summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/anch-bar.mkii194
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/anch-pgr.mkii1684
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/anch-pos.mkii883
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/anch-snc.mkii177
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/bibl-tra.mkii1781
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/buff-ini.mkii348
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/buff-ver.mkii1339
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/catc-act.mkii65
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/catc-ctx.mkii76
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/catc-def.mkii142
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/catc-ini.mkii269
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/catc-sym.mkii187
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/catc-xml.mkii114
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/colo-ema.mkii590
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/colo-ext.mkii59
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/colo-hex.mkii125
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/colo-ini.mkii2794
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/colo-rgb.mkii530
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/colo-run.mkii257
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/colo-x11.mkii677
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/colo-xwi.mkii143
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/cont-cs.mkii21
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/cont-de.mkii21
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/cont-en.mkii21
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/cont-err.mkii18
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/cont-fil.mkii131
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/cont-fr.mkii21
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/cont-gb.mkii21
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/cont-it.mkii21
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/cont-log.mkii304
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/cont-new.mkii943
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/cont-nl.mkii21
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/cont-ro.mkii22
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/cont-sys.ori186
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/context.mkii436
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-con.mkii969
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-ctx.mkii203
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-def.mkii105
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-env.mkii543
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-fil.mkii357
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-fnt.mkii726
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-gen.mkii166
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-ini.mkii67
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-job.mkii419
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-mis.mkii2745
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-par.mkii300
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-stg.mkii72
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-sys.mkii396
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-two.mkii206
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-uti.mkii349
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/core-var.mkii286
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-032.mkii82
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-037.mkii276
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-acc.mkii139
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-agr.mkii367
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-ans.mkii237
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-cas.mkii143
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-chi.mkii371
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-com.mkii37
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-cyr.mkii1037
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-def.mkii923
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-ec.mkii295
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-ecm.mkii33
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-el.mkii272
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-fde.mkii126
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-ffr.mkii55
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-fpl.mkii98
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-fro.mkii35
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-fsl.mkii32
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-grk.mkii190
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-heb.mkii16
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-ibm.mkii7
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-il2.mkii157
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-ini.mkii1137
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-l7x.mkii236
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-lat.mkii7
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-mis.mkii188
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-pdf.mkii278
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-pfr.mkii305
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-pol.mkii276
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-qx.mkii268
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-raw.mkii119
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-run.mkii149
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-t5.mkii248
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-tbo.mkii222
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-uc.mkii1093
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-vis.mkii3
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-vna.mkii145
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-win.mkii7
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/enco-x5.mkii222
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/filt-bas.mkii63
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/filt-ini.mkii121
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/font-arb.mkii5
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/font-bfm.mkii196
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/font-chi.mkii1156
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/font-heb.mkii5
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/font-ini.mkii4452
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/font-jap.mkii83
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/font-run.mkii326
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/font-uni.mkii444
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/font-unk.mkii187
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/font-xtx.mkii465
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/grph-fig.mkii559
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/grph-inc.mkii1243
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/grph-trf.mkii579
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/hand-def.mkii577
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/hand-ini.mkii483
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/java-ans.mkii28
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/java-exa.mkii395
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/java-fil.mkii48
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/java-fld.mkii475
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/java-ini.mkii693
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/java-stp.mkii121
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-alt.mkii152
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-ana.mkii24
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-art.mkii26
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-bal.mkii118
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-cel.mkii26
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-chi.mkii305
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-ctx.mkii53
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-cyr.mkii371
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-dis.mkii59
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-frd.mkii140
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-frq.mkii207
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-ger.mkii744
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-grk.mkii99
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-ind.mkii26
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-ini.mkii696
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-ita.mkii518
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-jap.mkii234
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-lab.mkii295
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-mis.mkii683
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-run.mkii36
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-sla.mkii485
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-spa.mkii74
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-spe.mkii244
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-ura.mkii158
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-url.mkii306
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/lang-vn.mkii92
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/math-ams.mkii336
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/math-arr.mkii391
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/math-cow.mkii31
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/math-eul.mkii277
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/math-fou.mkii196
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/math-frc.mkii253
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/math-ini.mkii684
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/math-lbr.mkii481
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/math-pln.mkii360
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/math-run.mkii105
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/math-tex.mkii720
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/math-tim.mkii371
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/math-uni.mkii237
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/meta-clp.mkii164
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/meta-dum.mkii123
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/meta-fig.mkii89
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/meta-ini.mkii1054
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/meta-mis.mkii54
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/meta-nav.mkii65
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/meta-pag.mkii226
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/meta-pdf.mkii2761
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/meta-pre.mkii68
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/meta-tex.mkii350
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/meta-txt.mkii304
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/meta-xml.mkii29
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-aux.mkii152
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-chk.mkii29
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-com.mkii31
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-con.mkii53
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-cs.mkii2224
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-de.mkii2224
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-def.mkii31
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-en.mkii2221
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-fr.mkii2224
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-fst.mkii36
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-ini.mkii935
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-it.mkii2224
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-mcs.mkii210
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-mde.mkii210
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-men.mkii210
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-mfr.mkii210
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-mit.mkii210
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-mnl.mkii210
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-mno.mkii210
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-mpe.mkii210
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-mro.mkii210
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-nl.mkii2221
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-pe.mkii2224
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-ro.mkii2224
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/mult-sys.mkii892
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/norm-alo.mkii36
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/norm-ctx.mkii16
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/norm-etx.mkii79
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/norm-ltx.mkii177
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/norm-ptx.mkii132
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/norm-tex.mkii351
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/norm-xtx.mkii18
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/pack-box.mkii956
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/pack-lyr.mkii755
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/pack-obj.mkii371
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/pack-rul.mkii3650
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-app.mkii225
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-bck.mkii593
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-flw.mkii107
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-imp.mkii1662
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-ini.mkii1558
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-ins.mkii103
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-lay.mkii1439
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-lin.mkii312
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-log.mkii202
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-mak.mkii230
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-mar.mkii867
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-mis.mkii268
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-mul.mkii1773
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-not.mkii72
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-one.mkii659
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-par.mkii58
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-plg.mkii202
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-run.mkii382
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-set.mkii2781
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-sid.mkii931
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-spr.mkii104
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-str.mkii331
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/page-txt.mkii784
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/pdfr-def.mkii843
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/pdfr-ec.mkii145
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/pdfr-il2.mkii233
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/prop-ini.mkii150
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/prop-lay.mkii143
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/prop-mis.mkii189
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-8859-1.mkii154
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-8859-10.mkii152
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-8859-13.mkii152
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-8859-15.mkii154
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-8859-16.mkii151
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-8859-2.mkii152
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-8859-3.mkii145
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-8859-4.mkii152
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-8859-5.mkii152
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-8859-7.mkii153
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-8859-9.mkii152
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-cp1250.mkii153
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-cp1251.mkii152
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-cp1252.mkii156
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-cp1253.mkii153
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-cp1254.mkii153
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-cp1257.mkii153
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-cyp.mkii1169
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-cyr.mkii722
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-def.mkii21
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-ibm.mkii73
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-ini.mkii248
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-mac.mkii147
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-syn.mkii73
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-uni.mkii24
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-utf.mkii52
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/regi-vis.mkii158
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/scrn-fld.mkii1247
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/scrn-hlp.mkii171
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/scrn-int.mkii2312
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/scrn-nav.mkii379
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/sort-def.mkii450
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/sort-ini.mkii161
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/sort-lan.mkii217
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spac-gen.mkii4667
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spac-grd.mkii1074
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-def.mkii1016
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-dpm.mkii444
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-dpx.mkii792
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-dvi.mkii116
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-fdf.mkii3532
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-ini.mkii559
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-mis.mkii288
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-pdf.mkii482
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-ps.mkii229
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-tpd.mkii1334
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-tr.mkii107
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-tst.mkii48
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-var.mkii83
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-win.mkii97
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-xet.mkii66
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-xtx.mkii85
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/spec-yy.mkii90
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-blk.mkii548
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-des.mkii921
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-flt.mkii2173
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-itm.mkii1335
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-lnt.mkii197
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-lst.mkii1150
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-mar.mkii318
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-mat.mkii2925
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-not.mkii1470
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-num.mkii151
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-pag.mkii534
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-ref.mkii3025
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-reg.mkii1243
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-sec.mkii2591
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-swd.mkii127
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/strc-syn.mkii438
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-ali.mkii173
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-box.mkii3126
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-dir.mkii41
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-emp.mkii398
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-eps.mkii202
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-fil.mkii722
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-fun.mkii746
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-lat.mkii59
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-mat.mkii293
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-mis.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-mpe.tex4
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-mps.mkii2134
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-mrk.mkii591
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-num.mkii422
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-pat.mkii175
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-pdf.tex1
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-ran.mkii122
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-spe.mkii164
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-tpi.mkii353
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/supp-vis.mkii1907
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/symb-cow.mkii132
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/symb-eur.mkii64
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/symb-glm.mkii79
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/symb-ini.mkii282
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/symb-jmn.mkii199
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/symb-mis.mkii139
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/symb-mvs.mkii217
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/symb-nav.mkii122
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/symb-run.mkii54
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/symb-uni.mkii1123
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/symb-was.mkii207
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/syst-con.mkii243
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/syst-ext.mkii5025
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/syst-fnt.mkii46
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/syst-gen.mkii4459
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/syst-ini.mkii1067
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/syst-new.mkii886
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/syst-pln.mkii118
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/syst-rtp.mkii18
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/syst-str.mkii124
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/tabl-ltb.mkii866
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/tabl-ntb.mkii1611
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/tabl-nte.mkii107
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/tabl-pln.mkii91
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/tabl-tab.mkii2515
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/tabl-tbl.mkii1440
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/tabl-tsp.mkii427
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/thrd-pic.mkii3694
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/thrd-ran.mkii168
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/thrd-tab.mkii2006
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/thrd-trg.mkii127
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/trac-vis.mkii748
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/type-def.mkii86
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/type-ini.mkii726
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/type-one.mkii2917
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/type-otf.mkii1734
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/type-run.mkii51
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/type-set.mkii81
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/type-siz.mkii748
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/type-tmf.mkii14
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/typo-ini.mkii40
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-000.mkii135
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-001.mkii220
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-002.mkii104
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-003.mkii147
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-004.mkii291
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-005.mkii50
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-030.mkii113
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-031.mkii274
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-032.mkii278
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-033.mkii275
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-034.mkii274
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-035.mkii32
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-037.mkii278
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-039.mkii68
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-251.mkii34
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-cjk.mkii22
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-exp.mkii82
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-ini.mkii777
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/unic-run.mkii130
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/verb-c.mkii484
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/verb-eif.mkii211
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/verb-ini.mkii1789
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/verb-js.mkii171
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/verb-jv.mkii222
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/verb-mp.mkii364
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/verb-pas.mkii266
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/verb-pl.mkii547
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/verb-raw.mkii7
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/verb-sql.mkii230
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/verb-tex.mkii294
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/verb-xml.mkii441
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xetx-chr.mkii1154
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xetx-cls.mkii511
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xetx-ini.mkii132
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xetx-utf.mkii2414
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-cml.mkii228
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-ent.mkii117
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-exp.mkii90
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-ext.mkii439
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-hyp.mkii69
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-ini.mkii3026
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-map.mkii746
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-mea.mkii152
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-meb.mkii124
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-mec.mkii28
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-meh.mkii166
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-men.mkii98
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-meo.mkii58
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-mer.mkii185
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-mmc.mkii1265
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-mml.mkii515
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-mmp.mkii553
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-mxa.mkii101
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-mxb.mkii55
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-mxc.mkii10
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-mxh.mkii67
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-mxn.mkii84
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-mxo.mkii14
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-mxr.mkii112
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-pml.mkii85
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-pmu.mkii188
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-pre.mkii448
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-prs.mkii42
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-raw.mkii37
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-rng.mkii28
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-run.mkii319
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-stk.mkii230
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-utf.mkii21
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-xsd.mkii28
-rw-r--r--Master/texmf-dist/tex/context/base/mkii/xtag-xsl.mkii224
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/anch-pgr.lua45
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/anch-pos.lua15
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/anch-pos.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/anch-snc.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/attr-ini.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/attr-ini.mkiv16
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/back-exp.lua16
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/back-ini.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/back-pdp.lua56
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/blob-ini.lua56
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/buff-ini.lua52
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/buff-ini.mkiv55
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/buff-ver.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/char-def.lua9693
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/char-fio.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/char-ini.lua832
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/char-ini.mkiv1
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/char-scr.lua161
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/char-utf.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cldf-bas.lua1
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cldf-ini.lua54
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/colo-ini.lua81
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cont-fil.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cont-log.mkiv1
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/cont-run.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/context-error.lmx4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/context-todo.tex5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/context.mkiv6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/core-con.lua199
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/core-dat.lua35
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-bin.lua14
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-con.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-dec.lua56
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-env.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-inp.lua3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-out.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-pre.lua33
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-tar.lua236
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-tex.lua5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-tmp.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-use.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-vir.lua5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/data-zip.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/export-example.css378
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/file-job.lua5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/file-lib.lua30
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/file-res.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-cff.lua365
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-cft.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-chk.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-col.lua1
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-con.lua23
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-dsp.lua88
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-enc.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-hsh.lua22
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-dimensions.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-effects.lua172
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-italics.lua49
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-ligatures.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-math.lua77
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-properties.lua8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-reorder.lua3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-tweaks.lua115
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-imp-unicode.lua26
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi53
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-lib.mkvi6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-lig.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-map.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-mis.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-mps.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-nod.lua20
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ocl.lua27
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ocm.lua93
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-onr.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-osd.lua714
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ota.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-otc.lua408
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-otj.lua115
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-otl.lua78
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-oto.lua80
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-otr.lua131
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ots.lua1182
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ott.lua70
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-oup.lua543
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-phb-imp-binary.lua119
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-phb-imp-library.lua498
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-phb.lua728
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-pre.mkiv15
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-prv.lua18
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-sel.lua38
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-shp.lua17
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-sol.lua38
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-syn.lua21
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-ttf.lua325
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/font-txt.lua553
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/good-gen.lua12
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/good-ini.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/good-mth.lua516
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/grph-con.lua24
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/grph-fil.lua164
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/grph-img.lua25
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/grph-inc.lua42
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/grph-inc.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/grph-pat.lua3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/grph-raw.lua7
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-dir.lua12
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-file.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-gzip.lua174
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-io.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-lpeg.lua14
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-macro-imp-optimize.lua3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-math.lua16
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-number.lua52
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-os.lua748
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-string.lua24
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/l-url.lua100
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-def.mkiv69
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-dis.lua13
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-exp.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-hyp.lua32
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-imp-indic.lua2282
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-imp-serbian.lua111
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-ini.lua45
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-ini.mkiv8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-rep.lua20
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-tra.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lang-txt.lua858
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/libs-ini.lua11
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-ano.lua24
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-fld.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-ini.lua3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-mov.lua45
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-nod.lua25
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-pda.xml18
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-pdx.xml25
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-pua.xml29
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-wid.lua78
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lpdf-xmp.lua7
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-cnf.lua53
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-cod.lua56
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-lib.mkiv7
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-mac.lua24
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-run.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-sto.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lxml-aux.lua31
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lxml-css.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lxml-ctx.mkiv14
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lxml-ini.lua73
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lxml-lpt.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lxml-tab.lua30
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/lxml-tex.lua34
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/m-fonts-plugins.mkiv69
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-act.lua514
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-dim.lua1
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-dir.lua9
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-ext.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-fbk.lua51
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-frc.lua38
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-ini.lua531
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-ini.mkiv54
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-int.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-map.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-noa.lua46
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-ren.lua7
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-tag.lua7
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-ttv.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/math-vfu.lua11
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-blb.lua8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-grd.mkiv22
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-imp-dum.mkiv6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-imp-mat.mkiv21
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/meta-imp-txt.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mlib-mpf.lua44
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mlib-pdf.lua21
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mlib-pps.lua13
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mtx-context-compare.tex5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mtx-context-hashed.tex136
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mtx-context-setters.tex35
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-aux.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-def.lua241
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-fmt.lua18
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-fun.lua57
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-low.lua249
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-mps.lua28
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-prm.lua425
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-prm.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/mult-sys.mkiv9
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-acc.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-aux.lua90
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-bck.lua13
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-bwc.lua92
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-fin.lua164
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-fnt.lua16
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-gcm.lua66
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-ini.lua14
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-ini.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-ltp.lua82
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-met.lua275
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-mig.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-nut.lua285
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-ppt.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-pro.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-ref.lua9
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-res.lua85
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-rul.lua44
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-rul.mkiv7
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-scn.lua14
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-ser.lua9
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-shp.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-syn.lua36
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-tra.lua102
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-tsk.lua1
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-tst.lua44
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/node-typ.lua26
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/pack-cut.mkiv8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/pack-rul.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-app.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-cst.lua5
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-flt.lua20
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-imp.mkiv9
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-ini.lua171
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-ini.mkiv26
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-inj.mkvi10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-lin.lua1
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-lin.mkvi4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-mix.lua56
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-mix.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-one.mkiv32
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-pcl.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-sid.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/page-str.lua18
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/phys-dim.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/phys-dim.mkiv15
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-aut.lua19
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-dat.lua39
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-fnd.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-imp-apa.mkvi6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-imp-aps-prb.mkvi40
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-imp-author.mkvi16
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-imp-cite.mkvi3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-ini.lua100
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-ini.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/publ-sor.lua20
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/regi-ini.lua1
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrn-hlp.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrn-ini.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrn-ini.mkvi4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrn-wid.lua19
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrn-wid.mkvi1
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrp-cjk.lua225
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrp-ini.lua280
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/scrp-ini.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-ali.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-ali.mkiv3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-chr.lua83
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-chr.mkiv3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-hor.mkiv3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/spac-ver.lua113
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/status-files.pdfbin25384 -> 24604 bytes
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/status-lua.pdfbin257025 -> 265851 bytes
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-blk.lua41
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-blk.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-doc.lua191
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-enu.mkvi14
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-flt.mkvi41
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-lst.lua113
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-mar.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-mat.mkiv21
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-not.mkvi10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-num.lua37
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-pag.lua8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-ref.lua31
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-ref.mkvi2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-ren.mkiv1
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-syn.lua95
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-syn.mkiv32
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/strc-usr.mkiv55
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/supp-box.lua74
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/symb-imp-was.mkiv206
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/syst-aux.mkiv23
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/syst-con.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/syst-ini.mkiv23
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/syst-lua.lua51
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/syst-lua.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.lua20
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.mkvi21
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/task-ini.lua15
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/toks-ini.lua225
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/trac-ctx.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/trac-deb.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/trac-fil.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/trac-jus.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/trac-set.lua64
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/trac-vis.lua66
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/type-set.mkiv162
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-bld.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-brk.lua32
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-cap.lua18
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-chr.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-cln.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-del.mkiv9
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-dha.lua35
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-dig.lua13
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-drp.lua24
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-dua.lua19
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-dub.lua19
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-duc.lua19
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-fkr.lua6
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-fln.lua30
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-inj.lua37
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-itc.lua34
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-krn.lua25
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-lin.lua30
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-mar.lua22
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-pag.lua8
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-pnc.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-rep.lua1
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-rub.lua3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-spa.lua16
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-sus.lua20
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-tal.lua22
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-wrp.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/typo-wrp.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-deb.lua22
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-evo-imp-server.lua7
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-evo.lua22
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-fil.lua18
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-jsn.lua17
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-lib-imp-gm.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-lib-imp-gs.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-lib.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-prs.lua67
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-rnd.lua116
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sac.lua63
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sbx.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sci.lua19
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-ffi.lua3
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-sqlite.lua14
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-swiglib.lua4
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sql-tickets.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sql-tracers.lua2
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-sql.lua10
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-str.lua59
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-tab.lua56
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-tar.lua359
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-tbs.lua131
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/util-zip.lua253
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/anch-bar.mkxl52
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/anch-bck.mklx119
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/anch-box.mkxl250
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/anch-loc.lmt520
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/anch-loc.mkxl115
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/anch-pgr.lmt116
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/anch-pgr.mkxl46
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/anch-pos.lmt1495
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/anch-pos.mkxl119
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/anch-snc.lmt217
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/anch-snc.mkxl235
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/anch-tab.mkxl16
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/attr-col.lmt48
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/attr-ini.lmt361
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/attr-ini.mkxl8
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/attr-lay.mkxl12
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-exp-imp-mth.lmt169
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-exp.lmt420
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-exp.mkxl115
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-imp-lua.lmt (renamed from Master/texmf-dist/tex/context/base/mkxl/back-lua.lmt)70
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-imp-lua.mkxl (renamed from Master/texmf-dist/tex/context/base/mkxl/back-lua.mkxl)4
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-imp-mps.lmt (renamed from Master/texmf-dist/tex/context/base/mkxl/back-mps.lmt)21
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-imp-mps.mkxl (renamed from Master/texmf-dist/tex/context/base/mkxl/back-mps.mkxl)4
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-imp-pdf.lmt49
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-imp-pdf.mkxl160
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-imp-pdp.lmt (renamed from Master/texmf-dist/tex/context/base/mkxl/back-pdp.lmt)134
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-imp-u3d.mkxl (renamed from Master/texmf-dist/tex/context/base/mkxl/back-u3d.mkxl)4
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-ini.lmt48
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-ini.mkxl7
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-pdf.lmt55
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-pdf.mkxl157
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-res.lmt146
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/back-res.mkxl6
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/bibl-bib.mkxl19
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/bibl-tra.mkxl77
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/blob-ini.lmt50
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/blob-ini.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/bndr-ini.lmt52
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/bndr-ini.mkxl39
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/buff-ini.lmt494
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/buff-ini.mkxl202
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/buff-par.mklx10
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/buff-ver.mkxl107
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/catc-def.mkxl22
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/catc-ini.mkxl239
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/catc-sym.mkxl11
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/char-brl.lmt405
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/char-ini.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/char-prv.lmt15
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/char-tex.lmt37
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/chem-str.mkxl51
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/cldf-bas.lmt262
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/cldf-bas.mkxl14
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/cldf-ini.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/cldf-lmt.lmt119
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/colo-ext.mkxl10
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/colo-grp.mkxl12
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/colo-ini.mkxl191
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/cont-fil.mkxl7
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/cont-log.mkxl57
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/cont-new.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/cont-run.lmt53
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/cont-run.mkxl24
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/context.mkxl259
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/core-con.mkxl61
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/core-dat.mkxl25
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/core-def.mkxl1
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/core-env.lmt53
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/core-env.mkxl97
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/core-ini.mkxl10
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/core-sys.lmt27
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/core-sys.mkxl46
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/core-two.mkxl5
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/core-uti.lmt (renamed from Master/texmf-dist/tex/context/base/mkxl/core-uti.lua)259
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/data-fil.lmt144
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/data-hsh.lmt382
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/data-vir.lmt104
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/driv-ini.lmt138
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/driv-shp.lmt1634
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/driv-shp.mkxl3
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/driv-usr.lmt585
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/enco-ini.mkxl9
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/file-ini.mklx35
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/file-job.lmt133
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/file-job.mklx51
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/file-mod.lmt6
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/file-mod.mklx47
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/file-res.mklx2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-cff.lmt2788
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-chk.lmt144
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-col.lmt131
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-col.mklx26
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-con.lmt320
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-ctx.lmt270
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-def.lmt2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-dsp.lmt4668
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-emp.mklx86
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-fbk.lmt75
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-fea.mklx18
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-fil.mklx30
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-fmp.lmt14
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-hsh.lmt397
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-imp-braille.lmt135
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-imp-checks.lmt40
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-imp-digits.lmt62
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-imp-effects.lmt348
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-imp-ligatures.lmt158
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-imp-math.lmt271
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-imp-quality.lmt676
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-imp-sanitize.lmt197
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-imp-scripts.lmt188
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-imp-text.lmt30
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-imp-tracing.lmt166
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-ini.lmt63
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-ini.mklx472
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-lib.mklx100
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-lig.lmt41
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-map.lmt518
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-mat.mklx380
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-mpf.lmt52
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-ogr.lmt221
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-one.lmt847
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-onr.lmt614
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-ota.lmt16
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-otd.lmt284
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-otj.lmt234
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-otl.lmt912
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-ots.lmt1577
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-phb-imp-binary.lmt114
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-phb-imp-internal.lmt160
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-phb.lmt560
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-pre.mkxl187
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-sel.mklx2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-set.mklx14
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-sol.mklx4
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-sty.mklx44
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-sym.mklx44
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-tex.lmt82
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-tfm.lmt682
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-tpk.lmt1397
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-ttf.lmt1496
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-txt.lmt570
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-unk.mkxl37
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-var.mklx8
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-vfc.lmt87
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/font-vir.lmt6
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/good-gen.lmt220
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/good-mth.lmt286
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/grph-epd.lmt58
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/grph-epd.lua (renamed from Master/texmf-dist/tex/context/base/mkiv/grph-epd.lua)0
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/grph-epd.mkxl4
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/grph-fig.mkxl114
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/grph-inc.lmt263
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/grph-inc.mkxl52
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/grph-pat.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/grph-raw.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/grph-rul.lmt52
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/grph-rul.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/grph-trf.lmt11
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/grph-trf.mkxl107
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/hand-ini.mkxl6
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/java-ini.mkxl6
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/l-number.lmt105
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/l-unicode.lmt808
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-def.mkxl133
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-dis.lmt35
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-frq.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-hup.lmt264
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-hup.mkxl34
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-hyp.lmt39
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-hyp.mkxl49
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-ini.lmt1075
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-ini.mkxl213
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-lab.lmt195
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-lab.mkxl33
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-mis.mkxl175
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-rep.lmt467
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-rep.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-tra.lmt372
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-tra.mkxl62
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-url.lmt259
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lang-url.mkxl12
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/layo-ini.lmt23
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/layo-ini.mkxl4
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/libs-imp-curl.lmt15
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/libs-imp-foreign.lmt65
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/libs-imp-foreign.mkxl204
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/libs-imp-graphicsmagick.lmt12
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/libs-imp-imagemagick.lmt94
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/libs-imp-lz4.lmt46
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/libs-imp-lzma.lmt54
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/libs-imp-lzo.lmt37
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/libs-imp-mujs.mkxl1
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/libs-imp-zint.lmt78
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/libs-imp-zint.mkxl99
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/libs-imp-zstd.lmt98
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/libs-ini.lmt206
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/libs-ini.mkxl17
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-ano.lmt102
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-aux.lmt5
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-col.lmt114
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-emb.lmt563
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-epa.lmt58
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-fld.lmt33
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-fmt.lmt20
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-fnt.lmt7
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-grp.lmt246
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-img.lmt1102
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-ini.lmt361
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-lmt.lmt1529
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-mis.lmt107
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-mov.lmt68
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-pde.lmt248
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-ren.lmt31
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-res.lmt41
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-rul.lmt522
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-tag.lmt175
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-u3d.lmt15
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-wid.lmt302
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lpdf-xmp.lmt277
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/luat-bas.mkxl6
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/luat-cnf.lmt227
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/luat-cod.lmt117
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/luat-fio.lmt11
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/luat-ini.lmt14
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/luat-ini.mkxl55
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/luat-lib.mkxl19
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/luat-log.lmt111
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/luat-run.lmt306
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/luat-usr.mkxl1
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lxml-ctx.mkxl14
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/lxml-ini.mkxl31
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-acc.mklx183
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-act.lmt3929
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-ali.lmt292
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-ali.mkxl2174
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-brl.lmt526
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-com.mkxl89
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-def.mkxl159
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-del.mkxl19
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-dif.mkxl48
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-dim.lmt251
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-dld.mklx265
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-ext.lmt109
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-fbk.lmt791
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-fen.mkxl1181
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-fnt.lmt151
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-frc.lmt74
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-frc.mkxl797
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-inc.lmt94
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-inc.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-ini.lmt1170
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-ini.mkxl3091
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-int.mkxl108
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-lop.mkxl190
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-map.lmt932
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-noa.lmt2365
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-pln.mkxl98
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-pre.lmt189
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-rad.mklx198
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-ren.lmt74
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-scr.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-spa.lmt204
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-stc.mklx355
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-tag.lmt415
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-toy.mkxl8
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-ttv.lmt584
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-twk.mkxl99
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/math-vfu.lmt1652
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-fig.mkxl5
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-grd.mkxl40
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-imp-bitmaps.mkxl338
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-imp-functions.lmt260
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-imp-functions.mkxl342
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-imp-gamesymbols.mkxl160
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-imp-glyphs.mkxl65
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-imp-kindergarten.mkxl118
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-imp-magick.mkxl108
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-imp-placeholders.mkxl83
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-imp-txt.lmt116
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-ini.lmt125
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-ini.mkxl523
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-nod.mkxl63
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-pdf.mkxl4
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-pdh.mkxl15
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/meta-tex.mkxl238
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-cnt.lmt72
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-ctx.lmt45
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-ctx.mkxl17
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-fio.lmt153
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-fnt.lmt (renamed from Master/texmf-dist/tex/context/base/mkxl/font-mps.lmt)290
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-int.lmt333
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-lmp.lmt638
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-lmt.lmt65
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-lua.lmt210
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-mat.lmt130
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-mpf.lmt542
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-pdf.lmt578
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-pdf.mkxl29
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-pos.lmt63
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-pps.lmt212
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-pps.mkxl114
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-run.lmt407
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-scn.lmt498
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-snc.lmt36
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mlib-svg.lmt1514
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mult-aux.mkxl221
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mult-def.mkxl16
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mult-ini.lmt2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mult-ini.mkxl124
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mult-prm.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/mult-sys.mkxl52
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-acc.lmt9
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-ali.lmt949
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-aux.lmt218
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-bck.lmt38
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-bck.mkxl6
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-bwc.lmt13
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-cmp.lmt132
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-dir.lmt (renamed from Master/texmf-dist/tex/context/base/mkiv/node-dir.lua)77
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-ext.lmt21
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-ext.mkxl (renamed from Master/texmf-dist/tex/context/base/mkxl/back-ext.mkxl)40
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-fin.lmt550
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-fin.mkxl115
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-fnt.lmt778
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-gcm.lmt40
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-ini.lmt196
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-ini.mkxl14
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-met.lmt229
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-mig.lmt5
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-nut.lmt262
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-par.lmt27
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-pro.lmt240
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-ref.lmt68
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-res.lmt106
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-rul.lmt960
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-rul.mkxl277
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-scn.lmt165
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-ser.lmt61
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-shp.lmt96
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-syn.lmt157
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-syn.mkxl (renamed from Master/texmf-dist/tex/context/base/mkii/tabl-com.mkii)13
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-tex.lmt6
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-tra.lmt146
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-tsk.lmt1137
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-tst.lmt97
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/node-typ.lmt135
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/norm-ctx.mkxl71
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/pack-bck.mklx2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/pack-box.mkxl316
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/pack-com.mkxl225
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/pack-cut.mkxl32
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/pack-lyr.mkxl108
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/pack-mat.mkxl384
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/pack-mrl.mkxl103
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/pack-obj.lmt76
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/pack-obj.mkxl90
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/pack-ori.lmt4
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/pack-ori.mkxl16
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/pack-pos.mkxl30
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/pack-rul.lmt79
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/pack-rul.mkxl890
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-app.mkxl15
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-bck.mkxl31
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-blk.lmt100
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-blk.mkxl192
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-box.mklx70
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-brk.mkxl28
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-col.mkxl18
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-com.mkxl30
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-cst.mkxl47
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-ffl.mkxl239
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-flt.mkxl47
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-flw.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-imp.mkxl89
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-inf.mkxl24
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-ini.lmt374
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-ini.mkxl113
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-inj.mklx14
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-ins.mkxl137
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-lay.mkxl533
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-lin.mklx55
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-mak.mklx4
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-mbk.mklx200
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-mcl.mkxl45
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-mix.mkxl103
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-mrk.mkxl81
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-not.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-one.mkxl251
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-otr.mklx47
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-par.mkxl12
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-pcl.mkxl127
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-plg.mkxl10
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-pst.mkxl8
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-sel.lmt77
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-sel.mklx118
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-sid.mkxl419
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-smp.mkxl9
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-spr.mkxl1
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-str.lmt320
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-str.mkxl4
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/page-txt.mklx101
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/phys-dim.mkxl52
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/publ-ini.mkxl286
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/regi-ini.lmt367
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/regi-ini.mkxl23
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/scrn-bar.mklx45
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/scrn-but.mklx92
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/scrn-fld.mklx66
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/scrn-hlp.mklx12
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/scrn-ini.lmt62
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/scrn-ini.mklx59
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/scrn-pag.mklx50
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/scrn-ref.lmt57
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/scrn-ref.mklx14
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/scrn-wid.lmt317
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/scrn-wid.mklx194
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/scrp-ini.lmt918
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/scrp-ini.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/spac-ali.lmt7
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/spac-ali.mkxl202
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/spac-chr.lmt126
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/spac-chr.mkxl9
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/spac-def.mkxl5
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/spac-flr.mkxl18
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/spac-grd.mkxl10
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/spac-hor.lmt46
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/spac-hor.mkxl282
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/spac-lin.mkxl12
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/spac-pag.mkxl12
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/spac-par.mkxl133
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/spac-prf.lmt570
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/spac-prf.mklx97
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/spac-ver.lmt1331
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/spac-ver.mkxl616
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-bkm.mkxl6
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-blk.mkxl42
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-con.mklx136
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-des.mklx25
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-doc.mkxl76
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-enu.mklx65
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-flt.mklx365
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-ind.mkxl17
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-itm.mklx466
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-lab.mkxl20
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-lnt.mklx23
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-lst.lmt1544
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-lst.mklx182
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-mar-old.lmt759
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-mar-old.mkxl142
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-mar.lmt171
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-mar.mkxl188
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-mat.mkxl1469
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-not.lmt530
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-not.mklx406
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-num.mkxl29
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-pag.mkxl52
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-ref.lmt2974
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-ref.mklx210
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-reg.lmt1698
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-reg.mkxl431
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-ren.mkxl78
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-rsc.lmt180
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-sbe.mkxl13
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-sec.mkxl166
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-syn.mkxl77
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-tag.lmt51
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-tag.mkxl28
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/strc-usr.mkxl55
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/supp-box.lmt656
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/supp-box.mkxl388
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/supp-mat.mkxl107
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/supp-ran.lmt245
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/supp-ran.mkxl39
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/symb-ini.mkxl12
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/syst-aux.lmt62
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/syst-aux.mkxl870
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/syst-fnt.mkxl26
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/syst-ini.mkxl655
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/syst-lua.lmt43
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/syst-lua.mkxl13
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/syst-mac.lmt36
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/syst-pln.mkxl4
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/tabl-com.mkxl154
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/tabl-frm.mkxl29
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/tabl-ltb.mkxl125
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/tabl-mis.mkxl22
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/tabl-ntb.mkxl819
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/tabl-tab.mkxl287
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/tabl-tbl.lmt60
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/tabl-tbl.mkxl849
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/tabl-tsp.mkxl59
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/tabl-xtb.lmt1325
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/tabl-xtb.mklx101
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/task-ini.lmt228
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/toks-aux.lmt152
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/toks-aux.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/toks-ini.lmt421
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/toks-scn.lmt72
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/trac-ctx.mkxl14
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/trac-deb.lmt48
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/trac-inf.lmt150
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/trac-jus.lmt122
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/trac-jus.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/trac-set.lmt453
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/trac-tex.mkxl6
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/trac-vis.lmt1477
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/trac-vis.mkxl51
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/type-imp-bengali.mkxl73
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/type-imp-braille.mkxl88
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/type-imp-devanagari.mkxl244
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/type-imp-euler.mkxl71
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/type-imp-gujarati.mkxl77
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/type-imp-indic.mkxl800
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/type-imp-kannada.mkxl73
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/type-imp-malayalam.mkxl224
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/type-imp-tamil.mkxl53
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/type-imp-telugu.mkxl74
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/type-ini.mklx44
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/type-set.mkxl200
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-ada.lmt172
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-ada.mkxl218
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-adj.lmt93
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-adj.mkxl65
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-bld.lmt88
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-bld.mkxl22
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-brk.lmt42
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-brk.mkxl4
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-cap.lmt311
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-cap.mkxl10
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-chr.lmt18
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-chr.mkxl4
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-del.mkxl93
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-dig.lmt21
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-dir.lmt212
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-dir.mkxl8
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-drp.lmt49
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-drp.mkxl99
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-duc.lmt63
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-fln.lmt34
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-fln.mkxl4
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-hid.lmt74
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-hid.mkxl38
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-inj.mkxl8
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-itc.lmt332
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-itm.mkxl36
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-krn.lmt99
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-lan.lmt89
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-lan.mkxl72
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-lbx.lmt251
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-lbx.mkxl378
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-lin.lmt33
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-mar.lmt39
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-mar.mkxl28
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-ovl.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-pag.lmt10
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-par.lmt2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-par.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-pnc.lmt170
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-pnc.mkxl2
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-rub.lmt206
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-rub.mkxl11
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-shp.lmt4
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-shp.mkxl162
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-spa.lmt47
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-sus.lmt20
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-syn.lmt668
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-syn.mkxl261
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-tal.lmt22
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-tal.mkxl7
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-wrp.lmt81
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/typo-wrp.mkxl22
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/util-deb.lmt391
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/util-fil.lmt172
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/util-pck.lmt176
-rw-r--r--Master/texmf-dist/tex/context/base/mkxl/util-sac.lmt312
-rw-r--r--Master/texmf-dist/tex/context/bib/mkii/bibl-ams.tex438
-rw-r--r--Master/texmf-dist/tex/context/bib/mkii/bibl-apa-de.tex386
-rw-r--r--Master/texmf-dist/tex/context/bib/mkii/bibl-apa-fr.tex389
-rw-r--r--Master/texmf-dist/tex/context/bib/mkii/bibl-apa-it.tex385
-rw-r--r--Master/texmf-dist/tex/context/bib/mkii/bibl-apa.tex390
-rw-r--r--Master/texmf-dist/tex/context/bib/mkii/bibl-aps.tex441
-rw-r--r--Master/texmf-dist/tex/context/bib/mkii/bibl-num-fr.tex427
-rw-r--r--Master/texmf-dist/tex/context/bib/mkii/bibl-num.tex427
-rw-r--r--Master/texmf-dist/tex/context/bib/mkii/bibl-ssa.tex486
-rw-r--r--Master/texmf-dist/tex/context/colors/icc/profiles/default_gray.iccbin0 -> 416 bytes
-rw-r--r--Master/texmf-dist/tex/context/colors/icc/profiles/ecirgb_v2.iccbin0 -> 1992 bytes
-rw-r--r--Master/texmf-dist/tex/context/colors/icc/profiles/ecirgb_v2_iccv4.iccbin0 -> 700 bytes
-rw-r--r--Master/texmf-dist/tex/context/colors/icc/profiles/isocoated_v2_300_eci.iccbin0 -> 1829093 bytes
-rw-r--r--Master/texmf-dist/tex/context/colors/icc/profiles/isocoated_v2_eci.iccbin0 -> 1829077 bytes
-rw-r--r--Master/texmf-dist/tex/context/colors/icc/profiles/srgb.iccbin0 -> 3144 bytes
-rw-r--r--Master/texmf-dist/tex/context/colors/icc/profiles/srgb_v4_icc_preference.iccbin0 -> 60960 bytes
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkii/type-buy.mkii571
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkii/type-cbg.mkii352
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkii/type-cow.mkii85
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkii/type-exp.mkii95
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkii/type-fsf.mkii94
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkii/type-ghz.mkii409
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkii/type-hgz.mkii1
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkii/type-mac.mkii593
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkii/type-msw.mkii1
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkii/type-pre.mkii253
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkii/type-win.mkii69
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkii/type-xtx.mkii570
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/antykwa-math.lfg174
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/asana-math.lfg66
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/bonum-math.lfg326
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/cambria-math.lfg212
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/common-math-jmn.lfg119
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/common-math.lfg307
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/concrete-math.lfg119
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/dejavu-math.lfg181
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/ebgaramond-math.lfg217
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/ebgaramond.lfg53
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/erewhon-math.lfg116
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/euler-math.lfg132
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/generic-math.lfg257
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/iwona-math.lfg85
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/koeielettersot.lfg16
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/kpfonts-math.lfg146
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/kurier-math.lfg94
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/libertinus-math.lfg171
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/lm-math.lfg10
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/lm.lfg84
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/lucida-math.lfg225
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/lucida-opentype-math.lfg51
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/minion-math.lfg108
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/modern-math.lfg355
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/newcomputermodern-math.lfg345
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/pagella-math.lfg238
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/schola-math.lfg150
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/stix-two-math.lfg66
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/stixtwo-math.lfg207
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/termes-math.lfg161
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/tx-math.lfg8
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-adobegaramond.mkiv42
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-alegreya.mkiv86
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-almfixed.mkiv33
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-antykwa.mkiv252
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-asana.mkiv35
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-cambria.mkiv28
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-concrete.mkiv77
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-dejavu.mkiv46
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv96
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-erewhon.mkiv71
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-euler.mkiv21
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-gentium.mkiv85
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-hcrfonts.mkiv141
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-iwona.mkiv243
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-koeielettersot.mkiv20
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-kpfonts.mkiv105
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-kurier.mkiv125
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-latinmodern.mkiv33
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-libertinus.mkiv28
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lucida.mkiv (renamed from Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lucida-opentype.mkiv)42
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-minion.mkiv12
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv54
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-newcomputermodern.mkiv93
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-stix.mkiv77
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-texgyre.mkiv117
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-unfonts.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-xcharter.mkiv67
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/type-imp-xits.mkiv19
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/xcharter-math.lfg104
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkiv/xits-math.lfg127
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkxl/bhai.lfg72
-rw-r--r--Master/texmf-dist/tex/context/fonts/mkxl/shobhika.lfg72
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/cont-cs.xml10396
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/cont-de.xml10396
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/cont-fr.xml10396
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/cont-it.xml10396
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/cont-nl.xml10396
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/cont-pe.xml10396
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/cont-ro.xml10396
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-cs.xml2237
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-cz.xml1590
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-de.xml2237
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-en.xml2234
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-fr.xml2237
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-it.xml2237
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-nl.xml2234
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-pe.xml2237
-rw-r--r--Master/texmf-dist/tex/context/interface/mkii/keys-ro.xml2237
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/context-en.xml28
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-context.pdfbin963860 -> 848669 bytes
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdfbin24990 -> 24624 bytes
-rw-r--r--Master/texmf-dist/tex/context/interface/mkiv/i-visualizer.xml29
-rw-r--r--Master/texmf-dist/tex/context/modules/common/s-abbreviations-mixed.mkiv28
-rw-r--r--Master/texmf-dist/tex/context/modules/common/s-abbreviations-pseudocaps.mkiv30
-rw-r--r--Master/texmf-dist/tex/context/modules/common/s-abbreviations-smallcaps.mkiv31
-rw-r--r--Master/texmf-dist/tex/context/modules/common/s-abbreviations-words.mkiv28
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-arabtex.mkii450
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-chart.mkii1315
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-chemic.mkii21
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-cweb.mkii1371
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-database.mkii420
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-dratex.mkii21
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-edtsnc.mkii207
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-educat.mkii217
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-format.mkii411
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-graph.mkii231
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-layout.mkii102
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-level.mkii94
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-narrowtt.mkii39
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-obsolete.mkii5
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-pdfsnc.mkii200
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-pictex.mkii239
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-pstricks.mkii127
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-quest.mkii232
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-r.mkii174
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-steps.mkii837
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-streams.mkii448
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-subsub.mkii76
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-tex4ht.mkii9
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-units.mkii904
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/m-visual.mkii315
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/ppchtex.mkii3555
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/rlxcache.rlx71
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/rlxtools.rlx136
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-abr-01.mkii30
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-abr-02.mkii31
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-chi-00.mkii76
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-fnt-01.mkii61
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-fnt-02.mkii133
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-grk-00.mkii77
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-jap-00.mkii23
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-mag-01.mkii438
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-map-10.mkii491
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-mod-00.mkii511
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-mod-01.mkii155
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-mod-02.mkii421
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-01.mkii404
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-02.mkii381
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-03.mkii257
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-04.mkii377
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-05.mkii240
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-09.mkii380
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-10.mkii308
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-11.mkii220
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-14.mkii263
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-15.mkii186
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-17.mkii399
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-19.mkii347
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-30.mkii258
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-60.mkii143
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-61.mkii275
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-62.mkii224
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-63.mkii73
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-64.mkii208
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-68.mkii152
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-pre-71.mkii213
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-ptj-01.mkii425
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/s-syntax.mkii54
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-calcmath.mkii24
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-chemml.mkii212
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-chemml.xsd93
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-contml.mkii491
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-contml.xsd375
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-corres.mkii136
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-corres.rng170
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-dir-01.mkii145
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-dir-02.mkii130
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-dir-05.mkii51
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-fdf-00.mkii41
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-fe.mkii143
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-fig-00.dtd24
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-fig-00.mkii252
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-fig-00.xsd77
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-fig-01.mkii461
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-fig-02.mkii78
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-fig-03.mkii44
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-fo.mkii4057
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-foxet.mkii28
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-mathml.mkii28
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-mathml.xsd11
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-newcml.mkii456
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-newmme.mkii423
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-newmml.mkii2744
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-newmmo.mkii210
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-newpml.mkii250
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-om2cml.xsl1342
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-openmath.mkii4
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-openmath.xsl35
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-physml.mkii16
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-physml.xsd172
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-res-00.mkii67
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-res-01.mkii487
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-res-02.mkii72
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-res-03.mkii44
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-res-04.mkii336
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-res-08.mkii129
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-res-09.mkii69
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-res-10.mkii75
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-res-11.mkii110
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-res-12.mkii53
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-res-20.mkii231
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-res-50.mkii427
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-sch-00.mkii382
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-sch-01.mkii122
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-set-01.mkii79
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-set-02.mkii30
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-set-11.mkii837
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-set-12.mkii258
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-sm2om.xsl233
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-steps.mkii85
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-xml-01.mkii91
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-xml-02.mkii91
-rw-r--r--Master/texmf-dist/tex/context/modules/mkii/x-xml-11.mkii134
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.lua2
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-barcodes.mkiv7
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-catchword.mkiv6
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-circuitikz.mkiv138
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-compatible.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-escrito.lua391
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-escrito.mkiv19
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-matrix.mkiv5
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-mkii.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-obsolete.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-oldfun.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-oldnum.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-pictex.mkiv11
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-pstricks.mkiv11
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-punk.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-scite.mkiv12
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-simulate.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-sql.mkiv6
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-steps.mkvi8
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-tikz.mkiv172
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-units.mkiv2
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/m-zint.mkiv115
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-abbreviations-extras.tex (renamed from Master/texmf-dist/tex/context/modules/common/s-abbreviations-extras.tex)0
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-abbreviations-logos.tex (renamed from Master/texmf-dist/tex/context/modules/common/s-abbreviations-logos.tex)1
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-charts.mkiv18
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-coverage.mkiv12
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-emoji.mkiv72
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.lua79
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.mkiv1
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-kerns.mkiv27
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-missing.lua94
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.lua139
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.mkiv16
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.lua22
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.mkiv3
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-variable.lua17
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-fonts-variable.mkiv52
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-languages-hyphenation.lua72
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-math-characters.lua139
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-math-characters.mkiv80
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-math-extensibles.mkiv68
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-math-ligatures.lua2
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-math-parameters.lua22
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-math-repertoire.mkiv203
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-obsolete-tokens.mkiv (renamed from Master/texmf-dist/tex/context/modules/common/s-obsolete-tokens.mkiv)22
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-physics-units.lua86
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-present-stepper.mkiv18
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-present-steps.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-present-weird.mkiv8
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-present-wobbling.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-system-tokens.mkxl84
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/s-version.mkiv123
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/x-asciimath.lua1
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/x-asciimath.mkiv6
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/x-mathml.lua2
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/x-mathml.mkiv196
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/x-newmml.mkiv16
-rw-r--r--Master/texmf-dist/tex/context/modules/mkiv/x-res-50.mkiv4
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/m-barcodes.mkxl43
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/m-circuitikz.mkxl138
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/m-crappyspec.mkxl229
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/m-gimmicks.mkxl96
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/m-gnuplot.mkxl (renamed from Master/texmf-dist/tex/context/modules/mkiv/m-gnuplot.mkxl)0
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/m-json.mkxl92
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/m-mathfun.mkxl233
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/m-oldmath.mkxl144
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/m-openstreetmap.lmt977
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/m-openstreetmap.mkxl511
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/m-svg.mkxl39
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/m-system-readers.mkxl (renamed from Master/texmf-dist/tex/context/modules/mkiv/m-system-readers.mkxl)4
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/m-tikz-pgfplots.tex46
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/m-tikz-pgfplotstable.tex12
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/m-tikz.mkxl140
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/m-timing.mkxl (renamed from Master/texmf-dist/tex/context/modules/mkiv/m-timing.mkxl)0
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/s-braille-basic.mkxl178
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/s-colors-show.mkxl14
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/s-fonts-show.mkxl4
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/s-languages-goodies.lmt99
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/s-languages-goodies.mkxl144
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/s-layout-show.mkxl30
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/s-math-atoms.mkxl104
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/s-math-definitions.mkxl56
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/s-math-tweaks.mkxl355
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/s-publications-show.mkxl6
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/s-system-macros.mkxl (renamed from Master/texmf-dist/tex/context/modules/mkiv/s-system-macros.mkxl)25
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/s-system-tokens.lmt247
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/s-system-tokens.mkxl41
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/x-mathml.lmt972
-rw-r--r--Master/texmf-dist/tex/context/modules/mkxl/x-mathml.mkxl2463
-rw-r--r--Master/texmf-dist/tex/context/patterns/common/lang-bn.rme3
-rw-r--r--Master/texmf-dist/tex/context/patterns/common/lang-gr.rme3
-rw-r--r--Master/texmf-dist/tex/context/patterns/common/lang-gu.rme3
-rw-r--r--Master/texmf-dist/tex/context/patterns/common/lang-hi.rme3
-rw-r--r--Master/texmf-dist/tex/context/patterns/common/lang-kn.rme3
-rw-r--r--Master/texmf-dist/tex/context/patterns/common/lang-sa.rme3
-rw-r--r--Master/texmf-dist/tex/context/patterns/common/lang-sq.rme4
-rw-r--r--Master/texmf-dist/tex/context/patterns/common/lang-ta.rme3
-rw-r--r--Master/texmf-dist/tex/context/patterns/common/lang-te.rme3
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-af.hyp192
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-af.pat10349
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-agr.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-agr.pat3113
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-ala.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-ala.pat26083
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-bg.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-bg.pat6893
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-ca.hyp33
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-ca.pat876
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-cs.hyp12
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-cs.pat3643
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-cy.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-cy.pat6735
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-da.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-da.pat1151
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-de.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-de.pat26384
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-deo.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-deo.pat26488
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-eo.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-eo.pat2210
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-es.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-es.pat4701
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-et.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-et.pat3698
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-eu.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-eu.pat199
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-fi.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-fi.pat293
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-fr.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-fr.pat1152
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-gb.hyp15
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-gb.pat8534
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-hr.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-hr.pat1482
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-hu.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-hu.pat62858
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-is.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-is.pat4195
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-it.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-it.pat362
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-la.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-la.pat343
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-lt.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-lt.pat1553
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-lv.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-lv.pat11590
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-mk.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-mk.pat732
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-ml.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-ml.pat95
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-mn.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-mn.pat995
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-nb.hyp9
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-nb.pat27455
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-nl.hyp47
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-nl.pat12731
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-nn.hyp9
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-nn.pat27455
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-pl.hyp27
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-pl.pat4060
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-pt.hyp9
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-pt.pat314
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-ro.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-ro.pat654
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-ru.hyp191
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-ru.pat7028
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-sk.hyp12
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-sk.pat2474
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-sl.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-sl.pat1075
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-sr.hyp137
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-sr.pat2432
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-sv.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-sv.pat4700
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-th.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-th.pat4349
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-tk.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-tk.pat2379
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-tr.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-tr.pat604
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-uk.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-uk.pat4345
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-us.hyp21
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-us.pat4945
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-zh.hyp8
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkii/lang-zh.pat691
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-bn.lua20
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-de.lua6
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-deo.lua6
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-gr.lua20
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-gu.lua20
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-hi.lua20
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-kn.lua20
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-sa.lua20
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-sq.lua20
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-sr.lua16
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-ta.lua20
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkiv/lang-te.lua20
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkxl/lang-de.llg4010
-rw-r--r--Master/texmf-dist/tex/context/patterns/mkxl/lang-en.llg453
-rw-r--r--Master/texmf-dist/tex/context/sample/common/cuomo.tex17
-rw-r--r--Master/texmf-dist/tex/context/sample/common/pluto.xml44
-rw-r--r--Master/texmf-dist/tex/context/sample/common/samples.tex2
-rw-r--r--Master/texmf-dist/tex/context/sample/common/spider.eps6
-rw-r--r--Master/texmf-dist/tex/context/sample/common/stork.tex24
-rw-r--r--Master/texmf-dist/tex/context/sample/common/welcome-to-context.tex19
-rw-r--r--Master/texmf-dist/tex/context/third/inifile/t-inifile.tex221
-rw-r--r--Master/texmf-dist/tex/context/user/mkii/cont-sys.rme186
1796 files changed, 150007 insertions, 720323 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkii/anch-bar.mkii b/Master/texmf-dist/tex/context/base/mkii/anch-bar.mkii
deleted file mode 100644
index 39d5c7f77e7..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/anch-bar.mkii
+++ /dev/null
@@ -1,194 +0,0 @@
-%D \module
-%D [ file=anch-bar,
-%D version=2003.03.16,
-%D title=\CONTEXT\ Anchoring Macros,
-%D subtitle=Margin Bars and alike,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Anchoring Macros / Margin Bars}
-
-\unprotect
-
-%D We will implement a sidebar mechanism using the
-%D functionality from \type {core-pos}.
-%D
-%D \starttyping
-%D \definesidebar[whow][rulecolor=green,distance=]
-%D
-%D \input tufte \par
-%D \startsidebar
-%D \input tufte \par
-%D \input tufte \par
-%D \startsidebar[whow]
-%D \input tufte \par
-%D \input tufte \par
-%D \input tufte
-%D \stopsidebar \par
-%D \input tufte \par
-%D \input tufte
-%D \stopsidebar \par
-%D \input tufte \par
-%D \input tufte \par
-%D \startsidebar
-%D \input tufte \par
-%D \input tufte \par
-%D \input tufte \par
-%D \input tufte \par
-%D \input tufte
-%D \stopsidebar \par
-%D \input tufte \par
-%D \input tufte \par
-%D \startsidebar
-%D \input tufte
-%D \input tufte
-%D \input tufte
-%D \input tufte
-%D \input tufte
-%D \stopsidebar
-%D \stoptyping
-
-\newcount\currentsidebar
-\newdimen\sidebardistance
-
-\def\setupsidebars
- {\dodoubleargument\dosetupsidebars}
-
-\def\dosetupsidebars[#1][#2]%
- {\ifsecondargument
- \getparameters[\??br#1][#2]%
- \else
- \getparameters[\??br][#1]%
- \fi}
-
-% \setupMPvariables
-% [mpos:bar]
-% [linecolor=red,
-% linewidth=2pt,
-% distance=5pt]
-
-\setupsidebars
- [\c!rulethickness=2pt,
- \c!rulecolor=red,
- \c!distance=.5\bodyfontsize]
-
-\def\definesidebar
- {\dodoubleempty\dodefinesidebar}
-
-\def\dodefinesidebar[#1][#2]%
- {\copyparameters
- [\??br#1][\??br]
- [\c!rulethickness,\c!rulecolor,\c!distance]%
- \getparameters
- [\??br#1][#2]}
-
-\def\startsidebar
- {\dosingleempty\dostartsidebar}
-
-\def\dostartsidebar[#1]%
- {\bgroup
- \dontleavehmode
- \checktextbackgrounds
- \global\advance\currentsidebar\plusone
- \doifelsenothing{#1}
- {\advance\sidebardistance\@@brdistance}
- {\doifelsevaluenothing{\??br#1\c!distance}
- {\advance\sidebardistance\@@brdistance}
- {\sidebardistance\getvalue{\??br#1\c!distance}}}%
- \startpositionoverlay{text-1}%
- \expanded{\setMPpositiongraphicrange
- {b:side:\the\currentsidebar}%
- {e:side:\the\currentsidebar}%
- {mpos:bar}%
- {self=side:\the\currentsidebar,
- linewidth=\getvalue{\??br#1\c!rulethickness},
- linecolor=\getvalue{\??br#1\c!rulecolor},
- distance=\the\sidebardistance}}%
- \stoppositionoverlay
- \bpos{side:\the\currentsidebar}\ignorespaces}
-
-% \def\dostopsidebar#1%
-% {\removelastspace\tpos{side:#1}\carryoverpar\egroup}
-
-\def\stopsidebar
- {\removelastspace\tpos{side:\the\currentsidebar}\carryoverpar\egroup}
-
-\startMPpositionmethod{mpos:bar}
- \startMPpositiongraphic{mpos:bar}{linecolor,linewidth,distance}%
- StartPage ;
- path p ; p :=
- if \MPp\MPbself=\MPp\MPeself :
- (xpart ulcorner Field[Text][Text],\MPy\MPbself+\MPh\MPbself) --
- (xpart llcorner Field[Text][Text],\MPy\MPeself-\MPd\MPeself) ;
- elseif RealPageNumber=\MPp\MPbself :
- (xpart ulcorner Field[Text][Text],\MPy\MPbself+\MPh\MPbself) --
- (llcorner Field[Text][Text]) ;
- elseif RealPageNumber=\MPp\MPeself :
- (ulcorner Field[Text][Text]) --
- (xpart llcorner Field[Text][Text],\MPy\MPeself-\MPd\MPeself) ;
- else :
- (ulcorner Field[Text][Text]) --
- (llcorner Field[Text][Text]) ;
- fi ;
- p := p shifted (-llcorner Field[Text][Text]-(\MPvar{distance},0)) ;
- interim linecap := butt ;
- draw p
- withpen pencircle scaled \MPvar{linewidth}
- withcolor \MPvar{linecolor} ;
- StopPage ;
- \stopMPpositiongraphic
- \MPpositiongraphic{mpos:bar}{}%
-\stopMPpositionmethod
-
-%D We now reimplement the margin rules handler defined in
-%D \type {core-rul}:
-%D
-%D \setupmarginrules[level=5]
-%D
-%D \startmarginrule[1]
-%D First we set the level at~5. Next we typeset this first
-%D paragraph as a level~1 one. As expected no rule show up.
-%D \stopmarginrule
-%D
-%D \startmarginrule[5]
-%D The second paragraph is a level~5 one. As we can see here,
-%D the marginal rule gets a width according to its level.
-%D \stopmarginrule
-%D
-%D \startmarginrule[8]
-%D It will of course be no surprise that this third paragraph
-%D has a even thicker margin rule. This behavior can be
-%D overruled by specifying the width explictly.
-%D \stopmarginrule
-
-\definesidebar
- [\v!margin]
- [\c!rulecolor=\s!black,
- \c!rulethickness=\@@karulethickness,
- \c!distance=\dimexpr\leftmargindistance-\@@karulethickness/2\relax]
-
-\definecomplexorsimple\startmarginrule
-
-\def\simplestartmarginrule
- {\complexstartmarginrule[1]}
-
-\def\complexstartmarginrule[#1]%
- {\bgroup
- \ifnum#1<\@@kalevel\relax
- \let\stopmarginrule\egroup
- \else
- \def\@@kadefaultwidth{#1}%
- \let\stopmarginrule\dostopmarginrule
- \@EA\startsidebar\@EA[\@EA\v!margin\@EA]%
- \fi}
-
-\def\dostopmarginrule
- {\stopsidebar
- \egroup}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/anch-pgr.mkii b/Master/texmf-dist/tex/context/base/mkii/anch-pgr.mkii
deleted file mode 100644
index 4ceea844c1f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/anch-pgr.mkii
+++ /dev/null
@@ -1,1684 +0,0 @@
-%D \module
-%D [ file=anch-pgr, % split off core-pos
-%D version=1999.08.01,
-%D title=\CONTEXT\ Anchoring Macros,
-%D subtitle=Positioning Graphics,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Anchoring Macros / Grapics}
-
-%D Before we come to graphics support, we have to make sure of
-%D the reference point on the page. The next macro does so and
-%D is hooked into the page building routine.
-
-\unprotect
-
-% in the future, the depth of tail will reflect page depth
-
-\ifx\textheight\undefined \def\textheight{\vsize} \fi
-
-%D The next macros so some housekeeping.
-
-\def\pageanchor{page:0} % for the moment only one pagesize
-\def\textanchor{text:\realfolio}
-\def\headanchor{head:\realfolio} % virtual position
-\def\tailanchor{tail:\realfolio} % virtual position
-
-%D Anchors:
-
-\def\dopresetpositionanchors % also mkii
- {\bgroup
- \!!dimena\ifdim\topskip>\strutht\topskip\else\strutht\fi
- \!!dimenb\dimexpr\MPy\textanchor+\MPh\textanchor-\!!dimena\relax
- \!!dimenc\dimexpr\MPy\textanchor+\strutdp\relax
- \!!dimend\MPx\textanchor
- \!!dimene\MPw\textanchor
- \replacepospxywhd\headanchor\realfolio\!!dimend\!!dimenb\!!dimene\!!dimena\strutdp
- \replacepospxywhd\tailanchor\realfolio\!!dimend\!!dimenc\!!dimene\strutht \strutdp
- \egroup}
-
-\def\presetpositionanchors% compatibility hack (still needed?)
- {\ifpositioning
- \dopresetpositionanchors
- \fi}
-
-%D The first version of this module implemented head and tail
-%D anchors. Currently we stick to just one anchor and derive
-%D the head and tail anchors from this one.
-
-\def\showanchor#1%
- {\expanded{\writestatus{#1}
- {\MPp{#1}\string|\MPx{#1}\string|\MPy{#1}\string|%
- \MPw{#1}\string|\MPh{#1}\string|\MPd{#1}}}}
-
-%D We set these anchors before and after each page.
-
-\appendtoks \presetpositionanchors \to \beforeeverypage
-\appendtoks \presetpositionanchors \to \aftereverypage
-
-% todo: change with each page size change
-
-\def\registerpageposition#1% this one is flushed first !
- {\ifpositioning\ifcase\realpageno\or
- \ifdim\printpaperheight=\paperheight
- \ifdim\printpaperwidth=\paperwidth
- % not needed,
- \else
- \setbox#1\hbox{\hpos\pageanchor{\box#1}}%
- \fi
- \else
- \setbox#1\ruledhbox{\hpos\pageanchor{\box#1}}%
- \fi
- \fi\fi}
-
-\def\placepositionanchors % todo : depth pagebox
- {\ifpositioning
- \setbox\scratchbox\vbox to \textheight
- {\simpletopskipcorrection
- \hbox{\strut\dopositionaction\headanchor}%
- \vfill
- \hbox{\strut\dopositionaction\tailanchor}}%
- \dp\scratchbox\zeropoint
- \wd\scratchbox\makeupwidth % not \zeropoint, else wrong text backgrounds
- \hpos\textanchor{\box\scratchbox}%
- \else
- \vskip\textheight
- \fi}
-
-%D \macros
-%D {positionoverlay,startpositionoverlay}
-%D
-%D As long as we're dealing with graphics it makes much sense
-%D to use the available overlay mechanism. For this purpose, we
-%D define some dedicated overlay extensions.
-%D
-%D \startbuffer[sample]
-%D \defineoverlay [sample] [\positionoverlay{sample}]
-%D
-%D \startpositionoverlay{sample}
-%D \setMPpositiongraphic{A-1}{connectcenter}{from=A-1,to=A-2}
-%D \stoppositionoverlay
-%D \stopbuffer
-%D
-%D \typebuffer[sample]
-%D
-%D \startbuffer[graphic]
-%D \startMPpositiongraphic{connectcenter}
-%D path pa, pb ; pair ca, cb ;
-%D initialize_box(\MPpos{\MPvar{from}}) ; pa := pxy ; ca := cxy ;
-%D initialize_box(\MPpos{\MPvar{to}}) ; pb := pxy ; cb := cxy ;
-%D draw pa withcolor red ;
-%D draw pb withcolor red ;
-%D draw ca -- cb withcolor blue ;
-%D anchor_box(\MPanchor{\MPvar{from}}) ;
-%D \stopMPpositiongraphic
-%D \stopbuffer
-%D
-%D We can best demonstrate this in an example, say:
-%D
-%D \startbuffer[text]
-%D \framed
-%D [backgroundachtergrond=sample,align=middle,width=7cm]
-%D {We want to connect \hpos {A-1} {this} word with its
-%D grammatical cousin \hpos {A-2} {that}.}
-%D \stopbuffer
-%D
-%D \typebuffer[text]
-%D
-%D \startlinecorrection
-%D %\getbuffer[graphic,sample,text]
-%D \stoplinecorrection
-%D
-%D The graphic is defined in the following way, using some
-%D macros defined in an auxiliary \METAPOST\ module that is
-%D preloaded.
-%D
-%D \typebuffer[graphic]
-
-\def\MPanchoridentifier{mpa} % {mp-anchor}
-\def\MPoverlayposprefix{MO::}
-
-% obsolete and wrong anyway
-%
-% \long\def\defineMPpositiongraphic#1%
-% {\long\setvalue{\MPoverlayposprefix#1}}
-
-%D The rest of the definitions concerning such overlays may
-%D look complicated,
-
-\let\currentpositionoverlay\empty
-
-%D Position actions are automatically executed when a position
-%D is set.
-
-\let\MPanchornumber\realfolio
-
-\def\positionoverlay#1% the test prevents too many redundant positions
- {\ifpositioning % in (not used) text* position layers
- \vbox to \overlayheight
- {\doifpositionactionelse{#1::\MPanchoridentifier}%
- {\edef\MPanchorid{#1::\MPanchoridentifier:\MPanchornumber}%
- \edef\MPanchor##1{\MPpos{\MPanchorid}}%
- \the\everyinsertpositionaction
- \copyposition{#1::\MPanchoridentifier}{#1::\MPanchoridentifier:\MPanchornumber}%
- \hpos
- {#1::\MPanchoridentifier:\MPanchornumber}%
- % this is ok
- %{\hbox to \overlaywidth{\dopositionaction{#1::\MPanchoridentifier}\hss}}}%
- % but this one prevents cyclic runs due to
- % rounding errors
- {\setbox\scratchbox\hbox to \overlaywidth{\dopositionaction{#1::\MPanchoridentifier}\hss}%
- \ht\scratchbox\overlayheight
- \dp\scratchbox\zeropoint
- \box\scratchbox}}%
- {\hbox to \overlaywidth{\hss}}%
- \vfill}%
- \fi}
-
-\def\startpositionoverlay#1%
- {\iftrialtypesetting % we don't want redundant entries in the list
- \@EA\gobbleuntil\@EA\stoppositionoverlay
- \else
- \def\currentpositionoverlay{#1}%
- \fi}
-
-\def\stoppositionoverlay
- {\let\currentpositionoverlay\empty}
-
-\def\resetpositionoverlay#1%
- {\dosetpositionaction{#1::\MPanchoridentifier::}{}}
-
-%D Here the complication has to do with collecting actions
-%D for later execution. This collection is especially handy
-%D when we want to move actions to a specific layer.
-%D Such series of actions are stored in a macro (the one
-%D with the funny \type {++}) which is cleaned up after each
-%D invocation.
-
-\newtoks\everycleanpositionaction
-\newtoks\everyinsertpositionaction
-
-\def\cleanuppositionaction#1% not in trialtypesetting
- {\ifcsname\POSactionprefix#1++\endcsname % \ifundefined{\POSactionprefix#1++}\else
- \the\everycleanpositionaction
- \iflocalpositioning
- \letgvalue{\POSactionprefix#1++}\empty
- \else
- \setxvalue{\POSactionprefix#1++}{\getvalue{\POSactionprefix#1++}}%
- \fi
- \fi}
-
-% \def\cleanuppositionaction#1% not in trialtypesetting
-% {\ifcsname\POSactionprefix#1++\endcsname
-% \the\everycleanpositionaction
-% \iflocalpositioning
-% \global\expandafter\let\csname\POSactionprefix#1++\endcsname\empty
-% \else
-% \global\expandafter\let\csname\POSactionprefix#1++\expandafter\endcsname\csname\POSactionprefix#1++\endcsname
-% \fi
-% \fi}
-
-\def\handlepositionaction#1\with#2\on#3%
- {\bgroup
- \ifx\currentpositionoverlay\empty
- \edef\!!stringa{#3}% no layer, just pos itself as anchor
- \else
- \edef\!!stringa{\currentpositionoverlay::\MPanchoridentifier}%
- \fi
- \edef\!!stringc{\POSactionprefix\!!stringa++}%
- \expanded{\dosetpositionaction{\!!stringa}{\noexpand\getvalue{\!!stringc}}}%
- \global\let#1\relax
- \edef\!!stringb{\executeifdefined\!!stringc\empty}%
- \setxvalue\!!stringc{\!!stringb#1#2}%
- \egroup}
-
-%D The indirectness enables us redefine macros for special
-%D purposes, like a cleanup.
-
-\def\handlepositionboxes#1#2#3%
- {\handlepositionaction\dohandlepositionboxes\with{#1}{#2}{#3}\on{#2}}
-
-\def\doinsertpositionboxes#1#2#3% pos tag setups
- {\ifnum\MPp{#1}=\realpageno\relax % can be sped up
- \executeifdefined{\MPoverlayposprefix#1}\gobblethreearguments{#1}{#2}{#3}%
- \fi}
-
-\appendtoks
- \let\dohandlepositionboxes\doinsertpositionboxes % was handle ?
-\to \everyinsertpositionaction
-
-\def\docleanpositionboxes#1#2#3% pos tag setups
- {\ifnum\MPp{#1}<\realpageno \else
- \noexpand \dohandlepositionboxes{#1}{#2}{#3}% reinsert
- \fi}
-
-\appendtoks
- \let\dohandlepositionboxes\docleanpositionboxes
-\to \everycleanpositionaction
-
-%D A position graphic is a normal (non||reused) \METAPOST\
-%D graphic, used immediately, with zero dimensions, so that a
-%D sequence of them does not harm.
-
-\newbox\positiongraphicbox
-
-\def\startMPpositiongraphic % id setups
- {\dodoublegroupempty\dostartMPpositiongraphic}
-
-\long\def\dostartMPpositiongraphic#1#2#3\stopMPpositiongraphic
- {\long\setgvalue{MPG:#1}% tag list mpcode
- {\useMPpositiongraphic{#1}{#2}{#3}}}
-
-\let\stopMPpositiongraphic\relax
-
-% \def\prepareMPpositionvariables
-% {\ifundefined{\@@meta self}\setvalue{\@@meta self}{\currentposition}\fi
-% \ifundefined{\@@meta from}\setvalue{\@@meta from}{\currentposition}\fi}
-
-\def\prepareMPpositionvariables
- {\ifcsname\@@meta self\endcsname\else\setvalue{\@@meta self}{\currentposition}\fi
- \ifcsname\@@meta from\endcsname\else\setvalue{\@@meta from}{\currentposition}\fi}
-
-\newif\ifcollectMPpositiongraphics \collectMPpositiongraphicstrue
-
-\long\def\useMPpositiongraphic#1#2#3%
- {\bgroup
- \prepareMPvariables{#2}%
- \prepareMPpositionvariables
- \enableincludeMPgraphics
- \ifcollectMPpositiongraphics % no longer needed in mkiv
- \expanded{\startMPdrawing#3\noexpand\stopMPdrawing}%
- \global\MPdrawingdonetrue
- \else\ifx\startMPgraphic\undefined
- \startMPcode#3\stopMPcode
- \else
- \startMPgraphic#3\stopMPgraphic
- \loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{}%
- \deallocateMPslot\currentMPgraphic
- \placeMPgraphic
- \fi\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
-
-\let\stopMPpositionmethod\relax
-
-%D Simple one position graphics.
-
-\def\setMPpositiongraphic
- {\dotriplegroupempty\dosetMPpositiongraphic}
-
-\def\dosetMPpositiongraphic#1#2#3% pos tag vars
- {\ifx\currentpositionoverlay\empty
- \dosetpositionaction{#1}{\MPpositiongraphic{#2}{#3}}%
- \else % silly can be one
- \handlepositiongraphics{#1}{#2}{#3}%
- \fi}
-
-\def\handlepositiongraphics#1#2#3% combine with boxes
- {\handlepositionaction\dohandleMPpositiongraphic\with{#1}{#2}{#3}\on{#2}}
-
-\def\doinsertMPpositiongraphic#1#2#3% pos tag setups
- {\ifnum\MPp{#1}=\realpageno\relax % extra saveguard
- \def\currentposition{#1}\MPpositiongraphic{#2}{#3}%
- \fi}
-
-\appendtoks
- \let\dohandleMPpositiongraphic\doinsertMPpositiongraphic
-\to \everyinsertpositionaction
-
-\def\docleanMPpositiongraphic#1#2#3% pos tag setups
- {\ifnum\MPp{#1}<\realpageno \else
- \noexpand \dohandleMPpositiongraphic{#1}{#2}{#3}%
- \fi}
-
-\appendtoks
- \let\dohandleMPpositiongraphic\docleanMPpositiongraphic
-\to \everycleanpositionaction
-
-%D Graphics that span two positions.
-
-\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 Some of these macros are pretty clever but too complicated
-%D to be nice. When things are kind of stable I'll clean up
-%D this mess.
-
-%D THIS NEEDS A CLEANUP
-
-\setupMPvariables
- [mpos:box]
- [linecolor=blue,
- linewidth=\linewidth,
- fillcolor=lightgray,
- filloffset=\!!zeropoint]
-
-\startMPpositiongraphic{mpos:box}{fillcolor,linecolor,linewidth}
- initialize_box(\MPpos{\MPvar{self}}) ;
- boxfillcolor := \MPvar{fillcolor} ;
- boxlinecolor := \MPvar{linecolor} ;
- boxlinewidth := \MPvar{linewidth} ;
- boxfilloffset := \MPvar{filloffset} ;
- draw_box ;
- anchor_box(\MPanchor{\MPvar{self}}) ;
-\stopMPpositiongraphic
-
-\setupMPvariables
- [mpos:area]
- [linecolor=blue,
- linewidth=\linewidth,
- fillcolor=lightgray,
- filloffset=\!!zeropoint]
-
-\startMPpositiongraphic{mpos:area}{fillcolor,linecolor,linewidth}
- initialize_area(\MPpos{b:\MPvar{self}},\MPpos{e:\MPvar{self}}) ;
- boxfillcolor := \MPvar{fillcolor} ;
- boxlinecolor := \MPvar{linecolor} ;
- boxlinewidth := \MPvar{linewidth} ;
- boxfilloffset := \MPvar{filloffset} ;
- draw_area ;
- anchor_area(\MPanchor{b:\MPvar{self}}) ;
-\stopMPpositiongraphic
-
-%D This is already cleaned up.
-
-% gridtype = 1 => baseline
-% gridtype = 2 => betweenline
-
-\setupMPvariables
- [mpos:par]
- [mp=mpos:par:shape,
- gridtype=0,
- linetype=1,
- filltype=1,
- dashtype=0, % 1 = dashed, 2 = dashed with background
- %snaptops=true, % not that nice: true/false
- gridcolor=red,
- linecolor=blue,
- fillcolor=lightgray,
- filloffset=\!!zeropoint,
- linewidth=\linewidth,
- gridwidth=\linewidth,
- gridshift=\!!zeropoint,
- lineradius=.5\bodyfontsize,
- dashtype=1]
-
-\startuseMPgraphic{mpos:par:shape}
- \iftracepositions show_par \else draw_par \fi ;
-\stopuseMPgraphic
-
-\startuseMPgraphic{mpos:par:setup}
- boxgridtype := \MPvar{gridtype} ;
- boxlinetype := \MPvar{linetype} ;
- boxfilltype := \MPvar{filltype} ;
- boxdashtype := \MPvar{dashtype} ;
- boxgridcolor := \MPvar{gridcolor} ;
- boxlinecolor := \MPvar{linecolor} ;
- boxfillcolor := \MPvar{fillcolor} ;
- boxfilloffset := \MPvar{filloffset} ;
- boxlinewidth := \MPvar{linewidth} ;
- boxgridwidth := \MPvar{gridwidth} ;
- boxgridshift := \MPvar{gridshift} ;
- boxlineradius := \MPvar{lineradius} ;
- %snap_multi_par_tops := \MPvar{snaptops} ;
-\stopuseMPgraphic
-
-\startuseMPgraphic{mpos:par:extra}
- % user stuff, like:
- % snap_multi_par_tops := false ;
-\stopuseMPgraphic
-
-\ifx\MPparcounter\undefined \newcounter\MPparcounter \fi
-
-\def\MPself {\MPvar{self}}
-\def\MPbself {b:\MPself}
-\def\MPeself {e:\MPself}
-\def\MPwself {w:\MPself}
-\def\MPparanchor{p:\MPparcounter}
-
-\def\MPl#1{\MPplus{#1}20}
-\def\MPr#1{\MPplus{#1}30}
-
-\startMPpositionmethod{mpos:par} %%%%%%%%%%% will become obsolete
- \edef\MPparcounter{\MPv\MPbself{1}{0}}%
- \doifpositionelse\MPwself
- {\startMPpositiongraphic{mpos:par}{fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius}
- initialize_area_par(\MPpos\MPbself,
- \MPpos\MPeself,
- \MPpos\MPwself) ;
- \includeMPgraphic{mpos:par:setup} ;
- \includeMPgraphic{mpos:par:extra} ;
- \includeMPgraphic{\MPvar{mp}} ;
- anchor_par(\MPanchor\MPbself) ;
- \stopMPpositiongraphic}
- {\startMPpositiongraphic{mpos:par}{fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius}
- initialize_par(\MPpos\MPbself,
- \MPpos\MPeself,
- \MPpos\textanchor,
- \MPpos\MPparanchor,
- \MPvv \MPparanchor{0pt,0pt,0pt,0pt,0,0pt}) ;
- \includeMPgraphic{mpos:par:setup} ;
- \includeMPgraphic{mpos:par:extra} ;
- \includeMPgraphic{\MPvar{mp}} ;
- anchor_par(\MPanchor\MPbself) ;
- \stopMPpositiongraphic}%
- \MPpositiongraphic{mpos:par}{}%
-\stopMPpositionmethod
-
-%D The next alternative works in columnsets :
-
-% \iftracepositions show\else draw\fi_multi_pars ;
-
-\startuseMPgraphic{mpos:par:columnset}
- \iftracepositions show_multi_pars \else draw_multi_pars \fi ;
-\stopuseMPgraphic
-
-\startuseMPgraphic{mpos:par:sideline}{linecolor,lineoffset}
- for i=1 upto nofmultipars :
- fill leftboundary multipars[i]
- shifted (-\MPvar{lineoffset},0)
- rightenlarged 1mm withcolor \MPvar{linecolor} ;
- endfor ;
-\stopuseMPgraphic
-
-\startMPpositionmethod{mpos:par:columnset}
- \edef\MPparcounter{\MPv\MPbself{1}{0}}%
- \startMPpositiongraphic{mpos:par}{fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius}
- \includeMPgraphic{mpos:par:setup} ;
- \includeMPgraphic{mpos:par:extra} ;
- prepare_multi_pars(\MPpos\MPbself,\MPpos\MPeself,\MPpos\MPwself,
- \MPpos\MPparanchor,\MPvv\MPparanchor{0pt,0pt,0pt,0pt,0,0pt}) ;
- relocate_multipars(-\MPxy\MPanchorid) ; % inside layerpos
- \includeMPgraphic{\MPvar{mp}} ;
- \stopMPpositiongraphic
- \MPpositiongraphic{mpos:par}{}%
-\stopMPpositionmethod
-
-%D \starttyping
-%D \setupbackground
-%D [test]
-%D [mp=mpos:par:columnset,
-%D method=mpos:par:columnset]
-%D \stoptyping
-
-%D We need to treat floats in a special way.
-
-\startMPinitializations
- local_multi_par_area:=\iflocalpositioning true\else false\fi;
-\stopMPinitializations
-
-\def\textbackgroundoverlay#1%
- {\iflocalpositioning\v!local\else\v!text\fi#1}
-
-\newcounter\localpositionnumber
-
-\def\MPanchornumber
- {\iflocalpositioning\localpositionnumber\else\realfolio\fi}
-
-%D So far for the trickery.
-
-\newcount\textbackgrounddepth
-
-\appendtoks
- \expanded{\savecurrentvalue\noexpand\totalnofparbackgrounds{\number\nofparbackgrounds}}%
-\to \everybye
-
-\appendtoks
- \initializeparbackgrounds
-\to \everystarttext
-
-\ifx\totalnofparbackgrounds\undefined \newcounter\totalnofparbackgrounds \fi
-\ifx\nofparbackgrounds \undefined \newcount \nofparbackgrounds \fi
-
-\def\initializeparbackgrounds
- {\ifcase\totalnofparbackgrounds\else
- \enableparpositions
- \fi}
-
-\unexpanded\def\starttextbackground
- {\bgroup
- \advance\textbackgrounddepth\plusone
- \dodoubleempty\dostarttextbackground}
-
-\let\dodostarttextbackground\relax
-\let\dodostoptextbackground \relax
-
-\def\currentparbackground{pbg:0}
-\def\nextparbackground {pbg:1}
-
-\def\btbanchor{b:\currentparbackground}
-\def\etbanchor{e:\currentparbackground}
-
-\def\nextbtbanchor{b:\nextparbackground}
-\def\nextetbanchor{e:\nextparbackground}
-
-\def\textbackgroundparameter#1%
- {\csname\??td\currenttextbackground#1\endcsname}
-
-\let\backgroundvariable\textbackgroundparameter % will become obsolete
-
-% \definetextbackground[more][state=start,backgroundcolor=red] % location=paragraph
-% \definetextbackground[test][state=start,backgroundcolor=green]
-%
-% \page \placefigure[left]{}{}
-%
-% \starttextbackground[test]
-% \readfile{ward}{}{}
-% \starttextbackground[more]
-% \readfile{ward}{}{}
-% \stoptextbackground
-% \readfile{ward}{}{}
-% \stoptextbackground
-%
-% \page \placefigure[right]{}{}
-%
-% \starttextbackground[test]
-% \readfile{ward}{}{}
-% \starttextbackground[more]
-% \readfile{ward}{}{}
-% \stoptextbackground
-% \readfile{ward}{}{}
-% \stoptextbackground
-
-\def\dostarttextbackground[#1][#2]%
- {\checktextbackgrounds
- \def\currenttextbackground{#1}%
- \global\advance\nofparbackgrounds\plusone
- \edef\currentparbackground{pbg:\number\nofparbackgrounds}%
-% \bgroup
-% \advance\nofparbackgrounds\plusone
-% \xdef\nextparbackground{pbg:\number\nofparbackgrounds}%
-% \egroup
- \xdef\nextparbackground{pbg:\number\numexpr\nofparbackgrounds+\plusone\relax}% still xdef ?
- % todo : \synchonizepositionpage{b:\currentparbackground}{s:\currentparbackground}%
- \setuptextbackground[#1][#2]%
- \let\dodostarttextbackground\relax
- \let\dodostoptextbackground \relax
- \doif{\textbackgroundparameter\c!state}\v!start{\dopresettextbackground{#1}}%
- \dodostarttextbackground}
-
-% todo \backgroundvariable\c!variant
-
-\def\dopresettextbackground#1% todo: \backgroundparameter
- {\ExpandFirstAfter\processaction % \EFA niet echt nodig
- [\textbackgroundparameter\c!location]
- [ \v!text=>\let\dodostarttextbackground\dostarttextbackgroundtxt
- \let\dodostoptextbackground \dostoptextbackgroundtxt,
- \v!paragraph=>\let\dodostarttextbackground\dostarttextbackgroundpar
- \let\dodostoptextbackground \dostoptextbackgroundpar,
- \v!none=>\let\dodostarttextbackground\relax
- \let\dodostoptextbackground \relax]%
- \ifx\dodostarttextbackground\dostarttextbackgroundpar % untested
- \ifnum\textbackgrounddepth>\plusone % new
- \let\dodostarttextbackground\dostarttextbackgroundtxt
- \let\dodostoptextbackground \dostoptextbackgroundtxt
- \fi
- \fi
- \doifelse{\textbackgroundparameter\c!frame}\v!on
- {\doifelse{\textbackgroundparameter\c!corner}\v!round
- {\setvalue{\??td#1\c!frame}{2}}
- {\setvalue{\??td#1\c!frame}{1}}}
- {\setvalue{\??td#1\c!frame}{0}}%
- \doifelse{\textbackgroundparameter\c!background}\v!color
- {\setvalue{\??td#1\c!background}{1}}
- {\setvalue{\??td#1\c!background}{0}}%
- %\startpositionoverlay{\v!text\getvalue{\??td#1\c!level}}%
- \startpositionoverlay{\textbackgroundoverlay{\textbackgroundparameter\c!level}}%
- \expanded
- {\setMPpositiongraphicrange % moet veel efficienter
- {\btbanchor}% {b:\currentparbackground}%
- {\etbanchor}% {e:\currentparbackground}%
- {\textbackgroundparameter\c!method}%
- {self=\currentparbackground,
- mp=\textbackgroundparameter\c!mp,
- gridtype=\textbackgroundparameter\c!alternative,
- filltype=\textbackgroundparameter\c!background,
- linetype=\textbackgroundparameter\c!frame,
- dashtype=\textbackgroundparameter{dash}, % to be internationalized
- gridcolor=\textbackgroundparameter\c!framecolor,
- linecolor=\textbackgroundparameter\c!framecolor,
- lineoffset=\textbackgroundparameter\c!frameoffset,
- fillcolor=\textbackgroundparameter\c!backgroundcolor,
- filloffset=\textbackgroundparameter\c!backgroundoffset,
- gridwidth=\textbackgroundparameter\c!rulethickness,
- gridshift=\textbackgroundparameter\c!voffset,
- linewidth=\textbackgroundparameter\c!rulethickness,
- lineradius=\textbackgroundparameter\c!radius}}%
- \stoppositionoverlay}
-
-\def\stoptextbackground
- {\dodostoptextbackground
- \carryoverpar\egroup}
-
-\def\starttextbackgroundmanual
- {\dostartattributes{\??td\currenttextbackground}\c!style\c!color\empty
- \fpos\currentparbackground\ignorespaces}
-
-\def\stoptextbackgroundmanual
- {\tpos\currentparbackground
- \dostopattributes}
-
-\def\dostarttextbackgroundtxt
- {\ifvmode \dontleavehmode \fi % was leavevmode, brrr
- \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}}
-
-\newskip\textbackgroundskip
-
-\def\dostarttextbackgroundpar
- {\endgraf % new
- \textbackgroundparameter\c!before
- \noindent
- \ifgridsnapping
- \doassignsomeskip\textbackgroundparameter\c!topoffset\to\textbackgroundskip
- \ifdim\textbackgroundskip>\zeropoint
- \struttedbox{\hbox{\raise\textbackgroundskip\hbox{\fpos\currentparbackground}}}%
- \else
- \fpos\currentparbackground
- \fi
- \else
- \fpos\currentparbackground
- \fi
- \bgroup
- \endgraf % we need a vertical nobreak - 29/06/2004
- \nobreak \vskip-\lineheight \nobreak
- \ifgridsnapping \else
- \doassignsomeskip\textbackgroundparameter\c!topoffset\to\textbackgroundskip
- \ifdim\textbackgroundskip>\zeropoint
- \kern\textbackgroundskip\nobreak
- \fi
- \fi
- \dosetleftskipadaption{\textbackgroundparameter\c!leftoffset}%
- \advance\leftskip\leftskipadaption
- \dosetleftskipadaption{\textbackgroundparameter\c!rightoffset}%
- \advance\rightskip\leftskipadaption
- % new
- \dosetraggedcommand{\textbackgroundparameter\c!align}%
- \raggedcommand
- %
- \dostartattributes{\??td\currenttextbackground}\c!style\c!color\empty
- \nowhitespace
-\nobreak % new per 23/04/2006 (else potential break when whitespace)
- \seteffectivehsize
- \doinhibitblank % \blank[\v!disable]% new
- \par}
-
-\def\dostoptextbackgroundpar
- {\par
- \removelastskip % new
- \dostopattributes
- \doassignsomeskip\textbackgroundparameter\c!bottomoffset\to\textbackgroundskip
- \ifdim\lastskip>\zeropoint
- \advance\textbackgroundskip-\lastskip
- \fi
- \ifgridsnapping \else \ifdim\textbackgroundskip>\zeropoint
- \kern\textbackgroundskip\nobreak
- \fi \fi
- \nobreak \vskip-\lineheight \nobreak
- \nowhitespace
- \egroup
-\bgroup \forgeteverypar % NOT REALLY NEEDED, SAVES HASH/MEM
- \nobreak \noindent \strut \hfill \kern\zeropoint
- \doassignsomeskip\textbackgroundparameter\c!bottomoffset\to\textbackgroundskip
- \ifgridsnapping % experimental, pascal (todo: topoffset in same way)
- \ifdim\textbackgroundskip>\zeropoint
- \struttedbox{\hbox{\lower\textbackgroundskip\hbox{\tpos\currentparbackground}}}%
- \else
- \tpos\currentparbackground
- \fi
- \else
- \tpos\currentparbackground
- \fi
-\egroup
- \endgraf % new
- \textbackgroundparameter\c!after}
-
-\let\textparpages \!!zeropoint
-\let\textparheight\!!zeropoint
-\let\textparwidth \!!zeropoint
-
-\def\calculatetextpardimensions
- {\docalculatetextpardimensions\btbanchor \etbanchor \MPparanchor}
-
-\def\calculatenexttextpardimensions
- {\docalculatetextpardimensions\nextbtbanchor\nextetbanchor\relax}
-
-\def\docalculatetextpardimensions#1#2#3% todo: dimexpr
- {\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 % - and then + ?
- \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,dash, % dash not yet internationalized
- \c!radius,\c!frame,\c!framecolor,\c!rulethickness,\c!voffset,\c!frameoffset,
- \c!leftoffset,\c!rightoffset,\c!topoffset,\c!bottomoffset]%
- \getparameters[\??td#1][#2]%
- \doifvalue{\??td#1\c!state}\v!start\checktextbackgrounds
- \unexpanded\setvalue{#1}%
- {\groupedcommand{\starttextbackground[#1]}{\stoptextbackground}}%
- \setvalue{\e!start#1}{\starttextbackground[#1]}%
- \setvalue{\e!stop #1}{\stoptextbackground}%
- \fi}
-
-\def\setuptextbackground
- {\dodoubleargument\dosetuptextbackground}
-
-\def\dosetuptextbackground[#1][#2]%
- {\ifsecondargument
- \doifelsenothing{#1}
- {\dodosetuptextbackground{#2}\empty}
- {\processcommalist[#1]{\dodosetuptextbackground{#2}}}%
- \else
- \dodosetuptextbackground{#1}\empty
- \fi}
-
-\def\dodosetuptextbackground#1#2%
- {\getparameters[\??td#2][#1]%
- \def\currenttextbackground{#2}%
- \doifvalue{\??td#2\c!state}\v!start\checktextbackgrounds}
-
-\let\currenttextbackground\empty
-
-\def\checktextbackgrounds
- {\ifproductionrun
- \enabletextarearegistration
- \enablehiddenbackground
- \fi}
-
-\setuptextbackground
- [\c!mp=mpos:par:columnset, % buggy: mpos:par:shape
- \c!method=mpos:par:columnset, %
- \c!state=\v!start,
- \c!location=\v!text,
- \c!leftoffset=\!!zeropoint, % 1em,
- \c!rightoffset=\textbackgroundparameter\c!leftoffset,
- \c!topoffset=\!!zeropoint, % \v!medium,
- \c!bottomoffset=\textbackgroundparameter\c!topoffset,
- \c!level=-1,
- \c!alternative=0,
- \c!align=,
- dash=0, % to be internationalized
- \c!background=\v!color,
- \c!backgroundcolor=lightgray,
- \c!backgroundoffset=\!!zeropoint,
- \c!corner=\v!rectangular,
- \c!radius=.5\bodyfontsize,
- \c!voffset=\!!zeropoint,
- \c!frame=\v!on,
- \c!framecolor=blue,
- \c!rulethickness=\linewidth]
-
-%D As an example we define a grid background:
-
-\definetextbackground
- [\v!grid]
- [\c!state=\v!stop,
- \c!location=\v!paragraph,
- \c!frame=\v!off,
- \c!framecolor=red,
- \c!background=,
- \c!alternative=1]
-
-\ifx\basegrid\undefined \else \letvalue\v!grid=\basegrid \fi
-
-% lelijk, aanpassen, opties
-
-\setupMPvariables
- [mpos:connect]
- [linecolor=red,
- linewidth=1pt]
-
-\setupMPvariables
- [mpos:encircle]
- [fillcolor=lightgray,
- filloffset=\!!zeropoint,
- linecolor=blue,
- linewidth=1pt]
-
-\startuseMPgraphic{mpos:common:ec}
- path pa ; pair ca ; color lc ; numeric lw ;
- lw := \MPvar{linewidth} ;
- lc := \MPvar{linecolor} ;
- initialize_box(\MPpos{\MPvar{self}}) ;
- pa := pxy ; ca := cxy ; pa := boundingbox pa enlarged 2lw ;
- pa := llcorner pa...lrcorner pa...urcorner pa...ulcorner pa...cycle ;
- drawoptions (withpen pencircle scaled lw withcolor lc) ;
-\stopuseMPgraphic
-
-\startMPpositiongraphic{mpos:encircle}{linecolor,fillcolor,linewidth}
- \includeMPgraphic{mpos:common:ec}
- fill pa withcolor \MPvar{fillcolor} ; draw pa ;
- anchor_box(\MPanchor{\MPvar{self}}) ;
-\stopMPpositiongraphic
-
-\startMPpositiongraphic{mpos:connect}{linecolor,linewidth}
- path pb, pc ; pair cb, cc ;
- \includeMPgraphic{mpos:common:ec}
- initialize_box(\MPpos{\MPvar{to}}) ;
- pb := pxy ; cb := cxy ; pb := boundingbox pb enlarged 2lw ;
- pb := llcorner pb...lrcorner pb...urcorner pb...ulcorner pb...cycle ;
- pc := ca {up} .. {down} cb ;
- cc := (pc intersection_point pa) ;
- if intersection_found :
- pc := pc cutbefore cc ;
- cc := (pc intersection_point pb) ;
- if intersection_found :
- pc := pc cutafter cc ;
- drawarrow pc ; drawarrow reverse pc ;
- fi ;
- fi ;
- anchor_box(\MPanchor{\MPvar{self}}) ;
-\stopMPpositiongraphic
-
-%D \macros
-%D {stackposdown, stackposup, stackposleft,stackposright}
-%D
-%D A non graphic example of the use of positioning, is to stack
-%D text in for instance the margin.
-%D
-%D \stackposdown \inleft {some text}The text \type {some text}
-%D goes into the left margin, and \stackposdown \inleft {some
-%D more}\type {some more} as well. When they overlap, they
-%D will not touch.
-%D
-%D Here we said \type {\stackposdown \inleft{some text}}. Instead
-%D of \stackposleft \inleft {one}stacking \stackposleft \inleft
-%D {two}vertically, one can stack horizontally by \stackposleft
-%D \inleft {three}using \type {\stackposleft}.
-%D
-%D We can go in all four directions, using \type {\stackposdown},
-%D \type {\stackposup}, \type {\stackposleft} and \type
-%D {\stackposright}.
-
-\def\stackposdistance{.5em}
-
-\newcount\currentautopos
-\newcount\previousautopos
-
-\def\POSstackprefix{stack:}
-
-\def\dostackposbox#1#2%
- {\dowithnextbox
- {#2{\previousautopos\currentautopos
- \global\advance\currentautopos\plusone
- \edef\currentposition {\POSstackprefix\number\currentautopos}%
- \edef\previousposition{\POSstackprefix\number\previousautopos}%
- \hpos\currentposition{\doifoverlappingelse\currentposition\previousposition{#1}{\flushnextbox}}}}%
- \hbox}
-
-\def\stackposup {\dostackposbox{\raise\lineheight\flushnextbox}}
-\def\stackposdown {\dostackposbox{\lower\lineheight\flushnextbox}}
-\def\stackposleft {\dostackposbox{\copy\nextbox\hskip\nextboxwd\hskip\stackposdistance}}
-\def\stackposright{\dostackposbox{\hskip\stackposdistance\hskip\nextboxwd\flushnextbox}}
-
-%D \macros
-%D {stackeddown}
-%D
-%D However, a better implementation is possible with the
-%D following macro. We now have an extra key \type {stack} for
-%D margin settings. When set to \type {yes}, this macro comes
-%D into action.
-
-% Because there can be many stacked items in a line and successive lines, we
-% play dirty and adapt the position and height of the current node so that
-% this becomes visible to a next pass.
-%
-% \startbuffer
-% \inleft {test 1} test 1 \inleft {test 2} test 2 \endgraf
-% \inleft {test 3} test 3
-% \stopbuffer
-% \getbuffer \typebuffer \flushstatus \page
-%
-% \startbuffer
-% \inleft {test 1} test 1 \inleft {test 2} test 2 \inleft {test 3} test 3 \endgraf
-% \inleft {test 4} test 4
-% \stopbuffer
-% \getbuffer \typebuffer \flushstatus \page
-%
-% \startbuffer
-% \inleft {test 1} test 1 \endgraf
-% \inleft {test 2} test 2 \endgraf
-% \inleft {test 3} test 3
-% \stopbuffer
-% \getbuffer \typebuffer \flushstatus \page
-%
-% \startbuffer
-% \inleft {test 1\\test 1} test 1 \inleft {test 2} test 2 \endgraf
-% \inleft {test 3} test 3
-% \stopbuffer
-% \getbuffer \typebuffer \flushstatus \page
-%
-% \startbuffer
-% \inleft {test 1\\test 1\\test 1\\test 1\\test 1} test 1 \endgraf
-% test 2 \endgraf
-% \inleft {test 3} test 3
-% \stopbuffer
-% \getbuffer \typebuffer \flushstatus \page
-%
-% \startbuffer
-% \inleft{test 1} test \inleft{test 2} test \inleft{test 3\\test 3} test
-% \stopbuffer
-% \getbuffer \typebuffer \flushstatus \page
-%
-% \startbuffer
-% \inleft{test 1\\test 1\\test 1} test \inleft{test 2\\test 2} test \inleft{test 3\\test 3\\test 3} test \endgraf
-% \inleft{test 1\\test 1\\test 1} test \inleft{test 2\\test 2} test \inleft{test 3\\test 3\\test 3} test
-% \stopbuffer
-% \getbuffer \typebuffer \flushstatus \page
-
-\newdimen\laststackvmove % use \scratchdimenone instead of skip
-
-\def\stackeddown
- {\bgroup
- % this macro assumes a few things and is meant to work for margin notes
- \dowithnextbox
- {\global\advance\currentautopos\plusone
- \global\laststackvmove\zeropoint
- \hpos{\POSstackprefix\number\currentautopos}
- {\edef\next
- {\nextboxht\the\nextboxht
- \nextboxdp\the\nextboxdp
- \nextboxwd\the\nextboxwd}%
- \previousautopos\currentautopos
- \scratchdimen\zeropoint
- \scratchcounter\zerocount
- \doloop
- {\advance\previousautopos\minusone
- \edef\currentposition {\POSstackprefix\number\currentautopos}%
- \edef\previousposition{\POSstackprefix\number\previousautopos}%
- \ifnum\MPp\currentposition=\MPp\previousposition\relax
- %\registerstatus{doing \number\currentautopos/\number\previousautopos}%
- \doifoverlappingelse\currentposition\previousposition
- {\scratchskip\dimexpr
- \MPy\currentposition
- -\MPy\previousposition
- -\MPd\currentposition % untested
- +\MPd\previousposition % untested
- +\MPh\currentposition
- \relax\relax % second relax realy needed, forgotten while dimexpressing
- % todo: also take depth into account
- \ifdim\scratchskip<\scratchdimen
- %\registerstatus{no \the\scratchskip}%
- \else
- %\registerstatus{yes \the\scratchskip}%
- \scratchdimen\scratchskip
- \fi}%
- \donothing % {\registerstatus{next}}%
- \ifnum\previousautopos<\zerocount\exitloop\fi
- \else
- \exitloop
- \fi}%
- \ifdim\scratchdimen=\zeropoint \else
- \bgroup
- \edef\currentposition{\POSstackprefix\number\currentautopos}%
- \scratchskip\scratchdimen
- \advance\scratchskip\MPh\currentposition
- \scratchdimen-\scratchdimen
- \advance\scratchdimen\MPy\currentposition
- %\registerstatus{old \number\currentautopos: \MPy\currentposition/\MPh\currentposition}%
- \expanded{\replacepospxywhd
- {\currentposition}{\MPp\currentposition}{\MPx\currentposition}{\the\scratchdimen}%
- {\MPw\currentposition}{\the\scratchskip}{\MPd\currentposition}}%
- %\registerstatus{new \number\currentautopos: \MPy\currentposition/\MPh\currentposition}%
- \egroup
- \global\laststackvmove\scratchdimen % new
- \setbox\nextbox\iftracepositions\@EA\ruledhbox\else\@EA\hbox\fi
- {\lower\scratchdimen\flushnextbox}%
- \next
- %\registerstatus{\strut}%
- \fi
- \flushnextbox}%
- \egroup}}
-
-%D The next hack make sure that margin texts near faulty
-%D strutted lines are handled ok.
-
-\newif\ifrepositionmarginbox \repositionmarginboxtrue
-
-\newcount\currentmarginpos
-
-\def\dopositionmarginbox#1%
- {\bgroup
- \ifrepositionmarginbox
- \global\advance\currentmarginpos\plusone
- %\setposition{\s!margin:\number\currentmarginpos}% not always
- \ifcase\marginrepositionmethod
- % nothing
- \or
- % nothing
- \or
- % stack / page check yet untested
- \setposition{\s!margin:\number\currentmarginpos}%
- \scratchdimen\MPy{\s!margin:\number\currentmarginpos}%
- \global\advance\currentmarginpos\plusone
- \advance\scratchdimen -\MPy{\s!margin:\number\currentmarginpos}%
- \advance\scratchdimen -\strutdp
- % new but bugged
- % \setbox#1\hbox
- % {\hskip-\MPx{\s!margin:\number\currentmarginpos}%
- % \hskip\MPx{head:\realfolio}%
- % \box#1}%
- % so far
- \setbox#1\hbox
- {\setposition{\s!margin:\number\currentmarginpos}%
- \raise\scratchdimen\box#1}%
- \or
- % move up
- \setposition{\s!margin:\number\currentmarginpos}%
- \ifnum\MPp{p:\number\parposcounter}=\MPp{\s!margin:\number\currentmarginpos}\relax
- \scratchdimen\dimexpr\MPy{p:\number\parposcounter}-\MPy{\s!margin:\number\currentmarginpos}\relax
- \expanded{\setbox#1\hbox{\raise\scratchdimen\box#1}\ht#1\the\ht#1\dp#1\the\dp#1}%
- \fi
- \or
- % move up, assume end of par
- \setposition{\s!margin:\number\currentmarginpos}%
- \ifnum\MPp{p:\number\parposcounter}=\MPp{\s!margin:\number\currentmarginpos}\relax
- \getnoflines\margincontentheight
- \advance\noflines\minusone
- \scratchdimen\noflines\lineheight
- \else
- \scratchdimen\dimexpr\MPy{p:\number\parposcounter}-\MPy{\s!margin:\number\currentmarginpos}\relax
- \fi
- \expanded{\setbox#1\hbox{\raise\scratchdimen\box#1}\ht#1\the\ht#1\dp#1\the\dp#1}%
- \fi
- \dp#1\zeropoint
- \ht#1\zeropoint
- \fi
- \graphicvadjust{\box#1}%
- \egroup}
-
-\chardef\marginrepositionmethod\plusone % sidemethod
-\chardef\margincontentmethod \plusthree % textmethod % beware: 1 = old method
-\chardef\marginpagecheckmethod \plusone % splitmethod
-
-%D For a right menu, a sequence of calls to \type
-%D {right_menu_button} is generated.
-%D
-%D \starttyping
-%D right_menu_button (n, p, s=0/1/2, x, y, w, h, d) ;
-%D \stoptyping
-%D
-%D Here, n is the number of the button, s a status variable,
-%D while the rest is positional info. The status variable is
-%D 0, 1 or~2: not found, found and found but current page.
-
-% 0=not found 1=found 2=current page
-
-% geen leeg
-
-\newtoks\MPmenutoks
-
-\def\MPmenubuttons#1{\the\MPmenutoks}
-
-\appendtoks \global\MPmenutoks\emptytoks \to \everyshipout
-
-% 0=notfound 1=found 2=currentpage
-
-\def\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,\MPpos{#1:\currentamposition}) ;
- \to \MPmenutoks}%
- \hpos{#1:\currentamposition}{#3}}
- {#3}}
-
-\def\do@@ammenuposition#1%
- {\ifnum\currentamposition>0
- \dowithnextbox{\hpos{menu:#1:\realfolio}{\flushnextbox}}\hbox
- % \hpos{menu:#1:\realfolio} % also ok if we skip over fi
- \fi}
-
-%D \macros
-%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.
-
-\newcount\noftabpositions
-\newtoks \posXCtoks
-
-\def\tbPOSprefix
- {tbp:\number\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\docommand##1{\dododoGSC[##1:##1]}%
- \processcommalist[#1]\docommand}
-
-\def\dodododoGFC[#1:#2:#3]%
- {\remappositionframed{#2}{\tbPOSprefix#1}%
- \bpos{\tbPOSprefix#1}}
-
-\def\dododoGFC[#1]%
- {\def\docommand##1{\dodododoGFC[##1:##1]}%
- \processcommalist[#1]\docommand}
-
-\def\dodoGFC[#1]%
- {\doglobal\appendtoks\dododoGFC[#1]\to\posXCtoks\NC}
-
-\def\dododododoGTC[#1:#2]%
- {\epos{\tbPOSprefix#1}}
-
-\def\dodododoGTC[#1]%
- {\def\docommand##1{\dododododoGTC[##1:##1]}%
- \processcommalist[#1]\docommand}
-
-\def\dododoGTC[#1]%
- {\doglobal\appendtoks\dodododoGTC[#1]\to\posXCtoks}
-
-\def\dodoGTC[#1]%
- {\doglobal\appendtoks\dododoGTC[#1]\to\posXCtoks\NC}
-
-\def\dodododoXC[#1#2]%
- {\if#1>\dodoGFC [#2:#2]\else
- \if#1+\dodoGFC [#2:#2]\else
- \if#1<\dodoGTC [#2:#2]\else
- \if#1-\dodoGTC [#2:#2]\else
- \if#1=\dodoGSC [#2:#2]\else
- \dodoGSC[#1#2:#1#2]\fi\fi\fi\fi\fi}
-
-\def\dododoXC#1%
- {\dodododoXC[#1]}
-
-\def\dodoXC[#1]%
- {{\let\NC\relax\processcommalist[#1]\dododoXC}}
-
-\def\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
- \global\advance\noftabpositions\plusone
-\to \everytabulate
-
-%D In order to prevent potential clashes with abbreviations,
-%D postpone the mapping.
-
-\appendtoks
- \let\GSC\tbGSC \let\GFC\tbGFC \let\GTC\tbGTC \let\XC\tbXC
-\to \everytabulate
-
-%D \macros
-%D {definepositionframed}
-%D
-%D The next example show how to provide backgrounds to table
-%D cells. First we define some framed backgrounds.
-%D
-%D \startbuffer
-%D \definepositionframed[x][background=color,backgroundcolor=red]
-%D \definepositionframed[y][background=color,backgroundcolor=green]
-%D \definepositionframed[z][background=color,backgroundcolor=blue]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D % \getbuffer
-%D
-%D \startbuffer
-%D \starttabulate[|c|c|c|]
-%D \GFC[f:x] this is a small \NC table \NC in which we \NC \FR
-%D \NC will demonstrate \GFC[g:z] that this \GTC[g] positioning \NC \MR
-%D \GSC[e:y] mechanism also \GTC[f] works quite well \NC in tables \NC \LR
-%D \stoptabulate
-%D \stopbuffer
-%D
-%D The table itself defines three areas (a, b and~c) using
-%D these frames.
-%D
-%D \typebuffer
-%D % \getbuffer
-%D
-%D Tables (based on \TABLE) are supported by:
-
-\def\normalTABLEsimplebar {\unskip\!ttRightGlue&\tablepos&} % |
-\def\normalTABLEcomplexbar{\unskip\!ttRightGlue&\omit\tablepos\!ttAlternateVrule} % \|
-\def\normalTABLEquote {\unskip\!ttRightGlue&\omit\tablepos&} % "
-
-\appendtoks
- \global\advance\noftabpositions\plusone
-\to \everytable
-
-%D Since we don't want nameclashes:
-
-\appendtoks
- \let\GSC\tbGSC \let\GFC\tbGFC \let\GTC\tbGTC \let\XC\tbXC
-\to \everytable
-
-%D In the previous example, we could have provided an overlay to
-%D the framed definition. A more direct approach is demonstrated
-%D below:
-%D
-%D \startbuffer
-%D \def\cw#1{\color[white]{#1}}
-%D
-%D \startMPpositiongraphic{tableshade}
-%D initialize_area(\MPpos{\MPvar{from}},\MPpos{\MPvar{to}}) ;
-%D color c ; c := \MPvar{color} ;
-%D linear_shade(pxy,0,.4c,.9c) ;
-%D anchor_area(\MPanchor{\MPvar{from}}) ;
-%D \stopMPpositiongraphic
-%D
-%D \setMPpositiongraphic{b:x}{tableshade}{from=b:x,to=e:x,color=red}
-%D \setMPpositiongraphic{b:y}{tableshade}{from=b:y,to=e:y,color=green}
-%D \setMPpositiongraphic{b:z}{tableshade}{from=b:z,to=e:z,color=blue}
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D The definition of the table looks about the same as the
-%D previous one:
-%D
-%D \startbuffer
-%D \starttable[|c|c|c|]
-%D \GFC[b:z] \cw{this is a small} \NC \cw{table} \NC in which we \NC \FR
-%D \NC \cw{will demonstrate} \GFC[c:y] \cw{that this} \GTC[c] \cw{positioning} \NC \MR
-%D \GSC[a:x] \cw{mechanism also} \GTC[b] \cw{works quite well} \NC in tables \NC \LR
-%D \stoptable
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-
-% \definepositionframed[w][background=color,backgroundcolor=yellow]
-% \definepositionframed[x][background=color,backgroundcolor=red]
-% \definepositionframed[y][background=color,backgroundcolor=green]
-% \definepositionframed[z][background=color,backgroundcolor=blue]
-%
-% \starttabulate[|c|c|c|]
-% \NC this is a small \NC table \NC in which we \NC \FR
-% \NC will demonstrate \NC that this \NC positioning \NC \MR
-% \NC mechanism also \NC works quite well \NC in tables \NC \LR
-% \stoptabulate
-%
-% \starttabulate[|c|c|c|]
-% \GFC[f:x] this is a small \GTC table \NC in which we \NC \FR
-% \NC will demonstrate \GFC[g:z] that this \GTC[g] positioning \NC \MR
-% \GSC[e:y] mechanism also \GTC[f] works quite well \NC in tables \NC \LR
-% \stoptabulate
-%
-% \starttabulate[|c|c|c|]
-% \GFC[f:x,d:w] this is a small \GTC[d] table \NC in which we \NC \FR
-% \NC will demonstrate \GFC[g:z] that this \GTC[g] positioning \NC \MR
-% \GSC[e:y] mechanism also \GTC[f] works quite well \NC in tables \NC \LR
-% \stoptabulate
-%
-% \starttabulate[|c|c|c|]
-% \XC[+f:x] this is a small \XC table \NC in which we \NC \FR
-% \NC will demonstrate \XC[+g:z] that this \XC[-g] positioning \NC \MR
-% \XC[=e:y] mechanism also \XC[-f] works quite well \NC in tables \NC \LR
-% \stoptabulate
-%
-% \starttabulate[|c|c|c|]
-% \XC[+f:x,+d:w] this is a small \XC[-d] table \NC in which we \NC \FR
-% \NC will demonstrate \XC[+g:z] that this \XC[-g] positioning \NC \MR
-% \XC[=e:y] mechanism also \XC[-f] works quite well \NC in tables \NC \LR
-% \stoptabulate
-
-% evt [b:x]
-%
-% \definepositionframed[x][background=color,fillcolor=red]
-% \definepositionframed[y][background=color,fillcolor=green]
-% \definepositionframed[z][background=color,fillcolor=blue]
-
-\def\remappositionframed#1#2% from to
- {\copyposition{b:#1}{b:#2}%
- \copyposition{e:#1}{e:#2}%
- \dosetpositionaction{b:#2}{\dopositionaction{b:#1}}}
-
-\def\definepositionframed
- {\dodoubleargument\dodefinepositionframed}
-
-\def\dodefinepositionframed[#1][#2]%
- {\dosetpositionaction{b:#1}{\dopositionframed[#1][#2]}}
-
-\def\positionframed
- {\dodoubleempty\dopositionframed}
-
-\def\dopositionframed[#1][#2]%
- {\bgroup
- \setbox\scratchbox\hbox
- {\dimen0=\MPx{e:#1}%
- \advance\dimen0 -\MPx{b:#1}%
- \dimen2=\MPy{b:#1}%
- \advance\dimen2 -\MPy{e:#1}%
- \advance\dimen2 \MPd{e:#1}%
- \lower\dimen2\hbox
- {\advance\dimen2 \MPh{b:#1}%
- \framed
- [\c!width=\dimen0,\c!height=\dimen2,
- \c!offset=\v!overlay,#2]{}}}%
- \smashedbox\scratchbox
- \egroup}
-
-% \def\sethdistances#1%
-% {\hbox{\lpos{ml:#1}\hpos{mh:#1}{\strut}\rpos{mr:#1}}}
-%
-% \def\gethdistances#1%
-% {\scratchdimen\MPx{mh:#1}%
-% \advance\scratchdimen -\MPx{ml#1}%
-% \edef\lefthdistance{\the\scratchdimen}%
-% \scratchdimen\MPx{mr:#1}%
-% \advance\scratchdimen -\MPx{mh:#1}%
-% \edef\righthdistance{\the\scratchdimen}}
-
-\protect \endinput
-
-% todo 1: shift down option
-
-% \startuseMPgraphic{mpos:par:columnset}
-% \iftracepositions show_multi_pars \else draw_multi_pars \fi ;
-% path p ; p := boundingbox currentpicture ;
-% currentpicture := currentpicture shifted (0,-StrutDepth/2) ;
-% setbounds currentpicture to p ;
-% \stopuseMPgraphic
-
-\definetextbackground[underline] [location=text,alternative=1,background=,frame=off]
-\definetextbackground[overstrike] [location=text,alternative=2,background=,frame=off]
-\definetextbackground[exlines] [location=text,alternative=3,background=,frame=off]
-\definetextbackground[strikethrough][location=text,alternative=4,background=,frame=off]
-
-\definestartstop [underline]
- [before={\starttextbackground[underline]},
- after=\stoptextbackground]
-
-\definestartstop
- [overstrike]
- [before={\starttextbackground[overstrike]},
- after=\stoptextbackground]
-
-\definestartstop
- [exlines]
- [before={\starttextbackground[exlines]},
- after=\stoptextbackground]
-
-\definestartstop
- [strikethrough]
- [before={\starttextbackground[strikethrough]},
- after=\stoptextbackground]
-
-\definetextbackground
- [sideline]
- [mp=mpos:par:sideline,
- location=paragraph,
- framecolor=red,
- frameoffset=5mm]
-
-\definestartstop [sideline]
- [before={\starttextbackground[sideline]},
- after=\stoptextbackground]
-
-\starttext
- \startunderline \input tufte \stopunderline \blank
- \startoverstrike \input tufte \stopoverstrike \blank
- \startexlines \input tufte \stopexlines \blank
- \startstrikethrough \input tufte \stopstrikethrough \blank
- \startsideline \input tufte \stopsideline \blank
-\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkii/anch-pos.mkii b/Master/texmf-dist/tex/context/base/mkii/anch-pos.mkii
deleted file mode 100644
index b86cee5cc03..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/anch-pos.mkii
+++ /dev/null
@@ -1,883 +0,0 @@
-%D \module
-%D [ file=anch-pos,
-%D version=1999.08.01,
-%D title=\CONTEXT\ Anchoring Macros,
-%D subtitle=Positioning Support,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% needs a cleanup, things may change; we also need to move the mp
-% related code to meta-pos
-
-% shorter tags, ..:achtergrond:.. etc in pos actions
-
-% dubbele text- * pos's eruit
-
-% class pos -> als gelijk aan vorige, dan niet niet definieren
-% en erven, maw:
-%
-% 1 -> opslaan
-% 2 -> undef, dus == prev
-% 3 -> undef, dus == prev
-% 4 -> opslaan
-
-\writestatus{loading}{ConTeXt Anchoring Macros / Positioning}
-
-% todo: topskip als optie voor eerste regel achtergrond
-% todo: build pos layers on top of layers
-% todo: positionlayer pos van text-1 etc delen
-
-%D Although \TEX\ has a rather powerful channel to the outside
-%D world, called \type {\special}, real communication with
-%D other programs is complicated by the fact that no positional
-%D information is available. Mid 1999, I discussed this with
-%D \THANH, the author of \PDFTEX, and after some experiments,
-%D \PDFTEX\ was extended with a simple but effective mechanism,
-%D that provided positional information. The interesting
-%D thought is that, although \TEX\ is frozen, similar
-%D functionality could have been achieved with \type
-%D {\specials} and an additional \DVI\ postprocessor.
-%D
-%D Since we want to be as compatible as can be, \CONTEXT\ will
-%D support both methods, although the development is primarily
-%D driven by the \PDFTEX\ way of doing things. Since the
-%D mechanism is basically not limited to one application, for
-%D the moment we stick to building the functionality around one
-%D \CONTEXT\ special command, but at the same time we keep our
-%D eyes open for extensions in other directions.
-%D
-%D A question that may arise when one reads this module, is to
-%D what extend these macros are generic, in the sense that they
-%D could be collected in a support module instead of a core
-%D module. Since the mechanism described here will closely
-%D cooperate with the \METAPOST\ support built in \CONTEXT,
-%D which in turn will be tightly integrated with the \CONTEXT\
-%D overlay mechanisms, I decided to write a core module instead
-%D of a support one. This makes even more sense, when one takes
-%D into account that this kind of support depends on special
-%D drivers.
-
-\unprotect
-
-%D The first application of positional information was embedded
-%D graphics. Since we are interacting with text, it made sense
-%D to take the current line height and depth into account too.
-%D This is why we have two basic position macros: one for
-%D simple positions, and one for boxes.
-%D
-%D We could have sticked to one special, and actually did so in
-%D earlier experiments, but for convenience, as well for
-%D clearness, we now have two alternatives. This approach will
-%D save us quite some bytes when storing large quantities of
-%D positional information. We save as less information as
-%D needed, that is, we save no dimensions, in a \METAPOST\
-%D friendly way.
-%D
-%D The three specials involved are:
-%D
-%D \starttyping
-%D \dosetposition {identifier}
-%D \dosetpositionwhd {identifier} {width} {height} {depth}
-%D \dosetpositionplus {identifier} {width} {height} {depth} {list}
-%D \dosetpositionpapersize {width} {height}
-%D \stoptyping
-
-\newbox\positionbox
-\newif \ifpositioning
-
-\def\POSprefix{POS::}
-
-\def\setpospxy#1#2#3#4%
- {\@EA\xdef\csname\POSprefix#1\endcsname
- {\number#2,%
- \the\dimexpr#3\ifnum\positionanchormode=\plusone-\MPx\pageanchor\fi\relax,%
- \the\dimexpr#4\ifnum\positionanchormode=\plusone-\MPy\pageanchor\fi\relax}}
-
-\def\setpospxywhd#1#2#3#4#5#6#7%
- {\@EA\xdef\csname\POSprefix#1\endcsname
- {\number#2,%
- \the\dimexpr#3\ifnum\positionanchormode=\plusone-\MPx\pageanchor\fi\relax,%
- \the\dimexpr#4\ifnum\positionanchormode=\plusone-\MPy\pageanchor\fi\relax,%
- \the\dimexpr#5\relax,%
- \the\dimexpr#6\relax,%
- \the\dimexpr#7\relax}}
-
-\def\setpospxyplus#1#2#3#4#5#6#7#8%
- {\@EA\xdef\csname\POSprefix#1\endcsname
- {\number#2,%
- \the\dimexpr#3\ifnum\positionanchormode=\plusone-\MPx\pageanchor\fi\relax,%
- \the\dimexpr#4\ifnum\positionanchormode=\plusone-\MPy\pageanchor\fi\relax,%
- \the\dimexpr#5\relax,%
- \the\dimexpr#6\relax,%
- \the\dimexpr#7\relax,%
- #8}}
-
-%D This is real tricky! The page anchor is applied to the
-%D page box and therefore flushed first. So, when present, it
-%D is applied to all positions except itself.
-
-\chardef\positionanchormode=0 % don't relocate page origin
-\chardef\positionanchormode=1 % relocate page origin once
-
-%D The core set macros.
-
-\def\pxypos {\pospxy} % obsolete
-\def\pxyposwhd {\pospxywhd} % obsolete
-\def\pxyposplus{\pospxyplus} % obsolete
-
-\def\resetpositions
- {\let\pospxy \gobblefourarguments
- \let\pospxywhd \gobblesevenarguments
- \let\pospxyplus\gobbleeightarguments}
-
-\def\setpositions
- {\let\pospxy \setpospxy
- \let\pospxywhd \setpospxywhd
- \let\pospxyplus\setpospxyplus}
-
-%D We need to initialize.
-
-\resetpositions
-
-\addutilityreset{positions}
-
-%D Sometimes we want to trick the position handler a bit:
-
-\def\replacepospxywhd#1#2#3#4#5#6#7%
- {\@EA\xdef\csname\POSprefix#1\endcsname
- {\number#2,%
- \the\dimexpr#3\relax,%
- \the\dimexpr#4\relax,%
- \the\dimexpr#5\relax,%
- \the\dimexpr#6\relax,%
- \the\dimexpr#7\relax}}
-
-%D For postprocessing purposes, we save the number of
-%D positions.
-
-\newcount\currentpositions % current number of positions
-\newcounter\totalnofpositions % total from previous run
-
-\appendtoks
- \expanded{\savecurrentvalue\noexpand\totalnofpositions{\the\currentpositions}}%
-\to \everybye
-
-%D The next switch can be used to communicate a special
-%D situation. Positioning and associated actions can be
-%D executed any time. However, in for instance backgrounds
-%D they can be collected in a layer, for instance the text
-%D layer (especially the hidden text layer). In the case of
-%D floats, we run into problems, since the page information is
-%D not applicable when the content floats indeed. In such
-%D situations one can treat positions and graphics local.
-
-\newif\iflocalpositioning
-
-%D Watch out: sometimes a pagebreak occurs inside a float
-%D placement, so there we need to disable local mode.
-
-\appendtoks
- \localpositioningtrue
-\to \everyinsidefloat
-
-\appendtoks
- \localpositioningfalse
-\to \everypagebody
-
-\def\checkpositions
- {\startnointerference
- \protectlabels
- \doutilities{positions}\jobname\empty\relax\relax
- \global\let\checkpositions\relax
- \stopnointerference}
-
-%D Since the positional values are to be fully expandable, we
-%D need to preload them as soon as possible, which is why we
-%D load the data when we start a text.
-
-\appendtoks \checkpositions \to \everystarttext
-
-%D Positions are either generated at a delayed write time
-%D (in \PDFTEX), or derived from the dvi file. The actual
-%D method is implemented in a special driver. If needed, the
-%D driver can fall back on the following macros.
-
-\def\dolazysaveposition#1#2#3#4% tag page x y
- {\expanded{\writeutilitycommand{\noexpand\pospxy
- {#1}{#2}{#3}{#4}}}}
-
-\def\dolazysavepositionwhd#1#2#3#4#5#6#7% tag page x y w h d
- {\expanded{\writeutilitycommand{\noexpand\pospxywhd
- {#1}{#2}{#3}{#4}{#5}{#6}{#7}}}}
-
-\def\dolazysavepositionplus#1#2#3#4#5#6#7#8% tag page x y w h d list
- {\expanded{\writeutilitycommand{\noexpand\pospxyplus
- {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}}}
-
-\def\dosaveposition#1#2#3#4% tag page x y
- {\expanded{\immediatewriteutilitycommand{\noexpand\pospxy
- {#1}{#2}{#3}{#4}}}}
-
-\def\dosavepositionwhd#1#2#3#4#5#6#7% tag page x y w h d
- {\expanded{\immediatewriteutilitycommand{\noexpand\pospxywhd
- {#1}{#2}{#3}{#4}{#5}{#6}{#7}}}}
-
-\def\dosavepositionplus#1#2#3#4#5#6#7#8% tag page x y w h d list
- {\expanded{\immediatewriteutilitycommand{\noexpand\pospxyplus
- {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}}}
-
-%D \macros
-%D {MPp, MPx, MPy, MPw, MPh, MPd,
-%D MPxy, MPll, MPlr, MPur, MPul, MPpos}
-%D
-%D Access to the positional information is provided by macros
-%D with short names that are clearly meant for \METAPOST.
-
-\def\MPp {\doMPxyhdwlr\doMPp }
-\def\MPx {\doMPxyhdwlr\doMPx }
-\def\MPy {\doMPxyhdwlr\doMPy }
-\def\MPw {\doMPxyhdwlr\doMPw }
-\def\MPh {\doMPxyhdwlr\doMPh }
-\def\MPd {\doMPxyhdwlr\doMPd }
-\def\MPxy {\doMPxyhdwlr\doMPxy }
-\def\MPll {\doMPxyhdwlr\doMPll }
-\def\MPlr {\doMPxyhdwlr\doMPlr }
-\def\MPur {\doMPxyhdwlr\doMPur }
-\def\MPul {\doMPxyhdwlr\doMPul }
-\def\MPpos{\doMPxyhdwlr\doMPpos}
-
-\def\doMPp #1,#2,#3,#4,#5,#6,#7\relax{#1}
-\def\doMPx #1,#2,#3,#4,#5,#6,#7\relax{#2}
-\def\doMPy #1,#2,#3,#4,#5,#6,#7\relax{#3}
-\def\doMPw #1,#2,#3,#4,#5,#6,#7\relax{#4}
-\def\doMPh #1,#2,#3,#4,#5,#6,#7\relax{#5}
-\def\doMPd #1,#2,#3,#4,#5,#6,#7\relax{#6}
-\def\doMPxy #1,#2,#3,#4,#5,#6,#7\relax{(#2,#3)}
-\def\doMPll #1,#2,#3,#4,#5,#6,#7\relax{(#2,#3-#6)}
-\def\doMPlr #1,#2,#3,#4,#5,#6,#7\relax{(#2+#4,#3-#6)}
-\def\doMPur #1,#2,#3,#4,#5,#6,#7\relax{(#2+#4,#3+#5)}
-\def\doMPul #1,#2,#3,#4,#5,#6,#7\relax{(#2,#3+#5)}
-\def\doMPpos#1,#2,#3,#4,#5,#6,#7\relax{#1,#2,#3,#4,#5,#6}
-
-\def\doMPxyhdwlr#1#2%
- {\ifcsname\POSprefix#2\endcsname
- \@EA\@EA\@EA#1\csname\POSprefix#2\endcsname,0pt,0pt,0pt,0pt\relax
- \else
- #10,0pt,0pt,0pt,0pt,0pt,0pt\relax
- \fi}
-
-%D \macros
-%D {MPplus, MPrest, MPv, MPvv}
-%D
-%D Since we will probably keep on extending, we provide a
-%D general extension macro. The plus alternative takes an
-%D extra argument, denoting what additional parameter to pick
-%D up. So, the third extra is fetched with,
-%D
-%D \starttyping
-%D \MPplus{identifier}{3}{default}
-%D \stoptyping
-%D
-%D All extras (comma separated) are fetched with:
-%D
-%D \starttyping
-%D \MPrest{identifier}
-%D \stoptyping
-%D
-%D The extra parameters are not treated.
-
-\def\MPplus {\MPdoplus\doMPplus}
-\def\MPrest#1{\MPdoplus\doMPrest{#1}{}}
-
-\def\MPdoplus#1#2#3#4%
- {\ifcsname\POSprefix#2\endcsname
- \@EA\@EA\@EA#1\csname\POSprefix#2\endcsname,,,,,,,,,\relax{#3}%
- \else
- #4%
- \fi}
-
-\def\doMPplus#1,#2,#3,#4,#5,#6,%
- {\dodoMPplus}
-
-\def\dodoMPplus#1,#2,#3,#4,#5,#6,#7,#8\relax#9%
- {\ifcase#9\or#1\or#2\or#3\or#4\or#5\or#6\or#7\else\dododoMPplus#8\relax{#9}\fi}
-
-\def\dododoMPplus#1,#2,#3,#4,#5,#6,#7,#8\relax#9%
- {\ifcase#9\or\or\or\or\or\or\or\or#1\or#2\or#3\or#4\or#5\or#6\or#7\fi}
-
-\def\doMPrest#1,#2,#3,#4,#5,#6,#7,,#8\relax#9%
- {#7}
-
-%D \macros
-%D {MPanchor}
-%D
-%D For readability we define a few synonyms:
-
-\def\MPanchor{\MPpos}
-
-%D \macros
-%D {POSp, POSx, POSy, POSh, POSd, POSw}
-%D
-%D and:
-
-\def\POSp{\MPp} \def\POSx{\MPx} \def\POSy{\MPy}
-\def\POSh{\MPh} \def\POSd{\MPd} \def\POSw{\MPw}
-
-%D There are two low level positioning macros. Both store the
-%D position as well as execute an action associated with that
-%D position.
-
-\def\initializenextposition
- {\ifpositioning \else
- \global\positioningtrue
- \dosetpositionpapersize
- {\printpaperwidth }%
- {\printpaperheight}%
- \fi
- \global\advance\currentpositions\plusone}
-
-\def\setpositiononly#1%
- {\iftrialtypesetting
- % nothing
- \else
- \initializenextposition
- \def\currentposition{#1}%
- \dosetposition\currentposition
- \fi}
-
-\def\setposition#1%
- {\iftrialtypesetting
- % nothing
- \else
- \initializenextposition
- \def\currentposition{#1}%
- \dosetposition\currentposition
- \traceposstring\llap\green{\currentposition>}%
- \dopositionaction\currentposition
- \fi}
-
-\def\setpositiondata#1#2#3#4%
- {\iftrialtypesetting \else
- \initializenextposition
- \hbox
- {\def\currentposition{#1}%
- \dosetpositionwhd\currentposition
- {\the\dimexpr#2\relax}%
- {\the\dimexpr#3\relax}%
- {\the\dimexpr#4\relax}%
- \traceposstring\llap\green{\currentposition>}%
- \dopositionaction\currentposition
- \hss}%
- \fi}
-
-\def\setpositionbox#1%
- {\dowithnextbox
- {\iftrialtypesetting
- \flushnextbox
- \else
- \initializenextposition
- \hbox to \nextboxwd
- {\edef\currentposition{#1}%
- \dosetpositionwhd\currentposition
- {\the\nextboxwd}%
- {\the\nextboxht}%
- {\the\nextboxdp}%
- \traceposstring\llap\green{\currentposition>}%
- \setbox\positionbox\flushnextbox
- \dopositionaction\currentposition
- \box\positionbox
- \hss}%
- \fi}}
-
-\def\setpositiondataplus#1#2#3#4#5%
- {\iftrialtypesetting \else
- \initializenextposition
- \hbox % bug: to \nextboxwd
- {\edef\currentposition{#1}%
- \dosetpositionplus\currentposition
- {\the\dimexpr#2\relax}%
- {\the\dimexpr#3\relax}%
- {\the\dimexpr#4\relax}%
- {#5}%
- \traceposstring\rlap\magenta{<\currentposition}%
- \dopositionaction\currentposition
- \hss}%
- \fi}
-
-\def\setpositionplus#1#2%
- {\dowithnextbox
- {\iftrialtypesetting
- \flushnextbox
- \else
- \initializenextposition
- \hbox to \nextboxwd
- {\edef\currentposition{#1}%
- \dosetpositionplus\currentposition
- {\the\nextboxwd}%
- {\the\nextboxht}%
- {\the\nextboxdp}%
- {#2}%
- \traceposstring\rlap\magenta{<\currentposition}%
- \setbox\positionbox\flushnextbox
- \dopositionaction\currentposition
- \box\positionbox
- \hss}%
- \fi}}
-
-\let\currentposition\s!unknown
-
-%D A few more low level macros take care of defining and
-%D recalling actions. We could save this information in the
-%D position containers themselves, this would save hash
-%D entries, but at the cost of much more time consuming
-%D expansion. Actions are saved globally!
-
-\newtoks\everypositionaction
-
-\let\POSactionprefix\POSprefix
-
-\def\dosetpositionaction#1%
- {\setgvalue{\POSactionprefix#1::}}
-
-%D The lists can become quite long (also because there can
-%D be lots of parameters passed on) so we provide a hook
-%D to clean up the list afterwards.
-
-\let\cleanuppositionaction\gobbleoneargument
-
-\def\doifpositionaction#1%
- {\ifcsname\POSactionprefix#1::\endcsname
- \@EA\firstofoneargument
- \else
- \@EA\gobbleoneargument
- \fi}
-
-\def\doifpositionactionelse#1%
- {\ifcsname\POSactionprefix#1::\endcsname
- \@EA\firstoftwoarguments
- \else
- \@EA\secondoftwoarguments
- \fi}
-
-%D We can copy a position with:
-%D
-%D \starttyping
-%D \copyposition {to} {from}
-%D \stoptyping
-%D
-%D Again, this is a global action.
-
-\def\copyposition#1#2%
- {\ifcsname\POSprefix#2\endcsname
- \global\@EA\let\csname\POSprefix#1\@EA\endcsname\csname\POSprefix#2\endcsname
- \fi}
-
-%D The fact that handling positions is a two pass operation, is
-%D one of the reasons why we need to be able to test for
-%D existence, using:
-%D
-%D \starttyping
-%D \doifpositionelse {identifier} {found action} {not found action}
-%D \stoptyping
-
-\def\doifpositionelse#1%
- {\ifcsname\POSprefix#1\endcsname
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-%D We have now arrived at a few macros that would make sense as
-%D support macros, but ended up in the core.
-
-%D \macros
-%D {xypos}
-%D
-%D We have several macros available to save positions. Later
-%D we will see applications.
-%D
-%D \starttabulate[|l|l||]
-%D \NC \type {\xypos} \NC \NC simple position with no dimensions \NC \NR
-%D \NC \type {\hpos} \NC \NC position and characteristics of a \type {\hbox} \NC \NR
-%D \NC \type {\vpos} \NC \NC position and characteristics of a \type {\vbox} \NC \NR
-%D \NC \type {\bpos} \NC b: \NC begin point in a line \NC \NR
-%D \NC \type {\epos} \NC e: \NC end point in a line \NC \NR
-%D \NC \type {\fpos} \NC f: \NC begin point in a paragraph \NC \NR
-%D \NC \type {\tpos} \NC t: \NC end point in a paragraph \NC \NR
-%D \stoptabulate
-%D
-%D Each macro takes an identifier as argument, and the \type
-%D {\hpos} and \type {\vpos} also expect box content.
-
-% \def\xypos{\initializenextposition\dosetposition}
-
-\let\xypos\setpositiononly
-
-\def\hpos#1{\dontleavehmode\setpositionbox{#1}\hbox}
-\def\vpos#1{\setpositionbox{#1}\vbox}
-
-\def\bpos#1{\hpos{b:#1}{\strut}\ignorespaces}
-\def\epos#1{\removelastspace\hpos{e:#1}{\strut}}
-
-\def\fpos#1%
- {\setpositionplus{b:#1}{\number\parposcounter}\horizontalstrut
- \ignorespaces}
-
-\def\tpos#1%
- {\removelastspace
- \setpositionplus{e:#1}{\number\parposcounter}\horizontalstrut}
-
-\def\ffpos#1%
- {\setpositionplus{b:#1}{\number\parposcounter}\horizontalstrut\wpos{#1}%
- \ignorespaces}
-
-\def\ttpos#1%
- {\removelastspace
- \setpositionplus{e:#1}{\number\parposcounter}\horizontalstrut}
-
-\def\wpos#1%
- {\dontleavehmode\vadjust % may disappear if buried
- {\setbox0\hbox{\raise\strutdp\hbox{\rawwpos{#1}}}%
- \rlap{\smashedbox0}}}
-
-\def\wwpos#1% \hsmashed{\llap{\rawwpos{#1}}}
- {\rlap
- {\setbox0\hbox{\rawwpos{#1}}%
- \smashedbox0}}
-
-\def\rawwpos#1%
- {\hpos{w:#1}
- {\strut
- \hskip-\leftskip
- \hskip\hsize
- \hskip-\rightskip}}
-
-% the next macro disables par positions (in inner boxes) and
-% only registers the width
-
-\def\setinnerparpositions
- {\let\fpos\ffpos
- \let\tpos\ttpos
- \let\wpos\wwpos}
-
-% example of usage: (see for application "techniek")
-%
-% \appendtoks
-% \setinnerparpositions
-% \to \everytabulate
-
-%D When we want to calculate more complex backgrounds, we
-%D need to know what the current indentation scheme is. At
-%D the cost of many positions and memory, we can keep track
-%D of them. This mechanism is activated automatically
-%D based on information collected in the previous pass.
-
-\newcount\parposcounter
-
-\newif\ifpositioningpar
-
-% we can check for used entries, and if not, then not add one
-
-\def\enableparpositions % global
- {\global\positioningtrue
- \global\positioningpartrue}
-
-\def\disableparpositions % local
- {\positioningparfalse}
-
-\def\registerparoptions
- {\ifpositioningpar \ifpositioning \iftrialtypesetting \else
- \ifinpagebody \else \ifmmode \else \ifinformula \else
- \ifprocessingverbatim
- \iflinepar \doregisterparoptions \fi
- \else
- \doregisterparoptions
- \fi
- \fi \fi \fi
- \fi \fi \fi}
-
-\chardef\parposstrut=1 % 0 => no strut data, so fall backs used
-
-\newif\iftracepositions
-
-% \def\doregisterparoptions
-% {\global\advance\parposcounter\plusone
-% \begingroup
-% \leftskip 1\leftskip
-% \rightskip1\rightskip
-% \setpositiondataplus
-% {p:\number\parposcounter}% identifier
-% {\the\zeropoint}%
-% {\the\strutht}%
-% {\the\strutdp}%
-% {\the\hsize ,% 1
-% \the\leftskip ,% 2
-% \the\rightskip ,% 3
-% \the\hangindent,% 4
-% \the\hangafter ,% 5 (num)
-% \the\parindent }% 6
-% %\normalhbox{\registerparsymbol}%
-% \registerparsymbol
-% \endgroup}
-
-\def\doregisterparoptions
- {\global\advance\parposcounter\plusone
- \setpositiondataplus
- {p:\number\parposcounter}% identifier
- {\the\zeropoint}%
- {\the\strutht}%
- {\the\strutdp}%
- {\the\hsize,\the\dimexpr\leftskip\relax,\the\dimexpr\rightskip\relax,\the\hangindent,\the\hangafter,\the\parindent}%
- %\normalhbox{\registerparsymbol}%
- \iftracepositions\registerparsymbol\fi}
-
-\def\traceposstring#1#2#3%
- {\iftracepositions
- \smashedhbox
- {#1{\infofont#2#3}%
- \scratchdimen.5\points
- \kern-2\scratchdimen
- \vrule\!!width4\scratchdimen\!!height\scratchdimen\!!depth\scratchdimen}%
- \fi}
-
-\def\registerparsymbol
- {\iftracepositions
- \smashedhbox to \zeropoint
- {\hss
- \startcolor[blue]%
- \llap{\infofont\number\parposcounter}%
- \scratchdimen\onepoint
- \vrule
- \!!width 4\scratchdimen
- \!!height2\scratchdimen
- \!!depth 2\scratchdimen
- \stopcolor
- \hss}%
- \fi}
-
-% \appendtoks \registerparoptions \to \everypar
-
-%D Eperimental code, don't use this yet: (must be sped up anyway)
-
-\def\@@noden{node:n:}
-\def\@@nodeo{node:o:}
-\def\@@nodep{node:p:}
-
-\def\doifelsenodelocation#1%
- {\ifcsname\@@noden#1\endcsname
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\def\nextnodelocation#1%
- {\ifcsname\@@noden#1\endcsname\pluscounter{\@@noden#1}\fi}
-
-\def\newnodelocation#1%
- {\ifcsname\@@noden#1\endcsname
- \setcounter{\@@noden#1}\zerocount
- \letgvalue {\@@nodeo#1}\!!zerocount
- \fi}
-
-\def\tagnodelocation#1%
- {\ifcsname\@@noden#1\endcsname\xypos{\@@nodep#1:\countervalue{\@@noden#1}}\fi}
-
-\def\getnodelocationp#1{\MPp{\@@nodep#1:\countervalue{\@@noden#1}}}
-\def\getnodelocationx#1{\MPx{\@@nodep#1:\countervalue{\@@noden#1}}}
-\def\getnodelocationy#1{\MPy{\@@nodep#1:\countervalue{\@@noden#1}}}
-
-\def\numnodelocationp#1#2{\MPp{\@@nodep#1:\number#2}}
-\def\numnodelocationx#1#2{\MPx{\@@nodep#1:\number#2}}
-\def\numnodelocationy#1#2{\MPy{\@@nodep#1:\number#2}}
-
-\def\getnodelocationn#1{\countervalue{\@@noden#1}}
-\def\getnodelocationo#1{\getvalue {\@@nodeo#1}}
-
-\chardef\nodelocationmode\plusone
-
-\def\analyzenodelocation#1%
- {\ifcsname\@@noden#1\endcsname
- \doanalyzenodelocation{#1}{\getnodelocationn{#1}}\zerocount
- \fi}
-
-\def\doanalyzenodelocation#1#2#3% class n default
- {\begingroup
- \donefalse
- \ifcase\nodelocationmode
- % do nothing
- \else
- \edef\nodelocationselfn{#2}%
- \edef\nodelocationselfp{\numnodelocationp{#1}\nodelocationselfn}%
- \edef\nodelocationselfx{\numnodelocationx{#1}\nodelocationselfn}%
- \edef\nodelocationselfy{\numnodelocationy{#1}\nodelocationselfn}%
- \scratchcounter\plusone
- \doloop
- {\ifnum\recurselevel=\nodelocationselfn\relax
- \donetrue
- \else
- \edef\nodelocationotherp{\numnodelocationp{#1}\recurselevel}%
- \edef\nodelocationotherx{\numnodelocationx{#1}\recurselevel}%
- \edef\nodelocationothery{\numnodelocationy{#1}\recurselevel}%
- \ifcase\nodelocationmode
- \or
- % ok for single column
- \ifcase\nodelocationotherp\relax
- \exitloop
- \else\ifnum\nodelocationotherp<\nodelocationselfp\relax
- \donetrue \advance\scratchcounter\plusone
- \else\ifnum\nodelocationotherp>\nodelocationselfp\relax
- % skip
- \else\ifdim\nodelocationothery>\nodelocationselfy\relax
- \donetrue \advance\scratchcounter\plusone
- \else\ifdim\nodelocationothery<\nodelocationselfy\relax
- % skip
- \else\ifdim\nodelocationotherx<\nodelocationselfx\relax
- \donetrue \advance\scratchcounter\plusone
- \fi\fi\fi\fi\fi\fi
- \or
- % acceptable for double column
- \ifcase\nodelocationotherp\relax
- \exitloop
- \else\ifnum\nodelocationotherp<\nodelocationselfp\relax
- \donetrue \advance\scratchcounter\plusone
- \else\ifnum\nodelocationotherp>\nodelocationselfp\relax
- % skip
- \else\ifnum\recurselevel>\nodelocationselfn\relax
- \donetrue \exitloop
- \else
- \donetrue \advance\scratchcounter\plusone
- \fi\fi\fi\fi
- \else
- \exitloop
- \fi
- \fi}%
- \fi
- \ifdone \else
- \scratchcounter#3\relax
- \fi
- \setxvalue{\@@nodeo#1}{\the\scratchcounter}%
- \endgroup}
-
-\unexpanded\def\shownodelocation#1%
- {\ifcsname\@@noden#1\endcsname
- \analyzenodelocation{#1}%
- (#1,%
- n:\getnodelocationn{#1},%
- p:\getnodelocationp{#1},%
- x:\getnodelocationx{#1},%
- y:\getnodelocationy{#1},%
- o:\getnodelocationo{#1})%
- \fi}
-
-%D \macros
-%D {doifoverlappingelse}
-%D
-%D A first application of positional information, is to
-%D determine if two boxes do overlap:
-%D
-%D \starttyping
-%D \doifoverlappingelse{point a}{point b}
-%D {action when overlapping}
-%D {action when not overlapping}
-%D \stoptyping
-
-\def\overlappingmargin{-2\scaledpoint}
-
-\def\doifoverlappingelse#1#2%
- {\begingroup
- \donefalse
- \edef\!!stringa{#1}\edef\!!stringb{#2}%
- \ifnum\MPp\!!stringa=\MPp\!!stringb\relax
- \!!dimena\MPx\!!stringa
- \!!dimenb\dimexpr\MPx\!!stringa+\MPw\!!stringa\relax
- \!!dimenc\dimexpr\MPy\!!stringa-\MPd\!!stringa\relax
- \!!dimend\dimexpr\MPy\!!stringa+\MPh\!!stringa\relax
- \!!dimene\MPx\!!stringb
- \!!dimenf\dimexpr\MPx\!!stringb+\MPw\!!stringb\relax
- \!!dimeng\dimexpr\MPy\!!stringb-\MPd\!!stringb\relax
- \!!dimenh\dimexpr\MPy\!!stringb+\MPh\!!stringb\relax
- \ifdim\overlappingmargin=\zeropoint\else
- \advance\!!dimena-\overlappingmargin
- \advance\!!dimenb+\overlappingmargin
- \advance\!!dimenc-\overlappingmargin
- \advance\!!dimend+\overlappingmargin
- \advance\!!dimene-\overlappingmargin
- \advance\!!dimenf+\overlappingmargin
- \advance\!!dimeng-\overlappingmargin
- \advance\!!dimenh+\overlappingmargin
- \fi
- % more often eh fb eg fg
- \def\checkone##1##2%
- {\ifdim##1<\!!dimena \else \ifdim##1>\!!dimenb \else
- \ifdim##2<\!!dimenc \else \ifdim##2>\!!dimend \else
- \donetrue
- \fi\fi
- \fi\fi}%
- \def\checktwo##1##2%
- {\ifdim##1<\!!dimene \else \ifdim##1>\!!dimenf \else
- \ifdim##2<\!!dimeng \else \ifdim##2>\!!dimenh \else
- \donetrue
- \fi\fi
- \fi\fi}%
- \checkone\!!dimene\!!dimeng \ifdone \else
- \checkone\!!dimene\!!dimenh \ifdone \else
- \checkone\!!dimenf\!!dimeng \ifdone \else
- \checkone\!!dimenf\!!dimenh \ifdone \else
- \checktwo\!!dimena\!!dimenc \ifdone \else
- \checktwo\!!dimena\!!dimend \ifdone \else
- \checktwo\!!dimenb\!!dimene \ifdone \else
- \checktwo\!!dimenb\!!dimenc \fi \fi \fi \fi \fi \fi \fi
- \fi
- \ifdone
- \endgroup\expandafter\firstoftwoarguments
- \else
- \endgroup\expandafter\secondoftwoarguments
- \fi}
-
-%D \macros
-%D {doifpositionsonsamepageelse,
-%D doifpositionsonthispageelse}
-%D
-%D Instead of letting the user handle fuzzy expansion, we
-%D provide a simple test on positione being on the same page.
-%D
-%D \starttyping
-%D \doifpositionsonsamepageelse{point a}{point b}
-%D {action when on same page}
-%D {action when not on same page}
-%D \doifpositionsonthispageelse{point a}{point b}
-%D {action when on this page}
-%D {action when not on this page}
-%D \stoptyping
-
-\def\dodoifpositionsonsamepageelse#1#2#3#4%
- {\bgroup
- \scratchcounter#1\donefalse
- \def\docommand##1%
- {\ifcase\scratchcounter
- \scratchcounter\MPp{##1}\donetrue
- \else
- \ifnum\scratchcounter=\MPp{##1}\relax\else\donefalse\fi
- \fi}%
- \rawprocesscommalist[#2]\docommand
- \ifdone\egroup#3\else\egroup#4\fi}
-
-\def\doifpositionsonsamepageelse{\dodoifpositionsonsamepageelse\!!zerocount}
-\def\doifpositionsonthispageelse{\dodoifpositionsonsamepageelse\realfolio }
-
-%D Plugins:
-
-\let\MPv \MPplus
-\let\MPvv\MPrest
-
-\let\MPanchor\MPpos
-
-\let\POSp\MPp \let\POSx\MPx \let\POSy\MPy
-\let\POSh\MPh \let\POSd\MPd \let\POSw\MPw
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/anch-snc.mkii b/Master/texmf-dist/tex/context/base/mkii/anch-snc.mkii
deleted file mode 100644
index 01704e0c8e6..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/anch-snc.mkii
+++ /dev/null
@@ -1,177 +0,0 @@
-%D \module
-%D [ file=anch-snc,
-%D version=2003.12.01,
-%D title=\CONTEXT\ Anchoring Macros,
-%D subtitle=Synchronization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Anchoring Macros / Synchronization}
-
-\unprotect
-
-\ifx\s!set \undefined \def\s!set {set} \fi
-\ifx\s!reset \undefined \def\s!reset {reset} \fi
-\ifx\s!preset \undefined \def\s!preset {preset} \fi
-\ifx\s!syncpos\undefined \def\s!syncpos{syncpos} \fi
-
-\def\definesyncpositions[#1]%
- {\setcounter{\s!num:\s!syncpos:#1}{0}%
- \doglobal\appendtoksonce\getvalue {\s!reset:\s!syncpos:#1}\to\resetsyncpositions
- \doglobal\appendtoksonce\getvalue{\s!preset:\s!syncpos:#1}\to\presetsyncpositions
- \setgvalue{\s!syncpos:#1}{sync_n[#1] := 0 ;}%
- \setgvalue{\s!set:\s!syncpos:#1}{\dosetsyncpositions{#1}}}
-
-\def\syncposition
- {\dodoubleempty\dosyncposition}
-
-\def\dosyncposition[#1][#2]%
- {\letgvalue{\s!reset:\s!syncpos:#1}\relax
- \letgvalue{\s!preset:\s!syncpos:#1}\relax
- \dontleavehmode
- \dodosyncposition{#1}{#2}\s!set
- \ignorespaces}
-
-\def\doifelselastsyncposition#1#2%
- {\doifelse{\lastsyncclass\lastsyncposition}{#1#2}}
-
-\def\dodosyncposition#1#2#3%
- {\letgvalue{\s!reset:\s!syncpos:#1}\relax
- \letgvalue{\s!preset:\s!syncpos:#1}\relax
- \ifundefined{\s!syncpos:#1}%
- \strut
- \else
- \pluscounter{\s!num:\s!syncpos:#1}%
- \setsyncpositions{#1}%
- % option: geen w/h, alleen p 0 0 0 data
- \setpositionplus
- {\s!syncpos:#1:\countervalue{\s!num:\s!syncpos:#1}}%
- {#2}%
- \hbox{\strut\traceposstring\llap\green{#3/\countervalue{\s!num:\s!syncpos:#1}/#1/#2>>}}%
- \fi}
-
-\def\setsyncpositions#1%
- {\enabletextarearegistration
- \getvalue {\s!set:\s!syncpos:#1}%
- \letgvalue{\s!set:\s!syncpos:#1}\relax}
-
-\def\dosetsyncpositions#1%
- {\startnointerference % removing out of sync can best be done in mp
- \!!dimena\maxdimen
- \!!counta\zerocount
- \!!countc\zerocount
- \doloop
- {\doifpositionelse{\s!syncpos:#1:\recurselevel}
- {\!!dimenb\MPy{\s!syncpos:#1:\recurselevel}\relax
- \!!countb\MPp{\s!syncpos:#1:\recurselevel}\relax
- \ifnum\!!countb=\!!counta % same page
- \ifdim\!!dimenb>\!!dimena
- \donefalse % out of order nodes
- \else
- \donetrue % nodes in order
- \fi
- \else
- \donetrue % different page
- \fi
- \ifdone
- \!!counta\!!countb
- \!!dimena\!!dimenb
- \advance\!!countc\plusone
- \edef\!!stringa{[#1][\the\!!countc]:=}%
- \edef\!!stringc{\s!syncpos:#1:\the\!!countc}%
- \edef\!!stringd{\MPplus\!!stringc{1}{0}}%
- \setxvalue{\s!syncpos:#1}%
- {\getsyncpositions{#1}%
- sync_p \!!stringa \MPp \!!stringc ;
- sync_xy\!!stringa \MPxy\!!stringc ;
- sync_w \!!stringa \MPw \!!stringc ;
- sync_h \!!stringa \MPh \!!stringc ;
- sync_d \!!stringa \MPd \!!stringc ;
- \ifx\!!stringd\empty \else sync_t \!!stringa \MPplus\!!stringc{1}{0} ; \fi}%
- \fi}
- {\setxvalue{\s!syncpos:#1}%
- {\getsyncpositions{#1}%
- sync_n[#1] := \the\!!countc ;}
- \exitloop}}%
- \stopnointerference}
-
-\def\getsyncpositions#1%
- {\getvalue{\s!syncpos:#1}}
-
-\newtoks\resetsyncpositions
-\newtoks\presetsyncpositions
-
-\def\resyncposition {\dodoubleargument\doresyncposition}
-\def\presyncposition{\dodoubleargument\dopresyncposition}
-
-\def\dodoresyncposition #1#2{\dodosyncposition{#1}{#2}\s!reset}
-\def\dodopresyncposition#1#2{\dodosyncposition{#1}{#2}\s!preset}
-
-\def\doresyncposition [#1][#2]{\setxvalue{\s!reset :\s!syncpos:#1}{\noexpand\dodoresyncposition{#1}{#2}}}
-\def\dopresyncposition[#1][#2]{\setxvalue{\s!preset:\s!syncpos:#1}{\noexpand\dodopresyncposition{#1}{#2}}}
-
-\def\flushsyncpositions % this order !
- {\begingroup
- \the\presetsyncpositions
- \the\resetsyncpositions
- \endgroup}
-
-\def\flushsyncxxsets#1%
- {\setbox\scratchbox\hbox{\the#1}%
- \ifvoid\scratchbox\else
- \prewordbreak \let\prewordbreak\relax % only once
- \smashbox\scratchbox
- \box\scratchbox
- \fi}
-
-\def\flushsyncresets {\flushsyncxxsets\resetsyncpositions }
-\def\flushsyncpresets{\flushsyncxxsets\presetsyncpositions}
-
-% \appendtoks \flushsyncpositions \to \everypar
-% \appendtoks \flushsyncpositions \to \everyheadstart
-
-% \explicitneverypar -> in grid snapper, eerst testen
-%
-% \appendtoks \flushsyncpositions \to \neverypar
-
-\protect \endinput
-
-\starttext
-
-\definesyncpositions[1]
-
-\startuseMPgraphic{sync}
- StartPage ;
- \getsyncpositions{1} ;
- SyncThreshold := 2LineHeight ;
- SyncLeftOffset := -.5LeftMarginDistance ;
- % SetSyncThreshold(1,3,3LineHeight) ;
- SyncWidth := - (BackSpace + SyncLeftOffset) ;
- SetSyncColor(1,1,\MPcolor{red}) ;
- SetSyncColor(1,2,\MPcolor{green}) ;
- SetSyncColor(1,3,\MPcolor{blue}) ;
- SetSyncColor(1,4,\MPcolor{yellow}) ;
- PrepareSyncTasks(1,true,true,false) ;
- for i = 1 upto NOfSyncPaths :
- fill SyncPaths[i]
- withcolor TheSyncColor(CurrentSyncClass,sync_t[CurrentSyncClass][SyncTasks[i]]) ;
- endfor ;
- setbounds currentpicture to Page ;
- StopPage ;
-\stopuseMPgraphic
-
-\defineoverlay[tempoverlay][\useMPgraphic{sync}]
-
-\setupbackgrounds[page][background=tempoverlay]
-
-\syncposition[1][1] \input ward \endgraf
-\syncposition[1][2] \input ward \endgraf
-\syncposition[1][3] \input ward \endgraf
-\syncposition[1][4] \input ward \endgraf
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkii/bibl-tra.mkii b/Master/texmf-dist/tex/context/base/mkii/bibl-tra.mkii
deleted file mode 100644
index a6388465f80..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/bibl-tra.mkii
+++ /dev/null
@@ -1,1781 +0,0 @@
-%D \module
-%D [ file=bibl-tra,
-%D version=2009.08.13,
-%D title=\CONTEXT\ Publication Module,
-%D subtitle=Publications,
-%D author=Taco Hoekwater,
-%D date=\currentdate,
-%D copyright={Public Domain}]
-%C
-%C Donated to the public domain.
-
-%D This used to be module \type {t-bib} but due to the number of differences
-%D in handling structure between \MKII\ and \MKIV\ we now have \BIBTEX\ support
-%D in the kernel. The only patches concerns some namespace issues. Also,
-%D constants and variables are now predefined. When the \MKIV\ code is well
-%D tested I might backport a couple of adaptions to this \MKII\ variant.
-
-\writestatus{loading}{ConTeXt Bibliography Support / BibTeX}
-
-\definefilesynonym[bib][obsolete]
-
-% here starts t-bib.tex
-
-%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 More documentation and additional resources can be found on the contextgarden:
-%D \hyphenatedurl{http://wiki.contextgarden.net//Bibliography}.
-
-%D \subject{DONE (dd/mm/yyyy)}
-%D
-%D \startitemize
-%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 \item fix a bug in \type{\setupcite[authoretallimit=1]} (9/8/2006)
-%D \item fix a bug inside citations that prevented lastpubsep from ever being
-%D used due to a volatile \type{\commalistsize} (25/8/2006).
-%D \item added the possibility of \type{\placepublications[option=continue]}
-%D (6/9/2006)
-%D \item Mojca translated Master's Thesis to Masterarbeit (bibl-apa-de.tex)
-%D (12/9/2006)
-%D \item Added \type{\setuppublicationlist[maybeyear=off]} by request from
-%D Thomas Schmitz (15/9/2006)
-%D \item Removed some spurious spaces pointed out by willi egger (19/9/2006)
-%D \item Add configuration of bibtex executable name (4/11/2006)
-%D \item Fix numbering=short and numbering=bib (spotted by Matthias W�chter) (4/11/2006)
-%D \item third attempt to get a correct release (5/11/2006)
-%D \item fix a few missing dots in bibl-num.tex (7/12/2006)
-%D \item Patch for DOI's by Tobias Burnus (17/4/2007)
-%D \item Patch for \type{\insertbiburl} and \type{\insertdoi} for Tobias Burnus (18/4/2007)
-%D \item Added a missing \type{\relax} in \type{\dospecialbibinsert},
-%D that made the space before the {\it et al.} text disappear. (18/4/2007)
-%D \item Attempt to fix percent signs in bbl files. As a side-effect,
-%D this prohibits comments in \tex{startpublication} blocks! (17/4/2008)
-%D \item Patch from Matthias W\"achter that allows arbitrary .bst
-%D files to be used with \tex{setupbibtex} (25/9/2008)
-%D \item Extended for the new multilingual setups for the Oct 2008 current of ConTeXt (23/10/2008)
-%D \item Multilingual setups needed another fix (27/10/2008)
-%D \item Two fixes for bibl-apa by Michael Green (27/10/2008)
-%D \item Catalan translation of 'References' (10/11/2008)
-%D \item 'chapter' -> 'chapitre' in bibl-apa-fr (27/11/2008)
-%D \item Run bibtex via os.execute in mkiv modee (01/12/2008)
-%D \item Small correction in bibl-apa's placement of volume
-%D information in articles (05/01/2009)
-%D \item Handle multi-author (more than two) cases in \type{\cite}
-%D (02/03/2009)
-%D \item Suppress a syntax error in \type{cont-xp} mode. The output is
-%D probably not right, though (02/03/2009)
-%D \item Added a \tex{loadmarkfile} at the end, and two new files
-%D from Hans. The \type{t-bib.mkiv} is needed to make the module
-%D work with the new structure code (17/04/2009)
-%D \item Added a patch to \type{t-bib.mkiv} from Hans to make the
-%D cross referencing between multiple citations an
-%D bibliographies work (27/04/2009)
-%D \item Remove a superfluous \type{\unprotect} in t-bib.mkiv (11/05/2009).
-%D \item Patch of incollection in bibl-ams.tex from Xan (08/06/2009).
-%D \item Patch of unpublished in bibl-ams.tex from Xan (22/07/2009).
-%D \item Modified \type{\bibdogetupsometextprefix} so it works for undefined
-%D language labels, from Hans (13/08/2009).
-%D \item Removed some \MKIV\ hacks as well as some things that are in the
-%D core like variables, constants and messages (HH:22/08/2009).
-%D \item Added \type{bib} in front of \type {insert} macros and initialize
-%D then later on (HH:22/08/2009).
-%D \item Removed test for type {\currentlocationreference} plus associated
-%D code (HH:22/08/2009).
-%D \stopitemize
-%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 support mlbibtex
-%D \item don't load the whole lot, but filter entries instead
-%D \stopitemize
-
-\unprotect
-
-%D Variables, constants and messages are removed as they are now in the
-%D multilingual interface modules.
-
-\def\biblistname{pubs} % for compatibility
-
-% \newif\ifeditedbook
-
-%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
-
-\def\preloadbiblist
- {\globallet\preloadbiblist\relax
- \dousepublications\jobname}
-
-\definelist[pubs]
-\setuplist[pubs][\c!width=]
-
-%D \macros{bibdoif,bibdoifnot,bibdoifelse}
-%D
-%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.
-
-\long\def\bibdoifelse#1%
- {\@EA\def\@EA\!!stringa\@EA{#1}%
- \ifx\!!stringa\empty
- \expandafter\secondoftwoarguments
- \else
- \expandafter\firstoftwoarguments
- \fi}
-
-\long\def\bibdoifnot#1%
- {\@EA\def\@EA\!!stringa\@EA{#1}%
- \ifx\!!stringa\empty
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\long\def\bibdoif#1%
- {\@EA\def\@EA\!!stringa\@EA{#1}%
- \ifx\!!stringa\empty
- \expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
-%D Bibtex settings separated out
-
-%D No point in writing the aux file if there is no database...
-
-\def\setupbibtex{\dosingleempty\dosetupbibtex}
-
-\def\dosetupbibtex[#1]%
- {\let\@@pbdatabase\empty
- \getparameters[\??pb][\c!sort=\s!default,#1]%
- \expanded{\processaction[\@@pbsort]}
- [ \v!no=>\def\bibstyle{cont-no},
- \v!author=>\def\bibstyle{cont-au},
- \v!title=>\def\bibstyle{cont-ti},
- \v!short=>\def\bibstyle{cont-ab},
- \s!default=>\def\bibstyle{cont-no},
- \s!unknown=>\def\bibstyle{\@@pbsort}]%
- \ifx\@@pbdatabase\empty\else \writeauxfile \fi}
-
-\dosetupbibtex[bibtex=bibtex]
-
-%D \macros{writeauxfile}
-%D
-%D Unfortunately, \BIBTEX\ is not the best configurable program
-%D around. The names of the commands it parses as well as the \type{.aux}
-%D extension to the file name are both hardwired.
-%D
-%D This means \CONTEXT\ has to write a \LATEX-style auxiliary file, yuk!
-%D The good news is that it can be rather short. We'll just ask
-%D \BIBTEX\ to output the entire database(s) into the \type{bbl} file.
-%D
-%D The \type{\bibstyle} command controls how the \type{bbl} file will
-%D be sorted. The possibilities are:
-%D
-%D \startitemize[packed]
-%D \item by author (+year, title): cont-au.bst
-%D \item by title (+author, year): cont-ti.bst
-%D \item by short key as in abbrev.bst: cont-ab.bst
-%D \item not sorted at all: cont-no.bst
-%D \stopitemize
-
-\def\writeauxfile
- {\doifmode{*\v!first}
- {\openout \scratchwrite \jobname.aux
- \write \scratchwrite {\string\citation{*}}%
- \write \scratchwrite {\string\bibstyle{\bibstyle}}%
- \write \scratchwrite {\string\bibdata{\@@pbdatabase}}%
- \closeout\scratchwrite
- \showmessage\m!publications{3}{}%
- \expanded{\installprogram{\@@pbbibtex\space\jobname}}}}
-
-%D \macros{ifsortbycite,iftypesetall,ifautohang,ifbibcitecompress}
-%D
-%D The module needs some new \type{\if} statements.
-
-%D Default sort order of the reference list is by citation.
-
-\newif\ifsortbycite \sortbycitetrue
-
-%D By default, only referenced publications are typeset
-
-\newif\iftypesetall \typesetallfalse
-
-%D Hanging indentation of the publication list
-%D will not adjust itself according to the width of the label.
-
-\newif\ifautohang \autohangfalse
-
-%D Cite lists are compressed, if possible.
-
-\newif\ifbibcitecompress \bibcitecompresstrue
-
-\def\setuppublications
- {\dosingleargument\dosetuppublications}
-
-\def\bibleftnumber#1%
- {#1\hfill~}
-
-\def\dosetuppublications[#1]%
- {\getparameters
- [\??pb]
- [\c!alternative=,#1]%
- \doifsomething\@@pbalternative
- {\readsysfile
- {bibl-\@@pbalternative.tex}
- {\showmessage\m!publications{6}{bibl-\@@pbalternative}\let\@@pbalternative\empty}
- {\showmessage\m!publications{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}
-\def\@@pbnumbercommand{\bibleftnumber}
-
-%D \macros{usepublications}
-%D
-%D We need \type{\usereferences} so that it is possible to
-%D refer to page and/or appearance number for publications
-%D in the other document.
-
-\def\usepublications[#1]%
- {\usereferences[#1]\processcommalist[#1]\dousepublications}
-
-\def\dousepublications#1%
- {\doonlyonce
- {#1.\f!bibextension}
- {\readfile{#1.\f!bibextension}
- {\showmessage\m!publications{4}{#1.\f!bibextension}}
- {\showmessage\m!publications{2}{#1.\f!bibextension}}}}
-
-%D \macros{setuppublicationlist}
-%D
-%D This will be the first command in (\BIBTEX-generated) \type{bbl}
-%D files. `samplesize' is a sample value (in case of \BIBTEX-generated
-%D files, this will be the longest `short' key). `totalnumber'
-%D is the total number of entries that will follow in this
-%D file.
-
-%D Both values are only needed for the label calculation
-%D if `autohang' is `true', so by default the command is
-%D not even needed, and therefore I saw no need to give
-%D it it's own system variable and it just re-uses \type{pb}.
-
-\def\setuppublicationlist
- {\dosingleempty\dosetuppublicationlist}
-
-\def\dosetuppublicationlist[#1]%
- {\getparameters[\??pv data][#1]%
- \setuplist
- [pubs]
- [\c!samplesize={AA99},\c!totalnumber={99},
- \c!alternative=a,\c!interaction=,\c!pagenumber=\v!no,#1]}
-
-\def\setuppublicationlayout[#1]#2%
- {\setvalue{\??pv data#1}{#2\unskip}}
-
-%D \macros{bibalternative}
-%D
-%D A nice little shorthand that will be used so we don't have to
-%D key in the weird \type{\@@pv} parameter names all the time.
-
-\def\bibalternative#1%
- {\getvalue{\??pv\@@currentalternative#1}}
-
-%D \macros{simplebibdef,bibcommandlist}
-%D
-%D \type{\simplebibdef} defines \type{bib@#1}, which in turn will
-%D use one argument that is stored in \type{@@pb@#1}.
-%D
-%D \type{\simplebibdef} also defines \type{insert#1}, which can be
-%D used in the argument of \type{\setuppublicationlayout} to fetch
-%D one of the \type{@@pb@} data entries. \type{insert#1} then has
-%D three arguments: \type{#1} are commands to be executed before the
-%D data, \type{#2} are commands to be executed after the data, and
-%D \type{#3} are commands to be executed if the data is not found.
-
-%D \type{\bibcommandlist} is the list of commands that is affected
-%D by this approach. Later on, it will be used to do a series
-%D of assignments from \type{#1} to \type{bib@#1}: e.g
-%D \type{\title} becomes \type{\bib@title} when used within
-%D a publication.
-
-\newtoks\initializebibdefinitions % we need to prevent clashes (HH)
-
-% \def\simplebibdef#1% hh: funny expansion ?
-% {\@EA\long\@EA\def\csname bib@#1\endcsname##1%
-% {\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}%
-% }}
-
-\def\simplebibdef#1% hh: funny expansion ?
- {\@EA\long\@EA\def\csname bib@#1\endcsname##1%
- {\setvalue{\??pb @#1}{##1}\ignorespaces}%
- \expandafter \appendtoks
- \expandafter\let\csname insert#1\expandafter\endcsname\csname bibinsert#1\endcsname
- \to \initializebibdefinitions
- \@EA\unexpanded\@EA\def\csname bibinsert#1\endcsname##1##2##3%
- {\@EA\bibdoifelse\@EA{\csname\??pb @#1\endcsname}{##1\csname\??pb @#1\endcsname##2}{##3}}}
-
-\def\bibcommandlist
- {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\bibinsertdoi#1#2#3%
- {{\bibdoifelse{\@@pb@doi}%
- {\edef\ascii{\@EA\detokenize\@EA{\@@pb@doi}}%
- #1\expanded{\gotoDOI{\@@pb@thekey}{\ascii}}#2}{#3}}}
-
-\def\bibinsertbiburl#1#2#3%
- {{\bibdoifelse{\@@pb@biburl}%
- {\edef\ascii{\@EA\detokenize\@EA{\@@pb@biburl}}%
- #1\expanded{\gotoURL{\@@pb@thekey}{\ascii}}#2}{#3}}}
-
-\def\bibinsertmonth#1#2#3%
- {\bibdoifelse{\@@pb@month}%
- {#1\doifnumberelse{\@@pb@month}%
- {\doifconversiondefinedelse\@@pbmonthconversion
- {\convertnumber\@@pbmonthconversion{\@@pb@month}}{\@@pb@month}}%
- {\@@pb@month}#2}{#3}}
-
-\appendtoks
- \let\inserturl \bibinsertbiburl % for backward compat.
- \let\inserttype\bibinsertbibtype % for backward compat.
-\to\initializebibdefinitions
-
-\def\newbibfield[#1]%
- {\simplebibdef{#1}%
- \edef\bibcommandlist{\bibcommandlist,#1}}
-
-%D \macros{bib@crossref}
-%D
-%D \type{\crossref} is used in database files to point to another
-%D entry. Because of this special situation, it has to be defined
-%D separately. Since this command will not be seen until at
-%D \type{\placepublications}, it may force extra runs. The same is
-%D true for \type{\cite} commands inside of publications.
-
-\def\bib@crossref#1%
- {\setvalue{\??pb @crossref}{#1}\ignorespaces}
-
-\def\bibinsertcrossref#1#2#3%
- {\bibdoifelse{\@@pb@crossref}
- {#1\@EA\cite\@EA[\@@pb@crossref]#2}
- {#3}}
-
-\let\insertcrossref\gobblethreearguments
-
-\appendtoks\let\insertcrossref\bibinsertcrossref\to\initializebibdefinitions
-
-%D \macros{complexbibdef,specialbibinsert}
-%D
-%D The commands \type{\artauthor}, \type{\author} and
-%D \type{\editor} are more complex than the other commands.
-%D Their argument lists have this form:
-%D
-%D \type{\author[junior]{firstnames}[inits]{von}{surname}}
-%D
-%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
-%D them, as well as one extra counter for each command.
-
-%D All of these \type{\@EA}'s and \type{\csnames} make this code
-%D look far more complex than it really is. For example, the argument
-%D \type{author} defines the macro \type{\bib@author} to do two
-%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 \starttyping
-%D \specialbibinsert{author}{\author@num}{<before>}{<after>}{<not>}
-%D \stoptyping
-
-\def\docomplexbibdef#1%
- {\def\currentype{#1}%
- \dosingleempty\dodocomplexbibdef}
-
-\def\dodocomplexbibdef[#1]#2%
- {\def\firstarg{#1}\def\secondarg{#2}%
- \dosingleempty\dododocomplexbibdef}
-
-\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{\docomplexbibdef{#1}}%
-% \@EA\def\csname insert#1s\endcsname##1##2##3%
-% {\specialbibinsert{#1}{\csname #1@num\endcsname}{##1}{\unskip ##2}{##3}}}
-
-\def\complexbibdef#1%
- {\@EA\newcounter\csname #1@num\endcsname
- \@EA\def\csname bib@#1\endcsname{\docomplexbibdef{#1}}%
- \expandafter \appendtoks
- \expandafter\let\csname insert#1s\expandafter\endcsname\csname bibinsert#1s\endcsname
- \to \initializebibdefinitions
- \@EA\def\csname bibinsert#1s\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.
-
-%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!
-
-\newcount\etallimitcounter
-\newcount\etaldisplaycounter
-\newcount\todocounter
-
-\def\specialbibinsert#1#2#3#4#5%
- {\bgroup
- \ifnum#2>\zerocount
- \etallimitcounter =0\bibalternative{#1etallimit}\relax
- \etaldisplaycounter=0\bibalternative{#1etaldisplay}\relax
- \ifnum #2>\etallimitcounter
- \todocounter\etaldisplaycounter
- % just in case ...
- \ifnum\todocounter>\etallimitcounter
- \todocounter\etallimitcounter
- \fi
- \else
- \todocounter#2\relax
- \fi
- \ifnum\todocounter>\zerocount
- % 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\relax \bibalternative{#1etaltext}\fi
- \else \ifnum\numexpr\scratchcounter+1 = #2\relax
- \ifnum \commalistsize > \plustwo \bibalternative\c!finalnamesep
- \else \bibalternative\c!lastnamesep \fi
- \else
- \bibalternative\c!namesep
- \fi \fi
- \fi}%
- \processcommacommand[#3]\processauthoritem }
-
-%D \macros{invertedauthor,normalauthor,invertedshortauthor,normalshortauthor}
-%D
-%D Just some commands that can be used in \type{\setuppublicationparameters}
-%D If you want to write an extension to the styles, you might
-%D as well define some of these commands yourself.
-%D
-%D The argument list has been reordered here, and the meanings are:
-%D
-%D {\obeylines\parskip0pt
-%D \type{#1} firstnames
-%D \type{#2} von
-%D \type{#3} surname
-%D \type{#4} inits
-%D \type{#5} junior
-%D }
-%D
-
-\def\normalauthor#1#2#3#4#5%
- {\bibdoif{#1}{#1\bibalternative\c!firstnamesep}%
- \bibdoif{#2}{#2\bibalternative\c!vonsep}%
- #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%
- \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
-%D These are used in \type{\typesetapublication} to do
-%D initializations and cleanups.
-
-\def\clearbibitem#1{\setvalue{\??pb @#1}{}}%
-
-\def\clearbibitemtwo#1%
- {\letvalue{#1@num}\!!zerocount
- \scratchcounter\plusone
- \doloop
- {\doifdefinedelse{\??pb @#1\the\scratchcounter}
- {\letvalue{\??pb @#1\the\scratchcounter}\empty
- \advance\scratchcounter\plusone}%
- {\exitloop}}}
-
-\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.
-
-\newcounter\bibcounter
-
-%D Just a \type{\dosingleempty} is the most friendly
-%D of doing this: there need not even be an argument
-%D to \type{\startpublication}. Of course, then there
-%D is no key either, and it had better be an
-%D article (otherwise the layout will be all screwed up).
-%D
-%D Now prohibits comments, so % can be used for urls
-
-\def\startpublication
- {\edef\bibmodsavedpercent{\the\catcode`\%}%
- \catcode`\%=12
- \dosingleempty\dostartpublication}
-
-\def\stoppublication
- {} % the \catcode of % is reset below
-
-%D Only specifying the key in the argument is also
-%D legal. In storing this stuff into macros, some trickery with
-%D token registers is needed to fix the expansion problems. Even so,
-%D this appears to not always be 100\% safe, so people are
-%D urgently advised to use \ETEX\ instead of traditional \TEX.
-%D
-%D In \ETEX, all expansion problems are conviniently solved by
-%D the primitive \type{\protected}. To put that another way:
-%D
-%D It's not a bug in this module if it does not appear in \ETEX!
-
-\long\def\dostartpublication[#1]#2\stoppublication%
- {\increment\bibcounter
- \bgroup
- \doifassignmentelse{#1}%
- {\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
- \catcode`\%=\bibmodsavedpercent\relax }
-
-% intialization of the order-list:
-
-\let\allrefs\empty
-
-%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\makepbkvalue#1{\def\@@pbk{#1}}
-
-\newif\ifinpublist
-
-% 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}
-
-\def\filllocalpublist%
- {\doifdefinedelse{\alltoclevels}
- {\let\dosetfilterlevel\patcheddosetfilterlevel
- \dosettoclevel\??li{pubs}%
- \let\dosetfilterlevel\normaldosetfilterlevel }%
- {\dosettoclevel\??li{pubs}}%
- \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
-% \the\initializebibdefinitions
- \edef\askedlevel{\csname \??li pubs\c!criterium\endcsname}%
- \ifx\askedlevel\v!all
- \def\bibrefprefix{}%
- \else %
- \preparebibrefprefix
- \fi
- \ifsortbycite
- \filllocalpublist
- \iftypesetall
- \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]\typesetapublication
- \else
- %
- \filllocalpublist
- \processcommacommand[\allrefs]\maybetypesetapublication
- \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{\getvalue{\??li pubs\c!samplesize}}}%
- \else\iftypesetall
- \setbox\scratchbox\hbox{\@@pbnumbercommand{\getvalue{\??li pubs\c!totalnumber}}}%
- \else
- \setbox\scratchbox\hbox{\@@pbnumbercommand{\numreferred}}%
- \fi\fi
- \edef\samplewidth{\the\wd\scratchbox}%
- \setuplist[pubs][\c!width=\samplewidth,\c!distance=0pt]%
- \ifx\@@pbnumbering\v!short
- \def\@@pblimitednumber##1{\hbox to \samplewidth
- {\@@pbnumbercommand{\getvalue{pbds-\@@pbk}}}}%
- \else \ifx \@@pbnumbering\v!bib
- \def\@@pblimitednumber##1{\hbox to \samplewidth
- {\@@pbnumbercommand{\getvalue{pbdn-\@@pbk}}}}%
- \else
- \def\@@pblimitednumber##1{\hbox to \samplewidth{\@@pbnumbercommand{##1}}}%
- \fi \fi
- \else
- \ifx\@@pbnumbering\v!short
- \doifemptyelse
- {\getvalue{\??li pubs\c!width}}
- {\def\@@pblimitednumber##1{\hbox
- {\@@pbnumbercommand{\getvalue{pbds-\@@pbk}}}}}%
- {\def\@@pblimitednumber##1{\hbox to \getvalue{\??li pubs\c!width}%
- {\@@pbnumbercommand{\getvalue{pbds-\@@pbk}}}}}%
- \else \ifx \@@pbnumbering\v!bib
- \doifemptyelse
- {\getvalue{\??li pubs\c!width}}
- {\def\@@pblimitednumber##1{\hbox
- {\@@pbnumbercommand{\getvalue{pbdn-\@@pbk}}}}}%
- {\def\@@pblimitednumber##1{\hbox to \getvalue{\??li pubs\c!width}%
- {\@@pbnumbercommand{\getvalue{pbdn-\@@pbk}}}}}%
- \else
- \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
- \fi
- \fi
- \ifx\@@pbnumbering\v!no
- \setuplist[pubs][\c!numbercommand=,\c!symbol=\v!none,\c!textcommand=\outdented]%
- \else
- \setuplist[pubs][\c!numbercommand=\@@pblimitednumber]%
- \fi
- \doifelsevalue
- {\??pv data\c!maybeyear}{\v!off}{\def\maybeyear##1{}}{\def\maybeyear##1{##1}}%
- \forgetall} % bugfix 2005/03/18
-
-\def\outdented#1% move to supp-box ?
- {\hskip -\hangindent #1}
-
-%D The full list of publications
-
-\def\completepublications
- {\dosingleempty\docompletepublications}
-
-\def\bibdogetupsometextprefix#1#2#3%
- {\ifcsname#2#1#3\endcsname
- \csname#2#1#3\endcsname
- \else\ifcsname\??la#1\c!default\endcsname
- \@EA\ifx\csname\??la#1\c!default\endcsname\empty
- \ifcsname#2#3\endcsname
- \csname#2#3\endcsname
- \else\ifcsname#2\s!en#3\endcsname
- \csname#2\s!en#3\endcsname
- \fi\fi
- \else
- \expandafter\bibdogetupsometextprefix
- \csname\??la#1\c!default\endcsname{#2}{#3}%
- \fi
- \else
- \ifcsname#2#3\endcsname
- \csname#2#3\endcsname
- \else\ifcsname#2\s!en#3\endcsname
- \csname#2\s!en#3\endcsname
- \fi\fi
- \fi\fi}
-
-\def\docompletepublications[#1]%
- {\begingroup
- \setuplist[pubs][\c!criterium=\v!previous,#1]
- \begingroup
- \let\handletextprefix\firstoftwoarguments
- \edef\headtextpubs{\bibdogetupsometextprefix\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.
-
-\def\placepublications
- {\dosingleempty\doplacepublications}
-
-\def\doplacepublications[#1]%
- {%\getparameters[\??pv data][#1]
- \begingroup
- \setuplist[pubs][\c!criterium=\v!previous,#1]%
- \dodoplacepublications }%
-
-\def\dodoplacepublications%
- {\initializepubslist
- \doifelsevalue
- {\??li pubs\c!option}{\v!continue}%
- {}%
- {\global\let\bibcounter\!!zerocount }%
- \inpublisttrue
- \typesetpubslist
- \inpublistfalse
- \endgroup}
-
-%D \subsubject{What's in a publication}
-
-\unexpanded\def\typesetapublication#1%
- {\doifsomething{#1}
- {\doglobal\increment\bibcounter
- \bgroup
- \the\initializebibdefinitions
- \makepbkvalue{#1}%
- \ifgridsnapping
- \snaptogrid\vbox{\dodolistelement{pubs}{}{\bibcounter}%
- {\expanded{\reference[\bibrefprefix#1]{\bibcounter}}%
- \strut \dotypesetapublication{#1}\strut }{}{}}%
- \else
- \dodolistelement{pubs}{}{\bibcounter}%
- {\expanded{\reference[\bibrefprefix#1]{\bibcounter}}%
- \strut \dotypesetapublication{#1}\strut }{}{}%
- \fi
- \egroup}}
-
-\def\dotypesetapublication#1%
- {\bgroup
- \def\@@currentalternative{data}%
- \processcommacommand[\bibcommandlist,crossref]\clearbibitem
- \processcommalist [artauthor,author,editor]\clearbibitemtwo
- \processcommacommand[\bibcommandlist]\bibitemdefs
- \processcommalist [artauthor,author,editor,crossref]\bibitemdefs
- \let\biblanguage\empty
- \getvalue{pbdd-#1}%
- \ifcsname pbdt-#1\endcsname \bibalternative{\getvalue{pbdt-#1}}\fi
- \egroup }
-
-%D An afterthought:
-
-\def\maybeyear#1{}
-
-%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
-%D \macros{cite,bibref}
-%D
-%D The indirection with \type{\dobibref} allows \LATEX\ style
-%D \type{\cite} commands with a braced argument (these might appear
-%D in included data from the \type{.bib} file).
-
-% \unexpanded\def\cite
-% {\doifnextcharelse{[}
-% {\dodocite}
-% {\dobibref}}
-% \def\dobibref#1%
-% {\docite[#1][]}
-% \def\dodocite[#1]%
-% {\startstrictinspectnextcharacter
-% \dodoubleempty\dododocite[#1]}
-% \def\dododocite[#1][#2]{%
-% \stopstrictinspectnextcharacter
-% \docite[#1][#2]}
-
-\unexpanded\def\cite
- {\strictdoifnextoptionalelse\dodocite\dobibref}
-
-\def\dobibref#1%
- {\docite[#1][]}
-
-\def\dodocite[#1]%
- {\strictdoifnextoptionalelse{\docite[#1]}{\docite[#1][]}}
-
-\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
- \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}[#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\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
-%D The interesting command here is \type{\addthisref}, which maintains
-%D the global list of references.
-%D
-%D \type{\numreferred} is needed to do automatic calculations on
-%D the label width, and \type{\doifreferredelse} will be used
-%D to implement \type{criterium=cite}.
-
-\newcounter\numreferred
-
-\long\def\doifreferredelse#1{\doifdefinedelse{pbr-#1}}
-
-\def\addthisref#1%
- {\doifundefinedelse{pbr-#1}
- {\setxvalue{pbr-#1}{\citationnumber}%
- \doglobal\increment\numreferred
- \ifx\publist\empty \gdef\publist{#1}\else\appended\gdef\publist{,#1}\fi}
- {\setxvalue{pbr-#1}{\getvalue{pbr-#1},\citationnumber}}}
-
-\let\publist\empty
-
-%D \macros{doifbibreferencefoundelse}
-%D
-%D Some macros to fetch the information provided by
-%D \type{\startpublication}.
-
-\def\doifbibreferencefoundelse#1%
- {\preloadbiblist
- \doifdefinedelse{pbdk-#1}
- {\firstoftwoarguments}
- {\showmessage\m!publications{5}{#1 is unknown}%
- \secondoftwoarguments}}
-
-%D \macros{ixbibauthoryear,thebibauthors,thebibyears}
-%D
-%D If compression of \type{\cite}'s argument expansion is on,
-%D the macros that deal with authors and years call this internal
-%D command to do the actual typesetting.
-%D
-%D Two entries with same author but with different years may
-%D be condensed into ``Author (year1,year2)''. This is about the
-%D only optimization that makes sense for the (author,year)
-%D style of citations (years within one author have to be unique
-%D anyway so no need to test for that, and ``Author1, Author2 (year)''
-%D creates more confusion than it does good).
-%D
-%D In the code below,
-%D the macro \type{\thebibauthors} holds the names of the alternative
-%D author info fields for the current list. This is a commalist,
-%D and \type{\thebibyears} holds the (collection of) year(s) that go with
-%D this author (possibly as a nested commalist).
-%D
-%D There had better be an author for all cases, but there
-%D does not have to be year info always. \type{\thebibyears} is
-%D pre-initialized because this makes the insertion macros simpler.
-%D
-%D In `normal' \TeX, of course there are expansion problems again.
-
-\def\ixbibauthoryear#1#2#3#4%
- {\bgroup
- \gdef\ixlastcommand {#4}%
- \gdef\ixsecondcommand{#3}%
- \gdef\ixfirstcommand {#2}%
- \glet\thebibauthors \empty
- \glet\thebibyears \empty
- \getcommalistsize[#1]%
- \ifbibcitecompress
- \dorecurse\commalistsize{\xdef\thebibyears{\thebibyears,}}%
- \processcommalist[#1]\docompressbibauthoryear
- \else
- \processcommalist[#1]\donormalbibauthoryear
- \fi
- \egroup
- \dobibauthoryear}
-
-%D \macros{dodobibauthoryear}
-%D
-%D This macro only has to make sure that the lists
-%D \type{\thebibauthors} and \type{\thebibyears} are printed.
-
-\def\dobibauthoryear
- {\scratchcounter\zerocount
- \getcommacommandsize[\thebibauthors]%
- \edef\authorcount{\commalistsize}%
- \@EA\processcommalist\@EA[\thebibauthors]\dodobibauthoryear}
-
-\def\dodobibauthoryear#1%
- {\advance\scratchcounter\plusone
- \edef\wantednumber{\the\scratchcounter}%
- \getfromcommacommand[\thebibyears][\wantednumber]%
- \@EA\def\@EA\currentbibyear\@EA{\commalistelement}%
- \setcurrentbibauthor{#1}%
- \ifnum\scratchcounter=\plusone
- \ixfirstcommand
- \else\ifnum \scratchcounter=\authorcount\relax
- \ixlastcommand
- \else
- \ixsecondcommand
- \fi\fi}
-
-\def\setcurrentbibauthor#1%
- {\getcommacommandsize[#1]%
- \ifcase\commalistsize
- % anonymous?
- \def\currentbibauthor{}%
- \or
- \def\currentbibauthor{#1}%
- \or
- \expanded{\docurrentbibauthor#1}%
- \else
- \handlemultiplebibauthors{\commalistsize}{#1}%
- \fi }
-
-\newcount\citescratchcounter
-
-\def\handlemultiplebibauthors#1#2%
- {\citescratchcounter 0
- \def\currentbibauthor{}%
- \def\bibprocessauthoritem##1%
- {\advance\citescratchcounter1
- \ifnum \citescratchcounter=#1\relax
- \edef\currentbibauthor{\currentbibauthor##1}%
- \else \ifnum\numexpr\citescratchcounter+1 = #1\relax
- \edef\currentbibauthor{\currentbibauthor ##1\bibalternative{andtext}}%
- \else
- \edef\currentbibauthor{\currentbibauthor ##1\bibalternative{namesep}}%
- \fi
- \fi }%
- \processcommalist[#2]\bibprocessauthoritem }
-
-\setupcite
- [author,authoryear,authoryears]
- [\c!namesep={, }]
-
-%D This discovery of authoretallimit is not the best one,
-%D but it will do for now.
-
-\def\docurrentbibauthor#1,#2%
- {\doifemptyelse{#2}
- {\def\currentbibauthor{#1\bibalternative{otherstext}}}
- {\@EA
- \ifx\csname \??pv\@@currentalternative authoretallimit\endcsname\relax
- \edef\currentbibauthor{#1\bibalternative{andtext}#2}%
- \else
- \edef\currentbibauthor{#1%
- \ifcase0\bibalternative{authoretallimit}\relax\or
- \bibalternative{otherstext}\else\bibalternative{andtext}#2\fi}%
- \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.
-%D The `simple' one really is quite simple.
-
-\def\donormalbibauthoryear#1%
- {\addthisref{#1}%
- \def\myauthor{Xxxxxxxxxx}%
- \def\myyear{0000}%
- \doifbibreferencefoundelse{#1}
- {\def\myauthor{{\getvalue{pbda-#1}}}%
- \def\myyear {\getvalue{pbdy-#1}}}%
- {}%
- \@EA\doglobal\@EA\appendtocommalist\@EA{\myauthor}\thebibauthors
- \@EA\doglobal\@EA\appendtocommalist\@EA{\myyear }\thebibyears}
-
-%D \macros{docompressbibauthoryear}
-%D
-%D So much for the easy parts. Nothing at all will be done if
-%D the reference is not found or the reference does not contain
-%D author data. No questions marks o.s.s. (to be fixed later)
-
-\def\docompressbibauthoryear#1%
- {\addthisref{#1}%
- \def\myauthor{Xxxxxxxxxx}%
- \def\myyear {0000}%
- \doifbibreferencefoundelse{#1}
- {\xdef\myauthor{\csname pbda-#1\endcsname }%
- \xdef\myyear {\csname pbdy-#1\endcsname }}
- {}%
- \ifx\myauthor\empty\else
- \checkifmyauthoralreadyexists
- \findmatchingyear
- \fi}
-
-%D two temporary counters. One of these two can possibly be replaced
-%D by \type{\scratchcounter}.
-
-\newcount\bibitemcounter
-\newcount\bibitemwanted
-
-%D The first portion is simple enough: if this is the very first author
-%D it is quite straightforward to add it. \type{\bibitemcounter} and
-%D \type{\bibitemwanted} are needed later to insert the year
-%D information in the correct item of \type{\thebibyears}
-
-\def\checkifmyauthoralreadyexists
- {\doifemptyelsevalue{thebibauthors}
- {\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
-%D a new author to \type{\thebibauthors}. The messing about with
-%D the two counters is again to make sure that \type{\thebibyears}
-%D will be updated correctly.If the author {\it was} found,
-%D the counters will stay at their present values and everything
-%D will be setup properly to insert the year info.
-
-\def\docomparemyauthor#1%
- {\global\advance\bibitemwanted \plusone
- \def\mytempc{#1}%
-% \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\robustaddtocommalist\@EA{{\myauthor}}\thebibauthors
- \fi
- \fi}
-
-%D This macro should be clear now.
-
-\def\findmatchingyear
- {\edef\wantednumber{\the\bibitemwanted}%
- \getfromcommacommand[\thebibyears][\wantednumber]%
- \ifx\commalistelement\empty
- \edef\myyear{{\myyear}}%
- \else
- \edef\myyear{{\commalistelement, \myyear}}%
- \fi
- \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{\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}%
- {\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}
- {\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}%
- {\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}%
- {\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,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
-%D the separations are inserted correctly. And that is
-%D what \type{\refsep} does.
-
-\newif\iffirstref
-
-\def\refsep{\iffirstref\firstreffalse\else\bibalternative\c!pubsep\fi}
-
-\def\bibshortref[#1]%
- {\bibalternative\v!left
- \firstreftrue\processcommalist[#1]\dobibshortref
- \bibalternative\v!right}
-
-\def\dobibshortref#1%
- {\addthisref{#1}\refsep
- \doifbibreferencefoundelse{#1}{\gotobiblink{\getvalue{pbds-#1}}[#1]}
- {\unknownreference{#1}}}
-
-
-\def\bibserialref[#1]%
- {\bibalternative\v!left
- \firstreftrue\processcommalist[#1]\dobibserialref
- \bibalternative\v!right}
-
-\def\dobibserialref#1%
- {\addthisref{#1}\refsep
- \doifbibreferencefoundelse{#1}{\gotobiblink{\getvalue{pbdn-#1}}[#1]}
- {\unknownreference{#1}}}
-
-\def\bibkeyref[#1]%
- {\bibalternative\v!left
- \firstreftrue\processcommalist[#1]\dobibkeyref
- \bibalternative\v!right}
-
-\def\dobibkeyref#1%
- {\addthisref{#1}\refsep\gotobiblink{#1}[#1]}
-
-\def\gotoDOI#1#2%
- {\ifbibinteractionelse
- {\useURL[bibfooDoi#1][#2]%
- \useURL[bibfoo#1][http://dx.doi.org/#2]%
- \goto{\url[bibfooDoi#1]}[url(bibfoo#1)]}
- {\hyphenatedurl{#2}}}
-
-\def\bibdoiref[#1]%
- {\bibalternative\v!left
- \firstreftrue\processcommalist[#1]\dobibdoiref
- \bibalternative\v!right}
-
-\def\dobibdoiref#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
- \firstreftrue\processcommalist[#1]\dobibtyperef
- \bibalternative\v!right}
-
-\def\dobibtyperef#1%
- {\addthisref{#1}\refsep
- \doifbibreferencefoundelse{#1}{\gotobiblink{\getvalue{pbdt-#1}}[#1]}
- {\unknownreference{#1}}}
-
-\def\bibpageref[#1]%
- {\bibalternative\v!left
- \firstreftrue\processcommalist[#1]\dobibpageref
- \bibalternative\v!right}
-
-\def\dobibpageref#1%
- {\addthisref{#1}\refsep
- \ifbibinteractionelse{\atbiblink[#1]}{{\referencingfalse\at[#1]}}}
-
-\def\bibdataref[#1]%
- {\bibalternative\v!left
- \firstreftrue\processcommalist[#1]\dobibdata
- \bibalternative\v!right}
-
-\def\dobibdata#1%
- {\addthisref{#1}\refsep
- \doifbibreferencefoundelse{#1}{\dotypesetapublication{#1}}
- {\unknownreference{#1}}}
-
-\let\bibnoneref\nocite
-
-%D \macros{bibnumref}
-%D
-%D It makes sense to try and compress the argument list of
-%D \type{\bibnumref}. There are two things involved: the actual
-%D compression, and a sort routine. The idea is to store the
-%D found values in a new commalist called \type{\therefs}.
-
-%D But that is not too straight-forward, because \type{\in} is
-%D not expandable,
-%D so that the macro \type{\expandrefs} is needed.
-
-\def\expandrefs#1%
- {\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!publications{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).
-
-\def\bibnumref[#1]%
- {\bibalternative\v!left
- \penalty\!!tenthousand
- \processcommalist[#1]\addthisref
- \firstreftrue
- \ifbibcitecompress
- \glet\therefs\empty
- \processcommalist[#1]\expandrefs
- \sortcommacommand[\therefs]\donumericcompare
- \ifx\empty\sortedcommalist\else
- \let\therefs\sortedcommalist
- \fi
- \compresscommacommandnrs[\therefs]%
- \processcommacommand[\compressedlist]\verysimplebibnumref
- \else
- \processcommalist[#1]\dosimplebibnumref
- \fi
- \bibalternative\v!right}
-
-\def\dosimplebibnumref #1%
- {\refsep\ifbibinteractionelse
- {\inbiblink[#1]}{{\referencingfalse\inbiblink[#1]}}}
-
-\def\verysimplebibnumref#1{\doverysimplebibnumref#1}
-
-\def\doverysimplebibnumref#1#2%
- {\refsep
- \ifcase#1\relax \unknownreference{#1}\else
- \def\tempa{#2}\ifx\empty\tempa#1\else#1\bibalternative\c!inbetween#2\fi
- \fi}
-
-%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 }
-
-\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
- [\v!month\v!conversion=,
- \c!alternative=apa]
-
-\appendtoks
- \preloadbiblist
-\to \everystarttext
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/buff-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/buff-ini.mkii
deleted file mode 100644
index 7fdb89e45cd..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/buff-ini.mkii
+++ /dev/null
@@ -1,348 +0,0 @@
-%D \module
-%D [ file=buff-ini, % was core-buf % blocks are moved to core-blk
-%D version=2000.01.05,
-%D title=\CONTEXT\ Buffer Macros,
-%D subtitle=Buffers,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Buffer Macros / Buffers}
-
-\unprotect
-
-% Helpers:
-
-\chardef\buffernestmode\plusone % 0: not nested, 1: startbuffer nested, 2: all buffers nested
-
-\edefconvertedargument\emptybufferline{ }
-
-\ifx\tmpblocks\undefined \newwrite\tmpblocks \fi
-
-\newif\iftmpblockstarted
-
-\long\def\flushbufferline#1%
- {\iftmpblockstarted
- \ifsegmentatebuffer
- \ifemptybufferline
- \immediate\write\tmpblocks{\string\stopbufferparagraph }%
- \immediate\write\tmpblocks{\string\startbufferparagraph}%
- \else
- \immediate\write\tmpblocks{#1}%
- \fi
- \else
- \immediate\write\tmpblocks{#1}%
- \fi
- \else
- \doifsomething{#1}
- {\tmpblockstartedtrue
- \immediate\write\tmpblocks{\string#1}}%
- \fi}
-
-\long\def\processnextbufferlineA#1%
- {\relax % checken waarom eerdere macro dit nodig heeft / supp-mps run
- \defconvertedargument\next{#1 }%
- \doifinstringelse{\delcharacter\letterpercent}{\delcharacter\next}
- {\secondoftwoarguments}
- {\doifincsnameelse\endofblock\next
- {\ifnum\nestedbufferlevel=\zerocount
- \expandafter\firstoftwoarguments
- \else
- \decrement\nestedbufferlevel\relax
- \expandafter\secondoftwoarguments
- \fi}
- {\doifincsnameelse\beginofblock\next
- {\increment\nestedbufferlevel\relax
- \secondoftwoarguments}
- {\secondoftwoarguments}}}}
-
-\long\def\processnextbufferlineB#1% #2#3%
- {\defconvertedargument\next{#1 }%
- \ifx\next\emptybufferline
- \ifsegmentatebuffer \emptybufferlinetrue \fi
- \expandafter\secondoftwoarguments% #3%
- \else
- \emptybufferlinefalse
- \doifinstringelse\endofblock\next
- {\expandafter\firstoftwoarguments }% #2}
- {\expandafter\secondoftwoarguments}% #3}%
- \fi}
-
-\bgroup
-\obeylines
-\long\gdef\copybufferline#1
- {\processnextbufferline{#1}\closebufferfile{\flushbufferline{#1}\copybufferline}}
-\egroup
-
-\newif\ifsegmentatebuffer
-\newif\ifemptybufferline
-
-\def\currentbuffer{\jobname}
-
-\def\setcurrentbuffer#1%
- {\doifelsenothing{#1}{\edef\currentbuffer{\jobname}}{\edef\currentbuffer{#1}}}
-
-\def\resetbuffer
- {\dosingleempty\doresetbuffer}
-
-\def\doresetbuffer[#1]%
- {\begingroup
- \setcurrentbuffer{#1}%
- \unlinkfile{\TEXbufferfile\currentbuffer}%
- \endgroup}
-
-\def\dostartbuffer
- {\bgroup
- \obeylines % nodig, anders gaat 't fout als direct \starttable (bv)
- \doquadrupleempty\dodostartbuffer}
-
-\def\dodostartbuffer[#1][#2][#3][#4]% upward compatible
- {\iffourthargument
- \def\next{\dododostartbuffer{#1}{#2}{#3}{#4}}%
- \else
- \def\next{\dododostartbuffer {}{#1}{#2}{#3}}%
- \fi
- \next}
-
-\def\dododostartbuffer#1#2#3#4%
- {%\showmessage\m!systems{15}{#2}%
- \doifelsevalue{\??bu#1\c!paragraph}\v!yes
- {\segmentatebuffertrue} % todo in mkiv
- {\doifnumberelse{\getvalue{\??bu#1\c!paragraph}}\segmentatebuffertrue\segmentatebufferfalse}%
- \doifvalue{\??bu#1\c!local}\v!yes
- {\chardef\buffernestmode\plustwo}% permit nesting
- \setcurrentbuffer{#2}%
- \doifelsenothing{#4}
- {\letbeundefined{\e!stop\v!buffer}% % \let\stopbuffer=\relax % \undefined
- \edefconvertedargument\beginofblock{\e!start\v!buffer}%
- \edefconvertedargument\endofblock {\e!stop \v!buffer}%
- \ifcase\buffernestmode
- \let\processnextbufferline\processnextbufferlineB
- \else
- \let\processnextbufferline\processnextbufferlineA
- \fi}
- {\letbeundefined{#4}% \letvalue{#4}=\relax % \undefined
- \expandafter\defconvertedargument\expandafter\beginofblock\expandafter{\csname#3\endcsname}% we could use defconvertedcommand here (no \expandafter)
- \expandafter\defconvertedargument\expandafter\endofblock \expandafter{\csname#4\endcsname}% we could use defconvertedcommand here (no \expandafter)
- \ifcase\buffernestmode
- \let\processnextbufferline\processnextbufferlineB
- \or
- \let\processnextbufferline\processnextbufferlineB
- \else
- \let\processnextbufferline\processnextbufferlineA
- \fi}%
- \def\closebufferfile
- {\ifsegmentatebuffer
- \immediate\write\tmpblocks{\string\stopbufferparagraph}%
- \fi
- \immediate\closeout\tmpblocks
- \egroup
- \getvalue{#4}}%
- \doifelsenothing{#2}
- {\edef\bufferfilename{\TEXbufferfile\jobname}}%
- {\edef\bufferfilename{\TEXbufferfile{#2}}}%
- \immediate\openout\tmpblocks\bufferfilename
- \ifsegmentatebuffer
- \immediate\write\tmpblocks{\string\startbufferparagraph}%
- \fi
- \newcounter\nestedbufferlevel
- \recatcodeuppercharacterstrue
- \setcatcodetable\vrbcatcodes
- \obeylines
- \copybufferline}
-
-\letvalue{\e!start\v!buffer}\dostartbuffer
-
-\let\endbuffer\undefined % to please the dep parser
-
-\def\setbuffer
- {\dosingleempty\dosetbuffer}
-
-\long\def\dosetbuffer[#1]#2\endbuffer % seldom used so we just pass #2
- {\begingroup
- \setcurrentbuffer{#1}%
- \edef\bufferfilename{\TEXbufferfile{\currentbuffer}}%
- \immediate\openout\tmpblocks\bufferfilename
- \defconvertedargument\ascii{#2}%
- \immediate\write\tmpblocks{\ascii}%
- \immediate\closeout\tmpblocks
- \endgroup}
-
-\def\setupbuffer
- {\dodoubleempty\dosetupbuffer}
-
-\def\dosetupbuffer[#1][#2]%
- {\ifsecondargument
- \getparameters[\??bu#1][#2]%
- \else
- \getparameters[\??bu][#1]%
- \fi}
-
-\def\dodefinebuffer[#1][#2]%
- {\iffirstargument % else problems
- \doglobal\increment\nofdefinedbuffers
- \letvalue{\??bu#1\c!number }\nofdefinedbuffers
- \letvalue{\??bu#1\c!paragraph}\v!no
- \setevalue{\e!start#1}{\noexpand\dostartbuffer[#1][def-\nofdefinedbuffers][\e!start#1][\e!stop#1]}%
- \unexpanded\setevalue{\e!get #1}{\noexpand\dogetbuffer [#1][def-\nofdefinedbuffers]}%
- \unexpanded\setevalue{\e!type #1}{\noexpand\dotypebuffer [#1][def-\nofdefinedbuffers]}%
- \getparameters[\??bu#1][#2]%
- \fi}
-
-\def\definebuffer
- {\dodoubleempty\dodefinebuffer}
-
-\unexpanded\def\getbuffer
- {\dodoubleempty\dogetbuffer}
-
-\def\dogetbuffer[#1][#2]%
- {\ifsecondargument
- \dodogetbuffer[#1][#2]%
- \else
- \dodogetbuffer[][#1]%
- \fi}
-
-\def\dogetbufferasis{\readjobfile{\TEXbufferfile{\currentbuffer}}\donothing\donothing}%
-
-\def\dodogetbuffer[#1][#2]%
- {\getvalue{\??bu#1\c!before}%
- \dobuffer{16}{#2}\dogetbufferasis
- \getvalue{\??bu#1\c!after}}
-
-\unexpanded\def\typebuffer
- {\dodoubleempty\dotypebuffer}
-
-\def\dogetfilebuffer{\typefile{\TEXbufferfile{\currentbuffer}}}
-
-\def\dotypebuffer[#1][#2]%
- {\iffirstargument
- \dobuffer{17}{#1}\dogetfilebuffer
- \else
- \dobuffer{17}{#2}\dogetfilebuffer
- \fi}
-
-\def\dobuffer#1#2#3%
- {\doifelsenothing{#2}
- {\dodobuffer#3\jobname}
- {\processcommalist[#2]{\dodobuffer#3}}}
-
-\def\dodobuffer#1#2% command name
- {\pushmacro\currentbuffer
- \edef\currentbuffer{\ifcsname\??bu#2\c!number\endcsname def-\csname\??bu#2\c!number\endcsname\else#2\fi}%
- \beginrestorecatcodes
- #1%
- \endrestorecatcodes
- \popmacro\currentbuffer}
-
-\def\processTEXbuffer{\getbuffer} % handy
-
-% seldom used, only in a few projects that demanded more speed
-
-\def\dostartmemorybuffer
- {\dosingleempty\dostartmemorybuffer}
-
-\long\def\dostartmemorybuffer[#1]#2\stopbuffer
- {\setbuffer[#1]#2\endbuffer}
-
-\let\dostartfilebuffer\startbuffer
-
-\def\usememorybuffers{\let\startbuffer\dostartmemorybuffer}
-\def\usefilebuffers {\let\startbuffer\dostartfilebuffer}
-
-% this features is soldom used (complex examns where we need to fetch
-% special parts of a text
-%
-% this is not yet supported in mkiv (relatively easy to do but there
-% we don't have the par tags but need to grab 'm
-
-\def\skippedbufferparagraphs{0}
-
-\let\startbufferparagraph\relax
-\let\stopbufferparagraph \par % \relax
-
-\newcount\currentbufferparagraph
-
-\def\getbufferparagraphs
- {\dodoubleempty\dogetbufferparagraphs}
-
-\def\dosetbufferoffset#1%
- {\doifnumberelse{\getvalue{\??bu#1\c!paragraph}}
- {\currentbufferparagraph-\getvalue{\??bu#1\c!paragraph}}
- {\currentbufferparagraph \zerocount}%
- \relax}
-
-\def\dogetbufferparagraphs[#1][#2]%
- {\iffirstargument
- \ifsecondargument
- \dosetbufferoffset{#1}%
- \doifelse{#2}\v!all
- {\def\startbufferparagraph{\normalbufferparagraph{#1}}}
- {\def\startbufferparagraph{\filterbufferparagraph{#1}{#2}}}%
- \def\stopbufferparagraph{\dostopbufferparagraph{#1}}%
- \def\next{\getparagraphedbuffer[#1]}%
- \else
- \dosetbufferoffset\empty
- \def\startbufferparagraph{\filterbufferparagraph{}{#1}}%
- \def\stopbufferparagraph{\dostopbufferparagraph{}}%
- \def\next{\getparagraphedbuffer[]}%
- \fi
- \else
- \dosetbufferoffset\empty
- \def\startbufferparagraph{\normalbufferparagraph{}}%
- \def\stopbufferparagraph{\dostopbufferparagraph{}}%
- \def\next{\getparagraphedbuffer[]}%
- \fi
- \next}
-
-\def\dogetparagraphbuffer{\readjobfile{\TEXbufferfile{\currentbuffer}}\donothing\donothing}
-
-\def\getparagraphedbuffer[#1]%
- {\dobuffer{16}{#1}\dogetparagraphbuffer}
-
-\def\dostopbufferparagraph#1%
- {\getvalue{\??bu#1\c!after}\par}
-
-\def\dostartbufferparagraph#1%
- {\par\getvalue{\??bu#1\c!before}}
-
-\def\normalbufferparagraph
- {\advance\currentbufferparagraph \plusone
- \ifnum\currentbufferparagraph>\zerocount
- \expandafter\dostartbufferparagraph
- \else
- \expandafter\gobblebufferparagraph
- \fi}
-
-\def\filterbufferparagraph#1#2%
- {\advance\currentbufferparagraph \plusone
- \ifcase\currentbufferparagraph
- \expandafter\gobblebufferparagraph
- \else
- \doifinsetelse{\the\currentbufferparagraph}{#2}
- {\expandafter\dostartbufferparagraph}
- {\expandafter\fakebufferparagraph}%
- \fi
- {#1}}
-
-\long\def\gobblebufferparagraph#1#2\stopbufferparagraph
- {}
-
-\def\fakebufferparagraph#1%
- {\bgroup
- \def\stopbufferparagraph{\dostopbufferparagraph{#1}\egroup\egroup}%
- \setbox\scratchbox\vbox\bgroup\dostartbufferparagraph{#1}}
-
-% definitions
-
-\definebuffer[\v!hiding] \setupbuffer[\v!hiding][\c!local=\v!yes]
-
-\setupbuffer
- [\c!paragraph=\v!no,
- \c!before=,
- \c!after=]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/buff-ver.mkii b/Master/texmf-dist/tex/context/base/mkii/buff-ver.mkii
deleted file mode 100644
index fbe56892ea1..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/buff-ver.mkii
+++ /dev/null
@@ -1,1339 +0,0 @@
-%D \module
-%D [ file=buff-ver, % was core-ver
-%D version=2000.05.09,
-%D title=\CONTEXT\ Buffer Macros,
-%D subtitle=Verbatim,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Buffer Macros / Verbatim}
-
-\unprotect
-
-\ifx\startlinenumbering\undefined \let\startlinenumbering\relax \fi
-\ifx\stoplinenumbering \undefined \let\stoplinenumbering\relax \fi
-\ifx\setuplinenumbering\undefined \def\setuplinenumbering[#1]{} \fi
-
-% \type{ <crlf> char} geeft bagger
-
-%D We are going to embed the general verbatim support macros in
-%D a proper environment. First we show the common setup
-%D macro, so we know what features are supported. The options
-%D are hooked into the support macros via the \type{\obey}
-%D macros.
-
-\newif\ifslantedtypeactivated
-\newif\ifslantedtypepermitted
-
-\def\switchslantedtype
- {\ifslantedtypepermitted
- \ifslantedtypeactivated
- \slantedtypeactivatedfalse\tttf
- \else
- \slantedtypeactivatedtrue\ttsl
- \fi
- \fi}
-
-\newprettytrue % movet to here from cont-sys.tex
-
-\def\prettyidentifier {TEX}
-\def\prettypalet {}
-
-\def\installprettytype
- {\dodoubleargument\doinstallprettytype}
-
-\def\doinstallprettytype[#1][#2]% map #1 onto #2
- {\uppercasestring#1\to\asciia
- \uppercasestring#2\to\asciib
- \setevalue{\??ty\??ty\asciia}{\asciib}}
-
-\def\setupprettiesintype#1%
- {\uppercasestring#1\to\ascii
- \edef\prettyidentifier{\executeifdefined{\??ty\??ty\ascii}{TEX}}%
- \doifundefined{setuppretty\prettyidentifier type}%
- {\startnointerference
- \restorecatcodes % also needed when loading during \newpretty
- \startreadingfile % restore < and > if needed
- \lowercasestring verb-\prettyidentifier\to\filename
- \readsysfile{\filename.mkii}\donothing\donothing
- \stopreadingfile
- \stopnointerference}%
- \doifdefinedelse{setuppretty\prettyidentifier type}%
- {\let\uncatcodecharacters\uncatcodeallcharacters % ugly, should be switch / todo
- \def\dosetupprettytype{\getvalue{setuppretty\prettyidentifier type}}}
- {\let\dosetupprettytype\relax}}
-
-\def\setupprettytype{\dosetupprettytype}
-
-% \def\setupcommonverbatim
-% {\recatcodeuppercharactersfalse % obey regime / encoding
-% %
-% \let\prettyidentifier\s!default
-% %
-% \doifelse{\typingparameter\c!text}\v!yes
-% \naturaltextexttrue
-% \naturaltextextfalse
-% \def\prettyidentifierfont{\typingparameter\c!icommand}%
-% \def\prettyvariablefont {\typingparameter\c!vcommand}%
-% \def\prettynaturalfont {\typingparameter\c!ccommand}%
-% %
-% \doif{\typingparameter\c!space}\v!on
-% {\def\obeyspaces{\setcontrolspaces}}%
-% \doif{\typingparameter\c!page }\v!no
-% {\def\obeypages {\ignorepages}}%
-% %
-% \doifelse{\typingparameter\c!tab}\v!yes
-% {\def\obeytabs{\settabskips}}%
-% {\doif{\typingparameter\c!tab}\s!ascii
-% {\chardef\tabskipmode\plustwo % quit on >127
-% \def\obeytabs{\settabskips}}}%
-% %
-% \ignorehyphens % default
-% \ExpandFirstAfter\processaction
-% [\typingparameter\c!lines]
-% [ \v!yes=>\obeybreakpoints,
-% \v!hyphenated=>\obeyhyphens]%
-% \processaction
-% [\typingparameter\c!empty]
-% [\v!yes=>\obeyemptylines,
-% \v!all=>\obeyallemptylines]%
-% %
-% \ExpandFirstAfter\processaction
-% [\typingparameter\c!option]
-% [ \v!none=>\let\obeycharacters\relax,
-% \v!color=>\setupprettiesintype{TEX}%
-% \let\obeycharacters\setupprettytype
-% \let\obeytabs\ignoretabs,
-% \v!normal=>\let\obeycharacters\setupgroupedtype,
-% \v!commands=>\def\obeycharacters{\setupcommandsintype}% \let
-% \let\obeytabs\ignoretabs,
-% \v!slanted=>\let\obeycharacters\setupslantedtype
-% \let\obeytabs\ignoretabs,
-% \s!unknown=>\setupprettiesintype{\typingparameter\c!option}%
-% \let\obeycharacters\setupprettytype
-% \let\obeytabs\ignoretabs]%
-% \doifnumberelse{\typingparameter\c!tab}
-% {\def\obeytabs{\setfixedtabskips{\typingparameter\c!tab}}}%
-% \donothing
-% %\def\verbatimfont{\typingparameter\c!style\normalnoligatures\font}%
-% % more generic, but beware of the \redoconvertfont (else no typing in titles and such)
-% \def\verbatimfont{\redoconvertfont\dosetfontattribute{\currenttypingclass\currenttyping}\c!style\normalnoligatures\font}%
-% \setupverbatimcolor}
-
-\setvalue{\??tp:\c!lines:\v!yes }{\obeybreakpoints}
-\setvalue{\??tp:\c!lines:\v!hyphenated}{\obeyhyphens}
-
-\setvalue{\??tp:\c!empty:\v!yes }{\obeyemptylines}
-\setvalue{\??tp:\c!empty:\v!all }{\obeyallemptylines}
-
-\setvalue{\??tp:\c!option:\v!none }{\let\obeycharacters\relax}
-\setvalue{\??tp:\c!option:\v!color }{\setupprettiesintype{TEX}%
- \let\obeycharacters\setupprettytype
- \let\obeytabs\ignoretabs}
-\setvalue{\??tp:\c!option:\v!normal }{\let\obeycharacters\setupgroupedtype}
-\setvalue{\??tp:\c!option:\v!commands }{\def\obeycharacters{\setupcommandsintype}%
- \let\obeytabs\ignoretabs}
-\setvalue{\??tp:\c!option:\v!slanted }{\let\obeycharacters\setupslantedtype
- \let\obeytabs\ignoretabs}
-\setvalue{\??tp:\c!option:\s!unknown }{\setupprettiesintype{\typingparameter\c!option}%
- \let\obeycharacters\setupprettytype
- \let\obeytabs\ignoretabs}
-
-\def\setupcommonverbatim
- {\recatcodeuppercharactersfalse % obey regime / encoding
- %
- \let\prettyidentifier\s!default
- %
- \doifelse{\typingparameter\c!text}\v!yes
- \naturaltextexttrue
- \naturaltextextfalse
- \def\prettyidentifierfont{\typingparameter\c!icommand}%
- \def\prettyvariablefont {\typingparameter\c!vcommand}%
- \def\prettynaturalfont {\typingparameter\c!ccommand}%
- %
- \doif{\typingparameter\c!space}\v!on
- {\def\obeyspaces{\setcontrolspaces}}%
- \doif{\typingparameter\c!page }\v!no
- {\def\obeypages {\ignorepages}}%
- %
- \doifelse{\typingparameter\c!tab}\v!yes
- {\def\obeytabs{\settabskips}}%
- {\doif{\typingparameter\c!tab}\s!ascii % not needed in mkiv
- {\chardef\tabskipmode\plustwo % quit on >127
- \def\obeytabs{\settabskips}}}%
- %
- \ignorehyphens % default
- \getvalue{\??tp:\c!lines:\typingparameter\c!lines}%
- \getvalue{\??tp:\c!empty:\typingparameter\c!empty}%
- \getvalue{\??tp:\c!option:\ifcsname\??tp:\c!option:\typingparameter\c!option\endcsname\typingparameter\c!option\else\s!unknown\fi}%
- \doifnumberelse{\typingparameter\c!tab}
- {\def\obeytabs{\setfixedtabskips{\typingparameter\c!tab}}}%
- \donothing
- %\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}
-
-% BEWARE: the noligatures will globally change the verbatim font's behaviour
-
-% test case:
-%
-% \definetype[typeTEX][option=tex]
-%
-% \typeTEX|\example---oeps|. this---ligates---again.
-% \typeTEX{\example---oeps}. this---ligates---again.
-% \type {\example---oeps}. this---ligates---again.
-
-\def\setupcommandsintype % can also be \string\
- {\setupgroupedtype
- \edef\\{\typingparameter\c!escape}%
- \letvalue{\\}=\\% for instance \/=/
- \@EA\catcode\@EA`\\=\@@escape
- \def\BTEX##1\ETEX##2% ##2 gobbles active space
- {\naturaltextext##1\unskip\relax}}
-
-\def\setupslantedtype
- {\slantedtypepermittedtrue\setupgroupedtype}
-
-\ifx\setupprettytype \undefined \let\setupprettytype \relax \fi
-\ifx\setupslantedtype \undefined \let\setupslantedtype \relax \fi
-\ifx\setupgroupedtype \undefined \let\setupgroupedtype \relax \fi
-\ifx\normalnoligatures\undefined \let\normalnoligatures\gobbleoneargument \fi
-
-%D The verbatim commands have a rather long and turbulent
-%D history. Most users of \CONTEXT\ probably will never use
-%D some of the features, but I've kept in mind that when one is
-%D writing a users manual, about everything can and undoubtly
-%D will be subject to a verbatim treatment.
-%D
-%D Verbatim command are very sensitive to argument processing,
-%D which is a direct result of the \CATCODES\ being fixed at
-%D reading time. With our growing understanding of \TEX,
-%D especially of the mechanism that can be used for looking
-%D ahead and manipulating \CATCODES, the verbatim support
-%D became more and more advanced and natural.
-%D
-%D Typesetting inline verbatim can be accomplished by
-%D \type{\type}, which in this sentence was typeset by saying
-%D just \type{\type{\type}}, which in turn was typeset by
-%D \unknown. Using the normal grouping characters \type{{}} is
-%D the most natural way of using this command.
-%D
-%D A second, more or less redundant, alternative is delimiting
-%D the argument with an own character. This method was
-%D implemented in the context of a publication in the \MAPS,
-%D where this way of delimiting is recognized by \LATEX\ users.
-%D
-%D The third, more original alternative, is the one using
-%D \type{<<} and \type{>>} as delimiters. This alternative can
-%D be used in situations where slanted typeseting is needed.
-
-% todo: we can use \letter... here:
-
-\def\lesscharacter {<}
-\def\morecharacter {>}
-
-\chardef\texescape = `\\
-\chardef\leftargument = `\{
-\chardef\rightargument = `\}
-
-%D \macros
-%D {type}
-%D
-%D We define \type{\type} as a protected command. This command
-%D has several invocations: grouped, wirt boundary characters,
-%D and with font switches.
-
-% \starttyping
-% normal: \par \type{xx<<..xx..<<xx <<xx>> >>..>>xx} \par \type<<....>> \par \type<<..<<xx>>..>> \par
-% normal: \par \type{xx<..xx..<xx <slanted> >..>xx} \par \type{<....>} \par \type{<..<xx>..>}
-% \setuptype[option=slanted]
-% slanted: \par \type{xx<<..sl..<<xx <<sl>> xx>>..sl..>>xx} \par \type<<..xx..>> \par \type<<..<<sl>>..>> \par
-% slanted: \par \type{xx<<..sl..<xx <sl> xx>..sl..>>xx} \par \type<<..xx..>> \par \type<<..<sl>..>> \par
-% \setuptype[option=none]
-% none: \par \type{xx<<..xx..<<xx <<xx>> >>..>>xx} \par \type<<....>> \par \type<<..<<xx>>..>> \par
-% \stoptyping
-
-%D When writing the manual to \CONTEXT\ and documenting this
-%D source we needed to typeset \type{<<} and \type{>>}. Because
-%D we wanted to do this in the natural way, we've adapted the
-%D original definition a bit. This implementation went through
-%D several live cycles. The final implementation looks a bit
-%D further and treats the lone \type{<<} and \type{>>} a bit
-%D different. The \type {\null} prevents ligatures, which
-%D unfortunately turn up in Lucida fonts.
-
-%D The following lines show what happens when we set
-%D \type {option=commands}.
-%D
-%D \startbuffer
-%D \starttyping
-%D test//test test/BTEX \footnote{test test test}/ETEX test
-%D test//test test/BTEX \footnote{test test test}/ETEX test
-%D test test test/BTEX \bf(nota bene)/ETEX test
-%D test test test /BTEX \bf(nota bene)/ETEX test
-%D \stoptyping
-%D \stopbuffer
-%D
-%D % \bgroup\setuptyping[option=commands]\getbuffer\egroup
-%D
-%D this was keyed in as:
-%D
-%D \typebuffer
-
-\unexpanded\def\type{\dotype\empty}
-
-% not that fast but catches \type{\command} % nothing more after \command
-%
-% \setupcolors[state=start]
-% \setuptype[option=TEX]
-% \setupcolors[textcolor=red]
-%
-% The options \type{before=\startsolutionbackground } and
-% \type{after=\stopsolutionbackground} take care of putting a frame,
-% which can
-%
-% {\blue The options \type{before=\startsolutionbackground } and
-% \type{after=\stopsolutionbackground} take care of putting a frame,
-% which} can
-
-\def\resumecoloraftergroup
- {\localstartcolor[\s!black]%
- \localstartcolor[\maintextcolor]%
- \aftergroup\localstopcolor
- \aftergroup\localstopcolor}
-
-% the rather messy \type command
-
-\def\dotype#1% was \dotype
- {\bgroup
- \resumecoloraftergroup % a problem is that we can still be in color mode, tricky hack
- \begstrut % new, enables leading space in \type { abc } at par start / begstrut else no hyphenation
- \let\currenttypingclass\??ty
- \edef\currenttyping{#1}%
- \catcode`\<=\@@other
- \catcode`\>=\@@other
- \futurelet\next\dodotype}
-
-\def\dodotypeA
- {\initializetype
- \initializetypegrouping
- \verbatimfont
- \verbatimcolor
- \afterassignment\protectfirsttype\let\next=}
-
-\def\dodotypeB
- {\initializetype
- \setupnotypegrouping
- \verbatimfont
- \verbatimcolor
- \let\next=}
-
-\def\dodotypeC<#1%
- {\initializetype
- \verbatimfont
- \verbatimcolor
- \if#1<%
- \@EA\setupalternativetypegrouping
- \else
- \@EA#1%
- \fi}
-
-\def\dodotypeD#1%
- {\initializetype
- \verbatimfont
- \verbatimcolor
- \catcode`#1=\@@endgroup}
-
-\def\dodotype
- {\ifx\next\bgroup
- \@EA\dodotypeA
- \else\if\next<%
- \doifelse{\typingparameter\c!option}\v!none
- {\@EAEAEA\dodotypeB}{\@EAEAEA\dodotypeC}%
- \else
- \@EAEAEA\dodotypeD
- \fi\fi}
-
-% The next one is safe for: \def\xx#1{\type{#1}} \xx{\ifx}
-
-\let\protectedfirsttype\string % \relax for special cases
-
-\bgroup
-\catcode`\<=\active
-\catcode`\>=\active
-\gdef\doprotectfirsttype
- {\normalifx\next<%
- \endrobusttest \let\next\relax
- \normalelse\normalifx\next\bgroup
- \endrobusttest \let\next\relax
- \normalelse\normalifx\next\egroup % takes care of \type{}
- \endrobusttest \let\next\relax
- \normalelse\normalifx\next\activeleftargument
- \endrobusttest \let\next\relax
- \normalelse
- \endrobusttest \let\next\protectedfirsttype
- \normalfi\normalfi\normalfi\normalfi
- \next}
-\egroup
-
-\def\protectfirsttype
- {\beginrobusttest
- \futurelet\next\doprotectfirsttype}
-
-% Verbatim does not work when passed as an argument, so here is a
-% workaround. Beware, spaces are introduced after a \type {\csname}.
-
-\chardef\recodeverbatimmode\zerocount % 0=nothing 1=rescan 2=autorescan
-
-% \appendtoks \chardef\recodeverbatimmode\plustwo \to \everytabulate
-% \appendtoks \chardef\recodeverbatimmode\plustwo \to \everytable
-
-\def\dodotypeA
- {\initializetype
- \initializetypegrouping
- \verbatimfont
- \verbatimcolor
- \ifcase\recodeverbatimmode
- \@EA\dodotypeAA
- \or
- \@EA\dodotypeAB
- \or
- \ifnum\catcode`\{=\@@active
- \@EAEAEA\dodotypeAB
- \else
- \@EAEAEA\dodotypeAA
- \fi
- \else
- \@EA\dodotypeAA
- \fi}
-
-\def\dodotypeAA
- {\afterassignment\protectfirsttype\let\next=}
-
-\def\dodotypeAB
- {\bgroup
- \catcode`\}=\@@endgroup
- \catcode`\{=\@@begingroup
- \afterassignment\redotypeAB\global\globalscratchtoks}
-
-\def\redotypeAB
- {\egroup
- \expandafter\defconvertedargument\expandafter\ascii\expandafter{\the\globalscratchtoks}% == \edefconvertedargument\ascii{\the\globalscratchtoks}%
- \ifx\scantokens\undefined\ascii\else\everyeof{\hskip-\spaceskip}\scantokens\expandafter{\ascii}\fi
- \egroup}
-
-\bgroup
-\catcode`\[=\@@begingroup
-\catcode`\]=\@@endgroup
-\catcode`\{=\@@active
-\catcode`\}=\@@active
-\gdef\initializetypegrouping
- [\ifnum\catcode`\{=\@@active
- \let\normalactivebgroup{%
- \let\normalactiveegroup}%
- \else
- \catcode`\{=\@@active
- \catcode`\}=\@@active
- \let\normalactivebgroup\leftargument
- \let\normalactiveegroup\rightargument
- \fi
- \def\activeleftargument
- [\bgroup
- \catcode`\}=\@@active
- \let}\activerightargument
- \normalactivebgroup]%
- \def\activerightargument
- [\normalactiveegroup
- \egroup]%
- \let{=\activeleftargument
- % not \let}=\egroup, otherwise things go wrong in alignments (???)
- \catcode`\}=\@@endgroup]
-\egroup
-
-\bgroup
-\catcode`\<=\@@active
-\catcode`\>=\@@active
-\gdef\setupalternativetypegrouping
- {\catcode`\<=\@@active
- \catcode`\>=\@@active
- \def\doless
- {\ifx<\next
- \def\next
- {\bgroup\switchslantedtype
- \let\next=}%
- \else
- \let\next\lesscharacter
- \fi
- \next}%
- \def\domore
- {\ifx>\next
- \def\next
- {\egroup
- \let\next=}%
- \else
- \let\next\morecharacter
- \fi
- \next}%
- \def<{\futurelet\next\doless}%
- \def>{\futurelet\next\domore}}
-\egroup
-
-\def\setupnotypegrouping
- {\catcode`\<=\@@begingroup
- \catcode`\>=\@@endgroup}
-
-\def\doenterdoublelesstype
- {\ifx\next\egroup
- \lesscharacter\null\lesscharacter
- \else
- \bgroup\switchslantedtype
- \let\doenterdoublemoretype\egroup
- \fi}
-
-\def\doenterdoublemoretype
- {\def\doenterdoubletype
- {\ifx\next\egroup
- \morecharacter\null\morecharacter
- \fi}}
-
-\bgroup
-\catcode`\<=\@@active
-\catcode`\>=\@@active
-\gdef\setupgroupedtype
- {\catcode`\<=\@@active
- \catcode`\>=\@@active
- \def\doless
- {\ifx<\next
- \def\next
- {\def\enterdoubletype{\futurelet\next\doenterdoublelesstype}%
- \afterassignment\enterdoubletype
- \let\next=}%
- \else
- \let\next\lesscharacter
- \fi
- \next}%
- \def\domore
- {\ifx>\next
- \def\next
- {\def\enterdoubletype{\futurelet\next\doenterdoublemoretype}%
- \afterassignment\enterdoubletype
- \let\next=}%
- \else
- \let\next\morecharacter
- \fi
- \next}%
- \def<{\futurelet\next\doless}%
- \def>{\futurelet\next\domore}}
-\egroup
-
-%D The neccessary initializations are done by calling
-%D \type{\initializetype} which in return calls for the support
-%D macro \type{\setupinlineverbatim}.
-
-\def\initializetype
- {\let\obeylines\ignorelines
- \setupcommonverbatim
- \setupinlineverbatim}
-
-%D \macros
-%D {setuptype}
-%D
-%D Some characteristics of \type{\type} can be set up by:
-
-\def\setuptype
- {\dodoubleempty\dosetuptype}
-
-\def\dosetuptype[#1][#2]%
- {\ifsecondargument
- \getparameters[\??ty#1][#2]%
- \else
- \getparameters[\??ty][#1]%
- \fi}
-
-%D \macros
-%D {typ,obeyhyphens,obeybreakpoints}
-%D
-%D Although it's not clear from the macros, one character
-%D trait of this macros, which are build on top of the support
-%D module, is that they don't hyphenate. We therefore offer
-%D the alternative \type{\typ}. The current implementation
-%D works all right, but a decent hyphenation support of
-%D \type{\tt} text will be implemented soon.
-
-\def\obeyhyphens
- {\def\obeyedspace {\hskip\interwordspace\relax}% better than spaceskip
- \def\controlspace{\hskip\zeropoint\hbox{\normalcontrolspace}\hskip\zeropoint\relax}%
- \spaceskip.25em\relax} % hm a bit of stretch !
-
-\def\obeybreakpoints
- {\ignorehyphens
- \veryraggedright}
-
-\def\ignorehyphens
- {% \nohyphens % forgotten when no \par
- \normallanguage\minusone % fails as the font redoes the language
- \def\obeyedspace {\hskip\interwordspace\relax}% better than spaceskip
- \def\controlspace{\hskip\zeropoint\hbox{\normalcontrolspace}\hskip\zeropoint\relax}%
- \spaceskip.5em\relax}
-
-
-\unexpanded\def\typ
- {\bgroup
- \let\@@tylines\v!hyphenated
- \futurelet\next\dodotype}
-
-%D \macros
-%D {tex,arg,mat,dis}
-%D
-%D Sometimes, for instance when we pass verbatim text as an
-%D argument, the fixed \CATCODES\ interfere with our wishes. An
-%D experimental implementation of character by character
-%D processing of verbatim text did overcome this limitation,
-%D but we've decided not to use that slow and sometimes
-%D troublesome solution. Instead we stick to some 'old'
-%D \CONTEXT\ macros for typesetting typical \TEX\ characters.
-%D
-%D The next implementation is more clear but less versatile,
-%D so we treated it for a beter one.
-%D
-%D \starttyping
-%D \def\dospecialtype#1#2%
-%D {\bgroup
-%D \initializetype
-%D \catcode`\{=\@@begingroup
-%D \catcode`\}=\@@endgroup
-%D \def\dospecialtype%
-%D {\def\dospecialtype{#2\egroup}%
-%D \bgroup
-%D \aftergroup\dospecialtype
-%D #1}%
-%D \afterassignment\dospecialtype
-%D \let\next=}
-%D
-%D \unexpanded\def\tex{\dospecialtype\texescape\relax}
-%D \unexpanded\def\arg{\dospecialtype\leftargument\rightargument}
-%D \unexpanded\def\mat{\dospecialtype\$\$}
-%D \unexpanded\def\dis{\dospecialtype{\$\$}{\$\$}}
-%D \stoptyping
-
-\def\setgroupedtype
- {\let\currenttypingclass\??ty
- \initializetype
- \verbatimcolor
- \catcode`\{=\@@begingroup
- \catcode`\}=\@@endgroup}
-
-\unexpanded\def\tex{\groupedcommand{\setgroupedtype\texescape}{\relax}}
-\unexpanded\def\arg{\groupedcommand{\setgroupedtype\leftargument}{\rightargument}}
-\unexpanded\def\mat{\groupedcommand{\setgroupedtype\$}{\$}}
-\unexpanded\def\dis{\groupedcommand{\setgroupedtype\$\$}{\$\$}}
-
-\let\normaltexttex\tex
-\let\normaltextarg\arg
-\let\normaltextmat\mat
-\let\normaltextdis\dis
-
-%D \macros
-%D {starttyping}
-%D
-%D Display verbatim is realized far more easy, which is mostly
-%D due to the fact that we use \type{\stop...} as delimiter.
-%D The implementation inherits some features, for instance the
-%D support of linenumbering, which can best be studied in the
-%D documented support module.
-
-\let\currenttyping \empty
-\let\currenttypingclass\??ty % saveguard
-
-% \def\typingparameter#1%
-% {\executeifdefined
-% {\currenttypingclass\currenttyping#1}%
-% {\executeifdefined{\currenttypingclass#1}\empty}}
-
-\def\typingparameter#1%
- {\ifcsname\currenttypingclass\currenttyping#1\endcsname
- \csname\currenttypingclass\currenttyping#1\endcsname
- \else\ifcsname\currenttypingclass#1\endcsname
- \csname\currenttypingclass#1\endcsname
- \fi\fi}
-
-\def\settypingparameter#1#2%
- {\setvalue{\currenttypingclass\currenttyping#1}{#2}}
-
-\def\setxtypingparameter#1#2%
- {\setxvalue{\currenttypingclass\currenttyping#1}{#2}}
-
-% \def\initializetyping
-% {%\donefalse
-% \switchtobodyfont[\typingparameter\c!bodyfont]%
-% \donefalse
-% \scratchskip\typingparameter\c!oddmargin\relax
-% \ifzeropt\scratchskip\else\donetrue\fi
-% \scratchskip\typingparameter\c!evenmargin\relax
-% \ifzeropt\scratchskip\else\donetrue\fi
-% \ifdone
-% \def\doopenupverbatimline
-% {\getpagestatus
-% \ifrightpage
-% \hskip\typingparameter\c!oddmargin\relax
-% \else
-% \hskip\typingparameter\c!evenmargin\relax
-% \fi}%
-% \else
-% \doadaptleftskip{\typingparameter\c!margin}%
-% \fi
-% \doifdefinedelse{\??bo\typingparameter\c!blank}
-% {\edef\!!stringa{\csname\??bo\typingparameter\c!blank\endcsname}}
-% {\edef\!!stringa{\typingparameter\c!blank}}%
-% \processaction
-% [\!!stringa]
-% [ \v!standard=>\scratchskip\ctxparskip,
-% \v!small=>\scratchskip\blankokleinmaat,
-% \v!medium=>\scratchskip\blankomiddelmaat,
-% \v!big=>\scratchskip\blankogrootmaat,
-% \v!halfline=>\scratchskip.5\baselineskip,
-% \v!line=>\scratchskip\baselineskip,
-% \v!none=>\scratchskip\zeropoint,
-% \s!unknown=>\scratchskip\commalistelement]%
-% \ifgridsnapping
-% \ifdim\scratchskip=.5\baselineskip\relax
-% \edef\verbatimbaselineskip{\the\scratchskip}% new
-% \else
-% \edef\verbatimbaselineskip{\the\baselineskip}%
-% \fi
-% \else
-% \edef\verbatimbaselineskip{\the\scratchskip}%
-% \fi
-% \setupcommonverbatim}
-
-\setvalue{\??tp:\c!blank:\v!standard}{\ctxparskip}
-\setvalue{\??tp:\c!blank:\v!small }{\blankokleinmaat}
-\setvalue{\??tp:\c!blank:\v!medium }{\blankomiddelmaat}
-\setvalue{\??tp:\c!blank:\v!big }{\blankogrootmaat}
-\setvalue{\??tp:\c!blank:\v!halfline}{.5\baselineskip}
-\setvalue{\??tp:\c!blank:\v!line }{\baselineskip}
-\setvalue{\??tp:\c!blank:\v!none }{\zeropoint}
-
-\def\initializetyping
- {%\donefalse
- \switchtobodyfont[\typingparameter\c!bodyfont]%
- \donefalse
- \scratchskip\typingparameter\c!oddmargin\relax
- \ifzeropt\scratchskip\else\donetrue\fi
- \scratchskip\typingparameter\c!evenmargin\relax
- \ifzeropt\scratchskip\else\donetrue\fi
- \ifdone
- \def\doopenupverbatimline
- {\getpagestatus
- \ifrightpage
- \hskip\typingparameter\c!oddmargin\relax
- \else
- \hskip\typingparameter\c!evenmargin\relax
- \fi}%
- \else
- \doadaptleftskip{\typingparameter\c!margin}%
- \fi
- \edef\!!stringa{\executeifdefined{\??bo\typingparameter\c!blank}{\typingparameter\c!blank}}%
- \scratchskip\executeifdefined{\??tp:\c!blank:\!!stringa}\!!stringa\relax
- \ifgridsnapping
- \ifdim\scratchskip=.5\baselineskip\relax
- \edef\verbatimbaselineskip{\the\scratchskip}% new
- \else
- \edef\verbatimbaselineskip{\the\baselineskip}%
- \fi
- \else
- \edef\verbatimbaselineskip{\the\scratchskip}%
- \fi
- \setupcommonverbatim}
-
-%D The basic display verbatim commands are defined in an
-%D indirect way. As we will see, they are a specific case of a
-%D more general mechanism.
-
-% 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
- \dosetuptypelinenumbering{#1}%
- \initializetyping
- \startverbatimcolor
- \expanded{\processdisplayverbatim{\s!stop\currenttyping}}}
-
-\def\dostoptyping#1% hm, currenttyping
- {\stopverbatimcolor
- \stoppacked % includes \egroup
- \typingparameter\c!after
- \egroup
- \dochecknextindentation{\??tp#1}%
- \dorechecknextindentation}
-
-%D Line numbering for files is combined with filtering, while
-%D display verbatim has the ability to continue.
-%D
-%D \starttyping
-%D \typefile[numbering=file,start=10,stop=12]{test.tex}
-%D
-%D \definetyping[code][numbering=line]
-%D
-%D \starttext
-%D \startcode
-%D ...
-%D ...
-%D \stopcode
-%D
-%D \startcode[continue]
-%D ...
-%D ...
-%D \stopcode
-%D
-%D \startcode[start=10]
-%D ...
-%D \stopcode
-%D \stoptyping
-
-%D \macros
-%D {setuptyping}
-%D
-%D The setup of typing accepts two arguments. The optional
-%D first one identifies the user defined ones. If only one
-%D argument is given, the values apply to both the standard
-%D command \type{\starttyping} and \type{\typefile}.
-
-\def\dosetuptyping[#1][#2]%
- {\ifsecondargument
- \getparameters[\??tp#1][#2]%
- \else
- \getparameters[\??tp][#1]%
- \fi}
-
-\def\setuptyping
- {\dodoubleempty\dosetuptyping}
-
-%D \macros
-%D {definetype}
-%D
-%D Specific inline verbatim commands can be defined with the
-%D following command.
-
-\def\definetype
- {\dodoubleempty\dodefinetype}
-
-\def\dodefinetype[#1][#2]%
- {\unexpanded\setvalue{#1}{\dotype{#1}}%
- \getparameters[\??ty#1][#2]}
-
-%D \macros
-%D {definetyping}
-%D
-%D For most users the standard \type{\start}||\type{\stop}||pair
-%D will suffice, but for documentation purposes the next
-%D definition command can be of use:
-%D
-%D \starttyping
-%D \definetyping[extratyping][margin=3em]
-%D
-%D \startextratyping
-%D these extra ones are indented by 1 em
-%D \stopextratyping
-%D \stoptyping
-%D
-%D The definitions default to the standard typing values.
-
-\def\presettyping[#1][#2]%
- {\copyparameters[\??tp#1][\??tp][\c!color,\c!style]%
- \getparameters [\??tp#1][#2]}
-
-\def\dodefinetyping[#1][#2]%
- {\setvalue{\e!start#1}{\dostarttyping{#1}}%
- \setvalue{\e!stop #1}{\dostoptyping {#1}}%
- \presettyping[#1][#2]}
-
-\def\definetyping
- {\dodoubleempty\dodefinetyping}
-
-%D We can use some core color commands. These are faster than
-%D the standard color switching ones and work ok on a line by
-%D line basis.
-%D
-%D \starttyping
-%D \def\setupverbatimcolor%
-%D {\edef\prettypalet{\prettyidentifier\typingparameter\c!palet}%
-%D \def\beginofpretty[##1]{\startcolormode{\prettypalet:##1}}%
-%D \def\endofpretty {\stopcolormode}}
-%D \stoptyping
-%D
-%D Since we support a global color too, the folowing
-%D definition is better:
-
-% \def\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
-% \let\stopverbatimcolor \relax
-% \let\verbatimcolor \relax}
-% {\def\beginofpretty[##1]{\startcolor[\prettypalet:##1]}%
-% \let\endofpretty \stopcolor
-% \def\startverbatimcolor{\startcolor[\typingparameter\c!color]}%
-% \let\stopverbatimcolor \stopcolor
-% \def\verbatimcolor {\getvalue{\typingparameter\c!color}}}% command !
-% \doifelsenothing{\typingparameter\c!palet}
-% {\let\prettypalet\empty
-% \let\endofpretty\relax
-% \def\beginofpretty[##1]{}}
-% {\edef\prettypalet{\prettyidentifier\typingparameter\c!palet}}}
-%
-% let's forget about this optimization not that we have mkiv
-
-\def\setupverbatimcolor
- {\def\beginofpretty[##1]{\startcolor[\prettypalet:##1]}%
- \let\endofpretty \stopcolor
- \def\startverbatimcolor{\startcolor[\typingparameter\c!color]}%
- \let\stopverbatimcolor \stopcolor
- \def\verbatimcolor {\getvalue{\typingparameter\c!color}}% command !
- \doifelsenothing{\typingparameter\c!palet}
- {\let\prettypalet\empty
- \let\endofpretty\relax
- \def\beginofpretty[##1]{}}
- {\edef\prettypalet{\prettyidentifier\typingparameter\c!palet}}}
-
-\let\prettypalet \empty
-\let\startverbatimcolor\relax
-\let\stopverbatimcolor \relax
-\let\verbatimcolor \relax
-
-%D In the verbatim module, there are some examples given of
-%D the more obscure features of the verbatim environments.
-%D
-%D \startbuffer
-%D \startTEX
-%D \def\mathematics#1% % usage: \type {\mathematics{x^2}}
-%D {\ifmmode#1\else$#1$\fi} % becomes: \mathematics{x^2}
-%D \stopTEX
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D This gives, as can be expected:
-%D
-%D \getbuffer
-%D
-%D When we want to see some typeset \TEX\ too, we can say:
-%D
-%D \startbuffer
-%D \startTEX
-%D \def\mathematics#1% %%\ N usage: \type {\mathematics{x^2}}
-%D {\ifmmode#1\else$#1$\fi} %%\ N becomes: \mathematics{x^2}
-%D \stopTEX
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D or:
-%D
-%D \getbuffer
-%D
-%D In a similar way:
-%D
-%D \startbuffer
-%D \startSQL
-%D select * -- indeed, here we {\em do} select
-%D from tableA
-%D where 1 = 2
-%D \stopSQL
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D gives:
-%D
-%D \getbuffer
-%D
-%D The next examples sow how we can directly call for natural
-%D \TEX\ comments:
-%D
-%D \startbuffer
-%D \setuptyping
-%D [TEX]
-%D [text=yes]
-%D
-%D \startTEX
-%D \def\mathematics#1% % usage: \type {\mathematics{x^2}}
-%D {\ifmmode#1\else$#1$\fi} % becomes: \mathematics{x^2}
-%D \stopTEX
-%D
-%D \setuptyping
-%D [SQL]
-%D [text=yes,palet=,icommand=\bf,vcommand=,ccommand=\it]
-%D
-%D \startSQL
-%D select * -- indeed, here we {\em do} select
-%D from tableA
-%D where 1 = 2
-%D \stopSQL
-%D
-%D \setuptyping
-%D [SQL]
-%D [ccommand=\tf\underbar]
-%D
-%D \startSQL
-%D select * -- indeed, here we {\em do} select
-%D from tableA
-%D where 1 = 2
-%D \stopSQL
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Now watch:
-%D
-%D \getbuffer
-%D
-%D The natural \TEX\ typesetting was introduced when Tobias
-%D and Berend started using verbatim \JAVASCRIPT\ and \SQL.
-
-%D \macros
-%D {EveryPar, EveryLine, iflinepar}
-%D
-%D One of the features of these commands is the support of
-%D \type{\EveryPar}, \type{\EveryLine} and \type{\iflinepar}.
-%D In the documentation of the verbatim support module we give
-%D some examples of line- and paragraph numbering using these
-%D macros.
-
-%D \macros
-%D {typefile}
-%D
-%D Typesetting files verbatim (for the moment) only supports
-%D colorization of \TEX\ sources as valid option. The other
-%D setup values are inherited from display verbatim.
-%D The implementation of \type{\typefile} is straightforward:
-
-% new feature (not yet 100\% ok)
-%
-% \setuptyping[file][numbering=file]
-%
-% \typefile[start=2,nlines=3]{zapf}
-% \typefile[start=continue,nlines=13]{zapf}
-% \typefile{zapf}
-%
-% \setuptyping[file][numbering=line]
-%
-% \typefile[start=4,step=3]{zapf}
-% \typefile{zapf}
-
-\def\typefile
- {\dodoubleempty\dotypefile}
-
-\def\dotypefile[#1][#2]#3%
- {\ifsecondargument
- \dodotypefile[#1][#2]{#3}%
- \else\iffirstargument
- \doifassignmentelse{#1}
- {\dodotypefile[\v!file][#1]{#3}}
- {\dodotypefile[#1][]{#3}}%
- \else
- \dodotypefile[\v!file][]{#3}%
- \fi\fi}
-
-\def\dosetuptypelinenumbering#1% fuzzy
- {\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}
- {\doifelse{\typingparameter\c!numbering}\v!line
- {% \setuplinenumbering defaults start/step to 1/1, so we need
- \doifinsetelse\v!continue{#1,\typingparameter\c!start}
- {\scratchcounter0\typingparameter\c!n
- \setxtypingparameter\c!start{\ifnum\scratchcounter=0 1\else\number\scratchcounter\fi}}%
- {\doifnothing{\typingparameter\c!start}{\settypingparameter\c!start{1}}}%
- \doifnothing{\typingparameter\c!step}{\settypingparameter\c!step{1}}%
- \setuplinenumbering
- [\c!method=\v!type,
- \c!start=\typingparameter\c!start,
- \c!stop=\typingparameter\c!stop,
- \c!step=\typingparameter\c!step]%
- \donetrue}
- {\donefalse}}%
- \ifdone
- \ifx\startlinenumbering\undefined \let\startlinenumbering\relax \fi
- \ifx\stoplinenumbering \undefined \let\stoplinenumbering \relax \fi
- \def\beginofverbatimlines{\startlinenumbering}%
- \def\endofverbatimlines {\stoplinenumbering\setxtypingparameter\c!n{\number\linenumber}}%
- \fi}
-
-\def\reporttypingerror#1% temp hack
- {\blank
- \dontleavehmode\hbox\bgroup
- \expanded{\defconvertedargument\noexpand\ascii{#1}}%
- \tttf[\makemessage\m!verbatims1\ascii]%
- \showmessage\m!verbatims1\ascii
- \egroup
- \blank}
-
-\def\dosometyping#1#2#3#4#5%
- {\bgroup
- \let\currenttypingclass\??tp
- \edef\currenttyping{#1}%
- \typingparameter\c!before
- \startpacked % includes \bgroup
- \dosetuptypelinenumbering{#2}%
- \doifinset{\typingparameter\c!option}{\v!commands,\v!slanted,\v!normal}
- {\setuptyping[#1][\c!option=\v!none]}%
- \doif{\typingparameter\c!option}\v!color
- {\expandafter\aftersplitstring#3\at.\to\prettyidentifier
- \settypingparameter\c!option{\prettyidentifier}}%
- \initializetyping
- \startverbatimcolor
- \doifundefinedelse{\currenttypingclass#3\v!global\c!start}
- {\scratchcounter\zerocount}
- {\scratchcounter\getvalue{\currenttypingclass#3\v!global\c!start}}%
- \advance\scratchcounter\plusone
- \setxvalue{\currenttypingclass#3\v!global\c!start}{\the\scratchcounter}%
- \doifelsenothing{\typingparameter\c!start}
- {#4}
- {\doif{\typingparameter\c!start}\v!continue
- {\setevalue{\currenttypingclass#1\c!start}%
- {\getvalue{\currenttypingclass#3\v!global\c!start}}}%
- \doifelsenothing{\typingparameter\c!stop}
- {\doifelsenothing{\typingparameter\c!nlines}
- {#4}
- {\setxvalue{\currenttypingclass#3\v!global\c!start}%
- {\the\numexpr\typingparameter\c!start+\typingparameter\c!nlines+\minusone\relax}%
- #5{\typingparameter\c!start}{\getvalue{\currenttypingclass#3\v!global\c!start}}}}%
- {#5{\typingparameter\c!start}{\typingparameter\c!stop}}}%
- \stopverbatimcolor
- \stoppacked
- \typingparameter\c!after
- \egroup}
-
-\def\doifelsetypingfile#1% sets \readfilename (we will make this proper mkiv i.e. less messy)
- {\doiflocfileelse{#1}
- {\firstoftwoarguments}
- {\doifinputfileelse{#1}
- {\def\readfilename{\pathplusfile\filepath{#1}}\firstoftwoarguments} % messy, looks wrong too
- {\secondoftwoarguments}}}
-
-\def\dodotypefile[#1][#2]#3%
- {\doifelsetypingfile{#3}
- {\dosometyping{#1}{#2}{#3}{\processfileverbatim\readfilename}{\processfilelinesverbatim\readfilename}}
- {\reporttypingerror{#3}}}
-
-%D \macros
-%D {filename}
-%D
-%D Typesetting filenames in monospaced fonts is possible with
-%D
-%D \starttyping
-%D \filename{here/there/filename.suffix}
-%D \stoptyping
-%D
-%D The definition is not that spectacular.
-
-\unexpanded\def\filename#1{{\tttf\hyphenatedfilename{#1}}}
-
-%D This leaves some settings:
-
-\permitshiftedendofverbatim
-\optimizeverbatimtrue
-
-%D And a bonus macro:
-
-\def\verbatim#1{\defconvertedargument\ascii{#1}\ascii}
-
-%D The setups for display verbatim and file verbatim are
-%D shared. One can adapt the extra defined typing environments,
-%D but they also default to the values below. Watch the
-%D alternative escape character.
-
-\setuptyping
- [ \c!before=\blank,
- \c!after=\blank,
- \c!bodyfont=,
- \c!color=,
- \c!space=\v!off,
- \c!page=\v!no,
- \c!tab=\s!ascii,
- \c!option=\v!none,
- \c!palet=colorpretty,
- \c!text=\v!no,
- \c!style=\tttf,
- \c!icommand=\ttsl,
- \c!vcommand=,
- \c!ccommand=\tttf,
- \c!indentnext=\v!yes,
- \c!margin=\!!zeropoint,
- \c!evenmargin=\!!zeropoint,
- \c!oddmargin=\!!zeropoint,
- \c!blank=\v!line,
- \c!escape=/, % beware \string\ , should also be accepted
- \c!numbering=\v!no,
- \c!lines=,
- \c!empty=,
- \c!start=1,
- \c!stop=,
- \c!step=1,
- \c!continue=,
- \c!nlines=]
-
-\definetyping[\v!typing]
-
-\presettyping[\v!file][]
-
-% \setuptyping % not needed
-% [\v!file]
-% [\c!start=1,
-% \c!stop=,
-% \c!step=1,
-% \c!continue=,
-% \c!nlines=]
-
-%D The setups for inline verbatim default to:
-
-\setuptype
- [ \c!space=\v!off,
- \c!color=,
- \c!style=\tt\tf, % \tttf gives problems with {\tx \type...}
- \c!page=\v!no,
- \c!tab=\v!yes,
- \c!palet=colorpretty,
- \c!option=\v!normal]
-
-\definetyping[RAW] [\c!option=RAW]
-\definetyping[MP] [\c!option=MP]
-\definetyping[PL] [\c!option=PL]
-\definetyping[PM] [\c!option=PL]
-\definetyping[JS] [\c!option=JS]
-\definetyping[JV] [\c!option=JV]
-\definetyping[SQL] [\c!option=SQL]
-\definetyping[TEX] [\c!option=TEX]
-\definetyping[PAS] [\c!option=PAS]
-\definetyping[PASCAL][\c!option=PAS]
-\definetyping[MOD] [\c!option=PAS]
-\definetyping[MODULA][\c!option=PAS]
-\definetyping[DELPHI][\c!option=PAS]
-\definetyping[EIFFEL][\c!option=EIF]
-\definetyping[XML] [\c!option=XML]
-\definetyping[LUA] [\c!option=LUA]
-
-\installprettytype [RAW] [RAW]
-
-\installprettytype [TEX] [TEX]
-
-\installprettytype [PERL] [PL]
-\installprettytype [PL] [PL]
-\installprettytype [PM] [PL]
-
-\installprettytype [METAPOST] [MP]
-\installprettytype [METAFONT] [MP]
-\installprettytype [MP] [MP]
-\installprettytype [MF] [MP]
-
-\installprettytype [JAVASCRIPT] [JS]
-\installprettytype [JAVA] [JV]
-\installprettytype [JS] [JS]
-\installprettytype [JV] [JV]
-
-\installprettytype [SQL] [SQL]
-
-\installprettytype [PASCAL] [PAS]
-\installprettytype [PAS] [PAS]
-\installprettytype [MODULA] [PAS]
-\installprettytype [MOD] [PAS]
-
-\installprettytype [EIFFEL] [EIF]
-\installprettytype [EIF] [EIF]
-\installprettytype [E] [EIF]
-
-\installprettytype [XML] [XML]
-
-\installprettytype [LUA] [LUA]
-
-\installnewpretty M {\setupprettiesintype {MP}\setupprettytype}
-\installnewpretty P {\setupprettiesintype {PL}\setupprettytype}
-\installnewpretty T {\setupprettiesintype{TEX}\setupprettytype}
-\installnewpretty J {\setupprettiesintype {JV}\setupprettytype}
-\installnewpretty S {\setupprettiesintype{SQL}\setupprettytype}
-\installnewpretty W {\setupprettiesintype{PAS}\setupprettytype} % Wirth
-\installnewpretty I {\setupprettiesintype{EIF}\setupprettytype} % E taken
-\installnewpretty X {\setupprettiesintype{XML}\setupprettytype}
-
-%D We use the \CONTEXT\ color system for switching to and from
-%D color mode. We can always redefine these colors afterwards.
-
-\definecolor [colorprettyone] [r=.9, g=.0, b=.0] % red
-\definecolor [colorprettytwo] [r=.0, g=.8, b=.0] % green
-\definecolor [colorprettythree] [r=.0, g=.0, b=.9] % blue
-\definecolor [colorprettyfour] [r=.8, g=.8, b=.6] % yellow
-
-\definecolor [grayprettyone] [s=.30]
-\definecolor [grayprettytwo] [s=.45]
-\definecolor [grayprettythree] [s=.60]
-\definecolor [grayprettyfour] [s=.75]
-
-\definepalet
- [colorpretty]
- [ prettyone=colorprettyone,
- prettytwo=colorprettytwo,
- prettythree=colorprettythree,
- prettyfour=colorprettyfour]
-
-\definepalet
- [graypretty]
- [ prettyone=grayprettyone,
- prettytwo=grayprettytwo,
- prettythree=grayprettythree,
- prettyfour=grayprettyfour]
-
-\definepalet [TEXcolorpretty] [colorpretty]
-\definepalet [TEXgraypretty] [graypretty]
-\definepalet [PLcolorpretty] [colorpretty]
-\definepalet [PLgraypretty] [graypretty]
-\definepalet [PMcolorpretty] [colorpretty]
-\definepalet [PMgraypretty] [graypretty]
-\definepalet [MPcolorpretty] [colorpretty]
-\definepalet [MPgraypretty] [graypretty]
-\definepalet [JVcolorpretty] [colorpretty]
-\definepalet [JVgraypretty] [graypretty]
-\definepalet [JScolorpretty] [colorpretty]
-\definepalet [JSgraypretty] [graypretty]
-\definepalet [SQLcolorpretty] [colorpretty]
-\definepalet [SQLgraypretty] [graypretty]
-\definepalet [PAScolorpretty] [colorpretty]
-\definepalet [PASgraypretty] [graypretty]
-\definepalet [EIFcolorpretty] [colorpretty]
-\definepalet [EIFgraypretty] [graypretty]
-\definepalet [XMLcolorpretty] [colorpretty]
-\definepalet [XMLgraypretty] [graypretty]
-\definepalet [LUAcolorpretty] [colorpretty]
-\definepalet [LUAgraypretty] [graypretty]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/catc-act.mkii b/Master/texmf-dist/tex/context/base/mkii/catc-act.mkii
deleted file mode 100644
index 6535afc56b8..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/catc-act.mkii
+++ /dev/null
@@ -1,65 +0,0 @@
-%D \module
-%D [ file=catc-act,
-%D version=2006.09.18,
-%D title=\CONTEXT\ Catcode Macros,
-%D subtitle=Default Catcode Tables,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module deals with some active character handling. Use
-%D with care.
-
-%D \macros
-%D {installactivecharacter}
-
-\def\installactivecharacter#1 %
- {\edef\temp{\detokenize{#1}}%
- \cctcounterc\expandafter`\temp\relax % relax needed
- \expandafter\startextendcatcodetable
- \expandafter\ctxcatcodes\expandafter\catcode\the\cctcounterc\activecatcode
- \stopextendcatcodetable
- \letcatcodecommand \ctxcatcodes \cctcounterc \temp \relax
- \ifnum\currentcatcodetable=\ctxcatcodes \setcatcodetable\ctxcatcodes \fi}
-
-%D \macros
-%D {defineactivecharacter}
-%D
-%D Use this one with care, esp in combination with catcode
-%D vectors. There are better ways now.
-
-\chardef\activehackcode=`~
-
-\def\defineactivecharacter #1#2 #3%
- {\cctcounterc\uccode\activehackcode
- \if#1"\uccode\activehackcode\expandafter\doifnumberelse\expandafter{\string#1#2}\empty #1#2\else
- \uccode\activehackcode\expandafter\doifnumberelse\expandafter{\string#1#2}\empty`#1#2\fi
- \catcode\uccode\activehackcode\activecatcode
- \uppercase{\def\next{~}}%
- \uccode\activehackcode\cctcounterc
- \expandafter\expandafter\expandafter\def\expandafter\next\expandafter
- {\expandafter\dohandleactivecharacter\next{#3}}}
-
-\chardef\activecharactermode\plusone % overloading still backward compatible
-
-\def\dodohandleactivecharacter#1#2{#2}
-\def\donthandleactivecharacter#1#2{\noexpand#1}
-
-\def\dohandleactivecharacter
- {\ifcase\activecharactermode
- \expandafter\donthandleactivecharacter
- \else
- \expandafter\dodohandleactivecharacter
- \fi}
-
-\def\makecharacteractive #1 {\catcode`#1\active}
-
-% \def\installanddefineactivecharacter #1 % #2%
-% {\normalexpanded{\noexpand\installactivecharacter \utfchar{#1} }% wrong
-% \defineactivecharacter #1 }% {#2}}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/catc-ctx.mkii b/Master/texmf-dist/tex/context/base/mkii/catc-ctx.mkii
deleted file mode 100644
index 8bb43c1f92c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/catc-ctx.mkii
+++ /dev/null
@@ -1,76 +0,0 @@
-%D \module
-%D [ file=catc-cys,
-%D version=2006.09.18,
-%D title=\CONTEXT\ Catcode Macros,
-%D subtitle=Extra Tables,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D We prefer to define relevant catcode tables in this file instead
-%D of everywhere around.
-
-\ifdefined \ctxcatcodes \else \newcatcodetable \ctxcatcodes \fi
-\ifdefined \prtcatcodes \else \newcatcodetable \prtcatcodes \fi
-
-\startcatcodetable \ctxcatcodes
- \catcode\tabasciicode \spacecatcode
- \catcode\endoflineasciicode \endoflinecatcode
- \catcode\formfeedasciicode \endoflinecatcode
- \catcode\spaceasciicode \spacecatcode
- \catcode\endoffileasciicode \ignorecatcode
- \catcode\circumflexasciicode\superscriptcatcode
- \catcode\underscoreasciicode\subscriptcatcode
- \catcode\ampersandasciicode \alignmentcatcode
- \catcode\backslashasciicode \escapecatcode
- \catcode\leftbraceasciicode \begingroupcatcode
- \catcode\rightbraceasciicode\endgroupcatcode
- \catcode\dollarasciicode \mathshiftcatcode
- \catcode\hashasciicode \parametercatcode
- \catcode\commentasciicode \commentcatcode
- \catcode\tildeasciicode \activecatcode
- \catcode\barasciicode \activecatcode
-\stopcatcodetable
-
-\startcatcodetable \prtcatcodes
- \catcode\tabasciicode \spacecatcode
- \catcode\endoflineasciicode \endoflinecatcode
- \catcode\formfeedasciicode \endoflinecatcode
- \catcode\spaceasciicode \spacecatcode
- \catcode\endoffileasciicode \ignorecatcode
- \catcode\circumflexasciicode\superscriptcatcode
- \catcode\underscoreasciicode\subscriptcatcode
- \catcode\ampersandasciicode \alignmentcatcode
- \catcode\backslashasciicode \escapecatcode
- \catcode\leftbraceasciicode \begingroupcatcode
- \catcode\rightbraceasciicode\endgroupcatcode
- \catcode\dollarasciicode \mathshiftcatcode
- \catcode\hashasciicode \parametercatcode
- \catcode\commentasciicode \commentcatcode
- \catcode`\@ \lettercatcode
- \catcode`\! \lettercatcode
- \catcode`\? \lettercatcode
- \catcode\tildeasciicode \activecatcode
- \catcode\barasciicode \activecatcode
-\stopcatcodetable
-
-\letcatcodecommand \ctxcatcodes \barasciicode \relax
-\letcatcodecommand \ctxcatcodes \tildeasciicode \relax
-
- \catcodetable \ctxcatcodes
-\let \defaultcatcodetable \ctxcatcodes
-
-% for the moment here:
-
-\def\starttexcode
- {\pushcatcodetable
- \catcodetable\prtcatcodes}
-
-\def\stoptexcode
- {\popcatcodetable}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/catc-def.mkii b/Master/texmf-dist/tex/context/base/mkii/catc-def.mkii
deleted file mode 100644
index 25044bdf056..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/catc-def.mkii
+++ /dev/null
@@ -1,142 +0,0 @@
-%D \module
-%D [ file=catc-def,
-%D version=2006.09.18,
-%D title=\CONTEXT\ Catcode Macros,
-%D subtitle=Default Tables,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D The following catcode tables are rather \CONTEXT\ independent.
-
-\ifdefined\nilcatcodes \else \newcatcodetable \nilcatcodes \fi
-\ifdefined\texcatcodes \else \newcatcodetable \texcatcodes \fi
-\ifdefined\luacatcodes \else \newcatcodetable \luacatcodes \fi
-\ifdefined\notcatcodes \else \newcatcodetable \notcatcodes \fi
-\ifdefined\vrbcatcodes \else \newcatcodetable \vrbcatcodes \fi
-\ifdefined\prtcatcodes \else \newcatcodetable \prtcatcodes \fi
-
-\startcatcodetable \nilcatcodes
- \catcode\tabasciicode \spacecatcode
- \catcode\endoflineasciicode\endoflinecatcode
- \catcode\formfeedasciicode \endoflinecatcode
- \catcode\spaceasciicode \spacecatcode
- \catcode\endoffileasciicode\ignorecatcode
-\stopcatcodetable
-
-\startcatcodetable \texcatcodes
- \catcode\tabasciicode \spacecatcode
- \catcode\endoflineasciicode \endoflinecatcode
- \catcode\formfeedasciicode \endoflinecatcode
- \catcode\spaceasciicode \spacecatcode
- \catcode\endoffileasciicode \ignorecatcode
- \catcode\circumflexasciicode\superscriptcatcode
- \catcode\underscoreasciicode\subscriptcatcode
- \catcode\ampersandasciicode \alignmentcatcode
- \catcode\backslashasciicode \escapecatcode
- \catcode\leftbraceasciicode \begingroupcatcode
- \catcode\rightbraceasciicode\endgroupcatcode
- \catcode\dollarasciicode \mathshiftcatcode
- \catcode\hashasciicode \parametercatcode
- \catcode\commentasciicode \commentcatcode
-\stopcatcodetable
-
-\startcatcodetable \luacatcodes
- \catcode\tabasciicode \othercatcode
- \catcode\endoflineasciicode \othercatcode
- \catcode\formfeedasciicode \othercatcode
- \catcode\spaceasciicode \othercatcode
- \catcode\endoffileasciicode \ignorecatcode
- \catcode\circumflexasciicode\othercatcode
- \catcode\underscoreasciicode\othercatcode
- \catcode\ampersandasciicode \othercatcode
- \catcode\backslashasciicode \escapecatcode
- \catcode\commentasciicode \othercatcode
- \catcode\hashasciicode \othercatcode
- \catcode\barasciicode \othercatcode
- \catcode\leftbraceasciicode \othercatcode
- \catcode\rightbraceasciicode\othercatcode
- \catcode\tildeasciicode \othercatcode
- \catcode\dollarasciicode \othercatcode
-\stopcatcodetable
-
-\startcatcodetable \notcatcodes % probably less needed
- \catcode\tabasciicode \spacecatcode
- \catcode\endoflineasciicode \endoflinecatcode
- \catcode\formfeedasciicode \endoflinecatcode
- \catcode\spaceasciicode \spacecatcode
- \catcode\endoffileasciicode \ignorecatcode
- \catcode\circumflexasciicode\othercatcode
- \catcode\underscoreasciicode\othercatcode
- \catcode\ampersandasciicode \othercatcode
- \catcode\tildeasciicode \othercatcode
- \catcode\hashasciicode \othercatcode
- \catcode\dollarasciicode \othercatcode
- \catcode\commentasciicode \othercatcode
- \catcode`\< \othercatcode
- \catcode`\> \othercatcode
- \catcode\leftbraceasciicode \othercatcode
- \catcode\rightbraceasciicode\othercatcode
- \catcode`\" \othercatcode
- \catcode`\' \othercatcode
- \catcode`\/ \othercatcode
- \catcode\backslashasciicode \othercatcode
- \catcode\barasciicode \othercatcode
-\stopcatcodetable
-
-\startcatcodetable \vrbcatcodes % probably less needed
- \catcode\tabasciicode \othercatcode
- \catcode\endoflineasciicode\othercatcode
- \catcode\formfeedasciicode \othercatcode
- \catcode\spaceasciicode \othercatcode
- \catcode\endoffileasciicode\othercatcode
-\stopcatcodetable
-
-\startcatcodetable \prtcatcodes
- \catcode\tabasciicode \spacecatcode
- \catcode\endoflineasciicode \endoflinecatcode
- \catcode\formfeedasciicode \endoflinecatcode
- \catcode\spaceasciicode \spacecatcode
- \catcode\endoffileasciicode \ignorecatcode
- \catcode\circumflexasciicode\superscriptcatcode
- \catcode\underscoreasciicode\subscriptcatcode
- \catcode\ampersandasciicode \alignmentcatcode
- \catcode\backslashasciicode \escapecatcode
- \catcode\leftbraceasciicode \begingroupcatcode
- \catcode\rightbraceasciicode\endgroupcatcode
- \catcode\dollarasciicode \mathshiftcatcode
- \catcode\hashasciicode \parametercatcode
- \catcode\commentasciicode \commentcatcode
- \catcode`\@ \lettercatcode
- \catcode`\! \lettercatcode
- \catcode`\? \lettercatcode
- \catcode\tildeasciicode \activecatcode
- \catcode\barasciicode \activecatcode
-\stopcatcodetable
-
-%D Because some characters have a special meaning, we provide
-%D shortcuts to their character representation.
-
-\chardef\^=\circumflexasciicode
-\chardef\_=\underscoreasciicode % but way too wide in lm, so ... until that's fixed:
-\chardef\&=\ampersandasciicode
-\chardef\%=\commentasciicode
-\chardef\#=\hashasciicode
-\chardef\$=\dollarasciicode
-\chardef\{=\leftbraceasciicode
-\chardef\}=\rightbraceasciicode
-\chardef\\=\backslashasciicode
-
-%def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}}
-\def\_{\dontleavehmode \kern.06em \vbox{\hrule width.3em}}
-
-%D From now on we can use the protection mechanisms.
-
-\def\unprotect {\pushcatcodetable\setcatcodetable\prtcatcodes}
-\def\protect {\popcatcodetable}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/catc-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/catc-ini.mkii
deleted file mode 100644
index 7527466e103..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/catc-ini.mkii
+++ /dev/null
@@ -1,269 +0,0 @@
-%D \module
-%D [ file=catc-ini,
-%D version=2006.09.18,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Catcode Handling,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D We've split the functionality of syst-cat.* over more files
-%D now so that we can load more selectively.
-
-%D A long standing wish has been the availability of catcode
-%D arrays. Because traditional \TEX\ does ot provide this we
-%D implement a fake method in the Mark II file.
-
-\ifx\zerocount\undefined \chardef \zerocount= 0 \fi
-\ifx\plusone \undefined \chardef \plusone = 1 \fi
-\ifx\minusone \undefined \newcount\minusone \minusone =-1 \fi
-
-\chardef\escapecatcode = 0
-\chardef\begingroupcatcode = 1
-\chardef\endgroupcatcode = 2
-\chardef\mathshiftcatcode = 3
-\chardef\alignmentcatcode = 4
-\chardef\endoflinecatcode = 5
-\chardef\parametercatcode = 6
-\chardef\superscriptcatcode = 7
-\chardef\subscriptcatcode = 8
-\chardef\ignorecatcode = 9
-\chardef\spacecatcode = 10
-\chardef\lettercatcode = 11
-\chardef\othercatcode = 12 \chardef\other = 12
-\chardef\activecatcode = 13 \chardef\active = 13
-\chardef\commentcatcode = 14
-\chardef\invalidcatcode = 15
-
-\chardef\tabasciicode = 9 % ^^I
-\chardef\newlineasciicode = 10 % ^^J don't confuse this one with \endoflineasciicode
-\chardef\formfeedasciicode = 12 % ^^L
-\chardef\endoflineasciicode = 13 % ^^M somewhat messy but this can be the active \par
-\chardef\endoffileasciicode = 26 % ^^Z
-\chardef\spaceasciicode = 32
-\chardef\hashasciicode = 35
-\chardef\dollarasciicode = 36
-\chardef\commentasciicode = 37
-\chardef\ampersandasciicode = 38
-\chardef\backslashasciicode = 92 % `\\
-\chardef\circumflexasciicode = 94
-\chardef\underscoreasciicode = 95
-\chardef\leftbraceasciicode = 123 % `\{
-\chardef\barasciicode = 124 % `\|
-\chardef\rightbraceasciicode = 125 % `\}
-\chardef\tildeasciicode = 126 % `\~
-\chardef\delasciicode = 127
-
-\newif \ifrecatcodeuppercharacters % only used in good old tex
-
-% \newcount\cctdefcounter \cctdefcounter\plusone % 0 = signal
-\newcount\cctdefcounter \cctdefcounter\zerocount % 0 = signal, so advance before allocate
-
-\newcount\cctcountera
-\newcount\cctcounterb
-\newcount\cctcounterc
-
-\def\newcatcodetable#1%
- {\global\advance\cctdefcounter\plusone
- \global\mathchardef#1\cctdefcounter
- \expandafter\xdef\csname @@ccn:\number\cctdefcounter\endcsname{\string#1}% logging
- \expandafter\newtoks\csname @@cct:\number\cctdefcounter\endcsname}
-
-\mathchardef\currentcatcodetable\zerocount
-
-\newtoks \setdefaultlowercatcodes
-\newtoks \setdefaultuppercatcodes
-
-\def\next#1% we don't have a proper loop defined yet
- {\edef\nextnext{#1{\the#1\catcode\the\cctcountera\space
- \ifnum\catcode\cctcountera=\lettercatcode \lettercatcode\else\othercatcode\fi}}%
- \nextnext\ifnum\cctcountera<\cctcounterb \advance\cctcountera\plusone \expandafter\next\expandafter#1\fi}
-
-\cctcountera 0 \cctcounterb 127 \next\setdefaultlowercatcodes
-\cctcountera 128 \cctcounterb 255 \next\setdefaultuppercatcodes
-
-\recatcodeuppercharactersfalse
-
-\def\catcodetable#1%
- {\mathchardef\currentcatcodetable#1%
- \the\setdefaultlowercatcodes
- \ifrecatcodeuppercharacters\the\setdefaultuppercatcodes\fi
- \the\csname @@cct:\number#1\endcsname}
-
-\long\def\startcatcodetable#1#2\stopcatcodetable
- {\global\csname @@cct:\number#1\endcsname{#2}}
-
-\long\def\startextendcatcodetable#1#2\stopextendcatcodetable
- {\global\csname @@cct:\number#1\endcsname\expandafter{\the\csname @@cct:\number#1\endcsname#2}}
-
-%D The next command can be defined in a cleaner way in the
-%D Mk IV file but we want to have a fast one with a minimal
-%D chance for interference.
-
-\chardef\activehackcode=`\~
-
-%D Once a catcode is assigned, the next assignments will happen faster.
-
-% (expandable) let
-
-\def\letcatcodecommand {\afterassignment\letcatcodecommanda\cctcountera}
-\def\letcatcodecommanda{\afterassignment\letcatcodecommandb\cctcounterb}
-
-\def\letcatcodecommandb % each time
- {\ifcsname CCL:\number\cctcountera:\number\cctcounterb\endcsname
- \csname CCL:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
- \else
- \expandafter\letcatcodecommandc
- \fi}
-
-\def\letcatcodecommandc % only first time
- {\expandafter\gdef\csname CCL:\number\cctcountera:\number\cctcounterb\expandafter\endcsname\expandafter
- {\expandafter\let\csname CCC:\number\cctcountera:\number\cctcounterb\endcsname}%
- \reinstatecatcodecommanda
- \csname CCL:\number\cctcountera:\number\cctcounterb\endcsname}
-
-% expandable def
-
-\def\defcatcodecommand {\afterassignment\defcatcodecommanda\cctcountera}
-\def\defcatcodecommanda{\afterassignment\defcatcodecommandb\cctcounterb}
-
-\def\defcatcodecommandb % each time
- {\ifcsname CCD:\number\cctcountera:\number\cctcounterb\endcsname
- \csname CCD:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
- \else
- \expandafter\defcatcodecommandc
- \fi}
-
-\def\defcatcodecommandc % only first time
- {\expandafter\gdef\csname CCD:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
- \expandafter##\expandafter1\expandafter
- {\expandafter\def\csname CCC:\number\cctcountera:\number\cctcounterb\endcsname{##1}}%
- \reinstatecatcodecommanda
- \csname CCD:\number\cctcountera:\number\cctcounterb\endcsname}
-
-% un expandable def (e.g. used for discretionaries)
-
-\def\uedcatcodecommand {\afterassignment\uedcatcodecommanda\cctcountera}
-\def\uedcatcodecommanda{\afterassignment\uedcatcodecommandb\cctcounterb}
-
-\def\uedcatcodecommandb % each time
- {\ifcsname CCU:\number\cctcountera:\number\cctcounterb\endcsname
- \csname CCU:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
- \else
- \expandafter\uedcatcodecommandc
- \fi}
-
-\def\uedcatcodecommandc % only first time
- {\expandafter\gdef\csname CCU:\number\cctcountera:\number\cctcounterb\expandafter\endcsname
- \expandafter##\expandafter1\expandafter
- {\expandafter\unexpanded\expandafter\def\csname CCC:\number\cctcountera:\number\cctcounterb\endcsname{##1}}%
- \reinstatecatcodecommanda
- \csname CCU:\number\cctcountera:\number\cctcounterb\endcsname}
-
-\def\reinstatecatcodecommand{\afterassignment\reinstatecatcodecommanda\cctcounterb}
-
-\def\reinstatecatcodecommanda % can be used when a direct definition has been done
- {\bgroup % and the selector has been lost
- \uccode\activehackcode\cctcounterb
- \catcode\uccode\activehackcode\activecatcode
- \uppercase{\xdef~{\noexpand\catcodecommand{\number\cctcounterb}}}%
- \egroup}
-
-\chardef\defaultcatcodetable\zerocount
-
-\def\catcodecommand#1%
- {\csname CCC:\number
- \ifcsname CCC:\number\currentcatcodetable:\number#1\endcsname
- \currentcatcodetable \else \defaultcatcodetable
- \fi
- :\number#1\endcsname}
-
-%D \macros
-%D {restorecatcodes,
-%D beginrestorecatcodes,endrestorecatcodes}
-%D
-%D We're not finished dealing \CATCODES\ yet. In \CONTEXT\ we
-%D use only one auxiliary file, which deals with tables of
-%D contents, registers, two pass tracking, references etc. This
-%D file, as well as files concerning graphics, is processed when
-%D needed, which can be in the mid of typesetting verbatim.
-%D However, when reading in data in verbatim mode, we should
-%D temporary restore the normal \CATCODES, and that's exactly
-%D what the next macros do. Saving the catcodes can be
-%D disabled by saying \type{\localcatcodestrue}.
-
-\let\savedcatcodetable\relax
-
-\newcount\catcoderestorelevel
-
-\def\pushcatcodetable
- {\advance\catcoderestorelevel\plusone
- \tracepushcatcodetable
- \expandafter\mathchardef\csname scct:\number\catcoderestorelevel\endcsname\currentcatcodetable}
-
-\def\popcatcodetable
- {\ifcase\catcoderestorelevel
- \showcatcodenestingerror
- \else
- \expandafter\catcodetable\csname scct:\number\catcoderestorelevel\endcsname
- \tracepopcatcodetable
- \advance\catcoderestorelevel\minusone
- \fi}
-
-\def\showcatcodenestingerror % can be overloaded
- {\immediate\write16{}%
- \immediate\write16{Fatal error: catcode push/pop mismatch. Fix this!}\wait\end
- \immediate\write16{}}
-
-\def\restorecatcodes % takes previous level
- {\ifnum\catcoderestorelevel>\plusone
- \expandafter\catcodetable\csname scct:\number\numexpr\catcoderestorelevel-1\relax\endcsname
- \fi}
-
-\newtoks\everycatcodetable
-
-\def\setcatcodetable#1%
- {\catcodetable#1%
- \the\everycatcodetable
- \tracesetcatcodetable}
-
-\def\dotracecatcodetable#1{\immediate\write16{[#1]}}
-
-\def\tracecatcodetables
- {\def\tracesetcatcodetable {\dotracecatcodetable{set \catcodetablename\space at \number\catcoderestorelevel}}%
- \def\tracepushcatcodetable{\dotracecatcodetable{push \catcodetablename\space from \catcodetableprev\space at \number\catcoderestorelevel}}%
- \def\tracepopcatcodetable {\dotracecatcodetable{pop \catcodetablename\space to \catcodetableprev\space at \number\catcoderestorelevel}}}
-
-\def\catcodetableprev
- {\ifnum\numexpr\catcoderestorelevel-1\relax>\zerocount
- \csname @@ccn:\number\csname scct:\number\numexpr\catcoderestorelevel-1\relax\endcsname\endcsname
- \else
- -%
- \fi}
-
-\def\catcodetablename
- {\ifnum\currentcatcodetable>\zerocount
- \csname @@ccn:\number\currentcatcodetable\endcsname
- \else
- -%
- \fi}
-
-\ifx\empty\undefined \def\empty{} \fi
-
-\let\tracesetcatcodetable \empty
-\let\tracepushcatcodetable\empty
-\let\tracepopcatcodetable \empty
-
-\def\beginrestorecatcodes{\pushcatcodetable}
-\def\endrestorecatcodes {\popcatcodetable}
-
-%D Handy for debugging:
-
-% \tracecatcodetables
-
-\endinput
-
diff --git a/Master/texmf-dist/tex/context/base/mkii/catc-sym.mkii b/Master/texmf-dist/tex/context/base/mkii/catc-sym.mkii
deleted file mode 100644
index 55782f11ed2..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/catc-sym.mkii
+++ /dev/null
@@ -1,187 +0,0 @@
-%D \module
-%D [ file=catc-sym,
-%D version=1997.01.03, % moved code
-%D title=\CONTEXT\ Catcode Macros,
-%D subtitle=Some Handy Constants,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% we now have loaded syst-* so we have all @@catcode constants
-
-%D We want to have access to the raw alternatives of the
-%D special characters. We use a \type {\xdef} instead of
-%D \type {\let} because we need an expandable token in a
-%D \type {\write}.
-
-\bgroup
-
-\catcode`B=\begingroupcatcode
-\catcode`E=\endgroupcatcode
-\catcode`.=\escapecatcode
-
-.catcode `.{ 12 .xdef .letteropenbrace B.string{E
-.catcode `.} 12 .xdef .letterclosebrace B.string}E
-.catcode `.& 12 .xdef .letterampersand B.string&E
-.catcode `.< 12 .xdef .letterless B.string<E
-.catcode `.> 12 .xdef .lettermore B.string>E
-.catcode `.# 12 .xdef .letterhash B.string#E
-.catcode `." 12 .xdef .letterdoublequote B.string"E
-.catcode `.' 12 .xdef .lettersinglequote B.string'E
-.catcode `.$ 12 .xdef .letterdollar B.string$E
-.catcode `.% 12 .xdef .letterpercent B.string%E
-.catcode `.^ 12 .xdef .letterhat B.string^E
-.catcode `._ 12 .xdef .letterunderscore B.string_E
-.catcode `.| 12 .xdef .letterbar B.string|E
-.catcode `.~ 12 .xdef .lettertilde B.string~E
-.catcode `.\ 12 .xdef .letterbackslash B.string\E
-.catcode `./ 12 .xdef .letterslash B.string/E
-.catcode `.? 12 .xdef .letterquestionmark B.string?E
-.catcode `.! 12 .xdef .letterexclamationmark B.string!E
-.catcode `.@ 12 .xdef .letterat B.string@E
-.catcode `.: 12 .xdef .lettercolon B.string:E
-
- .global .let .letterescape .letterbackslash
- .global .let .letterbgroup .letteropenbrace
- .global .let .letteregroup .letterclosebrace
- .global .let .letterleftbrace .letteropenbrace
- .global .let .letterrightbrace .letterclosebrace
-
-.egroup
-
-%D \macros
-%D {uncatcodespecials,setnaturalcatcodes,setnormalcatcodes,
-%D uncatcodecharacters,uncatcodeallcharacters,
-%D uncatcodespacetokens}
-%D
-%D The following macros are more or less replaced by switching
-%D to a catcode table (which we simulate in \MKII) but we keep
-%D them for convenience and compatibility. Some old engine code
-%D has been removed.
-
-\def\uncatcodespecials {\setcatcodetable\nilcatcodes \uncatcodespacetokens}
-\def\setnaturalcatcodes {\setcatcodetable\nilcatcodes}
-\def\setnormalcatcodes {\setcatcodetable\ctxcatcodes} % maybe \texcatcodes
-\def\uncatcodecharacters {\setcatcodetable\nilcatcodes} % was fast version, gone now
-\def\uncatcodeallcharacters{\setcatcodetable\nilcatcodes} % was slow one, with restore
-
-\def\uncatcodespacetokens
- {\catcode\spaceasciicode \spacecatcode
- \catcode\formfeedasciicode \ignorecatcode
- \catcode\endoflineasciicode\endoflinecatcode
- \catcode\delasciicode \ignorecatcode}
-
-%D \macros
-%D {setverbosecharacter,setverbosecscharacters}
-%D
-%D Next follows a definition that lets some shortcuts expand to
-%D themselves. This macro is meant for \POSTSCRIPT\ and \PDF\
-%D code passed on to the backend.
-
-\newtoks\everyverbosechacters
-
-\def\setverbosecscharacter#1%
- {\edef#1{\string#1}}
-
-\def\setverbosecscharacters
- {\the\everyverbosechacters}
-
-\bgroup
-
- % if used often we can move the code inline
-
- \catcode\barasciicode \activecatcode
- \catcode\tildeasciicode\activecatcode
-
- \global \everyverbosechacters =
- {\setverbosecscharacter |\setverbosecscharacter ~% context specific
- \setverbosecscharacter\|\setverbosecscharacter\~%
- \setverbosecscharacter\:\setverbosecscharacter\;%
- \setverbosecscharacter\+\setverbosecscharacter\-%
- \setverbosecscharacter\[\setverbosecscharacter\]%
- \setverbosecscharacter\.\setverbosecscharacter\\%
- \setverbosecscharacter\)\setverbosecscharacter\(%
- \setverbosecscharacter\0\setverbosecscharacter\1%
- \setverbosecscharacter\2\setverbosecscharacter\3%
- \setverbosecscharacter\4\setverbosecscharacter\5%
- \setverbosecscharacter\6\setverbosecscharacter\7%
- \setverbosecscharacter\8\setverbosecscharacter\9%
- \setverbosecscharacter\n\setverbosecscharacter\s%
- \setverbosecscharacter\/}
-
-\egroup
-
-%D (Inspired by a discussion on the \CONTEXT\ mailing list)
-%D
-%D In \TEX\ each character can have one of 16 catcodes. This way the
-%D backslash, dollar, ampersand, hash and some more characters get
-%D their special meaning. If you want to process tokens under a
-%D certain catcode regime, passing arguments can interfere badly.
-%D
-%D \startbuffer[a]
-%D \def\whatever#1{[#1]}
-%D \whatever{whatever \type {\whatever{you want}} $or$ not!}
-%D \stopbuffer
-%D
-%D \typebuffer[a]
-%D
-%D Here we pass an argument to \type {\whatever} but part of that
-%D argument is to be processed under a different catcode regime, i.e.\
-%D all characters that need to be typeset verbatim need to get
-%D the catcode that makes it a letter. This is what we get when we typeset
-%D the text verbatim:
-%D
-%D \starttyping
-%D whatever \type {\whatever{you want}} $or$ not!
-%D \stoptyping
-%D
-%D However, when passed to \type {\whatever} we get:
-%D
-%D \getbuffer[a]
-%D
-%D In \ETEX\ one can use \type {\scantokens} to circumvent this problem.
-%D
-%D \startbuffer[b]
-%D \def\rescan#1{\scantokens{#1}}
-%D \def\whatever#1{[\rescan{#1}]}
-%D \whatever{whatever \type {\whatever{you want}} $or$ not!}
-%D \stopbuffer
-%D
-%D \getbuffer[b] \typebuffer[b]
-%D
-%D This time the \type {\whatever} call gives:
-%D
-%D \getbuffer[b]
-%D
-%D In this example, two spaces have crept in. The first one, after the
-%D macro name, is inserted by \TEX\ and cannot be avoided. The last space
-%D is inserted by \type {\scantokens}, and is the consequence of the fact
-%D that this macro mimics reading from a file. You can avoid the last
-%D space by a slightly different definition:
-%D
-%D \startbuffer[c]
-%D \def\rescan#1{\scantokens{#1\ignorespaces}}
-%D \def\whatever#1{[\rescan{#1}]}
-%D \whatever{whatever \type {\whatever{you want}} $or$ not!}
-%D \stopbuffer
-%D
-%D \typebuffer[c]
-%D
-%D Unfortunately we still keep the first space, but at least it's better than
-%D a failure:
-%D
-%D \getbuffer[c]
-
-\long\def\rescan#1{\scantokens{#1\ignorespaces}}
-\long\def\rescanwithsetup#1#2{\begingroup\directsetup{#1}\scantokens{#2\ignorespaces}\endgroup}
-
-\ifx\scantextokens\undefined \else
- \long\def\rescan#1{\scantextokens{#1}}
- \long\def\rescanwithsetup#1#2{\begingroup\directsetup{#1}\scantextokens{#2}\endgroup}
-\fi
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/catc-xml.mkii b/Master/texmf-dist/tex/context/base/mkii/catc-xml.mkii
deleted file mode 100644
index 45eb5a421a1..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/catc-xml.mkii
+++ /dev/null
@@ -1,114 +0,0 @@
-%D \module
-%D [ file=catc-xml,
-%D version=2006.09.18,
-%D title=\CONTEXT\ Catcode Macros,
-%D subtitle=\XML\ Catcode Tables,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Catcode Regimes / XML}
-
-\ifdefined \xmlcatcodesn \else \newcatcodetable \xmlcatcodesn \fi % normal
-\ifdefined \xmlcatcodese \else \newcatcodetable \xmlcatcodese \fi % entitle
-\ifdefined \xmlcatcodesr \else \newcatcodetable \xmlcatcodesr \fi % reduce
-
-\startcatcodetable \xmlcatcodesn
- \catcode\tabasciicode \spacecatcode
- \catcode\endoflineasciicode \endoflinecatcode
- \catcode\formfeedasciicode \endoflinecatcode
- \catcode\spaceasciicode \spacecatcode
- \catcode\endoffileasciicode \ignorecatcode
- \catcode\ampersandasciicode \activecatcode
- \catcode`\< \activecatcode
- \catcode`\> \othercatcode
- \catcode`\" \othercatcode % probably not needed any more
- \catcode`\/ \othercatcode % probably not needed any more
- \catcode`\' \othercatcode % probably not needed any more
- \catcode\tildeasciicode \othercatcode % probably not needed any more
- \catcode\hashasciicode \othercatcode % probably not needed any more
- \catcode\backslashasciicode \othercatcode % probably not needed any more
-\stopcatcodetable
-
-\startcatcodetable \xmlcatcodese
- \catcode\tabasciicode \spacecatcode
- \catcode\endoflineasciicode \endoflinecatcode
- \catcode\formfeedasciicode \endoflinecatcode
- \catcode\spaceasciicode \spacecatcode
- \catcode\endoffileasciicode \ignorecatcode
- \catcode\ampersandasciicode \activecatcode
- \catcode`\< \activecatcode
- \catcode`\> \activecatcode
- \catcode\hashasciicode \activecatcode
- \catcode\dollarasciicode \activecatcode
- \catcode\commentasciicode \activecatcode
- \catcode\backslashasciicode \activecatcode
- \catcode\circumflexasciicode\activecatcode
- \catcode\underscoreasciicode\activecatcode
- \catcode\leftbraceasciicode \activecatcode
- \catcode\rightbraceasciicode\activecatcode
- \catcode\barasciicode \activecatcode
- \catcode\tildeasciicode \activecatcode
-\stopcatcodetable
-
-\startcatcodetable \xmlcatcodesr
- \catcode\tabasciicode \spacecatcode
- \catcode\endoflineasciicode \endoflinecatcode
- \catcode\formfeedasciicode \endoflinecatcode
- \catcode\spaceasciicode \spacecatcode
- \catcode\endoffileasciicode \ignorecatcode
- \catcode\ampersandasciicode \activecatcode
- \catcode`\< \activecatcode
- \catcode`\> \activecatcode
- \catcode\hashasciicode \activecatcode
- \catcode\dollarasciicode \activecatcode
- \catcode\commentasciicode \activecatcode
- \catcode\backslashasciicode \activecatcode
- \catcode\circumflexasciicode\activecatcode
- \catcode\underscoreasciicode\activecatcode
- \catcode\leftbraceasciicode \activecatcode
- \catcode\rightbraceasciicode\activecatcode
- \catcode\barasciicode \activecatcode
- \catcode\tildeasciicode \activecatcode
-\stopcatcodetable
-
-%D Next we hook in some active character definitions.
-
-\letcatcodecommand \xmlcatcodesn \ampersandasciicode \relax
-\letcatcodecommand \xmlcatcodesn `\< \relax
-
-\letcatcodecommand \xmlcatcodese \ampersandasciicode \relax
-\letcatcodecommand \xmlcatcodese `\< \relax
-
-\letcatcodecommand \xmlcatcodesr \ampersandasciicode \relax
-\letcatcodecommand \xmlcatcodesr `\< \relax
-
-\letcatcodecommand \xmlcatcodese \hashasciicode \relax
-\letcatcodecommand \xmlcatcodese \dollarasciicode \relax
-\letcatcodecommand \xmlcatcodese \commentasciicode \relax
-\letcatcodecommand \xmlcatcodese \backslashasciicode \relax
-\letcatcodecommand \xmlcatcodese \circumflexasciicode \relax
-\letcatcodecommand \xmlcatcodese \underscoreasciicode \relax
-\letcatcodecommand \xmlcatcodese \leftbraceasciicode \relax
-\letcatcodecommand \xmlcatcodese \rightbraceasciicode \relax
-\letcatcodecommand \xmlcatcodese \barasciicode \relax
-\letcatcodecommand \xmlcatcodese \tildeasciicode \relax
-
-\letcatcodecommand \xmlcatcodesr \hashasciicode \relax
-\letcatcodecommand \xmlcatcodesr \dollarasciicode \relax
-\letcatcodecommand \xmlcatcodesr \commentasciicode \relax
-\letcatcodecommand \xmlcatcodesr \backslashasciicode \relax
-\letcatcodecommand \xmlcatcodesr \circumflexasciicode \relax
-\letcatcodecommand \xmlcatcodesr \underscoreasciicode \relax
-\letcatcodecommand \xmlcatcodesr \leftbraceasciicode \relax
-\letcatcodecommand \xmlcatcodesr \rightbraceasciicode \relax
-\letcatcodecommand \xmlcatcodesr \barasciicode \relax
-\letcatcodecommand \xmlcatcodesr \tildeasciicode \relax
-
-\let\xmlcatcodes \xmlcatcodesn % beware, in mkiv we use \notcatcodes
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/colo-ema.mkii b/Master/texmf-dist/tex/context/base/mkii/colo-ema.mkii
deleted file mode 100644
index 11d76f34209..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/colo-ema.mkii
+++ /dev/null
@@ -1,590 +0,0 @@
-%D \module
-%D [ file=colo-ema,
-%D version=2003.03.20,
-%D title=\CONTEXT\ Color Macros,
-%D subtitle=Emacs Colors,
-%D author=Peter Rolf,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% author : Peter Rolf <peter.rolf@arcor.de>
-% last change : 17 march 2003
-% origin : /emacs/etc/rgb.txt
-%
-% USAGE:
-%
-% - select emacs menu: Edit -> Text Properties -> Display
-% Colors, if you don't know what I'm talking about
-% - copy this file to your /texmf/tex/context/user directory
-% and add "\input colo-emacs" to your tex-file
-%
-% IMPORTANT NOTES:
-%
-% - all color names are written as ONE word in lowercase
-% letters (no redundancy as in rgb.txt) so if you want to
-% use the color "Light Sky Blue"/"light sky blue" it's new
-% name is lightskyblue
-% - the grayX values [X=0..100] can only be used with \color
-% [grayX]
-% - use it at your own risk :)
-%
-% HINT:
-%
-% I only include this file (\showcolor [ema]) until I've
-% found the colors I want. Copy and paste the color
-% definitions to a seperate file, to decrease compilation
-% time (540 color definitions).
-
-\definecolor [snow] [r=1,g=.980392,b=.980392]
-\definecolor [ghostwhite] [r=.972549,g=.972549,b=1]
-\definecolor [whitesmoke] [s=.960784]
-\definecolor [gainsboro] [s=.862745]
-\definecolor [floralwhite] [r=1,g=.980392,b=.941176]
-\definecolor [oldlace] [r=.992157,g=.960784,b=.901961]
-\definecolor [linen] [r=.980392,g=.941176,b=.901961]
-\definecolor [antiquewhite] [r=.980392,g=.921569,b=.843137]
-\definecolor [papayawhip] [r=1,g=.937255,b=.835294]
-\definecolor [blanchedalmond] [r=1,g=.921569,b=.803922]
-\definecolor [bisque] [r=1,g=.894118,b=.768627]
-\definecolor [peachpuff] [r=1,g=.854902,b=.72549]
-\definecolor [navajowhite] [r=1,g=.870588,b=.678431]
-\definecolor [moccasin] [r=1,g=.894118,b=.709804]
-\definecolor [cornsilk] [r=1,g=.972549,b=.862745]
-\definecolor [ivory] [r=1,g=1,b=.941176]
-\definecolor [lemonchiffon] [r=1,g=.980392,b=.803922]
-\definecolor [seashell] [r=1,g=.960784,b=.933333]
-\definecolor [honeydew] [r=.941176,g=1,b=.941176]
-\definecolor [mintcream] [r=.960784,g=1,b=.980392]
-\definecolor [azure] [r=.941176,g=1,b=1]
-\definecolor [aliceblue] [r=.941176,g=.972549,b=1]
-\definecolor [lavender] [r=.901961,g=.901961,b=.980392]
-\definecolor [lavenderblush] [r=1,g=.941176,b=.960784]
-\definecolor [mistyrose] [r=1,g=.894118,b=.882353]
-%definecolor[white] [s=1]
-%definecolor[black] [s=0]
-\definecolor [darkslategray] [r=.184314,g=.309804,b=.309804]
-\definecolor [dimgray] [s=.411765]
-\definecolor [slategray] [r=.439216,g=.501961,b=.564706]
-\definecolor [lightslategray] [r=.466667,g=.533333,b=.6]
-\definecolor [gray] [s=.745098]
-\definecolor [lightgray] [s=.827451]
-\definecolor [midnightblue] [r=.098039,g=.098039,b=.439216]
-\definecolor [navy] [b=.501961]
-\definecolor [navyblue] [navy]
-\definecolor [cornflowerblue] [r=.392157,g=.584314,b=.929412]
-\definecolor [darkslateblue] [r=.282353,g=.239216,b=.545098]
-\definecolor [slateblue] [r=.415686,g=.352941,b=.803922]
-\definecolor [mediumslateblue] [r=.482353,g=.407843,b=.933333]
-\definecolor [lightslateblue] [r=.517647,g=.439216,b=1]
-\definecolor [mediumblue] [b=.803922]
-\definecolor [royalblue] [r=.254902,g=.411765,b=.882353]
-%definecolor[blue] [b=1]
-\definecolor [dodgerblue] [r=.117647,g=.564706,b=1]
-\definecolor [deepskyblue] [g=.74902,b=1]
-\definecolor [skyblue] [r=.529412,g=.807843,b=.921569]
-\definecolor [lightskyblue] [r=.529412,g=.807843,b=.980392]
-\definecolor [steelblue] [r=.27451,g=.509804,b=.705882]
-\definecolor [lightsteelblue] [r=.690196,g=.768627,b=.870588]
-\definecolor [lightblue] [r=.678431,g=.847059,b=.901961]
-\definecolor [powderblue] [r=.690196,g=.878431,b=.901961]
-\definecolor [paleturquoise] [r=.686275,g=.933333,b=.933333]
-\definecolor [darkturquoise] [g=.807843,b=.819608]
-\definecolor [mediumturquoise] [r=.282353,g=.819608,b=.8]
-\definecolor [turquoise] [r=.25098,g=.878431,b=.815686]
-%definecolor[cyan] [g=1,b=1]
-\definecolor [lightcyan] [r=.878431,g=1,b=1]
-\definecolor [cadetblue] [r=.372549,g=.619608,b=.627451]
-\definecolor [mediumaquamarine] [r=.4,g=.803922,b=.666667]
-\definecolor [aquamarine] [r=.498039,g=1,b=.831373]
-\definecolor [darkgreen] [g=.392157]
-\definecolor [darkolivegreen] [r=.333333,g=.419608,b=.184314]
-\definecolor [darkseagreen] [r=.560784,g=.737255,b=.560784]
-\definecolor [seagreen] [r=.180392,g=.545098,b=.341176]
-\definecolor [mediumseagreen] [r=.235294,g=.701961,b=.443137]
-\definecolor [lightseagreen] [r=.12549,g=.698039,b=.666667]
-\definecolor [palegreen] [r=.596078,g=.984314,b=.596078]
-\definecolor [springgreen] [g=1,b=.498039]
-\definecolor [lawngreen] [r=.486275,g=.988235]
-%definecolor[green] [g=1]
-\definecolor [chartreuse] [r=.498039,g=1]
-\definecolor [mediumspringgreen] [g=.980392,b=.603922]
-\definecolor [greenyellow] [r=.678431,g=1,b=.184314]
-\definecolor [limegreen] [r=.196078,g=.803922,b=.196078]
-\definecolor [yellowgreen] [r=.603922,g=.803922,b=.196078]
-\definecolor [forestgreen] [r=.133333,g=.545098,b=.133333]
-\definecolor [olivedrab] [r=.419608,g=.556863,b=.137255]
-\definecolor [darkkhaki] [r=.741176,g=.717647,b=.419608]
-\definecolor [khaki] [r=.941176,g=.901961,b=.54902]
-\definecolor [palegoldenrod] [r=.933333,g=.909804,b=.666667]
-\definecolor [lightgoldenrodyellow] [r=.980392,g=.980392,b=.823529]
-\definecolor [lightyellow] [r=1,g=1,b=.878431]
-%definecolor[yellow] [r=1,g=1]
-\definecolor [gold] [r=1,g=.843137]
-\definecolor [lightgoldenrod] [r=.933333,g=.866667,b=.509804]
-\definecolor [goldenrod] [r=.854902,g=.647059,b=.12549]
-\definecolor [darkgoldenrod] [r=.721569,g=.52549,b=.043137]
-\definecolor [rosybrown] [r=.737255,g=.560784,b=.560784]
-\definecolor [indianred] [r=.803922,g=.360784,b=.360784]
-\definecolor [saddlebrown] [r=.545098,g=.270588,b=.07451]
-\definecolor [sienna] [r=.627451,g=.321569,b=.176471]
-\definecolor [peru] [r=.803922,g=.521569,b=.247059]
-\definecolor [burlywood] [r=.870588,g=.721569,b=.529412]
-\definecolor [beige] [r=.960784,g=.960784,b=.862745]
-\definecolor [wheat] [r=.960784,g=.870588,b=.701961]
-\definecolor [sandybrown] [r=.956863,g=.643137,b=.376471]
-\definecolor [tan] [r=.823529,g=.705882,b=.54902]
-\definecolor [chocolate] [r=.823529,g=.411765,b=.117647]
-\definecolor [firebrick] [r=.698039,g=.133333,b=.133333]
-\definecolor [brown] [r=.647059,g=.164706,b=.164706]
-\definecolor [darksalmon] [r=.913725,g=.588235,b=.478431]
-\definecolor [salmon] [r=.980392,g=.501961,b=.447059]
-\definecolor [lightsalmon] [r=1,g=.627451,b=.478431]
-\definecolor [orange] [r=1,g=.647059]
-\definecolor [darkorange] [r=1,g=.54902]
-\definecolor [coral] [r=1,g=.498039,b=.313725]
-\definecolor [lightcoral] [r=.941176,g=.501961,b=.501961]
-\definecolor [tomato] [r=1,g=.388235,b=.278431]
-\definecolor [orangered] [r=1,g=.270588]
-%definecolor[red] [r=1]
-\definecolor [hotpink] [r=1,g=.411765,b=.705882]
-\definecolor [deeppink] [r=1,g=.078431,b=.576471]
-\definecolor [pink] [r=1,g=.752941,b=.796078]
-\definecolor [lightpink] [r=1,g=.713725,b=.756863]
-\definecolor [palevioletred] [r=.858824,g=.439216,b=.576471]
-\definecolor [maroon] [r=.690196,g=.188235,b=.376471]
-\definecolor [mediumvioletred] [r=.780392,g=.082353,b=.521569]
-\definecolor [violetred] [r=.815686,g=.12549,b=.564706]
-%definecolor[magenta] [r=1,b=1]
-\definecolor [violet] [r=.933333,g=.509804,b=.933333]
-\definecolor [plum] [r=.866667,g=.627451,b=.866667]
-\definecolor [orchid] [r=.854902,g=.439216,b=.839216]
-\definecolor [mediumorchid] [r=.729412,g=.333333,b=.827451]
-\definecolor [darkorchid] [r=.6,g=.196078,b=.8]
-\definecolor [darkviolet] [r=.580392,b=.827451]
-\definecolor [blueviolet] [r=.541176,g=.168627,b=.886275]
-\definecolor [purple] [r=.627451,g=.12549,b=.941176]
-\definecolor [mediumpurple] [r=.576471,g=.439216,b=.858824]
-\definecolor [thistle] [r=.847059,g=.74902,b=.847059]
-\definecolor [snow1] [r=1,g=.980392,b=.980392]
-\definecolor [snow2] [r=.933333,g=.913725,b=.913725]
-\definecolor [snow3] [r=.803922,g=.788235,b=.788235]
-\definecolor [snow4] [r=.545098,g=.537255,b=.537255]
-\definecolor [seashell1] [r=1,g=.960784,b=.933333]
-\definecolor [seashell2] [r=.933333,g=.898039,b=.870588]
-\definecolor [seashell3] [r=.803922,g=.772549,b=.74902]
-\definecolor [seashell4] [r=.545098,g=.52549,b=.509804]
-\definecolor [antiquewhite1] [r=1,g=.937255,b=.858824]
-\definecolor [antiquewhite2] [r=.933333,g=.87451,b=.8]
-\definecolor [antiquewhite3] [r=.803922,g=.752941,b=.690196]
-\definecolor [antiquewhite4] [r=.545098,g=.513725,b=.470588]
-\definecolor [bisque1] [r=1,g=.894118,b=.768627]
-\definecolor [bisque2] [r=.933333,g=.835294,b=.717647]
-\definecolor [bisque3] [r=.803922,g=.717647,b=.619608]
-\definecolor [bisque4] [r=.545098,g=.490196,b=.419608]
-\definecolor [peachpuff1] [r=1,g=.854902,b=.72549]
-\definecolor [peachpuff2] [r=.933333,g=.796078,b=.678431]
-\definecolor [peachpuff3] [r=.803922,g=.686275,b=.584314]
-\definecolor [peachpuff4] [r=.545098,g=.466667,b=.396078]
-\definecolor [navajowhite1] [r=1,g=.870588,b=.678431]
-\definecolor [navajowhite2] [r=.933333,g=.811765,b=.631373]
-\definecolor [navajowhite3] [r=.803922,g=.701961,b=.545098]
-\definecolor [navajowhite4] [r=.545098,g=.47451,b=.368627]
-\definecolor [lemonchiffon1] [r=1,g=.980392,b=.803922]
-\definecolor [lemonchiffon2] [r=.933333,g=.913725,b=.74902]
-\definecolor [lemonchiffon3] [r=.803922,g=.788235,b=.647059]
-\definecolor [lemonchiffon4] [r=.545098,g=.537255,b=.439216]
-\definecolor [cornsilk1] [r=1,g=.972549,b=.862745]
-\definecolor [cornsilk2] [r=.933333,g=.909804,b=.803922]
-\definecolor [cornsilk3] [r=.803922,g=.784314,b=.694118]
-\definecolor [cornsilk4] [r=.545098,g=.533333,b=.470588]
-\definecolor [ivory1] [r=1,g=1,b=.941176]
-\definecolor [ivory2] [r=.933333,g=.933333,b=.878431]
-\definecolor [ivory3] [r=.803922,g=.803922,b=.756863]
-\definecolor [ivory4] [r=.545098,g=.545098,b=.513725]
-\definecolor [honeydew1] [r=.941176,g=1,b=.941176]
-\definecolor [honeydew2] [r=.878431,g=.933333,b=.878431]
-\definecolor [honeydew3] [r=.756863,g=.803922,b=.756863]
-\definecolor [honeydew4] [r=.513725,g=.545098,b=.513725]
-\definecolor [lavenderblush1] [r=1,g=.941176,b=.960784]
-\definecolor [lavenderblush2] [r=.933333,g=.878431,b=.898039]
-\definecolor [lavenderblush3] [r=.803922,g=.756863,b=.772549]
-\definecolor [lavenderblush4] [r=.545098,g=.513725,b=.52549]
-\definecolor [mistyrose1] [r=1,g=.894118,b=.882353]
-\definecolor [mistyrose2] [r=.933333,g=.835294,b=.823529]
-\definecolor [mistyrose3] [r=.803922,g=.717647,b=.709804]
-\definecolor [mistyrose4] [r=.545098,g=.490196,b=.482353]
-\definecolor [azure1] [r=.941176,g=1,b=1]
-\definecolor [azure2] [r=.878431,g=.933333,b=.933333]
-\definecolor [azure3] [r=.756863,g=.803922,b=.803922]
-\definecolor [azure4] [r=.513725,g=.545098,b=.545098]
-\definecolor [slateblue1] [r=.513725,g=.435294,b=1]
-\definecolor [slateblue2] [r=.478431,g=.403922,b=.933333]
-\definecolor [slateblue3] [r=.411765,g=.34902,b=.803922]
-\definecolor [slateblue4] [r=.278431,g=.235294,b=.545098]
-\definecolor [royalblue1] [r=.282353,g=.462745,b=1]
-\definecolor [royalblue2] [r=.262745,g=.431373,b=.933333]
-\definecolor [royalblue3] [r=.227451,g=.372549,b=.803922]
-\definecolor [royalblue4] [r=.152941,g=.25098,b=.545098]
-\definecolor [blue1] [blue]
-\definecolor [blue2] [b=.933333]
-\definecolor [blue3] [b=.803922]
-\definecolor [blue4] [b=.545098]
-\definecolor [dodgerblue1] [r=.117647,g=.564706,b=1]
-\definecolor [dodgerblue2] [r=.109804,g=.52549,b=.933333]
-\definecolor [dodgerblue3] [r=.094118,g=.454902,b=.803922]
-\definecolor [dodgerblue4] [r=.062745,g=.305882,b=.545098]
-\definecolor [steelblue1] [r=.388235,g=.721569,b=1]
-\definecolor [steelblue2] [r=.360784,g=.67451,b=.933333]
-\definecolor [steelblue3] [r=.309804,g=.580392,b=.803922]
-\definecolor [steelblue4] [r=.211765,g=.392157,b=.545098]
-\definecolor [deepskyblue1] [g=.74902,b=1]
-\definecolor [deepskyblue2] [g=.698039,b=.933333]
-\definecolor [deepskyblue3] [g=.603922,b=.803922]
-\definecolor [deepskyblue4] [g=.407843,b=.545098]
-\definecolor [skyblue1] [r=.529412,g=.807843,b=1]
-\definecolor [skyblue2] [r=.494118,g=.752941,b=.933333]
-\definecolor [skyblue3] [r=.423529,g=.65098,b=.803922]
-\definecolor [skyblue4] [r=.290196,g=.439216,b=.545098]
-\definecolor [lightskyblue1] [r=.690196,g=.886275,b=1]
-\definecolor [lightskyblue2] [r=.643137,g=.827451,b=.933333]
-\definecolor [lightskyblue3] [r=.552941,g=.713725,b=.803922]
-\definecolor [lightskyblue4] [r=.376471,g=.482353,b=.545098]
-\definecolor [slategray1] [r=.776471,g=.886275,b=1]
-\definecolor [slategray2] [r=.72549,g=.827451,b=.933333]
-\definecolor [slategray3] [r=.623529,g=.713725,b=.803922]
-\definecolor [slategray4] [r=.423529,g=.482353,b=.545098]
-\definecolor [lightsteelblue1] [r=.792157,g=.882353,b=1]
-\definecolor [lightsteelblue2] [r=.737255,g=.823529,b=.933333]
-\definecolor [lightsteelblue3] [r=.635294,g=.709804,b=.803922]
-\definecolor [lightsteelblue4] [r=.431373,g=.482353,b=.545098]
-\definecolor [lightblue1] [r=.74902,g=.937255,b=1]
-\definecolor [lightblue2] [r=.698039,g=.87451,b=.933333]
-\definecolor [lightblue3] [r=.603922,g=.752941,b=.803922]
-\definecolor [lightblue4] [r=.407843,g=.513725,b=.545098]
-\definecolor [lightcyan1] [r=.878431,g=1,b=1]
-\definecolor [lightcyan2] [r=.819608,g=.933333,b=.933333]
-\definecolor [lightcyan3] [r=.705882,g=.803922,b=.803922]
-\definecolor [lightcyan4] [r=.478431,g=.545098,b=.545098]
-\definecolor [paleturquoise1] [r=.733333,g=1,b=1]
-\definecolor [paleturquoise2] [r=.682353,g=.933333,b=.933333]
-\definecolor [paleturquoise3] [r=.588235,g=.803922,b=.803922]
-\definecolor [paleturquoise4] [r=.4,g=.545098,b=.545098]
-\definecolor [cadetblue1] [r=.596078,g=.960784,b=1]
-\definecolor [cadetblue2] [r=.556863,g=.898039,b=.933333]
-\definecolor [cadetblue3] [r=.478431,g=.772549,b=.803922]
-\definecolor [cadetblue4] [r=.32549,g=.52549,b=.545098]
-\definecolor [turquoise1] [g=.960784,b=1]
-\definecolor [turquoise2] [g=.898039,b=.933333]
-\definecolor [turquoise3] [g=.772549,b=.803922]
-\definecolor [turquoise4] [g=.52549,b=.545098]
-\definecolor [cyan1] [cyan]
-\definecolor [cyan2] [g=.933333,b=.933333]
-\definecolor [cyan3] [g=.803922,b=.803922]
-\definecolor [cyan4] [g=.545098,b=.545098]
-\definecolor [darkslategray1] [r=.592157,g=1,b=1]
-\definecolor [darkslategray2] [r=.552941,g=.933333,b=.933333]
-\definecolor [darkslategray3] [r=.47451,g=.803922,b=.803922]
-\definecolor [darkslategray4] [r=.321569,g=.545098,b=.545098]
-\definecolor [aquamarine1] [r=.498039,g=1,b=.831373]
-\definecolor [aquamarine2] [r=.462745,g=.933333,b=.776471]
-\definecolor [aquamarine3] [r=.4,g=.803922,b=.666667]
-\definecolor [aquamarine4] [r=.270588,g=.545098,b=.454902]
-\definecolor [darkseagreen1] [r=.756863,g=1,b=.756863]
-\definecolor [darkseagreen2] [r=.705882,g=.933333,b=.705882]
-\definecolor [darkseagreen3] [r=.607843,g=.803922,b=.607843]
-\definecolor [darkseagreen4] [r=.411765,g=.545098,b=.411765]
-\definecolor [seagreen1] [r=.329412,g=1,b=.623529]
-\definecolor [seagreen2] [r=.305882,g=.933333,b=.580392]
-\definecolor [seagreen3] [r=.262745,g=.803922,b=.501961]
-\definecolor [seagreen4] [r=.180392,g=.545098,b=.341176]
-\definecolor [palegreen1] [r=.603922,g=1,b=.603922]
-\definecolor [palegreen2] [r=.564706,g=.933333,b=.564706]
-\definecolor [palegreen3] [r=.486275,g=.803922,b=.486275]
-\definecolor [palegreen4] [r=.329412,g=.545098,b=.329412]
-\definecolor [springgreen1] [g=1,b=.498039]
-\definecolor [springgreen2] [g=.933333,b=.462745]
-\definecolor [springgreen3] [g=.803922,b=.4]
-\definecolor [springgreen4] [g=.545098,b=.270588]
-\definecolor [green1] [green]
-\definecolor [green2] [g=.933333]
-\definecolor [green3] [g=.803922]
-\definecolor [green4] [g=.545098]
-\definecolor [chartreuse1] [r=.498039,g=1]
-\definecolor [chartreuse2] [r=.462745,g=.933333]
-\definecolor [chartreuse3] [r=.4,g=.803922]
-\definecolor [chartreuse4] [r=.270588,g=.545098]
-\definecolor [olivedrab1] [r=.752941,g=1,b=.243137]
-\definecolor [olivedrab2] [r=.701961,g=.933333,b=.227451]
-\definecolor [olivedrab3] [r=.603922,g=.803922,b=.196078]
-\definecolor [olivedrab4] [r=.411765,g=.545098,b=.133333]
-\definecolor [darkolivegreen1] [r=.792157,g=1,b=.439216]
-\definecolor [darkolivegreen2] [r=.737255,g=.933333,b=.407843]
-\definecolor [darkolivegreen3] [r=.635294,g=.803922,b=.352941]
-\definecolor [darkolivegreen4] [r=.431373,g=.545098,b=.239216]
-\definecolor [khaki1] [r=1,g=.964706,b=.560784]
-\definecolor [khaki2] [r=.933333,g=.901961,b=.521569]
-\definecolor [khaki3] [r=.803922,g=.776471,b=.45098]
-\definecolor [khaki4] [r=.545098,g=.52549,b=.305882]
-\definecolor [lightgoldenrod1] [r=1,g=.92549,b=.545098]
-\definecolor [lightgoldenrod2] [r=.933333,g=.862745,b=.509804]
-\definecolor [lightgoldenrod3] [r=.803922,g=.745098,b=.439216]
-\definecolor [lightgoldenrod4] [r=.545098,g=.505882,b=.298039]
-\definecolor [lightyellow1] [r=1,g=1,b=.878431]
-\definecolor [lightyellow2] [r=.933333,g=.933333,b=.819608]
-\definecolor [lightyellow3] [r=.803922,g=.803922,b=.705882]
-\definecolor [lightyellow4] [r=.545098,g=.545098,b=.478431]
-\definecolor [yellow1] [yellow]
-\definecolor [yellow2] [r=.933333,g=.933333]
-\definecolor [yellow3] [r=.803922,g=.803922]
-\definecolor [yellow4] [r=.545098,g=.545098]
-\definecolor [gold1] [r=1,g=.843137]
-\definecolor [gold2] [r=.933333,g=.788235]
-\definecolor [gold3] [r=.803922,g=.678431]
-\definecolor [gold4] [r=.545098,g=.458824]
-\definecolor [goldenrod1] [r=1,g=.756863,b=.145098]
-\definecolor [goldenrod2] [r=.933333,g=.705882,b=.133333]
-\definecolor [goldenrod3] [r=.803922,g=.607843,b=.113725]
-\definecolor [goldenrod4] [r=.545098,g=.411765,b=.078431]
-\definecolor [darkgoldenrod1] [r=1,g=.72549,b=.058824]
-\definecolor [darkgoldenrod2] [r=.933333,g=.678431,b=.054902]
-\definecolor [darkgoldenrod3] [r=.803922,g=.584314,b=.047059]
-\definecolor [darkgoldenrod4] [r=.545098,g=.396078,b=.031373]
-\definecolor [rosybrown1] [r=1,g=.756863,b=.756863]
-\definecolor [rosybrown2] [r=.933333,g=.705882,b=.705882]
-\definecolor [rosybrown3] [r=.803922,g=.607843,b=.607843]
-\definecolor [rosybrown4] [r=.545098,g=.411765,b=.411765]
-\definecolor [indianred1] [r=1,g=.415686,b=.415686]
-\definecolor [indianred2] [r=.933333,g=.388235,b=.388235]
-\definecolor [indianred3] [r=.803922,g=.333333,b=.333333]
-\definecolor [indianred4] [r=.545098,g=.227451,b=.227451]
-\definecolor [sienna1] [r=1,g=.509804,b=.278431]
-\definecolor [sienna2] [r=.933333,g=.47451,b=.258824]
-\definecolor [sienna3] [r=.803922,g=.407843,b=.223529]
-\definecolor [sienna4] [r=.545098,g=.278431,b=.14902]
-\definecolor [burlywood1] [r=1,g=.827451,b=.607843]
-\definecolor [burlywood2] [r=.933333,g=.772549,b=.568627]
-\definecolor [burlywood3] [r=.803922,g=.666667,b=.490196]
-\definecolor [burlywood4] [r=.545098,g=.45098,b=.333333]
-\definecolor [wheat1] [r=1,g=.905882,b=.729412]
-\definecolor [wheat2] [r=.933333,g=.847059,b=.682353]
-\definecolor [wheat3] [r=.803922,g=.729412,b=.588235]
-\definecolor [wheat4] [r=.545098,g=.494118,b=.4]
-\definecolor [tan1] [r=1,g=.647059,b=.309804]
-\definecolor [tan2] [r=.933333,g=.603922,b=.286275]
-\definecolor [tan3] [r=.803922,g=.521569,b=.247059]
-\definecolor [tan4] [r=.545098,g=.352941,b=.168627]
-\definecolor [chocolate1] [r=1,g=.498039,b=.141176]
-\definecolor [chocolate2] [r=.933333,g=.462745,b=.129412]
-\definecolor [chocolate3] [r=.803922,g=.4,b=.113725]
-\definecolor [chocolate4] [r=.545098,g=.270588,b=.07451]
-\definecolor [firebrick1] [r=1,g=.188235,b=.188235]
-\definecolor [firebrick2] [r=.933333,g=.172549,b=.172549]
-\definecolor [firebrick3] [r=.803922,g=.14902,b=.14902]
-\definecolor [firebrick4] [r=.545098,g=.101961,b=.101961]
-\definecolor [brown1] [r=1,g=.25098,b=.25098]
-\definecolor [brown2] [r=.933333,g=.231373,b=.231373]
-\definecolor [brown3] [r=.803922,g=.2,b=.2]
-\definecolor [brown4] [r=.545098,g=.137255,b=.137255]
-\definecolor [salmon1] [r=1,g=.54902,b=.411765]
-\definecolor [salmon2] [r=.933333,g=.509804,b=.384314]
-\definecolor [salmon3] [r=.803922,g=.439216,b=.329412]
-\definecolor [salmon4] [r=.545098,g=.298039,b=.223529]
-\definecolor [lightsalmon1] [r=1,g=.627451,b=.478431]
-\definecolor [lightsalmon2] [r=.933333,g=.584314,b=.447059]
-\definecolor [lightsalmon3] [r=.803922,g=.505882,b=.384314]
-\definecolor [lightsalmon4] [r=.545098,g=.341176,b=.258824]
-\definecolor [orange1] [r=1,g=.647059]
-\definecolor [orange2] [r=.933333,g=.603922]
-\definecolor [orange3] [r=.803922,g=.521569]
-\definecolor [orange4] [r=.545098,g=.352941]
-\definecolor [darkorange1] [r=1,g=.498039]
-\definecolor [darkorange2] [r=.933333,g=.462745]
-\definecolor [darkorange3] [r=.803922,g=.4]
-\definecolor [darkorange4] [r=.545098,g=.270588]
-\definecolor [coral1] [r=1,g=.447059,b=.337255]
-\definecolor [coral2] [r=.933333,g=.415686,b=.313725]
-\definecolor [coral3] [r=.803922,g=.356863,b=.270588]
-\definecolor [coral4] [r=.545098,g=.243137,b=.184314]
-\definecolor [tomato1] [r=1,g=.388235,b=.278431]
-\definecolor [tomato2] [r=.933333,g=.360784,b=.258824]
-\definecolor [tomato3] [r=.803922,g=.309804,b=.223529]
-\definecolor [tomato4] [r=.545098,g=.211765,b=.14902]
-\definecolor [orangered1] [r=1,g=.270588]
-\definecolor [orangered2] [r=.933333,g=.25098]
-\definecolor [orangered3] [r=.803922,g=.215686]
-\definecolor [orangered4] [r=.545098,g=.145098]
-\definecolor [red1] [red]
-\definecolor [red2] [r=.933333]
-\definecolor [red3] [r=.803922]
-\definecolor [red4] [r=.545098]
-\definecolor [deeppink1] [r=1,g=.078431,b=.576471]
-\definecolor [deeppink2] [r=.933333,g=.070588,b=.537255]
-\definecolor [deeppink3] [r=.803922,g=.062745,b=.462745]
-\definecolor [deeppink4] [r=.545098,g=.039216,b=.313725]
-\definecolor [hotpink1] [r=1,g=.431373,b=.705882]
-\definecolor [hotpink2] [r=.933333,g=.415686,b=.654902]
-\definecolor [hotpink3] [r=.803922,g=.376471,b=.564706]
-\definecolor [hotpink4] [r=.545098,g=.227451,b=.384314]
-\definecolor [pink1] [r=1,g=.709804,b=.772549]
-\definecolor [pink2] [r=.933333,g=.662745,b=.721569]
-\definecolor [pink3] [r=.803922,g=.568627,b=.619608]
-\definecolor [pink4] [r=.545098,g=.388235,b=.423529]
-\definecolor [lightpink1] [r=1,g=.682353,b=.72549]
-\definecolor [lightpink2] [r=.933333,g=.635294,b=.678431]
-\definecolor [lightpink3] [r=.803922,g=.54902,b=.584314]
-\definecolor [lightpink4] [r=.545098,g=.372549,b=.396078]
-\definecolor [palevioletred1] [r=1,g=.509804,b=.670588]
-\definecolor [palevioletred2] [r=.933333,g=.47451,b=.623529]
-\definecolor [palevioletred3] [r=.803922,g=.407843,b=.537255]
-\definecolor [palevioletred4] [r=.545098,g=.278431,b=.364706]
-\definecolor [maroon1] [r=1,g=.203922,b=.701961]
-\definecolor [maroon2] [r=.933333,g=.188235,b=.654902]
-\definecolor [maroon3] [r=.803922,g=.160784,b=.564706]
-\definecolor [maroon4] [r=.545098,g=.109804,b=.384314]
-\definecolor [violetred1] [r=1,g=.243137,b=.588235]
-\definecolor [violetred2] [r=.933333,g=.227451,b=.54902]
-\definecolor [violetred3] [r=.803922,g=.196078,b=.470588]
-\definecolor [violetred4] [r=.545098,g=.133333,b=.321569]
-\definecolor [magenta1] [magenta]
-\definecolor [magenta2] [r=.933333,b=.933333]
-\definecolor [magenta3] [r=.803922,b=.803922]
-\definecolor [magenta4] [r=.545098,b=.545098]
-\definecolor [orchid1] [r=1,g=.513725,b=.980392]
-\definecolor [orchid2] [r=.933333,g=.478431,b=.913725]
-\definecolor [orchid3] [r=.803922,g=.411765,b=.788235]
-\definecolor [orchid4] [r=.545098,g=.278431,b=.537255]
-\definecolor [plum1] [r=1,g=.733333,b=1]
-\definecolor [plum2] [r=.933333,g=.682353,b=.933333]
-\definecolor [plum3] [r=.803922,g=.588235,b=.803922]
-\definecolor [plum4] [r=.545098,g=.4,b=.545098]
-\definecolor [mediumorchid1] [r=.878431,g=.4,b=1]
-\definecolor [mediumorchid2] [r=.819608,g=.372549,b=.933333]
-\definecolor [mediumorchid3] [r=.705882,g=.321569,b=.803922]
-\definecolor [mediumorchid4] [r=.478431,g=.215686,b=.545098]
-\definecolor [darkorchid1] [r=.74902,g=.243137,b=1]
-\definecolor [darkorchid2] [r=.698039,g=.227451,b=.933333]
-\definecolor [darkorchid3] [r=.603922,g=.196078,b=.803922]
-\definecolor [darkorchid4] [r=.407843,g=.133333,b=.545098]
-\definecolor [purple1] [r=.607843,g=.188235,b=1]
-\definecolor [purple2] [r=.568627,g=.172549,b=.933333]
-\definecolor [purple3] [r=.490196,g=.14902,b=.803922]
-\definecolor [purple4] [r=.333333,g=.101961,b=.545098]
-\definecolor [mediumpurple1] [r=.670588,g=.509804,b=1]
-\definecolor [mediumpurple2] [r=.623529,g=.47451,b=.933333]
-\definecolor [mediumpurple3] [r=.537255,g=.407843,b=.803922]
-\definecolor [mediumpurple4] [r=.364706,g=.278431,b=.545098]
-\definecolor [thistle1] [r=1,g=.882353,b=1]
-\definecolor [thistle2] [r=.933333,g=.823529,b=.933333]
-\definecolor [thistle3] [r=.803922,g=.709804,b=.803922]
-\definecolor [thistle4] [r=.545098,g=.482353,b=.545098]
-\definecolor [gray0] [black]
-\definecolor [gray1] [s=.01]
-\definecolor [gray2] [s=.02]
-\definecolor [gray3] [s=.03]
-\definecolor [gray4] [s=.04]
-\definecolor [gray5] [s=.05]
-\definecolor [gray6] [s=.06]
-\definecolor [gray7] [s=.07]
-\definecolor [gray8] [s=.08]
-\definecolor [gray9] [s=.09]
-\definecolor [gray10] [s=.1]
-\definecolor [gray11] [s=.11]
-\definecolor [gray12] [s=.12]
-\definecolor [gray13] [s=.13]
-\definecolor [gray14] [s=.14]
-\definecolor [gray15] [s=.15]
-\definecolor [gray16] [s=.16]
-\definecolor [gray17] [s=.17]
-\definecolor [gray18] [s=.18]
-\definecolor [gray19] [s=.19]
-\definecolor [gray20] [s=.2]
-\definecolor [gray21] [s=.21]
-\definecolor [gray22] [s=.22]
-\definecolor [gray23] [s=.23]
-\definecolor [gray24] [s=.24]
-\definecolor [gray25] [s=.25]
-\definecolor [gray26] [s=.26]
-\definecolor [gray27] [s=.27]
-\definecolor [gray28] [s=.28]
-\definecolor [gray29] [s=.29]
-\definecolor [gray30] [s=.3]
-\definecolor [gray31] [s=.31]
-\definecolor [gray32] [s=.32]
-\definecolor [gray33] [s=.33]
-\definecolor [gray34] [s=.34]
-\definecolor [gray35] [s=.35]
-\definecolor [gray36] [s=.36]
-\definecolor [gray37] [s=.37]
-\definecolor [gray38] [s=.38]
-\definecolor [gray39] [s=.39]
-\definecolor [gray40] [s=.4]
-\definecolor [gray41] [s=.41]
-\definecolor [gray42] [s=.42]
-\definecolor [gray43] [s=.43]
-\definecolor [gray44] [s=.44]
-\definecolor [gray45] [s=.45]
-\definecolor [gray46] [s=.46]
-\definecolor [gray47] [s=.47]
-\definecolor [gray48] [s=.48]
-\definecolor [gray49] [s=.49]
-\definecolor [gray50] [s=.5]
-\definecolor [gray51] [s=.51]
-\definecolor [gray52] [s=.52]
-\definecolor [gray53] [s=.53]
-\definecolor [gray54] [s=.54]
-\definecolor [gray55] [s=.55]
-\definecolor [gray56] [s=.56]
-\definecolor [gray57] [s=.57]
-\definecolor [gray58] [s=.58]
-\definecolor [gray59] [s=.59]
-\definecolor [gray60] [s=.6]
-\definecolor [gray61] [s=.61]
-\definecolor [gray62] [s=.62]
-\definecolor [gray63] [s=.63]
-\definecolor [gray64] [s=.64]
-\definecolor [gray65] [s=.65]
-\definecolor [gray66] [s=.66]
-\definecolor [gray67] [s=.67]
-\definecolor [gray68] [s=.68]
-\definecolor [gray69] [s=.69]
-\definecolor [gray70] [s=.7]
-\definecolor [gray71] [s=.71]
-\definecolor [gray72] [s=.72]
-\definecolor [gray73] [s=.73]
-\definecolor [gray74] [s=.74]
-\definecolor [gray75] [s=.75]
-\definecolor [gray76] [s=.76]
-\definecolor [gray77] [s=.77]
-\definecolor [gray78] [s=.78]
-\definecolor [gray79] [s=.79]
-\definecolor [gray80] [s=.8]
-\definecolor [gray81] [s=.81]
-\definecolor [gray82] [s=.82]
-\definecolor [gray83] [s=.83]
-\definecolor [gray84] [s=.84]
-\definecolor [gray85] [s=.85]
-\definecolor [gray86] [s=.86]
-\definecolor [gray87] [s=.87]
-\definecolor [gray88] [s=.88]
-\definecolor [gray89] [s=.89]
-\definecolor [gray90] [s=.9]
-\definecolor [gray91] [s=.91]
-\definecolor [gray92] [s=.92]
-\definecolor [gray93] [s=.93]
-\definecolor [gray94] [s=.94]
-\definecolor [gray95] [s=.95]
-\definecolor [gray96] [s=.96]
-\definecolor [gray97] [s=.97]
-\definecolor [gray98] [s=.98]
-\definecolor [gray99] [s=.99]
-\definecolor [gray100] [white]
-\definecolor [darkgray] [s=.662745]
-\definecolor [darkblue] [b=.545098]
-\definecolor [darkcyan] [g=.545098,b=.545098]
-\definecolor [darkmagenta] [r=.545098,b=.545098]
-\definecolor [darkred] [r=.545098]
-\definecolor [lightgreen] [r=.564706,g=.933333,b=.564706]
diff --git a/Master/texmf-dist/tex/context/base/mkii/colo-ext.mkii b/Master/texmf-dist/tex/context/base/mkii/colo-ext.mkii
deleted file mode 100644
index 5b39a8e85dd..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/colo-ext.mkii
+++ /dev/null
@@ -1,59 +0,0 @@
-%D \module
-%D [ file=colo-ext, % mostof thsi code used to be in colo-ini.tex
-%D version=1997.04.01,
-%D title=\CONTEXT\ Color Macros,
-%D subtitle=Extras,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Color Macros / Extras}
-
-\unprotect
-
-%D \macros
-%D {negatecolorcomponent, negativecolorbox}
-%D
-%D Sometimes, especially when we deal with typesetting
-%D devices, we want to reverse the color scheme. Instead of
-%D recalculating all those colors, we use a quick and dirty
-%D approach:
-%D
-%D \starttyping
-%D \negativecolorbox0
-%D \stoptyping
-%D
-%D will negate the colors in box zero.
-
-\def\negatecolorbox#1%
- {\setbox#1\hbox
- {\dostartnegative
- \localstartcolor[white]\vrule\!!height\ht#1\!!depth\dp#1\!!width\wd#1\localstopcolor
- \hskip-\wd#1%
- \box#1%
- \dostopnegative}}
-
-%D There are in principle two ways to handle overprint: bound to colors
-%D or independent. For the moment we only support independent overprint
-%D handling. Here we deal with a per-document setting.
-
-\setupcolors
- [\c!intent=\v!none]
-
-\def\starttextoverprint
- {\doifelse\@@clintent\v!overprint
- {\glet\stoptextoverprint \dostopoverprint
- \glet\starttextoverprint\dostartoverprint
- \dostartoverprint}
- {\glet\stoptextoverprint\donothing}}
-
-\let\stoptextoverprint\donothing
-
-\appendtoks \starttextoverprint \to \everystarttextproperties
-\appendtoks \stoptextoverprint \to \everystoptextproperties
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/colo-hex.mkii b/Master/texmf-dist/tex/context/base/mkii/colo-hex.mkii
deleted file mode 100644
index ddf2d47065d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/colo-hex.mkii
+++ /dev/null
@@ -1,125 +0,0 @@
-%D \module
-%D [ file=colo-hex,
-%D version=2004.06.23,
-%D title=\CONTEXT\ Color Macros,
-%D subtitle=Hex Colors,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\ifdefined \hexcolorprefix
- \expandafter \endinput
-\fi
-
-\writestatus{loading}{ConTeXt Color Macros / Hexadecimal}
-
-% \edef\testcolor{\string#FFC0C0}
-% \edef\testcolor{\string#55}
-%
-% \setupcolors[state=start]
-%
-% \expanded{\definecolor[thehexcolor][\hexcolorspec\testcolor]}
-%
-% \checkhexcolor[\testcolor]
-%
-% \definecolor[thehexcolor][\testcolor]
-%
-% \starttext
-%
-% test \color[thehexcolor]{rood}
-% test \color[red]{rood}
-% test \color[\testcolor]{rood}
-%
-% \stoptext
-
-\unprotect
-
-% \definecolor[rgbtestcolor] [r=0.87843,g=0.87451,b=0.89020] % RGB(224,223,227)
-% \definecolor[hextestcolor] [h=E0DFE3]
-%
-% \startMPpage
-% path p ; % example by Peter Rolf
-% p := unitsquare xyscaled(5cm,5cm) ;
-% fill (point 0 of p -- point 1 of p -- point 2 of p --cycle) withcolor \MPcolor{rgbtestcolor} ; % bottom right part of the square
-% fill (point 0 of p -- point 3 of p -- point 2 of p --cycle) withcolor \MPcolor{hextestcolor} ; % top left part
-% \stopMPpage
-
-\newdimen\hexcolorfraction \hexcolorfraction=\dimexpr1pt/255\relax
-
-\chardef\hexcolorprefix=`#
-
-\def\hexcolorspec #1{\expandafter\dohexcolorspec #1\empty\empty\empty\empty\relax}
-\def\hexcolorpattern#1{\expandafter\dohexcolorpattern#1\empty\empty\empty\empty\relax}
-
-\ifx\dohexstringtonumber\undefined \def\dohexstringtonumber{"} \fi
-
-\def\hexcolorcomponent#1#2%
- {\ifnum\dohexstringtonumber#1#2=\zerocount0\else\ifnum\dohexstringtonumber#1#2=\plusone1\else
- \expandafter\withoutpt\the\dimexpr\dohexstringtonumber#1#2\hexcolorfraction\relax
- \fi\fi}
-
-\def\dohexcolorspec#1#2#3#4#5#6#7#8\relax
- {\ifx#4\empty
- s=\hexcolorcomponent#2#3%
- \else
- r=\hexcolorcomponent#2#3,g=\hexcolorcomponent#4#5,b=\hexcolorcomponent#6#7%
- \fi}
-
-\def\dohexcolorpattern#1#2#3#4#5#6#7#8\relax
- {0\ifx#4\empty
- S:\hexcolorcomponent#2#3%
- \else
- R:\hexcolorcomponent#2#3:\hexcolorcomponent#4#5:\hexcolorcomponent#6#7%
- \fi:0:0}
-
-\def\doifhexcolorelse#1%
- {\expandafter\dodoifhexcolorelse#10\od} % 0 is a dirty trick to catch an empty #1
-
-\def\dodoifhexcolorelse#1#2\od
- {\ifnum`#1=\hexcolorprefix
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\def\docheckhexcolor#1%
- {\doifhexcolorelse{#1}{\doifundefined{#1}{\setxvalue{\??cr#1}{\hexcolorpattern{#1}}}}\donothing}
-
-\def\checkhexcolor[#1]%
- {\expanded{\docheckhexcolor{#1}}}
-
-\def\colorHpattern{\@EA\hexcolorpattern\@EA{\@EA*\@@cl@@h}} % * == dummy placeholder
-
-\let\dodododefinecolor\dododefinecolor % we will overload this one
-
-\def\dododefinecolor#1#2#3#4[#5][#6]%
- {\doifhexcolorelse{#6}
- {\setxvalue{\??cr#5}{\hexcolorpattern{#6}}}
- {\dodododefinecolor#1#2#3#4[#5][#6]}}
-
-%D For Adam Lindsay and his XeTeX special driver:
-
-% because we intercept the zero condition, the .23pt in 1.23pt will disappear in the
-% ifcase zero part branch
-
-\def\colorhexcomponent#1%
- {\ifdim#1\points<.005\points
- 00\else\lchexnumbers{\the\dimexpr255\dimexpr#1\points\relax+.5\points\relax}%
- \fi}
-
-% the faster one
-
-\newdimen\hex@color@a \hex@color@a=.005pt
-\newdimen\hex@color@b \hex@color@b=.5pt
-\chardef \hex@color@c =255
-
-\def\colorhexcomponent#1%
- {\ifdim#1\points<\hex@color@a
- 00\else\lchexnumbers{\the\dimexpr#1\points*\hex@color@c+\hex@color@b\relax}%
- \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/colo-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/colo-ini.mkii
deleted file mode 100644
index 56b9d14da80..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/colo-ini.mkii
+++ /dev/null
@@ -1,2794 +0,0 @@
-%D \module
-%D [ file=colo-ini,
-%D version=2007.08.08,
-%D title=\CONTEXT\ Color Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D We need to clean this up further but first we hav eto make sure that mkiv
-%D code works ok.
-
-\writestatus{loading}{ConTeXt Color Macros / Initialization}
-
-%D This module implements color. Since \MKII\ and \MKIV\ use a completely
-%D different approach, this module only implements a few generic mechanisms.
-
-\unprotect
-
-\chardef\colorversion=1 % temp, needed for tracing purposes, mkiv transition
-
-%D We use a couple of local registers. That way we don't have
-%D to group when converting colors. By the way, this is not
-%D really faster. We can sqeeze half a second runtime for 50K
-%D switches on a 1G machine, but the macros will become rather
-%D ugly then. To mention one such improvement: no colon
-%D after the key character (.25 sec).
-
-\newdimen\colordimen
-\newcount\colorcount
-
-%D When typesetting for paper, we prefer using the \cap{CMYK}
-%D color space, but for on||screen viewing we prefer \cap{RGB}
-%D (the previous implementation supported only this scheme).
-%D Independant of such specifications, we support some automatic
-%D conversions:
-%D
-%D \startitemize[packed]
-%D \item convert all colors to \cap{RGB}
-%D \item convert all colors to \cap{CMYK}
-%D \item convert all colors to gray scales
-%D \stopitemize
-%D
-%D We also support optimization of colors to gray scales.
-%D
-%D \startitemize[continue]
-%D \item reduce gray colors to gray scales
-%D \item reduce \cap{CMY} components to \cap{K}
-%D \stopitemize
-%D
-%D These options are communicated by means of:
-
-\newif\ifRGBsupported
-\newif\ifCMYKsupported
-\newif\ifSPOTsupported
-\newif\ifpreferGRAY
-\newif\ifGRAYprefered
-\newif\ifreduceCMYK
-\newif\ifconverttoGRAY
-\newif\ifweightGRAY \weightGRAYtrue
-
-\newif\ifconvertMPcolors
-\newif\ifreduceMPcolors
-\newif\ifforcegrayMPcolors
-
-%D The last boolean controls reduction of \cap{CMYK} to
-%D \cap{CMY} colors. When set to true, the black component
-%D is added to the other ones.
-%D
-%D Prefering gray is not the same as converting to gray.
-%D Conversion treats each color components in a different way,
-%D while prefering is just a reduction and thus a
-%D space||saving option.
-
-\newif\iffreezecolors \freezecolorsfalse
-\newif\ifincolor % true if colors enabled
-\newif\iflocalcolor
-
-\let\colorlist \empty
-\let\currentspotcolor \empty
-\let\allspotcolors \empty
-\let\usedspotcolors \empty
-\let\usedcolorchannels\empty
-\let\currentpalet \empty
-
-%D \macros
-%D {definecolor,defineglobalcolor,definenamedcolor,definespotcolor,definemultitonecolor}
-%D
-%D \startbuffer
-%D \definecolor [blue] [c=1,m=.38,y=0,k=.64] % pantone pms 2965 uncoated m
-%D \definecolor [yellow] [c=0,m=.28,y=1,k=.06] % pantone pms 124 uncoated m
-%D
-%D \definespotcolor [blue-100] [blue] [p=1]
-%D \definespotcolor [yellow-100] [yellow] [p=1]
-%D
-%D \definemultitonecolor [pdftoolscolor] [blue=.12,yellow=.28] [c=.1,m=.1,y=.3,k=.1]
-%D
-%D \useexternalfigure[demofig][mill.png][object=no]
-%D
-%D \startcombination[4*1]
-%D {\externalfigure[demofig]} {no color}
-%D {\externalfigure[demofig][color=pdftoolscolor]} {indexed duotone}
-%D {\externalfigure[demofig][color=blue-100]} {spot color}
-%D {\externalfigure[demofig][color=yellow-100]} {spot color}
-%D \stopcombination
-%D \stopbuffer
-%D
-%D \getbuffer \typebuffer
-
-\def\definecolor {\dodoubleargument\dodefinecolor}
-\def\defineglobalcolor {\dodoubleargument\dodefineglobalcolor}
-\def\definenamedcolor {\dodoubleargument\dodefinenamedcolor}
-\def\definespotcolor {\dotripleargument\dodefinespotcolor}
-\def\definemultitonecolor{\doquadrupleempty\dodefinemultitonecolor}
-
-% check: registerusedspotcolors
-% check: registerusedcolorchannels
-
-%D \macros
-%D {doifcolorelse, doifcolor}
-%D
-%D Switching to a color is done by means of the following
-%D command. Later on we will explain the use of palets. We
-%D define ourselves a color conditional first.
-
-\ifx\doifcolorelse\undefined
- \let\doifcolorelse\secondoftwoarguments
- \let\doifcolor \gobbleoneargument
-\fi
-
-%D \macros
-%D {localstartcolor,localstopcolor}
-%D
-%D Simple color support, that is without nesting, is provided
-%D by:
-
-\ifx\localstartcolor\undefined
- \let\localstartcolor\undefined
- \let\localstopcolor \undefined
-\fi
-
-%D \macros
-%D {faststartcolor,faststopcolor}
-%D
-%D No checking for arguments and such:
-
-\ifx\faststartcolor\undefined
- \def\faststartcolor[#1]{}
- \def\faststopcolor {}
-\fi
-
-%D These local ones may go away in future versions.
-
-%D \macros
-%D {startcolor,stopcolor}
-%D
-%D The more save method, the one that saves the current color
-%D state and returns to this state afterward, is activated by:
-%D
-%D \showsetup{startcolor}
-
-\ifx\startcolor\undefined
- \let\startcolor\undefined
- \let\stopcolor \undefined
-\fi
-
-%D \macros
-%D {startcurrentcolor,stopcurrentcolor}
-
-\def\startcurrentcolor{\startcolor[\outercolorname]}
-\def\stopcurrentcolor {\stopcolor}
-
-%D \macros
-%D {color,graycolor}
-%D
-%D This leaves the simple color command:
-%D
-%D \showsetup{color}
-%D \showsetup{graycolor}
-
-\ifx\color\undefined
- \def\color [#1]{}
- \def\graycolor[#1]{}
- \def\gray {\graycolor}
-\fi
-
-%D \macros
-%D {localstartraster,localstopraster,
-%D startraster,stopraster,raster}
-%D
-%D The previous conversions are not linear and treat each color
-%D component according to human perception curves. Pure gray
-%D (we call them rasters) has equal color components. In
-%D \CONTEXT\ rasters are only used as backgrounds and these
-%D don't cross page boundaries in the way color does. Therefore
-%D we don't need stacks and marks. Just to be compatible with
-%D color support we offer both 'global' and 'local' commands.
-
-\ifx\startraster\undefined
- \def\startraster [#1]{}
- \def\stopraster {}
- \def\raster [#1]{}
- \def\localstartraster[#1]{}
- \def\localstopraster {}
-\fi
-
-%D \macros
-%D {colorvalue, grayvalue}
-%D
-%D We can typeset the color components using \type{\colorvalue} and
-%D \type{\grayvalue}. The commands:
-%D
-%D \startbuffer
-%D color value of SomeKindOfRed: \colorvalue{SomeKindOfRed} \crlf
-%D gray value of SomeKindOfRed: \grayvalue{SomeKindOfRed}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D show us:
-%D
-%D \startvoorbeeld
-%D \getbuffer
-%D \stopvoorbeeld
-
-\def\colorformatseparator{ }
-
-\ifx\colorvalue\undefined
- \let\colorvalue\gobbleoneargument
- \let\grayvalue \gobbleoneargument
-\fi
-
-% check: \currentcolorname
-% check: \outercolorname
-
-%D \macros
-%D {setupcolor}
-%D
-%D Color definitions can be grouped in files with the name:
-%D
-%D \starttyping
-%D \f!colorprefix-identifier.tex
-%D \stoptyping
-%D
-%D where \type{\f!colorprefix} is \unprotect {\tttf \f!colorprefix}.
-%D Loading such a file is done by \protect
-%D
-%D \showsetup{setupcolor}
-%D
-%D Some default colors are specified in \type{colo-rgb.tex},
-%D which is loaded into the format by:
-%D
-%D \starttyping
-%D \setupcolor[rgb]
-%D \stoptyping
-
-\let\colorstyle\empty
-
-\def\setupcolor
- {\dosingleargument\dosetupcolor}
-
-\def\dosetupcolor[#1]%
- {\doifnot{#1}\colorstyle
- {\def\colorstyle{#1}%
- \processcommalist[#1]\dodosetupcolor}}
-
-\def\dodosetupcolor#1%
- {\makeshortfilename[\truefilename{\f!colorprefix#1}]%
- \startreadingfile
- \readsysfile{\shortfilename.\mksuffix}
- {\showmessage\m!colors4\colorstyle}
- {\readsysfile{\shortfilename.tex}
- {\showmessage\m!colors4\colorstyle}
- {\showmessage\m!colors5\colorstyle}}%
- \stopreadingfile}
-
-\let\usecolors\setupcolor
-
-% check: \chardef\currentcolorchannel=0
-% check: \startcolormode
-% check: \newif\iffilterspotcolor \filterspotcolorfalse
-% check: \newif\ifdoingspotcolor \doingspotcolorfalse
-% check: \registercolorchannel
-
-%D \macros
-%D {definetransparency}
-%D
-%D This command numbers to names:
-
-\def\definetransparency
- {\dodoubleargument\dodefinetransparency}
-
-\def\setupcolors
- {\dosingleargument\dosetupcolors}
-
-\def\resetcolorsplitting
- {\chardef\currentcolorchannel\zerocount
- \let\currentspotcolor\empty
- \filterspotcolorfalse}
-
-\def\colorsplitsuffix{\ifcase\currentcolorchannel\else-\@@clsplit\fi}
-\def\colorsplitprefix{\ifcase\currentcolorchannel\else\@@clsplit-\fi}
-
-\def\setcolorsplitting
- {\resetsystemmode{\v!color\colorsplitsuffix}%
- \resetcolorsplitting
- \processaction
- [\@@clsplit]
- [ c=>\chardef\currentcolorchannel1,%
- m=>\chardef\currentcolorchannel2,%
- y=>\chardef\currentcolorchannel3,%
- k=>\chardef\currentcolorchannel4,%
- r=>\chardef\currentcolorchannel5,%
- g=>\chardef\currentcolorchannel6,%
- b=>\chardef\currentcolorchannel7,%
- s=>\chardef\currentcolorchannel8,%
- \v!no=>,% \currentcolorchannel0,% all colors
- \s!default=>,% \currentcolorchannel0,% all colors
- \s!unknown=>\filterspotcolortrue
- \edef\currentspotcolor{\commalistelement}]%
- \setsystemmode{\v!color\colorsplitsuffix}%
- \iffilterspotcolor \let\@@clrgb\v!no \fi}
-
-\ifx\dosetupcolormodel\undefined
- \let\dosetupcolormodel\relax
-\fi
-
-\def\dosetupcolors[#1]% some no longer make sense in MkIV
- {\getparameters[\??cl][#1]%
- \doifelse\@@clspot\v!yes
- \SPOTsupportedtrue
- \SPOTsupportedfalse
- \doifelsenothing\@@clsplit
- \resetcolorsplitting
- \setcolorsplitting
- \doifelse\@@clreduction\v!yes
- \reduceCMYKtrue
- \reduceCMYKfalse
- \doifelse\@@clexpansion\v!yes
- \freezecolorstrue
- \freezecolorsfalse
- \doifelse\@@clcriterium\v!all
- \hidesplitcolortrue
- \hidesplitcolorfalse
- \doifelse\@@clrgb\v!no
- {\ifRGBsupported \ifproductionrun\showmessage\m!colors {9}\v!rgb \fi\RGBsupportedfalse \fi}
- {\ifRGBsupported \else\ifproductionrun\showmessage\m!colors{10}\v!rgb \fi\RGBsupportedtrue \fi}%
- \doifelse\@@clcmyk\v!no
- {\ifCMYKsupported \ifproductionrun\showmessage\m!colors {9}\v!cmyk \fi\CMYKsupportedfalse\fi}
- {\ifCMYKsupported\else\ifproductionrun\showmessage\m!colors{10}\v!cmyk \fi\CMYKsupportedtrue \fi}%
- \doifelse\@@clmpcmyk\v!no
- {\ifMPcmykcolors \ifproductionrun\showmessage\m!colors {9}{\v!mp\v!cmyk}\fi\MPcmykcolorsfalse \fi}
- {\ifMPcmykcolors \else\ifproductionrun\showmessage\m!colors{10}{\v!mp\v!cmyk}\fi\MPcmykcolorstrue \fi}%
- \doifelse\@@clmpspot\v!no
- {\ifMPspotcolors \ifproductionrun\showmessage\m!colors {9}{\v!mp\v!spot}\fi\MPspotcolorsfalse \fi}
- {\ifMPspotcolors \else\ifproductionrun\showmessage\m!colors{10}{\v!mp\v!spot}\fi\MPspotcolorstrue \fi}%
- \preferGRAYfalse
- \processaction
- [\@@clconversion]
- [ \v!yes=>\preferGRAYtrue,
- \v!always=>\preferGRAYtrue\RGBsupportedfalse\CMYKsupportedfalse]%
- \ifRGBsupported
- \converttoGRAYfalse
- \forcegrayMPcolorsfalse
- \else\ifCMYKsupported
- \converttoGRAYfalse
- \forcegrayMPcolorsfalse
- \convertMPcolorstrue
- \ifreduceCMYK
- \reduceMPcolorstrue
- \fi
- \else
- \ifconverttoGRAY\else\showmessage\m!colors{11}\empty\fi
- \converttoGRAYtrue
- \forcegrayMPcolorstrue
- \convertMPcolorsfalse
- \reduceMPcolorsfalse
- \fi\fi
- \processaction
- [\@@clstate]
- [ \v!global=>\ifincolor\else\showmessage\m!colors1\colorstyle\fi
- \incolortrue\localcolorfalse,
- \v!local=>\ifincolor\else\showmessage\m!colors2\colorstyle\fi
- \incolortrue\localcolortrue,
- \v!start=>\ifincolor\else\showmessage\m!colors1\colorstyle\fi
- \incolortrue\localcolorfalse
- \let\@@clstate\v!global,
- \v!stop=>\incolorfalse\localcolorfalse
- \forcegrayMPcolorstrue]%
- \dosetupcolormodel
- \initializemaintextcolor}
-
-%D \macros
-%D {startregistercolor,stopregistercolor,permitcolormode}
-%D
-%D If you only want to register a color, the switch \type
-%D {\ifpermitcolormode} can be used. That way the nested
-%D colors know where to go back to.
-
-\ifx\startregistercolor\undefined
- \def\startregistercolor[#1]{}
- \def\stopregistercolor {}
-\fi
-
-%D We use these macros for implementing text colors
-%D (actually, the first application was in foreground
-%D colors).
-%D
-%D \starttyping
-%D \starttextcolor[red]
-%D \dorecurse{10}{\input tufte \color[green]{oeps} \par}
-%D \stoptextcolor
-%D \stoptyping
-%D
-%D This is more efficient than the alternative:
-%D
-%D \starttyping
-%D \setupbackgrounds[text][foregroundcolor=red]
-%D \startregistercolor[red]
-%D \dorecurse{10}{\input tufte \color[green]{oeps} \par}
-%D \stopregistercolor
-%D \stoptyping
-
-\def\maintextcolor {}
-\def\defaulttextcolor {black}
-\def\@@themaintextcolor{themaintextcolor}
-
-\ifx\initializemaintextcolor\undefined
- \def\starttextcolor [#1]{}
- \def\stoptextcolor {}
- \def\initializemaintextcolor {}
-\fi
-
-\ifx\restoretextcolor\undefined % to be redone
- \let\restoretextcolor \firstofoneargument
- \let\localstarttextcolor\relax
- \let\localstoptextcolor \relax
-\fi
-
-%D In this documentation we will not go into too much details
-%D on palets. Curious users can find more information on this
-%D topic in \from[use of color].
-%D
-%D At the moment we implemented color in \CONTEXT\ color
-%D printing was not yet on the desktop. In spite of this lack our
-%D graphics designer made colorfull illustrations. When printed
-%D on a black and white printer, distinctive colors can come
-%D out equally gray. We therefore decided to use only colors
-%D that were distinctive in colors as well as in black and
-%D white print.
-%D
-%D Although none of the graphic packages we used supported
-%D logical colors and global color redefition, we build this
-%D support into \CONTEXT. This enabled us to experiment and
-%D also prepared us for the future.
-
-%D \macros
-%D {definepalet}
-%D
-%D Colors are grouped in palets. The colors in such a palet can
-%D have colorful names, but best is to use names that specify
-%D their use, like {\em important} or {\em danger}. As a sort
-%D of example \CONTEXT\ has some palets predefined,
-%D like:\footnote{At the time I wrote the palet support, I was
-%D reading 'A hort history of time' of S.~Hawkins, so that's
-%D why we stuck to quarks.}
-%D
-%D \starttyping
-%D \definepalet
-%D [alfa]
-%D [ top=rood:7,
-%D bottom=groen:6,
-%D up=blauw:5,
-%D down=cyaan:4,
-%D strange=magenta:3,
-%D charm=geel:2]
-%D \stoptyping
-%D
-%D It's formal definition is:
-%D
-%D \showsetup{definepalet}
-%D
-%D Visualized, such a palet looks like:
-%D
-%D \startbuffer[palet]
-%D \showpalet [alfa] [horizontal,name,number,value]
-%D \stopbuffer
-%D
-%D \startlinecorrection
-%D \getbuffer[palet]
-%D \stoplinecorrection
-%D
-%D This bar shows both the color and gray alternatives of the
-%D palet components (not visible in black and white print).
-%D
-%D When needed, one can copy a palet by saying:
-%D
-%D \starttyping
-%D \definepalet [TEXcolorpretty] [colorpretty]
-%D \stoptyping
-%D
-%D This saves us some typing in for instance the modules that
-%D deal with pretty verbatim typesetting.
-
-\def\definepalet
- {\dodoubleargument\dodefinepalet}
-
-\def\dodefinepalet[#1][#2]%
- {\doifassignmentelse{#2}
- {%\showmessage\m!colors6{#1}%
- \letvalue{\??pa#1}\empty
- \setevalue{\??pa\??pa#1}{#2}%
- \def\dodododefinepalet[##1=##2]%
- {\doifvaluesomething{\??pa#1}
- {\setevalue{\??pa#1}{\csname\??pa#1\endcsname,}}%
- \setevalue{\??pa#1}{\csname\??pa#1\endcsname##1}%
- \dodefinepaletcolor{#1}{##1}{##2}}%
- \def\dododefinepalet##1%
- {\dodododefinepalet[##1]}%
- \processcommalist[#2]\dododefinepalet}
- {\doifdefined{\??pa#2}
- {\expanded{\dodefinepalet[#1][\csname\??pa\??pa#2\endcsname]}}}}
-
-\ifx\dodefinepaletcolor\undefined
- \let\dodefinepaletcolor\gobblethreearguments
-\fi
-
-\let\paletsize\!!zerocount
-
-\def\getpaletsize[#1]%
- {\getcommacommandsize[\csname\??pa\??pa#1\endcsname]%
- \edef\paletsize{\number\commalistsize}}
-
-%D Instead of refering to colors, one can also directly specify
-%D a color:
-%D
-%D \starttyping
-%D \definepalet[test][xx=green]
-%D \definepalet[test][xx={y=.4}]
-%D \stoptyping
-
-%D \macros
-%D {setuppalet}
-%D
-%D Colors are taken from the current palet, if defined.
-%D Setting the current palet is done by:
-%D
-%D \showsetup{setuppalet}
-
-\let\currentpalet\empty
-
-\def\setuppalet
- {\dosingleempty\dosetuppalet}
-
-\def\dosetuppalet[#1]%
- {\edef\currentpalet{#1}%
- \ifx\currentpalet\empty
- % seems to be a reset
- \else\ifcsname\??pa\currentpalet\endcsname
- \edef\currentpalet{#1:}%
- \else
- \showmessage\m!colors7\currentpalet
- \let\currentpalet\empty
- \fi\fi}
-
-%D \macros
-%D {showpalet}
-%D
-%D The previous visualization was typeset with:
-%D
-%D \typebuffer[palet]
-%D
-%D This commands is defined as:
-%D
-%D \showsetup{showpalet}
-
-\fetchruntimecommand \showpalet {\f!colorprefix\s!run}
-
-%D \macros
-%D {showcolorcomponents}
-%D
-%D \starttyping
-%D \showcolorcomponents[color-1,color-2]
-%D \stoptyping
-
-\fetchruntimecommand \showcolorcomponents {\f!colorprefix\s!run}
-
-%D \macros
-%D {definecolorgroup}
-%D
-%D The naming of the colors in this palet suggests some
-%D ordening, which in turn is suported by color grouping.
-%D
-%D \starttyping
-%D \definecolorgroup
-%D [red]
-%D [1.00:0.90:0.90,
-%D 1.00:0.80:0.80,
-%D 1.00:0.70:0.70,
-%D 1.00:0.55:0.55,
-%D 1.00:0.40:0.40,
-%D 1.00:0.25:0.25,
-%D 1.00:0.15:0.15,
-%D 0.90:0.00:0.00]
-%D \stoptyping
-%D
-%D In such a color group colors are numbered from~$1$ to~$n$.
-%D
-%D \showsetup{definecolorgroup}
-%D
-%D This kind of specification is not only more compact than
-%D defining each color separate, it also loads faster and takes
-%D less bytes.
-
-\def\definecolorgroup
- {\dotripleempty\dodefinecolorgroup}
-
-\def\dododefinecolorgroupgray [#1][#2:#3]{\definecolor [#1:\the\colorcount][s=#2]}
-\def\dododefinecolorgrouprgb [#1][#2:#3:#4:#5]{\definecolor [#1:\the\colorcount][r=#2,g=#3,b=#4]}
-\def\dododefinecolorgroupcmyk[#1][#2:#3:#4:#5:#6]{\definecolor [#1:\the\colorcount][c=#2,m=#3=,y=#4,k=#5]}
-\def\dododefinecolorgroupspot [#1][#2:#3:#4]{\definespotcolor[#1:\the\colorcount][#2][p=#3]}
-
-\def\dododefinecolorgroup#1#2%
- {\advance\colorcount\plusone
- \getvalue{dododefinecolorgroup\currentcolorspace}[#1][#2:0:0:0:0]}
-
-\def\dodefinecolorgroup[#1][#2][#3]% obsolete, just use palets
- {\ifthirdargument
- \doifelsenothing{#2}{\let\currentcolorspace\v!rgb}{\def\currentcolorspace{#2}}%
- \colorcount\zerocount
- \processcommalist[#3]{\dododefinecolorgroup{#1}}%
- \else
- \doifinstringelse{:}{#2}
- {\definecolorgroup[#1][\v!rgb][#2]}
- {\doloop
- {\doifdefinedelse{\??cr#2:\recurselevel}
- {\setevalue{\??cr#1:\recurselevel}{\csname\??cr#2:\recurselevel\endcsname}}
- {\exitloop}}}%
- \fi}
-
-%D \macros
-%D {showcolorgroup}
-%D
-%D We can show the group by:
-%D
-%D \startbuffer
-%D \showcolorgroup [blue] [horizontal,name,number,value]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D or in color:
-%D
-%D \startlinecorrection
-%D \getbuffer
-%D \stoplinecorrection
-%D
-%D which uses:
-%D
-%D \showsetup{showcolorgroup}
-
-\fetchruntimecommand \showcolorgroup {\f!colorprefix\s!run}
-
-%D There are ten predefined color groups, like
-%D \color[green]{\em groen}, \color[red]{\em rood},
-%D \color[blue]{\em blauw}, \color[cyan]{\em cyaan},
-%D \color[magenta]{\em magenta} and \color[yellow]{\em geel}.
-%D
-%D \startlinecorrection
-%D \hbox to \hsize
-%D {\hss
-%D \showcolorgroup [red] [vertical,name,number]\hss
-%D \showcolorgroup [green] [vertical,name]\hss
-%D \showcolorgroup [blue] [vertical,name]\hss
-%D \showcolorgroup [cyan] [vertical,name]\hss
-%D \showcolorgroup [magenta][vertical,name]\hss
-%D \showcolorgroup [yellow] [vertical,name]\hss}
-%D \stoplinecorrection
-%D
-%D These groups are used to define palets {\em alfa} upto {\em
-%D zeta}. As long as we don't use colors from the same row, we
-%D get ourselves distinctive palets. By activating such a palet
-%D one gains access to its members {\em top} to {\em charm} (of
-%D course one should use more suitable names than these).
-%D
-%D \startlinecorrection
-%D \hbox to \hsize
-%D {\showpalet [alfa] [vertical,name,number]\hss
-%D \showpalet [beta] [vertical,name]\hss
-%D \showpalet [gamma] [vertical,name]\hss
-%D \showpalet [delta] [vertical,name]\hss
-%D \showpalet [epsilon] [vertical,name]\hss
-%D \showpalet [zeta] [vertical,name]}
-%D \stoplinecorrection
-%D
-%D By using the keyword \type {value} the individual color
-%D components are shown too. When printed in color, these
-%D showcases show both the colors and the gray value.
-
-%D \macros
-%D {comparepalet}
-%D
-%D There are some more testing macros available:
-%D
-%D \startbuffer
-%D \comparepalet [alfa]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D shows the palet colors against a background:
-%D
-%D \startlinecorrection
-%D \getbuffer
-%D \stoplinecorrection
-%D
-%D The formal definition is:
-%D
-%D \showsetup{comparepalet}
-
-\fetchruntimecommand \comparepalet {\f!colorprefix\s!run}
-
-%D \macros
-%D {comparecolorgroup}
-%D
-%D The similar command:
-%D
-%D \startbuffer
-%D \comparecolorgroup [blue]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D shows color groups:
-%D
-%D \startlinecorrection
-%D \getbuffer
-%D \stoplinecorrection
-%D
-%D this commands are defined as:
-%D
-%D \showsetup{comparecolorgroup}
-
-\fetchruntimecommand \comparecolorgroup {\f!colorprefix\s!run}
-
-%D \macros
-%D {showcolor}
-%D
-%D But let's not forget that we also have the more traditional
-%D non||related colors. These show up after:
-%D
-%D \starttyping
-%D \showcolor [name]
-%D \stoptyping
-%D
-%D Where \type{name} for instance can be \type{rgb}.
-%D
-%D \showsetup{showcolor}
-
-\fetchruntimecommand \showcolor {\f!colorprefix\s!run}
-
-%D It would make sense to put the following code in \type
-%D {colo-mps}, but it it rather low level.
-
-%D \macros
-%D {negatecolorcomponent,negatedcolorcomponent}
-%D
-%D These speak for themselves. See \type {colo-ext} for usage.
-
-\def\negatecolorcomponent#1% #1 = \macro
- {\scratchdimen\onepoint\advance\scratchdimen-#1\onepoint
- \ifdim\scratchdimen<\zeropoint\scratchdimen\zeropoint\fi
- \edef#1{\withoutpt\the\scratchdimen}}
-
-\let\negatedcolorcomponent\firstofoneargument
-
-\def\negatedcolorcomponent#1%
- {\ifdim\dimexpr\onepoint-#1\onepoint\relax<\zeropoint
- \!!zerocount
- \else
- \expandafter\withoutpt\the\dimexpr\onepoint-#1\onepoint\relax
- \fi}
-
-\def\negatecolorcomponent#1% #1 = \macro
- {\edef#1{\negatedcolorcomponent{#1}}}
-
-%D \macros
-%D {ifMPgraphics, ifMPcmykcolors, MPcolor}
-%D
-%D A very special macro is \type{\MPcolor}. This one can be
-%D used to pass a \CONTEXT\ color to \METAPOST.
-%D
-%D \starttyping
-%D \MPcolor{my own red}
-%D \stoptyping
-%D
-%D This macro returns a \METAPOST\ triplet \type{(R,G,B)}.
-%D Unless \CMYK\ color support is turned on with \type
-%D {MPcmyk}, only \cap{RGB} colors and gray scales are
-%D supported.
-
-\newif\ifMPcmykcolors % \MPcmykcolorsfalse
-\newif\ifMPspotcolors % \MPspotcolorsfalse
-
-\ifx\MPcolor\undefined
- \def\MPcolor#1{(0,0,0)}
-\fi
-
-%D \macros
-%D {PDFcolor,FDFcolor}
-%D
-%D Similar alternatives are avaliable for \PDF:
-
-%D For the moment we keep the next downward compatibility
-%D switch, i.e.\ expanded colors. However, predefined colors
-%D and palets are no longer expanded (which is what I wanted
-%D in the first place).
-%D
-%D Well, in case we want to do color separation and use CMYK
-%D colors only, this is dangerous since unwanted remapping may
-%D take place. Especially when we redefine already defined
-%D colors in another color space (e.g. darkgreen is
-%D predefined in RGB color space, so a redefinition in CMYK
-%D coordinates before RGB mode is disabled, would give
-%D unexpected results due to the already frozen color spec.)
-%D
-%D So, from now on, colors are not frozen any more!
-
-\chardef\currentcolorchannel=0
-
-\newif\iffilterspotcolor \filterspotcolorfalse
-\newif\ifdoingspotcolor \doingspotcolorfalse
-
-\def\registercolorchannel#1%
- {\ifdoingspotcolor \else
- \global\expandafter\chardef\csname\??cs#1\endcsname\zerocount
- \fi}
-
-\newif\ifhidesplitcolor \hidesplitcolortrue
-
-%D The next macro is for instance used in figure splitting:
-
-\def\doifseparatingcolorselse
- {\iffilterspotcolor
- \@EA\firstoftwoarguments
- \else\ifcase\currentcolorchannel
- \@EAEAEA\secondoftwoarguments
- \else
- \@EAEAEA\firstoftwoarguments
- \fi\fi}
-
-\def\doifcolorchannelelse#1%
- {\doifseparatingcolorselse
- {\doifelsenothing{#1}
- \secondoftwoarguments
- {\doifelse{#1}\@@clsplit
- \firstoftwoarguments
- \secondoftwoarguments}}
- \secondoftwoarguments}
-
-\def\resetcolorseparation
- {\filterspotcolorfalse
- \chardef\currentcolorchannel\zerocount}
-
-%D These can be used in selecting specific files (like
-%D figuredatabases).
-
-% we already have:
-%
-% \def\colorsplitsuffix{\ifcase\currentcolorchannel\else-\@@clsplitsen\fi}
-% \def\colorsplitprefix{\ifcase\currentcolorchannel\else\@@clsplitsen-\fi}
-
-\def\colorchannelprefix{\doifseparatingcolorselse\@@clsplit\empty-}
-\def\colorchannelsuffix{-\doifseparatingcolorselse\@@clsplit\empty}
-
-%D We now define the low level macros:
-
-\chardef\colorversion=1
-
-%D Color support is not present in \TEX. Colorful output can
-%D however be accomplished by using specials. This also means
-%D that this support depends on the \DVI\ driver used. At the
-%D moment this module was written, still no decent standard on
-%D color specials has been agreed upon. We therefore decided to
-%D implement a mechanism that is as independant as possible of
-%D drivers.
-%D
-%D Color support shares with fonts that is must be implemented
-%D in a way that permits processing of individual \DVI\ pages.
-%D Furthermore it should honour grouping. The first condition
-%D forces us to use a scheme that keeps track of colors at
-%D page boundaries. This can be done by means of \TEX's
-%D marking mechanism (\type{\mark}).
-%D
-%D When building pages, \TEX\ periodically looks at the
-%D accumulated typeset contents and breaks the page when
-%D suitable. At that moment, control is transfered to the
-%D output routine. This routine takes care of building the
-%D pagebody and for instance adds headers and footers. The page
-%D can be broken in the middle of some colored text, but
-%D headers and footers are often in black upon white or
-%D background. If colors are applied there, they definitely
-%D are used local, which means that they don't cross page
-%D borders.
-%D
-%D Boxes are handled as a whole, which means that when we
-%D apply colors inside a box, those colors don't cross page
-%D boundaries, unless of course boxes are split or unboxed.
-%D Especially in interactive texts, colors are often used in
-%D such a local way: in boxes (buttons and navigational tools)
-%D or in the pagebody (backgrounds).
-%D
-%D So we can distinguish local colors, that don't cross
-%D pages from global colors, of which we can end many pages
-%D later. The color macros will treat both types in a different
-%D way, thus gaining some speed.
-%D
-%D This module also deals with gray scales. Because similar
-%D colors can end up in the same gray scale when printed in
-%D black and white, we also implement a palet system that deals
-%D with these matters. Because of fundamental differences
-%D between color and gray scale printing, in \CONTEXT\ we also
-%D differ between these. For historic reasons |<|we first
-%D implemented gray scales using patterns of tiny periods|>|
-%D and therefore called them {\em rasters}. So don't be
-%D surprised if this term shows up.
-
-%D \macros
-%D {definecolor}
-%D
-%D We will enable users to specify colors in \cap{RGB} and
-%D \cap{CMYK} color spaces or gray scales using
-%D
-%D \showsetup{definecolor}
-%D
-%D For example:
-%D
-%D \starttyping
-%D \definecolor [SomeKindOfRed] [r=.8,g=.05,b=.05]
-%D \stoptyping
-%D
-%D Such color specifications are saved in a macro in the
-%D following way:
-%D
-%D \starttyping
-%D \setvalue{\??cr name}{R:r:g:b}
-%D \setvalue{\??cr name}{C:c:m:y:k}
-%D \setvalue{\??cr name}{S:s}
-%D \stoptyping
-%D
-%D Gray scales are specified with the \type{s} parameter,
-%D where the \type {s} is derived from {\em screen}.
-%D
-%D Starting with \PDF\ 1.4 (2001) \CONTEXT\ supports
-%D transparent colors. The transparency factor is represented
-%D by a \type {t} and the transparency method by an \type {a}
-%D (alternative). Later we will implement more control
-%D (probably by symbolic methods. So, currently the data is
-%D stored as follows:
-%D
-%D \starttyping
-%D \setvalue{\??cr name}{R:r:g:b:a:t}
-%D \setvalue{\??cr name}{C:c:m:y:k:a:t}
-%D \setvalue{\??cr name}{S:s:a:t}
-%D \stoptyping
-
-% r g b : rbg
-% c m y k : cmyk
-% s : gray
-% p n d f : spot
-% h : hexadecimal
-% t a : transparency
-% e : equivalent (spotcolors)
-
-\def\@@cl@@z{0}
-\def\@@cl@@o{1}
-
-\def\@@resetcolorparameters
- {\let\@@cl@@r\@@cl@@z \let\@@cl@@g\@@cl@@z \let\@@cl@@b\@@cl@@z
- \let\@@cl@@c\@@cl@@z \let\@@cl@@m\@@cl@@z \let\@@cl@@y\@@cl@@z \let\@@cl@@k\@@cl@@z
- \let\@@cl@@s\@@cl@@z
- \let\@@cl@@p\@@cl@@o \let\@@cl@@n\empty \let\@@cl@@d\empty \let\@@cl@@f\@@cl@@o
- \let\@@cl@@h\empty
- \let\@@cl@@e\empty
- \let\@@cl@@t\@@cl@@z \let\@@cl@@a\@@cl@@z}
-
-\@@resetcolorparameters
-
-\def\@@cl@@A{\@@cl@@a} % a hook for symbolic conversion, see below
-
-%D Handling a few nested \type{\cs}'s is no problem (\type
-%D {\@EA\@EAEAEA\@EA}) but we need a full expansion, so I
-%D tried one of the fully expandable primitives using a sort
-%D of delimited thing. I tried \type {\number} first, but this
-%D does not work, but \type {\romannumeral} does. Actually,
-%D \type{\romannumeral0} returns nothing, so it's a perfect
-%D candidate for this kind of hackery. This reminds me that I
-%D have to look into David Kastrup's Euro\TeX\ 2002 article
-%D because he is using \type {\romannumeral} for loops
-%D (repetitive \quote {m} stuff).
-
-% \def\x{\y}\def\y{\z}\def\z{0:1:1:1}
-%
-% \def\bla #1:#2:#3\end{}
-%
-% \@EA\bla\romannumeral\x\end
-
-\def\colorXpattern{0S:\@@cl@@z:\@@cl@@z:\@@cl@@z}
-\def\colorZpattern{0S:\@@cl@@z:\@@cl@@A:\@@cl@@t}
-\def\colorSpattern{0S:\@@cl@@s:\@@cl@@A:\@@cl@@t}
-\def\colorCpattern{0C:\@@cl@@c:\@@cl@@m:\@@cl@@y:\@@cl@@k:\@@cl@@A:\@@cl@@t}
-\def\colorRpattern{0R:\@@cl@@r:\@@cl@@g:\@@cl@@b:\@@cl@@A:\@@cl@@t}
-
-%def\colorPpattern{0P:\@@cl@@n:\@@cl@@p:\@@cl@@A:\@@cl@@t}
-
-\def\colorPpattern{0P:\@@cl@@n:\@@cl@@f:\@@cl@@d:\@@cl@@p:\@@cl@@A:\@@cl@@t}
-
-%D The extra 0 catches empty colors specs (needed for the
-%D \type {\MPcolor} and \type {\PDFcolor} conversion (\type
-%D {\@@cr} equals \type {\relax}!).
-
-\def\handlecolorwith#1{\@EA#1\romannumeral0}
-
-%D Next comes the main definition macro.
-
-\def\dodefinecolor {\dododefinecolor\relax \setvalue \setevalue1}
-\def\dodefineglobalcolor{\dododefinecolor\doglobal\setgvalue\setxvalue1}
-\def\dodefinenamedcolor {\dododefinecolor\doglobal\setvalue \setevalue0}
-
-\let\colorlist\empty % not really used, only for colo-run
-\setfalse\collectcolorsinlist
-\def\collectcolorinlist#1{\doglobal\addtocommalist{#1}\colorlist}
-
-\def\dododefinecolor#1#2#3#4[#5][#6]% #2==set(g)value #3==set[e|x]value
- {\ifconditional\collectcolorsinlist\collectcolorinlist{#5}\fi
- \doifassignmentelse{#6}
- {\@@resetcolorparameters
- \getparameters[\??cl @@][#6]%
- \ifx\@@cl@@h\empty
- \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{{[#6]},#5}%
- #3{\??cr#5}{\colorZpattern}}
- {#3{\??cr#5}{\colorSpattern}}}
- {#3{\??cr#5}{\colorCpattern}}}
- {#3{\??cr#5}{\colorRpattern}}%
- \else
- \setxvalue{\??cr#5}{\colorHpattern}%
- \fi
- % new: e=external spot color name
- \ifx\@@cl@@e\empty \else
- \doregisterspotcolorname{#5}\@@cl@@e
- \fi}
- {\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%
- {\csname\??cr\currentpalet#1\endcsname}
-
-%D Hex color support is not enabled by default. You need to say \type
-%D {\setupcolor [hex]} to get this working.
-
-\ifx\colorHpattern\undefined \let\colorHpattern\colorZpattern \fi
-
-%D New and experimental.
-
-\def\dodefinespotcolor[#1][#2][#3]% todo: always global
- {\doifnot{#1}{#2}
- {\@@resetcolorparameters
- \ifconditional\collectcolorsinlist\collectcolorinlist{#1}\fi
- \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
-
-\def\registerusedspotcolors
- {\ifx\allspotcolors\empty \else
- \bgroup
- \let\usedspotcolors\empty
- \def\docommand##1%
- {\doifdefined{\??cs##1}{\addtocommalist{##1}\usedspotcolors}}%
- \processcommacommand[\allspotcolors]\docommand
- \savecurrentvalue\usedspotcolors\usedspotcolors
- \egroup
- \fi}
-
-\def\registerusedcolorchannels
- {\bgroup
- \doifdefinedelse{\??cs c}
- {\def\usedcolorchannels{c,m,y,k}}%
- {\let\usedcolorchannels\empty}%
- \doifdefined{\??cs r}
- {\addtocommalist{r,g,b}\usedcolorchannels}%
- \doifdefined{\??cs s}
- {\ExpandBothAfter\doifnotinset{k}\usedcolorchannels
- {\addtocommalist{s}\usedcolorchannels}}%
- \savecurrentvalue\usedcolorchannels\usedcolorchannels
- \egroup}
-
-\prependtoks
- \registerusedspotcolors
- \registerusedcolorchannels
-\to \everylastshipout
-
-\def\registerusedspotcolor#1%
- {\global\@EA\chardef\csname\??cs#1\endcsname\zerocount}
-
-%D On top of spotcolors, we define multitone colors. You'd better know
-%D what you're doing because invalid definitions will lead to invalid
-%D documents (i.e.\ resources).
-
-% \definecolor [darkblue] [c=.5,m=.5]
-% \definecolor [darkyellow] [y=.5]
-%
-% \definemultitonecolor [whatever] [darkblue=.5,darkyellow=.5] [c=.25,m=.25,y=.25] [a=1,t=.5]
-% \definemultitonecolor [another] [darkblue=.5,darkyellow=.5] [c=.25,m=.25,y=.25]
-
-\def\dodefinemultitonecolor[#1][#2][#3][#4]%
- {\let\@@cl@@cl@@D\empty % n's
- \let\@@cl@@cl@@P\empty % p's
- \let\@@cl@@cl@@N\empty % name
- \scratchcounter\zerocount
- \processcommacommand[#2]\dododefinemultitonecolor
- \bgroup
- \lccode`\.=`\_%
- \lccode`\,=`\_%
- \lccode`\:=`\_%
- \lccode`\;=`\_%
- \lccode`\+=`\_%
- \lccode`\-=`\_%
- \lccode`\*=`\_%
- \lccode`\/=`\_%
-% \lccode`\_=`\_%
- % not needed, other attribute in driver:
- %
- % \@@resetcolorparameters
- % \getparameters[#4]%
- % \ifx\@@cl@@t\@@cl@@z\else
- % \edef\@@cl@@cl@@N{\@@cl@@cl@@N_\@@cl@@t_\@@cl@@a}%
- % \fi
- \lowercase\@EA{\@EA\xdef\@EA\@@cleancolor\@EA{\@@cl@@cl@@N}}%
- \egroup
- \setxvalue{\??cl\@@cleancolor\s!check}{\noexpand\docheckmultitonecolor{\@@cl@@cl@@D}}%
- \expanded{\defineglobalcolor[\@@cleancolor][#3,#4]}%
- \expanded{\definespotcolor[#1][\@@cleancolor][#4,f=\the\scratchcounter,p={\@@cl@@cl@@P},d={\@@cl@@cl@@D}]}}
-
-\def\docheckmultitonecolor#1%
- {\flushatshipout
- {\let\checkmultitonecolor\gobbleoneargument
- \def\docommand##1{\hbox{\definecolor[\s!dummy-100][##1][p=1]\color[\s!dummy-100]}}%
- \processcommalist[#1]\docommand}}
-
-\def\checkmultitonecolor#1%
- {\csname\??cl#1\s!check\endcsname\letgvalue{\??cl#1\s!check}\relax}
-
-\def\dodefinespotcolor[#1][#2][#3]% todo: always global (REDEFINED)
- {\doifnot{#1}{#2}
- {\@@resetcolorparameters
- \ifconditional\collectcolorsinlist\collectcolorinlist{#1}\fi
- \edef\@@cl@@n{#2}%
- \getparameters[\??cl @@][#3]%
- \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
-
-\def\dododefinemultitonecolor#1%
- {\advance\scratchcounter\plusone
- \splitstring#1\at=\to\!!stringa\and\!!stringb
- \ifx\@@cl@@cl@@D\empty
- \let\@@cl@@cl@@D\!!stringa
- \let\@@cl@@cl@@P\!!stringb
- \normalizecolor\!!stringb
- \edef\@@cl@@cl@@N{\!!stringa_\!!stringb}%
- \else
- \edef\@@cl@@cl@@D{\@@cl@@cl@@D,\!!stringa}%
- \edef\@@cl@@cl@@P{\@@cl@@cl@@P,\!!stringb}%
- \normalizecolor\!!stringb
- \edef\@@cl@@cl@@N{\@@cl@@cl@@N_\!!stringa_\!!stringb}%
- \fi}
-
-% \def\dododefinemultitonecolor#1% a/b safe
-% {\advance\scratchcounter\plusone
-% \splitstring#1\at=\to\@@cl@@one\and\@@cl@@two
-% \ifx\@@cl@@cl@@D\empty
-% \let\@@cl@@cl@@D\@@cl@@one
-% \let\@@cl@@cl@@P\@@cl@@two
-% \normalizecolor\@@cl@@two
-% \edef\@@cl@@cl@@N{\@@cl@@one_\@@cl@@two}%
-% \else
-% \edef\@@cl@@cl@@D{\@@cl@@cl@@D,\@@cl@@one}%
-% \edef\@@cl@@cl@@P{\@@cl@@cl@@P,\@@cl@@two}%
-% \normalizecolor\@@cl@@two
-% \edef\@@cl@@cl@@N{\@@cl@@cl@@N_\@@cl@@one_\@@cl@@two}%
-% \fi}
-
-%D The names of colors are stored in a comma separated list
-%D only for the purpose of showing them with \type {\showcolor}.
-%D
-%D \startbuffer
-%D \definecolor [SomeKindOfRed] [r=.8,g=.05,b=.05]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D \getbuffer
-%D
-%D This color shows up as \color [SomeKindOfRed] {some kind
-%D of red}.
-%D
-%D \starttyping
-%D \setupcolors[state=start]
-%D
-%D \definecolor[mygreen][green]
-%D \definecolor[green][g=.5]
-%D
-%D \startcolor[mygreen]test\stopcolor
-%D
-%D \setupcolors[expansion=no]
-%D
-%D \definecolor[mygreen][green]
-%D \definecolor[green][g=.5]
-%D
-%D \startcolor[mygreen]test\stopcolor
-%D \stoptyping
-
-%D \macros
-%D {startcolormode,stopcolormode,permitcolormode}
-%D
-%D We use \type{\stopcolormode} to reset the color in
-%D whatever color space and do so by calling the corresponding
-%D special. Both commands can be used for fast color
-%D switching, like in colored verbatim,
-
-\newif\ifpermitcolormode \permitcolormodetrue
-
-\def\dowithcolor#1#2% #1=\action #2=color
- {\ifincolor\ifpermitcolormode
- \ifcsname\??cr\currentpalet#2\endcsname
- \handlecolorwith#1\csname\??cr\currentpalet#2\endcsname\od
- \else\ifcsname\??cr#2\endcsname
- \handlecolorwith#1\csname\??cr#2\endcsname\od
- \fi\fi
- \fi\fi}
-
-\def\startcolormode % includes \ifincolor\ifpermitcolormode
- {%\dostoptransparency % needed for: {test \trans test \notrans test}
- \conditionalstoptransparency
- \dowithcolor\execcolorRCSP}
-
-\def\stopcolormode
- {\ifincolor\ifpermitcolormode
- \supportedstoptransparency
- \dostopcolormode
- \fi\fi}
-
-\def\restorecolormode
- {\ifincolor\ifpermitcolormode
- \supportedstoptransparency
- \dostopcolormode
- \ifx\maintextcolor\empty \else
- \startcolormode\maintextcolor
- \fi
- \fi\fi}
-
-%D Color modes are entered using the next set of commands.
-%D The \type{\stop} alternatives are implemented in a way
-%D that permits non||grouped use.
-%D
-%D The, for this module redundant, check if we are in color
-%D mode is needed when we use these macros in other modules.
-
-\def\execcolorRCSP#1:%
- {\csname execcolor#1\endcsname}
-
-\def\execcolorR
- {\iffilterspotcolor
- \@EA\noexeccolorR
- \else
- \@EA\doexeccolorR
- \fi}
-
-\def\execcolorC
- {\iffilterspotcolor
- \@EA\noexeccolorC
- \else
- \@EA\doexeccolorC
- \fi}
-
-\def\execcolorS
- {\iffilterspotcolor
- \@EA\noexeccolorS
- \else
- \@EA\doexeccolorS
- \fi}
-
-\def\execcolorP
- {\iffilterspotcolor
- \@EA\doexeccolorPP
- \else\ifcase\currentcolorchannel
- \@EAEAEA\doexeccolorP
- \else
- \@EAEAEA\noexeccolorP
- \fi\fi}
-
-\def\doexeccolorR#1:#2:#3:%
- {\edef\@@cl@@r{#1}\edef\@@cl@@g{#2}\edef\@@cl@@b{#3}%
- \ifpreferGRAY\ifx\@@cl@@r\@@cr@@g\ifx\@@cl@@r\@@cl@@b
- \GRAYpreferedtrue
- \fi\fi\fi
- \ifincolor\else\RGBsupportedfalse\CMYKsupportedfalse\fi
- \ifGRAYprefered
- \registercolorchannel\c!s
- \let\@@cl@@s\@@cl@@r
- \normalizeGRAY
- \doexeccolorgray
- \else\ifRGBsupported
- \registercolorchannel\c!r
- \normalizeRGB
- \doexeccolorrgb
- \else\ifCMYKsupported
- \registercolorchannel\c!c
- \convertRGBtoCMYK\@@cl@@r\@@cl@@g\@@cl@@b
- \normalizeCMYK
- \doexeccolorcmyk
- \else
- \registercolorchannel\c!s
- \convertRGBtoGRAY\@@cl@@r\@@cl@@g\@@cl@@b
- \normalizeGRAY
- \doexeccolorgray
- \fi\fi\fi
- \exectransparency}
-
-\def\doexeccolorC#1:#2:#3:#4:%
- {\edef\@@cl@@c{#1}\edef\@@cl@@m{#2}\edef\@@cl@@y{#3}\edef\@@cl@@k{#4}%
- \ifpreferGRAY\ifx\@@cl@@k\@@cl@@z\ifx\@@cl@@c\@@cr@@m\ifx\@@cl@@c\@@cl@@y
- \GRAYpreferedtrue
- \fi\fi\fi\fi
- \ifincolor\else\RGBsupportedfalse\CMYKsupportedfalse\fi
- \ifGRAYprefered
- \registercolorchannel\c!s
- \let\@@cl@@s\@@cl@@c
- \normalizeGRAY
- \doexeccolorgray
- \else\ifCMYKsupported
- \registercolorchannel\c!c
- \ifreduceCMYK
- \convertCMYKtoCMY\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k
- \fi
- \normalizeCMYK
- \doexeccolorcmyk
- \else\ifRGBsupported
- \registercolorchannel\c!r
- \convertCMYKtoRGB\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k
- \normalizeRGB
- \doexeccolorrgb
- \else
- \registercolorchannel\c!s
- \convertCMYKtoGRAY\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k
- \normalizeGRAY
- \doexeccolorgray
- \fi\fi\fi
- \exectransparency}
-
-\def\doexeccolorS#1:%
- {\edef\@@cl@@s{#1}%
- \registercolorchannel\c!s
- \normalizeGRAY
- \doexeccolorgray
- \exectransparency}
-
-% \def\doexeccolorP#1:#2:%
-% {\edef\@@cl@@n{#1}%
-% \edef\@@cl@@p{#2}%
-% \registerusedspotcolor\@@cl@@n
-% \ifSPOTsupported
-% \dowithcolor\registerspotcolor\@@cl@@n
-% \dostartspotcolormode\@@cl@@n\@@cl@@p
-% \else
-% \doingspotcolortrue
-% \let\spotcolorfactor\@@cl@@p
-% \factorizecolortrue % using counter and array
-% \dowithcolor\execcolorRCSP\@@cl@@n
-% \factorizecolorfalse
-% \let\spotcolorfactor\@@cl@@o
-% \doingspotcolorfalse
-% \fi
-% \exectransparency}
-
-\def\doexeccolorP#1:#2:#3:#4:%
- {\edef\@@cl@@n{#1}% name
- \edef\@@cl@@f{#2}% fractions
- \edef\@@cl@@d{#3}% definitions
- \edef\@@cl@@p{#4}%
- \ifx\@@cl@@d\empty
- \let\@@cl@@d\@@cl@@n
- \fi
- \registerusedspotcolor\@@cl@@n
- \ifSPOTsupported
- \checkmultitonecolor\@@cl@@n
- \dowithcolor\registerspotcolor\@@cl@@n
- \dostartspotcolormode\@@cl@@n\@@cl@@p
- \else
- \doingspotcolortrue
- \normalizespotcolor\@@cl@@p
- \let\spotcolorfactor\@@cl@@p
- \factorizecolortrue % using counter and array
- \dowithcolor\execcolorRCSP\@@cl@@n
- \factorizecolorfalse
- \let\spotcolorfactor\@@cl@@o
- \doingspotcolorfalse
- \fi
- \exectransparency}
-
-\def\doexeccolorPindex#1:#2:#3:#4:%
- {\edef\@@cl@@n{#1}%
- \edef\@@cl@@f{#2}%
- \edef\@@cl@@d{#3}%
- \edef\@@cl@@p{#4}%
- \ifx\@@cl@@d\empty
- \let\@@cl@@d\@@cl@@n
- \fi
- \ifSPOTsupported
- \checkmultitonecolor\@@cl@@n
- \dowithcolor\registerindexcolor\@@cl@@n
- \fi
- \noexectransparency}
-
-\def\doexeccolorPP#1:#2:%
- {\edef\@@cl@@n{#1}%
- \edef\@@cl@@p{#2}%
- \registerusedspotcolor\@@cl@@n
- \ifx\@@cl@@n\currentspotcolor
- \normalizeSPOT
- \dostartgraycolormode\@@cl@@p % was spotcolormode
- \else
- \dovidecolor\@@cl@@p\@@cl@@o
- \fi
- \exectransparency}
-
-\def\doexeccolorrgb
- {\ifcase\currentcolorchannel
- \dostartrgbcolormode\@@cl@@r\@@cl@@g\@@cl@@b
- \or \or \or \or
- \or \dostartgraycolormode\@@cl@@r
- \or \dostartgraycolormode\@@cl@@g
- \or \dostartgraycolormode\@@cl@@b
- \fi}
-
-\def\doexeccolorcmyk
- {\ifcase\currentcolorchannel
- \dostartcmykcolormode\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k
- \or \negatecolorcomponent\@@cl@@c\dostartgraycolormode\@@cl@@c
- \or \negatecolorcomponent\@@cl@@m\dostartgraycolormode\@@cl@@m
- \or \negatecolorcomponent\@@cl@@y\dostartgraycolormode\@@cl@@y
- \or \negatecolorcomponent\@@cl@@k\dostartgraycolormode\@@cl@@k
- \fi}
-
-\def\doexeccolorgray
- {\ifcase\currentcolorchannel
- \dostartgraycolormode\@@cl@@s
- \or \or \or
- \or \dostartgraycolormode\@@cl@@s
- \or \or \or
- \or \dostartgraycolormode\@@cl@@s
- \fi}
-
-%D When filtering colors, we need to either erase
-%D the background, or ignore the foreground.
-
-% \newif\ifhidesplitcolor \hidesplitcolortrue
-%
-% \def\noexeccolor#1\od
-% {\dostartgraycolormode\@@cl@@o}
-%
-% \let\noexeccolorS\noexeccolor
-% \let\noexeccolorP\noexeccolor
-
-%D Well, here comes some real trickery. When we have the 100\%
-%D spot color or black color, we don't want to erase the
-%D background. So, instead we hide the content by giving it
-%D zero transparency.
-
-% todo : #1#2#3 met #2 > of < and #3 een threshold
-
-\def\dohidecolor#1#2%
- {\ifhidesplitcolor
- \ifx#1#2%
- \dostartgraycolormode\@@cl@@o
- \else
- \doregisternonecolor
- \dostartnonecolormode
- \fi
- \else
- \dostartgraycolormode\@@cl@@o
- \fi}
-
-\def\dovidecolor#1#2%
- {\ifhidesplitcolor
- \ifx#1#2%
- \doregisternonecolor
- \dostartnonecolormode
- \else
- \dostartgraycolormode\@@cl@@o
- \fi
- \else
- \dostartgraycolormode\@@cl@@o
- \fi}
-
-% \def\fullytransparentcolor % fails on floats
-% {\dostartgraycolormode\@@cl@@o % better than z
-% %\global\@EA\chardef\csname\@@currenttransparent\endcsname\plusone
-% %\global\intransparenttrue
-% \dostarttransparency10}
-
-\def\noexeccolorR#1:#2:#3:#4\od
- {\edef\@@cl@@r{#1}\edef\@@cl@@g{#2}\edef\@@cl@@b{#3}%
- \dohidecolor\@@cl@@s\@@cl@@o}
-
-\def\noexeccolorC#1:#2:#3:#4:#5\od
- {\edef\@@cl@@c{#1}\edef\@@cl@@m{#2}\edef\@@cl@@y{#3}\edef\@@cl@@k{#4}%
- \dohidecolor\@@cl@@s\@@cl@@o}
-
-\def\noexeccolorS#1:#2\od
- {\edef\@@cl@@s{#1}%
- \dohidecolor\@@cl@@s\@@cl@@o}
-
-\def\noexeccolorP#1:#2:#3:#4:#5\od
- {\edef\@@cl@@p{#4}%
- \dohidecolor\@@cl@@p\@@cl@@z}
-
-%D For the sake of postprocessing (i.e.\ color separation)
-%D we can normalize colors, which comes down to giving equal
-%D values an equal accuracy and format. This feature is
-%D turned off by default due to a speed penalty. This macro
-%D also handles spot color percentages.
-
-\newif\iffactorizecolor
-\newif\ifnormalizecolor
-
-\def\spotcolorfactor{1}
-
-% \def\normalizecolor#1%
-% {\colordimen#1\thousandpoint
-% \colordimen\spotcolorfactor\colordimen
-% \colorcount\colordimen
-% \advance\colorcount \medcard
-% \divide\colorcount \maxcard
-% \edef#1{\realcolorvalue\colorcount}}
-
-\def\normalizecolor#1%
- {\colorcount\numexpr(\dimexpr\spotcolorfactor\dimexpr#1\thousandpoint\relax\relax+\medcard)/\maxcard\relax
- \edef#1{\realcolorvalue\colorcount}}
-
-% \def\normalizespotcolor#1%
-% {\colordimen-#1\thousandpoint
-% \advance\colordimen\thousandpoint
-% \colorcount\colordimen
-% \advance\colorcount \medcard
-% \divide\colorcount \maxcard
-% \edef#1{\realcolorvalue\colorcount}}
-
-\def\normalizespotcolor#1%
- {\colorcount\numexpr(\dimexpr\thousandpoint-#1\thousandpoint\relax+\medcard)/\maxcard\relax
- \edef#1{\realcolorvalue\colorcount}}
-
-\def\donormalizeRGB
- {\normalizecolor\@@cl@@r
- \normalizecolor\@@cl@@g
- \normalizecolor\@@cl@@b}
-
-\def\normalizeRGB
- {\ifnormalizecolor
- \donormalizeRGB
- \else\iffactorizecolor
- \donormalizeRGB
- \fi\fi}
-
-\def\donormalizeCMYK
- {\normalizecolor\@@cl@@c
- \normalizecolor\@@cl@@m
- \normalizecolor\@@cl@@y
- \normalizecolor\@@cl@@k}
-
-\def\normalizeCMYK
- {\ifnormalizecolor
- \donormalizeCMYK
- \else\iffactorizecolor
- \donormalizeCMYK
- \fi\fi}
-
-\def\donormalizeGRAY
- {\normalizecolor\@@cl@@s}
-
-\def\normalizeGRAY
- {\ifnormalizecolor
- \donormalizeGRAY
- \else\iffactorizecolor
- \donormalizeGRAY
- \fi\fi}
-
-\def\normalizeSPOT
- {\normalizespotcolor\@@cl@@p}
-
-%D We need to register spot colors (i.e.\ resources need to
-%D be created.
-
-\def\registerspotcolor#1:%
- {\ifcsname\??cl:\c!p:\@@cl@@n\endcsname
- \@EA\dontregisterspotcolor
- \else
- \letgvalue{\??cl:\c!p:\@@cl@@n}\empty
- %\@EA\@EA\csname registerspotcolor#1\endcsname
- \csname registerspotcolor#1\@EA\endcsname
- \fi}
-
-% todo: convert to rgb if needed, will will do this in mkiv
-
-\def\dontregisterspotcolor #1\od{}
-\def\registerspotcolorR #1:#2:#3:#4\od{\doregisterrgbspotcolor \@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#1}{#2}{#3}}
-\def\registerspotcolorC#1:#2:#3:#4:#5\od{\doregistercmykspotcolor\@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#1}{#2}{#3}{#4}}
-\def\registerspotcolorS #1:#2\od{\doregistergrayspotcolor\@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#1}}
-\def\registerspotcolorP #1:#2:#3\od{\doregistergrayspotcolor\@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#2}}
-
-%D Experimental feature:
-
-% \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-50] [darkblue] [p=.5]
-% \definecolor [darkyellow-50] [darkyellow] [p=.5]
-% \definecolor [darkblue-80] [darkblue] [p=.8]
-% \definecolor [darkyellow-80] [darkyellow] [p=.8]
-%
-% \definecolor [darkblue,darkyellow] [r=.8]
-% \definecolor [darkdull-5030] [darkblue,darkyellow] [p={.5,.3}]
-%
-% \setupcolors[state=start]
-%
-% \blackrule[width=4cm,height=3cm,color=darkblue-50]
-% \blackrule[width=4cm,height=3cm,color=darkblue-80]
-% \blackrule[width=4cm,height=3cm,color=darkyellow-50]
-% \blackrule[width=4cm,height=3cm,color=darkyellow-80]
-% \blackrule[width=4cm,height=3cm,color=darkdull-5030]
-
-%D Experimental too (special purpose code).
-
-\def\registerindexcolor#1:%
- {\ifcsname\??cl:i:\@@cl@@n\endcsname
- \@EA\dontregisterindexcolor
- \else
- \letgvalue{\??cl:i:\@@cl@@n}\empty % signal
- \showmessage\m!colors{12}\@@cl@@n
- \@EA\@EA\csname registerindexcolor#1\endcsname
- \fi}
-
-\let\dontregisterindexcolor\dontregisterspotcolor
-
-\def\registerindexcolorR #1:#2:#3:#4\od{\doregisterrgbindexcolor \@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#1}{#2}{#3}}
-\def\registerindexcolorC#1:#2:#3:#4:#5\od{\doregistercmykindexcolor\@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#1}{#2}{#3}{#4}}
-\def\registerindexcolorS #1:#2\od{\doregistergrayindexcolor\@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#1}}
-\def\registerindexcolorP #1:#2:#3\od{\doregistergrayindexcolor\@@cl@@n\@@cl@@f\@@cl@@d\@@cl@@p{#2}}
-
-\def\predefinecolor[#1]%
- {\bgroup
- \flushatshipout{\hbox{\localcolortrue\color[#1]{}}}% real ones
- \egroup}
-
-\def\predefineindexcolor[#1]%
- {\bgroup
- \flushatshipout{\hbox{\localcolortrue\color[#1]{}}}% real ones
- \let\doexeccolorP\doexeccolorPindex
- \flushatshipout{\hbox{\localcolortrue\color[#1]{}}}% index one
- \egroup}
-
-% \def\checkpredefinedcolor[#1]%
-% {\ifcase\internalspotcolorsize{#1}\relax
-% \@EA\predefinecolor\or\@EA\predefinecolor\else\@EA\predefineindexcolor
-% \fi[#1]}
-
-\let\checkpredefinedcolor\predefineindexcolor % we need an index in order to negate bitmaps
-
-%D Transparency is handled similar for all three color modes. We
-%D can turn transparency off with the following switch:
-
-\newif\iftransparencysupported \transparencysupportedtrue % only mkii
-
-\def\exectransparency
- {\iftransparencysupported
- \expandafter\doexectransparency
- \else
- \expandafter\noexectransparency
- \fi}
-
-\def\doexectransparency#1:#2\od
- {\ifcase#1\space
- \global\intransparentfalse
- \else
- \global\intransparentfalse
- %\dostarttransparency{#1}{#2}%
- \supportedstarttransparency{#1}{#2}%
- \global\intransparenttrue
- \fi}
-
-\def\noexectransparency#1\od
- {}
-
-%D Experimental: minimize transparency resets.
-
-\newif\ifintransparent
-\newif\ifoptimizetransparency \optimizetransparencytrue % under test
-
-\let\supportedstoptransparency\relax
-
-\def\conditionalstoptransparency
- {\ifoptimizetransparency
- \ifintransparent
- \global\intransparentfalse
- \supportedstoptransparency
- \fi
- \else
- \supportedstoptransparency
- \fi}
-
-\def\supportedstarttransparency
- {\iftransparencysupported
- \globallet\supportedstoptransparency\dostoptransparency
- \expandafter\dostarttransparency
- \else
- \expandafter\gobbletwoarguments
- \fi}
-
-%D We now use the \type {\@@cl@@A} hook to implement
-%D symbolic names. These are converted into numbers
-%D at definition time (which saves runtime).
-
-\def\dodefinetransparency[#1][#2]%
- {\@EA\chardef\csname\??cl-#1\endcsname#2\relax}
-
-\def\transparencynumber#1%
- {\number\executeifdefined{\??cl-#1}{#1}}
-
-%D Now we hook 'm into the patterns:
-
-\def\@@cl@@A{\transparencynumber\@@cl@@a}
-
-%D The next macro can be used to return to the (normal)
-%D page color. This macro is used in the same way as
-%D \type {\color}.
-
-\def\startregistercolor[#1]%
- {\permitcolormodefalse\startcolor[#1]\permitcolormodetrue}
-
-\def\stopregistercolor
- {\permitcolormodefalse\stopcolor\permitcolormodetrue}
-
-\def\starttextcolor[#1]%
- {\doifsomething{#1}
- {\bgroup
- \def\stoptextcolor % also goes ok with \page after
- {\let\maintextcolor\empty % this one because the top of
- \stopregistercolor % page sets the color right (side
- \egroup}% % effect)
- \def\starttextcolor[##1]%
- {\bgroup
- % \@@themaintextcolor==##1 is catched in \definecolor
- \definecolor[\@@themaintextcolor][##1]%
- \let\stoptextcolor\egroup}%
- \startregistercolor[\@@themaintextcolor]%
- \definecolor[\@@themaintextcolor][#1]%
- \let\maintextcolor\@@themaintextcolor}}
-
-\let\stoptextcolor\relax
-
-%D The following hook permits proper support at the text
-%D level. This definition actually belongs in another
-%D module. (May need a different \MKIV\ implementation.)
-
-% \ifx\initializemaintextcolor\undefined
-
- \let\@@clprevcolor\empty
-
- \def\initializemaintextcolor
- {% 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}
- {\edef\@@clprevcolor{\@@cltextcolor}%
- \let\maintextcolor\@@themaintextcolor
- \doifelsenothing\@@cltextcolor % another saveguard
- {\definecolor[\@@themaintextcolor][\defaulttextcolor]}%
- {\definecolor[\@@themaintextcolor][\@@cltextcolor]}%
- \doinitializemaintextcolor}}
-
- \def\doinitializemaintextcolor
- {\appendtoks\starttextcolor[\@@themaintextcolor]\to\everystarttext
- \appendtoks\stoptextcolor \to\everystoptext
- \let\doinitializemaintextcolor\relax}
-
-% \fi
-
-\def\localstarttextcolor
- {\ifx\maintextcolor\empty
- \startcolormode\defaulttextcolor
- \else
- \startcolormode\maintextcolor
- \fi}
-
-% \def\localstoptextcolor
-% {\stopcolormode}
-%
-% better:
-
-\def\localstoptextcolor
- {\restorecolormode}
-
-\def\restoretextcolor
- {\ifx\maintextcolor\empty
- \expandafter\dorestoretextcolor
- \else
- % obey main text color
- \fi}
-
-\def\dorestoretextcolor
- {\color[\defaulttextcolor]}
-
-%D We use some reserved names for local color components.
-%D Consistent use of these scratch variables saves us
-%D unneccessary hash entries.
-%D
-%D \starttyping
-%D \@@cl@@r \@@cl@@g \@@cl@@b
-%D \@@cl@@c \@@cl@@m \@@cl@@y \@@cl@@k
-%D \@@cl@@s
-%D \stoptyping
-%D
-%D We implement several conversion routines.
-%D
-%D \starttyping
-%D \convertRGBtoCMYK {r} {g} {b}
-%D \convertRGBtoGRAY {r} {g} {b}
-%D \convertCMYKtoRGB {c} {m} {y} {k}
-%D \convertCMYKtoGRAY {c} {m} {y} {k}
-%D \convertCMYKtoCMY {c} {m} {y} {k}
-%D \stoptyping
-%D
-%D The relation between \cap{Gray}, \cap{RGB} and \cap{CMYK}
-%D is:
-%D
-%D \placeformula[-]
-%D \startformula
-%D G = .30r + .59g + .11b
-%D = 1.0 - \min(1.0,\ .30c + .59m + .11y + k)
-%D \stopformula
-%D
-%D When converting from \cap{CMYK} to \cap{RGB} we use the
-%D formula:
-%D
-%D \placeformula[-]
-%D \startformula
-%D \eqalign
-%D {r &= 1.0 - \min(1.0,\ c+k) \cr
-%D g &= 1.0 - \min(1.0,\ m+k) \cr
-%D b &= 1.0 - \min(1.0,\ y+k)}
-%D \stopformula
-%D
-%D In the conversion routine the color components are calculated
-%D in three digits precision.
-
-\def\realcolorvalue#1%
- {\ifnum#1>\zerocount % important, first encountered in --modu supp-mpe
- \ifnum#1<\plusten 0.00\the#1\else
- \ifnum#1<\plushundred 0.0\the#1\else
- \ifnum#1<\plusthousand 0.\the#1\else
- 1\fi\fi\fi
- \else 0\fi}
-
-% \def\doconvertCMYKtoRGB#1\k#2\to#3%
-% {\ifdim#2\points>#1\points% >= problem, repaired 2/12/2002
-% \let#3\@@cl@@z % k >= color
-% \else
-% \colordimen\onepoint
-% \advance\colordimen -#1\points
-% \advance\colordimen -#2\points
-% \multiply\colordimen \plusthousand
-% \colorcount\colordimen
-% \advance\colorcount \medcard
-% \divide\colorcount \maxcard
-% \edef#3{\realcolorvalue\colorcount}%
-% \fi}
-
-\def\doconvertCMYKtoRGB#1\k#2\to#3%
- {\colorcount\numexpr(\dimexpr\plusthousand\dimexpr\onepoint-#1\points-#2\points\relax\relax+\medcard)/\maxcard\relax
- \ifnum\colorcount>\zeropoint
- \edef#3{\realcolorvalue\colorcount}%
- \else
- \let#3\@@cl@@z
- \fi}
-
-\def\convertCMYKtoRGB#1#2#3#4%
- {\doconvertCMYKtoRGB#1\k#4\to\@@cl@@r
- \doconvertCMYKtoRGB#2\k#4\to\@@cl@@g
- \doconvertCMYKtoRGB#3\k#4\to\@@cl@@b}
-
-% \def\doconvertRGBtoCMYK#1\to#2%
-% {\colordimen#1\points
-% \multiply\colordimen \plusthousand
-% \colorcount\colordimen
-% \advance\colorcount \medcard
-% \divide\colorcount \maxcard
-% \colorcount-\colorcount
-% \advance\colorcount \plusthousand
-% \edef#2{\realcolorvalue\colorcount}}
-
-\def\doconvertRGBtoCMYK#1\to#2%
- {\colorcount\numexpr\plusthousand-(\dimexpr\plusthousand\dimexpr#1\points\relax\relax+\medcard)/\maxcard\relax
- \edef#2{\realcolorvalue\colorcount}}
-
-\def\convertRGBtoCMYK#1#2#3%
- {\doconvertRGBtoCMYK#1\to\@@cl@@c
- \doconvertRGBtoCMYK#2\to\@@cl@@m
- \doconvertRGBtoCMYK#3\to\@@cl@@y
- \let\@@cl@@k\@@cl@@z}
-
-%D The following switch is mainly meant for (hidden)
-%D documentation purposes.
-
-\def\nGRAYfactor{333.333}
-\def\rGRAYfactor{\ifweightGRAY300\else\nGRAYfactor\fi}
-\def\gGRAYfactor{\ifweightGRAY590\else\nGRAYfactor\fi}
-\def\bGRAYfactor{\ifweightGRAY110\else\nGRAYfactor\fi}
-
-% \def\convertRGBtoGRAY#1#2#3%
-% {\colordimen#1\points
-% \colordimen\rGRAYfactor\colordimen
-% \colorcount\colordimen
-% \colordimen#2\points
-% \colordimen\gGRAYfactor\colordimen
-% \advance\colorcount \colordimen
-% \colordimen#3\points
-% \colordimen\bGRAYfactor\colordimen
-% \advance\colorcount \colordimen
-% \advance\colorcount \medcard
-% \divide\colorcount \maxcard
-% \edef\@@cl@@s{\realcolorvalue\colorcount}}
-
-\def\convertRGBtoGRAY#1#2#3%
- {\colorcount\numexpr
- (\dimexpr\rGRAYfactor\dimexpr#1\points\relax\relax+
- \dimexpr\gGRAYfactor\dimexpr#2\points\relax\relax+
- \dimexpr\bGRAYfactor\dimexpr#3\points\relax\relax+
- \medcard)/\maxcard
- \relax
- \edef\@@cl@@s{\realcolorvalue\colorcount}}
-
-\def\convertCMYKtoGRAY#1#2#3#4%
- {\convertCMYKtoRGB{#1}{#2}{#3}{#4}%
- \convertRGBtoGRAY\@@cl@@r\@@cl@@g\@@cl@@b}
-
-% \def\doconvertCMYKtoCMY#1\k#2\to#3%
-% {\colordimen#1\points
-% \advance\colordimen #2\points\relax
-% \ifdim\colordimen>\onepoint
-% \colordimen\onepoint
-% %\else
-% % \colordimen\colordimen
-% \fi
-% \multiply\colordimen \plusthousand
-% \colorcount\colordimen
-% \advance\colorcount \medcard
-% \divide\colorcount \maxcard
-% \edef#3{\realcolorvalue\colorcount}}
-
-\def\doconvertCMYKtoCMY#1\k#2\to#3%
- {\colorcount\numexpr(\dimexpr\plusthousand\dimexpr#1\points+#2\points\relax\relax+\medcard)/\maxcard\relax
- \ifnum\colorcount>\plusthousand
- \let#3\@@cl@@o
- \else
- \edef#3{\realcolorvalue\colorcount}%
- \fi}
-
-\def\convertCMYKtoCMY#1#2#3#4%
- {\doconvertCMYKtoCMY#1\k#4\to\@@cl@@c
- \doconvertCMYKtoCMY#2\k#4\to\@@cl@@m
- \doconvertCMYKtoCMY#3\k#4\to\@@cl@@y
- \let\@@cl@@k\@@cl@@z}
-
-%D Before we present the color macros, we first define the
-%D setup command. This command takes care of setting up the
-%D booleans that control local and global behavior (more on
-%D that later) and conversion to other color spaces.
-
-\let\currentspotcolor \empty
-\let\previousspotcolor\empty
-
-%D The tests depend on the use of constants. If we use the \MKIV\
-%D method we can share more.
-
-\def\doifcolorelse#1%
- {\ifcsname\??cr\ifcsname\??cr\currentpalet#1\endcsname\currentpalet\fi#1\endcsname
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\def\doifcolor#1%
- {\ifcsname\??cr\ifcsname\??cr\currentpalet#1\endcsname\currentpalet\fi#1\endcsname
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-%D There are a couple of different color switching macros,
-%D the local ones can be used to speed up things (only in \MKII).
-
-\def\localstartcolor
- {\ifincolor
- \localcolortrue
- \expandafter\doglobalstartcolor
- \else
- \expandafter\noglobalstartcolor
- \fi}
-
-\def\localstopcolor
- {\ifincolor
- \doglobalstopcolor
- \else
- \noglobalstopcolor
- \fi}
-
-\unexpanded\def\startcolor
- {\ifincolor
- \expandafter\doglobalstartcolor
- \else
- \expandafter\noglobalstartcolor
- \fi}
-
-\unexpanded\def\stopcolor
- {\ifincolor
- \doglobalstopcolor
- \else
- \noglobalstopcolor
- \fi}
-
-%D This macros call the global color switching ones. Starting
-%D a global, i.e. a possible page boundary crossing, color
-%D mode also sets a \type{\mark} in \TEX's internal list.
-
-\newcount\colorlevel
-
-\letvalue{\??cl0C}\empty % saved color
-\letvalue{\??cl0S}\empty % stop command
-
-%D We keep a positive color stack for foreground colors, and
-%D a negative one for backgrounds. Not that brilliant a
-%D solution, but it suits. The signs are swapped when the
-%D page ornaments are typeset.
-
-\let\@@colorplus \plusone
-\let\@@colorminus\minusone
-
-\def\@@currentcolorname {\??cl\the\colorlevel C}
-\def\@@currentcolorstop {\??cl\the\colorlevel S}
-%def\@@currenttransparent{\??cl\the\colorlevel T}
-
-\letvalue{\??cl*\s!black}\s!black
-
-\def\currentcolorname
- {\csname
- \ifcsname\@@currentcolorname\endcsname
- \expandafter\ifx\csname\@@currentcolorname\endcsname\empty
- \??cl*\s!black
- \else
- \@@currentcolorname
- \fi
- \else
- \??cl*\s!black
- \fi
- \endcsname}
-
-\def\outercolorname
- {\ifcsname\@@currentcolorname\endcsname
- \expandafter\ifx\csname\@@currentcolorname\endcsname\empty
- \s!black
- \else
- currentcolor%
- \fi
- \else
- \s!black
- \fi}
-
-% not the following, because we need a different tag in order to trick the stack
-%
-% \def\outercolorname{\executeifdefined\@@currentcolorname\s!black}
-%
-% \def\startcurrentcolor{\expanded{\startcolor[\s!black]\noexpand\startcolor[\outercolorname]}}
-% \def\stopcurrentcolor {\stopcolor\stopcolor}
-%
-% test case:
-%
-% \setupcolors[state=start,textcolor=red]
-% \starttext
-% red
-% \color[green]{green
-% \startMPcode
-% label(\sometxt{green\color[blue]{blue}green}, origin) withcolor red;
-% draw fullcircle scaled 1cm xscaled 2;
-% \stopMPcode
-% green}
-% red
-% \stoptext
-
-\def\dodoglobalstartcolor
- {\global\@EA\let\@EA\@@currentcolor\csname\@@currentcolorname\endcsname
- \global\advance\colorlevel \@@colorplus
- \global\@EA\let\csname\@@currentcolorname\endcsname\@@askedcolor
- %\debuggerinfo\m!colors
- % {start \@@askedcolor\space at level \the\colorlevel}%
- \ifx\@@askedcolor\empty
- \global\@EA\let\csname\@@currentcolorname\endcsname\@@currentcolor
- \global\@EA\let\csname\@@currentcolorstop\endcsname\donoglobalstopcolor
- \else\ifx\@@askedcolor\@@currentcolor
- \global\@EA\let\csname\@@currentcolorstop\endcsname\donoglobalstopcolor
- \else
- \doifcolorelse\@@askedcolor
- {%\docolormark\@@askedcolor
- \ifpermitcolormode\docolormark\@@askedcolor\fi
- \global\@EA\let\csname\@@currentcolorstop\endcsname\dodoglobalstopcolor
- \startcolormode\@@askedcolor}
- {\global\@EA\let\csname\@@currentcolorstop\endcsname\donoglobalstopcolor
- \showmessage\m!colors3\@@askedcolor\empty}%
- \fi\fi}
-
-\def\doglobalstartcolor[#1]%
- {\edef\@@askedcolor{#1}%
- \ifcase\colorlevel\relax
- \ifx\@@askedcolor\empty
- \global\@EA\let\csname\@@currentcolorstop\endcsname\empty
- \else
- \dodoglobalstartcolor
- \fi
- \else
- \dodoglobalstartcolor
- \fi
- \ignorespaces}
-
-\def\noglobalstartcolor[#1]%
- {}
-
-\def\dodoglobalstopcolor
- {\ifcase\colorlevel \else
- \donoglobalstopcolor
- \global\@EA\let\@EA\@@previouscolor\csname\@@currentcolorname\endcsname
- \ifcase\colorlevel\relax
- \ifpermitcolormode
- \docolormark\empty
- \conditionalstoptransparency
- \dostopcolormode
- \fi
- \else % let's do a bit redundant testing here
- \docolormark\@@previouscolor
- \ifx\@@previouscolor\empty
- \ifpermitcolormode
- \conditionalstoptransparency
- \dostopcolormode
- \fi
- \else
- \doifcolorelse\@@previouscolor
- {\ifx\@@currentcolor\@@previouscolor\else
- % alternatively we could let \startcolormode handle this
- \ifpermitcolormode
- \conditionalstoptransparency % really needed
- % more safe but less efficient: \dostopcolormode
- \fi
- \startcolormode\@@previouscolor
- \fi}
- {\ifpermitcolormode
- \conditionalstoptransparency
- \dostopcolormode
- \fi}%
- \fi
- \fi
- \fi}
-
-\def\donoglobalstopcolor
- {\ifcase\colorlevel \else
- \global\@EA\let\@EA\@@currentcolor\csname\@@currentcolorname\endcsname
- %\debuggerinfo{\m!colors}
- % {stop \@@currentcolor\normalspace at level \the\colorlevel}%
- \global\advance\colorlevel \@@colorminus
- \fi}
-
-\def\doglobalstopcolor
- {\csname\@@currentcolorstop\endcsname}
-
-\let\noglobalstopcolor\relax
-
-\let\faststartcolor\doglobalstartcolor
-\let\faststopcolor \doglobalstopcolor
-
-%D We don't use grouping and save each stop alternative. This
-%D permits be especially useful in for instance local color
-%D support in verbatim. Using \type{\bgroup}||\type{\egroup}
-%D pairs could interfere with calling commands
-
-%D This color mechanism takes care of nested colors, like in:
-%D
-%D \startbuffer
-%D \color[green]{groen \color[green]{groen \color[red]{rood}} groen}
-%D \color[green]{groen \color[]{groen \color[red]{rood}} groen}
-%D \color[green]{groen \color[red]{rood \color[red]{rood}} groen}
-%D \color[green]{groen \color[green]{groen \color[]{groen}} groen}
-%D \color[green]{groen \color[red]{rood} groen}
-%D \color[green]{groen \color[]{groen} groen}
-%D \color[]{zwart \color[red]{rood} zwart}
-%D \color[]{zwart}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D or
-%D
-%D \startvoorbeeld
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D \stopvoorbeeld
-%D
-%D Crossing page boundaries is of course also handled.
-%D Undefined or empty color specifications are treated as
-%D efficient as possible.
-%D
-%D \startbuffer
-%D \startcolor[green]
-%D [green] \input tufte [green] \par
-%D \startcolor[]
-%D [green] \input knuth [green] \par
-%D \startcolor[red]
-%D [red] \input tufte [red] \par
-%D \startcolor[yellow]
-%D [yellow] \input knuth [yellow] \par
-%D \stopcolor
-%D [red] \input tufte [red] \par
-%D \stopcolor
-%D [green] \input knuth [green] \par
-%D \stopcolor
-%D [green] \input tufte [green] \par
-%D \stopcolor
-%D \stopbuffer
-%D
-%D \startpacked
-%D \getbuffer
-%D \stoppacked
-%D
-%D These quotes are typeset by saying:
-%D
-%D \typebuffer
-
-%D We already mentioned that colors interfere with building
-%D the pagebody. This means that when the page is composed,
-%D the colors temporary have to be reset. After the page is
-%D shipped out, we have to revive the current color.
-%D
-%D We use \type{\mark}s to keep track of colors across page
-%D boundaries. Unfortunately standard \TEX\ supports only one mark,
-%D and using this one for color support only would be a waste.
-%D We therefore use an adapted version of J.~Fox's multiple mark
-%D mechanism as (re|)|implemented in \module{supp-mrk}.
-
-\doifdefinedelse{rawnewmark}
- {\rawnewmark\colormark}
- {\let\colormark\gobbleoneargument}
-
-%D Using this mark mechanism with lots of colors has one
-%D major drawback: \TEX's memory tends to overflow when
-%D very colorful text is stored in a global box. Even worse is that
-%D the processing time grows considerably. We therefore support
-%D local as well as global color switching.
-%D
-%D Of the next macros, \type {\popcolor} is to be used after
-%D the actual \type {\shipout} and \type {\startcolorpage} and
-%D \type {\stopcolorpage} are called when entering and leaving
-%D the \type {\pagebody} builder. In case of emergencies
-%D \type {\pushcolor} can be used to undo the current color,
-%D for instance when insertions are appended to the page.
-%D
-%D Out of efficiency we only use marks when needed. The next
-%D macro tries to find out if indeed a mark should be set.
-%D This macro uses the boolean \type {\ifinpagebody}, which can
-%D be defined and set in the module that handles the pagebody.
-
-\def\docolormark#1%
- {\iflocalcolor \else \ifinpagebody \else \ifinframed \else
- \dodocolormark{#1}%
- \fi \fi \fi}
-
-\let\lastcolormark=\empty
-
-\def\dodocolormark#1%
- {\edef\newcolormark{#1}%
- \ifx\newcolormark\lastcolormark\else
- \global\let\lastcolormark\newcolormark
- \@EA\rawsetmark\@EA\colormark\@EA{\lastcolormark}%
- \fi}
-
-%D \macros
-%D {pushcolor, popcolor}
-%D
-%D Pushing the current state in the output routine simply comes
-%D to resetting the color to black, while popping restores the
-%D color state to that of before the break.
-
-\def\topofpagecolor{\rawgetbotmark\colormark} % see postponing
-
-\def\pushcolor
- {\stopcolormode}
-
-\def\popcolor
- {\doifsomething{\rawgetbotmark\colormark}
- {%\debuggerinfo\m!colors{popping \getbotmark\colormark}%
- \startcolormode{\rawgetbotmark\colormark}}}
-
-\def\popsplitcolor
- {\getsplitmarks\colormark % hier wel
- \doifsomething{\rawgetsplitbotmark\colormark}
- {%\debuggerinfo\m!colors{split popping \getsplitbotmark\colormark}%
- \startcolormode{\rawgetsplitbotmark\colormark}}}
-
-\appendtoks\pushcolor \to\everypushproperties
-\appendtoks\popcolor \to\everypopproperties
-\appendtoks\popsplitcolor\to\everypopsplitproperties
-
-% Private macro: only needed in test cases (like multiple
-% seperations in one file); no user command!
-
-\def\resynccolor
- {\ifcase\pagetotal % \ifdim\pagetotal=\zeropoint
- \popcolor
- \else\ifx\@@currentcolor\empty
- \ifx\maintextcolor\empty\else
- \startcolormode\maintextcolor
- \fi
- \else
- \startcolormode\@@currentcolor
- \fi\fi}
-
-% weird stuff
-
-\def\pushpostponedpagecolor
- {\edef\savedtopofpagecolor{\topofpagecolor}%
- \doifsomething\savedtopofpagecolor\restorecolormode} % \stopcolormode
-
-\def\poppostponedpagecolor
- {\doifsomething\savedtopofpagecolor\startcolormode\savedtopofpagecolor}
-
-%D \macros
-%D {startcolorpage, stopcolorpage}
-%D
-%D Local use can be forced with the next two macros. Nesting
-%D is still supported but colors are no longer marked.
-%D
-%D The next implementation makes (simple) color separation more
-%D easy. It also supports nested colors in page backgrounds
-%D and texts.
-
-\def\startcolorpage
- {\bgroup
- \let\@@colorplus \minusone
- \let\@@colorminus\plusone
- \let\docolormark\gobbleoneargument
- \edef\savedcolorlevel{\the\colorlevel}%
- \global\colorlevel\zerocount % before \localstartcolor of
- \ifx\maintextcolor\empty % course, ugly bug removed
- \localstartcolor[\defaulttextcolor]%
- \else
- \localstartcolor[\maintextcolor]%
- \fi}
-
-\def\stopcolorpage
- {\localstopcolor
- \global\colorlevel\savedcolorlevel
- \egroup}
-
-\appendtoks \startcolorpage\to\everystarttextproperties
-\prependtoks\stopcolorpage \to\everystoptextproperties
-
-%D We want color support to be similar to font support and
-%D therefore implement \type{\color} using grouping.
-%D
-%D When \type {\somecolor} is issued, we can savely assume
-%D grouping. Using \type {\groupedcommand} here (i.e.\ the
-%D definition of \type {\color}) is unsafe because in
-%D interferes with for instance switching attributes.
-
-\unexpanded\def\color[#1]%
- {\groupedcommand{\startcolor[#1]}\stopcolor}
-
-%D This implementation enables use of defined colors like:
-%D
-%D \starttyping
-%D Look at the {\brightgreen bright} side of life and get
-%D yourself no \red{red} head!
-%D \stoptyping
-
-%D Also wrong, test in combinations: \type{...{}{\red test}}
-%D
-%D \def\switchtocolor[#1]%
-%D {\startcolor[#1]\aftergroup\stopcolor}
-
-\def\switchtocolor[#1]% grouping is realy needed, else migration
- {\bgroup\startcolor[#1]\aftergroup\stopcolor\aftergroup\egroup}
-
-\unexpanded\def\color[#1]%
- {\groupedcommand{\startcolor[#1]}\stopcolor}
-
-\unexpanded\def\graycolor[#1]% not \gray because this is a color
- {\groupedcommand{\RGBsupportedfalse\CMYKsupportedfalse\SPOTsupportedfalse\startcolor[#1]}\stopcolor}
-
-\unexpanded\def\colored[#1]%
- {\groupedcommand{\definecolor[@colored@][#1]\startcolor[@colored@]}\stopcolor}
-
-%D We can speed the following macros a bit up, but this
-%D hardly pays off; they are only used in the manual.
-
-\def\realcolorformat#1%
- {\ifnum#1<\plusten 0.00\the#1\else
- \ifnum#1<\plushundred 0.0\the#1\else
- \ifnum#1<\plusthousand 0.\the#1\else
- 1.000\fi\fi\fi}
-
-\def\dodoformatcolor#1%
- {\colordimen#1\points\relax
- \ifdim\colordimen>\onepoint
- \colordimen\onepoint
- \fi
- \multiply\colordimen \plusthousand
- \colorcount\colordimen
- \advance\colorcount \medcard
- \divide\colorcount \maxcard \relax
- \realcolorformat\colorcount}
-
-\def\doformatcolorR#1:#2:#3:#4:#5\od
- {\dodoformatcolor{#1}\colorformatseparator
- \dodoformatcolor{#2}\colorformatseparator
- \dodoformatcolor{#3}}
-
-\def\doformatcolorC#1:#2:#3:#4:#5:#6\od
- {\dodoformatcolor{#1}\colorformatseparator
- \dodoformatcolor{#2}\colorformatseparator
- \dodoformatcolor{#3}\colorformatseparator
- \dodoformatcolor{#4}}
-
-\def\doformatcolorS#1:#2:#3\od
- {\dodoformatcolor{#1}}
-
-\def\doformatcolorP#1:#2:#3:#4:#5:#6\od
- {#1\colorformatseparator
- \dodoformatcolor{#2}\colorformatseparator
- \dodoformatcolor{#3}\colorformatseparator
- \dodoformatcolor{#4}\colorformatseparator}
-
-\def\doformatcolor#1:%
- {\csname doformatcolor#1\endcsname}
-
-\def\colorvalue
- {\dowithcolor\doformatcolor}
-
-\def\doformatgrayR#1:#2:#3:#4:#5\od
- {\convertRGBtoGRAY{#1}{#2}{#3}%
- \dodoformatcolor\@@cl@@s}
-
-\def\doformatgrayC#1:#2:#3:#4:#5:#6\od
- {\convertCMYKtoGRAY{#1}{#2}{#3}{#4}%
- \dodoformatcolor\@@cl@@s}
-
-\def\doformatgrayS#1:#2:#3\od
- {\dodoformatcolor{#1}}
-
-% \def\doformatgrayP#1:#2:#3:#4:#5:#6\od
-% {\convertSPOTtoGRAY{#1}{#2}{#3}{#4}%
-% \dodoformatcolor\@@cl@@s}
-
-\def\doformatgrayP#1:#2:#3:#4:#5:#6\od
- {todo}
-
-\def\doformatgray#1:%
- {\csname doformatgray#1\endcsname}
-
-\def\grayvalue
- {\dowithcolor\doformatgray}
-
-%D \macros
-%D {localstartraster,localstopraster,
-%D startraster,stopraster}
-%D
-%D The previous conversions are not linear and treat each color
-%D component according to human perception curves. Pure gray
-%D (we call them rasters) has equal color components. In
-%D \CONTEXT\ rasters are only used as backgrounds and these
-%D don't cross page boundaries in the way color does. Therefore
-%D we don't need stacks and marks. Just to be compatible with
-%D color support we offer both 'global' and 'local' commands.
-%D
-%D \starttyping
-%D \def\localstartraster[#1]%
-%D {\doifelsenothing{#1}
-%D {\dostartgraymode\@@rsscreen}
-%D {\dostartgraymode{#1}}}
-%D
-%D \def\localstopraster
-%D {\dostopgraymode}
-%D
-%D \let\startraster\localstartraster
-%D \let\stopraster \localstopraster
-%D \stoptyping
-%D
-%D The next alternative is slower, since it works on top of the
-%D color (stack) mechanism, but it does provide nesting.
-
-\def\dosetrastercolor#1%
- {\edef\@@cl@@s{#1}%
- \ifx\@@cl@@s\empty
- \let\@@cl@@s\@@rsscreen
- \fi
- \let\@@cl@@t\@@cl@@z % else we get rogue
- \let\@@cl@@a\@@cl@@z % transpancies
- \setevalue{\??cr\??rs}{\colorSpattern}}
-
-% beware, don't add extra grouping, else color in tables
-% fails
-
-\def\localstartraster[#1]%
- {\ifincolor\dosetrastercolor{#1}\localstartcolor[\??rs]\fi}
-
-\def\startraster[#1]%
- {\ifincolor\dosetrastercolor{#1}\startcolor[\??rs]\fi}
-
-\def\localstopraster{\ifincolor\localstopcolor\fi}
-\def\stopraster {\ifincolor\stopcolor\fi}
-
-\def\raster[#1]{\groupedcommand{\startraster[#1]}{\stopraster}}
-
-%D Palets use an auxiliary macro:
-
-\def\dodefinepaletcolor#1#2#3%
- {\doifassignmentelse{#3}
- {% == \definepalet[test][xx={y=.4}]
- \definecolor[\??pa#1:#2][#3]%
- \iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi{\??cr#1:#2}{\csname\??cr\??pa#1:#2\endcsname}}
- {% == \definepalet[test][xx=green]
- \doifdefinedelse{\??cr#3}
- {\iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi{\??cr#1:#2}{\csname\??cr#3\endcsname}}
- {\letvalue{\??cr#1:#2}\colorXpattern}}}
-
-%D \MP\ related conversions:
-
-\def\scaledMPcolor#1#2%
- {\ifMPgraphics
- \handlecolorwith\doMPcolor
- \csname\??cr
- \ifcsname\??cr\currentpalet#2\endcsname\currentpalet\fi
- #2\endcsname
- :::::::\end#1\end
- \else
- #2%
- \fi}
-
-\def\MPcolor{\scaledMPcolor1}
-
-%D Before we had transparency available, the following
-%D conversion macro was available:
-%D
-%D \starttyping
-%D \def\doMPcolor#1:#2:#3:#4:#5:#6:#7:#8\end
-%D {\if #1R(#2,#3,#4)%
-%D \else\if#1C\ifMPcmykcolors cmyk(#2,#3,#4,#5)\else(1-#2-#5,1-#3-#5,1-#4-#5)\fi
-%D \else\if#1S(#2,#2,#2)%
-%D \else (0,0,0)%
-%D \fi\fi\fi}
-%D \stoptyping
-%D
-%D In order to be useful, this macro is to be fully
-%D expandabele.
-
-\def\doMPcolor#1:% #1 can be \relax ! ! ! i.e. an empty color
- {\csname MPc\@EA\ifx\csname MPc\string#1\endcsname\relax B\else#1\fi\endcsname}
-
-\def\MPcR{\doMPrgb}
-\def\MPcC{\ifMPcmykcolors\@EA\doMPcmykY\else\@EA\doMPcmykN\fi}
-\def\MPcS{\doMPgray}
-\def\MPcP{\ifMPspotcolors\@EA\doMPspotY\else\@EA\doMPspotN\fi}
-\def\MPcB{\doMPblack}
-
-\def\transparentMP {transparent}
-\def\cmykMP {scaledcmyk}
-\def\cmykASrgbMP {scaledcmykasrgb} % not really needed any more
-\def\rgbMP {scaledrgb}
-\def\grayMP {scaledgray}
-\def\spotMP {spotcolor}
-
-\def\doMPtransparent#1#2:#3:#4\end
- {\ifcase#2\space(#1)\else\transparentMP(#2,#3,(#1))\fi}
-
-\def\doMPgray#1:#2\end#3\end
- {\doMPtransparent{\grayMP(#1,#3)}#2\end}
-
-\def\doMPrgb#1:#2:#3:#4\end#5\end
- {\doMPtransparent{\rgbMP(#1,#2,#3,#5)}#4\end}
-
-\def\doMPcmykY#1:#2:#3:#4:#5\end#6\end
- {\doMPtransparent{\cmykMP(#1,#2,#3,#4,#6)}#5\end}
-
-\def\doMPcmykN#1:#2:#3:#4:#5\end#6\end
- {\doMPtransparent{\cmykASrgbMP(#1,#2,#3,#4,#6)}#5\end}
-
-\def\doMPspotY#1:#2:#3:#4:#5\end#6\end % best make #3 same as #1 when empty
- {\doMPtransparent{multitonecolor("#1",#2,"#3","#4")}#5\end}
-
-\def\doMPspotN#1:#2:#3:#4:#5\end#6\end
- {\scaledMPcolor{#4}{#1}}
-
-\def\doMPblack#1\end#2\end
- {\unknownMPcolor}
-
-\def\unknownMPcolor
- {(0,0,0)}
-
-\let\processMP\spotMP % for some time, will become obsolete, brrr
-
-%D \PDF\ related conversions:
-
-\def\PDFcolor #1{\handlecolorwith\doPDFcolor \csname\??cr#1\endcsname:::::::\end}
-\def\PDFcolorvalue#1{\handlecolorwith\doPDFcolorvalue\csname\??cr#1\endcsname:::::::\end}
-\def\FDFcolor #1{\handlecolorwith\doFDFcolor \csname\??cr#1\endcsname:::::::\end}
-
-\def\doPDFcolor#1:#2:#3:#4:#5:#6:#7:#8\end
- {\if #1R#2 #3 #4 rg%
- \else\if#1C#2 #3 #4 #5 k%
- \else\if#1S#2 g%
- \else\if#1P#5 g%
- \else 0 g%
- \fi\fi\fi\fi}
-
-\def\doPDFcolorvalue#1:#2:#3:#4:#5:#6:#7:#8\end
- {\if #1R#2 #3 #4%
- \else\if#1C#2 #3 #4 #5%
- \else\if#1S#2%
- \else\if#1P#5%
- \else 0%
- \fi\fi\fi\fi}
-
-\def\doFDFcolor#1:#2:#3:#4:#5:#6:#7:#8\end
- {[\if #1R#2 #3 #4%
- \else\if#1C#2 #3 #4 #5%
- \else\if#1S#2%
- \else\if#1P#5%
- \else 0%
- \fi\fi\fi\fi]}
-
-\def\internalspotcolorname#1{\handlecolorwith\dointernalspotcolorname\csname\??cr#1\endcsname:::::::\end}
-\def\internalspotcolorsize#1{\handlecolorwith\dointernalspotcolorsize\csname\??cr#1\endcsname:::::::\end}
-
-\def\dointernalspotcolorname#1:#2:#3:#4:#5:#6:#7:#8\end{\if#1P\ifcase0#3 #1\else#2\fi\else#1\fi}
-\def\dointernalspotcolorsize#1:#2:#3:#4:#5:#6:#7:#8\end{\if#1P\ifcase0#3 0\else#3\fi\else 0\fi}
-
-%D Because it's a persitent issue, we also provide
-
-\def\pgf@context@registercolor#1%
- {\handlecolorwith\pgf@context@registercolor@indeed\csname\??cr#1\endcsname:::::::>#1\end}
-
-\def\pgf@context@registercolor@indeed#1:#2:#3:#4:#5:#6>#7\end
- {\setevalue{\string\color@#7}{\noexpand\xcolor@{}{}%
- \if#1R{rgb}{#2,#3,#4}\else
- \if#1C{cmyk}{#2,#3,#4,#5}\else
- \if#1S{gray}{#2}\else
- {gray}{0}\fi\fi\fi}}
-
-%D Slow but ok \unknown
-
-\def\colorcomponents#1% might be broken
- {\startnointerference
- \localcolortrue
- \globallet\thecolorcomponents\empty
- \def\doexeccolorR ##1:##2:##3:##4:##5\od{\gdef\thecolorcomponents{r=\twodigitrounding{##1} g=\twodigitrounding{##2} b=\twodigitrounding{##3}}}%
- \def\doexeccolorC##1:##2:##3:##4:##5:##6\od{\gdef\thecolorcomponents{c=\twodigitrounding{##1} m=\twodigitrounding{##2} y=\twodigitrounding{##3} k=\twodigitrounding{##4}}}%
- \def\doexeccolorS ##1:##2:##3\od{\gdef\thecolorcomponents{s=\twodigitrounding{##1}}}%
- \def\doexeccolorP##1:##2:##3:##4:##5:##6\od{\gdef\thecolorcomponents{p=\twodigitrounding{##4} n=##1}}%
- \let\doexeccolorPindex\doexeccolorP
- \backgroundline[#1]{}%
- \stopnointerference
- \thecolorcomponents}
-
-\def\transparencycomponents#1%
- {\startnointerference
- \localcolortrue
- \globallet\thetransparencycomponents\empty
- \def\doexeccolorR ##1:##2:##3:##4:##5\od{\gdef\thetransparencycomponents{a=\twodigitrounding{##4} t=\twodigitrounding{##5}}}%
- \def\doexeccolorC##1:##2:##3:##4:##5:##6\od{\gdef\thetransparencycomponents{a=\twodigitrounding{##5} t=\twodigitrounding{##6}}}%
- \def\doexeccolorS ##1:##2:##3\od{\gdef\thetransparencycomponents{a=\twodigitrounding{##2} t=\twodigitrounding{##3}}}%
- \def\doexeccolorP##1:##2:##3:##4:##5:##6\od{\gdef\thetransparencycomponents{a=\twodigitrounding{##5} t=\twodigitrounding{##6}}}%
- \let\doexeccolorPindex\doexeccolorP
- \backgroundline[#1]{}%
- \stopnointerference
- \thetransparencycomponents}
-
-%D \macros
-%D {everyshapebox}
-%D
-%D A terrible hack, needed because we cannot have marks in
-%D shape boxes.
-
-\appendtoks \localcolortrue \to \everyshapebox
-
-%D \macros
-%D {forcecolorhack}
-%D
-%D Awful \unknown
-
-\let\forcecolorhack\relax
-
-%D We default to the colors defined in \module{colo-rgb} and
-%D support both \cap{RGB} and \cap{CMYK} output. As you can
-%D see, color support is turned off by default. Reduction of
-%D gray colors to gray scales is turned on.
-
-\definecolor[black][s=0]
-\definecolor[white][s=1]
-
-\definetransparency [none] [0]
-\definetransparency [normal] [1]
-\definetransparency [multiply] [2]
-\definetransparency [screen] [3]
-\definetransparency [overlay] [4]
-\definetransparency [softlight] [5]
-\definetransparency [hardlight] [6]
-\definetransparency [colordodge] [7]
-\definetransparency [colorburn] [8]
-\definetransparency [darken] [9]
-\definetransparency [lighten] [10]
-\definetransparency [difference] [11]
-\definetransparency [exclusion] [12]
-\definetransparency [hue] [13]
-\definetransparency [saturation] [14]
-\definetransparency [color] [15]
-\definetransparency [luminosity] [16]
-
-\setupcolors
- [\c!state=\v!stop,
- \c!conversion=\v!yes,
- \c!reduction=\v!no,
- \c!rgb=\v!yes,
- \c!cmyk=\v!yes,
- \c!spot=\v!yes,
- \c!mp\c!cmyk=\@@clcmyk,
- \c!mp\c!spot=\@@clspot,
- \c!expansion=\v!no,
- \c!textcolor=,
- \c!split=\v!no,
- \c!criterium=\v!all]
-
-\setupcolor
- [\v!rgb]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/colo-rgb.mkii b/Master/texmf-dist/tex/context/base/mkii/colo-rgb.mkii
deleted file mode 100644
index f734c7a014c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/colo-rgb.mkii
+++ /dev/null
@@ -1,530 +0,0 @@
-%D \module
-%D [ file=colo-rgb,
-%D version=1995.01.01,
-%D title=\CONTEXT\ Color Macros,
-%D subtitle=RGB,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Just to give users a start we define some colors. While
-%D switching fonts is as international as can be, thanks to the
-%D mnemonics, naming colors is very interface dependant. To
-%D support international setups, we define both english and
-%D interface dependant colors. We use the color inheritance
-%D mechanisms to implement the interface dependant ones.
-
-%D First we define some simple primary \cap{RGB} and \cap{CMYK}
-%D colors. All colors are defined in \cap{RGB} color space.
-
-\definecolor [red] [r=1, g=0, b=0]
-\definecolor [green] [r=0, g=1, b=0]
-\definecolor [blue] [r=0, g=0, b=1]
-
-\definecolor [cyan] [r=0, g=1, b=1]
-\definecolor [magenta] [r=1, g=0, b=1]
-\definecolor [yellow] [r=1, g=1, b=0]
-
-\definecolor [white] [s=1] % [r=1, g=1, b=1]
-\definecolor [black] [s=0]
-\definecolor [gray] [s=.9]
-
-\definecolor [darkred] [r=.8, g=0, b=0]
-\definecolor [middlered] [r=.9, g=0, b=0]
-\definecolor [lightred] [r=1, g=0, b=0]
-
-\definecolor [darkgreen] [r=0, g=.6, b=0]
-\definecolor [middlegreen] [r=0, g=.8, b=0]
-\definecolor [lightgreen] [r=0, g=1, b=0]
-
-\definecolor [darkblue] [r=0, g=0, b=.8]
-\definecolor [middleblue] [r=0, g=0, b=.9]
-\definecolor [lightblue] [r=0, g=0, b=1]
-
-\definecolor [darkcyan] [r=.6, g=.8, b=.8]
-\definecolor [middlecyan] [r=0, g=.8, b=.8]
-
-\definecolor [darkmagenta] [r=.8, g=.6, b=.8]
-\definecolor [middlemagenta] [r=1, g=0, b=.6]
-
-\definecolor [darkyellow] [r=.8, g=.8, b=.6]
-\definecolor [middleyellow] [r=1, g=1, b=.2]
-
-\definecolor [darkgray] [s=.5]
-\definecolor [middlegray] [s=.7]
-\definecolor [lightgray] [s=.9]
-
-%D These colors are mapped to interface dependant colornames.
-
-\startinterface dutch
-
- \definecolor [rood] [red]
- \definecolor [groen] [green]
- \definecolor [blauw] [blue]
-
- \definecolor [cyaan] [cyan]
- \definecolor [magenta] [magenta]
- \definecolor [geel] [yellow]
-
- \definecolor [wit] [white]
- \definecolor [grijs] [gray]
- \definecolor [zwart] [black]
-
- \definecolor [donkerrood] [darkred]
- \definecolor [middelrood] [middlered]
- \definecolor [lichtrood] [lightred]
-
- \definecolor [donkergroen] [darkgreen]
- \definecolor [middelgroen] [middlegreen]
- \definecolor [lichtgroen] [lightgreen]
-
- \definecolor [donkerblauw] [darkblue]
- \definecolor [middelblauw] [middleblue]
- \definecolor [lichtblauw] [lightblue]
-
- \definecolor [donkercyaan] [darkcyan]
- \definecolor [middelcyaan] [middlecyan]
-
- \definecolor [donkermagenta] [darkmagenta]
- \definecolor [middelmagenta] [middlemagenta]
-
- \definecolor [donkergeel] [darkyellow]
- \definecolor [middelgeel] [middleyellow]
-
- \definecolor [donkergrijs] [darkgray]
- \definecolor [middengrijs] [middlegray]
- \definecolor [lichtgrijs] [lightgray]
-
-\stopinterface
-
-\startinterface german
-
- \definecolor [rot] [red]
- \definecolor [gruen] [green]
- \definecolor [blau] [blue]
-
- \definecolor [cyan] [cyan]
- \definecolor [magenta] [magenta]
- \definecolor [gelb] [yellow]
-
- \definecolor [weiss] [white]
- \definecolor [grau] [gray]
- \definecolor [schwarz] [black]
-
- \definecolor [dunkelrot] [darkred]
- \definecolor [mittelrot] [middlered]
- \definecolor [hellrot] [lightred]
-
- \definecolor [dunkelgruen] [darkgreen]
- \definecolor [mittelgruen] [middlegreen]
- \definecolor [hellgruen] [lightgreen]
-
- \definecolor [dunkelblau] [darkblue]
- \definecolor [mittelblau] [middleblue]
- \definecolor [hellblau] [lightblue]
-
- \definecolor [dunkelcyan] [darkcyan]
- \definecolor [mittelcyan] [middlecyan]
-
- \definecolor [dunkelmagenta] [darkmagenta]
- \definecolor [mittelmagenta] [middlemagenta]
-
- \definecolor [dunkelgelb] [darkyellow]
- \definecolor [mittelgelb] [middleyellow]
-
- \definecolor [dunkelgrau] [darkgray]
- \definecolor [mittelgrau] [middlegray]
- \definecolor [hellgrau] [lightgray]
-
-\stopinterface
-
-\startinterface czech
-
- \definecolor [cervena] [red]
- \definecolor [zelena] [green]
- \definecolor [modra] [blue]
-
- \definecolor [azurova] [cyan]
- \definecolor [fialova] [magenta]
- \definecolor [zluta] [yellow]
-
- \definecolor [bila] [white]
- \definecolor [cerna] [black]
-
- \definecolor [tmavecervena] [darkred]
- \definecolor [strednecervena] [middlered]
- \definecolor [svetlecervena] [lightred]
-
- \definecolor [tmavezelena] [darkgreen]
- \definecolor [strednezelena] [middlegreen]
- \definecolor [svetlezelena] [lightgreen]
-
- \definecolor [tmavemodra] [darkblue]
- \definecolor [strednemodra] [middleblue]
- \definecolor [svetlemodra] [lightblue]
-
- \definecolor [tmaveazurova] [darkcyan]
- \definecolor [stredneazurova] [middlecyan]
-
- \definecolor [tmavefialova] [darkmagenta]
- \definecolor [strednefialova] [middlemagenta]
-
- \definecolor [tmavezluta] [darkyellow]
- \definecolor [strednezluta] [middleyellow]
-
- \definecolor [tmaveseda] [darkgray]
- \definecolor [stredneseda] [middlegray]
- \definecolor [svetleseda] [lightgray]
-
-\stopinterface
-
-\startinterface italian
-
- \definecolor [rosso] [red]
- \definecolor [verde] [green]
- \definecolor [blu] [blue]
-
- \definecolor [azzurro] [cyan]
- \definecolor [turchino] [cyan]
- \definecolor [ciano] [cyan]
- \definecolor [cremisi] [magenta]
- \definecolor [giallo] [yellow]
-
- \definecolor [bianco] [white]
- \definecolor [grigio] [gray]
- \definecolor [nero] [black]
-
- \definecolor [rossoscuro] [darkred]
- \definecolor [rossomedio] [middlered]
- \definecolor [rossochiaro] [lightred]
-
- \definecolor [verdescuro] [darkgreen]
- \definecolor [verdemedio] [middlegreen]
- \definecolor [verdechiaro] [lightgreen]
-
- \definecolor [bluscuro] [darkblue]
- \definecolor [blumedio] [middleblue]
- \definecolor [bluchiaro] [lightblue]
-
- \definecolor [azzurroscuro] [darkcyan]
- \definecolor [azzurrochiaro] [middlecyan]
-
- \definecolor [cremisiscuro] [darkmagenta]
- \definecolor [cremisichiaro] [middlemagenta]
-
-
- \definecolor [gialloscuro] [darkyellow]
- \definecolor [giallomedio] [middleyellow]
-
- \definecolor [grigioscuro] [darkgray]
- \definecolor [grigiomedio] [middlegray]
- \definecolor [grigiochiaro] [lightgray]
-
-\stopinterface
-
-\startinterface romanian
-
- \definecolor [rosu] [red]
- \definecolor [verde] [green]
- \definecolor [albastru] [blue]
-
- \definecolor [cian] [cyan]
- \definecolor [magenta] [magenta]
- \definecolor [galben] [yellow]
-
- \definecolor [alb] [white]
- \definecolor [gri] [gray]
- \definecolor [negru] [black]
-
- \definecolor [rosuinchis] [darkred]
- \definecolor [rosumediu] [middlered]
- \definecolor [rosudeschis] [lightred]
-
- \definecolor [verdeinchis] [darkgreen]
- \definecolor [verdemediu] [middlegreen]
- \definecolor [verdedeschis] [lightgreen]
-
- \definecolor [albastruinchis] [darkblue]
- \definecolor [albastrumediu] [middleblue]
- \definecolor [albastrudeschis] [lightblue]
-
- \definecolor [cianinchis] [darkcyan]
- \definecolor [cianmediu] [middlecyan]
-
- \definecolor [magentainchis] [darkmagenta]
- \definecolor [magentamediu] [middlemagenta]
-
- \definecolor [galbeninchis] [darkyellow]
- \definecolor [galbenmediu] [middleyellow]
-
- \definecolor [griinchis] [darkgray]
- \definecolor [grimediu] [middlegray]
- \definecolor [grideschis] [lightgray]
-
-\stopinterface
-
-%D Like colors, we first define the english colorgroups. These
-%D colorgroups are tuned for distinctive gray scale printing.
-
-% todo : more efficient and real gray
-
-\definecolorgroup
- [gray]
- [0.95:0.95:0.95,
- 0.90:0.90:0.90,
- 0.80:0.80:0.80,
- 0.70:0.70:0.70,
- 0.60:0.60:0.60,
- 0.50:0.50:0.50,
- 0.40:0.40:0.40,
- 0.30:0.30:0.30,
- 0.20:0.20:0.20,
- 0.10:0.10:0.10,
- 0.00:0.00:0.00]
-
-\definecolorgroup
- [red]
- [1.00:0.90:0.90,
- 1.00:0.80:0.80,
- 1.00:0.70:0.70,
- 1.00:0.55:0.55,
- 1.00:0.40:0.40,
- 1.00:0.25:0.25,
- 1.00:0.15:0.15,
- 0.90:0.00:0.00]
-
-\definecolorgroup
- [green]
- [0.90:1.00:0.90,
- 0.70:1.00:0.70,
- 0.50:1.00:0.50,
- 0.30:1.00:0.30,
- 0.15:0.90:0.15,
- 0.00:0.80:0.00,
- 0.00:0.65:0.00,
- 0.00:0.50:0.00]
-
-\definecolorgroup
- [blue]
- [0.90:0.95:1.00,
- 0.80:0.90:1.00,
- 0.55:0.85:1.00,
- 0.30:0.80:1.00,
- 0.15:0.75:1.00,
- 0.00:0.70:1.00,
- 0.00:0.55:1.00,
- 0.00:0.40:1.00]
-
-\definecolorgroup
- [cyan]
- [0.80:1.00:1.00,
- 0.60:1.00:1.00,
- 0.30:1.00:1.00,
- 0.00:0.95:0.95,
- 0.00:0.85:0.85,
- 0.00:0.75:0.75,
- 0.00:0.60:0.60,
- 0.00:0.50:0.50]
-
-\definecolorgroup
- [magenta]
- [1.00:0.90:1.00,
- 1.00:0.80:1.00,
- 1.00:0.65:1.00,
- 1.00:0.50:1.00,
- 1.00:0.35:1.00,
- 1.00:0.15:1.00,
- 0.90:0.05:0.90,
- 0.80:0.00:0.80]
-
-\definecolorgroup
- [yellow]
- [1.00:1.00:0.70,
- 1.00:1.00:0.00,
- 1.00:0.85:0.05,
- 1.00:0.70:0.00,
- 1.00:0.55:0.00,
- 0.95:0.40:0.00,
- 0.80:0.30:0.00,
- 0.60:0.30:0.00]
-
-\definecolorgroup
- [red*]
- [1.00:0.95:0.95,
- 1.00:0.90:0.90,
- 1.00:0.80:0.80,
- 1.00:0.70:0.70,
- 1.00:0.60:0.60,
- 1.00:0.50:0.50,
- 1.00:0.40:0.40,
- 1.00:0.30:0.30]
-
-\definecolorgroup
- [green*]
- [0.95:1.00:0.95,
- 0.90:1.00:0.90,
- 0.80:1.00:0.80,
- 0.70:1.00:0.70,
- 0.60:1.00:0.60,
- 0.50:1.00:0.50,
- 0.40:1.00:0.40,
- 0.30:1.00:0.30]
-
-\definecolorgroup
- [blue*]
- [0.95:0.95:1.00,
- 0.90:0.90:1.00,
- 0.80:0.80:1.00,
- 0.70:0.70:1.00,
- 0.60:0.60:1.00,
- 0.50:0.50:1.00,
- 0.40:0.40:1.00,
- 0.30:0.30:1.00]
-
-\definecolorgroup
- [yellow*]
- [1.00:1.00:0.10,
- 1.00:1.00:0.00,
- 0.90:0.90:0.00,
- 0.80:0.80:0.00,
- 0.70:0.70:0.00,
- 0.60:0.60:0.00,
- 0.50:0.50:0.00,
- 0.40:0.40:0.00]
-
-%D For the sake of implementing interface dependant color
-%D groups we support colorgroup duplication.
-
-\startinterface dutch
- \definecolorgroup [grijs] [gray]
- \definecolorgroup [rood] [red]
- \definecolorgroup [groen] [green]
- \definecolorgroup [blauw] [blue]
- \definecolorgroup [cyaan] [cyan]
- \definecolorgroup [magenta] [magenta]
- \definecolorgroup [geel] [yellow]
- \definecolorgroup [rood*] [red*]
- \definecolorgroup [groen*] [green*]
- \definecolorgroup [blauw*] [blue*]
- \definecolorgroup [geel*] [yellow*]
-\stopinterface
-
-\startinterface german
- \definecolorgroup [grau] [gray]
- \definecolorgroup [rot] [red]
- \definecolorgroup [gruen] [green]
- \definecolorgroup [blau] [blue]
- \definecolorgroup [cyan] [cyan]
- \definecolorgroup [magenta] [magenta]
- \definecolorgroup [gelb] [yellow]
- \definecolorgroup [rot*] [red*]
- \definecolorgroup [gruen*] [green*]
- \definecolorgroup [blau*] [blue*]
- \definecolorgroup [gelb*] [yellow*]
-\stopinterface
-
-\startinterface czech
- \definecolorgroup [seda] [gray]
- \definecolorgroup [cervena] [red]
- \definecolorgroup [zelena] [green]
- \definecolorgroup [modra] [blue]
- \definecolorgroup [azurova] [cyan]
- \definecolorgroup [fialova] [magenta]
- \definecolorgroup [zluta] [yellow]
- \definecolorgroup [cervena*] [red*]
- \definecolorgroup [zelena*] [green*]
- \definecolorgroup [modra*] [blue*]
- \definecolorgroup [zluta*] [yellow*]
-\stopinterface
-
-\startinterface italian
- \definecolorgroup [grigio] [gray]
- \definecolorgroup [rosso] [red]
- \definecolorgroup [verde] [green]
- \definecolorgroup [blu] [blue]
- \definecolorgroup [ciano] [cyan]
- \definecolorgroup [azzurro] [cyan]
- \definecolorgroup [turchino][cyan]
- \definecolorgroup [magenta] [magenta]
- \definecolorgroup [cremisi] [magenta]
- \definecolorgroup [giallo] [yellow]
- \definecolorgroup [rosso*] [red*]
- \definecolorgroup [verde*] [green*]
- \definecolorgroup [blu*] [blue*]
- \definecolorgroup [giallo*] [yellow*]
-\stopinterface
-
-%D The next set of color palets is quite language independant.
-%D These palets are meant as examples.
-
-\definepalet
- [alfa]
- [ top=red:7,
- bottom=green:6,
- up=blue:5,
- down=cyan:4,
- strange=magenta:3,
- charm=yellow:2]
-
-\definepalet
- [beta]
- [ top=red:7,
- bottom=green:5,
- up=blue:3,
- down=cyan:6,
- strange=magenta:2,
- charm=yellow:1]
-
-\definepalet
- [gamma]
- [ top=red:2,
- bottom=green:5,
- up=blue:3,
- down=cyan:6,
- strange=magenta:7,
- charm=yellow:4]
-
-\definepalet
- [delta]
- [ top=yellow*:5,
- bottom=yellow*:3,
- up=yellow*:2,
- down=magenta:6,
- strange=blue:4,
- charm=blue:1]
-
-\definepalet
- [epsilon]
- [ top=cyan:7,
- bottom=cyan:5,
- up=blue:3,
- down=yellow:6,
- strange=yellow:4,
- charm=yellow:2]
-
-\definepalet
- [zeta]
- [ top=red:6,
- bottom=green:5,
- up=blue:7,
- down=cyan:4,
- strange=magenta:3,
- charm=yellow:2]
-
-%D The next four colors are used for typesetting verbatim \TEX\
-%D in color.
-
-\definecolor [texcolorone] [middlered]
-\definecolor [texcolortwo] [middlegreen]
-\definecolor [texcolorthree] [middleblue]
-\definecolor [texcolorfour] [darkyellow]
-
-%D Bonus (needed for FO test):
-
-\definecolor [orange] [r=1,g=.5]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/colo-run.mkii b/Master/texmf-dist/tex/context/base/mkii/colo-run.mkii
deleted file mode 100644
index 02da462d385..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/colo-run.mkii
+++ /dev/null
@@ -1,257 +0,0 @@
-%D \module
-%D [ file=colo-run,
-%D version=1997.04.01,
-%D title=\CONTEXT\ Color Macros,
-%D subtitle=Runtime loaded commands,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-% temp hack (not do be documented)
-
-% \gdef\doformatcolorP#1:#2:#3:#4:#5:#6\od % was undefined in colo-ini
-% {#1\colorformatseparator
-% \dodoformatcolor{#2}\colorformatseparator
-% \dodoformatcolor{#3}\colorformatseparator
-% \dodoformatcolor{#4}\colorformatseparator}
-
-% \gdef\doformatgrayP#1:#2:#3:#4:#5:#6\od
-% {todo}
-
-% so far
-
-\gdef\showpalet
- {\dodoubleargument\doshowpalet}
-
-\gdef\doshowpalet[#1][#2]%
- {\doifdefined{\??pa#1}
- {\doifinsetelse\v!vertical{#2}
- {\showverticalpalet[#1][#2]}
- {\showhorizontalpalet[#1][#2]}}}
-
-\gdef\showverticalpalet[#1][#2]%
- {\localvbox
- {\offinterlineskip
- \setuppalet[#1]
- \def\rule
- {\vrule\!!width3em\!!height\strutht\!!depth\strutdp}
- \tabskip\zeropoint
- \def\doshowpalet##1%
- {\doifinsetelse\v!number{#2}{##1\hskip.5em}{}&
- \color[##1]{\rule}\graycolor[##1]{\rule}&
- \doifinset\v!value{#2}{\hskip.5em\colorvalue{##1}}\crcr}
- \halign
- {\hss##&\hss##\hss&##\cr
- &\doifinset{\v!name}{#2}{\strut#1}&\cr%
- \processpalet[#1]\doshowpalet\crcr}}}
-
-\gdef\showhorizontalpalet[#1][#2]%
- {\localvbox
- {\offinterlineskip
- \setuppalet[#1]
- \tabskip\zeropoint
- \!!widtha\zeropoint
- \doifinset\v!number{#2}
- {\def\doshowpalet##1%
- {\setbox0\hbox{##1}%
- \ifdim\!!widtha<\wd0\!!widtha\wd0\fi}%
- \processpalet[#1]\doshowpalet}%
- \advance\!!widtha 1em
- \ifdim\!!widtha<5em
- \!!widtha5em
- \fi
- \halign
- {##&&\hbox to \!!widtha{\hss##\hss}\cr
- \doifinset\v!number{#2}
- {\def\doshowpalet##1{&\strut##1}%
- \processpalet[#1]\doshowpalet}\cr
- \doifinset\v!name{#2}{#1\hskip.5em}%
- \def\doshowpalet##1%
- {&\strut\color[##1]{\vrule\!!width\!!widtha\!!height\strutht\!!depth\zeropoint}}%
- \processpalet[#1]\doshowpalet\crcr
- \noalign{\vskip-\strutdepth}%
- \def\doshowpalet##1%
- {&\graycolor[##1]{\vrule\!!width\!!widtha\!!height\zeropoint\!!depth\strutdp}}%
- \processpalet[#1]\doshowpalet\crcr
- \doifinset\v!value{#2}
- {\def\doshowpalet##1%
- {&\vbox
- {\hsize\!!widtha
- \vskip.25ex
- \everypar{\strut}
- \veryraggedcenter
- \let\colorformatseparator=\endgraf
- \colorvalue{##1}}}%
- \processpalet[#1]\doshowpalet}%
- \crcr}}}
-
-\gdef\processpalet[#1]%
- {\expanded{\globalprocesscommalist[\getvalue{\??pa#1}]}}
-
-\gdef\showcolorgroup
- {\dodoubleargument\doshowcolorgroup}
-
-\gdef\doshowcolorgroup[#1][#2]%
- {\doifcolor{#1:1}
- {\doifinsetelse\v!vertical{#2}
- {\showverticalcolorgroup[#1][#2]}
- {\showhorizontalcolorgroup[#1][#2]}}}
-
-\gdef\showhorizontalcolorgroup[#1][#2]%
- {\localvbox
- {\offinterlineskip
- \setuppalet
- \tabskip\zeropoint
- \def\rule
- {\vrule\!!width4em\!!height\strutht\!!depth\strutdp}
- \def\colorformatseparator{\strut\cr}
- \def\dodoshowgroup##1%
- {\halign
- {\hss####\hss\cr
- \doifinset\v!number{#2}{\strut##1}\cr
- \color[#1:##1]{\vrule\!!width4em\!!height\strutht\!!depth\zeropoint}\cr
- \graycolor[#1:##1]{\vrule\!!width4em\!!height\zeropoint\!!depth\strutdp}\cr
- \doifinset\v!value{#2}{\colorvalue{#1:##1}\strut}\crcr}}
- \def\doshowgroup##1%
- {\doifcolor{#1:##1}
- {\vbox{\dodoshowgroup{##1}}}}%
- \hbox
- {\doifinset\v!name{#2}
- {\strut
- \doifinsetelse\v!value{#2}
- {\raise3\lineheight\hbox{#1\hskip.5em}}
- {#1}%
- \hskip.5em}%
- \doshowgroup1\doshowgroup2\doshowgroup3\doshowgroup4%
- \doshowgroup5\doshowgroup6\doshowgroup7\doshowgroup8}}}
-
-\gdef\showverticalcolorgroup[#1][#2]%
- {\localvbox
- {\offinterlineskip
- \setuppalet
- \tabskip\zeropoint
- \def\rule
- {\vrule\!!width2.5em\!!height\strutht\!!depth\strutdp}%
- \def\doshowgroup##1%
- {\doifcolor{#1:##1}
- {\doifinset\v!number{#2}{##1\hskip.5em}&
- \color[#1:##1]{\rule}\graycolor[#1:##1]{\rule}&
- \doifinset\v!value{#2}{\hskip.5em\colorvalue{#1:##1}}\crcr}}%
- \halign
- {\hss##&\hss##\hss&##\hss\cr
- &\doifinset\v!name{#2}{\strut#1}&\crcr
- \doshowgroup1\doshowgroup2\doshowgroup3\doshowgroup4%
- \doshowgroup5\doshowgroup6\doshowgroup7\doshowgroup8}}}
-
-\gdef\showcolor
- {\dosingleempty\doshowcolor}
-
-\gdef\doshowcolor[#1]%
- {\bgroup
- \iffirstargument
- \let\colorlist\empty % not really used, only for colo-run
- \let\colorstyle\empty
- \settrue\collectcolorsinlist
- \setupcolor[#1]%
- \fi
- \def\rule
- {\vrule\!!width4em\!!height\strutht\!!depth\strutdp}%
- \def\docommand##1%
- {\NC\graycolor[##1]{\rule}\NC\color[##1]{\rule}\NC\grayvalue{##1}\NC\colorvalue{##1}\NC##1\NC\NR}%
- \starttabulate[|l|l|l|l|l|l|l|]
- \expanded{\globalprocesscommalist[\colorlist]}\docommand
- \stoptabulate
- \egroup}
-
-\gdef\comparepalet
- {\dosingleargument\docomparepalet}
-
-\gdef\docomparepalet[#1]%
- {\doifdefined{\??pa#1}
- {\hbox
- {\dodocomparepalet\color[#1]%
- \quad
- \dodocomparepalet\graycolor[#1]}}}
-
-\gdef\dodocomparepalet#1[#2]%
- {\localvbox
- {\offinterlineskip
- \setuppalet[#2]
- \getcommacommandsize[\getvalue{\??pa#2}]
- \!!widtha2em\relax
- \hsize\commalistsize\!!widtha
- \def\rule%
- {\vrule\!!width.5\!!widtha\!!height2.25ex\!!depth-.75ex}
- \def\dododocomparepalet##1%
- {\hbox
- {\setbox0\hbox
- {#1[##1]{\vrule\!!width\hsize\!!height3ex}}%
- \wd0\zeropoint
- \box0
- \hbox to \hsize
- {\def\dododocomparepalet####1%
- {\hbox to \!!widtha
- {\hss#1[####1]{\rule}\hss}}%
- \processcommacommand[\getvalue{\??pa#2}]\dododocomparepalet}}
- \endgraf}
- \processcommacommand[\getvalue{\??pa#2}]\dododocomparepalet}}
-
-\gdef\comparecolorgroup
- {\dosingleargument\docomparecolorgroup}
-
-\gdef\docomparecolorgroup[#1]%
- {\doifcolor{#1:1}
- {\hbox
- {\dodocomparecolorgroup\color[#1]%
- \quad
- \dodocomparecolorgroup\graycolor[#1]}}}
-
-\gdef\dodocomparecolorgroup#1[#2]%
- {\localvbox
- {\!!counta\zerocount
- \dorecurse{15}
- {\doifcolor{#2:\recurselevel}{\advance\!!counta\plusone}}
- \!!widtha2em\relax
- \hsize\!!counta\!!widtha
- \def\rule
- {\vrule\!!width.5\!!widtha\!!height2.25ex\!!depth-.75ex}
- \def\dododocomparecolorgroup##1%
- {\hbox to \hsize
- {\setbox0\hbox
- {#1[#2:##1]{\vrule\!!width\hsize\!!height3ex}}%
- \wd0\zeropoint
- \box0
- \hbox to \hsize
- {\hss\dorecurse\!!counta{#1[#2:\recurselevel]{\rule}\hss}}}
- \endgraf}
- \dorecurse\!!counta{\dododocomparecolorgroup\recurselevel}}}
-
-\gdef\dogetcolorcomponents#1%
- {\doifelsenothing{#1}
- {\appendtoks
- \TB
- \to \scratchtoks}
- {\appendtoks
- \NC\showcolorbar[#1]\NC#1\NC\transparencycomponents{#1}\NC\colorcomponents{#1}\NC \NR
- \to \scratchtoks}}
-
-\gdef\showcolorbar[#1]%
- {\backgroundline[#1]{\strut\enspace\color[white]{white}\enspace\color[black]{black}\enspace}}
-
-\gdef\showcolorcomponents[#1]%
- {\begingroup
- \scratchtoks{\TB}%
- \processcommacommand[#1]\dogetcolorcomponents
- \starttabulate[|lT|lT|lT|lT|]
- \NC color \NC name \NC transparency \NC specification \NC\NR
- \the\scratchtoks
- \stoptabulate
- \endgroup}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/colo-x11.mkii b/Master/texmf-dist/tex/context/base/mkii/colo-x11.mkii
deleted file mode 100644
index 45d3aac6248..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/colo-x11.mkii
+++ /dev/null
@@ -1,677 +0,0 @@
-%D \module
-%D [ file=colo-x11,
-%D version=2009.11.13,
-%D title=\CONTEXT\ Color Macros,
-%D subtitle=X11,
-%D author=Alan Braslau]
-%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 Standard X11 rgb colors (from \type {/usr/share/X11/rgb.txt}):
-
-\doifnotmode{mkiv} {
- \input colo-hex.mkii
-}
-
-\definecolor [snow] [h=fffafa]
-\definecolor [ghostwhite] [h=f8f8ff]
-\definecolor [whitesmoke] [s=0.96]
-\definecolor [gainsboro] [s=0.86]
-\definecolor [floralwhite] [h=fffaf0]
-\definecolor [oldlace] [h=fdf5e6]
-\definecolor [linen] [h=faf0e6]
-\definecolor [antiquewhite] [h=faebd7]
-\definecolor [papayawhip] [h=ffefd5]
-\definecolor [blanchedalmond] [h=ffebcd]
-\definecolor [bisque] [h=ffe4c4]
-\definecolor [peachpuff] [h=ffdab9]
-\definecolor [navajowhite] [h=ffdead]
-\definecolor [moccasin] [h=ffe4b5]
-\definecolor [cornsilk] [h=fff8dc]
-\definecolor [ivory] [h=fffff0]
-\definecolor [lemonchiffon] [h=fffacd]
-\definecolor [seashell] [h=fff5ee]
-\definecolor [honeydew] [h=f0fff0]
-\definecolor [mintcream] [h=f5fffa]
-\definecolor [azure] [h=f0ffff]
-\definecolor [aliceblue] [h=f0f8ff]
-\definecolor [lavender] [h=e6e6fa]
-\definecolor [lavenderblush] [h=fff0f5]
-\definecolor [mistyrose] [h=ffe4e1]
-\definecolor [white] [s=1]
-\definecolor [black] [s=0]
-\definecolor [darkslategray] [h=2f4f4f]
-\definecolor [darkslategrey] [darkslategray]
-\definecolor [dimgray] [s=0.41]
-\definecolor [dimgrey] [dimgray]
-\definecolor [slategray] [h=708090]
-\definecolor [slategrey] [slategray]
-\definecolor [lightslategray] [h=778899]
-\definecolor [lightslategrey] [lightslategray]
-\definecolor [gray] [s=0.75]
-\definecolor [grey] [gray]
-\definecolor [lightgrey] [s=0.83]
-\definecolor [lightgray] [lightgrey]
-\definecolor [midnightblue] [h=191970]
-\definecolor [navy] [h=000080]
-\definecolor [navyblue] [navy]
-\definecolor [cornflowerblue] [h=6495ed]
-\definecolor [darkslateblue] [h=483d8b]
-\definecolor [slateblue] [h=6a5acd]
-\definecolor [mediumslateblue] [h=7b68ee]
-\definecolor [lightslateblue] [h=8470ff]
-\definecolor [mediumblue] [h=0000cd]
-\definecolor [royalblue] [h=4169e1]
-\definecolor [blue] [h=0000ff]
-\definecolor [dodgerblue] [h=1e90ff]
-\definecolor [deepskyblue] [h=00bfff]
-\definecolor [skyblue] [h=87ceeb]
-\definecolor [lightskyblue] [h=87cefa]
-\definecolor [steelblue] [h=4682b4]
-\definecolor [lightsteelblue] [h=b0c4de]
-\definecolor [lightblue] [h=add8e6]
-\definecolor [powderblue] [h=b0e0e6]
-\definecolor [paleturquoise] [h=afeeee]
-\definecolor [darkturquoise] [h=00ced1]
-\definecolor [mediumturquoise] [h=48d1cc]
-\definecolor [turquoise] [h=40e0d0]
-\definecolor [cyan] [h=00ffff]
-\definecolor [lightcyan] [h=e0ffff]
-\definecolor [cadetblue] [h=5f9ea0]
-\definecolor [mediumaquamarine] [h=66cdaa]
-\definecolor [aquamarine] [h=7fffd4]
-\definecolor [darkgreen] [h=006400]
-\definecolor [darkolivegreen] [h=556b2f]
-\definecolor [darkseagreen] [h=8fbc8f]
-\definecolor [seagreen] [h=2e8b57]
-\definecolor [mediumseagreen] [h=3cb371]
-\definecolor [lightseagreen] [h=20b2aa]
-\definecolor [palegreen] [h=98fb98]
-\definecolor [springgreen] [h=00ff7f]
-\definecolor [lawngreen] [h=7cfc00]
-\definecolor [green] [h=00ff00]
-\definecolor [chartreuse] [h=7fff00]
-\definecolor [mediumspringgreen] [h=00fa9a]
-\definecolor [greenyellow] [h=adff2f]
-\definecolor [limegreen] [h=32cd32]
-\definecolor [yellowgreen] [h=9acd32]
-\definecolor [forestgreen] [h=228b22]
-\definecolor [olivedrab] [h=6b8e23]
-\definecolor [darkkhaki] [h=bdb76b]
-\definecolor [khaki] [h=f0e68c]
-\definecolor [palegoldenrod] [h=eee8aa]
-\definecolor [lightgoldenrodyellow] [h=fafad2]
-\definecolor [lightyellow] [h=ffffe0]
-\definecolor [yellow] [h=ffff00]
-\definecolor [gold] [h=ffd700]
-\definecolor [lightgoldenrod] [h=eedd82]
-\definecolor [goldenrod] [h=daa520]
-\definecolor [darkgoldenrod] [h=b8860b]
-\definecolor [rosybrown] [h=bc8f8f]
-\definecolor [indianred] [h=cd5c5c]
-\definecolor [saddlebrown] [h=8b4513]
-\definecolor [sienna] [h=a0522d]
-\definecolor [peru] [h=cd853f]
-\definecolor [burlywood] [h=deb887]
-\definecolor [beige] [h=f5f5dc]
-\definecolor [wheat] [h=f5deb3]
-\definecolor [sandybrown] [h=f4a460]
-\definecolor [tan] [h=d2b48c]
-\definecolor [chocolate] [h=d2691e]
-\definecolor [firebrick] [h=b22222]
-\definecolor [brown] [h=a52a2a]
-\definecolor [darksalmon] [h=e9967a]
-\definecolor [salmon] [h=fa8072]
-\definecolor [lightsalmon] [h=ffa07a]
-\definecolor [orange] [h=ffa500]
-\definecolor [darkorange] [h=ff8c00]
-\definecolor [coral] [h=ff7f50]
-\definecolor [lightcoral] [h=f08080]
-\definecolor [tomato] [h=ff6347]
-\definecolor [orangered] [h=ff4500]
-\definecolor [red] [h=ff0000]
-\definecolor [hotpink] [h=ff69b4]
-\definecolor [deeppink] [h=ff1493]
-\definecolor [pink] [h=ffc0cb]
-\definecolor [lightpink] [h=ffb6c1]
-\definecolor [palevioletred] [h=db7093]
-\definecolor [maroon] [h=b03060]
-\definecolor [mediumvioletred] [h=c71585]
-\definecolor [violetred] [h=d02090]
-\definecolor [magenta] [h=ff00ff]
-\definecolor [violet] [h=ee82ee]
-\definecolor [plum] [h=dda0dd]
-\definecolor [orchid] [h=da70d6]
-\definecolor [mediumorchid] [h=ba55d3]
-\definecolor [darkorchid] [h=9932cc]
-\definecolor [darkviolet] [h=9400d3]
-\definecolor [blueviolet] [h=8a2be2]
-\definecolor [purple] [h=a020f0]
-\definecolor [mediumpurple] [h=9370db]
-\definecolor [thistle] [h=d8bfd8]
-\definecolor [snow1] [h=fffafa]
-\definecolor [snow2] [h=eee9e9]
-\definecolor [snow3] [h=cdc9c9]
-\definecolor [snow4] [h=8b8989]
-\definecolor [seashell1] [h=fff5ee]
-\definecolor [seashell2] [h=eee5de]
-\definecolor [seashell3] [h=cdc5bf]
-\definecolor [seashell4] [h=8b8682]
-\definecolor [antiquewhite1] [h=ffefdb]
-\definecolor [antiquewhite2] [h=eedfcc]
-\definecolor [antiquewhite3] [h=cdc0b0]
-\definecolor [antiquewhite4] [h=8b8378]
-\definecolor [bisque1] [h=ffe4c4]
-\definecolor [bisque2] [h=eed5b7]
-\definecolor [bisque3] [h=cdb79e]
-\definecolor [bisque4] [h=8b7d6b]
-\definecolor [peachpuff1] [h=ffdab9]
-\definecolor [peachpuff2] [h=eecbad]
-\definecolor [peachpuff3] [h=cdaf95]
-\definecolor [peachpuff4] [h=8b7765]
-\definecolor [navajowhite1] [h=ffdead]
-\definecolor [navajowhite2] [h=eecfa1]
-\definecolor [navajowhite3] [h=cdb38b]
-\definecolor [navajowhite4] [h=8b795e]
-\definecolor [lemonchiffon1] [h=fffacd]
-\definecolor [lemonchiffon2] [h=eee9bf]
-\definecolor [lemonchiffon3] [h=cdc9a5]
-\definecolor [lemonchiffon4] [h=8b8970]
-\definecolor [cornsilk1] [h=fff8dc]
-\definecolor [cornsilk2] [h=eee8cd]
-\definecolor [cornsilk3] [h=cdc8b1]
-\definecolor [cornsilk4] [h=8b8878]
-\definecolor [ivory1] [h=fffff0]
-\definecolor [ivory2] [h=eeeee0]
-\definecolor [ivory3] [h=cdcdc1]
-\definecolor [ivory4] [h=8b8b83]
-\definecolor [honeydew1] [h=f0fff0]
-\definecolor [honeydew2] [h=e0eee0]
-\definecolor [honeydew3] [h=c1cdc1]
-\definecolor [honeydew4] [h=838b83]
-\definecolor [lavenderblush1] [h=fff0f5]
-\definecolor [lavenderblush2] [h=eee0e5]
-\definecolor [lavenderblush3] [h=cdc1c5]
-\definecolor [lavenderblush4] [h=8b8386]
-\definecolor [mistyrose1] [h=ffe4e1]
-\definecolor [mistyrose2] [h=eed5d2]
-\definecolor [mistyrose3] [h=cdb7b5]
-\definecolor [mistyrose4] [h=8b7d7b]
-\definecolor [azure1] [h=f0ffff]
-\definecolor [azure2] [h=e0eeee]
-\definecolor [azure3] [h=c1cdcd]
-\definecolor [azure4] [h=838b8b]
-\definecolor [slateblue1] [h=836fff]
-\definecolor [slateblue2] [h=7a67ee]
-\definecolor [slateblue3] [h=6959cd]
-\definecolor [slateblue4] [h=473c8b]
-\definecolor [royalblue1] [h=4876ff]
-\definecolor [royalblue2] [h=436eee]
-\definecolor [royalblue3] [h=3a5fcd]
-\definecolor [royalblue4] [h=27408b]
-\definecolor [blue1] [h=0000ff]
-\definecolor [blue2] [h=0000ee]
-\definecolor [blue3] [h=0000cd]
-\definecolor [blue4] [h=00008b]
-\definecolor [dodgerblue1] [h=1e90ff]
-\definecolor [dodgerblue2] [h=1c86ee]
-\definecolor [dodgerblue3] [h=1874cd]
-\definecolor [dodgerblue4] [h=104e8b]
-\definecolor [steelblue1] [h=63b8ff]
-\definecolor [steelblue2] [h=5cacee]
-\definecolor [steelblue3] [h=4f94cd]
-\definecolor [steelblue4] [h=36648b]
-\definecolor [deepskyblue1] [h=00bfff]
-\definecolor [deepskyblue2] [h=00b2ee]
-\definecolor [deepskyblue3] [h=009acd]
-\definecolor [deepskyblue4] [h=00688b]
-\definecolor [skyblue1] [h=87ceff]
-\definecolor [skyblue2] [h=7ec0ee]
-\definecolor [skyblue3] [h=6ca6cd]
-\definecolor [skyblue4] [h=4a708b]
-\definecolor [lightskyblue1] [h=b0e2ff]
-\definecolor [lightskyblue2] [h=a4d3ee]
-\definecolor [lightskyblue3] [h=8db6cd]
-\definecolor [lightskyblue4] [h=607b8b]
-\definecolor [slategray1] [h=c6e2ff]
-\definecolor [slategray2] [h=b9d3ee]
-\definecolor [slategray3] [h=9fb6cd]
-\definecolor [slategray4] [h=6c7b8b]
-\definecolor [lightsteelblue1] [h=cae1ff]
-\definecolor [lightsteelblue2] [h=bcd2ee]
-\definecolor [lightsteelblue3] [h=a2b5cd]
-\definecolor [lightsteelblue4] [h=6e7b8b]
-\definecolor [lightblue1] [h=bfefff]
-\definecolor [lightblue2] [h=b2dfee]
-\definecolor [lightblue3] [h=9ac0cd]
-\definecolor [lightblue4] [h=68838b]
-\definecolor [lightcyan1] [h=e0ffff]
-\definecolor [lightcyan2] [h=d1eeee]
-\definecolor [lightcyan3] [h=b4cdcd]
-\definecolor [lightcyan4] [h=7a8b8b]
-\definecolor [paleturquoise1] [h=bbffff]
-\definecolor [paleturquoise2] [h=aeeeee]
-\definecolor [paleturquoise3] [h=96cdcd]
-\definecolor [paleturquoise4] [h=668b8b]
-\definecolor [cadetblue1] [h=98f5ff]
-\definecolor [cadetblue2] [h=8ee5ee]
-\definecolor [cadetblue3] [h=7ac5cd]
-\definecolor [cadetblue4] [h=53868b]
-\definecolor [turquoise1] [h=00f5ff]
-\definecolor [turquoise2] [h=00e5ee]
-\definecolor [turquoise3] [h=00c5cd]
-\definecolor [turquoise4] [h=00868b]
-\definecolor [cyan1] [h=00ffff]
-\definecolor [cyan2] [h=00eeee]
-\definecolor [cyan3] [h=00cdcd]
-\definecolor [cyan4] [h=008b8b]
-\definecolor [darkslategray1] [h=97ffff]
-\definecolor [darkslategray2] [h=8deeee]
-\definecolor [darkslategray3] [h=79cdcd]
-\definecolor [darkslategray4] [h=528b8b]
-\definecolor [aquamarine1] [h=7fffd4]
-\definecolor [aquamarine2] [h=76eec6]
-\definecolor [aquamarine3] [h=66cdaa]
-\definecolor [aquamarine4] [h=458b74]
-\definecolor [darkseagreen1] [h=c1ffc1]
-\definecolor [darkseagreen2] [h=b4eeb4]
-\definecolor [darkseagreen3] [h=9bcd9b]
-\definecolor [darkseagreen4] [h=698b69]
-\definecolor [seagreen1] [h=54ff9f]
-\definecolor [seagreen2] [h=4eee94]
-\definecolor [seagreen3] [h=43cd80]
-\definecolor [seagreen4] [h=2e8b57]
-\definecolor [palegreen1] [h=9aff9a]
-\definecolor [palegreen2] [h=90ee90]
-\definecolor [palegreen3] [h=7ccd7c]
-\definecolor [palegreen4] [h=548b54]
-\definecolor [springgreen1] [h=00ff7f]
-\definecolor [springgreen2] [h=00ee76]
-\definecolor [springgreen3] [h=00cd66]
-\definecolor [springgreen4] [h=008b45]
-\definecolor [green1] [h=00ff00]
-\definecolor [green2] [h=00ee00]
-\definecolor [green3] [h=00cd00]
-\definecolor [green4] [h=008b00]
-\definecolor [chartreuse1] [h=7fff00]
-\definecolor [chartreuse2] [h=76ee00]
-\definecolor [chartreuse3] [h=66cd00]
-\definecolor [chartreuse4] [h=458b00]
-\definecolor [olivedrab1] [h=c0ff3e]
-\definecolor [olivedrab2] [h=b3ee3a]
-\definecolor [olivedrab3] [h=9acd32]
-\definecolor [olivedrab4] [h=698b22]
-\definecolor [darkolivegreen1] [h=caff70]
-\definecolor [darkolivegreen2] [h=bcee68]
-\definecolor [darkolivegreen3] [h=a2cd5a]
-\definecolor [darkolivegreen4] [h=6e8b3d]
-\definecolor [khaki1] [h=fff68f]
-\definecolor [khaki2] [h=eee685]
-\definecolor [khaki3] [h=cdc673]
-\definecolor [khaki4] [h=8b864e]
-\definecolor [lightgoldenrod1] [h=ffec8b]
-\definecolor [lightgoldenrod2] [h=eedc82]
-\definecolor [lightgoldenrod3] [h=cdbe70]
-\definecolor [lightgoldenrod4] [h=8b814c]
-\definecolor [lightyellow1] [h=ffffe0]
-\definecolor [lightyellow2] [h=eeeed1]
-\definecolor [lightyellow3] [h=cdcdb4]
-\definecolor [lightyellow4] [h=8b8b7a]
-\definecolor [yellow1] [h=ffff00]
-\definecolor [yellow2] [h=eeee00]
-\definecolor [yellow3] [h=cdcd00]
-\definecolor [yellow4] [h=8b8b00]
-\definecolor [gold1] [h=ffd700]
-\definecolor [gold2] [h=eec900]
-\definecolor [gold3] [h=cdad00]
-\definecolor [gold4] [h=8b7500]
-\definecolor [goldenrod1] [h=ffc125]
-\definecolor [goldenrod2] [h=eeb422]
-\definecolor [goldenrod3] [h=cd9b1d]
-\definecolor [goldenrod4] [h=8b6914]
-\definecolor [darkgoldenrod1] [h=ffb90f]
-\definecolor [darkgoldenrod2] [h=eead0e]
-\definecolor [darkgoldenrod3] [h=cd950c]
-\definecolor [darkgoldenrod4] [h=8b6508]
-\definecolor [rosybrown1] [h=ffc1c1]
-\definecolor [rosybrown2] [h=eeb4b4]
-\definecolor [rosybrown3] [h=cd9b9b]
-\definecolor [rosybrown4] [h=8b6969]
-\definecolor [indianred1] [h=ff6a6a]
-\definecolor [indianred2] [h=ee6363]
-\definecolor [indianred3] [h=cd5555]
-\definecolor [indianred4] [h=8b3a3a]
-\definecolor [sienna1] [h=ff8247]
-\definecolor [sienna2] [h=ee7942]
-\definecolor [sienna3] [h=cd6839]
-\definecolor [sienna4] [h=8b4726]
-\definecolor [burlywood1] [h=ffd39b]
-\definecolor [burlywood2] [h=eec591]
-\definecolor [burlywood3] [h=cdaa7d]
-\definecolor [burlywood4] [h=8b7355]
-\definecolor [wheat1] [h=ffe7ba]
-\definecolor [wheat2] [h=eed8ae]
-\definecolor [wheat3] [h=cdba96]
-\definecolor [wheat4] [h=8b7e66]
-\definecolor [tan1] [h=ffa54f]
-\definecolor [tan2] [h=ee9a49]
-\definecolor [tan3] [h=cd853f]
-\definecolor [tan4] [h=8b5a2b]
-\definecolor [chocolate1] [h=ff7f24]
-\definecolor [chocolate2] [h=ee7621]
-\definecolor [chocolate3] [h=cd661d]
-\definecolor [chocolate4] [h=8b4513]
-\definecolor [firebrick1] [h=ff3030]
-\definecolor [firebrick2] [h=ee2c2c]
-\definecolor [firebrick3] [h=cd2626]
-\definecolor [firebrick4] [h=8b1a1a]
-\definecolor [brown1] [h=ff4040]
-\definecolor [brown2] [h=ee3b3b]
-\definecolor [brown3] [h=cd3333]
-\definecolor [brown4] [h=8b2323]
-\definecolor [salmon1] [h=ff8c69]
-\definecolor [salmon2] [h=ee8262]
-\definecolor [salmon3] [h=cd7054]
-\definecolor [salmon4] [h=8b4c39]
-\definecolor [lightsalmon1] [h=ffa07a]
-\definecolor [lightsalmon2] [h=ee9572]
-\definecolor [lightsalmon3] [h=cd8162]
-\definecolor [lightsalmon4] [h=8b5742]
-\definecolor [orange1] [h=ffa500]
-\definecolor [orange2] [h=ee9a00]
-\definecolor [orange3] [h=cd8500]
-\definecolor [orange4] [h=8b5a00]
-\definecolor [darkorange1] [h=ff7f00]
-\definecolor [darkorange2] [h=ee7600]
-\definecolor [darkorange3] [h=cd6600]
-\definecolor [darkorange4] [h=8b4500]
-\definecolor [coral1] [h=ff7256]
-\definecolor [coral2] [h=ee6a50]
-\definecolor [coral3] [h=cd5b45]
-\definecolor [coral4] [h=8b3e2f]
-\definecolor [tomato1] [h=ff6347]
-\definecolor [tomato2] [h=ee5c42]
-\definecolor [tomato3] [h=cd4f39]
-\definecolor [tomato4] [h=8b3626]
-\definecolor [orangered1] [h=ff4500]
-\definecolor [orangered2] [h=ee4000]
-\definecolor [orangered3] [h=cd3700]
-\definecolor [orangered4] [h=8b2500]
-\definecolor [red1] [h=ff0000]
-\definecolor [red2] [h=ee0000]
-\definecolor [red3] [h=cd0000]
-\definecolor [red4] [h=8b0000]
-\definecolor [debianred] [h=d70751]
-\definecolor [deeppink1] [h=ff1493]
-\definecolor [deeppink2] [h=ee1289]
-\definecolor [deeppink3] [h=cd1076]
-\definecolor [deeppink4] [h=8b0a50]
-\definecolor [hotpink1] [h=ff6eb4]
-\definecolor [hotpink2] [h=ee6aa7]
-\definecolor [hotpink3] [h=cd6090]
-\definecolor [hotpink4] [h=8b3a62]
-\definecolor [pink1] [h=ffb5c5]
-\definecolor [pink2] [h=eea9b8]
-\definecolor [pink3] [h=cd919e]
-\definecolor [pink4] [h=8b636c]
-\definecolor [lightpink1] [h=ffaeb9]
-\definecolor [lightpink2] [h=eea2ad]
-\definecolor [lightpink3] [h=cd8c95]
-\definecolor [lightpink4] [h=8b5f65]
-\definecolor [palevioletred1] [h=ff82ab]
-\definecolor [palevioletred2] [h=ee799f]
-\definecolor [palevioletred3] [h=cd6889]
-\definecolor [palevioletred4] [h=8b475d]
-\definecolor [maroon1] [h=ff34b3]
-\definecolor [maroon2] [h=ee30a7]
-\definecolor [maroon3] [h=cd2990]
-\definecolor [maroon4] [h=8b1c62]
-\definecolor [violetred1] [h=ff3e96]
-\definecolor [violetred2] [h=ee3a8c]
-\definecolor [violetred3] [h=cd3278]
-\definecolor [violetred4] [h=8b2252]
-\definecolor [magenta1] [h=ff00ff]
-\definecolor [magenta2] [h=ee00ee]
-\definecolor [magenta3] [h=cd00cd]
-\definecolor [magenta4] [h=8b008b]
-\definecolor [orchid1] [h=ff83fa]
-\definecolor [orchid2] [h=ee7ae9]
-\definecolor [orchid3] [h=cd69c9]
-\definecolor [orchid4] [h=8b4789]
-\definecolor [plum1] [h=ffbbff]
-\definecolor [plum2] [h=eeaeee]
-\definecolor [plum3] [h=cd96cd]
-\definecolor [plum4] [h=8b668b]
-\definecolor [mediumorchid1] [h=e066ff]
-\definecolor [mediumorchid2] [h=d15fee]
-\definecolor [mediumorchid3] [h=b452cd]
-\definecolor [mediumorchid4] [h=7a378b]
-\definecolor [darkorchid1] [h=bf3eff]
-\definecolor [darkorchid2] [h=b23aee]
-\definecolor [darkorchid3] [h=9a32cd]
-\definecolor [darkorchid4] [h=68228b]
-\definecolor [purple1] [h=9b30ff]
-\definecolor [purple2] [h=912cee]
-\definecolor [purple3] [h=7d26cd]
-\definecolor [purple4] [h=551a8b]
-\definecolor [mediumpurple1] [h=ab82ff]
-\definecolor [mediumpurple2] [h=9f79ee]
-\definecolor [mediumpurple3] [h=8968cd]
-\definecolor [mediumpurple4] [h=5d478b]
-\definecolor [thistle1] [h=ffe1ff]
-\definecolor [thistle2] [h=eed2ee]
-\definecolor [thistle3] [h=cdb5cd]
-\definecolor [thistle4] [h=8b7b8b]
-\definecolor [gray0] [s=0.00]
-\definecolor [grey0] [gray0]
-\definecolor [gray1] [s=0.01]
-\definecolor [grey1] [gray1]
-\definecolor [gray2] [s=0.02]
-\definecolor [grey2] [gray2]
-\definecolor [gray3] [s=0.03]
-\definecolor [grey3] [gray3]
-\definecolor [gray4] [s=0.04]
-\definecolor [grey4] [gray4]
-\definecolor [gray5] [s=0.05]
-\definecolor [grey5] [gray5]
-\definecolor [gray6] [s=0.06]
-\definecolor [grey6] [gray6]
-\definecolor [gray7] [s=0.07]
-\definecolor [grey7] [gray7]
-\definecolor [gray8] [s=0.08]
-\definecolor [grey8] [gray8]
-\definecolor [gray9] [s=0.09]
-\definecolor [grey9] [gray9]
-\definecolor [gray10] [s=0.10]
-\definecolor [grey10] [gray10]
-\definecolor [gray11] [s=0.11]
-\definecolor [grey11] [gray11]
-\definecolor [gray12] [s=0.12]
-\definecolor [grey12] [gray12]
-\definecolor [gray13] [s=0.13]
-\definecolor [grey13] [gray13]
-\definecolor [gray14] [s=0.14]
-\definecolor [grey14] [gray14]
-\definecolor [gray15] [s=0.15]
-\definecolor [grey15] [gray15]
-\definecolor [gray16] [s=0.16]
-\definecolor [grey16] [gray16]
-\definecolor [gray17] [s=0.17]
-\definecolor [grey17] [gray17]
-\definecolor [gray18] [s=0.18]
-\definecolor [grey18] [gray18]
-\definecolor [gray19] [s=0.19]
-\definecolor [grey19] [gray19]
-\definecolor [gray20] [s=0.20]
-\definecolor [grey20] [gray20]
-\definecolor [gray21] [s=0.21]
-\definecolor [grey21] [gray21]
-\definecolor [gray22] [s=0.22]
-\definecolor [grey22] [gray22]
-\definecolor [gray23] [s=0.23]
-\definecolor [grey23] [gray23]
-\definecolor [gray24] [s=0.24]
-\definecolor [grey24] [gray24]
-\definecolor [gray25] [s=0.25]
-\definecolor [grey25] [gray25]
-\definecolor [gray26] [s=0.26]
-\definecolor [grey26] [gray26]
-\definecolor [gray27] [s=0.27]
-\definecolor [grey27] [gray27]
-\definecolor [gray28] [s=0.28]
-\definecolor [grey28] [gray28]
-\definecolor [gray29] [s=0.29]
-\definecolor [grey29] [gray29]
-\definecolor [gray30] [s=0.30]
-\definecolor [grey30] [gray30]
-\definecolor [gray31] [s=0.31]
-\definecolor [grey31] [gray31]
-\definecolor [gray32] [s=0.32]
-\definecolor [grey32] [gray32]
-\definecolor [gray33] [s=0.33]
-\definecolor [grey33] [gray33]
-\definecolor [gray34] [s=0.34]
-\definecolor [grey34] [gray34]
-\definecolor [gray35] [s=0.35]
-\definecolor [grey35] [gray35]
-\definecolor [gray36] [s=0.36]
-\definecolor [grey36] [gray36]
-\definecolor [gray37] [s=0.37]
-\definecolor [grey37] [gray37]
-\definecolor [gray38] [s=0.38]
-\definecolor [grey38] [gray38]
-\definecolor [gray39] [s=0.39]
-\definecolor [grey39] [gray39]
-\definecolor [gray40] [s=0.40]
-\definecolor [grey40] [gray40]
-\definecolor [gray41] [s=0.41]
-\definecolor [grey41] [gray41]
-\definecolor [gray42] [s=0.42]
-\definecolor [grey42] [gray42]
-\definecolor [gray43] [s=0.43]
-\definecolor [grey43] [gray43]
-\definecolor [gray44] [s=0.44]
-\definecolor [grey44] [gray44]
-\definecolor [gray45] [s=0.45]
-\definecolor [grey45] [gray45]
-\definecolor [gray46] [s=0.46]
-\definecolor [grey46] [gray46]
-\definecolor [gray47] [s=0.47]
-\definecolor [grey47] [gray47]
-\definecolor [gray48] [s=0.48]
-\definecolor [grey48] [gray48]
-\definecolor [gray49] [s=0.49]
-\definecolor [grey49] [gray49]
-\definecolor [gray50] [s=0.50]
-\definecolor [grey50] [gray50]
-\definecolor [gray51] [s=0.51]
-\definecolor [grey51] [gray51]
-\definecolor [gray52] [s=0.52]
-\definecolor [grey52] [gray52]
-\definecolor [gray53] [s=0.53]
-\definecolor [grey53] [gray53]
-\definecolor [gray54] [s=0.54]
-\definecolor [grey54] [gray54]
-\definecolor [gray55] [s=0.55]
-\definecolor [grey55] [gray55]
-\definecolor [gray56] [s=0.56]
-\definecolor [grey56] [gray56]
-\definecolor [gray57] [s=0.57]
-\definecolor [grey57] [gray57]
-\definecolor [gray58] [s=0.58]
-\definecolor [grey58] [gray58]
-\definecolor [gray59] [s=0.59]
-\definecolor [grey59] [gray59]
-\definecolor [gray60] [s=0.60]
-\definecolor [grey60] [gray60]
-\definecolor [gray61] [s=0.61]
-\definecolor [grey61] [gray61]
-\definecolor [gray62] [s=0.62]
-\definecolor [grey62] [gray62]
-\definecolor [gray63] [s=0.63]
-\definecolor [grey63] [gray63]
-\definecolor [gray64] [s=0.64]
-\definecolor [grey64] [gray64]
-\definecolor [gray65] [s=0.65]
-\definecolor [grey65] [gray65]
-\definecolor [gray66] [s=0.66]
-\definecolor [grey66] [gray66]
-\definecolor [gray67] [s=0.67]
-\definecolor [grey67] [gray67]
-\definecolor [gray68] [s=0.68]
-\definecolor [grey68] [gray68]
-\definecolor [gray69] [s=0.69]
-\definecolor [grey69] [gray69]
-\definecolor [gray70] [s=0.70]
-\definecolor [grey70] [gray70]
-\definecolor [gray71] [s=0.71]
-\definecolor [grey71] [gray71]
-\definecolor [gray72] [s=0.72]
-\definecolor [grey72] [gray72]
-\definecolor [gray73] [s=0.73]
-\definecolor [grey73] [gray73]
-\definecolor [gray74] [s=0.74]
-\definecolor [grey74] [gray74]
-\definecolor [gray75] [s=0.75]
-\definecolor [grey75] [gray75]
-\definecolor [gray76] [s=0.76]
-\definecolor [grey76] [gray76]
-\definecolor [gray77] [s=0.77]
-\definecolor [grey77] [gray77]
-\definecolor [gray78] [s=0.78]
-\definecolor [grey78] [gray78]
-\definecolor [gray79] [s=0.79]
-\definecolor [grey79] [gray79]
-\definecolor [gray80] [s=0.80]
-\definecolor [grey80] [gray80]
-\definecolor [gray81] [s=0.81]
-\definecolor [grey81] [gray81]
-\definecolor [gray82] [s=0.82]
-\definecolor [grey82] [gray82]
-\definecolor [gray83] [s=0.83]
-\definecolor [grey83] [gray83]
-\definecolor [gray84] [s=0.84]
-\definecolor [grey84] [gray84]
-\definecolor [gray85] [s=0.85]
-\definecolor [grey85] [gray85]
-\definecolor [gray86] [s=0.86]
-\definecolor [grey86] [gray86]
-\definecolor [gray87] [s=0.87]
-\definecolor [grey87] [gray87]
-\definecolor [gray88] [s=0.88]
-\definecolor [grey88] [gray88]
-\definecolor [gray89] [s=0.89]
-\definecolor [grey89] [gray89]
-\definecolor [gray90] [s=0.90]
-\definecolor [grey90] [gray90]
-\definecolor [gray91] [s=0.91]
-\definecolor [grey91] [gray91]
-\definecolor [gray92] [s=0.92]
-\definecolor [grey92] [gray92]
-\definecolor [gray93] [s=0.93]
-\definecolor [grey93] [gray93]
-\definecolor [gray94] [s=0.94]
-\definecolor [grey94] [gray94]
-\definecolor [gray95] [s=0.95]
-\definecolor [grey95] [gray95]
-\definecolor [gray96] [s=0.96]
-\definecolor [grey96] [gray96]
-\definecolor [gray97] [s=0.97]
-\definecolor [grey97] [gray97]
-\definecolor [gray98] [s=0.98]
-\definecolor [grey98] [gray98]
-\definecolor [gray99] [s=0.99]
-\definecolor [grey99] [gray99]
-\definecolor [gray100] [s=1.00]
-\definecolor [grey100] [gray100]
-\definecolor [darkgrey] [s=0.66]
-\definecolor [darkgray] [darkgrey]
-\definecolor [darkblue] [h=00008b]
-\definecolor [darkcyan] [h=008b8b]
-\definecolor [darkmagenta] [h=8b008b]
-\definecolor [darkred] [h=8b0000]
-\definecolor [lightgreen] [h=90ee90]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/colo-xwi.mkii b/Master/texmf-dist/tex/context/base/mkii/colo-xwi.mkii
deleted file mode 100644
index 48ffe234eff..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/colo-xwi.mkii
+++ /dev/null
@@ -1,143 +0,0 @@
-%D \module
-%D [ file=colo-xwi,
-%D version=1995.01.01,
-%D title=\CONTEXT\ Color Macros,
-%D subtitle=X Windows,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D I've forgotten where I got these definitions from, but maybe
-%D they can be of use. Watch out, these colors are in the rgb
-%D color space, so cyan is not defined in cmyk!
-
-\definecolor [aliceblue] [r=0.94,g=0.97,b=1.00]
-\definecolor [antiquewhite] [r=0.98,g=0.92,b=0.84]
-\definecolor [aquamarine] [r=0.50,g=1.00,b=0.83]
-\definecolor [azure] [r=0.94,g=1.00,b=1.00]
-\definecolor [beige] [r=0.96,g=0.96,b=0.86]
-\definecolor [bisque] [r=1.00,g=0.89,b=0.77]
-\definecolor [black] [s=0] % [r=0.00,g=0.00,b=0.00]
-\definecolor [blanchedalmond] [r=1.00,g=0.92,b=0.80]
-\definecolor [blue] [r=0.00,g=0.00,b=1.00]
-\definecolor [blueviolet] [r=0.54,g=0.17,b=0.89]
-\definecolor [brown] [r=0.65,g=0.16,b=0.16]
-\definecolor [burlywood] [r=0.87,g=0.72,b=0.53]
-\definecolor [cadetblue] [r=0.37,g=0.62,b=0.63]
-\definecolor [chartreuse] [r=0.50,g=1.00,b=0.00]
-\definecolor [chocolate] [r=0.82,g=0.41,b=0.12]
-\definecolor [coral] [r=1.00,g=0.50,b=0.31]
-\definecolor [cornflowerblue] [r=0.39,g=0.58,b=0.93]
-\definecolor [cornsilk] [r=1.00,g=0.97,b=0.86]
-\definecolor [cyan] [r=0.00,g=1.00,b=1.00]
-\definecolor [darkgoldenrod] [r=0.72,g=0.53,b=0.04]
-\definecolor [darkgreen] [r=0.00,g=0.39,b=0.00]
-\definecolor [darkkhaki] [r=0.74,g=0.72,b=0.42]
-\definecolor [darkolivegreen] [r=0.33,g=0.42,b=0.18]
-\definecolor [darkorange] [r=1.00,g=0.55,b=0.00]
-\definecolor [darkorchid] [r=0.60,g=0.20,b=0.80]
-\definecolor [darksalmon] [r=0.91,g=0.59,b=0.48]
-\definecolor [darkseagreen] [r=0.56,g=0.74,b=0.56]
-\definecolor [darkslateblue] [r=0.28,g=0.24,b=0.55]
-\definecolor [darkturquoise] [r=0.00,g=0.81,b=0.82]
-\definecolor [darkviolet] [r=0.58,g=0.00,b=0.83]
-\definecolor [deeppink] [r=1.00,g=0.08,b=0.58]
-\definecolor [deepskyblue] [r=0.00,g=0.75,b=1.00]
-\definecolor [dodgerblue] [r=0.12,g=0.56,b=1.00]
-\definecolor [firebrick] [r=0.70,g=0.13,b=0.13]
-\definecolor [floralwhite] [r=1.00,g=0.98,b=0.94]
-\definecolor [forestgreen] [r=0.13,g=0.55,b=0.13]
-\definecolor [gainsboro] [r=0.86,g=0.86,b=0.86]
-\definecolor [ghostwhite] [r=0.97,g=0.97,b=1.00]
-\definecolor [gold] [r=1.00,g=0.84,b=0.00]
-\definecolor [goldenrod] [r=0.85,g=0.65,b=0.13]
-\definecolor [green] [r=0.00,g=1.00,b=0.00]
-\definecolor [greenyellow] [r=0.68,g=1.00,b=0.18]
-\definecolor [honeydew] [r=0.94,g=1.00,b=0.94]
-\definecolor [hotpink] [r=1.00,g=0.41,b=0.71]
-\definecolor [indianred] [r=0.80,g=0.36,b=0.36]
-\definecolor [ivory] [r=1.00,g=1.00,b=0.94]
-\definecolor [khaki] [r=0.94,g=0.90,b=0.55]
-\definecolor [lavender] [r=0.90,g=0.90,b=0.98]
-\definecolor [lavenderblush] [r=1.00,g=0.94,b=0.96]
-\definecolor [lawngreen] [r=0.49,g=0.99,b=0.00]
-\definecolor [lemonchiffon] [r=1.00,g=0.98,b=0.80]
-\definecolor [lightblue] [r=0.68,g=0.85,b=0.90]
-\definecolor [lightcoral] [r=0.94,g=0.50,b=0.50]
-\definecolor [lightcyan] [r=0.88,g=1.00,b=1.00]
-\definecolor [lightgoldenrod] [r=0.93,g=0.87,b=0.51]
-\definecolor [lightgoldenrodyellow] [r=0.98,g=0.98,b=0.82]
-\definecolor [lightpink] [r=1.00,g=0.71,b=0.76]
-\definecolor [lightsalmon] [r=1.00,g=0.63,b=0.48]
-\definecolor [lightseagreen] [r=0.13,g=0.70,b=0.67]
-\definecolor [lightskyblue] [r=0.53,g=0.81,b=0.98]
-\definecolor [lightslateblue] [r=0.52,g=0.44,b=1.00]
-\definecolor [lightsteelblue] [r=0.69,g=0.77,b=0.87]
-\definecolor [lightyellow] [r=1.00,g=1.00,b=0.88]
-\definecolor [limegreen] [r=0.20,g=0.80,b=0.20]
-\definecolor [linen] [r=0.98,g=0.94,b=0.90]
-\definecolor [magenta] [r=1.00,g=0.00,b=1.00]
-\definecolor [maroon] [r=0.69,g=0.19,b=0.38]
-\definecolor [mediumaquamarine] [r=0.40,g=0.80,b=0.67]
-\definecolor [mediumblue] [r=0.00,g=0.00,b=0.80]
-\definecolor [mediumorchid] [r=0.73,g=0.33,b=0.83]
-\definecolor [mediumpurple] [r=0.58,g=0.44,b=0.86]
-\definecolor [mediumseagreen] [r=0.24,g=0.70,b=0.44]
-\definecolor [mediumslateblue] [r=0.48,g=0.41,b=0.93]
-\definecolor [mediumspringgreen] [r=0.00,g=0.98,b=0.60]
-\definecolor [mediumturquoise] [r=0.28,g=0.82,b=0.80]
-\definecolor [mediumvioletred] [r=0.78,g=0.08,b=0.52]
-\definecolor [midnightblue] [r=0.10,g=0.10,b=0.44]
-\definecolor [mintcream] [r=0.96,g=1.00,b=0.98]
-\definecolor [mistyrose] [r=1.00,g=0.89,b=0.88]
-\definecolor [moccasin] [r=1.00,g=0.89,b=0.71]
-\definecolor [navajowhite] [r=1.00,g=0.87,b=0.68]
-\definecolor [navy] [r=0.00,g=0.00,b=0.50]
-\definecolor [navyblue] [r=0.00,g=0.00,b=0.50]
-\definecolor [oldlace] [r=0.99,g=0.96,b=0.90]
-\definecolor [olivedrab] [r=0.42,g=0.56,b=0.14]
-\definecolor [orange] [r=1.00,g=0.65,b=0.00]
-\definecolor [orangered] [r=1.00,g=0.27,b=0.00]
-\definecolor [orchid] [r=0.85,g=0.44,b=0.84]
-\definecolor [palegoldenrod] [r=0.93,g=0.91,b=0.67]
-\definecolor [palegreen] [r=0.60,g=0.98,b=0.60]
-\definecolor [paleturquoise] [r=0.69,g=0.93,b=0.93]
-\definecolor [palevioletred] [r=0.86,g=0.44,b=0.58]
-\definecolor [papayawhip] [r=1.00,g=0.94,b=0.84]
-\definecolor [peachpuff] [r=1.00,g=0.85,b=0.73]
-\definecolor [peru] [r=0.80,g=0.52,b=0.25]
-\definecolor [pink] [r=1.00,g=0.75,b=0.80]
-\definecolor [plum] [r=0.87,g=0.63,b=0.87]
-\definecolor [powderblue] [r=0.69,g=0.88,b=0.90]
-\definecolor [purple] [r=0.63,g=0.13,b=0.94]
-\definecolor [red ] [r=1.00,g=0.00,b=0.00]
-\definecolor [rosybrown] [r=0.74,g=0.56,b=0.56]
-\definecolor [royalblue] [r=0.25,g=0.41,b=0.88]
-\definecolor [saddlebrown] [r=0.55,g=0.27,b=0.07]
-\definecolor [salmon] [r=0.98,g=0.50,b=0.45]
-\definecolor [sandybrown] [r=0.96,g=0.64,b=0.38]
-\definecolor [seagreen] [r=0.18,g=0.55,b=0.34]
-\definecolor [seashell] [r=1.00,g=0.96,b=0.93]
-\definecolor [sienna] [r=0.63,g=0.32,b=0.18]
-\definecolor [skyblue] [r=0.53,g=0.81,b=0.92]
-\definecolor [slateblue] [r=0.42,g=0.35,b=0.80]
-\definecolor [snow] [r=1.00,g=0.98,b=0.98]
-\definecolor [springgreen] [r=0.00,g=1.00,b=0.50]
-\definecolor [steelblue] [r=0.27,g=0.51,b=0.71]
-\definecolor [tancolor] [r=0.82,g=0.71,b=0.55] % we don't want it to clash
-\definecolor [thistle] [r=0.85,g=0.75,b=0.85]
-\definecolor [tomato] [r=1.00,g=0.39,b=0.28]
-\definecolor [turquoise] [r=0.25,g=0.88,b=0.82]
-\definecolor [violet] [r=0.93,g=0.51,b=0.93]
-\definecolor [violetred] [r=0.82,g=0.13,b=0.56]
-\definecolor [wheat] [r=0.96,g=0.87,b=0.70]
-\definecolor [white] [r=1.00,g=1.00,b=1.00]
-\definecolor [whitesmoke] [s=0.96] % [r=0.96,g=0.96,b=0.96]
-\definecolor [yellow] [r=1.00,g=1.00,b=0.00]
-\definecolor [yellowgreen] [r=0.60,g=0.80,b=0.20]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/cont-cs.mkii b/Master/texmf-dist/tex/context/base/mkii/cont-cs.mkii
deleted file mode 100644
index 89b781c37a1..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/cont-cs.mkii
+++ /dev/null
@@ -1,21 +0,0 @@
-%D \module
-%D [ file=cont-cs,
-%D version=1998.12.02,
-%D title=\CONTEXT,
-%D subtitle=\CONTEXT\ Czech Format Generation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\catcode`\{=1 \catcode`\}=2
-
-\def\defaultinterface {czech}
-\def\defaultlanguagetag{cs}
-
-\input context.mkii
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/cont-de.mkii b/Master/texmf-dist/tex/context/base/mkii/cont-de.mkii
deleted file mode 100644
index 5badc59d00b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/cont-de.mkii
+++ /dev/null
@@ -1,21 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\catcode`\{=1 \catcode`\}=2
-
-\def\defaultinterface {german}
-\def\defaultlanguagetag{de}
-
-\input context.mkii
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/cont-en.mkii b/Master/texmf-dist/tex/context/base/mkii/cont-en.mkii
deleted file mode 100644
index 9d0d4de2e33..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/cont-en.mkii
+++ /dev/null
@@ -1,21 +0,0 @@
-%D \module
-%D [ file=cont-en,
-%D version=1997.08.19,
-%D title=\CONTEXT,
-%D subtitle=\CONTEXT\ English Format Generation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\catcode`\{=1 \catcode`\}=2
-
-\def\defaultinterface {english}
-\def\defaultlanguagetag{en}
-
-\input context.mkii
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/cont-err.mkii b/Master/texmf-dist/tex/context/base/mkii/cont-err.mkii
deleted file mode 100644
index 00118f6ccec..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/cont-err.mkii
+++ /dev/null
@@ -1,18 +0,0 @@
-%D \module
-%D [ file=cont-err,
-%D version=2003.08.12,
-%D title=\CONTEXT\ System Files,
-%D subtitle=Just A warning,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\writestatus\m!systems{no file 'cont-sys.tex', using 'cont-sys.rme' instead}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/cont-fil.mkii b/Master/texmf-dist/tex/context/base/mkii/cont-fil.mkii
deleted file mode 100644
index 1f2923a6944..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/cont-fil.mkii
+++ /dev/null
@@ -1,131 +0,0 @@
-%D \module
-%D [ file=cont-fil,
-%D version=1997.11.15,
-%D title=\CONTEXT\ Miscellaneous Macros,
-%D subtitle=File Synonyms,
-%D author=J. Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt File Synonyms}
-
-\definefilesynonym [chemie] [chemic]
-\definefilesynonym [chemics] [chemic]
-
-\definefilesynonym [unit] [units]
-\definefilesynonym [eenheid] [units]
-\definefilesynonym [einheit] [units]
-
-\definefilesynonym [pstric] [pstricks]
-\definefilesynonym [pstrick] [pstricks]
-
-\definefilesynonym [finance] [financ]
-
-\definefilesynonym [con-01] [contml] % will go away
-
-%definefilesynonym [sch-base] [sch-00]
-%definefilesynonym [sch-make] [sch-01]
-
-\definefilesynonym [dir-make] [dir-01]
-\definefilesynonym [dir-identify] [dir-05]
-
-\definefilesynonym [xml-format] [xml-01]
-\definefilesynonym [xml-pretty] [xml-02]
-\definefilesynonym [xml-analyze] [xml-11]
-
-\definefilesynonym [int-load] [set-11]
-\definefilesynonym [int-make] [set-12]
-
-\definefilesynonym [fig-base] [fig-00]
-\definefilesynonym [fig-make] [fig-01]
-\definefilesynonym [fig-fake] [fig-02]
-\definefilesynonym [fig-missing] [fig-06]
-
-\definefilesynonym [exi-interface] [exi-21]
-
-\definefilesynonym [res-make] [res-01]
-\definefilesynonym [res-base] [res-04]
-\definefilesynonym [res-crop] [res-07]
-\definefilesynonym [res-trace] [res-08]
-\definefilesynonym [res-log] [res-09]
-\definefilesynonym [res-identify] [res-12]
-
-\definefilesynonym [med-show] [res-50]
-
-\definefilesynonym [pre-general] [pre-00]
-
-\definefilesynonym [pre-original] [pre-01]
-\definefilesynonym [pre-green] [pre-02]
-\definefilesynonym [pre-funny] [pre-03]
-\definefilesynonym [pre-colorful] [pre-04]
-\definefilesynonym [pre-fuzzy] [pre-05]
-\definefilesynonym [pre-polish] [pre-06]
-\definefilesynonym [pre-spider] [pre-07]
-\definefilesynonym [pre-wonder] [pre-08]
-\definefilesynonym [pre-windows] [pre-09]
-\definefilesynonym [pre-grow] [pre-10]
-\definefilesynonym [pre-stack] [pre-11]
-\definefilesynonym [pre-arrows] [pre-12]
-\definefilesynonym [pre-writing] [pre-13]
-\definefilesynonym [pre-split] [pre-14]
-\definefilesynonym [pre-balls] [pre-15]
-\definefilesynonym [pre-knot] [pre-16]
-\definefilesynonym [pre-weird] [pre-17]
-\definefilesynonym [pre-shade] [pre-18]
-\definefilesynonym [pre-organic] [pre-19]
-\definefilesynonym [pre-speckle] [pre-20]
-\definefilesynonym [pre-zoom] [pre-21]
-\definefilesynonym [pre-cycle] [pre-22]
-\definefilesynonym [pre-super] [pre-23]
-
-%definefilesynonym [pre-more] [pre-24]
-%definefilesynonym [pre-more] [pre-25]
-
-\definefilesynonym [pre-more] [pre-26]
-
-%definefilesynonym [pre-more] [pre-27]
-%definefilesynonym [pre-more] [pre-28]
-%definefilesynonym [pre-more] [pre-29]
-%definefilesynonym [pre-more] [pre-30]
-
-\definefilesynonym [pre-stepwise] [pre-60]
-\definefilesynonym [pre-stepper] [pre-61]
-
-\definefilesynonym [pre-punk] [pre-70]
-\definefilesynonym [pre-random] [pre-71]
-
-\definefilesynonym [abr-pseudocaps] [abr-01]
-\definefilesynonym [abr-smallcaps] [abr-02]
-\definefilesynonym [abr-03] [abr-01]
-\definefilesynonym [abr-04] [abr-01]
-
-\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]
-
-%definefilesynonym [practexjournal] [ptj-01]
-\definefilesynonym [pracjourn] [ptj-01]
-
-\definefilesynonym [maps] [map-10]
-\definefilesynonym [map-se] [map-10] % for some time
-
-\definefilesynonym [mml] [mathml]
-\definefilesynonym [cml] [chemml]
-
-\definefilesynonym [letter] [cor-01]
-\definefilesynonym [memo] [cor-02]
-
-\definefilesynonym [syn-01] [syntax]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/cont-fr.mkii b/Master/texmf-dist/tex/context/base/mkii/cont-fr.mkii
deleted file mode 100644
index e70cfe65eec..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/cont-fr.mkii
+++ /dev/null
@@ -1,21 +0,0 @@
-%D \module
-%D [ file=cont-de,
-%D version=1997.08.19,
-%D title=\CONTEXT,
-%D subtitle=\CONTEXT\ French Format Generation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\catcode`\{=1 \catcode`\}=2
-
-\def\defaultinterface {french}
-\def\defaultlanguagetag{fr}
-
-\input context.mkii
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/cont-gb.mkii b/Master/texmf-dist/tex/context/base/mkii/cont-gb.mkii
deleted file mode 100644
index 5cd0a9635b0..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/cont-gb.mkii
+++ /dev/null
@@ -1,21 +0,0 @@
-%D \module
-%D [ file=cont-uk,
-%D version=1997.08.19,
-%D title=\CONTEXT,
-%D subtitle=\CONTEXT\ English Format Generation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\catcode`\{=1 \catcode`\}=2
-
-\def\defaultinterface {english}
-\def\defaultlanguagetag{gb}
-
-\input context.mkii
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/cont-it.mkii b/Master/texmf-dist/tex/context/base/mkii/cont-it.mkii
deleted file mode 100644
index f15171403b3..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/cont-it.mkii
+++ /dev/null
@@ -1,21 +0,0 @@
-%D \module
-%D [ file=cont-it,
-%D version=1997.08.19,
-%D title=\CONTEXT,
-%D subtitle=\CONTEXT\ Italian Format Generation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\catcode`\{=1 \catcode`\}=2
-
-\def\defaultinterface {italian}
-\def\defaultlanguagetag{it}
-
-\input context.mkii
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/cont-log.mkii b/Master/texmf-dist/tex/context/base/mkii/cont-log.mkii
deleted file mode 100644
index 6a7a707952d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/cont-log.mkii
+++ /dev/null
@@ -1,304 +0,0 @@
-%D \module
-%D [ file=cont-log,
-%D version=1995.10.10,
-%D title=\CONTEXT\ Miscellaneous Macros,
-%D subtitle=\TEX\ Logos,
-%D author=J. Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt TeX Logos}
-
-%D The system that is used to typeset this text is called \TEX,
-%D typeset with an lowered~E. From te beginning of \TEX,
-%D authors of macro packages adapted this raising and lowering
-%D style. In this module we define some of those logos.
-
-%D The Computer Modern detection hack is gone as we now have Latin
-%D Modern which has more kerning pairs.
-
-\unprotect
-
-\def\Mkern#1%
- {{\setbox\scratchbox\hbox{M}\kern#1\wd\scratchbox}}
-
-\unexpanded\def\TeX
- {T%
- \Mkern{-.1667}\lower.5ex\hbox{E}%
- \Mkern{-.125}X}
-
-\unexpanded\def\ConTeXt{Con\TeX t}
-\unexpanded\def\PPCHTeX{ppch\TeX}
-\unexpanded\def\PRAGMA {Pragma ADE}
-
-\unexpanded\def\LaTeX % requested by erik frambach
- {{\setbox\scratchbox\hbox{L}%
- \scratchdimen\ht\scratchbox
- \setbox\scratchbox\hbox{\txx A}%
- L\kern-.55\wd\scratchbox
- \raise\scratchdimen\hbox{\lower\ht\scratchbox\copy\scratchbox}%
- \kern-.2\wd\scratchbox\TeX}}
-
-\unexpanded\def\TaBlE
- {T%
- \kern-.27em\lower.5ex\hbox{A}%
- \kern-.18emB%
- \kern-.1em\lower.5ex\hbox{L}%
- \kern-.075emE}
-
-\unexpanded\def\PiCTeX
- {P%
- \kern-.12em\lower.5ex\hbox{I}%
- \kern-.075em C%
- \kern-.11em\TeX}
-
-\def\AMSswitch#1%
- {$\cal\ifdim\bodyfontsize>1.1em\scriptstyle\fi#1$}
-
-\unexpanded\def\AmSTeX
- {\AMSswitch A%
- \kern-.1667em\lower.5ex\hbox{\AMSswitch M}%
- \kern-.125em\AMSswitch S%
- -\TeX}
-
-\unexpanded\def\LamSTeX
- {L%
- \kern-.4em\raise.3ex\hbox{\AMSswitch A}%
- \kern-.25em\lower.4ex\hbox{\AMSswitch M}%
- \kern-.1em{\AMSswitch S}%
- -\TeX}
-
-\unexpanded\def\AmSLaTeX
- {\AMSswitch A%
- \kern-.1667em\lower.5ex\hbox{\AMSswitch M}%
- \kern-.125em\AMSswitch S%
- -\LaTeX}
-
-%D Alternative \CONTEXT\ logo, first Idris S.~Hamid's version:
-%D
-%D \def\Context
-%D {{\sc C\kern -.0667emo\kern -.0667emn\kern -.0549emt\kern
-%D -.1667em\lower.5ex\hbox {e}\kern -.125emx\kern -.0549emt}}
-%D
-%D I changed this into one that adapts itself:
-
-\unexpanded\def\Context
- {{C\kern -.0667em\getscaledglyph{.8}\empty{O\kern -.0667emN\kern
- -.0549emT\doifitalicelse{\kern-.1em}{\kern-.1667em}\lower.5ex\hbox
- {E}\doifitalicelse\empty{\kern-.11em}X\kern-.055emT}}}
-
-%D The \METAFONT\ and \METAPOST\ logos adapt themselves to the
-%D current fontsize, an ugly but usefull hack.
-
-% rather hard coded
-%
-% \loadmapfile[original-base.map] % \loadmapfile[original-vogel-symbol]
-%
-% \unexpanded\def\setMFPfont
-% {\font\logofont=logo%
-% \ifnum\fam=\bffam\c!bf\else
-% \ifnum\fam=\slfam\c!sl\else
-% \ifnum\fam=\itfam\c!sl\else
-% \ifnum\fam=\bsfam\c!bf\else
-% \ifnum\fam=\bifam\c!bf\else
-% \fi\fi\fi\fi\fi
-% 10 at \currentfontscale\bodyfontsize
-% \logofont}
-%
-% or:
-%
-% \definefontsynonym [MetaLogo] [logo10]
-% \definefontsynonym [MetaLogoBold] [logobf10]
-% \definefontsynonym [MetaLogoSlanted] [logosl10]
-% \definefontsynonym [MetaLogoItalic] [logosl10]
-% \definefontsynonym [MetaLogoBoldSlanted] [logobf10]
-% \definefontsynonym [MetaLogoBoldtalic] [logobf10]
-%
-% \loadmapfile[original-base.map] % \loadmapfile[original-vogel-symbol]
-%
-% \def\setMFPfont{\symbolicfont{MetaLogo}}
-
-\let\logofont\nullfont
-
-\loadmapfile[original-base.map]
-
-\unexpanded\def\setMFPfont% more sensitive for low level changes
- {\font\logofont=logo%
- \ifx\fontalternative\c!bf\else
- \ifx\fontalternative\c!it\else
- \ifx\fontalternative\c!sl\else
- \ifx\fontalternative\c!bi\else
- \ifx\fontalternative\c!bs\else
- \fi\fi\fi\fi\fi
- 10 at \currentfontscale\bodyfontsize
- \logofont}
-
-%\unexpanded\def\MetaFont%
-% {\hbox{\setMFPfont METAFONT}}
-%
-%\unexpanded\def\MetaPost%
-% {\hbox{\setMFPfont METAPOST}}
-
-\def\MetaHyphen% there is no hyphenchar in this font
- {\discretionary{\vrule\!!height.33em\!!depth-.27em\!!width.33em}{}{}}
-
-\unexpanded\def\MetaFont
- {{\setMFPfont META\MetaHyphen FONT}}
-
-\unexpanded\def\MetaPost
- {{\setMFPfont META\MetaHyphen POST}}
-
-\unexpanded\def\MetaFun
- {MetaFun}
-
-%D \macros
-%D {TEX, METAFONT, METAPOST, METAFUN,
-%D PICTEX, TABLE,
-%D CONTEXT, PPCHTEX,
-%D AMSTEX, LATEX, LAMSTEX}
-%D
-%D We define the funny written ones as well as the less
-%D error prone upper case names (in \CONTEXT\ we tend to
-%D write all user defined commands, like abbreviations, in
-%D uppercase.)
-
-\unexpanded\def\METAFONT {\MetaFont}
-\unexpanded\def\METAPOST {\MetaPost}
-\unexpanded\def\PPCHTEX {\PPCHTeX}
-\unexpanded\def\CONTEXT {\ConTeXt}
-\unexpanded\def\METAFUN {\MetaFun}
-
-\unexpanded\def\TEX {\TeX}
-\unexpanded\def\LATEX {\LaTeX}
-\unexpanded\def\PICTEX {\PiCTeX}
-\unexpanded\def\TABLE {\TaBlE}
-\unexpanded\def\AMSTEX {\AmSTeX}
-\unexpanded\def\LAMSTEX {\LamSTeX}
-\unexpanded\def\INRSTEX {inrs\TeX}
-
-%D And this is how they show up: \TeX, \MetaFont, \MetaPost,
-%D \PiCTeX, \TaBlE, \ConTeXt, \PPCHTeX, \AmSTeX, \LaTeX,
-%D \LamSTeX.
-
-%D Some placeholders:
-
-\unexpanded\def\eTeX {\mathematics{\varepsilon}-\TeX}
-\unexpanded\def\pdfTeX {pdf\TeX}
-\unexpanded\def\pdfeTeX{pdfe-\TeX}
-\unexpanded\def\luaTeX {lua\TeX}
-\unexpanded\def\metaTeX{meta\TeX}
-\unexpanded\def\XeTeX {X\lower.5ex\hbox{\kern-.15em\mirror{E}}\kern-.1667em\TeX}
-
-% Adapted from a patch by Mojca:
-
-\def\@XeTeX@
- {\setbox\scratchbox\hbox{E}%
- \raise\dimexpr\ht\scratchbox+\dp\scratchbox\relax\hbox{\rotate[\c!rotation=180]{\box\scratchbox}}}
-
-\ifnum\texengine=\pdftexengine
-
- \unexpanded\def\XeTeX
- {X\lower.5ex
- \hbox
- {\kern-.15em
- \ifx\fontalternative\c!bf\mirror{E}\else
- \ifx\fontalternative\c!it \@XeTeX@\else
- \ifx\fontalternative\c!sl \@XeTeX@\else
- \ifx\fontalternative\c!bi \@XeTeX@\else
- \ifx\fontalternative\c!bs \@XeTeX@\else
- \mirror{E}\fi\fi\fi\fi\fi}%
- \kern-.1667em \TeX}
-
-\else
-
- \unexpanded\def\XeTeX
- {X\lower.5ex
- \hbox
- {\kern-.15em
- \iffontchar\font"018E\relax
- \char"018E%
- \else
- \ifx\fontalternative\c!bf\mirror{E}\else
- \ifx\fontalternative\c!it \@XeTeX@\else
- \ifx\fontalternative\c!sl \@XeTeX@\else
- \ifx\fontalternative\c!bi \@XeTeX@\else
- \ifx\fontalternative\c!bs \@XeTeX@\else
- \mirror{E}\fi\fi\fi\fi\fi
- \fi}%
- \kern-.1667em \TeX}
-
-\fi
-
-\let\ETEX \eTeX
-\let\PDFTEX \pdfTeX
-\let\PDFETEX\pdfeTeX
-\let\LUATEX \luaTeX
-\let\LuaTeX \luaTeX
-\let\XETEX \XeTeX
-
-\unexpanded\def\MkApproved % joke, not used so it might move
- {\dontleavehmode\rotate
- [\c!rotation={\ifnum\texengine=\luatexengine\ctxlua{tex.write(45-45*\the\luatexversion/100)}\else0\fi},
- \c!align=\v!middle,
- \c!foregroundstyle=\v!type,
- \c!foregroundcolor=darkred,
- \c!frame=\v!on,
- \c!offset=1ex,
- \c!background=\v!color,
- \c!backgroundcolor=lightgray,
- \c!framecolor=darkred,
- \c!rulethickness=2pt]
- {Mk\ifnum\texengine=\luatexengine IV\else II\fi\\approved}}
-
-% \unexpanded\def\luaTeX
-% {\dontleavehmode\begingroup
-% Lua%
-% \setbox0\hbox{oT}%
-% \setbox2\hbox{o\kern0ptT}%
-% \ifdim\wd0=\wd2
-% \setbox0\hbox dir TRT{To}%
-% \setbox2\hbox{T\kern0pto}%
-% \hskip\dimexpr\wd0-\wd2\relax
-% \fi
-% \TeX
-% \endgroup}
-%
-% a further iteration from the list, patched again
-
-% \ifx\fontalternative\c!it -\else
-% \ifx\fontalternative\c!sl -\else
-% \ifx\fontalternative\c!bi -\else
-% \ifx\fontalternative\c!bs -\fi\fi\fi\fi
-
-\def\LuaTeX
- {\dontleavehmode
- \begingroup
- Lua%
- % hope for kerning, try aT
- \setbox0\hbox{aT}%
- \setbox2\hbox{a\kern\zeropoint T}%
- \ifdim\wd0=\wd2 % kerns can go two ways
- % no aT kerning, try oT as a is not symmetrical
- \setbox0\hbox{oT}%
- \setbox2\hbox{o\kern\zeropoint T}%
- \ifdim\wd0=\wd2 % kerns can go two ways
- % no aT and oT kerning, try To
- \setbox0\hbox{To}%
- \setbox2\hbox{T\kern\zeropoint o}%
- % maybe we need to compensate for the angle (sl/it/bs/bi)
- \fi
- \ifdim\wd0=\wd2\else
- \kern\dimexpr\wd0-\wd2\relax
- \fi
- \fi
- \TeX
- \endgroup}
-
-\let\luaTeX \LuaTeX
-\let\LUATEX \LuaTeX
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii b/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii
deleted file mode 100644
index ca8b992be29..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/cont-new.mkii
+++ /dev/null
@@ -1,943 +0,0 @@
-%D \module
-%D [ file=cont-new,
-%D version=1995.10.10,
-%D title=\CONTEXT\ Miscellaneous Macros,
-%D subtitle=New Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\newcontextversion{2021.03.05 19:11}
-
-%D This file is loaded at runtime, thereby providing an
-%D excellent place for hacks, patches, extensions and new
-%D features.
-
-\unprotect
-
-% it's about time to clean up this file ...
-
-\writestatus\m!systems{beware: some patches loaded from cont-new.mkii}
-
-% \ifx\pdfmapfile \undefined \else \pdfmapfile{ } \fi
-
-% \font\f=dummyfont \rpcode\f0=500 \hbox{..}\char0
-% todo: mp-new
-% caption: grid=top|bottom in xml defs
-
-\def\fastscale#1%
- {\begingroup
- \ifnum#1=1000\relax
- \setfalse\scaleboxdone
- \else
- \settrue\scaleboxdone
- \edef\finalscaleboxxscale{\withoutpt\the\dimexpr#1pt/1000\relax}%
- \let\finalscaleboxyscale\finalscaleboxxscale
- \fi
- \dowithnextbox{\doscaleboxindeed\flushnextbox\endgroup}\hbox}
-
-% \setupcaption [figure] [align=flushleft]
-% \setupcaption [figure-1] [align=flushleft,leftmargin=10mm]
-% \setupcaption [figure-2] [align=flushleft,leftmargin=10mm,rightmargin=-10mm,width=\textwidth]
-%
-% \startsetups somefigure
-% \ifdim\floatsetupwidth>\textwidth
-% \placesetupfloat[figure-2]
-% \else
-% \placesetupfloat[figure-1]
-% \fi
-% \stopsetups
-%
-% \placefloatwithsetups[somefigure]{}{\externalfigure[dummy][width=5cm,height=2cm]}
-
-\def\placefloatwithsetups
- {\dotripleempty\doplacefloatwithsetups}
-
-\long\def\doplacefloatwithsetups[#1][#2][#3]#4%
- {\def\floatsetupcaption {#4}%
- \def\floatsetupcontent {\copy\nextbox}%
- \def\floatsetupwidth {\wd\nextbox}%
- \def\floatsetupheight {\ht\nextbox}%
- \def\placesetupfloat[##1]{\placefloat[##1][#2][#3]{#4}{\floatsetupcontent}}% #4 and not \floatsetupcaption (unexpanded)
- \dowithnextbox{\setups[#1]}\vbox}
-
-\def\dividedsize#1#2#3% size gap n
- {\dimexpr
- \ifnum\dimexpr#1\relax>\plusone
- (\dimexpr#1\relax-\numexpr#3-1\relax\dimexpr#2\relax)/#3\else#1%
- \fi
- \relax}
-
-% \setuplabeltext[\s!itemcount1={{I(},{)}}]
-% \def\labeledcountervalue#1{\labeltexts{#1}{\countervalue{#1}}}
-
-\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}}
-
-% just in case we load something from a file (pdfr-ec for instance)
-
-\prependtoks \restoreendofline \to \everybeforeshipout
-
-% \let\cs\getvalue % no, we want \cs to be czech
-
-% experimental so this may change
-
-\def\startdescriptions
- {\dosingleempty\dostartdescriptions}
-
-\def\dostartdescriptions[#1]%
- {\begingroup
- \def\item{\getvalue{#1}}%
- \let\dostoppairdescription \donothing
- \let\@@description \dostartpairdescription
- \let\@@startsomedescription\dostartsomedescription}
-
-\def\stopdescriptions
- {\dostoppairdescription
- \endgroup}
-
-\def\dostartpairdescription[#1][#2]%
- {\dostoppairdescription
- \def\dostoppairdescription{\@@stopdescription{#1}}%
- \bgroup
- \def\currentdescription{#1}%
- \doifelse{\descriptionparameter{\s!do\c!state}}\v!start
- {\@@makedescription{#1}[#2]{}}
- {\@@makedescription{#1}[#2]}}
-
-\def\dostartsomedescription% #1[#2]#3%
- {\bgroup
- \@@makedescription} % {#1}[#2]{#3}}
-
-% \starttext
-%
-% \definedescription[test]
-%
-% \startdescriptions
-% \test{Foo} Bar bar bar
-% \test{Foo} Bar bar bar
-% \test{Foo} Bar bar bar
-% \stopdescriptions
-%
-% \startdescriptions[test]
-% \item{Foo} Bar bar bar
-% \item{Foo} Bar bar bar
-% \item{Foo} Bar bar bar
-% \stopdescriptions
-%
-% \startdescriptions
-% \starttest{Foo} Bar bar bar \stoptest
-% \starttest{Foo} Bar bar bar \stoptest
-% \starttest{Foo} Bar bar bar \stoptest
-% \stopdescriptions
-%
-% \startdescriptions[test]
-% \item{Foo} Bar bar bar
-% \item{Foo} Bar bar bar
-% \item{Foo} Bar bar bar
-% \stopdescriptions
-%
-% \stoptext
-
-% to do:
-%
-% \def\defineshapesynonym
-% {\dodoubleargument\dodefineshapesynonym}
-%
-% \def\dodefineshapesynonym[#1][#2]%
-% {\setvalue{shsy:#1}{#2}}
-%
-% \def\shapesynonym#1%
-% {\ifcsname shsy:#1\endcsname
-% \expandafter\shapesynonym\csname shsy:#1\endcsname\else#1%
-% \fi}
-%
-%\defineshapesynonym[eacute] [e]
-%\defineshapesynonym[egrave] [e]
-%\defineshapesynonym[eumlaut [e]
-%\defineshapesynonym[eogonek][e]
-%
-% more reduction
-%
-%\defineshapesynonym[e][o]
-%\defineshapesynonym[w][v]
-%\defineshapesynonym[m][n]
-%
-% \shapesynonym{eacute}
-
-% this will be activated when
-
-% \newinsert\thispageinsert % <- installinsertion
-
-% \def\flushatthispage
-% {\bgroup
-% \dowithnextbox{\insert\thispageinsert{\box\nextbox}\egroup}%
-% \hbox}
-
-% \appendtoks
-% \ifvoid\thispageinsert\else\hbox{\smashedbox\thispageinsert}\fi
-% \to \everyshipout
-
-% \definemarkedpage[nobackgrounds]
-% \markpage[nobackgrounds]
-% \doifmarkedpageelse{nobackgrounds}
-
-\newcounter\nofmarkedpages
-
-\def\definemarkedpage[#1]%
- {\definetwopasslist{\v!page:#1}}
-
-\def\markpage[#1]% looks very much like domarginreference
- {\iftrialtypesetting\else
- \doglobal\increment\nofmarkedpages\relax
- \lazysavetwopassdata{\v!page:#1}{\nofmarkedpages}{\noexpand\realfolio}%
- \fi}
-
-\def\doifmarkedpageelse#1%
- {\gettwopassdatalist{\v!page:#1}%
- \expanded{\doifinsetelse{\realfolio}{\twopassdatalist}}}
-
-% Just a simple and fast hanger, for usage in macros.
-
-\def\setuphanging
- {\dodoubleempty\getparameters[\??ha]}
-
-\setuphanging
- [\c!distance=.5em]
-
-\def\starthanging
- {\noindent\bgroup
- \dowithnextbox
- {\setbox\nextbox\hbox{\flushnextbox\hskip\@@hadistance}%
- \hangindent\nextboxwd
- \hangafter\plusone
- \flushnextbox\ignorespaces}
- \hbox}
-
-\def\stophanging
- {\endgraf
- \egroup}
-
-% experimental
-
-\def\stophangaround
- {\endgraf
- \egroup}
-
-\def\starthangaround
- {\noindent\bgroup
- \dowithnextbox
- {\ifdim\nextboxht>\strutht\setbox\nextbox\tbox{\flushnextbox}\fi
- \setbox\nextbox\hbox{\flushnextbox\hskip\@@hadistance}%
- \getboxheight\scratchdimen\of\box\nextbox
- \getnoflines\scratchdimen
- \nextboxht\strutht
- \nextboxdp\strutdp
- \hangindent\nextboxwd
- \hangafter-\noflines
- \llap{\flushnextbox}\ignorespaces}
- \hbox}
-
-\def\modevalue#1#2#3%
- {\@EA\ifx\csname\@mode@\systemmodeprefix#1\endcsname\endcsname\enabledmode#2\else#2\fi}
-
-\def\systemmodevalue#1%
- {\modevalue{\systemmodeprefix#1}}
-
-% \getmulticolumnlines -> now in cont-loc, to be tested and really needed
-
-% \tracefonthandlingtrue
-
-% new, still to be improved
-%
-% \dorecurse{10}
-% {\input thuan
-% \placefigure{}{\framed[height=1.5cm]{test}}
-% \placefloatplaceholder}
-
-\def\placefloatplaceholder
- {\ifroomforfloat \else
- \scratchdimen\pagegoal
- \advance\scratchdimen-\pagetotal
- \advance\scratchdimen-3\lineheight
- \ifdim\scratchdimen>\zeropoint
- \startlinecorrection[blank]
- \mhbox{\inframed{\labeltexts{placeholder}{\lastcaptiontag}}}%
- \stoplinecorrection
- \else
- \allowbreak
- \fi
- \fi}
-
-\setuplabeltext
- [placeholder={, moved}]
-
-% etex only, of course we could just parse (scan for \% in string)
-
-\newif\ifpercentdimendone
-
-\bgroup % usage: \setpercentdimen\somedimen{% or dimen} todo: pct
-\catcode124=\@@comment
-\catcode 37=\@@active
-\gdef\setpercentdimen#1#2|
- {\xdef\@@expanded{#2}|
- \ifx\@@expanded\empty\else
- \bgroup
- \global\percentdimendonefalse
- \def\%{\dimexpr#1/100\relax\global\percentdimendonetrue\ignorespaces}| scantokens add's a space
- \catcode`%=\@@active
- \catcode`\\=\@@escape
- \let%\%|
- \scratchdimen#1|
- \xdef\@@expanded{\@@expanded\scratchdimen\!!zeropoint}| trick: when 1.2 => .2\scratchdimen and 0pt typeset
- \startnointerference
- \global\globalscratchdimen\scantokens\@EA{\@@expanded}| i'm lazy and use etex
- \stopnointerference
- \egroup
- #1\globalscratchdimen
- \fi}
-\egroup
-
-% TEX alternative, in principle accurate enough and also a bit faster
-
-% \bgroup
-%
-% \catcode`\%=\@@other
-% \catcode`\|=\@@comment
-%
-% \gdef\setpercentdimen#1#2|
-% {\beforesplitstring#2\at%\to\ascii
-% \doifelse\ascii{#2}
-% {#1=#2}
-% {\divide#1by100\relax#1=\ascii#1\relax}} | or: {#1=\ascii#1\divide#1by100\relax}}
-%
-% \egroup
-%
-% \dimen0=1000pt \setpercentdimen{\dimen0}{10%} \the\dimen0
-% \dimen0= 100pt \setpercentdimen{\dimen0}{10%} \the\dimen0
-% \dimen0= 95pt \setpercentdimen{\dimen0}{10%} \the\dimen0
-% \dimen0= 10pt \setpercentdimen{\dimen0}{10%} \the\dimen0
-% \dimen0= 1pt \setpercentdimen{\dimen0}{10%} \the\dimen0
-
-\bgroup
-
-\obeylines % don't remove %'s !
-
-\gdef\collapsedspace#1%
- {\ifx#1^^M%
- \expandafter\collapsedspace
- \else
- \space
- \expandafter#1%
- \fi}
-
-\gdef\collapsespaces
- {\prependtoksonce\relax\to\everyeof%
- \ignorelines%
- \ignoretabs%
- \let\obeyedspace\collapsedspace%
- \obeyspaces}
-
-\egroup
-
-\def\inlinedbox
- {\bgroup
- \dowithnextbox
- {\scratchdimen\nextboxht
- \advance\scratchdimen\nextboxdp
- \advance\scratchdimen-\lineheight
- \divide\scratchdimen\plustwo
- \advance\scratchdimen\strutdepth
- \setbox\nextbox\hbox{\lower\scratchdimen\flushnextbox}%
- \nextboxht\strutht
- \nextboxdp\strutdp
- \flushnextbox
- \egroup}%
- \hbox}
-
-% \readfile{cont-exp}\donothing\donothing % speed up (5-20%)
-
-\def\dimenratio#1#2% etex only
- {\withoutpt\the\dimexpr2\dimexpr(#1)/\dimexpr(#2)/32768\relax\relax}
-
-\def\doxprecurse#1#2%
- {\ifnum#1=\zerocount % no \ifcase
- \expandafter\gobblethreearguments
- \else
- #2\expandafter\expandafter\expandafter\doxprecurse\expandafter
- \fi\expandafter{\the\numexpr#1-1\relax}{#2}}
-
-\def\buttonframed{\dodoubleempty\localframed[\??bt]} % goodie
-
-\unexpanded\def\asciistr#1{\dontleavehmode{\defconvertedargument\ascii{#1}\verbatimfont\ascii}}
-
-\def\shapefill{\vskip\zeropoint\!!plus\lineheight\!!minus\lineheight\relax}
-
-\let\normaltype\type
-
-\ifx\scantextokens\undefined
- \ifx\scantokens\undefined
- \unexpanded\def\retype#1{\dontleavehmode{\defconvertedargument\ascii{#1}\@EA\normaltype\@EA{\ascii}}}
- \else
- \unexpanded\def\retype#1{\dontleavehmode\scantokens{\normaltype{#1}\ignorespaces}\relax}
- \fi
-\else
- \unexpanded\def\retype#1{\dontleavehmode\scantextokens{\normaltype{#1}}}
-\fi
-
-\def\simplifytype{\let\type\retype}
-
-% \ruledhbox
-% {\startignorespaces
-% \def\oeps{a}
-% \startignorespaces
-% \def\oeps{a}
-% \stopignorespaces
-% \def\oeps{a}
-% \stopignorespaces
-% \oeps}
-
-\newsignal\boissignal
-\newcount \boislevel
-
-\long\def\startignorespaces
- {\advance\boislevel\plusone
- \ifcase\boislevel\or \ifhmode
- \hskip\boissignal
- \fi \fi
- \ignorespaces}
-
-\long\def\stopignorespaces
- {\ifcase\boislevel\or \ifhmode
- \doloop
- {\ifdim\lastskip=\zeropoint
- \exitloop
- \else\ifdim\lastskip=\boissignal
- \unskip
- \exitloop
- \else
- \unskip
- \fi\fi}%
- \fi \fi
- \advance\boislevel\minusone}
-
-\def\minimalhbox#1#%
- {\dowithnextbox
- {\bgroup
- \setbox\scratchbox\hbox#1{\hss}%
- \ifdim\nextboxwd<\wd\scratchbox\nextboxwd\wd\scratchbox\fi
- \flushnextbox
- \egroup}
- \hbox}
-
-% \def\dodimchoice#1#2#3%
-% {\ifx#3\relax
-% #1\@EA\gobbleuntilrelax
-% \else\ifdim#1#2%
-% #3\@EAEAEA\gobbleuntilrelax
-% \else
-% \@EAEAEA\dodimchoice
-% \fi\fi{#1}}
-
-% \def\donumchoice#1#2#3%
-% {\ifx#3\relax
-% #1\@EA\gobbleuntilrelax
-% \else\ifnum#1#2%
-% #3\@EAEAEA\gobbleuntilrelax
-% \else
-% \@EAEAEA\dodimchoice
-% \fi\fi{#1}}
-
-% \def\dimchoice#1#2{\dodimchoice{#1}#2\empty\relax}
-% \def\numchoice#1#2{\donumchoice{#1}#2\empty\relax}
-
-\def\gobbleuntilempty#1\empty{}
-
-\def\dodimchoice#1#2#3%
- {\ifdim#1#2%
- #3\@EA\gobbleuntilempty
- \else
- \@EA\dodimchoice
- \fi{#1}}
-
-\def\donumchoice#1#2#3%
- {\ifnum#1#2%
- #3\@EA\gobbleuntilempty
- \else
- \@EA\dodimchoice
- \fi{#1}}
-
-\def\dimchoice#1#2{\dodimchoice{#1}#2{=#1}{#1}\empty}
-\def\numchoice#1#2{\donumchoice{#1}#2{=#1}{#1}\empty}
-
-% \the\dimexpr(\dimchoice {7pt}{{<10pt}{8pt}{<12pt}{9pt}{<15pt}{10pt}{=11pt}{12pt}})
-% \the\dimexpr(\dimchoice{11pt}{{<10pt}{8pt}{<12pt}{9pt}{<15pt}{10pt}{=11pt}{12pt}})
-% \the\dimexpr(\dimchoice{14pt}{{<10pt}{8pt}{<12pt}{9pt}{<15pt}{10pt}{=11pt}{12pt}})
-
-\def\showsetupsdefinition[#1]{\showvalue{\??su:#1}} % temp hack for debugging
-
-% will be a MyWay
-%
-% \setuplayout[grid=yes] \setupcaption[figure][inbetween=] \useMPlibrary[dum] \setupcolors[state=start]
-%
-% \starttext \showgrid \showstruts
-%
-% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=yes]}
-% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=fit]}
-% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=height]}
-% \input ward
-% \page
-% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=yes]}
-% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=fit]}
-% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=height]}
-% \input ward
-% \page
-% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=yes]}
-% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=fit]}
-% \input ward \placefigure{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=height]}
-% \input ward
-% \page
-% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=yes]}
-% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=fit]}
-% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.4,grid=height]}
-% \input ward
-% \page
-% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=yes]}
-% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=fit]}
-% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.5,grid=height]}
-% \input ward
-% \page
-% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=yes]}
-% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=fit]}
-% \input ward \placefigure[none]{}{\externalfigure[dummy][width=.5\hsize,lines=1.6,grid=height]}
-% \input ward
-%
-% \stoptext
-
-% funny, as field action with e.g. dissolve ... only the field dissolves, bug?
-
-\setglobalsystemreference\rt!exec{Transition}{transition}
-
-%def\PDFexecutetransition {/Trans /Trans <</Type /Trans \executeifdefined{PDFpage\argumentA}\PDFpagereplace>>}
-\def\PDFexecutetransition {/Trans /Trans <<\executeifdefined{PDFpage\argumentA}\PDFpagereplace>>}
-
-% new, continuous blocks, \som \par \startdoorlopendblok ...
-
-% \startitemize
-% \item bagger
-% \item bagger
-% \item \startdoorlopendblok bagger \stopdoorlopendblok
-% \item \endgraf \startdoorlopendblok bagger \stopdoorlopendblok
-% \item \endgraf \startdoorlopendblok \strut bagger \stopdoorlopendblok
-% \item \startdoorlopendblok
-% \starttabulate
-% \NC test \NC test \NC \NR
-% \NC test \NC test \NC \NR
-% \NC test \NC test \NC \NR
-% \stoptabulate
-% \stopdoorlopendblok
-% \item test
-% \stopitemize
-
-\def\startdoorlopendblok % for special cases, don't change it too much and don't rely on it
- {\ifhmode\endgraf\nobreak\fi % don't remove the \nobreak
- \dowithnextboxcontent
- {\setlocalhsize \hsize\localhsize \forgetall}
- {\bgroup
- \forgeteverypar
- \forgetparskip
- \scratchdimen\nextboxht
- \advance\scratchdimen\nextboxdp
- \getnoflines\scratchdimen
- \advance\scratchdimen-\strutheight
- \setbox\nextbox\hbox{\lower\scratchdimen\box\nextbox}%
- \ht\nextbox\strutheight
- \dp\nextbox\strutdepth
- \setbox\nextbox\vbox
- {\indent\box\nextbox
- \endgraf
- \nobreak
- \advance\noflines\minusone
- \dorecurse\noflines{\crlf\nobreak}}%
- \verticalstrut
- \endgraf
- \nobreak
- \offinterlineskip
- \kern-2\lineheight % 2\lineheight when no vertical struts in main \vbox
- \nobreak
- \unvbox\nextbox
- \prevdepth\strutdepth
- % evt (eerst testen) een signal zodat een direct volgend blok goed gaat)
- \egroup}
- \vbox\bgroup
- \vskip-\lineheight \verticalstrut\endgraf
- \insidefloattrue
- \doinhibitblank} % beware, no \inhibitblank ! ! ! ! ! !
-
-\def\stopdoorlopendblok
- {\endgraf\verticalstrut\endgraf\kern-2\lineheight
- \egroup}
-
-\def\tabulaterule % to be redone, not correct
- {\dotabulaterule
- {\hrule\!!height.5\scratchdimen\!!depth.5\scratchdimen\relax
- \doifvalue{\??tt\currenttabulate\c!distance}\v!grid
- {\kern-\scratchdimen}}} % experimental tm-prikkels
-
-% experimental: \synchronizegrid bla bla bla
-
-\newcounter\currentgridsync
-
-\def\gridsynctag{grs:\currentgridsync}
-
-\def\synchronizegrid
- {\doglobal\increment\currentgridsync
- \par\prevdepth\zeropoint
- \nointerlineskip
- \hpos\gridsynctag{\strut}\par
- \vskip-\lineheight
- \nointerlineskip
- % top of text
- \scratchdimen\MPy{\v!text:\MPp\gridsynctag}%
- \advance\scratchdimen\MPh{\v!text:\MPp\gridsynctag}%
- % move to first baseline
- \advance\scratchdimen-\topskip
- % subtract wrong baseline
- \advance\scratchdimen-\MPy\gridsynctag
- % get minimal number of lines
- \advance\scratchdimen\lineheight
- \getnoflines\scratchdimen
- % calculate difference
- \advance\scratchdimen-\noflines\lineheight\relax
- \scratchdimen-\scratchdimen\relax
- \ifdim\scratchdimen>\zeropoint
- \nointerlineskip
- \advance\scratchdimen-\lineheight
- \vskip\scratchdimen \dontleavehmode \quad \strut
- \par
- %\else
- % \message{no grid correction: \the\scratchdimen}\wait
- \fi}
-
-% between alignment lines certain rules apply, and even a
-% simple test can mess up a table, which is why we have a
-% special test facility
-%
-% \ruledvbox
-% {\starttabulate[|l|p|]
-% \NC 1test \NC test \NC \NR
-% \tableifelse{\doifelse{a}{a}}{\NC Xtest \NC test \NC \NR}{}%
-% \stoptabulate}
-
-\long\def\tableifelse#1%
- {\tablenoalign
- {#1%
- {\aftergroup \firstoftwoarguments}%
- {\aftergroup\secondoftwoarguments}}}
-
-\long \def\tableiftextelse#1{\tableifelse{\doiftextelse{#1}}}
-
-% experiment, not yet to be used
-
-\def\displaybreak
- {\ifhmode
- \removeunwantedspaces
- \ifcase\raggedstatus\hfill\fi
- \strut\penalty-9999 % \break fails on case (3)
- \fi}
-
-\def\startdisplay{\displaybreak\ignorespaces\startpacked}
-\def\stopdisplay {\stoppacked\displaybreak\ignorespaces}
-
-\def\tightvbox{\dowithnextbox{\nextboxdp\zeropoint\flushnextbox}\vbox}
-\def\tightvtop{\dowithnextbox{\nextboxht\zeropoint\flushnextbox}\vtop}
-
-% what is this stupid macro meant for:
-
-\def\hyphenationpoint
- {\hskip\zeropoint}
-
-\def\hyphenated#1%
- {\bgroup
- \!!counta\zerocount
- \def\hyphenated##1{\advance\!!counta\plusone}%
- \handletokens#1\with\hyphenated
- \!!countb\plusone
- \def\hyphenated##1%
- {##1%
- \advance\!!countb\plusone\relax
- \ifnum\!!countb>2 \ifnum\!!countb<\!!counta
- \hyphenationpoint
- \fi\fi}%
- \handletokens#1\with\hyphenated
- \egroup}
-
-\def\obeysupersubletters
- {\let\super\normalsuper
- \let\suber\normalsuber
- \let\normalsuper\letterhat
- \let\normalsuber\letterunderscore
- \enablesupersub}
-
-\def\obeysupersubmath
- {\let\normalsuper\letterhat
- \let\normalsuber\letterunderscore
- \enablesupersub}
-
-%\let\normaltype\type
-%
-%\def\type#1%
-% {\expanded{\normaltype{\detokenize{#1}}}}
-
-% {x123 \os x123} {\tfa x123 \os x123} {x123 \tx x123 \os x123}
-% \definefontsynonym[OldStyle][Serif]
-% {x123 \os x123} {\tfa x123 \os x123} {x123 \tx x123 \os x123}
-
-% testen :
-%
-% \appendtoks
-% \let\registerparoptions\relax
-% \to \everyforgetall
-
-\def\startgridcorrection
- {\dosingleempty\dostartgridcorrection}
-
-\def\dostartgridcorrection[#1]%
- {\ifgridsnapping
- \iffirstargument\doifsomething{#1}{\moveongrid[#1]}\fi
- \snaptogrid\vbox\bgroup
- \else
- \startbaselinecorrection
- \fi}
-
-\def\stopgridcorrection
- {\ifgridsnapping
- \egroup
- \else
- \stopbaselinecorrection
- \fi}
-
-\def\checkgridsnapping
- {\lineskip\ifgridsnapping\zeropoint\else\normallineskip\fi}
-
-\def\startplaatsen
- {\dosingleempty\dostartplaatsen}
-
-\def\dostartplaatsen[#1]% tzt n*links etc
- {\endgraf
- \noindent\bgroup
- \setlocalhsize
- \hbox to \localhsize\bgroup
- \doifnot{#1}\v!left\hss
- \def\stopplaatsen
- {\unskip\unskip\unskip
- \doifnot{#1}\v!right\hss
- \egroup
- \egroup
- \endgraf}%
- \gobblespacetokens}
-
-% \startplaatsen[links] bla \stopplaatsen
-
-% we don't register the paragraph characteristics, only the
-% width
-
-\appendtoks
- \setinnerparpositions % see "techniek" for application
-\to \everytabulate
-
-\def\fontclassname#1#2%
- {\ifcsname\??ff#1#2\endcsname
- \fontclassname{#1}{\csname\??ff#1#2\endcsname}%
- \else\ifcsname\??ff#2\endcsname
- \fontclassname{#1}{\csname\??ff#2\endcsname}%
- \else
- #2%
- \fi\fi}
-
-\def\defineclassfontsynonym
- {\dotripleargument\dodefineclassfontsynonym}
-
-\def\dodefineclassfontsynonym[#1][#2][#3]%
- {\definefontsynonym[#1][\fontclassname{#2}{#3}]}
-
-%\definefontsynonym [KopFont] [\fontclassname{officina}{SerifBold}]
-%
-%\defineclassfontsynonym [KopFont] [officina] [SerifBold]
-
-\def\startcolumnmakeup % don't change
- {\bgroup
- \getrawnoflines\textheight % teksthoogte kan topskip hebben, dus raw
- \scratchdimen\noflines\lineheight
- \advance\scratchdimen-\lineheight
- \advance\scratchdimen\topskip
- \setbox\scratchbox
- \ifcase\showgridstate\vbox\else\ruledvbox\fi to \scratchdimen\bgroup
- \forgetall} % ! don't change
-
-\def\stopcolumnmakeup
- {\egroup
- \dp\scratchbox\zeropoint
- \wd\scratchbox\textwidth
- \box\scratchbox
- \egroup
- \synchronizehsize}
-
-\long\def\startexternalfigure
- {\dotripleempty\dostartexternalfigure}
-
-\long\def\dostartexternalfigure[#1][#2][#3]#4\stopexternalfigure
- {\gdef\figuredescription{#4}%
- \externalfigure[#1][#2][#3]%
- \globallet\figuredescription\empty}
-
-\let\figuredescription\empty
-
-%% where does this come from, old code probably
-%%
-%%
-%% \newif\ifpagechanged \let\lastchangedpage\empty
-%%
-%% \def\checkpagechange#1%
-%% {\gettwopassdata\s!paragraph
-%% \pagechangedfalse
-%% \iftwopassdatafound
-%% \ifnum\twopassdata>0\getvalue{\s!paragraph:p:#1}\relax
-%% \pagechangedtrue
-%% \fi
-%% \fi
-%% \ifpagechanged
-%% \letgvalue{\s!paragraph:p:#1}\twopassdata
-%% \globallet\lastchangedpage\twopassdata
-%% \else
-%% \globallet\lastchangedpage\realfolio
-%% \fi
-%% \doparagraphreference}
-%%
-%% \def\changedpage#1%
-%% {\getvalue{\s!paragraph:p:#1}}
-
-\newcount\nofprofiled
-
-\def\profilemacro#1%
- {\nofprofiled\zerocount
- \letvalue{\string#1\string#1}#1%
- \appendtoks
- \normalwritestatus\m!systems{profile \string#1: \number\nofprofiled}%
- \to \everystoptext
- \unexpanded\def#1%
- {\global\advance\nofprofiled\plusone
- \csname\string#1\string#1\endcsname}}
-
-% incomplete, will be a special case of float placement
-
-\def\startfixed{\dosingleempty\dostartfixed}
-
-\def\dostartfixed[#1]%
- {\expanded{\dowithnextbox{\noexpand\dodofixed{\ifhmode0\else1\fi}{#1}}}%
- \vbox\bgroup
- \setlocalhsize}
-
-\def\stopfixed
- {\egroup}
-
-\def\dodofixed#1#2%
- {\ifcase#1\relax
- \processaction
- [#2]
- [ \v!high=>\bbox {\flushnextbox},
- \v!low=>\tbox {\flushnextbox},
- \v!middle=>\vcenter{\flushnextbox},
- \v!lohi=>\vcenter{\flushnextbox},
- \s!unknown=>\tbox {\flushnextbox},
- \s!default=>\tbox {\flushnextbox}]%
- \else
- \startbaselinecorrection
- \noindent\flushnextbox
- \stopbaselinecorrection
- \fi}
-
-% \startitemize
-%
-% \item \externalfigure[koe][height=2cm]
-% \item \externalfigure[koe][height=2cm]
-% \item \externalfigure[koe][height=2cm]
-% \item \externalfigure[koe][height=2cm]
-%
-% \page
-%
-% \item \startfixed \externalfigure[koe][height=2cm]\stopfixed
-% \item \startfixed[high]\externalfigure[koe][height=2cm]\stopfixed
-% \item \startfixed[low] \externalfigure[koe][height=2cm]\stopfixed
-% \item \startfixed[lohi]\externalfigure[koe][height=2cm]\stopfixed
-%
-% \page
-%
-% \item test \startfixed \externalfigure[koe][height=2cm]\stopfixed
-% \item test \startfixed[high]\externalfigure[koe][height=2cm]\stopfixed
-% \item test \startfixed[low] \externalfigure[koe][height=2cm]\stopfixed
-% \item test \startfixed[lohi]\externalfigure[koe][height=2cm]\stopfixed
-%
-% \page
-%
-% \item test \par \startfixed \externalfigure[koe][height=2cm]\stopfixed
-% \item test \par \startfixed[high]\externalfigure[koe][height=2cm]\stopfixed
-% \item test \par \startfixed[low] \externalfigure[koe][height=2cm]\stopfixed
-% \item test \par \startfixed[lohi]\externalfigure[koe][height=2cm]\stopfixed
-%
-% \stopitemize
-
-\def\obeyfollowingtoken{{}} % end \cs scanning
-
-% \def\comparedimension#1#2%
-% {\chardef\compresult
-% \ifdim#1<#2%
-% \zerocount
-% \else\ifdim#1<#2%
-% \plusone
-% \else
-% \plustwo
-% \fi\fi}
-% \newdimen\roundingeps \roundingeps=10sp
-% \def\comparedimensioneps#1#2%
-% {\chardef\compresult
-% \ifdim\dimexpr(#1-#2)<\roudingeps
-% \zerocount
-% \else\ifdim\dimexpr(#2-#1)<\roudingeps
-% \zerocount
-% \else\ifdim#1<#2%
-% \plusone
-% \else
-% \plustwo
-% \fi\fi\fi}
-
-%D Next we load a few local optimizations and new features. They
-%D live on on my machine and are not distributed, but they may end
-%D up in the distributed files.
-
-\enablemode[mkii] \enablemode[*mkii]
-
-\long\def\startluacode#1\stopluacode{}
-\long\def\ctxlua #1{}
-
-\def\enabletrackers [#1]{}
-\def\disabletrackers[#1]{}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/cont-nl.mkii b/Master/texmf-dist/tex/context/base/mkii/cont-nl.mkii
deleted file mode 100644
index f9cefaaac06..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/cont-nl.mkii
+++ /dev/null
@@ -1,21 +0,0 @@
-%D \module
-%D [ file=cont-nl,
-%D version=1997.08.19,
-%D title=\CONTEXT,
-%D subtitle=\CONTEXT\ Dutch Format Generation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\catcode`\{=1 \catcode`\}=2
-
-\def\defaultinterface {dutch}
-\def\defaultlanguagetag{nl}
-
-\input context.mkii
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/cont-ro.mkii b/Master/texmf-dist/tex/context/base/mkii/cont-ro.mkii
deleted file mode 100644
index d68cf5a4558..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/cont-ro.mkii
+++ /dev/null
@@ -1,22 +0,0 @@
-%D \module
-%D [ file=cont-ro,
-%D version=2000.01.09,
-%D title=\CONTEXT,
-%D subtitle=\CONTEXT\ Romanian Format Generation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\catcode`\{=1 \catcode`\}=2
-
-\def\defaultinterface {romanian}
-\def\defaultlanguagetag{ro}
-
-\input context.mkii
-
-\endinput
-
diff --git a/Master/texmf-dist/tex/context/base/mkii/cont-sys.ori b/Master/texmf-dist/tex/context/base/mkii/cont-sys.ori
deleted file mode 100644
index fa438a78d4f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/cont-sys.ori
+++ /dev/null
@@ -1,186 +0,0 @@
-%D \module
-%D [ file=cont-sys,
-%D version=1995.10.10,
-%D title=\CONTEXT\ Miscellaneous Macros,
-%D subtitle=System Specific Setups,
-%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 Beware, this is a MkII specific file. In MkIV we only load
-%D cont-sys.mkiv but in MkII we load the first found of
-%D cont-sys.mkii, cont-sys.tex, cont-sys.rme.
-
-\unprotect
-
-% Speed up typescript loading, but at the cost of much memory:
-
-\preloadtypescripts
-
-% If you want another default font:
-%
-% \let\preloadfonts\relax
-% \usetypescript[palatino][\defaultencoding]
-% \setupbodyfont[palatino,rm,12pt]
-%
-% Please make sure that this defines rm, ss, tt and mm.
-
-% Occasionally we will support both A4 and letter in
-% styles. If you want letter size paper to be the default,
-% uncomment:
-%
-% \enablemode[\systemmodeprefix letter]
-%
-% If you always want to default to letter, you may uncomment
-% the following line, but beware: it makes your documents less
-% portable:
-%
-% \setuppapersize[letter][letter]
-
-% If you want some extras, just uncomment the following
-% line:
-%
-% \usemodule[plus] % experimental code
-%
-% Here you can take care of overloading some (style)
-% defaults. What goes here, depends on your local system.
-
-% The following commands sets the default font encoding:
-%
-% \setupencoding [\s!default=texnansi]
-%
-% or:
-
-\setupencoding [\s!default=ec]
-
-% If you want the default berry names:
-%
-% \usetypescript [berry] [\defaultencoding]
-%
-% or, if you also want other encodings:
-
-\usetypescript [berry] [ec,t5,8r] % texnansi is never present
-
-% If you run into missing font metrics kind of problems,
-% you may want to uncomment:
-%
-% \usetypescript[adobekb] [\defaultencoding]
-
-% You can let \CONTEXT\ load the map files for \PDFTEX.
-
-\autoloadmapfilestrue
-
-% (1) you can prevent loading with:
-%
-% \preloadmapfile[<...somename...>.map]
-%
-% (2) otherwise, use this if you have a fast machine
-%
-% \resetmapfiles \usetypescript [map] [base] [all]
-%
-% (3) or this if it's a slow one:
-
-\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
-
- \loadmapfile[original-base.map]
- \loadmapfile[texnansi-base.map]
- \loadmapfile[ec-base.map]
- \loadmapfile[qx-base.map]
- \loadmapfile[t5-base.map]
- %loadmapfile[il2-base.map]
- %loadmapfile[pl0-base.map]
- \loadmapfile[8r-base.map]
-
- \loadmapfile[original-ams-base.map]
- \loadmapfile[original-ams-euler.map]
-
- \loadmapfile[original-public-lm.map]
-
- %loadmapfile[texnansi-public-lm.map]
- %loadmapfile[ec-public-lm.map]
- %loadmapfile[qx-public-lm.map]
- %loadmapfile[t5-public-lm.map]
- %loadmapfile[pl0-public-lm.map]
- %loadmapfile[il2-public-lm.map]
-
-\fi
-
-% When you have your own fonts installed, you may want to predefine:
-%
-% \usetypescriptfile[type-buy]
-
-% Some styles default to Lucida Bright. You can overload
-% Lucida by Times cum suis. Watch out, the pos collection
-% is not scaled relatively.
-%
-% \definetypescriptsynonym [lbr] [pos]
-
-% Compensate for missing files:
-%
-% \definefontsynonym [gbhei] [gbsong]
-% \definefontsynonym [gbheisl] [gbsong]
-% \definefontsynonym [gbheisl] [gbsong]
-
-% Setting up a global figure path
-%
-% \setupexternalfigures [\c!directory={e:/fig/eps,t:/mine/figs}]
-%
-% Loading a specific special driver:
-%
-% \setupoutput [dviwindo]
-
-% Changing language defaults
-%
-% \setuplanguage
-% [nl]
-% [\c!leftquote=\upperleftsinglesixquote,
-% \c!leftquotation=\upperleftdoublesixquote]
-
-% Loading local preferences, for example
-%
-% \input prag-gen % company styles
-% \input prag-log % more company styles
-%
-% Enabling run time \METAPOST\ (also enable \write18 in
-% texmf.cnf):
-
-\runMPgraphicstrue
-\runMPTEXgraphicstrue
-
-% This saves some runtime, but needs a format, which you can
-% make with 'texexec --make --alone metafun'. Make sure that
-% the mem files are moved to the used web2c path (locate with
-% 'kpsewhich plain.mem').
-
-\useMETAFUNformattrue
-
-% This can be a way to get things working on system with
-% name clashes. (Some \TeX's tend do search system wide.)
-
-\protectbufferstrue
-
-% You can enable a more extensive figure searching, but
-% normally this is not really needed and even annoying.
-%
-% \runutilityfiletrue
-
-% So far.
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/context.mkii b/Master/texmf-dist/tex/context/base/mkii/context.mkii
deleted file mode 100644
index 33f8c3aba5a..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/context.mkii
+++ /dev/null
@@ -1,436 +0,0 @@
- %D \module
-%D [ file=context,
-%D version=2008.28.10, % 1995.10.10,
-%D title=\CONTEXT,
-%D subtitle=\CONTEXT\ Format Generation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\catcode`\{=1 \catcode`\}=2 \catcode`\#=6
-
-%D From the next string (which is set by the script that assembles the
-%D distribution) later on we will calculate a number that can be used
-%D by use modules to identify the feature level. Starting with version
-%D 2004.8.30 the low level interface is english. Watch out and adapt
-%D your styles an modules.
-
-\edef\contextformat {\jobname}
-\edef\contextversion{2021.03.05 19:11}
-
-%D For those who want to use this:
-
-\let\fmtname \contextformat
-\let\fmtversion\contextversion
-
-%D Loading:
-
-\edef\mksuffix {mkii}
-\edef\contextmark{MKII}
-
-\ifx\normalinput\undefined \let\normalinput\input \fi
-
-\def\loadmarkfile#1{\normalinput#1.\mksuffix\relax}
-
-%D First we load the system modules. These implement a lot of
-%D manipulation macros. The first one loads \PLAIN\ \TEX, as
-%D minimal as possible.
-
-\loadmarkfile{syst-ini}
-
-%D Some checking (more primitives are now defined):
-
-\ifdefined\defaultinterface \else \def\defaultinterface {english} \fi
-%ifdefined\messageinterface \else \let\messageinterface \defaultinterface \fi
-\ifdefined\defaultlanguagetag \else \def\defaultlanguagetag{en} \fi
-
-%D More core code.
-
-\loadmarkfile{syst-pln}
-
-\loadmarkfile{norm-tex}
-\loadmarkfile{norm-etx}
-\loadmarkfile{norm-ptx}
-\loadmarkfile{norm-xtx}
-\loadmarkfile{norm-ctx}
-
-\loadmarkfile{catc-ini}
-\loadmarkfile{catc-act}
-\loadmarkfile{catc-def}
-\loadmarkfile{catc-ctx}
-\loadmarkfile{catc-sym}
-\loadmarkfile{catc-xml}
-
-\loadmarkfile{syst-gen}
-\loadmarkfile{syst-ext}
-\loadmarkfile{syst-new}
-\loadmarkfile{syst-con}
-\loadmarkfile{thrd-trg} % based on: David Carlisle
-
-\loadmarkfile{syst-fnt}
-\loadmarkfile{syst-str}
-\loadmarkfile{syst-rtp}
-
-\ifnum\texengine=\xetexengine
- \loadmarkfile{xetx-ini}
- \loadmarkfile{xetx-utf}
- \loadmarkfile{xetx-chr}
- \loadmarkfile{xetx-cls}
-\fi
-
-
-%D To enable selective loading, we say:
-
-\newif\ifCONTEXT \CONTEXTtrue % will disappear
-
-%D In order to conveniently load files, we need a few
-%D support modules.
-
-\loadmarkfile{supp-fil}
-\loadmarkfile{supp-dir}
-
-%D This is for mkii bibtex users who expect \LATEX\ commands.
-
-\loadmarkfile{supp-lat}
-
-%D After this we're ready for the multi||lingual interface
-%D modules.
-
-\loadmarkfile{mult-ini}
-\loadmarkfile{mult-fst}
-\loadmarkfile{mult-sys}
-\loadmarkfile{mult-def}
-\loadmarkfile{mult-chk}
-\loadmarkfile{mult-aux}
-
-%D Now we're ready for some general support modules. These
-%D modules implement some basic typesetting functionality.
-
-\loadmarkfile{core-var}
-\loadmarkfile{core-env}
-
-\loadmarkfile{supp-box}
-\loadmarkfile{supp-mrk}
-\loadmarkfile{supp-vis}
-\loadmarkfile{supp-fun}
-%loadmarkfile{supp-eps}
-\loadmarkfile{supp-spe}
-\loadmarkfile{supp-ran}
-\loadmarkfile{supp-mps}
-\loadmarkfile{supp-tpi}
-\loadmarkfile{supp-mat}
-\loadmarkfile{supp-ali}
-\loadmarkfile{supp-num}
-
-%D Verbatim typesetting is implemented in a separate class of
-%D modules. The pretty typesetting modules are loaded at run
-%D time.
-
-\loadmarkfile{verb-ini}
-
-%D The following modules are not sequentially dependent,
-%D i.e. they have ugly dependencies, which will be cleaned
-%D up by adding more overloading.
-
-%D When loading the font, color and special modules, we need a
-%D bit more advanced file handling as well as some general
-%D variables, and features, so next we load:
-
-\loadmarkfile{page-ins}
-\loadmarkfile{core-fil}
-\loadmarkfile{core-con}
-
-%D We already need some synonyms (patterns).
-
-\loadmarkfile{cont-fil}
-
-%D \CONTEXT\ does not implement its own table handling. We
-%D just go for the best there is and load \TABLE. Just to be
-%D sure we do it here, before we redefine \type{|}.
-
-\loadmarkfile{thrd-tab} % based on: Michael Wichura's TaBlE
-
-%D Here comes the last support modules. They take care of
-%D some language specific things.
-
-\loadmarkfile{supp-pat}
-
-%D The next few modules do what their names state. They
-%D load additional definition modules when needed.
-
-\loadmarkfile{regi-ini}
-\loadmarkfile{regi-syn}
-\loadmarkfile{enco-ini}
-%loadmarkfile{filt-ini}
-\loadmarkfile{hand-ini}
-
-\loadmarkfile{lang-ini}
-\loadmarkfile{lang-spe}
-\loadmarkfile{lang-lab}
-
-\loadmarkfile{unic-ini}
-
-\loadmarkfile{core-gen}
-\loadmarkfile{core-uti}
-\loadmarkfile{core-two}
-\loadmarkfile{core-stg}
-
-\loadmarkfile{spec-ini}
-\loadmarkfile{spec-mis}
-\loadmarkfile{spec-def}
-\loadmarkfile{spec-var}
-
-\loadmarkfile{colo-ini}
-\loadmarkfile{colo-ext}
-
-%D For the moment we load a lot of languages. In the future
-%D we'll have to be more space conservative.
-
-\loadmarkfile{lang-mis}
-\loadmarkfile{lang-url}
-
-\loadmarkfile{lang-ger}
-\loadmarkfile{lang-ita}
-\loadmarkfile{lang-sla}
-\loadmarkfile{lang-alt}
-\loadmarkfile{lang-ana}
-\loadmarkfile{lang-art}
-\loadmarkfile{lang-bal}
-\loadmarkfile{lang-cel}
-\loadmarkfile{lang-grk}
-\loadmarkfile{lang-ind}
-\loadmarkfile{lang-ura}
-\loadmarkfile{lang-vn}
-\loadmarkfile{lang-cyr}
-
-\loadmarkfile{typo-ini}
-
-%D All kind of symbols are handled in:
-
-\loadmarkfile{symb-ini}
-
-%D Sorting:
-
-\loadmarkfile{sort-ini}
-
-%D Next we load some core macro's. These implement the
-%D macros' that are seen by the users. The order of loading
-%D is important, due to dependancies.
-
-\loadmarkfile{spac-gen}
-\loadmarkfile{spac-grd}
-
-\loadmarkfile{strc-mar}
-\loadmarkfile{anch-pos}
-
-\loadmarkfile{buff-ver}
-\loadmarkfile{buff-ini}
-
-\loadmarkfile{pack-rul}
-\loadmarkfile{trac-vis}
-\loadmarkfile{strc-num}
-\loadmarkfile{tabl-com}
-\loadmarkfile{tabl-pln}
-\loadmarkfile{tabl-tab}
-\loadmarkfile{tabl-tsp}
-\loadmarkfile{scrn-nav}
-\loadmarkfile{strc-ref}
-\loadmarkfile{pack-obj}
-\loadmarkfile{strc-lst}
-\loadmarkfile{strc-itm}
-\loadmarkfile{strc-des}
-\loadmarkfile{strc-mat} % should come after math-pln etc
-\loadmarkfile{strc-syn}
-\loadmarkfile{core-sys}
-
-\loadmarkfile{page-ini}
-\loadmarkfile{page-bck}
-\loadmarkfile{page-not}
-\loadmarkfile{page-one}
-\loadmarkfile{page-lay}
-\loadmarkfile{page-log}
-\loadmarkfile{page-txt}
-\loadmarkfile{page-sid}
-\loadmarkfile{strc-flt}
-\loadmarkfile{page-mis}
-\loadmarkfile{page-mul}
-\loadmarkfile{page-set}
-\loadmarkfile{pack-lyr}
-\loadmarkfile{page-mak}
-\loadmarkfile{strc-pag}
-\loadmarkfile{page-lin}
-\loadmarkfile{page-par}
-\loadmarkfile{page-mar}
-
-\loadmarkfile{core-job} % why so late?
-
-% so far
-
-\loadmarkfile{strc-sec}
-\loadmarkfile{strc-swd}
-\loadmarkfile{strc-blk}
-
-\loadmarkfile{page-imp}
-\loadmarkfile{tabl-tbl}
-\loadmarkfile{scrn-int}
-\loadmarkfile{tabl-ntb}
-\loadmarkfile{tabl-nte}
-\loadmarkfile{tabl-ltb}
-
-%D A few more languages, that have specifics using core
-%D functionality:
-
-%loadmarkfile{lang-ara} % undefined
-\loadmarkfile{lang-chi}
-\loadmarkfile{lang-jap}
-
-%D How about fill||in fields and related stuff?
-
-\loadmarkfile{java-ini}
-\loadmarkfile{scrn-fld}
-\loadmarkfile{scrn-hlp}
-
-%D Registers can depend on fields, so we load that now.
-
-\loadmarkfile{strc-reg}
-
-%D Of course we do need fonts. There are no \TFM\ files
-%D loaded yet, so the format file is independant of their
-%D content. Here we also redefine \type{\it} as {\it italic}
-%D instead of italian.
-
-\loadmarkfile{font-ini}
-
-\ifnum\texengine=\xetexengine
- \loadmarkfile{font-xtx}
-\fi
-
-\loadmarkfile{font-unk}
-\loadmarkfile{font-uni}
-\loadmarkfile{font-bfm}
-
-\loadmarkfile{enco-pfr}
-
-\loadmarkfile{type-ini}
-\loadmarkfile{type-set}
-\loadmarkfile{type-def}
-
-%D Properties. Don't ask.
-
-\loadmarkfile{prop-ini}
-\loadmarkfile{prop-lay}
-\loadmarkfile{prop-mis}
-
-%D Like languages, fonts, encodings and symbols, \METAPOST\
-%D support is also organized in its own class of modules.
-
-\loadmarkfile{meta-ini}
-\loadmarkfile{meta-tex}
-\loadmarkfile{meta-pdf}
-
-\loadmarkfile{meta-pag}
-
-%D Special page handling (maybe even later)
-
-\loadmarkfile{page-flw}
-\loadmarkfile{page-spr}
-\loadmarkfile{page-plg}
-\loadmarkfile{page-str}
-
-%D Anchoring graphics:
-
-\loadmarkfile{anch-pgr}
-\loadmarkfile{anch-bar}
-\loadmarkfile{anch-snc}
-
-%D Math.
-
-\loadmarkfile{math-pln}
-\loadmarkfile{math-ini}
-\loadmarkfile{math-arr}
-\loadmarkfile{math-frc}
-
-%D Now we're ready for more core modules.
-
-\loadmarkfile{core-fnt}
-\loadmarkfile{strc-not}
-\loadmarkfile{strc-lnt}
-
-\loadmarkfile{core-mis}
-
-\loadmarkfile{grph-trf}
-\loadmarkfile{grph-inc}
-\loadmarkfile{grph-fig}
-
-\loadmarkfile{core-par}
-
-\loadmarkfile{pack-box}
-\loadmarkfile{page-app}
-\loadmarkfile{meta-fig}
-
-%D Language specific spacing.
-
-\loadmarkfile{lang-spa}
-
-%D Bibliographies:
-
-\loadmarkfile{bibl-tra}
-
-%D Only the basic XML parser and remapper are part of the core.
-%D These macros are loaded last since they overload and|/|or
-%D extend previously defined ones.
-
-\loadmarkfile{xtag-ini}
-\loadmarkfile{xtag-ext}
-\loadmarkfile{xtag-exp}
-\loadmarkfile{xtag-pre}
-\loadmarkfile{xtag-xsd}
-\loadmarkfile{xtag-rng}
-
-%D How about this:
-
-\loadmarkfile{meta-xml}
-
-%D \TEX\ related logo's are always typeset in a special way.
-%D Here they come:
-
-\loadmarkfile{cont-log}
-
-%D This one overloads af few things:
-
-\loadmarkfile{core-ctx}
-
-%D Defaults go here (more will be moved to this module
-%D later):
-
-\loadmarkfile{core-ini}
-\loadmarkfile{core-def}
-
-%D Preloaded modules (some need xml support):
-
-%usemodule[x][res-04] % xml resource libraries
-%usemodule[x][res-08] % rlx runtime conversion
-\usemodule[x][res-12] % rli external indentification
-
-%D At run time, a few more files are loaded, like:
-%D
-%D \startitemize[packed]
-%D \item \type{cont-sys}: local (system dependant) defaults
-%D \item \type{cont-old}: substitutes for old (obsolete) macros
-%D \item \type{cont-new}: new macro implementations (for testing)
-%D \item \type{cont-fil}: filename and module synonyms
-%D \stopitemize
-
-\setupcurrentlanguage[\defaultlanguagetag]
-
-\setupencoding[default=ec]
-
-\usetypescript[fallback][\defaultencoding]
-
-\setupbodyfont[rm,12pt]
-
-\errorstopmode \dump \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-con.mkii b/Master/texmf-dist/tex/context/base/mkii/core-con.mkii
deleted file mode 100644
index 46fbe9b9ee6..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/core-con.mkii
+++ /dev/null
@@ -1,969 +0,0 @@
-%D \module
-%D [ file=core-con,
-%D version=1997.26.08,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Conversion,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / Conversion}
-
-\unprotect
-
-\ifx\currentlanguage\undefined \let\currentlanguage\empty \fi
-\ifx\labeltext \undefined \let\labeltext\firstofoneargument \fi
-
-%D This module deals with all kind of conversions from numbers
-%D and dates. I considered splitting this module in a support
-%D one and a core one, but to keep things simple as well as
-%D preserve the overview, I decided against splitting.
-
-\let\spr\firstofoneargument % separator
-\let\stp\firstofoneargument % stopper
-
-% cleaner, some day:
-%
-% \def\isolateseparators % etex only, even works with list separator overloading
-% {\unexpanded\def\spr##1{{##1}}%
-% \unexpanded\def\stp##1{{##1}}}
-
-% needed for arab :
-
-\def\isolateseparators % even works with list separator overloading
- {\def\spr##1{{##1}}%
- \def\stp##1{{##1}}}
-
-%D \macros
-%D {numbers}
-%D
-%D First we deal with the dummy conversion of numbers using the
-%D \TEX\ primitive \type{\number}. The uppercase alternative is
-%D only there for compatibility with the other conversion
-%D macros. We could do without \type{#1} but this way we get
-%D rid of unwanted braces. For the savety we also define a
-%D non||sence uppercase alternative.
-%D
-%D \showsetup{numbers}
-%D
-%D \starttyping
-%D \def\numbers#1{\number#1}
-%D \def\Numbers#1{\number#1}
-%D \stoptyping
-%D
-%D Due to read ahead, as in \type{[\pagenumber\space]} the space will
-%D disappear, unless we use:
-
-\def\numbers#1{\purenumber{#1}}
-\def\Numbers#1{\purenumber{#1}}
-
-%D \macros
-%D {romannumerals,Romannumerals}
-%D
-%D \TEX\ the program uses a rather tricky conversion from
-%D numbers to their roman counterparts. This conversion could
-%D of course be programmed in \TEX\ itself, but I guess Knuth
-%D found the programming trick worth presenting.
-%D
-%D \showsetup{romannumerals}
-%D \showsetup{Romannumerals}
-
-%D When upcasing the result, we just follow the text book rules
-%D of expansion. Later on we'll see some more uppercase tricks.
-
-\def\romannumerals#1%
- {\romannumeral#1}
-
-%D For some years we had \unknown
-%D
-%D \starttyping
-%D \def\Romannumerals#1%
-%D {\uppercase\expandafter{\romannumeral#1}}
-%D \stoptyping
-%D
-%D \unknown but we need to be fully expandable in order to get
-%D the utility output file right, so now we have the following
-%D solution. It was Patrick Gundlach who first noticed this
-%D ommision.
-
-\def\Romannumerals#1%
- {\expandafter\doRomannumerals\number#1\relax}
-
-\def\doRomannumerals#1#2\relax % spaces after ifcase prevent \relax
- {\ifnum#1#2<10
- \ifcase0#1#2 \or I\or II\or III\or IV\or V\or VI\or VII\or VIII\or IX\fi
- \else\ifnum#1#2<100
- \ifcase0#1 \or X\or XX\or XXX\or XL\or L\or LX\or LXX\or LXXX\or XC\fi
- \doRomannumerals#2\relax
- \else\ifnum#1#2<1000
- \ifcase0#1 \or C\or CC\or CCC\or CD\or D\or DC\or DCC\or DCCC\or CM\fi
- \doRomannumerals#2\relax
- \else\ifnum#1#2<4000
- \ifcase0#1 \or M\or MM\or MMM\fi
- \doRomannumerals#2\relax
- \else
- \uppercase\expandafter{\romannumeral#1#2}%
- \fi\fi\fi\fi}
-
-%D \macros
-%D {character,Character}
-%D
-%D Converting a number into a character can of course only
-%D be done with numbers less or equal to~26. At the cost of
-%D much more macros a faster conversion is possible, using:
-%D
-%D \starttyping
-%D \setvalue{char1}{a} \def\character#1{\getvalue{char#1}}
-%D \stoptyping
-%D
-%D But we prefer a simpel \type{\case}.
-%D
-%D \showsetup{character}
-%D \showsetup{Character}
-
-\def\unknowncharacter{-} % else in lists \relax
-
-%D Big case statements but pretty fast:
-
-\def\character#1%
- {\ifcase#1\unknowncharacter
- \or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or k\or l\or m%
- \or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z%
- \else
- \unknowncharacter
- \fi}
-
-\def\Character#1%
- {\ifcase#1\unknowncharacter
- \or A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or K\or L\or M%
- \or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or Y\or Z%
- \else
- \unknowncharacter
- \fi}
-
-%D \macros
-%D {characters,Characters}
-%D
-%D Converting large numbers is supported by the next two
-%D macros. This time we just count on: $\cdots$~x, y, z, aa,
-%D ab, ac~$\cdots$.
-%D
-%D \showsetup{characters}
-%D \showsetup{Characters}
-
-%D The fully expandable alternative:
-
-\def\dodoconvertcharacters#1#2#3%
- {\ifcase#3\else
- \ifnum#3>#1
- \expandafter\doconvertcharacters\expandafter#2\expandafter{\the\numexpr(#3+12)/#1-1\relax}%
- \expandafter#2\expandafter{\the\numexpr#3-((#3+12)/#1-1)*#1\relax}%
- \else
- \expandafter#2\expandafter{\number#3}%
- \fi
- \fi}
-
-\def\doconvertcharacters{\dodoconvertcharacters{26}}
-
-\def\characters{\doconvertcharacters\character}
-\def\Characters{\doconvertcharacters\Character}
-
-%D \macros
-%D {greeknumerals,Greeknumerals}
-%D
-%D Why should we only honour the romans, and not the greek?
-
-\def\greeknumerals#1%
- {% no longer needed: \mathematics
- {\ifcase#1\unknowncharacter\or
- \alpha \or \beta \or \gamma \or \delta \or
- \varepsilon \or \zeta \or \eta \or \theta \or
- \iota \or \kappa \or \lambda \or \mu \or
- \nu \or \xi \or \omicron \or \pi \or
- \varrho \or \sigma \or \tau \or \upsilon \or
- \phi \or \chi \or \psi \or \omega
- \else
- \unknowncharacter
- \fi}}
-
-\def\Greeknumerals#1%
- {% no longer needed: \mathematics
- {\ifcase#1\unknowncharacter \or
- \Alpha \or \Beta \or \Gamma \or \Delta \or
- \Epsilon \or \Zeta \or \Eta \or \Theta \or
- \Iota \or \Kappa \or \Lambda \or \Mu \or
- \Nu \or \Xi \or \Omicron \or \Pi \or
- \Rho \or \Sigma \or \Tau \or \Upsilon \or
- \Phi \or \Xi \or \Psi \or \Omega
- \else
- \unknowncharacter
- \fi}}
-
-%D \macros
-%D {oldstylenumerals,oldstyleromannumerals}
-%D
-%D These conversions are dedicated to Frans Goddijn.
-
-\unexpanded\def\oldstylenumerals#1%
- {{\os\number#1}}
-
-\unexpanded\def\oldstyleromannumerals#1%
- {{\leftrulefalse\rightrulefalse\ss\txx\boxrulewidth.15ex
- \ruledhbox spread .15em{\hss\uppercased{\romannumerals{#1}}\hss}}}
-
-%D \macros
-%D {protectconversion}
-%D
-%D The previous two commands are not robust enough to be
-%D passed to \type{\write} en \type{\message}. That's why we
-%D introduce:
-
-\def\protectconversion
- {\def\doconvertcharacters##1{##1}} % was \relax
- %{\def\doconvertcharacters##1{\ifcase0##1 0\else##1\fi}} more save
-
-%D \macros
-%D {normaltime,normalyear,normalmonth,normalday}
-%D
-%D The last part of this module is dedicated to converting
-%D dates. Because we want to use as meaningful commands as
-%D possible, and because \TEX\ already uses up some of those,
-%D we save the original meanings.
-
-\savenormalmeaning\time
-\savenormalmeaning\year
-\savenormalmeaning\month
-\savenormalmeaning\day
-
-%D \macros
-%D {month,MONTH}
-%D
-%D Converting the month number into a month name is done
-%D using a case statement, abstact values and the label
-%D mechanism. This way users can easily redefine a label from
-%D for instance german into austrian.
-%D
-%D \starttyping
-%D \setuplabeltext [de] [january=J\"anner]
-%D \stoptyping
-%D
-%D Anyhow, the conversion looks like:
-
-\def\domonthtag#1%
- {\ifcase#1%
- \or \v!january \or \v!february \or \v!march \or \v!april
- \or \v!may \or \v!june \or \v!july \or \v!august
- \or \v!september \or \v!october \or \v!november \or \v!december
- \else
- \v!unknown
- \fi}
-
-\def\doconvertmonthlong #1{\labeltext{\domonthtag{#1}}}
-\def\doconvertmonthshort#1{\labeltext{\domonthtag{#1}:\s!mnem}}
-
-\let\doconvertmonth\doconvertmonthlong
-
-%D We redefine the \TEX\ primitive \type{\month} as:
-%D
-%D \showsetup{month}
-%D \showsetup{MONTH}
-
-\def\monthlong {\doconvertmonthlong}
-\def\monthshort{\doconvertmonthshort}
-\def\month {\doconvertmonth}
-
-\def\MONTH #1{{\let\labeltext\LABELTEXT\month {#1}}}
-\def\MONTHLONG #1{{\let\labeltext\LABELTEXT\monthlong {#1}}}
-\def\MONTHSHORT#1{{\let\labeltext\LABELTEXT\monthshort{#1}}}
-
-%D We never explicitly needed this, but Tobias Burnus pointed
-%D out that it would be handy to convert to the day of the
-%D week. In doing so, we have to calculate the total number of
-%D days, taking leapyears into account. For those who are
-%D curious:
-%D
-%D \startitemize[packed]
-%D \item years that can be divided by 4 are leapyears
-%D \item exept years that can be divided by 100
-%D \item unless years can be divided by 400
-%D \stopitemize
-%D
-%D This makes the year 1900 into a normal year and 1996 and
-%D 2000 into leap years, right? Well, converting to string
-%D looks familiar:
-
-\def\doconvertday#1%
- {\labeltext
- {\ifcase#1
- \or \v!sunday \or \v!monday \or \v!tuesday \or \v!wednesday
- \or \v!thursday \or \v!friday \or \v!saturday \fi}}
-
-%D \macros
-%D {getdayoftheweek, dayoftheweek}
-%D
-%D The conversion algoritm is an old one and a translation from
-%D a procedure written in MODULA~2 back in the 80's. I finaly
-%D found the 4--100-400 rules in some enclopedia. Look at this
-%D messy low level routine that takes the day, month and year
-%D as arguments:
-
-\newcount\normalweekday
-
-\def\getdayoftheweek#1#2#3%
- {\bgroup
- \!!counta#3\relax
- \advance\!!counta \minusone
- \!!countb\!!counta
- \multiply\!!countb 365
- \advance\!!countb \ifcase#2\relax
- 0 \or 0 \or 31 \or 59 \or 90 \or120 \or151 \or
- 181 \or212 \or243 \or273 \or304 \or334 \or365 \fi
- \advance\!!countb #1\relax
- \ifnum#2>2
- \doifleapyearelse{#3}{\advance\!!countb 1}{}\relax
- \fi
- \!!countc\!!counta
- \dosetdivision\!!countc4\!!countc
- \advance\!!countb \!!countc
- \!!countc\!!counta
- \dosetdivision\!!countc{100}\!!countc
- \advance\!!countb -\!!countc
- \!!countc\!!counta
- \dosetdivision\!!countc{400}\!!countc
- \advance\!!countb \!!countc
- \dosetmodulo\!!countb7\!!countb
- \advance\!!countb \plusone
- \@EA\egroup\@EA\normalweekday\the\!!countb\relax}
-
-\def\dayoftheweek#1#2#3%
- {\getdayoftheweek{#1}{#2}{#3}\doconvertday{\normalweekday}}
-
-%D Using this macro in
-%D
-%D \startbuffer
-%D monday: \dayoftheweek {4} {5} {1992}
-%D friday: \dayoftheweek {16} {6} {1995}
-%D monday: \dayoftheweek {25} {8} {1997}
-%D saturday: \dayoftheweek {30} {8} {1997}
-%D tuesday: \dayoftheweek {2} {1} {1996}
-%D tuesday: \dayoftheweek {7} {1} {1997}
-%D tuesday: \dayoftheweek {13} {1} {1998}
-%D friday: \dayoftheweek {1} {1} {2000}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D gives
-%D
-%D \startvoorbeeld
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D \stopvoorbeeld
-%D
-%D The macro \type {\getdayoftheweek} can be used to calculate
-%D the number \type {\normalweekday}.
-
-%D \macros
-%D {weekday,WEEKDAY}
-%D
-%D The first one is sort of redundant. It takes the day
-%D number argument.
-%D
-%D \showsetup{weekday}
-%D \showsetup{WEEKDAY}
-
-\def\weekday
- {\doconvertday}
-
-\def\WEEKDAY#1%
- {{\let\labeltext\LABELTEXT\doconvertday{#1}}}
-
-%D \macros
-%D {weekoftheday}
-%D
-%D {\em not yet implemented:}
-%D
-%D \starttyping
-%D \def\weekoftheday#1#2#3%
-%D {}
-%D \stoptyping
-
-%D \macros
-%D {doifleapyearelse,
-%D getdayspermonth}
-%D
-%D Sometimes we need to know if we're dealing with a
-%D leapyear, so here is a testmacro:
-%D
-%D \starttyping
-%D \doifleapyearelse{year}{yes}{no}
-%D \stoptyping
-%D
-%D An example of its use can be seen in the macro
-%D
-%D \starttyping
-%D \getdayspermonth{year}{month}
-%D \stoptyping
-%D
-%D The number of days is available in the macro \type
-%D {\numberofdays}.
-
-\def\doifleapyearelse#1% #2#3%
- {\bgroup
- \!!doneafalse
- \!!counta#1%
- \dosetmodulo\!!counta4\!!countb
- \ifcase\!!countb
- \dosetmodulo\!!counta{100}\!!countb
- \ifcase\!!countb \else \!!doneatrue \fi
- \dosetmodulo\!!counta{400}\!!countb
- \ifcase\!!countb \!!doneatrue \fi
- \fi
- \if!!donea
- \egroup\@EA\firstoftwoarguments % \def\next{#2}%
- \else
- \egroup\@EA\secondoftwoarguments % \def\next{#3}%
- \fi} % \next}
-
-% untested but cleaner:
-%
-% \def\doifleapyearelse#1% #2#3%
-% {\bgroup
-% \dosetmodulo{#1}{400}\scratchcounter
-% \ifcase\scratchcounter
-% \else
-% \dosetmodulo{#1}{100}\scratchcounter
-% \ifcase\scratchcounter
-% \scratchcounter\plusone
-% \else
-% \dosetmodulo{#1}4\scratchcounter
-% \fi
-% \fi
-% \ifcase\scratchcounter
-% \egroup\@EA\firstoftwoarguments
-% \else
-% \egroup\@EA\secondoftwoarguments
-% \fi}
-
-\def\getdayspermonth#1#2%
- {\doifleapyearelse{#1}
- {\def\numberofdays{29}}
- {\def\numberofdays{28}}%
- \edef\numberofdays
- {\ifcase#2 \or31\or\numberofdays\or31\or30\or
- 31\or30\or31\or31\or30\or31\or30\or31\fi}}
-
-%D \macros
-%D {currentdate, date}
-%D
-%D We use these conversion macros in the date formatting
-%D macro:
-%D
-%D \showsetup{currentdate}
-%D
-%D This macro takes care of proper spacing and delivers for
-%D instance:
-%D
-%D \startbuffer
-%D \currentdate[weekday,day,month,year] % still dutch example
-%D \currentdate[WEEKDAY,day,MONTH,year] % still dutch example
-%D \stopbuffer
-%D
-%D \startvoorbeeld
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D \stopvoorbeeld
-%D
-%D depending of course on the keywords. Here we gave:
-%D
-%D \typebuffer
-%D
-%D If needed one can also add non||keywords, like in
-%D
-%D \startbuffer
-%D \currentdate[dd,--,mm,--,yy]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D or typeset: \getbuffer.
-%D
-%D When no argument is passed, the current date is given as
-%D specified per language (using \type{\installlanguage}).
-%D
-%D \showsetup{currentdate}
-%D
-%D \startbuffer
-%D \date
-%D \date[d=12,m=12,y=1998][weekday]
-%D \date[d=12,m=12,y=1998]
-%D \stopbuffer
-%D
-%D We can also typeset arbitrary dates, using the previous
-%D command.
-%D
-%D \typebuffer
-%D
-%D The date is specified by one character keys. When no date
-%D is given, we get the current date.
-%D
-%D \startlines
-%D \getbuffer
-%D \stoplines
-
-\def\kenmerkdatumpatroon{j,mm,dd} % jj,mm,dd changed at januari 1-1-2000
-
-\newsignal\datesignal
-
-\def\dobetweendates
- {\ifdim\lastskip=\datesignal\relax\else
- \unskip\space
- \hskip\datesignal\relax
- \fi}
-
-\newtoks \everycurrentdate
-
-\def\complexcurrentdate[#1]%
- {\bgroup
- \the\everycurrentdate
- \def\betweendates{\let\betweendates\dobetweendates}%
- % was \processcommacommandp[#1]\docomplexcurrentdate
- \safeedef\ascii{\empty#1}% keep encoded chars
- \@EA\processcommalist\@EA[\ascii]\docomplexcurrentdate
- \ifdim\lastskip=\datesignal\relax
- \unskip
- \fi
- \egroup}
-
-\def\docomplexcurrentdate#1%
- {\lowercase{\edef\!!stringa{#1}}% permits usage in \smallcapped
- \expanded{\processaction[\!!stringa]}% [#1]
- [ \v!day=>\betweendates\the\normalday,
- %\v!day+=>\betweendates\ordinaldaynumber\normalday,
- \v!day+=>\betweendates\convertnumber{\v!day+}\normalday,
- \v!month=>\betweendates\month\normalmonth,
- \v!year=>\betweendates\the\normalyear,
- \v!space=>\unskip\ \hskip\datesignal,% optimization -)
- \ =>\unskip\ \hskip\datesignal,% optimization -)
- d=>\convertnumber\v!day\normalday,
- %d+=>\ordinaldaynumber\normalday,
- d+=>\convertnumber{\v!day+}\normalday,
- m=>\convertnumber\v!month\normalmonth,
- j=>\convertnumber\v!year\normalyear,
- y=>\convertnumber\v!year\normalyear,
- w=>\betweendates\dayoftheweek\normalday\normalmonth\normalyear,
- dd=>\ifnum\normalday >9 \else0\fi\the\normalday,
- %dd+=>\ordinaldaynumber{\ifnum\normalday >9 \else0\fi\the\normalday},
- dd+=>\convertnumber{\v!day+}{\ifnum\normalday >9 \else0\fi\the\normalday},
- mm=>\ifnum\normalmonth>9 \else0\fi\the\normalmonth,
- jj=>\expandafter\gobbletwoarguments\the\normalyear,
- yy=>\expandafter\gobbletwoarguments\the\normalyear,
- \v!weekday=>\betweendates\dayoftheweek\normalday\normalmonth\normalyear,
- \v!referral=>\expanded{\complexcurrentdate[\kenmerkdatumpatroon]},
- \s!unknown=>\unskip
- % #1 and not the lowercased \commalistelement, vietnamese has text
- % {} because #1 can have comma, like: {\ ,}
- {#1}%
- \hskip\datesignal
- \def\betweendates{\let\betweendates\dobetweendates}]}
-
-\def\simplecurrentdate
- {\expanded{\complexcurrentdate[\currentdatespecification]}}
-
-\definecomplexorsimple\currentdate
-
-\def\dodate[#1][#2]%
- {\bgroup
- \iffirstargument
- \getparameters[\??da][d=\normalday,m=\normalmonth,y=\normalyear,#1]%
- \normalday \@@dad\relax
- \normalmonth\@@dam\relax
- \normalyear \@@day\relax
- \ifsecondargument
- \currentdate[#2]%
- \else
- \currentdate
- \fi
- \else
- \currentdate
- \fi
- \egroup}
-
-\def\date
- {\dodoubleempty\dodate}
-
-%D \macros
-%D {currenttime}
-%D
-%D The currenttime is actually the jobtime. You can specify
-%D a pattern similar to the previous date macro using the
-%D keys \type {h}, \type {m} and a separator.
-
-\def\calculatecurrenttime
- {\dosetdivision\time{60}\scratchcounter
- \edef\currenthour {\ifnum\scratchcounter<10 0\fi \the\scratchcounter}%
- \dosetmodulo \time{60}\scratchcounter
- \edef\currentminute{\ifnum\scratchcounter<10 0\fi \the\scratchcounter}}
-
-\let\currenthour \!!plusone
-\let\currentminute\!!plusone
-
-\def\currenttimespecification{h,:,m}
-
-\def\complexcurrenttime[#1]%
- {\calculatecurrenttime
- \processallactionsinset[#1]
- [h=>\currenthour,m=>\currentminute,\s!unknown=>\commalistelement]}
-
-\def\simplecurrenttime
- {\expanded{\complexcurrenttime[\currenttimespecification]}}
-
-\definecomplexorsimple\currenttime
-
-%D Because we're dealing with dates, we also introduce a few
-%D day loops:
-%D
-%D \starttyping
-%D \processmonth{year}{month}{command}
-%D \processyear{year}{command}{before}{after}
-%D \stoptyping
-%D
-%D The counters \type {\normalyear}, \type {\normalmonth} and
-%D \type{\normalday} can be used for for date manipulations.
-
-\long\def\processmonth#1#2#3% year month command
- {\bgroup
- \getdayspermonth{#1}{#2}%
- \dostepwiserecurse1\numberofdays1%
- {\normalyear #1\relax
- \normalmonth#2\relax
- \normalday \recurselevel\relax
- #3}%
- \egroup}
-
-\def\lastmonth{12} % can be set to e.g. 1 when testing
-
-\long\def\processyear#1#2#3#4% year command before after
- {\bgroup
- \dorecurse\lastmonth
- {\normalyear #1\relax
- \normalmonth\recurselevel\relax
- #3\processmonth\normalyear\normalmonth{#2}#4}%
- \egroup}
-
-%D \macros
-%D {defineconversion, convertnumber}
-%D
-%D Conversion involves the macros that we implemented earlier
-%D in this module.
-%D
-%D \showsetup{defineconversion}
-%D \showsetup{convertnumber}
-%D
-%D We can feed this command with conversion macros as well as
-%D a set of conversion symbols. Both need a bit different
-%D treatment.
-%D
-%D \starttyping
-%D \defineconversion [roman] [\romannumerals]
-%D \defineconversion [set 1] [$\star$,$\bullet$,$\ast$]
-%D \stoptyping
-%D
-%D You can define a language dependent conversion with:
-%D
-%D \starttyping
-%D \defineconversion [en] [whatever] [\something]
-%D \stoptyping
-
-% \def\dodefineconversion[#1][#2]%
-% {\ConvertConstantAfter\doifinstringelse{,}{#2}
-% {\scratchcounter=0
-% \def\docommand##1%
-% {\advance\scratchcounter 1
-% \setvalue{\??cv#1\the\scratchcounter}{##1}}%
-% \processcommalist[#2]\docommand
-% \setvalue{\??cv#1}##1{\csname\??cv#1##1\endcsname}}
-% {\setvalue{\??cv#1}{#2}}}
-%
-% \def\defineconversion%
-% {\dodoubleargument\dodefineconversion}
-
-\def\defineconversion
- {\dotripleempty\dodefineconversion}
-
-\def\dodefineconversion[#1][#2][#3]%
- {\ifthirdargument
- \dododefineconversion[#1][#2][#3]%
- \else
- \dododefineconversion[][#1][#2]%
- \fi}
-
-%D \starttyping
-%D \def\dododefineconversion[#1][#2][#3]%
-%D {\ConvertConstantAfter\doifinstringelse{,}{#3}
-%D {\scratchcounter\zerocount
-%D \def\docommand##1%
-%D {\advance\scratchcounter \plusone
-%D \setvalue{\??cv#1#2\the\scratchcounter}{##1}}%
-%D \processcommalist[#3]\docommand
-%D \setvalue{\??cv#1#2}##1{\executeifdefined{\??cv#1#2##1}\unknown}} % catch out-of-range numbers
-%D {\setvalue{\??cv#1#2}{#3}}}
-%D \stoptyping
-
-%D This approach has the disadvantage that when you run out of
-%D symbols you get unknown results. The following implementation
-%D permits overloading of the converter:
-
-\def\dododefineconversion[#1][#2][#3]%
- {\ConvertConstantAfter\doifinstringelse{,}{#3}
- {\scratchcounter\zerocount
- \def\docommand##1%
- {\advance\scratchcounter \plusone
- \setvalue{\??cv#1#2\the\scratchcounter}{##1}}%
- \processcommalist[#3]\docommand
- \setevalue{\??cv#1#2}##1%
- {\noexpand\docheckedconversion{#1#2}{\the\scratchcounter}{##1}}}
- {\setvalue{\??cv#1#2}{#3}}}
-
-\def\docheckedconversion#1#2#3% class maxnumber number
- {\executeifdefined{\??cv#1#3}\unknown}
-
-%D When Gerben reported problems with footnote numbering per page,
-%D Taco came with the following wrap around solution. So, let's
-%D overload the checked conversion macro:
-
-\def\docheckedconversion#1#2#3% class maxnumber number
- {\executeifdefined{\??cv#1\modulatednumber{#2}{#3}}\unknown}
-
-%D Taco's modulo code is implemented in the system module
-%D \type {syst-con}.
-
-%D If a conversion is just a font switch then we need to make sure
-%D that the number is indeed end up as number in the input, so we
-%D need to handle the second argument.
-
-\def\convertnumber#1#2%
- {\csname\??cv
- \ifcsname\??cv\currentlanguage#1\endcsname
- \currentlanguage#1%
- \else\ifcsname\??cv#1\endcsname
- #1%
- \else
- \s!default
- \fi\fi
- \endcsname{\number#2}}
-
-\def\doifconversiondefinedelse#1%
- {\ifcsname\??cv\currentlanguage#1\endcsname
- \@EA\firstoftwoarguments
- \else\ifcsname\??cv#1\endcsname
- \@EAEAEA\firstoftwoarguments
- \else
- \@EAEAEA\secondoftwoarguments
- \fi\fi}
-
-\def\doifelseconversionnumber#1#2% slow but seldom used
- {\doifdefinedelse{\??cv#1#2}}
-
-%D Handy.
-
-\setvalue{\??cv:\c!n:\v!one }{1}
-\setvalue{\??cv:\c!n:\v!two }{2}
-\setvalue{\??cv:\c!n:\v!three}{3}
-\setvalue{\??cv:\c!n:\v!four }{4}
-\setvalue{\??cv:\c!n:\v!five }{5}
-
-\def\wordtonumber#1#2{\ifcsname\??cv:\c!n:#1\endcsname\csname\??cv:\c!n:#1\endcsname\else#2\fi}
-
-% \defineconversion[ctx][c,o,n,t,e,x,t]
-%
-% \doloop{\doifelseconversionnumber{ctx}{\recurselevel}{[\recurselevel]}{\exitloop}}
-
-\defineconversion [\s!default] [\numbers]
-
-%D As longs as symbols are linked to levels or numbers, we can
-%D also use the conversion mechanism, but in for instance the
-%D itemization macros, we prefer symbols because they can more
-%D easier be (partially) redefined. Symbols are implemented
-%D in another module.
-
-\defineconversion [] [\numbers] % the default conversion
-
-\defineconversion [a] [\characters]
-\defineconversion [A] [\Characters]
-\defineconversion [AK] [\smallcapped\characters]
-\defineconversion [KA] [\smallcapped\characters]
-
-\defineconversion [n] [\numbers]
-\defineconversion [N] [\Numbers]
-\defineconversion [m] [\mediaeval]
-
-\defineconversion [i] [\romannumerals]
-\defineconversion [I] [\Romannumerals]
-\defineconversion [r] [\romannumerals]
-\defineconversion [R] [\Romannumerals]
-\defineconversion [KR] [\smallcapped\romannumerals]
-\defineconversion [RK] [\smallcapped\romannumerals]
-
-\defineconversion [g] [\greeknumerals]
-\defineconversion [G] [\Greeknumerals]
-
-\defineconversion [o] [\oldstylenumerals]
-\defineconversion [O] [\oldstylenumerals]
-\defineconversion [or] [\oldstyleromannumerals]
-
-\defineconversion [\v!character] [\character]
-\defineconversion [\v!Character] [\Character]
-
-\defineconversion [\v!characters] [\characters]
-\defineconversion [\v!Characters] [\Characters]
-
-\defineconversion [\v!numbers] [\numbers]
-\defineconversion [\v!Numbers] [\Numbers]
-\defineconversion [\v!mediaeval] [\mediaeval]
-
-\defineconversion [\v!romannumerals] [\romannumerals]
-\defineconversion [\v!Romannumerals] [\Romannumerals]
-
-\defineconversion [\v!greek] [\greeknumerals]
-\defineconversion [\v!Greek] [\Greeknumerals]
-
-\defineconversion [arabicnumerals] [\arabicnumerals]
-\defineconversion [persiannumerals] [\arabicnumerals]
-
-\defineconversion [month] [\doconvertmonthlong]
-\defineconversion [month:mnem] [\doconvertmonthshort]
-
-% Some bonus ones:
-
-\defineconversion [\v!empty] [\gobbleoneargument]
-\defineconversion [\v!none] [\numbers]
-
-\ifx\symbol\undefined \def\symbol[#1]{#1} \fi % todo
-
-\defineconversion
- [set 0]
- [{\symbol[bullet]},
- {\symbol[dash]},
- {\symbol[star]},
- {\symbol[triangle]},
- {\symbol[circle]},
- {\symbol[medcircle]},
- {\symbol[bigcircle]},
- {\symbol[square]}]
-
-\defineconversion
- [set 1]
- [\mathematics{\star},
- \mathematics{\star\star},
- \mathematics{\star\star\star},
- \mathematics{\ddagger},
- \mathematics{\ddagger\ddagger},
- \mathematics{\ddagger\ddagger\ddagger},
- \mathematics{\ast},
- \mathematics{\ast\ast},
- \mathematics{\ast\ast\ast}]
-
-\defineconversion
- [set 2]
- [\mathematics{*},
- \mathematics{\dag},
- \mathematics{\ddag},
- \mathematics{**},
- \mathematics{\dag\dag},
- \mathematics{\ddag\ddag},
- \mathematics{***},
- \mathematics{\dag\dag\dag},
- \mathematics{\ddag\ddag\ddag},
- \mathematics{****},
- \mathematics{\dag\dag\dag\dag},
- \mathematics{\ddag\ddag\ddag\ddag}]
-
-\defineconversion
- [set 3]
- [\mathematics{\star},
- \mathematics{\star\star},
- \mathematics{\star\star\star},
- \mathematics{\ddagger},
- \mathematics{\ddagger\ddagger},
- \mathematics{\ddagger\ddagger\ddagger},
- \mathematics{\P},
- \mathematics{\P\P},
- \mathematics{\P\P\P},
- \mathematics{\S},
- \mathematics{\S\S},
- \mathematics{\S\S\S},
- \mathematics{\ast},
- \mathematics{\ast\ast},
- \mathematics{\ast\ast\ast}]
-
-%D \macros
-%D {defineconversionvector,conversionnumber} % bad names so no danger for clash
-%D
-%D For Adam and friends \unknown
-%D
-%D \startitemize[persiannummerals]
-%D \item test \item test \item test \item test
-%D \stopitemize
-
-\def\defineconversionvector#1#2% name base
- {\bgroup
- % dirty trick
- \uccode`\*=`\1
- % plain:
- % \uccode`\0=\numexpr#2+0\relax \uccode`\1=\numexpr#2+1\relax
- % \uccode`\2=\numexpr#2+2\relax \uccode`\3=\numexpr#2+3\relax
- % \uccode`\4=\numexpr#2+4\relax \uccode`\5=\numexpr#2+5\relax
- % \uccode`\6=\numexpr#2+6\relax \uccode`\7=\numexpr#2+7\relax
- % \uccode`\8=\numexpr#2+8\relax \uccode`\9=\numexpr#2+9\relax
- % context:
- \dostepwiserecurse091{\expandafter\uccode\expandafter`\recurselevel=\numexpr#2+\recurselevel}%
- % prepared macro
- \uppercase\expandafter{\expandafter\gdef\csname::cvn::#1::\endcsname##*%
- {\ifcase##* 0\or1\or2\or3\or4\or5\or6\or7\or8\or9\fi}}%
- \egroup}
-
-\def\conversionnumber#1#2%
- {\ifcsname::cvn::#1::\endcsname
- \expandafter\doconversionnumber\csname::cvn::#1::\expandafter\endcsname\number#2\relax
- \else
- \number#2%
- \fi}
-
-\def\doconversionnumber#1#2%
- {\ifx#2\relax
- \expandafter\gobbleoneargument
- \else
- #1{#2}%
- \expandafter\doconversionnumber
- \fi#1}
-
-% actually mkiii code
-
-\ifnum\texengine=\xetexengine
-
- \defineconversionvector{arabicnumerals} {"0660}
- \defineconversionvector{persiannumerals} {"06F0}
- \defineconversionvector{thainumerals} {"0E50}
- \defineconversionvector{devanagarinumerals}{"0966}
- \defineconversionvector{gurmurkhinumerals} {"0A66}
- \defineconversionvector{gujaratinumerals} {"0AE6}
- \defineconversionvector{tibetannumerals} {"0F20} % also "half numerals?"
-
- \defineconversion[arabicnumerals] [\conversionnumber{arabicnumerals}]
- \defineconversion[persiannumerals] [\conversionnumber{persiannumerals}]
- \defineconversion[thainumerals] [\conversionnumber{thainumerals}]
- \defineconversion[devanagarinumerals][\conversionnumber{devanagarinumerals}]
- \defineconversion[gurmurkhinumerals] [\conversionnumber{gurmurkhinumerals}]
- \defineconversion[gujaratinumerals] [\conversionnumber{gujaratinumerals}]
- \defineconversion[tibetannumerals] [\conversionnumber{tibetannumerals}]
-
-\fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-ctx.mkii b/Master/texmf-dist/tex/context/base/mkii/core-ctx.mkii
deleted file mode 100644
index c693d10db6f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/core-ctx.mkii
+++ /dev/null
@@ -1,203 +0,0 @@
-%D \module
-%D [ file=core-ctx,
-%D version=2006.08.16, % old stuff
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Job Control,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / Job Control}
-
-\unprotect
-
-\chardef\preprocessmethod 2 % 0=no check 1=present_check 2=log_check
-\chardef\preprocessstate 0 % 1=found 2=not_present (skip)
-\chardef\preprocesslocal 0 % 0=no 1=yes
-\def \preprocesssuffix {.prep}
-
-\def\loadctxpreplist
- {\begingroup
- \chardef\XMLtokensreduction\plusone
- \ifcase\preprocessmethod
- % no checking
- \or
- % simple checking
- \or
- \doiffileexistselse{./\jobname.ctl}
- {\bgroup
- \defineXMLenvironment[ctx:preplist][local=no]
- {\doifelse{\XMLop{local}}{yes}
- {\global\chardef\preprocesslocal\plusone
- \writestatus\m!systems{loading ctx log file (local)}}%
- {\writestatus\m!systems{loading ctx log file (specified)}}}
- \donothing
- \defineXMLenvironmentsave[ctx:prepfile][done=no]
- \donothing
- {\edef\readfilename{\XMLflush{ctx:prepfile}}%
- \ifcase\preprocesslocal\else
- \splitfilename\readfilename
- \let\readfilename\splitoffbase
- \fi
- \writestatus\m!systems{registering \readfilename\space -> \XMLop{done}}%
- \setxvalue{fp..\readfilename}{\XMLop{done}}}%
- \processXMLfile{./\jobname.ctl}%
- \egroup}%
- {\global\chardef\preprocessmode\plusone}%
- \fi
- \global\let\loadctxpreplist\relax
- \endgroup}
-
-\appendtoks\loadctxpreplist\to\everystarttext % will become: \prependtoks\loadctxpreplist\to\everyjob
-
-\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 existence of \readfilename\preprocesssuffix}\fi
- \doiffileexistselse{\readfilename\preprocesssuffix}
- {\chardef\preprocessstate\plusone}
- \donothing
- \or
- % check when in list, otherwise assume normal file
- \bgroup
- \splitfilename\readfilename
- \ifx\splitofftype\empty
- % saveguard and speed up
- \iftracefiles\writestatus\m!systems{preprocessing - no suffix}\fi
- \egroup
- \else\ifcase\preprocesslocal
- % also ./ strippen
- \iftracefiles\writestatus\m!systems{preprocessing - check presence of \readfilename\preprocesssuffix}\fi
- \doifdefinedelse{fp..\readfilename}
- {\egroup
- \doiffileexistselse{\readfilename\preprocesssuffix}
- {\chardef\preprocessstate\plusone}
- {\chardef\preprocessstate\plustwo}}%
- {\doifdefinedelse{fp.../\readfilename}
- {\egroup
- \edef\readfilename{./\readfilename}%
- \doiffileexistselse{\readfilename\preprocesssuffix}
- {\chardef\preprocessstate\plusone}
- {\chardef\preprocessstate\plustwo}}%
- {\doifdefinedelse{fp..\splitoffbase}%
- {\egroup
- \doiffileexistselse{\readfilename\preprocesssuffix}
- {\chardef\preprocessstate\plusone}
- {\chardef\preprocessstate\plustwo}}%
- {\egroup}}}%
- \else
- % maybe just filecheck, why ctl
- \iftracefiles\writestatus\m!systems{preprocessing - check local presence of \readfilename\preprocesssuffix}\fi
- \doifdefinedelse{fp..\readfilename}
- {\egroup
- \doiffileexistselse{\readfilename\preprocesssuffix}
- {\chardef\preprocessstate\plusone}
- {\chardef\preprocessstate\plustwo}}%
- {\egroup}%
- \fi
- \fi\fi}
-
-% beware, \readfilename keeps the original one, but we load and store the
-% suffixed with .prep file (if present)
-
-\def\doreadfile#1#2#3#4% beware, this one already works at format generation time!
- {\sanitizefilename#2\to\readfilename
- \ifx\readfilename\empty
- % silently ignore
- \else
- \let\trackedfilename\readfilename
- \chardef\preprocessstate\zerocount
- \ifconditional\trackfilenames
- \doifundefinedelse{fn..\trackedfilename}\donetrue\donefalse
- \else
- \donetrue
- \fi
- \ifdone
- \checkfilename\readfilename
- \ifcase\kindoffile
- % not a full path or url, check for existence
- \doifelsenothing{#1}
- {\iftracefiles\writestatus\m!systems{searching for \readfilename\space on tex path}\fi
- \def\next{\redoreadfile\readfilename{#3}{#4}}}%
- {\iftracefiles\writestatus\m!systems{searching for \readfilename\space on #1}\fi
- \def\next{\redoreadfile{\pathplusfile{#1}{\readfilename}}{#3}{#4}}}%
- \else
- % a full path or url, no further checking done
- \docheckprepfile
- \ifcase\preprocessstate
- \doiffileexistselse\readfilename
- {\iftracefiles\writestatus\m!systems{located \readfilename}\fi
- \def\next{#3\dodoreadfile}}%
- {\iftracefiles\writestatus\m!systems{not found \readfilename}\fi
- \def\next{#4}}%
- \or
- \iftracefiles\writestatus\m!systems{located \readfilename\preprocesssuffix}\fi
- \def\next{#3\dodoreadfile}%
- \or
- \iftracefiles\writestatus\m!systems{not found \readfilename\preprocesssuffix}\fi
- \def\next{#4}%
- \fi
- \fi
- \else
- \edef\readfilename{\getvalue{fn..\readfilename}}% ??? is done !
- \iftracefiles\writestatus\m!systems{already located \readfilename}\fi
- \def\next{#3\dodoreadfile}%
- \fi
- \expandafter\next
- \fi}
-
-\def\redoreadfile#1#2#3%
- {\docheckprepfile
- \ifcase\preprocessstate
- \doiffileexistselse{#1}%
- {\edef\readfilename{#1}%
- \iftracefiles\writestatus\m!systems{#1 located}\fi
- \def\next{#2\dodoreadfile}}%
- {\iftracefiles\writestatus\m!systems{cannot locate #1}\fi
- \advance\readlevel\minusone
- \ifnum\readlevel>\zerocount
- \edef\readfilename{\pathplusfile{\f!parentpath}{\readfilename}}%
- \def\next{\redoreadfile\readfilename{#2}{#3}}%
- \else
- \def\next{#3}%
- \fi}%
- \or
- \ifcase\preprocesslocal
- \edef\readfilename{#1}% nor found
- \else
- % no path prepending
- \fi
- \iftracefiles\writestatus\m!systems{#1\preprocesssuffix\space located}\fi
- \def\next{#2\dodoreadfile}%
- \or
- \def\next{#3}%
- \fi
- \next}
-
-\def\dodoreadfile % we provide hooks, for instance for \enableXML
- {\ifconditional\trackfilenames
- \setxvalue{fn..\trackedfilename}{\readfilename\ifcase\preprocessstate\or\preprocesssuffix\fi}%
- \fi
- \the\everybeforereadfile
- \ifcase\preprocessstate
- % no checking or not found when using method 1
- \def\dodoreadfileindeed{\inputgivenfile\readfilename}%
- \or
- % found when using method 1 or 2
- \def\dodoreadfileindeed{\inputgivenfile{\readfilename\preprocesssuffix}}%
- \or
- % not found when using method 2
- \let\dodoreadfileindeed\relax
- \fi
- \dodoreadfileindeed
- \relax
- \the\everyafterreadfile}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-def.mkii b/Master/texmf-dist/tex/context/base/mkii/core-def.mkii
deleted file mode 100644
index 971e8953d99..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/core-def.mkii
+++ /dev/null
@@ -1,105 +0,0 @@
-%D \module
-%D [ file=core-def,
-%D version=2002.05.07,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Defaults,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / Defaults}
-
-%D Here we collect settings that cannot be done earlier due to
-%D depedencies. More code will moved to this module later.
-
-\unprotect
-
-\usesymbols[mis,mvs] % 'glm' no longer needed due to lm
-
-\usesymbols[nav] \setupsymbolset[navigation 1]
-
-\setupinteraction[\c!symbolset=navigation 1]
-
-% initialization order:
-
-%appendtoks \initializeluainstances \to \everyjob
-\appendtoks \showcontextbanner \to \everyjob
-\appendtoks \initializenewlinechar \to \everyjob
-\appendtoks \checksystemcommandmode \to \everyjob
-\appendtoks \calculatecurrenttime \to \everyjob
-\appendtoks \loadsystemfiles \to \everyjob
-
-\appendtoks \loadoptionfile \to \everyjob % can load files !
-
-\appendtoks \preloadfonts \to \everyjob
-\appendtoks \settopskip \to \everyjob
-\appendtoks \preloadlanguages \to \everyjob
-\appendtoks \preloadspecials \to \everyjob
-\appendtoks \openspecialfile \to \everyjob
-\appendtoks \openutilities \to \everyjob
-\appendtoks \splitjobfilename \to \everyjob
-\appendtoks \checknotes \to \everyjob % depends on bodyfont
-\appendtoks \initializeMPgraphics \to \everyjob % after loading system files
-\appendtoks \reportsystemcommandmode \to \everyjob
-\appendtoks \initializemainlanguage \to \everyjob
-\appendtoks \settrue\trackfilenames \to \everyjob
-\appendtoks \newbackgroundfalse \to \everyjob % global
-
-\ifdefined\initializepagecounters
- \appendtoks \initializepagecounters \to \everyjob
-\fi
-
-\appendtoks \directsetup{*runtime:options} \to \everyjob % we could erase them afterwards % order can change
-\appendtoks \directsetup{*runtime:modules} \to \everyjob % we could erase them afterwards % order can change
-
-\appendtoks \checkpreprocessor \to \everyjob
-
-%appendtoks \page[\v!last] \page \to \everybye % moved to core-job, we need to do this cleaner
-\appendtoks \ifarrangingpages\poparrangedpages\fi \to \everybye
-\appendtoks \registerfileinfo[end]\jobname \to \everybye
-\appendtoks \savenofpages \to \everybye
-\appendtoks \savenofsubpages \to \everybye
-
-\appendtoks \closeutilities \to \everygoodbye
-\appendtoks \stopcopyingblocks \to \everygoodbye
-\appendtoks \closespecialfile \to \everygoodbye
-
-\prependtoks \resetutilities \to \everystarttext % moved 28-02-2002
-\prependtoks \loadtwopassdata \to \everystarttext % moved 28-02-2002
-\appendtoks \checkreferences \to \everystarttext % new 04-12-1999
-
-% \appendtoks\everyjob\expandafter{\the\everyjob\checkpreprocessor}\to\everydump
-
-% temporary here:
-
-% \in \at \about \from \over
-
-\unexpanded\def\arg{\mathortext\normalmatharg\normaltextarg}
-
-% brrr
-% normally one does not want this to happen nested, maybe there
-% is more; non public vars btw, will become conditionals
-
-\ifx\writetoregisterfalse\undefined \else \appendtoks \writetoregisterfalse \to \everybeforeutilityread \fi
-\ifx\writetolistfalse \undefined \else \appendtoks \writetolistfalse \to \everybeforeutilityread \fi
-\ifx\notesenabledfalse \undefined \else \appendtoks \notesenabledfalse \to \everybeforeutilityread \fi
-
-\def\synctexwarning
- {\ifdefined\synctex \ifnum\synctex=\zerocount \else
- \writeline
- \writestatus\m!systems{BEWARE: synctex functionality is enabled!}%
- \writeline
- \globallet\synctexwarning\relax
- \fi \fi}
-
-\prependtoks \synctexwarning \to \everyjob
-\prependtoks \synctexwarning \to \everystarttext
-\appendtoks \synctexwarning \to \everystoptext
-
-% last minute hacks
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-env.mkii b/Master/texmf-dist/tex/context/base/mkii/core-env.mkii
deleted file mode 100644
index 6058c4c9fa8..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/core-env.mkii
+++ /dev/null
@@ -1,543 +0,0 @@
-%D \module
-%D [ file=core-env, % was core-new
-%D version=1995.01.01, % wrong
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=New ones,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / Environments}
-
-\unprotect
-
-% Clean labels:
-
-\bgroup % some day this will go away / we could use detokenize as well
-
-% actually we should handle all discretionaries here
-
-\catcode`:=\@@active
-
-\gdef\cleanuplabel#1%
- {\begingroup
- \let:\lettercolon
- \xdef\cleanlabel{#1}%
- \endgroup}
-
-\gdef\cleanupprefixedlabel#1#2%
- {\begingroup
- \let:\lettercolon
- \xdef\cleanprefix{#1}%
- \xdef\cleanlabel {#2}%
- \endgroup}
-
-\gdef\protectlabels
- {\let:\lettercolon}
-
-\global\def\blabelgroup {\begingroup \let:\lettercolon}
-\global\let\elabelgroup \endgroup
-
-\gdef\labelcsname
- {\begingroup\let:\lettercolon
- \expandafter\endgroup\csname}
-
-\gdef\labelvalue#1%
- {\labelcsname#1\endcsname}
-
-\egroup
-
-%D Modes:
-%D
-%D \starttyping
-%D \enablemode[screen,paper,bound]
-%D
-%D \doifmodeelse {paper} {this} {that}
-%D \doifmode {paper,screen} {this}
-%D \doifnotmode {paper,bound} {that}
-%D
-%D \startmode [list]
-%D \stopmode
-%D
-%D \startnotmode [list]
-%D \stopnotmode
-%D \stoptyping
-%D
-%D system modes have a * as prefix
-%D
-%D Sometimes, we want to prevent a mode for being set. Think
-%D of situations where a style enables a mode, but an outer
-%D level style does not want that. Preventing can be
-%D considered a permanent disabling on forehand.
-
-\def\@mode@{@md@}
-
-\def\systemmodeprefix{*}
-
-\def\disabledmode {0}
-\def\enabledmode {1}
-\def\preventedmode {2}
-
-% fast internal ones
-
-\def\setmode #1{\@EA\let\csname\@mode@#1\endcsname\enabledmode }
-\def\resetmode#1{\@EA\let\csname\@mode@#1\endcsname\disabledmode}
-
-\def\setsystemmode #1{\@EA\let\csname\@mode@\systemmodeprefix#1\endcsname\enabledmode }
-\def\resetsystemmode#1{\@EA\let\csname\@mode@\systemmodeprefix#1\endcsname\disabledmode}
-
-% user ones
-
-\def\preventmode{\unprotect\dopreventmode}
-\def\enablemode {\unprotect\doenablemode }
-\def\disablemode{\unprotect\dodisablemode}
-
-\def\dopreventmode[#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dodopreventmode}
-\def\doenablemode [#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dodoenablemode }
-\def\dodisablemode[#1]{\protect\cleanuplabel{#1}\rawprocesscommalist[\cleanlabel]\dododisablemode}
-
-\def\dodopreventmode#1%
- {\@EA\let\csname\@mode@#1\endcsname\preventedmode}
-
-\def\dodoenablemode#1% mode can be relax
- {\ifcase0\csname\@mode@#1\endcsname\relax
- \@EA\let\csname\@mode@#1\endcsname\enabledmode
- \fi}
-
-\def\dododisablemode#1%
- {\ifcase0\csname\@mode@#1\endcsname\or
- \@EA\let\csname\@mode@#1\endcsname\disabledmode
- \fi}
-
-% handy for mp
-
-\def\booleanmodevalue#1% can be \relax
- {\expandafter\ifx\csname\@mode@#1\endcsname\relax
- fals%
- \else\ifnum0\csname\@mode@#1\endcsname=0
- fals%
- \else
- tru%
- \fi\fi e}
-
-% check macros
-
-\newif\ifcheckedmode
-
-\def\dodocheckformode#1%
- {\ifcase0\csname\@mode@#1\endcsname\or\checkedmodetrue\fi}
-
-\def\docheckformode#1#2#3% will be sped up with a quit
- {\cleanuplabel{#3}%
- \protect\checkedmodefalse\rawprocesscommacommand[\cleanlabel]\dodocheckformode
- \ifcheckedmode\@EA#1\else\@EA#2\fi}
-
-\def\dodocheckforallmodes#1%
- {\ifcase0\csname\@mode@#1\endcsname\relax\checkedmodefalse\or\or\checkedmodefalse\fi}
-
-\def\docheckforallmodes#1#2#3% will be sped up with a quit
- {\cleanuplabel{#3}%
- \protect\checkedmodetrue\rawprocesscommacommand[\cleanlabel]\dodocheckforallmodes
- \ifcheckedmode\@EA#1\else\@EA#2\fi}
-
-% simple ones
-
-\def\doifmodeelse{\unprotect\dodoifmodeelse}
-\def\doifmode {\unprotect\dodoifmode}
-\def\doifnotmode {\unprotect\dodoifnotmode}
-\def\startmode {\unprotect\dostartmode}
-\def\startnotmode{\unprotect\dostartnotmode}
-
-\def\dodoifmodeelse
- {\docheckformode\firstoftwoarguments\secondoftwoarguments}
-
-\def\dodoifmode
- {\docheckformode\firstofoneargument\gobbleoneargument}
-
-\def\dodoifnotmode
- {\docheckformode\gobbleoneargument\firstofoneargument}
-
-\long\def\dostartmode[#1]%
- {\docheckformode\donothing\dostopmode{#1}}
-
-\long\def\dostartnotmode[#1]%
- {\docheckformode\dostopnotmode\donothing{#1}}
-
-\let\stopmode \donothing
-\let\stopnotmode\donothing
-
-\long\def\dostopmode #1\stopmode {}
-\long\def\dostopnotmode#1\stopnotmode{}
-
-\def\doifallmodeselse{\unprotect\dodoifallmodeselse}
-\def\doifallmodes {\unprotect\dodoifallmodes}
-\def\doifnotallmodes {\unprotect\dodoifnotallmodes}
-\def\startallmodes {\unprotect\dostartallmodes}
-\def\startnotallmodes{\unprotect\dostartnotallmodes}
-
-\def\dodoifallmodeselse
- {\docheckforallmodes\firstoftwoarguments\secondoftwoarguments}
-
-\def\dodoifallmodes
- {\docheckforallmodes\firstofoneargument\gobbleoneargument}
-
-\def\dodoifnotallmodes
- {\docheckforallmodes\gobbleoneargument\firstofoneargument}
-
-\long\def\dostartallmodes[#1]%
- {\docheckforallmodes\donothing\dostopallmodes{#1}}
-
-\long\def\dostartnotallmodes[#1]%
- {\docheckforallmodes\dostopnotallmodes\donothing{#1}}
-
-\let\stopallmodes \donothing
-\let\stopnotallmodes\donothing
-
-\long\def\dostopallmodes #1\stopallmodes {}
-\long\def\dostopnotallmodes#1\stopnotallmodes{}
-
-% Setups
-
-\let\startsetups\relax % to please dep checker
-\let\stopsetups \relax % to please dep checker
-
-\expanded
- {\long\def\@EA\noexpand\csname\e!start\v!setups\endcsname
- {\begingroup\noexpand\doifnextoptionalelse
- {\noexpand\startsetupsA\@EA\noexpand\csname\e!stop\v!setups\endcsname}
- {\noexpand\startsetupsB\@EA\noexpand\csname\e!stop\v!setups\endcsname}}}
-
-\letvalue{\e!stop\v!setups}\relax
-
-\unexpanded \def\setups{\doifnextbgroupelse\dosetupsA\dosetupsB} % {..} or [..]
-\unexpanded \def\setup {\doifnextbgroupelse\dosetups \dosetupsC} % {..} or [..]
-
-\def\dosetupsA #1{\cleanuplabel{#1}\processcommacommand[\cleanlabel]\dosetups} % {..}
-\def\dosetupsB[#1]{\cleanuplabel{#1}\processcommacommand[\cleanlabel]\dosetups} % [..]
-\def\dosetupsC[#1]{\cleanuplabel{#1}\dosetups\cleanlabel} % [..]
-
-% \def\dosetups#1% the grid option will be extended to other main modes
-% {\executeifdefined{\??su\ifgridsnapping\v!grid\fi:#1}
-% {\executeifdefined{\??su :#1}\gobbleoneargument}\empty} % takes one argument
-%
-% \def\setupwithargument#1% the grid option will be extended to other main modes
-% {\executeifdefined{\??su:#1}\gobbleoneargument}
-
-% better:
-
-% \def\dosetups#1% the grid option will be extended to other main modes
-% {\executeifdefined{\??su\ifgridsnapping\v!grid\fi:#1}
-% {\executeifdefined{\??su :#1}\gobbleoneargument}\empty} % takes one argument
-%
-% \def\setupwithargument#1% the grid option will be extended to other main modes
-% {\executeifdefined{\??su:#1}\gobbleoneargument}
-
-% faster:
-
-\letvalue{\??su:\letterpercent}\gobbleoneargument
-
-\def\dosetups#1% the grid option will be extended to other main modes
- {\csname\??su
- \ifgridsnapping
- \ifcsname\??su\v!grid:#1\endcsname\v!grid:#1\else\ifcsname\??su:#1\endcsname:#1\else:\letterpercent\fi\fi
- \else
- \ifcsname\??su:#1\endcsname:#1\else:\letterpercent\fi
- \fi
- \endcsname\empty} % takes one argument
-
-\def\setupwithargument#1% the grid option will be extended to other main modes
- {\csname\??su:\ifcsname\??su:#1\endcsname#1\else\letterpercent\fi\endcsname}
-
-\let\directsetup\dosetups
-
-% somehow fails ...
-%
-% \letvalue{\??su:..}\gobbleoneargument
-%
-% \def\dosetups#1% the grid option will be extended to other main modes
-% {\csname \??su
-% \ifcsname\??su\ifgridsnapping\v!grid\fi:#1\endcsname\v!grid:#1\else
-% \ifcsname\??su :#1\endcsname :#1\else
-% :..\fi\fi
-% \endcsname\empty} % takes one argument
-%
-% \def\setupwithargument#1% the grid option will be extended to other main modes
-% {\csname\??su:\ifcsname\??su:#1\endcsname#1\else..\fi\endcsname}
-
-\let\directsetup\dosetups
-
-\def\doifsetupselse#1% to be done: grid
- {\doifdefinedelse{\??su:#1}}
-
-\chardef\setupseolmode\plusone
-
-\def\startsetups {\xxstartsetups\plusone \stopsetups } \let\stopsetups \relax
-\def\startlocalsetups{\xxstartsetups\plusone \stoplocalsetups} \let\stoplocalsetups\relax
-\def\startrawsetups {\xxstartsetups\zerocount\stoprawsetups } \let\stoprawsetups \relax
-\def\startxmlsetups {\xxstartsetups\plustwo \stopxmlsetups } \let\stopxmlsetups \relax
-
-\def\xxstartsetups#1#2%
- {\begingroup\chardef\setupseolmode#1\doifnextoptionalelse{\startsetupsA#2}{\startsetupsB#2}}
-
-\def\startsetupsA#1% [ ] delimited
- {\ifcase\setupseolmode\or\catcode`\^^M\@@ignore\or\catcode`\^^M\@@ignore\catcode`\|\@@other\fi
- \dotripleempty\dostartsetups[#1]}
-
-\def\startsetupsB#1#2 % space delimited
- {\ifcase\setupseolmode\or\catcode`\^^M\@@ignore\or\catcode`\^^M\@@ignore\catcode`\|\@@other\fi
- \dodostartsetups#1\empty{#2}}
-
-\def\startsetupsC[#1][#2][#3]{\dodostartsetups#1{#2}{#3}} % [..] [..]
-\def\startsetupsD[#1][#2][#3]{\dodostartsetups#1\empty{#2}} % [..]
-
-\def\dostartsetups
- {\ifthirdargument\@EA\startsetupsC\else\@EA\startsetupsD\fi}
-
-% \long\def\dodostartsetups#1#2#3% watch out: not \grabuntil
-% {\dograbuntil#1{\endgroup\dodoglobal\long\setvalue{\??su#2:#3}}} % \doglobal
-%
-% better:
-
-% \long\def\dodostartsetups#1#2#3% watch out: not \grabuntil
-% {\cleanuplabel{\??su#2:#3}\dograbuntil#1{\endgroup\dodoglobal\long\setvalue\cleanlabel}} % \doglobal
-
-% \long\def\dodostartsetups#1#2#3%
-% {\cleanuplabel{\??su#2:#3}%
-% \long\def\dododostartsetups##1#1{\endgroup\dodoglobal\long\setvalue\cleanlabel####1{##1}}\dododostartsetups}
-
-\long\def\dodostartsetups#1#2#3%
- {\cleanuplabel{\??su#2:#3}%
- \long\def\dododostartsetups##1#1%
- {\endgroup
- \dodoglobal % bah
- \long\expandafter\setvalue\expandafter\cleanlabel\expandafter####\expandafter1\expandafter{##1}}%
- \dododostartsetups\empty} % the empty trick prevents the { } in {arg} from being eaten up
-
-\def\systemsetupsprefix{*}
-
-\def\systemsetups#1{\dosetups{\systemsetupsprefix#1}}
-
-\def\resetsetups[#1]% see x-fo for usage
- {\ifundefined{\??su\ifgridsnapping\v!grid\fi:#1}%
- \dodoglobal\letbeundefined{\??su:#1}%
- \else
- \dodoglobal\letbeundefined{\??su\ifgridsnapping\v!grid\fi:#1}%
- \fi}
-
-% or
-%
-% \def\resetsetups[#1]%
-% {\letbeundefined
-% {\??su:%
-% \ifundefined{\??su\ifgridsnapping\v!grid\fi:#1}#1\else\ifgridsnapping\v!grid\fi%
-% #1}}
-
-%D new and beta and will become a module instead
-
-\def\defineshortcut
- {\dotripleargument\dodefineshortcut}
-
-\def\dodefineshortcut[#1][#2][#3]%
- {\ifthirdargument
- \doifelsenothing{#1}
- {\dododefineshortcut[<>][#2][#3]}
- {\dododefineshortcut[#1][#2][#3]}%
- \else\ifsecondargument
- \dododefineshortcut[<>][#1][#2]%
- \else
- \dododefineshortcut[<>][][#1]%
- \fi\fi}
-
-\def\dododefineshortcut[#1#2][#3][#4]% #1 is the trigger, #2 the delimiter/tag
- {\doifundefined{\??te\??te\string#2}{\letvalue{\??te\??te\string#2}=#1}%
- \defineactivecharacter #1 {\@EA\doshortcut\string#2} %
- \getparameters
- [\??te\string#2#3]
- [\c!commands=,\c!command=,\c!style=,\c!color=,#4]}
-
-\def\doshortcut#1%
- {\ifmmode
- \getvalue{\??te\??te#1}%
- \else
- \bgroup
- \catcode`#1=\@@other
- \def\dodoshortcut##1#1%
- {\def\shorttag{\??te#1}%
- \def\shortcut{##1}%
- \dododoshortcut##1:\end}%
- \@EA\dodoshortcut
- \fi}
-
-\def\dododoshortcut#1:#2\end
- {\doifelsenothing{#2}
- {\doifundefinedelse{\shorttag\c!commands}
- {\shortcut}
- {\@EA\dodododoshortcut\@EA\shorttag\@EA:\shortcut:\end}}
- {\doifundefinedelse{\shorttag#1\c!commands}
- {\shortcut}
- {\dodododoshortcut\shorttag#1:#2\end}}%
- \egroup}
-
-\def\dodododoshortcut#1:#2:\end
- {\getvalue{#1\c!commands}%
- \doattributes{#1}\c!style\c!color{\getvalue{#1\c!command}{#2}}}
-
-%D \defineshortcut [style=type]
-%D \defineshortcut [b] [style=bold]
-%D \defineshortcut [e] [style=\em]
-%D \defineshortcut [t] [style=type]
-%D \defineshortcut [c] [style=cap]
-%D \defineshortcut [k] [style=cap]
-%D \defineshortcut [u] [style=type,command=\hyphenatedurl]
-%D
-%D \startlines
-%D test <ziezo> test
-%D test test <t:ziezo>
-%D test test <b:ziezo>
-%D test test <w:ziezo>
-%D zus<>zo zus<:>zo zus<::>zo
-%D test test <t:ziezo> dat (ziezo)
-%D test test <t::ziezo> dat (:ziezo)
-%D test test <t:ziezo:> dat (ziezo:)
-%D test test <t:zi:ezo:> dat (zi:ezo:)
-%D well, <u:http://www.pragma-ade.nl> looks fuzzy
-%D $10<20$
-%D \stoplines
-%D
-%D \defineshortcut [<>] [i] [style=\it]
-%D \defineshortcut [()] [b] [style=\bf]
-%D \defineshortcut [++] [s] [style=\sl]
-%D \defineshortcut [//] [u] [style=\underbars]
-%D \defineshortcut [--] [a] [style=\overstrike]
-%D
-%D \startlines
-%D it seems <i:to work> well
-%D it seems (b:to work) well
-%D it seems +s:to work+ well
-%D it seems /u:to work/ well
-%D it seems -a:to work- well
-%D \stoplines
-
-%D \macros
-%D {setvariables,getvariable,getvariabledefault}
-%D
-%D \starttyping
-%D \setvariables[xx][title=]
-%D \setvariables[xx][title=test test]
-%D \setvariables[xx][title=test $x=1$ test] % fatal error reported
-%D \setvariables[xx][title=test {$x=1$} test]
-%D \setvariables[xx][title] % fatal error reported
-%D \setvariables[xx][titletitel=e]
-%D \stoptyping
-
-\def\??vars{@@vars}
-
-\def\setvariables {\dotripleargument\dosetvariables[\getrawparameters ]}
-\def\setevariables{\dotripleargument\dosetvariables[\getraweparameters]}
-\def\setgvariables{\dotripleargument\dosetvariables[\getrawgparameters]}
-\def\setxvariables{\dotripleargument\dosetvariables[\getrawxparameters]}
-
-\def\globalsetvariables % obsolete
- {\dotripleargument\dosetvariables[\globalgetrawparameters]}
-
-\long\def\dosetvariables[#1][#2][#3]% tricky, test on s-pre-60
- {\errorisfataltrue
- \doifelse{#2}\currentvariableclass
- {#1[\??vars:#2:][#3]}%
- {\pushmacro\currentvariableclass
- \def\currentvariableclass{#2}%
- \getvariable{#2}\s!reset
- #1[\??vars:#2:][#3]%
- \getvariable{#2}\s!set
- \popmacro\currentvariableclass}%
- \errorisfatalfalse}
-
-\long\def\setvariable #1#2#3{\long\setvalue {\??vars:#1:#2}{#3}}
-\long\def\setevariable#1#2#3{\long\setevalue{\??vars:#1:#2}{#3}}
-\long\def\setgvariable#1#2#3{\long\setgvalue{\??vars:#1:#2}{#3}}
-\long\def\setxvariable#1#2#3{\long\setxvalue{\??vars:#1:#2}{#3}}
-
-\def\getvariable#1#2% to be sped up
- {\csname
- \ifcsname\??vars:#1:#2\endcsname\??vars:#1:#2\else\s!empty\fi
- \endcsname}
-
-\def\showvariable#1#2%
- {\showvalue{\ifcsname\??vars:#1:#2\endcsname\??vars:#1:#2\else\s!empty\fi}}
-
-\let\currentvariableclass\empty
-
-%D \macros
-%D {doifelsevariable,doifvariable,doifnotvariable}
-%D
-%D A few trivial macros:
-
-\def\doifelsevariable#1#2%
- {\ifcsname\??vars:#1:#2\endcsname
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\def\doifvariable#1#2%
- {\ifcsname\??vars:#1:#2\endcsname
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\def\doifnotvariable#1#2%
- {\ifcsname\??vars:#1:#2\endcsname
- \expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
-\def\getvariabledefault#1#2% #3% can be command, so no ifcsname here
- {\executeifdefined{\??vars:#1:#2}}% {#3}
-
-%D \macros
-%D {checkvariables}
-%D
-%D I'll probably forget that this on exists.
-
-\def\checkvariables
- {\dodoubleargument\docheckvariables}
-
-\def\docheckvariables
- {\dogetparameters\docheckrawvalue}
-
-\def\docheckrawvalue#1#2#3%
- {\doifundefined {\??vars:#1:#2}{\setvalue{\??vars:#1:#2}{#3}}
- {\doifvaluenothing{\??vars:#1:#2}{\setvalue{\??vars:#1:#2}{#3}}}}
-
-% \def\setupenv{\dodoubleargument\rawgetparameters[\??en]}
-%
-% \def\doifenvelse#1{\doifdefinedelse{\??en#1}} % speed up
-% \def\doifenv #1{\doifdefined {\??en#1}} % speed up
-% \def\doifnotenv #1{\doifundefined {\??en#1}} % speed up
-%
-% \def\env#1{\csname\??en#1\endcsname}
-%
-% \def\envvar#1#2%
-% {\ifcsname\??en#1\endcsname
-% \csname\??en#1\endcsname\else#2%
-% \fi}
-
-% low level change, now also accessible as \getvariable{environment}{...}; the
-% next macros will become obsolete some day in favor of normal variables
-
-\def\s!environment{environment}
-
-\def\setupenv {\dotripleargument\dosetvariables[\getrawparameters][\s!environment]}
-\def\doifenvelse{\doifelsevariable \s!environment}
-\def\doifenv {\doifvariable \s!environment}
-\def\doifnotenv {\doifnotvariable \s!environment}
-\def\env {\getvariable \s!environment}
-\def\envvar {\getvariabledefault\s!environment}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-fil.mkii b/Master/texmf-dist/tex/context/base/mkii/core-fil.mkii
deleted file mode 100644
index 16daf7bf60f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/core-fil.mkii
+++ /dev/null
@@ -1,357 +0,0 @@
-%D \module
-%D [ file=core-fil,
-%D version=1997.11.15,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=File Support,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / File Support}
-
-\unprotect
-
-%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
-%D One of the problems with loading files is that their names
-%D can depend on the interface language. We therefore need a
-%D method to define filesynonyms. The actual synonyms are
-%D defined elsewhere, but look like:
-%D
-%D \starttyping
-%D \definefilesynonym [chemic] [chemie]
-%D \definefilesynonym [einheit] [unit]
-%D \definefilesynonym [unit] [unit]
-%D \stoptyping
-%D
-%D So we can say in english:
-%D
-%D \starttyping
-%D \usemodules[pictex,chemic,unit]
-%D \stoptyping
-%D
-%D and in dutch:
-%D
-%D \starttyping
-%D \usemodules[pictex,chemie,unit]
-%D \stoptyping
-
-% will be redone in mkiv
-
-\def\definefilesynonym
- {\dodoubleempty\dodefinefilesynonym}
-
-\def\dodefinefilesynonym[#1][#2]%
- {\ifundefined{\??fs#1}\else
- \doifnotvalue{\??fs#1}{#2}{\showmessage\m!files1{#1 (#2),\getvalue{\??fs#1}}}%
- \fi
- \doifelse{#1}{#2}{\letbeundefined{\??fs#1}{#2}}{\setevalue{\??fs#1}{#2}}}
-
-%D \macros
-%D {definefilefallback}
-
-\def\definefilefallback
- {\dodoubleargument\dodefinefilefallback}
-
-\def\dodefinefilefallback[#1][#2]%
- {\doifnotfile{#1}
- {\def\docommand##1{\doiffile{##1}{\definefilesynonym[#1][##1]\quitcommalist}}%
- \processcommalist[#2]\docommand}}
-
-%D \macros
-%D {truefilename}
-%D
-%D At the system level such a filename can be called upon by
-%D saying:
-%D
-%D \starttyping
-%D \truefilename{filename/filesynonym}
-%D \stoptyping
-%D
-%D The implementation shows that nesting is supported.
-
-\def\truefilename#1%
- {\ifundefined{\??fs#1}#1\else\truefilename{\csname\??fs#1\endcsname}\fi}
-
-%D \macros
-%D {makeshortfilename}
-%D
-%D To prevent cross platform problems with filenames, we
-%D lowercase them as well as only use the first 8~characters.
-%D
-%D \starttyping
-%D \def\domakeshortfilename[#1#2#3#4#5#6#7#8#9]%
-%D {\lowercase{\edef\shortfilename{#1#2#3#4#5#6#7#8.}}%
-%D \expandafter\beforesplitstring\shortfilename\at.\to\shortfilename}
-%D
-%D \def\makeshortfilename[#1]%
-%D {\edef\fullfilename{#1.........}%
-%D \expanded{\domakeshortfilename[\fullfilename]}}
-%D \stoptyping
-%D
-%D In 2005 there is no need for the 8~character limit any more, so:
-
-\def\makeshortfilename[#1]% no need for further cleanup and shortening
- {\lowercase{\edef\shortfilename{#1.}}%
- \expandafter\beforesplitstring\shortfilename\at.\to\shortfilename}
-
-%D \macros
-%D {usemodule}
-%D
-%D Most of \CONTEXT is preloaded in the format file. Some very
-%D domain specific typesetting topics are however dealt with in
-%D separate modules, e.g. typesetting of chemical structure
-%D formulas. These modules are loaded by:
-%D
-%D \showsetup{usemodule}
-%D
-%D More information on the specific modules can be found in
-%D their dedicated manuals. We use \type {\next} so that we
-%D can \type {\end} in modules.
-%D
-%D In \MKIV\ we load the \type {mkiv} file when there is a \type
-%D {tex} file on the same path but in \MKII\ we start with the \type
-%D {tex} file as in many cases a \type {mkii} will be the same as an
-%D (old) \type {tex} one simply because we don't update drastically
-%D (or load a mark file indirectly).
-
-\newconditional\moduleisloaded
-
-\def\dododousemodules#1#2% no \unprotect/\protect when loading,
- {\relax % since we need to use ? ! unprotected
- \ifconditional\moduleisloaded % sometimes (see xtag-map)
- \let\next\relax % or: \expandafter\gobbleoneargument
- \else
- \makeshortfilename[#1\truefilename{#2}]% beware: *- is not part of syn
- \doifelseflagged\shortfilename
- {\showmessage\m!systems7{#2 (line \number\inputlineno)}%
- \settrue\moduleisloaded
- \let\next\relax}
- {\doglobal\setflag\shortfilename
- \def\next
- {\startreadingfile
- \readsysfile\shortfilename
- {\showmessage\m!systems5{#2}\settrue\moduleisloaded}
- {\readsysfile{\shortfilename.\mksuffix} % new
- {\showmessage\m!systems5{#2 (\mksuffix)}\settrue\moduleisloaded}
- \donothing}%
- \stopreadingfile}}%
- \fi
- \next}
-
-\def\dodousemodules#1#2%
- {\setfalse\moduleisloaded
- \doifelsenothing{#1}
- {\dododousemodules\f!moduleprefix {#2}%
- \dododousemodules\f!privateprefix{#2}%
- \dododousemodules\f!styleprefix {#2}%
- \dododousemodules\f!xstyleprefix {#2}%
- \dododousemodules\f!thirdprefix {#2}%
- \dododousemodules\empty {#2}}% new, fall back on raw name
- {\dododousemodules{#1-}{#2}}%
- \ifconditional\moduleisloaded\else
- \showmessage\m!systems6{#2}%
- \appendtoks\showmessage\m!systems6{#2}\to\everynotabene
- \fi}
-
-% \def\usemodules
-% {\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}
- {\doifassignmentelse{#2}
- {\def\currentmoduleparameters{#2}%
- \def\next{\processcommalist[#1]{\dodousemodules{}}}}
- {\def\next{\processcommalist[#2]{\dodousemodules{#1}}}}}%
- \else
- \def\next{\processcommalist[#1]{\dodousemodules{}}}%
- \fi\fi
- \next
- \popmacro\currentmoduleparameters
- \popmacro\currentmodule}
-
-\let\currentmoduleparameters\empty
-\let\currentmodule \s!unknown
-
-\def\startmodule
- {\doifnextoptionalelse\dostartmodule\nostartmodule}
-
-\def\nostartmodule #1 %
- {\dostartmodule[#1]}
-
-\def\dostartmodule[#1]%
- {\pushmacro\currentmodule
- \pushmacro\currentmoduleparameters
- \def\currentmodule{#1}}
-
-\def\stopmodule
- {\popmacro\currentmoduleparameters
- \popmacro\currentmodule}
-
-\def\setupmodule
- {\dodoubleempty\dosetupmodule}
-
-\def\dosetupmodule[#1][#2]%
- {\scratchtoks\expandafter{\currentmoduleparameters}%
- \ifsecondargument
- \getparameters[\??md:#1:][#2]%
- \expanded{\getparameters[\??md:#1:][\the\scratchtoks]}%
- \else
- \getparameters[\??md:\currentmodule:][#1]%
- \expanded{\getparameters[\??md:\currentmodule:][\the\scratchtoks]}%
- \fi
- \let\currentmoduleparameters\empty}
-
-\def\moduleparameter #1#2{\executeifdefined{\??md:#1:#2}\s!empty}
-\def\currentmoduleparameter#1{\executeifdefined{\??md:\currentmodule:#1}\s!empty}
-
-% \usemodule[newmml]
-% \usemodule[newmml][a=b]
-% \usemodule[x][newmml]
-% \usemodule[x][newmml][a=b]
-%
-% \startmodule [mathml]
-% \setupmodule[a=c] \relax [\currentmoduleparameter{a}] % user vars will be set afterwards
-% \setupmodule[a=c] \relax [\currentmoduleparameter{a}] % user vars are now forgotten
-% \stopmodule
-
-% one can introduce test sections with:
-%
-% \enablemode[newmml:test:\currentmoduleparameter{test}]
-% \startmode[newmml:test:yes} ... \stopmode
-%
-% these will be ignored unless test=yes
-%
-% however, a better way is:
-
-\let\stopmoduletestsection\donothing
-
-\def\startmoduletestsection
- {\bgroup
- \setupmodule % we need to make sure that the vars are set
- \doifelse{\currentmoduleparameter\v!test}\v!yes
- {\egroup
- \writestatus{\currentmodule}{loading experimental code}}
- {\egroup
- \writestatus{\currentmodule}{skipping experimental code}%
- \gobbleuntil\stopmoduletestsection}}
-
-%D We also support a singular call, which saves us for
-%D frustrations when we do a typo.
-
-\let\usemodule=\usemodules
-
-% %D The definition shows that the language specific settings
-% %D are activated after loading all the modules specified.
-
-%D \macros
-%D {ifprotectbuffers, bufferprefix,
-%D TEXbufferfile, MPgraphicfile}
-%D
-%D The next switch enables protection of temporary filenames,
-%D which is needed when we process more files on one path at
-%D the same time.
-
-\newif\ifprotectbuffers
-
-\def\bufferprefix{\ifprotectbuffers\jobname-\fi}
-
-% The following filenames are defined here:
-
-\def\TEXbufferfile #1{\bufferprefix#1.\f!temporaryextension}
-\def\MPgraphicfile {\bufferprefix mp\ifMPrun run\else graph\fi} % not needed in luatex
-\def\convertMPcolorfile{\bufferprefix metacmyk.tmp}
-
-%D To save memory, we implement some seldomly used commands
-%D in a lazy way. Nota bene: such runtime definitions are
-%D global.
-%D
-%D \starttyping
-%D \fetchruntimecommand\showaccents{\f!encodingprefix ...}
-%D \stoptyping
-
-\def\fetchruntimecommand#1#2%
- {\def#1{\dofetchruntimecommand#1{#2}}}
-
-\def\dofetchruntimecommand#1#2%
- {\doifnotflagged{#2}
- {\let#1\undefined
- \startreadingfile
- \startnointerference % \bgroup
- \cleanupfeatures % better \setnormalcatcodes / test first
- \readfile{#2.\mksuffix}\donothing\donothing
- \stopnointerference % \egroup
- \stopreadingfile
- \doglobal\setflag{#2}}%
- \ifx#1\undefined
- \writestatus\m!systems{command \string#1 not found in file #2}%
- \def#1{{\infofont[unknown command \string#1]}}%
- \fi
- #1}
-
-%D Experimental:
-
-\let\checkpreprocessor\relax
-
-%D To be documented and probably moved
-
-\def\documentresources{\@@erurl}
-
-\def\setupexternalresources
- {\dodoubleargument\getparameters[\??er]}
-
-\setupexternalresources
- [url=]
-
-%D Goodie:
-
-\unexpanded\def\continueifinputfile#1{\doifnotfile{#1}{\endinput}}
-
-%D This module will be perfected / changed / weeded.
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-fnt.mkii b/Master/texmf-dist/tex/context/base/mkii/core-fnt.mkii
deleted file mode 100644
index 542ca062a68..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/core-fnt.mkii
+++ /dev/null
@@ -1,726 +0,0 @@
-%D \module
-%D [ file=core-fnt,
-%D version=1995.10.10,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Fonts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / Fonts}
-
-\unprotect
-
-%D \macros
-%D {compound}
-%D
-%D We will overload the already active \type {|} so we have
-%D to save its meaning in order to be able to use this handy
-%D macro.
-%D
-%D \starttyping
-%D so test\compound{}test can be used instead of test||test
-%D \stoptyping
-
-\bgroup \catcode`\|=\@@active \gdef\compound#1{|#1|} \egroup
-
-%D Here we hook some code into the clean up mechanism needed
-%D for verbatim data.
-
-\appendtoks
- \disablecompoundcharacters
- \disablediscretionaries
-\to \everycleanupfeatures
-
-%D \macros
-%D {kap,KAP,Kap,Kaps,nokap,userealcaps,usepseudocaps}
-%D
-%D We already introduced \type{\cap} as way to capitalize
-%D words. This command comes in several versions:
-%D
-%D \startbuffer
-%D \cap {let's put on a \cap{cap}}
-%D \cap {let's put on a \nocap{cap}}
-%D \CAP {let's put on a \\{cap}}
-%D \Cap {let's put on a \\{cap}}
-%D \Caps{let's put on a cap}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Note the use of \type{\nocap}, \type{\\} and the nested
-%D \type{\cap}.
-%D
-%D \startvoorbeeld
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D \stopvoorbeeld
-%D
-%D These macros show te main reason why we introduced the
-%D smaller \type{\tx} and \type{\txx}.
-%D
-%D \starttyping
-%D \cap\romannumerals{1995}
-%D \stoptyping
-%D
-%D This at first sight unusual capitilization is completely
-%D legal.
-%D
-%D \showsetup{smallcapped}
-%D \showsetup{notsmallcapped}
-%D \showsetup{CAPPED}
-%D \showsetup{SmallCapped}
-%D \showsetup{SmallCaps}
-%D
-%D The difference between pseudo and real caps is demonstrated
-%D below:
-%D
-%D \startbuffer
-%D \usepseudocaps \cap{Hans Hagen}
-%D \userealcaps \cap{Hans Hagen}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-%D
-%D The \type {\bgroup} trickery below is needed because of
-%D \type {\groupedcommand}.
-
-\def\usepseudocaps
- {\def\cap@@uppercase{\the\everyuppercase\uppercased}%
- \def\cap@@lowercase{\the\everylowercase\lowercased}%
- \def\cap@@visualize{\tx}}
-
-\def\userealcaps
- {\let\cap@@uppercase\relax
- %\let\cap@@lowercase\relax % Definitely not!
- \def\cap@@visualize{\sc}}
-
-\usepseudocaps
-
-\unexpanded\def\smallcapped % else conflict with math
- {\futurelet\next\dosmallcapped}
-
-\def\disablepseudocaps
- {\let\smallcapped\donothing}
-
-\def\dosmallcapped
- {\ifx\next\bgroup
- \expandafter\dodosmallcapped\expandafter\relax
- \else
- \expandafter\dodosmallcapped
- \fi}
-
-\def\dodosmallcapped#1#2%
- {\ifmmode\hbox\fi
- \bgroup
- \cap@@visualize
- \cap@@uppercase{#1{#2}}%
- \egroup}
-
-\unexpanded\def\notsmallcapped#1%
- {\cap@@lowercase{#1}}
-
-\unexpanded\def\CAPPED#1%
- {{\def\\##1{\smallcapped{##1}}#1}}
-
-\unexpanded\def\SmallCapped#1%
- {\CAPPED{\\#1}}
-
-\unexpanded\def\SmallCaps
- {\let\processword\SmallCapped
- \processwords}
-
-%D Sure:
-
-\def\kap{\smallcapped} % for old times sake
-
-%D Some precautions for a \PLAIN\ \TEX\ definition.
-
-\unexpanded\def\normalcap{\dohandlemathtoken{cap}}
-\unexpanded\def\normalCap{\dohandlemathtoken{Cap}}
-
-\def\cap{\mathortext\normalcap\smallcapped}
-\def\Cap{\mathortext\normalCap\SmallCapped}
-
-\appendtoks
- \let\cap\firstofoneargument
- \let\Cap\firstofoneargument
-\to \simplifiedcommands
-
-%D \macros
-%D {setupcapitals}
-%D
-%D By default we use pseudo small caps in titles. This can be
-%D set up with:
-%D
-%D \showsetup{setupcapitals}
-
-\let\normalsmallcapped\smallcapped
-
-\def\setupcapitals
- {\dosingleempty\dosetupcapitals}
-
-\def\dosetupcapitals[#1]%
- {\getparameters[\??kk][#1]%
- \doifelse\@@kktitle\v!yes
- {\definealternativestyle[\v!capital][\normalsmallcapped][\normalsmallcapped]%
- \definealternativestyle[\v!smallcaps][\sc][\sc]%
- \unexpanded\def\smallcapped{\normalsmallcapped}}
- {\definealternativestyle[\v!capital][\normalsmallcapped][\uppercased]%
- \definealternativestyle[\v!smallcaps][\sc][\uppercased]%
- \unexpanded\def\smallcapped{\doconvertfont\v!capital}}%
- \doifelse\@@kksc\v!yes
- \userealcaps
- \usepseudocaps}
-
-\ifx\uppercased\undefined \let\uppercased\uppercase \fi
-\ifx\lowercased\undefined \let\lowercased\lowercase \fi
-
-% pretty tricky stuff:
-%
-% \usemodule[abr-01] \TEX \METAPOST \PPCHTEX \LATEX
-% \usemodule[abr-02] \TEX \METAPOST \PPCHTEX \LATEX
-
-%def\uppercased#1{{\forceunexpanded\xdef\@@globalcrap{\uppercase{#1}}}\@@globalcrap}
-%def\lowercased#1{{\forceunexpanded\xdef\@@globalcrap{\lowercase{#1}}}\@@globalcrap}
-
-\def\uppercased#1{{\forceunexpanded\xdef\@@expanded{\uppercase{#1}}}\@@expanded}
-\def\lowercased#1{{\forceunexpanded\xdef\@@expanded{\lowercase{#1}}}\@@expanded}
-
-\setupcapitals
- [\c!title=\v!yes,
- \c!sc=\v!no]
-
-%D \macros
-%D {Word, Words, WORD, WORDS, doprocesswords}
-%D
-%D This is probably not the right place to present the next set
-%D of macros.
-%D
-%D \starttyping
-%D \Word {far too many words}
-%D \Words{far too many words}
-%D \WORD {far too many words}
-%D \WORDS{far too many words}
-%D \stoptyping
-%D
-%D \typebuffer
-%D
-%D This calls result in:
-%D
-%D \startvoorbeeld
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D \stopvoorbeeld
-%D
-%D \showsetup{Word}
-%D \showsetup{Words}
-%D \showsetup{WORD}
-%D \showsetup{WORDS}
-
-\def\doWord#1%
- {\bgroup
- \the\everyuppercase
- \uppercase{#1}%
- \egroup}
-
-\unexpanded\def\Word#1%
- {\doWord#1}
-
-\def\doprocesswords#1 #2\od
- {\ConvertToConstant\doifnot{#1}{}
- {\processword{#1} %
- \doprocesswords#2 \od}}
-
-\def\processwords#1%
- {\doprocesswords#1 \od\unskip}
-
-\let\processword\relax
-
-\unexpanded\def\Words
- {\let\processword\Word
- \processwords}
-
-\unexpanded\def\WORD#1%
- {\bgroup
- \let\smallcapped\firstofoneargument
- \let\WORD\firstofoneargument
- \douppercase{#1}%
- \egroup}
-
-\unexpanded\def\WORDS#1%
- {\WORD{#1}}
-
-%D \macros
-%D {stretched}
-%D
-%D Stretching characters in a word is a sort of typographical
-%D murder. Nevertheless we support this manipulation for use in
-%D for instance titles.
-%D
-%D \starttyping
-%D \hbox to 5cm{\stretched{murder}}
-%D \stoptyping
-%D
-%D \typebuffer
-%D
-%D or
-%D
-%D \startvoorbeeld
-%D \getbuffer
-%D \stopvoorbeeld
-%D
-%D \showsetup{stretched}
-
-\def\stretched#1%
- {\ifvmode\hbox to \hsize\else\ifinner\else\hbox\fi\fi
- \bgroup\processtokens\relax\hss\relax{\hss\hss}{#1}\egroup}
-
-%D \startbuffer
-%D \stretched{Unknown Box}
-%D \hbox to .5\hsize{\stretched{A Horizontal Box}}
-%D \vbox to 2cm{\stretched{A Vertical Box}}
-%D \hbox to 3cm{\stretched{sp{\'e}c{\`\i}{\"a}l}}
-%D \stopbuffer
-%D
-%D \getbuffer
-%D
-%D The first line of this macros takes care of boxing. Normally
-%D one will use an \type{\hbox} specification. The last line
-%D shows how special characters should be passed.
-%D
-%D \typebuffer
-
-%D \macros
-%D {stretchednormalcase, stretcheduppercase, stretchedlowercase}
-%D
-%D A convenient alternative is:
-%D
-%D \starttyping
-%D \stretcheduppercase{Is this what you like?}
-%D \stoptyping
-%D
-%D \typebuffer
-%D
-%D this one uses fixed skips and kerns.
-%D
-%D \startvoorbeeld
-%D \getbuffer
-%D \stopvoorbeeld
-%D
-%D The default skip can be set with:
-
-% \def\stretchedspacefactor{4}
-% \def\stretchedspaceamount{.25em}
-%
-% \unexpanded\def\stretcheduppercase#1%
-% {\bgroup
-% \the\everyuppercase
-% \uppercase{\def\textstring{#1}}%
-% \ifdim\stretchedspaceamount>\zeropoint
-% \def\textkern%
-% {\kern\stretchedspaceamount}%
-% \def\textskip%
-% {\scratchdimen=\stretchedspaceamount
-% \hskip\stretchedspacefactor\scratchdimen}%
-% \@EA\processtokens\@EA\relax\@EA\textkern\@EA\relax\@EA
-% \textskip\@EA{\textstring}%
-% \else
-% \textstring
-% \fi
-% \egroup}
-
-%D Given the following settings, the space is 1em by default:
-
-\def\stretchedspacefactor{4}
-\def\stretchedspaceamount{.25em}
-\def\stretchedbreaktokens{.@/}
-
-\unexpanded\def\stretchednormalcase
- {\stretchedsomecase\firstofoneargument}
-
-\unexpanded\def\stretcheduppercase
- {\stretchedsomecase{\the\everyuppercase\uppercase}}
-
-\unexpanded\def\stretchedlowercase
- {\stretchedsomecase{\the\everylowercase\lowercase}}
-
-\def\stretchedsomecase#1#2%
- {\bgroup
- #1{\def\textstring{#2}}%
- \ifdim\stretchedspaceamount=\zeropoint
- \textstring
- \else
- \def\textkern##1%
- {% beware: ##1 may not be \box\somebox -)
- \determinemidwordbreak{##1}{\stretchedbreaktokens}%
- \kern\stretchedspaceamount##1\domidwordbreak}%
- \def\textskip
- {\scratchdimen\stretchedspaceamount
- \hskip\stretchedspacefactor\scratchdimen}%
- \@EA\processtokens\@EA\relax\@EA\textkern\@EA\relax\@EA
- \textskip\@EA{\textstring}%
- \fi
- \egroup}
-
-%D An auxiliary macro, see for usage \type {\stretcheduppercase}.
-
-\let\domidwordbreak\relax
-
-\def\setmidwordbreaktoken#1%
- {\sfcode`#1=5000\relax}
-
-\def\determinemidwordbreak#1#2%
- {\edef\midwordbreaktokens{#2}%
- \ifx\midwordbreaktokens\empty
- \global\let\domidwordbreak\relax
- \else
- \setbox\scratchbox\hbox
- {\expandafter\handletokens\midwordbreaktokens\with\setmidwordbreaktoken
- a\space \!!dimena\lastskip
- #1\space\!!dimenb\lastskip \relax % needed
- \ifdim\!!dimena=\!!dimenb
- \globallet\domidwordbreak\relax
- \else
- \globallet\domidwordbreak\allowbreak
- \fi}%
- \fi}
-
-%D \macros
-%D {underbar,underbars,
-%D overbar,overbars,
-%D overstrike,overstrikes,
-%D setupunderbar}
-%D
-%D In the rare case that we need undelined words, for instance
-%D because all font alternatives are already in use, one can
-%D use \type{\underbar} and \type{\overstrike} and their plural
-%D forms.
-%D
-%D \startbuffer
-%D \underbars{drawing \underbar{bars} under words is a typewriter leftover}
-%D \overstrikes{striking words makes them \overstrike{unreadable} but
-%D sometimes even \overbar{top lines} come into view.}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \startvoorbeeld
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D \stopvoorbeeld
-%D
-%D The next macros are derived from the \PLAIN\ \TEX\ one, but
-%D also supports nesting. The \type{$} keeps us in horizontal
-%D mode and at the same time applies grouping.
-%D
-%D \showsetup{underbar}
-%D \showsetup{underbars}
-%D \showsetup{overbar}
-%D \showsetup{overbars}
-%D \showsetup{overstrike}
-%D \showsetup{overstrikes}
-%D
-%D Although underlining is ill advised, we permit some
-%D alternatives, that can be set up by:
-%D
-%D \showsetup{setupunderbar}
-%D
-%D The alternatives show up as
-%D {\setupunderbar [alternative=a]\underbar{alternative a}},
-%D {\setupunderbar [alternative=b]\underbar{alternative b}},
-%D {\setupunderbar [alternative=c]\underbar{alternative c}}
-%D and
-%D {\setupunderbar [rulethickness=1pt]\underbar{1pt width}},
-%D {\setupunderbar [rulethickness=2pt]\underbar{2pt width}},
-%D or whatever. Because \type{\overstrike} uses the same
-%D method, the settings also apply to that macro.
-
-\newcount\underbarlevel
-
-\def\underbarmethoda#1#2#3% RULE
- {\hbox to #1{\vrule\!!width#1\!!height#2\!!depth#3}}
-
-\def\underbarmethodb#1#2#3% DASH
- {\hbox to #1
- {\hskip-.25em
- \xleaders
- \hbox{\hskip.25em\vrule\!!width.25em\!!height#2\!!depth#3}
- \hfil}}
-
-\def\underbarmethodc#1#2#3% PERIOD
- {\hbox to #1
- {\dimen4=#3
- \advance\dimen4 .2ex
- \hskip-.25em
- \xleaders
- \hbox{\hskip.25em\lower\dimen4\hbox{.}}
- \hfil}}
-
-\def\dododounderbar#1#2#3%
- {\startmathmode
- \setbox0\hbox{#3}%
- \setbox2\hbox{\color[\@@onrulecolor]{\getvalue{underbarmethod\@@onalternative}{\wd0}{#1}{#2}}}%
- \wd0\zeropoint
- \ht2\ht0
- \dp2\dp0
- \box0\box2
- \stopmathmode}
-
-\unexpanded\def\dodounderbar#1%
- {\bgroup
- \dimen0=\@@onbottomoffset
- \dimen0=\underbarlevel\dimen0
- \ifdone \else
- \advance\dimen0 -\strutht
- \fi
- \dimen2\dimen0
- \advance\dimen2 \@@onrulethickness
- \dododounderbar{-\dimen0}{\dimen2}{#1}%
- \egroup}
-
-\def\betweenunderbarwords
- {\bgroup
- \setbox0\hbox{\dodounderbar{\hskip\interwordspace}}%
- \nobreak
- \hskip\zeropoint\!!minus\interwordshrink
- \discretionary{}{}{\box0}%
- \egroup}
-
-\def\betweenunderbarspaces
- {\hskip\currentspaceskip}
-
-% \unexpanded\def\dounderbar#1#2%
-% {\let\betweenisolatedwords#1%
-% \processisolatedwords{#2}\dodounderbar
-% \egroup}
-
-\unexpanded\def\underbar
- {\bgroup
- \advance\underbarlevel\plusone
- \donetrue
- \dounderbar\betweenunderbarwords}
-
-\unexpanded\def\dounderbar#1%
- {\let\betweenisolatedwords#1%
- \dosingleempty\redounderbar}
-
-\unexpanded\def\redounderbar[#1]#2%
- {\iffirstargument\setupunderbar[#1]\fi
- \processisolatedwords{#2}\dodounderbar
- \egroup}
-
-\unexpanded\def\underbars
- {\bgroup
- \advance\underbarlevel\plusone
- \donetrue
- \dounderbar\betweenunderbarspaces}
-
-\unexpanded\def\overbar
- {\bgroup
- \advance\underbarlevel\minusone
- \donefalse
- \dounderbar\betweenunderbarwords}
-
-\unexpanded\def\overbars
- {\bgroup
- \advance\underbarlevel\minusone
- \donefalse
- \dounderbar\betweenunderbarspaces}
-
-\def\dooverstrike#1%
- {\bgroup
- \dimen0=\@@ontopoffset
- \dimen2=\dimen0
- \advance\dimen2 \@@onrulethickness
- \dododounderbar{\dimen2}{-\dimen0}{#1}%
- \egroup}
-
-\def\betweenoverstrikewords
- {\bgroup
- \setbox0\hbox{\dooverstrike{\hskip\interwordspace}}%
- \nobreak
- \hskip\zeropoint\!!minus\interwordshrink
- \discretionary{}{}{\box0}%
- \egroup}
-
-\unexpanded\def\overstrike#1%
- {\bgroup
- \let\betweenisolatedwords\betweenoverstrikewords
- \processisolatedwords{#1}\dooverstrike
- \egroup}
-
-\unexpanded\def\overstrikes#1%
- {\bgroup
- \processisolatedwords{#1}\dooverstrike
- \egroup}
-
-\def\underbarparameter#1{\csname\??on#1\csname}
-
-\def\setupunderbar
- {\dodoubleargument\getparameters[\??on]}
-
-%D \macros
-%D {shiftedword, shiftedwords}
-%D
-%D Used as \type {\shiftedwords {10pt} {some text}} this macro will
-%D move
-
-% \def\shiftedword#1% #2%
-% {\raise#1\hbox} % {#2}} % officially: {\ifdim#1>\zeropoint\raise\else\lower\fi#1\hbox{#2}}
-
-% \def\shiftedwords#1#2%
-% {\processisolatedwords{#2}{\shiftedword{#1}}}
-
-%D \macros
-%D {low, high, lohi}
-%D
-%D Although \TEX\ is pretty well aware of super- and
-%D subscripts, its mechanism is mainly tuned for math mode.
-%D The next few commands take care of script texts both modes.
-%D
-%D \startbuffer
-%D The higher\high{one goes} the lower\low{one drops}, or\lohi{yes}{no}?
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-%D
-%D Note the different placement of \type {\lohi}, where we
-%D need a bit more space. The implementation looks a bit
-%D fuzzy, since some \type {\fontdimen}'s are involved to
-%D determine the optimal placement.
-
-\def\dodohighlow
- {\ifx\fontsize\empty
- \ifmmode
- \ifnum\fam<0 \tx \else \holamathfont \fi
- \else
- \tx
- \fi
- \else
- \tx
- \fi}
-
-\def\dohighlow#1#2#3#4#5% todo, named fontdimens
- {\dontleavehmode
- \bgroup
- \scratchdimen\ifdim\fontexheight\textfont2=1ex #2\textfont2\else #3ex\fi
- \advance\scratchdimen #4ex
- \kern.1ex
- \setbox\scratchbox\hbox{#1\scratchdimen\hbox{\dodohighlow#5}}%
- \ht\scratchbox\strutheight
- \dp\scratchbox\strutdepth
- \box\scratchbox
- \egroup}
-
-\unexpanded\def\high{\dohighlow\raise\mathsupnormal{.86}{0}}
-\unexpanded\def\low {\dohighlow\lower\mathsubnormal{.48}{0}}
-
-% \unexpanded\def\lohi#1#2%
-% {\dontleavehmode
-% \hbox
-% {\setbox4=\hbox{\dohighlow\lower\mathsubnormal{.48}{.1}{#1}}%
-% \setbox6=\hbox{\dohighlow\raise\mathsupnormal{.86}{.1}{#2}}%
-% \ifdim\wd4<\wd6
-% \wd4=\zeropoint\box4\box6
-% \else
-% \wd6=\zeropoint\box6\box4
-% \fi}}
-
-\unexpanded\def\lohi
- {\dosingleempty\dolohi}
-
-\def\dolohi[#1]#2#3%
- {\dontleavehmode
- \hbox
- {\setbox4\hbox{\dohighlow\lower\mathsubnormal{.48}{.1}{#2}}%
- \setbox6\hbox{\dohighlow\raise\mathsupnormal{.86}{.1}{#3}}%
- \doif{#1}{\v!left}
- {\ifdim\wd4<\wd6
- \setbox4\hbox to \wd6{\hss\box4}%
- \else
- \setbox6\hbox to \wd4{\hss\box6}%
- \fi}%
- \ifdim\wd4<\wd6
- \wd4=\zeropoint\box4\box6
- \else
- \wd6=\zeropoint\box6\box4
- \fi}}
-
-%D You can provide an optional keyword \type {left}, in which
-%D case the super and subscripts will be aligned in a way that
-%D permits placement at the left of a word (which means that
-%D it will be right aligned).
-%D
-%D \startbuffer
-%D \lohi{aha}{ah} test \lohi{aha}{ah} test
-%D \lohi[left]{aha}{ah} test \lohi[left]{aha}{ah} test
-%D \lohi{aha}{ah} test\lohi{aha}{ah} test
-%D \lohi[left]{aha}{ah}test \lohi[left]{aha}{ah}test
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-
-%D \macros
-%D {setupinitial,placeinitial,checkinitial}
-%D
-%D {\em To be documented.}
-%D
-%D \starttyping
-%D \setupinitial[state=start] \placeinitial \input tufte
-%D \stoptyping
-%D
-%D and
-%D
-%D \starttyping
-%D \def\bpar{\ifvmode\checkinitial\fi}
-%D \def\epar{\ifhmode\par\fi\checkinitial}
-%D \stoptyping
-
-% to do: more fine tuning
-
-\def\setupinitial
- {\dodoubleempty\getparameters[\??dc]}
-
-\definefontsynonym[Initial][Regular] % prefered initial identifier
-\definefontsynonym[initial][Initial] % internal but accepted too
-
-\setupinitial
- [\c!state=\v!stop,
- \c!location=\v!text,
- \c!n=3,
- \c!distance=.125em,
- \c!command=,
- \s!font=initial]
-
-\def\AutoDroppedCapsCommand{\NiceDroppedCaps\@@dccommand\@@dcfont\@@dcdistance\@@dcn}%
-
-\def\placeinitial
- {\doifelse\@@dclocation\v!margin{\chardef\DropMode\plusone}{\chardef\DropMode\zerocount}%
- \doif \@@dcstate\v!start{\ifcase\@@dcn\else\AutoDroppedCaps\fi}}
-
-\let\checkinitial\CheckDroppedCaps
-
-%D This module has only a few setups:
-
-\setupunderbar
- [\c!alternative=a,
- \c!rulethickness=\linewidth,
- \c!bottomoffset=1.5pt,
- \c!topoffset=2.5pt,
- \c!rulecolor=]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-gen.mkii b/Master/texmf-dist/tex/context/base/mkii/core-gen.mkii
deleted file mode 100644
index 0d7fcebe00c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/core-gen.mkii
+++ /dev/null
@@ -1,166 +0,0 @@
-%D \module
-%D [ file=core-gen,
-%D version=1995.10.10,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=General,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / General}
-
-\unprotect
-
-%D \macros
-%D {assigndimension,assignalfadimension}
-%D
-%D Hieronder worden enkele commando's gedefinieerd rond
-%D toekenningen. Allereerst een commando om waarden aan
-%D een \DIMENSION\ toe te kennen:
-%D
-%D \starttyping
-%D \assigndimension
-%D {<waarde>|klein|middel|groot|-klein|-middel|-groot|geen}
-%D {\dimension}
-%D {waarde klein}
-%D {waarde middel}
-%D {waarde groot}
-%D \stoptyping
-%D
-%D Hierbij krijgt de \DIMENSION\ \type{\dimension} een waarde
-%D afhankelijk van het meegegeven trefwoord.
-%D
-%D \startnarrower
-%D \startlines
-%D \type{(-)klein }\qquad (--) waarde klein
-%D \type{(-)middel}\qquad (--) waarde middel
-%D \type{(-)groot }\qquad (--) waarde groot
-%D \type{geen }\qquad 0pt
-%D \type{waarde }\qquad waarde
-%D \stoplines
-%D \stopnarrower
-%D
-%D Een trefwoord mag worden voorafgegaan door een \type{-}.
-%D Deze macro toont een voorbeeld van het gebruik van
-%D \type{\processaction} en constanten.
-%D
-%D Analoog aan het bovenstaande commando kennen we een
-%D commando om waarden toe te kennen aan een macro:
-%D
-%D \starttyping
-%D \assignalfadimension
-%D {<waarde>|klein|middel|groot|geen}
-%D {\macro}
-%D {waarde klein}
-%D {waarde middel}
-%D {waarde groot}
-%D \stoptyping
-
-% The third (optimized) version:
-
-\def\@ad@{@ad@}
-
-\setvalue{\@ad@ \v!none }{\zeropoint\gobblethreearguments}
-\setvalue{\@ad@ \v!big }{\thirdofthreearguments}
-\setvalue{\@ad@ \v!medium}{\secondofthreearguments}
-\setvalue{\@ad@ \v!small }{\firstofthreearguments}
-\setvalue{\@ad@-\v!big }{-\thirdofthreearguments}
-\setvalue{\@ad@-\v!medium}{-\secondofthreearguments}
-\setvalue{\@ad@-\v!small }{-\firstofthreearguments}
-
-\def\assigndimension#1#2% #3 #4 #5
- {#2=\ifcsname\@ad@#1\endcsname
- \csname\@ad@#1\expandafter\endcsname
- \else
- #1\expandafter\gobblethreearguments
- \fi}
-
-\def\@aa@{@aa@}
-
-\setvalue{\@aa@\v!none }{0\gobblethreearguments}
-\setvalue{\@aa@\v!big }{\thirdofthreearguments}
-\setvalue{\@aa@\v!medium}{\secondofthreearguments}
-\setvalue{\@aa@\v!small }{\firstofthreearguments}
-
-\def\assignalfadimension#1#2#3#4#5% #3#4#5 are single digits
- {\edef#2{\ifcsname\@aa@#1\endcsname
- \csname\@aa@#1\expandafter\endcsname
- \else
- #1\expandafter\gobblethreearguments
- \fi#3#4#5}}
-
-%D \macros
-%D {assignvalue}
-%D
-%D Een variant hierop is het commando:
-%D
-%D \starttyping
-%D \assignvalue
-%D {<waarde>|klein|middel|groot}
-%D {\macro}
-%D {waarde klein }
-%D {waarde middel}
-%D {waarde groot}
-%D \stoptyping
-%D
-%D Hierbij krijgt \type{\macro} een waarde afhankelijk van
-%D het meegegeven trefwoord:
-%D
-%D \startnarrower
-%D \startlines
-%D \type{klein }\qquad waarde klein
-%D \type{middel}\qquad waarde middel
-%D \type{groot }\qquad waarde groot
-%D \type{waarde}\qquad waarde
-%D \stoplines
-%D \stopnarrower
-%D
-%D Hier doet \type{geen} dus niet mee.
-
-\def\@av@{@av@}
-
-\letvalue{\@av@\v!big }\thirdofthreearguments
-\letvalue{\@av@\v!medium}\secondofthreearguments
-\letvalue{\@av@\v!small }\firstofthreearguments
-
-\def\assignvalue#1#2#3#4#5%
- {\edef#2{\ifcsname\@av@#1\endcsname
- \csname\@av@#1\expandafter\endcsname
- \else
- #1\expandafter\gobblethreearguments
- \fi{#3}{#4}{#5}}}
-
-%D \macros
-%D {assignwidth}
-%D
-%D Een breedte van een opgegeven tekst kan worden berekend en
-%D toegekend aan een \DIMENSION\ met:
-%D
-%D \starttyping
-%D \assignwidth
-%D {\dimension}
-%D {<waarde>|passend|ruim}
-%D {tekst}
-%D \stoptyping
-%D
-%D Dit commando sluit, evenals de bovenstaande
-%D \type{\assign}||commando's, aan op de wijze waarop
-%D in de andere \CONTEXT||modules toekenningen
-%D plaatsvinden. Bij \type{ruim} wordt de gemeten breedte
-%D met 1~em vermeerderd.
-
-\def\assignwidth#1#2#3#4%
- {\doifelsenothing{#2}
- {\setbox\scratchbox\hbox{#3}%
- #1\wd\scratchbox}
- {\doifinsetelse{#2}{\v!fit,\v!broad}
- {\setbox\scratchbox\hbox{#3}%
- #1\wd\scratchbox
- \doif{#2}\v!broad{\advance#1 #4}}%
- {#1=#2}}}%
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/core-ini.mkii
deleted file mode 100644
index 04535bec6f6..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/core-ini.mkii
+++ /dev/null
@@ -1,67 +0,0 @@
-%D \module
-%D [ file=core-ini,
-%D version=2003.12.01,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Additional Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / Additional Initialization}
-
-%D We will move more code to here, so that we become less dependent of the
-%D orde in which modules are loaded.
-
-\unprotect
-
-\everypar \emptytoks
-\neverypar \emptytoks
-
-\appendtoks \flushnotes \to \everypar
-\appendtoks \synchronizesidefloats \to \everypar
-
-\appendtoks \checkinlinedirection \to \everypar
-
-\appendtoks \checkindentation \to \everypar
-\appendtoks \showparagraphnumber \to \everypar
-\appendtoks \flushmargincontents \to \everypar
-\appendtoks \flushcommentanchors \to \everypar
-\appendtoks \synchronizenotes \to \everypar
-\appendtoks \OTRSETshowstatus \to \everypar
-\appendtoks \flushpostponedbookmark \to \everypar
-\appendtoks \registerparoptions \to \everypar
-\appendtoks \flushsyncpositions \to \everypar
-\appendtoks \flushpostponednodedata \to \everypar
-\appendtoks \dohandlerepeatdelimitedtext \to \everypar
-\appendtoks \insertparagraphintro \to \everypar
-
-\appendtoks \flushpostponedbookmark \to \neverypar
-\appendtoks \flushpostponedbookmark \to \everylistentry
-
-\appendtoks \flushnotes \to \everydisplay
-\appendtoks \adjustsidefloatdisplaylines \to \everydisplay
-
-\appendtoks \flushsyncpositions \to \everyheadstart
-
-\appendtoks \flushsyncresets \to \everyendoftextbody
-
-\appendtoks \ignorespaces \to \everybeginofpar
-
-\appendtoks \removeunwantedspaces \to \everyendofpar
-%appendtoks \strut \to \everyendofpar % option ?
-\appendtoks \flushsyncresets \to \everyendofpar
-\appendtoks \setlastlinewidth \to \everyendofpar % must happen before endgraf
-\appendtoks \endgraf \to \everyendofpar
-
-% Todo: verbatim, xml, tex, move code to here
-
-\ifx\normalcompound\undefined \let\normalcompound=| \fi
-
-\appendtoks \catcode`|=\@@active \let|\normalcompound \to \everyTEXinputmode
-\appendtoks \catcode`|=\@@letter \to \everyXMLinputmode
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-job.mkii b/Master/texmf-dist/tex/context/base/mkii/core-job.mkii
deleted file mode 100644
index e2dc16031ff..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/core-job.mkii
+++ /dev/null
@@ -1,419 +0,0 @@
-%D \module
-%D [ file=core-job, % copied from main-001,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Job Handling,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module is still to be split and documented.
-
-\writestatus{loading}{ConTeXt Core Macros / Job Handling}
-
-\unprotect
-
-\let \currentproject \empty
-\let \currentproduct \empty
-\let \currentenvironment \empty
-\let \currentcomponent \empty
-
-\let \loadedfiles \empty
-\let \processedfiles \empty
-
-\let \nomorefiles \relax
-
-\let \allinputpaths \empty
-\let \locatedfilepath \empty
-
-\newcount\textlevel
-\newcount\fileprocesslevel
-
-\setvalue{\c!file::0}{\jobname}
-
-\def\processedfile % is used in styles, don't change !
- {\getvalue{\c!file::\number\fileprocesslevel}}
-
-\def\dostarttextfile#1%
- {\global\advance\fileprocesslevel\plusone
- \setxvalue{\c!file::\number\fileprocesslevel}{#1}%
- \@EA\doglobal\@EA\addtocommalist\@EA{#1}\processedfiles}
-
-\def\dostoptextfile
- {\global\advance\fileprocesslevel\minusone}
-
-\def\processlocalfile#1#2%
- {#1{#2}\donothing{\readfile{#2}\donothing\donothing}}
-
-\def\processfile#1%
- {\ifx\allinputpaths\empty
- \def\next{\processlocalfile\readlocfile}%
- \else
- \let\filepath\empty
- \def\docommand##1%
- {\doiffileelse{\pathplusfile{##1}{#1}}{\donetrue\def\filepath{##1}}\donefalse
- \ifdone\expandafter\quitcommalist\fi}%
- \doifparentfileelse{#1} % new
- {\processcommacommand [\allinputpaths]\docommand}
- {\processcommacommand[.,\allinputpaths]\docommand}%
- \ifx\filepath\empty
- \def\next{\processlocalfile\readlocfile}% fall back ../../..
- \else
- \def\next{\processlocalfile{\readsetfile\filepath}}% file found
- \fi
- \fi
- \next{#1}}
-
-\def\doifinputfileelse#1% rarely used
- {\ifx\allinputpaths\empty
- \@EA\secondoftwoarguments
- \else
- \let\filepath\empty
- \def\docommand##1%
- {\doiffileelse{\pathplusfile{##1}{#1}}{\donetrue\def\filepath{##1}}\donefalse
- \ifdone\expandafter\quitcommalist\fi}%
- \processcommacommand[.,\allinputpaths]\docommand
- \ifx\filepath\empty
- \@EAEAEA\secondoftwoarguments
- \else
- \@EAEAEA\firstoftwoarguments
- \fi
- \fi}
-
-\let\locatedfilepath\empty
-
-\def\locatefilepath#1%
- {\let\locatedfilepath\empty
- \ifx\allinputpaths\empty \else
- \def\docommand##1%
- {\doiffileelse{\pathplusfile{##1}{#1}}{\donetrue\def\locatedfilepath{##1}}\donefalse
- \ifdone\expandafter\quitcommalist\fi}%
- \doifparentfileelse{#1} % new
- {\processcommacommand [\allinputpaths]\docommand}
- {\processcommacommand[.,\allinputpaths]\docommand}%
- \fi}
-
-\def\usepath[#1]%
- {\def\docommand##1%
- {\doifelse{##1}\v!reset
- {\let\allinputpaths\empty}
- {\sanitizefilename#1\to\ascii
- \defconvertedcommand\ascii\ascii
- \addtocommalist\ascii\allinputpaths}}%
- \processcommalist[#1]\docommand}
-
-\def\usesubpath[#1]% test for a real long time, permits ../{name} i.e. braces
- {\ifx\allinputpaths\empty
- \sanitizefilename#1\to\allinputpaths
- \else
- \def\docommand##1%
- {\def\dodocommand####1%
- {\sanitizefilename####1\to\ascii
- \defconvertedcommand\ascii\ascii
- \addtocommalist{##1/\ascii}\allinputpaths}%
- \processcommalist[#1]\dodocommand}%
- \processcommacommand[\allinputpaths]\docommand
- \fi}
-
-\def\registerfileinfo[#1#2]#3% geen \showmessage ?
- {\writestatus\m!systems{#1#2 file #3 at line \the\inputlineno}%
- \immediatewriteutility{f #1 {#3}}}
-
-\ifx\preloadfonts \undefined \let\preloadfonts \relax \fi
-\ifx\preloadspecials\undefined \let\preloadspecials\relax \fi
-
-\ifx\disableXML\undefined \let\disableXML\relax \fi
-
-\def\doloadsystemfile#1% mkii with fallback to tex
- {\readsysfile{#1.\mksuffix}
- {\showmessage\m!systems2{#1.\mksuffix}}
- {\readsysfile{#1.tex}{\showmessage\m!systems2{#1.tex}}\donothing}}
-
-\def\loadsystemfiles
- {\reportprotectionstate
- \doloadsystemfile\f!newfilename
- \doloadsystemfile\f!locfilename
- \doloadsystemfile\f!expfilename
- \readsysfile{\f!sysfilename.\mksuffix}
- {\showmessage\m!systems2{\f!sysfilename.\mksuffix}}
- {\readsysfile{\f!sysfilename.tex}
- {\showmessage\m!systems2{\f!sysfilename.tex}}
- {\readsysfile{\f!sysfilename.rme}
- {\showmessage\m!systems2{\f!sysfilename.rme}%
- \doglobal\appendtoks % brrr better \setcatcodetable\ctxcatcodes
- \bgroup
- \disableXML
- \readsysfile{\f!errfilename.\mksuffix}\donothing\donothing
- \egroup
- \to\everygoodbye}%
- \donothing}}}
-
-%D Loading of \type {cont-usr.tex} (edited by the user)
-%D and \type {cont-fmt.tex} (generated by texexec). This is
-%S obsolete now that we have enough memory for patterns.
-
-% \def\loaduserspecifications
-% {% this used to be the file where users can tune their system, especially patterns
-% \readsysfile\f!usrfilename{\showmessage\m!systems2\f!usrfilename}\donothing
-% % this one took care of user preferences (fonts, messages) but lm made this obsolete
-% \readjobfile\f!fmtfilename{\showmessage\m!systems2\f!fmtfilename}\donothing
-% % from now on we preload all patterns (only in mkii)
-% \preloadallpatterns}
-
-\let\loaduserspecifications\relax
-
-%D We don't want multiple jobfiles to interfere.
-
-\def\loadoptionfile
- {\readjobfile{\jobname.\f!optionextension}
- {\showmessage\m!systems2{\jobname.\f!optionextension}}%
- {\writestatus\m!systems {no \jobname.\f!optionextension}}}
-
-% Most natural ...
-%
-% \def\doateverystarttext
-% {\the\everystarttext
-% \global\let\doateverystarttext\relax}
-%
-% ... most practical, since we can load env's in a
-% something.run file (nested \starttext's; see for
-% instance x-res-08, where we definitely want to
-% open the file!).
-
-\def\doateverystarttext
- {\the\everystarttext
- \global\everystarttext\emptytoks}
-
-\def\starttext
- {\doateverystarttext
- \ifcase\textlevel
- \registerfileinfo[begin]\jobname
- \expandafter\startcopyingblocks
- \fi
- \global\advance\textlevel\plusone}
-
-\def\stoptext
- {\global\advance\textlevel\minusone
- \ifnum\textlevel>\zerocount \else
- \page[\v!last]\page % new, moved from everybye to here; flushes headers, colors etc etc etc
- \the\everystoptext
- %\the\everybye %
- %\the\everygoodbye % == \end (new)
- %\expandafter\normalend %
- \expandafter\finalend
- \fi}
-
-\def\forcequitjob#1%
- {\writestatus\m!systems{forcing quit: #1}%
- \batchmode
- \dorecurse\textlevel\stoptext
- \normalend}
-
-\let\autostoptext\relax
-
-\def\autostarttext
- {\ifcase\textlevel
- \starttext
- \writestatus\m!systems{auto \string\starttext..\string\stoptext}%
- \let\autostoptext\stoptext
- \fi}
-
-\def\finalend
- {\ifnum\textlevel>\zerocount \else
- \the\everybye
- \the\everygoodbye
- \doifsometokselse\everynotabene{\writeline\the\everynotabene\writeline}\donothing
- \global\everybye \emptytoks % rather unneeded
- \global\everygoodbye\emptytoks % but for sure
- \expandafter\normalend
- \fi}
-
-\let\end\finalend
-
-\def\emergencyend
- {\writestatus\m!systems{invalid \@EA\string\csname\e!start\v!text\endcsname...\@EA\string\csname\e!stop\v!text\endcsname\space structure}%
- \stoptext}
-
-\def\currentfile{\inputfilename}
-
-\def\doexecutefileonce#1%
- {\beforesplitstring#1\at.\to\currentfile
- \fullexpandtwoargsafter\doifnotinset\currentfile\loadedfiles
- {\fullexpandoneargafter\addtocommalist\currentfile\loadedfiles
- \doexecutefile{#1}}}
-
-\def\doexecutefile#1%
- {\registerfileinfo[begin]{#1}%
- \dostarttextfile{#1}%
- \processfile{#1}%
- \dostoptextfile
- \registerfileinfo[end]{#1}}
-
-\def\donotexecutefile#1%
- {}
-
-\def\verwerkfile#1 %
- {\doexecutefile{#1}}
-
-\def\useenvironment[#1]% maybe commalist
- {\environment #1 \relax}
-
-\def\environment #1 % at outermost level only (load only once)
- {\pushmacro\startenvironment
- \pushmacro\stopenvironment
- \def\startenvironment ##1 {}%
- \let\stopenvironment\relax
- \startreadingfile
- \doexecutefileonce{#1}
- \stopreadingfile
- \popmacro\stopenvironment
- \popmacro\startenvironment}
-
-\def\component #1 % at outermost level only
- {\dostarttextfile{#1}%
- \processfile{#1}%
- \dostoptextfile}
-
-\newcount\filelevel
-
-\let\currentcomponent \v!text
-\let\currentcomponentpath\f!currentpath
-
-\def\donextlevel#1#2#3#4#5#6#7\\%
- {\pushmacro\currentcomponent
- \pushmacro\currentcomponentpath
- \let\currentcomponent#1%
- \setsystemmode\currentcomponent
- \splitfilename{#1}%
- \ifx\splitoffpath\empty
- \let\currentcomponentpath\f!currentpath
- \else
- \let\currentcomponentpath\splitoffpath
- \fi
- \beforesplitstring#7\at.\to#2\relax % can become path + base
- \ifcase\filelevel\relax
- \starttext
- \def\project ##1 {#3{##1}}%
- \def\environment ##1 {#4{##1}}%
- \def\product ##1 {#5{##1}}%
- \def\component ##1 {#6{##1}}%
- \fi
- \advance\filelevel\plusone
- \fullexpandoneargafter\addtocommalist{#1}\loadedfiles}
-
-\def\doprevlevel
- {\popmacro\currentcomponentpath
- \popmacro\currentcomponent
- \setsystemmode\currentcomponent
- \ifnum\filelevel=\plusone
- \expandafter\stoptext
- \else
- \advance\filelevel\minusone
- \expandafter\endinput
- \fi}
-
-\def\startproject #1 %
- {\donextlevel\v!project\currentproject
- \donotexecutefile\doexecutefileonce
- \doexecutefileonce\doexecutefile#1\\}
-
-\def\startproduct #1 %
- {\doateverystarttext
- \donextlevel\v!product\currentproduct
- \doexecutefileonce\doexecutefileonce
- \donotexecutefile\doexecutefile#1\\}
-
-\def\startcomponent #1 %
- {\doateverystarttext
- \donextlevel\v!component\currentcomponent
- \doexecutefileonce\doexecutefileonce
- \donotexecutefile\doexecutefile#1\\}
-
-\def\startenvironment #1 %
- {\donextlevel\v!environment\currentenvironment
- \donotexecutefile\doexecutefileonce
- \donotexecutefile\donotexecutefile#1\\}
-
-% \startproject test
-% 1: \startmode[*project] project \stopmode \endgraf
-% 2: \startmode[*product] product \stopmode \endgraf
-% \stopproject
-
-\def\stopproject {\doprevlevel}
-\def\stopproduct {\doprevlevel}
-\def\stopcomponent {\doprevlevel}
-\def\stopenvironment{\doprevlevel}
-
-% more or less replaced by modes
-
-\setvalue{\e!start\v!localenvironment}[#1]%
- {\let\loadedlocalenvironments\empty
- \def\docommand##1%
- {\beforesplitstring##1\at.\to\someevironment
- \fullexpandoneargafter\addtocommalist\someevironment\loadedlocalenvironments}%
- \processcommalist[#1]\docommand
- \fullexpandtwoargsafter\doifcommonelse % no longer next needed
- {\currentproject,\currentproduct,%
- \currentcomponent,\currentenvironment}
- {\loadedlocalenvironments}
- {\letvalue{\e!stop\v!localenvironment}\relax}
- {\grabuntil{\e!stop\v!localenvironment}\gobbleoneargument}} % TH: fixed, was \relax
-
-\setvalue{\v!localenvironment}#1 {\doexecutefileonce{#1}}
-
-% NOT TOEVOEGEN: \the\everytrace
-
-\neverypar=\emptytoks
-
-% \appendtoks \flushnotes \to \everypar
-% \appendtoks \synchronizesidefloats \to \everypar
-% \appendtoks \checkindentation \to \everypar
-% \appendtoks \showparagraphnumber \to \everypar
-% \appendtoks \flushmargincontents \to \everypar
-% \appendtoks \flushcommentanchors \to \everypar
-% \appendtoks \synchronizenotes \to \everypar
-
-% \appendtoks \flushnotes \to \everydisplay
-% \appendtoks \adjustsidefloatdisplaylines \to \everydisplay
-
-% soon, when pdftex 1.22 is out in the field:
-
-\chardef\systemcommandmode\zerocount % 0=unknown 1=disabled 2=enabled
-
-\def\checksystemcommandmode
- {\ifx\pdfshellescape\undefined \else
- \chardef\systemcommandmode \ifcase\pdfshellescape \plusone \else \plustwo \fi
- \fi
- \global\let\checksystemcommandmode\relax}
-
-\def\reportsystemcommandmode
- {\ifcase\systemcommandmode
- \or
- \writestatus\m!systems{system commands are disabled}%
- \or
- \writestatus\m!systems{system commands are enabled}%
- \fi}
-
-% \ifx\etexversion\undefined \else \ifnum\etexversion<202
-% \prependtoks
-% \writestatus\m!systems{eTeX version \number\etexversion\space -> too old (bugs)}%
-% \writeline
-% \to \everyjob
-% \fi \fi
-
-% \ifx\pdftexversion\undefined \else \ifnum\number\pdftexversion<120
-% \prependtoks
-% \writestatus\m!systems{pdfTeX version \number\pdftexversion\space -> please update}%
-% \writeline
-% \to \everyjob
-% \fi \fi
-
-% Default-instellingen (verborgen)
-
-\resetutilities
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-mis.mkii b/Master/texmf-dist/tex/context/base/mkii/core-mis.mkii
deleted file mode 100644
index c44d61cbc3e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/core-mis.mkii
+++ /dev/null
@@ -1,2745 +0,0 @@
-%D \module
-%D [ file=core-mis,
-%D version=1998.01.29,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Miscelaneous,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / Misc Commands}
-
-% todo: kleur in legenda + letter
-
-% %D You would not expect the next macro in \CONTEXT,
-% %D wouldn't you? It's there to warn \LATEX\ users that
-% %D something is wrong.
-% %D
-% %D Obsolete now:
-% %
-% % \def\documentstyle{\showmessage\m!systems3\empty\stoptekst}
-% %
-% % \let\documentclass=\documentstyle
-% %D \macros
-% %D {simplifiedcommands, simplifycommands}
-% %D
-% %D I first needed this simplification in bookmarks. Users can
-% %D add their own if needed.
-
-\unprotect
-
-%D Sometimes (for instance in bookmarks) we need to simplify macro
-%D behaviour, so here is the hook.
-
-\ifx\simplifiedcommands\undefined \newtoks\simplifiedcommands \fi
-
-\def\simplifycommands{\the\simplifiedcommands}
-
-%D A possibly growing list:
-
-%appendtoks \def\executesynonym#1#2#3#4{#3}\to\simplifiedcommands
-%appendtoks \def\executesort#1#2#3{#3}\to\simplifiedcommands
-
-\appendtoks \def\ { }\to\simplifiedcommands
-\appendtoks \def\type#1{\letterbackslash\strippedcsname#1}\to\simplifiedcommands
-\appendtoks \def\tex#1{\letterbackslash#1}\to\simplifiedcommands
-\appendtoks \def\TeX{TeX}\to\simplifiedcommands
-\appendtoks \def\ConTeXt{ConTeXt}\to\simplifiedcommands
-\appendtoks \def\MetaPost{MetaPost}\to\simplifiedcommands
-\appendtoks \def\MetaFont{MetaFont}\to\simplifiedcommands
-\appendtoks \def\MetaFun{MetaFun}\to\simplifiedcommands
-%appendtoks \def||{-}\to\simplifiedcommands
-\appendtoks \def|#1|{\ifx#1\empty\empty-\else#1\fi}\to\simplifiedcommands
-\appendtoks \let\crlf\space\to\simplifiedcommands
-\appendtoks \let\\\space\to\simplifiedcommands
-
-\appendtoks\let\buildtextaccent\secondoftwoarguments\to\simplifiedcommands
-
-% THIS WAS MAIN-002.TEX
-
-%\def\checkinterlineskip
-% {\ifvmode
-% \ifdim\lastskip>\zeropoint
-% \nointerlineskip
-% \else\ifdim\lastkern>\zeropoint
-% \nointerlineskip
-% \fi\fi
-% \fi}
-
-\def\horitems#1#2% #1=breedte #2=commandos
- {\scratchdimen#1%
- \divide\scratchdimen \nofitems
- \!!counta\zerocount
- \def\docommand##1%
- {\advance\!!counta \plusone
- \processaction
- [\@@isalign]
- [ \v!left=>\hbox to \scratchdimen{\strut##1\hss},
- \v!right=>\hbox to \scratchdimen{\hss\strut##1},
- \v!middle=>\hbox to \scratchdimen{\hss\strut##1\hss},
- \v!margin=>\ifnum\!!counta=\plusone\hss\else\hfill\fi
- \strut##1%
- \ifnum\!!counta=\nofitems\hss\else\hfill\fi,
- \s!default=>\hbox to \scratchdimen{\hss\strut##1\hss}, % midden
- \s!unknown=>\hbox to \scratchdimen{\strut##1\hss}]}% % links
- \hbox to #1{\hss#2\hss}}
-
-\def\veritems#1#2% #1=breedte #2=commandos
- {\scratchdimen#1%
- \def\docommand##1%
- {\ifdim\scratchdimen<\zeropoint % the - was a signal
- \hbox to -\scratchdimen{\hss\strut##1}%
- \else\ifdim\scratchdimen>\zeropoint
- \hbox to \scratchdimen{\strut##1\hss}%
- \else
- \hbox{\strut##1}%
- \fi\fi}%
- \vbox{#2}}
-
-\def\dosetupitems[#1]%
- {\getparameters[\??is][#1]%
- \doif\@@iswidth\v!unknown
- {\def\@@iswidth{\hsize}}%
- \doifconversiondefinedelse\@@issymbol
- {\def\doitembullet##1{\convertnumber{\@@issymbol}{##1}}}
- {\doifsymboldefinedelse\@@issymbol
- {\def\doitembullet##1{\symbol[\@@issymbol]}}{}}}
-
-\def\makeitemsandbullets#1%
- {\doifelse\@@isn\v!unknown
- {\getcommalistsize[#1]%
- \edef\nofitems{\commalistsize}}
- {\edef\nofitems{\@@isn}}%
- \setbox0\hbox
- {\doitems \@@iswidth
- {\processcommalist[#1]\docommand}}%
- \setbox2\hbox
- {\doitems \@@isbulletbreedte
- {\dorecurse\nofitems
- {\docommand{\strut\doitembullet\recurselevel}}}}}
-
-\def\dostartitems#1#2#3%
- {\let\doitems#2%
- \def\@@isbulletbreedte{#3}%
- \makeitemsandbullets{#1}%
- \@@isbefore}
-
-\def\dostopitems
- {\@@isafter
- \egroup}
-
-\setvalue{doitems\v!top}#1%
- {\dostartitems{#1}\horitems\@@iswidth
- \noindent\vbox
- {\forgetall
- \doifsomething\@@issymbol
- {\doifnot\@@issymbol\v!none
- {\box2
- \@@isinbetween
- \nointerlineskip}}%
- \box0}%
- \dostopitems}
-
-\setvalue{doitems\v!bottom}#1%
- {\dostartitems{#1}\horitems\@@iswidth
- \noindent\vbox
- {\forgetall
- \box0
- \doifsomething\@@issymbol
- {\@@isinbetween
- \nointerlineskip
- \box2}}%
- \dostopitems}
-
-\setvalue{doitems\v!inmargin}#1%
- {\dostartitems{#1}\veritems{-1.5em}% - is a signal
- \noindent\hbox{\llap{\box2\hskip\leftmargindistance}\box0}%
- \dostopitems}
-
-\setvalue{doitems\v!left}#1%
- {\advance\hsize -1.5em%
- \dostartitems{#1}\veritems{1.5em}%
- \noindent\hbox{\box2\box0}%
- \dostopitems}
-
-\setvalue{doitems\v!right}#1%
- {\dostartitems{#1}\veritems{0em}%
- \noindent\hbox{\box0\hskip-\wd2\box2}%
- \dostopitems}
-
-\def\setupitems
- {\dosingleargument\dosetupitems}
-
-\def\complexitems[#1]%
- {\bgroup
- \setupitems[#1]%
- \parindent\zeropoint
- \setlocalhsize
- \hsize\localhsize
- \dontcomplain
- %\doifundefined{doitems\@@islocation}%
- % {\let\@@islocation\v!left}%
- %\getvalue{doitems\@@islocation}}
- \executeifdefined{doitems\@@islocation}{\let\@@islocation\v!left}}
-
-\definecomplexorsimpleempty\items
-
-\setupitems
- [\c!location=\v!left,
- \c!symbol=5,
- \c!width=\hsize,
- \c!align=\v!middle,
- \c!n=\v!unknown,
- \c!before=\blank,
- \c!inbetween={\blank[\v!medium]},
- \c!after=\blank]
-
-% \definieerplaats[naam][instellingen]
-% \stelplaatsin[naam][instellingen]
-% \plaats<naam>[[instellingen]]
-%
-% - still undocumented and also not in setupb yet
-% - kan ook intern/direct (scheelt duplicatie), zie \framedtext
-
-\def\dodefineplacement[#1][#2]%
- {\getparameters
- [\??pl#1]
- [\c!left=\hss,
- \c!right=\hss,
- \c!linecorrection=\v!off,
- \c!depthcorrection=\v!off,
- \c!margin=\v!standard,
- \c!grid=\v!middle,
- %\c!before=,
- %\c!after=,
- #2]%
- \setvalue{\e!place#1}{\doplacement[\??pl#1]}}
-
-\def\defineplacement
- {\dodoubleempty\dodefineplacement}
-
-\def\setupplacement
- {\dodoubleempty\dosetupplacement}
-
-\def\dosetupplacement[#1]%
- {\dodoubleempty\getparameters[\??pl#1]}
-
-\def\doplacement
- {\dodoubleempty\dodoplacement}
-
-\def\dodoplacement[#1][#2]% correctie moet mooier
- {\bgroup
- \dowithnextboxcontent
- {\forgetall}
- {\setlocalhsize
- \getparameters[#1][#2]%
- \getvalue{#1\c!before}%
- \begingroup
- \disableparpositions
- \setbox\nextbox\hbox to \localhsize
- {\getvalue{#1\c!left}%
- \flushnextbox
- \getvalue{#1\c!right}}%
- \ifinsidefloat \else
- \addlocalbackgroundtobox\nextbox
- \fi
- \ifgridsnapping
- \doifundefined{#1\c!grid}{\letvalue{#1\c!grid}\v!middle}%
- % unchecked
- \doifinset{\getvalue{#1\c!margin}}{\v!standard,\v!yes}\noindent
- \snaptogrid[\getvalue{#1\c!grid}]\hbox{\flushnextbox}%
- \else
- \doifvalue{#1\c!linecorrection}\v!on \startbaselinecorrection
- \doifinset{\getvalue{#1\c!margin}}{\v!standard,\v!yes}\noindent
- \flushnextbox
- \doifvalue{#1\c!depthcorrection}\v!on\baselinecorrection
- \doifvalue{#1\c!linecorrection }\v!on\stopbaselinecorrection
- \fi
- \endgroup
- \getvalue{#1\c!after}%
- \egroup}
- \vbox}
-
-% Te zijner tijd [plaats=boven,onder,midden] implementeren,
-% in dat geval moet eerst de maximale hoogte worden bepaald.
-%
-% Overigens kan een en ander mooier met \halign.
-
-% there is quite some historic balast in this mechanism, the next variant
-% is a first cleanup
-
-\let\currentparagraph\empty
-
-\newcount\alcounter \newcount\alnsize \newdimen\alhsize
-
-\def\paragraphparameter#1% \checkedparameter\??al\currentparagraph#1
- {\executeifdefined{\??al\currentparagraph#1}{\executeifdefined{\??al#1}\empty}}
-
-\def\paragraphcellmeter#1#2% \checkedparameter\??al\currentparagraph#1
- {\executeifdefined{\??al\currentparagraph\number#1#2}{\paragraphparameter{#2}}}
-
-\def\dodefineparagraphs[#1][#2]%
- {\edef\currentparagraph{#1}%
- \setvalue{\s!do\s!next\currentparagraph}%
- {\def\\{\getvalue\currentparagraph}}%
- \setvalue\currentparagraph
- {\getvalue{\s!do\s!next#1}%
- \dostartparagraphs{#1}}%
- \setvalue{\e!next\currentparagraph}%
- {\getvalue{#1}}%
- \setvalue{\e!start\currentparagraph}%
- {\bgroup
- \edef\currentparagraph{#1}%
- \letvalue{\s!do\s!next\currentparagraph}\empty
- \setvalue{\e!stop\currentparagraph}{\getvalue\currentparagraph\egroup}%
- \getvalue\currentparagraph}%
- \getparameters[\??al\currentparagraph]%
- [%\c!n=3,
- %\c!before=\blank,
- %\c!after=\blank,
- %\c!distance=1em,
- %\c!height=\v!fit,
- %\c!rule=\v!off,
- %\c!command=,
- %\c!align=,
- %\c!tolerance=\v!tolerant,
- %\c!rulethickness=\linewidth,
- %\c!rulecolor=,
- %\c!style=,
- %\c!color=,
- %\c!top=,
- %\c!top=\vss,
- %\c!bottom=\vfill,
- #2]%
- \setvalue{\e!setup#1\e!endsetup}%
- {\setupparagraphs[#1]}%
- \dorecurse
- {\paragraphparameter\c!n}
- {\setupparagraphs
- [\currentparagraph]
- [\recurselevel]
- [\c!width=,
- %\c!bottom=\paragraphparameter\c!bottom,
- %\c!top=\paragraphparameter\c!top,
- %\c!height=\paragraphparameter\c!height,
- %\c!rule=\paragraphparameter\c!rule,
- %\c!rulethickness=\paragraphparameter\c!rulethickness,
- %\c!rulecolor=\paragraphparameter\c!rulecolor,
- %\c!align=\paragraphparameter\c!align,
- %\c!tolerance=\paragraphparameter\c!tolerance, % obsolete
- %\c!distance=\paragraphparameter\c!distance,
- \c!style=\paragraphparameter\c!style,
- \c!color=\paragraphparameter\c!color]}%
- \setupparagraphs[\currentparagraph][1][\c!distance=\zeropoint]}
-
-\def\defineparagraphs
- {\dodoubleargument\dodefineparagraphs}
-
-\def\dosetupparagraphs[#1][#2][#3]%
- {\edef\currentparagraph{#1}%
- \ifsecondargument
- \doifelse{#2}\v!each
- {\dorecurse
- {\paragraphparameter\c!n}
- {\getparameters[\??al\currentparagraph\recurselevel][#3]}}
- {\doifelsenothing{#3}
- {\getparameters[\??al\currentparagraph][#2]}
- {\def\docommand##1{\getparameters[\??al\currentparagraph##1][#3]}%
- \processcommalist[#2]\docommand}}%
- \else
- \getparameters[\??al][#1]%
- \fi}
-
-\def\setupparagraphs
- {\dotripleempty\dosetupparagraphs}
-
-\setupparagraphs
- [\c!n=3,
- \c!before=\blank,
- \c!after=\blank,
- \c!distance=1em,
- \c!height=\v!fit,
- \c!rule=\v!off,
- \c!command=,
- \c!align=,
- \c!tolerance=\v!tolerant, % obsolete
- \c!rulethickness=\linewidth,
- \c!rulecolor=,
- \c!style=,
- \c!color=,
- \c!top=,
- \c!top=\vss,
- \c!bottom=\vfill]
-
-\def\doparagraphrule
- {\doifelse{\paragraphcellmeter\alcounter\c!rule}\v!on
- {\linewidth\paragraphcellmeter\alcounter\c!rulethickness
- \scratchdimen\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\paragraphcellmeter\alcounter\c!width}%
- \dostartattributes{\??al\currentparagraph\number\alcounter}\c!style\c!color\empty
- \doifelse{\paragraphcellmeter\alcounter\c!height}\v!fit
- {\setbox\scratchbox\vtop}
- {\setbox\scratchbox\vtop to \paragraphcellmeter\alcounter\c!height}%
- \bgroup
- \blank[\v!disable]%
- \forgetall
- \paragraphcellmeter\alcounter\c!top
- \paragraphparameter\c!inner
- \hsize\!!widtha % setting \wd afterwards removed
- \paragraphcellmeter\alcounter\c!inner % twice
- \expanded{\setupalign [\paragraphcellmeter\alcounter\c!align ]}% {normal,verytolerant,stretch}
- \expanded{\setuptolerance[\paragraphcellmeter\alcounter\c!tolerance]}% obsolete
- \ignorespaces
- \endgraf
- \ignorespaces
- %
- % Nadeel van de onderstaande constructie is dat \everypar
- % binnen een groep kan staan en zo steeds \begstruts
- % worden geplaatst. Mooi is anders dus moet het anders!
- %
- % Hier is \Everypar niet nodig.
- %
- \everypar{\begstrut\everypar\emptytoks}%
- %
- \nospace % remove + ignore
- \paragraphcellmeter\alcounter\c!command}
-
-\def\dostopparagraph
- {\ifvmode
- \removelastskip
- \else
- \unskip\endstrut\endgraf
- \fi
- \paragraphcellmeter\alcounter\c!bottom
- \egroup
- \ifdim\wd\scratchbox=\zeropoint % no data
- \wd\scratchbox\!!widtha
- \fi
- \box\scratchbox
- \dostopattributes
- \ifnum\alcounter<\paragraphparameter\c!n\relax
- \@EA\doparagraphcell
- \else
- \@EA\dostopparagraphs
- \fi}
-
-\def\doparagraphcell
- {\global\advance\alcounter \plusone
- \doifelsenothing{\paragraphcellmeter\alcounter\c!distance}
- {\ifnum\alcounter=\plusone\else
- \hskip\paragraphparameter\c!distance
- \fi}
- {\ifnum\alcounter=\plusone
- \hskip\paragraphcellmeter\alcounter\c!distance
- \else
- \doparagraphrule
- \fi}%
- \letvalue\currentparagraph\dostopparagraph
- \dostartparagraph}
-
-\def\dostartparagraphs#1%
- {\bgroup
- \edef\currentparagraph{#1}%
- \global\alcounter\zerocount
- \parindent\zeropoint
- \setlocalhsize
- \alhsize\localhsize
- \alnsize\paragraphparameter\c!n\relax
- \dorecurse \alnsize
- {\doifelsenothing{\paragraphcellmeter\recurselevel\c!distance}
- {\ifnum\recurselevel=\plusone\else
- \global\advance\alhsize -\paragraphparameter\c!distance
- \fi}
- {\global\advance\alhsize -\paragraphcellmeter\recurselevel\c!distance}%
- \doifsomething{\paragraphcellmeter\recurselevel\c!width}
- {\global\advance\alnsize \minusone
- \global\advance\alhsize -\paragraphcellmeter\recurselevel\c!width}}%
- %whitespace % gaat fout bij \framed
- \paragraphparameter\c!before
- \leavevmode % gaat wel goed bij \framed, brrr
- \setbox\scratchbox\vbox\bgroup\hbox\bgroup\doparagraphcell}
-
-\def\dostopparagraphs
- {\egroup
- \egroup
- \iftrue
- \hbox{\raise\strutheight\box\scratchbox}% new
- \else
- \box\scratchbox % old
- \fi
- \par
- \paragraphparameter\c!after
- \egroup}
-
-\def\dosetuptab[#1]%
- {\getparameters[\??ta]
- [\c!headstyle=\v!normal,
- \c!headcolor=,
- \c!style=\v!normal,
- \c!color=,
- \c!width=\v!broad,
- \c!sample={\hskip4em},
- \c!before=,
- \c!after=,
- #1]%
- \definedescription
- [tab]
- [\c!headstyle=\@@taheadstyle,
- \c!headcolor=\@@tacolor,
- \c!sample=\@@tasample,
- \c!width=\@@tawidth,
- \c!before=\@@tabefore,
- \c!after=\@@taafter]}
-
-\def\setuptab
- {\dosingleargument\dosetuptab}
-
-\setuptab
- [\c!location=\v!left]
-
-% The following macro's are derived from PPCHTEX and
-% therefore take some LaTeX font-switching into account.
-
-\newif\ifloweredsubscripts
-
-% Due to some upward incompatibality of LaTeX to LaTeX2.09
-% and/or LaTeX2e we had to force \@@chemieletter. Otherwise
-% some weird \nullfont error comes up.
-
-\doifundefined{@@chemieletter}{\def\@@chemieletter{\rm}}
-
-\def\beginlatexmathmodehack
- {\ifmmode
- \let\endlatexmathmodehack\relax
- \else
- \def\endlatexmathmodehack{$}$\@@chemieletter
- \fi}
-
-\def\setsubscripts
- {\beginlatexmathmodehack
- \def\dosetsubscript##1##2##3%
- {\dimen0=##3\fontexheight##2%
- \setxvalue{@@\string##1\string##2}{\the##1##2\relax}%
- ##1##2=\dimen0\relax}%
- \def\dodosetsubscript##1##2%
- {\dosetsubscript{##1}{\textfont2}{##2}%
- \dosetsubscript{##1}{\scriptfont2}{##2}%
- \dosetsubscript{##1}{\scriptscriptfont2}{##2}}%
- %dodosetsubscript\mathsupnormal {?}%
- \dodosetsubscript\mathsubnormal {.7}%
- \dodosetsubscript\mathsubcombined{.7}%
- \global\loweredsubscriptstrue
- \endlatexmathmodehack}
-
-\def\resetsubscripts
- {\ifloweredsubscripts
- \beginlatexmathmodehack
- \def\doresetsubscript##1##2%
- {\dimen0=\getvalue{@@\string##1\string##2}\relax
- ##1##2=\dimen0}%
- \def\dodoresetsubscript##1%
- {\doresetsubscript{##1}{\textfont2}%
- \doresetsubscript{##1}{\scriptfont2}%
- \doresetsubscript{##1}{\scriptscriptfont2}}%
- %dodoresetsubscript\mathsupnormal
- \dodoresetsubscript\mathsubnormal
- \dodoresetsubscript\mathsubcombined
- \global\loweredsubscriptsfalse
- \endlatexmathmodehack
- \fi}
-
-\let\beginlatexmathmodehack = \relax
-\let\endlatexmathmodehack = \relax
-
-\def\chem#1#2#3%
- {\bgroup
- \setsubscripts
- \mathematics{\hbox{#1}_{#2}^{#3}}%
- \resetsubscripts
- \egroup}
-
-\unexpanded\def\celsius #1{#1\mathematics{^\circ}C}
-\unexpanded\def\inch {\mathematics{\prime\prime}} % was: \hbox{\rm\char125\relax}
-\unexpanded\def\fraction#1#2{\mathematics{#1\over#2}}
-
-% very dutch
-
-\unexpanded\def\graden {\mathematics{^\circ}}
-
-\def\bedragprefix {\euro\normalfixedspace}
-\def\bedragsuffix {}
-\def\bedragempty {\euro}
-
-\unexpanded\def\bedrag#1%
- {\strut\hbox\bgroup
- \let\normalfixedspace\nonbreakablespace
- \doifelsenothing{#1}
- {\bedragempty}
- {\bedragprefix\digits{#1}\bedragsuffix}%
- \egroup}
-
-% \definieeralineas[test][n=3]
-%
-% \stelalineasin[test][3][breedte=4cm,uitlijnen=links]
-%
-% \startopelkaar
-% \test hans \\ ton \\ \bedrag{1.000,--} \\
-% \test hans \\ ton \\ \bedrag{~.~~1,--} \\
-% \test hans \\ ton \\ \bedrag{~.~~1,~~} \\
-% \test hans \\ ton \\ \bedrag{~.100,--} \\
-% \test hans \\ ton \\ \subtot{1.000,--} \\
-% \test hans \\ ton \\ \bedrag{1.000,--} \\
-% \test hans \\ ton \\ \bedrag{1.000,--} \\
-% \test hans \\ ton \\ \totaal{1.000,--} \\
-% \test hans \\ ton \\ \bedrag{nihil,--} \\
-% \test hans \\ ton \\ \totaal{nihil,--} \\
-% \test hans \\ ton \\ \subtot{nihil,--} \\
-% \stopopelkaar
-
-\def\periodswidth {.5em}
-\def\periodsdefault{3} % was 5, but now it's like \unknown
-
-\unexpanded\def\periods
- {\dosingleempty\doperiods}
-
-\def\doperiods[#1]%
- {\dontleavehmode
- \begingroup
- \scratchdimen\periodswidth
- \hbox to \iffirstargument#1\else\periodsdefault\fi \scratchdimen
- {\leaders\hbox to \scratchdimen{\hss.\hss}\hss}%
- \endgroup}
-
-\unexpanded\def\unknown
- {\periods\relax} % relax prevents lookahead for []
-
-% compatibility macros
-
-\def\doorsnede
- {\hbox{\rlap/$\circ$} }
-
-\unexpanded\def\ongeveer
- {\mathematics\pm}
-
-\chardef\boundarycharactermode\plusone
-
-\def\midboundarycharacter#1#2%
- {\ifcase\boundarycharactermode
- \or
- %\nobreak
- \hskip\hspaceamount\currentlanguage{#2}%
- \languageparameter#1%
- %\nobreak
- \hskip\hspaceamount\currentlanguage{#2}%
- \or
- \languageparameter#1%
- \fi
- \chardef\boundarycharactermode\plusone}
-
-\def\leftboundarycharacter#1#2%
- {\ifcase\boundarycharactermode
- \or
- \languageparameter#1%
- \nobreak
- \hskip\hspaceamount\currentlanguage{#2}%
- \or
- \languageparameter#1%
- \fi
- \chardef\boundarycharactermode\plusone}
-
-\def\rightboundarycharacter#1#2%
- {\ifcase\boundarycharactermode
- \or
- \prewordbreak %\nobreak
- \hskip\hspaceamount\currentlanguage{#2}%
- \languageparameter#1%
- \or
- \languageparameter#1%
- \fi
- \chardef\boundarycharactermode\plusone}
-
-% actually this is pretty old, but temporary moved here
-%
-% obsolete:
-
-\def\setuphyphenmark
- {\dodoubleargument\getparameters[\??kp]}
-
-\def\setuphyphenmark[#1]% sign=normal|wide
- {\dodoubleargument\getparameters[\??kp][#1]%
- \doifinsetelse\@@kpsign {\v!normal}
- {\let\textmodehyphen\normalhyphen \let\textmodehyphendiscretionary\normalhyphendiscretionary}
- {\let\textmodehyphen\composedhyphen\let\textmodehyphendiscretionary\composedhyphendiscretionary}}
-
-\setuphyphenmark[\c!sign=\v!wide]
-% % \setuphyphenmark[\c!sign=\v!normal]
-
-\definesymbol[\c!lefthyphen] [\languageparameter\c!lefthyphen]
-\definesymbol[\c!righthyphen] [\languageparameter\c!righthyphen]
-\definesymbol[\c!hyphen] [\languageparameter\c!hyphen]
-
-\def\normalhyphen
- {\hbox{\directsymbol\empty\c!hyphen}}
-
-\def\composedhyphen
- {\hbox{\directsymbol\empty\c!compoundhyphen}}
-
-\def\normalhyphendiscretionary
- {\discretionary
- {\hbox{\directsymbol\empty\c!lefthyphen}}
- {\hbox{\directsymbol\empty\c!righthyphen}}
- {\hbox{\directsymbol\empty\c!hyphen}}}
-
-\def\composedhyphendiscretionary
- {\discretionary
- {\hbox{\directsymbol\empty\c!leftcompoundhyphen}}
- {\hbox{\directsymbol\empty\c!rightcompoundhyphen}}
- {\hbox{\directsymbol\empty\c!compoundhyphen}}}
-
-\let\textmodehyphen \composedhyphen
-\let\textmodehyphendiscretionary\composedhyphendiscretionary
-
-\definesymbol[\c!leftcompoundhyphen] [\languageparameter\c!leftcompoundhyphen]
-\definesymbol[\c!rightcompoundhyphen] [\languageparameter\c!rightcompoundhyphen]
-\definesymbol[\c!compoundhyphen] [\languageparameter\c!compoundhyphen]
-
-\definehspace [sentence] [\zeropoint]
-\definehspace [intersentence] [.250em]
-
-\definesymbol
- [\c!midsentence]
- [\midboundarycharacter\c!midsentence{sentence}]
-
-\definesymbol
- [\c!leftsentence]
- [\leftboundarycharacter\c!leftsentence{sentence}]
-
-\definesymbol
- [\c!rightsentence]
- [\rightboundarycharacter\c!rightsentence{sentence}]
-
-\definesymbol
- [\c!leftsubsentence]
- [\leftboundarycharacter\c!leftsubsentence{sentence}]
-
-\definesymbol
- [\c!rightsubsentence]
- [\rightboundarycharacter\c!rightsubsentence{sentence}]
-
-\newsignal \subsentencesignal
-\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
- {\beforesubsentence
- \ifdim\lastkern=\subsentencesignal
- \unskip
- \kern\hspaceamount\currentlanguage{intersentence}%
- \fi
- \doglobal\increment\subsentencelevel
- \ifnum\subsentencelevel=\plusone
- \dontleavehmode % was \leaveoutervmode
- \fi
- \symbol[\ifodd\subsentencelevel\c!leftsentence\else\c!leftsubsentence\fi]%
- }% \ignorespaces}
-
-\def\endofsubsentence % relax prevents space gobbling
- {\symbol[\ifodd\subsentencelevel\c!rightsentence\else\c!rightsubsentence\fi]%
- \doglobal\decrement\subsentencelevel
- \unskip
- \kern\subsentencesignal\relax
- \aftersubsentence}
-
-\def\beginofsubsentencespacing % relax prevents space gobbling
- {\kern\subsentencesignal\relax}% \ignorespaces}
-
-\def\endofsubsentencespacing
- {\ifdim\lastkern=\subsentencesignal
- \unskip
- \hskip\hspaceamount\currentlanguage{intersentence}%
- % no good, actually language dependent:
-% \ignorespaces
- \else
- \unskip
- \fi}
-
-%D \startbuffer
-%D test |<|test |<|test|>| test|>| test \par
-%D test|<|test|<|test|>|test|>|test \par
-%D test |<||<|test|>||>| test \par
-%D test \directdiscretionary{<}test\directdiscretionary{>} test \par
-%D \stopbuffer
-%D
-%D \typebuffer
-%D \getbuffer
-
-\def\startsubsentence{\beginofsubsentence \prewordbreak\beginofsubsentencespacing}
-\def\stopsubsentence {\endofsubsentencespacing\prewordbreak\endofsubsentence}
-
-%D \defineXMLenvironment [subsentence]
-%D {|<|}
-%D {|>|}
-%D \defineXMLenvironment [subsentence]
-%D {\directdiscretionary{<}}
-%D {\directdiscretionary{>}}
-%D \defineXMLenvironment [subsentence]
-%D {\startsubsentence}
-%D {\stopsubsentence}
-%D
-%D \startbuffer
-%D test <subsentence>test</subsentence> test
-%D \stopbuffer
-%D
-%D \typebuffer
-%D \processXMLbuffer
-
-\enableactivediscretionaries
-
-\definehspace [quotation] [\zeropoint]
-\definehspace [interquotation] [.125em]
-
-%definehspace [quote] [\zeropoint]
-%definehspace [speech] [\zeropoint]
-
-\definehspace [quote] [\hspaceamount\currentlanguage{quotation}]
-\definehspace [speech] [\hspaceamount\currentlanguage{quotation}]
-
-\definesymbol
- [\c!leftquotation]
- [\leftboundarycharacter\c!leftquotation{quotation}]
-
-\definesymbol
- [\c!rightquotation]
- [\rightboundarycharacter\c!rightquotation{quotation}]
-
-\definesymbol
- [\c!leftquote]
- [\leftboundarycharacter\c!leftquote{quote}]
-
-\definesymbol
- [\c!rightquote]
- [\rightboundarycharacter\c!rightquote{quote}]
-
-\definesymbol
- [\c!leftspeech]
- [\leftboundarycharacter\c!leftspeech{speech}]
-
-\definesymbol
- [\c!rightspeech]
- [\rightboundarycharacter\c!rightspeech{speech}]
-
-\definesymbol
- [\c!middlespeech]
- [\leftboundarycharacter\c!middlespeech{speech}]
-
-\appendtoks\def\quotation#1{"#1"}\to\simplifiedcommands
-\appendtoks\def\quote #1{'#1'}\to\simplifiedcommands
-
-%D The next features was so desperately needed by Giuseppe
-%D Bilotta that he made a module for it. Since this is a
-%D typical example of core functionality, I decided to extend
-%D the low level quotation macros in such a way that a speech
-%D feature could be build on top of it. The speech opening and
-%D closing symbols are defined per language. Italian is an
-%D example of a language that has them set.
-
-% this will replace the quotation and speed definitions
-
-\newsignal\delimitedtextsignal
-
-\let\currentdelimitedtext\s!unknown
-
-\def\delimitedtextparameter#1% will be sped up
- {\executeifdefined{\??ci\currentdelimitedtext:\csname\??ci\currentdelimitedtext\c!level\endcsname#1}%
- {\executeifdefined{\??ci\currentdelimitedtext#1}%
- {\executeifdefined{\??ci#1}\empty}}}
-
-\def\definedelimitedtext
- {\dodoubleempty\dodefinedelimitedtext}
-
-\def\dodefinedelimitedtext[#1][#2]%
- {\doifassignmentelse{#2}
- {\getparameters
- [\??ci#1]
- [\c!location=\v!margin, % \v!text \v!paragraph
- \c!spacebefore=,
- \c!spaceafter=\delimitedtextparameter\c!spacebefore,
- \c!style=\v!normal,
- \c!color=,
- \c!leftmargin=\zeropoint,
- \c!rightmargin=\delimitedtextparameter\c!leftmargin,
- \c!indentnext=\v!yes,
- \c!before=,
- \c!after=,
- \c!left=,
- \c!right=,
- \c!level=0,
- \c!repeat=\v!no,
- \c!method=,
- #2]}%
- {\doifdefined{#2}
- {\copyparameters[\??ci#1][\??ci#2]
- [\c!location,\c!spacebefore,\c!spaceafter,\c!style,\c!color,
- \c!leftmargin,\c!rightmargin,\c!indentnext,
- \c!before,\c!after,\c!left,\c!right]}}%
- \doifsomething{#1}
- {\unexpanded\setvalue{#1}{\delimitedtext[#1]}%
- \setvalue{\e!start#1}{\startdelimitedtext[#1]}%
- \setvalue{\e!stop #1}{\stopdelimitedtext}}}
-
-\def\setupdelimitedtext
- {\dotripleargument\dosetupdelimitedtext}
-
-\def\dosetupdelimitedtext[#1][#2][#3]% #2 = optional level
- {\ifthirdargument
- \getparameters[\??ci#1:#2][#3]%
- \else\ifsecondargument
- \getparameters[\??ci#1][#2]%
- \else
- \getparameters[\??ci][#1]%
- \fi\fi}
-
-\def\dorepeatdelimitedtext
- {\relax\ifcase\delimitedtextparameter\c!level\else
- \dohandledelimitedtext\c!middle % maybe better \dohandleleftdelimitedtext
- \fi}
-
-\let\dohandlerepeatdelimitedtext\relax
-
-\def\startdelimitedtext[#1]%
- {\bgroup
- \pushdelimitedtext{#1}%
- \doifelse{\delimitedtextparameter\c!method}\s!font
- {\def\dostopdelimitedtext
- {\removeunwantedspaces\ignoredelimitedtext\c!right}%
- \ignoredelimitedtext\c!left\ignorespaces}
- {\doifelse{\delimitedtextparameter\c!repeat}\v!yes
- {\let\dohandlerepeatdelimitedtext\dorepeatdelimitedtext}%
- {\let\dohandlerepeatdelimitedtext\relax}%
- \doifinsetelse{\delimitedtextparameter\c!location}{\v!paragraph,\v!margin}%
- {\dosingleempty\dostartdelimitedtextpar}\dostartdelimitedtexttxt}}
-
-\def\dostartdelimitedtextpar[#1]%
- {\let\dostopdelimitedtext\dostopdelimitedtextpar
- \doifsomething{\delimitedtextparameter\c!spacebefore}
- {\blank[\delimitedtextparameter\c!spacebefore]}%
- \delimitedtextparameter\c!before
- % nicer:
- % \doadaptleftskip {\delimitedtextparameter\c!leftmargin}%
- % \doadaptrightskip{\delimitedtextparameter\c!rightmargin}%
- % backward compatible:
- \doifelsenothing{#1}
- {\endgraf
- \doadaptleftskip {\delimitedtextparameter\c!leftmargin}%
- \doadaptrightskip{\delimitedtextparameter\c!rightmargin}%
- \let\dodostopdelimitedtextpar\endgraf}
- {\startnarrower[#1]\let\dodostopdelimitedtextpar\stopnarrower}%
- % so far
- % \dochecknextindentation{\??ci\currentdelimitedtext}% AM: not here
- \dostartattributes{\??ci\currentdelimitedtext}\c!style\c!color\empty
- \leftdelimitedtextmark
- \ignorespaces}
-
-\def\dostopdelimitedtextpar
- {\removeunwantedspaces
- \removelastskip
- \rightdelimitedtextmark
- \dostopattributes
- \dodostopdelimitedtextpar
- \delimitedtextparameter\c!after
- \doifsomething{\delimitedtextparameter\c!spaceafter}
- {\blank[\delimitedtextparameter\c!spaceafter]}%
- \dochecknextindentation{\??ci\currentdelimitedtext}% AM: here
- \dorechecknextindentation}% AM: This was missing!
-
-\def\dostartdelimitedtexttxt
- {\let\dostopdelimitedtext\dostopdelimitedtexttxt
- \dostartattributes{\??ci\currentdelimitedtext}\c!style\c!color\empty
- \dohandleleftdelimitedtext\c!left
- \ignorespaces}
-
-\def\dostopdelimitedtexttxt
- {\removeunwantedspaces
- \dohandlerightdelimitedtext\c!right
- \dostopattributes}
-
-\def\stopdelimitedtext
- {\dostopdelimitedtext
- \popdelimitedtext
- \egroup}
-
-\def\pushdelimitedtext#1%
- {\globalpushmacro\currentdelimitedtext
- \def\currentdelimitedtext{#1}%
- \doglobal\incrementvalue{\??ci\currentdelimitedtext\c!level}}
-
-\def\popdelimitedtext
- {\doglobal\decrementvalue{\??ci\currentdelimitedtext\c!level}%
- \globalpopmacro\currentdelimitedtext}
-
-\def\delimitedtext[#1]%
- {\pushdelimitedtext{#1}%
- \doifelse{\delimitedtextparameter\c!method}\s!font
- {\dofontdrivendelimited}
- {\doifinsetelse{\delimitedtextparameter\c!location}{\v!paragraph,\v!margin}%
- \dodelimitedtextpar\dodelimitedtexttxt}}
-
-% shortcuts
-
-\def\startdelimited{\startdelimitedtext}
-\def\stopdelimited {\stopdelimitedtext} % no let, dynamically assigned
-\def\delimited {\delimitedtext}
-
-\def\leftdelimitedtextmark
- {\doifsomething{\delimitedtextparameter\c!left}
- {\setbox\scratchbox\hbox{\delimitedtextparameter\c!left}%
- \dontleavehmode
- \doif{\delimitedtextparameter\c!location}\v!margin{\hskip-\wd\scratchbox}%
- \box\scratchbox}}
-
-\def\rightdelimitedtextmark
- {\doifsomething{\delimitedtextparameter\c!right}
- {\hsmash{\delimitedtextparameter\c!right}}}
-
-% \starttext
-% \hyphenatedword{groepsvrijstellingsverordeningen}\par
-% \hyphenatedword{\quote{groepsvrijstellingsverordeningen}}\par
-% \dorecurse{100}{\hskip300pt\hskip\recurselevel pt test \quote{xxx xxxx}.\par}
-% \page \setuppapersize[A5][A4]
-% \quotation {overly beautiful pusillanimous sesquipedalian
-% longwinded} test test test test test test test test test test test
-% test test test test test test test test test test test test test
-% test test test test test test test test test test test test test
-% test test test test test test test test test test test test test
-% test test test
-% \stoptext
-
-\def\dohandledelimitedtext#1#2%
- {\begingroup
- \setbox\scratchbox\hbox{\delimitedtextparameter#1}%
- \ifdim\wd\scratchbox>\zeropoint
-% \ifdim\lastskip=\delimitedtextsignal
-% \unskip
- \ifdim\lastkern=\delimitedtextsignal
- \unkern
- \hskip\hspaceamount\currentlanguage{interquotation}%
- \else
- #2%
- \fi
- \ifhmode % else funny pagebeaks
- \penalty\!!tenthousand
- \hskip\zeropoint % == \prewordbreak
- \fi
- \strut % new, needed below
- \delimitedtextparameter#1% unhbox\scratchbox
-% \penalty\!!tenthousand % else overfull boxes, but that's better than dangling periods
- \kern\delimitedtextsignal % +- \prewordbreak
- \fi
- \endgroup}
-
-\def\dohandleleftdelimitedtext#1#2%
- {\begingroup
- \setbox\scratchbox\hbox{\delimitedtextparameter#1}%
- \ifdim\wd\scratchbox>\zeropoint
- \ifdim\lastkern=\delimitedtextsignal
- \unkern
- \hskip\hspaceamount\currentlanguage{interquotation}%
- \else\ifdim\lastskip=\delimitedtextsignal
- \unskip
- \hskip\hspaceamount\currentlanguage{interquotation}%
- \else
- #2%
- \fi\fi
- \strut % new, needed below
- \ifhmode % else funny pagebeaks
- \penalty\!!tenthousand
- \hskip\zeropoint % == \prewordbreak
- \fi
- \strut % new, needed below
- \delimitedtextparameter#1% unhbox\scratchbox
- \hskip\delimitedtextsignal % +- \prewordbreak
- \fi
- \endgroup}
-
-\def\dohandlerightdelimitedtext#1#2%
- {\begingroup
- \setbox\scratchbox\hbox{\delimitedtextparameter#1}%
- \ifdim\wd\scratchbox>\zeropoint
- \ifdim\lastkern=\delimitedtextsignal
- \unkern
- \hskip\hspaceamount\currentlanguage{interquotation}%
- \else\ifdim\lastskip=\delimitedtextsignal
- \unskip
- \hskip\hspaceamount\currentlanguage{interquotation}%
- \else
- #2%
- \fi\fi
- \ifhmode % else funny pagebeaks
- \penalty\!!tenthousand
- \hskip\zeropoint % == \prewordbreak
- \fi
- \strut % new, needed below
- \delimitedtextparameter#1% unhbox\scratchbox
- \kern\delimitedtextsignal % +- \prewordbreak
- \fi
- \endgroup}
-
-\def\ignoredelimitedtext#1%
- {\delimitedtextparameter#1}
-
-\def\handledelimitedtext#1%
- {\dohandledelimitedtext{#1}\relax}
-
-\def\handleleftdelimitedtext#1%
- {\dohandleleftdelimitedtext{#1}\relax}
-
-\def\handlerightdelimitedtext#1%
- {\dohandlerightdelimitedtext{#1}\relax}
-
-\unexpanded\def\dodelimitedtextpar
- {\dohandleleftdelimitedtext\c!left\relax
- \groupedcommand
- \donothing
- {\dohandlerightdelimitedtext\c!right\removelastskip
- \popdelimitedtext}}
-
-\unexpanded\def\dodelimitedtexttxt
- {\doifelse{\delimitedtextparameter\c!style}\v!normal
- \doquoteddelimited\doattributeddelimited}
-
-\def\doquoteddelimited
- {\dohandleleftdelimitedtext\c!left\relax
- \groupedcommand
- \donothing
- {\dohandlerightdelimitedtext\c!right
- \removelastskip
- \popdelimitedtext}}
-
-\def\doattributeddelimited
- {\groupedcommand
- {\dostartattributes{\??ci\currentdelimitedtext}\c!style\c!color}
- {\dostopattributes
- \popdelimitedtext}}
-
-\def\dofontdrivendelimited
- {\simplegroupedcommand
- {\languageparameter{\c!left\currentdelimitedtext}}
- {\languageparameter{\c!right\currentdelimitedtext}%
- \popdelimitedtext}}
-
-% testcase for nesting:
-%
-% \quotation{... \quotation{...} ...}
-% \startquotation ... \startquotation... \quotation{...} \stopquotation\space ...\stopquotation
-% \setupdelimitedtext[quotation][1][left=(,right=)]
-% \setupdelimitedtext[quotation][2][left={[},right={]}]
-% \setupdelimitedtext[quotation][3][left=\{,right=\}]
-% \quotation{... \quotation{...} ...}
-% \startquotation ... \startquotation... \quotation{...} \stopquotation\space ...\stopquotation
-
-\definedelimitedtext
- [\v!quotation]
- [\c!left={\symbol[\c!leftquotation]},
- \c!right={\symbol[\c!rightquotation]},
- \c!leftmargin=\v!standard]
-
-\definedelimitedtext
- [\v!quote][\v!quotation]
-
-\setupdelimitedtext
- [\v!quote]
- [\c!location=\v!text,
- \c!left={\symbol[\c!leftquote]},
- \c!right={\symbol[\c!rightquote]}]
-
-\definedelimitedtext
- [\v!blockquote][\v!quotation]
-
-\setupdelimitedtext
- [\v!blockquote]
- [\c!left=,
- \c!right=]
-
-\definedelimitedtext
- [\v!speech][\v!quotation]
-
-\setupdelimitedtext
- [\v!speech]
- [\c!repeat=\v!yes,
- \c!left={\symbol[\c!leftspeech]},
- \c!middle={\symbol[\c!middlespeech]},
- \c!right={\symbol[\c!rightspeech]}]
-
-% how do we call an tight quote
-%
-% \definedelimitedtext
-% [\v!quotation][\v!quotation]
-%
-% \setupdelimitedtext
-% [\v!quotation]
-% [\c!indentnext=\v!no,
-% \c!spacebefore=\v!nowhite]
-
-\def\setupquotation{\setupdelimitedtext[\v!quotation]}
-\def\setupquote {\setupdelimitedtext[\v!quote]}
-
-% seldom used, move from kernel to run time module
-
-\ifx\tfx\undefined \let\tfx\relax \fi
-
-\def\basegrid
- {\dosingleempty\dobasegrid}
-
-\def\dobasegrid[#1]%
- {\begingroup
- \getparameters[\??rt]
- [\c!x=0,\c!y=0,
- \c!nx=10,\c!ny=10,
- \c!dx=.5,\c!dy=.5,
- \c!xstep=0,\c!ystep=0,
- \c!unit=\s!cm,
- \c!scale=1,
- \c!factor=1,
- \c!offset=\v!yes,
- \c!location=\v!left,
- #1]%
- \startpositioning
- \dimen0=\@@rtdx\@@rtunit\relax
- \dimen0=\@@rtscale\dimen0\relax
- \dimen0=\@@rtfactor\dimen0\relax
- \multiply\dimen0 \@@rtnx\relax
- \dimen2=\@@rtdy\@@rtunit\relax
- \dimen2=\@@rtscale\dimen2\relax
- \dimen2=\@@rtfactor\dimen2\relax
- \multiply\dimen2 \@@rtny\relax
- \def\horline
- {\vbox
- {\hrule
- \!!width \dimen0
- \!!height \linewidth
- \!!depth \!!zeropoint}}%
- \def\verline%
- {\vrule
- \!!width \linewidth
- \!!height \dimen2
- \!!depth \!!zeropoint}%
- \doglobal\newcounter\@@gridc
- \doglobal\newcounter\@@gridd
- \doglobal\newcounter\@@gride
- \def\setlegend##1##2##3%
- {\gdef\@@gridc{0}%
- \dimen0=2em\relax
- \dimen2=##2\@@rtunit\relax
- \dimen2=\@@rtscale\dimen2\relax
- \dimen2=\@@rtfactor\dimen2\relax
- \divide\dimen0 \dimen2\relax
- \xdef\@@gride{\number\dimen0}%
- \ifnum\@@gride>50
- \gdef\@@gride{100}%
- \else\ifnum\@@gride>10
- \gdef\@@gride{50}%
- \else\ifnum\@@gride>5
- \gdef\@@gride{10}%
- \else\ifnum\@@gride>1
- \gdef\@@gride{5}%
- \else
- \gdef\@@gride{1}%
- \fi\fi\fi\fi
- \gdef\@@gridd{0}%
- \def\legend
- {\ifnum\@@gridd=\zerocount
- \vbox
- {\increment(\@@gridc,##1)%
- \hbox to 2em{\hss\@@gridc\hss}}%
- \global\let\@@gridd=\@@gride
- \fi
- \doglobal\decrement\@@gridd
- \doglobal\increment(\@@gridc,##1)}}%
- \def\draw##1##2##3##4##5##6##7##8##9%
- {\setuppositioning
- [\c!state=##8,
- \c!xstep=\v!absolute,
- \c!ystep=\v!absolute,
- \c!unit=\@@rtunit,
- \c!scale=\@@rtscale,
- \c!factor=\@@rtfactor,
- \c!offset=\@@rtoffset,
- \c!xoffset=##6,
- \c!yoffset=##7]%
- \doifelse{##9}\v!middle
- {\scratchdimen##3pt\scratchdimen.5\scratchdimen
- \edef\@@psxx{\withoutpt\the\scratchdimen}%
- \scratchdimen##4pt\scratchdimen.5\scratchdimen
- \edef\@@psyy{\withoutpt\the\scratchdimen}%
- \scratchcounter##2\advance\scratchcounter -1
- \edef\@@pszz{\the\scratchcounter}}
- {\edef\@@psxx{0}\edef\@@psyy{0}\edef\@@pszz{##2}}%
- \position(\@@psxx,\@@psyy){##1}%
- \setuppositioning
- [\c!state=##8,
- \c!xstep=\v!relative,
- \c!ystep=\v!relative,
- \c!scale=\@@rtscale,
- \c!factor=\@@rtfactor,
- \c!offset=\@@rtoffset,
- \c!unit=\@@rtunit]%
- \dorecurse\@@pszz{\position(##3,##4){##5}}}%
- \draw
- \verline\@@rtnx\@@rtdx0\verline\!!zeropoint\!!zeropoint\v!start\empty
- \draw
- \horline\@@rtny0\@@rtdy\horline\!!zeropoint\!!zeropoint\v!start\empty
- \tfx
- \doifnot\@@rtxstep{0}
- {\setlegend\@@rtxstep\@@rtdx\@@rtx
- \draw\legend\@@rtnx\@@rtdx0\legend{-1em}{-1.5em}\v!overlay\@@rtlocation}%
- \doifnot\@@rtystep{0}
- {\setlegend\@@rtystep\@@rtdy\@@rty
- \draw\legend\@@rtny0\@@rtdy\legend{-2em}{-.75ex}\v!overlay\@@rtlocation}%
- \stoppositioning
- \endgroup}
-
-\let\grid\basegrid
-
-% Dit wordt:
-%
-% \doorverwijzen[naam][instellingen] enz.
-%
-% waarbij <naam> bijvoorbeeld publicatie is. Dit levert:
-%
-% \start<naam>
-% \stop<naam>
-%
-% \beginvan<naam>
-% \eindvan<naam>
-%
-% \publicatie
-%
-% \volledigelijstmetpublicaties
-%
-% eigenlijk kan ook door... zo worden uitgebreid!
-
-% old, will become obsolete or module, replace by bib module
-
-% \defineenumeration
-% [@publicatie]
-% [\c!location=\v!left,
-% \c!width=\@@pbwidth,\c!hang=,\c!sample=,
-% \c!before=\@@pbbefore,\c!after=\@@pbafter,\c!inbetween=,
-% \c!headstyle=\@@pbheadstyle,\c!style=,
-% \c!headcolor=\@@pbheadcolor,\c!color=,
-% \c!way=\@@pbway,\c!blockway=\@@pbblockway,
-% \c!text=,\c!left=\@@pbleft,\c!right=\@@pbright]
-
-% \def\dosetuppublications[#1]%
-% {\getparameters[\??pb][#1]}
-%
-% \def\setuppublications%
-% {\dosingleargument\dosetuppublications}
-%
-% \def\apa@publicatie
-% {\doifsomething\@@pb@naam {\@@pb@naam,\space}%
-% \doifsomething\@@pb@titel {{\sl\@@pb@titel}.\space}%
-% \doifsomething\@@pb@jaar {(\@@pb@jaar).\space}%
-% \doifsomething\@@pb@plaats {\@@pb@plaats\doifelsenothing\@@pb@uitgever{.}{:\space}}%
-% \doifsomething\@@pb@uitgever{\@@pb@uitgever.}}
-%
-% \def\normaal@publicatie
-% {\@@pb@naam, \@@pb@titel, \@@pb@jaar, \@@pb@pagina, \@@pb@plaats, \@@pb@uitgever.}
-%
-% \def\complexstartpublicatie[#1]#2\stoppublicatie
-% {\bgroup
-% \def\dosetpublicatie
-% {\processcommalist
-% [naam,titel,jaar,plaats,pagina,uitgever]
-% \setpublicatie
-% \ignorespaces}%
-% \def\setpublicatie##1%
-% {\letvalue{\??pb @##1}\empty
-% \setvalue{##1}####1{\setvalue{\??pb @##1}{####1}\ignorespaces}}%
-% \def\getpublicatie%
-% {\doifsomething\@@pbalternative{\getvalue{\@@pbalternative @publicatie}}}%
-% \doifelse\@@pbnumbering\v!yes
-% {\@publicatie[#1]\dosetpublicatie#2\getpublicatie\par}%
-% {\@@pbbefore
-% \dosetpublicatie\ignorespaces#2\getpublicatie
-% \@@pbafter}%
-% \egroup}
-%
-% \definecomplexorsimpleempty\startpublicatie
-%
-% \def\publication#1[#2]%
-% {\@@pbleft\in{#1}[#2]\@@pbright}
-%
-% \setuppublications
-% [\c!numbering=\v!yes,
-% \c!alternative=\c!apa,
-% \c!width=2em,
-% \c!hang=,
-% \c!sample=,
-% \c!before=,
-% \c!after=,
-% \c!inbetween=,
-% \c!headstyle=,
-% \c!headcolor=,
-% \c!style=,
-% \c!color=,
-% \c!blockway=\v!by\v!text,
-% \c!way=\v!by\v!text,
-% \c!text=,
-% \c!left={[},
-% \c!right={]}]
-
-% only used at pragma, move from kernel to run time module
-
-\def\referraldate
- {\currentdate[\v!referral]}
-
-\def\doreferral[#1]%
- {\noheaderandfooterlines
- \bgroup
- \getparameters
- [\??km]
- [\c!bet=\unknown,\c!dat=\unknown,\c!ken=\unknown,
- \c!from=,\c!to=,\c!ref=,#1]%
- % moet anders, hoort niet in 01b
- \assigntranslation[\s!nl=referentie,\s!en=reference,\s!de=Referenz,\s!hr=referenca,\s!sp=referencia]\to\@@@kmref
- \assigntranslation[\s!nl=van,\s!en=from,\s!de=Von,\s!hr=od,\s!sp=de]\to\@@@kmvan
- \assigntranslation[\s!nl=aan,\s!en=to,\s!de=An,\s!hr=za,\s!sp=a]\to\@@@kmaan
- \assigntranslation[\s!nl=betreft,\s!en=concerns,\s!de=Betreff,\s!hr=predmet,\s!sp=]\to\@@@kmbet
- \assigntranslation[\s!nl=datum,\s!en=date,\s!de=Datum,\s!hr=datum,\s!sp=fecha]\to\@@@kmdat
- \assigntranslation[\s!nl=kenmerk,\s!en=mark,\s!de=Kennzeichen,\s!hr=oznaka,\s!sp=]\to\@@@kmken
- %
- \definetabulate[\s!dummy][|l|p|]
- \startdummy
- \NC\@@@kmbet\EQ\@@kmbet\NC\NR
- \NC\@@@kmdat\EQ\@@kmdat\NC\NR
- \NC\@@@kmken\EQ\expanded{\smallcapped{\@@kmken}}\NC\NR
- \doifsomething{\@@kmfrom\@@kmto}{\NC\NC\NC\NR}%
- \doifsomething \@@kmfrom {\NC\@@@kmvan\EQ\@@kmfrom\NC\NR}%
- \doifsomething \@@kmto {\NC\@@@kmaan\EQ\@@kmto\NC\NR}%
- \doifsomething \@@kmref {\NC\NC\NC\NR\NC\@@@kmref\EQ\@@kmref\NC\NR}%
- \stopdummy
- \egroup}
-
-\def\referral
- {\dosingleargument\doreferral}
-
-% FUZZY OLD STUFF: will be removed when not used in some manual;
-% rows instead of columns, i'd forgotten that this code exist
-%
-% \definesystemvariable{ri}
-%
-% \def\setuprows
-% {\dodoubleargument\getparameters[\??ri]}
-%
-% \definecomplexorsimpleempty\startrows
-%
-% \def\complexstartrows[#1]%
-% {\bgroup
-% \setuprows[#1]%
-% \let\do@@ribottom\relax
-% \def\row
-% {\do@@ribottom
-% \egroup
-% \dimen0\vsize
-% \divide\dimen0 \@@rin
-% \advance\dimen0 -\lineskip
-% \vbox to \dimen0
-% \bgroup
-% \@@ritop
-% \let\do@@ribottom\@@ribottom
-% \ignorespaces}%
-% \bgroup
-% \row}
-%
-% \def\stoprows
-% {\do@@ribottom
-% \egroup
-% \egroup}
-%
-% \setuprows
-% [\c!n=2,
-% \c!top=,
-% \c!bottom=\vfill]
-
-% THIS WAS MAIN-003.TEX
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-\definetabulate
- [\v!legend]
- [|emj1|i1|mR|]
-
-\setuptabulate
- [\v!legend]
- [\c!unit=.75em,\c!inner=\setquicktabulate\leg,EQ={=}]
-
-\definetabulate
- [\v!legend][\v!two]
- [|emj1|emk1|i1|mR|]
-
-\definetabulate
- [\v!fact]
- [|R|ecmj1|i1mR|]
-
-\setuptabulate
- [\v!fact]
- [\c!unit=.75em,\c!inner=\setquicktabulate\fact,EQ={=}]
-
-\unexpanded\def\xbox
- {\bgroup\aftergroup\egroup\hbox\bgroup\tx\let\next=}
-
-\unexpanded\def\xxbox
- {\bgroup\aftergroup\egroup\hbox\bgroup\txx\let\next=}
-
-% \def\mrm#1%
-% {$\rm#1$}
-
-%D \macros
-%D {definepairedbox, setuppairedbox, placepairedbox}
-%D
-%D Paired boxes, formally called legends, but from now on a
-%D legend is just an instance, are primarily meant for
-%D typesetting some text alongside an illustration. Although
-%D there is quite some variation possible, the functionality is
-%D kept simple, if only because in most cases such pairs are
-%D typeset sober.
-%D
-%D The location specification accepts a pair, where the first
-%D keyword specifies the arrangement, and the second one the
-%D alignment. The first key of the location pair is one of
-%D \type {left}, \type {right}, \type {top} or \type {bottom},
-%D while the second key can also be \type {middle}.
-%D
-%D The first box is just collected in an horizontal box, but
-%D the second one is a vertical box that gets passed the
-%D bodyfont and alignment settings.
-
-%D Today we would implement this using layers .... but for the
-%D moment we keep it this way.
-
-% \startbuffer[test]
-% \test left \test left,top \test left,bottom \test left,middle
-% \test right \test right,top \test right,bottom \test right,middle
-% \test top \test top,left \test top,right \test top,middle
-% \test bottom \test bottom,left \test bottom,right \test bottom,middle
-% \stopbuffer
-%
-% \def\showtest#1%
-% {\pagina
-% \typebuffer[demo]
-% \def\test##1
-% {\startlinecorrection[blank]
-% \getbuffer[demo]%
-% \ruledhbox\placelegend
-% [bodyfont=6pt,location={##1}]
-% {\framed[width=.25\textwidth]{\tttf##1}}
-% {#1}
-% \stoplinecorrection}
-% \getbuffer[test]}
-%
-% \startbuffer[demo]
-% \setuplegend
-% [width=\hsize,maxwidth=\makeupwidth,
-% height=\vsize,maxheight=\makeupheight]
-% \stopbuffer
-%
-% \showtest{These examples demonstrate the default settings.}
-%
-% \startbuffer[demo]
-% \setuplegend
-% [width=\textwidth,
-% maxwidth=\textwidth]
-% \stopbuffer
-%
-% \showtest{\input tufte }
-%
-% \startbuffer[demo]
-% \setuplegend
-% [width=.65\textwidth]
-% \stopbuffer
-%
-% \showtest{\input knuth }
-%
-% \startbuffer[demo]
-% \setuplegend
-% [height=2cm]
-% \stopbuffer
-%
-% \showtest{These examples demonstrate some other settings.}
-%
-% \startbuffer[demo]
-% \setuplegend
-% [width=.65\textwidth,
-% height=2cm]
-% \stopbuffer
-%
-% \showtest{These examples demonstrate some other settings.}
-%
-% \startbuffer[demo]
-% \setuplegend
-% [n=2,align=right,width=.5\textwidth]
-% \stopbuffer
-%
-% \showtest{\input zapf }
-
-%D \macros
-%D {setuplegend, placelegend}
-%D
-%D It makes sense to typeset a legend to a figure in \TEX\
-%D and not in a drawing package. The macro \type {\placelegend}
-%D combines a figure (or something else) and its legend. This
-%D command is just a paired box.
-%D
-%D The legend is placed according to \type {location}, being
-%D \type {bottom} or \type {right}. The macro macro is used as
-%D follows.
-%D
-%D \starttyping
-%D \placefigure
-%D {whow}
-%D {\placelegend
-%D {\externalfigure[cow]}
-%D {\starttabulation
-%D \NC 1 \NC head \NC \NR
-%D \NC 2 \NC legs \NC \NR
-%D \NC 3 \NC tail \NC \NR
-%D \stoptabulation}}
-%D
-%D \placefigure
-%D {whow}
-%D {\placelegend
-%D {\externalfigure[cow]}
-%D {\starttabulation[|l|l|l|l|]
-%D \NC 1 \NC head \NC 3 \NC tail \NC \NR
-%D \NC 2 \NC legs \NC \NC \NC \NR
-%D \stoptabulation}}
-%D
-%D \placefigure
-%D {whow}
-%D {\placelegend[n=2]
-%D {\externalfigure[cow]}
-%D {\starttabulation
-%D \NC 1 \NC head \NC \NR
-%D \NC 2 \NC legs \NC \NR
-%D \NC 3 \NC tail \NC \NR
-%D \stoptabulation}}
-%D
-%D \placefigure
-%D {whow}
-%D {\placelegend[n=2]
-%D {\externalfigure[cow]}
-%D {head \par legs \par tail}}
-%D
-%D \placefigure
-%D {whow}
-%D {\placelegend[n=2]
-%D {\externalfigure[cow]}
-%D {\startitemize[packed]
-%D \item head \item legs \item tail \item belly \item horns
-%D \stopitemize}}
-%D
-%D \placefigure
-%D {whow}
-%D {\placelegend[n=2,width=.8\hsize]
-%D {\externalfigure[cow]}
-%D {\startitemize[packed]
-%D \item head \item legs \item tail \item belly \item horns
-%D \stopitemize}}
-%D \stoptyping
-
-\newbox\firstpairedbox
-\newbox\secondpairedbox
-
-\def\definepairedbox
- {\dodoubleempty\dodefinepairedbox}
-
-\def\dodefinepairedbox[#1][#2]%
- {\getparameters
- [\??ld#1]
- [\c!n=1,
- \c!distance=\bodyfontsize,
- \c!before=,
- \c!after=,
- \c!color=,
- \c!style=,
- \c!inbetween={\blank[\v!medium]},
- \c!width=\hsize,
- \c!height=\vsize,
- \c!maxwidth=\textwidth, % \makeupwidth,
- \c!maxheight=\textheight, % \makeupheight,
- \c!bodyfont=,
- \c!align=,
- \c!location=\v!bottom,
- #2]%
- \setvalue{\e!setup#1\e!endsetup}{\setuppairedbox[#1]}%
- \setvalue{\e!place#1}{\placepairedbox[#1]}}
-
-\def\setuppairedbox
- {\dodoubleempty\dosetuppairedbox}
-
-\def\dosetuppairedbox[#1]%
- {\getparameters[\??ld#1]}
-
-\def\placepairedbox
- {\bgroup\dodoubleempty\doplacepairedbox}
-
-\def\doplacepairedbox[#1][#2]% watch the hsize/vsize tricks
- {\setuppairedbox[#1][#2]% % and don't change them
- \copyparameters % brrr
- [\??ld][\??ld#1]
- [\c!n,\c!distance,\c!inbetween,\c!before,\c!after,
- \c!width,\c!height,\c!maxwidth,\c!maxheight,
- \c!color,\c!style,\c!bodyfont,\c!align,\c!location]%
- \@@ldbefore\bgroup
- \global\setsystemmode{pairedbox}%
- \beforefirstpairedbox
- \dowithnextbox
- {\betweenbothpairedboxes
- \dowithnextbox
- {\afterbothpairedboxes
- \egroup\@@ldafter
- \egroup}
- \vbox\bgroup
- \insidesecondpairedbox
- \let\next=}
- \hbox}
-
-\def\beforefirstpairedbox
- {\chardef\pairedlocationa1 % left
- \chardef\pairedlocationb4 % middle
- \getfromcommacommand[\@@ldlocation][1]%
- \processaction
- [\commalistelement]
- [ \v!left=>\chardef\pairedlocationa0,
- \v!right=>\chardef\pairedlocationa1,
- \v!top=>\chardef\pairedlocationa2,
- \v!bottom=>\chardef\pairedlocationa3]%
- \getfromcommacommand[\@@ldlocation][2]%
- \processaction
- [\commalistelement]
- [ \v!left=>\chardef\pairedlocationb0,
- \v!right=>\chardef\pairedlocationb1,
- \v!high=>\chardef\pairedlocationb2,
- \v!top=>\chardef\pairedlocationb2,
- \v!low=>\chardef\pairedlocationb3,
- \v!bottom=>\chardef\pairedlocationb3,
- \v!middle=>\chardef\pairedlocationb4]}
-
-\def\betweenbothpairedboxes
- {\switchtobodyfont[\@@ldbodyfont]% split under same regime
- \setbox\firstpairedbox\flushnextbox
- \ifnum\pairedlocationa<2
- \hsize\wd\firstpairedbox % trick
- \hsize\@@ldwidth
- \scratchdimen\wd\firstpairedbox
- \advance\scratchdimen \@@lddistance
- \bgroup\advance\scratchdimen \hsize
- \ifdim\scratchdimen>\@@ldmaxwidth\relax
- \egroup
- \hsize\@@ldmaxwidth
- \advance\hsize -\scratchdimen
- \else
- \egroup
- \fi
- \else
- \hsize\wd\firstpairedbox
- \hsize\@@ldwidth % can be \hsize
- \ifdim\hsize>\@@ldmaxwidth\relax \hsize\@@ldmaxwidth \fi % can be \hsize
- \fi
- \ifnum\@@ldn>\plusone
- \setrigidcolumnhsize\hsize\@@lddistance\@@ldn
- \fi}
-
-\def\afterbothpairedboxes
- {\setbox\secondpairedbox\vbox
- {% \localstartcolor[\@@ldcolor]% does not work yet
- \ifnum\@@ldn>1
- \rigidcolumnbalance\nextbox
- \else
- \flushnextbox
- \fi
- }% \localstopcolor}%
- \ifnum\pairedlocationa<2\hbox\else\vbox\fi\bgroup % hide vsize
- \forgetall
- \ifnum\pairedlocationa<2
- \scratchdimen\maxoftwoboxdimens\ht\firstpairedbox\secondpairedbox
- \vsize\scratchdimen
- \ifdim\scratchdimen<\@@ldheight\relax % can be \vsize
- \scratchdimen\@@ldheight
- \fi
- \ifdim\scratchdimen>\@@ldmaxheight\relax
- \scratchdimen\@@ldmaxheight
- \fi
- \valignpairedbox\firstpairedbox \scratchdimen
- \valignpairedbox\secondpairedbox\scratchdimen
- \else
- \scratchdimen\maxoftwoboxdimens\wd\firstpairedbox\secondpairedbox
- \halignpairedbox\firstpairedbox \scratchdimen
- \halignpairedbox\secondpairedbox\scratchdimen
- \scratchdimen\ht\secondpairedbox
- \vsize\scratchdimen
- \ifdim\ht\secondpairedbox<\@@ldheight\relax % can be \vsize
- \scratchdimen\@@ldheight\relax % \relax needed
- \fi
- \ifdim\scratchdimen>\@@ldmaxheight\relax % todo: totale hoogte
- \scratchdimen\@@ldmaxheight\relax % \relax needed
- \fi
- \ifdim\scratchdimen>\ht\secondpairedbox
- \setbox\secondpairedbox\vbox to \scratchdimen
- {\ifnum\pairedlocationa=3 \vss\fi %
- \box\secondpairedbox
- \ifnum\pairedlocationa=2 \vss\fi}% \kern\zeropoint
- \fi
- \fi
- \ifcase\pairedlocationa
- \box\secondpairedbox\hskip\@@lddistance\box\firstpairedbox \or
- \box\firstpairedbox \hskip\@@lddistance\box\secondpairedbox\or
- \box\secondpairedbox\endgraf \nointerlineskip \@@ldinbetween \box\firstpairedbox \or
- \box\firstpairedbox \endgraf \nointerlineskip \@@ldinbetween \box\secondpairedbox\else
- \fi
- \egroup}
-
-\def\insidesecondpairedbox
- {\forgetall
- \setupalign[\@@ldalign]%
- \tolerantTABLEbreaktrue % hm.
- \blank[\v!disable]%
- \everypar{\begstrut}}
-
-\def\maxoftwoboxdimens#1#2#3%
- {#1\ifdim#1#2>#1#3 #2\else#3\fi}
-
-\def\valignpairedbox#1#2%
- {\setbox#1\vbox to #2
- {\ifcase\pairedlocationb\or\or\or\vss\or\vss\fi
- \box#1\relax
- \ifcase\pairedlocationb\or\or\vss\or\or\vss\fi}}
-
-\def\halignpairedbox#1#2%
- {\setbox#1\hbox to #2
- {\ifcase\pairedlocationb\or\hss\or\or\or\hss\fi
- \box#1\relax
- \ifcase\pairedlocationb\hss\or\or\or\or\hss\fi}}
-
-\definepairedbox[\v!legend]
-
-%D Goody:
-
-\appendtoks
- \global\resetsystemmode{combination}%
- \global\resetsystemmode{pairedbox}%
-\to \everyinsidefloat
-
-% todo: \startcombination \startcomb \stopcomb ...
-
-\newcount\horcombination % counter
-\newcount\totcombination
-
-\def\definecombination
- {\dodoubleempty\dodefinecombination}
-
-\def\dodefinecombination[#1][#2]%
- {\copyparameters
- [\??co#1][\??co]
- [\c!width,\c!height,\c!distance,\c!location,%
- \c!before,\c!inbetween,\c!after,\c!align,%
- \c!style,\c!color]%
- \getparameters
- [\??co#1][#2]}
-
-\def\setupcombinations
- {\dodoubleempty\dosetupcombinations}
-
-\def\dosetupcombinations[#1][#2]%
- {\ifsecondargument
- \getparameters[\??co#1][#2]%
- \else
- \getparameters[\??co][#1]%
- \fi}
-
-\def\combinationparameter#1%
- {\csname\??co\currentcombination#1\endcsname}%
-
-\def\startcombination
- {\bgroup % so we can grab a group
- \dodoubleempty\dostartcombination}
-
-% \startcombination {alpha} {a} {beta} {b} \stopcombination
-% \startcombination[2*1] {alpha} {a} {beta} {b} \stopcombination
-% \startcombination[1*2] {alpha} {a} {beta} {b} \stopcombination
-% \startcombination[2] {alpha} {a} {beta} {b} \stopcombination
-
-\def\dostartcombination[#1][#2]%
- {\global\setsystemmode{combination}%
- \doifnothing{#1}\firstargumentfalse % to be sure (when called in macros)
- \doifnothing{#2}\secondargumentfalse % to be sure (when called in macros)
- \ifsecondargument
- \def\currentcombination{#1}%
- \edef\currentcombinationspec{#2*1*}%
- \else % better : \doifcombinationelse ... \??co#1\c!location
- \doifinstringelse{*}{#1}
- {\let\currentcombination\empty
- \edef\currentcombinationspec{#1*1*}}
- {\doifnumberelse{#1}
- {\let\currentcombination\empty
- \edef\currentcombinationspec{#1*1*}}
- {\def\currentcombination{#1}%
- \edef\currentcombinationspec{2*1*}}}%
- \fi
- \forgetall
- \doifelse{\combinationparameter\c!height}\v!fit
- \vbox {\vbox to \combinationparameter\c!height}%
- \bgroup
- \expanded{\dodostartcombination[\currentcombinationspec]}}
-
-\long\def\dodostartcombination[#1*#2*#3]%
- {\setuphorizontaldivision
- [\c!n=\v!fit,\c!distance=\combinationparameter\c!distance]%
- \global\horcombination#1%
- \global\totcombination#2%
- \global\setbox\combinationstack\emptybox
- \xdef\maxhorcombination{\the\horcombination}%
- \multiply\totcombination\horcombination
- \tabskip\zeropoint
- \doifelse{\combinationparameter\c!width}\v!fit
- {\halign}{\halign to \combinationparameter\c!width}%
- \bgroup&%
- %\hfil##\hfil% now : location={left,top}
- \expanded{\doifnotinset{\v!left}{\combinationparameter\c!location}}\hfil
- ##%
- \expanded{\doifnotinset{\v!right}{\combinationparameter\c!location}}\hfil
- &\tabskip\zeropoint \!!plus 1fill##\cr
- \docombination}
-
-\def\docombination % we want to add struts but still ignore an empty box
- {\dowithnextbox
- {\setbox0\flushnextbox
- \dowithnextbox
- {\setbox2\flushnextbox
- \dodocombination}%
- \vtop\bgroup
- \def\next
- {\futurelet\nexttoken\nextnext}%
- \def\nextnext
- {\ifx\nexttoken\egroup \else % the next box is empty
- \hsize\wd0
- \setupalign[\combinationparameter\c!align]%
- \dostartattributes{\??co\currentcombination}\c!style\c!color\empty
- \bgroup
- \aftergroup\endstrut
- \aftergroup\dostopattributes
- \aftergroup\egroup
- \begstrut
- \fi}%
- \afterassignment\next\let\nexttoken=}
- \hbox}
-
-% stupid version, does not align top stuff when captions,
-% keep as example
-%
-% \def\dodocombination
-% {\vbox
-% {\forgetall % \setupwhitespace[\v!none]%
-% \let\next\vbox
-% \ExpandFirstAfter\processallactionsinset
-% [\combinationparameter\c!location]
-% [ \v!top=>\let\next\tbox,
-% \v!middle=>\let\next\halfwaybox]%
-% \next{\copy0}%
-% \ifdim\ht2>\zeropoint % beter dan \wd2, nu \strut mogelijk
-% \combinationparameter\c!inbetween
-% %\vtop % wrong code
-% % {\nointerlineskip % recently added
-% % \hsize\wd0
-% % \setupalign[\combinationparameter\c!align]% % \raggedcenter
-% % \begstrut\unhbox2\endstrut}%
-% \box2
-% \fi}%
-% \ifnum\totcombination>\plusone
-% \global\advance\totcombination\minusone
-% \global\advance\horcombination\minusone
-% \ifnum\horcombination=\zerocount
-% \def\next
-% {\cr\noalign
-% {\forgetall % \setupwhitespace[\v!geen]% no
-% \nointerlineskip
-% \combinationparameter\c!before
-% \combinationparameter\c!after
-% \vss
-% \nointerlineskip}%
-% \global\horcombination\maxhorcombination\relax
-% \docombination}%
-% \else
-% \def\next
-% {&&&\hskip\combinationparameter\c!distance&\docombination}%
-% \fi
-% \else
-% \def\next
-% {\cr\egroup}%
-% \fi
-% \next}
-
-% \def\dodocombination
-% {\vbox
-% {\forgetall % \setupwhitespace[\v!none]%
-% \let\next\vbox
-% \ExpandFirstAfter\processallactionsinset
-% [\combinationparameter\c!plaats]
-% [ \v!top=>\let\next\tbox,
-% \v!middle=>\let\next\halfwaybox]%
-% \next{\copy0}%
-% % we need to save the caption for a next alignment line
-% \saveoncombinationstack2}%
-% \ifnum\totcombination>\plusone
-% \global\advance\totcombination\minusone
-% \global\advance\horcombination\minusone
-% \ifnum\horcombination=\zerocount
-% \def\next
-% {\cr
-% \flushcombinationstack
-% \noalign
-% {\forgetall % \setupwhitespace[\v!none]% no
-% \global\setbox\combinationstack\emptybox
-% \nointerlineskip
-% \combinationparameter\c!after
-% \combinationparameter\c!before
-% \vss
-% \nointerlineskip}%
-% \global\horcombination\maxhorcombination\relax
-% \docombination}%
-% \else
-% \def\next
-% {&&&\hskip\combinationparameter\c!distance&\docombination}%
-% \fi
-% \else
-% \def\next
-% {\cr
-% \flushcombinationstack
-% \egroup}%
-% \fi
-% \next}
-
-\def\depthonlybox
- {\dowithnextbox{\vtop{\hsize\wd\nextbox\kern\zeropoint\box\nextbox}}\vbox}
-
-% \def\boxwithstrutheight
-% {\dowithnextbox
-% {\scratchdimen\strutheight
-% \advance\scratchdimen-\nextboxht
-% \hbox{\raise\scratchdimen\box\nextbox}}%
-% \vbox}
-
-\def\dodocombination
- {\vbox
- {\forgetall % \setupwhitespace[\v!none]%
- \let\next\vbox
- \expanded{\processallactionsinset[\combinationparameter\c!location]}
- [ \v!top=>\let\next\depthonlybox, % \tbox,
- \v!middle=>\let\next\halfwaybox]%
- \next{\copy0}%
- % we need to save the caption for a next alignment line
- \saveoncombinationstack2}%
- \ifnum\totcombination>\plusone
- \global\advance\totcombination\minusone
- \global\advance\horcombination\minusone
- \ifnum\horcombination=\zerocount
- \def\next
- {\cr
- \flushcombinationstack
- \noalign
- {\forgetall % \setupwhitespace[\v!none]% no
- \global\setbox\combinationstack\emptybox
- \nointerlineskip
- \combinationparameter\c!after
- \combinationparameter\c!before
- \vss
- \nointerlineskip}%
- \global\horcombination\maxhorcombination\relax
- \docombination}%
- \else
- \def\next
- {&&&\hskip\combinationparameter\c!distance&\docombination}%
- \fi
- \else
- \def\next
- {\cr
- \flushcombinationstack
- \egroup}%
- \fi
- \next}
-
-% formally ok:
-%
-% \def\stopcombination
-% {\egroup
-% \egroup}
-%
-% more robust:
-%
-% \def\stopcombination
-% {{}{}{}{}{}{}{}{}% catches (at most 4) missing entries
-% \egroup
-% \egroup}
-%
-% even better:
-
-\def\stopcombination
- {{\scratchtoks{{}{}{}}\dorecurse\totcombination{\appendtoks{}{}{}{}\to\scratchtoks}\expandafter}\the\scratchtoks
- \egroup
- \egroup}
-
-\newbox\combinationstack
-
-\def\saveoncombinationstack#1%
- {\global\setbox\combinationstack\hbox
- {\hbox{\box#1}\unhbox\combinationstack}}
-
-\def\flushcombinationstack
- {\noalign
- {\ifdim\ht\combinationstack>\zeropoint
-\nointerlineskip % nieuw
- \combinationparameter\c!inbetween
- \global\horcombination\maxhorcombination
- \globallet\doflushcombinationstack\dodoflushcombinationstack
- \else
- \global\setbox\combinationstack\emptybox
- \globallet\doflushcombinationstack\donothing
- \fi}%
- \doflushcombinationstack\crcr}
-
-\gdef\dodoflushcombinationstack
- {\global\setbox\combinationstack\hbox
- {\unhbox\combinationstack
- \global\setbox1\lastbox}%
- \box1% \ruledhbox{\box1}%
- \global\advance\horcombination\minusone\relax
- \ifnum\horcombination>\zerocount
- \def\next{&&&&\doflushcombinationstack}%
- \else
- \global\setbox\combinationstack\emptybox
- %\let\next\relax
- \@EA\gobbleoneargument
- \fi
- \next}
-
-\setupcombinations
- [\c!width=\v!fit,
- \c!height=\v!fit,
- \c!distance=1em,
- \c!location=\v!bottom, % can be something {top,left}
- \c!before=\blank,
- \c!inbetween={\blank[\v!medium]},
- \c!style=,
- \c!color=,
- \c!after=,
- \c!align=\v!middle]
-
-%D \macros
-%D {startfloatcombination}
-%D
-%D \setupexternalfigures[directory={../sample}]
-%D \startbuffer
-%D \placefigure
-%D [left,none]
-%D {}
-%D {\startfloatcombination[2*2]
-%D \placefigure{alpha}{\externalfigure[cow.pdf][width=1cm]}
-%D \placefigure{beta} {\externalfigure[cow.pdf][width=2cm]}
-%D \placefigure{gamma}{\externalfigure[cow.pdf][width=3cm]}
-%D \placefigure{delta}{\externalfigure[cow.pdf][width=4cm]}
-%D \stopfloatcombination}
-%D
-%D \input tufte
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-\def\startfloatcombination
- {\dodoubleempty\dostartfloatcombination}
-
-\def\dostartfloatcombination[#1][#2]%
- {\vbox\bgroup
- %\insidecolumnstrue % trick, forces no centering, todo: proper switch/feature
- \chardef\postcenterfloatmethod\zerocount
- \forcelocalfloats
- \def\stopfloatcombination
- {\scratchtoks\emptytoks
- \dorecurse\noflocalfloats
- {\appendetoks{\noexpand\getlocalfloat{\recurselevel}}{}\to\scratchtoks}%
- \expanded{\startcombination[#1]\the\scratchtoks}\stopcombination
- \resetlocalfloats
- \egroup}}
-
-\def\placerelativetoeachother#1#2%
- {\bgroup
- \dowithnextbox
- {\bgroup
- \setbox0\box\nextbox
- \dowithnextbox
- {\setbox2\box\nextbox
- #1{#2#########2\cr\box0\cr\box2\cr}
- \egroup
- \egroup}
- \hbox}
- \hbox}
-
-\def\placeontopofeachother{\placerelativetoeachother\halign\hss}
-\def\placesidebyside {\placerelativetoeachother\valign\vss}
-
-% this will be replaced or go away, never used
-
-\def\douseexternalfiles[#1][#2]%
- {\getparameters
- [\??fi#1]
- [\c!file=,
- \c!bodyfont=,
- \c!option=,
- #2]}
-
-\def\useexternalfiles
- {\dodoubleargument\douseexternalfiles}
-
-\def\dostelexternefilesin[#1][#2]%
- {\doifundefinedelse{\??fi#1\c!file}
- {\useexternalfiles[#1][#2]}
- {\getparameters[\??fi#1][#2]}}
-
-\def\stelexternefilesin
- {\dodoubleargument\dostelexternefilesin}
-
-\def\verwerkexternefile#1#2#3%
- {\bgroup
- \getparameters[\??fi#1][\c!file=,#3]%
- \doinputonce{\getvalue{\??fi#1\c!file}}%
- \ExpandFirstAfter\switchtobodyfont[\getvalue{\??fi#1\c!bodyfont}]%
- \readsysfile{#2} % beter: loc of fix gebied
- \donothing
- {\showmessage\m!systems{41}{#2,#1}}%
- \egroup}
-
-\def\douseexternalfile[#1][#2][#3][#4]%
- {\stelexternefilesin[#1][]%
- \doinputonce{\getvalue{\??fi#1\c!file}}%
- \doifelsenothing{#2}
- {\setvalue{#3}{\verwerkexternefile{#1}{#3}{#4}}}
- {\setvalue{#2}{\verwerkexternefile{#1}{#3}{#4}}}}
-
-\def\useexternalfile
- {\doquadrupleargument\douseexternalfile}
-
-\useexternalfiles
- [pictex]
- [\c!bodyfont=\v!small,
- \c!file=pictex]
-
-\useexternalfiles
- [table]
- [\c!file=table]
-
-%D A couple of examples, demonstrating how the depth is
-%D taken care of:
-%D
-%D \startbuffer
-%D test\rotate[frame=on, rotation=0] {gans}%
-%D test\rotate[frame=on, rotation=90] {gans}%
-%D test\rotate[frame=on, rotation=180]{gans}%
-%D test\rotate[frame=on, rotation=270]{gans}%
-%D test
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-% When we rotate over arbitrary angles, we need to relocate the
-% resulting box because rotation brings that box onto the negative
-% axis. The calculations (mostly sin and cosine) need to be tuned for
-% the way a box is packages (i.e. the refence point). A typical example
-% of drawing, scribbling, and going back to the days of school math.
-%
-% We do a bit more calculations than needed, simply because that way
-% it's easier to debug the code.
-
-\def\dododorotatenextbox
- {\setbox\nextbox\vbox to \@@layerysiz
- {\vfill
- \hbox to \@@layerxsiz
- {\dostartrotation\@@rorotation
- \nextboxwd\zeropoint
- \nextboxht\zeropoint
- \flushnextbox
- \dostoprotation
- \hfill}%
- \kern\@@layerypos}%
- \setbox\nextbox\hbox
- {\kern\@@layerxpos
- \kern\@@layerxoff
- \lower\@@layeryoff\flushnextbox}}
-
-\def\dodorotatenextbox#1#2% quite some trial and error -)
- {\dontshowcomposition
- \dontcomplain
- \ifnum#2=\plusfour
- % new, location=middle
- \!!widthb \nextboxwd
- \!!heightb\nextboxht
- \!!depthb \nextboxdp
- \setbox\nextbox\vbox{\vskip.5\nextboxht\hskip-.5\nextboxwd\flushnextbox}%
- \smashbox\nextbox
- \fi
- \!!widtha \nextboxwd
- \!!heighta\nextboxht
- \!!deptha \nextboxdp
- \!!doneafalse
- \!!donebfalse
- \ifcase#2\or
- % 1: fit
- \or
- % 2: depth, not fit
- \!!doneatrue
- \!!donebtrue
- \or
- % 3: depth, fit
- \!!donebtrue
- \fi
- \setbox\nextbox\vbox{\hbox{\raise\nextboxdp\flushnextbox}}%
- \!!dimena \nextboxht
- \setcalculatedcos\cos\@@rorotation
- \setcalculatedsin\sin\@@rorotation
- \@@layerxpos\zeropoint
- \@@layerypos\zeropoint
- \@@layerxoff\zeropoint
- \@@layeryoff\zeropoint
- \ifdim\sin\points>\zeropoint
- \ifdim\cos\points>\zeropoint
- \@@layerxsiz \cos\!!widtha
- \@@layerysiz \sin\!!widtha
- \advance\@@layerxsiz \sin\!!dimena
- \advance\@@layerysiz \cos\!!dimena
- \@@layerypos \cos\!!dimena
- \if!!donea
- \@@layerxoff \negated\sin\!!dimena
- \advance\@@layerxoff \sin\!!deptha
- \fi
- \if!!doneb
- \@@layeryoff \cos\!!deptha
- \fi
- \dododorotatenextbox
- \else
- \@@layerxsiz \negated\cos\!!widtha
- \@@layerysiz \sin\!!widtha
- \advance\@@layerxsiz \sin\!!dimena
- \advance\@@layerysiz \negated\cos\!!dimena
- \@@layerxpos \negated\cos\!!widtha
- \if!!donea
- \@@layerxoff -\@@layerxsiz
- \advance\@@layerxoff \sin\!!deptha
- \fi
- \if!!doneb
- \@@layeryoff \negated\cos\!!heighta
- \fi
- \dododorotatenextbox
- \wd\nextbox\if!!donea\sin\!!deptha\else\@@layerxsiz\fi
- \fi
- \else
- \ifdim\cos\points<\zeropoint
- \@@layerxsiz \negated\cos\!!widtha
- \@@layerysiz \negated\sin\!!widtha
- \advance\@@layerxsiz \negated\sin\!!dimena
- \advance\@@layerysiz \negated\cos\!!dimena
- \@@layerxpos \@@layerxsiz
- \@@layerypos \negated\sin\!!widtha
- \if!!donea
- \@@layerxoff -\@@layerxsiz
- \advance\@@layerxoff \negated\sin\!!heighta
- \fi
- \if!!doneb
- \@@layeryoff \@@layerysiz
- \advance\@@layeryoff \cos\!!deptha
- \fi
- \dododorotatenextbox
- \wd\nextbox\if!!donea\negated\sin\!!heighta\else\@@layerxsiz\fi
- \else
- \@@layerxsiz \cos\!!widtha
- \@@layerysiz \negated\sin\!!widtha
- \advance\@@layerxsiz \negated\sin\!!dimena
- \advance\@@layerysiz \cos\!!dimena
- \ifdim\sin\points=\zeropoint
- \@@layerxpos \zeropoint
- \@@layerxoff \zeropoint
- \@@layerypos \@@layerysiz
- \if!!doneb
- \@@layeryoff \!!deptha
- \fi
- \else
- \@@layerypos \@@layerysiz
- \@@layerxpos \negated\sin\!!dimena
- \if!!donea
- \@@layerxoff -\@@layerxsiz
- \advance\@@layerxoff \negated\sin\!!heighta
- \fi
- \if!!doneb
- \@@layeryoff \negated\sin\!!deptha
- \fi
- \fi
- \dododorotatenextbox
- \ifdim\sin\points=\zeropoint
- \else
- \wd\nextbox\if!!donea\negated\sin\!!heighta\else\@@layerxsiz\fi
- \fi
- \fi
- \fi
- % new, location=middle
- \ifnum#2=\plusfour
- \setbox\nextbox\vbox{\vskip-.5\!!heightb\hskip.5\!!heightb\flushnextbox}%
- \nextboxwd\!!widthb
- \nextboxht\!!heightb
- \nextboxdp\!!depthb
- \fi}
-
-\def\dorotatenextbox#1#2%
- {\doifsomething{#1}
- {\edef\@@rorotation{\realnumber{#1}}% get rid of leading zeros and spaces
- \setbox\nextbox\vbox{\flushnextbox}% not really needed
- \dodorotatenextbox\@@rorotation#2}%
- \hbox{\boxcursor\flushnextbox}}
-
-\def\dodorotatebox#1% {angle} \hbox/\vbox/\vtop
- {\bgroup\hbox\bgroup % compatibility hack
- \dowithnextbox
- {\dorotatenextbox{#1}\plusone
- \egroup\egroup}}
-
-\def\dorotatebox#1% {angle} \hbox/\vbox/\vtop
- {\ifcase#1\relax
- \expandafter\gobbleoneargument
- \else
- \expandafter\dodorotatebox
- \fi{#1}}
-
-\unexpanded\def\rotate % \bgroup: \rotate kan argument zijn
- {\bgroup\complexorsimpleempty\rotate}
-
-% \def\complexrotate[#1]% framed met diepte !
-% {\getparameters[\??ro][#1]%
-% \processaction
-% [\@@rolocation]
-% [ \v!depth=>\!!counta\plusthree\donefalse,% depth fit - raw box
-% \v!fit=>\!!counta\plustwo \donefalse,% depth tight - raw box
-% \v!broad=>\!!counta\plusone \donefalse,% nodepth fit - raw box
-% \v!high=>\!!counta\plusone \donetrue ,% nodepth fit - framed
-% \v!middle=>\!!counta\plusfour \donefalse,% centered, keep dimensions
-% \s!default=>\!!counta\plusthree\donetrue ,% depth fit - framed
-% \s!unknown=>\!!counta\plusthree\donetrue ]% depth fit - framed
-% \ifdone
-% \def\docommand{\localframed[\??ro][#1,\c!location=]}%
-% \else
-% \let\docommand\relax
-% \fi
-% \dowithnextbox{\dorotatenextbox\@@rorotation\!!counta\egroup}\vbox\docommand}
-
-\setvalue{\??ro::\c!location::\v!depth }{\!!counta\plusthree\donefalse} % depth fit - raw box
-\setvalue{\??ro::\c!location::\v!fit }{\!!counta\plustwo \donefalse} % depth tight - raw box
-\setvalue{\??ro::\c!location::\v!broad }{\!!counta\plusone \donefalse} % nodepth fit - raw box
-\setvalue{\??ro::\c!location::\v!high }{\!!counta\plusone \donetrue } % nodepth fit - framed
-\setvalue{\??ro::\c!location::\v!middle }{\!!counta\plusfour \donefalse} % centered, keep dimensions
-\setvalue{\??ro::\c!location::\v!default}{\!!counta\plusthree\donetrue } % depth fit - framed
-
-\def\complexrotate[#1]% framed met diepte !
- {\getparameters[\??ro][#1]%
- \executeifdefined{\??ro::\c!location::\@@rolocation}{\!!counta\plusthree\donetrue}%
- \ifdone
- \def\docommand{\localframed[\??ro][#1,\c!location=]}%
- \else
- \let\docommand\relax
- \fi
- \dowithnextbox{\dorotatenextbox\@@rorotation\!!counta\egroup}\vbox\docommand}
-
-\presetlocalframed[\??ro]
-
-\def\setuprotate
- {\dodoubleargument\getparameters[\??ro]}
-
-\setuprotate
- [\c!rotation=90,
- \c!location=\v!normal,
- \c!width=\v!fit,
- \c!height=\v!fit,
- \c!offset=\v!overlay,
- \c!frame=\v!off]
-
-% \dostepwiserecurse{0}{360}{10}
-% {\startlinecorrection[blank]
-% \hbox
-% {\expanded{\setuprotate[rotation=\recurselevel]}%
-% \traceboxplacementtrue
-% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=depth] {\ruledhbox{\bfb (depth)}}}}%
-% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=fit] {\ruledhbox{\bfb (fit)}}}}%
-% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=broad] {\ruledhbox{\bfb (broad)}}}}%
-% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=normal]{\ruledhbox{\bfb (normal)}}}}%
-% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=high] {\ruledhbox{\bfb (high)}}}}}
-% \stoplinecorrection}
-
-% to be used in some other places! todo!
-%
-% divides \hsize in fractions, will be made a bit more
-% clever and advanced when needed
-%
-% \horizontaldivision[n/m,elements,distance]
-%
-% \horizontaldivision[2/5,3,1em]
-% \horizontaldivision[2/5,3,1em]
-% \horizontaldivision[1/5,3,1em]
-%
-% \setuphorizontaldivision[afstand=,aantal=] (passend,passend)
-
-\def\??fr{@@fr}
-
-\def\setuphorizontaldivision
- {\dodoubleargument\getparameters[\??fr]}
-
-\def\horizontaldivision
- {\dosingleargument\dohorizontaldivision}
-
-\def\dohorizontaldivision[#1]%
- {\dodohorizontaldivision[#1,,,,,,]}
-
-\def\dodohorizontaldivision[#1/#2,#3,#4,#5]%
- {\doifelsenothing{#3}
- {\doifelse\@@frn\v!fit
- {\!!counta#2\relax}
- {\!!counta\@@frn\relax}}
- {\!!counta#3\relax}%
- \doifelsenothing{#4}
- {\doifelse\@@frdistance\v!fit
- {\!!widtha\zeropoint}
- {\!!widtha\@@frdistance}}
- {\!!widtha#4}%
- \advance\!!counta \minusone
- \multiply\!!widtha \!!counta
- \advance\hsize -\!!widtha
- \divide\hsize #2\relax
- \hsize#1\hsize}
-
-\setuphorizontaldivision
- [\c!distance=\tfskipsize,
- \c!n=\v!fit]
-
-%D This one is for Daniel Pittman, who wanted tight
-%D fractions. We show three versions. First the simple
-%D one using \type {\low} and \type {high}:
-%D
-%D \startbuffer
-%D \def\vfrac#1#2%
-%D {\hbox{\high{\tx#1\kern-.25em}/\low{\kern-.25em\tx#2}}}
-%D
-%D test \vfrac{1}{2} test \vfrac{123}{456} test
-%D \stopbuffer
-%D
-%D \typebuffer {\showmakeup\getbuffer}
-%D
-%D A better way to handle the kerning is the following, here
-%D we kind of assume that tye slash is symmetrical and has
-%D nearly zero width.
-%D
-%D \startbuffer
-%D \def\vfract#1#2%
-%D {\hbox{\high{\tx#1}\hbox to \zeropoint{\hss/\hss}\low{\tx#2}}}
-%D \stopbuffer
-%D
-%D \typebuffer {\showmakeup\getbuffer}
-%D
-%D The third and best alternative is the following:
-%D
-%D {\showmakeup\getbuffer}\crlf\getbuffer
-%D
-%D This time we measure the height of the \type {/} and
-%D shift over the maximum height and depths of this
-%D character and the fractional digits (we use 57 as
-%D sample). Here we combine all methods in one macros.
-
-\chardef\vulgarfractionmethod=3
-
-\definehspace[vulgarfraction][.25em] % [.15em]
-\definesymbol[vulgarfraction][/] % [\raise.2ex\hbox{/}]
-
-\unexpanded\def\vulgarfraction#1#2%
- {\dontleavehmode
- \hbox
- {\def\vulgarfraction{vulgarfraction}%
- \ifcase\vulgarfractionmethod
- #1\symbol[\vulgarfraction]#2%
- \or
- \high{\tx#1\kern-\hspaceamount\empty\vulgarfraction}%
- \symbol[\vulgarfraction]%
- \low {\kern-\hspaceamount\empty\vulgarfraction\tx#2}%
- \or
- \high{\tx#1}%
- \hbox to \zeropoint{\hss\symbol[\vulgarfraction]\hss}%
- \low{\tx#2}%
- \or
- \setbox0\hbox{\symbol[\vulgarfraction]}%
- \setbox2\hbox{\txx57}%
- \raise\ht0\hbox{\lower\ht2\hbox{\txx#1}}%
- \hbox to \zeropoint{\hss\symbol[\vulgarfraction]\hss}%
- \lower\dp0\hbox{\raise\dp2\hbox{\txx#2}}%
- \fi}}
-
-\ifx\vfrac\undefined \let\vfrac\vulgarfraction \fi
-
-%D \starttabulate
-%D \HL
-%D \NC \bf method \NC \bf visualization \NC\NR
-%D \HL
-%D \NC 0 \NC \chardef\vulgarfractionmethod0\vulgarfraction{1}{2} \NC\NR
-%D \NC 1 \NC \chardef\vulgarfractionmethod1\vulgarfraction{1}{2} \NC\NR
-%D \NC 2 \NC \chardef\vulgarfractionmethod2\vulgarfraction{1}{2} \NC\NR
-%D \NC 3 \NC \chardef\vulgarfractionmethod3\vulgarfraction{1}{2} \NC\NR
-%D \HL
-%D \stoptabulate
-
-%D Under construction:
-%D
-%D \starttyping
-%D \commalistsentence[aap,noot,mies]
-%D \commalistsentence[aap,noot]
-%D \commalistsentence[aap]
-%D \commalistsentence[a,b,c]
-%D \commalistsentence[a,b,c][{ \& },{ and }]
-%D \commalistsentence[a,b,c][+,-]
-%D \stoptyping
-
-\let\handlecommalistsentence\firstofoneargument
-
-\def\commalistsentenceone{and-1}
-\def\commalistsentencetwo{and-2}
-
-\def\commalistsentence
- {\dodoubleempty\docommalistsentence}
-
-\def\docommalistsentence[#1][#2]%
- {\bgroup
- \getfromcommalist[#2][1]%
- \ifx\commalistelement\empty
- \def\@@commalistsentenceone{\labeltext\commalistsentenceone}%
- \else
- \let\@@commalistsentenceone\commalistelement
- \fi
- \getfromcommalist[#2][2]%
- \ifx\commalistelement\empty
- \def\@@commalistsentencetwo{\labeltext\commalistsentencetwo}%
- \else
- \let\@@commalistsentencetwo\commalistelement
- \fi
- \getcommalistsize[#1]%
- \ifcase\commalistsize\relax
- \def\serializedcommalist{#1}%
- \else
- \let\serializedcommalist\empty
- \scratchcounter\zerocount
- \def\docommand##1%
- {\advance\scratchcounter \plusone
- \ifnum\scratchcounter=\plusone
- \scratchtoks{\handlecommalistsentence{##1}}%
- \else
- \ifnum\scratchcounter=\commalistsize
- \appendtoks\@@commalistsentencetwo\handlecommalistsentence{##1}\to\scratchtoks
- \else
- \appendtoks\@@commalistsentenceone\handlecommalistsentence{##1}\to\scratchtoks
- \fi
- \fi}%
- \processcommacommand[#1]\docommand
- \edef\serializedcommalist{\the\scratchtoks}%
- \fi
- \serializedcommalist
- \egroup}
-
-\def\commacommandsentence[#1]{\@EA\commalistsentence\@EA[#1]}
-
-\ifx\textcomma\undefined \def\textcomma{,} \fi
-
-\setuplabeltext [\s!nl] [and-1=\textcomma\ , and-2= en ]
-\setuplabeltext [\s!en] [and-1=\textcomma\ , and-2=\textcomma\ and ]
-\setuplabeltext [\s!de] [and-1=\textcomma\ , and-2= und ]
-\setuplabeltext [\s!hr] [and-1=\textcomma\ , and-2= i ]
-
-%D \macros
-%D {somekindoftab}
-%D
-%D This macro can be used to create tabs:
-%D
-%D \starttyping
-%D \setupheadertexts[{\somekindoftab[alternative=horizontal]{\framed{\realfolio}}}]
-%D \setuptexttexts [{\somekindoftab[alternative=vertical] {\framed{\realfolio}}}]
-%D
-%D \starttext
-%D \showframe \dorecurse{10}{test\page}
-%D \stoptext
-%D \stoptyping
-
-\def\somekindoftab
- {\dosingleempty\dosomekindoftab}
-
-\def\dosomekindoftab[#1]%
- {\bgroup
- \getparameters[xx]
- [\c!alternative=\v!vertical,
- \c!width=\textwidth,\c!height=\textheight,
- \c!n=\lastpage,\c!m=\realpageno,
- #1]%
- \doifelse\xxalternative\v!vertical
- {\dodosomekindoftab\vbox\vskip\xxheight}
- {\dodosomekindoftab\hbox\hskip\xxwidth }}
-
-\def\dodosomekindoftab#1#2#3#4%
- {#1 to #3 \bgroup
- \forgetall
- \ifnum\xxm>\plusone
- #2\zeropoint \!!plus \the\numexpr\xxm -1\relax fill\relax
- \fi
- #4%
- \ifnum\xxm<\xxn\relax
- #2\zeropoint \!!plus \the\numexpr\xxn-\xxm\relax fill\relax
- \fi
- \egroup
- \egroup}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-par.mkii b/Master/texmf-dist/tex/context/base/mkii/core-par.mkii
deleted file mode 100644
index 69e2976d1f3..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/core-par.mkii
+++ /dev/null
@@ -1,300 +0,0 @@
-%D \module
-%D [ file=core-par,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Paragraph Tricks,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / Pararaph Tricks}
-
-\unprotect
-
-% \ifprocesspreviousparagraphs
-%
-% \nofskippedparagraphs
-% \paragraphnumber
-% \nofparagraphs
-%
-% \dosetparagraph
-% \doresetparagraph
-% \dobeforeparagraph
-% \doafterparagraph
-% \dobeforeskipparagraph
-% \doafterskipparagraph
-%
-% \pushparagraphs\endcommand alle alineas tot \endcommand laden
-% \pushmoreparagraphs\endcommand alle alineas tot \endcommand toevoegen
-% \popparagraphs alle alineas oproepen
-% \popparagraphs[a,b,c] enkele alineas oproepen [geen]
-%
-% tzt een optionele prefix:
-%
-% \pushparagraphs[xxx]\endcommand alle alineas tot \endcommand laden
-% \popparagraphs[xxx] alle alineas oproepen
-% \popparagraphs[xxx][a,b,c] enkele alineas oproepen
-%
-% \numberparagraphs
-% \numberparagraphlines
-% \resetparagraphlines
-
-\newif\ifprocesspreviousparagraphs % public
-\newif\ifprocessallparagraphs % private
-
-\newcounter\totalnofparagraphs % private
-\newcounter\globalparagraphnumber % private
-\newcounter\discardedparagraphs % private
-\newcounter\mostrecentparagraphtotal % public
-
-\let\dosetparagraph = \relax % public
-\let\doresetparagraph = \relax % public
-\let\dobeforeparagraph = \relax % public
-\let\doafterparagraph = \relax % public
-\let\dobeforeskipparagraph = \relax % public
-\let\doafterskipparagraph = \relax % public
-
-\def\paragraphnumber {} % public
-\def\nofparagraphs {} % public
-\def\nofskippedparagraphs {} % public
-
-\def\paragraphprefix {paragraph} % private
-
-% voorlopig, wordt nog class
-
-\def\resetparagraphlines
- {\global\linenumber\plusone}
-
-\def\numberparagraphs % instelbaar maken en slimmer ivm breedte regelnummer !!!!!
- {\processpreviousparagraphstrue
- \def\dosetparagraph
- {\bgroup
- \resetparagraphlines
- \EveryPar
- {\strut\inleftmargin{\tf{\tx\paragraphnumber}\kern2em}%
- \ignorespaces}}%
- \def\doresetparagraph
- {\resetparagraphlines
- \egroup}}
-
-\def\numberparagraphlines
- {\processpreviousparagraphstrue
- \def\dosetparagraph
- {\resetparagraphlines}%
- \def\doresetparagraph
- {\resetparagraphlines}%
- \def\dobeforeparagraph
- {\startlinenumbering[\v!continue]}%
- \def\doafterparagraph
- {\stoplinenumbering}%
- \def\dobeforeskipparagraph
- {\stoplinenumbering
- \let\paragraphnumber\relax}%
- \def\doafterskipparagraph
- {\startlinenumbering[\v!continue]}}
-
-\long\def\directpushparagraph#1%
- {\doglobal\increment\totalnofparagraphs
- \ifnum\totalnofparagraphs>0\nofskippedparagraphs\relax
- \setgvalue{\paragraphprefix\totalnofparagraphs}{#1}%
- \else
- \setgvalue{\paragraphprefix\totalnofparagraphs}{\skipparagraph#1\par}%
- \fi}
-
-\long\def\directskipparagraph#1%
- {\doglobal\increment\totalnofparagraphs
- \setgvalue{\paragraphprefix\totalnofparagraphs}{\skipparagraph#1\par}}
-
-\def\dopushparagraphs#1%
- {\global\let\mostrecentparagraphtotal\totalnofparagraphs
- \ifx#1\undefined
- \let#1\relax
- \fi
- \defconvertedargument\asciia{#1}%
- \defconvertedargument\asciib{ }% % lege regel
- \def\dopushparagraph##1\par
- {\defconvertedargument\asciic{##1}%
- \doifelse\asciic\asciia
- {#1}
- {\doifsomething\asciic % lege paragraaf
- {\doifnot\asciic\asciib
- {\directpushparagraph{#1}}}%
- \dopushparagraph}}%
- \dopushparagraph}
-
-\def\pushparagraphs
- {\doglobal\newcounter\totalnofparagraphs
- \dopushparagraphs}
-
-\def\pushmoreparagraphs
- {\dopushparagraphs}
-
-\def\dododopopparagraph#1% no grouping, i.v.m. sidefloats
- {\ifnum#1>\totalnofparagraphs\relax
- \else
- \let\paragraphnumber\globalparagraphnumber
- \decrement(\paragraphnumber,\discardedparagraphs)%
- \dobeforeparagraph
- \ifhmode\indentation\fi\getvalue{\paragraphprefix#1}\par
- \doafterparagraph
- \fi}
-
-\long\def\skipparagraph#1\par
- {\doglobal\increment\discardedparagraphs
- \ifprocessallparagraphs
- \dobeforeskipparagraph
- \ifhmode\indentation\fi#1\par
- \doafterskipparagraph
- \fi}
-
-\def\dodopopparagraph
- {\dododopopparagraph}
-
-\def\dodoprocessparagraph#1%
- {\ifprocesspreviousparagraphs
- \bgroup
- \setbox0\vbox{\dododopopparagraph{#1}}%
- \egroup
- \fi}
-
-\def\processpreviousparagraphs[#1]% process previous ones
- {\ifprocesspreviousparagraphs
- \bgroup
- \getfromcommacommand[#1][1]% tzt snelle \..command.. testen
- \let\totalnofparagraphs\commalistelement
- \decrement\totalnofparagraphs
- \let\dodopopparagraph\dodoprocessparagraph
- \popparagraphs
- \egroup
- \fi}
-
-\def\dopopparagraphs[#1]%
- {\doifnotinset{#1}{\v!none,0}
- {\dosetparagraph
- \doglobal\newcounter\globalparagraphnumber
- \doglobal\newcounter\discardedparagraphs
- \doifelse{#1}{}
- {\processallparagraphstrue}
- {\processallparagraphsfalse}%
- \def\dopopparagraph
- {\doglobal\increment\globalparagraphnumber
- \ifnum\globalparagraphnumber>\totalnofparagraphs\relax
- \let\dopopparagraph\relax
- \else\ifprocessallparagraphs
- \ifnum\globalparagraphnumber>\mostrecentparagraphtotal\relax
- \dodopopparagraph\globalparagraphnumber
- \else
- \dodoprocessparagraph\globalparagraphnumber
- \fi
- \else
- \let\paragraphnumber\globalparagraphnumber
- \decrement(\paragraphnumber,\discardedparagraphs)%
- \ExpandBothAfter\doifinsetelse{\paragraphnumber}{#1}
- {\dodopopparagraph\globalparagraphnumber}
- {\dodoprocessparagraph\globalparagraphnumber}%
- \fi\fi
- \dopopparagraph}%
- \dopopparagraph
- \doresetparagraph}}
-
-\def\popparagraphs
- {\dosingleempty\dopopparagraphs}
-
-\def\countparagraphs
- {\popparagraphs[\!!maxcard]%
- \global\let\nofparagraphs\totalnofparagraphs
- \doglobal\decrement(\nofparagraphs,\discardedparagraphs)}
-
-% \showframe
-%
-% \numberparagraphlines
-% \numberparagraphs
-%
-% \def\nofskippedparagraphs{1}
-%
-% \pushparagraphs\ThatsIt
-%
-% \ruledbaseline eerste eerste eerste eerste eerste eerste
-% eerste eerste eerste eerste eerste eerste eerste eerste
-% eerste eerste eerste eerste eerste eerste eerste eerste
-% eerste eerste eerste eerste eerste eerste eerste eerste
-% eerste eerste eerste eerste eerste eerste eerste eerste
-% eerste eerste eerste eerste eerste
-%
-% \ruledbaseline eerste eerste eerste eerste eerste eerste
-% eerste eerste eerste eerste eerste eerste eerste eerste
-% eerste eerste eerste eerste eerste eerste eerste eerste
-% eerste eerste eerste eerste eerste eerste eerste eerste
-% eerste eerste eerste eerste eerste eerste eerste eerste
-% eerste eerste eerste eerste eerste
-%
-% \ruledbaseline tweede tweede tweede tweede tweede tweede
-% tweede tweede tweede tweede tweede tweede tweede tweede
-% tweede tweede tweede tweede tweede tweede tweede tweede
-% tweede tweede tweede tweede tweede tweede tweede tweede
-% tweede tweede tweede tweede tweede tweede tweede tweede
-% tweede tweede tweede tweede tweede tweede tweede tweede
-% tweede tweede tweede tweede tweede
-%
-% \skipparagraph \ruledbaseline skipped skipped skipped
-% skipped skipped skipped skipped skipped skipped skipped
-% skipped skipped skipped skipped skipped skipped skipped
-% skipped skipped
-%
-% \ruledbaseline derde derde derde derde derde derde derde
-% derde derde derde derde derde derde derde derde derde derde
-% derde derde derde derde derde derde derde derde derde derde
-% derde derde derde derde derde derde derde derde derde derde
-% derde derde derde derde derde derde derde derde derde derde
-% derde derde derde derde derde derde derde derde derde derde
-%
-% \skipparagraph \ruledbaseline skipped skipped skipped
-% skipped skipped skipped skipped skipped skipped skipped
-% skipped skipped skipped skipped skipped skipped skipped
-% skipped skipped skipped
-%
-% \ruledbaseline vierde vierde vierde vierde vierde vierde
-% vierde vierde vierde vierde vierde vierde vierde vierde
-% vierde vierde vierde vierde vierde vierde vierde vierde
-% vierde vierde vierde vierde
-%
-% \ruledbaseline vijfde vijfde vijfde vijfde vijfde vijfde
-% vijfde vijfde vijfde vijfde vijfde vijfde vijfde vijfde
-% vijfde vijfde vijfde vijfde vijfde vijfde vijfde vijfde
-% vijfde vijfde vijfde vijfde vijfde vijfde vijfde vijfde
-% vijfde vijfde vijfde
-%
-% \skipparagraph \ruledbaseline skipped skipped skipped
-% skipped skipped skipped skipped skipped skipped skipped
-% skipped skipped skipped skipped skipped skipped skipped
-% skipped skipped skipped
-%
-% \ThatsIt
-%
-% \popparagraphs
-%
-% \countparagraphs
-%
-% \blanko[2*groot]
-%
-% nofparagraphs:~\nofparagraphs
-%
-% \pagina
-%
-% \popparagraphs[1]
-% \popparagraphs[2]
-% \popparagraphs[3]
-% \popparagraphs[4]
-% \popparagraphs[5]
-%
-% \pagina
-%
-% \ruledvbox{\popparagraphs[1,2,3,4,5]}
-%
-% \pagina
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-stg.mkii b/Master/texmf-dist/tex/context/base/mkii/core-stg.mkii
deleted file mode 100644
index 0d98da851d3..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/core-stg.mkii
+++ /dev/null
@@ -1,72 +0,0 @@
-%D \module
-%D [ file=core-stg,
-%D version=2006.08.16,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Strategies,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This is a prelude to strategies. It is rather old code
-%D used in a project many years ago. Use with care since I
-%D will pick up this thread. (moved from cont-new)
-
-\unprotect
-
-\def\s!strategy{strategy}
-
-\def\currentstrategypass {1}
-\def\currentstrategyvariable{0}
-\def\maximumstrategypass {8}
-
-\newconditional\strategypassneeded
-\newconditional\strategypassforced
-
-\definetwopasslist{\s!strategy}
-
-\def\registerstrategypass
- {\ifnum\currentstrategypass>\maximumstrategypass \else
- \ifconditional\strategypassforced
- \doglobal\increment\currentstrategypass
- \else%\ifconditional\strategypassneeded
- %\doglobal\increment\currentstrategypass
- \fi%\fi
- \fi
- \savecurrentvalue\currentstrategypass{\currentstrategypass}}
-
-\appendtoks \registerstrategypass \to \everybye % \everylastshipout
-
-\def\setstrategyvariable#1#2% key value
- {%\doifnotstrategyvariable{#1}{\global\settrue\strategypassneeded}%
- \doglobal\increment\currentstrategyvariable
- \savetaggedtwopassdata{\s!strategy}{\currentstrategyvariable}{#1}{#2}}
-
-\def\doifstrategyvariableelse#1#2#3%
- {\getstrategyvariable{#1}\iftwopassdatafound#2\else#3\fi}
-
-\def\getstrategyvariable#1% key
- {\findtwopassdata{\s!strategy}{#1}%
- \setxvalue{\s!strategy:#1}{\twopassdata}}
-
-\def\retainstrategyvariable#1% key
- {\expanded{\setstrategyvariable{#1}{\strategyvariable{#1}}}}
-
-\def\strategyvariable#1% key
- {\csname\s!strategy:#1\endcsname}
-
-\let\stratvar\strategyvariable
-
-\def\forcestrategy{\global\settrue \strategypassforced}
-\def\abortstrategy{\global\setfalse\strategypassforced}
-
-\def\doifstrategyvariableelse#1#2#3%
- {\getstrategyvariable{#1}\iftwopassdatafound#2\else#3\fi}
-
-\def\doifstrategyvariable #1#2{\doifstrategyvariableelse{#1}{#2}{}}
-\def\doifnotstrategyvariable#1#2{\doifstrategyvariableelse{#1}{}{#2}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-sys.mkii b/Master/texmf-dist/tex/context/base/mkii/core-sys.mkii
deleted file mode 100644
index 5aa669d2c1e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/core-sys.mkii
+++ /dev/null
@@ -1,396 +0,0 @@
-%D \module
-%D [ file=core-sys, % moved from main-001
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=System,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / System}
-
-\unprotect
-
-%D Version checking:
-
-\def\newcontextversion#1%
- {\doifelse{#1}\contextversion
- {\let\newcontextversion\gobbleoneargument}
- {\writeline
- \writestatus{Fatal Error}{Your format does not match the base files!}%
- \writeline
- \writestatus{Format Version}{\contextversion\space\contextmark}%
- \writestatus{Files Version}{#1}%
- \batchmode
- \normalend}}
-
-%D End of lines to the output. \TEX\ will map this onto the platform specific
-%D line ending. I hate this mess.
-
-%newlinechar=10 \def\outputnewlinechar{\rawcharacter{10}}
-\newlinechar=10 \edef\outputnewlinechar{^^J}
-
-% in case formats are shared:
-
-\def\initializenewlinechar
- {\bgroup\newlinechar=10\xdef\outputnewlinechar{^^J}\egroup}
-
-%D Job names.
-
-\def\outputfilename {\@@svfile}
-\def\inputfilename {\@@svinputfile}
-\def\operatingsystem{\@@svtype}
-
-\let\jobfilename \jobname
-\let\jobfilesuffix\c!tex
-
-\def\splitjobfilename % todo: mkiv
- {\resetsystemmode{suffix-\jobfilesuffix}%
- \edef\ascii{\inputfilename}\defconvertedcommand\ascii\ascii
- \splitstring\ascii\at.\to\jobfilename\and\jobfilesuffix
- \lowercasestring\jobfilesuffix\to\jobfilesuffix
- \doifnothing\jobfilename {\let\jobfilename \jobname}%
- % todo and totest: \defconvertedcommand\jobfilename\jobfilename
- \doifnothing\jobfilesuffix{\let\jobfilesuffix\c!tex}%
- \setsystemmode{suffix-\jobfilesuffix}}
-
-% Some mechanisms (see x-res-01) use either \jobfilename or
-% \jobfilename.somesuffix, in which case we need to use the
-% full name if given or a default (like \jobfilename.xml);
-% this comes down to replacing the default tex suffix.
-
-\def\jobfullname{\jobfilename.\jobfilesuffix}
-
-\def\setjobfullname#1% #1 = default if not given
- {\doifelsenothing\jobfilename
- {\let\jobfullname\empty}
- {\doif\jobfilesuffix\c!tex{\edef\jobfullname{\jobfilename.#1}}}}
-
-% ...
-
-\def\dosetupsystem[#1]%
- {\getparameters[\??sv][#1]%
- \setuprandomize[\@@svrandom]%
- \beforesplitstring\@@svresolution\at dpi\to\@@svresolution
- \let\outputresolution\@@svresolution
- \ifcase\@@svn
- % % 0 : unknown
- \or
- \setsystemmode\v!first % 1 : first run
- \or
- % % 2 : successive run
- \or
- \setsystemmode\v!first % 3 : first and only run
- \or
- \setsystemmode\v!last % 4 : (extra) last run
- \fi
-% \processaction
-% [\@@svtype]
-% %[ mswin=>\edef\@@svline{\rawcharacter{13}\rawcharacter{10}}, % crlf
-% [ mswin=>\edef\@@svline{\rawcharacter{13}}, % cr % crlf
-% darwin=>\edef\@@svline{\rawcharacter{13}}, % cr
-% \s!unknown=>\edef\@@svline{\rawcharacter{10}}]% % lf
- \splitjobfilename}
-
-% \edef\@@svline{\rawcharacter{10}} % unix is the most critical/sensitive system
-
-\let\systemendofline\outputnewlinechar % will become obsolete
-
-\def\setupsystem
- {\dosingleargument\dosetupsystem}
-
-\def\systemparameter#1{\executeifdefined{\??sv#1}\empty}
-
-%D The system modes set by the setup command can be used in
-%D situations like:
-%D
-%D \starttyping
-%D \startmode[*first]
-%D \executesystemcommand{cleanupxml text.xml clean-text.xml}
-%D \stopmode
-%D
-%D \starttext
-%D \typefile{clean-text.xml}
-%D \stoptext
-%D \stoptyping
-
-\def\setuprandomize[#1]%
- {\doifsomething{#1}
- {\bgroup
- % tex's time is in minutes
- \scratchcounter\normaltime
- \processaction
- [#1]
- [ \v!small=>\divide\scratchcounter 15, % 900,
- \v!medium=>\divide\scratchcounter 30, % 1800,
- \v!big=>\divide\scratchcounter 60, % 3600,
- \v!normal=>\getnewrandomseed\scratchcounter,
- \s!default=>\getnewrandomseed\scratchcounter,
- \s!unknown=>\scratchcounter#1]%
- \expanded{\setrandomseed{\the\scratchcounter}}%
-% \writestatus\m!systems{randomseed: \the\scratchcounter}%
- \egroup}}
-
-
-\setupsystem
- [\c!directory=,
- \c!n=0, % 0:unknown 1: one run 2: first 3: successive 4: final run
- \c!resolution=600dpi,
- \c!random=,
- \c!file=\jobname,
- \c!inputfile=\outputfilename,
- \c!type=unix, % windows is normally less sensitive to handle
- \c!bodyfont=\normalizedlocalbodyfontsize] % of iets anders
-
-%D Remark: windows programs normally handle \type {cr|lf|crlf} but unix
-%D is more picky, so we default to the \type {cr}. I never understood why
-%D \type {crlf} was not used in all systems, since it makes most sense.
-
-\def\dostartglobaldefs#1#2%
- {\edef\!!stringa{\the\globaldefs}%
- \ifnum\globaldefs#10
- \globaldefs-\globaldefs
- \fi
- \advance\globaldefs #21
- \setevalue{@gd@\the\globaldefs}{\!!stringa}}
-
-\def\dostopglobaldefs
- {\doifdefinedelse{@gd@\the\globaldefs}
- {\globaldefs\getvalue{@gd@\the\globaldefs}\relax}
- {\globaldefs\zerocount}}
-
-\def\startlocal {\dostartglobaldefs>-}
-\def\stoplocal {\dostopglobaldefs}
-\def\startglobal {\dostartglobaldefs<+}
-\def\stopglobal {\dostopglobaldefs}
-
-\def\complexstart[#1]{\bgroup\getvalue{\e!start#1}}
-\def\complexstop [#1]{\getvalue{\e!stop #1}\egroup}
-
-\let\simplestart\bgroup
-\let\simplestop \egroup
-
-\definecomplexorsimple\start
-\definecomplexorsimple\stop
-
-\def\dododefinestartstop[#1][#2]% todo: use indirect commands
- {\getparameters
- [\??be#1]
- [\c!before=,
- \c!after=,
- \c!inbetween=,
- \c!commands=,
- \c!style=,
- #2]%
- \unexpanded\setvalue{#1}%
- {\groupedcommand
- {\getvalue{\??be#1\c!commands}%
- \dostartattributes{\??be#1}\c!style\c!color}
- {\dostopattributes
- \getvalue{\??be#1\c!inbetween}}}%
- \setvalue{\e!start#1}%
- {\getvalue{\??be#1\c!before}%
- \bgroup
- \getvalue{\??be#1\c!commands}%
- \dostartattributes{\??be#1}\c!style\c!color\empty}%
- \setvalue{\e!stop#1}%
- {\dostopattributes
- \egroup
- \getvalue{\??be#1\c!after}}}
-
-\def\dodefinestartstop[#1][#2]%
- {\def\docommand##1{\dododefinestartstop[##1][#2]}%
- \processcommalist[#1]\docommand}
-
-\def\definestartstop
- {\dodoubleargument\dodefinestartstop}
-
-\def\dosetupstartstop[#1][#2]%
- {\def\docommand##1{\getparameters[\??be##1][#2]}%
- \processcommalist[#1]\docommand}
-
-\def\setupstartstop
- {\dodoubleargument\dosetupstartstop}
-
-% \docommand kan niet worden gebruikt omdat deze macro
-% soms lokaal wordt gebruikt
-
-% te zijner tijd:
-%
-% \definevariable {pc} % ProtectedCommand
-%
-% \def\executeprotected#1%
-% {\csname\??pc\string#1\endcsname}
-%
-% \def\defineprotected#1#2%
-% {\expandafter\def\csname\??pc\string#2\endcsname}
-%
-% \def\defineunprotected#1%
-% {\def#1}
-%
-% \def\doprotected%
-% {\ifx\next\define
-% \let\next=\defineprotected
-% \else
-% \let\next=\executeprotected
-% \fi
-% \next}
-%
-% \def\unexpanded%
-% {\futurelet\next\doprotected}
-%
-% \unexpanded\define\ziezo{ziezo}
-%
-% \unexpanded\ziezo
-
-\def\complexdefine[#1]#2#3%
- {\ifx#2\undefined
- \else
- \showmessage\m!systems4{\string#2}%
- \fi
- \ifcase0#1\def#2{#3}%
- \or\def#2##1{#3}%
- \or\def#2##1##2{#3}%
- \or\def#2##1##2##3{#3}%
- \or\def#2##1##2##3##4{#3}%
- \or\def#2##1##2##3##4##5{#3}%
- \or\def#2##1##2##3##4##5##6{#3}%
- \or\def#2##1##2##3##4##5##6##7{#3}%
- \or\def#2##1##2##3##4##5##6##7##8{#3}%
- \or\def#2##1##2##3##4##5##6##7##8##9{#3}%
- \else\def#2{#3}%
- \fi}
-
-\definecomplexorsimpleempty\define
-
-\unexpanded\def\macroname#1% brrr
- {\executeifdefined{#1}\empty}
-
-\def\usecommands#1%
- {\bgroup
- \def\docommand##1{\setbox0\hbox{\getvalue{\string##1}##1}}%
- \processcommalist[#1]\docommand
- \egroup}
-
-\newif\ifforcefileexpansion % handy for document level overload
-
-%D The next implementation is about 4 times as faster than a
-%D processaction alternative on an string of average length.
-%D Since this feature is used in XML processing, it made sense
-%D to support this faster alternative. It's installable as well.
-
-\def\installexpander#1#2#3% changed, no longer \convert..\to...
- {\setvalue{\s!do\c!expansion#1l}{#2}%
- \setvalue{\s!do\c!expansion#1g}{#3}}%
-
-% \convertexpanded is obsolete
-
-\long\def\doconvertexpanded#1#2#3% #4 % [l|g] \cs {kind} {data}
- {\csname % that we assign all exp a value
- \s!do\c!expansion
- \ifforcefileexpansion
- \v!yes
- \else\ifcsname\s!do\c!expansion#3#1\endcsname
- #3%
- \else
- \s!default
- \fi\fi
- #1%
- \endcsname#2}% #3
-
-\long\def\defconvertexpanded {\doconvertexpanded l}
-\long\def\gdefconvertexpanded{\doconvertexpanded g}
-
-\installexpander\v!command \defconvertedcommand \gdefconvertedcommand
-\installexpander\s!default \defconvertedargument \gdefconvertedargument
-\installexpander\empty \defconvertedargument \gdefconvertedargument
-\installexpander\v!no \defconvertedargument \gdefconvertedargument
-\installexpander\v!yes \defconvertedmeaning \gdefconvertedmeaning
-\installexpander\v!yes \defconvertedmeaning \gdefconvertedmeaning
-\installexpander\v!strict \defreducedargument \gdefreducedargument
-\installexpander {utf} \defreducedtoutf \gdefreducedtoutf
-
-%installexpander {xml} {see xtag-ext}
-
-\def\dodefconvertedmeaning#1#2#3% watch the double expansion !
- {\bgroup
- \honorunexpanded
- \convertencodedtokens % can be overloaded
- \xdef\@@globalexpanded{#3}%
- \xdef\@@globalexpanded{\@@globalexpanded}%
- \egroup
- #1#2\@@globalexpanded}
-
-\def\defconvertedmeaning {\dodefconvertedmeaning\defconvertedcommand}
-\def\gdefconvertedmeaning{\dodefconvertedmeaning\gdefconvertedcommand}
-
-\def\dodefreducedargument#1#2#3%
- {\begingroup
- \reducetocoding[raw]%
- \edef\ascii{#3}%
- \expandafter\endgroup\expandafter#1\expandafter#2\expandafter{\ascii}}
-
-\def\defreducedargument {\dodefreducedargument\edef}
-\def\gdefreducedargument{\dodefreducedargument\xdef}
-
-% \setupindex[expansion=utf]\index{\eacute}
-
-\def\dodefreducedtoutf#1#2#3%
- {\begingroup
- \reducetocoding[uc]%
- \let\uchar\uchartoutf
- \let\unicodechar\numbertoutf
- \edef\ascii{#3}%
- \expandafter\endgroup\expandafter#1\expandafter#2\expandafter{\ascii}}
-
-\def\defreducedtoutf {\dodefreducedtoutf\edef}
-\def\gdefreducedtoutf{\dodefreducedtoutf\xdef}
-
-% old syntax:
-
-\def\convertmeaning#1\to#2% watch the double expansion !
- {\bgroup
- \honorunexpanded
- \convertencodedtokens % can be overloaded
- \xdef\@@globalexpanded{#1}%
- \xdef\@@globalexpanded{\@@globalexpanded}%
- \egroup
- \defconvertedcommand#2\@@globalexpanded}
-
-\def\reduceargument#1\to#2%
- {\begingroup
- \reducetocoding[raw]%
- \edef\ascii{#1}%
- \expandafter\endgroup\expandafter\edef\expandafter#2\expandafter{\ascii}}
-
-\def\reducetoutf#1\to#2%
- {\begingroup
- \reducetocoding[uc]%
- \let\uchar\uchartoutf
- \let\unicodechar\numbertoutf
- \edef\ascii{#1}%
- \expandafter\endgroup\expandafter\edef\expandafter#2\expandafter{\ascii}}
-
-% \setvalue{statevalue\v!stop }{0}
-% \setvalue{statevalue\v!start }{1}
-% \setvalue{statevalue\v!normaal}{2}
-% \setvalue{statevalue\v!leeg }{3}
-% \setvalue{statevalue\v!geen }{4}
-%
-% \def\setcurrentstate#1%
-% {\chardef\currentstate=0\getvalue{statevalue\getvalue{#1\c!state}\relax}
-%
-% \ifcase\currentstate ...
-
-\def\redo{\dorepeat} % [n*10], kind of obsolete
-
-% obsolete, use \dorecurse instead
-%
-% \def\herhaler {\repeater}
-% \def\herhaalmetcommando {\dorepeatwithcommand}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-two.mkii b/Master/texmf-dist/tex/context/base/mkii/core-two.mkii
deleted file mode 100644
index 235be988edc..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/core-two.mkii
+++ /dev/null
@@ -1,206 +0,0 @@
-%D \module
-%D [ file=core-two, % moved from core-uti
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Two Pass Data,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / Two Pass Data}
-
-%D This is a rather old mechanism which has not changed much over
-%D time, apart from adding a few more selectors. This code used
-%D to be part of \type {core-uti}. The following examples demonstrate
-%D the interface.
-%D
-%D \startbuffer
-%D \definetwopasslist{test-1}
-%D
-%D \gettwopassdatalist{test-1} [\twopassdatalist=]
-%D \checktwopassdata {test-1} [\twopassdata=]
-%D \checktwopassdata {test-1} [\twopassdata=]
-%D \gettwopassdata {test-1} [\twopassdata=]
-%D \gettwopassdata {test-1} [\twopassdata=]
-%D
-%D \definetwopasslist{test-2}
-%D
-%D \lazysavetwopassdata{test-2}{1}{x}
-%D \lazysavetwopassdata{test-2}{2}{y}
-%D \lazysavetwopassdata{test-2}{3}{z}
-%D
-%D \gettwopassdatalist{test-2} [\twopassdatalist=x,y,z]
-%D \checktwopassdata {test-2} [\twopassdata=x]
-%D \checktwopassdata {test-2} [\twopassdata=x]
-%D \gettwopassdata {test-2} [\twopassdata=x]
-%D \gettwopassdata {test-2} [\twopassdata=y]
-%D \gettwopassdata {test-2} [\twopassdata=z]
-%D \gettwopassdata {test-2} [\twopassdata=]
-%D
-%D \definetwopasslist{test-3}
-%D
-%D \lazysavetaggedtwopassdata{test-3}{1}{x}{a}
-%D \lazysavetaggedtwopassdata{test-3}{2}{y}{b}
-%D \lazysavetaggedtwopassdata{test-3}{3}{z}{c}
-%D
-%D \findtwopassdata{test-3}{x} [\twopassdata=a]
-%D \findtwopassdata{test-3}{y} [\twopassdata=b]
-%D \findtwopassdata{test-3}{z} [\twopassdata=c]
-%D \findtwopassdata{test-3}{w} [\twopassdata=]
-%D
-%D \definetwopasslist{test-4}
-%D
-%D \lazysavetwopassdata{test-4}{1}{A}
-%D \lazysavetwopassdata{test-4}{2}{B}
-%D \lazysavetwopassdata{test-4}{3}{C}
-%D
-%D \getfirsttwopassdata{test-4} [\twopassdata=A]
-%D \getlasttwopassdata {test-4} [\twopassdata=C]
-%D \getfirsttwopassdata{test-4} [\twopassdata=A]
-%D \getlasttwopassdata {test-4} [\twopassdata=C]
-%D \getfromtwopassdata {test-4}{1} [\twopassdata=A]
-%D \getfromtwopassdata {test-4}{3} [\twopassdata=C]
-%D \getfromtwopassdata {test-4}{2} [\twopassdata=B]
-%D \stopbuffer
-%D
-%D \getbuffer \typebuffer
-
-\unprotect
-
-\let\alltwopasslists\empty
-\let\twopassentry \gobblethreearguments % permits loading a MK II file
-\let\twopassdata \empty
-\let\twopassdatalist\empty
-
-\newif\iftwopassdatafound
-
-\addutilityreset{twopassentries}
-
-\def\immediatesavetwopassdata #1#2#3{\immediatewriteutilitycommand{\twopassentry{#1}{#2}{#3}}}
-\def\savetwopassdata #1#2#3{\writeutilitycommand{\twopassentry{#1}{#2}{#3}}}
-\def\lazysavetwopassdata #1#2#3{\expanded{\writeutilitycommand{\noexpand\twopassentry{#1}{#2}{#3}}}} % expanded !
-\def\savetaggedtwopassdata #1#2#3#4{\immediatewriteutilitycommand{\twopassentry{#1}{#2}{#3::#4}}}
-\def\lazysavetaggedtwopassdata#1#2#3#4{\expanded{\writeutilitycommand{\noexpand\twopassentry{#1}{#2}{#3::#4}}}} % expanded !
-
-\def\resettwopassentries
- {\let\twopassentry\gobblethreearguments}
-
-\def\settwopassentries
- {\def\twopassentry##1{\executeifdefined{@@##1\s!pass}\gobbletwoarguments}}
-
-\resettwopassentries
-
-\def\appendtwopasselement#1#2#3% can sometimes become a large list
- {%\debuggerinfo{\m!systems}{twopass data #1 - #2 = #3}%
- \expandafter\xdef\csname#1:\s!list\endcsname
- {\@EA\ifx\csname#1:\s!list\endcsname\empty \else
- \csname#1:\s!list\endcsname,\fi#3}}
-
-\def\dodefinetwopasslist#1%
- {\doifundefined{#1:\s!list}
- {%\debuggerinfo\m!systems{defining twopass class #1}%
- \doglobal\addutilityreset{#1\s!pass}%
- \setgvalue{\s!set #1\s!pass}{\dosettwopasslist {#1}}%
- \setgvalue{\s!reset#1\s!pass}{\doresettwopasslist{#1}}%
- \getvalue {\s!reset#1\s!pass}}}
-
-\def\definetwopasslist#1%
- {\expanded{\dodefinetwopasslist{#1}}%
- \doglobal\addtocommalist{#1}\alltwopasslists}
-
-\def\dosettwopasslist#1%
- {\letgvalue{\s!set#1\s!pass}\gobbletwoarguments
- \setgvalue{@@#1\s!pass}{\appendtwopasselement{#1}}}
-
-\def\doresettwopasslist#1%
- {\letgvalue{@@#1\s!pass}\gobbletwoarguments}
-
-\def\doloadtwopassdata#1%
- {\doifundefined{#1:\s!list}
- {\startnointerference
- \letgvalueempty{#1:\s!list}%
- \protectlabels
- \doutilities{twopassentries,#1\s!pass}\jobname\empty\relax\relax
- \stopnointerference}}
-
-\def\loadtwopassdata
- {\ifx\alltwopasslists\empty\else
- \processcommacommand[\alltwopasslists]\doloadtwopassdata
- \globallet\alltwopasslists\empty
- \fi}
-
-\def\dogettwopassdata[#1,#2]#3#4%
- {\edef\twopassdata{#1}%
- \ifx\twopassdata\empty
- \twopassdatafoundfalse
- \let\twopassdata\empty
- \else
- \twopassdatafoundtrue
- \ifcase#4\or\setxvalue{#3:\s!list}{#2}\fi
- \fi}
-
-\def\gettwopassdata#1%
- {\loadtwopassdata \@EAEAEA\dogettwopassdata\@EA\@EA\@EA[\csname#1:\s!list\endcsname,]{#1}\plusone}
-
-\def\checktwopassdata#1%
- {\loadtwopassdata \@EAEAEA\dogettwopassdata\@EA\@EA\@EA[\csname#1:\s!list\endcsname,]{#1}\zerocount}
-
-\def\findtwopassdata#1#2%
- {\loadtwopassdata \expanded{\dofindtwopassdata{#1}{#2}}}
-
-\def\dofindtwopassdata#1#2%
- {\def\dodofindtwopassdata[##1,##2#2::##3,##4]{\edef\twopassdata{##3}}%
- \@EAEAEA\dodofindtwopassdata\@EA\@EA\@EA[\@EA\@EA\@EA,\csname#1:\s!list\endcsname,#2,#2::,]%
- \ifx\twopassdata\empty
- \twopassdatafoundfalse
- \else
- \twopassdatafoundtrue
- \fi}
-
-\let\getfirsttwopassdata\checktwopassdata
-
-\def\getlasttwopassdata#1%
- {\loadtwopassdata
- \scratchcounter\zerocount
- \@EAEAEA\rawprocesscommalist\@EA\@EA\@EA[\csname#1:\s!list\endcsname]\dogetlasttwopassdata
- \edef\noftwopassitems{\the\scratchcounter}%
- \iftwopassdatafound\else
- \let\twopassdata\empty
- \fi}
-
-\def\dogetlasttwopassdata#1%
- {\edef\nexttwopassdata{#1}%
- \ifx\nexttwopassdata\empty \else
- \let\twopassdata\nexttwopassdata
- \advance\scratchcounter \plusone
- \twopassdatafoundtrue
- \fi}
-
-\def\getfromtwopassdata#1#2%
- {\loadtwopassdata
- \@EAEAEA\getfromcommalist\@EA\@EA\@EA[\csname#1:\s!list\endcsname][#2]%
- \ifx\commalistelement\empty
- \twopassdatafoundfalse
- \let\twopassdata\empty
- \else
- \twopassdatafoundtrue
- \let\twopassdata\commalistelement
- \fi}
-
-\def\gettwopassdatalist#1%
- {\loadtwopassdata
- \letcscsname\twopassdatalist\csname#1:\s!list\endcsname
- \ifx\twopassdatalist\relax\let\twopassdatalist\empty\fi}
-
-\def\gettwopassdatalist
- {\getnamedtwopassdatalist\twopassdatalist}
-
-\def\doifelseintwopassdata#1#2% tag dat
- {\gettwopassdatalist{#1}%
- \expanded{\doifinsetelse{#2}{\twopassdatalist}}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-uti.mkii b/Master/texmf-dist/tex/context/base/mkii/core-uti.mkii
deleted file mode 100644
index bd2fa46a0ff..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/core-uti.mkii
+++ /dev/null
@@ -1,349 +0,0 @@
-%D \module
-%D [ file=core-uti,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Utility File Handling,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / Utility File Handling}
-
-\unprotect
-
-% todo : safe lan etc too
-% todo : load all commands at once (tok)
-% todo : merge status info patch into tui file (language, encoding, etc),
-
-% Utility-file
-%
-% De onderstaande macro's ondersteunen het gebruik van de
-% zogeheten utility-file. Alle extern onder te brengen
-% informatie wordt opgeslagen in de file \jobname.tui, tenzij
-% er selectief pagina's worden gezet. In dat geval wordt de
-% file \jobname.tmp gebruikt. Informatie wordt ingelezen uit
-% de file \jobname.tuo, welke door TeXUtil wordt aangemaakt.
-
-\edef\utilityversion{1998.07.07} % was: 1996.03.15 % status variables
-\edef\utilityversion{1998.12.20} % was: 1998.07.07 % index attributes
-\edef\utilityversion{2003.07.19} % was: 1998.12.20 % object pages
-\edef\utilityversion{2006.06.23} % was: 2003.07.19 % -- instead of :
-\edef\utilityversion{2006.09.21} % pt in pos
-\edef\utilityversion{2008.10.14} % moved more to lua in mkiv
-
-% Bepaalde commando's worden als string weggeschreven. Deze
-% zijn aan het eind van deze file gedefinieerd.
-
-% Om een opbouw van spaties te voorkomen (???) moet ^^M een
-% andere betekenis krijgen:
-%
-% \catcode`\^^M=14 (comment)
-%
-% read file
-%
-% \catcode`\^^M=5 (end of line)
-
-\newwrite\utility@tui
-\newif\ifutilitydone
-
-\ifx\sectionseparator\undefined \def\sectionseparator{-} \fi
-
-\def\@@utilityerrormessage
- {\showmessage\m!systems8\empty
- \globallet\@@utilityerrormessage\relax}
-
-\def\thisisutilityversion#1%
- {\doifelse\utilityversion{#1}%
- {\checksectionseparator}
- {\@@utilityerrormessage\resetutilities\endinput}}
-
-\def\checksectionseparator % catches backward compatibility conflict
- {}% \doifnot\sectionseparator:\endinput} % this dependency may go in a few years
-
-\def\dosplitofffoliopart[#1--#2--#3]{#3}
-
-\def\thisissectionseparator#1%
- {\bgroup
- \globallet\checksectionseparator\relax
- \defconvertedcommand \asciia\sectionseparator
- \defconvertedargument\asciib{#1}%
- \expanded{\gdef\noexpand\dosplitofffoliopart[####1\sectionseparator
- \sectionseparator####2\sectionseparator\sectionseparator####3]{####3}}%
- \ifx\asciia\asciib
- \egroup
- \else
- \egroup
- % todo \@@utilityerrormessage
- \resetutilities
- \endinput
- \fi}
-
-\def\writeutility {\write\utility@tui}
-\def\writeutilitycommand#1{\write\utility@tui{c \string#1}}
-
-% less tokens
-%
-% \def\immediatewriteutility {\immediate\writeutility}
-% \def\immediatewriteutilitycommand{\immediate\writeutilitycommand}
-%
-% more flexible (for overloading)
-
-\def\immediatewriteutility {\immediate\write\utility@tui}
-\def\immediatewriteutilitycommand#1{\immediate\write\utility@tui{c \string#1}}
-
-% as in:
-
-\def\cwriteutility#1%
- {\write\utility@tui{\noexpand\checkedutility{\number\nofshipouts}{#1}}}
-
-\def\cwriteutilitycommand#1%
- {\write\utility@tui{\noexpand\checkedutility{\number\nofshipouts}{c \string#1}}}
-
-\let\checkedutility\secondoftwoarguments
-
-\def\docheckedutility#1#2{\ifnum#1=\nofshipouts#2\else\letterpercent\fi}
-
-\prependtoks
- \let\checkedutility\docheckedutility
-\to \everybeforeshipout
-
-% Better use marks.
-
-\newtoks \everyopenutilities
-\newtoks \everycloseutilities
-\newtoks \everycheckutilities
-
-\def\openutilities {\the\everyopenutilities } % \global\everyopenutilities\emptytoks
-\def\closeutilities{\the\everycloseutilities}
-\def\checkutilities{\the\everycheckutilities}
-
-\appendtoks
- \let\writeutility \cwriteutility
- \let\writeutilitycommand \cwriteutilitycommand
- %\let\immediatewriteutility \cimmediatewriteutility
- %\let\immediatewriteutilitycommand\cimmediatewriteutilitycommand
- \let\checkutilities \relax
-\to \everycheckutilities
-
-\appendtoks
- \immediate\openout\utility@tui\jobname.\f!inputextension
- \immediatewriteutilitycommand{\thisissectionseparator{\sectionseparator}}% for the moment
- \immediatewriteutilitycommand{\thisisutilityversion {\utilityversion }}% in this order
-\to \everyopenutilities
-
-\appendtoks
-% \immediate\closeout\utility@tui % niet echt nodig
- \reportutilityproblems
- % should be a message :
- \let\writeutilitycommand \gobbleoneargument
- \let\writeutility \gobbleoneargument
- \let\immediatewriteutilitycommand\gobbleoneargument
- \let\immediatewriteutility \gobbleoneargument
-\to \everycloseutilities
-
-% \def\reopenutilities
-% {\immediate\closeout\utility@tui
-% \openutilities}
-
-\def\abortutilitygeneration
- {\immediatewriteutilitycommand\utilitygenerationaborted
- \immediatewriteutility{q {quit}}}
-
-\def\utilitygenerationaborted
- {\showmessage\m!systems{21}\empty
- \globallet\utilitygenerationaborted\endinput
- \gdef\reportutilityproblems{\showmessage\m!systems{22}\empty}%
- \endinput}
-
-\def\savecurrentvalue#1#2%
- {\immediatewriteutilitycommand{\initializevariable\string#1{#2}}}
-
-\let\initializevariable\gdef
-
-\appendtoks
- \globallet\initializevariable\gobbletwoarguments
-\to \everyafterutilityread
-
-\let\reportutilityproblems\relax
-
-\newtoks\utilityresetlist
-
-\def\addutilityreset#1%
- {\@EA\appendtoks\csname\s!reset#1\endcsname\to\utilityresetlist}
-
-\def\resetutilities
- {\the\utilityresetlist}
-
-% #1=type #2=file #3=melding #4=voor #5=na
-%
-% Er wordt gegroepeerd. Als binnen een lijst (bijvoorbeeld) de
-% \leftskip is aangepast, maar nog geen \par is gegeven, dan
-% geldt buiten de groep de oude \leftskip. Aan #5 kan dan
-% ook \par worden meegegeven om de paragraaf af te sluiten.
-
-\newif\ifdoinpututilities
-\newif\ifunprotectutilities % voor't geval er \v!xxxxxx's zijn
-
-\def\currentutilityfilename{\jobname}
-
-% we need to pop and push, else problems with reading
-% utility files (toc) in xml mode and (e.g.) in a toc
-% entry doing a doifmode
-%
-% the following is not ok because we have no way to signal
-% xml content (yet), so for the moment we use this:
-
-\appendtoks
- \ifprocessingXML
- \processingXMLfalse
- \enableXML
- \catcode`\\=\@@escape
- \catcode`\{=\@@begingroup
- \catcode`\}=\@@endgroup
- \catcode`\%=\@@comment\relax
- \fi
-\to \everybeforeutilityread
-
-% \edef\testbytesequence
-% {\rawcharacter{7}%
-% \rawcharacter{27}%
-% %rawcharacter{227}% invalid in xetex, which expects utf
-% \rawcharacter{195}\rawcharacter{128}} % valid utf code
-%
-% \def\thisisbytesequence#1%
-% {\ifx\testbytesequence\empty\else
-% \defconvertedcommand\testbytesequence\testbytesequence
-% \defconvertedargument\ascii{#1}%
-% \ifx\testbytesequence\ascii \else
-% \writestatus\m!systems{possible problem with 8 bit output}%
-% \fi
-% \fi
-% \global\let\thisisbytesequence\gobbleoneargument}
-%
-% \ifnum\texengine=\xetexengine
-% \let\testbytesequence\empty
-% \fi
-%
-% \appendtoks
-% \immediatewriteutilitycommand{\thisisbytesequence{\testbytesequence}}%
-% \to \everyopenutilities
-
-\let\testbytesequence \empty % keep this
-\let\thisisbytesequence\gobbleoneargument % keep this
-
-\long\def\doutilities#1#2#3#4#5% % introduceren in utility file
- {\resetutilities
- % more than one utility thing can be handled in one pass,
- % for instance lists, so we process ##1 as list
- \def\douticommand##1{\csname\s!set##1\endcsname}%
- \processcommacommand[#1]\douticommand
- \begingroup
- \def\currentutilityfilename{#2}%
- \notesenabledfalse
- \doinpututilitiestrue
- \global\utilitydonefalse
- \pushendofline % geeft problemen zodra andere file wordt ingelezen
- \pushcatcodetable
- \setcatcodetable\ctxcatcodes
- \ifunprotectutilities % nog nodig ?
- \unprotect
- \fi
- #4%
- \the\everybeforeutilityread
- \readjobfile{#2.\f!outputextension}\donothing\donothing
- \the\everyafterutilityread
- \popcatcodetable
- #5%
- \relax
- \ifunprotectutilities
- \protect
- \fi
- \popendofline
- \ifutilitydone\else
- \doifsomething{#3}
- {\showmessage\m!systems9{{#3}}%
- \doifconcepttracing
- {\blank
- \setmessagetext\m!systems9{{#3}}%
- \type{[\currentmessagetext]}%
- \blank}}%
- \fi
- \endgroup}
-
-% Default-instellingen (verborgen)
-
-\prependtoks \resetutilities \to \everyjob
-
-% Experiment
-%
-% \installprogram{Hello World}
-% \installprogram[hw]{Hello World}
-% \installedprogram[hw]
-
-\def\installprogram
- {\dosingleempty\doinstallprogram}
-
-\def\doinstallprogram[#1]#2%
- {\doifelsenothing{#1}
- {\dodoinstallprogram{#2}}
- {\setvalue{\??up#1}{\dodoinstallprogram{#2}}}}
-
-\def\dodoinstallprogram#1%
- {\immediatewriteutility{e p {#1}}}
-
-\def\installedprogram[#1]%
- {\getvalue{\??up#1}}
-
-% \writeplugindata{texutil}{{alpha}}
-% \writeplugindata{texutil}{{beta}}
-% \writeplugindata{texutil}{{gamma}}
-% \writeplugindata{texutil}{{delta}}
-%
-% \loadplugindata {plugintest}
-
-\def\immediatewriteplugindata#1#2%
- {\immediatewriteutility{p u {#1} #2}}
-
-\def\writeplugindata#1#2%
- {\writeutility{p u {#1} #2}}
-
-\def\loadplugindata#1%
- {\doutilities{#1}\jobname\empty\relax\relax}
-
-% \plugincommand{\command{}{}{}}
-%
-% this way we can catch undefined commands
-
-\long\def\plugincommand#1%
- {\doplugincommand#1\relax}
-
-\long\def\doplugincommand#1%
- {\ifx#1\undefined
- \expandafter\noplugincommand
- \else
- \expandafter#1%
- \fi}
-
-\long\def\noplugincommand#1\relax
- {}
-
-% \addutilityreset{plugintest}
-%
-% \def\resetplugintest{\let\plugintest\gobbletwoarguments}
-% \def\setplugintest {\let\plugintest\writestatus}
-%
-% \installplugin
-% {plugintest}
-% {\let\plugintest\gobbletwoarguments}
-% {\let\plugintest\writestatus}
-
-\long\def\installplugin#1#2#3%
- {\addutilityreset {#1}%
- \long\setvalue{\s!reset#1}{#2}%
- \long\setvalue{\s!set #1}{#3}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/core-var.mkii b/Master/texmf-dist/tex/context/base/mkii/core-var.mkii
deleted file mode 100644
index 55c587fbfaf..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/core-var.mkii
+++ /dev/null
@@ -1,286 +0,0 @@
-%D \module
-%D [ file=core-var,
-%D version=1998.02.21,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Variables,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / Variables}
-
-\unprotect
-
-%D We introduce a couple of variables that are used all over
-%D \CONTEXT. Alternatively we could define them in each module
-%D but as they are part of the bigger picture we prefer to do
-%D it here.
-
-%D \macros
-%D {every...}
-%D
-%D A few every's. Some are only used in \MKII\ or \MKIV.
-
-%D Output routine:
-
-\newtoks \everybeforeoutput
-\newtoks \everyafteroutput
-
-%D Shipout:
-
-\newtoks \everyshipout
-\newtoks \everybeforeshipout
-\newtoks \everyaftershipout
-\newtoks \everyfirstshipout
-\newtoks \everylastshipout
-
-%D End of run:
-
-\newtoks \everybye
-\newtoks \everygoodbye
-\newtoks \everynotabene
-
-%D Document
-
-\newtoks \everysetupdocument
-\newtoks \everyendoftextbody
-
-\newtoks \everystarttext
-\newtoks \everystoptext
-
-%D Purity:
-
-\newtoks \everyforgetall
-\newtoks \everycleanupfeatures
-
-\def\cleanupfeatures{\the\everycleanupfeatures}
-\def\forgetall {\the\everyforgetall}
-
-%D Page building:
-
-\newtoks \everybeforepagebody
-\newtoks \everyafterpagebody
-
-\let \everypagebody \everybeforepagebody % backward compatible
-
-%D Multipass:
-
-\newtoks \everybeforeutilityread
-\newtoks \everyafterutilityread
-
-%D Floats:
-
-\newtoks \everyinsidefloat
-
-%D Sectioning:
-
-\newtoks \everyheadstart
-
-%D Par building (experimental, used in xml <p> .. </p>)
-
-\newtoks \everybeginofpar
-\newtoks \everyendofpar
-%newtoks \everyparflush
-
-\def\bpar{\the\everybeginofpar\ignorespaces} % may interfere with \everypar
-\def\epar{\ifhmode\removeunwantedspaces\the\everyendofpar\fi} % test prevents problems with \bpar\epar
-
-%D Lists:
-
-\newtoks \everylistentry
-\newtoks \everysavesortkeys
-
-%D Marks:
-
-\newtoks \everymarking
-
-%D Fonts:
-
-\newtoks \everyfont
-\newtoks \everyglobalbodyfont
-\newtoks \everydefinedfont
-
-\newevery \everybodyfont \EveryBodyFont
-\newevery \everyfontswitch \EveryFontSwitch
-
-%D Math:
-
-\newtoks \everybeforedisplayformula
-\newtoks \everymathematics
-
-\prependtoks \the\everymathematics \to \everymath
-\prependtoks \the\everymathematics \to \everydisplay
-
-%D Tables
-
-\newtoks \everytable
-
-%D State mess:
-
-\newtoks \everypushsomestate
-\newtoks \everypopsomestate
-
-\def\pushsomestates{\the\everypushsomestate}
-\def\popsomestates {\the\everypopsomestate }
-
-%D More generic (used to be pushcolor etc)
-
-\newtoks\everypushproperties
-\newtoks\everypopproperties
-\newtoks\everypopsplitproperties
-
-\newtoks\everystarttextproperties
-\newtoks\everystoptextproperties
-
-\def\pushproperties {\the\everypushproperties}
-\def\popproperties {\the\everypopproperties}
-\def\popsplitproperties {\the\everypopsplitproperties}
-
-\def\starttextproperties{\the\everystarttextproperties}
-\def\stoptextproperties {\the\everystoptextproperties}
-
-%D This is pretty important (esp since we now ignore shipouts).
-%D Actually we should nil all writes, marks, specials.
-
-\appendtoks \globallet\popproperties \relax \to \everylastshipout
-\appendtoks \globallet\popsplitproperties\relax \to \everylastshipout
-
-%D \macros
-%D {defineinputmode,setinputmode}
-%D
-%D New. Some work needs to be done.
-
-% not in mkiv
-
-\def\defineinputmode[#1]{\@EA\newtoks\csname every#1inputmode\endcsname}
-\def\setinputmode [#1]{\the\executeifdefined{every#1inputmode}\emptytoks}
-
-\defineinputmode [TEX]
-\defineinputmode [XML]
-
-\setinputmode [TEX]
-
-%D \macros
-%D {trialtypesetting}
-%D
-%D We disable trial typesetting in the output routine,
-%D just to be sure.
-
-\newif\iftrialtypesetting
-
-\prependtoks \trialtypesettingfalse \to \everybeforepagebody
-
-%D \macros
-%D {ifinpagebody,ifinsidecolumns,ifdoublesided,ifsinglesided}
-
-\newif \ifinpagebody
-\newif \ifinsidecolumns
-\newif \ifdoublesided \doublesidedfalse
-\newif \ifsinglesided \singlesidedtrue
-\newif \ifinsidefloat
-\newif \ifdoingblocks
-\newif \ifgridsnapping
-
-%D \macros
-%D {ifprocessingXML}
-%D
-%D We need this one even if no \XML\ is supported.
-
-\newif\ifprocessingXML % old way
-
-%D \macros
-%D {ifproductionrun}
-%D
-%D This boolean can be used to bypass certain
-%D initializations.
-
-\ifx\protectionlevel\undefined \newcount\protectionlevel \fi
-
-\newif\ifproductionrun
-
-\appendtoks \productionruntrue \to \everydump
-
-\appendtoks \ifcase\protectionlevel\else\reportunprotection\fi \to \everydump
-
-%D \macros
-%D {everyboxedcontent, ifboxedcontent,
-%D startboxedcontent, stopboxedcontent}
-%D
-%D This one is relatively new and will be used as a more
-%D robust test for inner situations.
-
-\newif \ifboxedcontent
-\newtoks\everyboxedcontent
-
-\appendtoks \boxedcontenttrue \to \everyboxedcontent
-
-\def\startboxedcontent{\bgroup\the\everyboxedcontent}
-\let\stopboxedcontent \egroup
-
-%D \macros
-%D {fastmode,silentmode}
-%D
-%D These commands are obsolete.
-
-\let\fastmode \relax
-\let\silentmode\relax
-
-%D \macros
-%D {defineselector,setupselector}
-%D
-%D \starttyping
-%D \defineselector[caption][max=2,n=2]
-%D
-%D \start
-%D \setupselector[caption][n=1]
-%D \placelist[figure][criterium=all]
-%D \stop
-%D
-%D \starttext
-%D \placefigure
-%D {\select{caption}{zapf}{\input zapf \relax}}
-%D {}
-%D \stoptext
-%D \stoptyping
-
-\def\defineselector{\dodoubleargument\dodefineselector}
-\def\setupselector {\dodoubleargument\dosetupselector}
-
-\def\dodefineselector[#1][#2]{\getparameters[\??sx#1][\c!max=2,\c!n=1,#2]}
-\def\dosetupselector [#1][#2]{\getparameters[\??sx#1][#2]}
-
-\unexpanded\def\select#1%
- {\filterfromnext
- {\executeifdefined{\??sx#1\c!max}1}
- {\executeifdefined{\??sx#1\c!n }1}}
-
-%D We store some original meanings, maybe in \type
-%D {math-ini}.
-
-\let\normalat \at
-\let\normalin \in
-\let\normalfrom \from
-%let\normalover \over
-\let\normalabout\about
-
-%D Add-ons:
-
-\let\startlayoutcomponent\gobbletwoarguments
-\let\stoplayoutcomponent \relax
-
-%D Concepts:
-
-\chardef\conceptmode\zerocount
-
-\def\doifconcepttracing
- {\ifnum\conceptmode>\plustwo
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-032.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-032.mkii
deleted file mode 100644
index e3c24271e55..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-032.mkii
+++ /dev/null
@@ -1,82 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-% 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
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-037.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-037.mkii
deleted file mode 100644
index a2aad46a575..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-037.mkii
+++ /dev/null
@@ -1,276 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\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/mkii/enco-acc.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-acc.mkii
deleted file mode 100644
index 7484fd50ee2..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-acc.mkii
+++ /dev/null
@@ -1,139 +0,0 @@
-%D \module
-%D [ file=enco-acc,
-%D version=2000.20.12, % split from base file
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Composed Characters Commands,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Although it is technically possible to redefine the commands
-%D that are responsible for building composed characters, this
-%D is seldom needed, since they map onto named glyphs. The
-%D meaning of these names glyphs may change, although their
-%D visual appearance seldom will.
-
-\startencoding[default]
-
-\defineaccent ^ A {\Acircumflex} \defineaccent ^ a {\acircumflex}
-\defineaccent ^ C {\Ccircumflex} \defineaccent ^ c {\ccircumflex}
-\defineaccent ^ E {\Ecircumflex} \defineaccent ^ e {\ecircumflex}
-\defineaccent ^ G {\Gcircumflex} \defineaccent ^ g {\gcircumflex}
-\defineaccent ^ H {\Hcircumflex} \defineaccent ^ h {\hcircumflex}
-\defineaccent ^ I {\Icircumflex} \defineaccent ^ i {\icircumflex} \defineaccent ^ {\i} {\icircumflex}
-\defineaccent ^ J {\Jcircumflex} \defineaccent ^ j {\jcircumflex} \defineaccent ^ {\j} {\jcircumflex}
-\defineaccent ^ O {\Ocircumflex} \defineaccent ^ o {\ocircumflex}
-\defineaccent ^ S {\Scircumflex} \defineaccent ^ s {\scircumflex}
-\defineaccent ^ U {\Ucircumflex} \defineaccent ^ u {\ucircumflex}
-\defineaccent ^ W {\Wcircumflex} \defineaccent ^ w {\wcircumflex}
-\defineaccent ^ Y {\Ycircumflex} \defineaccent ^ y {\ycircumflex}
-
-\defineaccent ` A {\Agrave} \defineaccent ` a {\agrave}
-\defineaccent ` E {\Egrave} \defineaccent ` e {\egrave}
-\defineaccent ` I {\Igrave} \defineaccent ` i {\igrave} \defineaccent ` {\i} {\igrave}
-\defineaccent ` O {\Ograve} \defineaccent ` o {\ograve}
-\defineaccent ` U {\Ugrave} \defineaccent ` u {\ugrave}
-\defineaccent ` Y {\Ygrave} \defineaccent ` y {\ygrave}
-
-\defineaccent ~ A {\Atilde} \defineaccent ~ a {\atilde}
-\defineaccent ~ I {\Itilde} \defineaccent ~ i {\itilde} \defineaccent ~ {\i} {\itilde}
-\defineaccent ~ O {\Otilde} \defineaccent ~ o {\otilde}
-\defineaccent ~ U {\Utilde} \defineaccent ~ u {\utilde}
-
-\defineaccent " A {\Adiaeresis} \defineaccent " a {\adiaeresis}
-\defineaccent " E {\Ediaeresis} \defineaccent " e {\ediaeresis}
-\defineaccent " I {\Idiaeresis} \defineaccent " i {\idiaeresis} \defineaccent " {\i} {\idiaeresis}
-\defineaccent " O {\Odiaeresis} \defineaccent " o {\odiaeresis}
-\defineaccent " U {\Udiaeresis} \defineaccent " u {\udiaeresis}
-\defineaccent " Y {\Ydiaeresis} \defineaccent " y {\ydiaeresis}
-
-\defineaccent ' A {\Aacute} \defineaccent ' a {\aacute}
-\defineaccent ' C {\Cacute} \defineaccent ' c {\cacute}
-\defineaccent ' E {\Eacute} \defineaccent ' e {\eacute}
-\defineaccent ' I {\Iacute} \defineaccent ' i {\iacute} \defineaccent ' {\i} {\iacute}
-\defineaccent ' L {\Lacute} \defineaccent ' l {\lacute}
-\defineaccent ' N {\Nacute} \defineaccent ' n {\nacute}
-\defineaccent ' O {\Oacute} \defineaccent ' o {\oacute}
-\defineaccent ' R {\Racute} \defineaccent ' r {\racute}
-\defineaccent ' S {\Sacute} \defineaccent ' s {\sacute}
-\defineaccent ' U {\Uacute} \defineaccent ' u {\uacute}
-\defineaccent ' Y {\Yacute} \defineaccent ' y {\yacute}
-\defineaccent ' Z {\Zacute} \defineaccent ' z {\zacute}
-
-\defineaccent . C {\Cdotaccent} \defineaccent . c {\cdotaccent}
-\defineaccent . E {\Edotaccent} \defineaccent . e {\edotaccent}
-\defineaccent . G {\Gdotaccent} \defineaccent . g {\gdotaccent}
-\defineaccent . I {\Idotaccent} \defineaccent . i {\idotaccent} \defineaccent . {\i} {\idotaccent}
-\defineaccent . Z {\Zdotaccent} \defineaccent . z {\zdotaccent}
-
-\defineaccent = A {\Amacron} \defineaccent = a {\amacron}
-\defineaccent = E {\Emacron} \defineaccent = e {\emacron}
-\defineaccent = I {\Imacron} \defineaccent = i {\imacron} \defineaccent = {\i} {\imacron}
-\defineaccent = O {\Omacron} \defineaccent = o {\omacron}
-\defineaccent = U {\Umacron} \defineaccent = u {\umacron}
-
-\defineaccent c C {\Ccedilla} \defineaccent c c {\ccedilla}
-\defineaccent c K {\Kcedilla} \defineaccent c k {\kcedilla}
-\defineaccent c L {\Lcedilla} \defineaccent c l {\lcedilla}
-\defineaccent c N {\Ncedilla} \defineaccent c n {\ncedilla}
-\defineaccent c R {\Rcedilla} \defineaccent c r {\rcedilla}
-\defineaccent c S {\Scedilla} \defineaccent c s {\scedilla}
-\defineaccent c T {\Tcedilla} \defineaccent c t {\tcedilla}
-
-\defineaccent H O {\Ohungarumlaut} \defineaccent H o {\ohungarumlaut}
-\defineaccent H u {\uhungarumlaut} \defineaccent H U {\Uhungarumlaut}
-
-\defineaccent k A {\Aogonek} \defineaccent k a {\aogonek}
-\defineaccent k E {\Eogonek} \defineaccent k e {\eogonek}
-\defineaccent k I {\Iogonek} \defineaccent k i {\iogonek}
-\defineaccent k U {\Uogonek} \defineaccent k u {\uogonek}
-
-\defineaccent r A {\Aring} \defineaccent r a {\aring}
-\defineaccent r U {\Uring} \defineaccent r u {\uring}
-
-\defineaccent u A {\Abreve} \defineaccent u a {\abreve}
-\defineaccent u E {\Ebreve} \defineaccent u e {\ebreve}
-\defineaccent u G {\Gbreve} \defineaccent u g {\gbreve}
-\defineaccent u I {\Ibreve} \defineaccent u i {\ibreve} \defineaccent u {\i} {\ibreve}
-\defineaccent u O {\Obreve} \defineaccent u o {\obreve}
-\defineaccent u U {\Ubreve} \defineaccent u u {\ubreve}
-
-\defineaccent v C {\Ccaron} \defineaccent v c {\ccaron}
-\defineaccent v D {\Dcaron} \defineaccent v d {\dcaron}
-\defineaccent v E {\Ecaron} \defineaccent v e {\ecaron}
-\defineaccent v L {\Lcaron} \defineaccent v l {\lcaron}
-\defineaccent v N {\Ncaron} \defineaccent v n {\ncaron}
-\defineaccent v R {\Rcaron} \defineaccent v r {\rcaron}
-\defineaccent v S {\Scaron} \defineaccent v s {\scaron}
-\defineaccent v T {\Tcaron} \defineaccent v t {\tcaron}
-\defineaccent v Z {\Zcaron} \defineaccent v z {\zcaron}
-
-\stopencoding
-
-\startencoding[default]
-
-% vietnamese: if needed, \useencoding[enco-vna]
-
-\stopencoding
-
-% For Tobias Burnus, who wants:
-%
-% \starttypen
-% \setupinteraction[state=start]
-% \setupinteractionscreen[option=bookmark]
-% \placebookmarks[chapter]
-%
-% \starttext \chapter{F\"ur Na\"ive und Na\"\i ve} \stoptext
-% \stoptypen
-
-\startencoding[default]
-
- \defineaccent " {\i} {\idiaeresis}
-
-\stopencoding
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-agr.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-agr.mkii
deleted file mode 100644
index 9d821cca1c6..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-agr.mkii
+++ /dev/null
@@ -1,367 +0,0 @@
-%D \module
-%D [ file=enco-agr,
-%D version=2005.02.20,
-%D title=\CONTEXT\ \UNICODE\ Macros,
-%D subtitle=Ancient Greek,
-%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
-
- \definecaseself 4 % apostrofe
- \definecaseself 5 % greekbetaalt
-
-\stopmapping
-
-\startencoding[agr]
-
-\definecharacter greeksigmalunate 1
-\definecharacter endash 2
-\definecharacter emdash 3
-\definecharacter apostrophe 4
-\definecharacter greekbetaalt 5
-\definecharacter epih 6
-
-\definecharacter textbraceleft 8
-\definecharacter textbraceright 9
-\definecharacter textbreve 10
-
-\definecharacter greekSigmalunate 13
-\definecharacter greekIotadialytika 14
-\definecharacter greekUpsilondialytika 15
-
-\definecharacter greekepsilonperispomeni 18
-\definecharacter greekomicronperispomeni 19
-\definecharacter greekepsilondasiaperispomeni 20
-\definecharacter greekomicrondasiaperispomeni 21
-\definecharacter greekepsilonpsiliperispomeni 22
-\definecharacter greekomicronpsiliperispomeni 23
-\definecharacter greekiotadialytikaperispomeni 24
-\definecharacter greekupsilondialytikaperispomeni 25
-\definecharacter greekdialytikaperispomeni 26
-
-\definecharacter textbottomdot 33
-\definecharacter greeksampi 34
-\definecharacter greekdigamma 35
-\definecharacter greekstigma 36
-\definecharacter greeknumkoppa 37
-\definecharacter greekkoppa 38
-\definecharacter guilsingleright 39
-
-\definecharacter textdag 43
-
-\definecharacter greekoxia 47
-
-\definecharacter greekanoteleia 59
-\definecharacter greekdasia 60
-
-\definecharacter greekpsili 62
-\definecharacter greekquestionmark 63
-\definecharacter dialytika 64
-\definecharacter greekAlpha 65
-\definecharacter greekBeta 66
-\definecharacter greekomegaiotasub 67
-\definecharacter greekDelta 68
-\definecharacter greekEpsilon 69
-\definecharacter greekPhi 70
-\definecharacter greekGamma 71
-\definecharacter greekEta 72
-\definecharacter greekIota 73
-\definecharacter greekTheta 74
-\definecharacter greekKappa 75
-\definecharacter greekLambda 76
-\definecharacter greekMu 77
-\definecharacter greekNu 78
-\definecharacter greekOmicron 79
-\definecharacter greekPi 80
-\definecharacter greekChi 81
-\definecharacter greekRho 82
-\definecharacter greekSigma 83
-\definecharacter greekTau 84
-\definecharacter greekUpsilon 85
-\definecharacter greeketaiotasub 86
-\definecharacter greekOmega 87
-\definecharacter greekXi 88
-\definecharacter greekPsi 89
-\definecharacter greekZeta 90
-\definecharacter bracketleft 91
-\definecharacter greekvaria 92
-\definecharacter bracketright 93
-\definecharacter greekperispomeni 94
-
-\definecharacter guilsingleleft 96
-
-% the above is a quote character
-\definecharacter greekalpha 97
-\definecharacter greekbeta 98
-\definecharacter greekfinalsigma 99
-\definecharacter greekdelta 100
-\definecharacter greekepsilon 101
-\definecharacter greekphi 102
-\definecharacter greekgamma 103
-\definecharacter greeketa 104
-\definecharacter greekiota 105
-\definecharacter greektheta 106
-\definecharacter greekkappa 107
-\definecharacter greeklambda 108
-\definecharacter greekmu 109
-\definecharacter greeknu 110
-\definecharacter greekomicron 111
-\definecharacter greekpi 112
-\definecharacter greekchi 113
-\definecharacter greekrho 114
-\definecharacter greeksigma 115
-\definecharacter greektau 116
-\definecharacter greekupsilon 117
-\definecharacter greekalphaiotasub 118
-\definecharacter greekomega 119
-\definecharacter greekxi 120
-\definecharacter greekpsi 121
-\definecharacter greekzeta 122
-\definecharacter floorleft 123
-\definecharacter textbar 124
-\definecharacter floorright 125
-\definecharacter greekperispomeni 126
-
-\definecharacter quotedblleft 128
-\definecharacter quotedblright 129
-\definecharacter exclam 130
-\definecharacter greekiotadasia 131
-\definecharacter greekiotapsili 132
-\definecharacter greekiotaoxia 133
-\definecharacter greekiotadasiatonos 134
-\definecharacter greekiotapsilitonos 135
-\definecharacter greekiotavaria 136
-\definecharacter greekiotadasiavaria 137
-\definecharacter greekiotapsilivaria 138
-\definecharacter greekiotaperispomeni 139
-\definecharacter greekiotadasiaperispomeni 140
-\definecharacter greekiotapsiliperispomeni 141
-\definecharacter greekiotadialytika 142
-\definecharacter greekiotadialytikatonos 143
-\definecharacter greekiotadialytikavaria 144
-\definecharacter greekdasiaperispomeni 145
-\definecharacter greekpsiliperispomeni 146
-\definecharacter greekdasiatonos 147
-\definecharacter greekpsilitonos 148
-\definecharacter greekdasiavaria 149
-\definecharacter greekpsilivaria 150
-\definecharacter greekdialytikatonos 151
-\definecharacter greekepsilondasia 152
-\definecharacter greekepsilonpsili 153
-\definecharacter greekepsilonoxia 154
-\definecharacter greekepsilondasiatonos 155
-\definecharacter greekepsilonpsilitonos 156
-\definecharacter greekepsilonvaria 157
-\definecharacter greekepsilondasiavaria 158
-\definecharacter greekepsilonpsilivaria 159
-\definecharacter greekdialytikavaria 160
-\definecharacter greekalphadasia 161
-\definecharacter greekalphapsili 162
-\definecharacter greekalphaoxia 163
-\definecharacter greekalphadasiatonos 164
-\definecharacter greekalphapsilitonos 165
-\definecharacter greekalphavaria 166
-\definecharacter greekalphadasiavaria 167
-\definecharacter greekalphapsilivaria 168
-\definecharacter greekalphaperispomeni 169
-\definecharacter greekalphadasiaperispomeni 170
-\definecharacter greekalphapsiliperispomeni 171
-\definecharacter greekalphaiotasubdasia 172
-\definecharacter greekalphaiotasubpsili 173
-\definecharacter greekalphaiotasubtonos 174
-\definecharacter greekalphaiotasubdasiatonos 175
-\definecharacter greekalphaiotasubpsilitonos 176
-\definecharacter greekalphaiotasubvaria 177
-\definecharacter greekalphaiotasubdasiavaria 178
-\definecharacter greekalphaiotasubpsilivaria 179
-\definecharacter greekalphaiotasubperispomeni 180
-\definecharacter greekalphaiotasubdasiaperispomeni 181
-\definecharacter greekalphaiotasubpsiliperispomeni 182
-\definecharacter greekrhodasia 183
-\definecharacter greekrhopsili 184
-\definecharacter greeketadasia 185
-\definecharacter greeketapsili 186
-\definecharacter greeketaoxia 187
-\definecharacter greeketadasiatonos 188
-\definecharacter greeketapsilitonos 189
-\definecharacter greeketavaria 190
-\definecharacter greeketadasiavaria 191
-\definecharacter greeketapsilivaria 192
-\definecharacter greeketaperispomeni 193
-\definecharacter greeketadasiaperispomeni 194
-\definecharacter greeketapsiliperispomeni 195
-\definecharacter textslash 196
-\definecharacter greeketaiotasubdasia 197
-\definecharacter greeketaiotasubpsili 198
-\definecharacter greeketaiotasubtonos 199
-\definecharacter greeketaiotasubdasiatonos 200
-\definecharacter greeketaiotasubpsilitonos 201
-\definecharacter greeketaiotasubvaria 202
-\definecharacter greeketaiotasubdasiavaria 203
-\definecharacter greeketaiotasubpsilivaria 204
-\definecharacter greeketaiotasubperispomeni 205
-\definecharacter greeketaiotasubdasiaperispomeni 206
-\definecharacter greeketaiotasubpsiliperispomeni 207
-\definecharacter greekomicrondasia 208
-\definecharacter greekomicronpsili 209
-\definecharacter greekomicronoxia 210
-\definecharacter greekomicrondasiatonos 211
-\definecharacter greekomicronpsilitonos 212
-\definecharacter greekomicronvaria 213
-\definecharacter greekomicrondasiavaria 214
-\definecharacter greekomicronpsilivaria 215
-\definecharacter greekupsilondasia 216
-\definecharacter greekupsilonpsili 217
-\definecharacter greekupsilonoxia 218
-\definecharacter greekupsilondasiatonos 219
-\definecharacter greekupsilonpsilitonos 220
-\definecharacter greekupsilonvaria 221
-\definecharacter greekupsilondasiavaria 222
-\definecharacter greekupsilonpsilivaria 223
-\definecharacter greekupsilonperispomeni 224
-\definecharacter greekupsilondasiaperispomeni 225
-\definecharacter greekupsilonpsiliperispomeni 226
-\definecharacter greekupsilondiaeresis 227
-\definecharacter greekupsilondialytikatonos 228
-\definecharacter greekupsilondialytikavaria 229
-\definecharacter greekomegadasia 230
-\definecharacter greekomegapsili 231
-\definecharacter greekomegaoxia 232
-\definecharacter greekomegadasiatonos 233
-\definecharacter greekomegapsilitonos 234
-\definecharacter greekomegavaria 235
-\definecharacter greekomegadasiavaria 236
-\definecharacter greekomegapsilivaria 237
-\definecharacter greekomegaperispomeni 238
-\definecharacter greekomegadasiaperispomeni 239
-\definecharacter greekomegapsiliperispomeni 240
-\definecharacter greekomegaiotasubdasia 241
-\definecharacter greekomegaiotasubpsili 242
-\definecharacter greekomegaiotasubtonos 243
-\definecharacter greekomegaiotasubdasiatonos 244
-\definecharacter greekomegaiotasubpsilitonos 245
-\definecharacter greekomegaiotasubvaria 246
-\definecharacter greekomegaiotasubdasiavaria 247
-\definecharacter greekomegaiotasubpsilivaria 248
-\definecharacter greekomegaiotasubperispomeni 249
-\definecharacter greekomegaiotasubdasiaperispomeni 250
-\definecharacter greekomegaiotasubpsiliperispomeni 251
-\definecharacter greeknumeralsign 254
-\definecharacter greeknumeralsignlower 255
-
-\stopencoding
-
-\startencoding[default]
-
-\definecharacter greekAlphapsili {\greekpsili \greekAlpha}
-\definecharacter greekAlphadasia {\greekdasia \greekAlpha}
-\definecharacter greekAlphapsilivaria {\greekpsilivaria \greekAlpha}
-\definecharacter greekAlphadasiavaria {\greekdasiavaria \greekAlpha}
-\definecharacter greekAlphapsilitonos {\greekpsilitonos \greekAlpha}
-\definecharacter greekAlphadasiatonos {\greekdasiatonos \greekAlpha}
-\definecharacter greekAlphapsiliperispomeni {\greekpsiliperispomeni \greekAlpha}
-\definecharacter greekAlphadasiaperispomeni {\greekdasiaperispomeni \greekAlpha}
-\definecharacter greekEpsilonpsili {\greekpsili \greekEpsilon}
-\definecharacter greekEpsilondasia {\greekdasia \greekEpsilon}
-\definecharacter greekEpsilonpsilivaria {\greekpsilivaria \greekEpsilon}
-\definecharacter greekEpsilondasiavaria {\greekdasiavaria \greekEpsilon}
-\definecharacter greekEpsilonpsilitonos {\greekpsilitonos \greekEpsilon}
-\definecharacter greekEpsilondasiatonos {\greekdasiatonos \greekEpsilon}
-\definecharacter greekEtapsili {\greekpsili \greekEta}
-\definecharacter greekEtadasia {\greekdasia \greekEta}
-\definecharacter greekEtapsilivaria {\greekpsilivaria \greekEta}
-\definecharacter greekEtadasiavaria {\greekdasiavaria \greekEta}
-\definecharacter greekEtapsilitonos {\greekpsilitonos \greekEta}
-\definecharacter greekEtadasiatonos {\greekdasiatonos \greekEta}
-\definecharacter greekEtapsiliperispomeni {\greekpsiliperispomeni \greekEta}
-\definecharacter greekEtadasiaperispomeni {\greekdasiaperispomeni \greekEta}
-\definecharacter greekIotapsili {\greekpsili \greekIota}
-\definecharacter greekIotadasia {\greekdasia \greekIota}
-\definecharacter greekIotapsilivaria {\greekpsilivaria \greekIota}
-\definecharacter greekIotadasiavaria {\greekdasiavaria \greekIota}
-\definecharacter greekIotapsilitonos {\greekpsilitonos \greekIota}
-\definecharacter greekIotadasiatonos {\greekdasiatonos \greekIota}
-\definecharacter greekIotapsiliperispomeni {\greekpsiliperispomeni \greekIota}
-\definecharacter greekIotadasiaperispomeni {\greekdasiaperispomeni \greekIota}
-\definecharacter greekOmicronpsili {\greekpsili \greekOmicron}
-\definecharacter greekOmicrondasia {\greekdasia \greekOmicron}
-\definecharacter greekOmicronpsilivaria {\greekpsilivaria \greekOmicron}
-\definecharacter greekOmicrondasiavaria {\greekdasiavaria \greekOmicron}
-\definecharacter greekOmicronpsilitonos {\greekpsilitonos \greekOmicron}
-\definecharacter greekOmicrondasiatonos {\greekdasiatonos \greekOmicron}
-\definecharacter greekUpsilondasia {\greekdasia \greekUpsilon}
-\definecharacter greekUpsilondasiavaria {\greekdasiavaria \greekUpsilon}
-\definecharacter greekUpsilondasiatonos {\greekdasiatonos \greekUpsilon}
-\definecharacter greekUpsilondasiaperispomeni {\greekdasiaperispomeni \greekUpsilon}
-\definecharacter greekOmegapsili {\greekpsili \greekOmega}
-\definecharacter greekOmegadasia {\greekdasia \greekOmega}
-\definecharacter greekOmegapsilivaria {\greekpsilivaria \greekOmega}
-\definecharacter greekOmegadasiavaria {\greekdasiavaria \greekOmega}
-\definecharacter greekOmegapsilitonos {\greekpsilitonos \greekOmega}
-\definecharacter greekOmegadasiatonos {\greekdasiatonos \greekOmega}
-\definecharacter greekOmegapsiliperispomeni {\greekpsiliperispomeni \greekOmega}
-\definecharacter greekOmegadasiaperispomeni {\greekdasiaperispomeni \greekOmega}
-\definecharacter greekAlphaiotasubpsili {\greekpsili \greekAlpha \greekiota}
-\definecharacter greekAlphaiotasubdasia {\greekdasia \greekAlpha \greekiota}
-\definecharacter greekAlphaiotasubpsilivaria {\greekpsilivaria \greekAlpha \greekiota}
-\definecharacter greekAlphaiotasubdasiavaria {\greekdasiavaria \greekAlpha \greekiota}
-\definecharacter greekAlphaiotasubpsilitonos {\greekpsilitonos \greekAlpha \greekiota}
-\definecharacter greekAlphaiotasubdasiatonos {\greekdasiatonos \greekAlpha \greekiota}
-\definecharacter greekAlphaiotasubpsiliperispomeni {\greekpsiliperispomeni \greekAlpha \greekiota}
-\definecharacter greekAlphaiotasubdasiaperispomeni {\greekdasiaperispomeni \greekAlpha \greekiota}
-\definecharacter greekEtaiotasubpsili {\greekpsili \greekEta \greekiota}
-\definecharacter greekEtaiotasubdasia {\greekdasia \greekEta \greekiota}
-\definecharacter greekEtaiotasubpsilivaria {\greekpsilivaria \greekEta \greekiota}
-\definecharacter greekEtaiotasubdasiavaria {\greekdasiavaria \greekEta \greekiota}
-\definecharacter greekEtaiotasubpsilitonos {\greekpsilitonos \greekEta \greekiota}
-\definecharacter greekEtaiotasubdasiatonos {\greekdasiatonos \greekEta \greekiota}
-\definecharacter greekEtaiotasubpsiliperispomeni {\greekpsiliperispomeni \greekEta \greekiota}
-\definecharacter greekEtaiotasubdasiaperispomeni {\greekdasiaperispomeni \greekEta \greekiota}
-\definecharacter greekOmegaiotasubpsili {\greekpsili \greekOmega \greekiota}
-\definecharacter greekOmegaiotasubdasia {\greekdasia \greekOmega \greekiota}
-\definecharacter greekOmegaiotasubpsilivaria {\greekpsilivaria \greekOmega \greekiota}
-\definecharacter greekOmegaiotasubdasiavaria {\greekdasiavaria \greekOmega \greekiota}
-\definecharacter greekOmegaiotasubpsilitonos {\greekpsilitonos \greekOmega \greekiota}
-\definecharacter greekOmegaiotasubdasiatonos {\greekdasiatonos \greekOmega \greekiota}
-\definecharacter greekOmegaiotasubpsiliperispomeni {\greekpsiliperispomeni \greekOmega \greekiota}
-\definecharacter greekOmegaiotasubdasiaperispomeni {\greekdasiaperispomeni \greekOmega \greekiota}
-\definecharacter greekAlphavaria {\greekvaria \greekAlpha}
-\definecharacter greekAlphaoxia {\greekoxia \greekAlpha}
-\definecharacter greekAlphaiotasub {\greekAlpha \greekiota}
-\definecharacter greekEpsilonvaria {\greekvaria \greekEpsilon}
-\definecharacter greekEpsilonoxia {\greekoxia \greekEpsilon}
-\definecharacter greekEtavaria {\greekvaria \greekEta}
-\definecharacter greekEtaoxia {\greekoxia \greekEta}
-\definecharacter greekEtaiotasub {\greekEta \greekiota}
-\definecharacter greekIotavaria {\greekvaria \greekIota}
-\definecharacter greekIotaoxia {\greekoxia \greekIota}
-\definecharacter greekUpsilonvaria {\greekvaria \greekUpsilon}
-\definecharacter greekUpsilonoxia {\greekoxia \greekUpsilon}
-\definecharacter greekOmicronvaria {\greekvaria \greekOmicron}
-\definecharacter greekOmicronoxia {\greekoxia \greekOmicron}
-\definecharacter greekOmegavaria {\greekvaria \greekOmega}
-\definecharacter greekOmegaoxia {\greekoxia \greekOmega}
-\definecharacter greekOmegaiotasub {\greekOmega \greekiota}
-\definecharacter greekRhodasia {\greekdasia \greekRho}
-\definecharacter digamma {\greekdigamma}
-\definecharacter sampi {\greeksampi}
-\definecharacter stigma {\greekstigma}
-\definecharacter koppa {\greeknumkoppa}
-\definecharacter lunars {\greeksigmalunate}
-\definecharacter lunarS {\greekSigmalunate}
-\definecharacter halfbraceleft {\floorleft}
-\definecharacter halfbraceright {\floorright}
-\definecharacter crux {\textdag}
-
-\stopencoding
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-ans.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-ans.mkii
deleted file mode 100644
index c71b2451a60..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-ans.mkii
+++ /dev/null
@@ -1,237 +0,0 @@
-%D \module
-%D [ file=enco-ans,
-%D version=2000.05.07, % 1995.01.01,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=\YandY\ texnansi Encoding,
-%D author={Patrick Gundlach, Hans Hagen},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This is \YandY's texnansi encoding vector, which combines
-%D the best of the ansi encoding vector (prebuilt accented
-%D characters etc.) and some of \TEX's vectors.
-
-\startmapping[texnansi]
-
-\resetcaserange 128 to 158
-\resetcaserange 160 to 191
-\resetcaserange 215 to 215
-\resetcaserange 247 to 247
-
-\definecasemaps 192 to 214 lc +32 uc 0
-\definecasemaps 224 to 246 lc 0 uc -32
-\definecasemaps 216 to 222 lc +32 uc 0
-\definecasemaps 248 to 254 lc 0 uc -32
-
-\definecaseself 223
-\definecaseswap 156 140
-\definecaseswap 255 159
-
-% needed by some patterns:
-
-% \definecaseself 34 % quotedbl
-% \definecaseself 132 % quotedblbase
-% \definecaseself 147 % quotedblleft
-% \definecaseself 148 % quotedblright
-% \definecaseself 129 % quotesingle
-% \definecaseself 130 % quotesinglebase
-% \definecaseself 145 % quoteleft
-\definecaseself 146 % quoteright
-
-\stopmapping
-
-\startencoding[texnansi]
-
-\definecharacter textacute 19
-\definecharacter textbreve 21
-\definecharacter textcaron 20
-\definecharacter textcedilla 184
-\definecharacter textcircumflex 94 % 136
-\definecharacter textdiaeresis 168
-\definecharacter textdotaccent 5
-\definecharacter textgrave 18
-\definecharacter texthungarumlaut 6
-\definecharacter textmacron 175
-\definecharacter textogonek 7
-\definecharacter textring 23
-\definecharacter texttilde 152
-
-\definecharacter dotlessi 16 % 105
-\definecharacter dotlessj 17
-
-\definecharacter endash 150 % lig
-\definecharacter emdash 151 % lig
-
-\definecharacter aeligature 230
-\definecharacter AEligature 198
-\definecharacter oeligature 156
-\definecharacter OEligature 140
-
-\definecharacter ssharp 223
-
-\definecharacter thorn 254
-\definecharacter Thorn 222
-
-\definecharacter Dstroke 208 % also Eth, mapped in enco-def
-\definecharacter eth 240
-
-\definecharacter exclamdown 161
-\definecharacter questiondown 191
-
-\definecharacter copyright 169
-\definecharacter registered 174
-\definecharacter trademark 153
-
-\definecharacter sectionmark 167
-\definecharacter paragraphmark 182
-
-\definecharacter onequarter 188
-\definecharacter onehalf 189
-\definecharacter threequarter 190
-
-\definecharacter onesuperior 185
-\definecharacter twosuperior 178
-\definecharacter threesuperior 179
-
-\definecharacter textcent 162 % ?
-\definecharacter textcurrency 164
-\definecharacter texteuro 1
-\definecharacter textflorin 131
-\definecharacter textsterling 163
-\definecharacter textyen 165
-
-\definecharacter percent 37
-\definecharacter perthousand 137
-
-\definecharacter softhyphen 45
-\definecharacter periodcentered 183
-
-\definecharacter textasciicircum 142
-\definecharacter textasciitilde 158
-\definecharacter textbackslash 92
-\definecharacter textbraceleft 123
-\definecharacter textbar 124
-\definecharacter textbraceright 125
-\definecharacter textunderscore 95
-
-\definecharacter textbrokenbar 166
-\definecharacter textbullet 149
-\definecharacter textdag 134
-\definecharacter textddag 135
-\definecharacter textdegree 176
-\definecharacter textdiv 247
-\definecharacter textellipsis 133
-\definecharacter textfraction 4
-\definecharacter textlognot 172
-\definecharacter textminus 143
-\definecharacter textmu 181
-\definecharacter textmultiply 215
-\definecharacter textpm 177
-
-\definecharacter quotedbl 34
-\definecharacter quotedblbase 132
-\definecharacter quotedblleft 147
-\definecharacter quotedblright 148
-
-\definecharacter quotesingle 129
-\definecharacter quotesinglebase 130
-
-\definecharacter quoteleft 145
-\definecharacter quoteright 146
-
-\definecharacter guilsingleleft 139
-\definecharacter guilsingleright 155
-\definecharacter leftguillemot 171
-\definecharacter rightguillemot 187
-
-\definecharacter aacute 225
-\definecharacter Aacute 193
-\definecharacter eacute 233
-\definecharacter Eacute 201
-\definecharacter iacute 237
-\definecharacter Iacute 205
-\definecharacter oacute 243
-\definecharacter Oacute 211
-\definecharacter uacute 250
-\definecharacter Uacute 218
-\definecharacter yacute 253
-\definecharacter Yacute 221
-
-\definecharacter scaron 154
-\definecharacter Scaron 138
-\definecharacter zcaron 157
-\definecharacter Zcaron 141
-
-\definecharacter ccedilla 231
-\definecharacter Ccedilla 199
-
-\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 255
-\definecharacter Ydiaeresis 159
-
-\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 aring 229
-\definecharacter Aring 197
-
-\definecharacter Lstroke 128
-\definecharacter lstroke 144
-\definecharacter ostroke 248
-\definecharacter Ostoke 216
-
-\definecharacter atilde 227
-\definecharacter Atilde 195
-\definecharacter ntilde 241
-\definecharacter Ntilde 209
-\definecharacter otilde 245
-\definecharacter Otilde 213
-
-\stopencoding
-
-% will be replaced by math collection, fails anyway
-
-\startencoding[texnansi]
-
-\definecharacter mathgrave "7060
-\definecharacter mathacute "70B4
-\definecharacter mathhat "7088
-\definecharacter mathtilde "7098
-\definecharacter mathddot "70A8
-\definecharacter mathbar "70AF
-
-\stopencoding
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-cas.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-cas.mkii
deleted file mode 100644
index 6ac35eb325c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-cas.mkii
+++ /dev/null
@@ -1,143 +0,0 @@
-%D \module
-%D [ file=enco-cas,
-%D version=2005.08.23,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Named Glyph Case Mapping,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D For quite some years \CONTEXT\ used a rather compact way of
-%D defining encoded characters as well as case maps. When late
-%D 2000 more advanced remapping features were needed (like pdf
-%D unicode remapping), named glyphs were introduced to keep the
-%D coding tables more readable. At the same time, we introduced
-%D named glyph case mapping.
-
-\defineULcharacter Acircumflex acircumflex
-\defineULcharacter Ccircumflex ccircumflex
-\defineULcharacter Ecircumflex ecircumflex
-\defineULcharacter Gcircumflex gcircumflex
-\defineULcharacter Hcircumflex hcircumflex
-\defineULcharacter Icircumflex icircumflex
-\defineULcharacter Jcircumflex jcircumflex
-\defineULcharacter Ocircumflex ocircumflex
-\defineULcharacter Scircumflex scircumflex
-\defineULcharacter Ucircumflex ucircumflex
-\defineULcharacter Wcircumflex wcircumflex
-\defineULcharacter Ycircumflex ycircumflex
-
-\defineULcharacter Agrave agrave
-\defineULcharacter Egrave egrave
-\defineULcharacter Igrave igrave
-\defineULcharacter Ograve ograve
-\defineULcharacter Ugrave ugrave
-\defineULcharacter Ygrave ygrave
-
-\defineULcharacter Atilde atilde
-\defineULcharacter Itilde itilde
-\defineULcharacter Otilde otilde
-\defineULcharacter Ntilde ntilde
-\defineULcharacter Utilde utilde
-
-\defineULcharacter Adiaeresis adiaeresis
-\defineULcharacter Ediaeresis ediaeresis
-\defineULcharacter Idiaeresis idiaeresis
-\defineULcharacter Odiaeresis odiaeresis
-\defineULcharacter Udiaeresis udiaeresis
-\defineULcharacter Ydiaeresis ydiaeresis
-
-\defineULcharacter Aacute aacute
-\defineULcharacter Cacute cacute
-\defineULcharacter Eacute eacute
-\defineULcharacter Iacute iacute
-\defineULcharacter Lacute lacute
-\defineULcharacter Nacute nacute
-\defineULcharacter Oacute oacute
-\defineULcharacter Racute racute
-\defineULcharacter Sacute sacute
-\defineULcharacter Uacute uacute
-\defineULcharacter Yacute yacute
-\defineULcharacter Zacute zacute
-
-\defineULcharacter Dstroke dstroke
-\defineULcharacter Hstroke hstroke
-\defineULcharacter Lstroke lstroke
-\defineULcharacter Lslash lslash
-\defineULcharacter Ostroke ostroke
-\defineULcharacter Tstroke tstroke
-
-\defineULcharacter Cdotaccent cdotaccent
-\defineULcharacter Edotaccent edotaccent
-\defineULcharacter Gdotaccent gdotaccent
-\defineULcharacter Idotaccent idotaccent
-\defineULcharacter Zdotaccent zdotaccent
-
-\defineULcharacter Amacron amacron
-\defineULcharacter Emacron emacron
-\defineULcharacter Imacron imacron
-\defineULcharacter Omacron omacron
-\defineULcharacter Umacron umacron
-
-\defineULcharacter Ccedilla ccedilla
-\defineULcharacter Gcedilla gcedilla
-\defineULcharacter Kcedilla kcedilla
-\defineULcharacter Lcedilla lcedilla
-\defineULcharacter Ncedilla ncedilla
-\defineULcharacter Rcedilla rcedilla
-\defineULcharacter Scedilla scedilla
-\defineULcharacter Tcedilla tcedilla
-
-\defineULcharacter Ccommaaccent ccommaaccent
-\defineULcharacter Gcommaaccent gcommaaccent
-\defineULcharacter Kcommaaccent kcommaaccent
-\defineULcharacter Lcommaaccent lcommaaccent
-\defineULcharacter Ncommaaccent ncommaaccent
-\defineULcharacter Rcommaaccent rcommaaccent
-\defineULcharacter Scommaaccent scommaaccent
-\defineULcharacter Tcommaaccent tcommaaccent
-
-\defineULcharacter Ohungarumlaut ohungarumlaut
-\defineULcharacter Uhungarumlaut uhungarumlaut
-
-\defineULcharacter Aogonek aogonek
-\defineULcharacter Eogonek eogonek
-\defineULcharacter Iogonek iogonek
-\defineULcharacter Uogonek uogonek
-
-\defineULcharacter Aring aring
-\defineULcharacter Uring uring
-
-\defineULcharacter Abreve abreve
-\defineULcharacter Ebreve ebreve
-\defineULcharacter Gbreve gbreve
-\defineULcharacter Ibreve ibreve
-\defineULcharacter Obreve obreve
-\defineULcharacter Ubreve ubreve
-
-\defineULcharacter Ccaron ccaron
-\defineULcharacter Dcaron dcaron
-\defineULcharacter Ecaron ecaron
-\defineULcharacter Lcaron lcaron
-\defineULcharacter Ncaron ncaron
-\defineULcharacter Rcaron rcaron
-\defineULcharacter Scaron scaron
-\defineULcharacter Tcaron tcaron
-\defineULcharacter Zcaron zcaron
-
-\defineULcharacter dotlessI dotlessi
-\defineULcharacter dotlessJ dotlessj
-
-\defineULcharacter AEligature aeligature
-\defineULcharacter OEligature oeligature
-\defineULcharacter Ssharp ssharp
-\defineULcharacter IJligature ijligature
-
-\defineULcharacter Eth eth
-\defineULcharacter Thorn thorn
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-chi.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-chi.mkii
deleted file mode 100644
index 727720565fd..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-chi.mkii
+++ /dev/null
@@ -1,371 +0,0 @@
-%D \module
-%D [ file=enco-chi,
-%D version=1999.12.02,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Traditional and Simplified Chinese,
-%D author={Wang Lei \& Hans Hagen},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% 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.
-
-% 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
-\defineuclass 1 161 95
-\defineuclass 1 161 97
-\defineuclass 1 161 99
-\defineuclass 1 161 101
-\defineuclass 1 161 103
-\defineuclass 1 161 105
-\defineuclass 1 161 107
-\defineuclass 1 161 111
-\defineuclass 1 161 111
-\defineuclass 1 161 113
-\defineuclass 1 161 115
-\defineuclass 1 161 117
-\defineuclass 1 161 119
-\defineuclass 1 161 121
-\defineuclass 1 161 123
-\defineuclass 1 161 125
-\defineuclass 1 161 161
-\defineuclass 1 161 163
-\defineuclass 1 161 165
-\defineuclass 1 161 167
-\defineuclass 1 161 169
-\defineuclass 1 161 171
-
-\defineuclass 3 161 69
-\defineuclass 3 161 75
-\defineuclass 3 161 76
-
-\defineuclass 2 161 65
-\defineuclass 2 161 66
-\defineuclass 2 161 67
-\defineuclass 2 161 68
-\defineuclass 2 161 70
-\defineuclass 2 161 71
-\defineuclass 2 161 72
-\defineuclass 2 161 73
-\defineuclass 2 161 74
-\defineuclass 2 161 77
-\defineuclass 2 161 78
-\defineuclass 2 161 79
-\defineuclass 2 161 80
-\defineuclass 2 161 81
-\defineuclass 2 161 82
-\defineuclass 2 161 83
-\defineuclass 2 161 84
-\defineuclass 2 161 88
-\defineuclass 2 161 94
-\defineuclass 2 161 96
-\defineuclass 2 161 98
-\defineuclass 2 161 100
-\defineuclass 2 161 102
-\defineuclass 2 161 104
-\defineuclass 2 161 106
-\defineuclass 2 161 108
-\defineuclass 2 161 110
-\defineuclass 2 161 112
-\defineuclass 2 161 114
-\defineuclass 2 161 116
-\defineuclass 2 161 118
-\defineuclass 2 161 120
-\defineuclass 2 161 122
-\defineuclass 2 161 124
-\defineuclass 2 161 126
-\defineuclass 2 161 162
-\defineuclass 2 161 164
-\defineuclass 2 161 166
-\defineuclass 2 161 168
-\defineuclass 2 161 170
-\defineuclass 2 161 172
-\defineuclass 2 161 196
-\defineuclass 2 161 227
-\defineuclass 2 162 88
-\defineuclass 2 163 223
-
-\defineudigit 0 162 179
-\defineudigit 1 164 64
-\defineudigit 2 164 71
-\defineudigit 3 164 84
-\defineudigit 4 165 124
-\defineudigit 5 164 173
-\defineudigit 6 164 187
-\defineudigit 7 164 67
-\defineudigit 8 164 75
-\defineudigit 9 164 69
-\defineudigit 10 164 81
-\defineudigit 100 166 202
-\defineudigit 1000 164 100
-\defineudigit 10000 201 69
-\defineudigit 100000000 187 245
-
-\defineudigit 0* 185 115
-\defineudigit 1* 179 252
-\defineudigit 2* 182 76
-\defineudigit 3* 176 209
-\defineudigit 4* 184 118
-\defineudigit 5* 165 238
-\defineudigit 6* 179 176
-\defineudigit 7* 172 110
-\defineudigit 8* 174 195
-\defineudigit 9* 168 104
-\defineudigit 10* 172 66
-\defineudigit 100* 168 213
-\defineudigit 1000* 165 97
-\defineudigit 10000* 184 85
-\defineudigit 100000000* 187 245
-
-\defineudigit 20 164 220
-\defineudigit 21 164 64
-\defineudigit 22 164 71
-\defineudigit 23 164 84
-\defineudigit 24 165 124
-\defineudigit 25 164 173
-\defineudigit 26 164 187
-\defineudigit 27 164 67
-\defineudigit 28 164 75
-\defineudigit 29 164 69
-
-\defineudigit 30 164 202
-\defineudigit 31 164 64
-\defineudigit 32 164 71
-\defineudigit 33 164 84
-\defineudigit 34 165 124
-\defineudigit 35 164 173
-\defineudigit 36 164 187
-\defineudigit 37 164 67
-\defineudigit 38 164 75
-\defineudigit 39 164 69
-
-\stopencoding
-
-\startencoding[gbk]
-
-\defineuclass 1 161 174
-\defineuclass 1 161 176
-\defineuclass 1 161 178
-\defineuclass 1 161 180
-\defineuclass 1 161 182
-\defineuclass 1 161 184
-\defineuclass 1 161 186
-\defineuclass 1 161 188
-\defineuclass 1 161 190
-\defineuclass 1 163 168
-\defineuclass 1 163 219
-\defineuclass 1 163 224
-\defineuclass 1 163 251
-
-\defineuclass 3 161 164
-\defineuclass 3 161 167
-\defineuclass 3 161 173
-\defineuclass 3 163 190
-
-\defineuclass 2 161 162
-\defineuclass 2 161 163
-\defineuclass 2 161 170
-\defineuclass 2 161 171
-\defineuclass 2 161 175
-\defineuclass 2 161 177
-\defineuclass 2 161 179
-\defineuclass 2 161 181
-\defineuclass 2 161 183
-\defineuclass 2 161 185
-\defineuclass 2 161 187
-\defineuclass 2 161 189
-\defineuclass 2 161 191
-\defineuclass 2 161 203
-\defineuclass 2 161 227
-\defineuclass 2 161 228
-\defineuclass 2 161 229
-\defineuclass 2 163 161
-\defineuclass 2 163 162
-\defineuclass 2 163 167
-\defineuclass 2 163 169
-\defineuclass 2 163 172
-\defineuclass 2 163 174
-\defineuclass 2 163 186
-\defineuclass 2 163 187
-\defineuclass 2 163 191
-\defineuclass 2 163 221
-\defineuclass 2 163 253
-
-\defineudigit 0 161 240
-\defineudigit 1 210 187
-\defineudigit 2 182 254
-\defineudigit 3 200 253
-\defineudigit 4 203 196
-\defineudigit 5 206 229
-\defineudigit 6 193 249
-\defineudigit 7 198 223
-\defineudigit 8 176 203
-\defineudigit 9 190 197
-\defineudigit 10 202 174
-\defineudigit 100 176 217
-\defineudigit 1000 199 167
-\defineudigit 10000 205 242
-\defineudigit 100000000 210 218
-
-\defineudigit 0* 193 227
-\defineudigit 1* 210 188
-\defineudigit 2* 183 161
-\defineudigit 3* 200 254
-\defineudigit 4* 203 193
-\defineudigit 5* 206 233
-\defineudigit 6* 194 189
-\defineudigit 7* 198 226
-\defineudigit 8* 176 198
-\defineudigit 9* 190 193
-\defineudigit 10* 202 176
-\defineudigit 100* 176 219
-\defineudigit 1000* 199 170
-\defineudigit 10000* 200 102
-\defineudigit 100000000* 210 218
-
-\defineudigit 20 216 165
-\defineudigit 21 210 187
-\defineudigit 22 182 254
-\defineudigit 23 200 253
-\defineudigit 24 203 196
-\defineudigit 25 206 229
-\defineudigit 26 193 249
-\defineudigit 27 198 223
-\defineudigit 28 176 203
-\defineudigit 29 190 197
-
-\defineudigit 30 216 166
-\defineudigit 31 210 187
-\defineudigit 32 182 254
-\defineudigit 33 200 253
-\defineudigit 34 203 196
-\defineudigit 35 206 229
-\defineudigit 36 193 249
-\defineudigit 37 198 223
-\defineudigit 38 176 203
-\defineudigit 39 190 197
-
-\stopencoding
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-com.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-com.mkii
deleted file mode 100644
index 620ac0c96ee..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-com.mkii
+++ /dev/null
@@ -1,37 +0,0 @@
-%D \module
-%D [ file=enco-com,
-%D version=2000.20.12, % split from base file
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Composed Characters Commands,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Here we map some \quote {short} names onto the more
-%D verbose glyph names.
-
-\def\AA{\Aring}
-\def\aa{\aring}
-\def\AE{\AEligature}
-\def\ae{\aeligature}
-\def\CC{\Ccedilla}
-\def\cc{\ccedilla}
-\def \L{\Lstroke}
-\def \l{\lstroke}
-\def \O{\Ostroke}
-\def \o{\ostroke}
-\def\OE{\OEligature}
-\def\oe{\oeligature}
-\def\SZ{\Ssharp}
-\def\sz{\ssharp}
-\def\SS{\ssharp}
-\def\IJ{\IJligature}
-\def\ij{\ijligature}
-\def \i{\dotlessi}
-\def \j{\dotlessj}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-cyr.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-cyr.mkii
deleted file mode 100644
index aa412d8d3a4..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-cyr.mkii
+++ /dev/null
@@ -1,1037 +0,0 @@
-%D \module
-%D [ file=enco-cyr,
-%D version=2003.01.24,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Cyrillic,
-%D author=...,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D The following kerning test is inspired by a test file
-%D provided by Victor Figurnov. I hope he still recognizes
-%D some bit and pieces.
-%D
-%D \starttyping
-%D \setupoutput[pdftex]
-%D
-%D \startMPenvironment[global]
-%D \useregime[cyr]
-%D \useencoding[cyr]
-%D \mainlanguage[ru]
-%D \enableregime[cp1251]
-%D \setupbodyfont[cyr]
-%D \stopMPenvironment
-%D
-%D \startbuffer
-%D \starttabulate[|l|l|l|]
-%D \NC \ruledhbox{} \NC \ruledhbox{AV} \NC with kerning \NC \NR
-%D \NC \ruledhbox{{}{}} \NC \ruledhbox{A{}V} \NC without kerning \NC \NR
-%D \NC \ruledhbox{\tfd } \NC \ruledhbox{\tfd AV} \NC with kerning \NC \NR
-%D \NC \ruledhbox{\tfd {}{}} \NC \ruledhbox{\tfd A{}V} \NC without kerning \NC \NR
-%D \stoptabulate
-%D
-%D \showkerning{ }
-%D \stopbuffer
-%D
-%D \starttext
-%D
-%D \title{Kerning test}
-%D
-%D \typebuffer
-%D
-%D \rm \subject{Serif font} \getbuffer
-%D \ss \subject{SansSerif font} \getbuffer
-%D \tt \subject{MonoSpacec font} \getbuffer
-%D
-%D \stoptext
-%D \stoptyping
-
-%D We start with a fallback, define by HH, who assumes that
-%D this is phonetic.
-
-\startmapping[t2a]
-
-\resetcaserange 128 to 255
-
-\definecasemaps 192 to 223 lc +32 uc 0 % base letters (russian)
-\definecasemaps 224 to 255 lc 0 uc -32
-
-\definecasemaps 128 to 156 lc +32 uc 0 % extra letters (cyrillic and old-slav)
-\definecasemaps 160 to 188 lc 0 uc -32
-
-\definecasemap 73 105 73 \definecasemap 105 105 73 % cyrillicII
-\definecasemap 74 106 74 \definecasemap 106 106 74 % cyrillicJE
-\definecasemap 81 113 81 \definecasemap 113 113 81 % cyrillicQ
-\definecasemap 87 119 87 \definecasemap 119 119 87 % cyrillicW
-
-\stopmapping
-
-\startencoding[t2a]
-
-\definecharacter textgrave 0
-\definecharacter textacute 1
-\definecharacter textcircumflex 2
-\definecharacter texttilde 3
-\definecharacter textdiaeresis 4
-\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 textcyrillicflex 18
-\definecharacter textdblgrave 19
-\definecharacter textcyrillicbreve 20
-
-\definecharacter endash 21
-\definecharacter emdash 22
-
-\definecharacter textcompwordmark 23
-\definecharacter textbackslash 92
-\definecharacter textasciicircum 94
-\definecharacter textunderscore 95
-\definecharacter textbraceleft 123
-\definecharacter textbraceright 125
-\definecharacter textasciitilde 126
-\definecharacter textnumero 157
-\definecharacter textcurrency 158
-\definecharacter sectionmark 159
-
-\definecharacter quotedbl 34
-\definecharacter quoteleft 96
-\definecharacter upperleftsingleninequote 39
-\definecharacter quotedblleft 16
-\definecharacter quotedblright 17
-\definecharacter lowerleftdoubleninequote 189
-\definecharacter upperrightdoublesixquote 16
-\definecharacter upperrightdoubleninequote 17
-\definecharacter quotedblbase 189
-
-\definecharacter cyrillicpalochka 13
-\definecharacter cyrilliclangle 14
-\definecharacter cyrillicrangle 15
-
-\definecharacter leftguillemot 190
-\definecharacter rightguillemot 191
-\definecharacter dotlessi 25
-
-\definecharacter cyrillicA 192
-\definecharacter cyrillica 224
-\definecharacter cyrillicB 193
-\definecharacter cyrillicb 225
-\definecharacter cyrillicV 194
-\definecharacter cyrillicv 226
-\definecharacter cyrillicG 195
-\definecharacter cyrillicg 227
-\definecharacter cyrillicD 196
-\definecharacter cyrillicd 228
-\definecharacter cyrillicE 197
-\definecharacter cyrillice 229
-\definecharacter cyrillicZH 198
-\definecharacter cyrilliczh 230
-\definecharacter cyrillicZ 199
-\definecharacter cyrillicz 231
-\definecharacter cyrillicI 200
-\definecharacter cyrillici 232
-\definecharacter cyrillicISHRT 201
-\definecharacter cyrillicishrt 233
-\definecharacter cyrillicK 202
-\definecharacter cyrillick 234
-\definecharacter cyrillicL 203
-\definecharacter cyrillicl 235
-\definecharacter cyrillicM 204
-\definecharacter cyrillicm 236
-\definecharacter cyrillicN 205
-\definecharacter cyrillicn 237
-\definecharacter cyrillicO 206
-\definecharacter cyrillico 238
-\definecharacter cyrillicP 207
-\definecharacter cyrillicp 239
-\definecharacter cyrillicR 208
-\definecharacter cyrillicr 240
-\definecharacter cyrillicS 209
-\definecharacter cyrillics 241
-\definecharacter cyrillicT 210
-\definecharacter cyrillict 242
-\definecharacter cyrillicU 211
-\definecharacter cyrillicu 243
-\definecharacter cyrillicF 212
-\definecharacter cyrillicf 244
-\definecharacter cyrillicH 213
-\definecharacter cyrillich 245
-\definecharacter cyrillicC 214
-\definecharacter cyrillicc 246
-\definecharacter cyrillicCH 215
-\definecharacter cyrillicch 247
-\definecharacter cyrillicSH 216
-\definecharacter cyrillicsh 248
-\definecharacter cyrillicSHCH 217
-\definecharacter cyrillicshch 249
-\definecharacter cyrillicHRDSN 218
-\definecharacter cyrillichrdsn 250
-\definecharacter cyrillicERY 219
-\definecharacter cyrillicery 251
-\definecharacter cyrillicSFTSN 220
-\definecharacter cyrillicsftsn 252
-\definecharacter cyrillicEREV 221
-\definecharacter cyrillicerev 253
-\definecharacter cyrillicYU 222
-\definecharacter cyrillicyu 254
-\definecharacter cyrillicYA 223
-\definecharacter cyrillicya 255
-\definecharacter cyrillicGUP 128
-\definecharacter cyrillicgup 160
-\definecharacter cyrillicGHCRS 129
-\definecharacter cyrillicghcrs 161
-\definecharacter cyrillicDJE 130
-\definecharacter cyrillicdje 162
-\definecharacter cyrillicTSHE 131
-\definecharacter cyrillictshe 163
-\definecharacter cyrillicSHHA 132
-\definecharacter cyrillicshha 164
-\definecharacter cyrillicZHDSC 133
-\definecharacter cyrilliczhdsc 165
-\definecharacter cyrillicZDSC 134
-\definecharacter cyrilliczdsc 166
-\definecharacter cyrillicLJE 135
-\definecharacter cyrilliclje 167
-\definecharacter cyrillicYI 136
-\definecharacter cyrillicyi 168
-\definecharacter cyrillicKDSC 137
-\definecharacter cyrillickdsc 169
-\definecharacter cyrillicKBEAK 138
-\definecharacter cyrillickbeak 170
-\definecharacter cyrillicKVCRS 139
-\definecharacter cyrillickvcrs 171
-\definecharacter cyrillicAE 140
-\definecharacter cyrillicae 172
-\definecharacter cyrillicNDSC 141
-\definecharacter cyrillicndsc 173
-\definecharacter cyrillicNG 142
-\definecharacter cyrillicng 174
-\definecharacter cyrillicDZE 143
-\definecharacter cyrillicdze 175
-\definecharacter cyrillicOTLD 144
-\definecharacter cyrillicotld 176
-\definecharacter cyrillicSDSC 145
-\definecharacter cyrillicsdsc 177
-\definecharacter cyrillicUSHRT 146
-\definecharacter cyrillicushrt 178
-\definecharacter cyrillicY 147
-\definecharacter cyrillicy 179
-\definecharacter cyrillicYHCRS 148
-\definecharacter cyrillicyhcrs 180
-\definecharacter cyrillicHDSC 149
-\definecharacter cyrillichdsc 181
-\definecharacter cyrillicDZHE 150
-\definecharacter cyrillicdzhe 182
-\definecharacter cyrillicCHVCRS 151
-\definecharacter cyrillicchvcrs 183
-\definecharacter cyrillicCHRDSC 152
-\definecharacter cyrillicchrdsc 184
-\definecharacter cyrillicIE 153
-\definecharacter cyrillicie 185
-\definecharacter cyrillicSCHWA 154
-\definecharacter cyrillicschwa 186
-\definecharacter cyrillicNJE 155
-\definecharacter cyrillicnje 187
-\definecharacter cyrillicYO 156
-\definecharacter cyrillicyo 188
-\definecharacter cyrillicII 73
-\definecharacter cyrillicii 105
-\definecharacter cyrillicJE 74
-\definecharacter cyrillicje 106
-\definecharacter cyrillicQ 81
-\definecharacter cyrillicq 113
-\definecharacter cyrillicW 87
-\definecharacter cyrillicw 119
-
-% \definecharacter textperthousand {\%\char 24 }
-% \definecharacter textpertenthousand {\%\char 24\char 24 }
-
-\definecharacter cyrillicgheupturn 160 % to satisfy the patterns
-
-\stopencoding
-
-\startmapping[t2b]
-
-\resetcaserange 128 to 255
-
-\definecasemaps 192 to 223 lc +32 uc 0 % base letters (russian)
-\definecasemaps 224 to 255 lc 0 uc -32
-
-\definecasemaps 128 to 156 lc +32 uc 0 % extra letters (cyrillic and old-slav)
-\definecasemaps 160 to 188 lc 0 uc -32
-
-\definecasemap 73 105 73 \definecasemap 105 105 73 % cyrillicII
-\definecasemap 74 106 74 \definecasemap 106 106 74 % cyrillicJE
-\definecasemap 81 113 81 \definecasemap 113 113 81 % cyrillicQ
-\definecasemap 83 115 83 \definecasemap 115 115 83 % cyrillicDZE
-\definecasemap 87 119 87 \definecasemap 119 119 87 % cyrillicW
-
-\stopmapping
-
-\startencoding[t2b]
-
-\definecharacter textgrave 0
-\definecharacter textacute 1
-\definecharacter textcircumflex 2
-\definecharacter texttilde 3
-\definecharacter textdiaeresis 4
-\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 textcyrillicflex 18
-\definecharacter textdblgrave 19
-\definecharacter textcyrillicbreve 20
-
-\definecharacter endash 21
-\definecharacter emdash 22
-
-\definecharacter textcompwordmark 23
-\definecharacter textbackslash 92
-\definecharacter textasciicircum 94
-\definecharacter textunderscore 95
-\definecharacter textbraceleft 123
-\definecharacter textbraceright 125
-\definecharacter textasciitilde 126
-\definecharacter textnumero 157
-\definecharacter textcurrency 158
-\definecharacter sectionmark 159
-\definecharacter quotedbl 34
-\definecharacter quoteleft 96
-\definecharacter upperleftsingleninequote 39
-\definecharacter quotedblleft 16
-\definecharacter quotedblright 17
-\definecharacter lowerleftdoubleninequote 189
-
-\definecharacter upperrightdoublesixquote 16
-\definecharacter upperrightdoubleninequote 17
-\definecharacter quotedblbase 189
-
-\definecharacter cyrillicpalochka 13
-\definecharacter cyrilliclangle 14
-\definecharacter cyrillicrangle 15
-
-\definecharacter leftguillemot 190
-\definecharacter rightguillemot 191
-\definecharacter dotlessi 25
-
-\definecharacter cyrillicA 192
-\definecharacter cyrillica 224
-\definecharacter cyrillicB 193
-\definecharacter cyrillicb 225
-\definecharacter cyrillicV 194
-\definecharacter cyrillicv 226
-\definecharacter cyrillicG 195
-\definecharacter cyrillicg 227
-\definecharacter cyrillicD 196
-\definecharacter cyrillicd 228
-\definecharacter cyrillicE 197
-\definecharacter cyrillice 229
-\definecharacter cyrillicZH 198
-\definecharacter cyrilliczh 230
-\definecharacter cyrillicZ 199
-\definecharacter cyrillicz 231
-\definecharacter cyrillicI 200
-\definecharacter cyrillici 232
-\definecharacter cyrillicISHRT 201
-\definecharacter cyrillicishrt 233
-\definecharacter cyrillicK 202
-\definecharacter cyrillick 234
-\definecharacter cyrillicL 203
-\definecharacter cyrillicl 235
-\definecharacter cyrillicM 204
-\definecharacter cyrillicm 236
-\definecharacter cyrillicN 205
-\definecharacter cyrillicn 237
-\definecharacter cyrillicO 206
-\definecharacter cyrillico 238
-\definecharacter cyrillicP 207
-\definecharacter cyrillicp 239
-\definecharacter cyrillicR 208
-\definecharacter cyrillicr 240
-\definecharacter cyrillicS 209
-\definecharacter cyrillics 241
-\definecharacter cyrillicT 210
-\definecharacter cyrillict 242
-\definecharacter cyrillicU 211
-\definecharacter cyrillicu 243
-\definecharacter cyrillicF 212
-\definecharacter cyrillicf 244
-\definecharacter cyrillicH 213
-\definecharacter cyrillich 245
-\definecharacter cyrillicC 214
-\definecharacter cyrillicc 246
-\definecharacter cyrillicCH 215
-\definecharacter cyrillicch 247
-\definecharacter cyrillicSH 216
-\definecharacter cyrillicsh 248
-\definecharacter cyrillicSHCH 217
-\definecharacter cyrillicshch 249
-\definecharacter cyrillicHRDSN 218
-\definecharacter cyrillichrdsn 250
-\definecharacter cyrillicERY 219
-\definecharacter cyrillicery 251
-\definecharacter cyrillicSFTSN 220
-\definecharacter cyrillicsftsn 252
-\definecharacter cyrillicEREV 221
-\definecharacter cyrillicerev 253
-\definecharacter cyrillicYU 222
-\definecharacter cyrillicyu 254
-\definecharacter cyrillicYA 223
-\definecharacter cyrillicya 255
-\definecharacter cyrillicGDSCHCRS 128
-\definecharacter cyrillicgdschcrs 160
-\definecharacter cyrillicGHCRS 129
-\definecharacter cyrillicghcrs 161
-\definecharacter cyrillicGDSC 130
-\definecharacter cyrillicgdsc 162
-\definecharacter cyrillicGHK 131
-\definecharacter cyrillicghk 163
-\definecharacter cyrillicSHHA 132
-\definecharacter cyrillicshha 164
-\definecharacter cyrillicZHDSC 133
-\definecharacter cyrilliczhdsc 165
-\definecharacter cyrillicDELTA 134
-\definecharacter cyrillicdelta 166
-\definecharacter cyrillicABHDZE 135
-\definecharacter cyrillicabhdze 167
-\definecharacter cyrillicLJE 136
-\definecharacter cyrilliclje 168
-\definecharacter cyrillicKDSC 137
-\definecharacter cyrillickdsc 169
-\definecharacter cyrillicLDSC 138
-\definecharacter cyrillicldsc 170
-\definecharacter cyrillicKHK 139
-\definecharacter cyrillickhk 171
-\definecharacter cyrillicLHK 140
-\definecharacter cyrilliclhk 172
-\definecharacter cyrillicNDSC 141
-\definecharacter cyrillicndsc 173
-\definecharacter cyrillicNG 142
-\definecharacter cyrillicng 174
-\definecharacter cyrillicNHK 143
-\definecharacter cyrillicnhk 175
-\definecharacter cyrillicOTLD 144
-\definecharacter cyrillicotld 176
-\definecharacter cyrillicSACRS 145
-\definecharacter cyrillicsacrs 177
-\definecharacter cyrillicUSHRT 146
-\definecharacter cyrillicushrt 178
-\definecharacter cyrillicY 147
-\definecharacter cyrillicy 179
-\definecharacter cyrillicHHCRS 148
-\definecharacter cyrillichhcrs 180
-\definecharacter cyrillicHDSC 149
-\definecharacter cyrillichdsc 181
-\definecharacter cyrillicHHK 150
-\definecharacter cyrillichhk 182
-\definecharacter cyrillicCHLDSC 151
-\definecharacter cyrillicchldsc 183
-\definecharacter cyrillicCHRDSC 152
-\definecharacter cyrillicchrdsc 184
-\definecharacter cyrillicNJE 153
-\definecharacter cyrillicnje 185
-\definecharacter cyrillicSCHWA 154
-\definecharacter cyrillicschwa 186
-\definecharacter cyrillicEPS 155
-\definecharacter cyrilliceps 187
-\definecharacter cyrillicYO 156
-\definecharacter cyrillicyo 188
-\definecharacter cyrillicII 73
-\definecharacter cyrillicii 105
-\definecharacter cyrillicJE 74
-\definecharacter cyrillicje 106
-\definecharacter cyrillicQ 81
-\definecharacter cyrillicq 113
-\definecharacter cyrillicDZE 83
-\definecharacter cyrillicdze 115
-\definecharacter cyrillicW 87
-\definecharacter cyrillicw 119
-
-\stopencoding
-
-\startmapping[t2c]
-
-\resetcaserange 128 to 255
-
-\definecasemaps 192 to 223 lc +32 uc 0 % base letters (russian)
-\definecasemaps 224 to 255 lc 0 uc -32
-
-\definecasemaps 128 to 156 lc +32 uc 0 % extra letters (cyrillic and old-slav)
-\definecasemaps 160 to 188 lc 0 uc -32
-
-\definecasemap 73 105 73 \definecasemap 105 105 73 % cyrillicII
-\definecasemap 74 106 74 \definecasemap 106 106 74 % cyrillicJE
-\definecasemap 81 113 81 \definecasemap 113 113 81 % cyrillicQ
-\definecasemap 83 115 83 \definecasemap 115 115 83 % cyrillicDZE
-\definecasemap 87 119 87 \definecasemap 119 119 87 % cyrillicW
-
-\stopmapping
-
-\startencoding[t2c]
-
-\definecharacter textgrave 0
-\definecharacter textacute 1
-\definecharacter textcircumflex 2
-\definecharacter texttilde 3
-\definecharacter textdiaeresis 4
-\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 textcyrillicflex 18
-\definecharacter textdblgrave 19
-\definecharacter textcyrillicbreve 20
-
-\definecharacter endash 21
-\definecharacter emdash 22
-
-\definecharacter textcompwordmark 23
-\definecharacter textbackslash 92
-\definecharacter textasciicircum 94
-\definecharacter textunderscore 95
-\definecharacter textbraceleft 123
-\definecharacter textbraceright 125
-\definecharacter textasciitilde 126
-\definecharacter textnumero 157
-\definecharacter textcurrency 158
-\definecharacter sectionmark 159
-\definecharacter quotedbl 34
-\definecharacter quoteleft 96
-\definecharacter upperleftsingleninequote 39
-\definecharacter quotedblleft 16
-\definecharacter quotedblright 17
-\definecharacter lowerleftdoubleninequote 189
-\definecharacter upperrightdoublesixquote 16
-\definecharacter upperrightdoubleninequote 17
-\definecharacter quotedblbase 189
-
-\definecharacter cyrillicpalochka 13
-\definecharacter cyrilliclangle 14
-\definecharacter cyrillicrangle 15
-
-\definecharacter leftguillemot 190
-\definecharacter rightguillemot 191
-
-\definecharacter dotlessi 25
-
-\definecharacter cyrillicA 192
-\definecharacter cyrillica 224
-\definecharacter cyrillicB 193
-\definecharacter cyrillicb 225
-\definecharacter cyrillicV 194
-\definecharacter cyrillicv 226
-\definecharacter cyrillicG 195
-\definecharacter cyrillicg 227
-\definecharacter cyrillicD 196
-\definecharacter cyrillicd 228
-\definecharacter cyrillicE 197
-\definecharacter cyrillice 229
-\definecharacter cyrillicZH 198
-\definecharacter cyrilliczh 230
-\definecharacter cyrillicZ 199
-\definecharacter cyrillicz 231
-\definecharacter cyrillicI 200
-\definecharacter cyrillici 232
-\definecharacter cyrillicISHRT 201
-\definecharacter cyrillicishrt 233
-\definecharacter cyrillicK 202
-\definecharacter cyrillick 234
-\definecharacter cyrillicL 203
-\definecharacter cyrillicl 235
-\definecharacter cyrillicM 204
-\definecharacter cyrillicm 236
-\definecharacter cyrillicN 205
-\definecharacter cyrillicn 237
-\definecharacter cyrillicO 206
-\definecharacter cyrillico 238
-\definecharacter cyrillicP 207
-\definecharacter cyrillicp 239
-\definecharacter cyrillicR 208
-\definecharacter cyrillicr 240
-\definecharacter cyrillicS 209
-\definecharacter cyrillics 241
-\definecharacter cyrillicT 210
-\definecharacter cyrillict 242
-\definecharacter cyrillicU 211
-\definecharacter cyrillicu 243
-\definecharacter cyrillicF 212
-\definecharacter cyrillicf 244
-\definecharacter cyrillicH 213
-\definecharacter cyrillich 245
-\definecharacter cyrillicC 214
-\definecharacter cyrillicc 246
-\definecharacter cyrillicCH 215
-\definecharacter cyrillicch 247
-\definecharacter cyrillicSH 216
-\definecharacter cyrillicsh 248
-\definecharacter cyrillicSHCH 217
-\definecharacter cyrillicshch 249
-\definecharacter cyrillicHRDSN 218
-\definecharacter cyrillichrdsn 250
-\definecharacter cyrillicERY 219
-\definecharacter cyrillicery 251
-\definecharacter cyrillicSFTSN 220
-\definecharacter cyrillicsftsn 252
-\definecharacter cyrillicEREV 221
-\definecharacter cyrillicerev 253
-\definecharacter cyrillicYU 222
-\definecharacter cyrillicyu 254
-\definecharacter cyrillicYA 223
-\definecharacter cyrillicya 255
-\definecharacter cyrillicPHK 128
-\definecharacter cyrillicphk 160
-\definecharacter cyrillicTETSE 129
-\definecharacter cyrillictetse 161
-\definecharacter cyrillicTDSC 130
-\definecharacter cyrillictdsc 162
-\definecharacter cyrillicGHK 131
-\definecharacter cyrillicghk 163
-\definecharacter cyrillicSHHA 132
-\definecharacter cyrillicshha 164
-\definecharacter cyrillicRDSC 133
-\definecharacter cyrillicrdsc 165
-\definecharacter cyrillicRTICK 134
-\definecharacter cyrillicrtick 166
-\definecharacter cyrillicABHDZE 135
-\definecharacter cyrillicabhdze 167
-\definecharacter cyrillicMDSC 136
-\definecharacter cyrillicmdsc 168
-\definecharacter cyrillicKDSC 137
-\definecharacter cyrillickdsc 169
-\definecharacter cyrillicLDSC 138
-\definecharacter cyrillicldsc 170
-\definecharacter cyrillicKHCRS 139
-\definecharacter cyrillickhcrs 171
-\definecharacter cyrillicLHK 140
-\definecharacter cyrilliclhk 172
-\definecharacter cyrillicNDSC 141
-\definecharacter cyrillicndsc 173
-\definecharacter cyrillicMHK 142
-\definecharacter cyrillicmhk 174
-\definecharacter cyrillicNHK 143
-\definecharacter cyrillicnhk 175
-\definecharacter cyrillicOTLD 144
-\definecharacter cyrillicotld 176
-\definecharacter cyrillicABHCH 145
-\definecharacter cyrillicabhch 177
-\definecharacter cyrillicABHCHDSC 146
-\definecharacter cyrillicabhchdsc 178
-\definecharacter cyrillicSEMISFTSN 147
-\definecharacter cyrillicsemisftsn 179
-\definecharacter cyrillicISHRTDSC 148
-\definecharacter cyrillicishrtdsc 180
-\definecharacter cyrillicHDSC 149
-\definecharacter cyrillichdsc 181
-\definecharacter cyrillicDZHE 150
-\definecharacter cyrillicdzhe 182
-\definecharacter cyrillicABHHA 151
-\definecharacter cyrillicabhha 183
-\definecharacter cyrillicCHRDSC 152
-\definecharacter cyrillicchrdsc 184
-\definecharacter cyrillicNLHK 153
-\definecharacter cyrillicnlhk 185
-\definecharacter cyrillicSCHWA 154
-\definecharacter cyrillicschwa 186
-\definecharacter cyrillicRHK 155
-\definecharacter cyrillicrhk 187
-\definecharacter cyrillicYO 156
-\definecharacter cyrillicyo 188
-\definecharacter cyrillicII 73
-\definecharacter cyrillicii 105
-\definecharacter cyrillicJE 74
-\definecharacter cyrillicje 106
-\definecharacter cyrillicQ 81
-\definecharacter cyrillicq 113
-\definecharacter cyrillicDZE 83
-\definecharacter cyrillicdze 115
-\definecharacter cyrillicW 87
-\definecharacter cyrillicw 119
-
-\stopencoding
-
-\startmapping[x2]
-
-\resetcaserange 128 to 255
-
-\definecasemaps 192 to 223 lc +32 uc 0 % base letters (russian)
-\definecasemaps 224 to 255 lc 0 uc -32
-
-\definecasemaps 128 to 156 lc +32 uc 0 % extra letters (cyrillic and old-slav)
-\definecasemaps 160 to 188 lc 0 uc -32
-
-\definecasemaps 65 to 90 lc +32 uc 0 % more extra letters (cyrillic and old-slav)
-\definecasemaps 97 to 122 lc 0 uc -32
-
-\definecasemap 28 29 28 \definecasemap 29 29 28 % cyrillicNLHK
-\definecasemap 30 31 30 \definecasemap 31 31 30 % cyrillicDELTA
-
-\stopmapping
-
-\startencoding[x2]
-
-\definecharacter textgrave 0
-\definecharacter textacute 1
-\definecharacter textcircumflex 2
-\definecharacter texttilde 3
-\definecharacter textdiaeresis 4
-\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 endash 21
-\definecharacter emdash 22
-
-\definecharacter textcompwordmark 23
-\definecharacter textvisiblespace 32
-\definecharacter textdollar 36
-\definecharacter textless 60
-\definecharacter textgreater 62
-\definecharacter textbackslash 92
-\definecharacter textasciicircum 94
-\definecharacter textunderscore 95
-\definecharacter textbraceleft 123
-\definecharacter textbar 124
-\definecharacter textbraceright 125
-\definecharacter textasciitilde 126
-\definecharacter textnumero 157
-\definecharacter textcurrency 158
-\definecharacter textsection 159
-\definecharacter sectionmark 159
-\definecharacter textquotedbl 34
-
-\definecharacter cyrillicpalochka 13
-\definecharacter cyrilliclangle 14
-\definecharacter cyrillicrangle 15
-
-\definecharacter leftguillemot 190
-\definecharacter rightguillemot 191
-
-\definecharacter upperleftsinglesixquote 96
-\definecharacter upperleftsingleninequote 39
-\definecharacter upperleftdoublesixquote 16
-\definecharacter upperleftdoubleninequote 17
-\definecharacter lowerleftdoubleninequote 189
-
-\definecharacter upperrightsinglesixquote 96
-\definecharacter upperrightsingleninequote 39
-\definecharacter upperrightdoublesixquote 16
-\definecharacter upperrightdoubleninequote 17
-\definecharacter lowerrightdoubleninequote 189
-
-\definecharacter cyrillicA 192
-\definecharacter cyrillica 224
-\definecharacter cyrillicB 193
-\definecharacter cyrillicb 225
-\definecharacter cyrillicV 194
-\definecharacter cyrillicv 226
-\definecharacter cyrillicG 195
-\definecharacter cyrillicg 227
-\definecharacter cyrillicD 196
-\definecharacter cyrillicd 228
-\definecharacter cyrillicE 197
-\definecharacter cyrillice 229
-\definecharacter cyrillicZH 198
-\definecharacter cyrilliczh 230
-\definecharacter cyrillicZ 199
-\definecharacter cyrillicz 231
-\definecharacter cyrillicI 200
-\definecharacter cyrillici 232
-\definecharacter cyrillicISHRT 201
-\definecharacter cyrillicishrt 233
-\definecharacter cyrillicK 202
-\definecharacter cyrillick 234
-\definecharacter cyrillicL 203
-\definecharacter cyrillicl 235
-\definecharacter cyrillicM 204
-\definecharacter cyrillicm 236
-\definecharacter cyrillicN 205
-\definecharacter cyrillicn 237
-\definecharacter cyrillicO 206
-\definecharacter cyrillico 238
-\definecharacter cyrillicP 207
-\definecharacter cyrillicp 239
-\definecharacter cyrillicR 208
-\definecharacter cyrillicr 240
-\definecharacter cyrillicS 209
-\definecharacter cyrillics 241
-\definecharacter cyrillicT 210
-\definecharacter cyrillict 242
-\definecharacter cyrillicU 211
-\definecharacter cyrillicu 243
-\definecharacter cyrillicF 212
-\definecharacter cyrillicf 244
-\definecharacter cyrillicH 213
-\definecharacter cyrillich 245
-\definecharacter cyrillicC 214
-\definecharacter cyrillicc 246
-\definecharacter cyrillicCH 215
-\definecharacter cyrillicch 247
-\definecharacter cyrillicSH 216
-\definecharacter cyrillicsh 248
-\definecharacter cyrillicSHCH 217
-\definecharacter cyrillicshch 249
-\definecharacter cyrillicHRDSN 218
-\definecharacter cyrillichrdsn 250
-\definecharacter cyrillicERY 219
-\definecharacter cyrillicery 251
-\definecharacter cyrillicSFTSN 220
-\definecharacter cyrillicsftsn 252
-\definecharacter cyrillicEREV 221
-\definecharacter cyrillicerev 253
-\definecharacter cyrillicYU 222
-\definecharacter cyrillicyu 254
-\definecharacter cyrillicYA 223
-\definecharacter cyrillicya 255
-\definecharacter cyrillicGUP 128
-\definecharacter cyrillicgup 160
-\definecharacter cyrillicGHCRS 129
-\definecharacter cyrillicghcrs 161
-\definecharacter cyrillicGDSC 130
-\definecharacter cyrillicgdsc 162
-\definecharacter cyrillicGHK 131
-\definecharacter cyrillicghk 163
-\definecharacter cyrillicSHHA 132
-\definecharacter cyrillicshha 164
-\definecharacter cyrillicZHDSC 133
-\definecharacter cyrilliczhdsc 165
-\definecharacter cyrillicZDSC 134
-\definecharacter cyrilliczdsc 166
-\definecharacter cyrillicABHDZE 135
-\definecharacter cyrillicabhdze 167
-\definecharacter cyrillicYI 136
-\definecharacter cyrillicyi 168
-\definecharacter cyrillicKDSC 137
-\definecharacter cyrillickdsc 169
-\definecharacter cyrillicKBEAK 138
-\definecharacter cyrillickbeak 170
-\definecharacter cyrillicKHK 139
-\definecharacter cyrillickhk 171
-\definecharacter cyrillicLHK 140
-\definecharacter cyrilliclhk 172
-\definecharacter cyrillicNDSC 141
-\definecharacter cyrillicndsc 173
-\definecharacter cyrillicNG 142
-\definecharacter cyrillicng 174
-\definecharacter cyrillicNHK 143
-\definecharacter cyrillicnhk 175
-\definecharacter cyrillicOTLD 144
-\definecharacter cyrillicotld 176
-\definecharacter cyrillicSDSC 145
-\definecharacter cyrillicsdsc 177
-\definecharacter cyrillicUSHRT 146
-\definecharacter cyrillicushrt 178
-\definecharacter cyrillicY 147
-\definecharacter cyrillicy 179
-\definecharacter cyrillicYHCRS 148
-\definecharacter cyrillicyhcrs 180
-\definecharacter cyrillicHDSC 149
-\definecharacter cyrillichdsc 181
-\definecharacter cyrillicHHK 150
-\definecharacter cyrillichhk 182
-\definecharacter cyrillicCHLDSC 151
-\definecharacter cyrillicchldsc 183
-\definecharacter cyrillicCHRDSC 152
-\definecharacter cyrillicchrdsc 184
-\definecharacter cyrillicIE 153
-\definecharacter cyrillicie 185
-\definecharacter cyrillicSCHWA 154
-\definecharacter cyrillicschwa 186
-\definecharacter cyrillicEPS 155
-\definecharacter cyrilliceps 187
-\definecharacter cyrillicYO 156
-\definecharacter cyrillicyo 188
-\definecharacter cyrillicAE 65
-\definecharacter cyrillicae 97
-\definecharacter cyrillicDJE 66
-\definecharacter cyrillicdje 98
-\definecharacter cyrillicTSHE 67
-\definecharacter cyrillictshe 99
-\definecharacter cyrillicABHCH 68
-\definecharacter cyrillicabhch 100
-\definecharacter cyrillicABHCHDSC 69
-\definecharacter cyrillicabhchdsc 101
-\definecharacter cyrillicKVCRS 70
-\definecharacter cyrillickvcrs 102
-\definecharacter cyrillicKHCRS 71
-\definecharacter cyrillickhcrs 103
-\definecharacter cyrillicLDSC 72
-\definecharacter cyrillicldsc 104
-\definecharacter cyrillicII 73
-\definecharacter cyrillicii 105
-\definecharacter cyrillicJE 74
-\definecharacter cyrillicje 106
-\definecharacter cyrillicLJE 75
-\definecharacter cyrilliclje 107
-\definecharacter cyrillicMDSC 76
-\definecharacter cyrillicmdsc 108
-\definecharacter cyrillicNJE 77
-\definecharacter cyrillicnje 109
-\definecharacter cyrillicABHHA 78
-\definecharacter cyrillicabhha 110
-\definecharacter cyrillicPHK 79
-\definecharacter cyrillicphk 111
-\definecharacter cyrillicRDSC 80
-\definecharacter cyrillicrdsc 112
-\definecharacter cyrillicQ 81
-\definecharacter cyrillicq 113
-\definecharacter cyrillicTDSC 82
-\definecharacter cyrillictdsc 114
-\definecharacter cyrillicDZE 83
-\definecharacter cyrillicdze 115
-\definecharacter cyrillicTETSE 84
-\definecharacter cyrillictetse 116
-\definecharacter cyrillicDZHE 85
-\definecharacter cyrillicdzhe 117
-\definecharacter cyrillicCHVCRS 86
-\definecharacter cyrillicchvcrs 118
-\definecharacter cyrillicW 87
-\definecharacter cyrillicw 119
-\definecharacter cyrillicYAT 88
-\definecharacter cyrillicyat 120
-\definecharacter cyrillicBYUS 89
-\definecharacter cyrillicbyus 121
-\definecharacter cyrillicIZH 90
-\definecharacter cyrillicizh 122
-\definecharacter cyrillicNLHK 28
-\definecharacter cyrillicnlhk 29
-\definecharacter cyrillicDELTA 30
-\definecharacter cyrillicdelta 31
-
-\stopencoding
-
-\startmapping[lcy]
-
-\resetcaserange 128 to 255
-
-\definecasemaps 128 to 143 lc +32 uc 0
-\definecasemaps 160 to 175 lc 0 uc -32
-
-\definecasemaps 144 to 159 lc +80 uc 0
-\definecasemaps 224 to 239 lc 0 uc -80
-
-\definecasemap 240 241 240 \definecasemap 241 241 240 % cyrillicYO
-\definecasemap 242 243 242 \definecasemap 243 243 242 % cyrillicGUP
-\definecasemap 244 245 244 \definecasemap 245 245 244 % cyrillicIE
-\definecasemap 244 247 244 \definecasemap 247 247 244 % cyrillicII
-\definecasemap 248 249 248 \definecasemap 249 249 248 % cyrillicYI
-\definecasemap 250 251 240 \definecasemap 241 241 240 % cyrillicUSHRT
-
-\stopmapping
-
-\startencoding[lcy]
-
-%D Characters 0 to 127 are as in normal cmr slots
-
-\definecharacter cyrillicA 128
-\definecharacter cyrillicB 129
-\definecharacter cyrillicV 130
-\definecharacter cyrillicG 131
-\definecharacter cyrillicD 132
-\definecharacter cyrillicE 133
-\definecharacter cyrillicZH 134
-\definecharacter cyrillicZ 135
-\definecharacter cyrillicI 136
-\definecharacter cyrillicISHRT 137
-\definecharacter cyrillicK 138
-\definecharacter cyrillicL 139
-\definecharacter cyrillicM 140
-\definecharacter cyrillicN 141
-\definecharacter cyrillicO 142
-\definecharacter cyrillicP 143
-\definecharacter cyrillicR 144
-\definecharacter cyrillicS 145
-\definecharacter cyrillicT 146
-\definecharacter cyrillicU 147
-\definecharacter cyrillicF 148
-\definecharacter cyrillicH 149
-\definecharacter cyrillicC 150
-\definecharacter cyrillicCH 151
-\definecharacter cyrillicSH 152
-\definecharacter cyrillicSHCH 153
-\definecharacter cyrillicHRDSN 154
-\definecharacter cyrillicERY 155
-\definecharacter cyrillicSFTSN 156
-\definecharacter cyrillicEREV 157
-\definecharacter cyrillicYU 158
-\definecharacter cyrillicYA 159
-\definecharacter cyrillica 160
-\definecharacter cyrillicb 161
-\definecharacter cyrillicv 162
-\definecharacter cyrillicg 163
-\definecharacter cyrillicd 164
-\definecharacter cyrillice 165
-\definecharacter cyrilliczh 166
-\definecharacter cyrillicz 167
-\definecharacter cyrillici 168
-\definecharacter cyrillicishrt 169
-\definecharacter cyrillick 170
-\definecharacter cyrillicl 171
-\definecharacter cyrillicm 172
-\definecharacter cyrillicn 173
-\definecharacter cyrillico 174
-\definecharacter cyrillicp 175
-\definecharacter cyrillicr 224
-\definecharacter cyrillics 225
-\definecharacter cyrillict 226
-\definecharacter cyrillicu 227
-\definecharacter cyrillicf 228
-\definecharacter cyrillich 229
-\definecharacter cyrillicc 230
-\definecharacter cyrillicch 231
-\definecharacter cyrillicsh 232
-\definecharacter cyrillicshch 233
-\definecharacter cyrillichrdsn 234
-\definecharacter cyrillicery 235
-\definecharacter cyrillicsftsn 236
-\definecharacter cyrillicerev 237
-\definecharacter cyrillicyu 238
-\definecharacter cyrillicya 239
-\definecharacter cyrillicYO 240
-\definecharacter cyrillicyo 241
-\definecharacter cyrillicGUP 242
-\definecharacter cyrillicgup 243
-\definecharacter cyrillicIE 244
-\definecharacter cyrillicie 245
-\definecharacter cyrillicII 246
-\definecharacter cyrillicii 247
-\definecharacter cyrillicYI 248
-\definecharacter cyrillicyi 249
-\definecharacter cyrillicUSHRT 250
-\definecharacter cyrillicushrt 251
-
-\definecharacter emdash 196
-\definecharacter textcurrency 197
-\definecharacter textnumero 252
-\definecharacter leftguillemot 253
-\definecharacter rightguillemot 254
-\definecharacter quotedblbase 255
-
-\stopencoding
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-def.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-def.mkii
deleted file mode 100644
index 53a3e9a981b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-def.mkii
+++ /dev/null
@@ -1,923 +0,0 @@
-%D \module
-%D [ file=enco-def,
-%D version=2000.05.07, % 2000.20.12, % split from less verbose base file
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Default Character Definitions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Instead of overloading plain \TEX\ macros (and keeping them
-%D available as an escape), we now use the more verbose
-%D definitions in this file. Since memory is less a problem
-%D these days, this verbosity has only a small price, but we
-%D gain readability. The following definitions are based on
-%D usage of the the original \TEX\ fonts, where composed
-%D characters were not part of the design. So, occasionally
-%D we have to revert to hacks. Thanks to all those users who
-%D helped me to fill in the details.
-
-\startencoding[default]
-
-\definecharacter textcomma ,
-\definecharacter textperiod .
-
-\definecharacter textacute 19
-\definecharacter textbottomdot 46
-\definecharacter textbreve 21
-\definecharacter textcaron 20
-\definecharacter textcedilla 24
-\definecharacter textcircumflex 94
-\definecharacter textdiaeresis 127
-\definecharacter textdotaccent 95
-\definecharacter textgrave 18
-\definecharacter texthungarumlaut 125
-\definecharacter textmacron 22
-\definecharacter textogonek 24 % fake
-\definecharacter textring 23
-\definecharacter texttilde 126
-
-\definecharacter textat 64 % for mojca
-
-\definecharacter textbottomcomma {\hbox{\lower.35ex\hbox{\tx,}}} % for mojca
-
-\definecharacter dotlessi {\char"10 }
-\definecharacter dotlessj {\char"11 }
-\definecharacter dotlessI {I}
-\definecharacter dotlessJ {J}
-
-\definecharacter endash 123
-\definecharacter emdash 124
-
-\definecharacter aeligature {\char26 } % "1A
-\definecharacter AEligature {\char29 } % "1D
-\definecharacter ijligature {ij}
-\definecharacter IJligature {IJ}
-\definecharacter oeligature {\char27 } % "1B
-\definecharacter OEligature {\char30 } % "1E
-
-\definecharacter ssharp {\char25 } % "19
-\definecharacter Ssharp {SS}
-
-\definecharacter thorn {\unknownchar}
-\definecharacter Thorn {\unknownchar}
-
-\definecharacter eth {\unknownchar} % mojca prefers this (was \dstroke)
-%definecharacter Eth {\unknownchar}
-\definecharacter Eth {\Dstroke} % mojca prefers this too
-
-\definecharacter exclamdown 60
-\definecharacter questiondown 62
-
-\definecharacter copyright {\encircled{\txx C}}
-\definecharacter registered {\encircled{\txx R}}
-\definecharacter trademark {\high{\txx TM}}
-
-\definecharacter sectionmark {\mathematics{\mathhexbox278}}
-\definecharacter paragraphmark {\mathematics{\mathhexbox27B}}
-
-\definecharacter onequarter {\vulgarfraction{1}{4}}
-\definecharacter onehalf {\vulgarfraction{1}{2}}
-\definecharacter threequarter {\vulgarfraction{3}{4}}
-
-\definecharacter onesuperior {\high{1}}
-\definecharacter twosuperior {\high{2}}
-\definecharacter threesuperior {\high{3}}
-
-\definecharacter textcent {c}
-\definecharacter textcurrency {\unknownchar}
-\definecharacter textdollar {\fakedollar}
-\definecharacter texteuro {E}
-\definecharacter textflorin {\fakeflorin}
-\definecharacter textsterling {\fakesterling}
-\definecharacter textyen {Y}
-
-\definecharacter ordfeminine {\high{\txx a}}
-\definecharacter ordmasculine {\high{\txx o}}
-
-\definecharacter percent {\fakepercent}
-\definecharacter perthousand {\fakeperthousand}
-
-\definecharacter softhyphen 45
-\definecharacter periodcentered {\hbox{\mathematics\cdot}}
-\definecharacter compoundwordmark 23
-
-\definecharacter textasciicircum 94
-\definecharacter textasciitilde 126
-\definecharacter textslash 47
-\definecharacter textbackslash {\tex{}} % todo
-\definecharacter textbraceleft {\mathematics\{}
-\definecharacter textbraceright {\mathematics\}}
-\definecharacter textunderscore {\fakeunderscore}
-\definecharacter textvisiblespace {\fakevisiblespace}
-
-\definecharacter textbrokenbar {\mathematics\vert}
-\definecharacter textbullet {\mathematics\bullet}
-\definecharacter textdag {\mathematics\dag}
-\definecharacter textddag {\mathematics\ddag}
-\definecharacter textdegree {\mathematics{{}^{\circ}}}
-\definecharacter textdiv {\mathematics\div}
-\definecharacter textellipsis {\mathematics\cdots}
-\definecharacter textfraction {\mathematics/}
-\definecharacter textlognot {\mathematics\neg}
-\definecharacter textminus {\mathematics-}
-\definecharacter textmu {\mathematics\mu}
-\definecharacter textmultiply {\mathematics\times}
-\definecharacter textpm {\mathematics\pm}
-
-\definecharacter quotedbl {"}
-\definecharacter quotedblbase {,,}
-\definecharacter quotedblleft {``}
-\definecharacter quotedblright {''}
-
-\definecharacter quotesingle {`}
-\definecharacter quotesinglebase {,}
-
-\definecharacter quoteleft {`}
-\definecharacter quoteright {'}
-
-\definecharacter guilsingleleft {\fakeleftsubguillemot }
-\definecharacter guilsingleright {\fakerightsubguillemot}
-
-\definecharacter leftguillemot {\fakeleftguillemot }
-\definecharacter rightguillemot {\fakerightguillemot}
-
-\definecharacter Acircumflex {\buildtextaccent\textcircumflex A}
-\definecharacter acircumflex {\buildtextaccent\textcircumflex a}
-\definecharacter Ccircumflex {\buildtextaccent\textcircumflex C}
-\definecharacter ccircumflex {\buildtextaccent\textcircumflex c}
-\definecharacter Ecircumflex {\buildtextaccent\textcircumflex E}
-\definecharacter ecircumflex {\buildtextaccent\textcircumflex e}
-\definecharacter Gcircumflex {\buildtextaccent\textcircumflex G}
-\definecharacter gcircumflex {\buildtextaccent\textcircumflex g}
-\definecharacter Hcircumflex {\buildtextaccent\textcircumflex H}
-\definecharacter hcircumflex {\buildtextaccent\textcircumflex h}
-\definecharacter Icircumflex {\buildtextaccent\textcircumflex \dotlessI}
-\definecharacter icircumflex {\buildtextaccent\textcircumflex \dotlessi}
-\definecharacter Jcircumflex {\buildtextaccent\textcircumflex \dotlessJ}
-\definecharacter jcircumflex {\buildtextaccent\textcircumflex \dotlessj}
-\definecharacter Ocircumflex {\buildtextaccent\textcircumflex O}
-\definecharacter ocircumflex {\buildtextaccent\textcircumflex o}
-\definecharacter Scircumflex {\buildtextaccent\textcircumflex S}
-\definecharacter scircumflex {\buildtextaccent\textcircumflex s}
-\definecharacter Ucircumflex {\buildtextaccent\textcircumflex U}
-\definecharacter ucircumflex {\buildtextaccent\textcircumflex u}
-\definecharacter Wcircumflex {\buildtextaccent\textcircumflex W}
-\definecharacter wcircumflex {\buildtextaccent\textcircumflex w}
-\definecharacter Ycircumflex {\buildtextaccent\textcircumflex Y}
-\definecharacter ycircumflex {\buildtextaccent\textcircumflex y}
-
-\definecharacter Agrave {\buildtextaccent\textgrave A}
-\definecharacter agrave {\buildtextaccent\textgrave a}
-\definecharacter Egrave {\buildtextaccent\textgrave E}
-\definecharacter egrave {\buildtextaccent\textgrave e}
-\definecharacter Igrave {\buildtextaccent\textgrave \dotlessI}
-\definecharacter igrave {\buildtextaccent\textgrave \dotlessi}
-\definecharacter Ograve {\buildtextaccent\textgrave O}
-\definecharacter ograve {\buildtextaccent\textgrave o}
-\definecharacter Ugrave {\buildtextaccent\textgrave U}
-\definecharacter ugrave {\buildtextaccent\textgrave u}
-\definecharacter Ygrave {\buildtextaccent\textgrave Y}
-\definecharacter ygrave {\buildtextaccent\textgrave y}
-
-\definecharacter Atilde {\buildtextaccent\texttilde A}
-\definecharacter atilde {\buildtextaccent\texttilde a}
-\definecharacter Itilde {\buildtextaccent\texttilde \dotlessI}
-\definecharacter itilde {\buildtextaccent\texttilde \dotlessi}
-\definecharacter Ntilde {\buildtextaccent\texttilde N}
-\definecharacter ntilde {\buildtextaccent\texttilde n}
-\definecharacter Otilde {\buildtextaccent\texttilde O}
-\definecharacter otilde {\buildtextaccent\texttilde o}
-\definecharacter Utilde {\buildtextaccent\texttilde U}
-\definecharacter utilde {\buildtextaccent\texttilde u}
-\definecharacter Ytilde {\buildtextaccent\texttilde Y}
-\definecharacter ytilde {\buildtextaccent\texttilde y}
-
-\definecharacter Adiaeresis {\buildtextaccent\textdiaeresis A}
-\definecharacter adiaeresis {\buildtextaccent\textdiaeresis a}
-\definecharacter Ediaeresis {\buildtextaccent\textdiaeresis E}
-\definecharacter ediaeresis {\buildtextaccent\textdiaeresis e}
-\definecharacter Idiaeresis {\buildtextaccent\textdiaeresis \dotlessI}
-\definecharacter idiaeresis {\buildtextaccent\textdiaeresis \dotlessi}
-\definecharacter Odiaeresis {\buildtextaccent\textdiaeresis O}
-\definecharacter odiaeresis {\buildtextaccent\textdiaeresis o}
-\definecharacter Udiaeresis {\buildtextaccent\textdiaeresis U}
-\definecharacter udiaeresis {\buildtextaccent\textdiaeresis u}
-\definecharacter Ydiaeresis {\buildtextaccent\textdiaeresis Y}
-\definecharacter ydiaeresis {\buildtextaccent\textdiaeresis y}
-
-\definecharacter Aacute {\buildtextaccent\textacute A}
-\definecharacter aacute {\buildtextaccent\textacute a}
-\definecharacter Cacute {\buildtextaccent\textacute C}
-\definecharacter cacute {\buildtextaccent\textacute c}
-\definecharacter Eacute {\buildtextaccent\textacute E}
-\definecharacter eacute {\buildtextaccent\textacute e}
-\definecharacter Iacute {\buildtextaccent\textacute \dotlessI}
-\definecharacter iacute {\buildtextaccent\textacute \dotlessi}
-\definecharacter Lacute {\buildtextaccent\textacute L}
-\definecharacter lacute {\buildtextaccent\textacute l}
-\definecharacter Nacute {\buildtextaccent\textacute N}
-\definecharacter nacute {\buildtextaccent\textacute n}
-\definecharacter Oacute {\buildtextaccent\textacute O}
-\definecharacter oacute {\buildtextaccent\textacute o}
-\definecharacter Racute {\buildtextaccent\textacute R}
-\definecharacter racute {\buildtextaccent\textacute r}
-\definecharacter Sacute {\buildtextaccent\textacute S}
-\definecharacter sacute {\buildtextaccent\textacute s}
-\definecharacter Uacute {\buildtextaccent\textacute U}
-\definecharacter uacute {\buildtextaccent\textacute u}
-\definecharacter Yacute {\buildtextaccent\textacute Y}
-\definecharacter yacute {\buildtextaccent\textacute y}
-\definecharacter Zacute {\buildtextaccent\textacute Z}
-\definecharacter zacute {\buildtextaccent\textacute z}
-
-%definecharacter Dstroke {D}
-%definecharacter dstroke {d}
-
-\definecharacter dstroke {\pseudoencodeddj}
-\definecharacter Dstroke {\pseudoencodedDJ}
-\definecharacter Hstroke {H}
-\definecharacter hstroke {h}
-\definecharacter Tstroke {T}
-\definecharacter tstroke {t}
-
-\definecharacter Cdotaccent {\buildtextaccent\textdotaccent C}
-\definecharacter cdotaccent {\buildtextaccent\textdotaccent c}
-\definecharacter Edotaccent {\buildtextaccent\textdotaccent E}
-\definecharacter edotaccent {\buildtextaccent\textdotaccent e}
-\definecharacter Gdotaccent {\buildtextaccent\textdotaccent G}
-\definecharacter gdotaccent {\buildtextaccent\textdotaccent g}
-\definecharacter Idotaccent {\buildtextaccent\textdotaccent \dotlessI}
-\definecharacter idotaccent {\buildtextaccent\textdotaccent \dotlessi}
-\definecharacter Zdotaccent {\buildtextaccent\textdotaccent Z}
-\definecharacter zdotaccent {\buildtextaccent\textdotaccent z}
-
-\definecharacter Amacron {\buildtextaccent\textmacron A}
-\definecharacter amacron {\buildtextaccent\textmacron a}
-\definecharacter Emacron {\buildtextaccent\textmacron E}
-\definecharacter emacron {\buildtextaccent\textmacron e}
-\definecharacter Imacron {\buildtextaccent\textmacron \dotlessI}
-\definecharacter imacron {\buildtextaccent\textmacron \dotlessi}
-\definecharacter Omacron {\buildtextaccent\textmacron O}
-\definecharacter omacron {\buildtextaccent\textmacron o}
-\definecharacter Umacron {\buildtextaccent\textmacron U}
-\definecharacter umacron {\buildtextaccent\textmacron u}
-
-\definecharacter Ccedilla {\buildtextcedilla C}
-\definecharacter ccedilla {\buildtextcedilla c}
-\definecharacter Kcedilla {\buildtextcedilla K}
-\definecharacter kcedilla {\buildtextcedilla k}
-\definecharacter Lcedilla {\buildtextcedilla L}
-\definecharacter lcedilla {\buildtextcedilla l}
-\definecharacter Ncedilla {\buildtextcedilla N}
-\definecharacter ncedilla {\buildtextcedilla n}
-\definecharacter Rcedilla {\buildtextcedilla R}
-\definecharacter rcedilla {\buildtextcedilla r}
-\definecharacter Scedilla {\buildtextcedilla S}
-\definecharacter scedilla {\buildtextcedilla s}
-\definecharacter Tcedilla {\buildtextcedilla T}
-\definecharacter tcedilla {\buildtextcedilla t}
-
-\definecharacter Ohungarumlaut {\buildtextaccent\texthungarumlaut O}
-\definecharacter ohungarumlaut {\buildtextaccent\texthungarumlaut o}
-\definecharacter Uhungarumlaut {\buildtextaccent\texthungarumlaut U}
-\definecharacter uhungarumlaut {\buildtextaccent\texthungarumlaut u}
-
-\definecharacter Aogonek {\buildtextogonek A}
-\definecharacter aogonek {\buildtextogonek a}
-\definecharacter Eogonek {\buildtextogonek E}
-\definecharacter eogonek {\buildtextogonek e}
-\definecharacter Iogonek {\buildtextogonek I}
-\definecharacter iogonek {\buildtextogonek i}
-\definecharacter Uogonek {\buildtextogonek U}
-\definecharacter uogonek {\buildtextogonek u}
-
-\definecharacter Aring {\buildtextaccent\textring A}
-\definecharacter aring {\buildtextaccent\textring a}
-\definecharacter Uring {\buildtextaccent\textring U}
-\definecharacter uring {\buildtextaccent\textring u}
-
-\definecharacter Abreve {\buildtextaccent\textbreve A}
-\definecharacter abreve {\buildtextaccent\textbreve a}
-\definecharacter Ebreve {\buildtextaccent\textbreve E}
-\definecharacter ebreve {\buildtextaccent\textbreve e}
-\definecharacter Gbreve {\buildtextaccent\textbreve G}
-\definecharacter gbreve {\buildtextaccent\textbreve g}
-\definecharacter Ibreve {\buildtextaccent\textbreve \dotlessI}
-\definecharacter ibreve {\buildtextaccent\textbreve \dotlessi}
-\definecharacter Obreve {\buildtextaccent\textbreve O}
-\definecharacter obreve {\buildtextaccent\textbreve o}
-\definecharacter Ubreve {\buildtextaccent\textbreve U}
-\definecharacter ubreve {\buildtextaccent\textbreve u}
-
-\definecharacter Ccaron {\buildtextaccent\textcaron C}
-\definecharacter ccaron {\buildtextaccent\textcaron c}
-\definecharacter Dcaron {\buildtextaccent\textcaron D}
-\definecharacter dcaron {\buildtextaccent\textcaron d}
-\definecharacter Ecaron {\buildtextaccent\textcaron E}
-\definecharacter ecaron {\buildtextaccent\textcaron e}
-\definecharacter Lcaron {\buildtextaccent\textcaron L}
-\definecharacter lcaron {\buildtextaccent\textcaron l}
-\definecharacter Ncaron {\buildtextaccent\textcaron N}
-\definecharacter ncaron {\buildtextaccent\textcaron n}
-\definecharacter Rcaron {\buildtextaccent\textcaron R}
-\definecharacter rcaron {\buildtextaccent\textcaron r}
-\definecharacter Scaron {\buildtextaccent\textcaron S}
-\definecharacter scaron {\buildtextaccent\textcaron s}
-\definecharacter Tcaron {\buildtextaccent\textcaron T}
-\definecharacter tcaron {\buildtextaccent\textcaron t}
-\definecharacter Ycaron {\buildtextaccent\textcaron Y}
-\definecharacter ycaron {\buildtextaccent\textcaron y}
-\definecharacter Zcaron {\buildtextaccent\textcaron Z}
-\definecharacter zcaron {\buildtextaccent\textcaron z}
-
-\definecharacter Lstroke {\hsmash{\char32}L}
-\definecharacter lstroke {\hsmash{\char32}l}
-\definecharacter Ostroke {\char31 } % "1F
-\definecharacter ostroke {\char28 } % "1C
-
-\definecharacter aumlaut {\moveaccent{-.1ex}\adiaeresis}
-\definecharacter eumlaut {\moveaccent{-.1ex}\ediaeresis}
-\definecharacter iumlaut {\moveaccent{-.1ex}\idiaeresis}
-\definecharacter oumlaut {\moveaccent{-.1ex}\odiaeresis}
-\definecharacter uumlaut {\moveaccent{-.1ex}\udiaeresis}
-
-\definecharacter Aumlaut {\smashaccent\Adiaeresis}
-\definecharacter Eumlaut {\smashaccent\Ediaeresis}
-\definecharacter Iumlaut {\smashaccent\Idiaeresis}
-\definecharacter Oumlaut {\smashaccent\Odiaeresis}
-\definecharacter Uumlaut {\smashaccent\Udiaeresis}
-
-\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}
-
-\definecharacter Ahook {A}
-\definecharacter ahook {a}
-\definecharacter Ehook {E}
-\definecharacter ehook {e}
-\definecharacter Ihook {I}
-\definecharacter ihook {i}
-\definecharacter Ohook {O}
-\definecharacter ohook {o}
-\definecharacter Uhook {U}
-\definecharacter uhook {u}
-\definecharacter Yhook {Y}
-\definecharacter yhook {y}
-
-\definecharacter Acircumflexgrave {\Acircumflex}
-\definecharacter Acircumflexacute {\Acircumflex}
-\definecharacter Acircumflextilde {\Acircumflex}
-\definecharacter Acircumflexhook {\Acircumflex}
-\definecharacter acircumflexgrave {\acircumflex}
-\definecharacter acircumflexacute {\acircumflex}
-\definecharacter acircumflextilde {\acircumflex}
-\definecharacter acircumflexhook {\acircumflex}
-\definecharacter Ecircumflexgrave {\Ecircumflex}
-\definecharacter Ecircumflexacute {\Ecircumflex}
-\definecharacter Ecircumflextilde {\Ecircumflex}
-\definecharacter Ecircumflexhook {\Ecircumflex}
-\definecharacter ecircumflexgrave {\ecircumflex}
-\definecharacter ecircumflexacute {\ecircumflex}
-\definecharacter ecircumflextilde {\ecircumflex}
-\definecharacter ecircumflexhook {\ecircumflex}
-\definecharacter Ocircumflexgrave {\Ocircumflex}
-\definecharacter Ocircumflexacute {\Ocircumflex}
-\definecharacter Ocircumflextilde {\Ocircumflex}
-\definecharacter Ocircumflexhook {\Ocircumflex}
-\definecharacter ocircumflexgrave {\ocircumflex}
-\definecharacter ocircumflexacute {\ocircumflex}
-\definecharacter ocircumflextilde {\ocircumflex}
-\definecharacter ocircumflexhook {\ocircumflex}
-
-\definecharacter Abrevegrave {\Abreve}
-\definecharacter Abreveacute {\Abreve}
-\definecharacter Abrevetilde {\Abreve}
-\definecharacter Abrevehook {\Abreve}
-\definecharacter abrevegrave {\abreve}
-\definecharacter abreveacute {\abreve}
-\definecharacter abrevetilde {\abreve}
-\definecharacter abrevehook {\abreve}
-
-\definecharacter Adotbelow {\buildtextbottomdot A}
-\definecharacter adotbelow {\buildtextbottomdot a}
-\definecharacter Edotbelow {\buildtextbottomdot E}
-\definecharacter edotbelow {\buildtextbottomdot e}
-\definecharacter Idotbelow {\buildtextbottomdot I}
-\definecharacter idotbelow {\buildtextbottomdot i}
-\definecharacter Odotbelow {\buildtextbottomdot O}
-\definecharacter odotbelow {\buildtextbottomdot o}
-\definecharacter Udotbelow {\buildtextbottomdot U}
-\definecharacter udotbelow {\buildtextbottomdot u}
-\definecharacter Ydotbelow {\buildtextbottomdot Y}
-\definecharacter ydotbelow {\buildtextbottomdot y}
-
-\definecharacter Ohorndotbelow {\buildtextbottomdot\Ohorn}
-\definecharacter ohorndotbelow {\buildtextbottomdot\ohorn}
-\definecharacter Uhorndotbelow {\buildtextbottomdot\Uhorn}
-\definecharacter uhorndotbelow {\buildtextbottomdot\uhorn}
-
-\definecharacter Acircumflexdotbelow {\buildtextbottomdot\Acircumflex}
-\definecharacter acircumflexdotbelow {\buildtextbottomdot\acircumflex}
-\definecharacter Ecircumflexdotbelow {\buildtextbottomdot\Ecircumflex}
-\definecharacter ecircumflexdotbelow {\buildtextbottomdot\ecircumflex}
-\definecharacter Ocircumflexdotbelow {\buildtextbottomdot\Ocircumflex}
-\definecharacter ocircumflexdotbelow {\buildtextbottomdot\ocircumflex}
-\definecharacter Abrevedotbelow {\buildtextbottomdot\Abreve}
-\definecharacter abrevedotbelow {\buildtextbottomdot\abreve}
-
-\definecharacter Ohorn {O}
-\definecharacter Ohorngrave {\Ograve}
-\definecharacter Ohornacute {\Oacute}
-\definecharacter Ohorntilde {\Otilde}
-\definecharacter Ohornhook {O}
-\definecharacter ohorn {o}
-\definecharacter ohorngrave {\ograve}
-\definecharacter ohornacute {\oacute}
-\definecharacter ohorntilde {\otilde}
-\definecharacter ohornhook {o}
-\definecharacter Uhorn {U}
-\definecharacter Uhorngrave {\Ugrave}
-\definecharacter Uhornacute {\Uacute}
-\definecharacter Uhorntilde {\Utilde}
-\definecharacter Uhornhook {U}
-\definecharacter uhorn {u}
-\definecharacter uhorngrave {\ugrave}
-\definecharacter uhornacute {\uacute}
-\definecharacter uhorntilde {\utilde}
-\definecharacter uhornhook {u}
-
-\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]
-
-% Uppercase Greek letters
-
-\definecharacter greekAlpha {\Alpha}
-\definecharacter greekBeta {\Beta}
-\definecharacter greekGamma {\Gamma}
-\definecharacter greekDelta {\Delta}
-\definecharacter greekEpsilon {\Epsilon}
-\definecharacter greekZeta {\Zeta}
-\definecharacter greekEta {\Eta}
-\definecharacter greekTheta {\Theta}
-\definecharacter greekIota {\Iota}
-\definecharacter greekKappa {\Kappa}
-\definecharacter greekLambda {\Lambda}
-\definecharacter greekMu {\Mu}
-\definecharacter greekNu {\Nu}
-\definecharacter greekXi {\Xi}
-\definecharacter greekOmicron {\Omicron}
-\definecharacter greekPi {\Pi}
-\definecharacter greekRho {\Rho}
-\definecharacter greekSigma {\Sigma}
-\definecharacter greekTau {\Tau}
-\definecharacter greekUpsilon {\Upsilon}
-\definecharacter greekPhi {\Phi}
-\definecharacter greekChi {\Chi}
-\definecharacter greekPsi {\Psi}
-\definecharacter greekOmega {\Omega}
-
-% Lowercase Greek letters
-
-\definecharacter greekalpha {\alpha}
-\definecharacter greekbeta {\beta}
-\definecharacter greekbetaalt {\beta}
-\definecharacter greekgamma {\gamma}
-\definecharacter greekdelta {\delta}
-\definecharacter greekepsilon {\varepsilon}
-\definecharacter greekepsilonalt {\epsilon}
-\definecharacter greekzeta {\zeta}
-\definecharacter greeketa {\eta}
-\definecharacter greektheta {\theta}
-\definecharacter greekthetaalt {\vartheta}
-\definecharacter greekiota {\iota}
-\definecharacter greekkappa {\kappa}
-\definecharacter greeklambda {\lambda}
-\definecharacter greekmu {\mu}
-\definecharacter greeknu {\nu}
-\definecharacter greekxi {\xi}
-\definecharacter greekomicron {\omicron}
-\definecharacter greekpi {\pi}
-\definecharacter greekrho {\rho}
-\definecharacter greeksigma {\sigma}
-\definecharacter greekfinalsigma {\varsigma}
-\definecharacter greektau {\tau}
-\definecharacter greekupsilon {\upsilon}
-\definecharacter greekphi {\varphi}
-\definecharacter greekphialt {\phi}
-\definecharacter greekchi {\chi}
-\definecharacter greekpsi {\psi}
-\definecharacter greekomega {\omega}
-
-% Accented Uppercase Greek letters
-
-\definecharacter greekAlphatonos {'A}
-\definecharacter greekEpsilontonos {'E}
-\definecharacter greekEtatonos {'H}
-\definecharacter greekIotatonos {'I}
-\definecharacter greekOmicrontonos {'O}
-\definecharacter greekUpsilontonos {'U}
-\definecharacter greekOmegatonos {'W}
-\definecharacter greekIotadialytika {"I}
-\definecharacter greekUpsilondialytika {"U}
-
-% Accented Lowercase Greek letters
-
-\definecharacter greekalphatonos {'a}
-\definecharacter greekepsilontonos {'e}
-\definecharacter greeketatonos {'h}
-\definecharacter greekiotatonos {'i}
-\definecharacter greekomicrontonos {'o}
-\definecharacter greekupsilontonos {'u}
-\definecharacter greekomegatonos {'w}
-\definecharacter greekiotadialytika {"i}
-\definecharacter greekupsilondialytika {"u}
-\definecharacter greekiotadialytikatonos {'"i}
-\definecharacter greekupsilondialytikatonos {'"u}
-
-% Miscellaneous Greek symbols
-
-\definecharacter greekleftquot {((}
-\definecharacter greekrightquot {))}
-\definecharacter greektonos {'}
-\definecharacter greekdialytikatonos {'"}
-\definecharacter greekapostrophos {''}
-
-\stopencoding
-
-%D Cyrillic (moved to here):
-
-\startencoding[default]
-
-\definecharacter cyrillicA {A}
-\definecharacter cyrillicB {B}
-\definecharacter cyrillicV {V}
-\definecharacter cyrillicG {G}
-\definecharacter cyrillicD {D}
-\definecharacter cyrillicE {E}
-\definecharacter cyrillicZH {ZH}
-\definecharacter cyrillicZ {Z}
-\definecharacter cyrillicI {I}
-\definecharacter cyrillicISHRT {ISHRT}
-\definecharacter cyrillicK {K}
-\definecharacter cyrillicL {L}
-\definecharacter cyrillicM {M}
-\definecharacter cyrillicN {N}
-\definecharacter cyrillicO {O}
-\definecharacter cyrillicP {P}
-\definecharacter cyrillicR {R}
-\definecharacter cyrillicS {S}
-\definecharacter cyrillicT {T}
-\definecharacter cyrillicU {U}
-\definecharacter cyrillicF {F}
-\definecharacter cyrillicH {H}
-\definecharacter cyrillicC {C}
-\definecharacter cyrillicCH {CH}
-\definecharacter cyrillicSH {SH}
-\definecharacter cyrillicSHCH {SHCH}
-\definecharacter cyrillicHRDSN {HRDSN}
-\definecharacter cyrillicERY {ERY}
-\definecharacter cyrillicSFTSN {SFTSN}
-\definecharacter cyrillicEREV {EREV}
-\definecharacter cyrillicYU {YU}
-\definecharacter cyrillicYA {YA}
-\definecharacter cyrillicGUP {GUP}
-\definecharacter cyrillicGHCRS {GHCRS}
-\definecharacter cyrillicDJE {DJE}
-\definecharacter cyrillicTSHE {TSHE}
-\definecharacter cyrillicSHHA {SHHA}
-\definecharacter cyrillicZHDSC {ZHDSC}
-\definecharacter cyrillicZDSC {ZDSC}
-\definecharacter cyrillicLJE {LJE}
-\definecharacter cyrillicYI {YI}
-\definecharacter cyrillicKDSC {KDSC}
-\definecharacter cyrillicKBEAK {KBEAK}
-\definecharacter cyrillicKVCRS {KVCRS}
-\definecharacter cyrillicAE {AE}
-\definecharacter cyrillicNDSC {NDSC}
-\definecharacter cyrillicNG {NG}
-\definecharacter cyrillicDZE {DZE}
-\definecharacter cyrillicOTLD {OTLD}
-\definecharacter cyrillicSDSC {SDSC}
-\definecharacter cyrillicUSHRT {USHRT}
-\definecharacter cyrillicY {Y}
-\definecharacter cyrillicYHCRS {YHCRS}
-\definecharacter cyrillicHDSC {HDSC}
-\definecharacter cyrillicDZHE {DZHE}
-\definecharacter cyrillicCHVCRS {CHVCRS}
-\definecharacter cyrillicCHRDSC {CHRDSC}
-\definecharacter cyrillicIE {IE}
-\definecharacter cyrillicSCHWA {SCHWA}
-\definecharacter cyrillicNJE {NJE}
-\definecharacter cyrillicYO {YO}
-\definecharacter cyrillicII {II}
-\definecharacter cyrillicJE {JE}
-\definecharacter cyrillicQ {Q}
-\definecharacter cyrillicW {W}
-
-\definecharacter cyrillica {a}
-\definecharacter cyrillicb {b}
-\definecharacter cyrillicv {v}
-\definecharacter cyrillicg {g}
-\definecharacter cyrillicd {d}
-\definecharacter cyrillice {e}
-\definecharacter cyrilliczh {zh}
-\definecharacter cyrillicz {z}
-\definecharacter cyrillici {i}
-\definecharacter cyrillicishrt {ishrt}
-\definecharacter cyrillick {k}
-\definecharacter cyrillicl {l}
-\definecharacter cyrillicm {m}
-\definecharacter cyrillicn {n}
-\definecharacter cyrillico {o}
-\definecharacter cyrillicp {p}
-\definecharacter cyrillicr {r}
-\definecharacter cyrillics {s}
-\definecharacter cyrillict {t}
-\definecharacter cyrillicu {u}
-\definecharacter cyrillicf {f}
-\definecharacter cyrillich {h}
-\definecharacter cyrillicc {c}
-\definecharacter cyrillicch {ch}
-\definecharacter cyrillicsh {sh}
-\definecharacter cyrillicshch {shch}
-\definecharacter cyrillichrdsn {hrdsn}
-\definecharacter cyrillicery {ery}
-\definecharacter cyrillicsftsn {sftsn}
-\definecharacter cyrillicerev {erev}
-\definecharacter cyrillicyu {yu}
-\definecharacter cyrillicya {ya}
-\definecharacter cyrillicgup {gup}
-\definecharacter cyrillicghcrs {ghcrs}
-\definecharacter cyrillicdje {dje}
-\definecharacter cyrillictshe {tshe}
-\definecharacter cyrillicshha {shha}
-\definecharacter cyrilliczhdsc {zhdsc}
-\definecharacter cyrilliczdsc {zdsc}
-\definecharacter cyrilliclje {lje}
-\definecharacter cyrillicyi {yi}
-\definecharacter cyrillickdsc {kdsc}
-\definecharacter cyrillickbeak {kbeak}
-\definecharacter cyrillickvcrs {kvcrs}
-\definecharacter cyrillicae {ae}
-\definecharacter cyrillicndsc {ndsc}
-\definecharacter cyrillicng {ng}
-\definecharacter cyrillicdze {dze}
-\definecharacter cyrillicotld {otld}
-\definecharacter cyrillicsdsc {sdsc}
-\definecharacter cyrillicushrt {ushrt}
-\definecharacter cyrillicy {y}
-\definecharacter cyrillicyhcrs {yhcrs}
-\definecharacter cyrillichdsc {hdsc}
-\definecharacter cyrillicdzhe {dzhe}
-\definecharacter cyrillicchvcrs {chvcrs}
-\definecharacter cyrillicchrdsc {chrdsc}
-\definecharacter cyrillicie {ie}
-\definecharacter cyrillicschwa {schwa}
-\definecharacter cyrillicnje {nje}
-\definecharacter cyrillicyo {yo}
-\definecharacter cyrillicii {ii}
-\definecharacter cyrillicje {je}
-\definecharacter cyrillicq {q}
-\definecharacter cyrillicw {w}
-
-\definecharacter cyrillicGJE {\'\cyrillicG}
-\definecharacter cyrillicgje {\'\cyrillicg}
-\definecharacter cyrillicKJE {\'\cyrillicK}
-\definecharacter cyrillickje {\'\cyrillick}
-
-\stopencoding
-
-\def\cyrillicio{\cyrillicyo}
-\def\cyrillicIO{\cyrillicYO}
-
-%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}
-
-\stopencoding
-
-%D A few goodies:
-
-\def\eszett{\ssharp}
-\def\Eszett{\Ssharp}
-
-\def\lslash{\lstroke}
-\def\Lslash{\Lstroke}
-\def\dslash{\dstroke}
-\def\Dslash{\Dstroke}
-\def\oslash{\ostroke}
-\def\Oslash{\Ostroke}
-
-\def\dcroat{\dstroke}
-\def\Dcroat{\Dstroke}
-
-% \startencoding [default]
-%
-% \definecharacter scommaaccent {\scedilla}
-% \definecharacter Scommaaccent {\Scedilla}
-% \definecharacter tcommaaccent {\tcedilla}
-% \definecharacter Tcommaaccent {\Tcedilla}
-%
-% \stopencoding
-
-% for plain tex's sake
-
-\def\S {\sectionmark }
-\def\P {\paragraphmark}
-
-% for latex users sake
-
-\def\textS {\sectionmark }
-\def\textP {\paragraphmark}
-
-% for old times sake
-
-\def\florin {\textflorin } \def\florijn{\textflorin}
-\def\dollar {\textdollar }
-\def\pound {\textsterling}
-\def\sterling{\textsterling}
-
-% idem
-
-\def\promille{\perthousand}
-\def\permille{\perthousand}
-\def\procent {\percent }
-\def\permine {\fakepermine}
-
-% some more
-
-\def\hyphen {\softhyphen}
-\def\cwm {\compoundwordmark}
-\def\nonbreakinghyphen {\hyphen}
-\def\breakinghyphen {\hyphen\prewordbreak}
-
-% quotes
-
-\def\lowerleftsingleninequote {\quotesinglebase}
-\def\lowerleftdoubleninequote {\quotedblbase}
-\def\lowerrightsingleninequote {\quotesinglebase}
-\def\lowerrightdoubleninequote {\quotedblbase}
-
-\def\upperleftsingleninequote {\quoteright}
-\def\upperleftdoubleninequote {\quotedblright}
-\def\upperrightsingleninequote {\quoteright}
-\def\upperrightdoubleninequote {\quotedblright}
-
-\def\upperleftsinglesixquote {\quoteleft}
-\def\upperleftdoublesixquote {\quotedblleft}
-\def\upperrightsinglesixquote {\quoteleft}
-\def\upperrightdoublesixquote {\quotedblleft}
-
-\def\leftsubguillemot {\guilsingleleft}
-\def\rightsubguillemot {\guilsingleright}
-
-%D A couple of fallbacks suggestion by users, slightly
-%D adapted and obscured by memory saving hacks.
-
-\unprotect
-
-\startencoding[default]
-
-\definecharacter textcent {c\rlap{\hskip-.2\s!em
- \vrule\!!width.2\s!pt\!!height1.2\s!ex\!!depth.2\s!ex}}
-
-\definecharacter texteuro {C\rlap{\hskip-.75\s!em
- \vrule\!!width.4\s!em\!!height.85\s!ex\!!depth-.8\s!ex}}
-
-\definecharacter textblacksquare {\dontleavehmode\hbox{%
- \vrule\!!width.3\s!em\!!height.4\s!em\!!depth-.1\s!em}}
-
-\definecharacter textbrokenbar {\dontleavehmode\hbox{\kern.05\s!em
- \vrule\!!width.4\s!pt\!!height1.8\s!ex\!!depth-.85\s!ex
- \llap{%
- \vrule\!!width.4\s!pt\!!height.35\s!ex\!!depth.6\s!ex}%
- \kern.05\s!em}}
-
-\stopencoding
-
-\protect
-
-%D We also use symbolic names for math accents.
-
-\startencoding[default]
-
-\definecharacter mathacute "7013
-\definecharacter mathgrave "7012
-\definecharacter mathddot "707F
-\definecharacter mathtilde "707E
-\definecharacter mathbar "7016
-\definecharacter mathbreve "7015
-\definecharacter mathcheck "7014
-\definecharacter mathhat "705E
-\definecharacter mathvec "017E
-\definecharacter mathdot "705F
-\definecharacter mathwidetilde "0365
-\definecharacter mathwidehat "0362
-
-\stopencoding
-
-% \startencoding [default]
-
-% \definecommand prime {\mathematics{'}}
-% \definecommand doubleprime {\mathematics{''}}
-% \definecommand tripleprime {\mathematics{'''}}
-
-% \stopencoding
-
-\ifx\zdot\undefined \def\zdot{\zdotaccent} \fi
-\ifx\Zdot\undefined \def\Zdot{\Zdotaccent} \fi
-
-\ifx\greeklamda\undefined \def\greeklamda{\greeklambda} \fi
-\ifx\greekLamda\undefined \def\greekLamda{\greekLambda} \fi
-
-\ifx\leftguillemet \undefined \def\leftguillemet {\leftguillemot } \fi
-\ifx\rightguillemet\undefined \def\rightguillemet{\rightguillemot} \fi
-
-%D New:
-
-\startencoding[\s!default]
-
-\definecharacter schwa {\hbox{\rotate[\c!rotation=180,\c!location=\v!high]{\hbox{e}}}}
-\definecharacter schwagrave {\buildtextgrave\schwa}
-
-\stopencoding
-
-%D Also new, from Taco, for Mojca, who wanted another 8~regimes.
-
-\startencoding[\s!default]
-
-\definecharacter texthorizontalbar {{\endash\kern\zeropoint\endash}}
-\definecharacter textdong {\underbar{\dstroke}}
-
-\stopencoding
-
-%D Goodie (makes more sense):
-
-\def\normalcontrolspace
- {\getglyph{ComputerModernMono}{\char32}}
-
-\def\fakedcontrolspace % can be virtual in luatex
- {\dontleavehmode\hbox
- {\scratchdimen.1ex%
- \kern\scratchdimen
- \vrule \!!width\scratchdimen \!!height5.5\scratchdimen \!!depth3\scratchdimen
- \vrule \!!width\dimexpr.5em-4\scratchdimen\relax \!!height-2\scratchdimen \!!depth3\scratchdimen
- \vrule \!!width\scratchdimen \!!height5.5\scratchdimen \!!depth3\scratchdimen
- \kern\scratchdimen}}
-
-\def\fakecontrolspace{\let\normalcontrolspace\fakedcontrolspace}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-ec.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-ec.mkii
deleted file mode 100644
index 918c85e1261..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-ec.mkii
+++ /dev/null
@@ -1,295 +0,0 @@
-%D \module
-%D [ file=enco-ec,
-%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, Mojca Miklavec},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This is \LATEX2e's T1 encoding vector. All standard \LATEX\
-%D accents will work, including \type{\k}. The only accent that
-%D does not work is \type{\t} (there is no tie in T1 encoding).
-%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. 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]
-
-% 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
-\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 25 `I % dotless i
-
-% 156 vs. 188 IJligature
-
-%D Some languages need this:
-
-% \definecaseself 34 % quotedbl
-% \definecaseself 18 % quotedblbase
-% \definecaseself 16 % quotedblleft
-% \definecaseself 17 % quotedblright
-% \definecaseself 39 % quotesingle
-% \definecaseself 13 % quotesinglebase
-% \definecaseself 96 % quoteleft
-\definecaseself 39 % quoteright
-
-%D So far for the mapping.
-
-%D The following characters are kind of dangerous,
-%D that is, they are normally not part of fonts, unless
-%D explicitly constructed.
-%D
-%D \startitemize[columns,two]
-%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}
-% \item \type{\textvisiblespace}
-%D \stopitemize
-
-%D So, for the moment we nil them; we can always create
-%D another vector if needed.
-
-\stopmapping
-
-\startencoding[ec][ec] % second arg defines auto regime, needed here ?
-
-\definecharacter textgrave 0
-\definecharacter textacute 1
-\definecharacter textcircumflex 2
-\definecharacter texttilde 3
-\definecharacter textdiaeresis 4
-\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 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 compoundwordmark 23
-%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
-% numbersign # 35
-% dollar $ 36
-\definecharacter percent 37
-% ampersand & 38
-%definecharacter quotesingle 39 % fake 'm TODO:enco-def!!!!
-\definecharacter quoteright 39
-% 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 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
-
-\stopencoding
-
-\startencoding[ec]
-
-\definecharacter Scommaaccent {\Scedilla}
-\definecharacter scommaaccent {\scedilla}
-\definecharacter Tcommaaccent {\Tcedilla}
-\definecharacter tcommaaccent {\tcedilla}
-
-\stopencoding
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-ecm.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-ecm.mkii
deleted file mode 100644
index 8a97065747a..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-ecm.mkii
+++ /dev/null
@@ -1,33 +0,0 @@
-%D \module
-%D [ file=enco-ec,
-%D version=2000.05.07,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Glyphs that may not be present in EC,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D The next typescript removes a few problematic characters
-%D from the ec encoding vector. So, in case of troubles, say
-%D
-%D \starttyping
-%D \useencoding[ecm] % ec minus
-%D \stoptyping
-
-\startencoding[ec][ec]
-
-\definecharacter ijligature {ij}
-\definecharacter IJligature {IJ}
-\definecharacter Ssharp {SS}
-\definecharacter tcaron {\buildtextaccent\textcaron t}
-\definecharacter Tcedilla {\buildtextcedilla T}
-\definecharacter tcedilla {\buildtextcedilla t}
-\definecharacter ydiaeresis {\buildtextaccent\textdiaeresis y}
-
-\stopencoding
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-el.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-el.mkii
deleted file mode 100644
index f268dcb3c24..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-el.mkii
+++ /dev/null
@@ -1,272 +0,0 @@
-%D \module
-%D [ file=enco-el,
-%D version=2005.08.24,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=EuroLetter,
-%D author={Several Users},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This EuroLetter encoding vector, also known as Dense Encoding is
-%D the result of discussion among users, most noticably Adam Lindsay,
-%D Mojka Miklavec, Patrick Gundlach, Taco Hoekwater and \unknown.
-%D It was a follow up of a thread started long ago where we
-%D discussed an encoding without the weird, never used symbols, but
-%D with as many characters as possible in order to support the utf-8
-%D input regime.
-
-\startencoding[el]
-
-\definecasemaps 1 to 15 lc +16 uc 0
-\definecasemaps 17 to 31 lc 0 uc -16
-
-\definecasemaps 128 to 159 lc +32 uc 0
-\definecasemaps 160 to 191 lc 0 uc -32
-
-\definecasemaps 192 to 223 lc +32 uc 0
-\definecasemaps 224 to 255 lc 0 uc -32
-
-\definecasemap 92 92 124
-\definecasemap 92 124 92
-
-\definecharacter dotlessi 160
-\definecharacter endash 32
-\definecharacter emdash 16
-
-\definecharacter aeligature 230
-\definecharacter AEligature 198
-\definecharacter oeligature 247
-\definecharacter OEligature 215
-
-\definecharacter ssharp 38
-
-\definecharacter thorn 254
-\definecharacter Thorn 222
-
-\definecharacter eth 240
-\definecharacter Eth 208
-
-\definecharacter exclamdown 42
-\definecharacter questiondown 43
-
-\definecharacter quotedbl 35
-\definecharacter quotedblbase 36
-\definecharacter quotedblleft 34
-\definecharacter quotedblright 35
-
-\definecharacter quotesingle 39
-\definecharacter quotesinglebase 0
-
-\definecharacter quoteleft 96
-\definecharacter quoteright 39
-
-\definecharacter guilsingleleft 60
-\definecharacter guilsingleright 62
-
-\definecharacter leftguillemot 123
-\definecharacter rightguillemot 125
-
-\definecharacter Acircumflex 194
-\definecharacter acircumflex 226
-%definecharacter Ccircumflex {\buildtextaccent\textcircumflex C}
-%definecharacter ccircumflex {\buildtextaccent\textcircumflex c}
-\definecharacter Ecircumflex 202
-\definecharacter ecircumflex 234
-%definecharacter Gcircumflex {\buildtextaccent\textcircumflex G}
-%definecharacter gcircumflex {\buildtextaccent\textcircumflex g}
-%definecharacter Hcircumflex {\buildtextaccent\textcircumflex H}
-%definecharacter hcircumflex {\buildtextaccent\textcircumflex h}
-\definecharacter Icircumflex 206
-\definecharacter icircumflex 238
-%definecharacter Jcircumflex {\buildtextaccent\textcircumflex \dotlessJ}
-%definecharacter jcircumflex {\buildtextaccent\textcircumflex \dotlessj}
-\definecharacter Ocircumflex 212
-\definecharacter ocircumflex 244
-%definecharacter Scircumflex {\buildtextaccent\textcircumflex S}
-%definecharacter scircumflex {\buildtextaccent\textcircumflex s}
-\definecharacter Ucircumflex 219
-\definecharacter ucircumflex 251
-\definecharacter Wcircumflex 154
-\definecharacter wcircumflex 186
-\definecharacter Ycircumflex 156
-\definecharacter ycircumflex 188
-
-\definecharacter Agrave 192
-\definecharacter agrave 224
-\definecharacter Egrave 200
-\definecharacter egrave 232
-\definecharacter Igrave 204
-\definecharacter igrave 236
-\definecharacter Ograve 210
-\definecharacter ograve 242
-\definecharacter Ugrave 217
-\definecharacter ugrave 249
-\definecharacter Ygrave 155
-\definecharacter ygrave 187
-
-\definecharacter Atilde 195
-\definecharacter atilde 227
-%definecharacter Itilde {\buildtextaccent\texttilde \dotlessI}
-%definecharacter itilde {\buildtextaccent\texttilde \dotlessi}
-\definecharacter Ntilde 209
-\definecharacter ntilde 241
-\definecharacter Otilde 213
-\definecharacter otilde 245
-%definecharacter Utilde {\buildtextaccent\texttilde U}
-%definecharacter utilde {\buildtextaccent\texttilde u}
-%definecharacter Ytilde {\buildtextaccent\texttilde Y}
-%definecharacter ytilde {\buildtextaccent\texttilde y}
-
-\definecharacter Adiaeresis 196
-\definecharacter adiaeresis 228
-\definecharacter Ediaeresis 203
-\definecharacter ediaeresis 235
-\definecharacter Idiaeresis 207
-\definecharacter idiaeresis 239
-\definecharacter Odiaeresis 214
-\definecharacter odiaeresis 246
-\definecharacter Udiaeresis 220
-\definecharacter udiaeresis 252
-\definecharacter Ydiaeresis 223
-\definecharacter ydiaeresis 255
-
-\definecharacter Aacute 193
-\definecharacter aacute 225
-\definecharacter Cacute 4
-\definecharacter cacute 20
-\definecharacter Eacute 201
-\definecharacter eacute 233
-\definecharacter Iacute 205
-\definecharacter iacute 237
-\definecharacter Lacute 132
-\definecharacter lacute 164
-\definecharacter Nacute 136
-\definecharacter nacute 168
-\definecharacter Oacute 211
-\definecharacter oacute 243
-\definecharacter Racute 141
-\definecharacter racute 173
-\definecharacter Sacute 144
-\definecharacter sacute 176
-\definecharacter Uacute 218
-\definecharacter uacute 250
-\definecharacter Yacute 221
-\definecharacter yacute 253
-\definecharacter Zacute 157
-\definecharacter zacute 189
-
-\definecharacter Dstroke 8
-\definecharacter dstroke 24
-\definecharacter Hstroke 92
-\definecharacter hstroke 124
-%definecharacter Tstroke {T}
-%definecharacter tstroke {t}
-
-\definecharacter Cdotaccent 6
-\definecharacter cdotaccent 22
-\definecharacter Edotaccent 10
-\definecharacter edotaccent 26
-\definecharacter Gdotaccent 15
-\definecharacter gdotaccent 31
-\definecharacter Idotaccent 128
-%definecharacter idotaccent {\buildtextaccent\textdotaccent \dotlessi}
-\definecharacter Zdotaccent 159
-\definecharacter zdotaccent 191
-
-\definecharacter Amacron 2
-\definecharacter amacron 18
-\definecharacter Emacron 11
-\definecharacter emacron 27
-\definecharacter Imacron 129
-\definecharacter imacron 161
-\definecharacter Omacron 140
-\definecharacter omacron 172
-\definecharacter Umacron 152
-\definecharacter umacron 184
-
-\definecharacter Ccedilla 199
-\definecharacter ccedilla 231
-\definecharacter Scedilla 146
-\definecharacter scedilla 178
-
-\definecharacter Gcommaaccent 14
-\definecharacter gcommaaccent 30
-\definecharacter Kcommaaccent 131
-\definecharacter kcommaaccent 163
-\definecharacter Lcommaaccent 135
-\definecharacter lcommaaccent 167
-\definecharacter Ncommaaccent 138
-\definecharacter ncommaaccent 170
-\definecharacter Rcommaaccent 143
-\definecharacter rcommaaccent 175
-%definecharacter Tcedilla 149 % there is no tcedilla in encoding
-%definecharacter tcedilla 181
-
-\definecharacter Scommaaccent 147
-\definecharacter scommaaccent 179
-\definecharacter Tcommaaccent 149
-\definecharacter tcommaaccent 181
-
-\definecharacter Ohungarumlaut 139
-\definecharacter ohungarumlaut 171
-\definecharacter Uhungarumlaut 150
-\definecharacter uhungarumlaut 182
-
-\definecharacter Aogonek 3
-\definecharacter aogonek 19
-\definecharacter Eogonek 12
-\definecharacter eogonek 28
-\definecharacter Iogonek 130
-\definecharacter iogonek 162
-\definecharacter Uogonek 153
-\definecharacter uogonek 185
-
-\definecharacter Aring 197
-\definecharacter aring 229
-\definecharacter Uring 151
-\definecharacter uring 183
-
-\definecharacter Abreve 1
-\definecharacter abreve 17
-%definecharacter Ebreve {\buildtextaccent\textbreve E}
-%definecharacter ebreve {\buildtextaccent\textbreve e}
-\definecharacter Gbreve 13
-\definecharacter gbreve 29
-%definecharacter Ibreve {\buildtextaccent\textbreve \dotlessI}
-%definecharacter ibreve {\buildtextaccent\textbreve \dotlessi}
-%definecharacter Obreve {\buildtextaccent\textbreve O}
-%definecharacter obreve {\buildtextaccent\textbreve o}
-%definecharacter Ubreve {\buildtextaccent\textbreve U}
-%definecharacter ubreve {\buildtextaccent\textbreve u}
-
-\definecharacter Ccaron 5
-\definecharacter ccaron 21
-\definecharacter Dcaron 7
-\definecharacter dcaron 23
-\definecharacter Ecaron 9
-\definecharacter ecaron 25
-\definecharacter Lcaron 133
-\definecharacter lcaron 165
-\definecharacter Ncaron 137
-\definecharacter ncaron 169
-\definecharacter Rcaron 142
-\definecharacter rcaron 174
-\definecharacter Scaron 145
-\definecharacter scaron 177
-\definecharacter Tcaron 148
-\definecharacter tcaron 180
-%definecharacter Ycaron {\buildtextaccent\textcaron Y}
-%definecharacter ycaron {\buildtextaccent\textcaron y}
-\definecharacter Zcaron 158
-\definecharacter zcaron 190
-
-\definecharacter Lstroke 134
-\definecharacter lstroke 166
-\definecharacter Ostroke 216
-\definecharacter ostroke 248
-
-\stopencoding
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-fde.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-fde.mkii
deleted file mode 100644
index 57e572c04f4..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-fde.mkii
+++ /dev/null
@@ -1,126 +0,0 @@
-%D \module
-%D [ file=enco-fde,
-%D version=2000.08.20,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=German Input Filter,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\installactivecharacter "
-
-\startlanguagespecifics[\s!de]
-
- \installcompoundcharacter "a {\aumlaut\midworddiscretionary}
- \installcompoundcharacter "e {\eumlaut\midworddiscretionary}
- \installcompoundcharacter "i {\iumlaut\midworddiscretionary}
- \installcompoundcharacter "o {\oumlaut\midworddiscretionary}
- \installcompoundcharacter "u {\uumlaut\midworddiscretionary}
- \installcompoundcharacter "s {\ssharp}
- \installcompoundcharacter "z {\ssharp}
-
- \installcompoundcharacter "A {\Aumlaut}
- \installcompoundcharacter "E {\Eumlaut}
- \installcompoundcharacter "I {\Iumlaut}
- \installcompoundcharacter "O {\Oumlaut}
- \installcompoundcharacter "U {\Uumlaut}
- \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 "` {\startdelimitedtext[\v!quotation]}
- \installcompoundcharacter "' {\stopdelimitedtext}
- \installcompoundcharacter ". {\kern.1em\ignorespaces}
-
- %installcompoundcharacter "` {\languageparameter\c!leftquotation }
- %installcompoundcharacter "' {\languageparameter\c!rightquotation}
-
- \def\setupDElanguage
- {\setuplanguage
- [\s!de]
- [\c!leftsentence=\leftguillemot,
- \c!rightsentence=\rightguillemot,
- \c!leftsubsentence=\leftsubguillemot,
- \c!rightsubsentence=\rightsubguillemot]}
-
- \installcompoundcharacter "< {{\setupDElanguage|<|}}
- \installcompoundcharacter "> {{\setupDElanguage|>|}}
- \installcompoundcharacter "| {|*|}
-
-\stoplanguagespecifics
-
-% \hyphenatedword{hinauff|*|liegen}
-% \hyphenatedword{hinauff"|liegen}
-
-%D An experimental hack:
-
-% no {\simplifiedcompoundcharacter"}
-
-% \startencoding[pdfdoc]
-% \startlanguagespecifics[\s!de]% hm, a % is needed
-% \defineactivecharacter " {\"}
-% \stoplanguagespecifics
-% \stopencoding
-
-\startencoding[ec]
- \startlanguagespecifics[\s!de]%
- \installcompoundcharacter "a {\adiaeresis}
- \installcompoundcharacter "e {\ediaeresis}
- \installcompoundcharacter "i {\idiaeresis}
- \installcompoundcharacter "o {\odiaeresis}
- \installcompoundcharacter "u {\udiaeresis}
- \installcompoundcharacter "A {\Adiaeresis}
- \installcompoundcharacter "E {\Ediaeresis}
- \installcompoundcharacter "I {\Idiaeresis}
- \installcompoundcharacter "O {\Odiaeresis}
- \installcompoundcharacter "U {\Udiaeresis}
- \stoplanguagespecifics
-\stopencoding
-
-\startencoding[texnansi]
- \startlanguagespecifics[\s!de]%
- \installcompoundcharacter "a {\adiaeresis}
- \installcompoundcharacter "e {\ediaeresis}
- \installcompoundcharacter "i {\idiaeresis}
- \installcompoundcharacter "o {\odiaeresis}
- \installcompoundcharacter "u {\udiaeresis}
- \installcompoundcharacter "A {\Adiaeresis}
- \installcompoundcharacter "E {\Ediaeresis}
- \installcompoundcharacter "I {\Idiaeresis}
- \installcompoundcharacter "O {\Odiaeresis}
- \installcompoundcharacter "U {\Udiaeresis}
- \stoplanguagespecifics
-\stopencoding
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-ffr.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-ffr.mkii
deleted file mode 100644
index 7e605bb052c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-ffr.mkii
+++ /dev/null
@@ -1,55 +0,0 @@
-%D \module
-%D [ file=enco-ffr,
-%D version=2002.05.07,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=French Input Filter,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \definehspace[fr][:][.25em]
-% \definehspace[fr][;][.25em]
-% \definehspace[fr][!][.25em]
-% \definehspace[fr][?][.25em]
-
-\enablemode[activecolon] \usemodule[tryout] % for the moment
-
-\installactivecharacter :
-\installactivecharacter ;
-\installactivecharacter ?
-\installactivecharacter !
-
-\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
-
-\appendtoks % maybe everywhere
- \chardef\activecharactermode\zerocount
-\to\everyMPgraphic
-
-% maybe tricky due to possible name clashes:
-%
-% \def\ieme {\highordinalstr{e}}
-% \def\iemes{\highordinalstr{es}}
-% \def\ier {\highordinalstr{er}}
-% \def\iers {\highordinalstr{ers}}
-% \def\iere {\highordinalstr{re}}
-% \def\ieres{\highordinalstr{res}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-fpl.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-fpl.mkii
deleted file mode 100644
index ddf86569838..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-fpl.mkii
+++ /dev/null
@@ -1,98 +0,0 @@
-%D \module
-%D [ file=enco-fpl,
-%D version=2000.08.20,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Polish Input Filter,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D These definitions used to be part of lang-sla.tex.
-
-\unprotect
-
-% todo : named glyphs
-
-\installactivecharacter /
-
-\startlanguagespecifics[\s!pl]
-
-% \appendtoks \makecharacteractive / \to \everynormalcatcodes % obsolete
-
- \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
-
-\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
-
-% 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
- \defineactivecharacter / {\simplifiedcompoundcharacter/}
- \stoplanguagespecifics
-\stopencoding
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-fro.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-fro.mkii
deleted file mode 100644
index af127216383..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-fro.mkii
+++ /dev/null
@@ -1,35 +0,0 @@
-%D \module
-%D [ file=enco-fro,
-%D version=2000.08.20,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Romanian Input Filter,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D These definitions used to be part of lang-ita.tex.
-
-\unprotect
-
-\installactivecharacter "
-
-\startlanguagespecifics[\s!ro]
-
- \installcompoundcharacter "a {\acircumflex}
- \installcompoundcharacter "i {\icircumflex}
- \installcompoundcharacter "s {\scedilla}
- \installcompoundcharacter "t {\tcedilla}
- \installcompoundcharacter "A {\Acircumflex}
- \installcompoundcharacter "I {\Icircumflex}
- \installcompoundcharacter "S {\Scedilla}
- \installcompoundcharacter "T {\Tcedilla}
- \installcompoundcharacter "` {\startdelimitedtext[\v!quotation]}
- \installcompoundcharacter "' {\stopdelimitedtext}
-
-\stoplanguagespecifics
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-fsl.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-fsl.mkii
deleted file mode 100644
index 8fbca98cafc..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-fsl.mkii
+++ /dev/null
@@ -1,32 +0,0 @@
-%D \module
-%D [ file=enco-fsl,
-%D version=2005.08.17,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Slovenian Specialities,
-%D author={Hans Hagen, Mojka Miklavec},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Usage:
-%D
-%D \starttyping
-%D \useencoding[fsl]
-%D
-%D \starttext
-%D \dstroke \language[sl] \dstroke
-%D \stoptext
-%D \stoptyping
-
-\unprotect
-
-\startlanguagespecifics[\s!sl]
- \startencoding[\s!default]
- \definecharacter dstroke {d\zcaron} % hm, expects a space delimiter
- \stopencoding
-\stoplanguagespecifics
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-grk.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-grk.mkii
deleted file mode 100644
index 6264f362e88..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-grk.mkii
+++ /dev/null
@@ -1,190 +0,0 @@
-%D \module
-%D [ file=enco-grk,
-%D version=2003.03.01,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Greek,
-%D author=Apostolos Syropoulos,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\startmapping[iso-8859-7]
-
-% Uppercase Greek letters
-
-\definecasemap 193 193 225 % greekAlpha
-\definecasemap 194 194 226 % greekBeta
-\definecasemap 195 195 227 % greekGamma
-\definecasemap 196 196 228 % greekDelta
-\definecasemap 197 197 229 % greekEpsilon
-\definecasemap 198 198 230 % greekZeta
-\definecasemap 199 199 213 % greekEta
-\definecasemap 200 200 232 % greekTheta
-\definecasemap 201 201 233 % greekIota
-\definecasemap 202 202 234 % greekKappa
-\definecasemap 203 203 235 % greekLambda
-\definecasemap 204 204 236 % greekMu
-\definecasemap 205 205 237 % greekNu
-\definecasemap 206 206 238 % greekXi
-\definecasemap 207 207 239 % greekOmicron
-\definecasemap 208 208 240 % greekPi
-\definecasemap 209 209 241 % greekRho
-\definecasemap 211 211 243 % greekSigma
-\definecasemap 212 212 244 % greekTau
-\definecasemap 213 213 245 % greekUpsilon
-\definecasemap 214 214 246 % greekPhi
-\definecasemap 215 215 247 % greekChi
-\definecasemap 216 216 248 % greekPsi
-\definecasemap 217 217 249 % greekOmega
-
-% Lowercase Greek letters
-
-\definecasemap 225 193 225 % greekalpha
-\definecasemap 226 194 226 % greekbeta
-\definecasemap 227 195 227 % greekgamma
-\definecasemap 228 196 228 % greekdelta
-\definecasemap 229 197 229 % greekepsilon
-\definecasemap 230 198 230 % greekzeta
-\definecasemap 213 199 213 % greeketa
-\definecasemap 232 200 232 % greektheta
-\definecasemap 233 201 233 % greekiota
-\definecasemap 234 202 234 % greekkappa
-\definecasemap 235 203 235 % greeklambda
-\definecasemap 236 204 236 % greekmu
-\definecasemap 237 205 237 % greeknu
-\definecasemap 238 206 238 % greekxi
-\definecasemap 239 207 239 % greekomicron
-\definecasemap 240 208 240 % greekpi
-\definecasemap 241 209 241 % greekrho
-\definecasemap 242 211 242 % greekfinalsigma
-\definecasemap 243 211 243 % greekSigma
-\definecasemap 244 212 244 % greekTau
-\definecasemap 245 213 245 % greekUpsilon
-\definecasemap 246 214 246 % greekPhi
-\definecasemap 247 215 247 % greekChi
-\definecasemap 248 216 248 % greekPsi
-\definecasemap 249 217 249 % greekOmega
-
-% Accented Uppercase Greek letters
-
-\definecasemap 182 193 220 % greekAlphatonos
-\definecasemap 184 197 221 % greekEpsilontonos
-\definecasemap 185 199 222 % greekEtatonos
-\definecasemap 186 201 223 % greekIotatonos
-\definecasemap 188 207 252 % greekOmicrontonos
-\definecasemap 190 213 253 % greekUpsilontonos
-\definecasemap 191 217 254 % greekOmegatonos
-\definecasemap 218 218 250 % greekIotadialytika
-\definecasemap 219 219 251 % greekUpsilondialytika
-
-% Accented Lowercase Greek letters
-
-\definecasemap 220 193 220 % greekalphatonos
-\definecasemap 221 197 221 % greekepsilontonos
-\definecasemap 222 199 222 % greeketatonos
-\definecasemap 223 201 223 % greekiotatonos
-\definecasemap 252 207 252 % greekomicrontonos
-\definecasemap 253 213 253 % greekupsilontonos
-\definecasemap 254 217 254 % greekomegatonos
-\definecasemap 250 218 250 % greekiotadialytika
-\definecasemap 251 219 251 % greekupsilondialytika
-\definecasemap 192 218 192 % greekiotadialytikatonos
-\definecasemap 224 219 224 % greekupsilondialytikatonos
-
-\stopmapping
-
-\startencoding[iso-8859-7]
-
-% Uppercase Greek letters
-
-\definecharacter greekAlpha 193
-\definecharacter greekBeta 194
-\definecharacter greekGamma 195
-\definecharacter greekDelta 196
-\definecharacter greekEpsilon 197
-\definecharacter greekZeta 198
-\definecharacter greekEta 199
-\definecharacter greekTheta 200
-\definecharacter greekIota 201
-\definecharacter greekKappa 202
-\definecharacter greekLambda 203
-\definecharacter greekMu 204
-\definecharacter greekNu 205
-\definecharacter greekXi 206
-\definecharacter greekOmicron 207
-\definecharacter greekPi 208
-\definecharacter greekRho 209
-\definecharacter greekSigma 211
-\definecharacter greekTau 212
-\definecharacter greekUpsilon 213
-\definecharacter greekPhi 214
-\definecharacter greekChi 215
-\definecharacter greekPsi 216
-\definecharacter greekOmega 217
-
-% Lowercase Greek letters
-
-\definecharacter greekalpha 225
-\definecharacter greekbeta 226
-\definecharacter greekgamma 227
-\definecharacter greekdelta 228
-\definecharacter greekepsilon 229
-\definecharacter greekzeta 230
-\definecharacter greeketa 231
-\definecharacter greektheta 232
-\definecharacter greekiota 233
-\definecharacter greekkappa 234
-\definecharacter greeklambda 235
-\definecharacter greekmu 236
-\definecharacter greeknu 237
-\definecharacter greekxi 238
-\definecharacter greekomicron 239
-\definecharacter greekpi 240
-\definecharacter greekrho 241
-\definecharacter greekfinalsigma 242
-\definecharacter greeksigma 243
-\definecharacter greektau 244
-\definecharacter greekupsilon 245
-\definecharacter greekphi 246
-\definecharacter greekchi 247
-\definecharacter greekpsi 248
-\definecharacter greekomega 249
-
-% Accented Uppercase Greek letters
-
-\definecharacter greekAlphatonos 182
-\definecharacter greekEpsilontonos 184
-\definecharacter greekEtatonos 185
-\definecharacter greekIotatonos 186
-\definecharacter greekOmicrontonos 188
-\definecharacter greekUpsilontonos 190
-\definecharacter greekOmegatonos 191
-\definecharacter greekIotadialytika 218
-\definecharacter greekUpsilondialytika 219
-
-% Accented Lowercase Greek letters
-
-\definecharacter greekalphatonos 220
-\definecharacter greekepsilontonos 221
-\definecharacter greeketatonos 222
-\definecharacter greekiotatonos 223
-\definecharacter greekomicrontonos 252
-\definecharacter greekupsilontonos 253
-\definecharacter greekomegatonos 254
-\definecharacter greekiotadialytika 250
-\definecharacter greekupsilondialytika 251
-\definecharacter greekiotadialytikatonos 192
-\definecharacter greekupsilondialytikatonos 224
-
-% Miscellaneous Greek symbols
-
-\definecharacter greekleftquot 171
-\definecharacter greekrightquot 187
-\definecharacter greektonos 180
-\definecharacter greekdialytikatonos 181
-\definecharacter greekapostrophos 162
-
-\stopencoding
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-heb.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-heb.mkii
deleted file mode 100644
index a4ef2cd2c11..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-heb.mkii
+++ /dev/null
@@ -1,16 +0,0 @@
-%D \module
-%D [ file=enco-heb,
-%D version=2005.01.27,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Hebrew,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D To be done.
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-ibm.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-ibm.mkii
deleted file mode 100644
index 48695ca5298..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-ibm.mkii
+++ /dev/null
@@ -1,7 +0,0 @@
-% temporary module, needed for downward compatibility
-
-%\input regi-ibm.tex
-
-\enableregime[ibm]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-il2.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-il2.mkii
deleted file mode 100644
index 9b08dc8972f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-il2.mkii
+++ /dev/null
@@ -1,157 +0,0 @@
-%D \module
-%D [ file=enco-il2,
-%D version=2000.05.07, % 1998.12.01,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Czech and Slovak ISO Latin 2 Encoding,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% This encoding will go but the regime will remain.
-
-%D This Czech/Slovak encoding is dedicated to Han The Thanh.
-%D The numbers are derived from some files he sent me. This
-%D definition file is (still) sort of beta.
-
-\startmapping[il2]
-
-\resetcaserange 127 to 255 % we map them all to themselves
-
-\definecaseswap 184 152
-\definecaseswap 181 165
-\definecaseswap 185 169
-\definecaseswap 187 171
-\definecaseswap 190 174
-\definecaseswap 224 192
-\definecaseswap 225 193
-\definecaseswap 228 196
-\definecaseswap 229 197
-\definecaseswap 232 200
-\definecaseswap 233 201
-\definecaseswap 236 204
-\definecaseswap 237 205
-\definecaseswap 239 207
-\definecaseswap 242 210
-\definecaseswap 243 211
-\definecaseswap 244 212
-\definecaseswap 246 214
-\definecaseswap 248 216
-\definecaseswap 249 217
-\definecaseswap 250 218
-\definecaseswap 252 220
-\definecaseswap 253 221
-
-\stopmapping
-
-\startencoding[il2][il2]
-
-\definecharacter textgrave 18
-\definecharacter textacute 19
-\definecharacter textcaron 20
-\definecharacter textbreve 21
-\definecharacter textmacron 22
-\definecharacter textring 23
-\definecharacter textcedilla 24
-\definecharacter textcircumflex 94
-\definecharacter textdotaccent 95
-\definecharacter texthungarumlaut 125
-\definecharacter texttilde 126
-\definecharacter textdiaeresis 127
-
-\definecharacter dotlessi 16
-\definecharacter dotlessj 17
-
-\definecharacter aeligature 26
-\definecharacter AEligature 29
-\definecharacter oeligature 27
-\definecharacter OEligature 30
-
-\definecharacter ssharp 25
-
-\definecharacter Racute 192
-\definecharacter Aacute 193
-\definecharacter Lacute 197
-\definecharacter Eacute 201
-\definecharacter Iacute 205
-\definecharacter Oacute 211
-\definecharacter Uacute 218
-\definecharacter Yacute 221
-\definecharacter racute 224
-\definecharacter aacute 225
-\definecharacter lacute 229
-\definecharacter eacute 233
-\definecharacter iacute 237
-\definecharacter oacute 243
-\definecharacter uacute 250
-\definecharacter yacute 253
-
-\definecharacter Lcaron 165
-\definecharacter Scaron 169
-\definecharacter Tcaron 171
-\definecharacter Zcaron 174
-\definecharacter lcaron 181
-\definecharacter scaron 185
-\definecharacter tcaron 187
-\definecharacter zcaron 190
-\definecharacter Ccaron 200
-\definecharacter Ecaron 204
-\definecharacter Dcaron 207
-\definecharacter Ncaron 210
-\definecharacter Rcaron 216
-\definecharacter ccaron 232
-\definecharacter ecaron 236
-\definecharacter dcaron 239
-\definecharacter ncaron 242
-\definecharacter rcaron 248
-
-\definecharacter Ocircumflex 212
-\definecharacter ocircumflex 244
-
-\definecharacter Adiaeresis 196
-\definecharacter Odiaeresis 214
-\definecharacter Udiaeresis 220
-\definecharacter adiaeresis 228
-\definecharacter odiaeresis 246
-\definecharacter udiaeresis 252
-
-\definecharacter Agrave 152
-\definecharacter agrave 184
-
-\definecharacter Ohungarumlaut 213
-\definecharacter Uhungarumlaut 219
-\definecharacter ohungarumlaut 245
-\definecharacter uhungarumlaut 251
-
-\definecharacter Uring 217
-\definecharacter uring 249
-\definecharacter Aring {\ilencodedrA}
-
-\definecharacter ostroke 28
-\definecharacter Ostroke 31
-\definecharacter Lstroke {\ilencodedL}
-\definecharacter lstroke {\ilencodedl}
-
-\def\ilencodedrA
- {\dontleavehmode\hbox\bgroup
- \setbox0\hbox{h}%
- \dimen0=\ht0
- \advance\dimen0 by -1ex
- \rlap{\raise.67\dimen0\hbox{\char'27}}A%
- \egroup}
-
-\def\ilencodedl
- {\dontleavehmode{\char32l}}
-
-\def\ilencodedL
- {\dontleavehmode\hbox\bgroup
- \setbox0\hbox{L}%
- \hbox to\wd0{\hss\char32L}%
- \egroup}
-
-\stopencoding
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-ini.mkii
deleted file mode 100644
index 8603f2420e1..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-ini.mkii
+++ /dev/null
@@ -1,1137 +0,0 @@
-%D \module
-%D [ file=enco-ini,
-%D version=2007.02.19, % 2000.12.27, % 1998.12.03,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Quite some code will be moved to the mk files once we're ready
-%D for it.
-
-%D This module is a reimplementation of the module that handled
-%D composed characters and non \ASCII\ characters. The changed
-%D are not that fundamental, and mainly concerns moving
-%D definitions of specific glyphs and accents to other files as
-%D well as moving plain handling of accents to this module
-%D instead of overloading plain \TEX\ commands.
-
-%D Patterns are kind of mixed with font encodings and
-%D mappings. Alas.
-
-\ifx\synchronizepatterns\undefined \let\synchronizepatterns\relax \fi
-
-%D While dealing with input (the text source) and output (the
-%D glyphs), encoding comes into view. To summarize a few:
-%D
-%D \startitemize
-%D \item Bytes in the input file are mapped to an internal
-%D representation. An~\type {a} often stays an~\type {a},
-%D but~\type {\"e} can become either one code or become
-%D two codes (ending in overlapping glyphs).
-%D \item Characters can be made active and mapped onto another
-%D character.
-%D \item When changing case, characters are mapped onto
-%D themselves, their case||counterpart or a reasonable
-%D alternative, like~\"e onto~e.
-%D \item Single character representations in a \DVI\ file can
-%D be mapped onto one or more characters, either of not
-%D in more than one font file (virtual fonts).
-%D \item In the final format, fonts collections can be
-%D partially embedded, thereby losing the one||to||one
-%D relation between several instances of one font.
-%D \item For special purposes, individual characters should be
-%D mapped onto a dedicated encoding vector, for instance
-%D \PDF\ document encoding.
-%D \stopitemize
-%D
-%D These and other kind of mappings are to be dealt with, and
-%D the exact way of dealing often depends on the language to be
-%D typeset.
-
-\writestatus{loading}{ConTeXt Encoding Macros / Initialization}
-
-\unprotect
-
-%D First we define a few local or not yet initialized constants.
-
-\def\@map@{@m@ap@} % mapping prefix
-\def\@fha@{@f@ha@} % font prefix
-\def\@cas@{@c@as@} % casecom prefix
-
-\ifx\currentlanguage\undefined \let\currentlanguage\s!en \fi
-
-%D \macros
-%D {setupencoding}
-%D
-%D The following setup command is used to tune encoding
-%D handling.
-
-\def\setupencoding
- {\dosingleargument\dosetupencoding}
-
-\def\dosetupencoding[#1]%
- {\getparameters[\??ec][#1]%
- \edef\defaultencoding
- {\ifx\@@ecdefault\empty\s!default\else\@@ecdefault\fi}}
-
-%D \macros
-%D {useencoding}
-%D
-%D Encodings things are defined in separate files and are
-%D loaded only once, using:
-%D
-%D \showsetup{useencoding}
-
-\def\douseencoding#1%
- {\doifundefined{\c!file\f!encodingprefix#1}%
- {\letvalue{\c!file\f!encodingprefix#1}\empty
- \makeshortfilename[\truefilename{\f!encodingprefix#1}]%
- \startreadingfile
- \readsysfile{\shortfilename.mkii}
- {\showmessage\m!encodings2{#1}}
- {\showmessage\m!encodings3{#1}}%
- \stopreadingfile}}
-
-\def\useencoding[#1]%
- {\processcommalist[#1]\douseencoding}
-
-%D \macros
-%D {startmapping,enablemapping}
-%D
-%D In order to process patterns, convert from lower to
-%D uppercase and vise versa and some more, we provide a
-%D mechanism to define mappings. The first real application
-%D of this command was:
-%D
-%D \starttyping
-%D \startmapping [something]
-%D \definecasemap 165 181 165
-%D \definecasemap 171 187 171
-%D ...
-%D \defineuppercasecom \i {I}
-%D \defineuppercasecom \l \L
-%D \definelowercasecom \AE \ae
-%D ...
-%D \stopmapping
-%D \stoptyping
-%D
-%D So, character 165 becomes 181 in uppercase and 165 in
-%D lowercase. A mapping is activated with \type {\enablemapping}.
-
-\def\startsavingmappingtoks#1%
- {\bgroup
- \edef\charactermapping{@#1@}%
- \checkmappingtoks
- \setmappingtoks
- \the\mappingtoks}
-
-\def\stopsavingmappingtoks
- {\global\mappingtoks\emptytoks
- \dostepwiserecurse{0}{255}\plusone
- {\edef\@@expanded
- {\the\mappingtoks
- \ifnum\recurselevel>127
- \noexpand\settoletterunlessactive{\recurselevel}%
- \fi
- \lccode\recurselevel\ifnum\lccode\recurselevel=\zerocount\zerocount\else\space\the\lccode\recurselevel\space\fi
- \uccode\recurselevel\ifnum\uccode\recurselevel=\zerocount\zerocount\else\space\the\uccode\recurselevel\space\fi
- \ifnum\sfcode\recurselevel=\plusthousand\else\sfcode\recurselevel=\the\sfcode\recurselevel\space\fi
- }%
- \global\mappingtoks\expandafter{\@@expanded}}%
- \egroup
- \let\enabledmapping\empty
- \enablemapping[\currentmapping]}
-
-\def\startmapping[#1]%
- {\startsavingmappingtoks{#1}}
-
-\def\stopmapping
- {\stopsavingmappingtoks}
-
-\def\optimizemapping[#1]%
- {\startsavingmappingtoks{#1}%
- % nothing, just an automatic cleanup
- \stopsavingmappingtoks
- % we need to resync
- %\let\enabledmapping\relax
- }%\enablemapping[\currentmapping]}
-
-\def\setmappingtoks
- {\@EA\let\@EA\mappingtoks\csname\@map@\charactermapping\endcsname
- \@EA\let\@EA\casecomtoks\csname\@cas@\charactermapping\endcsname}
-
-\def\checkmappingtoks
- {\ifundefined{\@map@\charactermapping}%
- \expandafter\newtoks\csname\@map@\charactermapping\endcsname
- \fi
- \ifundefined{\@cas@\charactermapping}%
- \expandafter\newtoks\csname\@cas@\charactermapping\endcsname
- \fi}
-
-\def\definecasemap #1 #2 #3 % code lower upper
- {\doifelse{#2}{to}
- {\presetcaserange{#1}{#3}}
- {\lccode#1=#2\relax
- \uccode#1=#3\relax}%
- \ignorespaces}
-
-%D Saves a few tokens
-
-\def\definecaseswap #1 #2 % lower upper
- {\lccode#1=#1\relax
- \uccode#2=#2\relax
- \lccode#2=#1\relax
- \uccode#1=#2\relax
- \ignorespaces}
-
-\def\definecaseself #1 % lower=upper=self
- {\lccode#1=#1\relax
- \uccode#1=#1\relax
- \ignorespaces}
-
-%D Watch the \type {\definecasemap 127 to 255} option!
-%D Dedicated to Taco there is also:
-
-\def\definecasemaps #1 to #2 lc #3 uc #4 % from to lc+ uc+
- {\dostepwiserecurse{#1}{#2}\plusone
- {\scratchcounter\recurselevel\advance\scratchcounter#3\lccode\recurselevel=\scratchcounter
- \scratchcounter\recurselevel\advance\scratchcounter#4\uccode\recurselevel=\scratchcounter}%
- \ignorespaces}
-
-%D This can be used like:
-%D
-%D \starttyping
-%D \definecasemaps 128 to 156 lc 32 uc 0
-%D \definecasemaps 160 to 188 lc -32 uc 0
-%D \definecasemaps 160 to 188 lc -32 uc 0
-%D \definecasemaps 192 to 255 lc 32 uc 0
-%D \stoptyping
-%D
-%D and saves a lot of typing (copying).
-
-\def\resetcaserange #1 to #2
- {\dostepwiserecurse{#1}{#2}\plusone
- {\lccode\recurselevel\zerocount
- \uccode\recurselevel\zerocount}%
- \ignorespaces}
-
-\def\presetcaserange#1#2% could be pre-expanded
- {\dostepwiserecurse{#1}{#2}\plusone
- {\lccode\recurselevel=\recurselevel
- \uccode\recurselevel=\recurselevel}%
- \ignorespaces}
-
-\def\setcasemap #1 #2 #3 %
- {\settoletterunlessactive{#1}%
- \lccode #1=#2
- \uccode #1=#3 }
-
-\def\setcaseswap #1 #2 %
- {\settoletterunlessactive{#1}%
- \settoletterunlessactive{#2}%
- \lccode #1=#1
- \uccode #2=#2
- \lccode #2=#1
- \uccode #1=#2 }
-
-\def\setcaseself #1 %
- {\settoletterunlessactive{#1}%
- \lccode #1=#1
- \uccode #1=#1 }
-
-\def\definespacemap #1 #2 % code sfcode
- {\sfcode#1=#2%
- \ignorespaces}
-
-\def\setspacemap #1 #2 %
- {\settootherunlessactive{#1}%
- %\lccode #1=\zerocount
- %\uccode #1=\zerocount
- \sfcode #1=#2 }
-
-\def\defineuppercasecom#1#2%
- {\global\casecomtoks\expandafter{\the\casecomtoks\setuppercasecom#1{#2}}%
- \ignorespaces}
-
-\def\definelowercasecom#1#2%
- {\global\casecomtoks\expandafter{\the\casecomtoks\setlowercasecom#1{#2}}%
- \ignorespaces}
-
-\let\setuppercasecom\gobbletwoarguments
-\let\setlowercasecom\gobbletwoarguments
-
-\def\setcasecom#1#2{\def#1{#2}}
-
-\let\enabledmapping\empty % indirect, needed to handle default too
-
-\def\enablemapping[#1]%
- {\edef\charactermapping{@#1@}%
- \ifx\enabledmapping\charactermapping \else
- \doifdefined{\@map@\charactermapping}
- {%\expandafter\showthe\csname\@map@\charactermapping\endcsname\endcsname
- \the\csname\@map@\charactermapping\endcsname}%
- % == \the\executeifdefined{\@map@\charactermapping}\emptytoks
- \edef\enabledmapping{\charactermapping}%
- \enablelanguagespecifics[\currentlanguage]% new
- % \edef\enabledmapping{\charactermapping\currentlanguage}% can be comma list
- \fi
- \synchronizepatterns}
-
-% on behalf of font switching:
-
-\def\fastenablemapping#1%
- {\edef\charactermapping{@#1@}%
- \ifx\enabledmapping\charactermapping \else
- \@EA\ifx\csname\@map@\charactermapping\endcsname\relax\else
- \the\csname\@map@\charactermapping\endcsname
- \fi
- % == \the\executeifdefined{\@map@\charactermapping}\emptytoks
- \let\enabledmapping\charactermapping
- \enablelanguagespecifics[\currentlanguage]% to faster
- \fi}
-
-%D This macro wil be implemented in \type {lang-ini.tex}.
-
-\ifx\enablelanguagespecifics\undefined
- \def\enablelanguagespecifics[#1]{}
-\fi
-
-%D Further on we have to take some precautions when dealing
-%D with special characters like~\type{~}, \type{_}
-%D and~\type{^}, so let us define ourselve some handy macros
-%D first.
-
-\def\protectfontcharacters
- {\edef\unprotectfontcharacters
- {\catcode`\noexpand ~=\the\catcode`~\relax
- \catcode`\noexpand _=\the\catcode`_\relax
- \catcode`\noexpand ^=\the\catcode`^\relax}%
- \catcode`~=\@@letter
- \catcode`_=\@@letter
- \catcode`^=\@@letter\relax}
-
-%D The completeness of the Computer Modern Roman typefaces
-%D makes clear how incomplete other faces are. To honour 7~bit
-%D \ASCII, these fonts were designed using only the first 127
-%D values of the 256 ones that can be presented by one byte.
-%D Nowadays 8~bit character codings are more common, mainly
-%D because they permit us to predefine some composed
-%D characters, which are needed in most european languages.
-%D
-%D Supporting more than the standard \TEX\ encoding vector
-%D |<|which in itself is far from standard and differs per
-%D font|>| puts a burden on the fonts mechanism. The \CONTEXT\
-%D mechanism is far from complete, but can handle several
-%D schemes at once. The main problem lays in the accented
-%D characters and ligatures like~ff, although handling
-%D ligatures is not the responsibility of this module.
-%D
-%D By default, we use \PLAIN\ \TEX's approach of placing
-%D accents. All other schemes sooner or later give problems
-%D when we distribute \DVI||files are distributed across
-%D machines and platforms. Nevertheless, we have to take care
-%D of different encoding vectors, which tell us where to find
-%D the characters we need. This means that all kind of
-%D character placement macro's like \type{\"} and \type{\ae}
-%D have to be implemented and adapted in a way that suits
-%D these vectors.
-%D
-%D The main difference between different vector is the way
-%D accents are ordered and/or the availability of prebuilt
-%D accented characters. Accented characters can for instance be
-%D called for by sequences like \type{\"e}. Here the \type{\"}
-%D is defined as:
-%D
-%D \starttyping
-%D \def\"#1{{\accent"7F #1}}
-%D \stoptyping
-%D
-%D This macro places the accent \accent"7F {} on top of an~e
-%D gives \"e. Some fonts however can have prebuild accents and
-%D use a more direct approach like
-%D
-%D \starttyping
-%D \def\"#1{\if#1e\char 235\else ... \fi}
-%D \stoptyping
-%D
-%D The latter approach is not used in \CONTEXT, because we
-%D store relevant combinations of accents and characters in
-%D individual macros.
-
-%D We define character substitutes and commands with definition
-%D commands like:
-%D
-%D \starttyping
-%D \startcoding[texnansi]
-%D
-%D \defineaccent " a 228
-%D \defineaccent ^ e 234
-%D \defineaccent ' {\dotlessi} 237
-%D
-%D \definecharacter ae 230
-%D \definecharacter oe 156
-%D
-%D \definecommand b \texnansiencodedb
-%D \definecommand c \texnansiencodedc
-%D
-%D \stopcoding
-%D \stoptyping
-%D
-%D The last argument of \type{\defineaccent} and
-%D \type{\definecharacter} tells \TEX\ the position of the
-%D accented character in the encoding vector. In order to
-%D complish this, we tag each implementation with the character
-%D coding identifier. We therefore need two auxiliary variables
-%D \type{\characterencoding} and \type{\nocharacterencoding}. These
-%D contain the current and default encoding vectors and both
-%D default to the \PLAIN\ one.
-
-\edef\characterencoding {@\s!default @}
-\edef\nocharacterencoding {@\s!default @}
-\edef\charactermapping {@\s!default @}
-
-% todo, else \d j == \dj, print file and check
-
-\def\accentprefix {}%{*}
-\def\commandprefix {}%{=}
-\def\characterprefix{}%{-}
-
-%D \macros
-%D {startcoding, reducetocoding}
-%D
-%D Before we can redefine accents and special characters, we
-%D have to tell \CONTEXT\ what encoding is in force. The next
-%D command is responsible for doing this and also takes care of
-%D the definition of the recoding commands. We use the \type
-%D {\start}||\type {\stop}||commands for definitions and the
-%D \type {\reduceto}||command for local switching to
-%D simplified commands.
-
-% etex : \ifcsname
-
-\def\justhandleaccent#1#2% \empty makes #2={} save % no \unexpanded
- {\ifundefined{\accentprefix\characterencoding#1\string#2\empty}%
- #2%
- \else
- \csname\accentprefix\characterencoding#1\string#2\empty\endcsname
- \fi}
-
-\def\justhandlecommand#1% % no \unexpanded, otherwise pdfdoc will fail
- {\ifundefined{\commandprefix\characterencoding#1}% as well as hyph patterns
- #1%
- \else
- \csname\commandprefix\characterencoding#1\endcsname
- \fi}
-
-\def\enableencoding
- {\dodoubleempty\doenableencoding}
-
-\def\doenableencoding[#1][#2]% main fallback
- {\iffirstargument\edef\characterencoding{@#1@}\fi
- \edef\nocharacterencoding{@\ifsecondargument#2\else\s!default\fi @}%
- \synchronizepatterns}
-
-\edef\xnocharacterencoding{@\s!default @}
-
-\def\fastenableencoding#1%
- {\edef\characterencoding{@#1@}%
- \let\nocharacterencoding\xnocharacterencoding}
-
-\def\startencoding
- {\dodoubleempty\dostartencoding}
-
-\def\dostartencoding[#1][#2]% encoding regime
- {%\showmessage\m!encodings1{#1}%
- \pushmacro\characterencoding
- \pushmacro\currentregime
- \pushmacro\dohandleaccent % still needed?
- \pushmacro\dohandlecommand % still needed?
- \pushmacro\doautosetregime
- \let\dohandleaccent\donthandleaccent % still needed?
- \let\dohandlecommand\donthandlecommand % still needed?
- %let\definesortkey\savesortkey
- \edef\characterencoding{@#1@}%
- \doifelsenothing{#2}%
- {\let\doautosetregime\gobbletwoarguments}
- {\def\currentregime{#2}}}
-
-\def\stopencoding
- {\popmacro\doautosetregime
- \popmacro\dohandlecommand % still needed?
- \popmacro\dohandleaccent % still needed?
- \popmacro\currentregime
- \popmacro\characterencoding}
-
-% probably obsolete (hm, not yet)
-
-\def\reducetocoding[#1]% use grouped!
- {\doifsomething{#1}
- {\let\dohandleaccent \justhandleaccent
- \let\dohandlecommand\justhandlecommand
- \enableencoding[#1]%
- \enablelanguagespecifics[\currentlanguage]}}
-
-\let\startcoding \startencoding
-\def\stopcoding {\stopencoding}
-\let\enablecoding \enableencoding
-
-%D The use of these macros are not limited to font
-%D definition files, but may also be used when loading
-%D patterns.
-
-%D \macros
-%D {definesortkey,flushsortkeys,flushsortkey}
-%D
-%D Yet another definition concerns sorting of indexes and
-%D lists.
-%D
-%D \starttyping
-%D \definesortkey {\'e} {e} {a} {\'e}
-%D \stoptyping
-%D
-%D The first argument denotes the string to be treated. The
-%D second argument is the raw replacement, while the third
-%D argument determines the sort order given the replacement.
-%D The last argument is used as entry in the index (a, b, etc).
-%D
-%D The keys can be flushed using \type {\flushsortkeys}
-%D which in turn results in a sequence of calls to \type
-%D {\flushsortkey}, a macro taking 4~arguments.
-%D
-%D This mechanism is currently being tested and subjected to
-%D changes! Obsolete:
-
-\let\definesortkey\gobblefourarguments
-\let\savesortkey \gobblefourarguments
-\let\flushsortkeys\relax
-\let\flushsortkey \relax
-
-%D \macros
-%D {defineaccent, definecharacter, definecommand}
-%D
-%D The actual definition of accents, special characters and
-%D commands is done with the next three commands.
-
-\def\defineaccent
- {\protectfontcharacters
- \dodefineaccent}
-
-\def\dodefineaccent#1 #2 %
- {\unprotectfontcharacters
- \dododefineaccent#1 #2 }
-
-\def\dododefineaccent#1 #2 #3 %
- {\setvalue{#1}{\dohandleaccent{#1}}%
- \doifnumberelse{\string#3}
- {\setvalue{\accentprefix\characterencoding#1\string#2}{\char#3 }} % space added
- {\setvalue{\accentprefix\characterencoding#1\string#2}{#3}}}
-
-\def\dohandleaccent#1#2%
- {\ifcsname\accentprefix\characterencoding#1\string#2\empty\endcsname
- \csname\accentprefix\characterencoding#1\string#2\empty\endcsname
- \else\ifcsname\accentprefix\nocharacterencoding#1\string#2\empty\endcsname
- \csname\accentprefix\nocharacterencoding#1\string#2\empty\endcsname
- \else\ifcsname\accentprefix\characterencoding#1\endcsname
- \csname\accentprefix\characterencoding#1\endcsname{#2}%
- \else%\ifcsname\accentprefix\nocharacterencoding#1\endcsname
- \csname\accentprefix\nocharacterencoding#1\endcsname{#2}%
-% \else
-% \donormaltextaccent{#1}{#2}%
- \fi\fi\fi}%\fi}
-
-\def\patternchar#1 {\rawcharacter{#1}} % space is part of character definition !
-
-% \ifx \enablepatterntokens\undefined
-% \def\handlepatterntoken#1]{\csname#1\endcsname}
-% \fi
-
-% we need to postpone catcode changes, e.g. hr patterns
-% have \catcode" -> which fails when " is letter
-
-\def\pathypsettings
- {\ifx \enablepatterntokens\undefined
- \defineactivecharacter [ {\handlepatterntoken}%
- \else
- \enablepatterntokens
- \fi
- \let\dochar\thechr
- \lccode16=16 % brrr, extra quote in ec (turkish)
- \lccode17=17 % brrr, extra quote in ec (turkish)
- \lccode`\-=`\-
- \lccode`\'=`\'
- \lccode`\"=`\"
- \relax}
-
-\def\patterns {\pathypsettings\normalpatterns }
-\def\hyphenation{\pathypsettings\normalhyphenation}
-
-%D Because we don't want to use the second command grouped, we
-%D (re)define it as follows:
-
-\def\hyphenation
- {\begingroup\def\hyphenation{\normalhyphenation{\the\scratchtoks}\endgroup}%
- \pathypsettings\afterassignment\hyphenation\scratchtoks=}
-
-%D This is not needed for patterns because they are loaded grouped
-%D anyway and it saves us an assignment. Can go ... no longer
-%D shared patterns.
-
-\def\startpatternloading#1#2#3% % we should use \everypatternloading
- {\startreadingfile
- \bgroup
- % let's get rid of interfering stuff
- \let\everyjob\scratchtoks
- \let\message \gobbleoneargument
- % we want direct characters
- \let\char\patternchar
- \doifelsenothing{#2}{\enableencoding[ec]}{\enableencoding[#2]}%
- \doifelsenothing{#3}{\enablemapping [ec]}{\enablemapping [#3]}%
- \expanded{\doifinstring{\f!languageprefix}{#1}}
- {\ifx \enablepatternxml\undefined \else
- \enablepatternxml
- \fi}%
- \let\dohandleaccent\normaldohandleaccent}
-
-\def\stoppatternloading
- {\egroup
- \stopreadingfile}
-
- \def\thechr#1{\char#1 } % just in case \relax interferes
-\unexpanded\def\numchr#1{\char#1\relax}
-\unexpanded\def\strchr#1{\csname#1\endcsname}
-
-\let\dochar\numchr
-
-\def\startdirectcharacters {\pushmacro\dochar \let\dochar\thechr}
-\def\stopdirectcharacters {\popmacro \dochar}
-
-\def\definecharacter#1 #2 %
- {\ifundefined{#1}\setvalue{#1}{\dohandlecharacter{#1}}\fi
- \doifnumberelse{\string#2}
- {\setvalue{\characterprefix\characterencoding\string#1}{\dochar{#2}}%
- \doautosetregime{#1}{#2}}
- {\setvalue{\characterprefix\characterencoding\string#1}{#2}}}
-
-\def\dohandlecharacter#1%
- {\csname\characterprefix\ifcsname\characterprefix\characterencoding#1\endcsname
- \characterencoding\else\nocharacterencoding\fi#1\endcsname}
-
-% \def\fallbackpatternchar{x} % makes no sense, duplicate patterns
-
-\def\defaultcharacter#1%
- {\csname\characterprefix\nocharacterencoding\strippedcsname#1\endcsname}
-
-%D Instead of numbers, a command may be entered.
-
-\def\definecommand#1 #2 %
- {\setvalue{\string#1}{\dohandlecommand{#1}}%
- %\redefinecommand #1 % just to be sure
- \setvalue{\commandprefix\characterencoding\string#1}{#2}}
-
-%D Here we see that redefining accents is characters is more
-%D or less the same as redefining commands. We also could have
-%D said:
-%D
-%D \starttyping
-%D \def\defineaccent#1 #2 {\definecommand#1\string#2 \char}
-%D \def\definecharacter#1 {\definecommand#1 \char}
-%D \stoptyping
-
-%D \macros
-%D {defineaccentcommand}
-%D
-%D When needed, one can overload the default positions of the
-%D accents. The \PLAIN\ \TEX\ defaults are:
-%D
-%D \starttyping
-%D \defineaccentcommand ` 18
-%D \defineaccentcommand ' 19
-%D \defineaccentcommand v 20
-%D \defineaccentcommand u 21
-%D \defineaccentcommand = 22
-%D \defineaccentcommand ^ 94
-%D \defineaccentcommand . 95
-%D \defineaccentcommand H 125 % "7D
-%D \defineaccentcommand ~ 126 % "7E
-%D \defineaccentcommand " 127 % "7F
-%D \stoptyping
-
-\def\defineaccentcommand
- {\protectfontcharacters
- \dodefineaccentcommand}
-
-\def\dodefineaccentcommand#1 #2 % \string toegevoegd
- {\doifnumberelse{\string#2}
- {\setvalue{\accentprefix\characterencoding\string#1}##1{{\accent#2 ##1}}}
- {\setvalue{\accentprefix\characterencoding\string#1}##1{{#2##1}}}%
- \unprotectfontcharacters}
-
-%D We don't have to define them for the default \PLAIN\ case.
-%D Commands may be used instead of character codes.
-
-%D \macros
-%D {redefinecommand}
-%D
-%D Redefinition of encoding dependant commands like \type{\b}
-%D and \type{\c} can be triggered by:
-%D
-%D \starttyping
-%D \redefinecommand b % something math
-%D \redefinecommand c % something math
-%D \stoptyping
-%D
-%D Handling of characters is easier than handling accents
-%D because here we don't have to take care of arguments. We
-%D just call for the right glyph in the right place.
-%D
-%D The \type{\next} construction permits handling of commands
-%D that take arguments. This means that we can use this
-%D command to redefine accent handling commands too
-%D (although today the next is not needed any longer in test
-%D macros).
-
-\def\redefinecommand#1 %
- {% no \unexpanded, else pdfdoc fails
- \setvalue{\string#1}{\dohandlecommand{#1}}}%
-
-\def\dohandlecommand#1%
- {\csname\commandprefix
- \ifcsname\commandprefix\characterencoding#1\endcsname
- \characterencoding
- \else
- \nocharacterencoding
- \fi
- #1\endcsname}
-
-%D \macros
-%D {currentencoding, currentmapping}
-%D
-%D When we show 'm, we don't want to see the protection
-%D measures.
-
-\def\currentencoding{\@EA\dopureencodingname\characterencoding}
-\def\currentmapping {\@EA\dopureencodingname\charactermapping }
-
-\def\dopureencodingname @#1@{#1}
-
-\def\pureencodingname#1{\@EA\dopureencodingname#1}
-
-%D \macros
-%D {showaccents, showcharacters,
-%D showcharacterbounds, showhyphenations}
-%D
-%D Encoding is a tricky business. Therefore we provide a
-%D a few macros that show most of the characters involved. The
-%D next two tables show the result of \type {\showaccents}.
-%D
-%D \placetable
-%D {The special glyphs in default encoding.}
-%D {\showaccents}
-%D
-%D \placetable
-%D {The special glyphs in texnansi encoding.}
-%D {\switchtobodyfont[lbr]\showaccents}
-%D
-%D The command
-%D
-%D \starttyping
-%D \showhyphenations{doordefini\"eren}
-%D \stoptyping
-%D
-%D can be used to check the correct loading of hyphenation
-%D patterns.
-
-\fetchruntimecommand \showaccents {\f!encodingprefix\s!run}
-\fetchruntimecommand \showcharacters {\f!encodingprefix\s!run}
-\fetchruntimecommand \showcharacterbounds {\f!encodingprefix\s!run}
-\fetchruntimecommand \showhyphenations {\f!encodingprefix\s!run}
-\fetchruntimecommand \showmapping {\f!encodingprefix\s!run}
-
-%D \macros
-%D {everyuppercase, EveryUppercase,
-%D everyuppercase, EveryUppercase}
-%D
-%D When we want to uppercase strings of characters, we have to
-%D take care of those characters that have a special meaning or
-%D are only accessible by means of macros. The next hack was
-%D introduced when Tobias Burnus started translating head and
-%D label texts into spanish and italian. The first application
-%D of this token register therefore can be found in the module
-%D that deals with these texts.
-
-\newevery \everyuppercase \EveryUppercase
-\newevery \everylowercase \EveryLowercase
-
-%D This magic trick maps takes care of mapping from lower to
-%D upper case and reverse.
-
-\def\reloadmapping{\the\executeifdefined{\@cas@\charactermapping}\emptytoks}
-
-\appendtoks\let\setuppercasecom\setcasecom\to\everyuppercase
-\appendtoks\let\setlowercasecom\setcasecom\to\everylowercase
-
-\appendtoks\reloadmapping\to\everyuppercase % slow, will be sped up
-\appendtoks\reloadmapping\to\everylowercase % slow, will be sped up
-
-\newtoks\everyULmap
-
-\appendtoks\let\remapcase\remapuppercase\the\everyULmap\to\everyuppercase
-\appendtoks\let\remapcase\remaplowercase\the\everyULmap\to\everylowercase
-
-\let\remapcase\gobbletwoarguments
-
-\def\remapuppercase#1#2{\let#2#1} % more efficient:
-\def\remaplowercase#1#2{\let#1#2} \let\remaplowercase\let
-
-\def\defineLCcharacter #1 #2 %
- {\appendtoks\let\to\everylowercase
- \@EA\appendtoks\csname#1\endcsname\to\everylowercase
- \@EA\appendtoks\csname#2\endcsname\to\everylowercase}
-
-\def\defineUCcharacter #1 #2 %
- {\appendtoks\let\to\everyuppercase
- \@EA\appendtoks\csname#1\endcsname\to\everyuppercase
- \@EA\appendtoks\csname#2\endcsname\to\everyuppercase}
-
-\def\defineULcharacter #1 #2 %
- {\appendtoks\remapcase\to\everyULmap
- \@EA\appendtoks\csname#1\endcsname\to\everyULmap
- \@EA\appendtoks\csname#2\endcsname\to\everyULmap}
-
-% slightly faster with \smallcapped's but far more hash and stringspace
-%
-% \newif\ifuppercase \appendtoks\uppercasetrue\to\everyuppercase
-% \newif\iflowercase \appendtoks\lowercasetrue\to\everylowercase
-%
-% \def\defineULcharacter #1 #2 %
-% {\def\!!stringa{@#1}\@EA\letvalue\@EA\!!stringa\csname#1\endcsname
-% \def\!!stringa{@#2}\@EA\letvalue\@EA\!!stringa\csname#2\endcsname
-% \setvalue{#1}{\getvalue{@\ifuppercase#2\else#1\fi}}%
-% \setvalue{#2}{\getvalue{@\iflowercase#1\else#2\fi}}}
-
-% 2 = tricky, since expanding \definedfont[lowcasename] ... goes wrong
-
-\chardef\uppercasemode\plusthree % 0=ignore 1=normal 2=expand 3=auto
-\chardef\casecommode \plusone % 0=noexpand 1=expand
-
-\def\setcasecom #1#2{\def#1{\ifcase\casecommode\noexpand#1\else#2\fi}}
-
-% \def\OEPS{whatever}
-%
-% \startmapping[ec]
-% \defineuppercasecom \oeps {\getvalue{OEPS}}
-% \stopmapping
-%
-% \WORD{xx \oeps}
-
-\def\douppercase#1%
- {\bgroup
- \let\douppercase\firstofoneargument
- \the\everyuppercase % currently also checks uppercasemode
- \let\dochar\rawcharacter
- \ifcase\uppercasemode
- #1%
- \or % No expansion here, otherwise \getvalue problems! Default!!!
- %\edef\next{#1}% keep this to prevent roll back
- %\uppercase\expandafter{\next}% keep this to prevent roll back
- \uppercase{#1}%
- \or
- \chardef\casecommode\zerocount
- \let\docasecom\firstoftwoarguments
- \edef\ascii{#1}%
- \edef\ascii{\expandafter\uppercase\expandafter{\ascii}}% needed when in regime
- \chardef\casecommode\plusone
- \ascii
- \else
- % mode three may trigger setting 2 elsewhere (e.g. regime test)
- \uppercase{#1}%
- \fi
- \egroup}
-
-\prependtoksonce
- \doifnot\currentregime\s!default
- {\ifnum\uppercasemode=\plusthree \chardef\uppercasemode\plustwo \fi}%
-\to \everyuppercase
-
-%D \macros
-%D {everysanitize, EverySanitize}
-%D
-%D Whenever we are sanitizing strings, like we sometimes do
-%D when we deal with specials, the next token register can be
-%D called.
-
-\newevery \everysanitize \EverySanitize
-
-%D \macros
-%D {defineuclass,defineudigit,udigit}
-%D
-%D The next few macros are experimental and needed for unicoded
-%D chinese characters.
-
-\def\defineuclass #1 #2 #3 %
- {\setvalue{uc\the\numexpr#2*256+#3\relax}{#1}}
-
-\def\defineudigit #1 #2 #3 {\setvalue{\characterencoding uc#1}{\uchar{#2}{#3}}}
-
-%D It may look strange, but for the moment, we want the encoding
-%D to be part of the digit specification. This may change!
-
-\unexpanded\def\udigit#1#2{\getvalue{@#1@uc\number#2}}
-
-%D \macros
-%D {uchar, octuchar, hexuchar}
-
-\ifx\uchar\undefined \def\uchar#1#2{(\number#1,\number#2)} \fi
-
-\def\octuchar#1#2{\uchar{`#1}{`#2}}
-\def\hexuchar#1#2{\uchar{"#1}{"#2}}
-
-%D Basics and fallbacks.
-
-\newif\ifignoreaccent
-
-\let\textaccent \accent
-\let\normaltextaccent\textaccent
-
-% ** we will explicitly embrace the two arguments, since in definitions
-% this may not be the case, and we don't want faulty expansions like
-% "\dobuildtextaccent \char 18 a" but "\dobuildtextaccent {\char 18}{a}"
-% instead
-
-\def\buildmathaccent#1%
- {\mathaccent#1 }
-
-\def\buildtextaccent#1#2% **
- {\ifignoreaccent
- \expandafter\nobuildtextaccent
- \else
- \expandafter\dobuildtextaccent
- \fi{#1}{#2}}
-
-\unexpanded\def\nobuildtextaccent#1#2%
- {#2}
-
-\unexpanded\def\dobuildtextaccent#1#2%
- {{\let\char\normalaccent#1\let\char\normalchar#2}}
-
-% some fake ones, name will change into build
-
-\unexpanded\def\bottomaccent#1#2#3#4#5% down right slantcorrection accent char
- {\dontleavehmode % why this align mess
- \vtop
- {\forgetall
- \baselineskip\zeropoint
- \lineskip#1%
- \everycr\emptytoks
- \tabskip\zeropoint
- \lineskiplimit\zeropoint
- \setbox0\hbox{#4}%
- \halign
- {##\crcr\hbox{#5}\crcr
- \hidewidth
- \hskip#2\wd0
- \hskip-#3\slantperpoint % in plain 1ex * dimenless value
- \vbox to .2ex{\box0\vss}\hidewidth
- \crcr}}}
-
-\def\buildtextmacron {\bottomaccent{.25ex}{0}{15}{\textmacron}}
-\def\buildtextbottomdot{\bottomaccent{.25ex}{0}{5}{\textbottomdot}}
-\def\buildtextcedilla {\bottomaccent{0ex}{0}{5}{\textcedilla}}
-\def\buildtextogonek {\bottomaccent{-.1ex}{.5}{0}{\textogonek}}
-
-%D A collectors item:
-
-\def\buildtextbottomcomma{\bottomaccent{.15ex}{0}{5}{\tx,}}
-
-%D Rarely needed but there:
-
-\unexpanded\def\topaccent#1#2#3#4#5% down right slantcorrection accent char
- {\dontleavehmode
- \bgroup
- \setbox0\hbox{#4}%
- \setbox2\hbox{#5}%
- \hbox to \wd2 \bgroup
- \hss\copy2\hss
- \hskip-\wd2
- \hss\hskip#2\wd0\hskip-#3\slantperpoint\raise#1\hbox{#4}\hss
- \egroup
- \egroup}
-
-\def\buildtextgrave{\topaccent{0pt}{0}{15}{\textgrave}} % e.g.
-
-% \definecharacter schwa {\hbox{\rotate[rotation=180,location=high]{\hbox{e}}}}
-% \definecharacter schwagrave {\buildtextgrave\schwa}
-
-% math stuff, will change
-
-\def\definemathaccent#1 #2%
- {\setvalue{\string#1}{#2}%
- \setvalue{normalmathaccent\string#1}{#2}}
-
-\def\donormalmathaccent#1%
- {\getvalue{normalmathaccent\string#1}}
-
-%D Some precautions:
-
-\ifx\usepdffontresource\undefined
- \def\usepdffontresource #1 {} % this will be defined elsewhere
-\fi
-
-\def\donthandleaccent #1{\expandafter\string\csname#1\endcsname\space}
-\def\donthandlecommand #1{\expandafter\string\csname#1\endcsname\space}
-\def\donthandlecharacter #1{\expandafter\string\csname#1\endcsname\space}
-
-\def\stringifyhandleaccent #1{\strchr{#1}}
-\def\stringifyhandlecommand #1{\strchr{#1}}
-\def\stringifyhandlecharacter#1{\strchr{#1}}
-
-\def\keephandleaccent #1{\expandafter\noexpand\csname#1\endcsname}
-\def\keephandlecommand #1{\expandafter\noexpand\csname#1\endcsname}
-\def\keephandlecharacter #1{\expandafter\noexpand\csname#1\endcsname}
-
-\def\handleaccent #1{\csname#1\endcsname}
-\def\handlecommand #1{\csname#1\endcsname}
-\def\handlecharacter #1{\csname#1\endcsname}
-
-\def\dontexpandencoding
- {\let\dohandleaccent \donthandleaccent
- \let\dohandlecommand \donthandlecommand
- \let\dohandlecharacter\donthandlecharacter}
-
-\def\keepencodedtokens
- {\let\dohandleaccent \keephandleaccent
- \let\dohandlecommand \keephandlecommand
- \let\dohandlecharacter\keephandlecharacter}
-
-\def\literateencodedtokens
- {% \let\dohandleaccent \keephandleaccent
- % \let\dohandlecommand \keephandlecommand
- \let\dohandlecharacter\keephandlecharacter}
-
-\def\stringifyencodedtokens
- {% \let\dohandleaccent \stringifyhandleaccent
- % \let\dohandlecommand \stringifyhandlecommand
- \let\dohandlecharacter\stringifyhandlecharacter}
-
-\unexpanded\def\uhandleaccent #1{\csname#1\endcsname}
-\unexpanded\def\uhandlecommand #1{\csname#1\endcsname}
-\unexpanded\def\uhandlecharacter#1{\csname#1\endcsname}
-
-\def\dontexpandencodedtokens
- {\def\dohandleaccent {\uhandleaccent}%
- \def\dohandlecommand {\uhandlecommand}%
- \def\dohandlecharacter{\uhandlecharacter}}
-
-% no longer: \def\convertencodedtokens{\dontexpandencoding} but:
-
-\def\convertencodedtokens{\stringifyencodedtokens}
-
-% test case:
-%
-% \enableregime[cp1250]
-% \mainlanguage[cz]
-%
-% \starttext
-%
-% \title{Ϭuޯu餭 kon졺p
-% \placelist[chapter][criterium=all]
-%
-% \startbuffer
-% <chapter>
-% <title>Ϭuޯu餭 kon졺p󛱴itle>
-% </chapter>
-% \stopbuffer
-%
-% \defineXMLenvironment
-% [chapter]
-% {\defineXMLsave[title]}
-% {\expanded{\chapter{\XMLflush{title}}}}
-% \processXMLbuffer
-%
-% \setuphead[chapter][expansion=yes]
-% \defineXMLenvironment
-% [chapter]
-% {\defineXMLsave[title]}
-% {\chapter{\XMLflush{title}}}
-% \processXMLbuffer
-%
-% \stoptext
-
-%D Still valid? To be checked:
-
-\def\doignoreaccent #1#2{\string#1\string#2}%
-\def\doignorecommand #1{\string#1}
-\def\doignorecharacter#1{\string#1}
-
-\def\ignoreencoding
- {\let\dohandleaccent \doignoreaccent
- \let\dohandlecommand \doignorecommand
- \let\dohandlecharacter\doignorecharacter}
-
-\appendtoks
- \ignoreencoding
-\to \everycleanupfeatures
-
-\appendtoks
- \keepencodedtokens
-\to \everysafeexpanded
-
-%D Now we will not redefine any more, so:
-
-\let\normaldohandleaccent \dohandleaccent
-\let\normaldohandlecharacter\dohandlecharacter
-
-\definecommand ` {\buildtextaccent\textgrave}
-\definecommand ' {\buildtextaccent\textacute}
-\definecommand r {\buildtextaccent\textring}
-\definecommand v {\buildtextaccent\textcaron}
-\definecommand u {\buildtextaccent\textbreve}
-\definecommand = {\buildtextaccent\textmacron}
-\definecommand ^ {\buildtextaccent\textcircumflex}
-\definecommand . {\buildtextaccent\textdotaccent}
-\definecommand H {\buildtextaccent\texthungarumlaut}
-\definecommand ~ {\buildtextaccent\texttilde}
-\definecommand " {\buildtextaccent\textdiaeresis}
-
-\definecommand c {\buildtextcedilla}
-\definecommand b {\buildtextmacron}
-\definecommand d {\buildtextbottomdot}
-\definecommand k {\buildtextogonek}
-
-\definemathaccent acute {\buildmathaccent\mathacute}
-\definemathaccent grave {\buildmathaccent\mathgrave}
-\definemathaccent ddot {\buildmathaccent\mathddot}
-\definemathaccent tilde {\buildmathaccent\mathtilde}
-\definemathaccent bar {\buildmathaccent\mathbar}
-\definemathaccent breve {\buildmathaccent\mathbreve}
-\definemathaccent check {\buildmathaccent\mathcheck}
-\definemathaccent hat {\buildmathaccent\mathhat}
-\definemathaccent vec {\buildmathaccent\mathvec}
-\definemathaccent dot {\buildmathaccent\mathdot}
-\definemathaccent widetilde {\buildmathaccent\mathwidetilde}
-\definemathaccent widehat {\buildmathaccent\mathwidehat}
-
-\useencoding[def] % defaults (partly simplified)
-\useencoding[acc] % accent commands
-\useencoding[raw] % simplified (incomplete)
-\useencoding[com] % a few commands
-\useencoding[cas] % case mapping, not needed in mkiv
-\useencoding[mis] % a few commands
-
-%D We preload several encodings:
-
-\ifnum\texengine=\xetexengine
- \setupencoding[\s!default=\s!default]
-\else
- \useencoding[ans,il2,ec,tbo,pdf,pol,qx,t5,l7x,cyr,agr] % pol and il2 will go away, not needed in mkiv, uc removed
- \useencoding[032,033,037] % fallbacks for some unicode chars
- \setupencoding[\s!default=ec] % was: [\s!default=\s!default]
-\fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-l7x.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-l7x.mkii
deleted file mode 100644
index 2a0d12c9f57..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-l7x.mkii
+++ /dev/null
@@ -1,236 +0,0 @@
-%D \module
-%D [ file=enco-l7x,
-%D version=2010.01.22,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=\LATEX\ L7x Encoding,
-%D author={Hans Hagen \& Mojca Miklavec},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Encoding vector to support Latvian and Lithuanian. The first
-%D part is taken from EC encoding, the rest has not been tested
-%D extensively.
-
-\startmapping[l7x]
-
-\definecaseswap 25 `I % dotless i (TODO - probably wrong; maybe use \defineuppercasecom)
-\definecaseswap 156 140 % oeligature
-\definecaseswap 184 168 % ostroke
-\definecaseswap 186 170 % rcommaaccent
-\definecaseswap 191 175 % aeligature
-\definecaseself 223 % ssharp (this is wrong, but no better way)
-
-\definecasemaps 192 to 222 lc +32 uc 0
-\definecasemaps 224 to 254 lc 0 uc -32
-\resetcaserange 215 to 215 % textmultiply
-\resetcaserange 247 to 247 % textdiv
-
-\stopmapping
-
-\startencoding[l7x]
-
-\definecharacter textgrave 0
-\definecharacter textacute 1
-\definecharacter textcircumflex 2
-\definecharacter texttilde 3
-\definecharacter textdiaeresis 4
-\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 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 compoundwordmark 23
-%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
-% numbersign # 35
-% dollar $ 36
-\definecharacter percent 37
-% ampersand & 38
-%definecharacter quotesingle 39 % fake 'm TODO:enco-def!!!!
-\definecharacter quoteright 39
-% 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
-% .notdef 127
-\definecharacter texteuro 128
-% .notdef 129
-\definecharacter quotesinglebase 130
-\definecharacter textflorin 131 \definecharacter fhook 131
-\definecharacter quotedblbase 132
-\definecharacter textellipsis 133
-\definecharacter textdag 134
-\definecharacter textddag 135
-% .notdef 136
-\definecharacter perthousand 137
-% .notdef 138
-\definecharacter guilsingleleft 139
-\definecharacter OEligature 140 % TODO: also \OE???
-\definecharacter textdiaeresis 141
-\definecharacter textcaron 142
-\definecharacter textcedilla 143
-% .notdef 144
-\definecharacter quoteleft 145
-\definecharacter quoteright 146
-\definecharacter quotedblleft 147
-\definecharacter quotedblright 148
-\definecharacter textbullet 149
-\definecharacter endash 150
-\definecharacter emdash 151
-% .notdef 152
-\definecharacter trademark 153
-% .notdef 154
-\definecharacter guilsingleright 155
-\definecharacter oeligature 156
-\definecharacter textmacron 157
-\definecharacter textogonek 158
-% .notdef 159
-%definecharacter space 160 % TODO!!!
-\definecharacter quotedblright 161
-\definecharacter textcent 162
-\definecharacter textsterling 163
-\definecharacter textcurrency 164
-\definecharacter quotedblbase 165
-\definecharacter textbrokenbar 166
-\definecharacter sectionmark 167
-\definecharacter Ostroke 168
-\definecharacter copyright 169
-\definecharacter Rcommaaccent 170
-\definecharacter leftguillemot 171
-\definecharacter textlognot 172
-%definecharacter softhyphen 173 % -> 45 (TODO!!!)
-\definecharacter registered 174
-\definecharacter AEligature 175
-\definecharacter textdegree 176
-\definecharacter textpm 177
-\definecharacter twosuperior 178
-\definecharacter threesuperior 179
-\definecharacter quotedblleft 180
-\definecharacter textmu 181
-\definecharacter paragraphmark 182
-\definecharacter periodcentered 183
-\definecharacter ostroke 184
-\definecharacter onesuperior 185
-\definecharacter rcommaaccent 186
-\definecharacter rightguillemot 187
-\definecharacter onequarter 188
-\definecharacter onehalf 189
-\definecharacter threequarter 190
-\definecharacter aeligature 191
-\definecharacter Aogonek 192
-\definecharacter Iogonek 193
-\definecharacter Amacron 194
-\definecharacter Cacute 195
-\definecharacter Adiaeresis 196
-\definecharacter Aring 197
-\definecharacter Eogonek 198
-\definecharacter Emacron 199
-\definecharacter Ccaron 200
-\definecharacter Eacute 201
-\definecharacter Zacute 202
-\definecharacter Edotaccent 203
-\definecharacter Gcommaaccent 204
-\definecharacter Kcommaaccent 205
-\definecharacter Imacron 206
-\definecharacter Lcommaaccent 207
-\definecharacter Scaron 208
-\definecharacter Nacute 209
-\definecharacter Ncommaaccent 210
-\definecharacter Oacute 211
-\definecharacter Omacron 212
-\definecharacter Otilde 213
-\definecharacter Odiaeresis 214
-\definecharacter textmultiply 215
-\definecharacter Uogonek 216
-\definecharacter Lstroke 217
-\definecharacter Sacute 218
-\definecharacter Umacron 219
-\definecharacter Udiaeresis 220
-\definecharacter Zdotaccent 221
-\definecharacter Zcaron 222
-\definecharacter ssharp 223
-\definecharacter aogonek 224
-\definecharacter iogonek 225
-\definecharacter amacron 226
-\definecharacter cacute 227
-\definecharacter adiaeresis 228
-\definecharacter aring 229
-\definecharacter eogonek 230
-\definecharacter emacron 231
-\definecharacter ccaron 232
-\definecharacter eacute 233
-\definecharacter zacute 234
-\definecharacter edotaccent 235
-\definecharacter gcommaaccent 236
-\definecharacter kcommaaccent 237
-\definecharacter imacron 238
-\definecharacter lcommaaccent 239
-\definecharacter scaron 240
-\definecharacter nacute 241
-\definecharacter ncommaaccent 242
-\definecharacter oacute 243
-\definecharacter omacron 244
-\definecharacter otilde 245
-\definecharacter odiaeresis 246
-\definecharacter textdiv 247
-\definecharacter uogonek 248
-\definecharacter lstroke 249
-\definecharacter sacute 250
-\definecharacter umacron 251
-\definecharacter udiaeresis 252
-\definecharacter zdotaccent 253
-\definecharacter zcaron 254
-\definecharacter quoteright 255
-
-\stopencoding
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-lat.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-lat.mkii
deleted file mode 100644
index 2623aae8d7d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-lat.mkii
+++ /dev/null
@@ -1,7 +0,0 @@
-% temporary module, needed for downward compatibility
-
-\input regi-lat.tex
-
-\enableregime[latin2]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-mis.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-mis.mkii
deleted file mode 100644
index 28523685e4e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-mis.mkii
+++ /dev/null
@@ -1,188 +0,0 @@
-%D \module
-%D [ file=enco-mis,
-%D version=2000.05.07, % 1999.11.11,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Missing Glyphs,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D In this file we collect some definitions that construct
-%D pseudo characters. Some day we will move some definitions
-%D from \type {plain.tex} to this file. Some definitions are
-%D derived from definitions in the \LATEX\ distribution,
-%D especially Johannes Braams' Babel system.
-
-\startmapping[\s!default]
-
-\defineuppercasecom \dj \DJ
-\defineuppercasecom \Dj \dj
-\defineuppercasecom \DJ \dj
-
-\definecharacter dstroke {\pseudoencodeddj}
-\definecharacter Dstroke {\pseudoencodedDJ}
-
-\stopmapping
-
-%D We need proper names like in enco-com.tex!
-
-\definecharacter dj {\dstroke} % {\pseudoencodeddj}
-\definecharacter Dj {\Dstroke} % {\pseudoencodedDJ}
-\definecharacter DJ {\Dstroke} % {\pseudoencodedDJ}
-
-\unprotect
-
-\def\pseudoencodeddj % like in babel, but safer
- {\dontleavehmode\hbox\bgroup
- \setbox\scratchbox\hbox{d}%
- \scratchdimen\ht\scratchbox
- \advance\scratchdimen 1ex
- \scratchdimen.45\scratchdimen
- \dimen2=\withoutpt\the\slantperpoint\dimen0
- \advance\dimen2 .5ex
- \hbox to \wd\scratchbox
- {\box\scratchbox\hss
- \raise\scratchdimen\hbox{\kern\dimen2\vbox{\hrule\!!height0.1ex\!!width0.3em}}}%
- \egroup}
-
-\def\pseudoencodedDJ % design: taco; quality assurance: mojca; cleanup: hans
- {\dontleavehmode
- \hbox\bgroup
- \setbox\scratchbox\hbox{D}%
- \dimen2=1.1ex
- \dimen2=\withoutpt\the\slantperpoint\dimen2
- \hbox to \wd\scratchbox
- {\rlap
- {\raise.52\ht\scratchbox
- \hbox
- {\kern\dimen2
- \vbox{\hrule\!!height.04ex\!!depth.04ex\!!width.4\wd\scratchbox}}}%
- \box\scratchbox}%
- \egroup}
-
-% currency
-
-\def\fakedollar % pretty cmr dependent
- {\bgroup
- \ifnum\fam=\itfam
- \sl
- \else\ifnum\fam=\bifam
- \bs
- \fi\fi
- \$%
- \egroup}
-
-\def\fakesterling % pretty cmr dependent
- {\bgroup
- \ifnum\fam=\bffam
- \bi
- \else\ifnum\fam=\bifam
- \bi
- \else\ifnum\fam=\bsfam
- \bi
- \else
- \it
- \fi\fi\fi
- \$%
- \egroup}
-
-\def\fakeflorin
- {\bgroup
- \ifnum\fam=\bffam
- \bi
- \else\ifnum\fam=\bifam
- \bi
- \else\ifnum\fam=\bsfam
- \bi
- \else
- \it
- \fi\fi\fi
- f%
- \egroup}
-
-% perthings
-
-\def\fakepercent
- {\mathematics{^{\scriptscriptstyle0}\kern-.25em/\kern-.2em_{\scriptscriptstyle0}}}
-
-\def\fakeperthousand
- {\mathematics{^{\scriptscriptstyle0}\kern-.25em/\kern-.2em_{\scriptscriptstyle00}}}
-
-\def\fakepermine
- {\dontleavehmode
- \bgroup
- \setbox\scratchbox\hbox
- {\mathematics{+}}%
- \hbox to \wd\scratchbox
- {\hss
- \mathematics{^{\scriptscriptstyle-}\kern-.4em/\kern-.3em_{\scriptscriptstyle-}}%
- \hss}%
- \egroup}
-
-% guillemots
-
-%D Yes I know, they are ugly:
-
-\def\fakeleftguillemot
- {\dontleavehmode\hbox{\raise.25ex\hbox{$\scriptscriptstyle\ll$}}}
-
-\def\fakerightguillemot
- {\hbox{\raise.25ex\hbox{$\scriptscriptstyle\gg$}}}
-
-\def\fakeleftsubguillemot
- {\dontleavehmode\hbox{\raise.25ex\hbox{$\scriptscriptstyle<$}}}
-
-\def\fakerightsubguillemot
- {\hbox{\raise.25ex\hbox{$\scriptscriptstyle>$}}}
-
-%D Needed:
-
-\def\fakevisiblespace
- {\leavevmode\hbox
- {\setbox\scratchbox\hbox{(}%
- \scratchdimen.1\dp\scratchbox
- \setbox\scratchbox\hbox{\space}%
- \hbox to \wd\scratchbox
- {\vrule
- \!!depth 5\scratchdimen
- \!!width \scratchdimen
- \!!height \zeropoint
- \hss
- \vrule
- \!!depth 5\scratchdimen
- \!!width \wd\scratchbox
- \!!height-4\scratchdimen
- \hss
- \vrule
- \!!depth 5\scratchdimen
- \!!width \scratchdimen
- \!!height \zeropoint}}}
-
-%\def\fakeunderscore{\leavevmode\kern.06em\vbox{\hrule\!!width.3em}}
-
-\def\fakeunderscore
- {\leavevmode\hbox
- {\setbox\scratchbox\hbox{(}%
- \scratchdimen.2\dp\scratchbox
- \setbox\scratchbox\hbox{\space}%
- \vrule
- \!!depth \scratchdimen
- \!!width \wd\scratchbox
- \!!height\zeropoint}}
-
-\ifx\mathunderscore\undefined \let\mathunderscore\fakeunderscore \fi
-\ifx\textunderscore\undefined \let\textunderscore\fakeunderscore \fi
-
-\unexpanded\def\normalunderscore{\ifmmode\mathunderscore\else\textunderscore\fi}
-
-\let\_\normalunderscore
-
-% Handy but obsolete, replaced by \unknownchar:
-%
-% \def\missingglyph{\ruledhbox{?}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-pdf.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-pdf.mkii
deleted file mode 100644
index 28e96067361..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-pdf.mkii
+++ /dev/null
@@ -1,278 +0,0 @@
-%D \module
-%D [ file=enco-pdf,
-%D version=1995.01.01,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=\YandY\ texnansi Encoding,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This is the \PDF\ document encoding.
-
-\startencoding[pdfdoc] % \rawcharacter{number}
-
-\definecharacter oeligature ^^9c
-
-\definecharacter leftguillemot ^^ab
-\definecharacter rightguillemot ^^bb
-
-\definecharacter Agrave ^^c0
-\definecharacter Aacute ^^c1
-\definecharacter Acircumflex ^^c2
-\definecharacter Atilde ^^c3
-\definecharacter Adiaeresis ^^c4
-\definecharacter OAligature ^^c5
-\definecharacter AEligature ^^c6
-\definecharacter Ccedilla ^^c7
-\definecharacter Egrave ^^c8
-\definecharacter Eacute ^^c9
-\definecharacter Ecircumflex ^^ca
-\definecharacter Ediaeresis ^^cb
-\definecharacter Igrave ^^cc
-\definecharacter Iacute ^^cd
-\definecharacter Icircumflex ^^ce
-\definecharacter Idiaeresis ^^cf
-
-\definecharacter Ntilde ^^d1
-\definecharacter Ograve ^^d2
-\definecharacter Oacute ^^d3
-\definecharacter Ocircumflex ^^d4
-\definecharacter Otilde ^^d5
-\definecharacter Odiaeresis ^^d6
-
-\definecharacter Ugrave ^^d9
-\definecharacter Uacute ^^da
-\definecharacter Ucircumflex ^^db
-\definecharacter Udiaeresis ^^dc
-\definecharacter Yacute ^^dd
-
-\definecharacter ssharp ^^df
-\definecharacter agrave ^^e0
-\definecharacter aacute ^^e1
-\definecharacter acircumflex ^^e2
-\definecharacter atilde ^^e3
-\definecharacter adiaeresis ^^e4
-\definecharacter oaligature ^^e5
-\definecharacter aeligature ^^e6
-\definecharacter ccedilla ^^e7
-\definecharacter egrave ^^e8
-\definecharacter eacute ^^e9
-\definecharacter ecircumflex ^^ea
-\definecharacter ediaeresis ^^eb
-\definecharacter igrave ^^ec
-\definecharacter iacute ^^ed
-\definecharacter icircumflex ^^ee
-\definecharacter idiaeresis ^^ef
-
-\definecharacter ntilde ^^f1
-\definecharacter ograve ^^f2
-\definecharacter oacute ^^f3
-\definecharacter ocircumflex ^^f4
-\definecharacter otilde ^^f5
-\definecharacter odiaeresis ^^f6
-
-\definecharacter ugrave ^^f9
-\definecharacter uacute ^^fa
-\definecharacter ucircumflex ^^fb
-\definecharacter udiaeresis ^^fc
-\definecharacter yacute ^^fd
-
-\definecharacter ydiaeresis ^^ff
-
-\definecharacter leftsubguillemot {\leftguillemot}
-\definecharacter rightsubguillemot {\rightguillemot}
-
-\definecharacter Uhungarumlaut {\Ucircumflex}
-\definecharacter uhungarumlaut {\ucircumflex}
-\definecharacter Ohungarumlaut {\Ocircumflex}
-\definecharacter ohungarumlaut {\ocircumflex}
-
-\definecharacter Aogonek {A}
-\definecharacter aogonek {a}
-\definecharacter Eogonek {E}
-\definecharacter eogonek {e}
-\definecharacter Iogonek {I}
-\definecharacter iogonek {i}
-\definecharacter Uogonek {U}
-\definecharacter uogonek {u}
-
-\definecharacter Aring {A}
-\definecharacter aring {a}
-\definecharacter Uring {U}
-\definecharacter uring {u}
-
-\definecharacter Abreve {A}
-\definecharacter abreve {a}
-\definecharacter Ebreve {E}
-\definecharacter ebreve {e}
-\definecharacter Gbreve {G}
-\definecharacter gbreve {g}
-\definecharacter Ibreve {I}
-\definecharacter ibreve {i}
-\definecharacter Obreve {O}
-\definecharacter obreve {o}
-\definecharacter Ubreve {U}
-\definecharacter ubreve {u}
-
-\definecharacter Ccaron {C}
-\definecharacter ccaron {c}
-\definecharacter Dcaron {D}
-\definecharacter dcaron {d}
-\definecharacter Ecaron {E}
-\definecharacter ecaron {e}
-\definecharacter Lcaron {L}
-\definecharacter lcaron {l}
-\definecharacter Ncaron {N}
-\definecharacter ncaron {n}
-\definecharacter Rcaron {R}
-\definecharacter rcaron {r}
-\definecharacter Scaron {S}
-\definecharacter scaron {s}
-\definecharacter Tcaron {T}
-\definecharacter tcaron {t}
-\definecharacter Ycaron {Y}
-\definecharacter ycaron {y}
-\definecharacter Zcaron {Z}
-\definecharacter zcaron {z}
-
-\definecharacter Lstroke {L}
-\definecharacter lstroke {l}
-\definecharacter Ostroke {O}
-\definecharacter ostroke {o}
-
-\definecharacter aumlaut {\adiaeresis}
-\definecharacter eumlaut {\ediaeresis}
-\definecharacter iumlaut {\idiaeresis}
-\definecharacter oumlaut {\odiaeresis}
-\definecharacter uumlaut {\udiaeresis}
-
-\definecharacter Aumlaut {\Adiaeresis}
-\definecharacter Eumlaut {\Ediaeresis}
-\definecharacter Iumlaut {\Idiaeresis}
-\definecharacter Oumlaut {\Odiaeresis}
-\definecharacter Uumlaut {\Udiaeresis}
-
-\definecharacter scommaaccent {s}
-\definecharacter Scommaaccent {S}
-\definecharacter tcommaaccent {t}
-\definecharacter Tcommaaccent {T}
-
-\definecharacter Etilde {E}
-\definecharacter etilde {e}
-
-\definecharacter Ahook {A}
-\definecharacter ahook {a}
-\definecharacter Ehook {E}
-\definecharacter ehook {e}
-\definecharacter Ihook {I}
-\definecharacter ihook {i}
-\definecharacter Ohook {O}
-\definecharacter ohook {o}
-\definecharacter Uhook {U}
-\definecharacter uhook {u}
-\definecharacter Yhook {Y}
-\definecharacter yhook {y}
-
-\definecharacter Acircumflexgrave {\Acircumflex}
-\definecharacter Acircumflexacute {\Acircumflex}
-\definecharacter Acircumflextilde {\Acircumflex}
-\definecharacter Acircumflexhook {\Acircumflex}
-\definecharacter acircumflexgrave {\acircumflex}
-\definecharacter acircumflexacute {\acircumflex}
-\definecharacter acircumflextilde {\acircumflex}
-\definecharacter acircumflexhook {\acircumflex}
-\definecharacter Ecircumflexgrave {\Ecircumflex}
-\definecharacter Ecircumflexacute {\Ecircumflex}
-\definecharacter Ecircumflextilde {\Ecircumflex}
-\definecharacter Ecircumflexhook {\Ecircumflex}
-\definecharacter ecircumflexgrave {\ecircumflex}
-\definecharacter ecircumflexacute {\ecircumflex}
-\definecharacter ecircumflextilde {\ecircumflex}
-\definecharacter ecircumflexhook {\ecircumflex}
-\definecharacter Ocircumflexgrave {\Ocircumflex}
-\definecharacter Ocircumflexacute {\Ocircumflex}
-\definecharacter Ocircumflextilde {\Ocircumflex}
-\definecharacter Ocircumflexhook {\Ocircumflex}
-\definecharacter ocircumflexgrave {\ocircumflex}
-\definecharacter ocircumflexacute {\ocircumflex}
-\definecharacter ocircumflextilde {\ocircumflex}
-\definecharacter ocircumflexhook {\ocircumflex}
-
-\definecharacter Abrevegrave {A}
-\definecharacter Abreveacute {A}
-\definecharacter Abrevetilde {A}
-\definecharacter Abrevehook {A}
-\definecharacter abrevegrave {a}
-\definecharacter abreveacute {a}
-\definecharacter abrevetilde {a}
-\definecharacter abrevehook {a}
-
-\definecharacter Adotbelow {A}
-\definecharacter adotbelow {a}
-\definecharacter Edotbelow {E}
-\definecharacter edotbelow {e}
-\definecharacter Idotbelow {I}
-\definecharacter idotbelow {i}
-\definecharacter Odotbelow {O}
-\definecharacter odotbelow {o}
-\definecharacter Udotbelow {U}
-\definecharacter udotbelow {u}
-\definecharacter Ydotbelow {Y}
-\definecharacter ydotbelow {y}
-\definecharacter Ohorndotbelow {O}
-\definecharacter ohorndotbelow {o}
-\definecharacter Uhorndotbelow {U}
-\definecharacter uhorndotbelow {u}
-
-\definecharacter Acircumflexdotbelow {\Acircumflex}
-\definecharacter acircumflexdotbelow {\acircumflex}
-\definecharacter Ecircumflexdotbelow {\Ecircumflex}
-\definecharacter ecircumflexdotbelow {\ecircumflex}
-\definecharacter Ocircumflexdotbelow {\Ocircumflex}
-\definecharacter ocircumflexdotbelow {\ocircumflex}
-\definecharacter Abrevedotbelow {\Abreve}
-\definecharacter abrevedotbelow {\abreve}
-
-\definecharacter Ohorn {O}
-\definecharacter Ohorngrave {O}
-\definecharacter Ohornacute {O}
-\definecharacter Ohorntilde {O}
-\definecharacter Ohornhook {O}
-
-\definecharacter ohorn {o}
-\definecharacter ohorngrave {o}
-\definecharacter ohornacute {o}
-\definecharacter ohorntilde {o}
-\definecharacter ohornhook {o}
-
-\definecharacter Uhorn {U}
-\definecharacter Uhorngrave {U}
-\definecharacter Uhornacute {U}
-\definecharacter Uhorntilde {U}
-\definecharacter Uhornhook {U}
-
-\definecharacter uhorn {u}
-\definecharacter uhorngrave {u}
-\definecharacter uhornacute {u}
-\definecharacter uhorntilde {u}
-\definecharacter uhornhook {u}
-
-\definecharacter Utilde {U}
-\definecharacter utilde {u}
-\definecharacter Itilde {I}
-\definecharacter itilde {i}
-\definecharacter Ygrave {Y}
-\definecharacter ygrave {y}
-\definecharacter Ytilde {Y}
-\definecharacter ytilde {y}
-
-\definecharacter dstroke {d}
-\definecharacter Dstroke {D}
-
-\stopencoding
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-pfr.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-pfr.mkii
deleted file mode 100644
index aca2436c130..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-pfr.mkii
+++ /dev/null
@@ -1,305 +0,0 @@
-%D \module
-%D [ file=enco-pfr,
-%D version=2000.12.10, % adapted 2005.08.14 to more delayed loading
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=PDF Resources,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\ifnum\texengine>\pdftexengine
- \expandafter \endinput
-\fi
-
-\ifdefined\pdffontresource \else
- \expandafter \endinput
-\fi
-
-\writestatus{loading}{ConTeXt Encoding Macros / PDF Resources}
-
-%D This is an experimental module in which we implement
-%D font resource inclusion in \PDF. One reason to include
-%D font resources is that it enables a search engine to
-%D perform a search (I'm told). This feature ws requested by
-%D Petr Ferdus from Czech.
-
-%D A simple test file may look like this (watch how we first
-%D load the encoding and then the font; previous font
-%D definitions are left untouched.)
-%D
-%D \starttyping
-%D % output=pdftex interface=en
-%D
-%D \useencoding[pfr]
-%D \setupbodyfont[csr]
-%D
-%D \starttext
-%D test \`z \'z \bf test \sl test \bs quite funny \`z \page
-%D test \`z \'z \bf test \sl test \bs quite funny \`z \page
-%D \stoptext
-%D \stoptyping
-%D
-%D We do our best to include a (often large) font resources
-%D only once. The current implementation is not that
-%D general which is also due to the fact that \type
-%D {\pdffontattr} is expanded instantly and persistent. A
-%D more versatile (but also slower) approach is to keep track
-%D of the fonts and either flush the information at shipout
-%D time, or at the end of the document.
-
-%D \macros
-%D {ifincludepdffontresources}
-%D
-%D You can turn of this feature using the following switch.
-
-\newif\ifincludepdffontresources \includepdffontresourcestrue
-
-\ifx\pdfglyphtounicode\undefined \else
- \appendtoks
- \doif\jobsuffix{pdf}{\readfile{pdfr-def.mkii}\donothing\donothing}%
- \to \everystarttext
-\fi
-
-% somehow we cannot preload this beast; also, it's mk dependent
-%
-% \appendtoks
-% \doifelse{\jobsuffix}{pdf}{\loadmkiifile{pdfr-def.mkii}}%
-% \to \everystarttext
-
-% ugly, this should go to the driver spec-tpd
-
-\ifx\pdfgentounicode\undefined \else
- \ifcase\pdfgentounicode \else
- \expandafter \expandafter \expandafter \endinput
- \fi
-\fi
-
-\unprotect
-
-% a problem is that there is always an ec vector added even when
-% we switch to texnansi early; this has to do with the fact that
-% we need to setup fonts at startup; this a pain when we have
-% textless documents, so we should have a way around, i.e. an
-% extension to pdftex where we can tag numbers inside user specs
-% and attributes.
-%
-% currently we need to use immediate so we end up with entries
-
-%D The name of the resource is stored in a macro, as is its
-%D object reference. A resource is only processed once. When
-%D done, the resource name is erased, and we use this fact to
-%D prevent redefinition as well as well as reloading. So, a
-%D macro defined with \type {\pdffontfileresource} can have
-%D three states:
-%D
-%D \startitemize[packed]
-%D \item undefined: not yet loaded, and not yet included
-%D \item some value: loaded, but not yet included
-%D \item empty: loaded, and already included
-%D \stopitemize
-
-\def\pdffontresource {pdfr:\currentencoding}
-\def\pdffontfileresource{pdff:\pdffontresource}
-
-%D A resource is defined in a file prefixed by \type {pdfr-}.
-%D The following \PDF\ code is composed by Ondrej Koala Vacha (I
-%D probably mispelled this name).
-%D
-%D \starttyping
-%D \startpdffontresource[il2]
-%D /CIDInit /ProcSet findresource begin
-%D 12 dict begin
-%D begincmap
-%D /CIDSystemInfo
-%D << /Registry (Adobe)
-%D /Ordering (T1UV)
-%D /Supplement 0
-%D >> def
-%D /CMapName /Adobe-Identity-UCS def
-%D /CMapType 1 def
-%D 1 begincodespacerange
-%D <00> <FF>
-%D endcodespacerange
-%D %%FontSpecificEncoding
-%D 191 beginbfrange
-%D <20> <20> <0020> % space dec: 32 oct:040 hex:20
-%D .... .... ...... . ........ .... .. ....... ......
-%D <ff> <ff> <00ff> % dotaccent dec:255 oct:377 hex:ff
-%D endbfrange
-%D endcmap
-%D CMapName currentdict /CMap defineresource pop end
-%D end
-%D \stoppdffontresource
-%D \stoptyping
-%D
-%D We don't preload such huge definitions, and process them
-%D run||time to save memory. Therefore, in the encoding
-%D vector, we only add an entry like:
-%D
-%D \starttyping
-%D \startencoding [il2]
-%D \usepdffontresource il2
-%D \stopencoding
-%D \stoptyping
-%D
-%D This macro is defined as follows.
-
-\def\usepdffontresource #1 %
- {\doifundefinedelse\pdffontfileresource % okay, undefined, so either
- {\setxvalue\pdffontfileresource{#1}} % brand new, or not yet loaded
- {\doifvaluesomething\pdffontfileresource % only if not loaded in which
- {\setxvalue\pdffontfileresource{#1}}}} % case it's made empty
-
-%D Watch how we check for duplicated loading. The resource
-%D itself, when asked for, is included immediately, after which
-%D we save its reference. Normally a document will have one
-%D such a resource.
-
-% \long\def\startpdffontresource[#1]#2\stoppdffontresource
-% {\doif{#1}\currentencoding
-% {\immediate\pdfobj useobjnum \getvalue{\pdffontresource} stream {#2}}}
-
-% alternatively we can use object references
-
-% fails when we switch back and forward between dvi/pdf mode
-%
-% \long\def\startpdffontresource[#1]#2\stoppdffontresource
-% {\doif{#1}\currentencoding{\doifdefined\pdffontresource
-% {\immediate\pdfobj useobjnum \getvalue{\pdffontresource} stream {#2}}}}
-
-\long\def\startpdffontresource[#1]#2\stoppdffontresource
- {\doif{#1}\currentencoding{\doifdefined\pdffontresource
- {\expanded{\doshipoutpdffontresource{\getvalue{\pdffontresource}}{#2}}}}}
-
-\def\doshipoutpdffontresource#1#2%
- {\ifnum\realpageno<\plustwo
- \doglobal\appendtoks
- \ifcase\pdfoutput\else\immediate\pdfobj useobjnum #1 stream {#2}\fi
- \to\everyfirstshipout
- \else
- \ifcase\pdfoutput\else\immediate\pdfobj useobjnum #1 stream {#2}\fi
- \fi}
-
-% cleaner but not better:
-%
-% \newtoks \collectedpdffontresources
-%
-% \def\doshipoutpdffontresource#1#2%
-% {\doglobal\appendtoks
-% \ifcase\pdfoutput\else\immediate\pdfobj useobjnum #1 stream {#2}\fi
-% \to \collectedpdffontresources}
-%
-% \def\dofluspdffontresources
-% {\the\collectedpdffontresources
-% \global\collectedpdffontresources\emptytoks}
-%
-% \appendtoks \dofluspdffontresources \to \everybeforeshipout
-
-%D The reference to such a vector is to be handled at font
-%D definition time, which is why we hook it into the font
-%D loading routine. A little bit of indirectness speeds up
-%D the process when this feature is disabled and keeps the
-%D macros readable.
-
-% \newevery \everyfont \relax
-
-\appendtoksonce \includepdffontresource \to \everyfont
-
-% \def\includepdffontresource
-% {\ifincludepdffontresources
-% \ifx\pdffontattr\undefined
-% % we're not using (a recent version of) pdftex
-% \else\ifcase\pdfoutput
-% % we're not in pdf mode
-% \else
-% \doincludepdffontresource
-% \fi\fi
-% \fi}
-
-\def\includepdffontresource
- {\ifx\pdfgentounicode\undefined
- \expandafter\ifx\the\font\nullfont \else
- \ifx\pdffontattr\undefined
- % we're not using (a recent version of) pdftex
- \else\ifcase\pdfoutput
- % we're not in pdf mode
- \else
- \doincludepdffontresource
- \fi\fi
- \fi
- \else\ifcase\pdfgentounicode
- \ifincludepdffontresources
- \expandafter\ifx\the\font\nullfont \else
- \ifx\pdffontattr\undefined
- % we're not using (a recent version of) pdftex
- \else\ifcase\pdfoutput
- % we're not in pdf mode
- \else
- \doincludepdffontresource
- \fi\fi
- \fi
- \fi
- \or
- \global\let\includepdffontresource\relax % automatic, built in
- \fi\fi}
-
-\def\dododoincludepdffontresource#1% encoding
- {\bgroup
- \edef\currentencoding{#1}%
- \doifvaluesomething\pdffontfileresource
- {\startreadingfile
- \ignorelines % just in case \par is redefined; this thing can get called anywhere
- \readsysfile{pdfr-\getvalue\pdffontfileresource.mkii}\donothing\donothing
- \stopreadingfile
- \letgvalue\pdffontfileresource\empty}%
- \egroup}
-
-\def\doincludepdffontresource
- {\ifcsname\s!ucmap\fontfile\endcsname\else
- \dodoincludepdffontresource
- \fi}
-
-\def\dodoincludepdffontresource
- {% does this font has an encoding specified vector
- \doifsomething\currentencoding % no \ifx
- {% is there a pdf font encoding resource file defined
- \ifcsname\pdffontresource\endcsname
- % (fake) object defined
- \else\ifcsname\pdffontfileresource\endcsname
- % is there a resource already included
- \doifsomething\pdffontfileresource
- {\pdfobj reserveobjnum {}%
- \setxvalue\pdffontresource{\the\pdflastobj}%
- \flushatshipout{\dododoincludepdffontresource{\currentencoding}}}%
-% \doglobal\appendetoks
-% \noexpand\dododoincludepdffontresource{\currentencoding}%
-% \to \everybeforeshipout}% prevent multiple loading
- \fi\fi
- \ifcsname\pdffontresource\endcsname
- \expanded{\pdffontattr\font{/ToUnicode \csname\pdffontresource\endcsname\space0 R}}%
- % do it only once for each font
- \letgvalue{\s!ucmap\fontfile}\empty
- \fi}}
-
-%D For the moment, we keep this definition here, if only
-%D because \type {\usepdffontencoding} is not defined in the
-%D core. In the end, this will go to \type {enco-*.tex}.
-%D
-%D Test:
-%D
-%D \starttyping
-%D \useencoding[pfr] \usetypescript[palatino][ec] \setupbodyfont[palatino]
-%D
-%D \starttext
-%D fi ff ffi
-%D \stoptext
-%D \stoptyping
-
-\startencoding [il2] \usepdffontresource il2 \stopencoding
-\startencoding [ec] \usepdffontresource ec \stopencoding
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-pol.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-pol.mkii
deleted file mode 100644
index ec49c6e1d37..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-pol.mkii
+++ /dev/null
@@ -1,276 +0,0 @@
-%D \module
-%D [ file=enco-pol,
-%D version=2000.05.07, % 1999.28.8,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Polish Mixed Encoding,
-%D author={Taco Hoekwater \& Hans Hagen},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% This encoding will go but the regime will remain.
-
-%D Polish native encoding; normally polish users will use
-%D translate=cp1250pl in combination with ec encoding.
-
-\startmapping[pl0]
-
-\resetcaserange 128 to 255
-
-\definecaseswap 161 129 % a ogonek
-\definecaseswap 162 130 % c acute
-\definecaseswap 166 134 % e ogonek
-\definecaseswap 170 138 % l crossed
-\definecaseswap 171 139 % n acute
-\definecaseswap 177 145 % s acute
-\definecaseswap 185 153 % z acute
-\definecaseswap 187 155 % z dotaccent
-\definecaseswap 243 211 % o acute
-
-% \definecasemap 161 161 129 % a ogonek
-% \definecasemap 162 162 130 % c acute
-% \definecasemap 166 166 134 % e ogonek
-% \definecasemap 170 170 138 % l crossed
-% \definecasemap 171 171 139 % n acute
-% \definecasemap 177 177 145 % s acute
-% \definecasemap 185 185 153 % z acute
-% \definecasemap 187 187 155 % z dotaccent
-% \definecasemap 243 243 211 % o acute
-
-% \definecasemap 129 161 129 % A ogonek
-% \definecasemap 130 162 130 % C acute
-% \definecasemap 134 166 134 % E ogonek
-% \definecasemap 138 170 138 % L crossed
-% \definecasemap 139 171 139 % N acute
-% \definecasemap 145 177 145 % S acute
-% \definecasemap 153 185 153 % Z acute
-% \definecasemap 155 187 155 % Z dotaccent
-% \definecasemap 211 243 211 % O acute
-
-\stopmapping
-
-\startmapping[pl0]
-
-\definespacemap 129 999 % A ogonek
-\definespacemap 130 999 % C acute
-\definespacemap 134 999 % E ogonek
-\definespacemap 138 999 % L crossed
-\definespacemap 139 999 % N acute
-\definespacemap 211 999 % O acute
-\definespacemap 145 999 % S acute
-\definespacemap 153 999 % Z acute
-\definespacemap 155 999 % Z dot
-
-\stopmapping
-
-\startencoding[pl0][pl0]
-
-\definecharacter Aogonek 129
-\definecharacter Cacute 130
-\definecharacter Eogonek 134
-\definecharacter Lstroke 138
-\definecharacter Nacute 139
-\definecharacter Sacute 145
-\definecharacter Zacute 153
-\definecharacter Zdotaccent 155
-\definecharacter aogonek 161
-\definecharacter cacute 162
-\definecharacter eogonek 166
-\definecharacter lstroke 170
-\definecharacter nacute 171
-\definecharacter sacute 177
-\definecharacter zacute 185
-\definecharacter zdotaccent 187
-\definecharacter Oacute 211
-\definecharacter oacute 243
-
-\stopencoding
-
-\startencoding[pl0][pl0]
-
-\definecharacter leftguillemot 174
-\definecharacter rightguillemot 175
-\definecharacter guilsingleleft 174
-\definecharacter guilsingleright 175
-
-\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.
-
-% \startmapping[pl1]
-%
-%
-% \resetcaserange 128 to 255
-%
-% \definecasemap 185 185 165 % a ogonek
-% \definecasemap 230 230 198 % c acute
-% \definecasemap 234 234 202 % e ogonek
-% \definecasemap 179 179 163 % l crossed
-% \definecasemap 241 241 209 % n acute
-% \definecasemap 243 243 211 % o acute
-% \definecasemap 156 156 140 % s acute
-% \definecasemap 159 159 143 % z acute
-% \definecasemap 191 191 175 % z dot
-%
-% \definecasemap 165 165 185 % A ogonek
-% \definecasemap 198 198 230 % C acute
-% \definecasemap 202 202 234 % E ogonek
-% \definecasemap 163 163 179 % L crossed
-% \definecasemap 209 209 241 % N acute
-% \definecasemap 211 211 243 % O acute
-% \definecasemap 140 140 156 % S acute
-% \definecasemap 143 143 159 % Z acute
-% \definecasemap 175 175 191 % Z dot
-%
-% \stopmapping
-%
-% \startmapping[pl1]
-%
-% \definespacemap 165 999 % A ogonek
-% \definespacemap 198 999 % C acute
-% \definespacemap 202 999 % E ogonek
-% \definespacemap 163 999 % L crossed
-% \definespacemap 209 999 % N acute
-% \definespacemap 211 999 % O acute
-% \definespacemap 140 999 % S acute
-% \definespacemap 143 999 % Z acute
-% \definespacemap 175 999 % Z dot
-%
-% \stopmapping
-%
-% \startencoding[pl1]
-%
-% \definecharacter Sacute 140
-% \definecharacter Zacute 143
-% \definecharacter sacute 156
-% \definecharacter zacute 159
-% \definecharacter Lstroke 163
-% \definecharacter Aogonek 165
-% \definecharacter Zdotaccent 175
-% \definecharacter lstroke 179
-% \definecharacter aogonek 185
-% \definecharacter zdotaccent 191
-% \definecharacter Cacute 198
-% \definecharacter Eogonek 202
-% \definecharacter Nacute 209
-% \definecharacter Oacute 211
-% \definecharacter cacute 230
-% \definecharacter eogonek 234
-% \definecharacter nacute 241
-% \definecharacter oacute 243
-%
-% \stopencoding
-%
-% \startencoding[pl1]
-%
-% \definecharacter leftguillemot 174
-% \definecharacter rightguillemot 175
-% \definecharacter guilsingleleft 174
-% \definecharacter guilsingleright 175
-%
-% \stopencoding
-
-%D Polish ISO-8859-2 encoding.
-
-% \startmapping[pl2]
-%
-% \resetcaserange 128 to 255
-%
-% \definecasemap 177 177 161 % a ogonek
-% \definecasemap 230 230 198 % c acute
-% \definecasemap 234 234 202 % e ogonek
-% \definecasemap 179 179 163 % l crossed
-% \definecasemap 241 241 209 % n acute
-% \definecasemap 243 243 211 % o acute
-% \definecasemap 182 182 166 % s acute
-% \definecasemap 188 188 172 % z acute
-% \definecasemap 191 191 175 % z dotaccent
-%
-% \definecasemap 161 161 177 % A ogonek
-% \definecasemap 198 198 230 % C acute
-% \definecasemap 202 202 234 % E ogonek
-% \definecasemap 163 163 179 % L crossed
-% \definecasemap 209 209 241 % N acute
-% \definecasemap 211 211 243 % O acute
-% \definecasemap 166 166 182 % S acute
-% \definecasemap 172 172 188 % Z acute
-% \definecasemap 175 175 191 % Z dotaccent
-%
-% \stopmapping
-%
-% \startmapping[pl2]
-%
-% \definespacemap 161 999 % A ogonek
-% \definespacemap 198 999 % C acute
-% \definespacemap 202 999 % E ogonek
-% \definespacemap 163 999 % L crossed
-% \definespacemap 209 999 % N acute
-% \definespacemap 211 999 % O acute
-% \definespacemap 166 999 % S acute
-% \definespacemap 172 999 % Z acute
-% \definespacemap 175 999 % Z dot
-%
-% \stopmapping
-%
-% \startencoding[pl2]
-%
-% \definecharacter Aogonek 161
-% \definecharacter Lstroke 163
-% \definecharacter Sacute 166
-% \definecharacter Zacute 172
-% \definecharacter Zdotaccent 175
-% \definecharacter aogonek 177
-% \definecharacter lstroke 179
-% \definecharacter sacute 182
-% \definecharacter zacute 188
-% \definecharacter zdotaccent 191
-% \definecharacter Cacute 198
-% \definecharacter Eogonek 202
-% \definecharacter Nacute 209
-% \definecharacter Oacute 211
-% \definecharacter cacute 230
-% \definecharacter eogonek 234
-% \definecharacter nacute 241
-% \definecharacter oacute 243
-%
-% \stopencoding
-%
-% \startencoding[pl2]
-%
-% \definecharacter leftguillemot 174
-% \definecharacter rightguillemot 175
-% \definecharacter guilsingleleft 174
-% \definecharacter guilsingleright 175
-%
-% \stopencoding
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-qx.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-qx.mkii
deleted file mode 100644
index b184fe0ac0c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-qx.mkii
+++ /dev/null
@@ -1,268 +0,0 @@
-%D \module
-%D [ file=enco-qx,
-%D version=2004.04.03,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Polish QX Encoding,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% to be done
-
-% 35 numbersign
-% 95 dotaccent
-% 132 greaterequal
-% 133 approxequal
-% 137 lessequal
-% 142 ell
-% 156 IJ
-% 173 infinity
-% 182 threequartersemdash
-% 188 ij
-% 247 anglearc
-% 248 diameter
-
-\startmapping[qx] % to be done
-
-\resetcaserange 128 to 128
-\resetcaserange 131 to 133
-\resetcaserange 136 to 137
-\resetcaserange 140 to 144
-\resetcaserange 148 to 148
-\resetcaserange 150 to 150
-\resetcaserange 157 to 160
-\resetcaserange 163 to 165
-\resetcaserange 168 to 169
-\resetcaserange 172 to 176
-\resetcaserange 180 to 180
-\resetcaserange 182 to 182
-\resetcaserange 189 to 191
-\resetcaserange 198 to 198
-\resetcaserange 215 to 216
-\resetcaserange 223 to 223
-\resetcaserange 230 to 230
-\resetcaserange 247 to 248
-\resetcaserange 255 to 255
-
-\definecaseswap 161 129
-\definecaseswap 162 130
-
-\definecaseswap 166 134
-\definecaseswap 167 135
-
-\definecaseswap 170 138
-\definecaseswap 171 139
-
-\definecaseswap 177 145
-\definecaseswap 178 146
-\definecaseswap 179 147
-
-\definecaseswap 181 149
-
-\definecasemaps 151 to 156 lc +32 uc 0
-\definecasemaps 183 to 188 lc 0 uc -32
-
-\definecasemaps 192 to 197 lc +32 uc 0
-\definecasemaps 224 to 229 lc 0 uc -32
-
-\definecasemaps 199 to 214 lc +32 uc 0
-\definecasemaps 231 to 246 lc 0 uc -32
-
-\definecasemaps 217 to 222 lc +32 uc 0
-\definecasemaps 249 to 254 lc 0 uc -32
-
-\definecaseself 39 % quoteright
-
-\stopmapping
-
-\startencoding[qx]
-
-\definecharacter textacute 19
-\definecharacter textbreve 21
-\definecharacter textcaron 20
-\definecharacter textcedilla 24
-\definecharacter textcircumflex 94
-\definecharacter textdiaeresis 127
-\definecharacter textdotaccent 94
-\definecharacter textgrave 18
-\definecharacter texthungarumlaut 125
-\definecharacter textmacron 22
-\definecharacter textogonek 150
-\definecharacter textring 23
-\definecharacter texttilde 126
-
-\definecharacter dotlessi 16
-\definecharacter dotlessj 17
-
-\definecharacter endash 123
-\definecharacter emdash 124
-
-\definecharacter aeligature 26
-\definecharacter AEligature 29
-\definecharacter oeligature 27
-\definecharacter OEligature 30
-
-\definecharacter ssharp 25
-%definecharacter Ssharp 25
-
-\definecharacter thorn 254
-\definecharacter Thorn 222
-
-\definecharacter Dstroke 208 % also Eth, mapped into enco-def
-\definecharacter eth 240
-
-\definecharacter exclamdown 60
-\definecharacter questiondown 62
-
-\definecharacter sectionmark 159
-
-\definecharacter percent 37
-\definecharacter perthousand 216
-
-\definecharacter textasciicircum 141
-\definecharacter textasciitilde 140
-\definecharacter textbackslash 198
-\definecharacter textbraceleft 157
-\definecharacter textbraceright 158
-\definecharacter textunderscore 230
-
-\definecharacter textcurrency 215
-\definecharacter textdollar 36
-\definecharacter texteuro 128
-
-\definecharacter periodcentered 189
-\definecharacter textdag 143
-\definecharacter textddag 144
-\definecharacter textdegree 148
-\definecharacter textbullet 180
-
-\definecharacter paragraphmark 176
-
-\definecharacter copyright 164
-\definecharacter registered 163
-
-\definecharacter textbrokenbar 223
-\definecharacter textellipsis 8
-\definecharacter textslash 47
-\definecharacter textpm 172
-\definecharacter textdiv 165
-\definecharacter textminus 168
-\definecharacter textmultiply 169
-\definecharacter textmu 7
-
-\definecharacter quotedbl 190
-\definecharacter quotedblbase 255
-\definecharacter quotedblleft 92
-\definecharacter quotedblright 34
-
-\definecharacter quotesingle 191
-
-\definecharacter quoteleft 96
-\definecharacter quoteright 39
-
-\definecharacter leftguillemot 174
-\definecharacter rightguillemot 175
-
-\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 Nacute 139
-\definecharacter Oacute 211
-\definecharacter nacute 171
-\definecharacter oacute 243
-\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 scaron 178
-\definecharacter Scaron 146
-\definecharacter zcaron 186
-\definecharacter Zcaron 154
-
-\definecharacter ccedilla 231
-\definecharacter Ccedilla 199
-
-\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
-
-\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 aogonek 161
-\definecharacter Aogonek 129
-\definecharacter eogonek 166
-\definecharacter Eogonek 134
-\definecharacter iogonek 167
-\definecharacter Iogonek 135
-\definecharacter uogonek 183
-\definecharacter Uogonek 151
-
-\definecharacter aring 229
-\definecharacter Aring 197
-
-\definecharacter lstroke 170
-\definecharacter Lstroke 138
-\definecharacter ostroke 28
-\definecharacter Ostroke 31
-
-\definecharacter atilde 227
-\definecharacter Atilde 195
-\definecharacter ntilde 241
-\definecharacter Ntilde 209
-\definecharacter otilde 245
-\definecharacter Otilde 213
-
-\definecharacter scommaaccent 179
-\definecharacter Scommaaccent 147
-\definecharacter tcommaaccent 181
-\definecharacter Tcommaaccent 149
-
-\stopencoding
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-raw.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-raw.mkii
deleted file mode 100644
index e3a46e3d768..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-raw.mkii
+++ /dev/null
@@ -1,119 +0,0 @@
-% default instelbaar maken: \enableencoding[main][fallback]
-
-\startencoding[raw]
-
-\definecharacter Acircumflex {A} \definecharacter acircumflex {a}
-\definecharacter Ccircumflex {C} \definecharacter ccircumflex {c}
-\definecharacter Ecircumflex {E} \definecharacter ecircumflex {e}
-\definecharacter Gcircumflex {G} \definecharacter gcircumflex {g}
-\definecharacter Hcircumflex {H} \definecharacter hcircumflex {h}
-\definecharacter Icircumflex {I} \definecharacter icircumflex {i}
-\definecharacter Jcircumflex {J} \definecharacter jcircumflex {j}
-\definecharacter Ocircumflex {O} \definecharacter ocircumflex {o}
-\definecharacter Scircumflex {S} \definecharacter scircumflex {s}
-\definecharacter Ucircumflex {U} \definecharacter ucircumflex {u}
-\definecharacter Wcircumflex {W} \definecharacter wcircumflex {w}
-\definecharacter Ycircumflex {Y} \definecharacter ycircumflex {y}
-
-\definecharacter Agrave {A} \definecharacter agrave {a}
-\definecharacter Egrave {E} \definecharacter egrave {e}
-\definecharacter Igrave {I} \definecharacter igrave {i}
-\definecharacter Ograve {O} \definecharacter ograve {o}
-\definecharacter Ugrave {U} \definecharacter ugrave {u}
-\definecharacter Ygrave {Y} \definecharacter ygrave {y}
-
-\definecharacter Atilde {A} \definecharacter atilde {a}
-\definecharacter Itilde {I} \definecharacter itilde {i}
-\definecharacter Otilde {O} \definecharacter otilde {o}
-\definecharacter Utilde {U} \definecharacter utilde {u}
-\definecharacter Utilde {N} \definecharacter utilde {n}
-
-\definecharacter Adiaeresis {A} \definecharacter adiaeresis {a}
-\definecharacter Ediaeresis {E} \definecharacter ediaeresis {e}
-\definecharacter Idiaeresis {I} \definecharacter idiaeresis {i}
-\definecharacter Odiaeresis {O} \definecharacter odiaeresis {o}
-\definecharacter Udiaeresis {U} \definecharacter udiaeresis {u}
-\definecharacter Ydiaeresis {Y} \definecharacter ydiaeresis {y}
-
-\definecharacter Aacute {A} \definecharacter aacute {a}
-\definecharacter Cacute {C} \definecharacter cacute {c}
-\definecharacter Eacute {E} \definecharacter eacute {e}
-\definecharacter Iacute {I} \definecharacter iacute {i}
-\definecharacter Lacute {L} \definecharacter lacute {l}
-\definecharacter Nacute {N} \definecharacter nacute {n}
-\definecharacter Oacute {O} \definecharacter oacute {o}
-\definecharacter Racute {R} \definecharacter racute {r}
-\definecharacter Sacute {S} \definecharacter sacute {s}
-\definecharacter Uacute {U} \definecharacter uacute {u}
-\definecharacter Yacute {Y} \definecharacter yacute {y}
-\definecharacter Zacute {Z} \definecharacter zacute {z}
-
-\definecharacter Dstroke {D} \definecharacter dstroke {d}
-\definecharacter Hstroke {H} \definecharacter hstroke {h}
-\definecharacter Tstroke {T} \definecharacter tstroke {t}
-
-\definecharacter Cdotaccent {C} \definecharacter cdotaccent {c}
-\definecharacter Edotaccent {E} \definecharacter edotaccent {e}
-\definecharacter Gdotaccent {G} \definecharacter gdotaccent {g}
-\definecharacter Idotaccent {I} \definecharacter idotaccent {i}
-\definecharacter Zdotaccent {Z} \definecharacter zdotaccent {z}
-
-\definecharacter Amacron {A} \definecharacter amacron {a}
-\definecharacter Emacron {E} \definecharacter emacron {e}
-\definecharacter Imacron {I} \definecharacter imacron {i}
-\definecharacter Omacron {O} \definecharacter omacron {o}
-\definecharacter Umacron {U} \definecharacter umacron {u}
-
-\definecharacter Ccedilla {C} \definecharacter ccedilla {c}
-\definecharacter Kcedilla {K} \definecharacter kcedilla {k}
-\definecharacter Lcedilla {L} \definecharacter lcedilla {l}
-\definecharacter Ncedilla {N} \definecharacter ncedilla {n}
-\definecharacter Rcedilla {R} \definecharacter rcedilla {r}
-\definecharacter Scedilla {S} \definecharacter scedilla {s}
-\definecharacter Tcedilla {T} \definecharacter tcedilla {t}
-
-\definecharacter Ohungarumlaut {O} \definecharacter ohungarumlaut {o}
-\definecharacter Uhungarumlaut {U} \definecharacter uhungarumlaut {u}
-
-\definecharacter Aogonek {A} \definecharacter aogonek {a}
-\definecharacter Eogonek {E} \definecharacter eogonek {e}
-\definecharacter Iogonek {I} \definecharacter iogonek {i}
-\definecharacter Uogonek {U} \definecharacter uogonek {u}
-
-\definecharacter Aring {A} \definecharacter aring {a}
-\definecharacter Uring {U} \definecharacter uring {u}
-
-\definecharacter Abreve {A} \definecharacter abreve {a}
-\definecharacter Ebreve {E} \definecharacter ebreve {e}
-\definecharacter Gbreve {G} \definecharacter gbreve {g}
-\definecharacter Ibreve {I} \definecharacter ibreve {i}
-\definecharacter Obreve {O} \definecharacter obreve {o}
-\definecharacter Ubreve {U} \definecharacter ubreve {u}
-
-\definecharacter Ccaron {C} \definecharacter ccaron {c}
-\definecharacter Dcaron {D} \definecharacter dcaron {d}
-\definecharacter Ecaron {E} \definecharacter ecaron {e}
-\definecharacter Lcaron {L} \definecharacter lcaron {l}
-\definecharacter Ncaron {N} \definecharacter ncaron {n}
-\definecharacter Rcaron {R} \definecharacter rcaron {r}
-\definecharacter Scaron {S} \definecharacter scaron {s}
-\definecharacter Tcaron {T} \definecharacter tcaron {t}
-\definecharacter Zcaron {Z} \definecharacter zcaron {z}
-
-\definecharacter dotlessI {I} \definecharacter dotlessi {i}
-\definecharacter dotlessJ {J} \definecharacter dotlessj {j}
-
-\definecharacter AEligature {AE} \definecharacter aeligature {ae}
-\definecharacter Lstroke {L} \definecharacter lstroke {l}
-\definecharacter Ostroke {O} \definecharacter ostroke {o}
-\definecharacter OEligature {OE} \definecharacter oeligature {oe}
-\definecharacter Ssharp {SS} \definecharacter ssharp {ss}
-\definecharacter IJligature {IJ} \definecharacter ijligature {ij}
-
-\definecharacter Aumlaut {A} \definecharacter aumlaut {a}
-\definecharacter Eumlaut {E} \definecharacter eumlaut {e}
-\definecharacter Iumlaut {I} \definecharacter iumlaut {i}
-\definecharacter Oumlaut {O} \definecharacter oumlaut {o}
-\definecharacter Uumlaut {U} \definecharacter uumlaut {u}
-
-\stopencoding
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-run.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-run.mkii
deleted file mode 100644
index 2f60a35b874..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-run.mkii
+++ /dev/null
@@ -1,149 +0,0 @@
-%D \module
-%D [ file=enco-run,
-%D version=2000.27.12, % moved to runtime module
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Runtime Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\gdef\visualizecharacters% {}'s needed
- {\def\uchar##1##2{\hbox to 2.5em
- {\ifcase##1\relax\red\or\blue\else\green\fi##1\hss##2}}%
- \let\normalbuildtextaccent\buildtextaccent
- \let\normalbottomaccent \bottomaccent
- %\def\char{\green\normalchar}%
- \def\char % can be used in \oalign
- {\bgroup\def\char{\green\normalchar\scratchcounter\egroup}%
- \afterassignment\char\scratchcounter}%
- \def\buildtextaccent{\let\green\empty\blue\normalbuildtextaccent}%
- \def\bottomaccent{\let\green\empty\red\normalbottomaccent}}
-
-\unexpanded\gdef\visualizecharacterslegend
- {\hbox
- {\edef\banner{\currentencoding\space\fontname\font}%
- \tttf\banner:\space
- {\blue composed}\space{\red bottom}\space{\green char}\space raw}}
-
-\gdef\showaccents
- {\bgroup
- \savefont
- \setuptextrules[\c!bodyfont=,\c!style=]
- \starttextrule{\visualizecharacterslegend}
- \whitespace
- \restorefont\setupinterlinespace
- \visualizecharacters
- \def\do##1%
- {{\def\dodo####1%
- {\hss\hbox to 1em{\hss\expanded{##1####1\recurselevel}\hss}}%
- \hbox to \hsize
- {\strut
- \localcolortrue
- \hbox to 2em{\tttf\string##1\hss}%
- \dorecurse{26}{\dodo\character}}%
- \hbox to \hsize
- {\strut
- \localcolortrue
- \hskip2em
- \dorecurse{26}{\dodo\Character}}}%
- \par}
- \do\'\do\`\do\^\do\~\do\"
- \do\H\do\r\do\v\do\u\do\=
- \do\.\do\b\do\d\do\k\do\c
- \stoptextrule
- \egroup}
-
-\gdef\showcharacters
- {\bgroup
- \savefont
- \setuptextrules[\c!bodyfont=,\c!style=]
- \starttextrule{\visualizecharacterslegend}
- \whitespace
- \dontcomplain
- \forgetall
- \def\startencoding[##1]{}
- \def\stopencoding{\endinput}
- \dimen0=\zeropoint
- \dimen2=\zeropoint
- \def\definecharacter ##1 ##2 %
- {\setbox0=\hbox spread 1em{\getvalue{##1}}%
- \ifdim\wd0>\dimen0 \dimen0=\wd0 \fi
- \setbox2=\hbox spread 1em{\box0 \tttf##1}
- \ifdim\wd2>\dimen2 \dimen2=\wd2 \fi}%
- \readsysfile{\f!encodingprefix def}{}{}
- \edef\encwidth{\the\dimen0}
- \dimen0=\hsize
- \advance\dimen0 2em
- \advance\dimen2 2em
- \divide \dimen0 by \dimen2 \advance\dimen0 1sp
- \edef\enccols{\number\dimen0}
- \visualizecharacters
- \startcolumns[\c!n=\enccols,\c!distance=2em]
- \restorefont\setupinterlinespace
- \def\definecharacter ##1 ##2 %
- {\setbox0=\hbox to \hsize{\localcolortrue\hbox to \encwidth{\getvalue{##1}\hss}\tttf##1}%
- \ht0\strutheight \dp0\strutdepth \box0 \allowbreak}
- \readsysfile{\f!encodingprefix def}{}{}
- \stopcolumns
- \stoptextrule
- \egroup}
-
-% \hbox
-% {\font\test=uplr8t \test \ruledhbox{t}
-% \font\test=uplr8r \test \ruledhbox{t}}
-
-\ifnum\texengine=\pdftexengine
-
- \gdef\showhyphenations#1%
- {\starttabulate[|le|l|]
- \NC language \NC \currentlanguage\ (internal code:\the\normallanguage) \NC \NR
- \NC font \NC \fontname\font \NC \NR
- \NC encoding \NC \ifx\@@fontencoding\empty not set\else\@@fontencoding\fi \NC \NR
- \NC mapping \NC \ifx\@@fontmapping \empty not set\else\@@fontmapping \fi \NC \NR
- \NC handling \NC \ifx\@@fonthandling\empty not set\else\@@fonthandling\fi \NC \NR
- \NC sample \NC \hyphenatedword{#1} \NC \NR
- \stoptabulate}
-
- \gdef\showmapping
- {\dostepwiserecurse{128}{255}{1}
- {\hbox\bgroup
- \hbox to 2em{\hss\recurselevel}%
- \hbox to 2em{\hss\char\recurselevel\hss}%
- \hbox to 3em{\hss\ifcase\lccode\recurselevel\else\the \lccode\recurselevel\fi}%
- \hbox to 2em{\hss\ifcase\lccode\recurselevel\else\char\lccode\recurselevel\fi\hss}%
- \hbox to 3em{\hss\ifcase\lccode\recurselevel\else\the \uccode\recurselevel\fi}%
- \hbox to 2em{\hss\ifcase\uccode\recurselevel\else\char\uccode\recurselevel\fi\hss}%
- \egroup
- \endgraf}}
-
- \gdef\showcharacterbounds
- {\bgroup
- \localcolortrue
- \dorecurse{255}
- {\ifdim\fontcharwd\font\recurselevel>\zeropoint
- \noindent\ruledhbox{\darkgray\char\recurselevel}\space
- \fi}\unskip
- \egroup}
-
-\else
-
- \gdef\showhyphenations#1%
- {\starttabulate[|le|l|]
- \NC language \NC \currentlanguage\ (internal code:\the\normallanguage) \NC \NR
- \NC font \NC \fontname\font \NC \NR
- \NC sample \NC \hyphenatedword{#1} \NC \NR
- \stoptabulate}
-
- \globallet\showmapping\relax
-
- \globallet\showcharacterbounds\relax
-
-\fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-t5.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-t5.mkii
deleted file mode 100644
index 3f51b85855b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-t5.mkii
+++ /dev/null
@@ -1,248 +0,0 @@
-%D \module
-%D [ file=enco-t5,
-%D version=2004.11.16,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=New Vietnamese Encoding,
-%D author=Hans Hagen \& Adam Lindsay,
-%D date=\currentdate,
-%D copyright={Adam Lindsay \& Hans Hagen}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module is derived from the enco-x5 encoding, but now
-%D approaches the world with named glyphs.
-
-\startencoding[t5]
-
-\definecasemaps 128 to 159 lc +32 uc 0
-
-\definecasemaps 160 to 191 lc 0 uc -32
-
-\definecasemaps 192 to 223 lc +32 uc 0
-
-\definecasemaps 224 to 225 lc 0 uc -32
-
-\definecasemap 26 26 27 \definecasemap 27 26 27
-\definecasemap 28 28 29 \definecasemap 29 28 29
-\definecasemap 30 30 31 \definecasemap 31 30 31
-
-\definecharacter textgrave 0
-\definecharacter textacute 1
-\definecharacter textcircumflex 2
-\definecharacter texttilde 3
-\definecharacter textdiaeresis 4
-\definecharacter textbottomdot 5
-\definecharacter textring 6
-\definecharacter textcaron 7
-\definecharacter textbreve 8
-\definecharacter textmacron 9
-\definecharacter textdotaccent 10
-\definecharacter textcedilla 11
-\definecharacter texthookabove 12
-\definecharacter textogonek {}
-
-\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 cwm 23
-\definecharacter zeroinferior 24
-\definecharacter Yhook 26
-\definecharacter yhook 27
-\definecharacter Ydotbelow 28
-\definecharacter ydotbelow 29
-\definecharacter Dstroke 30
-\definecharacter dstroke 31
-\definecharacter textvisiblespace 32
-
-\definecharacter dotlessi 25
-%definecharacter DJ 30
-%definecharacter dj 31
-\definecharacter Agrave 128
-\definecharacter Aacute 129
-\definecharacter Atilde 130
-\definecharacter Ahook 131
-\definecharacter Adotbelow 132
-\definecharacter Acircumflex 133
-\definecharacter Acircumflexgrave 134
-\definecharacter Acircumflexacute 135
-\definecharacter Acircumflextilde 136
-\definecharacter Acircumflexhook 137
-\definecharacter Acircumflexdotbelow 138
-\definecharacter Abreve 139
-\definecharacter Abrevegrave 140
-\definecharacter Abreveacute 141
-\definecharacter Abrevetilde 142
-\definecharacter Abrevehook 143
-\definecharacter Abrevedotbelow 144
-\definecharacter Egrave 145
-\definecharacter Eacute 146
-\definecharacter Etilde 147
-\definecharacter Ehook 148
-\definecharacter Edotbelow 149
-\definecharacter Ecircumflex 150
-\definecharacter Ecircumflexgrave 151
-\definecharacter Ecircumflexacute 152
-\definecharacter Ecircumflextilde 153
-\definecharacter Ecircumflexhook 154
-\definecharacter Ecircumflexdotbelow 155
-\definecharacter Igrave 156
-\definecharacter Iacute 157
-\definecharacter Itilde 158
-\definecharacter Ihook 159
-\definecharacter agrave 160
-\definecharacter aacute 161
-\definecharacter atilde 162
-\definecharacter ahook 163
-\definecharacter adotbelow 164
-\definecharacter acircumflex 165
-\definecharacter acircumflexgrave 166
-\definecharacter acircumflexacute 167
-\definecharacter acircumflextilde 168
-\definecharacter acircumflexhook 169
-\definecharacter acircumflexdotbelow 170
-\definecharacter abreve 171
-\definecharacter abrevegrave 172
-\definecharacter abreveacute 173
-\definecharacter abrevetilde 174
-\definecharacter abrevehook 175
-\definecharacter abrevedotbelow 176
-\definecharacter egrave 177
-\definecharacter eacute 178
-\definecharacter etilde 179
-\definecharacter ehook 180
-\definecharacter edotbelow 181
-\definecharacter ecircumflex 182
-\definecharacter ecircumflexgrave 183
-\definecharacter ecircumflexacute 184
-\definecharacter ecircumflextilde 185
-\definecharacter ecircumflexhook 186
-\definecharacter ecircumflexdotbelow 187
-\definecharacter igrave 188
-\definecharacter iacute 189
-\definecharacter itilde 190
-\definecharacter ihook 191
-\definecharacter Idotbelow 192
-\definecharacter Ograve 193
-\definecharacter Oacute 194
-\definecharacter Otilde 195
-\definecharacter Ohook 196
-\definecharacter Odotbelow 197
-\definecharacter Ocircumflex 198
-\definecharacter Ocircumflexgrave 199
-\definecharacter Ocircumflexacute 200
-\definecharacter Ocircumflextilde 201
-\definecharacter Ocircumflexhook 202
-\definecharacter Ocircumflexdotbelow 203
-\definecharacter Ohorn 204
-\definecharacter Ohorngrave 205
-\definecharacter Ohornacute 206
-\definecharacter Ohorntilde 207
-\definecharacter Ohornhook 208
-\definecharacter Ohorndotbelow 209
-\definecharacter Ugrave 210
-\definecharacter Uacute 211
-\definecharacter Utilde 212
-\definecharacter Uhook 213
-\definecharacter Udotbelow 214
-\definecharacter Uhorn 215
-\definecharacter Uhorngrave 216
-\definecharacter Uhornacute 217
-\definecharacter Uhorntilde 218
-\definecharacter Uhornhook 219
-\definecharacter Uhorndotbelow 220
-\definecharacter Ytilde 223
-\definecharacter idotbelow 224
-\definecharacter ograve 225
-\definecharacter oacute 226
-\definecharacter otilde 227
-\definecharacter ohook 228
-\definecharacter odotbelow 229
-\definecharacter ocircumflex 230
-\definecharacter ocircumflexgrave 231
-\definecharacter ocircumflexacute 232
-\definecharacter ocircumflextilde 233
-\definecharacter ocircumflexhook 234
-\definecharacter ocircumflexdotbelow 235
-\definecharacter ohorn 236
-\definecharacter ohorngrave 237
-\definecharacter ohornacute 238
-\definecharacter ohorntilde 239
-\definecharacter ohornhook 240
-\definecharacter ohorndotbelow 241
-\definecharacter ugrave 242
-\definecharacter uacute 243
-\definecharacter utilde 244
-\definecharacter uhook 245
-\definecharacter udotbelow 246
-\definecharacter uhorn 247
-\definecharacter uhorngrave 248
-\definecharacter uhornacute 249
-\definecharacter uhorntilde 250
-\definecharacter uhornhook 251
-\definecharacter uhorndotbelow 252
-\definecharacter ygrave 253
-\definecharacter yacute 254
-\definecharacter ytilde 255
-
-\stopencoding
-
-\endinput
-
-% \startencoding [x5]
-%
-% \definecharacter aa {\xfiveencodedaa}
-% \definecharacter AA {\xfiveencodedAA}
-%
-% \stopencoding
-%
-% \unprotect
-%
-% \def\xfiveencodedaa%
-% {\accent23a}
-%
-% \def\xfiveencodedAA%
-% {\leavevmode
-% \setbox\zerocount\hbox{h}%
-% \dimen@\ht\zerocount
-% \advance\dimen@ -1ex
-% \rlap{\raise.67\dimen@\hbox{\char23}}A}
-%
-% \protect
-%
-% \quotesinglbase 13
-% \guilsinglleft 14
-% \guilsinglright 15
-% \textquotedblleft 16
-% \textquotedblright 17
-% \quotedblbase 18
-% \guillemotleft 19
-% \guillemotright 20
-% \textendash 21
-% \textemdash 22
-% \textcompwordmark 23
-% \textperthousand \% \char 24
-% \textpertenthousand \%\char 24\char 24
-% \textvisiblespace 32
-% \textquotedbl `\"
-% \textdollar `\$
-% \textquoteright `\'
-% \textless `\<
-% \textgreater `\>
-% \textbackslash `\
-% \textasciicircum `\^
-% \textunderscore 95
-% \textquoteleft `\`
-% \textbraceleft `\{
-% \textbar `\|
-% \textbraceright `\}
-% \textasciitilde `\~
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-tbo.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-tbo.mkii
deleted file mode 100644
index 5733acd32e0..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-tbo.mkii
+++ /dev/null
@@ -1,222 +0,0 @@
-%D \module
-%D [ file=enco-tbo,
-%D version=2000.05.07, % 2001.8.4,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=TeXBaseOne Encoding,
-%D author={Patrick Gundlach, Hans Hagen},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\startmapping[8r]
-
-\resetcaserange 128 to 255
-
-\definecasemap 228 228 196 \definecasemap 196 228 196
-\definecasemap 235 235 203 \definecasemap 203 235 203
-\definecasemap 239 239 207 \definecasemap 207 239 207
-\definecasemap 246 246 214 \definecasemap 214 246 214
-\definecasemap 252 252 220 \definecasemap 220 252 220
-\definecasemap 255 255 159 \definecasemap 159 255 159
-
-\definecasemap 225 225 193 \definecasemap 193 225 193
-\definecasemap 233 233 201 \definecasemap 201 233 201
-\definecasemap 237 237 205 \definecasemap 205 237 205
-\definecasemap 243 243 211 \definecasemap 211 243 211
-\definecasemap 250 250 218 \definecasemap 218 250 218
-\definecasemap 253 253 221 \definecasemap 221 253 221
-
-\definecasemap 224 224 192 \definecasemap 192 224 192
-\definecasemap 232 232 200 \definecasemap 200 232 200
-\definecasemap 236 236 204 \definecasemap 204 236 204
-\definecasemap 242 242 210 \definecasemap 210 242 210
-\definecasemap 249 249 217 \definecasemap 217 249 217
-
-\definecasemap 226 226 194 \definecasemap 194 226 194
-\definecasemap 234 234 202 \definecasemap 202 234 202
-\definecasemap 238 238 206 \definecasemap 206 238 206
-\definecasemap 244 244 212 \definecasemap 212 244 212
-\definecasemap 251 251 219 \definecasemap 219 251 219
-
-\definecasemap 227 227 195 \definecasemap 195 227 195
-\definecasemap 241 241 209 \definecasemap 209 241 209
-\definecasemap 245 245 213 \definecasemap 213 245 213
-
-\stopmapping
-
-\startencoding[8r]
-
-\definecharacter textacute 180
-\definecharacter textbreve 11
-\definecharacter textcaron 16
-\definecharacter textcedilla 184
-\definecharacter textcircumflex 136
-\definecharacter textdiaeresis 168
-\definecharacter textdotaccent 1
-\definecharacter textgrave 30
-\definecharacter texthungarumlaut 5
-\definecharacter textmacron 175
-\definecharacter textogonek 8
-\definecharacter textring 9
-\definecharacter texttilde 152
-
-\definecharacter dotlessi 17
-%definecharacter dotlessj 18
-
-\definecharacter endash 150
-\definecharacter emdash 151
-
-\definecharacter oeligature 156
-\definecharacter OEligature 140
-\definecharacter aeligature 230
-\definecharacter AEligature 198
-
-\definecharacter ssharp 223
-
-\definecharacter thorn 254
-\definecharacter Thorn 222
-
-\definecharacter exclamdown 161
-\definecharacter questiondown 191
-
-\definecharacter copyright 169
-\definecharacter registered 174
-\definecharacter trademark 153
-
-\definecharacter sectionmark 167
-\definecharacter paragraphmark 182
-
-\definecharacter onequarter 188
-\definecharacter onehalf 189
-\definecharacter threequarter 190
-\definecharacter onesuperior 185
-\definecharacter twosuperior 178
-\definecharacter threesuperior 179
-
-\definecharacter textcent 162
-\definecharacter textcurrency 164
-\definecharacter texteuro 128
-\definecharacter textflorin 131
-\definecharacter textsterling 163
-\definecharacter textyen 165
-
-\definecharacter percent 37
-\definecharacter perthousand 137
-
-\definecharacter periodcentered 183
-\definecharacter softhyphen 173
-
-\definecharacter textasciicircum 94
-\definecharacter textasciitilde 126
-\definecharacter textslash 47
-\definecharacter textbackslash 92
-\definecharacter textbraceleft 123
-\definecharacter textbraceright 125
-\definecharacter textunderscore 95
-
-\definecharacter textbrokenbar 166
-\definecharacter textbullet 149
-\definecharacter textdag 134
-\definecharacter textddag 135
-\definecharacter textdegree 176
-\definecharacter textdiv 247
-\definecharacter textellipsis 133
-\definecharacter textfraction 4
-\definecharacter textlognot 172
-\definecharacter textminus 12
-\definecharacter textmu 181
-\definecharacter textmultiply 215
-\definecharacter textpm 177
-
-\definecharacter quotedbl 34
-\definecharacter quotedblbase 132
-\definecharacter quotedblleft 147
-\definecharacter quotedblright 148
-
-\definecharacter quotesingle 31
-\definecharacter quotesinglebase 130
-
-\definecharacter quoteleft 96
-\definecharacter quoteright 39
-
-\definecharacter guilsingleleft 139
-\definecharacter guilsingleright 155
-\definecharacter leftguillemot 171
-\definecharacter rightguillemot 187
-
-\definecharacter aacute 225
-\definecharacter Aacute 193
-\definecharacter eacute 233
-\definecharacter Eacute 201
-\definecharacter iacute 237
-\definecharacter Iacute 205
-\definecharacter oacute 243
-\definecharacter Oacute 211
-\definecharacter uacute 250
-\definecharacter Uacute 218
-\definecharacter Yacute 221
-\definecharacter yacute 253
-
-\definecharacter scaron 154
-\definecharacter Scaron 138
-%definecharacter Zcaron 141
-
-\definecharacter ccedilla 231
-\definecharacter Ccedilla 199
-
-\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 255
-\definecharacter Ydiaeresis 159
-
-\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 aring 229
-\definecharacter Aring 197
-
-\definecharacter lstroke 7
-\definecharacter Lstroke 6
-\definecharacter ostroke 248
-\definecharacter Ostroke 216
-
-\definecharacter atilde 227
-\definecharacter Atilde 195
-\definecharacter ntilde 241
-\definecharacter Ntilde 209
-\definecharacter otilde 245
-\definecharacter Otilde 213
-
-\stopencoding
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-uc.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-uc.mkii
deleted file mode 100644
index f39260b16d0..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-uc.mkii
+++ /dev/null
@@ -1,1093 +0,0 @@
-%D \module
-%D [ file=enco-uc,
-%D version=2000.xx.xx, % and later
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Unicode (backwards mapping),
-%D author={Adam Lindsay \& Hans Hagen},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D An alternative approach would be to misuse the utf vectors, but they
-%D don't carry enough info around.
-
-% todo : \defineucharacter hebrewAlef 5 "D0
-
-\startencoding[uc]
-
-\definecharacter Agrave {\uchar0{192}}
-\definecharacter Aacute {\uchar0{193}}
-\definecharacter Acircumflex {\uchar0{194}}
-\definecharacter Atilde {\uchar0{195}}
-\definecharacter Adiaeresis {\uchar0{196}}
-\definecharacter Aring {\uchar0{197}}
-\definecharacter AEligature {\uchar0{198}}
-\definecharacter Ccedilla {\uchar0{199}}
-\definecharacter Egrave {\uchar0{200}}
-\definecharacter Eacute {\uchar0{201}}
-\definecharacter Ediaeresis {\uchar0{203}}
-\definecharacter Igrave {\uchar0{204}}
-\definecharacter Iacute {\uchar0{205}}
-\definecharacter Icircumflex {\uchar0{206}}
-\definecharacter Idiaeresis {\uchar0{207}}
-\definecharacter Eth {\uchar0{208}}
-\definecharacter Ntilde {\uchar0{209}}
-\definecharacter Ograve {\uchar0{210}}
-\definecharacter Oacute {\uchar0{211}}
-\definecharacter Ocircumflex {\uchar0{212}}
-\definecharacter Otilde {\uchar0{213}}
-\definecharacter Odiaeresis {\uchar0{214}}
-
-\definecharacter Ostroke {\uchar0{216}}
-\definecharacter Ugrave {\uchar0{217}}
-\definecharacter Uacute {\uchar0{218}}
-\definecharacter Uhungarumlaut {\uchar0{219}}
-\definecharacter Udiaeresis {\uchar0{220}}
-\definecharacter Yacute {\uchar0{221}}
-\definecharacter Thorn {\uchar0{222}}
-\definecharacter ssharp {\uchar0{223}}
-\definecharacter agrave {\uchar0{224}}
-\definecharacter aacute {\uchar0{225}}
-\definecharacter acircumflex {\uchar0{226}}
-\definecharacter atilde {\uchar0{227}}
-\definecharacter adiaeresis {\uchar0{228}}
-\definecharacter aring {\uchar0{229}}
-\definecharacter aeligature {\uchar0{230}}
-\definecharacter ccedilla {\uchar0{231}}
-\definecharacter egrave {\uchar0{232}}
-\definecharacter eacute {\uchar0{233}}
-\definecharacter ecircumflex {\uchar0{234}}
-\definecharacter ediaeresis {\uchar0{235}}
-\definecharacter igrave {\uchar0{236}}
-\definecharacter iacute {\uchar0{237}}
-\definecharacter icircumflex {\uchar0{238}}
-\definecharacter idiaeresis {\uchar0{239}}
-\definecharacter eth {\uchar0{240}}
-\definecharacter ntilde {\uchar0{241}}
-\definecharacter ograve {\uchar0{242}}
-\definecharacter oacute {\uchar0{243}}
-\definecharacter ocircumflex {\uchar0{244}}
-\definecharacter otilde {\uchar0{245}}
-\definecharacter odiaeresis {\uchar0{246}}
-
-\definecharacter ostroke {\uchar0{248}}
-\definecharacter ugrave {\uchar0{249}}
-\definecharacter uacute {\uchar0{250}}
-\definecharacter ucircumflex {\uchar0{251}}
-\definecharacter udiaeresis {\uchar0{252}}
-\definecharacter yacute {\uchar0{253}}
-\definecharacter thorn {\uchar0{254}}
-\definecharacter ydiaeresis {\uchar0{255}}
-
-\definecharacter Amacron {\uchar1{0}}
-\definecharacter amacron {\uchar1{1}}
-\definecharacter Abreve {\uchar1{2}}
-\definecharacter abreve {\uchar1{3}}
-\definecharacter Aogonek {\uchar1{4}}
-\definecharacter aogonek {\uchar1{5}}
-\definecharacter Cacute {\uchar1{6}}
-\definecharacter cacute {\uchar1{7}}
-\definecharacter Ccircumflex {\uchar1{8}}
-\definecharacter ccircumflex {\uchar1{9}}
-\definecharacter Cdotaccent {\uchar1{10}}
-\definecharacter cdotaccent {\uchar1{11}}
-\definecharacter Ccaron {\uchar1{12}}
-\definecharacter ccaron {\uchar1{13}}
-\definecharacter Dcaron {\uchar1{14}}
-\definecharacter dcaron {\uchar1{15}}
-\definecharacter Dstroke {\uchar1{16}}
-\definecharacter dstroke {\uchar1{17}}
-\definecharacter Emacron {\uchar1{18}}
-\definecharacter emacron {\uchar1{19}}
-\definecharacter Ebreve {\uchar1{20}}
-\definecharacter ebreve {\uchar1{21}}
-\definecharacter Edotaccent {\uchar1{22}}
-\definecharacter edotaccent {\uchar1{23}}
-\definecharacter Eogonek {\uchar1{24}}
-\definecharacter eogonek {\uchar1{25}}
-\definecharacter Ecaron {\uchar1{26}}
-\definecharacter ecaron {\uchar1{27}}
-\definecharacter Gcircumflex {\uchar1{28}}
-\definecharacter gcircumflex {\uchar1{29}}
-\definecharacter Gbreve {\uchar1{30}}
-\definecharacter gbreve {\uchar1{31}}
-\definecharacter Gdotaccent {\uchar1{32}}
-\definecharacter gdotaccent {\uchar1{33}}
-\definecharacter Gcommaaccent {\uchar1{34}}
-\definecharacter gcommaaccent {\uchar1{35}}
-\definecharacter Hcircumflex {\uchar1{36}}
-\definecharacter hcircumflex {\uchar1{37}}
-\definecharacter Hstroke {\uchar1{38}}
-\definecharacter hstroke {\uchar1{39}}
-\definecharacter Itilde {\uchar1{40}}
-\definecharacter itilde {\uchar1{41}}
-\definecharacter Imacron {\uchar1{42}}
-\definecharacter imacron {\uchar1{43}}
-\definecharacter Ibreve {\uchar1{44}}
-\definecharacter ibreve {\uchar1{45}}
-\definecharacter Iogonek {\uchar1{46}}
-\definecharacter iogonek {\uchar1{47}}
-\definecharacter Idotaccent {\uchar1{48}}
-\definecharacter dotlessi {\uchar1{49}}
-\definecharacter IJligature {\uchar1{50}}
-\definecharacter ijligature {\uchar1{51}}
-\definecharacter Jcircumflex {\uchar1{52}}
-\definecharacter jcircumflex {\uchar1{53}}
-\definecharacter Kcommaaccent {\uchar1{54}}
-\definecharacter kcommaaccent {\uchar1{55}}
-\definecharacter kkra {\uchar1{56}}
-\definecharacter Lacute {\uchar1{57}}
-\definecharacter lacute {\uchar1{58}}
-\definecharacter Lcommaaccent {\uchar1{59}}
-\definecharacter lcommaaccent {\uchar1{60}}
-\definecharacter Lcaron {\uchar1{61}}
-\definecharacter lcaron {\uchar1{62}}
-\definecharacter Ldotmiddle {\uchar1{63}}
-\definecharacter ldotmiddle {\uchar1{64}}
-\definecharacter Lstroke {\uchar1{65}}
-\definecharacter lstroke {\uchar1{66}}
-\definecharacter Nacute {\uchar1{67}}
-\definecharacter nacute {\uchar1{68}}
-\definecharacter Ncommaaccent {\uchar1{69}}
-\definecharacter ncommaaccent {\uchar1{70}}
-\definecharacter Ncaron {\uchar1{71}}
-\definecharacter ncaron {\uchar1{72}}
-\definecharacter napostrophe {\uchar1{73}}
-\definecharacter Neng {\uchar1{74}}
-\definecharacter neng {\uchar1{75}}
-\definecharacter Omacron {\uchar1{76}}
-\definecharacter omacron {\uchar1{77}}
-\definecharacter Obreve {\uchar1{78}}
-\definecharacter obreve {\uchar1{79}}
-\definecharacter Ohungarumlaut {\uchar1{80}}
-\definecharacter ohungarumlaut {\uchar1{81}}
-\definecharacter OEligature {\uchar1{82}}
-\definecharacter oeligature {\uchar1{83}}
-\definecharacter Racute {\uchar1{84}}
-\definecharacter racute {\uchar1{85}}
-\definecharacter Rcommaaccent {\uchar1{86}}
-\definecharacter rcommaaccent {\uchar1{87}}
-\definecharacter Rcaron {\uchar1{88}}
-\definecharacter rcaron {\uchar1{89}}
-\definecharacter Sacute {\uchar1{90}}
-\definecharacter sacute {\uchar1{91}}
-\definecharacter Scircumflex {\uchar1{92}}
-\definecharacter scircumflex {\uchar1{93}}
-\definecharacter Scedilla {\uchar1{94}}
-\definecharacter scedilla {\uchar1{95}}
-\definecharacter Scaron {\uchar1{96}}
-\definecharacter scaron {\uchar1{97}}
-\definecharacter Tcedilla {\uchar1{98}}
-\definecharacter tcedilla {\uchar1{99}}
-\definecharacter Tcaron {\uchar1{100}}
-\definecharacter tcaron {\uchar1{101}}
-\definecharacter Tstroke {\uchar1{102}}
-\definecharacter tstroke {\uchar1{103}}
-\definecharacter Utilde {\uchar1{104}}
-\definecharacter utilde {\uchar1{105}}
-\definecharacter Umacron {\uchar1{106}}
-\definecharacter umacron {\uchar1{107}}
-\definecharacter Ubreve {\uchar1{108}}
-\definecharacter ubreve {\uchar1{109}}
-\definecharacter Uring {\uchar1{110}}
-\definecharacter uring {\uchar1{111}}
-\definecharacter Uhungarumlaut {\uchar1{112}}
-\definecharacter uhungarumlaut {\uchar1{113}}
-\definecharacter Uogonek {\uchar1{114}}
-\definecharacter uogonek {\uchar1{115}}
-\definecharacter Wcircumflex {\uchar1{116}}
-\definecharacter wcircumflex {\uchar1{117}}
-\definecharacter Ycircumflex {\uchar1{118}}
-\definecharacter ycircumflex {\uchar1{119}}
-\definecharacter Ydiaeresis {\uchar1{120}}
-\definecharacter Zacute {\uchar1{121}}
-\definecharacter zacute {\uchar1{122}}
-\definecharacter Zdotaccent {\uchar1{123}}
-\definecharacter zdotaccent {\uchar1{124}}
-\definecharacter Zcaron {\uchar1{125}}
-\definecharacter zcaron {\uchar1{126}}
-\definecharacter slong {\uchar1{127}}
-
-\stopencoding
-
-\startencoding[uc]
-
-\definecharacter endash {\uchar{32}{19}}
-\definecharacter emdash {\uchar{32}{20}}
-\definecharacter quoteleft {\uchar{32}{24}}
-\definecharacter quoteright {\uchar{32}{25}}
-\definecharacter quotesinglebase {\uchar{32}{26}}
-
-\definecharacter quotedblleft {\uchar{32}{28}}
-\definecharacter quotedblright {\uchar{32}{29}}
-\definecharacter quotedblbase {\uchar{32}{30}}
-
-\definecharacter leftguillemot {\uchar0{171}}
-\definecharacter rightguillemot {\uchar0{187}}
-
-\definecharacter guilsingleleft {\uchar{32}{57}}
-\definecharacter guilsingleright {\uchar{32}{58}}
-
-\stopencoding
-
-%D Adam Lindsay's additions
-
-\startencoding[uc]
-
-\definecharacter exclamdown {\uchar0{161}}
-\definecharacter textcent {\uchar0{162}}
-\definecharacter textsterling {\uchar0{163}}
-\definecharacter textcurrency {\uchar0{164}}
-\definecharacter textyen {\uchar0{165}}
-\definecharacter textbrokenbar {\uchar0{166}}
-\definecharacter sectionmark {\uchar0{167}}
-\definecharacter textdiaresis {\uchar0{168}}
-\definecharacter copyright {\uchar0{169}}
-
-\definecharacter textlognot {\uchar0{172}}
-\definecharacter softhyphen {\uchar0{173}}
-\definecharacter registered {\uchar0{174}}
-\definecharacter textmacron {\uchar0{175}}
-\definecharacter textdegree {\uchar0{176}}
-\definecharacter textpm {\uchar0{177}}
-\definecharacter twosuperior {\uchar0{178}}
-\definecharacter threesuperior {\uchar0{179}}
-\definecharacter textacute {\uchar0{180}}
-\definecharacter textmu {\uchar0{181}}
-\definecharacter paragraphmark {\uchar0{182}}
-\definecharacter periodcentered {\uchar0{183}}
-\definecharacter textcedilla {\uchar0{184}}
-\definecharacter onesuperior {\uchar0{185}}
-
-\definecharacter textgrave {\uchar3{0}}
-\definecharacter textacute {\uchar3{1}}
-\definecharacter textcircumflex {\uchar3{2}}
-\definecharacter texttilde {\uchar3{3}}
-\definecharacter textmacron {\uchar3{4}}
-\definecharacter textbreve {\uchar3{6}}
-\definecharacter textdotaccent {\uchar3{7}}
-\definecharacter textdiaeresis {\uchar3{8}}
-\definecharacter textring {\uchar3{10}}
-\definecharacter texthungarumlaut {\uchar3{11}}
-\definecharacter textcaron {\uchar3{12}}
-\definecharacter textogonek {\uchar3{40}}
-
-\definecharacter percent {\uchar0{37}}
-\definecharacter textunderscore {\uchar0{95}}
-
-\definecharacter ordfeminine {\uchar0{170}}
-\definecharacter ordmasculine {\uchar0{186}}
-\definecharacter onequarter {\uchar0{188}}
-\definecharacter onehalf {\uchar0{189}}
-\definecharacter threequarter {\uchar0{190}}
-\definecharacter questiondown {\uchar0{191}}
-
-\definecharacter textmultiply {\uchar0{215}}
-\definecharacter textdiv {\uchar0{247}}
-
-\definecharacter textminus {\uchar{32}{18}}
-\definecharacter textdag {\uchar{32}{32}}
-\definecharacter textddag {\uchar{32}{33}}
-\definecharacter textbullet {\uchar{32}{34}}
-\definecharacter textellipsis {\uchar{32}{38}}
-\definecharacter perthousand {\uchar{32}{48}}
-
-%new:
-\definecharacter Scommaaccent {\uchar2{24}}
-\definecharacter scommaaccent {\uchar2{25}}
-\definecharacter Tcommaaccent {\uchar2{26}}
-\definecharacter tcommaaccent {\uchar2{27}}
-
-\stopencoding
-
-%D Mojca's and Taco's additions:
-
-\startencoding[uc]
-
-\definecharacter textasciicircum {\uchar{0}{94}} % 5e
-\definecharacter textgrave {\uchar{0}{96}} % 60
-\definecharacter textdiaeresis {\uchar{0}{168}} % a8
-%definecharacter textmacron {\uchar{0}{175}} % af
-%definecharacter textacute {\uchar{0}{180}} % b4
-%definecharacter textcedilla {\uchar{0}{184}} % b8
-\definecharacter textcircumflex {\uchar{2}{198}} % c6
-\definecharacter textcaron {\uchar{2}{199}} % c7
-\definecharacter textbreve {\uchar{2}{216}} % d8
-\definecharacter textdotaccent {\uchar{2}{217}} % d9
-\definecharacter textring {\uchar{2}{218}} % da
-\definecharacter textogonek {\uchar{2}{219}} % db
-\definecharacter texttilde {\uchar{2}{220}} % dc
-\definecharacter texthungarumlaut {\uchar{2}{221}} % dd
-
-\stopencoding
-
-%D Vietnamese:
-
-\startencoding[uc]
-
-\definecharacter Ohorn {\uchar1{160}}
-\definecharacter ohorn {\uchar1{161}}
-\definecharacter Uhorn {\uchar1{175}}
-\definecharacter uhorn {\uchar1{176}}
-
-\definecharacter Yhook {\uchar{30}{246}}
-\definecharacter yhook {\uchar{30}{247}}
-\definecharacter Ydotbelow {\uchar{30}{244}}
-\definecharacter ydotbelow {\uchar{30}{245}}
-\definecharacter Ahook {\uchar{30}{162}}
-\definecharacter Adotbelow {\uchar{30}{160}}
-\definecharacter Acircumflexgrave {\uchar{30}{166}}
-\definecharacter Acircumflexacute {\uchar{30}{164}}
-\definecharacter Acircumflextilde {\uchar{30}{170}}
-\definecharacter Acircumflexhook {\uchar{30}{168}}
-\definecharacter Acircumflexdotbelow {\uchar{30}{172}}
-\definecharacter Abrevegrave {\uchar{30}{176}}
-\definecharacter Abreveacute {\uchar{30}{174}}
-\definecharacter Abrevetilde {\uchar{30}{180}}
-\definecharacter Abrevehook {\uchar{30}{178}}
-\definecharacter Abrevedotbelow {\uchar{30}{182}}
-\definecharacter Ehook {\uchar{30}{186}}
-\definecharacter Edotbelow {\uchar{30}{184}}
-\definecharacter Ecircumflexgrave {\uchar{30}{192}}
-\definecharacter Ecircumflexacute {\uchar{30}{190}}
-\definecharacter Ecircumflextilde {\uchar{30}{196}}
-\definecharacter Ecircumflexhook {\uchar{30}{194}}
-\definecharacter Ecircumflexdotbelow {\uchar{30}{198}}
-\definecharacter Ihook {\uchar{30}{200}}
-\definecharacter ahook {\uchar{30}{163}}
-\definecharacter adotbelow {\uchar{30}{161}}
-\definecharacter acircumflexgrave {\uchar{30}{167}}
-\definecharacter acircumflexacute {\uchar{30}{165}}
-\definecharacter acircumflextilde {\uchar{30}{171}}
-\definecharacter acircumflexhook {\uchar{30}{169}}
-\definecharacter acircumflexdotbelow {\uchar{30}{173}}
-\definecharacter abrevegrave {\uchar{30}{177}}
-\definecharacter abreveacute {\uchar{30}{175}}
-\definecharacter abrevetilde {\uchar{30}{181}}
-\definecharacter abrevehook {\uchar{30}{179}}
-\definecharacter abrevedotbelow {\uchar{30}{183}}
-\definecharacter ehook {\uchar{30}{187}}
-\definecharacter edotbelow {\uchar{30}{185}}
-\definecharacter ecircumflexgrave {\uchar{30}{193}}
-\definecharacter ecircumflexacute {\uchar{30}{191}}
-\definecharacter ecircumflextilde {\uchar{30}{197}}
-\definecharacter ecircumflexhook {\uchar{30}{195}}
-\definecharacter ecircumflexdotbelow {\uchar{30}{199}}
-\definecharacter ihook {\uchar{30}{201}}
-\definecharacter Idotbelow {\uchar{30}{202}}
-\definecharacter Ohook {\uchar{30}{206}}
-\definecharacter Odotbelow {\uchar{30}{204}}
-\definecharacter Ocircumflexgrave {\uchar{30}{210}}
-\definecharacter Ocircumflexacute {\uchar{30}{208}}
-\definecharacter Ocircumflextilde {\uchar{30}{214}}
-\definecharacter Ocircumflexhook {\uchar{30}{212}}
-\definecharacter Ocircumflexdotbelow {\uchar{30}{216}}
-\definecharacter Ohorngrave {\uchar{30}{220}}
-\definecharacter Ohornacute {\uchar{30}{218}}
-\definecharacter Ohorntilde {\uchar{30}{224}}
-\definecharacter Ohornhook {\uchar{30}{222}}
-\definecharacter Ohorndotbelow {\uchar{30}{226}}
-\definecharacter Uhook {\uchar{30}{230}}
-\definecharacter Udotbelow {\uchar{30}{228}}
-\definecharacter Uhorngrave {\uchar{30}{234}}
-\definecharacter Uhornacute {\uchar{30}{232}}
-\definecharacter Uhorntilde {\uchar{30}{238}}
-\definecharacter Uhornhook {\uchar{30}{236}}
-\definecharacter Uhorndotbelow {\uchar{30}{240}}
-\definecharacter Ytilde {\uchar{30}{248}}
-\definecharacter idotbelow {\uchar{30}{203}}
-\definecharacter ohook {\uchar{30}{207}}
-\definecharacter odotbelow {\uchar{30}{205}}
-\definecharacter ocircumflexgrave {\uchar{30}{211}}
-\definecharacter ocircumflexacute {\uchar{30}{209}}
-\definecharacter ocircumflextilde {\uchar{30}{215}}
-\definecharacter ocircumflexhook {\uchar{30}{213}}
-\definecharacter ocircumflexdotbelow {\uchar{30}{217}}
-\definecharacter ohorngrave {\uchar{30}{221}}
-\definecharacter ohornacute {\uchar{30}{219}}
-\definecharacter ohorntilde {\uchar{30}{225}}
-\definecharacter ohornhook {\uchar{30}{223}}
-\definecharacter ohorndotbelow {\uchar{30}{227}}
-\definecharacter uhook {\uchar{30}{231}}
-\definecharacter udotbelow {\uchar{30}{229}}
-\definecharacter uhorngrave {\uchar{30}{235}}
-\definecharacter uhornacute {\uchar{30}{233}}
-\definecharacter uhorntilde {\uchar{30}{239}}
-\definecharacter uhornhook {\uchar{30}{237}}
-\definecharacter uhorndotbelow {\uchar{30}{241}}
-\definecharacter ytilde {\uchar{30}{249}}
-
-\definecharacter Etilde {\uchar{30}{188}}
-\definecharacter etilde {\uchar{30}{189}}
-\definecharacter Ygrave {\uchar{30}{242}}
-\definecharacter ygrave {\uchar{30}{243}}
-
-\stopencoding
-
-% Greek:
-
-\startencoding[uc]
-
-\definecharacter greekAlphatonos {\uchar3{134}}
-\definecharacter greekEpsilontonos {\uchar3{136}}
-\definecharacter greekEtatonos {\uchar3{137}}
-\definecharacter greekIotatonos {\uchar3{138}}
-\definecharacter greekOmicrontonos {\uchar3{140}}
-\definecharacter greekUpsilontonos {\uchar3{142}}
-\definecharacter greekOmegatonos {\uchar3{143}}
-\definecharacter greekiotadialytikatonos {\uchar3{144}}
-\definecharacter greekAlpha {\uchar3{145}}
-\definecharacter greekBeta {\uchar3{146}}
-\definecharacter greekGamma {\uchar3{147}}
-\definecharacter greekDelta {\uchar3{148}}
-\definecharacter greekEpsilon {\uchar3{149}}
-\definecharacter greekZeta {\uchar3{150}}
-\definecharacter greekEta {\uchar3{151}}
-\definecharacter greekTheta {\uchar3{152}}
-\definecharacter greekIota {\uchar3{153}}
-\definecharacter greekKappa {\uchar3{154}}
-\definecharacter greekLambda {\uchar3{155}}
-\definecharacter greekMu {\uchar3{156}}
-\definecharacter greekNu {\uchar3{157}}
-\definecharacter greekXi {\uchar3{158}}
-\definecharacter greekOmicron {\uchar3{159}}
-\definecharacter greekPi {\uchar3{160}}
-\definecharacter greekRho {\uchar3{161}}
-\definecharacter greekSigma {\uchar3{163}}
-\definecharacter greekTau {\uchar3{164}}
-\definecharacter greekUpsilon {\uchar3{165}}
-\definecharacter greekPhi {\uchar3{166}}
-\definecharacter greekChi {\uchar3{167}}
-\definecharacter greekPsi {\uchar3{168}}
-\definecharacter greekOmega {\uchar3{169}}
-
-\definecharacter greekalpha {\uchar3{177}}
-\definecharacter greekbeta {\uchar3{178}}
-\definecharacter greekgamma {\uchar3{179}}
-\definecharacter greekdelta {\uchar3{180}}
-\definecharacter greekepsilon {\uchar3{181}}
-\definecharacter greekzeta {\uchar3{182}}
-\definecharacter greeketa {\uchar3{183}}
-\definecharacter greektheta {\uchar3{184}}
-\definecharacter greekiota {\uchar3{185}}
-\definecharacter greekkappa {\uchar3{186}}
-\definecharacter greeklambda {\uchar3{187}}
-\definecharacter greekmu {\uchar3{188}}
-\definecharacter greeknu {\uchar3{189}}
-\definecharacter greekxi {\uchar3{190}}
-\definecharacter greekomicron {\uchar3{191}}
-\definecharacter greekpi {\uchar3{192}}
-\definecharacter greekrho {\uchar3{193}}
-\definecharacter greekfinalsigma {\uchar3{194}}
-\definecharacter greeksigma {\uchar3{195}}
-\definecharacter greektau {\uchar3{196}}
-\definecharacter greekupsilon {\uchar3{197}}
-\definecharacter greekphi {\uchar3{198}}
-\definecharacter greekchi {\uchar3{199}}
-\definecharacter greekpsi {\uchar3{200}}
-\definecharacter greekomega {\uchar3{201}}
-\definecharacter greekiotadialytika {\uchar3{202}}
-\definecharacter greekupsilondialytika {\uchar3{203}}
-\definecharacter greekomicrontonos {\uchar3{204}}
-\definecharacter greekupsilontonos {\uchar3{205}}
-\definecharacter greekomegatonos {\uchar3{206}}
-
-\definecharacter greekIotadialytika {\uchar3{170}}
-\definecharacter greekUpsilondialytika {\uchar3{171}}
-
-\definecharacter greekalphatonos {\uchar3{172}}
-\definecharacter greekepsilontonos {\uchar3{173}}
-\definecharacter greeketatonos {\uchar3{174}}
-\definecharacter greekiotatonos {\uchar3{175}}
-\definecharacter greekupsilondialytikatonos {\uchar3{176}}
-
-% new:
-
-\definecharacter greekbetaalt {\uchar3{208}}
-\definecharacter greekthetaalt {\uchar3{209}}
-\definecharacter greekphialt {\uchar3{213}}
-\definecharacter greekpialt {\uchar3{214}}
-\definecharacter greekrhoalt {\uchar3{241}}
-\definecharacter greekepsilonalt {\uchar3{245}}
-
-\stopencoding
-
-% Cyrillic:
-
-\startencoding[uc]
-
-\definecharacter cyrillicA {\uchar4{16}}
-\definecharacter cyrillicB {\uchar4{17}}
-\definecharacter cyrillicV {\uchar4{18}}
-\definecharacter cyrillicG {\uchar4{19}}
-\definecharacter cyrillicD {\uchar4{20}}
-\definecharacter cyrillicE {\uchar4{21}}
-\definecharacter cyrillicZH {\uchar4{22}}
-\definecharacter cyrillicZ {\uchar4{23}}
-\definecharacter cyrillicI {\uchar4{24}}
-\definecharacter cyrillicISHRT {\uchar4{25}}
-\definecharacter cyrillicK {\uchar4{26}}
-\definecharacter cyrillicL {\uchar4{27}}
-\definecharacter cyrillicM {\uchar4{28}}
-\definecharacter cyrillicN {\uchar4{29}}
-\definecharacter cyrillicO {\uchar4{30}}
-\definecharacter cyrillicP {\uchar4{31}}
-\definecharacter cyrillicR {\uchar4{32}}
-\definecharacter cyrillicS {\uchar4{33}}
-\definecharacter cyrillicT {\uchar4{34}}
-\definecharacter cyrillicU {\uchar4{35}}
-\definecharacter cyrillicF {\uchar4{36}}
-\definecharacter cyrillicH {\uchar4{37}}
-\definecharacter cyrillicC {\uchar4{38}}
-\definecharacter cyrillicCH {\uchar4{39}}
-\definecharacter cyrillicSH {\uchar4{40}}
-\definecharacter cyrillicSHCH {\uchar4{41}}
-\definecharacter cyrillicHRDSN {\uchar4{42}}
-\definecharacter cyrillicERY {\uchar4{43}}
-\definecharacter cyrillicSFTSN {\uchar4{44}}
-\definecharacter cyrillicEREV {\uchar4{45}}
-\definecharacter cyrillicYU {\uchar4{46}}
-\definecharacter cyrillicYA {\uchar4{47}}
-
-\definecharacter cyrillica {\uchar4{48}}
-\definecharacter cyrillicb {\uchar4{49}}
-\definecharacter cyrillicv {\uchar4{50}}
-\definecharacter cyrillicg {\uchar4{51}}
-\definecharacter cyrillicd {\uchar4{52}}
-\definecharacter cyrillice {\uchar4{53}}
-\definecharacter cyrilliczh {\uchar4{54}}
-\definecharacter cyrillicz {\uchar4{55}}
-\definecharacter cyrillici {\uchar4{56}}
-\definecharacter cyrillicishrt {\uchar4{57}}
-\definecharacter cyrillick {\uchar4{58}}
-\definecharacter cyrillicl {\uchar4{59}}
-\definecharacter cyrillicm {\uchar4{60}}
-\definecharacter cyrillicn {\uchar4{61}}
-\definecharacter cyrillico {\uchar4{62}}
-\definecharacter cyrillicp {\uchar4{63}}
-\definecharacter cyrillicr {\uchar4{64}}
-\definecharacter cyrillics {\uchar4{65}}
-\definecharacter cyrillict {\uchar4{66}}
-\definecharacter cyrillicu {\uchar4{67}}
-\definecharacter cyrillicf {\uchar4{68}}
-\definecharacter cyrillich {\uchar4{69}}
-\definecharacter cyrillicc {\uchar4{70}}
-\definecharacter cyrillicch {\uchar4{71}}
-\definecharacter cyrillicsh {\uchar4{72}}
-\definecharacter cyrillicshch {\uchar4{73}}
-\definecharacter cyrillichrdsn {\uchar4{74}}
-\definecharacter cyrillicery {\uchar4{75}}
-\definecharacter cyrillicsftsn {\uchar4{76}}
-\definecharacter cyrillicerev {\uchar4{77}}
-\definecharacter cyrillicyu {\uchar4{78}}
-\definecharacter cyrillicya {\uchar4{79}}
-
-%D I tried to figure out what these were, but the unicode
-%D tables suggested they were the same as cyrillici, which was
-%D already defined! So, a temporary definition:
-
-% \def\cyrillicII{\cyrillicI}
-% \def\cyrillicii{\cyrillici}
-
-%D a guess derived from looking at enco-cyr suggests that this is
-%D identical to the Roman I/i pair. To me, that sounds like
-%D CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I in the UC tables!
-
-\definecharacter cyrillicII {\uchar4{6}}
-\definecharacter cyrillicii {\uchar4{86}}
-
-%D Guessing that tlir6a corresponds with t2a encoding as advertised,
-%D here are some more, cos I had some spare time: (AL)
-
-\definecharacter cyrillicDJE {\uchar4{2}}
-\definecharacter cyrillicTSHE {\uchar4{11}}
-%definecharacter cyrillicSHHA 132
-%definecharacter cyrillicZHDSC 133
-\definecharacter cyrillicZDSC {\uchar4{152}}
-\definecharacter cyrillicLJE {\uchar4{9}}
-\definecharacter cyrillicYI {\uchar4{7}}
-\definecharacter cyrillicAE {\uchar4{212}}
-%definecharacter cyrillicNDSC 141
-%definecharacter cyrillicNG 142
-\definecharacter cyrillicDZE {\uchar4{5}}
-%definecharacter cyrillicOTLD 144
-\definecharacter cyrillicSDSC {\uchar4{170}}
-\definecharacter cyrillicUSHRT {\uchar4{14}}
-%definecharacter cyrillicY 147
-%definecharacter cyrillicYHCRS 148
-%definecharacter cyrillicHDSC 149
-\definecharacter cyrillicDZHE {\uchar4{15}}
-\definecharacter cyrillicIE {\uchar4{4}}
-\definecharacter cyrillicNJE {\uchar4{10}}
-\definecharacter cyrillicYO {\uchar4{1}}
-
-\definecharacter cyrillicdje {\uchar4{82}}
-\definecharacter cyrillictshe {\uchar4{91}}
-%definecharacter cyrillicshha 164
-%definecharacter cyrilliczhdsc 165
-\definecharacter cyrilliczdsc {\uchar4{153}}
-\definecharacter cyrilliclje {\uchar4{89}}
-\definecharacter cyrillicyi {\uchar4{87}}
-\definecharacter cyrillicae {\uchar4{213}}
-%definecharacter cyrillicndsc 173
-%definecharacter cyrillicng 174
-\definecharacter cyrillicdze {\uchar4{85}}
-%definecharacter cyrillicotld 176
-\definecharacter cyrillicsdsc {\uchar4{171}}
-\definecharacter cyrillicushrt {\uchar4{94}}
-%definecharacter cyrillicy 179
-%definecharacter cyrillicyhcrs 180
-%definecharacter cyrillichdsc 181
-\definecharacter cyrillicdzhe {\uchar4{95}}
-\definecharacter cyrillicie {\uchar4{84}}
-\definecharacter cyrillicnje {\uchar4{90}}
-\definecharacter cyrillicyo {\uchar4{81}}
-
-% is there overlap with the above definitions
-
-\definecharacter cyrillicEgrave {\uchar4{0}}
-\definecharacter cyrillicGJE {\uchar4{3}}
-\definecharacter cyrillicJE {\uchar4{8}}
-\definecharacter cyrillicKJE {\uchar4{12}}
-\definecharacter cyrillicIgrave {\uchar4{13}}
-\definecharacter cyrillicegrave {\uchar4{80}}
-\definecharacter cyrillicgje {\uchar4{83}}
-\definecharacter cyrillicje {\uchar4{88}}
-\definecharacter cyrillickje {\uchar4{92}}
-\definecharacter cyrillicigrave {\uchar4{93}}
-\definecharacter cyrillicOMEGA {\uchar4{96}}
-\definecharacter cyrillicomega {\uchar4{97}}
-\definecharacter cyrillicYAT {\uchar4{98}}
-\definecharacter cyrillicyat {\uchar4{99}}
-\definecharacter cyrillicEiotified {\uchar4{100}}
-\definecharacter cyrilliceiotified {\uchar4{101}}
-\definecharacter cyrillicLITTLEYUS {\uchar4{102}}
-\definecharacter cyrilliclittleyus {\uchar4{103}}
-\definecharacter cyrillicLITTLEYUSiotified {\uchar4{104}}
-\definecharacter cyrilliclittleyusiotified {\uchar4{105}}
-\definecharacter cyrillicBIGYUS {\uchar4{106}}
-\definecharacter cyrillicbigyus {\uchar4{107}}
-\definecharacter cyrillicBIGYUSiotified {\uchar4{108}}
-\definecharacter cyrillicbigyusiotified {\uchar4{109}}
-\definecharacter cyrillicKSI {\uchar4{110}}
-\definecharacter cyrillicksi {\uchar4{111}}
-\definecharacter cyrillicPSI {\uchar4{112}}
-\definecharacter cyrillicpsi {\uchar4{113}}
-\definecharacter cyrillicFITA {\uchar4{114}}
-\definecharacter cyrillicfita {\uchar4{115}}
-\definecharacter cyrillicIZHITSA {\uchar4{116}}
-\definecharacter cyrillicizhitsa {\uchar4{117}}
-\definecharacter cyrillicIZHITSAdoublegrave {\uchar4{118}}
-\definecharacter cyrillicizhitsadoublegrave {\uchar4{119}}
-\definecharacter cyrillicUK {\uchar4{120}}
-\definecharacter cyrillicuk {\uchar4{121}}
-\definecharacter cyrillicOMEGAround {\uchar4{122}}
-\definecharacter cyrillicomegaround {\uchar4{123}}
-\definecharacter cyrillicOMEGAtitlo {\uchar4{124}}
-\definecharacter cyrillicomegatitlo {\uchar4{125}}
-\definecharacter cyrillicOT {\uchar4{126}}
-\definecharacter cyrillicot {\uchar4{127}}
-\definecharacter cyrillicKOPPA {\uchar4{128}}
-\definecharacter cyrillickoppa {\uchar4{129}}
-\definecharacter cyrillicTITLO {\uchar4{131}}
-\definecharacter cyrillicPALATALIZATION {\uchar4{132}}
-\definecharacter cyrillicDASIAPNEUMATA {\uchar4{133}}
-\definecharacter cyrillicPSILIPNEUMATA {\uchar4{134}}
-\definecharacter cyrillicISHRTtail {\uchar4{138}}
-\definecharacter cyrillicishrttail {\uchar4{139}}
-\definecharacter cyrillicSEMISOFT {\uchar4{140}}
-\definecharacter cyrillicsemisoft {\uchar4{141}}
-\definecharacter cyrillicERtick {\uchar4{142}}
-\definecharacter cyrillicertick {\uchar4{143}}
-\definecharacter cyrillicGHEupturn {\uchar4{144}}
-\definecharacter cyrillicgheupturn {\uchar4{145}}
-\definecharacter cyrillicGHEstroke {\uchar4{146}}
-\definecharacter cyrillicghestroke {\uchar4{147}}
-\definecharacter cyrillicGHEmidhook {\uchar4{148}}
-\definecharacter cyrillicghemidhook {\uchar4{149}}
-\definecharacter cyrillicZHEdescender {\uchar4{150}}
-\definecharacter cyrilliczhedescender {\uchar4{151}}
-\definecharacter cyrillicZDSC {\uchar4{152}}
-\definecharacter cyrilliczdsc {\uchar4{153}}
-\definecharacter cyrillicKADC {\uchar4{154}}
-\definecharacter cyrillickadc {\uchar4{155}}
-\definecharacter cyrillicKAvertstroke {\uchar4{156}}
-\definecharacter cyrillickavertstroke {\uchar4{157}}
-\definecharacter cyrillicKAstroke {\uchar4{158}}
-\definecharacter cyrillickastroke {\uchar4{159}}
-\definecharacter cyrillicKAbashkir {\uchar4{160}}
-\definecharacter cyrillickabashkir {\uchar4{161}}
-\definecharacter cyrillicENDC {\uchar4{162}}
-\definecharacter cyrillicendc {\uchar4{163}}
-\definecharacter cyrillicENGHE {\uchar4{164}}
-\definecharacter cyrillicenghe {\uchar4{165}}
-\definecharacter cyrillicPEmidhook {\uchar4{166}}
-\definecharacter cyrillicpemidhook {\uchar4{167}}
-\definecharacter cyrillicHA {\uchar4{168}}
-\definecharacter cyrillicha {\uchar4{169}}
-%definecharacter cyrillicSDSC {\uchar4{170}} % already defined
-%definecharacter cyrilliccdsc {\uchar4{171}} % already defined
-\definecharacter cyrillicTEDC {\uchar4{172}}
-\definecharacter cyrillictedc {\uchar4{173}}
-\definecharacter cyrillicYstr {\uchar4{174}}
-\definecharacter cyrillicystr {\uchar4{175}}
-\definecharacter cyrillicYstrstroke {\uchar4{176}}
-\definecharacter cyrillicystrstroke {\uchar4{177}}
-\definecharacter cyrillicHADC {\uchar4{178}}
-\definecharacter cyrillichadc {\uchar4{179}}
-\definecharacter cyrillicTETSE {\uchar4{180}}
-\definecharacter cyrillictetse {\uchar4{181}}
-\definecharacter cyrillicCHEDC {\uchar4{182}}
-\definecharacter cyrillicchedc {\uchar4{183}}
-\definecharacter cyrillicCHEvertstroke {\uchar4{184}}
-\definecharacter cyrillicchevertstroke {\uchar4{185}}
-\definecharacter cyrillicSHHA {\uchar4{186}}
-\definecharacter cyrillicshha {\uchar4{187}}
-\definecharacter cyrillicCHEabkhasian {\uchar4{188}}
-\definecharacter cyrilliccheabkhasian {\uchar4{189}}
-\definecharacter cyrillicCHEDCabkhasian {\uchar4{190}}
-\definecharacter cyrillicchedcabkhasian {\uchar4{191}}
-\definecharacter cyrillicPALOCHKA {\uchar4{192}}
-\definecharacter cyrillicZHEbreve {\uchar4{193}}
-\definecharacter cyrilliczhebreve {\uchar4{194}}
-\definecharacter cyrillicKAhook {\uchar4{195}}
-\definecharacter cyrillickahook {\uchar4{196}}
-\definecharacter cyrillicELtail {\uchar4{197}}
-\definecharacter cyrilliceltail {\uchar4{198}}
-\definecharacter cyrillicENhook {\uchar4{199}}
-\definecharacter cyrillicenhook {\uchar4{200}}
-\definecharacter cyrillicENtail {\uchar4{201}}
-\definecharacter cyrillicentail {\uchar4{202}}
-\definecharacter cyrillicCHEkhakassian {\uchar4{203}}
-\definecharacter cyrillicchekhakassian {\uchar4{204}}
-\definecharacter cyrillicEMtail {\uchar4{205}}
-\definecharacter cyrillicemtail {\uchar4{206}}
-\definecharacter cyrillicAbreve {\uchar4{208}}
-\definecharacter cyrillicabreve {\uchar4{209}}
-\definecharacter cyrillicAdiaeresis {\uchar4{210}}
-\definecharacter cyrillicadiaeresis {\uchar4{211}}
-%definecharacter cyrillicAE {\uchar4{212}} % already defined
-%definecharacter cyrillicae {\uchar4{213}} % already defined
-\definecharacter cyrillicEbreve {\uchar4{214}}
-\definecharacter cyrillicebreve {\uchar4{215}}
-\definecharacter cyrillicSCHWA {\uchar4{216}}
-\definecharacter cyrillicschwa {\uchar4{217}}
-\definecharacter cyrillicSCHWAdiaeresis {\uchar4{218}}
-\definecharacter cyrillicschwadiaeresis {\uchar4{219}}
-\definecharacter cyrillicZHEdiaeresis {\uchar4{220}}
-\definecharacter cyrilliczhediaeresis {\uchar4{221}}
-\definecharacter cyrillicZEdiaeresis {\uchar4{222}}
-\definecharacter cyrilliczediaeresis {\uchar4{223}}
-\definecharacter cyrillicDZEabkhasian {\uchar4{224}}
-\definecharacter cyrillicdzeabkhasian {\uchar4{225}}
-\definecharacter cyrillicImacron {\uchar4{226}}
-\definecharacter cyrillicimacron {\uchar4{227}}
-\definecharacter cyrillicIdiaeresis {\uchar4{228}}
-\definecharacter cyrillicidiaeresis {\uchar4{229}}
-\definecharacter cyrillicOdiaeresis {\uchar4{230}}
-\definecharacter cyrillicodiaeresis {\uchar4{231}}
-\definecharacter cyrillicObarred {\uchar4{232}}
-\definecharacter cyrillicobarred {\uchar4{233}}
-\definecharacter cyrillicObarreddiaeresis {\uchar4{234}}
-\definecharacter cyrillicobarreddiaeresis {\uchar4{235}}
-\definecharacter cyrillicEdiaeresis {\uchar4{236}}
-\definecharacter cyrillicediaeresis {\uchar4{237}}
-\definecharacter cyrillicUmacron {\uchar4{238}}
-\definecharacter cyrillicumacron {\uchar4{239}}
-\definecharacter cyrillicUdiaeresis {\uchar4{240}}
-\definecharacter cyrillicudiaeresis {\uchar4{241}}
-\definecharacter cyrillicUdoubleacute {\uchar4{242}}
-\definecharacter cyrillicudoubleacute {\uchar4{243}}
-\definecharacter cyrillicCHEdiaeresis {\uchar4{244}}
-\definecharacter cyrillicchediaeresis {\uchar4{245}}
-\definecharacter cyrillicYERUdiaeresis {\uchar4{248}}
-\definecharacter cyrillicyerudiaeresis {\uchar4{249}}
-
-\stopencoding
-
-% Greek Extended
-
-\startencoding[uc]
-
-\definecharacter greekalphapsili {\uchar{31}{0}}
-\definecharacter greekalphadasia {\uchar{31}{1}}
-\definecharacter greekalphapsilivaria {\uchar{31}{2}}
-\definecharacter greekalphadasiavaria {\uchar{31}{3}}
-\definecharacter greekalphapsilitonos {\uchar{31}{4}}
-\definecharacter greekalphadasiatonos {\uchar{31}{5}}
-\definecharacter greekalphapsiliperispomeni {\uchar{31}{6}}
-\definecharacter greekalphadasiaperispomeni {\uchar{31}{7}}
-\definecharacter greekAlphapsili {\uchar{31}{8}}
-\definecharacter greekAlphadasia {\uchar{31}{9}}
-\definecharacter greekAlphapsilivaria {\uchar{31}{10}}
-\definecharacter greekAlphadasiavaria {\uchar{31}{11}}
-\definecharacter greekAlphapsilitonos {\uchar{31}{12}}
-\definecharacter greekAlphadasiatonos {\uchar{31}{13}}
-\definecharacter greekAlphapsiliperispomeni {\uchar{31}{14}}
-\definecharacter greekAlphadasiaperispomeni {\uchar{31}{15}}
-\definecharacter greekepsilonpsili {\uchar{31}{16}} % 1f10
-\definecharacter greekepsilondasia {\uchar{31}{17}}
-\definecharacter greekepsilonpsilivaria {\uchar{31}{18}}
-\definecharacter greekepsilondasiavaria {\uchar{31}{19}}
-\definecharacter greekepsilonpsilitonos {\uchar{31}{20}}
-\definecharacter greekepsilondasiatonos {\uchar{31}{21}}
-\definecharacter greekEpsilonpsili {\uchar{31}{24}}
-\definecharacter greekEpsilondasia {\uchar{31}{25}}
-\definecharacter greekEpsilonpsilivaria {\uchar{31}{26}}
-\definecharacter greekEpsilondasiavaria {\uchar{31}{27}}
-\definecharacter greekEpsilonpsilitonos {\uchar{31}{28}}
-\definecharacter greekEpsilondasiatonos {\uchar{31}{29}}
-\definecharacter greeketapsili {\uchar{31}{32}} % 1f20
-\definecharacter greeketadasia {\uchar{31}{33}}
-\definecharacter greeketapsilivaria {\uchar{31}{34}}
-\definecharacter greeketadasiavaria {\uchar{31}{35}}
-\definecharacter greeketapsilitonos {\uchar{31}{36}}
-\definecharacter greeketadasiatonos {\uchar{31}{37}}
-\definecharacter greeketapsiliperispomeni {\uchar{31}{38}}
-\definecharacter greeketadasiaperispomeni {\uchar{31}{39}}
-\definecharacter greekEtapsili {\uchar{31}{40}}
-\definecharacter greekEtadasia {\uchar{31}{41}}
-\definecharacter greekEtapsilivaria {\uchar{31}{42}}
-\definecharacter greekEtadasiavaria {\uchar{31}{43}}
-\definecharacter greekEtapsilitonos {\uchar{31}{44}}
-\definecharacter greekEtadasiatonos {\uchar{31}{45}}
-\definecharacter greekEtapsiliperispomeni {\uchar{31}{46}}
-\definecharacter greekEtadasiaperispomeni {\uchar{31}{47}}
-\definecharacter greekiotapsili {\uchar{31}{48}} % 1f30
-\definecharacter greekiotadasia {\uchar{31}{49}}
-\definecharacter greekiotapsilivaria {\uchar{31}{50}}
-\definecharacter greekiotadasiavaria {\uchar{31}{51}}
-\definecharacter greekiotapsilitonos {\uchar{31}{52}}
-\definecharacter greekiotadasiatonos {\uchar{31}{53}}
-\definecharacter greekiotapsiliperispomeni {\uchar{31}{54}}
-\definecharacter greekiotadasiaperispomeni {\uchar{31}{55}}
-\definecharacter greekIotapsili {\uchar{31}{56}}
-\definecharacter greekIotadasia {\uchar{31}{57}}
-\definecharacter greekIotapsilivaria {\uchar{31}{58}}
-\definecharacter greekIotadasiavaria {\uchar{31}{59}}
-\definecharacter greekIotapsilitonos {\uchar{31}{60}}
-\definecharacter greekIotadasiatonos {\uchar{31}{61}}
-\definecharacter greekIotapsiliperispomeni {\uchar{31}{62}}
-\definecharacter greekIotadasiaperispomeni {\uchar{31}{63}}
-\definecharacter greekomicronpsili {\uchar{31}{64}} % 1f40
-\definecharacter greekomicrondasia {\uchar{31}{65}}
-\definecharacter greekomicronpsilivaria {\uchar{31}{66}}
-\definecharacter greekomicrondasiavaria {\uchar{31}{67}}
-\definecharacter greekomicronpsilitonos {\uchar{31}{68}}
-\definecharacter greekomicrondasiatonos {\uchar{31}{69}}
-\definecharacter greekOmicronpsili {\uchar{31}{72}}
-\definecharacter greekOmicrondasia {\uchar{31}{73}}
-\definecharacter greekOmicronpsilivaria {\uchar{31}{74}}
-\definecharacter greekOmicrondasiavaria {\uchar{31}{75}}
-\definecharacter greekOmicronpsilitonos {\uchar{31}{76}}
-\definecharacter greekOmicrondasiatonos {\uchar{31}{77}}
-\definecharacter greekupsilonpsili {\uchar{31}{80}} % 1f50
-\definecharacter greekupsilondasia {\uchar{31}{81}}
-\definecharacter greekupsilonpsilivaria {\uchar{31}{82}}
-\definecharacter greekupsilondasiavaria {\uchar{31}{83}}
-\definecharacter greekupsilonpsilitonos {\uchar{31}{84}}
-\definecharacter greekupsilondasiatonos {\uchar{31}{85}}
-\definecharacter greekupsilonpsiliperispomeni {\uchar{31}{86}}
-\definecharacter greekupsilondasiaperispomeni {\uchar{31}{87}}
-\definecharacter greekUpsilondasia {\uchar{31}{89}}
-\definecharacter greekUpsilondasiavaria {\uchar{31}{91}}
-\definecharacter greekUpsilondasiatonos {\uchar{31}{93}}
-\definecharacter greekUpsilondasiaperispomeni {\uchar{31}{95}}
-\definecharacter greekomegapsili {\uchar{31}{96}} % 1f60
-\definecharacter greekomegadasia {\uchar{31}{97}}
-\definecharacter greekomegapsilivaria {\uchar{31}{98}}
-\definecharacter greekomegadasiavaria {\uchar{31}{99}}
-\definecharacter greekomegapsilitonos {\uchar{31}{100}}
-\definecharacter greekomegadasiatonos {\uchar{31}{101}}
-\definecharacter greekomegapsiliperispomeni {\uchar{31}{102}}
-\definecharacter greekomegadasiaperispomeni {\uchar{31}{103}}
-\definecharacter greekOmegapsili {\uchar{31}{104}}
-\definecharacter greekOmegadasia {\uchar{31}{105}}
-\definecharacter greekOmegapsilivaria {\uchar{31}{106}}
-\definecharacter greekOmegadasiavaria {\uchar{31}{107}}
-\definecharacter greekOmegapsilitonos {\uchar{31}{108}}
-\definecharacter greekOmegadasiatonos {\uchar{31}{109}}
-\definecharacter greekOmegapsiliperispomeni {\uchar{31}{110}}
-\definecharacter greekOmegadasiaperispomeni {\uchar{31}{111}}
-\definecharacter greekalphavaria {\uchar{31}{112}} % 1f70
-\definecharacter greekalphaoxia {\uchar{31}{113}}
-\definecharacter greekepsilonvaria {\uchar{31}{114}}
-\definecharacter greekepsilonoxia {\uchar{31}{115}}
-\definecharacter greeketavaria {\uchar{31}{116}}
-\definecharacter greeketaoxia {\uchar{31}{117}}
-\definecharacter greekiotavaria {\uchar{31}{118}}
-\definecharacter greekiotaoxia {\uchar{31}{119}}
-\definecharacter greekomicronvaria {\uchar{31}{120}}
-\definecharacter greekomicronoxia {\uchar{31}{121}}
-\definecharacter greekupsilonvaria {\uchar{31}{122}}
-\definecharacter greekupsilonoxia {\uchar{31}{123}}
-\definecharacter greekomegavaria {\uchar{31}{124}}
-\definecharacter greekomegaoxia {\uchar{31}{125}}
-\definecharacter greekalphaiotasubpsili {\uchar{31}{128}} % 1f80
-\definecharacter greekalphaiotasubdasia {\uchar{31}{129}}
-\definecharacter greekalphaiotasubpsilivaria {\uchar{31}{130}}
-\definecharacter greekalphaiotasubdasiavaria {\uchar{31}{131}}
-\definecharacter greekalphaiotasubpsilitonos {\uchar{31}{132}}
-\definecharacter greekalphaiotasubdasiatonos {\uchar{31}{133}}
-\definecharacter greekalphaiotasubpsiliperispomeni {\uchar{31}{134}}
-\definecharacter greekalphaiotasubdasiaperispomeni {\uchar{31}{135}}
-\definecharacter greekAlphaiotasubpsili {\uchar{31}{136}}
-\definecharacter greekAlphaiotasubdasia {\uchar{31}{137}}
-\definecharacter greekAlphaiotasubpsilivaria {\uchar{31}{138}}
-\definecharacter greekAlphaiotasubdasiavaria {\uchar{31}{139}}
-\definecharacter greekAlphaiotasubpsilitonos {\uchar{31}{140}}
-\definecharacter greekAlphaiotasubdasiatonos {\uchar{31}{141}}
-\definecharacter greekAlphaiotasubpsiliperispomeni {\uchar{31}{142}}
-\definecharacter greekAlphaiotasubdasiaperispomeni {\uchar{31}{143}}
-\definecharacter greeketaiotasubpsili {\uchar{31}{144}} % 1f90
-\definecharacter greeketaiotasubdasia {\uchar{31}{145}}
-\definecharacter greeketaiotasubpsilivaria {\uchar{31}{146}}
-\definecharacter greeketaiotasubdasiavaria {\uchar{31}{147}}
-\definecharacter greeketaiotasubpsilitonos {\uchar{31}{148}}
-\definecharacter greeketaiotasubdasiatonos {\uchar{31}{149}}
-\definecharacter greeketaiotasubpsiliperispomeni {\uchar{31}{150}}
-\definecharacter greeketaiotasubdasiaperispomeni {\uchar{31}{151}}
-\definecharacter greekEtaiotasubpsili {\uchar{31}{152}}
-\definecharacter greekEtaiotasubdasia {\uchar{31}{153}}
-\definecharacter greekEtaiotasubpsilivaria {\uchar{31}{154}}
-\definecharacter greekEtaiotasubdasiavaria {\uchar{31}{155}}
-\definecharacter greekEtaiotasubpsilitonos {\uchar{31}{156}}
-\definecharacter greekEtaiotasubdasiatonos {\uchar{31}{157}}
-\definecharacter greekEtaiotasubpsiliperispomeni {\uchar{31}{158}}
-\definecharacter greekEtaiotasubdasiaperispomeni {\uchar{31}{159}}
-\definecharacter greekomegaiotasubpsili {\uchar{31}{160}} % 1fa0
-\definecharacter greekomegaiotasubdasia {\uchar{31}{161}}
-\definecharacter greekomegaiotasubpsilivaria {\uchar{31}{162}}
-\definecharacter greekomegaiotasubdasiavaria {\uchar{31}{163}}
-\definecharacter greekomegaiotasubpsilitonos {\uchar{31}{164}}
-\definecharacter greekomegaiotasubdasiatonos {\uchar{31}{165}}
-\definecharacter greekomegaiotasubpsiliperispomeni {\uchar{31}{166}}
-\definecharacter greekomegaiotasubdasiaperispomeni {\uchar{31}{167}}
-\definecharacter greekOmegaiotasubpsili {\uchar{31}{168}}
-\definecharacter greekOmegaiotasubdasia {\uchar{31}{169}}
-\definecharacter greekOmegaiotasubpsilivaria {\uchar{31}{170}}
-\definecharacter greekOmegaiotasubdasiavaria {\uchar{31}{171}}
-\definecharacter greekOmegaiotasubpsilitonos {\uchar{31}{172}}
-\definecharacter greekOmegaiotasubdasiatonos {\uchar{31}{173}}
-\definecharacter greekOmegaiotasubpsiliperispomeni {\uchar{31}{174}}
-\definecharacter greekOmegaiotasubdasiaperispomeni {\uchar{31}{175}}
-\definecharacter greekalphavrachy {\uchar{31}{176}} % 1fb0
-\definecharacter greekalphamacron {\uchar{31}{177}}
-\definecharacter greekalphaiotasubvaria {\uchar{31}{178}}
-\definecharacter greekalphaiotasub {\uchar{31}{179}}
-\definecharacter greekalphaiotasubtonos {\uchar{31}{180}}
-\definecharacter greekalphaperispomeni {\uchar{31}{182}}
-\definecharacter greekalphaiotasubperispomeni {\uchar{31}{183}}
-\definecharacter greekAlphavrachy {\uchar{31}{184}}
-\definecharacter greekAlphamacron {\uchar{31}{185}}
-\definecharacter greekAlphavaria {\uchar{31}{186}}
-\definecharacter greekAlphatonos {\uchar{31}{187}}
-\definecharacter greekAlphaiotasub {\uchar{31}{188}}
-\definecharacter greekCoronis {\uchar{31}{189}}
-\definecharacter greekprosgegrammeni {\uchar{31}{190}}
-\definecharacter greekpsili {\uchar{31}{191}}
-\definecharacter greekperispomeni {\uchar{31}{192}} % 1fc0
-\definecharacter greekdialytikaperispomeni {\uchar{31}{193}}
-\definecharacter greeketaiotasubvaria {\uchar{31}{194}}
-\definecharacter greeketaiotasub {\uchar{31}{195}}
-\definecharacter greeketaiotasubtonos {\uchar{31}{196}}
-\definecharacter greeketaperispomeni {\uchar{31}{198}}
-\definecharacter greeketaiotasubperispomeni {\uchar{31}{199}}
-\definecharacter greekEpsilonvaria {\uchar{31}{200}}
-\definecharacter greekEpsilontonos {\uchar{31}{201}}
-\definecharacter greekEtavaria {\uchar{31}{202}}
-\definecharacter greekEtatonos {\uchar{31}{203}}
-\definecharacter greekEtaiotasub {\uchar{31}{204}}
-\definecharacter greekpsilivaria {\uchar{31}{205}}
-\definecharacter greekpsilitonos {\uchar{31}{206}}
-\definecharacter greekpsiliperispomeni {\uchar{31}{207}}
-\definecharacter greekiotavrachy {\uchar{31}{208}} % 1fd0
-\definecharacter greekiotamacron {\uchar{31}{209}}
-\definecharacter greekiotadialytikavaria {\uchar{31}{210}}
-\definecharacter greekiotadialytikatonos {\uchar{31}{211}}
-\definecharacter greekiotaperispomeni {\uchar{31}{214}}
-\definecharacter greekiotadialytikaperispomeni {\uchar{31}{215}}
-\definecharacter greekIotavrachy {\uchar{31}{216}}
-\definecharacter greekIotamacron {\uchar{31}{217}}
-\definecharacter greekIotavaria {\uchar{31}{218}}
-\definecharacter greekIotatonos {\uchar{31}{219}}
-\definecharacter greekdasiavaria {\uchar{31}{221}}
-\definecharacter greekdasiatonos {\uchar{31}{222}}
-\definecharacter greekdasiaperispomeni {\uchar{31}{223}}
-\definecharacter greekupsilonvrachy {\uchar{31}{224}} % 1fe0
-\definecharacter greekupsilonmacron {\uchar{31}{225}}
-\definecharacter greekupsilondialytikavaria {\uchar{31}{226}}
-\definecharacter greekupsilondialytikatonos {\uchar{31}{227}}
-\definecharacter greekrhopsili {\uchar{31}{228}}
-\definecharacter greekrhodasia {\uchar{31}{229}}
-\definecharacter greekupsilonperispomeni {\uchar{31}{230}}
-\definecharacter greekupsilondialytikaperispomeni {\uchar{31}{231}}
-\definecharacter greekUpsilonvrachy {\uchar{31}{232}}
-\definecharacter greekUpsilonmacron {\uchar{31}{233}}
-\definecharacter greekUpsilonvaria {\uchar{31}{234}}
-\definecharacter greekUpsilontonos {\uchar{31}{235}}
-\definecharacter greekRhodasia {\uchar{31}{236}}
-\definecharacter greekdialytikavaria {\uchar{31}{237}}
-\definecharacter greekdialytikatonos {\uchar{31}{238}}
-\definecharacter greekvaria {\uchar{31}{239}}
-\definecharacter greekomegaiotasubvaria {\uchar{31}{242}}
-\definecharacter greekomegaiotasub {\uchar{31}{243}}
-\definecharacter greekomegaiotasubtonos {\uchar{31}{244}}
-\definecharacter greekomegaperispomeni {\uchar{31}{246}}
-\definecharacter greekomegaiotasubperispomeni {\uchar{31}{247}}
-\definecharacter greekOmicronvaria {\uchar{31}{248}}
-\definecharacter greekOmicrontonos {\uchar{31}{249}}
-\definecharacter greekOmegavaria {\uchar{31}{250}}
-\definecharacter greekOmegatonos {\uchar{31}{251}}
-\definecharacter greekOmegaiotasub {\uchar{31}{252}}
-\definecharacter greekoxia {\uchar{31}{253}}
-\definecharacter greekdasia {\uchar{31}{254}}
-\definecharacter greeksigmalunate {\uchar3{242}}
-\definecharacter greekSigmalunate {\uchar3{249}}
-\definecharacter greeksampi {\uchar3{225}}
-\definecharacter greekdigamma {\uchar3{221}}
-\definecharacter greekstigma {\uchar3{219}}
-\definecharacter greeknumkoppa {\uchar3{223}}
-\definecharacter greekkoppa {\uchar3{217}}
-\definecharacter greekupsilondiaeresis {\uchar3{203}}
-
-\stopencoding
-
-% Hebrew:
-
-\startencoding[uc]
-
-\definecharacter hebrewAlef {\uchar5{208}} % 05D0
-\definecharacter hebrewBet {\uchar5{209}}
-\definecharacter hebrewGimel {\uchar5{210}}
-\definecharacter hebrewDalet {\uchar5{211}}
-\definecharacter hebrewHe {\uchar5{212}}
-\definecharacter hebrewVav {\uchar5{213}}
-\definecharacter hebrewZayin {\uchar5{214}}
-\definecharacter hebrewHet {\uchar5{215}}
-\definecharacter hebrewTet {\uchar5{216}}
-\definecharacter hebrewYod {\uchar5{217}}
-\definecharacter hebrewKaffinal {\uchar5{218}}
-\definecharacter hebrewKaf {\uchar5{219}}
-\definecharacter hebrewLamed {\uchar5{220}}
-\definecharacter hebrewMemfinal {\uchar5{221}}
-\definecharacter hebrewMem {\uchar5{222}}
-\definecharacter hebrewNunfinal {\uchar5{223}}
-\definecharacter hebrewNun {\uchar5{224}}
-\definecharacter hebrewSamekh {\uchar5{225}}
-\definecharacter hebrewAyin {\uchar5{226}}
-\definecharacter hebrewPefinal {\uchar5{227}}
-\definecharacter hebrewPe {\uchar5{228}}
-\definecharacter hebrewTsadifinal {\uchar5{229}}
-\definecharacter hebrewTsadi {\uchar5{230}}
-\definecharacter hebrewQof {\uchar5{231}}
-\definecharacter hebrewResh {\uchar5{232}}
-\definecharacter hebrewShin {\uchar5{233}}
-\definecharacter hebrewTav {\uchar5{234}} % 05EA
-
-\stopencoding
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-vis.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-vis.mkii
deleted file mode 100644
index 3c1fd776566..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-vis.mkii
+++ /dev/null
@@ -1,3 +0,0 @@
-% temporary module, needed for downward compatibility
-
-\input regi-vis.tex \enableregime[viscii] \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-vna.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-vna.mkii
deleted file mode 100644
index 42fee43417b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-vna.mkii
+++ /dev/null
@@ -1,145 +0,0 @@
-%D \module
-%D [ file=enco-vna,
-%D version=1999.12.12,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Vietnamese Accents,
-%D author=Han The Thanh & Adam Lindsay & Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module is originally derived from the some files Han The Thanh
-%D prepared for \LATEX. The dual accent support is still preliminary,
-%D but works ok. It's now adapted to named glyphs, and is activated by
-%D \type {\useencoding[thisfile]}.
-
-%D This was apparently buggy from the start: there is nothing to
-%D disambiguate \type {\ohorn} from \type {\ohook}. Both are entered
-%D with \type {\h{o}} (AL)!
-
-%D Once stable, this code will move to \type {enco-acc.tex}.
-
-\startencoding[default]
-
-\defineaccent h A {\Ahook}
-\defineaccent d A {\Adotbelow}
-\defineaccent ` ^A {\Acircumflexgrave}
-\defineaccent ' ^A {\Acircumflexacute}
-\defineaccent ~ ^A {\Acircumflextilde}
-\defineaccent h ^A {\Acircumflexhook}
-\defineaccent d ^A {\Acircumflexdotbelow}
-\defineaccent ` uA {\Abrevegrave}
-\defineaccent ' uA {\Abreveacute}
-\defineaccent ~ uA {\Abrevetilde}
-\defineaccent h uA {\Abrevehook}
-\defineaccent d uA {\Abrevedotbelow}
-\defineaccent h E {\Ehook}
-\defineaccent d E {\Edotbelow}
-\defineaccent ` ^E {\Ecircumflexgrave}
-\defineaccent ' ^E {\Ecircumflexacute}
-\defineaccent ~ ^E {\Ecircumflextilde}
-\defineaccent h ^E {\Ecircumflexhook}
-\defineaccent d ^E {\Ecircumflexdotbelow}
-\defineaccent h I {\Ihook}
-\defineaccent d I {\Idotbelow}
-\defineaccent h O {\Ohook}
-\defineaccent d O {\Odotbelow}
-\defineaccent ` ^O {\Ocircumflexgrave}
-\defineaccent ' ^O {\Ocircumflexacute}
-\defineaccent ~ ^O {\Ocircumflextilde}
-\defineaccent h ^O {\Ocircumflexhook}
-\defineaccent d ^O {\Ocircumflexdotbelow}
-%defineaccent h O {\Ohorn} % !!! conflict with \Ohook!
-\defineaccent ` hO {\Ohorngrave}
-\defineaccent ` {\Ohorn} {\Ohorngrave}
-\defineaccent ' hO {\Ohornacute}
-\defineaccent ' {\Ohorn} {\Ohornacute}
-\defineaccent ~ hO {\Ohorntilde}
-\defineaccent ~ {\Ohorn} {\Ohorntilde}
-\defineaccent h hO {\Ohornhook}
-\defineaccent h {\Ohorn} {\Ohornhook}
-\defineaccent d hO {\Ohorndotbelow}
-\defineaccent d {\Ohorn} {\Ohorndotbelow}
-\defineaccent h U {\Uhook}
-\defineaccent d U {\Udotbelow}
-%defineaccent h U {\Uhorn} % !!! conflict with \Uhook! honestly, people!
-\defineaccent ` hU {\Uhorngrave}
-\defineaccent ` {\Uhorn} {\Uhorngrave}
-\defineaccent ' hU {\Uhornacute}
-\defineaccent ' {\Uhorn} {\Uhornacute}
-\defineaccent ~ hU {\Uhorntilde}
-\defineaccent ~ {\Uhorn} {\Uhorntilde}
-\defineaccent h hU {\Uhornhook}
-\defineaccent h {\Uhorn} {\Uhornhook}
-\defineaccent d hU {\Uhorndotbelow}
-\defineaccent d {\Uhorn} {\Uhorndotbelow}
-\defineaccent ` Y {\Ygrave}
-\defineaccent ' Y {\Yacute}
-\defineaccent ~ Y {\Ytilde}
-\defineaccent h Y {\Yhook}
-\defineaccent d Y {\Ydotbelow}
-\defineaccent h a {\ahook}
-\defineaccent d a {\adotbelow}
-\defineaccent ` ^a {\acircumflexgrave}
-\defineaccent ' ^a {\acircumflexacute}
-\defineaccent ~ ^a {\acircumflextilde}
-\defineaccent h ^a {\acircumflexhook}
-\defineaccent d ^a {\acircumflexdotbelow}
-\defineaccent ` ua {\abrevegrave}
-\defineaccent ' ua {\abreveacute}
-\defineaccent ~ ua {\abrevetilde}
-\defineaccent h ua {\abrevehook}
-\defineaccent d ua {\abrevedotbelow}
-\defineaccent h e {\ehook}
-\defineaccent d e {\edotbelow}
-\defineaccent ` ^e {\ecircumflexgrave}
-\defineaccent ' ^e {\ecircumflexacute}
-\defineaccent ~ ^e {\ecircumflextilde}
-\defineaccent h ^e {\ecircumflexhook}
-\defineaccent d ^e {\ecircumflexdotbelow}
-\defineaccent h i {\ihook}
-\defineaccent d i {\idotbelow}
-\defineaccent h o {\ohook}
-\defineaccent d o {\odotbelow}
-\defineaccent ^ o {\ocircumflex}
-\defineaccent ` ^o {\ocircumflexgrave}
-\defineaccent ' ^o {\ocircumflexacute}
-\defineaccent ~ ^o {\ocircumflextilde}
-\defineaccent h ^o {\ocircumflexhook}
-\defineaccent d ^o {\ocircumflexdotbelow}
-%defineaccent h o {\ohorn} % !!!
-\defineaccent ` ho {\ohorngrave}
-\defineaccent ' ho {\ohornacute}
-\defineaccent ~ ho {\ohorntilde}
-\defineaccent h ho {\ohornhook}
-\defineaccent d ho {\ohorndotbelow}
-\defineaccent ` {\ohorn} {\ohorngrave}
-\defineaccent ' {\ohorn} {\ohornacute}
-\defineaccent ~ {\ohorn} {\ohorntilde}
-\defineaccent h {\ohorn} {\ohornhook}
-\defineaccent d {\ohorn} {\ohorndotbelow}
-\defineaccent h u {\uhook}
-\defineaccent d u {\udotbelow}
-%defineaccent h u {\uhorn} % !!!
-\defineaccent ` hu {\uhorngrave}
-\defineaccent ' hu {\uhornacute}
-\defineaccent ~ hu {\uhorntilde}
-\defineaccent h hu {\uhornhook}
-\defineaccent d hu {\uhorndotbelow}
-\defineaccent ` {\uhorn} {\uhorngrave}
-\defineaccent ' {\uhorn} {\uhornacute}
-\defineaccent ~ {\uhorn} {\uhorntilde}
-\defineaccent h {\uhorn} {\uhornhook}
-\defineaccent d {\uhorn} {\uhorndotbelow}
-\defineaccent ` y {\ygrave}
-\defineaccent ' y {\yacute}
-\defineaccent ~ y {\ytilde}
-\defineaccent h y {\yhook}
-\defineaccent d y {\ydotbelow}
-
-\stopencoding
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-win.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-win.mkii
deleted file mode 100644
index 826371d8a68..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-win.mkii
+++ /dev/null
@@ -1,7 +0,0 @@
-% temporary module, needed for downward compatibility
-
-%\input regi-win.tex
-
-\enableregime[windows]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/enco-x5.mkii b/Master/texmf-dist/tex/context/base/mkii/enco-x5.mkii
deleted file mode 100644
index cde394e294c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/enco-x5.mkii
+++ /dev/null
@@ -1,222 +0,0 @@
-%D \module
-%D [ file=enco-x5,
-%D version=1999.12.12,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Vietnamese Encoding,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module is derived from the some files Han The Thanh
-%D prepared for \LATEX. The dual accent support is still
-%D preliminary, but works ok.
-
-\startencoding[x5]
-
-\definecharacter textgrave 0
-\definecharacter textacute 1
-\definecharacter textcircumflex 2
-\definecharacter texttilde 3
-\definecharacter textdiaeresis 4
-\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 dotlessi 25
-\definecharacter DJ 30
-\definecharacter dj 31
-
-\defineaccent ` A 128
-\defineaccent ' A 129
-\defineaccent ~ A 130
-\defineaccent h A 131
-\defineaccent d A 132
-\defineaccent ^ A 133
-\defineaccent ` ^A 134
-\defineaccent ' ^A 135
-\defineaccent ~ ^A 136
-\defineaccent h ^A 137
-\defineaccent d ^A 138
-\defineaccent u A 139
-\defineaccent ` uA 140
-\defineaccent ' uA 141
-\defineaccent ~ uA 142
-\defineaccent h uA 143
-\defineaccent d uA 144
-\defineaccent ` E 145
-\defineaccent ' E 146
-\defineaccent ~ E 147
-\defineaccent h E 148
-\defineaccent d E 149
-\defineaccent ^ E 150
-\defineaccent ` ^E 151
-\defineaccent ' ^E 152
-\defineaccent ~ ^E 153
-\defineaccent h ^E 154
-\defineaccent d ^E 155
-\defineaccent ` I 156
-\defineaccent ' I 157
-\defineaccent ~ I 158
-\defineaccent h I 159
-\defineaccent d I 192
-\defineaccent ` O 193
-\defineaccent ' O 194
-\defineaccent ~ O 195
-\defineaccent h O 196
-\defineaccent d O 197
-\defineaccent ^ O 198
-\defineaccent ` ^O 199
-\defineaccent ' ^O 200
-\defineaccent ~ ^O 201
-\defineaccent h ^O 202
-\defineaccent d ^O 203
-\defineaccent h O 204
-\defineaccent ` hO 205
-\defineaccent ' hO 206
-\defineaccent ~ hO 207
-\defineaccent h hO 208
-\defineaccent d hO 209
-\defineaccent ` U 210
-\defineaccent ' U 211
-\defineaccent ~ U 212
-\defineaccent h U 213
-\defineaccent d U 214
-\defineaccent h U 215
-\defineaccent ` hU 216
-\defineaccent ' hU 217
-\defineaccent ~ hU 218
-\defineaccent h hU 219
-\defineaccent d hU 220
-\defineaccent ` Y 221
-\defineaccent ' Y 222
-\defineaccent ~ Y 223
-\defineaccent h Y 26
-\defineaccent d Y 28
-\defineaccent ` a 160
-\defineaccent ' a 161
-\defineaccent ~ a 162
-\defineaccent h a 163
-\defineaccent d a 164
-\defineaccent ^ a 165
-\defineaccent ` ^a 166
-\defineaccent ' ^a 167
-\defineaccent ~ ^a 168
-\defineaccent h ^a 169
-\defineaccent d ^a 170
-\defineaccent u a 171
-\defineaccent ` ua 172
-\defineaccent ' ua 173
-\defineaccent ~ ua 174
-\defineaccent h ua 175
-\defineaccent d ua 176
-\defineaccent ` e 177
-\defineaccent ' e 178
-\defineaccent ~ e 179
-\defineaccent h e 180
-\defineaccent d e 181
-\defineaccent ^ e 182
-\defineaccent ` ^e 183
-\defineaccent ' ^e 184
-\defineaccent ~ ^e 185
-\defineaccent h ^e 186
-\defineaccent d ^e 187
-\defineaccent ` i 188
-\defineaccent ' i 189
-\defineaccent ~ i 190
-\defineaccent h i 191
-\defineaccent d i 224
-\defineaccent ` o 225
-\defineaccent ' o 226
-\defineaccent ~ o 227
-\defineaccent h o 228
-\defineaccent d o 229
-\defineaccent ^ o 230
-\defineaccent ` ^o 231
-\defineaccent ' ^o 232
-\defineaccent ~ ^o 233
-\defineaccent h ^o 234
-\defineaccent d ^o 235
-\defineaccent h o 236
-\defineaccent ` ho 237
-\defineaccent ' ho 238
-\defineaccent ~ ho 239
-\defineaccent h ho 240
-\defineaccent d ho 241
-\defineaccent ` u 242
-\defineaccent ' u 243
-\defineaccent ~ u 244
-\defineaccent h u 245
-\defineaccent d u 246
-\defineaccent h u 247
-\defineaccent ` hu 248
-\defineaccent ' hu 249
-\defineaccent ~ hu 250
-\defineaccent h hu 251
-\defineaccent d hu 252
-\defineaccent ` y 253
-\defineaccent ' y 254
-\defineaccent ~ y 255
-\defineaccent h y 27
-\defineaccent d y 29
-
-\stopencoding
-
-\endinput
-
-% \startencoding [x5]
-%
-% \definecharacter aa {\xfiveencodedaa}
-% \definecharacter AA {\xfiveencodedAA}
-%
-% \stopencoding
-%
-% \unprotect
-%
-% \def\xfiveencodedaa%
-% {\accent23a}
-%
-% \def\xfiveencodedAA%
-% {\leavevmode
-% \setbox\zerocount\hbox{h}%
-% \dimen@\ht\zerocount
-% \advance\dimen@ -1ex
-% \rlap{\raise.67\dimen@\hbox{\char23}}A}
-%
-% \protect
-%
-% \quotesinglbase 13
-% \guilsinglleft 14
-% \guilsinglright 15
-% \textquotedblleft 16
-% \textquotedblright 17
-% \quotedblbase 18
-% \guillemotleft 19
-% \guillemotright 20
-% \textendash 21
-% \textemdash 22
-% \textcompwordmark 23
-% \textperthousand \% \char 24
-% \textpertenthousand \%\char 24\char 24
-% \textvisiblespace 32
-% \textquotedbl `\"
-% \textdollar `\$
-% \textquoteright `\'
-% \textless `\<
-% \textgreater `\>
-% \textbackslash `\
-% \textasciicircum `\^
-% \textunderscore 95
-% \textquoteleft `\`
-% \textbraceleft `\{
-% \textbar `\|
-% \textbraceright `\}
-% \textasciitilde `\~
diff --git a/Master/texmf-dist/tex/context/base/mkii/filt-bas.mkii b/Master/texmf-dist/tex/context/base/mkii/filt-bas.mkii
deleted file mode 100644
index fedeb694b19..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/filt-bas.mkii
+++ /dev/null
@@ -1,63 +0,0 @@
-%D \module
-%D [ file=filt-bas,
-%D version=2000.09.19,
-%D title=\CONTEXT\ Filter Macros,
-%D subtitle=A Base Collection,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% BEWARE: THIS IS A TEST MODULE, NAMES MAY CHANGE!
-
-\definefiltersynonym [utf8 to unicode16] [inutf8]
-
-\definefiltersynonym [persian fix] [FarsiToArabic]
-\definefiltersynonym [arabic analysis] [uni2cuni]
-\definefiltersynonym [arabic glyphs] [cuni2oar]
-
-\definefiltersequence
- [farsi]
- [utf8 to unicode16,
- persian fix,
- arabic analysis,
- arabic glyphs]
-
-\definefiltersynonym [basic context analysis step1] [bcaa-1]
-\definefiltersynonym [basic context analysis step2] [bcaa-2]
-\definefiltersynonym [basic context analysis step3] [bcaa-3]
-\definefiltersynonym [farsi processing for uomarab] [uomarab-farsi]
-
-\definefiltersynonym [basic presentation forms to sf] [bpftosf]
-
-\definefiltersynonym [omega persian fix] [FarsiToArabic]
-\definefiltersynonym [omega arabic analysis] [uni2cuni]
-\definefiltersynonym [omega arabic glyphs] [cuni2oar]
-
-\definefiltersequence
- [farsi-1]
- [utf8 to unicode16,
- omega persian fix,
- omega arabic analysis,
- omega arabic glyphs]
-
-\definefiltersequence
- [farsi-2]
- [utf8 to unicode16,
- basic context analysis step1,
- basic context analysis step2,
- basic context analysis step3,
- farsi processing for uomarab]
-
-\definefiltersequence
- [farsi-3]
- [utf8 to unicode16,
- basic context analysis step1,
- basic context analysis step2,
- basic context analysis step3,
- basic presentation forms to sf]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/filt-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/filt-ini.mkii
deleted file mode 100644
index f2f59349a51..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/filt-ini.mkii
+++ /dev/null
@@ -1,121 +0,0 @@
-%D \module
-%D [ file=filt-ini,
-%D version=2000.09.19,
-%D title=\CONTEXT\ Filter Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Filter Macros / Initialization}
-
-% \ifx\OmegaVersion\undefined
-
-% \let\definefiltersynonym \gobbledoubleempty
-% \let\definefiltersequence \gobbledoubleempty
-% \unexpanded\def\usefiltersequence {\gobblesingleempty}
-% \let\usefilter \gobblesingleempty
-% \let\truefiltername \gobbleoneargument
-
-% \expandafter \endinput
-% \fi
-
-\unprotect
-
-%D The real work starts here.
-
-% We need the {\??ot::#1} check because otherwise aleph will crash. Taco's
-% torture test:
-%
-% \ocp\ArabicContext = contextual
-%
-% \dorecurse {5000} {
-% \message{[\recurselevel]}
-% \ocplist\Arabic=\addbeforeocplist 1 \ArabicContext \nullocplist
-% }
-
-%D \macros
-%D {definefiltersynonym}
-
-\def\definefiltersynonym
- {\dodoubleargument\dodefinefiltersynonym}
-
-\def\dodefinefiltersynonym[#1][#2]%
- {\setvalue{\??or#1}{#2}}
-
-%D \macros
-%D {truefiltername}
-
-\def\truefiltername#1%
- {\ifundefined{\??or#1}#1\else\truefiltername{\getvalue{\??or#1}}\fi}
-
-%D \macros
-%D {definefiltersequence}
-
-\def\definefiltersequence
- {\dodoubleargument\dodefinefiltersequence}
-
-% \def\dodefinefiltersequence[#1][#2]%
-% {\setvalue{\??ot#1}{#2}}
-
-\def\dodefinefiltersequence[#1][#2]%
- {\setxvalue{\??ot#1}{#2}%
- \letgvalue{\??ot::#1}\v!stop}
-
-%D \macros
-%D {usefiltersequence}
-%D
-
-\def\magicocpnumber{1}
-
-% one can do:
-%
-% \definefiltersequence
-% [farsi]
-% [utf8 to unicode16=>5,
-% persian fix,
-% arabic analysis=>3,
-% arabic glyphs]
-%
-% so, => is used to signal a priority
-
-\def\dodousefiltersequence#1%
- {\expandafter\ocp\csname\??or:#1\endcsname=\truefiltername{#1}\relax
- \splitstring#1\at=>\to\!!stringa\and\!!stringb
- \edef\!!stringb{\number\ifx\!!stringb\empty\magicocpnumber\else\!!stringb\fi}%
- \appendetoks
- \noexpand\addbeforeocplist
- \!!stringb\space
- \expandafter\noexpand\csname\??or:\!!stringa\endcsname
- \to \scratchtoks}
-
-\unexpanded\def\usefiltersequence[#1]%
- {\doifdefined{\??ot::#1}%
- {\doifvalue{\??ot::#1}\v!stop
- {\scratchtoks\emptytoks
- \expanded{\processcommalist[\getvalue{\??ot#1}]}\dodousefiltersequence
- \expanded{\global\ocplist\csname\??ot:#1\endcsname=\the\scratchtoks}\nullocplist
- \letgvalue{\??ot::#1}\v!start}%
- \expanded{\pushocplist\csname\??ot:#1\endcsname}\relax}}
-
-%D \macros
-%D {usefilter}
-
-\def\dousefilter#1%
- {\doifundefined{\c!file\f!filterprefix#1}%
- {\letvalue{\c!file\f!filterprefix#1}\empty
- \makeshortfilename[\truefilename{\f!filterprefix#1}]%
- \startreadingfile
- \readsysfile{\shortfilename.mkii}
- {\showmessage\m!filters1{#1}}
- {\showmessage\m!filters2{#1}}%
- \stopreadingfile}}
-
-\def\usefilter[#1]%
- {\processcommalist[#1]\dousefilter}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/font-arb.mkii b/Master/texmf-dist/tex/context/base/mkii/font-arb.mkii
deleted file mode 100644
index 3ec0395f32a..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/font-arb.mkii
+++ /dev/null
@@ -1,5 +0,0 @@
-\unprotected \writestatus\m!systems{load ARABTEX as a module instead}
-
-\usemodule[arabtex]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/font-bfm.mkii b/Master/texmf-dist/tex/context/base/mkii/font-bfm.mkii
deleted file mode 100644
index 0a25ec7422f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/font-bfm.mkii
+++ /dev/null
@@ -1,196 +0,0 @@
-%D \module
-%D [ file=font-bfm,
-%D version=2003.11.25,
-%D title=\CONTEXT\ Font Macros,
-%D subtitle=Mixed Normal and Bold Math,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Font Macros / Mixed Bold Math Support}
-
-%D The following example demonstrates how to use normal, bold, and mixed
-%D normal|/|bold math. Since not everyone has the Lucida on his|/|her
-%D machine we don't show the result.
-%D
-%D \starttyping
-%D \setupformulas
-%D [method=bold]
-%D
-%D \definetypeface [mainface] [rm] [serif] [lucida] [default] [encoding=texnansi]
-%D \definetypeface [mainface] [tt] [mono] [lucida] [default] [encoding=texnansi]
-%D \definetypeface [mainface] [ss] [sans] [lucida] [default] [encoding=texnansi]
-%D \definetypeface [mainface] [mm] [math] [lucida] [default] [encoding=texnansi]
-%D \definetypeface [mainface] [mm] [bfmath] [lucida] [default] [encoding=texnansi]
-%D
-%D \definetypeface [boldmath] [rm] [serif] [lucida] [default] [encoding=texnansi]
-%D \definetypeface [boldmath] [tt] [mono] [lucida] [default] [encoding=texnansi]
-%D \definetypeface [boldmath] [ss] [sans] [lucida] [default] [encoding=texnansi]
-%D \definetypeface [boldmath] [mm] [boldmath] [lucida] [default] [encoding=texnansi]
-%D
-%D \switchtobodyfont[mainface]
-%D
-%D \startlines
-%D $\mainface x=10 \Gamma \Delta \alpha \delta \zeta$
-%D $\boldmath x=10 \Gamma \Delta \alpha \delta \zeta$
-%D \stoplines
-%D
-%D \startformula
-%D x=12=\fontbody \Gamma \Delta \alpha \delta \zeta
-%D \stopformula
-%D
-%D \startformula[mainface]
-%D x=12=\fontbody \Gamma \Delta \alpha \delta \zeta
-%D \stopformula
-%D
-%D \startformula[boldmath]
-%D x=12=\fontbody \Gamma \Delta \alpha \delta \zeta
-%D \stopformula
-%D
-%D \startformula[boldmath,8pt]
-%D x=8=\fontbody \Gamma \Delta \alpha \delta \zeta
-%D \stopformula
-%D
-%D \startformula[boldmath,12pt,small]
-%D x=12s=\fontbody \Gamma \Delta \alpha \delta \zeta
-%D \stopformula
-%D
-%D \startformula[boldmath,small]
-%D x=s=\fontbody \Gamma \Delta \alpha \delta \zeta
-%D \stopformula
-%D
-%D \startformula[boldmath,10pt]
-%D x=10=\fontbody \Gamma \Delta \alpha \delta \zeta
-%D \stopformula
-%D
-%D \startformula[boldmath,11pt,small]
-%D x=11s=\fontbody \Gamma \Delta \alpha \delta \zeta
-%D \stopformula
-%D
-%D \startformula[boldmath,9pt]
-%D x=9=\fontbody \Gamma \Delta \alpha \delta \zeta
-%D \stopformula
-%D
-%D \startlines
-%D \formula{1=2x}
-%D \formula[boldmath]{1=2x}
-%D \formula[mainface]{1=2x}
-%D \formula[mainface]{1 \theta \Gamma = \bfm 1 \beta \hbox{\sl test}\Gamma \alpha ' x x}
-%D \formula[mainface]{1 \theta \Gamma = {\bfm 1 \beta \hbox{\sl test}\Gamma \alpha ' x} x}
-%D \stoplines
-%D \stoptyping
-
-\unprotect
-
-%D \TEX\ has some hard wired expectations about where to look for
-%D certain characters. This means that we cannot overload the families
-%D 0 upto~3. Also, since we use C upto~F for math as well, we are left
-%D with the range 4 upto~B.
-
-\chardef\mrbffam\itfam \edef\c!mrbf{\c!mr\c!bf} \let\hexmrbffam\hexitfam % 4 it
-\chardef\exbffam\slfam \edef\c!exbf{\c!ex\c!bf} \let\hexexbffam\hexslfam % 5 sl
-\chardef\mibffam\bffam \edef\c!mibf{\c!mi\c!bf} \let\hexmibffam\hexbffam % 6 bf
-\chardef\sybffam\nnfam \edef\c!sybf{\c!sy\c!bf} \let\hexsybffam\hexnnfam % 7 nn
-\chardef\mabffam\bsfam \edef\c!mabf{\c!ma\c!bf} \let\hexmabffam\hexbsfam % 8 bs
-\chardef\mbbffam\bifam \edef\c!mbbf{\c!mb\c!bf} \let\hexmbbffam\hexbifam % 9 bi
-\chardef\mcbffam\scfam \edef\c!mcbf{\c!mc\c!bf} \let\hexmcbffam\hexscfam % A sc
-\chardef\mdbffam\scfam \edef\c!mdbf{\c!mc\c!bf} \let\hexmdbffam\hexscfam % B tf % tricky
-
-%D The next bunch of code looks horrible and tricky but one has to keep in
-%D mind that because \TEX\ makes several passes over the math list we need to
-%D make sure that grouping is handled well. Later assignments to a family
-%D overload previous ones, the last one counts.
-
-\newtoks \boldmathstrategies
-\newtoks \boldsymbstrategies
-
-\appendtoks
- \dosetmathfamily\mrbffam\textface\scriptface\scriptscriptface\c!mrbf\mrfallback
- \dosetmathfamily\mibffam\textface\scriptface\scriptscriptface\c!mibf\empty
- \dosetmathfamily\sybffam\textface\scriptface\scriptscriptface\c!sybf\empty
- \dosetmathfamily\exbffam\textface\textface \textface \c!exbf\empty
- \dosetmathfamily\mabffam\textface\scriptface\scriptscriptface\c!mabf\empty
- \dosetmathfamily\mbbffam\textface\scriptface\scriptscriptface\c!mbbf\empty
- \dosetmathfamily\mcbffam\textface\scriptface\scriptscriptface\c!mcbf\empty
-\to \boldmathstrategies
-
-\appendtoks
- \dosetskewchar\mifam\defaultskewcharmi
- \dosetskewchar\syfam\defaultskewcharsy
-\to \boldmathstrategies
-
-\appendtoks
- \dosetsymbfamily\mrbffam\textface\scriptface\scriptscriptface\c!mrbf
- \dosetsymbfamily\mibffam\textface\scriptface\scriptscriptface\c!mibf
- \dosetsymbfamily\sybffam\textface\scriptface\scriptscriptface\c!sybf
- \dosetsymbfamily\exbffam\textface\textface \textface \c!exbf
- \dosetsymbfamily\mabffam\textface\scriptface\scriptscriptface\c!mabf
- \dosetsymbfamily\mbbffam\textface\scriptface\scriptscriptface\c!mbbf
- \dosetsymbfamily\mcbffam\textface\scriptface\scriptscriptface\c!mcbf
-\to \boldsymbstrategies
-
-%D Here comes the real mess (due to semi||global settings en multiple
-%D passes over the math list once the input is expanded.
-
-\newevery \everyboldfacemath \relax
-\chardef \boldfacemathmethod \zerocount
-
-\appendtoks
- \ifcase\boldfacemathmethod \else \the\boldmathstrategies \fi
-\to \mathstrategies
-
-\appendtoks
- \ifcase\boldfacemathmethod \else \the\boldsymbstrategies \fi
-\to \symbstrategies
-
-\appendtoks
- \let\mrfam\mrbffam \let\c!mr\c!mrbf \let\hexmrfam\hexmrbffam
- \let\mifam\mibffam \let\c!mi\c!mibf \let\hexmifam\hexmibffam
- \let\syfam\sybffam \let\c!sy\c!sybf \let\hexsyfam\hexsybffam
- \let\exfam\exbffam \let\c!ex\c!exbf \let\hexexfam\hexexbffam
- \let\mafam\mabffam \let\c!ma\c!mabf \let\hexmafam\hexmabffam
- \let\mbfam\mbbffam \let\c!mb\c!mbbf \let\hexmbfam\hexmbbffam
- \let\mcfam\mcbffam \let\c!mc\c!mcbf \let\hexmcfam\hexmcbffam
-\to \everyboldfacemath
-
-\appendtoks
- \let\mathsubfamily\c!bf
-\to \everyboldfacemath
-
-\appendtoks
- \synchronizemath \aftergroup\synchronizemath
-\to \everyboldfacemath
-
-%D \macros
-%D {boldfacemath, bfm, autoboldfacemath}
-%D
-%D These are the user commands, with \type {\bfm} being the most comfortable.
-
-\def\boldfacemath {\ifcase\boldfacemathmethod\else\the\everyboldfacemath\fi}
-\def\bfm {\boldfacemath} % no \let, so that we can redefine
-\def\autoboldfacemath{\appendtoks\ifcase\boldfacemathmethod\else\let\bf\boldfacemath\fi\to\everymathematics}
-
-%D We hook this feature into the formula mechanism.
-
-\setupformulas
- [\c!method=\v!normal]
-
-\appendtoks
- \doifelse{\formulaparameter\c!method}\v!bold
- {\chardef\boldfacemathmethod\plusone}
- {\chardef\boldfacemathmethod\zerocount}%
-\to \everysetupformulas
-
-%D Of course this only works when bfmath fonts are set up (see example at
-%D the top of this file) and bold math is enabled:
-%D
-%D \starttyping
-%D \setupformulas
-%D [method=bold]
-%D \stoptyping
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/font-chi.mkii b/Master/texmf-dist/tex/context/base/mkii/font-chi.mkii
deleted file mode 100644
index 5e545722735..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/font-chi.mkii
+++ /dev/null
@@ -1,1156 +0,0 @@
-%D \module
-%D [ file=font-chi,
-%D version=1999.10.10,
-%D title=\CONTEXT\ Font Macros,
-%D subtitle=Chinese,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D suggestions=Wang Lei,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\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
-
-%D Still to be implemented:
-%D
-%D \startitemize
-%D \item columns left right touch
-%D \item distance = (hsize-n*bodyfontsize)/(n-1)
-%D \item char grids
-%D \item char tables
-%D \item all kind of rotated combinations
-%D \item hanging puctuation
-%D \item a few more encodings
-%D \item rotation list
-%D \stopitemize
-
-%M \setupbodyfont[chi]
-%M
-%M \def\WangLei{\purechinese{\uchar{205}{245}\uchar{192}{218}}}
-
-\useencoding[chi]
-
-%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
-%D yes. I knew that those languages, rich of glyphs, were
-%D typeset by \TEX, so in principle it should be possible. I
-%D asked or some more input and was told that there were
-%D \LATEX\ styles regarding those languages. When I unzipped
-%D the accompanying files, it became clear that I had to
-%D implement support for Chinese from scratch. There was a
-%D multitude of font, with rather unfamiliar encodings, a
-%D large collection of files with |<|at least for me|>|
-%D unknown purposes, and worse, the documentation was mainly
-%D in Chinese.
-%D
-%D So, \WangLei\ and I started exchanging some emails and it
-%D soon became clear that supporting Chinese was not that
-%D complicated at all. It mostly came to dealing with handling
-%D \UNICODE\ fonts. It also became clear that everything
-%D Chinese took place in the upper region of the eight bit
-%D character set. I wrote some macros that could process the
-%D small \type {Hello World} file \WangLei\ had send me, and
-%D after some bug fixes real Chinese came out. I started to
-%D like the look and fel of Chinese glyphs, so on we went.
-%D
-%D The first comments concerned spacing. The mix of English
-%D and Chinese demands some rather deliberate handling of
-%D spacing. Breaking lines was not so much a problem, and
-%D could be solved by adding some glue between Chinese glyphs.
-%D
-%D In the meantime had asked \WangLei\ for some language bound
-%D labels and texts, and implementing these was rather
-%D straightforward. But, there were still some issues to deal
-%D with: conversion of numbers, date handling and index
-%D sorting.
-%D
-%D I consider(ed) writing Chinese support to be a nice puzzle,
-%D since I have to act on chinese \CONTEXT\ code, where I only
-%D understand the \CONTEXT\ part. The drawings \WangLei\ made
-%D me (in drawing packages) were of great help. Since I write
-%D these modules from scratch, although I fall back on some
-%D basic encoding and font modules, I consider them to be
-%D rather clean. This cannot be said of all \CONTEXT\ font
-%D modules \type {-)}.
-
-\unprotect
-
-%D Because Chinese glyphs have more height than the average
-%D Latin glyph, and at the same time don't have much depth,
-%D we adapt the scale.
-%D
-%D Before and after the glyph we have to deal with Chinese
-%D spacing. Special attention is given to punctuation.
-%D
-%D \starttyping
-%D [some short nice chinese text with () and english]
-%D \stoptyping
-%D
-%D We insert a bit of stretch and introduce a signal to
-%D keep track of previous characters. We use a similar
-%D method in the units module, which may be a nice
-%D introduction to using signals.
-
-%D \macros
-%D {chineseunicodescale, chineseinterglyphskip,
-%D chineseunicodeheight, chineseunicodedepth, chinesespace}
-%D
-%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}
-
-%D We define a few signals. As said, another example of
-%D using signals can be found in the module \type {m-units}.
-
-\newsignal\chineseLsignal % left boundary character
-\newsignal\chineseRsignal % right boundary character
-\newsignal\chineseSsignal % any other character (symbol)
-
-\chardef\chineseBstatus=0 % 0=unknown 1=left 2=right 3=chinese 4=nospace
-\chardef\chineseAstatus=0 % 0=unknown 1=left 2=right 3=space
-\chardef\chineseSstatus=0 % 0=unknown 1=left 2=right
-
-\sfcode`(=2000 % a temporary hack
-
-\def\chinesenobreak
- {\relax
- \iftracechinese
- \nobreak
- \kern-.5pt\color[red]{\vrule\!!width1pt}\kern-.5pt
- \nobreak
- \else
- \nobreak
- \fi}
-
-\newif\ifcorrectchineseboundarychars
-
-\def\chineseunskip
- {\unskip\unskip\unskip\unskip}
-
-\def\insertchineseglyph
- {\iftracechinese\tracedchineseglyph\else\insertunicodeglyph\fi}
-
-\newif\ifverticalchinese
-
-\def\handlechineseunicodeglyph
- {\ifinpagebody
- \horizontalchineseunicodeglyph
- \else\ifverticalchinese
- \verticalchineseunicodeglyph
- \else
- \horizontalchineseunicodeglyph
- \fi\fi}
-
-% chinese classes: left=1|right=2|center=3
-
-\chardef\plusfour=4
-
-\def\analyzechineseunicodeglyph % beware, no zerocount !
- {\chardef\chineseSstatus0\getvalue{uc\number\unicodeposition}\relax}
-
-\def\analyzechineseunicodeenviroment
- {% left
- \ifx (\nextutoken \chardef\chineseAstatus\plusone \else
- \ifx [\nextutoken \chardef\chineseAstatus\plusone \else
- % right
- \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\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?
- \chardef\chineseBstatus\ifdim\lastskip=\zeropoint\plusfour\else\zerocount\fi
- \ifdim\lastskip=\chineseLsignal \chardef\chineseBstatus\plusone \else
- \ifdim\lastskip=\chineseRsignal \chardef\chineseBstatus\plustwo \else
- \ifdim\lastskip=\chineseSsignal \chardef\chineseBstatus\plusthree \else
- \scratchskip=\lastskip \unskip
- \ifdim\lastskip=\chineseLsignal \chardef\chineseBstatus\plusone \else
- \ifdim\lastskip=\chineseRsignal \chardef\chineseBstatus\plustwo \else
- \ifdim\lastskip=\chineseSsignal \chardef\chineseBstatus\plusthree \else
- \space\scratchskip=\lastskip \unskip
- \setbox\scratchbox=\hbox\bgroup
- (\space
- \ifdim\lastskip=\scratchskip
- \egroup \chardef\chineseBstatus\plusone
- \else
- \egroup
- \ifdim\scratchskip=\zeropoint \chardef\chineseBstatus\plusfour \fi
- \fi
- \fi\fi\fi
- \fi\fi\fi}
-
-\def\horizontalchineseunicodeglyph
- {\relax
- \ifhmode\else\dontleavehmode\fi % added
- \setunicodescale\chineseunicodescale % redundant
- \setunicodestrut\chineseunicodeheight\chineseunicodedepth % redundant
- \ifprocessingverbatim
- \iftracechinese
- \ruledhbox{\insertunicodeglyph}%
- \else
- \insertunicodeglyph
- \fi
- \else\ifx\nextutoken\relax
- \insertunicodeglyph
- \else
- \analyzechineseunicodeglyph
- \analyzechineseunicodeenviroment
- \ifcase\chineseSstatus\relax
- \ifcase\chineseBstatus\relax
- \chineseunskip
- \hskip\chinesesurroundskip % unknown
- \or
- \chineseunskip
- \chinesenobreak % left
- \or
- \ifcorrectchineseboundarychars\else\chineseunskip\fi
- \hskip\chineseinterglyphskip % right
- \or
- \chineseunskip
- \hskip\chineseinterglyphskip % chinese
- \or
- % whatever
- \fi
- \insertchineseglyph
- \ifcase\chineseAstatus\relax
- \hskip\chineseinterglyphskip % unknown
- \hskip\chinesesurroundskip
- \ifcase\chineseSstatus
- \hskip\chineseSsignal
- \or
- \hskip\chineseLsignal
- \else
- \hskip\chineseRsignal
- \fi
- \or
- \hskip\chineseinterglyphskip % left
- \chinesenobreak
- \hskip\chineseLsignal
- \or
- \chinesenobreak % right
- \hskip\chineseinterglyphskip
- \chinesenobreak
- \hskip\chineseRsignal
- \or
- \hskip\chineseinterglyphskip % space
- \hskip\chinesesurroundskip
- \hskip\chineseSsignal
- \fi
- \or % left
- \ifcorrectchineseboundarychars
- \let\unicodecharcommand\chineseleftcharcommand
- \fi
- \chineseunskip
- \insertchineseglyph
- \chinesenobreak
- \hskip\chineseLsignal
- \or % right
- \ifcorrectchineseboundarychars
- \let\unicodecharcommand\chineserightcharcommand
- \fi
- \chineseunskip
- \chinesenobreak
- \insertchineseglyph
- \hskip\chineseRsignal
- \else % center
- \chineseunskip
- \chinesenobreak
- \insertchineseglyph
- \hskip\chineseinterglyphskip
- \hskip\chineseRsignal
- \fi\fi
- \aftergroup\ignorespaces % watch this
- \fi}
-
-\def\verticalchineseunicodeglyph
- {\relax
- \ifprocessingverbatim % to do
- \horizontalchineseunicodeglyph
- \else
- \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
- \aftergroup\ignorespaces % watch this
- \fi}
-
-%D \macros
-%D {setupchinese,startvertical,nochinese}
-%D
-%D The previous macros implement horizontal as well as
-%D vertical typesetting. Vertical typesetting is implemented
-%D on top of the multi||column routines.
-
-\def\setupchinese
- {\dodoubleargument\getparameters[\??vt]}
-
-\def\startvertical
- {\dosingleempty\dostartvertical}
-
-\def\dostartvertical[#1]%
- {\bgroup
- \def\maxnofcolumns{25}%
- \verticalchinesetrue
- \global\chardef\prevchineseSstatus\zerocount
- \let\nochinese\nochineseinvertical
- \doif\@@vtn\v!fit
- {\dimen0=\textwidth \advance\dimen0 \@@vtdistance
- \dimen2=\bodyfontsize \advance\dimen2 \@@vtdistance
- \divide\dimen0 \number\dimen2
- \edef\@@vtn{\number\dimen0}}%
- \startcolumns
- [\c!direction=\@@vtdirection,
- \c!balance=\@@vtbalance,
- \c!distance=\@@vtdistance,
- \c!n=\@@vtn,
- #1]}
-
-\def\stopvertical
- {\stopcolumns
- \egroup}
-
-\setupchinese
- [\c!direction=\v!left,
- \c!balance=\v!no,
- \c!n=\v!fit,
- \c!distance=1.5\bodyfontsize]
-
-%D We can set up vertical typesetting with \type
-%D {\setupchinese}.
-
-%D \macros
-%D {nochineseinvertical}
-%D
-%D English (non chinese) text is typeset rotated:
-
-\def\nochineseinvertical#1%
- {\par
- \setbox\scratchbox\hbox{\strut#1}
- \getnoflines{\wd\scratchbox}
- \setbox\scratchbox\hbox to \noflines\openlineheight
- {\hss\box\scratchbox\hss}
- \hbox to \hsize
- {\hss
- \rotate
- [\c!rotation=270]
- {\vbox to \ht\scratchbox{\vss\box\scratchbox\vss}}%
- \hss}
- \par}
-
-%D \macros
-%D {correctchineseboundarychars}
-%D
-%D Careful reading of the previous macro learns that we
-%D treat left and right glyphs differently. When we say
-%D
-%D \starttyping
-%D \correctchineseboundarycharstrue
-%D \stoptyping
-%D
-%D For the moment correction in on by default.
-
-\correctchineseboundarycharstrue
-
-\def\chineserightcharcommand#1%
- {\iftracechinese\ruledhbox\else\hbox\fi \!!to .5em{#1\hss}%
- \hskip.25em\!!plus .25em\relax}%
-
-\def\chineseleftcharcommand#1%
- {\ifnum\chineseBstatus<4 \hskip.25em \!!plus .25em\relax\fi
- \iftracechinese\ruledhbox\else\hbox\fi \!!to .5em{\hss#1}}%
-
-% \def\chineserightcharcommand#1%
-% {\setbox\scratchbox=\hbox{#1}%
-% \scratchdimen=.5em
-% \ifdim\wd\scratchbox>\scratchdimen
-% \iftracechinese\ruledhbox\else\hbox\fi \!!to \scratchdimen
-% {\box\scratchbox\hss}%
-% \hskip.5\scratchdimen\!!plus.5\scratchdimen\relax
-% \else
-% \box\scratchbox
-% \fi}
-
-% \def\chineseleftcharcommand#1%
-% {\setbox\scratchbox=\hbox{#1}%
-% \scratchdimen=.5em
-% \ifdim\wd\scratchbox>\scratchdimen
-% \ifnum\chineseBstatus<4
-% \hskip.5\scratchdimen\!!plus.5\scratchdimen\relax
-% \fi
-% \iftracechinese\ruledhbox\else\hbox\fi \!!to \scratchdimen
-% {\hss\box\scratchbox}%
-% \else
-% \box\scratchbox
-% \fi}
-
-%D The long list of numbers in the previous macro identify the
-%D characters where special care is needed for breaking lines.
-%D A linebreak is not permitted before:
-%D
-%D \def\DoIt #1 #2 %
-%D {\hbox{\hbox to 2em{\uchar{#1}{#2}\hss}#1 #2}\par}
-%D
-%D \startcolumns[n=5]
-%D \DoIt 161 162 \DoIt 161 163 \DoIt 161 164 \DoIt 161 167 \DoIt 161 173
-%D \DoIt 161 175 \DoIt 161 177 \DoIt 161 179 \DoIt 161 181 \DoIt 161 183
-%D \DoIt 161 185 \DoIt 161 187 \DoIt 161 189 \DoIt 161 191 \DoIt 161 227
-%D \DoIt 161 228 \DoIt 161 229 \DoIt 163 161 \DoIt 163 162 \DoIt 163 167
-%D \DoIt 163 169 \DoIt 163 172 \DoIt 163 174 \DoIt 163 186 \DoIt 163 187
-%D \DoIt 163 190 \DoIt 163 191 \DoIt 163 221 \DoIt 163 253
-%D \stopcolumns
-%D
-%D A linebreak is not permitted after the following glyphs:
-%D
-%D \startcolumns[n=5]
-%D \DoIt 161 174 \DoIt 161 176 \DoIt 161 178 \DoIt 161 180 \DoIt 161 182
-%D \DoIt 161 184 \DoIt 161 186 \DoIt 161 188 \DoIt 161 190 \DoIt 163 168
-%D \DoIt 163 219 \DoIt 163 224 \DoIt 163 251
-%D \stopcolumns
-
-%D \macros
-%D {tracechinesetrue, showchinesetracelegend}
-%D
-%D When we say \type {\tracechinesetrue}, we get some
-%D insight in the way \CONTEXT\ handles the Chinese glyphs.
-%D The symbols and color used represent:
-%D
-%D \showchinesetracelegend
-
-\newif\iftracechinese
-
-\def\showchinesetracelegend
- {\definetabulate[\s!dummy][|c|l|l|l|]%
- \startdummy
- \HL
- \NC \bf key \NC \bf meaning \NC \bf glyph \NC \bf keys \NC\NR
- \HL
- \NC u \NC unknown character type \NC \color[green]{current} \NC u l r \NC\NR
- \NC l \NC left boundary character \NC \color[red]{previous} \NC u l r c n \NC\NR
- \NC r \NC right boundary character \NC \color[blue]{next} \NC u l r s \NC\NR
- \NC c \NC chinese character \NC \NC \NC\NR
- \NC s \NC following space \NC \NC \NC\NR
- \NC n \NC no preceding space \NC \NC \NC\NR
- \HL
- \stopdummy}
-
-\def\tracedchineseglyph
- {\dontleavehmode
- \ruledhbox
- {\setbox\scratchbox\hbox{\insertunicodeglyph}%
- \hbox to \wd\scratchbox
- {\localcolortrue
- \copy\scratchbox
- \infofont
- \hskip-\wd\scratchbox
- \hbox to \wd\scratchbox
- {\hss
- \color[green]{\ifcase\chineseSstatus\relax u\or l\or r\fi}%
- \hss}%
- \hskip-\wd\scratchbox
- \lower\dp\scratchbox\hbox to \wd\scratchbox
- {\hss
- \color[red]{\ifcase\chineseBstatus\relax u\or l\or r\or c\or n\fi}%
- \hss
- \color[blue]{\ifcase\chineseAstatus\relax u\or l\or r\or s\fi}%
- \hss}}}}
-
-%D The following example shows how tracing works.
-%D
-%D \start \tracechinesetrue
-%D һθǽܶĵ֧֡ĵ
-%D ѯ \nochinese{\CONTEXT} ǷܴʱѾԹ
-%D еĺ꼯ûеõζŶĵֻ֧û
-%D ʵ֡
-%D
-%D һ(θ) () ܶĵ֧֡ĵ,
-%D ѯ\nochinese{\CONTEXT}ǷܴʱѾ
-%D Թеĺ꼯ûеõζŶĵ֧
-%D ûʵ֡.
-%D \stop
-
-%D Because fonts are defined each time a \UNICODE\ is
-%D encountered |<|which is less inefficient than one would
-%D imagine, because \TEX\ is optimized quite well in this
-%D repect|>| we can define macros like this to take care of
-%D font switches. When available, one can add definitions
-%D for italic, slanted, bold fonts and combinations of these.
-
-%D \macros
-%D {chinesenumber}
-%D
-%D The chinese numbering systems rather straightforward. First
-%D there are the digits:
-%D
-%D \starttabulate[|c|c|c|c|c|c|c|c|c|c|]
-%D \NC 0 \NC 1 \NC 2 \NC 3 \NC 4 \NC 5 \NC 6 \NC 7 \NC 8 \NC 9 \NC\NR
-%D \NC \chinesenumber{0} \NC \chinesenumber{1} \NC \chinesenumber{2}
-%D \NC \chinesenumber{3} \NC \chinesenumber{4} \NC \chinesenumber{5}
-%D \NC \chinesenumber{6} \NC \chinesenumber{7} \NC \chinesenumber{8}
-%D \NC \chinesenumber{9} \NC\NR
-%D \stoptabulate
-%D
-%D Apart from these numbers, we have dedicated representations
-%D of some powers of~$10$.
-%D
-%D \starttabulate[|c|c|c|c|c|]
-%D \NC 10 \NC 100 \NC 1000 \NC 10000 \NC 100000000 \NC\NR
-%D \NC \chinesenumber{10} \NC \chinesenumber{100}
-%D \NC \chinesenumber{1000} \NC \chinesenumber{10000}
-%D \NC \chinesenumber{100000000} \NC\NR
-%D \stoptabulate
-%D
-%D The number~12 is a combination of $1\times10+2$, or:
-%D \chinesenumber {12}, while~22 becomes \chinesenumber {22}.
-%D The numbers below 20 are treated a bit different, just like
-%D numbers with series of $0$'s. So $2\times10$ comes out as
-%D two glyphs, but $1\times10$ as one, because in the latter
-%D case the~$1$ is redundant. The same is true for the powers
-%D of~10.
-%D
-%D \starttabulate[|r|r|r|r|r|r|]
-%D \NC 1 \NC \chinesenumber {1} \NC
-%D 9 \NC \chinesenumber {9} \NC
-%D 4 \NC \chinesenumber {4} \NC\NR
-%D \NC 11 \NC \chinesenumber {11} \NC
-%D 99 \NC \chinesenumber {99} \NC
-%D 16 \NC \chinesenumber {16} \NC\NR
-%D \NC 111 \NC \chinesenumber {111} \NC
-%D 999 \NC \chinesenumber {999} \NC
-%D 256 \NC \chinesenumber {256} \NC\NR
-%D \NC 1111 \NC \chinesenumber {1111} \NC
-%D 9999 \NC \chinesenumber {9999} \NC
-%D 65536 \NC \chinesenumber {65536} \NC\NR
-%D \stoptabulate
-%D
-%D The implementation is rather simple. For internal purposes,
-%D we let zero expand to~0. The digits $0-9$ and numbers $10$,
-%D $100$, $1000$, $10000$ and $100000000$ are hard coded.
-
-% This was the first implementation, before \WangLei\ asked
-% me to look into Big Five encoding, so, like everthing in
-% \TEX, things become a bit more complicated, but also more
-% versatile.
-%
-% \starttypen
-% \def\chinesedigit#1%
-% {\ifnum #1=100000000 \uchar{210}{218}% 100000000
-% \else\ifnum #1=10000 \uchar{205}{242}% 10000
-% \else\ifnum #1=1000 \uchar{199}{167}% 1000
-% \else\ifnum #1=100 \uchar{176}{217}% 100
-% \else\ifnum #1=10 \uchar{202}{174}% 10
-% \else\ifcase#1 \uchar{193}{227}% 0
-% \or \uchar{210}{187}% 1
-% \or \uchar{182}{254}% 2
-% \or \uchar{200}{253}% 3
-% \or \uchar{203}{196}% 4
-% \or \uchar{206}{229}% 5
-% \or \uchar{193}{249}% 6
-% \or \uchar{198}{223}% 7
-% \or \uchar{176}{203}% 8
-% \or \uchar{190}{197}% 9
-% \fi\fi\fi\fi\fi\fi}
-% \stoptypen
-
-%D We will implement four methods, the one described earlier,
-%D a derived one with capitalized characters, an extended
-%D version of the first method, and a rather Arabic method.
-%D
-%D \starttabulate[|l|l|]
-%D \HL
-%D \NC \bf command \NC \bf number 39 \NC\NR
-%D \HL
-%D \NC \type{\normalchinesenumber} \NC \normalchinesenumber {39} \NC\NR
-%D \NC \type{\capitalizedchinesenumber} \NC \capitalizedchinesenumber{39} \NC\NR
-%D \NC \type{\arabicchinesenumber} \NC \arabicchinesenumber {39} \NC\NR
-%D \NC \type{\extendedchinesenumber} \NC \extendedchinesenumber {39} \NC\NR
-%D \HL
-%D \stoptabulate
-%D
-%D We use a dirty trick to enable Chinese Capital Digits. In
-%D the encoding vectors, we define these by appending a suffix
-%D \type {*} to the digit, which in the following macro is
-%D appended or not (by passing \type {\empty}).
-
-\def\chinesedigit#1#2% #2: suffix, here * or \empty
- {\udigit{\chineseencoding}{\number#1#2}}
-
-% Normal Chinese Number
-
-\def\normalchinesenumber#1%
- {\expandafter\dochinesenumber\number#1\relax\empty}
-
-\def\dochinesenumber#1#2\relax#3%
- {\ifnum#1#2<10 % 1-10
- \chinesedigit{#1}#3%
- \else\ifnum#1#2<20 % 11-99
- \chinesedigit{10}#3%
- \dodochinesenumberA#2\relax#3%
- \else
- \dodochinesenumber#1#2\relax#3%
- \fi\fi}
-
-\def\dodochinesenumber#1#2\relax#3%
- {\ifnum#1=0
- \chinesedigit{0}#3%
- \dododochinesenumber0#2\relax#3%
- \else\ifnum#1#2<10 % 1-10
- \chinesedigit{#1#2}#3%
- \dodochinesenumberA#2\relax#3%
- \else\ifnum#1#2<100 % 11-99
- \dodochinesenumber#1\relax#3%
- \chinesedigit{10}#3%
- \dodochinesenumberA#2\relax#3%
- \else\ifnum#1#2<1000 % 100-999
- \dodochinesenumber#1\relax#3%
- \chinesedigit{100}#3%
- \dodochinesenumberA#2\relax#3%
- \else\ifnum#1#2<10000 % 1000-9999
- \dodochinesenumber#1\relax#3%
- \chinesedigit{1000}#3%
- \dodochinesenumberA#2\relax#3%
- \else\ifnum#1#2<100000 % 10000-99999
- \dodochinesenumber#1\relax#3%
- \chinesedigit{10000}#3%
- \dodochinesenumberA#2\relax#3%
- \else\ifnum#1#2<1000000 % 100000-999999
- \dodochinesenumberB#1#2\relax#3%
- \else\ifnum#1#2<10000000 % 1000000-9999999
- \dodochinesenumberC#1#2\relax#3%
- \else\ifnum#1#2<100000000 % 10000000-99999999
- \dodochinesenumberD#1#2\relax#3%
- \else\ifnum#1#2<1000000000 % 10000000-99999999
- \dochinesenumber#1\relax#3%
- \chinesedigit{100000000}#3%
- \dododochinesenumber#2\relax#3%
- \else
- \dodochinesenumberE#1#2\relax#3%
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
-
-\def\dododochinesenumber#1#2\relax#3%
- {\ifnum#1=0
- \ifnum0#2>0 \dododochinesenumber#2\relax#3\fi
- \else
- \dodochinesenumber#1#2\relax#3%
- \fi}
-
-\def\dodochinesenumberA#1\relax#2%
- {\ifcase0#1 \else\dodochinesenumber#1\relax#2\fi}
-
-\def\dodochinesenumberB#1#2#3\relax#4%
- {\dochinesenumber#1#2\relax#4%
- \chinesedigit{10000}#4%
- \dododochinesenumber#3\relax#4}
-
-\def\dodochinesenumberC#1#2#3#4\relax#5%
- {\dochinesenumber#1#2#3\relax#5%
- \chinesedigit{10000}#5%
- \dododochinesenumber#4\relax#5}
-
-\def\dodochinesenumberD#1#2#3#4#5\relax#6%
- {\dochinesenumber#1#2#3#4\relax#6%
- \chinesedigit{10000}#6%
- \dododochinesenumber#5\relax#6}
-
-\def\dodochinesenumberE#1#2#3\relax#4%
- {\dochinesenumber#1#2\relax#4%
- \chinesedigit{100000000}#4%
- \dododochinesenumber#3\relax#4}
-
-% Capitalized Chinese Number
-
-\def\capitalizedchinesenumber#1%
- {\expandafter\dochinesenumber\number#1\relax*}
-
-% Extended Chinese Number
-
-\def\extendedchinesenumber#1%
- {\expandafter\doextendedchinesenumber\number#1\relax}
-
-\def\doextendedchinesenumber#1#2\relax%
- {\ifnum #1#2<20 % 0-19
- \dochinesenumber#1#2\relax\empty
- \else\ifnum#1#2<30 % 20-29
- \chinesedigit{20}\empty
- \ifcase#2\else\chinesedigit{2#2}\fi
- \else\ifnum#1#2<40 % 30-39
- \chinesedigit{30}\empty
- \ifcase#2\else\chinesedigit{3#2}\fi
- \else
- \dochinesenumber#1#2\relax\empty
- \fi\fi\fi}
-
-% Arabic Chinese Number
-
-\def\arabicchinesenumber#1%
- {\expandafter\doarabicchinesenumber\number#1@\relax}
-
-\def\doarabicchinesenumber#1#2\relax
- {\if#1@\else
- \chinesedigit{#1}\empty
- \doarabicchinesenumber#2\relax
- \fi}
-
-% The short call:
-
-\def\chinesenumber{\normalchinesenumber}
-
-% \dorecurse{40}
-% {\hbox
-% {\processingverbatimtrue
-% \hbox to 1cm{\hss\recurselevel}\quad
-% \hbox to 3cm{\hss\strut\normalchinesenumber {\recurselevel}}\quad
-% \hbox to 3cm{\hss\strut\capitalizedchinesenumber{\recurselevel}}\quad
-% \hbox to 3cm{\hss\strut\arabicchinesenumber {\recurselevel}}\quad
-% \hbox to 3cm{\hss\strut\extendedchinesenumber {\recurselevel}}\crlf}}
-
-%D The next table demonstates the correctness of the
-%D conversion macro.
-%D
-%D \startbuffer
-%D \starttable[|l|l|l|l|l|l|]
-%D \HL
-%D \NC number \NC converter \NC hard coded \NC
-%D number \NC converter \NC hard coded\NC \SR
-%D \HL
-%D \NC 1 \NC \chinesenumber{1} \NC һ \NC
-%D 0 \NC \chinesenumber{0} \NC \NC\FR
-%D \NC 11 \NC \chinesenumber{11} \NC ʮһ \NC
-%D 10 \NC \chinesenumber{10} \NC ʮ \NC\MR
-%D \NC 111 \NC \chinesenumber{111} \NC һһʮһ \NC
-%D 100 \NC \chinesenumber{100} \NC һ \NC\MR
-%D \NC 101 \NC \chinesenumber{101} \NC һһ \NC
-%D 120 \NC \chinesenumber{120} \NC һٶʮ \NC\MR
-%D \NC 1111 \NC \chinesenumber{1111} \NC һǧһһʮһ \NC
-%D 1000 \NC \chinesenumber{1000} \NC һǧ \NC\MR
-%D \NC 1001 \NC \chinesenumber{1001} \NC һǧһ \NC
-%D 1020 \NC \chinesenumber{1020} \NC һǧʮ \NC\MR
-%D \NC 11111 \NC \chinesenumber{11111} \NC һһǧһһʮһ \NC
-%D 10000 \NC \chinesenumber{10000} \NC һ \NC\MR
-%D \NC 10001 \NC \chinesenumber{10001} \NC һһ \NC
-%D 10200 \NC \chinesenumber{10200} \NC һ \NC\LR
-%D \HL
-%D \NC 111111 \NC \chinesenumber{111111} \NC ʮһһǧһһʮһ \NC
-%D 100000 \NC \chinesenumber{100000} \NC ʮ \NC\FR
-%D \NC 1111111 \NC \chinesenumber{1111111} \NC һһʮһһǧһһʮһ \NC
-%D 1000000 \NC \chinesenumber{1000000} \NC һ \NC\MR
-%D \NC 11111111 \NC \chinesenumber{11111111} \NC һǧһһʮһһǧһһʮһ \NC
-%D 10000000 \NC \chinesenumber{10000000} \NC һǧ \NC\MR
-%D \NC 111111111 \NC \chinesenumber{111111111} \NC һһǧһһʮһһǧһһʮһ \NC
-%D 100000000 \NC \chinesenumber{100000000} \NC һ \NC\MR
-%D \NC 1111111111 \NC \chinesenumber{1111111111} \NC ʮһһǧһһʮһһǧһһʮһ \NC
-%D 1000000000 \NC \chinesenumber{1000000000} \NC ʮ \NC\LR
-%D \HL
-%D \stoptable
-%D \stopbuffer
-%D
-%D \placetable{Some Chinese number examples.}{\getbuffer}
-
-%D Although the conversion can be hooked into most commands
-%D that deal with numbers |<|those familiar with \TEX\ macro
-%D programming will notice that the macro if fully
-%D expandable|>| in many cases Chinese documents use western
-%D digits. So, in practice, the change that the next example
-%D shows up, is minimal.
-%D
-%D \starttabulate[|r|r|c|]
-%D \NC 2546 \NC \chinesenumber {2546} \NC \NC\NR
-%D \NC 9258 \NC \chinesenumber {9258} \NC $+$ \NC\NR
-%D \HL
-%D \NC 11804 \NC \chinesenumber {11804} \NC \NC\NR
-%D \stoptabulate
-%D
-%D While in arabic arithmics addition leads to more digits, in
-%D Chinese the number of glyphs can (temporary) decrease.
-%D Given that the number of people dealing with Chinese is
-%D considerably larger than the number of latin speaking
-%D people, a successor of \TEX\ definitely must provide a
-%D \type {\chinesenumeral} primitive.
-
-\defineconversion [c] [\normalchinesenumber]
-\defineconversion [chinese] [\normalchinesenumber]
-\defineconversion [nc] [\normalchinesenumber]
-\defineconversion [normalchinese] [\normalchinesenumber]
-\defineconversion [cc] [\capitalizedchinesenumber]
-\defineconversion [capitalizedchinese] [\capitalizedchinesenumber]
-\defineconversion [ec] [\extendedchinesenumber]
-\defineconversion [extendedchinese] [\extendedchinesenumber]
-\defineconversion [ac] [\arabicchinesenumber]
-\defineconversion [arabicchinese] [\arabicchinesenumber]
-
-%D Date conversion:
-
-\defineconversion [cn] [\v!day] [\chinesenumber]
-\defineconversion [cn] [\v!month] [\chinesenumber]
-\defineconversion [cn] [\v!year] [\chinesenumber]
-
-%D \macros
-%D {SimChi, TraChi}
-%D
-%D These components enable us to construct dedicated Chinese
-%D font switches, like:
-
-\setupunicodefont
- [chinese]
- [ \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
-%D definition to the \type {\chineseencoding} macro.
-
-\let\chineseencoding\empty
-
-\def\setchineseencoding % normally SomeChineseRegular
- {\getfontfileparameters\unicodestyle
- \ifx\currentfontfileencoding\undefined \else
- \let\chineseencoding\currentfontfileencoding
- \fi}
-
-%D We could have said:
-%D
-%D \starttyping
-%D \defineunicodefont
-%D [SimChi]
-%D [SimplifiedChinese]
-%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 \stoptyping
-%D
-%D However, the former definitions is more general. Next we
-%D map a few fonts:
-
-\definefontsynonym [SimplifiedChineseRegular] [gbsong] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseSlanted] [gbsongsl] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseItalic] [gbsongsl] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseBold] [gbhei] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseBoldSlanted] [gbheisl] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseBoldItalic] [gbheisl] [encoding=gbk]
-
-\definefontsynonym [TraditionalChineseRegular] [b5song] [encoding=big5]
-\definefontsynonym [TraditionalChineseSlanted] [b5songsl] [encoding=big5]
-\definefontsynonym [TraditionalChineseItalic] [b5songsl] [encoding=big5]
-\definefontsynonym [TraditionalChineseBold] [b5hei] [encoding=big5]
-\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]
-
-%D We default to these so called Simplified Chinese fonts.
-
-\SimChi
-
-%D In addition to these fonts, we (pre|)|define some commonly
-%D used fonts:
-
-\definefontsynonym [SimplifiedChineseSongTiRegular] [gbsong] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseSongTiSlanted] [gbsongsl] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseSongTiBold] [gbsong] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseSongTiBoldSlanted] [gbsongsl] [encoding=gbk]
-
-\definefontsynonym [TraditionalChineseSongTiRegular] [b5song] [encoding=big5]
-\definefontsynonym [TraditionalChineseSongTiSlanted] [b5songsl] [encoding=big5]
-\definefontsynonym [TraditionalChineseSongTiBold] [b5song] [encoding=big5]
-\definefontsynonym [TraditionalChineseSongTiBoldSlanted] [b5songsl] [encoding=big5]
-
-\definefontsynonym [SimplifiedChineseHeiTiRegular] [gbhei] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseHeiTiSlanted] [gbheisl] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseHeiTiBold] [gbhei] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseHeiTiBoldSlanted] [gbheisl] [encoding=gbk]
-
-\definefontsynonym [TraditionalChineseHeiTiRegular] [b5hei] [encoding=big5]
-\definefontsynonym [TraditionalChineseHeiTiSlanted] [b5heisl] [encoding=big5]
-\definefontsynonym [TraditionalChineseHeiTiBold] [b5hei] [encoding=big5]
-\definefontsynonym [TraditionalChineseHeiTiBoldSlanted] [b5heisl] [encoding=big5]
-
-\definefontsynonym [SimplifiedChineseKaiTiRegular] [gbkai] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseKaiTiSlanted] [gbkaisl] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseKaiTiBold] [gbkai] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseKaiTiBoldSlanted] [gbkaisl] [encoding=gbk]
-
-\definefontsynonym [TraditionalChineseKaiTiRegular] [b5kai] [encoding=big5]
-\definefontsynonym [TraditionalChineseKaiTiSlanted] [b5kaisl] [encoding=big5]
-\definefontsynonym [TraditionalChineseKaiTiBold] [b5kai] [encoding=big5]
-\definefontsynonym [TraditionalChineseKaiTiBoldSlanted] [b5kaisl] [encoding=big5]
-
-\definefontsynonym [SimplifiedChineseFangSongRegular] [gbfs] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseFangSongSlanted] [gbfssl] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseFangSongBold] [gbfs] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseFangSongBoldSlanted] [gbfssl] [encoding=gbk]
-
-\definefontsynonym [TraditionalChineseFangSongRegular] [b5fs] [encoding=big5]
-\definefontsynonym [TraditionalChineseFangSongSlanted] [b5fssl] [encoding=big5]
-\definefontsynonym [TraditionalChineseFangSongBold] [b5fs] [encoding=big5]
-\definefontsynonym [TraditionalChineseFangSongBoldSlanted] [b5fssl] [encoding=big5]
-
-\definefontsynonym [SimplifiedChineseLiShuRegular] [gbli] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseLiShuSlanted] [gblisl] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseLiShuBold] [gbli] [encoding=gbk]
-\definefontsynonym [SimplifiedChineseLiShuBoldSlanted] [gblisl] [encoding=gbk]
-
-\definefontsynonym [TraditionalChineseLiShuRegular] [b5li] [encoding=big5]
-\definefontsynonym [TraditionalChineseLiShuSlanted] [b5lisl] [encoding=big5]
-\definefontsynonym [TraditionalChineseLiShuBold] [b5li] [encoding=big5]
-\definefontsynonym [TraditionalChineseLiShuBoldSlanted] [b5lisl] [encoding=big5]
-
-%D The following definitions provide us the commands to switch
-%D to these fonts.
-
-\defineunicodefont [SimSongTi] [SimplifiedChineseSongTi] [chinese]
-\defineunicodefont [TraSongTi] [TraditionalChineseSongTi] [chinese]
-
-\defineunicodefont [SimHeiTi] [SimplifiedChineseHeiTi] [chinese]
-\defineunicodefont [TraHeiTi] [TraditionalChineseHeiTi] [chinese]
-
-\defineunicodefont [SimKaiTi] [SimplifiedChineseKaiTi] [chinese]
-\defineunicodefont [TraKaiTi] [TraditionalChineseKaiTi] [chinese]
-
-\defineunicodefont [SimFangSong] [SimplifiedChineseFangSong] [chinese]
-\defineunicodefont [TraFangSong] [TraditionalChineseFangSong] [chinese]
-
-\defineunicodefont [SimLiShu] [SimplifiedChineseLiShu] [chinese]
-\defineunicodefont [TraLiShu] [TraditionalChineseLiShu] [chinese]
-
-% \definealternativestyle [ChineseTitleFont] [\bfd\SimKaiTi] []
-
-%D \macros
-%D {purechinese}
-%D
-%D Use this macro to suppress spacing around Chinese text.
-
-\def\purechinese#1% evt geen rek
- {\hskip\chineseSsignal\relax
- #1\unskip\unskip\unskip
- \hskip\chineseSsignal\relax}
-
-%D \macros
-%D {stillchinese}
-%D
-%D Use the next macro when you want the next item to be put
-%D tight to the previous chinese character.
-
-\def\stillchinese
- {\hskip\chineseSsignal\relax}
-
-%D \macros
-%D {nochinese}
-%D
-%D When we want to be sure of non||Chinese inline text,
-%D we can package the for instance english text in \type
-%D {\nochinese}.
-
-\def\nochinese#1%
- {\unskip\unskip\unskip
- \hskip\chinesesurroundskip
- \hskip\chineseinterglyphskip\relax
- #1%
- \hskip\chineseinterglyphskip\relax
- \hskip\chinesesurroundskip
- \ignorespaces}
-
-%D \macros
-%D {chisize}
-%D
-%D Chinese font sizes are specified in a different way,
-%D using positive and negative numbers:
-
-\def\chisize#1%
- {\ifnum#11<0 % a trick to catch -0
- \ifcase#1\space36\or24\or18\or15\or12\or9\or\else6.5\fi
- \else
- \ifcase#1\space42\or26\or22\or16\or14\or10.5\or7.5\or5.5\else5\fi
- \fi pt}
-
-%D So:
-%D
-%D \startbuffer
-%D [\chisize{-1}] [\chisize{7}] [\chisize{+4}]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D gives:
-%D
-%D \getbuffer
-%D
-%D The full range of sizes is:
-%D
-%D \starttabulate[|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|]
-%D \NC 8 \NC 7 \NC -6 \NC 6 \NC
-%D -5 \NC 5 \NC -4 \NC 4 \NC
-%D -3 \NC 3 \NC -2 \NC 2 \NC
-%D -1 \NC 1 \NC -0 \NC 0 \NC\NR
-%D \NC\chisize {8}\NC\chisize{7}\NC\chisize{-6}\NC\chisize{6}\NC
-%D \chisize{-5}\NC\chisize{5}\NC\chisize{-4}\NC\chisize{4}\NC
-%D \chisize{-3}\NC\chisize{3}\NC\chisize{-2}\NC\chisize{2}\NC
-%D \chisize{-1}\NC\chisize{1}\NC\chisize{-0}\NC\chisize{0}\NC\NR
-%D \stoptabulate
-
-%D Now it's time for some real Chinese. This example
-%D also shows that font switching is supported.
-%D
-%D \startnarrower
-%D \midaligned{\tfd ˮͷ}
-%D \blank
-%D \midaligned{\tfb ﵩƪ滳ɡ}
-%D \blank
-%D \midaligned{\tfb }
-%D \blank
-%D ¼ʱУѾ졣֪ϹڣϦǺꣿ˷ȥ
-%D ֿ¥ߴʤŪӰ˼䣿
-%D \blank
-%D ת󣬵ͻߡӦкޣƫʱԲбϣ
-%D Բȱ¹ȫԸ˳ãǧﹲ濾ꡣ
-%D \stopnarrower
-%D
-%D The english translation is:
-%D
-%D \startnarrower
-%D \midaligned{\tfd Tune: Prelude to the Melody of Water}
-%D \blank
-%D \midaligned{\tfb On the night of the Mid||Autumn Festival of
-%D 1076, I drank happily till dawn and wrote this in my cups
-%D while thinking of Zi||you.}
-%D \blank
-%D \midaligned{\tfb Su Shi}
-%D \blank
-%D How long will the bright moon appear? Wine||cup in hand, I
-%D ask the sky. I do not know waht time of year it would be
-%D tonight in the palace on high. Riding the wind, there I
-%D would fly, yet I fear the crystal palace would be far too
-%D high and cold for me. I rise and dance, with my shadow I
-%D play. On high as on earth, would it be as gay?
-%D \blank
-%D The moon goes round the mansion red though gauze||draped
-%D windows soft to shed her light upon the sleepless bed.
-%D Against man she should have no spite. Why then when people
-%D part is she oft full and bright? Men have sorrow and joy,
-%D they part or meet again; The moon may be bright or dim, she
-%D may wax or wane. There has been nothing perfect since the
-%D olden days. So let us wish that man will live long as he
-%D can! Though miles apart, we'll share the beauty she
-%D displays.
-%D \stopnarrower
-
-%D This package is written in the city of Hasselt, a pretty
-%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
-%D be the same, since now I can at least pretend to know the
-%D glyphs all around the place. The numbers should pose me no
-%D problems, but I fear I will never manage to recognize those
-%D scribles they draw on their pads when thay take your order.
-
-%D To make our lives more easy, we put it here (too):
-
-\setuptyping[\c!tab=\v!no]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/font-heb.mkii b/Master/texmf-dist/tex/context/base/mkii/font-heb.mkii
deleted file mode 100644
index 3ec0395f32a..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/font-heb.mkii
+++ /dev/null
@@ -1,5 +0,0 @@
-\unprotected \writestatus\m!systems{load ARABTEX as a module instead}
-
-\usemodule[arabtex]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/font-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/font-ini.mkii
deleted file mode 100644
index 2bee006370f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/font-ini.mkii
+++ /dev/null
@@ -1,4452 +0,0 @@
-%D \module
-%D [ file=font-ini,
-%D version=1998.09.11, % (second)
-%D version=2001.02.20, % (third)
-%D title=\CONTEXT\ Font Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Font Macros / Initialization}
-
-\unprotect
-
-% \def\fontrange#1%
-% {\dofontrange{#1 =\bodyfontsize}}
-%
-% \def\dofontrange#1%
-% {\dodofontrange#1 \relax}% \fontstringA
-%
-% \def\dodofontrange#1 #2 %
-% {\ifdim\bodyfontsize#2%
-% #1\expandafter\gobbleuntilrelax
-% \else
-% \expandafter\dodofontrange
-% \fi}
-%
-% \definefont
-% [crap]
-% [\fontrange
-% {Regular <10pt
-% RegularBold <12pt
-% RegularSlanted <15pt
-% Regular} sa 1]
-%
-% may be better:
-%
-% \definefontrange
-% [crap]
-% [Regular <10pt
-% RegularBold <12pt
-% RegularSlanted <15pt]
-% [Regular sa 1]
-%
-%
-% \dostepwiserecurse{2}{15}{1}
-% {{\switchtobodyfont[\recurselevel pt]\crap test}\endgraf}
-
-% adapted, else wrong interlinespace
-
-\def\setfontparameters
- {\synchronizefontsfalse
- \the\everybodyfont
- \synchronizefontstrue}
-
-% handy
-
-\newcounter\pushedfont
-
-\def\savefont
- {\edef\savedfont{\the\font}%
- \pushmacro\savedfont
- \pushmacro\currentregime
- \pushmacro\charactermapping
- \pushmacro\characterencoding}
-
-\def\restorefont
- {\popmacro\characterencoding
- \popmacro\charactermapping
- \popmacro\currentregime
- \popmacro\savedfont
- \savedfont}
-
-\def\pushcurrentfont
- {\edef\popcurrentfont
- {\noexpand\def\noexpand\fontbody{\fontbody}%
- \noexpand\def\noexpand\fontstyle{\fontstyle}%
- \noexpand\dosetcurrentfontalternative{\fontalternative}%
- \noexpand\dosetcurrentfontsize{\fontsize}%
- \noexpand\synchronizefont}}
-
-% \definetypeface[one][rm][serif][computer-roman][default]
-% \definetypeface[two][rm][serif][computer-roman][default][rscale=.9]
-%
-% {\one \bf test \two test}
-% {\one \bf test \pushcurrentfont \two \popcurrentfont test}
-
-%D \macros
-%D {definedfont,startfont,doiffontcharelse}
-%D
-%D A couple of relatively new macros:
-
-\newevery \everydefinedfont \relax
-
-\def\dodefinedfont[#1]%
- {\iffirstargument\definefont[\string\thedefinedfont][#1]\fi
- \csname\string\thedefinedfont\endcsname % can be \relax
- \the\everydefinedfont} % hm, redundant
-
-\unexpanded\def\definedfont
- {\dosingleempty\dodefinedfont}
-
-\unexpanded\def\startfont
- {\bgroup\definedfont}
-
-\def\stopfont
- {\egroup}
-
-\def\doiffontcharelse#1#2%
- {\bgroup
- \definedfont[#1]%
- \iffontchar\font#2\relax
- \egroup\expandafter\firstoftwoarguments
- \else
- \egroup\expandafter\secondoftwoarguments
- \fi}
-
-%%% message 14 added
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-%D This module is one of the oldest modules of \CONTEXT. The
-%D macros below evolved out of the \PLAIN\ \TEX\ macros and
-%D therefore use a similar naming scheme (\type{\rm},
-%D \type{\bf}, etc). This module grew out of our needs. We
-%D started with the \PLAIN\ \TEX\ definitions, generalized the
-%D underlaying macros, and extended those to a level at which
-%D probably no one will ever recognize them.
-%D
-%D In 2001 we ran into a couple of projects where more than
-%D one combined set of fonts was involved in a document. To
-%D make definitions more readable, as well as to overcome the
-%D problem of ever growing file name lists, and also because
-%D we needed to scale fonts relative to each other, the low
-%D level implementation was partly rewritten. Global
-%D font assignments, relative scaling, font classes and alike
-%D were added then. At the same time some macros were made a
-%D bit more readable, and math support was extended to the
-%D larger sizes.
-%D
-%D One important characteristic of the font mechanism presented
-%D here is the postponing of font loading. This makes it
-%D possible to distribute \type{fmt} files without bothering
-%D about the specific breed of \type{tfm} files.
-%D
-%D Another feature implemented here is the massive switching
-%D from roman to {\ss sans serif}, {\tt teletype} or else. This
-%D means one doesn't have to take care of all kind of relations
-%D between fonts.
-%D
-%D \page[bigpreference]
-
-%D \macros
-%D {rm,ss,tt,hw,cg}
-%D
-%D Fonts are defined in separate files. When we define a font,
-%D we distinguish between several styles. In most cases we will
-%D use:
-%D
-%D \startlinecorrection
-%D \starttable[|l||]
-%D \HL
-%D \NC roman regular serif \NC \type{\rm} \NC\FR
-%D \NC sansserif sans support \NC \type{\ss} \NC\MR
-%D \NC type teletype mono \NC \type{\tt} \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D The number of styles is not limited to these three. When
-%D using Lucida Bright we can for instance also define:
-%D
-%D \startlinecorrection
-%D \starttable[|l||]
-%D \HL
-%D \NC handwritten \NC \type{\hw} \NC\FR
-%D \NC calligraphic \NC \type{\cg} \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D Anyone who feels the need, can define additional ones, like
-%D
-%D \startlinecorrection
-%D \starttable[|l||]
-%D \HL
-%D \NC faxfont \NC \type{\ff} \NC\FR
-%D \NC blackboard \NC \type{\bb} \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D Or even
-%D
-%D \startlinecorrection
-%D \starttable[|l||]
-%D \HL
-%D \NC hebrew \NC \type{\hb} \NC\SR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D Styles are grouped in font sets. At the moment there are
-%D three main sets defined:
-%D
-%D \startlinecorrection
-%D \starttable[|l|l||]
-%D \HL
-%D \NC Computer Modern Roman \NC Knuth \NC \type{cmr} \NC\FR
-%D \NC Lucida Bright \NC Bigelow \& Holmes \NC \type{lbr} \NC\MR
-%D \NC Standard Postscript Fonts \NC Adobe \NC \type{pos} \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D There are also some Computer Modern Roman alternatives:
-%D
-%D \startlinecorrection
-%D \starttable[|l|l||]
-%D \HL
-%D \NC Computer Modern Roman \NC Knuth \& Sauter \NC \type{sau} \NC\FR
-%D \NC Euler fonts \NC Zapf \NC \type{eul} \NC\MR
-%D \NC Computer Modern Concrete \NC Knuth \& Zapf \NC \type{con} \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D All these definitions are ordered in files with names like
-%D \type{font-cmr} and \type{font-pos}, where the last three
-%D characters specify the name as known to \CONTEXT.
-%D
-%D Within such a font set (\type{cmr}) and style (\type{\rm})
-%D we can define a number of text font alternatives:
-%D
-%D \startlinecorrection
-%D \starttable[|l||]
-%D \HL
-%D \NC typeface \NC \type{\tf} \NC\FR
-%D \NC boldface \NC \type{\bf} \NC\MR
-%D \NC slanted \NC \type{\sl} \NC\MR
-%D \NC italic \NC \type{\it} \NC\MR
-%D \NC boldslanted \NC \type{\bs} \NC\MR
-%D \NC bolditalic \NC \type{\bi} \NC\MR
-%D \NC smallcaps \NC \type{\sc} \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-
-%D For old stylish Frans Goddijn we have:
-%D
-%D \startlinecorrection
-%D \starttable[|l||]
-%D \HL
-%D \NC oldstyle \NC \type{\os} \NC\SR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D The availability of these alternatives depends on the
-%D completeness of a font family and of course the definitions
-%D in the font files.
-%D
-%D But let's not forget math. In addition to the previous \TEX\
-%D families (the mysterious \type{\fam}'s) we've got some more:
-%D
-%D \startlinecorrection
-%D \starttable[|l||]
-%D \HL
-%D \NC Math Roman \NC \type{\mr} \NC\FR
-%D \NC Math Italic \NC \type{\mi} \NC\MR
-%D \NC Math Symbol \NC \type{\sy} \NC\MR
-%D \NC Math Extra \NC \type{\ex} \NC\MR
-%D \NC Math A \NC \type{\ma} \NC\MR
-%D \NC Math B \NC \type{\mb} \NC\MR
-%D \NC Math C \NC \type{\mc} \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D Users can call for specific fonts in many ways. Switches to
-%D other typefaces, like the switch from normal to bold, are as
-%D intuitive as possible, which means that all dependant fonts
-%D also switch. One can imagine that this takes quite some
-%D processing time.
-%D
-%D Internally fonts are stored as combination of size, style
-%D and alternative, e.g. \type{12pt}+\type{\ss}+\type{\bf}.
-%D Users are not confronted with sizes, but use the style or
-%D style+alternative to activate them.
-%D
-%D During the definition of a bodyfont one can also declare the
-%D available larger alternatives:
-%D
-%D \starttyping
-%D \tf \tfa \tfb \tfc ...
-%D \bf \bfa \bfb \bfc ...
-%D \sl \sla \slb \slc ...
-%D \stoptyping
-%D
-%D The smaller ones are automatically supplied and derived from
-%D the the bodyfont environment.
-%D
-%D \starttyping
-%D \tfx \tfxx
-%D \bfx \bfxx
-%D \slx \slxx
-%D \stoptyping
-%D
-%D There are only two smaller alternatives per style. The
-%D larger alternatives on the other hand have no limitations.
-%D
-%D These larger alternatives are mostly used in chapter and
-%D section titles or on title pages. When one switches to a
-%D larger alternative, the bold an other ones automatically
-%D adapt themselves:
-%D
-%D \startbuffer
-%D \tfd Hi \bf there\sl, here \tfb I \bf am
-%D \stopbuffer
-%D
-%S \startnarrower
-%D \typebuffer
-%S \stopnarrower
-%D
-%D therefore becomes:
-%D
-%D \startvoorbeeld
-%D \getbuffer
-%D \stopvoorbeeld
-%D
-%D Maybe this mechanism isn't always as logic, but as said
-%D before, we tried to make it as intuitive as possible.
-%D
-%D So a specific kind of glyph can be characterized by:
-%D
-%D \startnarrower
-%D family (cmr) + bodyfont (12pt) + style (rm) + alternative (bf) + size (a)
-%D \stopnarrower
-%D
-%D The last component (the size) is optional.
-%D
-%D We introduced \type{\tf} as command to call for the current
-%D normally sized typeface. This commands results in roman,
-%D sans serif, teletype or whatever style is in charge. Such
-%D rather massive switches of style sometimes take more
-%D processing time than comfortable. Of course there is a
-%D workaround for this: we can call fonts directly by means of
-%D commands like:
-%D
-%D \starttyping
-%D \rmtf \sssl \tttf \rmbsa
-%D \stoptyping
-%D
-%D One should realize that this fast calls have limitations,
-%D they lack for instance automatic super- and subscript
-%D support.
-%D
-%D This leaves us two more commands: \type{\tx} and
-%D \type{\txx}. These activate a smaller and even more smaller
-%D font than the current one and adapt themselves to the
-%D current alternative, so when \type{\bf} is active,
-%D \type{\tx} gives a smaller boldface, which in turn can be
-%D called directly by \type{\bfx}.
-%D
-%D These two smaller alternatives are specified by the bodyfont
-%D environment and therefore not necessarily have similar sizes
-%D as \type{\scriptsize} and \type{\scriptscriptsize}. The main
-%D reason for this incompatibility (which can easily be undone)
-%D lays in the fact that we often want a bit bigger characters
-%D than in math mode. In \CONTEXT\ for instance the \type{\tx}
-%D and \type{\txx} commands are used for surrogate
-%D \cap{smallcaps} which support both nesting and alternatives,
-%D like in {\bf\cap{a \cap{small} world}}, which was typeset by
-%D
-%D \starttyping
-%D \bf\cap{a \cap{small} world}
-%D \stoptyping
-%D
-%D And compare $\rm \scriptstyle THIS$ with the slightly larger
-%D \cap{THIS}: \ruledhbox{$\rm \scriptstyle scriptstyle: THIS$}
-%D or \ruledhbox{\cap{x style: THIS}} makes a big difference.
-
-%D The \type{x..d} sizes should be used grouped. If you
-%D don't group them, i.e. call them in a row, \CONTEXT\ will
-%D not be able to sort out your intention (\type {x} inside
-%D \type {d} inside \type {x}. etc.). The following table
-%D demonstrates this:
-%D
-%D \def\FontState{\setstrut\ruledhbox{\strut Hello}}
-%D
-%D \starttabulate[|||||]
-%D \HL
-%D \NC \rlap{\quad\bf grouped} \NC \NC \type {\tx} \NC \type {\txx} \NC \NR
-%D \HL
-%D \NC \type{\tfx} \NC \tfx \FontState \NC \tfx \tx \FontState \NC \tfx \txx \FontState \NC \NR
-%D \NC \type{\tfxx} \NC \tfxx \FontState \NC \tfxx\tx \FontState \NC \tfxx\txx \FontState \NC \NR
-%D \NC \type{\tf} \NC \tf \FontState \NC \tf \tx \FontState \NC \tf \txx \FontState \NC \NR
-%D \NC \type{\tfa} \NC \tfa \FontState \NC \tfa \tx \FontState \NC \tfa \txx \FontState \NC \NR
-%D \NC \type{\tfb} \NC \tfb \FontState \NC \tfb \tx \FontState \NC \tfb \txx \FontState \NC \NR
-%D \NC \type{\tfc} \NC \tfc \FontState \NC \tfc \tx \FontState \NC \tfc \txx \FontState \NC \NR
-%D \NC \type{\tfd} \NC \tfd \FontState \NC \tfd \tx \FontState \NC \tfd \txx \FontState \NC \NR
-%D \NC \type{\tfx} \NC \tfx \FontState \NC \tfx \tx \FontState \NC \tfx \txx \FontState \NC \NR
-%D \NC \type{\tfxx} \NC \tfxx \FontState \NC \tfxx\tx \FontState \NC \tfxx\txx \FontState \NC \NR
-%D \HL
-%D \stoptabulate
-%D
-%D \blank
-%D
-%D \starttabulate[|||||]
-%D \HL
-%D \NC \rlap{\quad\bf stacked} \NC \NC \type {\tx} \NC \type {\txx} \NC \NR
-%D \HL
-%D \NC \type{\tfx}
-%D \NC \tfx \FontState
-%D \NC \tfx \tx \FontState
-%D \NC \tfx \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfxx}
-%D \NC \tfx\tfxx \FontState
-%D \NC \tfx\tfxx \tx \FontState
-%D \NC \tfx\tfxx \txx \FontState
-%D \NC \NR
-%D \NC \type{\tf}
-%D \NC \tfx\tfxx\tf \FontState
-%D \NC \tfx\tfxx\tf \tx \FontState
-%D \NC \tfx\tfxx\tf \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfa}
-%D \NC \tfx\tfxx\tf\tfa \FontState
-%D \NC \tfx\tfxx\tf\tfa \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfb}
-%D \NC \tfx\tfxx\tf\tfa\tfb \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfc}
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfd}
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfd \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfx}
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx \txx \FontState
-%D \NC \NR
-%D \NC \type{\tfxx}
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \tx \FontState
-%D \NC \tfx\tfxx\tf\tfa\tfb\tfc\tfx\tfxx \txx \FontState
-%D \NC \NR
-%D \HL
-%D \stoptabulate
-
-%D \macros
-%D {mf}
-%D
-%D Math fonts are a species in their own. They are tightly
-%D hooked into smaller and even smaller ones of similar breed
-%D to form a tight family. Let's first see how these are
-%D related:
-%D
-%D \startbuffer
-%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+ \bi x^2 =\rm 6x^2$
-%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+{\bi x^2}=\rm 6x^2$
-%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+ \bi x^2 =\tf 6x^2$
-%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+{\bi x^2}=\tf 6x^2$
-%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+ \bi x^2 =\bf 6x^2$
-%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+{\bi x^2}=\bf 6x^2$
-%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+ \bi x^2 =\sl 6x^2$
-%D $\tf x^2+\bf x^2+\sl x^2+\it x^2+\bs x^2+{\bi x^2}=\sl 6x^2$
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Gives both an expected and unexpected result:
-%D
-%D \startvoorbeeld
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D \stopvoorbeeld
-%D
-%D We see here that the character shapes change accordingly to
-%D the current family, but that the symbols are always typeset
-%D in the font assigned to \type{\fam0}.
-%D
-%D \startbuffer
-%D $\tf\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
-%D $\bf\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
-%D $\sl\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
-%D $\bs\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
-%D $\it\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
-%D $\bi\mf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = 6x^2$
-%D \stopbuffer
-%D
-%D \startvoorbeeld
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D \stopvoorbeeld
-%D
-%D In this example we see a new command \type{\mf} surface
-%D which means as much as {\em math font}. This commands
-%D reactivates the last font alternative and therefore equals
-%D \type{\bf}, \type{\sl} etc. but by default it equals
-%D \type{\tf}:
-
-\unexpanded\def\mf
- {\dodosetmathfont\fontalternative
- \csname\fontalternative\endcsname}
-
-%D The previous example was typeset saying:
-%D
-%D \typebuffer
-%D
-%D Beware: the exact location of \type{\mf} is not that
-%D important, we could as well has said
-%D
-%D \startbuffer
-%D $\bf x^2 + x^2 + x^2 + x^2 + x^2 + x^2 = \mf 6x^2$
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D This is due to the way \TEX\ handles fonts in math mode.
-%D
-%D Of course we'll have to redefine \type{\mf} every time we
-%D change the current \type{\fam}.
-
-%D \macros
-%D {mbox,enablembox,mathop}
-%D
-%D Now how can we put this to use? Will the next sequence
-%D give the desired result?
-%D
-%D \startbuffer
-%D $\bf x^2 + \hbox{\mf whatever} + \sin(2x)$
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D It won't!
-%D
-%D \startvoorbeeld
-%D \let\mathop=\normalmathop \getbuffer
-%D \stopvoorbeeld
-%D
-%D The reason for this is that \type{\sin} is defined as:
-%D
-%D \starttyping
-%D \def\sin{\mathop{\rm sin}\nolimits}
-%D \stoptyping
-%D
-%D We can fix this by defining
-
-\unexpanded\def\mathop
- {\normalmathop
- \bgroup
- \let\rm\mf
- \let\next=}
-
-%D We can fix arbitrary horizontal boxes by redefining the
-%D \TEX\ primitive \type{\hbox}:
-%D
-%D \starttyping
-%D \def\hbox{\ifmmode\mbox\else\normalhbox\fi}
-%D \stoptyping
-%D
-%D with
-%D
-%D \starttyping
-%D \def\mbox#1#%
-%D {\normalhbox#1\bgroup\mf\let\next=}
-%D \stoptyping
-%D
-%D or more robust, that is, also accepting \type{\hbox\bgroup}:
-%D
-%D \starttyping
-%D \def\mbox%
-%D {\normalhbox\bgroup\mf
-%D \dowithnextbox{\flushnextbox\egroup}%
-%D \normalhbox}
-%D \stoptyping
-%D
-%D And now:
-%D
-%D \startbuffer
-%D $\bf x^2 + \hbox{whatever} + \sin(2x)$
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Indeed gives:
-%D
-%D \startvoorbeeld
-%D \enablembox\getbuffer
-%D \stopvoorbeeld
-%D
-%D But, do we want this kind of trickery to be activated? No,
-%D simply because we cannot be sure of incompatibilities,
-%D although for instance unboxing goes ok. Therefore we
-%D introduce:
-
-% best can go to math-ini and make \mf a hook then
-
-% better use \dowithnextboxcontent
-
-\def\normalmbox
- {\normalhbox\bgroup\mf
- \dowithnextbox{\flushnextbox\egroup}\normalhbox}
-
-% to test:
-%
-% \def\normalmbox
-% {\dowithnextboxcontent\mf\flushnextbox\normalhbox}
-
-\def\mbox % we cannot add \dontleavehmode ... else no \setbox0\mbox possible
- {\ifmmode\normalmbox\else\normalhbox\fi}
-
-\def\enablembox
- {\appendtoks
- \ifx\normalhbox\undefined\let\normalhbox\hbox\fi
- \let\hbox\mbox
- \to\everymathematics}
-
-%D So in fact one can enable this feature if needed. I would say:
-%D go along, but use grouping if needed!
-
-%D \macros
-%D {mrfam,mifam,syfam,exfam,
-%D bsfam,bifam,scfam,tffam,
-%D mafam,mbfam,msfam}
-%D
-%D After this short mathematical excursion, we enter the world
-%D of fonts and fontswitching. We start with something very
-%D \TEX: \type{\fam} specified font families. \TEX\ uses
-%D families for managing fonts in math mode. Such a family has
-%D three members: text, script and scriptscript: $x^{y^z}$. In
-%D \CONTEXT\ we take a bit different approach than \PLAIN\
-%D \TEX\ does. \PLAIN\ \TEX\ needs at least four families for
-%D typesetting math. We use those but give them symbolic names.
-
-\chardef\mrfam = 0 % (Plain TeX) Math Roman
-\chardef\mifam = 1 % (Plain TeX) Math Italic
-\chardef\syfam = 2 % (Plain TeX) Math Symbol
-\chardef\exfam = 3 % (Plain TeX) Math Extra
-
-%D \PLAIN\ \TEX\ also defines families for {\it italic}, {\sl
-%D slanted} and {\bf bold} typefaces, so we don't have to
-%D define them here.
-
-\ifx\itfam\undefined
-
-\chardef\itfam = 4 % (Plain TeX) Italic
-\chardef\slfam = 5 % (Plain TeX) Slanted
-\chardef\bffam = 6 % (Plain TeX) Boldface
-
-\fi
-
-%D Family~7 in \PLAIN\ \TEX\ is not used in \CONTEXT, because
-%D we do massive switches from roman to sans serif, teletype or
-%D other faces.
-
-\ifx\ttfam\undefined
-
-\chardef\ttfam = 7 % (Plain TeX) can be reused!
-
-\fi
-
-%D We define ourselves some more families for {\bs bold
-%D slanted}, {\bi bold italic} and {\sc Small Caps}, so
-%D we can use them in math mode too. Instead of separate
-%D families for {\ss sans serif} and \type{teletype} we use the
-%D more general \type{\tffam}, which stands for typeface.
-
-\chardef\bsfam = 8 % (ConTeXt) BoldSlanted
-\chardef\bifam = 9 % (ConTeXt) BoldItalic
-\chardef\scfam = 10 % (ConTeXt) SmallCaps
-\chardef\tffam = 11 % (ConTeXt) TypeFace
-
-%D Because Taco needs a few more math families, we reuse
-%D family~7 for all those typefaces that have no related
-%D family, and therefore are grouped into one.
-
-\chardef\nnfam = 7 % (ReUsed) NoName
-
-%D Normally \type{\mrfam} equals \type{\tffam}, but a more
-%D distinctive alternatives are possible, for instance the
-%D Euler and Concrete Typefaces.
-%D
-%D After having defined all those in nature non||mathematical
-%D families, we define ourselves some real math ones. These are
-%D needed for the \AMS\ Symbol Fonts and Extended Lucida
-%D Bright.
-
-\chardef\mafam = 12 % (ConTeXt) Math A Fam (AmsTeX A)
-\chardef\mbfam = 13 % (ConTeXt) Math B Fam (AmsTeX B)
-\chardef\mcfam = 14 % (ConTeXt) Math C Fam (MathTime)
-\chardef\mdfam = 15 % (ConTeXt) Math D Fam (MathTime)
-
-%D Because there are 16~families and because \type{\ttfam}
-%D is reused, at the moment we have no so many families
-%D left. By default, we map any newly defined family on the
-%D last one (F).
-
-\def\newfam#1{\chardef#1=15 }
-
-%D This hack is also needed because in \ETEX\ we are going
-%D to reuse the \type {\newfam} allocation counter.
-
-%D To ease the support of font packages, we als define
-%D shortcuts to these familynames. This is necessary because
-%D the family names are in fact \type{\chardef}'s, which means
-%D that we're dealing with numbers (one can check this by
-%D applying \type{\showthe} and \type{\show}). In the
-%D specification of math symbols however we need hexadecimal
-%D numbers, so we have to convert the \type{\fam}'s value.
-
-\edef\hexmrfam {\hexnumber\mrfam} \edef\hexbsfam {\hexnumber\bsfam}
-\edef\hexmifam {\hexnumber\mifam} \edef\hexbifam {\hexnumber\bifam}
-\edef\hexsyfam {\hexnumber\syfam} \edef\hexscfam {\hexnumber\scfam}
-\edef\hexexfam {\hexnumber\exfam} \edef\hextffam {\hexnumber\tffam}
-\edef\hexitfam {\hexnumber\itfam} \edef\hexmafam {\hexnumber\mafam}
-\edef\hexslfam {\hexnumber\slfam} \edef\hexmbfam {\hexnumber\mbfam}
-\edef\hexbffam {\hexnumber\bffam} \edef\hexmcfam {\hexnumber\mcfam}
-\edef\hexnnfam {\hexnumber\nnfam} \edef\hexmdfam {\hexnumber\mdfam}
-
-%D \macros
-%D {uchar}
-%D
-%D This macro prepares \CONTEXT\ for \UNICODE\ support. By
-%D defining it here, we have at least an safeguard for utility
-%D file reading.
-
-\ifx\uchar\undefined \unexpanded\def\uchar#1#2{[#1,#2]} \fi
-
-%D We define some (very private) constants to improve speed,
-%D memory usage and consistency.
-
-\def\@size@ {@f@si@} % bodyfont size prefix (12pt etc)
-\def\@style@ {@f@st@} % full style prefix (roman etc)
-\def\@shortstyle@ {@f@sh@} % short style prefix (rm etc)
-\def\@letter@ {@f@le@} % first alternative typeface
-\def\@noletter@ {@f@no@} % second alternative typeface
-\def\@fontclass@ {@f@cl@} % fontclass
-
-%D The families can be grouped into math specific ones and
-%D more text related families, although text ones can be
-%D mapped onto the math ones to get for instance bold math.
-%D
-%D Both groups of families are handles by a couple of token
-%D list tagged as strategies. This implementation makes
-%D implementing extensions more comfortable.
-
-\newtoks \textstrategies
-\newtoks \mathstrategies
-\newtoks \symbstrategies
-
-\newif\ifsynchronizemathfonts \synchronizemathfontstrue
-
-\def\synchronizetext % stylish text in mmode
- {\ifsynchronizemathfonts\the\textstrategies\fi} % \if...\fam\minusone\fi}
-
-\def\synchronizemath % math stuff in mmode
- {\ifsynchronizemathfonts\the\mathstrategies\fi} % \if...\fam\minusone\fi}
-
-\def\synchronizesymb % stylish math stuff in mmode
- {\ifsynchronizemathfonts\the\symbstrategies\fi} % \if...\fam\minusone\fi}
-
-%D By not setting the family we can append a font switch to \type
-%D {\everymath}. On the other hand, one never knows in what family
-%D state the strategies brought us.
-%D
-%D \starttyping
-%D {\bfa $\the\fam$} {\bfa \everymath{} $\the\fam$}
-%D \stoptyping
-
-%D \macros
-%D {textonly}
-%D
-%D We can inhibit this slow||downer with:
-
-\def\textonly{\synchronizemathfontsfalse} % document this
-
-\appendtoks
- \dosettextfamily\c!tf
- \dosettextfamily\c!bf
- \dosettextfamily\c!sl
- \dosettextfamily\c!it
- \dosettextfamily\c!bs
- \dosettextfamily\c!bi
- \dosettextfamily\c!sc
-\to \textstrategies
-
-\def\dosettextfamily#1% better pass fontbody to dodoset
- {\let\savedfontbody\fontbody
- \let\fontfamily#1%
- \let\fontbody\scriptscriptface\dodosettextfamily\scriptscriptfont
- \let\fontbody\scriptface \dodosettextfamily \scriptfont
- \let\fontbody\textface \dodosettextfamily \textfont
- \let\fontbody\savedfontbody}
-
-% \def\s!nullfont{nullfont}
-
-\def\dodosettextfamily
- {\ifx\fontclass\empty
- \@EA\dodosettextfamilyA
- \else
- \@EA\dodosettextfamilyB
- \fi}
-
-\def\dodosettextfamilyA#1%
- {\ifcsname \fontbody\c!mm\fontfamily\fontsize\endcsname \autofontsizefalse
- \csname \fontbody\c!mm\fontfamily\fontsize\endcsname \else
- \ifcsname \fontbody\c!mm\fontfamily\endcsname \autofontsizetrue
- \csname \fontbody\c!mm\fontfamily\endcsname \else
- \ifcsname \fontbody\c!rm\fontfamily\fontsize\endcsname \autofontsizefalse
- \csname \fontbody\c!rm\fontfamily\fontsize\endcsname \else
- \ifcsname \fontbody\c!rm\fontfamily\endcsname \autofontsizetrue
- \csname \fontbody\c!rm\fontfamily\endcsname \else
- \nullfont \autofontsizetrue
- \fi\fi\fi\fi
- #1\csname\fontfamily\s!fam\endcsname\font}
-
-\def\dodosettextfamilyB#1%
- {\ifcsname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname \autofontsizefalse
- \csname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname \else
- \ifcsname\fontclass\fontbody\c!mm\fontfamily\endcsname \autofontsizetrue
- \csname\fontclass\fontbody\c!mm\fontfamily\endcsname \else
- \ifcsname\fontclass\fontbody\c!rm\fontfamily\fontsize\endcsname \autofontsizefalse
- \csname\fontclass\fontbody\c!rm\fontfamily\fontsize\endcsname \else
- \ifcsname\fontclass\fontbody\c!rm\fontfamily\endcsname \autofontsizetrue
- \csname\fontclass\fontbody\c!rm\fontfamily\endcsname \else
- \dodosettextfamilyA#1%
- \fi\fi\fi\fi
- #1\csname\fontfamily\s!fam\endcsname\font}
-
-\def\mrfallback{\c!rm\c!tf}
-
-\appendtoks
- \dosetmathfamily\mrfam\textface\scriptface\scriptscriptface\c!mr\mrfallback
- \dosetmathfamily\mifam\textface\scriptface\scriptscriptface\c!mi\empty
- \dosetmathfamily\syfam\textface\scriptface\scriptscriptface\c!sy\empty
- \dosetmathfamily\exfam\textface\textface \textface \c!ex\empty
- \dosetmathfamily\mafam\textface\scriptface\scriptscriptface\c!ma\empty
- \dosetmathfamily\mbfam\textface\scriptface\scriptscriptface\c!mb\empty
- \dosetmathfamily\mcfam\textface\scriptface\scriptscriptface\c!mc\empty
-% \dosetmathfamily\mdfam\textface\scriptface\scriptscriptface\c!md\empty
- \dosetmathfamily\nnfam\textface\scriptface\scriptscriptface\c!nn\empty
-\to \mathstrategies
-
-\appendtoks
- \dosetskewchar\mifam\defaultskewcharmi % implemented later on
- \dosetskewchar\syfam\defaultskewcharsy % implemented later on
-\to \mathstrategies
-
-\def\dosetmathfamily#1#2#3#4#5#6%
- {\let\savedfontbody\fontbody % op hoger plan
- \let\fontfamily#5%
- \let\backfamily#6%
- \let\fontbody #4\dodosetmathfamily\scriptscriptfont#1%
- \let\fontbody #3\dodosetmathfamily \scriptfont#1%
- \let\fontbody #2\dodosetmathfamily \textfont#1%
- \let\fontbody\savedfontbody}
-
-\def\dodosetmathfamily
- {\ifx\fontclass\empty
- \@EA\dodosetmathfamilyA
- \else
- \@EA\dodosetmathfamilyB
- \fi}
-
-\def\dodosetmathfamilyA#1#2%
- {\ifcsname \fontbody\c!mm\fontfamily\fontsize\endcsname \autofontsizefalse
- \csname \fontbody\c!mm\fontfamily\fontsize\endcsname \else
- \ifcsname \fontbody\c!mm\fontfamily \endcsname \autofontsizetrue
- \csname \fontbody\c!mm\fontfamily \endcsname \else
- \ifcsname \fontbody \backfamily\fontsize\endcsname \autofontsizefalse
- \csname \fontbody \backfamily\fontsize\endcsname \else
- \ifcsname \fontbody \backfamily \endcsname \autofontsizetrue
- \csname \fontbody \backfamily \endcsname \else
- \nullfont \autofontsizetrue
- \fi\fi\fi\fi
- #1#2\font}
-
-\def\dodosetmathfamilyB#1#2%
- {\ifcsname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname \autofontsizefalse
- \csname\fontclass\fontbody\c!mm\fontfamily\fontsize\endcsname \else
- \ifcsname\fontclass\fontbody\c!mm\fontfamily \endcsname \autofontsizetrue
- \csname\fontclass\fontbody\c!mm\fontfamily \endcsname \else
- \ifcsname\fontclass\fontbody \backfamily\fontsize\endcsname \autofontsizefalse
- \csname\fontclass\fontbody \backfamily\fontsize\endcsname \else
- \ifcsname\fontclass\fontbody \backfamily \endcsname \autofontsizetrue
- \csname\fontclass\fontbody \backfamily \endcsname \else
- \dodosetmathfamilyA#1#2%
- \fi\fi\fi\fi
- #1#2\font}
-
-\appendtoks
- \dosetsymbfamily\mrfam\textface\scriptface\scriptscriptface\c!mr
- \dosetsymbfamily\mifam\textface\scriptface\scriptscriptface\c!mi
- \dosetsymbfamily\syfam\textface\scriptface\scriptscriptface\c!sy
- \dosetsymbfamily\exfam\textface\textface \textface \c!ex
- \dosetsymbfamily\mafam\textface\scriptface\scriptscriptface\c!ma
- \dosetsymbfamily\mbfam\textface\scriptface\scriptscriptface\c!mb
- \dosetsymbfamily\mcfam\textface\scriptface\scriptscriptface\c!mc
-% \dosetsymbfamily\mdfam\textface\scriptface\scriptscriptface\c!md % also ?
-\to \symbstrategies
-
-\def\dosetsymbfamily#1#2#3#4#5%
- {\let\savedfontbody\fontbody
- \let\fontfamily#5%
- \let\fontbody #4\dodosetsymbfamily\scriptscriptfont#1%
- \let\fontbody #3\dodosetsymbfamily \scriptfont#1%
- \let\fontbody #2\dodosetsymbfamily \textfont#1%
- \let\fontbody\savedfontbody}
-
-\def\dodosetsymbfamily#1#2%
- {\ifcsname\fontclass\fontbody\c!mm\fontfamily\fontalternative\fontsize\endcsname
- \csname\fontclass\fontbody\c!mm\fontfamily\fontalternative\fontsize\endcsname
- #1#2\font
- \else\ifcsname\fontbody\c!mm\fontfamily\fontalternative\fontsize\endcsname
- \csname\fontbody\c!mm\fontfamily\fontalternative\fontsize\endcsname
- #1#2\font
- \fi\fi}
-
-%D All used styles, like rm, ss and tt, are saved in a comma
-%D separated list. Appart from practical limitations one can
-%D define as many styles as needed.
-
-\def\fontrelativesizelist{\s!text,\s!script,\s!scriptscript,\c!x,\c!xx,\c!big,\c!small}
-
-%D \macros
-%D {magfactor,magfactorhalf}
-%D
-%D There are several ways to specify a font. Three of them are
-%D pure \TeX\ ones, the fourth one is new:
-%D
-%D \starttyping
-%D \font\name=cmr12
-%D \font\name=cmr12 at 10pt
-%D \font\name=cmr12 scaled \magstep2
-%D \font\name=cmr12 sa 1.440
-%D \stoptyping
-%D
-%D The non||\TEX\ alternative \type{sa} stands for {\em scaled
-%D at}. This means as much as: scale the bodyfontsize with this
-%D factor. The value 1.440 in this example is derived
-%D from the \type{\magstep}'s as mentioned in
-%D \in{table}[tab:magstep]. We therefore introduce
-%D \type{\magfactor} as an alternative for \type{\magstep}.
-%D
-%D \placetable[here][tab:magstep]
-%D {Factors to be used with \type{sa.}}
-%D \starttable[|c|c|c|]
-%D \HL
-%D \NC \bf magstep \NC \bf equivalent \NC \bf factor \NC\SR
-%D \HL
-%D \NC 1 \NC \type{\magfactor1} \NC 1.200 \NC\FR
-%D \NC 2 \NC \type{\magfactor2} \NC 1.440 \NC\MR
-%D \NC 3 \NC \type{\magfactor3} \NC 1.728 \NC\MR
-%D \NC 4 \NC \type{\magfactor4} \NC 2.074 \NC\MR
-%D \NC 5 \NC \type{\magfactor5} \NC 2.488 \NC\LR
-%D \HL
-%D \stoptable
-
-\def\magstep#1% \relax removed, otherwise space after it sticks, else added
- {\ifcase#1 1000\or1200\or1440\or1728\or2074\or2488\or1000\fi}
-
-\def\magstephalf
- {1095}
-
-\def\magfactor#1%
- {\ifcase#1 1.000\or1.200\or1.440\or1.728\or2.074\or2.488\or1\fi}
-
-\def\magfactorhalf
- {1.095}
-
-%D These macros enable the use of definitions like \type{sa
-%D \magfactor3} which saves us both (mis|)|calculations and
-%D potential mistypings.
-%D
-%D Because \type {sa} (scaled at) and \type {mo} (mapped on)
-%D are not low level \TEX\ supported alternatives, we have to
-%D test for it ourselves. In doing so, we need an auxiliary
-%D \DIMENSION. We cannot use \type{\scratchdimen} because font
-%D loading can happen at any moment due to postponed loading.
-%D We could instead have used dirty grouping tricks, but this
-%D one works too.
-
-\let\defaultrelativefontsize \plusone
-\let\localrelativefontsize \plusone
-\def\localabsolutefontsize {\fontbody}
-
-\let\relativefontsize \defaultrelativefontsize
-
-\def\saverelativefontsize#1#2% #1=rm|ss|.. #2=waarde
- {\setxvalue{\fontclass#1\s!rscale}{#2}}
-
-\def\checkrelativefontsize#1%
- {\edef\relativefontsize
- {\ifcsname\fontclass#1\s!rscale\endcsname
- \csname\fontclass#1\s!rscale\endcsname
- \else
- \defaultrelativefontsize
- \fi}}
-
-%D We also save:
-
-\def\savemathtextstyle#1% #1=rm|ss|..
- {\doifsomething{#1}{\setxvalue{\fontclass\c!mm\s!text}{#1}}}
-
-\def\currentmathtextstyle % we default to empty !
- {\executeifdefined{\fontclass\c!mm\s!text}\empty}
-
-%D Scaling macros:
-
-\newdimen\scaledfont
-
-\let\somefontspec\empty
-
-\def\@fs@{@fs@}
-
-% \def\parsefontspec#1%
-% {\xdef\somefontspec{#1\space\relax}%
-% \@EA\doparsefontspec\somefontspec]% =>#1 \relax]
-% \donoparsefontspec}
-%
-% but, better:
-
-\let\somefontname\empty
-
-\def\parsefontspec#1%
- {\xdef\somefontspec{#1\space}%
- \@EA\doparsefontspec\somefontspec\relax]% =>#1 \relax]
- \donoparsefontspec}
-
-\def\doparsefontspec#1 #2%
- {\def\somefontname{#1}%
- \ifx\somefontname\empty % space before fontname
- \@EA\doparsefontspec
- \else\ifx#2\relax
- \@EAEAEA\setnaturalfontspec
- \else
- \@EAEAEA\setforcedfontspec
- \fi\fi
- #2}
-
-\def\setnaturalfontspec#1]%
- {\@fs@scaled\plusthousand\relax}
-
-\def\setforcedfontspec#1 #2\relax]%
- {\csname\@fs@#1\endcsname#2\relax}
-
-\def\@fs@scaled
- {\afterassignment\do@fs@scaled\scratchcounter}
-
-\def\do@fs@scaled#1\relax
- {\scaledfont\number\scratchcounter\points
- \scaledfont\localrelativefontsize\scaledfont
- \ifautofontsize\scaledfont\currentfontbodyscale\scaledfont\fi
- \scratchcounter\scaledfont % \scaledfont is now pretty large
- \advance\scratchcounter \medcard
- \divide\scratchcounter \maxcard
- \xdef\somefontspec{ scaled \the\scratchcounter}}
-
-\def\@fs@at
- {\afterassignment\do@fs@at\scaledfont}
-
-\def\do@fs@at#1\relax
- {\scaledfont\localrelativefontsize\scaledfont
- \ifautofontsize\scaledfont\currentfontbodyscale\scaledfont\fi
- \xdef\somefontspec{ at \the\scaledfont}}
-
-\def\@fs@sa
- {\scaledfont\localabsolutefontsize
- \setsamofontspec}
-
-\def\@fs@mo
- {\scaledfont\setmappedfontsize\localabsolutefontsize
- \setsamofontspec}
-
-\def\setsamofontspec#1\relax
- {\checkfontscale#1\end\scaledfont
- \scaledfont\localrelativefontsize\scaledfont
- \ifautofontsize\scaledfont\currentfontbodyscale\scaledfont\fi
- \xdef\somefontspec{ at \the\scaledfont}}
-
-\def\getfontparameters
- {\expandafter\dogetfontparameter\@@fontdata,]=,}
-
-\def\getglobalfontparameters
- {\expandafter\dogetglobalfontparameter\@@fontdata,]=,}
-
-\def\dogetfontparameter#1=#2,%
- {\if]#1\else
- \expandafter\def\csname\??ff\@@fontfile#1\endcsname{#2}%
- \expandafter\dogetfontparameter
- \fi}
-
-\def\dogetglobalfontparameter#1=#2,%
- {\if]#1\else
- \expandafter\gdef\csname\??ff\@@fontfile#1\endcsname{#2}%
- \expandafter\dogetglobalfontparameter
- \fi}
-
-\let\@@fontencoding\empty
-\let\@@fontmapping \empty
-\let\@@fonthandling\empty
-\let\@@fontfeatures\empty
-\let\@@skewchar \empty
-\let\@@hyphenchar \empty % todo, will go to encoding
-
-%D This brings down maps processing from 466 to 309 seconds
-%D ($-33$\%) and mfonts from 42 to 34 seconds ($-15$\%).
-
-\newif\ifskipfontcharacteristics \skipfontcharacteristicstrue
-
-%D When fontclasses are used, we define the font global,
-%D since namespaces are used. Otherwise we parse the specs
-%D each time.
-
-% wrong: this way we cannot set encoding etc
-%
-% \def\donoparsefontspec#1%
-% {\edef\fontfile{\truefontname\somefontname}%
-% \ifx\fontfile\s!unknown \let\fontfile\defaultfontfile \fi
-% \edef\lastfontname{\fontfile\somefontspec}%
-% \ifx\fontclass\empty\else\global\fi
-% \expandafter\font\csname#1\endcsname\lastfontname\relax
-% \relax}
-
-\let\fontfile\s!unknown
-
-% \definefontsynonym
-% [blabla]
-% [name:Latin Modern Something]
-% \definefontsynonym
-% [blabla]
-% [file:texnansi-lmr10]
-% [encoding=texnansi]
-% \definedfont[blabla] test \currentencoding/\fontfile \par
-% \definefontsynonym
-% [blabla]
-% [texnansi-lmtt10]
-% [encoding=texnansi]
-% \definedfont[blabla] test \currentencoding/\fontfile \par
-% \definefontsynonym
-% [blabla]
-% [ec-lmtt10]
-% [encoding=ec]
-% \definedfont[blabla] test \currentencoding/\fontfile \par
-
-\def\checkfontfilename
- {\expandafter\docheckfontfilename\fontfile:\empty:\empty\relax}
-
-\def\docheckfontfilename#1:#2:#3#4\relax
- {\edef\!!stringa{#1}%
- \edef\!!stringb{#2}%
- \ifx\!!stringb\empty
- \edef\checkedfontfile{\!!stringa}%
- \else\ifx\!!stringa\v!file
- \edef\checkedfontfile{"\!!stringb"}%
- \else\ifx\!!stringa\v!name
- \edef\checkedfontfile{"\!!stringb"}%
- \else
- \edef\checkedfontfile{\!!stringb}%
- \fi\fi\fi}
-
-\let\doshowcheckedfontfeatures\relax
-
-\def\showcheckedfontfeatures
- {\def\doshowcheckedfontfeatures{\writestatus\m!fonts{checked: \checkedfontfile}}}
-
-\def\checkedfontfile{\fontfile} % default
-
-\newtoks\everydefinefont
-
-\def\donoparsefontspec % #1 == \cs
- {\edef\fontfile{\truefontname\somefontname}%
- \ifx\fontfile\s!unknown \let\fontfile\defaultfontfile \fi % can for instance happen with MathGamma
- \updatefontparameters
- \checkfontfilename
- \edef\lastfontname{\checkedfontfile\somefontspec}%
- \ifx\fontclass\empty
- \expandafter\definefontlocal
- \else
- \expandafter\definefontglobal
- \fi} % #1 == \cs
-
-\def\definefontlocal#1%
- {\expandafter\edef\csname#1\endcsname % ! ! ! ! not needed in luatex ! ! ! !
- {\noexpand\csname#1:\endcsname
- \noexpand\reactivatefont{\somefontname}{\fontfile}}%
- \expandafter\font\csname#1:\endcsname\lastfontname\relax
- \expandafter\let\expandafter\lastrawfontcall\csname#1:\endcsname
- \the\everydefinefont}
-
-\def\definefontglobal#1% stores \somefontname=Mono and \fontfile=cmtt10
- {\expandafter\xdef\csname#1\endcsname % ! ! ! ! not needed in luatex ! ! ! !
- {\noexpand\csname#1:\endcsname
- \noexpand\reactivatefont{\somefontname}{\fontfile}}%
- \global\expandafter\font\csname#1:\endcsname\lastfontname\relax
- \expandafter\let\expandafter\lastrawfontcall\csname#1:\endcsname
- \the\everydefinefont}
-
-\def\reactivatefont#1#2%
- {\def\somefontname{#1}%
- \def\fontfile {#2}%
- \updatefontparameters}
-
-% can be handy for tracing purposes
-%
-% \def\reportfontdefinition
-% {\bgroup
-% \expanded{\infofont
-% [\lastfontidentifier
-% ->\newfontidentifier
-% ->\fontname\csname\newfontidentifier\endcsname]}%
-% \endgraf
-% \egroup}
-
-%D An additional the second \type {\font} definition can
-%D prevent fuzzy font refs
-%D
-%D \starttyping
-%D \expandafter\font\csname\dummyfontname\endcsname\lastfontname
-%D \stoptyping
-%D
-%D but somehow they changed \TEX\ so that it does not matter
-%D any more.
-
-\def \defaultfontfile{\truefontname{Normal}} % was cmtt10, but that one is gone
-\edef\nullfontname {\fontname\nullfont}
-\edef\dummyfontname {font\strippedcsname\\}
-
-%D \macros
-%D {everyfont,everyfontswitch}
-%D
-%D For special purposes, we provide a hook.
-
-% \newevery \everyfont \relax
-% \newevery \everyfontswitch \relax
-
-% safer but sometimes introducing newlines in the log
-%
-% \batchmode
-% \font\lastloadedfont\fontfile\somefontspec\relax
-% \errorstopmode
-% \edef\lastfontname{\fontname\lastloadedfont}%
-% \ifx\lastfontname\nullfontname
-% \showmessage\m!fonts{10}{\fontfile}%
-% \expandafter\font\csname#1\endcsname=\defaultfontfile\somefontspec\relax
-% \else
-% \expandafter\let\csname#1\endcsname\lastloadedfont
-% \fi
-
-%D We also accept \type{sa a}||\type{sa d} as specification.
-
-\def\checkfontscale#1#2\end#3%
- {#3\ifcsname\??ft\s!default\noexpand#1\endcsname
- \csname\??ft\s!default\noexpand#1\endcsname\else#1#2%
- \fi#3}
-
-%D The duplicate font definition, using the ever the same dummy
-%D font name, results in less fuzzy error messages. In the log
-%D file, for instance when overfull boxes are reported, the
-%D simple keyword `font' replaces the \TEX\ ordinated name. The
-%D latter can be too misleading, due to the fact that \TEX\ has
-%D a rather optimized font memory management. Thanks to Taco
-%D for helping me sort this out.
-
-%D \macros
-%D {definefontsynonym, doifelsefontsynonym,
-%D expandfontsynonym, truefontname, truefontdata}
-%D
-%D While looking for fonts, fontsynonyms are used for accessing
-%D the files!
-%D
-%D \starttyping
-%D \definefontsynonym[Serif][Lucida-Bright]
-%D \definefontsynonym[Lucida-Bright][lbr][encoding=texnansi]
-%D \stoptyping
-%D
-%D The definitions can be accessed by:
-%D
-%D \startlines
-%D name: \type {\truefontname{Lucida-Bright}}
-%D data: \type {\truefontdata{\truefontname{Lucida-Bright}}}
-%D \stoplines
-
-% \def\definefontsynonym
-% {\dotripleempty\dodefinefontsynonym}
-%
-% \def\dodefinefontsynonym[#1][#2][#3]%
-% {\@EA\edef\csname\??ff\fontclass#1\endcsname{#2}%
-% \ifthirdargument
-% \edef\@@fontdata{#3}%
-% \ifx\@@fontdata\empty \else
-% \edef\@@fontfile{#2}%
-% \ifx\fontclass\empty
-% \getfontparameters
-% \else
-% \getglobalfontparameters
-% \fi
-% \fi
-% \fi}
-%
-% slightly faster, noticable when loading many typefaces,
-%
-% \testfeatureonce{5000}{\definefontsynonym[somefont][somename]} \end
-
-\def\classfont#1#2{#1#2} % \definefont[whatever][\classfont{xx}{yy} at 10pt]
-
-\def\definefontsynonym[#1]#2[#3]%
- {\edef\@@fontfile{#3}%
- \@EA\let\csname\??ff\fontclass#1\endcsname\@@fontfile
- \doifnextoptionalelse\dodefinefontsynonym\donothing}
-
-\def\dodefinefontsynonym[#1]%
- {\edef\@@fontdata{#1}%
- \ifx\@@fontdata\empty \else \ifx\fontclass\empty
- \getfontparameters
- \else
- \getglobalfontparameters
- \fi \fi}
-
-\let\definefontfile\definefontsynonym % dedicated to Taco Hoekwater
-
-\def\setupfontsynonym
- {\dodoubleempty\dosetupfontsynonym}
-
-\def\dosetupfontsynonym[#1][#2]%
- {\edef\@@fontdata{#2}%
- \ifx\@@fontdata\empty \else
- \edef\@@fontfile{#1}%
- \ifx\fontclass\empty
- \getfontparameters
- \else
- \getglobalfontparameters
- \fi
- \fi}
-
-\def\truefontdata#1#2%
- {\ifcsname\??ff#1#2\endcsname
- % raw(Regular) raw(key)
- \csname\??ff#1#2\endcsname
- \else\ifcsname\??ff\fontclass#1\endcsname
- % exp(palatino Regular) raw(key)
- \expandafter\truefontdata\csname\??ff\fontclass#1\endcsname#2%
- \else\ifcsname\??ff#1\endcsname
- % exp(Regular) raw(key)
- \expandafter\truefontdata\csname\??ff#1\endcsname#2%
- \else\ifcsname\??ff#2\endcsname
- % raw(key)
- \csname\??ff#2\endcsname
- \fi\fi\fi\fi}
-
-\def\truefontname#1%
- {\ifcsname\??ff\fontclass#1\endcsname
- \@EA\truefontname\csname\??ff\fontclass#1\endcsname
- \else\ifcsname\??ff#1\endcsname
- \@EA\truefontname\csname\??ff#1\endcsname
- \else
- #1%
- \fi\fi}
-
-\def\expandfontsynonym#1#2% #2 := onelevelexpansion(#1)
- {\ifcsname\??ff\fontclass#2\endcsname
- \expandafter\def\expandafter#1\expandafter{\csname\??ff\fontclass#2\endcsname}%
- \fi}
-
-\def\doifelsefontsynonym#1%
- {\ifcsname\??ff\fontclass#1\endcsname
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-% \definetypeface[palatino][rm][serif][palatino,allbold][default]
-%
-% \startfontclass[palatino]
-% \definefontsynonym [Serif] [SerifBold]
-% \definefontsynonym [SerifItalic] [SerifBoldItalic]
-% \definefontsynonym [SerifSlanted] [SerifBoldSlanted]
-% \definefontsynonym [SerifCaps] [SerifBold]
-% \stopfontclass
-%
-% \setupbodyfont[palatino]
-
-\def\startfontclass
- {\dosingleempty\dostartfontclass}
-
-\def\dostartfontclass[#1]%
- {\pushmacro\fontclass
- \doifelse{#1}{\v!each}
- {\let\fontclass\empty}
- {\doifsomething{#1}{\def\fontclass{#1}}}}
-
-\def\stopfontclass
- {\popmacro\fontclass}
-
-%D \macros
-%D {tracedfontname}
-%D
-%D A goody:
-
-\def\tracedfontencoding#1%
- {\ifcsname\??ff#1\s!encoding\endcsname
- \space[\csname\??ff#1\s!encoding\endcsname]%
- \fi}
-
-\def\tracedfontname#1%
- {\ifcsname\??ff\fontclass#1\endcsname
- #1\tracedfontencoding{\fontclass#1}\space->\space
- \@EA\tracedfontname\csname\??ff\fontclass#1\endcsname
- \else\ifcsname\??ff#1\endcsname
- #1\tracedfontencoding{#1}\space->\space
- \@EA\tracedfontname\csname\??ff#1\endcsname
- \else
- #1%
- \fi\fi}
-
-%D \macros
-%D {getfontfileparameters}
-%D
-%D For special purposes, one can use the next macro to
-%D access font file characteristics, for instance:
-%D
-%D \starttyping
-%D \getfontfileparameters{Regular}
-%D \stoptyping
-%D
-%D can result in:
-%D
-%D \starttyping
-%D \def\currentfontfileencoding{texnansi}
-%D \stoptyping
-
-\def\getfontfileparameters#1% can be simpler for mkii (no features)
- {\edef\@@truefontname{\truefontname{#1}}%
- \edef\currentfontfileencoding{\truefontdata\@@truefontname\s!encoding}%
- \edef\currentfontfilemapping {\truefontdata\@@truefontname\s!mapping }%
- \edef\currentfontfilehandling{\truefontdata\@@truefontname\s!handling}}
-
-%D \macros
-%D {definefont}
-%D
-%D Before we implement the main definition macro, we first show
-%D one for local use:
-%D
-%D \starttyping
-%D \definefont[Some][LucidaBright at 100pt] \Some some
-%D \definefont[More][LucidaBright scaled 3000] \More more
-%D \definefont[Nice][LucidaBright mp 2] \Nice nice
-%D \definefont[Text][LucidaBright sa 5.4] \Text last
-%D \stoptyping
-%D
-%D The implementation looks as follows:
-
-\def\definefont
- {\dotripleempty\dodefinefont}
-
-\def\dodefinefont[#1][#2][#3]% [name][spec][1.6 | line=10pt | setup_id]
- {\doifinstringelse{ }{#2}
- {\ifthirdargument
- \unexpanded\setvalue{#1}{\redodefinefont{#1}{#2}{#3}}%
- \else
- \unexpanded\setvalue{#1}{\dododefinefont{#1}{#2}}%
- \fi}
- {\definefont[#1][#2 sa *][#3]}}
-
-\def\redodefinefont#1#2#3%
- {\dododefinefont{#1}{#2}%
- \doifsetupselse{#3}
- {\setups[#3]} % don't forget to document this !
- {\setuplocalinterlinespace[#3]%
- \setupspacing}} % needed ?
-
-\def\definefrozenfont
- {\dotripleempty\dodefinefrozenfont}
-
-\def\dodefinefrozenfont[#1][#2][#3]%
- {\dodefinefont[#1][#2][#3]%
- \expandafter\let\csname\lastfontidentifier\expandafter\endcsname\csname\rawfontidentifier\endcsname}
-
-% \def\defineclassfont
-% {\doquadrupleempty\dodefineclassfont}
-%
-% \def\dodefineclassfont[#1][#2][#3][#4]% #2 = class
-% {\iffourthargument
-% \definefont[#1][#2#3][#4]%
-% %\else\ifthirdargument
-% % \definefont[#1][#2#3]%
-% \else
-% \definefont[#1][#2]%
-% \fi}
-
-%D The \type {*} makes the switch local, so that we can redefine a
-%D logical name and/or change the size in between.
-
-\newif\ifautofontsize \autofontsizetrue
-
-\let\lastfontidentifier\empty
-
-\def\rawfontidentifier{**\lastfontidentifier\fontsize**}
-\def\newfontidentifier{*\fontclass\lastfontidentifier\fontsize*}
-
-% best we can add the style as well because otherwise we get math encoding mixups
-%
-% \setupbodyfont [8pt] [\currentencoding/\ccaron\scaron\zcaron]
-% \blank
-% \switchtobodyfont[7pt] [\currentencoding/\ccaron\scaron\zcaron]
-
-\def\newfontidentifier{*\fontclass\lastfontidentifier\fontstyle\fontsize*}
-
-\def\dododefinefont#1#2%
- {\edef\lastfontidentifier{#1}%
- \let\localrelativefontsize\defaultrelativefontsize
- \let\localabsolutefontsize\fontbody
- \parsefontspec{#2}\rawfontidentifier
- \let\localrelativefontsize\defaultrelativefontsize % not needed
- \csname\rawfontidentifier\endcsname
- \autofontsizefalse
- \setfontcharacteristics
- \the\everyfontswitch}
-
-\def\xxdododefinefont#1#2#3#4% \autofontsizetrue is set by calling routine
- {\edef\lastfontidentifier{#3}%
- \ifcsname\newfontidentifier\endcsname\else
- \def\localrelativefontsize{#1}%
- \def\localabsolutefontsize{#2}%
- \parsefontspec{#4}\newfontidentifier
- \let\localrelativefontsize\defaultrelativefontsize % not needed
- \fi
- \csname\newfontidentifier\endcsname
- \autofontsizefalse
- %\edef\lastfontidentifier{#3}%
- \ifskipfontcharacteristics \else
- \setfontcharacteristics
- \the\everyfontswitch
- \fi}
-
-%D I considered checking for mistakenly use of \PLAIN's
-%D \type{\magstep}'s but although it would take only a few
-%D lines of code, this would not add to consistent use. I
-%D therefore removed this check.
-
-%D \macros
-%D {mapfontsize}
-%D
-%D For special purposes, like in math, you may want to use
-%D slightly different sizes than the ones given. This happens
-%D for instance with the Math Times fonts. Mapped font sizes
-%D can be specified by using the \type {mo} key instead of
-%D \type {sa} in font definitions.
-%D
-%D \startbuffer
-%D \mapfontsize[10pt][11pt]
-%D \mapfontsize[11pt][12pt]
-%D \mapfontsize[12pt][13pt]
-%D
-%D \definefont[test][Serif]\test TEST \par
-%D \definefont[test][Serif sa 5]\test TEST \par
-%D \definefont[test][Serif mo 5]\test TEST \par
-%D \definefont[test][Serif sa d]\test TEST \par
-%D \definefont[test][Serif at 60pt]\test TEST \par
-%D \definefont[test][Serif scaled 6000]\test TEST \par
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \startpacked
-%D \getbuffer
-%D \stoppacked
-
-\def\mapfontsize
- {\dodoubleargument\domapfontsize}
-
-\def\domapfontsize[#1][#2]%
- {\scratchdimen#1\relax % \relax is really needed here
- \setvalue{\??ft*\the\scratchdimen}{#2}}
-
-\def\setmappedfontsize#1%
- {\ifcsname\??ft*#1\endcsname
- \csname\??ft*#1\endcsname
- \else
- #1%
- \fi}
-
-%D \macros
-%D {getfontname}
-%D
-%D The names of the fonts can be called with the rather simple
-%D macro \type{\getfontname}. When for instance we pass
-%D \type{12ptrmtf} as argument, we get \getfontname{12ptrmtf}.
-
-\def\getfontname#1%
- {\csname\??ft#1\endcsname}
-
-%D To be documented.
-
-\let\fontsizelist\empty
-\let\fontstylelist\empty
-
-\def\definefontsize[#1]% sneller met toks
- {\addtocommalist{#1}\fontsizelist
- \def\docommand##1%
- {\def\dodocommand####1%
- {\def\dododocommand########1%
- %{\checkbodyfont{}{########1}{####1}{##1}}%
- {\checkbodyfont{########1}{####1}{##1}}%
- \processcommacommand[\fontstylelist]\dododocommand}%
- \processcommacommand[\fontalternativelist]\dodocommand}%
- \processcommacommand[\fontsizelist]\docommand}
-
-\def\fontalternativetextlist{\c!tf,\c!bf,\c!it,\c!sl,\c!bs,\c!bi,\c!sc}
-\def\fontalternativemathlist{\c!mr,\c!mi,\c!sy,\c!ex,\c!ma,\c!mb}
-
-\let\fontalternativelist\fontalternativetextlist % upward compatible
-
-%D \macros
-%D {currentfontscale,currentfontbodyscale}
-%D
-%D Sometimes we need to have access to the font scale
-%D including the \type{a}||\type{d} sizes. The next macro
-%D returns the current scaling factor. Take a look at
-%D \type {cont-log.tex} for an example of its use.
-
-\def\currentfontscale
- {\csname\??ft\s!default
- \ifcsname\??ft\s!default\xfontsize\endcsname \xfontsize \else
- \ifcsname\??ft\s!default\s!text \endcsname \s!text \fi\fi
- \endcsname}
-
-\def\currentfontbodyscale
- {\csname\??ft\s!default
- \ifcsname\??ft\s!default\fontsize\endcsname \fontsize \else
- \ifcsname\??ft\s!default\s!text \endcsname \s!text \fi\fi
- \endcsname}
-
-\setvalue{\??ft\s!default}{1}
-
-%D Both alternatives use \type {\xfontsize}, a macro that
-%D expands to the current size in terms of \type {a} \unknown
-%D \type {d}, nothing, or \type {x} \unknown \type {xx}.
-
-\def\xfontsize{\ifcase\currentxfontsize\fontsize\or\c!x\else\c!xx\fi}
-
-%D A typical use of this command is in commands that switch
-%D to another font bypassing the font mechanism:
-%D
-%D \starttyping
-%D \font\myfont=\truefontname{MyFont} at \currentfontscale\bodyfontsize
-%D \stoptyping
-
-%D Now we enter the area of font switching. The switching
-%D mechanism has to take care of several situations, like:
-%D
-%D \startitemize[packed]
-%D \item changing the overal document fonts (including margins,
-%D headers and footers)
-%D \item changing local fonts (only the running text)
-%D \item smaller and even more smaller alternatives (super-
-%D and subscripts)
-%D \stopitemize
-%D
-%D \TEX\ offers a powerfull family mechanism for super- and
-%D subscripts in math mode. In text mode however, we don't use
-%D families for the smaller alternatives, and therefore have
-%D to take care of it otherwise.
-
-%D \macros
-%D {definebodyfontenvironment,setupbodyfontenvironment}
-%D
-%D The relationship between the several sizes of a font, is
-%D defined by:
-%D
-%D \showsetup{definebodyfontenvironment}
-%D
-%D Later on we will see how these parameters are used, so for
-%D the moment we stick with an example:
-%D
-%D \starttyping
-%D \definebodyfontenvironment
-%D [12pt]
-%D [ text=12pt,
-%D script=9pt,
-%D scriptscript=7pt,
-%D x=10pt,
-%D xx=8pt,
-%D big=12pt,
-%D small=10pt]
-%D \stoptyping
-%D
-%D The first argument specifies the bodyfont size to which the
-%D settings apply. All second parameters are specified in
-%D dimensions and tell us more about related sizes.
-%D
-%D Afterwards, one can change values with
-%D
-%D \showsetup{setupbodyfontenvironment}
-%D
-%D Due to the fact that \type{\c!text} and \type{\s!text} can
-%D have a similar meaning, and therefore can lead to an
-%D unwanted loop, we temporary redefine \type{\c!text}. For
-%D the moment this in only place that some trickery is needed
-%D to fool the multilingual interface.
-%D
-%D When instead of a size the keyword \type{unknown} is
-%D passed, fractions (relations) are used instead of fixed
-%D sizes.
-
-\let\bodyfontenvironmentlist\empty
-
-\newcount\@@fontdefhack
-
-\def\@@beginfontdef
- {\ifcase\@@fontdefhack
- \let\k!savedtext \k!text \let\k!text \s!text
- \let\k!k!savedtext \k!k!text \let\k!k!text \!!plusone
- \let\k!saveddefault \k!default \let\k!default \s!default
- \let\k!k!saveddefault\k!k!default \let\k!k!default \!!plusone
- \fi
- \advance\@@fontdefhack \plusone }
-
-\def\@@endfontdef
- {\advance\@@fontdefhack \minusone
- \ifcase\@@fontdefhack
- \let\k!k!default\k!k!saveddefault
- \let\k!default \k!saveddefault
- \let\k!k!text \k!k!savedtext
- \let\k!text \k!savedtext
- \fi}
-
-\def\definebodyfontenvironment
- {\dotripleempty\dodefinebodyfontenvironment}
-
-\def\dodefinebodyfontenvironment[#1][#2][#3]% class size settings
- {\ifthirdargument
- \@@beginfontdef
- \doifelse{#2}\s!default
- {\getparameters[\??ft\s!default][#3]}
- {\normalizebodyfontsize#2\to\tempbodyfontsize
- \addtocommalist\tempbodyfontsize\bodyfontenvironmentlist
- \@EA\dododefinebodyfontenvironment\@EA[\tempbodyfontsize][#1][#3]}%
- \@@endfontdef
- \else
- \definebodyfontenvironment[\fontclass][#1][#2]% change */*
- \fi}
-
-\def\dododefinebodyfontenvironment[#1][#2][#3]% size class settings
- {\@@beginfontdef
- \doifundefined{\??ft#2#1\c!em} % \s!text goes wrong in testing because
- {\def\docommand##1% % the 12pt alternative will called when
- {\scratchdimen#1\relax % typesetting the test (or so)
- \scratchdimen\csname\??ft\s!default##1\endcsname\scratchdimen
- \normalizebodyfontsize\scratchdimen\to\tempbodyfontsize
- \setevalue{\??ft#2#1##1}{\tempbodyfontsize}}%
- \processcommacommand[\fontrelativesizelist]\docommand
- \copyparameters
- [\??ft#2#1][\??ft\s!default]
- [\c!interlinespace,\c!em]}%
- \getparameters[\??ft#2#1][#3]%
- \@@endfontdef
- % new code, see remark
- \ifloadingfonts \else % only runtime
- \doifundefined{\@size@#1} % only once
- {\letvalue{\@size@#1}\empty % prevent loop
- \defineunknownfont{#1}}% % safeguard
- \fi
- % so far
- \setvalue{\@size@#1}{\docompletefontswitch[#1]}}
-
-%D {\bf Remark:} We need to cover the following cases,
-%D otherwise users can get confused:
-%D
-%D \starttyping
-%D \setupbodyfont[23pt]
-%D
-%D \definebodyfontenvironment[23pt]
-%D \setupbodyfont[23pt]
-%D
-%D \definebodyfontenvironment[23pt]
-%D \definebodyfont[23pt][rm,ss,tt][default]
-%D \setupbodyfont[23pt]
-%D \stoptyping
-
-%D Beware: while some font defs can be global, the bodyfont
-%D environment checks local. This means that multiple local
-%D checks resulting in definitions are not that efficient.
-%D So, apart from an occasional switch, one should define an
-%D environment at the outer level.
-
-\def\checkbodyfontenvironment[#1]%
- {\definebodyfontenvironment[\fontclass][#1][]}
-
-% original
-%
-% \def\setupbodyfontenvironment
-% {\dotripleempty\dosetupbodyfontenvironment}
-%
-% \def\dosetupbodyfontenvironment[#1][#2][#3]% class size settings
-% {\@@beginfontdef
-% \ifthirdargument
-% \getparameters[\??ft#1#2][#3]%
-% \else
-% \getparameters[\??ft#1][#2]%
-% \fi
-% \@@endfontdef}
-%
-% this one already catches both define/setup
-
-\def\setupbodyfontenvironment{\definebodyfontenvironment}
-
-% officially, but not needed (yet):
-%
-% \def\dosetupbodyfontenvironment[#1][#2][#3]% class size settings
-% {\ifthirdargument
-% \localbodyfontsize#2\relax
-% \normalizebodyfontsize\localbodyfontsize\to\normalizedbodyfontsize
-% \doifundefinedelse{\??ft#1\normalizedbodyfontsize\c!em}
-% {\definebodyfontenvironment[#1][#2][#3]}%
-% {\getparameters[\??ft#1\normalizedbodyfontsize][#3]}%
-% \else
-% \localbodyfontsize#1\relax
-% \normalizebodyfontsize\localbodyfontsize\to\normalizedbodyfontsize
-% \doifundefinedelse{\??ft\normalizedbodyfontsize\c!em}
-% {\definebodyfontenvironment[#1][#2]}%
-% {\getparameters[\??ft\normalizedbodyfontsize][#2]}%
-% \fi}
-
-%D Just a couple of interface macros:
-
-\def\bodyfontvariable#1%
- {\??ft\ifcsname\??ft\fontclass#1\endcsname\fontclass\fi#1}
-
-\def\bodyfontcsname
- {\csname\bodyfontvariable}
-
-\def\bodyfontinterlinespecs
- {\bodyfontvariable{\normalizedbodyfontsize\c!interlinespace}}
-
-\def\bodyfontinterlinespace
- {\csname\bodyfontinterlinespecs\endcsname}
-
-%D We default all parameters to the main bodyfont size (begin
-%D \type{#1}), so the next setup is valid too:
-%D
-%D \starttyping
-%D \definebodyfontenvironment[24pt]
-%D \stoptyping
-%D
-%D All parameters can be redefined when needed, so one does
-%D not have to stick to the default ones.
-
-%D \macros
-%D {definebodyfont}
-%D
-%D The next step in defining a bodyfont involves the actual font
-%D files, which can be recognized by their extension
-%D \type{tfm}. Installing those file is often beyond the
-%D scope of the user and up to the system administrator.
-%D
-%D \showsetup{definebodyfont}
-%D
-%D This commands takes three arguments: a (series of) bodyfont
-%D size(s), the style group to which the definitions belong,
-%D and an alternative, as specified by the \TEX\ (math) families,
-%D extended with~a, b~\unknown.
-%D
-%D We show two examples, that show all the alternative
-%D scaling options. The \type{\tfa} alternatives can be
-%D extended with \type{\bfa}, \type{\slb}, etc. or even
-%D \type{e} and higher alternatives.
-%D
-%D \starttyping
-%D \definebodyfont [12pt] [rm]
-%D [tf=cmr12,
-%D bf=cmbx12,
-%D it=cmti12,
-%D sl=cmsl12,
-%D bi=cmbxti10 at 12pt,
-%D bs=cmbxsl10 at 12pt,
-%D tfa=cmr12 scaled \magstep1,
-%D tfb=cmr12 scaled \magstep2,
-%D tfc=cmr12 scaled \magstep3,
-%D tfd=cmr12 scaled \magstep4,
-%D sc=cmcsc10 at 12pt]
-%D
-%D \definebodyfont [12pt,11pt,10pt,9pt,8pt] [rm]
-%D [tf=lbr sa 1,
-%D bf=lbd sa 1,
-%D it=lbi sa 1,
-%D sl=lbsl sa 1,
-%D bi=lbdi sa 1,
-%D bs=lbdi sa 1,
-%D tfa=lbr sa 1.200,
-%D tfb=lbr sa 1.440,
-%D tfc=lbr sa 1.728,
-%D tfd=lbr sa 2.074,
-%D sc=lbr sa 0.833]
-%D \stoptyping
-%D
-%D The second example shows that we can define more sizes at
-%D once. The main difference between these examples is that the
-%D Computer Modern Roman come in many design sizes. This means
-%D that there we cannot define them in bulk using \type{sa}.
-%D Instead of \type{rm} (roman) one can define \type{ss} (sans
-%D serif), \type{tt} (teletype), \type{hw} (hand written),
-%D \type{cg} (calygraphic) and whatever styles.
-%D
-%D The first argument may be a comma separated list. This,
-%D combined with specifications using \type{sa} can save a lot
-%D of typing. Although all arguments should be specified, we
-%D treat the second argument as optional.
-%D
-%D Defining a bodyfont involves two actions: defining the
-%D specific style related alternatives, like \type{\rma},
-%D \type{\bfa} and \type{\rmsla}, and storing the definitions
-%D of their bodyfont size related fonts. The first step is
-%D bodyfont independant but executed every time. This permits
-%D user definitions like \type{\tfw} or \type{\bfq} for real
-%D large alternatives.
-
-\def\definebodyfont
- {\doquadrupleempty\redefinebodyfont}
-
-\def\redefinebodyfont[#1][#2][#3][#4]%
- {\iffourthargument
- \processcommacommand[#1]{\reredefinebodyfont[#2][#3][#4]}%
- \else
- \dodefinebodyfont[#1][#2][#3]%
- \fi}
-
-\def\reredefinebodyfont[#1][#2][#3]#4%
- {\pushmacro\fontclass
- \doifelse{#4}\s!default
- {\let\fontclass\empty}
- {\def\fontclass{#4}}%
- \definebodyfont[#1][#2][#3]%
- \popmacro\fontclass}
-
-\def\dodefinebodyfont[#1][#2][#3]% body|identifier style defs|identifier
- {\ifthirdargument
- \doifnumberelse{#1}
- {\doifassignmentelse{#3}
- {% [12pt] [style] [settings]
- \doifundefined{#2}{\expanded{\definefontstyle[#2][#2]}}% new
- \processcommalist[#1]{\dododefinebodyfont{#2}{#3}}}
- {% [12pt] [style] [identifier]
- \dodefinedefaultbodyfont[#1][#2][#3]}} % body style identifier
- {% [identifier] [style] [settings] % see ***
- \setvalue{\s!default#1#2}##1##2{\expanded{\xdodefinebodyfont[##1][##2][#3]}}}%
- \else\ifsecondargument
- \definebodyfont[#1][\c!rm][#2]%
- \else
- \doifundefined{\@size@#1} % Maybe there are default dependancies
- {\defineunknownfont{#1}}% defined which we can use ([unknown])
- \doifundefined{\@size@#1} % and if not, then we have at least to
- {\definebodyfont[#1][\c!rm][]}% make sure some basics are set up.
- \fi\fi}
-
-\def\xdodefinebodyfont[#1][#2][#3]% body|identifier style defs|identifier
- {%\writestatus{[#1]}{[#2][#3]}%
- \checkrelativefontsize{#2}% rather new, inherit from other defs
- \ifundefined{#2}\expanded{\definefontstyle[#2][#2]}\fi % new
- \processcommalist[#1]{\dododefinebodyfont{#2}{#3}}%
- \let\relativefontsize\defaultrelativefontsize}
-
-\def\dododefinebodyfont#1#2#3% style defs body
- {\checkbodyfontenvironment[#3]% just to be sure.
- \processcommalist[#2]{\dodododefinebodyfont{#1}{#3}}}
-
-\def\dodododefinebodyfont#1#2#3% style body def
- {\dododododefinebodyfont{#1}{#2}[#3]}
-
-\newif \ifresolvefontfile % protected by fontclass anyway
-
-\def\resolvefontname#1 {\truefontname{#1} }
-
-\def\iflocalclassfonts{\ifx\fontclass\empty}
-
-\def\dododododefinebodyfont#1#2[#3#4#5=#6]% style body def
- {\ifundefined{#1#3#4#5}%
- %\checkbodyfont{#2}{#1}{#3#4}{#5}% not \definefontsize[#5]
- \checkbodyfont{#1}{#3#4}{#5}% not \definefontsize[#5]
- \fi
- \iflocalclassfonts
- \letbeundefined{*\fontclass#2#1#3#4#5*}%
- \scratchtoks{#6}%
- \expanded{\unexpanded\noexpand\setvalue{#2#1#3#4#5}%
- {\noexpand\xxdododefinefont{\relativefontsize}{#2}%
- {#2#1#3#4#5}{\the\scratchtoks}}}%
- \else
- %\expanded{\writestatus{defining}{[\fontclass][#2#1#3#4#5] \resolvefontname#6 }}%
- \global\letbeundefined{*\fontclass#2#1#3#4#5*}%
- \ifresolvefontfile
- \unexpanded\setxvalue{\fontclass#2#1#3#4#5}%
- {\noexpand\xxdododefinefont{\relativefontsize}{#2}%
- {#2#1#3#4#5}{\resolvefontname#6 }}%
- \else
- \scratchtoks{#6}%
- \expanded{\unexpanded\noexpand\setgvalue{\fontclass#2#1#3#4#5}%
- {\noexpand\xxdododefinefont{\relativefontsize}{#2}%
- {#2#1#3#4#5}{\the\scratchtoks}}}%
- \fi
- \fi}
-
-% \def\checkbodyfont#1#2#3#4% body style alt size / gdef % #4 can be empty
-% {\def\c!!mm{#2}%
-% \ifx\c!!mm\c!mm % prevents \max and alike (re)defs
-% \unexpanded\setgvalue {#2}{\setcurrentfontstyle {#2}}% \rm
-% \unexpanded\setgvalue {#3}{\setcurrentfontalternative {#3}}% \sl
-% \else
-% \unexpanded\setgvalue {#2#4}{\setcurrentfontstylesize {#2}{#4}}% \rma
-% \unexpanded\setgvalue {#3#4}{\setcurrentfontalternativesize {#3}{#4}}% \sla
-% \unexpanded\setgvalue {#2#3#4}{\setcurrentfontstylealternativesize{#2}{#3}{#4}}% \rmsla
-% \unexpanded\setgvalue {#2}{\setcurrentfontstyle {#2}}% \rm
-% \unexpanded\setgvalue {#3}{\setcurrentfontalternative {#3}}% \sl
-% \unexpanded\setgvalue {#2\c!x}{\setcurrentfontxstylealternative {#2}}% \rmx
-% \unexpanded\setgvalue{#2\c!xx}{\setcurrentfontxxstylealternative {#2}}% \rmxx
-% \unexpanded\setgvalue {#3\c!x}{\setcurrentfontxalternative {#3}}% \slx
-% \unexpanded\setgvalue{#3\c!xx}{\setcurrentfontxxalternative {#3}}% \slxx
-% \unexpanded\setgvalue {#2#3}{\setcurrentfontstylealternative {#2}{#3}}% \rmsl
-% \fi}
-%
-% leaner
-
-\def\checkbodyfont#1% tests for ttsl mmbf
- {\def\c!!mm{#1}%
- \ifx\c!!mm\c!mm % prevents \max and alike (re)defs
- \expandafter\checkmathbodyfont
- \else
- \expandafter\checktextbodyfont
- \fi{#1}} % no \c!!mm, not expanded later on
-
-\def\checkmathbodyfont#1#2#3% style alt size / gdef % #3 can be empty
- {%\message{!m #1 #2 #3!}%
- % #1 #2 #3 = signal
- \unexpanded\setgvalue {#1#2#3}{\setcurrentfontstylealternativesize{#1}{#2}{#3}}% \mmsla
- \unexpanded\setgvalue {#1}{\setcurrentfontstyle {#1}}% \mm
- \unexpanded\setgvalue {#2}{\setcurrentfontalternative {#2}}}% \sl
-
-\def\checktextbodyfont#1#2#3% style alt size / gdef % #3 can be empty
- {%\message{!t #1 #2 #3!}%
- \unexpanded\setgvalue {#1#3}{\setcurrentfontstylesize {#1}{#3}}% \rma
- \unexpanded\setgvalue {#2#3}{\setcurrentfontalternativesize {#2}{#3}}% \sla
- \unexpanded\setgvalue {#1#2#3}{\setcurrentfontstylealternativesize{#1}{#2}{#3}}% \rmsla
- \unexpanded\setgvalue {#1}{\setcurrentfontstyle {#1}}% \rm
- \unexpanded\setgvalue {#2}{\setcurrentfontalternative {#2}}% \sl
- \unexpanded\setgvalue {#1\c!x}{\setcurrentfontxstylealternative {#1}}% \rmx
- \unexpanded\setgvalue{#1\c!xx}{\setcurrentfontxxstylealternative {#1}}% \rmxx
- \unexpanded\setgvalue {#2\c!x}{\setcurrentfontxalternative {#2}}% \slx
- \unexpanded\setgvalue{#2\c!xx}{\setcurrentfontxxalternative {#2}}% \slxx
- \unexpanded\setgvalue {#1#2}{\setcurrentfontstylealternative {#1}{#2}}}% \rmsl
-
-\def\dodefinedefaultbodyfont[#1][#2][#3]% sizes styles identifier
- {\def\dododefinedefaultbodyfont##1%
- {\def\dodododefinedefaultbodyfont####1%
- {\def\dododododefinedefaultbodyfont########1%
- {\doifdefined{\s!default########1####1}
- {% [12pt] [style] [identifier]
- \getvalue{\s!default########1####1}{##1}{####1}}}%
- \processcommalist[#3]\dododododefinedefaultbodyfont}%
- \processcommalist[#2]\dodododefinedefaultbodyfont}%
- \processcommalist[#1]\dododefinedefaultbodyfont}
-
-%D Unknown families are added to the family list! For the
-%D moment we also set the direct calls here. Some day a better
-%D solution will be implemented. The good news is that unknown
-%D fonts are defined automatically.
-
-\newif\ifdefiningunknownfont
-
-% \def\defineunknownfont#1%
-% {\let\c!savedtext\c!text
-% \let\c!text\s!text
-% \donefalse
-% \def\docommand##1%
-% {\doifdefined{\??ft\s!default##1}
-% {\donetrue
-% \scratchdimen#1\relax
-% \scratchdimen\csname\??ft\s!default##1\endcsname\scratchdimen
-% \normalizebodyfontsize\scratchdimen\to\!!stringa
-% \letvalue{\??ft#1##1}\!!stringa}}%
-% \processcommacommand[\fontrelativesizelist]\docommand
-% \let\c!text\c!savedtext
-% \ifdone
-% \donefalse
-% \def\defineunknownbodyfont##1% see ***
-% %{\doifdefined{\s!default##1}
-% % {\donetrue\getvalue{\s!default##1}{#1}}}%
-% {\doifdefined{\s!default\s!default##1}
-% {\donetrue\getvalue{\s!default\s!default##1}{#1}{##1}}}%
-% \processcommacommand
-% [\fontstylelist]
-% \defineunknownbodyfont
-% \ifdone
-% \setvalue{\@size@#1}{\docompletefontswitch[#1]}%
-% \ifdefiningunknownfont \else
-% \definingunknownfonttrue
-% \def\defineunknownsubfont##1%
-% {\doifundefined{\@size@\getvalue{\??ft#1##1}}
-% {\defineunknownfont{\getvalue{\??ft#1##1}}}}%
-% \processcommacommand[\fontrelativesizelist]\defineunknownsubfont
-% \definingunknownfontfalse
-% \fi
-% \fi
-% \ifdone
-% \showmessage\m!fonts{14}{#1}%
-% \fi
-% \fi}
-
-\def\dodefineunknownfont#1#2%
- {\doifdefined{\??ft\s!default#2}
- {\donetrue
- \scratchdimen#1\relax
- \scratchdimen\csname\??ft\s!default#2\endcsname\scratchdimen
- \normalizebodyfontsize\scratchdimen\to\!!stringa
- \letvalue{\??ft#1#2}\!!stringa}}
-
-% \def\dodefineunknownbodyfont#1#2% see ***
-% {\doifdefined{\s!default\s!default#2}
-% {\donetrue
-% \getvalue{\s!default\s!default#2}{#1}{#2}}}
-%
-% but ... it needs to be as follows:
-%
-% \def\dodefineunknownbodyfont#1#2% see ***
-% {\doifdefined{\s!default\fontclass#2}% was \s!default\s!default (related to change */*)
-% {\donetrue
-% \getvalue{\s!default\fontclass#2}{#1}{#2}}}
-%
-% eh ... this does not work so we revert back to:
-
-\def\dodefineunknownbodyfont#1#2% see ***
- {\doifdefined{\s!default\s!default#2}% somehow related to */*
- {\donetrue
- \getvalue{\s!default\s!default#2}{#1}{#2}}}
-
-\def\dodefineunknownsubfont#1#2%
- {\doifundefined{\@size@\getvalue{\??ft#1#2}}
- {\donetrue
- \defineunknownfont{\getvalue{\??ft#1#2}}}}
-
-\def\defineunknownfont#1%
- {\let\c!savedtext\c!text
- \let\c!text\s!text
- \donefalse
- \processcommacommand[\fontrelativesizelist]{\dodefineunknownfont{#1}}%
- \let\c!text\c!savedtext
- \ifdone
- \donefalse
- \processcommacommand
- [\fontstylelist]
- {\dodefineunknownbodyfont{#1}}%
- \ifdone
- \donefalse
- \setvalue{\@size@#1}{\docompletefontswitch[#1]}%
- \ifdefiningunknownfont \else
- \definingunknownfonttrue
- \processcommacommand[\fontrelativesizelist]{\dodefineunknownsubfont{#1}}%
- \definingunknownfontfalse
- \fi
- \fi
- \ifdone
- \showmessage\m!fonts{14}{#1}%
- \fi
- \fi}
-
-% \def\defineunknownfontstyles#1%
-% {\def\defineunknownbodyfont##1% see ***
-% {\executeifdefined{\s!default\s!default##1}\gobbletwoarguments{#1}{##1}}%
-% \rawprocesscommacommand[\fontstylelist]\defineunknownbodyfont}
-
-%D These macros show that quite some definitions take place.
-%D Fonts are not loaded yet! This means that at format
-%D generation time, no font files are preloaded.
-
-%D A previous implementation used:
-%D
-%D \starttyping
-%D \type {\setvalue{name}{\donottest...}}
-%D \stoptyping
-%D
-%D instead of the more memory hungry:
-%D
-%D \starttyping
-%D \unexpanded\setvalue{name}{...}
-%D \stoptyping
-%D
-%D The first alternative saves about 500 hash entries (about
-%D 2.5\% of the total number of entries used. The second
-%D alternative is currently used, because that one can more
-%D easily be made \ETEX\ aware.
-
-%D \macros
-%D {everybodyfont,Everybodyfont,everyglobalbodyfont}
-%D
-%D Every change in bodyfont size has conseqences for the baseline
-%D distance and skips between paragraphs. These are initialized
-%D in other modules. Here we only provide the hooks that
-%D garantees their handling.
-
-% \ifx\everybodyfont\undefined % permits reloading
-% \newevery \everybodyfont \EveryBodyFont
-% \fi
-
-%D At the system level one can initialize thing like:
-%D
-%D \starttyping
-%D \appendtoks \setupspacing \to \everybodyfont
-%D \stoptyping
-%D
-%D While users can add their own non standard commands like:
-%D
-%D \starttyping
-%D \EveryBodyFont{\message{changing to bodyfont \the\bodyfontsize}}
-%D \stoptyping
-%D
-%D Personnaly I never felt the need for such extensions, but
-%D at least its possible.
-
-%D \macros
-%D {globalbodyfontsize,localbodyfontsize}
-%D
-%D Next we'll do the tough job of font switching. Here we
-%D have to distinguish between the global (overal) bodyfont
-%D size and the local (sometimes in the textflow) size. We
-%D store these dimensions in two \DIMENSION\ registers.
-
-\ifdefined\globalbodyfontsize\else \newdimen\globalbodyfontsize \fi \globalbodyfontsize=12pt
-\ifdefined\localbodyfontsize \else \newdimen\localbodyfontsize \fi \localbodyfontsize =\globalbodyfontsize
-
-%D \macros
-%D {bodyfontsize}
-%D
-%D These two registers are not to be misused in calculations.
-%D For this purpose we keep a copy:
-
-\newdimen\bodyfontsize \bodyfontsize=\globalbodyfontsize
-
-%D \macros
-%D {outputresolution}
-%D
-%D Sometimes (to be honest: not in this module) we need to
-%D take the system resolution into account. Therefore we also
-%D define a macro:
-
-\def\outputresolution {600}
-
-%D \macros
-%D {bodyfontfactor,bodyfontpoints}
-%D
-%D For multiplication purposes we keep an auxiliary counter
-%D and macro (here the expansion is not explicitly needed):
-
-\newcount\bodyfontpoints \dimensiontocount\bodyfontsize\bodyfontpoints
-
-\edef\bodyfontfactor{\withoutpt\the\bodyfontsize}
-
-%D When we assign for instance 12pt to a \DIMENSION\ register
-%D the \type{\the}'d value comes out as 12.0pt, which is
-%D often not the way users specify the bodyfont size. Therefore
-%D we also store the normalized value.
-
-\chardef\fontdigits=2 % was 1
-
-% \def\normalizebodyfontsize#1\to#2%
-% {\scratchdimen#1\relax
-% \ifcase\fontdigits\advance\scratchdimen.5\points\fi
-% \@EA\@EA\@EA\donormalizedbodyfontsize\@EA\WITHOUTPT\the\scratchdimen00\to#2}
-%
-% \def\donormalizedbodyfontsize#1.#2#3#4\to#5% \points ?
-% {\edef#5%
-% {#1%
-% \ifcase\fontdigits\or
-% \ifcase#2 \else.#2\fi % and not: \ifcase#2\else ...
-% \else
-% \ifcase#2#3 \else.#2\ifcase#3 \else#3\fi\fi % not: \ifcase#2#3\else ...
-% \fi
-% \s!pt}}
-
-\def\normalizebodyfontsize#1\to#2%
- {\scratchdimen\dimexpr#1+\ifcase\fontdigits.5\or.05\or.005\fi\points\relax
- \@EA\@EA\@EA\donormalizedbodyfontsize\@EA\WITHOUTPT\the\scratchdimen000\to#2}
-
-\def\donormalizedbodyfontsize#1.#2#3#4#5\to#6% \points ?
- {\edef#6% not \ifcase#2\else due to \relax adding
- {#1%
- \ifcase\fontdigits
- \or \ifcase#2 \else .#2\fi % 1
- \or \ifcase#2#3 \else .#2\ifcase#3 \else #3\fi\fi % 2
- \else \ifcase#2#3#4 \else .#2\ifcase#4 \ifcase#3 \else#3\fi \else#3#4\fi\fi % 3
- \fi
- \s!pt}}
-
-%D To be internationalized:
-
-\def\korpsgrootte {\bodyfontsize}
-\def\korpspunten {\bodyfontpoints}
-
-%D some day.
-
-%D \macros
-%D {fontstyle,fontalternative,fontsize}
-%D
-%D Within a bodyfont, fonts can come in different sizes. For
-%D instance \type{\tf} is accompanied by \type{\tfa},
-%D \type{\tfb} etc. The first two characters denote the
-%D alternative, while the third character in these sequences
-%D represents the size. The actual size is saved in a macro
-%D
-%D The style, being roman (\type{\rm}), sans serif (\type{\ss})
-%D etc. is also available in a macro in \type{rm}, \type{ss}
-%D etc. form:
-
-\let\defaultfontalternative = \c!tf
-\let\defaultfontstyle = \empty
-\let\defaultfontsize = \empty
-
-\let\fontalternative = \defaultfontalternative
-\let\fontstyle = \defaultfontstyle
-\let\fontsize = \defaultfontsize
-
-%D {\em The following approach is obsolete.}
-%D
-%D All things related to fonts are grouped into files with
-%D names like \type{font-cmr}. These files are loaded by:
-
-\def\resetfontdefinitionfile[#1]%
- {\letbeundefined{\c!file\f!fontprefix#1}}
-
-\newif\ifloadfontfileonce
-
-\def\doreadfontdefinitionfile#1#2% #1 = set/switch state
- {\doifundefined{\c!file\f!fontprefix#2}%
- {\ifloadfontfileonce
- \letvalue{\c!file\f!fontprefix#2}\empty
- \fi
- \makeshortfilename[\truefilename{\f!fontprefix#2}]%
- \startreadingfile
- \readsysfile{\shortfilename.mkii}
- {\showmessage\m!fonts2{#2}}
- {\showmessage\m!fonts3{#2}}%
- \stopreadingfile}}
-
-%D When \type {\loadfontfileoncetrue}, such files are
-%D only loaded once! This permits redundant loading, but at
-%D the same time forced grouping when we want continuously mix
-%D all kind of font, which of course is a kind of
-%D typographically sin. The \type{"} is made inactive if
-%D needed to prevent problems with loading files that use this
-%D character in numbers.
-
-\def\doswitchpoints[#1]%
- {\expanded{\dodoswitchpoints{#1}}}
-
-\def\dodoswitchpoints#1%
- {\doifundefined{\@size@#1}
- {\defineunknownfont{#1}}%
- %\defineunknownfontstyles{#1}%
- \doifdefinedelse{\@size@#1}
- {\getvalue{\@size@#1}%
- \localbodyfontsize#1\relax
- \normalizebodyfontsize\localbodyfontsize\to\normalizedbodyfontsize
- \checkbodyfontenvironment[\normalizedbodyfontsize]}
- {\showmessage\m!fonts4{#1}}}
-
-\unprotected \def\doswitchstyle[#1]%
- {\doifdefinedelse{\@style@#1}
- {\getvalue{\@style@#1}%
- \edef\fontstyle{#1}%
- \ifmmode\mr\fi % in order to be compatible with \rm in math mode
- }% \the\everybodyfont} % cleaner, in setting size as well as style
- {\showmessage\m!fonts5{#1}}}
-
-%D \TEX\ loads font metric files like \type{cmr10.tfm} and
-%D \type{tir.tfm} only once. In \PLAIN\ \TEX\ some font files
-%D are {\em preloaded}. This means that the font files are
-%D loaded, but not accessible yet by name. This is accomplished
-%D by saying:
-%D
-%D \starttyping
-%D \font\preloaded=cmr10 at 11pt
-%D \stoptyping
-%D
-%D and using the name \type{\preloaded} again and again, so
-%D fonts are indeed loaded, but unnamed, and therefore
-%D unaccessible. In \CONTEXT\ we don't preload fonts, not even
-%D the \PLAIN\ \TEX\ ones, although users can access them. Now
-%D why is this done?
-
-%D Defining fonts using \type{\definebodyfont} takes time, so we
-%D prefer to predefine at least the Computer Modern Roman
-%D fonts. However, loading all those fonts at definition time
-%D would take both time and space. But even worse, once fonts
-%D are loaded into memory, their encoding vector is fixed,
-%D which is a handicap when we want to distribute the compact
-%D \type{fmt} files. So what we want to do is defining fonts in
-%D a way that postpones the loading. We accomplish this by only
-%D loading the fonts when we switch to another bodyfont size.
-%D Among the other alternatives, such as loading the font at
-%D the moment of activation and redefining the activation
-%D macro afterwards, this proved to be the most efficient
-%D alternative.
-%D
-%D The next few macros take care of the one exeption on this
-%D scheme. When at format generation time we load the default
-%D font file, the one that defines the Computer Modern Fonts,
-%D we don't want the fonts metrics to end up in the format
-%D file, so we temporary prohibit loading. This means that at
-%D runtime we have to load the default bodyfont size just before
-%D we start typesetting.
-%D
-%D Therefore we have to signal the font switching macros that
-%D we are preloading fonts. As long as the next boolean is,
-%D true, no loading is done.
-
-\newif\ifloadingfonts \loadingfontstrue
-
-%D \macros
-%D {preloadfonts}
-%D
-%D Preloading is only called for once, during the startup
-%D sequence of a session. After the loading job is done, the
-%D macro relaxes itself and reset the signal.
-
-\def\preloadfonts % never called, needs a clean up
- {\showmessage\m!fonts6{\normalizedbodyfontsize\normalspace\fontstyle}%
- \global\loadingfontsfalse
- \doswitchpoints[\normalizedbodyfontsize]%
- \doswitchstyle[\fontstyle]%
- \the\everybodyfont
- \the\everyglobalbodyfont
- \saveinterlinespace
- \global\let\preloadfonts\relax}
-
-% \prependtoks \preloadfonts \to \everydump % saves .1 s on a DELL P60 - 2GHZ
-
-%D Here comes the main font switching macros. These macros
-%D handle changes in size as well as returning to the global
-%D bodyfont size.
-
-\def\dosetfont#1#2% #1 = set/switch state
- {\doifelse{#2}\v!global
- {\restoreglobalbodyfont}
- {\processcommacommand[#2]{\dodosetfont{#1}}% ##1 get also passed
- \ifloadingfonts\else
- \doswitchpoints[\normalizedbodyfontsize]%
- \doswitchstyle[\fontstyle]%
- \fi}%
- \chardef\currentxfontsize\zerocount}
-
-\def\dodosetfont#1#2% #1 = set/switch state | check fo rempty, else space
- {\doifsomething{#2}{\dododosetfont{#1}{#2}{\showmessage\m!fonts4{#2}}}}
-
-\def\dododosetfont#1#2#3% #1 = set/switch state
- {\doifnumberelse{#2}
- {\dodododosetfont{#1}{#2}{#3}}
- {\doifdefinedelse{\??ft\normalizedbodyfontsize\interfaced{#2}}
- {\edef\fontstep{\bodyfontcsname\normalizedbodyfontsize\interfaced{#2}\endcsname}%
- \expanded{\dodododosetfont{#1}{\fontstep}}{#3}}
- {\doifelse{#2}\v!reset
- {\let\fontstyle\empty % new 31/7/2006
- \let\fontsize \empty}
- {\doifdefinedelse{\@style@#2}
- {\edef\fontstyle{#2}}
- {\doreadfontdefinitionfile{#1}{#2}}}}}}
-
-\def\dodododosetfont#1#2#3% #1 = set/switch state
- {\scratchdimen#2\relax
- \normalizebodyfontsize\scratchdimen\to\normalizedsetfont
- \doifundefined{\@size@\normalizedsetfont}
- {\defineunknownfont{#2}}%
- \doifdefinedelse{\@size@\normalizedsetfont}
- {\localbodyfontsize\normalizedsetfont
- \let\normalizedbodyfontsize\normalizedsetfont}
- {#3\dosetsubstitutefont{#1}{#2}}}
-
-%D In the previous macros we use \type{\currentxfontsize} to
-%D hold the current x||size of the font. This enables us to
-%D support for instance \type{\sl} inside a \type{\tx} switch.
-
-\chardef\currentxfontsize=0
-
-%D When users specify for instance a 13 point bodyfont while no
-%D such bodyfont is defined, the system automatically tries to
-%D find a best fit, that is the nearest smaller defined
-%D bodyfontzize. A smaller one is definitely better than a larger
-%D one, simply because otherwise a lot of overfull box messages
-%D are more probable to occur. By taking a value slightly
-%D smaller than half a point, we can use the next method.
-
-\def\dosetsubstitutefont#1#2% #1 = set/switch state
- {\scratchdimen#2\relax
- \advance\scratchdimen .499\points
- \dimensiontocount\scratchdimen\scratchcounter
- \advance\scratchcounter \minusone
- \ifnum\scratchcounter>\plusthree
- \dododosetfont{#1}{\the\scratchcounter\s!pt}{}%
- \fi}
-
-% The following bunch of macros deals with the (run time)
-% expansion of names onto the definitions made by \type
-% {\definebodyfont}.
-
-% \let\fontbody \empty % ... 10pt 11pt 12pt ...
-% \let\fontstyle \empty % rm ss tt mm hw cg ...
-% \let\fontalternative\empty % tf bf sl it bs bi sc ...
-% \let\fontsize \empty % xy-abcd ...
-
-\def\defaultfontbody{\normalizedbodyfontsize}
-
-\let\fontbody\defaultfontbody
-
-\let\fontclass\empty \let\globalfontclass\fontclass
-
-% \def\setcurrentfontclass#1%
-% {\edef\fontclass{#1}}
-
-\def\registerfontclass#1%
- {\letgvalue{\@fontclass@#1}\v!yes} % global ?
-
-\def\setcurrentfontclass#1%
- {\ifcsname\@fontclass@#1\endcsname
- \edef\fontclass{#1}%
- \fi}
-
-\let\defaultfontstyle \c!rm
-\let\defaultfontalternative \c!tf
-\let\defaultfontsize \empty
-
-%D \macros
-%D {bigmath,nobigmath}
-%D
-%D We can inhibit this slow||downer with:
-
-% these can best be combined
-
-% 0=never 1=everymath 2=always
-
-\chardef\synchronizebigmathflag=1
-
-\appendtoks
- \ifcase\synchronizebigmathflag
- % never
- \or
- \synchronizebigmath
- \or
- % always
- \fi
-\to \everymathematics
-
-\def\nobigmath{\chardef\synchronizebigmathflag 0 }
-\def\bigmath {\chardef\synchronizebigmathflag 2 \synchronizebigmath}
-
-\let\bigmathfontsize\empty
-
-\def\synchronizebigmath
- {\ifx\bigmathfontsize\fontsize
- % already in sync
- \else
- \let\bigmathfontsize\fontsize
- \synchronizemath \synchronizetext
- \fi}
-
-\def\checkbigmathsynchronization
- {\ifcase\synchronizebigmathflag
- % never
- \or
- \ifmmode \synchronizebigmath \fi
- \or
- \synchronizebigmath
- \fi}
-
-%D So far for synchronisation.
-
-\def\dosetcurrentfontsize#1%
- {\edef\fontsize{#1}%
- \checkbigmathsynchronization}
-
-\def\dosetcurrentfontalternative#1%
- {\edef\fontalternative{#1}%
- \ifmmode % maybe no test, or actually, an option
- \fam\csname\fontalternative\s!fam\endcsname
- \fi}
-
-\def\setcurrentfont#1#2#3#4%
- {%\message{[1 #1 #2 #3 #4]}%
- \edef\fontbody{#1}%
- \edef\fontstyle{#2}%
- \dosetcurrentfontalternative{#3}%
- \dosetcurrentfontsize{#4}%
- \synchronizefont}
-
-\def\setcurrentfontbody#1%
- {%\message{[2 #1]}%
- \edef\fontbody{#1}%
- \synchronizefont}
-
-% \def\setcurrentfontstyle#1%
-% {%\message{[3 #1]}%
-% \edef\fontstyle{#1}%
-% \ifmmode\mr\fi % otherwise \rm not downward compatible
-% \synchronizefont}
-%
-% For Taco: optional fall backs:
-
-\ifx\checkfontclass\undefined \let\checkfontclass\gobbleoneargument \fi % implemented in type-ini
-
-\def\setcurrentfontstyle#1%
- {%\message{[3 #1]}%
- \checkfontclass{#1}%
- \edef\fontstyle{#1}%
- \ifmmode\mr\fi % otherwise \rm not downward compatible
- \synchronizefont}
-
-\def\setcurrentfontbodyalternative#1#2%
- {%\message{[4 #1 #2]}%
- \edef\fontbody{#1}%
- \dosetcurrentfontalternative{#2}%
- \synchronizefont}
-
-\def\setcurrentfontalternative#1%
- {%\message{[5 #1]}%
- \dosetcurrentfontalternative{#1}%
- \synchronizefont}
-
-\def\setcurrentfontsize#1%
- {%\message{[6 #1]}%
- \dosetcurrentfontsize{#1}%
- \synchronizefont}
-
-\def\setcurrentfontstylealternative#1#2% \rmsl
- {%\message{[7 #1 #2]}%
- \edef\fontstyle{#1}%
- \dosetcurrentfontalternative{#2}%
- \synchronizefont}
-
-\def\setcurrentfontstylesize#1#2% \rmsla
- {%\message{[8 #1 #2]}%
- \edef\fontstyle{#1}%
- \dosetcurrentfontsize{#2}%
- \synchronizefont}
-
-\def\setcurrentfontalternativesize#1#2% \sla
- {%\message{[9 #1 #2]}%
- \dosetcurrentfontalternative{#1}%
- \dosetcurrentfontsize{#2}%
- \synchronizefont}
-
-\def\setcurrentfontstylealternativesize#1#2#3% \rmsla
- {%\message{[10 #1 #2 #3]}%
- \edef\fontstyle{#1}%
- \dosetcurrentfontalternative{#2}%
- \dosetcurrentfontsize{#3}%
- \synchronizefont}
-
-%D In principle one can assign alternative fallback routines.
-%D Some day we will.
-
-\newtoks\fontstrategies
-\newif\iftryingfont
-
-\let\fontstrategy\relax
-
-\def\synchronizefont
- {\tryingfonttrue
- \ifx\fontclass\empty\else
- \global\let\fontstrategy\dofontclassstrategy
- \the\fontstrategies \relax % \relax still needed ?
- \fi
- \iftryingfont
- \global\let\fontstrategy\dofontstrategy
- \the\fontstrategies \relax % \relax still needed ?
- \fi
- \ifskipfontcharacteristics
- \setfontcharacteristics
- \the\everyfontswitch
- \fi}
-
-\def\dofontstrategy#1#2#3#4#5%
- {\ifcsname#2#3#4#5\endcsname
- #1\csname#2#3#4#5\endcsname \tryingfontfalse
- \fi}
-
-\def\dofontclassstrategy#1#2#3#4#5%
- {\ifcsname\fontclass#2#3#4#5\endcsname
- #1\csname\fontclass#2#3#4#5\endcsname \tryingfontfalse
- \fi}
-
-\appendtoks \iftryingfont \fontstrategy \autofontsizefalse % --- --- --- --- % pt tt bf a
- \fontbody \fontstyle \fontalternative \fontsize
-\fi \to \fontstrategies
-
-\appendtoks \iftryingfont \fontstrategy \autofontsizetrue % --- --- --- def % pt tt bf
- \fontbody \fontstyle \fontalternative \defaultfontsize
-\fi \to \fontstrategies
-
-\appendtoks \iftryingfont \fontstrategy \autofontsizetrue % --- --- def --- % pt tt tf a
- \fontbody \fontstyle \defaultfontalternative \fontsize
-\fi \to \fontstrategies
-
-\appendtoks \iftryingfont \fontstrategy \autofontsizetrue % --- --- def def % pt tt tf
- \fontbody \fontstyle \defaultfontalternative \defaultfontsize
-\fi \to \fontstrategies
-
-\appendtoks \iftryingfont \fontstrategy \autofontsizefalse % --- def def def % pt rm tf
- \fontbody \defaultfontstyle \defaultfontalternative \defaultfontsize
-\fi \to \fontstrategies
-
-\appendtoks \iftryingfont \fontstrategy \autofontsizetrue % def def def def % rm tf
- \defaultfontbody \defaultfontstyle \defaultfontalternative \defaultfontsize
-\fi \to \fontstrategies
-
-%D Let's synchronize:
-
-\newif\ifsynchronizefonts \synchronizefontstrue
-
-\prependtoks
- \ifsynchronizefonts
- \synchronizemath
- \synchronizetext
- \synchronizefont % problem: syncs last font
- \fi
-\to \everybodyfont
-
-%D Setting the normal sized as well as the x and xx smaller
-%D sizes is accomplished by the next set of macros. When in
-%D math mode, the commands \type{\tx} and \type{\txx} are
-%D just a switch to the script and double script styles, but
-%D in text mode the values defined by the bodyfontenvironment are
-%D used. Here we also set \type{\currentxfontsize}.
-
-\def\dosetcurrentfontxxxalternative#1#2#3#4%
- {\chardef\currentxfontsize#2\relax
- \ifmmode
- #4%
- \else\ifcsname\bodyfontvariable{\normalizedbodyfontsize#3}\endcsname
- \setcurrentfontbodyalternative{\bodyfontcsname\normalizedbodyfontsize#3\endcsname}{#1}%
- \fi\fi}
-
-\def\setcurrentfontxalternative#1%
- {\dosetcurrentfontxxxalternative{#1}1\c!x\scriptstyle
- \let\tx\txx}
-
-\def\setcurrentfontxxalternative#1%
- {\dosetcurrentfontxxxalternative{#1}2\c!xx\scriptscriptstyle
- \let\tx\empty
- \let\txx\empty}
-
-\def\checknestedxfontsize % option
- {\ifcase\currentxfontsize\else\ifx\fontsize\empty\else
- \chardef\currentxfontsize\zeropoint
- \let\fontsize\empty
- \let\tx\normaltx
- \let\txx\normaltxx
- \fi\fi}
-
-\def\setcurrentfontxalternative#1%
- {\checknestedxfontsize
- \dosetcurrentfontxxxalternative{#1}1\c!x\scriptstyle
- \let\tx\txx}
-
-\def\setcurrentfontxxalternative#1%
- {\checknestedxfontsize
- \dosetcurrentfontxxxalternative{#1}2\c!xx\scriptscriptstyle
- \let\tx\empty
- \let\txx\empty}
-
-% This alterative is not really needed, but for old time's sake
-% we keep it there. We can speed it up when needed.
-
-% \def\setcurrentfontxstylealternative #1{\csname#1\endcsname\tfx}
-% \def\setcurrentfontxxstylealternative#1{\csname#1\endcsname\tfxx}
-
-\def\setcurrentfontxstylealternative #1{\csname#1\endcsname\tx}
-\def\setcurrentfontxxstylealternative#1{\csname#1\endcsname\txx}
-
-%D These macros also show us that when we call for \type{\tx},
-%D this macro is redefined to be \type{\txx}. Therefore calls
-%D like:
-%D
-%D \startbuffer
-%D {small \tx is \tx beautiful}
-%D {small \tx is \txx beautiful}
-%D {small \txx is \tx beautiful}
-%D {small \txx is \txx beautiful}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D result in:
-%D
-%D \startvoorbeeld
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D \stopvoorbeeld
-%D
-%D Setting the main size involves the style list and therefore
-%D takes a bit more time. Keep in mind that the fontsize is
-%D represented by a character or empty.
-
-\unexpanded\def\tx {\setcurrentfontxalternative \fontalternative}
-\unexpanded\def\txx{\setcurrentfontxxalternative\fontalternative}
-
-\let\normaltx \tx
-\let\normaltxx\txx
-
-%D \macros
-%D {definefontstyle}
-%D
-%D When setting of switching the overall style we can use the
-%D short identifier like rm and ss, but when defined we can
-%D also use more verbose names like roman or sansserif. Such
-%D names are defined by:
-%D
-%D \starttyping
-%D \definefontstyle [serif,rm] [rm]
-%D \definefontstyle [sansserif,ss] [ss]
-%D \stoptyping
-
-\def\dodefinefontstyle[#1][#2]%
- {\rawdoifinsetelse{#2}{\fontstylelist}
- {}%\debuggerinfo\m!fonts{unknown style #2}}
- {\addtocommalist{#2}\fontstylelist
- \showmessage\m!fonts8{#2\space (#1)}}%
- % check kan hier
- \def\docommand##1%
- {\setvalue{\@shortstyle@##1}{#2}%
- \setvalue{\@style@##1}{\csname#2\endcsname}}%
- \processcommalist[#1]\docommand}
-
-\def\definefontstyle
- {\dodoubleargument\dodefinefontstyle}
-
-\def\setfontstyle#1#2% #1:name (roman, romaan) #2:style (rm)
- {\edef\fontstyle{#1}%
- \setcurrentfontstyle\normalizedbodyfontsize}
-
-\chardef\defaultskewcharmi=127 % '177
-\chardef\defaultskewcharsy= 48 % '60
-
-% \def\dosetskewchar#1%
-% {\skewchar\font\ifx\@@fontskewchar\empty#1\else\@@fontskewchar\fi}
-
-\def\dosetskewchar#1#2%
- {\ifx\@@fontskewchar\empty
- \skewchar\textfont #1#2%
- \skewchar\scriptfont #1#2%
- \skewchar\scriptscriptfont#1#2%
- \else
- \skewchar\textfont #1\@@fontskewchar
- \skewchar\scriptfont #1\@@fontskewchar
- \skewchar\scriptscriptfont#1\@@fontskewchar
- \fi}
-
-%D The previous macros show that it's is not always
-%D neccessary to define the whole bunch of fonts, take for
-%D instance the sequence:
-%D
-%D \starttyping
-%D \setupbodyfont
-%D [ams]
-%D
-%D \definebodyfont [24pt] [mm]
-%D [ma=msam10 at 24pt,
-%D mb=msbm10 at 24pt]
-%D
-%D \switchtobodyfont
-%D [24pt]
-%D
-%D This is a 24pt $\blacktriangleleft$
-%D \stoptyping
-%D
-%D Here we didn't define the 24 point bodyfont environment, so
-%D it's defined automatically. Of course one can always use the
-%D \TEX\ primitive \type{\font} to switch to whatever font
-%D needed.
-
-%D When asking for a complete font switch, for instance from 10
-%D to 12~points, the next macro does the job. First we
-%D normalize the size, next we define the current range of
-%D text, script and scriptscript sizes, then we set the text
-%D fonts and the math families and finally we activate the
-%D default typeface and also set the font specific parameters
-%D assigned to \type{\everybodyfont}
-
-\def\dosetbodyfontface#1#2%
- {\edef#1{\bodyfontcsname\normalizedbodyfontsize#2\endcsname}}
-
-\def\docompletefontswitch[#1]%
- {\bodyfontsize#1\relax
- \dimensiontocount\bodyfontsize\bodyfontpoints
- \edef\bodyfontfactor{\withoutpt\the\bodyfontsize}%
- \normalizebodyfontsize\bodyfontsize\to\normalizedbodyfontsize
- \dosetbodyfontface \textface \s!text
- \dosetbodyfontface \scriptface \s!script
- \dosetbodyfontface \scriptscriptface \s!scriptscript}
-
-\docompletefontswitch[12pt] % init
-
-%D \macros
-%D {setupbodyfont,switchtobodyfont}
-%D
-%D The next two macros are user ones. With \type{\setupbodyfont}
-%D one can set the document bodyfont size, font family, style
-%D and/or options defined in files, for example:
-%D
-%D \starttyping
-%D \setupbodyfont[cmr,ams,12pt,roman]
-%D \stoptyping
-%D
-%D This command affects the document as a whole: text, headers
-%D and footers. The second macro however affects only the text:
-%D
-%D \starttyping
-%D \switchtobodyfont[10pt]
-%D \stoptyping
-%D
-%D So we've got:
-%D
-%D \showsetup{setupbodyfont}
-%D \showsetup{switchtobodyfont}
-%D
-%D Both macros look alike. The second one also has to take
-%D all kind of keywords into account.
-
-\ifx\saveinterlinespace \undefined \let\saveinterlinespace \relax \fi
-\ifx\restoreinterlinespace\undefined \let\restoreinterlinespace\relax \fi
-
-\chardef\bodyfontsetstate=0
-
-\definecomplexorsimple\setupbodyfont
-
-\def\simplesetupbodyfont
- {\restoreglobalbodyfont
- \saveinterlinespace}
-
-\def\complexsetupbodyfont[#1]%
- {\doifsomething{#1}
- {\dosetfont1{#1}%
- \globalbodyfontsize\localbodyfontsize
- \normalizebodyfontsize\globalbodyfontsize\to\normalizedglobalbodyfontsize
- \let\globalfontstyle\fontstyle
- \ifloadingfonts\else
- \the\everybodyfont
- \the\everyglobalbodyfont
- \saveinterlinespace
- \fi}}
-
-\unexpanded\def\switchtobodyfont[#1]%
- {\doifsomething{#1}
- {\doifdefinedelse{\??ft\normalizedbodyfontsize\interfaced{#1}}
- {\setbodyfontstep{#1}} % so we have a fast [small] switch
- {\dosetfont0{#1}}%
- \the\everybodyfont}} % indeed needed in case nothing is executed
-
-%D The following alternative is meant for math||to||text
-%D switching and will be optimized.
-
-\def\fastswitchtobodyfont#1%
- {\ifcsname\??ft\normalizedbodyfontsize#1\endcsname
- \edef\futurebodyfontsize
- {\csname\??ft\normalizedbodyfontsize#1\endcsname}%
- \ifcsname\@size@\futurebodyfontsize\endcsname
- \csname\@size@\futurebodyfontsize\endcsname
- \localbodyfontsize\futurebodyfontsize\relax
- \fi
- \fi
- \csname\@style@\fontstyle\endcsname
- \the\everybodyfont}
-
-%D Because the last macro can appear in arguments or be assigned
-%D to parameters, we protect this one for unwanted expansion.
-
-\def\dodosetmathfont#1%
- {\setcurrentfontalternative{#1}%
- % \doifdefinedelse{#1\s!fam} % adapted
- % {\edef\mffam{\getvalue{#1\s!fam}}}
- % {\edef\mffam{\getvalue{\c!nn\s!fam}}}%
- \textfont \mrfam\textfont \mffam
- \scriptfont \mrfam\scriptfont \mffam
- \scriptscriptfont\mrfam\scriptscriptfont\mffam}
-
-\def\domffam#1%
- {\csname\ifcsname#1\s!fam\endcsname#1\else\c!nn\fi\s!fam\endcsname}
-
-\def\mffam
- {\domffam\fontalternative}
-
-\def\dosetmathfont
- {\def\rm{\fam\mrfam}\dodosetmathfont}
-
-\def\enableencodinginmath
- {\appendtoks
- \everyhbox{\mr\everyhbox\emptytoks}%
- \everyvbox{\mr\everyvbox\emptytoks}%
- \to \everymathematics} % was \everymath
-
-% \enableencodinginmath % too untested to enable by default
-
-%D \starttyping
-%D $\cases{& \ccaron}$ $x=\hbox{\ccaron $x=\hbox{\ccaron}$}$
-%D \stoptyping
-
-%D The font specific features are bound to the filename.
-
-\def\updatefontparameters
- {\edef\@@fontencoding{\truefontdata\fontfile \s!encoding}%
- \edef\@@fontmapping {\truefontdata\fontfile \s!mapping }%
- \edef\@@fonthandling{\truefontdata\somefontname\s!handling}%
- \edef\@@fontskewchar{\truefontdata\fontfile \s!skewchar}}
-
-\def\setfontcharacteristics
- {\updatefontparameters % redundant, will go away, faster too
- \fastenableencoding
- {\ifx\@@fontencoding\empty
- \s!default \else \@@fontencoding
- \fi}%
- \fastenablemapping
- {\ifx\@@fontmapping\empty
- \ifx\@@fontencoding\empty
- \s!default \else \@@fontencoding
- \fi
- \else
- \@@fontmapping
- \fi}%
- \fastenablehandling
- {\ifx\@@fonthandling\empty
- \s!default \else \@@fonthandling
- \fi}%
- {\lastfontidentifier}%
- \the\everyfont
- \synchronizepatternswithfont}
-
-\ifx\synchronizepatternswithfont\undefined
- \def\synchronizepatternswithfont{\synchronizepatterns}
-\fi
-
-%D Experimental: (should move to font-xtx)
-
-\ifdefined \definefontfeature \else
-
- \def\definefontfeature {\dotripleargument\dodefinefontfeature}
- \def\dodefinefontfeature[#1][#2][#3]{}
-
-\fi
-
-%D The next auxilliary macro is an alternative to \type
-%D {\fontname}.
-
-% \def\purefontname#1{\expandafter\splitoffpurefontname\fontname#1 \\}
-%
-% extra level is needed:
-
-\def\purefontname#1{\@EA\splitoffpurefontname\@EA{\@EA{\@EA\unstringed\fontname#1}} \\}
-
-\def\splitoffpurefontname#1 #2\\{#1}
-
-%D \macros
-%D {switchstyleonly}
-%D
-%D For switching a style but keeping the alternative, there
-%D is:
-%D
-%D \starttyping
-%D {\bf text \switchstyleonly\ss text}
-%D {\bf text \switchstyleonly[ss]text}
-%D {\sl text \switchstyleonly[sansserif]text}
-%D \stoptyping
-
-\definecomplexorsimple\switchstyleonly
-
-\def\simpleswitchstyleonly#1% stupid version
- {\complexswitchstyleonly[\strippedcsname#1]}
-
-\def\complexswitchstyleonly[#1]% todo : check
- {\setcurrentfontstyle{\getvalue{\@shortstyle@#1}}%
- \the\everybodyfont} % needed ?
-
-%D \macros
-%D {os,frak, goth, cal}
-%D
-%D Old style numerals can be typeset with \type{\os} and look
-%D like {\os 1234567890} instead of the more common looking
-%D 1234567890.
-%D
-%D On behalf of {\frac Tobias Burnus}, we define some more of
-%D these. Later we will link these names to real file names.
-
-% older
-%
-% \definefont [os] [OldStyle sa *]
-% \definefont [frak] [Fraktur sa *]
-% \definefont [goth] [Gothic sa *]
-% \definefont [cal] [Calligraphic sa *]
-% \definefont [bbd] [Blackboard sa *]
-%
-% newer
-
-\unexpanded\def\os {\mathortext{\fam\purefamily {oldstyle}}{\symbolicfont {OldStyle}}}
-\unexpanded\def\frak{\mathortext{\fam\purefamily {fraktur}}{\symbolicfont {Fraktur}}}
-\unexpanded\def\goth{\mathortext{\fam\purefamily {gothic}}{\symbolicfont {Gothic}}}
-\unexpanded\def\cal {\mathortext{\fam\purefamily{calligraphic}}{\symbolicfont{Calligraphic}}}
-\unexpanded\def\bbd {\mathortext{\fam\purefamily {blackboard}}{\symbolicfont {Blackboard}}}
-
-\definefontsynonym [OldStyle] [Serif]
-\definefontsynonym [Fraktur] [Serif]
-\definefontsynonym [Gothic] [Serif]
-\definefontsynonym [Calligraphic] [Serif]
-\definefontsynonym [Blackboard] [Serif]
-
-%D \macros
-%D {fraktur, gothic, calligraphic, blackboard}
-%D
-%D These macros assume that we use text fonts, and not math
-%D families.
-
-\ifx\mathtext\undefined \let\mathtext\hbox \fi
-
-\unexpanded\def\fraktur #1{\mathortext\domathtext\donothing{\frak#1}}
-\unexpanded\def\gothic #1{\mathortext\domathtext\donothing{\goth#1}}
-\unexpanded\def\calligraphic#1{\mathortext\domathtext\donothing{\cal #1}}
-\unexpanded\def\blackboard #1{\mathortext\domathtext\donothing{\bbd#1}}
-
-%D Torture test:
-%D
-%D \starttyping
-%D \usetypescript[modern] [texnansi]
-%D \usetypescript[lucida] [texnansi]
-%D \usetypescript[palatino][texnansi]
-%D \usetypescript[times] [texnansi]
-%D \usetypescript[fourier] [ec]
-%D
-%D \startbuffer
-%D \section{\blackboard{T\high{\blackboard{T}}} \blackboard{E}\high{\blackboard{E}} \blackboard{X}\high{\blackboard{X}}}
-%D
-%D {\fontclass: 123 \os123 \cal TEX $\os 123$}
-%D
-%D $\blackboard{T}^{\blackboard{T}} \blackboard{E}^{\blackboard{E}} \blackboard{X}^{\blackboard{X}}$
-%D \blackboard{T}\high{\blackboard{T}} \blackboard{E}\high{\blackboard{E}} \blackboard{X}\high{\blackboard{X}}
-%D \stopbuffer
-%D
-%D {\setupbodyfont[lucida] \getbuffer}
-%D {\setupbodyfont[modern] \getbuffer}
-%D {\setupbodyfont[palatino] \getbuffer}
-%D {\setupbodyfont[times] \getbuffer}
-%D {\setupbodyfont[fourier] \getbuffer}
-%D \stoptyping
-
-%D \macros
-%D {definebodyfontswitch}
-%D
-%D \PLAIN\ \TEX\ defines some macro's like \type{\tenpoint}
-%D to switch to a specific bodyfontsize. Just for the sake of
-%D compatibility we can define them like:
-%D
-%D \starttyping
-%D \definebodyfontswitch [twelvepoint] [12pt]
-%D \stoptyping
-%D
-%D We don't support language specific synonyms here, mainly
-%D because \PLAIN\ \TEX\ is english anyway.
-
-\def\dodefinebodyfontswitch[#1][#2]%
- {\def\docommand##1{\setvalue{##1}{\switchtobodyfont[#2]}}%
- \processcommalist[#1]\docommand}
-
-\def\definebodyfontswitch
- {\dodoubleargument\dodefinebodyfontswitch}
-
-%D \macros
-%D {setsmallbodyfont,setmainbodyfont,setbigbodyfont}
-%D
-%D When we're typesetting at for instance 10pt, we can call for
-%D the \type{small} as well as the \type{big} alternative,
-%D related to this main size, using \type{\switchtobodyfont[small]}.
-%D The three alternatives can be activated by the next three
-%D system calls and are defined by the bodyfontenvironment.
-
-\let\fontstep\empty % we can use \fontstep for tracing purposes
-
-\def\setbodyfontstep#1%
- {\edef\fontstep{\bodyfontcsname\normalizedbodyfontsize\interfaced{#1}\endcsname}%
- \doswitchpoints[\fontstep]%
- \doswitchstyle[\fontstyle]}
-
-\unexpanded\def\setsmallbodyfont{\setbodyfontstep\v!small\the\everybodyfont}
-\unexpanded\def\setbigbodyfont {\setbodyfontstep\v!big \the\everybodyfont}
-
-\unexpanded\def\setmainbodyfont
- {\doswitchpoints[\normalizedbodyfontsize]%
- \doswitchstyle[\fontstyle]%
- \the\everybodyfont
- \the\everyglobalbodyfont
- \saveinterlinespace}
-
-%D \macros
-%D {restoreglobalbodyfont}
-%D
-%D Users can set whatever font available while typesetting text.
-%D Pagenumbers, footers, headers etc. however must be typeset
-%D in the main bodyfont and style of the document. Returning to
-%D the global state can be done with the next macro:
-
-\let\mainfontclass\empty
-
-\def\fullrestoreglobalbodyfont
- {\let\fontsize\defaultfontsize
- \let\fontbody\defaultfontbody
- \chardef\currentxfontsize\zerocount
- \let\fontclass\globalfontclass
- \doswitchpoints[\normalizedglobalbodyfontsize]%
- \doswitchstyle[\globalfontstyle]%
- \redoconvertfont % just in case a pagebreak occurs
- \tf
- \the\everybodyfont
- \the\everyglobalbodyfont
- \saveinterlinespace}
-
-\def\partialrestoreglobalbodyfont
- {\let\fontsize\defaultfontsize
- \let\fontbody\defaultfontbody
- \chardef\currentxfontsize\zerocount
- \redoconvertfont
- \tf
- \saveinterlinespace}
-
-\def\restoreglobalbodyfont % ook style etc
- {\ifx\fontclass\globalfontclass
- \ifx\fontstyle\globalfontstyle
- \ifx\normalizedbodyfontsize\normalizedglobalbodyfontsize
- \partialrestoreglobalbodyfont
- \else
- \fullrestoreglobalbodyfont
- \fi
- \else
- \fullrestoreglobalbodyfont
- \fi
- \else
- \fullrestoreglobalbodyfont
- \fi}
-
-% in case of troubles: \let\restorebodyfont\fullrestoreglobalbodyfont
-
-%D This macro has to be called when entering the pagebody
-%D handling routine as well as the footnote insert routine.
-%D Users can access this feature |<|for instance when one wants
-%D to typeset tables and alike in the main bodyfont and style
-%D while the running text is temporary set to a smaller one|>|
-%D by saying \type{\switchtobodyfont[global]}.
-
-%D \macros
-%D {rasterfont}
-%D
-%D There are (at the moment) two situations in which we want to
-%D have fast access to a particular font. When we are using
-%D \TEX\ to typeset rasters, we use small {\rasterfont.}'s
-%D (a rather small period indeed), the same as \PICTEX\ uses
-%D for drawing purposes.
-
-\definefont [rasterfont] [Serif at 5pt]
-
-%D \macros
-%D {infofont}
-%D
-%D The second situation occurs when we enable the info mode,
-%D and put all kind of status information in the margin. We
-%D don't want huge switches to the main bodyfont and style, so
-%D here too we use a direct method.
-
-% old mechanism
-%
-% \def\infofont{\getvalue{\!!sixpoint\c!tt\c!tf}\the\everybodyfont}
-
-\let\infofont\relax % satisfy dep checker
-
-\definefont [infofont] [Mono at 6pt] % todo \the\everybodyfont
-
-%D \macros
-%D {definealternativestyle}
-%D
-%D In the main modules we are going to implement lots of
-%D parameterized commands and one of these parameters will
-%D concern the font to use. To suit consistent use of fonts we
-%D here implement a mechanism for defining the keywords that
-%D present a particular style or alternative.
-%D
-%D \starttyping
-%D \definealternativestyle [keywords] [\style] [\nostyle]
-%D \stoptyping
-%D
-%D The first command is used in the normal textflow, while the
-%D second command takes care of headings and alike. Consider
-%D the next two definitions:
-%D
-%D \starttyping
-%D \definealternativestyle [bold] [\bf] []
-%D \definealternativestyle [cap] [\cap] [\cap]
-%D \stoptyping
-%D
-%D A change \type{\bf} in a heading which is to be set in
-%D \type{\tfd} does not look that well, so therefore we leave
-%D the second argument of \type{\definealternativestyle} empty.
-%D When we capatalize characters using the pseudo small cap
-%D command \type{\cap}, we want this to take effect in both
-%D text and headings, which is accomplished by assigning both
-%D arguments.
-
-\def\dodefinealternativestyle[#1][#2][#3]%
- {\def\docommand##1%
- {\doifundefined{##1}{\setvalue{##1}{\groupedcommand{#2}{}}}%
- \setvalue{\@letter@ ##1}{#2}%
- \setvalue{\@noletter@##1}{#3}}%
- \processcommalist[#1]\docommand}
-
-\def\definealternativestyle
- {\dotripleempty\dodefinealternativestyle}
-
-\def\definestyle{\definealternativestyle}
-
-%D Maybe too geneneric, but probably ok is the following. (Maybe one
-%D day we will use a dedicated grouped command for styles.)
-
-\appendtoks
- \let\groupedcommand\thirdofthreearguments
-\to \simplifiedcommands
-
-%D This command also defines the keyword as command. This means
-%D that the example definition of \type{bold} we gave before,
-%D results in a command \type{\bold} which can be used as:
-%D
-%D \startbuffer
-%D He's a \bold{bold} man with a {\bold head}.
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D or
-%D
-%D \startvoorbeeld
-%D \definealternativestyle[bold][\bf][]\getbuffer
-%D \stopvoorbeeld
-%D
-%D Such definitions are of course unwanted for \type{\cap}
-%D because this would result in an endless recursive call.
-%D Therefore we check on the existance of both the command and
-%D the substitution. The latter is needed because for instance
-%D \type{\type} is an entirely diferent command. That command
-%D handles verbatim, while the style command would just switch
-%D to teletype font. This is just an example of a tricky
-%D naming coincidence.
-
-%D \macros
-%D {doconvertfont,noconvertfont,
-%D dontconvertfont,redoconvertfont}
-%D
-%D After having defined such keywords, we can call for them by
-%D using
-%D
-%D \starttyping
-%D \doconvertfont{keyword}{text}
-%D \stoptyping
-%D
-%D We deliberately pass an argument. This enables us to
-%D assign converters that handle one agrument, like
-%D \type{\cap}.
-%D
-%D By default the first specification is used to set the style,
-%D exept when we say \type{\dontconvertfont}, after which the
-%D second specification is used. We can also directly call for
-%D \type{\noconvertfont}. In nested calls, we can restore the
-%D conversion by saying \type{\redoconvertfont}.
-
-\def\@@dodoconvertfont#1{\csname\@letter@ #1\endcsname}
-\def\@@donoconvertfont#1{\csname\@noletter@#1\endcsname}
-
-\unexpanded\def\dodoconvertfont#1% #2% we need the protection
- {\doifdefinedelse{\@letter@#1} % in testing
- {\doifelsenothing{#1}\gobbleoneargument\@@dodoconvertfont}
- {\doifdefinedelse{#1}\getvalue \firstofoneargument}%
- {#1}} % {#2}}
-
-\let\doconvertfont\dodoconvertfont
-
-\def\noconvertfont#1% #2%
- {\doifdefinedelse{\@noletter@#1}
- {\doifelsenothing{#1}\gobbleoneargument\@@donoconvertfont}\gobbleoneargument
- {#1}} % {#2}}
-
-%D Extras:
-
-\unexpanded\def\dontconvertfont
- {\let\doconvertfont\noconvertfont}
-
-\unexpanded\def\redoconvertfont
- {\let\doconvertfont\dodoconvertfont}
-
-%D These commands are not grouped! Grouping is most probably
-%D done by the calling macro's and would lead to unnecessary
-%D overhead.
-
-%D \macros
-%D {em,emphasistypeface,emphasisboldface}
-%D
-%D The next macro started as a copy of Donald Arseneau's
-%D \type{\em} (\TUGNEWS\ Vol.~3, no.~1, 1994). His
-%D implementation was a bit more sophisticated version of the
-%D standard \LATEX\ one. We furter enhanced the macro, so now
-%D it also adapts itself to boldface mode. Because we favor
-%D {\sl slanted} type over {\it italic}, we made the emphasis
-%D adaptable, for instance:
-%D
-%D \starttyping
-%D \def\emphasistypeface {\it}
-%D \def\emphasisboldface {\bi}
-%D \stoptyping
-%D
-%D But we prefer:
-
-\def\emphasistypeface {\sl}
-\def\emphasisboldface {\bs}
-
-%D or even better:
-
-% \def\doemphasistypeface#1#2%
-% {\doifelsevalue{\??ft\fontclass\normalizedbodyfontsize\c!em}\v!slanted#1%
-% {\doifelsevalue{\??ft\fontclass\normalizedbodyfontsize\c!em}\v!italic #2%
-% {\doifelsevalue{\??ft \normalizedbodyfontsize\c!em}\v!slanted#1%
-% {\doifvalue {\??ft \normalizedbodyfontsize\c!em}\v!italic #2}}}}
-
-\def\doemphasistypeface#1#2%
- {\doifelsevalue{\??ft\fontclass\normalizedbodyfontsize\c!em}\v!slanted
- {#1}%
- {\doifelsevalue{\??ft\fontclass\normalizedbodyfontsize\c!em}\v!italic
- {#2}%
- {\doifelsevaluenothing{\??ft\fontclass\normalizedbodyfontsize\c!em}
- {\doifelsevalue{\??ft\normalizedbodyfontsize\c!em}\v!slanted
- {#1}%
- {\doifelsevalue{\??ft\normalizedbodyfontsize\c!em}\v!italic
- {#2}%
- {\getvalue{\??ft\normalizedbodyfontsize\c!em}}}}
- {\getvalue{\??ft\fontclass\normalizedbodyfontsize\c!em}}}}}
-
-\def\emphasistypeface{\doemphasistypeface\sl\it}
-\def\emphasisboldface{\doemphasistypeface\bs\bi}
-
-%D To be set with the default body font environment: \type
-%D {em} being \type {slanted} or \type {italic}.
-
-\newconditional\emneeded
-
-\newtoks\everyemphasized
-
-\unexpanded\def\em
- {\relax
- \ifdim\slantperpoint>\zeropoint
- \settrue\emneeded
- \else
- \setfalse\emneeded
- \fi
- \setemphasisboldface % new
- \ifx\fontalternative\c!it % \ifnum\fam=\itfam
- \def\emphasistypeface{\it}\tf
- \else\ifx\fontalternative\c!sl % \ifnum\fam=\slfam
- \def\emphasistypeface{\sl}\tf
- \else\ifx\fontalternative\c!bf % \ifnum\fam=\bffam
- \emphasisboldface
- \else\ifx\fontalternative\c!bs % \ifnum\fam=\bsfam
- \def\emphasisboldface{\bs}\bf
- \else\ifx\fontalternative\c!bi % \ifnum\fam=\bifam
- \def\emphasisboldface{\bi}\bf
- \else
- \emphasistypeface
- \fi\fi\fi\fi\fi
- \the\everyemphasized
- \ifconditional\emneeded\relax
- \else
- \expandafter\aftergroup
- \fi
- \emphasiscorrection}
-
-% compare ...
-%
-% \appendtoks \red \to \everyemphasized
-% \setupbodyfontenvironment [default] [em={\italic\color[red]}]
-
-%D The next feature was not present in previous versions. It
-%D takes care of \type {\em \bf ...} sitiations.
-
-\def\setemphasisboldface
- {\let\normalbf\bf
- \let\setemphasisboldface\relax
- \unexpanded\def\bf
- {%\relax
- \let\bf\relax % new
- \ifx\fontalternative\c!it % \ifnum\fam=\itfam
- \bi
- \else\ifx\fontalternative\c!sl % \ifnum\fam=\slfam
- \bs
- \else
- \normalbf
- \fi\fi
- \let\bf\normalbf}}
-
-%D Donald's (adapted) macros take the next character into
-%D account when placing italic correction. As a bonus we also
-%D look for something that looks like a dash, in which case we
-%D don't correct.
-
-\let\italiccorrection=\/
-
-\def\emphasiscorrection
- {\ifhmode
- \expandafter\emphasislook
- \fi}
-
-\def\emphasislook
- {\begingroup
- \beginrobusttest
- \futurelet\next\emphasistest}
-
-\def\emphasistest
- {\normalifcat\noexpand\next,%
- \endrobusttest\expandafter\doemphasiscorrection
- \normalelse
- \endrobusttest\expandafter\dododoemphasiscorrection
- \normalfi}
-
-\def\doemphasiscorrection
- {\futurelet\next\dodoemphasiscorrection}
-
-\def\dodoemphasiscorrection
- {\setbox\scratchbox\hbox{\next}%
- \ifdim\ht\scratchbox=\zeropoint % probably a space
- \expandafter\dododoemphasiscorrection
- \else\ifdim\ht\scratchbox<.3ex
- \expandafter\expandafter\expandafter\endgroup
- \else
- \expandafter\expandafter\expandafter\dododoemphasiscorrection
- \fi\fi}
-
-\def\dododoemphasiscorrection
- {\scratchskip\lastskip
- \ifdim\scratchskip=\zeropoint\relax % == \ifzeropt\scratchskip
- \italiccorrection\relax
- \else
- \unskip\italiccorrection\hskip\scratchskip
- \fi
- \endgroup}
-
-%D We end with some examples which show the behavior when
-%D some punctuation is met. We also show how the mechanism
-%D adapts itself to bold, italic and slanted typing.
-%D
-%D \startbuffer
-%D test {test}test \par
-%D test {\sl test}test \par
-%D test {\em test}test \par
-%D test {\em test}--test \par
-%D
-%D test {test}, test \par
-%D test {\em test}, test \par
-%D
-%D test {\em test {\em test {\em test} test} test} test \par
-%D test {\bf test {\em test {\em test} test} test} test \par
-%D test {\sl test {\em test {\em test} test} test} test \par
-%D test {\it test {\em test {\em test} test} test} test \par
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D We get:
-%D
-%D \startvoorbeeld
-%D \startpacked
-%D \getbuffer
-%D \stoppacked
-%D \stopvoorbeeld
-
-%D \macros
-%D {emphbf,emphit,emphsl,emphtf}
-%D
-%D The next emphasis alternatives are for \THANH. They adapt
-%D their style as good as possible.
-
-\def\emphbf{\groupedcommand{\bf\def\emphit{\bi}\def\emphsl{\bs}}{}}
-\def\emphit{\groupedcommand{\it\def\emphbf{\bi}\def\emphsl{\sl}}{}}
-\def\emphsl{\groupedcommand{\sl\def\emphbf{\bs}\def\emphit{\it}}{}}
-\def\emphtf{\groupedcommand{\tf\def\emphbf{\bf}\def\emphit{\it}\def\emphsl{\sl}}{}}
-
-%D \startbuffer
-%D TEXT {\emphbf text \emphit text \emphtf text \emphsl text} TEXT
-%D TEXT \emphbf{text \emphit{text} \emphtf{text} \emphsl{text}} TEXT
-%D \stopbuffer
-%D
-%D \typebuffer
-%D \startlines
-%D \getbuffer
-%D \stoplines
-
-%D \macros
-%D {setfont}
-%D
-%D Every now and then we want to define a font directly, for
-%D instance when we typeset title pages. The next macro saves
-%D some typing:
-
-\def\setfont% geen \dosetfont mogelijk
- {\def\next{\nextfont\setupinterlinespace}%
- \afterassignment\next\font\nextfont=}
-
-%D One can call this macro as:
-%D
-%D \starttyping
-%D \setfont cmr10 at 60pt
-%D \stoptyping
-%D
-%D After which the font is active and the baselines and
-%D struts are set.
-
-%D \macros
-%D {showbodyfont}
-%D
-%D One can call for a rather simple overview of a bodyfont and the
-%D relations between its alternative fonts.
-%D
-%D \showsetup{showbodyfont}
-%D
-%D The current bodyfont (here we omitted the argument) looks like:
-%D
-%D \showbodyfont
-%D
-%D The implementation is rather straightforward in using
-%D \type{\halign}.
-
-\fetchruntimecommand \showbodyfont {\f!fontprefix\s!run}
-
-%D \macros
-%D {showfontstrip, testminimalbaseline, showminimalbaseline}
-%D
-%D The next command can come in handy when combining
-%D different fonts into a collection (typeface) and
-%D determining optimal baseline distances.
-%D
-%D \showfontstrip \blank \showminimalbaseline
-
-\fetchruntimecommand \showfontstrip {\f!fontprefix\s!run}
-\fetchruntimecommand \testminimalbaseline {\f!fontprefix\s!run}
-\fetchruntimecommand \showminimalbaseline {\f!fontprefix\s!run}
-
-%D \macros
-%D {showkerning}
-%D
-%D A goody is:
-%D
-%D \showkerning{Can you guess what kerning is?}
-
-\fetchruntimecommand \showkerning {\f!fontprefix\s!run}
-
-%D \macros
-%D {showbodyfontenvironment}
-%D
-%D The current bodyfontenvironment is:
-%D
-%D \showbodyfontenvironment
-%D
-%D This overview is generated using:
-%D
-%D \showsetup{showbodyfontenvironment}
-
-\fetchruntimecommand \showbodyfontenvironment {\f!fontprefix\s!run}
-
-%D \macros
-%D {showfont,showfontstyle,showligatures}
-%D
-%D The following command generates a fontmap:
-%D
-%D \startbuffer
-%D \showfont[SansBold at 12pt]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Below the table the name, encoding, mapping and handling are
-%D shown. Special characters like the \type {\skewchar} and
-%D \type {\hyphenchar} als marked.
-%D
-%D \getbuffer
-
-% to be internationalized
-
-\fetchruntimecommand \showfont {\f!fontprefix\s!run}
-\fetchruntimecommand \showfontstyle {\f!fontprefix\s!run}
-\fetchruntimecommand \showligature {\f!fontprefix\s!run}
-\fetchruntimecommand \showligatures {\f!fontprefix\s!run}
-\fetchruntimecommand \showcharratio {\f!fontprefix\s!run}
-
-%D \macros
-%D {getglyph, symbolicfont}
-%D
-%D Individual glyphs can be accessed by using
-%D
-%D \starttyping
-%D \getglyph{fontname}{character}
-%D \stoptyping
-%D
-%D This macro is used in for instance the symbol modules and
-%D as one can see, it does obey the small and even smaller
-%D sizes. The \type {\symbolicfont} macro can be used to
-%D switch to a font named \type {fontname} (see \type
-%D {cont-log} and \type {symb-eur} for examples of symbolic
-%D definitions.
-
-\def\fontstringA
- {\ifx\fontstyle\c!rm \s!Serif \else
- \ifx\fontstyle\c!ss \s!Sans \else
- \ifx\fontstyle\c!tt \s!Mono \else
- \s!Serif \fi\fi\fi}
-
-\def\fontstringB
- {\ifx\fontstyle\c!rm \s!Regular \else
- \ifx\fontstyle\c!ss \s!Support \else
- \ifx\fontstyle\c!tt \s!Type \else
- \s!Serif \fi\fi\fi}
-
-\def\fontstringC
- {\ifx\fontalternative\c!bf \s!Bold \else
- \ifx\fontalternative\c!sl \s!Slanted \else
- \ifx\fontalternative\c!it \s!Italic \else
- \ifx\fontalternative\c!bs \s!BoldSlanted \else
- \ifx\fontalternative\c!bi \s!BoldItalic \fi\fi\fi\fi\fi}
-
-\def\fontstringD % default fontstyle
- {\expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!rm \s!Serif \else
- \expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!ss \s!Sans \else
- \expandafter\ifx\csname\??tf\fontclass\s!default\endcsname\c!tt \s!Mono \else
- \s!Serif \fi\fi\fi}
-
-% potential generalization:
-
-% \letvalue{\??ff:t:\c!rm}\s!Serif
-% \letvalue{\??ff:t:\c!ss}\s!Sans
-% \letvalue{\??ff:t:\c!tt}\s!Mono
-%
-% \letvalue{\??ff:s:\c!bf}\s!Bold
-% \letvalue{\??ff:s:\c!sl}\s!Slanted
-% \letvalue{\??ff:s:\c!it}\s!Italic
-% \letvalue{\??ff:s:\c!bs}\s!BoldSlanted
-% \letvalue{\??ff:s:\c!bi}\s!BoldItalic
-%
-% \letvalue{\??ff:a:\c!rm}\s!Regular
-% \letvalue{\??ff:a:\c!ss}\s!Support
-% \letvalue{\??ff:a:\c!tt}\s!Type
-%
-% \def\fontstringA{\executeifdefined{\??ff:t:\fontstyle}\s!Serif}
-% \def\fontstringB{\executeifdefined{\??ff:a:\fontstyle}\s!Serif}
-% \def\fontstringC{\executeifdefined{\??ff:s:\fontstyle}\empty}
-% \def\fontstringD{\executeifdefined{\??ff:t:\csname\??tf\fontclass\s!default\endcsname}\s!Serif}
-
-\def\glyphfontfile#1%
- {#1%
- \ifcsname\??ff#1\fontstringA\fontstringC\endcsname
- \fontstringA\fontstringC
- \else\ifcsname\??ff#1\fontstringB\fontstringC\endcsname
- \fontstringB\fontstringC
- \else\ifcsname\??ff#1\fontstringA\endcsname
- \fontstringA
- \else\ifcsname\??ff#1\fontstringB\endcsname
- \fontstringB
- \else\ifcsname\??ff#1\fontstringC\endcsname
- \fontstringC
- \fi\fi\fi\fi\fi}
-
-%D The next macro can be used to make decisions based on the shape:
-
-\def\doifitalicelse#1#2%
- {\ifx\fontalternative\c!sl#1\else
- \ifx\fontalternative\c!it#1\else
- \ifx\fontalternative\c!bs#1\else
- \ifx\fontalternative\c!bi#1\else#2\fi\fi\fi\fi}
-
-%D For an example of usage of the following command,
-%D see \type {cont-log.tex}.
-%D
-%D \starttyping
-%D \def\symbolicfont#1%
-%D {\definedfont[\glyphfontfile{#1} sa *]}
-%D \stoptyping
-%D
-%D Since we know what scaling it to be applied, we can
-%D implement a much faster alternative:
-
-\let\thedefinedfont\relax
-
-% \def\symbolicscaledfont#1#2%
-% {\scaledfont\fontbody
-% \scaledfont#1\scaledfont
-% \font\thedefinedfont\truefontname{\glyphfontfile{#2}} at
-% \currentfontbodyscale\scaledfont
-% \thedefinedfont}
-%
-% \unexpanded\def\symbolicfont
-% {\symbolicscaledfont\plusone}
-%
-% even more control (needed for mthsqrt etc)
-
-\def\symbolicsizedfont#1#2#3%
- {\scaledfont#1%
- \scaledfont#2\scaledfont
- \font\thedefinedfont\truefontname{\glyphfontfile{#3}} at
- \currentfontbodyscale\scaledfont
- \thedefinedfont}
-
-\def\symbolicscaledfont
- {\symbolicsizedfont\fontbody}
-
-\unexpanded\def\symbolicfont
- {\symbolicsizedfont\fontbody\plusone}
-
-\unexpanded\def\getglyph#1#2% slow, faster, much faster
- %{{\definefont[\s!dummy][\glyphfontfile{#1} sa \currentfontscale]\dummy#2}}
- %{{\definefont[\s!dummy][\glyphfontfile{#1} sa *]\dummy#2}}
- %{{\symbolicfont{#1}#2}}
- {{\symbolicfont{#1}\doifnumberelse{#2}\char\donothing#2}}
-
-\unexpanded\def\getscaledglyph#1#2#3%
- {{\symbolicscaledfont{#1}{#2}\doifnumberelse{#3}\char\donothing#3}}
-
-\unexpanded\def\getrawglyph#1#2% for simple symbols
- {{\scaledfont\fontbody
- \font\thedefinedfont=#1 at \currentfontbodyscale\scaledfont
- \thedefinedfont\doifnumberelse{#2}\char\donothing#2}}
-
-%D The last implementation of \type {\getglyph} permits
-%D definitions like:
-%D
-%D \starttyping
-%D \definefontsynonym [EuroSans] [eurose]
-%D \definefontsynonym [EuroSansBold] [euroseb]
-%D \definefontsynonym [EuroSansItalic] [eurosei]
-%D \definefontsynonym [EuroSansSlanted] [eurosei]
-%D \definefontsynonym [EuroSansBoldItalic] [eurosebi]
-%D \definefontsynonym [EuroSansBoldSlanted] [eurosebi]
-%D
-%D \definesymbol [euro] [\getglyph{Euro}{\char160}]
-%D
-%D \def\euro{\symbol[euro]}
-%D \stoptyping
-%D
-%D These definitions guarantee that the next calls work okay:
-%D
-%D \starttyping
-%D \ss \tf\euro \bf\euro \sla\euro \itd\euro \bs\euro \bic\euro
-%D \stoptyping
-%D
-%D The shape as well as the size is adapted to the current
-%D environment.
-
-%D Fonts can only be used when loaded. In \CONTEXT\ we
-%D postpone the loading of fonts, even when we load \PLAIN.
-%D This means that we have to redefine one of the \PLAIN\
-%D macros. Let's tell that to the user first:
-
-\writestatus{loading}{Postponed Plain TeX Font Definitions}
-
-%D \macros
-%D {bordermatrix}
-%D
-%D In \PLAIN\ \TEX\ the width of a parenthesis is stored in
-%D the \DIMENSION\ \type{\mathparentwd}. This value is derived from
-%D the width of \type{\tenrm B}, so let's take care of it now:
-
-\let\normalbordermatrix=\bordermatrix
-
-\def\bordermatrix%
- {\bgroup
- \setbox0\hbox{\getvalue{\textface\c!mm\c!ex}B}%
- \global\mathparentwd\wd0\relax
- \egroup
- \normalbordermatrix}
-
-%D Because we want to be as \PLAIN\ compatible as possible, we
-%D make most of \PLAIN's font mechanisme available to the
-%D \CONTEXT\ user.
-
-\def\setplainfonts#1#2%
- {\setvalue {ten#1}{\getvalue{\!!tenpoint #2}}%
- \setvalue{seven#1}{\getvalue{\!!sevenpoint#2}}%
- \setvalue {five#1}{\getvalue{\!!fivepoint #2}}}
-
-\setplainfonts {\c!rm} {\c!rm\c!tf}
-\setplainfonts {\c!bf} {\c!rm\c!bf}
-\setplainfonts {\c!sl} {\c!rm\c!sl}
-\setplainfonts {\c!it} {\c!rm\c!it}
-\setplainfonts {\c!tt} {\c!rm\c!tt}
-\setplainfonts {\c!sy} {\c!mm\c!sy}
-\setplainfonts {\c!ex} {\c!mm\c!ex}
-\setplainfonts {\c!i} {\c!mm\c!mi}
-
-\let\setplainfonts=\undefined
-
-%D \macros
-%D {ss, SS, sz}
-%D
-%D We are going to redefine \type{\ss} but for those wo still
-%D want to have access to the german \SS, we save it's value in
-%D \type{\SS}. Ok, I should have used \type{\sf} instead of
-%D \type{\ss} in the first place.
-
-\ifx\undefined\SS \let\SS=\ss \fi
-\ifx\undefined\sz \let\sz=\ss \fi
-
-%D \macros
-%D {xi}
-%D
-%D We are going to redefine \type{\xi}, but fortunately this
-%D is a math mode character, so we can just say:
-
-\let\normalxi=\xi
-
-%D \macros
-%D {smashaccent}
-%D
-%D When we let \TEX\ put an accent on top of a character, such
-%D composed characters can get more height that height of a
-%D standard \type{\strut}. The next macro takes care of such
-%D unwanted compositions.
-%D
-%D We need to reach over the number that specifies the accent,
-%D and in doing so we use \type{\scratchcounter} as a placeholder
-%D because it accepts 8 bit numbers in octal, decimal or
-%D hexadecimal format. Next we set the height of the accented
-%D character to the natural height of the character.
-
-\unexpanded\def\smashaccent#1%
- {\dontleavehmode
- \bgroup
- \setbox\scratchbox\hbox{#1}%
- \ifdim\ht\scratchbox>\strutheight\relax\ht\scratchbox\strutheight\fi
- \ifdim\dp\scratchbox>\strutdepth \relax\dp\scratchbox\strutdepth \fi
- \box\scratchbox
- \egroup}
-
-%D For instance we can say:
-%D
-%D \starttyping
-%D \smashaccent{\"Uberhaupt}
-%D \stoptyping
-%D
-%D But normally one will use it as a prefix in definitions.
-%D The difference is in the height:
-%D
-%D \leavevmode\ruledhbox
-%D {\ruledhbox{\smashaccent{\"U}berhaupt}\quad
-%D oder\quad
-%D \ruledhbox{\"Uberhaupt}}
-
-%D \macros
-%D {moveaccent}
-%D
-%D Exact positioning of accents can be realized by saying:
-%D
-%D \starttyping
-%D \moveaccent{-.1ex}{\"u}berhaupt
-%D \stoptyping
-%D
-%D Again, this one will mostly used as a prefix in definitions.
-%D Here the difference is in the position:
-%D
-%D \leavevmode\ruledhbox
-%D {\ruledhbox{\moveaccent{-.1ex}{\"}Uberhaupt}\quad
-%D oder\quad
-%D \ruledhbox{\"Uberhaupt}}
-
-\unexpanded\def\moveaccent#1#2%
- {\smashaccent
- {\dimen0\exheight
- \dimen2\dimen0
- \advance\dimen2 -#1%
- \exheight\dimen2
- #2\relax
- \exheight\dimen0}}
-
-%D Personally I think that using \TEX\ is complicated by the
-%D way fonts are handled. Apart from the many encodings, we
-%D also deal with different naming schemes. Confronted with
-%D this problem, I decided to change the definitions into:
-%D
-%D \starttyping
-%D \definebodyfont [12pt] [rm] [tf=Times-Roman at 12pt]
-%D \stoptyping
-%D
-%D combined with for instance:
-%D
-%D \starttyping
-%D \definefontsynonym [Times-Roman] [tir]
-%D \stoptyping
-
-%D Now we're up to some definitions.
-
-\definebodyfontenvironment
- [\s!default]
- [ \s!text=1.0,
- \s!script=0.7,
- \s!scriptscript=0.5,
- \c!a=1.200,
- \c!b=1.440,
- \c!c=1.728,
- \c!d=2.074,
- *=\currentfontscale, % wildcard
- \c!x=0.8,
- \c!xx=0.6,
- \c!big=1.2,
- \c!small=0.8,
- \c!interlinespace=,
- \c!em=\v!slanted]
-
-\definebodyfontenvironment
- [20.7pt]
- [ \s!text=20.7pt,
- \s!script=\!!fourteenpointfour,
- \s!scriptscript=\!!twelvepoint,
- \c!x=17.3pt,
- \c!xx=\!!fourteenpointfour,
- \c!big=20.7pt, % !!!!
- \c!small=17.3pt]
-
-\definebodyfontenvironment
- [17.3pt]
- [ \s!text=17.3pt,
- \s!script=\!!twelvepoint,
- \s!scriptscript=\!!tenpoint,
- \c!x=\!!fourteenpointfour,
- \c!xx=\!!twelvepoint,
- \c!big=20.7pt,
- \c!small=\!!fourteenpointfour]
-
-\definebodyfontenvironment
- [\!!fourteenpointfour]
- [ \s!text=\!!fourteenpointfour,
- \s!script=\!!elevenpoint,
- \s!scriptscript=\!!ninepoint,
- \c!x=\!!twelvepoint,
- \c!xx=\!!tenpoint,
- \c!big=17.3pt,
- \c!small=\!!twelvepoint]
-
-\definebodyfontenvironment
- [\!!twelvepoint]
- [ \s!text=\!!twelvepoint,
- \s!script=\!!ninepoint,
- \s!scriptscript=\!!sevenpoint,
- \c!x=\!!tenpoint,
- \c!xx=\!!eightpoint,
- \c!big=\!!fourteenpointfour,
- \c!small=\!!tenpoint]
-
-\definebodyfontenvironment
- [\!!elevenpoint]
- [ \s!text=\!!elevenpoint,
- \s!script=\!!eightpoint,
- \s!scriptscript=\!!sixpoint,
- \c!x=\!!ninepoint,
- \c!xx=\!!sevenpoint,
- \c!big=\!!twelvepoint,
- \c!small=\!!ninepoint]
-
-\definebodyfontenvironment
- [\!!tenpoint]
- [ \s!text=\!!tenpoint,
- \s!script=\!!sevenpoint,
- \s!scriptscript=\!!fivepoint,
- \c!x=\!!eightpoint,
- \c!xx=\!!sixpoint,
- \c!big=\!!twelvepoint,
- \c!small=\!!eightpoint]
-
-\definebodyfontenvironment
- [\!!ninepoint]
- [ \s!text=\!!ninepoint,
- \s!script=\!!sevenpoint,
- \s!scriptscript=\!!fivepoint,
- \c!x=\!!sevenpoint,
- \c!xx=\!!fivepoint,
- \c!big=\!!elevenpoint,
- \c!small=\!!sevenpoint]
-
-\definebodyfontenvironment
- [\!!eightpoint]
- [ \s!text=\!!eightpoint,
- \s!script=\!!sixpoint,
- \s!scriptscript=\!!fivepoint,
- \c!x=\!!sixpoint,
- \c!xx=\!!fivepoint,
- \c!big=\!!tenpoint,
- \c!small=\!!sixpoint]
-
-\definebodyfontenvironment
- [\!!sevenpoint]
- [ \s!text=\!!sevenpoint,
- \s!script=\!!sixpoint,
- \s!scriptscript=\!!fivepoint,
- \c!x=\!!sixpoint,
- \c!xx=\!!fivepoint,
- \c!big=\!!ninepoint,
- \c!small=\!!fivepoint]
-
-\definebodyfontenvironment
- [\!!sixpoint]
- [ \s!text=\!!sixpoint,
- \s!script=\!!fivepoint,
- \s!scriptscript=\!!fivepoint,
- \c!x=\!!fivepoint,
- \c!xx=\!!fivepoint,
- \c!big=\!!eightpoint,
- \c!small=\!!fivepoint]
-
-\definebodyfontenvironment
- [\!!fivepoint]
- [ \s!text=\!!fivepoint,
- \s!script=\!!fivepoint,
- \s!scriptscript=\!!fivepoint,
- \c!x=\!!fivepoint,
- \c!xx=\!!fivepoint,
- \c!big=\!!sevenpoint,
- \c!small=\!!fivepoint]
-
-\definebodyfontenvironment
- [\!!fourpoint]
- [ \s!text=\!!fourpoint,
- \s!script=\!!fourpoint,
- \s!scriptscript=\!!fourpoint,
- \c!x=\!!fourpoint,
- \c!xx=\!!fourpoint,
- \c!big=\!!sixpoint,
- \c!small=\!!fourpoint]
-
-\definebodyfontswitch [fourteenpointfour] [\!!fourteenpointfour]
-\definebodyfontswitch [twelvepoint] [\!!twelvepoint]
-\definebodyfontswitch [elevenpoint] [\!!elevenpoint]
-\definebodyfontswitch [tenpoint] [\!!tenpoint]
-\definebodyfontswitch [ninepoint] [\!!ninepoint]
-\definebodyfontswitch [eightpoint] [\!!eightpoint]
-\definebodyfontswitch [sevenpoint] [\!!sevenpoint]
-\definebodyfontswitch [sixpoint] [\!!sixpoint]
-\definebodyfontswitch [fivepoint] [\!!fivepoint]
-\definebodyfontswitch [fourpoint] [\!!fourpoint]
-
-\definebodyfontswitch [xii] [\!!twelvepoint]
-\definebodyfontswitch [xi] [\!!elevenpoint]
-\definebodyfontswitch [x] [\!!tenpoint]
-\definebodyfontswitch [ix] [\!!ninepoint]
-\definebodyfontswitch [viii] [\!!eightpoint]
-\definebodyfontswitch [vii] [\!!sevenpoint]
-\definebodyfontswitch [vi] [\!!sixpoint]
-
-%D So far.
-
-\definefontstyle [\c!mm] [\c!mm]
-\definefontstyle [\c!rm,\v!roman,\v!serif,\v!regular] [\c!rm]
-\definefontstyle [\c!ss,\v!sansserif,\v!sans,\v!support] [\c!ss]
-\definefontstyle [\c!tt,\v!teletype,\v!type,\v!mono] [\c!tt]
-\definefontstyle [\c!hw,\v!handwritten] [\c!hw]
-\definefontstyle [\c!cg,\v!calligraphic] [\c!cg]
-
-\definefontsize[\c!a] \definefontsize[\c!b]
-\definefontsize[\c!c] \definefontsize[\c!d]
-
-\definealternativestyle [\v!mediaeval] [\os] []
-\definealternativestyle [\v!normal] [\tf] []
-\definealternativestyle [\v!bold] [\bf] []
-\definealternativestyle [\v!type] [\tt] []
-\definealternativestyle [\v!mono] [\tt] []
-\definealternativestyle [\v!slanted] [\sl] []
-\definealternativestyle [\v!italic] [\it] []
-\definealternativestyle [\v!boldslanted,\v!slantedbold] [\bs] []
-\definealternativestyle [\v!bolditalic,\v!italicbold] [\bi] []
-\definealternativestyle [\v!small,\v!smallnormal] [\tfx] []
-\definealternativestyle [\v!smallbold] [\bfx] []
-\definealternativestyle [\v!smalltype] [\ttx] []
-\definealternativestyle [\v!smallslanted] [\slx] []
-\definealternativestyle [\v!smallboldslanted,\v!smallslantedbold] [\bsx] []
-\definealternativestyle [\v!smallbolditalic,\v!smallitalicbold] [\bix] []
-
-\definealternativestyle [\v!sans,\v!sansserif] [\ss] []
-\definealternativestyle [\v!sansbold] [\ss\bf] []
-
-%D Slow but handy:
-
-\definealternativestyle [\v!smallbodyfont] [\setsmallbodyfont] []
-\definealternativestyle [\v!bigbodyfont] [\setbigbodyfont] []
-
-%D We treat {\sc Small Caps} and \cap {Pseudo Caps} a bit
-%D different. We also provide an \WORD {uppercase} style.
-
-\definealternativestyle [\v!cap,\v!capital] [\smallcapped] [\smallcapped]
-\definealternativestyle [\v!smallcaps] [\sc] [\sc]
-\definealternativestyle [\v!WORD] [\WORD] [\WORD]
-
-%D \macros
-%D {...math}
-%D
-%D New or old?
-
-% tzt proper \define...
-%
-% watch out: \synchronizesymb resets the family so we need a second
-% \mf (or maybe \mr): messy and to be sorted out
-
-\def\tfmath{\tf\mf\synchronizesymb\mf}
-\def\bfmath{\bf\mf\synchronizesymb\mf}
-\def\slmath{\sl\mf\synchronizesymb\mf}
-\def\itmath{\it\mf\synchronizesymb\mf}
-\def\bsmath{\bs\mf\synchronizesymb\mf}
-\def\bimath{\bi\mf\synchronizesymb\mf}
-\def\scmath{\sc\mf\synchronizesymb\mf}
-\def\nnmath{\nn\mf\synchronizesymb\mf}
-
-\def\textmath {\synchronizesymb}
-
-%D \macros
-%D {fontstylesuffix}
-%D
-%D The next macro is used to map non latin fontnames on
-%D fonts. See \type {font-uni} for an example of its use.
-
-%\def\fontstylesuffix%
-% {\ifnum\fam=\tffam \s!Regular \else
-% \ifnum\fam=\bffam \s!Bold \else
-% \ifnum\fam=\slfam \s!Slanted \else
-% \ifnum\fam=\itfam \s!Italic \else
-% \ifnum\fam=\bsfam \s!BoldSlanted \else
-% \ifnum\fam=\bifam \s!BoldItalic \else
-% \s!Regular \fi\fi\fi\fi\fi\fi}%
-
-\def\fontstylesuffix% why the \s!Regular ? see \getglyph
- {\ifx\fontalternative\c!tf \s!Regular \else
- \ifx\fontalternative\c!bf \s!Bold \else
- \ifx\fontalternative\c!sl \s!Slanted \else
- \ifx\fontalternative\c!it \s!Italic \else
- \ifx\fontalternative\c!bs \s!BoldSlanted \else
- \ifx\fontalternative\c!bi \s!BoldItalic \else
- \ifx\fontalternative\c!sc \s!Caps \else
- \s!Regular \fi\fi\fi\fi\fi\fi\fi}%
-
-%D We still have to take care of \type{\xi}, so:
-
-\def\xi{\ifmmode\normalxi\else\elevenpoint\fi}
-
-%D \macros
-%D {definefontvariant,fontvariant,variant}
-%D
-%D A slightly adapted version of Adam Lindsays variant patches:
-%D
-%D \starttyping
-%D \usetypescriptfile[type-psc] \loadmapfile[texnansi-public-fpl]
-%D \usetypescript[palatino][texnansi] \setupbodyfont[palatino]
-%D
-%D \definefontvariant [Serif][osf] [OsF]
-%D
-%D \startlines
-%D {\sc abcdefgHIJKlmnop}
-%D 123{\Var[osf]456}789
-%D {\Var[osf] 123{\Var[reset]456}789}
-%D {\it 123{\Var[osf]456}789
-%D {\Var[osf]123{\Var[reset]456}789}}
-%D {\tfb\bf 123{\Var[osf]456}789
-%D {\Var[osf] 123{\Var[reset]456}789}}
-%D {\sc 123{\Var[osf]456}789
-%D {\Var[osf] 123{\Var[reset]456}789}}
-%D \stoplines
-%D \stoptyping
-
-\def\definefontvariant
- {\dotripleargument\dodefinefontvariant}
-
-\def\dodefinefontvariant[#1][#2][#3]%
- {\setvalue{\??fv#1#2}{#3}}
-
-\def\fontvariant#1#2{\executeifdefined{\??fv#1#2}\empty}
-
-\def\dosetscaledfont
- {\checkrelativefontsize\fontstyle
- \scaledfont\currentfontscale\bodyfontsize
- \scaledfont\relativefontsize\scaledfont}
-
-\unexpanded\def\variant[#1]% slow
- {\dosetscaledfont
- \expanded{\definedfont
- [\truefontname{\fontstringA\fontstylesuffix\fontvariant\fontstringA{#1}}
- at \scaledfont]}%
- \ignoreimplicitspaces}
-
-\ifx\Var\undefined \let\Var\variant \fi
-
-%D By default we load the Computer Modern Roman fonts (but
-%D not yet at this moment) and activate the 12pt roman
-%D bodyfont. Sans serif and teletype are also available and
-%D can be called for by \type{\ss} and \type{\tt}.
-
-% \setupbodyfont [unk, rm]
-
-%D Also needed is:
-
-\definefont[tinyfont][Mono at 1ex]
-
-%D \macros
-%D {doiffontpresentelse}
-%D
-%D Some unused left||overs:
-%D
-%D \starttyping
-%D \def\doiffontpresentelse#1#2#3%
-%D {\bgroup
-%D \batchmode\font\dummy=\truefontname{#1}\errorstopmode
-%D \edef\lastfontname{\fontname\dummy}%
-%D \ifx\lastfontname\nullfontname\egroup#3\else\egroup#2\fi}
-%D
-%D \def\abortiffontnotfound#1%
-%D {\doiffontpresentelse{#1}{}{\showmessage\m!fonts{10}{\truefontname{#1}}\endinput}}
-%D \stoptyping
-%D
-%D We now provide (slow, but sometimes handy):
-%D
-%D \starttyping
-%D \doiffontpresentelse{texnansi-lmr10}{YES}{NO}
-%D \doiffontpresentelse{adam-lindsay-modern-serif}{YES}{NO}
-%D \stoptyping
-
-\def\doiffontpresentelse#1%
- {\bgroup
- \scratchcounter\interactionmode
- \batchmode
- \font\dummy=\truefontname{#1}\relax
- \interactionmode\scratchcounter
- \edef\lastfontname{\fontname\dummy}%
- \ifx\lastfontname\nullfontname
- \egroup\expandafter\secondoftwoarguments
- \else
- \egroup\expandafter\firstoftwoarguments
- \fi}
-
-%D New commands (not yet interfaced):
-
-\def\style[#1]% for inline usage, like \color
- {\groupedcommand{\ifcsname#1\endcsname\csname#1\endcsname\else\definedfont[#1]\fi}{}}
-
-\def\startstyle[#1]%
- {\begingroup
- \ifcsname#1\endcsname\csname#1\endcsname\else\definedfont[#1]\fi}
-
-\def\stopstyle
- {\endgroup}
-
-%D Still experimental (might even go away).
-
-% \definestylecollection[mine]
-
-% \definestyleinstance[mine][default][sorry]
-% \definestyleinstance[mine][tt][bs][ttbs:\rm\sl]
-% \definestyleinstance[mine][tt][bf][ttbf:\rm\sl]
-% \definestyleinstance[mine][bf][\sl]
-% \definestyleinstance[mine][sl][\tt]
-
-% {\bf test \mine test \sl test \mine test \bs oeps \mine oeps {\tt test \mine \bf test}}
-
-\definesystemvariable{sx}
-
-\def\definestylecollection
- {\dosingleargument\dodefinestylecollection}
-
-\def\dodefinestylecollection[#1]%
- {\iffirstargument
- \unexpanded\setvalue{#1}{\styleinstance[#1]}%
- \def\docommand##1%
- {\def\dodocommand####1{\letbeundefined{\??sx##1:####1:\commalistelement}}%
- \processcommacommand[\fontalternativelist,\s!default]\dodocommand}%
- \processcommacommand[\fontstylelist,\s!default]\docommand
- \fi}
-
-\def\definestyleinstance
- {\doquadrupleargument\dodefinestyleinstance}
-
-\def\dodefinestyleinstance[#1][#2][#3][#4]% [name] [rm|ss|tt|..] [sl|bf|...] [whatever]
- {\iffirstargument
- \doifundefined{#1}{\definestylecollection[#1]}%
- \fi
- \iffourthargument
- \setvalue{\??sx#1:#2:#3}{#4}%
- \else\ifthirdargument
- \setvalue{\??sx#1::#2}{#3}%
- \else\ifsecondargument
- \letvalue{\??sx#1::#2}\empty
- \fi\fi\fi}
-
-\unexpanded\def\styleinstance[#1]% will be faster
- {%\begingroup\expanded{\infofont[#1:\fontstyle:\fontalternative]}\endgroup
- \executeifdefined{\??sx#1:\fontstyle:\fontalternative}%
- {\executeifdefined{\??sx#1:\fontstyle:\s!default}%
- {\executeifdefined{\??sx#1::\fontalternative}
- {\getvalue {\??sx#1::\s!default}}}}}
-
-% \unexpanded\def\styleinstance[#1]%
-% {\csname\??sx#1%
-% \ifcsname:\fontstyle:\fontalternative\endcsname
-% :\fontstyle:\fontalternative
-% \else\ifcsname:\fontstyle:\s!default\endcsname
-% :\fontstyle:\s!default
-% \else\ifcsname::\fontalternative\endcsname
-% ::\fontalternative
-% \else\ifcsname::\s!default\endcsname
-% ::\s!default
-% \else
-% % nothing, \relax
-% \fi\fi\fi\fi
-% \endcsname}
-
-%D \Compatibility with \MKIV:
-
-\def\somefontsize{\scaledfont}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/font-jap.mkii b/Master/texmf-dist/tex/context/base/mkii/font-jap.mkii
deleted file mode 100644
index b8aa3d8368d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/font-jap.mkii
+++ /dev/null
@@ -1,83 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\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/mkii/font-run.mkii b/Master/texmf-dist/tex/context/base/mkii/font-run.mkii
deleted file mode 100644
index 04fcd576a60..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/font-run.mkii
+++ /dev/null
@@ -1,326 +0,0 @@
-%D \module
-%D [ file=font-run,
-%D version=1998.09.11, % (second)
-%D version=2001.02.20, % (third)
-%D title=\CONTEXT\ Font Macros,
-%D subtitle=Runtime Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D [This code is hooked into the core macros and saves some
-%D format space.]
-
-\unprotect
-
-\gdef\@@onlyenglish#1%
- {\blank{\tttf \type {#1} is only available in the english interface}\blank}
-
-\gdef\dosetshowfonttitle#1%
- {\tabskip\zeropoint
- \parindent\zeropoint
- \setlocalhsize
- \doifelsenothing{#1}
- {\def\title{[\the\bodyfontsize]}}
- {\switchtobodyfont[#1]\def\title{[#1]}}
- \doifsomething\fontclass
- {\doifnot{[\fontclass]}\title
- {\edef\title{[\fontclass]\space\title}}}}
-
-\gdef\showbodyfont
- {\dosingleempty\doshowbodyfont}
-
-\gdef\doshowbodyfont[#1]%
- {\ifinsidefloat\else\startbaselinecorrection\fi
- \vbox
- {\dosetshowfonttitle{#1}%
- \def\bigstrut##1##2%
- {\hbox{\vrule
- \!!height##1\strutht
- \!!depth ##2\strutdp
- \!!width \zeropoint}}
- \def\next##1##2##3%
- {&&##1&&##2\tf##3&&##2\sc##3%
- &&##2\sl##3&&##2\it##3&&##2\bf##3&&##2\bs##3&&##2\bi##3%
- &&##2\tfx##3&&##2\tfxx##3%
- &&##2\tfa##3&&##2\tfb##3&&##2\tfc##3&&##2\tfd##3&\cr}%
- \halign to \localhsize
- {\bigstrut{1.5}{2}##&\vrule##
- \tabskip=\!!zeropoint \!!plus 1fill
- &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
- &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
- &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
- &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
- &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
- &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
- &\hfil##\hfil&\vrule##&\hfil##\hfil&##\vrule
- \tabskip=\!!zeropoint\cr
- \noalign{\hrule}
- &\multispan{29}{\vrule\hfil\tttf\strut\title\hfil
- \llap{\string\mr\hbox to 1em{\hss:\hss}$\mr \languageparameter\c!text$\quad}\vrule}\cr
- \noalign{\hrule}\next{}{\tt\string}{}
- \noalign{\hrule}\next{\tt\string\rm}\rm{\languageparameter\c!text}
- \noalign{\hrule}\next{\tt\string\ss}\ss{\languageparameter\c!text}
- \noalign{\hrule}\next{\tt\string\tt}\tt{\languageparameter\c!text}
- \noalign{\hrule}}}
- \ifinsidefloat\else\stopbaselinecorrection\fi}
-
-\gdef\showbodyfontenvironment
- {\dosingleempty\doshowbodyfontenvironment}
-
-\gdef\doshowbodyfontenvironment[#1]%
- {\ifinsidefloat\else\startbaselinecorrection\fi
- \vbox
- {\dosetshowfonttitle{#1}%
- \def\next##1%
- {&&\getvalue{\bodyfontvariable{##1\s!text}}%
- &&\getvalue{\bodyfontvariable{##1\s!script}}%
- &&\getvalue{\bodyfontvariable{##1\s!scriptscript}}%
- &&\getvalue{\bodyfontvariable{##1\c!x}}%
- &&\getvalue{\bodyfontvariable{##1\c!xx}}%
- &&\getvalue{\bodyfontvariable{##1\interfaced\v!small}}%
- &&\getvalue{\bodyfontvariable{##1\interfaced\v!big}}%
- &&\edef\next{\getvalue{\bodyfontvariable{##1\c!interlinespace}}}\ifx\next\empty not set\else\next\fi&\cr
- \noalign{\hrule}}
- \halign to \localhsize
- {##&\vrule##\strut
- \tabskip=\!!zeropoint \!!plus 1fill
- &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
- &\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##&\hfil##\hfil&\vrule##
- &\hfil##\hfil&\vrule##&\hfil##\hfil&##\vrule
- \tabskip\zeropoint\cr
- \noalign{\hrule}
- &\multispan{17}{\vrule\hfil\tttf\strut\title\hfil}\vrule\cr
- \noalign{\hrule}
- &&\tttf\tx\s!text&&\tttf\tx\s!script&&\tttf\tx\s!scriptscript
- &&\tttf\tx\c!x&&\tttf\tx\c!xx&&\tttf\tx\v!small&&\tttf\tx\v!big
- &&\tttf\tx\c!interlinespace&\cr
- \noalign{\hrule}
- \@EA\globalprocesscommalist\@EA[\bodyfontenvironmentlist]\next}}
- \ifinsidefloat\else\stopbaselinecorrection\fi}
-
-\gdef\showfont
- {\dodoubleempty\doshowfont}
-
-\gdef\doshowfont[#1][#2]%
- {\bgroup
- \boxrulewidth=.1pt
- \setupcolors[\c!state=\v!local]%
- \iffirstargument
- \definefont[\s!dummy][#1]\dummy
- \else\ifdim2.5em>.05\hsize \tx
- \ifdim2.5em>.05\hsize \txx
- \fi\fi\fi
- \ifinsidefloat\else\startbaselinecorrection\fi
- \vbox\bgroup
- \forgetall
- \startoverlay
- {\vbox
- {\tf \setstrut \dummy
- \localcolortrue \offinterlineskip
- \dostepwiserecurse{0}{15}{1}
- {\let\row\recurselevel
- \hbox
- {\red
- \dostepwiserecurse{0}{15}{1}
- {\let\col\recurselevel
- \@EA\scratchcounter\normaldblquote\hexnumber\row\hexnumber\col\relax
- \edef\rowcol{\the\scratchcounter}%
- \iffontchar\font\scratchcounter
- \setbox\scratchbox\ruledhbox{\black\char\scratchcounter}%
- \ifdim\wd\scratchbox>\zeropoint
- \donetrue \else \donefalse
- \fi
- \else
- \setbox\scratchbox\hbox{\gray\vrule\!!width1ex\!!height.5ex\!!depth.5ex}%
- \fi
- \startoverlay
- {\tf\vbox to 2.5em
- {\vss
- \hbox to 2.5em
- {\dummy\ifdim\interwordspace=\zeropoint
- \setbox\scratchbox\hbox
- {\raise.5\dp\scratchbox\hbox
- {\lower.5\ht\scratchbox\copy\scratchbox}}%
- \ht\scratchbox\zeropoint
- \dp\scratchbox\zeropoint
- \else
- \ht\scratchbox\strutht
- \dp\scratchbox\strutdp
- \strut
- \fi
- \hss\copy\scratchbox\hss}
- \vss}}
- {\tf\vbox to 2.3em
- {\ifdone
- \hsize2.4em
- \blue
- \edef\theshowfontspecs
- {\ifnum\hyphenchar\font=\rowcol hyph\else
- \ifnum\skewchar \font=\rowcol skew\fi\fi}%
- \tinyfont % after \edef, else wrong font analyzed
- \doifnot\v!unknown{#2}{{\red\theshowfontspecs}}\hfill\number\rowcol
- \vfill
- \octnumber\rowcol\hfill\lchexnumbers\rowcol
- \par
- \fi}}
- \stopoverlay}}}
- \par}}
- {\tf\basegrid[\c!nx=16,\c!ny=16,\c!dx=2.5,\c!dy=2.5,\c!unit=em]}
- \stopoverlay
- \nointerlineskip
- \vskip2pt
- % the \noexpand before \blank is needed for non etex
- \edef\ascii{name: {\noexpand\black\fontname\font}}
- \def\do##1##2{\ifx##1\undefined\else\ifx##1\empty\else##2\fi\fi}%
- \doifelse\v!unknown{#2}
- {\edef\theshowfontspecs
- {name: {\noexpand\black\fontname\font}}}
- {\edef\theshowfontspecs
- {name: {\noexpand\black\fontname\font}\noexpand\quad
- \do\currentencoding{encoding: {\noexpand\black\currentencoding\noexpand\quad}}%
- \do\currentmapping {mapping: {\noexpand\black\currentmapping \noexpand\quad}}%
- \do\fonthandling {handling: {\noexpand\black\fonthandling }}}}%
- \tf % also sets em
- \hbox to 40em{\blue\hfill\tinyfont\setstrut\strut\theshowfontspecs}
- \egroup
- \ifinsidefloat\else\stopbaselinecorrection\fi
- \egroup}
-
-\gdef\showfontstyle
- {\dotripleempty\doshowfontstyle}
-
-\gdef\doshowfontstyle[#1][#2][#3]%
- {\ifthirdargument
- \bgroup
- \raggedright
- \switchtobodyfont[#1]
- \def\dodocommand##1##2%
- {\starttextrule{\tttf #1 ##1 ##2}
- \nobreak \getvalue{##2}%
- \dorecurse{255}
- {\iffontchar\font\recurselevel\relax
- \char\recurselevel\relax\space
- \fi}
- \par \nobreak
- \stoptextrule}
- \def\docommand##1%
- {\getvalue{##1}\processcommacommand[#3]{\dodocommand{##1}}}
- \processcommalist[#2]\docommand
- \egroup
- \else\ifsecondargument
- \showfontstyle[#1][#2][\fontalternativelist]% math is gone
- \else
- \showfontstyle[#1][\c!rm]\showfontstyle[#1][\c!ss]
- \showfontstyle[#1][\c!tt]\showfontstyle[#1][\c!mm]
- \fi\fi}
-
-\gdef\showligature#1%
- {\hbox{\type{#1}\enspace\red\ruledhbox{\black#1}}}
-
-\gdef\showligatures[#1]%
- {\ifx\starttabulate\undefined
- \@@onlyenglish\showligatures
- \else
- \bgroup
- \setupcolors[\c!state=\v!local]%
- \def\show##1{\hbox{\red\ruledhbox{\black##1}}}%
- \definefont[\s!dummy][#1]\dummy
- \starttabulate[|*{9}{c|}]
- \NC\type{ff}\NC\type{fi}\NC\type{fl}\NC\type{ffi}\NC\type{ffl}\NC
- \type{``}\NC\type{''}\NC\type{--}\NC\type{---}\NC\NR
- \NC\show{ff}\NC\show{fi}\NC\show{fl}\NC\show{ffi}\NC\show{ffl}\NC
- \show{``}\NC\show{''}\NC\show{--}\NC\show{---}\NC\NR
- \stoptabulate
- \egroup
- \fi}
-
-\gdef\showfontstrip
- {\dosingleempty\doshowfontstrip}
-
-\gdef\doshowfontstrip[#1]%
- {\ifx\starttabulate\undefined
- \@@onlyenglish\showfontstrip
- \else
- \bgroup
- \def\dofontstripa##1##2%
- {\tttf\string##1}
- \def\dofontstripb##1##2%
- {\ruledhbox{\switchtobodyfont[#1]##1{##2}}}
- \def\dofontstripc##1##2%
- {\setbox\scratchbox\hbox{\switchtobodyfont[#1]##1{##2}}%
- \tt\tfx\the\ht\scratchbox}%
- \def\dofontstripd##1##2%
- {\setbox\scratchbox\hbox{\switchtobodyfont[#1]##1{##2}}%
- \tt\tfx\the\wd\scratchbox}%
- \def\fontstrip##1##2##3%
- {\NC##2\rm{##3}\NC
- ##2\ss{##3}\NC
- ##2\tt{##3}\NC
- ##2\mathematics{##3}\NC
- \tttf##1\NR}
- \starttabulate[|c|c|c|c|c|]
- \fontstrip\relax\dofontstripa\empty
- \TB
- \fontstrip\relax\dofontstripb{xxxx}
- \fontstrip\relax\dofontstripb{12345}
- \fontstrip\relax\dofontstripb{(Agw)}
- \TB
- \fontstrip{(x height)}\dofontstripc{x}
- \fontstrip{(m width)}\dofontstripd{m}
- \stoptabulate
- \egroup
- \fi}
-
-\ifx\databox\undefined \newbox\databox \fi
-
-\gdef\testminimalbaseline#1%
- {\setbox\databox\ruledhbox{#1}%
- \scratchdimen\ht\databox
- \advance\scratchdimen\dp\databox
- \scratchtoks{#1}%
- \expanded
- {\NC \ruledhbox{\the\scratchtoks}
- \noexpand \NC ->
- \noexpand \NC \the\scratchdimen
- \noexpand \NC =
- \noexpand \NC \the\ht\databox
- \noexpand \NC +
- \noexpand \NC \the\dp\databox
- \noexpand \NC \ifdim\scratchdimen<\baselineskip <
- \else\ifdim\scratchdimen=\baselineskip =
- \else > \fi\fi
- \noexpand \NC \the\baselineskip
- \noexpand \NC (\ifdim\scratchdimen>\baselineskip not \fi ok)
- \noexpand \NC \noexpand \NR }}
-
-\gdef\showminimalbaseline
- {\ifx\starttabulate\undefined
- \@@onlyenglish\showminimalbaseline
- \else
- \starttabulate[||T|T|T|T|T|T|T|T|T|]
- \testminimalbaseline{\hbox to 1em{\hss\showstruts\strut\hss}}%
- \testminimalbaseline{(/)}%
- \testminimalbaseline{$\frac{1}{2}x^2_3$}
- \stoptabulate
- \fi}
-
-\gdef\showkerning#1%
- {\bgroup
- \let\MPfshowcommand\ruledhbox
- \setMPtext\s!dummy{#1}%
- \startMPcode draw textext(\MPstring\s!dummy);\stopMPcode
- \egroup}
-
-\gdef\showcharratio
- {\dowithnextboxcontent
- {\switchtobodyfont[10pt]}%
- {(\expanded{\withoutpt\the\nextboxht},%
- \expanded{\withoutpt\the\nextboxdp})}%
- \hbox}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/font-uni.mkii b/Master/texmf-dist/tex/context/base/mkii/font-uni.mkii
deleted file mode 100644
index 77eb680e20f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/font-uni.mkii
+++ /dev/null
@@ -1,444 +0,0 @@
-%D \module
-%D [ file=font-uni,
-%D version=1999.10.10,
-%D title=\CONTEXT\ Font Macros,
-%D subtitle=\UNICODE,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Font Macros / Unicode}
-
-%D In \XETEX, unicode support is straightforward, so we
-%D simply output a \type {\char} with a 16||bit number.
-
-\ifnum\texengine=\xetexengine
- \unexpanded\def\uchar#1#2{\char\numexpr#2+#1*\pluscclvi\relax}
- \let\uc\uchar
- \expandafter \endinput
-\fi
-
-%D Now comes the more traditional 8 bit \TEX\ hackery.
-
-%D I wrote this module when Wang Lei asked me how to use
-%D Chinese in \CONTEXT. From the samples he sent me, I deduced
-%D that some mixture of one and two byte encoding was used,
-%D which he confirmed. Since \TEX\ normally does not use the
-%D characters $>127$, so as long as the two byte characters
-%D have a first character with code $>127$, we can use active
-%D characters to handle them. In an optimistic mood, I called
-%D this module the \UNICODE\ font module. In the module that
-%D handles Chinese, we will see that some more interpretation
-%D is involved, which is why the macros handling those
-%D characters look ahead.
-
-\unprotect
-
-%D \macros
-%D {handleunicodeflowglyph, uchar,
-%D handleunicodeglyph, insertunicodeglyph,
-%D unicodeposition, unicodeone, unicodetwo}
-%D
-%D For the moment \UNICODE\ support is rather primitive but
-%D nevertheless effective. The reference to \UNICODE\ is not
-%D entirely correct, since in many cases one will use \quote
-%D {older} mappings, but in principle, \UNICODE\ can be
-%D supported.
-%D
-%D We expect each character to come as two eight bit
-%D characters. Those doubles are handled by making all
-%D characters in the range $>127$ active, so that they can
-%D pick up the next one, and act upon both their values.
-%D Internally only numbers are used. A first implementation
-%D simply internally prefixed the second part of the \UNICODE\
-%D pair with \type {\string} or \type {\char}, but this was
-%D not that handy when it came to testing those values.
-%D Because in principle we are dealing with an encoding, the
-%D making active is handled in \type {enco-uni}.
-%D
-%D There are two commands to handle unicode characters:
-%D
-%D \starttyping
-%D \handleunicodeflowglyph{number}{character}
-%D \uchar{number}{number}
-%D \stoptyping
-%D
-%D The first one can be assigned to an active character, the
-%D second one can be used to directly access a glyph. Both
-%D command call \type {\handleunicodeglyph} that in turn
-%D calls \type {\insertunicodeglyph}. Both can be overruled
-%D in specialized modules. The low level command \type
-%D {\unicodeglyph} can best be left untouched, which is not
-%D so much a problem because there is a hook into this macro:
-%D \type {\unicodecharcommand}.
-%D
-%D In most cases one will redefine \type {\handleunicodeglyph}
-%D in such a way that it identifies special situations first,
-%D takes some actions next, calls \type {\insertunicodeglyph},
-%D if needed with \type {\unicodecharcommand} changed, and
-%D finally does some finishing:
-%D
-%D \starttyping
-%D \def\handleunicodeglyph
-%D {take actions based on \unicodeone-two-position cq. \nextutoken
-%D redefine \unicodecharcommand if needed
-%D expand \insertunicodeglyph
-%D take some final actions}
-%D \stoptyping
-
-\newcount\unicodeposition
-
-%D The multistep approach is needed to pick up the second
-%D token, since this token can have any value and any
-%D catcode.
-
-% the \relax trick prevents eating up the space (needed for
-% korean
-
-\def\handleunicodeflowglyph#1#2%
- {\begingroup
- \edef\unicodeone{#1}%
- \@EA\afterassignment\@EA\dohandleunicodeflowglyph % two redundant ea's
- \@EA\chardef\@EA\nexttoken\@EA`\string#2\relax}
-
-\def\dohandleunicodeflowglyph\relax
- {\futurelet\nextutoken\dodohandleunicodeflowglyph}
-
-\def\dodohandleunicodeflowglyph % todo tex (or maybe no longer)
- {\edef\unicodetwo{\the\nexttoken}%
- \unicodeposition\numexpr\unicodeone*256+\unicodetwo\relax
- \handleunicodeglyph
- \endgroup}
-
-\unexpanded\def\uchar#1#2% use as standalone glyph
- {\begingroup
- \edef\unicodeone{#1}%
- \edef\unicodetwo{#2}%
- \unicodeposition\numexpr\unicodeone*256+\unicodetwo\relax
- \handleunicodeglyph
- \endgroup}
-
-\let\nextutoken\relax
-
-\unexpanded\def\lookaheaduchar#1#2%
- {\def\dolookaheaduchar{\uchar{#1}{#2}\let\nextutoken\relax}%
- \futurelet\nextutoken\dolookaheaduchar}
-
-\def\dohandleucflowglyph
- {\unicodeposition\numexpr\unicodeone*256+\unicodetwo\relax
- \handleunicodeglyph
- \endgroup}
-
-\unexpanded\def\uc#1#2% used in tricky situations
- {\begingroup
- \edef\unicodeone{#1}%
- \edef\unicodetwo{#2}%
- \futurelet\nextutoken\dohandleucflowglyph}
-
-\def\insertunicodeglyph
- {\unicodeglyph\unicodeone\unicodetwo}
-
-\let\handleunicodeglyph\insertunicodeglyph
-
-%D One can use the \type {\unicodeposition} in the macros
-%D that handle pre and post material.
-
-%D \macros
-%D {unicodestyle, unicodecharcommand}
-%D
-%D Each character pair will become one glyph. Because \TEX\
-%D cannot handle fonts with more that 256 characters, we use
-%D \TFM\ files for each range. The first character of the pair
-%D is appended to the name of a font, and the second is used to
-%D access the glyph in that font. This means that a particular
-%D font is split up in subfonts with names in the range:
-%D
-%D \starttyping
-%D <filename>80 ... <filename>ff
-%D \stoptyping
-%D
-%D The \type {<filename>} as well as the composed name are
-%D mapped ones. The next macros take care of this mapping.
-%D Let us assume that the next mapping has taken place,
-%D
-%D \starttyping
-%D \definefontsynonym [UnicodeRegular] [gbsong]
-%D \stoptyping
-%D
-%D Let us also assume that we are dealing with the range \type
-%D {b1}. Given that a font name results from:
-%D
-%D \starttyping
-%D \truefontname{\truefontname{UnicodeRegular}b1}
-%D \stoptyping
-%D
-%D we get \type {gbsongb1}. The outer \type {\truefontname}
-%D takes care of additional mapping, so when we say:
-%D
-%D \starttyping
-%D \definefontsynonym [gbsongb1] [gbsong-b1]
-%D \stoptyping
-%D
-%D the filename used will be \type {gbsong-b1}. From the next
-%D definition it will be clear that other fontshapes are also
-%D supported. The prefix \type {Unicode} is mapped!
-%D
-%D The command \type {\unicodecharcommand} can be used to
-%D handle special cases. At that moment \type {1em} is known.
-
-\def\unicodestyle
- {\truefontname\s!Unicode\fontstylesuffix}
-
-\let\unicodecharcommand\firstofoneargument
-
-\unexpanded\def\unicodeglyph#1#2% watch the double mapping
- {\begingroup
- \getvalue{@@\currentucharmapping\strippedcsname\uchar}{#1}{#2}% map to a to hex font range
- \bodyfontsize\unicodescale\bodyfontsize
- % 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}
-%D
-%D A (plane,char) pair can be remapped using a uchar mapping
-%D function. The default mapping is to convert the plane to a
-%D lowercase hexadecimal number, and leave the number
-%D untouched. The current remapping is kept in a macro.
-
-\let\currentucharmapping\s!default
-
-\def\defineucharmapping#1%
- {\setvalue{@@#1\strippedcsname\uchar}}
-
-\defineucharmapping{\s!default}#1#2%
- {\edef\unicodeone{\lchexnumbers{#1}}\edef\unicodetwo{#2}}
-
-%D An example of a remapping is the following:
-%D
-%D \starttyping
-%D \defineucharmapping{GBK}#1#2%
-%D {\unicodeposition=#1
-%D \advance\unicodeposition -129
-%D \multiply\unicodeposition 190
-%D \advance\unicodeposition #2
-%D \advance\unicodeposition-\ifnum#2>127 65\else64\fi
-%D \dorepositionunicode}
-%D \stoptyping
-%D
-%D This maps the GBK vector onto a compact GBK one. The
-%D auxiliary macro is defined here as a goody.
-
-\def\dorepositionunicode
- {\dosetdivision\unicodeposition{256}\scratchcounter
- \advance\scratchcounter \plusone
- \edef\unicodeone{\ifnum\scratchcounter<10 0\fi\the\scratchcounter}%
- \dosetmodulo\unicodeposition{256}\scratchcounter
- \edef\unicodetwo{\the\scratchcounter}}
-
-%D \macros
-%D {setunicodestrut, setunicodescale, nextutoken,
-%D handleunicodeglyph, insertunicodeglyph}
-%D
-%D A careful analysis of the previous macros, learns that the
-%D process of mapping comes down to:
-%D
-%D \startitemize[packed,n]
-%D \item taking care of preceding material (and spacing)
-%D \item defining the font at \type {\currentfontscale} $\times$
-%D \type {\unicodescale} $\times$ \type {\bodyfontsize}
-%D \item inserting a \type {\unicodestrut}
-%D \item inserting the character (glyph)
-%D \item executing some actions afterwards
-%D \stopitemize
-%D
-%D The actions before and after placing the glyph, is up to
-%D the user supplied handler. This handler (\type
-%D {\handleunicodeglpyh}) must, at a certain moment, insert
-%D the glyph using \type {\insertunicodeglyph}
-
-\def\setunicodescale#1%
- {\def\unicodescale{#1}}
-
-\def\dosetunicodestrut#1#2% height depth
- {\def\unicodestrut
- {\vrule
- \!!width \zeropoint
- \!!height#1\strutht
- \!!depth #2\strutdp
- \relax}}
-
-\def\setunicodestrut#1#2% height depth
- {\ifdim#1\strutht>\zeropoint
- \dosetunicodestrut{#1}{#2}%
- \else\ifdim#1\strutdp>\zeropoint
- \dosetunicodestrut{#1}{#2}%
- \else
- \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 {\nextutoken}.
-
-%D \macros
-%D {defineunicodefont, setupunicodefont}
-%D
-%D Apart from this rather low level implementation, we also
-%D provide a more user friendly alternative. Given that one
-%D has defined:
-%D
-%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!conversion=\chinesenumber,
-%D \c!command=\handlechineseunicodeglyph]
-%D \stoptyping
-%D
-%D Together with:
-%D
-%D \starttyping
-%D \definefontsynonym [SimplifiedChineseRegular] [gbsong]
-%D \definefontsynonym [SimplifiedChineseSlanted] [gbsongsl]
-%D \stoptyping
-%D
-%D we can now switch to Simplified Chinese by saying \type
-%D {SimChi}. Some values can be changed afterwards with
-%D
-%D \starttyping
-%D \setupunicodefont[SimChi][...=...]
-%D \stoptyping
-%D
-%D Specific initializations can be assigned to \type
-%D {commands}.
-
-\def\defineunicodefont
- {\dotripleempty\dodefineunicodefont}
-
-\def\dodefineunicodefont[#1][#2][#3]%
- {\doifassignmentelse{#3}
- {\setupunicodefont[#1][#3]}
- {\doifelsenothing{#3}
- {\setupunicodefont[#1][#3]}
- {\copyparameters
- [\??uc#1][\??uc#3]
- [\c!height,\c!depth,\c!scale,\c!commands,\c!strut,
- \c!interlinespace,\c!command,\c!conversion]}}%
- \doifelsenothing{#2}
- {\setvalue{#1}{[uc font #1 undefined]}}
- {\setvalue{\??uc#1\c!file}{#2}%
- \doifundefined{\??ff#2\s!Bold}
- {\definefontsynonym[#2\s!Bold] [#2\s!Regular]%
- \definefontsynonym[#2\s!Slanted] [#2\s!Regular]%
- \definefontsynonym[#2\s!Italic] [#2\s!Regular]%
- \definefontsynonym[#2\s!BoldSlanted][#2\s!Slanted]%
- \definefontsynonym[#2\s!BoldItalic] [#2\s!Italic]}%
- \unexpanded\setvalue{#1}{\enableunicodefont{#1}}}}
-
-\def\setupunicodefont
- {\dodoubleempty\dosetupunicodefont}
-
-\def\dosetupunicodefont[#1][#2]% also predefines
- {\doifundefined{\??uc#1\c!command}
- {\copyparameters
- [\??uc#1][\??uc\s!default]
- [\c!height,\c!depth,\c!scale,\c!commands,\v!strut,
- \c!interlinespace,\c!command,\c!conversion]}%
- \getparameters[\??uc#1][#2]}
-
-\def\enableunicodefont#1%
- {\definefontsynonym[\s!Unicode][\getvalue{\??uc#1\c!file}]%
- \def\unicodescale {\getvalue{\??uc#1\c!scale}}%
- \def\unicodeheight {\getvalue{\??uc#1\c!height}}%
- \def\unicodedepth {\getvalue{\??uc#1\c!depth}}%
- \def\unicodedigits {\getvalue{\??uc#1\c!conversion}}%
- \def\handleunicodeglyph {\getvalue{\??uc#1\c!command}}%
- \doifnot\currentregime{utf}{\enableregime[unicode]}%
- % the following \relax's are realy needed
- \doifvalue{\??uc#1\c!interlinespace}\v!yes
- \setupinterlinespace\relax
- \doifelsevalue{\??uc#1\c!strut}\v!yes
- {\setunicodestrut\unicodeheight\unicodedepth}
- {\resetunicodestrut}%
- \getvalue{\??uc#1\c!commands}\relax}
-
-%D \macros
-%D {unicodedigits}
-%D
-%D For convenience we also predefine a number conversion
-%D macro:
-
-\let\unicodedigits\number
-
-%D Because we cannot be sure of the pressence of all font
-%D styles, we remap some by default.
-
-\definefontsynonym [\s!Unicode\s!Bold] [\s!Unicode\s!Regular]
-\definefontsynonym [\s!Unicode\s!Slanted] [\s!Unicode\s!Regular]
-\definefontsynonym [\s!Unicode\s!Italic] [\s!Unicode\s!Regular]
-\definefontsynonym [\s!Unicode\s!BoldSlanted] [\s!Unicode\s!Slanted]
-\definefontsynonym [\s!Unicode\s!BoldItalic] [\s!Unicode\s!Italic]
-
-\setupunicodefont
- [\s!default]
- [\c!height=1,
- \c!depth=1,
- \c!scale=1,
- \c!strut=\v!no,
- \c!interlinespace=\v!no,
- \c!command=\insertunicodeglyph,
- \c!conversion=\number]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/font-unk.mkii b/Master/texmf-dist/tex/context/base/mkii/font-unk.mkii
deleted file mode 100644
index 241369f6812..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/font-unk.mkii
+++ /dev/null
@@ -1,187 +0,0 @@
-%D \module
-%D [ file=font-unk,
-%D version=1998.09.10,
-%D title=\CONTEXT\ Font Macros,
-%D subtitle=Unknown Defaults,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module is rather important, because it enables us to
-%D define and call for not yet defined fonts in a way
-%D completely independant of real font names. First we map
-%D some meaningful names onto unknown filenames.
-
-\unprotect
-
-\definefontsynonym [Serif] [unknown]
-\definefontsynonym [SerifBold] [unknown]
-\definefontsynonym [SerifItalic] [unknown]
-\definefontsynonym [SerifSlanted] [unknown]
-\definefontsynonym [SerifBoldItalic] [unknown]
-\definefontsynonym [SerifBoldSlanted] [unknown]
-\definefontsynonym [SerifCaps] [unknown]
-
-\definefontsynonym [Sans] [unknown]
-\definefontsynonym [SansBold] [unknown]
-\definefontsynonym [SansItalic] [unknown]
-\definefontsynonym [SansSlanted] [unknown]
-\definefontsynonym [SansBoldItalic] [unknown]
-\definefontsynonym [SansBoldSlanted] [unknown]
-\definefontsynonym [SansCaps] [unknown]
-
-\definefontsynonym [Mono] [unknown]
-\definefontsynonym [MonoBold] [unknown]
-\definefontsynonym [MonoItalic] [unknown]
-\definefontsynonym [MonoSlanted] [unknown]
-\definefontsynonym [MonoBoldItalic] [unknown]
-\definefontsynonym [MonoBoldSlanted] [unknown]
-\definefontsynonym [MonoCaps] [unknown]
-
-\definefontsynonym [MathRoman] [unknown]
-\definefontsynonym [MathExtension] [unknown]
-\definefontsynonym [MathItalic] [unknown]
-\definefontsynonym [MathSymbol] [unknown]
-
-\definefontsynonym [MathNoName] [unknown]
-
-\definefontsynonym [MathAlpha] [unknown]
-\definefontsynonym [MathBeta] [unknown]
-\definefontsynonym [MathGamma] [unknown]
-\definefontsynonym [MathDelta] [unknown]
-
-\definefontsynonym [MathRomanBold] [MathRoman]
-\definefontsynonym [MathExtensionBold] [MathExtension]
-\definefontsynonym [MathItalicBold] [MathItalic]
-\definefontsynonym [MathSymbolBold] [MathSymbol]
-\definefontsynonym [MathAlphaBold] [MathAlpha]
-\definefontsynonym [MathBetaBold] [MathBeta]
-\definefontsynonym [MathGammaBold] [MathGamma]
-\definefontsynonym [MathDeltaBold] [MathDelta]
-
-\definefontsynonym [Handwriting] [unknown]
-\definefontsynonym [Calligraphic] [unknown]
-
-%D This permit us to define (use) fonts that refer to the default
-%D style (so, Bold may expand to SansBold or SerifBold, depending
-%D on the default style in the typeface).
-
-% \def\setfontsynonym[#1]#2[#3]{\setvalue{\??ff\fontclass#1}{#3}}
-%
-% \setfontsynonym[\s!Normal] [\fontstringD]
-% \setfontsynonym[\s!Bold] [\fontstringD\s!Bold]
-% \setfontsynonym[\s!Italic] [\fontstringD\s!Italic]
-% \setfontsynonym[\s!Slanted] [\fontstringD\s!Slanted]
-% \setfontsynonym[\s!BoldItalic] [\fontstringD\s!BoldItalic]
-% \setfontsynonym[\s!BoldSlanted][\fontstringD\s!BoldSlanted]
-% \setfontsynonym[\s!Caps] [\fontstringD\s!Caps]
-
-\definefontsynonym[\s!Normal] [\noexpand\fontstringD]
-\definefontsynonym[\s!Bold] [\noexpand\fontstringD\noexpand\s!Bold]
-\definefontsynonym[\s!Italic] [\noexpand\fontstringD\noexpand\s!Italic]
-\definefontsynonym[\s!Slanted] [\noexpand\fontstringD\noexpand\s!Slanted]
-\definefontsynonym[\s!BoldItalic] [\noexpand\fontstringD\noexpand\s!BoldItalic]
-\definefontsynonym[\s!BoldSlanted][\noexpand\fontstringD\noexpand\s!BoldSlanted]
-\definefontsynonym[\s!Caps] [\noexpand\fontstringD\noexpand\s!Caps]
-
-%D Also handy:
-
-\definefontsynonym [Regular] [Serif]
-\definefontsynonym [RegularBold] [SerifBold]
-\definefontsynonym [RegularItalic] [SerifItalic]
-\definefontsynonym [RegularSlanted] [SerifSlanted]
-\definefontsynonym [RegularBoldItalic] [SerifBoldItalic]
-\definefontsynonym [RegularBoldSlanted] [SerifBoldSlanted]
-\definefontsynonym [RegularCaps] [SerifCaps]
-
-\definefontsynonym [Support] [Sans]
-\definefontsynonym [SupportBold] [SansBold]
-\definefontsynonym [SupportItalic] [SansItalic]
-\definefontsynonym [SupportSlanted] [SansSlanted]
-\definefontsynonym [SupportBoldItalic] [SansBoldItalic]
-\definefontsynonym [SupportBoldSlanted] [SansBoldSlanted]
-\definefontsynonym [SupportCaps] [SansCaps]
-
-%D Well, not that good an idea:
-
-\definefontsynonym [Roman] [Serif]
-\definefontsynonym [RomanBold] [SerifBold]
-\definefontsynonym [RomanItalic] [SerifItalic]
-\definefontsynonym [RomanSlanted] [SerifSlanted]
-\definefontsynonym [RomanBoldItalic] [SerifBoldItalic]
-\definefontsynonym [RomanBoldSlanted] [SerifBoldSlanted]
-\definefontsynonym [RomanCaps] [SerifCaps]
-
-\definefontsynonym [Type] [Mono]
-\definefontsynonym [TypeBold] [MonoBold]
-\definefontsynonym [TypeItalic] [MonoItalic]
-\definefontsynonym [TypeSlanted] [MonoSlanted]
-\definefontsynonym [TypeBoldItalic] [MonoBoldItalic]
-\definefontsynonym [TypeBoldSlanted] [MonoBoldSlanted]
-\definefontsynonym [TypeCaps] [MonoCaps]
-
-%D Next we define roman, sans and monospaced font sets.
-
-\definebodyfont [default] [rm]
- [tf=Serif sa 1,
- bf=SerifBold sa 1,
- it=SerifItalic sa 1,
- sl=SerifSlanted sa 1,
- bi=SerifBoldItalic sa 1,
- bs=SerifBoldSlanted sa 1,
- sc=SerifCaps sa 1]
-
-\definebodyfont [default] [ss]
- [tf=Sans sa 1,
- bf=SansBold sa 1,
- it=SansItalic sa 1,
- sl=SansSlanted sa 1,
- bi=SansBoldItalic sa 1,
- bs=SansBoldSlanted sa 1,
- sc=SansCaps sa 1]
-
-\definebodyfont [default] [tt]
- [tf=Mono sa 1,
- bf=MonoBold sa 1,
- it=MonoItalic sa 1,
- sl=MonoSlanted sa 1,
- bi=MonoBoldItalic sa 1,
- bs=MonoBoldSlanted sa 1,
- sc=MonoCaps sa 1]
-
-\definebodyfont [default] [mm]
- [mr=MathRoman mo 1,
- ex=MathExtension mo 1,
- mi=MathItalic mo 1,
- sy=MathSymbol mo 1,
- nn=MathNoName mo 1,
- ma=MathAlpha mo 1,
- mb=MathBeta mo 1,
- mc=MathGamma mo 1,
- md=MathDelta mo 1]
-
-\definebodyfont [bfmath] [mm]
- [mrbf=MathRomanBold mo 1,
- exbf=MathExtensionBold mo 1,
- mibf=MathItalicBold mo 1,
- sybf=MathSymbolBold mo 1,
- mabf=MathAlphaBold mo 1,
- mbbf=MathBetaBold mo 1,
- mcbf=MathGammaBold mo 1,
- mdbf=MathDeltaBold mo 1]
-
-\definebodyfont [default] [hw]
- [tf=Handwriting sa 1]
-
-\definebodyfont [default] [cg]
- [tf=Calligraphy sa 1]
-
-%D These definitions come into action as soon as names are
-%D mapped onto real file names (or names that themselves are
-%D mapped).
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/font-xtx.mkii b/Master/texmf-dist/tex/context/base/mkii/font-xtx.mkii
deleted file mode 100644
index e7a6c8d80cc..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/font-xtx.mkii
+++ /dev/null
@@ -1,465 +0,0 @@
-%D \module
-%D [ file=font-xtx,
-%D version=2004.09.11,
-%D title=\CONTEXT\ Font Macros,
-%D subtitle=\XETEX\ Hacks,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\ifnum\texengine=\xetexengine
- \writestatus{loading}{ConTeXt Font Macros / XeTeX Hacks}
-\else
- \endinput
-\fi
-
-\unprotect
-
-%D Features:
-
-% \definefontfeature[default] [liga=yes,texligatures=yes,texquotes=yes]
-% \definefontfeature[default-caps][liga=yes,texligatures=yes,texquotes=yes,smcp=yes,script=latn]
-%
-% \starttypescript [serif] [palatino-nova-regular] [name]
-% \definefontsynonym[Serif] [palatinonova-regular][features=default]
-% \definefontsynonym[SerifCaps][palatinonova-regular][features=default-caps] % also sets Serif
-% \stoptypescript
-%
-% \starttypescript [serif] [palatino-nova-regular] [name]
-% \definefontsynonym[Serif] [palatinonova-regular*default]
-% \definefontsynonym[SerifCaps] [palatinonova-regular*default-caps]
-% \stoptypescript
-
-% \definetypeface[mainface][rm][serif][palatino-nova-regular][default] \setupbodyfont[mainface]
-%
-% \starttext
-% ``Test'' -- --- ff fi fl \sc ``Test'' -- --- ff fi fl
-% \stoptext
-
-% \starttext
-% \definefont
-% [blabla]
-% [name:Latin Modern Something]
-% \definefont
-% [blabla]
-% [file:texnansi-lmr10]
-% \blabla test
-% \definefont
-% [blabla]
-% [texnansi-lmtt10]
-% \blabla test
-% \stoptext
-
-\def\definefontfeature
- {\dotripleargument\dodefinefontfeature}
-
-\def\dododefinefontfeature#1%
- {\edef\!!stringa{\ifx\!!stringa\empty\else\!!stringa,\fi\executeifdefined{\??fa#1}\empty}}
-
-\def\dodefinefontfeature[#1][#2][#3]%
- {\doifassignmentelse{#2}
- {\setevalue{\??fa#1}{#2}}
- {\let\!!stringa\empty
- \processcommalist[#2]\dododefinefontfeature
- \setevalue{\??fa#1}{\ifx\!!stringa\empty\else\!!stringa,\fi#3}}}
-
-\definefontfeature
- [default]
- [liga=yes,kern=yes,tlig=yes,trep=yes] % texligatures=yes,texquotes=yes
-
-\definefontfeature
- [smallcaps]
- [liga=yes,kern=yes,tlig=yes,trep=yes,smcp=yes] % texligatures=yes,texquotes=yes
-
-\definefontfeature
- [oldstyle]
- [liga=yes,kern=yes,tlig=yes,trep=yes,onum=yes] % texligatures=yes,texquotes=yes
-
-\definefontfeature % no calt
- [arabic]
- [language=dflt,script=arab,
- init=yes,medi=yes,fina=yes,isol=yes,
- liga=yes,dlig=yes,rlig=yes,clig=yes,
- mark=yes,mkmk=yes,kern=yes,curs=yes]
-
-\definefontfeature
- [none]
- [features=no]
-
-%D Overloaded:
-
-\def\getfontfileparameters#1% can be simpler for mkii (no features)
- {\edef\@@truefontname{\truefontname{#1}}%
- \edef\currentfontfileencoding{\truefontdata\@@truefontname\s!encoding}%
- \edef\currentfontfilemapping {\truefontdata\@@truefontname\s!mapping }%
- \edef\currentfontfilehandling{\truefontdata\@@truefontname\s!handling}%
- \edef\currentfontfilefeatures{\truefontdata\@@truefontname\s!features}}
-
-\def\updatefontparameters
- {\edef\@@fontencoding{\truefontdata\fontfile \s!encoding}%
- \edef\@@fontmapping {\truefontdata\fontfile \s!mapping }%
- \edef\@@fonthandling{\truefontdata\somefontname\s!handling}%
- \edef\@@fontfeatures{\truefontdata\fontfile \s!features}%
- \edef\@@fontskewchar{\truefontdata\fontfile \s!skewchar}}
-
-%D Loading:
-%D
-%D for some reason xetex does not support [filename] for tfm files and
-%D quotes also behave kind of strange " vs ' vs [ vs ...
-%D
-%D \starttyping
-%D \font\myfont = msam7 % ok
-%D \font\myfont = "msam7" % also ok
-%D \font\myfont = "msam7" at 8pt % error
-%D \stoptyping
-
-\newconditional\tracexetexfonts
-
-%D Because \XETEX\ is not that fast on locating fonts we cache lookups so
-%D that we minimize the test. It saves a little bit of runtime, depending
-%D on the number of fonts loaded (which is normally not that much).
-
-\def\doiffoundXTXfontelse#1#2%
- {\ifcsname xtx@fnt@#2\somefontspec\endcsname
- \ifconditional\tracexetexfonts
- \writestatus\m!fonts{already checked #1: #2\somefontspec\space (state: \number\csname xtx@fnt@#2\somefontspec\endcsname)}%
- \fi
- \else
- \suppressfontnotfounderror\plusone
- \font\xetextempfont=#2\somefontspec\relax
- \suppressfontnotfounderror\zerocount
- \edef\xetextempfont{\fontname\xetextempfont}%
- \global\expandafter\chardef\csname xtx@fnt@#2\somefontspec\endcsname
- \ifx\xetextempfont\nullfontname
- \zerocount \ifconditional\tracexetexfonts
- \writestatus\m!fonts{not found #1: #2\somefontspec}%
- \fi
- \else
- \plusone \ifconditional\tracexetexfonts
- \writestatus\m!fonts{found #1: #2\somefontspec}%
- \fi
- \fi
- \fi
- \ifcase\csname xtx@fnt@#2\somefontspec\endcsname
- \expandafter\secondoftwoarguments
- \else
- \expandafter\firstoftwoarguments
- \fi}
-
-\def\docheckfontfilenameprefix#1:#2:#3#4\relax
- {\edef\!!stringa{#1}%
- \edef\!!stringb{#2}%
- \ifx\!!stringb\empty
- % no prefix
- \let\checkedfontfile\!!stringa
- \doiffoundXTXfontelse{1a}{\checkedfontfile\checkedfontfeatures}
- {\edef\checkedfontfile{\checkedfontfile\checkedfontfeatures}}
- {\doiffoundXTXfontelse{1b}{"\checkedfontfile\checkedfontfeatures"}
- {\edef\checkedfontfile{"\checkedfontfile\checkedfontfeatures"}}
- {\doiffoundXTXfontelse{1c}{"[\checkedfontfile]\checkedfontfeatures"}
- {\edef\checkedfontfile{"[\checkedfontfile]\checkedfontfeatures"}}
- {}}}%
- \else\ifx\!!stringa\v!file
- % force file, only file check when no spaces
- \let\checkedfontfile\!!stringb
- \doiffoundXTXfontelse{2a}{"[\checkedfontfile]\checkedfontfeatures"}
- {\edef\checkedfontfile{"[\checkedfontfile]\checkedfontfeatures"}}
- {\doiffoundXTXfontelse{2b}{"\checkedfontfile\checkedfontfeatures"}
- {\edef\checkedfontfile{"\checkedfontfile\checkedfontfeatures"}}
- {}}%
- \else\ifx\!!stringa\v!name
- % force name, always lookup by xetex itself, "" forces otf/ttf/type1
- \edef\checkedfontfile{"\!!stringb\checkedfontfeatures"}%
- \ifconditional\tracexetexfonts
- \writestatus\m!fonts{no checking 3a: \checkedfontfile}%
- \fi
- \else
- % whatever, maybe even xetex spec, forget about features
- \edef\checkedfontfile{"\!!stringa\!!stringb"}%
- \ifconditional\tracexetexfonts
- \writestatus\m!fonts{no checking 3b: \checkedfontfile}%
- \fi
- \fi\fi\fi}
-
-\newconditional\enabledfontfeatures
-
-\def\checkfontfilename% -- todo: integrate so that we call do.. directly
- {\expandafter\docheckfontfilename\fontfile*\empty*\relax}
-
-\def\docheckfontfilename#1*#2#3*#4\relax % class overrules file
- {\settrue\enabledfontfeatures
- \edef\checkedfontfeatures
- {\expandafter\ifx\csname\fontclass\s!features\endcsname\empty
- \ifx\@@fontfeatures\empty\ifx#2\empty\else#2#3\fi\else\@@fontfeatures\fi
- \else\expandafter\ifx\csname\fontclass\s!features\endcsname\relax % redundant, will go away
- \ifx\@@fontfeatures\empty\ifx#2\empty\else#2#3\fi\else\@@fontfeatures\fi
- \else
- \csname\fontclass\s!features\endcsname
- \fi\fi}%
- \ifx\checkedfontfeatures\empty
- % done
- \else
- \edef\checkedfontfeatures{\executeifdefined{\??fa\checkedfontfeatures}\empty}%
- \ifx\checkedfontfeatures\empty
- % done
- \else
- \let\convertedfontfeatures\empty
- \processcommacommand[\checkedfontfeatures]\doconvertfontfeatures % raw
- \ifx\convertedfontfeatures\empty
- \let\checkedfontfeatures\empty
- \else\ifconditional\enabledfontfeatures
- \edef\checkedfontfeatures{:\convertedfontfeatures}%
- \else
- \let\checkedfontfeatures\empty
- \fi\fi
- \fi
- \fi
- \docheckfontfilenameprefix#1:\empty:\empty\relax
- \doshowcheckedfontfeatures}
-
-\edef\@@fontfeaturesareno {features\v!no}
-\edef\@@fontfeaturesareoff{features\v!off}
-
-\def\dodoconvertfontfeatures#1=#2#3=#4\relax
- {\ifx#2\empty
- % invalid feature
- \else\ifcsname @xtx@#1@#2#3\endcsname
- \expandafter\ifx\csname @xtx@#1@#2#3\endcsname\empty\else
- \edef\convertedfontfeatures{\convertedfontfeatures\csname @xtx@#1@#2#3\endcsname;}%
- \fi
- \else
- \edef\!!stringa{#1}%
- \edef\!!stringb{#2#3}%
- \edef\!!stringc{#1#2#3}%
- \ifx\!!stringc\@@fontfeaturesareoff
- \setfalse\enabledfontfeatures
- \else\ifx\!!stringc\@@fontfeaturesareno
- \setfalse\enabledfontfeatures
- \else
- \edef\convertedfontfeatures
- {\convertedfontfeatures
- \ifx\!!stringb\v!yes
- +\!!stringa
- \else\ifx\!!stringb\v!on
- +\!!stringa
- \else\ifx\!!stringb\v!no
- -\!!stringa
- \else\ifx\!!stringb\v!off
- -\!!stringa
- \else
- \!!stringa=\!!stringb
- \fi\fi\fi\fi;}%
- \fi\fi
- \fi\fi}
-
-\def\doconvertfontfeatures#1%
- {\dodoconvertfontfeatures#1=\empty=\relax}
-
-\def\remapfontfeature #1 #2 #3 {\setevalue{@xtx@#1@#2}{#3}}
-
-% this may move to another file, maybe font-xtx
-
-\remapfontfeature tlig yes mapping=tlig
-%remapfontfeature tlig no mapping=
-\remapfontfeature trep yes {}
-\remapfontfeature trep no {}
-\remapfontfeature texligatures yes mapping=tlig
-%remapfontfeature texligatures no mapping=
-%remapfontfeature texquotes yes mapping=tex-text
-%remapfontfeature texquotes no mapping=
-
-%D Variants:
-
-\unexpanded\def\variant[#1]%
- {\dosetscaledfont
- \font\variantfont\truefontname{\fontstringA\fontstylesuffix\fontvariant\fontstringA{#1}} at \scaledfont
- \variantfont}
-
-%D Possible optimizations:
-
-% \def\updatefontparameters
-% {\edef\@@fontfeatures{\truefontdata\fontfile\s!features}%
-% \edef\@@fontskewchar{\truefontdata\fontfile\s!skewchar}}
-
-% \def\setfontcharacteristics
-% {\updatefontparameters % redundant, will go away, faster too
-% \the\everyfont}
-
-% \let\synchronizepatternswithfont\relax
-
-%D Names:
-
-% We need to move the feature into the filename else it may be
-% overloaded by another reference. For instance the definition of
-% a regular and caps variant can use the same font.
-
-% We could use an indirect method ... store in 'array' and refer to
-% slot.
-
-\def\definefontsynonym[#1]#2[#3]%
- {\edef\@@fontname{#1}%
- \edef\@@fontfile{#3}%
- \doifnextoptionalelse\dodefinefontsynonym\nodefinefontsynonym}
-
-\def\nodefinefontsynonym
- {\@EA\let\csname\??ff\fontclass\@@fontname\endcsname\@@fontfile
-% \@EA\let\csname\??ff\@@fontfile\s!features\endcsname\undefined
-}
-
-\def\dodefinefontsynonym[#1]%
- {\edef\@@fontdata{#1}%
- \ifx\@@fontdata\empty
- \nodefinefontsynonym
- \else
- \ifx\fontclass\empty
- \getfontparameters
- \else
- \getglobalfontparameters
- \fi
- \ifcsname\??ff\@@fontfile\s!features\endcsname
- \@EA\edef\csname\??ff\fontclass\@@fontname\endcsname{\@@fontfile*\csname\??ff\@@fontfile\s!features\endcsname}%
- \@EA\let\csname\??ff\@@fontfile\s!features\endcsname\undefined
- \else
- \nodefinefontsynonym
- \fi
- \fi}
-
-\let\definefontfile\definefontsynonym % dedicated to Taco Hoekwater
-
-% simple version
-%
-% \def\truefontname#1%
-% {\@EA\dotruefontname#1*\relax}
-%
-% \def\dotruefontname#1*#2\relax
-% {\ifcsname\??ff\fontclass#1\endcsname
-% \@EA\truefontname\csname\??ff\fontclass#1\endcsname
-% \else\ifcsname\??ff#1\endcsname
-% \@EA\truefontname\csname\??ff#1\endcsname
-% \else
-% #1%
-% \fi\fi}
-%
-% last counts
-%
-% \def\truefontname#1%
-% {\@EA\dotruefontname#1*\empty*\relax}
-%
-% \def\dotruefontname#1*#2#3*#4\relax
-% {\ifcsname\??ff\fontclass#1\endcsname
-% \ifx#2\empty
-% \@EA\truefontname\csname\??ff\fontclass#1\endcsname
-% \else
-% \@EA\truefontname\csname\??ff\fontclass#1\endcsname*#2#3%
-% \fi
-% \else\ifcsname\??ff#1\endcsname
-% \ifx#2\empty
-% \@EA\truefontname\csname\??ff#1\endcsname
-% \else
-% \@EA\truefontname\csname\??ff#1\endcsname*#2#3%
-% \fi
-% \else
-% \ifx#2\empty
-% #1%
-% \else
-% #1*#2#3%
-% \fi
-% \fi\fi}
-%
-% first counts
-
-\def\truefontname#1%
- {\@EA\dotruefontname#1*\empty*\relax}
-
-\def\dotruefontname#1*#2#3*#4\relax
- {\ifcsname\??ff\fontclass#1\endcsname
- \ifx#2\empty
- \@EA\truefontname\csname\??ff\fontclass#1\endcsname
- \else
- \@EA\redotruefontname\csname\??ff\fontclass#1\endcsname*#2#3%
- \fi
- \else\ifcsname\??ff#1\endcsname
- \ifx#2\empty
- \@EA\truefontname\csname\??ff#1\endcsname
- \else
- \@EA\redotruefontname\csname\??ff#1\endcsname*#2#3%
- \fi
- \else
- #1\ifx#2\empty\else*#2#3\fi
- \fi\fi}
-
-\def\redotruefontname#1%
- {\@EA\dodotruefontname#1*\relax}
-
-\def\dodotruefontname#1*#2\relax
- {\ifcsname\??ff\fontclass#1\endcsname
- \@EA\redotruefontname\csname\??ff\fontclass#1\endcsname
- \else\ifcsname\??ff#1\endcsname
- \@EA\redotruefontname\csname\??ff#1\endcsname
- \else
- #1%
- \fi\fi}
-
-%D Default:
-
-\def\defaultfontfile{file:lmmono10-regular}
-
-%D Maybe:
-
-% \def\updatefontparameters
-% {\edef\@@fontfeatures{\truefontdata\fontfile \s!features}%
-% \edef\@@fontskewchar{\truefontdata\fontfile \s!skewchar}}
-
-% \def\setfontcharacteristics
-% {%\updatefontparameters % redundant, will go away, faster too
-% \the\everyfont
-% \synchronizepatternswithfont}
-
-\protect \endinput
-
-% \starttypescript[serif] [myzhfont]
-% \definefontsynonym [Serif] [file:SimSun]
-% \definefontsynonym [SerifBold] [file:SimSun]
-% \definefontsynonym [SerifItalic] [file:SimSun]
-% \definefontsynonym [SerifBoldItalic] [file:SimSun]
-% \stoptypescript
-% \starttypescript[sans] [myzhfont]
-% \definefontsynonym [Sans] [file:SimSun]
-% \definefontsynonym [SansBold] [file:SimSun]
-% \definefontsynonym [SansItalic] [file:SimSun]
-% \definefontsynonym [SansBoldItalic] [file:SimSun]
-% \stoptypescript
-% \starttypescript[mono] [myzhfont]
-% \definefontsynonym [Mono] [file:SimSun]
-% \definefontsynonym [MonoBold] [file:SimSun]
-% \definefontsynonym [MonoItalic] [file:SimSun]
-% \definefontsynonym [MonoBoldItalic] [file:SimSun]
-% \stoptypescript
-% \definetypeface [myzhfont] [rm] [serif][myzhfont] [default]
-% \definetypeface [myzhfont] [ss] [sans] [myzhfont] [default]
-% \definetypeface [myzhfont] [tt] [mono] [myzhfont] [default]
-
-% \starttext
-% % on windows: make sure fonts.conf has no cache mentioned
-% %
-% % 64 sec xetex, 11 sec luatex (56 sec xetex when \nobigmath)
-% %
-% \setupbodyfont[myzhfont] \dorecurse{10000}{{hello {\switchtobodyfont[myzhfont] 你好}}\par}
-% %
-% % 67 sec xetex, 11.5 sec luatex
-% %
-% % \dorecurse{10000}{{hello {\switchtobodyfont[myzhfont] 你好}}\par}
-% %
-% % 5 sec xetex, 7 sec luatex
-% %
-% % \setupbodyfont[myzhfont] \dorecurse{10000}{{hello {你好}}\par}
-% %
-% % 5 sec xetex, 7 sec luatex
-% %
-% % \setupbodyfont[myzhfont] \dorecurse{10000}{{\bf hello {你好}}\par}
-% \stoptext
-
diff --git a/Master/texmf-dist/tex/context/base/mkii/grph-fig.mkii b/Master/texmf-dist/tex/context/base/mkii/grph-fig.mkii
deleted file mode 100644
index c488ccc4f6c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/grph-fig.mkii
+++ /dev/null
@@ -1,559 +0,0 @@
-%D \module
-%D [ file=grph-fig,
-%D version=2006.08.26, % overhaul of 1997.03.31
-%D title=\CONTEXT\ Graphic Macros,
-%D subtitle=Figure Inclusion,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Graphic Macros / Figure Handling}
-
-\unprotect
-
-\def\setupexternalfigures
- {\dosingleempty\dosetupexternalfigures}
-
-\def\dosetupexternalfigures[#1]%
- {\getparameters[\??ef][#1]% local settings
- \getparameters[\??ex][#1]% global settings
- \setfigurepathlist} % the path may be used elsewhere too (as in x-res-04)
-
-\presetlocalframed[\??ef]
-
-\newconditional\externalfigurelevel % true=background false=normal
-\newconditional\externalfigureflush % true=place false=ignore
-
-\setfalse\externalfigurelevel
-\settrue \externalfigureflush
-
-\def\doplaceexternalfigure[#1][#2][#3][#4][#5]%
- {\doifsomething{#2}% catches \defineexternalfigure dummies
- {\doifundefinedelse{\??ef\??ef#2}
- {\dodoplaceexternalfigure[#1][#2][#3][#4][#5]}
- {\doifelse{#1}{#2}
- {\dodoplaceexternalfigure[#1][#2][#3][#4][#5]}
- {\getvalue{\??ef\??ef#2}[#5]}}}}
-
-\def\dodoplaceexternalfigure[#1][#2][#3][#4][#5]%
- {\bgroup
- \pushmacro\textunderscore
- \edef\textunderscore{\string_}% brrr, temp hack, still needed?
- \calculateexternalfigure [][#1][#2][#3][#4][#5]% [] is dummy dwcomp
- \calculateexternalscreenfigure[][#1][#2][#3][#4][#5]% [] is dummy dwcomp
- \popmacro\textunderscore
- \box\foundexternalfigure
- \egroup}
-
-\def\externalfigurereplacement#1#2#3%
- {\setupcolors
- [\c!state=\v!local]%
- \expanded{\localframed
- [\??ef]
- [\c!width=\figurewidth,
- \c!height=\figureheight,
- \c!background=\v!screen,
- \c!backgroundscreen=.8,
- \c!frame=\@@efframe]}%
- {\tt\tfxx \nohyphens
- name: \expanded{\verbatimstring{#1}}\\%
- file: \expanded{\verbatimstring{#2}}\\%
- state: \expanded{\verbatimstring{#3}}}}
-
-\def\externalfigureplaceholder#1#2#3%
- {\localframed
- [\??ef]
- [\c!width=#2,
- \c!height=#3,
- \c!frame=\v!on]%
- {\tt\tfxx \nohyphens
- name: \expanded{\verbatimstring{#1}}\\%
- state: \expanded{\verbatimstring{placeholder}}}}
-
-% new: more convenient/efficient than
-%
-% \use..[a][a][setting] \externalfigure[b][a]
-%
-% is equivalent to:
-%
-% \def..[a][setting] \externalfigure[b][a]
-%
-% see x-res modules for usage:
-%
-% \defineexternalfigure[name][settings]
-
-\def\defineexternalfigure
- {\dodoubleargument\dodefineexternalfigure}
-
-\def\dodefineexternalfigure[#1][#2]%
- {\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[#1][][][#2]}}
-
-\def\getexternalfigure#1% efef has 4 args already and take an 5th
- {\wait} % OBSOLETE
-
-% \useexternalfigure[alpha][koe]
-% \useexternalfigure[beta] [koe] [breedte=1cm]
-% \useexternalfigure[gamma][koe][alpha]
-% \useexternalfigure[delta][koe][alpha][breedte=2cm]
-%
-% volle breedte: \externalfigure[koe] \par
-% 3cm breed: \externalfigure[koe] [breedte=3cm] \par
-% volle breedte: \externalfigure[alpha] \par
-% 1cm breed: \externalfigure[beta] \par
-% volle breedte: \externalfigure[gamma] \par
-% 2cm breed: \externalfigure[delta] \par
-% 4cm breed: \externalfigure[beta] [breedte=4cm] \par
-% 5cm breed: \externalfigure[gamma][breedte=5cm] \par
-
-% \defineexternalfigure[a][width=10cm]
-% \defineexternalfigure[b][width=5cm]
-% \externalfigure[cow][a]
-% \externalfigure[cow][b][height=8cm]
-
-% \useexternalfigure[x][cow][width=10cm,height=1cm]
-% \externalfigure[x]
-% \externalfigure[x][width=3cm]
-
-\def\useexternalfigure
- {\doquadrupleempty\douseexternalfigure}
-
-% [label] [filename]
-% [label] [filename] [parent]
-% [label] [filename] [parent] [settings]
-% [label] [filename] [settings]
-
-\def\useexternalfigure
- {\doquadrupleempty\douseexternalfigure}
-
-\def\douseexternalfigure[#1][#2][#3][#4]%
- {\doifelsenothing{#1}
- {\doifsomething{#2}
- {\doifassignmentelse{#3}
- {\setvalue{\??ef\??ef#2}{\doplaceexternalfigure[#2][#2][#3][#4]}}
- {\setvalue{\??ef\??ef#2}{\doplaceexternalfigure[#2][#2][][#4]}}}}
- {\doifelsenothing{#2}
- {\doifassignmentelse{#3}
- {\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[#1][#1][][#3]}}
- {\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[#1][#1][#3][#4]}}}
- {\doifassignmentelse{#3}
- {\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[#1][#2][][#3]}}
- {\setvalue{\??ef\??ef#1}{\doplaceexternalfigure[#1][#2][#3][#4]}}}}}
-
-\def\dosetefparameters#1#2#3% parent_id use_settings current_settings
- {\doifelsenothing{#1} % inherit from parent
- {\getparameters[\??ef][#2,#3]}
- {\doifdefinedelse{\??ef\??ef#1}
- {\pushmacro\doplaceexternalfigure
- \def\doplaceexternalfigure[##1][##2][##3][##4]{\getparameters[\??ef][##4,#2,#3]}%
- \getvalue{\??ef\??ef#1}%
- \popmacro\doplaceexternalfigure}
- {\getparameters[\??ef][#2,#3]}}}
-
-\unexpanded\def\externalfigure
- {\dotripleempty\doexternalfigure}
-
-\def\doexternalfigure[#1][#2][#3]% [label][file][settings] | [file][settings] | [file][parent][settings]
- {\bgroup
- \doifelsenothing{#1}
- {\framed[\c!width=\defaultfigurewidth,\c!height=\defaultfigureheight]{external\\figure\\no name}}
- {\doifundefinedelse{\??ef\??ef#1}
- {\useexternalfigure[\s!dummy][#1][#2][#3]%
- \getvalue{\??ef\??ef\s!dummy}[]} % [] is dummy arg 5
- {\doifassignmentelse{#2}
- {\getvalue{\??ef\??ef#1}[#2]}%
- {\getvalue{\??ef\??ef#1}[#3]}}}%
- \globallet\currentresourcecomment\empty
- \egroup}
-
-\long\def\resourcecomment#1%
- {\long\gdef\currentresourcecomment{#1}}
-
-\long\def\startresourcecomment#1\stopresourcecomment
- {\long\gdef\currentresourcecomment{#1}}
-
-\let\currentresourcecomment\empty
-
-\def\showexternalfigures % maybe run time command is better, but no core-run, unless figs-run ...
- {%\writestatus\m!systems{for \string\showexternalfigures\space see \truefilename{x-res-20}.tex}
- \usemodule[res-20]\showexternalfigures} % so for the moment we do it this way
-
-\def\overlayfigure#1%
- {\externalfigure[#1][\c!width=\overlaywidth,\c!height=\overlayheight]}
-
-%D Still undocumented! No one uses it I think, better be done with layers.
-
-\newcount\efreference
-\newdimen\efxsteps
-\newdimen\efysteps
-
-\def\calculateefsteps
- {\ifnum0\@@exxmax=\zerocount
- \ifnum0\@@exymax=\zerocount
- \def\@@exymax{24}%
- \fi
- \efysteps\figureheight \divide\efysteps \@@exymax
- \efxsteps\efysteps
- \dimen0=\figurewidth
- \advance\dimen0 \efysteps
- \divide \dimen0 \efysteps
- \edef\@@exxmax{\number\dimen0}%
- \else
- \efxsteps\figurewidth \divide\efxsteps \@@exxmax
- \efysteps\figureheight \divide\efysteps \@@exymax
- \fi}
-
-\def\efcomment#1(#2,#3)#4(#5,#6)% {kader}(x,y)(h,b)[...]{tekst}
- {\def\complexefdocomment[##1]##2%
- {\position(#2,#3)%
- {\setnostrut
- \framed
- [\c!width=#5\efxsteps,
- \c!height=#6\exysteps,
- \c!offset=\v!none,
- \c!frame=#1,
- ##1]%
- {##2}}}%
- \complexorsimpleempty\efdocomment}
-
-\def\efnocomment(#1,#2)#3(#4,#5)% (x,y)(h,b)[...]{tekst}
- {\def\complexefdonocomment[##1]##2{}%
- \complexorsimpleempty\efdonocomment}
-
-\def\efdomarker(#1,#2)#3#4% (h,b){kader}{tekst}
- {\framed
- [\c!width=#1\efxsteps,
- \c!height=#2\efysteps,
- \c!offset=\v!none,
- \c!frame=#3]%
- {#4}}
-
-\def\effigure#1%
- {\position(0,0){\getvalue{#1}}}
-
-\def\efdoarea(#1,#2)#3#4% (h,b){kader}{tekst}
- {\bgroup
- \setnostrut
- \framed
- [\c!width=#1\efxsteps,
- \c!height=#2\efysteps,
- \c!offset=\!!zeropoint,
- \c!frame=#3]
- {#4}%
- \egroup}
-
-\def\efgoto(#1,#2)#3[#4]% (h,b)kader[ref]
- {\setbox0=\vbox{\efdoarea(#1,#2)#3{}}%
- \gotobox{\copy0}[#4]}
-
-\def\efmark(#1,#2)#3(#4,#5)#6[#7]%
- {\advance\efreference \plusone
- \position(#1,#2)
- {\hbox{\the\efreference}}%
- \position(#1,#2)
- {\gotosomeinternal\s!vwb{#7}\realfolio
- {\efdomarker(#4,#5)\v!on{\thisissomeinternal\s!vwa{#7}}}}}
-
-\def\eftext#1(#2,#3)#4(#5,#6)#7[#8]%
- {\advance\efreference \plusone
- \hbox
- {\quad
- \thisissomeinternal\s!vwb{#8}%
- \gotosomeinternal \s!vwa{#8}\realfolio
- {\hbox to 1.5em{\the\efreference\presetgoto\hfill}}%
- \quad#1 (#2,#3) (#5,#6) [#8]\hfill}%
- \endgraf}
-
-\def\efthisis(#1,#2)#3[#4]%
- {\efdoarea(#1,#2){#3}{\pagereference[#4]}}
-
-\newbox\colorbarbox
-
-\def\makecolorbar[#1]%
- {\def\docommand##1%
- {\color[##1]
- {\blackrule
- [\c!width=2em,
- \c!height=1ex,
- \c!depth=\!!zeropoint]}%
- \endgraf}%
- \global\setbox\colorbarbox\vbox
- {\forgetall
- \processcommalist[#1]\docommand}%
- \global\setbox\colorbarbox\vbox
- {\hskip2em\box\colorbarbox}%
- \wd\colorbarbox\zeropoint}
-
-\def\placestartfigure[#1][#2][#3]#4\placestopfigure[#5]%
- {\hbox
- {\setbox0\hbox
- {\useexternalfigure[\s!dummy][#2][#3,#5]%
- \externalfigure[\s!dummy]}%
- \calculateefsteps
- \startpositioning
- \def\referring(##1,##2)##3(##4,##5)##6[##7]%
- {\position(##1,##2){\efgoto(##4,##5){\@@exframes}[##7]}}%
- \def\marking(##1,##2)##3(##4,##5)##6[##7]%
- {\position(##1,##2){\efthisis(##4,##5){\@@exframes}[##7]}}%
- \def\remark{\efnocomment}%
- \def\colorbar##1[##2]{}%
- \position(0,0){\box0}%
- \linewidth\onepoint
- \setuppositioning
- [\c!unit=pt,
- \c!xscale=\withoutpt\the\efxsteps,
- \c!yscale=\withoutpt\the\efysteps,
- \c!factor=1]%
- \ignorespaces#4%
- \def\referring(##1,##2)##3(##4,##5)##6[##7]%
- {}%
- \let\marking\referring
- \def\remark{\efcomment\v!no}%
- \def\colorbar##1[##2]{\makecolorbar[##2]}%
- \ignorespaces#4%
- \stoppositioning
- \box\colorbarbox}}
-
-\def\dodostartfigure[#1][#2][#3]#4\stopfigure
- {\doifelse\v!test\@@exoption
- {\teststartfigure[#1][#2][#3]#4\teststopfigure
- \let\@@exframes\v!on}
- {\let\@@exframes\v!off}%
- \setvalue{\??ef\??ef#1}%
- {\dosingleempty{\placestartfigure[#1][#2][#3]#4\placestopfigure}}%
- }% no longer \doifundefined{#1}{\setvalue{#1}{\getexternalfigure{#1}}}}
-
-% De onderstaande macro mag niet zondermeer worden aangepast
-% en is afgestemd op gebruik in de handleiding.
-
-\def\teststartfigure[#1][#2][#3]#4\teststopfigure%
- {\begingroup
- \setbox0\hbox
- {\useexternalfigure[\s!dummy][#2][\c!wfactor=\v!max]%
- \externalfigure[\s!dummy]}%
- \def\referring{\efmark}%
- \def\marking{\efmark}%
- \def\remark{\efcomment\v!yes}%
- \def\colorbar##1[##2]{}%
- \efreference\zerocount
- \setbox0\vbox
- {\hsize240pt
- \startpositioning
- \calculateefsteps
- \position(0,0)
- {\box0}%
- \position(0,0)
- {\basegrid
- [\c!nx=\@@exxmax,
- \c!dx=\withoutpt\the\efxsteps,
- \c!ny=\@@exymax,
- \c!dy=\withoutpt\the\efysteps,
- \c!xstep=1,
- \c!ystep=1,
- \c!scale=1,
- \c!offset=\v!no,
- \c!unit=pt]}%
- \setuppositioning
- [\c!unit=pt,
- \c!xscale=\withoutpt\the\efxsteps,
- \c!yscale=\withoutpt\the\efysteps,
- \c!factor=1]%
- \linewidth\onepoint
- \ignorespaces#4\relax
- \stoppositioning
- \vfill}%
- \efreference\zerocount
- \def\referring{\eftext{$\rightarrow$}}%
- \def\marking{\eftext{$\leftarrow$}}%
- \def\remark{\efnocomment}%
- \def\colorbar##1[##2]{}%
- \setbox2\vbox
- {{\tfa\doifelsenothing{#1}{#2}{#1}}
- \blank
- \tfxx#4
- \vfilll}%
- \ifdim\ht0>\ht2
- \ht2\ht0
- \else
- \ht0\ht2
- \fi
- \hbox
- {\hskip3em
- \vtop{\vskip12pt\box0\vskip6pt}%
- \vtop{\vskip12pt\box2\vskip6pt}}%
- \endgroup}
-
-\def\dodostartfigure[#1][#2][#3]#4\stopfigure
- {\doifelse\v!test\@@exoption
- {\teststartfigure[#1][#2][#3]#4\teststopfigure
- \let\@@exframe\v!on}
- {\let\@@exframe\v!off}%
- \setvalue{\??ef\??ef#1}%
- {\def\next{\placestartfigure[#1][#2][#3]#4\placestopfigure}%
- \dosingleempty\next}%
- }% no longer: \doifundefined{#1}{\setvalue{#1}{\getexternalfigure{#1}}}}
-
-\long\def\dostartfigure#1%
- {\dotripleargument\dodostartfigure#1\stopfigure}
-
-\def\startfigure
- {\grabuntil{\e!stop\v!figure}\dostartfigure}
-
-%D defining sound tracks:
-%D
-%D \starttyping
-%D \useexternalsoundtrack[label][file]
-%D \stoptyping
-%D
-%D associated actions: StartSound StopSound PauseSound ResumeSound
-%D
-%D Todo: like external figures, also search on path,
-%D although, they need to be present ar viewing time, so ...
-
-\def\useexternalsoundtrack
- {\dodoubleargument\douseexternalsoundtrack}
-
-\def\douseexternalsoundtrack[#1][#2]%
- {\setgvalue{\??sd:#1}{#2}}
-
-\def\checksoundtrack#1%
- {\iflocation
- \doifdefined{\??sd:#1}{\doifvaluesomething{\??sd:#1}
- {\doinsertsoundtrack{\getvalue{\??sd:#1}}{#1}\@@sdoption
- % brr, \..empty not really needed and maybe even wrong;
- % also, not here but in driver
- % well, no: sounds need to be reinitialize each time (i.e., be on page), so no
- }}% \letgvalueempty{\??sd:#1}}}%
- \fi}
-
-\setexecutecommandcheck {startsound} \checksoundtrack
-
-\def\setupexternalsoundtracks
- {\dodoubleargument\getparameters[\??sd]}
-
-\setupexternalsoundtracks
- [\c!option=]
-
-%D NEW: used in styledesign manual
-
-% \setbuffer[typeset-b]\endbuffer
-% \setbuffer[typeset-a]\endbuffer
-%
-% todo:
-%
-% \appendtoks \setbuffer[typeset-b]\endbuffer\to \everystarttext
-% \appendtoks \setbuffer[typeset-a]\endbuffer\to \everystarttext
-
-\def\typesetbuffer
- {\dodoubleempty\dotypesetbuffer}
-
-\newcounter\noftypesetbuffers % all loaded at the end
-
-\defineexternalfigure
- [typeset]
- [\c!background=\v!color,
- \c!backgroundcolor=\s!white]
-
-\def\dotypesetbuffer[#1][#2]% beware: this will mix up the mp graphics
- {\bgroup
- \def\TEXbufferfile##1{\bufferprefix##1.tex}%
- \expanded{\setbuffer[typeset]%
- \def\noexpand\bufferprefix{\ifprotectbuffers\jobname-\fi typeset-}}%
- \starttext
- \getbuffer[b,#1,a]%
- \stoptext
- \endbuffer
- \doglobal\increment\noftypesetbuffers
- % batch is needed
- \executesystemcommand{texmfstart texexec --batch --pdf --result=\bufferprefix typeset-\noftypesetbuffers\space \bufferprefix typeset.tex}%
- %\externalfigure[\bufferprefix typeset-\noftypesetbuffers.pdf][\c!object=\v!no,#2]%
- \externalfigure[\bufferprefix typeset-\noftypesetbuffers.pdf][#2]%
- \egroup}
-
-% for me only (manuals and such)
-
-\definesystemvariable{tz}
-
-\def\definetypesetting{\dotripleempty\dodefinetypesetting}
-\def\typesetfile {\dotripleempty\dotypesetfile}
-
-\def\dodefinetypesetting[#1][#2][#3]%
- {\doifsomething{#1}{\setvalue{\??tz#1}{\dodotypesetfile{#2}{#3}}}}
-
-\def\dotypesetfile[#1][#2][#3]%
- {\executeifdefined{\??tz#1}\gobbletwoarguments{#2}{#3}}
-
-\def\dodotypesetfile#1#2#3#4% args settings file settings
- {\doifmode{*\v!first}{\executesystemcommand{texmfstart texexec.pl --batch --pdf #1 #3}}%
- \doglobal\beforesplitstring#3\at.\to\typesetfilename
- \externalfigure[\typesetfilename.pdf][#2,#4]}
-
-\setupexternalfigures
- [\c!option=,
- \c!object=\v!yes, % we only check for no
- \c!reset=\v!no,
- \c!maxwidth=\@@efwidth,
- \c!maxheight=\@@efheight,
- \c!bodyfont=\bodyfontsize,
- \c!directory=,
- \c!file=\f!utilityfilename.\f!figureextension,
- \c!radius=.5\bodyfontsize,
- \c!corner=\v!rectangular,
- \c!frame=\v!off,
- \c!background=, % new
- \c!splitcolor=\s!white,
- \c!conversion=,
- \c!prefix=,
- \c!cache=,
-% \c!grid=,
- \c!equalwidth=,
- \c!equalheight=,
- \c!location={\v!local,\v!global}]
-
-\setupexternalfigures
- [\c!frames=\v!off,
- \c!ymax=24,
- \c!xmax=]
-
-\useexternalfigure
- [buffer] [\jobname] [\c!type=\v!buffer,\c!object=\v!no]
-
-\protect \endinput
-
-% alternative for positioning
-
-% \definelayer[figure][width=\overlaywidth,height=\overlayheight]
-% \defineoverlay[figure][{\directsetup{figure}\tightlayer[figure]}]
-
-% \setupcolors[state=start]
-
-% \starttext
-
-% \startsetups figure
-% \setlayerframed[figure][preset=rightbottom,x=.25\layerwidth,y=.25\layerheight]{HERE}
-% \setlayerframed[figure][preset=leftbottom, x=.15\layerwidth,y=.35\layerheight]{THERE}
-% \stopsetups
-
-% \externalfigure[cow][background={foreground,figure},width=4cm,height=8cm]
-
-% \startsetups figure
-% \setlayerframed[figure][preset=righttop,x=.25\layerwidth,y=.25\layerheight]{MORE}
-% \setlayerframed[figure][preset=middle,foregroundcolor=green]{EVEN MORE}
-% \stopsetups
-
-% \externalfigure[cow][background={foreground,figure},width=14cm,height=2cm]
-
-% \defineexternalfigure[whatever][background={foreground,figure}]
-
-% \startsetups figure
-% \setlayerframed[figure][preset=righttop,x=.25\layerwidth,y=.25\layerheight]{\red MORE}
-% \setlayerframed[figure][preset=middle,foregroundcolor=green]{EVEN MORE}
-% \stopsetups
-
-% \externalfigure[cow][whatever][width=14cm,height=4cm]
-
-% \stoptext
-
diff --git a/Master/texmf-dist/tex/context/base/mkii/grph-inc.mkii b/Master/texmf-dist/tex/context/base/mkii/grph-inc.mkii
deleted file mode 100644
index 33f11a2bc8f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/grph-inc.mkii
+++ /dev/null
@@ -1,1243 +0,0 @@
-%D \module
-%D [ file=grph-inc, % moved from core-fig
-%D version=2006.08.26, % overhaul of 1997.03.31
-%D title=\CONTEXT\ Graphic Macros,
-%D subtitle=Figure Inclusion,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Graphic Macros / Figure Inclusion}
-
-% todo: directory : system -> \allinputpaths (so that we can \usesubpath)
-
-%D This is a reimplementation of the original module, which
-%D over time had evolved into a pretty complex whole. This
-%D was partly due to the fact that we needed to handle many
-%D formats, deal with substitute graphics, handle fallbacks
-%D and driver specifics (objects), etc. In the meantime we
-%D have more clever backends, moved away from texutil to
-%D rlxtools, can use runtime or betweentime runs etc. Also,
-%D more memory permits a cleaner implementation. Time to
-%D move on. We can now also assume that scaling is available.
-%D
-%D Another mess that can go is the llx/lly handling since
-%D drivers now automatically can determine such things.
-
-%D Messages 3 and 5 needs to be translated!
-
-\unprotect
-
-%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
-%D specify at the user level either width and|/|or height, scale,
-%D or a factor related to the current document bodyfont size.
-%D Even better: we can also specify isometric scaling and
-%D automatically let \CONTEXT\ calculate the maximum possible
-%D dimensions. Whatever we calculate, the results will come
-%D available in the next registers.
-
-\letempty \@@DriverImageBox
-\letempty \@@DriverImageOptions
-\letempty \@@DriverImageWidth
-\letempty \@@DriverImageHeight
-\letempty \@@DriverImageFile
-\letempty \@@DriverImageLabel
-\letempty \@@DriverImageType
-\letempty \@@DriverImageMethod
-\letempty \@@DriverImagePage
-
-%D Because looking for dimensions can take many steps (locating
-%D the figure, maybe on more directories, scanning the figure
-%D on dimension, or when not found, trying to find them in the
-%D utility file, and again when not found, trying to generate
-%D such a file, and, as a last resort, trying to use the
-%D dimensions. Now when things do not work out the way we want,
-%D we can set a switch and get some information on what takes
-%D place.
-
-\newif\iftraceexternalfigures
-
-\let\traceexternalfigures\traceexternalfigurestrue
-
-\def\doshowfigurestate
- {\iftraceexternalfigures
- \expandafter\writestatus\expandafter\m!figures
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\def\doshowfiguremessage
- {\iftraceexternalfigures
- \expandafter\gobbletwoarguments
- \else
- \expandafter\showmessage\expandafter\m!figures
- \fi}
-
-%D Another switch tells \CONTEXT\ to locate and calculate a
-%D figure, but does not actually insert it. Especially when we
-%D use \PDFTEX\ this saves a lot of time on trialruns. (Keep
-%D in mind that \PDFTEX\ is both a \TEX\ pre|| and postprocessor.)
-
-\newif\ifskipexternalfigures % can be set elsewhere
-
-% \newif\ifrunutilityfile
-% \newif\ifconsultutilityfile
-%
-% Let's save two hash entries:
-
-\let\runutilityfiletrue \relax \let\runutilityfilefalse \relax
-\let\consultutilityfiletrue\relax \let\consultutilityfilefalse\relax
-
-%D Intermediate, private.
-
-\newdimen\determinedfigurewidth
-\newdimen\determinedfigureheight
-
-\let\naturalfigureheight\!!zeropoint
-\let\naturalfigurewidth \!!zeropoint
-
-\def\defaultfigurewidth {8\lineheight}
-\def\defaultfigureheight{6\lineheight}
-
-\def\defaultfigurepathsignal{(\v!default)}
-
-\def\checknaturalfiguredimensions
- {\edef\naturalfigurewidth{\the\dimexpr\ifzeropt\determinedfigurewidth
- \defaultfigurewidth \else\determinedfigurewidth \fi\relax}%
- \edef\naturalfigureheight{\the\dimexpr\ifzeropt\determinedfigureheight
- \defaultfigureheight\else\determinedfigureheight\fi\relax}}
-
-%D Locating figures. Dilemma: we do support eps and svg parsing but drivers
-%D don't always support it.
-
-\def\figuretypes{\c!mps,\c!pdf,\c!eps,\c!svg,\c!svg z,\c!png,\c!tif,jb2,\c!jpg}
-
-\def\supportedfiguretypes{\figuretypes}
-
-\def\checksupportedfiguretypes
- {\begingroup
- \global\let\supportedfiguretypes\empty
- \def\docommand##1%
- {\doiffileinsertionsupportedelse{##1}
- {\doglobal\addtocommalist{##1}\supportedfiguretypes}
- \donothing}%
- \processcommacommand[\figuretypes]\docommand
- \gdef\checksupportedfiguretypes{\let\figuretypes\supportedfiguretypes}%
- \endgroup
- \checksupportedfiguretypes}
-
-%D The next box is used to store the graphic. It's globally assigned.
-
-\newbox\foundexternalfigure
-
-\chardef\figurestatus\zerocount % nothing found
-
-\def\noffigurepages{\nofinsertpages}
-
-%D Variables.
-
-\newtoks\everyexternalfigureresets
-
-\def\resetfigurevariables
- {\the\everyexternalfigureresets}
-
-%D Example usage:
-
-\appendtoks
- \global\let\externalfigurelog\empty
-\to\everyexternalfigureresets
-
-%D Intermediate, private
-
-\def\resetprivatefigurevariables
- {\let \wantedfigurefull \empty
- \let \wantedfigurepath \empty
- \let \wantedfigurename \empty
- \let \wantedfigurebase \empty
- \let \wantedfiguretype \empty
- \let \wantedfigurefullname \empty
- \let \wantedfiguretypespec \empty
- \let \wantedfiguremethod \empty
- \let \wantedfigurepage \empty
- \let \wantedfigureoptions \empty
- \let \wantedfigureconversion\empty
- \let \wantedfigureprefix \empty
- \let \wantedfiguretypelist \figuretypes
- \let \figurepathlist \empty
- \chardef \figurestatus \zerocount
- \let \expandedfigurename \empty
- \global\let \analyzedfigurewidth \!!zeropoint % set by indentifying code
- \global\let \analyzedfigureheight \!!zeropoint % set by indentifying code
- \global\setbox\foundexternalfigure \emptybox
- \def \frozenfigurestamp {\externalfigurestamp}} % no edef
-
-\resetprivatefigurevariables
-
-\appendtoks
- \resetprivatefigurevariables
-\to\everyexternalfigureresets
-
-%D Private/public.
-
-\def\resetpublicfigurevariables
- {\let\figurewidth \!!zeropoint
- \let\figureheight \!!zeropoint
- \let\figurenaturalwidth \!!zeropoint
- \let\figurenaturalheight \!!zeropoint
- \let\figurelabel \empty
- \let\figurefileoriginal \empty
- \let\figurefileoptions \empty
- \let\figurefilename \empty
- \let\figurefiletype \empty
- \let\figurefilepage \!!zerocount
- \let\figurefileconversion\empty
- \let\figurefileprefix \empty
- \let\figurefilepath \empty
- \let\figurefilecache \empty}
-
-\resetpublicfigurevariables
-
-\appendtoks
- \resetpublicfigurevariables
-\to\everyexternalfigureresets
-
-\newcounter\figurenestinglevel
-
-\def\pushpublicfigurevariables
- {\ifcase\figurenestinglevel\else
- \doshowfigurestate{variables : push}%
- \globalpushmacro\figurewidth
- \globalpushmacro\figureheight
- \globalpushmacro\figurenaturalwidth
- \globalpushmacro\figurenaturalheight
- \globalpushmacro\figurelabel
- \globalpushmacro\figurefileoriginal
- \globalpushmacro\figurefileoptions
- \globalpushmacro\figurefilename
- \globalpushmacro\figurefiletype
- \globalpushmacro\figurefilepage
- \globalpushmacro\figurefileconversion
- \globalpushmacro\figurefileprefix
- \globalpushmacro\figurefilepath
- \globalpushmacro\figurefilecache
- \fi}
-
-\def\poppublicfigurevariables
- {\ifcase\figurenestinglevel\else
- \doshowfigurestate{variables : pop}%
- \globalpopmacro\figurefilecache
- \globalpopmacro\figurefilepath
- \globalpopmacro\figurefileprefix
- \globalpopmacro\figurefileconversion
- \globalpopmacro\figurefilepage
- \globalpopmacro\figurefiletype
- \globalpopmacro\figurefilename
- \globalpopmacro\figurefileoptions
- \globalpopmacro\figurefileoriginal
- \globalpopmacro\figurelabel
- \globalpopmacro\figurenaturalheight
- \globalpopmacro\figurenaturalwidth
- \globalpopmacro\figureheight
- \globalpopmacro\figurewidth
- \fi}
-
-\def\setpublicfigurevariables % todo: type vs typespec
- {\xdef\figurewidth {\the\wd\foundexternalfigure}%
- \xdef\figureheight {\the\ht\foundexternalfigure}%
- \xdef\figurenaturalwidth {\naturalfigurewidth}%
- \xdef\figurenaturalheight {\naturalfigureheight}%
- \xdef\figurelabel {\wantedfigurelabel}%
- \xdef\figurefilepath {\wantedfigurepath}%
- \xdef\figurefilename {\wantedfigurename}%
- \xdef\figurefiletype {\wantedfiguretypespec}%
- \xdef\figurefilepage {\wantedfigurepage}%
- \xdef\figurefileoptions {\wantedfigureoptions}%
- \xdef\figurefileconversion{\wantedfigureconversion}%
- \xdef\figurefilecache {\wantedconversioncache}%
- \xdef\figurefileprefix {\wantedconversionprefix}%
- \xdef\figurefileoriginal {\wantedconversionname}%
- \xdef\figurefullname {\wantedfigurepath/\wantedfigurename.\wantedfiguretypespec}%
- \ifcase\figurestatus
- \let\figurefiletype\empty % ?
- \fi}
-
-\def\setpublicfigurescalevariables
- {\edef\figurescalewidth {\finalscaleboxwidth }%
- \edef\figurescaleheight {\finalscaleboxheight}%
- \edef\figurescalexscale {\finalscaleboxxscale}%
- \edef\figurescaleyscale {\finalscaleboxyscale}}
-
-\def\resetpublicfigurescalevariables
- {\let\figurescalewidth \!!zeropoint
- \let\figurescaleheight \!!zeropoint
- \let\figurescalexscale \!!plusone
- \let\figurescaleyscale \!!plusone}
-
-\resetpublicfigurescalevariables
-
-\appendtoks
- \resetpublicfigurescalevariables
-\to \everyexternalfigureresets
-
-%D The next one is for instance used in symbols. Since
-%D we only need to reset some parameters, we can
-%D better use the fast alternative:
-%D
-%D \starttyping
-%D \def\resetexternalfigures
-%D {\getparameters[\??ef]
-%D [\c!option=,\c!maxwidth=,\c!maxheight=,
-%D \c!foregroundcolor=,\c!color=,
-%D %\c!conversion=,\c!prefix=,\c!splitcolor=,
-%D \c!frame=\v!off,\c!background=]}
-%D \stoptyping
-%D
-%D This one dropped the runtime of the \MAPS\ bibliography
-%D from over 110 seconds down to less than 105 seconds. The
-%D tremendously faster (but uglier) implementation is:
-
-\def\resetexternalfigures
- {\let\@@efoption \empty % \let\@@efprefix\empty
- \let\@@efmaxwidth \empty % \let\@@efcache \empty
- \let\@@efmaxheight \empty % \let\@@efframe \v!off
- \let\@@efforegroundcolor\empty
- \let\@@efcolor \empty
- \let\@@efconversion \empty
- \let\@@efbackground \empty}
-
-%D The following code will move:
-
-\appendtoks \resetexternalfigures \to \everyoverlay
-\appendtoks \resetexternalfigures \to \everybeforepagebody % not really needed
-%appendtoks \resetexternalfigures \to \everysymbol
-
-%D We need this one for bookkeeping:
-
-\newcounter\forcedMPSobject % better something \every<type>
-
-%D Features:
-
-% converted -> prefix, suffix
-% alternative -> other suffix
-% buffer -> prefix
-
-%D Still messy:
-
-\newtoks\everyfiguretypepresets
-
-\def\presetfiguretypeprocessing
- {\the\everyfiguretypepresets}
-
-\def\presetspecialfigure#1%
- {\doif\wantedfiguretype{#1}%
- {\let\@@efobject\v!no
- \let\@@efpreset\v!no
- \ifx\@@efwidth \empty\def\@@efwidth {\defaultfigurewidth }\fi
- \ifx\@@efheight\empty\def\@@efheight{\defaultfigureheight}\fi}}
-
-\appendtoks
- \presetspecialfigure\c!mov
- \presetspecialfigure\c!avi
-\to \everyfiguretypepresets
-
-\def\checkformpsfigurefiles % to be checked
- {\doif\wantedfigurename{mprun}
- {\doshowfigurestate{type check : forcing mps (mprun)}%
- \doifnotinstring{^\bufferprefix}{^\wantedfigurename}
- {\edef\wantedfigurename{\bufferprefix\wantedfigurename}}%
- \let\wantedfiguremethod \c!mps
- \let\wantedfiguretypespec\c!mps}%
- \doifnumberelse\wantedfiguretype
- {\doshowfigurestate{type check : forcing mps (number)}%
- \let\wantedfiguremethod \c!mps
- \let\wantedfiguretypespec\c!mps}
- \donothing
- \doif\wantedfiguretypespec\c!mps
- {\let\wantedfiguretypelist\wantedfiguretypespec
- \ifcase\EPSspecial\else\ifinobject\else
- \doglobal\increment\forcedMPSobject
- \edef\externalfigurestamp{\c!mps::\forcedMPSobject}%
- \let\@@efobject\v!yes
- \fi\fi}}
-
-\appendtoks
- \checkformpsfigurefiles
-\to \everyfiguretypepresets
-
-\def\checkfortexfigurefiles % to be checked (brrr: c!) / brrr: eftype
- {\doifinset\wantedfiguretype{\c!tex,\c!tmp}
- {\let\wantedfiguretypespec \wantedfiguretype}%
- \doifinset\wantedfiguretypespec{\c!tex,\c!tmp,\v!buffer}
- {\doshowfigurestate{type check : forcing tex (\wantedfiguretypespec)}%
- \let\wantedfiguretypelist\wantedfiguretypespec
- \let\wantedfiguremethod \c!tex
- \let\@@efobject\v!no
- \doifnothing\wantedfiguretype{\let\wantedfiguretype\c!tmp}%
- % there can be a non buffer \jobname.tmp (made by texexec)
- \doifnotinstring{^\bufferprefix}{^\wantedfigurename}
- {\edef\wantedfigurename{\bufferprefix\wantedfigurename}}}}
-
-\appendtoks
- \checkfortexfigurefiles
-\to \everyfiguretypepresets
-
-\def\checkforunknownfigurefiles
- {\doifnothing\wantedfiguretype
- {\dogetcommacommandelement\plusone\from\@@eftype\to\commalistelement
- \edef\wantedfigurefullname{\wantedfigurename.\commalistelement}}}
-
-\appendtoks
- \checkforunknownfigurefiles
-\to \everyfiguretypepresets
-
-% note * : this is needed because reusable graphics
-% combined with funny page aspect aspect ratio's can lead to
-% strange side effects of preceding factor=max specs. This
-% surfaced in the metafun manual, where the two side by
-% side clipped cow heads [the second one was a reused object]
-% where the second one inherited some characteristics from
-% the factor=max one some 30 pages back. Sigh.
-
-\chardef\splitexternalfigure\zerocount % 0 nosplit 1 split/yes 2 split/no
-
-\def\checkfigurecolorsettings
- {% seperation, seldom used
- \doifseparatingcolorselse
- {\let\@@efforegroundcolor\empty
- \doifelsenothing\@@efsplit
- {\chardef\splitexternalfigure\zerocount}
- {\doifcolorchannelelse\@@efsplit
- {\let\@@efobject\v!no % why?
- \chardef\splitexternalfigure\plusone}
- {\chardef\splitexternalfigure\plustwo}}}
- {\chardef\splitexternalfigure\zerocount}%
- % fake color in gray bitmaps, assumes that
- % a transparent color is used
- \doifsomething\@@efforegroundcolor
- {\def\@@efbackground{\v!foreground,\v!color}%
- \def\@@efbackgroundcolor{\@@efforegroundcolor}}%
- \doifsomething\@@efcolor
- {\doifcolorelse\@@efcolor
- {\checkpredefinedcolor[\@@efcolor]%
- \doregisterfigurecolor\@@efcolor}}%
- \donothing}
-
-\def\setextrafiguredriveroptions
- {\let\@@DriverImageOptions\empty
- \doifsomething\@@efpage {\addtocommalist\@@efpage \@@DriverImageOptions}%
- \doif \@@efpreview \v!yes{\addtocommalist\v!preview \@@DriverImageOptions}%
- \doif \@@efcontrols\v!yes{\addtocommalist\v!controls\@@DriverImageOptions}%
- \doif \@@efrepeat \v!yes{\addtocommalist\v!repeat \@@DriverImageOptions}%
- \doifinsetelse\@@efsize{mediabox,cropbox,artbox,bleedbox,trimbox}
- {\let \@@DriverImageBox \@@efsize}%
- {\doifinsetelse\@@efsize{media,crop,art,bleed,trim}
- {\edef\@@DriverImageBox{\@@efsize box}}%
- {\let \@@DriverImageBox \empty}}%
- \let\wantedfigureoptions\@@DriverImageOptions}
-
-\def\checkiffigureobjectpresent
- {\doifnot\@@efobject\v!no
- {\doifobjectssupportedelse
- {\doifobjectfoundelse{FIG}\externalfigurestamp
- {\doshowfigurestate{object found : \externalfigurestamp}%
- \getobjectdimensions{FIG}\externalfigurestamp
- \edef\frozenfigurestamp{\externalfigurestamp}%
- \xdef\analyzedfigurewidth {\the\dimexpr\objectwidth \relax}%
- \xdef\analyzedfigureheight{\the\dimexpr\objectheight\relax}%
- \setanalyzedfiguredimensions\plusone}
- {\doshowfigurestate{unknown object: \externalfigurestamp}}}
- {}}}
-
-\def\checkifknownfigureobjectpresent
- {\ifx\wantedfiguretype\empty
- \let\savedwantedfiguretype\wantedfiguretype
- \def\docommand##1%
- {\ifcase\figurestatus
- \edef\wantedfiguretype{##1}%
- \checkiffigureobjectpresent
- \fi}%
- \processcommacommand[\figuretypes]\docommand
- \ifcase\figurestatus
- \let\wantedfiguretype\savedwantedfiguretype
- \fi
- \fi}
-
-\def\checkforfigurefile
- {\ifcase\figurestatus
- \ifconditional\externalfigureflush
- \analyzefigurefiles
- \fi
- \fi}
-
-\def\externalfigurestamp % needs \edef'd macros!
- {\ifx\wantedfigurepath\empty\else
- -\wantedfigurepath
- \fi
- \wantedfigurename
- \ifx\wantedfiguretype\empty\else
- \ifx\wantedfiguretype\s!unknown\else
- -\wantedfiguretype
- \fi
- \fi
- \ifx\wantedfiguretypespec\empty\else
- \ifx\wantedfiguretypespec\s!unknown\else
- \ifx\wantedfiguretypespec\wantedfiguretype\else
- -\wantedfiguretypespec
- \fi
- \fi
- \fi
- \ifnum\wantedfigurepage>\zeropoint
- -\wantedfigurepage
- \fi}
-
-\def\checkfigurerenderingoptions
- {\ifcase\figurestatus
- \let\@@efframe\v!on
- \fi
- \doif\@@exoption\v!frame
- {\let\@@efframe\v!on}%
- \doif\@@exoption\v!empty
- {\skipexternalfigurestrue
- \let\@@efframe\v!off}}
-
-\newtoks\externalfigurepostprocessors
-
-\def\resetfigureusersettings
- {\let\@@eftype \s!unknown \let\@@efmethod \empty \let\@@efpreset\v!yes
- \let\@@eflabel \empty \let\@@efsize \empty \let\@@efpage \!!zerocount
- \let\@@efobject \@@exobject \let\@@efdisplay \empty
- \let\@@efsplit \empty \let\@@efcolor \empty \let\@@efsymbol\v!no
- \let\@@efcontrols \v!no \let\@@efpreview \v!no \let\@@efrepeat\v!no
- \let\@@efhfactor \empty \let\@@efwfactor \empty \let\@@effactor\empty
- \let\@@efmaxwidth \@@exmaxwidth \let\@@efmaxheight\@@exmaxheight
- \let\@@efxscale \empty \let\@@efyscale \empty \let\@@efscale \empty
- \let\@@efsx \!!plusone \let\@@efsy \!!plusone
- \let\@@efwidth \empty \let\@@efheight \empty
- \let\@@eflines \empty \let\@@efgrid \empty
- \let\@@efconversion\@@exconversion \let\@@efprefix \@@exprefix \let\@@efcache \@@excache}
-
-%D Types and Methods are a bit history. Anyhow, user scan use the
-%D type to force the handler. So, what to do with the method. We can
-%D use that one to force a handler with a given suffix, so when no
-%D type is given, but a suffix is part of the name, the method will
-%D determine the handler.
-
-\def\checkfigureusersettings
- {\doif\@@efreset\v!yes\resetexternalfigures
- \doifelsenothing\@@eflabel
- {\doifnothing\wantedfigurelabel{\let\wantedfigurelabel\wantedfigurename}}%
- {\let\wantedfigurelabel\@@eflabel}%
- \doifsomething\@@eftype
- {\doifnot\@@eftype\s!unknown
- {\edef\wantedfiguretypespec{\@@eftype}%
- \let\wantedfiguremethod\wantedfiguretypespec}}%
- \doifnothing\wantedfigurepage % can be set by plug in
- {\let\wantedfigurepage\@@efpage}%
- \doif\wantedfigurepage\empty
- {\let\wantedfigurepage\!!zerocount}% 0 is signal !
- \doifsomething\@@efmethod % rather untested misusage of the remapper
- {\doifsomething\wantedfiguretype
- {\definegraphictypesynonym[\wantedfiguretype][\@@method]}}}
-
-% #1 is now obsolete
-
-\def\calculateexternalfigure[#1][#2][#3][#4][#5][#6]% \cmd label filename parent_id preset current
- {\doshowfigurestate{begin}%
- \dontcomplain
- % let's limit the search, which means that e.g. svg has to be given explicitly
- \checksupportedfiguretypes
- % recently added; we presume local use
- \restorecatcodes
- % collected resets (token list)
- \resetfigurevariables
-\resetwantedconversionvariables % new here
- % analyze filename and set wanted variables
- \analyzefigurefilename{#3}{#2}%
- \doanalyzefiguredimensionsfromfile
- % handle user settings
- \resetfigureusersettings
- \dosetefparameters{#4}{#5}{#6}%
- \checkfigureusersettings
- \checkfigurecolorsettings
- % adapt settings based on suffix and/or type
- \presetfiguretypeprocessing
- % now we really start
- \checkiffigureobjectpresent % first guess, we may not yet know the typespec
- \checkifknownfigureobjectpresent
- \checkforfigurefilepresence
- \checkiffigureobjectpresent % to be sure, in case we now know the typespec
- \checkfigurerenderingoptions % was later, moved here
- \checknaturalfiguredimensions % inherit from global values and/or fallbacks
- % by now we know what we're dealing with (put in box and scale)
- \setextrafiguredriveroptions
- \prepackageexternalfigureobject
- % set public variables in case postprocessing needs them
- \pushpublicfigurevariables
- \setpublicfigurevariables
- \setpublicfigureconversionvariables
- \setpublicfigurescalevariables
- % package final graphic, only now we can apply backgrounds and such
- \doglobal\increment\figurenestinglevel
- \finishexternalfigure
- \doglobal\decrement\figurenestinglevel
- % restore variables
- \poppublicfigurevariables
- \doshowfigurestate{end}}
-
-\def\checkforfigurefilepresence
- {\checkforconvertedfigure
- \checkforfigurefile}
-
-%D Figure objects.
-
-\def\setfigureobject
- {\doshowfigurestate{object set : \externalfigurestamp}%
- \setobject{FIG}\externalfigurestamp}
-
-% \def\getfigureobject
-% {\doshowfigurestate{object used : \externalfigurestamp}%
-% \getobject{FIG}\externalfigurestamp}
-
-\def\getfigureobject
- {\doshowfigurestate{object used : \frozenfigurestamp}%
- \getobject{FIG}\frozenfigurestamp}
-
-\def\prepackageexternalfigureobject
- {\ifcase\figurestatus
- \doshowfiguremessage1\expandedfigurename
- \doshowfigurestate{state : figure not found (\expandedfigurename)}%
- \global\setbox\foundexternalfigure\naturalvbox
- {\doscalebox\??ef{\blackrule[\c!width=\naturalfigurewidth,\c!height=\naturalfigureheight]}}%
- \xdef\noffigurepages{0}%
- \or
- \doshowfiguremessage8\expandedfigurename
- \doshowfigurestate{state : reusing existing figure}%
- \global\setbox\foundexternalfigure\naturalvbox
- {\doscalebox\??ef{\dowithfigure{\getfigureobject}}}%
- \xdef\noffigurepages{\number\getvalue{\externalfigurestamp\c!n}}%
- \or
- \doshowfiguremessage2\expandedfigurename
- \doshowfigurestate{state : using special figure}%
- \setbox\scratchbox\naturalvbox % make a dummy
- {\doscalebox\??ef{\blackrule[\c!width=\naturalfigurewidth,\c!height=\naturalfigureheight]}}%
- \global\setbox\foundexternalfigure\naturalvbox to \finalscaleboxheight
- {\vfill
- \hsize\finalscaleboxwidth
- \dowithfigure{\insertscaledfiguredriverdata}}%
- \xdef\noffigurepages{\number\nofinsertpages}%
- \else
- \ifdim\naturalfigurewidth>\zeropoint
- \ifnum\figurestatus>\!!ten\relax
- \doshowfiguremessage3\expandedfigurename
- \else
- \doshowfiguremessage4\expandedfigurename
- \fi
- \else
- \doshowfiguremessage5\expandedfigurename
- \fi
- \doshowfigurestate{state : using found figure}% 3=self 4=rlx
- \doifelse\@@efobject\v!no
- {\donefalse}
- {\doifobjectssupportedelse\donetrue\donefalse}%
- \ifdone
- % make an object and use it
- \packageexternalfigureobject
- \setfigureobject\vbox{\box\foundexternalfigure}%
- \setxvalue{\externalfigurestamp\c!n}{\number\nofinsertpages}%
- \global\setbox\foundexternalfigure\naturalvbox
- {\doscalebox\??ef{\dowithfigure{\getfigureobject}}}%
- \xdef\noffigurepages{\number\getvalue{\externalfigurestamp\c!n}}%
- \else
- % maybe a tex figure
- \global\setbox\foundexternalfigure\naturalvbox
- {\doscalebox\??ef{\dowithfigure{\box\foundexternalfigure}}}%
- \xdef\noffigurepages{\number\nofinsertpages}%
- \fi
- \fi
- \wd\foundexternalfigure\finalscaleboxwidth
- \ht\foundexternalfigure\finalscaleboxheight
- \global\let\lastfigureobjectname\externalfigurestamp
- \doresetobjects} % clean up driver left overs
-
-\def\packageexternalfigureobject
- {\global\setbox\foundexternalfigure\vbox to \naturalfigureheight
- {\vfill
- \ifdim\wd\foundexternalfigure=\zeropoint
- \setextrafiguredriveroptions
- \insertunscaledfiguredriverdata
- \else\ifskipexternalfigures
- \ruledhbox{\backgroundline[\@@efsplitcolor]{\fakebox\foundexternalfigure}}%
- \else
- \box\foundexternalfigure
- \fi\fi}%
- \wd\foundexternalfigure\naturalfigurewidth
- \ht\foundexternalfigure\naturalfigureheight}
-
-\def\finishexternalfigure % here we use \figurevariables
- {\global\setbox\foundexternalfigure\vbox
- {\forgetall
- \ifcase\figurestatus
- \resetsystemmode\v!figure % todo, also: \v!resource
- \else
- \setsystemmode \v!figure % todo, also: \v!resource
- \fi
- \ifconditional\externalfigureflush
- \ifconditional\externalfigurelevel % probably background
- \ifskipexternalfigures
- % nothing
- \fakebox\foundexternalfigure
- \else\ifcase\figurestatus
- % nothing
- \else\ifnum\splitexternalfigure=\plustwo\else
- \the\externalfigurepostprocessors
- \box\foundexternalfigure
- \fi\fi\fi
- \else
- \iftrialtypesetting \else \feedbackexternalfigure \fi
- \settrue\externalfigurelevel
- \ifskipexternalfigures
- \ifcase\figurestatus
- \externalfigurereplacement\figurelabel\figurefilename{unknown}%
- \else
- \externalfigurereplacement\figurelabel\figurefullname{skipped}%
- \fi
- \else\ifcase\figurestatus
- \externalfigurereplacement\figurelabel\figurefilename{unknown}%
- \else\ifnum\splitexternalfigure=\plustwo
- \backgroundline[\@@efsplitcolor]{\fakebox\foundexternalfigure}%
- \else
- \the\externalfigurepostprocessors
- \doifelse\@@efreset\v!yes
- {\wd\foundexternalfigure\figurewidth
- \ht\foundexternalfigure\figureheight
- \dp\foundexternalfigure\zeropoint
- \box\foundexternalfigure}
- {\localframed % should also be applied to high res !
- [\??ef]
- [\c!offset=\v!overlay,
- \c!width=\figurewidth,
- \c!height=\figureheight]
- {\vfilll
- \ifnum\splitexternalfigure=\plusone
- % hm, eigenlijk in dit geval achtergrondkleur
- \hidesplitcolorfalse % really needed
- \backgroundline[\@@efsplitcolor]{\box\foundexternalfigure}%
- \else % = 0, no split mode
- \box\foundexternalfigure
- \fi}}%
- \fi\fi\fi
- \fi
- \else
- % maybe also \the\externalfigurepostprocessors
- \iftrialtypesetting \else \feedbackexternalfigure \fi
- \fi}}
-
-\def\insertfiguredriverdata#1#2%
- {\lowercasestring\wantedfiguretypespec\to\lcwantedfiguretypespec
- \lowercasestring\wantedfiguremethod \to\lcwantedfiguremethod
- \edef\@@DriverImageWidth {\the\dimexpr#1\relax}%
- \edef\@@DriverImageHeight{\the\dimexpr#2\relax}%
- \let \@@DriverImageFile \wantedfigurefullname
- \let \@@DriverImageType \lcwantedfiguretypespec
- \let \@@DriverImageMethod \lcwantedfiguremethod
- \let \@@DriverImageLabel \wantedfigurelabel
- \let \@@DriverImagePage \wantedfigurepage
- \doinsertfile}
-
-\def\insertunscaledfiguredriverdata
- {\insertfiguredriverdata\naturalfigurewidth\naturalfigureheight}
-
-\def\insertscaledfiguredriverdata
- {\insertfiguredriverdata\finalscaleboxwidth\finalscaleboxheight}
-
-\ifx\externalfigurereplacement\undefined\let\externalfigurereplacement\gobblethreearguments\fi
-\ifx\externalfigureplaceholder\undefined\let\externalfigureplaceholder\gobblethreearguments\fi
-
-\def\registerexternalfigure % no placement, handy for preprocessing
- {\dotripleempty\doregisterexternalfigure}
-
-\def\doregisterexternalfigure[#1][#2][#3]%
- {\bgroup
- \setfalse\externalfigureflush
- \externalfigure[#1][#2][#3]% or \doexternalfigure
- \egroup}
-
-\let\feedbackexternalfigure\relax % \gobblefourarguments
-\let\dowithfigure \relax
-
-%D Conversion stuff:
-
-\newcount\nofconversionfigures
-
-\def\resetwantedconversionvariables
- {\let\wantedconversionpath \empty % these point to the to be converted graphic
- \let\wantedconversionname \empty
- \let\wantedconversiontype \empty
- \let\wantedconversioncache \empty
- \let\wantedconversionprefix\empty}
-
-\resetwantedconversionvariables
-
-\def\checkforconvertedfigure
- {\ifcase\figurestatus
- \resetwantedconversionvariables
- \doifsomething\@@efconversion
- {\global\advance\nofconversionfigures\plusone
- \doshowfigurestate{n-of-conversions : \number\nofconversionfigures}%
- \edef\wantedfigureconversion{\@@efconversion}%
- \edef\wantedconversioncache {\@@efcache}%
- \edef\wantedconversionprefix{\@@efprefix}%
- \doshowfigurestate{checking paths : \figurepathlist}%
- \processcommacommand[\figurepathlist]\dolocatefigureconversionfile
- \ifcase\figurestatus
- \doshowfigurestate{remark : no conversion file found}%
- \else
- \doshowfigurestate{remark : conversion file found}%
- \chardef\figurestatus\zerocount
- \fi
- \let\wantedconversionname\wantedfigurename
- \edef\wantedfigurename{\wantedconversionprefix\wantedfigurename}%
- \ifx\wantedconversioncache\empty
- \let \wantedfigurepath \wantedconversionpath
- \else
- \checkfilename\@@efcache
- \ifnum\kindoffile=\plusone
- \let\wantedfigurepath\@@efcache % root related path
- \else % brrr
- \edef\wantedfigurepath{\@@efcache,\wantedconversionpath/\@@efcache}% in case of explicit paths, what a mess
- \fi
- \fi
- \let\wantedfiguretype \empty
- \let\wantedfiguretypelist\figuretypes % hm, why needed
- \ifx\figurepathlist\empty
- \let\figurepathlist\wantedfigurepath
- \else
- \edef\figurepathlist{\wantedfigurepath,\figurepathlist}%
- \fi
- \doshowfigurestate{conversion path : \wantedconversionpath}%
- \doshowfigurestate{conversion name : \wantedconversionname}}%
- \doshowfigurestate{new figure path : \wantedfigurepath}%
- \fi}
-
-\def\dolocatefigureconversionfile#1%
- {\ifcase\figurestatus
- \setwantedfigurefullname{#1}\wantedfigurename\wantedfiguretype
- \doshowfigurestate{locating original : \wantedfigurefullname}%
- \doiffile\wantedfigurefullname
- {\def\wantedconversionpath{#1}%
- \let\wantedconversionname\wantedfigurename
- \let\wantedconversiontype\wantedfiguretype
- \chardef\figurestatus\plusfive}%
- \fi}
-
-\def\setpublicfigureconversionvariables % also prefix, cache
- {\doifsomething\@@efconversion
- {\doifmode{\systemmodeprefix\v!first}
- {\let\figurefilepath\wantedconversionpath
- \let\figurefilename\wantedconversionname
- \let\figurefiletype\wantedconversiontype
- \let\figurefileconversion\wantedfigureconversion
- \def\figurefullname
- {\ifx\wantedconversionpath\empty\else\wantedconversionpath/\fi
- \wantedconversionname
- \ifx\wantedconversiontype\empty\else.\wantedconversiontype\fi}}}}
-
-%D In \PDF\ one can specify an alternative graphic. This means
-%D that for instance a low resolution graphic can be used for
-%D viewing and a high res one for printing. Because this
-%D feature depends much on the driver, here we only take care
-%D of perparations. It is up to the special driver to handle
-%D the inclusion. The driver routines can change the content of
-%D box \type {\foundexternalfigure} if suitable.
-%D
-%D One complication is for instance that an alternative may
-%D not itself have an alternative, and these kind of situations
-%D are best handled by the driver.
-
-\let\lastfigureobjectname\empty
-
-%D The next macro does not work well with figure bases yet.
-
-\def\calculateexternalscreenfigure[#1][#2][#3][#4][#5][#6]%
- {\ifx\@@efdisplay\empty\else
- \doifnot\@@efobject\v!no
- {\doifobjectssupportedelse
- {\doifspecialavailableelse\doregisterfigure
- {\doshowfigurestate{screen alternative : start}%
- \bgroup
- \dosetefparameters{#4}{#5}{#6}%
- \doregisterfigure{FIG}{\lastfigureobjectname}%
- \let\@@ef@@scherm\@@efdisplay
- \calculateexternalfigure[#1][\@@ef@@scherm][\@@ef@@scherm][#4,\c!display=][#5][#6]%
- \doshowfigurestate{screen alternative : stop}%
- \egroup}
- {}}
- {}}%
- \fi}
-
-\def\getfiguredimensions
- {\dodoubleempty\dogetfiguredimensions}
-
-\def\dogetfiguredimensions[#1][#2]%
- {{\let\immediate\relax % very dirty but prevents flushing, will change
- \setbox0\hbox{\externalfigure[#1][#2,\c!display=,\c!object=\v!no]}}}
-
-% use the next one when the object must be forgotten (xobj
-% nums can migrate to the next object; maybe it should
-% always be done; todo ....
-
-\def\getfiguredimensionsonly
- {\dodoubleempty\dogetfiguredimensionsonly}
-
-\def\dogetfiguredimensionsonly[#1][#2]%
- {\dogetfiguredimensions[#1][#2]%
- \doresetobjects}
-
-\def\doiffigureelse#1%
- {\getfiguredimensions[#1]% so data is available !
- \ifdim\analyzedfigurewidth=\zeropoint % todo: \figurestatus
- \expandafter\secondoftwoarguments
- \else
- \expandafter\firstoftwoarguments
- \fi}
-
-%D Size determination.
-%D
-%D An analyzer must set the following dimensions (global macros):
-%D
-%D \starttyping
-%D \analyzedfigurewidth
-%D \analyzedfigureheight
-%D \stoptyping
-%D
-%D And afterwards, when succeeded, call:
-%D
-%D \starttyping
-%D \setanalyzedfiguredimensions{number>=10}
-%D \stoptyping
-%D
-%D Numbers upto 9 are reserved for special purposes:
-%D
-%D \starttabulate
-%D \NC 0 \NC not found \NC \NR
-%D \NC 1 \NC object (will be reused) \NC \NR
-%D \NC 2 \NC found but no dimensions (e.g. special annotation) \NC \NR
-%D \stoptabulate
-
-\let\doanalyzefiguredimensionsfromfile\relax % hook for figuredatabase
-\let\doanalyzefiguredimensionsinternal\relax
-\let\doanalyzefiguredimensionsexternal\relax % hook for rli support (see later)
-\let\doanalyzefiguredimensionsfallback\relax
-
-\def\doanalyzefiguredimensions
- {\lowercasestring\wantedfiguretypespec\to\lcwantedfiguretypespec
- \doiffileinsertionsupportedelse\lcwantedfiguretypespec
- {\doiffileelse\wantedfigurefullname
- {\doshowfigurestate{analyzing : \wantedfigurefullname}%
- \doanalyzefiguredimensionsinternal
- \doanalyzefiguredimensionsexternal
- \doanalyzefiguredimensionsfallback}
- {\doshowfigurestate{not found : \wantedfigurefullname}}}
- {}}
-
-\def\setanalyzedfiguredimensions#1%
- {\ifdim\analyzedfigurewidth>\zeropoint
- \ifdim\analyzedfigureheight>\zeropoint
- \determinedfigurewidth \analyzedfigurewidth
- \determinedfigureheight\analyzedfigureheight
- \chardef\figurestatus #1\relax
- \doshowfigurestate{dimensions :
- \the\dimexpr\analyzedfigurewidth\relax\space x\space
- \the\dimexpr\analyzedfigureheight\relax}%
- \else
- \determinedfigurewidth \zeropoint
- \determinedfigureheight\zeropoint
- \chardef\figurestatus \zerocount
- \fi
- \else
- \determinedfigurewidth \zeropoint
- \determinedfigureheight\zeropoint
- \chardef\figurestatus \zerocount
- \fi}
-
-%D We can remap types. This is to be dealt with in the driver files.
-
-\def\definegraphictypesynonym
- {\dodoubleargument\dodefinegraphictypesynonym}
-
-\def\dodefinegraphictypesynonym[#1][#2]%
- {\setvalue{\??ef:\??ex:#1}{#2}}
-
-\def\truegraphictype#1%
- {\ifcsname\??ef:\??ex:#1\endcsname
- \expandafter\truegraphictype\csname\??ef:\??ex:#1\endcsname\else#1%
- \fi}
-
-\definegraphictypesynonym[epdf] [pdf]
-\definegraphictypesynonym[jpeg] [jpg]
-\definegraphictypesynonym[jp2] [jpg]
-\definegraphictypesynonym[jbig] [jb2]
-\definegraphictypesynonym[jbig2][jb2]
-\definegraphictypesynonym[jbg] [jb2]
-
-%D The self method (mostly used) uses the driver.
-
-% todo: when zero width mps, ok
-%
-% analyzer must set the analyzed dimensions
-
-\def\doanalyzefiguredimensionsinternal
- {\ifcase\figurestatus
- \lowercasestring\wantedfiguretypespec\to\lcwantedfiguretypespec
- \let\@@DriverImageFile \wantedfigurefullname
- \let\@@DriverImagePage \wantedfigurepage
- \let\@@DriverImageType\lcwantedfiguretypespec
- % use internal when available, otherwise try driver (\dogetfiguresize)
- \executeifdefined{dogetfiguresize\@@DriverImageType}\dogetfiguresize
- \setanalyzedfiguredimensions\!!ten
- \fi}
-
-%D The tex method.
-
-\def\dogetfiguresizetex
- {\ifcase\figurestatus
- \global\setbox\foundexternalfigure\vbox
- {\insidefloattrue
- \forgetall
- \blank[\v!disable]% niet meer weg !
- \startreadingfile
- \readfile\wantedfigurefullname \donothing \donothing
- \stopreadingfile
- \endgraf
- \removelastskip}%
- \global\setbox\foundexternalfigure\hbox
- {\raise\dp\foundexternalfigure\box\foundexternalfigure}%
- \xdef\analyzedfigurewidth {\the\wd\foundexternalfigure}%
- \xdef\analyzedfigureheight{\the\ht\foundexternalfigure}%
- \fi}
-
-\let\dogetfiguresizetmp \dogetfiguresizetex
-\let\dogetfiguresizebuffer\dogetfiguresizetex
-
-%D The eps, mps and svg files are read directly.
-
-\def\dogetfiguresizeeps
- {\dogetEPSboundingbox\wantedfigurefullname\!!widtha\!!heighta\!!widthb\!!heightb
- \xdef\analyzedfigurewidth {\the\!!widthb}%
- \xdef\analyzedfigureheight{\the\!!heightb}}
-
-\let\dogetfiguresizemps\dogetfiguresizeeps
-
-\def\dogetfiguresizesvg
- {\doifinset\wantedfiguretypespec\c!svg
- {\startnointerference
- \startXMLignore
- \defineXMLcommand[svg][width=100,height=75]
- {\doifdimensionelse{\XMLop{width}}
- {\xdef\analyzedfigurewidth {\the\dimexpr\XMLop{width}\relax}}
- {\xdef\analyzedfigurewidth {\the\dimexpr\XMLop{width}\onebasepoint\relax}}%
- \doifdimensionelse{\XMLop{height}}
- {\xdef\analyzedfigurewidth {\the\dimexpr\XMLop{height}\relax}}
- {\xdef\analyzedfigurewidth {\the\dimexpr\XMLop{height}\onebasepoint\relax}}%
- \endinput}%
- \processXMLfilegrouped\wantedfigurefullname
- \stopXMLignore
- \stopnointerference}}
-
-%D Do some checking on the filename.
-
-\newconditional \figurefileisqualified
-
-\def\setfigurepathlist
- {\let\figurepathlist\empty
- \expanded{\doifinset{\v!global }{\@@exlocation}}
- {\let\figurepathlist\@@exdirectory}%
- \expanded{\doifinset{\v!local }{\@@exlocation}}
- {\prependtocommalist\f!currentpath\figurepathlist}%
- \expanded{\doifinset{\v!default}{\@@exlocation}}
- {\appendtocommalist\defaultfigurepathsignal\figurepathlist}}
-
-% The combined path and qualified path hack is dedicated to Onno Tomson,
-% our partner in fighting inconsistent and faulty image specifications in
-% user files.
-
-\def\analyzefigurefilename#1#2%
- {\sanitizefilename#1\to\expandedfigurename
- \expanded{\checkfilename{\expandedfigurename}}%
- \ifcase\kindoffile
- \splitfigurefilename
- \ifcase\splitoffkind
- \let\wantedfigurepath\empty % no . either
- \setfigurepathlist
- \setfalse\figurefileisqualified
- \else
- \splitfigurefilename
- % will become splitoffkind 3 ! ! ! !
- \setfalse\figurefileisqualified
- \doifinstring{$$/}{$$\wantedfigurepath}{\settrue\figurefileisqualified}%
- \doifinstring {:} {\wantedfigurepath}{\settrue\figurefileisqualified}%
- \ifconditional\figurefileisqualified
- \let\figurepathlist\wantedfigurepath
- \let\wantedfigurepath\empty
- \settrue\figurefileisqualified
- \else
- \let\figurepathlist\@@exdirectory
- \let\oldfigurepathlist\figurepathlist
- \let\figurepathlist\wantedfigurepath
- \def\docommand##1{\edef\figurepathlist{\figurepathlist,##1/\wantedfigurepath}}%
- \processcommacommand[\oldfigurepathlist]\docommand
- \fi
- \fi
- \else % fully qualified
- \splitfigurefilename
- \let\wantedfigurepath\empty
- \settrue\figurefileisqualified
- \fi
- \ifx\figurepathlist\empty
- \let\figurepathlist\defaultfigurepathsignal % will prepend no path
- \fi
- \doifelsenothing\wantedfiguretype
- {\doifparentfileelse\wantedfigurename
- {\@EA\removefromcommalist\@EA{\jobsuffix }\wantedfiguretypelist
- \@EA\removefromcommalist\@EA{\jobfilesuffix}\wantedfiguretypelist}
- {}}
- {\let\wantedfiguretypelist\empty
- \let\wantedfiguretypespec\wantedfiguretype}%
- \edef\wantedfigurelabel{#2}%
- \doshowfigurestate{type check : \ifx\wantedfiguretypelist\empty forced type \wantedfiguretypespec\else\wantedfiguretypelist\fi}%
- \doshowfigurestate{file specs : \wantedfigurefull\space [\wantedfigurepath] [\wantedfigurename] [\wantedfiguretype]}%
- \doshowfigurestate{file type : \ifconditional\figurefileisqualified qualified\else simple\fi}}
-
-\def\setwantedfigurefullname#1#2#3% path name spec
- {\ifx\wantedfiguremethod\empty
- % the either explicit or gambled typespec determines the method
- \edef\wantedfiguretypespec{#3}%
- \doifelse{#1}\defaultfigurepathsignal
- {\edef\wantedfigurefullname {#2.\wantedfiguretypespec}}
- {\edef\wantedfigurefullname{#1/#2.\wantedfiguretypespec}}%
- \else\ifx\wantedfiguretype\empty %
- % the typespec (probably the same as the method) determines the suffix
- \doifelse{#1}\defaultfigurepathsignal
- {\edef\wantedfigurefullname {#2.\wantedfiguretypespec}}
- {\edef\wantedfigurefullname{#1/#2.\wantedfiguretypespec}}%
- \let\wantedfiguretypespec\wantedfiguremethod
- \else
- % the given suffix is used
- \let\wantedfiguretypespec\wantedfiguremethod
- \doifelse{#1}\defaultfigurepathsignal
- {\edef\wantedfigurefullname {#2.\wantedfiguretype}}
- {\edef\wantedfigurefullname{#1/#2.\wantedfiguretype}}%
- \fi\fi}
-
-\def\splitfigurefilename
- {\splitfilename\expandedfigurename
- \let\wantedfigurefull\splitofffull
- \let\wantedfigurepath\splitoffpath
- \let\wantedfigurename\splitoffname
- \let\wantedfigurebase\splitoffbase
- \let\wantedfiguretype\splitofftype}
-
-\def\analyzefigurefiles
- {\ifconditional\figurefileisqualified
- \ifx\wantedfiguretype\empty
- \doshowfigurestate{locating : unknown type}%
- \doanalyzeunknownfiguretype
- \else
- % this file or none
- \doshowfigurestate{locating : known type}%
- \doanalyzequalifiedfigure
- \fi
- \else
- \ifx\wantedfiguretype\empty
- % locate best fit / check support
- \doshowfigurestate{locating : best fit}%
- \doanalyzeunknownfiguretype
- \else
- % only check on paths
- \doshowfigurestate{locating : known types}%
- \doanalyzeknownfiguretype
- \fi
- \fi}
-
-\def\doanalyzequalifiedfigure
- {\let\wantedfigurefullname\wantedfigurefull
- \let\wantedfiguretypespec\wantedfiguretype
- \doshowfigurestate{forced type : \wantedfiguretype}%
- \doshowfigurestate{identifying : \wantedfigurefullname}%
- \doanalyzefiguredimensions}
-
-\def\doanalyzeknownfiguretype
- {\doshowfigurestate{using paths : \figurepathlist}%
- \doshowfigurestate{known type : \wantedfiguretype}%
- \doshowfigurestate{identifying : \wantedfigurename}%
- \let\wantedfiguretypespec\wantedfiguretype
- \processcommacommand[\figurepathlist]\dodoanalyzeknownfiguretype}
-
-\def\dodoanalyzeknownfiguretype#1% path
- {\ifcase\figurestatus
- \setwantedfigurefullname{#1}\wantedfigurename\wantedfiguretype
- \doanalyzefiguredimensions
- \fi}
-
-\def\doanalyzeunknownfiguretype
- {\doshowfigurestate{using paths : \figurepathlist}%
- \doshowfigurestate{using types : \wantedfiguretypelist}%
- \doshowfigurestate{identifying : \wantedfigurename}%
- \processcommacommand[\wantedfiguretypelist]\dodoanalyzeunknownfiguretype}
-
-\def\dodoanalyzeunknownfiguretype#1%
- {\processcommacommand[\figurepathlist]{\dododoanalyzeunknownfiguretype{#1}}}
-
-\def\dododoanalyzeunknownfiguretype#1#2% type path
- {\ifcase\figurestatus
- \setwantedfigurefullname{#2}\wantedfigurename{#1}% path spec
- \doanalyzefiguredimensions
- \fi}
-
-%D Some files, take for instance movies, cannot easilly be
-%D parsed on dimensions, that is, not yet. Although the current
-%D mechanism has no problems with this, as long as the user
-%D specified width and height reflect the right aspect ratio.
-%D Nevertheless, when one does not want any scanning done, one
-%D can disable \type{preset}. When no preset is needed, we only
-%D locate the file.
-
-\def\doanalyzefiguredimensionsfallback
- {\ifcase\figurestatus
- \doshowfigurestate{warning : assuming adaptive figure}%
- \xdef\analyzedfigurewidth {\the\dimexpr\@@efwidth +\zeropoint\relax}%
- \xdef\analyzedfigureheight{\the\dimexpr\@@efheight+\zeropoint\relax}%
- \setanalyzedfiguredimensions\plustwo
- \fi}
-
-%D This is \MKII\ only and comes from cont-new (maybe used in a project).
-
-% maybe to be integrated (option=...)
-
-\def\directexternalfigure
- {\dodoubleempty\dodirectexternalfigure}
-
-\def\dodirectexternalfigure[#1][#2]%
- {\bgroup
- \getparameters[\??ef][\c!type=\splitofftype,\c!page=1,#2]%
- \sanitizefilename#1\to\expandedfigurename
- \splitfilename\expandedfigurename
- \let\@@DriverImageWidth \!!zeropoint
- \let\@@DriverImageHeight \!!zeropoint
- \let\@@DriverImageFile \splitofffull
- \let\@@DriverImageType \@@eftype
- \let\@@DriverImageMethod \@@eftype
- \let\@@DriverImageLabel \empty
- \let\@@DriverImagePage \@@efpage
- \doinsertfile
- \egroup}
-
-% \directexternalfigure[cow.pdf]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/grph-trf.mkii b/Master/texmf-dist/tex/context/base/mkii/grph-trf.mkii
deleted file mode 100644
index 68e53d3760b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/grph-trf.mkii
+++ /dev/null
@@ -1,579 +0,0 @@
-%D \module
-%D [ file=grph-fig,
-%D version=2006.08.26, % overhaul/split of 1997.03.31 core-fig
-%D title=\CONTEXT\ Graphic Macros,
-%D subtitle=Transformations,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D It may be that some functionality got lost. If it concerns
-%D defined features, let me know and it will be sorted out.
-
-\writestatus{loading}{ConTeXt Graphic Macros / Transformations}
-
-\unprotect
-
-%D Scaling:
-
-\unexpanded\def\scale{\dodoubleempty\doscalenextbox[\??xy]}
-
-% probably too many dimens / the width calculations can go
-% since we may assume scaling is available (was not true
-% long ago which is why we also calculate the width)
-
-\newdimen\scaleboxwidth
-\newdimen\scaleboxheight
-\newdimen\scaleboxdepth
-
-\newdimen\scaleboxsizex
-\newdimen\scaleboxsizey
-\newdimen\scaleboxoffsetx
-\newdimen\scaleboxoffsety
-
-\newdimen\scaleboxhsize
-\newdimen\scaleboxvsize
-
-% global
-
-\newdimen\scaleboxdimx \let\figwid \scaleboxdimx
-\newdimen\scaleboxdimy \let\fighei \scaleboxdimy
-\newcount\scaleboxscax \let\figxsca\scaleboxscax
-\newcount\scaleboxscay \let\figysca\scaleboxscay
-
-\newdimen\scaleboxoutervsize % we cannot manipulate any global vsize !
-
-\let\finalscaleboxxscale \!!plusone
-\let\finalscaleboxyscale \!!plusone
-\let\finalscaleboxwidth \!!zeropoint
-\let\finalscaleboxheight \!!zeropoint
-\let\finalscaleboxxfactor\!!hundred
-\let\finalscaleboxyfactor\!!hundred
-
-\newconditional\scaleboxdone
-
-\def\doscalenextbox[#1][#2]%
- {\bgroup
- \getparameters
- [#1]
- [\c!scale=,\c!xscale=,\c!yscale=,\c!width=,\c!height=,\c!lines=,
- \c!factor=,\c!hfactor=,\c!wfactor=,\c!grid=,\c!sx=1,\c!sy=1,
- \c!equalwidth=,\c!equalheight=,
- \c!maxwidth=\scaleparameter\c!width,\c!maxheight=\scaleparameter\c!height,
- #2]%
- \dowithnextbox{\dodoscalenextbox{#1}\egroup}\hbox}
-
-\def\doscalebox#1%
- {\bgroup\dowithnextbox{\dodoscalenextbox{#1}\egroup}\hbox}
-
-\let\currentscaletag\??xy
-
-\def\scaleparameter#1%
- {\csname\currentscaletag#1\endcsname}
-
-\def\setscaleparameter#1#2%
- {\setvalue{\currentscaletag#1}{#2}}
-
-\def\dodoscalenextbox#1%
- {\edef\currentscaletag{#1}%
- \doif{\scaleparameter\c!depth}\v!no{\setbox\nextbox\hbox{\raise\nextboxdp\box\nextbox}}% new
- \forgetall
- \dontshowcomposition
- \dontcomplain
- \doscaleboxcalculations
- \doscaleboxindeed
- \doscaleboxposition
- \flushnextbox}
-
-\def\doscaleboxindeed
- {\ifconditional\scaleboxdone
- \scaleboxwidth \finalscaleboxxscale\nextboxwd
- \scaleboxheight\finalscaleboxyscale\nextboxht
- \scaleboxdepth \finalscaleboxyscale\nextboxdp
- \setbox\nextbox\hbox
- {\dostartscaling \finalscaleboxxscale \finalscaleboxyscale
- \smashedbox\nextbox
- \dostopscaling}%
- \nextboxwd\scaleboxwidth
- \nextboxht\scaleboxheight
- \nextboxdp\scaleboxdepth
- \fi}
-
-\def\doscaleboxcalculations
- {\setfalse\scaleboxdone
- % initial final value
- \global\let\finalscaleboxxscale \!!plusone
- \global\let\finalscaleboxyscale \!!plusone
- \xdef \finalscaleboxwidth {\the\nextboxwd}%
- \xdef \finalscaleboxheight{\the\nextboxht}%
- \global\let\finalscaleboxxfactor\!!hundred
- \global\let\finalscaleboxyfactor\!!hundred
- \ifdim\nextboxht>\zeropoint \ifdim\nextboxwd>\zeropoint
- \edef\scaleboxstampa % slow way [can be combined]
- {\scaleparameter\c!scale \scaleparameter\c!xscale \scaleparameter\c!yscale
- \scaleparameter\c!factor\scaleparameter\c!wfactor\scaleparameter\c!hfactor
- \scaleparameter\c!lines \scaleparameter\c!width \scaleparameter\c!height}%
- \edef\scaleboxstampb % fast way [just sx/sy]
- {\scaleparameter\c!sx
- \scaleparameter\c!sy}%
- \edef\scaleboxstampc
- {11}%
- \ifx\scaleboxstampa\empty
- \ifx\scaleboxstampb\scaleboxstampc
- % no scaling, but still check; new, gone again
-% wrong: scaled proportionally as side effect
-% \doifsomething{\scaleparameter\c!maxwidth }{\letvalue{\currentscaletag\c!factor}\v!fit}%
-% \doifsomething{\scaleparameter\c!maxheight}{\letvalue{\currentscaletag\c!factor}\v!fit}%
- \insidefloattrue % trick
- \dodoscaleboxcalculations
- \else
- \dosetscalboxsxsy
- \nodoscaleboxcalculations
- \fi
- \else
- \ifx\scaleboxstampb\empty
- % no need to check further
- \else
- \dosetscalboxsxsy
- \fi
- \dodoscaleboxcalculations
- \fi
- \fi \fi}
-
-\def\dosetscalboxsxsy
- {\ifdim\scaleparameter\c!sx\onepoint=\onepoint\else
- \setevalue{\currentscaletag\c!width }{\the\dimexpr\scaleparameter\c!sx\wd\nextbox\relax}%
- \fi
- \ifdim\scaleparameter\c!sy\onepoint=\onepoint\else
- \setevalue{\currentscaletag\c!height}{\the\dimexpr\scaleparameter\c!sy\ht\nextbox\relax}%
- \fi}
-
-\def\doscaleboxrounding#1.#2\relax{#1}
-
-\def\scaleboxrounding#1%
- {\@EA\@EA\@EA\doscaleboxrounding\@EA\WITHOUTPT\the\dimexpr#1\points*100+32768sp\relax.\relax}
-
-\def\nodoscaleboxcalculations
- {\settrue\scaleboxdone
- \xdef\finalscaleboxwidth {\the\dimexpr\scaleparameter\c!sx\wd\nextbox\relax}%
- \xdef\finalscaleboxheight {\the\dimexpr\scaleparameter\c!sy\ht\nextbox\relax}%
- \xdef\finalscaleboxxscale {\scaleparameter\c!sx}%
- \xdef\finalscaleboxyscale {\scaleparameter\c!sy}%
- \ifx\finalscaleboxxscale\empty\let\finalscaleboxxscale\!!plusone\fi
- \ifx\finalscaleboxyscale\empty\let\finalscaleboxyscale\!!plusone\fi
- \xdef\finalscaleboxxfactor{\scaleboxrounding\finalscaleboxxscale}%
- \xdef\finalscaleboxyfactor{\scaleboxrounding\finalscaleboxyscale}}
-
-\def\dodoscaleboxcalculations
- {\settrue\scaleboxdone
- % initial values
- \scaleboxoffsetx\zeropoint
- \scaleboxoffsety\zeropoint
- \scaleboxsizex \nextboxwd
- \scaleboxsizey \nextboxht % alleen ht wordt geschaald!
- % final values
- \global\scaleboxdimx \zeropoint % see note * (core-fig)
- \global\scaleboxdimy \zeropoint % see note * (core-fig)
- \scaleboxscax \plusone % see note * (core-fig)
- \scaleboxscay \plusone % see note * (core-fig)
- % preparations
- \setfalse\scaleboxscalingdone
- \checkscaleboxsettings
- % calculators
- % beware, they operate in sequence, and calculate missing dimensions / messy
- %setscaleboxbynature % when? needed?
- \ifconditional\scaleboxscalingdone\else\setscaleboxbyfactor \fi
- \ifconditional\scaleboxscalingdone\else\setscaleboxbyscale \fi
- \ifconditional\scaleboxscalingdone\else\setscaleboxbydimension\fi
- % finalizers / to be done (no longer needed this way, clean up)
- \convertscaleboxinsertscale\scaleboxhsize\figx\scaleboxscax\scax
- \convertscaleboxinsertscale\scaleboxvsize\figy\scaleboxscay\scay
- % used in actual scaling
- \xdef\finalscaleboxwidth {\the\scaleboxdimx}%
- \xdef\finalscaleboxheight {\the\scaleboxdimy}%
- \xdef\finalscaleboxxfactor{\the\scaleboxscax}%
- \xdef\finalscaleboxyfactor{\the\scaleboxscay}%
- \xdef\finalscaleboxxscale {\withoutpt\the\dimexpr\scax\points/\plushundred\relax}%
- \xdef\finalscaleboxyscale {\withoutpt\the\dimexpr\scay\points/\plushundred\relax}}
-
-
-\setvalue{\??xy:\c!grid:\v!yes }{\getnoflines \fighei\setevalue{\currentscaletag\c!height}{\the\noflines\lineheight}}
-\setvalue{\??xy:\c!grid:\v!height }{\getrawnoflines\fighei\setevalue{\currentscaletag\c!height}{\the\dimexpr\noflines\lineheight+\strutdepth\relax}}
-\setvalue{\??xy:\c!grid:\v!depth }{\getrawnoflines\fighei\setevalue{\currentscaletag\c!height}{\the\dimexpr\noflines\lineheight-\strutdepth\relax}}
-\setvalue{\??xy:\c!grid:\v!halfline}{\getrawnoflines\fighei\setevalue{\currentscaletag\c!height}{\the\dimexpr\noflines\lineheight+.5\lineheight\relax}}
-\setvalue{\??xy:\c!grid:\v!fit }{\getrawnoflines\fighei\setevalue{\currentscaletag\c!height}{\the\noflines\lineheight}}
-\letvalue{\??xy:\c!grid:\empty }\donothing
-
-\def\checkscaleboxsettings
- {\doifsomething{\scaleparameter\c!maxwidth }% can be defined in itself
- {\setevalue{\currentscaletag\c!maxwidth }{\the\dimexpr\scaleparameter\c!maxwidth \relax}}%
- \doifsomething{\scaleparameter\c!maxheight}% can be defined in itself
- {\setevalue{\currentscaletag\c!maxheight}{\the\dimexpr\scaleparameter\c!maxheight\relax}}%
- \doifsomething{\scaleparameter\c!lines}
- {\setevalue{\currentscaletag\c!height}{\the\dimexpr\scaleparameter\c!lines\lineheight\relax}}%
- \getvalue{\??xy:\c!grid:\scaleparameter\c!grid}}
-
-\def\setscaleboxbynature % where ! ! ! ! !
- {\doifsomething{\scaleparameter\c!width }{\global\scaleboxdimx\scaleparameter\c!width }%
- \doifsomething{\scaleparameter\c!height}{\global\scaleboxdimy\scaleparameter\c!height}%
- \doifsomething{\scaleparameter\c!scale } {\scaleboxscax\scaleparameter\c!scale
- \scaleboxscay\scaleparameter\c!scale }%
- \doifsomething{\scaleparameter\c!xscale} {\scaleboxscax\scaleparameter\c!xscale}%
- \doifsomething{\scaleparameter\c!yscale} {\scaleboxscay\scaleparameter\c!yscale}} % oeps, was x
-
-% \defineexternalfigure[width-6][factor=auto,maxwidth=\textheight,maxheight=\textwidth]
-% \defineexternalfigure[width-7][factor=auto,maxwidth=\textwidth,maxheight=\textheight]
-% \placefigure{none}{\rotate[frame=on,offset=overlay]{\externalfigure[t:/sources/cow.pdf][width-6]}} \page
-% \placefigure{none}{\framed[frame=on,offset=overlay]{\externalfigure[t:/sources/cow.pdf][width-7]}}
-
-\def\setscaleboxbyfactor
- {\doifinsetelse{\scaleparameter\c!factor}{\v!max,\v!fit,\v!broad,\v!auto}
- {\doapplyscaleboxsize
- \ifdim\scaleboxsizex>\scaleboxsizey
- \docalculatescaleboxnorm \scaleboxdimx\c!factor\c!maxwidth\hsize\scaleboxhsize
- \docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey
- \else
- \docalculatescaleboxnorm \scaleboxdimy\c!factor\c!maxheight\scaleboxoutervsize\scaleboxvsize
- \docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex
- \fi
- \donetrue}
- {\doifinsetelse{\scaleparameter\c!hfactor}{\v!max,\v!fit,\v!broad,\v!auto}
- {\doapplyscaleboxsize
- \docalculatescaleboxnorm \scaleboxdimy\c!hfactor\c!maxheight\scaleboxoutervsize\scaleboxvsize
- \docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex
- \donetrue}
- {\doifinsetelse{\scaleparameter\c!wfactor}{\v!max,\v!fit,\v!broad,\v!auto}
- {\doapplyscaleboxsize
- \docalculatescaleboxnorm \scaleboxdimx\c!wfactor\c!maxwidth\hsize\scaleboxhsize
- \docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey
- \donetrue}
- {\docalculatescaleboxnorm\scaleboxdimy\c!factor \c!height \textheight\scaleboxvsize
- \docalculatescaleboxnorm\scaleboxdimy\c!hfactor\c!height \textheight\scaleboxvsize
- \docalculatescaleboxnorm\scaleboxdimx\c!wfactor\c!width \hsize \hsize
- \donefalse}}}%
- \ifdone
- \settrue\scaleboxscalingdone
- \ifdim\scaleboxdimx>\scaleboxhsize
- \global\scaleboxdimy\zeropoint \global\scaleboxdimx\scaleboxhsize
- \else\ifdim\scaleboxdimy>\scaleboxvsize
- \global\scaleboxdimx\zeropoint \global\scaleboxdimy\scaleboxvsize
- \fi\fi
- \setscaleboxbydimension
- \fi}
-
-\def\setscaleboxbyscale
- {\doifsomething{\scaleparameter\c!scale\scaleparameter\c!xscale\scaleparameter\c!yscale}
- {\doapplyscaleboxscale\scaleboxdimx\scaleboxsizex\scaleboxscax\c!xscale
- \doapplyscaleboxscale\scaleboxdimy\scaleboxsizey\scaleboxscay\c!yscale
- \global\scaleboxdimx\zeropoint
- \global\scaleboxdimy\zeropoint
- \doifelsenothing{\scaleparameter\c!maxwidth}
- {\doifsomething{\scaleparameter\c!maxheight}
- {\ifdim\scaleboxsizey>\scaleparameter\c!maxheight\relax
- \global\scaleboxdimy\scaleparameter\c!maxheight
- \fi}}
- {\ifdim\scaleboxsizex>\scaleparameter\c!maxwidth\relax
- \global\scaleboxdimx\scaleparameter\c!maxwidth
- \fi}}}
-
-\def\setscaleboxbydimension
- {\ifdim\scaleboxdimx>\zeropoint
- \ifdim\scaleboxdimy>\zeropoint
- \dosetdimensionscaleboxsize
- {\docalculatescaleboxscale\scaleboxdimy\scaleboxsizey\scaleboxscay
- \docalculatescaleboxscale\scaleboxdimx\scaleboxsizex\scaleboxscax}%
- {\docalculatescaleboxscale\scaleboxdimy\scaleboxsizey\scaleboxscay
- \docalculatescaleboxscale\scaleboxdimx\scaleboxsizex\scaleboxscax}%
- {\docalculatescaleboxscale\scaleboxdimy\scaleboxsizey\scaleboxscay
- \docalculatescaleboxscale\scaleboxdimx\scaleboxsizex\scaleboxscax}%
- \else
- \dosetdimensionscaleboxsize
- {\docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey}%
- {\docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey}%
- {\docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey}%
- \fi
- \else
- \ifdim\scaleboxdimy>\zeropoint
- \dosetdimensionscaleboxsize
- {\docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex}%
- {\docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex}%
- {\docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex}%
- \else
- \dosetdimensionscaleboxsize
- {\doapplyscaleboxscale\scaleboxdimx\scaleboxsizex\scaleboxscax\c!xscale
- \doapplyscaleboxscale\scaleboxdimy\scaleboxsizey\scaleboxscay\c!yscale}%
- {\docalculatescaleboxscales\scaleboxdimx\scaleboxsizex\scaleboxdimy\scaleboxsizey}%
- {\docalculatescaleboxscales\scaleboxdimy\scaleboxsizey\scaleboxdimx\scaleboxsizex}%
- \fi
- \fi}
-
-\def\dosetdimensionscaleboxsize#1#2#3%
- {#1\relax
- \doifsomething{\scaleparameter\c!maxwidth}
- {\ifdim\scaleboxdimx>\scaleparameter\c!maxwidth\relax
- \global\scaleboxdimx\scaleparameter\c!maxwidth
- #2\relax
- \fi}%
- \doifsomething{\scaleparameter\c!maxheight}
- {\ifdim\scaleboxdimy>\scaleparameter\c!maxheight\relax
- \global\scaleboxdimy\scaleparameter\c!maxheight
- #3\relax
- \fi}}
-
-\def\docalculatescaleboxnorm#1#2#3#4#5% 2 3 parameters (dodo:speedup)
- {\processaction
- [\scaleparameter#2]
- [ \v!max=>\global#1\dimexpr#4\relax,
- \v!fit=>\global#1\dimexpr#5\relax,
- \v!broad=>\global#1\dimexpr#5-4\@@exbodyfont\relax,
- \v!auto=>\doifsomething{\scaleparameter#3}{\global#1\dimexpr\scaleparameter#3\relax},
- \s!default=>\doifsomething{\scaleparameter#3}{\global#1\dimexpr\scaleparameter#3\relax},
- \s!unknown=>\global#1\dimexpr\scaleparameter#2\dimexpr\@@exbodyfont/10\relax\relax]}
-
-\def\docalculatescaleboxscales#1#2#3#4%
- {\scratchdimen\dimexpr#1/\dimexpr#2/\plusthousand\relax\relax
- \scaleboxscax\scratchdimen
- \scaleboxscay\scratchdimen
- #3\dimexpr\scaleboxscax\dimexpr#4/\plusthousand\relax\relax}
-
-\def\docalculatescaleboxscale#1#2#3%
- {#3\dimexpr#1/\dimexpr#2/\plusthousand\relax\relax}
-
-\def\doapplyscaleboxscale#1#2#3#4% $4 = parameter / scale can be empty
- {\ifcase0\scaleparameter#4\relax
- \ifcase0\scaleparameter\c!scale\relax
- #3=\plusthousand
- \else
- #3=\scaleparameter\c!scale
- \fi
- \else
- #3=\scaleparameter#4%
- \fi
- \relax % important ! still ?
- \global#1\ifnum#3=\plusthousand#2\else\dimexpr#3\dimexpr#2/\plusthousand\relax\relax\fi
- \relax}
-
-\def\doapplyscaleboxsize
- {\doifelsenothing{\scaleparameter\c!maxheight}
- {\scaleboxoutervsize\textheight
- \ifinner
- \scaleboxoutervsize \vsize % \textheight =\vsize
- \scratchdimen\vsize % \scratchdimen=\textheight
- \else\ifinsidefloat
- \scaleboxoutervsize \vsize % \textheight =\vsize
- \scratchdimen\vsize % \scratchdimen=\textheight
- \else\ifinpagebody
- \scaleboxoutervsize \vsize % \textheight =\vsize
- \scratchdimen\vsize % \scratchdimen=\textheight
- \else % hm, there should be an option to force this
- \ifdim\pagegoal<\maxdimen
- \ifdim\pagetotal<\pagegoal
- \scratchdimen\pagegoal
- \advance\scratchdimen -\pagetotal
- \else
- \scratchdimen\scaleboxoutervsize % \textheight
- \fi
- \else
- \scratchdimen\scaleboxoutervsize % \textheight
- \fi
- \fi\fi\fi}
- {\scratchdimen\scaleparameter\c!maxheight
- \scaleboxoutervsize\scratchdimen}%
- \doifelsenothing{\scaleparameter\c!height}
- {\scaleboxvsize\scratchdimen}
- {\scaleboxvsize\scaleparameter\c!height}%
- \doifelsenothing{\scaleparameter\c!width}
- {\scaleboxhsize\hsize}
- {\scaleboxhsize\scaleparameter\c!width}}
-
-\def\convertscaleboxinsertscale#1#2#3#4%
- {\scratchdimen#1\relax
- \ifnum#3=\plusthousand
- % == scale 1
- \else
- % better 1000 100 10 ranges, evt round 2sp
- \divide\scratchdimen \plusthousand
- \multiply\scratchdimen #3\relax
- \fi
- \scratchdimen-\scratchdimen % beter hier - dan in driver
- \edef#2{\the\scratchdimen}%
- \scratchcounter#3\relax
- \ifnum\scratchcounter>\plustenthousand
- \divide\scratchcounter\!!ten \scratchdimen\the\scratchcounter\points
- \else
- \scratchdimen\the\scratchcounter\points \divide\scratchdimen\!!ten
- \fi
- \edef#4{\withoutpt\the\scratchdimen}}
-
-% \startcombination
-% {\externalfigure[cow.pdf] [frame=on,height=3cm,equalwidth=6cm]} {}
-% {\externalfigure[mill.png][frame=on,height=3cm,equalwidth=6cm]} {}
-% \stopcombination
-
-\def\doscaleboxposition
- {\doifsomething{\scaleparameter\c!equalwidth}
- {\scratchdimen\scaleparameter\c!equalwidth\relax
- \ifdim\wd\nextbox<\scratchdimen
- \setbox\nextbox\hbox to \scratchdimen{\hss\box\nextbox\hss}%
- \fi}%
- \doifsomething{\scaleparameter\c!equalheight}
- {\scratchdimen\scaleparameter\c!equalheight\relax
- \ifdim\ht\nextbox<\scratchdimen
- \setbox\nextbox\vbox to \scratchdimen{\vss\box\nextbox\vss}%
- \fi}}
-
-%D \macros
-%D {clip, setupclipping}
-%D
-%D Although related to figures, clipping can be applied to
-%D arbitrary content. We can use \METAPOST\ to provide a non
-%D rectangular clipping path.
-%D
-%D \starttyping
-%D \startMPclip{fun}
-%D clip currentpicture to fullcircle
-%D shifted (.5,.5) xscaled \width yscaled \height ;
-%D \stopMPclip
-%D \stoptyping
-%D
-%D We get a rectangular piece of the figure when we say:
-%D
-%D \starttyping
-%D \clip[x=2,y=1]{\externalfigure[photo]}
-%D \stoptyping
-%D
-%D When we want to clip to the oval we defined a few lines ago,
-%D we say:
-%D
-%D \starttyping
-%D \clip[nx=1,ny=1,x=1,y=1,mp=fun]{\externalfigure[photo]}
-%D \stoptyping
-%D
-%D The general characteristics of clipping can be set up with
-%D
-%D \showsetup{setupclipping}
-
-\def\setupclipping
- {\dodoubleargument\getparameters[\??cp]}
-
-\def\clip
- {\dosingleempty\doclip}
-
-\def\doclip[#1]% nb top->bottom left->right
- {\bgroup
- \getparameters[\??cp][#1]%
- \doifelse\@@cpstate\v!start\dodoclip{\egroup\hbox}}
-
-\def\dodoclip
- {\dowithnextbox
- {\ifdim\@@cpwidth>\zeropoint
- \!!dimena\@@cpwidth
- \!!dimenc\@@cphoffset
- \else
- \!!dimena\nextboxwd
- \divide\!!dimena \@@cpnx
- \!!dimenc\@@cpx\!!dimena
- \advance\!!dimenc -\!!dimena
- \!!dimena\@@cpsx\!!dimena
- \fi
- \relax % sure
- \ifdim\@@cpheight>\zeropoint
- \!!dimenb\@@cpheight
- \!!dimend\nextboxht
- \advance\!!dimend -\@@cpvoffset
- \advance\!!dimend -\!!dimenb
- \else
- \!!dimenb\nextboxht
- \divide\!!dimenb \@@cpny
- \!!dimend-\@@cpy\!!dimenb
- \advance\!!dimend -\@@cpsy\!!dimenb
- \advance\!!dimend \!!dimenb
- \!!dimenb\@@cpsy\!!dimenb
- \advance\!!dimend \nextboxht % dimend !
- \fi
- \setbox\nextbox\hbox % old
- {\advance\!!dimenc -\@@cpleftoffset % new !
- \advance\!!dimend -\@@cpbottomoffset % new ! % - added
- \hskip-\!!dimenc\lower\!!dimend\flushnextbox}% old
- \nextboxwd\zeropoint
- \nextboxht\zeropoint
- \nextboxdp\zeropoint
- \setbox\nextbox\hbox
- {\advance\!!dimena \@@cpleftoffset % new !
- \advance\!!dimena \@@cprightoffset % new !
- \advance\!!dimenb \@@cpbottomoffset % new !
- \advance\!!dimenb \@@cptopoffset % new !
- \dostartclipping\@@cpmp\!!dimena\!!dimenb % old
- \flushnextbox
- \dostopclipping}%
- \setbox\nextbox\hbox % new !
- {\!!dimena-\@@cpleftoffset % new !
- \!!dimenb \@@cpbottomoffset % new ! % - removed
- \hskip\!!dimena\lower\!!dimenb\flushnextbox}% new !
- \nextboxwd\!!dimena
- \nextboxht\!!dimenb
- \nextboxdp\zeropoint
- \flushnextbox
- \egroup}%
- \hbox}
-
-\setupclipping
- [\c!state=\v!start,
- \c!n=1, % was 2
- \c!nx=\@@cpn,\c!x=1,\c!sx=1,
- \c!ny=\@@cpn,\c!y=1,\c!sy=1,
- \c!width=\!!zeropoint,
- \c!height=\!!zeropoint,
- \c!hoffset=\!!zeropoint,
- \c!voffset=\!!zeropoint,
- \c!offset=\zeropoint,
- \c!leftoffset=\@@cpoffset, % \zeropoint,
- \c!rightoffset=\@@cpoffset, % \zeropoint,
- \c!topoffset=\@@cpoffset, % \zeropoint,
- \c!bottomoffset=\@@cpoffset,% \zeropoint,
- \c!mp=]
-
-%D \startbuffer
-%D \startuseMPgraphic{test}
-%D path p ; p := fullcircle scaled 4cm ;
-%D draw p withpen pencircle scaled 1cm ;
-%D setbounds currentpicture to boundingbox p ;
-%D \stopuseMPgraphic
-%D
-%D \hbox to \hsize \bgroup
-%D \hss
-%D \ruledhbox{\useMPgraphic{test}}%
-%D \hss
-%D \ruledhbox{\clip{\useMPgraphic{test}}}%
-%D \hss
-%D \egroup
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-%D Mirroring.
-
-\def\domirrorbox % \hbox/\vbox/\vtop
- {\bgroup
- \dowithnextbox
- {\dontshowcomposition
- \scratchdimen\nextboxwd
- % better use an hbox (if no \forgetall, leftskip etc may creep in)
- %\setbox\nextbox\vbox{\forgetall\dostartmirroring\hskip-\nextboxwd\flushnextbox\dostopmirroring}%
- \setbox\nextbox\hbox{\dostartmirroring\hskip-\nextboxwd\flushnextbox\dostopmirroring}%
- \nextboxwd\scratchdimen
- \flushnextbox
- \egroup}}
-
-\unexpanded\def\mirror
- {\domirrorbox\hbox}
-
-% \setbox0=\hbox{gans}
-% \ruledhbox{\copy0 \schaal[sx=2,sy=2]{\copy0}}
-% \mirror{\ruledhbox{\copy0 \schaal{\box0}}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/hand-def.mkii b/Master/texmf-dist/tex/context/base/mkii/hand-def.mkii
deleted file mode 100644
index ab0044a8eda..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/hand-def.mkii
+++ /dev/null
@@ -1,577 +0,0 @@
-%D \module
-%D [ file=hand-def, % was enco-pro
-%D version=2000.29.09,
-%D title=\CONTEXT\ Handling Macros,
-%D subtitle=Default Protruding Factors,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This is an experimental definition file. The protruding
-%D values we use here are those found from \THANH's thesis.
-
-\startfonthandling [pure]
-
- \defineprotrudefactor , 0 1
- \defineprotrudefactor . 0 1
- \defineprotrudefactor : 0 1
- \defineprotrudefactor ; 0 1
- \defineprotrudefactor - 0 1
-
- \defineprotrudefactor hyphen 0 1
- \defineprotrudefactor endash 0 .5
- \defineprotrudefactor emdash 0 .33 % .5
-
-\stopfonthandling
-
-\startfonthandling [punctuation]
-
- \defineprotrudefactor ! 0 .2
- \defineprotrudefactor ' 0 .7
- \defineprotrudefactor ` .7 0
- \defineprotrudefactor ( .05 0
- \defineprotrudefactor ) 0 .05
- \defineprotrudefactor [ .05 0
- \defineprotrudefactor ] 0 .05
- \defineprotrudefactor , 0 .7
- \defineprotrudefactor - 0 .7
- \defineprotrudefactor . 0 .7
- \defineprotrudefactor : 0 .5
- \defineprotrudefactor ; 0 .5
-
- \defineprotrudefactor rightupperninequote 0 .5
- \defineprotrudefactor leftupperninequote .5 0
- \defineprotrudefactor endash 0 .3
- \defineprotrudefactor emdash 0 .2
-
- \defineprotrudefactor hyphen 0 .7
-
-\stopfonthandling
-
-\startfonthandling [alpha]
-
- \defineprotrudefactor A .05 .05
- \defineprotrudefactor F 0 .05
- \defineprotrudefactor J .05 0
- \defineprotrudefactor K 0 .05
- \defineprotrudefactor L 0 .05
- \defineprotrudefactor T .05 .05
- \defineprotrudefactor V .05 .05
- \defineprotrudefactor W .05 .05
- \defineprotrudefactor X .05 .05
- \defineprotrudefactor Y .05 .05
-
- \defineprotrudefactor k 0 .05
- \defineprotrudefactor r 0 .05
- \defineprotrudefactor t 0 .05
- \defineprotrudefactor v .05 .05
- \defineprotrudefactor w .05 .05
- \defineprotrudefactor x .05 .05
- \defineprotrudefactor y .05 .05
-
-\stopfonthandling
-
-% ogoneks may need another treatment
-
-\startfonthandling [extended]
-
- \inherithandling Acircumflex A
- \inherithandling acircumflex a
- \inherithandling Ccircumflex C
- \inherithandling ccircumflex c
- \inherithandling Ecircumflex E
- \inherithandling ecircumflex e
- \inherithandling Gcircumflex G
- \inherithandling gcircumflex g
- \inherithandling Hcircumflex H
- \inherithandling hcircumflex h
- \inherithandling Icircumflex I
- \inherithandling icircumflex i
- \inherithandling Jcircumflex J
- \inherithandling jcircumflex j
- \inherithandling Ocircumflex O
- \inherithandling ocircumflex o
- \inherithandling Scircumflex S
- \inherithandling scircumflex s
- \inherithandling Ucircumflex U
- \inherithandling ucircumflex u
- \inherithandling Wcircumflex W
- \inherithandling wcircumflex w
- \inherithandling Ycircumflex Y
- \inherithandling ycircumflex y
-
- \inherithandling Agrave A
- \inherithandling agrave a
- \inherithandling Egrave E
- \inherithandling egrave e
- \inherithandling Igrave I
- \inherithandling igrave i
- \inherithandling Ograve O
- \inherithandling ograve o
- \inherithandling Ugrave U
- \inherithandling ugrave u
- \inherithandling Ygrave Y
- \inherithandling ygrave y
-
- \inherithandling Atilde A
- \inherithandling atilde a
- \inherithandling Itilde I
- \inherithandling itilde i
- \inherithandling Ntilde N
- \inherithandling ntilde n
- \inherithandling Otilde O
- \inherithandling otilde o
- \inherithandling Utilde U
- \inherithandling utilde u
-
- \inherithandling Adiaeresis A
- \inherithandling adiaeresis a
- \inherithandling Ediaeresis E
- \inherithandling ediaeresis e
- \inherithandling Idiaeresis I
- \inherithandling idiaeresis i
- \inherithandling Odiaeresis O
- \inherithandling odiaeresis o
- \inherithandling Udiaeresis U
- \inherithandling udiaeresis u
- \inherithandling Ydiaeresis Y
- \inherithandling ydiaeresis y
-
- \inherithandling Aacute A
- \inherithandling aacute a
- \inherithandling Cacute C
- \inherithandling cacute c
- \inherithandling Eacute E
- \inherithandling eacute e
- \inherithandling Iacute I
- \inherithandling iacute i
- \inherithandling Lacute L
- \inherithandling lacute l
- \inherithandling Nacute N
- \inherithandling nacute n
- \inherithandling Oacute O
- \inherithandling oacute o
- \inherithandling Racute R
- \inherithandling racute r
- \inherithandling Sacute s
- \inherithandling sacute s
- \inherithandling Uacute U
- \inherithandling uacute u
- \inherithandling Yacute Y
- \inherithandling yacute y
- \inherithandling Zacute Z
- \inherithandling zacute z
-
- \inherithandling Dstroke D
- \inherithandling dstroke d
- \inherithandling Hstroke H
- \inherithandling hstroke h
- \inherithandling Tstroke T
- \inherithandling tstroke t
-
- \inherithandling Cdotaccent C
- \inherithandling cdotaccent c
- \inherithandling Edotaccent E
- \inherithandling edotaccent e
- \inherithandling Gdotaccent G
- \inherithandling gdotaccent g
- \inherithandling Idotaccent I
- \inherithandling idotaccent i
- \inherithandling Zdotaccent Z
- \inherithandling zdotaccent z
-
- \inherithandling Amacron A
- \inherithandling amacron a
- \inherithandling Emacron E
- \inherithandling emacron e
- \inherithandling Imacron I
- \inherithandling imacron i
- \inherithandling Omacron O
- \inherithandling omacron o
- \inherithandling Umacron U
- \inherithandling umacron u
-
- \inherithandling Ccedilla C
- \inherithandling ccedilla c
- \inherithandling Kcedilla K
- \inherithandling kcedilla k
- \inherithandling Lcedilla L
- \inherithandling lcedilla l
- \inherithandling Ncedilla N
- \inherithandling ncedilla n
- \inherithandling Rcedilla R
- \inherithandling rcedilla r
- \inherithandling Scedilla S
- \inherithandling scedilla s
- \inherithandling Tcedilla T
- \inherithandling tcedilla t
-
- \inherithandling Ohungarumlaut O
- \inherithandling ohungarumlaut o
- \inherithandling Uhungarumlaut U
- \inherithandling uhungarumlaut u
-
- \inherithandling Aogonek A
- \inherithandling aogonek a
- \inherithandling Eogonek E
- \inherithandling eogonek e
- \inherithandling Iogonek I
- \inherithandling iogonek i
- \inherithandling Uogonek U
- \inherithandling uogonek u
-
- \inherithandling Aring A
- \inherithandling aring a
- \inherithandling Uring U
- \inherithandling uring u
-
- \inherithandling Abreve A
- \inherithandling abreve a
- \inherithandling Ebreve E
- \inherithandling ebreve e
- \inherithandling Gbreve G
- \inherithandling gbreve g
- \inherithandling Ibreve I
- \inherithandling ibreve i
- \inherithandling Obreve O
- \inherithandling obreve o
- \inherithandling Ubreve U
- \inherithandling ubreve u
-
- \inherithandling Ccaron C
- \inherithandling ccaron c
- \inherithandling Dcaron D
- \inherithandling dcaron d
- \inherithandling Ecaron E
- \inherithandling ecaron e
- \inherithandling Lcaron L
- \inherithandling lcaron l
- \inherithandling Ncaron N
- \inherithandling ncaron n
- \inherithandling Rcaron R
- \inherithandling rcaron r
- \inherithandling Scaron S
- \inherithandling scaron s
- \inherithandling Tcaron T
- \inherithandling tcaron t
- \inherithandling Ycaron Y
- \inherithandling ycaron y
- \inherithandling Zcaron Z
- \inherithandling zcaron z
-
- \inherithandling AEligature E
- \inherithandling aeligature e
- \inherithandling Lstroke I
- \inherithandling lstroke o
- \inherithandling Ostroke O
- \inherithandling ostroke o
- \inherithandling OEligature O
- \inherithandling oeligature o
-
- \inherithandling Ssharp S
- \inherithandling ssharp s
- \inherithandling IJligature J
- \inherithandling ijligature j
-
- \inherithandling aumlaut a
- \inherithandling eumlaut e
- \inherithandling iumlaut i
- \inherithandling oumlaut o
- \inherithandling uumlaut u
-
- \inherithandling Aumlaut A
- \inherithandling Eumlaut E
- \inherithandling Iumlaut I
- \inherithandling Oumlaut O
- \inherithandling Uumlaut U
-
- \inherithandling Lslash L
- \inherithandling lslash l
- \inherithandling Dslash D
- \inherithandling dslash d
- \inherithandling Oslash O
- \inherithandling oslash o
-
- \inherithandling Eszett S
- \inherithandling eszett s
-
- \inherithandling Thorn P
- \inherithandling thorn p
-
- % vietnamese
-
- \inherithandling Ahook A
- \inherithandling ahook a
- \inherithandling Ehook E
- \inherithandling ehook e
- \inherithandling Ihook I
- \inherithandling ihook i
- \inherithandling Ohook O
- \inherithandling ohook o
- \inherithandling Uhook U
- \inherithandling uhook u
- \inherithandling Yhook Y
- \inherithandling yhook y
-
- \inherithandling Acircumflexgrave A
- \inherithandling Acircumflexacute A
- \inherithandling Acircumflextilde A
- \inherithandling Acircumflexhook A
- \inherithandling acircumflexgrave a
- \inherithandling acircumflexacute a
- \inherithandling acircumflextilde a
- \inherithandling acircumflexhook a
- \inherithandling Ecircumflexgrave E
- \inherithandling Ecircumflexacute E
- \inherithandling Ecircumflextilde E
- \inherithandling Ecircumflexhook E
- \inherithandling ecircumflexgrave e
- \inherithandling ecircumflexacute e
- \inherithandling ecircumflextilde e
- \inherithandling ecircumflexhook e
- \inherithandling Ocircumflexgrave O
- \inherithandling Ocircumflexacute O
- \inherithandling Ocircumflextilde O
- \inherithandling Ocircumflexhook O
- \inherithandling ocircumflexgrave o
- \inherithandling ocircumflexacute o
- \inherithandling ocircumflextilde o
- \inherithandling ocircumflexhook o
-
- \inherithandling Abrevegrave A
- \inherithandling Abreveacute A
- \inherithandling Abrevetilde A
- \inherithandling Abrevehook A
- \inherithandling abrevegrave a
- \inherithandling abreveacute a
- \inherithandling abrevetilde a
- \inherithandling abrevehook a
-
- \inherithandling Adotbelow A
- \inherithandling adotbelow a
- \inherithandling Edotbelow E
- \inherithandling edotbelow e
- \inherithandling Idotbelow I
- \inherithandling idotbelow i
- \inherithandling Odotbelow O
- \inherithandling odotbelow o
- \inherithandling Udotbelow U
- \inherithandling udotbelow u
- \inherithandling Ydotbelow Y
- \inherithandling ydotbelow y
-
- \inherithandling Ohorndotbelow O
- \inherithandling ohorndotbelow o
- \inherithandling Uhorndotbelow U
- \inherithandling uhorndotbelow u
-
- \inherithandling Acircumflexdotbelow A
- \inherithandling acircumflexdotbelow a
- \inherithandling Ecircumflexdotbelow E
- \inherithandling ecircumflexdotbelow e
- \inherithandling Ocircumflexdotbelow O
- \inherithandling ocircumflexdotbelow o
-
- \inherithandling Abrevedotbelow A
- \inherithandling abrevedotbelow a
-
- \inherithandling Ohorn O
- \inherithandling Ohorngrave O
- \inherithandling Ohornacute O
- \inherithandling Ohorntilde O
- \inherithandling Ohornhook O
- \inherithandling ohorn o
- \inherithandling ohorngrave o
- \inherithandling ohornacute o
- \inherithandling ohorntilde o
- \inherithandling ohornhook o
- \inherithandling Uhorn U
- \inherithandling Uhorngrave U
- \inherithandling Uhornacute U
- \inherithandling Uhorntilde U
- \inherithandling Uhornhook U
- \inherithandling uhorn u
- \inherithandling uhorngrave u
- \inherithandling uhornacute u
- \inherithandling uhorntilde u
- \inherithandling uhornhook u
-
- \inherithandling Ytilde Y
- \inherithandling ytilde y
- \inherithandling Etilde E
- \inherithandling etilde e
-
-\stopfonthandling
-
-\startfonthandling [hz]
-
- \defineadjustfactor A .5
- \defineadjustfactor B .7
- \defineadjustfactor C .7
- \defineadjustfactor D .5
- \defineadjustfactor E .7
- \defineadjustfactor F .7
- \defineadjustfactor G .5
- \defineadjustfactor H .7
- \defineadjustfactor K .7
- \defineadjustfactor M .7
- \defineadjustfactor N .7
- \defineadjustfactor O .5
- \defineadjustfactor P .7
- \defineadjustfactor Q .5
- \defineadjustfactor R .7
- \defineadjustfactor S .7
- \defineadjustfactor U .7
- \defineadjustfactor W .7
- \defineadjustfactor Z .7
-
- \defineadjustfactor a .7
- \defineadjustfactor b .7
- \defineadjustfactor c .7
- \defineadjustfactor d .7
- \defineadjustfactor e .7
- \defineadjustfactor g .7
- \defineadjustfactor h .7
- \defineadjustfactor k .7
- \defineadjustfactor m .7
- \defineadjustfactor n .7
- \defineadjustfactor o .7
- \defineadjustfactor p .7
- \defineadjustfactor q .7
- \defineadjustfactor s .7
- \defineadjustfactor u .7
- \defineadjustfactor w .7
- \defineadjustfactor z .7
-
- \defineadjustfactor 2 .7
- \defineadjustfactor 3 .7
- \defineadjustfactor 6 .7
- \defineadjustfactor 8 .7
- \defineadjustfactor 9 .7
-
-% \defineadjustfactor hyphen ?
-% \defineadjustfactor endash ?
-% \defineadjustfactor emdash ?
-
-\stopfonthandling
-
-% no ligs other than fi fl etc, no --- and ''
-
-\startfonthandling[noligs]
-
- \settagcode - {\notagcode}
- \settagcode ' {\notagcode}
- \settagcode ` {\notagcode}
- \settagcode ? {\notagcode}
- \settagcode ! {\notagcode}
-
-\stopfonthandling
-
-% \startfonthandling[noligs]
-% \dostepwiserecurse{0}{255}{1}{\expanded{\settagcode \recurselevel\space\notagcode\space}}
-% \stopfonthandling
-
-% \definefonthandling [noligs] [noligs] [type=tag]
- % \setupfontsynonym[Serif][handling=noligs]
-% \definefont[test][Serif at 12.34pt]
-%
-% {``fi--ffl---ffi'' \test ``fi--ffl---ffi''}
-
-\unprotect
-
-% beware: extended extends the preceding vector (both protruding and
-% adjusting) but as long as the normal ascii characters are not set
-% beforehand, they default to normal
-
-% protruding variants -- slanted/italic is yet incomplete
-
-\definefonthandling [pure] [pure] [\c!type=\v!hanging]
-\definefonthandling [purebold] [pure] [\c!type=\v!hanging]
-\definefonthandling [pureslanted] [pure] [\c!type=\v!hanging,\c!right=1.5]
-\definefonthandling [pureitalic] [pure] [\c!type=\v!hanging,\c!right=1.5]
-\definefonthandling [pureboldslanted] [pure] [\c!type=\v!hanging,\c!right=1.5]
-\definefonthandling [purebolditalic] [pure] [\c!type=\v!hanging,\c!right=1.5]
-
-\definefonthandling [normal] [punctuation,alpha,extended] [\c!type=\v!hanging]
-\definefonthandling [normalbold] [punctuation,alpha,extended] [\c!type=\v!hanging]
-\definefonthandling [normalslanted] [punctuation,alpha,extended] [\c!type=\v!hanging,\c!right=1.5]
-\definefonthandling [normalitalic] [punctuation,alpha,extended] [\c!type=\v!hanging,\c!right=1.5]
-\definefonthandling [normalboldslanted] [punctuation,alpha,extended] [\c!type=\v!hanging,\c!right=1.5]
-\definefonthandling [normalbolditalic] [punctuation,alpha,extended] [\c!type=\v!hanging,\c!right=1.5]
-
-% for old times sake
-
-\definefonthandling [bold] [punctuation,alpha,extended] [\c!type=\v!hanging]
-\definefonthandling [slanted] [punctuation,alpha,extended] [\c!type=\v!hanging,\c!right=1.5]
-\definefonthandling [italic] [punctuation,alpha,extended] [\c!type=\v!hanging,\c!right=1.5]
-\definefonthandling [boldslanted] [punctuation,alpha,extended] [\c!type=\v!hanging,\c!right=1.5]
-\definefonthandling [bolditalic] [punctuation,alpha,extended] [\c!type=\v!hanging,\c!right=1.5]
-
-% hz variants
-
-\definefonthandling [hz] [hz,extended] [\c!type=\v!hz] % min=20 max=20 step=5
-
-% combined variants
-
-\definefonthandling [quality] [hz,pure]
-\definefonthandling [highquality] [hz,normal]
-
-% noligs (xml) : \definefonthandling [default] [noligs]
-
-\definefonthandling [noligs] [noligs] [\c!type=tag]
-
-% experimental values !
-%
-% \definefontsynonym[myfont][Serif][handling=prespacing]
-% \definefont[whatever][myfont sa 1]
-% \setupalign[spacing]
-%
-% \whatever look at this: we now have a proper spacing feature and, hurray,
-% get rid of active punctuation!
-
-\startfonthandling [flexspacing]
-
- \definespacefactor : 0 1.25 .25 .25
-
- \definespacefactor , 0 1 .25 .25
- \inheritspacefactor ; ,
-
- \definespacefactor . 0 1.5 .25 .25
- \inheritspacefactor ! .
- \inheritspacefactor ? .
-
-\stopfonthandling
-
-\definefonthandling[flexspacing][flexspacing][\c!type=\v!spacing]
-
-\startfonthandling [prespacing] % better name needed
-
- \definespacefactor : .25 .25 0 0
- \inheritspacefactor ; :
- \inheritspacefactor ! :
- \inheritspacefactor ? :
-
-\stopfonthandling
-
-\definefonthandling[prespacing][prespacing][\c!type=\v!spacing] % factor=.5
-
-% A special case of guillemots, beware: when used ungrouped,
-% it overloads all successive (current) encoding vector
-% instances! Will be obsolete soon.
-
-\startfonthandling [glm]
-
- \overloadcharacter guilsingleleft {\defaultcharacter\guilsingleleft }
- \overloadcharacter guilsingleright {\defaultcharacter\guilsingleright}
- \overloadcharacter leftguillemot {\defaultcharacter\leftguillemot }
- \overloadcharacter rightguillemot {\defaultcharacter\rightguillemot }
-
-\stopfonthandling
-
-\definefonthandling [glm] [glm]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/hand-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/hand-ini.mkii
deleted file mode 100644
index 1d41c3adab7..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/hand-ini.mkii
+++ /dev/null
@@ -1,483 +0,0 @@
-%D \module
-%D [ file=hand-ini, % moved from enco-ini / pro
-%D version=2000.12.27, % 1998.12.03,
-%D title=\CONTEXT\ Handling Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D {\em This module is experimental and implements font
-%D specific features, like hanging punctuation.}
-
-\unprotect
-
-\newif\iftracefonthandling % \tracefonthandlingtrue
-
-\newif\ifskiphandlingdef \skiphandlingdeffalse
-
-\newtoks\everyenablefonthandling
-
-% much in common with hz/protruding defs
-% todo: fix others
-
-\def\dosetsomehandling#1#2#3 #4 % no define since directly set
- {\ifskiphandlingdef \else
- \doifnumberelse{\string#2}
- {#1{#2#3}{#4}}
- {\doifelsenothing{#3}
- {#1{`#2}{#4}}
- {\let\char\empty
- \doifnumberelse{\csname#2#3\endcsname}{#1{\csname#2#3\endcsname}{#4}}\donothing
- \let\char\normalchar}}%
- \fi}
-
-\def\dosetpairhandling#1#2#3 #4 #5 % no define since directly set
- {\ifskiphandlingdef \else
- \doifnumberelse{\string#2}
- {#1{#2#3}{#4}{#5}}
- {\doifelsenothing{#3}
- {#1{`#2}{#4}{#5}}
- {\let\char\empty
- \doifnumberelse{\csname#2#3\endcsname}{#1{\csname#2#3\endcsname}{#4}{#5}}\donothing
- \let\char\normalchar}}%
- \fi}
-
-\def\dosetquartethandling#1#2#3 #4 #5 #6 #7 % no define since directly set
- {\ifskiphandlingdef \else
- \doifnumberelse{\string#2}
- {#1{#2#3}{#4}{#5}{#6}{#7}}
- {\doifelsenothing{#3}
- {#1{`#2}{#4}{#5}{#6}{#7}}
- {\let\char\empty
- \doifnumberelse{\csname#2#3\endcsname}{#1{\csname#2#3\endcsname}{#4}{#5}{#6}{#7}}\donothing
- \let\char\normalchar}}%
- \fi}
-
-\def\doinhsomehandling#1#2#3 #4 % to be checked
- {\ifskiphandlingdef \else
- \if#3\relax\relax
- #1{`#2}{`#4}%
- \else
- \let\char\empty
- \doifnumberelse{\csname#2#3\endcsname}{#1{\csname#2#3\endcsname}{`#4}}\donothing
- \let\char\normalchar
- \fi
- \fi}
-
-% adjustspacing
-
-\newdimen\adjustdimen \let\handledfont\font
-
-\ifx\undefined\pdfadjustspacing % we don't use pdftex
-
- \let\enableadjusting \relax
- \let\disableadjusting \relax
- \let\setadjusting \gobbletwoarguments
-
- \def\defineadjustfactor #1 #2 {}
- \def\inheritadjustfactor #1 #2 {}
-
- \let\setfontadjusting \gobbleoneargument
-
-\else
-
- \def\enableadjusting {\pdfadjustspacing\plustwo}
- \def\disableadjusting {\pdfadjustspacing\zerocount}
-
- \appendtoks \disableadjusting \to \everyforgetall % Here or not here?
-
- \def\dododefineadjustfactor#1#2%
- {\efcode\handledfont#1\dimexpr#2\onepoint*\plusthousand/\maxcard\relax}
-
- \def\dodoinheritadjustfactor#1#2%
- {\efcode\handledfont#1\efcode\handledfont#2\relax}
-
- \def\defineadjustfactor#1 #2 %
- {\setfonttoks
- \let\inherithandling\inheritadjustfactor
- \appendtoks\dosetsomehandling\dododefineadjustfactor#1 #2 \to\fonttoks}
-
- \def\inheritadjustfactor#1 #2 %
- {\setfonttoks
- \appendtoks\doinhsomehandling\dodoinheritadjustfactor#1 #2 \to\fonttoks}
-
- \ifnum\pdftexversion<120
- \let\@@pdfexpandbonus\plusthousand
- \else
- \def\@@pdfexpandbonus{autoexpand}%
- \fi
-
- \def\setfontadjusting#1%
- {\doifvalue{\@fha@\@fha@#1\c!type}\v!hz{\dosetfontadjusting{#1}}}
-
- \def\dosetfontadjusting#1%
- {\iftracefonthandling\showfontadjusting{#1}\fi
- \pdffontexpand\handledfont
- \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!max \endcsname/%
- \csname\@fha@\@fha@#1\c!min \endcsname/%
- \csname\@fha@\@fha@#1\c!step\endcsname\space
- \fontname\handledfont}}
-\fi
-
-\ifx\setfontadjusting\gobbleoneargument \else
- \appendtoks
- \setfontadjusting\askedfonthandling
- \to \everyenablefonthandling
-\fi
-
-% protruding
-
-\newif\ifembasedprotruding \embasedprotrudingfalse
-
-\newdimen\lproddimen \newdimen\rproddimen \let\handledfont\font
-
-\ifx\undefined\pdfprotrudechars % we don't use pdftex
-
- \let\enableprotruding \relax
- \let\disableprotruding \relax
- \let\setprotrudingfactor \gobbleoneargument
-
- \def\defineprotrudefactor #1 #2 #3 {}
- \def\inheritprotrudefactor #1 #2 {}
-
-\else
-
- \def\enableprotruding {\pdfprotrudechars\plustwo}
- \def\disableprotruding{\pdfprotrudechars\zerocount}
-
- \appendtoks \disableprotruding \to \everyforgetall % Here or not here?
-
- \lproddimen1000\onepoint \divide\lproddimen\maxcard
- \rproddimen1000\onepoint \divide\rproddimen\maxcard
-
- \def\setprotrudingfactor#1%
- {\doifvalue{\@fha@\@fha@#1\c!type}\v!hanging{\dosetprotrudingfactor{#1}}}
-
- \def\dosetprotrudingfactor#1% no \onepoint instead of pt
- {\lproddimen\dimexpr\csname\@fha@\@fha@#1\c!left \endcsname\onepoint*\plusthousand/\maxcard\relax
- \rproddimen\dimexpr\csname\@fha@\@fha@#1\c!right\endcsname\onepoint*\plusthousand/\maxcard\relax
- \iftracefonthandling\showprotrudingfactor{#1}\fi}
-
- \def\showprotrudingfactor#1%
- {\writestatus\m!handlings{[protrude]\space#1\space
- \csname\@fha@\@fha@#1\c!left \endcsname\space
- \csname\@fha@\@fha@#1\c!right\endcsname\space
- \fontname\handledfont}}
-
- % division before multiplication, else overflow with "sa>5"
-
- \newdimen\protrudethreshold \protrudethreshold=36pt
-
- \def\dododefineprotrudefactor#1#2#3%
- {\lpcode\handledfont#1\dimexpr#2\lproddimen
- \ifembasedprotruding \else
- \ifdim\emwidth>\protrudethreshold
- /\emwidth*\fontcharwd\handledfont#1%
- \else
- *\fontcharwd\handledfont#1/\emwidth
- \fi
- \fi
- \relax
- \rpcode\handledfont#1\dimexpr#3\rproddimen
- \ifembasedprotruding \else
- \ifdim\emwidth>\protrudethreshold
- /\emwidth*\fontcharwd\handledfont#1%
- \else
- *\fontcharwd\handledfont#1/\emwidth
- \fi
- \fi
- \relax}
-
- \def\dodoinheritprotrudefactor#1#2%
- {\lpcode\handledfont#1\lpcode\handledfont#2\relax
- \rpcode\handledfont#1\rpcode\handledfont#2\relax}
-
- \def\defineprotrudefactor#1 #2 #3 %
- {\setfonttoks
- \let\inherithandling\inheritprotrudefactor
- \appendtoks\dosetpairhandling\dododefineprotrudefactor#1 #2 #3 \to\fonttoks}
-
- \def\inheritprotrudefactor#1 #2 %
- {\setfonttoks
- \appendtoks\doinhsomehandling\dodoinheritprotrudefactor#1 #2 \to\fonttoks}
-
-\fi
-
-\ifx\setprotrudingfactor\gobbleoneargument \else
- \appendtoks
- \setprotrudingfactor\askedfonthandling
- \to \everyenablefonthandling
-\fi
-
-% Basic support for a new pdftex feature: space factors
-%
-% \knbccode -- kern before char code
-% \knbscode -- kern before space code
-% \stbscode -- stretch before space code
-% \shbscode -- shrink before space code
-%
-% Setting \knsbcode\font`\.=200 means that if a period sits before
-% a interword space (glue), then the interword glue will be increased
-% by an amount of 1em*200/1000, i.e. the value is given in thousandths
-% of an em. (HTT)
-
-\newdimen\spfacdimen
-
-\ifx\undefined\pdfadjustinterwordglue % we don't use pdftex
-
- \let\enablespacehandling \relax
- \let\disablespacehandling \relax
- \let\enablekernhandling \relax
- \let\disablekernhandling \relax
-
- \let\setspacehandling \gobbleoneargument
-
- \def\definespacefactor #1 #2 #3 #4 #5 {}
- \def\inheritspacefactor #1 #2 {}
-
-\else
-
- \def\enablespacehandling {\pdfadjustinterwordglue\plusone }
- \def\disablespacehandling{\pdfadjustinterwordglue\minusone}
- \def\enablekernhandling {\pdfprependkern \plusone }
- \def\disablekernhandling {\pdfprependkern \minusone}
-
- \appendtoks \disablespacehandling \to \everyforgetall % Here or not here?
-
- \def\dosetspacehandling#1%
- {\spfacdimen\csname\@fha@\@fha@#1\c!factor\endcsname\s!pt
- \multiply\spfacdimen\plusthousand\divide\spfacdimen\maxcard\relax}
-
- \def\setspacehandling#1%
- {\doifvalue{\@fha@\@fha@#1\c!type}\v!spacing{\dosetspacehandling{#1}}}
-
- \def\dododefinespacefactor#1#2#3#4#5%
- {\sfcode#1\plusthousand
- \knbccode\handledfont#1\dimexpr#2\spfacdimen\relax
- \knbscode\handledfont#1\dimexpr#3\spfacdimen\relax
- \stbscode\handledfont#1\dimexpr#4\spfacdimen\relax
- \shbscode\handledfont#1\dimexpr#5\spfacdimen\relax}
-
- \def\dodoinheritspacefactor#1#2%
- {\sfcode#1\plusthousand
- \knbccode\handledfont#1\knbccode\handledfont#2\relax
- \knbscode\handledfont#1\knbscode\handledfont#2\relax
- \stbscode\handledfont#1\stbscode\handledfont#2\relax
- \shbscode\handledfont#1\shbscode\handledfont#2\relax}
-
- \def\definespacefactor#1 #2 #3 #4 #5 %
- {\setfonttoks
- \let\inherithandling\inheritspacefactor
- \appendtoks\dosetquartethandling\dododefinespacefactor#1 #2 #3 #4 #5 \to\fonttoks}
-
- \def\inheritspacefactor#1 #2 %
- {\setfonttoks
- \appendtoks\doinhsomehandling\dodoinheritspacefactor#1 #2 \to\fonttoks}
-
-\fi
-
-\ifx\setspacehandling\gobbleoneargument \else
- \appendtoks
- \setspacehandling\askedfonthandling
- \to \everyenablefonthandling
-\fi
-
-% font attributes
-
-\let\notagcode\minusone
-
-\ifx\tagcode\undefined
-
- \def\settagcode #1 #2 {}
-
-\else
-
- \def\dodosettagcode#1#2%
- {\tagcode\handledfont#1 #2\relax}
-
- \def\settagcode#1 #2 %
- {\setfonttoks
- \appendtoks\dosetsomehandling\dodosettagcode#1 #2 \to\fonttoks}
-
-\fi
-
-% hook into font mechanism
-
-\let\fonthandling\empty
-
-\def\startfonthandling[#1]%
- {\def\fonthandling{#1}%
- \ifcsname\@fha@\fonthandling\endcsname\else
- \expandafter\newtoks\csname\@fha@\fonthandling\endcsname
- \fi
- \setfonttoks}
-
-\def\stopfonthandling
- {\let\fonthandling\empty}
-
-\def\setfonttoks
- {\@EA\let\@EA\fonttoks\csname\@fha@\fonthandling\endcsname}
-
-\def\definefonthandling
- {\dotripleempty\dodefinefonthandling}
-
-\def\dodefinefonthandling[#1][#2][#3]%
- {\ifthirdargument
- \setvalue{\@fha@\@fha@#1}{#2}%
- \getparameters
- [\@fha@\@fha@#1]
- [\c!type=\v!hanging,%
- \c!left=1,\c!right=1,%
- \c!min=20,\c!max=20,\c!step=5,%
- \c!factor=1,%
- #3]%
- \else
- \setvalue{\@fha@\@fha@\@fha@#1}{#2}%
- \fi}
-
-\def\setupfonthandling
- {\dodoubleempty\dosetupfonthandling}
-
-\def\dosetupfonthandling[#1][#2]%
- {\getparameters[\@fha@\@fha@#1][#2]}
-
-\def\enablehandling
- {\dodoubleempty\doenablehandling}
-
-\def\doenablehandling[#1][#2]% handling / symbolic fontname
- {\fastenablehandling{#1}{#2}} % for the moment the same as:
-
-\def\fastenablehandling#1#2% also gets #2 passed
- {\edef\askedfonthandling{#1}%
- \edef\filoffonthandling{#2}%
- \ifcsname\@fha@\@fha@\@fha@\askedfonthandling\endcsname
- \@EA\redofastenablehandling
- \else\ifcsname\@fha@\@fha@\askedfonthandling\endcsname
- \@EAEAEA\dofastenablehandling
- \else
- \@EAEAEA\nofastenablehandling
- \fi\fi}
-
-\def\xfastenablehandling#1%
- {\edef\askedfonthandling{#1}%
- \ifcsname\@fha@\@fha@\askedfonthandling\endcsname
- \@EA\dofastenablehandling
- \else
- \@EA\nofastenablehandling
- \fi}
-
-\def\redofastenablehandling
- {\startdirectcharacters
- \edef\fonthandling{\csname\@fha@\@fha@\@fha@\askedfonthandling\endcsname}%
- \rawprocesscommacommand[\fonthandling]\xfastenablehandling
- \stopdirectcharacters}
-
-\def\dofastenablehandling
- {\startdirectcharacters
- \the\everyenablefonthandling
- \edef\fonthandling{\csname\@fha@\@fha@\askedfonthandling\endcsname}%
- \checkfonthandling\filoffonthandling
- \rawprocesscommacommand[\fonthandling]\dodoenablehandling
- \registerfonthandling\filoffonthandling
- \stopdirectcharacters}
-
-\def\nofastenablehandling
- {\the\everyenablefonthandling
- \let\fonthandling\askedfonthandling
- \dodoenablehandling\fonthandling}
-
-\def\dodoenablehandling#1%
- {\ifcsname\@fha@#1\endcsname
- \the\csname\@fha@#1\endcsname
- \fi}
-
-%D We must not use \type {\purefontname} here (was a bug)!
-
-% not robust as long as tex reuses definitions internally
-%
-% \def\checkfonthandling#1% we need a fast compare
-% {\doifelsevalue{#1\s!handling\c!file}{\fontname\font}
-% \skiphandlingdeftrue\skiphandlingdeffalse}
-%
-% \def\registerfonthandling#1%
-% {\@EA\xdef\csname#1\s!handling\c!file\endcsname{\fontname\font}}
-
-\def\checkfonthandling #1{\skiphandlingdeffalse}
-\let\registerfonthandling \gobbleoneargument
-
-%D This one makes live easier (less definitions):
-
-\def\inherithandling #1 #2 %
- {\inheritprotrudefactor #1 #2 %
- \inheritadjustfactor #1 #2 }
-
-%D \macros
-%D {usehandling}
-%D
-%D Handling definitions are collected in dedicated files and
-%D loaded only once:
-%D
-%D % \showsetup{usehandling}
-
-\def\dousehandling#1% is the same as encoding
- {\doifundefined{\c!file\f!handlingprefix#1}%
- {\letvalueempty{\c!file\f!handlingprefix#1}%
- \makeshortfilename[\truefilename{\f!handlingprefix#1}]%
- \startreadingfile
- \readsysfile{\shortfilename.mkii}
- {\showmessage\m!handlings2{#1}}
- {\showmessage\m!handlings3{#1}}%
- \stopreadingfile}}
-
-\def\usehandling[#1]%
- {\processcommalist[#1]\dousehandling}
-
-%D New:
-
-\def\overloadcharacter#1 #2 %
- {\setfonttoks
- \doifnumberelse{\string#2}
- {\appendtoks\dooverloadcharacter{#1}{\char#2 }\to\fonttoks}
- {\appendtoks\dooverloadcharacter{#1}{#2}\to\fonttoks}}
-
-\def\dooverloadcharacter#1%
- {\setvalue{\characterencoding\string#1}}
-
-%D Let's now see if this macro works:
-
-% \setupfonthandling
-% [\s!default]
-% [\c!links=1,\c!rechts=1,\c!min=20,\c!max=20,\c!stap=5]
-
-% Beware of fonttoks:
-%
-% \startfonthandling[morespacing]
-% \appendtoks
-% \fontdimen2\handledfont=.50em
-% \fontdimen3\handledfont=.25em
-% \fontdimen4\handledfont=.25em
-% \to \fonttoks
-% \stopfonthandling
-%
-% \definefonthandling [morespacing] [morespacing]
-%
-% \definefontsynonym[xtexnansi-lmr7][texnansi-lmr7][handling=morespacing]
-% \definefont[crap][texnansi-lmr7]
-%
-% \crap \the\fontdimen2\font, \the\fontdimen3\font, \the\fontdimen4\font
-
-\usehandling [def]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/java-ans.mkii b/Master/texmf-dist/tex/context/base/mkii/java-ans.mkii
deleted file mode 100644
index 7e310baa495..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/java-ans.mkii
+++ /dev/null
@@ -1,28 +0,0 @@
-%D \module
-%D [ file=java-ans,
-%D version=1998.06.01,
-%D title=\CONTEXT\ JavaScript Macros,
-%D subtitle=Answer Analization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\startJSpreamble{Do_Check_Answer} used later
-
- function Do_Check_Answer (field, value)
- { if (event.value.toLowerCase()==value.toLowerCase())
- { event.target.hidden = true }
- % { event.target.display = display.hidden }
- return("\040") } // funny, "" does not work
-
-\stopJSpreamble
-
-\startJScode{Check_Answer} uses {Do_Check_Answer}
- event.value = Do_Check_Answer(JS_S_1, JS_S_2) ;
-\stopJScode
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/java-exa.mkii b/Master/texmf-dist/tex/context/base/mkii/java-exa.mkii
deleted file mode 100644
index 584ee13512d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/java-exa.mkii
+++ /dev/null
@@ -1,395 +0,0 @@
-%D \module
-%D [ file=java-exa,
-%D version=2002.??.??,
-%D title=\CONTEXT\ JavaScript Macros,
-%D subtitle=Example Support,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% XFDF versus HTML
-% localhost versus remote versus set
-
-% filename | filename-nr => name
-% fakename | fakename-nr => file upload, unless localhost
-%
-% we erase the list because otherwise we end up in browser remembering
-% problems; also, it is not possible to set upload fields 'manually'
-
-\startJSpreamble request_1 used now
-
- var example_method = "HTML" ;
- var example_host = "" ;
- var example_port = "" ;
- var example_url = "" ;
- var example_file = "" ;
-
- var example_log = true ; % false
-
- function stripped_exa_value( name ) {
- f = this.getField(name) ;
- if (f) {
- str = f.value ;
- if (str.indexOf(name+'-')==0) {
- str = str.substr(name.length+1) ;
- }
- return str ;
- } else {
- return "" ;
- }
- }
-
- function identify_example_url ( ) {
- if (example_log) {
- console.clear ;
- console.println("base url: "+this.baseURL) ;
- console.println("this url: "+this.URL) ;
- }
- if (this.baseURL != "") {
- example_url = this.baseURL ;
- } else {
- if (this.URL != "") {
- example_url = this.URL
- }
- }
- if (example_url.indexOf("file://")>=0) {
- example_url = "" ;
- }
- str = stripped_exa_value("examplehost") ;
- if (str != "auto") {
- example_host = str ;
- if (str == "localhost") {
- example_port = "8061"
- }
- }
- str = stripped_exa_value("exampleport") ;
- if (str != "auto") {
- example_port = str ;
- }
- if (example_log) {
- console.println("example_url: "+example_url) ;
- console.println("example_host: "+example_host) ;
- console.println("example_port: "+example_port) ;
- }
- }
-
- function check_example_url ( url ) {
- if (url.indexOf("file://")>=0) {
- url = "http://localhost:8061" ;
- console.println("file url replaced by: "+url) ;
- } else {
- if (url.indexOf("://")<0) {
- url = "http://" + url ;
- }
- if (example_log) {
- console.println("url before check: "+url) ;
- }
-% url = url.replace(/(http:\\\/\\\/.+)(\\\/.*$)/, "$1") ;
- url = url.replace(/(https*:\\\/\\\/.+?)(\\\/.*$)/, "$1/exarequest") ;
- if (example_log) {
- console.println("url after check: "+url) ;
- }
- }
- return url ;
- }
-
- function set_example_xfdf ( method ) {
- example_method = method ;
- }
-
- function set_example_file ( file ) {
- example_method = file ;
- }
-
- function set_example_host ( host ) {
- example_host = host ;
- }
-
- function set_example_port ( port ) {
- example_host = host ;
- }
-
- function do_erase_example_file(tag) {
- f = this.getField(tag) ;
- if (f) {
- f.value = "" ;
- }
- }
-
- function do_erase_example_list(tag) {
- for (i=1;i<=100;i++) {
- f = this.getField(tag+"-"+i) ;
- if (f) {
- f.value = "" ;
- } else {
- return
- }
- }
- }
-
- function do_submit_example_url ( url ) {
- if ((example_method == "XFDF" ) || (url.indexOf("localhost")>=0)) {
- do_erase_example_file("fakename") ;
- do_erase_example_list("fakename") ;
- }
- url = check_example_url(url) ;
- if (example_log) {
- console.println("submitting form to "+url+" using method "+example_method) ;
- }
- if (example_file != "") {
- url = url + "/" + example_file ;
- }
- % we need the bFDF for acrobat 5
- this.submitForm({cURL : url, bFDF : false, cSubmitAs : example_method}) ;
- }
-
- function submit_example_form ( ) {
- identify_example_url() ;
- if (example_host != "") {
- if (example_port != "") {
- do_submit_example_url(example_host+":"+example_port) ;
- } else {
- do_submit_example_url(example_host) ;
- }
- } else {
- if (example_url != "") {
- do_submit_example_url(example_url) ;
- } else {
- if (example_port != "") {
- do_submit_example_url("localhost"+":"+example_port) ;
- } else {
- do_submit_example_url("localhost:8061") ; % local exampler
- }
- }
- }
- resetfilename () ;
- }
-
- function submit_form ( host, port) {
- set_example_host(host) ;
- set_example_post(post) ;
- submit_example_form ;
- }
-
-\stopJSpreamble
-
-\startJSpreamble request_2 used now
-
- var exa_command = "" ;
- var exa_option = "" ;
- var exa_filename = "" ;
- var exa_filelist = "" ;
- var exa_registered = "" ;
-
- function set_request (command,option) {
- exa_command = command ;
- if (exa_command == "") {
- exa_option = option ;
- } else { if (option == "") {
- exa_option = "" ;
- } else { if (option.indexOf("--")<0) {
- exa_option = "--action=" + option ;
- } else {
- exa_option = option ;
- } } }
- }
-
- function assemble_request ( ) {
- v = this.getField('filename') ;
- if (v) {
- exa_filename = v.value ;
- }
- v = this.getField('filelist') ;
- if (v) {
- exa_filelist = v.value ;
- }
-% exa_filename = exa_filename.replace(/\\\\/g,'/') ;
-% exa_filelist = exa_filelist.replace(/\\\\/g,'/') ;
- str = "<?xml version='1.0' ?>\\n" ;
- str = str+"<exa:request xmlns:exa='http://www.pragma-ade.com/schemas/example.rng'><exa:application>" ;
- if (exa_filelist == "") {
- exa_filelist = exa_registered ;
- } else { if (exa_registered != "") {
- exa_filelist = exa_filelist + "\\n" + exa_registered ;
- } }
- if (exa_command != "") {
- str = str+"<exa:command>"+exa_command+"</exa:command>" ;
- }
- if (exa_option != "") {
- str = str+"<exa:option>"+exa_option+"</exa:option>" ;
- }
- if (exa_filename != "") {
- str = str+"<exa:filename>"+exa_filename+"</exa:filename>" ;
- }
- var fls = "" ;
- if (exa_filelist != "") {
- % old method, soon obsolete
- lst = exa_filelist.split(/\\s/) ;
- for (i=0;i<lst.length;i++) {
- fls = fls+"<exa:entry>"+lst[i]+"</exa:entry>" ;
- }
- } else { if (exa_multiple) {
- for (i=1;i<=100;i++) {
- % console.println("file field "+i) ;
- f = this.getField("filename-"+ i) ;
-% if (f) { if (f.value != "") {
-% if (g) { if (g.value == "") {
-% fls = fls+"<exa:entry>"+f.value+"</exa:entry>" ;
-% } else {
-% fls = fls+"<exa:entry label='" + g.value + "'>"+f.value+"</exa:entry>" ;
-% } } else {
-% fls = fls+"<exa:entry>"+f.value+"</exa:entry>" ;
-% }
-% } }
- if (f) { if (f.value != "") {
- fls = fls + "<exa:entry" ;
- g = this.getField("dataname-"+ i) ;
- if (g) { if (g.value == "") {
- % console.println("a") ;
- fls = fls + ">" ;
- } else {
- % console.println("b") ;
- fls = fls + " label='" + g.value + "'>" ;
- } } else {
- % console.println("c") ;
- fls = fls + ">" ;
- }
- fls = fls + f.value + "</exa:entry>" ;
- } }
- }
- } }
- if (fls != "") {
- str = str + "<exa:filelist>" + fls + "</exa:filelist>" ;
- }
- str = str + "</exa:application></exa:request>" ;
- v = this.getField('exa:request') ;
- if (v) {
- v.value = str ;
- }
- }
-
-\stopJSpreamble
-
-\startJSpreamble request_3 used now
-
- var exa_multiple = false ;
-
- function setfilename ( suffixes ) {
- if (event.targetName) {
- var name = event.targetName ;
- var fake = name.replace(/filename/,"fakename") ;
- } else {
- var name = 'filename' ;
- var fake = 'fakename' ;
- }
- f = this.getField(fake) ;
- if (f) {
- f.browseForFileToSubmit() ;
- if ((suffixes != "") && (f.value != "")) {
- %
- s = suffixes.replace(/,/g,"|") ;
- r = new RegExp() ;
- s = "\\\\.(" + s + ")$" ;
- r.compile(s, "i") ;
- if (f.value.search(r)<=0) {
- f.value = "" ;
- app.alert('This filetype is not permitted.') ;
- %
- % lst = suffixes.split(/,/) ;
- % ok = false ;
- % for (i=0;i<lst.length;i++) {
- % if (f.value == lst[i]) {
- % ok = true ;
- % }
- % }
- % if (! ok) {
- % f.value = "" ;
- % app.alert('This filetype is not permitted.') ;
- %
- }
- }
- g = this.getField(name) ;
- if (g) {
- g.value = f.value ;
- }
-% we need to set the value of the selector to empty else
-% we get some funny preloading of multimeg files in spite
-% of the specs that say that xml fields will not get sent
-% if (example_method == "XFDF" ) {
-% f.value = "" ;
-% } else {
-% identify_example_url ;
-% if (example_url.indexOf("localhost")>=0) {
-% f.value = "" ;
-% }
-% }
- }
- this.dirty = false ;
- }
-
- function addfilename () {
- if (exa_multiple) {
- h = this.getField("filelist") ;
- g = this.getField("filename") ;
- if ((g) && (h)) {
- str = g.value ;
- if (h.value == "") {
- h.value = str ;
- } else {
- h.value = h.value + "\\n" + str ;
- }
- g.value = "" ;
- this.value = "" ;
- }
- }
- this.dirty = false ;
- }
-
- % this only works with client that assembles request
-
- function registerfilename (str) {
- if (str!="") {
- h = this.getField("filelist") ;
- if (h) {
- if (h.value != "") {
- h.value = h.value + "\\n" ;
- }
- h.value = h.value + str ;
- } else {
- if (exa_registered != "") {
- exa_registered = exa_registered + "\\n" ;
- }
- exa_registered = exa_registered + str ;
- }
- }
- console.show ;
- console.println('registered files') ;
- console.println("file: "+str) ;
- console.println("list: "+exa_registered) ;
- this.dirty = false ;
- }
-
- function checkfilename () {
- }
-
- function getfilename ( suffixes ) {
- setfilename(suffixes) ;
- checkfilename() ;
- addfilename() ;
- }
-
- function resetfilename () {
- do_erase_example_file("fakename") ;
- do_erase_example_file("filename") ;
- do_erase_example_file("filelist") ;
- do_erase_example_list("filename") ;
- do_erase_example_list("fakename") ;
- }
-
-\stopJSpreamble
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/java-fil.mkii b/Master/texmf-dist/tex/context/base/mkii/java-fil.mkii
deleted file mode 100644
index 20376af44d6..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/java-fil.mkii
+++ /dev/null
@@ -1,48 +0,0 @@
-%D \module
-%D [ file=java-fil,
-%D version=1998.06.01,
-%D title=\CONTEXT\ JavaScript Macros,
-%D subtitle=Filing and Printing,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\startJSpreamble Auxiliary used now
-
- function DocumentFileName ()
- { var Paths = this.path.split("/") ;
- Paths = Paths[Paths.length-1].split(".") ;
- return(Paths[0]) }
-
- function Print_Page_Range(From, To) % gaat mis, nog geen args mogelijk
- { if ((Number(From)>0)&&(Number(To)>=Number(From)))
- { var myFrom = Number(From)-1 ;
- var myTo = Number(To)-1 ;
- this.print(false,myFrom,myTo,true) } }
-
- function Print_This_Page ()
- { this.print(false,this.pageNum,this.pageNum,true) }
-
-\stopJSpreamble
-
-\definereference
- [PrintSubPaginas]
- [JS(Print_Page_Range{\firstsubpage,\lastsubpage})]
-
-\definereference
- [PrintSubPages]
- [JS(Print_Page_Range{\firstsubpage,\lastsubpage})]
-
-\definereference
- [PrintDezePagina]
- [JS(Print_This_Page)]
-
-\definereference
- [PrintThisPage]
- [JS(Print_This_Page)]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/java-fld.mkii b/Master/texmf-dist/tex/context/base/mkii/java-fld.mkii
deleted file mode 100644
index 0a76cc93c12..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/java-fld.mkii
+++ /dev/null
@@ -1,475 +0,0 @@
-%D \module
-%D [ file=java-fld,
-%D version=1998.05.20,
-%D title=\CONTEXT\ JavaScript Macros,
-%D subtitle=Field Support,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% will be simplified, since we now parse functions
-
-% nu nog alles geladen, moet dus anders
-
-\startJSpreamble {Sanitize_TeX_Input} used later
-
- function Sanitized_TeX_String (value)
- { var v = value ;
- v = v.replace( /\\\\oe/g,"\\234") ;
- v = v.replace( /\\\\<</g,"\\253") ;
- v = v.replace( /\\\\>>/g,"\\273") ;
- v = v.replace( /\\\\`A/g,"\\300") ;
- v = v.replace( /\\\\'A/g,"\\301") ;
- v = v.replace( /\\\\^A/g,"\\302") ;
- v = v.replace( /\\\\~A/g,"\\303") ;
- v = v.replace( /\\\\"A/g,"\\304") ;
- v = v.replace( /\\\\oA/g,"\\305") ;
- v = v.replace( /\\\\AE/g,"\\306") ;
- v = v.replace( /\\\\,C/g,"\\307") ;
- v = v.replace( /\\\\`E/g,"\\310") ;
- v = v.replace( /\\\\'E/g,"\\311") ;
- v = v.replace( /\\\\^E/g,"\\312") ;
- v = v.replace( /\\\\"E/g,"\\313") ;
- v = v.replace( /\\\\`I/g,"\\314") ;
- v = v.replace( /\\\\'I/g,"\\315") ;
- v = v.replace( /\\\\^I/g,"\\316") ;
- v = v.replace( /\\\\"I/g,"\\317") ;
- v = v.replace( /\\\\~N/g,"\\321") ;
- v = v.replace( /\\\\`O/g,"\\322") ;
- v = v.replace( /\\\\'O/g,"\\323") ;
- v = v.replace( /\\\\^O/g,"\\324") ;
- v = v.replace( /\\\\~O/g,"\\325") ;
- v = v.replace( /\\\\"O/g,"\\326") ;
- v = v.replace( /\\\\`U/g,"\\331") ;
- v = v.replace( /\\\\'U/g,"\\332") ;
- v = v.replace( /\\\\^U/g,"\\333") ;
- v = v.replace( /\\\\"U/g,"\\334") ;
- v = v.replace( /\\\\'Y/g,"\\335") ;
- v = v.replace( /\\\\ss/g,"\\337") ;
- v = v.replace( /\\\\`a/g,"\\340") ;
- v = v.replace( /\\\\'a/g,"\\341") ;
- v = v.replace( /\\\\^a/g,"\\342") ;
- v = v.replace( /\\\\~a/g,"\\343") ;
- v = v.replace( /\\\\"a/g,"\\344") ;
- v = v.replace( /\\\\oa/g,"\\345") ;
- v = v.replace( /\\\\ae/g,"\\346") ;
- v = v.replace( /\\\\,c/g,"\\347") ;
- v = v.replace( /\\\\`e/g,"\\350") ;
- v = v.replace( /\\\\'e/g,"\\351") ;
- v = v.replace( /\\\\^e/g,"\\352") ;
- v = v.replace( /\\\\"e/g,"\\353") ;
- v = v.replace( /\\\\`i/g,"\\354") ;
- v = v.replace( /\\\\'i/g,"\\355") ;
- v = v.replace( /\\\\^i/g,"\\356") ;
- v = v.replace( /\\\\"i/g,"\\357") ;
- v = v.replace( /\\\\~n/g,"\\361") ;
- v = v.replace( /\\\\`o/g,"\\362") ;
- v = v.replace( /\\\\'o/g,"\\363") ;
- v = v.replace( /\\\\^o/g,"\\364") ;
- v = v.replace( /\\\\~o/g,"\\365") ;
- v = v.replace( /\\\\"o/g,"\\366") ;
- v = v.replace( /\\\\`u/g,"\\371") ;
- v = v.replace( /\\\\'u/g,"\\372") ;
- v = v.replace( /\\\\^u/g,"\\373") ;
- v = v.replace( /\\\\"u/g,"\\374") ;
- v = v.replace( /\\\\'y/g,"\\375") ;
- v = v.replace( /\\\\"y/g,"\\377") ;
- return(v) }
-
- var TeX_Key_Mode = 0 ;
-
- function Initialize_TeX_Keystroke ()
- { TeX_Key_Char = "" ;
- TeX_Key_Mode = 0 }
-
- function Sanitized_TeX_Keystroke (change)
- { if (change=="\\\\")
- { TeX_Key_Mode = 1 ;
- return("") }
- else if (TeX_Key_Mode==1)
- { TeX_Key_Mode = 2 ;
- TeX_Key_Char = change ;
- return("") }
- else if (TeX_Key_Mode==2)
- { TeX_Key_Mode = 0 ;
- TeX_Key_Char = "\\\\"+TeX_Key_Char+change ;
- return(Sanitized_TeX_String(TeX_Key_Char)) }
- else
- { TeX_Key_Mode = 0 ;
- return(change) } }
-
-\stopJSpreamble
-
-\startJScode {Initialize_TeX_Key} uses {Sanitize_TeX_Input}
- Initialize_TeX_Keystroke() ;
-\stopJScode
-
-\startJScode {Convert_TeX_Key} uses {Sanitize_TeX_Input}
- if (!event.willCommit)
- { event.change = Sanitized_TeX_Keystroke(event.change) }
-\stopJScode
-
-\startJScode{Convert_TeX_String} uses {Sanitize_TeX_Input}
- event.value = Sanitized_TeX_String(event.value) ;
-\stopJScode
-
-\startJSpreamble fields_1 used now
-
-var visible_field = new Array() ;
-var visible_fields = 0 ;
-
-function PresetFields ( )
- { this.syncAnnotScan() }
-
-function Preset_Fields ( )
- { this.syncAnnotScan() }
-
-function Hide_When_Down ( )
- { event.target.hidden = true }
-
-function Hide_Field ( Name )
- { var v = this.getField(Name) ;
- if (v)
- { v.hidden = true ;
- v.readonly = true ;
- this.dirty = false } }
-
-function Do_Vide_Field ( Name, Closable )
- { var v = this.getField(Name) ;
- if (v)
- { ++visible_fields ;
- visible_field[visible_fields] = Name ;
- v.hidden = false ;
- if (Closable)
- { v.readonly = false ;
- v.value = "On" }
- this.dirty = false } }
-
-function Vide_Field ( Name )
- { Do_Vide_Field(Name,false) }
-
-function Vide_Hide_Field ( Name )
- { Do_Vide_Field(Name,true) }
-
-function Hide_Fields ()
- { while (visible_fields>0)
- { Hide_Field(visible_field[visible_fields]) ;
- --visible_fields } }
-
-function Vide_Fields ( Name )
- { Hide_Fields () ;
- Vide_Field ( Name) }
-
-function Vide_Hide_Fields ( Name )
- { Hide_Fields () ;
- Vide_Hide_Field ( Name) }
-
-function Toggle_Hide ( Name )
- { var v = this.getField(Name) ;
- if (v)
- { v.hidden = !v.hidden ;
- this.dirty = false } }
-
-function Field_On ( Name )
- { v = this.getField(Name) ;
- if (v) { v.value = "On" ; this.dirty = false } }
-
-function Field_Off ( Name )
- { var v = this.getField(Name) ;
- if (v) { v.value = "Off" ; this.dirty = false } }
-
-function Toggle_Value ( Name )
- { var v = this.getField(Name) ;
- if (v)
- { if (v.value=="On")
- { v.value = "Off" }
- else
- { v.value = "On" } }
- this.dirty = false }
-
-function Toggle_Read ( Name )
- { var v = this.getField(Name);
- if (v) { v.readonly = !v.readonly } }
-
-function Flip_Fields ( Name )
- { var Names = Name.split(",") ;
- for (var i=0;i<Names.length;i++)
- { v = this.getField(Names[i]) ;
- if (v)
- { v.hidden = !v.hidden ;
- v.value = "On" } } }
-
-function Forget_Changes ()
- { this.dirty = false }
-
-function ForgetChanges ()
- { this.dirty = false }
-\stopJSpreamble
-
-%\startJScode{Hide_When_Down} Hide_When_Down() \stopJScode
-%\startJScode{Hide_Field} Hide_Field(JS_S_1) \stopJScode
-%\startJScode{Vide_Field} Vide_Field(JS_S_1) \stopJScode
-%\startJScode{Toggle_Hide} Toggle_Hide(JS_S_1) \stopJScode
-%\startJScode{Field_On} Field_On(JS_S_1) \stopJScode
-%\startJScode{Field_Off} Field_Off(JS_S_1) \stopJScode
-%\startJScode{Toggle_Value} Toggle_Value(JS_S_1) \stopJScode
-%\startJScode{Toggle_Read} Toggle_Read(JS_S_1) \stopJScode
-%\startJScode{Flip_Fields} Flip_Fields(JS_S_1) \stopJScode
-%
-%\startJScode{Forget_Changes} this.dirty = false \stopJScode
-
-\definereference[ForgetChanges][JS(Forget_Changes)]
-
-% This can be done more efficient, by keeping track of the
-% current top of the stack.
-
-\startJSpreamble FieldStack used later
-
-function Reset_Fields ( FieldSet ) {
- var i = 1 ;
- while (true) {
- v = this.getField(FieldSet+":"+i) ;
- if (!v) {
- break ;
- } else {
- v.value = "Off" ;
- }
- i++ ;
- }
-}
-
-function Set_Fields ( FieldSet ) {
- var i = 1 ;
- while (true) {
- v = this.getField(FieldSet+":"+i) ;
- if (!v) {
- break ;
- } else {
- v.value = "On" ;
- }
- i++ ;
- }
-}
-
-function Set_Field ( FieldSet, FieldName ) {
- Reset_Fields(FieldSet) ;
- v = this.getField(FieldSet+":"+FieldName) ;
- if (v) {
- v.value = "On" ;
- }
-}
-
-function Reset_Field ( FieldSet, FieldName ) {
- Set_Fields(FieldSet) ;
- v = this.getField(FieldSet+":"+FieldName) ;
- if (v) {
- v.value = "Off" ;
- }
-}
-
-function Walk_Field ( FieldSet ) {
- var i = 1 ;
- while (true) {
- v = this.getField(FieldSet+":"+i) ;
- if (v) {
- if (v.value=="On") {
- v.value = "Off" ;
- var ii = i ;
- ii++ ;
- v = this.getField(FieldSet+":"+ii) ;
- if (!v) {
- v = this.getField(FieldSet+":"+1) ;
- }
- if (v) {
- v.value = "On" ;
- }
- break ;
- }
- i++ ;
- } else {
- break ;
- }
- }
-}
-
-var FieldSets = new Array() ;
-
-function Do_Get_Check_Walk_Field ( FieldSet ) {
- var f = FieldSets[FieldSet]
- if (! f) {
- f = new Array() ;
- f.number = 0 ;
- f.delay = 500 ;
- f.paused = false ;
- f.running = false ;
- f.name = FieldSet ;
- f.timeout = null ;
- FieldSets[FieldSet] = f ;
- }
- return f
-}
-
-function Do_Next_Auto_Walk_Field ( FieldSet ) {
- var fieldset = Do_Get_Check_Walk_Field(FieldSet) ;
- if (fieldset) {
- var v = this.getField(FieldSet + ":" + fieldset.number) ;
- if (v) {
- if (v.value == "On") {
- v.value = "Off" ;
- }
- }
- fieldset.number++ ;
- v = this.getField(FieldSet + ":" + fieldset.number) ;
- if (! v) {
- fieldset.number = 1 ;
- v = this.getField(FieldSet + ":" + fieldset.number) ;
- }
- if (v) {
- v.value = "On"
- }
- }
-}
-
-function Do_Stop_Auto_Walk_Field ( FieldSet ) {
- var fieldset = Do_Get_Check_Walk_Field(FieldSet) ;
- if (fieldset) {
- try {
- app.clearInterval(fieldset.timeout) ;
- app.clearTimeOut(fieldset.timeout) ;
- } catch (e) {
- }
- }
-}
-
-function Do_Start_Auto_Walk_Field ( FieldSet ) {
- var fieldset = Do_Get_Check_Walk_Field(FieldSet) ;
- if (fieldset) {
- Do_Stop_Auto_Walk_Field(FieldSet) ;
- fieldset.timeout = app.setInterval("Do_Next_Auto_Walk_Field('"+FieldSet+"')", fieldset.delay) ;
- }
-}
-
-function Start_Walk_Field ( FieldSet, Delay ) {
- var fieldset = Do_Get_Check_Walk_Field(FieldSet) ;
- if (fieldset) {
- fieldset.number = 0 ;
- if (Delay) {
- fieldset.delay = Delay ;
- }
- Reset_Fields(FieldSet) ;
- Do_Start_Auto_Walk_Field(FieldSet) ;
- fieldset.running = true ;
- fieldset.paused = false ;
- }
-}
-
-function Pause_Walk_Field ( FieldSet ) {
- var fieldset = Do_Get_Check_Walk_Field(FieldSet) ;
- if (fieldset) {
- if (fieldset.running) {
- if (fieldset.paused) {
- Do_Start_Auto_Walk_Field(FieldSet) ;
- fieldset.paused = false ;
- } else {
- Do_Stop_Auto_Walk_Field(FieldSet) ;
- fieldset.paused = true ;
- }
- }
- }
-}
-
-function Stop_Walk_Field ( FieldSet ) {
- var fieldset = Do_Get_Check_Walk_Field(FieldSet) ;
- if (fieldset) {
- Do_Stop_Auto_Walk_Field(FieldSet) ;
- fieldset.running = false ;
- fieldset.paused = false ;
- }
-}
-
-function Reset_Walk_Field ( FieldSet ) {
- var fieldset = Do_Get_Check_Walk_Field(FieldSet) ;
- if (fieldset) {
- Do_Stop_Auto_Walk_Field(FieldSet) ;
- fieldset.number = 0 ;
- fieldset.running = false ;
- fieldset.paused = false ;
- Reset_Fields(FieldSet) ;
- }
-}
-
-function Previous_Walk_Field ( FieldSet ) {
- var fieldset = Do_Get_Check_Walk_Field(FieldSet) ;
- if (fieldset) {
- Do_Stop_Auto_Walk_Field(FieldSet) ;
- fieldset.running = false ;
- fieldset.paused = false ;
- if (fieldset.number>0) {
- var v = this.getField(FieldSet + ":" + fieldset.number) ;
- if (v) {
- if (v.value == "On") {
- v.value = "Off" ;
- }
- }
- fieldset.number-- ;
- v = this.getField(FieldSet + ":" + fieldset.number) ;
- if (v) {
- v.value = "On" ;
- }
- }
- }
-}
-
-function Next_Walk_Field ( FieldSet ) {
- var fieldset = Do_Get_Check_Walk_Field(FieldSet) ;
- if (fieldset) {
- Do_Stop_Auto_Walk_Field(FieldSet) ;
- fieldset.running = false ;
- fieldset.paused = false ;
- var f = fieldset.number + 1 ;
- var v = this.getField(FieldSet + ":" + f) ;
- if (v) {
- var v = this.getField(FieldSet + ":" + fieldset.number) ;
- if (v) {
- if (v.value == "On") {
- v.value = "Off" ;
- }
- }
- fieldset.number++ ;
- v = this.getField(FieldSet + ":" + fieldset.number) ;
- if (v) {
- v.value = "On" ;
- }
- }
- }
-}
-
-function Set_Walk_Field_Delay ( FieldSet, Delay ) {
- var fieldset = Do_Get_Check_Walk_Field(FieldSet) ;
- if (fieldset) {
- if (Delay) {
- fieldset.delay = Delay ;
- if (fieldset.running) {
- Do_Stop_Auto_Walk_Field(FieldSet) ;
- Do_Start_Auto_Walk_Field(FieldSet) ;
- }
- }
- }
-}
-
-\stopJSpreamble
-
-\definereference[Walk] [JS(Walk_Field)]
-\definereference[StartWalk] [JS(Start_Walk_Field)]
-\definereference[StopWalk] [JS(Stop_Walk_Field)]
-\definereference[PauseWalk] [JS(Pause_Walk_Field)]
-\definereference[ResetWalk] [JS(Reset_Walk_Field)]
-\definereference[PreviousWalk][JS(Previous_Walk_Field)]
-\definereference[NextWalk] [JS(Next_Walk_Field)]
-\definereference[SetWalkDelay][JS(Set_Walk_Field_Delay)]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/java-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/java-ini.mkii
deleted file mode 100644
index 2e62ca166f4..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/java-ini.mkii
+++ /dev/null
@@ -1,693 +0,0 @@
-%D \module
-%D [ file=java-ini,
-%D version=1998.01.30,
-%D title=\CONTEXT\ JavaScript Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt JavaScript Macros / Initialization}
-
-% BUG: preamble zonder used/used en split
-
-% todo: lua sanitizer
-
-% JavaScript support is under development. In the near future
-% a slightly different model will be used. The JScode stuff
-% will probably become just auto function inclusion and the
-% JS_* things will disappear. First I have to find a way to
-% deal with global variables so the 'uses' thing will remain.
-
-% ook p{ref}
-% documentation should be corrected to JS(
-
-% Also, obeylines will be supported.
-
-\unprotect
-
-%D \JAVA\ support is not implemented as a generic support
-%D module. The main reason for this is that passing system
-%D variables to a \JAVASCRIPT\ is closely related to other core
-%D macros.
-
-%D \TEX\ is not the right tool to check the \JAVA\ code; the
-%D most we can do is reporting some passed variables:
-
-\newif\iftraceJScode \traceJScodefalse
-
-\let\traceJScode\traceJScodetrue
-
-%D A bit out of place, but not dangerous:
-
-\bgroup
-\catcode127=\@@letter
-\gdef\delcharacter{^^7f}
-\egroup
-
-%D The number of passed variables is minimalized by setting the
-%D next switch.
-
-\newif\ifminimalizeJScode \minimalizeJScodetrue
-
-%D \macros
-%D {JS*}
-%D
-%D Because \JAVASCRIPT's are activated by the user, for
-%D instance by activating on a button, their support is closely
-%D related to the referencing mechanism. Integration takes
-%D place by
-%D
-%D \starttyping
-%D \goto{calculate total}[Sum()]
-%D \stoptyping
-%D
-%D The \type{()} classify this as a script. If they are absent,
-%D the keyword is treated as a normal reference.
-%D
-%D One can pass arguments to such a script by saying:
-%D
-%D \starttyping
-%D \goto{calculate total}[Sum(1.5,2.3)]
-%D \stoptyping
-%D
-%D References are passed by using the \type{R{}} classifier.
-%D
-%D \starttyping
-%D \goto{calculate total}[Sum(1.5,2.3,R{overflow})]
-%D \stoptyping
-%D
-%D The last call calls the script \type{Sum} and passes the
-%D next set of variables:
-%D
-%D \starttyping
-%D JS_S_1="1.5";
-%D JS_S_2="2.3";
-%D JS_R_3="overflow";
-%D JS_P_3=3;
-%D \stoptyping
-%D
-%D The first two parameters are just strings, the third one
-%D however is treated as a reference and results in passing the
-%D reference (if needed this references is prefixed) and the
-%D (real) page number. The alternative:
-%D
-%D \starttyping
-%D \goto{calculate total}[JS(Sum{V{1.5},V{2.3},R{overflow}})]
-%D \stoptyping
-%D
-%D does a verbose passing:
-%D
-%D \starttyping
-%D JS_V_1=1.5;
-%D JS_V_2=2.3;
-%D JS_R_3="overflow";
-%D JS_P_3=3;
-%D \stoptyping
-
-%D We will also support direct function calls. In that case
-%D no intermediate variables are used.
-
-%D \macros
-%D {startJScode}
-%D
-%D A piece of \JAVASCRIPT\ code is defined by saying:
-%D
-%D \starttyping
-%D \startJScode{SomeScript}
-%D var Item=this.getField("item");
-%D N=Item.getArray();
-%D Total=this.getField("total");
-%D Total.value=0;
-%D for (j=0; j<N.length; j++)
-%D { if (N[j].value!="")
-%D { Total.value += N[j].value } } ;
-%D if ((JS_N>0) && (JS_R_1!=""))
-%D { gotoNamedDest(JS_R_1) };
-%D \stopJScode
-%D \stoptyping
-%D
-%D Such a piece of code is closely related to the interpreter
-%D used. Watch the last two lines, here the script adapts
-%D itself to the presence of a reference.
-%D
-%D While
-%D
-%D \starttyping
-%D \startJScode{name}
-%D name = 4 ;
-%D \stopJScode
-%D \stoptyping
-%D
-%D assumes uses no preamble or presumes that the preamble is
-%D always loaded, the next definition also tells \CONTEXT\ to
-%D actually include the preamble needed.
-%D
-%D \starttyping
-%D \startJScode{uses} uses {later}
-%D uses = 6 ;
-%D \stopJScode
-%D \stoptyping
-
-\long\def\startJScode#1 #2
- {\doifelse{#2}{uses}
- {\dostartJScodeA{#1}}
- {\dostartJScodeB{#1} #2 }}
-
-\long\def\dostartJScodeA#1#2 #3\stopJScode
- {\long\setgvalue{\r!java#1}{\do{#2}{#3}}}
-
-\long\def\dostartJScodeB#1#2\stopJScode
- {\long\setgvalue{\r!java#1}{\do{}{#2}}}
-
-\let\stopJScode\relax
-
-%D \macros
-%D {presetJScode}
-%D
-%D The code can be retrieved by saying
-%D
-%D \starttyping
-%D \presetJScode{SomeScript}{template}
-%D \stoptyping
-%D
-%D Such a template is a comma separated list, where
-%D individual entries can optionally be transformed by
-%D \type{R{}} and \type{V{}}.
-%D
-%D After this call, the code is available in \type{\JScode}.
-
-\newif\ifdirectJScode
-
-\def\presetJScode#1#2% #1=operation #2=arguments
- {\setverbosecscharacters
- \def\par{\delcharacter}% was: { }
- \scratchcounter\zerocount
- \globallet\JScode\empty
- \def\do##1##2%
- {\doifelse{##2}{!}\directJScodetrue\directJScodefalse}%
- \getvalue{\r!java#1}%
- \edef\!!stringa{#2}%
- \ifx\!!stringa\empty \else
- \processcommacommand[\!!stringa]\dopresetJSvariables
- \fi
- \def\docommand##1%
- {\doifundefinedelse{\r!java\r!java##1}
- {\showmessage\m!javascript2{##1}}
- {\useJSpreamblenow{##1}}}%
-% {\doglobal\increment\currentJSpreamble
-% \doglobal\addtocommalist{##1}\allJSpreambles}}%
- \def\do##1##2%
- {\xdef\JScode{\ifdirectJScode#1(\JScode)\else\JScode##2\fi}%
- %\xdef\JScode{JS\string_N=\the\scratchcounter;\JScode}%
- \processcommalist[##1]\docommand}%
- \getvalue{\r!java#1}}
-
-\def\dopresetJSvariables#1%
- {\advance\scratchcounter \plusone
- \donefalse
- \dodopresetJSvariables#1\end}%
-
-\def\dodopresetJSvariables
- {\doifnextcharelse R\dodopresetJSrefvariables
- {\doifnextcharelse V\dodopresetJSvervariables
- {\doifnextcharelse S\dodopresetJSstrvariables
- \dodopresetJSrawvariables}}}
-
-\def\dodopresetJSrefvariables R#1\end
- {\doifreferencefoundelse{#1}
- {\donetrue \dododopresetJSvariables R{\referenceprefix#1}%
- \donefalse\dododopresetJSvariables P{\currentrealreference}}
- {\unknownreference{#1}}%
- \ifminimalizeJScode \else
- \donetrue\dododopresetJSvariables S{#1}%
- \fi}
-
-\def\dodopresetJSvervariables V#1\end
- {\donefalse\dododopresetJSvariables V{#1}%
- \ifminimalizeJScode \else
- \donetrue\dododopresetJSvariables S{#1}%
- \fi}
-
-\def\dodopresetJSstrvariables S#1\end
- {\donetrue\dododopresetJSvariables S{#1}}
-
-\def\dodopresetJSrawvariables #1\end
- {\donetrue\dododopresetJSvariables S{#1}}
-
-\def\JSprefix#1%
- {JS\string_#1\string_\the\scratchcounter}
-
-\def\dododopresetJSvariables#1#2%
- {\iftraceJScode
- \writestatus{JavaScript}{\JSprefix#1=#2}
- \xdef\JScode{\JScode console.println("\JSprefix#1=#2"); }%
- \fi
- \ifdirectJScode
- \xdef\JScode{\ifx\JScode\empty\else\JScode,\fi\ifdone"#2"\else#2\fi}%
- \else
- \xdef\JScode{\JScode\JSprefix#1=\ifdone"#2"\else#2\fi; }%
- \fi}
-
-%D \macros
-%D {startJSpreamble, flushJSpreamble}
-%D
-%D One can define insert \JAVASCRIPT\ code at the document level
-%D by using:
-%D
-%D \starttyping
-%D \startJSpreamble{oeps}
-%D oeps = 1 ;
-%D \stopJSpreamble
-%D \stoptyping
-%D
-%D which is the same as:
-%D
-%D \starttyping
-%D \startJSpreamble{now} used now
-%D now = 2 ;
-%D \stopJSpreamble
-%D \stoptyping
-%D
-%D while the next definition is only included when actually
-%D used.
-%D
-%D \starttyping
-%D \startJSpreamble{later} used later
-%D later = 3 ;
-%D \stopJSpreamble
-%D \stoptyping
-%D
-%D This command may be used more that once, but always before
-%D the first page is shipped out.
-
-\newif\ifoneJSpreamble \oneJSpreamblefalse
-
-\let\allJSpreambles\empty
-\newcounter\nofJSpreambles
-\newcounter\currentJSpreamble
-
-\long\def\startJSpreamble#1 #2 %
- {\bgroup % we need to restore the catcodes
- \restoreendofline % just in case it happens while reading lists
- \doifelse{#2}{used}
- {\dostartJSpreamble#1 }
- {\dostartJSpreamble#1 now #2 }}
-
-\long\def\dostartJSpreamble#1 #2 %
- {\processaction
- [#2]
- [ later=>\chardef\JSstatus\zerocount,%
- now=>\chardef\JSstatus\plusone ,%
- \s!default=>\chardef\JSstatus\plustwo ,%
- \s!unknown=>\chardef\JSstatus\plustwo ]%
- \ifaddJSlinebreaks
- \obeylines \let\obeyedline \normalpar
- \obeyspaces \let\obeyedspace\normalspace
- \fi
- \dodostartJSpreamble{#1}}
-
-\long\def\dodostartJSpreamble#1#2\stopJSpreamble
- {\presetJSfunctions #2function ()\end
- \long\setgvalue{\r!java\r!java#1}{#2}%
- \ifcase\JSstatus \else
- \useJSpreamblenow{#1}%
- \fi
- \egroup}
-
-%D \macros
-%D {setJSpreamble, addtoJSpreamble}
-%D
-%D In addition to the previous preamble definitions, we can
-%D set a preamble \quote {in||line} and add tokens to a
-%D preamble.
-
-\def\setJSpreamble#1#2%
- {\doifundefined{\r!java\r!java#1}
- {\setgvalue{\r!java\r!java#1}{#2;}%
- \doglobal\increment\currentJSpreamble
- \doglobal\addtocommalist{#1}\allJSpreambles}}
-
-\def\addtoJSpreamble#1#2%
- {\doifdefinedelse{\r!java\r!java#1}
- {\edef\!!stringa{\r!java\r!java#1}%
- \edef\!!stringb{\csname\!!stringa\endcsname}%
- \@EA\setgvalue\@EA\!!stringa\@EA{\!!stringb #2;}}
- {\setJSpreamble{#1}{#2}}}
-
-%D \macros
-%D {useJSpreamblenow}
-%D
-%D The next macro can be used to force inclusion of postponed
-%D \JAVASCRIPT\ preambles.
-
-\def\useJSpreamblenow#1%
- {\doglobal\increment\currentJSpreamble
- \doglobal\addtocommalist{#1}\allJSpreambles}
-
-%D Because we want to check for valid calls, we preload the
-%D functions. This means that we can call them directly as
-%D well as indirectly when defined by \type {\startJScode} etc.
-
-% \long\def\presetJSfunctions#1function #2(#3)%
-% {\doifelsenothing{#2}
-% {\long\def\presetJSfunctions##1\end{}}
-% {\stripspaces\from#2\to\ascii
-% \doifundefined{\r!java\ascii}{\setgvalue{\r!java\ascii}{\do{}{!}}}}%
-% \presetJSfunctions}
-
-\long\def\presetJSfunctions#1function#2(#3)%
- {\doifelse{#2}\space
- {\long\def\presetJSfunctions##1\end{}}
- {\stripspaces\from#2\to\ascii
- \doifundefined{\r!java\ascii}{\setgvalue{\r!java\ascii}{\do{}{!}}}}%
- \presetJSfunctions}
-
-\def\getJSpreamble#1%
- {\getvalue{\r!java\r!java#1}}
-
-\def\presetJSpreamble
- {\ifx\allJSpreambles\empty\else
- \bgroup
- \setverbosecscharacters
- \obeyspaces \let\obeyedspace\normalspace
- \def\par{\delcharacter}% was: { }
- \globallet\JSpreamble\empty
- \def\@@collectedJSpreamble{\r!java\r!java collected}%
- \letvalue{\@@collectedJSpreamble}=\empty
- \def\docommand##1%
- {\xdef\JScode{\getvalue{\r!java\r!java##1}}%
- \ifoneJSpreamble % \global\letcdcsname
- \@EA\setxvalue\@EA\@@collectedJSpreamble\@EA
- {\csname\@@collectedJSpreamble\endcsname\JScode}%
- \else
- \setxvalue{\r!java\r!java##1}{\JScode}%
- \fi}%
- \processcommacommand[\allJSpreambles]\docommand
- \ifoneJSpreamble
- \gdef\allJSpreambles{collected}%
- \fi
- \globallet\presetJSpreamble\relax
- \egroup
- \fi}
-
-\def\flushJSpreamble
- {\iflocation\ifx\allJSpreambles\empty\else
- \ifcase\nofJSpreambles\else\ifnum\nofJSpreambles=\currentJSpreamble
- \bgroup
- \presetJSpreamble
- \expanded{\doflushJSpreamble{\allJSpreambles}}%
- \globallet\flushJSpreamble\relax
- \globallet\allJSpreambles\empty
- \egroup
- \fi\fi
- \fi\fi}
-
-\def\finalflushJSpreamble
- {\iflocation
- \flushJSpreamble
- \ifcase\currentJSpreamble\relax\else
- \savecurrentvalue\nofJSpreambles\currentJSpreamble
- \globallet\currentJSpreamble\nofJSpreambles
- \fi
- \fi}
-
-\prependtoks \flushJSpreamble \to \everyshipout
-\prependtoks \finalflushJSpreamble \to \everylastshipout
-
-%D \macros
-%D {doPSsanitizeJScode}
-%D
-%D Before the code can be passed to the (\POSTSCRIPT\ or \PDF)
-%D output file, some precautions must be made concerning the
-%D use of \type{(} and~\type{)}. Here we use a beautiful
-%D \type{\aftergroup} trick I discovered in the \TABLE\ format.
-
-\def\doPSsanitizeJScode#1\to#2%
- {\begingroup
- \scratchcounter\zerocount % \aftergroup counter
- \aftergroup\xdef
- \aftergroup#2%
- \aftergroup{%
- \expanded{\defconvertedargument\noexpand\JScode{#1}}%
- \expandafter\handletokens\JScode\with\dodoPSsanitizeJScode
- \aftergroup}%
- \endgroup
- \iftraceJScode
- \writestatus{JS trace}{#2}%
- \fi}
-
-%D I started with:
-%D
-%D \starttyping
-%D \def\dodoPSsanitizeJScode#1%
-%D {\aftergroup\string
-%D \if#1(%
-%D \expandafter\aftergroup\csname#1\endcsname
-%D \else\if#1)%
-%D \expandafter\aftergroup\csname#1\endcsname
-%D \else\if#1;%
-%D \aftergroup;\aftergroup\string\expandafter\aftergroup\
-%D \else
-%D \expandafter\aftergroup#1%
-%D \fi\fi\fi
-%D \advance\scratchcounter by 1
-%D \ifnum\scratchcounter=500
-%D \expandafter\dododoPSsanitizeJScode
-%D \fi}
-%D \stoptyping
-%D
-%D For pretty printing purposes, we need some way to signal
-%D \TEX\ macros. Therefore we introduce a special keyword
-%D \type{TEX}. When followed by a space, this keyword is
-%D ignored, that is, filtered from the stream. Now we have:
-
-\chardef\JSisTEX \zerocount
-\chardef\JScomment\zerocount
-
-\newif\ifaddJSlinebreaks \addJSlinebreakstrue
-
-\def\flushJSisTEX
- {\ifcase\JSisTEX
- \or \aftergroup T%
- \or \aftergroup T\aftergroup E%
- \or \aftergroup T\aftergroup E\aftergroup X%
- \fi
- \chardef\JSisTEX\zerocount}
-
-% \def\doJSlinebreak
-% {\ifaddJSlinebreaks
-% \aftergroup\string\aftergroup\n%
-% \fi}
-%
-% \def\dodoPSsanitizeJScode#1% % input stack>500 & TEX check
-% {\if#1/%
-% \ifnum\JScomment=0
-% \chardef\JScomment\plusone
-% \else\ifnum\JScomment=1
-% \chardef\JScomment\plustwo
-% \fi\fi
-% \else
-% \ifnum\JScomment=1
-% \aftergroup/%
-% \chardef\JScomment\zerocount
-% \fi
-% \ifnum\JScomment=2
-% \if#1\delcharacter
-% \chardef\JScomment\zerocount
-% \fi
-% \else
-% \if#1\delcharacter
-% \flushJSisTEX\doJSlinebreak
-% \else\if#1(%
-% \flushJSisTEX\aftergroup\string\expandafter\aftergroup\csname#1\endcsname
-% \else\if#1)%
-% \flushJSisTEX\aftergroup\string\expandafter\aftergroup\csname#1\endcsname
-% \else\if#1;%
-% \flushJSisTEX\aftergroup;\doJSlinebreak
-% \else\if#1T%
-% \ifnum\JSisTEX=0 \chardef\JSisTEX\plusone \else\flushJSisTEX\aftergroup T\fi
-% \else\if#1E%
-% \ifnum\JSisTEX=1 \chardef\JSisTEX\plustwo \else\flushJSisTEX\aftergroup E\fi
-% \else\if#1X%
-% \ifnum\JSisTEX=2 \chardef\JSisTEX\plusthree \else\flushJSisTEX\aftergroup X\fi
-% \else\if#1\normalspace
-% \ifnum\JSisTEX=3 \chardef\JSisTEX\zerocount \else\flushJSisTEX\aftergroup#1\fi
-% \else
-% \flushJSisTEX\aftergroup\string\expandafter\aftergroup#1%
-% \fi\fi\fi\fi\fi\fi\fi\fi
-% \fi
-% \fi
-% \dododoPSsanitizeJScode}
-
-% todo: "http:\\" -> simple. maar wel \" afvangen
-%
-% use new pdftex escape mechanism or make fully expandable version, not used that often btw
-
-\chardef\JSstring\zerocount
-
-\def\doJSlinebreak
- {\chardef\JScomment\zerocount
- \chardef\JSstring\zerocount
- \ifaddJSlinebreaks
- \aftergroup\string\aftergroup\n%
- \fi}
-
-\def\dodoPSsanitizeJScode#1% % input stack>500 & TEX check
- {\if#1/%
- \ifnum\JSstring=0
- \ifnum\JScomment=0
- \chardef\JScomment\plusone
- \else\ifnum\JScomment=1
- \chardef\JScomment\plustwo
- \fi\fi
- \else
- \aftergroup/%
- \fi
- \else
- \ifnum\JScomment=1
- \aftergroup/%
- \chardef\JScomment\zerocount
- \fi
- % is the delchar trick still needed?
- \ifnum\JScomment=2
- \ifnum`#1=13 % brrr
- \doJSlinebreak
- \else\if#1\par
- \doJSlinebreak
- \else\if#1\delcharacter
- \doJSlinebreak
- \fi\fi\fi
- \else
- \ifnum`#1=13 % brrr
- \flushJSisTEX\doJSlinebreak
- \else\if#1\par
- \flushJSisTEX\doJSlinebreak
- \else\if#1\delcharacter
- \flushJSisTEX\doJSlinebreak
- \else\if#1(%
- \flushJSisTEX\aftergroup\string\expandafter\aftergroup\csname#1\endcsname
- \else\if#1)%
- \flushJSisTEX\aftergroup\string\expandafter\aftergroup\csname#1\endcsname
- %\else\if#1;%
- % \flushJSisTEX\aftergroup;\doJSlinebreak
- \else\if#1T%
- \ifnum\JSisTEX=0 \chardef\JSisTEX\plusone \else\flushJSisTEX\aftergroup T\fi
- \else\if#1E%
- \ifnum\JSisTEX=1 \chardef\JSisTEX\plustwo \else\flushJSisTEX\aftergroup E\fi
- \else\if#1X%
- \ifnum\JSisTEX=2 \chardef\JSisTEX\plusthree \else\flushJSisTEX\aftergroup X\fi
- \else\if#1\normalspace
- \ifnum\JSisTEX=3 \chardef\JSisTEX\zerocount \else\flushJSisTEX\aftergroup#1\fi
- \else
- % todo: "test\"test"
- \if#1"%
- \ifcase\JSstring
- \chardef\JSstring\plusone
- \else
- \chardef\JSstring\zerocount
- \fi
- \fi
- \flushJSisTEX\aftergroup\string\expandafter\aftergroup#1%
- \fi\fi\fi\fi\fi\fi\fi\fi\fi % \fi
- \fi
- \fi
- \dododoPSsanitizeJScode}
-
-%D Close reading learns that one line comments (\type{// ...})
-%D are removed from the stream. This permits switching in
-%D pretty printing \JAVASCRIPT\ sources as well as saves
-%D some bytes.
-
-%D The magic 500 in the next hack prevents the input stack from
-%D overflowing when large scripts are sanitized.
-
-\def\dododoPSsanitizeJScode
- {\ifcase\JSisTEX\ifcase\JScomment
- \advance\scratchcounter \plusone
- \fi\fi
- \ifnum\scratchcounter=500
- \expandafter\dodododoPSsanitizeJScode
- \fi}
-
-\def\dodododoPSsanitizeJScode
- {\let\next={%
- \aftergroup}%
- \endgroup
- \begingroup
- \aftergroup\xdef
- \aftergroup\sanitizedJScode
- \aftergroup{%
- \aftergroup\sanitizedJScode
- \let\next=}}
-
-%D The macro \type{\doPSsanitizeJScode} converts its argument
-%D into the macro \type{\sanitizedJScode}, thereby prefixing
-%D each \type{(} and \type{)} by a slash.
-
-%D Hooking this mechanism into the general \CONTEXT\ reference
-%D mechanism does not take much effort:
-
-\definespecialtest{JS}%
- {\doifdefinedelse{\r!java\currentreferenceoperation}}
-
-\definespeciallocation{JS}#1#2%
- {\iflocation
- \bgroup
- \bgroup
- \presetJScode
- \currentreferenceoperation
- \currentreferencearguments
- \egroup
- \dohandlegoto
- {#2}%
- {\dostartgotoJS\buttonwidth\buttonheight\JScode}%
- {\dostopgotoJS}%
- \egroup
- \else
- {#2}%
- \fi}
-
-%D \macros
-%D {useJSscripts}
-%D
-%D In due time, users will build their collections of scripts,
-%D which can be used (loaded) when applicable. Although not all
-%D public, we will provide some general purpose scripts,
-%D collected in files with names like \type{java-...}. One can
-%D load these scripts with \type{\useJSscripts}, like:
-%D
-%D \starttyping
-%D \useJSscripts[fld]
-%D \stoptyping
-%D
-%D The not so complicated implementation of this macro is:
-
-\def\dodouseJSscripts#1%
- {\doifelse{#1}\v!reset
- {\let\allJSpreambles\empty}
- {\doifundefined{\c!file\f!javascriptprefix#1}
- {\startnointerference
- \letgvalueempty{\c!file\f!javascriptprefix#1}%
- \makeshortfilename[\f!javascriptprefix#1]%
- \startreadingfile
- \readsysfile{\shortfilename.\mksuffix}
- {\showmessage\m!javascript1{#1}}
- {\readsysfile{\shortfilename.tex}
- {\showmessage\m!javascript1{#1}}
- \donothing}%
- \stopreadingfile
- \stopnointerference}}}
-
-\def\douseJSscripts[#1][#2]%
- {\processcommalist[#1]\dodouseJSscripts
- \processcommalist[#2]\useJSpreamblenow}
-
-\def\useJSscripts
- {\dodoubleempty\douseJSscripts}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/java-stp.mkii b/Master/texmf-dist/tex/context/base/mkii/java-stp.mkii
deleted file mode 100644
index 7283c8ceb3d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/java-stp.mkii
+++ /dev/null
@@ -1,121 +0,0 @@
-%D \module
-%D [ file=java-stp,
-%D version=2004.03.15,
-%D title=\CONTEXT\ JavaScript Macros,
-%D subtitle=Stepping,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% we define ocglist global, otherwise we quickly run into a memory hog (even
-% out of memory in a 512 Meg machine)
-
-% we cannot use doc_visited[this.pageNum] instead of doc_currentstep because
-% of some funny side effect (i.e. dup or so)
-
-\startJSpreamble Steps used now
-
- var doc_ocglist = this.getOCGs() ;
- var doc_stepname = "step" ;
- var doc_currentstep = 0 ;
- var doc_maxstep = 50 ;
- var doc_visited = new Array() ;
- var doc_busy = new Array() ;
-
- function SetupStepper ( layername, laststep ) {
- doc_stepname = layername ;
- doc_maxstep = laststep ;
- for (var i=0; i<=this.numPages; i++) {
- doc_visited[i] = 0 ;
- doc_busy[i] = 0 ;
- }
- }
-
- for (var i=0; i<=this.numPages; i++) {
- doc_visited[i] = 0 ;
- doc_busy[i] = 0 ;
- }
-
- function GetOCG ( name ) {
- for (var i=0; i < doc_ocglist.length; i++) {
- if (doc_ocglist[i].name == name) {
- return doc_ocglist[i] ;
- }
- }
- return null ;
- }
-
- function CheckBusy ( ) {
- var ocg = GetOCG("step:busy") ;
- if (ocg != null) {
- if (doc_visited[this.pageNum]==0) {
- ocg.state = true ;
- } else {
- if (doc_visited[this.pageNum]<doc_busy[this.pageNum]) {
- ocg.state = true ;
- } else {
- ocg.state = false ;
- }
- }
- }
- }
-
- function SetStepper ( maxstep, state ) {
- for (var i=1; i<=maxstep; i++) {
- try {
- var ocg = GetOCG(doc_stepname + ':' + String(i)) ;
- if (ocg != null) {
- ocg.state = state ;
- }
- } catch (e) {
- return ;
- }
- }
- }
-
- function CheckStepper ( maxsteps ) {
- SetStepper(doc_visited[this.pageNum], true) ;
- doc_busy[this.pageNum] = Number(maxsteps) ;
- doc_currentstep = doc_visited[this.pageNum] ;
- CheckBusy() ;
- }
-
- function ResetStepper ( ) {
- SetStepper(doc_maxstep, false) ;
- doc_currentstep = 0 ;
- }
-
- function InvokeStepper ( ) {
- try {
- if (doc_currentstep<doc_busy[this.pageNum]) {
- doc_currentstep += 1 ;
- doc_visited[this.pageNum] = doc_currentstep ;
- var ocg = GetOCG(doc_stepname + ':' + String(doc_currentstep)) ;
- if (ocg != null) {
- ocg.state = true ;
- }
- } else {
- if (this.pageNum+1==this.numPages) {
- this.pageNum = 0 ;
- } else {
- this.pageNum += 1 ;
- }
- }
- CheckBusy() ;
- } catch (e) {
- return ;
- }
- }
-
-\stopJSpreamble
-
-% \definereference [SetupStepper] [JS(SetupStepper{step,50})]
-% \definereference [ResetStepper] [JS(ResetStepper)]
-% \definereference [CheckStepper] [JS(CheckStepper{\StepCounter})]
-% \definereference [InvokeStepper] [JS(InvokeStepper)]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-alt.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-alt.mkii
deleted file mode 100644
index 1e49945d5fd..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-alt.mkii
+++ /dev/null
@@ -1,152 +0,0 @@
-%D \module
-%D [ file=lang-alt,
-%D version=1997.09.03,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Altaic Languages,
-%D author=Hans Hagen / Tobias Burnus,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Language Macros / Altaic Languages}
-
-%D The framework of this module is set up by Hans Hagen while
-%D many of the first translations were done by Tobias. Later
-%D on, corrections were made by users. If you have suggestions,
-%D or feel that your name missing here, don't hesitate to send
-%D us an email.
-
-% Uigur, Uzbek
-% Azeri/Azerbaijani, Chuvash, Turkish, Turkmen
-% Kazakh, Kazar, Kireghiz, Noghay, Talar
-% Buryat, Kalmuck, Khalkha
-%
-% Turkmen translation by Nazar Annagurban <nazartm at gmail.com> 18. March 2010
-
-\unprotect
-
-\installlanguage
- [\s!tr]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\upperleftsinglesixquote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\upperleftdoublesixquote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!year,\ ,\v!month,\ ,\v!day}]
-
-\installlanguage
- [\s!tk]
- [\c!spacing=\v!broad,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\upperleftsinglesixquote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\upperleftdoublesixquote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!year,\ ,\v!month,\ ,\v!day}
- \s!patterns=\s!tk,
- \s!lefthyphenmin=1,
- \s!righthyphenmin=2]
-
-\installlanguage [turkish] [\s!tr]
-\installlanguage [turkmen] [\s!tk]
-
-\setupheadtext [\s!tr] [\v!content=Fihrist]
-\setupheadtext [\s!tk] [\v!content=Mazmuny]
-\setupheadtext [\s!tr] [\v!tables=Tablolar]
-\setupheadtext [\s!tk] [\v!tables=Tablisalar]
-\setupheadtext [\s!tr] [\v!figures=\Scedilla ekiller]
-\setupheadtext [\s!tk] [\v!figures=Suratlar]
-\setupheadtext [\s!tr] [\v!graphics=Grafikler]
-\setupheadtext [\s!tk] [\v!graphics=Grafikler]
-\setupheadtext [\s!tr] [\v!intermezzi=...]
-\setupheadtext [\s!tk] [\v!intermezzi=Arakesmeler]
-\setupheadtext [\s!tr] [\v!index=\Idotaccent ndex]
-\setupheadtext [\s!tk] [\v!index=Indeks]
-\setupheadtext [\s!tr] [\v!abbreviations=K\dotlessi saltmalar]
-\setupheadtext [\s!tk] [\v!abbreviations=Gysgaltmalar]
-\setupheadtext [\s!tr] [\v!logos=Logolar]
-\setupheadtext [\s!tk] [\v!logos=Logolar]
-\setupheadtext [\s!tr] [\v!units=Birimler]
-\setupheadtext [\s!tk] [\v!units=Birlikler]
-
-\setuplabeltext [\s!tr] [\v!table=Tablo ]
-\setuplabeltext [\s!tk] [\v!table=Tablisa]
-\setuplabeltext [\s!tr] [\v!figure=\Scedilla ekil ]
-\setuplabeltext [\s!tk] [\v!figure=Surat]
-\setuplabeltext [\s!tr] [\v!intermezzo=... ]
-\setuplabeltext [\s!tk] [\v!intermezzo=Arakesme]
-\setuplabeltext [\s!tr] [\v!graphic=Grafik]
-\setuplabeltext [\s!tk] [\v!graphic=Grafik]
-\setuplabeltext [\s!tr] [\v!chapter=]
-\setuplabeltext [\s!tk] [\v!chapter=Bap]
-\setuplabeltext [\s!tr] [\v!section=]
-\setuplabeltext [\s!tk] [\v!section=]
-\setuplabeltext [\s!tr] [\v!subsection=]
-\setuplabeltext [\s!tk] [\v!subsection=]
-\setuplabeltext [\s!tr] [\v!subsubsection=]
-\setuplabeltext [\s!tr] [\v!subsubsubsection=]
-\setuplabeltext [\s!tk] [\v!subsubsubsection=]
-\setuplabeltext [\s!tr] [\v!appendix=]
-\setuplabeltext [\s!tk] [\v!appendix=Go\scedilla ma\ccedilla a]
-\setuplabeltext [\s!tr] [\v!part=Cilt ]
-\setuplabeltext [\s!tk] [\v!part=B\odiaeresis l\udiaeresis m]
-\setuplabeltext [\s!tr] [\v!line=sat\dotlessi r ]
-\setuplabeltext [\s!tk] [\v!line=setir]
-\setuplabeltext [\s!tr] [\v!lines=sat\dotlessi rlar ]
-\setuplabeltext [\s!tk] [\v!lines=setirler]
-
-\setuplabeltext [\s!tk] [\v!january=\yacute anwar]
-\setuplabeltext [\s!tk] [\v!february=fewral]
-\setuplabeltext [\s!tk] [\v!march=mart]
-\setuplabeltext [\s!tk] [\v!april=aprel]
-\setuplabeltext [\s!tk] [\v!may=ma\yacute]
-\setuplabeltext [\s!tk] [\v!june=i\yacute un]
-\setuplabeltext [\s!tk] [\v!july=i\yacute ul]
-\setuplabeltext [\s!tk] [\v!august=awgust]
-\setuplabeltext [\s!tk] [\v!september=sent\yacute abr]
-\setuplabeltext [\s!tk] [\v!october=okt\yacute abr]
-\setuplabeltext [\s!tk] [\v!november=no\yacute abr]
-\setuplabeltext [\s!tk] [\v!december=dekabr]
-
-\setuplabeltext [\s!tr] [\v!january=ocak]
-\setuplabeltext [\s!tr] [\v!february=\Scedilla ubat]
-\setuplabeltext [\s!tr] [\v!march=mart]
-\setuplabeltext [\s!tr] [\v!april=nisan]
-\setuplabeltext [\s!tr] [\v!may=may\dotlessi s]
-\setuplabeltext [\s!tr] [\v!june=haziran]
-\setuplabeltext [\s!tr] [\v!july=temmuz]
-\setuplabeltext [\s!tr] [\v!august=a\gbreve ustos]
-\setuplabeltext [\s!tr] [\v!september=eyl\udiaeresis l]
-\setuplabeltext [\s!tr] [\v!october=ekim]
-\setuplabeltext [\s!tr] [\v!november=kas\dotlessi m]
-\setuplabeltext [\s!tr] [\v!december=aral\dotlessi k]
-
-\setuplabeltext [\s!tr] [\v!sunday=pazar]
-\setuplabeltext [\s!tr] [\v!monday=pazartesi]
-\setuplabeltext [\s!tr] [\v!tuesday=sal\dotlessi]
-\setuplabeltext [\s!tr] [\v!wednesday=\ccedilla ar\scedilla amba]
-\setuplabeltext [\s!tr] [\v!thursday=per\scedilla embe]
-\setuplabeltext [\s!tr] [\v!friday=cuma]
-\setuplabeltext [\s!tr] [\v!saturday=cumartesi]
-
-\setuplabeltext [\s!tk] [\v!sunday=dyn\ccedilla\ g\udiaeresis n]
-\setuplabeltext [\s!tk] [\v!monday=birinji g\udiaeresis n]
-\setuplabeltext [\s!tk] [\v!tuesday=ikinji g\udiaeresis n]
-\setuplabeltext [\s!tk] [\v!wednesday=\udiaeresis\ccedilla\udiaeresis nji]
-\setuplabeltext [\s!tk] [\v!thursday=d\odiaeresis rd\udiaeresis nji g\udiaeresis n]
-\setuplabeltext [\s!tk] [\v!friday=b\adiaeresis\scedilla inji g\udiaeresis n]
-\setuplabeltext [\s!tk] [\v!saturday=altynjy g\udiaeresis n]
-
-%D \ShowAllLanguageValues [\s!tr] [turkish] {Turkish} {delight} % turks fruit
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-ana.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-ana.mkii
deleted file mode 100644
index f2dc4a17c00..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-ana.mkii
+++ /dev/null
@@ -1,24 +0,0 @@
-%D \module
-%D [ file=lang-ana,
-%D version=1997.09.03,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Anatolian Languages,
-%D author=Hans Hagen / Tobias Burnus,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Language Macros / Anatolian Languages}
-
-%D The framework of this module is set up by Hans Hagen while
-%D many of the first translations were done by Tobias. Later
-%D on, corrections were made by users. If you have suggestions,
-%D or feel that your name missing here, don't hesitate to send
-%D us an email.
-
-\unprotect
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-art.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-art.mkii
deleted file mode 100644
index 20216b571bf..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-art.mkii
+++ /dev/null
@@ -1,26 +0,0 @@
-%D \module
-%D [ file=lang--art,
-%D version=1997.09.03,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Artificial Languages,
-%D author=Hans Hagen / Tobias Burnus,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Language Macros / Artificial Languages}
-
-%D The framework of this module is set up by Hans Hagen while
-%D many of the first translations were done by Tobias. Later
-%D on, corrections were made by users. If you have suggestions,
-%D or feel that your name missing here, don't hesitate to send
-%D us an email.
-
-% Esperanto
-
-\unprotect
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-bal.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-bal.mkii
deleted file mode 100644
index 4ab751a448d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-bal.mkii
+++ /dev/null
@@ -1,118 +0,0 @@
-%D \module
-%D [ file=lang-bal,
-%D version=2010.01.21,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Baltic Languages,
-%D author=Marius Aleknevičius,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Language Macros / Baltic Languages}
-
-%D The framework of this module is set up by Hans Hagen while
-%D all the translations were done by Marius Aleknevičius. If
-%D you have suggestions, don't hesitate to send us an email.
-
-%D This file is in \UTF\ encoding and is meant for \MKIV.
-
-% Lettish/Latvian, Lietuvių/Lithuanian
-
-\unprotect
-
-\installlanguage
- [\s!lt]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\lowerleftdoubleninequote,
- \c!rightquote=\upperrightdoublesixquote,
- \c!leftquotation=\lowerleftdoubleninequote,
- \c!rightquotation=\upperrightdoublesixquote,
- \c!date={\v!year,~m.,\ ,\v!month,\ ,\v!day,~d.},
- \s!patterns=\s!lt,
- \s!encoding=l7x,
- \s!mapping=l7x,
- \s!lefthyphenmin=2,
- \s!righthyphenmin=2]
-
-\installlanguage [lithuanian] [\s!lt]
-
-\setupheadtext [\s!lt] [\v!content=Turinys]
-\setupheadtext [\s!lt] [\v!tables=Lentelės]
-\setupheadtext [\s!lt] [\v!figures=Iliustracijos]
-\setupheadtext [\s!lt] [\v!graphics=Graphics] % TODO what is the difference between the "graphics" and the "figures"?
-\setupheadtext [\s!lt] [\v!intermezzi=Intermezzos] % TODO what is the "intermezzi"?
-\setupheadtext [\s!lt] [\v!index=Rodyklė]
-\setupheadtext [\s!lt] [\v!abbreviations=Santrumpos]
-\setupheadtext [\s!lt] [\v!logos=Logos] % TODO where it is used?
-\setupheadtext [\s!lt] [\v!units=Units] % TODO where it is used?
-\setupheadtext [\s!lt] [pubs=Literatūra]
-
-\setuplabeltext [\s!lt] [\v!table={, lentelė.}]
-\setuplabeltext [\s!lt] [\v!figure={, pav.}]
-\setuplabeltext [\s!lt] [\v!intermezzo=Intermezzo ] % TODO
-\setuplabeltext [\s!lt] [\v!graphic=Graphic ] % TODO
-
-%\startlanguagespecifics[\s!lt]
-% \setupheads[\c!sectionstopper=.] %TODO how do I set dots after section numbers?
-%\stoplanguagespecifics
-
-\setuplabeltext [\s!lt] [\v!chapter=] % Chapter
-\setuplabeltext [\s!lt] [\v!section=]
-\setuplabeltext [\s!lt] [\v!subsection=]
-\setuplabeltext [\s!lt] [\v!subsubsection=]
-\setuplabeltext [\s!lt] [\v!subsubsubsection=]
-\setuplabeltext [\s!lt] [\v!appendix=] % Appendix
-\setuplabeltext [\s!lt] [\v!part={, dalis}]
-\setuplabeltext [\s!lt] [\v!line=line ] % TODO where it is used?
-\setuplabeltext [\s!lt] [\v!lines=lines ] % TODO where it is used?
-
-\setuplabeltext [\s!lt] [\v!january=sausio]
-\setuplabeltext [\s!lt] [\v!february=vasario]
-\setuplabeltext [\s!lt] [\v!march=kovo]
-\setuplabeltext [\s!lt] [\v!april=balandžio]
-\setuplabeltext [\s!lt] [\v!may=gegužės]
-\setuplabeltext [\s!lt] [\v!june=birželio]
-\setuplabeltext [\s!lt] [\v!july=liepos]
-\setuplabeltext [\s!lt] [\v!august=rugpjūčio]
-\setuplabeltext [\s!lt] [\v!september=rugsėjo]
-\setuplabeltext [\s!lt] [\v!october=spalio]
-\setuplabeltext [\s!lt] [\v!november=lapkričio]
-\setuplabeltext [\s!lt] [\v!december=gruodžio]
-
-\setuplabeltext [\s!lt] [\v!sunday=sekmadienis]
-\setuplabeltext [\s!lt] [\v!monday=pirmadienis]
-\setuplabeltext [\s!lt] [\v!tuesday=antradienis]
-\setuplabeltext [\s!lt] [\v!wednesday=trečiadienis]
-\setuplabeltext [\s!lt] [\v!thursday=ketvirtadienis]
-\setuplabeltext [\s!lt] [\v!friday=penktadienis]
-\setuplabeltext [\s!lt] [\v!saturday=šeštadienis]
-
-\setuplabeltext [\s!lt] [\v!page=puslapis ] % TODO how to test?
-\setuplabeltext [\s!lt] [\v!atpage=puslapyje ] % TODO how to test?
-\setuplabeltext [\s!lt] [\v!hencefore=kaip parodyta aukščiau] % TODO how to test?
-\setuplabeltext [\s!lt] [\v!hereafter=kaip parodyta žemiau] % TODO how to test?
-\setuplabeltext [\s!lt] [\v!see=žiūrėti ] % TODO how to test?
-
-\setuplabeltext [\s!lt] [\v!january :\s!mnem=jan] % I think, there is no abbreviated versions of months in lithuanian
-\setuplabeltext [\s!lt] [\v!february :\s!mnem=feb]
-\setuplabeltext [\s!lt] [\v!march :\s!mnem=mar]
-\setuplabeltext [\s!lt] [\v!april :\s!mnem=apr]
-\setuplabeltext [\s!lt] [\v!may :\s!mnem=may]
-\setuplabeltext [\s!lt] [\v!june :\s!mnem=jun]
-\setuplabeltext [\s!lt] [\v!july :\s!mnem=jul]
-\setuplabeltext [\s!lt] [\v!august :\s!mnem=aug]
-\setuplabeltext [\s!lt] [\v!september:\s!mnem=sep]
-\setuplabeltext [\s!lt] [\v!october :\s!mnem=oct]
-\setuplabeltext [\s!lt] [\v!november :\s!mnem=nov]
-\setuplabeltext [\s!lt] [\v!december :\s!mnem=dec]
-
-%D \ShowAllLanguageValues [\s!lt] [lithuanian] {Lithuanian} {doll} % What does this mean? Do I need it?
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-cel.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-cel.mkii
deleted file mode 100644
index e6519497b3d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-cel.mkii
+++ /dev/null
@@ -1,26 +0,0 @@
-%D \module
-%D [ file=lang-cel,
-%D version=1997.09.03,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Celtic Languages,
-%D author=Hans Hagen / Tobias Burnus,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Language Macros / Celtic Languages}
-
-%D The framework of this module is set up by Hans Hagen while
-%D many of the first translations were done by Tobias. Later
-%D on, corrections were made by users. If you have suggestions,
-%D or feel that your name missing here, don't hesitate to send
-%D us an email.
-
-% Breton, Welsh, Irish, Manx, Scottish Gaelic
-
-\unprotect
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-chi.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-chi.mkii
deleted file mode 100644
index 5d61281b0a2..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-chi.mkii
+++ /dev/null
@@ -1,305 +0,0 @@
-%D \module
-%D [ file=lang-chi,
-%D version=2002.06.25, % 1998.10.10,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Chinese,
-%D author={Hans Hagen \& Wang Lei},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Language Macros / Chinese}
-
-%D This module is coded using the \UNICODE\ support built in
-%D \CONTEXT. Therefore, \type {\uchar} is used instead of latin
-%D characters.
-
-\unprotect
-
-\definesystemconstant {chinese} \definesystemconstant {cn}
-
-\installlanguage
- [\s!cn]
- [\c!leftsentence=\cnencoding\cnleftsentence,
- \c!rightsentence=\cnencoding\cnrightsentence,
- \c!leftsubsentence=\cnencoding\cnleftsubsentence,
- \c!rightsubsentence=\cnencoding\cnrightsubsentence,
- \c!leftquote=\cnencoding\cnupperleftsinglequote,
- \c!rightquote=\cnencoding\cnupperrightsinglequote,
- \c!leftquotation=\cnencoding\cnupperleftdoublequote,
- \c!rightquotation=\cnencoding\cnupperrightdoublequote,
- \c!date={\v!year,\cnyear,\ ,\v!month,\v!day,\cnday}]
-
-\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={\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}]
-\setupheadtext [\s!cn] [\v!units={\cnencoding\cnencodedunits}]
-
-\setuplabeltext [\s!cn] [\v!table={\cnencoding\cnencodedtable}]
-\setuplabeltext [\s!cn] [\v!figure={\cnencoding\cnencodedfigure}]
-\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={\cnencoding\cnencodedline}]% RG & XJF
-\setuplabeltext [\s!cn] [\v!lines={\cnencoding\cnencodedline}]% RG & XJF
-
-\setuplabeltext [\s!cn] [\v!subsection=]
-\setuplabeltext [\s!cn] [\v!subsubsection=]
-\setuplabeltext [\s!cn] [\v!subsubsubsection=]
-
-%D From this definition one can deduce that language, input
-%D encoding, font encoding, and glyph meaning form a pretty
-%D complex four dimensional space.
-
-\startlanguagespecifics[\s!cn]
-
-\setuplabeltext [\s!cn] [\v!january=\cnencoding\cnencodedjanuary ]
-\setuplabeltext [\s!cn] [\v!february=\cnencoding\cnencodedfebrary ]
-\setuplabeltext [\s!cn] [\v!march=\cnencoding\cnencodedmarch ]
-\setuplabeltext [\s!cn] [\v!april=\cnencoding\cnencodedapril ]
-\setuplabeltext [\s!cn] [\v!may=\cnencoding\cnencodedmay ]
-\setuplabeltext [\s!cn] [\v!june=\cnencoding\cnencodedjune ]
-\setuplabeltext [\s!cn] [\v!july=\cnencoding\cnencodedjuly ]
-\setuplabeltext [\s!cn] [\v!august=\cnencoding\cnencodedaugust ]
-\setuplabeltext [\s!cn] [\v!september=\cnencoding\cnencodedseptember]
-\setuplabeltext [\s!cn] [\v!october=\cnencoding\cnencodedoctober ]
-\setuplabeltext [\s!cn] [\v!november=\cnencoding\cnencodednovember ]
-\setuplabeltext [\s!cn] [\v!december=\cnencoding\cnencodeddecember ]
-
-\setuplabeltext [\s!cn] [\v!sunday=\cnencoding\cnencodedsunday ]
-\setuplabeltext [\s!cn] [\v!monday=\cnencoding\cnencodedmonday ]
-\setuplabeltext [\s!cn] [\v!tuesday=\cnencoding\cnencodedtuesday ]
-\setuplabeltext [\s!cn] [\v!wednesday=\cnencoding\cnencodedwednesday]
-\setuplabeltext [\s!cn] [\v!thursday=\cnencoding\cnencodedthursday ]
-\setuplabeltext [\s!cn] [\v!friday=\cnencoding\cnencodedfriday ]
-\setuplabeltext [\s!cn] [\v!saturday=\cnencoding\cnencodedsaturday ]
-
-\stoplanguagespecifics
-
-%D One can specify a split labeltext, as demonstrated in
-%D the definition of the \type {part} label. Unfortunately
-%D the glyphs of both part depend on the encoding. Therefore,
-%D we have an encoding section here.
-
-\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}}
- \definecommand cnrightsentence {\uchar{161}{170}\uchar{161}{170}}
- \definecommand cnleftsubsentence {\uchar{161}{170}\uchar{161}{170}}
- \definecommand cnrightsubsentence {\uchar{161}{170}\uchar{161}{170}}
- \definecommand cnupperleftsinglequote {\uchar{161}{174}}
- \definecommand cnupperrightsinglequote {\uchar{161}{175}}
- \definecommand cnupperleftdoublequote {\uchar{161}{176}}
- \definecommand cnupperrightdoublequote {\uchar{161}{177}}
- \definecommand cnupperleftsinglequote-v {\uchar{161}{184}}
- \definecommand cnupperrightsinglequote-v {\uchar{161}{185}}
- \definecommand cnupperleftdoublequote-v {\uchar{161}{186}}
- \definecommand cnupperrightdoublequote-v {\uchar{161}{187}}
- \definecommand cnencodedcontents {\uchar{196}{191}\uchar{194}{188}}
- \definecommand cnencodedtables {\uchar{177}{237}\uchar{184}{241}}
- \definecommand cnencodedfigures {\uchar{205}{188}\uchar{208}{206}}
- \definecommand cnencodedindex {\uchar{203}{247}\uchar{210}{253}}
- \definecommand cnencodedabbreviations {\uchar{203}{245}\uchar{194}{212}\uchar{211}{239}}
- \definecommand cnencodedlogos {\uchar{187}{213}\uchar{177}{225}}
- \definecommand cnencodedunits {\uchar{188}{198}\uchar{193}{191}\uchar{181}{165}\uchar{206}{187}}
- \definecommand cnencodedtable {\uchar{177}{237}}
- \definecommand cnencodedfigure {\uchar{205}{188}}
- \definecommand cnencodedintro {\uchar{181}{218}}
- \definecommand cnencodedpart {\uchar{178}{191}\uchar{183}{214}}
- \definecommand cnencodedchapter {\uchar{213}{194}}
- \definecommand cnencodedsection {\uchar{189}{218}}
- \definecommand cnencodedjanuary {\uchar{210}{187}\uchar{212}{194}}
- \definecommand cnencodedfebrary {\uchar{182}{254}\uchar{212}{194}}
- \definecommand cnencodedmarch {\uchar{200}{253}\uchar{212}{194}}
- \definecommand cnencodedapril {\uchar{203}{196}\uchar{212}{194}}
- \definecommand cnencodedmay {\uchar{206}{229}\uchar{212}{194}}
- \definecommand cnencodedjune {\uchar{193}{249}\uchar{212}{194}}
- \definecommand cnencodedjuly {\uchar{198}{223}\uchar{212}{194}}
- \definecommand cnencodedaugust {\uchar{176}{203}\uchar{212}{194}}
- \definecommand cnencodedseptember {\uchar{190}{197}\uchar{212}{194}}
- \definecommand cnencodedoctober {\uchar{202}{174}\uchar{212}{194}}
- \definecommand cnencodednovember {\uchar{202}{174}\uchar{210}{187}\uchar{212}{194}}
- \definecommand cnencodeddecember {\uchar{202}{174}\uchar{182}{254}\uchar{212}{194}}
- \definecommand cnencodedsunday {\uchar{208}{199}\uchar{198}{218}\uchar{200}{213}}
- \definecommand cnencodedmonday {\uchar{208}{199}\uchar{198}{218}\uchar{210}{187}}
- \definecommand cnencodedtuesday {\uchar{208}{199}\uchar{198}{218}\uchar{182}{254}}
- \definecommand cnencodedwednesday {\uchar{208}{199}\uchar{198}{218}\uchar{200}{253}}
- \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]
- \definecommand cnleftsentence {\uchar{162}{119}\uchar{162}{119}}
- \definecommand cnrightsentence {\uchar{162}{119}\uchar{162}{119}}
- \definecommand cnleftsubsentence {\uchar{162}{119}\uchar{162}{119}}
- \definecommand cnrightsubsentence {\uchar{162}{119}\uchar{162}{119}}
- \definecommand cnupperleftsinglequote {\uchar{161}{165}}
- \definecommand cnupperrightsinglequote {\uchar{161}{166}}
- \definecommand cnupperleftdoublequote {\uchar{161}{167}}
- \definecommand cnupperrightdoublequote {\uchar{161}{168}}
- \definecommand cnupperleftsinglequote-v {\uchar{161}{117}}
- \definecommand cnupperrightsinglequote-v {\uchar{161}{118}}
- \definecommand cnupperleftdoublequote-v {\uchar{161}{121}}
- \definecommand cnupperrightdoublequote-v {\uchar{161}{122}}
- \definecommand cnencodecontents {\uchar{165}{216}\uchar{191}{253}}
- \definecommand cnencodetables {\uchar{170}{237}\uchar{174}{230}}
- \definecommand cnencodefigures {\uchar{185}{207}\uchar{167}{206}}
- \definecommand cnencodeindex {\uchar{175}{193}\uchar{174}{222}}
- \definecommand cnencodeabbreviations {\uchar{191}{89}\uchar{178}{164}\uchar{187}{121}}
- \definecommand cnencodelogos {\uchar{192}{178}\uchar{188}{208}}
- \definecommand cnencodeunits {\uchar{173}{112}\uchar{182}{113}\uchar{179}{230}\uchar{166}{236}}
- \definecommand cnencodetable {\uchar{170}{237}}
- \definecommand cnencodefigure {\uchar{185}{207}}
- \definecommand cnencodedintro {\uchar{178}{196}}
- \definecommand cnencodedpart {\uchar{179}{161}\uchar{164}{192}}
- \definecommand cnencodedchapter {\uchar{179}{185}}
- \definecommand cnencodedsection {\uchar{184} {96}}
- \definecommand cnencodedjanuary {\uchar{164} {64}\uchar{164}{235}}
- \definecommand cnencodedfebrary {\uchar{164} {71}\uchar{164}{235}}
- \definecommand cnencodedmarch {\uchar{164} {84}\uchar{164}{235}}
- \definecommand cnencodedapril {\uchar{165}{124}\uchar{164}{235}}
- \definecommand cnencodedmay {\uchar{164}{173}\uchar{164}{235}}
- \definecommand cnencodedjune {\uchar{164}{187}\uchar{164}{235}}
- \definecommand cnencodedjuly {\uchar{164} {67}\uchar{164}{235}}
- \definecommand cnencodedaugust {\uchar{164} {75}\uchar{164}{235}}
- \definecommand cnencodedseptember {\uchar{164} {69}\uchar{164}{235}}
- \definecommand cnencodedoctober {\uchar{164} {81}\uchar{164}{235}}
- \definecommand cnencodednovember {\uchar{164} {81}\uchar{164} {64}\uchar{164}{235}}
- \definecommand cnencodeddecember {\uchar{164} {81}\uchar{164} {71}\uchar{164}{235}}
- \definecommand cnencodedsunday {\uchar{172} {80}\uchar{180}{193}\uchar{164}{233}}
- \definecommand cnencodedmonday {\uchar{172} {80}\uchar{180}{193}\uchar{164} {64}}
- \definecommand cnencodedtuesday {\uchar{172} {80}\uchar{180}{193}\uchar{164} {71}}
- \definecommand cnencodedwednesday {\uchar{172} {80}\uchar{180}{193}\uchar{164} {84}}
- \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/mkii/lang-ctx.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-ctx.mkii
deleted file mode 100644
index 2aecb918ee2..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-ctx.mkii
+++ /dev/null
@@ -1,53 +0,0 @@
-%D \module
-%D [ file=lang-ctx,
-%D version=2005.02.12,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Generic Patterns,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Language Macros / Generic Patterns}
-
-\unprotect
-
-%D The \CONTEXT\ specific patterns are more generic and
-%D are more or less encoding independent. They are generated
-%D from the ones shipped with distributions using:
-%D
-%D \starttyping
-%D ctxtools --pattern --all
-%D \stoptyping
-
-%D In order to get 8 bit characters hyphenated, we need to load
-%D patterns under the right circumstances. In some countries, more
-%D than one font encoding is in use. I can add more defaults here
-%D if users let me know what encoding they use.
-
-% \installlanguage [\s!nl] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}]
-% \installlanguage [\s!fr] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}]
-% \installlanguage [\s!de] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}]
-% \installlanguage [\s!it] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}]
-% \installlanguage [\s!pt] [\s!mapping={texnansi,ec},\s!encoding={texnansi,ec}]
-% \installlanguage [\s!hr] [\s!mapping=ec,\s!encoding=ec] % no il2, misses cacute characters
-% \installlanguage [\s!pl] [\s!mapping={pl0,ec,qx},\s!encoding={pl0,ec,qx}] % pl0 may go
-% \installlanguage [\s!cs] [\s!mapping={il2,ec},\s!encoding={il2,ec}] % il2 may go
-% \installlanguage [\s!sk] [\s!mapping={il2,ec},\s!encoding={il2,ec}] % il2 may go
-% \installlanguage [\s!sl] [\s!mapping=ec,\s!encoding=ec] % il2 has gone
-% \installlanguage [\s!vi] [\s!mapping=t5,\s!encoding=t5]
-% \installlanguage [\s!ru] [\s!mapping=t2a,\s!encoding=t2a]
-
-% beware, don't use \setuplanguage here
-
-% \installlanguage[\s!gb][\s!lefthyphenmin=3,\s!righthyphenmin=3] % patterns can only handle this
-% \installlanguage[\s!us][\s!lefthyphenmin=2,\s!righthyphenmin=3] % patterns can only handle this
-
-% greek
-
-% \installlanguage[\s!agr][\s!mapping=\s!agr,\s!encoding=\s!agr]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-cyr.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-cyr.mkii
deleted file mode 100644
index eed3ec80e68..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-cyr.mkii
+++ /dev/null
@@ -1,371 +0,0 @@
-%D \module
-%D [ file=lang-cyr,
-%D version=2003.01.24,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Cyrillic Languages,
-%D author=see below,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Language Macros / Cyrillic Languages}
-
-%D The cyrillic languages always use a dedicated input regime.
-%D Therefore we define the labels using symbolic names.
-%D Support for cyrillic is initiated by Olga Briginets who
-%D also layed the base for the language, encoding and font
-%D definition. Later Alexander Bokovoy and Victor Figurnov
-%D improved things. I (Hans Hagen) mainly cleaned things up
-%D a bit.
-
-\unprotect
-
-\installlanguage
- [\s!ru]
- [\s!lefthyphenmin=2,
- \s!righthyphenmin=2,
- \c!spacing=\v!packed,
- \c!leftsentence=\leftguillemot,
- \c!rightsentence=\rightguillemot,
- \c!leftsubsentence=\lowerleftdoubleninequote,
- \c!rightsubsentence=\upperrightdoubleninequote,
- \c!leftquote=\lowerleftdoubleninequote,
- \c!rightquote=\upperrightdoubleninequote,
- \c!leftquotation=\leftguillemot,
- \c!rightquotation=\rightguillemot,
- \c!date={\v!day,\ ,\v!month,\ ,\v!year},
- \s!mapping=t2a,
- \s!encoding=t2a]
-
-\installlanguage
- [\s!ua]
- [\s!lefthyphenmin=2,
- \s!righthyphenmin=2,
- \c!spacing=\v!packed,
- \c!leftsentence=\leftguillemot,
- \c!rightsentence=\rightguillemot,
- \c!leftsubsentence=\lowerleftdoubleninequote,
- \c!rightsubsentence=\upperrightdoubleninequote,
- \c!leftquote=\lowerleftdoubleninequote,
- \c!rightquote=\upperrightdoubleninequote,
- \c!leftquotation=\leftguillemot,
- \c!rightquotation=\rightguillemot,
- \c!date={\v!day,\ ,\v!month,\ ,\v!year},
- \s!patterns=\s!uk,
- \s!mapping=t2a,
- \s!encoding=t2a]
-
-\installlanguage [russian] [\s!ru]
-\installlanguage [ukrainian] [\s!ua]
-
-%D Labels and header texts.
-
-\setupheadtext [\s!ru] [ \v!content=\cyrillicS \cyrillico \cyrillicd
- \cyrillice \cyrillicr \cyrilliczh
- \cyrillica \cyrillicn \cyrillici
- \cyrillice]
-\setupheadtext [\s!ua] [\v!content=\cyrillicZ \cyrillicm \cyrillicii
- \cyrillics \cyrillict]
-
-\setupheadtext [\s!ru] [\v!tables=\cyrillicS \cyrillicp \cyrillici
- \cyrillics \cyrillico \cyrillick
- \space \cyrillict \cyrillica
- \cyrillicb \cyrillicl \cyrillici
- \cyrillicc]
-\setupheadtext [\s!ua] [\v!tables=\cyrillicP \cyrillice \cyrillicr
- \cyrillice \cyrillicl \cyrillicii
- \cyrillick \space \cyrillict
- \cyrillica \cyrillicb \cyrillicl
- \cyrillici \cyrillicc \cyrillicsftsn]
-
-\setupheadtext [\s!ru] [\v!figures=\cyrillicS \cyrillicp \cyrillici
- \cyrillics \cyrillico \cyrillick
- \space \cyrillici \cyrillicl
- \cyrillicl \cyrillicyu\cyrillics
- \cyrillict \cyrillicr \cyrillica
- \cyrillicc \cyrillici \cyrillicishrt]
-\setupheadtext [\s!ua] [\v!figures=\cyrillicP \cyrillice \cyrillicr
- \cyrillice \cyrillicl \cyrillicii
- \cyrillick \space \cyrillicii
- \cyrillicl \cyrillicyu\cyrillics
- \cyrillict \cyrillicr \cyrillica
- \cyrillicc \cyrillicii\cyrillicishrt]
-
-\setupheadtext [\s!ru] [\v!graphics=\cyrillicS \cyrillicp \cyrillici
- \cyrillics \cyrillico \cyrillick
- \space \cyrillicg \cyrillicr
- \cyrillica \cyrillicf \cyrillici
- \cyrillick \cyrillico \cyrillicv]
-\setupheadtext [\s!ua] [\v!graphics=\cyrillicP \cyrillice \cyrillicr
- \cyrillice \cyrillicl \cyrillicii
- \cyrillick \space \cyrillicg
- \cyrillicr \cyrillica \cyrillicf
- \cyrillicii\cyrillick \cyrillico
- \cyrillicv]
-
-\setupheadtext [\s!ru] [\v!intermezzi=\cyrillicS \cyrillicp \cyrillici
- \cyrillics \cyrillico \cyrillick
- \space \cyrillicv \cyrillics
- \cyrillict \cyrillica \cyrillicv
- \cyrillico \cyrillick]
-\setupheadtext [\s!ua] [\v!intermezzi=\cyrillicP \cyrillice \cyrillicr
- \cyrillice \cyrillicl \cyrillicii
- \cyrillick \space \cyrillicv
- \cyrillics \cyrillict \cyrillica
- \cyrillicv \cyrillico \cyrillick]
-
-\setupheadtext [\s!ru] [\v!index=\cyrillicA \cyrillicl \cyrillicf
- \cyrillica \cyrillicv \cyrillici
- \cyrillict \cyrillicn \cyrillicery
- \cyrillicishrt \space \cyrillicu
- \cyrillick \cyrillica \cyrillicz
- \cyrillica \cyrillict \cyrillice
- \cyrillicl \cyrillicsftsn]
-\setupheadtext [\s!ua] [\v!index=\cyrillicP \cyrillico \cyrillick
- \cyrillica \cyrilliczh\cyrillicch
- \cyrillici \cyrillick]
-
-\setupheadtext [\s!ru] [\v!abbreviations=\cyrillicS \cyrillicp \cyrillici
- \cyrillics \cyrillico \cyrillick
- \space \cyrillics \cyrillico
- \cyrillick \cyrillicr \cyrillica
- \cyrillicshch \cyrillice
- \cyrillicn
- \cyrillici \cyrillicishrt]
-\setupheadtext [\s!ua] [\v!abbreviations=\cyrillicP \cyrillice \cyrillicr
- \cyrillice \cyrillicl \cyrillicii
- \cyrillick \space \cyrillics
- \cyrillick \cyrillico \cyrillicr
- \cyrillico \cyrillicch\cyrillice
- \cyrillicn \cyrillicsftsn]
-
-\setupheadtext [\s!ru] [\v!logos=\cyrillicL \cyrillico \cyrillicg
- \cyrillico \cyrillict \cyrillici
- \cyrillicp \cyrillicery]
-\setupheadtext [\s!ua] [\v!logos=\cyrillicL \cyrillico \cyrillicg
- \cyrillico \cyrillict \cyrillici
- \cyrillicp \cyrillici]
-
-\setupheadtext [\s!ru] [\v!units=\cyrillicE \cyrillicd \cyrillici
- \cyrillicn \cyrillici \cyrillicc
- \cyrillicery \space \cyrillici
- \cyrillicz \cyrillicm \cyrillice
- \cyrillicr \cyrillice \cyrillicn
- \cyrillici \cyrillicya]
-\setupheadtext [\s!ua] [\v!units=\cyrillicO \cyrillicd \cyrillici
- \cyrillicn \cyrillici \cyrillicc
- \cyrillicii\space \cyrillicv
- \cyrillici \cyrillicm \cyrillicii
- \cyrillicr \cyrillicu]
-
-\setuplabeltext [\s!ru] [\v!table=\cyrillicT \cyrillica \cyrillicb
- \cyrillicl \cyrillici \cyrillicc
- \cyrillica \space]
-\setuplabeltext [\s!ua] [\v!table=\cyrillicT \cyrillica \cyrillicb
- \cyrillicl \cyrillici \cyrillicc
- \cyrillicya\space]
-
-\setuplabeltext [\s!ru] [\v!figure=\cyrillicR \cyrillici \cyrillics
- \cyrillicu \cyrillicn \cyrillico
- \cyrillick \space]
-\setuplabeltext [\s!ua] [\v!figure=\cyrillicM \cyrillica \cyrillicl
- \cyrillicyu\cyrillicn \cyrillico
- \cyrillick \space]
-
-\setuplabeltext [\s!ru] [\v!intermezzo=\cyrillicV \cyrillics \cyrillict
- \cyrillica \cyrillicv \cyrillick
- \cyrillica \space]
-\setuplabeltext [\s!ua] [\v!intermezzo=\cyrillicV \cyrillics \cyrillict
- \cyrillica \cyrillicv \cyrillick
- \cyrillica \space]
-
-\setuplabeltext [\s!ru] [\v!graphic=\cyrillicG \cyrillicr \cyrillica
- \cyrillicf \cyrillici \cyrillick
- \space]
-\setuplabeltext [\s!ua] [\v!graphic=\cyrillicG \cyrillicr \cyrillica
- \cyrillicf \cyrillici \cyrillick
- \space]
-
-\setuplabeltext [\s!ru] [\v!chapter=]
-\setuplabeltext [\s!ua] [\v!chapter=]
-
-\setuplabeltext [\s!ru] [\v!section=]
-\setuplabeltext [\s!ua] [\v!section=]
-
-\setuplabeltext [\s!ru] [\v!subsection=]
-\setuplabeltext [\s!ua] [\v!subsection=]
-
-\setuplabeltext [\s!ru] [\v!subsubsection=]
-\setuplabeltext [\s!ua] [\v!subsubsection=]
-
-\setuplabeltext [\s!ru] [\v!subsubsubsection=]
-\setuplabeltext [\s!ua] [\v!subsubsubsection=]
-
-\setuplabeltext [\s!ru] [\v!appendix=]
-\setuplabeltext [\s!ua] [\v!appendix=]
-
-\setuplabeltext [\s!ru] [\v!part=\cyrillicCH\cyrillica \cyrillics
- \cyrillict \cyrillicsftsn
- \space]
-\setuplabeltext [\s!ua] [\v!part=\cyrillicCH\cyrillica \cyrillics
- \cyrillict \cyrillici \cyrillicn
- \cyrillica \space]
-
-\setuplabeltext [\s!ru] [\v!line=\cyrillics \cyrillict \cyrillicr
- \cyrillico \cyrillick \cyrillica
- \space]
-\setuplabeltext [\s!ua] [\v!line=\cyrillicr \cyrillicya\cyrillicd
- \cyrillico \cyrillick \space]
-
-\setuplabeltext [\s!ru] [\v!lines=\cyrillics \cyrillict \cyrillicr
- \cyrillico \cyrillick \cyrillici
- \space]
-\setuplabeltext [\s!ua] [\v!lines=\cyrillicr \cyrillicya\cyrillicd
- \cyrillick \cyrillici \space]
-
-\setuplabeltext [\s!ru] [\v!page=\cyrillics \cyrillict \cyrillicr
- \cyrillica \cyrillicn \cyrillici
- \cyrillicc \cyrillica \space]
-\setuplabeltext [\s!ua] [\v!page=\cyrillics \cyrillict \cyrillico
- \cyrillicr \cyrillicii\cyrillicn
- \cyrillick \cyrillica \space ]
-
-\setuplabeltext [\s!ru] [\v!atpage=\cyrillicn \cyrillica \space
- \cyrillics \cyrillict \cyrillicr
- \cyrillica \cyrillicn \cyrillici
- \cyrillicc \cyrillice \space]
-\setuplabeltext [\s!ua] [\v!atpage=\cyrillicn \cyrillica \space
- \cyrillics \cyrillict \cyrillico
- \cyrillicr \cyrillicii\cyrillicn
- \cyrillicc \cyrillicii\space ]
-
-\setuplabeltext [\s!ru] [\v!hencefore=\cyrillics \cyrillicm.\space
- \cyrillicv \cyrillicery \cyrillicsh
- \cyrillice]
-\setuplabeltext [\s!ua] [\v!hencefore=\cyrillicya\cyrillick \space
- \cyrillicp \cyrillico \cyrillick
- \cyrillica \cyrillicz \cyrillica
- \cyrillicn \cyrillico \space
- \cyrillicv \cyrillici \cyrillicshch
- \cyrillice]
-
-\setuplabeltext [\s!ru] [\v!hereafter=\cyrillics \cyrillicm.\space
- \cyrillicn \cyrillici \cyrilliczh
- \cyrillice]
-\setuplabeltext [\s!ua] [\v!hereafter=\cyrillicya\cyrillick \space
- \cyrillicp \cyrillico \cyrillick
- \cyrillica \cyrillicz \cyrillica
- \cyrillicn \cyrillico \space
- \cyrillicn \cyrillici \cyrilliczh
- \cyrillicch\cyrillice]
-
-\setuplabeltext [\s!ru] [\v!see=\cyrillics \cyrillicm.\space]
-\setuplabeltext [\s!ua] [\v!see=\cyrillicd \cyrillici
- \cyrillicv.\space ]
-
-\setuplabeltext [\s!ru] [\v!january=\cyrillicya\cyrillicn \cyrillicv
- \cyrillica \cyrillicr \cyrillicya]
-\setuplabeltext [\s!ru] [\v!february=\cyrillicf \cyrillice \cyrillicv
- \cyrillicr \cyrillica \cyrillicl
- \cyrillicya]
-\setuplabeltext [\s!ru] [\v!march=\cyrillicm \cyrillica \cyrillicr
- \cyrillict \cyrillica]
-\setuplabeltext [\s!ru] [\v!april=\cyrillica \cyrillicp \cyrillicr
- \cyrillice \cyrillicl \cyrillicya]
-\setuplabeltext [\s!ru] [\v!may=\cyrillicm \cyrillica \cyrillicya]
-\setuplabeltext [\s!ru] [\v!june=\cyrillici \cyrillicyu\cyrillicn
- \cyrillicya]
-\setuplabeltext [\s!ru] [\v!july=\cyrillici \cyrillicyu\cyrillicl
- \cyrillicya]
-\setuplabeltext [\s!ru] [\v!august=\cyrillica \cyrillicv \cyrillicg
- \cyrillicu \cyrillics \cyrillict
- \cyrillica]
-\setuplabeltext [\s!ru] [\v!september=\cyrillics \cyrillice \cyrillicn
- \cyrillict \cyrillicya\cyrillicb
- \cyrillicr \cyrillicya]
-\setuplabeltext [\s!ru] [\v!october=\cyrillico \cyrillick \cyrillict
- \cyrillicya\cyrillicb \cyrillicr
- \cyrillicya]
-\setuplabeltext [\s!ru] [\v!november=\cyrillicn \cyrillico \cyrillicya
- \cyrillicb \cyrillicr \cyrillicya]
-\setuplabeltext [\s!ru] [\v!december=\cyrillicd \cyrillice \cyrillick
- \cyrillica \cyrillicb \cyrillicr
- \cyrillicya]
-
-\setuplabeltext [\s!ua] [\v!january=\cyrillics \cyrillicii\cyrillicch
- \cyrillicn \cyrillicya]
-\setuplabeltext [\s!ua] [\v!february=\cyrillicl \cyrillicyu\cyrillict
- \cyrillico \cyrillicg \cyrillico]
-\setuplabeltext [\s!ua] [\v!march=\cyrillicb \cyrillice \cyrillicr
- \cyrillice \cyrillicz \cyrillicn
- \cyrillicya]
-\setuplabeltext [\s!ua] [\v!april=\cyrillick \cyrillicv \cyrillicii
- \cyrillict \cyrillicn \cyrillicya]
-\setuplabeltext [\s!ua] [\v!may=\cyrillict \cyrillicr \cyrillica
- \cyrillicv \cyrillicn \cyrillicya]
-\setuplabeltext [\s!ua] [\v!june=\cyrillicch\cyrillice \cyrillicr
- \cyrillicv \cyrillicn \cyrillicya]
-\setuplabeltext [\s!ua] [\v!july=\cyrillicl \cyrillici \cyrillicp
- \cyrillicn \cyrillicya]
-\setuplabeltext [\s!ua] [\v!august=\cyrillics \cyrillice \cyrillicr
- \cyrillicp \cyrillicn \cyrillicya]
-\setuplabeltext [\s!ua] [\v!september=\cyrillicv \cyrillice \cyrillicr
- \cyrillice \cyrillics \cyrillicn
- \cyrillicya]
-\setuplabeltext [\s!ua] [\v!october=\cyrilliczh\cyrillico \cyrillicv
- \cyrillict \cyrillicn \cyrillicya]
-\setuplabeltext [\s!ua] [\v!november=\cyrillicl \cyrillici \cyrillics
- \cyrillict \cyrillico \cyrillicp
- \cyrillica \cyrillicd \cyrillica]
-\setuplabeltext [\s!ua] [\v!december=\cyrillicg \cyrillicr \cyrillicu
- \cyrillicd \cyrillicn \cyrillicya]
-
-\setuplabeltext [\s!ru] [\v!sunday=\cyrillicv \cyrillico \cyrillics
- \cyrillick \cyrillicr \cyrillice
- \cyrillics \cyrillice \cyrillicn
- \cyrillicsftsn \cyrillice]
-\setuplabeltext [\s!ru] [\v!monday=\cyrillicp \cyrillico \cyrillicn
- \cyrillice \cyrillicd \cyrillice
- \cyrillicl \cyrillicsftsn
- \cyrillicn \cyrillici \cyrillick]
-\setuplabeltext [\s!ru] [\v!tuesday=\cyrillicv \cyrillict \cyrillico
- \cyrillicr \cyrillicn \cyrillici
- \cyrillick]
-\setuplabeltext [\s!ru] [\v!wednesday=\cyrillics \cyrillicr \cyrillice
- \cyrillicd \cyrillica]
-\setuplabeltext [\s!ru] [\v!thursday=\cyrillicch\cyrillice \cyrillict
- \cyrillicv \cyrillice \cyrillicr
- \cyrillicg]
-\setuplabeltext [\s!ru] [\v!friday=\cyrillicp \cyrillicya\cyrillict
- \cyrillicn \cyrillici \cyrillicc
- \cyrillica]
-\setuplabeltext [\s!ru] [\v!saturday=\cyrillics \cyrillicu \cyrillicb
- \cyrillicb \cyrillico \cyrillict
- \cyrillica]
-
-\setuplabeltext [\s!ua] [\v!sunday=\cyrillicn \cyrillice \cyrillicd
- \cyrillicii\cyrillicl \cyrillicya]
-\setuplabeltext [\s!ua] [\v!monday=\cyrillicp \cyrillico \cyrillicn
- \cyrillice \cyrillicd \cyrillicii
- \cyrillicl \cyrillico \cyrillick]
-\setuplabeltext [\s!ua] [\v!tuesday=\cyrillicv \cyrillicii\cyrillicv
- \cyrillict \cyrillico \cyrillicr
- \cyrillico \cyrillick]
-\setuplabeltext [\s!ua] [\v!wednesday=\cyrillics \cyrillice \cyrillicr
- \cyrillice \cyrillicd \cyrillica]
-\setuplabeltext [\s!ua] [\v!thursday=\cyrillicch\cyrillice \cyrillict
- \cyrillicv \cyrillice \cyrillicr]
-\setuplabeltext [\s!ua] [\v!friday=\cyrillicp'\cyrillicya\cyrillict
- \cyrillicn \cyrillici \cyrillicc
- \cyrillicya]
-\setuplabeltext [\s!ua] [\v!saturday=\cyrillics \cyrillicu \cyrillicb
- \cyrillico \cyrillict \cyrillica]
-
-
-%D \ShowAllLanguageValues [\s!ru] [russian] {Russian} {doll}
-%D \ShowAllLanguageValues [\s!ua] [ukranian] {Ukranian} {dance}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-dis.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-dis.mkii
deleted file mode 100644
index 213c5110f57..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-dis.mkii
+++ /dev/null
@@ -1,59 +0,0 @@
-%D \module
-%D [ file=lang-dis,
-%D version=2005.02.12,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Distribution Patterns,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This code used to be part of cont-usr.tex but now that we
-%D use more generic pattern files, we decided to isolate these
-%D mappings.
-
-\writestatus{loading}{ConTeXt Language Macros / Distribution Patterns}
-
-%D Hyphenation patterns are normally sought in filed named
-%D \type {lang-xx.pat}. When present on the system, those
-%D patterns take precedence. This list will be adapted to
-%D the actual situation, given that it's noticed.
-
-%D The us/uk hyph 1/2 files will go
-
-\unprotect
-
-% \definefilefallback [lang-ca.pat] [cahyph.tex]
-% \definefilefallback [lang-da.pat] [dkhyph.tex]
-% \definefilefallback [lang-de.pat] [dehyphn.tex]
-% \definefilefallback [lang-es.pat] [eshyph.tex]
-% \definefilefallback [lang-fi.pat] [fihyph.tex]
-% \definefilefallback [lang-fr.pat] [frhyph.tex]
-% \definefilefallback [lang-hr.pat] [hrhyph.tex]
-% \definefilefallback [lang-hu.pat] [huhyph.tex]
-% \definefilefallback [lang-it.pat] [ithyph.tex]
-% \definefilefallback [lang-la.pat] [lahyph7.tex]
-% \definefilefallback [lang-no.pat] [nohyph.tex]
-% \definefilefallback [lang-pl.pat] [plhyph.tex]
-% \definefilefallback [lang-pt.pat] [pthyph.tex]
-% \definefilefallback [lang-ro.pat] [rohyph.tex]
-% \definefilefallback [lang-ru.pat] [ruenhyph.tex]
-% \definefilefallback [lang-sl.pat] [sihyph.tex,slhyph.tex]
-% \definefilefallback [lang-sv.pat] [svhyph.tex,sehyph.tex]
-% \definefilefallback [lang-tr.pat] [tkhyph.tex,trhyph.tex]
-% \definefilefallback [lang-ua.pat] [ukrenhyp.tex]
-% \definefilefallback [lang-uk.pat] [ukhyphen.tex,ukhyph.tex]
-% \definefilefallback [lang-us.pat] [ushyphmax.tex,ushyph.tex,ushyph1.tex,ushyph2.tex,hyphen.tex]
-% \definefilefallback [lang-nl.pat] [nehyph96.tex,dutch96.pat,nehyph.tex]
-% \definefilefallback [lang-cz.pat] [czhyphen.tex,czhyph.pat]
-% \definefilefallback [lang-sk.pat] [skhyphen.tex,skhyph.pat]
-% \definefilefallback [lang-deo.pat] [dehypht.tex]
-
-% \definefilesynonym [lang-af.pat] [lang-nl.pat]
-% \definefilesynonym [lang-en.pat] [lang-us.pat]
-% \definefilesynonym [lang-en.hyp] [lang-us.hyp]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-frd.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-frd.mkii
deleted file mode 100644
index be4e07b75df..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-frd.mkii
+++ /dev/null
@@ -1,140 +0,0 @@
-%D \module
-%D [ file=lang-frd,
-%D version=2004.01.15,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Language Frequency Table Data,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This is expewrimental work!
-
-% http://www.onzetaal.nl/advies/letterfreq.html
-
-\startcharactertable[nl]
- \charfreq a 7.47
- \charfreq b 1.58
- \charfreq c 1.24
- \charfreq d 5.93
- \charfreq e 18.91
- \charfreq f .81
- \charfreq g 3.4
- \charfreq h 2.38
- \charfreq i 6.5
- \charfreq j 1.46
- \charfreq k 2.25
- \charfreq l 3.57
- \charfreq m 2.21
- \charfreq n 10.03
- \charfreq o 6.06
- \charfreq p 1.57
- \charfreq q .009
- \charfreq r 6.41
- \charfreq s 3.73
- \charfreq t 6.79
- \charfreq u 1.99
- \charfreq v 2.85
- \charfreq w 1.52
- \charfreq x .04
- \charfreq y .035
- \charfreq z 1.39
-\stopcharactertable
-
-% http://caislab.icu.ac.kr/course/2001/spring/ice605/down/010306.pdf
-
-% \startcharactertable[en]
-% \charfreq a 8.2
-% \charfreq b 1.5
-% \charfreq c 2.8
-% \charfreq d 4.3
-% \charfreq e 12.7
-% \charfreq f 2.2
-% \charfreq g 2
-% \charfreq h 6.1
-% \charfreq i 7
-% \charfreq j .2
-% \charfreq k .8
-% \charfreq l 4
-% \charfreq m 2.4
-% \charfreq n 6.7
-% \charfreq o 7.5
-% \charfreq p 1.9
-% \charfreq q .1
-% \charfreq r 6
-% \charfreq s 6.3
-% \charfreq t 9.1
-% \charfreq u 2.8
-% \charfreq v 1
-% \charfreq w 2.3
-% \charfreq x .1
-% \charfreq y 2
-% \charfreq z .1
-% \stopcharactertable
-
-% http://www.blankenburg.de/gat/pages/fach/info/analyse2.htm
-
-\startcharactertable[en]
- \charfreq a 8.04
- \charfreq b 1.54
- \charfreq c 3.06
- \charfreq d 3.99
- \charfreq e 12.51
- \charfreq f 2.3
- \charfreq g 1.96
- \charfreq h 5.49
- \charfreq i 7.26
- \charfreq j .16
- \charfreq k .67
- \charfreq l 4.14
- \charfreq m 2.53
- \charfreq n 7.09
- \charfreq o 7.6
- \charfreq p 2
- \charfreq q .11
- \charfreq r 6.12
- \charfreq s 6.54
- \charfreq t 9.25
- \charfreq u 2.71
- \charfreq v .99
- \charfreq w 1.92
- \charfreq x .19
- \charfreq y 1.73
- \charfreq z .09
-\stopcharactertable
-
-% http://www.blankenburg.de/gat/pages/fach/info/analyse2.htm
-
-\startcharactertable[de]
- \charfreq a 6.47
- \charfreq b 1.93
- \charfreq c 2.68
- \charfreq d 4.83
- \charfreq e 17.48
- \charfreq f 1.65
- \charfreq g 3.06
- \charfreq h 4.23
- \charfreq i 7.73
- \charfreq j .27
- \charfreq k 1.46
- \charfreq l 3.49
- \charfreq m 2.58
- \charfreq n 9.84
- \charfreq o 2.98
- \charfreq p .96
- \charfreq q .02
- \charfreq r 7.54
- \charfreq s 6.83
- \charfreq t 6.13
- \charfreq u 4.17
- \charfreq v .94
- \charfreq w 1.48
- \charfreq x .04
- \charfreq y .08
- \charfreq z 1.14
-\stopcharactertable
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-frq.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-frq.mkii
deleted file mode 100644
index afeb5329c64..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-frq.mkii
+++ /dev/null
@@ -1,207 +0,0 @@
-%D \module
-%D [ file=lang-frq,
-%D version=2004.01.15,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Frequency Tables,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Language Macros / Frequency Tables}
-
-\unprotect
-
-\ifx\s!en\undefined \def\v!en{en} \fi
-\ifx\??lg\undefined \def\??lg{@@lg} \fi
-
-%M \usemodule[layout]
-
-%D \macros
-%D {charwidthmethod}
-%D
-%D This module implements a method for determining the width of an
-%D average character in a language. It uses the dimensions of the
-%D current fonts.
-%D
-%D \def\ShwChrWd#1#2#3%
-%D {\chardef\charwidthmethod#1\relax
-%D \mainlanguage[#2#3]\the\dimexpr(\averagecharwidth)}
-%D
-%D \starttabulate[|c|c|c|c|c|c|]
-%D \HL
-%D \NC \NC\bf0=amount\NC\bf1=.5em\NC2=ex\NC\bf3=frequency\NC\bf4=list\NC\NR
-%D \HL
-%D \NC\bf en\NC\ShwChrWd0en\NC\ShwChrWd1en\NC\ShwChrWd2en\NC\ShwChrWd3en\NC\ShwChrWd4en\NC\NR
-%D \NC\bf nl\NC\ShwChrWd0nl\NC\ShwChrWd1nl\NC\ShwChrWd2nl\NC\ShwChrWd3nl\NC\ShwChrWd4nl\NC\NR
-%D \NC\bf de\NC\ShwChrWd0de\NC\ShwChrWd1de\NC\ShwChrWd2de\NC\ShwChrWd3de\NC\ShwChrWd4de\NC\NR
-%D \HL
-%D \stoptabulate
-%D
-%D Method~1 ignores the widths and assumes that each character has a
-%D width of .5em, which is true for most monospaced fonts. Method~2
-%D takes the x as starting point, and assumes that it's height kind of
-%D matches its width. Method~3 is the best one, and determines the
-%D average width based on the language specific character table.
-%D Method~4 is a mixture between the first two methods: character
-%D specific widths applied to an equal distribution. Method~0 reports
-%D the total count, which normally is~100.
-
-\chardef\charwidthmethod=3 % 0=amount 1=em 2=ex 3=frequency 4=flattened >4=ex
-
-%D \macros
-%D {charwidthlanguage}
-%D
-%D The language used for the calculations is defined as:
-
-\def\charwidthlanguage{\currentmainlanguage}
-
-%D \macros
-%D {charfreq}
-%D
-%D This method comes into action in the following macro:
-
-\def\charfreq#1 #2 % character fraction
- {+(\ifcase\charwidthmethod
- #2\dimexpr100\onepoint\relax
- \or
- #2\dimexpr.5em\relax % \emwidth/2
- \or
- #2\dimexpr\exheight\relax
- \or
- #2\fontcharwd\font`#1%
- \or
- \dimexpr100\fontcharwd\font`#1/\charactertsize\charwidthlanguage\relax % ugly hack
- \else
- #2\dimexpr\exheight\relax
- \fi)}
-
-%D \macros
-%D {startcharactertable}
-%D
-%D A frequency table is defined with the following macro. The \type
-%D {charfreq} macro is used in this table.
-
-\def\startcharactertable[#1]#2\stopcharactertable % \dimexpr has fuzzy lookahead
- {\startnointerference
- \long\setgvalue{\??lg:w:#1}{#2}% the width vector
- \scratchcounter\zerocount \def\charfreq##1 ##2 {\advance\scratchcounter\plusone} #2%
- \long\setxvalue{\??lg:c:#1}{\the\scratchcounter}% the character count
- \stopnointerference}
-
-%D \macros
-%D {charactertable,charactertsize}
-%D
-%D The table content as well as the number of entries can be fetched with
-%D the following two macros. The architecture of the table and calling
-%D macro permits a fully expandable application.
-
-\def\charactertable#1%
- {\csname\??lg:w:\ifcsname\??lg:w:#1\endcsname#1\else\s!en\fi\endcsname}
-
-\def\charactertsize#1%
- {\csname\??lg:c:\ifcsname\??lg:c:#1\endcsname#1\else\s!en\fi\endcsname}
-
-%D Although it is of hardly any use, you can inherit a character table:
-%D
-%D \starttyping
-%D \startcharactertable[cz] \charactertable{en} \stopcharactertable
-%D \stoptyping
-%D
-%D We define a default vector with 100\% x's.
-
-\startcharactertable[en] 100 x \stopcharactertable % kind of default
-
-%D \macros
-%D {averagecharwidth}
-%D
-%D This macro reports the average width for the current main
-%D language (\the \dimexpr (\averagecharwidth)).
-
-\def\averagecharwidth{\dimexpr((\zeropoint\charactertable\charwidthlanguage)/100)}
-
-\def\showcharfreq
- {\hbox\bgroup
- \charwidthlanguage:%
- \dostepwiserecurse041%
- {\chardef\charwidthmethod\recurselevel\relax
- \enspace\recurselevel/\the\dimexpr(\averagecharwidth)}%
- \egroup}
-
-%D Just for fun, we show a few frequency tables as graphic (\in {figure}
-%D [fig:charfreq]).
-%D
-%D \startbuffer
-%D \definepalet [charfreq] [en=darkred, nl=darkgreen, de=darkblue]
-%D
-%D \def\charfreq#1 #2 %
-%D {\startMPdrawing
-%D interim linejoin := butt ;
-%D a := ASCII "#1" ;
-%D if (a >= (ASCII "a")) and (a <= (ASCII "z")) :
-%D draw ((0,#2*.25cm)--origin--(0,#2*.5cm))
-%D shifted (a*4mm+o,0)
-%D withpen pencircle scaled .5mm
-%D withcolor c;
-%D fi ;
-%D \stopMPdrawing}
-%D
-%D \resetMPdrawing
-%D \startMPdrawing
-%D numeric a, o ; a := o := 0 ;
-%D color c ; c := .5white ;
-%D string s ; s := "" ;
-%D \stopMPdrawing
-%D
-%D \startMPdrawing o := 0mm ; c := \MPcolor{charfreq:en} ; \stopMPdrawing
-%D \charactertable{en}
-%D
-%D \startMPdrawing o := 1mm ; c := \MPcolor{charfreq:nl} ; \stopMPdrawing
-%D \charactertable{nl}
-%D
-%D \startMPdrawing o := 2mm ; c := \MPcolor{charfreq:de} ; \stopMPdrawing
-%D \charactertable{de}
-%D
-%D \startMPdrawing
-%D for a := ASCII "a" upto ASCII "z" :
-%D draw textext.bot("\strut\tttf " & char a) shifted (a*4mm+1mm,-1mm) ;
-%D endfor ;
-%D \stopMPdrawing
-%D
-%D \MPdrawingdonetrue \getMPdrawing \resetMPdrawing
-%D \stopbuffer
-%D
-%D \placefigure
-%D [here]
-%D [fig:charfreq]
-%D {The character distributions for English, Dutch and German.}
-%D {\getbuffer}
-%D
-%D A few samples of usage of this mechanism are shown below:
-%D
-%D \startbuffer
-%D {\mainlanguage[en]\hsize65\averagecharwidth\mainlanguage[en]\input ward \blank}
-%D {\mainlanguage[nl]\hsize65\averagecharwidth\mainlanguage[en]\input ward \blank}
-%D {\mainlanguage[de]\hsize65\averagecharwidth\mainlanguage[en]\input ward \blank}
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D Although the widthts differ, the consequenes for breaking the paragraph
-%D into lines are minimal.
-
-%D \macros
-%D {freezeaveragecharacterwidth}
-%D
-%D This macro can be used to make sure that the width does not change during a
-%D page break when another font is used.
-
-\let\normalaveragecharacterwidth\averagecharacterwidth
-
-\def\freezeaveragecharacterwidth % global
- {\xdef\averagecharacterwidth{\dimexpr(\the\normalaveragecharacterwidth)}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-ger.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-ger.mkii
deleted file mode 100644
index d33620cc7bc..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-ger.mkii
+++ /dev/null
@@ -1,744 +0,0 @@
-%D \module
-%D [ file=lang-ger,
-%D version=1997.09.03,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Germanic Languages,
-%D author=Hans Hagen / Tobias Burnus,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Language Macros / Germanic Languages}
-
-%D The framework of this module is set up by Hans Hagen while
-%D many of the first translations were done by Tobias. Later
-%D on, corrections were made by users. If you have suggestions,
-%D or feel that your name missing here, don't hesitate to send
-%D us an email.
-%D
-%D \starttabulate[|lB|l|]
-%D \NC Norwegian \NC Hans Fredrik Nordhaug \NC \NR
-%D \NC Danish \NC Arne Jorgensen \NC \NR % check the o
-%D \NC Afrikaans \NC \NC \NR
-%D \stoptabulate
-
-% Danish, Faeroese, Icelandic, Norwegian, Swedish, German, Yiddish
-% Afrikaans, Dutch, English, Flemush, Frisian, Plattdeutsch
-
-\unprotect
-
-\installlanguage
- [\s!nl]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\lowerleftsingleninequote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\lowerleftdoubleninequote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!day,\ ,\v!month,\ ,\v!year},
- \s!mapping={texnansi,ec},
- \s!encoding={texnansi,ec}]
-
-\installlanguage
- [\s!en]
- [\c!spacing=\v!broad,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\upperleftsinglesixquote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\upperleftdoublesixquote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!month,\ ,\v!day,{,\ },\v!year},
- \s!patterns=\s!us,
- \s!lefthyphenmin=2,
- \s!righthyphenmin=3]
-
-\installlanguage
- [\s!de]
- [\c!spacing=\v!packed,
- \s!lefthyphenmin=3,
- \s!righthyphenmin=3,
- \c!leftsentence={\hbox{--~}},
- \c!rightsentence={\hbox{~--}},
- \c!leftsubsentence={--},
- \c!rightsubsentence={--},
- \c!leftquote=\lowerleftsingleninequote,
- \c!rightquote=\upperrightsinglesixquote,
- \c!leftquotation=\lowerleftdoubleninequote,
- \c!rightquotation=\upperrightdoublesixquote,
- \c!date={\v!day,{.},\ ,\v!month,\ ,\v!year},
- \s!mapping={texnansi,ec},
- \s!encoding={texnansi,ec}]
-
-\installlanguage
- [\s!da]
- [\c!spacing=\v!packed,
- \c!leftsentence={\hbox{--\hskip.5em}},
- \c!rightsentence={\hbox{\hskip.5em--}},
- \c!leftsubsentence={--},
- \c!rightsubsentence={--},
- \c!leftquote=\lowerleftsingleninequote,
- \c!rightquote=\upperrightsinglesixquote,
- \c!leftquotation=\lowerleftdoubleninequote,
- \c!rightquotation=\upperrightdoublesixquote,
- \c!date={\v!day,{.},\ ,\v!month,\ ,\v!year}]
-
-\installlanguage
- [\s!sv]
- [\c!spacing=\v!packed,
- \c!leftsentence={\hbox{--~}},
- \c!rightsentence={\hbox{~--}},
- \c!leftsubsentence={--},
- \c!rightsubsentence={--},
- \c!leftquote=\upperrightsingleninequote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\upperrightdoubleninequote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!day,\ ,\v!month,\ ,\v!year}]
-
-\installlanguage
- [\s!af]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\upperleftsinglesixquote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\upperleftdoublesixquote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!year,\ ,\v!month,\ ,\v!day},
- \s!patterns=\s!af] % was nl
-
-\installlanguage
- [\s!nb]
- [spacing=packed,
- lefthyphenmin=2,
- righthyphenmin=2,
- leftsentence=---,
- rightsentence=---,
- leftsubsentence=---,
- rightsubsentence=---,
- leftquote=\upperleftsinglesixquote,
- rightquote=\upperrightsingleninequote,
- leftquotation=\leftguillemot,
- rightquotation=\rightguillemot,
- date={day,{.},\ ,month,\ ,year},
- state=stop]
-
-\installlanguage
- [\s!nn]
- [spacing=packed,
- lefthyphenmin=2,
- righthyphenmin=2,
- leftsentence=---,
- rightsentence=---,
- leftsubsentence=---,
- rightsubsentence=---,
- leftquote=\upperleftsinglesixquote,
- rightquote=\upperrightsingleninequote,
- leftquotation=\leftguillemot,
- rightquotation=\rightguillemot,
- date={day,{.},\ ,month,\ ,year},
- state=stop]
-
-\installlanguage [\s!no] [\s!nb]
-\installlanguage [\s!norwegian] [\s!nb]
-\installlanguage [\s!bokmal] [\s!nb]
-\installlanguage [\s!nynorsk] [\s!nn]
-
-%D Extra:
-
-% \mainlanguage[en]
-% \mainlanguage[de]
-% \mainlanguage[deo]
-% \mainlanguage[de-de]
-% \mainlanguage[de-at]
-% \mainlanguage[de-ch]
-%
-% \starttext
-% Die Herren Meier\index{Meier}, Müller\index{Müller}, Huber\index{Huber}
-% und Schmidt\index{Schmidt} arbeiten in der gleichen Firma.
-%
-% \index{Mass}\index{Mas}\index{Maß}\index{Maße}\index{Masse}
-% \index{Muller}\index{Mûller}
-% \index{Hutte}\index{Hütte}\index{Huttf}
-% \index{paar}\index{Paar}
-% \index{a}\index{aa}\index{ä}\index{az}\index{aza}
-% \index{o}\index{oo}\index{ö}\index{oz}\index{oza}
-% \index{u}\index{uu}\index{ü}\index{uz}\index{uza}\index{üa}
-% \index{call}\index{chip}
-%
-% \subject{Index} \placeindex
-% \stoptext
-
-\installlanguage % old german
- [deo]
- [\c!spacing=\v!packed,
- \c!default=\s!de]
-
-\installlanguage
- [de-de]
- [\c!spacing=\v!packed,
- \c!default=\s!de]
-
-\installlanguage
- [de-at]
- [\c!spacing=\v!packed,
- \c!default=\s!de,
- \c!leftquote=\leftguillemot,
- \c!rightquote=\rightguillemot,
- \c!leftquotation=\leftguillemot,
- \c!rightquotation=\rightguillemot]
-
-\installlanguage
- [de-ch]
- [\c!spacing=\v!packed,
- \c!default=\s!de]
-
-%D And some alternative (but very real) english patterns:
-
-\installlanguage
- [en-gb]
- [\c!default=\s!en,
- \s!patterns=\s!gb,
- \s!lefthyphenmin=3,
- \s!righthyphenmin=3]
-
-\installlanguage
- [en-us]
- [\c!default=\s!en,
- \s!patterns=\s!us]
-
-\installlanguage [\s!uk] [\s!en-\s!gb]
-\installlanguage [\s!us] [\s!en-\s!us]
-
-%D For compatibility reasons we also define:
-
-%installlanguage [du] [\s!de] % old times context
-%installlanguage [sp] [\s!es] % old times context /lang-ita
-
-\installlanguage [usenglish] [\s!en-\s!us]
-\installlanguage [ukenglish] [\s!en-\s!gb]
-\installlanguage [english] [\s!en]
-\installlanguage [dutch] [\s!nl]
-\installlanguage [german] [\s!de]
-\installlanguage [danish] [\s!da]
-\installlanguage [swedish] [\s!sv]
-\installlanguage [afrikaans] [\s!af]
-
-\setupheadtext [\s!en] [\v!content=Contents]
-\setupheadtext [\s!nl] [\v!content=Inhoud]
-\setupheadtext [\s!de] [\v!content=Inhalt]
-\setupheadtext [\s!da] [\v!content=Indhold]
-\setupheadtext [\s!sv] [\v!content=Inneh\aring ll]
-\setupheadtext [\s!af] [\v!content=Inhoud]
-\setupheadtext [\s!nb] [\v!content=Innhold]
-\setupheadtext [\s!nn] [\v!content=Innhald]
-
-\setupheadtext [\s!en] [\v!tables=Tables]
-\setupheadtext [\s!nl] [\v!tables=Tabellen]
-\setupheadtext [\s!de] [\v!tables=Tabellen]
-\setupheadtext [\s!da] [\v!tables=Tabeller]
-\setupheadtext [\s!sv] [\v!tables=Tabeller]
-\setupheadtext [\s!af] [\v!tables=Tabelle]
-\setupheadtext [\s!nb] [\v!tables=Tabeller]
-\setupheadtext [\s!nn] [\v!tables=Tabellar]
-
-\setupheadtext [\s!en] [\v!figures=Figures]
-\setupheadtext [\s!nl] [\v!figures=Figuren]
-\setupheadtext [\s!de] [\v!figures=Abbildungen]
-\setupheadtext [\s!da] [\v!figures=Figurer]
-\setupheadtext [\s!sv] [\v!figures=Figurer]
-\setupheadtext [\s!af] [\v!figures=Figure]
-\setupheadtext [\s!nb] [\v!figures=Figurer]
-\setupheadtext [\s!nn] [\v!figures=Figurar]
-
-\setupheadtext [\s!en] [\v!graphics=Graphics]
-\setupheadtext [\s!nl] [\v!graphics=Grafieken]
-\setupheadtext [\s!de] [\v!graphics=Graphiken]
-\setupheadtext [\s!da] [\v!graphics=Grafik]
-\setupheadtext [\s!sv] [\v!graphics=Grafik]
-\setupheadtext [\s!af] [\v!graphics=Grafieke]
-\setupheadtext [\s!nb] [\v!graphics=Bilde]
-\setupheadtext [\s!nn] [\v!graphics=Bilete]
-
-\setupheadtext [\s!en] [\v!intermezzi=Intermezzos]
-\setupheadtext [\s!nl] [\v!intermezzi=Intermezzo's]
-\setupheadtext [\s!de] [\v!intermezzi=Intermezzi]
-\setupheadtext [\s!da] [\v!intermezzi=Intermezzoer]
-\setupheadtext [\s!sv] [\v!intermezzi=Intermezzon]
-\setupheadtext [\s!af] [\v!intermezzi=Intermezzos]
-\setupheadtext [\s!nb] [\v!intermezzi=Intermesso]
-\setupheadtext [\s!nn] [\v!intermezzi=Intermesso]
-
-\setupheadtext [\s!en] [\v!index=Index]
-\setupheadtext [\s!nl] [\v!index=Index]
-\setupheadtext [\s!de] [\v!index=Index]
-\setupheadtext [\s!da] [\v!index=Indeks]
-\setupheadtext [\s!sv] [\v!index=Sakregister]
-\setupheadtext [\s!af] [\v!index=Indeks]
-\setupheadtext [\s!nb] [\v!index=Register]
-\setupheadtext [\s!nn] [\v!index=Register]
-
-\setupheadtext [\s!en] [\v!abbreviations=Abbreviations]
-\setupheadtext [\s!nl] [\v!abbreviations=Afkortingen]
-\setupheadtext [\s!de] [\v!abbreviations=Abk\uumlaut rzungen]
-\setupheadtext [\s!da] [\v!abbreviations=Forkortelser]
-\setupheadtext [\s!sv] [\v!abbreviations=F\oumlaut rkortningar]
-\setupheadtext [\s!af] [\v!abbreviations=Afkortings]
-\setupheadtext [\s!nb] [\v!abbreviations=Forkortelser]
-\setupheadtext [\s!nn] [\v!abbreviations=Forkortingar]
-
-\setupheadtext [\s!en] [\v!logos=Logos]
-\setupheadtext [\s!nl] [\v!logos=Logo's]
-\setupheadtext [\s!de] [\v!logos=Logos]
-\setupheadtext [\s!da] [\v!logos=Logoer]
-\setupheadtext [\s!sv] [\v!logos=Loggor]
-\setupheadtext [\s!af] [\v!logos=Logos]
-\setupheadtext [\s!nb] [\v!logos=Logoer]
-\setupheadtext [\s!nn] [\v!logos=Logoar]
-
-\setupheadtext [\s!en] [\v!units=Units]
-\setupheadtext [\s!nl] [\v!units=Eenheden]
-\setupheadtext [\s!de] [\v!units=Einheiten]
-\setupheadtext [\s!da] [\v!units=Enheder]
-\setupheadtext [\s!sv] [\v!units=Enheter]
-\setupheadtext [\s!af] [\v!units=Eenhede]
-\setupheadtext [\s!nb] [\v!units=Enheter]
-\setupheadtext [\s!nn] [\v!units=Einingar]
-
-\setupheadtext [\s!en] [pubs=References]
-\setupheadtext [\s!nl] [pubs=Literatuur]
-\setupheadtext [\s!de] [pubs=Literatur]
-%setupheadtext [\s!da] [pubs=?]
-%setupheadtext [\s!sv] [pubs=?]
-%setupheadtext [\s!af] [pubs=?]
-%setupheadtext [\s!nb] [pubs=?]
-%setupheadtext [\s!nn] [pubs=?]
-
-\setuplabeltext [\s!en] [\v!table=Table ]
-\setuplabeltext [\s!nl] [\v!table=Tabel ]
-\setuplabeltext [\s!de] [\v!table=Tabelle ]
-\setuplabeltext [\s!da] [\v!table=Tabel ]
-\setuplabeltext [\s!sv] [\v!table=Tabell ]
-\setuplabeltext [\s!af] [\v!table=Tabel]
-\setuplabeltext [\s!nb] [\v!table=Tabell ]
-\setuplabeltext [\s!nn] [\v!table=Tabell ]
-
-\setuplabeltext [\s!en] [\v!figure=Figure ]
-\setuplabeltext [\s!nl] [\v!figure=Figuur ]
-\setuplabeltext [\s!de] [\v!figure=Abbildung ]
-\setuplabeltext [\s!da] [\v!figure=Figur ]
-\setuplabeltext [\s!sv] [\v!figure=Figur ]
-\setuplabeltext [\s!af] [\v!figure=Figuur ]
-\setuplabeltext [\s!nb] [\v!figure=Figur ]
-\setuplabeltext [\s!nn] [\v!figure=Figur ]
-
-\setuplabeltext [\s!en] [\v!intermezzo=Intermezzo ]
-\setuplabeltext [\s!nl] [\v!intermezzo=Intermezzo ]
-\setuplabeltext [\s!de] [\v!intermezzo=Intermezzo ]
-\setuplabeltext [\s!da] [\v!intermezzo=Intermezzo ]
-\setuplabeltext [\s!sv] [\v!intermezzo=Intermezzo ]
-\setuplabeltext [\s!af] [\v!intermezzo=Intermezzo ]
-\setuplabeltext [\s!nb] [\v!intermezzo=Intermesso ]
-\setuplabeltext [\s!nn] [\v!intermezzo=Intermesso ]
-
-\setuplabeltext [\s!en] [\v!graphic=Graphic ]
-\setuplabeltext [\s!nl] [\v!graphic=Grafiek ]
-\setuplabeltext [\s!de] [\v!graphic=Graphik ]
-\setuplabeltext [\s!da] [\v!graphic=Grafik ]
-\setuplabeltext [\s!sv] [\v!graphic=Grafik ]
-\setuplabeltext [\s!af] [\v!graphic=Grafiek ]
-\setuplabeltext [\s!nb] [\v!graphic=Bilde ]
-\setuplabeltext [\s!nn] [\v!graphic=Bilete ]
-
-%D We don't set these here. One can do that in a style.
-
-\setuplabeltext [\s!en] [\v!chapter=] % Chapter
-\setuplabeltext [\s!nl] [\v!chapter=]
-\setuplabeltext [\s!de] [\v!chapter=] % Kapitel
-\setuplabeltext [\s!da] [\v!chapter=]
-\setuplabeltext [\s!sv] [\v!chapter=]
-\setuplabeltext [\s!af] [\v!chapter=] % Hoofstuk
-\setuplabeltext [\s!nb] [\v!chapter=]
-\setuplabeltext [\s!nn] [\v!chapter=]
-
-\setuplabeltext [\s!en] [\v!section=]
-\setuplabeltext [\s!nl] [\v!section=]
-\setuplabeltext [\s!de] [\v!section=]
-\setuplabeltext [\s!da] [\v!section=]
-\setuplabeltext [\s!sv] [\v!section=]
-\setuplabeltext [\s!af] [\v!section=] % Paragraaf
-\setuplabeltext [\s!nb] [\v!section=]
-\setuplabeltext [\s!nn] [\v!section=]
-
-\setuplabeltext [\s!en] [\v!subsection=]
-\setuplabeltext [\s!nl] [\v!subsection=]
-\setuplabeltext [\s!de] [\v!subsection=]
-\setuplabeltext [\s!da] [\v!subsection=]
-\setuplabeltext [\s!sv] [\v!subsection=]
-\setuplabeltext [\s!af] [\v!subsection=]
-\setuplabeltext [\s!nb] [\v!subsection=]
-\setuplabeltext [\s!nn] [\v!subsection=]
-
-\setuplabeltext [\s!en] [\v!subsubsection=]
-\setuplabeltext [\s!nl] [\v!subsubsection=]
-\setuplabeltext [\s!de] [\v!subsubsection=]
-\setuplabeltext [\s!da] [\v!subsubsection=]
-\setuplabeltext [\s!sv] [\v!subsubsection=]
-\setuplabeltext [\s!af] [\v!subsubsection=]
-\setuplabeltext [\s!nb] [\v!subsubsection=]
-\setuplabeltext [\s!nn] [\v!subsubsection=]
-
-\setuplabeltext [\s!en] [\v!subsubsubsection=]
-\setuplabeltext [\s!nl] [\v!subsubsubsection=]
-\setuplabeltext [\s!de] [\v!subsubsubsection=]
-\setuplabeltext [\s!da] [\v!subsubsubsection=]
-\setuplabeltext [\s!sv] [\v!subsubsubsection=]
-\setuplabeltext [\s!af] [\v!subsubsubsection=]
-\setuplabeltext [\s!nb] [\v!subsubsubsection=]
-\setuplabeltext [\s!nn] [\v!subsubsubsection=]
-
-\setuplabeltext [\s!en] [\v!appendix=] % Appendix
-\setuplabeltext [\s!nl] [\v!appendix=]
-\setuplabeltext [\s!de] [\v!appendix=] % Anhang
-\setuplabeltext [\s!da] [\v!appendix=] % Bilag
-\setuplabeltext [\s!sv] [\v!appendix=]
-\setuplabeltext [\s!af] [\v!appendix=] % Bylae
-\setuplabeltext [\s!nb] [\v!appendix=] % Tillegg
-\setuplabeltext [\s!nn] [\v!appendix=] % Tillegg
-
-\setuplabeltext [\s!en] [\v!part=Part ]
-\setuplabeltext [\s!nl] [\v!part=Deel ]
-\setuplabeltext [\s!de] [\v!part=Teil ]
-\setuplabeltext [\s!da] [\v!part=Del ]
-\setuplabeltext [\s!sv] [\v!part=Del ]
-\setuplabeltext [\s!af] [\v!part=Deel ]
-\setuplabeltext [\s!nb] [\v!part=Del]
-\setuplabeltext [\s!nn] [\v!part=Del]
-
-\setuplabeltext [\s!en] [\v!line=line ]
-\setuplabeltext [\s!nl] [\v!line=regel ]
-\setuplabeltext [\s!de] [\v!line=Zeile ]
-\setuplabeltext [\s!da] [\v!line=linie ] % or linje
-\setuplabeltext [\s!sv] [\v!line=rad ]
-\setuplabeltext [\s!af] [\v!line=re\ediaeresis l ]
-\setuplabeltext [\s!nb] [\v!line=linje ]
-\setuplabeltext [\s!nn] [\v!line=linje ]
-
-\setuplabeltext [\s!en] [\v!lines=lines ]
-\setuplabeltext [\s!nl] [\v!lines=regels ]
-\setuplabeltext [\s!de] [\v!lines=Zeilen ]
-\setuplabeltext [\s!da] [\v!lines=linier ] % or linjer
-\setuplabeltext [\s!sv] [\v!lines=rader ]
-\setuplabeltext [\s!af] [\v!lines=re\ediaeresis ls ]
-\setuplabeltext [\s!nb] [\v!lines=linjer ]
-\setuplabeltext [\s!nn] [\v!lines=linjer ]
-
-\setuplabeltext [\s!en] [\v!january=January]
-\setuplabeltext [\s!en] [\v!february=February]
-\setuplabeltext [\s!en] [\v!march=March]
-\setuplabeltext [\s!en] [\v!april=April]
-\setuplabeltext [\s!en] [\v!may=May]
-\setuplabeltext [\s!en] [\v!june=June]
-\setuplabeltext [\s!en] [\v!july=July]
-\setuplabeltext [\s!en] [\v!august=August]
-\setuplabeltext [\s!en] [\v!september=September]
-\setuplabeltext [\s!en] [\v!october=October]
-\setuplabeltext [\s!en] [\v!november=November]
-\setuplabeltext [\s!en] [\v!december=December]
-
-\setuplabeltext [\s!nl] [\v!january=januari]
-\setuplabeltext [\s!nl] [\v!february=februari]
-\setuplabeltext [\s!nl] [\v!march=maart]
-\setuplabeltext [\s!nl] [\v!april=april]
-\setuplabeltext [\s!nl] [\v!may=mei]
-\setuplabeltext [\s!nl] [\v!june=juni]
-\setuplabeltext [\s!nl] [\v!july=juli]
-\setuplabeltext [\s!nl] [\v!august=augustus]
-\setuplabeltext [\s!nl] [\v!september=september]
-\setuplabeltext [\s!nl] [\v!october=oktober]
-\setuplabeltext [\s!nl] [\v!november=november]
-\setuplabeltext [\s!nl] [\v!december=december]
-
-\setuplabeltext [\s!de] [\v!january=Januar]
-\setuplabeltext [\s!de] [\v!february=Februar]
-\setuplabeltext [\s!de] [\v!march=M\aumlaut rz]
-\setuplabeltext [\s!de] [\v!april=April]
-\setuplabeltext [\s!de] [\v!may=Mai]
-\setuplabeltext [\s!de] [\v!june=Juni]
-\setuplabeltext [\s!de] [\v!july=Juli]
-\setuplabeltext [\s!de] [\v!august=August]
-\setuplabeltext [\s!de] [\v!september=September]
-\setuplabeltext [\s!de] [\v!october=Oktober]
-\setuplabeltext [\s!de] [\v!november=November]
-\setuplabeltext [\s!de] [\v!december=Dezember]
-
-\setuplabeltext [\s!da] [\v!january=januar]
-\setuplabeltext [\s!da] [\v!february=februar]
-\setuplabeltext [\s!da] [\v!march=marts]
-\setuplabeltext [\s!da] [\v!april=april]
-\setuplabeltext [\s!da] [\v!may=maj]
-\setuplabeltext [\s!da] [\v!june=juni]
-\setuplabeltext [\s!da] [\v!july=juli]
-\setuplabeltext [\s!da] [\v!august=august]
-\setuplabeltext [\s!da] [\v!september=september]
-\setuplabeltext [\s!da] [\v!october=oktober]
-\setuplabeltext [\s!da] [\v!november=november]
-\setuplabeltext [\s!da] [\v!december=december]
-
-\setuplabeltext [\s!sv] [\v!january=januari]
-\setuplabeltext [\s!sv] [\v!february=februari]
-\setuplabeltext [\s!sv] [\v!march=mars]
-\setuplabeltext [\s!sv] [\v!april=april]
-\setuplabeltext [\s!sv] [\v!may=maj]
-\setuplabeltext [\s!sv] [\v!june=juni]
-\setuplabeltext [\s!sv] [\v!july=juli]
-\setuplabeltext [\s!sv] [\v!august=augusti]
-\setuplabeltext [\s!sv] [\v!september=september]
-\setuplabeltext [\s!sv] [\v!october=oktober]
-\setuplabeltext [\s!sv] [\v!november=november]
-\setuplabeltext [\s!sv] [\v!december=december]
-
-\setuplabeltext [\s!af] [\v!january=januarie]
-\setuplabeltext [\s!af] [\v!february=februarie]
-\setuplabeltext [\s!af] [\v!march=maart]
-\setuplabeltext [\s!af] [\v!april=april]
-\setuplabeltext [\s!af] [\v!may=mei]
-\setuplabeltext [\s!af] [\v!june=junie]
-\setuplabeltext [\s!af] [\v!july=julie]
-\setuplabeltext [\s!af] [\v!august=augustus]
-\setuplabeltext [\s!af] [\v!september=september]
-\setuplabeltext [\s!af] [\v!october=oktober]
-\setuplabeltext [\s!af] [\v!november=november]
-\setuplabeltext [\s!af] [\v!december=desember]
-
-\setuplabeltext [\s!nb] [\v!january=januar]
-\setuplabeltext [\s!nb] [\v!february=februar]
-\setuplabeltext [\s!nb] [\v!march=mars]
-\setuplabeltext [\s!nb] [\v!april=april]
-\setuplabeltext [\s!nb] [\v!may=mai]
-\setuplabeltext [\s!nb] [\v!june=juni]
-\setuplabeltext [\s!nb] [\v!july=juli]
-\setuplabeltext [\s!nb] [\v!august=august]
-\setuplabeltext [\s!nb] [\v!september=september]
-\setuplabeltext [\s!nb] [\v!october=oktober]
-\setuplabeltext [\s!nb] [\v!november=november]
-\setuplabeltext [\s!nb] [\v!december=desember]
-
-\setuplabeltext [\s!nn] [\v!january=januar]
-\setuplabeltext [\s!nn] [\v!february=februar]
-\setuplabeltext [\s!nn] [\v!march=mars]
-\setuplabeltext [\s!nn] [\v!april=april]
-\setuplabeltext [\s!nn] [\v!may=mai]
-\setuplabeltext [\s!nn] [\v!june=juni]
-\setuplabeltext [\s!nn] [\v!july=juli]
-\setuplabeltext [\s!nn] [\v!august=august]
-\setuplabeltext [\s!nn] [\v!september=september]
-\setuplabeltext [\s!nn] [\v!october=oktober]
-\setuplabeltext [\s!nn] [\v!november=november]
-\setuplabeltext [\s!nn] [\v!december=desember]
-
-\setuplabeltext [\s!en] [\v!sunday=Sunday]
-\setuplabeltext [\s!en] [\v!monday=Monday]
-\setuplabeltext [\s!en] [\v!tuesday=Tuesday]
-\setuplabeltext [\s!en] [\v!wednesday=Wednesday]
-\setuplabeltext [\s!en] [\v!thursday=Thursday]
-\setuplabeltext [\s!en] [\v!friday=Friday]
-\setuplabeltext [\s!en] [\v!saturday=Saturday]
-
-\setuplabeltext [\s!nl] [\v!sunday=zondag]
-\setuplabeltext [\s!nl] [\v!monday=maandag]
-\setuplabeltext [\s!nl] [\v!tuesday=dinsdag]
-\setuplabeltext [\s!nl] [\v!wednesday=woensdag]
-\setuplabeltext [\s!nl] [\v!thursday=donderdag]
-\setuplabeltext [\s!nl] [\v!friday=vrijdag]
-\setuplabeltext [\s!nl] [\v!saturday=zaterdag]
-
-\setuplabeltext [\s!de] [\v!sunday=Sonntag]
-\setuplabeltext [\s!de] [\v!monday=Montag]
-\setuplabeltext [\s!de] [\v!tuesday=Dienstag]
-\setuplabeltext [\s!de] [\v!wednesday=Mittwoch]
-\setuplabeltext [\s!de] [\v!thursday=Donnerstag]
-\setuplabeltext [\s!de] [\v!friday=Freitag]
-\setuplabeltext [\s!de] [\v!saturday=Samstag]
-
-\setuplabeltext [\s!da] [\v!sunday=s\ostroke ndag]
-\setuplabeltext [\s!da] [\v!monday=mandag]
-\setuplabeltext [\s!da] [\v!tuesday=tirsdag]
-\setuplabeltext [\s!da] [\v!wednesday=onsdag]
-\setuplabeltext [\s!da] [\v!thursday=torsdag]
-\setuplabeltext [\s!da] [\v!friday=fredag]
-\setuplabeltext [\s!da] [\v!saturday=l\ostroke rdag]
-
-\setuplabeltext [\s!sv] [\v!sunday=s\oumlaut ndag]
-\setuplabeltext [\s!sv] [\v!monday=m\aring ndag]
-\setuplabeltext [\s!sv] [\v!tuesday=tisdag]
-\setuplabeltext [\s!sv] [\v!wednesday=onsdag]
-\setuplabeltext [\s!sv] [\v!thursday=torsdag]
-\setuplabeltext [\s!sv] [\v!friday=fredag]
-\setuplabeltext [\s!sv] [\v!saturday=l\oumlaut rdag]
-
-\setuplabeltext [\s!af] [\v!sunday=sondag]
-\setuplabeltext [\s!af] [\v!monday=maandag]
-\setuplabeltext [\s!af] [\v!tuesday=dinsdag]
-\setuplabeltext [\s!af] [\v!wednesday=woensdag]
-\setuplabeltext [\s!af] [\v!thursday=donderdag]
-\setuplabeltext [\s!af] [\v!friday=vrydag]
-\setuplabeltext [\s!af] [\v!saturday=saterdag]
-
-\setuplabeltext [\s!nb] [\v!sunday=s\ostroke ndag]
-\setuplabeltext [\s!nb] [\v!monday=mandag]
-\setuplabeltext [\s!nb] [\v!tuesday=tirsdag]
-\setuplabeltext [\s!nb] [\v!wednesday=onsdag]
-\setuplabeltext [\s!nb] [\v!thursday=torsdag]
-\setuplabeltext [\s!nb] [\v!friday=fredag]
-\setuplabeltext [\s!nb] [\v!saturday=l\ostroke rdag]
-
-\setuplabeltext [\s!nn] [\v!sunday=sundag]
-\setuplabeltext [\s!nn] [\v!monday=m\aring ndag]
-\setuplabeltext [\s!nn] [\v!tuesday=tysdag]
-\setuplabeltext [\s!nn] [\v!wednesday=onsdag]
-\setuplabeltext [\s!nn] [\v!thursday=torsdag]
-\setuplabeltext [\s!nn] [\v!friday=fredag]
-\setuplabeltext [\s!nn] [\v!saturday=laurdag]
-
-%D Rather new ...
-
-\setuplabeltext [\s!nl] [\v!page=pagina ]
-\setuplabeltext [\s!nl] [\v!atpage=op pagina ]
-\setuplabeltext [\s!nl] [\v!hencefore=hierboven]
-\setuplabeltext [\s!nl] [\v!hereafter=hieronder]
-\setuplabeltext [\s!nl] [\v!see=zie ]
-\setuplabeltext [\s!nl] [\v!and= en ]
-\setuplabeltext [\s!nl] [\v!continued={ (vervolged)}]
-
-\setuplabeltext [\s!en] [\v!page=page ]
-\setuplabeltext [\s!en] [\v!atpage=at page ]
-\setuplabeltext [\s!en] [\v!hencefore=as we show above]
-\setuplabeltext [\s!en] [\v!hereafter=as we show below]
-\setuplabeltext [\s!en] [\v!see=see ]
-\setuplabeltext [\s!en] [\v!and= and ]
-\setuplabeltext [\s!en] [\v!continued={ (continued)}]
-
-\setuplabeltext [\s!de] [\v!page=Seite ]
-\setuplabeltext [\s!de] [\v!atpage=auf Seite ]
-\setuplabeltext [\s!de] [\v!hencefore=siehe oben]
-\setuplabeltext [\s!de] [\v!hereafter=siehe unten]
-\setuplabeltext [\s!de] [\v!see=siehe ]
-\setuplabeltext [\s!de] [\v!and= und ]
-
-\setuplabeltext [\s!da] [\v!page=Side ]
-\setuplabeltext [\s!da] [\v!atpage=p\aring\ side ]
-\setuplabeltext [\s!da] [\v!hencefore=se foroven]
-\setuplabeltext [\s!da] [\v!hereafter=se forneden]
-\setuplabeltext [\s!da] [\v!see=se ]
-
-\setuplabeltext [\s!sv] [\v!page=Sida ]
-\setuplabeltext [\s!sv] [\v!atpage=p\aring\ sida ]
-\setuplabeltext [\s!sv] [\v!hencefore=se ovan]
-\setuplabeltext [\s!sv] [\v!hereafter=se nedan]
-\setuplabeltext [\s!sv] [\v!see=se ]
-
-\setuplabeltext [\s!nb] [\v!page=side ]
-\setuplabeltext [\s!nb] [\v!atpage=p\aring\ side ]
-\setuplabeltext [\s!nb] [\v!hencefore=som vist over]
-\setuplabeltext [\s!nb] [\v!hereafter=som vist under]
-\setuplabeltext [\s!nb] [\v!see=se ]
-
-\setuplabeltext [\s!nn] [\v!page=side ]
-\setuplabeltext [\s!nn] [\v!atpage=p\aring\ side ]
-\setuplabeltext [\s!nn] [\v!hencefore=som vist over]
-\setuplabeltext [\s!nn] [\v!hereafter=som vist under]
-\setuplabeltext [\s!nn] [\v!see=sj\aring\ ]
-
-%D ... and to be completed!
-
-%D Next we implement couple of ordinal mumber converters:
-
-\def\enordinaldaynumber#1%
- {#1\ifnum\lasttwodigits{#1}=11
- \highordinalstr{th}%
- \else\ifnum\lasttwodigits{#1}=12
- \highordinalstr{th}%
- \else\ifnum\lasttwodigits{#1}=13
- \highordinalstr{th}%
- \else\ifcase\lastdigit{#1}%
- \highordinalstr{th}%
- \or % 1
- \highordinalstr{st}%
- \or % 2
- \highordinalstr{nd}%
- \or % 3
- \highordinalstr{rd}%
- \else
- \highordinalstr{th}%
- \fi\fi\fi\fi}
-
-% \def\enordinaldaynumber#1%
-% {#1\ordinalstr{\ifnum\lasttwodigits{#1}=11 th\else\ifcase\lastdigit{#1}
-% th\or st\or nd\or rd\else th\fi\fi}}
-
-\def\nlordinaldaynumber#1%
- {#1\highordinalstr{e}}
-
-%D \ShowAllLanguageValues [\s!en] [english] {English} {horn} % engelse humor
-%D \ShowAllLanguageValues [\s!nl] [dutch] {Dutch} {treat} % nederlandse zuinigheid
-%D \ShowAllLanguageValues [\s!de] [german] {German} {beer} % duitse degelijkheid
-%D \ShowAllLanguageValues [\s!da] [danish] {Danish} {pastry}
-%D \ShowAllLanguageValues [\s!sv] [swedish] {Swedish} {design}
-%D \ShowAllLanguageValues [\s!af] [afrikaans] {Afrikaaner} {boer} % afrikaanse gasvryheid
-%D \ShowAllLanguageValues [\s!nb] [bokmal] {Norwegian} {wood}
-%D \ShowAllLanguageValues [\s!nn] [nynorsk] {Norwegian} {fish}
-
-%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]
-
-\setuplabeltext [\s!nb] [\v!january :\s!mnem=jan.]
-\setuplabeltext [\s!nb] [\v!february :\s!mnem=feb.]
-\setuplabeltext [\s!nb] [\v!march :\s!mnem=mars]
-\setuplabeltext [\s!nb] [\v!april :\s!mnem=april]
-\setuplabeltext [\s!nb] [\v!may :\s!mnem=mai]
-\setuplabeltext [\s!nb] [\v!june :\s!mnem=juni]
-\setuplabeltext [\s!nb] [\v!july :\s!mnem=juli]
-\setuplabeltext [\s!nb] [\v!august :\s!mnem=aug.]
-\setuplabeltext [\s!nb] [\v!september:\s!mnem=sep.]
-\setuplabeltext [\s!nb] [\v!october :\s!mnem=okt.]
-\setuplabeltext [\s!nb] [\v!november :\s!mnem=nov.]
-\setuplabeltext [\s!nb] [\v!december :\s!mnem=des.]
-
-\setuplabeltext [\s!nn] [\v!january :\s!mnem=jan.]
-\setuplabeltext [\s!nn] [\v!february :\s!mnem=feb.]
-\setuplabeltext [\s!nn] [\v!march :\s!mnem=mars]
-\setuplabeltext [\s!nn] [\v!april :\s!mnem=april]
-\setuplabeltext [\s!nn] [\v!may :\s!mnem=mai]
-\setuplabeltext [\s!nn] [\v!june :\s!mnem=juni]
-\setuplabeltext [\s!nn] [\v!july :\s!mnem=juli]
-\setuplabeltext [\s!nn] [\v!august :\s!mnem=aug.]
-\setuplabeltext [\s!nn] [\v!september:\s!mnem=sep.]
-\setuplabeltext [\s!nn] [\v!october :\s!mnem=okt.]
-\setuplabeltext [\s!nn] [\v!november :\s!mnem=nov.]
-\setuplabeltext [\s!nn] [\v!december :\s!mnem=des.]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-grk.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-grk.mkii
deleted file mode 100644
index 9fd59382a0c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-grk.mkii
+++ /dev/null
@@ -1,99 +0,0 @@
-%D \module
-%D [ file=lang-grk,
-%D version=2003.04.01,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Uralic Languages,
-%D author=Apostolos Syropoulos
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Language Macros / Greek}
-
-%D The framework of this module is set up by Hans Hagen while
-%D all the translations have been done by Apostolos Syropoulos
-
-\unprotect
-
-\installlanguage
- [\s!gr]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\greekleftquot,
- \c!rightquote=\greekrightquot,
- \c!leftquotation=\greekleftquot,
- \c!rightquotation=\greekrightquot,
- \c!date={\v!day\ \v!month\ \v!year}]
-
-\installlanguage [greek] [\s!gr]
-
-\setupheadtext [\s!gr] [\v!content=\greekPi\greekepsilon\greekrho\greekiota\greekepsilon\greekchi\greekomicrontonos\greekmu\greekepsilon\greeknu\greekalpha]
-\setupheadtext [\s!gr] [\v!tables=\greekPi\greekiotatonos\greeknu\greekalpha\greekkappa\greekepsilon\greekfinalsigma]
-\setupheadtext [\s!gr] [\v!figures=\greekSigma\greekchi\greeketatonos\greekmu\greekalpha\greektau\greekalpha]
-\setupheadtext [\s!gr] [\v!graphics=\greekGamma\greekrho\greekalpha\greekphi\greekiota\greekkappa\greekalphatonos]
-\setupheadtext [\s!gr] [\v!intermezzi=\greekPi\greekalpha\greekupsilontonos\greeksigma\greekepsilon\greekiota\greekfinalsigma]
-\setupheadtext [\s!gr] [\v!index=\greekEpsilon\greekupsilon\greekrho\greekepsilon\greektau\greeketatonos\greekrho\greekiota\greekomicron]
-\setupheadtext [\s!gr] [\v!abbreviations=\greekSigma\greekupsilon\greeknu\greektau\greekomicron\greekmu\greekomicron\greekgamma\greekrho\greekalpha\greekphi\greekiotatonos\greekepsilon\greekfinalsigma]
-\setupheadtext [\s!gr] [\v!logos=\greekLambda\greekomicron\greekgamma\greekomicrontonos\greektau\greekupsilon\greekpi\greekalpha]
-\setupheadtext [\s!gr] [\v!units=\greekMu\greekomicron\greeknu\greekalphatonos\greekdelta\greekepsilon\greekfinalsigma]
-
-\setuplabeltext [\s!gr] [\v!table=\greekPi\greekiotatonos\greeknu\greekalpha\greekkappa\greekalpha\greekfinalsigma]
-\setuplabeltext [\s!gr] [\v!figure=\greekSigma\greekchi\greeketatonos\greekmu\greekalpha]
-\setuplabeltext [\s!gr] [\v!intermezzo=\greekPi\greekalpha\greekupsilontonos\greeksigma\greeketa]
-\setuplabeltext [\s!gr] [\v!graphic=\greekGamma\greekrho\greekalpha\greekphi\greekiota\greekkappa\greekomicrontonos]
-
-\setuplabeltext [\s!gr] [\v!chapter=\greekKappa\greekepsilon\greekphi\greekalphatonos\greeklambda\greekalpha\greekiota\greekomicron]
-\setuplabeltext [\s!gr] [\v!section=\greekEpsilon\greeknu\greekomicrontonos\greektau\greeketa\greektau\greekalpha]
-\setuplabeltext [\s!gr] [\v!subsection=\greekUpsilon\greekpi\greekomicrontonos\greekepsilon\greeknu\greekomicrontonos\greektau\greeketa\greektau\greekalpha]
-\setuplabeltext [\s!gr] [\v!subsubsection=]
-\setuplabeltext [\s!gr] [\v!subsubsubsection=]
-
-\setuplabeltext [\s!gr] [\v!appendix=\greekPi\greekalpha\greekrho\greekalphatonos\greekrho\greektau\greeketa\greekmu\greekalpha]
-\setuplabeltext [\s!gr] [\v!part=\greekMu\greekepsilontonos\greekrho\greekomicron\greekfinalsigma]
-\setuplabeltext [\s!gr] [\v!line=\greekGamma\greekrho\greekalpha\greekmu\greekmu\greeketatonos]
-\setuplabeltext [\s!gr] [\v!lines=\greekGamma\greekrho\greekalpha\greekmu\greekmu\greekepsilontonos\greekfinalsigma]
-
-\setuplabeltext [\s!gr] [\v!january=\greekIota\greekalpha\greeknu\greekomicron\greekupsilon\greekalphatonos\greekrho\greekiota\greekomicron\greekfinalsigma]
-\setuplabeltext [\s!gr] [\v!february=\greekPhi\greekepsilon\greekbeta\greekrho\greekomicron\greekupsilon\greekalphatonos\greekrho\greekiota\greekomicron\greekfinalsigma]
-\setuplabeltext [\s!gr] [\v!march=\greekMu\greekalphatonos\greekrho\greektau\greekiota\greekomicron\greekfinalsigma]
-\setuplabeltext [\s!gr] [\v!april=\greekAlpha\greekpi\greekrho\greekiotatonos\greeklambda\greekiota\greekomicron\greekfinalsigma]
-\setuplabeltext [\s!gr] [\v!may=\greekMu\greekalphatonos\greekiota\greekomicron\greekfinalsigma]
-\setuplabeltext [\s!gr] [\v!june=\greekIota\greekomicron\greekupsilontonos\greeknu\greekiota\greekomicron\greekfinalsigma]
-\setuplabeltext [\s!gr] [\v!july=\greekIota\greekomicron\greekupsilontonos\greeklambda\greekiota\greekomicron\greekfinalsigma]
-\setuplabeltext [\s!gr] [\v!august=\greekAlpha\greekupsilontonos\greekgamma\greekomicron\greekupsilon\greeksigma\greektau\greekomicron\greekfinalsigma]
-\setuplabeltext [\s!gr] [\v!september=\greekSigma\greekepsilon\greekpi\greektau\greekepsilontonos\greekmu\greekbeta\greekrho\greekiota\greekomicron\greekfinalsigma]
-\setuplabeltext [\s!gr] [\v!october=\greekOmicron\greekkappa\greektau\greekomegatonos\greekbeta\greekrho\greekiota\greekomicron\greekfinalsigma]
-\setuplabeltext [\s!gr] [\v!november=\greekNu\greekomicron\greekepsilontonos\greekmu\greekbeta\greekrho\greekiota\greekomicron\greekfinalsigma]
-\setuplabeltext [\s!gr] [\v!december=\greekDelta\greekepsilon\greekkappa\greekepsilontonos\greekmu\greekbeta\greekrho\greekiota\greekomicron\greekfinalsigma]
-
-\setuplabeltext [\s!gr] [\v!sunday=\greekKappa\greekupsilon\greekrho\greekiota\greekalpha\greekkappa\greeketatonos]
-\setuplabeltext [\s!gr] [\v!monday=\greekDelta\greekepsilon\greekupsilon\greektau\greekepsilontonos\greekrho\greekalpha]
-\setuplabeltext [\s!gr] [\v!tuesday=\greekTau\greekrho\greekiotatonos\greektau\greeketa]
-\setuplabeltext [\s!gr] [\v!wednesday=\greekTau\greekepsilon\greektau\greekalphatonos\greekrho\greektau\greeketa]
-\setuplabeltext [\s!gr] [\v!thursday=\greekPi\greekepsilontonos\greekmu\greekpi\greektau\greeketa]
-\setuplabeltext [\s!gr] [\v!friday=\greekPi\greekalpha\greekrho\greekalpha\greeksigma\greekkappa\greekepsilon\greekupsilon\greeketatonos]
-\setuplabeltext [\s!gr] [\v!saturday=\greekSigma\greekalphatonos\greekbeta\greekbeta\greekalpha\greektau\greekomicron]
-
-%D % \ShowAllLanguageValues [\s!gr] [\greekEpsilon\greeklambda\greeklambda\greeketa\greeknu\greekiota\greekkappa\greekalphatonos] {Greek} {love}
-
-\installlanguage
- [\s!agr]
- [\s!default=\s!gr,
- \c!leftquote=\upperleftsinglesixquote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\upperleftdoublesixquote,
- \c!rightquotation=\upperrightdoubleninequote,
- \s!patterns=\s!agr,
- \s!mapping=\s!agr, % not needed for mkiv
- \s!encoding=\s!agr] % not needed for mkiv
-
-\installlanguage [ancientgreek] [\s!agr]
-\installlanguage [grk] [\s!agr]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-ind.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-ind.mkii
deleted file mode 100644
index bb33dacfd24..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-ind.mkii
+++ /dev/null
@@ -1,26 +0,0 @@
-%D \module
-%D [ file=lang--ind,
-%D version=1997.09.03,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Indo Iranian Languages,
-%D author=Hans Hagen / Tobias Burnus,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Language Macros / Indo-Iranian Languages}
-
-%D The framework of this module is set up by Hans Hagen while
-%D many of the first translations were done by Tobias. Later
-%D on, corrections were made by users. If you have suggestions,
-%D or feel that your name missing here, don't hesitate to send
-%D us an email.
-
-% 34 languages
-
-\unprotect
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-ini.mkii
deleted file mode 100644
index 4561f4dd1f3..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-ini.mkii
+++ /dev/null
@@ -1,696 +0,0 @@
-%D \module
-%D [ file=lang-ini,
-%D version=1996.01.25,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module needs a further cleanup (real split between ii/iv).
-
-%D This module implements the (for the moment still simple)
-%D multi||language support of \CONTEXT, which should not be
-%D confused with the multi||lingual interface. This support
-%D will be extended when needed.
-
-\writestatus{loading}{ConTeXt Language Macros / Initialization}
-
-\unprotect
-
-\ifx\nonfrenchspacing\undefined \let\nonfrenchspacing\relax \fi
-\ifx\frenchspacing \undefined \let\frenchspacing \relax \fi
-
-%D When loading hyphenation patterns, \TEX\ assign a number to
-%D each loaded table, starting with~0. Switching to a specific
-%D table is done by assigning the relevant number to the
-%D predefined \COUNTER\ \type{\language}.
-
-%D We keep track of the last loaded patterns by means of a
-%D pseudo \COUNTER. This just one of those situations in which
-%D we don't want to spent a real one. Language zero has no
-%D patterns, first of all because I like to start numbering
-%D at one. It may come in handy for special purposes as well.
-
-\normallanguage\zerocount \def\loadedlanguage{1}
-
-%D \macros
-%D {currentlanguage, setupcurrentlanguage}
-%D
-%D Instead of numbers,we are going to use symbolic names for
-%D the languages. The current langage is saved in the macro
-%D \type {\currentlanguage}. The setup macro is mainly used
-%D for cosmetic purposes.
-%D
-%D \starttyping
-%D \dorecurse{3}
-%D {\language[nl]
-%D \startmode[*en] english \stopmode
-%D \startmode[*nl] dutch \stopmode
-%D \language[en]
-%D \startmode[*en] english \stopmode
-%D \startmode[*nl] dutch \stopmode}
-%D \stoptyping
-
-\let\currentlanguage \empty
-\let\currentmainlanguage\empty
-
-\def\setupcurrentlanguage[#1]{\setcurrentlanguage\currentmainlanguage{#1}}
-
-\def\setcurrentlanguage#1#2% sets modes: **id (currentmain) *id (current)
- {\doifsomething{#1}
- {\ifx\currentmainlanguage\empty\else\resetsystemmode{\systemmodeprefix\currentmainlanguage}\fi
- \edef\currentmainlanguage{#1}%
- \setsystemmode{\systemmodeprefix\currentmainlanguage}}%
- \doifsomething{#2}
- {\ifx\currentlanguage\empty\else\resetsystemmode\currentlanguage\fi
- \edef\currentlanguage{#2}%
- \setsystemmode\currentlanguage}}
-
-%D The internal macros will be defined later.
-
-%D \macros
-%D {installlanguage}
-%D
-%D Hyphenation patterns can only be loaded when the format file
-%D is prepared. The next macro takes care of this loading. A
-%D language is specified with
-%D
-%D \showsetup{installlanguage}
-%D
-%D When \type {state} equals \type {start}, both patterns
-%D and additional hyphenation specifications are loaded. These
-%D files are seached for on the system path and are to be
-%D named:
-%D
-%D \starttyping
-%D \f!languageprefix-identifier.\f!patternsextension
-%D \f!languageprefix-identifier.\f!hyhensextension
-%D \stoptyping
-%D
-%D The \type{spacing} variable specifies how the spaces after
-%D punctuation has to be handled. English is by tradition more
-%D tolerant to inter||sentence spacing than other languages.
-%D
-%D This macro also defines \type {\identifier} as a shortcut
-%D switch to the language. Furthermore the command defined as
-%D being language specific, are executed. With
-%D \type {default} we can default to another language
-%D (patterns) at format generation time. This default language
-%D is overruled when the appropriate patterns are loaded (some
-%D implementations support run time addition of patterns to a
-%D preloaded format).
-
-\def\dodoinstalllanguage#1#2% #2 added
- {\doifundefined{#1}{\setvalue{#1}{\complexlanguage[#2]}}%
- \expanded{\noexpand\uppercase{\noexpand\edef\noexpand\ascii{#1}}}%
- \doifundefined\ascii{\setvalue\ascii{\complexlanguage[#2]}}}
-
-%D \macros
-%D {preloadlanguages}
-%D
-%D We first try to load the files defined as file synonym
-%D for \type {lang-*.pat} and \type {lang-*.hyp}. After that we
-%D fall back on those files. The macro \type {\preloadpatterns}
-%D reports which patterns are loaded and what hyphenmin
-%D values are set.
-
-\let\installedlanguages\empty
-
-\def\doiflanguageelse#1{\doifdefinedelse{\??la#1\c!state}}
-
-\def\doloadlanguagefiles#1%
- {\doifelsevalue{\??la#1\c!state}\v!start
- {\edef\languagesuffix{\specificlanguageparameter{#1}\s!patterns}%
- \ifx\languagesuffix\empty
- \edef\languagesuffix{\defaultlanguage{#1}}%
- \else\ifx\languagesuffix\relax
- \edef\languagesuffix{\defaultlanguage{#1}}%
- \fi\fi
- \ifx\languagesuffix\empty
- \edef\languagesuffix{#1}%
- \fi
- \doifundefinedelse{\??la\??la:\currentencoding:\currentmapping:\languagesuffix}
- {\doloadpatterns{#1}\languagesuffix}
- {\bgroup
- \edef\loadedlanguage{\getvalue{\??la\??la:\currentencoding:\currentmapping:\languagesuffix}}%
- %\showmessage\m!linguals1{\languagesuffix,#1,\loadedlanguage,*,*}%
- %\showmessage\m!linguals3{\languagesuffix,#1,\loadedlanguage,*,*}%
- \egroup}}
- {\showmessage\m!linguals5{#1}}}
-
-\def\doinstalllanguage[#1][#2]%
- {\doifassignmentelse{#2}
- {\doiflanguageelse{#1}
- {\getparameters[\??la#1][#2]}
- {\setvalue{\l!prefix!#1}{#1}%
- \addtocommalist{#1}\installedlanguages
- \dodoinstalllanguage{#1}{#1}%
- \getparameters[\??la#1][\c!state=\v!start,#2]}%
- \doloadlanguagefiles{#1}}
- {\setvalue{\l!prefix!#1}{#2}%
- \getparameters[\??la#1][\s!default=#2]%
- \dodoinstalllanguage{#1}{#2}}}
-
-\def\reallanguagetag#1%
- {\ifcsname\l!prefix!#1\endcsname\csname\l!prefix!#1\endcsname\else#1\fi}
-
-\let\preloadedpatterns\empty
-\let\preloadedpmessage\empty
-
-\def\doshowpatterns#1#2#3#4% language number encoding mapping
- {#1->#3:#4->#2->\specificlanguageparameter{#1}\s!lefthyphenmin:\specificlanguageparameter{#1}\s!righthyphenmin\space}
-
-\def\preloadlanguages
- {\doifsomething\preloadedpmessage{\showmessage\m!linguals{10}\preloadedpmessage}}
-
-\def\preloadallpatterns
- {\gdef\preloadallpatterns##1{\installlanguage[##1][\c!state=\v!start]}%
- \processcommacommand[\installedlanguages]\preloadallpatterns
- \global\let\preloadallpatterns\relax}
-
-% ^^ \language[#1] gave unwanted side effect of loading language specifics
-
-\def\installlanguage
- {\dodoubleargument\doinstalllanguage}
-
-%D When the second argument is a language identifier, a
-%D synonym is created. This feature is present because we
-%D used dutch mnemonics in the dutch version, but nowadays
-%D conform a standard.
-
-\let \patternencoding \s!default
-\let \patternmapping \s!default
-
-\def\doifpatternselse#1%
- {\expanded{\doifinsetelse{#1}{\preloadedpatterns}}}
-
-\def\doloadpatterns#1#2%
- {\edef\askedlanguageencoding{\specificlanguageparameter{#1}\s!encoding}%
- \edef\askedlanguagemapping {\specificlanguageparameter{#1}\s!mapping}%
- \expanded{\getcommacommandsize[\askedlanguageencoding]}%
- % slightly faster: \let\unicodechar\utfunihashglyph
- \ifnum\commalistsize>0
- %\message{[nofpatterns #2: \commalistsize/\askedlanguageencoding]}%
- \dorecurse\commalistsize
- {\expanded{\getfromcommacommand[\askedlanguageencoding][\recurselevel]}%
- \let\patternencoding\commalistelement
- \expanded{\getfromcommacommand[\askedlanguagemapping][\recurselevel]}%
- \let\patternmapping \commalistelement
- %\message{[patterns: #1/#2/\patternencoding/\patternmapping]}%
- \dodoloadpatterns{#1}{#2}\patternencoding\patternmapping}%
- \else
- %\message{[patterns: #1/#2]}%
- \dodoloadpatterns{#1}{#2}{}{}%
- \fi}
-
-\ifnum\texengine=\xetexengine
-
- \def\doloadpatterns#1#2%
- {%\letvalue{\??la#2\s!encoding}\empty
- %\letvalue{\??la#2\s!mapping }\empty
- \dodoloadpatterns{#1}{#2}{}{}}
-
-\fi
-
-\def\setuphyppatencoding
- {\pathypsettings
- \enableregime[utf]}
-
-\def\dodoloadpatterns#1#2#3#4% beware, loaded language also incr
- {\normallanguage\loadedlanguage % when not really needed
- \bgroup
- \let\synchronizepatterns\relax % needed?
- \let\enabledmapping \empty % needed?
- \doifelsenothing{#3}{\enableencoding[\s!default]}{\enableencoding[#3]}%
- \doifelsenothing{#4}{\enablemapping [\s!default]}{\enablemapping [#4]}%
- \setuphyppatencoding
- \ifundefined{\??la\??la:\currentencoding:\currentmapping:#2}%
- \let\doshowpatterns\relax
- \edef\alreadyloadedlanguage
- {\executeifdefined{\??la\??la:\currentencoding:\currentmapping:\truefilename{\f!languageprefix#2.\f!patternsextension}}\empty}%
- \edef\alreadyloadedlanguage
- {\executeifdefined{\??la\??la:\currentencoding:\currentmapping:\f!languageprefix#2.\f!patternsextension}\alreadyloadedlanguage}%
- \ifx\alreadyloadedlanguage\empty
- \letgvalue{\??la\??la:\currentencoding:\currentmapping:#2}\loadedlanguage
- \doifundefined{\??la\??la:\s!default:\s!default:#2}{\letgvalue{\??la\??la:\s!default:\s!default:#2}\loadedlanguage}% fall back
- \startpatternloading{\truefilename{\f!languageprefix#2.\f!patternsextension}}{#3}{#4}%
- \readsysfile{\truefilename{\f!languageprefix#2.\f!patternsextension}}
- {\setxvalue{\??la#1\s!patterns}{#2}%
- \setxvalue{\??la\??la:\currentencoding:\currentmapping:\truefilename{\f!languageprefix#2.\f!patternsextension}}{\number\loadedlanguage}%
- \xdef\preloadedpmessage{\preloadedpmessage\doshowpatterns{#2}{\number\normallanguage}{\currentencoding}{\currentmapping}}%
- \doglobal\addtocommalist{#2}\preloadedpatterns
- \showmessage\m!linguals1{#2,#1,\loadedlanguage,\currentencoding,\currentmapping}}
- {\showmessage\m!linguals2{#2,#1,\loadedlanguage,\currentencoding,\currentmapping,\f!languageprefix#2.\f!patternsextension,\truefilename{\f!languageprefix#2.\f!patternsextension}}}%
- \stoppatternloading
- \startpatternloading{\truefilename{\f!languageprefix#2.\f!hyphensextension}}{#3}{#4}%
- \readsysfile{\truefilename{\f!languageprefix#2.\f!hyphensextension}}
- {\showmessage\m!linguals3{#2,#1,\loadedlanguage,\currentencoding,\currentmapping}}
- {\showmessage\m!linguals4{#2,#1,\loadedlanguage,\currentencoding,\currentmapping}}%
- \stoppatternloading
- \doglobal\increment\loadedlanguage
- % \stopencoding
- \else % optimization, introduced 2004.08.24, while sorting out changes in tl
- \letgvalue{\??la\??la:\currentencoding:\currentmapping:#2}\alreadyloadedlanguage
- \doifundefined{\??la\??la:\s!default:\s!default:#2}{\letgvalue{\??la\??la:\s!default:\s!default:#2}\loadedlanguage}% fall back
- \setxvalue{\??la#1\s!patterns}{#2}%
- \xdef\preloadedpmessage{\preloadedpmessage\doshowpatterns{#2}{[\number\alreadyloadedlanguage]}{\currentencoding}{\currentmapping}}%
- \doglobal\addtocommalist{#2}\preloadedpatterns
- \showmessage\m!linguals1{#2,#1,[\alreadyloadedlanguage],\currentencoding,\currentmapping}%
- \fi
- \fi
- \egroup}
-
-\fetchruntimecommand \showpatterns {\f!languageprefix\s!run}
-
-%D Since we can only load patterns in ini\TeX, we nil the
-%D loading before dumping (which saves a bit of memory, but
-%D strangely enough not in the format).
-
-\appendtoks
- \gdef\doloadpatterns{\doglobal\increment\loadedlanguage\gobbletwoarguments}%
- \globallet\dodoloadpatterns\gobblefourarguments
-\to \everydump
-
-%D \macros
-%D {setuplanguage}
-%D
-%D Quick and dirty, but useful:
-%D
-%D \showsetup{setuplanguage}
-%D
-%D Beware, this command can only be used when a language is installed.
-
-\unprotected \def\setuplanguage
- {\dodoubleempty\dosetuplanguage}
-
-\def\dosetuplanguage[#1][#2]% handy patch for testing
- {\ifsecondargument
- \getparameters[\??la#1][#2]%
- \doif{#1}\currentlanguage\docomplexlanguage
- \else
- \getparameters[\??la\currentlanguage][#1]%
- \docomplexlanguage
- \fi}
-
-\setuplanguage
- [\s!default]
- [\s!lefthyphenmin=2,
- \s!righthyphenmin=2,
- \s!patterns=,
- \c!spacing=\v!packed,
- \s!encoding=,
- \s!mapping=,
- \c!lefthyphen=,
- \c!righthyphen=-,
- \c!hyphen=-,
- \c!midsentence=---,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\upperleftsinglesixquote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\upperleftdoublesixquote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!leftspeech=\languageparameter\c!leftquotation,
- \c!middlespeech=,
- \c!rightspeech=\languageparameter\c!rightquotation,
- \c!limittext=\unknown,
- \c!date={\v!year,\ ,\v!month,\ ,\v!day},
- \c!text=Ag]
-
-% rather new, split and per language
-
-\setuplanguage
- [\s!default]
- [\c!compoundhyphen=\compoundhyphen,
- \c!leftcompoundhyphen=\compoundhyphen,
- \c!rightcompoundhyphen=]
-
-%D The values \type {leftsentence} and \type
-%D {rightsentence} can be (and are) used to implement
-%D automatic subsentence boundary glyphs, like in {\fr
-%D |<|french guillemots|>|} or {\de |<|german guillemots|>|} or
-%D {\nl |<|dutch dashes|>|} like situations. Furthermore \type
-%D {leftquotation} and \type {leftquote} come into view
-%D \quotation {when we quote} or \quote {quote} something.
-
-%D \macros
-%D {currentdatespecification}
-%D
-%D Just to make things easy we can ask for the current date
-%D specification by saying:
-
-\def\currentdatespecification{\languageparameter\c!date}
-
-%D This command is not meant for users.
-
-%D Carefull reading of these macros shows that it's legal to
-%D say
-%D
-%D \starttyping
-%D \installlanguage [du] [de]
-%D \stoptyping
-
-%D \macros
-%D {language,mainlanguage}
-%D
-%D Switching to another language (actually another hyphenation
-%D pattern) is done with:
-%D
-%D \starttyping
-%D \language[identifier]
-%D \stoptyping
-%D
-%D or with \type{\identifier}. Just to be compatible with
-%D \PLAIN\ \TEX, we still support the original meaning, so
-%D
-%D \starttyping
-%D \language=1
-%D \stoptyping
-%D
-%D is a valid operation, where the relation between number
-%D and language depends on the order in installing languages.
-%D
-%D \showsetup{language}
-%D \showsetup{mainlanguage}
-%D
-%D Both commands take a predefined language identifier as
-%D argument. We can use \type{\mainlanguage[identifier]} for
-%D setting the (indeed) main language. This is the language
-%D used for translating labels like {\em figure} and {\em
-%D table}. The main language defaults to the current language.
-%D
-%D We take care of local as well as standardized language
-%D switching (fr and fa, de and du, but nl and nl).
-
-\ifx\synchronizepatterns \undefined \let\synchronizepatterns\relax \fi
-\ifx\synchronizepatternswithfont\undefined \def\synchronizepatternswithfont{\synchronizepatterns} \fi
-
-\def\setnormallanguage#1#2% current default
- {% called quite often, so we use \csname
- % \def\synchronizepatterns{\setnormallanguage
- % {\csname\??la\currentlanguage\s!patterns\endcsname}}% called often
- % of even better pre-expand in an ugly way:
- \ifnum\normallanguage<\zerocount
- % we've blocked hyphenation (e.g. verbatim)
- \else
- \edef\synchronizepatterns{\noexpand\dosetnormallanguage{\languageparameter\s!patterns}}%
- \donefalse
- \synchronizepatterns
- \ifdone\else
- \def\synchronizepatterns{\dosetnormallanguage\currentlanguage}%
- \synchronizepatterns
- \ifdone\else
- \ifx\currentdefaultlanguage\empty\else
- \edef\synchronizepatterns{\noexpand\dosetnormallanguage{\specificlanguageparameter\currentdefaultlanguage\s!patterns}}%
- \synchronizepatterns
- \ifdone\else
- \dosetnormallanguage\currentdefaultlanguage
- \synchronizepatterns
- \fi
- \fi
- \fi
- \fi
- \fi}
-
-\normallanguage\zerocount
-
-\def\dosetnormallanguage#1% #1 == \cs (no longer)
- {\ifnum\normallanguage<\zerocount
- % we've blocked hyphenation (e.g. verbatim)
- \else
- \dodosetnormallanguage{:\currentencoding:\currentmapping:}{#1}{%
- \dodosetnormallanguage{:\currentencoding:\s!default :}{#1}{%
- \dodosetnormallanguage{:\s!default :\currentmapping:}{#1}{%
- \dodosetnormallanguage{:\s!default :\s!default :}{#1}\empty}}}%
- \fi}
-
-\def\dodosetnormallanguage#1#2%
- {\ifcsname\??la\??la#1#2\endcsname
- \edef\thenormallanguage{\csname\??la\??la#1#2\endcsname}% can be \chardef
- \ifx\thenormallanguage\empty
- \@EAEAEA\firstofoneargument
- \else
- \donetrue
- \@EA\xdef\csname\??la\currentlanguage\s!patterns\endcsname{#2}%
- \normallanguage\thenormallanguage\relax % \relax is needed for lookahead problems
- \@EAEAEA\gobbleoneargument
- \fi
- \else
- \@EA\firstofoneargument
- \fi}
-
-\newevery \everylanguage \relax
-
-\def\disablelanguagespecifics
- {\ignorecompoundcharacter}
-
-\def\sethyphenationvariables
- {\lefthyphenmin 0\languageparameter\s!lefthyphenmin \relax
- \righthyphenmin0\languageparameter\s!righthyphenmin\relax
- \lefthyphenmin \numexpr\lefthyphenmin +\hyphenminoffset\relax
- \righthyphenmin\numexpr\righthyphenmin+\hyphenminoffset\relax}
-
-\def\docomplexlanguage% assumes that \currentlanguage is set
- {\edef\currentdefaultlanguage{\defaultlanguage\currentlanguage}%
- \setnormallanguage\currentlanguage\currentdefaultlanguage
- \the\everylanguage
- \enablelanguagespecifics[\currentlanguage]%
- \sethyphenationvariables
- \relax
- % will be definable and move to core-spa !
- \doifelse{\languageparameter\c!spacing}\v!broad\nonfrenchspacing\frenchspacing}
-
-\ifx\enablelanguagespecifics\undefined \def\enablelanguagespecifics[#1]{} \fi
-
-% The following may be a solution for the fact that one cannot
-% change catcodes of characters like : and ; inside an environment.
-
-\appendtoks
- \enablelanguagespecifics[\currentlanguage]%
-\to \everystarttext
-
-\def\complexlanguage[#1]%
- {\edef\askedlanguage{#1}%
- \ifx\askedlanguage\empty \else
- \ifcsname\l!prefix!\askedlanguage\endcsname
- \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}%
- \ifx\currentlanguage\askedlanguage \else
- \setcurrentlanguage\currentmainlanguage\askedlanguage
- \docomplexlanguage
- \fi
- \else
- \showmessage\m!linguals6{#1}%
- \fi
- \fi}
-
-\let\simplelanguage\normallanguage
-
-\definecomplexorsimple\language
-
-\def\mainlanguage[#1]%
- {\edef\askedlanguage{#1}%
- \ifx\askedlanguage\empty \else
- \ifcsname\l!prefix!\askedlanguage\endcsname
- \edef\askedlanguage{\csname\l!prefix!\askedlanguage\endcsname}%
- \ifx\currentlanguage\askedlanguage
- \ifx\currentmainlanguage\askedlanguage
- \else
- \setcurrentlanguage\askedlanguage\askedlanguage
- \docomplexlanguage
- \fi
- \else
- \setcurrentlanguage\askedlanguage\askedlanguage
- \docomplexlanguage
- \fi
- \fi
- \fi}
-
-%D \macros
-%D {defaultlanguage,languageparameter,specificlanguageparameter}
-
-\def\defaultlanguage#1%
- {\ifcsname\??la#1\s!default\endcsname
- \expandafter\defaultlanguage\csname\??la#1\s!default\endcsname
- \else
- #1%
- \fi}
-
-\def\languageparameter#1%
- {\ifcsname\??la\currentlanguage#1\endcsname
- \csname\??la\currentlanguage#1\endcsname
- \else\ifcsname\??la\currentlanguage\s!default\endcsname
- \expandafter\specificlanguageparameter\csname\??la\currentlanguage\s!default\endcsname{#1}%
- \else\ifcsname\??la\s!default#1\endcsname
- \csname\??la\s!default#1\endcsname
- \fi\fi\fi}
-
-\def\specificlanguageparameter#1#2%
- {\ifcsname\??la#1#2\endcsname
- \csname\??la#1#2\endcsname
- \else\ifcsname\??la#1\s!default\endcsname
- \expandafter\specificlanguageparameter\csname\??la#1\s!default\endcsname{#2}%
- \else\ifcsname\??la\s!default#2\endcsname
- \csname\??la\s!default#2\endcsname
- \fi\fi\fi}
-
-%D New (see nomarking and nolist):
-
-\def\splitsequence#1#2%
- {\doifelse{#1}\v!no{#2}{\doifelse{#1}\v!yes{\languageparameter\c!limittext}{#1}}}
-
-\def\splitsymbol#1%
- {\splitsequence{#1}{\languageparameter\c!limittext}}
-
-%D Just like with subsentence boundary symbols, quotes
-%D placement depends on the current language, therefore we show
-%D the defaults here.
-%D
-%D \def\ShowLanguageValues [#1] [#2] #3 #4
-%D {\blank
-%D \startlinecorrection
-%D \vbox\bgroup
-%D \language[#1]%
-%D \setbox0=\hbox to \hsize{\hss\bf#2 subsentence symbol and quotes\hss}
-%D \dp0=0pt
-%D \box0
-%D \vskip.5em
-%D \hrule
-%D \vskip.5em
-%D \let\normalbar=|
-%D \hbox to \hsize
-%D {\hfil\quotation{#3 #4}\hfil\quote{#2}\hfil
-%D \let|=\normalbar\strut|<||<|#3|>|#4|>|\hfil}
-%D \vskip.5em
-%D \hrule
-%D \egroup
-%D \stoplinecorrection
-%D \blank}
-%D
-%D \ShowLanguageValues [af] [afrikaans] afrikaanse ...
-%D \ShowLanguageValues [ca] [catalan] catalan ...
-%D \ShowLanguageValues [cs] [czech] tjechisch tex
-%D \ShowLanguageValues [cs] [slovak] slowaakse ...
-%D \ShowLanguageValues [da] [danish] deense ...
-%D \ShowLanguageValues [de] [german] duitse degelijkheid
-%D \ShowLanguageValues [en] [english] engelse humor
-%D \ShowLanguageValues [fi] [finnish] finse ...
-%D \ShowLanguageValues [fr] [french] franse slag
-%D \ShowLanguageValues [it] [italian] italiaanse ...
-%D \ShowLanguageValues [la] [latin] latijnse missen
-%D \ShowLanguageValues [nl] [dutch] nederlandse zuinigheid
-%D \ShowLanguageValues [nb] [bokmal] noorse zalm
-%D \ShowLanguageValues [nn] [nnynorsk] noorse zalm
-%D \ShowLanguageValues [pl] [polish] poolse vlag
-%D \ShowLanguageValues [pt] [portuguese] portugese ...
-%D \ShowLanguageValues [es] [spanish] spaans benauwd
-%D \ShowLanguageValues [sv] [swedish] zweedse ...
-%D \ShowLanguageValues [tr] [turkish] turks fruit
-
-%D We support a lot of languages. These are specified and
-%D loaded in separate files, according to their roots. Here
-%D we only take care of (postponed) setting of the current
-%D language.
-%D
-%D \unprotect
-%D \placetable{The germanic languages (\type{lang-ger})}
-%D \starttable[||||]
-%D \HL
-%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
-%D \HL
-%D \NC \s!nl \NC dutch \NC germanic \NC\FR
-%D \NC \s!en \NC english \NC germanic \NC\MR
-%D \NC \s!de \NC german \NC germanic \NC\MR
-%D \NC \s!da \NC danish \NC germanic \NC\MR
-%D \NC \s!sv \NC swedish \NC germanic \NC\MR
-%D \NC \s!af \NC afrikaans \NC germanic \NC\MR
-%D \NC \s!nb \NC bokmal \NC germanic \NC\LR
-%D \NC \s!nn \NC nynorsk \NC germanic \NC\LR
-%D \HL
-%D \stoptable
-%D \protect
-%D
-%D \unprotect
-%D \placetable{The italic languages (\type{lang-ita})}
-%D \starttable[||||]
-%D \HL
-%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
-%D \HL
-%D \NC \s!fr \NC french \NC italic \NC\FR
-%D \NC \s!ca \NC catalan \NC italic \NC\MR
-%D \NC \s!es \NC spanish \NC italic \NC\MR
-%D \NC \s!it \NC italian \NC italic \NC\MR
-%D \NC \s!la \NC latin \NC italic \NC\MR
-%D \NC \s!pt \NC portuguese \NC italic \NC\LR
-%D \HL
-%D \stoptable
-%D \protect
-%D
-%D \unprotect
-%D \placetable{The slavic languages (\type{lang-sla})}
-%D \starttable[||||]
-%D \HL
-%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
-%D \HL
-%D \NC \s!pl \NC polish \NC slavic \NC\FR
-%D \NC \s!cs \NC czech \NC slavic \NC\MR
-%D \NC \s!sk \NC slavik \NC slavic \NC\LR
-%D \HL
-%D \stoptable
-%D \protect
-%D \unprotect
-%D
-%D \placetable{The altaic languages (\type{lang-alt})}
-%D \starttable[||||]
-%D \HL
-%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
-%D \HL
-%D \NC \s!tr \NC turkish \NC altaic \NC\SR
-%D \HL
-%D \stoptable
-%D
-%D \placetable{The uralic languages (\type{lang-ura})}
-%D \starttable[||||]
-%D \HL
-%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR
-%D \HL
-%D \NC \s!fi \NC finnish \NC uralic \NC\SR
-%D \HL
-%D \stoptable
-%D \protect
-
-% \bgroup \normallanguage255 \patterns{} \egroup
-% \def\nopatterns{\normallanguage255 }
-
-\def\nopatterns{\normallanguage\minusone}
-
-%D \XETEX\ (and also \LUATEX) are \UNICODE:
-
-\ifnum\texengine>\pdftexengine
-
- \def\synchronizepatternswithfont{}
- \def\doloadpatterns #1#2{\dodoloadpatterns{#1}{#2}\s!default\s!default}
- \def\dosetnormallanguage #1{\dodosetnormallanguage{:\s!default:\s!default:}{#1}\empty}
- \def\setuphyppatencoding {\pathypsettings}
-
-\fi
-
-%D We default to the language belonging to the interface. This
-%D is one of the few places outside the interface modules where
-%D \type{\startinterface} is used.
-
-%D We default to english:
-
-\setupcurrentlanguage[\s!en]
-
-\def\initializemainlanguage
- {\mainlanguage[\currentlanguage]%
- \showmessage\m!linguals9\currentlanguage}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-ita.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-ita.mkii
deleted file mode 100644
index 04acf3265c2..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-ita.mkii
+++ /dev/null
@@ -1,518 +0,0 @@
-%D \module
-%D [ file=lang-ita,
-%D version=1997.09.03,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Italic Languages,
-%D author=Hans Hagen / Tobias Burnus,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% Todo: replace \'.. by \namedglyph
-
-\writestatus{loading}{ConTeXt Language Macros / Italic Languages}
-
-%D The framework of this module is set up by Hans Hagen while
-%D many of the first translations were done by Tobias. Later
-%D on, corrections were made by users. If you have suggestions,
-%D or feel that your name missing here, don't hesitate to send
-%D us an email.
-%D
-%D \starttabulate[|lB|l|]
-%D \NC Italian \NC Giuseppe Bilotta \NC \NR
-%D \NC Romanian \NC Dan Seracu \NC \NR
-%D \NC Portuguese \NC Pedro F. M. Mendon\c a \NC \NR
-%D \stoptabulate
-
-% Latin, Italian, Rhaeto-Romanic, Rumanian, Sardian
-% Catalan, French, Ladino, Portuguese, Proven\c{c}al, Spanish
-
-\unprotect
-
-\ifx\guillemotspace\undefined \let\guillemotspace\empty \fi
-\ifx\sentencespace \undefined \let\sentencespace \empty \fi
-
-\installlanguage
- [\s!fr]
- [\c!spacing=\v!packed,
- \c!leftsentence=\emdash,
- \c!rightsentence=\emdash,
- \c!leftsubsentence=\emdash,
- \c!rightsubsentence=\emdash,
- \c!leftquote=\leftguillemot,
- \c!rightquote=\rightguillemot,
- \c!leftquotation=\leftguillemot,
- \c!rightquotation=\rightguillemot,
- \c!date={\v!day+,\v!space,\v!month,\v!space,\v!year},
- \s!mapping={texnansi,ec},
- \s!encoding={texnansi,ec}]
-
-\installlanguage
- [\s!es]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\upperleftsinglesixquote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\upperleftdoublesixquote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!day,\ ,\v!month,\ ,\v!year}]
-
-\installlanguage [sp] [\s!es] % old times context
-
-\installlanguage
- [\s!ca]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\upperleftsinglesixquote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\upperleftdoublesixquote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!day,\ ,\v!month,\ ,\v!year}]
-
-% Note GB left|/|right (sub)sentences are for \quote {incisi}.
-
-\installlanguage
- [\s!it]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=--,
- \c!rightsubsentence=--,
- \c!leftquote=\upperleftsinglesixquote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\upperleftdoublesixquote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!leftspeech=\leftguillemot,
- \c!middlespeech=\leftguillemot,
- \c!rightspeech=\rightguillemot,
- \c!date={\v!day,\ ,\v!month,\ ,\v!year},
- \s!mapping={texnansi,ec},
- \s!encoding={texnansi,ec}]
-
-\installlanguage % the same as italian
- [\s!la]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\upperleftsinglesixquote,
- \c!rightquote=\lowerrightsingleninequote,
- \c!leftquotation=\upperleftdoublesixquote,
- \c!rightquotation=\lowerrightdoubleninequote,
- \c!date={\v!day,\ ,\v!month,\ ,\v!year}]
-
-\installlanguage
- [\s!pt]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\upperleftsinglesixquote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\upperleftdoublesixquote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!year,\ ,\v!month,\ ,\v!day},
- \s!mapping={texnansi,ec},
- \s!encoding={texnansi,ec}]
-
-\installlanguage
- [\s!ro]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\leftguillemot,
- \c!rightquote=\rightguillemot,
- \c!leftquotation=\lowerrightdoubleninequote,
- \c!rightquotation=\upperleftdoublesixquote,
- \c!date={\v!day,\ ,\v!month,\ ,\v!year}]
-
-%D For compatibility reasons we also define:
-
-\installlanguage [fa] [\s!fr] % for dutchies only
-
-\installlanguage [french] [\s!fr]
-\installlanguage [spanish] [\s!es]
-\installlanguage [catalan] [\s!ca]
-\installlanguage [italian] [\s!it]
-\installlanguage [latin] [\s!la]
-\installlanguage [portuguese] [\s!pt]
-\installlanguage [romanian] [\s!ro]
-
-%D Labels and header texts.
-
-\setupheadtext [\s!fr] [\v!content=Table des mati\`eres]
-\setupheadtext [\s!es] [\v!content=\'Indice]
-\setupheadtext [\s!ca] [\v!content=\'Index de continguts]
-\setupheadtext [\s!it] [\v!content=Indice]
-\setupheadtext [\s!la] [\v!content=Quod in libro continetur] %Argumentum
-\setupheadtext [\s!pt] [\v!content=Conte\'udo]
-\setupheadtext [\s!ro] [\v!content=Cuprins]
-
-\setupheadtext [\s!fr] [\v!tables=Tableaux]
-\setupheadtext [\s!es] [\v!tables=Tablas]
-\setupheadtext [\s!ca] [\v!tables=Taules]
-\setupheadtext [\s!it] [\v!tables=Tabelle]
-\setupheadtext [\s!la] [\v!tables=Tabulae]
-\setupheadtext [\s!pt] [\v!tables=Tabelas]
-\setupheadtext [\s!ro] [\v!tables=Tabele]
-
-\setupheadtext [\s!fr] [\v!figures=Figures]
-\setupheadtext [\s!es] [\v!figures=Ilustraciones]
-\setupheadtext [\s!ca] [\v!figures=Figures]
-\setupheadtext [\s!it] [\v!figures=Figure]
-\setupheadtext [\s!la] [\v!figures=Imagines]
-\setupheadtext [\s!pt] [\v!figures=Figuras]
-\setupheadtext [\s!ro] [\v!figures=Figuri]
-
-\setupheadtext [\s!fr] [\v!graphics=Graphiques]
-\setupheadtext [\s!es] [\v!graphics=Gr\'aficos]
-\setupheadtext [\s!it] [\v!graphics=Grafici]
-\setupheadtext [\s!ca] [\v!graphics=Gr\`afiques]
-\setupheadtext [\s!la] [\v!graphics=Typi]
-\setupheadtext [\s!pt] [\v!graphics=Gr\'aficos]
-\setupheadtext [\s!ro] [\v!graphics=Grafice]
-
-\setupheadtext [\s!fr] [\v!intermezzi=Interm\`edes]
-\setupheadtext [\s!es] [\v!intermezzi=Intermedios]
-\setupheadtext [\s!ca] [\v!intermezzi=Intermedis]
-\setupheadtext [\s!it] [\v!intermezzi=Intermezzi]
-\setupheadtext [\s!la] [\v!intermezzi=Intermissa]
-\setupheadtext [\s!pt] [\v!intermezzi=Interm\'edios]
-\setupheadtext [\s!ro] [\v!intermezzi=Intermzzo]
-
-\setupheadtext [\s!fr] [\v!index=Index]
-\setupheadtext [\s!es] [\v!index=\'Indice alfab\'etico]
-\setupheadtext [\s!ca] [\v!index=\'Index alfab\`etic]
-\setupheadtext [\s!it] [\v!index=Indice]
-\setupheadtext [\s!la] [\v!index=Indices]
-\setupheadtext [\s!pt] [\v!index=\'Indice]
-\setupheadtext [\s!ro] [\v!index=Index]
-
-\setupheadtext [\s!fr] [\v!abbreviations=Abr\'eviations]
-\setupheadtext [\s!es] [\v!abbreviations=Abreviaturas]
-\setupheadtext [\s!ca] [\v!abbreviations=Abreviacions]
-\setupheadtext [\s!it] [\v!abbreviations=Abbreviazioni]
-\setupheadtext [\s!la] [\v!abbreviations=Notae]
-\setupheadtext [\s!pt] [\v!abbreviations=Abreviaturas]
-\setupheadtext [\s!ro] [\v!abbreviations=Abrevieri]
-
-\setupheadtext [\s!fr] [\v!logos=Logos]
-\setupheadtext [\s!es] [\v!logos=Logotipos]
-\setupheadtext [\s!ca] [\v!logos=Logotips]
-\setupheadtext [\s!it] [\v!logos=Logotipi]
-\setupheadtext [\s!la] [\v!logos=Typi negotiales]
-\setupheadtext [\s!pt] [\v!logos=Logotipos]
-\setupheadtext [\s!ro] [\v!logos=Logo-uri]
-
-\setupheadtext [\s!fr] [\v!units=Unit\'es]
-\setupheadtext [\s!es] [\v!units=Unidades]
-\setupheadtext [\s!ca] [\v!units=Unitats]
-\setupheadtext [\s!it] [\v!units=Unit\`a]
-\setupheadtext [\s!la] [\v!units=Modi]
-\setupheadtext [\s!pt] [\v!units=Unidades]
-\setupheadtext [\s!ro] [\v!units=Unit\u{a}\c{t}i]
-
-\setupheadtext [\s!fr] [pubs=Bibliographie]
-\setupheadtext [\s!es] [pubs=Bibliograf\'\ia]
-\setupheadtext [\s!ca] [pubs=Referències]
-\setupheadtext [\s!it] [pubs=Bibliografia]
-%setupheadtext [\s!la] [pubs=?]
-%setupheadtext [\s!pt] [pubs=?]
-%setupheadtext [\s!ro] [pubs=?]
-
-\setuplabeltext [\s!fr] [\v!table=Tableau ]
-\setuplabeltext [\s!es] [\v!table=Tabla ]
-\setuplabeltext [\s!ca] [\v!table=Taula ]
-\setuplabeltext [\s!it] [\v!table=Tabella ]
-\setuplabeltext [\s!la] [\v!table=Tabula ]
-\setuplabeltext [\s!pt] [\v!table=Tabela ]
-\setuplabeltext [\s!ro] [\v!table=Tabelul ]
-
-\setuplabeltext [\s!fr] [\v!figure=Figure ]
-\setuplabeltext [\s!es] [\v!figure=Ilustraci\'on ]
-\setuplabeltext [\s!ca] [\v!figure=Figura ]
-\setuplabeltext [\s!it] [\v!figure=Fig. ]
-\setuplabeltext [\s!la] [\v!figure=Imago ]
-\setuplabeltext [\s!pt] [\v!figure=Figura ]
-\setuplabeltext [\s!ro] [\v!figure=Figura ]
-
-\setuplabeltext [\s!fr] [\v!intermezzo=Interm\`ede ]
-\setuplabeltext [\s!es] [\v!intermezzo=Intermedio ]
-\setuplabeltext [\s!ca] [\v!intermezzo=Intermedi ]
-\setuplabeltext [\s!it] [\v!intermezzo=Intermezzo ]
-\setuplabeltext [\s!la] [\v!intermezzo=Intermissum ]
-\setuplabeltext [\s!pt] [\v!intermezzo=Interm\'edio ]
-\setuplabeltext [\s!ro] [\v!intermezzo=Intermezzo ]
-
-\setuplabeltext [\s!fr] [\v!graphic=Illustration ]
-\setuplabeltext [\s!es] [\v!graphic=Gr\'afico ]
-\setuplabeltext [\s!ca] [\v!graphic=Gr\`afica ]
-\setuplabeltext [\s!it] [\v!graphic=Grafico ]
-\setuplabeltext [\s!la] [\v!graphic=Typus ]
-\setuplabeltext [\s!pt] [\v!graphic=Gr\'afico ]
-\setuplabeltext [\s!ro] [\v!graphic=Graficul ]
-
-\setuplabeltext [\s!fr] [\v!chapter=] % Chapitre
-\setuplabeltext [\s!es] [\v!chapter=] % Cap\'\i tulo
-\setuplabeltext [\s!ca] [\v!chapter=] % Cap\'\i tol
-\setuplabeltext [\s!it] [\v!chapter=]
-\setuplabeltext [\s!la] [\v!chapter=]
-\setuplabeltext [\s!pt] [\v!chapter=]
-\setuplabeltext [\s!ro] [\v!chapter=]
-
-\setuplabeltext [\s!fr] [\v!section=] % Section
-\setuplabeltext [\s!es] [\v!section=] % Secci\'on
-\setuplabeltext [\s!ca] [\v!section=] % Secci\'o
-\setuplabeltext [\s!it] [\v!section=]
-\setuplabeltext [\s!la] [\v!section=]
-\setuplabeltext [\s!pt] [\v!section=]
-\setuplabeltext [\s!ro] [\v!section=]
-
-\setuplabeltext [\s!fr] [\v!subsection=] % Soussection
-\setuplabeltext [\s!es] [\v!subsection=] % Subsecci\'on
-\setuplabeltext [\s!ca] [\v!subsection=] % Subsecci\'o
-\setuplabeltext [\s!it] [\v!subsection=]
-\setuplabeltext [\s!la] [\v!subsection=]
-\setuplabeltext [\s!pt] [\v!subsection=]
-\setuplabeltext [\s!ro] [\v!subsection=]
-
-\setuplabeltext [\s!fr] [\v!subsubsection=] % Soussoussection
-\setuplabeltext [\s!es] [\v!subsubsection=] % Subsubsecci\'on
-\setuplabeltext [\s!ca] [\v!subsubsection=] % Subsubsecci\'o
-\setuplabeltext [\s!it] [\v!subsubsection=]
-\setuplabeltext [\s!la] [\v!subsubsection=]
-\setuplabeltext [\s!pt] [\v!subsubsection=]
-\setuplabeltext [\s!ro] [\v!subsubsection=]
-
-\setuplabeltext [\s!fr] [\v!subsubsubsection=] % Soussoussoussection
-\setuplabeltext [\s!es] [\v!subsubsubsection=] % Subsubsubsecci\'on
-\setuplabeltext [\s!ca] [\v!subsubsubsection=] % Subsubsubsecci\'o
-\setuplabeltext [\s!it] [\v!subsubsubsection=]
-\setuplabeltext [\s!la] [\v!subsubsubsection=]
-\setuplabeltext [\s!pt] [\v!subsubsubsection=]
-\setuplabeltext [\s!ro] [\v!subsubsubsection=]
-
-\setuplabeltext [\s!fr] [\v!appendix=] % Annexe
-\setuplabeltext [\s!es] [\v!appendix=] % Ap\'endice
-\setuplabeltext [\s!ca] [\v!appendix=] % Ap\`endix
-\setuplabeltext [\s!it] [\v!appendix=]
-\setuplabeltext [\s!la] [\v!appendix=]
-\setuplabeltext [\s!pt] [\v!appendix=]
-\setuplabeltext [\s!ro] [\v!appendix=]
-
-\setuplabeltext [\s!fr] [\v!part=Partie ]
-\setuplabeltext [\s!es] [\v!part=Parte ]
-\setuplabeltext [\s!ca] [\v!part=Part ]
-\setuplabeltext [\s!it] [\v!part=Parte ]
-\setuplabeltext [\s!la] [\v!part=Pars ]
-\setuplabeltext [\s!pt] [\v!part=Parte ]
-\setuplabeltext [\s!ro] [\v!part=Partea ]
-
-\setuplabeltext [\s!fr] [\v!line=ligne ]
-\setuplabeltext [\s!es] [\v!line=l\'\i nea ]
-\setuplabeltext [\s!ca] [\v!line=l\'\i nia ]
-\setuplabeltext [\s!it] [\v!line=riga ]
-\setuplabeltext [\s!la] [\v!line=versus ]
-\setuplabeltext [\s!pt] [\v!line=linha ]
-\setuplabeltext [\s!ro] [\v!line=linia ]
-
-\setuplabeltext [\s!fr] [\v!lines=lignes ]
-\setuplabeltext [\s!es] [\v!lines=l\'\i neas ]
-\setuplabeltext [\s!ca] [\v!lines=l\'\i nies ]
-\setuplabeltext [\s!it] [\v!lines=righe ]
-\setuplabeltext [\s!la] [\v!lines=versus ]
-\setuplabeltext [\s!pt] [\v!lines=linhas ]
-\setuplabeltext [\s!ro] [\v!lines=liniile ]
-
-\setuplabeltext [\s!fr] [\v!january=janvier]
-\setuplabeltext [\s!fr] [\v!february=f\'evrier]
-\setuplabeltext [\s!fr] [\v!march=mars]
-\setuplabeltext [\s!fr] [\v!april=avril]
-\setuplabeltext [\s!fr] [\v!may=mai]
-\setuplabeltext [\s!fr] [\v!june=juin]
-\setuplabeltext [\s!fr] [\v!july=juillet]
-\setuplabeltext [\s!fr] [\v!august=ao\^ut]
-\setuplabeltext [\s!fr] [\v!september=septembre]
-\setuplabeltext [\s!fr] [\v!october=octobre]
-\setuplabeltext [\s!fr] [\v!november=novembre]
-\setuplabeltext [\s!fr] [\v!december=d\'ecembre]
-
-\setuplabeltext [\s!es] [\v!january=enero]
-\setuplabeltext [\s!es] [\v!february=febrero]
-\setuplabeltext [\s!es] [\v!march=marzo]
-\setuplabeltext [\s!es] [\v!april=abril]
-\setuplabeltext [\s!es] [\v!may=mayo]
-\setuplabeltext [\s!es] [\v!june=junio]
-\setuplabeltext [\s!es] [\v!july=julio]
-\setuplabeltext [\s!es] [\v!august=agosto]
-\setuplabeltext [\s!es] [\v!september=septiembre]
-\setuplabeltext [\s!es] [\v!october=octubre]
-\setuplabeltext [\s!es] [\v!november=noviembre]
-\setuplabeltext [\s!es] [\v!december=diciembre]
-
-\setuplabeltext [\s!ca] [\v!january=gener]
-\setuplabeltext [\s!ca] [\v!february=febrer]
-\setuplabeltext [\s!ca] [\v!march=mar\c{c}]
-\setuplabeltext [\s!ca] [\v!april=abril]
-\setuplabeltext [\s!ca] [\v!may=maig]
-\setuplabeltext [\s!ca] [\v!june=juny]
-\setuplabeltext [\s!ca] [\v!july=juliol]
-\setuplabeltext [\s!ca] [\v!august=agost]
-\setuplabeltext [\s!ca] [\v!september=setembre]
-\setuplabeltext [\s!ca] [\v!october=octubre]
-\setuplabeltext [\s!ca] [\v!november=novembre]
-\setuplabeltext [\s!ca] [\v!december=desembre]
-
-\setuplabeltext [\s!it] [\v!january=gennaio]
-\setuplabeltext [\s!it] [\v!february=febbraio]
-\setuplabeltext [\s!it] [\v!march=marzo]
-\setuplabeltext [\s!it] [\v!april=aprile]
-\setuplabeltext [\s!it] [\v!may=maggio]
-\setuplabeltext [\s!it] [\v!june=giugno]
-\setuplabeltext [\s!it] [\v!july=luglio]
-\setuplabeltext [\s!it] [\v!august=agosto]
-\setuplabeltext [\s!it] [\v!september=settembre]
-\setuplabeltext [\s!it] [\v!october=ottobre]
-\setuplabeltext [\s!it] [\v!november=novembre]
-\setuplabeltext [\s!it] [\v!december=dicembre]
-
-\setuplabeltext [\s!la] [\v!january=Ianuarius]
-\setuplabeltext [\s!la] [\v!february=Februarius]
-\setuplabeltext [\s!la] [\v!march=Martius]
-\setuplabeltext [\s!la] [\v!april=Aprilis]
-\setuplabeltext [\s!la] [\v!may=Maius]
-\setuplabeltext [\s!la] [\v!june=Iunius]
-\setuplabeltext [\s!la] [\v!july=Iulius] % formerly Quintilis
-\setuplabeltext [\s!la] [\v!august=Augustus] % formerly Sextilis
-\setuplabeltext [\s!la] [\v!september=September]
-\setuplabeltext [\s!la] [\v!october=October]
-\setuplabeltext [\s!la] [\v!november=November]
-\setuplabeltext [\s!la] [\v!december=December]
-
-\setuplabeltext [\s!pt] [\v!january=janeiro]
-\setuplabeltext [\s!pt] [\v!february=fevereiro]
-\setuplabeltext [\s!pt] [\v!march=mar\c{c}o]
-\setuplabeltext [\s!pt] [\v!april=abril]
-\setuplabeltext [\s!pt] [\v!may=maio]
-\setuplabeltext [\s!pt] [\v!june=junho]
-\setuplabeltext [\s!pt] [\v!july=julho]
-\setuplabeltext [\s!pt] [\v!august=agosto]
-\setuplabeltext [\s!pt] [\v!september=setembro]
-\setuplabeltext [\s!pt] [\v!october=outubro]
-\setuplabeltext [\s!pt] [\v!november=novembro]
-\setuplabeltext [\s!pt] [\v!december=dezembro]
-
-\setuplabeltext [\s!ro] [\v!january=ianuarie]
-\setuplabeltext [\s!ro] [\v!february=februarie]
-\setuplabeltext [\s!ro] [\v!march=martie]
-\setuplabeltext [\s!ro] [\v!april=aprilie]
-\setuplabeltext [\s!ro] [\v!may=mai]
-\setuplabeltext [\s!ro] [\v!june=iunie]
-\setuplabeltext [\s!ro] [\v!july=iulie]
-\setuplabeltext [\s!ro] [\v!august=august]
-\setuplabeltext [\s!ro] [\v!september=septembrie]
-\setuplabeltext [\s!ro] [\v!october=octombrie]
-\setuplabeltext [\s!ro] [\v!november=noiembrie]
-\setuplabeltext [\s!ro] [\v!december=decembrie]
-
-\setuplabeltext [\s!fr] [\v!sunday=dimanche]
-\setuplabeltext [\s!fr] [\v!monday=lundi]
-\setuplabeltext [\s!fr] [\v!tuesday=mardi]
-\setuplabeltext [\s!fr] [\v!wednesday=mercredi]
-\setuplabeltext [\s!fr] [\v!thursday=jeudi]
-\setuplabeltext [\s!fr] [\v!friday=vendredi]
-\setuplabeltext [\s!fr] [\v!saturday=samedi]
-
-\setuplabeltext [\s!es] [\v!sunday=domingo]
-\setuplabeltext [\s!es] [\v!monday=lunes]
-\setuplabeltext [\s!es] [\v!tuesday=martes]
-\setuplabeltext [\s!es] [\v!wednesday=mi\'ercoles]
-\setuplabeltext [\s!es] [\v!thursday=jueves]
-\setuplabeltext [\s!es] [\v!friday=viernes]
-\setuplabeltext [\s!es] [\v!saturday=s\'abado]
-
-\setuplabeltext [\s!ca] [\v!sunday=diumenge]
-\setuplabeltext [\s!ca] [\v!monday=dilluns]
-\setuplabeltext [\s!ca] [\v!tuesday=dimarts]
-\setuplabeltext [\s!ca] [\v!wednesday=dimecres]
-\setuplabeltext [\s!ca] [\v!thursday=dijous]
-\setuplabeltext [\s!ca] [\v!friday=divendres]
-\setuplabeltext [\s!ca] [\v!saturday=dissabte]
-
-\setuplabeltext [\s!it] [\v!sunday=domenica]
-\setuplabeltext [\s!it] [\v!monday=luned\`\i]
-\setuplabeltext [\s!it] [\v!tuesday=marted\`\i]
-\setuplabeltext [\s!it] [\v!wednesday=mercoled\`\i]
-\setuplabeltext [\s!it] [\v!thursday=gioved\`\i]
-\setuplabeltext [\s!it] [\v!friday=venerd\`\i]
-\setuplabeltext [\s!it] [\v!saturday=sabato]
-
-\setuplabeltext [\s!la] [\v!sunday=Dies Solis]
-\setuplabeltext [\s!la] [\v!monday=Dies Lunae]
-\setuplabeltext [\s!la] [\v!tuesday=Dies Martis]
-\setuplabeltext [\s!la] [\v!wednesday=Dies Mercuri]
-\setuplabeltext [\s!la] [\v!thursday=Dies Iovis]
-\setuplabeltext [\s!la] [\v!friday=Dies Veneris]
-\setuplabeltext [\s!la] [\v!saturday=Dies Saturni]
-
-\setuplabeltext [\s!pt] [\v!sunday=domingo]
-\setuplabeltext [\s!pt] [\v!monday=segunda-feira]
-\setuplabeltext [\s!pt] [\v!tuesday=ter\c{c}a-feira]
-\setuplabeltext [\s!pt] [\v!wednesday=quarta-feira]
-\setuplabeltext [\s!pt] [\v!thursday=quinta-feira]
-\setuplabeltext [\s!pt] [\v!friday=sexta-feira]
-\setuplabeltext [\s!pt] [\v!saturday=s\'abado]
-
-\setuplabeltext [\s!ro] [\v!sunday=duminic\u{a}]
-\setuplabeltext [\s!ro] [\v!monday=luni]
-\setuplabeltext [\s!ro] [\v!tuesday=mar\c{t}i]
-\setuplabeltext [\s!ro] [\v!wednesday=miercuri]
-\setuplabeltext [\s!ro] [\v!thursday=joi]
-\setuplabeltext [\s!ro] [\v!friday=vineri]
-\setuplabeltext [\s!ro] [\v!saturday=s\^{a}mb\u{a}t\u{a}]
-
-%D Rather new \unknown
-
-\setuplabeltext [\s!it] [\v!page=pagina ]
-\setuplabeltext [\s!it] [\v!atpage=a pagina ]
-\setuplabeltext [\s!it] [\v!hencefore=come mostrato sopra]
-\setuplabeltext [\s!it] [\v!hereafter=come mostrato sotto]
-\setuplabeltext [\s!it] [\v!see=cf. ]
-
-\setuplabeltext [\s!fr] [\v!page=page ]
-\setuplabeltext [\s!fr] [\v!atpage=à la page ]
-\setuplabeltext [\s!fr] [\v!hencefore=ci-dessus]
-\setuplabeltext [\s!fr] [\v!hereafter=ci-dessous]
-\setuplabeltext [\s!fr] [\v!see=cf. ]
-
-%D Ordinal converters:
-
-\def\frordinaldaynumber#1% date is masculine
- {\number#1\ifcase#1\or
- \highordinalstr{er}%
- \fi}
-
-\defineconversion [\s!fr] [\v!day+] [\frordinaldaynumber]
-
-%D \ShowAllLanguageValues [\s!fr] [french] {French} {kiss} % franse slag
-%D \ShowAllLanguageValues [\s!es] [spanish] {Spanish} {guitar} % spaans benauwd
-%D \ShowAllLanguageValues [\s!ca] [catalan] {Catalan} {cream}
-%D \ShowAllLanguageValues [\s!it] [italian] {Italian} {aria}
-%D \ShowAllLanguageValues [\s!la] [latin] {Latin} {lover} % latijnse missen
-%D \ShowAllLanguageValues [\s!pt] [portuguese] {Portuguese} {fisherman}
-%D \ShowAllLanguageValues [\s!ro] [romanian] {Romanian} {traveller}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-jap.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-jap.mkii
deleted file mode 100644
index 1417e8ec58c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-jap.mkii
+++ /dev/null
@@ -1,234 +0,0 @@
-%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={Richard Gabriel \& Hans Hagen}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% 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}]
-
-\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/mkii/lang-lab.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-lab.mkii
deleted file mode 100644
index 1ff964615e0..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-lab.mkii
+++ /dev/null
@@ -1,295 +0,0 @@
-%D \module
-%D [ file=lang-lab,
-%D version=1997.08.27,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Labels,
-%D author=Hans Hagen / Tobias Burnus,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-%D In this module we deal with language dependant labels and
-%D prefixes, like in {\em Figure~12} and {\em Chapter 1}. In
-%D this file we set the default values. Users can easily
-%D overrule these.
-%D
-%D This module is dedicated to the grandfather of Tobias
-%D Burnus, who's extensive languages oriented library helped us
-%D a lot in finding the right translations. All those labels
-%D are collected in files that reflect their common ancestor.
-%D
-%D Not all languages can be satisfied with the labeling
-%D mechanism as provided here. Chinese for instance put a label
-%D in front as well as after a part number. This is why the
-%D current implementation of labels supports two labels too.
-
-%D \macros
-%D {setupheadtext, setuplabeltext}
-%D
-%D First we present some macros that deal with what we will
-%D call head and label texts. Such texts are defines by:
-%D
-%D \showsetup{setupheadtext}
-%D \showsetup{setuplabeltext}
-%D
-%D In a few paragraphs we'll show quite a lot of examples
-%D of its use.
-
-\let\handletextprefix\relax
-
-\def\setupheadtext {\dosetupsometextprefix[\c!title]}
-\def\setuplabeltext{\dosetupsometextprefix[\c!label]}
-
-\def\dosetupsometextprefix
- {\let\dodocommand\xdosetupsometextprefix
- \dotripleempty\dodosetupsometextprefix}
-
-% \def\dodosetupsometextprefix[#1][#2][#3]%
-% {\ifthirdargument
-% \def\docommand##1{\dodocommand[#1#2][##1]}%
-% \processcommalist[#3]\docommand
-% \else
-% \def\docommand##1{\dodocommand[#1\currentmainlanguage][##1]}%
-% \processcommalist[#2]\docommand
-% \fi}
-
-\def\dodosetupsometextprefix[#1][#2][#3]%
- {\ifthirdargument
- \def\docommand##1{\expanded{\dodocommand[#1\reallanguagetag{#2}]}[##1]}%
- \processcommalist[#3]\docommand
- \else
- \def\docommand##1{\expanded{\dodocommand[#1\reallanguagetag\currentmainlanguage]}[##1]}%
- \processcommalist[#2]\docommand
- \fi}
-
-\def\doassignsometextprefix[#1][#2,#3,#4]%
- {\setvalue{#1}{\handletextprefix{#2}{#3}}}
-
-\def\xdosetupsometextprefix[#1][#2=#3]%
- {\doassignsometextprefix[#1#2][#3,,]}
-
-%D By changing the meaning of \type {\handletextprefix} we
-%D can filter the left and right labeltext as well as convert
-%D labels to uppercase.
-%D
-%D These commands accept all kind of inputs:
-%D
-%D \starttyping
-%D \setuplabeltext [language] [labellabel=text]
-%D \setuplabeltext [language] [labellabel=text,labellabel=text,...]
-%D \setuplabeltext [labellabel=text]
-%D \setuplabeltext [labellabel=text,labellabel=text,...]
-%D \stoptyping
-%D
-%D The last two cases concern the current language.
-
-%D \macros
-%D {headtext,
-%D labeltext, leftlabeltext, rightlabeltext, labeltexts,
-%D LABELTEXT, LEFTLABELTEXT, RIGHTLABELTEXT, LABELTEXTS}
-%D
-%D Once defined, head and label texts can be called upon using:
-%D
-%D \showsetup{headtext}
-%D \showsetup{labeltext}
-%D
-%D The latter one has an upcased alternative \type{\LABELTEXT}.
-
-% \def\labellanguage{\currentmainlanguage}
-% \def\headlanguage {\currentmainlanguage}
-
-% \def\labellanguage{\defaultlanguage\currentmainlanguage}
-% \def\headlanguage {\defaultlanguage\currentmainlanguage}
-
-\def\labellanguage{\reallanguagetag{\defaultlanguage\currentmainlanguage}}
-\def\headlanguage {\reallanguagetag{\defaultlanguage\currentmainlanguage}}
-
-\appendtoks \let\labellanguage\currentlanguage \to \everycurrentdate
-
-\unexpanded\def\headtext
- {\let\handletextprefix\firstoftwoarguments
- \let\reporttextprefixerror\doreporttextprefixerror
- \global\labeltextdonetrue
- \dogetupsometextprefix\headlanguage\c!title}
-
-\unexpanded\def\leftlabeltext
- {\let\handletextprefix\firstoftwoarguments
- \let\reporttextprefixerror\doreporttextprefixerror
- \global\labeltextdonetrue
- \dogetupsometextprefix\labellanguage\c!label}
-
-\unexpanded\def\rightlabeltext
- {\let\handletextprefix\secondoftwoarguments
- \let\reporttextprefixerror\doreporttextprefixerror
- \global\labeltextdonetrue
- \dogetupsometextprefix\labellanguage\c!label}
-
-\unexpanded\def\LEFTLABELTEXT
- {\def\handletextprefix##1##2{\uppercase{##1}}\DOLABELTEXT}
-
-\unexpanded\def\RIGHTLABELTEXT
- {\def\handletextprefix##1##2{\uppercase{##2}}\DOLABELTEXT}
-
-\def\DOLABELTEXT#1%
- {\bgroup
- \the\everyuppercase
- \let\reporttextprefixerror\doreporttextprefixerror
- \global\labeltextdonetrue
- \dogetupsometextprefix\labellanguage\c!label{#1}% not \labeltext (see \MONTH)
- \egroup}
-
-\let\labeltext \leftlabeltext
-\let\LABELTEXT \LEFTLABELTEXT
-
-\unexpanded\def\labeltexts#1#2{\leftlabeltext{#1}#2\rightlabeltext{#1}}
-\unexpanded\def\LABELTEXTS#1#2{\LEFTLABELTEXT{#1}#2\RIGHTLABELTEXT{#1}}
-
-\newif\iflabeltextdone % needs to be reset elsewhere
-\newif\iftracelabels % shows missing labels
-
-\def\doreporttextprefixerror#1#2#3%
- {\iftracelabels{\tttf[#2:~#3/#1]~}\fi}
-
-\def\dosetexpandedheadlabeltext#1#2#3%
- {\bgroup
- \let\handletextprefix\firstoftwoarguments
- \let\reporttextprefixerror\gobblethreearguments
- \keepencodedtokens % test on multilingual pascal, ok in stretched
- %\dontexpandencodedtokens % not usable in token handler
- \expanded
- {\egroup\noexpand\def\noexpand#2% watch out, no \edef
- {\dogetupsometextprefix{\headlanguage}{#1}{#3}}}}
-
-\def\setexpandedheadtext {\dosetexpandedheadlabeltext\c!title}
-\def\setexpandedlabeltext{\dosetexpandedheadlabeltext\c!label}
-
-% \def\dogetupsometextprefix#1#2#3%
-% {\ifcsname#2#1#3\endcsname
-% \csname#2#1#3\endcsname \else
-% \ifcsname#2#3\endcsname
-% \csname#2#3\endcsname \else
-% \ifcsname#2\defaultlanguage#1#3\endcsname
-% \csname#2\defaultlanguage#1#3\endcsname \else
-% \ifcsname#2\s!en#3\endcsname
-% \csname#2\s!en#3\endcsname \else
-% \ifcsname#2\s!nl#3\endcsname
-% \csname#2\s!nl#3\endcsname \else
-% \reporttextprefixerror{#1}{#2}{#3}%
-% \fi\fi\fi\fi\fi}
-%
-% \def\dogetupsometextprefix#1#2#3% must be expandable !
-% {\ifcsname#2#1#3\endcsname
-% \csname#2#1#3\endcsname
-% \else\@EA\ifx\csname\??la#1\c!default\endcsname\empty
-% \ifcsname#2#3\endcsname
-% \csname#2#3\endcsname
-% \else\ifcsname#2\s!en#3\endcsname
-% \csname#2\s!en#3\endcsname
-% \else
-% \reporttextprefixerror{#1}{#2}{#3}%
-% \fi\fi
-% \else
-% \dogetupsometextprefix{\csname\??la#1\c!default\endcsname}{#2}{#3}%
-% \fi\fi}
-
-\def\dogetupsometextprefix#1#2#3% must be expandable ! #1 == language
- {\ifcsname#2#1#3\endcsname
- \csname#2#1#3\endcsname
- \else\ifcsname\??la#1\s!default\endcsname
- \expandafter\dogetupsometextprefix\csname\??la#1\s!default\endcsname{#2}{#3}%
- \else\ifcsname#2#3\endcsname
- \csname#2#3\endcsname
- \else\ifcsname#1\s!en#3\endcsname
- \csname#2\s!en#3\endcsname
- \else
- \reporttextprefixerror{#1}{#2}{#3}%
- \fi\fi\fi\fi}
-
-\ifx\simplifiedcommands\undefined \newtoks\simplifiedcommands \fi
-
-\appendtoks
- \let \headtext \firstofoneargument
- \let \labeltext \firstofoneargument
- \let \leftlabeltext \firstofoneargument
- \let \rightlabeltext \firstofoneargument
- \let \HEADTEXT \firstofoneargument
- \let \LABELTEXT \firstofoneargument
- \let \LEFTLABELTEXT \firstofoneargument
- \let \RIGHTLABELTEXT \firstofoneargument
-\to \simplifiedcommands
-
-%D \macros
-%D {presetheadtext,presetlabeltext}
-%D
-%D The next two macros enable us to automatically define
-%D head and label texts without replacing predefined ones.
-%D These are internal macros.
-
-\def\xdopresetsometextprefix[#1][#2=#3]%
- {\ifundefined{#1#2}\doassignsometextprefix[#1\reallanguagetag{#2}][#3,,]\fi}
-
-\def\dopresetsometextprefix
- {\let\dodocommand\xdopresetsometextprefix
- \dotripleempty\dodosetupsometextprefix}
-
-\def\presetheadtext {\dopresetsometextprefix[\c!title]}
-\def\presetlabeltext{\dopresetsometextprefix[\c!label]}
-
-%D \macros
-%D {translate}
-%D
-%D Sometismes macros contain language specific words that are to
-%D be typeset. Such macros can be made (more) language
-%D independant by using:
-%D
-%D \showsetup{translate}
-%D
-%D like for instance:
-%D
-%D \starttyping
-%D \translate[en=something,nl=iets]
-%D \stoptyping
-%D
-%D which expands to {\em something} or {\em iets}, depending on
-%D de current language.
-
-\def\dotranslate[#1]%
- {\getparameters[\??lg][#1]%
- \ifcsname\??lg\currentlanguage\endcsname
- \csname\??lg\currentlanguage\endcsname
- \else\ifcsname\??lg\s!en\endcsname
- \csname\??lg\s!en\endcsname
- \else
- [translation #1]%
- \fi\fi}
-
-\unexpanded\def\translate
- {\dosingleempty\dotranslate}
-
-%D When used without argument, the last defined values are
-%D used. This enables repetitive use like
-%D
-%D \starttyping
-%D \en \translate\ means \nl \translate
-%D \stoptyping
-
-%D \macros
-%D {assigntranslation}
-%D
-%D This macro is a system macro, and can be used to assign a
-%D translation to a macro. Its form is:
-%D
-%D \starttyping
-%D \assigntranslation[en=something,nl=iets]\to\command
-%D \stoptyping
-
-\def\assigntranslation[#1]\to#2%
- {\getparameters[\??lg][#1]%
- \edef#2{\csname\??lg\currentlanguage\endcsname}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-mis.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-mis.mkii
deleted file mode 100644
index 3923df3e8ae..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-mis.mkii
+++ /dev/null
@@ -1,683 +0,0 @@
-%D \module
-%D [ file=lang-mis,
-%D version=1997.03.20, % used to be supp-lan.tex
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Compounds,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Language Macros / Compounds}
-
-%D \gdef\starttest
-%D {\blank
-%D \noindent
-%D \halign\bgroup\tt##\hskip2em&##\hskip2em&##\cr}
-%D
-%D \gdef\stoptest
-%D {\egroup
-%D \blank}
-%D
-%D \gdef\test#1%
-%D {\defconvertedargument\ascii{#1}\ascii&\hyphenatedword{#1}&#1\cr}
-
-\unprotect
-
-%D One of \TEX's strong points in building paragraphs is the way
-%D hyphenations are handled. Although for real good hyphenation
-%D of non||english languages some extensions to the program are
-%D needed, fairly good results can be reached with the standard
-%D mechanisms and an additional macro, at least in Dutch.
-
-%D \CONTEXT\ originates in the wish to typeset educational
-%D materials, especially in a technical environment. In
-%D production oriented environments, a lot of compound words
-%D are used. Because the Dutch language poses no limits on
-%D combining words, we often favor putting dashes between those
-%D words, because it facilitates reading, at least for those
-%D who are not that accustomed to it.
-%D
-%D In \TEX\ compound words, separated by a hyphen, are not
-%D hyphenated at all. In spite of the multiple pass paragraph
-%D typesetting this can lead to parts of words sticking into
-%D the margin. The solution lays in saying \type
-%D {spoelwater||terugwinunit} instead of \type
-%D {spoelwater-terugwinunit}. By using a one character command
-%D like \type {|}, delimited by the same character \type {|},
-%D we get ourselves both a decent visualization (in \TEXEDIT\
-%D and colored verbatim we color these commands yellow) and an
-%D efficient way of combining words.
-%D
-%D The sequence \type{||} simply leads to two words connected by
-%D a hyphen. Because we want to distinguish such a hyphen from
-%D the one inserted when \TEX\ hyphenates a word, we use a bit
-%D longer one.
-%D
-%D \hyphenation {spoel-wa-ter te-rug-win-unit}
-%D
-%D \starttest
-%D \test {spoelwater||terugwinunit}
-%D \stoptest
-%D
-%D As we already said, the \type{|} is a command. This commands
-%D accepts an optional argument before it's delimiter, which is
-%D also a \type{|}.
-%D
-%D \hyphenation {po-ly-meer che-mie}
-%D
-%D \starttest
-%D \test {polymeer|*|chemie}
-%D \stoptest
-%D
-%D Arguments like \type{*} are not interpreted and inserted
-%D directly, in contrary to arguments like:
-%D
-%D \starttest
-%D \test {polymeer|~|chemie}
-%D \test {|(|polymeer|)|chemie}
-%D \test {polymeer|(|chemie|)| }
-%D \stoptest
-%D
-%D Although such situations seldom occur |<|we typeset thousands
-%D of pages before we encountered one that forced us to enhance
-%D this mechanism|>| we also have to take care of comma's.
-%D
-%D \hyphenation {uit-stel-len}
-%D
-%D \starttest
-%D \test {op||, in|| en uitstellen}
-%D \stoptest
-%D
-%D The next special case (concerning quotes) was brought to my
-%D attention by Piet Tutelaers, one of the driving forces
-%D behind rebuilding hyphenation patterns for the dutch
-%D language.\footnote{In 1996 the spelling of the dutch
-%D language has been slightly reformed which made this topic
-%D actual again.} We'll also take care of this case.
-%D
-%D \starttest
-%D \test {AOW|'|er}
-%D \test {cd|'|tje}
-%D \test {ex|-|PTT|'|er}
-%D \test {rock|-|'n|-|roller}
-%D \stoptest
-%D
-%D Tobias Burnus pointed out that I should also support
-%D something like
-%D
-%D \starttest
-%D \test {well|_|known}
-%D \stoptest
-%D
-%D to stress the compoundness of hyphenated words.
-%D
-%D Of course we also have to take care of the special case:
-%D
-%D \starttest
-%D \test {text||color and ||font}
-%D \stoptest
-
-%D \macros
-%D {installdiscretionaries}
-%D
-%D The mechanism described here is one of the older inner parts
-%D of \CONTEXT. The most recent extensions concerns some
-%D special cases as well as the possibility to install other
-%D characters as delimiters. The prefered way of specifying
-%D compound words is using \type{||}, which is installed by:
-%D
-%D \starttyping
-%D \installdiscretionaries || -
-%D \stoptyping
-%D
-%D Some alternative definitions are:
-%D
-%D \startbuffer
-%D \installdiscretionaries ** -
-%D \installdiscretionaries ++ -
-%D \installdiscretionaries // -
-%D \installdiscretionaries ~~ -
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D after which we can say:
-%D
-%D \bgroup
-%D \getbuffer
-%D \starttest
-%D \test {test**test**test}
-%D \test {test++test++test}
-%D \test {test//test//test}
-%D \test {test~~test~~test}
-%D \stoptest
-%D \egroup
-
-%D \macros
-%D {compoundhyphen,
-%D beginofsubsentence,endofsubsentence}
-%D
-%D Now let's go to the macros. First we define some variables.
-%D In the main \CONTEXT\ modules these can be tuned by a setup
-%D command. Watch the (maybe) better looking compound hyphen.
-
-\ifx\compoundhyphen \undefined \def\compoundhyphen{\hbox{-\kern-.25ex-}} \fi
-
-\ifx\beginofsubsentence \undefined \def\beginofsubsentence{\hbox{---}} \fi
-\ifx\endofsubsentence \undefined \def\endofsubsentence {\hbox{---}} \fi
-
-%D The last two variables are needed for subsentences
-%D |<|like this one|>| which we did not yet mention.
-%D
-%D We want to enable breaking but at the same time don't want
-%D compound characters like |-| or || to be separated from the
-%D words. \TEX\ hackers will recognise the next two macro's:
-
-\ifx\prewordbreak \undefined \def\prewordbreak {\penalty\plustenthousand\hskip\zeropoint\relax} \fi
-%ifx\postwordbreak \undefined \def\postwordbreak{\penalty\zerocount \prewordbreak } \fi
-\ifx\postwordbreak \undefined \def\postwordbreak{\penalty\zerocount \hskip\zeropoint\relax} \fi
-
-\ifx\hspaceamount \undefined \def\hspaceamount#1#2{.16667em} \fi % language specific
-
-%D \macros
-%D {beginofsubsentencespacing,endofsubsentencespacing}
-%D
-%D In the previous macros we provided two hooks which can be
-%D used to support nested sub||sentences. In \CONTEXT\ these
-%D hooks are used to insert a small space when needed.
-
-\ifx\beginofsubsentencespacing\undefined \let\beginofsubsentencespacing\relax \fi
-\ifx\endofsubsentencespacing \undefined \let\endofsubsentencespacing \relax \fi
-
-%D The following piece of code is a torture test compound
-%D hndling. The \type {\relax} before the \type {\ifmmode} is
-%D needed because of the alignment scanner (in \ETEX\ this
-%D problem is not present because there a protected macro is
-%D not expanded. Thanks to Tobias Burnus for providing this
-%D example.
-%D
-%D \startformula
-%D \left|f(x_n)-{1\over2}\right| =
-%D {\cases{|{1\over2}-x_n| &for $0\le x_n < {1\over2}$\cr
-%D |x_n-{1\over2}| &for ${1\over2}<x_n\le1$ \cr}}
-%D \stopformula
-
-\def\@tmd@action@{@tmd@a@}
-\def\@tmd@text@ {@tmd@t@}
-\def\@tmd@math@ {@tmd@m@}
-\def\@tmd@both@ {@tmd@b@}
-
-\def\installdiscretionary#1#2%
- {\setevalue{\@tmd@math@\detokenize{#1}}{\detokenize{#1}}%
- \setvalue {\@tmd@text@\detokenize{#1}}{#2}%
- \setvalue {\@tmd@both@\detokenize{#1}}{\discretionarycommand#1}%
- \scratchcounter\expandafter`\detokenize{#1}%
- \@EA\uedcatcodecommand\@EA\ctxcatcodes\@EA\scratchcounter\csname\@tmd@both@\detokenize{#1}\endcsname}
-
-\def\handlemathmodediscretionary#1{\executeifdefined{\@tmd@math@\detokenize{#1}}\donothing}
-\def\handletextmodediscretionary#1{\executeifdefined{\@tmd@text@\detokenize{#1}}\donothing}
-
-\def\installdiscretionaries#1#2{\writestatus\m!systems{use \string \installdiscretionary}} % obsolete
-
-\chardef\discretionarymode\plusone
-
-\def\ignorediscretionaries
- {\chardef\discretionarymode\zerocount}
-
-\def\discretionarycommand
- {% if direct if, we need \relax for lookahead in math mode
- \csname
- \ifcase\discretionarymode
- \strippedcsname\dononemodediscretionary
- \else\ifmmode
- \strippedcsname\domathmodediscretionary
- \else
- \strippedcsname\dotextmodediscretionary
- \fi\fi
- \endcsname}
-
-\def\dononemodediscretionary#1%
- {\detokenize{#1}}
-
-%D The macro \type{\checkbeforediscretionary} takes care of
-%D loners like \type{||word}, while it counterpart
-%D \type{\checkafterdiscretionary} is responsible for handling
-%D the comma.
-
-\newsignal\compoundbreakpoint
-
-\newconditional\punctafterdiscretionary
-\newconditional\spaceafterdiscretionary
-
-\def\checkbeforediscretionary
- {\ifvmode\dontleavehmode\fi
- \ifhmode
- \begingroup
- \setbox\scratchbox\lastbox
- \ifzeropt\wd\scratchbox
- \let\postwordbreak\prewordbreak
- \fi
- \box\scratchbox\relax
- \endgroup
- \fi}
-
-\def\checkafterdiscretionary
- {\setfalse\punctafterdiscretionary
- \setfalse\spaceafterdiscretionary
- \ifx\blankspace\nextnext \settrue \spaceafterdiscretionary \else
- \ifx\space \nextnext \settrue \spaceafterdiscretionary \else
- \ifx .\nextnext \settrue \punctafterdiscretionary \else
- \ifx ,\nextnext \settrue \punctafterdiscretionary \else
- \ifx :\nextnext \settrue \punctafterdiscretionary \else
- \ifx ;\nextnext \settrue \punctafterdiscretionary \fi\fi\fi\fi\fi\fi}
-
-\let\domathmodediscretionary\handlemathmodediscretionary
-
-\def\dotextmodediscretionary#1%
- {\bgroup
- \let\nextnextnext\egroup
- \def\next##1#1%
- {\def\next{\activedododotextmodediscretionary#1{##1}}%
- \futurelet\nextnext\next}%
- \next}
-
-\def\activedododotextmodediscretionary#1#2%
- {\edef\discretionarytoken{\detokenize{#2}}%
- \def\textmodediscretionary{\handletextmodediscretionary{#1}}%
- \checkafterdiscretionary
- \ifx\discretionarytoken\empty
- \ifx#1\nextnext % takes care of ||| and +++ and ......
- \ifcsname\@tmd@action@\string#1\endcsname
- \csname\@tmd@action@\string#1\endcsname
- \else\ifconditional\spaceafterdiscretionary
- \prewordbreak\hbox{\string#1}\relax
- \else\ifconditional\punctafterdiscretionary
- \prewordbreak\hbox{\string#1}\relax
- \else
- \prewordbreak\hbox{\string#1}\prewordbreak
- \fi\fi\fi
- \def\nextnextnext{\afterassignment\egroup\let\next=}%
- \else
- \checkbeforediscretionary
- % the next line has been changed (20050203)
- % \prewordbreak\hbox{\textmodediscretionary\nextnext}\allowbreak\postwordbreak
- % but an hbox blocks a possible \discretionary
- \ifcsname\@tmd@action@\endcsname
- \csname\@tmd@action@\endcsname
- \else\ifconditional\spaceafterdiscretionary
- \prewordbreak\textmodediscretionary\relax
- \else\ifconditional\punctafterdiscretionary
- \prewordbreak\textmodediscretionary\relax
- \else
- \prewordbreak\textmodediscretionary\prewordbreak
- \fi\fi\fi
- % \prewordbreak\textmodediscretionary\nextnext\allowbreak\postwordbreak
- \fi
- \else\ifcsname\@tmd@action@\discretionarytoken\endcsname
- \csname\@tmd@action@\discretionarytoken\endcsname
- \else
- \checkbeforediscretionary
- \ifconditional\spaceafterdiscretionary
- \prewordbreak\hbox{#2}\relax
- \else\ifconditional\punctafterdiscretionary
- \prewordbreak\hbox{#2}\relax
- \else
- \prewordbreak\discretionary{\hbox{#2}}{}{\hbox{#2}}\allowbreak\postwordbreak
- \fi\fi
- \fi\fi
- \nextnextnext} % lookahead in commands
-
-%D \macros
-%D {directdiscretionary}
-%D
-%D In those situations where the nature of characters is
-%D less predictable, we can use the more direct approach:
-
-\def\directdiscretionary
- {\csname
- \ifcase\discretionarymode
- \strippedcsname\dononemodediscretionary
- \else
- \strippedcsname\dodirectdiscretionary
- \fi
- \endcsname}
-
-\def\indirectdiscretionary
- {\csname
- \ifcase\discretionarymode
- \strippedcsname\dononemodediscretionary
- \else
- \strippedcsname\doindirectdiscretionary
- \fi
- \endcsname}
-
-\unexpanded\def\dodirectdiscretionary#1%
- {\edef\discretionarytoken{\detokenize{#1}}%
- \let\textmodediscretionary\compoundhyphen
- \executeifdefined{\@tmd@action@\discretionarytoken}{\indirectdiscretionary{#1}}}
-
-\unexpanded\def\doindirectdiscretionary#1%
- {\prewordbreak\discretionary{\hbox{#1}}{}{\hbox{#1}}\allowbreak\postwordbreak}
-
-\def\definetextmodediscretionary #1
- {\setvalue{\@tmd@action@\detokenize{#1}}}
-
-% \start \hsize 1mm
-% test |||test test|||, test\blank
-% test test|-|, test|-| and test|-|test\blank
-% test test|_|, test|_| and test|_|test\blank
-% test cd|'|tje\blank
-% test |(|test test|)|, test\blank
-% test test test|x|, test\blank
-% test|~|test
-% test|^|test
-% \stop
-
-\def\hyphenliketextmodediscretionary#1#2%
- {\ifconditional\spaceafterdiscretionary
- \prewordbreak\hbox{#1}\relax
- \else\ifconditional\punctafterdiscretionary
- \prewordbreak\hbox{#1}\relax
- \else
- \prewordbreak#2\postwordbreak % was prewordbreak
- \fi\fi}
-
-\definetextmodediscretionary {}
- {\hyphenliketextmodediscretionary\textmodehyphen\textmodehyphendiscretionary}
-
-\definetextmodediscretionary -
- {\hyphenliketextmodediscretionary\normalhyphen\normalhyphendiscretionary}
-
-\definetextmodediscretionary _
- {\hyphenliketextmodediscretionary\composedhyphen\composedhyphendiscretionary}
-
-\definetextmodediscretionary )
- {\hyphenliketextmodediscretionary{)}{\discretionary{-)}{}{)}}}
-
-\definetextmodediscretionary (
- {\ifdim\lastskip>\zeropoint
- (\prewordbreak
- \else
- \prewordbreak\discretionary{}{(-}{(}\prewordbreak
- \fi}
-
-\definetextmodediscretionary ~
- {\prewordbreak\discretionary{-}{}{\thinspace}\postwordbreak}
-
-\definetextmodediscretionary '
- {\prewordbreak\discretionary{-}{}{'}\postwordbreak}
-
-\definetextmodediscretionary ^
- {\prewordbreak\discretionary{\hbox{$|$}}{}{\hbox{$|$}}%
- \allowbreak\postwordbreak} % bugged
-
-\definetextmodediscretionary <
- {\beginofsubsentence\prewordbreak\beginofsubsentencespacing}
-
-\definetextmodediscretionary >
- {\endofsubsentencespacing\prewordbreak\endofsubsentence}
-
-\definetextmodediscretionary =
- {\prewordbreak\midsentence\prewordbreak} % {\prewordbreak\compoundhyphen}
-
-% french
-
-\definetextmodediscretionary : {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{:}:}
-\definetextmodediscretionary ; {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{;};}
-\definetextmodediscretionary ? {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{?}?}
-\definetextmodediscretionary ! {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{!}!}
-
-\definetextmodediscretionary *
- {\prewordbreak\discretionary{-}{}{\kern.05em}\prewordbreak}
-
-% spanish
-
-\definetextmodediscretionary ?? {\prewordbreak\questiondown}
-\definetextmodediscretionary !! {\prewordbreak\exclamdown}
-
-% \ifx\normalcompound\undefined \let\normalcompound=| \fi
-
-%D \installdiscretionary | +
-%D \installdiscretionary + =
-
-\def\defaultdiscretionaryhyphen{\compoundhyphen}
-
-\installdiscretionary | \defaultdiscretionaryhyphen % installs in ctx and prt will fall back on it
-
-%D \macros
-%D {fakecompoundhyphen}
-%D
-%D In headers and footers as well as in active pieces of text
-%D we need a dirty hack. Try to imagine what is needed to
-%D savely break the next text across a line and at the same
-%D time make the words interactive.
-%D
-%D \starttyping
-%D \goto{Some||Long||Word}
-%D \stoptyping
-
-\def\fakecompoundhyphen
- {\def\|{\mathortext\vert\dofakecompoundhyphen}}
-
-\def\dofakecompoundhyphen
- {\def##1|%
- {\doifelsenothing{##1}\compoundhyphen{##1}%
- \kern\compoundbreakpoint\allowbreak}}
-
-%D \macros
-%D {midworddiscretionary}
-%D
-%D If needed, one can add a discretionary hyphen using \type
-%D {\midworddiscretionary}. This macro does the same as
-%D \PLAIN\ \TEX's \type {\-}, but, like the ones implemented
-%D earlier, this one also looks ahead for spaces and grouping
-%D tokens.
-
-\def\midworddiscretionary
- {\futurelet\next\domidworddiscretionary}
-
-\def\domidworddiscretionary
- {\ifx\next\blankspace\else
- \ifx\next\bgroup \else
- \ifx\next\egroup \else
- \discretionary{-}{}{}%
- \fi\fi\fi}
-
-%D \macros
-%D {installcompoundcharacter}
-%D
-%D When Tobias Burnus started translating the dutch manual of
-%D \PPCHTEX\ into german, he suggested to let \CONTEXT\ support
-%D the \type{german.sty} method of handling compound
-%D characters, especially the umlaut. This package is meant for
-%D use with \PLAIN\ \TEX\ as well as \LATEX.
-%D
-%D I decided to implement compound character support as
-%D versatile as possible. As a result one can define his own
-%D compound character support, like:
-%D
-%D \starttyping
-%D \installcompoundcharacter "a {\"a}
-%D \installcompoundcharacter "e {\"e}
-%D \installcompoundcharacter "i {\"i}
-%D \installcompoundcharacter "u {\"u}
-%D \installcompoundcharacter "o {\"o}
-%D \installcompoundcharacter "s {\SS}
-%D \stoptyping
-%D
-%D or even
-%D
-%D \starttyping
-%D \installcompoundcharacter "ck {\discretionary {k-}{k}{ck}}
-%D \installcompoundcharacter "ff {\discretionary{ff-}{f}{ff}}
-%D \stoptyping
-%D
-%D The support is not limited to alphabetic characters, so the
-%D next definition is also valid.
-%D
-%D \starttyping
-%D \installcompoundcharacter ". {.\doifnextcharelse{\spacetoken}{}{\kern.125em}}
-%D \stoptyping
-%D
-%D The implementation looks familiar and uses the same tricks as
-%D mentioned earlier in this module. We take care of two
-%D arguments, which complicates things a bit.
-
-\def\@nc@{@nc@} % normal character
-\def\@cc@{@cc@} % compound character
-\def\@cs@{@cs@} % compound characters
-\def\@cx@{@cx@} % compound definition
-
-%D When we started working on MK IV code, we needed a different
-%D approach for defining the active character itself. In MK II as
-%D well as in MK IV we now use the catcode vectors.
-
-\chardef\compoundcharactermode\plusone
-
-\def\installcompoundcharacter #1#2#3 #4% {#4} no grouping
- {\ifcase\compoundcharactermode
- % ignore mode
- \else
- \chardef\thecompoundcharacter`#1%
- \@EA\chardef\csname\@nc@\string#1\endcsname\thecompoundcharacter
- \def\!!stringa{#3}%
- \@EA\def\csname\ifx\!!stringa\empty\@cc@\else\@cs@\fi\detokenize{#1#2#3}\endcsname{#4}%
- \setevalue{\@cx@\detokenize{#1}}{\noexpand\handlecompoundcharacter{\detokenize{#1}}}% beter nr's
-% \@EA\letcatcodecommand\@EA\prtcatcodes\@EA\thecompoundcharacter\csname\@cx@\detokenize{#1}\endcsname
-% \@EA\letcatcodecommand\@EA\texcatcodes\@EA\thecompoundcharacter\csname\@cx@\detokenize{#1}\endcsname
- \@EA\letcatcodecommand\@EA\ctxcatcodes\@EA\thecompoundcharacter\csname\@cx@\detokenize{#1}\endcsname
- \fi}
-
-%D In order to serve the language specific well, we will introduce
-%D a namespace:
-
-% \ifx\currentlanguage\undefined
- \let\compoundcharacterclass\empty
-% \else
-% \def\compoundcharacterclass{\currentlanguage}
-% \fi
-
-\def\@cc@{@cc@\compoundcharacterclass} % compound character
-\def\@cs@{@cs@\compoundcharacterclass} % compound characters
-
-%D We can also ignore definitions (needed in for instance \XML). Beware,
-%D this macro is supposed to be used grouped!
-
-\def\ignorecompoundcharacter
- {\chardef\compoundcharactermode\zerocount}
-
-\let\restorecompoundcharacter \gobbleoneargument % obsolete
-\let\enableactivediscretionaries\relax % obsolete
-
-%D In handling the compound characters we have to take care of
-%D \type{\bgroup} and \type{\egroup} tokens, so we end up with
-%D a multi||step interpretation macro. We look ahead for a
-%D \type{\bgroup}, \type{\egroup} or \type{\blankspace}. Being
-%D no user of this mechanism, the credits for testing them goes
-%D to Tobias Burnus, the first german user of \CONTEXT.
-%D
-%D We define these macros as \type{\long} because we can
-%D expect \type{\par} tokens. We need to look into the future
-%D with \type{\futurelet} to prevent spaces from
-%D disappearing.
-
-\def\handlecompoundcharacter#1%
- {\def\xhandlecompoundcharacter{\dohandlecompoundcharacter{#1}}%
- \futurelet\next\xhandlecompoundcharacter}
-
-\def\dohandlecompoundcharacter
- {\ifx\next\bgroup
- %\@EA\dodohandlecompoundcharacter % handle "{ee} -> \"ee
- %\@EA\gobbleoneargument % forget "{ee} -> ee
- \@EA\handlecompoundcharacterone % ignore "{ee} -> "ee
- \else\ifx\next\egroup
- \@EAEAEA\donohandlecompoundcharacter
- \else\ifx\next\blankspace
- \@EA\@EAEAEA\@EA\donohandlecompoundcharacter
- \else
- \@EA\@EAEAEA\@EA\dodohandlecompoundcharacter
- \fi\fi\fi}
-
-\def\donohandlecompoundcharacter#1{\csname\@nc@\string#1\endcsname}
-
-\def\dododohandlecompoundcharacter
- {\ifx\next\bgroup
- \@EA\handlecompoundcharacterone
- \else\ifx\next\egroup
- \@EAEAEA\handlecompoundcharacterone
- \else\ifx\next\blankspace
- \@EA\@EAEAEA\@EA\handlecompoundcharacterone
- \else
- \@EA\@EAEAEA\@EA\handlecompoundcharactertwo
- \fi\fi\fi}
-
-\def\dodohandlecompoundcharacter#1#2% preserve space
- {\def\xdodohandlecompoundcharacter{\dododohandlecompoundcharacter#1#2}%
- \futurelet\next\xdodohandlecompoundcharacter}
-
-%D Besides taken care of the grouping and space tokens, we have
-%D to deal with three situations. First we look if the next
-%D character equals the first one, if so, then we just insert
-%D the original. Next we look if indeed a compound character is
-%D defined. We either execute the compound character or just
-%D insert the first. So we have
-%D
-%D \starttyping
-%D <key><key> <key><known> <key><unknown>
-%D \stoptyping
-%D
-%D In later modules we will see how these commands are used.
-
-\long\def\handlecompoundcharacterone#1#2%
- {\if\string#1\string#2% was: \ifx#1#2%
- \def\next{\csname\@nc@\string#1\endcsname}%
- \else\ifcsname\@cc@\string#1\string#2\endcsname
- \def\next{\csname\@cc@\string#1\string#2\endcsname}%
- \else
- \def\next{\csname\@nc@\string#1\endcsname#2}%
- \fi\fi
- \next}
-
-\long\def\handlecompoundcharactertwo#1#2#3%
- {\if\string#1\string#2%
- \def\next{\csname\@nc@\string#1\endcsname#3}%
- \else\ifcsname\@cs@\string#1\string#2\string#3\endcsname
- \def\next{\csname\@cs@\string#1\string#2\string#3\endcsname}%
- \else\ifcsname\@cc@\string#1\string#2\endcsname
- \def\next{\csname\@cc@\string#1\string#2\endcsname#3}%
- \else
- \def\next{\csname\@nc@\string#1\endcsname#2#3}%
- \fi\fi\fi
- \next}
-
-%D For very obscure applications (see for an application \type
-%D {lang-sla.tex}) we provide:
-
-\def\simplifiedcompoundcharacter#1#2%
- {\ifcsname\@cc@\string#1\string#2\endcsname
- \@EA\@EA\@EA\firstofoneargument\csname\@cc@\string#1\string#2\endcsname
- \else
- #2%
- \fi}
-
-%D \macros
-%D {disablediscretionaries,disablecompoundcharacter}
-%D
-%D Occasionally we need to disable this mechanism. For the
-%D moment we assume that \type {|} is used.
-
-\let\disablediscretionaries \ignorediscretionaries
-\let\disablecompoundcharacters\ignorecompoundcharacter
-
-%D \macros
-%D {normalcompound}
-%D
-%D Handy in for instance XML. (Kind of obsolete)
-
-\ifx\normalcompound\undefined \let\normalcompound=| \fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-run.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-run.mkii
deleted file mode 100644
index 320ee8dabf6..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-run.mkii
+++ /dev/null
@@ -1,36 +0,0 @@
-%D \module
-%D [ file=lang-run,
-%D version=2005.09.08,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Runtime Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D [This code is hooked into the core macros and saves some
-%D format space.]
-
-\unprotect
-
-\gdef\showpatterns
- {\bgroup
- \def\doshowpatterns##1##2##3##4% language number encoding mapping
- {\NC##1\NC##3\NC##4\NC##2\NC
- \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
- \HL
- \preloadedpmessage
- \HL
- \stoptabulate
- \egroup}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-sla.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-sla.mkii
deleted file mode 100644
index 81f9a9bf711..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-sla.mkii
+++ /dev/null
@@ -1,485 +0,0 @@
-%D \module
-%D [ file=lang-sla,
-%D version=1999.09.13, % 1997.09.03
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Slavic Languages,
-%D author=Hans Hagen / Tobias Burnus,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% Todo: replace \'.. by \namedglyph
-
-%D The framework of this module is set up by Hans Hagen while
-%D many of the first translations were done by Tobias. Later
-%D on, corrections were made by users. If you have suggestions,
-%D or feel that your name missing here, don't hesitate to send
-%D us an email.
-%D
-%D \starttabulate[|lB|l|]
-%D \NC Czech \NC Tom Hudec, Petr Sojka \NC \NR
-%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,
-% Serbian, Croatian, Slovenian, Czech, Kushubian,
-% Lusatian/Sorbian/Wendish, Polish, Slovak, Albanian,
-% Illyrian, Armenian
-
-\writestatus{loading}{ConTeXt Language Macros / Slavic Languages}
-
-\unprotect
-
-\installlanguage
- [\s!pl]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\lowerleftsingleninequote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\lowerleftdoubleninequote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!day,{.},\ ,\v!month,\ ,\v!year},
- \s!mapping={pl0,ec,qx},
- \s!encoding={pl0,ec,qx}]
-
-\installlanguage
- [\s!cs]
- [\c!spacing=\v!packed,
- \c!leftsentence=\thickglue--\thickglue\penalty-20\relax, % hh, \relax added
- \c!rightsentence=\thickglue--\thickglue\penalty-20\relax,
- \c!leftsubsentence=~---~\penalty-20\relax,
- \c!rightsubsentence=~---~\penalty-20\relax,
- \c!leftquote=\lowerleftsingleninequote,
- \c!rightquote=\upperrightsinglesixquote,
- \c!leftquotation=\lowerleftdoubleninequote,
- \c!rightquotation=\upperrightdoublesixquote,
- \c!date={\v!day,{.\,},\v!month,\ ,\v!year},
- \s!mapping={il2,ec},
- \s!encoding={il2,ec}]
-
-\installlanguage
- [\s!sk]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\upperleftsinglesixquote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\upperleftdoublesixquote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!day,{.\,},\v!month,\ ,\v!year},
- \s!mapping={il2,ec},
- \s!encoding={il2,ec}]
-
-\installlanguage
- [\s!hr]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\lowerleftsingleninequote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\lowerleftdoubleninequote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!day,{.},\ ,\v!month,\ ,\v!year},
- \s!mapping=ec,
- \s!encoding=ec]
-
-%D The default quotation marks for Slovenian were chosen as
-%D \lowerleftdoubleninequote these ones\upperrightdoublesixquote\
-%D which was probably due to the strong influence computers
-%D had on typesetting, but \rightguillemot these ones\leftguillemot\
-%D are \quotation{more correct}.
-%D
-%D If you still want the other quotation marks, use this:
-%D
-%D \starttyping
-%D \installlanguage
-%D [sl]
-%D [leftquote=\lowerleftsingleninequote,
-%D rightquote=\upperrightsinglesixquote,
-%D leftquotation=\lowerleftdoubleninequote,
-%D rightquotation=\upperrightdoublesixquote]
-%D \stoptyping
-%D
-%D If you disagree with the change, please send an email to Mojca, but
-%D best use some pretty strong arguments because she loves S{\sl love}nia
-%D too much to compromise on this.
-%D
-%D German faces approximately the same problem. I (MM) would prefer to
-%D have something like:
-%D
-%D \starttyping
-%D \mainlanguage[sl][quotationstyle=guillemot|doublequote] % better name needed
-%D \stoptyping
-%D
-%D but users are expected to respect the rules of nice and correct
-%D typography anyway.
-
-\installlanguage
- [\s!sl]
- [\c!spacing=\v!packed,
- \c!leftsentence={\hbox{--~}},
- \c!rightsentence={\hbox{~--}},
- \c!leftsubsentence={--},
- \c!rightsubsentence={--},
- %\c!leftquote=\lowerleftsingleninequote,
- %\c!rightquote=\upperrightsinglesixquote,
- %\c!leftquotation=\lowerleftdoubleninequote,
- %\c!rightquotation=\upperrightdoublesixquote,
- \c!leftquote=\guilsingleright,
- \c!rightquote=\guilsingleleft,
- \c!leftquotation=\rightguillemot,
- \c!rightquotation=\leftguillemot,
- \c!date={\v!day,{.},\ ,\v!month,\ ,\v!year},
- \s!mapping=ec,
- \s!encoding=ec]
-
-\installlanguage [polish] [\s!pl]
-\installlanguage [czech] [\s!cs]
-\installlanguage [slovak] [\s!sk]
-\installlanguage [croatian] [\s!hr]
-\installlanguage [slovenian] [\s!sl]
-\installlanguage [slovene] [\s!sl] % both possible (mojca: still needed?)
-
-\installlanguage [cz] [\s!cs]
-
-% labels
-
-\setupheadtext [\s!pl] [\v!content=Spis tre\sacute ci]
-\setupheadtext [\s!cs] [\v!content=Obsah]
-\setupheadtext [\s!sk] [\v!content=Obsah]
-\setupheadtext [\s!hr] [\v!content=Sadr\zcaron aj]
-\setupheadtext [\s!sl] [\v!content=Kazalo]
-
-\setupheadtext [\s!pl] [\v!tables=Tabele]
-\setupheadtext [\s!cs] [\v!tables=Tabulky]
-\setupheadtext [\s!sk] [\v!tables=Tabuliek]
-\setupheadtext [\s!hr] [\v!tables=Tablice]
-\setupheadtext [\s!sl] [\v!tables=Tabele]
-
-\setupheadtext [\s!pl] [\v!figures=Ilustracje]
-\setupheadtext [\s!cs] [\v!figures=Obr\aacute zky]
-\setupheadtext [\s!sk] [\v!figures=Obr\aacute zkov]
-\setupheadtext [\s!hr] [\v!figures=Slike]
-\setupheadtext [\s!sl] [\v!figures=Slike]
-
-\setupheadtext [\s!pl] [\v!graphics=Grafika]
-\setupheadtext [\s!cs] [\v!graphics=Grafy]
-\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!cs] [\v!intermezzi=Intermezza]
-\setupheadtext [\s!sk] [\v!intermezzi=Intermezz\aacute]
-\setupheadtext [\s!hr] [\v!intermezzi=Intermeci]
-\setupheadtext [\s!sl] [\v!intermezzi=Intermezzi]
-
-\setupheadtext [\s!pl] [\v!index=Indeks]
-\setupheadtext [\s!cs] [\v!index=Rejst\rcaron\iacute k]
-\setupheadtext [\s!sk] [\v!index=Zoznam]
-\setupheadtext [\s!hr] [\v!index=Indeks]
-\setupheadtext [\s!sl] [\v!index=Stvarno kazalo]
-
-\setupheadtext [\s!pl] [\v!abbreviations=Skr\oacute cenie]
-\setupheadtext [\s!cs] [\v!abbreviations=Zkratky]
-\setupheadtext [\s!sk] [\v!abbreviations=Skratky]
-\setupheadtext [\s!hr] [\v!abbreviations=Kratice]
-\setupheadtext [\s!sl] [\v!abbreviations=Kratice]
-
-\setupheadtext [\s!pl] [\v!logos=Znaki]
-\setupheadtext [\s!cs] [\v!logos=Loga]
-\setupheadtext [\s!sk] [\v!logos=Log\aacute]
-\setupheadtext [\s!hr] [\v!logos=Znakovi]
-\setupheadtext [\s!sl] [\v!logos=Logotipi]
-
-\setupheadtext [\s!pl] [\v!units=Jednostki]
-\setupheadtext [\s!cs] [\v!units=Jednotky]
-\setupheadtext [\s!sk] [\v!units=Jednotky]
-\setupheadtext [\s!hr] [\v!units=Jedinice]
-\setupheadtext [\s!sl] [\v!units=Enote]
-
-%setupheadtext [\s!pl] [pubs=?]
-\setupheadtext [\s!cs] [pubs=Literatura]
-%setupheadtext [\s!sk] [pubs=?]
-\setupheadtext [\s!hr] [pubs=Literatura]
-\setupheadtext [\s!sl] [pubs=Literatura]
-
-\setuplabeltext [\s!pl] [\v!table=Tabela ]
-\setuplabeltext [\s!cs] [\v!table=Tabulka ]
-\setuplabeltext [\s!sk] [\v!table=Tabu\lcaron ka ]
-\setuplabeltext [\s!hr] [\v!table=Tablica ]
-\setuplabeltext [\s!sl] [\v!table=Tabela ]
-
-\setuplabeltext [\s!pl] [\v!figure=Ilustracja ]
-\setuplabeltext [\s!cs] [\v!figure=Obr\aacute zek ]
-\setuplabeltext [\s!sk] [\v!figure=Obr\aacute zok ]
-\setuplabeltext [\s!hr] [\v!figure=Slika ]
-\setuplabeltext [\s!sl] [\v!figure=Slika ]
-
-\setuplabeltext [\s!pl] [\v!intermezzo=Intermezzo ]
-\setuplabeltext [\s!cs] [\v!intermezzo=Intermezzo ]
-\setuplabeltext [\s!sk] [\v!intermezzo=Intermezzo ]
-\setuplabeltext [\s!hr] [\v!intermezzo=Intermeco ]
-\setuplabeltext [\s!sl] [\v!intermezzo=Intermezzo ]
-
-\setuplabeltext [\s!pl] [\v!graphic=Grafika ]
-\setuplabeltext [\s!cs] [\v!graphic=Graf ]
-\setuplabeltext [\s!sk] [\v!graphic=Graf ]
-\setuplabeltext [\s!hr] [\v!graphic=Slika ]
-\setuplabeltext [\s!sl] [\v!graphic=Slika ]
-
-\setuplabeltext [\s!pl] [\v!chapter=] % Rozdzia\l
-\setuplabeltext [\s!cs] [\v!chapter=] % Kapitola
-\setuplabeltext [\s!sk] [\v!chapter=] % Kapitola
-\setuplabeltext [\s!hr] [\v!chapter=] % Poglavlje
-\setuplabeltext [\s!sl] [\v!chapter=] % Poglavje
-
-\setuplabeltext [\s!pl] [\v!section=] % Podrozdzia\l
-\setuplabeltext [\s!cs] [\v!section=] % Sekce
-\setuplabeltext [\s!sk] [\v!section=] % Sekcia
-\setuplabeltext [\s!hr] [\v!section=] % Odjeljak
-\setuplabeltext [\s!sl] [\v!section=]
-
-\setuplabeltext [\s!pl] [\v!subsection=]
-\setuplabeltext [\s!cs] [\v!subsection=] % Podsekce
-\setuplabeltext [\s!sk] [\v!subsection=] % Podsekcia
-\setuplabeltext [\s!hr] [\v!subsection=] % Pododjeljak
-\setuplabeltext [\s!sl] [\v!subsection=]
-
-\setuplabeltext [\s!pl] [\v!subsubsection=]
-\setuplabeltext [\s!cs] [\v!subsubsection=] % Podpodsekce
-\setuplabeltext [\s!sk] [\v!subsubsection=] % Podpodsekcia
-\setuplabeltext [\s!hr] [\v!subsubsection=] % Podpododjeljak
-\setuplabeltext [\s!sl] [\v!subsubsection=]
-
-\setuplabeltext [\s!pl] [\v!subsubsubsection=]
-\setuplabeltext [\s!cs] [\v!subsubsubsection=] % Podpodpodsekce
-\setuplabeltext [\s!sk] [\v!subsubsubsection=] % Podpodpodsekcia
-\setuplabeltext [\s!hr] [\v!subsubsubsection=] % Podpodpododjeljak
-\setuplabeltext [\s!sl] [\v!subsubsubsection=]
-
-\setuplabeltext [\s!pl] [\v!appendix=] % Dodatek
-\setuplabeltext [\s!cs] [\v!appendix=] % P\rcaron\iacute loha
-\setuplabeltext [\s!sk] [\v!appendix=] % Pr\iacute loha
-\setuplabeltext [\s!hr] [\v!appendix=] % Dodatak
-\setuplabeltext [\s!sl] [\v!appendix=] % Dodatek
-
-\setuplabeltext [\s!pl] [\v!part=Ust\eogonek p ]
-\setuplabeltext [\s!cs] [\v!part=\Ccaron \aacute st ]
-\setuplabeltext [\s!sk] [\v!part=\Ccaron as\tcaron{} ]
-\setuplabeltext [\s!hr] [\v!part=Dio ]
-\setuplabeltext [\s!sl] [\v!part=Del ]
-
-\setuplabeltext [\s!pl] [\v!line=wiersz ]
-\setuplabeltext [\s!cs] [\v!line=\rcaron\aacute dek ]
-\setuplabeltext [\s!sk] [\v!line=riadok ]
-\setuplabeltext [\s!hr] [\v!line=redak ]
-\setuplabeltext [\s!sl] [\v!line=vrstica ]
-
-\setuplabeltext [\s!pl] [\v!lines=wiersze ]
-\setuplabeltext [\s!cs] [\v!lines=\rcaron\aacute dky ]
-\setuplabeltext [\s!sk] [\v!lines=riadky ]
-\setuplabeltext [\s!hr] [\v!lines=retci ]
-\setuplabeltext [\s!sl] [\v!lines=vrstice ]
-
-\setuplabeltext [\s!pl] [\v!january=stycznia]
-\setuplabeltext [\s!pl] [\v!february=lutego]
-\setuplabeltext [\s!pl] [\v!march=marca]
-\setuplabeltext [\s!pl] [\v!april=kwietnia]
-\setuplabeltext [\s!pl] [\v!may=maja]
-\setuplabeltext [\s!pl] [\v!june=czerwca]
-\setuplabeltext [\s!pl] [\v!july=lipca]
-\setuplabeltext [\s!pl] [\v!august=sierpnia]
-\setuplabeltext [\s!pl] [\v!september=wrze\sacute nia]
-\setuplabeltext [\s!pl] [\v!october=pa\zacute dziernika]
-\setuplabeltext [\s!pl] [\v!november=listopada]
-\setuplabeltext [\s!pl] [\v!december=grudnia]
-
-\setuplabeltext [\s!cs] [\v!january=ledna]
-\setuplabeltext [\s!cs] [\v!february=\uacute nora]
-\setuplabeltext [\s!cs] [\v!march=b\rcaron ezna]
-\setuplabeltext [\s!cs] [\v!april=dubna]
-\setuplabeltext [\s!cs] [\v!may=kv\ecaron tna]
-\setuplabeltext [\s!cs] [\v!june=\ccaron ervna]
-\setuplabeltext [\s!cs] [\v!july=\ccaron ervence]
-\setuplabeltext [\s!cs] [\v!august=srpna]
-\setuplabeltext [\s!cs] [\v!september=z\aacute\rcaron\iacute{}]
-\setuplabeltext [\s!cs] [\v!october=\rcaron\iacute jna]
-\setuplabeltext [\s!cs] [\v!november=listopadu]
-\setuplabeltext [\s!cs] [\v!december=prosince]
-
-\setuplabeltext [\s!sk] [\v!january=janu\aacute ra]
-\setuplabeltext [\s!sk] [\v!february=febru\aacute ra]
-\setuplabeltext [\s!sk] [\v!march=marca]
-\setuplabeltext [\s!sk] [\v!april=apr\iacute la]
-\setuplabeltext [\s!sk] [\v!may=m\aacute ja]
-\setuplabeltext [\s!sk] [\v!june=j\uacute na]
-\setuplabeltext [\s!sk] [\v!july=j\uacute la]
-\setuplabeltext [\s!sk] [\v!august=augusta]
-\setuplabeltext [\s!sk] [\v!september=septembra]
-\setuplabeltext [\s!sk] [\v!october=okt\oacute bra]
-\setuplabeltext [\s!sk] [\v!november=novembra]
-\setuplabeltext [\s!sk] [\v!december=decembra]
-
-\setuplabeltext [\s!hr] [\v!january=sije\ccaron anj]
-\setuplabeltext [\s!hr] [\v!february=velja\ccaron a]
-\setuplabeltext [\s!hr] [\v!march=o\zcaron ujak]
-\setuplabeltext [\s!hr] [\v!april=travanj]
-\setuplabeltext [\s!hr] [\v!may=svibanj]
-\setuplabeltext [\s!hr] [\v!june=lipanj]
-\setuplabeltext [\s!hr] [\v!july=srpanj]
-\setuplabeltext [\s!hr] [\v!august=kolovoz]
-\setuplabeltext [\s!hr] [\v!september=rujan]
-\setuplabeltext [\s!hr] [\v!october=listopad]
-\setuplabeltext [\s!hr] [\v!november=studeni]
-\setuplabeltext [\s!hr] [\v!december=prosinac]
-
-\setuplabeltext [\s!sl] [\v!january=januar]
-\setuplabeltext [\s!sl] [\v!february=februar]
-\setuplabeltext [\s!sl] [\v!march=marec]
-\setuplabeltext [\s!sl] [\v!april=april]
-\setuplabeltext [\s!sl] [\v!may=maj]
-\setuplabeltext [\s!sl] [\v!june=junij]
-\setuplabeltext [\s!sl] [\v!july=julij]
-\setuplabeltext [\s!sl] [\v!august=avgust]
-\setuplabeltext [\s!sl] [\v!september=september]
-\setuplabeltext [\s!sl] [\v!october=oktober]
-\setuplabeltext [\s!sl] [\v!november=november]
-\setuplabeltext [\s!sl] [\v!december=december]
-
-\setuplabeltext [\s!pl] [\v!sunday=niedziela]
-\setuplabeltext [\s!pl] [\v!monday=poniedzia\lstroke ek]
-\setuplabeltext [\s!pl] [\v!tuesday=wtorek]
-\setuplabeltext [\s!pl] [\v!wednesday=\sacute roda]
-\setuplabeltext [\s!pl] [\v!thursday=czwartek]
-\setuplabeltext [\s!pl] [\v!friday=pi\aogonek tek]
-\setuplabeltext [\s!pl] [\v!saturday=sobota]
-
-\setuplabeltext [\s!cs] [\v!sunday=ned\ecaron le]
-\setuplabeltext [\s!cs] [\v!monday=pond\ecaron l\iacute]
-\setuplabeltext [\s!cs] [\v!tuesday=\uacute ter\yacute]
-\setuplabeltext [\s!cs] [\v!wednesday=st\rcaron eda]
-\setuplabeltext [\s!cs] [\v!thursday=\ccaron tvrtek]
-\setuplabeltext [\s!cs] [\v!friday=p\aacute tek]
-\setuplabeltext [\s!cs] [\v!saturday=sobota]
-
-% Slovakian missing
-
-\setuplabeltext [\s!hr] [\v!sunday=nedjelja]
-\setuplabeltext [\s!hr] [\v!monday=ponedjeljak]
-\setuplabeltext [\s!hr] [\v!tuesday=utorak]
-\setuplabeltext [\s!hr] [\v!wednesday=srijeda]
-\setuplabeltext [\s!hr] [\v!thursday=\ccaron etvrtak]
-\setuplabeltext [\s!hr] [\v!friday=petak]
-\setuplabeltext [\s!hr] [\v!saturday=subota]
-
-\setuplabeltext [\s!sl] [\v!sunday=nedelja]
-\setuplabeltext [\s!sl] [\v!monday=ponedeljek]
-\setuplabeltext [\s!sl] [\v!tuesday=torek]
-\setuplabeltext [\s!sl] [\v!wednesday=sreda]
-\setuplabeltext [\s!sl] [\v!thursday=\ccaron etrtek]
-\setuplabeltext [\s!sl] [\v!friday=petek]
-\setuplabeltext [\s!sl] [\v!saturday=sobota]
-
-%D Rather new ...
-%\installlanguage
-% [\s!cs]
-% [\c!spacing=\v!packed,
-% \c!leftsentence=---,
-% \c!rightsentence=---,
-% \c!leftsubsentence=---,
-% \c!rightsubsentence=---,
-% \c!leftquote=\lowerleftsingleninequote,
-% \c!rightquote=\upperrightsinglesixquote,
-% \c!leftquotation=\lowerleftdoubleninequote,
-% \c!rightquotation=\upperrightdoublesixquote,
-% \c!date={\v!day,\ ,\v!month,\ ,\v!year}]
-
-% Polish missing
-
-\setuplabeltext [\s!cs] [\v!page=strana ]
-\setuplabeltext [\s!cs] [\v!atpage=na stran\ecaron\ ]
-\setuplabeltext [\s!cs] [\v!hencefore=viz v\yacute\scaron e ]
-\setuplabeltext [\s!cs] [\v!hereafter=viz n\iacute\zcaron e ]
-\setuplabeltext [\s!cs] [\v!see=viz ]
-
-% Slovakian missing
-
-\setuplabeltext [\s!hr] [\v!page=stranica ]
-\setuplabeltext [\s!hr] [\v!atpage=na stranici ]
-\setuplabeltext [\s!hr] [\v!hencefore=vidi gore ]
-\setuplabeltext [\s!hr] [\v!hereafter=vidi ispod ]
-\setuplabeltext [\s!hr] [\v!see=vidi ]
-
-\setuplabeltext [\s!sl] [\v!page=stran ]
-\setuplabeltext [\s!sl] [\v!atpage=na strani ]
-\setuplabeltext [\s!sl] [\v!hencefore=glej zgoraj ]
-\setuplabeltext [\s!sl] [\v!hereafter=glej spodaj ]
-\setuplabeltext [\s!sl] [\v!see=glej ]
-
-%D \ShowAllLanguageValues [\s!pl] [polish] {Polish} {furniture}
-%D \ShowAllLanguageValues [\s!cs] [czech] {Czech} {mate}
-%D \ShowAllLanguageValues [\s!sk] [slovak] {Slovakian} {face}
-%D \ShowAllLanguageValues [\s!hr] [croatian] {Croatian} {heartthrob}
-%D \ShowAllLanguageValues [\s!sl] [slovenian] {Slovenian} {mountains}
-
-%D A present from Brooks Moses and Hans Hagen for Mojca Miklavec:
-
-\def\doconvertsloveniancharacters{\dodoconvertcharacters{25}}
-
-\def\sloveniancharacters{\doconvertsloveniancharacters\sloveniancharacter}
-\def\slovenianCharacters{\doconvertsloveniancharacters\slovenianCharacter}
-
-%D Define general-purpose macros for Slovenian character enumerations:
-
-\defineconversion [sloveniancharacter] [\sloveniancharacter]
-\defineconversion [slovenianCharacter] [\slovenianCharacter]
-
-\defineconversion [sloveniancharacters] [\sloveniancharacters]
-\defineconversion [slovenianCharacters] [\slovenianCharacters]
-
-%D Define these as the general character enumeration when
-%D language is Slovenian. If you feel uncomfortable with this,
-%D mail Mojca, since she promised to to take the heat.
-
-\defineconversion [sl] [character] [\sloveniancharacter]
-\defineconversion [sl] [Character] [\slovenianCharacter]
-
-\defineconversion [sl] [characters] [\sloveniancharacters]
-\defineconversion [sl] [Characters] [\slovenianCharacters]
-
-\defineconversion [sl] [a] [\sloveniancharacters]
-\defineconversion [sl] [A] [\slovenianCharacters]
-\defineconversion [sl] [AK] [\smallcapped\sloveniancharacters]
-\defineconversion [sl] [KA] [\smallcapped\sloveniancharacters]
-
-\def\sloveniancharacter#1%
- {\ifcase#1\unknowncharacter
- \or a\or b\or c\or \ccaron\or d\or e\or f\or g\or h\or i\or j\or k\or l\or m%
- \or n\or o\or p\or r\or s\or \scaron\or t\or u\or v\or z\or \zcaron
- \else
- \unknowncharacter
- \fi}
-
-\def\slovenianCharacter#1%
- {\ifcase#1\unknowncharacter
- \or A\or B\or C\or \Ccaron\or D\or E\or F\or G\or H\or I\or J\or K\or L\or M%
- \or N\or O\or P\or R\or S\or \Scaron\or T\or U\or V\or Z\or \Zcaron
- \else
- \unknowncharacter
- \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-spa.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-spa.mkii
deleted file mode 100644
index 313e5f3e6e7..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-spa.mkii
+++ /dev/null
@@ -1,74 +0,0 @@
-%D \module
-%D [ file=lang-spa,
-%D version=2002.04.17,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Spacing,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Language Macros / Spacing}
-
-%D This module was created in the process of enhancing
-%D support for French (with the help of Daniel Flipo).
-
-\unprotect
-
-\definehspace [\s!fr] [quotation] [\flexiblespaceamount{.8}{.3}{.8}]
-\definehspace [\s!fr] [sentence] [\fixedspaceamount{1}]
-
-%definehspace [\s!fr] [quote] [\flexiblespaceamount{.8}{.3}{.8}]
-%definehspace [\s!fr] [speech] [\flexiblespaceamount{.8}{.3}{.8}]
-
-\definehspace [\s!fr] [interquotation] [\zeropoint]
-\definehspace [\s!fr] [intersentence] [\zeropoint]
-
-\definehspace [\string :] [\zeropoint]
-\definehspace [\string ;] [\zeropoint]
-\definehspace [\string !] [\zeropoint]
-\definehspace [\string ?] [\zeropoint]
-
-\definehspace [\s!fr] [\string :] [\spaceamount]
-\definehspace [\s!fr] [\string ;] [.16667em]
-\definehspace [\s!fr] [\string !] [.16667em]
-\definehspace [\s!fr] [\string ?] [.16667em]
-
-%D Alternative discretionary handlers:
-
-\definetextmodediscretionary :
- {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentlanguage{:}:}
-
-\definetextmodediscretionary ;
- {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentlanguage{;};}
-
-\definetextmodediscretionary ?
- {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentlanguage{?}?}
-
-\definetextmodediscretionary !
- {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentlanguage{!}!}
-
-%D \startbuffer
-%D \mainlanguage[en] \quotation{test \quotation{test} test}\par
-%D \mainlanguage[nl] \quotation{test \quotation{test} test}\par
-%D \mainlanguage[fr] \quotation{test \quotation{test} test}\par
-%D
-%D \mainlanguage[en] \quotation{\quotation{test} test}\par
-%D \mainlanguage[nl] \quotation{\quotation{test} test}\par
-%D \mainlanguage[fr] \quotation{\quotation{test} test}\par
-%D
-%D \mainlanguage[en] |<|test |<|test|>| test|>| \par
-%D \mainlanguage[nl] |<|test |<|test|>| test|>| \par
-%D \mainlanguage[fr] |<|test |<|test|>| test|>| \par
-%D
-%D \mainlanguage[en] |<||<|test|>| test|>| \par
-%D \mainlanguage[nl] |<||<|test|>| test|>| \par
-%D \mainlanguage[fr] |<||<|test|>| test|>| \par
-%D \stopbuffer
-%D
-%D \typebuffer {\getbuffer}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-spe.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-spe.mkii
deleted file mode 100644
index 11c57af3f23..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-spe.mkii
+++ /dev/null
@@ -1,244 +0,0 @@
-%D \module
-%D [ file=lang-spe,
-%D version=2002.05.07, % 1996.01.25,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Specifics,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This code was originally placed in the language
-%D initialization module, but isolating it is clearer. Language
-%D specifics evolved out of user demands for special features,
-%D like the german active quote. After a while I decided to
-%D associate them to languages in a more general way so that we
-%D could associate all kind of things with language switching.
-%D
-%D This is a typical example of functionality that occasionally
-%D gets improved based on user input and experience. Much of the
-%D code is pretty old and could probabbly be done in better ways.
-%D It's probably also the kind of code that has been and will be
-%D written over and over again by \TEX\ users around the world,
-%D so there are probably better implementations of similar
-%D functionality around. Therefore, users are invited to pop in
-%D their own handling as long as it does not interfere with
-%D existing code. Writing the more obscure macros that deal with
-%D this is a good learning experience (catcodes, lccodes, token
-%D lists, expansion, \unknown).
-
-\writestatus{loading}{ConTeXt Language Macros / Specifics}
-
-\unprotect
-
-%D \macros
-%D {everyresetlanguagespecifics,resetlanguagespecifics}
-%D
-%D Cleanup macros.
-
-\newevery \everyresetlanguagespecifics \relax
-
-\def\resetlanguagespecifics
- {\ifcase\protectionlevel
- \the\everyresetlanguagespecifics
- \else % to be translated
- % \writestatus\m!systems{don't change language in unprotected mode!}%
- \fi}
-
-\appendtoks
- \resetlanguagespecifics
-\to \everycleanupfeatures
-
-%D \macros
-%D {startlanguagespecifics,enablelanguagespecifics}
-%D
-%D Each language has its own typographic pecularities. Some of
-%D those can be influenced by parameters, others are handled by
-%D the interface, but as soon as specific commands come into
-%D view we need another mechanism. In the macro that activates
-%D a language, we call \type{\enablelanguagespecifics}. This
-%D macro in return calls for the setup of language specific
-%D macros. Such specifics are defined as:
-%D
-%D \starttyping
-%D \startlanguagespecifics[de]
-%D \installcompoundcharacter "a {\"a}
-%D \installcompoundcharacter "e {\"e}
-%D \installcompoundcharacter "s {\SS}
-%D \stoplanguagespecifics
-%D \stoptyping
-%D
-%D Instead of \type{[du]} we can pass a comma separated
-%D list, like \type{[du,nl]}. Next calls to this macro add the
-%D specifics to the current list.
-%D
-%D Before we actually read the specifics, we first take some
-%D precautions that will prevent spurious spaces to creep into
-%D the list.
-
-% We should use token registers, but alas, we run out of them and
-% \ETEX\ has a bug. Well, let's use a token register now (2006).
-
-\def\startlanguagespecifics% % we use double to
- {\bgroup
- \catcode`\^^I=\@@ignore
- \catcode`\^^M=\@@ignore
- \catcode`\^^L=\@@ignore
- \dodoubleempty\dostartlanguagespecifics} % get rid of spaces
-
-%D The main macro looks quite complicated but actually does
-%D nothing special. By embedding \type{\do} we can easily
-%D append to the lists and also execute them at will. Just to
-%D be sure, we check on spurious spaces. The second dummy
-%D argument gobbles spaces.
-
-\def\languageencoding
- {\ifx\characterencoding\nocharacterencoding \else
- \characterencoding-%
- \fi}
-
-\long\def\dostartlanguagespecifics[#1][#2]#3\stoplanguagespecifics
- {\egroup
- \processcommalist[#1]{\dosetlanguagespecifics{#3}}}
-
-% \long\def\dosetlanguagespecifics#1#2%
-% {\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]}%
-% \ifdim\wd\scratchbox>\zeropoint
-% \showmessage\m!linguals7{\currentencoding-#2,\the\wd\scratchbox\space}\wait
-% \else
-% \showmessage\m!linguals8{\currentencoding-#2}%
-% \fi
-% \egroup
-% \doif{#2}\currentmainlanguage{\enablelanguagespecifics[#2]}}
-
-\def\languagespectag#1{\??la\languageencoding#1\??la}
-
-\long\def\dosetlanguagespecifics#1#2%
- {\edef\askedlanguagespecificstag{\languagespectag{#2}}%
- \ifcsname\askedlanguagespecificstag\endcsname \else
- \expandafter\newtoks\csname\askedlanguagespecificstag\endcsname
- \fi
- \csname\askedlanguagespecificstag\endcsname\@EA{\the\csname\askedlanguagespecificstag\endcsname#1}%
- \bgroup
- \setbox\scratchbox\hbox{\enablelanguagespecifics[#2]}%
- \ifdim\wd\scratchbox>\zeropoint
- \showmessage\m!linguals7{\currentencoding-#2,\the\wd\scratchbox\space}\wait
- \else
- \showmessage\m!linguals8{\currentencoding-#2}%
- \fi
- \egroup
- \doif{#2}\currentmainlanguage{\enablelanguagespecifics[#2]}}
-
-\def\forgetlanguagespecifics[#1]%
- {\csname\languagespectag{#1}\endcsname\emptytoks}
-
-%D Enabling them is rather straightforward. We only have to
-%D define \type{\do} in such a way that \type{{ }} is removed
-%D and the language key is gobbled.
-
-% \def\enablelanguagespecifics[#1]%
-% {\the\executeifdefined{\??la
-% \@EA\ifx\csname\??la#1\c!default\endcsname\relax
-% \languageencoding
-% \else
-% \csname\??la#1\c!default\endcsname
-% \fi
-% \??la}\emptytoks
-% \the\executeifdefined{\??la#1\??la}\emptytoks
-% \the\executeifdefined{\??la\languageencoding#1\??la}\emptytoks} % dup ?
-
-\def\enablelanguagespecifics[#1]%
- {\edef\askedlanguagespecificslanguage{\defaultlanguage{#1}}%
- \ifcsname\??la\askedlanguagespecificslanguage\??la\endcsname
- \the\csname\??la\askedlanguagespecificslanguage\??la\endcsname
- \fi
- \ifx\languageencoding\empty\else
- \ifcsname\??la\languageencoding\askedlanguagespecificslanguage\??la\endcsname
- \the\csname\??la\languageencoding\askedlanguagespecificslanguage\??la\endcsname
- \fi
- \fi}
-
-%D \macros
-%D {deactivatelanguagespecific}
-%D
-%D The next code makes it possible to disable the specifics.
-
-% \def\deactivatelanguagespecific#1%
-% {\ifundefined{l g s \string#1}%
-% \letgvalueempty{l g s \string#1}% signal to prevent dup def
-% \bgroup
-% \catcode`#1=\@@active
-% \uccode`~=`#1
-% \uppercase{\doglobal\appendtoks\dodeactivatetoken{~}\to\everyresetlanguagespecifics}%
-% \egroup
-% \expanded{\doglobal\noexpand\appendtoks{#1}{\the\catcode`#1}}\to\everyresetlanguagespecifics
-% \fi}
-
-% \def\dodeactivatetoken#1#2#3% test needed to avoid clash with \unprotect
-% {\def#1{#2}\ifnum\catcode`#2=\@@active\catcode`#2=#3\relax\fi}
-
-%D We cannot hook this into the installer since language
-%D specifics can be anything. So far, we have the following
-%D potentially active characters.
-
-%D Beware, this should happen under an unprotected regime;
-%D thanks to Giuseppe Oblomov Bilotta, who first noticed
-%D that something was wrong.
-
-\protect
-
-% \deactivatelanguagespecific "
-% \deactivatelanguagespecific /
-% \deactivatelanguagespecific :
-% \deactivatelanguagespecific ;
-% \deactivatelanguagespecific ?
-% \deactivatelanguagespecific !
-
-\unprotect
-
-% yes or no (taco wins: no)
-
-% \startlanguagespecifics[nl,cs,sk,fr]
-% \lccode`\'=`\'
-% \stoplanguagespecifics
-
-%D \macros
-%D {ordinaldaynumber, highordinalstr, ordinalstr}
-%D
-%D Efficient general ordinal number converters are sometimes
-%D difficult to implement. Fortunately dates never exceed the
-%D number~31.
-
-\ifx\high \undefined \let\high \firstofoneargument \fi % todo
-\ifx\notsmallcapped\undefined \let\notsmallcapped\firstofoneargument \fi % todo
-
-\def\highordinalstr#1{\high{\notsmallcapped{#1}}}
-\def\ordinalstr #1{\notsmallcapped{#1}}
-
-\def\ordinaldaynumber#1% \strippedcsname\ordinaldaynumber
- {\expanded{\executeifdefined{\currentlanguage ordinaldaynumber}%
- \noexpand\firstofoneargument{\number#1}}}
-
-%D Language specific converters have definitions like:
-%D
-%D \starttyping
-%D \def\enordinaldaynumber#1{...}
-%D \stoptyping
-%D
-%D Examples can be found in the other \type {lang} modules.
-
-% \ifprocessingXML is a nasty dependency
-
-\appendtoks
- \ifprocessingXML \else \resetlanguagespecifics \fi
-\to \everylanguage
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-ura.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-ura.mkii
deleted file mode 100644
index 21bc8d94a74..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-ura.mkii
+++ /dev/null
@@ -1,158 +0,0 @@
-%D \module
-%D [ file=lang-sla,
-%D version=1997.09.03,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Uralic Languages,
-%D author=Hans Hagen / Tobias Burnus,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% Todo: replace \'.. by \namedglyph
-
-\writestatus{loading}{ConTeXt Language Macros / Uralic Languages}
-
-%D The framework of this module is set up by Hans Hagen while
-%D many of the first translations were done by Tobias. Later
-%D on, corrections were made by users. If you have suggestions,
-%D or feel that your name missing here, don't hesitate to send
-%D us an email.
-%D
-%D \starttabulate[|lB|l|]
-%D \NC Finnish \NC \NC \NR
-%D \NC Hungarian \NC Balazs Nagy \NC \NR
-%D \stoptabulate
-
-% Cheremiss, Estonian, Finnish, Karelian, Laap, Mordvinian,
-% Permian tongues, Hungarian, Ostyak, Vogul, Samoyed
-
-\unprotect
-
-\installlanguage
- [\s!fi]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\upperleftsinglesixquote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\upperleftdoublesixquote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!year,\ ,\v!month,\ ,\v!day}]
-
-\installlanguage
- [\s!hu]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\lowerleftsingleninequote,
- \c!rightquote=\upperrightsingleninequote,
- \c!leftquotation=\lowerleftdoubleninequote,
- \c!rightquotation=\upperrightdoubleninequote,
- \c!date={\v!year,.,\ ,\v!month,\ ,\v!day,.},
- \s!mapping=ec,
- \s!encoding=ec]
-
-\installlanguage [finish] [\s!fi]
-\installlanguage [hungarian] [\s!hu]
-
-\setupheadtext [\s!fi] [\v!content=Sis\"allys]
-\setupheadtext [\s!fi] [\v!tables=Taulukkoj]
-\setupheadtext [\s!fi] [\v!figures=Kuvi]
-\setupheadtext [\s!fi] [\v!graphics=Grafiikkaoi]
-\setupheadtext [\s!fi] [\v!intermezzi=Intermezzos]
-\setupheadtext [\s!fi] [\v!index=Indeksiluku]
-\setupheadtext [\s!fi] [\v!abbreviations=Lyhennyksi]
-\setupheadtext [\s!fi] [\v!logos=Vertauskuva]
-\setupheadtext [\s!fi] [\v!units=Yksik\"ot]
-
-\setupheadtext [\s!hu] [\v!content=Tartalom]
-\setupheadtext [\s!hu] [\v!tables=T\'abl\'azatok]
-\setupheadtext [\s!hu] [\v!figures=\'Abr\'ak]
-\setupheadtext [\s!hu] [\v!graphics=Grafik\'ak]
-\setupheadtext [\s!hu] [\v!intermezzi=Intermezzok]
-\setupheadtext [\s!hu] [\v!index=Index]
-\setupheadtext [\s!hu] [\v!abbreviations=R\"ovid\'it\'esek]
-\setupheadtext [\s!hu] [\v!logos=Fejl\'ecek]
-\setupheadtext [\s!hu] [\v!units=M\'ert\'ekegys\'egek]
-
-\setuplabeltext [\s!fi] [\v!table=Taulukko ]
-\setuplabeltext [\s!fi] [\v!figure=Kuva ]
-\setuplabeltext [\s!fi] [\v!intermezzo=Intermezzo ]
-\setuplabeltext [\s!fi] [\v!graphic=Grafiikka ]
-\setuplabeltext [\s!fi] [\v!chapter=]
-\setuplabeltext [\s!fi] [\v!section=]
-\setuplabeltext [\s!fi] [\v!subsection=]
-\setuplabeltext [\s!fi] [\v!subsubsection=]
-\setuplabeltext [\s!fi] [\v!subsubsubsection=]
-\setuplabeltext [\s!fi] [\v!appendix=]
-\setuplabeltext [\s!fi] [\v!part=Osa ]
-\setuplabeltext [\s!fi] [\v!line=rivi ]
-\setuplabeltext [\s!fi] [\v!lines=rivie ]
-
-\setuplabeltext [\s!hu] [\v!table={,.~t\'abl\'azat:}]
-\setuplabeltext [\s!hu] [\v!figure={,.~\'abra:}]
-\setuplabeltext [\s!hu] [\v!intermezzo={,.~intermezzo:}]
-\setuplabeltext [\s!hu] [\v!graphic={,.~k\'ep:}]
-\setuplabeltext [\s!hu] [\v!chapter={,.~fejezet:}]
-\setuplabeltext [\s!hu] [\v!section={,.}]
-\setuplabeltext [\s!hu] [\v!subsection={,.}]
-\setuplabeltext [\s!hu] [\v!subsubsection={,.}]
-\setuplabeltext [\s!hu] [\v!subsubsubsection={,.}]
-\setuplabeltext [\s!hu] [\v!appendix=]
-\setuplabeltext [\s!hu] [\v!part={,.~r\'esz:}]
-\setuplabeltext [\s!hu] [\v!line={,.~sor:}]
-\setuplabeltext [\s!hu] [\v!lines=sorok]
-
-\setuplabeltext [\s!fi] [\v!january=tammikuu]
-\setuplabeltext [\s!fi] [\v!february=helmikuu]
-\setuplabeltext [\s!fi] [\v!march=maaliskuu]
-\setuplabeltext [\s!fi] [\v!april=huhtikuu]
-\setuplabeltext [\s!fi] [\v!may=toukokuu]
-\setuplabeltext [\s!fi] [\v!june=kes\"akuu]
-\setuplabeltext [\s!fi] [\v!july=hein\"akuu]
-\setuplabeltext [\s!fi] [\v!august=elokuu]
-\setuplabeltext [\s!fi] [\v!september=syyskuu]
-\setuplabeltext [\s!fi] [\v!october=lokakuu]
-\setuplabeltext [\s!fi] [\v!november=marraskuu]
-\setuplabeltext [\s!fi] [\v!december=joulukuu]
-
-\setuplabeltext [\s!hu] [\v!january=janu\'ar]
-\setuplabeltext [\s!hu] [\v!february=febru\'ar]
-\setuplabeltext [\s!hu] [\v!march=m\'arcius]
-\setuplabeltext [\s!hu] [\v!april=\'aprilis]
-\setuplabeltext [\s!hu] [\v!may=m\'ajus]
-\setuplabeltext [\s!hu] [\v!june=j\'unius]
-\setuplabeltext [\s!hu] [\v!july=j\'ulius]
-\setuplabeltext [\s!hu] [\v!august=augusztus]
-\setuplabeltext [\s!hu] [\v!september=szeptember]
-\setuplabeltext [\s!hu] [\v!october=okt\'ober]
-\setuplabeltext [\s!hu] [\v!november=november]
-\setuplabeltext [\s!hu] [\v!december=december]
-
-\setuplabeltext [\s!fi] [\v!sunday=sunnuntai]
-\setuplabeltext [\s!fi] [\v!monday=maanantai]
-\setuplabeltext [\s!fi] [\v!tuesday=tiistai]
-\setuplabeltext [\s!fi] [\v!wednesday=keskiviikko]
-\setuplabeltext [\s!fi] [\v!thursday=torstai]
-\setuplabeltext [\s!fi] [\v!friday=perjantai]
-\setuplabeltext [\s!fi] [\v!saturday=lauantai]
-
-\setuplabeltext [\s!hu] [\v!sunday=vas\'arnap]
-\setuplabeltext [\s!hu] [\v!monday=h\'etf\H{o}]
-\setuplabeltext [\s!hu] [\v!tuesday=kedd]
-\setuplabeltext [\s!hu] [\v!wednesday=szerda]
-\setuplabeltext [\s!hu] [\v!thursday=cs\"ut\"ort\"ok]
-\setuplabeltext [\s!hu] [\v!friday=p\'entek]
-\setuplabeltext [\s!hu] [\v!saturday=szombat]
-
-%D \ShowAllLanguageValues [\s!fi] [finnish] {Finnish} {phone}
-%D \ShowAllLanguageValues [\s!hu] [hungarian] {Hungarian} {rhapsody}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-url.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-url.mkii
deleted file mode 100644
index 1f340ffb0e4..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-url.mkii
+++ /dev/null
@@ -1,306 +0,0 @@
-%D \module
-%D [ file=lang-url,
-%D version=2008.01.22, % used to be lang-mis
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Language Options,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-%D This is rather old code. The following solution was used
-%D for a long time and is kind of built-up over the years.
-
-\ifx\\\undefined \let\\\crlf \fi
-
-%D \macros
-%D {hyphenatedurl}
-%D
-%D For those who want to put full \URL's in a text, we offer
-%D
-%D \startbuffer
-%D \hyphenatedurl{http://optimist.optimist/optimist/optimist.optimist#optimist}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D which breaks at the appropriate places. Watch the \type{#}
-%D hack.
-%D
-%D When passed as argument, like in \type {\goto}, one needs
-%D to substitute a \type {\\} for each \type{#}.
-%D
-%D \startbuffer
-%D \hyphenatedurl{http://this.is.a.rather/strange/reference#indeed}
-%D \stopbuffer
-%D
-%D \typebuffer
-
-\ifx\urlsplitmode\undefined \chardef\urlsplitmode\plusone \fi
-
-% 0 => don't split
-% 1 => . : na, rest voor
-% 2 => alles na
-% 3 => alles voor
-
-% \bgroup \catcode`\~=\active \catcode`\/=\active
-%
-% \unexpanded\gdef\hyphenatedurl#1% {}{} handles accents
-% {\bgroup
-% \ifnum\hyphenpenalty<10000 \else
-% \def\discretionary##1##2##3{##1\allowbreak##2}%
-% \fi
-% \obeyhyphens
-% \def\splitbefore##1%
-% {\setbox\scratchbox=\hbox{##1{}{}}%
-% \ifcase\urlsplitmode
-% \box\scratchbox
-% \or
-% \postwordbreak\box\scratchbox\prewordbreak
-% \or
-% \prewordbreak\discretionary{\box\scratchbox}{}{\box\scratchbox}\prewordbreak
-% \else
-% \postwordbreak\box\scratchbox\prewordbreak
-% \fi}%
-% \def\splitafter##1%
-% {\ifcase\urlsplitmode
-% ##1{}{}%
-% \or
-% \prewordbreak\discretionary{##1{}{}}{}{##1{}{}}\prewordbreak
-% \or
-% \prewordbreak\discretionary{##1{}{}}{}{##1{}{}}\prewordbreak
-% \else
-% \prewordbreak\discretionary{}{##1{}{}}{##1{}{}}\prewordbreak
-% \fi}%
-% \def\splitanyway##1%
-% {\prewordbreak##1\prewordbreak}%
-% \def\flushurl%
-% {\savedurl\let\savedurl\empty}%
-% \def\\%
-% {\spliturl\#}%
-% \let\~=\lettertilde\let~=\~%
-% \let\/=\letterslash\let/=\/%
-% \let\savedurl\empty
-% \scratchcounter\zerocount % used for hyphenmethod
-% \handletokens#1\with\scanurl\savedurl
-% \egroup}
-%
-% \egroup
-
-% \chardef\urlhyphenmethod=0
-
-% \def\scanurl#1%
-% {\advance\scratchcounter\plusone
-% \ifx#1\blankspace
-% \flushurl\splitanyway\normalspace
-% \else\ifx#1\ %
-% \flushurl\splitanyway\normalspace
-% \else\ifx#1\space
-% \flushurl\splitanyway\normalspace
-% \else\ifx#1\~%
-% \flushurl\splitbefore\~%
-% \else\ifx#1\#%
-% \flushurl\splitbefore\#%
-% \else\ifx#1\&%
-% \flushurl\splitbefore\&%
-% \else\ifx#1\%%
-% \flushurl\splitbefore\%%
-% \else\ifx#1\_%
-% \flushurl\splitbefore\_%
-% \else\if\noexpand#1\relax
-% #1%
-% \else\ifnum\catcode`#1=8
-% \flushurl\splitbefore\_%
-% \else\ifnum\catcode`#1=6
-% \flushurl\splitbefore\#%
-% \else\ifnum\catcode`#1=4
-% \flushurl\splitbefore\&%
-% \else\expandafter\if\string#1\lettertilde
-% \flushurl\splitbefore\~%
-% \else\expandafter\if\string#1\letterpercent
-% \flushurl\splitbefore\%%
-% \else\expandafter\if\string#1\letterunderscore
-% \flushurl\splitbefore\_%
-% \else\expandafter\if\string#1\letterquestionmark
-% \flushurl\splitafter\letterquestionmark
-% \else\expandafter\if\string#1\letterat
-% \flushurl\splitafter\letterat
-% \else\expandafter\if\string#1\letterslash
-% \edef\savedurl{\savedurl\letterslash}%
-% \else\expandafter\if\string#1+%
-% \flushurl\splitafter+%
-% \else\expandafter\if\string#1:%
-% \flushurl\splitafter:%
-% \else\expandafter\if\string#1.%
-% \flushurl\splitafter.%
-% \else\expandafter\if\string#1(%
-% \flushurl\splitbefore(%
-% \else\expandafter\if\string#1)%
-% \flushurl\splitafter)%
-% \else
-% \ifx\savedurl\empty\else
-% \splitbefore\savedurl
-% \let\savedurl\empty
-% \fi
-% \ifcase\urlhyphenmethod
-% \string#1%
-% \else
-% \ifnum\scratchcounter>\plusthree % so, \http: will not break
-% \edef\savedurl{\string#1}%
-% \else
-% \string#1%
-% \fi
-% \fi
-% \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
-
-%D The following approach takes more resources but is cleaner (after all, we now
-%D have huge \TEX's. It's is basically a \TEX\ version of the \MKIV\ variant.
-
-\newtoks\everyhyphenatedurl
-
-\appendtoks
- \let\&\letterampersand
- \let\#\letterhash
- \let\~\lettertilde
- \let\\\letterbackslash
- \let\$\letterdollar
- \let\^\letterhat
- \let\_\letterunderscore
- \let\{\letterleftbrace
- \let\}\letterrightbrace
- \let\|\letterbar
- \let~=\lettertilde
- \let|=\letterbar
-\to \everyhyphenatedurl
-
-\def\hyphenatedurlseparator{} % \periodcentered
-
-\def\dohyphenatedurlnormal#1{\char#1\relax}%
-\def\dohyphenatedurlafter #1{\char#1\discretionary{}{\hyphenatedurlseparator}{}}%
-\def\dohyphenatedurlbefore#1{\discretionary{\hyphenatedurlseparator}{}{}\char#1\relax}%
-
-% 0=normal 1=before 2=after
-
-\def\sethyphenatedurlnormal#1{\expandafter\chardef\csname url @ #1\endcsname\zerocount}
-\def\sethyphenatedurlbefore#1{\expandafter\chardef\csname url @ #1\endcsname\plusone }
-\def\sethyphenatedurlafter #1{\expandafter\chardef\csname url @ #1\endcsname\plustwo }
-
-\sethyphenatedurlbefore !
-\sethyphenatedurlbefore "
-\sethyphenatedurlbefore \letterhash
-\sethyphenatedurlbefore \letterdollar
-\sethyphenatedurlbefore \letterpercent
-\sethyphenatedurlbefore \letterampersand
-\sethyphenatedurlbefore (
-\sethyphenatedurlbefore *
-\sethyphenatedurlbefore +
-\sethyphenatedurlbefore ,
-\sethyphenatedurlbefore -
-\sethyphenatedurlbefore .
-\sethyphenatedurlbefore /
-\sethyphenatedurlbefore :
-\sethyphenatedurlbefore ;
-\sethyphenatedurlbefore <
-\sethyphenatedurlbefore =
-\sethyphenatedurlbefore >
-\sethyphenatedurlbefore ?
-\sethyphenatedurlbefore @
-\sethyphenatedurlbefore [
-\sethyphenatedurlbefore \letterbackslash
-\sethyphenatedurlbefore ^
-\sethyphenatedurlbefore _
-\sethyphenatedurlbefore `
-\sethyphenatedurlbefore \letteropenbrace
-\sethyphenatedurlbefore \letterbar
-\sethyphenatedurlbefore \lettertilde
-
-\sethyphenatedurlafter '
-\sethyphenatedurlafter )
-\sethyphenatedurlafter ]
-\sethyphenatedurlafter \letterclosebrace
-
-\unexpanded \def\hyphenatedurl#1%
- {\dontleavehmode
- \begingroup
- \the\everyhyphenatedurl
- \edef\ascii{#1}%
- \expanded{\handletokens{\detokenize\expandafter{\ascii}}}\with\dohyphenatedurl
- \endgroup}
-
-\def\dohyphenatedurl#1%
- {\ifcase\executeifdefined{url @ #1}\zerocount\relax
- \expandafter\dohyphenatedurlnormal
- \or
- \expandafter\dohyphenatedurlbefore
- \or
- \expandafter\dohyphenatedurlafter
- \fi{\number`#1}}
-
-% maybe ... to be finished
-%
-% \def\hyphenatedstring#1%
-% {\bgroup
-% \nohyphens
-% \def\next##1{##1\doif{##1}{-}{\allowbreak}}%
-% \handletokens#1\with\next
-% \egroup}
-%
-% {\hsize1cm\hyphenatedstring{ABXXXXXXXXXXC-12345-12345}}
-
-%D \macros
-%D {hyphenatedfilename}
-%D
-%D For the moment we treat filenames in a similar way,
-%D
-%D \starttyping
-%D \hyphenatedfilename{here/there/filename.suffix}
-%D \stoptyping
-
-\ifx\hyphenatedfilename\undefined \let\hyphenatedfilename\hyphenatedurl \fi
-
-% \def\test#1%
-% {\dontleavehmode
-% \begingroup
-% \tttf
-% \hyphenatedurl {%
-% \letterampersand #1\letterampersand #1\letterampersand #1\letterampersand #1\letterampersand
-% \letterhash #1\letterhash #1\letterpercent #1\letterslash #1\letterampersand
-% }%
-% \endgroup}
-
-% \dorecurse{100}{\test{a} \test{ab} \test{abc} \test{abcd} \test{abcde} \test{abcdef}}
-
-\protect \endinput
-
-% \bgroup
-
-% \gdef\lettercolon{:}
-
-% \catcode`\:=\active
-% \catcode`\^=\active
-% \catcode`\/=\active
-% \catcode`\~=\active
-
-% \gdef\theurlcolon {\nobreak\hbox{\lettercolon}\allowbreak}
-% \gdef\theurlslash#1{\nobreak\hbox{\letterslash}\ifx#1\relax\else\ifnum`/=\expandafter`\string#1\else\allowbreak\fi#1\fi}
-% \gdef\theurlhat {\allowbreak\hbox{\letterhat}\nobreak}
-% \gdef\theurltilde {\allowbreak\hbox{\lettertilde}\nobreak}
-
-% \gdef\ForMojcaWhoLikesHacks#1%
-% {\dontleavehmode
-% \begingroup
-% \mathcode`\:="8000 \let:\theurlcolon
-% \mathcode`\^="8000 \let^\theurlhat
-% \mathcode`\/="8000 \let/\theurlslash
-% \mathcode`\~="8000 \let~\theurltilde
-% \everymath\emptytoks
-% \mathsurround\zeropoint$\tf#1\relax$%
-% \endgroup}
-% \egroup
-
-% \hsize 1mm \ForMojcaWhoLikesHacks{http://www.sil.org//silesr/}
diff --git a/Master/texmf-dist/tex/context/base/mkii/lang-vn.mkii b/Master/texmf-dist/tex/context/base/mkii/lang-vn.mkii
deleted file mode 100644
index e564d989c70..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/lang-vn.mkii
+++ /dev/null
@@ -1,92 +0,0 @@
-%D \module
-%D [ file=lang-vn,
-%D version=2004.11.22, % 1999.12.12,
-%D title=\CONTEXT\ Language Macros,
-%D subtitle=Vietnamese,
-%D author={Han The Thanh \& Adam Lindsay \& Hans Hagen},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Language Macros / Vietnamese Language}
-
-%D The framework of this module is set up by Hans Hagen while
-%D many of the first translations were done by Tobias. Later
-%D on, corrections were made by users. If you have suggestions,
-%D or feel that your name missing here, don't hesitate to send
-%D us an email.
-%D
-%D \starttabulate[|lB|l|]
-%D \NC Vietnamese \NC \THANH\ \NC \NR
-%D \stoptabulate
-
-\unprotect
-
-\installlanguage
- [\s!vi]
- [\c!spacing=\v!packed,
- \c!leftsentence=---,
- \c!rightsentence=---,
- \c!leftsubsentence=---,
- \c!rightsubsentence=---,
- \c!leftquote=\quoteleft,
- \c!rightquote=\quoteright,
- \c!leftquotation=\quotedblleft,
- \c!rightquotation=\quotedblright,
- \c!date={{ },dd,{/},mm,{/},yy},
- \s!mapping=t5,
- \s!encoding=t5]
-
-\installlanguage [vietnamese] [\s!vi]
-
-\setupheadtext [\s!vi] [\v!content=M\udotbelow c l\udotbelow c]
-\setupheadtext [\s!vi] [\v!tables=Danh s\aacute ch b\ahook ng]
-\setupheadtext [\s!vi] [\v!figures=Danh s\aacute ch h\igrave nh v\etilde]
-\setupheadtext [\s!vi] [\v!graphics=\Dstroke\ocircumflexgrave\ th\idotbelow]
-\setupheadtext [\s!vi] [\v!intermezzi=Intermezzos]
-\setupheadtext [\s!vi] [\v!index=Ch\ihook\ s\ocircumflexacute]
-\setupheadtext [\s!vi] [\v!abbreviations=Ch\uhorntilde\ vi\ecircumflexacute t t\abreveacute t]
-\setupheadtext [\s!vi] [\v!logos=Bi\ecircumflexhook u t\uhorn \ohorndotbelow ng]
-\setupheadtext [\s!vi] [\v!units=\Dstroke\ohorn n v\idotbelow]
-
-\setuplabeltext [\s!vi] [\v!table=B\ahook ng ]
-\setuplabeltext [\s!vi] [\v!figure=H\igrave nh ]
-\setuplabeltext [\s!vi] [\v!intermezzo=intermezzo]
-\setuplabeltext [\s!vi] [\v!graphic=\Dstroke\ocircumflexgrave\ th\idotbelow]
-\setuplabeltext [\s!vi] [\v!chapter=Ch\uhorn \ohorn ng ]
-\setuplabeltext [\s!vi] [\v!section=] % not set
-\setuplabeltext [\s!vi] [\v!subsection=] % not set
-\setuplabeltext [\s!vi] [\v!subsubsection=] % not set
-\setuplabeltext [\s!vi] [\v!subsubsubsection=] % not set
-\setuplabeltext [\s!vi] [\v!appendix=] % not set
-\setuplabeltext [\s!vi] [\v!part=Ph\acircumflexgrave n ]
-\setuplabeltext [\s!vi] [\v!line=d\ograve ng ]
-\setuplabeltext [\s!vi] [\v!lines=d\ograve ng ]
-
-\setuplabeltext [\s!vi] [\v!sunday=ch\uhook\ nh\acircumflexdotbelow t]
-\setuplabeltext [\s!vi] [\v!monday=th\uhornacute\ hai]
-\setuplabeltext [\s!vi] [\v!tuesday=th\uhornacute\ ba]
-\setuplabeltext [\s!vi] [\v!wednesday=th\uhornacute\ t\uhorn]
-\setuplabeltext [\s!vi] [\v!thursday=th\uhornacute\ n\abreve m]
-\setuplabeltext [\s!vi] [\v!friday=th\uhornacute\ s\aacute u]
-\setuplabeltext [\s!vi] [\v!saturday=th\uhornacute\ b\ahook y]
-
-\setuplabeltext [\s!vi] [\v!january=th\aacute ng gi\ecircumflex ng]
-\setuplabeltext [\s!vi] [\v!february=th\aacute ng hai]
-\setuplabeltext [\s!vi] [\v!march=th\aacute ng ba]
-\setuplabeltext [\s!vi] [\v!april=th\aacute ng t\uhorn]
-\setuplabeltext [\s!vi] [\v!may=th\aacute ng n\abreve m]
-\setuplabeltext [\s!vi] [\v!june=th\aacute ng s\aacute u]
-\setuplabeltext [\s!vi] [\v!july=th\aacute ng b\ahook y]
-\setuplabeltext [\s!vi] [\v!august=th\aacute ng t\aacute m]
-\setuplabeltext [\s!vi] [\v!september=th\aacute ng ch\iacute n]
-\setuplabeltext [\s!vi] [\v!october=th\aacute ng m\uhorn\ohorngrave i]
-\setuplabeltext [\s!vi] [\v!november=th\aacute ng m\uhorn\ohorngrave i m\ocircumflexdotbelow t]
-\setuplabeltext [\s!vi] [\v!december=th\aacute ng m\uhorn\ohorngrave i hai]
-
-%D \ShowAllLanguageValues [\s!vi] [vietnamese] {Vietnamese} {water||puppets}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/math-ams.mkii b/Master/texmf-dist/tex/context/base/mkii/math-ams.mkii
deleted file mode 100644
index c73a890c02f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/math-ams.mkii
+++ /dev/null
@@ -1,336 +0,0 @@
-%D \module
-%D [ file=math-ams,
-%D version=2001.04.12,
-%D title=\CONTEXT\ Math Macros,
-%D subtitle=AMS Specials,
-%D author={Hans Hagen \& Taco Hoekwater},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-% maybe we should just include these into the default tex one
-
-\definefamilysynonym [default] [blackboard] [mb]
-
-\startmathcollection [default]
-
-\definemathsymbol [varGamma] [ord] [letters] ["00]
-\definemathsymbol [varDelta] [ord] [letters] ["01]
-\definemathsymbol [varTheta] [ord] [letters] ["02]
-\definemathsymbol [varLambda] [ord] [letters] ["03]
-\definemathsymbol [varXi] [ord] [letters] ["04]
-\definemathsymbol [varPi] [ord] [letters] ["05]
-\definemathsymbol [varSigma] [ord] [letters] ["06]
-\definemathsymbol [varUpsilon] [ord] [letters] ["07]
-\definemathsymbol [varPhi] [ord] [letters] ["08]
-\definemathsymbol [varPsi] [ord] [letters] ["09]
-\definemathsymbol [varOmega] [ord] [letters] ["0A]
-
-\stopmathcollection
-
-\startmathcollection[default]
-
-\definemathsymbol [internalAnd] [rel] [operators] ["26]
-
-\stopmathcollection
-
-\startmathcollection [default]
-
-\definemathsymbol [boxdot] [bin] [ma] ["00]
-\definemathsymbol [boxplus] [bin] [ma] ["01]
-\definemathsymbol [boxtimes] [bin] [ma] ["02]
-\definemathsymbol [square] [ord] [ma] ["03]
-\definemathsymbol [Box] [ord] [ma] ["03] % square
-\definemathsymbol [blacksquare] [ord] [ma] ["04]
-\definemathsymbol [centerdot] [bin] [ma] ["05]
-\definemathsymbol [Diamond] [ord] [ma] ["06]
-\definemathsymbol [lozenge] [ord] [ma] ["06] % Diamond
-\definemathsymbol [blacklozenge] [ord] [ma] ["07]
-\definemathsymbol [circlearrowright] [rel] [ma] ["08]
-\definemathsymbol [circlearrowleft] [rel] [ma] ["09]
-\definemathsymbol [rightleftharpoons] [rel] [ma] ["0A]
-\definemathsymbol [leftrightharpoons] [rel] [ma] ["0B]
-\definemathsymbol [boxminus] [bin] [ma] ["0C]
-\definemathsymbol [Vdash] [rel] [ma] ["0D]
-\definemathsymbol [Vvdash] [rel] [ma] ["0E]
-\definemathsymbol [vDash] [rel] [ma] ["0F]
-\definemathsymbol [twoheadrightarrow] [rel] [ma] ["10]
-\definemathsymbol [twoheadleftarrow] [rel] [ma] ["11]
-\definemathsymbol [leftleftarrows] [rel] [ma] ["12]
-\definemathsymbol [rightrightarrows] [rel] [ma] ["13]
-\definemathsymbol [upuparrows] [rel] [ma] ["14]
-\definemathsymbol [downdownarrows] [rel] [ma] ["15]
-\definemathsymbol [upharpoonright] [rel] [ma] ["16]
-\definemathsymbol [restriction] [rel] [ma] ["16]
-\definemathsymbol [downharpoonright] [rel] [ma] ["17]
-\definemathsymbol [upharpoonleft] [rel] [ma] ["18]
-\definemathsymbol [downharpoonleft] [rel] [ma] ["19]
-\definemathsymbol [rightarrowtail] [rel] [ma] ["1A]
-\definemathsymbol [leftarrowtail] [rel] [ma] ["1B]
-\definemathsymbol [leftrightarrows] [rel] [ma] ["1C]
-\definemathsymbol [rightleftarrows] [rel] [ma] ["1D]
-\definemathsymbol [Lsh] [rel] [ma] ["1E]
-\definemathsymbol [Rsh] [rel] [ma] ["1F]
-\definemathsymbol [rightsquigarrow] [rel] [ma] ["20]
-\definemathsymbol [leadsto] [rel] [ma] ["20] % rightsquigarrow
-\definemathsymbol [leftrightsquigarrow] [rel] [ma] ["21]
-\definemathsymbol [looparrowleft] [rel] [ma] ["22]
-\definemathsymbol [looparrowright] [rel] [ma] ["23]
-\definemathsymbol [circeq] [rel] [ma] ["24]
-\definemathsymbol [succsim] [rel] [ma] ["25]
-\definemathsymbol [gtrsim] [rel] [ma] ["26]
-\definemathsymbol [gtrapprox] [rel] [ma] ["27]
-\definemathsymbol [multimap] [rel] [ma] ["28]
-\definemathsymbol [therefore] [rel] [ma] ["29]
-\definemathsymbol [because] [rel] [ma] ["2A]
-\definemathsymbol [doteqdot] [rel] [ma] ["2B]
-\definemathsymbol [Doteq] [rel] [ma] ["2B] % doteqdot
-\definemathsymbol [triangleq] [rel] [ma] ["2C]
-\definemathsymbol [precsim] [rel] [ma] ["2D]
-\definemathsymbol [lesssim] [rel] [ma] ["2E]
-\definemathsymbol [lessapprox] [rel] [ma] ["2F]
-\definemathsymbol [eqslantless] [rel] [ma] ["30]
-\definemathsymbol [eqslantgtr] [rel] [ma] ["31]
-\definemathsymbol [curlyeqprec] [rel] [ma] ["32]
-\definemathsymbol [curlyeqsucc] [rel] [ma] ["33]
-\definemathsymbol [preccurlyeq] [rel] [ma] ["34]
-\definemathsymbol [leqq] [rel] [ma] ["35]
-\definemathsymbol [leqslant] [rel] [ma] ["36]
-\definemathsymbol [lessgtr] [rel] [ma] ["37]
-\definemathsymbol [backprime] [ord] [ma] ["38]
-\definemathsymbol [dabar@] [ord] [ma] ["39] % @
-\definemathsymbol [risingdotseq] [rel] [ma] ["3A]
-\definemathsymbol [fallingdotseq] [rel] [ma] ["3B]
-\definemathsymbol [succcurlyeq] [rel] [ma] ["3C]
-\definemathsymbol [geqq] [rel] [ma] ["3D]
-\definemathsymbol [geqslant] [rel] [ma] ["3E]
-\definemathsymbol [gtrless] [rel] [ma] ["3F]
-\definemathsymbol [sqsubset] [rel] [ma] ["40]
-\definemathsymbol [sqsupset] [rel] [ma] ["41]
-\definemathsymbol [vartriangleright] [rel] [ma] ["42]
-\definemathsymbol [rhd] [bin] [ma] ["42]
-\definemathsymbol [lhd] [bin] [ma] ["43]
-\definemathsymbol [vartriangleleft] [rel] [ma] ["43]
-\definemathsymbol [trianglerighteq] [rel] [ma] ["44]
-\definemathsymbol [unrhd] [bin] [ma] ["44] % trianglerighteq
-\definemathsymbol [trianglelefteq] [rel] [ma] ["45]
-\definemathsymbol [unlhd] [bin] [ma] ["45] % trianglelefteq
-\definemathsymbol [bigstar] [ord] [ma] ["46]
-\definemathsymbol [between] [rel] [ma] ["47]
-\definemathsymbol [blacktriangledown] [ord] [ma] ["48]
-\definemathsymbol [blacktriangleright] [rel] [ma] ["49]
-\definemathsymbol [blacktriangleleft] [rel] [ma] ["4A]
-\definemathsymbol [vartriangle] [rel] [ma] ["4D]
-\definemathsymbol [triangleup] [ord] [ma] ["4D] % vartriangle
-\definemathsymbol [blacktriangle] [ord] [ma] ["4E]
-\definemathsymbol [triangledown] [ord] [ma] ["4F]
-\definemathsymbol [eqcirc] [rel] [ma] ["50]
-\definemathsymbol [lesseqgtr] [rel] [ma] ["51]
-\definemathsymbol [gtreqless] [rel] [ma] ["52]
-\definemathsymbol [lesseqqgtr] [rel] [ma] ["53]
-\definemathsymbol [gtreqqless] [rel] [ma] ["54]
-\definemathsymbol [Rrightarrow] [rel] [ma] ["56]
-\definemathsymbol [Lleftarrow] [rel] [ma] ["57]
-\definemathsymbol [veebar] [bin] [ma] ["59]
-\definemathsymbol [barwedge] [bin] [ma] ["5A]
-\definemathsymbol [doublebarwedge] [bin] [ma] ["5B]
-\definemathsymbol [angle] [ord] [ma] ["5C]
-\definemathsymbol [measuredangle] [ord] [ma] ["5D]
-\definemathsymbol [sphericalangle] [ord] [ma] ["5E]
-\definemathsymbol [varpropto] [rel] [ma] ["5F]
-\definemathsymbol [smallsmile] [rel] [ma] ["60]
-\definemathsymbol [smallfrown] [rel] [ma] ["61]
-\definemathsymbol [Subset] [rel] [ma] ["62]
-\definemathsymbol [Supset] [rel] [ma] ["63]
-\definemathsymbol [Cup] [bin] [ma] ["64]
-\definemathsymbol [doublecup] [bin] [ma] ["64] % Cup
-\definemathsymbol [Cap] [bin] [ma] ["65]
-\definemathsymbol [doublecap] [bin] [ma] ["65]
-\definemathsymbol [curlywedge] [bin] [ma] ["66]
-\definemathsymbol [curlyvee] [bin] [ma] ["67]
-\definemathsymbol [leftthreetimes] [bin] [ma] ["68]
-\definemathsymbol [rightthreetimes] [bin] [ma] ["69]
-\definemathsymbol [subseteqq] [rel] [ma] ["6A]
-\definemathsymbol [supseteqq] [rel] [ma] ["6B]
-\definemathsymbol [bumpeq] [rel] [ma] ["6C]
-\definemathsymbol [Bumpeq] [rel] [ma] ["6D]
-\definemathsymbol [llless] [rel] [ma] ["6E]
-\definemathsymbol [lll] [rel] [ma] ["6E] % llless
-\definemathsymbol [gggtr] [rel] [ma] ["6F]
-\definemathsymbol [ggg] [rel] [ma] ["6F] % gggtr
-\definemathsymbol [ulcorner] [open] [ma] ["70] [ma] ["70]
-\definemathsymbol [urcorner] [close] [ma] ["71] [ma] ["71]
-\definemathsymbol [circledS] [ord] [ma] ["73]
-\definemathsymbol [pitchfork] [rel] [ma] ["74]
-\definemathsymbol [dotplus] [bin] [ma] ["75]
-\definemathsymbol [backsim] [rel] [ma] ["76]
-\definemathsymbol [backsimeq] [rel] [ma] ["77]
-\definemathsymbol [llcorner] [open] [ma] ["78] [ma] ["78]
-\definemathsymbol [lrcorner] [close] [ma] ["79] [ma] ["79]
-\definemathsymbol [complement] [ord] [ma] ["7B]
-\definemathsymbol [intercal] [bin] [ma] ["7C]
-\definemathsymbol [circledcirc] [bin] [ma] ["7D]
-\definemathsymbol [circledast] [bin] [ma] ["7E]
-\definemathsymbol [circleddash] [bin] [ma] ["7F]
-
-\stopmathcollection
-
-\startmathcollection [default]
-
-\definemathcommand [integers] {\blackboard{Z}}
-\definemathcommand [reals] {\blackboard{R}}
-\definemathcommand [rationals] {\blackboard{Q}}
-\definemathcommand [naturalnumbers] {\blackboard{N}}
-\definemathcommand [complexes] {\blackboard{C}}
-\definemathcommand [primes] {\blackboard{P}}
-
-\stopmathcollection
-
-\startmathcollection [default]
-
-\definemathsymbol [lvertneqq] [rel] [mb] ["00]
-\definemathsymbol [gvertneqq] [rel] [mb] ["01]
-\definemathsymbol [nleq] [rel] [mb] ["02]
-\definemathsymbol [ngeq] [rel] [mb] ["03]
-\definemathsymbol [nless] [rel] [mb] ["04]
-\definemathsymbol [ngtr] [rel] [mb] ["05]
-\definemathsymbol [nprec] [rel] [mb] ["06]
-\definemathsymbol [nsucc] [rel] [mb] ["07]
-\definemathsymbol [lneqq] [rel] [mb] ["08]
-\definemathsymbol [gneqq] [rel] [mb] ["09]
-\definemathsymbol [nleqslant] [rel] [mb] ["0A]
-\definemathsymbol [ngeqslant] [rel] [mb] ["0B]
-\definemathsymbol [lneq] [rel] [mb] ["0C]
-\definemathsymbol [gneq] [rel] [mb] ["0D]
-\definemathsymbol [npreceq] [rel] [mb] ["0E]
-\definemathsymbol [nsucceq] [rel] [mb] ["0F]
-\definemathsymbol [precnsim] [rel] [mb] ["10]
-\definemathsymbol [succnsim] [rel] [mb] ["11]
-\definemathsymbol [lnsim] [rel] [mb] ["12]
-\definemathsymbol [gnsim] [rel] [mb] ["13]
-\definemathsymbol [nleqq] [rel] [mb] ["14]
-\definemathsymbol [ngeqq] [rel] [mb] ["15]
-\definemathsymbol [precneqq] [rel] [mb] ["16]
-\definemathsymbol [succneqq] [rel] [mb] ["17]
-\definemathsymbol [precnapprox] [rel] [mb] ["18]
-\definemathsymbol [succnapprox] [rel] [mb] ["19]
-\definemathsymbol [lnapprox] [rel] [mb] ["1A]
-\definemathsymbol [gnapprox] [rel] [mb] ["1B]
-\definemathsymbol [nsim] [rel] [mb] ["1C]
-\definemathsymbol [ncong] [rel] [mb] ["1D]
-\definemathsymbol [diagup] [ord] [mb] ["1E]
-\definemathsymbol [diagdown] [ord] [mb] ["1F]
-\definemathsymbol [varsubsetneq] [rel] [mb] ["20]
-\definemathsymbol [varsupsetneq] [rel] [mb] ["21]
-\definemathsymbol [nsubseteqq] [rel] [mb] ["22]
-\definemathsymbol [nsupseteqq] [rel] [mb] ["23]
-\definemathsymbol [subsetneqq] [rel] [mb] ["24]
-\definemathsymbol [supsetneqq] [rel] [mb] ["25]
-\definemathsymbol [varsubsetneqq] [rel] [mb] ["26]
-\definemathsymbol [varsupsetneqq] [rel] [mb] ["27]
-\definemathsymbol [subsetneq] [rel] [mb] ["28]
-\definemathsymbol [supsetneq] [rel] [mb] ["29]
-\definemathsymbol [nsubseteq] [rel] [mb] ["2A]
-\definemathsymbol [nsupseteq] [rel] [mb] ["2B]
-\definemathsymbol [nparallel] [rel] [mb] ["2C]
-\definemathsymbol [nmid] [rel] [mb] ["2D]
-\definemathsymbol [nshortmid] [rel] [mb] ["2E]
-\definemathsymbol [nshortparallel] [rel] [mb] ["2F]
-\definemathsymbol [nvdash] [rel] [mb] ["30]
-\definemathsymbol [nVdash] [rel] [mb] ["31]
-\definemathsymbol [nvDash] [rel] [mb] ["32]
-\definemathsymbol [nVDash] [rel] [mb] ["33]
-\definemathsymbol [ntrianglerighteq] [rel] [mb] ["34]
-\definemathsymbol [ntrianglelefteq] [rel] [mb] ["35]
-\definemathsymbol [ntriangleleft] [rel] [mb] ["36]
-\definemathsymbol [ntriangleright] [rel] [mb] ["37]
-\definemathsymbol [nleftarrow] [rel] [mb] ["38]
-\definemathsymbol [nrightarrow] [rel] [mb] ["39]
-\definemathsymbol [nLeftarrow] [rel] [mb] ["3A]
-\definemathsymbol [nRightarrow] [rel] [mb] ["3B]
-\definemathsymbol [nLeftrightarrow] [rel] [mb] ["3C]
-\definemathsymbol [nleftrightarrow] [rel] [mb] ["3D]
-\definemathsymbol [divideontimes] [bin] [mb] ["3E]
-\definemathsymbol [varnothing] [ord] [mb] ["3F]
-\definemathsymbol [nexists] [ord] [mb] ["40]
-\definemathsymbol [Finv] [ord] [mb] ["60]
-\definemathsymbol [Game] [ord] [mb] ["61]
-\definemathsymbol [mho] [ord] [mb] ["66]
-\definemathsymbol [eth] [ord] [mb] ["67]
-\definemathsymbol [eqsim] [rel] [mb] ["68]
-\definemathsymbol [beth] [ord] [mb] ["69]
-\definemathsymbol [gimel] [ord] [mb] ["6A]
-\definemathsymbol [daleth] [ord] [mb] ["6B]
-\definemathsymbol [lessdot] [bin] [mb] ["6C]
-\definemathsymbol [gtrdot] [bin] [mb] ["6D]
-\definemathsymbol [ltimes] [bin] [mb] ["6E]
-\definemathsymbol [rtimes] [bin] [mb] ["6F]
-\definemathsymbol [shortmid] [rel] [mb] ["70]
-\definemathsymbol [shortparallel] [rel] [mb] ["71]
-\definemathsymbol [smallsetminus] [bin] [mb] ["72]
-\definemathsymbol [thicksim] [rel] [mb] ["73]
-\definemathsymbol [thickapprox] [rel] [mb] ["74]
-\definemathsymbol [approxeq] [rel] [mb] ["75]
-\definemathsymbol [succapprox] [rel] [mb] ["76]
-\definemathsymbol [precapprox] [rel] [mb] ["77]
-\definemathsymbol [curvearrowleft] [rel] [mb] ["78]
-\definemathsymbol [curvearrowright] [rel] [mb] ["79]
-\definemathsymbol [digamma] [ord] [mb] ["7A]
-\definemathsymbol [varkappa] [ord] [mb] ["7B]
-\definemathsymbol [Bbbk] [ord] [mb] ["7C]
-\definemathsymbol [hslash] [ord] [mb] ["7D]
-\definemathsymbol [hbar] [ord] [mb] ["7E]
-\definemathsymbol [backepsilon] [rel] [mb] ["7F]
-
-\stopmathcollection
-
-\startmathcollection [default]
-
-\definemathcommand [yen] [nothing] {\mathhexbox{\hexmafam}55}
-\definemathcommand [checkmark] [nothing] {\mathhexbox{\hexmafam}58}
-\definemathcommand [circledR] [nothing] {\mathhexbox{\hexmafam}72}
-\definemathcommand [maltese] [nothing] {\mathhexbox{\hexmafam}7A}
-
-\stopmathcollection
-
-\startmathcollection [default]
-
-\definemathcommand [dashrightarrow] [rel] {\dabar@\dabar@ \mathchar"0C4B}
-\definemathcommand [dashleftarrow] [rel] {\mathchar"0C4C\dabar@ \dabar@}
-\definemathcommand [dasharrow] [rel] {\dabar@\dabar@ \mathchar"0C4B}
-\definemathcommand [Join] [rel] {\mathchar"0D6F\mkern-13.8mu\mathchar"0D6E}
-\definemathcommand [implies] [rel] {\;\Longrightarrow\;}
-\definemathcommand [impliedby] [rel] {\;\Longleftarrow\;}
-\definemathcommand [And] [rel] {\;\internalAnd\;}
-
-\stopmathcollection
-
-\def\AMSwidehat#1%
- {\setbox\scratchbox\hbox{$\mathsurround\zeropoint#1$}%
- \ifdim\wd\scratchbox>2em
- \mathaccent"0\purefamilyhex{mb}5B{#1}%
- \else
- \mathaccent"0\purefamilyhex{ex}62{#1}%
- \fi}
-
-\def\AMSwidetilde#1%
- {\setbox\scratchbox\hbox{$\mathsurround\zeropoint#1$}%
- \ifdim\wd\scratchbox>2em
- \mathaccent"0\purefamilyhex{mb}5D{#1}%
- \else
- \mathaccent"0\purefamilyhex{ex}65{#1}%
- \fi}
-
-\startmathcollection [default]
-
-\definemathcommand [widehat] {\AMSwidehat}
-\definemathcommand [widetilde] {\AMSwidetilde}
-
-\stopmathcollection
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/math-arr.mkii b/Master/texmf-dist/tex/context/base/mkii/math-arr.mkii
deleted file mode 100644
index 71a833b8974..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/math-arr.mkii
+++ /dev/null
@@ -1,391 +0,0 @@
-%D \module
-%D [ file=math-ext,
-%D version=2007.07.19,
-%D title=\CONTEXT\ Math Macros,
-%D subtitle=Arrows,
-%D author={Hans Hagen \& Taco Hoekwater \& Aditya Mahajan},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Math Macros / Arrows}
-
-\unprotect
-
-%D These will be generalized! Is it still needed in \MKIV?
-
-%D We next define extensible arrows. Extensible arrows are arrows that
-%D change their length according to the width of the text to be placed
-%D above and below the arrow. Since we need to define a lot of arrows,
-%D we first define some helper macros. The basic idea is to measure
-%D the width of the box to be placed above and below the arrow, and
-%D make the \quotation{body} of the arrow as long as the bigger of the
-%D two widths.
-
-\def\mtharrfactor{1}
-\def\mtharrextra {0}
-
-\def\domthxarr#1#2#3#4#5% hm, looks like we do a double mathrel
- {\begingroup
- \def\mtharrfactor{1}%
- \def\mtharrextra {0}%
- \processaction[#1] % will be sped up
- [ \v!none=>\def\mtharrfactor{0},
- \v!small=>\def\mtharrextra{10},
- \v!medium=>\def\mtharrextra{15},
- \v!big=>\def\mtharrextra{20},
- \v!normal=>,
- \v!default=>,
- \v!unknown=>\doifnumberelse{#1}{\def\mtharrextra{#1}}\donothing]%
- \mathsurround\zeropoint
- \muskip0=\thirdoffourarguments #2mu
- \muskip2=\fourthoffourarguments #2mu
- \muskip4=\firstoffourarguments #2mu
- \muskip6=\secondoffourarguments #2mu
- \muskip0=\mtharrfactor\muskip0 \advance\muskip0 \mtharrextra mu
- \muskip2=\mtharrfactor\muskip2 \advance\muskip2 \mtharrextra mu
- \setbox0\hbox{$\scriptstyle
- \mkern\muskip4\relax
- \mkern\muskip0\relax
- #5\relax
- \mkern\muskip2\relax
- \mkern\muskip6\relax
- $}%
- \setbox4\hbox{#3\displaystyle}%
- \dimen0\wd0
- \ifdim\wd4>\dimen0 \dimen0\wd4 \fi
- \setbox2\hbox{$\scriptstyle
- \mkern\muskip4\relax
- \mkern\muskip0\relax
- #4\relax
- \mkern\muskip2\relax
- \mkern\muskip6\relax
- $}%
- \ifdim\wd2>\dimen0 \dimen0\wd2 \fi
- \setbox4\hbox to \dimen0{#3\displaystyle}%
- \mathrel{\mathop{\hbox to \dimen0{\hss\copy4\hss}}\limits^{\box0}_{\box2}}
- \endgroup}
-
-\let\domthxarrsingle\domthxarr
-
-%D There are some arrows which are created by stacking two arrows. The next
-%D macro helps in defining such \quotation{double arrows}.
-
-\def\domthxarrdouble#1#2#3#4#5#6#7% opt l r sp rs top bot
- {\mathrel
- {\scratchdimen.32ex\relax % was .22, todo: make configurable
- \setbox0\hbox{$\domthxarr{#1}{#2}{#4}{\phantom{#6}}{#7}$}%
- \setbox2\hbox{$\domthxarr{#1}{#3}{#5}{#6}{\phantom{#7}}$}%
- \raise\scratchdimen\box0
- \kern-\wd2
- \lower\scratchdimen\box2}}
-
-%D \macros{definematharrow}
-%D
-%D Macro for defining new arrows. We can define two types of
-%D arrows|<|single arrows and double arrows. Single arrows are defined
-%D as
-%D
-%D \starttyping
-%D \definematharrow [xrightarrow] [0359] [\rightarrowfill]
-%D \stoptyping
-%D
-%D The first argument is the name of the arrow (\tex{xrightarrow} in
-%D this case.) The second argument consists of a set of 4 numbers and
-%D specify the spacing correction in math units~\type{mu}. These
-%D numbers define:
-%D
-%D \startlines
-%D 1st number: arrow||tip correction
-%D 2nd number: arrow||tip correction
-%D 3rd number: space (multiplied by \tex{matharrfactor} and advanced by \tex{matharrextra})
-%D 4th number: space (multiplied by \tex{matharrfactor} and advanced by \tex{matharrextra})
-%D \stoplines
-%D
-%D The third argument is the name of the extensible fill. The third
-%D argument is optional when the arrow is redefined later (this is
-%D useful for font specific tweaking of the skips.) For example,
-%D
-%D \startbuffer
-%D \math{\xrightarrow{above}}
-%D \definematharrow[xrightarrow][0000]
-%D \math{\xrightarrow{above}}
-%D \definematharrow[xrightarrow][55{50}{50}]
-%D \math{\xrightarrow{above}}
-%D \stopbuffer
-%D \typebuffer gives {\getbuffer}
-%D
-%D The double arrows are defined as follows
-%D
-%D \starttyping
-%D \definematharrow [xrightleftharpoons] [3095,0359]
-%D [\rightharpoonupfill,\leftharpoondownfill]
-%D \stoptyping
-%D
-%D The second and the third set of arguments consist of comma
-%D separated values. The first element of the second argument
-%D (\type{3095}) corresponds to the spacing correction of top arrow
-%D fill (\tex{rightarrowupfill}). Similarly, \type{0359} corresponds
-%D to bottom arrow fill \tex{leftharpoondownfill}). Stacking them on
-%D top of each other we get $\xrightleftharpoons[big]{above}{below}$.
-%D The following math arrows are defined
-%D
-%D \placetable[none]{}{\starttable[|l|m|]
-%D \NC \tex{xrightarrow } \NC \xrightarrow [big] \NC \NR
-%D \NC \tex{xleftarrow } \NC \xleftarrow [big] \NC \NR
-%D \NC \tex{xequal } \NC \xequal [big] \NC \NR
-%D \NC \tex{xRightarrow } \NC \xRightarrow [big] \NC \NR
-%D \NC \tex{xLeftarrow } \NC \xLeftarrow [big] \NC \NR
-%D \NC \tex{xLeftrightarrow } \NC \xLeftrightarrow [big] \NC \NR
-%D \NC \tex{xleftrightarrow } \NC \xleftrightarrow [big] \NC \NR
-%D \NC \tex{xmapsto } \NC \xmapsto [big] \NC \NR
-%D \NC \tex{xtwoheadrightarrow } \NC \xtwoheadrightarrow [big] \NC \NR
-%D \NC \tex{xtwoheadleftarrow } \NC \xtwoheadleftarrow [big] \NC \NR
-%D \NC \tex{xrightharpoondown } \NC \xrightharpoondown [big] \NC \NR
-%D \NC \tex{xrightharpoonup } \NC \xrightharpoonup [big] \NC \NR
-%D \NC \tex{xleftharpoondown } \NC \xleftharpoondown [big] \NC \NR
-%D \NC \tex{xleftharpoonup } \NC \xleftharpoonup [big] \NC \NR
-%D \NC \tex{xhookleftarrow } \NC \xhookleftarrow [big] \NC \NR
-%D \NC \tex{xhookrightarrow } \NC \xhookrightarrow [big] \NC \NR
-%D \NC \tex{xleftrightharpoons } \NC \xleftrightharpoons [big] \NC \NR
-%D \NC \tex{xrightleftharpoons } \NC \xrightleftharpoons [big] \NC \NR
-%D \stoptable}
-
-\def\definematharrow
- {\doquadrupleargument\dodefinematharrow}
-
-\def\dodefinematharrow[#1][#2][#3][#4]% name type[none|both] template command
- {\iffourthargument
- \executeifdefined{dodefine#2arrow}\gobblethreearguments{#1}{#3}{#4}%
- \else\ifthirdargument
- \dodefinebotharrow{#1}{#2}{#3}%
- \else\ifsecondargument
- \redefinebotharrow{#1}{#2}{#3}%
- \fi\fi\fi}
-
-\def\redefinebotharrow#1#2#3% real dirty, this overload!
- {\doifdefined{#1}
- {\pushmacro\dohandlemtharrow
- \def\dohandlemtharrow[##1][##2]{\setvalue{#1}{\dohandlemtharrow[#2][##2]}}%
- % == \def\dohandlemtharrow[##1][##2]{\dodefinebotharrow{#1}{#2}{##2}}%
- \getvalue{#1}%
- \popmacro\dohandlemtharrow}}
-
-\def\dodefinebotharrow#1#2#3%
- {\setvalue{#1}{\dohandlemtharrow[#2][#3]}}
-
-\def\dohandlemtharrow
- {\dotripleempty\doxmtharrow}
-
-\def\doxmtharrow[#1][#2][#3]% #3 == optional arg
- {\def\dodoxmtharrow{\dododoxmtharrow[#1,\empty,\empty][#2,\empty,\empty][#3]}% {##1}{##2}
- \dodoublegroupempty\dodoxmtharrow}
-
-\def\dododoxmtharrow[#1,#2,#3][#4,#5,#6][#7]#8#9% [3] is the optional arg
- {\edef\!!stringa{#2}%
- \ifx\!!stringa\empty
- \ifsecondargument
- \mathrel{\domthxarrsingle{#7}{#1}{#4}{#8}{#9}}%
- \else
- \mathrel{\domthxarrsingle{#7}{#1}{#4}{}{#8}}%
- \fi
- \else
- \ifsecondargument
- \mathrel{\domthxarrdouble{#7}{#1}{#2}{#4}{#5}{#8}{#9}}%
- \else
- \mathrel{\domthxarrdouble{#7}{#1}{#2}{#4}{#5}{}{#8}}%
- \fi
- \fi}
-
-% Adapted from amsmath.
-
-%D \macros{mtharrowfill,defaultmtharrowfill}
-%D
-%D To extend the arrows we need to define a \quotation{math arrow
-%D fill}. This command takes 8 arguments: the first four correspond
-%D the second argument of \tex{definematharrow} explained above. The
-%D other three specify the tail, body and head of the arrow. The last
-%D argument specifies the math-mode in which the arrow is drawn.
-%D \tex{defaultmtharrowfill} has values tweaked to match Latin Modern
-%D fonts. For fonts that are significantly different (e.g. cows) a
-%D different set of values need to be determined.
-
-\def\mtharrowfill#1#2#3#4#5#6#7#8%
- {$\mathsurround 0pt
- \thickmuskip0mu\medmuskip\thickmuskip\thinmuskip\thickmuskip
- \relax#8#5%
- \mkern-#1mu
- \cleaders\hbox{$#8\mkern -#2mu#6\mkern -#3mu$}\hfill
- \mkern-#4mu#7$}
-
-\def\defaultmtharrowfill{\mtharrowfill 7227}
-
-%D We now define some arrow fills that will be used for defining the
-%D arrows. Plain \TEX\ already defines \tex{leftarrowfill} and
-%D \tex{rightarrowfill}. The \tex{defaultmtharrowfill} command defines an
-%D arrowfill that takes an argument (so that it can also be used
-%D with over and under arrows). However the Plain \TEX\ definitions of
-%D \tex{leftarrowfill} and \tex{rightarrowfill} do not take this extra
-%D argument. To be backward compatible with Plain \TEX, we define two
-%D arrowfills: \tex{specrightarrowfill} which takes an extra argument, and
-%D \tex{rightarrowfill} which does not.
-
-\def\specrightarrowfill {\defaultmtharrowfill \relbar \relbar \rightarrow}
-\def\specleftarrowfill {\defaultmtharrowfill \leftarrow \relbar \relbar}
-
-\def\rightarrowfill {\specrightarrowfill \textstyle}
-\def\leftarrowfill {\specleftarrowfill \textstyle}
-
-\def\equalfill {\defaultmtharrowfill \Relbar \Relbar \Relbar}
-\def\Rightarrowfill {\defaultmtharrowfill \Relbar \Relbar \Rightarrow}
-\def\Leftarrowfill {\defaultmtharrowfill \Leftarrow \Relbar \Relbar}
-\def\Leftrightarrowfill {\defaultmtharrowfill \Leftarrow \Relbar \Rightarrow}
-\def\leftrightarrowfill {\defaultmtharrowfill \leftarrow \relbar \rightarrow}
-\def\mapstofill {\defaultmtharrowfill{\mapstochar\relbar} \relbar \rightarrow}
-\def\twoheadrightarrowfill{\defaultmtharrowfill \relbar \relbar \twoheadrightarrow}
-\def\twoheadleftarrowfill {\defaultmtharrowfill \twoheadleftarrow \relbar \relbar}
-\def\rightharpoondownfill {\defaultmtharrowfill \relbar \relbar \rightharpoondown}
-\def\rightharpoonupfill {\defaultmtharrowfill \relbar \relbar \rightharpoonup}
-\def\leftharpoondownfill {\defaultmtharrowfill \leftharpoondown \relbar \relbar}
-\def\leftharpoonupfill {\defaultmtharrowfill \leftharpoonup \relbar \relbar}
-\def\hookleftfill {\defaultmtharrowfill \leftarrow \relbar{\relbar\joinrel\rhook}}
-\def\hookrightfill {\defaultmtharrowfill{\lhook\joinrel\relbar}\relbar \rightarrow}
-\def\relfill {\defaultmtharrowfill \relbar \relbar \relbar}
-
-\def\triplerelbar {\mathrel\equiv}
-\def\triplerelfill{\defaultmtharrowfill\triplerelbar\triplerelbar\triplerelbar}
-
-\def\singlebond{{\xrel}} % or \def\singlebond{{\xrel[2]}}
-\def\doublebond{{\xequal}}
-\def\triplebond{{\xtriplerel}}
-
-%D Now we define most commonly used arrows. These include arrows
-%D defined in \filename{amsmath.sty}, \filename{extarrows.sty},
-%D \filename{extpfel.sty} and \filename{mathtools.sty} packages for
-%D \LATEX\ (plus a few more).
-
-\definematharrow [xrightarrow] [0359] [\specrightarrowfill]
-\definematharrow [xleftarrow] [3095] [\specleftarrowfill]
-\definematharrow [xequal] [0099] [\equalfill]
-\definematharrow [xRightarrow] [0359] [\Rightarrowfill]
-\definematharrow [xLeftarrow] [3095] [\Leftarrowfill]
-\definematharrow [xLeftrightarrow] [0099] [\Leftrightarrowfill]
-\definematharrow [xleftrightarrow] [0099] [\leftrightarrowfill]
-\definematharrow [xmapsto] [3599] [\mapstofill]
-\definematharrow [xtwoheadrightarrow] [5009] [\twoheadrightarrowfill]
-\definematharrow [xtwoheadleftarrow] [0590] [\twoheadleftarrowfill]
-\definematharrow [xrightharpoondown] [0359] [\rightharpoondownfill]
-\definematharrow [xrightharpoonup] [0359] [\rightharpoonupfill]
-\definematharrow [xleftharpoondown] [3095] [\leftharpoondownfill]
-\definematharrow [xleftharpoonup] [3095] [\leftharpoonupfill]
-\definematharrow [xhookleftarrow] [3095] [\hookleftfill]
-\definematharrow [xhookrightarrow] [0395] [\hookrightfill]
-\definematharrow [xrel] [0099] [\relfill]
-\definematharrow [xtriplerel] [0099] [\triplerelfill]
-\definematharrow [xrightoverleftarrow] [0359,3095] [\specrightarrowfill,\specleftarrowfill]
-\definematharrow [xleftrightharpoons] [3399,3399] [\leftharpoonupfill,\rightharpoondownfill]
-\definematharrow [xrightleftharpoons] [3399,3399] [\rightharpoonupfill,\leftharpoondownfill]
-
-%D These arrows can be used as follows:
-%D
-%D \startbuffer
-%D \startformula \xrightarrow{stuff on top}\stopformula
-%D \startformula \xrightarrow{}{stuff on top}\stopformula
-%D \startformula \xrightarrow{stuff below}{}\stopformula
-%D \startformula \xrightarrow{stuff below}{stuff on top}\stopformula
-%D
-%D \startformula \xleftarrow [none]{stuff below}{stuff on top}\stopformula
-%D \startformula \xleftarrow [small]{stuff below}{stuff on top}\stopformula
-%D \startformula \xleftarrow [medium]{stuff below}{stuff on top}\stopformula
-%D \startformula \xleftarrow [big]{stuff below}{stuff on top}\stopformula
-%D \stopbuffer
-%D
-%D \typebuffer which gives \getbuffer
-
-%D \macros{definemathoverarrow,defineunderarrow}
-%D
-%D These macros for define math-overarrows are adapted from
-%D \filename{amsmath.sty}
-
-\def\definemathoverarrow
- {\dotripleargument\dodefinemathoverarrow}
-
-\def\dodefinemathoverarrow[#1][#2][#3]%
- {\ifthirdargument
- \setvalue{#1}{\dohandlemathoverarrow[#2][#3]}%
- \else
- \setvalue{#1}{\dohandlemathoverarrow[\zeropoint][#2]}%
- \fi}
-
-\def\dohandlemathoverarrow[#1][#2]%
- {\mathpalette{\dodohandlemathoverarrow{#1}{#2}}}
-
-%D Note: \filename{math-pln.tex} has \type{\kern-\onepoint} and
-%D \filename{amsmath.sty} does not. We keep the kern amount
-%D configurable. This is useful for harpoons.
-
-\def\dodohandlemathoverarrow#1#2#3#4%
- {\vbox{\ialign{##\crcr
- #2#3\crcr
- \noalign{\kern#1\nointerlineskip}%
- $\mathsurround\zeropoint\hfil#3#4\hfil$\crcr}}}
-
-%D Now the under arrows
-
-\def\definemathunderarrow
- {\dotripleargument\dodefinemathunderarrow}
-
-%D For underarrows the default kern is 0.3ex
-
-\def\dodefinemathunderarrow[#1][#2][#3]%
- {\ifthirdargument
- \setvalue{#1}{\dohandlemathunderarrow[#2][#3]}%
- \else
- \setvalue{#1}{\dohandlemathunderarrow[0.3ex][#2]}%
- \fi}
-
-\def\dohandlemathunderarrow[#1][#2]%
- {\mathpalette{\dodohandlemathunderarrow{#1}{#2}}}
-
-\def\dodohandlemathunderarrow#1#2#3#4%
- {\vtop{\ialign{##\crcr
- $\mathsurround\zeropoint\hfil#3#4\hfil$\crcr
- \noalign{\nointerlineskip\kern#1}%
- #2#3\crcr}}}
-
-%D Now we define the arrows
-
-\definemathoverarrow [overleftarrow] [\specleftarrowfill]
-\definemathoverarrow [overrightarrow] [\specrightarrowfill]
-\definemathoverarrow [overleftrightarrow] [\leftrightarrowfill]
-\definemathoverarrow [overtwoheadrightarrow] [\twoheadrightarrowfill]
-\definemathoverarrow [overtwoheadleftarrow] [\twoheadleftarrowfill]
-\definemathoverarrow [overrightharpoondown] [1pt] [\rightharpoondownfill]
-\definemathoverarrow [overrightharpoonup] [\rightharpoonupfill]
-\definemathoverarrow [overleftharpoondown] [1pt] [\leftharpoondownfill]
-\definemathoverarrow [overleftharpoonup] [\leftharpoonupfill]
-
-\definemathunderarrow [underleftarrow] [\specleftarrowfill]
-\definemathunderarrow [underrightarrow] [\specrightarrowfill]
-\definemathunderarrow [underleftrightarrow] [\leftrightarrowfill]
-\definemathunderarrow [undertwoheadrightarrow][\twoheadrightarrowfill]
-\definemathunderarrow [undertwoheadleftarrow] [\twoheadleftarrowfill]
-\definemathunderarrow [underrightharpoondown] [\rightharpoondownfill]
-\definemathunderarrow [underrightharpoonup] [\rightharpoonupfill]
-\definemathunderarrow [underleftharpoondown] [\leftharpoondownfill]
-\definemathunderarrow [underleftharpoonup] [\leftharpoonupfill]
-
-%D These can be used as follows:
-%D
-%D \startbuffer
-%D $\overleftarrow{A}$ $\overleftarrow{ABC}$
-%D $a_{\overleftarrow{A}}$ $b_{\overleftarrow{ABC}}$
-%D \stopbuffer
-%D \typebuffer which gives \getbuffer
-
-%D TODO: Possibly have a single arrow command define all the arrows.
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/math-cow.mkii b/Master/texmf-dist/tex/context/base/mkii/math-cow.mkii
deleted file mode 100644
index 04f659b4425..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/math-cow.mkii
+++ /dev/null
@@ -1,31 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\def\COWsqrt {\mthsqrt{\char"7A}{\char"7B}}
-\def\COWfrac {\mthfrac{\char"7C}{\char"7A}{\char"7B}}
-\def\COWarrowfill{\mtharrowfill 1001}
-
-\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/mkii/math-eul.mkii b/Master/texmf-dist/tex/context/base/mkii/math-eul.mkii
deleted file mode 100644
index f502445259c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/math-eul.mkii
+++ /dev/null
@@ -1,277 +0,0 @@
-%D \module
-%D [ file=math-eul,
-%D version=2003.02.03,
-%D title=\CONTEXT\ Math Macros,
-%D subtitle=Virtual Euler Specials,
-%D author={Hans Hagen \& Taco Hoekwater \& Adam Lindsay},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details. Further modified by Adam Lindsay.
-
-\unprotect
-
-%D We follow the following mappings from type-eul:
-%D
-%D mr [MathRoman] [Euler-Roman] [zeurm10]
-
-%D mi [MathItalic] [Euler-Italic] [eufm10]
-
-%D ex [MathExtension] [Euler-Extension] [zeuex10]
-%D sy [MathSymbol] [Euler-Symbol] [zeusm10]
-
-%D mb [MathBeta] [Charter-Roman] [bchr8r] XXX
-%D mc [MathGamma] [Euler-Fraktur] [eufm10] XXX
-%D
-%D The inclusion of Bitstream Charter was originally for the text accents.
-%D Obviously, it's not a proper ``MathBeta'' font.
-
-%D The varrho and varsigma characters don't exist in eulervm,
-%D so we point at the normal types.
-
-\definefamilysynonym [eul] [calligraphic] [sy]
-\definefamilysynonym [eul] [oldstyle] [mi]
-\definefamilysynonym [eul] [gothic] [mi]
-\definefamilysynonym [eul] [fraktur] [mi]
-
-\definefamilysynonym [eul] [lcgreek] [mr]
-\definefamilysynonym [eul] [ucgreek] [mr]
-\definefamilysynonym [eul] [vargreek] [mr]
-
-%% Well, you don't know until you try!
-%\definefamilysynonym [eul] [accents] [Serif]
-
-\startmathcollection [eul]
-
-\definemathsymbol [varrho] [nothing] [vargreek] ["1A]
-\definemathsymbol [varsigma] [nothing] [vargreek] ["1B]
-
-%D Changes necessitated by collapsing mr \& mi into one:
-\definemathsymbol [imath] [nothing] [mr] ["7B]
-\definemathsymbol [jmath] [nothing] [mr] ["7C]
-\definemathsymbol [ell] [nothing] [mr] ["60]
-\definemathsymbol [wp] [nothing] [mr] ["7D]
-\definemathsymbol [partial] [nothing] [mr] ["40]
-
-\definemathsymbol [flat] [ord] [mr] ["5B]
-\definemathsymbol [natural] [ord] [mr] ["5C]
-\definemathsymbol [sharp] [ord] [mr] ["5D]
-
-\definemathsymbol [triangleleft] [bin] [mr] ["2F]
-\definemathsymbol [triangleright][bin] [mr] ["2E]
-
-\definemathsymbol [star] [bin] [mr] ["3F]
-
-\definemathsymbol [smile] [rel] [mr] ["5E]
-\definemathsymbol [frown] [rel] [mr] ["5F]
-\definemathsymbol [leftharpoonup] [rel] [mr] ["28]
-\definemathsymbol [leftharpoondown] [rel] [mr] ["29]
-\definemathsymbol [rightharpoonup] [rel] [mr] ["2A]
-\definemathsymbol [rightharpoondown] [rel] [mr] ["2B]
-\definemathsymbol [lhook] [rel] [mr] ["2C]
-\definemathsymbol [rhook] [rel] [mr] ["2D]
-
-\definemathsymbol [mathperiod] [ord] [mr] ["3A]
-\definemathsymbol [textperiod] [punct] [mr] ["3A]
-
-\definemathsymbol [mathcomma] [ord] [mr] ["3B]
-\definemathsymbol [textcomma] [punct] [mr] ["3B]
-
-\definemathsymbol [ldotp] [punct] [mr] ["3A]
-
-% extras from AMS:
-\definemathsymbol [hslash] [ord] [mr] ["80] %beauty over truth
-
-\stopmathcollection
-
-\startmathcollection [eul]
-% Ugh. no way around this to keep it compact in the font defs.
-
-\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
-
-\startmathcollection [eul]
-
-\definemathcharacter [!] [close] [sy] ["A1]
-\definemathcharacter [(] [open] [sy] ["A8]
-\definemathcharacter [)] [close] [sy] ["A9]
-\definemathcharacter [+] [bin] [sy] ["AB]
-\definemathcharacter [:] [rel] [sy] ["BA]
-\definemathcharacter [;] [punct] [sy] ["BB]
-\definemathcharacter [=] [rel] [sy] ["BD]
-\definemathcharacter [?] [close] [sy] ["BF]
-\definemathcharacter [91] [open] [sy] ["DB] % [
-\definemathcharacter [93] [close] [sy] ["DD] % ]
-
-\definemathcharacter [,] [punct] [mr] ["3B]
-\definemathcharacter [.] [ord] [mr] ["3A]
-\definemathcharacter [/] [ord] [mr] ["3D]
-\definemathcharacter [<] [rel] [mr] ["3C]
-\definemathcharacter [>] [rel] [mr] ["3E]
-
-\stopmathcollection
-
-\startmathcollection [eul]
-
-\definemathcharacter [(] [nothing] [sy] ["A8] [ex] ["00]
-\definemathcharacter [)] [nothing] [sy] ["A9] [ex] ["01]
-\definemathcharacter [91] [nothing] [sy] ["DB] [ex] ["02] % [
-\definemathcharacter [93] [nothing] [sy] ["DD] [ex] ["03] % ]
-\definemathcharacter [/] [nothing] [mr] ["3D] [ex] ["0E]
-
-\stopmathcollection
-
-\startmathcollection [eul]
-
-\definemathsymbol [hbar] [nothing] [mr] ["80]
-
-\stopmathcollection
-
-\startmathcollection [eul]
-
-\definemathsymbol [ddagger] [bin] [sy] ["7A]
-\definemathsymbol [dagger] [bin] [sy] ["79]
-
-\stopmathcollection
-
-\startmathcollection [eul]
-
-\definemathsymbol [colon] [punct] [sy] ["BA]
-
-\stopmathcollection
-
-%D This used to be very hackish; it brought in text
-%D accents from the well-matched Bitstream Charter.
-
-%D But now, these characters don't exist. I would prefer to pull
-%D them from the text font, but I don't know how.
-%D Instead, I'm just pointing to null characters!
-
-\startmathcollection [eul]
-
-\definemathsymbol [acute] [accent] [mr] ["90]
-\definemathsymbol [grave] [accent] [mr] ["91]
-\definemathsymbol [ddot] [accent] [mr] ["92]
-\definemathsymbol [tilde] [accent] [mr] ["93]
-\definemathsymbol [bar] [accent] [mr] ["94]
-\definemathsymbol [breve] [accent] [mr] ["95]
-\definemathsymbol [check] [accent] [mr] ["96]
-\definemathsymbol [hat] [accent] [mr] ["97]
-\definemathsymbol [dot] [accent] [mr] ["98]
-%\definemathsymbol [acute] [accent] [accents] ["B4]
-%\definemathsymbol [grave] [accent] [accents] ["1E]
-%\definemathsymbol [ddot] [accent] [accents] ["A8]
-%\definemathsymbol [tilde] [accent] [accents] ["98]
-%\definemathsymbol [bar] [accent] [accents] ["AF]
-%\definemathsymbol [breve] [accent] [accents] ["0B]
-%\definemathsymbol [check] [accent] [accents] ["10]
-%\definemathsymbol [hat] [accent] [accents] ["5E]
-%\definemathsymbol [dot] [accent] [accents] ["01]
-
-\definemathsymbol [vec] [accent] [mr] ["7E] % [ord]
-\definemathsymbol [hat] [accent] [sy] ["DE]
-
-\stopmathcollection
-
-\startmathcollection [eul]
-
-\definemathsymbol [lgroup] [open] [sy] ["A8] [ex] ["3A] % ?
-\definemathsymbol [rgroup] [close] [sy] ["A9] [ex] ["3B] % ?
-
-\stopmathcollection
-
-\startmathcollection [eul]
-
-\definemathsymbol [dag] [box] [sy] ["79]
-\definemathsymbol [ddag] [box] [sy] ["7A]
-\definemathsymbol [S] [box] [sy] ["78]
-\definemathsymbol [P] [box] [sy] ["7B]
-
-\stopmathcollection
-
-%D Aditya's additionl definitions:
-
-\startmathcollection[eul:texnansi]
- \definemathsymbol [acute] [accent] [tf] ["13]
- \definemathsymbol [grave] [accent] [tf] ["12]
- \definemathsymbol [ddot] [accent] [tf] ["A8]
- \definemathsymbol [tilde] [accent] [tf] ["98]
- \definemathsymbol [bar] [accent] [tf] ["16]
- \definemathsymbol [breve] [accent] [tf] ["15]
- \definemathsymbol [check] [accent] [tf] ["14]
- \definemathsymbol [hat] [accent] [tf] ["88]
- \definemathsymbol [dot] [accent] [tf] ["5]
- % Why is mathring not defined??
- \definemathsymbol [mathring] [accent] [tf] ["17]
-\stopmathcollection
-
-\startmathcollection[eul:ec]
- \definemathsymbol [acute] [accent] [tf] ["1]
- \definemathsymbol [grave] [accent] [tf] ["0]
- \definemathsymbol [ddot] [accent] [tf] ["4]
- \definemathsymbol [tilde] [accent] [tf] ["3]
- \definemathsymbol [bar] [accent] [tf] ["9]
- \definemathsymbol [breve] [accent] [tf] ["8]
- \definemathsymbol [check] [accent] [tf] ["7]
- \definemathsymbol [hat] [accent] [tf] ["2]
- \definemathsymbol [dot] [accent] [tf] ["A]
- % Why is mathring not defined??
- \definemathsymbol [mathring] [accent] [tf] ["6]
-\stopmathcollection
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/math-fou.mkii b/Master/texmf-dist/tex/context/base/mkii/math-fou.mkii
deleted file mode 100644
index 26b03d73ec9..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/math-fou.mkii
+++ /dev/null
@@ -1,196 +0,0 @@
-%D \module
-%D [ file=math-fou,
-%D version=2001.04.12,
-%D title=\CONTEXT\ Math Macros,
-%D subtitle=Fourier Specials,
-%D author={Michel Biovani \& Hans Hagen},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% see end of file for todo
-
-\unprotect
-
-\startmathcollection [fou]
-
- \definemathsymbol [Gamma] [alpha] [mi] ["00]
- \definemathsymbol [Delta] [alpha] [mi] ["01]
- \definemathsymbol [Theta] [alpha] [mi] ["02]
- \definemathsymbol [Lambda] [alpha] [mi] ["03]
- \definemathsymbol [Xi] [alpha] [mi] ["04]
- \definemathsymbol [Pi] [alpha] [mi] ["05]
- \definemathsymbol [Sigma] [alpha] [mi] ["06]
- \definemathsymbol [Upsilon] [alpha] [mi] ["07]
- \definemathsymbol [Phi] [alpha] [mi] ["08]
- \definemathsymbol [Psi] [alpha] [mi] ["09]
- \definemathsymbol [Omega] [alpha] [mi] ["0A]
-
-\stopmathcollection
-
-\startmathcollection [fou]
-
- \definemathcharacter [+] [bin] [sy] ["80]
- \definemathcharacter [=] [rel] [sy] ["81]
- \definemathcharacter [<] [rel] [sy] ["82]
- \definemathcharacter [>] [rel] [sy] ["83]
-
-\stopmathcollection
-
-\startmathcollection [fou]
-
- \definemathsymbol [leqslant] [rel] [sy] ["84]
- \definemathsymbol [geqslant] [rel] [sy] ["85]
- \definemathsymbol [parallelslant] [rel] [sy] ["86]
- \definemathsymbol [thething] [ord] [sy] ["87]
- \definemathsymbol [vDash] [rel] [sy] ["88]
- \definemathsymbol [blacktriangleleft] [rel] [sy] ["89]
- \definemathsymbol [blacktriangleright] [rel] [sy] ["8A]
- \definemathsymbol [nleqslant] [rel] [sy] ["8B]
- \definemathsymbol [ngeqslant] [rel] [sy] ["8C]
- \definemathsymbol [parallel] [rel] [sy] ["8D]
- \definemathsymbol [nparallel] [rel] [sy] ["8E]
- \definemathsymbol [nparallelslant] [rel] [sy] ["8F]
- \definemathsymbol [nvDash] [rel] [sy] ["90]
- \definemathsymbol [intercal] [bin] [sy] ["91]
- \definemathsymbol [hslash] [ord] [sy] ["92]
- \definemathsymbol [nexists] [ord] [sy] ["93]
- \definemathsymbol [varsubsetneq] [rel] [sy] ["93]
-
-\stopmathcollection
-
-\startmathcollection [fou]
-
- \definemathcharacter [(] [nothing] [mr] ["28] [ex] ["A1]
- \definemathcharacter [)] [nothing] [mr] ["29] [ex] ["A2]
- \definemathcharacter [91] [nothing] [mr] ["5B] [ex] ["A3] % [
- \definemathcharacter [93] [nothing] [mr] ["5D] [ex] ["A4] % ]
- \definemathcharacter [/] [nothing] [mr] ["2F] [ex] ["B1]
-
- \definemathcharacter [124] [nothing] [sy] ["6A] [ex] ["AF] % |
- \definemathcharacter [92] [nothing] [sy] ["6E] [ex] ["B2] % \
-
-\stopmathcollection
-
-\startmathcollection [fou]
-
- \definemathsymbol [Vert] [nothing] [sy] ["6B] [ex] ["B0]
- \definemathsymbol [vert] [nothing] [sy] ["6A] [ex] ["AF]
- \definemathsymbol [VERT] [nothing] [sy] ["98] [ex] ["93]
- \definemathsymbol [Downarrow] [rel] [sy] ["2B] [ex] ["C4]
- \definemathsymbol [backslash] [nothing] [sy] ["6E] [ex] ["B2]
- \definemathsymbol [rangle] [close] [sy] ["69] [ex] ["AE]
- \definemathsymbol [langle] [open] [sy] ["68] [ex] ["AD]
- \definemathsymbol [rbrace] [close] [sy] ["67] [ex] ["AA]
- \definemathsymbol [lbrace] [open] [sy] ["66] [ex] ["A9]
- \definemathsymbol [rceil] [close] [sy] ["65] [ex] ["A8]
- \definemathsymbol [lceil] [open] [sy] ["64] [ex] ["A7]
- \definemathsymbol [rfloor] [close] [sy] ["63] [ex] ["A6]
- \definemathsymbol [lfloor] [open] [sy] ["62] [ex] ["A5]
- \definemathsymbol [dblbrackleft] [open] [sy] ["99] [ex] ["85]
- \definemathsymbol [dblbrackright] [close] [sy] ["9A] [ex] ["86]
-
-\stopmathcollection
-
-\startmathcollection [fou]
-
- \definemathsymbol [varkappa] [ord] [mi] ["80] % check this
- \definemathsymbol [varvarrho] [ord] [mi] ["81] % check this
- \definemathsymbol [xswordsup] [ord] [sy] ["96]
- \definemathsymbol [xswordsdown] [ord] [sy] ["97]
- \definemathsymbol [notowns] [rel] [sy] ["9C]
- \definemathsymbol [hbar] [ord] [sy] ["9D]
- \definemathsymbol [smallsetminus] [bin] [sy] ["9E]
-
-\stopmathcollection
-
-\startmathcollection [fou]
-
- \definemathsymbol [notin] [rel] [sy] ["9B]
-
-\stopmathcollection
-
-\startmathcollection [fou]
-
- \definemathsymbol [iintop] [op] [ex] ["CE]
- \definemathsymbol [iiintop] [op] [ex] ["D0]
- \definemathsymbol [oiintop] [op] [ex] ["D2]
- \definemathsymbol [oiiintop] [op] [ex] ["D4]
- \definemathsymbol [slashintop] [op] [ex] ["D6]
-
-\stopmathcollection
-
-\startmathcollection [fou]
-
- \definemathcommand [iint] {\iintop \nolimits}
- \definemathcommand [iiint] {\iiintop \nolimits}
- \definemathcommand [oiint] {\oiintop \nolimits}
- \definemathcommand [oiiint] {\oiiintop \nolimits}
- \definemathcommand [slashint] {\slashintop\nolimits}
-
-\stopmathcollection
-
-\startmathcollection [fou]
-
- \definemathsymbol [acute] [accent] [mr] ["1]
- \definemathsymbol [grave] [accent] [mr] ["0]
- \definemathsymbol [ddot] [accent] [mr] ["4]
- \definemathsymbol [tilde] [accent] [mr] ["3]
- \definemathsymbol [bar] [accent] [mr] ["9]
- \definemathsymbol [breve] [accent] [mr] ["8]
- \definemathsymbol [check] [accent] [mr] ["7]
- \definemathsymbol [hat] [accent] [mr] ["2]
- \definemathsymbol [dot] [accent] [mr] ["A]
- \definemathsymbol [mathring] [accent] [mr] ["6]
-
-\stopmathcollection
-
-\startmathcollection [fou]
-
- \definemathsymbol [otheralpha] [ord] [mi] ["0B]
- \definemathsymbol [otherbeta] [ord] [mi] ["0C]
- \definemathsymbol [othergamma] [ord] [mi] ["0D]
- \definemathsymbol [otherdelta] [ord] [mi] ["0E]
- \definemathsymbol [otherepsilon] [ord] [mi] ["0F]
- \definemathsymbol [otherzeta] [ord] [mi] ["10]
-
-\stopmathcollection
-
-\protect \endinput
-
-% from a mail of Michel B / todo
-
-% \definemathsymbol [acute] [accent] [operators] ["1]
-% \definemathsymbol [grave] [accent] [operators] ["0]
-% \definemathsymbol [ddot] [accent] [operators] ["4]
-% \definemathsymbol [tilde] [accent] [operators] ["3]
-% \definemathsymbol [bar] [accent] [operators] ["9]
-% \definemathsymbol [breve] [accent] [operators] ["8]
-% \definemathsymbol [check] [accent] [operators] ["7]
-% \definemathsymbol [hat] [accent] [operators] ["2]
-% \definemathsymbol [dot] [accent] [operators] ["A]
-% \definemathsymbol [mathring] [accent] [operators] ["6]
-
-% \definemathsymbol [wideparen] [ord] [largesymbols] ["94]
-% \definemathsymbol [widearc] [accent] [largesymbols] ["D8]
-
-% check for definition of \overset (ams)
-
-% \def\FOUwidering#1%
-% {\overset{\smash{\vbox to .2ex{\hbox{$\mathring{}$}}}}{\wideparen{#1}}}
-
-% \startmathcollection [default] % [ams]
-%
-% \definemathcommand [widering] {\FOUwidering}
-%
-% \stopmathcollection
-
-% \definemathsymbol [otheralpha] [ord] [otherletters] ["0B]
-% \definemathsymbol [otherbeta] [ord] [otherletters] ["0C]
-% \definemathsymbol [othergamma] [ord] [otherletters] ["0D]
-% \definemathsymbol [otherdelta] [ord] [otherletters] ["0E]
-% \definemathsymbol [otherepsilon] [ord] [otherletters] ["0F]
-% \definemathsymbol [otherzeta] [ord] [otherletters] ["10]
diff --git a/Master/texmf-dist/tex/context/base/mkii/math-frc.mkii b/Master/texmf-dist/tex/context/base/mkii/math-frc.mkii
deleted file mode 100644
index b14c9377497..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/math-frc.mkii
+++ /dev/null
@@ -1,253 +0,0 @@
-%D \module
-%D [ file=math-frc,
-%D version=2007.07.19,
-%D title=\CONTEXT\ Math Macros,
-%D subtitle=Fractions,
-%D author={Hans Hagen \& Taco Hoekwater \& Aditya Mahajan},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Math Macros / Fractions}
-
-\unprotect
-
-\unexpanded\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}
-
-\unexpanded\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}}}
-
-\unexpanded\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}}}
-
-%D Moved from math-new.tex (not that new anyway:
-
-%D \macros
-%D {genfrac}
-%D
-%D [TH] The definition of \type {\genfrac} \& co. is not
-%D trivial, because it allows some flexibility. This is
-%D supposed to be a user||level command, but will fail quite
-%D desparately if called outside math mode (\CONTEXT\ redefines
-%D \type {\over})
-%D
-%D [HH] We clean up this macro a bit and (try) to make it
-%D understandable. The expansion is needed for generating
-%D the second argument to \type {\dogenfrac}, which is to
-%D be a control sequence like \type {\over}.
-
-\unexpanded\def\genfrac#1#2#3#4%
- {\edef\!!stringa
- {#1#2}%
- \expanded
- {\dogenfrac{#4}%
- \csname
- \ifx @#3@%
- \ifx\!!stringa\empty
- \strippedcsname\normalover
- \else
- \strippedcsname\normaloverwithdelims
- \fi
- \else
- \ifx\!!stringa\empty
- \strippedcsname\normalabove
- \else
- \strippedcsname\normalabovewithdelims
- \fi
- \fi
- \endcsname}%
- {#1#2#3}}
-
-\def\dogenfrac#1#2#3#4#5%
- {{#1{\begingroup#4\endgroup#2#3\relax#5}}}
-
-%D \macros
-%D {dfrac, tfrac, frac, dbinom, tbinom, binom}
-%D
-%D \startbuffer
-%D $\dfrac {1}{2} \tfrac {1}{2} \frac {1}{2}$
-%D $\dbinom{1}{2} \tbinom{1}{2} \binom{1}{2}$
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-
-\unexpanded\def\dfrac {\genfrac\empty\empty{}\displaystyle}
-\unexpanded\def\tfrac {\genfrac\empty\empty{}\textstyle}
-\unexpanded\def\frac {\genfrac\empty\empty{}\donothing}
-
-\unexpanded\def\dbinom{\genfrac()\zeropoint\displaystyle}
-\unexpanded\def\tbinom{\genfrac()\zeropoint\textstyle}
-\unexpanded\def\binom {\genfrac()\zeropoint\donothing}
-
-\unexpanded\def\xfrac {\genfrac\empty\empty{}\scriptstyle}
-\unexpanded\def\xxfrac{\genfrac\empty\empty{}\scriptscriptstyle}
-
-\unexpanded\def\frac#1#2{\mathematics{\genfrac\empty\empty{}\donothing{#1}{#2}}}
-
-%D \macros
-%D {cfrac}
-%D
-%D \startbuffer
-%D $\cfrac{12}{3} \cfrac[l]{12}{3} \cfrac[c]{12}{3} \cfrac[r]{12}{3}$
-%D $\cfrac{1}{23} \cfrac[l]{1}{23} \cfrac[c]{1}{23} \cfrac[r]{1}{23}$
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-%D
-%D Now we can align every combination we want:
-%D
-%D \startbuffer
-%D $\cfrac{12}{3} \cfrac[l]{12}{3} \cfrac[c]{12}{3} \cfrac[r]{12}{3}$
-%D $\cfrac{1}{23} \cfrac[l]{1}{23} \cfrac[c]{1}{23} \cfrac[r]{1}{23}$
-%D $\cfrac[cl]{12}{3} \cfrac[cc]{12}{3} \cfrac[cr]{12}{3}$
-%D $\cfrac[lc]{1}{23} \cfrac[cc]{1}{23} \cfrac[rc]{1}{23}$
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-
-\definecomplexorsimple\cfrac
-
-\def\simplecfrac {\docfrac[cc]}
-\def\complexcfrac[#1]{\docfrac[#1cc]}
-
-\def\docfrac[#1#2#3]#4#5%
- {{\displaystyle
- \frac
- {\strut
- \ifx r#1\hfill\fi#4\ifx l#1\hfill\fi}%
- {\ifx r#2\hfill\fi#5\ifx l#2\hfill\fi}%
- \kern-\nulldelimiterspace}}
-
-%D \macros
-%D {splitfrac, splitdfrac}
-%D
-%D Occasionally one needs to typeset multi||line fractions.
-%D These commands use \tex{genfrac} to create such fractions.
-%D
-%D \startbuffer
-%D \startformula
-%D a=\frac{
-%D \splitfrac{xy + xy + xy + xy + xy}
-%D {+ xy + xy + xy + xy}
-%D }
-%D {z}
-%D =\frac{
-%D \splitdfrac{xy + xy + xy + xy + xy}
-%D {+ xy + xy + xy + xy}
-%D }
-%D {z}
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D These macros are based on Michael J.~Downes posting on
-%D comp.text.tex on 2001/12/06
-
-\unexpanded\def\splitfrac#1#2%
- {\genfrac\empty\empty\zeropoint\textstyle%
- {\textstyle#1\quad\hfill}%
- {\textstyle\hfill\quad\mathstrut#2}}
-
-\unexpanded\def\splitdfrac#1#2%
- {\genfrac\empty\empty\zeropoint\displaystyle%
- {#1\quad\hfill}
- {\hfill\quad\mathstrut #2}}
-
-%D For thee moment here, but it might move:
-
-%D \macros
-%D {qedsymbol}
-%D
-%D [HH] The general Quod Erat Domonstrandum symbol is defined
-%D in such a way that we can configure it. Because this symbol
-%D is also used in text mode, we make it a normal text symbol
-%D with special behavior.
-
-\unexpanded\def\qedsymbol#1%
- {\ifhmode
- \unskip~\hfill#1\par
- \else\ifmmode
- \eqno#1\relax % Do we really need the \eqno here?
- \else
- \leavevmode\hbox{}\hfill#1\par
- \fi\fi}
-
-\definesymbol [qed] [\qedsymbol{\mathematics{\square}}]
-
-%D \macros
-%D {QED}
-%D
-%D [HH] For compatbility reasons we also provide the \type
-%D {\QED} command. In case this command is overloaded, we still
-%D have the symbol available. \symbol[qed]
-
-\unexpanded\def\QED{\symbol[qed]}
-
-%D \macros
-%D {mathhexbox}
-%D
-%D [TH] \type {\mathhexbox} is also user||level (already
-%D defined in Plain \TEX). It allows to get a math character
-%D inserted as if it was a text character.
-
-\unexpanded\def\mathhexbox#1#2#3%
- {\mathtext{$\mathsurround\zeropoint\mathchar"#1#2#3$}}
-
-%D \macros
-%D {boxed}
-%D
-%D [HH] Another macro that users expect (slightly adapted):
-
-\unexpanded\def\boxed
- {\ifmmode\expandafter\mframed\else\expandafter\framed\fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/math-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/math-ini.mkii
deleted file mode 100644
index d6d10feb323..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/math-ini.mkii
+++ /dev/null
@@ -1,684 +0,0 @@
-%D \module
-%D [ file=math-ini,
-%D version=2001.04.12,
-%D title=\CONTEXT\ Math Macros,
-%D subtitle=Initializations,
-%D author={Hans Hagen \& Taco Hoekwater},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Math Macros / Initializations}
-
-% todo: make all definitions global since file loaded only once
-
-%D This module provides namespaces for math fonts, thereby
-%D permitting mixed usage of math fonts. Although not strictly
-%D needed, we also provide a family name mapping mechanism as
-%D used in the (original) AMS math definition files, but here
-%D these names can recursively be remapped and if needed,
-%D dynamically be changed. We've tried to minimize the number
-%D of definition commands and use plain \TEX\ definitions as
-%D fallback. We've tried to follow a couple of conventions
-%D from plain and AMS math in order to achieve backward
-%D compatinility. We also kept an eye on future usage of these
-%D modules in the perspective of MathML and unicode fonts.
-
-\unprotect
-
-\def\@ml@{@ml@} % math list (used for collection)
-\def\@mf@{@mf@} % math family
-%def\@mh@{@mh@} % math handler (not used)
-\def\@mt@{@mt@} % math token
-\def\@mc@{@mc@} % math collection
-
-\def\@@mathlimopcomm#1{\mathop{#1}} %no \limits
-\def\@@mathnolopcomm#1{\mathop{#1}\nolimits}
-\def\@@mathboxcomm #1{\dontleavehmode\hbox{$\mathsurround\zeropoint#1$}}
-
-\chardef\mathordcode = 0 \let\mathordcomm \mathord
-\chardef\mathopcode = 1 \let\mathopcomm \mathop
-\chardef\mathbincode = 2 \let\mathbincomm \mathbin
-\chardef\mathrelcode = 3 \let\mathrelcomm \mathrel
-\chardef\mathopencode = 4 \let\mathopencomm \mathopen
-\chardef\mathclosecode = 5 \let\mathclosecomm \mathclose
-\chardef\mathpunctcode = 6 \let\mathpunctcomm \mathpunct
-\chardef\mathalphacode = 7 \let\mathalphacomm \firstofoneargument
-\chardef\mathinnercode = 0 \let\mathinnercomm \mathinner
-\chardef\mathnothingcode= 0 \let\mathnothingcomm \firstofoneargument
-\chardef\mathlimopcode = 1 \let\mathlimopcomm \@@mathlimopcomm
-\chardef\mathnolopcode = 1 \let\mathnolopcomm \@@mathnolopcomm
-\chardef\mathchoicecode = 0 \let\mathchoicecomm \@@mathchoicecomm
-\chardef\mathboxcode = 0 \let\mathboxcomm \@@mathboxcomm
-
-\chardef\mathaccentcode = 8
-\chardef\mathradicalcode= 9
-
-\def\@@mathchoicecomm#1{[todo #1]}
-
-\def\puremathcode#1{\the\csname math#1code\endcsname}
-\def\puremathcomm#1{\csname math#1comm\endcsname}
-
-\newif\iftracemathcollection
-
-% Simple variant:
-%
-% \def\dohandlemathtoken#1%
-% {\csname\@mt@
-% \ifcsname\@mt@\mathcollection#1\endcsname
-% \mathcollection
-% \else\ifcsname\@mt@\nomathcollection#1\endcsname
-% \nomathcollection
-% \fi\fi
-% #1\endcsname}
-
-%D Because a command can have a different meaning in math
-%D and in text mode, we provide a selector. We also provide
-%D the pure alternatives as \type {\mathcharacter} and \type
-%D {\textcharacter}.
-
-% \ifx\dohandlecommand\undefined \wait \fi % troubles ! but not in mkiv so ...
-
-\let\mathcharacter\dohandlemathtoken
-\let\textcharacter\dohandlecommand % better \dohandletexttoken
-
-% More clever layout:
-%
-% \def\dohandlemathtoken#1%
-% {\csname
-% \ifmmode
-% \ifcsname\@mt@\mathcollection#1\endcsname
-% \@mt@\mathcollection
-% \else\ifcsname\@mt@\nomathcollection#1\endcsname
-% \@mt@\nomathcollection
-% \else\ifcsname\characterencoding#1\endcsname
-% \characterencoding
-% \else
-% \nocharacterencoding
-% \fi\fi\fi
-% \else
-% \ifcsname\characterencoding#1\endcsname
-% \characterencoding
-% \else
-% \nocharacterencoding
-% \fi
-% \fi
-% #1\endcsname}
-%
-% fallback to math when in text mode (handy for unicode vectors)
-
-\def\dohandlemathtoken#1%
- {\csname
- \ifmmode
- \ifcsname\@mt@\mathcollection#1\endcsname
- \@mt@\mathcollection
- \else\ifcsname\@mt@\nomathcollection#1\endcsname
- \@mt@\nomathcollection
- \else\ifcsname\characterencoding#1\endcsname
- \characterencoding
- \else
- \nocharacterencoding
- \fi\fi\fi
- \else
- \ifcsname\characterencoding#1\endcsname
- \characterencoding
- \else\ifcsname\nocharacterencoding#1\endcsname
- \nocharacterencoding
- \else\ifcsname\@mt@\mathcollection#1\endcsname
- \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\mathcollection
- \else\ifcsname\@mt@\nomathcollection#1\endcsname
- \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\nomathcollection
- \else
- \nocharacterencoding
- \fi\fi\fi\fi
- \fi
- #1\endcsname}
-
-%D Now we redefine the text encoding handler.
-
-%D A better fallback:
-
-% Just ETEX which is the default nowadays.
-
-\def\dohandlemathtoken#1%
- {\csname
- \ifmmode
- \ifcsname\@mt@\mathcollection:\outerencoding#1\endcsname
- \@mt@\mathcollection:\outerencoding
- \else\ifcsname\@mt@\mathcollection#1\endcsname
- \@mt@\mathcollection
- \else\ifcsname\@mt@\nomathcollection#1\endcsname
- \@mt@\nomathcollection
- \else\ifcsname\characterencoding#1\endcsname
- \characterencoding
- \else
- \nocharacterencoding
- \fi\fi\fi\fi
- \else
- \ifcsname\characterencoding#1\endcsname
- \characterencoding
- \else\ifcsname\nocharacterencoding#1\endcsname
- \nocharacterencoding
- \else\ifcsname\@mt@\mathcollection:\outerencoding#1\endcsname
- \@mt@\mathcollection:\outerencoding
- \else\ifcsname\@mt@\mathcollection#1\endcsname
- \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\mathcollection
- \else\ifcsname\@mt@\nomathcollection#1\endcsname
- \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\nomathcollection
- \else
- \nocharacterencoding
- \fi\fi\fi\fi\fi
- \fi
- #1\endcsname}
-
-\let\dohandlecommand\dohandlemathtoken
-
-\def\definefamilysynonym
- {\dotripleempty\dodefinefamilysynonym}
-
-\def\dodefinefamilysynonym[#1][#2][#3]% [mathcollection] [] []
- {\ifthirdargument
- \setvalue{\@mf@#1#2}{#3}%
- \else
- \setvalue{\@mf@ #1}{#2}%
- \fi}
-
-\let\mathsubfamily\empty
-
-\def\purefamily #1{\csname \truefamily{#1}\mathsubfamily\s!fam\endcsname}
-\def\purefamilyhex#1{\csname hex\truefamily{#1}\mathsubfamily\s!fam\endcsname}
-
-\def\truefamily#1%
- {\ifcsname\@mf@\mathcollection#1\endcsname
- \@EA\truefamily\csname\@mf@\mathcollection#1\endcsname
- \else\ifcsname\@mf@#1\endcsname
- \@EA\truefamily\csname\@mf@#1\endcsname
- \else\ifcsname\@mf@\nomathcollection#1\endcsname
- \@EA\truefamily\csname\@mf@\nomathcollection#1\endcsname
- \else
- #1%
- \fi\fi\fi}
-
-\newif\ifdynamicmathfamilies \dynamicmathfamiliestrue % true per 2003.11.25; needed for mixed bold math
-
-\let\normalpurefamilyhex\purefamilyhex
-
-% todo: reset collection (tok legen) en opnieuw laden met true
-
-\def\definemathsymbol
- {\dosixtupleempty\dodefinemathsymbol}
-
-\def\dodefinemathsymbol[#1][#2][#3][#4][#5][#6]%
- {\unexpanded\setgvalue{#1}{\dohandlemathtoken{#1}}%
- \ifdynamicmathfamilies \let\purefamilyhex\relax \fi
- \setevalue{\@mt@\mathcollection#1}%
- {\ifsixthargument
- \ifnum\puremathcode{#2}=\mathradicalcode
- \radical"%
- \else
- \delimiter"%
- \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
- \fi
- \purefamilyhex{#3}\uchexnumbers{#4}%
- \purefamilyhex{#5}\uchexnumbers{#6}\space
- \else\iffourthargument
- \ifnum\puremathcode{#2}=\mathaccentcode
- \mathaccent\else\mathchar
- \fi
- "\ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
- \purefamilyhex{#3}\uchexnumbers{#4}\space
- \fi\fi}%
- \let\purefamilyhex\normalpurefamilyhex
- \tracemathsymbol{#1}}
-
-\def\tracemathsymbol#1%
- {\iftracemathcollection
- {\endgraf
- \hbox{\tex{#1}~:~{\mathematics{\getvalue{#1}{}}}}
- \endgraf}%
- \fi}
-
-\def\definemathcharacter
- {\dosixtupleempty\dodefinemathcharacter}
-
-% \def\dodefinemathcharacter[#1][#2][#3][#4][#5][#6]%
-% {\setmathtoks
-% \ifdynamicmathfamilies \let\purefamilyhex\relax \fi
-% \doifnumberelse{#1}
-% {\scratchcounter#1}
-% {\scratchcounter\@EA`\string#1}%
-% \appendetoks
-% \ifsixthargument
-% \delcode\the\scratchcounter="%
-% \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
-% \purefamilyhex{#3}\uchexnumbers{#4}%
-% \purefamilyhex{#5}\uchexnumbers{#6}\space
-% \else\iffourthargument
-% \mathcode\the\scratchcounter="%
-% \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
-% \purefamilyhex{#3}\uchexnumbers{#4}\space
-% \fi\fi\to\mathtoks
-% \let\purefamilyhex\normalpurefamilyhex
-% \tracemathcharacter{#1}}
-
-\newtoks\mathscratchtoks
-
-\def\definemathcharacter
- {\chardef\mathcharactermode\zerocount
- \dosixtupleempty\dodefinemathcharacter}
-
-\def\redefinemathcharacter
- {\chardef\mathcharactermode\plusone
- \dosixtupleempty\dodefinemathcharacter}
-
-\def\dodefinemathcharacter[#1][#2][#3][#4][#5][#6]%
- {\ifcase\mathcharactermode
- \setmathtoks
- \or
- \let\mathtoks\mathscratchtoks \mathtoks\emptytoks
- \fi
- \ifdynamicmathfamilies \let\purefamilyhex\relax \fi
- \doifnumberelse{#1}
- {\scratchcounter#1}
- {\scratchcounter\@EA`\string#1}%
- \appendetoks
- \ifsixthargument
- \delcode\the\scratchcounter="%
- \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
- \purefamilyhex{#3}\uchexnumbers{#4}%
- \purefamilyhex{#5}\uchexnumbers{#6}\space
- \else\iffourthargument
- \mathcode\the\scratchcounter="%
- \ifnum\puremathcode{#2}>7 0\else\puremathcode{#2}\fi
- \purefamilyhex{#3}\uchexnumbers{#4}\space
- \fi\fi
- \to \mathtoks
- \let\purefamilyhex\normalpurefamilyhex
- \ifcase\mathcharactermode
- \expandafter\tracemathcharacter
- \or
- \the\mathtoks
- \mathtoks\emptytoks
- \expandafter\gobbleoneargument
- \fi{#1}} % maybe lookahead
-
-\def\tracemathcharacter#1%
- {\iftracemathcollection
- {\endgraf
- \doifnumberelse{#1}
- {\hbox{\tttf\rawcharacter{#1}~:~{\mathematics{\rawcharacter{#1}}}}}
- {\hbox{\type{#1}~:~{\mathematics{#1}}}}
- \endgraf}%
- \fi}
-
-\def\definemathcommand
- {\dotripleempty\dodefinemathcommand}
-
-\def\dodefinemathcommand[#1][#2][#3]#4% command class args meaning
- {\unexpanded\setgvalue{#1}{\dohandlemathtoken{#1}}%
- \ifthirdargument
- \processaction
- [#3]
- [one=>\setvalue{\@mt@\mathcollection#1}##1{\puremathcomm{#2}{#4{##1}}},
- two=>\setvalue{\@mt@\mathcollection#1}##1##2{\puremathcomm{#2}{#4{##1}{##2}}}]%
- \else\ifsecondargument
- \setvalue{\@mt@\mathcollection#1}{\puremathcomm{#2}{#4}}%
- \else
- \setvalue{\@mt@\mathcollection#1}{\puremathcomm{nothing}{#4}}%
- \fi\fi
- \tracemathcommand{#1}}
-
-\def\tracemathcommand#1%
- {\iftracemathcollection
- \endgraf\hbox{\tex{#1}~:~{\mathematics{\getvalue{#1}{}}}}\endgraf
- \fi}
-
-\def\startmathcollection[#1]%
- {\pushmacro\mathcollection
- \setmathcollection{#1}}
-
-\def\setmathcollection#1%
- {\edef\mathcollection{#1}%
- \doifundefined{\@ml@\mathcollection}
- {\expandafter\newtoks\csname\@ml@\mathcollection\endcsname}}
-
-\def\stopmathcollection
- {\popmacro\mathcollection}
-
-\def\startrawmathcollection
- {\startmathcollection}
-
-\def\stoprawmathcollection
- {\stopmathcollection}
-
-\newtoks\mathtoks
-
-\def\setmathtoks
- {\@EA\let\@EA\mathtoks\csname\@ml@\mathcollection\endcsname}
-
-\def\currentmathcollection{\mathcollection}
-
-\let\nomathcollection\s!default
-
-\def\enablemathcollection[#1]%
- {\doifnot{#1}\s!default
- {\setmathcollection\s!default
- \the\csname\@ml@\mathcollection\endcsname}%
- \setmathcollection{#1}%
- \the\csname\@ml@\mathcollection\endcsname}
-
-% hook 'm into the font mechanism
-
-\definefilesynonym[\f!mathprefix\s!default][\f!mathprefix tex]
-
-\def\usemathcollection
- {\dodoubleempty\dousemathcollection}
-
-\def\dousemathcollection[#1][#2]%
- {\pushmacro\fontclass
- \pushmacro\mathclass
- \ifsecondargument
- \edef\fontclass{#1}%
- \edef\mathclass{#2}%
- \else
- \edef\mathclass{#1}%
- \fi
- \doinputonce{\truefilename{\f!mathprefix\mathclass}.mkii}%
- \doifsomething\fontclass{\setevalue{\@mc@\fontclass\@mc@}{\mathclass}}%
- \popmacro\mathclass
- \popmacro\fontclass}
-
-\let\mathclass\nomathcollection
-
-\letvalue{\@mc@\@mc@}\nomathcollection
-
-% \def\autoenablemathcollection
-% {\doifdefinedelse{\@mc@\fontclass\@mc@}
-% {\enablemathcollection[\getvalue{\@mc@\fontclass\@mc@}]}
-% {\enablemathcollection[\s!default]}} % ? ? ?
-
-\def\autoenablemathcollection
- {\expanded{\enablemathcollection[\executeifdefined{\@mc@\fontclass\@mc@}\nomathcollection]}}
-
-\appendtoks\autoenablemathcollection\to\mathstrategies
-
-\fetchruntimecommand \showmathcharacters {\f!mathprefix\s!run}
-\fetchruntimecommand \showmathtoken {\f!mathprefix\s!run}
-
-\def\resetmathcollection[#1]%
- {\def\mathcollection{#1}%
- \forgetdoingonce{\f!mathprefix\mathcollection.mkii}%
- \setmathtoks
- \ifx\mathtoks\relax\else\mathtoks\emptytoks\fi}
-
-%D \macros
-%D {ifmathpunctuation, enablemathpunctuation,
-%D definemathpunctuation}
-%D
-%D This will replace periods by comma's:
-%D
-%D \starttyping
-%D \definemathpunctuation . textcomma textperiod
-%D \definemathpunctuation , textcomma textcomma
-%D
-%D \appendtoks
-%D \redefinemathcharacter [.] [ord] [mi] ["3B]%
-%D \to \everymathpunctuation
-%D \stoptyping
-
-% \newif\ifmathpunctuation
-%
-% \def\enablemathpunctuation{\mathpunctuationtrue}
-%
-% \def\definemathpunctuation #1 #2 #3 %
-% {\appendtoks
-% \initializemathpunctuation{#1}{#2}{#3}%
-% \to\everymathematics}
-%
-% \def\initializemathpunctuation#1#2#3% sloowww
-% {\ifmathpunctuation % hm move this test to everymath, or better a separate token list
-% \mathcode`#1="8000
-% \defineactivecharacter #1 {\dohandlemathpunctuation{#2}{#3}}%
-% \fi}
-%
-% \unexpanded\def\dohandlemathpunctuation#1#2% \if fails in mathml interval
-% {\def\next{\csname\ifx\space\nexttoken#2\else#1\fi\endcsname}%
-% \futurelet\nexttoken\next}
-
-\newtoks\everymathpunctuation
-
-\def\enablemathpunctuation % can be called inside math, so after \everymathematics
- {\relax
- \ifmmode
- \the\everymathpunctuation
- \fi
- \appendtoksonce
- \the\everymathpunctuation
- \to\everymathematics}
-
-\def\definemathpunctuation #1 #2 #3 %
- {\appendtoks
- \initializemathpunctuation{#1}{#2}{#3}%
- \to\everymathpunctuation}
-
-\def\initializemathpunctuation#1#2#3% sloowww
- {\mathcode`#1="8000
- \defineactivecharacter #1 {\dohandlemathpunctuation{#2}{#3}}}
-
-\unexpanded\def\dohandlemathpunctuation#1#2% \if fails in mathml interval
- {\def\next{\csname\ifx\space\nexttoken#2\else#1\fi\endcsname}%
- \futurelet\nexttoken\next}
-
-%D \startbuffer
-%D \enablemathpunctuation$(1,2) (1, 2) (1{,}2) \hbox{foo, not bar}$
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \blank{\getbuffer}\blank
-
-%D needed for sin, cos etc
-
-\def\mfunction #1{{\mr#1}}
-
-% \def\mlimitsfunction #1{\mathlimopcomm{{\mr#1}}
-% \def\mnolimitsfunction#1{\mathnolopcomm{{\mr#1}}
-
-%D Taco posted this solution as response to a mail by Olivier, so
-%D let's integrate it here.
-
-% \def\setmathfunctionstyle#1% rm ss tt
-% {\def\mfunction##1% no families, just scaling a la text
-% {\mathchoice
-% {\hbox{\csname#1\endcsname\tf ##1}}
-% {\hbox{\csname#1\endcsname\tf ##1}}
-% {\hbox{\csname#1\endcsname\tfx ##1}}
-% {\hbox{\csname#1\endcsname\tfxx##1}}}}
-
-\def\currentmscaledstyle{rm} % will be plugged into the typeface text=ss option
-
-\def\setmathfunctionstyle#1% rm ss tt
- {\doifsomething{#1}
- {\def\currentmscaledstyle{#1}%
- \def\mathopnolimits##1{\mathop{\mscaledtext{##1}}\nolimits}%
- \def\mfunction##1{\mscaledtext{##1}}}}
-
-\def\mscaledtext#1%
- {\mathchoice
- {\hbox{\csname\currentmscaledstyle\endcsname\tf #1}}
- {\hbox{\csname\currentmscaledstyle\endcsname\tf #1}}
- {\hbox{\csname\currentmscaledstyle\endcsname\tfx #1}}
- {\hbox{\csname\currentmscaledstyle\endcsname\tfxx#1}}}
-
-%D We can force the way functions are typeset by manipulating the text
-%D option:
-%D
-%D \starttyping
-%D \definetypeface[iwona][ss][sans][iwona][default][encoding=texnansi]
-%D \definetypeface[iwona][mm][math][iwona][default][encoding=texnansi,text=ss]
-%D \stoptyping
-%D
-%D This hooks into the math handler with:
-
-\appendtoks
- \setmathfunctionstyle\currentmathtextstyle
-\to \everybodyfont
-
-%D Usage:
-%D
-%D \starttyping
-%D \setmathfunctionstyle\fontstyle % or {rm} or {ss} or ..
-%D \rm test $\sin{(x^{\sin(x^{\sin(x)})})}$ test
-%D \ss test $\sin{(x^{\sin(x^{\sin(x)})})}$ test
-%D \tt test $\sin{(x^{\sin(x^{\sin(x)})})}$ test
-%D \stoptyping
-
-\edef\hexmrfam {0} \edef\hexbsfam {8}
-\edef\hexmifam {1} \edef\hexbifam {9}
-\edef\hexsyfam {2} \edef\hexscfam {A}
-\edef\hexexfam {3} \edef\hextffam {B}
-\edef\hexitfam {4} \edef\hexmafam {C}
-\edef\hexslfam {5} \edef\hexmbfam {D}
-\edef\hexbffam {6} \edef\hexmcfam {E}
-\edef\hexnnfam {7} \edef\hexmdfam {F}
-
-\definefamilysynonym [default] [letters] [mr]
-\definefamilysynonym [default] [operators] [sy]
-\definefamilysynonym [default] [lcgreek] [mi]
-\definefamilysynonym [default] [ucgreek] [mr]
-\definefamilysynonym [default] [vargreek] [mi]
-\definefamilysynonym [default] [mitfamily] [mi]
-\definefamilysynonym [default] [calfamily] [sy]
-
-\definefamilysynonym [default] [0] [mr]
-\definefamilysynonym [default] [1] [mi]
-\definefamilysynonym [default] [2] [sy]
-\definefamilysynonym [default] [3] [ex]
-
-\enablemathcollection[default]
-
-\usemathcollection [default] [tex]
-\usemathcollection [default] [ams]
-\usemathcollection [default] [uni]
-
-\enablemathcollection[default]
-
-%D Some goodies:
-
-\def\Angstrom{\nomathematics{\Aring}}
-
-%D Bold math:
-%D
-%D \starttyping
-%D \usetypescript [lucida] [texnansi]
-%D
-%D \definetypeface [boldmath] [rm] [serif]
-%D [lucida] [default] [encoding=texnansi]
-%D \definetypeface [boldmath] [tt] [mono]
-%D [lucida] [default] [encoding=texnansi]
-%D \definetypeface [boldmath] [ss] [sans]
-%D [lucida] [default] [encoding=texnansi]
-%D \definetypeface [boldmath] [mm] [boldmath]
-%D [lucida] [default] [encoding=texnansi]
-%D
-%D \switchtobodyfont[lucida,10pt]
-%D
-%D \showmathtoken{Gamma} $\Gamma \Delta \alpha \delta \zeta$
-%D
-%D \switchtobodyfont[boldmath,10pt]
-%D
-%D \showmathtoken{Gamma} $\Gamma \Delta \alpha \delta \zeta$
-%D \stoptyping
-
-%D \macros
-%D {nonknuthmode, donknuthmode}
-%D
-%D The underscore is frequently used in manuals but unfortunately \TEX\ prefers
-%D it to be a math specific character. And since computer modern fonts didn't
-%D have an underscore, one had to use commands to fake one. Nowadays we do
-%D have underscores in latin modern, and since all other fonts have them, we
-%D decided to get away from the restriction to use the underscore character in
-%D text mode.
-%D
-%D \starttyping
-%D \def\test#1{#1}
-%D
-%D \nonknuthmode $x_2$ x_2 \test{$x_2$} \test{x_2}
-%D
-%D \donknuthmode $x_2$ x_2 \test{$x_2$} \test{x_2}
-%D \stoptyping
-%D
-%D The result is as expected: the first line typesets ok, while the second
-%D one triggers an error message.
-
-\bgroup
-
- \ifx\normalsuber\undefined \def\normalsuber{_} \fi
- \ifx\normalsuper\undefined \def\normalsuper{^} \fi
-
- \catcode`_=\active
- \catcode`^=\active
-
- \gdef\nonknuthmode
- {\appendtoks\let_\normalsuber\let^\normalsuper\to\everymathematics
- \mathcode`_="8000
- \mathcode`^="8000
- \catcode`_=\@@other
- \catcode`^=\@@other
- \let\nonknuthmode\relax}
-
- \gdef\donknuthmode
- {\catcode`_=\@@subscript
- \catcode`^=\@@superscript}
-
-\egroup
-
-%D \macros
-%D {checkdelimiters, fakeleftdelimiter, fakerightdelimiter}
-%D
-%D Handy for non matching situations (as with mathml):
-%D
-%D \starttyping
-%D \checkdelimiters{... bla bla ...}
-%D \fakeleftdelimiter
-%D ... bla bla ...
-%D \fakerightdelimiter
-%D \stoptyping
-
-\newcount\delimitercount
-
-\def\leftfakedelimiter {\advance\delimitercount\minusone\gobbleoneargument}%
-\def\rightfakedelimiter{\advance\delimitercount\plusone \gobbleoneargument}%
-
-\def\checkdelimiters#1%
- {\delimitercount\zerocount
- \setbox\scratchbox\hbox\bgroup
- \let\left \leftfakedelimiter
- \let\right\rightfakedelimiter
- $#1\expandafter$\expandafter
- \egroup
- \expandafter\delimitercount\the\delimitercount\relax}
-
-\def\fakeleftdelimiter {\ifnum\delimitercount>\zerocount\left .\fi}
-\def\fakerightdelimiter{\ifnum\delimitercount<\zerocount\right.\fi}
-
-%D Needed for unicode:
-
-\def\nulloperator{\mathortext{\mathop{\null}}{\null}}
-
-%D To be dealt with ...
-
-\mathcode`\ ="8000 % \space
-\mathcode`\'="8000 % ^\prime
-\mathcode`\_="8000 % \_
-
-\protect \endinput
-
-\tracemathcollectiontrue
- \input math-tex \page
-\setupbodyfont[ams] \enablemathcollection[default] \input math-ams \page
-\setupbodyfont[lbr] \enablemathcollection[lbr] \input math-lbr \page
-\setupbodyfont[eul] \enablemathcollection[eul] \input math-eul \stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkii/math-lbr.mkii b/Master/texmf-dist/tex/context/base/mkii/math-lbr.mkii
deleted file mode 100644
index 0aa1df66514..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/math-lbr.mkii
+++ /dev/null
@@ -1,481 +0,0 @@
-%D \module
-%D [ file=math-lbr,
-%D version=2001.04.12,
-%D title=\CONTEXT\ Math Macros,
-%D subtitle=Lucida Specials,
-%D author={Hans Hagen \& Taco Hoekwater},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\definefamilysynonym [lbr] [calligraphy] [sy]
-\definefamilysynonym [lbr] [oldstyle] [mi]
-
-\definefamilysynonym [lbr] [blackboard] [ma]
-\definefamilysynonym [lbr] [ucgreek] [mb]
-\definefamilysynonym [lbr] [vargreek] [mi]
-
-\startmathcollection[lbr]
-
-\definemathsymbol [boxdot] [bin] [sy] ["ED]
-\definemathsymbol [boxplus] [bin] [sy] ["EA]
-\definemathsymbol [boxtimes] [bin] [sy] ["EC]
-\definemathsymbol [square] [ord] [ma] ["02]
-\definemathsymbol [Box] [ord] [ma] ["02] % square
-\definemathsymbol [blacksquare] [ord] [ma] ["03]
-\definemathsymbol [centerdot] [bin] [ma] ["E1] % [sy] ["01]
-\definemathsymbol [Diamond] [ord] [sy] ["05]
-\definemathsymbol [lozenge] [ord] [sy] ["05] % Diamond
-\definemathsymbol [blacklozenge] [ord] [ma] ["09]
-\definemathsymbol [circlearrowright] [rel] [ma] ["8C]
-\definemathsymbol [circlearrowleft] [rel] [ma] ["8B]
-\definemathsymbol [rightleftharpoons] [rel] [sy] ["8E]
-\definemathsymbol [leftrightharpoons] [rel] [sy] ["8D]
-\definemathsymbol [boxminus] [bin] [sy] ["EB]
-\definemathsymbol [Vdash] [rel] [sy] ["F0]
-\definemathsymbol [Vvdash] [rel] [mb] ["D3]
-\definemathsymbol [vDash] [rel] [mb] ["D6]
-\definemathsymbol [twoheadrightarrow] [rel] [ma] ["25]
-\definemathsymbol [twoheadleftarrow] [rel] [ma] ["23]
-\definemathsymbol [leftleftarrows] [rel] [ma] ["71]
-\definemathsymbol [rightrightarrows] [rel] [ma] ["73]
-\definemathsymbol [upuparrows] [rel] [ma] ["72]
-\definemathsymbol [downdownarrows] [rel] [ma] ["74]
-\definemathsymbol [upharpoonright] [rel] [ma] ["75]
-\definemathsymbol [restriction] [rel] [ma] ["77]
-\definemathsymbol [downharpoonright] [rel] [ma] ["77]
-\definemathsymbol [upharpoonleft] [rel] [ma] ["76]
-\definemathsymbol [downharpoonleft] [rel] [ma] ["78]
-\definemathsymbol [rightarrowtail] [rel] [ma] ["29]
-\definemathsymbol [leftarrowtail] [rel] [ma] ["28]
-\definemathsymbol [leftrightarrows] [rel] [ma] ["6E]
-\definemathsymbol [rightleftarrows] [rel] [ma] ["6D]
-\definemathsymbol [Lsh] [rel] [ma] ["7B]
-\definemathsymbol [Rsh] [rel] [ma] ["7D]
-\definemathsymbol [rightsquigarrow] [rel] [ma] ["8E]
-\definemathsymbol [leadsto] [rel] [ma] ["8E] % rightsquigarrow
-\definemathsymbol [leftrightsquigarrow] [rel] [ma] ["91]
-\definemathsymbol [looparrowleft] [rel] [ma] ["3F]
-\definemathsymbol [looparrowright] [rel] [ma] ["40]
-\definemathsymbol [circeq] [rel] [sy] ["D0]
-\definemathsymbol [succsim] [rel] [sy] ["E1]
-\definemathsymbol [gtrsim] [rel] [sy] ["DD]
-\definemathsymbol [gtrapprox] [rel] [mb] ["DB]
-\definemathsymbol [multimap] [rel] [mb] ["C7]
-\definemathsymbol [therefore] [rel] [sy] ["90]
-\definemathsymbol [because] [rel] [sy] ["91]
-\definemathsymbol [doteqdot] [rel] [sy] ["CA]
-\definemathsymbol [Doteq] [rel] [sy] ["CA] % doteqdot
-\definemathsymbol [triangleq] [rel] [sy] ["D5]
-\definemathsymbol [precsim] [rel] [sy] ["E0]
-\definemathsymbol [lesssim] [rel] [sy] ["DC]
-\definemathsymbol [lessapprox] [rel] [mb] ["DA]
-\definemathsymbol [eqslantless] [rel] [mb] ["E2]
-\definemathsymbol [eqslantgtr] [rel] [mb] ["E3]
-\definemathsymbol [curlyeqprec] [rel] [mb] ["E6]
-\definemathsymbol [curlyeqsucc] [rel] [mb] ["E7]
-\definemathsymbol [preccurlyeq] [rel] [mb] ["E4]
-\definemathsymbol [leqq] [rel] [sy] ["DA]
-\definemathsymbol [leqslant] [rel] [mb] ["E0]
-\definemathsymbol [lessgtr] [rel] [sy] ["DE]
-\definemathsymbol [backprime] [ord] [mb] ["C8]
-\definemathsymbol [dabar@] [ord] [ma] ["03] % !! @
-\definemathsymbol [risingdotseq] [rel] [sy] ["CC]
-\definemathsymbol [fallingdotseq] [rel] [sy] ["CB]
-\definemathsymbol [succcurlyeq] [rel] [mb] ["E5]
-\definemathsymbol [geqq] [rel] [sy] ["DB]
-\definemathsymbol [geqslant] [rel] [mb] ["E1]
-\definemathsymbol [gtrless] [rel] [sy] ["DF]
-\definemathsymbol [sqsubset] [rel] [sy] ["E4]
-\definemathsymbol [sqsupset] [rel] [sy] ["E5]
-\definemathsymbol [vartriangleright] [rel] [mb] ["2E]
-\definemathsymbol [rhd] [bin] [mb] ["2E]
-\definemathsymbol [lhd] [bin] [mb] ["2F]
-\definemathsymbol [vartriangleleft] [rel] [mb] ["2F]
-\definemathsymbol [trianglerighteq] [rel] [sy] ["F5]
-\definemathsymbol [unrhd] [bin] [sy] ["F5] % trianglerighteq
-\definemathsymbol [trianglelefteq] [rel] [sy] ["F4]
-\definemathsymbol [unlhd] [bin] [sy] ["F4] % trianglelefteq
-\definemathsymbol [bigstar] [ord] [ma] ["AB]
-\definemathsymbol [between] [rel] [mb] ["F2]
-\definemathsymbol [blacktriangledown] [ord] [ma] ["07]
-\definemathsymbol [blacktriangleright] [rel] [mb] ["F1]
-\definemathsymbol [blacktriangleleft] [rel] [mb] ["F0]
-\definemathsymbol [vartriangle] [rel] [ma] ["04]
-\definemathsymbol [triangleup] [ord] [ma] ["04] % vartriangle
-\definemathsymbol [blacktriangle] [ord] [ma] ["05]
-\definemathsymbol [triangledown] [ord] [ma] ["06]
-\definemathsymbol [eqcirc] [rel] [sy] ["CF]
-\definemathsymbol [lesseqgtr] [rel] [mb] ["E8]
-\definemathsymbol [gtreqless] [rel] [mb] ["E9]
-\definemathsymbol [lesseqqgtr] [rel] [mb] ["EA]
-\definemathsymbol [gtreqqless] [rel] [mb] ["EB]
-\definemathsymbol [Rrightarrow] [rel] [ma] ["6C]
-\definemathsymbol [Lleftarrow] [rel] [ma] ["6A]
-\definemathsymbol [veebar] [bin] [mb] ["D2]
-\definemathsymbol [barwedge] [bin] [sy] ["F6]
-\definemathsymbol [doublebarwedge] [bin] [sy] ["D4]
-\definemathsymbol [angle] [ord] [sy] ["8B]
-\definemathsymbol [measuredangle] [ord] [sy] ["8C]
-\definemathsymbol [sphericalangle] [ord] [sy] ["8D]
-\definemathsymbol [varpropto] [rel] [sy] ["2F]
-\definemathsymbol [smallsmile] [rel] [mb] ["5E]
-\definemathsymbol [smallfrown] [rel] [mb] ["5F]
-\definemathsymbol [Subset] [rel] [sy] ["F8]
-\definemathsymbol [Supset] [rel] [sy] ["F9]
-\definemathsymbol [Cup] [bin] [sy] ["FA]
-\definemathsymbol [doublecup] [bin] [sy] ["FA] % Cup
-\definemathsymbol [Cap] [bin] [sy] ["FB]
-\definemathsymbol [doublecap] [bin] [sy] ["FB]
-\definemathsymbol [curlywedge] [bin] [sy] ["84]
-\definemathsymbol [curlyvee] [bin] [sy] ["85]
-\definemathsymbol [leftthreetimes] [bin] [mb] ["D0]
-\definemathsymbol [rightthreetimes] [bin] [mb] ["D1]
-\definemathsymbol [subseteqq] [rel] [mb] ["EE]
-\definemathsymbol [supseteqq] [rel] [mb] ["EF]
-\definemathsymbol [bumpeq] [rel] [sy] ["C8]
-\definemathsymbol [Bumpeq] [rel] [sy] ["C7]
-\definemathsymbol [llless] [rel] [mb] ["DE]
-\definemathsymbol [lll] [rel] [mb] ["DE] % llless
-\definemathsymbol [gggtr] [rel] [mb] ["DF]
-\definemathsymbol [ggg] [rel] [mb] ["DF] % gggtr
-\definemathsymbol [ulcorner] [open] [ma] ["5B] [ma] ["5B]
-\definemathsymbol [urcorner] [close] [ma] ["5C] [ma] ["5C]
-\definemathsymbol [circledS] [ord] [mb] ["CA]
-\definemathsymbol [pitchfork] [rel] [ma] ["F3]
-\definemathsymbol [dotplus] [bin] [sy] ["89]
-\definemathsymbol [backsim] [rel] [sy] ["24]
-\definemathsymbol [backsimeq] [rel] [sy] ["27]
-\definemathsymbol [llcorner] [open] [ma] ["5D] [ma] ["5D]
-\definemathsymbol [lrcorner] [close] [ma] ["5E] [ma] ["5E]
-\definemathsymbol [complement] [ord] [mb] ["94]
-\definemathsymbol [intercal] [bin] [ma] ["03] % !!
-\definemathsymbol [circledcirc] [bin] [sy] ["E6]
-\definemathsymbol [circledast] [bin] [sy] ["E7]
-\definemathsymbol [circleddash] [bin] [mb] ["CC]
-
-\stopmathcollection
-
-\startmathcollection [lbr]
-
-\definemathsymbol [lvertneqq] [rel] [ma] ["DE]
-\definemathsymbol [gvertneqq] [rel] [ma] ["DE]
-\definemathsymbol [nleq] [rel] [ma] ["9C]
-\definemathsymbol [ngeq] [rel] [ma] ["9D]
-\definemathsymbol [nless] [rel] [ma] ["9A]
-\definemathsymbol [ngtr] [rel] [ma] ["9B]
-\definemathsymbol [nprec] [rel] [ma] ["E5]
-\definemathsymbol [nsucc] [rel] [ma] ["E6]
-\definemathsymbol [lneqq] [rel] [ma] ["DC]
-\definemathsymbol [gneqq] [rel] [ma] ["DE]
-\definemathsymbol [nleqslant] [rel] [ma] ["D6]
-\definemathsymbol [ngeqslant] [rel] [ma] ["D7]
-\definemathsymbol [lneq] [rel] [ma] ["DA]
-\definemathsymbol [gneq] [rel] [ma] ["DB]
-\definemathsymbol [npreceq] [rel] [ma] ["E7]
-\definemathsymbol [nsucceq] [rel] [ma] ["E8]
-\definemathsymbol [precnsim] [rel] [ma] ["EB]
-\definemathsymbol [succnsim] [rel] [ma] ["EC]
-\definemathsymbol [lnsim] [rel] [ma] ["E0]
-\definemathsymbol [gnsim] [rel] [ma] ["E2]
-\definemathsymbol [nleqq] [rel] [ma] ["D8]
-\definemathsymbol [ngeqq] [rel] [ma] ["D9]
-\definemathsymbol [precneqq] [rel] [ma] ["E9]
-\definemathsymbol [succneqq] [rel] [ma] ["EA]
-\definemathsymbol [precnapprox] [rel] [ma] ["ED]
-\definemathsymbol [succnapprox] [rel] [ma] ["EE]
-\definemathsymbol [lnapprox] [rel] [ma] ["E4]
-\definemathsymbol [gnapprox] [rel] [ma] ["E3]
-\definemathsymbol [nsim] [rel] [ma] ["96]
-\definemathsymbol [ncong] [rel] [ma] ["99]
-\definemathsymbol [diagup] [ord] [mb] ["CD]
-\definemathsymbol [diagdown] [ord] [mb] ["D8]
-\definemathsymbol [varsubsetneq] [rel] [ma] ["D0]
-\definemathsymbol [varsupsetneq] [rel] [ma] ["D1]
-\definemathsymbol [nsubseteqq] [rel] [ma] ["CA]
-\definemathsymbol [nsupseteqq] [rel] [ma] ["CB]
-\definemathsymbol [subsetneqq] [rel] [ma] ["CE]
-\definemathsymbol [supsetneqq] [rel] [ma] ["CF]
-\definemathsymbol [varsubsetneqq] [rel] [ma] ["D2]
-\definemathsymbol [varsupsetneqq] [rel] [ma] ["D3]
-\definemathsymbol [subsetneq] [rel] [ma] ["CC]
-\definemathsymbol [supsetneq] [rel] [ma] ["CD]
-\definemathsymbol [nsubseteq] [rel] [ma] ["C8]
-\definemathsymbol [nsupseteq] [rel] [ma] ["C9]
-\definemathsymbol [nparallel] [rel] [ma] ["F7]
-\definemathsymbol [nmid] [rel] [ma] ["F6]
-\definemathsymbol [nshortmid] [rel] [ma] ["F4]
-\definemathsymbol [nshortparallel] [rel] [ma] ["F5]
-\definemathsymbol [nvdash] [rel] [ma] ["F8]
-\definemathsymbol [nVdash] [rel] [ma] ["F9]
-\definemathsymbol [nvDash] [rel] [ma] ["FA]
-\definemathsymbol [nVDash] [rel] [ma] ["FB]
-\definemathsymbol [ntrianglerighteq] [rel] [ma] ["F2]
-\definemathsymbol [ntrianglelefteq] [rel] [ma] ["F1]
-\definemathsymbol [ntriangleleft] [rel] [ma] ["EF]
-\definemathsymbol [ntriangleright] [rel] [ma] ["F0]
-\definemathsymbol [nleftarrow] [rel] [ma] ["32]
-\definemathsymbol [nrightarrow] [rel] [ma] ["33]
-\definemathsymbol [nLeftarrow] [rel] [ma] ["66]
-\definemathsymbol [nRightarrow] [rel] [ma] ["68]
-\definemathsymbol [nLeftrightarrow] [rel] [ma] ["67]
-\definemathsymbol [nleftrightarrow] [rel] [ma] ["34]
-\definemathsymbol [divideontimes] [bin] [mb] ["F7]
-\definemathsymbol [varnothing] [ord] [sy] ["53]
-\definemathsymbol [nexists] [ord] [ma] ["20]
-\definemathsymbol [Finv] [ord] [mb] ["90]
-\definemathsymbol [Game] [ord] [mb] ["91]
-\definemathsymbol [mho] [ord] [mb] ["92]
-\definemathsymbol [eth] [ord] [ma] ["03] % !!
-\definemathsymbol [eqsim] [rel] [sy] ["99]
-\definemathsymbol [beth] [ord] [mb] ["95]
-\definemathsymbol [gimel] [ord] [mb] ["96]
-\definemathsymbol [daleth] [ord] [mb] ["97]
-\definemathsymbol [lessdot] [bin] [mb] ["DC]
-\definemathsymbol [gtrdot] [bin] [mb] ["DD]
-\definemathsymbol [ltimes] [bin] [mb] ["CF]
-\definemathsymbol [rtimes] [bin] [mb] ["CE]
-\definemathsymbol [shortmid] [rel] [mb] ["F4]
-\definemathsymbol [shortparallel] [rel] [mb] ["F5]
-\definemathsymbol [smallsetminus] [bin] [mb] ["D8]
-\definemathsymbol [thicksim] [rel] [sy] ["18] % not that thick
-\definemathsymbol [thickapprox] [rel] [sy] ["19] % not that thick
-\definemathsymbol [approxeq] [rel] [sy] ["9D]
-\definemathsymbol [succapprox] [rel] [mb] ["ED]
-\definemathsymbol [precapprox] [rel] [mb] ["EC]
-\definemathsymbol [curvearrowleft] [rel] [ma] ["87]
-\definemathsymbol [curvearrowright] [rel] [ma] ["88]
-\definemathsymbol [digamma] [ord] [ma] ["03] % !!
-\definemathsymbol [varkappa] [ord] [mb] ["9B]
-\definemathsymbol [Bbbk] [ord] [ma] ["6B]
-\definemathsymbol [hslash] [ord] [mb] ["9D]
-\definemathsymbol [hbar] [ord] [ma] ["1B]
-\definemathsymbol [backepsilon] [rel] [ma] ["03] % !!
-
-\stopmathcollection
-
-\startmathcollection [lbr]
-
-\definemathsymbol [yen] [nothing] [ma] ["03] % !!
-\definemathsymbol [checkmark] [nothing] [ma] ["AC]
-\definemathsymbol [circledR] [nothing] [mb] ["C9]
-\definemathsymbol [maltese] [nothing] [mb] ["CB]
-
-\stopmathcollection
-
-\startmathcollection [lbr]
-
-\definemathsymbol [dashrightarrow] [rel] [ma] ["3A]
-\definemathsymbol [dashleftarrow] [rel] [ma] ["38]
-\definemathcommand [dasharrow] [rel] {\dashleftarrow\mkern-15.8mu\dashrightarrow}
-%definemathcommand [Join] [rel] {\mathchar"0D6F\mkern-15.8mu\mathchar"0D6E} % !!
-
-\stopmathcollection
-
-\startmathcollection[lbr]
-
-\definemathcharacter [91] [open] [mi] ["86]
-\definemathcharacter [93] [close] [mi] ["87]
-\definemathcharacter [(] [open] [mi] ["84]
-\definemathcharacter [)] [close] [mi] ["85]
-\definemathcharacter [/] [nothing] [mi] ["3D]
-\definemathcharacter [=] [rel] [sy] ["83]
-\definemathcharacter [+] [bin] [sy] ["82]
-
-\definemathcharacter [91] [nothing] [mi] ["86] [ex] ["02]
-\definemathcharacter [93] [nothing] [mi] ["87] [ex] ["03]
-\definemathcharacter [(] [nothing] [mi] ["84] [ex] ["00]
-\definemathcharacter [)] [nothing] [mi] ["85] [ex] ["01]
-\definemathcharacter [/] [nothing] [mi] ["3D] [ex] ["0E]
-
-\stopmathcollection
-
-\startmathcollection[lbr]
-
-\definemathcharacter [:] [punct] [tf] ["3A] % unbelievable, but enabled again for Mojca
-\definemathcharacter [;] [punct] [tf] ["3B] % unbelievable, but enabled again for Mojca
-
-\stopmathcollection
-
-\startmathcollection[lbr]
-
-\definemathsymbol [ldbrack] [open] [mi] ["82] [ex] ["82]
-\definemathsymbol [rdbrack] [close] [mi] ["83] [ex] ["83]
-\definemathsymbol [surfintop] [op] [ex] ["90]
-\definemathsymbol [midintop] [op] [ex] ["92]
-\definemathsymbol [midointop] [op] [ex] ["93]
-\definemathsymbol [midsurfintop] [op] [ex] ["94]
-\definemathsymbol [largeint] [op] [ex] ["5A] [ex] ["95]
-
-% \definemathcommand [surfint] [nolop] {\surfintop}
-% \definemathcommand [midint] [nolop] {\midintop}
-% \definemathcommand [midoint] [nolop] {\midointop}
-% \definemathcommand [midsurfint] [nolop] {\midsurfintop}
-
-\definemathsymbol [surfint] [nolop] [ex] ["90]
-\definemathsymbol [midint] [nolop] [ex] ["92]
-\definemathsymbol [midoint] [nolop] [ex] ["93]
-\definemathsymbol [midsurfint] [nolop] [ex] ["94]
-
-\definemathsymbol [dblint] [ord] [mi] ["88]
-\definemathsymbol [trplint] [ord] [mi] ["89]
-\definemathsymbol [contint] [ord] [mi] ["8A]
-\definemathsymbol [surfint] [ord] [mi] ["8B]
-\definemathsymbol [volint] [ord] [mi] ["8C]
-\definemathsymbol [clwint] [ord] [mi] ["8D]
-\definemathsymbol [cclwcint] [ord] [mi] ["8E]
-\definemathsymbol [clwcint] [ord] [mi] ["8F]
-\definemathsymbol [bowtie] [rel] [mi] ["F6]
-\definemathsymbol [models] [rel] [sy] ["EE]
-\definemathsymbol [doteq] [rel] [sy] ["C9]
-\definemathsymbol [cong] [rel] [sy] ["9B]
-\definemathsymbol [hbar] [ord] [mi] ["9D]
-\definemathsymbol [neq] [rel] [ma] ["94]
-\definemathsymbol [rightleftharpoons] [rel] [ma] ["7A]
-\definemathsymbol [leftrightharpoons] [rel] [ma] ["79]
-\definemathsymbol [hookleftarrow] [rel] [ma] ["3C]
-\definemathsymbol [hookrightarrow] [rel] [ma] ["3E]
-\definemathsymbol [mapsto] [rel] [ma] ["2C]
-
-\definemathcommand [longmapsto] {\mapstochar\longrightarrow}
-
-\stopmathcollection
-
-\startmathcollection[lbr]
-
-\definemathsymbol [Gamma] [alpha] [ucgreek] ["00]
-\definemathsymbol [Delta] [alpha] [ucgreek] ["01]
-\definemathsymbol [Theta] [alpha] [ucgreek] ["02]
-\definemathsymbol [Lambda] [alpha] [ucgreek] ["03]
-\definemathsymbol [Xi] [alpha] [ucgreek] ["04]
-\definemathsymbol [Pi] [alpha] [ucgreek] ["05]
-\definemathsymbol [Sigma] [alpha] [ucgreek] ["06]
-\definemathsymbol [Upsilon] [alpha] [ucgreek] ["07]
-\definemathsymbol [Phi] [alpha] [ucgreek] ["08]
-\definemathsymbol [Psi] [alpha] [ucgreek] ["09]
-\definemathsymbol [Omega] [alpha] [ucgreek] ["0A]
-
-\definemathsymbol [varGamma] [ord] [vargreek] ["00]
-\definemathsymbol [varDelta] [ord] [vargreek] ["01]
-\definemathsymbol [varTheta] [ord] [vargreek] ["02]
-\definemathsymbol [varLambda] [ord] [vargreek] ["03]
-\definemathsymbol [varXi] [ord] [vargreek] ["04]
-\definemathsymbol [varPi] [ord] [vargreek] ["05]
-\definemathsymbol [varSigma] [ord] [vargreek] ["06]
-\definemathsymbol [varUpsilon] [ord] [vargreek] ["07]
-\definemathsymbol [varPhi] [ord] [vargreek] ["08]
-\definemathsymbol [varPsi] [ord] [vargreek] ["09]
-\definemathsymbol [varOmega] [ord] [vargreek] ["0A]
-
-\stopmathcollection
-
-% we define the whole lot, although only a few differ (esp dot)
-
-% \startmathcollection[lbr]
-%
-% \definemathsymbol [acute] [accent] [tf] ["13] % mr -> tf
-% \definemathsymbol [grave] [accent] [tf] ["12] % mr -> tf
-% \definemathsymbol [ddot] [accent] [tf] ["7F] % mr -> tf
-% \definemathsymbol [tilde] [accent] [tf] ["7E] % mr -> tf
-% \definemathsymbol [bar] [accent] [tf] ["16] % mr -> tf
-% \definemathsymbol [breve] [accent] [tf] ["15] % mr -> tf
-% \definemathsymbol [check] [accent] [tf] ["14] % mr -> tf
-% \definemathsymbol [hat] [accent] [tf] ["5E] % mr -> tf
-% \definemathsymbol [vec] [accent] [mi] ["7E] % [ord]
-% \definemathsymbol [dot] [accent] [tf] ["05] % mr -> tf, 5F -> 05
-% \definemathsymbol [widetilde] [accent] [ex] ["65] % [ord]
-% \definemathsymbol [widehat] [accent] [ex] ["62] % [ord]
-%
-% \stopmathcollection
-
-\startmathcollection[lbr:texnansi]
- \definemathsymbol [acute] [accent] [tf] ["13]
- \definemathsymbol [grave] [accent] [tf] ["12]
- \definemathsymbol [ddot] [accent] [tf] ["7F]
- %definemathsymbol [ddot] [accent] [tf] ["A8] % both is OK
- \definemathsymbol [tilde] [accent] [tf] ["7E]
- %definemathsymbol [tilde] [accent] [tf] ["98] % both is OK
- \definemathsymbol [bar] [accent] [tf] ["16]
- \definemathsymbol [breve] [accent] [tf] ["15]
- \definemathsymbol [check] [accent] [tf] ["14]
- \definemathsymbol [hat] [accent] [tf] ["5E]
- %definemathsymbol [hat] [accent] [tf] ["88] % both is OK
- \definemathsymbol [dot] [accent] [tf] ["05]
- % Why is mathring not defined??
- \definemathsymbol [mathring] [accent] [tf] ["17]
-\stopmathcollection
-
-\startmathcollection[lbr:ec]
- \definemathsymbol [acute] [accent] [tf] ["01]
- \definemathsymbol [grave] [accent] [tf] ["00]
- \definemathsymbol [ddot] [accent] [tf] ["04]
- \definemathsymbol [tilde] [accent] [tf] ["03]
- \definemathsymbol [bar] [accent] [tf] ["09]
- \definemathsymbol [breve] [accent] [tf] ["08]
- \definemathsymbol [check] [accent] [tf] ["07]
- \definemathsymbol [hat] [accent] [tf] ["02]
- \definemathsymbol [dot] [accent] [tf] ["0A]
- % Why is mathring not defined??
- \definemathsymbol [mathring] [accent] [tf] ["06]
-\stopmathcollection
-
-\def\LBRroot#1#2%
- {\setbox\zerocount\hbox{$\mathsurround\zeropoint#1\sqrt{#2}$}
- \dimen@\ht\zerocount \advance\dimen@-\dp\zerocount
- \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-7.5mu \box\zerocount}
-
-\def\LBRmatrix#1%
- {\null\,\vcenter{\normalbaselines\mathsurround\zeropoint
- \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
- \mathstrut\crcr\noalign{\kern-0.9\baselineskip}
- #1\crcr\mathstrut\crcr\noalign{\kern-0.9\baselineskip}}}\,}
-
-\startrawmathcollection[lbr]
-
-\definemathcommand [mathstrut] {\vphantom{f}}
-\definemathcommand [joinrel] {\mathrel{\mkern-4mu}}
-\definemathcommand [r@@t] {\LBRroot}
-\definemathcommand [matrix] {\LBRmatrix}
-
-\stoprawmathcollection
-
-% \def\LBRbig {\@@dobig{8.20}}
-% \def\LBRBig {\@@dobig{10.80}}
-% \def\LBRbigg {\@@dobig{13.42}}
-% \def\LBRBigg {\@@dobig{16.03}}
-% \def\LBRbiggg{\@@dobig{17.72}}
-% \def\LBRBiggg{\@@dobig{21.25}}
-
-\def\LBRbig {\@@dobig{0.820}}
-\def\LBRBig {\@@dobig{1.080}}
-\def\LBRbigg {\@@dobig{1.342}}
-\def\LBRBigg {\@@dobig{1.603}}
-\def\LBRbiggg{\@@dobig{1.772}}
-\def\LBRBiggg{\@@dobig{2.125}}
-
-\startrawmathcollection[lbr]
-
-\definemathcommand [big] {\LBRbig}
-\definemathcommand [Big] {\LBRBig}
-\definemathcommand [bigg] {\LBRbigg}
-\definemathcommand [Bigg] {\LBRBigg}
-\definemathcommand [biggg] {\LBRbiggg}
-\definemathcommand [Biggg] {\LBRBiggg}
-
-\stoprawmathcollection
-
-\startrawmathcollection[lbr]
-
-\definemathcommand [bigggl] [open] {\biggg}
-\definemathcommand [bigggr] [close] {\biggg}
-\definemathcommand [Bigggl] [open] {\Biggg}
-\definemathcommand [Bigggr] [close] {\Biggg}
-
-\stoprawmathcollection
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/math-pln.mkii b/Master/texmf-dist/tex/context/base/mkii/math-pln.mkii
deleted file mode 100644
index 975869c702c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/math-pln.mkii
+++ /dev/null
@@ -1,360 +0,0 @@
-%D \module
-%D [ file=math-pln,
-%D version=2001.11.16,
-%D title=\CONTEXT\ Math Macros,
-%D subtitle=Plain Helpers,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \points should become \bodyfontsize
-
-%D This is a temporary module, some of this code will move to
-%D the other math modules.
-
-\writestatus{loading}{ConTeXt Math Macros / Plain Helpers}
-
-\unprotect
-
-\ifx\displ@y\undefined \let\displ@y\relax\fi
-
-\newbox\rootbox
-
-\def\root#1\of
- {\setbox\rootbox\hbox{$\mathsurround\zeropoint\scriptscriptstyle{#1}$}%
- \mathpalette\r@@t}
-
-\def\r@@t#1#2% will be overloaded
- {\setbox\zerocount\hbox{$\mathsurround\zeropoint#1\sqrt{#2}$}\dimen@\ht\zerocount
- \advance\dimen@-\dp\zerocount
- \mkern5mu\raise.6\dimen@\copy\rootbox
- \mkern-10mu\box\zerocount}
-
-\def\mathhexbox#1#2#3%
- {\leavevmode
- \hbox{$\mathsurround\zeropoint\mathchar"#1#2#3$}}
-
-\def\oalign#1%
- {\leavevmode
- \vtop
- {\baselineskip\zeroskip \lineskip.25ex%
- \ialign{##\crcr#1\crcr}}}
-
-\def\o@lign
- {\lineskiplimit\zeropoint \oalign}
-
-\def\ooalign % chars over each other
- {\lineskiplimit-\maxdimen
- \oalign}
-
-\def\sh@ft#1% kern by #1 times the current slant
- {\dimen@#1%
- \kern\expandafter\withoutpt\the\slantperpoint
- \dimen@}
-
-\def\dots
- {\relax\ifmmode\ldots\else$\mathsurround\zeropoint\ldots\,$\fi}
-
-\def\hrulefill
- {\leaders\hrule\hfill}
-
-\def\dotfill
- {\cleaders\hbox{$\mathsurround\zeropoint \mkern1.5mu.\mkern1.5mu$}\hfill}
-
-\def\rightarrowfill
- {$\mathsurround\zeropoint\smash-\mkern-7mu%
- \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill
- \mkern-7mu\mathord\rightarrow$}
-
-\def\leftarrowfill
- {$\mathsurround\zeropoint\mathord\leftarrow\mkern-7mu%
- \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill
- \mkern-7mu\smash-$}
-
-% must go to math-tex
-
-\ifx\braceld\undefined
- % mkii values
- \mathchardef\braceld="37A
- \mathchardef\bracerd="37B
- \mathchardef\bracelu="37C
- \mathchardef\braceru="37D
-\fi
-
-\def\downbracefill
- {$\mathsurround\zeropoint\setbox\zerocount\hbox{$\braceld$}%
- \braceld\leaders\vrule\!!height\ht\zerocount\!!depth\zeropoint\hfill\braceru
- \bracelu\leaders\vrule\!!height\ht\zerocount\!!depth\zeropoint\hfill\bracerd$}
-
-\def\upbracefill
- {$\mathsurround\zeropoint\setbox\zerocount\hbox{$\braceld$}%
- \bracelu\leaders\vrule\!!height\ht\zerocount\!!depth\zeropoint\hfill\bracerd
- \braceld\leaders\vrule\!!height\ht\zerocount\!!depth\zeropoint\hfill\braceru$}
-
-% hm, shouldn't that be \kern3\bodyfontsize
-
-\def\overbrace#1%
- {\mathop{\vbox{\mathsurround\zeropoint\ialign{##\crcr\noalign{\kern3\points}
- \downbracefill\crcr\noalign{\kern3\points\nointerlineskip}
- $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
-
-\def\underbrace#1%
- {\mathop{\vtop{\mathsurround\zeropoint\ialign{##\crcr
- $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\points\nointerlineskip}
- \upbracefill\crcr\noalign{\kern3\points}}}}\limits}
-
-\let\sp=^ % will become obsolete
-\let\sb=_ % will become obsolete
-
-\ifx\,\undefined \def\,{\mskip \thinmuskip } \fi
-\ifx\>\undefined \def\>{\mskip \medmuskip } \fi
-\ifx\;\undefined \def\;{\mskip \thickmuskip} \fi
-\ifx\!\undefined \def\!{\mskip-\thinmuskip } \fi
-\ifx\*\undefined \def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}} \fi
-
-% {\catcode`\'=\active \gdef'{^\bgroup\prim@s}}
-
-\def\activemathquote{^\bgroup\prim@s}
-
-\def\prim@s
- {\prime\futurelet\next\pr@m@s}
-
-\def\pr@m@s
- {\ifx'\next
- \@EA\pr@@@s
- \else\ifx^\next
- \@EAEAEA\pr@@@t
- \else
- \@EAEAEA\egroup
- \fi\fi}
-
-\def\pr@@@s#1%
- {\prim@s}
-
-\def\pr@@@t#1#2%
- {#2\egroup}
-
-% {\catcode`\_=\active \global\let_=\_} % _ in math is either subscript or \_
-
-\let\activemathunderscore\_
-
-\def\relbar {\mathrel{\smash-}} % - has the same height as +
-\def\Relbar {\mathrel=}
-
-\def\Longrightarrow {\Relbar\joinrel\Rightarrow}
-\def\longrightarrow {\relbar\joinrel\rightarrow}
-\def\longleftarrow {\leftarrow\joinrel\relbar}
-\def\Longleftarrow {\Leftarrow\joinrel\Relbar}
-\def\longmapsto {\mapstochar\longrightarrow}
-\def\longleftrightarrow{\leftarrow\joinrel\rightarrow}
-\def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow}
-
-\def\overrightarrow#1%
- {\vbox{\mathsurround\zeropoint\ialign{##\crcr
- \rightarrowfill\crcr\noalign{\kern-\onepoint\nointerlineskip}
- $\hfil\displaystyle{#1}\hfil$\crcr}}}
-
-\def\overleftarrow#1%
- {\vbox{\mathsurround\zeropoint\ialign{##\crcr
- \leftarrowfill\crcr\noalign{\kern-\onepoint\nointerlineskip}
- $\hfil\displaystyle{#1}\hfil$\crcr}}}
-
-\def\skew#1#2#3%
- {{\muskip\zerocount#1mu\divide\muskip\zerocount\plustwo \mkern\muskip\zerocount
- #2{\mkern-\muskip\zerocount{#3}\mkern\muskip\zerocount}\mkern-\muskip\zerocount}{}}
-
-\def\choose{\atopwithdelims()}
-\def\brack {\atopwithdelims[]}
-\def\brace {\atopwithdelims\{\}}
-
-\def\mathpalette#1#2%
- {\mathchoice
- {#1\displaystyle {#2}}%
- {#1\textstyle {#2}}%
- {#1\scriptstyle {#2}}%
- {#1\scriptscriptstyle{#2}}}
-
-\def\cong
- {\mathrel{\mathpalette\@vereq\sim}} % congruence sign
-
-\def\@vereq#1#2%
- {\lower.5\points\vbox{\lineskiplimit\maxdimen\lineskip-.5\points
- \ialign{$\mathsurround\zeropoint#1\hfil##\hfil$\crcr#2\crcr=\crcr}}}
-
-\def\notin% can be mkiv'd
- {\mathrel{\mathpalette\c@ncel\in}}
-
-\def\c@ncel#1#2%
- {\mathsurround\zeropoint\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}}
-
-\def\rightleftharpoons%
- {\mathrel{\mathpalette\rlh@{}}}
-
-\def\rlh@#1%
- {\vcenter
- {\mathsurround\zeropoint
- \hbox
- {\ooalign
- {\raise2pt\hbox{$#1\rightharpoonup$}\crcr
- $#1\leftharpoondown$}}}}
-
-\def\buildrel#1\over#2%
- {\mathrel{\mathop{\kern\zeropoint#2}\limits^{#1}}}
-
-\def\doteq
- {\buildrel\textstyle.\over=}
-
-\ifx\mfunction\undefined \def\mfunction#1{\mathbin{\rm#1}} \fi
-
-\def\bmod
- {\nonscript
- \mskip-\medmuskip
- \mkern5mu
- \mfunction{mod}%
- \penalty900
- \mkern5mu
- \nonscript
- \mskip-\medmuskip}
-
-\def\pmod#1%
- {\allowbreak
- \mkern18mu
- (\mfunction{mod}\,\,#1)}
-
-\def\cases#1%
- {\left\{%
- \,%
- \vcenter
- {\normalbaselines
- \mathsurround\zeropoint
- \ialign{$##\hfil$&\quad##\hfil\crcr#1\crcr}}%
- \right.}
-
-\def\matrix#1%
- {\null
- \,%
- \vcenter
- {\normalbaselines\mathsurround\zeropoint
- \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
- \mathstrut\crcr\noalign{\kern-\baselineskip}
- #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}%
- \,}
-
-\def\pmatrix#1%
- {\left(\matrix{#1}\right)}
-
-\newdimen\mathparentwd
-
-% \setbox0=\hbox{\tenex B} \mathparentwd=\wd0 % width of the big left (
-
-\def\bordermatrix#1%
- {\begingroup
- \mathsurround\zeropoint
- \setbox\zerocount\vbox
- {\def\cr{\crcr\noalign{\kern2\points\global\let\cr\endline}}%
- \ialign{$##$\hfil\kern2\points\kern\mathparentwd&\thinspace\hfil$##$\hfil
- &&\quad\hfil$##$\hfil\crcr
- \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}%
- #1\crcr\omit\strut\cr}}%
- \setbox\plustwo\vbox
- {\unvcopy\zerocount\global\setbox\plusone\lastbox}%
- \setbox\plustwo\hbox
- {\unhbox\plusone\unskip\global\setbox\plusone\lastbox}%
- \setbox\plustwo\hbox
- {$\kern\wd\plusone\kern-\mathparentwd\left(\kern-\wd\plusone
- \global\setbox\plusone\vbox{\box\plusone\kern2\points}%
- \vcenter{\kern-\ht\plusone\unvbox\zerocount\kern-\baselineskip}\,\right)$}%
- \null
- \;%
- \vbox{\kern\ht\plusone\box\plustwo}%
- \endgroup}
-
-% \def\openup{\afterassignment\@penup\dimen@=}
-%
-% \def\@penup{\advance\lineskip\dimen@
-% \advance\baselineskip\dimen@
-% \advance\lineskiplimit\dimen@}
-
-\def\openup
- {\afterassignment\doopenup\scratchdimen=}
-
-\def\doopenup
- {\advance\lineskip \scratchdimen
- \advance\baselineskip \scratchdimen
- \advance\lineskiplimit\scratchdimen}
-
-% \def\jot{.25\bodyfontsize} % plain tex: 3 pt (todo: better name and configurable)
-
-\def\displayopenupvalue{.25\bodyfontsize}
-
-\def\eqalign#1%
- {\null
- \,%
- \vcenter
- {\openup\displayopenupvalue % was \openup\jot
- \mathsurround\zeropoint
- \ialign
- {\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil\crcr
- #1\crcr}}%
- \,}
-
-\def\@lign % restore inside \displ@y
- {\tabskip\zeroskip
- \everycr{}}
-
-\def\displaylines#1%
- {\displ@y
- \tabskip\zeroskip
- \halign
- {\hbox to \displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr
- #1\crcr}}
-
-\def\eqalignno#1%
- {\displ@y
- \tabskip\centering
- \halign to \displaywidth
- {\hfil$\@lign\displaystyle{##}$\tabskip\zeroskip
- &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering
- &\llap{$\@lign##$}\tabskip\zeroskip\crcr
- #1\crcr}}
-
-\def\leqalignno#1%
- {\displ@y
- \tabskip\centering
- \halign to \displaywidth
- {\hfil$\@lign\displaystyle{##}$\tabskip\zeroskip
- &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering
- &\kern-\displaywidth\rlap{$\@lign##$}\tabskip\displaywidth\crcr
- #1\crcr}}
-
-% temporary here
-
-% \startcatcodetable \mthcatcodes
-% \setcatcodetable\ctxcatcodes
-% \catcode`\_ = 13
-% \catcode`\' = 13
-% \stopcatcodetable
-%
-% \letcatcodecommand \mthcatcodes `\_ \activemathunderscore
-% \letcatcodecommand \mthcatcodes `\' \activemathquote
-
-% \appendtoks \setcatcodetable\mthcatcodes \to \everymath : spoils xml
-
-% tricky, but some day we will reimplement math
-
-\bgroup
- \catcode`\_ = 13
- \catcode`\' = 13
- \doglobal\appendtoks
- \let_\activemathunderscore
- \let'\activemathquote
- \to \everymathematics
-\egroup
-
-% so far
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/math-run.mkii b/Master/texmf-dist/tex/context/base/mkii/math-run.mkii
deleted file mode 100644
index 79d08fbedb1..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/math-run.mkii
+++ /dev/null
@@ -1,105 +0,0 @@
-%D \module
-%D [ file=math-run,
-%D version=2001.23.04,
-%D title=\CONTEXT\ Math Macros,
-%D subtitle=Runtime Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Math Macros / Runtime Macros}
-
-\unprotect
-
-\ifx\showmathmodern\undefined \global\chardef\showmathmodern\zerocount \fi
-
-\gdef\showmathcharacters% nearly \showcharacters
- {\par
- \bgroup
- \ifcase\showmathmodern\or\ifx\modern\undefined\chardef\showmathmodern\zerocount\fi\fi
- \setuptextrules[\c!bodyfont=,\c!style=]
- \starttextrule{math characters -- \currentmathcollection}
- \whitespace
- \dontcomplain
- \forgetall
- \def\startmathcollection[##1]{}
- \let\stopmathcollection\relax
- \dimen0\zeropoint
- \dimen2\zeropoint
- \def\definemathsymbol {\dosixtupleempty\dodefinemathsymbol}
- \def\definemathcharacter{\dosixtupleempty\dodefinemathcharacter}
- \def\definemathcommand {\dotripleempty \dodefinemathcommand}
- %\newcounter\mathcolor
- \def\dodefinemathsymbol[##1][##2][##3][##4][##5][##6]%
- {%\doifcolorelse{math \purefamilyhex{##3}}{}
- % {\increment\mathcolor
- % \definecolor[math \purefamilyhex{##3}][\mathcolor]}%
- \setbox0\hbox spread 1em{\mathematics{\getvalue{##1}{}{}{}}}%
- \ifdim\wd0>\dimen0 \dimen0=\wd0 \fi
- \setbox2\hbox spread 1em{\hbox to 1em{\tttf\purefamilyhex{##3}\hss}\box0 ##1}%
- \ifdim\wd2>\dimen2 \dimen2=\wd2 \fi}
- \def\dodefinemathcharacter[##1][##2][##3][##4][##5][##6]{}
- \def\dodefinemathcommand [##1][##2][##3]##4{}
- \readsysfile{\f!mathprefix tex.mkii}\!!doneatrue\!!doneafalse
- \readsysfile{\f!mathprefix ams.mkii}\!!donebtrue\!!donebfalse
- \if!!donea
- \if!!doneb
- \edef\encwidth{\the\dimen0}
- \dimen0=\hsize
- \advance\dimen0 2em
- \advance\dimen2 2em
- \ifcase\showmathmodern\or\advance\dimen2 4em\fi
- \divide \dimen0 by \dimen2 \advance\dimen0 1sp
- \edef\enccols{\number\dimen0}
- \startcolumns[\c!n=\enccols,\c!distance=2em]
- \def\dodefinemathsymbol[##1][##2][##3][##4][##5][##6]%
- {%\localcolortrue
- %\color
- % [math \purefamilyhex{##3}]
- {\hbox
- {\ifcase\showmathmodern\or
- \hbox to \encwidth{\modern\let\mathcollection\nomathcollection\mathematics{\getvalue{##1}{}{}{}}\hss}%
- \fi
- \hbox to \encwidth{\mathematics{\getvalue{##1}{}{}{}}\hss}%
- \hbox to 1em{\tttf\purefamilyhex{##3}\hss}##1}\par}}
- \readsysfile{\f!mathprefix tex.mkii}\donothing\donothing
- \readsysfile{\f!mathprefix ams.mkii}\donothing\donothing
- \stopcolumns
- \else
- \par \tttf no chars in \f!mathprefix ams\par
- \fi
- \else
- \par \tttf no chars in \f!mathprefix tex\par
- \fi
- \stoptextrule
- \egroup}
-
-% \definecolor[math \purefamilyhex{mr}] [darkred]
-% \definecolor[math \purefamilyhex{mi}] [darkgreen]
-% \definecolor[math \purefamilyhex{sy}] [darkblue]
-% \definecolor[math \purefamilyhex{ex}] [darkmagenta]
-% \definecolor[math \purefamilyhex{nn}] [darkyellow]
-% \definecolor[math \purefamilyhex{ma}] [lightred]
-% \definecolor[math \purefamilyhex{mb}] [lightgreen]
-% \definecolor[math \purefamilyhex{mc}] [lightblue]
-% \definecolor[math \purefamilyhex{md}] [lightmagenta]
-
-\gdef\showmathtoken#1%
- {\starttabulate[|lT|lT|lT|l|]
- \NC token \NC #1 \NC \NR
- \NC collection \NC \ifcsname\@mt@\mathcollection#1\endcsname
- \mathcollection
- \else\ifcsname\@mt@\nomathcollection#1\endcsname
- \nomathcollection
- \else
- ?%
- \fi\fi \NC \NR
- \NC visualization \NC \mathematics{\getvalue{#1}} \NC \NR
- \NC definition \NC \tttf \@EA\defconvertedcommand\@EA\ascii\csname\@mt@\mathcollection#1\endcsname \ascii \NC \NR
- \stoptabulate}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/math-tex.mkii b/Master/texmf-dist/tex/context/base/mkii/math-tex.mkii
deleted file mode 100644
index e3dd634e6ef..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/math-tex.mkii
+++ /dev/null
@@ -1,720 +0,0 @@
-%D \module
-%D [ file=math-tex,
-%D version=2001.04.12,
-%D subtitle=Plain Specials,
-%D author={Hans Hagen, Taco Hoekwater \& Aditya Mahajan},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% beware: in mkiv we will do it differently
-
-\unprotect
-
-\mathcode`\ ="8000 \mathcode`\_="8000 \mathcode`\'="8000
-
-\definefamilysynonym [default] [calligraphic] [sy]
-\definefamilysynonym [default] [oldstyle] [mi]
-\definefamilysynonym [default] [blackboard] [mr]
-\definefamilysynonym [default] [gothic] [mr]
-\definefamilysynonym [default] [fraktur] [mr]
-
-\definefamilysynonym [default] [lcgreek] [mi]
-\definefamilysynonym [default] [ucgreek] [mr]
-\definefamilysynonym [default] [vargreek] [mi]
-
-
-%D \macros
-%D {\setupmathematics}
-%D
-%D Configuration for integrals. (If needed we can speed this up and make it
-%D installable; no processaction is needed then).
-
-\chardef\intlimitcode\zerocount % 0 nolimits 1 displaylimits 2 limits
-
-\def\intlimits
- {\ifcase\intlimitcode \nolimits \or \displaylimits \or \limits \fi}
-
-\def\setupmathematics
- {\dosingleargument\dosetupmathematics}
-
-\def\dosetupmathematics[#1]%
- {\getparameters[\??mo][#1]
- \processaction[\@@mointegral]
- [ nolimits=>\chardef\intlimitcode\zerocount,
- displaylimits=>\chardef\intlimitcode\plusone,
- limits=>\chardef\intlimitcode\plustwo]}
-
-%D \startbuffer
-%D $\int_a^b f(x) dx$ and also
-%D $\iint_a^b f(x,y) dxdy$, $\iiint_a^b f(x,y) dxdy$,
-%D $\iiiint_a^b f(x) dx$
-%D \startformula
-%D \int_a^b f(x) dx \quad
-%D \iint_a^b f(x) dx \quad
-%D \iiint_a^b f(x) dx \quad
-%D \iiiint_a^b f(x) dx \quad
-%D \stopformula
-%D \stopbuffer
-%D
-%D Default: \getbuffer
-%D
-%D Displaylimits: \setupmathematics[integral=displaylimits] \getbuffer
-%D
-%D Limits: \setupmathematics[integral=limits] \getbuffer
-
-\startmathcollection [default]
-
-\definemathsymbol [alpha] [nothing] [lcgreek] ["0B]
-\definemathsymbol [beta] [nothing] [lcgreek] ["0C]
-\definemathsymbol [gamma] [nothing] [lcgreek] ["0D]
-\definemathsymbol [delta] [nothing] [lcgreek] ["0E]
-\definemathsymbol [epsilon] [nothing] [lcgreek] ["0F]
-\definemathsymbol [zeta] [nothing] [lcgreek] ["10]
-\definemathsymbol [eta] [nothing] [lcgreek] ["11]
-\definemathsymbol [theta] [nothing] [lcgreek] ["12]
-\definemathsymbol [iota] [nothing] [lcgreek] ["13]
-\definemathsymbol [kappa] [nothing] [lcgreek] ["14]
-\definemathsymbol [lambda] [nothing] [lcgreek] ["15]
-\definemathsymbol [mu] [nothing] [lcgreek] ["16]
-\definemathsymbol [nu] [nothing] [lcgreek] ["17]
-\definemathsymbol [xi] [nothing] [lcgreek] ["18]
-\definemathsymbol [omicron] [nothing] [lcgreek] ["6F]
-\definemathsymbol [pi] [nothing] [lcgreek] ["19]
-\definemathsymbol [rho] [nothing] [lcgreek] ["1A]
-\definemathsymbol [sigma] [nothing] [lcgreek] ["1B]
-\definemathsymbol [tau] [nothing] [lcgreek] ["1C]
-\definemathsymbol [upsilon] [nothing] [lcgreek] ["1D]
-\definemathsymbol [phi] [nothing] [lcgreek] ["1E]
-\definemathsymbol [chi] [nothing] [lcgreek] ["1F]
-\definemathsymbol [psi] [nothing] [lcgreek] ["20]
-\definemathsymbol [omega] [nothing] [lcgreek] ["21]
-
-\stopmathcollection
-
-\startmathcollection [default]
-
-\definemathsymbol [varepsilon] [nothing] [vargreek] ["22]
-\definemathsymbol [vartheta] [nothing] [vargreek] ["23]
-\definemathsymbol [varpi] [nothing] [vargreek] ["24]
-\definemathsymbol [varrho] [nothing] [vargreek] ["25]
-\definemathsymbol [varsigma] [nothing] [vargreek] ["26]
-\definemathsymbol [varphi] [nothing] [vargreek] ["27]
-
-\stopmathcollection
-
-\startmathcollection [default]
-
-\definemathsymbol [Alpha] [alpha] [ucgreek] ["41] % A
-\definemathsymbol [Beta] [alpha] [ucgreek] ["42] % B
-\definemathsymbol [Gamma] [alpha] [ucgreek] ["00]
-\definemathsymbol [Delta] [alpha] [ucgreek] ["01]
-\definemathsymbol [Epsilon] [alpha] [ucgreek] ["45] % E
-\definemathsymbol [Zeta] [alpha] [ucgreek] ["5A] % Z
-\definemathsymbol [Eta] [alpha] [ucgreek] ["48] % H
-\definemathsymbol [Theta] [alpha] [ucgreek] ["02]
-\definemathsymbol [Iota] [alpha] [ucgreek] ["49] % I
-\definemathsymbol [Kappa] [alpha] [ucgreek] ["4B] % K
-\definemathsymbol [Lambda] [alpha] [ucgreek] ["03]
-\definemathsymbol [Mu] [alpha] [ucgreek] ["4D] % M
-\definemathsymbol [Nu] [alpha] [ucgreek] ["4E] % N
-\definemathsymbol [Xi] [alpha] [ucgreek] ["04]
-\definemathsymbol [Omicron] [alpha] [ucgreek] ["4F] % O
-\definemathsymbol [Pi] [alpha] [ucgreek] ["05]
-\definemathsymbol [Rho] [alpha] [ucgreek] ["52] % R
-\definemathsymbol [Sigma] [alpha] [ucgreek] ["06]
-\definemathsymbol [Tau] [alpha] [ucgreek] ["54] % T
-\definemathsymbol [Upsilon] [alpha] [ucgreek] ["07]
-\definemathsymbol [Phi] [alpha] [ucgreek] ["08]
-\definemathsymbol [Chi] [alpha] [ucgreek] ["58] % X
-\definemathsymbol [Psi] [alpha] [ucgreek] ["09]
-\definemathsymbol [Omega] [alpha] [ucgreek] ["0A]
-
-\stopmathcollection
-
-% The \mfunction macro is an alternative for \hbox with a
-% controlable font switch.
-
-\startmathcollection[default]
-
-\definemathcommand [arccos] [nolop] {\mfunction{arccos}}
-\definemathcommand [arcsin] [nolop] {\mfunction{arcsin}}
-\definemathcommand [arctan] [nolop] {\mfunction{arctan}}
-\definemathcommand [arg] [nolop] {\mfunction{arg}}
-\definemathcommand [cosh] [nolop] {\mfunction{cosh}}
-\definemathcommand [cos] [nolop] {\mfunction{cos}}
-\definemathcommand [coth] [nolop] {\mfunction{coth}}
-\definemathcommand [cot] [nolop] {\mfunction{cot}}
-\definemathcommand [csc] [nolop] {\mfunction{csc}}
-\definemathcommand [deg] [nolop] {\mfunction{deg}}
-\definemathcommand [det] [limop] {\mfunction{det}}
-\definemathcommand [dim] [nolop] {\mfunction{dim}}
-\definemathcommand [exp] [nolop] {\mfunction{exp}}
-\definemathcommand [gcd] [limop] {\mfunction{gcd}}
-\definemathcommand [hom] [nolop] {\mfunction{hom}}
-\definemathcommand [inf] [limop] {\mfunction{inf}}
-\definemathcommand [injlim] [limop] {\mfunction{inj\,lim}}
-\definemathcommand [ker] [nolop] {\mfunction{ker}}
-\definemathcommand [lg] [nolop] {\mfunction{lg}}
-\definemathcommand [liminf] [limop] {\mfunction{lim\,inf}}
-\definemathcommand [limsup] [limop] {\mfunction{lim\,sup}}
-\definemathcommand [lim] [limop] {\mfunction{lim}}
-\definemathcommand [ln] [nolop] {\mfunction{ln}}
-\definemathcommand [log] [nolop] {\mfunction{log}}
-\definemathcommand [median] [limop] {\mfunction{median}}
-\definemathcommand [max] [limop] {\mfunction{max}}
-\definemathcommand [min] [limop] {\mfunction{min}}
-\definemathcommand [mod] [limop] {\mfunction{mod}}
-\definemathcommand [div] [limop] {\mfunction{div}}
-\definemathcommand [projlim] [limop] {\mfunction{proj\,lim}}
-\definemathcommand [Pr] [limop] {\mfunction{Pr}}
-\definemathcommand [sec] [nolop] {\mfunction{sec}}
-\definemathcommand [sinh] [nolop] {\mfunction{sinh}}
-\definemathcommand [sin] [nolop] {\mfunction{sin}}
-\definemathcommand [sup] [limop] {\mfunction{sup}}
-\definemathcommand [tanh] [nolop] {\mfunction{tanh}}
-\definemathcommand [tan] [nolop] {\mfunction{tan}}
-
-\stopmathcollection
-
-\let\normalmatharg\arg % todo: maybe automatically
-
-\startmathcollection[default]
-
-\definemathcommand [integers] {\mfunction{Z}}
-\definemathcommand [reals] {\mfunction{R}}
-\definemathcommand [rationals] {\mfunction{Q}}
-\definemathcommand [naturalnumbers] {\mfunction{N}}
-\definemathcommand [complexes] {\mfunction{C}}
-\definemathcommand [primes] {\mfunction{P}}
-
-\stopmathcollection
-
-\startmathcollection[default]
-
-\definemathcharacter [!] [close] [mr] ["21]
-\definemathcharacter [(] [open] [mr] ["28]
-\definemathcharacter [)] [close] [mr] ["29]
-\definemathcharacter [*] [bin] [sy] ["03]
-\definemathcharacter [+] [bin] [mr] ["2B]
-\definemathcharacter [,] [punct] [mi] ["3B]
-\definemathcharacter [-] [bin] [sy] ["00]
-\definemathcharacter [.] [ord] [mi] ["3A]
-\definemathcharacter [/] [ord] [mi] ["3D]
-\definemathcharacter [:] [rel] [mr] ["3A]
-\definemathcharacter [;] [punct] [mr] ["3B]
-\definemathcharacter [<] [rel] [mi] ["3C]
-\definemathcharacter [=] [rel] [mr] ["3D]
-\definemathcharacter [>] [rel] [mi] ["3E]
-\definemathcharacter [?] [close] [mr] ["3F]
-\definemathcharacter [91] [open] [mr] ["5B] % [
-\definemathcharacter [92] [ord] [sy] ["6E] % \
-\definemathcharacter [93] [close] [mr] ["5D] % ]
-\definemathcharacter [123] [open] [sy] ["66] % {
-\definemathcharacter [124] [ord] [sy] ["6A] % |
-\definemathcharacter [125] [close] [sy] ["67] % }
-
-\stopmathcollection
-
-\startmathcollection[default]
-
-\definemathcharacter [(] [nothing] [mr] ["28] [ex] ["00]
-\definemathcharacter [)] [nothing] [mr] ["29] [ex] ["01]
-\definemathcharacter [91] [nothing] [mr] ["5B] [ex] ["02] % [
-\definemathcharacter [93] [nothing] [mr] ["5D] [ex] ["03] % ]
-\definemathcharacter [<] [nothing] [sy] ["68] [ex] ["0A]
-\definemathcharacter [>] [nothing] [sy] ["69] [ex] ["0B]
-\definemathcharacter [/] [nothing] [mr] ["2F] [ex] ["0E]
-\definemathcharacter [124] [nothing] [sy] ["6A] [ex] ["0C] % |
-\definemathcharacter [92] [nothing] [sy] ["6E] [ex] ["0F] % \
-
-\stopmathcollection
-
-\def\PLAINangle
- {{\vbox{\ialign{$\mathsurround\zeropoint\scriptstyle##$\crcr
- \not\mathrel{\mkern14mu}\crcr
- \noalign{\nointerlineskip}
- \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}}
-
-\startmathcollection[default]
-
-\definemathsymbol [aleph] [nothing] [sy] ["40]
-\definemathsymbol [imath] [nothing] [mi] ["7B]
-\definemathsymbol [jmath] [nothing] [mi] ["7C]
-\definemathsymbol [ell] [nothing] [mi] ["60]
-\definemathsymbol [wp] [nothing] [mi] ["7D]
-\definemathsymbol [Re] [nothing] [sy] ["3C]
-\definemathsymbol [Im] [nothing] [sy] ["3D]
-\definemathsymbol [partial] [nothing] [mi] ["40]
-\definemathsymbol [infty] [nothing] [sy] ["31]
-\definemathsymbol [prime] [nothing] [sy] ["30]
-\definemathsymbol [emptyset] [nothing] [sy] ["3B]
-\definemathsymbol [nabla] [nothing] [sy] ["72]
-\definemathsymbol [top] [nothing] [sy] ["3E]
-\definemathsymbol [bot] [nothing] [sy] ["3F]
-
-\definemathcommand [hbar] {{\mathchar'26\mkern-9muh}}
-\definemathcommand [surd] {{\mathchar"1270}} % ?
-\definemathcommand [angle] {\PLAINangle}
-
-\stopmathcollection
-
-\startmathcollection[default]
-
-\definemathsymbol [triangle] [ord] [sy] ["34]
-\definemathsymbol [forall] [ord] [sy] ["38]
-\definemathsymbol [exists] [ord] [sy] ["39]
-\definemathsymbol [neg] [ord] [sy] ["3A]
-\definemathsymbol [flat] [ord] [mi] ["5B]
-\definemathsymbol [natural] [ord] [mi] ["5C]
-\definemathsymbol [sharp] [ord] [mi] ["5D]
-\definemathsymbol [clubsuit] [ord] [sy] ["7C]
-\definemathsymbol [diamondsuit] [ord] [sy] ["7D]
-\definemathsymbol [heartsuit] [ord] [sy] ["7E]
-\definemathsymbol [spadesuit] [ord] [sy] ["7F]
-
-\stopmathcollection
-
-\startmathcollection[default]
-
-\definemathcommand [square] {\hbox{\hsmash{$\sqcup$}$\sqcap$}}
-
-\stopmathcollection
-
-\startmathcollection[default]
-
-\definemathsymbol [coprod] [op] [ex] ["60]
-\definemathsymbol [bigvee] [op] [ex] ["57]
-\definemathsymbol [bigwedge] [op] [ex] ["56]
-\definemathsymbol [biguplus] [op] [ex] ["55]
-\definemathsymbol [bigcap] [op] [ex] ["54]
-\definemathsymbol [bigcup] [op] [ex] ["53]
-\definemathsymbol [intop] [op] [ex] ["52]
-\definemathsymbol [prod] [op] [ex] ["51]
-\definemathsymbol [sum] [op] [ex] ["50]
-\definemathsymbol [bigotimes] [op] [ex] ["4E]
-\definemathsymbol [bigoplus] [op] [ex] ["4C]
-\definemathsymbol [bigodot] [op] [ex] ["4A]
-\definemathsymbol [ointop] [op] [ex] ["48]
-\definemathsymbol [bigsqcup] [op] [ex] ["46]
-\definemathsymbol [smallint] [op] [sy] ["73]
-
-\stopmathcollection
-
-\startmathcollection[default]
-
-\definemathsymbol [triangleleft] [bin] [mi] ["2F]
-\definemathsymbol [triangleright] [bin] [mi] ["2E]
-\definemathsymbol [bigtriangleup] [bin] [sy] ["34]
-\definemathsymbol [bigtriangledown] [bin] [sy] ["35]
-\definemathsymbol [wedge] [bin] [sy] ["5E]
-\definemathsymbol [vee] [bin] [sy] ["5F]
-\definemathsymbol [cap] [bin] [sy] ["5C]
-\definemathsymbol [cup] [bin] [sy] ["5B]
-\definemathsymbol [ddagger] [bin] [sy] ["7A]
-\definemathsymbol [dagger] [bin] [sy] ["79]
-\definemathsymbol [sqcap] [bin] [sy] ["75]
-\definemathsymbol [sqcup] [bin] [sy] ["74]
-\definemathsymbol [uplus] [bin] [sy] ["5D]
-\definemathsymbol [amalg] [bin] [sy] ["71]
-\definemathsymbol [diamond] [bin] [sy] ["05]
-\definemathsymbol [bullet] [bin] [sy] ["0F]
-\definemathsymbol [wr] [bin] [sy] ["6F]
-\definemathsymbol [div] [bin] [sy] ["04]
-\definemathsymbol [odot] [bin] [sy] ["0C]
-\definemathsymbol [oslash] [bin] [sy] ["0B]
-\definemathsymbol [otimes] [bin] [sy] ["0A]
-\definemathsymbol [ominus] [bin] [sy] ["09]
-\definemathsymbol [oplus] [bin] [sy] ["08]
-\definemathsymbol [mp] [bin] [sy] ["07]
-\definemathsymbol [pm] [bin] [sy] ["06]
-\definemathsymbol [circ] [bin] [sy] ["0E]
-\definemathsymbol [bigcirc] [bin] [sy] ["0D]
-\definemathsymbol [setminus] [bin] [sy] ["6E]
-\definemathsymbol [cdot] [bin] [sy] ["01]
-\definemathsymbol [ast] [bin] [sy] ["03]
-\definemathsymbol [times] [bin] [sy] ["02]
-\definemathsymbol [star] [bin] [mi] ["3F]
-
-\stopmathcollection
-
-\startmathcollection[default]
-
-\definemathsymbol [propto] [rel] [sy] ["2F]
-\definemathsymbol [sqsubseteq] [rel] [sy] ["76]
-\definemathsymbol [sqsupseteq] [rel] [sy] ["77]
-\definemathsymbol [parallel] [rel] [sy] ["6B]
-\definemathsymbol [mid] [rel] [sy] ["6A]
-\definemathsymbol [dashv] [rel] [sy] ["61]
-\definemathsymbol [vdash] [rel] [sy] ["60]
-\definemathsymbol [nearrow] [rel] [sy] ["25]
-\definemathsymbol [searrow] [rel] [sy] ["26]
-\definemathsymbol [nwarrow] [rel] [sy] ["2D]
-\definemathsymbol [swarrow] [rel] [sy] ["2E]
-\definemathsymbol [Leftrightarrow] [rel] [sy] ["2C]
-\definemathsymbol [Leftarrow] [rel] [sy] ["28]
-\definemathsymbol [Rightarrow] [rel] [sy] ["29]
-
-\stopmathcollection
-
-\startmathcollection[default]
-
-\definemathcommand [lnot] {\neg}
-\definemathcommand [int] {\intop \intlimits}
-\definemathcommand [oint] {\ointop\intlimits}
-\definemathcommand [land] {\wedge}
-\definemathcommand [lor] {\vee}
-\definemathcommand [neq] {\not=}
-\definemathcommand [ne] {\neq}
-\definemathcommand [le] {\leq}
-\definemathcommand [ge] {\geq}
-\definemathcommand [eq] {=}
-\definemathcommand [gt] {>}
-\definemathcommand [lt] {<}
-\definemathcommand [gets] {\leftarrow}
-\definemathcommand [owns] {\ni}
-\definemathcommand [to] {\rightarrow}
-\definemathcommand [mapsto] {\mapstochar\rightarrow}
-
-\stopmathcollection
-
-\startmathcollection[default]
-
-\definemathsymbol [leq] [rel] [sy] ["14]
-\definemathsymbol [geq] [rel] [sy] ["15]
-\definemathsymbol [succ] [rel] [sy] ["1F]
-\definemathsymbol [prec] [rel] [sy] ["1E]
-\definemathsymbol [approx] [rel] [sy] ["19]
-\definemathsymbol [succeq] [rel] [sy] ["17]
-\definemathsymbol [preceq] [rel] [sy] ["16]
-\definemathsymbol [supset] [rel] [sy] ["1B]
-\definemathsymbol [subset] [rel] [sy] ["1A]
-\definemathsymbol [supseteq] [rel] [sy] ["13]
-\definemathsymbol [subseteq] [rel] [sy] ["12]
-\definemathsymbol [in] [rel] [sy] ["32]
-\definemathsymbol [ni] [rel] [sy] ["33]
-\definemathsymbol [gg] [rel] [sy] ["1D]
-\definemathsymbol [ll] [rel] [sy] ["1C]
-\definemathsymbol [not] [rel] [sy] ["36]
-\definemathsymbol [leftrightarrow] [rel] [sy] ["24]
-\definemathsymbol [leftarrow] [rel] [sy] ["20]
-\definemathsymbol [rightarrow] [rel] [sy] ["21]
-\definemathsymbol [mapstochar] [rel] [sy] ["37]
-\definemathsymbol [sim] [rel] [sy] ["18]
-\definemathsymbol [simeq] [rel] [sy] ["27]
-\definemathsymbol [perp] [rel] [sy] ["3F]
-\definemathsymbol [equiv] [rel] [sy] ["11]
-\definemathsymbol [asymp] [rel] [sy] ["10]
-\definemathsymbol [smile] [rel] [mi] ["5E]
-\definemathsymbol [frown] [rel] [mi] ["5F]
-\definemathsymbol [leftharpoonup] [rel] [mi] ["28]
-\definemathsymbol [leftharpoondown] [rel] [mi] ["29]
-\definemathsymbol [rightharpoonup] [rel] [mi] ["2A]
-\definemathsymbol [rightharpoondown] [rel] [mi] ["2B]
-\definemathsymbol [lhook] [rel] [mi] ["2C]
-\definemathsymbol [rhook] [rel] [mi] ["2D]
-
-\stopmathcollection
-
-\def\PLAINldots
- {\ldotp\ldotp\ldotp}
-
-\def\PLAINcdots
- {\cdotp\cdotp\cdotp}
-
-\def\PLAINvdots
- {\vbox{\baselineskip.4\bodyfontsize\lineskiplimit\zeropoint
- \kern.6\bodyfontsize\hbox{.}\hbox{.}\hbox{.}}}
-
-\def\PLAINddots
- {\mkern1mu\raise.7\bodyfontsize\vbox{\kern.7\bodyfontsize\hbox{.}}\mkern2mu
- \raise.4\bodyfontsize\hbox{.}\mkern2mu\raise.1\bodyfontsize\hbox{.}\mkern1mu}
-
-\startmathcollection[default]
-
-\definemathcommand [hookrightarrow] {\lhook\joinrel\rightarrow}
-\definemathcommand [hookleftarrow] {\leftarrow\joinrel\rhook}
-\definemathcommand [bowtie] {\mathrel\triangleright\joinrel\mathrel\triangleleft}
-\definemathcommand [models] {\mathrel|\joinrel=}
-\definemathcommand [iff] {\;\Longleftrightarrow\;}
-
-\definemathsymbol [ldotp] [punct] [mi] ["3A]
-\definemathsymbol [cdotp] [punct] [sy] ["01]
-\definemathsymbol [colon] [punct] [mr] ["3A]
-
-\definemathcommand [ldots] [inner] {\PLAINldots}
-\definemathcommand [cdots] [inner] {\PLAINcdots}
-\definemathcommand [vdots] [nothing] {\PLAINvdots}
-\definemathcommand [ddots] [inner] {\PLAINddots}
-
-\stopmathcollection
-
-\startmathcollection[default]
-
-\definemathsymbol [acute] [accent] [mr] ["13]
-\definemathsymbol [grave] [accent] [mr] ["12]
-\definemathsymbol [ddot] [accent] [mr] ["7F]
-\definemathsymbol [tilde] [accent] [mr] ["7E]
-\definemathsymbol [mathring] [accent] [mr] ["17]
-\definemathsymbol [bar] [accent] [mr] ["16]
-\definemathsymbol [breve] [accent] [mr] ["15]
-\definemathsymbol [check] [accent] [mr] ["14]
-\definemathsymbol [hat] [accent] [mr] ["5E]
-\definemathsymbol [vec] [accent] [mi] ["7E] % [ord]
-\definemathsymbol [dot] [accent] [mr] ["5F]
-\definemathsymbol [widetilde] [accent] [ex] ["65] % [ord]
-\definemathsymbol [widehat] [accent] [ex] ["62] % [ord]
-
-\stopmathcollection
-
-\startmathcollection[default]
-
-\definemathsymbol [lmoustache] [open] [ex] ["7A] [ex] ["40]
-\definemathsymbol [rmoustache] [close] [ex] ["7B] [ex] ["41]
-\definemathsymbol [lgroup] [open] [mr] ["28] [ex] ["3A] % ?
-\definemathsymbol [rgroup] [close] [mr] ["29] [ex] ["3B] % ?
-\definemathsymbol [arrowvert] [nothing] [sy] ["6A] [ex] ["3C]
-\definemathsymbol [Arrowvert] [nothing] [sy] ["6B] [ex] ["3D]
-\definemathsymbol [bracevert] [nothing] [ex] ["3E] % ?
-\definemathsymbol [Vert] [nothing] [sy] ["6B] [ex] ["0D]
-\definemathsymbol [vert] [nothing] [sy] ["6A] [ex] ["0C]
-\definemathsymbol [uparrow] [rel] [sy] ["22] [ex] ["78]
-\definemathsymbol [downarrow] [rel] [sy] ["23] [ex] ["79]
-\definemathsymbol [updownarrow] [rel] [sy] ["6C] [ex] ["3F]
-\definemathsymbol [Uparrow] [rel] [sy] ["2A] [ex] ["7E]
-\definemathsymbol [Downarrow] [rel] [sy] ["2B] [ex] ["7F]
-\definemathsymbol [Updownarrow] [rel] [sy] ["6D] [ex] ["77]
-\definemathsymbol [backslash] [nothing] [sy] ["6E] [ex] ["0F]
-\definemathsymbol [langle] [open] [sy] ["68] [ex] ["0A]
-\definemathsymbol [rangle] [close] [sy] ["69] [ex] ["0B]
-\definemathsymbol [lbrace] [open] [sy] ["66] [ex] ["08]
-\definemathsymbol [rbrace] [close] [sy] ["67] [ex] ["09]
-\definemathsymbol [lceil] [open] [sy] ["64] [ex] ["06]
-\definemathsymbol [rceil] [close] [sy] ["65] [ex] ["07]
-\definemathsymbol [lfloor] [open] [sy] ["62] [ex] ["04]
-\definemathsymbol [rfloor] [close] [sy] ["63] [ex] ["05]
-
-\definemathsymbol [sqrt] [radical] [sy] ["70] [ex] ["70]
-
-\stopmathcollection
-
-%D By request:
-
-\startmathcollection[default]
-
-\definemathsymbol [lvert] [open] [sy] ["6A] [ex] ["0C]
-\definemathsymbol [rvert] [close] [sy] ["6A] [ex] ["0C]
-
-\definemathsymbol [lVert] [open] [sy] ["6B] [ex] ["0D]
-\definemathsymbol [rVert] [close] [sy] ["6B] [ex] ["0D]
-
-\stopmathcollection
-
-%D For brooks:
-%D
-%D \starttyping
-%D $\sqrt[3]{10}$
-%D \stoptyping
-
-\ifx\normalsqrt\undefined \let\normalsqrt\sqrt \fi % just set to: \dohandlemathtoken {sqrt}
-
-\def\notsosqrt[#1]{\root#1\of}
-
-\unexpanded\def\sqrt{\doifnextoptionalelse\notsosqrt\normalsqrt}
-
-\def\PLAINbig {\@@dobig{0.85}}
-\def\PLAINBig {\@@dobig{1.15}}
-\def\PLAINbigg{\@@dobig{1.45}}
-\def\PLAINBigg{\@@dobig{1.75}}
-
-\startrawmathcollection [default]
-
-\definemathcommand [bigl] [open] [one] {\big}
-\definemathcommand [bigm] [rel] [one] {\big}
-\definemathcommand [bigr] [close] [one] {\big}
-\definemathcommand [Bigl] [open] [one] {\Big}
-\definemathcommand [Bigm] [rel] [one] {\Big}
-\definemathcommand [Bigr] [close] [one] {\Big}
-\definemathcommand [biggl] [open] [one] {\bigg}
-\definemathcommand [biggm] [rel] [one] {\bigg}
-\definemathcommand [biggr] [close] [one] {\bigg}
-\definemathcommand [Biggl] [open] [one] {\Bigg}
-\definemathcommand [Biggm] [rel] [one] {\Bigg}
-\definemathcommand [Biggr] [close] [one] {\Bigg}
-
-\definemathcommand [big] {\PLAINbig}
-\definemathcommand [Big] {\PLAINBig}
-\definemathcommand [bigg] {\PLAINbigg}
-\definemathcommand [Bigg] {\PLAINBigg}
-
-\stoprawmathcollection
-
-\startmathcollection[default]
-
-\definemathsymbol [dag] [box] [sy] ["79]
-\definemathsymbol [ddag] [box] [sy] ["7A]
-\definemathsymbol [S] [box] [sy] ["78]
-\definemathsymbol [P] [box] [sy] ["7B]
-\definemathsymbol [Orb] [box] [sy] ["0D]
-
-\stopmathcollection
-
-\def\PLAINroot#1#2%
- {\setbox\zerocount\hbox{$\mathsurround\zeropoint#1\sqrt{#2}$}\dimen@\ht\zerocount
- \advance\dimen@-\dp\zerocount
- \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu\box\zerocount}
-
-\def\PLAINmatrix#1%
- {\null\,\vcenter{\normalbaselines\mathsurround\zeropoint
- \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
- \mathstrut\crcr\noalign{\kern-\baselineskip}
- #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
-
-\startrawmathcollection[default]
-
-\definemathcommand [mathstrut] {\vphantom{(}}
-\definemathcommand [joinrel] {\mathrel{\mkern-3mu}}
-\definemathcommand [r@@t] {\PLAINroot}
-\definemathcommand [matrix] {\PLAINmatrix}
-
-\definemathcommand [over] {\normalover} % hack, to do
-
-\stoprawmathcollection
-
-\def\{{\lbrace}
-\def\}{\rbrace}
-
-%def\bbd{\fam\purefamily{blackboard}}
-%def\cal{\fam\purefamily{calfamily}}
-
-\def\mit{\fam\purefamily{mitfamily}}
-
-\def\Bbb{\blackboard} % conforming amstex
-
-\startmathcollection[default]
-
- \definemathsymbol [mathperiod] [ord] [mi] ["3A]
- \definemathsymbol [textperiod] [punct] [mi] ["3A]
-
- \definemathsymbol [mathcomma] [ord] [mi] ["3B]
- \definemathsymbol [textcomma] [punct] [mi] ["3B]
-
-\stopmathcollection
-
-\definemathpunctuation . mathperiod textperiod
-\definemathpunctuation , mathcomma textcomma
-
-%D The following colon related definitions are provided by Aditya
-%D Mahajan who derived them from \type {mathtools.sty} and \type
-%D {colonequals.sty}.
-
-%D \macros
-%D {centercolon, colonminus, minuscolon, colonequals, equalscolon,
-%D colonapprox, approxcolon, colonsim, simcolon, coloncolon,
-%D coloncolonminus, minuscoloncolon, coloncolonequals,
-%D equalscoloncolon, coloncolonapprox, approxcoloncolon,
-%D colonsim, simcoloncolon}
-%D
-%D In $a := b$ the colon is not vertically centered with the equal
-%D to. Also the distance between colon and equal to is a bit large.
-%D So, we define a vertically centered colon \tex {centercolon} and
-%D a few macros for colon and double colon relation symbols.
-%D
-%D \startlines
-%D \formula {A \centercolon B}
-%D \formula {A \colonminus B}
-%D \formula {A \minuscolon B}
-%D \formula {A \colonequals B}
-%D \formula {A \equalscolon B}
-%D \formula {A \colonapprox B}
-%D \formula {A \approxcolon B}
-%D \formula {A \colonsim B}
-%D \formula {A \simcolon B}
-%D \formula {A \coloncolon B}
-%D \formula {A \coloncolonminus B}
-%D \formula {A \minuscoloncolon B}
-%D \formula {A \coloncolonequals B}
-%D \formula {A \equalscoloncolon B}
-%D \formula {A \coloncolonapprox B}
-%D \formula {A \approxcoloncolon B}
-%D \formula {A \colonsim B}
-%D \formula {A \simcoloncolon B}
-%D \stoplines
-
-%D The next macros take care of the space between the colon and the
-%D relation symbol.
-
-\definemathcommand [colonsep] {\mkern-1.2mu}
-\definemathcommand [doublecolonsep] {\mkern-0.9mu}
-
-%D The next macro vertically centeres its contents.
-
-\def\@center@math#1%
- {\vcenter{\hbox{$\mathsurround\zeropoint#1$}}}
-
-\def\@center@colon
- {\mathpalette\@center@math{\colon}}
-
-%D Now we define all the colon relations.
-
-\definemathcommand [centercolon] [rel] {\@center@colon}
-\definemathcommand [colonminus] [rel] {\centercolon\colonsep\mathrel{-}}
-\definemathcommand [minuscolon] [rel] {\mathrel{-}\colonsep\centercolon}
-\definemathcommand [colonequals] [rel] {\centercolon\colonsep=}
-\definemathcommand [equalscolon] [rel] {=\centercolon\colonsep}
-\definemathcommand [colonapprox] [rel] {\centercolon\colonsep\approx}
-\definemathcommand [approxcolon] [rel] {\approx\centercolon\colonsep}
-\definemathcommand [colonsim] [rel] {\centercolon\colonsep\sim}
-\definemathcommand [simcolon] [rel] {\sim\centercolon\colonsep}
-
-\definemathcommand [coloncolon] [rel] {\centercolon\doublecolonsep\centercolon}
-\definemathcommand [coloncolonminus] [rel] {\coloncolon\colonsep\mathrel{-}}
-\definemathcommand [minuscoloncolon] [rel] {\mathrel{-}\colonsep\coloncolon}
-\definemathcommand [coloncolonequals] [rel] {\coloncolon\colonsep=}
-\definemathcommand [equalscoloncolon] [rel] {=\coloncolon\colonsep}
-\definemathcommand [coloncolonapprox] [rel] {\coloncolon\colonsep\approx}
-\definemathcommand [approxcoloncolon] [rel] {\approx\coloncolon\colonsep}
-\definemathcommand [colonsim] [rel] {\coloncolon\colonsep\sim}
-\definemathcommand [simcoloncolon] [rel] {\sim\coloncolon\colonsep}
-
-%D More integrals (AM):
-
-\def\dointkern{\mkern-6mu\mathchoice{\mkern-3mu}{}{}{}}
-
-\definemathcommand [iint] {\repeatintegral\plusone }
-\definemathcommand [iiint] {\repeatintegral\plustwo }
-\definemathcommand [iiiint] {\repeatintegral\plusthree}
-
-\def\repeatintegral#1%
- {\scratchtoks\emptytoks
- \let\dointlimits\donothing
- \let\dodointlimits\intlimits
- \dorecurse{#1}{\appendtoks \intop \dointkern \to \scratchtoks}
- \appendtoks \intop \dointlimits \dodointlimits \to \scratchtoks
- \edef\dodorepeatintegral{\the\scratchtoks}%
- \futurelet\next\dorepeatintegral}
-
-%D If the \type{\limits} option is used after \type{\iint}, use
-%D \type{\mathop} and fudge the left hand space a bit to make the
-%D subscript visually centered.
-
-\def\dorepeatintegral
- {\ifx\next\limits \dointlimitcorrection \else
- \ifx\next\displaylimits \dointlimitcorrection \else
- \ifx\next\nolimits \donothing \else
- \ifcase\intlimitcode\else \dointlimitcorrection \fi\fi\fi\fi
- \dodorepeatintegral}
-
-\def\dointlimitcorrection
- {\mkern-7mu\mathchoice{\mkern-2mu}{}{}{}%
- \mathop\bgroup
- \mkern7mu\mathchoice{\mkern2mu}{}{}{}%
- \let\dointlimits\egroup}
-
-\setupmathematics
- [integral=nolimits]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/math-tim.mkii b/Master/texmf-dist/tex/context/base/mkii/math-tim.mkii
deleted file mode 100644
index da7d17e7ba6..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/math-tim.mkii
+++ /dev/null
@@ -1,371 +0,0 @@
-%D \module
-%D [ file=math-tim,
-%D version=2001.04.12,
-%D title=\CONTEXT\ Math Macros,
-%D subtitle=Mathtime Specials,
-%D author={Hans Hagen \& Taco Hoekwater},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\endinput % i will clean this up after taco has gone over it
-
-%D With thanks to Berthold Horn from YandY for providing me
-%D evaluation copies of the MathTimePlus fonts.
-
-% version 0 : Michael Spivak
-% version 1 : Taco Hoekwater
-% version 2 : Hans Hagen
-% version 3 : etc etc etc
-
-\unprotect
-
-%D We use the predefined spare families \type {\mcfam} and
-%D \type {\mdfam}.
-
-\let\cafam\mcfam \let\hexcafam\hexmcfam
-\let\gbfam\mdfam \let\hexgbfam\hexmdfam
-\let\gkfam\mdfam \let\hexgkfam\hexmdfam
-
-% Why is this needed?
-
-% \font\tenmd =mtgu at 10pt
-% \font\sevenmd=mtgu at 7.6pt
-% \font\fivemd =mtgu at 6pt
-% \font\tenmc =mtms at 10pt
-% \font\sevenmc=mtms at 7.6pt
-% \font\fivemc =mtms at 6pt
-%
-% \textfont \mcfam\tenmc \textfont \mdfam\tenmd
-% \scriptfont \mcfam\sevenmc \scriptfont \mdfam\sevenmd
-% \scriptscriptfont\mcfam\fivemc \scriptscriptfont\mdfam\fivemd
-
-% \addtocommalist{gk}\familylist
-% \addtocommalist{gb}\familylist
-%
-% \defineinterfaceconstant {ca} {ca} % boohoo!
-% \defineinterfaceconstant {gk} {gk} % boohoo!
-% \defineinterfaceconstant {gb} {gb} % boohoo!
-
-% \definealternativestyle[script] [\ca][\ca]
-% \definealternativestyle[greek] [\gk][\gk]
-% \definealternativestyle[boldgreek][\gb][\gb]
-
-% \definebodyfont
-% [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt] [rm]
-% [ca=mtms sa 1,
-% gk=mtgu sa 1,
-% gb=mtgub sa 1]
-
-%D Since a font size is a rather fuzzy thing, it will be no
-%D surprise that the Math Times fonts have different specs
-%D than the Computer Modern Roman fonts.
-%D
-%D \starttabulate[|Bl|c|c|c|c|c|c|c|c|c|c|]
-%D \NC Computer Modern\NC
-%D 5 \NC6 \NC7 \NC8 \NC9 \NC10 \NC11 \NC12 \NC14 \NC18\NC\NR
-%D \NC Math Times \NC
-%D 6.0\NC6.8\NC7.6\NC8.4\NC9.2\NC10.0\NC10.8\NC11.6\NC13.2\NC--\NC\NR
-%D \stoptabulate
-%D
-%D The following definitions presume the existence of \type
-%D {tio} and \type {tibio} font alternatives. Definitions for
-%D \type {\tf.} etc and \type {\sc} are left as they are.
-
-%D moved code
-
-%D The next lines set up coding dependant versions of math
-%D accents (for \type {texnansi} of course). These are needed
-%D in commands like \type {\bf} and \type {\it} (which use the
-%D text font encoding) a opposed to \type {_no spec_} and
-%D \type {mi} that use the math font encoding. This stuff
-%D should be made more general!
-
-% \daghex, \ddaghex and \dothex were wrong in my version of mtmacs
-
-\def\daghex {86} % to do
-\def\ddaghex {87}
-\def\Shex {A7}
-\def\Phex {B6}
-\def\barhex {16}
-\def\gravehex{12}
-\def\acutehex{13}
-\def\checkhex{14}
-\def\brevehex{15}
-\def\hathex {5E}
-\def\dothex {05}
-\def\tildehex{7E}
-\def\ddothex {7F}
-
-%D The \type {mtex} fonts need a recalculation of \type
-%D {\p@renwd}, which in \CONTEXT\ is done automatically.
-
-%D The following definitions are mostly copied from the file
-%D \type {mtmacs.tex}, which banner said:
-%D
-%D \starttyping
-%D MTMACS.TEX VERSION 1.1.1 (1996 Dec 8)
-%D COPYRIGHT (C) 1992, 1993, 1996 BY THE TEXPLORATORS CORPORATION
-%D ALL RIGHTS RESERVED
-%D \stoptyping
-%D
-%D We reformatted the macros and changed a few bits and
-%D pieces. A further cleanup with regards to the scratch
-%D registers will be done later.
-
-\mathchardef\Gamma = "0130
-\mathchardef\Delta = "0131
-\mathchardef\Theta = "0132
-\mathchardef\Lambda = "0133
-\mathchardef\Xi = "0134
-\mathchardef\Pi = "0135
-\mathchardef\Sigma = "0136
-\mathchardef\Upsilon = "0137
-\mathchardef\Phi = "0138
-\mathchardef\Psi = "0139
-\mathchardef\Omega = "017F
-\mathchardef\varGamma = "0100
-\mathchardef\varDelta = "0101
-\mathchardef\varTheta = "0102
-\mathchardef\varLambda = "0103
-\mathchardef\varXi = "0104
-\mathchardef\varPi = "0105
-\mathchardef\varSigma = "0106
-\mathchardef\varUpsilon = "0107
-\mathchardef\varPhi = "0108
-\mathchardef\varPsi = "0109
-\mathchardef\varOmega = "010A
-\mathchardef\varkappa = "017E
-
-\mathchardef\ldotp = "613A
-
-\mathchardef\triangleleft = "2247
-\mathchardef\triangleright = "2246
-\mathchardef\comp = "2242
-
-\mathchardef\Relbar = "3248
-\mathchardef\dagger = "20\daghex % to do
-\mathchardef\ddagger = "20\ddaghex % to do
-\mathchardef\dotacc = "0250
-
-\mathcode`\( = "412E
-\mathcode`\) = "512F
-\mathcode`\. = "013A
-\mathcode`\, = "613B
-\mathcode`\+ = "2243
-\mathcode`\= = "3244
-\mathcode`\; = "6249
-
-\delcode `\( = "12E300
-\delcode `\) = "12F301
-
-\let\mit=\undefined % to do
-
-\def\vec{\mathaccent"0245 }
-\def\t#1{{\edef\next{\the\font}\the\textfont2\accent"41\next#1}}
-
-% fam equals -1 unless the user has said something
-% like \rm (cf. the texbook page 290)
-
-\def\ifdefaultfamelse#1#2%
- {\ifnum\fam=\minusone\mathaccent#1\else\mathaccent#2\fi}
-
-\let\noaccents@\relax
-
-\def\grave {\ifdefaultfamelse{"024A}{"70\gravehex}}
-\def\acute {\ifdefaultfamelse{"024B}{"70\acutehex}}
-\def\check {\ifdefaultfamelse{"024C}{"70\checkhex}}
-\def\breve {\ifdefaultfamelse{"024D}{"70\brevehex}}
-\def\bar {\ifdefaultfamelse{"024E}{"70\barhex }}
-\def\hat {\ifdefaultfamelse{"024F}{"70\hathex }}
-\def\dot {\ifdefaultfamelse{"0250}{"70\dothex }}
-\def\tilde {\ifdefaultfamelse{"0251}{"70\tildehex}}
-\def\ddot {\ifdefaultfamelse{"0252}{"70\ddothex }}
-
-\def\widebar{\mathaccent"0253 }
-
-\def\mathhexbox@#1#2#3%
- {\relax
- \ifmmode
- \mathpalette{}{\mathsurround\zeropoint\rm\mathchar"#1#2#3}%
- \else
- \leavevmode
- \hbox{$\mathsurround\zeropoint\rm\mathchar"#1#2#3$}%
- \fi}
-
-\def\dag {\edef\next@{0\daghex }\expandafter\mathhexbox@\next@}
-\def\ddag{\edef\next@{0\ddaghex}\expandafter\mathhexbox@\next@}
-
-\def\S{\edef\next@{0\Shex}\expandafter\mathhexbox@\next@}
-\def\P{\edef\next@{0\Phex}\expandafter\mathhexbox@\next@}
-
-\def\vdots%
- {\vbox
- {\baselineskip4\points
- \lineskiplimit\zeropoint
- \kern6\points\hbox{$\mathsurround\zeropoint.$}\hbox{$\mathsurround\zeropoint.$}\hbox{$\mathsurround\zeropoint.$}}}
-
-\def\ddots%
- {\mathinner
- {\mkern1mu
- \raise7\points\vbox{\kern 7\points\hbox{$\mathsurround\zeropoint.$}}\mkern2mu
- \raise4\points\hbox{$\mathsurround\zeropoint.$}\mkern2mu
- \raise \points\hbox{$\mathsurround\zeropoint.$}\mkern1mu}}
-
-\def\hbar
- {{\mathchoice
- {\hbox{\lower.07em \hbox{$\mathchar"\barhex$}}}
- {\hbox{\lower.07em \hbox{$\mathchar"\barhex$}}}
- {\hbox{\lower.049em\hbox{$\scriptstyle\mathchar"\barhex$}}}
- {\hbox{\lower.035em\hbox{$\scriptscriptstyle\mathchar"\barhex$}}}%
- \mkern-6.3muh}}
-
-\def\angle%
- {{\vbox{\ialign{$\mathsurround\zeropoint\scriptstyle##$\crcr
- \not\mathrel{\mkern14mu}\crcr
- \noalign{\nointerlineskip}
- \mkern2.5mu\leaders\hrule height.48\points\hfill\mkern2.5mu\crcr}}}}
-
-\newdimen\amstexex
-
-\amstexex = .2326ex
-
-\def\varinjlim%
- {\mathop{\vtop{\ialign{##\crcr
- \hfil\the\textfont\zerocount lim\hfil\crcr
- \noalign{\nointerlineskip}\rightarrowfill\crcr
- \noalign{\nointerlineskip\kern-\amstexex}\crcr}}}}
-
-\def\varprojlim%
- {\mathop{\vtop{\ialign{##\crcr
- \hfil\the\textfont\zerocount lim\hfil\crcr
- \noalign{\nointerlineskip}\leftarrowfill\crcr
- \noalign{\nointerlineskip\kern-\amstexex}\crcr}}}}
-
-\def\varliminf{\mathop{\underbar {lim}}} % context-ified
-\def\varlimsup{\mathop{\overstrike{lim}}} % context-ified
-
-\def\spdot {^{\hbox{\raise\amstexex\hbox{\the\textfont\zerocount .}}}}
-\def\spddot {^{\hbox{\raise\amstexex\hbox{\the\textfont\zerocount ..}}}}
-\def\spdddot {^{\hbox{\raise\amstexex\hbox{\the\textfont\zerocount ...}}}}
-\def\spddddot{^{\hbox{\raise\amstexex\hbox{\the\textfont\zerocount....}}}}
-
-%D Here some code is merged in order to save strings.
-
-\def\domultidot#1#2%
- {\setbox0\hbox{$#1#2$}%
- \setbox2\hbox{$#1\infty$}%
- \dimen0\ht2
- \ifdim\ht0<\dimen0 \dimen0\ht0 \fi
- \setbox2\hbox{$#1#2\mathchar"012D$}%
- \dimen2\wd2
- \advance\dimen2-\wd0
- \setbox0\hbox{$#1\rhook$}%
- \advance\dimen2-\wd0
- \vbox
- {\offinterlineskip
- \ialign{\hfil$#1##$\hfil\cr
- \kern\dimen2\dotacc\mkern-2.5mu\dotacc\mkern-2.5mu\dotacc\thirddot\cr
- \noalign{\vskip-\dimen0}%
- #2\cr}}}
-
-\def\dddot%
- {\def\thirddot{}%
- \mathpalette\domultidot}
-
-\def\ddddot%
- {\def\thirddot{\mkern-2.5mu\dotacc}%
- \mathpalette\domultidot}
-
-\newcount\uproot@
-\newcount\leftroot@
-
-\def\nonmatherr#1%
- {\errmessage{\noexpand#1allowed only in math mode}}
-
-\def\uproot#1%
- {\relax
- \ifmmode
- \uproot@#1\relax
- \else
- \nonmatherr\uproot
- \fi}
-
-\def\leftroot#1%
- {\relax
- \ifmmode
- \leftroot@#1\relax
- \else
- \nonmatherr\leftroot
- \fi}
-
-\def\root#1\of#2%
- {\setbox\rootbox=\hbox{$\mathsurround\zeropoint\scriptscriptstyle{#1}$}%
- \mathpalette\r@@t{#2}}
-
-\def\r@@t#1#2%
- {\setbox\zerocount\hbox{$\uproot@\zerocount\leftroot\zerocount\mathsurround\zeropoint#1\sqrt{#2}$}%
- \dimen@\ht\zerocount\advance\dimen@-\dp\zerocount
- \dimen@ii\dimen@
- \ifdim\dimen@>30\points \advance\dimen@ii-16\points \else
- \ifdim\dimen@>24\points \advance\dimen@ii -8\points \else
- \ifdim\dimen@>18\points \advance\dimen@ii -6\points \else
- \ifdim\dimen@>12\points \advance\dimen@ii -4\points \else
- \ifdim\dimen@>10\points \advance\dimen@ii -2\points \fi\fi\fi\fi\fi
- \setbox\plustwo=\hbox{$\mathsurround\zeropoint#1\mskip\uproot@ mu$}%
- \advance\dimen@ii by1.667\wd\plustwo
- \mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@ii\copy\rootbox
- \mkern-8mu\mkern\leftroot@ mu\box\zerocount\leftroot\zerocount\uproot\zerocount}
-
-\def\space@.{\futurelet\space@\relax} \space@. % really needed ?
-
-\def\jadjust%
- {\mkern-\plustwo mu}
-
-%D For the moment the following code is left unchanged. It is
-%D not used anyway.
-
-\newif\ifsubscriptcorrection \subscriptcorrectionfalse
-
-\ifsubscriptcorrection
-
- \expandafter\let\csname subscript character \string_\endcsname_
-
- \catcode`\_=\active
-
- \def_%
- {\ifmmode
- \expandafter\sb@
- \else
- \expandafter\csname subscript character \string_\endcsname
- \fi}
-
- \let\sb_
-
- \ifnum\catcode`\^^A=8 \catcode`\^^A\active\let^^A_\fi
-
- \def\sb@#1%
- {\csname subscript character \string_\endcsname
- {\futurelet\next\sb@@#1}}
-
- \def\sb@@%
- {\ifx\next\space@
- \def\next@. %
- {\futurelet\next\sb@@}%
- \else
- \def\next@.%
- {\ifx\next j%
- \mkern-\plustwo mu\else
- \ifx\next f%
- \mkern-\plustwo mu\else
- \ifx\next p%
- \mkern-\plusone mu\fi\fi\fi}%
- \fi
- \next@.}
-
-\fi
-
-\protect
diff --git a/Master/texmf-dist/tex/context/base/mkii/math-uni.mkii b/Master/texmf-dist/tex/context/base/mkii/math-uni.mkii
deleted file mode 100644
index 5c75a9fb44b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/math-uni.mkii
+++ /dev/null
@@ -1,237 +0,0 @@
-%D \module
-%D [ file=math-uni,
-%D version=2005.06.11,
-%D title=\CONTEXT\ Math Macros,
-%D subtitle=unicode support,
-%D author={Nikolai Weibull \& Taco Hoekwater},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-
-\unprotect
-
-% needed for unic-032 % TH
-
-\startmathcollection[default]
-
- \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 % NW
-
-\startmathcollection[default]
-
- \definemathcommand [unic@in] {\in}
- \definemathcommand [unic@nin] {\not\in}
- \definemathcommand [unic@nni] {\not\ni}
- \definemathcommand [unic@minus] {-}
- \definemathcommand [unic@divisionslash] {/}
- \definemathcommand [unic@sqrt] {\sqrt{}}
- \definemathcommand [unic@cubesqrt] {\root 3 \of {}}
- \definemathcommand [unic@fourthsqrt] {\root 4 \of {}}
- \definemathcommand [unic@divides] [op] {|} % TODO
- \definemathcommand [unic@ndivides] [rel] {\mathop{\not|}} % TODO: horrible
- \definemathcommand [unic@cap] {\cap}
- \definemathcommand [unic@dblint] {\int\!\!\!\int}
- \definemathcommand [unic@triint] {\int\!\!\!\int\!\!\!\int}
- \definemathcommand [unic@ratio] [rel] {:}
- \definemathcommand [unic@proportion] [rel] {::}
- \definemathcommand [unic@excess] [op] {-\!\!:}
- \definemathcommand [unic@geomprop] [op] {:\!\!\!-\!\!\!:}
- \definemathcommand [unic@homothetic] [op] {\sim\!\!\!:}
- \definemathcommand [unic@nsimeq] {\not\simeq}
- \definemathcommand [unic@cong] {\cong}
- \definemathcommand [unic@napproxeq] {\not\approxeq}
- \definemathcommand [unic@napprox] {\not\approx}
- \definemathcommand [unic@doteq] {\doteq}
- \definemathcommand [unic@correspondsto] {\buildrel \frown \over =}
- \definemathcommand [unic@estimates] {\buildrel \wedge \over =}
- \definemathcommand [unic@equiangularto] {\buildrel \vee \over =}
- \definemathcommand [unic@stareq] {\buildrel \star \over =}
- \definemathcommand [unic@eqbydef] {\buildrel \rm def \over =}
- \definemathcommand [unic@measuredby] {\buildrel \rm m \over =}
- \definemathcommand [unic@questionedeq] {\buildrel \rm ? \over =}
- \definemathcommand [unic@nequiv] {\not\equiv}
- \definemathcommand [unic@nasymp] {\not\asymp}
- \definemathcommand [unic@nlesssim] {\not\lesssim}
- \definemathcommand [unic@ngtrsim] {\not\gtrsim}
- \definemathcommand [unic@nlessgtr] {\not\lessgtr}
- \definemathcommand [unic@ngtrless] {\not\gtrless}
- \definemathcommand [unic@nsubset] {\not\subset}
- \definemathcommand [unic@nsupset] {\not\supset}
- \definemathcommand [unic@nsqsubseteq] {\not\sqsubseteq}
- \definemathcommand [unic@nsqsupseteq] {\not\sqsupseteq}
-
-\stopmathcollection
-
-% needed for unic-039 % NW
-
-\startmathcollection[default]
-
- \definemathcommand [unic@Lbracket] [open] {[\![}
- \definemathcommand [unic@Rbracket] [close] {]\!]}
- \definemathcommand [unic@Langle] [open] {\langle\!\langle}
- \definemathcommand [unic@Rangle] [close] {\rangle\!\rangle}
-
-\stopmathcollection
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/meta-clp.mkii b/Master/texmf-dist/tex/context/base/mkii/meta-clp.mkii
deleted file mode 100644
index 5c9206deee9..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/meta-clp.mkii
+++ /dev/null
@@ -1,164 +0,0 @@
-%D \module
-%D [ file=meta-clp,
-%D version=2000.07.06,
-%D title=\METAPOST\ Graphics,
-%D subtitle=Clipping,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D In this library, we define a bunch of clipping paths that
-%D can be fed to \type {\clip}.
-
-\startMPclip{ellipse}
- clip currentpicture to unitcircle
- xscaled \width yscaled \height ;
-\stopMPclip
-
-\startMPclip{negellipse}
- clip currentpicture to (unitcircle peepholed unitsquare)
- xscaled \width yscaled \height ;
-\stopMPclip
-
-\startMPclip{urellipse}
- clip currentpicture to urcircle scaled 2
- xscaled \width yscaled \height ;
-\stopMPclip
-
-\startMPclip{ulellipse}
- clip currentpicture to ulcircle scaled 2 shifted (1,0)
- xscaled \width yscaled \height ;
-\stopMPclip
-
-\startMPclip{llellipse}
- clip currentpicture to llcircle scaled 2 shifted (1,1)
- xscaled \width yscaled \height ;
-\stopMPclip
-
-\startMPclip{lrellipse}
- clip currentpicture to lrcircle scaled 2 shifted (0,1)
- xscaled \width yscaled \height ;
-\stopMPclip
-
-\startMPclip{tellipse}
- clip currentpicture to tcircle shifted (.5,0) yscaled 2
- xscaled \width yscaled \height ;
-\stopMPclip
-
-\startMPclip{bellipse}
- clip currentpicture to bcircle shifted (.5,.5) yscaled 2
- xscaled \width yscaled \height ;
-\stopMPclip
-
-\startMPclip{lellipse}
- clip currentpicture to lcircle shifted (.5,.5) xscaled 2
- xscaled \width yscaled \height ;
-\stopMPclip
-
-\startMPclip{rellipse}
- clip currentpicture to rcircle shifted (0,.5) xscaled 2
- xscaled \width yscaled \height ;
-\stopMPclip
-
-\startMPclip{diamond}
- clip currentpicture to unitdiamond
- xscaled \width yscaled \height ;
-\stopMPclip
-
-\startMPclip{negdiamond}
- clip currentpicture to (unitdiamond peepholed unitsquare)
- xscaled \width yscaled \height ;
-\stopMPclip
-
-\startMPclip{urtriangle}
- clip currentpicture to urtriangle scaled 2
- xscaled \width yscaled \height ;
-\stopMPclip
-
-\startMPclip{ultriangle}
- clip currentpicture to ultriangle scaled 2 shifted (1,0)
- xscaled \width yscaled \height ;
-\stopMPclip
-
-\startMPclip{lltriangle}
- clip currentpicture to lltriangle scaled 2 shifted (1,1)
- xscaled \width yscaled \height ;
-\stopMPclip
-
-\startMPclip{lrtriangle}
- clip currentpicture to lrtriangle scaled 2 shifted (0,1)
- xscaled \width yscaled \height ;
-\stopMPclip
-
-% More efficient:
-%
-% \def\dosimpleMPclip#1
-% {clip currentpicture to (#1) xscaled \width yscaled \height ;}
-%
-% \def\simpleMPclip#1#2%
-% {\startMPclip{#1}\dosimpleMPclip{#2}\stopMPclip}
-%
-% \simpleMPclip {ellipse} {unitcircle}
-% \simpleMPclip {diamond} {unitdiamond}
-%
-% \simpleMPclip {negellipse} {unitcircle peepholed unitsquare}
-% \simpleMPclip {negdiamond} {unitdiamond peepholed unitsquare}
-%
-% \simpleMPclip {urellipse} {urcircle scaled 2 shifted (0,0)}
-% \simpleMPclip {ulellipse} {ulcircle scaled 2 shifted (1,0)}
-% \simpleMPclip {llellipse} {llcircle scaled 2 shifted (1,1)}
-% \simpleMPclip {lrellipse} {lrcircle scaled 2 shifted (0,1)}
-%
-% \simpleMPclip {tellipse} {tcircle shifted (.5,0) yscaled 2}
-% \simpleMPclip {bellipse} {bcircle shifted (.5,.5) yscaled 2}
-% \simpleMPclip {lellipse} {lcircle shifted (.5,.5) xscaled 2}
-% \simpleMPclip {rellipse} {rcircle shifted (0,.5) xscaled 2}
-%
-% \simpleMPclip {urtriangle} {urtriangle scaled 2 shifted (0,0)}
-% \simpleMPclip {ultriangle} {ultriangle scaled 2 shifted (1,0)}
-% \simpleMPclip {lltriangle} {lltriangle scaled 2 shifted (1,1)}
-% \simpleMPclip {lrtriangle} {lrtriangle scaled 2 shifted (0,1)}
-
-%D \in {Figure} [fig:clipping paths] shows which paths are
-%D predefined. When applied to a whole picture, their usage
-%D is:
-%D
-%D \starttyping
-%D \clip[nx=1,ny=1,mp=ellipse]{some clippable content}
-%D \stoptyping
-%D
-%D \startbuffer
-%D \setupclipping [nx=1,ny=1,x=1,y=1]
-%D \setupblackrules[width=2cm,height=1cm]
-%D \startcombination[6*3] % \startcombination[6*3]
-%D {\clip[mp=urellipse] {\blackrule}} {urellipse}
-%D {\clip[mp=ulellipse] {\blackrule}} {ulellipse}
-%D {\clip[mp=llellipse] {\blackrule}} {llellipse}
-%D {\clip[mp=lrellipse] {\blackrule}} {lrellipse}
-%D {\clip[mp=ellipse] {\blackrule}} {ellipse}
-%D {\clip[mp=negellipse]{\blackrule}} {negellipse}
-%D {\clip[mp=tellipse] {\blackrule}} {tellipse}
-%D {\clip[mp=bellipse] {\blackrule}} {bellipse}
-%D {\clip[mp=lellipse] {\blackrule}} {lellipse}
-%D {\clip[mp=rellipse] {\blackrule}} {rellipse}
-%D {} {}
-%D {} {}
-%D {\clip[mp=urtriangle]{\blackrule}} {urtriangle}
-%D {\clip[mp=ultriangle]{\blackrule}} {ultriangle}
-%D {\clip[mp=lltriangle]{\blackrule}} {lltriangle}
-%D {\clip[mp=lrtriangle]{\blackrule}} {lrtriangle}
-%D {\clip[mp=diamond] {\blackrule}} {diamond}
-%D {\clip[mp=negdiamond]{\blackrule}} {negdiamond}
-%D \stopcombination % \stopcombination
-%D \stopbuffer
-%D
-%D \placefigure % \placefigure
-%D [here][fig:clipping paths]
-%D {The predefined clipping paths.}
-%D {\getbuffer} % {\getbuffer}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/meta-dum.mkii b/Master/texmf-dist/tex/context/base/mkii/meta-dum.mkii
deleted file mode 100644
index dae30ed695b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/meta-dum.mkii
+++ /dev/null
@@ -1,123 +0,0 @@
-%D \module
-%D [ file=meta-dum,
-%D version=2003.03.21,
-%D title=\METAPOST\ Graphics,
-%D subtitle=Dummy (External) Graphics,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-%D This library overloads the normal external figure
-%D placeholder by a nicer one.
-%D
-%D \startbuffer
-%D \useMPlibrary[dum]
-%D
-%D \startlinecorrection
-%D \externalfigure[unknown-a][width=3cm,height=1cm]
-%D \stoplinecorrection
-%D
-%D \startlinecorrection
-%D \externalfigure[unknown-b][width=4cm,height=5cm]
-%D \stoplinecorrection
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-% currently preparempvariables is unable to resolve number
-% fractions like reduction
-
-% June 22, 2003, this definition was patched to adapt itself
-% to transparent colors
-
-\startuseMPgraphic{placeholder}{width,height,reduction,color}
- numeric w, h, d, r ; color c, b, cc ; path p ; boolean t ;
- t := is_transparent(\MPvar{color}) ;
- c := not_transparent(\MPvar{color}) ;
- b := not_transparent(white) ;
- w := \MPvar{width} ;
- h := \MPvar{height} ;
- r := \MPvar{reduction} ;
- d := max(w,h) ;
- p := unitsquare xyscaled (w,h) ;
- cc := r[.5c,b] ;
- fill p withcolor if t : transparent(1,.5,cc) else : cc fi ;
- for i := 1 upto 60 :
- cc := r[c randomized(.3,.9),b] ;
- fill fullcircle
- scaled (d/5 randomized (d/5))
- shifted (center p randomized (d))
- withcolor if t : transparent(1,.5,cc) else : cc fi ;
- endfor ;
- clip currentpicture to p ;
-\stopuseMPgraphic
-
-\definepalet
- [placeholder]
- [1=red,2=green,3=blue,4=cyan,5=magenta,6=yellow]
-
-% \newcounter \figurereplacementcycle
-
-\let\figurereplacementcycle\relax
-
-\setupexternalfigures
- [\c!reduction=0,
- \c!text=\v!yes]
-
-\let\normalexternalfigurereplacement\externalfigurereplacement
-
-\def\externalfigurereplacement#1#2#3%
- {\getpaletsize[placeholder]%
- \ifx\figurereplacementcycle\relax
- \getrandomnumber \figurereplacementcycle \!!plusone \paletsize
- \globallet \figurereplacementcycle \figurereplacementcycle
- \else
- \doglobal\increment\figurereplacementcycle
- \fi
- \ifnum\figurereplacementcycle>\paletsize
- \globallet\figurereplacementcycle\!!plusone
- \fi
- \weightGRAYfalse % monochrome anyway
- \MPcmykcolorsfalse
- \MPspotcolorsfalse
- \defineoverlay
- [\s!dummy]
- [\useMPgraphic
- {placeholder}%
- {width=\figurewidth,
- height=\figureheight,
- reduction=\@@efreduction,
- color=placeholder:\figurereplacementcycle}]%
- \expanded{\localframed
- [\??ef]
- [\c!width=\figurewidth,
- \c!height=\figureheight,
- \c!frame=\v!off,
- \c!strut=\v!no,
- \c!background=\s!dummy,
- \c!foregroundcolor=\s!white]}%
- {\doif\@@eftext\v!yes
- {\infofont \setupinterlinespace \dohyphens % \nohyphens
- \doifelse{#1}\s!dummy \!!doneafalse\!!doneatrue
- \doifelse{#2}\s!dummy \!!donebfalse\!!donebtrue
- \doifelse{#3}\s!unknown\!!donecfalse\!!donectrue
- \if!!donea
- name: \expanded{\verbatimstring{#1}}\strut\endgraf
- \fi
- \if!!doneb
- \if!!donea file: \else \if!!donec file: \fi \fi
- \expanded{\verbatimstring{#2}}\strut\endgraf
- \fi
- \if!!donec
- state: \expanded{\verbatimstring{#3}}\strut\endgraf
- \fi}}}
-
-\def\dummyfigure{\externalfigure[placeholder]}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/meta-fig.mkii b/Master/texmf-dist/tex/context/base/mkii/meta-fig.mkii
deleted file mode 100644
index 31fe5fc0c0e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/meta-fig.mkii
+++ /dev/null
@@ -1,89 +0,0 @@
-%D \module
-%D [ file=meta-fig,
-%D version=2000.09.07,
-%D title=\METAPOST\ Graphics,
-%D subtitle=Stand Alone Graphics,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{MetaPost Graphics / Stand Alone Graphics}
-
-\unprotect
-
-%D This module implements a method for defining
-%D stand||alone||graphics, that is, each graphic gets is own
-%D page. Because graphics are wrapped in a \type {\framed},
-%D you can add overlays to the graphic directly, and since the
-%D whole \CONTEXT\ machinery is available, you can also add
-%D page backgrounds.
-%D
-%D \starttyping
-%D \setupMPpage
-%D [offset=1pt,
-%D background=color,
-%D backgroundcolor=green]
-%D
-%D \startMPpage
-%D fill fullcircle scaled 10cm withcolor red ;
-%D \stopMPpage
-%D
-%D \startMPpage
-%D fill fullsquare rotated 45 scaled 8cm withcolor blue ;
-%D \stopMPpage
-%D \stoptyping
-%D
-%D Although this is hardly of any use, you can mix these
-%D definitions with the text flow, since all settings are
-%D kept local. The page is clipped to the image size.
-
-\presetlocalframed[\??mg]
-
-\def\setupMPpage
- {\dodoubleargument\getparameters[\??mg]}
-
-\def\startMPpage
- {\dodoubleempty\dostartMPpage}
-
-\long\def\dostartMPpage[#1][#2]% second arg gobbles space
- {\dostartfittingpage[\??mg][#1]%
- \obeyMPlines
- \dodostartMPpage}
-
-\long\def\dodostartMPpage#1\stopMPpage
- {\startuseMPgraphic{@@}#1\stopuseMPgraphic
- \useMPgraphic{@@}%
- \dostopfittingpage}
-
-\let\stopMPpage \relax % so that we can use it in \expanded
-
-\setupMPpage
- [\c!scale=1000,
- \c!strut=\v!no,
- \c!align=,
- \c!offset=\v!overlay,
- \c!width=\v!fit,
- \c!height=\v!fit,
- \c!frame=\v!off]
-
-%D \macros
-%D {MPfigure}
-%D
-%D A bit out of place, here but nevertheless:
-
-\def\MPfigure#1#2% test for dup figure
- {\bgroup
- \getfiguredimensionsonly[#1]% [\c!object=\v!no] already set
- \startMPcode
- externalfigure "#1"
- xscaled \figurewidth\space
- yscaled \figureheight\space
- #2 ;
- \stopMPcode
- \egroup}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/meta-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/meta-ini.mkii
deleted file mode 100644
index 9780fecfadf..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/meta-ini.mkii
+++ /dev/null
@@ -1,1054 +0,0 @@
-%D \module
-%D [ file=meta-ini,
-%D version=1999.07.10,
-%D title=\METAPOST\ Graphics,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% currently the running color influences the mp graphic in
-% pdftex, but this will change [i.e. become optional]; one
-% problem is that pdf has no grouping with regards to the
-% color
-
-\writestatus{loading}{MetaPost Graphics / Initializations}
-
-\unprotect
-
-%D This module extends the functionality of the support module
-%D \type {supp-mps}, the module that is responsible for
-%D \METAPOST\ inclusion in \CONTEXT. Some basic macros will be
-%D extended. Since some support is depends on \METAPOST\
-%D macros. so let's first preload a few auxiliary \METAPOST\
-%D files.
-
-\maxnofMPgraphics = 4000 % metafun disables the 4K boundary
-
-\appendtoks \flushMPgraphics \to \everygoodbye % \everylastshipout
-
-\def\@@MPG{@MPG@}
-
-%D Since we want lables to follow the document settings, we
-%D also set the font related variables.
-
-\ifnum\texengine=\xetexengine
- \startMPinitializations % scale is not yet ok
- defaultfont:="rm-lmtt10";
- defaultscale:=\the\bodyfontsize/10pt;
- \stopMPinitializations
-\else
- \startMPinitializations % scale is not yet ok
- defaultfont:="\truefontname{Regular}";
- defaultscale:=\the\bodyfontsize/10pt;
- \stopMPinitializations
-\fi
-
-%D In order to support fancy text features (like outline
-%D fonts), we set:
-
-\startMPextensions
- graphictextformat:="context";
- graphictextdirective "\the\everyMPTEXgraphic";
-\stopMPextensions
-
-% \startMPextensions
-% textextdirective "\the\everyMPTEXgraphic";
-% \stopMPextensions
-
-%D A signal that we're in combines \CONTEXT||\METAFUN mode:
-
-\startMPextensions
- string contextversion;
- contextversion:="\contextversion";
-\stopMPextensions
-
-%D Some safeguards:
-%D
-%D \starttyping
-%D \appendtoks \cleanupfeatures \to \everyMPgraphic
-%D \stoptyping
-%D
-%D No, we don't want that (else we loose UTF etc).
-
-%D Another one:
-
-\prependtoks \MPstaticgraphictrue \to \everyoverlay
-\prependtoks \MPstaticgraphictrue \to \everypagebody
-
-%D We save the number of graphics for the sake of \TEXEXEC.
-
-\newcounter\totalnofMPgraphics
-
-\def\thenofMPgraphics{\the\nofMPgraphics} % from supp-mps
-
-\appendtoks
- \savecurrentvalue\totalnofMPgraphics\thenofMPgraphics
-\to \everybye
-
-%D \macros
-%D {setupMPvariables}
-%D
-%D When we build collections of \METAPOST\ graphics, like
-%D background and buttons, the need for passing settings
-%D arises. By (mis|)|using the local prefix that belongs to
-%D \type {\framed}, we get a rather natural interface to
-%D backgrounds. To prevent conflicts, we will use the \type
-%D {-} in \METAPOST\ specific variables, like:
-%D
-%D \starttyping
-%D \setupMPvariables[meta:button][size=20pt]
-%D \stoptyping
-
-\def\@@meta{meta:}
-
-\def\setupMPvariables
- {\dodoubleempty\dosetupMPvariables}
-
-\def\dosetupMPvariables[#1][#2]%
- {\ifsecondargument
- \getrawparameters[#1:][#2]% brr, todo: [\@@meta#1:]
- \else
- \getrawparameters[\@@meta][#1]%
- \fi}
-
-\let\@@framed\s!unknown
-
-\def\MPvariable#1%
- {\csname
- \ifcsname\@@framed\@@meta#1\endcsname\@@framed\fi\@@meta#1%
- \endcsname}
-
-\let\MPvar\MPvariable
-
-\let\setMPvariables\setupMPvariables
-
-\def\MPrawvar#1#2{\csname#1:#2\endcsname}
-
-\def\presetMPvariable
- {\dodoubleargument\dopresetMPvariable}
-
-\def\dopresetMPvariable[#1][#2=#3]%
- {\doifundefined{#1:#2}{\setvalue{#1:#2}{#3}}}
-
-\def\useMPvariables
- {\dodoubleargument\douseMPvariables}
-
-\def\douseMPvariables[#1][#2]%
- {\def\@@meta{#1:}%
- \prepareMPvariables{#2}}
-
-%D \macros
-%D {startuniqueMPgraphic, uniqueMPgraphic}
-%D
-%D This macros is probably of most use to myself, since I like
-%D to use graphics that adapt themselves. The next \METAPOST\
-%D kind of graphic is both unique and reused when possible.
-%D
-%D \starttyping
-%D \defineoverlay[example][\uniqueMPgraphic{test}]
-%D
-%D \startuniqueMPgraphic {test}
-%D draw unitsquare xscaled \overlaywidth yscaled \overlayheight ;
-%D \stopuniqueMPgraphic
-%D \stoptyping
-
-%D For educational purposes, we show the original version
-%D first. This one used a rather simple method for determining
-%D the uniqueness.
-%D
-%D \starttyping
-%D \long\def\startuniqueMPgraphic#1#2\stopuniqueMPgraphic%
-%D {\setvalue{\@@MPG#1}%
-%D {\startreusableMPgraphic{\overlaystamp:#1}#2\stopreusableMPgraphic
-%D \reuseMPgraphic{\overlaystamp:#1}}}
-%D
-%D \def\uniqueMPgraphic#1%
-%D {\getvalue{\@@MPG#1}}
-%D \stoptyping
-
-%\def\overlaystamp % watch the \MPcolor, since colors can be redefined
-% {\overlaywidth:\overlayheight:\overlaydepth
-% :\MPcolor{\overlaycolor}:\MPcolor{\overlaylinecolor}}
-
-\def\overlaystamp % watch the \MPcolor, since colors can be redefined
- {\overlaywidth:\overlayheight:\overlaydepth
- :\MPcolor\overlaycolor:\MPcolor\overlaylinecolor}
-
-%D A better approach is to let additional variables play a role
-%D in determining the uniqueness. In the next macro, the
-%D second, optional, argument is used to guarantee the
-%D uniqueness, as well as prepare variables for passing them to
-%D \METAPOST.
-%D
-%D \starttyping
-%D \startuniqueMPgraphic{meta:hash}{gap,angle,...}
-%D \stoptyping
-%D
-%D The calling macro also accepts a second argument. For
-%D convenient use in overlay definitions, we use \type {{}}
-%D instead of \type {[]}.
-%D
-%D \starttyping
-%D \uniqueMPgraphic{meta:hash}{gap=10pt,angle=30}
-%D \stoptyping
-
-\long\def\handleuniqueMPgraphic#1#2#3%
- {\blabelgroup
- \def\@@meta{#1:}%
- \extendMPoverlaystamp{#2}% incl prepare
- \ifundefined{\@@MPG\overlaystamp:#1}%
- \enableincludeMPgraphics
- \startMPgraphic#3\stopMPgraphic
- \doifobjectssupportedelse\donothing\useMPboxfalse
- \ifuseMPbox
- \@EA\douseMPbox
- \else
- \@EA\nouseMPbox
- \fi {\@@MPG\overlaystamp:#1}%
- \fi
- \getvalue{\@@MPG\overlaystamp:#1}%
- \elabelgroup}
-
-\long\def\startuniqueMPgraphic
- {\blabelgroup
- \dodoublegroupempty\dostartuniqueMPgraphic}
-
-\long\def\dostartuniqueMPgraphic
- {\obeyMPlines
- \dodostartuniqueMPgraphic}
-
-\long\def\dodostartuniqueMPgraphic#1#2#3\stopuniqueMPgraphic%
- {\long\setgvalue{\@@MPG#1}{\handleuniqueMPgraphic{#1}{#2}{#3}}%
- \elabelgroup}
-
-\unexpanded\def\uniqueMPgraphic
- {\dodoublegroupempty\douniqueMPgraphic}
-
-\def\douniqueMPgraphic#1#2%
- {\blabelgroup
- \setupMPvariables[#1][#2]%
- \getvalue{\@@MPG#1}{}%
- \elabelgroup}
-
-\let\stopuniqueMPcode \relax % so that we can use it in \expanded
-
-\def\includeMPgraphic#1%
- {\executeifdefined{\@@MPG#1};} % ; if not found
-
-\long\def\handleuseMPgraphic#1#2#3%
- {\blabelgroup
- \def\@@meta{#1:}%
- \prepareMPvariables{#2}%
- \enableincludeMPgraphics
- \startMPgraphic#3\stopMPgraphic
- \ifMPrun \else % see mfun-004 : processing buffer
- \loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{}%
- \placeMPgraphic
- \fi
- \deallocateMPslot\currentMPgraphic
- \elabelgroup}
-
-\long\def\startuseMPgraphic
- {\blabelgroup
- \dodoublegroupempty\dostartuseMPgraphic}
-
-\long\def\dostartuseMPgraphic
- {\obeyMPlines
- \dodostartuseMPgraphic}
-
-\long\def\dodostartuseMPgraphic#1#2#3\stopuseMPgraphic
- {\long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}{#3}}%
- \elabelgroup}
-
-\long\def\startusableMPgraphic % redundant but handy
- {\blabelgroup
- \dodoublegroupempty\dostartusableMPgraphic}
-
-\long\def\dostartusableMPgraphic % redundant but handy
- {\obeyMPlines
- \dodostartusableMPgraphic}
-
-\long\def\dodostartusableMPgraphic#1#2#3\stopusableMPgraphic
- {\long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}{#3}}%
- \elabelgroup}
-
-\long\def\handlereusableMPgraphic#1#2#3%
- {\blabelgroup
- \def\@@meta{#1:}%
- \prepareMPvariables{#2}%
- \enableincludeMPgraphics
- \startMPgraphic#3\stopMPgraphic
- \doifobjectssupportedelse\donothing\useMPboxfalse
- \ifuseMPbox
- \@EA\douseMPbox
- \else
- \@EA\nouseMPbox
- \fi {\@@MPG#1}%
- \getvalue{\@@MPG#1}%
- \elabelgroup}
-
-\long\def\startreusableMPgraphic
- {\blabelgroup
- \dodoublegroupempty\dostartreusableMPgraphic}
-
-\def\dostartreusableMPgraphic
- {\obeyMPlines
- \dodostartreusableMPgraphic}
-
-\long\def\dodostartreusableMPgraphic#1#2#3\stopreusableMPgraphic
- {\long\setgvalue{\@@MPG#1}{\handlereusableMPgraphic{#1}{#2}{#3}}%
- \elabelgroup}
-
-\unexpanded\def\useMPgraphic
- {\dodoublegroupempty\douseMPgraphic}
-
-\def\douseMPgraphic#1#2%
- {\blabelgroup
- \setupMPvariables[#1][#2]%
- \getvalue{\@@MPG#1}{}%
- \elabelgroup}
-
-\let\reuseMPgraphic\useMPgraphic
-
-\let\stopuseMPcode \relax % so that we can use it in \expanded
-\let\stopusableMPcode \relax % so that we can use it in \expanded
-\let\stopreusableMPcode \relax % so that we can use it in \expanded
-\let\stopuniqueMPcode \relax % so that we can use it in \expanded
-
-\def\enableincludeMPgraphics
- {\let\handleuseMPgraphic \thirdofthreearguments
- \let\handlereusableMPgraphic\thirdofthreearguments}
-
-% todo: each code/page/buffer a var class
-
-%D \macros
-%D {startuniqueMPpagegraphic,uniqueMPpagegraphic}
-%D
-%D Experimental.
-
-\def\MPpageprefix{\doifoddpageelse oe:}
-
-\def\overlaypagestamp
- {\MPpageprefix\overlaywidth:\overlayheight:\overlaydepth
- :\MPcolor\overlaycolor:\MPcolor\overlaylinecolor}
-
-\long\def\startuniqueMPpagegraphic
- {\blabelgroup
- \dodoublegroupempty\dostartuniqueMPpagegraphic}
-
-\long\def\dostartuniqueMPpagegraphic
- {\obeyMPlines
- \dodostartuniqueMPpagegraphic}
-
-\long\def\dodostartuniqueMPpagegraphic#1#2#3\stopuniqueMPpagegraphic
- {\long\setgvalue{\@@MPG o:#1}{\handleuniqueMPgraphic{o:#1}{#2}{#3}}%
- \long\setgvalue{\@@MPG e:#1}{\handleuniqueMPgraphic{e:#1}{#2}{#3}}%
- \elabelgroup}
-
-\unexpanded\def\uniqueMPpagegraphic
- {\dodoublegroupempty\douniqueMPpagegraphic}
-
-% \def\douniqueMPpagegraphic#1#2%
-% {\blabelgroup
-% \let\overlaystamp\overlaypagestamp
-% \setupMPvariables[#1][#2]%
-% \getvalue{\@@MPG\MPpageprefix#1}{}%
-% \elabelgroup}
-
-\def\douniqueMPpagegraphic#1#2%
- {\blabelgroup
- \let\overlaystamp\overlaypagestamp
- \setupMPvariables[\MPpageprefix#1][#2]% prefix is new here
- \getvalue{\@@MPG\MPpageprefix#1}{}%
- \elabelgroup}
-
-%D One way of defining a stamp is:
-%D
-%D \starttyping
-%D \def\extendMPoverlaystamp#1%
-%D {\def\docommand##1%
-%D {\edef\overlaystamp{\overlaystamp:\MPvariable{##1}}}%
-%D \processcommalist[#1]\docommand}
-%D \stoptyping
-
-%D Since we need to feed \METAPOST\ with expanded dimensions,
-%D we introduce a dedicated expansion engine.
-
-\def\prepareMPvariable#1%
- {\ifundefined{\@@framed\@@meta#1}%
- \doprepareMPvariable{\@@meta#1}%
- \else
- \doprepareMPvariable{\@@framed\@@meta#1}%
- \fi}
-
-% \startlines
-% \def\xxx{\lineheight} \doprepareMPvariable{xxx} \xxx
-% \def\xxx{2pt} \doprepareMPvariable{xxx} \xxx
-% \def\xxx{2} \doprepareMPvariable{xxx} \xxx
-% \def\xxx{\scratchcounter} \doprepareMPvariable{xxx} \xxx
-% \def\xxx{red} \doprepareMPvariable{xxx} \xxx
-% \def\xxx{0.4} \doprepareMPvariable{xxx} \xxx
-% \stoplines
-
-\def\doprepareMPvariable#1%
- {\edef\theMPvariable{\getvalue{#1}}%
- \doifelsenothing\theMPvariable
- {\setevalue{#1}{\MPcolor{black}}}
- {\defconvertedcommand\ascii\theMPvariable % otherwise problems
- \doifcolorelse \ascii % with 2\bodyfontsize
- {\setevalue{#1}{\MPcolor\theMPvariable}}
- {% can be aux macro
- \setbox\scratchbox\hbox{\scratchdimen\theMPvariable sp}%
- \ifdim\wd\scratchbox=\zeropoint
- % \scratchcounter\theMPvariable
- % \setevalue{#1}{\the\scratchcounter}%
- % also accepts 0.number :
- \setevalue{#1}{\number\theMPvariable}%
- \else
- \scratchdimen\theMPvariable
- \setevalue{#1}{\the\scratchdimen}%
- \fi}}}
-
-%D We redefine \type {\extendMPoverlaystamp} to preprocess
-%D variables using \type {\prepareMPvariable}.
-
-\def\doextendMPoverlaystamp#1%
- {\prepareMPvariable{#1}%
- \edef\overlaystamp{\overlaystamp:\MPvariable{#1}}}
-
-\def\extendMPoverlaystamp#1%
- {\processcommalist[#1]\doextendMPoverlaystamp}
-
-\def\prepareMPvariables#1%
- {\processcommalist[#1]\prepareMPvariable}
-
-%D \macros
-%D {MPdatafile}
-%D
-%D We redefine a macro from \type {supp-mps.tex}:
-
-\def\MPdatafile
- {\bufferprefix mpd-\the\currentMPgraphic.mpd}
-
-%D \macros
-%D {MPrunfile}
-%D
-%D This one is more abstract and does not assume knowledge
-%D of buffer prefixes.
-
-\def\MPrunfile#1%
- {\bufferprefix mprun.#1}
-
-%D \macros
-%D {getMPdata}
-%D
-%D When we collect graphics in one file, we run into
-%D troubles, since \METAPOST\ has a built in limit (of 4)
-%D on the number of files it can handle. It's therefore
-%D better to collect all data in one file and filter it.
-
-\def\MPdataMPDfile{\jobname-mpgraph.mpd}
-\def\MPdataMPOfile{\jobname-mpgraph.mpo}
-\def\MPdataMPYfile{\jobname-mpgraph.mpy}
-
-\startMPextensions
- boolean collapse_data; collapse_data:=true;
- def data_mpd_file="\MPdataMPDfile"; enddef ;
- def data_mpo_file="\MPdataMPOfile"; enddef ;
- def data_mpy_file="\MPdataMPYfile"; enddef ;
-\stopMPextensions
-
-\def\getMPdata
- {\long\def\MPdata##1##2{\ifnum##1=\currentMPgraphic\relax##2\fi}%
- \startreadingfile
- % \startnointerference % no, else we need to do all data global
- \readlocfile\MPdataMPDfile\donothing\donothing
- % \stopnointerference
- \stopreadingfile}
-
-%D We have to enable this mechanism with:
-
-\startMPextensions
-\stopMPextensions
-
-%D For the moment, the next one is a private macro:
-
-\def\processMPbuffer
- {\dosingleempty\doprocessMPbuffer}
-
-\def\doprocessMPbuffer[#1]%
- {\doifelsenothing{#1}
- {\doprocessMPbuffer[\jobname]}
- {\bgroup
- \setnormalcatcodes
- \obeyMPlines
- %\let\par\empty % oeps, this makes dvi mode graphics hang when not found
- \!!toksa\emptytoks
- \def\copyMPbufferline{\expandafter\appendtoks\fileline\to\!!toksa}%
- \def\dodoprocessMPbuffer##1%
- {\doprocessfile\scratchread{\TEXbufferfile{##1}}\copyMPbufferline}%
- \processcommalist[#1]\dodoprocessMPbuffer
- \@EA\startMPcode\the\!!toksa\stopMPcode % more efficient
- \egroup}}
-
-\def\runMPbuffer
- {\dosingleempty\dorunMPbuffer}
-
-\def\dorunMPbuffer[#1]% processing only
- {{\MPruntrue\doprocessMPbuffer[#1]}}
-
-%D \macros
-%D {startMPenvironment, resetMPenvironment}
-%D
-%D In order to synchronize the main \TEX\ run and the runs
-%D local to \METAPOST, environments can be passed.
-
-\ifx\everyMPTEXgraphic\undefined
- \newtoks\everyMPTEXgraphic
-\fi
-
-%D A more general way of passing environments is:
-
-\def\startMPenvironment % second arg gobbles spaces, so that reset gives \emptytoks
- {\bgroup
- \catcode`\^^M=\@@space
- \dodoubleempty\dostartMPenvironment}
-
-\long\def\dostartMPenvironment[#1][#2]#3\stopMPenvironment
- {\egroup
- \doif{#1}\s!reset\resetMPenvironment % reset mp toks
- \doif{#1}\v!global{#3}% % use in main doc too
- \doif{#1}+{#3}% % use in main doc too
- \defconvertedargument\ascii{#3}%
- \expandafter\appendtoks\ascii\to\everyMPTEXgraphic}
-
-\def\resetMPenvironment
- {\everyMPTEXgraphic\emptytoks % = is really needed !
- \startMPenvironment
- \global\loadfontfileoncetrue
- \stopMPenvironment}
-
-\resetMPenvironment
-
-\def\useMPenvironmentbuffer[#1]%
- {\expanded{\startMPenvironment\noexpand\readfile{\TEXbufferfile{\jobname}}{}{}}\stopMPenvironment}
-
-% \useMPenvironmentbuffer[mp] % what was this?
-
-%D This command takes \type {[reset]} as optional
-%D argument.
-%D
-%D \starttyping
-%D \startMPenvironment
-%D \setupbodyfont[pos,14.4pt]
-%D \stopMPenvironment
-%D
-%D \startMPcode
-%D draw btex \sl Hans Hagen etex scaled 5 ;
-%D \stopMPcode
-%D \stoptyping
-%D
-%D The \type {\resetMPenvironment} is a quick way to erase
-%D the token list.
-%D
-%D You should be aware of independencies. For instance, if you use a font
-%D in a graphic that is not used in the main document, you need to load the
-%D typescript at the outer level (either directly or by using the global
-%D option).
-%D
-%D \starttyping
-%D \usetypescript[palatino][texnansi]
-%D
-%D \startMPenvironment
-%D \usetypescript[palatino][texnansi]
-%D \enableregime[utf]
-%D \setupbodyfont[palatino]
-%D \stopMPenvironment
-%D
-%D \startMPpage
-%D draw btex aap‒noot coördinatie – één etex ;
-%D \stopMPpage
-%D \stoptyping
-
-%D We don't want spurious files, do we?
-
-%\def\initializeMPgraphics
-% {%\ifx\bufferprefix\empty \else
-% \immediate\openout\MPwrite\MPgraphicfile.mp
-% \immediate\write\MPwrite{end.}%
-% \immediate\closeout\MPwrite
-% }%\fi}
-
-% strange :
-
-% \def\initializeMPgraphicfile
-% {\bgroup
-% \doinitializeMPgraphicfile
-% \MPruntrue
-% \doinitializeMPgraphicfile
-% \egroup}
-
-% \def\doinitializeMPgraphicfile
-% {\immediate\openout\scratchwrite\MPgraphicfile.mp
-% \immediate\write\scratchwrite{end.}%
-% \immediate\closeout\scratchwrite}
-
-\def\initializeMPgraphicfile
- {\immediate\openout\scratchwrite\MPgraphicfile.mp
- \immediate\write\scratchwrite{end.}%
- \immediate\closeout\scratchwrite}
-
-\def\initializeMPgraphics
- {\bgroup
- \initializeMPgraphicfile
-% \ifx\bufferprefix\empty\else
-% \let\bufferprefix\empty
-% \initializeMPgraphicfile
-% \fi
- \egroup}
-
-%D Loading specific \METAPOST\ related definitions is
-%D accomplished by:
-
-\def\douseMPlibrary#1%
- {\ifundefined{\c!file\f!metapostprefix#1}%
- \letvalueempty{\c!file\f!metapostprefix#1}%
- \makeshortfilename[\truefilename{\f!metapostprefix#1}]%
- \startreadingfile
- \readsysfile{\shortfilename.\mksuffix}
- {\showmessage\m!metapost1{#1}}
- {\readsysfile{\shortfilename.tex}
- {\showmessage\m!metapost1{#1}}
- \donothing}%
- \stopreadingfile
- \fi}
-
-\def\useMPlibrary[#1]%
- {\processcommalist[#1]\douseMPlibrary}
-
-%D \macros
-%D {setMPtext, MPtext, MPstring, MPbetex}
-%D
-%D To be documented:
-%D
-%D \starttyping
-%D \setMPtext{identifier}{text}
-%D
-%D \MPtext {identifier}
-%D \MPstring{identifier}
-%D \MPbetex {identifier}
-%D \stoptyping
-
-\def\@@MPT{@MPT@}
-
-\def\forceMPTEXgraphic
- {\long\def\checkMPTEXgraphic##1{\global\MPTEXgraphictrue}}
-
-\def\setMPtext#1#2% todo : #1 must be made : safe
- {%\forceMPTEXgraphic
- \defconvertedargument\ascii{#2}%
- \dodoglobal\letvalue{\@@MPT#1}\ascii}
-
-% \def\MPtext #1{\getvalue{\@@MPT#1}}
-% \def\MPstring #1{"\getvalue{\@@MPT#1}"}
-% \def\MPbetex #1{btex \getvalue{\@@MPT#1} etex}
-
-\def\MPtext #1{\executeifdefined{\@@MPT#1}\empty}
-\def\MPstring #1{"\executeifdefined{\@@MPT#1}\empty"}
-\def\MPbetex #1{btex \executeifdefined{\@@MPT#1}\empty\space etex}
-
-%D Unfortunately \METAPOST\ does not have \CMYK\ support
-%D built in, but by means of specials we can supply the
-%D information needed to handle them naturaly.
-
-\newif\ifMPcmykcolors \MPcmykcolorstrue
-\newif\ifMPspotcolors \MPspotcolorstrue
-
-\startMPinitializations
- cmykcolors:=\ifMPcmykcolors true\else false\fi;
- spotcolors:=\ifMPspotcolors true\else false\fi;
-\stopMPinitializations
-
-%D In order to communicate conveniently with the \TEX\
-%D engine, we introduce some typesetting variables.
-
-% todo : backgroundoffsets
-
-\startMPextensions
- color OverlayColor,OverlayLineColor;
-\stopMPextensions
-
-\startMPinitializations
- OverlayWidth:=\overlaywidth;
- OverlayHeight:=\overlayheight;
- OverlayDepth:=\overlayheight;
- OverlayColor:=\MPcolor{\overlaycolor};
- OverlayLineWidth:=\overlaylinewidth;
- OverlayLineColor:=\MPcolor{\overlaylinecolor};
- %
- BaseLineSkip:=\the\baselineskip;
- LineHeight:=\the\baselineskip;
- BodyFontSize:=\the\bodyfontsize;
- %
- TopSkip:=\the\topskip;
- StrutHeight:=\strutheight;
- StrutDepth:=\strutdepth;
- %
- CurrentWidth:=\the\hsize;
- CurrentHeight:=\the\vsize;
- %
- EmWidth:=\the\emwidth;
- ExHeight:=\the\exheight;
- %
- PageNumber:=\the\pageno;
- RealPageNumber:=\the\realpageno;
- LastPageNumber:= \lastpage;
-\stopMPinitializations
-
-\appendtoks
- \disablediscretionaries
- \disablecompoundcharacters
-\to\everyMPgraphic
-
-% New, experimental (if complaints than only in enco-ffr.mkii), well
-% Mojca complained that it does not work with utf-8 and textext, see
-% ** in meta-tex.
-
-\appendtoks
- \chardef\activecharactermode\zerocount
-\to\everyMPgraphic
-
-\appendtoks
- \expanded{\definecolor[currentcolor][\currentcolorname]}%
-\to \everyMPgraphic
-
-\appendtoks
- \baselineskip1\baselineskip
- \lineheight 1\lineheight
- \topskip 1\topskip
-\to \everyMPgraphic
-
-%D Alas, the prologue settings differ per driver.
-
-\ifx\undefined\MPprologues \def\MPprologues{0} \fi
-
-\startMPinitializations
- prologues:=\MPprologues;
- mpprocset:=1;
-\stopMPinitializations
-
-\appendtoks
- \def\MPprologues{0}%
- \def\MPOSTdriver{dvips}%
-\to \everyresetspecials
-
-%D \macros
-%D {PDFMPformoffset}
-%D
-%D In \PDF, forms are clipped and therefore we have to take
-%D precautions to get this right. Since this is related to
-%D objects, we use the same offset as used there.
-
-\def\PDFMPformoffset{\objectoffset}
-
-%D \macros
-%D {insertMPfile}
-%D
-%D Bypassing the special driver and figure mechanism is not
-%D that nice but saves upto 5\% time in embedding \METAPOST\
-%D graphics by using the low level \PDF\ converter directly,
-%D given of course that we use \PDFTEX. As a result we need to
-%D fool around with the object trigger.
-
-\newtoks\everyinsertMPfile
-
-%D First we present the reasonable fast alternative that we
-%D happily used for some time.
-%D
-%D \starttyping
-%D \def\insertMPfile#1#2%
-%D {\ifx\undefined\externalfigure
-%D \message{[insert file #1 here]}%
-%D \else
-%D \bgroup
-%D \the\everyinsertMPfile
-%D \externalfigure
-%D [#1]
-%D [\c!type=\c!mps,\c!object=\v!no,%
-%D \c!symbol=\v!yes,\c!reset=\v!yes,%
-%D \c!maxwidth=,\c!maxheight=,%
-%D \c!frame=\v!off,\c!background=,%
-%D #2]%
-%D \egroup
-%D \fi}
-%D \stoptyping
-%D
-%D However, on a 1 Gig Pentium, the next alternative saves
-%D us 20 seconds run time for the 300 page \METAFUN\ manual:
-
-\let\insertMPfileARG\insertMPfile
-
-\def\insertMPfile#1#2% in context #2 is empty
- {\doifelsenothing{#2}{\doinsertMPfile{#1}}{\insertMPfileARG{#1}{#2}}}
-
-\def\includeMPasEPS#1% untested !!
- {\bgroup
- \message{[MP as EPS #1]}%
- \the\everyinsertMPfile
- \dogetEPSboundingbox{#1}\!!widtha\!!heighta\!!widthb\!!heightb
- \setbox\scratchbox\vbox to \!!heightb
- {\vfill
- \let \@@DriverImageType \c!mps
- \def \@@DriverImageFile {#1}%
- \edef\@@DriverImageWidth {\the\!!widthb }%
- \edef\@@DriverImageHeight{\the\!!heightb}%
- \doinsertfile}%
- \wd\scratchbox\!!widthb
- \dp\scratchbox\zeropoint
- \box\scratchbox
- \egroup}
-
-\ifx\makeMPintoPDFobject\undefined \newcount\makeMPintoPDFobject \fi
-
-\def\includeMPasPDF#1%
- {\bgroup
- \the\everyinsertMPfile
- \ifinobject \else \makeMPintoPDFobject\plustwo \fi % when needed
- \convertMPtoPDF{#1}{1}{1}% no \plusone !
- \egroup}
-
-%D So, using a low level approach (thereby avoiding the slower
-%D figure analysis macros) pays off. This kind of
-%D optimizations are a bit tricky since we must make sure that
-%D special resources end up in the (PDF) files. Because the
-%D \METAPOST\ to \PDF\ can handle objects itself, it is not
-%D that complicated.
-
-%D We hook a couple of initializations into the graphic
-%D macros.
-
-\appendtoks
- \let\figuretypes\c!mps
- \runutilityfilefalse
- \consultutilityfilefalse
-\to \everyinsertMPfile
-
-%D One more: (still needed?)
-
-\startMPextensions
- def initialize_form_numbers =
- do_initialize_numbers;
- enddef;
-\stopMPextensions
-
-\startMPinitializations
- HSize:=\the\hsize ;
- VSize:=\the\vsize ;
-\stopMPinitializations
-
-\startMPextensions
- vardef ForegroundBox =
- unitsquare xysized(HSize,VSize)
- enddef ;
- vardef PageFraction =
- if \lastpage>1: (\realfolio-1)/(\lastpage-1) else: 1 fi
- enddef ;
-\stopMPextensions
-
-%D And some more. These are not really needed since we
-%D don't use the normal figure inclusion macros any longer.
-
-\appendtoks
- \externalfigurepostprocessors\emptytoks % safeguard
-\to \everyinsertMPfile
-
-%D We also take care of disabling fancy figure features, that
-%D can terribly interfere when dealing with symbols,
-%D background graphics and running (postponed) graphics.
-%D You won't believe me if I tell you what funny side effects
-%D can occur. One took me over a day to uncover when
-%D processing the screen version of the \METAFUN\ manual.
-
-%D For my eyes only:
-
-\def\doifelseMPgraphic#1{\doifdefinedelse{\@@MPG#1}}
-
-%D \macros
-%D {startMPcolor}
-%D
-%D The following time consuming method uses \METAPOST\ to
-%D calculate a color. This enables a match between colors
-%D resulting from a complex calculation (e.g. for a title
-%D page) and those in the text.
-
-% \startuseMPgraphic{somecolors}
-% color c[] ; c[1] := .7[red,green] ; c[2] := .7[blue,yellow] ;
-% \stopuseMPgraphic
-
-% \startMPcolor[shade-1][t=.2,a=1]
-% \includeMPgraphic{somecolors} ; fill fullcircle withcolor c[1] ;
-% \stopMPcolor
-
-% \startMPcolor[shade-2][t=.2,a=1]
-% \includeMPgraphic{somecolors} ; fill fullcircle withcolor c[2] ;
-% \stopMPcolor
-
-% \blackrule[width=\hsize,height=4cm,color=shade-1]
-% \blackrule[width=\hsize,height=4cm,color=shade-2]
-
-\def\startMPcolor
- {\dodoubleempty\dostartMPcolor}
-
-\long\def\dostartMPcolor[#1][#2]#3\stopMPcolor % slow but sometimes handy
- {\startnointerference
- \def\handleMPgraycolor{\expanded{\defineglobalcolor[#1][s=\!MPgMPa1,#2]}}%
- \def\handleMPrgbcolor {\expanded{\defineglobalcolor[#1][r=\!MPgMPa1,g=\!MPgMPa2,b=\!MPgMPa3,#2]}}%
- \def\handleMPcmykcolor{\expanded{\defineglobalcolor[#1][c=\!MPgMPa1,m=\!MPgMPa2,y=\!MPgMPa3,k=\!MPgMPa4,#2]}}%
- \startMPcode#3\stopMPcode
- \stopnointerference}
-
-%D New:
-
-\definelayerpreset % no dx,dy - else nasty non-mp placement
- [mp]
- [\c!y=-\MPury bp,
- \c!x=\MPllx bp,
- \c!method=\v!fit]
-
-\definelayer
- [mp]
- [\c!preset=mp]
-
-%D Usage:
-%D
-%D \starttyping
-%D \defineproperty[one][layer][state=start]
-%D \defineproperty[two][layer][state=stop]
-%D
-%D \startuseMPgraphic{step-1}
-%D fill fullcircle scaled 10cm withcolor red ;
-%D \stopuseMPgraphic
-%D
-%D \startuseMPgraphic{step-2}
-%D fill fullcircle scaled 5cm withcolor green ;
-%D \stopuseMPgraphic
-%D
-%D \setlayer[mp]{\property[one]{\useMPgraphic{step-1}}}
-%D \setlayer[mp]{\property[two]{\useMPgraphic{step-2}}}
-%D
-%D \ruledhbox{\flushlayer[mp]}
-%D \stoptyping
-%D
-%D Reusing graphics is also possible (now):
-%D
-%D \starttyping
-%D \startreusableMPgraphic{axis}
-%D tickstep := 1cm ; ticklength := 2mm ;
-%D drawticks unitsquare xscaled 4cm yscaled 3cm shifted (-1cm,-1cm) ;
-%D tickstep := tickstep/2 ; ticklength := ticklength/2 ;
-%D drawticks unitsquare xscaled 4cm yscaled 3cm shifted (-1cm,-1cm) ;
-%D \stopreusableMPgraphic
-%D
-%D \startuseMPgraphic{demo}
-%D drawpoint "1cm,1.5cm" ;
-%D \stopuseMPgraphic
-%D
-%D \definelayer[mp][preset=mp]
-%D \setlayer[mp]{\reuseMPgraphic{axis}}
-%D \setlayer[mp]{\useMPgraphic{demo}}
-%D \ruledhbox{\flushlayer[mp]}
-%D \stoptyping
-
-%D \macros
-%D {startstaticMPfigure,useMPstaticfigure}
-%D
-%D Static figures are processed only when there has been
-%D something changed. Here is Aditya Mahajan's testcase:
-%D
-%D \startbuffer
-%D \startstaticMPfigure{circle}
-%D fill fullcircle scaled 1cm withcolor blue;
-%D \stopstaticMPfigure
-%D
-%D \startstaticMPfigure{axis}
-%D drawarrow (0,0)--(2cm,0) ;
-%D drawarrow (0,0)--(0,2cm) ;
-%D label.llft(textext("(0,0)") ,origin) ;
-%D \stopstaticMPfigure
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-\def\usestaticMPfigure[#1]%
- {\dodoubleempty\externalfigure[\jobname-#1.pdf]}
-
-\def\startstaticMPfigure
- {\begingroup
- \obeyMPlines
- \dostartstaticMPfigure}
-
-\def\dostartstaticMPfigure#1#2\stopstaticMPfigure
- {\startstaticMPgraphic{\jobname-#1}#2\stopstaticMPgraphic
- \endgroup}
-
-% faster, but more tricky
-%
-% \def\startstaticMPfigure
-% {\doifmodeelse{*\v!first}
-% {\begingroup
-% \obeyMPlines
-% \dostartstaticMPfigure}
-% {\gobbleuntil\stopstaticMPfigure}}
-%
-% \def\dostartstaticMPfigure#1#2\stopstaticMPfigure
-% {\startMPstaticgraphic{\jobname-#1}#2\stopMPstaticgraphic
-% % dirty trick, don't register, so no second main run of texexec:
-% \global\advance\nofMPgraphics \minusone
-% \endgroup}}
-
-%D New:
-
-% \appendtoks \closeMPgraphicfiles \to \everystoptext
-
-%D New:
-
-\newconditional\manyMPspecials % when set to true, > 1000 specials can be used
-
-\settrue \manyMPspecials % per 1/4/2006
-
-\prependtoks
- _special_div_ := 1000\ifconditional\manyMPspecials0\fi ;
-\to \MPextensions
-
-%D Needed (will become default):
-
-\prependtoks
- \resetlanguagespecifics
-\to \everyMPgraphic
-
-%D Goody for preventing overflows:
-
-\def\MPdivten[#1]{\withoutpt\the\dimexpr#1pt/10\relax}
-
-%D Done.
-
-\protect \endinput
-
-%D Experimental:
-
-\appendtoks
- \ifrunMPgraphics \ifcase\systemcommandmode \or
- \runMPgraphicsfalse
- \fi \fi
-\to \everyjob
-
-% also:
-%
-% linecap := rounded ;
-% linejoin := rounded ;
-% drawoptions () ;
diff --git a/Master/texmf-dist/tex/context/base/mkii/meta-mis.mkii b/Master/texmf-dist/tex/context/base/mkii/meta-mis.mkii
deleted file mode 100644
index e8282c381b8..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/meta-mis.mkii
+++ /dev/null
@@ -1,54 +0,0 @@
-%D \module
-%D [ file=meta-mis,
-%D version=2006.06.06,
-%D title=\METAPOST\ Graphics,
-%D subtitle=Misc Test Graphics,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-% p/s 1/false 1/true 2/false 2/true
-%
-% MKII 8.5 8.0 8.8 8.5
-% MKIV 16.1 7.2 16.3 7.4
-
-\startuseMPgraphic{mptopdf-test}
- prologues := 2;
- mpprocset := 1 ;
- fill fullcircle scaled 3cm withcolor red ;
- fill fullcircle scaled 2cm withcolor green ;
- fill fullcircle scaled 1cm withcolor blue ;
- currentpicture := currentpicture shifted (-4cm,0) ;
- fill fullcircle scaled 3cm withcolor cmyk(0,0,1,0) ;
- fill fullcircle scaled 2cm withcolor cmyk(0,1,0,0) ;
- fill fullcircle scaled 1cm withcolor cmyk(1,0,0,0) ;
- currentpicture := currentpicture shifted (-4cm,0) ;
- draw fullcircle scaled 3cm dashed evenly ;
- draw fullcircle scaled 2cm dashed withdots ;
- draw origin withpen pencircle scaled 3mm;
- currentpicture := currentpicture shifted (-4cm,0) ;
- fill fullcircle scaled 2cm shifted (-.5cm,+.5cm) withcolor transparent(1,.5,red);
- fill fullcircle scaled 2cm shifted (-.5cm,-.5cm) withcolor transparent(1,.5,red);
- fill fullcircle scaled 2cm shifted (+.5cm,+.5cm) withcolor transparent(1,.5,green);
- fill fullcircle scaled 2cm shifted (+.5cm,-.5cm) withcolor transparent(1,.5,cmyk(1,0,1,.5));
- currentpicture := currentpicture shifted (12cm,-4cm) ;
- draw "o e p s" infont defaultfont scaled 2 shifted (-1cm,0) ;
- currentpicture := currentpicture shifted (-4cm,0) ;
- % bug: shift
- draw fullcircle scaled 3cm withpen pencircle yscaled 3mm xscaled 2mm rotated 30 ;
- draw fullcircle scaled 2cm withpen pencircle yscaled 3mm xscaled 2mm rotated 20 withcolor red ;
- filldraw fullcircle scaled 1cm withpen pencircle yscaled 3mm xscaled 2mm rotated 10 withcolor green ;
- currentpicture := currentpicture shifted (-4cm,0) ;
- % shade cannot handle shift
- circular_shade(fullcircle scaled 3cm,0,.2red,.9green) ;
- circular_shade(fullcircle scaled 3cm shifted(+4cm,0),0,cmyk(1,0,0,0),cmyk(0,1,0,0)) ;
- filldraw boundingbox currentpicture enlarged (-bbheight(currentpicture)/2+2.5mm) withpen pencircle scaled 1pt withcolor .5white ;
-\stopuseMPgraphic
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/meta-nav.mkii b/Master/texmf-dist/tex/context/base/mkii/meta-nav.mkii
deleted file mode 100644
index 45a31ba5ecf..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/meta-nav.mkii
+++ /dev/null
@@ -1,65 +0,0 @@
-%D \module
-%D [ file=meta-nav,
-%D version=2003.03.28,
-%D title=\METAPOST\ Graphics,
-%D subtitle=Navigational Graphics,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\startuniqueMPgraphic{navplus}{size,color,type,mode}
- color c ; numeric s, t ; path p ;
- t := \MPvar{type} ; c := \MPvar{color} ; s := \MPvar{size} ;
- if \MPvar{mode} = 1 : c := .5[c,white] fi ;
- if t = 1 :
- p := ((0,0)--(1/2,0)--(1,1/3)--(1,1)--(0,1)--(0,0)--cycle)
- xyscaled (3,4) ;
- elseif t = 2 :
- p := ((0,0)--(1,0)--(1,1)--(0,1)--(1/2,2/5)--(1,1)--(0,1)--cycle)
- xyscaled (4,3) ;
- else :
- p := fullsquare xyscaled (3,3) ;
- fi ;
- draw p withpen pencircle scaled (1/2) withcolor .75white ;
- fill p withcolor c ;
- draw p withpen pencircle scaled (1/3) withcolor .5c ;
- currentpicture := currentpicture scaled s ;
- currentpicture := currentpicture shifted -center currentpicture ;
-\stopuniqueMPgraphic
-
-\setupMPvariables
- [navplus]
- [size=1ex,
- color=black,
- type=1,
- mode=0]
-
-\definepalet
- [navplus]
- [attach=darkred,
- comment=darkblue]
-
-\definesymbol
- [comment-normal]
- [\uniqueMPgraphic{navplus}{type=1,color=navplus:comment}]
-\definesymbol
- [comment-down]
- [\uniqueMPgraphic{navplus}{type=1,color=navplus:comment,mode=1}]
-
-\definesymbol
- [attach-normal]
- [\uniqueMPgraphic{navplus}{type=2,color=navplus:attach}]
-\definesymbol
- [attach-down]
- [\uniqueMPgraphic{navplus}{type=2,color=navplus:attach,mode=1}]
-
-\unprotect
-
-\setupcomment [\c!symbol={comment-normal,comment-down}]
-\setupattachments[\c!symbol={attach-normal,attach-down}]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/meta-pag.mkii b/Master/texmf-dist/tex/context/base/mkii/meta-pag.mkii
deleted file mode 100644
index 82a525a0820..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/meta-pag.mkii
+++ /dev/null
@@ -1,226 +0,0 @@
-%D \module
-%D [ file=meta-pag,
-%D version=1999.07.10,
-%D title=\METAPOST\ Graphics,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D These definitions used to be part of the old \type
-%D {core-mps} file, later changed into \type {meta-ini}, but
-%D keeping them separate is cleaner.
-
-\writestatus{loading}{MetaPost Graphics / Page Data Management}
-
-\unprotect
-
-\startMPextensions
- if unknown context_page: input mp-page; fi;
-\stopMPextensions
-
-%D The next few macros tell \METAPOST\ how the \CONTEXT\
-%D pagebody looks.
-
-\startMPextensions
- boolean PageStateAvailable,OnRightPage,InPageBody;
- PageStateAvailable:=true;
-\stopMPextensions
-
-\startMPinitializations
- OnRightPage:=true;
- InPageBody:=\ifinpagebody true \else false \fi;
-\stopMPinitializations
-
-\startMPinitializations
- def LoadPageState =
- OnRightPage:=\MPonrightpage;
- OnOddPage:=\MPonoddpage;
- RealPageNumber:=\the\realpageno;
- PageNumber:=\the\pageno;
- NOfPages:=\lastpage;
- PaperHeight:=\the\paperheight;
- PaperWidth:=\the\paperwidth;
- PrintPaperHeight:=\the\printpaperheight;
- PrintPaperWidth:=\the\printpaperwidth;
- TopSpace:=\the\topspace;
- BottomSpace:=\the\bottomspace;
- BackSpace:=\the\backspace;
- CutSpace:=\the\cutspace;
- MakeupHeight:=\the\makeupheight;
- MakeupWidth:=\the\makeupwidth;
- TopHeight:=\the\topheight;
- TopDistance:=\the\topdistance;
- HeaderHeight:=\the\headerheight;
- HeaderDistance:=\the\headerdistance;
- TextHeight:=\the\textheight;
- FooterDistance:=\the\footerdistance;
- FooterHeight:=\the\footerheight;
- BottomDistance:=\the\bottomdistance;
- BottomHeight:=\the\bottomheight;
- LeftEdgeWidth:=\the\leftedgewidth;
- LeftEdgeDistance:=\the\leftedgedistance;
- LeftMarginWidth:=\the\leftmarginwidth;
- LeftMarginDistance:=\the\leftmargindistance;
- TextWidth:=\the\textwidth ;
- RightMarginDistance:=\the\rightmargindistance;
- RightMarginWidth:=\the\rightmarginwidth;
- RightEdgeDistance:=\the\rightedgedistance;
- RightEdgeWidth:=\the\rightedgewidth;
- InnerMarginDistance:=\the\innermargindistance;
- InnerMarginWidth:=\the\innermarginwidth;
- OuterMarginDistance:=\the\outermargindistance;
- OuterMarginWidth:=\the\outermarginwidth;
- InnerEdgeDistance:=\the\inneredgedistance;
- InnerEdgeWidth:=\the\inneredgewidth;
- OuterEdgeDistance:=\the\outeredgedistance;
- OuterEdgeWidth:=\the\outeredgewidth;
- PageOffset:=\the\pageoffset;
- PageDepth:=\the\pagedepth;
- LayoutColumns:=\the\layoutcolumns;
- LayoutColumnDistance:=\the\layoutcolumndistance;
- LayoutColumnWidth:=\the\layoutcolumnwidth;
- enddef;
-\stopMPinitializations
-
-\def\MPonrightpage{true}
-\def\MPonoddpage {true}
-
-\def\freezeMPpagelayout
- {\doifbothsides
- {\def\MPonrightpage{true}}
- {\def\MPonrightpage{true}}
- {\def\MPonrightpage{false}}%
- \edef\MPonoddpage{\doifoddpageelse{true}{false}}}
-
-\let\freezeMPlayout\relax % obsolete
-
-%D We need to freeze the pagelayout before the backgrounds
-%D are build, because the overlay will temporarily become
-%D zero (overlay).
-
-\appendtoks
- \freezeMPpagelayout
-\to \everybeforepagebody
-
-%D By freezing these value every graphic, we can use layout
-%D variables that change halfways a page, whatever use that
-%D has.
-
-\prependtoks
- \calculatereducedvsizes % this is really needed
- \freezeMPpagelayout
- \freezeMPlayout % to be used grouped
-\to \everyMPgraphic
-
-%D The next feature provides information about for instance
-%D column positions. This is an experimental feature,
-%D introduced when we needed backgrounds in columns (fill||in
-%D questions as implemented in a private module).
-%D
-%D See \type {mp-page.mp} for the definition of the macros:
-%D
-%D \starttabulate[|tl|l|p|]
-%D \NC ResetTextAreas \NC no arguments \NC
-%D reset areas on page \NC \NR
-%D \NC RegisterTextArea \NC x, y, w, h \NC
-%D adds area to the list \NC \NR
-%D \NC TextAreaX,Y,W,H,XY,WH \NC x and/or y \NC
-%D reports offsets and dimensions \NC \NR
-%D \stoptabulate
-%D
-%D The \type {TextArea*} macros can be used to determine
-%D overlap.
-
-\newcount\currentMPtextareadata
-
-\newtoks\MPsavedtextareadata
-\newtoks\MPtextareadata
-\newtoks\MPlocaltextareadata
-
-% optimaliseren voor herhaling
-
-\def\registerMPtextarea#1%
- {\ifpositioning
- \bgroup
- \global\advance\currentMPtextareadata\plusone
- %\hpos{gbd:\the\currentMPtextareadata}{#1}%
- \hpos{gbd:\the\currentMPtextareadata}%
- {\iftracetextareas\boxrulewidth1.5pt\ruledhbox\fi{#1}}%
- \edef\!!stringa{gbd:\the\currentMPtextareadata}%
- \edef\!!stringa{RegisterTextArea(%
- \MPx\!!stringa,\MPy\!!stringa,%
- \MPw\!!stringa,\MPh\!!stringa,\MPd\!!stringa);}%
- \@EA \doglobal \@EA \appendtoks \!!stringa \to \MPtextareadata
- \egroup
- \else
- \hbox{#1}%
- \fi}
-
-\def\registerMPlocaltextarea#1%
- {\ifpositioning
- \bgroup
- \global\advance\currentMPtextareadata\plusone
- %\hpos{gbd:\the\currentMPtextareadata}{#1}%
- \hpos{gbd:\the\currentMPtextareadata}%
- {\iftracetextareas\boxrulewidth3pt\ruledhbox\fi{#1}}%
- \edef\!!stringa{gbd:\the\currentMPtextareadata}%
- \edef\!!stringa{RegisterLocalTextArea(%
- \MPx\!!stringa,\MPy\!!stringa,%
- \MPw\!!stringa,\MPh\!!stringa,\MPd\!!stringa);}%
- \global\MPlocaltextareadata\@EA{\!!stringa}%
- \egroup
- \else
- \hbox{#1}%
- \fi}
-
-% better, so that we can force a key and share with e.g. renumbering
-%
-% \let\namedtextarea\empty
-%
-% \def\registerMPlocaltextarea#1%
-% {\ifpositioning
-% \bgroup
-% \ifx\namedtextarea\empty
-% \global\advance\currentMPtextareadata\plusone
-% \edef\namedtextarea{gbd:\the\currentMPtextareadata}%
-% \fi
-% \hpos\namedtextarea{\iftracetextareas\boxrulewidth3pt\ruledhbox\fi{#1}}%
-% \edef\ascii{RegisterLocalTextArea(%
-% \MPx\namedtextarea,\MPy\namedtextarea,%
-% \MPw\namedtextarea,\MPh\namedtextarea,\MPd\namedtextarea);}%
-% \global\MPlocaltextareadata\@EA{\ascii}%
-% \egroup
-% \else
-% \hbox{#1}%
-% \fi}
-
-\def\resetMPlocaltextarea
- {\global\MPlocaltextareadata\emptytoks}
-
-\startMPextensions
- path PlainTextArea;
-\stopMPextensions
-
-\startMPinitializations
- ResetTextAreas;
- \the\MPsavedtextareadata;
- SaveTextAreas;
- ResetTextAreas;
- \the\MPtextareadata;
- \the\MPlocaltextareadata;
- PlainTextArea:=boundingbox(\MPxy{text:\realfolio}--\MPxy{text:\realfolio}
- shifted (\MPw{text:\realfolio},\MPh{text:\realfolio}));
-\stopMPinitializations
-
-\appendtoks
- \global\MPsavedtextareadata\MPtextareadata
- \global\MPtextareadata \emptytoks
- \global\MPlocaltextareadata\emptytoks
-\to \everyshipout
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/meta-pdf.mkii b/Master/texmf-dist/tex/context/base/mkii/meta-pdf.mkii
deleted file mode 100644
index e1311339878..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/meta-pdf.mkii
+++ /dev/null
@@ -1,2761 +0,0 @@
-%D \module
-%D [ file=meta-pdf,
-%D version=2006.06.07,
-%D title=\METAPOST\ Graphics,
-%D subtitle=Conversion to \PDF,
-%D author=Hans Hagen \& others (see text),
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Formerly known as supp-pdf.tex and supp-mpe.tex.
-
-%D We will clean up the color mess later.
-
-%D These macros are written as generic as possible. Some
-%D general support macro's are loaded from a small module
-%D especially made for non \CONTEXT\ use. In this module I
-%D use a matrix transformation macro written by Tanmoy
-%D Bhattacharya. Thanks to extensive testing by Sebastian
-%D Ratz I was able to complete this module within reasonable
-%D time. This module has support for \METAPOST\ extensions
-%D built in.
-%D
-%D Daniel H. Luecking came up with a better (more precise)
-%D transformation method. You can recognize his comment by
-%D his initials. (We keep the old code around because it's a
-%D nice illustration on how a module like this evolves.)
-
-% Beware, we cannot use 0pt here by defaukt since it may be
-% defined in the range \dimen 0 - 20 which we happen to use
-% as scratch registers; for this reason we start allocating
-% scratch registers > 20
-
-%D This module handles some \PDF\ conversion and insertions
-%D topics. By default, the macros use the \PDFTEX\ primitive
-%D \type{\pdfliteral} when available. Since \PDFTEX\ is now the
-%D default engine for \TEX\ distributions, we need a more complex
-%D test.
-
-\writestatus{loading}{MetaPost Graphics / MPS to PDF}
-
-\unprotect
-
-\ifx\PDFcode \undefined \let\PDFcode \gobbleoneargument \fi
-\ifx\PDFcomment\undefined \def\PDFcomment#1{\PDFcode{\letterpercent\space#1}} \fi
-
-%D First we define a handy constant:
-
-\bgroup \catcode`\%=\@@other \xdef\letterpercent{\string%} \egroup
-
-%D \macros
-%D {pdfimage,pdfimages,pdfclippedimage}
-%D
-%D Starting with pdftex version 14, images are included more
-%D natural to the form embedding. This enables alternative
-%D images to be embedded.
-%D
-%D \starttyping
-%D \pdfimage <optional dimensions> {file}
-%D \pdfimages <optional dimensions> {high res file} {low res file}
-%D \stoptyping
-%D
-%D The first one replaces the pre||version||14 original,
-%D while the latter provides alternative images.
-%D
-%D The next macro is dedicated to Maarten Gelderman, who
-%D needed to paste prepared \PDF\ pages into conference
-%D proceedings.
-%D
-%D \starttyping
-%D \pdfclippedimage <optional dimensions> {file} {l} {r} {t} {b}
-%D \stoptyping
-
-\ifx\pdftexversion\undefined \else \ifnum\pdftexversion>13 % still relevant?
-
- \def\pdfimage#1#%
- {\dopdfimage{#1}}
-
- \def\dopdfimage#1#2%
- {\immediate\pdfximage#1{#2}%
- \pdfrefximage\pdflastximage}
-
- \def\pdfimages#1#%
- {\dopdfimages{#1}}
-
- \def\dopdfimages#1#2#3%
- {\immediate\pdfximage#1{#2}%
- \immediate\pdfobj{[ << /Image \the\pdflastximage\space0 R /DefaultForPrinting true >> ]}%
- \immediate\pdfximage#1 attr {/Alternates \the\pdflastobj\space0 R}{#3}%
- \pdfrefximage\pdflastximage}
-
- \def\pdfclippedimage#1#% specs {file}{left}{right}{top}{bottom}
- {\dopdfclippedimage{#1}}
-
- \def\dopdfclippedimage#1#2#3#4#5#6%
- {\bgroup
- \pdfximage#1{#2}%
- \setbox\scratchbox\hbox{\pdfrefximage\pdflastximage}%
- \hsize\dimexpr\wd\scratchbox-#3-#4\relax
- \vsize\dimexpr\ht\scratchbox-#5-#6\relax
- \setbox\scratchbox\vbox to \vsize
- {\vskip-#5\hbox to \hsize{\hskip-#3\box\scratchbox\hss}}%
- \pdfxform\scratchbox
- \pdfrefxform\pdflastxform
- \egroup}
-
-\fi \fi
-
-%D \macros
-%D {convertMPtoPDF}
-%D
-%D The next set of macros implements \METAPOST\ to \PDF\
-%D conversion. The traditional method is in the MkII file.
-
-%D The main conversion command is:
-%D
-%D \starttyping
-%D \convertMPtoPDF {filename} {x scale} {y scale}
-%D \stoptyping
-%D
-%D The dimensions are derived from the bounding box. So we
-%D only have to say:
-%D
-%D \starttyping
-%D \convertMPtoPDF{mp-pra-1.eps}{1}{1}
-%D \convertMPtoPDF{mp-pra-1.eps}{.5}{.5}
-%D \stoptyping
-
-%D \macros
-%D {makeMPintoPDFobject,lastPDFMPobject}
-%D
-%D For experts there are a few more options. When attributes
-%D are to be added, the code must be embedded in an object
-%D accompanied with the appropriate directives. One can
-%D influence this process with \type {\makeMPintoPDFobject}.
-%D
-%D This option defaults to~0, because \CONTEXT\ takes care
-%D of objects at another level, which saves some bytes.
-%D
-%D \starttabulate[|l|l|p|]
-%D \NC 0 \NC never \NC don't use an object \NC\NR
-%D \NC 1 \NC always \NC always use an object \NC\NR
-%D \NC 2 \NC optional \NC use object when needed \NC\NR
-%D \stoptabulate
-%D
-%D The last object number used is avaliable in the macro
-%D \type {\lastPDFMPobject}.
-
-\ifx\makeMPintoPDFobject \undefined \newcount\makeMPintoPDFobject \fi
-\ifx\blackoutMPgraphic \undefined \chardef\blackoutMPgraphic\plusone \fi
-\ifx\everyMPtoPDFconversion\undefined \newtoks\everyMPtoPDFconversion \fi
-
-\let\lastPDFMPobject \!!zerocount
-\let\currentPDFresources\empty
-\let\setMPextensions \relax
-
-\def\PDFMPformoffset
- {\ifx\objectoffset\undefined\zeropoint\else\objectoffset\fi}
-
-\def\resetMPvariables#1#2#3%
- {\global\let\MPwidth \!!zeropoint
- \global\let\MPheight\!!zeropoint
- \global\let\MPllx \!!zerocount
- \global\let\MPlly \!!zerocount
- \global\let\MPurx \!!zerocount
- \global\let\MPury \!!zerocount
- \xdef\MPxscale {#2}\ifx\MPxscale\empty\let\MPxscale\!!plusone\fi
- \xdef\MPyscale {#3}\ifx\MPyscale\empty\let\MPyscale\!!plusone\fi
- \xdef\MPfilename {#1}}
-
-%D The main macro:
-
-\def\convertMPtoPDF#1#2#3%
- {\resetMPvariables{#1}{#2}{#3}%
- \vbox\bgroup
- \forgetall
- \offinterlineskip
- \ifx\pdfdecimaldigits\undefined\else \pdfdecimaldigits=5 \fi % new
- \global\let\MPheight\!!zeropoint
- \global\let\MPwidth \!!zeropoint
- \setbox\scratchbox\vbox\bgroup
- \message{[MP to PDF]}%
- \startMPresources
- \PDFcomment{mps begin}%
- \PDFcode{q}%
- \PDFcode{1 0 0 1 0 0 cm}%
- \ifcase\blackoutMPgraphic\or\PDFcode{0 g 0 G}\fi
- \doprocessMPtoPDFfile}
-
-\def\processMPtoPDFfile#1#2#3% obsolete
- {\resetMPvariables{#1}{#2}{#3}%
- \bgroup
- \let\finishMPgraphic\egroup
- \doprocessMPtoPDFfile}
-
-\def\doprocessMPtoPDFfile
- {\setMPspecials
- \setMPextensions
- \the\everyMPtoPDFconversion
- \catcode`\^^M=\@@endofline
- \startMPscanning
- \let\do\empty
- \donefalse
- \let\handleMPsequence\dohandleMPsequence
- \input\MPfilename\relax}
-
-\def\finishMPgraphic
- {\PDFcode{Q}%
- \PDFcomment{mps end}%
- \stopMPresources
- \egroup
- \setbox\scratchbox\hbox\bgroup
- \hskip-\MPllx\onebasepoint
- \raise-\MPlly\onebasepoint
- \box\scratchbox
- \egroup
- \setbox\scratchbox\vbox to \MPheight\bgroup
- \vfill
- \hsize\MPwidth
- \smashbox\scratchbox
- \box\scratchbox
- \egroup
- \wd\scratchbox\MPwidth
- \ht\scratchbox\MPheight
- \dopackageMPgraphic\scratchbox
- \egroup
- \endinput}
-
-%D A common hook.
-
-\let\MPfshowcommand\empty
-
-%D Objects.
-
-\def\dopackageMPgraphic#1% #1 = boxregister
- {\ifcase\makeMPintoPDFobject\or\or\ifx\currentPDFresources\empty\else
- % an existing value of 2 signals object support (set elsewhere)
- \makeMPintoPDFobject\plusone
- \fi\fi
- \ifcase\makeMPintoPDFobject
- \box#1%
- \or
- \scratchdimen\PDFMPformoffset\relax
- \ifdim\scratchdimen>\zeropoint % compensate for error
- \setbox#1\vbox spread 2\scratchdimen
- {\forgetall\vss\hbox spread 2\scratchdimen{\hss\box#1\hss}\vss}%
- \fi
- \setMPPDFobject{\currentPDFresources}{#1}%
- \ifdim\scratchdimen>\zeropoint % compensate for error
- \vbox to \MPheight
- {\forgetall\vss\hbox to \MPwidth{\hss\getMPPDFobject\hss}\vss}%
- \else
- \getMPPDFobject
- \fi
- \global\let\currentPDFresources\empty
- \else
- \box#1%
- \fi}
-
-\def\setMPPDFobject#1#2% resources boxnumber
- {\ifx\pdfxform\undefined
- \def\getMPPDFobject{\box#2}%
- \else\ifx\pdftexversion\undefined
- \def\getMPPDFobject{\box#2}%
- \else\ifnum\pdftexversion<14
- \def\getMPPDFobject{\box#2}%
- \else
- \ifx\everyPDFxform\undefined\else\the\everyPDFxform\fi
- \immediate\pdfxform resources{#1}#2%
- \edef\getMPPDFobject{\noexpand\pdfrefxform\the\pdflastxform}%
- \fi\fi\fi}
-
-\let\getMPPDFobject\relax
-
-%D \macros
-%D {deleteMPgraphic,
-%D startMPresources,
-%D stopMPresources}
-
-\ifx\deleteMPgraphic\undefined
- \def\deleteMPgraphic#1{}
-\fi
-
-\ifx\startMPresources\undefined
- \let\startMPresources\relax
- \let\stopMPresources\relax
-\fi
-
-%D We implement extensions by using the \METAPOST\ special
-%D mechanism. Opposite to \TEX's specials, the \METAPOST\ ones
-%D are flushed before or after the graphic data, but thereby
-%D are no longer connected to a position.
-%D
-%D We implement specials by overloading the \type {fill}
-%D operator. By counting the fills, we can let the converter
-%D treat the appropriate fill in a special way. The
-%D specification of the speciality can have two forms,
-%D determined by the setting of a boolean variable:
-%D
-%D \starttyping
-%D _inline_specials_ := false ; % comment like code (default)
-%D _inline_specials_ := true ; % command like code
-%D \stoptyping
-%D
-%D When the specification is embedded as comment, it looks
-%D like:
-%D
-%D \starttyping
-%D %%MetaPostSpecial <size> <data> <number> <identifier>
-%D \stoptyping
-%D
-%D The in||line alternative is more tuned for \POSTSCRIPT,
-%D since it permits us to define a macro \type {special}.
-%D
-%D \starttyping
-%D inline : <data> <number> <identifier> <size> special
-%D \stoptyping
-%D
-%D The \type {identifier} determines what to do, and the data
-%D can be used to accomplish this. A type~2 shading function
-%D has identifier~2. Alltogether, the number of parameters is
-%D specified in \type {size}. The \type {number} is the number
-%D of the fill that needs the special treatment. For a type~2
-%D and~3 shaded fill, the datablock contains the following
-
-%D data:
-%D
-%D \starttyping
-%D from to n inner_r g b x y outer_r g b x y
-%D from to n inner_r g b x y radius outer_r g b x y radius
-%D \stoptyping
-
-\newconditional\manyMPspecials \settrue\manyMPspecials
-
-%D In case of \PDF, we need to prepare resourcs.
-
-\newtoks\MPstartresources
-\newtoks\MPstopresources
-
-\def\startMPresources
- {\the\MPstartresources}
-
-\def\stopMPresources
- {\the\MPstopresources}
-
-%D Some day we may consider collecting local resources.
-
-\appendtoks
- \global\let\currentPDFresources\empty % kind of redundant
-\to \MPstartresources
-
-% \appendtoks
-% \collectPDFresources
-% \global\let\currentPDFresources\collectedPDFresources
-% \to \MPstopresources
-
-\appendtoksonce
- \the\everyPDFxform
-\to \MPstopresources
-
-%D Since colors are not subjected to transformations, we can
-%D only use colors as signal. In our case, we use a dummy colored
-%D path with a red color component of \type {0.n}, so \type
-%D {0.001} is the first path and \type {0.010} the tenth. Since
-%D \METAPOST strips trailing zeros, we have to padd the string.
-
-\newif\ifMPcmykcolors
-\newif\ifMPspotcolors
-
-\def\dohandleMPrgb #1#2#3{\revokeMPtransparencyspecial\execcolorR #1:#2:#3:0:0\od}
-\def\dohandleMPcmyk#1#2#3#4{\revokeMPtransparencyspecial\execcolorC#1:#2:#3:#4:0:0\od}
-\def\dohandleMPgray #1{\revokeMPtransparencyspecial\execcolorS #1:0:0\od}
-\def\dohandleMPspot#1#2#3#4{\revokeMPtransparencyspecial\execcolorP#1:#2:#3:#4:0:0\od}
-
-%D Specials:
-
-\settrue \manyMPspecials \newcount\nofMParguments \let\extraMPpathcode\empty
-
-\def\@@MP {@@MP}
-\def\@@MPSK{@MPSK@}
-
-\def\MPspecial{\@@MPSK\@@MPSK\gMPs\nofMParguments}
-
-\def\defineMPspecial#1#2%
- {\setvalue{\@@MPSK\@@MPSK#1}{#2}}
-
-%D Special number~1 is dedicated to \CMYK\ support. If you
-%D want to know why: look at this:
-%D
-%D \startbuffer[mp]
-%D fill fullcircle xyscaled (3cm,1cm) withcolor \MPcolor{test} ;
-%D \stopbuffer
-%D
-%D \startbuffer[cmyk]
-%D \startcombination[4*1]
-%D {\definecolor[test][c=1,y=.3,k=.3] \processMPbuffer[mp]} {c=1 y=.3 k=.3}
-%D {\definecolor[test][c=.9,y=.15] \processMPbuffer[mp]} {c=.9 y=.15}
-%D {\definecolor[test][c=.25,y=.8] \processMPbuffer[mp]} {c=.25 y=.8}
-%D {\definecolor[test][c=.45,y=.1] \processMPbuffer[mp]} {c=.45 y=.1}
-%D \stopcombination
-%D \stopbuffer
-%D
-%D \placefigure
-%D {\CMYK\ support disabled,
-%D conversion to \RGB.}
-%D {\setupcolors[cmyk=nee,state=start]\getbuffer[cmyk]}
-%D
-%D \placefigure
-%D {\CMYK\ support enabled,
-%D no support in \METAPOST.}
-%D {\setupcolors[cmyk=ja,mpcmyk=nee,state=start]\getbuffer[cmyk]}
-%D
-%D \placefigure
-%D {\CMYK\ support enabled,
-%D no conversion to \RGB,
-%D support in \METAPOST}
-%D {\setupcolors[cmyk=ja,state=start]\getbuffer[cmyk]}
-
-\defineMPspecial{1}
- {\ifMPcmykcolors
- \setxvalue{\@@MPSK\gMPs6}{\noexpand\dohandleMPcmykcolor{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}}%
- \fi}
-
-\defineMPspecial{2}
- {\ifMPspotcolors
- \setxvalue{\@@MPSK\gMPs6}{\noexpand\dohandleMPspotcolor{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}}%
-% \checkMPspot{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}%
- \fi}
-
-% \def\checkMPspot#1#2#3#4%
-% {\expanded{\resolveMPspotcolor#1 #2 #3 #4}\end
-% \ifx\MPspotspace\MPresolvedspace
-% \edef\MPspotspacespec{/\MPspotspace\space}%
-% \doifinstringelse\MPspotspacespec\currentMPcolorspaces
-% \donothing\registerMPcolorspace
-% \fi}
-
-\let\revokeMPtransparencyspecial\relax
-
-\def\dohandleMPrgbcolor #1#2#3{\revokeMPtransparencyspecial\execcolorR #1:#2:#3:0:0\od}
-\def\dohandleMPcmykcolor#1#2#3#4{\revokeMPtransparencyspecial\execcolorC#1:#2:#3:#4:0:0\od}
-\def\dohandleMPgraycolor #1{\revokeMPtransparencyspecial\execcolorS #1:0:0\od}
-\def\dohandleMPspotcolor#1#2#3#4{\revokeMPtransparencyspecial\execcolorP#1:#2:#3:#4:0:0\od}
-
-%D Transparency support used specials 60 (rgb) and 61
-%D (cmyk).
-%D
-%D \startbufferFshade
-
-%D u := 2cm ; path p ; p := fullcircle scaled u shifted (u/4,0);
-%D
-%D fill p rotated 90 withcolor transparent(1,.5,yellow) ;
-%D fill p rotated 210 withcolor transparent(1,.5,green) ;
-%D fill p rotated 330 withcolor transparent(1,.5,blue) ;
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \startlinecorrection \processMPbuffer \stoplinecorrection
-%D
-%D One can also communicate colors between \CONTEXT\ and
-%D \METAPOST:
-%D
-%D \startbuffer
-%D \definecolor[tcyan] [c=1,k=.2,t=.5]
-%D \definecolor[tmagenta][m=1,k=.2,t=.5]
-%D \definecolor[tyellow] [y=1,k=.2,t=.5]
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D u := 2cm ; path p ; p := fullcircle scaled u shifted (u/4,0);
-%D
-%D fill p rotated 90 withcolor \MPcolor{tcyan} ;
-%D fill p rotated 210 withcolor \MPcolor{tmagenta} ;
-%D fill p rotated 330 withcolor \MPcolor{tyellow} ;
-%D \stopbuffer
-%D
-%D \startlinecorrection \processMPbuffer \stoplinecorrection
-%D
-%D We save all the three components needed in one macro,
-%D just to save hash space.
-
-\def\dohandleMPrgbtransparency #1#2#3#4#5{\execcolorR #1:#2:#3:#4:#5\od\let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial}
-\def\dohandleMPcmyktransparency#1#2#3#4#5#6{\execcolorC#1:#2:#3:#4:#5:#6\od\let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial}
-\def\dohandleMPgraytransparency #1#2#3{\execcolorS #1:#2:#3\od\let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial}
-\def\dohandleMPspottransparency#1#2#3#4#5#6{\execcolorP#1:#2:#3:#4:#5:#6\od\let\revokeMPtransparencyspecial\dorevokeMPtransparencyspecial}
-
-\def\dorevokeMPtransparencyspecial
- {\PDFcode{\PDFtransparencyresetidentifier\space gs}%
- \let\revokeMPtransparencyspecial\relax}
-
-\defineMPspecial{3} % rgb
- {\setxvalue{\@@MPSK\gMPs6}{\noexpand\dohandleMPrgbtransparency{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs1}{\gMPs2}}}
-
-\defineMPspecial{4} % cmyk
- {\setxvalue{\@@MPSK\gMPs7}{\noexpand\dohandleMPcmyktransparency{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs1}{\gMPs2}}}
-
-\defineMPspecial{5} % spot
- {\setxvalue{\@@MPSK\gMPs7}{\noexpand\dohandleMPspottransparency{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs1}{\gMPs2}}%
- }%\checkMPspot{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}}
-
-%D Shading is an example of a more advanced graphic feature,
-%D but users will seldom encounter those complications. Here
-%D we only show a few simple examples, but many other
-%D alternatives are possible by setting up the functions built
-%D in \PDF\ in the appropriate way.
-%D
-%D Shading has to do with interpolation between two or more
-%D points or user supplied ranges. In \PDF, the specifications
-%D of a shade has to be encapsulated in objects and passed on
-%D as resources. This is a \PDF\ level 1.3. feature. One can
-%D simulate three dimensional shades as well and define simple
-%D functions using a limited set of \POSTSCRIPT\ primitives.
-%D Given the power of \METAPOST\ and these \PDF\ features, we
-%D can achieve superb graphic effects.
-%D
-%D Since everything is hidden in \TEX\ and \METAPOST\ graphics,
-%D we can stick to high level \CONTEXT\ command, as shown in
-%D the following exmples.
-%D
-%D \startbuffer
-%D \startuniqueMPgraphic{CircularShade}
-%D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
-%D circular_shade(p,0,.2red,.9red) ;
-%D \stopuniqueMPgraphic
-%D
-%D \startuniqueMPgraphic{LinearShade}
-%D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
-%D linear_shade(p,0,.2blue,.9blue) ;
-%D \stopuniqueMPgraphic
-%D
-%D \startuniqueMPgraphic{DuotoneShade}
-%D path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
-%D linear_shade(p,2,.5green,.5red) ;
-%D \stopuniqueMPgraphic
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-%D
-%D These graphics can be hooked into the overlay mechanism,
-%D which is available in many commands.
-%D
-%D \startbuffer
-%D \defineoverlay[demo 1][\uniqueMPgraphic{CircularShade}]
-%D \defineoverlay[demo 2][\uniqueMPgraphic {LinearShade}]
-%D \defineoverlay[demo 3][\uniqueMPgraphic {DuotoneShade}]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-%D
-%D These backgrounds can for instance be applied to \type
-%D {\framed}:
-%D
-%D \startbuffer
-%D \setupframed[width=3cm,height=2cm,frame=off]
-%D \startcombination[3*1]
-%D {\framed[backgroundachtergrond=demo 1]{\bfd \white Demo 1}} {}
-%D {\framed[backgroundachtergrond=demo 2]{\bfd \white Demo 2}} {}
-%D {\framed[backgroundachtergrond=demo 3]{\bfd \white Demo 3}} {}
-%D \stopcombination
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \startlinecorrection
-%D \getbuffer
-%D \stoplinecorrection
-%D
-%D There are a few more alternatives, determined by the second
-%D parameter passed to \type {circular_shade} and alike.
-%D
-%D \def\SomeShade#1#2#3#4#5%
-%D {\startuniqueMPgraphic{Shade-#1}
-%D width := \overlaywidth ;
-%D height := \overlayheight ;
-%D path p ; p := unitsquare xscaled width yscaled height ;
-%D #2_shade(p,#3,#4,#5) ;
-%D \stopuniqueMPgraphic
-%D \defineoverlay[Shade-#1][\uniqueMPgraphic{Shade-#1}]%
-%D \framed[backgroundachtergrond=Shade-#1,width=2cm,height=2cm,frame=off]{}}
-%D
-%D \startlinecorrection
-%D \startcombination[5*1]
-%D {\SomeShade{10}{circular}{0}{.3blue}{.9blue}} {circular 0}
-%D {\SomeShade{11}{circular}{1}{.3blue}{.9blue}} {circular 1}
-%D {\SomeShade{12}{circular}{2}{.3blue}{.9blue}} {circular 2}
-%D {\SomeShade{13}{circular}{3}{.3blue}{.9blue}} {circular 3}
-%D {\SomeShade{14}{circular}{4}{.3blue}{.9blue}} {circular 4}
-%D \stopcombination
-%D \stoplinecorrection
-%D
-%D \blank
-%D
-%D \startlinecorrection
-%D \startcombination[5*1]
-%D {\SomeShade{20}{circular}{0}{.9green}{.3green}} {circular 0}
-%D {\SomeShade{21}{circular}{1}{.9green}{.3green}} {circular 1}
-%D {\SomeShade{22}{circular}{2}{.9green}{.3green}} {circular 2}
-%D {\SomeShade{23}{circular}{3}{.9green}{.3green}} {circular 3}
-%D {\SomeShade{24}{circular}{4}{.9green}{.3green}} {circular 4}
-%D \stopcombination
-%D \stoplinecorrection
-%D
-%D \blank
-%D
-%D \startlinecorrection
-%D \startcombination[4*1]
-%D {\SomeShade{30}{linear}{0}{.3red}{.9red}} {linear 0}
-%D {\SomeShade{31}{linear}{1}{.3red}{.9red}} {linear 1}
-%D {\SomeShade{32}{linear}{2}{.3red}{.9red}} {linear 2}
-%D {\SomeShade{33}{linear}{3}{.3red}{.9red}} {linear 3}
-%D \stopcombination
-%D \stoplinecorrection
-%D
-%D These macros closely cooperate with the \METAPOST\ module
-%D \type {mp-spec.mp}, which is part of the \CONTEXT\
-%D distribution.
-%D
-%D The low level (\PDF) implementation is based on the \TEX\
-%D based \METAPOST\ to \PDF\ converter. Shading is supported
-%D by overloading the \type {fill} operator as implemented
-%D earlier. In \PDF\ type~2 and~3 shading functions are
-%D specified in terms of:
-%D
-%D \starttabulate[|Tl|l|]
-%D \NC /Domain \NC sort of meeting range \NC \NR
-%D \NC /C0 \NC inner shade \NC \NR
-%D \NC /C1 \NC outer shade \NC \NR
-%D \NC /N \NC smaller values, bigger inner circles \NC \NR
-%D \stoptabulate
-
-\newcount\currentPDFshade % 0 % global (document wide) counter
-
-% \def\dosetMPsomePDFshade#1#2% generic but needs refs
-% {\global\advance\currentPDFshade \plusone
-% \doPDFdictionaryobject{FDF}{ftn:Sh:\the\currentPDFshade}
-% {/FunctionType 2
-% /Domain [\gMPs1 \gMPs2]
-% /C0 [\MPshadeA]
-% /C1 [\MPshadeB]
-% /N \gMPs3}%
-% \doPDFgetobjectreference{FDF}{ftn:Sh:\the\currentPDFshade}\PDFobjectreference
-% \doPDFdictionaryobject{FDF}{obj:Sh:\the\currentPDFshade}
-% {/ShadingType #1
-% /ColorSpace /\MPresolvedspace
-% /Function \PDFobjectreference\space
-% /Coords [\MPshadeC]
-% /Extend [true true]}%
-% \doPDFgetobjectreference{FDF}{obj:Sh:\the\currentPDFshade}\PDFobjectreference
-% \appendtoPDFdocumentshades{/Sh\the\currentPDFshade\space\PDFobjectreference}%
-% \setxvalue{\@@MPSK#2}{\noexpand\dohandleMPshade{\the\currentPDFshade}}}
-
-\def\dosetMPsomePDFshade#1#2%
- {\immediate\pdfobj
- {<</FunctionType 2
- /Domain [\gMPs1 \gMPs2]
- /C0 [\MPshadeA]
- /C1 [\MPshadeB]
- /N \gMPs3>>}%
- \immediate\pdfobj
- {<</ShadingType #1
- /ColorSpace /\MPresolvedspace
- /Function \the\pdflastobj\space 0 R
- /Coords [\MPshadeC]
- /Extend [true true]>>}%
- \global\advance\currentPDFshade \plusone
- \appendtoPDFdocumentshades{/Sh\the\currentPDFshade\space\the\pdflastobj\space0 R }%
- \setxvalue{\@@MPSK#2}{\noexpand\dohandleMPshade{\the\currentPDFshade}}}
-
-\def\dosetMPlinearshade {\dosetMPsomePDFshade2}% #1
-\def\dosetMPcircularshade{\dosetMPsomePDFshade3}% #1
-
-\defineMPspecial{30}
- {\expanded{\resolveMPrgbcolor{\gMPs4}{\gMPs5}{\gMPs6}}\to\MPshadeA
- \expanded{\resolveMPrgbcolor{\gMPs{9}}{\gMPs{10}}{\gMPs{11}}}\to\MPshadeB
- \edef\MPshadeC{\gMPs7 \gMPs8 \gMPs{12} \gMPs{13}}%
- \dosetMPlinearshade{\gMPs{14}}}
-
-\defineMPspecial{31}
- {\expanded{\resolveMPrgbcolor{\gMPs4}{\gMPs5}{\gMPs6}}\to\MPshadeA
- \expanded{\resolveMPrgbcolor{\gMPs{10}}{\gMPs{11}}{\gMPs{12}}}\to\MPshadeB
- \edef\MPshadeC{\gMPs7 \gMPs8 \gMPs9 \gMPs{13} \gMPs{14} \gMPs{15}}%
- \dosetMPcircularshade{\gMPs{16}}}
-
-\defineMPspecial{32}
- {\expanded{\resolveMPcmykcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA
- \expanded{\resolveMPcmykcolor{\gMPs{10}}{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}}\to\MPshadeB
- \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{14} \gMPs{15}}%
- \dosetMPlinearshade{\gMPs{16}}}
-
-\defineMPspecial{33}
- {\expanded{\resolveMPcmykcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA
- \expanded{\resolveMPcmykcolor{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}{\gMPs{14}}}\to\MPshadeB
- \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{10} \gMPs{15} \gMPs{16} \gMPs{17}}%
- \dosetMPcircularshade{\gMPs{18}}}
-
-\defineMPspecial{34}
- {\expanded{\resolveMPspotcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA
- \expanded{\resolveMPspotcolor{\gMPs{10}}{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}}\to\MPshadeB
- \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{14} \gMPs{15}}%
- \dosetMPlinearshade{\gMPs{16}}}
-
-\defineMPspecial{35}
- {\expanded{\resolveMPcmykcolor{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}}\to\MPshadeA
- \expanded{\resolveMPcmykcolor{\gMPs{11}}{\gMPs{12}}{\gMPs{13}}{\gMPs{14}}}\to\MPshadeB
- \edef\MPshadeC{\gMPs8 \gMPs9 \gMPs{10} \gMPs{15} \gMPs{16} \gMPs{17}}%
- \dosetMPcircularshade{\gMPs{18}}}
-
-
-\newconditional\ignoreMPpath
-
-\def\dohandleMPshade#1%
- {\revokeMPtransparencyspecial
- \settrue\ignoreMPpath
- \def\extraMPpathcode{/Sh#1 sh Q}%
- \chardef\finiMPpath\zerocount
- \PDFcode{q /Pattern cs}}
-
-%D Figure inclusion is kind of strange to \METAPOST, but when
-%D Santiago Muelas started discussing this with me, I was able
-%D to cook up a solution using specials.
-
-\defineMPspecial{10}
- {\setxvalue{\@@MPSK\gMPs8}%
- {\noexpand\handleMPfigurespecial{\gMPs1}{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}{\gMPs7}{\gMPs8}}}
-
-\def\handleMPfigurespecial#1#2#3#4#5#6#7#8% todo : combine with ext fig
- {\global\letvalue{\@@MPSK#8}\empty
- \vbox to \zeropoint
- {\vss
- \hbox to \zeropoint
- {\ifcase\pdfoutput\or % will be hooked into the special driver
- \doiffileelse{#7}
- {\doifundefinedelse{mps:x:#7}
- {\immediate\pdfximage\!!width\onebasepoint\!!height\onebasepoint{#7}%
- \setxvalue{mps:x:#7}{\pdfrefximage\the\pdflastximage}}%
- {\message{[reusing figure #7]}}%
- \PDFcode{q #1 #2 #3 #4 #5 #6 cm}%
- \rlap{\getvalue{mps:x:#7}}%
- \PDFcode{Q}}
- {\message{[unknown figure #7]}}%
- \fi
- \hss}}}
-
-%D An example of using both special features is the
-%D following.
-%D
-%D \starttyping
-%D \startMPpage
-%D externalfigure "hakker1b.png" scaled 22cm rotated 10 shifted (-2cm,0cm);
-%D externalfigure "hakker1b.png" scaled 10cm rotated -10 ;
-%D externalfigure "hakker1b.png" scaled 7cm rotated 45 shifted (8cm,12cm) ;
-%D path p ; p := unitcircle xscaled 15cm yscaled 20cm;
-%D path q ; q := p rotatedaround(center p,90) ;
-%D path r ; r := buildcycle(p,q) ; clip currentpicture to r ;
-%D path s ; s := boundingbox currentpicture enlarged 5mm ;
-%D picture c ; c := currentpicture ; currentpicture := nullpicture ;
-%D circular_shade(s,0,.2red,.9red) ;
-%D addto currentpicture also c ;
-%D \stopMPpage
-%D \stoptyping
-
-%D This is some experimental hyperlink driver that I wrote
-%D for Mark Wicks.
-
-\defineMPspecial{20}
- {\setxvalue{\@@MPSK\gMPs6}%
- {\noexpand\handleMPhyperlink{\gMPs1}{\gMPs2}{\gMPs3}{\gMPs4}{\gMPs5}{\gMPs6}}}
-
-\def\handleMPhyperlink#1#2#3#4#5#6%
- {\global\letvalue{\@@MPSK#6}\empty
- \setbox\scratchbox\hbox
- {\setbox\scratchbox\null
- \wd\scratchbox\dimexpr-#1\onebasepoint+#3\onebasepoint\relax
- \ht\scratchbox\dimexpr-#2\onebasepoint+#4\onebasepoint\relax
- \incolorfalse
- \gotobox{\box\scratchbox}[#5]}%
- \setbox\scratchbox\hbox
- {\hskip\dimexpr\MPxoffset\onebasepoint+#1\onebasepoint\relax
- \raise\dimexpr\MPyoffset\onebasepoint+#2\onebasepoint\relax
- \box\scratchbox}%
- \smashbox\scratchbox
- \box\scratchbox}
-
-%D This special (number 50) passes positions to a tex file.
-%D This method uses a two||pass approach an (mis|)|used the
-%D context positioning macros. In \type {core-pos} we will
-%D implement the low level submacro needed.
-%D
-%D \startbuffer
-%D \definelayer[test]
-%D
-%D \setlayer
-%D [test]
-%D [x=\MPx{somepos-1},y=\MPy{somepos-1}]
-%D {Whatever we want here!}
-%D
-%D \setlayer
-%D [test]
-%D [x=\MPx{somepos-2},y=\MPy{somepos-2}]
-%D {Whatever we need there!}
-%D
-%D \startuseMPgraphic{oeps}
-%D draw fullcircle scaled 6cm withcolor red ;
-%D register ("somepos-1",1cm,2cm,center currentpicture) ;
-%D register ("somepos-2",4cm,3cm,(-1cm,-2cm)) ;
-%D \stopuseMPgraphic
-%D
-%D \framed[background=test,offset=overlay]{\useMPgraphic{oeps}}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Here the width and height are not realy used, but one can
-%D imagine situations where tex has to work with values
-%D calculated by \METAPOST.
-%D
-%D \startlinecorrection
-%D \getbuffer
-%D \stoplinecorrection
-%D
-%D Later we will implement a more convenient macro:
-%D
-%D \starttyping
-%D \setMPlayer [test] [somepos-1] {Whatever we want here!}
-%D \setMPlayer [test] [somepos-2] {Whatever we need there!}
-%D \stoptyping
-
-\defineMPspecial{50} % x y width height label
- {\dosavepositionwhd
- {\gMPs5}%
- {0}%
- {\the\dimexpr-\MPllx\onebasepoint+\gMPs1\onebasepoint\relax}
- {\the\dimexpr\gMPs2\onebasepoint-\scratchdimen+\MPury\onebasepoint\relax}%
- {\the\dimexpr\gMPs3\onebasepoint\relax}%
- {\the\dimexpr\gMPs4\onebasepoint\relax}%
- {0pt}}
-
-%D A few auxiliary macros. This will move to colo-ini.
-
-\def\MPgrayspace{DeviceGray}
-\def\MPrgbspace {DeviceRGB}
-\def\MPcmykspace{DeviceCMYK}
-\let\MPspotspace\MPgrayspace
-
-\def\MPcmykBlack{0 0 0 0}
-\def\MPcmykWhite{0 0 0 1}
-
-\def\startMPcolorresolve
- {\bgroup
- \def\dostartgraycolormode##1%
- {\global\let\MPresolvedspace\MPgrayspace
- \xdef\MPresolvedcolor{##1}}%
- \def\dostartrgbcolormode ##1##2##3%
- {\global\let\MPresolvedspace\MPrgbspace
- \xdef\MPresolvedcolor{##1 ##2 ##3}}%
- \def\dostartcmykcolormode##1##2##3##4%
- {\global\let\MPresolvedspace\MPcmykspace
- \xdef\MPresolvedcolor{##1 ##2 ##3 ##4}}%
- \def\dostartspotcolormode##1##2%
- {\global\let\MPspotspace\empty % left over ?
- \xdef\MPresolvedspace{##1}%
- \xdef\MPresolvedcolor{##2}%
- \global\let\MPspotspace\MPresolvedspace}% signal
- \dostartgraycolormode\!!zerocount} % kind of hackery initialization
-
-\let\stopMPcolorresolve\egroup
-
-\def\resolveMPrgbcolor#1#2#3\to#4%
- {\startMPcolorresolve
- \execcolorR#1:#2:#3:0:0\od
- \stopMPcolorresolve
- \let#4\MPresolvedcolor}
-
-\def\resolveMPcmykcolor#1#2#3#4\to#5%
- {\startMPcolorresolve
- \execcolorC#1:#2:#3:#4:0:0\od
- \stopMPcolorresolve
- \let#5\MPresolvedcolor}
-
-\def\resolveMPgraycolor#1\end\to#2%
- {\startMPcolorresolve
- \execcolorS#1:0:0\od
- \stopMPcolorresolve
- \let#2\MPresolvedcolor}
-
-\def\resolveMPspotcolor#1#2#3#4\end\to#5%
- {\startMPcolorresolve
- \ifnum#2>\plusone
- \checkmultitonecolor{#1}%
- \fi
- \execcolorP#1:#2:#3:#4:0:0\od
- \stopMPcolorresolve
- \let#5\MPresolvedcolor}
-
-%D \macros
-%D {dogetPDFmediabox}
-%D
-%D The next macro can be used to find the mediabox of a \PDF\
-%D illustration.
-%D
-%D \starttyping
-%D \dogetPDFmediabox
-%D {filename}
-%D {new dimen}{new dimen}{new dimen}{new dimen}
-%D \stoptyping
-%D
-%D Beware of dimen clashes: this macro uses the 5~default
-%D scratch registers! When no file or mediabox is found, the
-%D dimensions are zeroed.
-
-\def\dogetPDFmediabox#1#2#3#4#5%
- {\bgroup
- \def\PDFxscale{1}%
- \def\PDFyscale{1}%
- \uncatcodespecials
- \endlinechar\minusone
- \def\checkPDFtypepage##1/Type /Page##2##3\done%
- {\ifx##2\relax
- \else\if##2s% accept /Page and /Pages
- \let\doprocessPDFline\findPDFmediabox
- \else
- \let\doprocessPDFline\findPDFmediabox
- \fi\fi}%
- \def\findPDFtypepage
- {\expandafter\checkPDFtypepage\fileline/Type /Page\relax\done}%
- \def\checkPDFmediabox##1/MediaBox##2##3\done%
- {\ifx##2\relax \else
- \setPDFmediabox##2##3\done
- \fileprocessedtrue
- \fi}%
- \def\findPDFmediabox
- {\expandafter\checkPDFmediabox\fileline/MediaBox\relax\done}%
- \let\doprocessPDFline\findPDFtypepage
- \doprocessfile\scratchread{#1}\doprocessPDFline
- \egroup
- \ifx\PDFxoffset\undefined
- #2=\zeropoint
- #3=\zeropoint
- #4=\zeropoint
- #5=\zeropoint
- \else
- #2=\PDFxoffset\onebasepoint
- #3=\PDFyoffset\onebasepoint
- #4=\PDFwidth
- #5=\PDFheight
- \fi}
-
-\def\setPDFboundingbox#1#2#3#4#5#6%
- {\dimen0=#1\dimen0=#5\dimen0
- \ScaledPointsToBigPoints{\number\dimen0}\PDFxoffset
- \dimen0=#3\dimen0=#5\dimen0
- \xdef\PDFwidth{\the\dimen0}%
- \dimen0=#2\dimen0=#6\dimen0
- \ScaledPointsToBigPoints{\number\dimen0}\PDFyoffset
- \dimen0=#4\dimen0=#6\dimen0
- \xdef\PDFheight{\the\dimen0}%
- \global\let\PDFxoffset\PDFxoffset
- \global\let\PDFyoffset\PDFyoffset}
-
-\def\setPDFmediabox#1[#2 #3 #4 #5]#6\done
- {\dimen2=#2\onebasepoint\dimen2=-\dimen2 % \dimen2=-#2\onebasepoint also works since tex handles --
- \dimen4=#3\onebasepoint\dimen4=-\dimen4 % \dimen4=-#3\onebasepoint also works since tex handles --
- \dimen6=#4\onebasepoint\advance\dimen6 \dimen2
- \dimen8=#5\onebasepoint\advance\dimen8 \dimen4
- \setPDFboundingbox{\dimen2}{\dimen4}{\dimen6}{\dimen8}\PDFxscale\PDFyscale}
-
-%D End of soon obsolete code.
-
-\startMPinitializations
- mp_shade_version := 2 ;
-\stopMPinitializations
-
-%D Here comes the traditional \MKII\ converter.
-%D
-%D Because we want to test as fast as possible, we first
-%D define the \POSTSCRIPT\ operators that \METAPOST\ uses.
-%D We don't define irrelevant ones, because these are
-%D skipped anyway.
-%D
-%D The converter can be made a bit faster by replacing the
-%D two test macros (the ones with the many \type {\if's}) by
-%D a call to named branch macros (something \typ {\getvalue
-%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:}
-\edef \PSBeginProlog {\letterpercent\letterpercent BeginProlog}
-\edef \PSEndProlog {\letterpercent\letterpercent EndProlog}
-\edef \PSEof {\letterpercent\letterpercent EOF}
-
-%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
-
-%D We could use a catcodetable here.
-
-\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\dohandleMPsequence#1%
- {\ifdone
- \ifcase\lccode`#1\relax
- \@EAEAEA\dohandleMPsequenceA
- \else
- \@EAEAEA\dohandleMPsequenceB
- \fi
- \else
- \@EA\dohandleMPsequenceC
- \fi#1}
-
-\let\dohandleMPsequenceA\setMPsequence
-
-\def\installMPSkeywordN#1#2%
- {\expandafter\def\csname\@@MP:N:#1\endcsname{#2}}
-
-\def\installMPSshortcutN#1#2% todo: \let
- {\expandafter\let\csname\@@MP:N:#1\expandafter\endcsname\csname\@@MP:N:#2\endcsname}
-
-\def\dohandleMPsequenceB#1 %
- {\edef\somestring{#1}%
- \executeifdefined{\@@MP:N:\somestring}\handleMPgraphic
- \handleMPsequence}
-
-\installMPSkeywordN \PSmoveto
- {\edef\lastMPmoveX{\gMPa1}%
- \edef\lastMPmoveY{\gMPa2}%
- \resetMPstack}
-\installMPSkeywordN \PSnewpath
- {\let\handleMPsequence\handleMPpath}
-\installMPSkeywordN \PSgsave
- {\PDFcode{q}%
- \resetMPstack}
-\installMPSkeywordN \PSgrestore
- {\PDFcode{Q}%
- \resetMPstack}
-\installMPSkeywordN \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 ...
-\installMPSkeywordN \PSsetlinewidth
- {% already handled in dtransform
- \resetMPstack}
-\installMPSkeywordN \PSpop
- {% already handled in dtransform
- \resetMPstack}
-\installMPSkeywordN \PSconcat
- {\cleanupMPconcat
- \PDFcode{\gMPa1 \gMPa2 \gMPa3 \gMPa4 \gMPa5 \gMPa6 cm}%
- \resetMPstack}
-\installMPSkeywordN \PSsetrgbcolor
- {\handleMPrgbcolor
- \resetMPstack}
-\installMPSkeywordN \PSsetcmykcolor
- {\handleMPcmykcolor
- \resetMPstack}
-\installMPSkeywordN \PSsetgray
- {\handleMPgraycolor
- \resetMPstack}
-\installMPSkeywordN \PStranslate
- {\PDFcode{1 0 0 1 \gMPa1 \gMPa2 cm}%
- \resetMPstack}
-\installMPSkeywordN \PSsetdash
- {\handleMPsetdash
- \resetMPstack}
-\installMPSkeywordN \PSsetlinejoin
- {\PDFcode{\gMPa1 j}%
- \resetMPstack}
-\installMPSkeywordN \PSsetmiterlimit
- {\PDFcode{\gMPa1 M}%
- \resetMPstack}
-\installMPSkeywordN \PSfshow
- {%\PDFcode{n}% removed !
- \handleMPfshow
- \resetMPstack}
-\installMPSkeywordN \PSsetlinecap
- {\PDFcode{\gMPa1 J}%
- \resetMPstack}
-\installMPSkeywordN \PSrlineto
- {\flushMPmoveto
- \PDFcode{\!MP\lastMPmoveX\space\!MP\lastMPmoveY\space l S}%
- \resetMPmoveto
- \resetMPstack}
-\installMPSkeywordN \PSscale
- {\PDFcode{\gMPa1 0 0 \gMPa2 0 0 cm}%
- \resetMPstack}
-\installMPSkeywordN \PSspecial
- {\handleMPspecialcommand
- \resetMPstack}
-
-\installMPSshortcutN {n} \PSnewpath
-\installMPSshortcutN {p} \PSclosepath
-\installMPSshortcutN {l} \PSlineto
-\installMPSshortcutN {r} \PSrlineto
-\installMPSshortcutN {m} \PSmoveto
-\installMPSshortcutN {c} \PScurveto
-\installMPSshortcutN {C} \PSsetcmykcolor
-\installMPSshortcutN {G} \PSsetgray
-\installMPSshortcutN {R} \PSsetrgbcolor
-\installMPSshortcutN {lj} \PSsetlinejoin
-\installMPSshortcutN {ml} \PSsetmiterlimit
-\installMPSshortcutN {lc} \PSsetlinecap
-\installMPSshortcutN {sd} \PSsetdash
-\installMPSshortcutN {S} \PSstroke
-\installMPSshortcutN {F} \PSfill
-\installMPSshortcutN {W} \PSclip
-
-\installMPSshortcutN {q} \PSgsave
-\installMPSshortcutN {Q} \PSgrestore
-
-\installMPSshortcutN {s} \PSscale
-\installMPSshortcutN {t} \PSconcat
-\installMPSshortcutN {P} \PSshowpage
-
-\installMPSkeywordN {hlw} {\PDFcode{\gMPa1 w}\resetMPstack}
-\installMPSkeywordN {vlw} {\PDFcode{\gMPa1 w}\resetMPstack}
-\installMPSkeywordN {rd} {\PDFcode{[] 0 d}\resetMPstack}
-
-\def\dohandleMPsequenceC#1 %
- {\edef\somestring{#1}%
- \handleMPgraphic
- \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\ifx\somestring\PSEof
- \let\handleMPsequence\finishMPgraphic
- \else
- \letMPargument\somestring % {#1}%
- \fi\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\PSEof
- \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\ifx\somestring\PSBeginProlog
- \let\handleMPsequence\handleMPprolog
- \else
- \letMPargument\somestring % {#1}%
- \fi\fi\fi\fi\fi\fi\fi\fi\fi}
-
-\let\handleMPgraphic=\handleMPbegingraphic
-
-%D New: we can best filter the prolog because nowdays it can contain
-%D quite some code.
-
-% hm, catcode mess, so we need to tweak %'s catcode here
-% \long\expandafter\def\expandafter\handleMPprolog\expandafter#\expandafter1\PSEndProlog%
-% but today i'm not in the mood for ugly stuff
-
-\long\def\handleMPprolog#1EndProlog %
- {\doresetMPstack
- \let\handleMPsequence\dohandleMPsequence
- \handleMPsequence}
-
-%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
- \chardef\currentMPboundingbox#1\relax
- \xdef\MPllx {#2}%
- \xdef\MPlly {#3}%
- \xdef\MPurx {#4}%
- \xdef\MPury {#5}%
- \xdef\MPwidth {\the\dimexpr\MPurx\onebasepoint-\MPllx\onebasepoint\relax}%
- \xdef\MPheight{\the\dimexpr\MPury\onebasepoint-\MPlly\onebasepoint\relax}%
- \fi
- \doresetMPstack
- \let\handleMPsequence\dohandleMPsequence
- \let\next\handleMPsequence
- \ifskipemptyMPgraphic
- \ifdim\MPheight=\zeropoint\ifdim\MPwidth=\zeropoint
- \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.
-
-%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)}.
-
-% \startMPcode
-% draw btex Ga toch effe f\kern0ptietsen?{}` etex ;
-% \stopMPcode
-
-\newtoks \everyMPshowfont
-
-\def\setMPfshowfont#1#2%
- {\font\temp=#1\space at #2\relax\temp
- \the\everyMPshowfont}
-
-\let\MPfshowcommand\empty
-
-\def\dohandleMPfshow
- {\setbox\scratchbox\hbox
- {\obeyMPspecials
- \edef\MPtextsize{\gMPa\nofMParguments}%
- \def\do(##1){##1}% only works in latest mp
- \edef\MPtextdata{\dogMPa1}% beware, stack can have more
- \handleMPtext}%
- \setbox\scratchbox\hbox
- {\hskip\lastMPmoveX\onebasepoint
- \raise\lastMPmoveY\onebasepoint
- \box\scratchbox}%
- \smashbox\scratchbox
- \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
- \defconvertedcommand\MPtextdata\MPtextdata
- \expanded{\splitstring\MPtextdata}\at::::\to\MPtexttag\and\MPtextnumber
- \executeifdefined{handleMPtext\MPtexttag}\handleMPtextnormal
- \fi}
-
-% elsewhere we will implement \handleMPtextmptxt
-
-\def\doflushMPtext#1%
- {\edef\!!stringa{#1}%
- \@EA\dodoflushMPtext\!!stringa\relax}
-
-\def\dodoflushMPtext
- {\afterassignment\dododoflushMPtext\let\nexttoken=}
-
-\def\dododoflushMPtext
- {\ifx\nexttoken\relax
- % done
- \else\ifx\nexttoken\char
- \@EA\@EA\@EA\dodododoflushMPtext
- \else
- {\nexttoken}%
- \@EA\@EA\@EA\dodoflushMPtext
- \fi\fi}
-
-\def\dodododoflushMPtext
- {\afterassignment\dododododoflushMPtext\scratchcounter}
-
-\def\dododododoflushMPtext
- {{\char\scratchcounter}\let\next\dodoflushMPtext}
-
-\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
- \setMPfshowfont{\gMPa\nofMParguments}\MPtextsize
- \advance\nofMParguments \minusone
- \temp
- \MPfshowcommand
- {\ifnum\nofMParguments=\plusone
- \def\do(##1){##1}%
- \doflushMPtext{\dogMPa1}%
- \else % can't happen anymore in mp version 1+
- % 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
- \let\somestring\empty
- \scratchcounter\plusone
- \loop
- \ifnum\scratchcounter<\nofMParguments
- \edef\somestring{\somestring\space\gMPa\scratchcounter}%
- \advance\scratchcounter \plusone
- \repeat
- \edef\somestring{[\somestring]\space\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\finiMPpath\zerocount
- \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\resetMPmoveto
- {\let\lastMPmoveX\empty
- \let\lastMPmoveY\empty}
-
-\resetMPmoveto
-
-\def\flushMPmoveto
- {\ifx\lastMPmoveX\empty \else
- \PDFcode{\!MP\lastMPmoveX\space \!MP\lastMPmoveY\space m}%
- \fi}
-
-\def\flushnormalMPsegment
- {\ifcase\getMPkeyword\relax
- \flushMPmoveto
- \resetMPmoveto
- \PDFcode{\!MPgMPs1 \!MPgMPs2 l}%
- \or
- \flushMPmoveto
- \resetMPmoveto
- \PDFcode{\!MPgMPs1 \!MPgMPs2 \!MPgMPs3 \!MPgMPs4 \!MPgMPs5 \!MPgMPs6 c}%
- \or
- \ifx\lastMPmoveX\empty \else % we assume 0,0 rlineto
- \flushMPmoveto
- \PDFcode{\!MP\lastMPmoveX\space \!MP\lastMPmoveY\space l}%
- \resetMPmoveto
- \fi
- \or
- % \flushMPmoveto
- % \resetMPmoveto
- \fi}
-
-\def\flushMPconcatmoveto
- {\ifx\lastMPmoveX\empty\else
- \doMPconcat\lastMPmoveX\lastMPmoveX\lastMPmoveY\lastMPmoveY
- \flushMPmoveto
- \fi}
-
-\def\flushconcatMPsegment
- {\ifcase\getMPkeyword\relax
- \flushMPconcatmoveto
- \resetMPmoveto
- \doMPconcat{\gMPs1}\a{\gMPs2}\b%
- \PDFcode{\!MP\a\space\!MP\b\space l}%
- \or
- \flushMPconcatmoveto
- \resetMPmoveto
- \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 % rather mp specific ... rline always has 0,0
- \bgroup
- \noMPtranslate
- \flushMPconcatmoveto
- % next should be \lastMPmoveX+\a,\lastMPmoveY+\b but we know it's 0,0
- \PDFcode{\!MP\lastMPmoveX\space\!MP\lastMPmoveY\space l S}%
- \resetMPmoveto
- \egroup
- \or
-% \flushMPconcatmoveto
-% \resetMPmoveto
- \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\plustwo
- \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 \plusfour
- \or
- \multiply\scratchdimen \plustwo
- \else
- \expandafter\doMPreadjustdimen
- \fi}
-
-\def\doMPreadjustdimen
- {\ifnum\MPscratchCnt>\plustwo
- \divide \scratchdimen\plustwo
- \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>\onepoint % oeps, can be < 1pt too
-%D \ifdim\dimen16=\onepoint \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 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.
-
-% the original:
-%
-% \def\doMPconcat#1#2#3#4%
-% {\dimen12=#1\onepoint% p_x % #1\onepoint
-% \dimen14=#3\onepoint% 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<\plusthree % 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\installMPSkeywordP#1#2%
- {\expandafter\def\csname\@@MP:P:#1\endcsname{#2}}
-
-\def\installMPSshortcutP#1#2% todo: \let
- {\expandafter\let\csname\@@MP:P:#1\expandafter\endcsname\csname\@@MP:P:#2\endcsname}
-
-\def\dohandleMPpathB#1 %
- {\def\somestring{#1}%
- \executeifdefined{\@@MP:P:\somestring}\relax
- \handleMPsequence}
-
-\installMPSkeywordP \PSlineto
- {\setMPkeyword0 }
-\installMPSkeywordP \PScurveto
- {\setMPkeyword1 }
-\installMPSkeywordP \PSrlineto
- {\setMPkeyword2 }
-\installMPSkeywordP \PSmoveto
- {\edef\lastMPmoveX{\gMPs1}%
- \edef\lastMPmoveY{\gMPs2}%
- \resetMPstack
- \setMPkeyword3 }
-\installMPSkeywordP \PSclip
- {% \chardef\finiMPpath\zerocount % already
- \let\handleMPsequence\processMPpath}
-\installMPSkeywordP \PSgsave
- {\chardef\finiMPpath\plusthree}
-\installMPSkeywordP \PSgrestore
- {}
-\installMPSkeywordP \PSfill
- {\ifcase\finiMPpath
- \chardef\finiMPpath\plustwo
- \let\handleMPsequence\processMPpath
- \fi}
-\installMPSkeywordP \PSstroke
- {\ifcase\finiMPpath
- \chardef\finiMPpath\plusone
- \fi
- \let\handleMPsequence\processMPpath}
-\installMPSkeywordP \PSclosepath
- {\def\closeMPpath{\PDFcode{h}}}
-\installMPSkeywordP \PSconcat
- {\cleanupMPconcat
- \let\flushMPpath\flushconcatMPpath
- \handleMPpathconcat}
-\installMPSkeywordP \PSscale
- {\let\flushMPpath\flushconcatMPpath
- \handleMPpathscale}
-
-\installMPSshortcutP {l} \PSlineto
-\installMPSshortcutP {r} \PSrlineto
-\installMPSshortcutP {m} \PSmoveto
-\installMPSshortcutP {c} \PScurveto
-
-\installMPSshortcutP {q} \PSgsave
-\installMPSshortcutP {Q} \PSgrestore
-\installMPSshortcutP {S} \PSstroke
-\installMPSshortcutP {F} \PSfill
-\installMPSshortcutP {B} \PSgsave
-\installMPSshortcutP {W} \PSclip
-\installMPSshortcutP {p} \PSclosepath
-
-\installMPSshortcutP {s} \PSscale
-\installMPSshortcutP {t} \PSconcat
-
-%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 Here comes the special-specific code:
-
-\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}
-
-% \settrue\manyMPspecials \setMPextensions
-
-%D This macro handles the special definitions that are
-%D passed as comment.
-
-%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.
-
-%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.
-
-%D When defined inline, we use another macro to handle the
-%D definitions. Actually, this macro is called by the
-%D previous ones.
-
-\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
-
-\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 % beware, no real \if
- \message{[unknown \MPspecial]}%
- \else
- \csname\MPspecial\endcsname
- \fi
- \ifcase\inlineMPspecials
- \doresetMPstack % 0
- \else
- \resetMPstack % 1
- \fi}
-
-\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
- {\ifnum10000=0#1\relax
- \settrue \manyMPspecials
- \else
- \setfalse\manyMPspecials
- \fi
- \setMPextensions
- \handleMPsequence}
-
-\def\handleMPrgbcolor
- {\edef\lastMPrvalue{\csname\@@MP01\endcsname}%{\gMPs1}%
- \edef\lastMPgvalue{\csname\@@MP02\endcsname}%{\gMPs2}%
- \edef\lastMPbvalue{\csname\@@MP03\endcsname}%{\gMPs3}%
- \ifnum\MPrgbnumber\lastMPrvalue=123\relax
- \csname\@@MPSK\number\MPrgbnumber\lastMPbvalue\endcsname
- \else
- \dohandleMPrgb\lastMPrvalue\lastMPgvalue\lastMPbvalue
- \fi}
-
-\def\handleMPgraycolor{\dohandleMPgray{\gMPs1}}
-\def\handleMPcmykcolor{\dohandleMPcmyk{\gMPs1}{\gMPs2}{\gMPs3}{\gMPs4}}
-\def\handleMPspotcolor{\dohandleMPspot{\gMPs1}{\gMPs2}{\gMPs3}{\gMPs4}}
-
-% \newcontitional\ignoreMPpath
-
-\def\finishMPpath
- {\ifconditional\ignoreMPpath
- \PDFcode{W n\space}%
- \else
- \PDFcode{\ifcase\finiMPpath W n\or S\or f\or B\else W n\fi}%
- \fi
- \ifx\extraMPpathcode\empty\else
- \PDFcode{\extraMPpathcode}%
- \let\extraMPpathcode\empty
- \fi
- \setfalse\ignoreMPpath}
-
-\def\processMPpath
- {\checkMPpath % !
- \flushMPpath
- \closeMPpath
- \finishMPpath
- \let\handleMPsequence\dohandleMPsequence
- \resetMPstack
- \nofMPsegments\zerocount
- \handleMPsequence}
-
-\protect \endinput
-
-% When i'm bored ...
-
-% \newcatcodetable\mpscatcodes
-
-% \startcatcodetable \mpscatcodes
-% \catcode`\| \@@comment
-% \catcode`\% \@@active
-% \catcode`\[ \@@active
-% \catcode`\] \@@active
-% \catcode`\{ \@@active
-% \catcode`\} \@@active
-% \stopcatcodetable
-
-% \def\keepMPspecials
-% {\setcatcodecommand \mpscatcodes `\% \letterpercent
-% \setcatcodecommand \mpscatcodes `\[ \letterleftbracket
-% \setcatcodecommand \mpscatcodes `\] \letterrightbracket
-% \setcatcodecommand \mpscatcodes `\{ \letterleftbrace
-% \setcatcodecommand \mpscatcodes `\} \letterrightbrace}
-
-% \def\ignoreMPspecials
-% {\setcatcodecommand \mpscatcodes `\% \letterpercent
-% \setcatcodecommand \mpscatcodes `\[ \empty
-% \setcatcodecommand \mpscatcodes `\] \empty
-% \setcatcodecommand \mpscatcodes `\{ \empty
-% \setcatcodecommand \mpscatcodes `\} \empty}
-
-% \def\obeyMPspecials
-% {\setcatcodecommand \mpscatcodes `\% \letterpercent
-% \setcatcodecommand \mpscatcodes `\[ \letterleftbracket
-% \setcatcodecommand \mpscatcodes `\] \letterrightbracket
-% \setcatcodecommand \mpscatcodes `\{ \letterleftbrace
-% \setcatcodecommand \mpscatcodes `\} \letterrightbrace}
-
-% \gdef\setMPspecials|
-% {\setcatcodetable\mpscatcodes
-% \lccode`\-=\zerocount % to be sure, it could be a letter
-% \lccode`\%=`\%% % otherwise it's seen as a number
-% \def\({\char40\relax }%
-% \def\){\char41\relax }%
-% \def\\{\char92\relax }%
-% \def\0{\octalMPcharacter0}%
-% \def\1{\octalMPcharacter1}%
-% \def\2{\octalMPcharacter2}%
-% \def\3{\octalMPcharacter3}%
-% \def\4{\octalMPcharacter4}%
-% \def\5{\octalMPcharacter5}%
-% \def\6{\octalMPcharacter6}%
-% \def\7{\octalMPcharacter7}%
-% \def\8{\octalMPcharacter8}%
-% \def\9{\octalMPcharacter9}}
diff --git a/Master/texmf-dist/tex/context/base/mkii/meta-pre.mkii b/Master/texmf-dist/tex/context/base/mkii/meta-pre.mkii
deleted file mode 100644
index 098be030b19..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/meta-pre.mkii
+++ /dev/null
@@ -1,68 +0,0 @@
-%D \module
-%D [ file=meta-pre,
-%D version=2001.03.21,
-%D title=\METAPOST\ Graphics,
-%D subtitle=Predefined Goodies,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D In this library, we define a couple of handy graphics.
-
-% todo: use the predefine grid macros, mp code will move to
-% mp-* file
-
-\startuseMPgraphic{pagegrid}
- StartPage ;
- drawoptions(withcolor .8white) ;
- fill Field[Text][Text] ;
- drawoptions(withcolor .65white) ;
- fill Field[Footer][Text] ;
- fill Field[Header][Text] ;
- fill Field[LeftMargin][Text] ;
- fill Field[RightMargin][Text] ;
- drawoptions(withcolor .65yellow) ;
- fill Field[LeftEdge][Text] ;
- fill Field[RightEdge][Text] ;
- fill Field[Bottom][Text] ;
- fill Field[Top][Text] ;
- drawoptions(withpen pencircle scaled .3pt withcolor .65white) ;
- for i=-3cm step 1cm until PaperWidth+3cm :
- draw (i,-3cm)--(i,PaperHeight+3cm) ;
- endfor ;
- for i=PaperHeight+3cm step -1cm until -3cm :
- draw (-3cm,i)--(PaperWidth+3cm,i) ;
- endfor ;
- drawoptions(withpen pencircle scaled .15pt) ;
- for i=.5cm-3cm step 1cm until PaperWidth+3cm :
- draw (i,-3cm)--(i,PaperHeight+3cm) ;
- endfor ;
- for i=PaperHeight-.5cm+3cm step -1cm until -3cm :
- draw (-3cm,i)--(PaperWidth+3cm,i) ;
- endfor ;
- drawoptions(withpen pencircle scaled .3pt withcolor .65red) ;
- for i=0 step 1cm until PaperWidth :
- draw (i,0)--(i,PaperHeight) ;
- endfor ;
- for i=PaperHeight step -1cm until 0 :
- draw (0,i)--(PaperWidth,i) ;
- endfor ;
- drawoptions(withpen pencircle scaled .15pt withcolor .65red) ;
- for i=.5cm step 1cm until PaperWidth :
- draw (i,0)--(i,PaperHeight) ;
- endfor ;
- for i=PaperHeight-.5cm step -1cm until 0 :
- draw (0,i)--(PaperWidth,i) ;
- endfor ;
- drawoptions(withpen pencircle scaled 5pt withcolor .65red) ;
- draw ulcorner Page ;
- StopPage ;
-\stopuseMPgraphic
-
-\defineoverlay[pagegrid][\useMPgraphic{pagegrid}]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/meta-tex.mkii b/Master/texmf-dist/tex/context/base/mkii/meta-tex.mkii
deleted file mode 100644
index ab0f244570f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/meta-tex.mkii
+++ /dev/null
@@ -1,350 +0,0 @@
-%D \module
-%D [ file=meta-tex,
-%D version=2006.06.07,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=\METAPOST\ fast text insertion,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%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).
-
-% todo: testmacro for empty pic
-
-\unprotect
-
-\newwrite\TeXtextwrite
-
-\def\openTeXtexts {\immediate\openout \TeXtextwrite\currentTeXtext.mpb\relax}
-\def\closeTeXtexts{\immediate\closeout\TeXtextwrite}
-
-\def\currentTeXtext {\jobname-mpgraph}
-\def\currentTeXstack{mpgtxt}
-
-\initializeboxstack\currentTeXstack
-
-\newtoks\collectedmptexts
-\newtoks\everyTeXtexts
-
-\chardef\TeXtextsmode\zerocount % no inheritance
-
-\long\def\startTeXtexts#1\stopTeXtexts
- {\global\collectedmptexts\expandafter{\the\collectedmptexts#1}}
-
-\def\dostartTeXtexts
- {\global\setfalse\TeXtextdone
- \startnointerference
- \openTeXtexts
- \ifcase\TeXtextsmode
- % normally there is no need for this (faster anyway)
- \or
- \scantokens\expandafter{\the\everyMPTEXgraphic}% brr
- \or
- \the\everyTeXtexts
- \fi
- \ifrunMPgraphics
- \initializeboxstack\currentTeXstack
- \else
- \global\let\openTeXtexts\relax
- \global\let\finishTeXtexts\closeTeXtexts
- \fi}
-
-\def\dostopTeXtexts
- {\ifrunMPgraphics
- \closeTeXtexts
- \fi
- \stopnointerference}
-
-\let\finishTeXtexts\relax
-
-\appendtoks
- \finishTeXtexts
-\to \everystoptext
-
-\newconditional\TeXtextdone
-
-% \long\def\TeXtext#1%
-% {\dowithnextboxcontent
-% {\setnormalcatcodes}
-% {\global\settrue\TeXtextdone
-% \immediate\write\TeXtextwrite{savetxt(#1,\the\wd\nextbox,\the\ht\nextbox,\the\dp\nextbox);}%
-% \savebox\currentTeXstack{#1}{\box\nextbox}}
-% \hbox}
-
-\long\def\TeXtext
- {\dosingleempty\doTeXtext}
-
-% currently, colors in the converter don't use the color stack
-%
-% 0 = nothing, withcolor works ok, but nested colors fail
-% 1 = local color stack ok
-% 2 = obey color stack (not yet supported)
-
-\chardef\TeXtextcolormode\plusone
-
-\def\definetextext[#1]#2{\setvalue{textext@@#1}{#2}}
-
-% \definetextext[framed]{\framed}
-%
-% \startMPcode
-% draw \sometxt[framed]{black} rotated 45 ;
-% \stopMPcode
-
-\long\def\doTeXtext[#1]#2#3%
- {\begingroup
- \setnormalcatcodes
- \chardef\activecharactermode\plusone % compensates ** in meta-ini.mkii
- \endlinechar\minusone
- \everyeof\emptytoks
- %\def\ascii{#3}\scantokens\expandafter{\ascii}}%
- \setbox\nextbox\hbox
- {\ifcase\TeXtextcolormode
- \scantokens{\executeifdefined{textext@@#1}\firstofoneargument{#3}}%
- \else
- \localcolortrue
- \startcurrentcolor
- \scantokens{\executeifdefined{textext@@#1}\firstofoneargument{#3}}%
- \stopcurrentcolor
- \fi}%
- \global\settrue\TeXtextdone
- \edef\currenttextxt{\number#2}%
- \executeifdefined{textext::#1}{\getvalue{textext::depth}}%
- \savebox\currentTeXstack\currenttextxt{\box\nextbox}%
- \endgroup}
-
-\setvalue{textext::depth}{\immediate\write\TeXtextwrite{savetxt(\currenttextxt,\the\nextboxwd,\the\nextboxht,\the\nextboxdp) shifted (0,-\the\nextboxdp);}}
-\setvalue{textext::nodepth}{\immediate\write\TeXtextwrite{savetxt(\currenttextxt,\the\nextboxwd,\the\nextboxht,\the\nextboxdp);}}
-
-\setvalue{textext::d}{\getvalue{textext::depth}}
-\setvalue{textext::n}{\getvalue{textext::nodepth}}
-
-\newbox\mptextbox
-
-% \loadmapfile[lm-texnansi.map] % the font is not really used, i.e. nothing ends up in the file
-\definefontsynonym[MPtxtfont][texnansi-lmtt10]
-\definefont[localMPtxtfont][MPtxtfont at 10bp]
-
-\ifx\getTeXtext\undefined
-
- % this took a while to figure out
-
- \let\MPtextdata\empty
-
- \def\getTeXtext
- {\ifx\MPtextdata\empty\else
- \localMPtxtfont
- \setbox\mptextbox\hbox{\foundbox\currentTeXstack{\number\nofTeXtexts}}%
- \setbox\scratchbox\hbox{\MPtextdata}% set in meta-pdf.mkii/mkiv
- \edef\mpwd{\the\dimexpr\MPtextsize\dimexpr\wd\scratchbox/10\relax\relax}%
- \edef\mpht{\the\dimexpr\MPtextsize\dimexpr\ht\scratchbox/10\relax\relax}%
- \setbox\mptextbox\hbox{\raise\dp\mptextbox\box\mptextbox}%
- \dp\mptextbox\zeropoint
- \scale[\c!width=\mpwd,\c!height=\mpht]{\box\mptextbox}%
- \fi}
-
-\fi
-
-\let\nofTeXtexts\!!zerocount
-
-\setvalue{handleMPtext00001}% only height in tag (00001)
- {\setbox\scratchbox\hbox
- {\obeyMPspecials
- \edef\nofTeXtexts{\number\MPtextnumber}%
- \getTeXtext}%
- \setbox\scratchbox\hbox
- {\hskip\lastMPmoveX\onebasepoint\raise\lastMPmoveY\onebasepoint
- \box\scratchbox}%
- \ht\scratchbox\zeropoint
- \dp\scratchbox\zeropoint
- \wd\scratchbox\zeropoint
- \box\scratchbox}
-
-\startMPextensions
- string txtfile ; txtfile := "\currentTeXtext.mpb" ;
- string txtfont ; txtfont := "\truefontname{MPtxtfont}" ;
- string txtpref ; txtpref := "00001::::" ;
-\stopMPextensions
-
-\newcount\metatxtcounter
-
-\long\def\dodofiltersometxt#1#2#3%
- {\ifx#2\empty
- \else
- \advance\metatxtcounter\plusone
- \TeXtext{\the\metatxtcounter}{#1}%
- \expandafter\filtersometxt
- \fi#2#3}
-
-\long\def\redofiltersometxt[#1]#2%
- {\advance\metatxtcounter\plusone
- \TeXtext[#1]{\the\metatxtcounter}{#2}%
- \filtersometxt}
-
-\long\def\filtersometxt#1\sometxt
- {\doifnextoptionalelse\redofiltersometxt\dodofiltersometxt}
-
-% cleaner in mkiv
-%
-% \filtersometxt abc\sometxt{def};hij\sometxt{klm};\sometxt{}\empty\relax
-
-\long\def\flushTeXtexts#1%
- {\metatxtcounter\zerocount
- \dostartTeXtexts
- \the\collectedmptexts
- \filtersometxt#1\sometxt{}\empty\relax
- \dostopTeXtexts
- \ifconditional\TeXtextdone
- \immediate\write\MPwrite{loadtxts ; txtnext := 0 ;}%
- \global\collectedmptexts\emptytoks
- \fi
- \metatxtcounter\zerocount}
-
-% \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}\defconvertedcommand\MPascii\ascii
- \the\MPTEXgraphicchecks\relax % \relax is end condition!
- \fi
- \flushMPTEXgraphic% % verbatimtex etc
- \flushTeXtexts{#1}% added
- \writeMPgraphic{#1}} % potential optimization: pass \ascii
-
-\protect \endinput
-
-% torture test (will move)
-
-\startMPpage
- numeric a_b_c ;
- picture p ; pickup pencircle scaled .1pt ;
- p := \sometxt{Just a \color[blue]{simple} example text.} ;
- p := image(draw p; draw boundingbox p withcolor red; ) ;
- p := p rotatedaround(center p, 360*(5/100)) ;
- draw p ; draw boundingbox p withcolor blue ;
- currentpicture := currentpicture scaled 20 ;
- draw boundingbox currentpicture withcolor .5white ;
- setbounds currentpicture to boundingbox currentpicture enlarged 10pt ;
-\stopMPpage
-
-\startMPpage
- picture p ;
- p := \sometxt{\framed[width=fit,align=middle]{\input tufte\relax}} ;
- draw p rotatedaround(center p, 30) ;
-\stopMPpage
-
-\startMPpage
- picture p ;
- p := \sometxt{\framed[width=fit,align=middle]{\input tufte\relax}} ;
- draw p slanted .5 ;
-\stopMPpage
-
-\dorecurse{10} {
- \startTeXtexts
- \TeXtext{\recurselevel}{\ruledhbox{I must be {\green crazy} to implement this}}
- \stopTeXtexts
- \startMPpage
- picture p ; pickup pencircle scaled .1pt ;
- numeric i ; i := \recurselevel ;
- p := sometxt(i) ;
- p := p rotatedaround(center p, 360*(i*5/100)) ;
- draw p ; draw boundingbox p withcolor blue ;
- currentpicture := currentpicture scaled 20 ;
- draw boundingbox currentpicture withcolor .5white ;
- \stopMPpage
-}
-
-\startTeXtexts
- \dorecurse{100}{\TeXtext{\recurselevel}{\ruledhbox{\strut interesting \recurselevel}}}
-\stopTeXtexts
-
-\startMPpage
- picture p ; pickup pencircle scaled .1pt ;
- for i = 1 upto 100:
- p := sometxt(i) ;
- p := p rotatedaround(center p, 360*(i*5/100)) ;
- draw p ; draw boundingbox p withcolor blue ;
- endfor ;
- currentpicture := currentpicture scaled 20 ;
- draw boundingbox currentpicture withcolor .5white ;
-\stopMPpage
-
-\startTeXtexts
- \dorecurse{100}{\TeXtext{\recurselevel}{\ruledhbox{\strut interesting \recurselevel}}}
-\stopTeXtexts
-
-\startMPpage
- picture p ; pickup pencircle scaled .1pt ;
- for i = 1 step 5 until 100 :
- p := sometxt(i) ;
- p := p rotatedaround(center p, 360*(i/100)) ;
- draw p ; draw boundingbox p withcolor blue ;
- endfor ;
- currentpicture := currentpicture scaled 20 ;
- draw boundingbox currentpicture withcolor .5white ;
-\stopMPpage
-
-\startTeXtexts
- \dorecurse{20}{\TeXtext{\recurselevel}{\externalfigure[t:/sources/cow.pdf][width=1cm]}}
-\stopTeXtexts
-
-\startMPpage
- picture p ; pickup pencircle scaled .1pt ;
- for i = 1 upto 20 :
- p := sometxt(i) ;
- p := p shifted (2.5cm,0) rotated (360*(i/20)) ;
- draw p ; draw boundingbox p withcolor blue ;
- endfor ;
- currentpicture := currentpicture scaled 10 ;
- draw boundingbox currentpicture withcolor .5white ;
-\stopMPpage
-
-\startTeXtexts
- \dorecurse{200}{\TeXtext{\recurselevel}{\ruledhbox{\strut I must be {\green crazy} \recurselevel}}}
-\stopTeXtexts
-
-\startMPpage
- picture p ; pickup pencircle scaled .1pt ;
- numeric i ; i := 100 ;
- p := sometxt(i) ;
- p := p rotatedaround(center p, 360*(i*36/100)) ;
- draw p ; draw boundingbox p withcolor blue ;
- currentpicture := currentpicture scaled 20 ;
- draw boundingbox currentpicture withcolor .5white ;
-\stopMPpage
-
-\dorecurse{10}{
- \startTeXtexts
- \dorecurse{200}{\TeXtext{\recurselevel}{\ruledhbox{\strut I must be {\green crazy} \recurselevel}}}
- \stopTeXtexts
- \startMPpage
- picture p ; pickup pencircle scaled .1pt ;
- j := 10*\recurselevel-9;
- k := 10*\recurselevel;
- for i = j upto k:
- p := sometxt(i) ;
- p := p rotatedaround(center p, 360*(i/100)) ;
- draw p ; draw boundingbox p withcolor blue ;
- endfor ;
- currentpicture := currentpicture scaled 20 ;
- draw boundingbox currentpicture withcolor red ;
- \stopMPpage
-}
diff --git a/Master/texmf-dist/tex/context/base/mkii/meta-txt.mkii b/Master/texmf-dist/tex/context/base/mkii/meta-txt.mkii
deleted file mode 100644
index dc8bb7ca83b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/meta-txt.mkii
+++ /dev/null
@@ -1,304 +0,0 @@
-%D \module
-%D [ file=meta-txt,
-%D version=2000.07.06,
-%D title=\METAPOST\ Graphics,
-%D subtitle=Text Tricks,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D In this library some handy text manipulations are
-%D defined. Some can and will be improved as soon as the
-%D \TEX||\METAPOST\ interface is stable. Some of the
-%D solutions may look weird, which is entirely my fault,
-%D since I implemented them in the process of getting grip
-%D on this kind of manipulations. Undoubtly better
-%D \METAPOST\ code is possible, but my way of learning
-%D this kind of trickery happens to be by \quote {trial
-%D and error} and \quote {look and feel} (as well as
-%D identifying tricks in Hobby's code).
-
-% textext ipv btex ... etex
-
-% we need a proper prefix here
-
-\unprotect
-
-\startMPextensions
- if unknown context_text: input mp-text; fi;
-\stopMPextensions
-
-%%%%%%%
-
-% \def\newchar#1{\chardef#1=0 }
-
-\ifdefined\MPtoks \else \newtoks\MPtoks \fi
-\ifdefined\MPbox \else \newbox \MPbox \fi
-
-\ifdefined\parwidth \else \newdimen\parwidth \fi
-\ifdefined\parheight \else \newdimen\parheight \fi
-\ifdefined\parvoffset \else \newdimen\parvoffset \fi
-\ifdefined\parhoffset \else \newdimen\parhoffset \fi
-\ifdefined\parlines \else \newcount\parlines \fi
-\ifdefined\partoks \else \newtoks \partoks \fi
-\ifdefined\shapetextbox \else \newbox \shapetextbox \fi
- \newif \ifparseries
-\ifdefined\parfirst \else \chardef \parfirst=0 \fi
-
-\def\startshapetext[#1]%
- {\global\newcounter\currentshapetext
- \global\setbox\shapetextbox\vbox\bgroup
- \expanded{\switchtobodyfont[\@@shbodyfont]}%
- \dontcomplain
- \hsize\parwidth
- \setuptolerance[\v!verytolerant,\v!stretch]%
- \!!counta\zerocount
- \!!toksa\emptytoks
- \def\docommand##1%
- {\setbox\scratchbox\hbox{\useMPgraphic{##1}}%
- \global\chardef\parfirst\zerocount
- \getMPdata % \readlocfile{\MPdatafile}{}{}%
- \setshapecharacteristics
- \advance\!!counta by \parlines
- \expandafter\appendtoks\the\partoks\to\!!toksa}%
- \processcommalist[#1]\docommand
- \global\parseriestrue
- \xdef\totalparlines{\the\!!counta}%
- \global\partoks\!!toksa
- %\ifx\partoks\emptytoks\else % safeguard
- \expanded{\parshape \the\!!counta \the\!!toksa}%
- %\fi
- \setshapecharacteristics % extra dummy
- \ifparseries\def\par{\endgraf\adaptparshape}\fi
- \EveryPar{\begstrut}}
-
-\def\stopshapetext
- {\endstrut
- %\removebottomthings
- \egroup
- \global\newcounter\currentshapetext
- \getshapecharacteristics}
-
-\def\adaptparshape%
- {\def\docommand##1%
- {\ifcase\!!counta
- \expandafter\appendtoks\space##1 \to\!!toksa
- \else
- \advance\!!counta \minusone
- \fi}%
- \!!counta\prevgraf
- \doglobal\decrement(\totalparlines,\!!counta)%
- \multiply\!!counta \plustwo
- \!!toksa\emptytoks
- \expanded{\processseparatedlist[\the\partoks][\space]}\docommand
- \global\partoks\!!toksa
- %\ifx\partoks\emptytoks\else % safeguard
- \expanded{\parshape\totalparlines\the\partoks}%
- }%\fi}
-
-\def\getshapecharacteristics%
- {\doglobal\increment\currentshapetext
- \doifdefinedelse{parlines:\currentshapetext}
- {\global\parlines \getvalue{parlines:\currentshapetext}%
- \global\chardef\parfirst \getvalue{parfirst:\currentshapetext}%
- \global\parvoffset \getvalue{parvoffset:\currentshapetext}%
- \global\parhoffset \getvalue{parhoffset:\currentshapetext}%
- \global\parwidth \getvalue{parwidth:\currentshapetext}%
- \global\parheight \getvalue{parheight:\currentshapetext}}
- {\global\parlines \plusone
- \global\chardef\parfirst \zerocount
- \global\parvoffset \zeropoint
- \global\parhoffset \zeropoint
- \global\parwidth \hsize
- \global\parheight \vsize}}
-
-\def\setshapecharacteristics%
- {\doglobal\increment\currentshapetext
- \setxvalue{parlines:\currentshapetext }{\the\parlines}%
- \setxvalue{parfirst:\currentshapetext }{\the\parfirst}%
- \setxvalue{parvoffset:\currentshapetext}{\the\parvoffset}%
- \setxvalue{parhoffset:\currentshapetext}{\the\parhoffset}%
- \setxvalue{parwidth:\currentshapetext }{\the\parwidth}%
- \setxvalue{parheight:\currentshapetext }{\the\parheight}}
-
-\def\getshapetext% option: unvbox
- {\vbox\bgroup
- \forgetall
- \setbox\scratchbox\vbox to \parheight
- {\expanded{\switchtobodyfont[\@@shbodyfont]}% evt strutheight en
- \splittopskip\strutheight % lineheight opslaan
- \vskip\parvoffset % scheelt switch en
- \ifcase\parfirst\or\vskip\lineheight\fi % is ook veiliger
- \hskip\parhoffset
- \hbox{\vsplit\shapetextbox to \parlines\lineheight}}%
- \wd\scratchbox\parwidth
- \ht\scratchbox\parheight
- \dp\scratchbox\zeropoint
- \box\scratchbox
- \getshapecharacteristics
- \egroup}
-
-\def\setupshapetexts%
- {\dodoubleempty\getparameters[\??sh]}
-
-\setupshapetexts%
- [\c!bodyfont=]
-
-%%%%%%% rotfont nog definieren
-
-\doifundefined{RotFont}{\definefont[RotFont][RegularBold]}
-
-\def\processfollowingtoken#1% strut toegevoegd
- {\appendtoks#1\to\MPtoks
- \setbox\MPbox=\hbox{\RotFont\setstrut\strut\the\MPtoks}%
- \startMPdrawing
- n := n + 1 ; len[n] := \the\wd\MPbox ;
- \stopMPdrawing
- \startMPdrawing[-]
- % pic[n] := textext{\RotFont\setstrut\strut#1} ; % btex \RotFont\setstrut\strut#1 etex ;
- pic[n] := btex \RotFont\setstrut\strut#1 etex ;
- pic[n] := pic[n] shifted - llcorner pic[n] ;
- \stopMPdrawing}
-
-\startuseMPgraphic{followtokens}
- % we default to nothing
-\stopuseMPgraphic
-
-\def\followtokens#1%
- {\vbox\bgroup
- \forgetall
- \dontcomplain
- \startMPenvironment
- \doifundefined{RotFont}{\definefont[RotFont][RegularBold]}
- \stopMPenvironment
- \MPtoks\emptytoks
- \resetMPdrawing
- \startMPdrawing
- \includeMPgraphic{followtokens} ;
- picture pic[] ; numeric len[], n ; n := 0 ;
- \stopMPdrawing
- \handletokens#1\with\processfollowingtoken
- \startMPdrawing
- if unknown RotPath : path RotPath ; RotPath := origin ; fi ;
- if unknown RotColor : color RotColor ; RotColor := black ; fi ;
- if unknown TraceRot : boolean TraceRot ; TraceRot := false ; fi ;
- if unknown ExtraRot : numeric ExtraRot ; ExtraRot := 0 ; fi ;
- numeric al, at, pl, wid, pos ; pair ap, ad ;
- al := arclength RotPath ;
- if al=0 :
- al := len[n] + ExtraRot ;
- RotPath := origin -- (al,0) ;
- fi ;
- if al<len[n]:
- RotPath := RotPath scaled ((len[n]+ExtraRot)/al) ;
- al := arclength RotPath ;
- fi ;
- pl := (al-len[n])/(if n>1 : (n-1) else : 1 fi) ;
- if TraceRot :
- draw RotPath withpen pencircle scaled 1pt withcolor blue ;
- fi ;
- for i=1 upto n :
- wid := abs(xpart urcorner pic[i] - xpart llcorner pic[i]) ;
- pos := len[i]-wid/2 + (i-1)*pl ;
- at := arctime pos of RotPath ;
- ap := point at of RotPath ;
- ad := direction at of RotPath ;
- draw pic[i] shifted (-wid/2,0) rotated(angle(ad)) shifted ap
- withcolor RotColor ;
- if TraceRot :
- draw boundingbox
- pic[i] shifted (-wid/2,0) rotated(angle(ad)) shifted ap
- withpen pencircle scaled .25pt withcolor red ;
- draw ap
- withpen pencircle scaled .50pt withcolor green ;
- fi ;
- endfor ;
- \stopMPdrawing
- \MPdrawingdonetrue
- \getMPdrawing
- \resetMPdrawing
- \egroup}
-
-% \followtokens
-% {This is just a dummy text, kerned by T{\kern
-% -.1667em\lower .5ex\hbox {E}}{\kern -.125emX} and typeset
-% in a circle using {\setMFPfont M}{\setMFPfont
-% E}{\setMFPfont T}{\setMFPfont A}{\setMFPfont
-% P}{\setMFPfont O}{\setMFPfont S}{\setMFPfont T}.\quad}
-
-\startuseMPgraphic{fuzzycount}
- begingroup
- save height, span, drift, d, cp ;
- height := 3/ 5 * \baselinedistance ;
- span := 1/ 3 * height ;
- drift := 1/10 * height ;
- pickup pencircle scaled (1/12 * height) ;
- def d = (uniformdeviate drift) enddef ;
- for i := 1 upto \MPvar{n} :
- draw
- if (i mod 5)=0 : ((-d-4.5span,d)--(+d-0.5span,height-d))
- else : ((-d,+d)--(+d,height-d)) fi
- shifted (span*i,d-drift) ;
- endfor;
- picture cp ; cp := currentpicture ; % for readability
- setbounds currentpicture to
- (llcorner cp shifted (0,-ypart llcorner cp) --
- lrcorner cp shifted (0,-ypart lrcorner cp) --
- urcorner cp -- ulcorner cp -- cycle) ;
- endgroup ;
-\stopuseMPgraphic
-
-\setupMPvariables
- [fuzzycount]
- [n=10]
-
-\def\fuzzycount#1%
- {{\tx\useMPgraphic{fuzzycount}{n=#1}}}
-
-\defineconversion[fuzzy][\fuzzycount]
-
-%%%%%%%
-
-\setupMPvariables
- [EnglishRule]
- [height=1ex,
- width=\the\localhsize, % without \the, problems in non e-tex
- color=darkgray]
-
-\defineblank
- [EnglishRule]
- [medium]
-
-\startuniqueMPgraphic{EnglishRule}{height,width,color}
- height = \MPvar{height} ;
- x1 = 0 ; x3 = \MPvar{width} ; x2 = x4 = .5x3 ;
- y1 = y3 = 0 ; y2 = -y4 = height/2 ;
- fill z1..z2..z3 & z3..z4..z1 & cycle withcolor \MPvar{color} ;
-\stopuniqueMPgraphic
-
-\def\EnglishRule%
- {\startlinecorrection[EnglishRule]
- \setlocalhsize \noindent \reuseMPgraphic{EnglishRule}
- \stoplinecorrection}
-
-%D The following macro returns a tight bound character
-%D sequence.
-%D
-%D \useMPlibrary[txt]
-%D
-%D \startlinecorrection
-%D \TightText{\ss\bf 123}{0cm}{3cm}{red}
-%D \stoplinecorrection
-
-\def\TightText#1#2#3#4%
- {\hbox % \ruledhbox
- {\startMPcode
- picture p ; p := image (graphictext "#1" withfillcolor red) ;
- draw p xsized #2 ysized #3 withcolor \MPcolor{#4} ;
- \stopMPcode}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/meta-xml.mkii b/Master/texmf-dist/tex/context/base/mkii/meta-xml.mkii
deleted file mode 100644
index 71708a0f9a5..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/meta-xml.mkii
+++ /dev/null
@@ -1,29 +0,0 @@
-%D \module
-%D [ file=meta-xml,
-%D version=2002.11.27,
-%D title=\METAPOST\ Graphics,
-%D subtitle=XML Hacks,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{MetaPost Graphics / XML Hacks}
-
-%D When we are dealing with XML, we need to make sure that
-%D \METAPOST\ knows about it. The next macro expands its
-%D argument (think of widget XFDF) into \type {\getXMLentity}
-%D calls.
-
-\unprotect
-
-\def\setMPtextXML#1#2%
- {\bgroup
- \enableXML
- \expanded{\defconvertedcommand\noexpand\ascii{#2}}%
- \expanded{\egroup\noexpand\dodoglobal\noexpand\setvalue{\@@MPT#1}{\ascii}}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-aux.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-aux.mkii
deleted file mode 100644
index 3869a95db2e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-aux.mkii
+++ /dev/null
@@ -1,152 +0,0 @@
-%D \module
-%D [ file=mult-aux,
-%D version=2010.08.2,
-%D title=\CONTEXT\ Multilingual Macros,
-%D subtitle=helpers,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This is a subset of the \MKIV\ variant which has more comments). There
-%D is no support for attributes (fonts and color). This code is mostly
-%D meant for usage in modules that are backported from \MKIV.
-
-\writestatus{loading}{ConTeXt Multilingual Macros / Helpers}
-
-\unprotect
-
-%D \starttyping
-%D \unprotect
-%D \def\????aa{@@@@aa}
-%D
-%D \installparameterhandler \????aa {whatever}
-%D \installsetuphandler \????aa {whatever}
-%D \installdefinehandler \????aa {whatever} \????aa % #3 == defaultroot
-%D
-%D % \installcommandhandler \????aa {whatever} \????aa
-%D \protect
-%D
-%D % \whateverparameter \c!test
-%D % \whateverparameterhash \c!test
-%D % \namedwhateverparameter \mycurrentwhatever \c!test
-%D % \everydefinewhatever (sets \currentwhatever)
-%D % \everypresetwhatever (can be used to reset parameters as we can redefine)
-%D % \everysetupwhatever (sets \currentwhatever)
-%D
-%D \starttext
-%D \definewhatever[first] \definewhatever[second][first]
-%D test: \def\currentwhatever{first} \whateverparameter{method} \par
-%D \setupwhatever [method=unset] test: \def\currentwhatever{first} \whateverparameter{method} \par
-%D \setupwhatever[first] [method=first] test: \def\currentwhatever{first} \whateverparameter{method} \par
-%D test: \def\currentwhatever{second} \whateverparameter{method} \par
-%D \setupwhatever[second][method=second] test: \def\currentwhatever{second} \whateverparameter{method} \par
-%D \stoptext
-%D \stoptyping
-
-\unexpanded\def\doinstallparameterhandler#1#2#3#4#5#6#7#8#9%
- {\def#3##1{\csname#4{#1#2}{##1}\endcsname}%
- \def#4##1##2{\ifcsname##1##2\endcsname##1##2\else\expandafter#5\csname##1\s!parent\endcsname{##2}\fi}%
- \def#5##1##2{\ifx##1\relax\s!empty\else#4{##1}{##2}\fi}%
- \def#6##1##2{\csname#4{#1##1}{##2}\endcsname}%
- \def#7##1{\detokenize\expandafter\expandafter\expandafter{\csname#1##1\endcsname}}% always root
- \def#8{\dosetvalue{#1}}% ##1 {##2} (braces are mandate)
- \def#9{\doletvalue{#1}}}% ##1 ##2
-
-\unexpanded\def\installparameterhandler#1#2%
- {%\message{\detokenize{#1}/\detokenize{#2}}%
- \normalexpanded
- {\doinstallparameterhandler
- {\noexpand#1}% \??aa
- \expandafter\noexpand\csname current#2\endcsname
- \expandafter\noexpand\csname #2parameter\endcsname
- \expandafter\noexpand\csname do#2parameter\endcsname
- \expandafter\noexpand\csname do#2parentparameter\endcsname
- \expandafter\noexpand\csname named#2parameter\endcsname
- \expandafter\noexpand\csname detokenized#2parameter\endcsname
- \expandafter\noexpand\csname doset#2parameter\endcsname
- \expandafter\noexpand\csname dolet#2parameter\endcsname}}
-
-\unexpanded\def\doinstallparameterhashhandler#1#2#3#4#5%
- {\def#3##1{#4{#1#2}{##1}}%
- \def#4##1##2{\ifcsname##1##2\endcsname##1\else\expandafter#5\csname##1\s!parent\endcsname{##2}\fi}%
- \def#5##1##2{\ifx##1\relax\else#4{##1}{##2}\fi}}
-
-\unexpanded\def\installparameterhashhandler#1#2%
- {\normalexpanded
- {\doinstallparameterhashhandler
- {\noexpand#1}% \??aa
- \expandafter\noexpand\csname current#2\endcsname
- \expandafter\noexpand\csname #2parameterhash\endcsname
- \expandafter\noexpand\csname do#2parameterhash\endcsname
- \expandafter\noexpand\csname do#2parentparameterhash\endcsname}}
-
-
-\unexpanded\def\doinstalldefinehandler#1#2#3#4#5#6#7%
- {\unexpanded\def#2{\dotripleempty#5}%
- \newtoks#6%
- \newtoks#7%
- \def#5[##1][##2][##3]% [child][parent][settings]
- {\edef#4{##1}% % [child] [settings]
- \the#6% predefine % [child][parent]
- \ifthirdargument % [child]
- \getparameters[#1#4][\s!parent=#1##2,##3]%
- \else\ifsecondargument
- \doifassignmentelse{##2}
- {\getparameters[#1#4][\s!parent=#3,##2]}
- {\getparameters[#1#4][\s!parent=#1##2]}%
- \else
- \getparameters[#1#4][\s!parent=#3]%
- \fi\fi
- \the#7}}
-
-\unexpanded\def\installdefinehandler#1#2#3%
- {\normalexpanded
- {\doinstalldefinehandler
- {\noexpand#1}% \??aa
- \expandafter\noexpand\csname define#2\endcsname
- {\noexpand#3}% root
- \expandafter\noexpand\csname current#2\endcsname
- \expandafter\noexpand\csname d@define#2\endcsname
- \expandafter\noexpand\csname everypreset#2\endcsname
- \expandafter\noexpand\csname everydefine#2\endcsname}}
-
-\unexpanded\def\doinstallsetuphandler#1#2#3#4#5%
- {\unexpanded\def#2{\dodoubleempty#4}%
- \newtoks#5%
- \def#4[##1][##2]% maybe helper
- {\ifsecondargument
- \def\docommand####1% we will have a simple one as well
- {\edef#3{####1}%
- \getparameters[#1#3][##2]%
- \the#5}%
- \processcommalist[##1]\docommand
- \else
- \let#3\empty
- \getparameters[#1][##1]%
- \the#5%
- \fi}}
-
-\unexpanded\def\installsetuphandler#1#2%
- {\normalexpanded
- {\doinstallsetuphandler
- {\noexpand#1}% \??aa
- \expandafter\noexpand\csname setup#2\endcsname
- \expandafter\noexpand\csname current#2\endcsname
- \expandafter\noexpand\csname d@setup#2\endcsname
- \expandafter\noexpand\csname everysetup#2\endcsname}}
-
-\unexpanded\def\installcommandhandler#1#2#3% \??self name \??parent (can be \??self)
- {\installparameterhandler {#1}{#2}%
- \installparameterhashhandler{#1}{#2}%
- \installdefinehandler {#1}{#2}{#3}%
- \installsetuphandler {#1}{#2}}
-
-\unexpanded\def\installnamespace#1%
- {\setvalue{????#1}{@@@@#1}}
-
-\protect
-
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-chk.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-chk.mkii
deleted file mode 100644
index cde00fd44c4..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-chk.mkii
+++ /dev/null
@@ -1,29 +0,0 @@
-%D \module
-%D [ file=mult-chk,
-%D version=2009.04.13,
-%D title=\CONTEXT\ Multilingual Macros,
-%D subtitle=Checking,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Multilingual Macros / Checking}
-
-%D No checking in \MKII.
-
-\def\gobbleparameters{\doquadrupleempty\dogobbleparameters} % todo: 1,2,3,4 case
-\def\dogobbleparameters[#1][#2][#3][#4]{}
-
-\def\setvalidparameterkeys{\gobbleparameters} % forward reference, so no \let
-\def\addvalidparameterkeys{\gobbleparameters} % forward reference, so no \let
-
-\let\enablecheckparameters \relax
-\let\disablecheckparameters\relax
-
-\def\getcheckedparameters[#1]{\getparameters} % just ignore the checking
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-com.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-com.mkii
deleted file mode 100644
index 600819b7ebc..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-com.mkii
+++ /dev/null
@@ -1,31 +0,0 @@
-%D \module
-%D [ file=mult-com,
-%D version=1996.06.01,
-%D title=\CONTEXT\ Multilingual Macros,
-%D subtitle=Commands,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See licen-en.pdf for
-%C details.
-
-%D This file has been replaced by \type {mult-def.lua} from which we
-%D generate separate interface definition files.
-
-% obsolete:
-%
-% \startcommands dutch english
-% german czech
-% italian romanian
-% french
-%
-% language: taal language
-% sprache jazyk
-% lingua limba
-% langue
-%
-% \stopcommands
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-con.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-con.mkii
deleted file mode 100644
index 7d0a47bd0a6..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-con.mkii
+++ /dev/null
@@ -1,53 +0,0 @@
-%D \module
-%D [ file=mult-con,
-%D version=2000.09.12,
-%D title=\CONTEXT\ Multilingual Macros,
-%D subtitle=Constants,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This file has been replaced by \type {mult-def.lua} from which we
-%D generate separate interface definition files.
-
-% obsolete:
-%
-%
-% \startvariables dutch english
-% german czech
-% italian romanian
-% french
-%
-% one: een one
-% eins jedna
-% uno unu
-% un
-% \stopvariables
-%
-% \startconstants dutch english
-% german czech
-% italian romanian
-% french
-%
-% sorttype: sortering sorttype
-% sorttype sorttype
-% sorttype sorttype
-% sorttype
-% \stopconstants
-%
-% \startelements dutch english
-% german czech
-% italian romanian
-% french
-%
-% begin: beginvan begin
-% anfang zacatek
-% inizio inceput
-% debut
-% \stopelements
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-cs.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-cs.mkii
deleted file mode 100644
index 0f2336d65ea..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-cs.mkii
+++ /dev/null
@@ -1,2224 +0,0 @@
-% this file is auto-generated, don't edit this file
-%
-% definitions for interface variables for language cs
-%
-\setinterfacevariable{Addition}{Pridavek}
-\setinterfacevariable{Alphabetic}{Alphabetic}
-\setinterfacevariable{Balloon}{Bublinka}
-\setinterfacevariable{Cap}{Kap}
-\setinterfacevariable{Capital}{Kapitalky}
-\setinterfacevariable{Character}{Pismeno}
-\setinterfacevariable{Characters}{Pismena}
-\setinterfacevariable{CloseDocument}{ZavritDokument}
-\setinterfacevariable{ExitViewer}{UkoncitProhlizec}
-\setinterfacevariable{FirstPage}{PrvniStrana}
-\setinterfacevariable{FitHeight}{FitHeight}
-\setinterfacevariable{FitWidth}{FitWidth}
-\setinterfacevariable{GotoPage}{JdiNaStranku}
-\setinterfacevariable{Greek}{Recky}
-\setinterfacevariable{Help}{Napoveda}
-\setinterfacevariable{HideField}{SkryjPole}
-\setinterfacevariable{HideLayer}{HideLayer}
-\setinterfacevariable{Key}{Klavesa}
-\setinterfacevariable{LastPage}{PosledniStrana}
-\setinterfacevariable{LoadForm}{NacistFormular}
-\setinterfacevariable{MONTH}{MESIC}
-\setinterfacevariable{New}{Novy}
-\setinterfacevariable{NextJump}{NasledujiciSkok}
-\setinterfacevariable{NextPage}{DalsiStrana}
-\setinterfacevariable{Numbers}{Cisla}
-\setinterfacevariable{OpenNamedDocument}{OpenNamedDocument}
-\setinterfacevariable{Ordinal}{Ordinal}
-\setinterfacevariable{Paragraph}{Odstavec}
-\setinterfacevariable{PauseMovie}{PozastavitFilm}
-\setinterfacevariable{PauseRendering}{PauseRendering}
-\setinterfacevariable{PauseSound}{PozastavitZvuk}
-\setinterfacevariable{PreviousJump}{PredchoziSkok}
-\setinterfacevariable{PreviousPage}{PredchoziStrana}
-\setinterfacevariable{PrintDocument}{VytisknoutDokument}
-\setinterfacevariable{Query}{Query}
-\setinterfacevariable{QueryAgain}{QueryAgain}
-\setinterfacevariable{ResetForm}{ResetFormulare}
-\setinterfacevariable{ResumeMovie}{PokracovatFilm}
-\setinterfacevariable{ResumeRendering}{ResumeRendering}
-\setinterfacevariable{ResumeSound}{PokracovatZvuk}
-\setinterfacevariable{Romannumerals}{Rimskecislice}
-\setinterfacevariable{SaveDocument}{UlozitDokument}
-\setinterfacevariable{SaveForm}{UlozitFormular}
-\setinterfacevariable{SaveNamedDocument}{SaveNamedDocument}
-\setinterfacevariable{SearchAgain}{HledatZnovu}
-\setinterfacevariable{SearchDocument}{ProhledatDokument}
-\setinterfacevariable{ShowBookmarks}{UkazZalozky}
-\setinterfacevariable{ShowField}{UkazPole}
-\setinterfacevariable{ShowThumbs}{UkazNahledy}
-\setinterfacevariable{StartMovie}{SpustitFilm}
-\setinterfacevariable{StartRendering}{StartRendering}
-\setinterfacevariable{StartSound}{StartZvuk}
-\setinterfacevariable{StopMovie}{ZastavitFilm}
-\setinterfacevariable{StopRendering}{StopRendering}
-\setinterfacevariable{StopSound}{StopZvuk}
-\setinterfacevariable{SubmitForm}{PoslatFormular}
-\setinterfacevariable{ToggleLayer}{ToggleLayer}
-\setinterfacevariable{ToggleViewer}{ZmenitProhlizec}
-\setinterfacevariable{URL}{URL}
-\setinterfacevariable{VideLayer}{VideLayer}
-\setinterfacevariable{ViewerHelp}{NapovedaProhlizece}
-\setinterfacevariable{WEEKDAY}{VSEDNIDEN}
-\setinterfacevariable{WORD}{SLOVO}
-\setinterfacevariable{WORDS}{SLOVA}
-\setinterfacevariable{Word}{Slovo}
-\setinterfacevariable{Words}{Slova}
-\setinterfacevariable{abbreviation}{zkratka}
-\setinterfacevariable{abbreviations}{zkratky}
-\setinterfacevariable{absolute}{absolutni}
-\setinterfacevariable{action}{akce}
-\setinterfacevariable{after}{po}
-\setinterfacevariable{all}{vse}
-\setinterfacevariable{alphabetic}{alphabetic}
-\setinterfacevariable{always}{vzdy}
-\setinterfacevariable{anchor}{anchor}
-\setinterfacevariable{and}{and}
-\setinterfacevariable{answerarea}{answerarea}
-\setinterfacevariable{appendices}{dodatky}
-\setinterfacevariable{appendix}{dodatek}
-\setinterfacevariable{april}{duben}
-\setinterfacevariable{aside}{aside}
-\setinterfacevariable{atleftmargin}{atleftmargin}
-\setinterfacevariable{atmargin}{naokraji}
-\setinterfacevariable{atpage}{nastrance}
-\setinterfacevariable{atrightmargin}{atrightmargin}
-\setinterfacevariable{attachment}{attachment}
-\setinterfacevariable{august}{srpen}
-\setinterfacevariable{author}{autor}
-\setinterfacevariable{auto}{auto}
-\setinterfacevariable{autointro}{autouvod}
-\setinterfacevariable{autopunctuation}{autopunctuation}
-\setinterfacevariable{back}{zpet}
-\setinterfacevariable{background}{pozadi}
-\setinterfacevariable{backmatter}{epilogy}
-\setinterfacevariable{backpart}{epilog}
-\setinterfacevariable{backspace}{zpetnamezera}
-\setinterfacevariable{backward}{zpet}
-\setinterfacevariable{bbl}{bbl}
-\setinterfacevariable{before}{pred}
-\setinterfacevariable{begin}{begin}
-\setinterfacevariable{bib}{bib}
-\setinterfacevariable{big}{velke}
-\setinterfacevariable{bigbodyfont}{bigbodyfont}
-\setinterfacevariable{bigger}{bigger}
-\setinterfacevariable{bigpreference}{vysokapriorita}
-\setinterfacevariable{blank}{prazdny}
-\setinterfacevariable{block}{block}
-\setinterfacevariable{blockquote}{blockquote}
-\setinterfacevariable{bodymatter}{hlavnicasti}
-\setinterfacevariable{bodypart}{hlavnicast}
-\setinterfacevariable{bold}{tucne}
-\setinterfacevariable{bolditalic}{tucnekurzivni}
-\setinterfacevariable{boldslanted}{tucnesklonene}
-\setinterfacevariable{bookmark}{zalozka}
-\setinterfacevariable{both}{obe}
-\setinterfacevariable{bothtext}{bothtext}
-\setinterfacevariable{bottom}{spodek}
-\setinterfacevariable{box}{box}
-\setinterfacevariable{brief}{brief}
-\setinterfacevariable{broad}{siroky}
-\setinterfacevariable{buffer}{buffer}
-\setinterfacevariable{by}{skrz}
-\setinterfacevariable{calligraphic}{kaligraficke}
-\setinterfacevariable{camel}{camel}
-\setinterfacevariable{cap}{kap}
-\setinterfacevariable{capital}{kapitalky}
-\setinterfacevariable{category}{category}
-\setinterfacevariable{cd:character}{cd:character}
-\setinterfacevariable{cd:font}{cd:font}
-\setinterfacevariable{center}{center}
-\setinterfacevariable{centerlast}{centerlast}
-\setinterfacevariable{chapter}{kapitola}
-\setinterfacevariable{character}{pismeno}
-\setinterfacevariable{characters}{pismena}
-\setinterfacevariable{chemical}{chemical}
-\setinterfacevariable{chemicals}{chemicals}
-\setinterfacevariable{chemistry}{chemistry}
-\setinterfacevariable{cite}{cite}
-\setinterfacevariable{closed}{closed}
-\setinterfacevariable{color}{barevne}
-\setinterfacevariable{column}{column}
-\setinterfacevariable{columns}{sloupce}
-\setinterfacevariable{combination}{combination}
-\setinterfacevariable{command}{prikaz}
-\setinterfacevariable{commands}{prikazy}
-\setinterfacevariable{comment}{komentar}
-\setinterfacevariable{component}{komponenta}
-\setinterfacevariable{compressseparator}{compressseparator}
-\setinterfacevariable{compressstopper}{compressstopper}
-\setinterfacevariable{concept}{koncept}
-\setinterfacevariable{construction}{construction}
-\setinterfacevariable{content}{obsah}
-\setinterfacevariable{contents}{obsah}
-\setinterfacevariable{continue}{pokracovat}
-\setinterfacevariable{continued}{continued}
-\setinterfacevariable{controls}{controls}
-\setinterfacevariable{conversion}{konverze}
-\setinterfacevariable{current}{aktualni}
-\setinterfacevariable{cutspace}{cutspace}
-\setinterfacevariable{dataset}{dataset}
-\setinterfacevariable{date}{datum}
-\setinterfacevariable{day}{den}
-\setinterfacevariable{december}{prosinec}
-\setinterfacevariable{default}{implicitni}
-\setinterfacevariable{depth}{podlehloubky}
-\setinterfacevariable{description}{popis}
-\setinterfacevariable{disable}{zablokovat}
-\setinterfacevariable{display}{obrazovka}
-\setinterfacevariable{dot}{tecka}
-\setinterfacevariable{doublesided}{dvoustranny}
-\setinterfacevariable{down}{down}
-\setinterfacevariable{each}{kazdy}
-\setinterfacevariable{edge}{hrana}
-\setinterfacevariable{effective}{effective}
-\setinterfacevariable{eight}{eight}
-\setinterfacevariable{embed}{embed}
-\setinterfacevariable{empty}{prazdne}
-\setinterfacevariable{enable}{enable}
-\setinterfacevariable{end}{end}
-\setinterfacevariable{endnote}{endnote}
-\setinterfacevariable{enumeration}{vycet}
-\setinterfacevariable{environment}{prostredi}
-\setinterfacevariable{even}{sude}
-\setinterfacevariable{export}{export}
-\setinterfacevariable{external}{externi}
-\setinterfacevariable{extremestretch}{extremestretch}
-\setinterfacevariable{fact}{fakt}
-\setinterfacevariable{fallback}{fallback}
-\setinterfacevariable{february}{unor}
-\setinterfacevariable{field}{field}
-\setinterfacevariable{figure}{obrazek}
-\setinterfacevariable{figures}{obrazky}
-\setinterfacevariable{file}{soubor}
-\setinterfacevariable{final}{finalni}
-\setinterfacevariable{first}{prvni}
-\setinterfacevariable{firstcolumn}{firstcolumn}
-\setinterfacevariable{firstpage}{prvnistranka}
-\setinterfacevariable{firstsubpage}{prvnipodstranka}
-\setinterfacevariable{fit}{prizpusobive}
-\setinterfacevariable{five}{pet}
-\setinterfacevariable{fix}{fixuj}
-\setinterfacevariable{fixed}{fixne}
-\setinterfacevariable{flexible}{prizpusobive}
-\setinterfacevariable{float}{plvouciobjekt}
-\setinterfacevariable{flushinner}{flushinner}
-\setinterfacevariable{flushleft}{flushleft}
-\setinterfacevariable{flushouter}{flushouter}
-\setinterfacevariable{flushright}{flushright}
-\setinterfacevariable{followingpage}{followingpage}
-\setinterfacevariable{font}{font}
-\setinterfacevariable{footer}{upati}
-\setinterfacevariable{footnote}{poznamkapodcarou}
-\setinterfacevariable{force}{sila}
-\setinterfacevariable{foreground}{popredi}
-\setinterfacevariable{formula}{rovnice}
-\setinterfacevariable{formulas}{rovnice}
-\setinterfacevariable{forward}{vpred}
-\setinterfacevariable{four}{ctyri}
-\setinterfacevariable{fractions}{fractions}
-\setinterfacevariable{frame}{ramecek}
-\setinterfacevariable{framedtext}{oramovanytext}
-\setinterfacevariable{friday}{patek}
-\setinterfacevariable{frontmatter}{prednicasti}
-\setinterfacevariable{frontpart}{prednicast}
-\setinterfacevariable{fullhz}{fullhz}
-\setinterfacevariable{global}{globalne}
-\setinterfacevariable{graphic}{graf}
-\setinterfacevariable{graphics}{grafy}
-\setinterfacevariable{gray}{seda}
-\setinterfacevariable{greek}{recky}
-\setinterfacevariable{grid}{mrizka}
-\setinterfacevariable{halfline}{pulradku}
-\setinterfacevariable{handwritten}{rukopisne}
-\setinterfacevariable{hang}{zaveseni}
-\setinterfacevariable{hanging}{visici}
-\setinterfacevariable{hangingboth}{hangingboth}
-\setinterfacevariable{head}{hlavicka}
-\setinterfacevariable{header}{zahlavi}
-\setinterfacevariable{headintext}{headintext}
-\setinterfacevariable{height}{vyska}
-\setinterfacevariable{helptext}{textnapovedy}
-\setinterfacevariable{hencefore}{vyse}
-\setinterfacevariable{here}{zde}
-\setinterfacevariable{hereafter}{nize}
-\setinterfacevariable{hidden}{skryte}
-\setinterfacevariable{hiddenbar}{hiddenbar}
-\setinterfacevariable{hiding}{skryt}
-\setinterfacevariable{high}{vysoko}
-\setinterfacevariable{horizontal}{horizontalne}
-\setinterfacevariable{hyphenated}{hyphenated}
-\setinterfacevariable{hz}{hz}
-\setinterfacevariable{inbetween}{mezi}
-\setinterfacevariable{index}{rejstrik}
-\setinterfacevariable{indices}{rejstriky}
-\setinterfacevariable{inherit}{inherit}
-\setinterfacevariable{ininner}{ininner}
-\setinterfacevariable{ininneredge}{ininneredge}
-\setinterfacevariable{ininnermargin}{ininnermargin}
-\setinterfacevariable{inleft}{ivlevo}
-\setinterfacevariable{inleftedge}{nalevo}
-\setinterfacevariable{inleftmargin}{nalevyokraj}
-\setinterfacevariable{inline}{inline}
-\setinterfacevariable{inmargin}{naokraji}
-\setinterfacevariable{inner}{uvnitr}
-\setinterfacevariable{inneredge}{inneredge}
-\setinterfacevariable{innermargin}{innermargin}
-\setinterfacevariable{inother}{inother}
-\setinterfacevariable{inouter}{inouter}
-\setinterfacevariable{inouteredge}{inouteredge}
-\setinterfacevariable{inoutermargin}{inoutermargin}
-\setinterfacevariable{inright}{ivpravo}
-\setinterfacevariable{inrightedge}{napravo}
-\setinterfacevariable{inrightmargin}{napravyokraj}
-\setinterfacevariable{integral}{integral}
-\setinterfacevariable{interaction}{interakce}
-\setinterfacevariable{interactionmenu}{interaktivnimenu}
-\setinterfacevariable{interactive}{interactive}
-\setinterfacevariable{intermezzi}{intermezzi}
-\setinterfacevariable{intermezzo}{intermezzo}
-\setinterfacevariable{intext}{dotextu}
-\setinterfacevariable{intro}{uvod}
-\setinterfacevariable{invertedshort}{invertedshort}
-\setinterfacevariable{italic}{kurziva}
-\setinterfacevariable{italicbold}{kurzivnitucne}
-\setinterfacevariable{item}{polozka}
-\setinterfacevariable{itemize}{vycet}
-\setinterfacevariable{its}{pol}
-\setinterfacevariable{january}{leden}
-\setinterfacevariable{joinedup}{spojeno}
-\setinterfacevariable{july}{cervenec}
-\setinterfacevariable{june}{cerven}
-\setinterfacevariable{keep}{drzet}
-\setinterfacevariable{kerncharacters}{kerncharacters}
-\setinterfacevariable{knockout}{knockout}
-\setinterfacevariable{label}{popisek}
-\setinterfacevariable{landscape}{nasirku}
-\setinterfacevariable{last}{posledni}
-\setinterfacevariable{lastcolumn}{lastcolumn}
-\setinterfacevariable{lastpage}{poslednistrana}
-\setinterfacevariable{lastpagenumber}{lastpagenumber}
-\setinterfacevariable{lastsubpage}{poslaednipodstranka}
-\setinterfacevariable{layer}{layer}
-\setinterfacevariable{left}{vlevo}
-\setinterfacevariable{leftedge}{levahrana}
-\setinterfacevariable{lefthanging}{lefthanging}
-\setinterfacevariable{leftmargin}{levyokraj}
-\setinterfacevariable{leftpage}{levastranka}
-\setinterfacevariable{lefttoright}{lefttoright}
-\setinterfacevariable{legend}{legenda}
-\setinterfacevariable{less}{less}
-\setinterfacevariable{lesshyphenation}{lesshyphenation}
-\setinterfacevariable{letterspacing}{letterspacing}
-\setinterfacevariable{line}{radek}
-\setinterfacevariable{linenote}{linenote}
-\setinterfacevariable{lines}{radky}
-\setinterfacevariable{linked}{linked}
-\setinterfacevariable{list}{seznam}
-\setinterfacevariable{local}{lokalne}
-\setinterfacevariable{localenvironment}{lokalnihoprostredi}
-\setinterfacevariable{logo}{logo}
-\setinterfacevariable{logos}{loga}
-\setinterfacevariable{lohi}{nivy}
-\setinterfacevariable{long}{long}
-\setinterfacevariable{loose}{uvolnene}
-\setinterfacevariable{low}{nizko}
-\setinterfacevariable{ls}{ls}
-\setinterfacevariable{makeup}{zlom}
-\setinterfacevariable{mar}{mar}
-\setinterfacevariable{march}{brezen}
-\setinterfacevariable{margin}{marginalie}
-\setinterfacevariable{marginedge}{textovahrana}
-\setinterfacevariable{margintext}{marginalnitext}
-\setinterfacevariable{margintitle}{titulmarginalie}
-\setinterfacevariable{marking}{znaceni}
-\setinterfacevariable{math}{math}
-\setinterfacevariable{mathalignment}{mathalignment}
-\setinterfacevariable{mathcases}{mathcases}
-\setinterfacevariable{mathematics}{mathematika}
-\setinterfacevariable{mathmatrix}{mathmatrix}
-\setinterfacevariable{max}{max}
-\setinterfacevariable{maxdepth}{maxdepth}
-\setinterfacevariable{maxheight}{maxheight}
-\setinterfacevariable{maxwidth}{maxwidth}
-\setinterfacevariable{may}{kveten}
-\setinterfacevariable{mediaeval}{stredoveky}
-\setinterfacevariable{medium}{stredni}
-\setinterfacevariable{middle}{nastred}
-\setinterfacevariable{min}{min}
-\setinterfacevariable{mindepth}{mindepth}
-\setinterfacevariable{minheight}{minvyska}
-\setinterfacevariable{minwidth}{minsirka}
-\setinterfacevariable{mirrored}{zrcadleno}
-\setinterfacevariable{mixed}{mixed}
-\setinterfacevariable{monday}{pondeli}
-\setinterfacevariable{mono}{mono}
-\setinterfacevariable{monobold}{monotucne}
-\setinterfacevariable{mononormal}{mononormal}
-\setinterfacevariable{month}{mesic}
-\setinterfacevariable{more}{more}
-\setinterfacevariable{morehyphenation}{morehyphenation}
-\setinterfacevariable{name}{jmeno}
-\setinterfacevariable{narrow}{uzky}
-\setinterfacevariable{negative}{negativ}
-\setinterfacevariable{never}{nikdy}
-\setinterfacevariable{new}{novy}
-\setinterfacevariable{next}{dalsi}
-\setinterfacevariable{nextevenpage}{dalsisudastranka}
-\setinterfacevariable{nextoddpage}{dalsilichastranka}
-\setinterfacevariable{nextpage}{dalsistranka}
-\setinterfacevariable{nextsubpage}{dalsipodstranka}
-\setinterfacevariable{nine}{nine}
-\setinterfacevariable{no}{ne}
-\setinterfacevariable{nocheck}{nocheck}
-\setinterfacevariable{nodepth}{nodepth}
-\setinterfacevariable{nofit}{nofit}
-\setinterfacevariable{nogrid}{nogrid}
-\setinterfacevariable{noheight}{noheight}
-\setinterfacevariable{nohz}{nohz}
-\setinterfacevariable{noline}{noline}
-\setinterfacevariable{nomarking}{zadneznaceni}
-\setinterfacevariable{nomenubar}{nomenubar}
-\setinterfacevariable{none}{zadny}
-\setinterfacevariable{nonumber}{nonumber}
-\setinterfacevariable{norepeat}{norepeat}
-\setinterfacevariable{normal}{normalni}
-\setinterfacevariable{normalshort}{normalshort}
-\setinterfacevariable{nospacing}{nospacing}
-\setinterfacevariable{nostopper}{nostopper}
-\setinterfacevariable{not}{ne}
-\setinterfacevariable{notation}{notation}
-\setinterfacevariable{note}{note}
-\setinterfacevariable{nothanging}{nothanging}
-\setinterfacevariable{nothyphenated}{nothyphenated}
-\setinterfacevariable{notjoinedup}{notjoinedup}
-\setinterfacevariable{november}{listopad}
-\setinterfacevariable{nowhere}{nikde}
-\setinterfacevariable{nowhite}{zadnabila}
-\setinterfacevariable{number}{cislo}
-\setinterfacevariable{numbers}{cisla}
-\setinterfacevariable{october}{rijen}
-\setinterfacevariable{odd}{liche}
-\setinterfacevariable{off}{vyp}
-\setinterfacevariable{offset}{offset}
-\setinterfacevariable{old}{old}
-\setinterfacevariable{oldstyle}{oldstyle}
-\setinterfacevariable{on}{zap}
-\setinterfacevariable{one}{jedna}
-\setinterfacevariable{opposite}{naproti}
-\setinterfacevariable{ordinal}{ordinal}
-\setinterfacevariable{outer}{vnejsi}
-\setinterfacevariable{outeredge}{outeredge}
-\setinterfacevariable{outermargin}{outermargin}
-\setinterfacevariable{overbar}{nadtrzeno}
-\setinterfacevariable{overbars}{nadtrzeni}
-\setinterfacevariable{overlay}{prekryv}
-\setinterfacevariable{overprint}{overprint}
-\setinterfacevariable{overstrike}{preskrtnuto}
-\setinterfacevariable{overstrikes}{preskrtnuti}
-\setinterfacevariable{packed}{zhustene}
-\setinterfacevariable{page}{stranka}
-\setinterfacevariable{pagecomment}{komentarstranky}
-\setinterfacevariable{pagenumber}{cislostranky}
-\setinterfacevariable{paper}{papir}
-\setinterfacevariable{paragraph}{odstavec}
-\setinterfacevariable{part}{cast}
-\setinterfacevariable{positive}{positiv}
-\setinterfacevariable{postponing}{odlozit}
-\setinterfacevariable{postscript}{postscript}
-\setinterfacevariable{precedingpage}{precedingpage}
-\setinterfacevariable{preference}{nastaveni}
-\setinterfacevariable{preview}{nahled}
-\setinterfacevariable{previous}{predchozi}
-\setinterfacevariable{previousevenpage}{predchozisudastranka}
-\setinterfacevariable{previousoddpage}{predchozilichastranka}
-\setinterfacevariable{previouspage}{predchozistranka}
-\setinterfacevariable{previoussubpage}{predchozipodstranka}
-\setinterfacevariable{print}{print}
-\setinterfacevariable{printable}{tisknutelne}
-\setinterfacevariable{process}{process}
-\setinterfacevariable{product}{produkt}
-\setinterfacevariable{program}{program}
-\setinterfacevariable{project}{projekt}
-\setinterfacevariable{protected}{chranene}
-\setinterfacevariable{quadruple}{ctyrnasobny}
-\setinterfacevariable{quarterline}{quarterline}
-\setinterfacevariable{quotation}{citace}
-\setinterfacevariable{quote}{citovat}
-\setinterfacevariable{ran}{rozsah}
-\setinterfacevariable{random}{nahodny}
-\setinterfacevariable{readonly}{pouzeprocteni}
-\setinterfacevariable{rectangular}{pravouhly}
-\setinterfacevariable{reference}{odkaz}
-\setinterfacevariable{referral}{znacka}
-\setinterfacevariable{region}{region}
-\setinterfacevariable{register}{rejstrik}
-\setinterfacevariable{regular}{pravidelne}
-\setinterfacevariable{relative}{relativni}
-\setinterfacevariable{repeat}{opakovat}
-\setinterfacevariable{required}{pozadovane}
-\setinterfacevariable{reset}{reset}
-\setinterfacevariable{reverse}{reverse}
-\setinterfacevariable{right}{vpravo}
-\setinterfacevariable{rightedge}{pravahrana}
-\setinterfacevariable{righthanging}{righthanging}
-\setinterfacevariable{rightmargin}{pravyokraj}
-\setinterfacevariable{rightpage}{pravastranka}
-\setinterfacevariable{righttoleft}{righttoleft}
-\setinterfacevariable{roman}{antikva}
-\setinterfacevariable{romannumerals}{rimskecislice}
-\setinterfacevariable{rotate}{otoc}
-\setinterfacevariable{rotated}{otoceno}
-\setinterfacevariable{round}{zaobleny}
-\setinterfacevariable{row}{row}
-\setinterfacevariable{rule}{linka}
-\setinterfacevariable{samepage}{stejnastranka}
-\setinterfacevariable{sans}{sans}
-\setinterfacevariable{sansbold}{sanstucne}
-\setinterfacevariable{sansnormal}{sansnormal}
-\setinterfacevariable{sansserif}{bezserifu}
-\setinterfacevariable{saturday}{sobota}
-\setinterfacevariable{screen}{rastr}
-\setinterfacevariable{section}{sekce}
-\setinterfacevariable{sectionblockenvironment}{sectionblockenvironment}
-\setinterfacevariable{sectionnumber}{cislooddilu}
-\setinterfacevariable{see}{viz}
-\setinterfacevariable{selectfont}{selectfont}
-\setinterfacevariable{separator}{separator}
-\setinterfacevariable{september}{zari}
-\setinterfacevariable{serif}{serif}
-\setinterfacevariable{serifbold}{serifbold}
-\setinterfacevariable{serifnormal}{serifnormal}
-\setinterfacevariable{serried}{semknuto}
-\setinterfacevariable{setups}{setups}
-\setinterfacevariable{seven}{seven}
-\setinterfacevariable{sheet}{sheet}
-\setinterfacevariable{shiftdown}{shiftdown}
-\setinterfacevariable{shiftup}{shiftup}
-\setinterfacevariable{short}{short}
-\setinterfacevariable{simplefonts}{simplefonts}
-\setinterfacevariable{simplelist}{simplelist}
-\setinterfacevariable{singlesided}{jednostranne}
-\setinterfacevariable{six}{six}
-\setinterfacevariable{slanted}{sklonene}
-\setinterfacevariable{slantedbold}{sklonenetucne}
-\setinterfacevariable{small}{male}
-\setinterfacevariable{smallbodyfont}{smallbodyfont}
-\setinterfacevariable{smallbold}{maletucne}
-\setinterfacevariable{smallbolditalic}{maletucnekurzivni}
-\setinterfacevariable{smallboldslanted}{maletucnesklonene}
-\setinterfacevariable{smallcaps}{kapitalky}
-\setinterfacevariable{smaller}{smaller}
-\setinterfacevariable{smallitalic}{malekurzivni}
-\setinterfacevariable{smallitalicbold}{malekurzivnitucne}
-\setinterfacevariable{smallnormal}{malenormalni}
-\setinterfacevariable{smallslanted}{malesklonene}
-\setinterfacevariable{smallslantedbold}{malesklonenetucne}
-\setinterfacevariable{smalltype}{maletype}
-\setinterfacevariable{somewhere}{nekde}
-\setinterfacevariable{sorted}{tridene}
-\setinterfacevariable{sorting}{sorting}
-\setinterfacevariable{space}{mezera}
-\setinterfacevariable{spacing}{mezerovani}
-\setinterfacevariable{speech}{speech}
-\setinterfacevariable{split}{split}
-\setinterfacevariable{spot}{spot}
-\setinterfacevariable{standard}{standardni}
-\setinterfacevariable{start}{start}
-\setinterfacevariable{starter}{starter}
-\setinterfacevariable{sticker}{sticker}
-\setinterfacevariable{stop}{stop}
-\setinterfacevariable{stopper}{predel}
-\setinterfacevariable{stretch}{natahnout}
-\setinterfacevariable{stretched}{stretched}
-\setinterfacevariable{strict}{striktni}
-\setinterfacevariable{strong}{strong}
-\setinterfacevariable{strut}{strut}
-\setinterfacevariable{sub}{pod}
-\setinterfacevariable{subbackward}{podzpet}
-\setinterfacevariable{subformula}{subrovnice}
-\setinterfacevariable{subforward}{podvpred}
-\setinterfacevariable{subject}{tema}
-\setinterfacevariable{subpage}{podstranka}
-\setinterfacevariable{subs}{subs}
-\setinterfacevariable{subsection}{podsekce}
-\setinterfacevariable{subsubject}{podtema}
-\setinterfacevariable{subsubsection}{podpodsekce}
-\setinterfacevariable{subsubsubject}{podpodtema}
-\setinterfacevariable{subsubsubsection}{podpodpodsekce}
-\setinterfacevariable{subsubsubsubject}{podpodpodtema}
-\setinterfacevariable{subsubsubsubsection}{podpodpodpodsekce}
-\setinterfacevariable{subsubsubsubsubject}{podpodpodpodtema}
-\setinterfacevariable{subsubsubsubsubsection}{podpodpodpodpodsekce}
-\setinterfacevariable{subsubsubsubsubsubject}{podpodpodpodpodtema}
-\setinterfacevariable{subsubsubsubsubsubsection}{podpodpodpodpodpodsekce}
-\setinterfacevariable{subsubsubsubsubsubsubject}{podpodpodpodpodpodtema}
-\setinterfacevariable{subsubsubsubsubsubsubsection}{podpodpodpodpodpodpodsekce}
-\setinterfacevariable{subsubsubsubsubsubsubsubject}{podpodpodpodpodpodpodtema}
-\setinterfacevariable{subsubsubsubsubsubsubsubsection}{podpodpodpodpodpodpodpodsekce}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubject}{podpodpodpodpodpodpodpodtema}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{podpodpodpodpodpodpodpodpodsekce}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{podpodpodpodpodpodpodpodpodtema}
-\setinterfacevariable{sunday}{nedele}
-\setinterfacevariable{support}{podpora}
-\setinterfacevariable{sym}{sym}
-\setinterfacevariable{symbol}{symbol}
-\setinterfacevariable{synchronize}{synchronize}
-\setinterfacevariable{synonym}{synonym}
-\setinterfacevariable{system}{system}
-\setinterfacevariable{table}{tabulka}
-\setinterfacevariable{tablehead}{zahlavitabulky}
-\setinterfacevariable{tables}{tabulky}
-\setinterfacevariable{tabletail}{konectabulky}
-\setinterfacevariable{tabulate}{tabelator}
-\setinterfacevariable{tabulatehead}{tabulatehead}
-\setinterfacevariable{tabulatetail}{tabulatetail}
-\setinterfacevariable{tall}{vysoko}
-\setinterfacevariable{teletype}{strojopis}
-\setinterfacevariable{temporary}{docasne}
-\setinterfacevariable{test}{test}
-\setinterfacevariable{text}{text}
-\setinterfacevariable{textnote}{textnote}
-\setinterfacevariable{three}{tri}
-\setinterfacevariable{thursday}{ctvrtek}
-\setinterfacevariable{tight}{tight}
-\setinterfacevariable{title}{titul}
-\setinterfacevariable{toggle}{toggle}
-\setinterfacevariable{tolerant}{tolerantni}
-\setinterfacevariable{top}{vrsek}
-\setinterfacevariable{tuesday}{utery}
-\setinterfacevariable{two}{dve}
-\setinterfacevariable{txt}{txt}
-\setinterfacevariable{type}{opis}
-\setinterfacevariable{typing}{typing}
-\setinterfacevariable{unavailable}{nedostupne}
-\setinterfacevariable{underbar}{podtrzeno}
-\setinterfacevariable{underbars}{podtrzeni}
-\setinterfacevariable{understrike}{understrike}
-\setinterfacevariable{understrikes}{understrikes}
-\setinterfacevariable{unframed}{unframed}
-\setinterfacevariable{unicode}{unicode}
-\setinterfacevariable{unit}{jednotka}
-\setinterfacevariable{units}{jednotky}
-\setinterfacevariable{unknown}{neznamy}
-\setinterfacevariable{unpacked}{rozbalene}
-\setinterfacevariable{up}{up}
-\setinterfacevariable{url}{url}
-\setinterfacevariable{used}{uzito}
-\setinterfacevariable{value}{hodnota}
-\setinterfacevariable{vertical}{vertikalne}
-\setinterfacevariable{very}{velmi}
-\setinterfacevariable{verystrict}{velmistriktni}
-\setinterfacevariable{verytolerant}{velmitolerantni}
-\setinterfacevariable{vfenced}{vfenced}
-\setinterfacevariable{vulgarfraction}{vulgarfraction}
-\setinterfacevariable{weak}{weak}
-\setinterfacevariable{wednesday}{streda}
-\setinterfacevariable{week}{tyden}
-\setinterfacevariable{weekday}{vsedniden}
-\setinterfacevariable{white}{bily}
-\setinterfacevariable{wide}{siroce}
-\setinterfacevariable{width}{sirka}
-\setinterfacevariable{word}{slovo}
-\setinterfacevariable{words}{words}
-\setinterfacevariable{xml}{xml}
-\setinterfacevariable{year}{rok}
-\setinterfacevariable{yes}{ano}
-% definitions for interface constants for language cs
-%
-\setinterfaceconstant{action}{akce}
-\setinterfaceconstant{address}{adresa}
-\setinterfaceconstant{after}{po}
-\setinterfaceconstant{afterhead}{pohlavicce}
-\setinterfaceconstant{afterkey}{klavesapo}
-\setinterfaceconstant{aftersection}{aftersection}
-\setinterfaceconstant{align}{zarovnani}
-\setinterfaceconstant{alignbottom}{alignbottom}
-\setinterfaceconstant{aligncharacter}{aligncharacter}
-\setinterfaceconstant{alignmentcharacter}{alignmentcharacter}
-\setinterfaceconstant{alignmentleftsample}{alignmentleftsample}
-\setinterfaceconstant{alignmentleftwidth}{alignmentleftwidth}
-\setinterfaceconstant{alignmentrightsample}{alignmentrightsample}
-\setinterfaceconstant{alignmentrightwidth}{alignmentrightwidth}
-\setinterfaceconstant{alignsymbol}{alignsymbol}
-\setinterfaceconstant{aligntitle}{zarovnejtitul}
-\setinterfaceconstant{alternative}{alternativa}
-\setinterfaceconstant{anchor}{anchor}
-\setinterfaceconstant{anchoring}{anchoring}
-\setinterfaceconstant{andtext}{andtext}
-\setinterfaceconstant{apa}{apa}
-\setinterfaceconstant{arguments}{arguments}
-\setinterfaceconstant{arrow}{sipka}
-\setinterfaceconstant{artauthor}{artauthor}
-\setinterfaceconstant{artauthoretaldisplay}{artauthoretaldisplay}
-\setinterfaceconstant{artauthoretallimit}{artauthoretallimit}
-\setinterfaceconstant{artauthoretaltext}{artauthoretaltext}
-\setinterfaceconstant{artoffset}{artoffset}
-\setinterfaceconstant{at}{u}
-\setinterfaceconstant{author}{autor}
-\setinterfaceconstant{authorconversion}{authorconversion}
-\setinterfaceconstant{authoretaldisplay}{authoretaldisplay}
-\setinterfaceconstant{authoretallimit}{authoretallimit}
-\setinterfaceconstant{authoretaltext}{authoretaltext}
-\setinterfaceconstant{auto}{auto}
-\setinterfaceconstant{autocase}{autocase}
-\setinterfaceconstant{autofile}{autofile}
-\setinterfaceconstant{autofocus}{autoostreni}
-\setinterfaceconstant{autohang}{autohang}
-\setinterfaceconstant{autostrut}{autostrut}
-\setinterfaceconstant{autowidth}{autosirka}
-\setinterfaceconstant{availableheight}{availableheight}
-\setinterfaceconstant{availablewidth}{availablewidth}
-\setinterfaceconstant{axis}{osa}
-\setinterfaceconstant{background}{pozadi}
-\setinterfaceconstant{backgroundcolor}{barvapozadi}
-\setinterfaceconstant{backgroundcorner}{rohpozadi}
-\setinterfaceconstant{backgrounddepth}{hloubkapozadi}
-\setinterfaceconstant{backgroundoffset}{offsetpozadi}
-\setinterfaceconstant{backgroundradius}{polomerpozadi}
-\setinterfaceconstant{backgroundscreen}{rastrpozadi}
-\setinterfaceconstant{backreference}{backreference}
-\setinterfaceconstant{backspace}{zpetnamezera}
-\setinterfaceconstant{balance}{rovnovaha}
-\setinterfaceconstant{before}{pred}
-\setinterfaceconstant{beforehead}{predhlavickou}
-\setinterfaceconstant{beforesection}{beforesection}
-\setinterfaceconstant{bet}{bet}
-\setinterfaceconstant{bidi}{bidi}
-\setinterfaceconstant{big}{velky}
-\setinterfaceconstant{blank}{prazdny}
-\setinterfaceconstant{bleedoffset}{bleedoffset}
-\setinterfaceconstant{blockway}{dobloku}
-\setinterfaceconstant{bodyfont}{zakladnifont}
-\setinterfaceconstant{boffset}{boffset}
-\setinterfaceconstant{boldfeatures}{boldfeatures}
-\setinterfaceconstant{boldfont}{boldfont}
-\setinterfaceconstant{bolditalicfeatures}{bolditalicfeatures}
-\setinterfaceconstant{bolditalicfont}{bolditalicfont}
-\setinterfaceconstant{boldslantedfeatures}{boldslantedfeatures}
-\setinterfaceconstant{boldslantedfont}{boldslantedfont}
-\setinterfaceconstant{bookmark}{zalozka}
-\setinterfaceconstant{bottom}{spodek}
-\setinterfaceconstant{bottomafter}{bottomafter}
-\setinterfaceconstant{bottombefore}{bottombefore}
-\setinterfaceconstant{bottomcommand}{bottomcommand}
-\setinterfaceconstant{bottomdistance}{vzdalenostspodku}
-\setinterfaceconstant{bottomframe}{ramecekdole}
-\setinterfaceconstant{bottomoffset}{offsetspodku}
-\setinterfaceconstant{bottomspace}{bottomspace}
-\setinterfaceconstant{bottomstate}{statusspodku}
-\setinterfaceconstant{break}{break}
-\setinterfaceconstant{buffer}{buffer}
-\setinterfaceconstant{cache}{cache}
-\setinterfaceconstant{calculate}{pocitat}
-\setinterfaceconstant{category}{category}
-\setinterfaceconstant{ccommand}{cprikaz}
-\setinterfaceconstant{character}{character}
-\setinterfaceconstant{characters}{characters}
-\setinterfaceconstant{check}{check}
-\setinterfaceconstant{click}{klik}
-\setinterfaceconstant{clickin}{klikuvnitr}
-\setinterfaceconstant{clickout}{klikvne}
-\setinterfaceconstant{clipoffset}{clipoffset}
-\setinterfaceconstant{closeaction}{zavriakci}
-\setinterfaceconstant{closecommand}{closecommand}
-\setinterfaceconstant{closepage}{closepage}
-\setinterfaceconstant{closepageaction}{akcezavrenistranky}
-\setinterfaceconstant{closesymbol}{closesymbol}
-\setinterfaceconstant{color}{barva}
-\setinterfaceconstant{column}{sloupec}
-\setinterfaceconstant{columndistance}{vzdalenostsloupcu}
-\setinterfaceconstant{columns}{sloupce}
-\setinterfaceconstant{comma}{comma}
-\setinterfaceconstant{command}{prikaz}
-\setinterfaceconstant{commandafter}{prikazpo}
-\setinterfaceconstant{commandbefore}{predchoziprikaz}
-\setinterfaceconstant{commands}{prikazy}
-\setinterfaceconstant{comment}{comment}
-\setinterfaceconstant{commentchar}{commentchar}
-\setinterfaceconstant{commentoffset}{commentoffset}
-\setinterfaceconstant{compact}{compact}
-\setinterfaceconstant{component}{component}
-\setinterfaceconstant{compoundhyphen}{compoundhyphen}
-\setinterfaceconstant{compress}{compress}
-\setinterfaceconstant{compressdistance}{compressdistance}
-\setinterfaceconstant{compressmethod}{compressmethod}
-\setinterfaceconstant{compressseparator}{compressseparator}
-\setinterfaceconstant{compressstopper}{compressstopper}
-\setinterfaceconstant{concerns}{concerns}
-\setinterfaceconstant{connector}{connector}
-\setinterfaceconstant{continue}{pokracovat}
-\setinterfaceconstant{contrastcolor}{kontrastnibarva}
-\setinterfaceconstant{controls}{controls}
-\setinterfaceconstant{conversion}{konverze}
-\setinterfaceconstant{convertfile}{konverzesouboru}
-\setinterfaceconstant{copies}{copies}
-\setinterfaceconstant{corner}{roh}
-\setinterfaceconstant{coupling}{propojeni}
-\setinterfaceconstant{couplingway}{zpusobpropojeni}
-\setinterfaceconstant{criterium}{kriterium}
-\setinterfaceconstant{cropoffset}{cropoffset}
-\setinterfaceconstant{crossreference}{crossreference}
-\setinterfaceconstant{cssfile}{cssfile}
-\setinterfaceconstant{current}{aktualni}
-\setinterfaceconstant{cutspace}{cutspace}
-\setinterfaceconstant{dash}{pomlcka}
-\setinterfaceconstant{dat}{dat}
-\setinterfaceconstant{database}{database}
-\setinterfaceconstant{dataset}{dataset}
-\setinterfaceconstant{date}{datum}
-\setinterfaceconstant{deepnumbercommand}{deepnumbercommand}
-\setinterfaceconstant{deeptextcommand}{deeptextcommand}
-\setinterfaceconstant{default}{implicitni}
-\setinterfaceconstant{defaultheight}{defaultheight}
-\setinterfaceconstant{defaultwidth}{defaultwidth}
-\setinterfaceconstant{define}{define}
-\setinterfaceconstant{delay}{prodleva}
-\setinterfaceconstant{depth}{hloubka}
-\setinterfaceconstant{depthcorrection}{korekcehloubky}
-\setinterfaceconstant{direction}{smer}
-\setinterfaceconstant{directory}{adresar}
-\setinterfaceconstant{display}{obrazovka}
-\setinterfaceconstant{displaythreshold}{displaythreshold}
-\setinterfaceconstant{distance}{vzdalenost}
-\setinterfaceconstant{domain}{domain}
-\setinterfaceconstant{dot}{tecka}
-\setinterfaceconstant{doublesided}{oboustranne}
-\setinterfaceconstant{down}{down}
-\setinterfaceconstant{dummy}{dummy}
-\setinterfaceconstant{dx}{dx}
-\setinterfaceconstant{dy}{dy}
-\setinterfaceconstant{edge}{hrana}
-\setinterfaceconstant{edgedistance}{vzdalenosthrany}
-\setinterfaceconstant{editor}{editor}
-\setinterfaceconstant{editoretaldisplay}{editoretaldisplay}
-\setinterfaceconstant{editoretallimit}{editoretallimit}
-\setinterfaceconstant{editoretaltext}{editoretaltext}
-\setinterfaceconstant{empty}{prazdne}
-\setinterfaceconstant{entities}{entities}
-\setinterfaceconstant{entries}{entries}
-\setinterfaceconstant{equalheight}{equalheight}
-\setinterfaceconstant{equalwidth}{equalwidth}
-\setinterfaceconstant{escape}{escape}
-\setinterfaceconstant{etaldisplay}{etaldisplay}
-\setinterfaceconstant{etallimit}{etallimit}
-\setinterfaceconstant{etaloption}{etaloption}
-\setinterfaceconstant{etaltext}{etaltext}
-\setinterfaceconstant{evenmargin}{sudamarginalie}
-\setinterfaceconstant{exact}{exact}
-\setinterfaceconstant{exitoffset}{exitoffset}
-\setinterfaceconstant{expansion}{expanzen}
-\setinterfaceconstant{export}{export}
-\setinterfaceconstant{extras}{extras}
-\setinterfaceconstant{factor}{faktor}
-\setinterfaceconstant{fallback}{fallback}
-\setinterfaceconstant{fallbacks}{fallbacks}
-\setinterfaceconstant{family}{rodina}
-\setinterfaceconstant{features}{features}
-\setinterfaceconstant{featureset}{featureset}
-\setinterfaceconstant{fences}{fences}
-\setinterfaceconstant{field}{field}
-\setinterfaceconstant{fieldbackgroundcolor}{barvapozadipole}
-\setinterfaceconstant{fieldframecolor}{barvarameckupole}
-\setinterfaceconstant{fieldlayer}{fieldlayer}
-\setinterfaceconstant{fieldoffset}{offsetpole}
-\setinterfaceconstant{file}{soubor}
-\setinterfaceconstant{filler}{filler}
-\setinterfaceconstant{filter}{filter}
-\setinterfaceconstant{filtercommand}{filtercommand}
-\setinterfaceconstant{finalnamesep}{finalnamesep}
-\setinterfaceconstant{finalpagesep}{finalpagesep}
-\setinterfaceconstant{finalpubsep}{finalpubsep}
-\setinterfaceconstant{first}{prvni}
-\setinterfaceconstant{firstnamesep}{firstnamesep}
-\setinterfaceconstant{firstpage}{prvnistranka}
-\setinterfaceconstant{focus}{zaostreni}
-\setinterfaceconstant{focusin}{focusin}
-\setinterfaceconstant{focusoffset}{focusoffset}
-\setinterfaceconstant{focusout}{focusout}
-\setinterfaceconstant{font}{font}
-\setinterfaceconstant{footer}{upati}
-\setinterfaceconstant{footerdistance}{vzdalenostupati}
-\setinterfaceconstant{footerstate}{statusupati}
-\setinterfaceconstant{force}{sila}
-\setinterfaceconstant{foregroundcolor}{foregroundcolor}
-\setinterfaceconstant{foregroundstyle}{foregroundstyle}
-\setinterfaceconstant{format}{formatovat}
-\setinterfaceconstant{fractions}{fractions}
-\setinterfaceconstant{frame}{ramecek}
-\setinterfaceconstant{framecolor}{barvaramecku}
-\setinterfaceconstant{framecorner}{rohramecku}
-\setinterfaceconstant{framedepth}{hloubkaramecku}
-\setinterfaceconstant{frameoffset}{offsetramecku}
-\setinterfaceconstant{frameradius}{polomerramecku}
-\setinterfaceconstant{frames}{ramecky}
-\setinterfaceconstant{freeregion}{freeregion}
-\setinterfaceconstant{from}{z}
-\setinterfaceconstant{functioncolor}{functioncolor}
-\setinterfaceconstant{functionstyle}{functionstyle}
-\setinterfaceconstant{get}{ziskat}
-\setinterfaceconstant{global}{globalne}
-\setinterfaceconstant{goodies}{goodies}
-\setinterfaceconstant{grid}{mrizka}
-\setinterfaceconstant{group}{group}
-\setinterfaceconstant{groupsuffix}{groupsuffix}
-\setinterfaceconstant{hang}{zaveseni}
-\setinterfaceconstant{hcompact}{hcompact}
-\setinterfaceconstant{headalign}{headalign}
-\setinterfaceconstant{headcolor}{barvahlavicky}
-\setinterfaceconstant{headcommand}{headcommand}
-\setinterfaceconstant{headconversion}{konverzehlavicky}
-\setinterfaceconstant{header}{zahlavi}
-\setinterfaceconstant{headerdistance}{vzdalenostzahlavi}
-\setinterfaceconstant{headerstate}{statuszahlavi}
-\setinterfaceconstant{headlabel}{popisekhlavicky}
-\setinterfaceconstant{headnumber}{cislonadpisu}
-\setinterfaceconstant{headseparator}{headseparator}
-\setinterfaceconstant{headstyle}{stylhlavicky}
-\setinterfaceconstant{height}{vyska}
-\setinterfaceconstant{hfactor}{hfaktor}
-\setinterfaceconstant{hfil}{hfil}
-\setinterfaceconstant{hidenumber}{hidenumber}
-\setinterfaceconstant{hoffset}{hoffset}
-\setinterfaceconstant{horizontal}{horizontalne}
-\setinterfaceconstant{horoffset}{horoffset}
-\setinterfaceconstant{hyphen}{hyphen}
-\setinterfaceconstant{hyphens}{hyphens}
-\setinterfaceconstant{icommand}{iprikaz}
-\setinterfaceconstant{ignore}{ignore}
-\setinterfaceconstant{in}{v}
-\setinterfaceconstant{inbetween}{mezi}
-\setinterfaceconstant{increment}{zvysit}
-\setinterfaceconstant{incrementnumber}{zvysujicicislo}
-\setinterfaceconstant{indenting}{odsazovani}
-\setinterfaceconstant{indentlist}{indentlist}
-\setinterfaceconstant{indentnext}{odsadpristi}
-\setinterfaceconstant{index}{index}
-\setinterfaceconstant{indicator}{indikator}
-\setinterfaceconstant{initialsep}{initialsep}
-\setinterfaceconstant{inlinethreshold}{inlinethreshold}
-\setinterfaceconstant{inner}{vnitrni}
-\setinterfaceconstant{innermargin}{innermargin}
-\setinterfaceconstant{inputfile}{inputfile}
-\setinterfaceconstant{insidesection}{insidesection}
-\setinterfaceconstant{instance}{instance}
-\setinterfaceconstant{intent}{intent}
-\setinterfaceconstant{interaction}{interakce}
-\setinterfaceconstant{interlinespace}{meziradkovamezera}
-\setinterfaceconstant{internalgrid}{internalgrid}
-\setinterfaceconstant{italicfeatures}{italicfeatures}
-\setinterfaceconstant{italicfont}{italicfont}
-\setinterfaceconstant{itemalign}{itemalign}
-\setinterfaceconstant{items}{polozky}
-\setinterfaceconstant{joiners}{joiners}
-\setinterfaceconstant{journalconversion}{journalconversion}
-\setinterfaceconstant{juniorsep}{juniorsep}
-\setinterfaceconstant{keeptogether}{keeptogether}
-\setinterfaceconstant{ken}{ken}
-\setinterfaceconstant{keyexpansion}{keyexpansion}
-\setinterfaceconstant{keys}{keys}
-\setinterfaceconstant{keyword}{keyword}
-\setinterfaceconstant{label}{popisek}
-\setinterfaceconstant{labelalternative}{labelalternative}
-\setinterfaceconstant{labelcolor}{labelcolor}
-\setinterfaceconstant{labeloffset}{labeloffset}
-\setinterfaceconstant{labelstyle}{labelstyle}
-\setinterfaceconstant{language}{language}
-\setinterfaceconstant{last}{last}
-\setinterfaceconstant{lastnamesep}{lastnamesep}
-\setinterfaceconstant{lastpage}{poslednistrana}
-\setinterfaceconstant{lastpagesep}{lastpagesep}
-\setinterfaceconstant{lastpubsep}{lastpubsep}
-\setinterfaceconstant{layout}{layout}
-\setinterfaceconstant{left}{vlevo}
-\setinterfaceconstant{leftcolor}{barvavlevo}
-\setinterfaceconstant{leftcompoundhyphen}{leftcompoundhyphen}
-\setinterfaceconstant{leftedge}{levahrana}
-\setinterfaceconstant{leftedgedistance}{vzdalenostlevehrany}
-\setinterfaceconstant{leftframe}{ramecekvlevo}
-\setinterfaceconstant{lefthyphen}{lefthyphen}
-\setinterfaceconstant{leftmargin}{levyokraj}
-\setinterfaceconstant{leftmargindistance}{vzdalenostlevehookraje}
-\setinterfaceconstant{leftoffset}{levyoffset}
-\setinterfaceconstant{leftquotation}{citacevlevo}
-\setinterfaceconstant{leftquote}{citovatvlevo}
-\setinterfaceconstant{leftsample}{leftsample}
-\setinterfaceconstant{leftsentence}{vetavlevo}
-\setinterfaceconstant{leftspeech}{leftspeech}
-\setinterfaceconstant{leftstyle}{stylvlevo}
-\setinterfaceconstant{leftsubsentence}{podvetavlevo}
-\setinterfaceconstant{lefttext}{textvlevo}
-\setinterfaceconstant{leftwidth}{sirkavlevo}
-\setinterfaceconstant{leftwords}{leftwords}
-\setinterfaceconstant{less}{less}
-\setinterfaceconstant{level}{uroven}
-\setinterfaceconstant{levels}{urovne}
-\setinterfaceconstant{limittext}{limittext}
-\setinterfaceconstant{line}{radek}
-\setinterfaceconstant{linecorrection}{korekceradku}
-\setinterfaceconstant{linedirection}{linedirection}
-\setinterfaceconstant{lines}{radky}
-\setinterfaceconstant{list}{seznam}
-\setinterfaceconstant{listtext}{listtext}
-\setinterfaceconstant{local}{lokalne}
-\setinterfaceconstant{location}{misto}
-\setinterfaceconstant{loffset}{loffset}
-\setinterfaceconstant{logo}{logo}
-\setinterfaceconstant{logos}{loga}
-\setinterfaceconstant{marcolor}{barvaznacky}
-\setinterfaceconstant{margin}{marginalie}
-\setinterfaceconstant{margindistance}{vzdalenostokraje}
-\setinterfaceconstant{marginedge}{textovahrana}
-\setinterfaceconstant{marginedgetext}{textmarginalnihookraje}
-\setinterfaceconstant{margintext}{textmarginalie}
-\setinterfaceconstant{mark}{mark}
-\setinterfaceconstant{marking}{znaceni}
-\setinterfaceconstant{marstyle}{stylsnacky}
-\setinterfaceconstant{mask}{mask}
-\setinterfaceconstant{mathclass}{mathclass}
-\setinterfaceconstant{mathlimits}{mathlimits}
-\setinterfaceconstant{mathstyle}{mathstyle}
-\setinterfaceconstant{max}{max}
-\setinterfaceconstant{maxdepth}{maxdepth}
-\setinterfaceconstant{maxheight}{maxvyska}
-\setinterfaceconstant{maxwidth}{maxsirka}
-\setinterfaceconstant{maybeyear}{maybeyear}
-\setinterfaceconstant{menu}{menu}
-\setinterfaceconstant{method}{metoda}
-\setinterfaceconstant{middle}{stredni}
-\setinterfaceconstant{middlecolor}{middlecolor}
-\setinterfaceconstant{middlecommand}{middlecommand}
-\setinterfaceconstant{middlespeech}{middlespeech}
-\setinterfaceconstant{middlestyle}{middlestyle}
-\setinterfaceconstant{middletext}{strednitext}
-\setinterfaceconstant{middlewidth}{middlewidth}
-\setinterfaceconstant{midsentence}{midsentence}
-\setinterfaceconstant{min}{min}
-\setinterfaceconstant{mindepth}{mindepth}
-\setinterfaceconstant{minheight}{minvyska}
-\setinterfaceconstant{minwidth}{minsirka}
-\setinterfaceconstant{moffset}{moffset}
-\setinterfaceconstant{monthconversion}{monthconversion}
-\setinterfaceconstant{more}{more}
-\setinterfaceconstant{mpdepth}{mpdepth}
-\setinterfaceconstant{mpheight}{mpheight}
-\setinterfaceconstant{mpoffset}{mpoffset}
-\setinterfaceconstant{mpwidth}{mpwidth}
-\setinterfaceconstant{n}{n}
-\setinterfaceconstant{name}{jmeno}
-\setinterfaceconstant{namesep}{namesep}
-\setinterfaceconstant{nbottom}{nspodek}
-\setinterfaceconstant{nc}{nc}
-\setinterfaceconstant{next}{dalsi}
-\setinterfaceconstant{nextleft}{nextleft}
-\setinterfaceconstant{nextleftquotation}{nextleftquotation}
-\setinterfaceconstant{nextright}{nextright}
-\setinterfaceconstant{nextrightquotation}{nextrightquotation}
-\setinterfaceconstant{nl}{nl}
-\setinterfaceconstant{nleft}{nvlevo}
-\setinterfaceconstant{nlines}{nradky}
-\setinterfaceconstant{norm}{norm}
-\setinterfaceconstant{note}{note}
-\setinterfaceconstant{notes}{notes}
-\setinterfaceconstant{nr}{nr}
-\setinterfaceconstant{nright}{nvpravo}
-\setinterfaceconstant{ntop}{nvrsek}
-\setinterfaceconstant{number}{cislo}
-\setinterfaceconstant{numberalign}{numberalign}
-\setinterfaceconstant{numbercolor}{barvacisla}
-\setinterfaceconstant{numbercommand}{ciselnyprikaz}
-\setinterfaceconstant{numberconversion}{numberconversion}
-\setinterfaceconstant{numberconversionset}{numberconversionset}
-\setinterfaceconstant{numberdistance}{numberdistance}
-\setinterfaceconstant{numbering}{cislovani}
-\setinterfaceconstant{numberorder}{numberorder}
-\setinterfaceconstant{numberprefix}{numberprefix}
-\setinterfaceconstant{numbersegments}{numbersegments}
-\setinterfaceconstant{numberseparator}{oddelovaccisla}
-\setinterfaceconstant{numberseparatorset}{numberseparatorset}
-\setinterfaceconstant{numberset}{numberset}
-\setinterfaceconstant{numberstarter}{numberstarter}
-\setinterfaceconstant{numberstopper}{numberstopper}
-\setinterfaceconstant{numberstrut}{numberstrut}
-\setinterfaceconstant{numberstyle}{stylcisla}
-\setinterfaceconstant{numberwidth}{numberwidth}
-\setinterfaceconstant{nx}{nx}
-\setinterfaceconstant{ny}{ny}
-\setinterfaceconstant{object}{objekt}
-\setinterfaceconstant{obstruction}{prekazka}
-\setinterfaceconstant{oddmargin}{lichyokraj}
-\setinterfaceconstant{offset}{offset}
-\setinterfaceconstant{openaction}{otevriakci}
-\setinterfaceconstant{openpage}{openpage}
-\setinterfaceconstant{openpageaction}{akceotevrenistranky}
-\setinterfaceconstant{openup}{openup}
-\setinterfaceconstant{opticalsize}{opticalsize}
-\setinterfaceconstant{option}{volba}
-\setinterfaceconstant{order}{order}
-\setinterfaceconstant{orientation}{orientation}
-\setinterfaceconstant{otherstext}{otherstext}
-\setinterfaceconstant{outermargin}{outermargin}
-\setinterfaceconstant{overprint}{overprint}
-\setinterfaceconstant{ownerpassword}{ownerpassword}
-\setinterfaceconstant{ownnumber}{vlastnicislo}
-\setinterfaceconstant{packcriterium}{packcriterium}
-\setinterfaceconstant{page}{stranka}
-\setinterfaceconstant{pageboundaries}{hranicestranky}
-\setinterfaceconstant{pagecolor}{barvastranky}
-\setinterfaceconstant{pagecolormodel}{pagecolormodel}
-\setinterfaceconstant{pagecommand}{strankovyprikaz}
-\setinterfaceconstant{pageconnector}{pageconnector}
-\setinterfaceconstant{pageconversion}{pageconversion}
-\setinterfaceconstant{pageconversionset}{pageconversionset}
-\setinterfaceconstant{pageleft}{pageleft}
-\setinterfaceconstant{pagemethod}{pagemethod}
-\setinterfaceconstant{pagenumber}{cislostranky}
-\setinterfaceconstant{pageprefix}{pageprefix}
-\setinterfaceconstant{pageprefixconnector}{pageprefixconnector}
-\setinterfaceconstant{pageprefixconversion}{pageprefixconversion}
-\setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset}
-\setinterfaceconstant{pageprefixsegments}{pageprefixsegments}
-\setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset}
-\setinterfaceconstant{pageprefixset}{pageprefixset}
-\setinterfaceconstant{pageprefixstarter}{pageprefixstarter}
-\setinterfaceconstant{pageprefixstopper}{pageprefixstopper}
-\setinterfaceconstant{pageright}{pageright}
-\setinterfaceconstant{pagesegments}{pagesegments}
-\setinterfaceconstant{pagesep}{pagesep}
-\setinterfaceconstant{pageseparatorset}{pageseparatorset}
-\setinterfaceconstant{pageset}{pageset}
-\setinterfaceconstant{pagestarter}{pagestarter}
-\setinterfaceconstant{pagestate}{pagestate}
-\setinterfaceconstant{pagestopper}{pagestopper}
-\setinterfaceconstant{pagestyle}{stylstranky}
-\setinterfaceconstant{palet}{paleta}
-\setinterfaceconstant{paper}{papir}
-\setinterfaceconstant{paragraph}{odstavec}
-\setinterfaceconstant{period}{period}
-\setinterfaceconstant{place}{umistit}
-\setinterfaceconstant{placehead}{umistihlavicku}
-\setinterfaceconstant{placeholder}{placeholder}
-\setinterfaceconstant{placestopper}{predelmista}
-\setinterfaceconstant{position}{position}
-\setinterfaceconstant{prefix}{prefix}
-\setinterfaceconstant{prefixconnector}{prefixconnector}
-\setinterfaceconstant{prefixconversion}{prefixconversion}
-\setinterfaceconstant{prefixconversionset}{prefixconversionset}
-\setinterfaceconstant{prefixsegments}{prefixsegments}
-\setinterfaceconstant{prefixseparatorset}{prefixseparatorset}
-\setinterfaceconstant{prefixset}{prefixset}
-\setinterfaceconstant{prefixstarter}{prefixstarter}
-\setinterfaceconstant{prefixstopper}{prefixstopper}
-\setinterfaceconstant{preset}{prednastaveni}
-\setinterfaceconstant{preview}{nahled}
-\setinterfaceconstant{previous}{predchozi}
-\setinterfaceconstant{previousnumber}{predchozicislo}
-\setinterfaceconstant{print}{print}
-\setinterfaceconstant{printable}{tisknutelne}
-\setinterfaceconstant{process}{process}
-\setinterfaceconstant{processors}{processors}
-\setinterfaceconstant{profile}{profile}
-\setinterfaceconstant{properties}{properties}
-\setinterfaceconstant{pubsep}{pubsep}
-\setinterfaceconstant{quotechar}{quotechar}
-\setinterfaceconstant{radius}{polomer}
-\setinterfaceconstant{random}{nahodne}
-\setinterfaceconstant{range}{range}
-\setinterfaceconstant{reduction}{redukce}
-\setinterfaceconstant{ref}{ref}
-\setinterfaceconstant{refcommand}{refcommand}
-\setinterfaceconstant{reference}{odkaz}
-\setinterfaceconstant{referencemethod}{referencemethod}
-\setinterfaceconstant{referenceprefix}{referenceprefix}
-\setinterfaceconstant{referencetext}{referencetext}
-\setinterfaceconstant{referencing}{odkazujici}
-\setinterfaceconstant{region}{region}
-\setinterfaceconstant{regionin}{oblastuvnitr}
-\setinterfaceconstant{regionout}{oblastvne}
-\setinterfaceconstant{register}{register}
-\setinterfaceconstant{regularfeatures}{regularfeatures}
-\setinterfaceconstant{regularfont}{regularfont}
-\setinterfaceconstant{renderingsetup}{renderingsetup}
-\setinterfaceconstant{repeat}{opakovat}
-\setinterfaceconstant{reset}{reset}
-\setinterfaceconstant{resetnumber}{resetnumber}
-\setinterfaceconstant{resolution}{rozliseni}
-\setinterfaceconstant{resources}{resources}
-\setinterfaceconstant{reverse}{reverse}
-\setinterfaceconstant{right}{vpravo}
-\setinterfaceconstant{rightchars}{rightchars}
-\setinterfaceconstant{rightcolor}{barvavpravo}
-\setinterfaceconstant{rightcompoundhyphen}{rightcompoundhyphen}
-\setinterfaceconstant{rightedge}{pravahrana}
-\setinterfaceconstant{rightedgedistance}{vzdalenostpravehrany}
-\setinterfaceconstant{rightframe}{ramecekvpravo}
-\setinterfaceconstant{righthyphen}{righthyphen}
-\setinterfaceconstant{rightmargin}{pravyokraj}
-\setinterfaceconstant{rightmargindistance}{vzdalenostpravehookraje}
-\setinterfaceconstant{rightoffset}{pravyoffset}
-\setinterfaceconstant{rightquotation}{citacevpravo}
-\setinterfaceconstant{rightquote}{citovatvpravo}
-\setinterfaceconstant{rightsample}{rightsample}
-\setinterfaceconstant{rightsentence}{vetavpravo}
-\setinterfaceconstant{rightspeech}{rightspeech}
-\setinterfaceconstant{rightstyle}{stylvpravo}
-\setinterfaceconstant{rightsubsentence}{podvetavpravo}
-\setinterfaceconstant{righttext}{textvpravo}
-\setinterfaceconstant{rightwidth}{sirkavpravo}
-\setinterfaceconstant{rightwords}{rightwords}
-\setinterfaceconstant{roffset}{roffset}
-\setinterfaceconstant{rotation}{rotace}
-\setinterfaceconstant{rule}{linka}
-\setinterfaceconstant{rulecolor}{barvalinky}
-\setinterfaceconstant{rulecommand}{rulecommand}
-\setinterfaceconstant{rulethickness}{tloustkalinky}
-\setinterfaceconstant{samepage}{stejnastranka}
-\setinterfaceconstant{sample}{vzor}
-\setinterfaceconstant{samplesize}{samplesize}
-\setinterfaceconstant{saveinlist}{saveinlist}
-\setinterfaceconstant{scale}{meritko}
-\setinterfaceconstant{scope}{rozsah}
-\setinterfaceconstant{screen}{rastr}
-\setinterfaceconstant{section}{oddil}
-\setinterfaceconstant{sectionblock}{sectionblock}
-\setinterfaceconstant{sectionconversion}{sectionconversion}
-\setinterfaceconstant{sectionconversionset}{sectionconversionset}
-\setinterfaceconstant{sectionnumber}{cislooddilu}
-\setinterfaceconstant{sectionresetset}{sectionresetset}
-\setinterfaceconstant{sectionsegments}{sectionsegments}
-\setinterfaceconstant{sectionseparatorset}{sectionseparatorset}
-\setinterfaceconstant{sectionset}{sectionset}
-\setinterfaceconstant{sectionstarter}{sectionstarter}
-\setinterfaceconstant{sectionstopper}{sectionstopper}
-\setinterfaceconstant{separator}{oddelovac}
-\setinterfaceconstant{separatorcolor}{separatorcolor}
-\setinterfaceconstant{separatorstyle}{separatorstyle}
-\setinterfaceconstant{set}{set}
-\setinterfaceconstant{setups}{setups}
-\setinterfaceconstant{shrink}{shrink}
-\setinterfaceconstant{side}{pocitat}
-\setinterfaceconstant{sidealign}{sidealign}
-\setinterfaceconstant{sidemethod}{sidemethod}
-\setinterfaceconstant{sidespaceafter}{bocnimezeraza}
-\setinterfaceconstant{sidespacebefore}{bocnimezerapred}
-\setinterfaceconstant{sidespaceinbetween}{sidespaceinbetween}
-\setinterfaceconstant{sidethreshold}{sidethreshold}
-\setinterfaceconstant{sign}{znak}
-\setinterfaceconstant{simplecommand}{simplecommand}
-\setinterfaceconstant{size}{velikost}
-\setinterfaceconstant{slantedfeatures}{slantedfeatures}
-\setinterfaceconstant{slantedfont}{slantedfont}
-\setinterfaceconstant{small}{male}
-\setinterfaceconstant{smallcapsfeatures}{smallcapsfeatures}
-\setinterfaceconstant{smallcapsfont}{smallcapsfont}
-\setinterfaceconstant{solution}{solution}
-\setinterfaceconstant{sort}{sort}
-\setinterfaceconstant{sorttype}{sorttype}
-\setinterfaceconstant{source}{zdroj}
-\setinterfaceconstant{space}{mezera}
-\setinterfaceconstant{spaceafter}{mezeraza}
-\setinterfaceconstant{spaceafterside}{spaceafterside}
-\setinterfaceconstant{spacebefore}{mezerapred}
-\setinterfaceconstant{spacebeforeside}{spacebeforeside}
-\setinterfaceconstant{spaceinbetween}{spaceinbetween}
-\setinterfaceconstant{spacing}{mezerovani}
-\setinterfaceconstant{specification}{specification}
-\setinterfaceconstant{split}{split}
-\setinterfaceconstant{splitcolor}{splitcolor}
-\setinterfaceconstant{splitmethod}{splitmethod}
-\setinterfaceconstant{splitoffset}{splitoffset}
-\setinterfaceconstant{spot}{spot}
-\setinterfaceconstant{stack}{stack}
-\setinterfaceconstant{stackname}{stackname}
-\setinterfaceconstant{start}{start}
-\setinterfaceconstant{starter}{starter}
-\setinterfaceconstant{state}{status}
-\setinterfaceconstant{step}{krok}
-\setinterfaceconstant{stop}{stop}
-\setinterfaceconstant{stopper}{predel}
-\setinterfaceconstant{stretch}{natahnout}
-\setinterfaceconstant{strip}{strip}
-\setinterfaceconstant{strut}{strut}
-\setinterfaceconstant{style}{pismeno}
-\setinterfaceconstant{stylealternative}{stylealternative}
-\setinterfaceconstant{sub}{pod}
-\setinterfaceconstant{subtitle}{podtitulek}
-\setinterfaceconstant{suffix}{suffix}
-\setinterfaceconstant{suffixseparator}{suffixseparator}
-\setinterfaceconstant{suffixstopper}{suffixstopper}
-\setinterfaceconstant{surnamefirstnamesep}{surnamefirstnamesep}
-\setinterfaceconstant{surnameinitialsep}{surnameinitialsep}
-\setinterfaceconstant{surnamesep}{surnamesep}
-\setinterfaceconstant{svgstyle}{svgstyle}
-\setinterfaceconstant{sx}{sx}
-\setinterfaceconstant{sy}{sy}
-\setinterfaceconstant{symalign}{symzarovnani}
-\setinterfaceconstant{symbol}{symbol}
-\setinterfaceconstant{symbolcommand}{symbolcommand}
-\setinterfaceconstant{symbolset}{sadasymbolu}
-\setinterfaceconstant{symcolor}{barvasymbolu}
-\setinterfaceconstant{symstyle}{stylsymboly}
-\setinterfaceconstant{synonym}{synonymum}
-\setinterfaceconstant{synonymcolor}{barvasynonyma}
-\setinterfaceconstant{synonymcommand}{synonymcommand}
-\setinterfaceconstant{synonymstyle}{stylsynonyma}
-\setinterfaceconstant{tab}{tab}
-\setinterfaceconstant{text}{text}
-\setinterfaceconstant{textalign}{textalign}
-\setinterfaceconstant{textcolor}{barvatextu}
-\setinterfaceconstant{textcommand}{textovyprikaz}
-\setinterfaceconstant{textdistance}{textdistance}
-\setinterfaceconstant{textheight}{vyskatextu}
-\setinterfaceconstant{textlayer}{textlayer}
-\setinterfaceconstant{textmargin}{textmargin}
-\setinterfaceconstant{textmethod}{textmethod}
-\setinterfaceconstant{textseparator}{oddelovactextu}
-\setinterfaceconstant{textsize}{velikosttextu}
-\setinterfaceconstant{textstate}{statustextu}
-\setinterfaceconstant{textstyle}{styltextu}
-\setinterfaceconstant{textwidth}{sirkatextu}
-\setinterfaceconstant{threshold}{threshold}
-\setinterfaceconstant{time}{time}
-\setinterfaceconstant{title}{titul}
-\setinterfaceconstant{titlecolor}{barvatitulek}
-\setinterfaceconstant{titlecommand}{titlecommand}
-\setinterfaceconstant{titledistance}{vzdalenosttitulek}
-\setinterfaceconstant{titleleft}{titleleft}
-\setinterfaceconstant{titleright}{titleright}
-\setinterfaceconstant{titlestrut}{titlestrut}
-\setinterfaceconstant{titlestyle}{styltitulek}
-\setinterfaceconstant{to}{na}
-\setinterfaceconstant{toffset}{toffset}
-\setinterfaceconstant{tolerance}{tolerance}
-\setinterfaceconstant{top}{vrsek}
-\setinterfaceconstant{topcommand}{topcommand}
-\setinterfaceconstant{topdistance}{vzdalenostvrsku}
-\setinterfaceconstant{topframe}{rameceknahore}
-\setinterfaceconstant{topoffset}{offsetvrsku}
-\setinterfaceconstant{topspace}{svrchnimezera}
-\setinterfaceconstant{topstate}{statusvrsku}
-\setinterfaceconstant{totalnumber}{totalnumber}
-\setinterfaceconstant{transform}{transform}
-\setinterfaceconstant{translate}{translate}
-\setinterfaceconstant{trimoffset}{trimoffset}
-\setinterfaceconstant{type}{typ}
-\setinterfaceconstant{unit}{jednotka}
-\setinterfaceconstant{unknownreference}{neznamyodkaz}
-\setinterfaceconstant{up}{up}
-\setinterfaceconstant{urlalternative}{urlalternativa}
-\setinterfaceconstant{urlspace}{prostorurl}
-\setinterfaceconstant{userpassword}{userpassword}
-\setinterfaceconstant{validate}{validovat}
-\setinterfaceconstant{values}{values}
-\setinterfaceconstant{vcommand}{vprikaz}
-\setinterfaceconstant{vcompact}{vcompact}
-\setinterfaceconstant{vector}{vector}
-\setinterfaceconstant{veroffset}{offsethlavicky}
-\setinterfaceconstant{vertical}{vertikalne}
-\setinterfaceconstant{vfactor}{vfaktor}
-\setinterfaceconstant{vfil}{vfil}
-\setinterfaceconstant{viewerprefix}{viewerprefix}
-\setinterfaceconstant{voffset}{voffset}
-\setinterfaceconstant{vonsep}{vonsep}
-\setinterfaceconstant{way}{zpusob}
-\setinterfaceconstant{wfactor}{sfaktor}
-\setinterfaceconstant{white}{bily}
-\setinterfaceconstant{width}{sirka}
-\setinterfaceconstant{words}{words}
-\setinterfaceconstant{xanchor}{xanchor}
-\setinterfaceconstant{xfactor}{xfaktor}
-\setinterfaceconstant{xhtml}{xhtml}
-\setinterfaceconstant{xmax}{xmax}
-\setinterfaceconstant{xmlsetup}{xmlsetup}
-\setinterfaceconstant{xoffset}{xoffset}
-\setinterfaceconstant{xscale}{xmeritko}
-\setinterfaceconstant{xstep}{xkrok}
-\setinterfaceconstant{yanchor}{yanchor}
-\setinterfaceconstant{yfactor}{yfaktor}
-\setinterfaceconstant{ymax}{ymax}
-\setinterfaceconstant{yoffset}{yoffset}
-\setinterfaceconstant{yscale}{ymeritko}
-\setinterfaceconstant{ystep}{ykrok}
-% definitions for interface elements for language cs
-%
-\setinterfaceelement{answerlines}{answerlines}
-\setinterfaceelement{answerspace}{answerspace}
-\setinterfaceelement{begin}{zacatek}
-\setinterfaceelement{complete}{uplny}
-\setinterfaceelement{coupled}{propojene}
-\setinterfaceelement{currentlocal}{aktualnelokalni}
-\setinterfaceelement{end}{konec}
-\setinterfaceelement{endsetup}{}
-\setinterfaceelement{get}{ziskat}
-\setinterfaceelement{increment}{zvysit}
-\setinterfaceelement{list}{seznam}
-\setinterfaceelement{listof}{seznam}
-\setinterfaceelement{load}{nacist}
-\setinterfaceelement{local}{lokalne}
-\setinterfaceelement{makeup}{zlom}
-\setinterfaceelement{next}{dalsi}
-\setinterfaceelement{place}{umisti}
-\setinterfaceelement{previous}{predchozi}
-\setinterfaceelement{previouslocal}{predchozilokalni}
-\setinterfaceelement{reserve}{rezervovat}
-\setinterfaceelement{see}{viz}
-\setinterfaceelement{setup}{nastaveni}
-\setinterfaceelement{start}{start}
-\setinterfaceelement{stop}{stop}
-\setinterfaceelement{text}{text}
-\setinterfaceelement{type}{opis}
-% definitions for interface commands for language cs
-%
-\setinterfacecommand{Character}{Znak}
-\setinterfacecommand{Characters}{Znaky}
-\setinterfacecommand{MONTH}{MESIC}
-\setinterfacecommand{Numbers}{Cisla}
-\setinterfacecommand{Romannumerals}{Rimskecislice}
-\setinterfacecommand{SmallCapped}{Kap}
-\setinterfacecommand{SmallCaps}{Kaps}
-\setinterfacecommand{WEEKDAY}{VSEDNIDEN}
-\setinterfacecommand{WORD}{SLOVO}
-\setinterfacecommand{WORDS}{SLOVA}
-\setinterfacecommand{Word}{Slovo}
-\setinterfacecommand{Words}{Slova}
-\setinterfacecommand{about}{oref}
-\setinterfacecommand{adaptfontfeature}{adaptfontfeature}
-\setinterfacecommand{adaptlayout}{prizpusobvzhled}
-\setinterfacecommand{addfeature}{addfeature}
-\setinterfacecommand{alignbottom}{alignbottom}
-\setinterfacecommand{aligned}{aligned}
-\setinterfacecommand{alignedbox}{alignedbox}
-\setinterfacecommand{alignedline}{alignedline}
-\setinterfacecommand{alignhere}{alignhere}
-\setinterfacecommand{alignment}{alignment}
-\setinterfacecommand{alignmentcharacter}{alignmentcharacter}
-\setinterfacecommand{applytocharacters}{applytocharacters}
-\setinterfacecommand{applytofirstcharacter}{applytofirstcharacter}
-\setinterfacecommand{arg}{arg}
-\setinterfacecommand{at}{pref}
-\setinterfacecommand{atleftmargin}{atleftmargin}
-\setinterfacecommand{atpage}{nastrane}
-\setinterfacecommand{atrightmargin}{atrightmargin}
-\setinterfacecommand{background}{pozadi}
-\setinterfacecommand{backspace}{odsazenizleva}
-\setinterfacecommand{blackrule}{cernalinka}
-\setinterfacecommand{blackrules}{cernelinky}
-\setinterfacecommand{blank}{preskoc}
-\setinterfacecommand{bookmark}{zalozka}
-\setinterfacecommand{bottombox}{bottombox}
-\setinterfacecommand{bottomdistance}{vzdalenostspodku}
-\setinterfacecommand{bottomheight}{vyskaspodku}
-\setinterfacecommand{bottomleftbox}{bottomleftbox}
-\setinterfacecommand{bottomrightbox}{bottomrightbox}
-\setinterfacecommand{bottomspace}{bottomspace}
-\setinterfacecommand{buildtextbottomdot}{buildtextbottomdot}
-\setinterfacecommand{but}{spodek}
-\setinterfacecommand{button}{tlacitko}
-\setinterfacecommand{bypassblocks}{bypassblocks}
-\setinterfacecommand{character}{znak}
-\setinterfacecommand{characters}{znaky}
-\setinterfacecommand{chem}{chem}
-\setinterfacecommand{clip}{orez}
-\setinterfacecommand{clonefield}{klonujpole}
-\setinterfacecommand{color}{barva}
-\setinterfacecommand{colorbar}{barevnalista}
-\setinterfacecommand{colorvalue}{hodnotabarvy}
-\setinterfacecommand{column}{sloupec}
-\setinterfacecommand{comparecolorgroup}{porovnejskupinubarev}
-\setinterfacecommand{comparepalet}{porovnejpaletu}
-\setinterfacecommand{completepagenumber}{completepagenumber}
-\setinterfacecommand{completeregister}{completeregister}
-\setinterfacecommand{component}{komponenta}
-\setinterfacecommand{convertnumber}{konvertujcislo}
-\setinterfacecommand{copyfield}{kopirujpole}
-\setinterfacecommand{correctwhitespace}{korekcebilehomista}
-\setinterfacecommand{coupledocument}{propojenydokument}
-\setinterfacecommand{couplemarking}{propojeneznaceni}
-\setinterfacecommand{couplepage}{parovastrana}
-\setinterfacecommand{couplepaper}{dvoustrannypapir}
-\setinterfacecommand{coupleregister}{propojenyrejstrik}
-\setinterfacecommand{crlf}{crlf}
-\setinterfacecommand{currentdate}{aktualnidatum}
-\setinterfacecommand{currentheadnumber}{aktualnicislonadpisu}
-\setinterfacecommand{cutspace}{cutspace}
-\setinterfacecommand{date}{datum}
-\setinterfacecommand{decouplemarking}{rozpojeneznaceni}
-\setinterfacecommand{decrementnumber}{decrementnumber}
-\setinterfacecommand{define}{definuj}
-\setinterfacecommand{defineaccent}{definujakcent}
-\setinterfacecommand{defineblank}{definujpreskok}
-\setinterfacecommand{defineblock}{definujblok}
-\setinterfacecommand{definebodyfont}{definujzakladnifont}
-\setinterfacecommand{definebodyfontenvironment}{definujprostredizakladnihofontu}
-\setinterfacecommand{definebodyfontswitch}{definebodyfontswitch}
-\setinterfacecommand{definebuffer}{definujbuffer}
-\setinterfacecommand{definecharacter}{definujznak}
-\setinterfacecommand{definecharacterkerning}{definecharacterkerning}
-\setinterfacecommand{definecharacterspacing}{definecharacterspacing}
-\setinterfacecommand{definecolor}{definujbarvu}
-\setinterfacecommand{definecolorgroup}{definujskupinubarev}
-\setinterfacecommand{definecolumnbreak}{definecolumnbreak}
-\setinterfacecommand{definecolumnset}{definecolumnset}
-\setinterfacecommand{definecombination}{definecombination}
-\setinterfacecommand{definecombinedlist}{definujkombinovanyseznam}
-\setinterfacecommand{definecommand}{definujprikaz}
-\setinterfacecommand{defineconversion}{definujkonverzi}
-\setinterfacecommand{definedescription}{definujpopis}
-\setinterfacecommand{definedfont}{definedfont}
-\setinterfacecommand{defineenumeration}{definujvycet}
-\setinterfacecommand{definefallbackfamily}{definefallbackfamily}
-\setinterfacecommand{definefield}{definujpole}
-\setinterfacecommand{definefieldstack}{definujzasobnikpoli}
-\setinterfacecommand{definefiguresymbol}{definujobrazeksymbol}
-\setinterfacecommand{definefilefallback}{definefilefallback}
-\setinterfacecommand{definefirstline}{definefirstline}
-\setinterfacecommand{definefloat}{definujplvouciobjekt}
-\setinterfacecommand{definefont}{definujfont}
-\setinterfacecommand{definefontalternative}{definefontalternative}
-\setinterfacecommand{definefontfallback}{definefontfallback}
-\setinterfacecommand{definefontfamily}{definefontfamily}
-\setinterfacecommand{definefontfamilypreset}{definefontfamilypreset}
-\setinterfacecommand{definefontfeature}{definefontfeature}
-\setinterfacecommand{definefontfile}{definefontfile}
-\setinterfacecommand{definefontsize}{definefontsize}
-\setinterfacecommand{definefontsolution}{definefontsolution}
-\setinterfacecommand{definefontstyle}{definujstylfontu}
-\setinterfacecommand{definefontsynonym}{definujsynonumumfontu}
-\setinterfacecommand{defineframed}{definujoramovani}
-\setinterfacecommand{defineframedtext}{definujoramovanytext}
-\setinterfacecommand{definefrozenfont}{definefrozenfont}
-\setinterfacecommand{definehbox}{definujhbox}
-\setinterfacecommand{definehead}{definujnadpis}
-\setinterfacecommand{definehyphenationfeatures}{definehyphenationfeatures}
-\setinterfacecommand{defineindentedtext}{defineindentedtext}
-\setinterfacecommand{defineinmargin}{defineinmargin}
-\setinterfacecommand{defineinteractionmenu}{definujinterakcnimenu}
-\setinterfacecommand{defineitemgroup}{defineitemgroup}
-\setinterfacecommand{defineitems}{defineitems}
-\setinterfacecommand{definelabel}{definujpopisek}
-\setinterfacecommand{definelayer}{definelayer}
-\setinterfacecommand{definelayout}{definelayout}
-\setinterfacecommand{definelinenote}{definelinenote}
-\setinterfacecommand{definelist}{definujseznam}
-\setinterfacecommand{definelogo}{definujlogo}
-\setinterfacecommand{definemainfield}{definujhlavnipole}
-\setinterfacecommand{definemakeup}{definujupravu}
-\setinterfacecommand{definemarking}{definujznaceni}
-\setinterfacecommand{definemathalignment}{definemathalignment}
-\setinterfacecommand{definemode}{definemode}
-\setinterfacecommand{definenamedcolor}{definenamedcolor}
-\setinterfacecommand{definenote}{definenote}
-\setinterfacecommand{defineoutput}{definujvystup}
-\setinterfacecommand{defineoverlay}{definujprekryv}
-\setinterfacecommand{definepagebreak}{definepagebreak}
-\setinterfacecommand{definepalet}{definujpaletu}
-\setinterfacecommand{definepapersize}{definujvelikostpapiru}
-\setinterfacecommand{defineparagraphs}{definujodstavce}
-\setinterfacecommand{defineperiodkerning}{defineperiodkerning}
-\setinterfacecommand{defineplacement}{defineplacement}
-\setinterfacecommand{defineprofile}{definujprofil}
-\setinterfacecommand{defineprogram}{definujprogram}
-\setinterfacecommand{definerawfont}{definerawfont}
-\setinterfacecommand{definereference}{definujodkaz}
-\setinterfacecommand{definereferenceformat}{definujformatodkazu}
-\setinterfacecommand{definereferencelist}{definujseznamodkazu}
-\setinterfacecommand{defineregister}{definujrejstrik}
-\setinterfacecommand{definerule}{definerule}
-\setinterfacecommand{definesection}{definujsekci}
-\setinterfacecommand{definesectionblock}{definujbloksekce}
-\setinterfacecommand{definesorting}{definujtrideni}
-\setinterfacecommand{definestartstop}{definujstartstop}
-\setinterfacecommand{definestyle}{definujstyl}
-\setinterfacecommand{definesubfield}{definujpodpole}
-\setinterfacecommand{definesymbol}{definujsymbol}
-\setinterfacecommand{definesynonyms}{definujsynonyma}
-\setinterfacecommand{definetabletemplate}{definujsablonutabulky}
-\setinterfacecommand{definetabulate}{definujtabelaci}
-\setinterfacecommand{definetext}{definujtext}
-\setinterfacecommand{definetextbackground}{definetextbackground}
-\setinterfacecommand{definetextnote}{definetextnote}
-\setinterfacecommand{definetextposition}{definetextposition}
-\setinterfacecommand{definetextvariable}{definetextvariable}
-\setinterfacecommand{definetype}{definetype}
-\setinterfacecommand{definetyping}{definujopis}
-\setinterfacecommand{defineversion}{definujverzi}
-\setinterfacecommand{depthspanningtext}{depthspanningtext}
-\setinterfacecommand{determineheadnumber}{stanovcislonadpisu}
-\setinterfacecommand{determinelistcharacteristics}{stanovcharakteristickuseznamu}
-\setinterfacecommand{determineregistercharacteristics}{urcicharakteristikurejstriku}
-\setinterfacecommand{dimension}{rozmer}
-\setinterfacecommand{disableinteractionmenu}{zablokujinterakcnimenu}
-\setinterfacecommand{disablemode}{disablemode}
-\setinterfacecommand{doaddfeature}{doaddfeature}
-\setinterfacecommand{domicile}{bydliste}
-\setinterfacecommand{dontconvertfont}{dontconvertfont}
-\setinterfacecommand{donttest}{zadnytest}
-\setinterfacecommand{edgedistance}{vzdalenostokraje}
-\setinterfacecommand{edgewidth}{sirkaokraje}
-\setinterfacecommand{emphasisboldface}{emphasisboldface}
-\setinterfacecommand{emptylines}{emptylines}
-\setinterfacecommand{enablemode}{enablemode}
-\setinterfacecommand{environment}{prostredi}
-\setinterfacecommand{externalfigure}{externiobraz}
-\setinterfacecommand{fact}{fakt}
-\setinterfacecommand{fastswitchtobodyfont}{fastswitchtobodyfont}
-\setinterfacecommand{feature}{feature}
-\setinterfacecommand{field}{pole}
-\setinterfacecommand{fieldstack}{zasobnikpoli}
-\setinterfacecommand{fillinfield}{vyplnovepole}
-\setinterfacecommand{fillinline}{vyplnovyradek}
-\setinterfacecommand{fillinrules}{vyplnovelinky}
-\setinterfacecommand{fillintext}{vyplnenytext}
-\setinterfacecommand{firstcharacter}{firstcharacter}
-\setinterfacecommand{fitfield}{prizpusobivepole}
-\setinterfacecommand{fittopbaselinegrid}{fittopbaselinegrid}
-\setinterfacecommand{fixedspace}{tvrdamezera}
-\setinterfacecommand{fixedspaces}{tvrdemezery}
-\setinterfacecommand{flushnotes}{flushnotes}
-\setinterfacecommand{followprofile}{dodrzujprofil}
-\setinterfacecommand{followprofileversion}{dodrzujverziprofilu}
-\setinterfacecommand{followversion}{dodrzujverzi}
-\setinterfacecommand{footerdistance}{vzdalenostupati}
-\setinterfacecommand{footerheight}{vyskaupati}
-\setinterfacecommand{footnote}{poznamkapodcarou}
-\setinterfacecommand{footnotetext}{footnotetext}
-\setinterfacecommand{forceblocks}{forceblocks}
-\setinterfacecommand{forcecharacterstripping}{forcecharacterstripping}
-\setinterfacecommand{formulanumber}{cislorovnice}
-\setinterfacecommand{fraction}{zlomek}
-\setinterfacecommand{framed}{oramovani}
-\setinterfacecommand{from}{zref}
-\setinterfacecommand{fromlinenote}{fromlinenote}
-\setinterfacecommand{getbuffer}{ziskejbuffer}
-\setinterfacecommand{getfirstcharacter}{getfirstcharacter}
-\setinterfacecommand{getmarking}{ziskejznaceni}
-\setinterfacecommand{getnumber}{getnumber}
-\setinterfacecommand{globaldisablemode}{globaldisablemode}
-\setinterfacecommand{globalenablemode}{globalenablemode}
-\setinterfacecommand{globalpreventmode}{globalpreventmode}
-\setinterfacecommand{godown}{jdidolu}
-\setinterfacecommand{goto}{jdina}
-\setinterfacecommand{gotobox}{jdinabox}
-\setinterfacecommand{gotopage}{jdinastranu}
-\setinterfacecommand{graycolor}{sedabarva}
-\setinterfacecommand{greyvalue}{hodnotasedi}
-\setinterfacecommand{grid}{mrizka}
-\setinterfacecommand{hairline}{vlasovalinka}
-\setinterfacecommand{head}{nadpis}
-\setinterfacecommand{headerdistance}{vzdalenostzahlavi}
-\setinterfacecommand{headerheight}{vyskazahlavi}
-\setinterfacecommand{headlevel}{hlavniuroven}
-\setinterfacecommand{headnumber}{cislonadpisu}
-\setinterfacecommand{headsym}{headsym}
-\setinterfacecommand{headtext}{texthlavicky}
-\setinterfacecommand{heightspanningtext}{heightspanningtext}
-\setinterfacecommand{hideblocks}{schovejbloky}
-\setinterfacecommand{high}{vysoky}
-\setinterfacecommand{hl}{hl}
-\setinterfacecommand{immediatebetweenlist}{immediatebetweenlist}
-\setinterfacecommand{immediatetolist}{immediatetolist}
-\setinterfacecommand{in}{tref}
-\setinterfacecommand{incrementnumber}{zvysujicicislo}
-\setinterfacecommand{indenting}{odsazovani}
-\setinterfacecommand{inframed}{zaramovani}
-\setinterfacecommand{infull}{plnezneni}
-\setinterfacecommand{ininner}{ininner}
-\setinterfacecommand{inleft}{vlevo}
-\setinterfacecommand{inleftedge}{nalevo}
-\setinterfacecommand{inleftmargin}{nalevyokraj}
-\setinterfacecommand{inline}{vradku}
-\setinterfacecommand{inmargin}{naokraj}
-\setinterfacecommand{inmframed}{mazaramovani}
-\setinterfacecommand{inneredgedistance}{inneredgedistance}
-\setinterfacecommand{inneredgewidth}{inneredgewidth}
-\setinterfacecommand{innermargindistance}{innermargindistance}
-\setinterfacecommand{innermarginwidth}{innermarginwidth}
-\setinterfacecommand{inothermargin}{nadruhyokraj}
-\setinterfacecommand{inouter}{inouter}
-\setinterfacecommand{inright}{vpravo}
-\setinterfacecommand{inrightedge}{napravo}
-\setinterfacecommand{inrightmargin}{napravyokraj}
-\setinterfacecommand{installlanguage}{instalacejazyka}
-\setinterfacecommand{interactionbar}{interakcnilista}
-\setinterfacecommand{interactionbuttons}{interakcnitlacitka}
-\setinterfacecommand{interactionmenu}{interaktivnimenu}
-\setinterfacecommand{item}{polozka}
-\setinterfacecommand{itemgroup}{itemgroup}
-\setinterfacecommand{items}{polozky}
-\setinterfacecommand{itemtag}{itemtag}
-\setinterfacecommand{its}{pol}
-\setinterfacecommand{keepblocks}{zachovejbloky}
-\setinterfacecommand{kerncharacters}{kerncharacters}
-\setinterfacecommand{label}{poppisek}
-\setinterfacecommand{labels}{popisky}
-\setinterfacecommand{labeltext}{textpopisku}
-\setinterfacecommand{language}{jazyk}
-\setinterfacecommand{languageCharacters}{languageCharacters}
-\setinterfacecommand{languagecharacters}{languagecharacters}
-\setinterfacecommand{leftaligned}{zarovnanovlevo}
-\setinterfacecommand{leftbottombox}{leftbottombox}
-\setinterfacecommand{leftedgedistance}{vzdalenostlevehookraje}
-\setinterfacecommand{leftedgewidth}{sirkalevehookraje}
-\setinterfacecommand{leftline}{leftline}
-\setinterfacecommand{leftmargindistance}{vzdalenostlevemarginalie}
-\setinterfacecommand{leftmarginwidth}{sirkalevemarginalie}
-\setinterfacecommand{leg}{leg}
-\setinterfacecommand{linecorrection}{linecorrection}
-\setinterfacecommand{linenote}{linenote}
-\setinterfacecommand{linespanningtext}{linespanningtext}
-\setinterfacecommand{linewidth}{tloustkacary}
-\setinterfacecommand{listheight}{vyskaseznamu}
-\setinterfacecommand{listlength}{delkaseznamu}
-\setinterfacecommand{listsymbol}{listsymbol}
-\setinterfacecommand{listwidth}{sirkaseznamu}
-\setinterfacecommand{loadfontgoodies}{loadfontgoodies}
-\setinterfacecommand{localfootnotes}{localfootnotes}
-\setinterfacecommand{localnotes}{localnotes}
-\setinterfacecommand{logfields}{zaznamovepole}
-\setinterfacecommand{lohi}{nivy}
-\setinterfacecommand{low}{nizky}
-\setinterfacecommand{macroname}{jmeno}
-\setinterfacecommand{mainlanguage}{hlavnijazyk}
-\setinterfacecommand{makeupheight}{vyskasazby}
-\setinterfacecommand{makeupwidth}{sirkasazby}
-\setinterfacecommand{mar}{okr}
-\setinterfacecommand{marginblock}{marginblock}
-\setinterfacecommand{margindistance}{vzdalenostmarginalie}
-\setinterfacecommand{marginrule}{marginalnilinka}
-\setinterfacecommand{margintext}{marginalnitext}
-\setinterfacecommand{margintitle}{marginalninadpis}
-\setinterfacecommand{marginwidth}{sirkamarginalie}
-\setinterfacecommand{marginword}{marginalnislovo}
-\setinterfacecommand{marking}{znaceni}
-\setinterfacecommand{markversion}{oznacverzi}
-\setinterfacecommand{mathematics}{matematika}
-\setinterfacecommand{menubutton}{tlacitkomenu}
-\setinterfacecommand{mframed}{maoramovani}
-\setinterfacecommand{midaligned}{zarovnanonastred}
-\setinterfacecommand{mirror}{zrcadlit}
-\setinterfacecommand{month}{mesic}
-\setinterfacecommand{moveformula}{moveformula}
-\setinterfacecommand{moveongrid}{premistinamrizku}
-\setinterfacecommand{movesidefloat}{movesidefloat}
-\setinterfacecommand{navigating}{navigating}
-\setinterfacecommand{nodimension}{zadnyrozmer}
-\setinterfacecommand{noheaderandfooterlines}{zadnezahlaviaupati}
-\setinterfacecommand{noindenting}{zadneodsazovani}
-\setinterfacecommand{noitem}{noitem}
-\setinterfacecommand{nolist}{zadnyseznam}
-\setinterfacecommand{nomarking}{zadneznaceni}
-\setinterfacecommand{nomoreblocks}{zadnedalsibloky}
-\setinterfacecommand{nomorefiles}{zadnedalsisoubory}
-\setinterfacecommand{nop}{nop}
-\setinterfacecommand{nospace}{zadnamezera}
-\setinterfacecommand{note}{poznamka}
-\setinterfacecommand{notesymbol}{notesymbol}
-\setinterfacecommand{notopandbottomlines}{zadnehorniadolniradky}
-\setinterfacecommand{notsmallcapped}{nokap}
-\setinterfacecommand{nowhitespace}{zadnebilemisto}
-\setinterfacecommand{numberofsubpages}{numberofsubpages}
-\setinterfacecommand{numbers}{cisla}
-\setinterfacecommand{outeredgedistance}{outeredgedistance}
-\setinterfacecommand{outeredgewidth}{outeredgewidth}
-\setinterfacecommand{outermargindistance}{outermargindistance}
-\setinterfacecommand{outermarginwidth}{outermarginwidth}
-\setinterfacecommand{packed}{zhustene}
-\setinterfacecommand{page}{strana}
-\setinterfacecommand{pagebreak}{pagebreak}
-\setinterfacecommand{pagedepth}{pagedepth}
-\setinterfacecommand{pagenumber}{cislostrany}
-\setinterfacecommand{pageoffset}{pageoffset}
-\setinterfacecommand{pagereference}{odkaznastranu}
-\setinterfacecommand{paperheight}{vyskapapiru}
-\setinterfacecommand{paperwidth}{sirkapapiru}
-\setinterfacecommand{periods}{tecky}
-\setinterfacecommand{placebookmarks}{umistizalozky}
-\setinterfacecommand{placecombinedlist}{umistikombinovanyseznam}
-\setinterfacecommand{placefloat}{placefloat}
-\setinterfacecommand{placefootnotes}{umistipoznamkypodcarou}
-\setinterfacecommand{placeformula}{umistirovnici}
-\setinterfacecommand{placeheadnumber}{placeheadnumber}
-\setinterfacecommand{placeheadtext}{placeheadtext}
-\setinterfacecommand{placelegend}{umistilegendu}
-\setinterfacecommand{placelist}{umistiseznam}
-\setinterfacecommand{placelistofsynonyms}{placelistofsynonyms}
-\setinterfacecommand{placelocalfootnotes}{umistilokalnipoznamkypodcarou}
-\setinterfacecommand{placelocalnotes}{placelocalnotes}
-\setinterfacecommand{placelogos}{umistiloga}
-\setinterfacecommand{placenamedfloat}{placenamedfloat}
-\setinterfacecommand{placenotes}{placenotes}
-\setinterfacecommand{placeongrid}{umistinamrizku}
-\setinterfacecommand{placeontopofeachother}{umistinadsebe}
-\setinterfacecommand{placepagenumber}{placepagenumber}
-\setinterfacecommand{placerawlist}{placerawlist}
-\setinterfacecommand{placereferencelist}{placereferencelist}
-\setinterfacecommand{placeregister}{umistirejstrik}
-\setinterfacecommand{placerule}{placerule}
-\setinterfacecommand{placesidebyside}{umistivedlesebe}
-\setinterfacecommand{placesubformula}{umistipodrovnici}
-\setinterfacecommand{placetextvariable}{placetextvariable}
-\setinterfacecommand{position}{pozice}
-\setinterfacecommand{positiontext}{positiontext}
-\setinterfacecommand{postponenotes}{postponenotes}
-\setinterfacecommand{postponingnotes}{postponingnotes}
-\setinterfacecommand{predefinedfont}{predefinedfont}
-\setinterfacecommand{predefinefont}{predefinefont}
-\setinterfacecommand{presetdocument}{presetdocument}
-\setinterfacecommand{prettyprintbuffer}{prettyprintbuffer}
-\setinterfacecommand{preventmode}{preventmode}
-\setinterfacecommand{printpaperheight}{vyskatiskpapiru}
-\setinterfacecommand{printpaperwidth}{sirkatiskpapiru}
-\setinterfacecommand{processblocks}{zpracujbloky}
-\setinterfacecommand{processbodyfontenvironmentlist}{processbodyfontenvironmentlist}
-\setinterfacecommand{processpage}{zpracujstranu}
-\setinterfacecommand{product}{produkt}
-\setinterfacecommand{program}{program}
-\setinterfacecommand{project}{projekt}
-\setinterfacecommand{publication}{publikace}
-\setinterfacecommand{quotation}{citace}
-\setinterfacecommand{quote}{citovat}
-\setinterfacecommand{ran}{ran}
-\setinterfacecommand{redo}{opakovat}
-\setinterfacecommand{redoconvertfont}{redoconvertfont}
-\setinterfacecommand{ref}{ref}
-\setinterfacecommand{reference}{odkaz}
-\setinterfacecommand{referral}{odkaz}
-\setinterfacecommand{referraldate}{odkaznadatum}
-\setinterfacecommand{referring}{odkazujici}
-\setinterfacecommand{registerfontclass}{registerfontclass}
-\setinterfacecommand{registerhyphenationexception}{registerhyphenationexception}
-\setinterfacecommand{registerhyphenationpattern}{registerhyphenationpattern}
-\setinterfacecommand{remark}{oznaceni}
-\setinterfacecommand{replacefeature}{replacefeature}
-\setinterfacecommand{reset}{reset}
-\setinterfacecommand{resetandaddfeature}{resetandaddfeature}
-\setinterfacecommand{resetcharacteralign}{resetcharacteralign}
-\setinterfacecommand{resetcharacterkerning}{resetcharacterkerning}
-\setinterfacecommand{resetcharacterspacing}{resetcharacterspacing}
-\setinterfacecommand{resetcharacterstripping}{resetcharacterstripping}
-\setinterfacecommand{resetfeature}{resetfeature}
-\setinterfacecommand{resetfontcolorsheme}{resetfontcolorsheme}
-\setinterfacecommand{resetfontfallback}{resetfontfallback}
-\setinterfacecommand{resetfontsolution}{resetfontsolution}
-\setinterfacecommand{resethyphenationfeatures}{resethyphenationfeatures}
-\setinterfacecommand{resetlocalfloats}{resetlocalfloats}
-\setinterfacecommand{resetmarking}{resetznaceni}
-\setinterfacecommand{resetmode}{resetmode}
-\setinterfacecommand{resetnumber}{resetnumber}
-\setinterfacecommand{resetpath}{resetpath}
-\setinterfacecommand{resetperiodkerning}{resetperiodkerning}
-\setinterfacecommand{resetsystemmode}{resetsystemmode}
-\setinterfacecommand{resettextcontent}{resettextcontent}
-\setinterfacecommand{resetvisualizers}{resetvisualizers}
-\setinterfacecommand{restoreglobalbodyfont}{restoreglobalbodyfont}
-\setinterfacecommand{retestfeature}{retestfeature}
-\setinterfacecommand{revivefeature}{revivefeature}
-\setinterfacecommand{rightaligned}{zarovnanovpravo}
-\setinterfacecommand{rightbottombox}{rightbottombox}
-\setinterfacecommand{rightedgedistance}{vzdalenostpravehookraje}
-\setinterfacecommand{rightedgewidth}{sirkapravehookraje}
-\setinterfacecommand{rightline}{rightline}
-\setinterfacecommand{rightmargindistance}{vzdalenostpravemarginalie}
-\setinterfacecommand{rightmarginwidth}{sirkapravemarginalie}
-\setinterfacecommand{romannumerals}{rimskecislice}
-\setinterfacecommand{rotate}{otocit}
-\setinterfacecommand{savebuffer}{savebuffer}
-\setinterfacecommand{scale}{meritko}
-\setinterfacecommand{screen}{obrazovka}
-\setinterfacecommand{selectblocks}{vyberbloky}
-\setinterfacecommand{selectpaper}{vyberpapir}
-\setinterfacecommand{selectversion}{vyberverzi}
-\setinterfacecommand{setbigbodyfont}{setbigbodyfont}
-\setinterfacecommand{setcharacteralign}{setcharacteralign}
-\setinterfacecommand{setcharacteraligndetail}{setcharacteraligndetail}
-\setinterfacecommand{setcharactercasing}{setcharactercasing}
-\setinterfacecommand{setcharactercleaning}{setcharactercleaning}
-\setinterfacecommand{setcharacterkerning}{setcharacterkerning}
-\setinterfacecommand{setcharacterspacing}{setcharacterspacing}
-\setinterfacecommand{setcharacterstripping}{setcharacterstripping}
-\setinterfacecommand{setcurrentfontclass}{setcurrentfontclass}
-\setinterfacecommand{setfirstline}{setfirstline}
-\setinterfacecommand{setfirstpasscharacteralign}{setfirstpasscharacteralign}
-\setinterfacecommand{setfont}{setfont}
-\setinterfacecommand{setfontcolorsheme}{setfontcolorsheme}
-\setinterfacecommand{setfontfeature}{setfontfeature}
-\setinterfacecommand{setfontsolution}{setfontsolution}
-\setinterfacecommand{setfontstrut}{setfontstrut}
-\setinterfacecommand{sethyphenationfeatures}{sethyphenationfeatures}
-\setinterfacecommand{setmainbodyfont}{setmainbodyfont}
-\setinterfacecommand{setmode}{setmode}
-\setinterfacecommand{setnote}{setnote}
-\setinterfacecommand{setnotetext}{setnotetext}
-\setinterfacecommand{setnumber}{setnumber}
-\setinterfacecommand{setperiodkerning}{setperiodkerning}
-\setinterfacecommand{setsecondpasscharacteralign}{setsecondpasscharacteralign}
-\setinterfacecommand{setsmallbodyfont}{setsmallbodyfont}
-\setinterfacecommand{setsystemmode}{setsystemmode}
-\setinterfacecommand{settextcontent}{settextcontent}
-\setinterfacecommand{settextvariable}{settextvariable}
-\setinterfacecommand{setupalign}{nastavzarovnani}
-\setinterfacecommand{setupanswerarea}{setupanswerarea}
-\setinterfacecommand{setuparranging}{nastavusporadani}
-\setinterfacecommand{setupattachment}{setupattachment}
-\setinterfacecommand{setupbackground}{nastavpozadi}
-\setinterfacecommand{setupbackgrounds}{nastavpozadi}
-\setinterfacecommand{setupblackrules}{nastavcernelinky}
-\setinterfacecommand{setupblank}{nastavpreskok}
-\setinterfacecommand{setupblock}{nastavblok}
-\setinterfacecommand{setupbodyfont}{nastavzakladnifont}
-\setinterfacecommand{setupbodyfontenvironment}{nastavprostredizakladnihofontu}
-\setinterfacecommand{setupbottom}{nastavspodek}
-\setinterfacecommand{setupbottomtexts}{nastavdolnitexty}
-\setinterfacecommand{setupbuffer}{nastavbuffer}
-\setinterfacecommand{setupbuttons}{nastavtlacitka}
-\setinterfacecommand{setupcapitals}{nastavkapitalky}
-\setinterfacecommand{setupcaption}{nastavpopisek}
-\setinterfacecommand{setupcaptions}{nastavpopisky}
-\setinterfacecommand{setupcharacteralign}{setupcharacteralign}
-\setinterfacecommand{setupcharacterkerning}{setupcharacterkerning}
-\setinterfacecommand{setupcharacterspacing}{setupcharacterspacing}
-\setinterfacecommand{setupclipping}{nastavorez}
-\setinterfacecommand{setupcolor}{nastavbarvu}
-\setinterfacecommand{setupcolors}{nastavbarvy}
-\setinterfacecommand{setupcolumns}{nastavsloupce}
-\setinterfacecommand{setupcolumnset}{setupcolumnset}
-\setinterfacecommand{setupcolumnsetlines}{setupcolumnsetlines}
-\setinterfacecommand{setupcolumnsetstart}{setupcolumnsetstart}
-\setinterfacecommand{setupcombinations}{nastavspojeni}
-\setinterfacecommand{setupcombinedlist}{nastavkombinovanyseznam}
-\setinterfacecommand{setupcomment}{nastavkomentar}
-\setinterfacecommand{setupcounter}{setupcounter}
-\setinterfacecommand{setupdescription}{setupdescription}
-\setinterfacecommand{setupdescriptions}{nastavpopisy}
-\setinterfacecommand{setupenumeration}{setupenumeration}
-\setinterfacecommand{setupenumerations}{nastavvycty}
-\setinterfacecommand{setupexternalfigures}{nastavexterniobrazy}
-\setinterfacecommand{setupfield}{nastavpole}
-\setinterfacecommand{setupfields}{nastavvsechnapole}
-\setinterfacecommand{setupfillinlines}{nastavvyplnoveradky}
-\setinterfacecommand{setupfillinrules}{nastavvyplnovelinky}
-\setinterfacecommand{setupfirstline}{setupfirstline}
-\setinterfacecommand{setupfloat}{nastavplvouciobjekt}
-\setinterfacecommand{setupfloats}{nastavplvouciobjekty}
-\setinterfacecommand{setupfloatsplitting}{nastavdeleniplvoucichobjektu}
-\setinterfacecommand{setupfontexpansion}{setupfontexpansion}
-\setinterfacecommand{setupfontprotrusion}{setupfontprotrusion}
-\setinterfacecommand{setupfonts}{setupfonts}
-\setinterfacecommand{setupfontsolution}{setupfontsolution}
-\setinterfacecommand{setupfooter}{nastavupati}
-\setinterfacecommand{setupfootertexts}{nastavtextyupati}
-\setinterfacecommand{setupfootnotedefinition}{nastavdefinicipoznamekpodcarou}
-\setinterfacecommand{setupfootnotes}{nastavpoznamkypodcarou}
-\setinterfacecommand{setupforms}{setupforms}
-\setinterfacecommand{setupformula}{setupformula}
-\setinterfacecommand{setupformulas}{nastavrovnice}
-\setinterfacecommand{setupframed}{nastavoramovani}
-\setinterfacecommand{setupframedtext}{setupframedtext}
-\setinterfacecommand{setupframedtexts}{nastavoramovanetexty}
-\setinterfacecommand{setuphead}{nastavnadpis}
-\setinterfacecommand{setupheader}{nastavzahlavi}
-\setinterfacecommand{setupheadertexts}{nastavtextyzahlavi}
-\setinterfacecommand{setupheadnumber}{nastavcislonadpisu}
-\setinterfacecommand{setupheads}{nastavnadpisy}
-\setinterfacecommand{setupheadtext}{nastavtexthlavicky}
-\setinterfacecommand{setuphyphenation}{setuphyphenation}
-\setinterfacecommand{setuphyphenmark}{nastavdelitko}
-\setinterfacecommand{setupindentedtext}{setupindentedtext}
-\setinterfacecommand{setupindenting}{nastavodsazovani}
-\setinterfacecommand{setupinmargin}{nastavmarginalie}
-\setinterfacecommand{setupinteraction}{nastavinterakci}
-\setinterfacecommand{setupinteractionbar}{nastavinterakcnilistu}
-\setinterfacecommand{setupinteractionmenu}{nastavinterakcnimenu}
-\setinterfacecommand{setupinteractionscreen}{nastavinterakcniobrazovku}
-\setinterfacecommand{setupinterlinespace}{nastavmeziradkovoumezeru}
-\setinterfacecommand{setupitemgroup}{setupitemgroup}
-\setinterfacecommand{setupitemgroups}{nastavvycty}
-\setinterfacecommand{setupitems}{nastavpolozky}
-\setinterfacecommand{setuplabeltext}{nastavtextpopisku}
-\setinterfacecommand{setuplanguage}{nastavjazyk}
-\setinterfacecommand{setuplayout}{nastavvzhled}
-\setinterfacecommand{setuplegend}{nastavlegendu}
-\setinterfacecommand{setuplinenote}{setuplinenote}
-\setinterfacecommand{setuplinenumbering}{nastavcislovaniradku}
-\setinterfacecommand{setuplines}{nastavradky}
-\setinterfacecommand{setuplinewidth}{nastavsirkucary}
-\setinterfacecommand{setuplist}{nastavseznam}
-\setinterfacecommand{setupmakeup}{nastavupravu}
-\setinterfacecommand{setupmarginblock}{setupmarginblock}
-\setinterfacecommand{setupmarginblocks}{nastavmarginalniblok}
-\setinterfacecommand{setupmargindata}{setupmargindata}
-\setinterfacecommand{setupmarginrules}{nastavmarginalnilinky}
-\setinterfacecommand{setupmarking}{nastavznaceni}
-\setinterfacecommand{setupmathalignment}{setupmathalignment}
-\setinterfacecommand{setupnarrower}{nastavzuzeni}
-\setinterfacecommand{setupnotation}{setupnotation}
-\setinterfacecommand{setupnotations}{setupnotations}
-\setinterfacecommand{setupnote}{setupnote}
-\setinterfacecommand{setupnotes}{setupnotes}
-\setinterfacecommand{setupnumber}{setupnumber}
-\setinterfacecommand{setupnumbering}{nastavcislovani}
-\setinterfacecommand{setupoppositeplacing}{nastavumisteniprotejsku}
-\setinterfacecommand{setupoutput}{nastavvystup}
-\setinterfacecommand{setuppagecomment}{nastavkomentarstrany}
-\setinterfacecommand{setuppagenumber}{nastavcislostrany}
-\setinterfacecommand{setuppagenumbering}{nastavcislovanistran}
-\setinterfacecommand{setuppagetransitions}{nastavprechodstrany}
-\setinterfacecommand{setuppalet}{nastavpaletu}
-\setinterfacecommand{setuppaper}{setuppaper}
-\setinterfacecommand{setuppapersize}{nastavvelikostpapiru}
-\setinterfacecommand{setupparagraphnumbering}{nastavcislovaniodstavcu}
-\setinterfacecommand{setupparagraphs}{nastavodstavce}
-\setinterfacecommand{setupperiodkerning}{setupperiodkerning}
-\setinterfacecommand{setupplacement}{setupplacement}
-\setinterfacecommand{setuppositioning}{nastavumistovani}
-\setinterfacecommand{setupprofiles}{nastavprofily}
-\setinterfacecommand{setupprograms}{nastavprogramy}
-\setinterfacecommand{setuppublications}{nastavpublikace}
-\setinterfacecommand{setupquote}{nastavcitaci}
-\setinterfacecommand{setupreferencelist}{nastavseznamodkazu}
-\setinterfacecommand{setupreferencing}{nastavodkazovani}
-\setinterfacecommand{setupregister}{nastavrejstrik}
-\setinterfacecommand{setuprotate}{nastavotoceni}
-\setinterfacecommand{setuprule}{setuprule}
-\setinterfacecommand{setupscreens}{nastavrastr}
-\setinterfacecommand{setupsection}{nastavsekci}
-\setinterfacecommand{setupsectionblock}{nastavbloksekce}
-\setinterfacecommand{setupsorting}{nastavtrideni}
-\setinterfacecommand{setupspacing}{nastavradkovani}
-\setinterfacecommand{setupstartstop}{setupstartstop}
-\setinterfacecommand{setupstrut}{setupstrut}
-\setinterfacecommand{setupsubpagenumber}{nastavpodcislostrany}
-\setinterfacecommand{setupsymbolset}{nastavsadusymbolu}
-\setinterfacecommand{setupsynchronization}{nastavsynchronizaci}
-\setinterfacecommand{setupsynchronizationbar}{nastavsynchronizacnilistu}
-\setinterfacecommand{setupsynonyms}{nastavsynonyma}
-\setinterfacecommand{setupsystem}{nastavsystem}
-\setinterfacecommand{setuptab}{nastavtab}
-\setinterfacecommand{setuptables}{nastavtabulky}
-\setinterfacecommand{setuptabulate}{nastavtabelaci}
-\setinterfacecommand{setuptext}{nastavtext}
-\setinterfacecommand{setuptextbackground}{setuptextbackground}
-\setinterfacecommand{setuptextnote}{setuptextnote}
-\setinterfacecommand{setuptextposition}{setuptextposition}
-\setinterfacecommand{setuptextrules}{nastavtextovelinky}
-\setinterfacecommand{setuptexttexts}{nastavtexttexty}
-\setinterfacecommand{setuptextvariable}{setuptextvariable}
-\setinterfacecommand{setupthinrules}{nastavtenkelinky}
-\setinterfacecommand{setuptolerance}{nastavtoleranci}
-\setinterfacecommand{setuptop}{nastavhorejsek}
-\setinterfacecommand{setuptoptexts}{nastavhornitexty}
-\setinterfacecommand{setuptype}{nastavtype}
-\setinterfacecommand{setuptyping}{nastavopis}
-\setinterfacecommand{setupunderbar}{nastavpodtrzeni}
-\setinterfacecommand{setupurl}{nastavurl}
-\setinterfacecommand{setupversions}{nastavverze}
-\setinterfacecommand{setupwhitespace}{nastavbilamista}
-\setinterfacecommand{setvisualizerfont}{setvisualizerfont}
-\setinterfacecommand{showbodyfont}{ukazzakladnifont}
-\setinterfacecommand{showbodyfontenvironment}{ukazpostredizakladnihofontu}
-\setinterfacecommand{showcolor}{ukazbarvu}
-\setinterfacecommand{showcolorgroup}{ukazskupinubarev}
-\setinterfacecommand{showcounter}{showcounter}
-\setinterfacecommand{showexternalfigures}{ukazexterniobrazy}
-\setinterfacecommand{showfields}{ukazpole}
-\setinterfacecommand{showfont}{showfont}
-\setinterfacecommand{showfontdata}{showfontdata}
-\setinterfacecommand{showfontexpansion}{showfontexpansion}
-\setinterfacecommand{showfontitalics}{showfontitalics}
-\setinterfacecommand{showfontkerns}{showfontkerns}
-\setinterfacecommand{showfontparameters}{showfontparameters}
-\setinterfacecommand{showfontstrip}{showfontstrip}
-\setinterfacecommand{showfontstyle}{showfontstyle}
-\setinterfacecommand{showframe}{ukazramecek}
-\setinterfacecommand{showgrid}{ukazmrizku}
-\setinterfacecommand{showhyphenationtrace}{showhyphenationtrace}
-\setinterfacecommand{showkerning}{showkerning}
-\setinterfacecommand{showlayout}{ukazvzhled}
-\setinterfacecommand{showmakeup}{ukazupravu}
-\setinterfacecommand{showminimalbaseline}{showminimalbaseline}
-\setinterfacecommand{showpalet}{ukazpaletu}
-\setinterfacecommand{showprint}{ukazvytisk}
-\setinterfacecommand{showsetups}{ukaznastaveni}
-\setinterfacecommand{showstruts}{ukazpodpery}
-\setinterfacecommand{showsymbolset}{ukazsadusymbolu}
-\setinterfacecommand{smallcapped}{kap}
-\setinterfacecommand{someline}{nejakyradek}
-\setinterfacecommand{somewhere}{nekde}
-\setinterfacecommand{space}{mezera}
-\setinterfacecommand{specialitem}{specialitem}
-\setinterfacecommand{splitfloat}{rozdelplvouciobjekt}
-\setinterfacecommand{startalignment}{startzarovnavani}
-\setinterfacecommand{startbackground}{startpozadi}
-\setinterfacecommand{startcoding}{startkodovani}
-\setinterfacecommand{startcolor}{startbarva}
-\setinterfacecommand{startcolumnmakeup}{startcolumnmakeup}
-\setinterfacecommand{startcolumns}{startsloupce}
-\setinterfacecommand{startcolumnset}{startcolumnset}
-\setinterfacecommand{startcombination}{startspojeni}
-\setinterfacecommand{startcomponent}{startkomponenta}
-\setinterfacecommand{startdocument}{startdokument}
-\setinterfacecommand{startenvironment}{startprostredi}
-\setinterfacecommand{startfigure}{startobraz}
-\setinterfacecommand{startframed}{startframed}
-\setinterfacecommand{startglobal}{startglobalni}
-\setinterfacecommand{startline}{startradek}
-\setinterfacecommand{startlinecorrection}{startkorekceradku}
-\setinterfacecommand{startlinenote}{startlinenote}
-\setinterfacecommand{startlinenumbering}{startcislovaniradku}
-\setinterfacecommand{startlines}{startradky}
-\setinterfacecommand{startlocal}{startlokalni}
-\setinterfacecommand{startlocalfootnotes}{startlokalnipoznamkypodcarou}
-\setinterfacecommand{startmakeup}{startuprava}
-\setinterfacecommand{startmarginblock}{startmarginalniblok}
-\setinterfacecommand{startmarginrule}{startmarginalnilinka}
-\setinterfacecommand{startnarrower}{startzuzeni}
-\setinterfacecommand{startopposite}{startprotejsek}
-\setinterfacecommand{startoverlay}{startprekryv}
-\setinterfacecommand{startoverview}{startprehled}
-\setinterfacecommand{startpacked}{startzhustene}
-\setinterfacecommand{startpositioning}{startumistovani}
-\setinterfacecommand{startproduct}{startprodukt}
-\setinterfacecommand{startprofile}{startprofil}
-\setinterfacecommand{startproject}{startprojekt}
-\setinterfacecommand{startquotation}{startcitace}
-\setinterfacecommand{startraster}{startrastr}
-\setinterfacecommand{startsymbolset}{startsadasymbolu}
-\setinterfacecommand{startsynchronization}{startsynchronizace}
-\setinterfacecommand{starttable}{starttabulka}
-\setinterfacecommand{starttables}{starttabulky}
-\setinterfacecommand{starttext}{starttext}
-\setinterfacecommand{starttextbackground}{starttextbackground}
-\setinterfacecommand{starttextrule}{starttextovalinka}
-\setinterfacecommand{startunpacked}{startnezhustene}
-\setinterfacecommand{startversion}{startverze}
-\setinterfacecommand{stopalignment}{stopzarovnavani}
-\setinterfacecommand{stopbackground}{stoppozadi}
-\setinterfacecommand{stopcoding}{stopkodovani}
-\setinterfacecommand{stopcolor}{stopbarva}
-\setinterfacecommand{stopcolumnmakeup}{stopcolumnmakeup}
-\setinterfacecommand{stopcolumns}{stopsloupce}
-\setinterfacecommand{stopcolumnset}{stopcolumnset}
-\setinterfacecommand{stopcombination}{stopspojeni}
-\setinterfacecommand{stopcomponent}{stopkomponenta}
-\setinterfacecommand{stopdocument}{stopdokument}
-\setinterfacecommand{stopenvironment}{stopprostredi}
-\setinterfacecommand{stopframed}{stopframed}
-\setinterfacecommand{stopglobal}{stopglobalni}
-\setinterfacecommand{stopline}{stopradek}
-\setinterfacecommand{stoplinecorrection}{stopkorekceradku}
-\setinterfacecommand{stoplinenote}{stoplinenote}
-\setinterfacecommand{stoplinenumbering}{stopcislovaniradku}
-\setinterfacecommand{stoplines}{stopradky}
-\setinterfacecommand{stoplocal}{stoplokalni}
-\setinterfacecommand{stoplocalfootnotes}{stoplokalnipoznamkypodcarou}
-\setinterfacecommand{stopmakeup}{stopuprava}
-\setinterfacecommand{stopmarginblock}{stopmarginalniblok}
-\setinterfacecommand{stopmarginrule}{stopmarginalnilinka}
-\setinterfacecommand{stopnarrower}{stopzuzeni}
-\setinterfacecommand{stopopposite}{stopprotejsek}
-\setinterfacecommand{stopoverlay}{stopprekryv}
-\setinterfacecommand{stopoverview}{stopprehled}
-\setinterfacecommand{stoppacked}{stopzhustene}
-\setinterfacecommand{stoppositioning}{stopumistovani}
-\setinterfacecommand{stopproduct}{stopprodukt}
-\setinterfacecommand{stopprofile}{stopprofil}
-\setinterfacecommand{stopproject}{stopprojekt}
-\setinterfacecommand{stopquotation}{stopcitace}
-\setinterfacecommand{stopraster}{stoprastr}
-\setinterfacecommand{stopsynchronization}{stopsynchronizace}
-\setinterfacecommand{stoptable}{stoptabulka}
-\setinterfacecommand{stoptables}{stoptabulky}
-\setinterfacecommand{stoptext}{stoptext}
-\setinterfacecommand{stoptextbackground}{stoptextbackground}
-\setinterfacecommand{stoptextrule}{stoptextovalinka}
-\setinterfacecommand{stopunpacked}{stopnezhustene}
-\setinterfacecommand{stopversion}{stopverze}
-\setinterfacecommand{stretched}{roztazene}
-\setinterfacecommand{strictinspectnextcharacter}{strictinspectnextcharacter}
-\setinterfacecommand{stripcharacter}{stripcharacter}
-\setinterfacecommand{subformulanumber}{cislopodrovnice}
-\setinterfacecommand{subpagenumber}{subpagenumber}
-\setinterfacecommand{subtractfeature}{subtractfeature}
-\setinterfacecommand{switchtobodyfont}{prepninazakladnifont}
-\setinterfacecommand{switchtorawfont}{switchtorawfont}
-\setinterfacecommand{sym}{sym}
-\setinterfacecommand{symbol}{symbol}
-\setinterfacecommand{symoffset}{symoffset}
-\setinterfacecommand{synchronizationbar}{synchronizacnilista}
-\setinterfacecommand{synchronize}{synchronizovat}
-\setinterfacecommand{tab}{tab}
-\setinterfacecommand{testcolumn}{testcolumn}
-\setinterfacecommand{testfeature}{testfeature}
-\setinterfacecommand{testfeatureonce}{testfeatureonce}
-\setinterfacecommand{testpage}{testpage}
-\setinterfacecommand{tex}{tex}
-\setinterfacecommand{textbackground}{textbackground}
-\setinterfacecommand{textcolor}{textcolor}
-\setinterfacecommand{textheight}{vyskatextu}
-\setinterfacecommand{textnote}{textnote}
-\setinterfacecommand{textreference}{odkaznatext}
-\setinterfacecommand{textrule}{textovalinka}
-\setinterfacecommand{textvariable}{textvariable}
-\setinterfacecommand{textwidth}{sirkatextu}
-\setinterfacecommand{thefirstcharacter}{thefirstcharacter}
-\setinterfacecommand{thenormalizedbodyfontsize}{thenormalizedbodyfontsize}
-\setinterfacecommand{theremainingcharacters}{theremainingcharacters}
-\setinterfacecommand{thinrule}{tenkalinka}
-\setinterfacecommand{thinrules}{tenkelinky}
-\setinterfacecommand{tolinenote}{tolinenote}
-\setinterfacecommand{tooltip}{bublinkovanapoveda}
-\setinterfacecommand{topdistance}{vzdalenosthorejsku}
-\setinterfacecommand{topheight}{vyskahorejsku}
-\setinterfacecommand{topspace}{odsazenishora}
-\setinterfacecommand{totalnumberofpages}{celkovypocetstran}
-\setinterfacecommand{translate}{prelozit}
-\setinterfacecommand{txt}{txt}
-\setinterfacecommand{typ}{pis}
-\setinterfacecommand{type}{opis}
-\setinterfacecommand{typebuffer}{typebuffer}
-\setinterfacecommand{typedefinedbuffer}{typedefinedbuffer}
-\setinterfacecommand{typefile}{opissoubor}
-\setinterfacecommand{typeinlinebuffer}{typeinlinebuffer}
-\setinterfacecommand{typing}{typing}
-\setinterfacecommand{unitmeaning}{vyznam}
-\setinterfacecommand{unknown}{neznamo}
-\setinterfacecommand{unregisterhyphenationpattern}{unregisterhyphenationpattern}
-\setinterfacecommand{useJSscripts}{uzijJSscripts}
-\setinterfacecommand{useURL}{uzijURL}
-\setinterfacecommand{useXMLfilter}{useXMLfilter}
-\setinterfacecommand{useblocks}{uzijbloky}
-\setinterfacecommand{usebodyfont}{usebodyfont}
-\setinterfacecommand{usebodyfontparameter}{usebodyfontparameter}
-\setinterfacecommand{usecommands}{uzijprikazy}
-\setinterfacecommand{useencoding}{uzijkodovani}
-\setinterfacecommand{useexternaldocument}{uzijexternidokument}
-\setinterfacecommand{useexternalfigure}{uzijexterniobraz}
-\setinterfacecommand{useexternalfile}{uzijexternisoubor}
-\setinterfacecommand{useexternalfiles}{uzijexternisoubory}
-\setinterfacecommand{useexternalsoundtrack}{uzijexternizvuk}
-\setinterfacecommand{usemodule}{uzijmodul}
-\setinterfacecommand{usemodules}{uzijmoduly}
-\setinterfacecommand{usepath}{uzijadresar}
-\setinterfacecommand{usereferences}{uzijodkazy}
-\setinterfacecommand{usespecials}{uzijspeciality}
-\setinterfacecommand{usesymbols}{uzijsymbol}
-\setinterfacecommand{usetypescript}{usetypescript}
-\setinterfacecommand{usetypescriptfile}{usetypescriptfile}
-\setinterfacecommand{useurl}{uzijurl}
-\setinterfacecommand{verbatim}{verbatim}
-\setinterfacecommand{version}{verze}
-\setinterfacecommand{vl}{vl}
-\setinterfacecommand{weekday}{vsedniden}
-\setinterfacecommand{whitespace}{bilemisto}
-\setinterfacecommand{widthspanningtext}{widthspanningtext}
-\setinterfacecommand{wordright}{slovovpravo}
-\setinterfacecommand{writebetweenlist}{zapismeziseznam}
-\setinterfacecommand{writetolist}{zapisdoseznamu}
-\setinterfacecommand{writetoreferencelist}{zapisdoseznamuodkazu}
-\setinterfacecommand{writetoregister}{zapisdorejstriku}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-de.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-de.mkii
deleted file mode 100644
index 06a4fb16236..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-de.mkii
+++ /dev/null
@@ -1,2224 +0,0 @@
-% this file is auto-generated, don't edit this file
-%
-% definitions for interface variables for language de
-%
-\setinterfacevariable{Addition}{Zusatz}
-\setinterfacevariable{Alphabetic}{Alphabetic}
-\setinterfacevariable{Balloon}{Ballon}
-\setinterfacevariable{Cap}{Kap}
-\setinterfacevariable{Capital}{Versalien}
-\setinterfacevariable{Character}{Buchstabe}
-\setinterfacevariable{Characters}{Buchstaben}
-\setinterfacevariable{CloseDocument}{SchliesseDokument}
-\setinterfacevariable{ExitViewer}{BeendeViewer}
-\setinterfacevariable{FirstPage}{ErsteSeite}
-\setinterfacevariable{FitHeight}{HoehePassend}
-\setinterfacevariable{FitWidth}{BreitePassend}
-\setinterfacevariable{GotoPage}{GotoPage}
-\setinterfacevariable{Greek}{Griechisch}
-\setinterfacevariable{Help}{Hilfe}
-\setinterfacevariable{HideField}{VerbergeFeld}
-\setinterfacevariable{HideLayer}{HideLayer}
-\setinterfacevariable{Key}{Schluessel}
-\setinterfacevariable{LastPage}{LetzteSeite}
-\setinterfacevariable{LoadForm}{LadeFormular}
-\setinterfacevariable{MONTH}{MONAT}
-\setinterfacevariable{New}{Neu}
-\setinterfacevariable{NextJump}{NaechsterSprung}
-\setinterfacevariable{NextPage}{FolgendeSeite}
-\setinterfacevariable{Numbers}{Ziffern}
-\setinterfacevariable{OpenNamedDocument}{OpenNamedDocument}
-\setinterfacevariable{Ordinal}{Ordinal}
-\setinterfacevariable{Paragraph}{Absatz}
-\setinterfacevariable{PauseMovie}{PauseFilm}
-\setinterfacevariable{PauseRendering}{PauseRendering}
-\setinterfacevariable{PauseSound}{PauseSound}
-\setinterfacevariable{PreviousJump}{VorigerSprung}
-\setinterfacevariable{PreviousPage}{VorigeSeite}
-\setinterfacevariable{PrintDocument}{DruckeDokument}
-\setinterfacevariable{Query}{Query}
-\setinterfacevariable{QueryAgain}{QueryAgain}
-\setinterfacevariable{ResetForm}{ZuruecksetzenFormular}
-\setinterfacevariable{ResumeMovie}{FortsetzenFilm}
-\setinterfacevariable{ResumeRendering}{ResumeRendering}
-\setinterfacevariable{ResumeSound}{ResumeSound}
-\setinterfacevariable{Romannumerals}{Roemischezahlen}
-\setinterfacevariable{SaveDocument}{SpeichereDokument}
-\setinterfacevariable{SaveForm}{SpeicheFormular}
-\setinterfacevariable{SaveNamedDocument}{SaveNamedDocument}
-\setinterfacevariable{SearchAgain}{WeiterSuchen}
-\setinterfacevariable{SearchDocument}{DokumentDurchsuchen}
-\setinterfacevariable{ShowBookmarks}{ShowBookmarks}
-\setinterfacevariable{ShowField}{ZeigeFeld}
-\setinterfacevariable{ShowThumbs}{ShowThumbs}
-\setinterfacevariable{StartMovie}{StartFilm}
-\setinterfacevariable{StartRendering}{StartRendering}
-\setinterfacevariable{StartSound}{StartSound}
-\setinterfacevariable{StopMovie}{StopFilm}
-\setinterfacevariable{StopRendering}{StopRendering}
-\setinterfacevariable{StopSound}{StopSound}
-\setinterfacevariable{SubmitForm}{VersendeFormular}
-\setinterfacevariable{ToggleLayer}{ToggleLayer}
-\setinterfacevariable{ToggleViewer}{WechseleViewer}
-\setinterfacevariable{URL}{URL}
-\setinterfacevariable{VideLayer}{VideLayer}
-\setinterfacevariable{ViewerHelp}{ViewerHilfe}
-\setinterfacevariable{WEEKDAY}{WOCHENTAG}
-\setinterfacevariable{WORD}{WORT}
-\setinterfacevariable{WORDS}{WOERTER}
-\setinterfacevariable{Word}{Wort}
-\setinterfacevariable{Words}{Woerter}
-\setinterfacevariable{abbreviation}{abkuerzung}
-\setinterfacevariable{abbreviations}{abkuerzungen}
-\setinterfacevariable{absolute}{absolut}
-\setinterfacevariable{action}{aktion}
-\setinterfacevariable{after}{nach}
-\setinterfacevariable{all}{alles}
-\setinterfacevariable{alphabetic}{alphabetic}
-\setinterfacevariable{always}{immer}
-\setinterfacevariable{anchor}{anchor}
-\setinterfacevariable{and}{und}
-\setinterfacevariable{answerarea}{answerarea}
-\setinterfacevariable{appendices}{anhaenge}
-\setinterfacevariable{appendix}{anhang}
-\setinterfacevariable{april}{april}
-\setinterfacevariable{aside}{aside}
-\setinterfacevariable{atleftmargin}{atleftmargin}
-\setinterfacevariable{atmargin}{amrand}
-\setinterfacevariable{atpage}{aufseite}
-\setinterfacevariable{atrightmargin}{atrightmargin}
-\setinterfacevariable{attachment}{attachment}
-\setinterfacevariable{august}{august}
-\setinterfacevariable{author}{autor}
-\setinterfacevariable{auto}{auto}
-\setinterfacevariable{autointro}{autointro}
-\setinterfacevariable{autopunctuation}{autopunctuation}
-\setinterfacevariable{back}{zurueck}
-\setinterfacevariable{background}{hintergrund}
-\setinterfacevariable{backmatter}{epiloge}
-\setinterfacevariable{backpart}{epilog}
-\setinterfacevariable{backspace}{rumpfspatium}
-\setinterfacevariable{backward}{rueckwaerts}
-\setinterfacevariable{bbl}{bbl}
-\setinterfacevariable{before}{vor}
-\setinterfacevariable{begin}{begin}
-\setinterfacevariable{bib}{bib}
-\setinterfacevariable{big}{gross}
-\setinterfacevariable{bigbodyfont}{bigbodyfont}
-\setinterfacevariable{bigger}{bigger}
-\setinterfacevariable{bigpreference}{grosszuegig}
-\setinterfacevariable{blank}{blanko}
-\setinterfacevariable{block}{block}
-\setinterfacevariable{blockquote}{blockquote}
-\setinterfacevariable{bodymatter}{haupttexte}
-\setinterfacevariable{bodypart}{haupttext}
-\setinterfacevariable{bold}{fett}
-\setinterfacevariable{bolditalic}{fettitalic}
-\setinterfacevariable{boldslanted}{fettgeneigt}
-\setinterfacevariable{bookmark}{bookmark}
-\setinterfacevariable{both}{beide}
-\setinterfacevariable{bothtext}{bothtext}
-\setinterfacevariable{bottom}{unten}
-\setinterfacevariable{box}{box}
-\setinterfacevariable{brief}{brief}
-\setinterfacevariable{broad}{breit}
-\setinterfacevariable{buffer}{puffer}
-\setinterfacevariable{by}{pro}
-\setinterfacevariable{calligraphic}{kalligraphie}
-\setinterfacevariable{camel}{camel}
-\setinterfacevariable{cap}{kap}
-\setinterfacevariable{capital}{versalien}
-\setinterfacevariable{category}{category}
-\setinterfacevariable{cd:character}{cd:character}
-\setinterfacevariable{cd:font}{cd:font}
-\setinterfacevariable{center}{center}
-\setinterfacevariable{centerlast}{centerlast}
-\setinterfacevariable{chapter}{kapitel}
-\setinterfacevariable{character}{buchstabe}
-\setinterfacevariable{characters}{buchstaben}
-\setinterfacevariable{chemical}{chemical}
-\setinterfacevariable{chemicals}{chemicals}
-\setinterfacevariable{chemistry}{chemistry}
-\setinterfacevariable{cite}{cite}
-\setinterfacevariable{closed}{closed}
-\setinterfacevariable{color}{farbe}
-\setinterfacevariable{column}{column}
-\setinterfacevariable{columns}{spalten}
-\setinterfacevariable{combination}{combination}
-\setinterfacevariable{command}{befehl}
-\setinterfacevariable{commands}{befehle}
-\setinterfacevariable{comment}{kommentar}
-\setinterfacevariable{component}{komponente}
-\setinterfacevariable{compressseparator}{compressseparator}
-\setinterfacevariable{compressstopper}{compressstopper}
-\setinterfacevariable{concept}{konzept}
-\setinterfacevariable{construction}{construction}
-\setinterfacevariable{content}{inhalt}
-\setinterfacevariable{contents}{inhalte}
-\setinterfacevariable{continue}{fortsetzten}
-\setinterfacevariable{continued}{continued}
-\setinterfacevariable{controls}{controls}
-\setinterfacevariable{conversion}{konversion}
-\setinterfacevariable{current}{aktuell}
-\setinterfacevariable{cutspace}{cutspace}
-\setinterfacevariable{dataset}{dataset}
-\setinterfacevariable{date}{datum}
-\setinterfacevariable{day}{tag}
-\setinterfacevariable{december}{dezember}
-\setinterfacevariable{default}{default}
-\setinterfacevariable{depth}{tiefe}
-\setinterfacevariable{description}{beschreibung}
-\setinterfacevariable{disable}{sperren}
-\setinterfacevariable{display}{bildschirm}
-\setinterfacevariable{dot}{punkt}
-\setinterfacevariable{doublesided}{doppelseitig}
-\setinterfacevariable{down}{down}
-\setinterfacevariable{each}{jede}
-\setinterfacevariable{edge}{kante}
-\setinterfacevariable{effective}{effective}
-\setinterfacevariable{eight}{acht}
-\setinterfacevariable{embed}{embed}
-\setinterfacevariable{empty}{leer}
-\setinterfacevariable{enable}{enable}
-\setinterfacevariable{end}{end}
-\setinterfacevariable{endnote}{endnote}
-\setinterfacevariable{enumeration}{nummerierung}
-\setinterfacevariable{environment}{umgebung}
-\setinterfacevariable{even}{gerade}
-\setinterfacevariable{export}{export}
-\setinterfacevariable{external}{extern}
-\setinterfacevariable{extremestretch}{extremestretch}
-\setinterfacevariable{fact}{gegeben}
-\setinterfacevariable{fallback}{fallback}
-\setinterfacevariable{february}{februar}
-\setinterfacevariable{field}{field}
-\setinterfacevariable{figure}{abbildung}
-\setinterfacevariable{figures}{abbildungen}
-\setinterfacevariable{file}{datei}
-\setinterfacevariable{final}{endfassung}
-\setinterfacevariable{first}{erste}
-\setinterfacevariable{firstcolumn}{firstcolumn}
-\setinterfacevariable{firstpage}{ersteseite}
-\setinterfacevariable{firstsubpage}{ersteunterseite}
-\setinterfacevariable{fit}{passend}
-\setinterfacevariable{five}{fuenf}
-\setinterfacevariable{fix}{stellewiederher}
-\setinterfacevariable{fixed}{fest}
-\setinterfacevariable{flexible}{flexibel}
-\setinterfacevariable{float}{gleitobjekt}
-\setinterfacevariable{flushinner}{flushinner}
-\setinterfacevariable{flushleft}{flushleft}
-\setinterfacevariable{flushouter}{flushouter}
-\setinterfacevariable{flushright}{flushright}
-\setinterfacevariable{followingpage}{followingpage}
-\setinterfacevariable{font}{font}
-\setinterfacevariable{footer}{fusszeile}
-\setinterfacevariable{footnote}{fussnote}
-\setinterfacevariable{force}{zwinge}
-\setinterfacevariable{foreground}{vordergrund}
-\setinterfacevariable{formula}{formel}
-\setinterfacevariable{formulas}{formeln}
-\setinterfacevariable{forward}{vorwaerts}
-\setinterfacevariable{four}{vier}
-\setinterfacevariable{fractions}{fractions}
-\setinterfacevariable{frame}{rahmen}
-\setinterfacevariable{framedtext}{umrahmtertext}
-\setinterfacevariable{friday}{freitag}
-\setinterfacevariable{frontmatter}{einleitungen}
-\setinterfacevariable{frontpart}{einleitung}
-\setinterfacevariable{fullhz}{fullhz}
-\setinterfacevariable{global}{global}
-\setinterfacevariable{graphic}{grafik}
-\setinterfacevariable{graphics}{grafiken}
-\setinterfacevariable{gray}{grau}
-\setinterfacevariable{greek}{griechisch}
-\setinterfacevariable{grid}{gritter}
-\setinterfacevariable{halfline}{halbezeile}
-\setinterfacevariable{handwritten}{handschrift}
-\setinterfacevariable{hang}{haengend}
-\setinterfacevariable{hanging}{haengend}
-\setinterfacevariable{hangingboth}{hangingboth}
-\setinterfacevariable{head}{kopf}
-\setinterfacevariable{header}{kopfzeile}
-\setinterfacevariable{headintext}{headintext}
-\setinterfacevariable{height}{hoehe}
-\setinterfacevariable{helptext}{hilfetext}
-\setinterfacevariable{hencefore}{vorher}
-\setinterfacevariable{here}{hier}
-\setinterfacevariable{hereafter}{nachher}
-\setinterfacevariable{hidden}{versteckt}
-\setinterfacevariable{hiddenbar}{hiddenbar}
-\setinterfacevariable{hiding}{verbergen}
-\setinterfacevariable{high}{hoch}
-\setinterfacevariable{horizontal}{horizontal}
-\setinterfacevariable{hyphenated}{hyphenate}
-\setinterfacevariable{hz}{hz}
-\setinterfacevariable{inbetween}{zwischen}
-\setinterfacevariable{index}{index}
-\setinterfacevariable{indices}{indizies}
-\setinterfacevariable{inherit}{inherit}
-\setinterfacevariable{ininner}{ininner}
-\setinterfacevariable{ininneredge}{ininneredge}
-\setinterfacevariable{ininnermargin}{ininnermargin}
-\setinterfacevariable{inleft}{imlinken}
-\setinterfacevariable{inleftedge}{imlinkenrand}
-\setinterfacevariable{inleftmargin}{inlinkermarginale}
-\setinterfacevariable{inline}{inline}
-\setinterfacevariable{inmargin}{imrand}
-\setinterfacevariable{inner}{innen}
-\setinterfacevariable{inneredge}{inneredge}
-\setinterfacevariable{innermargin}{innermargin}
-\setinterfacevariable{inother}{inother}
-\setinterfacevariable{inouter}{inouter}
-\setinterfacevariable{inouteredge}{inouteredge}
-\setinterfacevariable{inoutermargin}{inoutermargin}
-\setinterfacevariable{inright}{imrechten}
-\setinterfacevariable{inrightedge}{imrechtenrand}
-\setinterfacevariable{inrightmargin}{inrechtermarginale}
-\setinterfacevariable{integral}{integral}
-\setinterfacevariable{interaction}{interaktion}
-\setinterfacevariable{interactionmenu}{interaktionsmenue}
-\setinterfacevariable{interactive}{interactive}
-\setinterfacevariable{intermezzi}{intermezzi}
-\setinterfacevariable{intermezzo}{intermezzo}
-\setinterfacevariable{intext}{imtext}
-\setinterfacevariable{intro}{intro}
-\setinterfacevariable{invertedshort}{invertedshort}
-\setinterfacevariable{italic}{italic}
-\setinterfacevariable{italicbold}{italicfett}
-\setinterfacevariable{item}{pos}
-\setinterfacevariable{itemize}{aufzaehlung}
-\setinterfacevariable{its}{its}
-\setinterfacevariable{january}{januar}
-\setinterfacevariable{joinedup}{keinabstand}
-\setinterfacevariable{july}{juli}
-\setinterfacevariable{june}{juni}
-\setinterfacevariable{keep}{behalte}
-\setinterfacevariable{kerncharacters}{kerncharacters}
-\setinterfacevariable{knockout}{knockout}
-\setinterfacevariable{label}{label}
-\setinterfacevariable{landscape}{querformat}
-\setinterfacevariable{last}{letzte}
-\setinterfacevariable{lastcolumn}{lastcolumn}
-\setinterfacevariable{lastpage}{letzteseite}
-\setinterfacevariable{lastpagenumber}{lastpagenumber}
-\setinterfacevariable{lastsubpage}{letzteunterseite}
-\setinterfacevariable{layer}{layer}
-\setinterfacevariable{left}{links}
-\setinterfacevariable{leftedge}{linkekante}
-\setinterfacevariable{lefthanging}{lefthanging}
-\setinterfacevariable{leftmargin}{linkerrand}
-\setinterfacevariable{leftpage}{linkerseite}
-\setinterfacevariable{lefttoright}{lefttoright}
-\setinterfacevariable{legend}{legende}
-\setinterfacevariable{less}{less}
-\setinterfacevariable{lesshyphenation}{lesshyphenation}
-\setinterfacevariable{letterspacing}{letterspacing}
-\setinterfacevariable{line}{zeile}
-\setinterfacevariable{linenote}{linenote}
-\setinterfacevariable{lines}{zeilen}
-\setinterfacevariable{linked}{linked}
-\setinterfacevariable{list}{liste}
-\setinterfacevariable{local}{lokal}
-\setinterfacevariable{localenvironment}{lokaleumgebung}
-\setinterfacevariable{logo}{logo}
-\setinterfacevariable{logos}{logos}
-\setinterfacevariable{lohi}{hoti}
-\setinterfacevariable{long}{long}
-\setinterfacevariable{loose}{lose}
-\setinterfacevariable{low}{tief}
-\setinterfacevariable{ls}{ls}
-\setinterfacevariable{makeup}{umbruch}
-\setinterfacevariable{mar}{mar}
-\setinterfacevariable{march}{maerz}
-\setinterfacevariable{margin}{marginalie}
-\setinterfacevariable{marginedge}{marginalkante}
-\setinterfacevariable{margintext}{marginaltext}
-\setinterfacevariable{margintitle}{marginaltitel}
-\setinterfacevariable{marking}{beschriftung}
-\setinterfacevariable{math}{math}
-\setinterfacevariable{mathalignment}{mathalignment}
-\setinterfacevariable{mathcases}{mathcases}
-\setinterfacevariable{mathematics}{mathematik}
-\setinterfacevariable{mathmatrix}{mathmatrix}
-\setinterfacevariable{max}{max}
-\setinterfacevariable{maxdepth}{maxdepth}
-\setinterfacevariable{maxheight}{maxheight}
-\setinterfacevariable{maxwidth}{maxwidth}
-\setinterfacevariable{may}{mai}
-\setinterfacevariable{mediaeval}{mittelalterlich}
-\setinterfacevariable{medium}{mittel}
-\setinterfacevariable{middle}{mittig}
-\setinterfacevariable{min}{min}
-\setinterfacevariable{mindepth}{mindepth}
-\setinterfacevariable{minheight}{minhoehe}
-\setinterfacevariable{minwidth}{minbreite}
-\setinterfacevariable{mirrored}{gespiegelt}
-\setinterfacevariable{mixed}{mixed}
-\setinterfacevariable{monday}{montag}
-\setinterfacevariable{mono}{mono}
-\setinterfacevariable{monobold}{monofett}
-\setinterfacevariable{mononormal}{mononormal}
-\setinterfacevariable{month}{monat}
-\setinterfacevariable{more}{more}
-\setinterfacevariable{morehyphenation}{morehyphenation}
-\setinterfacevariable{name}{name}
-\setinterfacevariable{narrow}{schmall}
-\setinterfacevariable{negative}{negativ}
-\setinterfacevariable{never}{nie}
-\setinterfacevariable{new}{neu}
-\setinterfacevariable{next}{folgende}
-\setinterfacevariable{nextevenpage}{naechstegeradeseite}
-\setinterfacevariable{nextoddpage}{naechsteungeradeseite}
-\setinterfacevariable{nextpage}{folgendeseite}
-\setinterfacevariable{nextsubpage}{folgendeunterseite}
-\setinterfacevariable{nine}{neun}
-\setinterfacevariable{no}{nein}
-\setinterfacevariable{nocheck}{nocheck}
-\setinterfacevariable{nodepth}{nodepth}
-\setinterfacevariable{nofit}{nofit}
-\setinterfacevariable{nogrid}{nogrid}
-\setinterfacevariable{noheight}{noheight}
-\setinterfacevariable{nohz}{nohz}
-\setinterfacevariable{noline}{noline}
-\setinterfacevariable{nomarking}{keinebeschriftung}
-\setinterfacevariable{nomenubar}{nomenubar}
-\setinterfacevariable{none}{kein}
-\setinterfacevariable{nonumber}{nonumber}
-\setinterfacevariable{norepeat}{norepeat}
-\setinterfacevariable{normal}{normal}
-\setinterfacevariable{normalshort}{normalshort}
-\setinterfacevariable{nospacing}{nospacing}
-\setinterfacevariable{nostopper}{nostopper}
-\setinterfacevariable{not}{nicht}
-\setinterfacevariable{notation}{notation}
-\setinterfacevariable{note}{note}
-\setinterfacevariable{nothanging}{nothanging}
-\setinterfacevariable{nothyphenated}{nothyphenated}
-\setinterfacevariable{notjoinedup}{notjoinedup}
-\setinterfacevariable{november}{november}
-\setinterfacevariable{nowhere}{nirgens}
-\setinterfacevariable{nowhite}{keinweiss}
-\setinterfacevariable{number}{nummer}
-\setinterfacevariable{numbers}{ziffern}
-\setinterfacevariable{october}{oktober}
-\setinterfacevariable{odd}{ungerade}
-\setinterfacevariable{off}{aus}
-\setinterfacevariable{offset}{offset}
-\setinterfacevariable{old}{old}
-\setinterfacevariable{oldstyle}{oldstyle}
-\setinterfacevariable{on}{an}
-\setinterfacevariable{one}{eins}
-\setinterfacevariable{opposite}{gegenueber}
-\setinterfacevariable{ordinal}{ordinal}
-\setinterfacevariable{outer}{aussen}
-\setinterfacevariable{outeredge}{outeredge}
-\setinterfacevariable{outermargin}{outermargin}
-\setinterfacevariable{overbar}{ueberstrichen}
-\setinterfacevariable{overbars}{ueberstreichen}
-\setinterfacevariable{overlay}{overlay}
-\setinterfacevariable{overprint}{overprint}
-\setinterfacevariable{overstrike}{durchgestrichen}
-\setinterfacevariable{overstrikes}{durchstreichen}
-\setinterfacevariable{packed}{gepackt}
-\setinterfacevariable{page}{seite}
-\setinterfacevariable{pagecomment}{pagecomment}
-\setinterfacevariable{pagenumber}{seitennummer}
-\setinterfacevariable{paper}{papier}
-\setinterfacevariable{paragraph}{absatz}
-\setinterfacevariable{part}{teil}
-\setinterfacevariable{positive}{positiv}
-\setinterfacevariable{postponing}{verschieben}
-\setinterfacevariable{postscript}{postscript}
-\setinterfacevariable{precedingpage}{precedingpage}
-\setinterfacevariable{preference}{einstellung}
-\setinterfacevariable{preview}{vorschau}
-\setinterfacevariable{previous}{vorig}
-\setinterfacevariable{previousevenpage}{vorigegeradeseite}
-\setinterfacevariable{previousoddpage}{vorigeungeradeseite}
-\setinterfacevariable{previouspage}{vorigeseite}
-\setinterfacevariable{previoussubpage}{vorigeunterseite}
-\setinterfacevariable{print}{print}
-\setinterfacevariable{printable}{druckbar}
-\setinterfacevariable{process}{process}
-\setinterfacevariable{product}{produkt}
-\setinterfacevariable{program}{programm}
-\setinterfacevariable{project}{projekt}
-\setinterfacevariable{protected}{geschuetzt}
-\setinterfacevariable{quadruple}{viertel}
-\setinterfacevariable{quarterline}{quarterline}
-\setinterfacevariable{quotation}{zitat}
-\setinterfacevariable{quote}{zitieren}
-\setinterfacevariable{ran}{ran}
-\setinterfacevariable{random}{zufaellig}
-\setinterfacevariable{readonly}{nurlesbar}
-\setinterfacevariable{rectangular}{rechteckig}
-\setinterfacevariable{reference}{referenz}
-\setinterfacevariable{referral}{merkmal}
-\setinterfacevariable{region}{region}
-\setinterfacevariable{register}{register}
-\setinterfacevariable{regular}{regular}
-\setinterfacevariable{relative}{relativ}
-\setinterfacevariable{repeat}{wiederholen}
-\setinterfacevariable{required}{obligatorisch}
-\setinterfacevariable{reset}{zuruecksetzten}
-\setinterfacevariable{reverse}{reverse}
-\setinterfacevariable{right}{rechts}
-\setinterfacevariable{rightedge}{rechterkante}
-\setinterfacevariable{righthanging}{righthanging}
-\setinterfacevariable{rightmargin}{rechterrand}
-\setinterfacevariable{rightpage}{rechterseite}
-\setinterfacevariable{righttoleft}{righttoleft}
-\setinterfacevariable{roman}{antiqua}
-\setinterfacevariable{romannumerals}{roemischezahlen}
-\setinterfacevariable{rotate}{drehe}
-\setinterfacevariable{rotated}{gedreht}
-\setinterfacevariable{round}{rund}
-\setinterfacevariable{row}{row}
-\setinterfacevariable{rule}{linie}
-\setinterfacevariable{samepage}{selbeseite}
-\setinterfacevariable{sans}{sans}
-\setinterfacevariable{sansbold}{sansfett}
-\setinterfacevariable{sansnormal}{sansnormal}
-\setinterfacevariable{sansserif}{grotesk}
-\setinterfacevariable{saturday}{samstag}
-\setinterfacevariable{screen}{raster}
-\setinterfacevariable{section}{absatz}
-\setinterfacevariable{sectionblockenvironment}{sectionblockenvironment}
-\setinterfacevariable{sectionnumber}{abschnittsnummer}
-\setinterfacevariable{see}{sieh}
-\setinterfacevariable{selectfont}{selectfont}
-\setinterfacevariable{separator}{separator}
-\setinterfacevariable{september}{september}
-\setinterfacevariable{serif}{serif}
-\setinterfacevariable{serifbold}{serifbold}
-\setinterfacevariable{serifnormal}{serifnormal}
-\setinterfacevariable{serried}{kleinerabstand}
-\setinterfacevariable{setups}{setups}
-\setinterfacevariable{seven}{sieben}
-\setinterfacevariable{sheet}{sheet}
-\setinterfacevariable{shiftdown}{shiftdown}
-\setinterfacevariable{shiftup}{shiftup}
-\setinterfacevariable{short}{kurz}
-\setinterfacevariable{simplefonts}{simplefonts}
-\setinterfacevariable{simplelist}{simplelist}
-\setinterfacevariable{singlesided}{einzelseitig}
-\setinterfacevariable{six}{sechs}
-\setinterfacevariable{slanted}{geneigt}
-\setinterfacevariable{slantedbold}{geneigtfett}
-\setinterfacevariable{small}{klein}
-\setinterfacevariable{smallbodyfont}{smallbodyfont}
-\setinterfacevariable{smallbold}{kleinfett}
-\setinterfacevariable{smallbolditalic}{kleinfettitalic}
-\setinterfacevariable{smallboldslanted}{kleinfettgeneigt}
-\setinterfacevariable{smallcaps}{smallcaps}
-\setinterfacevariable{smaller}{smaller}
-\setinterfacevariable{smallitalic}{kleinitalic}
-\setinterfacevariable{smallitalicbold}{kleinitalicfett}
-\setinterfacevariable{smallnormal}{kleinnormal}
-\setinterfacevariable{smallslanted}{kleingeneigt}
-\setinterfacevariable{smallslantedbold}{kleingeneigtfett}
-\setinterfacevariable{smalltype}{kleintippen}
-\setinterfacevariable{somewhere}{irgendwo}
-\setinterfacevariable{sorted}{sortiert}
-\setinterfacevariable{sorting}{sorting}
-\setinterfacevariable{space}{spatium}
-\setinterfacevariable{spacing}{spatiumausgleich}
-\setinterfacevariable{speech}{speech}
-\setinterfacevariable{split}{split}
-\setinterfacevariable{spot}{spot}
-\setinterfacevariable{standard}{standard}
-\setinterfacevariable{start}{start}
-\setinterfacevariable{starter}{starter}
-\setinterfacevariable{sticker}{sticker}
-\setinterfacevariable{stop}{stop}
-\setinterfacevariable{stopper}{trenner}
-\setinterfacevariable{stretch}{strecken}
-\setinterfacevariable{stretched}{stretched}
-\setinterfacevariable{strict}{streng}
-\setinterfacevariable{strong}{strong}
-\setinterfacevariable{strut}{strut}
-\setinterfacevariable{sub}{unter}
-\setinterfacevariable{subbackward}{unterrueckwaerts}
-\setinterfacevariable{subformula}{subformel}
-\setinterfacevariable{subforward}{untervorwaerts}
-\setinterfacevariable{subject}{thema}
-\setinterfacevariable{subpage}{unterseite}
-\setinterfacevariable{subs}{subs}
-\setinterfacevariable{subsection}{unterabsatz}
-\setinterfacevariable{subsubject}{unterthema}
-\setinterfacevariable{subsubsection}{unterunterabsatz}
-\setinterfacevariable{subsubsubject}{unterunterthema}
-\setinterfacevariable{subsubsubsection}{unterunterunterabsatz}
-\setinterfacevariable{subsubsubsubject}{unterunterunterthema}
-\setinterfacevariable{subsubsubsubsection}{unterunterunterunterabsatz}
-\setinterfacevariable{subsubsubsubsubject}{unterunterunterunterthema}
-\setinterfacevariable{subsubsubsubsubsection}{unterunterunterunterunterabsatz}
-\setinterfacevariable{subsubsubsubsubsubject}{unterunterunterunterunterthema}
-\setinterfacevariable{subsubsubsubsubsubsection}{unterunterunterunterunterunterabsatz}
-\setinterfacevariable{subsubsubsubsubsubsubject}{unterunterunterunterunterunterthema}
-\setinterfacevariable{subsubsubsubsubsubsubsection}{unterunterunterunterunterunterunterabsatz}
-\setinterfacevariable{subsubsubsubsubsubsubsubject}{unterunterunterunterunterunterunterthema}
-\setinterfacevariable{subsubsubsubsubsubsubsubsection}{unterunterunterunterunterunterunterunterabsatz}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubject}{unterunterunterunterunterunterunterunterthema}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{unterunterunterunterunterunterunterunterunterabsatz}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{unterunterunterunterunterunterunterunterunterthema}
-\setinterfacevariable{sunday}{sonntag}
-\setinterfacevariable{support}{support}
-\setinterfacevariable{sym}{sym}
-\setinterfacevariable{symbol}{symbol}
-\setinterfacevariable{synchronize}{synchronize}
-\setinterfacevariable{synonym}{synonym}
-\setinterfacevariable{system}{systeme}
-\setinterfacevariable{table}{tabelle}
-\setinterfacevariable{tablehead}{tabellenueberschrift}
-\setinterfacevariable{tables}{tabellen}
-\setinterfacevariable{tabletail}{tabellenende}
-\setinterfacevariable{tabulate}{tabulator}
-\setinterfacevariable{tabulatehead}{tabulatehead}
-\setinterfacevariable{tabulatetail}{tabulatetail}
-\setinterfacevariable{tall}{lang}
-\setinterfacevariable{teletype}{fernschreiber}
-\setinterfacevariable{temporary}{temporaer}
-\setinterfacevariable{test}{test}
-\setinterfacevariable{text}{text}
-\setinterfacevariable{textnote}{textnote}
-\setinterfacevariable{three}{drei}
-\setinterfacevariable{thursday}{donnerstag}
-\setinterfacevariable{tight}{tight}
-\setinterfacevariable{title}{titel}
-\setinterfacevariable{toggle}{toggle}
-\setinterfacevariable{tolerant}{tolerant}
-\setinterfacevariable{top}{oben}
-\setinterfacevariable{tuesday}{dienstag}
-\setinterfacevariable{two}{zwei}
-\setinterfacevariable{txt}{txt}
-\setinterfacevariable{type}{tippen}
-\setinterfacevariable{typing}{tippen}
-\setinterfacevariable{unavailable}{nichtverfuegbar}
-\setinterfacevariable{underbar}{unterstrichen}
-\setinterfacevariable{underbars}{unterstreichen}
-\setinterfacevariable{understrike}{understrike}
-\setinterfacevariable{understrikes}{understrikes}
-\setinterfacevariable{unframed}{unframed}
-\setinterfacevariable{unicode}{unicode}
-\setinterfacevariable{unit}{einheit}
-\setinterfacevariable{units}{einheiten}
-\setinterfacevariable{unknown}{unbekannt}
-\setinterfacevariable{unpacked}{ungepackt}
-\setinterfacevariable{up}{up}
-\setinterfacevariable{url}{url}
-\setinterfacevariable{used}{verwende}
-\setinterfacevariable{value}{wert}
-\setinterfacevariable{vertical}{vertikal}
-\setinterfacevariable{very}{sehr}
-\setinterfacevariable{verystrict}{sehrstreng}
-\setinterfacevariable{verytolerant}{sehrtolerant}
-\setinterfacevariable{vfenced}{vfenced}
-\setinterfacevariable{vulgarfraction}{vulgarfraction}
-\setinterfacevariable{weak}{weak}
-\setinterfacevariable{wednesday}{mittwoch}
-\setinterfacevariable{week}{woche}
-\setinterfacevariable{weekday}{wochentag}
-\setinterfacevariable{white}{weiss}
-\setinterfacevariable{wide}{breit}
-\setinterfacevariable{width}{breite}
-\setinterfacevariable{word}{wort}
-\setinterfacevariable{words}{words}
-\setinterfacevariable{xml}{xml}
-\setinterfacevariable{year}{jahr}
-\setinterfacevariable{yes}{ja}
-% definitions for interface constants for language de
-%
-\setinterfaceconstant{action}{aktion}
-\setinterfaceconstant{address}{adresse}
-\setinterfaceconstant{after}{nach}
-\setinterfaceconstant{afterhead}{nachkopf}
-\setinterfaceconstant{afterkey}{nachtaste}
-\setinterfaceconstant{aftersection}{aftersection}
-\setinterfaceconstant{align}{ausrichtung}
-\setinterfaceconstant{alignbottom}{alignbottom}
-\setinterfaceconstant{aligncharacter}{aligncharacter}
-\setinterfaceconstant{alignmentcharacter}{alignmentcharacter}
-\setinterfaceconstant{alignmentleftsample}{alignmentleftsample}
-\setinterfaceconstant{alignmentleftwidth}{alignmentleftwidth}
-\setinterfaceconstant{alignmentrightsample}{alignmentrightsample}
-\setinterfaceconstant{alignmentrightwidth}{alignmentrightwidth}
-\setinterfaceconstant{alignsymbol}{alignsymbol}
-\setinterfaceconstant{aligntitle}{titelausrichten}
-\setinterfaceconstant{alternative}{alternative}
-\setinterfaceconstant{anchor}{anchor}
-\setinterfaceconstant{anchoring}{anchoring}
-\setinterfaceconstant{andtext}{andtext}
-\setinterfaceconstant{apa}{apa}
-\setinterfaceconstant{arguments}{arguments}
-\setinterfaceconstant{arrow}{pfeil}
-\setinterfaceconstant{artauthor}{artauthor}
-\setinterfaceconstant{artauthoretaldisplay}{artauthoretaldisplay}
-\setinterfaceconstant{artauthoretallimit}{artauthoretallimit}
-\setinterfaceconstant{artauthoretaltext}{artauthoretaltext}
-\setinterfaceconstant{artoffset}{artoffset}
-\setinterfaceconstant{at}{bei}
-\setinterfaceconstant{author}{autor}
-\setinterfaceconstant{authorconversion}{authorconversion}
-\setinterfaceconstant{authoretaldisplay}{authoretaldisplay}
-\setinterfaceconstant{authoretallimit}{authoretallimit}
-\setinterfaceconstant{authoretaltext}{authoretaltext}
-\setinterfaceconstant{auto}{auto}
-\setinterfaceconstant{autocase}{autocase}
-\setinterfaceconstant{autofile}{autofile}
-\setinterfaceconstant{autofocus}{autofocus}
-\setinterfaceconstant{autohang}{autohang}
-\setinterfaceconstant{autostrut}{autostrut}
-\setinterfaceconstant{autowidth}{autobreite}
-\setinterfaceconstant{availableheight}{availableheight}
-\setinterfaceconstant{availablewidth}{availablewidth}
-\setinterfaceconstant{axis}{achsen}
-\setinterfaceconstant{background}{hintergrund}
-\setinterfaceconstant{backgroundcolor}{hintergrundfarbe}
-\setinterfaceconstant{backgroundcorner}{hintergrundwinkel}
-\setinterfaceconstant{backgrounddepth}{hintergrundtiefe}
-\setinterfaceconstant{backgroundoffset}{hintergrundoffset}
-\setinterfaceconstant{backgroundradius}{hintergrundradius}
-\setinterfaceconstant{backgroundscreen}{hintergrundraster}
-\setinterfaceconstant{backreference}{backreference}
-\setinterfaceconstant{backspace}{rumpfspatium}
-\setinterfaceconstant{balance}{ausgleichen}
-\setinterfaceconstant{before}{vor}
-\setinterfaceconstant{beforehead}{vorkopf}
-\setinterfaceconstant{beforesection}{beforesection}
-\setinterfaceconstant{bet}{bet}
-\setinterfaceconstant{bidi}{bidi}
-\setinterfaceconstant{big}{gross}
-\setinterfaceconstant{blank}{blanko}
-\setinterfaceconstant{bleedoffset}{bleedoffset}
-\setinterfaceconstant{blockway}{blockauf}
-\setinterfaceconstant{bodyfont}{fliesstext}
-\setinterfaceconstant{boffset}{boffset}
-\setinterfaceconstant{boldfeatures}{boldfeatures}
-\setinterfaceconstant{boldfont}{boldfont}
-\setinterfaceconstant{bolditalicfeatures}{bolditalicfeatures}
-\setinterfaceconstant{bolditalicfont}{bolditalicfont}
-\setinterfaceconstant{boldslantedfeatures}{boldslantedfeatures}
-\setinterfaceconstant{boldslantedfont}{boldslantedfont}
-\setinterfaceconstant{bookmark}{bookmark}
-\setinterfaceconstant{bottom}{unten}
-\setinterfaceconstant{bottomafter}{bottomafter}
-\setinterfaceconstant{bottombefore}{bottombefore}
-\setinterfaceconstant{bottomcommand}{bottomcommand}
-\setinterfaceconstant{bottomdistance}{abstandunten}
-\setinterfaceconstant{bottomframe}{untenrahmen}
-\setinterfaceconstant{bottomoffset}{untenoffset}
-\setinterfaceconstant{bottomspace}{bottomspace}
-\setinterfaceconstant{bottomstate}{untenstatus}
-\setinterfaceconstant{break}{break}
-\setinterfaceconstant{buffer}{buffer}
-\setinterfaceconstant{cache}{cache}
-\setinterfaceconstant{calculate}{berechnen}
-\setinterfaceconstant{category}{category}
-\setinterfaceconstant{ccommand}{cbefehl}
-\setinterfaceconstant{character}{character}
-\setinterfaceconstant{characters}{characters}
-\setinterfaceconstant{check}{check}
-\setinterfaceconstant{click}{klick}
-\setinterfaceconstant{clickin}{klickin}
-\setinterfaceconstant{clickout}{klickaus}
-\setinterfaceconstant{clipoffset}{clipoffset}
-\setinterfaceconstant{closeaction}{schliessenaktion}
-\setinterfaceconstant{closecommand}{closecommand}
-\setinterfaceconstant{closepage}{closepage}
-\setinterfaceconstant{closepageaction}{closepageaction}
-\setinterfaceconstant{closesymbol}{closesymbol}
-\setinterfaceconstant{color}{farbe}
-\setinterfaceconstant{column}{spalte}
-\setinterfaceconstant{columndistance}{spaltenabstand}
-\setinterfaceconstant{columns}{spalten}
-\setinterfaceconstant{comma}{comma}
-\setinterfaceconstant{command}{befehl}
-\setinterfaceconstant{commandafter}{zumbefehl}
-\setinterfaceconstant{commandbefore}{vorbefehl}
-\setinterfaceconstant{commands}{befehle}
-\setinterfaceconstant{comment}{comment}
-\setinterfaceconstant{commentchar}{commentchar}
-\setinterfaceconstant{commentoffset}{commentoffset}
-\setinterfaceconstant{compact}{compact}
-\setinterfaceconstant{component}{component}
-\setinterfaceconstant{compoundhyphen}{compoundhyphen}
-\setinterfaceconstant{compress}{compress}
-\setinterfaceconstant{compressdistance}{compressdistance}
-\setinterfaceconstant{compressmethod}{compressmethod}
-\setinterfaceconstant{compressseparator}{compressseparator}
-\setinterfaceconstant{compressstopper}{compressstopper}
-\setinterfaceconstant{concerns}{concerns}
-\setinterfaceconstant{connector}{connector}
-\setinterfaceconstant{continue}{fortsetzen}
-\setinterfaceconstant{contrastcolor}{kontrastfarbe}
-\setinterfaceconstant{controls}{controls}
-\setinterfaceconstant{conversion}{konversion}
-\setinterfaceconstant{convertfile}{konvertieredatei}
-\setinterfaceconstant{copies}{copies}
-\setinterfaceconstant{corner}{winkel}
-\setinterfaceconstant{coupling}{verknuepfung}
-\setinterfaceconstant{couplingway}{verkopplungsart}
-\setinterfaceconstant{criterium}{kriterium}
-\setinterfaceconstant{cropoffset}{cropoffset}
-\setinterfaceconstant{crossreference}{crossreference}
-\setinterfaceconstant{cssfile}{cssfile}
-\setinterfaceconstant{current}{aktuell}
-\setinterfaceconstant{cutspace}{cutspace}
-\setinterfaceconstant{dash}{strich}
-\setinterfaceconstant{dat}{dat}
-\setinterfaceconstant{database}{database}
-\setinterfaceconstant{dataset}{dataset}
-\setinterfaceconstant{date}{datum}
-\setinterfaceconstant{deepnumbercommand}{deepnumbercommand}
-\setinterfaceconstant{deeptextcommand}{deeptextcommand}
-\setinterfaceconstant{default}{default}
-\setinterfaceconstant{defaultheight}{defaultheight}
-\setinterfaceconstant{defaultwidth}{defaultwidth}
-\setinterfaceconstant{define}{define}
-\setinterfaceconstant{delay}{wartezeit}
-\setinterfaceconstant{depth}{tiefe}
-\setinterfaceconstant{depthcorrection}{tiefekorrektur}
-\setinterfaceconstant{direction}{richtung}
-\setinterfaceconstant{directory}{verzeichnis}
-\setinterfaceconstant{display}{bildschirm}
-\setinterfaceconstant{displaythreshold}{displaythreshold}
-\setinterfaceconstant{distance}{abstand}
-\setinterfaceconstant{domain}{domain}
-\setinterfaceconstant{dot}{punkt}
-\setinterfaceconstant{doublesided}{doppelseitig}
-\setinterfaceconstant{down}{down}
-\setinterfaceconstant{dummy}{dummy}
-\setinterfaceconstant{dx}{dx}
-\setinterfaceconstant{dy}{dy}
-\setinterfaceconstant{edge}{kante}
-\setinterfaceconstant{edgedistance}{kantenabstand}
-\setinterfaceconstant{editor}{editor}
-\setinterfaceconstant{editoretaldisplay}{editoretaldisplay}
-\setinterfaceconstant{editoretallimit}{editoretallimit}
-\setinterfaceconstant{editoretaltext}{editoretaltext}
-\setinterfaceconstant{empty}{leer}
-\setinterfaceconstant{entities}{entities}
-\setinterfaceconstant{entries}{entries}
-\setinterfaceconstant{equalheight}{equalheight}
-\setinterfaceconstant{equalwidth}{equalwidth}
-\setinterfaceconstant{escape}{escape}
-\setinterfaceconstant{etaldisplay}{etaldisplay}
-\setinterfaceconstant{etallimit}{etallimit}
-\setinterfaceconstant{etaloption}{etaloption}
-\setinterfaceconstant{etaltext}{etaltext}
-\setinterfaceconstant{evenmargin}{geraderand}
-\setinterfaceconstant{exact}{exact}
-\setinterfaceconstant{exitoffset}{exitoffset}
-\setinterfaceconstant{expansion}{expansion}
-\setinterfaceconstant{export}{export}
-\setinterfaceconstant{extras}{extras}
-\setinterfaceconstant{factor}{faktor}
-\setinterfaceconstant{fallback}{fallback}
-\setinterfaceconstant{fallbacks}{fallbacks}
-\setinterfaceconstant{family}{familie}
-\setinterfaceconstant{features}{features}
-\setinterfaceconstant{featureset}{featureset}
-\setinterfaceconstant{fences}{fences}
-\setinterfaceconstant{field}{field}
-\setinterfaceconstant{fieldbackgroundcolor}{feldhintergrundfarbe}
-\setinterfaceconstant{fieldframecolor}{feldrahmenfarbe}
-\setinterfaceconstant{fieldlayer}{fieldlayer}
-\setinterfaceconstant{fieldoffset}{feldoffset}
-\setinterfaceconstant{file}{datei}
-\setinterfaceconstant{filler}{filler}
-\setinterfaceconstant{filter}{filter}
-\setinterfaceconstant{filtercommand}{filtercommand}
-\setinterfaceconstant{finalnamesep}{finalnamesep}
-\setinterfaceconstant{finalpagesep}{finalpagesep}
-\setinterfaceconstant{finalpubsep}{finalpubsep}
-\setinterfaceconstant{first}{erste}
-\setinterfaceconstant{firstnamesep}{firstnamesep}
-\setinterfaceconstant{firstpage}{ersteseite}
-\setinterfaceconstant{focus}{focus}
-\setinterfaceconstant{focusin}{focusin}
-\setinterfaceconstant{focusoffset}{focusoffset}
-\setinterfaceconstant{focusout}{focusout}
-\setinterfaceconstant{font}{font}
-\setinterfaceconstant{footer}{fusszeile}
-\setinterfaceconstant{footerdistance}{fusszeilenabstand}
-\setinterfaceconstant{footerstate}{fusszeilenstatus}
-\setinterfaceconstant{force}{zwinge}
-\setinterfaceconstant{foregroundcolor}{foregroundcolor}
-\setinterfaceconstant{foregroundstyle}{foregroundstyle}
-\setinterfaceconstant{format}{formatieren}
-\setinterfaceconstant{fractions}{fractions}
-\setinterfaceconstant{frame}{rahmen}
-\setinterfaceconstant{framecolor}{rahmenfarbe}
-\setinterfaceconstant{framecorner}{rahmenwinkel}
-\setinterfaceconstant{framedepth}{rahmentiefe}
-\setinterfaceconstant{frameoffset}{rahmenoffset}
-\setinterfaceconstant{frameradius}{rahmenradius}
-\setinterfaceconstant{frames}{umrahmen}
-\setinterfaceconstant{freeregion}{freeregion}
-\setinterfaceconstant{from}{von}
-\setinterfaceconstant{functioncolor}{functioncolor}
-\setinterfaceconstant{functionstyle}{functionstyle}
-\setinterfaceconstant{get}{hole}
-\setinterfaceconstant{global}{global}
-\setinterfaceconstant{goodies}{goodies}
-\setinterfaceconstant{grid}{gritter}
-\setinterfaceconstant{group}{group}
-\setinterfaceconstant{groupsuffix}{groupsuffix}
-\setinterfaceconstant{hang}{haengend}
-\setinterfaceconstant{hcompact}{hcompact}
-\setinterfaceconstant{headalign}{headalign}
-\setinterfaceconstant{headcolor}{kopffarbe}
-\setinterfaceconstant{headcommand}{headcommand}
-\setinterfaceconstant{headconversion}{headconversion}
-\setinterfaceconstant{header}{kopfzeile}
-\setinterfaceconstant{headerdistance}{kopfzeilenabstand}
-\setinterfaceconstant{headerstate}{kopfzeilenstatus}
-\setinterfaceconstant{headlabel}{headlabel}
-\setinterfaceconstant{headnumber}{kopfnummer}
-\setinterfaceconstant{headseparator}{headseparator}
-\setinterfaceconstant{headstyle}{kopfstil}
-\setinterfaceconstant{height}{hoehe}
-\setinterfaceconstant{hfactor}{hfaktor}
-\setinterfaceconstant{hfil}{hfil}
-\setinterfaceconstant{hidenumber}{hidenumber}
-\setinterfaceconstant{hoffset}{hoffset}
-\setinterfaceconstant{horizontal}{horizontal}
-\setinterfaceconstant{horoffset}{rumpfabstand}
-\setinterfaceconstant{hyphen}{hyphen}
-\setinterfaceconstant{hyphens}{hyphens}
-\setinterfaceconstant{icommand}{ibefehl}
-\setinterfaceconstant{ignore}{ignore}
-\setinterfaceconstant{in}{in}
-\setinterfaceconstant{inbetween}{zwischen}
-\setinterfaceconstant{increment}{erhoehen}
-\setinterfaceconstant{incrementnumber}{nummererhoehen}
-\setinterfaceconstant{indenting}{einziehen}
-\setinterfaceconstant{indentlist}{indentlist}
-\setinterfaceconstant{indentnext}{ziehefolgendeein}
-\setinterfaceconstant{index}{index}
-\setinterfaceconstant{indicator}{indikator}
-\setinterfaceconstant{initialsep}{initialsep}
-\setinterfaceconstant{inlinethreshold}{inlinethreshold}
-\setinterfaceconstant{inner}{innen}
-\setinterfaceconstant{innermargin}{innermargin}
-\setinterfaceconstant{inputfile}{inputfile}
-\setinterfaceconstant{insidesection}{insidesection}
-\setinterfaceconstant{instance}{instance}
-\setinterfaceconstant{intent}{intent}
-\setinterfaceconstant{interaction}{interaktion}
-\setinterfaceconstant{interlinespace}{zeilenabstande}
-\setinterfaceconstant{internalgrid}{internalgrid}
-\setinterfaceconstant{italicfeatures}{italicfeatures}
-\setinterfaceconstant{italicfont}{italicfont}
-\setinterfaceconstant{itemalign}{itemalign}
-\setinterfaceconstant{items}{posten}
-\setinterfaceconstant{joiners}{joiners}
-\setinterfaceconstant{journalconversion}{journalconversion}
-\setinterfaceconstant{juniorsep}{juniorsep}
-\setinterfaceconstant{keeptogether}{keeptogether}
-\setinterfaceconstant{ken}{ken}
-\setinterfaceconstant{keyexpansion}{keyexpansion}
-\setinterfaceconstant{keys}{keys}
-\setinterfaceconstant{keyword}{keyword}
-\setinterfaceconstant{label}{label}
-\setinterfaceconstant{labelalternative}{labelalternative}
-\setinterfaceconstant{labelcolor}{labelcolor}
-\setinterfaceconstant{labeloffset}{labeloffset}
-\setinterfaceconstant{labelstyle}{labelstyle}
-\setinterfaceconstant{language}{language}
-\setinterfaceconstant{last}{last}
-\setinterfaceconstant{lastnamesep}{lastnamesep}
-\setinterfaceconstant{lastpage}{letzteseite}
-\setinterfaceconstant{lastpagesep}{lastpagesep}
-\setinterfaceconstant{lastpubsep}{lastpubsep}
-\setinterfaceconstant{layout}{layout}
-\setinterfaceconstant{left}{links}
-\setinterfaceconstant{leftcolor}{linkerfarbe}
-\setinterfaceconstant{leftcompoundhyphen}{leftcompoundhyphen}
-\setinterfaceconstant{leftedge}{linkekante}
-\setinterfaceconstant{leftedgedistance}{linkerkantenabstand}
-\setinterfaceconstant{leftframe}{linkerrahmen}
-\setinterfaceconstant{lefthyphen}{lefthyphen}
-\setinterfaceconstant{leftmargin}{linkerrand}
-\setinterfaceconstant{leftmargindistance}{linkerrandabstand}
-\setinterfaceconstant{leftoffset}{linkeroffset}
-\setinterfaceconstant{leftquotation}{linkerzitat}
-\setinterfaceconstant{leftquote}{linkerzitieren}
-\setinterfaceconstant{leftsample}{leftsample}
-\setinterfaceconstant{leftsentence}{linkersatz}
-\setinterfaceconstant{leftspeech}{leftspeech}
-\setinterfaceconstant{leftstyle}{linkerstil}
-\setinterfaceconstant{leftsubsentence}{linkersubsatz}
-\setinterfaceconstant{lefttext}{linkertext}
-\setinterfaceconstant{leftwidth}{linkerbreite}
-\setinterfaceconstant{leftwords}{leftwords}
-\setinterfaceconstant{less}{less}
-\setinterfaceconstant{level}{niveau}
-\setinterfaceconstant{levels}{niveaus}
-\setinterfaceconstant{limittext}{limittext}
-\setinterfaceconstant{line}{zeile}
-\setinterfaceconstant{linecorrection}{zeilekorrektur}
-\setinterfaceconstant{linedirection}{linedirection}
-\setinterfaceconstant{lines}{zeilen}
-\setinterfaceconstant{list}{liste}
-\setinterfaceconstant{listtext}{listtext}
-\setinterfaceconstant{local}{lokal}
-\setinterfaceconstant{location}{platz}
-\setinterfaceconstant{loffset}{loffset}
-\setinterfaceconstant{logo}{logo}
-\setinterfaceconstant{logos}{logos}
-\setinterfaceconstant{marcolor}{beschrfarbe}
-\setinterfaceconstant{margin}{marginalie}
-\setinterfaceconstant{margindistance}{marginalabstand}
-\setinterfaceconstant{marginedge}{marginalkante}
-\setinterfaceconstant{marginedgetext}{marginalkantetext}
-\setinterfaceconstant{margintext}{marginaltext}
-\setinterfaceconstant{mark}{mark}
-\setinterfaceconstant{marking}{beschriftung}
-\setinterfaceconstant{marstyle}{beschrstil}
-\setinterfaceconstant{mask}{mask}
-\setinterfaceconstant{mathclass}{mathclass}
-\setinterfaceconstant{mathlimits}{mathlimits}
-\setinterfaceconstant{mathstyle}{mathstyle}
-\setinterfaceconstant{max}{max}
-\setinterfaceconstant{maxdepth}{maxdepth}
-\setinterfaceconstant{maxheight}{maxhoehe}
-\setinterfaceconstant{maxwidth}{maxbreite}
-\setinterfaceconstant{maybeyear}{maybeyear}
-\setinterfaceconstant{menu}{menue}
-\setinterfaceconstant{method}{methode}
-\setinterfaceconstant{middle}{mittig}
-\setinterfaceconstant{middlecolor}{middlecolor}
-\setinterfaceconstant{middlecommand}{middlecommand}
-\setinterfaceconstant{middlespeech}{middlespeech}
-\setinterfaceconstant{middlestyle}{middlestyle}
-\setinterfaceconstant{middletext}{mittigertext}
-\setinterfaceconstant{middlewidth}{middlewidth}
-\setinterfaceconstant{midsentence}{midsentence}
-\setinterfaceconstant{min}{min}
-\setinterfaceconstant{mindepth}{mindepth}
-\setinterfaceconstant{minheight}{minhoehe}
-\setinterfaceconstant{minwidth}{minbreite}
-\setinterfaceconstant{moffset}{moffset}
-\setinterfaceconstant{monthconversion}{monthconversion}
-\setinterfaceconstant{more}{more}
-\setinterfaceconstant{mpdepth}{mpdepth}
-\setinterfaceconstant{mpheight}{mpheight}
-\setinterfaceconstant{mpoffset}{mpoffset}
-\setinterfaceconstant{mpwidth}{mpwidth}
-\setinterfaceconstant{n}{n}
-\setinterfaceconstant{name}{name}
-\setinterfaceconstant{namesep}{namesep}
-\setinterfaceconstant{nbottom}{nunten}
-\setinterfaceconstant{nc}{nc}
-\setinterfaceconstant{next}{folgende}
-\setinterfaceconstant{nextleft}{nextleft}
-\setinterfaceconstant{nextleftquotation}{nextleftquotation}
-\setinterfaceconstant{nextright}{nextright}
-\setinterfaceconstant{nextrightquotation}{nextrightquotation}
-\setinterfaceconstant{nl}{nl}
-\setinterfaceconstant{nleft}{nlinks}
-\setinterfaceconstant{nlines}{zzeile}
-\setinterfaceconstant{norm}{norm}
-\setinterfaceconstant{note}{note}
-\setinterfaceconstant{notes}{notes}
-\setinterfaceconstant{nr}{nr}
-\setinterfaceconstant{nright}{nrechts}
-\setinterfaceconstant{ntop}{noben}
-\setinterfaceconstant{number}{nummer}
-\setinterfaceconstant{numberalign}{numberalign}
-\setinterfaceconstant{numbercolor}{nummernfarbe}
-\setinterfaceconstant{numbercommand}{nummerbefehl}
-\setinterfaceconstant{numberconversion}{numberconversion}
-\setinterfaceconstant{numberconversionset}{numberconversionset}
-\setinterfaceconstant{numberdistance}{numberdistance}
-\setinterfaceconstant{numbering}{nummerierung}
-\setinterfaceconstant{numberorder}{numberorder}
-\setinterfaceconstant{numberprefix}{numberprefix}
-\setinterfaceconstant{numbersegments}{numbersegments}
-\setinterfaceconstant{numberseparator}{nummernseperator}
-\setinterfaceconstant{numberseparatorset}{numberseparatorset}
-\setinterfaceconstant{numberset}{numberset}
-\setinterfaceconstant{numberstarter}{numberstarter}
-\setinterfaceconstant{numberstopper}{numberstopper}
-\setinterfaceconstant{numberstrut}{numberstrut}
-\setinterfaceconstant{numberstyle}{nummernstil}
-\setinterfaceconstant{numberwidth}{numberwidth}
-\setinterfaceconstant{nx}{nx}
-\setinterfaceconstant{ny}{ny}
-\setinterfaceconstant{object}{objekt}
-\setinterfaceconstant{obstruction}{gesperrt}
-\setinterfaceconstant{oddmargin}{ungeraderand}
-\setinterfaceconstant{offset}{offset}
-\setinterfaceconstant{openaction}{oeffenaktion}
-\setinterfaceconstant{openpage}{openpage}
-\setinterfaceconstant{openpageaction}{openpageaction}
-\setinterfaceconstant{openup}{openup}
-\setinterfaceconstant{opticalsize}{opticalsize}
-\setinterfaceconstant{option}{option}
-\setinterfaceconstant{order}{order}
-\setinterfaceconstant{orientation}{orientation}
-\setinterfaceconstant{otherstext}{otherstext}
-\setinterfaceconstant{outermargin}{outermargin}
-\setinterfaceconstant{overprint}{overprint}
-\setinterfaceconstant{ownerpassword}{ownerpassword}
-\setinterfaceconstant{ownnumber}{eigenenummer}
-\setinterfaceconstant{packcriterium}{packcriterium}
-\setinterfaceconstant{page}{seite}
-\setinterfaceconstant{pageboundaries}{seitenbegrenzung}
-\setinterfaceconstant{pagecolor}{seitenfarbe}
-\setinterfaceconstant{pagecolormodel}{pagecolormodel}
-\setinterfaceconstant{pagecommand}{seitenbefehl}
-\setinterfaceconstant{pageconnector}{pageconnector}
-\setinterfaceconstant{pageconversion}{pageconversion}
-\setinterfaceconstant{pageconversionset}{pageconversionset}
-\setinterfaceconstant{pageleft}{pageleft}
-\setinterfaceconstant{pagemethod}{pagemethod}
-\setinterfaceconstant{pagenumber}{seitennummer}
-\setinterfaceconstant{pageprefix}{pageprefix}
-\setinterfaceconstant{pageprefixconnector}{pageprefixconnector}
-\setinterfaceconstant{pageprefixconversion}{pageprefixconversion}
-\setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset}
-\setinterfaceconstant{pageprefixsegments}{pageprefixsegments}
-\setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset}
-\setinterfaceconstant{pageprefixset}{pageprefixset}
-\setinterfaceconstant{pageprefixstarter}{pageprefixstarter}
-\setinterfaceconstant{pageprefixstopper}{pageprefixstopper}
-\setinterfaceconstant{pageright}{pageright}
-\setinterfaceconstant{pagesegments}{pagesegments}
-\setinterfaceconstant{pagesep}{pagesep}
-\setinterfaceconstant{pageseparatorset}{pageseparatorset}
-\setinterfaceconstant{pageset}{pageset}
-\setinterfaceconstant{pagestarter}{pagestarter}
-\setinterfaceconstant{pagestate}{pagestate}
-\setinterfaceconstant{pagestopper}{pagestopper}
-\setinterfaceconstant{pagestyle}{seitenstil}
-\setinterfaceconstant{palet}{palette}
-\setinterfaceconstant{paper}{papier}
-\setinterfaceconstant{paragraph}{absatz}
-\setinterfaceconstant{period}{period}
-\setinterfaceconstant{place}{platziere}
-\setinterfaceconstant{placehead}{setzekopf}
-\setinterfaceconstant{placeholder}{placeholder}
-\setinterfaceconstant{placestopper}{setzetrenner}
-\setinterfaceconstant{position}{position}
-\setinterfaceconstant{prefix}{prefix}
-\setinterfaceconstant{prefixconnector}{prefixconnector}
-\setinterfaceconstant{prefixconversion}{prefixconversion}
-\setinterfaceconstant{prefixconversionset}{prefixconversionset}
-\setinterfaceconstant{prefixsegments}{prefixsegments}
-\setinterfaceconstant{prefixseparatorset}{prefixseparatorset}
-\setinterfaceconstant{prefixset}{prefixset}
-\setinterfaceconstant{prefixstarter}{prefixstarter}
-\setinterfaceconstant{prefixstopper}{prefixstopper}
-\setinterfaceconstant{preset}{voreinstellung}
-\setinterfaceconstant{preview}{vorschau}
-\setinterfaceconstant{previous}{vorige}
-\setinterfaceconstant{previousnumber}{vorigenummer}
-\setinterfaceconstant{print}{print}
-\setinterfaceconstant{printable}{druckbar}
-\setinterfaceconstant{process}{process}
-\setinterfaceconstant{processors}{processors}
-\setinterfaceconstant{profile}{profile}
-\setinterfaceconstant{properties}{properties}
-\setinterfaceconstant{pubsep}{pubsep}
-\setinterfaceconstant{quotechar}{quotechar}
-\setinterfaceconstant{radius}{radius}
-\setinterfaceconstant{random}{zufaellig}
-\setinterfaceconstant{range}{range}
-\setinterfaceconstant{reduction}{reduktion}
-\setinterfaceconstant{ref}{ref}
-\setinterfaceconstant{refcommand}{refcommand}
-\setinterfaceconstant{reference}{referenz}
-\setinterfaceconstant{referencemethod}{referencemethod}
-\setinterfaceconstant{referenceprefix}{referenceprefix}
-\setinterfaceconstant{referencetext}{referencetext}
-\setinterfaceconstant{referencing}{referieren}
-\setinterfaceconstant{region}{region}
-\setinterfaceconstant{regionin}{regionin}
-\setinterfaceconstant{regionout}{regionaus}
-\setinterfaceconstant{register}{register}
-\setinterfaceconstant{regularfeatures}{regularfeatures}
-\setinterfaceconstant{regularfont}{regularfont}
-\setinterfaceconstant{renderingsetup}{renderingsetup}
-\setinterfaceconstant{repeat}{wiederholen}
-\setinterfaceconstant{reset}{reset}
-\setinterfaceconstant{resetnumber}{resetnumber}
-\setinterfaceconstant{resolution}{aufloesung}
-\setinterfaceconstant{resources}{resources}
-\setinterfaceconstant{reverse}{reverse}
-\setinterfaceconstant{right}{rechts}
-\setinterfaceconstant{rightchars}{rightchars}
-\setinterfaceconstant{rightcolor}{rechterfarbe}
-\setinterfaceconstant{rightcompoundhyphen}{rightcompoundhyphen}
-\setinterfaceconstant{rightedge}{rechtekante}
-\setinterfaceconstant{rightedgedistance}{rechterkantenabstand}
-\setinterfaceconstant{rightframe}{rechterrahmen}
-\setinterfaceconstant{righthyphen}{righthyphen}
-\setinterfaceconstant{rightmargin}{rechterrand}
-\setinterfaceconstant{rightmargindistance}{rechterrandabstand}
-\setinterfaceconstant{rightoffset}{rechterabstand}
-\setinterfaceconstant{rightquotation}{rechterzitat}
-\setinterfaceconstant{rightquote}{rechterzitieren}
-\setinterfaceconstant{rightsample}{rightsample}
-\setinterfaceconstant{rightsentence}{rechtersatz}
-\setinterfaceconstant{rightspeech}{rightspeech}
-\setinterfaceconstant{rightstyle}{rechterstil}
-\setinterfaceconstant{rightsubsentence}{rechtersubsatz}
-\setinterfaceconstant{righttext}{rechtertext}
-\setinterfaceconstant{rightwidth}{rechterbreite}
-\setinterfaceconstant{rightwords}{rightwords}
-\setinterfaceconstant{roffset}{roffset}
-\setinterfaceconstant{rotation}{rotation}
-\setinterfaceconstant{rule}{linie}
-\setinterfaceconstant{rulecolor}{linienfarbe}
-\setinterfaceconstant{rulecommand}{rulecommand}
-\setinterfaceconstant{rulethickness}{liniendicke}
-\setinterfaceconstant{samepage}{selbeseite}
-\setinterfaceconstant{sample}{muster}
-\setinterfaceconstant{samplesize}{samplesize}
-\setinterfaceconstant{saveinlist}{saveinlist}
-\setinterfaceconstant{scale}{format}
-\setinterfaceconstant{scope}{bereich}
-\setinterfaceconstant{screen}{raster}
-\setinterfaceconstant{section}{abschnitt}
-\setinterfaceconstant{sectionblock}{sectionblock}
-\setinterfaceconstant{sectionconversion}{sectionconversion}
-\setinterfaceconstant{sectionconversionset}{sectionconversionset}
-\setinterfaceconstant{sectionnumber}{abschnittsnummer}
-\setinterfaceconstant{sectionresetset}{sectionresetset}
-\setinterfaceconstant{sectionsegments}{sectionsegments}
-\setinterfaceconstant{sectionseparatorset}{sectionseparatorset}
-\setinterfaceconstant{sectionset}{sectionset}
-\setinterfaceconstant{sectionstarter}{sectionstarter}
-\setinterfaceconstant{sectionstopper}{sectionstopper}
-\setinterfaceconstant{separator}{seperator}
-\setinterfaceconstant{separatorcolor}{separatorcolor}
-\setinterfaceconstant{separatorstyle}{separatorstyle}
-\setinterfaceconstant{set}{set}
-\setinterfaceconstant{setups}{setups}
-\setinterfaceconstant{shrink}{shrink}
-\setinterfaceconstant{side}{objektabstand}
-\setinterfaceconstant{sidealign}{sidealign}
-\setinterfaceconstant{sidemethod}{sidemethod}
-\setinterfaceconstant{sidespaceafter}{nebennachspatium}
-\setinterfaceconstant{sidespacebefore}{nebenvorspatium}
-\setinterfaceconstant{sidespaceinbetween}{sidespaceinbetween}
-\setinterfaceconstant{sidethreshold}{sidethreshold}
-\setinterfaceconstant{sign}{zeichen}
-\setinterfaceconstant{simplecommand}{simplecommand}
-\setinterfaceconstant{size}{groesse}
-\setinterfaceconstant{slantedfeatures}{slantedfeatures}
-\setinterfaceconstant{slantedfont}{slantedfont}
-\setinterfaceconstant{small}{klein}
-\setinterfaceconstant{smallcapsfeatures}{smallcapsfeatures}
-\setinterfaceconstant{smallcapsfont}{smallcapsfont}
-\setinterfaceconstant{solution}{solution}
-\setinterfaceconstant{sort}{sort}
-\setinterfaceconstant{sorttype}{sorttype}
-\setinterfaceconstant{source}{quelle}
-\setinterfaceconstant{space}{spatium}
-\setinterfaceconstant{spaceafter}{nachspatium}
-\setinterfaceconstant{spaceafterside}{spaceafterside}
-\setinterfaceconstant{spacebefore}{vorspatium}
-\setinterfaceconstant{spacebeforeside}{spacebeforeside}
-\setinterfaceconstant{spaceinbetween}{spaceinbetween}
-\setinterfaceconstant{spacing}{spatiumausgleich}
-\setinterfaceconstant{specification}{specification}
-\setinterfaceconstant{split}{split}
-\setinterfaceconstant{splitcolor}{splitcolor}
-\setinterfaceconstant{splitmethod}{splitmethod}
-\setinterfaceconstant{splitoffset}{splitoffset}
-\setinterfaceconstant{spot}{spot}
-\setinterfaceconstant{stack}{stack}
-\setinterfaceconstant{stackname}{stackname}
-\setinterfaceconstant{start}{start}
-\setinterfaceconstant{starter}{starter}
-\setinterfaceconstant{state}{status}
-\setinterfaceconstant{step}{schritt}
-\setinterfaceconstant{stop}{stop}
-\setinterfaceconstant{stopper}{abschnitttrenner}
-\setinterfaceconstant{stretch}{strecken}
-\setinterfaceconstant{strip}{strip}
-\setinterfaceconstant{strut}{strut}
-\setinterfaceconstant{style}{stil}
-\setinterfaceconstant{stylealternative}{stylealternative}
-\setinterfaceconstant{sub}{unter}
-\setinterfaceconstant{subtitle}{untertitel}
-\setinterfaceconstant{suffix}{suffix}
-\setinterfaceconstant{suffixseparator}{suffixseparator}
-\setinterfaceconstant{suffixstopper}{suffixstopper}
-\setinterfaceconstant{surnamefirstnamesep}{surnamefirstnamesep}
-\setinterfaceconstant{surnameinitialsep}{surnameinitialsep}
-\setinterfaceconstant{surnamesep}{surnamesep}
-\setinterfaceconstant{svgstyle}{svgstyle}
-\setinterfaceconstant{sx}{sx}
-\setinterfaceconstant{sy}{sy}
-\setinterfaceconstant{symalign}{symausrichtung}
-\setinterfaceconstant{symbol}{symbol}
-\setinterfaceconstant{symbolcommand}{symbolcommand}
-\setinterfaceconstant{symbolset}{symbolset}
-\setinterfaceconstant{symcolor}{symfarbe}
-\setinterfaceconstant{symstyle}{symstil}
-\setinterfaceconstant{synonym}{synonym}
-\setinterfaceconstant{synonymcolor}{synonymfarbe}
-\setinterfaceconstant{synonymcommand}{synonymbefehl}
-\setinterfaceconstant{synonymstyle}{synonymstil}
-\setinterfaceconstant{tab}{tab}
-\setinterfaceconstant{text}{text}
-\setinterfaceconstant{textalign}{textalign}
-\setinterfaceconstant{textcolor}{textfarbe}
-\setinterfaceconstant{textcommand}{textbefehl}
-\setinterfaceconstant{textdistance}{textdistance}
-\setinterfaceconstant{textheight}{texthoehe}
-\setinterfaceconstant{textlayer}{textlayer}
-\setinterfaceconstant{textmargin}{textmargin}
-\setinterfaceconstant{textmethod}{textmethod}
-\setinterfaceconstant{textseparator}{textseparator}
-\setinterfaceconstant{textsize}{textgroesse}
-\setinterfaceconstant{textstate}{textstatus}
-\setinterfaceconstant{textstyle}{textstil}
-\setinterfaceconstant{textwidth}{textbreite}
-\setinterfaceconstant{threshold}{threshold}
-\setinterfaceconstant{time}{time}
-\setinterfaceconstant{title}{titel}
-\setinterfaceconstant{titlecolor}{titelfarbe}
-\setinterfaceconstant{titlecommand}{titlecommand}
-\setinterfaceconstant{titledistance}{titelabstand}
-\setinterfaceconstant{titleleft}{titleleft}
-\setinterfaceconstant{titleright}{titleright}
-\setinterfaceconstant{titlestrut}{titlestrut}
-\setinterfaceconstant{titlestyle}{titelstil}
-\setinterfaceconstant{to}{zu}
-\setinterfaceconstant{toffset}{toffset}
-\setinterfaceconstant{tolerance}{toleranz}
-\setinterfaceconstant{top}{oben}
-\setinterfaceconstant{topcommand}{topcommand}
-\setinterfaceconstant{topdistance}{obenabstand}
-\setinterfaceconstant{topframe}{obenrahmen}
-\setinterfaceconstant{topoffset}{obenoffset}
-\setinterfaceconstant{topspace}{kopfspatium}
-\setinterfaceconstant{topstate}{statusoben}
-\setinterfaceconstant{totalnumber}{totalnumber}
-\setinterfaceconstant{transform}{transform}
-\setinterfaceconstant{translate}{translate}
-\setinterfaceconstant{trimoffset}{trimoffset}
-\setinterfaceconstant{type}{typ}
-\setinterfaceconstant{unit}{einheit}
-\setinterfaceconstant{unknownreference}{unbekantereferenz}
-\setinterfaceconstant{up}{up}
-\setinterfaceconstant{urlalternative}{urlalternative}
-\setinterfaceconstant{urlspace}{urlspatium}
-\setinterfaceconstant{userpassword}{userpassword}
-\setinterfaceconstant{validate}{validieren}
-\setinterfaceconstant{values}{values}
-\setinterfaceconstant{vcommand}{vbefehl}
-\setinterfaceconstant{vcompact}{vcompact}
-\setinterfaceconstant{vector}{vector}
-\setinterfaceconstant{veroffset}{kopfoffset}
-\setinterfaceconstant{vertical}{vertikal}
-\setinterfaceconstant{vfactor}{vfaktor}
-\setinterfaceconstant{vfil}{vfil}
-\setinterfaceconstant{viewerprefix}{viewerprefix}
-\setinterfaceconstant{voffset}{voffset}
-\setinterfaceconstant{vonsep}{vonsep}
-\setinterfaceconstant{way}{art}
-\setinterfaceconstant{wfactor}{bfaktor}
-\setinterfaceconstant{white}{weiss}
-\setinterfaceconstant{width}{breite}
-\setinterfaceconstant{words}{words}
-\setinterfaceconstant{xanchor}{xanchor}
-\setinterfaceconstant{xfactor}{xfaktor}
-\setinterfaceconstant{xhtml}{xhtml}
-\setinterfaceconstant{xmax}{xmax}
-\setinterfaceconstant{xmlsetup}{xmlsetup}
-\setinterfaceconstant{xoffset}{xoffset}
-\setinterfaceconstant{xscale}{xformat}
-\setinterfaceconstant{xstep}{xschritt}
-\setinterfaceconstant{yanchor}{yanchor}
-\setinterfaceconstant{yfactor}{yfaktor}
-\setinterfaceconstant{ymax}{ymax}
-\setinterfaceconstant{yoffset}{yoffset}
-\setinterfaceconstant{yscale}{yformat}
-\setinterfaceconstant{ystep}{yschritt}
-% definitions for interface elements for language de
-%
-\setinterfaceelement{answerlines}{answerlines}
-\setinterfaceelement{answerspace}{answerspace}
-\setinterfaceelement{begin}{anfang}
-\setinterfaceelement{complete}{vollende}
-\setinterfaceelement{coupled}{verknuepft}
-\setinterfaceelement{currentlocal}{aktuelllokal}
-\setinterfaceelement{end}{ende}
-\setinterfaceelement{endsetup}{ein}
-\setinterfaceelement{get}{get}
-\setinterfaceelement{increment}{erhoehen}
-\setinterfaceelement{list}{auflisten}
-\setinterfaceelement{listof}{auflistenvon}
-\setinterfaceelement{load}{laden}
-\setinterfaceelement{local}{lokal}
-\setinterfaceelement{makeup}{umbruch}
-\setinterfaceelement{next}{folgende}
-\setinterfaceelement{place}{platziere}
-\setinterfaceelement{previous}{vorige}
-\setinterfaceelement{previouslocal}{voriglokal}
-\setinterfaceelement{reserve}{reservieren}
-\setinterfaceelement{see}{sieh}
-\setinterfaceelement{setup}{stelle}
-\setinterfaceelement{start}{start}
-\setinterfaceelement{stop}{stop}
-\setinterfaceelement{text}{text}
-\setinterfaceelement{type}{type}
-% definitions for interface commands for language de
-%
-\setinterfacecommand{Character}{Buchstabe}
-\setinterfacecommand{Characters}{Buchstaben}
-\setinterfacecommand{MONTH}{MONAT}
-\setinterfacecommand{Numbers}{Ziffern}
-\setinterfacecommand{Romannumerals}{Roemischezahlen}
-\setinterfacecommand{SmallCapped}{Kap}
-\setinterfacecommand{SmallCaps}{Kaps}
-\setinterfacecommand{WEEKDAY}{WOCHENTAG}
-\setinterfacecommand{WORD}{WORT}
-\setinterfacecommand{WORDS}{WOERTER}
-\setinterfacecommand{Word}{Wort}
-\setinterfacecommand{Words}{Woerter}
-\setinterfacecommand{about}{ueber}
-\setinterfacecommand{adaptfontfeature}{adaptfontfeature}
-\setinterfacecommand{adaptlayout}{passelayoutan}
-\setinterfacecommand{addfeature}{addfeature}
-\setinterfacecommand{alignbottom}{alignbottom}
-\setinterfacecommand{aligned}{aligned}
-\setinterfacecommand{alignedbox}{alignedbox}
-\setinterfacecommand{alignedline}{alignedline}
-\setinterfacecommand{alignhere}{alignhere}
-\setinterfacecommand{alignment}{alignment}
-\setinterfacecommand{alignmentcharacter}{alignmentcharacter}
-\setinterfacecommand{applytocharacters}{applytocharacters}
-\setinterfacecommand{applytofirstcharacter}{applytofirstcharacter}
-\setinterfacecommand{arg}{arg}
-\setinterfacecommand{at}{bei}
-\setinterfacecommand{atleftmargin}{atleftmargin}
-\setinterfacecommand{atpage}{aufseite}
-\setinterfacecommand{atrightmargin}{atrightmargin}
-\setinterfacecommand{background}{hintergrund}
-\setinterfacecommand{backspace}{rumpfweite}
-\setinterfacecommand{blackrule}{rechteck}
-\setinterfacecommand{blackrules}{rechtecke}
-\setinterfacecommand{blank}{blanko}
-\setinterfacecommand{bookmark}{bookmark}
-\setinterfacecommand{bottombox}{bottombox}
-\setinterfacecommand{bottomdistance}{abstandunten}
-\setinterfacecommand{bottomheight}{hoeheunten}
-\setinterfacecommand{bottomleftbox}{bottomleftbox}
-\setinterfacecommand{bottomrightbox}{bottomrightbox}
-\setinterfacecommand{bottomspace}{bottomspace}
-\setinterfacecommand{buildtextbottomdot}{buildtextbottomdot}
-\setinterfacecommand{but}{but}
-\setinterfacecommand{button}{knopf}
-\setinterfacecommand{bypassblocks}{bypassblocks}
-\setinterfacecommand{character}{buchstabe}
-\setinterfacecommand{characters}{buchstaben}
-\setinterfacecommand{chem}{chem}
-\setinterfacecommand{clip}{ausschnitt}
-\setinterfacecommand{clonefield}{klonierefeld}
-\setinterfacecommand{color}{farbe}
-\setinterfacecommand{colorbar}{farbbalken}
-\setinterfacecommand{colorvalue}{farbewert}
-\setinterfacecommand{column}{spalte}
-\setinterfacecommand{comparecolorgroup}{vergleichefarbengruppe}
-\setinterfacecommand{comparepalet}{vergleichepalette}
-\setinterfacecommand{completepagenumber}{completepagenumber}
-\setinterfacecommand{completeregister}{completeregister}
-\setinterfacecommand{component}{komponente}
-\setinterfacecommand{convertnumber}{konvertierezahl}
-\setinterfacecommand{copyfield}{kopierefeld}
-\setinterfacecommand{correctwhitespace}{korrigierezwischenraum}
-\setinterfacecommand{coupledocument}{verknuepfedokument}
-\setinterfacecommand{couplemarking}{verknuepfebeschriftung}
-\setinterfacecommand{couplepage}{doppelseite}
-\setinterfacecommand{couplepaper}{doppelseitigespapier}
-\setinterfacecommand{coupleregister}{verknuepfregister}
-\setinterfacecommand{crlf}{crlf}
-\setinterfacecommand{currentdate}{heutigesdatum}
-\setinterfacecommand{currentheadnumber}{heutigeskopfnummer}
-\setinterfacecommand{cutspace}{cutspace}
-\setinterfacecommand{date}{datum}
-\setinterfacecommand{decouplemarking}{entknuepfebeschriftung}
-\setinterfacecommand{decrementnumber}{decrementnumber}
-\setinterfacecommand{define}{definieren}
-\setinterfacecommand{defineaccent}{definiereakzent}
-\setinterfacecommand{defineblank}{definiereblanko}
-\setinterfacecommand{defineblock}{definiereblock}
-\setinterfacecommand{definebodyfont}{definierefliesstext}
-\setinterfacecommand{definebodyfontenvironment}{definierefliesstextumgebung}
-\setinterfacecommand{definebodyfontswitch}{definebodyfontswitch}
-\setinterfacecommand{definebuffer}{definierepuffer}
-\setinterfacecommand{definecharacter}{definierezeichen}
-\setinterfacecommand{definecharacterkerning}{definecharacterkerning}
-\setinterfacecommand{definecharacterspacing}{definecharacterspacing}
-\setinterfacecommand{definecolor}{definierefarbe}
-\setinterfacecommand{definecolorgroup}{definierefarbengruppe}
-\setinterfacecommand{definecolumnbreak}{definecolumnbreak}
-\setinterfacecommand{definecolumnset}{definecolumnset}
-\setinterfacecommand{definecombination}{definecombination}
-\setinterfacecommand{definecombinedlist}{definierezusammengestellteliste}
-\setinterfacecommand{definecommand}{definierebefehl}
-\setinterfacecommand{defineconversion}{definierekonversion}
-\setinterfacecommand{definedescription}{definierebeschreibung}
-\setinterfacecommand{definedfont}{definedfont}
-\setinterfacecommand{defineenumeration}{definierenummerierung}
-\setinterfacecommand{definefallbackfamily}{definefallbackfamily}
-\setinterfacecommand{definefield}{definierefeld}
-\setinterfacecommand{definefieldstack}{definierefeldstapel}
-\setinterfacecommand{definefiguresymbol}{definiereabbsymbol}
-\setinterfacecommand{definefilefallback}{definefilefallback}
-\setinterfacecommand{definefirstline}{definefirstline}
-\setinterfacecommand{definefloat}{definieregleitobjekt}
-\setinterfacecommand{definefont}{definiereschrift}
-\setinterfacecommand{definefontalternative}{definefontalternative}
-\setinterfacecommand{definefontfallback}{definefontfallback}
-\setinterfacecommand{definefontfamily}{definefontfamily}
-\setinterfacecommand{definefontfamilypreset}{definefontfamilypreset}
-\setinterfacecommand{definefontfeature}{definefontfeature}
-\setinterfacecommand{definefontfile}{definefontfile}
-\setinterfacecommand{definefontsize}{definefontsize}
-\setinterfacecommand{definefontsolution}{definefontsolution}
-\setinterfacecommand{definefontstyle}{definiereschriftstil}
-\setinterfacecommand{definefontsynonym}{defineschriftsynonym}
-\setinterfacecommand{defineframed}{definiereumrahmt}
-\setinterfacecommand{defineframedtext}{definiereumrahmtertext}
-\setinterfacecommand{definefrozenfont}{definefrozenfont}
-\setinterfacecommand{definehbox}{definierehbox}
-\setinterfacecommand{definehead}{definiereueberschrift}
-\setinterfacecommand{definehyphenationfeatures}{definehyphenationfeatures}
-\setinterfacecommand{defineindentedtext}{defineindentedtext}
-\setinterfacecommand{defineinmargin}{defineinmargin}
-\setinterfacecommand{defineinteractionmenu}{definiereinteraktionsmenue}
-\setinterfacecommand{defineitemgroup}{defineitemgroup}
-\setinterfacecommand{defineitems}{defineitems}
-\setinterfacecommand{definelabel}{definierelabel}
-\setinterfacecommand{definelayer}{definelayer}
-\setinterfacecommand{definelayout}{definelayout}
-\setinterfacecommand{definelinenote}{definelinenote}
-\setinterfacecommand{definelist}{definiereliste}
-\setinterfacecommand{definelogo}{definierelogo}
-\setinterfacecommand{definemainfield}{definierehauptfeld}
-\setinterfacecommand{definemakeup}{definiereumbruch}
-\setinterfacecommand{definemarking}{definierebeschriftung}
-\setinterfacecommand{definemathalignment}{definemathalignment}
-\setinterfacecommand{definemode}{definemode}
-\setinterfacecommand{definenamedcolor}{definenamedcolor}
-\setinterfacecommand{definenote}{definenote}
-\setinterfacecommand{defineoutput}{defineoutput}
-\setinterfacecommand{defineoverlay}{definiereoverlay}
-\setinterfacecommand{definepagebreak}{definepagebreak}
-\setinterfacecommand{definepalet}{definierepalette}
-\setinterfacecommand{definepapersize}{definierepapierformat}
-\setinterfacecommand{defineparagraphs}{definiereabsaetze}
-\setinterfacecommand{defineperiodkerning}{defineperiodkerning}
-\setinterfacecommand{defineplacement}{defineplacement}
-\setinterfacecommand{defineprofile}{definiereprofil}
-\setinterfacecommand{defineprogram}{definiereprogramme}
-\setinterfacecommand{definerawfont}{definerawfont}
-\setinterfacecommand{definereference}{definierereferenz}
-\setinterfacecommand{definereferenceformat}{definierereferenzformat}
-\setinterfacecommand{definereferencelist}{definierereferenzliste}
-\setinterfacecommand{defineregister}{definiereregister}
-\setinterfacecommand{definerule}{definerule}
-\setinterfacecommand{definesection}{definiereabschnitt}
-\setinterfacecommand{definesectionblock}{definiereabschnittsblock}
-\setinterfacecommand{definesorting}{definieresortieren}
-\setinterfacecommand{definestartstop}{definierestartstop}
-\setinterfacecommand{definestyle}{definierestil}
-\setinterfacecommand{definesubfield}{definieresubfeld}
-\setinterfacecommand{definesymbol}{definieresymbol}
-\setinterfacecommand{definesynonyms}{definieresynonyme}
-\setinterfacecommand{definetabletemplate}{definieretabellenvorlage}
-\setinterfacecommand{definetabulate}{definieretabulator}
-\setinterfacecommand{definetext}{definieretext}
-\setinterfacecommand{definetextbackground}{definetextbackground}
-\setinterfacecommand{definetextnote}{definetextnote}
-\setinterfacecommand{definetextposition}{definetextposition}
-\setinterfacecommand{definetextvariable}{definetextvariable}
-\setinterfacecommand{definetype}{definetype}
-\setinterfacecommand{definetyping}{definieretippen}
-\setinterfacecommand{defineversion}{definiereversion}
-\setinterfacecommand{depthspanningtext}{depthspanningtext}
-\setinterfacecommand{determineheadnumber}{bestimmekopfnummer}
-\setinterfacecommand{determinelistcharacteristics}{bestimmelistencharakeristika}
-\setinterfacecommand{determineregistercharacteristics}{bestimmeregistercharakteristika}
-\setinterfacecommand{dimension}{dimension}
-\setinterfacecommand{disableinteractionmenu}{inaktiviereinteraktionsmenue}
-\setinterfacecommand{disablemode}{disablemode}
-\setinterfacecommand{doaddfeature}{doaddfeature}
-\setinterfacecommand{domicile}{wohnort}
-\setinterfacecommand{dontconvertfont}{dontconvertfont}
-\setinterfacecommand{donttest}{keintest}
-\setinterfacecommand{edgedistance}{randabstand}
-\setinterfacecommand{edgewidth}{randbreite}
-\setinterfacecommand{emphasisboldface}{emphasisboldface}
-\setinterfacecommand{emptylines}{emptylines}
-\setinterfacecommand{enablemode}{enablemode}
-\setinterfacecommand{environment}{umgebung}
-\setinterfacecommand{externalfigure}{externeabbildung}
-\setinterfacecommand{fact}{geg}
-\setinterfacecommand{fastswitchtobodyfont}{fastswitchtobodyfont}
-\setinterfacecommand{feature}{feature}
-\setinterfacecommand{field}{feld}
-\setinterfacecommand{fieldstack}{feldstapel}
-\setinterfacecommand{fillinfield}{ausfuellfeld}
-\setinterfacecommand{fillinline}{gefuelltezeile}
-\setinterfacecommand{fillinrules}{gefuelltesrechteck}
-\setinterfacecommand{fillintext}{ausfuelltext}
-\setinterfacecommand{firstcharacter}{firstcharacter}
-\setinterfacecommand{fitfield}{passendfeld}
-\setinterfacecommand{fittopbaselinegrid}{fittopbaselinegrid}
-\setinterfacecommand{fixedspace}{festesspatium}
-\setinterfacecommand{fixedspaces}{festesspatium}
-\setinterfacecommand{flushnotes}{flushnotes}
-\setinterfacecommand{followprofile}{folgeprofil}
-\setinterfacecommand{followprofileversion}{folgeprofilversion}
-\setinterfacecommand{followversion}{folgeversion}
-\setinterfacecommand{footerdistance}{fusszeileabstand}
-\setinterfacecommand{footerheight}{fusszeilenhoehe}
-\setinterfacecommand{footnote}{fussnote}
-\setinterfacecommand{footnotetext}{footnotetext}
-\setinterfacecommand{forceblocks}{forceblocks}
-\setinterfacecommand{forcecharacterstripping}{forcecharacterstripping}
-\setinterfacecommand{formulanumber}{formelnummer}
-\setinterfacecommand{fraction}{bruch}
-\setinterfacecommand{framed}{umrahmt}
-\setinterfacecommand{from}{von}
-\setinterfacecommand{fromlinenote}{fromlinenote}
-\setinterfacecommand{getbuffer}{holepuffer}
-\setinterfacecommand{getfirstcharacter}{getfirstcharacter}
-\setinterfacecommand{getmarking}{holebeschriftung}
-\setinterfacecommand{getnumber}{getnumber}
-\setinterfacecommand{globaldisablemode}{globaldisablemode}
-\setinterfacecommand{globalenablemode}{globalenablemode}
-\setinterfacecommand{globalpreventmode}{globalpreventmode}
-\setinterfacecommand{godown}{nachunten}
-\setinterfacecommand{goto}{zu}
-\setinterfacecommand{gotobox}{zurbox}
-\setinterfacecommand{gotopage}{zurseite}
-\setinterfacecommand{graycolor}{graufarbe}
-\setinterfacecommand{greyvalue}{grauwert}
-\setinterfacecommand{grid}{gitter}
-\setinterfacecommand{hairline}{haarlinie}
-\setinterfacecommand{head}{kopf}
-\setinterfacecommand{headerdistance}{kopfzeilenabstand}
-\setinterfacecommand{headerheight}{kopfzeilenhoehe}
-\setinterfacecommand{headlevel}{kopfniveau}
-\setinterfacecommand{headnumber}{kopfnummer}
-\setinterfacecommand{headsym}{headsym}
-\setinterfacecommand{headtext}{ueberschrifttext}
-\setinterfacecommand{heightspanningtext}{heightspanningtext}
-\setinterfacecommand{hideblocks}{verbergebloecke}
-\setinterfacecommand{high}{hoch}
-\setinterfacecommand{hl}{hl}
-\setinterfacecommand{immediatebetweenlist}{immediatebetweenlist}
-\setinterfacecommand{immediatetolist}{immediatetolist}
-\setinterfacecommand{in}{in}
-\setinterfacecommand{incrementnumber}{nummererhoehen}
-\setinterfacecommand{indenting}{einziehen}
-\setinterfacecommand{inframed}{imumriss}
-\setinterfacecommand{infull}{volleswort}
-\setinterfacecommand{ininner}{ininner}
-\setinterfacecommand{inleft}{imlinken}
-\setinterfacecommand{inleftedge}{imlinkenrand}
-\setinterfacecommand{inleftmargin}{inlinkermarginale}
-\setinterfacecommand{inline}{inzeile}
-\setinterfacecommand{inmargin}{inmarginalie}
-\setinterfacecommand{inmframed}{immaumrise}
-\setinterfacecommand{inneredgedistance}{inneredgedistance}
-\setinterfacecommand{inneredgewidth}{inneredgewidth}
-\setinterfacecommand{innermargindistance}{innermargindistance}
-\setinterfacecommand{innermarginwidth}{innermarginwidth}
-\setinterfacecommand{inothermargin}{inanderermarginale}
-\setinterfacecommand{inouter}{inouter}
-\setinterfacecommand{inright}{imrechten}
-\setinterfacecommand{inrightedge}{imrechtenrand}
-\setinterfacecommand{inrightmargin}{inrechtermarginale}
-\setinterfacecommand{installlanguage}{installieresprache}
-\setinterfacecommand{interactionbar}{interaktionsbalken}
-\setinterfacecommand{interactionbuttons}{interaktionsknopfe}
-\setinterfacecommand{interactionmenu}{interaktionsmenue}
-\setinterfacecommand{item}{pos}
-\setinterfacecommand{itemgroup}{itemgroup}
-\setinterfacecommand{items}{posten}
-\setinterfacecommand{itemtag}{itemtag}
-\setinterfacecommand{its}{its}
-\setinterfacecommand{keepblocks}{behaltebloecke}
-\setinterfacecommand{kerncharacters}{kerncharacters}
-\setinterfacecommand{label}{label}
-\setinterfacecommand{labels}{labels}
-\setinterfacecommand{labeltext}{labeltext}
-\setinterfacecommand{language}{sprache}
-\setinterfacecommand{languageCharacters}{languageCharacters}
-\setinterfacecommand{languagecharacters}{languagecharacters}
-\setinterfacecommand{leftaligned}{linksbuendig}
-\setinterfacecommand{leftbottombox}{leftbottombox}
-\setinterfacecommand{leftedgedistance}{abstandlinkerrand}
-\setinterfacecommand{leftedgewidth}{breitelinkerrand}
-\setinterfacecommand{leftline}{leftline}
-\setinterfacecommand{leftmargindistance}{linkemarginalafstand}
-\setinterfacecommand{leftmarginwidth}{linkemarginalbreite}
-\setinterfacecommand{leg}{leg}
-\setinterfacecommand{linecorrection}{linecorrection}
-\setinterfacecommand{linenote}{linenote}
-\setinterfacecommand{linespanningtext}{linespanningtext}
-\setinterfacecommand{linewidth}{liniendicke}
-\setinterfacecommand{listheight}{listenhoehe}
-\setinterfacecommand{listlength}{listenlaenge}
-\setinterfacecommand{listsymbol}{listsymbol}
-\setinterfacecommand{listwidth}{listenbreite}
-\setinterfacecommand{loadfontgoodies}{loadfontgoodies}
-\setinterfacecommand{localfootnotes}{localfootnotes}
-\setinterfacecommand{localnotes}{localnotes}
-\setinterfacecommand{logfields}{registrierefelder}
-\setinterfacecommand{lohi}{tiho}
-\setinterfacecommand{low}{tief}
-\setinterfacecommand{macroname}{name}
-\setinterfacecommand{mainlanguage}{hauptsprache}
-\setinterfacecommand{makeupheight}{satzhoehe}
-\setinterfacecommand{makeupwidth}{satzbreite}
-\setinterfacecommand{mar}{mar}
-\setinterfacecommand{marginblock}{marginblock}
-\setinterfacecommand{margindistance}{marginalafstand}
-\setinterfacecommand{marginrule}{marginallinie}
-\setinterfacecommand{margintext}{marginaltext}
-\setinterfacecommand{margintitle}{marginaltitel}
-\setinterfacecommand{marginwidth}{marginalbreite}
-\setinterfacecommand{marginword}{marginalwort}
-\setinterfacecommand{marking}{beschriftung}
-\setinterfacecommand{markversion}{beschrifteversion}
-\setinterfacecommand{mathematics}{mathematik}
-\setinterfacecommand{menubutton}{menueknopf}
-\setinterfacecommand{mframed}{maumrise}
-\setinterfacecommand{midaligned}{zentriert}
-\setinterfacecommand{mirror}{spiegeln}
-\setinterfacecommand{month}{monat}
-\setinterfacecommand{moveformula}{moveformula}
-\setinterfacecommand{moveongrid}{amgitterneuausrichten}
-\setinterfacecommand{movesidefloat}{movesidefloat}
-\setinterfacecommand{navigating}{navigating}
-\setinterfacecommand{nodimension}{keindimension}
-\setinterfacecommand{noheaderandfooterlines}{keinekopfundfusszeilen}
-\setinterfacecommand{noindenting}{nichteinziehen}
-\setinterfacecommand{noitem}{noitem}
-\setinterfacecommand{nolist}{keineliste}
-\setinterfacecommand{nomarking}{keinebeschriftung}
-\setinterfacecommand{nomoreblocks}{keinebloeckemehr}
-\setinterfacecommand{nomorefiles}{keinedateienmehr}
-\setinterfacecommand{nop}{nop}
-\setinterfacecommand{nospace}{keinspatium}
-\setinterfacecommand{note}{notiz}
-\setinterfacecommand{notesymbol}{notesymbol}
-\setinterfacecommand{notopandbottomlines}{keinzeilenobenundunten}
-\setinterfacecommand{notsmallcapped}{nokap}
-\setinterfacecommand{nowhitespace}{keinzwischenraum}
-\setinterfacecommand{numberofsubpages}{numberofsubpages}
-\setinterfacecommand{numbers}{ziffern}
-\setinterfacecommand{outeredgedistance}{outeredgedistance}
-\setinterfacecommand{outeredgewidth}{outeredgewidth}
-\setinterfacecommand{outermargindistance}{outermargindistance}
-\setinterfacecommand{outermarginwidth}{outermarginwidth}
-\setinterfacecommand{packed}{kleinerdurchschuss}
-\setinterfacecommand{page}{seite}
-\setinterfacecommand{pagebreak}{pagebreak}
-\setinterfacecommand{pagedepth}{pagedepth}
-\setinterfacecommand{pagenumber}{seitenummer}
-\setinterfacecommand{pageoffset}{pageoffset}
-\setinterfacecommand{pagereference}{seitenreferenz}
-\setinterfacecommand{paperheight}{papierhoehe}
-\setinterfacecommand{paperwidth}{papierbreite}
-\setinterfacecommand{periods}{punkt}
-\setinterfacecommand{placebookmarks}{platzierebookmarks}
-\setinterfacecommand{placecombinedlist}{platzierezusammengestellteliste}
-\setinterfacecommand{placefloat}{placefloat}
-\setinterfacecommand{placefootnotes}{platzierefussnoten}
-\setinterfacecommand{placeformula}{platziereformel}
-\setinterfacecommand{placeheadnumber}{placeheadnumber}
-\setinterfacecommand{placeheadtext}{placeheadtext}
-\setinterfacecommand{placelegend}{platzierelegende}
-\setinterfacecommand{placelist}{platziereliste}
-\setinterfacecommand{placelistofsynonyms}{placelistofsynonyms}
-\setinterfacecommand{placelocalfootnotes}{platzierelokalefussnoten}
-\setinterfacecommand{placelocalnotes}{placelocalnotes}
-\setinterfacecommand{placelogos}{platzierelogo}
-\setinterfacecommand{placenamedfloat}{placenamedfloat}
-\setinterfacecommand{placenotes}{placenotes}
-\setinterfacecommand{placeongrid}{amgitterausrichten}
-\setinterfacecommand{placeontopofeachother}{platziereuntereinander}
-\setinterfacecommand{placepagenumber}{placepagenumber}
-\setinterfacecommand{placerawlist}{placerawlist}
-\setinterfacecommand{placereferencelist}{placereferencelist}
-\setinterfacecommand{placeregister}{platziereregister}
-\setinterfacecommand{placerule}{placerule}
-\setinterfacecommand{placesidebyside}{platzierenebeneinander}
-\setinterfacecommand{placesubformula}{platziereunterformel}
-\setinterfacecommand{placetextvariable}{placetextvariable}
-\setinterfacecommand{position}{position}
-\setinterfacecommand{positiontext}{positiontext}
-\setinterfacecommand{postponenotes}{postponenotes}
-\setinterfacecommand{postponingnotes}{postponingnotes}
-\setinterfacecommand{predefinedfont}{predefinedfont}
-\setinterfacecommand{predefinefont}{predefinefont}
-\setinterfacecommand{presetdocument}{presetdocument}
-\setinterfacecommand{prettyprintbuffer}{prettyprintbuffer}
-\setinterfacecommand{preventmode}{preventmode}
-\setinterfacecommand{printpaperheight}{printpapierhoehe}
-\setinterfacecommand{printpaperwidth}{printpapierbreite}
-\setinterfacecommand{processblocks}{bearbeitebloecke}
-\setinterfacecommand{processbodyfontenvironmentlist}{processbodyfontenvironmentlist}
-\setinterfacecommand{processpage}{bearbeiteseite}
-\setinterfacecommand{product}{produkt}
-\setinterfacecommand{program}{programm}
-\setinterfacecommand{project}{projekt}
-\setinterfacecommand{publication}{publikation}
-\setinterfacecommand{quotation}{zitat}
-\setinterfacecommand{quote}{zitieren}
-\setinterfacecommand{ran}{ran}
-\setinterfacecommand{redo}{wiederholen}
-\setinterfacecommand{redoconvertfont}{redoconvertfont}
-\setinterfacecommand{ref}{ref}
-\setinterfacecommand{reference}{referenz}
-\setinterfacecommand{referral}{verweis}
-\setinterfacecommand{referraldate}{verweisdatum}
-\setinterfacecommand{referring}{referieren}
-\setinterfacecommand{registerfontclass}{registerfontclass}
-\setinterfacecommand{registerhyphenationexception}{registerhyphenationexception}
-\setinterfacecommand{registerhyphenationpattern}{registerhyphenationpattern}
-\setinterfacecommand{remark}{bemerkung}
-\setinterfacecommand{replacefeature}{replacefeature}
-\setinterfacecommand{reset}{ruecksetzten}
-\setinterfacecommand{resetandaddfeature}{resetandaddfeature}
-\setinterfacecommand{resetcharacteralign}{resetcharacteralign}
-\setinterfacecommand{resetcharacterkerning}{resetcharacterkerning}
-\setinterfacecommand{resetcharacterspacing}{resetcharacterspacing}
-\setinterfacecommand{resetcharacterstripping}{resetcharacterstripping}
-\setinterfacecommand{resetfeature}{resetfeature}
-\setinterfacecommand{resetfontcolorsheme}{resetfontcolorsheme}
-\setinterfacecommand{resetfontfallback}{resetfontfallback}
-\setinterfacecommand{resetfontsolution}{resetfontsolution}
-\setinterfacecommand{resethyphenationfeatures}{resethyphenationfeatures}
-\setinterfacecommand{resetlocalfloats}{resetlocalfloats}
-\setinterfacecommand{resetmarking}{ruecksetztenbeschriftung}
-\setinterfacecommand{resetmode}{resetmode}
-\setinterfacecommand{resetnumber}{resetnumber}
-\setinterfacecommand{resetpath}{resetpath}
-\setinterfacecommand{resetperiodkerning}{resetperiodkerning}
-\setinterfacecommand{resetsystemmode}{resetsystemmode}
-\setinterfacecommand{resettextcontent}{resettextcontent}
-\setinterfacecommand{resetvisualizers}{resetvisualizers}
-\setinterfacecommand{restoreglobalbodyfont}{restoreglobalbodyfont}
-\setinterfacecommand{retestfeature}{retestfeature}
-\setinterfacecommand{revivefeature}{revivefeature}
-\setinterfacecommand{rightaligned}{rechtsbuendig}
-\setinterfacecommand{rightbottombox}{rightbottombox}
-\setinterfacecommand{rightedgedistance}{abstandrechterrand}
-\setinterfacecommand{rightedgewidth}{breiterechterrand}
-\setinterfacecommand{rightline}{rightline}
-\setinterfacecommand{rightmargindistance}{rechtemarginalafstand}
-\setinterfacecommand{rightmarginwidth}{rechtemarginalbreite}
-\setinterfacecommand{romannumerals}{roemischezahlen}
-\setinterfacecommand{rotate}{drehen}
-\setinterfacecommand{savebuffer}{savebuffer}
-\setinterfacecommand{scale}{format}
-\setinterfacecommand{screen}{bildschirm}
-\setinterfacecommand{selectblocks}{waehlebloeckeaus}
-\setinterfacecommand{selectpaper}{waehlepapieraus}
-\setinterfacecommand{selectversion}{waehleversionaus}
-\setinterfacecommand{setbigbodyfont}{setbigbodyfont}
-\setinterfacecommand{setcharacteralign}{setcharacteralign}
-\setinterfacecommand{setcharacteraligndetail}{setcharacteraligndetail}
-\setinterfacecommand{setcharactercasing}{setcharactercasing}
-\setinterfacecommand{setcharactercleaning}{setcharactercleaning}
-\setinterfacecommand{setcharacterkerning}{setcharacterkerning}
-\setinterfacecommand{setcharacterspacing}{setcharacterspacing}
-\setinterfacecommand{setcharacterstripping}{setcharacterstripping}
-\setinterfacecommand{setcurrentfontclass}{setcurrentfontclass}
-\setinterfacecommand{setfirstline}{setfirstline}
-\setinterfacecommand{setfirstpasscharacteralign}{setfirstpasscharacteralign}
-\setinterfacecommand{setfont}{setfont}
-\setinterfacecommand{setfontcolorsheme}{setfontcolorsheme}
-\setinterfacecommand{setfontfeature}{setfontfeature}
-\setinterfacecommand{setfontsolution}{setfontsolution}
-\setinterfacecommand{setfontstrut}{setfontstrut}
-\setinterfacecommand{sethyphenationfeatures}{sethyphenationfeatures}
-\setinterfacecommand{setmainbodyfont}{setmainbodyfont}
-\setinterfacecommand{setmode}{setmode}
-\setinterfacecommand{setnote}{setnote}
-\setinterfacecommand{setnotetext}{setnotetext}
-\setinterfacecommand{setnumber}{setnumber}
-\setinterfacecommand{setperiodkerning}{setperiodkerning}
-\setinterfacecommand{setsecondpasscharacteralign}{setsecondpasscharacteralign}
-\setinterfacecommand{setsmallbodyfont}{setsmallbodyfont}
-\setinterfacecommand{setsystemmode}{setsystemmode}
-\setinterfacecommand{settextcontent}{settext}
-\setinterfacecommand{settextvariable}{settextvariable}
-\setinterfacecommand{setupalign}{stelleausrichtungein}
-\setinterfacecommand{setupanswerarea}{setupanswerarea}
-\setinterfacecommand{setuparranging}{stelleanordnenein}
-\setinterfacecommand{setupattachment}{setupattachment}
-\setinterfacecommand{setupbackground}{stellehintergrundein}
-\setinterfacecommand{setupbackgrounds}{stellehintergruendeein}
-\setinterfacecommand{setupblackrules}{stellerechteckein}
-\setinterfacecommand{setupblank}{stelleblankoein}
-\setinterfacecommand{setupblock}{stelleblockein}
-\setinterfacecommand{setupbodyfont}{stellefliesstextein}
-\setinterfacecommand{setupbodyfontenvironment}{stellefliesstextumgebungein}
-\setinterfacecommand{setupbottom}{stelleuntenein}
-\setinterfacecommand{setupbottomtexts}{stelletextuntenein}
-\setinterfacecommand{setupbuffer}{stellepufferein}
-\setinterfacecommand{setupbuttons}{stelleknopfein}
-\setinterfacecommand{setupcapitals}{stelleversalienein}
-\setinterfacecommand{setupcaption}{stellebildunterschriftein}
-\setinterfacecommand{setupcaptions}{stellebilderunterschriftein}
-\setinterfacecommand{setupcharacteralign}{setupcharacteralign}
-\setinterfacecommand{setupcharacterkerning}{setupcharacterkerning}
-\setinterfacecommand{setupcharacterspacing}{setupcharacterspacing}
-\setinterfacecommand{setupclipping}{stelleausschnittein}
-\setinterfacecommand{setupcolor}{stellefarbeein}
-\setinterfacecommand{setupcolors}{stellefarbenein}
-\setinterfacecommand{setupcolumns}{stellespaltenein}
-\setinterfacecommand{setupcolumnset}{setupcolumnset}
-\setinterfacecommand{setupcolumnsetlines}{setupcolumnsetlines}
-\setinterfacecommand{setupcolumnsetstart}{setupcolumnsetstart}
-\setinterfacecommand{setupcombinations}{stellekombinationein}
-\setinterfacecommand{setupcombinedlist}{stellezusammengestelltelisteein}
-\setinterfacecommand{setupcomment}{stellekommentarein}
-\setinterfacecommand{setupcounter}{setupcounter}
-\setinterfacecommand{setupdescription}{setupdescription}
-\setinterfacecommand{setupdescriptions}{definierebeschreibungen}
-\setinterfacecommand{setupenumeration}{setupenumeration}
-\setinterfacecommand{setupenumerations}{stellebeschreibungein}
-\setinterfacecommand{setupexternalfigures}{stelleexterneabbildungenein}
-\setinterfacecommand{setupfield}{stellefeldein}
-\setinterfacecommand{setupfields}{stellefelderin}
-\setinterfacecommand{setupfillinlines}{stellegefuelltezeileein}
-\setinterfacecommand{setupfillinrules}{stellegefuelltesrechteckein}
-\setinterfacecommand{setupfirstline}{setupfirstline}
-\setinterfacecommand{setupfloat}{stellegleitobjektein}
-\setinterfacecommand{setupfloats}{stellegleitobjekteein}
-\setinterfacecommand{setupfloatsplitting}{stelleplatziegeteiltegleitobjekt}
-\setinterfacecommand{setupfontexpansion}{setupfontexpansion}
-\setinterfacecommand{setupfontprotrusion}{setupfontprotrusion}
-\setinterfacecommand{setupfonts}{setupfonts}
-\setinterfacecommand{setupfontsolution}{setupfontsolution}
-\setinterfacecommand{setupfooter}{stellefusszeileein}
-\setinterfacecommand{setupfootertexts}{stellefusszeilentextein}
-\setinterfacecommand{setupfootnotedefinition}{stellefussnotendefinitionein}
-\setinterfacecommand{setupfootnotes}{stellefussnotenein}
-\setinterfacecommand{setupforms}{setupforms}
-\setinterfacecommand{setupformula}{setupformula}
-\setinterfacecommand{setupformulas}{stelleformelnein}
-\setinterfacecommand{setupframed}{stelleumrahmtein}
-\setinterfacecommand{setupframedtext}{setupframedtext}
-\setinterfacecommand{setupframedtexts}{stelleumrahmtetexteein}
-\setinterfacecommand{setuphead}{stelleueberschriftein}
-\setinterfacecommand{setupheader}{stellekopfzeileein}
-\setinterfacecommand{setupheadertexts}{stellekopfzeilentextein}
-\setinterfacecommand{setupheadnumber}{stellekopfzahlein}
-\setinterfacecommand{setupheads}{stelleueberschriftenein}
-\setinterfacecommand{setupheadtext}{stelleueberschrifttextein}
-\setinterfacecommand{setuphyphenation}{setuphyphenation}
-\setinterfacecommand{setuphyphenmark}{stellebindestrichein}
-\setinterfacecommand{setupindentedtext}{setupindentedtext}
-\setinterfacecommand{setupindenting}{stelleeinziehenein}
-\setinterfacecommand{setupinmargin}{stelleinmarginalieein}
-\setinterfacecommand{setupinteraction}{stelleinteraktionein}
-\setinterfacecommand{setupinteractionbar}{stelleinteraktionsbalkenein}
-\setinterfacecommand{setupinteractionmenu}{stelleinteraktionsmenueein}
-\setinterfacecommand{setupinteractionscreen}{stelleinteraktionsbildschirmein}
-\setinterfacecommand{setupinterlinespace}{stellezeilenabstandein}
-\setinterfacecommand{setupitemgroup}{setupitemgroup}
-\setinterfacecommand{setupitemgroups}{stelleaufzaehlungenein}
-\setinterfacecommand{setupitems}{stellepostenein}
-\setinterfacecommand{setuplabeltext}{stellelabeltextein}
-\setinterfacecommand{setuplanguage}{stellespracheein}
-\setinterfacecommand{setuplayout}{stellelayoutein}
-\setinterfacecommand{setuplegend}{stellelegendeein}
-\setinterfacecommand{setuplinenote}{setuplinenote}
-\setinterfacecommand{setuplinenumbering}{stellezeilennumerierungein}
-\setinterfacecommand{setuplines}{stellezeilenein}
-\setinterfacecommand{setuplinewidth}{stellelinienbreiteein}
-\setinterfacecommand{setuplist}{stellelisteein}
-\setinterfacecommand{setupmakeup}{stelleumbruchein}
-\setinterfacecommand{setupmarginblock}{setupmarginblock}
-\setinterfacecommand{setupmarginblocks}{stellemarginalblockein}
-\setinterfacecommand{setupmargindata}{setupmargindata}
-\setinterfacecommand{setupmarginrules}{stellemarginallinieein}
-\setinterfacecommand{setupmarking}{stellebeschriftungein}
-\setinterfacecommand{setupmathalignment}{setupmathalignment}
-\setinterfacecommand{setupnarrower}{stelleengerein}
-\setinterfacecommand{setupnotation}{setupnotation}
-\setinterfacecommand{setupnotations}{setupnotations}
-\setinterfacecommand{setupnote}{setupnote}
-\setinterfacecommand{setupnotes}{setupnotes}
-\setinterfacecommand{setupnumber}{setupnumber}
-\setinterfacecommand{setupnumbering}{stellenummerierungein}
-\setinterfacecommand{setupoppositeplacing}{stellegegenueberplatzierenein}
-\setinterfacecommand{setupoutput}{stelleausgabeein}
-\setinterfacecommand{setuppagecomment}{stelleseitenkommentarein}
-\setinterfacecommand{setuppagenumber}{stelleseitennummerein}
-\setinterfacecommand{setuppagenumbering}{stelleseitennummeriernungein}
-\setinterfacecommand{setuppagetransitions}{stelleseitenuebergangein}
-\setinterfacecommand{setuppalet}{stellepaletteein}
-\setinterfacecommand{setuppaper}{setuppaper}
-\setinterfacecommand{setuppapersize}{stellepapierformatein}
-\setinterfacecommand{setupparagraphnumbering}{stelleabsatznummerierungein}
-\setinterfacecommand{setupparagraphs}{stelleabsaetzeein}
-\setinterfacecommand{setupperiodkerning}{setupperiodkerning}
-\setinterfacecommand{setupplacement}{setupplacement}
-\setinterfacecommand{setuppositioning}{stellepositionierenein}
-\setinterfacecommand{setupprofiles}{stelleprofilein}
-\setinterfacecommand{setupprograms}{stelleprogrammein}
-\setinterfacecommand{setuppublications}{stellepublikationein}
-\setinterfacecommand{setupquote}{stellezitierenein}
-\setinterfacecommand{setupreferencelist}{stellereferenzlisteein}
-\setinterfacecommand{setupreferencing}{stellereferenzierenein}
-\setinterfacecommand{setupregister}{stelleregisterein}
-\setinterfacecommand{setuprotate}{stelledrehenein}
-\setinterfacecommand{setuprule}{setuprule}
-\setinterfacecommand{setupscreens}{stellerasterein}
-\setinterfacecommand{setupsection}{stelleabschnittein}
-\setinterfacecommand{setupsectionblock}{stelleabschnittsblockein}
-\setinterfacecommand{setupsorting}{stellesortierenein}
-\setinterfacecommand{setupspacing}{stellespatiumein}
-\setinterfacecommand{setupstartstop}{setupstartstop}
-\setinterfacecommand{setupstrut}{setupstrut}
-\setinterfacecommand{setupsubpagenumber}{stelleunterseitennummerein}
-\setinterfacecommand{setupsymbolset}{stellesymbolsetein}
-\setinterfacecommand{setupsynchronization}{stellesynchronisationein}
-\setinterfacecommand{setupsynchronizationbar}{stellesynchronisationsbalkenein}
-\setinterfacecommand{setupsynonyms}{stellesynonymein}
-\setinterfacecommand{setupsystem}{stellesystemein}
-\setinterfacecommand{setuptab}{stelletabein}
-\setinterfacecommand{setuptables}{stelletabellenein}
-\setinterfacecommand{setuptabulate}{stelletabulatorein}
-\setinterfacecommand{setuptext}{stelletextein}
-\setinterfacecommand{setuptextbackground}{setuptextbackground}
-\setinterfacecommand{setuptextnote}{setuptextnote}
-\setinterfacecommand{setuptextposition}{setuptextposition}
-\setinterfacecommand{setuptextrules}{stelletextumrissein}
-\setinterfacecommand{setuptexttexts}{stelletexttexteein}
-\setinterfacecommand{setuptextvariable}{setuptextvariable}
-\setinterfacecommand{setupthinrules}{stelleduennerumrissein}
-\setinterfacecommand{setuptolerance}{stelletoleranzein}
-\setinterfacecommand{setuptop}{stellenobenein}
-\setinterfacecommand{setuptoptexts}{stelletextobenein}
-\setinterfacecommand{setuptype}{stelletipein}
-\setinterfacecommand{setuptyping}{stelletippenein}
-\setinterfacecommand{setupunderbar}{stelleunterstreichenein}
-\setinterfacecommand{setupurl}{stelleurlein}
-\setinterfacecommand{setupversions}{stelleversionein}
-\setinterfacecommand{setupwhitespace}{stellezwischenraumein}
-\setinterfacecommand{setvisualizerfont}{setvisualizerfont}
-\setinterfacecommand{showbodyfont}{zeigefliesstext}
-\setinterfacecommand{showbodyfontenvironment}{zeigefliesstextumgebung}
-\setinterfacecommand{showcolor}{zeigefarbe}
-\setinterfacecommand{showcolorgroup}{zeigefarbengruppe}
-\setinterfacecommand{showcounter}{showcounter}
-\setinterfacecommand{showexternalfigures}{zeigeexterneabbildungen}
-\setinterfacecommand{showfields}{zeigefelder}
-\setinterfacecommand{showfont}{showfont}
-\setinterfacecommand{showfontdata}{showfontdata}
-\setinterfacecommand{showfontexpansion}{showfontexpansion}
-\setinterfacecommand{showfontitalics}{showfontitalics}
-\setinterfacecommand{showfontkerns}{showfontkerns}
-\setinterfacecommand{showfontparameters}{showfontparameters}
-\setinterfacecommand{showfontstrip}{showfontstrip}
-\setinterfacecommand{showfontstyle}{showfontstyle}
-\setinterfacecommand{showframe}{zeigerahmen}
-\setinterfacecommand{showgrid}{zeigegitter}
-\setinterfacecommand{showhyphenationtrace}{showhyphenationtrace}
-\setinterfacecommand{showkerning}{showkerning}
-\setinterfacecommand{showlayout}{zeigelayout}
-\setinterfacecommand{showmakeup}{zeigeumbruch}
-\setinterfacecommand{showminimalbaseline}{showminimalbaseline}
-\setinterfacecommand{showpalet}{zeigepalette}
-\setinterfacecommand{showprint}{zeigedruck}
-\setinterfacecommand{showsetups}{zeigeeinstellungen}
-\setinterfacecommand{showstruts}{zeigestruts}
-\setinterfacecommand{showsymbolset}{showsymbolset}
-\setinterfacecommand{smallcapped}{kap}
-\setinterfacecommand{someline}{einezeile}
-\setinterfacecommand{somewhere}{irgendwo}
-\setinterfacecommand{space}{spatium}
-\setinterfacecommand{specialitem}{specialitem}
-\setinterfacecommand{splitfloat}{teilegleitobjekt}
-\setinterfacecommand{startalignment}{startausrichtung}
-\setinterfacecommand{startbackground}{starthintergrund}
-\setinterfacecommand{startcoding}{startkodierung}
-\setinterfacecommand{startcolor}{startfarbe}
-\setinterfacecommand{startcolumnmakeup}{startcolumnmakeup}
-\setinterfacecommand{startcolumns}{startspalten}
-\setinterfacecommand{startcolumnset}{startcolumnset}
-\setinterfacecommand{startcombination}{startkombination}
-\setinterfacecommand{startcomponent}{startkomponente}
-\setinterfacecommand{startdocument}{startdokument}
-\setinterfacecommand{startenvironment}{startumgebung}
-\setinterfacecommand{startfigure}{startabbildung}
-\setinterfacecommand{startframed}{startframed}
-\setinterfacecommand{startglobal}{startglobal}
-\setinterfacecommand{startline}{startzeile}
-\setinterfacecommand{startlinecorrection}{startzeilenkorrektur}
-\setinterfacecommand{startlinenote}{startlinenote}
-\setinterfacecommand{startlinenumbering}{startzeilennumerierung}
-\setinterfacecommand{startlines}{startzeilen}
-\setinterfacecommand{startlocal}{startlokal}
-\setinterfacecommand{startlocalfootnotes}{startlokalefussnoten}
-\setinterfacecommand{startmakeup}{startumbruch}
-\setinterfacecommand{startmarginblock}{startmarginalblock}
-\setinterfacecommand{startmarginrule}{startmarginallinie}
-\setinterfacecommand{startnarrower}{startenger}
-\setinterfacecommand{startopposite}{startgegenueber}
-\setinterfacecommand{startoverlay}{startoverlay}
-\setinterfacecommand{startoverview}{startueberblick}
-\setinterfacecommand{startpacked}{startkleinerdurchschuss}
-\setinterfacecommand{startpositioning}{startpositionieren}
-\setinterfacecommand{startproduct}{startprodukt}
-\setinterfacecommand{startprofile}{startprofil}
-\setinterfacecommand{startproject}{startprojekt}
-\setinterfacecommand{startquotation}{startzitat}
-\setinterfacecommand{startraster}{startraster}
-\setinterfacecommand{startsymbolset}{startsymbolset}
-\setinterfacecommand{startsynchronization}{startsynchronisation}
-\setinterfacecommand{starttable}{starttabelle}
-\setinterfacecommand{starttables}{starttabellen}
-\setinterfacecommand{starttext}{starttext}
-\setinterfacecommand{starttextbackground}{starttextbackground}
-\setinterfacecommand{starttextrule}{starttextlinie}
-\setinterfacecommand{startunpacked}{startgrosserdurchschuss}
-\setinterfacecommand{startversion}{startversion}
-\setinterfacecommand{stopalignment}{stopausrichtung}
-\setinterfacecommand{stopbackground}{stophintergrund}
-\setinterfacecommand{stopcoding}{stopkodierung}
-\setinterfacecommand{stopcolor}{stopfarbe}
-\setinterfacecommand{stopcolumnmakeup}{stopcolumnmakeup}
-\setinterfacecommand{stopcolumns}{stopspalten}
-\setinterfacecommand{stopcolumnset}{stopcolumnset}
-\setinterfacecommand{stopcombination}{stopkombination}
-\setinterfacecommand{stopcomponent}{stopkomponente}
-\setinterfacecommand{stopdocument}{stopdokument}
-\setinterfacecommand{stopenvironment}{stopumgebung}
-\setinterfacecommand{stopframed}{stopframed}
-\setinterfacecommand{stopglobal}{stopglobal}
-\setinterfacecommand{stopline}{stopzeile}
-\setinterfacecommand{stoplinecorrection}{stopzeilenkorrektur}
-\setinterfacecommand{stoplinenote}{stoplinenote}
-\setinterfacecommand{stoplinenumbering}{stopzeilennumerierung}
-\setinterfacecommand{stoplines}{stopzeilen}
-\setinterfacecommand{stoplocal}{stoplokal}
-\setinterfacecommand{stoplocalfootnotes}{stoplokalefussnoten}
-\setinterfacecommand{stopmakeup}{stopumbruch}
-\setinterfacecommand{stopmarginblock}{stopmarginalblock}
-\setinterfacecommand{stopmarginrule}{stopmarginallinie}
-\setinterfacecommand{stopnarrower}{stopenger}
-\setinterfacecommand{stopopposite}{stopgegenueber}
-\setinterfacecommand{stopoverlay}{stopoverlay}
-\setinterfacecommand{stopoverview}{stopueberblick}
-\setinterfacecommand{stoppacked}{stopkleinerdurchschuss}
-\setinterfacecommand{stoppositioning}{stoppositionieren}
-\setinterfacecommand{stopproduct}{stopprodukt}
-\setinterfacecommand{stopprofile}{stopprofil}
-\setinterfacecommand{stopproject}{stopprojekt}
-\setinterfacecommand{stopquotation}{stopzitat}
-\setinterfacecommand{stopraster}{stopraster}
-\setinterfacecommand{stopsynchronization}{stopsynchronisation}
-\setinterfacecommand{stoptable}{stoptabelle}
-\setinterfacecommand{stoptables}{stoptabellen}
-\setinterfacecommand{stoptext}{stoptext}
-\setinterfacecommand{stoptextbackground}{stoptextbackground}
-\setinterfacecommand{stoptextrule}{stoptextlinie}
-\setinterfacecommand{stopunpacked}{stopgrosserdurchschuss}
-\setinterfacecommand{stopversion}{stopversion}
-\setinterfacecommand{stretched}{gestreckt}
-\setinterfacecommand{strictinspectnextcharacter}{strictinspectnextcharacter}
-\setinterfacecommand{stripcharacter}{stripcharacter}
-\setinterfacecommand{subformulanumber}{unterformelnummer}
-\setinterfacecommand{subpagenumber}{subpagenumber}
-\setinterfacecommand{subtractfeature}{subtractfeature}
-\setinterfacecommand{switchtobodyfont}{wechselezumfliesstext}
-\setinterfacecommand{switchtorawfont}{switchtorawfont}
-\setinterfacecommand{sym}{sym}
-\setinterfacecommand{symbol}{symbol}
-\setinterfacecommand{symoffset}{symoffset}
-\setinterfacecommand{synchronizationbar}{synchronisationsbalken}
-\setinterfacecommand{synchronize}{synchronisieren}
-\setinterfacecommand{tab}{tab}
-\setinterfacecommand{testcolumn}{testcolumn}
-\setinterfacecommand{testfeature}{testfeature}
-\setinterfacecommand{testfeatureonce}{testfeatureonce}
-\setinterfacecommand{testpage}{testpage}
-\setinterfacecommand{tex}{tex}
-\setinterfacecommand{textbackground}{textbackground}
-\setinterfacecommand{textcolor}{textcolor}
-\setinterfacecommand{textheight}{texthoehe}
-\setinterfacecommand{textnote}{textnote}
-\setinterfacecommand{textreference}{textreferenz}
-\setinterfacecommand{textrule}{textlinie}
-\setinterfacecommand{textvariable}{textvariable}
-\setinterfacecommand{textwidth}{textbreite}
-\setinterfacecommand{thefirstcharacter}{thefirstcharacter}
-\setinterfacecommand{thenormalizedbodyfontsize}{thenormalizedbodyfontsize}
-\setinterfacecommand{theremainingcharacters}{theremainingcharacters}
-\setinterfacecommand{thinrule}{duennelinie}
-\setinterfacecommand{thinrules}{duennerumriss}
-\setinterfacecommand{tolinenote}{tolinenote}
-\setinterfacecommand{tooltip}{tooltip}
-\setinterfacecommand{topdistance}{abstandoben}
-\setinterfacecommand{topheight}{hoeheoben}
-\setinterfacecommand{topspace}{kopfweite}
-\setinterfacecommand{totalnumberofpages}{gesamtseitenanzahl}
-\setinterfacecommand{translate}{uebersetzten}
-\setinterfacecommand{txt}{txt}
-\setinterfacecommand{typ}{tip}
-\setinterfacecommand{type}{tippen}
-\setinterfacecommand{typebuffer}{tippepuffer}
-\setinterfacecommand{typedefinedbuffer}{typedefinedbuffer}
-\setinterfacecommand{typefile}{tippedatei}
-\setinterfacecommand{typeinlinebuffer}{typeinlinebuffer}
-\setinterfacecommand{typing}{typing}
-\setinterfacecommand{unitmeaning}{bedeutung}
-\setinterfacecommand{unknown}{unbekant}
-\setinterfacecommand{unregisterhyphenationpattern}{unregisterhyphenationpattern}
-\setinterfacecommand{useJSscripts}{verwendeJSscript}
-\setinterfacecommand{useURL}{verwendeURL}
-\setinterfacecommand{useXMLfilter}{useXMLfilter}
-\setinterfacecommand{useblocks}{verwendebloecke}
-\setinterfacecommand{usebodyfont}{usebodyfont}
-\setinterfacecommand{usebodyfontparameter}{usebodyfontparameter}
-\setinterfacecommand{usecommands}{verwendebefehl}
-\setinterfacecommand{useencoding}{benutzekodierung}
-\setinterfacecommand{useexternaldocument}{verwendeexteresdokument}
-\setinterfacecommand{useexternalfigure}{verwendeexterneabbildung}
-\setinterfacecommand{useexternalfile}{verwendeexternedatei}
-\setinterfacecommand{useexternalfiles}{verwendeexternedateien}
-\setinterfacecommand{useexternalsoundtrack}{verwendeexternestonstueck}
-\setinterfacecommand{usemodule}{verwendemodul}
-\setinterfacecommand{usemodules}{verwendemodule}
-\setinterfacecommand{usepath}{benutzeverzeichnis}
-\setinterfacecommand{usereferences}{verwendereferenzen}
-\setinterfacecommand{usespecials}{benutzespezielles}
-\setinterfacecommand{usesymbols}{verwendesymbole}
-\setinterfacecommand{usetypescript}{usetypescript}
-\setinterfacecommand{usetypescriptfile}{usetypescriptfile}
-\setinterfacecommand{useurl}{verwendeurl}
-\setinterfacecommand{verbatim}{verbatim}
-\setinterfacecommand{version}{version}
-\setinterfacecommand{vl}{vl}
-\setinterfacecommand{weekday}{wochentag}
-\setinterfacecommand{whitespace}{zwischenraum}
-\setinterfacecommand{widthspanningtext}{widthspanningtext}
-\setinterfacecommand{wordright}{wortrechts}
-\setinterfacecommand{writebetweenlist}{schreibezwischenliste}
-\setinterfacecommand{writetolist}{schreibezurliste}
-\setinterfacecommand{writetoreferencelist}{schreibezurreferenzliste}
-\setinterfacecommand{writetoregister}{schreibezumregister}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-def.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-def.mkii
deleted file mode 100644
index a75ef993f55..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-def.mkii
+++ /dev/null
@@ -1,31 +0,0 @@
-%D \module
-%D [ file=mult-def,
-%D version=2008.10.22,
-%D title=\CONTEXT\ Multilingual Macros,
-%D subtitle=Definitions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\setvalue{@interface@czech@}{cs}
-\setvalue{@interface@german@}{de}
-\setvalue{@interface@english@}{en}
-\setvalue{@interface@french@}{fr}
-\setvalue{@interface@italian@}{it}
-\setvalue{@interface@dutch@}{nl}
-\setvalue{@interface@persian@}{pe}
-\setvalue{@interface@romanian@}{ro}
-
-\def\userinterfacetag{\ifcsname @interface@\currentinterface @\endcsname\csname @interface@\currentinterface @\endcsname\else en\fi}
-\def\userresponsestag{\ifcsname @interface@\currentresponses @\endcsname\csname @interface@\currentresponses @\endcsname\else en\fi}
-
-\input mult-\userinterfacetag .\mksuffix \relax
-\input mult-m\userresponsestag.\mksuffix \relax
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-en.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-en.mkii
deleted file mode 100644
index d3a073db356..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-en.mkii
+++ /dev/null
@@ -1,2221 +0,0 @@
-% this file is auto-generated, don't edit this file
-%
-% definitions for interface variables for language en
-%
-\setinterfacevariable{Addition}{Addition}
-\setinterfacevariable{Alphabetic}{Alphabetic}
-\setinterfacevariable{Balloon}{Balloon}
-\setinterfacevariable{Cap}{Cap}
-\setinterfacevariable{Capital}{Capital}
-\setinterfacevariable{Character}{Character}
-\setinterfacevariable{Characters}{Characters}
-\setinterfacevariable{CloseDocument}{CloseDocument}
-\setinterfacevariable{ExitViewer}{ExitViewer}
-\setinterfacevariable{FirstPage}{FirstPage}
-\setinterfacevariable{FitHeight}{FitHeight}
-\setinterfacevariable{FitWidth}{FitWidth}
-\setinterfacevariable{GotoPage}{GotoPage}
-\setinterfacevariable{Greek}{Greek}
-\setinterfacevariable{Help}{Help}
-\setinterfacevariable{HideField}{HideField}
-\setinterfacevariable{HideLayer}{HideLayer}
-\setinterfacevariable{Key}{Key}
-\setinterfacevariable{LastPage}{LastPage}
-\setinterfacevariable{LoadForm}{LoadForm}
-\setinterfacevariable{MONTH}{MONTH}
-\setinterfacevariable{New}{New}
-\setinterfacevariable{NextJump}{NextJump}
-\setinterfacevariable{NextPage}{NextPage}
-\setinterfacevariable{Numbers}{Numbers}
-\setinterfacevariable{OpenNamedDocument}{OpenNamedDocument}
-\setinterfacevariable{Ordinal}{Ordinal}
-\setinterfacevariable{Paragraph}{Paragraph}
-\setinterfacevariable{PauseMovie}{PauseMovie}
-\setinterfacevariable{PauseRendering}{PauseRendering}
-\setinterfacevariable{PauseSound}{PauseSound}
-\setinterfacevariable{PreviousJump}{PreviousJump}
-\setinterfacevariable{PreviousPage}{PreviousPage}
-\setinterfacevariable{PrintDocument}{PrintDocument}
-\setinterfacevariable{Query}{Query}
-\setinterfacevariable{QueryAgain}{QueryAgain}
-\setinterfacevariable{ResetForm}{ResetForm}
-\setinterfacevariable{ResumeMovie}{ResumeMovie}
-\setinterfacevariable{ResumeRendering}{ResumeRendering}
-\setinterfacevariable{ResumeSound}{ResumeSound}
-\setinterfacevariable{Romannumerals}{Romannumerals}
-\setinterfacevariable{SaveDocument}{SaveDocument}
-\setinterfacevariable{SaveForm}{SaveForm}
-\setinterfacevariable{SaveNamedDocument}{SaveNamedDocument}
-\setinterfacevariable{SearchAgain}{SearchAgain}
-\setinterfacevariable{SearchDocument}{SearchDocument}
-\setinterfacevariable{ShowBookmarks}{ShowBookmarks}
-\setinterfacevariable{ShowField}{ShowField}
-\setinterfacevariable{ShowThumbs}{ShowThumbs}
-\setinterfacevariable{StartMovie}{StartMovie}
-\setinterfacevariable{StartRendering}{StartRendering}
-\setinterfacevariable{StartSound}{StartSound}
-\setinterfacevariable{StopMovie}{StopMovie}
-\setinterfacevariable{StopRendering}{StopRendering}
-\setinterfacevariable{StopSound}{StopSound}
-\setinterfacevariable{SubmitForm}{SubmitForm}
-\setinterfacevariable{ToggleLayer}{ToggleLayer}
-\setinterfacevariable{ToggleViewer}{ToggleViewer}
-\setinterfacevariable{URL}{URL}
-\setinterfacevariable{VideLayer}{VideLayer}
-\setinterfacevariable{ViewerHelp}{ViewerHelp}
-\setinterfacevariable{WEEKDAY}{WEEKDAY}
-\setinterfacevariable{WORD}{WORD}
-\setinterfacevariable{WORDS}{WORDS}
-\setinterfacevariable{Word}{Word}
-\setinterfacevariable{Words}{Words}
-\setinterfacevariable{abbreviation}{abbreviation}
-\setinterfacevariable{abbreviations}{abbreviations}
-\setinterfacevariable{absolute}{absolute}
-\setinterfacevariable{action}{action}
-\setinterfacevariable{after}{after}
-\setinterfacevariable{all}{all}
-\setinterfacevariable{alphabetic}{alphabetic}
-\setinterfacevariable{always}{always}
-\setinterfacevariable{anchor}{anchor}
-\setinterfacevariable{and}{and}
-\setinterfacevariable{answerarea}{answerarea}
-\setinterfacevariable{appendices}{appendices}
-\setinterfacevariable{appendix}{appendix}
-\setinterfacevariable{april}{april}
-\setinterfacevariable{aside}{aside}
-\setinterfacevariable{atleftmargin}{atleftmargin}
-\setinterfacevariable{atmargin}{atmargin}
-\setinterfacevariable{atpage}{atpage}
-\setinterfacevariable{atrightmargin}{atrightmargin}
-\setinterfacevariable{attachment}{attachment}
-\setinterfacevariable{august}{august}
-\setinterfacevariable{author}{author}
-\setinterfacevariable{auto}{auto}
-\setinterfacevariable{autointro}{autointro}
-\setinterfacevariable{autopunctuation}{autopunctuation}
-\setinterfacevariable{back}{back}
-\setinterfacevariable{background}{background}
-\setinterfacevariable{backmatter}{backmatter}
-\setinterfacevariable{backpart}{backpart}
-\setinterfacevariable{backspace}{backspace}
-\setinterfacevariable{backward}{backward}
-\setinterfacevariable{bbl}{bbl}
-\setinterfacevariable{before}{before}
-\setinterfacevariable{begin}{begin}
-\setinterfacevariable{bib}{bib}
-\setinterfacevariable{big}{big}
-\setinterfacevariable{bigbodyfont}{bigbodyfont}
-\setinterfacevariable{bigger}{bigger}
-\setinterfacevariable{bigpreference}{bigpreference}
-\setinterfacevariable{blank}{blank}
-\setinterfacevariable{block}{block}
-\setinterfacevariable{blockquote}{blockquote}
-\setinterfacevariable{bodymatter}{bodymatter}
-\setinterfacevariable{bodypart}{bodypart}
-\setinterfacevariable{bold}{bold}
-\setinterfacevariable{bolditalic}{bolditalic}
-\setinterfacevariable{boldslanted}{boldslanted}
-\setinterfacevariable{bookmark}{bookmark}
-\setinterfacevariable{both}{both}
-\setinterfacevariable{bothtext}{bothtext}
-\setinterfacevariable{bottom}{bottom}
-\setinterfacevariable{box}{box}
-\setinterfacevariable{brief}{brief}
-\setinterfacevariable{broad}{broad}
-\setinterfacevariable{buffer}{buffer}
-\setinterfacevariable{by}{by}
-\setinterfacevariable{calligraphic}{calligraphic}
-\setinterfacevariable{camel}{camel}
-\setinterfacevariable{cap}{cap}
-\setinterfacevariable{capital}{capital}
-\setinterfacevariable{category}{category}
-\setinterfacevariable{cd:character}{cd:character}
-\setinterfacevariable{cd:font}{cd:font}
-\setinterfacevariable{center}{center}
-\setinterfacevariable{centerlast}{centerlast}
-\setinterfacevariable{chapter}{chapter}
-\setinterfacevariable{character}{character}
-\setinterfacevariable{characters}{characters}
-\setinterfacevariable{chemical}{chemical}
-\setinterfacevariable{chemicals}{chemicals}
-\setinterfacevariable{chemistry}{chemistry}
-\setinterfacevariable{cite}{cite}
-\setinterfacevariable{closed}{closed}
-\setinterfacevariable{color}{color}
-\setinterfacevariable{column}{column}
-\setinterfacevariable{columns}{columns}
-\setinterfacevariable{combination}{combination}
-\setinterfacevariable{command}{command}
-\setinterfacevariable{commands}{commands}
-\setinterfacevariable{comment}{comment}
-\setinterfacevariable{component}{component}
-\setinterfacevariable{compressseparator}{compressseparator}
-\setinterfacevariable{compressstopper}{compressstopper}
-\setinterfacevariable{concept}{concept}
-\setinterfacevariable{construction}{construction}
-\setinterfacevariable{content}{content}
-\setinterfacevariable{contents}{contents}
-\setinterfacevariable{continue}{continue}
-\setinterfacevariable{continued}{continued}
-\setinterfacevariable{controls}{controls}
-\setinterfacevariable{conversion}{conversion}
-\setinterfacevariable{current}{current}
-\setinterfacevariable{cutspace}{cutspace}
-\setinterfacevariable{dataset}{dataset}
-\setinterfacevariable{date}{date}
-\setinterfacevariable{day}{day}
-\setinterfacevariable{december}{december}
-\setinterfacevariable{default}{default}
-\setinterfacevariable{depth}{depth}
-\setinterfacevariable{description}{description}
-\setinterfacevariable{disable}{disable}
-\setinterfacevariable{display}{display}
-\setinterfacevariable{dot}{dot}
-\setinterfacevariable{doublesided}{doublesided}
-\setinterfacevariable{down}{down}
-\setinterfacevariable{each}{each}
-\setinterfacevariable{edge}{edge}
-\setinterfacevariable{effective}{effective}
-\setinterfacevariable{eight}{eight}
-\setinterfacevariable{embed}{embed}
-\setinterfacevariable{empty}{empty}
-\setinterfacevariable{enable}{enable}
-\setinterfacevariable{end}{end}
-\setinterfacevariable{endnote}{endnote}
-\setinterfacevariable{enumeration}{enumeration}
-\setinterfacevariable{environment}{environment}
-\setinterfacevariable{even}{even}
-\setinterfacevariable{export}{export}
-\setinterfacevariable{external}{external}
-\setinterfacevariable{extremestretch}{extremestretch}
-\setinterfacevariable{fact}{fact}
-\setinterfacevariable{fallback}{fallback}
-\setinterfacevariable{february}{february}
-\setinterfacevariable{field}{field}
-\setinterfacevariable{figure}{figure}
-\setinterfacevariable{figures}{figures}
-\setinterfacevariable{file}{file}
-\setinterfacevariable{final}{final}
-\setinterfacevariable{first}{first}
-\setinterfacevariable{firstcolumn}{firstcolumn}
-\setinterfacevariable{firstpage}{firstpage}
-\setinterfacevariable{firstsubpage}{firstsubpage}
-\setinterfacevariable{fit}{fit}
-\setinterfacevariable{five}{five}
-\setinterfacevariable{fix}{fix}
-\setinterfacevariable{fixed}{fixed}
-\setinterfacevariable{flexible}{flexible}
-\setinterfacevariable{float}{float}
-\setinterfacevariable{flushinner}{flushinner}
-\setinterfacevariable{flushleft}{flushleft}
-\setinterfacevariable{flushouter}{flushouter}
-\setinterfacevariable{flushright}{flushright}
-\setinterfacevariable{followingpage}{followingpage}
-\setinterfacevariable{font}{font}
-\setinterfacevariable{footer}{footer}
-\setinterfacevariable{footnote}{footnote}
-\setinterfacevariable{force}{force}
-\setinterfacevariable{foreground}{foreground}
-\setinterfacevariable{formula}{formula}
-\setinterfacevariable{formulas}{formulas}
-\setinterfacevariable{forward}{forward}
-\setinterfacevariable{four}{four}
-\setinterfacevariable{fractions}{fractions}
-\setinterfacevariable{frame}{frame}
-\setinterfacevariable{framedtext}{framedtext}
-\setinterfacevariable{friday}{friday}
-\setinterfacevariable{frontmatter}{frontmatter}
-\setinterfacevariable{frontpart}{frontpart}
-\setinterfacevariable{fullhz}{fullhz}
-\setinterfacevariable{global}{global}
-\setinterfacevariable{graphic}{graphic}
-\setinterfacevariable{graphics}{graphics}
-\setinterfacevariable{gray}{gray}
-\setinterfacevariable{greek}{greek}
-\setinterfacevariable{grid}{grid}
-\setinterfacevariable{halfline}{halfline}
-\setinterfacevariable{handwritten}{handwritten}
-\setinterfacevariable{hang}{hang}
-\setinterfacevariable{hanging}{hanging}
-\setinterfacevariable{hangingboth}{hangingboth}
-\setinterfacevariable{head}{head}
-\setinterfacevariable{header}{header}
-\setinterfacevariable{headintext}{headintext}
-\setinterfacevariable{height}{height}
-\setinterfacevariable{helptext}{helptext}
-\setinterfacevariable{hencefore}{hencefore}
-\setinterfacevariable{here}{here}
-\setinterfacevariable{hereafter}{hereafter}
-\setinterfacevariable{hidden}{hidden}
-\setinterfacevariable{hiddenbar}{hiddenbar}
-\setinterfacevariable{hiding}{hiding}
-\setinterfacevariable{high}{high}
-\setinterfacevariable{horizontal}{horizontal}
-\setinterfacevariable{hyphenated}{hyphenated}
-\setinterfacevariable{hz}{hz}
-\setinterfacevariable{inbetween}{inbetween}
-\setinterfacevariable{index}{index}
-\setinterfacevariable{indices}{indices}
-\setinterfacevariable{inherit}{inherit}
-\setinterfacevariable{ininner}{ininner}
-\setinterfacevariable{ininneredge}{ininneredge}
-\setinterfacevariable{ininnermargin}{ininnermargin}
-\setinterfacevariable{inleft}{inleft}
-\setinterfacevariable{inleftedge}{inleftedge}
-\setinterfacevariable{inleftmargin}{inleftmargin}
-\setinterfacevariable{inline}{inline}
-\setinterfacevariable{inmargin}{inmargin}
-\setinterfacevariable{inner}{inner}
-\setinterfacevariable{inneredge}{inneredge}
-\setinterfacevariable{innermargin}{innermargin}
-\setinterfacevariable{inother}{inother}
-\setinterfacevariable{inouter}{inouter}
-\setinterfacevariable{inouteredge}{inouteredge}
-\setinterfacevariable{inoutermargin}{inoutermargin}
-\setinterfacevariable{inright}{inright}
-\setinterfacevariable{inrightedge}{inrightedge}
-\setinterfacevariable{inrightmargin}{inrightmargin}
-\setinterfacevariable{integral}{integral}
-\setinterfacevariable{interaction}{interaction}
-\setinterfacevariable{interactionmenu}{interactionmenu}
-\setinterfacevariable{interactive}{interactive}
-\setinterfacevariable{intermezzi}{intermezzi}
-\setinterfacevariable{intermezzo}{intermezzo}
-\setinterfacevariable{intext}{intext}
-\setinterfacevariable{intro}{intro}
-\setinterfacevariable{invertedshort}{invertedshort}
-\setinterfacevariable{italic}{italic}
-\setinterfacevariable{italicbold}{italicbold}
-\setinterfacevariable{item}{item}
-\setinterfacevariable{itemize}{itemize}
-\setinterfacevariable{its}{its}
-\setinterfacevariable{january}{january}
-\setinterfacevariable{joinedup}{joinedup}
-\setinterfacevariable{july}{july}
-\setinterfacevariable{june}{june}
-\setinterfacevariable{keep}{keep}
-\setinterfacevariable{kerncharacters}{kerncharacters}
-\setinterfacevariable{knockout}{knockout}
-\setinterfacevariable{label}{label}
-\setinterfacevariable{landscape}{landscape}
-\setinterfacevariable{last}{last}
-\setinterfacevariable{lastcolumn}{lastcolumn}
-\setinterfacevariable{lastpage}{lastpage}
-\setinterfacevariable{lastpagenumber}{lastpagenumber}
-\setinterfacevariable{lastsubpage}{lastsubpage}
-\setinterfacevariable{layer}{layer}
-\setinterfacevariable{left}{left}
-\setinterfacevariable{leftedge}{leftedge}
-\setinterfacevariable{lefthanging}{lefthanging}
-\setinterfacevariable{leftmargin}{leftmargin}
-\setinterfacevariable{leftpage}{leftpage}
-\setinterfacevariable{lefttoright}{lefttoright}
-\setinterfacevariable{legend}{legend}
-\setinterfacevariable{less}{less}
-\setinterfacevariable{lesshyphenation}{lesshyphenation}
-\setinterfacevariable{letterspacing}{letterspacing}
-\setinterfacevariable{line}{line}
-\setinterfacevariable{linenote}{linenote}
-\setinterfacevariable{lines}{lines}
-\setinterfacevariable{linked}{linked}
-\setinterfacevariable{list}{list}
-\setinterfacevariable{local}{local}
-\setinterfacevariable{localenvironment}{localenvironment}
-\setinterfacevariable{logo}{logo}
-\setinterfacevariable{logos}{logos}
-\setinterfacevariable{lohi}{lohi}
-\setinterfacevariable{long}{long}
-\setinterfacevariable{loose}{loose}
-\setinterfacevariable{low}{low}
-\setinterfacevariable{ls}{ls}
-\setinterfacevariable{makeup}{makeup}
-\setinterfacevariable{mar}{mar}
-\setinterfacevariable{march}{march}
-\setinterfacevariable{margin}{margin}
-\setinterfacevariable{marginedge}{marginedge}
-\setinterfacevariable{margintext}{margintext}
-\setinterfacevariable{margintitle}{margintitle}
-\setinterfacevariable{marking}{marking}
-\setinterfacevariable{math}{math}
-\setinterfacevariable{mathalignment}{mathalignment}
-\setinterfacevariable{mathcases}{mathcases}
-\setinterfacevariable{mathematics}{mathematics}
-\setinterfacevariable{mathmatrix}{mathmatrix}
-\setinterfacevariable{max}{max}
-\setinterfacevariable{maxdepth}{maxdepth}
-\setinterfacevariable{maxheight}{maxheight}
-\setinterfacevariable{maxwidth}{maxwidth}
-\setinterfacevariable{may}{may}
-\setinterfacevariable{mediaeval}{mediaeval}
-\setinterfacevariable{medium}{medium}
-\setinterfacevariable{middle}{middle}
-\setinterfacevariable{min}{min}
-\setinterfacevariable{mindepth}{mindepth}
-\setinterfacevariable{minheight}{minheight}
-\setinterfacevariable{minwidth}{minwidth}
-\setinterfacevariable{mirrored}{mirrored}
-\setinterfacevariable{mixed}{mixed}
-\setinterfacevariable{monday}{monday}
-\setinterfacevariable{mono}{mono}
-\setinterfacevariable{monobold}{monobold}
-\setinterfacevariable{mononormal}{mononormal}
-\setinterfacevariable{month}{month}
-\setinterfacevariable{more}{more}
-\setinterfacevariable{morehyphenation}{morehyphenation}
-\setinterfacevariable{name}{name}
-\setinterfacevariable{narrow}{narrow}
-\setinterfacevariable{negative}{negative}
-\setinterfacevariable{never}{never}
-\setinterfacevariable{new}{new}
-\setinterfacevariable{next}{next}
-\setinterfacevariable{nextevenpage}{nextevenpage}
-\setinterfacevariable{nextoddpage}{nextoddpage}
-\setinterfacevariable{nextpage}{nextpage}
-\setinterfacevariable{nextsubpage}{nextsubpage}
-\setinterfacevariable{nine}{nine}
-\setinterfacevariable{no}{no}
-\setinterfacevariable{nocheck}{nocheck}
-\setinterfacevariable{nodepth}{nodepth}
-\setinterfacevariable{nofit}{nofit}
-\setinterfacevariable{nogrid}{nogrid}
-\setinterfacevariable{noheight}{noheight}
-\setinterfacevariable{nohz}{nohz}
-\setinterfacevariable{noline}{noline}
-\setinterfacevariable{nomarking}{nomarking}
-\setinterfacevariable{nomenubar}{nomenubar}
-\setinterfacevariable{none}{none}
-\setinterfacevariable{nonumber}{nonumber}
-\setinterfacevariable{norepeat}{norepeat}
-\setinterfacevariable{normal}{normal}
-\setinterfacevariable{normalshort}{normalshort}
-\setinterfacevariable{nospacing}{nospacing}
-\setinterfacevariable{nostopper}{nostopper}
-\setinterfacevariable{not}{not}
-\setinterfacevariable{notation}{notation}
-\setinterfacevariable{note}{note}
-\setinterfacevariable{nothanging}{nothanging}
-\setinterfacevariable{nothyphenated}{nothyphenated}
-\setinterfacevariable{notjoinedup}{notjoinedup}
-\setinterfacevariable{november}{november}
-\setinterfacevariable{nowhere}{nowhere}
-\setinterfacevariable{nowhite}{nowhite}
-\setinterfacevariable{number}{number}
-\setinterfacevariable{numbers}{numbers}
-\setinterfacevariable{october}{october}
-\setinterfacevariable{odd}{odd}
-\setinterfacevariable{off}{off}
-\setinterfacevariable{offset}{offset}
-\setinterfacevariable{old}{old}
-\setinterfacevariable{oldstyle}{oldstyle}
-\setinterfacevariable{on}{on}
-\setinterfacevariable{one}{one}
-\setinterfacevariable{opposite}{opposite}
-\setinterfacevariable{ordinal}{ordinal}
-\setinterfacevariable{outer}{outer}
-\setinterfacevariable{outeredge}{outeredge}
-\setinterfacevariable{outermargin}{outermargin}
-\setinterfacevariable{overbar}{overbar}
-\setinterfacevariable{overbars}{overbars}
-\setinterfacevariable{overlay}{overlay}
-\setinterfacevariable{overprint}{overprint}
-\setinterfacevariable{overstrike}{overstrike}
-\setinterfacevariable{overstrikes}{overstrikes}
-\setinterfacevariable{packed}{packed}
-\setinterfacevariable{page}{page}
-\setinterfacevariable{pagecomment}{pagecomment}
-\setinterfacevariable{pagenumber}{pagenumber}
-\setinterfacevariable{paper}{paper}
-\setinterfacevariable{paragraph}{paragraph}
-\setinterfacevariable{part}{part}
-\setinterfacevariable{positive}{positive}
-\setinterfacevariable{postponing}{postponing}
-\setinterfacevariable{postscript}{postscript}
-\setinterfacevariable{precedingpage}{precedingpage}
-\setinterfacevariable{preference}{preference}
-\setinterfacevariable{preview}{preview}
-\setinterfacevariable{previous}{previous}
-\setinterfacevariable{previousevenpage}{previousevenpage}
-\setinterfacevariable{previousoddpage}{previousoddpage}
-\setinterfacevariable{previouspage}{previouspage}
-\setinterfacevariable{previoussubpage}{previoussubpage}
-\setinterfacevariable{print}{print}
-\setinterfacevariable{printable}{printable}
-\setinterfacevariable{process}{process}
-\setinterfacevariable{product}{product}
-\setinterfacevariable{program}{program}
-\setinterfacevariable{project}{project}
-\setinterfacevariable{protected}{protected}
-\setinterfacevariable{quadruple}{quadruple}
-\setinterfacevariable{quarterline}{quarterline}
-\setinterfacevariable{quotation}{quotation}
-\setinterfacevariable{quote}{quote}
-\setinterfacevariable{ran}{ran}
-\setinterfacevariable{random}{random}
-\setinterfacevariable{readonly}{readonly}
-\setinterfacevariable{rectangular}{rectangular}
-\setinterfacevariable{reference}{reference}
-\setinterfacevariable{referral}{referral}
-\setinterfacevariable{region}{region}
-\setinterfacevariable{register}{register}
-\setinterfacevariable{regular}{regular}
-\setinterfacevariable{relative}{relative}
-\setinterfacevariable{repeat}{repeat}
-\setinterfacevariable{required}{required}
-\setinterfacevariable{reset}{reset}
-\setinterfacevariable{reverse}{reverse}
-\setinterfacevariable{right}{right}
-\setinterfacevariable{rightedge}{rightedge}
-\setinterfacevariable{righthanging}{righthanging}
-\setinterfacevariable{rightmargin}{rightmargin}
-\setinterfacevariable{rightpage}{rightpage}
-\setinterfacevariable{righttoleft}{righttoleft}
-\setinterfacevariable{roman}{roman}
-\setinterfacevariable{romannumerals}{romannumerals}
-\setinterfacevariable{rotate}{rotate}
-\setinterfacevariable{rotated}{rotated}
-\setinterfacevariable{round}{round}
-\setinterfacevariable{row}{row}
-\setinterfacevariable{rule}{rule}
-\setinterfacevariable{samepage}{samepage}
-\setinterfacevariable{sans}{sans}
-\setinterfacevariable{sansbold}{sansbold}
-\setinterfacevariable{sansnormal}{sansnormal}
-\setinterfacevariable{sansserif}{sansserif}
-\setinterfacevariable{saturday}{saturday}
-\setinterfacevariable{screen}{screen}
-\setinterfacevariable{section}{section}
-\setinterfacevariable{sectionblockenvironment}{sectionblockenvironment}
-\setinterfacevariable{sectionnumber}{sectionnumber}
-\setinterfacevariable{see}{see}
-\setinterfacevariable{selectfont}{selectfont}
-\setinterfacevariable{separator}{separator}
-\setinterfacevariable{september}{september}
-\setinterfacevariable{serif}{serif}
-\setinterfacevariable{serifbold}{serifbold}
-\setinterfacevariable{serifnormal}{serifnormal}
-\setinterfacevariable{serried}{serried}
-\setinterfacevariable{setups}{setups}
-\setinterfacevariable{seven}{seven}
-\setinterfacevariable{sheet}{sheet}
-\setinterfacevariable{shiftdown}{shiftdown}
-\setinterfacevariable{shiftup}{shiftup}
-\setinterfacevariable{short}{short}
-\setinterfacevariable{simplefonts}{simplefonts}
-\setinterfacevariable{simplelist}{simplelist}
-\setinterfacevariable{singlesided}{singlesided}
-\setinterfacevariable{six}{six}
-\setinterfacevariable{slanted}{slanted}
-\setinterfacevariable{slantedbold}{slantedbold}
-\setinterfacevariable{small}{small}
-\setinterfacevariable{smallbodyfont}{smallbodyfont}
-\setinterfacevariable{smallbold}{smallbold}
-\setinterfacevariable{smallbolditalic}{smallbolditalic}
-\setinterfacevariable{smallboldslanted}{smallboldslanted}
-\setinterfacevariable{smallcaps}{smallcaps}
-\setinterfacevariable{smaller}{smaller}
-\setinterfacevariable{smallitalic}{smallitalic}
-\setinterfacevariable{smallitalicbold}{smallitalicbold}
-\setinterfacevariable{smallnormal}{smallnormal}
-\setinterfacevariable{smallslanted}{smallslanted}
-\setinterfacevariable{smallslantedbold}{smallslantedbold}
-\setinterfacevariable{smalltype}{smalltype}
-\setinterfacevariable{somewhere}{somewhere}
-\setinterfacevariable{sorted}{sorted}
-\setinterfacevariable{sorting}{sorting}
-\setinterfacevariable{space}{space}
-\setinterfacevariable{spacing}{spacing}
-\setinterfacevariable{speech}{speech}
-\setinterfacevariable{split}{split}
-\setinterfacevariable{spot}{spot}
-\setinterfacevariable{standard}{standard}
-\setinterfacevariable{start}{start}
-\setinterfacevariable{starter}{starter}
-\setinterfacevariable{sticker}{sticker}
-\setinterfacevariable{stop}{stop}
-\setinterfacevariable{stopper}{stopper}
-\setinterfacevariable{stretch}{stretch}
-\setinterfacevariable{stretched}{stretched}
-\setinterfacevariable{strict}{strict}
-\setinterfacevariable{strong}{strong}
-\setinterfacevariable{strut}{strut}
-\setinterfacevariable{sub}{sub}
-\setinterfacevariable{subbackward}{subbackward}
-\setinterfacevariable{subformula}{subformula}
-\setinterfacevariable{subforward}{subforward}
-\setinterfacevariable{subject}{subject}
-\setinterfacevariable{subpage}{subpage}
-\setinterfacevariable{subs}{subs}
-\setinterfacevariable{subsection}{subsection}
-\setinterfacevariable{subsubject}{subsubject}
-\setinterfacevariable{subsubsection}{subsubsection}
-\setinterfacevariable{subsubsubject}{subsubsubject}
-\setinterfacevariable{subsubsubsection}{subsubsubsection}
-\setinterfacevariable{subsubsubsubject}{subsubsubsubject}
-\setinterfacevariable{subsubsubsubsection}{subsubsubsubsection}
-\setinterfacevariable{subsubsubsubsubject}{subsubsubsubsubject}
-\setinterfacevariable{subsubsubsubsubsection}{subsubsubsubsubsection}
-\setinterfacevariable{subsubsubsubsubsubject}{subsubsubsubsubsubject}
-\setinterfacevariable{subsubsubsubsubsubsection}{subsubsubsubsubsubsection}
-\setinterfacevariable{subsubsubsubsubsubsubject}{subsubsubsubsubsubsubject}
-\setinterfacevariable{subsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsection}
-\setinterfacevariable{subsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubject}
-\setinterfacevariable{subsubsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsubsection}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubsubject}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsubsubsection}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubsubsubject}
-\setinterfacevariable{sunday}{sunday}
-\setinterfacevariable{support}{support}
-\setinterfacevariable{sym}{sym}
-\setinterfacevariable{symbol}{symbol}
-\setinterfacevariable{synchronize}{synchronize}
-\setinterfacevariable{synonym}{synonym}
-\setinterfacevariable{system}{system}
-\setinterfacevariable{table}{table}
-\setinterfacevariable{tablehead}{tablehead}
-\setinterfacevariable{tables}{tables}
-\setinterfacevariable{tabletail}{tabletail}
-\setinterfacevariable{tabulate}{tabulate}
-\setinterfacevariable{tabulatehead}{tabulatehead}
-\setinterfacevariable{tabulatetail}{tabulatetail}
-\setinterfacevariable{tall}{tall}
-\setinterfacevariable{teletype}{teletype}
-\setinterfacevariable{temporary}{temporary}
-\setinterfacevariable{test}{test}
-\setinterfacevariable{text}{text}
-\setinterfacevariable{textnote}{textnote}
-\setinterfacevariable{three}{three}
-\setinterfacevariable{thursday}{thursday}
-\setinterfacevariable{tight}{tight}
-\setinterfacevariable{title}{title}
-\setinterfacevariable{toggle}{wissel}
-\setinterfacevariable{tolerant}{tolerant}
-\setinterfacevariable{top}{top}
-\setinterfacevariable{tuesday}{tuesday}
-\setinterfacevariable{two}{two}
-\setinterfacevariable{txt}{txt}
-\setinterfacevariable{type}{type}
-\setinterfacevariable{typing}{typing}
-\setinterfacevariable{unavailable}{unavailable}
-\setinterfacevariable{underbar}{underbar}
-\setinterfacevariable{underbars}{underbars}
-\setinterfacevariable{understrike}{understrike}
-\setinterfacevariable{understrikes}{understrikes}
-\setinterfacevariable{unframed}{unframed}
-\setinterfacevariable{unicode}{unicode}
-\setinterfacevariable{unit}{unit}
-\setinterfacevariable{units}{units}
-\setinterfacevariable{unknown}{unknown}
-\setinterfacevariable{unpacked}{unpacked}
-\setinterfacevariable{up}{up}
-\setinterfacevariable{url}{url}
-\setinterfacevariable{used}{used}
-\setinterfacevariable{value}{value}
-\setinterfacevariable{vertical}{vertical}
-\setinterfacevariable{very}{very}
-\setinterfacevariable{verystrict}{verystrict}
-\setinterfacevariable{verytolerant}{verytolerant}
-\setinterfacevariable{vfenced}{vfenced}
-\setinterfacevariable{vulgarfraction}{vulgarfraction}
-\setinterfacevariable{weak}{weak}
-\setinterfacevariable{wednesday}{wednesday}
-\setinterfacevariable{week}{week}
-\setinterfacevariable{weekday}{weekday}
-\setinterfacevariable{white}{white}
-\setinterfacevariable{wide}{wide}
-\setinterfacevariable{width}{width}
-\setinterfacevariable{word}{word}
-\setinterfacevariable{words}{words}
-\setinterfacevariable{xml}{xml}
-\setinterfacevariable{year}{year}
-\setinterfacevariable{yes}{yes}
-% definitions for interface constants for language en
-%
-\setinterfaceconstant{action}{action}
-\setinterfaceconstant{address}{address}
-\setinterfaceconstant{after}{after}
-\setinterfaceconstant{afterhead}{afterhead}
-\setinterfaceconstant{afterkey}{afterkey}
-\setinterfaceconstant{aftersection}{aftersection}
-\setinterfaceconstant{align}{align}
-\setinterfaceconstant{alignbottom}{alignbottom}
-\setinterfaceconstant{aligncharacter}{aligncharacter}
-\setinterfaceconstant{alignmentcharacter}{alignmentcharacter}
-\setinterfaceconstant{alignmentleftsample}{alignmentleftsample}
-\setinterfaceconstant{alignmentleftwidth}{alignmentleftwidth}
-\setinterfaceconstant{alignmentrightsample}{alignmentrightsample}
-\setinterfaceconstant{alignmentrightwidth}{alignmentrightwidth}
-\setinterfaceconstant{alignsymbol}{alignsymbol}
-\setinterfaceconstant{aligntitle}{aligntitle}
-\setinterfaceconstant{alternative}{alternative}
-\setinterfaceconstant{anchor}{anchor}
-\setinterfaceconstant{anchoring}{anchoring}
-\setinterfaceconstant{andtext}{andtext}
-\setinterfaceconstant{apa}{apa}
-\setinterfaceconstant{arguments}{arguments}
-\setinterfaceconstant{arrow}{arrow}
-\setinterfaceconstant{artauthor}{artauthor}
-\setinterfaceconstant{artauthoretaldisplay}{artauthoretaldisplay}
-\setinterfaceconstant{artauthoretallimit}{artauthoretallimit}
-\setinterfaceconstant{artauthoretaltext}{artauthoretaltext}
-\setinterfaceconstant{artoffset}{artoffset}
-\setinterfaceconstant{at}{at}
-\setinterfaceconstant{author}{author}
-\setinterfaceconstant{authorconversion}{authorconversion}
-\setinterfaceconstant{authoretaldisplay}{authoretaldisplay}
-\setinterfaceconstant{authoretallimit}{authoretallimit}
-\setinterfaceconstant{authoretaltext}{authoretaltext}
-\setinterfaceconstant{auto}{auto}
-\setinterfaceconstant{autocase}{autocase}
-\setinterfaceconstant{autofile}{autofile}
-\setinterfaceconstant{autofocus}{autofocus}
-\setinterfaceconstant{autohang}{autohang}
-\setinterfaceconstant{autostrut}{autostrut}
-\setinterfaceconstant{autowidth}{autowidth}
-\setinterfaceconstant{availableheight}{availableheight}
-\setinterfaceconstant{availablewidth}{availablewidth}
-\setinterfaceconstant{axis}{axis}
-\setinterfaceconstant{background}{background}
-\setinterfaceconstant{backgroundcolor}{backgroundcolor}
-\setinterfaceconstant{backgroundcorner}{backgroundcorner}
-\setinterfaceconstant{backgrounddepth}{backgrounddepth}
-\setinterfaceconstant{backgroundoffset}{backgroundoffset}
-\setinterfaceconstant{backgroundradius}{backgroundradius}
-\setinterfaceconstant{backgroundscreen}{backgroundscreen}
-\setinterfaceconstant{backreference}{backreference}
-\setinterfaceconstant{backspace}{backspace}
-\setinterfaceconstant{balance}{balance}
-\setinterfaceconstant{before}{before}
-\setinterfaceconstant{beforehead}{beforehead}
-\setinterfaceconstant{beforesection}{beforesection}
-\setinterfaceconstant{bet}{bet}
-\setinterfaceconstant{bidi}{bidi}
-\setinterfaceconstant{big}{big}
-\setinterfaceconstant{blank}{blank}
-\setinterfaceconstant{bleedoffset}{bleedoffset}
-\setinterfaceconstant{blockway}{blockway}
-\setinterfaceconstant{bodyfont}{bodyfont}
-\setinterfaceconstant{boffset}{boffset}
-\setinterfaceconstant{boldfeatures}{boldfeatures}
-\setinterfaceconstant{boldfont}{boldfont}
-\setinterfaceconstant{bolditalicfeatures}{bolditalicfeatures}
-\setinterfaceconstant{bolditalicfont}{bolditalicfont}
-\setinterfaceconstant{boldslantedfeatures}{boldslantedfeatures}
-\setinterfaceconstant{boldslantedfont}{boldslantedfont}
-\setinterfaceconstant{bookmark}{bookmark}
-\setinterfaceconstant{bottom}{bottom}
-\setinterfaceconstant{bottomafter}{bottomafter}
-\setinterfaceconstant{bottombefore}{bottombefore}
-\setinterfaceconstant{bottomcommand}{bottomcommand}
-\setinterfaceconstant{bottomdistance}{bottomdistance}
-\setinterfaceconstant{bottomframe}{bottomframe}
-\setinterfaceconstant{bottomoffset}{bottomoffset}
-\setinterfaceconstant{bottomspace}{bottomspace}
-\setinterfaceconstant{bottomstate}{bottomstate}
-\setinterfaceconstant{break}{break}
-\setinterfaceconstant{buffer}{buffer}
-\setinterfaceconstant{cache}{cache}
-\setinterfaceconstant{calculate}{calculate}
-\setinterfaceconstant{category}{category}
-\setinterfaceconstant{ccommand}{ccommand}
-\setinterfaceconstant{character}{character}
-\setinterfaceconstant{characters}{characters}
-\setinterfaceconstant{check}{check}
-\setinterfaceconstant{click}{click}
-\setinterfaceconstant{clickin}{clickin}
-\setinterfaceconstant{clickout}{clickout}
-\setinterfaceconstant{clipoffset}{clipoffset}
-\setinterfaceconstant{closeaction}{closeaction}
-\setinterfaceconstant{closecommand}{closecommand}
-\setinterfaceconstant{closepage}{closepage}
-\setinterfaceconstant{closepageaction}{closepageaction}
-\setinterfaceconstant{closesymbol}{closesymbol}
-\setinterfaceconstant{color}{color}
-\setinterfaceconstant{column}{column}
-\setinterfaceconstant{columndistance}{columndistance}
-\setinterfaceconstant{columns}{columns}
-\setinterfaceconstant{comma}{comma}
-\setinterfaceconstant{command}{command}
-\setinterfaceconstant{commandafter}{commandafter}
-\setinterfaceconstant{commandbefore}{commandbefore}
-\setinterfaceconstant{commands}{commands}
-\setinterfaceconstant{comment}{comment}
-\setinterfaceconstant{commentchar}{commentchar}
-\setinterfaceconstant{commentoffset}{commentoffset}
-\setinterfaceconstant{compact}{compact}
-\setinterfaceconstant{component}{component}
-\setinterfaceconstant{compoundhyphen}{compoundhyphen}
-\setinterfaceconstant{compress}{compress}
-\setinterfaceconstant{compressdistance}{compressdistance}
-\setinterfaceconstant{compressmethod}{compressmethod}
-\setinterfaceconstant{compressseparator}{compressseparator}
-\setinterfaceconstant{compressstopper}{compressstopper}
-\setinterfaceconstant{concerns}{concerns}
-\setinterfaceconstant{connector}{connector}
-\setinterfaceconstant{continue}{continue}
-\setinterfaceconstant{contrastcolor}{contrastcolor}
-\setinterfaceconstant{controls}{controls}
-\setinterfaceconstant{conversion}{conversion}
-\setinterfaceconstant{convertfile}{convertfile}
-\setinterfaceconstant{copies}{copies}
-\setinterfaceconstant{corner}{corner}
-\setinterfaceconstant{coupling}{coupling}
-\setinterfaceconstant{couplingway}{couplingway}
-\setinterfaceconstant{criterium}{criterium}
-\setinterfaceconstant{cropoffset}{cropoffset}
-\setinterfaceconstant{crossreference}{crossreference}
-\setinterfaceconstant{cssfile}{cssfile}
-\setinterfaceconstant{current}{current}
-\setinterfaceconstant{cutspace}{cutspace}
-\setinterfaceconstant{dash}{dash}
-\setinterfaceconstant{dat}{dat}
-\setinterfaceconstant{database}{database}
-\setinterfaceconstant{dataset}{dataset}
-\setinterfaceconstant{date}{date}
-\setinterfaceconstant{deepnumbercommand}{deepnumbercommand}
-\setinterfaceconstant{deeptextcommand}{deeptextcommand}
-\setinterfaceconstant{default}{default}
-\setinterfaceconstant{define}{define}
-\setinterfaceconstant{delay}{delay}
-\setinterfaceconstant{depth}{depth}
-\setinterfaceconstant{depthcorrection}{depthcorrection}
-\setinterfaceconstant{direction}{direction}
-\setinterfaceconstant{directory}{directory}
-\setinterfaceconstant{display}{display}
-\setinterfaceconstant{displaythreshold}{displaythreshold}
-\setinterfaceconstant{distance}{distance}
-\setinterfaceconstant{domain}{domain}
-\setinterfaceconstant{dot}{dot}
-\setinterfaceconstant{doublesided}{doublesided}
-\setinterfaceconstant{down}{down}
-\setinterfaceconstant{dummy}{dummy}
-\setinterfaceconstant{dx}{dx}
-\setinterfaceconstant{dy}{dy}
-\setinterfaceconstant{edge}{edge}
-\setinterfaceconstant{edgedistance}{edgedistance}
-\setinterfaceconstant{editor}{editor}
-\setinterfaceconstant{editoretaldisplay}{editoretaldisplay}
-\setinterfaceconstant{editoretallimit}{editoretallimit}
-\setinterfaceconstant{editoretaltext}{editoretaltext}
-\setinterfaceconstant{empty}{empty}
-\setinterfaceconstant{entities}{entities}
-\setinterfaceconstant{entries}{entries}
-\setinterfaceconstant{equalheight}{equalheight}
-\setinterfaceconstant{equalwidth}{equalwidth}
-\setinterfaceconstant{escape}{escape}
-\setinterfaceconstant{etaldisplay}{etaldisplay}
-\setinterfaceconstant{etallimit}{etallimit}
-\setinterfaceconstant{etaloption}{etaloption}
-\setinterfaceconstant{etaltext}{etaltext}
-\setinterfaceconstant{evenmargin}{evenmargin}
-\setinterfaceconstant{exact}{exact}
-\setinterfaceconstant{exitoffset}{exitoffset}
-\setinterfaceconstant{expansion}{expansion}
-\setinterfaceconstant{export}{export}
-\setinterfaceconstant{extras}{extras}
-\setinterfaceconstant{factor}{factor}
-\setinterfaceconstant{fallback}{fallback}
-\setinterfaceconstant{fallbacks}{fallbacks}
-\setinterfaceconstant{family}{family}
-\setinterfaceconstant{features}{features}
-\setinterfaceconstant{featureset}{featureset}
-\setinterfaceconstant{fences}{fences}
-\setinterfaceconstant{field}{field}
-\setinterfaceconstant{fieldbackgroundcolor}{fieldbackgroundcolor}
-\setinterfaceconstant{fieldframecolor}{fieldframecolor}
-\setinterfaceconstant{fieldlayer}{fieldlayer}
-\setinterfaceconstant{fieldoffset}{fieldoffset}
-\setinterfaceconstant{file}{file}
-\setinterfaceconstant{filler}{filler}
-\setinterfaceconstant{filter}{filter}
-\setinterfaceconstant{filtercommand}{filtercommand}
-\setinterfaceconstant{finalnamesep}{finalnamesep}
-\setinterfaceconstant{finalpagesep}{finalpagesep}
-\setinterfaceconstant{finalpubsep}{finalpubsep}
-\setinterfaceconstant{first}{first}
-\setinterfaceconstant{firstnamesep}{firstnamesep}
-\setinterfaceconstant{firstpage}{firstpage}
-\setinterfaceconstant{focus}{focus}
-\setinterfaceconstant{focusin}{focusin}
-\setinterfaceconstant{focusoffset}{focusoffset}
-\setinterfaceconstant{focusout}{focusout}
-\setinterfaceconstant{font}{font}
-\setinterfaceconstant{footer}{footer}
-\setinterfaceconstant{footerdistance}{footerdistance}
-\setinterfaceconstant{footerstate}{footerstate}
-\setinterfaceconstant{force}{force}
-\setinterfaceconstant{foregroundcolor}{foregroundcolor}
-\setinterfaceconstant{foregroundstyle}{foregroundstyle}
-\setinterfaceconstant{format}{format}
-\setinterfaceconstant{fractions}{fractions}
-\setinterfaceconstant{frame}{frame}
-\setinterfaceconstant{framecolor}{framecolor}
-\setinterfaceconstant{framecorner}{framecorner}
-\setinterfaceconstant{framedepth}{framedepth}
-\setinterfaceconstant{frameoffset}{frameoffset}
-\setinterfaceconstant{frameradius}{frameradius}
-\setinterfaceconstant{frames}{frames}
-\setinterfaceconstant{freeregion}{freeregion}
-\setinterfaceconstant{from}{from}
-\setinterfaceconstant{functioncolor}{functioncolor}
-\setinterfaceconstant{functionstyle}{functionstyle}
-\setinterfaceconstant{get}{get}
-\setinterfaceconstant{global}{global}
-\setinterfaceconstant{goodies}{goodies}
-\setinterfaceconstant{grid}{grid}
-\setinterfaceconstant{group}{group}
-\setinterfaceconstant{groupsuffix}{groupsuffix}
-\setinterfaceconstant{hang}{hang}
-\setinterfaceconstant{hcompact}{hcompact}
-\setinterfaceconstant{headalign}{headalign}
-\setinterfaceconstant{headcolor}{headcolor}
-\setinterfaceconstant{headcommand}{headcommand}
-\setinterfaceconstant{headconversion}{headconversion}
-\setinterfaceconstant{header}{header}
-\setinterfaceconstant{headerdistance}{headerdistance}
-\setinterfaceconstant{headerstate}{headerstate}
-\setinterfaceconstant{headlabel}{headlabel}
-\setinterfaceconstant{headnumber}{headnumber}
-\setinterfaceconstant{headseparator}{headseparator}
-\setinterfaceconstant{headstyle}{headstyle}
-\setinterfaceconstant{height}{height}
-\setinterfaceconstant{hfactor}{hfactor}
-\setinterfaceconstant{hfil}{hfil}
-\setinterfaceconstant{hidenumber}{hidenumber}
-\setinterfaceconstant{hoffset}{hoffset}
-\setinterfaceconstant{horizontal}{horizontal}
-\setinterfaceconstant{horoffset}{horoffset}
-\setinterfaceconstant{hyphen}{hyphen}
-\setinterfaceconstant{hyphens}{hyphens}
-\setinterfaceconstant{icommand}{icommand}
-\setinterfaceconstant{ignore}{ignore}
-\setinterfaceconstant{in}{in}
-\setinterfaceconstant{inbetween}{inbetween}
-\setinterfaceconstant{increment}{increment}
-\setinterfaceconstant{incrementnumber}{incrementnumber}
-\setinterfaceconstant{indenting}{indenting}
-\setinterfaceconstant{indentlist}{indentlist}
-\setinterfaceconstant{indentnext}{indentnext}
-\setinterfaceconstant{index}{index}
-\setinterfaceconstant{indicator}{indicator}
-\setinterfaceconstant{initialsep}{initialsep}
-\setinterfaceconstant{inlinethreshold}{inlinethreshold}
-\setinterfaceconstant{inner}{inner}
-\setinterfaceconstant{innermargin}{innermargin}
-\setinterfaceconstant{inputfile}{inputfile}
-\setinterfaceconstant{insidesection}{insidesection}
-\setinterfaceconstant{instance}{instance}
-\setinterfaceconstant{intent}{intent}
-\setinterfaceconstant{interaction}{interaction}
-\setinterfaceconstant{interlinespace}{interlinespace}
-\setinterfaceconstant{internalgrid}{internalgrid}
-\setinterfaceconstant{italicfeatures}{italicfeatures}
-\setinterfaceconstant{italicfont}{italicfont}
-\setinterfaceconstant{itemalign}{itemalign}
-\setinterfaceconstant{items}{items}
-\setinterfaceconstant{joiners}{joiners}
-\setinterfaceconstant{journalconversion}{journalconversion}
-\setinterfaceconstant{juniorsep}{juniorsep}
-\setinterfaceconstant{keeptogether}{keeptogether}
-\setinterfaceconstant{ken}{ken}
-\setinterfaceconstant{keyexpansion}{keyexpansion}
-\setinterfaceconstant{keys}{keys}
-\setinterfaceconstant{keyword}{keyword}
-\setinterfaceconstant{label}{label}
-\setinterfaceconstant{labelalternative}{labelalternative}
-\setinterfaceconstant{labelcolor}{labelcolor}
-\setinterfaceconstant{labeloffset}{labeloffset}
-\setinterfaceconstant{labelstyle}{labelstyle}
-\setinterfaceconstant{language}{language}
-\setinterfaceconstant{last}{last}
-\setinterfaceconstant{lastnamesep}{lastnamesep}
-\setinterfaceconstant{lastpage}{lastpage}
-\setinterfaceconstant{lastpagesep}{lastpagesep}
-\setinterfaceconstant{lastpubsep}{lastpubsep}
-\setinterfaceconstant{layout}{layout}
-\setinterfaceconstant{left}{left}
-\setinterfaceconstant{leftcolor}{leftcolor}
-\setinterfaceconstant{leftcompoundhyphen}{leftcompoundhyphen}
-\setinterfaceconstant{leftedge}{leftedge}
-\setinterfaceconstant{leftedgedistance}{leftedgedistance}
-\setinterfaceconstant{leftframe}{leftframe}
-\setinterfaceconstant{lefthyphen}{lefthyphen}
-\setinterfaceconstant{leftmargin}{leftmargin}
-\setinterfaceconstant{leftmargindistance}{leftmargindistance}
-\setinterfaceconstant{leftoffset}{leftoffset}
-\setinterfaceconstant{leftquotation}{leftquotation}
-\setinterfaceconstant{leftquote}{leftquote}
-\setinterfaceconstant{leftsample}{leftsample}
-\setinterfaceconstant{leftsentence}{leftsentence}
-\setinterfaceconstant{leftspeech}{leftspeech}
-\setinterfaceconstant{leftstyle}{leftstyle}
-\setinterfaceconstant{leftsubsentence}{leftsubsentence}
-\setinterfaceconstant{lefttext}{lefttext}
-\setinterfaceconstant{leftwidth}{leftwidth}
-\setinterfaceconstant{leftwords}{leftwords}
-\setinterfaceconstant{less}{less}
-\setinterfaceconstant{level}{level}
-\setinterfaceconstant{levels}{levels}
-\setinterfaceconstant{limittext}{limittext}
-\setinterfaceconstant{line}{line}
-\setinterfaceconstant{linecorrection}{linecorrection}
-\setinterfaceconstant{linedirection}{linedirection}
-\setinterfaceconstant{lines}{lines}
-\setinterfaceconstant{list}{list}
-\setinterfaceconstant{listtext}{listtext}
-\setinterfaceconstant{local}{local}
-\setinterfaceconstant{location}{location}
-\setinterfaceconstant{loffset}{loffset}
-\setinterfaceconstant{logo}{logo}
-\setinterfaceconstant{logos}{logos}
-\setinterfaceconstant{marcolor}{marcolor}
-\setinterfaceconstant{margin}{margin}
-\setinterfaceconstant{margindistance}{margindistance}
-\setinterfaceconstant{marginedge}{marginedge}
-\setinterfaceconstant{marginedgetext}{marginedgetext}
-\setinterfaceconstant{margintext}{margintext}
-\setinterfaceconstant{mark}{mark}
-\setinterfaceconstant{marking}{marking}
-\setinterfaceconstant{marstyle}{marstyle}
-\setinterfaceconstant{mask}{mask}
-\setinterfaceconstant{mathclass}{mathclass}
-\setinterfaceconstant{mathlimits}{mathlimits}
-\setinterfaceconstant{mathstyle}{mathstyle}
-\setinterfaceconstant{max}{max}
-\setinterfaceconstant{maxdepth}{maxdepth}
-\setinterfaceconstant{maxheight}{maxheight}
-\setinterfaceconstant{maxwidth}{maxwidth}
-\setinterfaceconstant{maybeyear}{maybeyear}
-\setinterfaceconstant{menu}{menu}
-\setinterfaceconstant{method}{method}
-\setinterfaceconstant{middle}{middle}
-\setinterfaceconstant{middlecolor}{middlecolor}
-\setinterfaceconstant{middlecommand}{middlecommand}
-\setinterfaceconstant{middlespeech}{middlespeech}
-\setinterfaceconstant{middlestyle}{middlestyle}
-\setinterfaceconstant{middletext}{middletext}
-\setinterfaceconstant{middlewidth}{middlewidth}
-\setinterfaceconstant{midsentence}{midsentence}
-\setinterfaceconstant{min}{min}
-\setinterfaceconstant{mindepth}{mindepth}
-\setinterfaceconstant{minheight}{minheight}
-\setinterfaceconstant{minwidth}{minwidth}
-\setinterfaceconstant{moffset}{moffset}
-\setinterfaceconstant{monthconversion}{monthconversion}
-\setinterfaceconstant{more}{more}
-\setinterfaceconstant{mpdepth}{mpdepth}
-\setinterfaceconstant{mpheight}{mpheight}
-\setinterfaceconstant{mpoffset}{mpoffset}
-\setinterfaceconstant{mpwidth}{mpwidth}
-\setinterfaceconstant{n}{n}
-\setinterfaceconstant{name}{name}
-\setinterfaceconstant{namesep}{namesep}
-\setinterfaceconstant{nbottom}{nbottom}
-\setinterfaceconstant{nc}{nc}
-\setinterfaceconstant{next}{next}
-\setinterfaceconstant{nextleft}{nextleft}
-\setinterfaceconstant{nextleftquotation}{nextleftquotation}
-\setinterfaceconstant{nextright}{nextright}
-\setinterfaceconstant{nextrightquotation}{nextrightquotation}
-\setinterfaceconstant{nl}{nl}
-\setinterfaceconstant{nleft}{nleft}
-\setinterfaceconstant{nlines}{nlines}
-\setinterfaceconstant{norm}{norm}
-\setinterfaceconstant{note}{note}
-\setinterfaceconstant{notes}{notes}
-\setinterfaceconstant{nr}{nr}
-\setinterfaceconstant{nright}{nright}
-\setinterfaceconstant{ntop}{ntop}
-\setinterfaceconstant{number}{number}
-\setinterfaceconstant{numberalign}{numberalign}
-\setinterfaceconstant{numbercolor}{numbercolor}
-\setinterfaceconstant{numbercommand}{numbercommand}
-\setinterfaceconstant{numberconversion}{numberconversion}
-\setinterfaceconstant{numberconversionset}{numberconversionset}
-\setinterfaceconstant{numberdistance}{numberdistance}
-\setinterfaceconstant{numbering}{numbering}
-\setinterfaceconstant{numberorder}{numberorder}
-\setinterfaceconstant{numberprefix}{numberprefix}
-\setinterfaceconstant{numbersegments}{numbersegments}
-\setinterfaceconstant{numberseparator}{numberseparator}
-\setinterfaceconstant{numberseparatorset}{numberseparatorset}
-\setinterfaceconstant{numberset}{numberset}
-\setinterfaceconstant{numberstarter}{numberstarter}
-\setinterfaceconstant{numberstopper}{numberstopper}
-\setinterfaceconstant{numberstrut}{numberstrut}
-\setinterfaceconstant{numberstyle}{numberstyle}
-\setinterfaceconstant{numberwidth}{numberwidth}
-\setinterfaceconstant{nx}{nx}
-\setinterfaceconstant{ny}{ny}
-\setinterfaceconstant{object}{object}
-\setinterfaceconstant{obstruction}{obstruction}
-\setinterfaceconstant{oddmargin}{oddmargin}
-\setinterfaceconstant{offset}{offset}
-\setinterfaceconstant{openaction}{openaction}
-\setinterfaceconstant{openpage}{openpage}
-\setinterfaceconstant{openpageaction}{openpageaction}
-\setinterfaceconstant{openup}{openup}
-\setinterfaceconstant{opticalsize}{opticalsize}
-\setinterfaceconstant{option}{option}
-\setinterfaceconstant{order}{order}
-\setinterfaceconstant{orientation}{orientation}
-\setinterfaceconstant{otherstext}{otherstext}
-\setinterfaceconstant{outermargin}{outermargin}
-\setinterfaceconstant{overprint}{overprint}
-\setinterfaceconstant{ownerpassword}{ownerpassword}
-\setinterfaceconstant{ownnumber}{ownnumber}
-\setinterfaceconstant{packcriterium}{packcriterium}
-\setinterfaceconstant{page}{page}
-\setinterfaceconstant{pageboundaries}{pageboundaries}
-\setinterfaceconstant{pagecolor}{pagecolor}
-\setinterfaceconstant{pagecolormodel}{pagecolormodel}
-\setinterfaceconstant{pagecommand}{pagecommand}
-\setinterfaceconstant{pageconnector}{pageconnector}
-\setinterfaceconstant{pageconversion}{pageconversion}
-\setinterfaceconstant{pageconversionset}{pageconversionset}
-\setinterfaceconstant{pageleft}{pageleft}
-\setinterfaceconstant{pagemethod}{pagemethod}
-\setinterfaceconstant{pagenumber}{pagenumber}
-\setinterfaceconstant{pageprefix}{pageprefix}
-\setinterfaceconstant{pageprefixconnector}{pageprefixconnector}
-\setinterfaceconstant{pageprefixconversion}{pageprefixconversion}
-\setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset}
-\setinterfaceconstant{pageprefixsegments}{pageprefixsegments}
-\setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset}
-\setinterfaceconstant{pageprefixset}{pageprefixset}
-\setinterfaceconstant{pageprefixstarter}{pageprefixstarter}
-\setinterfaceconstant{pageprefixstopper}{pageprefixstopper}
-\setinterfaceconstant{pageright}{pageright}
-\setinterfaceconstant{pagesegments}{pagesegments}
-\setinterfaceconstant{pagesep}{pagesep}
-\setinterfaceconstant{pageseparatorset}{pageseparatorset}
-\setinterfaceconstant{pageset}{pageset}
-\setinterfaceconstant{pagestarter}{pagestarter}
-\setinterfaceconstant{pagestate}{pagestate}
-\setinterfaceconstant{pagestopper}{pagestopper}
-\setinterfaceconstant{pagestyle}{pagestyle}
-\setinterfaceconstant{palet}{palet}
-\setinterfaceconstant{paper}{paper}
-\setinterfaceconstant{paragraph}{paragraph}
-\setinterfaceconstant{period}{period}
-\setinterfaceconstant{place}{place}
-\setinterfaceconstant{placehead}{placehead}
-\setinterfaceconstant{placeholder}{placeholder}
-\setinterfaceconstant{placestopper}{placestopper}
-\setinterfaceconstant{position}{position}
-\setinterfaceconstant{prefix}{prefix}
-\setinterfaceconstant{prefixconnector}{prefixconnector}
-\setinterfaceconstant{prefixconversion}{prefixconversion}
-\setinterfaceconstant{prefixconversionset}{prefixconversionset}
-\setinterfaceconstant{prefixsegments}{prefixsegments}
-\setinterfaceconstant{prefixseparatorset}{prefixseparatorset}
-\setinterfaceconstant{prefixset}{prefixset}
-\setinterfaceconstant{prefixstarter}{prefixstarter}
-\setinterfaceconstant{prefixstopper}{prefixstopper}
-\setinterfaceconstant{preset}{preset}
-\setinterfaceconstant{preview}{preview}
-\setinterfaceconstant{previous}{previous}
-\setinterfaceconstant{previousnumber}{previousnumber}
-\setinterfaceconstant{print}{print}
-\setinterfaceconstant{printable}{printable}
-\setinterfaceconstant{process}{process}
-\setinterfaceconstant{profile}{profile}
-\setinterfaceconstant{properties}{properties}
-\setinterfaceconstant{pubsep}{pubsep}
-\setinterfaceconstant{quotechar}{quotechar}
-\setinterfaceconstant{radius}{radius}
-\setinterfaceconstant{random}{random}
-\setinterfaceconstant{range}{range}
-\setinterfaceconstant{reduction}{reduction}
-\setinterfaceconstant{ref}{ref}
-\setinterfaceconstant{refcommand}{refcommand}
-\setinterfaceconstant{reference}{reference}
-\setinterfaceconstant{referencemethod}{referencemethod}
-\setinterfaceconstant{referenceprefix}{referenceprefix}
-\setinterfaceconstant{referencetext}{referencetext}
-\setinterfaceconstant{referencing}{referencing}
-\setinterfaceconstant{region}{region}
-\setinterfaceconstant{regionin}{regionin}
-\setinterfaceconstant{regionout}{regionout}
-\setinterfaceconstant{register}{register}
-\setinterfaceconstant{regularfeatures}{regularfeatures}
-\setinterfaceconstant{regularfont}{regularfont}
-\setinterfaceconstant{renderingsetup}{renderingsetup}
-\setinterfaceconstant{repeat}{repeat}
-\setinterfaceconstant{reset}{reset}
-\setinterfaceconstant{resetnumber}{resetnumber}
-\setinterfaceconstant{resolution}{resolution}
-\setinterfaceconstant{resources}{resources}
-\setinterfaceconstant{reverse}{reverse}
-\setinterfaceconstant{right}{right}
-\setinterfaceconstant{rightchars}{rightchars}
-\setinterfaceconstant{rightcolor}{rightcolor}
-\setinterfaceconstant{rightcompoundhyphen}{rightcompoundhyphen}
-\setinterfaceconstant{rightedge}{rightedge}
-\setinterfaceconstant{rightedgedistance}{rightedgedistance}
-\setinterfaceconstant{rightframe}{rightframe}
-\setinterfaceconstant{righthyphen}{righthyphen}
-\setinterfaceconstant{rightmargin}{rightmargin}
-\setinterfaceconstant{rightmargindistance}{rightmargindistance}
-\setinterfaceconstant{rightoffset}{rightoffset}
-\setinterfaceconstant{rightquotation}{rightquotation}
-\setinterfaceconstant{rightquote}{rightquote}
-\setinterfaceconstant{rightsample}{rightsample}
-\setinterfaceconstant{rightsentence}{rightsentence}
-\setinterfaceconstant{rightspeech}{rightspeech}
-\setinterfaceconstant{rightstyle}{rightstyle}
-\setinterfaceconstant{rightsubsentence}{rightsubsentence}
-\setinterfaceconstant{righttext}{righttext}
-\setinterfaceconstant{rightwidth}{rightwidth}
-\setinterfaceconstant{rightwords}{rightwords}
-\setinterfaceconstant{roffset}{roffset}
-\setinterfaceconstant{rotation}{rotation}
-\setinterfaceconstant{rule}{rule}
-\setinterfaceconstant{rulecolor}{rulecolor}
-\setinterfaceconstant{rulecommand}{rulecommand}
-\setinterfaceconstant{rulethickness}{rulethickness}
-\setinterfaceconstant{samepage}{samepage}
-\setinterfaceconstant{sample}{sample}
-\setinterfaceconstant{samplesize}{samplesize}
-\setinterfaceconstant{saveinlist}{saveinlist}
-\setinterfaceconstant{scale}{scale}
-\setinterfaceconstant{scope}{scope}
-\setinterfaceconstant{screen}{screen}
-\setinterfaceconstant{section}{section}
-\setinterfaceconstant{sectionblock}{sectionblock}
-\setinterfaceconstant{sectionconversion}{sectionconversion}
-\setinterfaceconstant{sectionconversionset}{sectionconversionset}
-\setinterfaceconstant{sectionnumber}{sectionnumber}
-\setinterfaceconstant{sectionresetset}{sectionresetset}
-\setinterfaceconstant{sectionsegments}{sectionsegments}
-\setinterfaceconstant{sectionseparatorset}{sectionseparatorset}
-\setinterfaceconstant{sectionset}{sectionset}
-\setinterfaceconstant{sectionstarter}{sectionstarter}
-\setinterfaceconstant{sectionstopper}{sectionstopper}
-\setinterfaceconstant{separator}{separator}
-\setinterfaceconstant{separatorcolor}{separatorcolor}
-\setinterfaceconstant{separatorstyle}{separatorstyle}
-\setinterfaceconstant{set}{set}
-\setinterfaceconstant{setups}{setups}
-\setinterfaceconstant{shrink}{shrink}
-\setinterfaceconstant{side}{side}
-\setinterfaceconstant{sidealign}{sidealign}
-\setinterfaceconstant{sidemethod}{sidemethod}
-\setinterfaceconstant{sidespaceafter}{sidespaceafter}
-\setinterfaceconstant{sidespacebefore}{sidespacebefore}
-\setinterfaceconstant{sidespaceinbetween}{sidespaceinbetween}
-\setinterfaceconstant{sidethreshold}{sidethreshold}
-\setinterfaceconstant{sign}{sign}
-\setinterfaceconstant{simplecommand}{simplecommand}
-\setinterfaceconstant{size}{size}
-\setinterfaceconstant{slantedfeatures}{slantedfeatures}
-\setinterfaceconstant{slantedfont}{slantedfont}
-\setinterfaceconstant{small}{small}
-\setinterfaceconstant{smallcapsfeatures}{smallcapsfeatures}
-\setinterfaceconstant{smallcapsfont}{smallcapsfont}
-\setinterfaceconstant{solution}{solution}
-\setinterfaceconstant{sort}{sort}
-\setinterfaceconstant{sorttype}{sorttype}
-\setinterfaceconstant{source}{source}
-\setinterfaceconstant{space}{space}
-\setinterfaceconstant{spaceafter}{spaceafter}
-\setinterfaceconstant{spaceafterside}{spaceafterside}
-\setinterfaceconstant{spacebefore}{spacebefore}
-\setinterfaceconstant{spacebeforeside}{spacebeforeside}
-\setinterfaceconstant{spaceinbetween}{spaceinbetween}
-\setinterfaceconstant{spacing}{spacing}
-\setinterfaceconstant{specification}{specification}
-\setinterfaceconstant{split}{split}
-\setinterfaceconstant{splitcolor}{splitcolor}
-\setinterfaceconstant{splitmethod}{splitmethod}
-\setinterfaceconstant{splitoffset}{splitoffset}
-\setinterfaceconstant{spot}{spot}
-\setinterfaceconstant{stack}{stack}
-\setinterfaceconstant{stackname}{stackname}
-\setinterfaceconstant{start}{start}
-\setinterfaceconstant{starter}{starter}
-\setinterfaceconstant{state}{state}
-\setinterfaceconstant{step}{step}
-\setinterfaceconstant{stop}{stop}
-\setinterfaceconstant{stopper}{stopper}
-\setinterfaceconstant{stretch}{stretch}
-\setinterfaceconstant{strip}{strip}
-\setinterfaceconstant{strut}{strut}
-\setinterfaceconstant{style}{style}
-\setinterfaceconstant{stylealternative}{stylealternative}
-\setinterfaceconstant{sub}{sub}
-\setinterfaceconstant{subtitle}{subtitle}
-\setinterfaceconstant{suffix}{suffix}
-\setinterfaceconstant{suffixseparator}{suffixseparator}
-\setinterfaceconstant{suffixstopper}{suffixstopper}
-\setinterfaceconstant{surnamefirstnamesep}{surnamefirstnamesep}
-\setinterfaceconstant{surnameinitialsep}{surnameinitialsep}
-\setinterfaceconstant{surnamesep}{surnamesep}
-\setinterfaceconstant{svgstyle}{svgstyle}
-\setinterfaceconstant{sx}{sx}
-\setinterfaceconstant{sy}{sy}
-\setinterfaceconstant{symalign}{symalign}
-\setinterfaceconstant{symbol}{symbol}
-\setinterfaceconstant{symbolcommand}{symbolcommand}
-\setinterfaceconstant{symbolset}{symbolset}
-\setinterfaceconstant{symcolor}{symcolor}
-\setinterfaceconstant{symstyle}{symstyle}
-\setinterfaceconstant{synonym}{synonym}
-\setinterfaceconstant{synonymcolor}{synonymcolor}
-\setinterfaceconstant{synonymcommand}{synonymcommand}
-\setinterfaceconstant{synonymstyle}{synonymstyle}
-\setinterfaceconstant{tab}{tab}
-\setinterfaceconstant{text}{text}
-\setinterfaceconstant{textalign}{textalign}
-\setinterfaceconstant{textcolor}{textcolor}
-\setinterfaceconstant{textcommand}{textcommand}
-\setinterfaceconstant{textdistance}{textdistance}
-\setinterfaceconstant{textheight}{textheight}
-\setinterfaceconstant{textlayer}{textlayer}
-\setinterfaceconstant{textmargin}{textmargin}
-\setinterfaceconstant{textmethod}{textmethod}
-\setinterfaceconstant{textseparator}{textseparator}
-\setinterfaceconstant{textsize}{textsize}
-\setinterfaceconstant{textstate}{textstate}
-\setinterfaceconstant{textstyle}{textstyle}
-\setinterfaceconstant{textwidth}{textwidth}
-\setinterfaceconstant{threshold}{threshold}
-\setinterfaceconstant{time}{time}
-\setinterfaceconstant{title}{title}
-\setinterfaceconstant{titlecolor}{titlecolor}
-\setinterfaceconstant{titlecommand}{titlecommand}
-\setinterfaceconstant{titledistance}{titledistance}
-\setinterfaceconstant{titleleft}{titleleft}
-\setinterfaceconstant{titleright}{titleright}
-\setinterfaceconstant{titlestrut}{titlestrut}
-\setinterfaceconstant{titlestyle}{titlestyle}
-\setinterfaceconstant{to}{to}
-\setinterfaceconstant{toffset}{toffset}
-\setinterfaceconstant{tolerance}{tolerance}
-\setinterfaceconstant{top}{top}
-\setinterfaceconstant{topcommand}{topcommand}
-\setinterfaceconstant{topdistance}{topdistance}
-\setinterfaceconstant{topframe}{topframe}
-\setinterfaceconstant{topoffset}{topoffset}
-\setinterfaceconstant{topspace}{topspace}
-\setinterfaceconstant{topstate}{topstate}
-\setinterfaceconstant{totalnumber}{totalnumber}
-\setinterfaceconstant{transform}{transform}
-\setinterfaceconstant{translate}{translate}
-\setinterfaceconstant{trimoffset}{trimoffset}
-\setinterfaceconstant{type}{type}
-\setinterfaceconstant{unit}{unit}
-\setinterfaceconstant{unknownreference}{unknownreference}
-\setinterfaceconstant{up}{up}
-\setinterfaceconstant{urlalternative}{urlalternative}
-\setinterfaceconstant{urlspace}{urlspace}
-\setinterfaceconstant{userpassword}{userpassword}
-\setinterfaceconstant{validate}{validate}
-\setinterfaceconstant{values}{values}
-\setinterfaceconstant{vcommand}{vcommand}
-\setinterfaceconstant{vcompact}{vcompact}
-\setinterfaceconstant{vector}{vector}
-\setinterfaceconstant{veroffset}{veroffset}
-\setinterfaceconstant{vertical}{vertical}
-\setinterfaceconstant{vfactor}{vfactor}
-\setinterfaceconstant{vfil}{vfil}
-\setinterfaceconstant{viewerprefix}{viewerprefix}
-\setinterfaceconstant{voffset}{voffset}
-\setinterfaceconstant{vonsep}{vonsep}
-\setinterfaceconstant{way}{way}
-\setinterfaceconstant{wfactor}{wfactor}
-\setinterfaceconstant{white}{white}
-\setinterfaceconstant{width}{width}
-\setinterfaceconstant{words}{words}
-\setinterfaceconstant{xanchor}{xanchor}
-\setinterfaceconstant{xfactor}{xfactor}
-\setinterfaceconstant{xhtml}{xhtml}
-\setinterfaceconstant{xmax}{xmax}
-\setinterfaceconstant{xmlsetup}{xmlsetup}
-\setinterfaceconstant{xoffset}{xoffset}
-\setinterfaceconstant{xscale}{xscale}
-\setinterfaceconstant{xstep}{xstep}
-\setinterfaceconstant{yanchor}{yanchor}
-\setinterfaceconstant{yfactor}{yfactor}
-\setinterfaceconstant{ymax}{ymax}
-\setinterfaceconstant{yoffset}{yoffset}
-\setinterfaceconstant{yscale}{yscale}
-\setinterfaceconstant{ystep}{ystep}
-% definitions for interface elements for language en
-%
-\setinterfaceelement{answerlines}{answerlines}
-\setinterfaceelement{answerspace}{answerspace}
-\setinterfaceelement{begin}{begin}
-\setinterfaceelement{complete}{complete}
-\setinterfaceelement{coupled}{coupled}
-\setinterfaceelement{currentlocal}{currentlocal}
-\setinterfaceelement{end}{end}
-\setinterfaceelement{endsetup}{}
-\setinterfaceelement{get}{get}
-\setinterfaceelement{increment}{increment}
-\setinterfaceelement{list}{list}
-\setinterfaceelement{listof}{listof}
-\setinterfaceelement{load}{load}
-\setinterfaceelement{local}{local}
-\setinterfaceelement{makeup}{makeup}
-\setinterfaceelement{next}{next}
-\setinterfaceelement{place}{place}
-\setinterfaceelement{previous}{previous}
-\setinterfaceelement{previouslocal}{previouslocal}
-\setinterfaceelement{reserve}{reserve}
-\setinterfaceelement{see}{see}
-\setinterfaceelement{setup}{setup}
-\setinterfaceelement{start}{start}
-\setinterfaceelement{stop}{stop}
-\setinterfaceelement{text}{text}
-\setinterfaceelement{type}{type}
-% definitions for interface commands for language en
-%
-\setinterfacecommand{Character}{Character}
-\setinterfacecommand{Characters}{Characters}
-\setinterfacecommand{MONTH}{MONTH}
-\setinterfacecommand{Numbers}{Numbers}
-\setinterfacecommand{Romannumerals}{Romannumerals}
-\setinterfacecommand{SmallCapped}{Cap}
-\setinterfacecommand{SmallCaps}{Caps}
-\setinterfacecommand{WEEKDAY}{WEEKDAY}
-\setinterfacecommand{WORD}{WORD}
-\setinterfacecommand{WORDS}{WORDS}
-\setinterfacecommand{Word}{Word}
-\setinterfacecommand{Words}{Words}
-\setinterfacecommand{about}{about}
-\setinterfacecommand{adaptfontfeature}{adaptfontfeature}
-\setinterfacecommand{adaptlayout}{adaptlayout}
-\setinterfacecommand{addfeature}{addfeature}
-\setinterfacecommand{alignbottom}{alignbottom}
-\setinterfacecommand{aligned}{aligned}
-\setinterfacecommand{alignedbox}{alignedbox}
-\setinterfacecommand{alignedline}{alignedline}
-\setinterfacecommand{alignhere}{alignhere}
-\setinterfacecommand{alignment}{alignment}
-\setinterfacecommand{alignmentcharacter}{alignmentcharacter}
-\setinterfacecommand{applytocharacters}{applytocharacters}
-\setinterfacecommand{applytofirstcharacter}{applytofirstcharacter}
-\setinterfacecommand{arg}{arg}
-\setinterfacecommand{at}{at}
-\setinterfacecommand{atleftmargin}{atleftmargin}
-\setinterfacecommand{atpage}{atpage}
-\setinterfacecommand{atrightmargin}{atrightmargin}
-\setinterfacecommand{background}{background}
-\setinterfacecommand{backspace}{backspace}
-\setinterfacecommand{blackrule}{blackrule}
-\setinterfacecommand{blackrules}{blackrules}
-\setinterfacecommand{blank}{blank}
-\setinterfacecommand{bookmark}{bookmark}
-\setinterfacecommand{bottombox}{bottombox}
-\setinterfacecommand{bottomdistance}{bottomdistance}
-\setinterfacecommand{bottomheight}{bottomheight}
-\setinterfacecommand{bottomleftbox}{bottomleftbox}
-\setinterfacecommand{bottomrightbox}{bottomrightbox}
-\setinterfacecommand{bottomspace}{bottomspace}
-\setinterfacecommand{buildtextbottomdot}{buildtextbottomdot}
-\setinterfacecommand{but}{but}
-\setinterfacecommand{button}{button}
-\setinterfacecommand{bypassblocks}{bypassblocks}
-\setinterfacecommand{character}{character}
-\setinterfacecommand{characters}{characters}
-\setinterfacecommand{chem}{chem}
-\setinterfacecommand{clip}{clip}
-\setinterfacecommand{clonefield}{clonefield}
-\setinterfacecommand{color}{color}
-\setinterfacecommand{colorbar}{colorbar}
-\setinterfacecommand{colorvalue}{colorvalue}
-\setinterfacecommand{column}{column}
-\setinterfacecommand{comparecolorgroup}{comparecolorgroup}
-\setinterfacecommand{comparepalet}{comparepalet}
-\setinterfacecommand{completepagenumber}{completepagenumber}
-\setinterfacecommand{completeregister}{completeregister}
-\setinterfacecommand{component}{component}
-\setinterfacecommand{convertnumber}{convertnumber}
-\setinterfacecommand{copyfield}{copyfield}
-\setinterfacecommand{correctwhitespace}{correctwhitespace}
-\setinterfacecommand{coupledocument}{coupledocument}
-\setinterfacecommand{couplemarking}{couplemarking}
-\setinterfacecommand{couplepage}{couplepage}
-\setinterfacecommand{couplepaper}{couplepaper}
-\setinterfacecommand{coupleregister}{coupleregister}
-\setinterfacecommand{crlf}{crlf}
-\setinterfacecommand{currentdate}{currentdate}
-\setinterfacecommand{currentheadnumber}{currentheadnumber}
-\setinterfacecommand{cutspace}{cutspace}
-\setinterfacecommand{date}{date}
-\setinterfacecommand{decouplemarking}{decouplemarking}
-\setinterfacecommand{decrementnumber}{decrementnumber}
-\setinterfacecommand{define}{define}
-\setinterfacecommand{defineaccent}{defineaccent}
-\setinterfacecommand{defineblank}{defineblank}
-\setinterfacecommand{defineblock}{defineblock}
-\setinterfacecommand{definebodyfont}{definebodyfont}
-\setinterfacecommand{definebodyfontenvironment}{definebodyfontenvironment}
-\setinterfacecommand{definebodyfontswitch}{definebodyfontswitch}
-\setinterfacecommand{definebuffer}{definebuffer}
-\setinterfacecommand{definecharacter}{definecharacter}
-\setinterfacecommand{definecharacterkerning}{definecharacterkerning}
-\setinterfacecommand{definecharacterspacing}{definecharacterspacing}
-\setinterfacecommand{definecolor}{definecolor}
-\setinterfacecommand{definecolorgroup}{definecolorgroup}
-\setinterfacecommand{definecolumnbreak}{definecolumnbreak}
-\setinterfacecommand{definecolumnset}{definecolumnset}
-\setinterfacecommand{definecombination}{definecombination}
-\setinterfacecommand{definecombinedlist}{definecombinedlist}
-\setinterfacecommand{definecommand}{definecommand}
-\setinterfacecommand{defineconversion}{defineconversion}
-\setinterfacecommand{definedescription}{definedescription}
-\setinterfacecommand{definedfont}{definedfont}
-\setinterfacecommand{defineenumeration}{defineenumeration}
-\setinterfacecommand{definefallbackfamily}{definefallbackfamily}
-\setinterfacecommand{definefield}{definefield}
-\setinterfacecommand{definefieldstack}{definefieldstack}
-\setinterfacecommand{definefiguresymbol}{definefiguresymbol}
-\setinterfacecommand{definefilefallback}{definefilefallback}
-\setinterfacecommand{definefirstline}{definefirstline}
-\setinterfacecommand{definefloat}{definefloat}
-\setinterfacecommand{definefont}{definefont}
-\setinterfacecommand{definefontalternative}{definefontalternative}
-\setinterfacecommand{definefontfallback}{definefontfallback}
-\setinterfacecommand{definefontfamily}{definefontfamily}
-\setinterfacecommand{definefontfamilypreset}{definefontfamilypreset}
-\setinterfacecommand{definefontfeature}{definefontfeature}
-\setinterfacecommand{definefontfile}{definefontfile}
-\setinterfacecommand{definefontsize}{definefontsize}
-\setinterfacecommand{definefontsolution}{definefontsolution}
-\setinterfacecommand{definefontstyle}{definefontstyle}
-\setinterfacecommand{definefontsynonym}{definefontsynonym}
-\setinterfacecommand{defineframed}{defineframed}
-\setinterfacecommand{defineframedtext}{defineframedtext}
-\setinterfacecommand{definefrozenfont}{definefrozenfont}
-\setinterfacecommand{definehbox}{definehbox}
-\setinterfacecommand{definehead}{definehead}
-\setinterfacecommand{definehyphenationfeatures}{definehyphenationfeatures}
-\setinterfacecommand{defineindentedtext}{defineindentedtext}
-\setinterfacecommand{defineinmargin}{defineinmargin}
-\setinterfacecommand{defineinteractionmenu}{defineinteractionmenu}
-\setinterfacecommand{defineitemgroup}{defineitemgroup}
-\setinterfacecommand{defineitems}{defineitems}
-\setinterfacecommand{definelabel}{definelabel}
-\setinterfacecommand{definelayer}{definelayer}
-\setinterfacecommand{definelayout}{definelayout}
-\setinterfacecommand{definelinenote}{definelinenote}
-\setinterfacecommand{definelist}{definelist}
-\setinterfacecommand{definelogo}{definelogo}
-\setinterfacecommand{definemainfield}{definemainfield}
-\setinterfacecommand{definemakeup}{definemakeup}
-\setinterfacecommand{definemarking}{definemarking}
-\setinterfacecommand{definemathalignment}{definemathalignment}
-\setinterfacecommand{definemode}{definemode}
-\setinterfacecommand{definenamedcolor}{definenamedcolor}
-\setinterfacecommand{definenote}{definenote}
-\setinterfacecommand{defineoutput}{defineoutput}
-\setinterfacecommand{defineoverlay}{defineoverlay}
-\setinterfacecommand{definepagebreak}{definepagebreak}
-\setinterfacecommand{definepalet}{definepalet}
-\setinterfacecommand{definepapersize}{definepapersize}
-\setinterfacecommand{defineparagraphs}{defineparagraphs}
-\setinterfacecommand{defineperiodkerning}{defineperiodkerning}
-\setinterfacecommand{defineplacement}{defineplacement}
-\setinterfacecommand{defineprofile}{defineprofile}
-\setinterfacecommand{defineprogram}{defineprogram}
-\setinterfacecommand{definerawfont}{definerawfont}
-\setinterfacecommand{definereference}{definereference}
-\setinterfacecommand{definereferenceformat}{definereferenceformat}
-\setinterfacecommand{definereferencelist}{definereferencelist}
-\setinterfacecommand{defineregister}{defineregister}
-\setinterfacecommand{definerule}{definerule}
-\setinterfacecommand{definesection}{definesection}
-\setinterfacecommand{definesectionblock}{definesectionblock}
-\setinterfacecommand{definesorting}{definesorting}
-\setinterfacecommand{definestartstop}{definestartstop}
-\setinterfacecommand{definestyle}{definestyle}
-\setinterfacecommand{definesubfield}{definesubfield}
-\setinterfacecommand{definesymbol}{definesymbol}
-\setinterfacecommand{definesynonyms}{definesynonyms}
-\setinterfacecommand{definetabletemplate}{definetabletemplate}
-\setinterfacecommand{definetabulate}{definetabulate}
-\setinterfacecommand{definetext}{definetext}
-\setinterfacecommand{definetextbackground}{definetextbackground}
-\setinterfacecommand{definetextnote}{definetextnote}
-\setinterfacecommand{definetextposition}{definetextposition}
-\setinterfacecommand{definetextvariable}{definetextvariable}
-\setinterfacecommand{definetype}{definetype}
-\setinterfacecommand{definetyping}{definetyping}
-\setinterfacecommand{defineversion}{defineversion}
-\setinterfacecommand{depthspanningtext}{depthspanningtext}
-\setinterfacecommand{determineheadnumber}{determineheadnumber}
-\setinterfacecommand{determinelistcharacteristics}{determinelistcharacteristics}
-\setinterfacecommand{determineregistercharacteristics}{determineregistercharacteristics}
-\setinterfacecommand{dimension}{dimension}
-\setinterfacecommand{disableinteractionmenu}{disableinteractionmenu}
-\setinterfacecommand{disablemode}{disablemode}
-\setinterfacecommand{doaddfeature}{doaddfeature}
-\setinterfacecommand{domicile}{domicile}
-\setinterfacecommand{dontconvertfont}{dontconvertfont}
-\setinterfacecommand{donttest}{donttest}
-\setinterfacecommand{edgedistance}{edgedistance}
-\setinterfacecommand{edgewidth}{edgewidth}
-\setinterfacecommand{emphasisboldface}{emphasisboldface}
-\setinterfacecommand{emptylines}{emptylines}
-\setinterfacecommand{enablemode}{enablemode}
-\setinterfacecommand{environment}{environment}
-\setinterfacecommand{externalfigure}{externalfigure}
-\setinterfacecommand{fact}{fact}
-\setinterfacecommand{fastswitchtobodyfont}{fastswitchtobodyfont}
-\setinterfacecommand{feature}{feature}
-\setinterfacecommand{field}{field}
-\setinterfacecommand{fieldstack}{fieldstack}
-\setinterfacecommand{fillinfield}{fillinfield}
-\setinterfacecommand{fillinline}{fillinline}
-\setinterfacecommand{fillinrules}{fillinrules}
-\setinterfacecommand{fillintext}{fillintext}
-\setinterfacecommand{firstcharacter}{firstcharacter}
-\setinterfacecommand{fitfield}{fitfield}
-\setinterfacecommand{fittopbaselinegrid}{fittopbaselinegrid}
-\setinterfacecommand{fixedspace}{fixedspace}
-\setinterfacecommand{fixedspaces}{fixedspaces}
-\setinterfacecommand{flushnotes}{flushnotes}
-\setinterfacecommand{followprofile}{followprofile}
-\setinterfacecommand{followprofileversion}{followprofileversion}
-\setinterfacecommand{followversion}{followversion}
-\setinterfacecommand{footerdistance}{footerdistance}
-\setinterfacecommand{footerheight}{footerheight}
-\setinterfacecommand{footnote}{footnote}
-\setinterfacecommand{footnotetext}{footnotetext}
-\setinterfacecommand{forceblocks}{forceblocks}
-\setinterfacecommand{forcecharacterstripping}{forcecharacterstripping}
-\setinterfacecommand{formulanumber}{formulanumber}
-\setinterfacecommand{fraction}{fraction}
-\setinterfacecommand{framed}{framed}
-\setinterfacecommand{from}{from}
-\setinterfacecommand{fromlinenote}{fromlinenote}
-\setinterfacecommand{getbuffer}{getbuffer}
-\setinterfacecommand{getfirstcharacter}{getfirstcharacter}
-\setinterfacecommand{getmarking}{getmarking}
-\setinterfacecommand{getnumber}{getnumber}
-\setinterfacecommand{globaldisablemode}{globaldisablemode}
-\setinterfacecommand{globalenablemode}{globalenablemode}
-\setinterfacecommand{globalpreventmode}{globalpreventmode}
-\setinterfacecommand{godown}{godown}
-\setinterfacecommand{goto}{goto}
-\setinterfacecommand{gotobox}{gotobox}
-\setinterfacecommand{gotopage}{gotopage}
-\setinterfacecommand{graycolor}{graycolor}
-\setinterfacecommand{greyvalue}{greyvalue}
-\setinterfacecommand{grid}{grid}
-\setinterfacecommand{hairline}{hairline}
-\setinterfacecommand{head}{head}
-\setinterfacecommand{headerdistance}{headerdistance}
-\setinterfacecommand{headerheight}{headerheight}
-\setinterfacecommand{headlevel}{headlevel}
-\setinterfacecommand{headnumber}{headnumber}
-\setinterfacecommand{headsym}{headsym}
-\setinterfacecommand{headtext}{headtext}
-\setinterfacecommand{heightspanningtext}{heightspanningtext}
-\setinterfacecommand{hideblocks}{hideblocks}
-\setinterfacecommand{high}{high}
-\setinterfacecommand{hl}{hl}
-\setinterfacecommand{immediatebetweenlist}{immediatebetweenlist}
-\setinterfacecommand{immediatetolist}{immediatetolist}
-\setinterfacecommand{in}{in}
-\setinterfacecommand{incrementnumber}{incrementnumber}
-\setinterfacecommand{indenting}{indenting}
-\setinterfacecommand{inframed}{inframed}
-\setinterfacecommand{infull}{infull}
-\setinterfacecommand{ininner}{ininner}
-\setinterfacecommand{inleft}{inleft}
-\setinterfacecommand{inleftedge}{inleftedge}
-\setinterfacecommand{inleftmargin}{inleftmargin}
-\setinterfacecommand{inline}{inline}
-\setinterfacecommand{inmargin}{inmargin}
-\setinterfacecommand{inmframed}{inmaframed}
-\setinterfacecommand{inneredgedistance}{inneredgedistance}
-\setinterfacecommand{inneredgewidth}{inneredgewidth}
-\setinterfacecommand{innermargindistance}{innermargindistance}
-\setinterfacecommand{innermarginwidth}{innermarginwidth}
-\setinterfacecommand{inothermargin}{inothermargin}
-\setinterfacecommand{inouter}{inouter}
-\setinterfacecommand{inright}{inright}
-\setinterfacecommand{inrightedge}{inrightedge}
-\setinterfacecommand{inrightmargin}{inrightmargin}
-\setinterfacecommand{installlanguage}{installlanguage}
-\setinterfacecommand{interactionbar}{interactionbar}
-\setinterfacecommand{interactionbuttons}{interactionbuttons}
-\setinterfacecommand{interactionmenu}{interactionmenu}
-\setinterfacecommand{item}{item}
-\setinterfacecommand{itemgroup}{itemgroup}
-\setinterfacecommand{items}{items}
-\setinterfacecommand{itemtag}{itemtag}
-\setinterfacecommand{its}{its}
-\setinterfacecommand{keepblocks}{keepblocks}
-\setinterfacecommand{kerncharacters}{kerncharacters}
-\setinterfacecommand{label}{label}
-\setinterfacecommand{labels}{labels}
-\setinterfacecommand{labeltext}{labeltext}
-\setinterfacecommand{language}{language}
-\setinterfacecommand{languageCharacters}{languageCharacters}
-\setinterfacecommand{languagecharacters}{languagecharacters}
-\setinterfacecommand{leftaligned}{leftaligned}
-\setinterfacecommand{leftbottombox}{leftbottombox}
-\setinterfacecommand{leftedgedistance}{leftedgedistance}
-\setinterfacecommand{leftedgewidth}{leftedgewidth}
-\setinterfacecommand{leftline}{leftline}
-\setinterfacecommand{leftmargindistance}{leftmargindistance}
-\setinterfacecommand{leftmarginwidth}{leftmarginwidth}
-\setinterfacecommand{leg}{leg}
-\setinterfacecommand{linecorrection}{linecorrection}
-\setinterfacecommand{linenote}{linenote}
-\setinterfacecommand{linespanningtext}{linespanningtext}
-\setinterfacecommand{linewidth}{linethickness}
-\setinterfacecommand{listheight}{listheight}
-\setinterfacecommand{listlength}{listlength}
-\setinterfacecommand{listsymbol}{listsymbol}
-\setinterfacecommand{listwidth}{listwidth}
-\setinterfacecommand{loadfontgoodies}{loadfontgoodies}
-\setinterfacecommand{localfootnotes}{localfootnotes}
-\setinterfacecommand{localnotes}{localnotes}
-\setinterfacecommand{logfields}{logfields}
-\setinterfacecommand{lohi}{lohi}
-\setinterfacecommand{low}{low}
-\setinterfacecommand{macroname}{name}
-\setinterfacecommand{mainlanguage}{mainlanguage}
-\setinterfacecommand{makeupheight}{makeupheight}
-\setinterfacecommand{makeupwidth}{makeupwidth}
-\setinterfacecommand{mar}{mar}
-\setinterfacecommand{marginblock}{marginblock}
-\setinterfacecommand{margindistance}{margindistance}
-\setinterfacecommand{marginrule}{marginrule}
-\setinterfacecommand{margintext}{margintext}
-\setinterfacecommand{margintitle}{margintitle}
-\setinterfacecommand{marginwidth}{marginwidth}
-\setinterfacecommand{marginword}{marginword}
-\setinterfacecommand{marking}{marking}
-\setinterfacecommand{markversion}{markversion}
-\setinterfacecommand{mathematics}{mathematics}
-\setinterfacecommand{menubutton}{menubutton}
-\setinterfacecommand{mframed}{maframed}
-\setinterfacecommand{midaligned}{midaligned}
-\setinterfacecommand{mirror}{mirror}
-\setinterfacecommand{month}{month}
-\setinterfacecommand{moveformula}{moveformula}
-\setinterfacecommand{moveongrid}{moveongrid}
-\setinterfacecommand{movesidefloat}{movesidefloat}
-\setinterfacecommand{navigating}{navigating}
-\setinterfacecommand{nodimension}{nodimension}
-\setinterfacecommand{noheaderandfooterlines}{noheaderandfooterlines}
-\setinterfacecommand{noindenting}{noindenting}
-\setinterfacecommand{noitem}{noitem}
-\setinterfacecommand{nolist}{nolist}
-\setinterfacecommand{nomarking}{nomarking}
-\setinterfacecommand{nomoreblocks}{nomoreblocks}
-\setinterfacecommand{nomorefiles}{nomorefiles}
-\setinterfacecommand{nop}{nop}
-\setinterfacecommand{nospace}{nospace}
-\setinterfacecommand{note}{note}
-\setinterfacecommand{notesymbol}{notesymbol}
-\setinterfacecommand{notopandbottomlines}{notopandbottomlines}
-\setinterfacecommand{notsmallcapped}{nocap}
-\setinterfacecommand{nowhitespace}{nowhitespace}
-\setinterfacecommand{numberofsubpages}{numberofsubpages}
-\setinterfacecommand{numbers}{numbers}
-\setinterfacecommand{outeredgedistance}{outeredgedistance}
-\setinterfacecommand{outeredgewidth}{outeredgewidth}
-\setinterfacecommand{outermargindistance}{outermargindistance}
-\setinterfacecommand{outermarginwidth}{outermarginwidth}
-\setinterfacecommand{packed}{packed}
-\setinterfacecommand{page}{page}
-\setinterfacecommand{pagebreak}{pagebreak}
-\setinterfacecommand{pagedepth}{pagedepth}
-\setinterfacecommand{pagenumber}{pagenumber}
-\setinterfacecommand{pageoffset}{pageoffset}
-\setinterfacecommand{pagereference}{pagereference}
-\setinterfacecommand{paperheight}{paperheight}
-\setinterfacecommand{paperwidth}{paperwidth}
-\setinterfacecommand{periods}{periods}
-\setinterfacecommand{placebookmarks}{placebookmarks}
-\setinterfacecommand{placecombinedlist}{placecombinedlist}
-\setinterfacecommand{placefloat}{placefloat}
-\setinterfacecommand{placefootnotes}{placefootnotes}
-\setinterfacecommand{placeformula}{placeformula}
-\setinterfacecommand{placeheadnumber}{placeheadnumber}
-\setinterfacecommand{placeheadtext}{placeheadtext}
-\setinterfacecommand{placelegend}{placelegend}
-\setinterfacecommand{placelist}{placelist}
-\setinterfacecommand{placelistofsynonyms}{placelistofsynonyms}
-\setinterfacecommand{placelocalfootnotes}{placelocalfootnotes}
-\setinterfacecommand{placelocalnotes}{placelocalnotes}
-\setinterfacecommand{placelogos}{placelogos}
-\setinterfacecommand{placenamedfloat}{placenamedfloat}
-\setinterfacecommand{placenotes}{placenotes}
-\setinterfacecommand{placeongrid}{placeongrid}
-\setinterfacecommand{placeontopofeachother}{placeontopofeachother}
-\setinterfacecommand{placepagenumber}{placepagenumber}
-\setinterfacecommand{placerawlist}{placerawlist}
-\setinterfacecommand{placereferencelist}{placereferencelist}
-\setinterfacecommand{placeregister}{placeregister}
-\setinterfacecommand{placerule}{placerule}
-\setinterfacecommand{placesidebyside}{placesidebyside}
-\setinterfacecommand{placesubformula}{placesubformula}
-\setinterfacecommand{placetextvariable}{placetextvariable}
-\setinterfacecommand{position}{position}
-\setinterfacecommand{positiontext}{positiontext}
-\setinterfacecommand{postponenotes}{postponenotes}
-\setinterfacecommand{postponingnotes}{postponingnotes}
-\setinterfacecommand{predefinedfont}{predefinedfont}
-\setinterfacecommand{predefinefont}{predefinefont}
-\setinterfacecommand{presetdocument}{presetdocument}
-\setinterfacecommand{prettyprintbuffer}{prettyprintbuffer}
-\setinterfacecommand{preventmode}{preventmode}
-\setinterfacecommand{printpaperheight}{printpaperheight}
-\setinterfacecommand{printpaperwidth}{printpaperwidth}
-\setinterfacecommand{processblocks}{processblocks}
-\setinterfacecommand{processbodyfontenvironmentlist}{processbodyfontenvironmentlist}
-\setinterfacecommand{processpage}{processpage}
-\setinterfacecommand{product}{product}
-\setinterfacecommand{program}{program}
-\setinterfacecommand{project}{project}
-\setinterfacecommand{publication}{publication}
-\setinterfacecommand{quotation}{quotation}
-\setinterfacecommand{quote}{quote}
-\setinterfacecommand{ran}{ran}
-\setinterfacecommand{redo}{redo}
-\setinterfacecommand{redoconvertfont}{redoconvertfont}
-\setinterfacecommand{ref}{ref}
-\setinterfacecommand{reference}{reference}
-\setinterfacecommand{referral}{referral}
-\setinterfacecommand{referraldate}{referraldate}
-\setinterfacecommand{referring}{referring}
-\setinterfacecommand{registerfontclass}{registerfontclass}
-\setinterfacecommand{registerhyphenationexception}{registerhyphenationexception}
-\setinterfacecommand{registerhyphenationpattern}{registerhyphenationpattern}
-\setinterfacecommand{remark}{remark}
-\setinterfacecommand{replacefeature}{replacefeature}
-\setinterfacecommand{reset}{reset}
-\setinterfacecommand{resetandaddfeature}{resetandaddfeature}
-\setinterfacecommand{resetcharacteralign}{resetcharacteralign}
-\setinterfacecommand{resetcharacterkerning}{resetcharacterkerning}
-\setinterfacecommand{resetcharacterspacing}{resetcharacterspacing}
-\setinterfacecommand{resetcharacterstripping}{resetcharacterstripping}
-\setinterfacecommand{resetfeature}{resetfeature}
-\setinterfacecommand{resetfontcolorsheme}{resetfontcolorsheme}
-\setinterfacecommand{resetfontfallback}{resetfontfallback}
-\setinterfacecommand{resetfontsolution}{resetfontsolution}
-\setinterfacecommand{resethyphenationfeatures}{resethyphenationfeatures}
-\setinterfacecommand{resetlocalfloats}{resetlocalfloats}
-\setinterfacecommand{resetmarking}{resetmarking}
-\setinterfacecommand{resetmode}{resetmode}
-\setinterfacecommand{resetnumber}{resetnumber}
-\setinterfacecommand{resetpath}{resetpath}
-\setinterfacecommand{resetperiodkerning}{resetperiodkerning}
-\setinterfacecommand{resetsystemmode}{resetsystemmode}
-\setinterfacecommand{resettextcontent}{resettextcontent}
-\setinterfacecommand{resetvisualizers}{resetvisualizers}
-\setinterfacecommand{restoreglobalbodyfont}{restoreglobalbodyfont}
-\setinterfacecommand{retestfeature}{retestfeature}
-\setinterfacecommand{revivefeature}{revivefeature}
-\setinterfacecommand{rightaligned}{rightaligned}
-\setinterfacecommand{rightbottombox}{rightbottombox}
-\setinterfacecommand{rightedgedistance}{rightedgedistance}
-\setinterfacecommand{rightedgewidth}{rightedgewidth}
-\setinterfacecommand{rightline}{rightline}
-\setinterfacecommand{rightmargindistance}{rightmargindistance}
-\setinterfacecommand{rightmarginwidth}{rightmarginwidth}
-\setinterfacecommand{romannumerals}{romannumerals}
-\setinterfacecommand{rotate}{rotate}
-\setinterfacecommand{savebuffer}{savebuffer}
-\setinterfacecommand{scale}{scale}
-\setinterfacecommand{screen}{screen}
-\setinterfacecommand{selectblocks}{selectblocks}
-\setinterfacecommand{selectpaper}{selectpaper}
-\setinterfacecommand{selectversion}{selectversion}
-\setinterfacecommand{setbigbodyfont}{setbigbodyfont}
-\setinterfacecommand{setcharacteralign}{setcharacteralign}
-\setinterfacecommand{setcharacteraligndetail}{setcharacteraligndetail}
-\setinterfacecommand{setcharactercasing}{setcharactercasing}
-\setinterfacecommand{setcharactercleaning}{setcharactercleaning}
-\setinterfacecommand{setcharacterkerning}{setcharacterkerning}
-\setinterfacecommand{setcharacterspacing}{setcharacterspacing}
-\setinterfacecommand{setcharacterstripping}{setcharacterstripping}
-\setinterfacecommand{setcurrentfontclass}{setcurrentfontclass}
-\setinterfacecommand{setfirstline}{setfirstline}
-\setinterfacecommand{setfirstpasscharacteralign}{setfirstpasscharacteralign}
-\setinterfacecommand{setfont}{setfont}
-\setinterfacecommand{setfontcolorsheme}{setfontcolorsheme}
-\setinterfacecommand{setfontfeature}{setfontfeature}
-\setinterfacecommand{setfontsolution}{setfontsolution}
-\setinterfacecommand{setfontstrut}{setfontstrut}
-\setinterfacecommand{sethyphenationfeatures}{sethyphenationfeatures}
-\setinterfacecommand{setmainbodyfont}{setmainbodyfont}
-\setinterfacecommand{setmode}{setmode}
-\setinterfacecommand{setnote}{setnote}
-\setinterfacecommand{setnotetext}{setnotetext}
-\setinterfacecommand{setnumber}{setnumber}
-\setinterfacecommand{setperiodkerning}{setperiodkerning}
-\setinterfacecommand{setsecondpasscharacteralign}{setsecondpasscharacteralign}
-\setinterfacecommand{setsmallbodyfont}{setsmallbodyfont}
-\setinterfacecommand{setsystemmode}{setsystemmode}
-\setinterfacecommand{settextcontent}{settextcontent}
-\setinterfacecommand{settextvariable}{settextvariable}
-\setinterfacecommand{setupalign}{setupalign}
-\setinterfacecommand{setupanswerarea}{setupanswerarea}
-\setinterfacecommand{setuparranging}{setuparranging}
-\setinterfacecommand{setupattachment}{setupattachment}
-\setinterfacecommand{setupbackground}{setupbackground}
-\setinterfacecommand{setupbackgrounds}{setupbackgrounds}
-\setinterfacecommand{setupblackrules}{setupblackrules}
-\setinterfacecommand{setupblank}{setupblank}
-\setinterfacecommand{setupblock}{setupblock}
-\setinterfacecommand{setupbodyfont}{setupbodyfont}
-\setinterfacecommand{setupbodyfontenvironment}{setupbodyfontenvironment}
-\setinterfacecommand{setupbottom}{setupbottom}
-\setinterfacecommand{setupbottomtexts}{setupbottomtexts}
-\setinterfacecommand{setupbuffer}{setupbuffer}
-\setinterfacecommand{setupbuttons}{setupbuttons}
-\setinterfacecommand{setupcapitals}{setupcapitals}
-\setinterfacecommand{setupcaption}{setupcaption}
-\setinterfacecommand{setupcaptions}{setupcaptions}
-\setinterfacecommand{setupcharacteralign}{setupcharacteralign}
-\setinterfacecommand{setupcharacterkerning}{setupcharacterkerning}
-\setinterfacecommand{setupcharacterspacing}{setupcharacterspacing}
-\setinterfacecommand{setupclipping}{setupclipping}
-\setinterfacecommand{setupcolor}{setupcolor}
-\setinterfacecommand{setupcolors}{setupcolors}
-\setinterfacecommand{setupcolumns}{setupcolumns}
-\setinterfacecommand{setupcolumnset}{setupcolumnset}
-\setinterfacecommand{setupcolumnsetlines}{setupcolumnsetlines}
-\setinterfacecommand{setupcolumnsetstart}{setupcolumnsetstart}
-\setinterfacecommand{setupcombinations}{setupcombinations}
-\setinterfacecommand{setupcombinedlist}{setupcombinedlist}
-\setinterfacecommand{setupcomment}{setupcomment}
-\setinterfacecommand{setupcounter}{setupcounter}
-\setinterfacecommand{setupdescription}{setupdescription}
-\setinterfacecommand{setupdescriptions}{setupdescriptions}
-\setinterfacecommand{setupenumeration}{setupenumeration}
-\setinterfacecommand{setupenumerations}{setupenumerations}
-\setinterfacecommand{setupexternalfigures}{setupexternalfigures}
-\setinterfacecommand{setupfield}{setupfield}
-\setinterfacecommand{setupfields}{setupfields}
-\setinterfacecommand{setupfillinlines}{setupfillinlines}
-\setinterfacecommand{setupfillinrules}{setupfillinrules}
-\setinterfacecommand{setupfirstline}{setupfirstline}
-\setinterfacecommand{setupfloat}{setupfloat}
-\setinterfacecommand{setupfloats}{setupfloats}
-\setinterfacecommand{setupfloatsplitting}{setupfloatsplitting}
-\setinterfacecommand{setupfontexpansion}{setupfontexpansion}
-\setinterfacecommand{setupfontprotrusion}{setupfontprotrusion}
-\setinterfacecommand{setupfonts}{setupfonts}
-\setinterfacecommand{setupfontsolution}{setupfontsolution}
-\setinterfacecommand{setupfooter}{setupfooter}
-\setinterfacecommand{setupfootertexts}{setupfootertexts}
-\setinterfacecommand{setupfootnotedefinition}{setupfootnotedefinition}
-\setinterfacecommand{setupfootnotes}{setupfootnotes}
-\setinterfacecommand{setupforms}{setupforms}
-\setinterfacecommand{setupformula}{setupformula}
-\setinterfacecommand{setupformulas}{setupformulae}
-\setinterfacecommand{setupframed}{setupframed}
-\setinterfacecommand{setupframedtext}{setupframedtext}
-\setinterfacecommand{setupframedtexts}{setupframedtexts}
-\setinterfacecommand{setuphead}{setuphead}
-\setinterfacecommand{setupheader}{setupheader}
-\setinterfacecommand{setupheadertexts}{setupheadertexts}
-\setinterfacecommand{setupheadnumber}{setupheadnumber}
-\setinterfacecommand{setupheads}{setupheads}
-\setinterfacecommand{setupheadtext}{setupheadtext}
-\setinterfacecommand{setuphyphenation}{setuphyphenation}
-\setinterfacecommand{setuphyphenmark}{setuphyphenmark}
-\setinterfacecommand{setupindentedtext}{setupindentedtext}
-\setinterfacecommand{setupindenting}{setupindenting}
-\setinterfacecommand{setupinmargin}{setupinmargin}
-\setinterfacecommand{setupinteraction}{setupinteraction}
-\setinterfacecommand{setupinteractionbar}{setupinteractionbar}
-\setinterfacecommand{setupinteractionmenu}{setupinteractionmenu}
-\setinterfacecommand{setupinteractionscreen}{setupinteractionscreen}
-\setinterfacecommand{setupinterlinespace}{setupinterlinespace}
-\setinterfacecommand{setupitemgroup}{setupitemgroup}
-\setinterfacecommand{setupitemgroups}{setupitemizations}
-\setinterfacecommand{setupitems}{setupitems}
-\setinterfacecommand{setuplabeltext}{setuplabeltext}
-\setinterfacecommand{setuplanguage}{setuplanguage}
-\setinterfacecommand{setuplayout}{setuplayout}
-\setinterfacecommand{setuplegend}{setuplegend}
-\setinterfacecommand{setuplinenote}{setuplinenote}
-\setinterfacecommand{setuplinenumbering}{setuplinenumbering}
-\setinterfacecommand{setuplines}{setuplines}
-\setinterfacecommand{setuplinewidth}{setuplinewidth}
-\setinterfacecommand{setuplist}{setuplist}
-\setinterfacecommand{setupmakeup}{setupmakeup}
-\setinterfacecommand{setupmarginblock}{setupmarginblock}
-\setinterfacecommand{setupmarginblocks}{setupmarginblocks}
-\setinterfacecommand{setupmargindata}{setupmargindata}
-\setinterfacecommand{setupmarginrules}{setupmarginrules}
-\setinterfacecommand{setupmarking}{setupmarking}
-\setinterfacecommand{setupmathalignment}{setupmathalignment}
-\setinterfacecommand{setupnarrower}{setupnarrower}
-\setinterfacecommand{setupnotation}{setupnotation}
-\setinterfacecommand{setupnotations}{setupnotations}
-\setinterfacecommand{setupnote}{setupnote}
-\setinterfacecommand{setupnotes}{setupnotes}
-\setinterfacecommand{setupnumber}{setupnumber}
-\setinterfacecommand{setupnumbering}{setupnumbering}
-\setinterfacecommand{setupoppositeplacing}{setupoppositeplacing}
-\setinterfacecommand{setupoutput}{setupoutput}
-\setinterfacecommand{setuppagecomment}{setuppagecomment}
-\setinterfacecommand{setuppagenumber}{setuppagenumber}
-\setinterfacecommand{setuppagenumbering}{setuppagenumbering}
-\setinterfacecommand{setuppagetransitions}{setuppagetransitions}
-\setinterfacecommand{setuppalet}{setuppalet}
-\setinterfacecommand{setuppaper}{setuppaper}
-\setinterfacecommand{setuppapersize}{setuppapersize}
-\setinterfacecommand{setupparagraphnumbering}{setupparagraphnumbering}
-\setinterfacecommand{setupparagraphs}{setupparagraphs}
-\setinterfacecommand{setupperiodkerning}{setupperiodkerning}
-\setinterfacecommand{setupplacement}{setupplacement}
-\setinterfacecommand{setuppositioning}{setuppositioning}
-\setinterfacecommand{setupprofiles}{setupprofiles}
-\setinterfacecommand{setupprograms}{setupprograms}
-\setinterfacecommand{setuppublications}{setuppublications}
-\setinterfacecommand{setupquote}{setupquote}
-\setinterfacecommand{setupreferencelist}{setupreferencelist}
-\setinterfacecommand{setupreferencing}{setupreferencing}
-\setinterfacecommand{setupregister}{setupregister}
-\setinterfacecommand{setuprotate}{setuprotate}
-\setinterfacecommand{setuprule}{setuprule}
-\setinterfacecommand{setupscreens}{setupscreens}
-\setinterfacecommand{setupsection}{setupsection}
-\setinterfacecommand{setupsectionblock}{setupsectionblock}
-\setinterfacecommand{setupsorting}{setupsorting}
-\setinterfacecommand{setupspacing}{setupspacing}
-\setinterfacecommand{setupstartstop}{setupstartstop}
-\setinterfacecommand{setupstrut}{setupstrut}
-\setinterfacecommand{setupsubpagenumber}{setupsubpagenumber}
-\setinterfacecommand{setupsymbolset}{setupsymbolset}
-\setinterfacecommand{setupsynchronization}{setupsynchronization}
-\setinterfacecommand{setupsynchronizationbar}{setupsynchronizationbar}
-\setinterfacecommand{setupsynonyms}{setupsynonyms}
-\setinterfacecommand{setupsystem}{setupsystem}
-\setinterfacecommand{setuptab}{setuptab}
-\setinterfacecommand{setuptables}{setuptables}
-\setinterfacecommand{setuptabulate}{setuptabulate}
-\setinterfacecommand{setuptext}{setuptext}
-\setinterfacecommand{setuptextbackground}{setuptextbackground}
-\setinterfacecommand{setuptextnote}{setuptextnote}
-\setinterfacecommand{setuptextposition}{setuptextposition}
-\setinterfacecommand{setuptextrules}{setuptextrules}
-\setinterfacecommand{setuptexttexts}{setuptexttexts}
-\setinterfacecommand{setuptextvariable}{setuptextvariable}
-\setinterfacecommand{setupthinrules}{setupthinrules}
-\setinterfacecommand{setuptolerance}{setuptolerance}
-\setinterfacecommand{setuptop}{setuptop}
-\setinterfacecommand{setuptoptexts}{setuptoptexts}
-\setinterfacecommand{setuptype}{setuptype}
-\setinterfacecommand{setuptyping}{setuptyping}
-\setinterfacecommand{setupunderbar}{setupunderbar}
-\setinterfacecommand{setupurl}{setupurl}
-\setinterfacecommand{setupversions}{setupversions}
-\setinterfacecommand{setupwhitespace}{setupwhitespace}
-\setinterfacecommand{setvisualizerfont}{setvisualizerfont}
-\setinterfacecommand{showbodyfont}{showbodyfont}
-\setinterfacecommand{showbodyfontenvironment}{showbodyfontenvironment}
-\setinterfacecommand{showcolor}{showcolor}
-\setinterfacecommand{showcolorgroup}{showcolorgroup}
-\setinterfacecommand{showcounter}{showcounter}
-\setinterfacecommand{showexternalfigures}{showexternalfigures}
-\setinterfacecommand{showfields}{showfields}
-\setinterfacecommand{showfont}{showfont}
-\setinterfacecommand{showfontdata}{showfontdata}
-\setinterfacecommand{showfontexpansion}{showfontexpansion}
-\setinterfacecommand{showfontitalics}{showfontitalics}
-\setinterfacecommand{showfontkerns}{showfontkerns}
-\setinterfacecommand{showfontparameters}{showfontparameters}
-\setinterfacecommand{showfontstrip}{showfontstrip}
-\setinterfacecommand{showfontstyle}{showfontstyle}
-\setinterfacecommand{showframe}{showframe}
-\setinterfacecommand{showgrid}{showgrid}
-\setinterfacecommand{showhyphenationtrace}{showhyphenationtrace}
-\setinterfacecommand{showkerning}{showkerning}
-\setinterfacecommand{showlayout}{showlayout}
-\setinterfacecommand{showmakeup}{showmakeup}
-\setinterfacecommand{showminimalbaseline}{showminimalbaseline}
-\setinterfacecommand{showpalet}{showpalet}
-\setinterfacecommand{showprint}{showprint}
-\setinterfacecommand{showsetups}{showsetups}
-\setinterfacecommand{showstruts}{showstruts}
-\setinterfacecommand{showsymbolset}{showsymbolset}
-\setinterfacecommand{smallcapped}{cap}
-\setinterfacecommand{someline}{someline}
-\setinterfacecommand{somewhere}{somewhere}
-\setinterfacecommand{space}{space}
-\setinterfacecommand{specialitem}{specialitem}
-\setinterfacecommand{splitfloat}{splitfloat}
-\setinterfacecommand{startalignment}{startalignment}
-\setinterfacecommand{startbackground}{startbackground}
-\setinterfacecommand{startcoding}{startcoding}
-\setinterfacecommand{startcolor}{startcolor}
-\setinterfacecommand{startcolumnmakeup}{startcolumnmakeup}
-\setinterfacecommand{startcolumns}{startcolumns}
-\setinterfacecommand{startcolumnset}{startcolumnset}
-\setinterfacecommand{startcombination}{startcombination}
-\setinterfacecommand{startcomponent}{startcomponent}
-\setinterfacecommand{startdocument}{startdocument}
-\setinterfacecommand{startenvironment}{startenvironment}
-\setinterfacecommand{startfigure}{startfigure}
-\setinterfacecommand{startframed}{startframed}
-\setinterfacecommand{startglobal}{startglobal}
-\setinterfacecommand{startline}{startline}
-\setinterfacecommand{startlinecorrection}{startlinecorrection}
-\setinterfacecommand{startlinenote}{startlinenote}
-\setinterfacecommand{startlinenumbering}{startlinenumbering}
-\setinterfacecommand{startlines}{startlines}
-\setinterfacecommand{startlocal}{startlocal}
-\setinterfacecommand{startlocalfootnotes}{startlocalfootnotes}
-\setinterfacecommand{startmakeup}{startmakeup}
-\setinterfacecommand{startmarginblock}{startmarginblock}
-\setinterfacecommand{startmarginrule}{startmarginrule}
-\setinterfacecommand{startnarrower}{startnarrower}
-\setinterfacecommand{startopposite}{startopposite}
-\setinterfacecommand{startoverlay}{startoverlay}
-\setinterfacecommand{startoverview}{startoverview}
-\setinterfacecommand{startpacked}{startpacked}
-\setinterfacecommand{startpositioning}{startpositioning}
-\setinterfacecommand{startproduct}{startproduct}
-\setinterfacecommand{startprofile}{startprofile}
-\setinterfacecommand{startproject}{startproject}
-\setinterfacecommand{startquotation}{startquotation}
-\setinterfacecommand{startraster}{startraster}
-\setinterfacecommand{startsymbolset}{startsymbolset}
-\setinterfacecommand{startsynchronization}{startsynchronization}
-\setinterfacecommand{starttable}{starttable}
-\setinterfacecommand{starttables}{starttables}
-\setinterfacecommand{starttext}{starttext}
-\setinterfacecommand{starttextbackground}{starttextbackground}
-\setinterfacecommand{starttextrule}{starttextrule}
-\setinterfacecommand{startunpacked}{startunpacked}
-\setinterfacecommand{startversion}{startversion}
-\setinterfacecommand{stopalignment}{stopalignment}
-\setinterfacecommand{stopbackground}{stopbackground}
-\setinterfacecommand{stopcoding}{stopcoding}
-\setinterfacecommand{stopcolor}{stopcolor}
-\setinterfacecommand{stopcolumnmakeup}{stopcolumnmakeup}
-\setinterfacecommand{stopcolumns}{stopcolumns}
-\setinterfacecommand{stopcolumnset}{stopcolumnset}
-\setinterfacecommand{stopcombination}{stopcombination}
-\setinterfacecommand{stopcomponent}{stopcomponent}
-\setinterfacecommand{stopdocument}{stopdocument}
-\setinterfacecommand{stopenvironment}{stopenvironment}
-\setinterfacecommand{stopframed}{stopframed}
-\setinterfacecommand{stopglobal}{stopglobal}
-\setinterfacecommand{stopline}{stopline}
-\setinterfacecommand{stoplinecorrection}{stoplinecorrection}
-\setinterfacecommand{stoplinenote}{stoplinenote}
-\setinterfacecommand{stoplinenumbering}{stoplinenumbering}
-\setinterfacecommand{stoplines}{stoplines}
-\setinterfacecommand{stoplocal}{stoplocal}
-\setinterfacecommand{stoplocalfootnotes}{stoplocalfootnotes}
-\setinterfacecommand{stopmakeup}{stopmakeup}
-\setinterfacecommand{stopmarginblock}{stopmarginblock}
-\setinterfacecommand{stopmarginrule}{stopmarginrule}
-\setinterfacecommand{stopnarrower}{stopnarrower}
-\setinterfacecommand{stopopposite}{stopopposite}
-\setinterfacecommand{stopoverlay}{stopoverlay}
-\setinterfacecommand{stopoverview}{stopoverview}
-\setinterfacecommand{stoppacked}{stoppacked}
-\setinterfacecommand{stoppositioning}{stoppositioning}
-\setinterfacecommand{stopproduct}{stopproduct}
-\setinterfacecommand{stopprofile}{stopprofile}
-\setinterfacecommand{stopproject}{stopproject}
-\setinterfacecommand{stopquotation}{stopquotation}
-\setinterfacecommand{stopraster}{stopraster}
-\setinterfacecommand{stopsynchronization}{stopsynchronization}
-\setinterfacecommand{stoptable}{stoptable}
-\setinterfacecommand{stoptables}{stoptables}
-\setinterfacecommand{stoptext}{stoptext}
-\setinterfacecommand{stoptextbackground}{stoptextbackground}
-\setinterfacecommand{stoptextrule}{stoptextrule}
-\setinterfacecommand{stopunpacked}{stopunpacked}
-\setinterfacecommand{stopversion}{stopversion}
-\setinterfacecommand{stretched}{stretched}
-\setinterfacecommand{strictinspectnextcharacter}{strictinspectnextcharacter}
-\setinterfacecommand{stripcharacter}{stripcharacter}
-\setinterfacecommand{subformulanumber}{subformulanumber}
-\setinterfacecommand{subpagenumber}{subpagenumber}
-\setinterfacecommand{subtractfeature}{subtractfeature}
-\setinterfacecommand{switchtobodyfont}{switchtobodyfont}
-\setinterfacecommand{switchtorawfont}{switchtorawfont}
-\setinterfacecommand{sym}{sym}
-\setinterfacecommand{symbol}{symbol}
-\setinterfacecommand{symoffset}{symoffset}
-\setinterfacecommand{synchronizationbar}{synchronizationbar}
-\setinterfacecommand{synchronize}{synchronize}
-\setinterfacecommand{tab}{tab}
-\setinterfacecommand{testcolumn}{testcolumn}
-\setinterfacecommand{testfeature}{testfeature}
-\setinterfacecommand{testfeatureonce}{testfeatureonce}
-\setinterfacecommand{testpage}{testpage}
-\setinterfacecommand{tex}{tex}
-\setinterfacecommand{textbackground}{textbackground}
-\setinterfacecommand{textcolor}{textcolor}
-\setinterfacecommand{textheight}{textheight}
-\setinterfacecommand{textnote}{textnote}
-\setinterfacecommand{textreference}{textreference}
-\setinterfacecommand{textrule}{textrule}
-\setinterfacecommand{textvariable}{textvariable}
-\setinterfacecommand{textwidth}{textwidth}
-\setinterfacecommand{thefirstcharacter}{thefirstcharacter}
-\setinterfacecommand{thenormalizedbodyfontsize}{thenormalizedbodyfontsize}
-\setinterfacecommand{theremainingcharacters}{theremainingcharacters}
-\setinterfacecommand{thinrule}{thinrule}
-\setinterfacecommand{thinrules}{thinrules}
-\setinterfacecommand{tolinenote}{tolinenote}
-\setinterfacecommand{tooltip}{tooltip}
-\setinterfacecommand{topdistance}{topdistance}
-\setinterfacecommand{topheight}{topheight}
-\setinterfacecommand{topspace}{topspace}
-\setinterfacecommand{totalnumberofpages}{totalnumberofpages}
-\setinterfacecommand{translate}{translate}
-\setinterfacecommand{txt}{txt}
-\setinterfacecommand{typ}{typ}
-\setinterfacecommand{type}{type}
-\setinterfacecommand{typebuffer}{typebuffer}
-\setinterfacecommand{typedefinedbuffer}{typedefinedbuffer}
-\setinterfacecommand{typefile}{typefile}
-\setinterfacecommand{typeinlinebuffer}{typeinlinebuffer}
-\setinterfacecommand{typing}{typing}
-\setinterfacecommand{unitmeaning}{unitmeaning}
-\setinterfacecommand{unknown}{unknown}
-\setinterfacecommand{unregisterhyphenationpattern}{unregisterhyphenationpattern}
-\setinterfacecommand{useJSscripts}{useJSscripts}
-\setinterfacecommand{useURL}{useURL}
-\setinterfacecommand{useXMLfilter}{useXMLfilter}
-\setinterfacecommand{useblocks}{useblocks}
-\setinterfacecommand{usebodyfont}{usebodyfont}
-\setinterfacecommand{usebodyfontparameter}{usebodyfontparameter}
-\setinterfacecommand{usecommands}{usecommands}
-\setinterfacecommand{useencoding}{useencoding}
-\setinterfacecommand{useexternaldocument}{useexternaldocument}
-\setinterfacecommand{useexternalfigure}{useexternalfigure}
-\setinterfacecommand{useexternalfile}{useexternalfile}
-\setinterfacecommand{useexternalfiles}{useexternalfiles}
-\setinterfacecommand{useexternalsoundtrack}{useexternalsoundtrack}
-\setinterfacecommand{usemodule}{usemodule}
-\setinterfacecommand{usemodules}{usemodules}
-\setinterfacecommand{usepath}{usedirectory}
-\setinterfacecommand{usereferences}{usereferences}
-\setinterfacecommand{usespecials}{usespecials}
-\setinterfacecommand{usesymbols}{usesymbols}
-\setinterfacecommand{usetypescript}{usetypescript}
-\setinterfacecommand{usetypescriptfile}{usetypescriptfile}
-\setinterfacecommand{useurl}{useurl}
-\setinterfacecommand{verbatim}{verbatim}
-\setinterfacecommand{version}{version}
-\setinterfacecommand{vl}{vl}
-\setinterfacecommand{weekday}{weekday}
-\setinterfacecommand{whitespace}{whitespace}
-\setinterfacecommand{widthspanningtext}{widthspanningtext}
-\setinterfacecommand{wordright}{wordright}
-\setinterfacecommand{writebetweenlist}{writebetweenlist}
-\setinterfacecommand{writetolist}{writetolist}
-\setinterfacecommand{writetoreferencelist}{writetoreferencelist}
-\setinterfacecommand{writetoregister}{writetoregister}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-fr.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-fr.mkii
deleted file mode 100644
index ef2da9e493f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-fr.mkii
+++ /dev/null
@@ -1,2224 +0,0 @@
-% this file is auto-generated, don't edit this file
-%
-% definitions for interface variables for language fr
-%
-\setinterfacevariable{Addition}{Ajout}
-\setinterfacevariable{Alphabetic}{Alphabetique}
-\setinterfacevariable{Balloon}{Ballon}
-\setinterfacevariable{Cap}{Cap}
-\setinterfacevariable{Capital}{Capitales}
-\setinterfacevariable{Character}{Caractere}
-\setinterfacevariable{Characters}{Caracteres}
-\setinterfacevariable{CloseDocument}{FermerDocument}
-\setinterfacevariable{ExitViewer}{SortirVisualisateur}
-\setinterfacevariable{FirstPage}{PremierePage}
-\setinterfacevariable{FitHeight}{AdapterHauteur}
-\setinterfacevariable{FitWidth}{AdapterLargeur}
-\setinterfacevariable{GotoPage}{AlleraPage}
-\setinterfacevariable{Greek}{Grec}
-\setinterfacevariable{Help}{Aide}
-\setinterfacevariable{HideField}{CacherChamps}
-\setinterfacevariable{HideLayer}{CacherCalque}
-\setinterfacevariable{Key}{Cle}
-\setinterfacevariable{LastPage}{DernierePage}
-\setinterfacevariable{LoadForm}{ChargerFormulaire}
-\setinterfacevariable{MONTH}{MOIS}
-\setinterfacevariable{New}{Nouveau}
-\setinterfacevariable{NextJump}{SautSuivant}
-\setinterfacevariable{NextPage}{PageSuivante}
-\setinterfacevariable{Numbers}{Numeros}
-\setinterfacevariable{OpenNamedDocument}{OuvrirDocumentNomme}
-\setinterfacevariable{Ordinal}{Ordinal}
-\setinterfacevariable{Paragraph}{Paragraphe}
-\setinterfacevariable{PauseMovie}{PauseFilm}
-\setinterfacevariable{PauseRendering}{PauseRendu}
-\setinterfacevariable{PauseSound}{PauseSon}
-\setinterfacevariable{PreviousJump}{SautPrecedent}
-\setinterfacevariable{PreviousPage}{PagePrecedente}
-\setinterfacevariable{PrintDocument}{ImprimerDocument}
-\setinterfacevariable{Query}{Interroger}
-\setinterfacevariable{QueryAgain}{InterrogerSuivant}
-\setinterfacevariable{ResetForm}{RazFormulaire}
-\setinterfacevariable{ResumeMovie}{RepriseFilm}
-\setinterfacevariable{ResumeRendering}{RepriseRendu}
-\setinterfacevariable{ResumeSound}{RepriseSon}
-\setinterfacevariable{Romannumerals}{Chiffresromains}
-\setinterfacevariable{SaveDocument}{EnregistrerDocument}
-\setinterfacevariable{SaveForm}{EnregistrerFormulaire}
-\setinterfacevariable{SaveNamedDocument}{EnregistrerDocumentNomme}
-\setinterfacevariable{SearchAgain}{ChercherSuivant}
-\setinterfacevariable{SearchDocument}{ChercherDocument}
-\setinterfacevariable{ShowBookmarks}{MontrerMarquepages}
-\setinterfacevariable{ShowField}{MontrerChamp}
-\setinterfacevariable{ShowThumbs}{MontrerVignettes}
-\setinterfacevariable{StartMovie}{débutFilm}
-\setinterfacevariable{StartRendering}{débutRendu}
-\setinterfacevariable{StartSound}{débutSon}
-\setinterfacevariable{StopMovie}{FinFilm}
-\setinterfacevariable{StopRendering}{FinRendu}
-\setinterfacevariable{StopSound}{FinSon}
-\setinterfacevariable{SubmitForm}{SoumettreFormulaire}
-\setinterfacevariable{ToggleLayer}{BasculerCalque}
-\setinterfacevariable{ToggleViewer}{BasculerVisualisateur}
-\setinterfacevariable{URL}{URL}
-\setinterfacevariable{VideLayer}{VideCalque}
-\setinterfacevariable{ViewerHelp}{AideVisualisateur}
-\setinterfacevariable{WEEKDAY}{JOURSEMAINE}
-\setinterfacevariable{WORD}{MOT}
-\setinterfacevariable{WORDS}{MOTS}
-\setinterfacevariable{Word}{Mot}
-\setinterfacevariable{Words}{Mots}
-\setinterfacevariable{abbreviation}{abreviation}
-\setinterfacevariable{abbreviations}{abreviations}
-\setinterfacevariable{absolute}{absolu}
-\setinterfacevariable{action}{action}
-\setinterfacevariable{after}{après}
-\setinterfacevariable{all}{tout}
-\setinterfacevariable{alphabetic}{Alphabetique}
-\setinterfacevariable{always}{toujours}
-\setinterfacevariable{anchor}{ancre}
-\setinterfacevariable{and}{et}
-\setinterfacevariable{answerarea}{zonereponse}
-\setinterfacevariable{appendices}{annexes}
-\setinterfacevariable{appendix}{annexe}
-\setinterfacevariable{april}{avril}
-\setinterfacevariable{aside}{apart}
-\setinterfacevariable{atleftmargin}{enmargegauche}
-\setinterfacevariable{atmargin}{enmarge}
-\setinterfacevariable{atpage}{enpage}
-\setinterfacevariable{atrightmargin}{enmargedroite}
-\setinterfacevariable{attachment}{piecejointe}
-\setinterfacevariable{august}{aout}
-\setinterfacevariable{author}{auteur}
-\setinterfacevariable{auto}{auto}
-\setinterfacevariable{autointro}{autointro}
-\setinterfacevariable{autopunctuation}{autoponctuation}
-\setinterfacevariable{back}{retour}
-\setinterfacevariable{background}{arriereplan}
-\setinterfacevariable{backmatter}{pagesdefin}
-\setinterfacevariable{backpart}{postface}
-\setinterfacevariable{backspace}{retourarrière}
-\setinterfacevariable{backward}{enarriere}
-\setinterfacevariable{bbl}{bbl}
-\setinterfacevariable{before}{avant}
-\setinterfacevariable{begin}{commencer}
-\setinterfacevariable{bib}{bib}
-\setinterfacevariable{big}{important}
-\setinterfacevariable{bigbodyfont}{policedecorpsimportante}
-\setinterfacevariable{bigger}{plusimportant}
-\setinterfacevariable{bigpreference}{preferenceimportante}
-\setinterfacevariable{blank}{vierge}
-\setinterfacevariable{block}{bloc}
-\setinterfacevariable{blockquote}{citerbloc}
-\setinterfacevariable{bodymatter}{pagescorpsdetexte}
-\setinterfacevariable{bodypart}{corpsdetexte}
-\setinterfacevariable{bold}{gras}
-\setinterfacevariable{bolditalic}{grasitalique}
-\setinterfacevariable{boldslanted}{grasincline}
-\setinterfacevariable{bookmark}{marquepage}
-\setinterfacevariable{both}{chacun}
-\setinterfacevariable{bothtext}{textechacun}
-\setinterfacevariable{bottom}{bas}
-\setinterfacevariable{box}{boite}
-\setinterfacevariable{brief}{brief}
-\setinterfacevariable{broad}{large}
-\setinterfacevariable{buffer}{tampon}
-\setinterfacevariable{by}{par}
-\setinterfacevariable{calligraphic}{calligraphique}
-\setinterfacevariable{camel}{camel}
-\setinterfacevariable{cap}{cap}
-\setinterfacevariable{capital}{capitales}
-\setinterfacevariable{category}{categorie}
-\setinterfacevariable{cd:character}{caracteres}
-\setinterfacevariable{cd:font}{police}
-\setinterfacevariable{center}{centrer}
-\setinterfacevariable{centerlast}{centrerdernier}
-\setinterfacevariable{chapter}{chapitre}
-\setinterfacevariable{character}{caractere}
-\setinterfacevariable{characters}{caracteres}
-\setinterfacevariable{chemical}{chimique}
-\setinterfacevariable{chemicals}{chimiques}
-\setinterfacevariable{chemistry}{chimie}
-\setinterfacevariable{cite}{cite}
-\setinterfacevariable{closed}{ferme}
-\setinterfacevariable{color}{couleur}
-\setinterfacevariable{column}{colonne}
-\setinterfacevariable{columns}{colonnes}
-\setinterfacevariable{combination}{combinaison}
-\setinterfacevariable{command}{commande}
-\setinterfacevariable{commands}{commandes}
-\setinterfacevariable{comment}{commentaire}
-\setinterfacevariable{component}{composant}
-\setinterfacevariable{compressseparator}{separateurreduction}
-\setinterfacevariable{compressstopper}{stoppeurreduction}
-\setinterfacevariable{concept}{concept}
-\setinterfacevariable{construction}{construction}
-\setinterfacevariable{content}{contenu}
-\setinterfacevariable{contents}{contenus}
-\setinterfacevariable{continue}{continuer}
-\setinterfacevariable{continued}{continue}
-\setinterfacevariable{controls}{controles}
-\setinterfacevariable{conversion}{conversion}
-\setinterfacevariable{current}{courant}
-\setinterfacevariable{cutspace}{espacecoupe}
-\setinterfacevariable{dataset}{jeudedonnees}
-\setinterfacevariable{date}{date}
-\setinterfacevariable{day}{jour}
-\setinterfacevariable{december}{decembre}
-\setinterfacevariable{default}{defaut}
-\setinterfacevariable{depth}{profondeur}
-\setinterfacevariable{description}{description}
-\setinterfacevariable{disable}{desactiver}
-\setinterfacevariable{display}{affichage}
-\setinterfacevariable{dot}{point}
-\setinterfacevariable{doublesided}{rectoverso}
-\setinterfacevariable{down}{enbas}
-\setinterfacevariable{each}{chaque}
-\setinterfacevariable{edge}{bord}
-\setinterfacevariable{effective}{effectif}
-\setinterfacevariable{eight}{huit}
-\setinterfacevariable{embed}{integrer}
-\setinterfacevariable{empty}{vide}
-\setinterfacevariable{enable}{activer}
-\setinterfacevariable{end}{terminer}
-\setinterfacevariable{endnote}{noteseule}
-\setinterfacevariable{enumeration}{énumération}
-\setinterfacevariable{environment}{environnement}
-\setinterfacevariable{even}{paire}
-\setinterfacevariable{export}{exporter}
-\setinterfacevariable{external}{externe}
-\setinterfacevariable{extremestretch}{etirementextreme}
-\setinterfacevariable{fact}{fait}
-\setinterfacevariable{fallback}{repli}
-\setinterfacevariable{february}{fevrier}
-\setinterfacevariable{field}{champ}
-\setinterfacevariable{figure}{figure}
-\setinterfacevariable{figures}{figures}
-\setinterfacevariable{file}{fichier}
-\setinterfacevariable{final}{final}
-\setinterfacevariable{first}{premier}
-\setinterfacevariable{firstcolumn}{premierecolonne}
-\setinterfacevariable{firstpage}{premierepage}
-\setinterfacevariable{firstsubpage}{premieresouspage}
-\setinterfacevariable{fit}{adapter}
-\setinterfacevariable{five}{cinq}
-\setinterfacevariable{fix}{fix}
-\setinterfacevariable{fixed}{fixe}
-\setinterfacevariable{flexible}{flexible}
-\setinterfacevariable{float}{flottant}
-\setinterfacevariable{flushinner}{alignerinterieur}
-\setinterfacevariable{flushleft}{alignergauche}
-\setinterfacevariable{flushouter}{alignerexterieur}
-\setinterfacevariable{flushright}{alignerdroite}
-\setinterfacevariable{followingpage}{pagesuccesseur}
-\setinterfacevariable{font}{font}
-\setinterfacevariable{footer}{pdp}
-\setinterfacevariable{footnote}{notebdp}
-\setinterfacevariable{force}{forcer}
-\setinterfacevariable{foreground}{premierplan}
-\setinterfacevariable{formula}{formule}
-\setinterfacevariable{formulas}{formules}
-\setinterfacevariable{forward}{enavant}
-\setinterfacevariable{four}{quatre}
-\setinterfacevariable{fractions}{fractions}
-\setinterfacevariable{frame}{cadre}
-\setinterfacevariable{framedtext}{texteencadre}
-\setinterfacevariable{friday}{vendredi}
-\setinterfacevariable{frontmatter}{pagesliminaires}
-\setinterfacevariable{frontpart}{preface}
-\setinterfacevariable{fullhz}{hzcomplet}
-\setinterfacevariable{global}{global}
-\setinterfacevariable{graphic}{graphique}
-\setinterfacevariable{graphics}{graphiques}
-\setinterfacevariable{gray}{gris}
-\setinterfacevariable{greek}{grec}
-\setinterfacevariable{grid}{grille}
-\setinterfacevariable{halfline}{demiligne}
-\setinterfacevariable{handwritten}{manuscript}
-\setinterfacevariable{hang}{suspendre}
-\setinterfacevariable{hanging}{suspension}
-\setinterfacevariable{hangingboth}{suspensionchacun}
-\setinterfacevariable{head}{tete}
-\setinterfacevariable{header}{entête}
-\setinterfacevariable{headintext}{tetedanstexte}
-\setinterfacevariable{height}{hauteur}
-\setinterfacevariable{helptext}{texteaide}
-\setinterfacevariable{hencefore}{precedemment}
-\setinterfacevariable{here}{ici}
-\setinterfacevariable{hereafter}{ciapres}
-\setinterfacevariable{hidden}{cache}
-\setinterfacevariable{hiddenbar}{barrecachee}
-\setinterfacevariable{hiding}{encachant}
-\setinterfacevariable{high}{exp}
-\setinterfacevariable{horizontal}{horizontal}
-\setinterfacevariable{hyphenated}{aveccesure}
-\setinterfacevariable{hz}{hz}
-\setinterfacevariable{inbetween}{entre}
-\setinterfacevariable{index}{index}
-\setinterfacevariable{indices}{indices}
-\setinterfacevariable{inherit}{heriter}
-\setinterfacevariable{ininner}{dansinterieur}
-\setinterfacevariable{ininneredge}{dansbordinterieur}
-\setinterfacevariable{ininnermargin}{dansmargeinterieure}
-\setinterfacevariable{inleft}{dansgauche}
-\setinterfacevariable{inleftedge}{dansbordgauche}
-\setinterfacevariable{inleftmargin}{dansmargegauche}
-\setinterfacevariable{inline}{enligne}
-\setinterfacevariable{inmargin}{dansmarge}
-\setinterfacevariable{inner}{interieur}
-\setinterfacevariable{inneredge}{bordinterieur}
-\setinterfacevariable{innermargin}{margeinterieure}
-\setinterfacevariable{inother}{dansautre}
-\setinterfacevariable{inouter}{dansexterieur}
-\setinterfacevariable{inouteredge}{dansbordexterieur}
-\setinterfacevariable{inoutermargin}{dansmargeexterieure}
-\setinterfacevariable{inright}{dansdroite}
-\setinterfacevariable{inrightedge}{dansborddroit}
-\setinterfacevariable{inrightmargin}{dansmargedroite}
-\setinterfacevariable{integral}{integrale}
-\setinterfacevariable{interaction}{interaction}
-\setinterfacevariable{interactionmenu}{menuinteraction}
-\setinterfacevariable{interactive}{interactif}
-\setinterfacevariable{intermezzi}{interludes}
-\setinterfacevariable{intermezzo}{interlude}
-\setinterfacevariable{intext}{danstexte}
-\setinterfacevariable{intro}{intro}
-\setinterfacevariable{invertedshort}{invertedshort}
-\setinterfacevariable{italic}{italique}
-\setinterfacevariable{italicbold}{italiquegras}
-\setinterfacevariable{item}{élément}
-\setinterfacevariable{itemize}{détailler}
-\setinterfacevariable{its}{els}
-\setinterfacevariable{january}{janvier}
-\setinterfacevariable{joinedup}{sansespaceentre}
-\setinterfacevariable{july}{juillet}
-\setinterfacevariable{june}{juin}
-\setinterfacevariable{keep}{conserver}
-\setinterfacevariable{kerncharacters}{approchercaracteres}
-\setinterfacevariable{knockout}{knockout}
-\setinterfacevariable{label}{etiquette}
-\setinterfacevariable{landscape}{paysage}
-\setinterfacevariable{last}{dernier}
-\setinterfacevariable{lastcolumn}{dernierecolonne}
-\setinterfacevariable{lastpage}{dernierepage}
-\setinterfacevariable{lastpagenumber}{numerodenierepage}
-\setinterfacevariable{lastsubpage}{dernieresouspage}
-\setinterfacevariable{layer}{calque}
-\setinterfacevariable{left}{gauche}
-\setinterfacevariable{leftedge}{bordgauche}
-\setinterfacevariable{lefthanging}{suspensiongauche}
-\setinterfacevariable{leftmargin}{margegauche}
-\setinterfacevariable{leftpage}{surpagegauche}
-\setinterfacevariable{lefttoright}{gaucheadroite}
-\setinterfacevariable{legend}{legende}
-\setinterfacevariable{less}{moins}
-\setinterfacevariable{lesshyphenation}{moinsdecesure}
-\setinterfacevariable{letterspacing}{espacementlettre}
-\setinterfacevariable{line}{ligne}
-\setinterfacevariable{linenote}{noteligne}
-\setinterfacevariable{lines}{lignes}
-\setinterfacevariable{linked}{lie}
-\setinterfacevariable{list}{liste}
-\setinterfacevariable{local}{local}
-\setinterfacevariable{localenvironment}{environnementlocal}
-\setinterfacevariable{logo}{logo}
-\setinterfacevariable{logos}{logos}
-\setinterfacevariable{lohi}{inex}
-\setinterfacevariable{long}{long}
-\setinterfacevariable{loose}{envrac}
-\setinterfacevariable{low}{ind}
-\setinterfacevariable{ls}{ls}
-\setinterfacevariable{makeup}{composition}
-\setinterfacevariable{mar}{rem}
-\setinterfacevariable{march}{mars}
-\setinterfacevariable{margin}{marge}
-\setinterfacevariable{marginedge}{margebord}
-\setinterfacevariable{margintext}{textemarge}
-\setinterfacevariable{margintitle}{titremarge}
-\setinterfacevariable{marking}{marquage}
-\setinterfacevariable{math}{math}
-\setinterfacevariable{mathalignment}{alignementmath}
-\setinterfacevariable{mathcases}{casmath}
-\setinterfacevariable{mathematics}{mathematics}
-\setinterfacevariable{mathmatrix}{matricemath}
-\setinterfacevariable{max}{max}
-\setinterfacevariable{maxdepth}{profondeurmax}
-\setinterfacevariable{maxheight}{hauteurmax}
-\setinterfacevariable{maxwidth}{largeurmax}
-\setinterfacevariable{may}{mai}
-\setinterfacevariable{mediaeval}{medieval}
-\setinterfacevariable{medium}{moyen}
-\setinterfacevariable{middle}{milieu}
-\setinterfacevariable{min}{min}
-\setinterfacevariable{mindepth}{profondeurmin}
-\setinterfacevariable{minheight}{hauteurmin}
-\setinterfacevariable{minwidth}{largeurmin}
-\setinterfacevariable{mirrored}{reflete}
-\setinterfacevariable{mixed}{mixte}
-\setinterfacevariable{monday}{lundi}
-\setinterfacevariable{mono}{mono}
-\setinterfacevariable{monobold}{monogras}
-\setinterfacevariable{mononormal}{normalmono}
-\setinterfacevariable{month}{mois}
-\setinterfacevariable{more}{plus}
-\setinterfacevariable{morehyphenation}{plusdecesure}
-\setinterfacevariable{name}{nom}
-\setinterfacevariable{narrow}{etroit}
-\setinterfacevariable{negative}{negatif}
-\setinterfacevariable{never}{jamais}
-\setinterfacevariable{new}{nouveau}
-\setinterfacevariable{next}{suivant}
-\setinterfacevariable{nextevenpage}{pagepairesuivante}
-\setinterfacevariable{nextoddpage}{pageimpairesuivante}
-\setinterfacevariable{nextpage}{pagesuivante}
-\setinterfacevariable{nextsubpage}{souspagesuivante}
-\setinterfacevariable{nine}{neuf}
-\setinterfacevariable{no}{non}
-\setinterfacevariable{nocheck}{sansverifier}
-\setinterfacevariable{nodepth}{sansprodondeur}
-\setinterfacevariable{nofit}{sansadapter}
-\setinterfacevariable{nogrid}{sansgrille}
-\setinterfacevariable{noheight}{sanshauteur}
-\setinterfacevariable{nohz}{sanshz}
-\setinterfacevariable{noline}{sansligne}
-\setinterfacevariable{nomarking}{sansmarquage}
-\setinterfacevariable{nomenubar}{sansbarremenu}
-\setinterfacevariable{none}{aucun}
-\setinterfacevariable{nonumber}{sansnumero}
-\setinterfacevariable{norepeat}{sansrepetition}
-\setinterfacevariable{normal}{normal}
-\setinterfacevariable{normalshort}{normalshort}
-\setinterfacevariable{nospacing}{sansespacement}
-\setinterfacevariable{nostopper}{sansstoppeur}
-\setinterfacevariable{not}{pas}
-\setinterfacevariable{notation}{notation}
-\setinterfacevariable{note}{note}
-\setinterfacevariable{nothanging}{sanssuspension}
-\setinterfacevariable{nothyphenated}{sanscesure}
-\setinterfacevariable{notjoinedup}{passansespaceentre}
-\setinterfacevariable{november}{novembre}
-\setinterfacevariable{nowhere}{nullepart}
-\setinterfacevariable{nowhite}{sansblanc}
-\setinterfacevariable{number}{numero}
-\setinterfacevariable{numbers}{numeros}
-\setinterfacevariable{october}{octobre}
-\setinterfacevariable{odd}{impair}
-\setinterfacevariable{off}{arret}
-\setinterfacevariable{offset}{decalage}
-\setinterfacevariable{old}{ancien}
-\setinterfacevariable{oldstyle}{styleancien}
-\setinterfacevariable{on}{marche}
-\setinterfacevariable{one}{un}
-\setinterfacevariable{opposite}{enface}
-\setinterfacevariable{ordinal}{ordinal}
-\setinterfacevariable{outer}{exterieur}
-\setinterfacevariable{outeredge}{bordexterieur}
-\setinterfacevariable{outermargin}{margeexterieure}
-\setinterfacevariable{overbar}{surligner}
-\setinterfacevariable{overbars}{surlignermots}
-\setinterfacevariable{overlay}{superposition}
-\setinterfacevariable{overprint}{surimpression}
-\setinterfacevariable{overstrike}{barrer}
-\setinterfacevariable{overstrikes}{barrermots}
-\setinterfacevariable{packed}{sansespaceentreitem}
-\setinterfacevariable{page}{page}
-\setinterfacevariable{pagecomment}{commentairepage}
-\setinterfacevariable{pagenumber}{numeropage}
-\setinterfacevariable{paper}{papier}
-\setinterfacevariable{paragraph}{paragraphe}
-\setinterfacevariable{part}{partie}
-\setinterfacevariable{positive}{positif}
-\setinterfacevariable{postponing}{report}
-\setinterfacevariable{postscript}{postscript}
-\setinterfacevariable{precedingpage}{pageantecedent}
-\setinterfacevariable{preference}{preference}
-\setinterfacevariable{preview}{apercu}
-\setinterfacevariable{previous}{precedent}
-\setinterfacevariable{previousevenpage}{pagepaireprecedente}
-\setinterfacevariable{previousoddpage}{pageimpaireprecedente}
-\setinterfacevariable{previouspage}{pageprecedente}
-\setinterfacevariable{previoussubpage}{souspageprecedente}
-\setinterfacevariable{print}{imprimer}
-\setinterfacevariable{printable}{imprimable}
-\setinterfacevariable{process}{traiter}
-\setinterfacevariable{product}{produit}
-\setinterfacevariable{program}{programme}
-\setinterfacevariable{project}{projet}
-\setinterfacevariable{protected}{protege}
-\setinterfacevariable{quadruple}{quadruple}
-\setinterfacevariable{quarterline}{quartdeligne}
-\setinterfacevariable{quotation}{citation}
-\setinterfacevariable{quote}{citer}
-\setinterfacevariable{ran}{gam}
-\setinterfacevariable{random}{aleatoire}
-\setinterfacevariable{readonly}{lectureseule}
-\setinterfacevariable{rectangular}{rectangulaire}
-\setinterfacevariable{reference}{reference}
-\setinterfacevariable{referral}{redirection}
-\setinterfacevariable{region}{region}
-\setinterfacevariable{register}{registre}
-\setinterfacevariable{regular}{ordinaire}
-\setinterfacevariable{relative}{relatif}
-\setinterfacevariable{repeat}{repeter}
-\setinterfacevariable{required}{requis}
-\setinterfacevariable{reset}{raz}
-\setinterfacevariable{reverse}{inverser}
-\setinterfacevariable{right}{droite}
-\setinterfacevariable{rightedge}{borddroit}
-\setinterfacevariable{righthanging}{suspensiondroite}
-\setinterfacevariable{rightmargin}{margedroite}
-\setinterfacevariable{rightpage}{surpagedroite}
-\setinterfacevariable{righttoleft}{droiteagauche}
-\setinterfacevariable{roman}{romain}
-\setinterfacevariable{romannumerals}{chiffresromains}
-\setinterfacevariable{rotate}{tourner}
-\setinterfacevariable{rotated}{tourne}
-\setinterfacevariable{round}{rond}
-\setinterfacevariable{row}{rang}
-\setinterfacevariable{rule}{trait}
-\setinterfacevariable{samepage}{memepage}
-\setinterfacevariable{sans}{sans}
-\setinterfacevariable{sansbold}{sansserifbold}
-\setinterfacevariable{sansnormal}{normalsans}
-\setinterfacevariable{sansserif}{sansserif}
-\setinterfacevariable{saturday}{samedi}
-\setinterfacevariable{screen}{ecran}
-\setinterfacevariable{section}{section}
-\setinterfacevariable{sectionblockenvironment}{environnementblocsection}
-\setinterfacevariable{sectionnumber}{numerosection}
-\setinterfacevariable{see}{voir}
-\setinterfacevariable{selectfont}{selectionnerpolice}
-\setinterfacevariable{separator}{separateur}
-\setinterfacevariable{september}{septembre}
-\setinterfacevariable{serif}{serif}
-\setinterfacevariable{serifbold}{serifgras}
-\setinterfacevariable{serifnormal}{serifnormal}
-\setinterfacevariable{serried}{serre}
-\setinterfacevariable{setups}{setups}
-\setinterfacevariable{seven}{sept}
-\setinterfacevariable{sheet}{feuille}
-\setinterfacevariable{shiftdown}{decalerenbas}
-\setinterfacevariable{shiftup}{decalerenhaut}
-\setinterfacevariable{short}{court}
-\setinterfacevariable{simplefonts}{policessimple}
-\setinterfacevariable{simplelist}{listesimple}
-\setinterfacevariable{singlesided}{recto}
-\setinterfacevariable{six}{six}
-\setinterfacevariable{slanted}{incline}
-\setinterfacevariable{slantedbold}{inclinegras}
-\setinterfacevariable{small}{petit}
-\setinterfacevariable{smallbodyfont}{policedecorpspetite}
-\setinterfacevariable{smallbold}{petitgras}
-\setinterfacevariable{smallbolditalic}{petitgrasitalique}
-\setinterfacevariable{smallboldslanted}{petitgrasincline}
-\setinterfacevariable{smallcaps}{petitescaps}
-\setinterfacevariable{smaller}{pluspetit}
-\setinterfacevariable{smallitalic}{petititalique}
-\setinterfacevariable{smallitalicbold}{petititaliquegras}
-\setinterfacevariable{smallnormal}{petitnormal}
-\setinterfacevariable{smallslanted}{petitincline}
-\setinterfacevariable{smallslantedbold}{petitinclinegras}
-\setinterfacevariable{smalltype}{petitcaractere}
-\setinterfacevariable{somewhere}{qqpart}
-\setinterfacevariable{sorted}{trie}
-\setinterfacevariable{sorting}{tri}
-\setinterfacevariable{space}{espace}
-\setinterfacevariable{spacing}{espacement}
-\setinterfacevariable{speech}{discours}
-\setinterfacevariable{split}{partager}
-\setinterfacevariable{spot}{tondirect}
-\setinterfacevariable{standard}{standard}
-\setinterfacevariable{start}{activé}
-\setinterfacevariable{starter}{demarreur}
-\setinterfacevariable{sticker}{autocollant}
-\setinterfacevariable{stop}{fin}
-\setinterfacevariable{stopper}{stoppeur}
-\setinterfacevariable{stretch}{etirer}
-\setinterfacevariable{stretched}{etire}
-\setinterfacevariable{strict}{strict}
-\setinterfacevariable{strong}{fort}
-\setinterfacevariable{strut}{entretoise}
-\setinterfacevariable{sub}{sous}
-\setinterfacevariable{subbackward}{petitenarriere}
-\setinterfacevariable{subformula}{sousformule}
-\setinterfacevariable{subforward}{petitenavant}
-\setinterfacevariable{subject}{sujet}
-\setinterfacevariable{subpage}{souspage}
-\setinterfacevariable{subs}{subs}
-\setinterfacevariable{subsection}{soussection}
-\setinterfacevariable{subsubject}{soussujet}
-\setinterfacevariable{subsubsection}{soussoussection}
-\setinterfacevariable{subsubsubject}{soussoussujet}
-\setinterfacevariable{subsubsubsection}{soussoussoussection}
-\setinterfacevariable{subsubsubsubject}{soussoussoussujet}
-\setinterfacevariable{subsubsubsubsection}{soussoussoussoussection}
-\setinterfacevariable{subsubsubsubsubject}{soussoussoussoussujet}
-\setinterfacevariable{subsubsubsubsubsection}{soussoussoussoussoussection}
-\setinterfacevariable{subsubsubsubsubsubject}{soussoussoussoussoussujet}
-\setinterfacevariable{subsubsubsubsubsubsection}{soussoussoussoussoussoussection}
-\setinterfacevariable{subsubsubsubsubsubsubject}{soussoussoussoussoussoussujet}
-\setinterfacevariable{subsubsubsubsubsubsubsection}{soussoussoussoussoussoussoussection}
-\setinterfacevariable{subsubsubsubsubsubsubsubject}{soussoussoussoussoussoussoussujet}
-\setinterfacevariable{subsubsubsubsubsubsubsubsection}{soussoussoussoussoussoussoussoussection}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubject}{soussoussoussoussoussoussoussoussujet}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{soussoussoussoussoussoussoussoussoussection}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{soussoussoussoussoussoussoussoussoussujet}
-\setinterfacevariable{sunday}{dimanche}
-\setinterfacevariable{support}{support}
-\setinterfacevariable{sym}{sym}
-\setinterfacevariable{symbol}{symbole}
-\setinterfacevariable{synchronize}{synchroniser}
-\setinterfacevariable{synonym}{synonyme}
-\setinterfacevariable{system}{systeme}
-\setinterfacevariable{table}{table}
-\setinterfacevariable{tablehead}{tetetableau}
-\setinterfacevariable{tables}{tables}
-\setinterfacevariable{tabletail}{queuetable}
-\setinterfacevariable{tabulate}{tabulation}
-\setinterfacevariable{tabulatehead}{tetetabulation}
-\setinterfacevariable{tabulatetail}{queuetabulation}
-\setinterfacevariable{tall}{grand}
-\setinterfacevariable{teletype}{caractereterminal}
-\setinterfacevariable{temporary}{temporaire}
-\setinterfacevariable{test}{test}
-\setinterfacevariable{text}{texte}
-\setinterfacevariable{textnote}{notetexte}
-\setinterfacevariable{three}{trois}
-\setinterfacevariable{thursday}{jeudi}
-\setinterfacevariable{tight}{resserre}
-\setinterfacevariable{title}{titre}
-\setinterfacevariable{toggle}{basculer}
-\setinterfacevariable{tolerant}{tolerant}
-\setinterfacevariable{top}{haut}
-\setinterfacevariable{tuesday}{mardi}
-\setinterfacevariable{two}{deux}
-\setinterfacevariable{txt}{txt}
-\setinterfacevariable{type}{transcrire}
-\setinterfacevariable{typing}{transcription}
-\setinterfacevariable{unavailable}{indisponible}
-\setinterfacevariable{underbar}{souligner}
-\setinterfacevariable{underbars}{soulignermots}
-\setinterfacevariable{understrike}{soubarrer}
-\setinterfacevariable{understrikes}{soubarrermots}
-\setinterfacevariable{unframed}{desencadre}
-\setinterfacevariable{unicode}{unicode}
-\setinterfacevariable{unit}{unite}
-\setinterfacevariable{units}{unites}
-\setinterfacevariable{unknown}{inconnu}
-\setinterfacevariable{unpacked}{avecespaceentreitem}
-\setinterfacevariable{up}{enhaut}
-\setinterfacevariable{url}{url}
-\setinterfacevariable{used}{utilise}
-\setinterfacevariable{value}{valeur}
-\setinterfacevariable{vertical}{vertical}
-\setinterfacevariable{very}{tres}
-\setinterfacevariable{verystrict}{tresstrict}
-\setinterfacevariable{verytolerant}{trestolerant}
-\setinterfacevariable{vfenced}{cloturev}
-\setinterfacevariable{vulgarfraction}{vulgarfraction}
-\setinterfacevariable{weak}{faible}
-\setinterfacevariable{wednesday}{mercredi}
-\setinterfacevariable{week}{semaine}
-\setinterfacevariable{weekday}{joursemaine}
-\setinterfacevariable{white}{blanc}
-\setinterfacevariable{wide}{ample}
-\setinterfacevariable{width}{largeur}
-\setinterfacevariable{word}{mot}
-\setinterfacevariable{words}{mots}
-\setinterfacevariable{xml}{xml}
-\setinterfacevariable{year}{annee}
-\setinterfacevariable{yes}{oui}
-% definitions for interface constants for language fr
-%
-\setinterfaceconstant{action}{action}
-\setinterfaceconstant{address}{adresse}
-\setinterfaceconstant{after}{après}
-\setinterfaceconstant{afterhead}{aprèstête}
-\setinterfaceconstant{afterkey}{aprèsclé}
-\setinterfaceconstant{aftersection}{aprèssection}
-\setinterfaceconstant{align}{aligner}
-\setinterfaceconstant{alignbottom}{alignerbas}
-\setinterfaceconstant{aligncharacter}{alignersurcaractere}
-\setinterfaceconstant{alignmentcharacter}{caracterealignement}
-\setinterfaceconstant{alignmentleftsample}{echantillongauchealignement}
-\setinterfaceconstant{alignmentleftwidth}{largeurgauchealignement}
-\setinterfaceconstant{alignmentrightsample}{echantillondroitealignement}
-\setinterfaceconstant{alignmentrightwidth}{largeurdroitealignement}
-\setinterfaceconstant{alignsymbol}{alignersursymbol}
-\setinterfaceconstant{aligntitle}{alignersurtitre}
-\setinterfaceconstant{alternative}{variante}
-\setinterfaceconstant{anchor}{ancre}
-\setinterfaceconstant{anchoring}{ancrage}
-\setinterfaceconstant{andtext}{ettexte}
-\setinterfaceconstant{apa}{apa}
-\setinterfaceconstant{arguments}{arguments}
-\setinterfaceconstant{arrow}{fleche}
-\setinterfaceconstant{artauthor}{artauteur}
-\setinterfaceconstant{artauthoretaldisplay}{artauteuretalaffichage}
-\setinterfaceconstant{artauthoretallimit}{artauteuretallimite}
-\setinterfaceconstant{artauthoretaltext}{artauteuretaltexte}
-\setinterfaceconstant{artoffset}{artdecalage}
-\setinterfaceconstant{at}{en}
-\setinterfaceconstant{author}{auteur}
-\setinterfaceconstant{authorconversion}{auteurconversion}
-\setinterfaceconstant{authoretaldisplay}{auteuretalaffichage}
-\setinterfaceconstant{authoretallimit}{auteuretallimite}
-\setinterfaceconstant{authoretaltext}{auteuretaltexte}
-\setinterfaceconstant{auto}{auto}
-\setinterfaceconstant{autocase}{autocase}
-\setinterfaceconstant{autofile}{autofichier}
-\setinterfaceconstant{autofocus}{autofocus}
-\setinterfaceconstant{autohang}{autosuspendre}
-\setinterfaceconstant{autostrut}{autoentretoise}
-\setinterfaceconstant{autowidth}{autolargeur}
-\setinterfaceconstant{availableheight}{hauteurdisponible}
-\setinterfaceconstant{availablewidth}{largeurdisponible}
-\setinterfaceconstant{axis}{axe}
-\setinterfaceconstant{background}{arriereplan}
-\setinterfaceconstant{backgroundcolor}{couleurarriereplan}
-\setinterfaceconstant{backgroundcorner}{coinarriereplan}
-\setinterfaceconstant{backgrounddepth}{profondeurarriereplan}
-\setinterfaceconstant{backgroundoffset}{decalagearriereplan}
-\setinterfaceconstant{backgroundradius}{rayonarriereplan}
-\setinterfaceconstant{backgroundscreen}{ecranarriereplan}
-\setinterfaceconstant{backreference}{retroreference}
-\setinterfaceconstant{backspace}{espacearrière}
-\setinterfaceconstant{balance}{equilibrer}
-\setinterfaceconstant{before}{avant}
-\setinterfaceconstant{beforehead}{avanttete}
-\setinterfaceconstant{beforesection}{avantsection}
-\setinterfaceconstant{bet}{suj}
-\setinterfaceconstant{bidi}{bidi}
-\setinterfaceconstant{big}{important}
-\setinterfaceconstant{blank}{vierge}
-\setinterfaceconstant{bleedoffset}{decalagefuite}
-\setinterfaceconstant{blockway}{faconbloc}
-\setinterfaceconstant{bodyfont}{policedecorps}
-\setinterfaceconstant{boffset}{decalageb}
-\setinterfaceconstant{boldfeatures}{fonctionnalitesgras}
-\setinterfaceconstant{boldfont}{policegras}
-\setinterfaceconstant{bolditalicfeatures}{fonctionnalitesgrasitalique}
-\setinterfaceconstant{bolditalicfont}{policegrasitalique}
-\setinterfaceconstant{boldslantedfeatures}{fonctionnalitesgrasincline}
-\setinterfaceconstant{boldslantedfont}{policegrasincline}
-\setinterfaceconstant{bookmark}{marquepage}
-\setinterfaceconstant{bottom}{bas}
-\setinterfaceconstant{bottomafter}{basaprès}
-\setinterfaceconstant{bottombefore}{basavant}
-\setinterfaceconstant{bottomcommand}{commandebas}
-\setinterfaceconstant{bottomdistance}{distancebas}
-\setinterfaceconstant{bottomframe}{cadrebas}
-\setinterfaceconstant{bottomoffset}{decalagebas}
-\setinterfaceconstant{bottomspace}{espacebas}
-\setinterfaceconstant{bottomstate}{etatbas}
-\setinterfaceconstant{break}{saut}
-\setinterfaceconstant{buffer}{tampon}
-\setinterfaceconstant{cache}{memoirecache}
-\setinterfaceconstant{calculate}{calculer}
-\setinterfaceconstant{category}{categorie}
-\setinterfaceconstant{ccommand}{commandec}
-\setinterfaceconstant{character}{caractere}
-\setinterfaceconstant{characters}{caracteres}
-\setinterfaceconstant{check}{verifier}
-\setinterfaceconstant{click}{clic}
-\setinterfaceconstant{clickin}{clicinterieur}
-\setinterfaceconstant{clickout}{clicexterieur}
-\setinterfaceconstant{clipoffset}{decalagedecoupe}
-\setinterfaceconstant{closeaction}{fermeraction}
-\setinterfaceconstant{closecommand}{fermercommande}
-\setinterfaceconstant{closepage}{fermerpage}
-\setinterfaceconstant{closepageaction}{fermeractionpage}
-\setinterfaceconstant{closesymbol}{fermersymbol}
-\setinterfaceconstant{color}{couleur}
-\setinterfaceconstant{column}{colonne}
-\setinterfaceconstant{columndistance}{distancecolonne}
-\setinterfaceconstant{columns}{colonnes}
-\setinterfaceconstant{comma}{virgule}
-\setinterfaceconstant{command}{commande}
-\setinterfaceconstant{commandafter}{commandeaprès}
-\setinterfaceconstant{commandbefore}{commandeavant}
-\setinterfaceconstant{commands}{commandes}
-\setinterfaceconstant{comment}{commentaire}
-\setinterfaceconstant{commentchar}{caracommentaire}
-\setinterfaceconstant{commentoffset}{decalagecommentaire}
-\setinterfaceconstant{compact}{compact}
-\setinterfaceconstant{component}{composant}
-\setinterfaceconstant{compoundhyphen}{traitdunioncompose}
-\setinterfaceconstant{compress}{reduire}
-\setinterfaceconstant{compressdistance}{distancereduction}
-\setinterfaceconstant{compressmethod}{methodereduction}
-\setinterfaceconstant{compressseparator}{separateurreduction}
-\setinterfaceconstant{compressstopper}{stoppeurreduction}
-\setinterfaceconstant{concerns}{concerne}
-\setinterfaceconstant{connector}{connecteur}
-\setinterfaceconstant{continue}{continuer}
-\setinterfaceconstant{contrastcolor}{couleurconstrast}
-\setinterfaceconstant{controls}{controles}
-\setinterfaceconstant{conversion}{conversion}
-\setinterfaceconstant{convertfile}{convertirfichier}
-\setinterfaceconstant{copies}{copies}
-\setinterfaceconstant{corner}{coin}
-\setinterfaceconstant{coupling}{couplage}
-\setinterfaceconstant{couplingway}{faconcouplage}
-\setinterfaceconstant{criterium}{critere}
-\setinterfaceconstant{cropoffset}{decalagerecadre}
-\setinterfaceconstant{crossreference}{renvoi}
-\setinterfaceconstant{cssfile}{fichiercss}
-\setinterfaceconstant{current}{courant}
-\setinterfaceconstant{cutspace}{espacecoupe}
-\setinterfaceconstant{dash}{pointille}
-\setinterfaceconstant{dat}{dat}
-\setinterfaceconstant{database}{basededonnees}
-\setinterfaceconstant{dataset}{jeudedonnees}
-\setinterfaceconstant{date}{date}
-\setinterfaceconstant{deepnumbercommand}{commandeprofondenumero}
-\setinterfaceconstant{deeptextcommand}{commandeprofondetexte}
-\setinterfaceconstant{default}{defaut}
-\setinterfaceconstant{defaultheight}{defaultheight}
-\setinterfaceconstant{defaultwidth}{defaultwidth}
-\setinterfaceconstant{define}{define}
-\setinterfaceconstant{delay}{retard}
-\setinterfaceconstant{depth}{profondeur}
-\setinterfaceconstant{depthcorrection}{correctionprofondeur}
-\setinterfaceconstant{direction}{direction}
-\setinterfaceconstant{directory}{repertoire}
-\setinterfaceconstant{display}{affichage}
-\setinterfaceconstant{displaythreshold}{seuilaffichage}
-\setinterfaceconstant{distance}{distance}
-\setinterfaceconstant{domain}{domaine}
-\setinterfaceconstant{dot}{point}
-\setinterfaceconstant{doublesided}{rectoverso}
-\setinterfaceconstant{down}{enbas}
-\setinterfaceconstant{dummy}{factice}
-\setinterfaceconstant{dx}{dx}
-\setinterfaceconstant{dy}{dy}
-\setinterfaceconstant{edge}{bord}
-\setinterfaceconstant{edgedistance}{distancebord}
-\setinterfaceconstant{editor}{editeur}
-\setinterfaceconstant{editoretaldisplay}{editeurealaffichage}
-\setinterfaceconstant{editoretallimit}{editeureallimite}
-\setinterfaceconstant{editoretaltext}{editeurealtexte}
-\setinterfaceconstant{empty}{vide}
-\setinterfaceconstant{entities}{entitees}
-\setinterfaceconstant{entries}{entrees}
-\setinterfaceconstant{equalheight}{hauteuregale}
-\setinterfaceconstant{equalwidth}{margeuregale}
-\setinterfaceconstant{escape}{echappatoire}
-\setinterfaceconstant{etaldisplay}{etalaffichage}
-\setinterfaceconstant{etallimit}{etallimite}
-\setinterfaceconstant{etaloption}{etaloption}
-\setinterfaceconstant{etaltext}{etalttexte}
-\setinterfaceconstant{evenmargin}{margepaire}
-\setinterfaceconstant{exact}{exact}
-\setinterfaceconstant{exitoffset}{decalagesortie}
-\setinterfaceconstant{expansion}{expansion}
-\setinterfaceconstant{export}{exporter}
-\setinterfaceconstant{extras}{extras}
-\setinterfaceconstant{factor}{facteur}
-\setinterfaceconstant{fallback}{repli}
-\setinterfaceconstant{fallbacks}{replis}
-\setinterfaceconstant{family}{famille}
-\setinterfaceconstant{features}{fonctionnalites}
-\setinterfaceconstant{featureset}{jeufonctionnalite}
-\setinterfaceconstant{fences}{barrieres}
-\setinterfaceconstant{field}{champ}
-\setinterfaceconstant{fieldbackgroundcolor}{couleurarrierreplanchamp}
-\setinterfaceconstant{fieldframecolor}{couleurcadrechamp}
-\setinterfaceconstant{fieldlayer}{calquechamp}
-\setinterfaceconstant{fieldoffset}{decalagechamp}
-\setinterfaceconstant{file}{fichier}
-\setinterfaceconstant{filler}{remplisseur}
-\setinterfaceconstant{filter}{filtre}
-\setinterfaceconstant{filtercommand}{commandefiltre}
-\setinterfaceconstant{finalnamesep}{sepnomfinal}
-\setinterfaceconstant{finalpagesep}{seppagefinale}
-\setinterfaceconstant{finalpubsep}{seppubfinale}
-\setinterfaceconstant{first}{premier}
-\setinterfaceconstant{firstnamesep}{seppremiernom}
-\setinterfaceconstant{firstpage}{premierepage}
-\setinterfaceconstant{focus}{focus}
-\setinterfaceconstant{focusin}{focusin}
-\setinterfaceconstant{focusoffset}{decalagefocus}
-\setinterfaceconstant{focusout}{focusout}
-\setinterfaceconstant{font}{font}
-\setinterfaceconstant{footer}{pdp}
-\setinterfaceconstant{footerdistance}{distancepdp}
-\setinterfaceconstant{footerstate}{etatpdp}
-\setinterfaceconstant{force}{forcer}
-\setinterfaceconstant{foregroundcolor}{couleurpremierplan}
-\setinterfaceconstant{foregroundstyle}{stylepremierplan}
-\setinterfaceconstant{format}{formatter}
-\setinterfaceconstant{fractions}{fractions}
-\setinterfaceconstant{frame}{cadre}
-\setinterfaceconstant{framecolor}{couleurcadre}
-\setinterfaceconstant{framecorner}{coincadre}
-\setinterfaceconstant{framedepth}{profondeurcadre}
-\setinterfaceconstant{frameoffset}{decalagecadre}
-\setinterfaceconstant{frameradius}{rayoncadre}
-\setinterfaceconstant{frames}{cadres}
-\setinterfaceconstant{freeregion}{regionlibre}
-\setinterfaceconstant{from}{de}
-\setinterfaceconstant{functioncolor}{couleurfonction}
-\setinterfaceconstant{functionstyle}{stylefonction}
-\setinterfaceconstant{get}{obtenir}
-\setinterfaceconstant{global}{global}
-\setinterfaceconstant{goodies}{friandises}
-\setinterfaceconstant{grid}{grille}
-\setinterfaceconstant{group}{groupe}
-\setinterfaceconstant{groupsuffix}{suffixegroupe}
-\setinterfaceconstant{hang}{suspendre}
-\setinterfaceconstant{hcompact}{compacth}
-\setinterfaceconstant{headalign}{alignertete}
-\setinterfaceconstant{headcolor}{couleurtete}
-\setinterfaceconstant{headcommand}{commandetete}
-\setinterfaceconstant{headconversion}{conversiontete}
-\setinterfaceconstant{header}{entête}
-\setinterfaceconstant{headerdistance}{distanceentête}
-\setinterfaceconstant{headerstate}{etatentête}
-\setinterfaceconstant{headlabel}{etiquettetete}
-\setinterfaceconstant{headnumber}{numerotete}
-\setinterfaceconstant{headseparator}{separateurtete}
-\setinterfaceconstant{headstyle}{styletete}
-\setinterfaceconstant{height}{hauteur}
-\setinterfaceconstant{hfactor}{facteurh}
-\setinterfaceconstant{hfil}{remplissageh}
-\setinterfaceconstant{hidenumber}{cachernumero}
-\setinterfaceconstant{hoffset}{decalageh}
-\setinterfaceconstant{horizontal}{horizontal}
-\setinterfaceconstant{horoffset}{decalagehor}
-\setinterfaceconstant{hyphen}{traitdunion}
-\setinterfaceconstant{hyphens}{traitsdunion}
-\setinterfaceconstant{icommand}{commandei}
-\setinterfaceconstant{ignore}{ignorer}
-\setinterfaceconstant{in}{dans}
-\setinterfaceconstant{inbetween}{entre}
-\setinterfaceconstant{increment}{incrementer}
-\setinterfaceconstant{incrementnumber}{incrementernumero}
-\setinterfaceconstant{indenting}{indentation}
-\setinterfaceconstant{indentlist}{indentlist}
-\setinterfaceconstant{indentnext}{indenterauuivant}
-\setinterfaceconstant{index}{index}
-\setinterfaceconstant{indicator}{indicateur}
-\setinterfaceconstant{initialsep}{sepinitial}
-\setinterfaceconstant{inlinethreshold}{seuilenligne}
-\setinterfaceconstant{inner}{interieur}
-\setinterfaceconstant{innermargin}{margeinterieure}
-\setinterfaceconstant{inputfile}{fichierentree}
-\setinterfaceconstant{insidesection}{auseinsection}
-\setinterfaceconstant{instance}{instance}
-\setinterfaceconstant{intent}{intention}
-\setinterfaceconstant{interaction}{interaction}
-\setinterfaceconstant{interlinespace}{espaceinterligne}
-\setinterfaceconstant{internalgrid}{grilleinterieure}
-\setinterfaceconstant{italicfeatures}{fonctionnalitesitalique}
-\setinterfaceconstant{italicfont}{policeitalique}
-\setinterfaceconstant{itemalign}{alignerelem}
-\setinterfaceconstant{items}{élément}
-\setinterfaceconstant{joiners}{joins}
-\setinterfaceconstant{journalconversion}{conversionjournal}
-\setinterfaceconstant{juniorsep}{sepjunior}
-\setinterfaceconstant{keeptogether}{conserverensemble}
-\setinterfaceconstant{ken}{rep}
-\setinterfaceconstant{keyexpansion}{expansioncle}
-\setinterfaceconstant{keys}{cles}
-\setinterfaceconstant{keyword}{motclé}
-\setinterfaceconstant{label}{etiquette}
-\setinterfaceconstant{labelalternative}{varianteetiquette}
-\setinterfaceconstant{labelcolor}{couleuretiquette}
-\setinterfaceconstant{labeloffset}{decalageetiquette}
-\setinterfaceconstant{labelstyle}{styleetiquette}
-\setinterfaceconstant{language}{langue}
-\setinterfaceconstant{last}{dernier}
-\setinterfaceconstant{lastnamesep}{sepderniernom}
-\setinterfaceconstant{lastpage}{dernierepage}
-\setinterfaceconstant{lastpagesep}{sepdernierepage}
-\setinterfaceconstant{lastpubsep}{sepdernierepub}
-\setinterfaceconstant{layout}{miseenpage}
-\setinterfaceconstant{left}{gauche}
-\setinterfaceconstant{leftcolor}{couleurgauche}
-\setinterfaceconstant{leftcompoundhyphen}{traitdunioncomposegauche}
-\setinterfaceconstant{leftedge}{bordgauche}
-\setinterfaceconstant{leftedgedistance}{distancebordgauche}
-\setinterfaceconstant{leftframe}{cadregauche}
-\setinterfaceconstant{lefthyphen}{traitduniongauche}
-\setinterfaceconstant{leftmargin}{margegauche}
-\setinterfaceconstant{leftmargindistance}{distancemargegauche}
-\setinterfaceconstant{leftoffset}{decalagegauche}
-\setinterfaceconstant{leftquotation}{citationgauche}
-\setinterfaceconstant{leftquote}{citergauche}
-\setinterfaceconstant{leftsample}{echantillongauche}
-\setinterfaceconstant{leftsentence}{phrasegauche}
-\setinterfaceconstant{leftspeech}{discoursgauche}
-\setinterfaceconstant{leftstyle}{stylegauche}
-\setinterfaceconstant{leftsubsentence}{sousphrasegauche}
-\setinterfaceconstant{lefttext}{textegauche}
-\setinterfaceconstant{leftwidth}{largeurgauche}
-\setinterfaceconstant{leftwords}{motsgauche}
-\setinterfaceconstant{less}{moins}
-\setinterfaceconstant{level}{niveau}
-\setinterfaceconstant{levels}{niveaux}
-\setinterfaceconstant{limittext}{textelimite}
-\setinterfaceconstant{line}{ligne}
-\setinterfaceconstant{linecorrection}{correctionligne}
-\setinterfaceconstant{linedirection}{linedirection}
-\setinterfaceconstant{lines}{lignes}
-\setinterfaceconstant{list}{liste}
-\setinterfaceconstant{listtext}{texteliste}
-\setinterfaceconstant{local}{local}
-\setinterfaceconstant{location}{emplacement}
-\setinterfaceconstant{loffset}{decalagel}
-\setinterfaceconstant{logo}{logo}
-\setinterfaceconstant{logos}{logos}
-\setinterfaceconstant{marcolor}{couleurrem}
-\setinterfaceconstant{margin}{marge}
-\setinterfaceconstant{margindistance}{distancemarge}
-\setinterfaceconstant{marginedge}{margebord}
-\setinterfaceconstant{marginedgetext}{textemargebord}
-\setinterfaceconstant{margintext}{textemarge}
-\setinterfaceconstant{mark}{marque}
-\setinterfaceconstant{marking}{marquage}
-\setinterfaceconstant{marstyle}{stylerem}
-\setinterfaceconstant{mask}{masque}
-\setinterfaceconstant{mathclass}{classemath}
-\setinterfaceconstant{mathlimits}{limitesmath}
-\setinterfaceconstant{mathstyle}{stylemath}
-\setinterfaceconstant{max}{max}
-\setinterfaceconstant{maxdepth}{profondeurmax}
-\setinterfaceconstant{maxheight}{hauteurmax}
-\setinterfaceconstant{maxwidth}{largeurmax}
-\setinterfaceconstant{maybeyear}{anneepeutetre}
-\setinterfaceconstant{menu}{menu}
-\setinterfaceconstant{method}{methode}
-\setinterfaceconstant{middle}{milieu}
-\setinterfaceconstant{middlecolor}{couleurmilieu}
-\setinterfaceconstant{middlecommand}{commandemilieu}
-\setinterfaceconstant{middlespeech}{discoursmilieu}
-\setinterfaceconstant{middlestyle}{stylemilieu}
-\setinterfaceconstant{middletext}{textemilieu}
-\setinterfaceconstant{middlewidth}{largeurmilieu}
-\setinterfaceconstant{midsentence}{milieuphrase}
-\setinterfaceconstant{min}{min}
-\setinterfaceconstant{mindepth}{profondeurmin}
-\setinterfaceconstant{minheight}{hauteurmin}
-\setinterfaceconstant{minwidth}{largeurmin}
-\setinterfaceconstant{moffset}{decalagem}
-\setinterfaceconstant{monthconversion}{conversionmois}
-\setinterfaceconstant{more}{plus}
-\setinterfaceconstant{mpdepth}{profondeurmp}
-\setinterfaceconstant{mpheight}{hauteurmp}
-\setinterfaceconstant{mpoffset}{decalagemp}
-\setinterfaceconstant{mpwidth}{largeurmp}
-\setinterfaceconstant{n}{n}
-\setinterfaceconstant{name}{nom}
-\setinterfaceconstant{namesep}{sepnom}
-\setinterfaceconstant{nbottom}{nbas}
-\setinterfaceconstant{nc}{nc}
-\setinterfaceconstant{next}{suivant}
-\setinterfaceconstant{nextleft}{suivantgauche}
-\setinterfaceconstant{nextleftquotation}{citationgauchesuivante}
-\setinterfaceconstant{nextright}{suivantdroite}
-\setinterfaceconstant{nextrightquotation}{citationdroitesuivante}
-\setinterfaceconstant{nl}{nl}
-\setinterfaceconstant{nleft}{ngauche}
-\setinterfaceconstant{nlines}{nlignes}
-\setinterfaceconstant{norm}{norme}
-\setinterfaceconstant{note}{note}
-\setinterfaceconstant{notes}{notes}
-\setinterfaceconstant{nr}{nr}
-\setinterfaceconstant{nright}{ndroite}
-\setinterfaceconstant{ntop}{nhaut}
-\setinterfaceconstant{number}{numero}
-\setinterfaceconstant{numberalign}{alignernumero}
-\setinterfaceconstant{numbercolor}{couleurnumero}
-\setinterfaceconstant{numbercommand}{commandenumero}
-\setinterfaceconstant{numberconversion}{conversionnumero}
-\setinterfaceconstant{numberconversionset}{jeuconversionnumero}
-\setinterfaceconstant{numberdistance}{distancenumero}
-\setinterfaceconstant{numbering}{numérotation}
-\setinterfaceconstant{numberorder}{ordrenumero}
-\setinterfaceconstant{numberprefix}{prefixenumero}
-\setinterfaceconstant{numbersegments}{segmentsnumero}
-\setinterfaceconstant{numberseparator}{separateurnumero}
-\setinterfaceconstant{numberseparatorset}{jeuseparateurnumero}
-\setinterfaceconstant{numberset}{jeunumero}
-\setinterfaceconstant{numberstarter}{demarreurnumero}
-\setinterfaceconstant{numberstopper}{stoppeurnumero}
-\setinterfaceconstant{numberstrut}{entretoisenumero}
-\setinterfaceconstant{numberstyle}{stylenumero}
-\setinterfaceconstant{numberwidth}{largeurnumero}
-\setinterfaceconstant{nx}{nx}
-\setinterfaceconstant{ny}{ny}
-\setinterfaceconstant{object}{objet}
-\setinterfaceconstant{obstruction}{obstruction}
-\setinterfaceconstant{oddmargin}{margeimpaire}
-\setinterfaceconstant{offset}{decalage}
-\setinterfaceconstant{openaction}{actionouvrir}
-\setinterfaceconstant{openpage}{ouvrirpage}
-\setinterfaceconstant{openpageaction}{actionouvrirpage}
-\setinterfaceconstant{openup}{ouverture}
-\setinterfaceconstant{opticalsize}{tailleoptique}
-\setinterfaceconstant{option}{option}
-\setinterfaceconstant{order}{ordre}
-\setinterfaceconstant{orientation}{orientation}
-\setinterfaceconstant{otherstext}{texteautres}
-\setinterfaceconstant{outermargin}{margeexterieure}
-\setinterfaceconstant{overprint}{surimpression}
-\setinterfaceconstant{ownerpassword}{motdepasseproprietaire}
-\setinterfaceconstant{ownnumber}{numeropropre}
-\setinterfaceconstant{packcriterium}{criterepack}
-\setinterfaceconstant{page}{page}
-\setinterfaceconstant{pageboundaries}{frontierespage}
-\setinterfaceconstant{pagecolor}{couleurpage}
-\setinterfaceconstant{pagecolormodel}{modelecouleurpage}
-\setinterfaceconstant{pagecommand}{commandepage}
-\setinterfaceconstant{pageconnector}{connecteurpage}
-\setinterfaceconstant{pageconversion}{conversionpage}
-\setinterfaceconstant{pageconversionset}{jeuconversionpage}
-\setinterfaceconstant{pageleft}{pagegauche}
-\setinterfaceconstant{pagemethod}{methodepage}
-\setinterfaceconstant{pagenumber}{numeropage}
-\setinterfaceconstant{pageprefix}{prefixepage}
-\setinterfaceconstant{pageprefixconnector}{connecteurprefixepage}
-\setinterfaceconstant{pageprefixconversion}{conversionprefixepage}
-\setinterfaceconstant{pageprefixconversionset}{jeuconversionprefixepage}
-\setinterfaceconstant{pageprefixsegments}{segmentsprefixepage}
-\setinterfaceconstant{pageprefixseparatorset}{jeuseparateurprefixepage}
-\setinterfaceconstant{pageprefixset}{jeuprefixepage}
-\setinterfaceconstant{pageprefixstarter}{demarreurprefixepage}
-\setinterfaceconstant{pageprefixstopper}{stoppeurprefixpage}
-\setinterfaceconstant{pageright}{pagedroite}
-\setinterfaceconstant{pagesegments}{segmentspage}
-\setinterfaceconstant{pagesep}{seppage}
-\setinterfaceconstant{pageseparatorset}{jeuseparateurpage}
-\setinterfaceconstant{pageset}{jeupage}
-\setinterfaceconstant{pagestarter}{demarreurpage}
-\setinterfaceconstant{pagestate}{etatpage}
-\setinterfaceconstant{pagestopper}{stoppeurpage}
-\setinterfaceconstant{pagestyle}{stylepage}
-\setinterfaceconstant{palet}{palette}
-\setinterfaceconstant{paper}{papier}
-\setinterfaceconstant{paragraph}{paragraphe}
-\setinterfaceconstant{period}{periode}
-\setinterfaceconstant{place}{placer}
-\setinterfaceconstant{placehead}{placertete}
-\setinterfaceconstant{placeholder}{placeholder}
-\setinterfaceconstant{placestopper}{placerstoppeur}
-\setinterfaceconstant{position}{position}
-\setinterfaceconstant{prefix}{prefixe}
-\setinterfaceconstant{prefixconnector}{connecteurprefixe}
-\setinterfaceconstant{prefixconversion}{conversionprefixe}
-\setinterfaceconstant{prefixconversionset}{jeuconversionprefixe}
-\setinterfaceconstant{prefixsegments}{segmentsprefixe}
-\setinterfaceconstant{prefixseparatorset}{jeuseparateurprefixe}
-\setinterfaceconstant{prefixset}{jeuprefixe}
-\setinterfaceconstant{prefixstarter}{demarreurprefixe}
-\setinterfaceconstant{prefixstopper}{stoppeurprefixe}
-\setinterfaceconstant{preset}{preregler}
-\setinterfaceconstant{preview}{apercu}
-\setinterfaceconstant{previous}{precedent}
-\setinterfaceconstant{previousnumber}{numeroprecedent}
-\setinterfaceconstant{print}{imprimer}
-\setinterfaceconstant{printable}{imprimable}
-\setinterfaceconstant{process}{traiter}
-\setinterfaceconstant{processors}{processors}
-\setinterfaceconstant{profile}{profil}
-\setinterfaceconstant{properties}{proprietes}
-\setinterfaceconstant{pubsep}{seppub}
-\setinterfaceconstant{quotechar}{caracitation}
-\setinterfaceconstant{radius}{rayon}
-\setinterfaceconstant{random}{aleatoire}
-\setinterfaceconstant{range}{gamme}
-\setinterfaceconstant{reduction}{reduction}
-\setinterfaceconstant{ref}{ref}
-\setinterfaceconstant{refcommand}{commanderef}
-\setinterfaceconstant{reference}{reference}
-\setinterfaceconstant{referencemethod}{methodereference}
-\setinterfaceconstant{referenceprefix}{prefixereference}
-\setinterfaceconstant{referencetext}{referencetext}
-\setinterfaceconstant{referencing}{referencement}
-\setinterfaceconstant{region}{region}
-\setinterfaceconstant{regionin}{regiondedans}
-\setinterfaceconstant{regionout}{regiondehors}
-\setinterfaceconstant{register}{registre}
-\setinterfaceconstant{regularfeatures}{fonctionnalitesordinaires}
-\setinterfaceconstant{regularfont}{policereordinaire}
-\setinterfaceconstant{renderingsetup}{configurationrendu}
-\setinterfaceconstant{repeat}{repeter}
-\setinterfaceconstant{reset}{raz}
-\setinterfaceconstant{resetnumber}{raznumero}
-\setinterfaceconstant{resolution}{resolution}
-\setinterfaceconstant{resources}{ressources}
-\setinterfaceconstant{reverse}{inverser}
-\setinterfaceconstant{right}{droite}
-\setinterfaceconstant{rightchars}{caracteresdroite}
-\setinterfaceconstant{rightcolor}{couleurdroite}
-\setinterfaceconstant{rightcompoundhyphen}{traitdunioncomposedroite}
-\setinterfaceconstant{rightedge}{borddroit}
-\setinterfaceconstant{rightedgedistance}{distanceborddroit}
-\setinterfaceconstant{rightframe}{cadredroite}
-\setinterfaceconstant{righthyphen}{traitduniondroite}
-\setinterfaceconstant{rightmargin}{margedroite}
-\setinterfaceconstant{rightmargindistance}{distancemargedroite}
-\setinterfaceconstant{rightoffset}{decalagedroite}
-\setinterfaceconstant{rightquotation}{citationdroite}
-\setinterfaceconstant{rightquote}{citerdroite}
-\setinterfaceconstant{rightsample}{echantillondroite}
-\setinterfaceconstant{rightsentence}{phrasedroite}
-\setinterfaceconstant{rightspeech}{discoursdroite}
-\setinterfaceconstant{rightstyle}{styledroit}
-\setinterfaceconstant{rightsubsentence}{sousphrasedroite}
-\setinterfaceconstant{righttext}{textedroite}
-\setinterfaceconstant{rightwidth}{largeurdroite}
-\setinterfaceconstant{rightwords}{motsdroite}
-\setinterfaceconstant{roffset}{decalager}
-\setinterfaceconstant{rotation}{rotation}
-\setinterfaceconstant{rule}{trait}
-\setinterfaceconstant{rulecolor}{couleurtrait}
-\setinterfaceconstant{rulecommand}{commandetrait}
-\setinterfaceconstant{rulethickness}{epaisseurtrait}
-\setinterfaceconstant{samepage}{memepage}
-\setinterfaceconstant{sample}{echantillon}
-\setinterfaceconstant{samplesize}{tailleechantillon}
-\setinterfaceconstant{saveinlist}{enregistrerdansliste}
-\setinterfaceconstant{scale}{echelle}
-\setinterfaceconstant{scope}{perimetre}
-\setinterfaceconstant{screen}{ecran}
-\setinterfaceconstant{section}{section}
-\setinterfaceconstant{sectionblock}{blocsection}
-\setinterfaceconstant{sectionconversion}{conversionsection}
-\setinterfaceconstant{sectionconversionset}{jeuconversionsection}
-\setinterfaceconstant{sectionnumber}{numerosection}
-\setinterfaceconstant{sectionresetset}{jeurazsection}
-\setinterfaceconstant{sectionsegments}{segmentssection}
-\setinterfaceconstant{sectionseparatorset}{jeuseparateursection}
-\setinterfaceconstant{sectionset}{jeusection}
-\setinterfaceconstant{sectionstarter}{demarreursection}
-\setinterfaceconstant{sectionstopper}{stoppeursection}
-\setinterfaceconstant{separator}{separateur}
-\setinterfaceconstant{separatorcolor}{couleurseparateur}
-\setinterfaceconstant{separatorstyle}{styleseparateur}
-\setinterfaceconstant{set}{regler}
-\setinterfaceconstant{setups}{setups}
-\setinterfaceconstant{shrink}{retrecir}
-\setinterfaceconstant{side}{cote}
-\setinterfaceconstant{sidealign}{alignercote}
-\setinterfaceconstant{sidemethod}{methodecote}
-\setinterfaceconstant{sidespaceafter}{espacelatéralaprès}
-\setinterfaceconstant{sidespacebefore}{espacelateralavant}
-\setinterfaceconstant{sidespaceinbetween}{espacelateralentre}
-\setinterfaceconstant{sidethreshold}{seuilcote}
-\setinterfaceconstant{sign}{signe}
-\setinterfaceconstant{simplecommand}{commandesimple}
-\setinterfaceconstant{size}{taille}
-\setinterfaceconstant{slantedfeatures}{fonctionnalitesincline}
-\setinterfaceconstant{slantedfont}{policeinclinee}
-\setinterfaceconstant{small}{petit}
-\setinterfaceconstant{smallcapsfeatures}{fonctionnalitespetitescaps}
-\setinterfaceconstant{smallcapsfont}{policepetitescaps}
-\setinterfaceconstant{solution}{solution}
-\setinterfaceconstant{sort}{trier}
-\setinterfaceconstant{sorttype}{modetri}
-\setinterfaceconstant{source}{source}
-\setinterfaceconstant{space}{espace}
-\setinterfaceconstant{spaceafter}{espaceaprès}
-\setinterfaceconstant{spaceafterside}{espaceaprèscoté}
-\setinterfaceconstant{spacebefore}{espaceavant}
-\setinterfaceconstant{spacebeforeside}{espaceavantcote}
-\setinterfaceconstant{spaceinbetween}{espaceentre}
-\setinterfaceconstant{spacing}{espacement}
-\setinterfaceconstant{specification}{specification}
-\setinterfaceconstant{split}{partager}
-\setinterfaceconstant{splitcolor}{couleurpartage}
-\setinterfaceconstant{splitmethod}{methodepartage}
-\setinterfaceconstant{splitoffset}{decalagepartage}
-\setinterfaceconstant{spot}{tondirect}
-\setinterfaceconstant{stack}{pile}
-\setinterfaceconstant{stackname}{nompile}
-\setinterfaceconstant{start}{début}
-\setinterfaceconstant{starter}{demarreur}
-\setinterfaceconstant{state}{état}
-\setinterfaceconstant{step}{etape}
-\setinterfaceconstant{stop}{fin}
-\setinterfaceconstant{stopper}{stoppeur}
-\setinterfaceconstant{stretch}{etirer}
-\setinterfaceconstant{strip}{bande}
-\setinterfaceconstant{strut}{entretoise}
-\setinterfaceconstant{style}{style}
-\setinterfaceconstant{stylealternative}{variantestyle}
-\setinterfaceconstant{sub}{sous}
-\setinterfaceconstant{subtitle}{soustitre}
-\setinterfaceconstant{suffix}{suffixe}
-\setinterfaceconstant{suffixseparator}{separateursuffixe}
-\setinterfaceconstant{suffixstopper}{stoppeursuffixe}
-\setinterfaceconstant{surnamefirstnamesep}{sepnomfamilleprenom}
-\setinterfaceconstant{surnameinitialsep}{sepnomfamilleinitial}
-\setinterfaceconstant{surnamesep}{seprenom}
-\setinterfaceconstant{svgstyle}{stylesvg}
-\setinterfaceconstant{sx}{sx}
-\setinterfaceconstant{sy}{sy}
-\setinterfaceconstant{symalign}{alignersym}
-\setinterfaceconstant{symbol}{symbole}
-\setinterfaceconstant{symbolcommand}{commandesymbole}
-\setinterfaceconstant{symbolset}{jeusymbole}
-\setinterfaceconstant{symcolor}{couleursym}
-\setinterfaceconstant{symstyle}{stylesym}
-\setinterfaceconstant{synonym}{synonyme}
-\setinterfaceconstant{synonymcolor}{couleursynonyme}
-\setinterfaceconstant{synonymcommand}{commandesynonyme}
-\setinterfaceconstant{synonymstyle}{stylesynonyme}
-\setinterfaceconstant{tab}{tab}
-\setinterfaceconstant{text}{texte}
-\setinterfaceconstant{textalign}{alignertexte}
-\setinterfaceconstant{textcolor}{couleurtexte}
-\setinterfaceconstant{textcommand}{commandetexte}
-\setinterfaceconstant{textdistance}{distancetexte}
-\setinterfaceconstant{textheight}{hauteurtexte}
-\setinterfaceconstant{textlayer}{calquetexte}
-\setinterfaceconstant{textmargin}{margetexte}
-\setinterfaceconstant{textmethod}{methodetexte}
-\setinterfaceconstant{textseparator}{separateurtexte}
-\setinterfaceconstant{textsize}{tailletexte}
-\setinterfaceconstant{textstate}{etattexte}
-\setinterfaceconstant{textstyle}{styletexte}
-\setinterfaceconstant{textwidth}{largeurtexte}
-\setinterfaceconstant{threshold}{seuil}
-\setinterfaceconstant{time}{temps}
-\setinterfaceconstant{title}{titre}
-\setinterfaceconstant{titlecolor}{couleurtitre}
-\setinterfaceconstant{titlecommand}{commandetitre}
-\setinterfaceconstant{titledistance}{distancetitre}
-\setinterfaceconstant{titleleft}{gauchetitre}
-\setinterfaceconstant{titleright}{droitetitre}
-\setinterfaceconstant{titlestrut}{entretoisetitre}
-\setinterfaceconstant{titlestyle}{styletitre}
-\setinterfaceconstant{to}{vers}
-\setinterfaceconstant{toffset}{decalaget}
-\setinterfaceconstant{tolerance}{tolerance}
-\setinterfaceconstant{top}{haut}
-\setinterfaceconstant{topcommand}{commandehaut}
-\setinterfaceconstant{topdistance}{distancehaut}
-\setinterfaceconstant{topframe}{cadrehaut}
-\setinterfaceconstant{topoffset}{decalagehaut}
-\setinterfaceconstant{topspace}{espacehaut}
-\setinterfaceconstant{topstate}{etathaut}
-\setinterfaceconstant{totalnumber}{nombretotal}
-\setinterfaceconstant{transform}{transformer}
-\setinterfaceconstant{translate}{traduire}
-\setinterfaceconstant{trimoffset}{decalagecoupe}
-\setinterfaceconstant{type}{transcrire}
-\setinterfaceconstant{unit}{unite}
-\setinterfaceconstant{unknownreference}{referenceinconnue}
-\setinterfaceconstant{up}{enhaut}
-\setinterfaceconstant{urlalternative}{varianteurl}
-\setinterfaceconstant{urlspace}{espaceurl}
-\setinterfaceconstant{userpassword}{motdepasseutilisateur}
-\setinterfaceconstant{validate}{valider}
-\setinterfaceconstant{values}{valeurs}
-\setinterfaceconstant{vcommand}{commandev}
-\setinterfaceconstant{vcompact}{compactv}
-\setinterfaceconstant{vector}{vecteur}
-\setinterfaceconstant{veroffset}{decalagever}
-\setinterfaceconstant{vertical}{vertical}
-\setinterfaceconstant{vfactor}{facteurv}
-\setinterfaceconstant{vfil}{remplissagev}
-\setinterfaceconstant{viewerprefix}{prefixevisualisateur}
-\setinterfaceconstant{voffset}{decalagev}
-\setinterfaceconstant{vonsep}{sepvon}
-\setinterfaceconstant{way}{maniere}
-\setinterfaceconstant{wfactor}{facteurw}
-\setinterfaceconstant{white}{blanc}
-\setinterfaceconstant{width}{largeur}
-\setinterfaceconstant{words}{mots}
-\setinterfaceconstant{xanchor}{ancrex}
-\setinterfaceconstant{xfactor}{facteurx}
-\setinterfaceconstant{xhtml}{xhtml}
-\setinterfaceconstant{xmax}{xmax}
-\setinterfaceconstant{xmlsetup}{configurationxml}
-\setinterfaceconstant{xoffset}{decalagex}
-\setinterfaceconstant{xscale}{echellex}
-\setinterfaceconstant{xstep}{etapex}
-\setinterfaceconstant{yanchor}{ancrey}
-\setinterfaceconstant{yfactor}{facteury}
-\setinterfaceconstant{ymax}{ymax}
-\setinterfaceconstant{yoffset}{decalagey}
-\setinterfaceconstant{yscale}{echelley}
-\setinterfaceconstant{ystep}{etapey}
-% definitions for interface elements for language fr
-%
-\setinterfaceelement{answerlines}{lignesreponse}
-\setinterfaceelement{answerspace}{espacereponse}
-\setinterfaceelement{begin}{commencer}
-\setinterfaceelement{complete}{complet}
-\setinterfaceelement{coupled}{couple}
-\setinterfaceelement{currentlocal}{localcourant}
-\setinterfaceelement{end}{terminer}
-\setinterfaceelement{endsetup}{}
-\setinterfaceelement{get}{obtenir}
-\setinterfaceelement{increment}{incrementer}
-\setinterfaceelement{list}{liste}
-\setinterfaceelement{listof}{listede}
-\setinterfaceelement{load}{charger}
-\setinterfaceelement{local}{local}
-\setinterfaceelement{makeup}{composition}
-\setinterfaceelement{next}{suivant}
-\setinterfaceelement{place}{placer}
-\setinterfaceelement{previous}{precedent}
-\setinterfaceelement{previouslocal}{localprecedent}
-\setinterfaceelement{reserve}{reserver}
-\setinterfaceelement{see}{voir}
-\setinterfaceelement{setup}{configurer}
-\setinterfaceelement{start}{début}
-\setinterfaceelement{stop}{fin}
-\setinterfaceelement{text}{texte}
-\setinterfaceelement{type}{transcrire}
-% definitions for interface commands for language fr
-%
-\setinterfacecommand{Character}{Caractere}
-\setinterfacecommand{Characters}{Caracteres}
-\setinterfacecommand{MONTH}{MOIS}
-\setinterfacecommand{Numbers}{Numeros}
-\setinterfacecommand{Romannumerals}{Chiffresromains}
-\setinterfacecommand{SmallCapped}{PetitesCap}
-\setinterfacecommand{SmallCaps}{PetitesCaps}
-\setinterfacecommand{WEEKDAY}{JOURSEMAINE}
-\setinterfacecommand{WORD}{MOT}
-\setinterfacecommand{WORDS}{MOTS}
-\setinterfacecommand{Word}{Mot}
-\setinterfacecommand{Words}{Mots}
-\setinterfacecommand{about}{apropos}
-\setinterfacecommand{adaptfontfeature}{adapterfonctionnalitepolice}
-\setinterfacecommand{adaptlayout}{adaptermiseenpage}
-\setinterfacecommand{addfeature}{ajouterfonctionnalite}
-\setinterfacecommand{alignbottom}{alignerbas}
-\setinterfacecommand{aligned}{aligne}
-\setinterfacecommand{alignedbox}{boitealignee}
-\setinterfacecommand{alignedline}{lignealignee}
-\setinterfacecommand{alignhere}{alignerici}
-\setinterfacecommand{alignment}{alignement}
-\setinterfacecommand{alignmentcharacter}{caracterealignement}
-\setinterfacecommand{applytocharacters}{appliquerauxcaracteres}
-\setinterfacecommand{applytofirstcharacter}{appliqueraupremiercaractere}
-\setinterfacecommand{arg}{arg}
-\setinterfacecommand{at}{en}
-\setinterfacecommand{atleftmargin}{enmargegauche}
-\setinterfacecommand{atpage}{enpage}
-\setinterfacecommand{atrightmargin}{enmargedroite}
-\setinterfacecommand{background}{arriereplan}
-\setinterfacecommand{backspace}{retourarrière}
-\setinterfacecommand{blackrule}{traitepais}
-\setinterfacecommand{blackrules}{traitsepais}
-\setinterfacecommand{blank}{vierge}
-\setinterfacecommand{bookmark}{marquepage}
-\setinterfacecommand{bottombox}{boitebas}
-\setinterfacecommand{bottomdistance}{distancebas}
-\setinterfacecommand{bottomheight}{hauteurbas}
-\setinterfacecommand{bottomleftbox}{basgaucheboite}
-\setinterfacecommand{bottomrightbox}{boitebasdroite}
-\setinterfacecommand{bottomspace}{espacebas}
-\setinterfacecommand{buildtextbottomdot}{construirepointtextebas}
-\setinterfacecommand{but}{mais}
-\setinterfacecommand{button}{bouton}
-\setinterfacecommand{bypassblocks}{eviteblocs}
-\setinterfacecommand{character}{caractere}
-\setinterfacecommand{characters}{caracteres}
-\setinterfacecommand{chem}{chem}
-\setinterfacecommand{clip}{decouper}
-\setinterfacecommand{clonefield}{clonerchamp}
-\setinterfacecommand{color}{couleur}
-\setinterfacecommand{colorbar}{barrecouleur}
-\setinterfacecommand{colorvalue}{valeurcouleur}
-\setinterfacecommand{column}{colonne}
-\setinterfacecommand{comparecolorgroup}{comparergroupecouleur}
-\setinterfacecommand{comparepalet}{comparerpalette}
-\setinterfacecommand{completepagenumber}{numeropagecomplet}
-\setinterfacecommand{completeregister}{registrecomplet}
-\setinterfacecommand{component}{composant}
-\setinterfacecommand{convertnumber}{convertirnumero}
-\setinterfacecommand{copyfield}{copierchamp}
-\setinterfacecommand{correctwhitespace}{corrigerespaceblanc}
-\setinterfacecommand{coupledocument}{coupledocument}
-\setinterfacecommand{couplemarking}{couplemarquage}
-\setinterfacecommand{couplepage}{couplepage}
-\setinterfacecommand{couplepaper}{couplepapier}
-\setinterfacecommand{coupleregister}{coupleregistre}
-\setinterfacecommand{crlf}{crlf}
-\setinterfacecommand{currentdate}{datecourante}
-\setinterfacecommand{currentheadnumber}{numerotetecourante}
-\setinterfacecommand{cutspace}{espacecoupe}
-\setinterfacecommand{date}{date}
-\setinterfacecommand{decouplemarking}{decouplemarquage}
-\setinterfacecommand{decrementnumber}{decrementenumero}
-\setinterfacecommand{define}{définir}
-\setinterfacecommand{defineaccent}{définiraccent}
-\setinterfacecommand{defineblank}{définirvierge}
-\setinterfacecommand{defineblock}{définirbloc}
-\setinterfacecommand{definebodyfont}{définirpolicedecorps}
-\setinterfacecommand{definebodyfontenvironment}{définirenvironnementpolicedecorps}
-\setinterfacecommand{definebodyfontswitch}{définircommutateurpolicedecorps}
-\setinterfacecommand{definebuffer}{définirtampon}
-\setinterfacecommand{definecharacter}{définircaractere}
-\setinterfacecommand{definecharacterkerning}{définirapprochecaracteres}
-\setinterfacecommand{definecharacterspacing}{définirespacementcaracteres}
-\setinterfacecommand{definecolor}{définircouleur}
-\setinterfacecommand{definecolorgroup}{définirgroupecouleur}
-\setinterfacecommand{definecolumnbreak}{définirsautdecolonne}
-\setinterfacecommand{definecolumnset}{définirjeucolonnes}
-\setinterfacecommand{definecombination}{définircombinaison}
-\setinterfacecommand{definecombinedlist}{définirlistecombinee}
-\setinterfacecommand{definecommand}{définircommande}
-\setinterfacecommand{defineconversion}{définirconversion}
-\setinterfacecommand{definedescription}{définirdescription}
-\setinterfacecommand{definedfont}{policedefinie}
-\setinterfacecommand{defineenumeration}{définirénumération}
-\setinterfacecommand{definefallbackfamily}{définirfamillederepli}
-\setinterfacecommand{definefield}{définirchamp}
-\setinterfacecommand{definefieldstack}{définirpilechamp}
-\setinterfacecommand{definefiguresymbol}{définirfiguresymbole}
-\setinterfacecommand{definefilefallback}{définirfichierderepli}
-\setinterfacecommand{definefirstline}{définirpremiereligne}
-\setinterfacecommand{definefloat}{définirflottant}
-\setinterfacecommand{definefont}{définirpolice}
-\setinterfacecommand{definefontalternative}{définirvariantepolice}
-\setinterfacecommand{definefontfallback}{définirpolicederepli}
-\setinterfacecommand{definefontfamily}{définirfamillepolice}
-\setinterfacecommand{definefontfamilypreset}{définirprereglagefamillepolice}
-\setinterfacecommand{definefontfeature}{définirfonctionnalitepolice}
-\setinterfacecommand{definefontfile}{définirfichierpolice}
-\setinterfacecommand{definefontsize}{définirtaillepolice}
-\setinterfacecommand{definefontsolution}{définirsolutionpolice}
-\setinterfacecommand{definefontstyle}{définirstylepolice}
-\setinterfacecommand{definefontsynonym}{définirsynonymepolice}
-\setinterfacecommand{defineframed}{définirencadre}
-\setinterfacecommand{defineframedtext}{définirtexteencadre}
-\setinterfacecommand{definefrozenfont}{définirpolicegelee}
-\setinterfacecommand{definehbox}{définirhbox}
-\setinterfacecommand{definehead}{définirtete}
-\setinterfacecommand{definehyphenationfeatures}{définirfonctionnalitescesure}
-\setinterfacecommand{defineindentedtext}{définirtexteindente}
-\setinterfacecommand{defineinmargin}{définirdansmarge}
-\setinterfacecommand{defineinteractionmenu}{définirmenuinteraction}
-\setinterfacecommand{defineitemgroup}{définirgroupedéléments}
-\setinterfacecommand{defineitems}{définiréléments}
-\setinterfacecommand{definelabel}{définiretiquette}
-\setinterfacecommand{definelayer}{définircalque}
-\setinterfacecommand{definelayout}{définirmiseenpage}
-\setinterfacecommand{definelinenote}{définirnotedeligne}
-\setinterfacecommand{definelist}{définirliste}
-\setinterfacecommand{definelogo}{définirlogo}
-\setinterfacecommand{definemainfield}{définirchampprincipal}
-\setinterfacecommand{definemakeup}{définircomposition}
-\setinterfacecommand{definemarking}{définirmarquage}
-\setinterfacecommand{definemathalignment}{définiralignementmath}
-\setinterfacecommand{definemode}{définirmode}
-\setinterfacecommand{definenamedcolor}{définircouleurnommee}
-\setinterfacecommand{definenote}{définirnote}
-\setinterfacecommand{defineoutput}{définirsortie}
-\setinterfacecommand{defineoverlay}{définirsuperposition}
-\setinterfacecommand{definepagebreak}{définirsautdepage}
-\setinterfacecommand{definepalet}{définirpalette}
-\setinterfacecommand{definepapersize}{définirtaillepapier}
-\setinterfacecommand{defineparagraphs}{définirparagraphes}
-\setinterfacecommand{defineperiodkerning}{reglerapprochepoint}
-\setinterfacecommand{defineplacement}{définirplacement}
-\setinterfacecommand{defineprofile}{définirprofil}
-\setinterfacecommand{defineprogram}{définirprogramme}
-\setinterfacecommand{definerawfont}{définirpolicebrute}
-\setinterfacecommand{definereference}{définirreference}
-\setinterfacecommand{definereferenceformat}{définirformatrereference}
-\setinterfacecommand{definereferencelist}{définirlistereference}
-\setinterfacecommand{defineregister}{définirregistre}
-\setinterfacecommand{definerule}{définirtrait}
-\setinterfacecommand{definesection}{définirsection}
-\setinterfacecommand{definesectionblock}{définirblocsection}
-\setinterfacecommand{definesorting}{définirtri}
-\setinterfacecommand{definestartstop}{définirdébutfin}
-\setinterfacecommand{definestyle}{définirstyle}
-\setinterfacecommand{definesubfield}{définirsouschamp}
-\setinterfacecommand{definesymbol}{définirsymbole}
-\setinterfacecommand{definesynonyms}{définirsynonymes}
-\setinterfacecommand{definetabletemplate}{définirgabarittable}
-\setinterfacecommand{definetabulate}{définirtabulation}
-\setinterfacecommand{definetext}{définirtexte}
-\setinterfacecommand{definetextbackground}{définirtextearriereplan}
-\setinterfacecommand{definetextnote}{définirnotetexte}
-\setinterfacecommand{definetextposition}{définirpositiontexte}
-\setinterfacecommand{definetextvariable}{définirvariabletexte}
-\setinterfacecommand{definetype}{définirtranscrire}
-\setinterfacecommand{definetyping}{définirtranscription}
-\setinterfacecommand{defineversion}{définirversion}
-\setinterfacecommand{depthspanningtext}{jambagetextecouvrant}
-\setinterfacecommand{determineheadnumber}{determinernumerotete}
-\setinterfacecommand{determinelistcharacteristics}{determinercaracteristiquesliste}
-\setinterfacecommand{determineregistercharacteristics}{determinercaracteristiquesregistre}
-\setinterfacecommand{dimension}{dimension}
-\setinterfacecommand{disableinteractionmenu}{desactivermenuinteraction}
-\setinterfacecommand{disablemode}{desactivermode}
-\setinterfacecommand{doaddfeature}{faireajouterfonctionnalite}
-\setinterfacecommand{domicile}{domicile}
-\setinterfacecommand{dontconvertfont}{nepasconvertirpolice}
-\setinterfacecommand{donttest}{sanstester}
-\setinterfacecommand{edgedistance}{distancebord}
-\setinterfacecommand{edgewidth}{largeurbord}
-\setinterfacecommand{emphasisboldface}{policegrasaccentue}
-\setinterfacecommand{emptylines}{lignesvide}
-\setinterfacecommand{enablemode}{activermode}
-\setinterfacecommand{environment}{environnement}
-\setinterfacecommand{externalfigure}{figureexterne}
-\setinterfacecommand{fact}{fait}
-\setinterfacecommand{fastswitchtobodyfont}{passerrapideapolicedecorps}
-\setinterfacecommand{feature}{fonctionnalite}
-\setinterfacecommand{field}{champ}
-\setinterfacecommand{fieldstack}{pilechamp}
-\setinterfacecommand{fillinfield}{champarenseigner}
-\setinterfacecommand{fillinline}{lignearenseigner}
-\setinterfacecommand{fillinrules}{traitsarenseigner}
-\setinterfacecommand{fillintext}{textearenseigner}
-\setinterfacecommand{firstcharacter}{premiercaractere}
-\setinterfacecommand{fitfield}{adapterchamp}
-\setinterfacecommand{fittopbaselinegrid}{adaptergrillehautlignedebase}
-\setinterfacecommand{fixedspace}{espacefixe}
-\setinterfacecommand{fixedspaces}{espacesfixes}
-\setinterfacecommand{flushnotes}{vidernotes}
-\setinterfacecommand{followprofile}{suivreprofile}
-\setinterfacecommand{followprofileversion}{suivreversionprofil}
-\setinterfacecommand{followversion}{suivreversion}
-\setinterfacecommand{footerdistance}{distancepdp}
-\setinterfacecommand{footerheight}{hauteurpdp}
-\setinterfacecommand{footnote}{notebdp}
-\setinterfacecommand{footnotetext}{textenotebdp}
-\setinterfacecommand{forceblocks}{forcerblocs}
-\setinterfacecommand{forcecharacterstripping}{forcerdemontagecaracteres}
-\setinterfacecommand{formulanumber}{numeroformule}
-\setinterfacecommand{fraction}{fraction}
-\setinterfacecommand{framed}{encadre}
-\setinterfacecommand{from}{de}
-\setinterfacecommand{fromlinenote}{denotedeligne}
-\setinterfacecommand{getbuffer}{obtenirtampon}
-\setinterfacecommand{getfirstcharacter}{obtenirpremiercaractere}
-\setinterfacecommand{getmarking}{obtenirmarquage}
-\setinterfacecommand{getnumber}{obtenirnumero}
-\setinterfacecommand{globaldisablemode}{desactivermodeglobal}
-\setinterfacecommand{globalenablemode}{activermodeglobal}
-\setinterfacecommand{globalpreventmode}{empechermodeglobal}
-\setinterfacecommand{godown}{allerenbas}
-\setinterfacecommand{goto}{allera}
-\setinterfacecommand{gotobox}{alleraboite}
-\setinterfacecommand{gotopage}{allerapage}
-\setinterfacecommand{graycolor}{couleurgrise}
-\setinterfacecommand{greyvalue}{valeurgris}
-\setinterfacecommand{grid}{grille}
-\setinterfacecommand{hairline}{ligneavectrait}
-\setinterfacecommand{head}{tête}
-\setinterfacecommand{headerdistance}{distanceentête}
-\setinterfacecommand{headerheight}{hauteurentête}
-\setinterfacecommand{headlevel}{niveautete}
-\setinterfacecommand{headnumber}{numerotete}
-\setinterfacecommand{headsym}{symtete}
-\setinterfacecommand{headtext}{textetete}
-\setinterfacecommand{heightspanningtext}{hauteurtextecouvrant}
-\setinterfacecommand{hideblocks}{cacherblocs}
-\setinterfacecommand{high}{exposant}
-\setinterfacecommand{hl}{lh}
-\setinterfacecommand{immediatebetweenlist}{immediatemententreliste}
-\setinterfacecommand{immediatetolist}{immediatementalister}
-\setinterfacecommand{in}{dans}
-\setinterfacecommand{incrementnumber}{incrementernumero}
-\setinterfacecommand{indenting}{indentation}
-\setinterfacecommand{inframed}{dansencadre}
-\setinterfacecommand{infull}{encomplet}
-\setinterfacecommand{ininner}{dansinterieur}
-\setinterfacecommand{inleft}{dansgauche}
-\setinterfacecommand{inleftedge}{dansbordgauche}
-\setinterfacecommand{inleftmargin}{dansmargegauche}
-\setinterfacecommand{inline}{enligne}
-\setinterfacecommand{inmargin}{dansmarge}
-\setinterfacecommand{inmframed}{dansencadremath}
-\setinterfacecommand{inneredgedistance}{distancebordinterieur}
-\setinterfacecommand{inneredgewidth}{largeurbordinterieur}
-\setinterfacecommand{innermargindistance}{distancemargeinterieure}
-\setinterfacecommand{innermarginwidth}{largeurmargeinterieure}
-\setinterfacecommand{inothermargin}{dansautremarge}
-\setinterfacecommand{inouter}{dansexterieur}
-\setinterfacecommand{inright}{dansdroite}
-\setinterfacecommand{inrightedge}{dansborddroit}
-\setinterfacecommand{inrightmargin}{dansmargedroite}
-\setinterfacecommand{installlanguage}{installerlangue}
-\setinterfacecommand{interactionbar}{barreinteraction}
-\setinterfacecommand{interactionbuttons}{boutonsinteraction}
-\setinterfacecommand{interactionmenu}{menuinteraction}
-\setinterfacecommand{item}{élément}
-\setinterfacecommand{itemgroup}{groupedéléments}
-\setinterfacecommand{items}{éléments}
-\setinterfacecommand{itemtag}{étiquettedélément}
-\setinterfacecommand{its}{els}
-\setinterfacecommand{keepblocks}{conserverblocs}
-\setinterfacecommand{kerncharacters}{approchercaracteres}
-\setinterfacecommand{label}{etiquette}
-\setinterfacecommand{labels}{etiquettes}
-\setinterfacecommand{labeltext}{texteetiquette}
-\setinterfacecommand{language}{langue}
-\setinterfacecommand{languageCharacters}{Caractereslangue}
-\setinterfacecommand{languagecharacters}{caractereslangue}
-\setinterfacecommand{leftaligned}{aligneagauche}
-\setinterfacecommand{leftbottombox}{boitebasgauche}
-\setinterfacecommand{leftedgedistance}{distancebordgauche}
-\setinterfacecommand{leftedgewidth}{largeurbordgauche}
-\setinterfacecommand{leftline}{lignegauche}
-\setinterfacecommand{leftmargindistance}{distancemargegauche}
-\setinterfacecommand{leftmarginwidth}{largeurmargegauche}
-\setinterfacecommand{leg}{leg}
-\setinterfacecommand{linecorrection}{correctionligne}
-\setinterfacecommand{linenote}{notedeligne}
-\setinterfacecommand{linespanningtext}{largeurtextecouvrant}
-\setinterfacecommand{linewidth}{largeurligne}
-\setinterfacecommand{listheight}{hauteurliste}
-\setinterfacecommand{listlength}{longueurtexte}
-\setinterfacecommand{listsymbol}{symboleliste}
-\setinterfacecommand{listwidth}{largeurliste}
-\setinterfacecommand{loadfontgoodies}{charerfriandisespolice}
-\setinterfacecommand{localfootnotes}{notesbdplocales}
-\setinterfacecommand{localnotes}{noteslocales}
-\setinterfacecommand{logfields}{logchamps}
-\setinterfacecommand{lohi}{inex}
-\setinterfacecommand{low}{indice}
-\setinterfacecommand{macroname}{nommacro}
-\setinterfacecommand{mainlanguage}{langueprincipale}
-\setinterfacecommand{makeupheight}{hauteurcomposition}
-\setinterfacecommand{makeupwidth}{largeurcomposition}
-\setinterfacecommand{mar}{rem}
-\setinterfacecommand{marginblock}{blocmarginal}
-\setinterfacecommand{margindistance}{distancemarge}
-\setinterfacecommand{marginrule}{traitmarge}
-\setinterfacecommand{margintext}{textemarge}
-\setinterfacecommand{margintitle}{titremarge}
-\setinterfacecommand{marginwidth}{largeurmarge}
-\setinterfacecommand{marginword}{motmarge}
-\setinterfacecommand{marking}{marquage}
-\setinterfacecommand{markversion}{marquerversion}
-\setinterfacecommand{mathematics}{mathematics}
-\setinterfacecommand{menubutton}{boutonmenu}
-\setinterfacecommand{mframed}{encadremath}
-\setinterfacecommand{midaligned}{aligneaumilieu}
-\setinterfacecommand{mirror}{refleter}
-\setinterfacecommand{month}{mois}
-\setinterfacecommand{moveformula}{deplacerformule}
-\setinterfacecommand{moveongrid}{deplacersurgrille}
-\setinterfacecommand{movesidefloat}{deplacerflottantcote}
-\setinterfacecommand{navigating}{navigation}
-\setinterfacecommand{nodimension}{sansdimension}
-\setinterfacecommand{noheaderandfooterlines}{sansentêtenipdp}
-\setinterfacecommand{noindenting}{sansindentation}
-\setinterfacecommand{noitem}{sansélément}
-\setinterfacecommand{nolist}{sansliste}
-\setinterfacecommand{nomarking}{sansmarquage}
-\setinterfacecommand{nomoreblocks}{sansplusdeblocs}
-\setinterfacecommand{nomorefiles}{sansplusdefichiers}
-\setinterfacecommand{nop}{san}
-\setinterfacecommand{nospace}{sansespace}
-\setinterfacecommand{note}{note}
-\setinterfacecommand{notesymbol}{symbolenote}
-\setinterfacecommand{notopandbottomlines}{sansligneshautetbas}
-\setinterfacecommand{notsmallcapped}{paspetitescaps}
-\setinterfacecommand{nowhitespace}{sansespaceblanc}
-\setinterfacecommand{numberofsubpages}{nombredesouspages}
-\setinterfacecommand{numbers}{numeros}
-\setinterfacecommand{outeredgedistance}{distancebordexterieur}
-\setinterfacecommand{outeredgewidth}{largeurbordexterieur}
-\setinterfacecommand{outermargindistance}{distancemargeexterieure}
-\setinterfacecommand{outermarginwidth}{largeurmargeexterieure}
-\setinterfacecommand{packed}{sansespaceentreitem}
-\setinterfacecommand{page}{page}
-\setinterfacecommand{pagebreak}{sautdepage}
-\setinterfacecommand{pagedepth}{profondeurpage}
-\setinterfacecommand{pagenumber}{numeropage}
-\setinterfacecommand{pageoffset}{decalagepage}
-\setinterfacecommand{pagereference}{referencepage}
-\setinterfacecommand{paperheight}{hauteurpapier}
-\setinterfacecommand{paperwidth}{largeurpapier}
-\setinterfacecommand{periods}{periodes}
-\setinterfacecommand{placebookmarks}{placermarquepages}
-\setinterfacecommand{placecombinedlist}{placerlistecombinee}
-\setinterfacecommand{placefloat}{placerflottant}
-\setinterfacecommand{placefootnotes}{placernotesbdp}
-\setinterfacecommand{placeformula}{placerformule}
-\setinterfacecommand{placeheadnumber}{placernumerotete}
-\setinterfacecommand{placeheadtext}{placertextetete}
-\setinterfacecommand{placelegend}{placerlegende}
-\setinterfacecommand{placelist}{placerliste}
-\setinterfacecommand{placelistofsynonyms}{placerlistedesynonymes}
-\setinterfacecommand{placelocalfootnotes}{placernotesbdplocales}
-\setinterfacecommand{placelocalnotes}{placernoteslocales}
-\setinterfacecommand{placelogos}{placerlogo}
-\setinterfacecommand{placenamedfloat}{placerflottantnomme}
-\setinterfacecommand{placenotes}{placernotes}
-\setinterfacecommand{placeongrid}{placersurgrille}
-\setinterfacecommand{placeontopofeachother}{placerlunaudessusdelautre}
-\setinterfacecommand{placepagenumber}{placernumeropage}
-\setinterfacecommand{placerawlist}{placerlistebrute}
-\setinterfacecommand{placereferencelist}{placerlistereference}
-\setinterfacecommand{placeregister}{placerregistre}
-\setinterfacecommand{placerule}{placertrait}
-\setinterfacecommand{placesidebyside}{placercoteacote}
-\setinterfacecommand{placesubformula}{placersousformule}
-\setinterfacecommand{placetextvariable}{placervariabletexte}
-\setinterfacecommand{position}{position}
-\setinterfacecommand{positiontext}{texteposition}
-\setinterfacecommand{postponenotes}{reporternotes}
-\setinterfacecommand{postponingnotes}{reportnotes}
-\setinterfacecommand{predefinedfont}{policepredefinie}
-\setinterfacecommand{predefinefont}{predéfinirpolice}
-\setinterfacecommand{presetdocument}{prereglerdocument}
-\setinterfacecommand{prettyprintbuffer}{imprimerjolimenttampon}
-\setinterfacecommand{preventmode}{empechermode}
-\setinterfacecommand{printpaperheight}{hauteurpapierimpression}
-\setinterfacecommand{printpaperwidth}{largeurpapierimpression}
-\setinterfacecommand{processblocks}{traiterblocs}
-\setinterfacecommand{processbodyfontenvironmentlist}{traiterlisteenvironnementpolicedecorps}
-\setinterfacecommand{processpage}{traiterpage}
-\setinterfacecommand{product}{produit}
-\setinterfacecommand{program}{programme}
-\setinterfacecommand{project}{projet}
-\setinterfacecommand{publication}{publication}
-\setinterfacecommand{quotation}{citation}
-\setinterfacecommand{quote}{citer}
-\setinterfacecommand{ran}{ran}
-\setinterfacecommand{redo}{refaire}
-\setinterfacecommand{redoconvertfont}{refaireconvertirpolice}
-\setinterfacecommand{ref}{ref}
-\setinterfacecommand{reference}{reference}
-\setinterfacecommand{referral}{redirection}
-\setinterfacecommand{referraldate}{dateredirection}
-\setinterfacecommand{referring}{fairereference}
-\setinterfacecommand{registerfontclass}{enregistrerclassepolice}
-\setinterfacecommand{registerhyphenationexception}{enregistrerexceptioncesure}
-\setinterfacecommand{registerhyphenationpattern}{enregistrermotifcesure}
-\setinterfacecommand{remark}{remarque}
-\setinterfacecommand{replacefeature}{remplacerfonctionnalite}
-\setinterfacecommand{reset}{raz}
-\setinterfacecommand{resetandaddfeature}{razetajouterfonctionnalite}
-\setinterfacecommand{resetcharacteralign}{razalignercaractere}
-\setinterfacecommand{resetcharacterkerning}{razapprochecaracteres}
-\setinterfacecommand{resetcharacterspacing}{razespacementcaracteres}
-\setinterfacecommand{resetcharacterstripping}{razdemontagecaracteres}
-\setinterfacecommand{resetfeature}{razfonctionnalite}
-\setinterfacecommand{resetfontcolorsheme}{razthemecouleurpolice}
-\setinterfacecommand{resetfontfallback}{razpolicederepli}
-\setinterfacecommand{resetfontsolution}{zarsolutionpolice}
-\setinterfacecommand{resethyphenationfeatures}{razfonctionnalitescesure}
-\setinterfacecommand{resetlocalfloats}{razflottantslocaux}
-\setinterfacecommand{resetmarking}{razmarquage}
-\setinterfacecommand{resetmode}{razmode}
-\setinterfacecommand{resetnumber}{raznumero}
-\setinterfacecommand{resetpath}{razchemin}
-\setinterfacecommand{resetperiodkerning}{razapprochepoint}
-\setinterfacecommand{resetsystemmode}{razmodesysteme}
-\setinterfacecommand{resettextcontent}{raztexte}
-\setinterfacecommand{resetvisualizers}{razvisualisateurs}
-\setinterfacecommand{restoreglobalbodyfont}{restaurerpolicedecorpsglobale}
-\setinterfacecommand{retestfeature}{retesterfonctionnalite}
-\setinterfacecommand{revivefeature}{relancerfonctionnalite}
-\setinterfacecommand{rightaligned}{aligneadroite}
-\setinterfacecommand{rightbottombox}{boitebasdroite}
-\setinterfacecommand{rightedgedistance}{distanceborddroit}
-\setinterfacecommand{rightedgewidth}{largeurborddroit}
-\setinterfacecommand{rightline}{lignedroite}
-\setinterfacecommand{rightmargindistance}{distancemargedroite}
-\setinterfacecommand{rightmarginwidth}{largeurmargedroite}
-\setinterfacecommand{romannumerals}{chiffresromains}
-\setinterfacecommand{rotate}{tourner}
-\setinterfacecommand{savebuffer}{enregistrertampon}
-\setinterfacecommand{scale}{mettrealechelle}
-\setinterfacecommand{screen}{ecran}
-\setinterfacecommand{selectblocks}{selectionnerblocs}
-\setinterfacecommand{selectpaper}{selectionnerpapier}
-\setinterfacecommand{selectversion}{selectionnerversion}
-\setinterfacecommand{setbigbodyfont}{reglerpolicedecorpsimportante}
-\setinterfacecommand{setcharacteralign}{regleralignercaractere}
-\setinterfacecommand{setcharacteraligndetail}{reglerdetailalignercaractere}
-\setinterfacecommand{setcharactercasing}{reglercassecaracteres}
-\setinterfacecommand{setcharactercleaning}{reglernettoyagecaracteres}
-\setinterfacecommand{setcharacterkerning}{reglerapprochecaracteres}
-\setinterfacecommand{setcharacterspacing}{reglerespacementcaracteres}
-\setinterfacecommand{setcharacterstripping}{reglerdemontagecaracteres}
-\setinterfacecommand{setcurrentfontclass}{reglerclassepolicecourante}
-\setinterfacecommand{setfirstline}{reglerpremiereligne}
-\setinterfacecommand{setfirstpasscharacteralign}{regleralignercaracterepremierepasse}
-\setinterfacecommand{setfont}{reglerpolice}
-\setinterfacecommand{setfontcolorsheme}{reglerthemecouleurpolice}
-\setinterfacecommand{setfontfeature}{reglerfonctionnalitepolice}
-\setinterfacecommand{setfontsolution}{reglersolutionpolice}
-\setinterfacecommand{setfontstrut}{reglerentretoisepolice}
-\setinterfacecommand{sethyphenationfeatures}{reglerfonctionnalitescesure}
-\setinterfacecommand{setmainbodyfont}{reglerpolicedecorpsprincipale}
-\setinterfacecommand{setmode}{reglermode}
-\setinterfacecommand{setnote}{reglernote}
-\setinterfacecommand{setnotetext}{reglertextenote}
-\setinterfacecommand{setnumber}{reglernumero}
-\setinterfacecommand{setperiodkerning}{reglerapprochepoint}
-\setinterfacecommand{setsecondpasscharacteralign}{regleralignercaracteresecondepasse}
-\setinterfacecommand{setsmallbodyfont}{reglerpolicedecorpspetite}
-\setinterfacecommand{setsystemmode}{reglermodesysteme}
-\setinterfacecommand{settextcontent}{reglercontenutexte}
-\setinterfacecommand{settextvariable}{reglervariabletexte}
-\setinterfacecommand{setupalign}{configureraligner}
-\setinterfacecommand{setupanswerarea}{configurerzonereponse}
-\setinterfacecommand{setuparranging}{configurerarrangement}
-\setinterfacecommand{setupattachment}{configurepiecejointe}
-\setinterfacecommand{setupbackground}{configurerarriereplan}
-\setinterfacecommand{setupbackgrounds}{configurerarriereplans}
-\setinterfacecommand{setupblackrules}{configurertraitsepais}
-\setinterfacecommand{setupblank}{configurervierge}
-\setinterfacecommand{setupblock}{configurerbloc}
-\setinterfacecommand{setupbodyfont}{configurerpolicedecorps}
-\setinterfacecommand{setupbodyfontenvironment}{configurerenvironnementpolicedecorps}
-\setinterfacecommand{setupbottom}{configurerbas}
-\setinterfacecommand{setupbottomtexts}{configurertextesbas}
-\setinterfacecommand{setupbuffer}{configurertampon}
-\setinterfacecommand{setupbuttons}{configurerboutons}
-\setinterfacecommand{setupcapitals}{configurercapitales}
-\setinterfacecommand{setupcaption}{configurerintitule}
-\setinterfacecommand{setupcaptions}{configurerintitules}
-\setinterfacecommand{setupcharacteralign}{configureralignercaractere}
-\setinterfacecommand{setupcharacterkerning}{configurerapprochecaracteres}
-\setinterfacecommand{setupcharacterspacing}{configurerespacementcaracteres}
-\setinterfacecommand{setupclipping}{configurerdecoupage}
-\setinterfacecommand{setupcolor}{configurercouleur}
-\setinterfacecommand{setupcolors}{configurercouleurs}
-\setinterfacecommand{setupcolumns}{configurercolonnes}
-\setinterfacecommand{setupcolumnset}{configurerjeucolonnes}
-\setinterfacecommand{setupcolumnsetlines}{configurerlignesjeucolonnes}
-\setinterfacecommand{setupcolumnsetstart}{configurerfinjeucolonnes}
-\setinterfacecommand{setupcombinations}{configurercombinaisons}
-\setinterfacecommand{setupcombinedlist}{configurerlistecombinee}
-\setinterfacecommand{setupcomment}{configurercommentaire}
-\setinterfacecommand{setupcounter}{configurercompteur}
-\setinterfacecommand{setupdescription}{configurerdescription}
-\setinterfacecommand{setupdescriptions}{configurerdescriptions}
-\setinterfacecommand{setupenumeration}{configurerénumération}
-\setinterfacecommand{setupenumerations}{configurerénumérations}
-\setinterfacecommand{setupexternalfigures}{configurerfiguresexterne}
-\setinterfacecommand{setupfield}{configurerchamp}
-\setinterfacecommand{setupfields}{configurerchamps}
-\setinterfacecommand{setupfillinlines}{configurerlignesarenseigner}
-\setinterfacecommand{setupfillinrules}{configurertraitsarenseigner}
-\setinterfacecommand{setupfirstline}{configurerpremiereligne}
-\setinterfacecommand{setupfloat}{configurerflottant}
-\setinterfacecommand{setupfloats}{configurerflottants}
-\setinterfacecommand{setupfloatsplitting}{configurerpartageflottants}
-\setinterfacecommand{setupfontexpansion}{configurerexpansionpolice}
-\setinterfacecommand{setupfontprotrusion}{configurerprotrusionpolice}
-\setinterfacecommand{setupfonts}{configurerpolices}
-\setinterfacecommand{setupfontsolution}{configuresolutionpolice}
-\setinterfacecommand{setupfooter}{configurerpdp}
-\setinterfacecommand{setupfootertexts}{configurertextespdp}
-\setinterfacecommand{setupfootnotedefinition}{configurerdefinitionnotebdp}
-\setinterfacecommand{setupfootnotes}{configurernotesbdp}
-\setinterfacecommand{setupforms}{configurerformulaires}
-\setinterfacecommand{setupformula}{configurerformule}
-\setinterfacecommand{setupformulas}{configurerformules}
-\setinterfacecommand{setupframed}{configurerencadre}
-\setinterfacecommand{setupframedtext}{configurertexteencadre}
-\setinterfacecommand{setupframedtexts}{configurertextesencadres}
-\setinterfacecommand{setuphead}{configurertête}
-\setinterfacecommand{setupheader}{configurerentête}
-\setinterfacecommand{setupheadertexts}{configurertextesentête}
-\setinterfacecommand{setupheadnumber}{configurernumerotête}
-\setinterfacecommand{setupheads}{configurertêtes}
-\setinterfacecommand{setupheadtext}{configurertextêtete}
-\setinterfacecommand{setuphyphenation}{configurercesure}
-\setinterfacecommand{setuphyphenmark}{configurermarquecesure}
-\setinterfacecommand{setupindentedtext}{configurertexteindente}
-\setinterfacecommand{setupindenting}{configurerindentation}
-\setinterfacecommand{setupinmargin}{configurerdansmarge}
-\setinterfacecommand{setupinteraction}{configurerinteraction}
-\setinterfacecommand{setupinteractionbar}{configurerbarreinteraction}
-\setinterfacecommand{setupinteractionmenu}{configurermenuinteraction}
-\setinterfacecommand{setupinteractionscreen}{configurerecraninteraction}
-\setinterfacecommand{setupinterlinespace}{configurerespaceinterligne}
-\setinterfacecommand{setupitemgroup}{configurergroupedéléments}
-\setinterfacecommand{setupitemgroups}{configurergroupesdéléments}
-\setinterfacecommand{setupitems}{configureréléments}
-\setinterfacecommand{setuplabeltext}{configureretiquettetexte}
-\setinterfacecommand{setuplanguage}{configurerlangue}
-\setinterfacecommand{setuplayout}{configurermiseenpage}
-\setinterfacecommand{setuplegend}{configurerlegende}
-\setinterfacecommand{setuplinenote}{configurernotedeligne}
-\setinterfacecommand{setuplinenumbering}{configurernumérotationligne}
-\setinterfacecommand{setuplines}{configurerlignes}
-\setinterfacecommand{setuplinewidth}{configurerepaisseurtrait}
-\setinterfacecommand{setuplist}{configurerliste}
-\setinterfacecommand{setupmakeup}{configurercomposition}
-\setinterfacecommand{setupmarginblock}{configurerblocmarginal}
-\setinterfacecommand{setupmarginblocks}{configurerblocmarge}
-\setinterfacecommand{setupmargindata}{configurerdonneesmarginales}
-\setinterfacecommand{setupmarginrules}{configurertraitsmarge}
-\setinterfacecommand{setupmarking}{configurermarquage}
-\setinterfacecommand{setupmathalignment}{configureralignementmath}
-\setinterfacecommand{setupnarrower}{configurerplusetroit}
-\setinterfacecommand{setupnotation}{configurernotation}
-\setinterfacecommand{setupnotations}{configurernotations}
-\setinterfacecommand{setupnote}{configurenote}
-\setinterfacecommand{setupnotes}{configurenotes}
-\setinterfacecommand{setupnumber}{configurernumero}
-\setinterfacecommand{setupnumbering}{configurernumérotation}
-\setinterfacecommand{setupoppositeplacing}{configurerplacementopposition}
-\setinterfacecommand{setupoutput}{configurersortie}
-\setinterfacecommand{setuppagecomment}{configurercommentairepage}
-\setinterfacecommand{setuppagenumber}{configurernumeropage}
-\setinterfacecommand{setuppagenumbering}{configurernumérotationpage}
-\setinterfacecommand{setuppagetransitions}{configurertransitionpage}
-\setinterfacecommand{setuppalet}{configurerpalette}
-\setinterfacecommand{setuppaper}{configurerpapier}
-\setinterfacecommand{setuppapersize}{configurertaillepapier}
-\setinterfacecommand{setupparagraphnumbering}{configurernumérotationparagraphe}
-\setinterfacecommand{setupparagraphs}{configurerparagraphe}
-\setinterfacecommand{setupperiodkerning}{configurerapprochepoint}
-\setinterfacecommand{setupplacement}{configurerplacement}
-\setinterfacecommand{setuppositioning}{configurerpositionnement}
-\setinterfacecommand{setupprofiles}{configurerprofils}
-\setinterfacecommand{setupprograms}{configurerprogrammes}
-\setinterfacecommand{setuppublications}{configurerpublications}
-\setinterfacecommand{setupquote}{configurerciter}
-\setinterfacecommand{setupreferencelist}{configurerlistereference}
-\setinterfacecommand{setupreferencing}{configurerreferencement}
-\setinterfacecommand{setupregister}{configurerregistre}
-\setinterfacecommand{setuprotate}{configurerrotation}
-\setinterfacecommand{setuprule}{configurertrait}
-\setinterfacecommand{setupscreens}{configurerecran}
-\setinterfacecommand{setupsection}{configurersection}
-\setinterfacecommand{setupsectionblock}{configurerblocsection}
-\setinterfacecommand{setupsorting}{configurertri}
-\setinterfacecommand{setupspacing}{configurerespacement}
-\setinterfacecommand{setupstartstop}{configurerdébutfin}
-\setinterfacecommand{setupstrut}{configurerentretoise}
-\setinterfacecommand{setupsubpagenumber}{configurernumerosouspage}
-\setinterfacecommand{setupsymbolset}{configurerjeusymboles}
-\setinterfacecommand{setupsynchronization}{configurersynchronisation}
-\setinterfacecommand{setupsynchronizationbar}{configurerbarresynchronisation}
-\setinterfacecommand{setupsynonyms}{configurersynonymes}
-\setinterfacecommand{setupsystem}{configurersysteme}
-\setinterfacecommand{setuptab}{configurertab}
-\setinterfacecommand{setuptables}{configurertables}
-\setinterfacecommand{setuptabulate}{configurertabulation}
-\setinterfacecommand{setuptext}{configurertexte}
-\setinterfacecommand{setuptextbackground}{configurertextearriereplan}
-\setinterfacecommand{setuptextnote}{configurernotetexte}
-\setinterfacecommand{setuptextposition}{configurerpositiontexte}
-\setinterfacecommand{setuptextrules}{configurertextetraits}
-\setinterfacecommand{setuptexttexts}{configurertextestexte}
-\setinterfacecommand{setuptextvariable}{configurervariabletexte}
-\setinterfacecommand{setupthinrules}{configurertraitsfins}
-\setinterfacecommand{setuptolerance}{configurertolerance}
-\setinterfacecommand{setuptop}{configurerhaut}
-\setinterfacecommand{setuptoptexts}{configurertexteshaut}
-\setinterfacecommand{setuptype}{configurertranscrire}
-\setinterfacecommand{setuptyping}{configurertranscription}
-\setinterfacecommand{setupunderbar}{configurersouligner}
-\setinterfacecommand{setupurl}{configurerurl}
-\setinterfacecommand{setupversions}{configurerversions}
-\setinterfacecommand{setupwhitespace}{configurerespaceblanc}
-\setinterfacecommand{setvisualizerfont}{reglervisualisateurpolice}
-\setinterfacecommand{showbodyfont}{montrerpolicedecorps}
-\setinterfacecommand{showbodyfontenvironment}{montrerenvironnementpolicedecorps}
-\setinterfacecommand{showcolor}{montrercouleur}
-\setinterfacecommand{showcolorgroup}{montrergroupecouleur}
-\setinterfacecommand{showcounter}{montrercompteur}
-\setinterfacecommand{showexternalfigures}{montrerfiguresexternes}
-\setinterfacecommand{showfields}{montrerchamps}
-\setinterfacecommand{showfont}{montrerpolice}
-\setinterfacecommand{showfontdata}{montrerdonneespolice}
-\setinterfacecommand{showfontexpansion}{montrerexpansionpolice}
-\setinterfacecommand{showfontitalics}{montreritaliquespolice}
-\setinterfacecommand{showfontkerns}{montrerlesapproches}
-\setinterfacecommand{showfontparameters}{montrerparametrespolice}
-\setinterfacecommand{showfontstrip}{montrervisuellementpolice}
-\setinterfacecommand{showfontstyle}{montrerstylepolice}
-\setinterfacecommand{showframe}{montrermiseenpage}
-\setinterfacecommand{showgrid}{montrergrille}
-\setinterfacecommand{showhyphenationtrace}{montrertracecesure}
-\setinterfacecommand{showkerning}{montrerapproche}
-\setinterfacecommand{showlayout}{montrermiseenpage}
-\setinterfacecommand{showmakeup}{montrercomposition}
-\setinterfacecommand{showminimalbaseline}{montrerlignedebase}
-\setinterfacecommand{showpalet}{montrerpalette}
-\setinterfacecommand{showprint}{montrerimpression}
-\setinterfacecommand{showsetups}{montrerconfigurations}
-\setinterfacecommand{showstruts}{montrerentretoises}
-\setinterfacecommand{showsymbolset}{montrerjeusymboles}
-\setinterfacecommand{smallcapped}{petitescap}
-\setinterfacecommand{someline}{uneligne}
-\setinterfacecommand{somewhere}{qqpart}
-\setinterfacecommand{space}{espace}
-\setinterfacecommand{specialitem}{élémentspécial}
-\setinterfacecommand{splitfloat}{flottantpartage}
-\setinterfacecommand{startalignment}{débutalignement}
-\setinterfacecommand{startbackground}{débutarriereplan}
-\setinterfacecommand{startcoding}{débutcodage}
-\setinterfacecommand{startcolor}{débutcouleur}
-\setinterfacecommand{startcolumnmakeup}{débutcompositioncolonne}
-\setinterfacecommand{startcolumns}{débutcolonnes}
-\setinterfacecommand{startcolumnset}{débutjeucolonnes}
-\setinterfacecommand{startcombination}{débutcombinaison}
-\setinterfacecommand{startcomponent}{débutcomposant}
-\setinterfacecommand{startdocument}{débutdocument}
-\setinterfacecommand{startenvironment}{débutenvironnement}
-\setinterfacecommand{startfigure}{débutfigure}
-\setinterfacecommand{startframed}{débutencadre}
-\setinterfacecommand{startglobal}{débutglobal}
-\setinterfacecommand{startline}{débutligneref}
-\setinterfacecommand{startlinecorrection}{débutcorrectionligne}
-\setinterfacecommand{startlinenote}{débutnotedeligne}
-\setinterfacecommand{startlinenumbering}{débutnumérotationligne}
-\setinterfacecommand{startlines}{débutlignes}
-\setinterfacecommand{startlocal}{débutlocal}
-\setinterfacecommand{startlocalfootnotes}{débutnotesbdplocal}
-\setinterfacecommand{startmakeup}{débutcomposition}
-\setinterfacecommand{startmarginblock}{débutblocmarge}
-\setinterfacecommand{startmarginrule}{débuttraitmarge}
-\setinterfacecommand{startnarrower}{débutplusetroit}
-\setinterfacecommand{startopposite}{débutopposition}
-\setinterfacecommand{startoverlay}{débutsuperposition}
-\setinterfacecommand{startoverview}{débutvuedensemble}
-\setinterfacecommand{startpacked}{débutemballage}
-\setinterfacecommand{startpositioning}{débutpositionnement}
-\setinterfacecommand{startproduct}{débutproduit}
-\setinterfacecommand{startprofile}{débutprofil}
-\setinterfacecommand{startproject}{débutprojet}
-\setinterfacecommand{startquotation}{débutcitation}
-\setinterfacecommand{startraster}{débutraster}
-\setinterfacecommand{startsymbolset}{débutjeusymboles}
-\setinterfacecommand{startsynchronization}{débutsynchronisation}
-\setinterfacecommand{starttable}{débuttable}
-\setinterfacecommand{starttables}{débuttables}
-\setinterfacecommand{starttext}{débuttexte}
-\setinterfacecommand{starttextbackground}{débuttextearriereplan}
-\setinterfacecommand{starttextrule}{débuttextetrait}
-\setinterfacecommand{startunpacked}{débutdesemballage}
-\setinterfacecommand{startversion}{débutversion}
-\setinterfacecommand{stopalignment}{finalignement}
-\setinterfacecommand{stopbackground}{finarriereplan}
-\setinterfacecommand{stopcoding}{fincodage}
-\setinterfacecommand{stopcolor}{fincouleur}
-\setinterfacecommand{stopcolumnmakeup}{fincompositioncolonne}
-\setinterfacecommand{stopcolumns}{fincolonnes}
-\setinterfacecommand{stopcolumnset}{finjeucolonnes}
-\setinterfacecommand{stopcombination}{fincombinaison}
-\setinterfacecommand{stopcomponent}{fincomposant}
-\setinterfacecommand{stopdocument}{findocument}
-\setinterfacecommand{stopenvironment}{finenvironnement}
-\setinterfacecommand{stopframed}{finencadre}
-\setinterfacecommand{stopglobal}{finglobal}
-\setinterfacecommand{stopline}{finligneref}
-\setinterfacecommand{stoplinecorrection}{fincorrectionligne}
-\setinterfacecommand{stoplinenote}{finnotedeligne}
-\setinterfacecommand{stoplinenumbering}{finnumérotationligne}
-\setinterfacecommand{stoplines}{finlignes}
-\setinterfacecommand{stoplocal}{finlocal}
-\setinterfacecommand{stoplocalfootnotes}{finnotesbdplocal}
-\setinterfacecommand{stopmakeup}{fincomposition}
-\setinterfacecommand{stopmarginblock}{finblocmarge}
-\setinterfacecommand{stopmarginrule}{fintraitmarge}
-\setinterfacecommand{stopnarrower}{finplusetroit}
-\setinterfacecommand{stopopposite}{finopposition}
-\setinterfacecommand{stopoverlay}{finsuperposition}
-\setinterfacecommand{stopoverview}{finvuedensemble}
-\setinterfacecommand{stoppacked}{finemballage}
-\setinterfacecommand{stoppositioning}{finpositionnement}
-\setinterfacecommand{stopproduct}{finproduit}
-\setinterfacecommand{stopprofile}{finprofil}
-\setinterfacecommand{stopproject}{finprojet}
-\setinterfacecommand{stopquotation}{fincitation}
-\setinterfacecommand{stopraster}{finraster}
-\setinterfacecommand{stopsynchronization}{finsynchronisation}
-\setinterfacecommand{stoptable}{fintable}
-\setinterfacecommand{stoptables}{fintables}
-\setinterfacecommand{stoptext}{fintexte}
-\setinterfacecommand{stoptextbackground}{fintextearriereplan}
-\setinterfacecommand{stoptextrule}{fintextetrait}
-\setinterfacecommand{stopunpacked}{findesemballage}
-\setinterfacecommand{stopversion}{finversion}
-\setinterfacecommand{stretched}{etire}
-\setinterfacecommand{strictinspectnextcharacter}{inspecterstrictementcaracteresuivant}
-\setinterfacecommand{stripcharacter}{demontercaractere}
-\setinterfacecommand{subformulanumber}{numerosousformule}
-\setinterfacecommand{subpagenumber}{numerosouspage}
-\setinterfacecommand{subtractfeature}{enleverfonctionnalite}
-\setinterfacecommand{switchtobodyfont}{passerapolicedecorps}
-\setinterfacecommand{switchtorawfont}{passerapolicebrute}
-\setinterfacecommand{sym}{sym}
-\setinterfacecommand{symbol}{symbole}
-\setinterfacecommand{symoffset}{decalagesym}
-\setinterfacecommand{synchronizationbar}{barresynchronisation}
-\setinterfacecommand{synchronize}{synchroniser}
-\setinterfacecommand{tab}{tab}
-\setinterfacecommand{testcolumn}{testcolonne}
-\setinterfacecommand{testfeature}{testerfonctionnalite}
-\setinterfacecommand{testfeatureonce}{testerfonctionnaliteunfois}
-\setinterfacecommand{testpage}{testpage}
-\setinterfacecommand{tex}{tex}
-\setinterfacecommand{textbackground}{textearriereplan}
-\setinterfacecommand{textcolor}{textecouleura}
-\setinterfacecommand{textheight}{hauteurtexte}
-\setinterfacecommand{textnote}{notetexte}
-\setinterfacecommand{textreference}{referencetexte}
-\setinterfacecommand{textrule}{traittexte}
-\setinterfacecommand{textvariable}{variabletexte}
-\setinterfacecommand{textwidth}{largeurtexte}
-\setinterfacecommand{thefirstcharacter}{lepremiercaractere}
-\setinterfacecommand{thenormalizedbodyfontsize}{lataillenormaliseepolicedecorps}
-\setinterfacecommand{theremainingcharacters}{lescaracteresrestants}
-\setinterfacecommand{thinrule}{traitfin}
-\setinterfacecommand{thinrules}{traitsfins}
-\setinterfacecommand{tolinenote}{alanotedeligne}
-\setinterfacecommand{tooltip}{infobulle}
-\setinterfacecommand{topdistance}{distancehaut}
-\setinterfacecommand{topheight}{hauteurhaut}
-\setinterfacecommand{topspace}{espacehaut}
-\setinterfacecommand{totalnumberofpages}{nombretotaldepages}
-\setinterfacecommand{translate}{traduire}
-\setinterfacecommand{txt}{txt}
-\setinterfacecommand{typ}{transcrireaveccesure}
-\setinterfacecommand{type}{transcrire}
-\setinterfacecommand{typebuffer}{transcriretampon}
-\setinterfacecommand{typedefinedbuffer}{transcriretampondefini}
-\setinterfacecommand{typefile}{transcrirefichier}
-\setinterfacecommand{typeinlinebuffer}{transcriretamponenligne}
-\setinterfacecommand{typing}{transcription}
-\setinterfacecommand{unitmeaning}{significationunite}
-\setinterfacecommand{unknown}{inconnu}
-\setinterfacecommand{unregisterhyphenationpattern}{desenregistrermotifcesure}
-\setinterfacecommand{useJSscripts}{utiliserJSscript}
-\setinterfacecommand{useURL}{utiliserURL}
-\setinterfacecommand{useXMLfilter}{utiliserfiltreXML}
-\setinterfacecommand{useblocks}{utiliserblocs}
-\setinterfacecommand{usebodyfont}{utiliserpolicedecorps}
-\setinterfacecommand{usebodyfontparameter}{utiliserparametrepolicedecorps}
-\setinterfacecommand{usecommands}{utilisercommandes}
-\setinterfacecommand{useencoding}{utilisercodage}
-\setinterfacecommand{useexternaldocument}{utiliserdocumentexterne}
-\setinterfacecommand{useexternalfigure}{utiliserfigureexterne}
-\setinterfacecommand{useexternalfile}{utiliserfichierexterne}
-\setinterfacecommand{useexternalfiles}{utiliserfichiersexternes}
-\setinterfacecommand{useexternalsoundtrack}{utilisersonexterne}
-\setinterfacecommand{usemodule}{utilisermodule}
-\setinterfacecommand{usemodules}{utilisermodules}
-\setinterfacecommand{usepath}{utiliserchemin}
-\setinterfacecommand{usereferences}{utiliserreferences}
-\setinterfacecommand{usespecials}{utiliserspeciaux}
-\setinterfacecommand{usesymbols}{utilisersymboles}
-\setinterfacecommand{usetypescript}{utiliserscriptdepolices}
-\setinterfacecommand{usetypescriptfile}{utiliserfichierscriptdepolices}
-\setinterfacecommand{useurl}{utiliserurl}
-\setinterfacecommand{verbatim}{verbatim}
-\setinterfacecommand{version}{version}
-\setinterfacecommand{vl}{lv}
-\setinterfacecommand{weekday}{joursemaine}
-\setinterfacecommand{whitespace}{espaceblanc}
-\setinterfacecommand{widthspanningtext}{largeurtextecouvrant}
-\setinterfacecommand{wordright}{ecrireadroite}
-\setinterfacecommand{writebetweenlist}{ecrireentreliste}
-\setinterfacecommand{writetolist}{ecriredansliste}
-\setinterfacecommand{writetoreferencelist}{ecriredanslistereference}
-\setinterfacecommand{writetoregister}{ecriredansregistre}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-fst.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-fst.mkii
deleted file mode 100644
index 36c3f181f22..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-fst.mkii
+++ /dev/null
@@ -1,36 +0,0 @@
-%D \module
-%D [ file=mult-fst,
-%D version=2006.08.16,
-%D title=\CONTEXT\ Multilingual Macros,
-%D subtitle=Speed Up,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% And so, after a few years of keeping this potentially dangerous
-% speedup in cont-exp, we now move it to the kernel: the next
-% patch is 30\% faster on main interface (seconds) (9->7 sec on
-% 1 million calls). Another speed up is still under testing.
-
-\unprotect
-
-\startinterface english
-
- \def\dosetvalue #1#2{\@EA\def \csname#1#2\endcsname}
- \def\dosetevalue #1#2{\@EA\edef\csname#1#2\endcsname}
- \def\dosetgvalue #1#2{\@EA\gdef\csname#1#2\endcsname}
- \def\dosetxvalue #1#2{\@EA\gdef\csname#1#2\endcsname}
- \def\docopyvalue#1#2#3{\@EA\def \csname#1#3\@EA\endcsname\@EA{\csname#2#3\endcsname}}
-
- \def\setinterfaceconstant#1#2{\setvalue{\c!prefix!#1}{#1}}
- \def\setinterfacevariable#1#2{\setvalue{\v!prefix!#1}{#2}}
-
- \def\interfaced#1{#1}
-
-\stopinterface
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-ini.mkii
deleted file mode 100644
index 76f6d69f2b8..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-ini.mkii
+++ /dev/null
@@ -1,935 +0,0 @@
-%D \module
-%D [ file=mult-ini,
-%D version=2008.10.22, % 1996.06.01,
-%D title=\CONTEXT\ Multilingual Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module is a stripped down version of \type {mult-ini.tex},
-%D which we keep around as \type {mult-kep.tex} for sentimental
-%D reasons. There you will find some more historic information.
-
-\writestatus{loading}{ConTeXt Multilingual Macros / Initialization}
-
-\unprotect
-
-%D \macros
-%D [constanten,variabelen,commands]
-%D {v!,c!,k!,s!,e!,m!,l!,r!,f!,p!,x!,y!}
-%D
-%D In the system modules we introduced some prefixed constants,
-%D variables (both macros) and registers. Apart from a
-%D tremendous saving in terms of memory and a gain in speed we
-%D use from now on prefixes when possible for just another
-%D reason: consistency and multi||linguality. Systematically
-%D using prefixed macros enables us to implement a
-%D multi||lingual user interface. Redefining these next set of
-%D prefixes therefore can have desastrous results.
-%D
-%D \startlinecorrection
-%D \starttable[|c|c|c|]
-%D \HL
-%D \NC \bf prefix \NC \bf meaning \NC \bf application \NC\SR
-%D \HL
-%D \NC \type{\c!prefix!} \NC c! \NC constant (direct) \NC\FR
-%D \NC \type{\e!prefix!} \NC e! \NC element \NC\MR
-%D \NC \type{\f!prefix!} \NC f! \NC file \NC\MR
-%D \NC \type{\k!prefix!} \NC k! \NC constant (indirect) \NC\MR
-%D \NC \type{\l!prefix!} \NC l! \NC language \NC\MR
-%D \NC \type{\m!prefix!} \NC m! \NC message \NC\MR
-%D \NC \type{\p!prefix!} \NC p! \NC procedure \NC\MR
-%D \NC \type{\r!prefix!} \NC r! \NC reference \NC\MR
-%D \NC \type{\s!prefix!} \NC s! \NC system \NC\MR
-%D \NC \type{\v!prefix!} \NC v! \NC variable \NC\MR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D In the single||lingual version we used \type{!}, \type{!!},
-%D \type{!!!} and \type{!!!!}.
-
-\def\c!prefix!{c!} \def\e!prefix!{e!} \def\f!prefix!{f!}
-\def\k!prefix!{k!} \def\l!prefix!{l!} \def\m!prefix!{m!}
-\def\p!prefix!{p!} \def\r!prefix!{r!} \def\s!prefix!{s!}
-\def\v!prefix!{v!} \def\t!prefix!{t!}
-
-%D \macros
-%D [constants,variables,commands]
-%D {@@,??}
-%D
-%D Variables generated by the system can be recognized on their
-%D prefix \type{@@}. They are composed of a command (class)
-%D specific tag, which can be recognized on \type{??}, and a
-%D system constant, which has the prefix \type{c!}. We'll se
-%D some more of this.
-
-\def\??prefix {??}
-\def\@@prefix {@@}
-
-%D Just to be complete we repeat some of the already defined
-%D system constants here. Maybe their prefix \type{\s!} now
-%D falls into place.
-
-\def\s!next {next} \def\s!default {default}
-\def\s!dummy {dummy} \def\s!unknown {unknown}
-
-\def\s!do {do} \def\s!dodo {dodo}
-
-\def\s!complex {complex} \def\s!start {start}
-\def\s!simple {simple} \def\s!stop {stop}
-
-%D The word \type{height} takes 6~token memory cells. The
-%D control sequence \type{\height} on the other hand uses only
-%D one. Knowing this, we can improve the performance of \TEX,
-%D both is terms of speed and memory usage, by using control
-%D sequences instead of the words written in full.
-%D
-%D Where in the \ASCII\ file the second lines takes nine extra
-%D characters, \TEX\ saves us 13~tokens.
-%D
-%D \starttyping
-%D \hrule width 10pt height 2pt depth 1pt
-%D \hrule \!!width 10pt \!!height 2pt \!!depth 1pt
-%D \stoptyping
-%D
-%D One condition is that we have defined \type{\!!height},
-%D \type{\!!width} and \type{\!!depth} as respectively
-%D \type{height}, \type{width} and \type{depth}. Using this
-%D scheme therefore only makes sense when a token sequence is
-%D used more than once. Savings like this should of course be
-%D implemented in english, just because \TEX\ is english.
-
-\def\!!width {width}
-\def\!!height {height}
-\def\!!depth {depth}
-\def\!!plus {plus}
-\def\!!minus {minus}
-\def\!!fill {fill}
-\def\!!to {to}
-
-%D \macros
-%D {defineinterfaceconstant,
-%D defineinterfacevariable,
-%D defineinterfaceelement,
-%D definesystemvariable,
-%D definesystemconstant,
-%D definemessageconstant,
-%D definereferenceconstant,
-%D definefileconstant}
-%D
-%D The first part of this module is dedicated to dealing with
-%D multi||lingual constants and variables. When \CONTEXT\ grew
-%D bigger and bigger in terms of bytes and used string space,
-%D we switched to predefined constants. At the cost of more
-%D hash table entries, the macros not only becase more compact,
-%D they became much faster too. Maybe an even bigger advantage
-%D was that mispelling could no longer lead to problems. Even a
-%D multi||lingual interface became possible.
-%D
-%D Constants --- we'll introduce the concept of variables later
-%D on --- are preceded by a type specific prefix, followed by a
-%D \type{!}. To force consistency, we provide a few commands
-%D for defining such constants.
-%D
-%D \starttyping
-%D \defineinterfaceconstant {name} {meaning}
-%D \defineinterfacevariable {name} {meaning}
-%D \defineinterfaceelement {name} {meaning}
-%D \stoptyping
-%D
-%D Which is the same as:
-%D
-%D \starttyping
-%D \def\c!name{meaning}
-%D \def\v!name{meaning}
-%D \def\e!name{meaning}
-%D \stoptyping
-
-\def\defineinterfaceconstant #1#2{\setvalue{\c!prefix!#1}{#2}}
-\def\defineinterfacevariable #1#2{\setvalue{\v!prefix!#1}{#2}}
-\def\defineinterfaceelement #1#2{\setvalue{\e!prefix!#1}{#2}}
-
-%D Next come some interface independant constants:
-%D
-%D \starttyping
-%D \definereferenceconstant {name} {meaning}
-%D \definefileconstant {name} {meaning}
-%D \stoptyping
-
-\def\definereferenceconstant #1#2{\setvalue{\r!prefix!#1}{#2}}
-\def\definefileconstant #1#2{\setvalue{\f!prefix!#1}{#2}}
-
-%D A new one:
-
-\def\definetypescriptconstant#1#2{\setvalue{\t!prefix!#1}{#2}}
-
-%D And finaly we have the one argument, space saving constants
-%D
-%D \starttyping
-%D \definesystemconstant {name}
-%D \definemessageconstant {name}
-%D \stoptyping
-
-\def\definesystemconstant #1{\setvalue{\s!prefix!#1}{#1}}
-\def\definemessageconstant #1{\setvalue{\m!prefix!#1}{#1}}
-
-%D In a parameter driven system, some parameters are shared
-%D by more system components. In \CONTEXT\ we can distinguish
-%D parameters by a unique prefix. Such a prefix is defined
-%D with:
-%D
-%D \starttyping
-%D \definesystemvariable {name}
-%D \stoptyping
-
-\def\definesystemvariable#1{\setevalue{\??prefix#1}{\@@prefix#1}}
-
-\definesystemvariable{ms}
-
-%D \macros
-%D {selectinterface,
-%D defaultinterface, currentinterface, currentresponses}
-%D
-%D With \type{\selectinterface} we specify the language we are
-%D going to use. The system asks for the language wanted, and
-%D defaults to \type{\currentinterface} when we just give
-%D \type{enter}. By default the message system uses the
-%D current interface language, but \type{\currentresponses}
-%D can specify another language too.
-%D
-%D Because we want to generate formats directly too, we do
-%D not ask for interface specifications when these are already
-%D defined (like in cont-nl.tex and alike).
-
-\ifx\defaultinterface\undefined
-
- \def\defaultinterface{english}
-
- \def\selectinterface
- {\def\docommand##1##2%
- {\bgroup
- \endlinechar\minusone
- \global\read16 to ##1
- \egroup
- \doifnothing\currentinterface{\let##1=##2}%
- \doifundefined{\s!prefix!##1}{\let##1=##2}}%
- \docommand\currentinterface\defaultinterface
- \writestatus{interface}{defining \currentinterface\space interface}%
- \writeline
- \docommand\currentresponses\currentinterface
- \writestatus{interface}{using \currentresponses\space messages}%
- \writeline
- \let\selectinterface\relax}
-
-\else
-
- \def\selectinterface
- {\writestatus{interface}{defining \currentinterface\space interface}%
- \writeline
- \writestatus{interface}{using \currentresponses\space messages}%
- \writeline
- \let\selectinterface\relax}
-
-\fi
-
-\ifx\currentinterface\undefined \let\currentinterface=\defaultinterface \fi
-\ifx\currentresponses\undefined \let\currentresponses=\defaultinterface \fi
-
-%D \macros
-%D {startinterface}
-%D
-%D Sometimes we want to define things only for specific
-%D interface languages. This can be done by means of the
-%D selector:
-%D
-%D \starttyping
-%D \startinterface language
-%D
-%D language specific definitions & commands
-%D
-%D \stopinterface
-%D \stoptyping
-
-\def\startinterface #1
- {\doifnot{#1}{all}{\doifnotinset\currentinterface{#1}{\gobbleuntil\stopinterface}}}
-
-\let\stopinterface\relax
-
-%D \macros
-%D {startmessages,
-%D getmessage,
-%D showmessage,
-%D makemessage}
-%D
-%D A package as large as \CONTEXT\ can hardly function without
-%D a decent message mechanism. Due to its multi||lingual
-%D interface, the message subsystem has to be multi||lingual
-%D too. A major drawback of this feature is that we have to
-%D code messages. As a result, the source becomes less self
-%D documented. On the other hand, consistency will improve.
-%D
-%D Because the overhead in terms of entries in the (already
-%D exhausted) hash table has to be minimal, messages are packed
-%D in libraries. We can extract a message from such a library
-%D in three ways:
-%D
-%D \starttyping
-%D \getmessage {library} {tag}
-%D \showmessage {library} {tag} {data}
-%D \makemessage {library} {tag} {data}
-%D \stoptyping
-%D
-%D The first command gets the message \type{tag} from the
-%D \type{library} specified. The other commands take an extra
-%D argument: a list of items to be inserted in the message
-%D text. While \type{\showmessage} shows the message at the
-%D terminal, the other commands generate the message as text.
-%D Before we explain the \type{data} argument, we give an
-%D example of a library.
-%D
-%D \starttyping
-%D \startmessages english library: alfa
-%D title: something
-%D 1: first message
-%D 2: second (--) message --
-%D \stopmessages
-%D \stoptyping
-%D
-%D The first message is a simple one and can be shown with:
-%D
-%D \starttyping
-%D \showmessage {alfa} {1} {}
-%D \stoptyping
-%D
-%D The second message on the other hand needs some extra data:
-%D
-%D \starttyping
-%D \showmessage {alfa} {2} {and last,to you}
-%D \stoptyping
-%D
-%D This message is shown as:
-%D
-%D \starttyping
-%D something : second (and last) message to you
-%D \stoptyping
-%D
-%D As we can see, the title entry is shown with the message.
-%D The data fields are comma separated and are specified in the
-%D message text by \type{--}.
-%D
-%D It is not required to define all messages in a library at
-%D once. We can add messages to a library in the following way:
-%D
-%D \starttyping
-%D \startmessages english library: alfa
-%D 10: tenth message
-%D \stopmessages
-%D \stoptyping
-%D
-%D Because such definitions can take place in different
-%D modules, the system gives a warning when a tag occurs more
-%D than once. The first occurrence takes preference over later
-%D ones, so we had better use a save offset, as shown in the
-%D example. As we can see, the title field is specified only
-%D the first time!
-%D
-%D Because we want to check for duplicate tags, the macros
-%D are a bit more complicated than neccessary. The \NEWLINE\
-%D token is used as message separator.
-%D
-%D For internal purposes one can use \type {\setmessagetext},
-%D which puts the message text asked for in \type
-%D {\currentmessagetext}.
-
-\def\findinterfacemessage#1#2%
- {\let#2\empty
- \def\dofindinterfacemessage##1 #1: ##2\relax##3\end{\def#2{##2}}%
- \edef\!!stringa{\getvalue{\??ms\currentmessagelibrary} #1: \relax}%
- \expandafter\dofindinterfacemessage\!!stringa\end}
-
-\def\composemessagetext#1--#2--#3--#4--#5--#6--#7--#8--#9\\%
- {\def\docomposemessagetext##1,##2,##3,##4,##5,##6,##7,##8,##9\\%
- {\edef\currentmessagetext{#1##1#2##2#3##3#4##4#5##5#6##6#7##7#8##8}}%
- \docomposemessagetext}
-
-\def\setmessagetext#1#2%
- {\def\currentmessagelibrary{#1}%
- \findinterfacemessage{#2}\currentmessagetext}
-
-\unexpanded\def\getmessage#1#2%
- {\def\currentmessagelibrary{#1}%
- \findinterfacemessage{#2}\currentmessagetext
- \currentmessagetext}
-
-\unexpanded\def\makemessage#1#2#3%
- {\def\currentmessagelibrary{#1}%
- \findinterfacemessage{#2}\currentmessagetext
- \@EA\composemessagetext\currentmessagetext----------------\\#3,,,,,,,,\\%
- \currentmessagetext}
-
-\def\showmessage#1#2#3%
- {\def\currentmessagelibrary{#1}%
- \findinterfacemessage{#2}\currentmessagetext
- \findinterfacemessage{title}\currentmessagetitle
- \ifx\currentmessagetext\empty
- \def\currentmessagetext{<unknown message #2>}%
- \else
- \@EA\composemessagetext\currentmessagetext----------------\\#3,,,,,,,,\\%
- \fi
- \@EA\writestatus\@EA{\currentmessagetitle}{\currentmessagetext}}
-
-\def\doaddinterfacemessage#1#2%
- {\findinterfacemessage{#1}\currentmessagetext
- \doifelsenothing\currentmessagetext
- {\setxvalue{\??ms\currentmessagelibrary}%
- {\getvalue{\??ms\currentmessagelibrary} #1: #2\relax}}
- {\debuggerinfotrue % we consider this an important error
- \debuggerinfo
- {message}
- {duplicate tag #1
- in library \currentmessagelibrary\space
- of interface \currentresponses}}%
- \futurelet\next\getinterfacemessage}
-
-\bgroup
-\obeylines
-\gdef\addinterfacemessage#1: #2
- {\doaddinterfacemessage{#1}{#2}}%
-\egroup
-
-\def\getinterfacemessage
- {\ifx\next\stopmessages
- \egroup\expandafter\gobbleoneargument
- \else
- \expandafter\addinterfacemessage
- \fi}
-
-\let\stopmessages\undefined % for dep checker
-
-\def\startmessages #1 library: #2
- {\definemessageconstant{#2}% handy for modules
- \bgroup
- \obeylines
- \doifinsetelse{#1}{\currentresponses,all}
- {\def\next
- {\def\currentmessagelibrary{#2}%
- \doifundefined{\??ms\currentmessagelibrary}
- {\letgvalueempty{\??ms\currentmessagelibrary}}%
- \futurelet\next\getinterfacemessage}}
- {\long\def\next##1\stopmessages{\egroup}}%
- \next}
-
-%D Here, the messages are stored in a way that saves hash
-%D entries, i.e. they are packed in one macro per library.
-%D This was important in the days when we used \TEX's with
-%D hash tables of about 10.000. The next, less efficient way
-%D of storing the message, makes \CONTEXT\ run upto 5\%
-%D faster by storing each message in a macro. In July 2000,
-%D this costs some 185 additional hash entries, and since
-%D we run large \TEX's, let do it!
-
-\def\startmessages #1 library: #2
- {\definemessageconstant{#2}% handy for modules
- \bgroup
- \obeylines
- \ifcsname\m!prefix!#2\endcsname\else\setgvalue{\m!prefix!#2}{#2}\fi
- \doifinsetelse{#1}{\currentresponses,all}
- {\def\next
- {\def\currentmessagelibrary{#2}%
- \futurelet\next\getinterfacemessage}}
- {\long\def\next##1\stopmessages{\egroup}}%
- \next}
-
-\def\findinterfacemessage#1#2%
- {\edef#2{\getvalue{\??ms\currentmessagelibrary#1}}}
-
-\def\doaddinterfacemessage#1#2%
- {\doifdefined{\??ms\currentmessagelibrary#1}
- {\debuggerinfotrue % we consider this an important error
- \debuggerinfo
- {message}
- {duplicate tag #1
- in library \currentmessagelibrary\space
- of interface \currentresponses}}%
- \setxvalue{\??ms\currentmessagelibrary#1}{#2}%
- \futurelet\next\getinterfacemessage}
-
-\def\setinterfacemessage#1#2#3%
- {\ifcsname\m!prefix!#1\endcsname\else\setgvalue{\m!prefix!#1}{#1}\fi
- \expandafter\def\csname\??ms#1#2\endcsname{#3}}
-
-%D \macros
-%D {ifshowwarnings, ifshowmessages}
-%D
-%D Sometimes displaying message can slow down processing
-%D considerably. We therefore introduce warnings. Users can
-%D turn of warnings and messages by saying:
-%D
-%D \starttyping
-%D \showwarningstrue
-%D \showmessagestrue
-%D \stoptyping
-%D
-%D Turning off messages also turns off warnings, which is
-%D quote logical because they are less important.
-
-% not yet mkiv
-
-\newif\ifshowwarnings \showwarningstrue
-\newif\ifshowmessages \showmessagestrue
-
-\let\normalshowmessage\showmessage
-
-\def\showwarning
- {\ifshowwarnings
- \expandafter\showmessage
- \else
- \expandafter\gobblethreearguments
- \fi}
-
-\def\showmessage
- {\ifshowmessages
- \expandafter\normalshowmessage
- \else
- \expandafter\gobblethreearguments
- \fi}
-
-%D \macros
-%D {dosetvalue,dosetevalue,dosetgvalue,dosetxvalue,docopyvalue,doresetvalue} % dogetvalue
-%D
-%D We already defined these auxiliary macros in the system
-%D modules. Starting with this module however, we have to take
-%D multi||linguality a bit more serious.
-
-\def\doresetvalue#1#2%
- {\dosetvalue{#1}{#2}{}}
-
-\def\doignorevalue#1#2#3%
- {\dosetvalue{#1}{#2}{}}
-
-\def\dosetvalue#1#2%
- {\let\c!internal!\c!internal!n
- \ifcsname\k!prefix!#2\endcsname
- \let\c!internal!\c!internal!y
- \@EA\def\csname#1\csname\k!prefix!#2\endcsname%\endcsname
- \else
- \let\c!internal!\c!internal!y
- \@EA\def\csname#1#2%\endcsname
- \fi\endcsname}
-
-\def\dosetevalue#1#2%
- {\let\c!internal!\c!internal!n
- \ifcsname\k!prefix!#2\endcsname
- \let\c!internal!\c!internal!y
- \@EA\edef\csname#1\csname\k!prefix!#2\endcsname%\endcsname
- \else
- \let\c!internal!\c!internal!y
- \@EA\edef\csname#1#2%\endcsname
- \fi\endcsname}
-
-\def\dosetgvalue#1#2%
- {\let\c!internal!\c!internal!n
- \ifcsname\k!prefix!#2\endcsname
- \let\c!internal!\c!internal!y
- \@EA\gdef\csname#1\csname\k!prefix!#2\endcsname%\endcsname
- \else
- \let\c!internal!\c!internal!y
- \@EA\gdef\csname#1#2%\endcsname
- \fi\endcsname}
-
-\def\dosetxvalue#1#2%
- {\let\c!internal!\c!internal!n
- \ifcsname\k!prefix!#2\endcsname
- \let\c!internal!\c!internal!y
- \@EA\xdef\csname#1\csname\k!prefix!#2\endcsname%\endcsname
- \else
- \let\c!internal!\c!internal!y
- \@EA\xdef\csname#1#2%\endcsname
- \fi\endcsname}
-
-\def\docopyvalue#1#2#3% real tricky expansion, quite unreadable
- {\let\c!internal!\c!internal!n
- \ifcsname\k!prefix!#3\endcsname
- \let\c!internal!\c!internal!y
- \@EA\def\csname#1\csname\k!prefix!#3\endcsname
- \@EA\endcsname\@EA{\csname#2\csname\k!prefix!#3\endcsname\endcsname}%
- \else
- \let\c!internal!\c!internal!y
- \@EA\def\csname#1#3\@EA\endcsname\@EA{\csname#2#3\endcsname}%
- \fi}
-
-%D We can now redefine some messages that will be
-%D introduced in the multi||lingual system module.
-
-\def\showassignerror #1#2{\showmessage\m!check1{#1,#2}\waitonfatalerror}
-\def\showargumenterror#1#2{\showmessage\m!check2{#1,#2}\waitonfatalerror}
-\def\showdefinederror #1#2{\showmessage\m!check3{#1,#2}\waitonfatalerror}
-
-%D \CONTEXT\ is a parameter driven package. This means that
-%D users instruct the system by means of variables, values and
-%D keywords. These instructions take the form:
-%D
-%D \starttyping
-%D \setupsomething[some variable=some value, another one=a keyword]
-%D \stoptyping
-%D
-%D or by keyword only:
-%D
-%D \starttyping
-%D \dosomething[this way,that way,no way]
-%D \stoptyping
-%D
-%D Because the same variables can occur in more than one setup
-%D command, we have to be able to distinguish them. This is
-%D achieved by assigning them a unique prefix.
-%D
-%D Imagine a setup command for boxed text, that enables us to
-%D specify the height and width of the box. Behide the scenes
-%D the command
-%D
-%D \starttyping
-%D \setupbox [width=12cm, height=3cm]
-%D \stoptyping
-%D
-%D results in something like
-%D
-%D \starttyping
-%D \<box><width> {12cm}
-%D \<box><height> {3cm}
-%D \stoptyping
-%D
-%D while a similar command for specifying the page dimensions
-%D of an \cap{A4} page results in:
-%D
-%D \starttyping
-%D \<page><width> {21.0cm}
-%D \<page><height> {27.9cm}
-%D \stoptyping
-%D
-%D The prefixes \type{<box>} and \type{<page>} are hidden from
-%D users and can therefore be language independant. Variables
-%D on the other hand, differ for each language:
-%D
-%D \starttyping
-%D \<box><color> {<blue>}
-%D \<box><kleur> {<blauw>}
-%D \<box><couleur> {<blue>}
-%D \stoptyping
-%D
-%D In this example we can see that the assigned values or
-%D keywords are language dependant too. This will be a
-%D complication when defining multi||lingual setup files.
-%D
-%D A third phenomena is that variables and values can have a
-%D similar meaning.
-%D
-%D \starttyping
-%D \<pagenumber><location> {<left>}
-%D \<skip><left> {12cm}
-%D \stoptyping
-%D
-%D A (minor) complication is that where in english we use
-%D \type{<left>}, in dutch we find both \type{<links>} and
-%D \type{<linker>}. This means that when we use some sort of
-%D translation table, we have to distinguish between the
-%D variables at the left side and the fixed values at the
-%D right.
-%D
-%D The same goes for commands that are composed of different
-%D user supplied and/or language specific elements. In english
-%D we can use:
-%D
-%D \starttyping
-%D \<empty><figure>
-%D \<empty><intermezzo>
-%D \stoptyping
-%D
-%D But in dutch we have the following:
-%D
-%D \starttyping
-%D \<lege><figuur>
-%D \<leeg><intermezzo>
-%D \stoptyping
-%D
-%D These subtle differences automatically lead to a solution
-%D where variables, values, elements and other components have
-%D a similar logical name (used in macro's) but a different
-%D meaning (supplied by the user).
-%D
-%D Our solution is one in which the whole system is programmed
-%D in terms of identifiers with language specific meanings. In
-%D such an implementation, each fixed variable is available as:
-%D
-%D \starttyping
-%D \<prefix><variable>
-%D \stoptyping
-%D
-%D This means that for instance:
-%D
-%D \starttyping
-%D \setupbox[width=12cm]
-%D \stoptyping
-%D
-%D expands to something like:
-%D
-%D \starttyping
-%D \def\boxwidth{12cm}
-%D \stoptyping
-%D
-%D because we don't want to recode the source, a setup command
-%D in another language has to expand to this variable, so:
-%D
-%D \starttyping
-%D \setupblock[width=12cm]
-%D \stoptyping
-%D
-%D has to result in the definition of \type{\boxwidth} too.
-%D This method enables us to build compact, fast and readable
-%D code.
-%D
-%D An alternative method, which we considered using, uses a
-%D more indirect way. In this case, both calls generate a
-%D different variable:
-%D
-%D \starttyping
-%D \def\boxwidth {12cm}
-%D \def\boxbreedte {12cm}
-%D \stoptyping
-%D
-%D And because we don't want to recode those megabytes of
-%D already developed code, this variable has to be called with
-%D something like:
-%D
-%D \starttyping
-%D \valueof\box\width
-%D \stoptyping
-%D
-%D where \type{\valueof} takes care of the translation of
-%D \type{width} or \type{breedte} to \type{width} and
-%D combining this with \type{box} to \type{\boxwidth}.
-%D
-%D One advantage of this other scheme is that, within certain
-%D limits, we can implement an interface that can be switched
-%D to another language at will, while the current approach
-%D fixes the interface at startup. There are, by the way,
-%D other reasons too for not choosing this scheme. Switching
-%D user generated commands is for instance impossible and a
-%D dual interface would therefore give a strange mix of
-%D languages.
-%D
-%D Now let's work out the first scheme. Although the left hand
-%D of the assignment is a variable from the users point of
-%D view, it is a constant in terms of the system. Both
-%D \type{width} and \type{breedte} expand to \type{width}
-%D because in the source we only encounter \type{width}. Such
-%D system constants are presented as
-%D
-%D \starttyping
-%D \c!width
-%D \stoptyping
-%D
-%D This constant is always equivalent to \type{width}. As we
-%D can see, we use \type{c!} to mark this one as constant. Its
-%D dutch counterpart is:
-%D
-%D \starttyping
-%D breedte
-%D \stoptyping
-%D
-%D When we interpret a setup command each variable is
-%D translated to it's \type{c!} counterpart. This means that
-%D \type{breedte} and \type{width} expand to \type{breedte}
-%D and \type{\c!width} which both expand to \type{width}. That
-%D way user variables become system constants.
-%D
-%D The interpretation is done by means of a general setup
-%D command \type{\getparameters} that we introduced in the
-%D system module. Let us define some simple setup command:
-%D
-%D \starttyping
-%D \def\setupbox[#1]%
-%D {\getparameters[\??bx][#1]}
-%D \stoptyping
-%D
-%D This command can be used as:
-%D
-%D \starttyping
-%D \setupbox [width=3cm, height=1cm]
-%D \stoptyping
-%D
-%D Afterwards we have two variables \type{\@@bxwidth} and
-%D \type{\@@bxheight} which have the values \type{3cm} and
-%D \type{1cm} assigned. These variables are a combinatiom of
-%D the setup prefix \type{\??bx}, which expands to \type{@@bx}
-%D and the translated user supplied variables \type{width} and
-%D \type{height} or \type{breedte} and \type{hoogte},
-%D depending on the actual language. In dutch we just say:
-%D
-%D \starttyping
-%D \setupblock [width=3cm, height=1cm]
-%D \stoptyping
-%D
-%D and get ourselves \type{\@@bxwidth} and \type{\@@bxheight}
-%D too. In the source of \CONTEXT, we can recognize constants
-%D and variables on their leading \type{c!}, \type{v!} etc.,
-%D prefixes on \type{??} and composed variables on \type{@@}.
-%D
-%D We already saw that user supplied keywords need some
-%D special treatment too. This time we don't translate the
-%D keyword, but instead use in the source a variable which
-%D meaning depends on the interface language.
-%D
-%D \starttyping
-%D \v!left
-%D \stoptyping
-%D
-%D Which can be used in macro's like:
-%D
-%D \starttyping
-%D \processaction
-%D [\@@bxlocation]
-%D [ \v!left=>\dosomethingontheleft,
-%D \v!middle=>\dosomthinginthemiddle,
-%D \v!right=>\dosomethingontheright]
-%D \stoptyping
-%D
-%D Because variables like \type{\@@bxlocation} can have a lot
-%D of meanings, including tricky expandable tokens, we cannot
-%D translate this meaning when we compare. This means that
-%D \type{\@@bxlocation} can be \type{left} of \type{links} of
-%D whatever meaning suits the language. But because
-%D \type{\v!left} also has a meaning that suits the language,
-%D we are able to compare.
-%D
-%D Although we know it sounds confusing we want to state two
-%D important characteristics of the interface as described:
-%D
-%D \startnarrower \em
-%D user variables become system constants
-%D \stopnarrower
-%D
-%D and
-%D
-%D \startnarrower \em
-%D user constants (keywords) become system variables
-%D \stopnarrower
-%D
-
-%D Anno 2003 I've forgotten why the \type {\c!internal} is
-%D still in there; it's probably a left over from an experiment.
-
-\let\c!internal!y \string
-\def\c!internal!n {-}
-\let\c!internal! \c!internal!y
-
-\def\setinterfaceconstant#1#2%
- {\setvalue{\c!prefix!#1}{\c!internal!#1}%
- \setvalue{\k!prefix!#2}{#1}}
-
-\def\setinterfacevariable#1#2%
- {\setvalue{\v!prefix!#1}{#2}}
-
-%D \macros
-%D {defineinterfaceconstant}
-%D
-%D Next we redefine a previously defined macro to take care of
-%D interface translation too. It's a bit redundant, because
-%D in these situations we could use the c||version, but for
-%D documentation purposes the x||alternative comes in handy.
-
-\def\defineinterfaceconstant#1#2%
- {\setvalue{\c!prefix!#1}{#2}}
-
-%D \macros
-%D {startelements}
-%D
-%D Due to the object oriented nature of \CONTEXT, we also need
-%D to define the elements that are used to build commands.
-%D
-%D Such elements sometimes are the same in diferent
-%D languages, but mostly they differ. Things can get even
-%D confusing when we look at for instance the setup commands.
-%D In english we say \type{\setup<something>}, but in dutch we
-%D have: \type{\stel<iets>in}. Such split elements are no
-%D problem, because we just define two elements. When no second
-%D part is needed, we use a \type{-}:
-
-\def\setinterfaceelement#1#2%
- {\ifcsname\e!prefix!#1\endcsname
- \doifnotvalue{\e!prefix!#1}{#2}{\setvalue{\e!prefix!#1}{#2}}%
- \else
- \setvalue{\e!prefix!#1}{#2}%
- \fi}
-
-\def\setinterfacecommand#1#2%
- {\doifnot{#1}{#2}{\@EA\def\csname#2\@EA\endcsname\@EA{\csname#1\endcsname}}}% or just \let ?
-
-%D We just ignore these:
-
-\def\startvariables{\gobbleuntil\stopvariables}
-\def\startconstants{\gobbleuntil\stopconstants}
-\def\startelements {\gobbleuntil\stopelements}
-\def\startcommands {\gobbleuntil\stopcommands}
-
-%D \macros
-%D {interfaced}
-%D
-%D The setup commands translate the constants automatically.
-%D When we want to translate 'by hand' we can use the simple
-%D but effective command:
-%D
-%D \starttyping
-%D \interfaced {something}
-%D \stoptyping
-%D
-%D Giving \type{\interfaced{breedte}} results in \type{width}
-%D or, when not defined, in \type{breedte} itself. This
-%D macro is used in the font switching mechanism.
-
-\def\interfaced#1%
- {\ifcsname\k!prefix!#1\endcsname
- \csname\k!prefix!#1\endcsname
- \else
- #1%
- \fi}
-
-%D So much for the basic multi||lingual interface commands. The
-%D macro's can be enhanced with more testing facilities, but
-%D for the moment they suffice.
-
-%D Out of convenience we define the banners here.
-
-\def\contextbanner
- {ConTeXt \space
- ver: \contextversion \space \contextmark \space \space
- fmt: \formatversion \space \space
- int: \currentinterface/\currentresponses}
-
-\def\showcontextbanner
- {\writeline\writebanner{\contextbanner}\writeline}
-
-\edef\formatversion
- {\the\normalyear.\the\normalmonth.\the\normalday}
-
-\ifx\contextversion\undefined
- \def\contextversion {unknown}
- \def\contextversionnumber{0}
-\else
- \def\contextversionnumber#1.#2.#3 #4:#5\relax{#1\ifnum#2<10 0\fi#2\ifnum#3<10 0\fi#3 #4:#5}
- \edef\contextversionnumber{\expandafter\contextversionnumber\contextversion\relax\space\contextmark}
-\fi
-
-\ifx\undefined\everydump
- \newtoks\everydump
- \def\dump{\the\everydump\normaldump}
-\fi
-
-\appendtoks \showcontextbanner \to \everydump
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-it.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-it.mkii
deleted file mode 100644
index 4a4676f6892..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-it.mkii
+++ /dev/null
@@ -1,2224 +0,0 @@
-% this file is auto-generated, don't edit this file
-%
-% definitions for interface variables for language it
-%
-\setinterfacevariable{Addition}{Aggiunta}
-\setinterfacevariable{Alphabetic}{Alphabetic}
-\setinterfacevariable{Balloon}{Pallone}
-\setinterfacevariable{Cap}{Cap}
-\setinterfacevariable{Capital}{Maiuscolo}
-\setinterfacevariable{Character}{Lettera}
-\setinterfacevariable{Characters}{Lettere}
-\setinterfacevariable{CloseDocument}{ChiudiDocumento}
-\setinterfacevariable{ExitViewer}{EsciVisualizzatore}
-\setinterfacevariable{FirstPage}{PrimaPagina}
-\setinterfacevariable{FitHeight}{FitHeight}
-\setinterfacevariable{FitWidth}{FitWidth}
-\setinterfacevariable{GotoPage}{VaiAPagina}
-\setinterfacevariable{Greek}{Greco}
-\setinterfacevariable{Help}{Aiuto}
-\setinterfacevariable{HideField}{NascondiCampo}
-\setinterfacevariable{HideLayer}{HideLayer}
-\setinterfacevariable{Key}{Tasto}
-\setinterfacevariable{LastPage}{UltimaPagina}
-\setinterfacevariable{LoadForm}{CaricaForm}
-\setinterfacevariable{MONTH}{MESE}
-\setinterfacevariable{New}{Nuovo}
-\setinterfacevariable{NextJump}{SaltoSuccessivo}
-\setinterfacevariable{NextPage}{PaginaSuccessiva}
-\setinterfacevariable{Numbers}{Numeri}
-\setinterfacevariable{OpenNamedDocument}{OpenNamedDocument}
-\setinterfacevariable{Ordinal}{Ordinal}
-\setinterfacevariable{Paragraph}{Capoverso}
-\setinterfacevariable{PauseMovie}{PausaFilm}
-\setinterfacevariable{PauseRendering}{PauseRendering}
-\setinterfacevariable{PauseSound}{PausaSuono}
-\setinterfacevariable{PreviousJump}{SaltoPrecedente}
-\setinterfacevariable{PreviousPage}{PaginaPrecedente}
-\setinterfacevariable{PrintDocument}{StampaDocumento}
-\setinterfacevariable{Query}{Richiesta}
-\setinterfacevariable{QueryAgain}{RinnovaRichiesta}
-\setinterfacevariable{ResetForm}{ReimpostaForm}
-\setinterfacevariable{ResumeMovie}{RiprendiFilm}
-\setinterfacevariable{ResumeRendering}{ResumeRendering}
-\setinterfacevariable{ResumeSound}{RiprendiSuono}
-\setinterfacevariable{Romannumerals}{Numeriromani}
-\setinterfacevariable{SaveDocument}{SalvaDocumento}
-\setinterfacevariable{SaveForm}{SalvaForm}
-\setinterfacevariable{SaveNamedDocument}{SaveNamedDocument}
-\setinterfacevariable{SearchAgain}{CercaAncora}
-\setinterfacevariable{SearchDocument}{CercaDocumento}
-\setinterfacevariable{ShowBookmarks}{MostraSegnalibro}
-\setinterfacevariable{ShowField}{MostraCampo}
-\setinterfacevariable{ShowThumbs}{MostraThumbs}
-\setinterfacevariable{StartMovie}{IniziaFilm}
-\setinterfacevariable{StartRendering}{StartRendering}
-\setinterfacevariable{StartSound}{IniziaSuono}
-\setinterfacevariable{StopMovie}{FermaFilm}
-\setinterfacevariable{StopRendering}{StopRendering}
-\setinterfacevariable{StopSound}{FermaSuono}
-\setinterfacevariable{SubmitForm}{MandaForm}
-\setinterfacevariable{ToggleLayer}{ToggleLayer}
-\setinterfacevariable{ToggleViewer}{ScambiaVisualizzatore}
-\setinterfacevariable{URL}{URL}
-\setinterfacevariable{VideLayer}{VideLayer}
-\setinterfacevariable{ViewerHelp}{AiutoVisualizzatore}
-\setinterfacevariable{WEEKDAY}{GIORNOSETTIMANA}
-\setinterfacevariable{WORD}{PAROLA}
-\setinterfacevariable{WORDS}{PAROLE}
-\setinterfacevariable{Word}{Parola}
-\setinterfacevariable{Words}{Parole}
-\setinterfacevariable{abbreviation}{abbreviazione}
-\setinterfacevariable{abbreviations}{abbreviazioni}
-\setinterfacevariable{absolute}{assoluto}
-\setinterfacevariable{action}{azione}
-\setinterfacevariable{after}{dopo}
-\setinterfacevariable{all}{tutti}
-\setinterfacevariable{alphabetic}{alphabetic}
-\setinterfacevariable{always}{sempre}
-\setinterfacevariable{anchor}{anchor}
-\setinterfacevariable{and}{and}
-\setinterfacevariable{answerarea}{answerarea}
-\setinterfacevariable{appendices}{appendici}
-\setinterfacevariable{appendix}{appendice}
-\setinterfacevariable{april}{aprile}
-\setinterfacevariable{aside}{aside}
-\setinterfacevariable{atleftmargin}{atleftmargin}
-\setinterfacevariable{atmargin}{almargine}
-\setinterfacevariable{atpage}{apagina}
-\setinterfacevariable{atrightmargin}{atrightmargin}
-\setinterfacevariable{attachment}{attachment}
-\setinterfacevariable{august}{agosto}
-\setinterfacevariable{author}{autore}
-\setinterfacevariable{auto}{auto}
-\setinterfacevariable{autointro}{autointro}
-\setinterfacevariable{autopunctuation}{autopunctuation}
-\setinterfacevariable{back}{dietro}
-\setinterfacevariable{background}{sfondo}
-\setinterfacevariable{backmatter}{postambolo}
-\setinterfacevariable{backpart}{postfazione}
-\setinterfacevariable{backspace}{backspace}
-\setinterfacevariable{backward}{indietro}
-\setinterfacevariable{bbl}{bbl}
-\setinterfacevariable{before}{prima}
-\setinterfacevariable{begin}{begin}
-\setinterfacevariable{bib}{bib}
-\setinterfacevariable{big}{grande}
-\setinterfacevariable{bigbodyfont}{grossofontdeltesto}
-\setinterfacevariable{bigger}{bigger}
-\setinterfacevariable{bigpreference}{grandepreferenza}
-\setinterfacevariable{blank}{rigovuoto}
-\setinterfacevariable{block}{block}
-\setinterfacevariable{blockquote}{blockquote}
-\setinterfacevariable{bodymatter}{testiprincipali}
-\setinterfacevariable{bodypart}{testoprincipale}
-\setinterfacevariable{bold}{grassetto}
-\setinterfacevariable{bolditalic}{grassettocorsivo}
-\setinterfacevariable{boldslanted}{grassettoinclinato}
-\setinterfacevariable{bookmark}{segnalibro}
-\setinterfacevariable{both}{entrambi}
-\setinterfacevariable{bothtext}{bothtext}
-\setinterfacevariable{bottom}{fondo}
-\setinterfacevariable{box}{box}
-\setinterfacevariable{brief}{brief}
-\setinterfacevariable{broad}{ampio}
-\setinterfacevariable{buffer}{buffer}
-\setinterfacevariable{by}{da}
-\setinterfacevariable{calligraphic}{calligrafico}
-\setinterfacevariable{camel}{camel}
-\setinterfacevariable{cap}{cap}
-\setinterfacevariable{capital}{maiuscolo}
-\setinterfacevariable{category}{category}
-\setinterfacevariable{cd:character}{cd:character}
-\setinterfacevariable{cd:font}{cd:font}
-\setinterfacevariable{center}{center}
-\setinterfacevariable{centerlast}{centerlast}
-\setinterfacevariable{chapter}{capitolo}
-\setinterfacevariable{character}{lettera}
-\setinterfacevariable{characters}{lettere}
-\setinterfacevariable{chemical}{chemical}
-\setinterfacevariable{chemicals}{chemicals}
-\setinterfacevariable{chemistry}{chemistry}
-\setinterfacevariable{cite}{cite}
-\setinterfacevariable{closed}{closed}
-\setinterfacevariable{color}{colore}
-\setinterfacevariable{column}{colonna}
-\setinterfacevariable{columns}{colonne}
-\setinterfacevariable{combination}{combination}
-\setinterfacevariable{command}{comando}
-\setinterfacevariable{commands}{comandi}
-\setinterfacevariable{comment}{commento}
-\setinterfacevariable{component}{componente}
-\setinterfacevariable{compressseparator}{compressseparator}
-\setinterfacevariable{compressstopper}{compressstopper}
-\setinterfacevariable{concept}{concetto}
-\setinterfacevariable{construction}{construction}
-\setinterfacevariable{content}{indice}
-\setinterfacevariable{contents}{indici}
-\setinterfacevariable{continue}{continua}
-\setinterfacevariable{continued}{continued}
-\setinterfacevariable{controls}{controlli}
-\setinterfacevariable{conversion}{coversione}
-\setinterfacevariable{current}{corrente}
-\setinterfacevariable{cutspace}{cutspace}
-\setinterfacevariable{dataset}{dataset}
-\setinterfacevariable{date}{data}
-\setinterfacevariable{day}{giorno}
-\setinterfacevariable{december}{dicembre}
-\setinterfacevariable{default}{implicito}
-\setinterfacevariable{depth}{profondita}
-\setinterfacevariable{description}{descrizione}
-\setinterfacevariable{disable}{disattiva}
-\setinterfacevariable{display}{schermo}
-\setinterfacevariable{dot}{punto}
-\setinterfacevariable{doublesided}{doppiafaccia}
-\setinterfacevariable{down}{down}
-\setinterfacevariable{each}{ogni}
-\setinterfacevariable{edge}{bordo}
-\setinterfacevariable{effective}{effective}
-\setinterfacevariable{eight}{eight}
-\setinterfacevariable{embed}{embed}
-\setinterfacevariable{empty}{vuoto}
-\setinterfacevariable{enable}{enable}
-\setinterfacevariable{end}{end}
-\setinterfacevariable{endnote}{endnote}
-\setinterfacevariable{enumeration}{enumerazione}
-\setinterfacevariable{environment}{ambiente}
-\setinterfacevariable{even}{pari}
-\setinterfacevariable{export}{export}
-\setinterfacevariable{external}{esterno}
-\setinterfacevariable{extremestretch}{extremestretch}
-\setinterfacevariable{fact}{fatto}
-\setinterfacevariable{fallback}{fallback}
-\setinterfacevariable{february}{febbraio}
-\setinterfacevariable{field}{field}
-\setinterfacevariable{figure}{figura}
-\setinterfacevariable{figures}{figure}
-\setinterfacevariable{file}{file}
-\setinterfacevariable{final}{finale}
-\setinterfacevariable{first}{primo}
-\setinterfacevariable{firstcolumn}{firstcolumn}
-\setinterfacevariable{firstpage}{primapagina}
-\setinterfacevariable{firstsubpage}{primasottopagina}
-\setinterfacevariable{fit}{adatta}
-\setinterfacevariable{five}{cinque}
-\setinterfacevariable{fix}{fisso}
-\setinterfacevariable{fixed}{fisso}
-\setinterfacevariable{flexible}{flessibile}
-\setinterfacevariable{float}{oggettomobile}
-\setinterfacevariable{flushinner}{flushinner}
-\setinterfacevariable{flushleft}{flushleft}
-\setinterfacevariable{flushouter}{flushouter}
-\setinterfacevariable{flushright}{flushright}
-\setinterfacevariable{followingpage}{followingpage}
-\setinterfacevariable{font}{font}
-\setinterfacevariable{footer}{piedipagina}
-\setinterfacevariable{footnote}{notapdp}
-\setinterfacevariable{force}{forza}
-\setinterfacevariable{foreground}{foreground}
-\setinterfacevariable{formula}{formula}
-\setinterfacevariable{formulas}{formule}
-\setinterfacevariable{forward}{avanti}
-\setinterfacevariable{four}{quattro}
-\setinterfacevariable{fractions}{fractions}
-\setinterfacevariable{frame}{cornice}
-\setinterfacevariable{framedtext}{testoincorniciato}
-\setinterfacevariable{friday}{venerdi}
-\setinterfacevariable{frontmatter}{preambolo}
-\setinterfacevariable{frontpart}{prefazione}
-\setinterfacevariable{fullhz}{fullhz}
-\setinterfacevariable{global}{globale}
-\setinterfacevariable{graphic}{grafico}
-\setinterfacevariable{graphics}{grafici}
-\setinterfacevariable{gray}{grigio}
-\setinterfacevariable{greek}{greco}
-\setinterfacevariable{grid}{griglia}
-\setinterfacevariable{halfline}{mezzariga}
-\setinterfacevariable{handwritten}{grafiamanuale}
-\setinterfacevariable{hang}{sospendi}
-\setinterfacevariable{hanging}{sospeso}
-\setinterfacevariable{hangingboth}{hangingboth}
-\setinterfacevariable{head}{testa}
-\setinterfacevariable{header}{intestazione}
-\setinterfacevariable{headintext}{headintext}
-\setinterfacevariable{height}{altezza}
-\setinterfacevariable{helptext}{testoaiuto}
-\setinterfacevariable{hencefore}{precedente}
-\setinterfacevariable{here}{qui}
-\setinterfacevariable{hereafter}{seguente}
-\setinterfacevariable{hidden}{nascosto}
-\setinterfacevariable{hiddenbar}{hiddenbar}
-\setinterfacevariable{hiding}{nascondere}
-\setinterfacevariable{high}{alto}
-\setinterfacevariable{horizontal}{orizzontale}
-\setinterfacevariable{hyphenated}{sillabato}
-\setinterfacevariable{hz}{hz}
-\setinterfacevariable{inbetween}{tra}
-\setinterfacevariable{index}{indiceanalitico}
-\setinterfacevariable{indices}{indicianalitici}
-\setinterfacevariable{inherit}{inherit}
-\setinterfacevariable{ininner}{ininner}
-\setinterfacevariable{ininneredge}{ininneredge}
-\setinterfacevariable{ininnermargin}{ininnermargin}
-\setinterfacevariable{inleft}{insinistra}
-\setinterfacevariable{inleftedge}{inlatosinistro}
-\setinterfacevariable{inleftmargin}{inmarginesinistro}
-\setinterfacevariable{inline}{inline}
-\setinterfacevariable{inmargin}{inmargine}
-\setinterfacevariable{inner}{interno}
-\setinterfacevariable{inneredge}{bordointerno}
-\setinterfacevariable{innermargin}{margineinterno}
-\setinterfacevariable{inother}{inother}
-\setinterfacevariable{inouter}{inouter}
-\setinterfacevariable{inouteredge}{inouteredge}
-\setinterfacevariable{inoutermargin}{inoutermargin}
-\setinterfacevariable{inright}{indestra}
-\setinterfacevariable{inrightedge}{inlatodestro}
-\setinterfacevariable{inrightmargin}{inmarginedestro}
-\setinterfacevariable{integral}{integral}
-\setinterfacevariable{interaction}{interazione}
-\setinterfacevariable{interactionmenu}{menuinterattivo}
-\setinterfacevariable{interactive}{interactive}
-\setinterfacevariable{intermezzi}{intermezzi}
-\setinterfacevariable{intermezzo}{intermezzo}
-\setinterfacevariable{intext}{intesto}
-\setinterfacevariable{intro}{intro}
-\setinterfacevariable{invertedshort}{invertedshort}
-\setinterfacevariable{italic}{corsivo}
-\setinterfacevariable{italicbold}{corsivograssetto}
-\setinterfacevariable{item}{elemento}
-\setinterfacevariable{itemize}{elenco}
-\setinterfacevariable{its}{its}
-\setinterfacevariable{january}{gennaio}
-\setinterfacevariable{joinedup}{unito}
-\setinterfacevariable{july}{luglio}
-\setinterfacevariable{june}{giugno}
-\setinterfacevariable{keep}{mantieni}
-\setinterfacevariable{kerncharacters}{kerncharacters}
-\setinterfacevariable{knockout}{knockout}
-\setinterfacevariable{label}{etichetta}
-\setinterfacevariable{landscape}{orizzontale}
-\setinterfacevariable{last}{ultimo}
-\setinterfacevariable{lastcolumn}{lastcolumn}
-\setinterfacevariable{lastpage}{ultimapagina}
-\setinterfacevariable{lastpagenumber}{lastpagenumber}
-\setinterfacevariable{lastsubpage}{ultimasottopagina}
-\setinterfacevariable{layer}{layer}
-\setinterfacevariable{left}{sinistra}
-\setinterfacevariable{leftedge}{bordosinistro}
-\setinterfacevariable{lefthanging}{lefthanging}
-\setinterfacevariable{leftmargin}{marginesinistro}
-\setinterfacevariable{leftpage}{paginasinistra}
-\setinterfacevariable{lefttoright}{lefttoright}
-\setinterfacevariable{legend}{legenda}
-\setinterfacevariable{less}{less}
-\setinterfacevariable{lesshyphenation}{lesshyphenation}
-\setinterfacevariable{letterspacing}{letterspacing}
-\setinterfacevariable{line}{riga}
-\setinterfacevariable{linenote}{linenote}
-\setinterfacevariable{lines}{righe}
-\setinterfacevariable{linked}{linked}
-\setinterfacevariable{list}{elenco}
-\setinterfacevariable{local}{locale}
-\setinterfacevariable{localenvironment}{ambientelocale}
-\setinterfacevariable{logo}{logo}
-\setinterfacevariable{logos}{loghi}
-\setinterfacevariable{lohi}{pedap}
-\setinterfacevariable{long}{long}
-\setinterfacevariable{loose}{lento}
-\setinterfacevariable{low}{basso}
-\setinterfacevariable{ls}{ls}
-\setinterfacevariable{makeup}{makeup}
-\setinterfacevariable{mar}{mar}
-\setinterfacevariable{march}{marzo}
-\setinterfacevariable{margin}{margine}
-\setinterfacevariable{marginedge}{bordomargine}
-\setinterfacevariable{margintext}{testoinmargine}
-\setinterfacevariable{margintitle}{titoloinmargine}
-\setinterfacevariable{marking}{marcatura}
-\setinterfacevariable{math}{math}
-\setinterfacevariable{mathalignment}{mathalignment}
-\setinterfacevariable{mathcases}{mathcases}
-\setinterfacevariable{mathematics}{matematica}
-\setinterfacevariable{mathmatrix}{mathmatrix}
-\setinterfacevariable{max}{max}
-\setinterfacevariable{maxdepth}{maxdepth}
-\setinterfacevariable{maxheight}{maxheight}
-\setinterfacevariable{maxwidth}{maxwidth}
-\setinterfacevariable{may}{maggio}
-\setinterfacevariable{mediaeval}{medievale}
-\setinterfacevariable{medium}{medio}
-\setinterfacevariable{middle}{centro}
-\setinterfacevariable{min}{min}
-\setinterfacevariable{mindepth}{mindepth}
-\setinterfacevariable{minheight}{altezzamin}
-\setinterfacevariable{minwidth}{ampiezzamin}
-\setinterfacevariable{mirrored}{riflesso}
-\setinterfacevariable{mixed}{mixed}
-\setinterfacevariable{monday}{lunedi}
-\setinterfacevariable{mono}{mono}
-\setinterfacevariable{monobold}{monograssetto}
-\setinterfacevariable{mononormal}{mononormal}
-\setinterfacevariable{month}{mese}
-\setinterfacevariable{more}{more}
-\setinterfacevariable{morehyphenation}{morehyphenation}
-\setinterfacevariable{name}{nome}
-\setinterfacevariable{narrow}{stretto}
-\setinterfacevariable{negative}{negativo}
-\setinterfacevariable{never}{mai}
-\setinterfacevariable{new}{nuovo}
-\setinterfacevariable{next}{successivo}
-\setinterfacevariable{nextevenpage}{paginaparisuccessiva}
-\setinterfacevariable{nextoddpage}{paginadisparisuccessiva}
-\setinterfacevariable{nextpage}{paginasuccessiva}
-\setinterfacevariable{nextsubpage}{sottopaginasuccessiva}
-\setinterfacevariable{nine}{nine}
-\setinterfacevariable{no}{no}
-\setinterfacevariable{nocheck}{nocheck}
-\setinterfacevariable{nodepth}{nodepth}
-\setinterfacevariable{nofit}{nofit}
-\setinterfacevariable{nogrid}{nogrid}
-\setinterfacevariable{noheight}{noheight}
-\setinterfacevariable{nohz}{nohz}
-\setinterfacevariable{noline}{noline}
-\setinterfacevariable{nomarking}{nomarcature}
-\setinterfacevariable{nomenubar}{nomenubar}
-\setinterfacevariable{none}{nessuno}
-\setinterfacevariable{nonumber}{nonumber}
-\setinterfacevariable{norepeat}{norepeat}
-\setinterfacevariable{normal}{normale}
-\setinterfacevariable{normalshort}{normalshort}
-\setinterfacevariable{nospacing}{nospacing}
-\setinterfacevariable{nostopper}{nostopper}
-\setinterfacevariable{not}{non}
-\setinterfacevariable{notation}{notation}
-\setinterfacevariable{note}{note}
-\setinterfacevariable{nothanging}{nonsospeso}
-\setinterfacevariable{nothyphenated}{nonsillabato}
-\setinterfacevariable{notjoinedup}{notjoinedup}
-\setinterfacevariable{november}{novembre}
-\setinterfacevariable{nowhere}{danessunaparte}
-\setinterfacevariable{nowhite}{nobianco}
-\setinterfacevariable{number}{numero}
-\setinterfacevariable{numbers}{numeri}
-\setinterfacevariable{october}{ottobre}
-\setinterfacevariable{odd}{dispari}
-\setinterfacevariable{off}{disattivo}
-\setinterfacevariable{offset}{offset}
-\setinterfacevariable{old}{old}
-\setinterfacevariable{oldstyle}{oldstyle}
-\setinterfacevariable{on}{attivo}
-\setinterfacevariable{one}{uno}
-\setinterfacevariable{opposite}{opposto}
-\setinterfacevariable{ordinal}{ordinal}
-\setinterfacevariable{outer}{esterno}
-\setinterfacevariable{outeredge}{bordoesterno}
-\setinterfacevariable{outermargin}{margineesterno}
-\setinterfacevariable{overbar}{sopralinea}
-\setinterfacevariable{overbars}{sopralinee}
-\setinterfacevariable{overlay}{sovrapponi}
-\setinterfacevariable{overprint}{overprint}
-\setinterfacevariable{overstrike}{sbarrato}
-\setinterfacevariable{overstrikes}{sbarrati}
-\setinterfacevariable{packed}{impaccato}
-\setinterfacevariable{page}{pagina}
-\setinterfacevariable{pagecomment}{commentopagina}
-\setinterfacevariable{pagenumber}{numeropagina}
-\setinterfacevariable{paper}{carta}
-\setinterfacevariable{paragraph}{capoverso}
-\setinterfacevariable{part}{parte}
-\setinterfacevariable{positive}{positivo}
-\setinterfacevariable{postponing}{posporre}
-\setinterfacevariable{postscript}{postscript}
-\setinterfacevariable{precedingpage}{precedingpage}
-\setinterfacevariable{preference}{preferenza}
-\setinterfacevariable{preview}{anteprima}
-\setinterfacevariable{previous}{precedente}
-\setinterfacevariable{previousevenpage}{paginapariprecedente}
-\setinterfacevariable{previousoddpage}{paginadispariprecedente}
-\setinterfacevariable{previouspage}{paginaprecedente}
-\setinterfacevariable{previoussubpage}{sottopaginaprecedente}
-\setinterfacevariable{print}{print}
-\setinterfacevariable{printable}{stampabile}
-\setinterfacevariable{process}{process}
-\setinterfacevariable{product}{prodotto}
-\setinterfacevariable{program}{programma}
-\setinterfacevariable{project}{progetto}
-\setinterfacevariable{protected}{protetto}
-\setinterfacevariable{quadruple}{quadruplo}
-\setinterfacevariable{quarterline}{quarterline}
-\setinterfacevariable{quotation}{citazione}
-\setinterfacevariable{quote}{menzione}
-\setinterfacevariable{ran}{corse}
-\setinterfacevariable{random}{casuale}
-\setinterfacevariable{readonly}{solalettura}
-\setinterfacevariable{rectangular}{rettangolare}
-\setinterfacevariable{reference}{riferimento}
-\setinterfacevariable{referral}{referral}
-\setinterfacevariable{region}{region}
-\setinterfacevariable{register}{registro}
-\setinterfacevariable{regular}{regolare}
-\setinterfacevariable{relative}{relativo}
-\setinterfacevariable{repeat}{ripeti}
-\setinterfacevariable{required}{richiestp}
-\setinterfacevariable{reset}{reimposta}
-\setinterfacevariable{reverse}{invertito}
-\setinterfacevariable{right}{destra}
-\setinterfacevariable{rightedge}{bordodestro}
-\setinterfacevariable{righthanging}{righthanging}
-\setinterfacevariable{rightmargin}{marginedestro}
-\setinterfacevariable{rightpage}{paginadestra}
-\setinterfacevariable{righttoleft}{righttoleft}
-\setinterfacevariable{roman}{roman}
-\setinterfacevariable{romannumerals}{numeriromani}
-\setinterfacevariable{rotate}{ruota}
-\setinterfacevariable{rotated}{ruotato}
-\setinterfacevariable{round}{rotondo}
-\setinterfacevariable{row}{row}
-\setinterfacevariable{rule}{linea}
-\setinterfacevariable{samepage}{stessapagina}
-\setinterfacevariable{sans}{sans}
-\setinterfacevariable{sansbold}{sansgrassetto}
-\setinterfacevariable{sansnormal}{sansnormal}
-\setinterfacevariable{sansserif}{sansserif}
-\setinterfacevariable{saturday}{sabato}
-\setinterfacevariable{screen}{schermo}
-\setinterfacevariable{section}{capoverso}
-\setinterfacevariable{sectionblockenvironment}{ambientebloccosezione}
-\setinterfacevariable{sectionnumber}{numerosezione}
-\setinterfacevariable{see}{vedi}
-\setinterfacevariable{selectfont}{selectfont}
-\setinterfacevariable{separator}{separator}
-\setinterfacevariable{september}{settembre}
-\setinterfacevariable{serif}{serif}
-\setinterfacevariable{serifbold}{serifbold}
-\setinterfacevariable{serifnormal}{serifnormal}
-\setinterfacevariable{serried}{vicino}
-\setinterfacevariable{setups}{setups}
-\setinterfacevariable{seven}{seven}
-\setinterfacevariable{sheet}{sheet}
-\setinterfacevariable{shiftdown}{shiftdown}
-\setinterfacevariable{shiftup}{shiftup}
-\setinterfacevariable{short}{short}
-\setinterfacevariable{simplefonts}{simplefonts}
-\setinterfacevariable{simplelist}{simplelist}
-\setinterfacevariable{singlesided}{facciasingola}
-\setinterfacevariable{six}{six}
-\setinterfacevariable{slanted}{inclinato}
-\setinterfacevariable{slantedbold}{inclinatograssetto}
-\setinterfacevariable{small}{piccolo}
-\setinterfacevariable{smallbodyfont}{piccolofontdelcorpo}
-\setinterfacevariable{smallbold}{piccolograssetto}
-\setinterfacevariable{smallbolditalic}{piccolograssettocorsivo}
-\setinterfacevariable{smallboldslanted}{piccolograssettoinclinato}
-\setinterfacevariable{smallcaps}{maiuscoletto}
-\setinterfacevariable{smaller}{smaller}
-\setinterfacevariable{smallitalic}{piccolocorsivo}
-\setinterfacevariable{smallitalicbold}{piccolocorsivograssetto}
-\setinterfacevariable{smallnormal}{piccolonormale}
-\setinterfacevariable{smallslanted}{piccoloinclinato}
-\setinterfacevariable{smallslantedbold}{piccoloinclinatograssetto}
-\setinterfacevariable{smalltype}{piccolotype}
-\setinterfacevariable{somewhere}{daqualcheparte}
-\setinterfacevariable{sorted}{ordinato}
-\setinterfacevariable{sorting}{sorting}
-\setinterfacevariable{space}{spazio}
-\setinterfacevariable{spacing}{spaziatura}
-\setinterfacevariable{speech}{speech}
-\setinterfacevariable{split}{separa}
-\setinterfacevariable{spot}{spot}
-\setinterfacevariable{standard}{standard}
-\setinterfacevariable{start}{inizia}
-\setinterfacevariable{starter}{starter}
-\setinterfacevariable{sticker}{sticker}
-\setinterfacevariable{stop}{termina}
-\setinterfacevariable{stopper}{stopper}
-\setinterfacevariable{stretch}{dilata}
-\setinterfacevariable{stretched}{stretched}
-\setinterfacevariable{strict}{rigido}
-\setinterfacevariable{strong}{strong}
-\setinterfacevariable{strut}{strut}
-\setinterfacevariable{sub}{sotto}
-\setinterfacevariable{subbackward}{sottoindietro}
-\setinterfacevariable{subformula}{subformula}
-\setinterfacevariable{subforward}{sottoavanti}
-\setinterfacevariable{subject}{argomento}
-\setinterfacevariable{subpage}{sottopagina}
-\setinterfacevariable{subs}{subs}
-\setinterfacevariable{subsection}{sottocapoverso}
-\setinterfacevariable{subsubject}{sottoargomento}
-\setinterfacevariable{subsubsection}{sottosottocapoverso}
-\setinterfacevariable{subsubsubject}{sottosottoargomento}
-\setinterfacevariable{subsubsubsection}{sottosottosottocapoverso}
-\setinterfacevariable{subsubsubsubject}{sottosottosottoargomento}
-\setinterfacevariable{subsubsubsubsection}{sottosottosottosottocapoverso}
-\setinterfacevariable{subsubsubsubsubject}{sottosottosottosottoargomento}
-\setinterfacevariable{subsubsubsubsubsection}{sottosottosottosottosottocapoverso}
-\setinterfacevariable{subsubsubsubsubsubject}{sottosottosottosottosottoargomento}
-\setinterfacevariable{subsubsubsubsubsubsection}{sottosottosottosottosottosottocapoverso}
-\setinterfacevariable{subsubsubsubsubsubsubject}{sottosottosottosottosottosottoargomento}
-\setinterfacevariable{subsubsubsubsubsubsubsection}{sottosottosottosottosottosottosottocapoverso}
-\setinterfacevariable{subsubsubsubsubsubsubsubject}{sottosottosottosottosottosottosottoargomento}
-\setinterfacevariable{subsubsubsubsubsubsubsubsection}{sottosottosottosottosottosottosottosottocapoverso}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubject}{sottosottosottosottosottosottosottosottoargomento}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{sottosottosottosottosottosottosottosottosottocapoverso}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{sottosottosottosottosottosottosottosottosottoargomento}
-\setinterfacevariable{sunday}{domenica}
-\setinterfacevariable{support}{supporto}
-\setinterfacevariable{sym}{sim}
-\setinterfacevariable{symbol}{simbolo}
-\setinterfacevariable{synchronize}{synchronize}
-\setinterfacevariable{synonym}{synonym}
-\setinterfacevariable{system}{sistema}
-\setinterfacevariable{table}{tabella}
-\setinterfacevariable{tablehead}{testatabella}
-\setinterfacevariable{tables}{tabelle}
-\setinterfacevariable{tabletail}{codatabella}
-\setinterfacevariable{tabulate}{tabulato}
-\setinterfacevariable{tabulatehead}{testatabulato}
-\setinterfacevariable{tabulatetail}{codatabulato}
-\setinterfacevariable{tall}{alto}
-\setinterfacevariable{teletype}{teletype}
-\setinterfacevariable{temporary}{temporaneo}
-\setinterfacevariable{test}{test}
-\setinterfacevariable{text}{testo}
-\setinterfacevariable{textnote}{textnote}
-\setinterfacevariable{three}{tre}
-\setinterfacevariable{thursday}{giovedi}
-\setinterfacevariable{tight}{tight}
-\setinterfacevariable{title}{titolo}
-\setinterfacevariable{toggle}{toggle}
-\setinterfacevariable{tolerant}{tollerante}
-\setinterfacevariable{top}{cima}
-\setinterfacevariable{tuesday}{martedi}
-\setinterfacevariable{two}{due}
-\setinterfacevariable{txt}{txt}
-\setinterfacevariable{type}{type}
-\setinterfacevariable{typing}{typing}
-\setinterfacevariable{unavailable}{nondisponibile}
-\setinterfacevariable{underbar}{sottolinea}
-\setinterfacevariable{underbars}{sottolinee}
-\setinterfacevariable{understrike}{understrike}
-\setinterfacevariable{understrikes}{understrikes}
-\setinterfacevariable{unframed}{unframed}
-\setinterfacevariable{unicode}{unicode}
-\setinterfacevariable{unit}{unita}
-\setinterfacevariable{units}{unita}
-\setinterfacevariable{unknown}{ignoto}
-\setinterfacevariable{unpacked}{unpacked}
-\setinterfacevariable{up}{up}
-\setinterfacevariable{url}{url}
-\setinterfacevariable{used}{usato}
-\setinterfacevariable{value}{valore}
-\setinterfacevariable{vertical}{verticale}
-\setinterfacevariable{very}{molto}
-\setinterfacevariable{verystrict}{moltorigido}
-\setinterfacevariable{verytolerant}{moltotollerante}
-\setinterfacevariable{vfenced}{vfenced}
-\setinterfacevariable{vulgarfraction}{vulgarfraction}
-\setinterfacevariable{weak}{weak}
-\setinterfacevariable{wednesday}{mercoledi}
-\setinterfacevariable{week}{settimana}
-\setinterfacevariable{weekday}{giornosettimana}
-\setinterfacevariable{white}{bianco}
-\setinterfacevariable{wide}{ampio}
-\setinterfacevariable{width}{ampiezza}
-\setinterfacevariable{word}{parola}
-\setinterfacevariable{words}{words}
-\setinterfacevariable{xml}{xml}
-\setinterfacevariable{year}{anno}
-\setinterfacevariable{yes}{si}
-% definitions for interface constants for language it
-%
-\setinterfaceconstant{action}{azione}
-\setinterfaceconstant{address}{indirizzo}
-\setinterfaceconstant{after}{dopo}
-\setinterfaceconstant{afterhead}{dopotesta}
-\setinterfaceconstant{afterkey}{dopotasto}
-\setinterfaceconstant{aftersection}{aftersection}
-\setinterfaceconstant{align}{allinea}
-\setinterfaceconstant{alignbottom}{alignbottom}
-\setinterfaceconstant{aligncharacter}{allineacarattere}
-\setinterfaceconstant{alignmentcharacter}{carattereallineamento}
-\setinterfaceconstant{alignmentleftsample}{alignmentleftsample}
-\setinterfaceconstant{alignmentleftwidth}{alignmentleftwidth}
-\setinterfaceconstant{alignmentrightsample}{alignmentrightsample}
-\setinterfaceconstant{alignmentrightwidth}{alignmentrightwidth}
-\setinterfaceconstant{alignsymbol}{alignsymbol}
-\setinterfaceconstant{aligntitle}{allineatitolo}
-\setinterfaceconstant{alternative}{alternativa}
-\setinterfaceconstant{anchor}{anchor}
-\setinterfaceconstant{anchoring}{anchoring}
-\setinterfaceconstant{andtext}{andtext}
-\setinterfaceconstant{apa}{apa}
-\setinterfaceconstant{arguments}{arguments}
-\setinterfaceconstant{arrow}{freccia}
-\setinterfaceconstant{artauthor}{artauthor}
-\setinterfaceconstant{artauthoretaldisplay}{artauthoretaldisplay}
-\setinterfaceconstant{artauthoretallimit}{artauthoretallimit}
-\setinterfaceconstant{artauthoretaltext}{artauthoretaltext}
-\setinterfaceconstant{artoffset}{artoffset}
-\setinterfaceconstant{at}{ad}
-\setinterfaceconstant{author}{autore}
-\setinterfaceconstant{authorconversion}{authorconversion}
-\setinterfaceconstant{authoretaldisplay}{authoretaldisplay}
-\setinterfaceconstant{authoretallimit}{authoretallimit}
-\setinterfaceconstant{authoretaltext}{authoretaltext}
-\setinterfaceconstant{auto}{auto}
-\setinterfaceconstant{autocase}{autocase}
-\setinterfaceconstant{autofile}{autofile}
-\setinterfaceconstant{autofocus}{autofocus}
-\setinterfaceconstant{autohang}{autohang}
-\setinterfaceconstant{autostrut}{autostrut}
-\setinterfaceconstant{autowidth}{autoampiezza}
-\setinterfaceconstant{availableheight}{availableheight}
-\setinterfaceconstant{availablewidth}{availablewidth}
-\setinterfaceconstant{axis}{asse}
-\setinterfaceconstant{background}{sfondo}
-\setinterfaceconstant{backgroundcolor}{coloresfondo}
-\setinterfaceconstant{backgroundcorner}{angolosfondo}
-\setinterfaceconstant{backgrounddepth}{profonditasfondo}
-\setinterfaceconstant{backgroundoffset}{offsetsfondo}
-\setinterfaceconstant{backgroundradius}{raggiosfondo}
-\setinterfaceconstant{backgroundscreen}{schermosfondo}
-\setinterfaceconstant{backreference}{backreference}
-\setinterfaceconstant{backspace}{backspace}
-\setinterfaceconstant{balance}{bilanciamento}
-\setinterfaceconstant{before}{prima}
-\setinterfaceconstant{beforehead}{primaditesta}
-\setinterfaceconstant{beforesection}{beforesection}
-\setinterfaceconstant{bet}{bet}
-\setinterfaceconstant{bidi}{bidi}
-\setinterfaceconstant{big}{grande}
-\setinterfaceconstant{blank}{rigovuoto}
-\setinterfaceconstant{bleedoffset}{bleedoffset}
-\setinterfaceconstant{blockway}{blockway}
-\setinterfaceconstant{bodyfont}{fonttesto}
-\setinterfaceconstant{boffset}{boffset}
-\setinterfaceconstant{boldfeatures}{boldfeatures}
-\setinterfaceconstant{boldfont}{boldfont}
-\setinterfaceconstant{bolditalicfeatures}{bolditalicfeatures}
-\setinterfaceconstant{bolditalicfont}{bolditalicfont}
-\setinterfaceconstant{boldslantedfeatures}{boldslantedfeatures}
-\setinterfaceconstant{boldslantedfont}{boldslantedfont}
-\setinterfaceconstant{bookmark}{segnalibro}
-\setinterfaceconstant{bottom}{fondo}
-\setinterfaceconstant{bottomafter}{bottomafter}
-\setinterfaceconstant{bottombefore}{bottombefore}
-\setinterfaceconstant{bottomcommand}{bottomcommand}
-\setinterfaceconstant{bottomdistance}{distanzafondo}
-\setinterfaceconstant{bottomframe}{cornicefondo}
-\setinterfaceconstant{bottomoffset}{offsetfondo}
-\setinterfaceconstant{bottomspace}{spaziofondo}
-\setinterfaceconstant{bottomstate}{statofondo}
-\setinterfaceconstant{break}{break}
-\setinterfaceconstant{buffer}{buffer}
-\setinterfaceconstant{cache}{cache}
-\setinterfaceconstant{calculate}{calcola}
-\setinterfaceconstant{category}{category}
-\setinterfaceconstant{ccommand}{ccomando}
-\setinterfaceconstant{character}{character}
-\setinterfaceconstant{characters}{characters}
-\setinterfaceconstant{check}{check}
-\setinterfaceconstant{click}{click}
-\setinterfaceconstant{clickin}{clickdentro}
-\setinterfaceconstant{clickout}{clickfuori}
-\setinterfaceconstant{clipoffset}{clipoffset}
-\setinterfaceconstant{closeaction}{azionechiudi}
-\setinterfaceconstant{closecommand}{closecommand}
-\setinterfaceconstant{closepage}{closepage}
-\setinterfaceconstant{closepageaction}{azionechiudipagina}
-\setinterfaceconstant{closesymbol}{closesymbol}
-\setinterfaceconstant{color}{colore}
-\setinterfaceconstant{column}{colonna}
-\setinterfaceconstant{columndistance}{distanzacolonne}
-\setinterfaceconstant{columns}{colonne}
-\setinterfaceconstant{comma}{comma}
-\setinterfaceconstant{command}{comando}
-\setinterfaceconstant{commandafter}{comdandodopo}
-\setinterfaceconstant{commandbefore}{comandoprima}
-\setinterfaceconstant{commands}{comandi}
-\setinterfaceconstant{comment}{comment}
-\setinterfaceconstant{commentchar}{commentchar}
-\setinterfaceconstant{commentoffset}{commentoffset}
-\setinterfaceconstant{compact}{compact}
-\setinterfaceconstant{component}{component}
-\setinterfaceconstant{compoundhyphen}{compoundhyphen}
-\setinterfaceconstant{compress}{compress}
-\setinterfaceconstant{compressdistance}{compressdistance}
-\setinterfaceconstant{compressmethod}{compressmethod}
-\setinterfaceconstant{compressseparator}{compressseparator}
-\setinterfaceconstant{compressstopper}{compressstopper}
-\setinterfaceconstant{concerns}{concerns}
-\setinterfaceconstant{connector}{connector}
-\setinterfaceconstant{continue}{continua}
-\setinterfaceconstant{contrastcolor}{colorecontrasto}
-\setinterfaceconstant{controls}{controlli}
-\setinterfaceconstant{conversion}{conversione}
-\setinterfaceconstant{convertfile}{convertifile}
-\setinterfaceconstant{copies}{copies}
-\setinterfaceconstant{corner}{angolo}
-\setinterfaceconstant{coupling}{accoppiamento}
-\setinterfaceconstant{couplingway}{modoaccoppiamento}
-\setinterfaceconstant{criterium}{criterio}
-\setinterfaceconstant{cropoffset}{cropoffset}
-\setinterfaceconstant{crossreference}{crossreference}
-\setinterfaceconstant{cssfile}{cssfile}
-\setinterfaceconstant{current}{corrente}
-\setinterfaceconstant{cutspace}{cutspace}
-\setinterfaceconstant{dash}{dash}
-\setinterfaceconstant{dat}{dat}
-\setinterfaceconstant{database}{database}
-\setinterfaceconstant{dataset}{dataset}
-\setinterfaceconstant{date}{data}
-\setinterfaceconstant{deepnumbercommand}{deepnumbercommand}
-\setinterfaceconstant{deeptextcommand}{deeptextcommand}
-\setinterfaceconstant{default}{implicito}
-\setinterfaceconstant{defaultheight}{defaultheight}
-\setinterfaceconstant{defaultwidth}{defaultwidth}
-\setinterfaceconstant{define}{define}
-\setinterfaceconstant{delay}{attesa}
-\setinterfaceconstant{depth}{profondita}
-\setinterfaceconstant{depthcorrection}{correzioneprofondita}
-\setinterfaceconstant{direction}{direzione}
-\setinterfaceconstant{directory}{directory}
-\setinterfaceconstant{display}{display}
-\setinterfaceconstant{displaythreshold}{displaythreshold}
-\setinterfaceconstant{distance}{distanza}
-\setinterfaceconstant{domain}{domain}
-\setinterfaceconstant{dot}{punto}
-\setinterfaceconstant{doublesided}{doppiafaccia}
-\setinterfaceconstant{down}{down}
-\setinterfaceconstant{dummy}{dummy}
-\setinterfaceconstant{dx}{dx}
-\setinterfaceconstant{dy}{dy}
-\setinterfaceconstant{edge}{bordo}
-\setinterfaceconstant{edgedistance}{distanzabordo}
-\setinterfaceconstant{editor}{editor}
-\setinterfaceconstant{editoretaldisplay}{editoretaldisplay}
-\setinterfaceconstant{editoretallimit}{editoretallimit}
-\setinterfaceconstant{editoretaltext}{editoretaltext}
-\setinterfaceconstant{empty}{vuoto}
-\setinterfaceconstant{entities}{entities}
-\setinterfaceconstant{entries}{entries}
-\setinterfaceconstant{equalheight}{equalheight}
-\setinterfaceconstant{equalwidth}{equalwidth}
-\setinterfaceconstant{escape}{escape}
-\setinterfaceconstant{etaldisplay}{etaldisplay}
-\setinterfaceconstant{etallimit}{etallimit}
-\setinterfaceconstant{etaloption}{etaloption}
-\setinterfaceconstant{etaltext}{etaltext}
-\setinterfaceconstant{evenmargin}{marginepari}
-\setinterfaceconstant{exact}{exact}
-\setinterfaceconstant{exitoffset}{exitoffset}
-\setinterfaceconstant{expansion}{espansione}
-\setinterfaceconstant{export}{export}
-\setinterfaceconstant{extras}{extras}
-\setinterfaceconstant{factor}{fattore}
-\setinterfaceconstant{fallback}{fallback}
-\setinterfaceconstant{fallbacks}{fallbacks}
-\setinterfaceconstant{family}{famiglia}
-\setinterfaceconstant{features}{features}
-\setinterfaceconstant{featureset}{featureset}
-\setinterfaceconstant{fences}{fences}
-\setinterfaceconstant{field}{field}
-\setinterfaceconstant{fieldbackgroundcolor}{coloresfondocampo}
-\setinterfaceconstant{fieldframecolor}{colorecornicecampo}
-\setinterfaceconstant{fieldlayer}{fieldlayer}
-\setinterfaceconstant{fieldoffset}{offsetcampo}
-\setinterfaceconstant{file}{file}
-\setinterfaceconstant{filler}{filler}
-\setinterfaceconstant{filter}{filter}
-\setinterfaceconstant{filtercommand}{filtercommand}
-\setinterfaceconstant{finalnamesep}{finalnamesep}
-\setinterfaceconstant{finalpagesep}{finalpagesep}
-\setinterfaceconstant{finalpubsep}{finalpubsep}
-\setinterfaceconstant{first}{primo}
-\setinterfaceconstant{firstnamesep}{firstnamesep}
-\setinterfaceconstant{firstpage}{primapagina}
-\setinterfaceconstant{focus}{focus}
-\setinterfaceconstant{focusin}{focusin}
-\setinterfaceconstant{focusoffset}{focusoffset}
-\setinterfaceconstant{focusout}{focusout}
-\setinterfaceconstant{font}{font}
-\setinterfaceconstant{footer}{piedipagina}
-\setinterfaceconstant{footerdistance}{distanzapdp}
-\setinterfaceconstant{footerstate}{statopdp}
-\setinterfaceconstant{force}{forza}
-\setinterfaceconstant{foregroundcolor}{coloreprimopiano}
-\setinterfaceconstant{foregroundstyle}{foregroundstyle}
-\setinterfaceconstant{format}{format}
-\setinterfaceconstant{fractions}{fractions}
-\setinterfaceconstant{frame}{cornice}
-\setinterfaceconstant{framecolor}{colorecornice}
-\setinterfaceconstant{framecorner}{angolocornice}
-\setinterfaceconstant{framedepth}{profonditacornice}
-\setinterfaceconstant{frameoffset}{offsetcornice}
-\setinterfaceconstant{frameradius}{raggiocornice}
-\setinterfaceconstant{frames}{cornici}
-\setinterfaceconstant{freeregion}{freeregion}
-\setinterfaceconstant{from}{da}
-\setinterfaceconstant{functioncolor}{functioncolor}
-\setinterfaceconstant{functionstyle}{functionstyle}
-\setinterfaceconstant{get}{prendi}
-\setinterfaceconstant{global}{globale}
-\setinterfaceconstant{goodies}{goodies}
-\setinterfaceconstant{grid}{griglia}
-\setinterfaceconstant{group}{group}
-\setinterfaceconstant{groupsuffix}{groupsuffix}
-\setinterfaceconstant{hang}{sospendi}
-\setinterfaceconstant{hcompact}{hcompact}
-\setinterfaceconstant{headalign}{headalign}
-\setinterfaceconstant{headcolor}{coloretesta}
-\setinterfaceconstant{headcommand}{headcommand}
-\setinterfaceconstant{headconversion}{conversionetesta}
-\setinterfaceconstant{header}{intestazione}
-\setinterfaceconstant{headerdistance}{distanzaintestazione}
-\setinterfaceconstant{headerstate}{statointestazione}
-\setinterfaceconstant{headlabel}{etichettatesta}
-\setinterfaceconstant{headnumber}{numerotesta}
-\setinterfaceconstant{headseparator}{headseparator}
-\setinterfaceconstant{headstyle}{stiletesta}
-\setinterfaceconstant{height}{altezza}
-\setinterfaceconstant{hfactor}{hfactor}
-\setinterfaceconstant{hfil}{hfil}
-\setinterfaceconstant{hidenumber}{hidenumber}
-\setinterfaceconstant{hoffset}{hoffset}
-\setinterfaceconstant{horizontal}{orizzontale}
-\setinterfaceconstant{horoffset}{horoffset}
-\setinterfaceconstant{hyphen}{hyphen}
-\setinterfaceconstant{hyphens}{hyphens}
-\setinterfaceconstant{icommand}{icomando}
-\setinterfaceconstant{ignore}{ignore}
-\setinterfaceconstant{in}{in}
-\setinterfaceconstant{inbetween}{tra}
-\setinterfaceconstant{increment}{incremento}
-\setinterfaceconstant{incrementnumber}{incrementanumero}
-\setinterfaceconstant{indenting}{rientro}
-\setinterfaceconstant{indentlist}{indentlist}
-\setinterfaceconstant{indentnext}{rientrasuccessivo}
-\setinterfaceconstant{index}{index}
-\setinterfaceconstant{indicator}{indicatore}
-\setinterfaceconstant{initialsep}{initialsep}
-\setinterfaceconstant{inlinethreshold}{inlinethreshold}
-\setinterfaceconstant{inner}{interno}
-\setinterfaceconstant{innermargin}{margineinterno}
-\setinterfaceconstant{inputfile}{inputfile}
-\setinterfaceconstant{insidesection}{insidesection}
-\setinterfaceconstant{instance}{instance}
-\setinterfaceconstant{intent}{intent}
-\setinterfaceconstant{interaction}{interazione}
-\setinterfaceconstant{interlinespace}{interlinea}
-\setinterfaceconstant{internalgrid}{internalgrid}
-\setinterfaceconstant{italicfeatures}{italicfeatures}
-\setinterfaceconstant{italicfont}{italicfont}
-\setinterfaceconstant{itemalign}{itemalign}
-\setinterfaceconstant{items}{elementi}
-\setinterfaceconstant{joiners}{joiners}
-\setinterfaceconstant{journalconversion}{journalconversion}
-\setinterfaceconstant{juniorsep}{juniorsep}
-\setinterfaceconstant{keeptogether}{keeptogether}
-\setinterfaceconstant{ken}{ken}
-\setinterfaceconstant{keyexpansion}{keyexpansion}
-\setinterfaceconstant{keys}{keys}
-\setinterfaceconstant{keyword}{parolachiave}
-\setinterfaceconstant{label}{etichetta}
-\setinterfaceconstant{labelalternative}{labelalternative}
-\setinterfaceconstant{labelcolor}{labelcolor}
-\setinterfaceconstant{labeloffset}{labeloffset}
-\setinterfaceconstant{labelstyle}{labelstyle}
-\setinterfaceconstant{language}{language}
-\setinterfaceconstant{last}{last}
-\setinterfaceconstant{lastnamesep}{lastnamesep}
-\setinterfaceconstant{lastpage}{ultimapagina}
-\setinterfaceconstant{lastpagesep}{lastpagesep}
-\setinterfaceconstant{lastpubsep}{lastpubsep}
-\setinterfaceconstant{layout}{layout}
-\setinterfaceconstant{left}{sinistra}
-\setinterfaceconstant{leftcolor}{coloresinistra}
-\setinterfaceconstant{leftcompoundhyphen}{leftcompoundhyphen}
-\setinterfaceconstant{leftedge}{bordosinistro}
-\setinterfaceconstant{leftedgedistance}{distanzabordosinistro}
-\setinterfaceconstant{leftframe}{cornicesinistra}
-\setinterfaceconstant{lefthyphen}{lefthyphen}
-\setinterfaceconstant{leftmargin}{marginesinistro}
-\setinterfaceconstant{leftmargindistance}{distanzamarginesinistro}
-\setinterfaceconstant{leftoffset}{offsetsinistro}
-\setinterfaceconstant{leftquotation}{citazionesinistra}
-\setinterfaceconstant{leftquote}{menzionesinistra}
-\setinterfaceconstant{leftsample}{leftsample}
-\setinterfaceconstant{leftsentence}{frasesinistra}
-\setinterfaceconstant{leftspeech}{leftspeech}
-\setinterfaceconstant{leftstyle}{stilesinistra}
-\setinterfaceconstant{leftsubsentence}{sottofrasesinistra}
-\setinterfaceconstant{lefttext}{testosinistro}
-\setinterfaceconstant{leftwidth}{ampiezzasinistra}
-\setinterfaceconstant{leftwords}{leftwords}
-\setinterfaceconstant{less}{less}
-\setinterfaceconstant{level}{livello}
-\setinterfaceconstant{levels}{livelli}
-\setinterfaceconstant{limittext}{limittext}
-\setinterfaceconstant{line}{riga}
-\setinterfaceconstant{linecorrection}{correzioneriga}
-\setinterfaceconstant{linedirection}{linedirection}
-\setinterfaceconstant{lines}{righe}
-\setinterfaceconstant{list}{elenco}
-\setinterfaceconstant{listtext}{listtext}
-\setinterfaceconstant{local}{locale}
-\setinterfaceconstant{location}{luogo}
-\setinterfaceconstant{loffset}{loffset}
-\setinterfaceconstant{logo}{logo}
-\setinterfaceconstant{logos}{loghi}
-\setinterfaceconstant{marcolor}{coloremarcatura}
-\setinterfaceconstant{margin}{margine}
-\setinterfaceconstant{margindistance}{distanzamargine}
-\setinterfaceconstant{marginedge}{bordomargine}
-\setinterfaceconstant{marginedgetext}{testobordomargine}
-\setinterfaceconstant{margintext}{testomargine}
-\setinterfaceconstant{mark}{mark}
-\setinterfaceconstant{marking}{marcatura}
-\setinterfaceconstant{marstyle}{stilemarcatura}
-\setinterfaceconstant{mask}{mask}
-\setinterfaceconstant{mathclass}{mathclass}
-\setinterfaceconstant{mathlimits}{mathlimits}
-\setinterfaceconstant{mathstyle}{mathstyle}
-\setinterfaceconstant{max}{max}
-\setinterfaceconstant{maxdepth}{maxdepth}
-\setinterfaceconstant{maxheight}{altezzamax}
-\setinterfaceconstant{maxwidth}{ampiezzamax}
-\setinterfaceconstant{maybeyear}{maybeyear}
-\setinterfaceconstant{menu}{menu}
-\setinterfaceconstant{method}{metodo}
-\setinterfaceconstant{middle}{centro}
-\setinterfaceconstant{middlecolor}{middlecolor}
-\setinterfaceconstant{middlecommand}{middlecommand}
-\setinterfaceconstant{middlespeech}{middlespeech}
-\setinterfaceconstant{middlestyle}{middlestyle}
-\setinterfaceconstant{middletext}{testocentro}
-\setinterfaceconstant{middlewidth}{middlewidth}
-\setinterfaceconstant{midsentence}{midsentence}
-\setinterfaceconstant{min}{min}
-\setinterfaceconstant{mindepth}{mindepth}
-\setinterfaceconstant{minheight}{altezzamin}
-\setinterfaceconstant{minwidth}{ampiezzamin}
-\setinterfaceconstant{moffset}{moffset}
-\setinterfaceconstant{monthconversion}{monthconversion}
-\setinterfaceconstant{more}{more}
-\setinterfaceconstant{mpdepth}{mpdepth}
-\setinterfaceconstant{mpheight}{mpheight}
-\setinterfaceconstant{mpoffset}{mpoffset}
-\setinterfaceconstant{mpwidth}{mpwidth}
-\setinterfaceconstant{n}{n}
-\setinterfaceconstant{name}{nome}
-\setinterfaceconstant{namesep}{namesep}
-\setinterfaceconstant{nbottom}{nfondo}
-\setinterfaceconstant{nc}{nc}
-\setinterfaceconstant{next}{successivo}
-\setinterfaceconstant{nextleft}{nextleft}
-\setinterfaceconstant{nextleftquotation}{nextleftquotation}
-\setinterfaceconstant{nextright}{nextright}
-\setinterfaceconstant{nextrightquotation}{nextrightquotation}
-\setinterfaceconstant{nl}{nl}
-\setinterfaceconstant{nleft}{nsinistra}
-\setinterfaceconstant{nlines}{nrighe}
-\setinterfaceconstant{norm}{norma}
-\setinterfaceconstant{note}{note}
-\setinterfaceconstant{notes}{notes}
-\setinterfaceconstant{nr}{nr}
-\setinterfaceconstant{nright}{ndestra}
-\setinterfaceconstant{ntop}{ncima}
-\setinterfaceconstant{number}{numero}
-\setinterfaceconstant{numberalign}{numberalign}
-\setinterfaceconstant{numbercolor}{colorenumero}
-\setinterfaceconstant{numbercommand}{comandonumero}
-\setinterfaceconstant{numberconversion}{numberconversion}
-\setinterfaceconstant{numberconversionset}{numberconversionset}
-\setinterfaceconstant{numberdistance}{numberdistance}
-\setinterfaceconstant{numbering}{numerazione}
-\setinterfaceconstant{numberorder}{numberorder}
-\setinterfaceconstant{numberprefix}{numberprefix}
-\setinterfaceconstant{numbersegments}{numbersegments}
-\setinterfaceconstant{numberseparator}{separatorenumero}
-\setinterfaceconstant{numberseparatorset}{numberseparatorset}
-\setinterfaceconstant{numberset}{numberset}
-\setinterfaceconstant{numberstarter}{numberstarter}
-\setinterfaceconstant{numberstopper}{numberstopper}
-\setinterfaceconstant{numberstrut}{numberstrut}
-\setinterfaceconstant{numberstyle}{stilenumero}
-\setinterfaceconstant{numberwidth}{numberwidth}
-\setinterfaceconstant{nx}{nx}
-\setinterfaceconstant{ny}{ny}
-\setinterfaceconstant{object}{oggetto}
-\setinterfaceconstant{obstruction}{ostruzione}
-\setinterfaceconstant{oddmargin}{marginedispari}
-\setinterfaceconstant{offset}{offset}
-\setinterfaceconstant{openaction}{azioneapri}
-\setinterfaceconstant{openpage}{openpage}
-\setinterfaceconstant{openpageaction}{azioneapripagina}
-\setinterfaceconstant{openup}{openup}
-\setinterfaceconstant{opticalsize}{opticalsize}
-\setinterfaceconstant{option}{opzione}
-\setinterfaceconstant{order}{order}
-\setinterfaceconstant{orientation}{orientation}
-\setinterfaceconstant{otherstext}{otherstext}
-\setinterfaceconstant{outermargin}{margineesterno}
-\setinterfaceconstant{overprint}{overprint}
-\setinterfaceconstant{ownerpassword}{ownerpassword}
-\setinterfaceconstant{ownnumber}{numeroproprio}
-\setinterfaceconstant{packcriterium}{packcriterium}
-\setinterfaceconstant{page}{pagina}
-\setinterfaceconstant{pageboundaries}{limitipagina}
-\setinterfaceconstant{pagecolor}{colorepagina}
-\setinterfaceconstant{pagecolormodel}{pagecolormodel}
-\setinterfaceconstant{pagecommand}{comandopagina}
-\setinterfaceconstant{pageconnector}{pageconnector}
-\setinterfaceconstant{pageconversion}{pageconversion}
-\setinterfaceconstant{pageconversionset}{pageconversionset}
-\setinterfaceconstant{pageleft}{pageleft}
-\setinterfaceconstant{pagemethod}{pagemethod}
-\setinterfaceconstant{pagenumber}{numeropagina}
-\setinterfaceconstant{pageprefix}{pageprefix}
-\setinterfaceconstant{pageprefixconnector}{pageprefixconnector}
-\setinterfaceconstant{pageprefixconversion}{pageprefixconversion}
-\setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset}
-\setinterfaceconstant{pageprefixsegments}{pageprefixsegments}
-\setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset}
-\setinterfaceconstant{pageprefixset}{pageprefixset}
-\setinterfaceconstant{pageprefixstarter}{pageprefixstarter}
-\setinterfaceconstant{pageprefixstopper}{pageprefixstopper}
-\setinterfaceconstant{pageright}{pageright}
-\setinterfaceconstant{pagesegments}{pagesegments}
-\setinterfaceconstant{pagesep}{pagesep}
-\setinterfaceconstant{pageseparatorset}{pageseparatorset}
-\setinterfaceconstant{pageset}{pageset}
-\setinterfaceconstant{pagestarter}{pagestarter}
-\setinterfaceconstant{pagestate}{statopagina}
-\setinterfaceconstant{pagestopper}{pagestopper}
-\setinterfaceconstant{pagestyle}{stilepagina}
-\setinterfaceconstant{palet}{tavolozza}
-\setinterfaceconstant{paper}{carta}
-\setinterfaceconstant{paragraph}{capoverso}
-\setinterfaceconstant{period}{period}
-\setinterfaceconstant{place}{metti}
-\setinterfaceconstant{placehead}{mettitesta}
-\setinterfaceconstant{placeholder}{placeholder}
-\setinterfaceconstant{placestopper}{mettistopper}
-\setinterfaceconstant{position}{posizione}
-\setinterfaceconstant{prefix}{prefisso}
-\setinterfaceconstant{prefixconnector}{prefixconnector}
-\setinterfaceconstant{prefixconversion}{prefixconversion}
-\setinterfaceconstant{prefixconversionset}{prefixconversionset}
-\setinterfaceconstant{prefixsegments}{prefixsegments}
-\setinterfaceconstant{prefixseparatorset}{prefixseparatorset}
-\setinterfaceconstant{prefixset}{prefixset}
-\setinterfaceconstant{prefixstarter}{prefixstarter}
-\setinterfaceconstant{prefixstopper}{prefixstopper}
-\setinterfaceconstant{preset}{preimpostato}
-\setinterfaceconstant{preview}{anteprima}
-\setinterfaceconstant{previous}{precedente}
-\setinterfaceconstant{previousnumber}{numeroprecedente}
-\setinterfaceconstant{print}{print}
-\setinterfaceconstant{printable}{stampabile}
-\setinterfaceconstant{process}{process}
-\setinterfaceconstant{processors}{processors}
-\setinterfaceconstant{profile}{profile}
-\setinterfaceconstant{properties}{properties}
-\setinterfaceconstant{pubsep}{pubsep}
-\setinterfaceconstant{quotechar}{quotechar}
-\setinterfaceconstant{radius}{raggio}
-\setinterfaceconstant{random}{casuale}
-\setinterfaceconstant{range}{range}
-\setinterfaceconstant{reduction}{riduzione}
-\setinterfaceconstant{ref}{ref}
-\setinterfaceconstant{refcommand}{refcommand}
-\setinterfaceconstant{reference}{riferimento}
-\setinterfaceconstant{referencemethod}{referencemethod}
-\setinterfaceconstant{referenceprefix}{referenceprefix}
-\setinterfaceconstant{referencetext}{referencetext}
-\setinterfaceconstant{referencing}{referencing}
-\setinterfaceconstant{region}{region}
-\setinterfaceconstant{regionin}{entraregione}
-\setinterfaceconstant{regionout}{esciregione}
-\setinterfaceconstant{register}{register}
-\setinterfaceconstant{regularfeatures}{regularfeatures}
-\setinterfaceconstant{regularfont}{regularfont}
-\setinterfaceconstant{renderingsetup}{renderingsetup}
-\setinterfaceconstant{repeat}{ripeti}
-\setinterfaceconstant{reset}{reset}
-\setinterfaceconstant{resetnumber}{resetnumber}
-\setinterfaceconstant{resolution}{risoluzione}
-\setinterfaceconstant{resources}{resources}
-\setinterfaceconstant{reverse}{invertito}
-\setinterfaceconstant{right}{destra}
-\setinterfaceconstant{rightchars}{rightchars}
-\setinterfaceconstant{rightcolor}{coloredestra}
-\setinterfaceconstant{rightcompoundhyphen}{rightcompoundhyphen}
-\setinterfaceconstant{rightedge}{bordodestro}
-\setinterfaceconstant{rightedgedistance}{distanzabordodestro}
-\setinterfaceconstant{rightframe}{cornicedestra}
-\setinterfaceconstant{righthyphen}{righthyphen}
-\setinterfaceconstant{rightmargin}{marginedestro}
-\setinterfaceconstant{rightmargindistance}{distanzamarginedestro}
-\setinterfaceconstant{rightoffset}{offsetdestro}
-\setinterfaceconstant{rightquotation}{citazionedestra}
-\setinterfaceconstant{rightquote}{menzionedestra}
-\setinterfaceconstant{rightsample}{rightsample}
-\setinterfaceconstant{rightsentence}{frasedestra}
-\setinterfaceconstant{rightspeech}{rightspeech}
-\setinterfaceconstant{rightstyle}{stiledestra}
-\setinterfaceconstant{rightsubsentence}{sottofrasedestra}
-\setinterfaceconstant{righttext}{testodestro}
-\setinterfaceconstant{rightwidth}{ampiezzadestra}
-\setinterfaceconstant{rightwords}{rightwords}
-\setinterfaceconstant{roffset}{roffset}
-\setinterfaceconstant{rotation}{rotazione}
-\setinterfaceconstant{rule}{linea}
-\setinterfaceconstant{rulecolor}{colorelinea}
-\setinterfaceconstant{rulecommand}{rulecommand}
-\setinterfaceconstant{rulethickness}{spessorelinea}
-\setinterfaceconstant{samepage}{stessapagina}
-\setinterfaceconstant{sample}{campione}
-\setinterfaceconstant{samplesize}{samplesize}
-\setinterfaceconstant{saveinlist}{saveinlist}
-\setinterfaceconstant{scale}{scala}
-\setinterfaceconstant{scope}{scope}
-\setinterfaceconstant{screen}{schermo}
-\setinterfaceconstant{section}{sezione}
-\setinterfaceconstant{sectionblock}{sectionblock}
-\setinterfaceconstant{sectionconversion}{sectionconversion}
-\setinterfaceconstant{sectionconversionset}{sectionconversionset}
-\setinterfaceconstant{sectionnumber}{numerosezione}
-\setinterfaceconstant{sectionresetset}{sectionresetset}
-\setinterfaceconstant{sectionsegments}{sectionsegments}
-\setinterfaceconstant{sectionseparatorset}{sectionseparatorset}
-\setinterfaceconstant{sectionset}{sectionset}
-\setinterfaceconstant{sectionstarter}{sectionstarter}
-\setinterfaceconstant{sectionstopper}{sectionstopper}
-\setinterfaceconstant{separator}{separatore}
-\setinterfaceconstant{separatorcolor}{separatorcolor}
-\setinterfaceconstant{separatorstyle}{separatorstyle}
-\setinterfaceconstant{set}{set}
-\setinterfaceconstant{setups}{setups}
-\setinterfaceconstant{shrink}{shrink}
-\setinterfaceconstant{side}{lato}
-\setinterfaceconstant{sidealign}{sidealign}
-\setinterfaceconstant{sidemethod}{sidemethod}
-\setinterfaceconstant{sidespaceafter}{spaziolateraledopo}
-\setinterfaceconstant{sidespacebefore}{spaziolateraleprima}
-\setinterfaceconstant{sidespaceinbetween}{sidespaceinbetween}
-\setinterfaceconstant{sidethreshold}{sidethreshold}
-\setinterfaceconstant{sign}{segno}
-\setinterfaceconstant{simplecommand}{simplecommand}
-\setinterfaceconstant{size}{dimensione}
-\setinterfaceconstant{slantedfeatures}{slantedfeatures}
-\setinterfaceconstant{slantedfont}{slantedfont}
-\setinterfaceconstant{small}{piccolo}
-\setinterfaceconstant{smallcapsfeatures}{smallcapsfeatures}
-\setinterfaceconstant{smallcapsfont}{smallcapsfont}
-\setinterfaceconstant{solution}{solution}
-\setinterfaceconstant{sort}{sort}
-\setinterfaceconstant{sorttype}{sorttype}
-\setinterfaceconstant{source}{origine}
-\setinterfaceconstant{space}{spazio}
-\setinterfaceconstant{spaceafter}{spaziodopo}
-\setinterfaceconstant{spaceafterside}{spaceafterside}
-\setinterfaceconstant{spacebefore}{spazioprima}
-\setinterfaceconstant{spacebeforeside}{spacebeforeside}
-\setinterfaceconstant{spaceinbetween}{spaceinbetween}
-\setinterfaceconstant{spacing}{spaziatura}
-\setinterfaceconstant{specification}{specification}
-\setinterfaceconstant{split}{separa}
-\setinterfaceconstant{splitcolor}{splitcolor}
-\setinterfaceconstant{splitmethod}{splitmethod}
-\setinterfaceconstant{splitoffset}{splitoffset}
-\setinterfaceconstant{spot}{spot}
-\setinterfaceconstant{stack}{stack}
-\setinterfaceconstant{stackname}{stackname}
-\setinterfaceconstant{start}{inizia}
-\setinterfaceconstant{starter}{starter}
-\setinterfaceconstant{state}{stato}
-\setinterfaceconstant{step}{passo}
-\setinterfaceconstant{stop}{termina}
-\setinterfaceconstant{stopper}{stopper}
-\setinterfaceconstant{stretch}{dilata}
-\setinterfaceconstant{strip}{strip}
-\setinterfaceconstant{strut}{strut}
-\setinterfaceconstant{style}{stile}
-\setinterfaceconstant{stylealternative}{stylealternative}
-\setinterfaceconstant{sub}{sotto}
-\setinterfaceconstant{subtitle}{sottotitolo}
-\setinterfaceconstant{suffix}{suffix}
-\setinterfaceconstant{suffixseparator}{suffixseparator}
-\setinterfaceconstant{suffixstopper}{suffixstopper}
-\setinterfaceconstant{surnamefirstnamesep}{surnamefirstnamesep}
-\setinterfaceconstant{surnameinitialsep}{surnameinitialsep}
-\setinterfaceconstant{surnamesep}{surnamesep}
-\setinterfaceconstant{svgstyle}{svgstyle}
-\setinterfaceconstant{sx}{sx}
-\setinterfaceconstant{sy}{sy}
-\setinterfaceconstant{symalign}{symallinea}
-\setinterfaceconstant{symbol}{simbolo}
-\setinterfaceconstant{symbolcommand}{symbolcommand}
-\setinterfaceconstant{symbolset}{setsimboli}
-\setinterfaceconstant{symcolor}{coloresimbolo}
-\setinterfaceconstant{symstyle}{stilesimbolo}
-\setinterfaceconstant{synonym}{sinonimo}
-\setinterfaceconstant{synonymcolor}{coloresinonimi}
-\setinterfaceconstant{synonymcommand}{synonymcommand}
-\setinterfaceconstant{synonymstyle}{stilesinonimi}
-\setinterfaceconstant{tab}{tab}
-\setinterfaceconstant{text}{testo}
-\setinterfaceconstant{textalign}{textalign}
-\setinterfaceconstant{textcolor}{coloretesto}
-\setinterfaceconstant{textcommand}{comandotesto}
-\setinterfaceconstant{textdistance}{distanzatesto}
-\setinterfaceconstant{textheight}{altezzatesto}
-\setinterfaceconstant{textlayer}{textlayer}
-\setinterfaceconstant{textmargin}{textmargin}
-\setinterfaceconstant{textmethod}{textmethod}
-\setinterfaceconstant{textseparator}{separatoretesto}
-\setinterfaceconstant{textsize}{dimensionetesto}
-\setinterfaceconstant{textstate}{statotesto}
-\setinterfaceconstant{textstyle}{stiletesto}
-\setinterfaceconstant{textwidth}{ampiezzatesto}
-\setinterfaceconstant{threshold}{threshold}
-\setinterfaceconstant{time}{time}
-\setinterfaceconstant{title}{titolo}
-\setinterfaceconstant{titlecolor}{coloretitolo}
-\setinterfaceconstant{titlecommand}{titlecommand}
-\setinterfaceconstant{titledistance}{distanzatitolo}
-\setinterfaceconstant{titleleft}{titleleft}
-\setinterfaceconstant{titleright}{titleright}
-\setinterfaceconstant{titlestrut}{titlestrut}
-\setinterfaceconstant{titlestyle}{stiletitolo}
-\setinterfaceconstant{to}{verso}
-\setinterfaceconstant{toffset}{toffset}
-\setinterfaceconstant{tolerance}{tolleranza}
-\setinterfaceconstant{top}{cima}
-\setinterfaceconstant{topcommand}{topcommand}
-\setinterfaceconstant{topdistance}{distanzacima}
-\setinterfaceconstant{topframe}{cornicecima}
-\setinterfaceconstant{topoffset}{offsetcima}
-\setinterfaceconstant{topspace}{spaziocima}
-\setinterfaceconstant{topstate}{statocima}
-\setinterfaceconstant{totalnumber}{totalnumber}
-\setinterfaceconstant{transform}{transform}
-\setinterfaceconstant{translate}{translate}
-\setinterfaceconstant{trimoffset}{trimoffset}
-\setinterfaceconstant{type}{type}
-\setinterfaceconstant{unit}{unita}
-\setinterfaceconstant{unknownreference}{riferimentoingoto}
-\setinterfaceconstant{up}{up}
-\setinterfaceconstant{urlalternative}{alternativaurl}
-\setinterfaceconstant{urlspace}{spaziourl}
-\setinterfaceconstant{userpassword}{userpassword}
-\setinterfaceconstant{validate}{verifica}
-\setinterfaceconstant{values}{values}
-\setinterfaceconstant{vcommand}{vcomando}
-\setinterfaceconstant{vcompact}{vcompact}
-\setinterfaceconstant{vector}{vector}
-\setinterfaceconstant{veroffset}{veroffset}
-\setinterfaceconstant{vertical}{verticale}
-\setinterfaceconstant{vfactor}{vfactor}
-\setinterfaceconstant{vfil}{vfil}
-\setinterfaceconstant{viewerprefix}{viewerprefix}
-\setinterfaceconstant{voffset}{voffset}
-\setinterfaceconstant{vonsep}{vonsep}
-\setinterfaceconstant{way}{modo}
-\setinterfaceconstant{wfactor}{wfactor}
-\setinterfaceconstant{white}{bianco}
-\setinterfaceconstant{width}{ampiezza}
-\setinterfaceconstant{words}{words}
-\setinterfaceconstant{xanchor}{xanchor}
-\setinterfaceconstant{xfactor}{xfactor}
-\setinterfaceconstant{xhtml}{xhtml}
-\setinterfaceconstant{xmax}{xmax}
-\setinterfaceconstant{xmlsetup}{xmlsetup}
-\setinterfaceconstant{xoffset}{xoffset}
-\setinterfaceconstant{xscale}{xscale}
-\setinterfaceconstant{xstep}{xstep}
-\setinterfaceconstant{yanchor}{yanchor}
-\setinterfaceconstant{yfactor}{yfactor}
-\setinterfaceconstant{ymax}{ymax}
-\setinterfaceconstant{yoffset}{yoffset}
-\setinterfaceconstant{yscale}{yscale}
-\setinterfaceconstant{ystep}{ystep}
-% definitions for interface elements for language it
-%
-\setinterfaceelement{answerlines}{answerlines}
-\setinterfaceelement{answerspace}{answerspace}
-\setinterfaceelement{begin}{inizio}
-\setinterfaceelement{complete}{completo}
-\setinterfaceelement{coupled}{accoppiato}
-\setinterfaceelement{currentlocal}{correntelocale}
-\setinterfaceelement{end}{fine}
-\setinterfaceelement{endsetup}{}
-\setinterfaceelement{get}{prendi}
-\setinterfaceelement{increment}{incrementa}
-\setinterfaceelement{list}{elenco}
-\setinterfaceelement{listof}{elencodi}
-\setinterfaceelement{load}{carica}
-\setinterfaceelement{local}{locale}
-\setinterfaceelement{makeup}{makeup}
-\setinterfaceelement{next}{successivo}
-\setinterfaceelement{place}{metti}
-\setinterfaceelement{previous}{precedente}
-\setinterfaceelement{previouslocal}{precedentelocale}
-\setinterfaceelement{reserve}{riserva}
-\setinterfaceelement{see}{vedi}
-\setinterfaceelement{setup}{imposta}
-\setinterfaceelement{start}{inizia}
-\setinterfaceelement{stop}{termina}
-\setinterfaceelement{text}{testo}
-\setinterfaceelement{type}{type}
-% definitions for interface commands for language it
-%
-\setinterfacecommand{Character}{Lettera}
-\setinterfacecommand{Characters}{Lettere}
-\setinterfacecommand{MONTH}{MESE}
-\setinterfacecommand{Numbers}{Numeri}
-\setinterfacecommand{Romannumerals}{Numeriromani}
-\setinterfacecommand{SmallCapped}{Cap}
-\setinterfacecommand{SmallCaps}{Caps}
-\setinterfacecommand{WEEKDAY}{GIORNOSETTIMANA}
-\setinterfacecommand{WORD}{PAROLA}
-\setinterfacecommand{WORDS}{PAROLE}
-\setinterfacecommand{Word}{Parola}
-\setinterfacecommand{Words}{Parole}
-\setinterfacecommand{about}{intorno}
-\setinterfacecommand{adaptfontfeature}{adaptfontfeature}
-\setinterfacecommand{adaptlayout}{adattalayout}
-\setinterfacecommand{addfeature}{addfeature}
-\setinterfacecommand{alignbottom}{alignbottom}
-\setinterfacecommand{aligned}{aligned}
-\setinterfacecommand{alignedbox}{alignedbox}
-\setinterfacecommand{alignedline}{alignedline}
-\setinterfacecommand{alignhere}{alignhere}
-\setinterfacecommand{alignment}{alignment}
-\setinterfacecommand{alignmentcharacter}{alignmentcharacter}
-\setinterfacecommand{applytocharacters}{applytocharacters}
-\setinterfacecommand{applytofirstcharacter}{applytofirstcharacter}
-\setinterfacecommand{arg}{arg}
-\setinterfacecommand{at}{al}
-\setinterfacecommand{atleftmargin}{atleftmargin}
-\setinterfacecommand{atpage}{apagina}
-\setinterfacecommand{atrightmargin}{atrightmargin}
-\setinterfacecommand{background}{sfondo}
-\setinterfacecommand{backspace}{spaziodietro}
-\setinterfacecommand{blackrule}{lineanera}
-\setinterfacecommand{blackrules}{lineenere}
-\setinterfacecommand{blank}{rigovuoto}
-\setinterfacecommand{bookmark}{segnalibro}
-\setinterfacecommand{bottombox}{bottombox}
-\setinterfacecommand{bottomdistance}{distanzafondo}
-\setinterfacecommand{bottomheight}{altezzafondo}
-\setinterfacecommand{bottomleftbox}{bottomleftbox}
-\setinterfacecommand{bottomrightbox}{bottomrightbox}
-\setinterfacecommand{bottomspace}{spaziofondo}
-\setinterfacecommand{buildtextbottomdot}{buildtextbottomdot}
-\setinterfacecommand{but}{fondo}
-\setinterfacecommand{button}{pulsante}
-\setinterfacecommand{bypassblocks}{saltablocchi}
-\setinterfacecommand{character}{lettera}
-\setinterfacecommand{characters}{lettere}
-\setinterfacecommand{chem}{chim}
-\setinterfacecommand{clip}{clip}
-\setinterfacecommand{clonefield}{clonacampo}
-\setinterfacecommand{color}{colore}
-\setinterfacecommand{colorbar}{barracolori}
-\setinterfacecommand{colorvalue}{valorecolore}
-\setinterfacecommand{column}{colonna}
-\setinterfacecommand{comparecolorgroup}{confrontagruppocolori}
-\setinterfacecommand{comparepalet}{confrontatavolozza}
-\setinterfacecommand{completepagenumber}{numeropaginacompleto}
-\setinterfacecommand{completeregister}{completeregister}
-\setinterfacecommand{component}{componenet}
-\setinterfacecommand{convertnumber}{convertinumero}
-\setinterfacecommand{copyfield}{copiacampo}
-\setinterfacecommand{correctwhitespace}{correggispaziobianco}
-\setinterfacecommand{coupledocument}{accoppiadocumento}
-\setinterfacecommand{couplemarking}{accoppiamarcatura}
-\setinterfacecommand{couplepage}{accoppiapagina}
-\setinterfacecommand{couplepaper}{accoppiacarta}
-\setinterfacecommand{coupleregister}{accoppiaregistro}
-\setinterfacecommand{crlf}{crlf}
-\setinterfacecommand{currentdate}{datadioggi}
-\setinterfacecommand{currentheadnumber}{numerotestacorrente}
-\setinterfacecommand{cutspace}{cutspace}
-\setinterfacecommand{date}{data}
-\setinterfacecommand{decouplemarking}{separamarcatura}
-\setinterfacecommand{decrementnumber}{decrementnumber}
-\setinterfacecommand{define}{definisci}
-\setinterfacecommand{defineaccent}{definisciaccento}
-\setinterfacecommand{defineblank}{definiscirigovuoto}
-\setinterfacecommand{defineblock}{definisciblocco}
-\setinterfacecommand{definebodyfont}{definiscifontdeltesto}
-\setinterfacecommand{definebodyfontenvironment}{definisciambientefontdeltesto}
-\setinterfacecommand{definebodyfontswitch}{definebodyfontswitch}
-\setinterfacecommand{definebuffer}{definiscibuffer}
-\setinterfacecommand{definecharacter}{definiscicarattere}
-\setinterfacecommand{definecharacterkerning}{definecharacterkerning}
-\setinterfacecommand{definecharacterspacing}{definecharacterspacing}
-\setinterfacecommand{definecolor}{definiscicolore}
-\setinterfacecommand{definecolorgroup}{definiscigruppocolori}
-\setinterfacecommand{definecolumnbreak}{definecolumnbreak}
-\setinterfacecommand{definecolumnset}{definiscigruppocolonne}
-\setinterfacecommand{definecombination}{definecombination}
-\setinterfacecommand{definecombinedlist}{definiscielencocombinato}
-\setinterfacecommand{definecommand}{definiscicomando}
-\setinterfacecommand{defineconversion}{definisciconversione}
-\setinterfacecommand{definedescription}{definiscidescrizione}
-\setinterfacecommand{definedfont}{definedfont}
-\setinterfacecommand{defineenumeration}{definiscienumerazione}
-\setinterfacecommand{definefallbackfamily}{definefallbackfamily}
-\setinterfacecommand{definefield}{definiscicampo}
-\setinterfacecommand{definefieldstack}{definiscistackcampi}
-\setinterfacecommand{definefiguresymbol}{definiscifigurasimbolo}
-\setinterfacecommand{definefilefallback}{definefilefallback}
-\setinterfacecommand{definefirstline}{definefirstline}
-\setinterfacecommand{definefloat}{definiscioggettomobile}
-\setinterfacecommand{definefont}{definiscifont}
-\setinterfacecommand{definefontalternative}{definefontalternative}
-\setinterfacecommand{definefontfallback}{definefontfallback}
-\setinterfacecommand{definefontfamily}{definefontfamily}
-\setinterfacecommand{definefontfamilypreset}{definefontfamilypreset}
-\setinterfacecommand{definefontfeature}{definefontfeature}
-\setinterfacecommand{definefontfile}{definefontfile}
-\setinterfacecommand{definefontsize}{definefontsize}
-\setinterfacecommand{definefontsolution}{definefontsolution}
-\setinterfacecommand{definefontstyle}{definiscistilefont}
-\setinterfacecommand{definefontsynonym}{definiscisinonimofont}
-\setinterfacecommand{defineframed}{definisciincorniciato}
-\setinterfacecommand{defineframedtext}{definiscitestoincorniciato}
-\setinterfacecommand{definefrozenfont}{definefrozenfont}
-\setinterfacecommand{definehbox}{definiscihbox}
-\setinterfacecommand{definehead}{definiscitesta}
-\setinterfacecommand{definehyphenationfeatures}{definehyphenationfeatures}
-\setinterfacecommand{defineindentedtext}{defineindentedtext}
-\setinterfacecommand{defineinmargin}{defineinmargin}
-\setinterfacecommand{defineinteractionmenu}{definiscimenuinterazione}
-\setinterfacecommand{defineitemgroup}{defineitemgroup}
-\setinterfacecommand{defineitems}{defineitems}
-\setinterfacecommand{definelabel}{definiscietichetta}
-\setinterfacecommand{definelayer}{definelayer}
-\setinterfacecommand{definelayout}{definiscilayout}
-\setinterfacecommand{definelinenote}{definelinenote}
-\setinterfacecommand{definelist}{definiscielenco}
-\setinterfacecommand{definelogo}{definiscilogo}
-\setinterfacecommand{definemainfield}{definiscicampoprincipale}
-\setinterfacecommand{definemakeup}{definiscimakeup}
-\setinterfacecommand{definemarking}{definiscimarcatura}
-\setinterfacecommand{definemathalignment}{definemathalignment}
-\setinterfacecommand{definemode}{definemode}
-\setinterfacecommand{definenamedcolor}{definenamedcolor}
-\setinterfacecommand{definenote}{definenote}
-\setinterfacecommand{defineoutput}{definiscioutput}
-\setinterfacecommand{defineoverlay}{definiscisovrapposizione}
-\setinterfacecommand{definepagebreak}{definepagebreak}
-\setinterfacecommand{definepalet}{definiscitavolozza}
-\setinterfacecommand{definepapersize}{definiscidimensionicarta}
-\setinterfacecommand{defineparagraphs}{definiscicapoversi}
-\setinterfacecommand{defineperiodkerning}{defineperiodkerning}
-\setinterfacecommand{defineplacement}{defineplacement}
-\setinterfacecommand{defineprofile}{definisciprofilo}
-\setinterfacecommand{defineprogram}{definisciprogramma}
-\setinterfacecommand{definerawfont}{definiscifontgrezzo}
-\setinterfacecommand{definereference}{definisciriferimento}
-\setinterfacecommand{definereferenceformat}{definisciformatoriferimento}
-\setinterfacecommand{definereferencelist}{definiscilistariferimenti}
-\setinterfacecommand{defineregister}{definisciregistro}
-\setinterfacecommand{definerule}{definiscilinea}
-\setinterfacecommand{definesection}{definiscisezione}
-\setinterfacecommand{definesectionblock}{definiscibloccosezione}
-\setinterfacecommand{definesorting}{definisciordinamento}
-\setinterfacecommand{definestartstop}{definisciiniziatermina}
-\setinterfacecommand{definestyle}{definiscistile}
-\setinterfacecommand{definesubfield}{definiscisottocampo}
-\setinterfacecommand{definesymbol}{definiscisimbolo}
-\setinterfacecommand{definesynonyms}{definiscisinonimi}
-\setinterfacecommand{definetabletemplate}{definiscimodellotabella}
-\setinterfacecommand{definetabulate}{definiscitabulato}
-\setinterfacecommand{definetext}{definiscitesto}
-\setinterfacecommand{definetextbackground}{definetextbackground}
-\setinterfacecommand{definetextnote}{definetextnote}
-\setinterfacecommand{definetextposition}{definisciposizionetesto}
-\setinterfacecommand{definetextvariable}{definiscivariabiletesto}
-\setinterfacecommand{definetype}{definiscitype}
-\setinterfacecommand{definetyping}{definiscityping}
-\setinterfacecommand{defineversion}{definisciversion}
-\setinterfacecommand{depthspanningtext}{depthspanningtext}
-\setinterfacecommand{determineheadnumber}{determinanumerotesta}
-\setinterfacecommand{determinelistcharacteristics}{determinacarattersticheelenco}
-\setinterfacecommand{determineregistercharacteristics}{determinacaratteristicheregistro}
-\setinterfacecommand{dimension}{dimensione}
-\setinterfacecommand{disableinteractionmenu}{disabilitamenuinterazione}
-\setinterfacecommand{disablemode}{disablemode}
-\setinterfacecommand{doaddfeature}{doaddfeature}
-\setinterfacecommand{domicile}{domicilio}
-\setinterfacecommand{dontconvertfont}{dontconvertfont}
-\setinterfacecommand{donttest}{notest}
-\setinterfacecommand{edgedistance}{distanzabordo}
-\setinterfacecommand{edgewidth}{ampiezzabordo}
-\setinterfacecommand{emphasisboldface}{emphasisboldface}
-\setinterfacecommand{emptylines}{emptylines}
-\setinterfacecommand{enablemode}{enablemode}
-\setinterfacecommand{environment}{ambiente}
-\setinterfacecommand{externalfigure}{figuraesterna}
-\setinterfacecommand{fact}{fatto}
-\setinterfacecommand{fastswitchtobodyfont}{fastswitchtobodyfont}
-\setinterfacecommand{feature}{feature}
-\setinterfacecommand{field}{campi}
-\setinterfacecommand{fieldstack}{stackcampi}
-\setinterfacecommand{fillinfield}{camporiempimento}
-\setinterfacecommand{fillinline}{rigariempimento}
-\setinterfacecommand{fillinrules}{lineeriempimento}
-\setinterfacecommand{fillintext}{testoriempimento}
-\setinterfacecommand{firstcharacter}{firstcharacter}
-\setinterfacecommand{fitfield}{adattacampo}
-\setinterfacecommand{fittopbaselinegrid}{fittopbaselinegrid}
-\setinterfacecommand{fixedspace}{spaziofisso}
-\setinterfacecommand{fixedspaces}{spazifissi}
-\setinterfacecommand{flushnotes}{flushnotes}
-\setinterfacecommand{followprofile}{seguiprofilo}
-\setinterfacecommand{followprofileversion}{seguiversioneprofilo}
-\setinterfacecommand{followversion}{seguiversione}
-\setinterfacecommand{footerdistance}{distanzapdp}
-\setinterfacecommand{footerheight}{altezzapdp}
-\setinterfacecommand{footnote}{notapdp}
-\setinterfacecommand{footnotetext}{testonotapdp}
-\setinterfacecommand{forceblocks}{forzablocchi}
-\setinterfacecommand{forcecharacterstripping}{forcecharacterstripping}
-\setinterfacecommand{formulanumber}{numeroformula}
-\setinterfacecommand{fraction}{frazione}
-\setinterfacecommand{framed}{incorniciato}
-\setinterfacecommand{from}{da}
-\setinterfacecommand{fromlinenote}{fromlinenote}
-\setinterfacecommand{getbuffer}{prendibuffer}
-\setinterfacecommand{getfirstcharacter}{getfirstcharacter}
-\setinterfacecommand{getmarking}{prendimarcatura}
-\setinterfacecommand{getnumber}{getnumber}
-\setinterfacecommand{globaldisablemode}{globaldisablemode}
-\setinterfacecommand{globalenablemode}{globalenablemode}
-\setinterfacecommand{globalpreventmode}{globalpreventmode}
-\setinterfacecommand{godown}{vaigiu}
-\setinterfacecommand{goto}{vaia}
-\setinterfacecommand{gotobox}{vaiabox}
-\setinterfacecommand{gotopage}{vaiapagina}
-\setinterfacecommand{graycolor}{coloregrigio}
-\setinterfacecommand{greyvalue}{valoregrigio}
-\setinterfacecommand{grid}{griglia}
-\setinterfacecommand{hairline}{capello}
-\setinterfacecommand{head}{testa}
-\setinterfacecommand{headerdistance}{distanzaintestazione}
-\setinterfacecommand{headerheight}{altezzaintestazione}
-\setinterfacecommand{headlevel}{livellotesta}
-\setinterfacecommand{headnumber}{numerotesta}
-\setinterfacecommand{headsym}{headsym}
-\setinterfacecommand{headtext}{testoinstestazioni}
-\setinterfacecommand{heightspanningtext}{heightspanningtext}
-\setinterfacecommand{hideblocks}{nascondiblocchi}
-\setinterfacecommand{high}{ap}
-\setinterfacecommand{hl}{hl}
-\setinterfacecommand{immediatebetweenlist}{immediatebetweenlist}
-\setinterfacecommand{immediatetolist}{immediatetolist}
-\setinterfacecommand{in}{in}
-\setinterfacecommand{incrementnumber}{incrementanumero}
-\setinterfacecommand{indenting}{rientro}
-\setinterfacecommand{inframed}{circondato}
-\setinterfacecommand{infull}{perlungo}
-\setinterfacecommand{ininner}{ininner}
-\setinterfacecommand{inleft}{insinistra}
-\setinterfacecommand{inleftedge}{inlatosinistro}
-\setinterfacecommand{inleftmargin}{inmarginesinistro}
-\setinterfacecommand{inline}{inriga}
-\setinterfacecommand{inmargin}{inmargine}
-\setinterfacecommand{inmframed}{inmaframed}
-\setinterfacecommand{inneredgedistance}{inneredgedistance}
-\setinterfacecommand{inneredgewidth}{inneredgewidth}
-\setinterfacecommand{innermargindistance}{innermargindistance}
-\setinterfacecommand{innermarginwidth}{innermarginwidth}
-\setinterfacecommand{inothermargin}{inaltromargine}
-\setinterfacecommand{inouter}{inouter}
-\setinterfacecommand{inright}{indestra}
-\setinterfacecommand{inrightedge}{inlatodestro}
-\setinterfacecommand{inrightmargin}{inmarginedestro}
-\setinterfacecommand{installlanguage}{installalingua}
-\setinterfacecommand{interactionbar}{barrainterazione}
-\setinterfacecommand{interactionbuttons}{pulsantinterazione}
-\setinterfacecommand{interactionmenu}{menuinterattivo}
-\setinterfacecommand{item}{elemento}
-\setinterfacecommand{itemgroup}{itemgroup}
-\setinterfacecommand{items}{elementi}
-\setinterfacecommand{itemtag}{itemtag}
-\setinterfacecommand{its}{el}
-\setinterfacecommand{keepblocks}{tieniblocchi}
-\setinterfacecommand{kerncharacters}{kerncharacters}
-\setinterfacecommand{label}{etichetta}
-\setinterfacecommand{labels}{etichette}
-\setinterfacecommand{labeltext}{testoetichetta}
-\setinterfacecommand{language}{lingua}
-\setinterfacecommand{languageCharacters}{languageCharacters}
-\setinterfacecommand{languagecharacters}{languagecharacters}
-\setinterfacecommand{leftaligned}{allineasinistra}
-\setinterfacecommand{leftbottombox}{leftbottombox}
-\setinterfacecommand{leftedgedistance}{distanzabordosinistro}
-\setinterfacecommand{leftedgewidth}{ampiezzabordosinistro}
-\setinterfacecommand{leftline}{leftline}
-\setinterfacecommand{leftmargindistance}{distanzamarginesinistro}
-\setinterfacecommand{leftmarginwidth}{ampiezzamarginesinistro}
-\setinterfacecommand{leg}{leg}
-\setinterfacecommand{linecorrection}{linecorrection}
-\setinterfacecommand{linenote}{linenote}
-\setinterfacecommand{linespanningtext}{linespanningtext}
-\setinterfacecommand{linewidth}{spessoreriga}
-\setinterfacecommand{listheight}{altezzaelenco}
-\setinterfacecommand{listlength}{lunghezzaelenco}
-\setinterfacecommand{listsymbol}{listsymbol}
-\setinterfacecommand{listwidth}{ampiezzaelenco}
-\setinterfacecommand{loadfontgoodies}{loadfontgoodies}
-\setinterfacecommand{localfootnotes}{localfootnotes}
-\setinterfacecommand{localnotes}{localnotes}
-\setinterfacecommand{logfields}{logcampi}
-\setinterfacecommand{lohi}{pedap}
-\setinterfacecommand{low}{ped}
-\setinterfacecommand{macroname}{nome}
-\setinterfacecommand{mainlanguage}{linguaprincipale}
-\setinterfacecommand{makeupheight}{altezzamakeup}
-\setinterfacecommand{makeupwidth}{ampiezzamakeup}
-\setinterfacecommand{mar}{mar}
-\setinterfacecommand{marginblock}{marginblock}
-\setinterfacecommand{margindistance}{distanzamargine}
-\setinterfacecommand{marginrule}{lineamargine}
-\setinterfacecommand{margintext}{testoinmargine}
-\setinterfacecommand{margintitle}{titoloinmargine}
-\setinterfacecommand{marginwidth}{ampiezzamargine}
-\setinterfacecommand{marginword}{parolainmargine}
-\setinterfacecommand{marking}{marcatura}
-\setinterfacecommand{markversion}{marcaversione}
-\setinterfacecommand{mathematics}{matematica}
-\setinterfacecommand{menubutton}{pulsantemenu}
-\setinterfacecommand{mframed}{maframed}
-\setinterfacecommand{midaligned}{allineacentro}
-\setinterfacecommand{mirror}{riflessione}
-\setinterfacecommand{month}{mese}
-\setinterfacecommand{moveformula}{spostaformula}
-\setinterfacecommand{moveongrid}{spostaagriglia}
-\setinterfacecommand{movesidefloat}{movesidefloat}
-\setinterfacecommand{navigating}{navigating}
-\setinterfacecommand{nodimension}{nientedimensioni}
-\setinterfacecommand{noheaderandfooterlines}{nientelineintestazionepdp}
-\setinterfacecommand{noindenting}{nienterientro}
-\setinterfacecommand{noitem}{noitem}
-\setinterfacecommand{nolist}{nienteelenco}
-\setinterfacecommand{nomarking}{nientemarcatura}
-\setinterfacecommand{nomoreblocks}{bastablocchi}
-\setinterfacecommand{nomorefiles}{bastafile}
-\setinterfacecommand{nop}{nop}
-\setinterfacecommand{nospace}{nientespazio}
-\setinterfacecommand{note}{nota}
-\setinterfacecommand{notesymbol}{notesymbol}
-\setinterfacecommand{notopandbottomlines}{nientelineecimafondo}
-\setinterfacecommand{notsmallcapped}{nocap}
-\setinterfacecommand{nowhitespace}{nientespaziobianco}
-\setinterfacecommand{numberofsubpages}{numberofsubpages}
-\setinterfacecommand{numbers}{numeri}
-\setinterfacecommand{outeredgedistance}{outeredgedistance}
-\setinterfacecommand{outeredgewidth}{outeredgewidth}
-\setinterfacecommand{outermargindistance}{outermargindistance}
-\setinterfacecommand{outermarginwidth}{outermarginwidth}
-\setinterfacecommand{packed}{impaccato}
-\setinterfacecommand{page}{pagina}
-\setinterfacecommand{pagebreak}{pagebreak}
-\setinterfacecommand{pagedepth}{pagedepth}
-\setinterfacecommand{pagenumber}{numeropagina}
-\setinterfacecommand{pageoffset}{pageoffset}
-\setinterfacecommand{pagereference}{riferimentopagina}
-\setinterfacecommand{paperheight}{altezzacarta}
-\setinterfacecommand{paperwidth}{ampiezzacarta}
-\setinterfacecommand{periods}{punti}
-\setinterfacecommand{placebookmarks}{mettisegnalibro}
-\setinterfacecommand{placecombinedlist}{mettielencocombinato}
-\setinterfacecommand{placefloat}{placefloat}
-\setinterfacecommand{placefootnotes}{mettinotepdp}
-\setinterfacecommand{placeformula}{mettiformula}
-\setinterfacecommand{placeheadnumber}{posizionanumerotesta}
-\setinterfacecommand{placeheadtext}{posizionatestotesta}
-\setinterfacecommand{placelegend}{mettilegenda}
-\setinterfacecommand{placelist}{mettielenco}
-\setinterfacecommand{placelistofsynonyms}{placelistofsynonyms}
-\setinterfacecommand{placelocalfootnotes}{mettinotepdplocali}
-\setinterfacecommand{placelocalnotes}{placelocalnotes}
-\setinterfacecommand{placelogos}{mettiloghi}
-\setinterfacecommand{placenamedfloat}{placenamedfloat}
-\setinterfacecommand{placenotes}{placenotes}
-\setinterfacecommand{placeongrid}{mettiingriglia}
-\setinterfacecommand{placeontopofeachother}{mettiunosullaltro}
-\setinterfacecommand{placepagenumber}{mettinumeropagina}
-\setinterfacecommand{placerawlist}{placerawlist}
-\setinterfacecommand{placereferencelist}{placereferencelist}
-\setinterfacecommand{placeregister}{mettiregistro}
-\setinterfacecommand{placerule}{mettilinea}
-\setinterfacecommand{placesidebyside}{mettifiancoafianco}
-\setinterfacecommand{placesubformula}{mettisottoformula}
-\setinterfacecommand{placetextvariable}{mettivariabiletesto}
-\setinterfacecommand{position}{posizione}
-\setinterfacecommand{positiontext}{posizionatesto}
-\setinterfacecommand{postponenotes}{postponenotes}
-\setinterfacecommand{postponingnotes}{postponingnotes}
-\setinterfacecommand{predefinedfont}{predefinedfont}
-\setinterfacecommand{predefinefont}{predefinefont}
-\setinterfacecommand{presetdocument}{presetdocument}
-\setinterfacecommand{prettyprintbuffer}{prettyprintbuffer}
-\setinterfacecommand{preventmode}{preventmode}
-\setinterfacecommand{printpaperheight}{altezzacartastampa}
-\setinterfacecommand{printpaperwidth}{ampiezzacartastampa}
-\setinterfacecommand{processblocks}{elaborablocchi}
-\setinterfacecommand{processbodyfontenvironmentlist}{processbodyfontenvironmentlist}
-\setinterfacecommand{processpage}{elaborapagina}
-\setinterfacecommand{product}{prodotto}
-\setinterfacecommand{program}{programma}
-\setinterfacecommand{project}{progetto}
-\setinterfacecommand{publication}{pubblicazione}
-\setinterfacecommand{quotation}{citazione}
-\setinterfacecommand{quote}{menzione}
-\setinterfacecommand{ran}{ran}
-\setinterfacecommand{redo}{rifai}
-\setinterfacecommand{redoconvertfont}{redoconvertfont}
-\setinterfacecommand{ref}{rif}
-\setinterfacecommand{reference}{riferimento}
-\setinterfacecommand{referral}{referral}
-\setinterfacecommand{referraldate}{datareferral}
-\setinterfacecommand{referring}{referring}
-\setinterfacecommand{registerfontclass}{registerfontclass}
-\setinterfacecommand{registerhyphenationexception}{registerhyphenationexception}
-\setinterfacecommand{registerhyphenationpattern}{registerhyphenationpattern}
-\setinterfacecommand{remark}{commento}
-\setinterfacecommand{replacefeature}{replacefeature}
-\setinterfacecommand{reset}{reimposta}
-\setinterfacecommand{resetandaddfeature}{resetandaddfeature}
-\setinterfacecommand{resetcharacteralign}{resetcharacteralign}
-\setinterfacecommand{resetcharacterkerning}{resetcharacterkerning}
-\setinterfacecommand{resetcharacterspacing}{resetcharacterspacing}
-\setinterfacecommand{resetcharacterstripping}{resetcharacterstripping}
-\setinterfacecommand{resetfeature}{resetfeature}
-\setinterfacecommand{resetfontcolorsheme}{resetfontcolorsheme}
-\setinterfacecommand{resetfontfallback}{resetfontfallback}
-\setinterfacecommand{resetfontsolution}{resetfontsolution}
-\setinterfacecommand{resethyphenationfeatures}{resethyphenationfeatures}
-\setinterfacecommand{resetlocalfloats}{resetlocalfloats}
-\setinterfacecommand{resetmarking}{reimpostamarcatura}
-\setinterfacecommand{resetmode}{resetmode}
-\setinterfacecommand{resetnumber}{resetnumber}
-\setinterfacecommand{resetpath}{resetpath}
-\setinterfacecommand{resetperiodkerning}{resetperiodkerning}
-\setinterfacecommand{resetsystemmode}{resetsystemmode}
-\setinterfacecommand{resettextcontent}{resettextcontent}
-\setinterfacecommand{resetvisualizers}{resetvisualizers}
-\setinterfacecommand{restoreglobalbodyfont}{restoreglobalbodyfont}
-\setinterfacecommand{retestfeature}{retestfeature}
-\setinterfacecommand{revivefeature}{revivefeature}
-\setinterfacecommand{rightaligned}{allineadestra}
-\setinterfacecommand{rightbottombox}{rightbottombox}
-\setinterfacecommand{rightedgedistance}{distanzabordodestro}
-\setinterfacecommand{rightedgewidth}{ampiezzabordodestro}
-\setinterfacecommand{rightline}{rightline}
-\setinterfacecommand{rightmargindistance}{distanzamarginedestro}
-\setinterfacecommand{rightmarginwidth}{ampiezzamarginedestro}
-\setinterfacecommand{romannumerals}{numeriromani}
-\setinterfacecommand{rotate}{ruota}
-\setinterfacecommand{savebuffer}{savebuffer}
-\setinterfacecommand{scale}{scala}
-\setinterfacecommand{screen}{schermo}
-\setinterfacecommand{selectblocks}{selezionablocchi}
-\setinterfacecommand{selectpaper}{selezionacarta}
-\setinterfacecommand{selectversion}{selezionaversione}
-\setinterfacecommand{setbigbodyfont}{setbigbodyfont}
-\setinterfacecommand{setcharacteralign}{setcharacteralign}
-\setinterfacecommand{setcharacteraligndetail}{setcharacteraligndetail}
-\setinterfacecommand{setcharactercasing}{setcharactercasing}
-\setinterfacecommand{setcharactercleaning}{setcharactercleaning}
-\setinterfacecommand{setcharacterkerning}{setcharacterkerning}
-\setinterfacecommand{setcharacterspacing}{setcharacterspacing}
-\setinterfacecommand{setcharacterstripping}{setcharacterstripping}
-\setinterfacecommand{setcurrentfontclass}{setcurrentfontclass}
-\setinterfacecommand{setfirstline}{setfirstline}
-\setinterfacecommand{setfirstpasscharacteralign}{setfirstpasscharacteralign}
-\setinterfacecommand{setfont}{setfont}
-\setinterfacecommand{setfontcolorsheme}{setfontcolorsheme}
-\setinterfacecommand{setfontfeature}{setfontfeature}
-\setinterfacecommand{setfontsolution}{setfontsolution}
-\setinterfacecommand{setfontstrut}{setfontstrut}
-\setinterfacecommand{sethyphenationfeatures}{sethyphenationfeatures}
-\setinterfacecommand{setmainbodyfont}{setmainbodyfont}
-\setinterfacecommand{setmode}{setmode}
-\setinterfacecommand{setnote}{setnote}
-\setinterfacecommand{setnotetext}{setnotetext}
-\setinterfacecommand{setnumber}{setnumber}
-\setinterfacecommand{setperiodkerning}{setperiodkerning}
-\setinterfacecommand{setsecondpasscharacteralign}{setsecondpasscharacteralign}
-\setinterfacecommand{setsmallbodyfont}{setsmallbodyfont}
-\setinterfacecommand{setsystemmode}{setsystemmode}
-\setinterfacecommand{settextcontent}{settext}
-\setinterfacecommand{settextvariable}{setvariabiletesto}
-\setinterfacecommand{setupalign}{impostaallineamento}
-\setinterfacecommand{setupanswerarea}{setupanswerarea}
-\setinterfacecommand{setuparranging}{impostaparranging}
-\setinterfacecommand{setupattachment}{setupattachment}
-\setinterfacecommand{setupbackground}{impostasfondo}
-\setinterfacecommand{setupbackgrounds}{impostasfondi}
-\setinterfacecommand{setupblackrules}{impostalineenere}
-\setinterfacecommand{setupblank}{impostarigovuoto}
-\setinterfacecommand{setupblock}{impostablocco}
-\setinterfacecommand{setupbodyfont}{impostafontdeltesto}
-\setinterfacecommand{setupbodyfontenvironment}{impostaambientefontdeltesto}
-\setinterfacecommand{setupbottom}{impostafondo}
-\setinterfacecommand{setupbottomtexts}{impostatestifondo}
-\setinterfacecommand{setupbuffer}{impostabuffer}
-\setinterfacecommand{setupbuttons}{impostapulsanti}
-\setinterfacecommand{setupcapitals}{impostamaiuscole}
-\setinterfacecommand{setupcaption}{impostacaption}
-\setinterfacecommand{setupcaptions}{impostacaptions}
-\setinterfacecommand{setupcharacteralign}{setupcharacteralign}
-\setinterfacecommand{setupcharacterkerning}{setupcharacterkerning}
-\setinterfacecommand{setupcharacterspacing}{setupcharacterspacing}
-\setinterfacecommand{setupclipping}{impostaclippling}
-\setinterfacecommand{setupcolor}{impostacolore}
-\setinterfacecommand{setupcolors}{impostacolori}
-\setinterfacecommand{setupcolumns}{impostacolonne}
-\setinterfacecommand{setupcolumnset}{impostagruppocolonne}
-\setinterfacecommand{setupcolumnsetlines}{setupcolumnsetlines}
-\setinterfacecommand{setupcolumnsetstart}{setupcolumnsetstart}
-\setinterfacecommand{setupcombinations}{impostacombinazioni}
-\setinterfacecommand{setupcombinedlist}{impostaelencocombinato}
-\setinterfacecommand{setupcomment}{impostacommento}
-\setinterfacecommand{setupcounter}{setupcounter}
-\setinterfacecommand{setupdescription}{setupdescription}
-\setinterfacecommand{setupdescriptions}{impostadescrizioni}
-\setinterfacecommand{setupenumeration}{setupenumeration}
-\setinterfacecommand{setupenumerations}{impostaenumerazioni}
-\setinterfacecommand{setupexternalfigures}{impostafigureesterne}
-\setinterfacecommand{setupfield}{impostacampo}
-\setinterfacecommand{setupfields}{impostacampi}
-\setinterfacecommand{setupfillinlines}{impostarigheriempimento}
-\setinterfacecommand{setupfillinrules}{impostalineeriempimento}
-\setinterfacecommand{setupfirstline}{setupfirstline}
-\setinterfacecommand{setupfloat}{impostaoggettomobile}
-\setinterfacecommand{setupfloats}{impostaoggettimobili}
-\setinterfacecommand{setupfloatsplitting}{impostaspezzamentooggettomobile}
-\setinterfacecommand{setupfontexpansion}{setupfontexpansion}
-\setinterfacecommand{setupfontprotrusion}{setupfontprotrusion}
-\setinterfacecommand{setupfonts}{setupfonts}
-\setinterfacecommand{setupfontsolution}{setupfontsolution}
-\setinterfacecommand{setupfooter}{impostapdp}
-\setinterfacecommand{setupfootertexts}{impostatestipdp}
-\setinterfacecommand{setupfootnotedefinition}{impostadefinizionenotepdp}
-\setinterfacecommand{setupfootnotes}{impostanotepdp}
-\setinterfacecommand{setupforms}{impostaforms}
-\setinterfacecommand{setupformula}{setupformula}
-\setinterfacecommand{setupformulas}{impostaformule}
-\setinterfacecommand{setupframed}{impostaincorniciato}
-\setinterfacecommand{setupframedtext}{setupframedtext}
-\setinterfacecommand{setupframedtexts}{impostatestiincorniciati}
-\setinterfacecommand{setuphead}{impostatesta}
-\setinterfacecommand{setupheader}{impostainstestazione}
-\setinterfacecommand{setupheadertexts}{impostatestiintestazioni}
-\setinterfacecommand{setupheadnumber}{impostanumerotesta}
-\setinterfacecommand{setupheads}{impostateste}
-\setinterfacecommand{setupheadtext}{impostatestointestazioni}
-\setinterfacecommand{setuphyphenation}{setuphyphenation}
-\setinterfacecommand{setuphyphenmark}{impostasegnosillabazione}
-\setinterfacecommand{setupindentedtext}{setupindentedtext}
-\setinterfacecommand{setupindenting}{impostarientro}
-\setinterfacecommand{setupinmargin}{impostainmargine}
-\setinterfacecommand{setupinteraction}{impostainterazione}
-\setinterfacecommand{setupinteractionbar}{impostabarrainterazione}
-\setinterfacecommand{setupinteractionmenu}{impostamenuinterazione}
-\setinterfacecommand{setupinteractionscreen}{impostaschermointerazione}
-\setinterfacecommand{setupinterlinespace}{impostainterlinea}
-\setinterfacecommand{setupitemgroup}{setupitemgroup}
-\setinterfacecommand{setupitemgroups}{impostaelencazioni}
-\setinterfacecommand{setupitems}{impostaelementi}
-\setinterfacecommand{setuplabeltext}{impostatestoetichette}
-\setinterfacecommand{setuplanguage}{impostalingua}
-\setinterfacecommand{setuplayout}{impostalayout}
-\setinterfacecommand{setuplegend}{impostalegenda}
-\setinterfacecommand{setuplinenote}{setuplinenote}
-\setinterfacecommand{setuplinenumbering}{impostanumerazionerighe}
-\setinterfacecommand{setuplines}{impostarighe}
-\setinterfacecommand{setuplinewidth}{impostaampiezzariga}
-\setinterfacecommand{setuplist}{impostaelenco}
-\setinterfacecommand{setupmakeup}{impostamakeup}
-\setinterfacecommand{setupmarginblock}{setupmarginblock}
-\setinterfacecommand{setupmarginblocks}{impostablocchimargine}
-\setinterfacecommand{setupmargindata}{setupmargindata}
-\setinterfacecommand{setupmarginrules}{impostalineemargine}
-\setinterfacecommand{setupmarking}{impostamarcatura}
-\setinterfacecommand{setupmathalignment}{setupmathalignment}
-\setinterfacecommand{setupnarrower}{impostapiustretto}
-\setinterfacecommand{setupnotation}{setupnotation}
-\setinterfacecommand{setupnotations}{setupnotations}
-\setinterfacecommand{setupnote}{setupnote}
-\setinterfacecommand{setupnotes}{setupnotes}
-\setinterfacecommand{setupnumber}{impostanumerazione}
-\setinterfacecommand{setupnumbering}{impostanumerazione}
-\setinterfacecommand{setupoppositeplacing}{impostaposizionamentoopposti}
-\setinterfacecommand{setupoutput}{impostaoutput}
-\setinterfacecommand{setuppagecomment}{impostacommentopagina}
-\setinterfacecommand{setuppagenumber}{impostanumeropagina}
-\setinterfacecommand{setuppagenumbering}{impostanumerazionepagina}
-\setinterfacecommand{setuppagetransitions}{impostatransizionepagina}
-\setinterfacecommand{setuppalet}{impostatavolozza}
-\setinterfacecommand{setuppaper}{setuppaper}
-\setinterfacecommand{setuppapersize}{impostadimensionicarta}
-\setinterfacecommand{setupparagraphnumbering}{impostanumerazionecapoversi}
-\setinterfacecommand{setupparagraphs}{impostacapoversi}
-\setinterfacecommand{setupperiodkerning}{setupperiodkerning}
-\setinterfacecommand{setupplacement}{setupplacement}
-\setinterfacecommand{setuppositioning}{impostaposizionamento}
-\setinterfacecommand{setupprofiles}{impostaprofili}
-\setinterfacecommand{setupprograms}{impostaprogrammi}
-\setinterfacecommand{setuppublications}{impostapubblicazioni}
-\setinterfacecommand{setupquote}{impostamenzione}
-\setinterfacecommand{setupreferencelist}{impostalistariferimenti}
-\setinterfacecommand{setupreferencing}{impostariferimento}
-\setinterfacecommand{setupregister}{impostaregistro}
-\setinterfacecommand{setuprotate}{impostarotazione}
-\setinterfacecommand{setuprule}{impostalinea}
-\setinterfacecommand{setupscreens}{impostaschermi}
-\setinterfacecommand{setupsection}{impostasezione}
-\setinterfacecommand{setupsectionblock}{impostabloccosezione}
-\setinterfacecommand{setupsorting}{impostaordinamento}
-\setinterfacecommand{setupspacing}{impostaspaziatura}
-\setinterfacecommand{setupstartstop}{impostainiziatermina}
-\setinterfacecommand{setupstrut}{impostastrut}
-\setinterfacecommand{setupsubpagenumber}{impostanumerosottopagina}
-\setinterfacecommand{setupsymbolset}{impostasetsimboli}
-\setinterfacecommand{setupsynchronization}{impostasincronizzazione}
-\setinterfacecommand{setupsynchronizationbar}{impostabarrasincronizzazione}
-\setinterfacecommand{setupsynonyms}{impostasinonimi}
-\setinterfacecommand{setupsystem}{impostasistema}
-\setinterfacecommand{setuptab}{impostatab}
-\setinterfacecommand{setuptables}{impostatabelle}
-\setinterfacecommand{setuptabulate}{impostatabulato}
-\setinterfacecommand{setuptext}{impostatesto}
-\setinterfacecommand{setuptextbackground}{setuptextbackground}
-\setinterfacecommand{setuptextnote}{setuptextnote}
-\setinterfacecommand{setuptextposition}{impostaposizionetesto}
-\setinterfacecommand{setuptextrules}{impostalineetesto}
-\setinterfacecommand{setuptexttexts}{impostatestotesti}
-\setinterfacecommand{setuptextvariable}{impostavariabiletesto}
-\setinterfacecommand{setupthinrules}{impostalineesottili}
-\setinterfacecommand{setuptolerance}{impostatolleranza}
-\setinterfacecommand{setuptop}{impostacima}
-\setinterfacecommand{setuptoptexts}{impostatesticima}
-\setinterfacecommand{setuptype}{impostatype}
-\setinterfacecommand{setuptyping}{impostatyping}
-\setinterfacecommand{setupunderbar}{impostasottolinea}
-\setinterfacecommand{setupurl}{impostaurl}
-\setinterfacecommand{setupversions}{impostaversioni}
-\setinterfacecommand{setupwhitespace}{impostaspaziobianco}
-\setinterfacecommand{setvisualizerfont}{setvisualizerfont}
-\setinterfacecommand{showbodyfont}{mostrafontdeltesto}
-\setinterfacecommand{showbodyfontenvironment}{mostraambientefontdeltesto}
-\setinterfacecommand{showcolor}{mostracolore}
-\setinterfacecommand{showcolorgroup}{mostragruppocolori}
-\setinterfacecommand{showcounter}{showcounter}
-\setinterfacecommand{showexternalfigures}{mostrafiguresterne}
-\setinterfacecommand{showfields}{mostracampi}
-\setinterfacecommand{showfont}{showfont}
-\setinterfacecommand{showfontdata}{showfontdata}
-\setinterfacecommand{showfontexpansion}{showfontexpansion}
-\setinterfacecommand{showfontitalics}{showfontitalics}
-\setinterfacecommand{showfontkerns}{showfontkerns}
-\setinterfacecommand{showfontparameters}{showfontparameters}
-\setinterfacecommand{showfontstrip}{showfontstrip}
-\setinterfacecommand{showfontstyle}{showfontstyle}
-\setinterfacecommand{showframe}{mostracornice}
-\setinterfacecommand{showgrid}{mostragriglia}
-\setinterfacecommand{showhyphenationtrace}{showhyphenationtrace}
-\setinterfacecommand{showkerning}{showkerning}
-\setinterfacecommand{showlayout}{mostralyout}
-\setinterfacecommand{showmakeup}{mostramakeup}
-\setinterfacecommand{showminimalbaseline}{showminimalbaseline}
-\setinterfacecommand{showpalet}{mostratavolozza}
-\setinterfacecommand{showprint}{mostrastampa}
-\setinterfacecommand{showsetups}{mostraimpostazioni}
-\setinterfacecommand{showstruts}{mostrastruts}
-\setinterfacecommand{showsymbolset}{mostrasetsimboli}
-\setinterfacecommand{smallcapped}{cap}
-\setinterfacecommand{someline}{qualcheriga}
-\setinterfacecommand{somewhere}{daqualcheparte}
-\setinterfacecommand{space}{spazio}
-\setinterfacecommand{specialitem}{specialitem}
-\setinterfacecommand{splitfloat}{spezzaoggettomobile}
-\setinterfacecommand{startalignment}{iniziaallineamento}
-\setinterfacecommand{startbackground}{iniziasfondo}
-\setinterfacecommand{startcoding}{iniziacodifica}
-\setinterfacecommand{startcolor}{iniziacolore}
-\setinterfacecommand{startcolumnmakeup}{startcolumnmakeup}
-\setinterfacecommand{startcolumns}{iniziacolonne}
-\setinterfacecommand{startcolumnset}{iniziagruppocolonne}
-\setinterfacecommand{startcombination}{iniziacombinazione}
-\setinterfacecommand{startcomponent}{iniziacomponente}
-\setinterfacecommand{startdocument}{iniziadocumento}
-\setinterfacecommand{startenvironment}{iniziaambiente}
-\setinterfacecommand{startfigure}{iniziafigura}
-\setinterfacecommand{startframed}{startframed}
-\setinterfacecommand{startglobal}{iniziaglobale}
-\setinterfacecommand{startline}{iniziariga}
-\setinterfacecommand{startlinecorrection}{iniziacorrezioneriga}
-\setinterfacecommand{startlinenote}{startlinenote}
-\setinterfacecommand{startlinenumbering}{inizianumerazionerighe}
-\setinterfacecommand{startlines}{iniziarighe}
-\setinterfacecommand{startlocal}{inizialocale}
-\setinterfacecommand{startlocalfootnotes}{inizianotepdplocali}
-\setinterfacecommand{startmakeup}{iniziamakeup}
-\setinterfacecommand{startmarginblock}{iniziabloccomargine}
-\setinterfacecommand{startmarginrule}{inizialineamargine}
-\setinterfacecommand{startnarrower}{iniziapiustretto}
-\setinterfacecommand{startopposite}{iniziaopposto}
-\setinterfacecommand{startoverlay}{iniziasovrapposizione}
-\setinterfacecommand{startoverview}{iniziaoverview}
-\setinterfacecommand{startpacked}{iniziaimpaccato}
-\setinterfacecommand{startpositioning}{iniziaposizionamento}
-\setinterfacecommand{startproduct}{iniziaprodotto}
-\setinterfacecommand{startprofile}{iniziaprofilo}
-\setinterfacecommand{startproject}{iniziaprogetto}
-\setinterfacecommand{startquotation}{iniziacitazione}
-\setinterfacecommand{startraster}{iniziaraster}
-\setinterfacecommand{startsymbolset}{iniziasetsimboli}
-\setinterfacecommand{startsynchronization}{iniziasincronizzazione}
-\setinterfacecommand{starttable}{iniziatabella}
-\setinterfacecommand{starttables}{iniziatabelle}
-\setinterfacecommand{starttext}{iniziatesto}
-\setinterfacecommand{starttextbackground}{starttextbackground}
-\setinterfacecommand{starttextrule}{inizialineatesto}
-\setinterfacecommand{startunpacked}{iniziaunpacked}
-\setinterfacecommand{startversion}{iniziaversione}
-\setinterfacecommand{stopalignment}{terminaallineamento}
-\setinterfacecommand{stopbackground}{terminasfondo}
-\setinterfacecommand{stopcoding}{terminacodifica}
-\setinterfacecommand{stopcolor}{terminacolore}
-\setinterfacecommand{stopcolumnmakeup}{stopcolumnmakeup}
-\setinterfacecommand{stopcolumns}{terminacolonne}
-\setinterfacecommand{stopcolumnset}{terminagruppocolonne}
-\setinterfacecommand{stopcombination}{terminacombinazione}
-\setinterfacecommand{stopcomponent}{terminacomponente}
-\setinterfacecommand{stopdocument}{terminadocumento}
-\setinterfacecommand{stopenvironment}{terminaambiente}
-\setinterfacecommand{stopframed}{stopframed}
-\setinterfacecommand{stopglobal}{terminaglobale}
-\setinterfacecommand{stopline}{terminariga}
-\setinterfacecommand{stoplinecorrection}{terminacorrezioneriga}
-\setinterfacecommand{stoplinenote}{stoplinenote}
-\setinterfacecommand{stoplinenumbering}{terminanumerazionerighe}
-\setinterfacecommand{stoplines}{terminarighe}
-\setinterfacecommand{stoplocal}{terminalocale}
-\setinterfacecommand{stoplocalfootnotes}{terminanotepdplocali}
-\setinterfacecommand{stopmakeup}{terminamakeup}
-\setinterfacecommand{stopmarginblock}{terminabloccomargine}
-\setinterfacecommand{stopmarginrule}{terminalineamargine}
-\setinterfacecommand{stopnarrower}{terminapiustretto}
-\setinterfacecommand{stopopposite}{terminaopposto}
-\setinterfacecommand{stopoverlay}{terminasovrapposizione}
-\setinterfacecommand{stopoverview}{terminaoverview}
-\setinterfacecommand{stoppacked}{terminaimpaccato}
-\setinterfacecommand{stoppositioning}{terminaposizionamento}
-\setinterfacecommand{stopproduct}{terminaprodotto}
-\setinterfacecommand{stopprofile}{terminaprofili}
-\setinterfacecommand{stopproject}{terminaprogetto}
-\setinterfacecommand{stopquotation}{terminacitazione}
-\setinterfacecommand{stopraster}{terminaraster}
-\setinterfacecommand{stopsynchronization}{terminasincronizzazione}
-\setinterfacecommand{stoptable}{terminatabella}
-\setinterfacecommand{stoptables}{terminatabelle}
-\setinterfacecommand{stoptext}{terminatesto}
-\setinterfacecommand{stoptextbackground}{stoptextbackground}
-\setinterfacecommand{stoptextrule}{terminalineatesto}
-\setinterfacecommand{stopunpacked}{terminaunpacked}
-\setinterfacecommand{stopversion}{terminaversioni}
-\setinterfacecommand{stretched}{stirato}
-\setinterfacecommand{strictinspectnextcharacter}{strictinspectnextcharacter}
-\setinterfacecommand{stripcharacter}{stripcharacter}
-\setinterfacecommand{subformulanumber}{numerosottoformula}
-\setinterfacecommand{subpagenumber}{subpagenumber}
-\setinterfacecommand{subtractfeature}{subtractfeature}
-\setinterfacecommand{switchtobodyfont}{cambiaafontdeltesto}
-\setinterfacecommand{switchtorawfont}{passaafontgrezzo}
-\setinterfacecommand{sym}{sim}
-\setinterfacecommand{symbol}{simbolo}
-\setinterfacecommand{symoffset}{symoffset}
-\setinterfacecommand{synchronizationbar}{barrasincronizzazione}
-\setinterfacecommand{synchronize}{sincronizza}
-\setinterfacecommand{tab}{tab}
-\setinterfacecommand{testcolumn}{testcolumn}
-\setinterfacecommand{testfeature}{testfeature}
-\setinterfacecommand{testfeatureonce}{testfeatureonce}
-\setinterfacecommand{testpage}{testpage}
-\setinterfacecommand{tex}{tex}
-\setinterfacecommand{textbackground}{textbackground}
-\setinterfacecommand{textcolor}{textcolor}
-\setinterfacecommand{textheight}{altezzatesto}
-\setinterfacecommand{textnote}{textnote}
-\setinterfacecommand{textreference}{riferimentotesto}
-\setinterfacecommand{textrule}{lineatesto}
-\setinterfacecommand{textvariable}{variabiletesto}
-\setinterfacecommand{textwidth}{ampiezzatesto}
-\setinterfacecommand{thefirstcharacter}{thefirstcharacter}
-\setinterfacecommand{thenormalizedbodyfontsize}{thenormalizedbodyfontsize}
-\setinterfacecommand{theremainingcharacters}{theremainingcharacters}
-\setinterfacecommand{thinrule}{lineasottile}
-\setinterfacecommand{thinrules}{lineesottili}
-\setinterfacecommand{tolinenote}{tolinenote}
-\setinterfacecommand{tooltip}{tooltip}
-\setinterfacecommand{topdistance}{distanzacima}
-\setinterfacecommand{topheight}{altezzacima}
-\setinterfacecommand{topspace}{spaziocima}
-\setinterfacecommand{totalnumberofpages}{numerototaledipagine}
-\setinterfacecommand{translate}{traduci}
-\setinterfacecommand{txt}{txt}
-\setinterfacecommand{typ}{typ}
-\setinterfacecommand{type}{type}
-\setinterfacecommand{typebuffer}{typebuffer}
-\setinterfacecommand{typedefinedbuffer}{typedefinedbuffer}
-\setinterfacecommand{typefile}{typefile}
-\setinterfacecommand{typeinlinebuffer}{typeinlinebuffer}
-\setinterfacecommand{typing}{typing}
-\setinterfacecommand{unitmeaning}{nomeunita}
-\setinterfacecommand{unknown}{ignoto}
-\setinterfacecommand{unregisterhyphenationpattern}{unregisterhyphenationpattern}
-\setinterfacecommand{useJSscripts}{usaJSscripts}
-\setinterfacecommand{useURL}{usaURL}
-\setinterfacecommand{useXMLfilter}{useXMLfilter}
-\setinterfacecommand{useblocks}{usablocco}
-\setinterfacecommand{usebodyfont}{usebodyfont}
-\setinterfacecommand{usebodyfontparameter}{usebodyfontparameter}
-\setinterfacecommand{usecommands}{usacomandi}
-\setinterfacecommand{useencoding}{usacodifica}
-\setinterfacecommand{useexternaldocument}{usadocumentoesterno}
-\setinterfacecommand{useexternalfigure}{usafiguraesterna}
-\setinterfacecommand{useexternalfile}{usafileesterno}
-\setinterfacecommand{useexternalfiles}{usafileesterni}
-\setinterfacecommand{useexternalsoundtrack}{usacolonnasonoraesterna}
-\setinterfacecommand{usemodule}{usamodulo}
-\setinterfacecommand{usemodules}{usamoduli}
-\setinterfacecommand{usepath}{usacartella}
-\setinterfacecommand{usereferences}{usariferimenti}
-\setinterfacecommand{usespecials}{usaspecialita}
-\setinterfacecommand{usesymbols}{usasimboli}
-\setinterfacecommand{usetypescript}{usetypescript}
-\setinterfacecommand{usetypescriptfile}{usetypescriptfile}
-\setinterfacecommand{useurl}{usaurl}
-\setinterfacecommand{verbatim}{verbatim}
-\setinterfacecommand{version}{versione}
-\setinterfacecommand{vl}{vl}
-\setinterfacecommand{weekday}{giornosettimana}
-\setinterfacecommand{whitespace}{spaziobianco}
-\setinterfacecommand{widthspanningtext}{widthspanningtext}
-\setinterfacecommand{wordright}{paroladestra}
-\setinterfacecommand{writebetweenlist}{scrividentroelenco}
-\setinterfacecommand{writetolist}{scriviinelenco}
-\setinterfacecommand{writetoreferencelist}{scriviinlistariferimenti}
-\setinterfacecommand{writetoregister}{scriviinregistro}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-mcs.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-mcs.mkii
deleted file mode 100644
index c733798e642..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-mcs.mkii
+++ /dev/null
@@ -1,210 +0,0 @@
-\setinterfacemessage{references}{1}{neznama reference --}
-\setinterfacemessage{references}{30}{neznamy objekt --}
-\setinterfacemessage{references}{3}{neznamy typ reference --}
-\setinterfacemessage{references}{2}{duplicitni reference -- na strane --}
-\setinterfacemessage{references}{5}{number of unknown references: --}
-\setinterfacemessage{references}{4}{nedovolena reference --}
-\setinterfacemessage{references}{6}{number of illegal references: --}
-\setinterfacemessage{references}{25}{references from document '--' are not imported (export again)}
-\setinterfacemessage{references}{24}{references from document '--' are not exported}
-\setinterfacemessage{references}{title}{reference}
-\setinterfacemessage{references}{26}{references from document '--' are imported}
-\setinterfacemessage{references}{31}{duplicitni object --}
-\setinterfacemessage{references}{21}{dokument -- nacten}
-\setinterfacemessage{references}{22}{dokument -- neni interaktivni}
-\setinterfacemessage{references}{23}{obskurni (nejasna) reference -- (prefix=--)}
-\setinterfacemessage{documents}{1}{sheet --}
-\setinterfacemessage{documents}{title}{sheets}
-\setinterfacemessage{documents}{2}{number --}
-\setinterfacemessage{handlings}{1}{font handling --}
-\setinterfacemessage{handlings}{3}{unknown font handling --}
-\setinterfacemessage{handlings}{2}{font handling -- is loaded}
-\setinterfacemessage{handlings}{title}{handling}
-\setinterfacemessage{systems}{title}{system}
-\setinterfacemessage{systems}{41}{externi soubor -- ve skupine -- neexistuje}
-\setinterfacemessage{systems}{9}{-- nenalezeno/nezpracovano}
-\setinterfacemessage{systems}{91}{papertray --}
-\setinterfacemessage{systems}{8}{nova verze pomocneho souboru, je treba druheho behu}
-\setinterfacemessage{systems}{21}{pomocny soubor necten}
-\setinterfacemessage{systems}{20}{vyznam (trideni) -- nacten}
-\setinterfacemessage{systems}{5}{makra z -- nactena}
-\setinterfacemessage{systems}{4}{prikaz -- je jiz definovan}
-\setinterfacemessage{systems}{27}{verze}
-\setinterfacemessage{systems}{26}{registry}
-\setinterfacemessage{systems}{25}{reference}
-\setinterfacemessage{systems}{24}{plovouci bloky}
-\setinterfacemessage{systems}{1}{nacteni pomocneho souboru odlozeno (typemode)}
-\setinterfacemessage{systems}{23}{-- upraveno na --}
-\setinterfacemessage{systems}{22}{pouzijte platny pomocny soubor}
-\setinterfacemessage{systems}{2}{-- nacteno}
-\setinterfacemessage{systems}{19}{vyznam (synonyma) -- nacten}
-\setinterfacemessage{systems}{18}{synonymum -- -- neexistuje}
-\setinterfacemessage{systems}{7}{makra z -- jsou jiz nactena}
-\setinterfacemessage{systems}{6}{zadna makra v -- nenalezena}
-\setinterfacemessage{systems}{14}{vynucena nova stranka v seznamu na --}
-\setinterfacemessage{systems}{15}{uklada se buffer --}
-\setinterfacemessage{systems}{16}{sazi se buffer --}
-\setinterfacemessage{systems}{17}{sazi se doslovny (verbatim) buffer --}
-\setinterfacemessage{systems}{13}{znacka -- definovana --}
-\setinterfacemessage{systems}{12}{pomosny soubor neni setriden, pouzijte texutil}
-\setinterfacemessage{systems}{11}{vytvarim jednoduchy pomocny soubor}
-\setinterfacemessage{systems}{10}{nepouzivejte em v --}
-\setinterfacemessage{floatblocks}{1}{-- precislovano / -- => --}
-\setinterfacemessage{floatblocks}{3}{-- presunuto}
-\setinterfacemessage{floatblocks}{2}{-- ulozeno}
-\setinterfacemessage{floatblocks}{5}{poradi prizpusobeno}
-\setinterfacemessage{floatblocks}{4}{-- umisteno}
-\setinterfacemessage{floatblocks}{7}{pocet spodnich plovoucich objektu je omezen na --}
-\setinterfacemessage{floatblocks}{6}{pocet hornich plovoucich objektu je omezen na --}
-\setinterfacemessage{floatblocks}{9}{poradi naruseno}
-\setinterfacemessage{floatblocks}{8}{radku je mene nez --}
-\setinterfacemessage{floatblocks}{title}{plovouciobjekty}
-\setinterfacemessage{floatblocks}{13}{there is nothing to split}
-\setinterfacemessage{floatblocks}{12}{nedefinovano}
-\setinterfacemessage{floatblocks}{11}{nedan zadny blok}
-\setinterfacemessage{floatblocks}{10}{-- omezeno}
-\setinterfacemessage{interactions}{1}{pomer -- x -- (s x v)}
-\setinterfacemessage{interactions}{3}{neaktivni}
-\setinterfacemessage{interactions}{2}{aktivni}
-\setinterfacemessage{interactions}{5}{unknown attachment --}
-\setinterfacemessage{interactions}{4}{zadna strankova synchronizace (--) v hmode}
-\setinterfacemessage{interactions}{6}{attachment file -- does not exist}
-\setinterfacemessage{interactions}{title}{interakce}
-\setinterfacemessage{interactions}{21}{-- kod vlozen}
-\setinterfacemessage{regimes}{1}{kodovani --}
-\setinterfacemessage{regimes}{3}{nezname kodovani --}
-\setinterfacemessage{regimes}{2}{je nacteno kodovani --}
-\setinterfacemessage{regimes}{title}{kodovani}
-\setinterfacemessage{structures}{1}{zacatek oddilu (sekce) --}
-\setinterfacemessage{structures}{title}{struktury}
-\setinterfacemessage{structures}{2}{konec oddilu (sekce) --}
-\setinterfacemessage{linguals}{1}{vzory -- pro -- nacteny (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{3}{deleni slov -- pro -- nacteno (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{2}{zadne vzory -- pro -- (n=--,e=--,m=--) (--,--)}
-\setinterfacemessage{linguals}{5}{vzory pro -- nenacteny}
-\setinterfacemessage{linguals}{4}{zadne deleni slov -- pro -- (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{7}{specificke volby jazyka [--] zavadeji -- (zavlecenou) mezeru}
-\setinterfacemessage{linguals}{6}{jazyk -- neni definovan}
-\setinterfacemessage{linguals}{9}{language -- is active}
-\setinterfacemessage{linguals}{8}{specificke volby jazyka [--] bez mezer pripojeny}
-\setinterfacemessage{linguals}{title}{jazyky}
-\setinterfacemessage{linguals}{10}{vzory -- nacteny}
-\setinterfacemessage{verbatims}{1}{soubor -- neexistuje}
-\setinterfacemessage{verbatims}{title}{verbatim}
-\setinterfacemessage{filters}{1}{filter -- is loaded}
-\setinterfacemessage{filters}{title}{filter}
-\setinterfacemessage{filters}{2}{unknown filter --}
-\setinterfacemessage{textblocks}{1}{nova verze, je treba druhy beh}
-\setinterfacemessage{textblocks}{3}{ctu bloky z --}
-\setinterfacemessage{textblocks}{2}{zapisuji bloky do --}
-\setinterfacemessage{textblocks}{5}{-- neni skryto}
-\setinterfacemessage{textblocks}{4}{je treba druhy beh}
-\setinterfacemessage{textblocks}{7}{-- skryto}
-\setinterfacemessage{textblocks}{6}{-- skryto a zpracovano}
-\setinterfacemessage{textblocks}{9}{-- nevysazeno}
-\setinterfacemessage{textblocks}{8}{-- vysazeno}
-\setinterfacemessage{textblocks}{title}{textovyblok}
-\setinterfacemessage{textblocks}{12}{-- preskoceno}
-\setinterfacemessage{textblocks}{11}{-- nacteno a vysazeno}
-\setinterfacemessage{textblocks}{10}{-- nacteno a zpracovano}
-\setinterfacemessage{encodings}{1}{kodovani --}
-\setinterfacemessage{encodings}{3}{nezname kodovani --}
-\setinterfacemessage{encodings}{2}{je nacteno kodovani --}
-\setinterfacemessage{encodings}{title}{kodovani}
-\setinterfacemessage{columns}{1}{je mozno pouze -- sloupcu}
-\setinterfacemessage{columns}{3}{problem, vypina se vyvazovani}
-\setinterfacemessage{columns}{2}{pouzijte \string\filbreak\space jako alternativu}
-\setinterfacemessage{columns}{5}{spodni plovouci objekt jeste neni podporovan}
-\setinterfacemessage{columns}{4}{horni plovouci objekt jeste neni podporovan}
-\setinterfacemessage{columns}{7}{vyvazovani ukonceno po 100 krocich}
-\setinterfacemessage{columns}{6}{-- plovouci objekt(y) odlozeny}
-\setinterfacemessage{columns}{9}{kontrola nerovnost}
-\setinterfacemessage{columns}{8}{vyvazeno v -- krocich}
-\setinterfacemessage{columns}{title}{sloupce}
-\setinterfacemessage{columns}{13}{siroky plovouci objekt je presunut nad sloupce}
-\setinterfacemessage{columns}{12}{plovouci objekt je presunut do nasledujiciho sloupce / --}
-\setinterfacemessage{columns}{11}{plovouci objekt je pro sloupec prilis siroky}
-\setinterfacemessage{columns}{10}{zbyl (mene nez) 1 radek}
-\setinterfacemessage{symbols}{1}{nacita se soubor symbolu --}
-\setinterfacemessage{symbols}{title}{symboly}
-\setinterfacemessage{files}{1}{synonymum souboru -- je jiz pouzito pro --}
-\setinterfacemessage{files}{title}{soubory}
-\setinterfacemessage{versions}{1}{postradam @+}
-\setinterfacemessage{versions}{3}{oznacene strany: --}
-\setinterfacemessage{versions}{2}{oznacuji se strany}
-\setinterfacemessage{versions}{title}{verze}
-\setinterfacemessage{specials}{1}{-- nacteno}
-\setinterfacemessage{specials}{3}{-- je resetovano}
-\setinterfacemessage{specials}{2}{neni dovoleno hlubsi zanoreni --}
-\setinterfacemessage{specials}{5}{nacita se definicni soubor --}
-\setinterfacemessage{specials}{4}{prikaz -- neexistuje}
-\setinterfacemessage{specials}{7}{neznamy ovladac (driver) --}
-\setinterfacemessage{specials}{6}{zanoreni neni dovoleno}
-\setinterfacemessage{specials}{title}{speciality}
-\setinterfacemessage{layouts}{1}{vyska textu prizpusobena s -- na strane --}
-\setinterfacemessage{layouts}{3}{-- krat text odlozen}
-\setinterfacemessage{layouts}{2}{-- krat odlozeny text umisten}
-\setinterfacemessage{layouts}{5}{okrajove bloky neaktivni}
-\setinterfacemessage{layouts}{4}{okrajove bloky aktivni}
-\setinterfacemessage{layouts}{7}{pocita se misto pro logo}
-\setinterfacemessage{layouts}{6}{sada stran -- zpracovana (velikost --)}
-\setinterfacemessage{layouts}{9}{aktualne ne vice nez -- urovne/urovni vyctu}
-\setinterfacemessage{layouts}{8}{pocita se pozadi}
-\setinterfacemessage{layouts}{title}{layout}
-\setinterfacemessage{layouts}{11}{svisla mezera -- neni povolena v pevnem radkovem rejstriku}
-\setinterfacemessage{layouts}{10}{-- a -- nedava dohromady 1.0}
-\setinterfacemessage{fonts}{1}{kodovani --}
-\setinterfacemessage{fonts}{3}{neznama varianta --}
-\setinterfacemessage{fonts}{2}{varianta -- je nactena}
-\setinterfacemessage{fonts}{5}{styl -- neni definovan}
-\setinterfacemessage{fonts}{4}{zakladni font -- neni definovan}
-\setinterfacemessage{fonts}{7}{neznamy format --}
-\setinterfacemessage{fonts}{6}{-- je nacten}
-\setinterfacemessage{fonts}{14}{bodyfont -- is defined (can better be done global)}
-\setinterfacemessage{fonts}{8}{styl -- definovan}
-\setinterfacemessage{fonts}{title}{zakladnifont}
-\setinterfacemessage{fonts}{10}{neznamy font --}
-\setinterfacemessage{databases}{1}{--}
-\setinterfacemessage{databases}{3}{global file --}
-\setinterfacemessage{databases}{2}{local file --}
-\setinterfacemessage{databases}{4}{unknown file --}
-\setinterfacemessage{databases}{title}{databases}
-\setinterfacemessage{publications}{1}{file -- not found, unknown style ignored}
-\setinterfacemessage{publications}{3}{wrote a new auxiliary file \jobname.aux}
-\setinterfacemessage{publications}{title}{publications}
-\setinterfacemessage{publications}{2}{file -- not found, waiting for bibtex}
-\setinterfacemessage{publications}{4}{loading database from --}
-\setinterfacemessage{publications}{5}{warning: cite argument -- on line \the\inputlineno}
-\setinterfacemessage{publications}{6}{loading formatting style from --}
-\setinterfacemessage{javascript}{1}{nacita se soubor skriptu --}
-\setinterfacemessage{javascript}{title}{javascript}
-\setinterfacemessage{javascript}{2}{neznama preambule --}
-\setinterfacemessage{check}{1}{postradam '=' po '--' na radku --}
-\setinterfacemessage{check}{3}{-- -- nahrazuje makro, uzijte VERZALKY!}
-\setinterfacemessage{check}{2}{ocekavam -- argument(y) na radku --}
-\setinterfacemessage{check}{title}{kontrola}
-\setinterfacemessage{metapost}{1}{loading metapost library --}
-\setinterfacemessage{metapost}{title}{metapost}
-\setinterfacemessage{figures}{1}{obraz -- nelze nalezt}
-\setinterfacemessage{figures}{3}{dimensions of -- are determined externally}
-\setinterfacemessage{figures}{2}{obraz -- nepritomen}
-\setinterfacemessage{figures}{5}{dimensions of -- are unknown}
-\setinterfacemessage{figures}{4}{dimenze obrazu -- nacteny primo z jeho souboru}
-\setinterfacemessage{figures}{6}{dimenze obrazu -- spocteny programem rlxtools}
-\setinterfacemessage{figures}{8}{obrazovy objekt -- je znovu pouzit}
-\setinterfacemessage{figures}{title}{obrazy}
-\setinterfacemessage{colors}{1}{system -- je globalne aktivovana}
-\setinterfacemessage{colors}{3}{-- neni definovana --}
-\setinterfacemessage{colors}{2}{system -- je lokalne activovana}
-\setinterfacemessage{colors}{5}{neznamy system --}
-\setinterfacemessage{colors}{4}{system -- je nacten}
-\setinterfacemessage{colors}{7}{palette -- neni k dispozici}
-\setinterfacemessage{colors}{6}{palette -- je k dispozici}
-\setinterfacemessage{colors}{9}{-- prostor barev neni podporovan}
-\setinterfacemessage{colors}{8}{specifikace -- v barve -- bude cerna}
-\setinterfacemessage{colors}{title}{barva}
-\setinterfacemessage{colors}{12}{-- is registered}
-\setinterfacemessage{colors}{11}{barva je prevedena na sed}
-\setinterfacemessage{colors}{10}{-- prostor barev je podporovan}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-mde.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-mde.mkii
deleted file mode 100644
index 4d7f009e482..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-mde.mkii
+++ /dev/null
@@ -1,210 +0,0 @@
-\setinterfacemessage{references}{1}{unbekannte Referenz --}
-\setinterfacemessage{references}{30}{unbekanntes Object --}
-\setinterfacemessage{references}{3}{unbekannte Referenz Typ --}
-\setinterfacemessage{references}{2}{doppelte Referenz -- auf Seite --}
-\setinterfacemessage{references}{5}{number of unknown references: --}
-\setinterfacemessage{references}{4}{illegale Referenz --}
-\setinterfacemessage{references}{6}{number of illegal references: --}
-\setinterfacemessage{references}{25}{references from document '--' are not imported (export again)}
-\setinterfacemessage{references}{24}{references from document '--' are not exported}
-\setinterfacemessage{references}{title}{referenzen}
-\setinterfacemessage{references}{26}{references from document '--' are imported}
-\setinterfacemessage{references}{31}{doppeltes Object --}
-\setinterfacemessage{references}{21}{Dokument -- geladen}
-\setinterfacemessage{references}{22}{Dokument -- ist nicht aktiv}
-\setinterfacemessage{references}{23}{Obskure Referenz -- (Prefix=--)}
-\setinterfacemessage{documents}{1}{Blatt --}
-\setinterfacemessage{documents}{title}{Blaetter}
-\setinterfacemessage{documents}{2}{Nummer --}
-\setinterfacemessage{handlings}{1}{Font Verarbeitung --}
-\setinterfacemessage{handlings}{3}{unknown font handling --}
-\setinterfacemessage{handlings}{2}{Font Verarbeitung -- ist geladen}
-\setinterfacemessage{handlings}{title}{handling}
-\setinterfacemessage{systems}{title}{system}
-\setinterfacemessage{systems}{41}{Externe Datei -- in Gruppe -- existiert nicht}
-\setinterfacemessage{systems}{9}{-- nicht gefunden/verarbeitet}
-\setinterfacemessage{systems}{91}{papertray --}
-\setinterfacemessage{systems}{8}{Neue Version der Hilfsdatei, zweiter Durchlauf benoetigt}
-\setinterfacemessage{systems}{21}{Die Hilfsdatei ist nicht geladen}
-\setinterfacemessage{systems}{20}{Bedeutung (sortieren) von -- geladen}
-\setinterfacemessage{systems}{5}{Modul -- geladen}
-\setinterfacemessage{systems}{4}{Befehl -- ist bereits definiert}
-\setinterfacemessage{systems}{27}{Version}
-\setinterfacemessage{systems}{26}{Register}
-\setinterfacemessage{systems}{25}{Referenzen}
-\setinterfacemessage{systems}{24}{Fliessbloecke}
-\setinterfacemessage{systems}{1}{Laden der Hilfsdatei aufgeschoben (Eingabe-Modus)}
-\setinterfacemessage{systems}{23}{-- angeordnet auf --}
-\setinterfacemessage{systems}{22}{Benoetige gueltige Hilfsdateie}
-\setinterfacemessage{systems}{2}{-- geladen}
-\setinterfacemessage{systems}{19}{Bedeutung (synonyme) von -- geladen}
-\setinterfacemessage{systems}{18}{Synonym -- -- existiert nicht}
-\setinterfacemessage{systems}{7}{Modul -- bereits geladen}
-\setinterfacemessage{systems}{6}{Modul -- gefunden}
-\setinterfacemessage{systems}{14}{Erzwungendes Seitenumbruch in Liste bei --}
-\setinterfacemessage{systems}{15}{Speichere Buffer --}
-\setinterfacemessage{systems}{16}{Setzte Buffer --}
-\setinterfacemessage{systems}{17}{Setzte tippen-Buffer --}
-\setinterfacemessage{systems}{13}{Beschriftung -- definiert --}
-\setinterfacemessage{systems}{12}{Die Hilfdatei ist nicht sortiert, verwende texutil}
-\setinterfacemessage{systems}{11}{Erstelle einfache Hilfdatei}
-\setinterfacemessage{systems}{10}{Benutzte kein em in --}
-\setinterfacemessage{floatblocks}{1}{-- neu nummeriert / -- => --}
-\setinterfacemessage{floatblocks}{3}{-- verschoben}
-\setinterfacemessage{floatblocks}{2}{-- gespeichert}
-\setinterfacemessage{floatblocks}{5}{Reihenfolge angepasst}
-\setinterfacemessage{floatblocks}{4}{-- plaziert}
-\setinterfacemessage{floatblocks}{7}{Anz. der unteren Gleitobjekte beschraengt auf --}
-\setinterfacemessage{floatblocks}{6}{Anz. der oberen Gleitobjekte beschraengt auf --}
-\setinterfacemessage{floatblocks}{9}{Reigenfolge gestoert}
-\setinterfacemessage{floatblocks}{8}{weniger als -- zeilen}
-\setinterfacemessage{floatblocks}{title}{Gleitobjektbloecke}
-\setinterfacemessage{floatblocks}{13}{there is nothing to split}
-\setinterfacemessage{floatblocks}{12}{undefiniert}
-\setinterfacemessage{floatblocks}{11}{kein Block gegeben}
-\setinterfacemessage{floatblocks}{10}{-- begrenzt}
-\setinterfacemessage{interactions}{1}{Seitenverhaeltnis -- x -- (B x H)}
-\setinterfacemessage{interactions}{3}{inaktiv}
-\setinterfacemessage{interactions}{2}{aktiv}
-\setinterfacemessage{interactions}{5}{unknown attachment --}
-\setinterfacemessage{interactions}{4}{keine Seitensynchronisation (--) im hmode}
-\setinterfacemessage{interactions}{6}{attachment file -- does not exist}
-\setinterfacemessage{interactions}{title}{Interaktion}
-\setinterfacemessage{interactions}{21}{-- Code eingefuegt}
-\setinterfacemessage{regimes}{1}{Kodierung --}
-\setinterfacemessage{regimes}{3}{Unbekannte Kodierung --}
-\setinterfacemessage{regimes}{2}{Kodierung -- ist geladen}
-\setinterfacemessage{regimes}{title}{Kodierung}
-\setinterfacemessage{structures}{1}{Begin des Abschnittsblocks --}
-\setinterfacemessage{structures}{title}{struktur}
-\setinterfacemessage{structures}{2}{Ende des Abschnittsblocks --}
-\setinterfacemessage{linguals}{1}{Trennmuster -- fuer -- geladen (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{3}{Trenndefinitionen -- fuer -- geladen (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{2}{Keine Trennmuster -- fuer -- (n=--,e=--,m=--) (--,--)}
-\setinterfacemessage{linguals}{5}{Trennmuster fuer -- nicht geladen}
-\setinterfacemessage{linguals}{4}{Keine Trenndefinitionen -- fuer -- (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{7}{Sprachenspezifische Option [--] fuegt eine Luecke von -- ein}
-\setinterfacemessage{linguals}{6}{Sprache -- ist undefiniert}
-\setinterfacemessage{linguals}{9}{Sprache -- ist aktiv}
-\setinterfacemessage{linguals}{8}{Sprachenspezifische Option [--] nahtlos hinzugefuegt}
-\setinterfacemessage{linguals}{title}{Sprache}
-\setinterfacemessage{linguals}{10}{Trennmuster -- geladen}
-\setinterfacemessage{verbatims}{1}{Datei -- existiert nicht}
-\setinterfacemessage{verbatims}{title}{verbatim}
-\setinterfacemessage{filters}{1}{filter -- ist geladen}
-\setinterfacemessage{filters}{title}{filter}
-\setinterfacemessage{filters}{2}{unknown filter --}
-\setinterfacemessage{textblocks}{1}{neue Version, zweiter Durchlauf benoetigt}
-\setinterfacemessage{textblocks}{3}{lese Bloecke von --}
-\setinterfacemessage{textblocks}{2}{schreibe Bloecke zu --}
-\setinterfacemessage{textblocks}{5}{-- nicht verborgen}
-\setinterfacemessage{textblocks}{4}{zweiter Durchlauf benoetigt}
-\setinterfacemessage{textblocks}{7}{-- verborgen}
-\setinterfacemessage{textblocks}{6}{-- verborgen und verarbeitet}
-\setinterfacemessage{textblocks}{9}{-- nicht gesetzt}
-\setinterfacemessage{textblocks}{8}{-- gesetzt}
-\setinterfacemessage{textblocks}{title}{textblock}
-\setinterfacemessage{textblocks}{12}{-- ausgelassen}
-\setinterfacemessage{textblocks}{11}{-- geladen und gesetzt}
-\setinterfacemessage{textblocks}{10}{-- geladen und verarbeitet}
-\setinterfacemessage{encodings}{1}{Kodierung --}
-\setinterfacemessage{encodings}{3}{Unbekannte Kodierung --}
-\setinterfacemessage{encodings}{2}{Kodierung -- ist geladen}
-\setinterfacemessage{encodings}{title}{Kodierung}
-\setinterfacemessage{columns}{1}{nur -- Spalten moeglich}
-\setinterfacemessage{columns}{3}{Problem, verwende [ausgleich=nein]}
-\setinterfacemessage{columns}{2}{benutzte \string\filbreak\space als Alternative}
-\setinterfacemessage{columns}{5}{Gleitobjekt unten ncoh nicht unterstuetzt}
-\setinterfacemessage{columns}{4}{Gleitobjekt oben ncoh nicht unterstuetzt}
-\setinterfacemessage{columns}{7}{ausgleich nach 100 Schritten abgebrocheb}
-\setinterfacemessage{columns}{6}{-- Gleitobjekt(e) verschoben}
-\setinterfacemessage{columns}{9}{Ausrichtung ueberpruefen}
-\setinterfacemessage{columns}{8}{ausgeglichen nach -- Schritt(en)}
-\setinterfacemessage{columns}{title}{Spalten}
-\setinterfacemessage{columns}{13}{breites Gleitobjekt an den Anfang der Spalten verschoben}
-\setinterfacemessage{columns}{12}{Gleitobjekt in naechste Zeile verschoben / --}
-\setinterfacemessage{columns}{11}{Gleitobjekt zu breit fuer Spalte}
-\setinterfacemessage{columns}{10}{(weniger als) 1 Zeile uebrig}
-\setinterfacemessage{symbols}{1}{Lade Symboldatei --}
-\setinterfacemessage{symbols}{title}{Symbole}
-\setinterfacemessage{files}{1}{Dateisynonym -- wird bereits fuer -- benutzt}
-\setinterfacemessage{files}{title}{files}
-\setinterfacemessage{versions}{1}{fehlendes @+}
-\setinterfacemessage{versions}{3}{Ausgewaehlte Seiten: --}
-\setinterfacemessage{versions}{2}{Erstelle Seiten}
-\setinterfacemessage{versions}{title}{Version}
-\setinterfacemessage{specials}{1}{-- geladen}
-\setinterfacemessage{specials}{3}{-- ist zurueckgesetzt}
-\setinterfacemessage{specials}{2}{keine tiefere Verschachtelung erlaubt --}
-\setinterfacemessage{specials}{5}{lade Definitionsdatei --}
-\setinterfacemessage{specials}{4}{Befehl -- existiert nicht}
-\setinterfacemessage{specials}{7}{unbekante Driver --}
-\setinterfacemessage{specials}{6}{Verschachtelung nicht erlaubt}
-\setinterfacemessage{specials}{title}{spezielles}
-\setinterfacemessage{layouts}{1}{Texthoehe angepasst mit -- auf Seite --}
-\setinterfacemessage{layouts}{3}{-- mal Text verschoben}
-\setinterfacemessage{layouts}{2}{-- mal verschobener Text plaziert}
-\setinterfacemessage{layouts}{5}{marginalbloecke inaktiv}
-\setinterfacemessage{layouts}{4}{marginalbloecke aktiv}
-\setinterfacemessage{layouts}{7}{berechne Platzbedarf des Logos}
-\setinterfacemessage{layouts}{6}{Unterseitenfolge -- verarbeitet (Groesse --)}
-\setinterfacemessage{layouts}{9}{z.Z. nicht mehr als -- Ebenen in Aufzaehlungen}
-\setinterfacemessage{layouts}{8}{berechne Hintergrund}
-\setinterfacemessage{layouts}{title}{Layout}
-\setinterfacemessage{layouts}{11}{Zwischenraum -- nicht im Grittermoduserlau}
-\setinterfacemessage{layouts}{10}{-- und -- ergeben zusammen nicht 1.0}
-\setinterfacemessage{fonts}{1}{Kodierung --}
-\setinterfacemessage{fonts}{3}{Unbekannte Variante --}
-\setinterfacemessage{fonts}{2}{Variante -- ist geladen}
-\setinterfacemessage{fonts}{5}{Stil -- ist nicht definiert}
-\setinterfacemessage{fonts}{4}{Fliesstext -- ist nicht definiert}
-\setinterfacemessage{fonts}{7}{unbekanntes Format --}
-\setinterfacemessage{fonts}{6}{-- ist geladen}
-\setinterfacemessage{fonts}{14}{Fliesstext -- wurde definiert (besser waere globale Definition)}
-\setinterfacemessage{fonts}{8}{Stil -- definiert}
-\setinterfacemessage{fonts}{title}{Fliesstext}
-\setinterfacemessage{fonts}{10}{unbekanntes Font --}
-\setinterfacemessage{databases}{1}{--}
-\setinterfacemessage{databases}{3}{globale Datei --}
-\setinterfacemessage{databases}{2}{lokale Datei --}
-\setinterfacemessage{databases}{4}{unbekannte Datei --}
-\setinterfacemessage{databases}{title}{Datenbank}
-\setinterfacemessage{publications}{1}{file -- not found, unknown style ignored}
-\setinterfacemessage{publications}{3}{wrote a new auxiliary file \jobname.aux}
-\setinterfacemessage{publications}{title}{publications}
-\setinterfacemessage{publications}{2}{file -- not found, waiting for bibtex}
-\setinterfacemessage{publications}{4}{loading database from --}
-\setinterfacemessage{publications}{5}{warning: cite argument -- on line \the\inputlineno}
-\setinterfacemessage{publications}{6}{loading formatting style from --}
-\setinterfacemessage{javascript}{1}{Lade Scriptdatei --}
-\setinterfacemessage{javascript}{title}{javascript}
-\setinterfacemessage{javascript}{2}{unbekannte Preamble --}
-\setinterfacemessage{check}{1}{Fehlendes '=' nach '--' in Zeile --}
-\setinterfacemessage{check}{3}{-- -- ersetzt ein Makro, verwende VERSALIEN!}
-\setinterfacemessage{check}{2}{-- Argument(e) in Zeile -- erwartet}
-\setinterfacemessage{check}{title}{check}
-\setinterfacemessage{metapost}{1}{Lade metapost Bibliothek --}
-\setinterfacemessage{metapost}{title}{metapost}
-\setinterfacemessage{figures}{1}{Abbildung -- kann nicht gefunden werden}
-\setinterfacemessage{figures}{3}{dimensions of -- are determined externally}
-\setinterfacemessage{figures}{2}{Abbildung -- wird nicht erstellt}
-\setinterfacemessage{figures}{5}{Dimensions of -- are unknown}
-\setinterfacemessage{figures}{4}{Dimensionen von -- geladen aus der Abbildungsdatei selbst}
-\setinterfacemessage{figures}{6}{Dimensionen von -- ausgerechnet durch rlxtools}
-\setinterfacemessage{figures}{8}{Abbildungobjekt -- wurde wiederverwandt}
-\setinterfacemessage{figures}{title}{Abbildungen}
-\setinterfacemessage{colors}{1}{system -- ist global aktiviert}
-\setinterfacemessage{colors}{3}{-- ist undefiniert --}
-\setinterfacemessage{colors}{2}{system -- ist lokal aktiviert}
-\setinterfacemessage{colors}{5}{unbekanntes System --}
-\setinterfacemessage{colors}{4}{system -- ist geladen}
-\setinterfacemessage{colors}{7}{palette -- ist nicht verfuegbar}
-\setinterfacemessage{colors}{6}{palette -- ist verfuegbar}
-\setinterfacemessage{colors}{9}{-- Farbraum wird nicht unterstuetzt}
-\setinterfacemessage{colors}{8}{Spezifikation -- bei Farbe -- wird schwarz}
-\setinterfacemessage{colors}{title}{farbe}
-\setinterfacemessage{colors}{12}{-- is registered}
-\setinterfacemessage{colors}{11}{Farbe wird in Grau umgewandelt}
-\setinterfacemessage{colors}{10}{-- Farbraum wird unterstuetzt}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-men.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-men.mkii
deleted file mode 100644
index a8d42935602..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-men.mkii
+++ /dev/null
@@ -1,210 +0,0 @@
-\setinterfacemessage{references}{1}{unknown reference --}
-\setinterfacemessage{references}{30}{unknown object --}
-\setinterfacemessage{references}{3}{unknown reference type --}
-\setinterfacemessage{references}{2}{duplicate reference -- on page --}
-\setinterfacemessage{references}{5}{number of unknown references: --}
-\setinterfacemessage{references}{4}{illegal reference --}
-\setinterfacemessage{references}{6}{number of illegal references: --}
-\setinterfacemessage{references}{25}{references from document '--' are not imported (export again)}
-\setinterfacemessage{references}{24}{references from document '--' are not exported}
-\setinterfacemessage{references}{title}{references}
-\setinterfacemessage{references}{26}{references from document '--' are imported}
-\setinterfacemessage{references}{31}{duplicate object --}
-\setinterfacemessage{references}{21}{document -- loaded}
-\setinterfacemessage{references}{22}{document -- is not interactive}
-\setinterfacemessage{references}{23}{obscure reference -- (prefix=--)}
-\setinterfacemessage{documents}{1}{sheet --}
-\setinterfacemessage{documents}{title}{sheets}
-\setinterfacemessage{documents}{2}{number --}
-\setinterfacemessage{handlings}{1}{font handling --}
-\setinterfacemessage{handlings}{3}{unknown font handling --}
-\setinterfacemessage{handlings}{2}{font handling -- is loaded}
-\setinterfacemessage{handlings}{title}{handling}
-\setinterfacemessage{systems}{title}{system}
-\setinterfacemessage{systems}{41}{external file -- in group -- does not exist}
-\setinterfacemessage{systems}{9}{-- not found/processed}
-\setinterfacemessage{systems}{91}{papertray --}
-\setinterfacemessage{systems}{8}{new version of utility file, second pass needed}
-\setinterfacemessage{systems}{21}{no utility data is loaded}
-\setinterfacemessage{systems}{20}{meaning (sorts) of -- loaded}
-\setinterfacemessage{systems}{5}{module -- loaded}
-\setinterfacemessage{systems}{4}{command -- is already defined}
-\setinterfacemessage{systems}{27}{Version}
-\setinterfacemessage{systems}{26}{Registers}
-\setinterfacemessage{systems}{25}{References}
-\setinterfacemessage{systems}{24}{Floatblocks}
-\setinterfacemessage{systems}{1}{loading utility-file postponed (typemode)}
-\setinterfacemessage{systems}{23}{-- arranged at --}
-\setinterfacemessage{systems}{22}{use a valid utilityfile}
-\setinterfacemessage{systems}{2}{-- loaded}
-\setinterfacemessage{systems}{19}{meaning (synonyms) of -- loaded}
-\setinterfacemessage{systems}{18}{synonym -- -- does not exist}
-\setinterfacemessage{systems}{7}{module -- already loaded}
-\setinterfacemessage{systems}{6}{module -- not found}
-\setinterfacemessage{systems}{14}{forced newpage in list at --}
-\setinterfacemessage{systems}{15}{saving buffer --}
-\setinterfacemessage{systems}{16}{typesetting buffer --}
-\setinterfacemessage{systems}{17}{typesetting verbatim buffer --}
-\setinterfacemessage{systems}{13}{mark -- defined --}
-\setinterfacemessage{systems}{12}{the utility-file is not sorted, use texutil}
-\setinterfacemessage{systems}{11}{building simple util}
-\setinterfacemessage{systems}{10}{don't use em in --}
-\setinterfacemessage{floatblocks}{1}{-- renumbered / -- => --}
-\setinterfacemessage{floatblocks}{3}{-- moved}
-\setinterfacemessage{floatblocks}{2}{-- saved}
-\setinterfacemessage{floatblocks}{5}{order adapted}
-\setinterfacemessage{floatblocks}{4}{-- placed}
-\setinterfacemessage{floatblocks}{7}{n of bottom floats limited to --}
-\setinterfacemessage{floatblocks}{6}{n of top floats limited to --}
-\setinterfacemessage{floatblocks}{9}{order disturbed}
-\setinterfacemessage{floatblocks}{8}{less than -- lines}
-\setinterfacemessage{floatblocks}{title}{floatblocks}
-\setinterfacemessage{floatblocks}{13}{there is nothing to split}
-\setinterfacemessage{floatblocks}{12}{undefined}
-\setinterfacemessage{floatblocks}{11}{no block given}
-\setinterfacemessage{floatblocks}{10}{-- limited}
-\setinterfacemessage{interactions}{1}{aspect ratio -- x -- (b x h)}
-\setinterfacemessage{interactions}{3}{inactive}
-\setinterfacemessage{interactions}{2}{active}
-\setinterfacemessage{interactions}{5}{unknown attachment --}
-\setinterfacemessage{interactions}{4}{no pagesynchronisation (--) in hmode}
-\setinterfacemessage{interactions}{6}{attachment file -- does not exist}
-\setinterfacemessage{interactions}{title}{interaction}
-\setinterfacemessage{interactions}{21}{-- code inserted}
-\setinterfacemessage{regimes}{1}{regime --}
-\setinterfacemessage{regimes}{3}{unknown regime --}
-\setinterfacemessage{regimes}{2}{regime -- is loaded}
-\setinterfacemessage{regimes}{title}{regime}
-\setinterfacemessage{structures}{1}{begin of sectionblock --}
-\setinterfacemessage{structures}{title}{structure}
-\setinterfacemessage{structures}{2}{end of sectionblock --}
-\setinterfacemessage{linguals}{1}{patterns -- for -- loaded (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{3}{hyphenations -- for -- loaded (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{2}{no patterns -- for -- (n=--,e=--,m=--) (--,--)}
-\setinterfacemessage{linguals}{5}{patterns for -- not loaded}
-\setinterfacemessage{linguals}{4}{no hyphenations -- for -- (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{7}{language specific options [--] introduce a -- skip}
-\setinterfacemessage{linguals}{6}{language -- is undefined}
-\setinterfacemessage{linguals}{9}{language -- is active}
-\setinterfacemessage{linguals}{8}{language specific options [--] seamless appended}
-\setinterfacemessage{linguals}{title}{language}
-\setinterfacemessage{linguals}{10}{patterns -- loaded}
-\setinterfacemessage{verbatims}{1}{file -- does not exist}
-\setinterfacemessage{verbatims}{title}{verbatim}
-\setinterfacemessage{filters}{1}{filter -- is loaded}
-\setinterfacemessage{filters}{title}{filter}
-\setinterfacemessage{filters}{2}{unknown filter --}
-\setinterfacemessage{textblocks}{1}{new version, second pass needed}
-\setinterfacemessage{textblocks}{3}{reading blocks from --}
-\setinterfacemessage{textblocks}{2}{writing blocks to --}
-\setinterfacemessage{textblocks}{5}{-- not hidden}
-\setinterfacemessage{textblocks}{4}{second pass needed}
-\setinterfacemessage{textblocks}{7}{-- hidden}
-\setinterfacemessage{textblocks}{6}{-- hidden and processed}
-\setinterfacemessage{textblocks}{9}{-- not typeset}
-\setinterfacemessage{textblocks}{8}{-- typeset}
-\setinterfacemessage{textblocks}{title}{textblocks}
-\setinterfacemessage{textblocks}{12}{-- skipped}
-\setinterfacemessage{textblocks}{11}{-- loaded and typeset}
-\setinterfacemessage{textblocks}{10}{-- loaded and processed}
-\setinterfacemessage{encodings}{1}{coding --}
-\setinterfacemessage{encodings}{3}{unknown coding --}
-\setinterfacemessage{encodings}{2}{coding -- is loaded}
-\setinterfacemessage{encodings}{title}{encoding}
-\setinterfacemessage{columns}{1}{only -- columns possible}
-\setinterfacemessage{columns}{3}{problems, disable balancing}
-\setinterfacemessage{columns}{2}{use \string\filbreak\space as alternative}
-\setinterfacemessage{columns}{5}{bottom float not yet supported}
-\setinterfacemessage{columns}{4}{top float not yet supported}
-\setinterfacemessage{columns}{7}{balancing aborted after 100 steps}
-\setinterfacemessage{columns}{6}{-- float(s) postponed}
-\setinterfacemessage{columns}{9}{check raggedness}
-\setinterfacemessage{columns}{8}{balanced in -- step(s)}
-\setinterfacemessage{columns}{title}{columns}
-\setinterfacemessage{columns}{13}{wide float moved to top of columns}
-\setinterfacemessage{columns}{12}{float moved to next column / --}
-\setinterfacemessage{columns}{11}{float too wide for column}
-\setinterfacemessage{columns}{10}{(less than) 1 line left}
-\setinterfacemessage{symbols}{1}{loading symbolset --}
-\setinterfacemessage{symbols}{title}{symbols}
-\setinterfacemessage{files}{1}{file synonym -- is already used for --}
-\setinterfacemessage{files}{title}{files}
-\setinterfacemessage{versions}{1}{missing @+}
-\setinterfacemessage{versions}{3}{selected pages: --}
-\setinterfacemessage{versions}{2}{marking pages}
-\setinterfacemessage{versions}{title}{version}
-\setinterfacemessage{specials}{1}{-- loaded}
-\setinterfacemessage{specials}{3}{-- is reset}
-\setinterfacemessage{specials}{2}{no deeper nesting is permitted --}
-\setinterfacemessage{specials}{5}{loading definition file --}
-\setinterfacemessage{specials}{4}{command -- does not exist}
-\setinterfacemessage{specials}{7}{unknown driver --}
-\setinterfacemessage{specials}{6}{nesting is not permitted}
-\setinterfacemessage{specials}{title}{specials}
-\setinterfacemessage{layouts}{1}{textheight adapted with -- at page --}
-\setinterfacemessage{layouts}{3}{-- times text postponed}
-\setinterfacemessage{layouts}{2}{-- times postponed text placed}
-\setinterfacemessage{layouts}{5}{marginblocks inactive}
-\setinterfacemessage{layouts}{4}{marginblocks active}
-\setinterfacemessage{layouts}{7}{calculating logospace}
-\setinterfacemessage{layouts}{6}{subpage set -- processed (size --)}
-\setinterfacemessage{layouts}{9}{currently no more than -- levels in itemizations}
-\setinterfacemessage{layouts}{8}{calculating backgrounds}
-\setinterfacemessage{layouts}{title}{layout}
-\setinterfacemessage{layouts}{11}{spacing -- not permitted in gridmode}
-\setinterfacemessage{layouts}{10}{-- and -- don't add up to 1.0}
-\setinterfacemessage{fonts}{1}{coding --}
-\setinterfacemessage{fonts}{3}{unknown variant --}
-\setinterfacemessage{fonts}{2}{variant -- is loaded}
-\setinterfacemessage{fonts}{5}{style -- is not defined}
-\setinterfacemessage{fonts}{4}{bodyfont -- is not defined}
-\setinterfacemessage{fonts}{7}{unknown format --}
-\setinterfacemessage{fonts}{6}{-- is loaded}
-\setinterfacemessage{fonts}{14}{bodyfont -- is defined (can better be done global)}
-\setinterfacemessage{fonts}{8}{style -- defined}
-\setinterfacemessage{fonts}{title}{bodyfont}
-\setinterfacemessage{fonts}{10}{unknown font file --}
-\setinterfacemessage{databases}{1}{--}
-\setinterfacemessage{databases}{3}{global file --}
-\setinterfacemessage{databases}{2}{local file --}
-\setinterfacemessage{databases}{4}{unknown file --}
-\setinterfacemessage{databases}{title}{databases}
-\setinterfacemessage{publications}{1}{file -- not found, unknown style ignored}
-\setinterfacemessage{publications}{3}{wrote a new auxiliary file \jobname.aux}
-\setinterfacemessage{publications}{title}{publications}
-\setinterfacemessage{publications}{2}{file -- not found, waiting for bibtex}
-\setinterfacemessage{publications}{4}{loading database from --}
-\setinterfacemessage{publications}{5}{warning: cite argument -- on line \the\inputlineno}
-\setinterfacemessage{publications}{6}{loading formatting style from --}
-\setinterfacemessage{javascript}{1}{loading script set --}
-\setinterfacemessage{javascript}{title}{javascript}
-\setinterfacemessage{javascript}{2}{unknown preamble --}
-\setinterfacemessage{check}{1}{missing or ungrouped '=' after '--' in line --}
-\setinterfacemessage{check}{3}{-- -- replaces a macro, use CAPITALS!}
-\setinterfacemessage{check}{2}{-- argument(s) expected in line --}
-\setinterfacemessage{check}{title}{check}
-\setinterfacemessage{metapost}{1}{loading metapost library --}
-\setinterfacemessage{metapost}{title}{metapost}
-\setinterfacemessage{figures}{1}{figure -- can not be found}
-\setinterfacemessage{figures}{3}{dimensions of -- are determined externally}
-\setinterfacemessage{figures}{2}{figure -- is not preset}
-\setinterfacemessage{figures}{5}{dimensions of -- are unknown}
-\setinterfacemessage{figures}{4}{dimensions of -- loaded from figurefile itself}
-\setinterfacemessage{figures}{6}{dimensions of -- calculated by rlxtools}
-\setinterfacemessage{figures}{8}{figureobject -- is reused}
-\setinterfacemessage{figures}{title}{figures}
-\setinterfacemessage{colors}{1}{system -- is global activated}
-\setinterfacemessage{colors}{3}{-- is not defined --}
-\setinterfacemessage{colors}{2}{system -- is local activated}
-\setinterfacemessage{colors}{5}{unknown system --}
-\setinterfacemessage{colors}{4}{system -- is loaded}
-\setinterfacemessage{colors}{7}{palette -- is not available}
-\setinterfacemessage{colors}{6}{palette -- is available}
-\setinterfacemessage{colors}{9}{-- color space is not supported}
-\setinterfacemessage{colors}{8}{specification -- at color -- becomes black}
-\setinterfacemessage{colors}{title}{color}
-\setinterfacemessage{colors}{12}{-- is registered}
-\setinterfacemessage{colors}{11}{color is converted to gray}
-\setinterfacemessage{colors}{10}{-- color space is supported}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-mfr.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-mfr.mkii
deleted file mode 100644
index 7fee954c039..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-mfr.mkii
+++ /dev/null
@@ -1,210 +0,0 @@
-\setinterfacemessage{references}{1}{réference -- inconnue}
-\setinterfacemessage{references}{30}{objet -- inconnu}
-\setinterfacemessage{references}{3}{type -- de réference inconnu}
-\setinterfacemessage{references}{2}{réference -- dupliquée à la page --}
-\setinterfacemessage{references}{5}{number of unknown references: --}
-\setinterfacemessage{references}{4}{réference -- inconnue}
-\setinterfacemessage{references}{6}{number of illegal references: --}
-\setinterfacemessage{references}{25}{references from document '--' are not imported (export again)}
-\setinterfacemessage{references}{24}{references from document '--' are not exported}
-\setinterfacemessage{references}{title}{réferences}
-\setinterfacemessage{references}{26}{references from document '--' are imported}
-\setinterfacemessage{references}{31}{objet -- dupliqué}
-\setinterfacemessage{references}{21}{document -- chargé}
-\setinterfacemessage{references}{22}{le document -- n'est pas interactif}
-\setinterfacemessage{references}{23}{reference -- indéterminé (préfixe=--)}
-\setinterfacemessage{documents}{1}{sheet --}
-\setinterfacemessage{documents}{title}{sheets}
-\setinterfacemessage{documents}{2}{number --}
-\setinterfacemessage{handlings}{1}{manipulation -- de police}
-\setinterfacemessage{handlings}{3}{manipulation -- inconnue de police}
-\setinterfacemessage{handlings}{2}{la manipulation -- de police est chargée}
-\setinterfacemessage{handlings}{title}{manipulation}
-\setinterfacemessage{systems}{title}{système}
-\setinterfacemessage{systems}{41}{le fichier externe -- du groupe -- n'existe pas}
-\setinterfacemessage{systems}{9}{-- non trouvé/traité}
-\setinterfacemessage{systems}{91}{papertray --}
-\setinterfacemessage{systems}{8}{nouvelle version de fichier utilitaire, seconde passe nécessaire}
-\setinterfacemessage{systems}{21}{pas de données utilitaires chargées}
-\setinterfacemessage{systems}{20}{signification (tris) de -- chargée}
-\setinterfacemessage{systems}{5}{module -- chargé}
-\setinterfacemessage{systems}{4}{la commande -- est déjà définie}
-\setinterfacemessage{systems}{27}{Version}
-\setinterfacemessage{systems}{26}{Registres}
-\setinterfacemessage{systems}{25}{Réferences}
-\setinterfacemessage{systems}{24}{blocsflottants}
-\setinterfacemessage{systems}{1}{chargement de fichier utilitaire reporté (typemode)}
-\setinterfacemessage{systems}{23}{-- arrangé à --}
-\setinterfacemessage{systems}{22}{utilise un fichier utilitaire valide}
-\setinterfacemessage{systems}{2}{-- chargé}
-\setinterfacemessage{systems}{19}{signification (synonymes) de -- chargée}
-\setinterfacemessage{systems}{18}{le synonyme -- -- n'existe pas}
-\setinterfacemessage{systems}{7}{module -- déjà chargé}
-\setinterfacemessage{systems}{6}{module -- non trouvé}
-\setinterfacemessage{systems}{14}{nouvellepage forcée dans la liste à --}
-\setinterfacemessage{systems}{15}{sauvegarde du tampon (buffer) --}
-\setinterfacemessage{systems}{16}{composition du tampon (buffer) --}
-\setinterfacemessage{systems}{17}{composition textuelle du tampon (buffer) --}
-\setinterfacemessage{systems}{13}{marquage -- defini --}
-\setinterfacemessage{systems}{12}{le fichier utilitaire n'est pas trié, utilise texutil}
-\setinterfacemessage{systems}{11}{construction util simple}
-\setinterfacemessage{systems}{10}{n'utilisez pas em dans --}
-\setinterfacemessage{floatblocks}{1}{-- renuméroté / -- => --}
-\setinterfacemessage{floatblocks}{3}{-- déplacé}
-\setinterfacemessage{floatblocks}{2}{-- sauvegardé}
-\setinterfacemessage{floatblocks}{5}{ordre adapté}
-\setinterfacemessage{floatblocks}{4}{-- placé}
-\setinterfacemessage{floatblocks}{7}{n flottants de bas de page limité à --}
-\setinterfacemessage{floatblocks}{6}{n flottants de haut de page limité à --}
-\setinterfacemessage{floatblocks}{9}{ordre perturbé}
-\setinterfacemessage{floatblocks}{8}{moins de -- lignes}
-\setinterfacemessage{floatblocks}{title}{blocs de flottants}
-\setinterfacemessage{floatblocks}{13}{there is nothing to split}
-\setinterfacemessage{floatblocks}{12}{indéfini}
-\setinterfacemessage{floatblocks}{11}{pas de bloc donné}
-\setinterfacemessage{floatblocks}{10}{-- limité}
-\setinterfacemessage{interactions}{1}{ratio d'aspect -- x -- (b x h)}
-\setinterfacemessage{interactions}{3}{inactif}
-\setinterfacemessage{interactions}{2}{actif}
-\setinterfacemessage{interactions}{5}{le fichier joint -- est inconnu}
-\setinterfacemessage{interactions}{4}{pas de synchronisation de page (--) dans le hmode}
-\setinterfacemessage{interactions}{6}{le fichier joint -- n'existe pas}
-\setinterfacemessage{interactions}{title}{interaction}
-\setinterfacemessage{interactions}{21}{-- code inseré}
-\setinterfacemessage{regimes}{1}{encodage --}
-\setinterfacemessage{regimes}{3}{encodage -- inconnu}
-\setinterfacemessage{regimes}{2}{l'encodage -- est chargé}
-\setinterfacemessage{regimes}{title}{encodage}
-\setinterfacemessage{structures}{1}{début de blocsection --}
-\setinterfacemessage{structures}{title}{structure}
-\setinterfacemessage{structures}{2}{fin de blocsection --}
-\setinterfacemessage{linguals}{1}{les motifs -- pour -- sont chargés (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{3}{hyphenations -- pour -- chargés (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{2}{pas de motifs -- pour -- (n=--,e=--,m=--) (--,--)}
-\setinterfacemessage{linguals}{5}{les motifs pour -- ne sont pas chargés}
-\setinterfacemessage{linguals}{4}{pas d'hyphenations -- pour -- (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{7}{les options spécifiques de langue [--] introduisent un -- saut}
-\setinterfacemessage{linguals}{6}{langue -- non définie}
-\setinterfacemessage{linguals}{9}{la langue -- est active}
-\setinterfacemessage{linguals}{8}{les options spécifiques de langue [--] sont ajoutés en douceur}
-\setinterfacemessage{linguals}{title}{langue}
-\setinterfacemessage{linguals}{10}{motifs -- chargés}
-\setinterfacemessage{verbatims}{1}{le fichier -- n'existe pas}
-\setinterfacemessage{verbatims}{title}{verbatim}
-\setinterfacemessage{filters}{1}{le filtre -- est chargé}
-\setinterfacemessage{filters}{title}{filtre}
-\setinterfacemessage{filters}{2}{filtre -- inconnu}
-\setinterfacemessage{textblocks}{1}{nouvelle version, une seconde passe est nécessaire}
-\setinterfacemessage{textblocks}{3}{lecture des blocs en provenance de --}
-\setinterfacemessage{textblocks}{2}{ecriture des blocs vers --}
-\setinterfacemessage{textblocks}{5}{-- non caché}
-\setinterfacemessage{textblocks}{4}{seconde passe nécessaire}
-\setinterfacemessage{textblocks}{7}{-- caché}
-\setinterfacemessage{textblocks}{6}{-- caché et traité}
-\setinterfacemessage{textblocks}{9}{-- non composé}
-\setinterfacemessage{textblocks}{8}{-- composé}
-\setinterfacemessage{textblocks}{title}{blocs de texte}
-\setinterfacemessage{textblocks}{12}{-- sauté}
-\setinterfacemessage{textblocks}{11}{-- chargé et composé}
-\setinterfacemessage{textblocks}{10}{-- chargé et traité}
-\setinterfacemessage{encodings}{1}{encodage --}
-\setinterfacemessage{encodings}{3}{encodage -- inconnu}
-\setinterfacemessage{encodings}{2}{l'encodage -- est chargé}
-\setinterfacemessage{encodings}{title}{encodage}
-\setinterfacemessage{columns}{1}{seules -- colonnes possibles}
-\setinterfacemessage{columns}{3}{problèmes, désactive l'équilibrage}
-\setinterfacemessage{columns}{2}{utilisez \string\filbreak\space en tant qu'alternative}
-\setinterfacemessage{columns}{5}{flottant en partie inférieure pas encore supporté}
-\setinterfacemessage{columns}{4}{flottant en partie supérieure pas encore supporté}
-\setinterfacemessage{columns}{7}{équilibrage abandonné après 100 pas}
-\setinterfacemessage{columns}{6}{-- flottant(s) reporté(s)}
-\setinterfacemessage{columns}{9}{vérification des irrégularités}
-\setinterfacemessage{columns}{8}{équilibré en -- pas}
-\setinterfacemessage{columns}{title}{colonnes}
-\setinterfacemessage{columns}{13}{flottant large déplacé dans la partie supérieure de la colonne}
-\setinterfacemessage{columns}{12}{flottant déplacé à la colonne suivante / --}
-\setinterfacemessage{columns}{11}{flottant mis à la largeur de la colonne}
-\setinterfacemessage{columns}{10}{(moins de) 1 ligne restante}
-\setinterfacemessage{symbols}{1}{chargement du jeu de symbole --}
-\setinterfacemessage{symbols}{title}{symboles}
-\setinterfacemessage{files}{1}{le synonyme de fichier -- est déjà utilisé pour --}
-\setinterfacemessage{files}{title}{fichiers}
-\setinterfacemessage{versions}{1}{@+ manquant}
-\setinterfacemessage{versions}{3}{pages sélectionnées : --}
-\setinterfacemessage{versions}{2}{marquage des pages}
-\setinterfacemessage{versions}{title}{version}
-\setinterfacemessage{specials}{1}{-- chargé}
-\setinterfacemessage{specials}{3}{-- est remis à zéro}
-\setinterfacemessage{specials}{2}{pas d'imbracations plus profondes ne sont permises --}
-\setinterfacemessage{specials}{5}{chargement du fichier de définition --}
-\setinterfacemessage{specials}{4}{la commande -- n'existe pas}
-\setinterfacemessage{specials}{7}{pilote -- inconnu}
-\setinterfacemessage{specials}{6}{l'imbrication n'est pas permise}
-\setinterfacemessage{specials}{title}{specials}
-\setinterfacemessage{layouts}{1}{hauteurtexte adaptée avec -- à la page --}
-\setinterfacemessage{layouts}{3}{-- times text postponed}
-\setinterfacemessage{layouts}{2}{-- times postponed text placed}
-\setinterfacemessage{layouts}{5}{blocsmarge inactifs}
-\setinterfacemessage{layouts}{4}{blocsmarge actifs}
-\setinterfacemessage{layouts}{7}{calcul de l'espace pour le logo}
-\setinterfacemessage{layouts}{6}{jeu de souspage -- traité (taille --)}
-\setinterfacemessage{layouts}{9}{pas plus de -- niveaux pour l'instant dans les élémentarisations}
-\setinterfacemessage{layouts}{8}{calcul des arrières-plans}
-\setinterfacemessage{layouts}{title}{calque}
-\setinterfacemessage{layouts}{11}{espacement -- non permis en modegrille}
-\setinterfacemessage{layouts}{10}{-- et -- ne sont pas ajoutés à 1.0}
-\setinterfacemessage{fonts}{1}{encodage --}
-\setinterfacemessage{fonts}{3}{variante -- inconnue}
-\setinterfacemessage{fonts}{2}{la variante -- est chargée}
-\setinterfacemessage{fonts}{5}{le style -- n'est pas défini}
-\setinterfacemessage{fonts}{4}{policecorps -- n'est pas définie}
-\setinterfacemessage{fonts}{7}{format -- inconnu}
-\setinterfacemessage{fonts}{6}{-- est chargé}
-\setinterfacemessage{fonts}{14}{policecorps -- est défini (une définition globale pourrait être plus adéquat)}
-\setinterfacemessage{fonts}{8}{style -- défini}
-\setinterfacemessage{fonts}{title}{corps de texte}
-\setinterfacemessage{fonts}{10}{fichier de police -- inconnu}
-\setinterfacemessage{databases}{1}{--}
-\setinterfacemessage{databases}{3}{fichier global --}
-\setinterfacemessage{databases}{2}{fichier local --}
-\setinterfacemessage{databases}{4}{fichier inconnu --}
-\setinterfacemessage{databases}{title}{bases de données}
-\setinterfacemessage{publications}{1}{file -- not found, unknown style ignored}
-\setinterfacemessage{publications}{3}{wrote a new auxiliary file \jobname.aux}
-\setinterfacemessage{publications}{title}{publications}
-\setinterfacemessage{publications}{2}{file -- not found, waiting for bibtex}
-\setinterfacemessage{publications}{4}{loading database from --}
-\setinterfacemessage{publications}{5}{warning: cite argument -- on line \the\inputlineno}
-\setinterfacemessage{publications}{6}{loading formatting style from --}
-\setinterfacemessage{javascript}{1}{chargement du jeu de script --}
-\setinterfacemessage{javascript}{title}{javascript}
-\setinterfacemessage{javascript}{2}{préambule -- inconnu}
-\setinterfacemessage{check}{1}{manquant ou dégroupé '=' après '--' à la ligne --}
-\setinterfacemessage{check}{3}{-- -- remplace une macro, utilisez des MAJUSCULES !}
-\setinterfacemessage{check}{2}{-- argument(s) attendu(s) à la ligne --}
-\setinterfacemessage{check}{title}{vérification}
-\setinterfacemessage{metapost}{1}{chargement de la bibliothèque metapost --}
-\setinterfacemessage{metapost}{title}{metapost}
-\setinterfacemessage{figures}{1}{la figure -- ne peut être trouvée}
-\setinterfacemessage{figures}{3}{dimensions of -- are determined externally}
-\setinterfacemessage{figures}{2}{la figure -- n'est pas pré-sélectionnée}
-\setinterfacemessage{figures}{5}{dimensions of -- are unknown}
-\setinterfacemessage{figures}{4}{les dimensions de -- chargées implicitement à partir du fichier de figure}
-\setinterfacemessage{figures}{6}{les dimensions de -- calculées par rlxtools}
-\setinterfacemessage{figures}{8}{figureobject -- est réutilisé}
-\setinterfacemessage{figures}{title}{figures}
-\setinterfacemessage{colors}{1}{le système -- est globalement activé}
-\setinterfacemessage{colors}{3}{-- n'est pas défini --}
-\setinterfacemessage{colors}{2}{le système -- est localement activé}
-\setinterfacemessage{colors}{5}{système -- inconnu}
-\setinterfacemessage{colors}{4}{le système -- est chargé}
-\setinterfacemessage{colors}{7}{le palette -- n'est pas disponible}
-\setinterfacemessage{colors}{6}{la palette -- est disponible}
-\setinterfacemessage{colors}{9}{l'espace de couleur -- n'est pas supporté}
-\setinterfacemessage{colors}{8}{la spécification -- de la couleur -- devient noire}
-\setinterfacemessage{colors}{title}{couleurs}
-\setinterfacemessage{colors}{12}{-- est enregistré}
-\setinterfacemessage{colors}{11}{la couleur est convertie en niveau de gris}
-\setinterfacemessage{colors}{10}{-- l'espace de couleur est supporté}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-mit.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-mit.mkii
deleted file mode 100644
index 9d09e267654..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-mit.mkii
+++ /dev/null
@@ -1,210 +0,0 @@
-\setinterfacemessage{references}{1}{riferimento sconosciuto --}
-\setinterfacemessage{references}{30}{oggetto sconosciuto --}
-\setinterfacemessage{references}{3}{riferimento di tipo sconosciuto --}
-\setinterfacemessage{references}{2}{riferimento duplicato -- a pagina --}
-\setinterfacemessage{references}{5}{number of unknown references: --}
-\setinterfacemessage{references}{4}{riferimento illecito --}
-\setinterfacemessage{references}{6}{number of illegal references: --}
-\setinterfacemessage{references}{25}{references from document '--' are not imported (export again)}
-\setinterfacemessage{references}{24}{references from document '--' are not exported}
-\setinterfacemessage{references}{title}{riferimenti}
-\setinterfacemessage{references}{26}{references from document '--' are imported}
-\setinterfacemessage{references}{31}{oggetto duplicato --}
-\setinterfacemessage{references}{21}{documento -- caricato}
-\setinterfacemessage{references}{22}{il documento -- non ø interattivo}
-\setinterfacemessage{references}{23}{riferimento ambiguo -- (prefisso=--)}
-\setinterfacemessage{documents}{1}{sheet --}
-\setinterfacemessage{documents}{title}{sheets}
-\setinterfacemessage{documents}{2}{number --}
-\setinterfacemessage{handlings}{1}{font handling --}
-\setinterfacemessage{handlings}{3}{unknown font handling --}
-\setinterfacemessage{handlings}{2}{font handling -- is loaded}
-\setinterfacemessage{handlings}{title}{handling}
-\setinterfacemessage{systems}{title}{sistema}
-\setinterfacemessage{systems}{41}{il file esterno -- del gruppo -- non esiste}
-\setinterfacemessage{systems}{9}{-- non trovato/elaborato}
-\setinterfacemessage{systems}{91}{papertray --}
-\setinterfacemessage{systems}{8}{nuova versione del file supplementare, seconda passata necessaria}
-\setinterfacemessage{systems}{21}{nessuna informazione supplementare caricata}
-\setinterfacemessage{systems}{20}{significato (specie) di -- caricato}
-\setinterfacemessage{systems}{5}{macro del modulo -- caricate}
-\setinterfacemessage{systems}{4}{comando -- già definito}
-\setinterfacemessage{systems}{27}{Versione}
-\setinterfacemessage{systems}{26}{Registri}
-\setinterfacemessage{systems}{25}{Riferimenti}
-\setinterfacemessage{systems}{24}{Oggetti mobili}
-\setinterfacemessage{systems}{1}{caricamento dei file supplementari posticipato (typemode)}
-\setinterfacemessage{systems}{23}{-- sistemato a --}
-\setinterfacemessage{systems}{22}{usare un file supplementare valido}
-\setinterfacemessage{systems}{2}{-- caricato}
-\setinterfacemessage{systems}{19}{significato (sinonimi) di -- caricato}
-\setinterfacemessage{systems}{18}{sinonimo -- -- non esistente}
-\setinterfacemessage{systems}{7}{macro del modulo -- già caricate}
-\setinterfacemessage{systems}{6}{nessuna macro trovata nel modulo --}
-\setinterfacemessage{systems}{14}{nuova pagina obbligata in lista a --}
-\setinterfacemessage{systems}{15}{salvataggio del buffer --}
-\setinterfacemessage{systems}{16}{composizione del buffer --}
-\setinterfacemessage{systems}{17}{composizione verbatim del buffer --}
-\setinterfacemessage{systems}{13}{marcatura -- definita --}
-\setinterfacemessage{systems}{12}{file di supplemento non ordinato, usare texutil}
-\setinterfacemessage{systems}{11}{costruzione di un semplice supplemento}
-\setinterfacemessage{systems}{10}{non usare em in --}
-\setinterfacemessage{floatblocks}{1}{-- rinumerato / -- => --}
-\setinterfacemessage{floatblocks}{3}{-- mosso}
-\setinterfacemessage{floatblocks}{2}{-- salvato}
-\setinterfacemessage{floatblocks}{5}{ordine aggiustato}
-\setinterfacemessage{floatblocks}{4}{-- sistemato}
-\setinterfacemessage{floatblocks}{7}{n di bottom floats limitato a --}
-\setinterfacemessage{floatblocks}{6}{n di top floats limitato a --}
-\setinterfacemessage{floatblocks}{9}{ordine disturbato}
-\setinterfacemessage{floatblocks}{8}{meno di -- righe}
-\setinterfacemessage{floatblocks}{title}{oggetti mobili}
-\setinterfacemessage{floatblocks}{13}{there is nothing to split}
-\setinterfacemessage{floatblocks}{12}{non definito}
-\setinterfacemessage{floatblocks}{11}{nessun oggetto specificato}
-\setinterfacemessage{floatblocks}{10}{-- limitato}
-\setinterfacemessage{interactions}{1}{rapporto -- x -- (b x a)}
-\setinterfacemessage{interactions}{3}{inattiva}
-\setinterfacemessage{interactions}{2}{attiva}
-\setinterfacemessage{interactions}{5}{unknown attachment --}
-\setinterfacemessage{interactions}{4}{sincronizzazione di pagina (--) non disponibile in hmode}
-\setinterfacemessage{interactions}{6}{attachment file -- does not exist}
-\setinterfacemessage{interactions}{title}{interazione}
-\setinterfacemessage{interactions}{21}{codice -- inserito}
-\setinterfacemessage{regimes}{1}{codifica --}
-\setinterfacemessage{regimes}{3}{codifica sconosciuta --}
-\setinterfacemessage{regimes}{2}{codifica -- caricata}
-\setinterfacemessage{regimes}{title}{codifica}
-\setinterfacemessage{structures}{1}{inizio del blocco (sezione) --}
-\setinterfacemessage{structures}{title}{struttura}
-\setinterfacemessage{structures}{2}{fine del blocco (sezione) --}
-\setinterfacemessage{linguals}{1}{schemi -- per -- caricati (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{3}{sillabazione -- per -- caricata (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{2}{niente schemi -- per -- (n=--,e=--,m=--) (--,--)}
-\setinterfacemessage{linguals}{5}{schemi per -- non caricati}
-\setinterfacemessage{linguals}{4}{niente sillabazione -- per -- (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{7}{opzioni specifiche per la lingua [--] introducono un salto --}
-\setinterfacemessage{linguals}{6}{lingua -- non definita}
-\setinterfacemessage{linguals}{9}{lingua -- attiva}
-\setinterfacemessage{linguals}{8}{opzioni specifiche per la lingua [--] aggiunte trasparentemente}
-\setinterfacemessage{linguals}{title}{lingua}
-\setinterfacemessage{linguals}{10}{schemi -- caricati}
-\setinterfacemessage{verbatims}{1}{il file -- non esiste}
-\setinterfacemessage{verbatims}{title}{verbatim}
-\setinterfacemessage{filters}{1}{filtro -- caricato}
-\setinterfacemessage{filters}{title}{filtri}
-\setinterfacemessage{filters}{2}{filtro sconosciuto --}
-\setinterfacemessage{textblocks}{1}{nuova versione, seconda passata necessaria}
-\setinterfacemessage{textblocks}{3}{lettura dei blocchi da --}
-\setinterfacemessage{textblocks}{2}{scrittura dei blocchi su --}
-\setinterfacemessage{textblocks}{5}{-- non nascosto}
-\setinterfacemessage{textblocks}{4}{seconda passata necessaria}
-\setinterfacemessage{textblocks}{7}{-- nascosto}
-\setinterfacemessage{textblocks}{6}{-- nascosto ed elaborato}
-\setinterfacemessage{textblocks}{9}{-- non composto}
-\setinterfacemessage{textblocks}{8}{-- composto}
-\setinterfacemessage{textblocks}{title}{blocchi di testo}
-\setinterfacemessage{textblocks}{12}{-- saltato}
-\setinterfacemessage{textblocks}{11}{-- caricato e composto}
-\setinterfacemessage{textblocks}{10}{-- caricato ed elaborato}
-\setinterfacemessage{encodings}{1}{codifica --}
-\setinterfacemessage{encodings}{3}{codifica sconosciuta --}
-\setinterfacemessage{encodings}{2}{codifica -- caricata}
-\setinterfacemessage{encodings}{title}{codifica}
-\setinterfacemessage{columns}{1}{solo -- colonne possibili}
-\setinterfacemessage{columns}{3}{problemi, disabilitare il bilanciamento}
-\setinterfacemessage{columns}{2}{in alternativa, usare \string\filbreak}
-\setinterfacemessage{columns}{5}{float in fondo non ancora supportato}
-\setinterfacemessage{columns}{4}{float in cima non ancora supportato}
-\setinterfacemessage{columns}{7}{bilanciamento annullato dopo 100 passi}
-\setinterfacemessage{columns}{6}{-- float(s) posticipate}
-\setinterfacemessage{columns}{9}{controllare seghettamento}
-\setinterfacemessage{columns}{8}{bilanciamento in -- passo/i}
-\setinterfacemessage{columns}{title}{colonne}
-\setinterfacemessage{columns}{13}{oggetto mobile ampio spostato sopra le colonne}
-\setinterfacemessage{columns}{12}{oggetto mobile spostata alla colonna successiva / --}
-\setinterfacemessage{columns}{11}{oggetto mobile troppo ampio per la colonna}
-\setinterfacemessage{columns}{10}{(meno di) una riga rimasta}
-\setinterfacemessage{symbols}{1}{caricamento gruppo di simboli --}
-\setinterfacemessage{symbols}{title}{simboli}
-\setinterfacemessage{files}{1}{sinonimo file -- già in uso per --}
-\setinterfacemessage{files}{title}{file}
-\setinterfacemessage{versions}{1}{@+ mancante}
-\setinterfacemessage{versions}{3}{pagine selezionate: --}
-\setinterfacemessage{versions}{2}{marcatura pagine}
-\setinterfacemessage{versions}{title}{version}
-\setinterfacemessage{specials}{1}{-- caricato}
-\setinterfacemessage{specials}{3}{-- reimpostato}
-\setinterfacemessage{specials}{2}{non ø permesso un annidamento maggiore --}
-\setinterfacemessage{specials}{5}{caricamento del file di definizione --}
-\setinterfacemessage{specials}{4}{il comando -- non esiste}
-\setinterfacemessage{specials}{7}{driver sconosciuto --}
-\setinterfacemessage{specials}{6}{annidamento non permesso}
-\setinterfacemessage{specials}{title}{specialitø}
-\setinterfacemessage{layouts}{1}{altezza del testo adattata con -- a pagina --}
-\setinterfacemessage{layouts}{3}{testo posticipato -- volte}
-\setinterfacemessage{layouts}{2}{posizionato testo posticipato -- volte}
-\setinterfacemessage{layouts}{5}{blocchi in margine inattivi}
-\setinterfacemessage{layouts}{4}{blocchi in margine attivi}
-\setinterfacemessage{layouts}{7}{calcolo dello spazio per logo}
-\setinterfacemessage{layouts}{6}{gruppo di sottopagine -- elaborato (dimensione --)}
-\setinterfacemessage{layouts}{9}{attualmente non più di -- livelli di elencazione}
-\setinterfacemessage{layouts}{8}{calcolo dello sfondo}
-\setinterfacemessage{layouts}{title}{layout}
-\setinterfacemessage{layouts}{11}{spaziatura -- non permessa in modo griglia}
-\setinterfacemessage{layouts}{10}{-- e -- non sommano a 1.0}
-\setinterfacemessage{fonts}{1}{codifica --}
-\setinterfacemessage{fonts}{3}{variante sconosciuta --}
-\setinterfacemessage{fonts}{2}{variante -- caricata}
-\setinterfacemessage{fonts}{5}{stile -- non definito}
-\setinterfacemessage{fonts}{4}{corpo del testo -- non definito}
-\setinterfacemessage{fonts}{7}{formato sconosciuto --}
-\setinterfacemessage{fonts}{6}{-- caricato}
-\setinterfacemessage{fonts}{14}{corpo del testo -- definito (sarebbe meglio globale)}
-\setinterfacemessage{fonts}{8}{stile -- definito}
-\setinterfacemessage{fonts}{title}{font del corpo}
-\setinterfacemessage{fonts}{10}{file di font sconosciuto --}
-\setinterfacemessage{databases}{1}{--}
-\setinterfacemessage{databases}{3}{file globale --}
-\setinterfacemessage{databases}{2}{file locale --}
-\setinterfacemessage{databases}{4}{file sconosciuto --}
-\setinterfacemessage{databases}{title}{database}
-\setinterfacemessage{publications}{1}{file -- not found, unknown style ignored}
-\setinterfacemessage{publications}{3}{wrote a new auxiliary file \jobname.aux}
-\setinterfacemessage{publications}{title}{publications}
-\setinterfacemessage{publications}{2}{file -- not found, waiting for bibtex}
-\setinterfacemessage{publications}{4}{loading database from --}
-\setinterfacemessage{publications}{5}{warning: cite argument -- on line \the\inputlineno}
-\setinterfacemessage{publications}{6}{loading formatting style from --}
-\setinterfacemessage{javascript}{1}{caricamento dello script set --}
-\setinterfacemessage{javascript}{title}{javascript}
-\setinterfacemessage{javascript}{2}{preambolo sconosciuto --}
-\setinterfacemessage{check}{1}{'=' mancante o non raggruppato dopo '--' alla riga --}
-\setinterfacemessage{check}{3}{-- -- sostituisce una macro, usare le MAIUSCOLE!}
-\setinterfacemessage{check}{2}{-- argomento/i attesi alla riga --}
-\setinterfacemessage{check}{title}{controllo}
-\setinterfacemessage{metapost}{1}{caricamento della libreria metapost --}
-\setinterfacemessage{metapost}{title}{metapost}
-\setinterfacemessage{figures}{1}{figura -- non trovata}
-\setinterfacemessage{figures}{3}{dimensions of -- are determined externally}
-\setinterfacemessage{figures}{2}{la figura -- non è preimpostata}
-\setinterfacemessage{figures}{5}{dimensions of -- are unknown}
-\setinterfacemessage{figures}{4}{dimensioni di -- caricate dal file di immagini stesso}
-\setinterfacemessage{figures}{6}{dimensioni di -- calcolate da rlxtools}
-\setinterfacemessage{figures}{8}{oggetto-figura -- riutilizzato}
-\setinterfacemessage{figures}{title}{figure}
-\setinterfacemessage{colors}{1}{sistema -- attivato globalmente}
-\setinterfacemessage{colors}{3}{-- non definito --}
-\setinterfacemessage{colors}{2}{sistema -- attivato localmente}
-\setinterfacemessage{colors}{5}{sistema -- sconosciuto}
-\setinterfacemessage{colors}{4}{sistema -- caricato}
-\setinterfacemessage{colors}{7}{tavolozza -- non disponibile}
-\setinterfacemessage{colors}{6}{tavolozza -- resa disponibile}
-\setinterfacemessage{colors}{9}{spazio dei colori -- non supportato}
-\setinterfacemessage{colors}{8}{specifica -- del colore -- convertita in nero}
-\setinterfacemessage{colors}{title}{colore}
-\setinterfacemessage{colors}{12}{-- is registered}
-\setinterfacemessage{colors}{11}{il colore ø convertito in grigio}
-\setinterfacemessage{colors}{10}{spazio dei colori -- supportato}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-mnl.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-mnl.mkii
deleted file mode 100644
index fb527d4adeb..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-mnl.mkii
+++ /dev/null
@@ -1,210 +0,0 @@
-\setinterfacemessage{references}{1}{onbekende verwijzing --}
-\setinterfacemessage{references}{30}{onbekend object --}
-\setinterfacemessage{references}{3}{type verwijzing -- onbekend}
-\setinterfacemessage{references}{2}{dubbele verwijzing -- op pagina --}
-\setinterfacemessage{references}{5}{number of unknown references: --}
-\setinterfacemessage{references}{4}{verboden verwijzing --}
-\setinterfacemessage{references}{6}{number of illegal references: --}
-\setinterfacemessage{references}{25}{references from document '--' are not imported (export again)}
-\setinterfacemessage{references}{24}{references from document '--' are not exported}
-\setinterfacemessage{references}{title}{verwijzingen}
-\setinterfacemessage{references}{26}{references from document '--' are imported}
-\setinterfacemessage{references}{31}{dubbel object --}
-\setinterfacemessage{references}{21}{document -- geladen}
-\setinterfacemessage{references}{22}{document -- is niet interactief}
-\setinterfacemessage{references}{23}{onduidelijke verwijzing -- (prefix=--)}
-\setinterfacemessage{documents}{1}{sheet --}
-\setinterfacemessage{documents}{title}{sheets}
-\setinterfacemessage{documents}{2}{nummer --}
-\setinterfacemessage{handlings}{1}{font afhandeling --}
-\setinterfacemessage{handlings}{3}{onbekende font afhandeling --}
-\setinterfacemessage{handlings}{2}{font afhandeling -- wordt geladen}
-\setinterfacemessage{handlings}{title}{handling}
-\setinterfacemessage{systems}{title}{systeem}
-\setinterfacemessage{systems}{41}{externe file -- in groep -- bestaat niet}
-\setinterfacemessage{systems}{9}{-- niet gevonden/geplaatst}
-\setinterfacemessage{systems}{91}{papierlade --}
-\setinterfacemessage{systems}{8}{nieuwe versie hulpfile, tweede run nodig}
-\setinterfacemessage{systems}{21}{de hulpfile is niet geladen}
-\setinterfacemessage{systems}{20}{betekenissen (sorteren) van -- geladen}
-\setinterfacemessage{systems}{5}{module -- geladen}
-\setinterfacemessage{systems}{4}{commando -- is al gedefinieerd}
-\setinterfacemessage{systems}{27}{Versie}
-\setinterfacemessage{systems}{26}{Registers}
-\setinterfacemessage{systems}{25}{Verwijzingen}
-\setinterfacemessage{systems}{24}{Plaatsblokken}
-\setinterfacemessage{systems}{1}{laden hulpfile uitgesteld (typemode)}
-\setinterfacemessage{systems}{23}{-- gearrangeerd op --}
-\setinterfacemessage{systems}{22}{gebruik een goede hulpfile}
-\setinterfacemessage{systems}{2}{-- geladen}
-\setinterfacemessage{systems}{19}{betekenissen (synoniemen) van -- geladen}
-\setinterfacemessage{systems}{18}{synoniem -- -- bestaat niet}
-\setinterfacemessage{systems}{7}{module -- reeds geladen}
-\setinterfacemessage{systems}{6}{geen module -- gevonden}
-\setinterfacemessage{systems}{14}{geforceerde paginaovergang in lijst voor --}
-\setinterfacemessage{systems}{15}{wegschrijven buffer --}
-\setinterfacemessage{systems}{16}{inlezen buffer --}
-\setinterfacemessage{systems}{17}{verbatim inlezen buffer --}
-\setinterfacemessage{systems}{13}{markering -- gedefinieerd --}
-\setinterfacemessage{systems}{12}{de hulpfile is niet gesorteerd, gebruik texutil}
-\setinterfacemessage{systems}{11}{aanmaken basale hulpfile}
-\setinterfacemessage{systems}{10}{gebruik geen em in --}
-\setinterfacemessage{floatblocks}{1}{-- hernummerd / -- => --}
-\setinterfacemessage{floatblocks}{3}{-- verplaatst}
-\setinterfacemessage{floatblocks}{2}{-- bewaard}
-\setinterfacemessage{floatblocks}{5}{volgorde aangepast}
-\setinterfacemessage{floatblocks}{4}{-- geplaatst}
-\setinterfacemessage{floatblocks}{7}{maximaal -- onder}
-\setinterfacemessage{floatblocks}{6}{maximaal -- boven}
-\setinterfacemessage{floatblocks}{9}{volgorde verstoord}
-\setinterfacemessage{floatblocks}{8}{minder dan -- regels}
-\setinterfacemessage{floatblocks}{title}{plaatsblokken}
-\setinterfacemessage{floatblocks}{13}{er is niets te splitsen}
-\setinterfacemessage{floatblocks}{12}{niet gedefinieerd}
-\setinterfacemessage{floatblocks}{11}{geen blok opgegeven}
-\setinterfacemessage{floatblocks}{10}{-- begrensd}
-\setinterfacemessage{interactions}{1}{aspect ratio -- x -- (b x h)}
-\setinterfacemessage{interactions}{3}{niet actief}
-\setinterfacemessage{interactions}{2}{actief}
-\setinterfacemessage{interactions}{5}{onbekend attachment --}
-\setinterfacemessage{interactions}{4}{geen paginasynchronisatie (--) in hmode}
-\setinterfacemessage{interactions}{6}{attachment file -- bestaat niet}
-\setinterfacemessage{interactions}{title}{interactie}
-\setinterfacemessage{interactions}{21}{-- code tussengevoegd}
-\setinterfacemessage{regimes}{1}{regime --}
-\setinterfacemessage{regimes}{3}{onbekend regime --}
-\setinterfacemessage{regimes}{2}{regime -- wordt geladen}
-\setinterfacemessage{regimes}{title}{regime}
-\setinterfacemessage{structures}{1}{begin van sectieblok --}
-\setinterfacemessage{structures}{title}{structuur}
-\setinterfacemessage{structures}{2}{eind van sectieblok --}
-\setinterfacemessage{linguals}{1}{afbreekpatronen -- voor -- geladen (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{3}{afbreekdefinities -- voor -- geladen (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{2}{geen afbreekpatronen -- voor -- (n=--,e=--,m=--) (--,--)}
-\setinterfacemessage{linguals}{5}{afbreekpatronen voor -- niet geladen}
-\setinterfacemessage{linguals}{4}{geen afbreekdefinities -- voor -- (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{7}{taal specifieke opties [--] introduceren een skip van --}
-\setinterfacemessage{linguals}{6}{taal -- is niet gedefinieerd}
-\setinterfacemessage{linguals}{9}{taal -- is actief}
-\setinterfacemessage{linguals}{8}{taal specifieke opties [--] naadloos toegevoegd}
-\setinterfacemessage{linguals}{title}{taal}
-\setinterfacemessage{linguals}{10}{patronen --geladen}
-\setinterfacemessage{verbatims}{1}{file -- bestaat niet}
-\setinterfacemessage{verbatims}{title}{typen}
-\setinterfacemessage{filters}{1}{filter -- wordt geladen}
-\setinterfacemessage{filters}{title}{filter}
-\setinterfacemessage{filters}{2}{onbekend filter --}
-\setinterfacemessage{textblocks}{1}{nieuwe versie, tweede run nodig}
-\setinterfacemessage{textblocks}{3}{inlezen blokken uit --}
-\setinterfacemessage{textblocks}{2}{wegschrijven blokken naar --}
-\setinterfacemessage{textblocks}{5}{-- niet verborgen}
-\setinterfacemessage{textblocks}{4}{er is een tweede run nodig}
-\setinterfacemessage{textblocks}{7}{-- verborgen}
-\setinterfacemessage{textblocks}{6}{-- verborgen en verwerkt}
-\setinterfacemessage{textblocks}{9}{-- niet gehandhaafd}
-\setinterfacemessage{textblocks}{8}{-- gehandhaafd}
-\setinterfacemessage{textblocks}{title}{tekstblokken}
-\setinterfacemessage{textblocks}{12}{-- overgeslagen}
-\setinterfacemessage{textblocks}{11}{-- geladen en geplaatst}
-\setinterfacemessage{textblocks}{10}{-- geladen en verwerkt}
-\setinterfacemessage{encodings}{1}{codering --}
-\setinterfacemessage{encodings}{3}{onbekende codering --}
-\setinterfacemessage{encodings}{2}{codering -- wordt geladen}
-\setinterfacemessage{encodings}{title}{encoding}
-\setinterfacemessage{columns}{1}{maximaal -- kolommen}
-\setinterfacemessage{columns}{3}{probleempje, probeer [balanceren=nee]}
-\setinterfacemessage{columns}{2}{gebruik eventueel \string\filbreak}
-\setinterfacemessage{columns}{5}{plaatsblok onder nog niet mogelijk}
-\setinterfacemessage{columns}{4}{plaatsblok boven nog niet mogelijk}
-\setinterfacemessage{columns}{7}{balanceren afgebroken na 100 stappen}
-\setinterfacemessage{columns}{6}{-- plaatsblok(en) opgeschort}
-\setinterfacemessage{columns}{9}{uitlijnen controleren!}
-\setinterfacemessage{columns}{8}{gebalanceerd in -- stap(pen)}
-\setinterfacemessage{columns}{title}{kolommen}
-\setinterfacemessage{columns}{13}{breed figuur geplaatst boven kolommen}
-\setinterfacemessage{columns}{12}{plaatsblok verplaatst naar volgende kolom / --}
-\setinterfacemessage{columns}{11}{plaatsblok te breed voor kolom}
-\setinterfacemessage{columns}{10}{(minder dan) 1 regel over}
-\setinterfacemessage{symbols}{1}{symboolset -- wordt geladen}
-\setinterfacemessage{symbols}{title}{symbolen}
-\setinterfacemessage{files}{1}{file synoniem -- is al in gebruik voor --}
-\setinterfacemessage{files}{title}{files}
-\setinterfacemessage{versions}{1}{er mankeert een @+}
-\setinterfacemessage{versions}{3}{geselecteerde pagina's: --}
-\setinterfacemessage{versions}{2}{markeren pagina's}
-\setinterfacemessage{versions}{title}{versie}
-\setinterfacemessage{specials}{1}{-- geladen}
-\setinterfacemessage{specials}{3}{-- gereset}
-\setinterfacemessage{specials}{2}{verdere nesting is niet toegestaan --}
-\setinterfacemessage{specials}{5}{definitiefile -- wordt geladen}
-\setinterfacemessage{specials}{4}{commando -- bestaat niet}
-\setinterfacemessage{specials}{7}{onbekende driver --}
-\setinterfacemessage{specials}{6}{nesting is niet toegestaan}
-\setinterfacemessage{specials}{title}{specials}
-\setinterfacemessage{layouts}{1}{teksthoogte aangepast met -- op pagina --}
-\setinterfacemessage{layouts}{3}{-- maal tekst plaatsen uitstellen}
-\setinterfacemessage{layouts}{2}{-- maal uitgestelde tekst tussengevoegd}
-\setinterfacemessage{layouts}{5}{margeblokken inactief}
-\setinterfacemessage{layouts}{4}{margeblokken actief}
-\setinterfacemessage{layouts}{7}{beeldmerken berekenen}
-\setinterfacemessage{layouts}{6}{subpagina reeks -- verwerkt (aantal --)}
-\setinterfacemessage{layouts}{9}{momenteel maximaal -- niveaus in opsommingen}
-\setinterfacemessage{layouts}{8}{achtergronden berekenen}
-\setinterfacemessage{layouts}{title}{layout}
-\setinterfacemessage{layouts}{11}{interlinie -- niet toegestaan in gridmode}
-\setinterfacemessage{layouts}{10}{-- en -- tellen niet op tot 1.0}
-\setinterfacemessage{fonts}{1}{codering --}
-\setinterfacemessage{fonts}{3}{onbekende variant --}
-\setinterfacemessage{fonts}{2}{variant -- wordt geladen}
-\setinterfacemessage{fonts}{5}{stijl -- is niet gedefinieerd}
-\setinterfacemessage{fonts}{4}{korps -- is niet gedefinieerd}
-\setinterfacemessage{fonts}{7}{onbekend formaat --}
-\setinterfacemessage{fonts}{6}{-- wordt geladen}
-\setinterfacemessage{fonts}{14}{korps -- is gedefinieerd (kan beter globaal plaatsvinden)}
-\setinterfacemessage{fonts}{8}{stijl -- gedefinieerd}
-\setinterfacemessage{fonts}{title}{korps}
-\setinterfacemessage{fonts}{10}{onbekende font file --}
-\setinterfacemessage{databases}{1}{--}
-\setinterfacemessage{databases}{3}{globaal bestand --}
-\setinterfacemessage{databases}{2}{lokaal bestand --}
-\setinterfacemessage{databases}{4}{onbekend bestand --}
-\setinterfacemessage{databases}{title}{database}
-\setinterfacemessage{publications}{1}{file -- not found, unknown style ignored}
-\setinterfacemessage{publications}{3}{wrote a new auxiliary file \jobname.aux}
-\setinterfacemessage{publications}{title}{publications}
-\setinterfacemessage{publications}{2}{file -- not found, waiting for bibtex}
-\setinterfacemessage{publications}{4}{loading database from --}
-\setinterfacemessage{publications}{5}{warning: cite argument -- on line \the\inputlineno}
-\setinterfacemessage{publications}{6}{loading formatting style from --}
-\setinterfacemessage{javascript}{1}{script set -- wordt geladen}
-\setinterfacemessage{javascript}{title}{javascript}
-\setinterfacemessage{javascript}{2}{onbekende preamble --}
-\setinterfacemessage{check}{1}{'=' ontbreekt of zonder {} na '--' in regel --}
-\setinterfacemessage{check}{3}{-- -- vervangt een macro, gebruik HOOFDLETTERS!}
-\setinterfacemessage{check}{2}{-- argument(en) verwacht in regel --}
-\setinterfacemessage{check}{title}{controle}
-\setinterfacemessage{metapost}{1}{metapost bibliotheek -- wordt geladen}
-\setinterfacemessage{metapost}{title}{metapost}
-\setinterfacemessage{figures}{1}{figuur -- is niet te vinden}
-\setinterfacemessage{figures}{3}{maten van -- worden extern vastgesteld}
-\setinterfacemessage{figures}{2}{figuur -- wordt niet preset}
-\setinterfacemessage{figures}{5}{maten van -- zijn onbekend}
-\setinterfacemessage{figures}{4}{maten van -- geladen uit figuurfile zelf}
-\setinterfacemessage{figures}{6}{maten van -- berekend door rlxtools}
-\setinterfacemessage{figures}{8}{figuurobject -- wordt opnieuw gebruikt}
-\setinterfacemessage{figures}{title}{figuren}
-\setinterfacemessage{colors}{1}{systeem -- is globaal actief}
-\setinterfacemessage{colors}{3}{-- is niet gedefinieerd --}
-\setinterfacemessage{colors}{2}{systeem -- is lokaal actief}
-\setinterfacemessage{colors}{5}{onbekend systeem --}
-\setinterfacemessage{colors}{4}{systeem -- wordt geladen}
-\setinterfacemessage{colors}{7}{palet -- is niet beschikbaar}
-\setinterfacemessage{colors}{6}{palet -- is beschikbaar}
-\setinterfacemessage{colors}{9}{-- kleurruimte wordt niet ondersteund}
-\setinterfacemessage{colors}{8}{specificatie -- bij -- wordt zwart}
-\setinterfacemessage{colors}{title}{kleur}
-\setinterfacemessage{colors}{12}{-- is geregistreerd}
-\setinterfacemessage{colors}{11}{kleur wordt vertaald in grijs}
-\setinterfacemessage{colors}{10}{-- kleurruimte wordt ondersteund}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-mno.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-mno.mkii
deleted file mode 100644
index bbbc3a6585c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-mno.mkii
+++ /dev/null
@@ -1,210 +0,0 @@
-\setinterfacemessage{references}{1}{ukjent referanse --}
-\setinterfacemessage{references}{30}{ukjent objekt --}
-\setinterfacemessage{references}{3}{ukjent referansetype --}
-\setinterfacemessage{references}{2}{duplikat referanse -- pø side --}
-\setinterfacemessage{references}{5}{number of unknown references: --}
-\setinterfacemessage{references}{4}{ulovlig referanse --}
-\setinterfacemessage{references}{6}{number of illegal references: --}
-\setinterfacemessage{references}{25}{references from document '--' are not imported (export again)}
-\setinterfacemessage{references}{24}{references from document '--' are not exported}
-\setinterfacemessage{references}{title}{referanser}
-\setinterfacemessage{references}{26}{references from document '--' are imported}
-\setinterfacemessage{references}{31}{duplikat objekt --}
-\setinterfacemessage{references}{21}{dokument -- er lest inn}
-\setinterfacemessage{references}{22}{dokument -- er ikke interaktivt}
-\setinterfacemessage{references}{23}{obskur referanse -- (Prefix=--)}
-\setinterfacemessage{documents}{1}{sheet --}
-\setinterfacemessage{documents}{title}{sheets}
-\setinterfacemessage{documents}{2}{number --}
-\setinterfacemessage{handlings}{1}{font handling --}
-\setinterfacemessage{handlings}{3}{unknown font handling --}
-\setinterfacemessage{handlings}{2}{font handling -- is loaded}
-\setinterfacemessage{handlings}{title}{handling}
-\setinterfacemessage{systems}{title}{system}
-\setinterfacemessage{systems}{41}{ekstern fil -- i gruppe -- eksisterer ikke}
-\setinterfacemessage{systems}{9}{-- ikke funnet/behandlet}
-\setinterfacemessage{systems}{91}{papertray --}
-\setinterfacemessage{systems}{8}{ny versjon av hjelpefil, andre gjennomkjøring nødvendig}
-\setinterfacemessage{systems}{21}{hjelpefila er ikke lest inn}
-\setinterfacemessage{systems}{20}{betydning (sorterer) av -- er lest inn}
-\setinterfacemessage{systems}{5}{makroene i modul -- er lest inn}
-\setinterfacemessage{systems}{4}{kommando -- er allerede definert}
-\setinterfacemessage{systems}{27}{Versjon}
-\setinterfacemessage{systems}{26}{Registere}
-\setinterfacemessage{systems}{25}{Referanser}
-\setinterfacemessage{systems}{24}{Flytblokker}
-\setinterfacemessage{systems}{1}{innlesning av hjelpefila utsatt (typemode)}
-\setinterfacemessage{systems}{23}{-- arrangert på --}
-\setinterfacemessage{systems}{22}{bruk en gyldig hjelpefil}
-\setinterfacemessage{systems}{2}{-- er lest inn}
-\setinterfacemessage{systems}{19}{betydning (synonymer) av -- er lest inn}
-\setinterfacemessage{systems}{18}{synonym -- -- eksisterer ikke}
-\setinterfacemessage{systems}{7}{makroene i modul -- er allerede lest inn}
-\setinterfacemessage{systems}{6}{ingen makroer funnet i modul ---}
-\setinterfacemessage{systems}{14}{tvunget sideskift i liste ved --}
-\setinterfacemessage{systems}{15}{lagrer Buffer --}
-\setinterfacemessage{systems}{16}{tegnsetter buffer --}
-\setinterfacemessage{systems}{17}{tegnsetter verbatim-buffer --}
-\setinterfacemessage{systems}{13}{markering -- definert --}
-\setinterfacemessage{systems}{12}{hjelpefila er ikke sortert, bruk texutil}
-\setinterfacemessage{systems}{11}{lager enkel hjelpefil}
-\setinterfacemessage{systems}{10}{ikke bruk em i --}
-\setinterfacemessage{floatblocks}{1}{-- renummerert / -- => --}
-\setinterfacemessage{floatblocks}{3}{-- flyttet}
-\setinterfacemessage{floatblocks}{2}{-- lagret}
-\setinterfacemessage{floatblocks}{5}{rekkefølge tilpasset}
-\setinterfacemessage{floatblocks}{4}{-- plassert}
-\setinterfacemessage{floatblocks}{7}{maksimalt -- flytblokker nederst}
-\setinterfacemessage{floatblocks}{6}{maksimalt -- flytblokker øverst}
-\setinterfacemessage{floatblocks}{9}{rekkefølge endret}
-\setinterfacemessage{floatblocks}{8}{mindre enn -- linjer}
-\setinterfacemessage{floatblocks}{title}{flytblokker}
-\setinterfacemessage{floatblocks}{13}{there is nothing to split}
-\setinterfacemessage{floatblocks}{12}{udefinert}
-\setinterfacemessage{floatblocks}{11}{ingen blokk oppgitt}
-\setinterfacemessage{floatblocks}{10}{-- begrenset}
-\setinterfacemessage{interactions}{1}{forholdstall -- x -- (b x h)}
-\setinterfacemessage{interactions}{3}{inaktiv}
-\setinterfacemessage{interactions}{2}{aktiv}
-\setinterfacemessage{interactions}{5}{unknown attachment --}
-\setinterfacemessage{interactions}{4}{ingen sidesynkronisering (--) i hmode}
-\setinterfacemessage{interactions}{6}{attachment file -- does not exist}
-\setinterfacemessage{interactions}{title}{interaksjon}
-\setinterfacemessage{interactions}{21}{-- kode satt inn / tilføyd}
-\setinterfacemessage{regimes}{1}{koding --}
-\setinterfacemessage{regimes}{3}{ukjent koding --}
-\setinterfacemessage{regimes}{2}{koding -- er lest inn}
-\setinterfacemessage{regimes}{title}{koding}
-\setinterfacemessage{structures}{1}{starten av blokk -- (seksjon)}
-\setinterfacemessage{structures}{title}{struktur}
-\setinterfacemessage{structures}{2}{slutten av blokk -- (seksjon)}
-\setinterfacemessage{linguals}{1}{orddelingsmønster -- for -- er lest inn (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{3}{orddelingsdefinisjon -- for -- er lest inn (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{2}{ingen orddelingsmønster -- for -- (n=--,e=--,m=--) (--,--)}
-\setinterfacemessage{linguals}{5}{orddelingsmønster for -- er ikke lest inn}
-\setinterfacemessage{linguals}{4}{ingen orddelingsdefinisjon -- for -- (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{7}{spràk spesifikk opsjon [--] introduserer et -- hopp}
-\setinterfacemessage{linguals}{6}{spràk -- er udefinert}
-\setinterfacemessage{linguals}{9}{spràk -- er aktivt}
-\setinterfacemessage{linguals}{8}{spràk spesifikk opsjon [--] problemfritt tilføyd}
-\setinterfacemessage{linguals}{title}{sprøk}
-\setinterfacemessage{linguals}{10}{orddelingsmønster -- er lest inn}
-\setinterfacemessage{verbatims}{1}{fil -- eksisterer ikke}
-\setinterfacemessage{verbatims}{title}{verbatim}
-\setinterfacemessage{filters}{1}{filter -- is loaded}
-\setinterfacemessage{filters}{title}{filter}
-\setinterfacemessage{filters}{2}{unknown filter --}
-\setinterfacemessage{textblocks}{1}{ny versjon, andre gjennomkjøring nødvendig}
-\setinterfacemessage{textblocks}{3}{leser blokker fra --}
-\setinterfacemessage{textblocks}{2}{skriver blokker til --}
-\setinterfacemessage{textblocks}{5}{-- ikke skjult}
-\setinterfacemessage{textblocks}{4}{andre gjennomkjøring nødvendig}
-\setinterfacemessage{textblocks}{7}{-- skjult}
-\setinterfacemessage{textblocks}{6}{-- skjult og behandlet}
-\setinterfacemessage{textblocks}{9}{-- ikke tegnsatt}
-\setinterfacemessage{textblocks}{8}{-- tegnsatt}
-\setinterfacemessage{textblocks}{title}{tekstblokker}
-\setinterfacemessage{textblocks}{12}{-- utelatt}
-\setinterfacemessage{textblocks}{11}{-- lest inn og tegnsatt}
-\setinterfacemessage{textblocks}{10}{-- lest inn og behandlet}
-\setinterfacemessage{encodings}{1}{koding --}
-\setinterfacemessage{encodings}{3}{ukjent koding --}
-\setinterfacemessage{encodings}{2}{koding -- er lest inn}
-\setinterfacemessage{encodings}{title}{koding}
-\setinterfacemessage{columns}{1}{maksimalt -- kolonner}
-\setinterfacemessage{columns}{3}{problemer, slår av balansering}
-\setinterfacemessage{columns}{2}{bruk \string\filbreak\space som et alternativ}
-\setinterfacemessage{columns}{5}{flytblokker nedert er ikke støttet enda}
-\setinterfacemessage{columns}{4}{flytblokker øverst er ikke støttet enda}
-\setinterfacemessage{columns}{7}{balansering avbrutt etter 100 iterasjoner}
-\setinterfacemessage{columns}{6}{-- flytblokk forskjøvet}
-\setinterfacemessage{columns}{9}{kontroller tekstlayout!}
-\setinterfacemessage{columns}{8}{balansert etter -- iterasjoner}
-\setinterfacemessage{columns}{title}{kolonner}
-\setinterfacemessage{columns}{13}{bred flytblokk forksjøvet til toppen av kolonnene}
-\setinterfacemessage{columns}{12}{flytblokk forskjøvet til neste kolonne / --}
-\setinterfacemessage{columns}{11}{flytblokk for bredt for kolonna}
-\setinterfacemessage{columns}{10}{(mindre enn) 1 linje igjen}
-\setinterfacemessage{symbols}{1}{leser inn symbolsett --}
-\setinterfacemessage{symbols}{title}{symboler}
-\setinterfacemessage{files}{1}{filesynonym -- er allerede brukt for --}
-\setinterfacemessage{files}{title}{filer}
-\setinterfacemessage{versions}{1}{manglende @+}
-\setinterfacemessage{versions}{3}{valgte sider: --}
-\setinterfacemessage{versions}{2}{markerer sider}
-\setinterfacemessage{versions}{title}{versjon}
-\setinterfacemessage{specials}{1}{-- er lest inn}
-\setinterfacemessage{specials}{3}{-- er tilbakestilt}
-\setinterfacemessage{specials}{2}{dypere 'nesting' er ikke tillatt --}
-\setinterfacemessage{specials}{5}{leser inn definisjonsfil for --}
-\setinterfacemessage{specials}{4}{kommando -- eksisterer ikke}
-\setinterfacemessage{specials}{7}{ukjent driver --}
-\setinterfacemessage{specials}{6}{'nesting' er ikke tillatt}
-\setinterfacemessage{specials}{title}{specials}
-\setinterfacemessage{layouts}{1}{teksthøyde tilpasset med -- på side --}
-\setinterfacemessage{layouts}{3}{-- ganger tekst forskjøvet}
-\setinterfacemessage{layouts}{2}{-- ganger forskjøvet tekst plassert}
-\setinterfacemessage{layouts}{5}{margblokker inaktive}
-\setinterfacemessage{layouts}{4}{margblokker aktive}
-\setinterfacemessage{layouts}{7}{beregner plass for logo}
-\setinterfacemessage{layouts}{6}{delside sett -- behandlet (størrelse --)}
-\setinterfacemessage{layouts}{9}{for øyeblikket maksimalt -- nivåer i opplisting}
-\setinterfacemessage{layouts}{8}{beregner bakgrunn}
-\setinterfacemessage{layouts}{title}{layout}
-\setinterfacemessage{layouts}{11}{mellomrom -- ikke tillatt i gridmodus}
-\setinterfacemessage{layouts}{10}{-- og -- er ikke 1.0 til sammen}
-\setinterfacemessage{fonts}{1}{koding --}
-\setinterfacemessage{fonts}{3}{ukjent variant --}
-\setinterfacemessage{fonts}{2}{variant -- er lest inn}
-\setinterfacemessage{fonts}{5}{stil -- er ikke definert}
-\setinterfacemessage{fonts}{4}{hovedfont -- er ikke definert}
-\setinterfacemessage{fonts}{7}{ukjent format --}
-\setinterfacemessage{fonts}{6}{-- er lest inn}
-\setinterfacemessage{fonts}{14}{bodyfont -- is defined (can better be done global)}
-\setinterfacemessage{fonts}{8}{stil -- definert}
-\setinterfacemessage{fonts}{title}{hovedfont}
-\setinterfacemessage{fonts}{10}{ukjent fontfil --}
-\setinterfacemessage{databases}{1}{--}
-\setinterfacemessage{databases}{3}{global fil --}
-\setinterfacemessage{databases}{2}{lokal fil --}
-\setinterfacemessage{databases}{4}{ukjent fil --}
-\setinterfacemessage{databases}{title}{databaser}
-\setinterfacemessage{publications}{1}{file -- not found, unknown style ignored}
-\setinterfacemessage{publications}{3}{wrote a new auxiliary file \jobname.aux}
-\setinterfacemessage{publications}{title}{publications}
-\setinterfacemessage{publications}{2}{file -- not found, waiting for bibtex}
-\setinterfacemessage{publications}{4}{loading database from --}
-\setinterfacemessage{publications}{5}{warning: cite argument -- on line \the\inputlineno}
-\setinterfacemessage{publications}{6}{loading formatting style from --}
-\setinterfacemessage{javascript}{1}{leser inn scriptsett --}
-\setinterfacemessage{javascript}{title}{javascript}
-\setinterfacemessage{javascript}{2}{ukjent 'preamble' --}
-\setinterfacemessage{check}{1}{manglende '=' etter '--' i linje --}
-\setinterfacemessage{check}{3}{-- -- overskygger en makro, bruk STORE BOKSTAVER!}
-\setinterfacemessage{check}{2}{-- argument forventet i linje --}
-\setinterfacemessage{check}{title}{kontroll}
-\setinterfacemessage{metapost}{1}{metapost bibliotek -- blir lest inn}
-\setinterfacemessage{metapost}{title}{metapost}
-\setinterfacemessage{figures}{1}{figure -- can not be found}
-\setinterfacemessage{figures}{3}{dimensions of -- are determined externally}
-\setinterfacemessage{figures}{2}{figure -- is not preset}
-\setinterfacemessage{figures}{5}{dimensions of -- are unknown}
-\setinterfacemessage{figures}{4}{dimensions of -- loaded from figurefile itself}
-\setinterfacemessage{figures}{6}{dimensions of -- calculated by rlxtools}
-\setinterfacemessage{figures}{8}{figureobject -- is reused}
-\setinterfacemessage{figures}{title}{figures}
-\setinterfacemessage{colors}{1}{system -- er aktivert globalt}
-\setinterfacemessage{colors}{3}{-- er udefinert --}
-\setinterfacemessage{colors}{2}{system -- er aktivert lokalt}
-\setinterfacemessage{colors}{5}{ukjent system --}
-\setinterfacemessage{colors}{4}{system -- er lest inn}
-\setinterfacemessage{colors}{7}{palett -- er ikke tilgjengelig}
-\setinterfacemessage{colors}{6}{palett -- er tilgjengelig}
-\setinterfacemessage{colors}{9}{-- fargerom er ikke støttet}
-\setinterfacemessage{colors}{8}{spesifikasjon -- for farge -- gir kun svart}
-\setinterfacemessage{colors}{title}{farge}
-\setinterfacemessage{colors}{12}{-- is registered}
-\setinterfacemessage{colors}{11}{fargen vil bli vist som grø}
-\setinterfacemessage{colors}{10}{-- fargerom er støttet}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-mpe.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-mpe.mkii
deleted file mode 100644
index a8d42935602..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-mpe.mkii
+++ /dev/null
@@ -1,210 +0,0 @@
-\setinterfacemessage{references}{1}{unknown reference --}
-\setinterfacemessage{references}{30}{unknown object --}
-\setinterfacemessage{references}{3}{unknown reference type --}
-\setinterfacemessage{references}{2}{duplicate reference -- on page --}
-\setinterfacemessage{references}{5}{number of unknown references: --}
-\setinterfacemessage{references}{4}{illegal reference --}
-\setinterfacemessage{references}{6}{number of illegal references: --}
-\setinterfacemessage{references}{25}{references from document '--' are not imported (export again)}
-\setinterfacemessage{references}{24}{references from document '--' are not exported}
-\setinterfacemessage{references}{title}{references}
-\setinterfacemessage{references}{26}{references from document '--' are imported}
-\setinterfacemessage{references}{31}{duplicate object --}
-\setinterfacemessage{references}{21}{document -- loaded}
-\setinterfacemessage{references}{22}{document -- is not interactive}
-\setinterfacemessage{references}{23}{obscure reference -- (prefix=--)}
-\setinterfacemessage{documents}{1}{sheet --}
-\setinterfacemessage{documents}{title}{sheets}
-\setinterfacemessage{documents}{2}{number --}
-\setinterfacemessage{handlings}{1}{font handling --}
-\setinterfacemessage{handlings}{3}{unknown font handling --}
-\setinterfacemessage{handlings}{2}{font handling -- is loaded}
-\setinterfacemessage{handlings}{title}{handling}
-\setinterfacemessage{systems}{title}{system}
-\setinterfacemessage{systems}{41}{external file -- in group -- does not exist}
-\setinterfacemessage{systems}{9}{-- not found/processed}
-\setinterfacemessage{systems}{91}{papertray --}
-\setinterfacemessage{systems}{8}{new version of utility file, second pass needed}
-\setinterfacemessage{systems}{21}{no utility data is loaded}
-\setinterfacemessage{systems}{20}{meaning (sorts) of -- loaded}
-\setinterfacemessage{systems}{5}{module -- loaded}
-\setinterfacemessage{systems}{4}{command -- is already defined}
-\setinterfacemessage{systems}{27}{Version}
-\setinterfacemessage{systems}{26}{Registers}
-\setinterfacemessage{systems}{25}{References}
-\setinterfacemessage{systems}{24}{Floatblocks}
-\setinterfacemessage{systems}{1}{loading utility-file postponed (typemode)}
-\setinterfacemessage{systems}{23}{-- arranged at --}
-\setinterfacemessage{systems}{22}{use a valid utilityfile}
-\setinterfacemessage{systems}{2}{-- loaded}
-\setinterfacemessage{systems}{19}{meaning (synonyms) of -- loaded}
-\setinterfacemessage{systems}{18}{synonym -- -- does not exist}
-\setinterfacemessage{systems}{7}{module -- already loaded}
-\setinterfacemessage{systems}{6}{module -- not found}
-\setinterfacemessage{systems}{14}{forced newpage in list at --}
-\setinterfacemessage{systems}{15}{saving buffer --}
-\setinterfacemessage{systems}{16}{typesetting buffer --}
-\setinterfacemessage{systems}{17}{typesetting verbatim buffer --}
-\setinterfacemessage{systems}{13}{mark -- defined --}
-\setinterfacemessage{systems}{12}{the utility-file is not sorted, use texutil}
-\setinterfacemessage{systems}{11}{building simple util}
-\setinterfacemessage{systems}{10}{don't use em in --}
-\setinterfacemessage{floatblocks}{1}{-- renumbered / -- => --}
-\setinterfacemessage{floatblocks}{3}{-- moved}
-\setinterfacemessage{floatblocks}{2}{-- saved}
-\setinterfacemessage{floatblocks}{5}{order adapted}
-\setinterfacemessage{floatblocks}{4}{-- placed}
-\setinterfacemessage{floatblocks}{7}{n of bottom floats limited to --}
-\setinterfacemessage{floatblocks}{6}{n of top floats limited to --}
-\setinterfacemessage{floatblocks}{9}{order disturbed}
-\setinterfacemessage{floatblocks}{8}{less than -- lines}
-\setinterfacemessage{floatblocks}{title}{floatblocks}
-\setinterfacemessage{floatblocks}{13}{there is nothing to split}
-\setinterfacemessage{floatblocks}{12}{undefined}
-\setinterfacemessage{floatblocks}{11}{no block given}
-\setinterfacemessage{floatblocks}{10}{-- limited}
-\setinterfacemessage{interactions}{1}{aspect ratio -- x -- (b x h)}
-\setinterfacemessage{interactions}{3}{inactive}
-\setinterfacemessage{interactions}{2}{active}
-\setinterfacemessage{interactions}{5}{unknown attachment --}
-\setinterfacemessage{interactions}{4}{no pagesynchronisation (--) in hmode}
-\setinterfacemessage{interactions}{6}{attachment file -- does not exist}
-\setinterfacemessage{interactions}{title}{interaction}
-\setinterfacemessage{interactions}{21}{-- code inserted}
-\setinterfacemessage{regimes}{1}{regime --}
-\setinterfacemessage{regimes}{3}{unknown regime --}
-\setinterfacemessage{regimes}{2}{regime -- is loaded}
-\setinterfacemessage{regimes}{title}{regime}
-\setinterfacemessage{structures}{1}{begin of sectionblock --}
-\setinterfacemessage{structures}{title}{structure}
-\setinterfacemessage{structures}{2}{end of sectionblock --}
-\setinterfacemessage{linguals}{1}{patterns -- for -- loaded (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{3}{hyphenations -- for -- loaded (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{2}{no patterns -- for -- (n=--,e=--,m=--) (--,--)}
-\setinterfacemessage{linguals}{5}{patterns for -- not loaded}
-\setinterfacemessage{linguals}{4}{no hyphenations -- for -- (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{7}{language specific options [--] introduce a -- skip}
-\setinterfacemessage{linguals}{6}{language -- is undefined}
-\setinterfacemessage{linguals}{9}{language -- is active}
-\setinterfacemessage{linguals}{8}{language specific options [--] seamless appended}
-\setinterfacemessage{linguals}{title}{language}
-\setinterfacemessage{linguals}{10}{patterns -- loaded}
-\setinterfacemessage{verbatims}{1}{file -- does not exist}
-\setinterfacemessage{verbatims}{title}{verbatim}
-\setinterfacemessage{filters}{1}{filter -- is loaded}
-\setinterfacemessage{filters}{title}{filter}
-\setinterfacemessage{filters}{2}{unknown filter --}
-\setinterfacemessage{textblocks}{1}{new version, second pass needed}
-\setinterfacemessage{textblocks}{3}{reading blocks from --}
-\setinterfacemessage{textblocks}{2}{writing blocks to --}
-\setinterfacemessage{textblocks}{5}{-- not hidden}
-\setinterfacemessage{textblocks}{4}{second pass needed}
-\setinterfacemessage{textblocks}{7}{-- hidden}
-\setinterfacemessage{textblocks}{6}{-- hidden and processed}
-\setinterfacemessage{textblocks}{9}{-- not typeset}
-\setinterfacemessage{textblocks}{8}{-- typeset}
-\setinterfacemessage{textblocks}{title}{textblocks}
-\setinterfacemessage{textblocks}{12}{-- skipped}
-\setinterfacemessage{textblocks}{11}{-- loaded and typeset}
-\setinterfacemessage{textblocks}{10}{-- loaded and processed}
-\setinterfacemessage{encodings}{1}{coding --}
-\setinterfacemessage{encodings}{3}{unknown coding --}
-\setinterfacemessage{encodings}{2}{coding -- is loaded}
-\setinterfacemessage{encodings}{title}{encoding}
-\setinterfacemessage{columns}{1}{only -- columns possible}
-\setinterfacemessage{columns}{3}{problems, disable balancing}
-\setinterfacemessage{columns}{2}{use \string\filbreak\space as alternative}
-\setinterfacemessage{columns}{5}{bottom float not yet supported}
-\setinterfacemessage{columns}{4}{top float not yet supported}
-\setinterfacemessage{columns}{7}{balancing aborted after 100 steps}
-\setinterfacemessage{columns}{6}{-- float(s) postponed}
-\setinterfacemessage{columns}{9}{check raggedness}
-\setinterfacemessage{columns}{8}{balanced in -- step(s)}
-\setinterfacemessage{columns}{title}{columns}
-\setinterfacemessage{columns}{13}{wide float moved to top of columns}
-\setinterfacemessage{columns}{12}{float moved to next column / --}
-\setinterfacemessage{columns}{11}{float too wide for column}
-\setinterfacemessage{columns}{10}{(less than) 1 line left}
-\setinterfacemessage{symbols}{1}{loading symbolset --}
-\setinterfacemessage{symbols}{title}{symbols}
-\setinterfacemessage{files}{1}{file synonym -- is already used for --}
-\setinterfacemessage{files}{title}{files}
-\setinterfacemessage{versions}{1}{missing @+}
-\setinterfacemessage{versions}{3}{selected pages: --}
-\setinterfacemessage{versions}{2}{marking pages}
-\setinterfacemessage{versions}{title}{version}
-\setinterfacemessage{specials}{1}{-- loaded}
-\setinterfacemessage{specials}{3}{-- is reset}
-\setinterfacemessage{specials}{2}{no deeper nesting is permitted --}
-\setinterfacemessage{specials}{5}{loading definition file --}
-\setinterfacemessage{specials}{4}{command -- does not exist}
-\setinterfacemessage{specials}{7}{unknown driver --}
-\setinterfacemessage{specials}{6}{nesting is not permitted}
-\setinterfacemessage{specials}{title}{specials}
-\setinterfacemessage{layouts}{1}{textheight adapted with -- at page --}
-\setinterfacemessage{layouts}{3}{-- times text postponed}
-\setinterfacemessage{layouts}{2}{-- times postponed text placed}
-\setinterfacemessage{layouts}{5}{marginblocks inactive}
-\setinterfacemessage{layouts}{4}{marginblocks active}
-\setinterfacemessage{layouts}{7}{calculating logospace}
-\setinterfacemessage{layouts}{6}{subpage set -- processed (size --)}
-\setinterfacemessage{layouts}{9}{currently no more than -- levels in itemizations}
-\setinterfacemessage{layouts}{8}{calculating backgrounds}
-\setinterfacemessage{layouts}{title}{layout}
-\setinterfacemessage{layouts}{11}{spacing -- not permitted in gridmode}
-\setinterfacemessage{layouts}{10}{-- and -- don't add up to 1.0}
-\setinterfacemessage{fonts}{1}{coding --}
-\setinterfacemessage{fonts}{3}{unknown variant --}
-\setinterfacemessage{fonts}{2}{variant -- is loaded}
-\setinterfacemessage{fonts}{5}{style -- is not defined}
-\setinterfacemessage{fonts}{4}{bodyfont -- is not defined}
-\setinterfacemessage{fonts}{7}{unknown format --}
-\setinterfacemessage{fonts}{6}{-- is loaded}
-\setinterfacemessage{fonts}{14}{bodyfont -- is defined (can better be done global)}
-\setinterfacemessage{fonts}{8}{style -- defined}
-\setinterfacemessage{fonts}{title}{bodyfont}
-\setinterfacemessage{fonts}{10}{unknown font file --}
-\setinterfacemessage{databases}{1}{--}
-\setinterfacemessage{databases}{3}{global file --}
-\setinterfacemessage{databases}{2}{local file --}
-\setinterfacemessage{databases}{4}{unknown file --}
-\setinterfacemessage{databases}{title}{databases}
-\setinterfacemessage{publications}{1}{file -- not found, unknown style ignored}
-\setinterfacemessage{publications}{3}{wrote a new auxiliary file \jobname.aux}
-\setinterfacemessage{publications}{title}{publications}
-\setinterfacemessage{publications}{2}{file -- not found, waiting for bibtex}
-\setinterfacemessage{publications}{4}{loading database from --}
-\setinterfacemessage{publications}{5}{warning: cite argument -- on line \the\inputlineno}
-\setinterfacemessage{publications}{6}{loading formatting style from --}
-\setinterfacemessage{javascript}{1}{loading script set --}
-\setinterfacemessage{javascript}{title}{javascript}
-\setinterfacemessage{javascript}{2}{unknown preamble --}
-\setinterfacemessage{check}{1}{missing or ungrouped '=' after '--' in line --}
-\setinterfacemessage{check}{3}{-- -- replaces a macro, use CAPITALS!}
-\setinterfacemessage{check}{2}{-- argument(s) expected in line --}
-\setinterfacemessage{check}{title}{check}
-\setinterfacemessage{metapost}{1}{loading metapost library --}
-\setinterfacemessage{metapost}{title}{metapost}
-\setinterfacemessage{figures}{1}{figure -- can not be found}
-\setinterfacemessage{figures}{3}{dimensions of -- are determined externally}
-\setinterfacemessage{figures}{2}{figure -- is not preset}
-\setinterfacemessage{figures}{5}{dimensions of -- are unknown}
-\setinterfacemessage{figures}{4}{dimensions of -- loaded from figurefile itself}
-\setinterfacemessage{figures}{6}{dimensions of -- calculated by rlxtools}
-\setinterfacemessage{figures}{8}{figureobject -- is reused}
-\setinterfacemessage{figures}{title}{figures}
-\setinterfacemessage{colors}{1}{system -- is global activated}
-\setinterfacemessage{colors}{3}{-- is not defined --}
-\setinterfacemessage{colors}{2}{system -- is local activated}
-\setinterfacemessage{colors}{5}{unknown system --}
-\setinterfacemessage{colors}{4}{system -- is loaded}
-\setinterfacemessage{colors}{7}{palette -- is not available}
-\setinterfacemessage{colors}{6}{palette -- is available}
-\setinterfacemessage{colors}{9}{-- color space is not supported}
-\setinterfacemessage{colors}{8}{specification -- at color -- becomes black}
-\setinterfacemessage{colors}{title}{color}
-\setinterfacemessage{colors}{12}{-- is registered}
-\setinterfacemessage{colors}{11}{color is converted to gray}
-\setinterfacemessage{colors}{10}{-- color space is supported}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-mro.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-mro.mkii
deleted file mode 100644
index 70673c31717..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-mro.mkii
+++ /dev/null
@@ -1,210 +0,0 @@
-\setinterfacemessage{references}{1}{referinta necunoscuta --}
-\setinterfacemessage{references}{30}{obiect necunoscut --}
-\setinterfacemessage{references}{3}{tip necunoscut de referinta --}
-\setinterfacemessage{references}{2}{referinta duplicat -- la pagina --}
-\setinterfacemessage{references}{5}{number of unknown references: --}
-\setinterfacemessage{references}{4}{referinta eronata --}
-\setinterfacemessage{references}{6}{number of illegal references: --}
-\setinterfacemessage{references}{25}{references from document '--' are not imported (export again)}
-\setinterfacemessage{references}{24}{references from document '--' are not exported}
-\setinterfacemessage{references}{title}{referinte}
-\setinterfacemessage{references}{26}{references from document '--' are imported}
-\setinterfacemessage{references}{31}{obiect duplicat --}
-\setinterfacemessage{references}{21}{documentul -- este incarcat}
-\setinterfacemessage{references}{22}{documentul -- nu este interactiv}
-\setinterfacemessage{references}{23}{referinta obscura -- (prefix=--)}
-\setinterfacemessage{documents}{1}{sheet --}
-\setinterfacemessage{documents}{title}{sheets}
-\setinterfacemessage{documents}{2}{number --}
-\setinterfacemessage{handlings}{1}{font handling --}
-\setinterfacemessage{handlings}{3}{unknown font handling --}
-\setinterfacemessage{handlings}{2}{font handling -- is loaded}
-\setinterfacemessage{handlings}{title}{handling}
-\setinterfacemessage{systems}{title}{sistem}
-\setinterfacemessage{systems}{41}{fisierul extern -- din grupul -- nu exista}
-\setinterfacemessage{systems}{9}{-- nu este gasit/procesat}
-\setinterfacemessage{systems}{91}{papertray --}
-\setinterfacemessage{systems}{8}{o noua versiune de fisier utilitar, este necesara o noua trecere}
-\setinterfacemessage{systems}{21}{nici o data utilitara nu este incarcata}
-\setinterfacemessage{systems}{20}{intelesul (ordinea) pentru -- incarcat}
-\setinterfacemessage{systems}{5}{macro-urile din modulul -- s-au incarcat}
-\setinterfacemessage{systems}{4}{comanda -- este deja definita}
-\setinterfacemessage{systems}{27}{Versiune}
-\setinterfacemessage{systems}{26}{Registri}
-\setinterfacemessage{systems}{25}{Referinte}
-\setinterfacemessage{systems}{24}{Blocuri}
-\setinterfacemessage{systems}{1}{se incarca utilitarul-fisierul este amanat (typemode)}
-\setinterfacemessage{systems}{23}{-- aranjat la --}
-\setinterfacemessage{systems}{22}{folositi un fisier utilitar valid}
-\setinterfacemessage{systems}{2}{-- s-a incarcat}
-\setinterfacemessage{systems}{19}{intelesul (sinonimele) pentru -- incarcat}
-\setinterfacemessage{systems}{18}{sinonimul -- -- nu exista}
-\setinterfacemessage{systems}{7}{macro-urile din modulul -- s-au incarcat deja}
-\setinterfacemessage{systems}{6}{nu s-au gasit macro-uri in modulul --}
-\setinterfacemessage{systems}{14}{s-a fortat trecere pa pagina noua in lista la --}
-\setinterfacemessage{systems}{15}{buffer salvat --}
-\setinterfacemessage{systems}{16}{buffer-ul -- s-a cules}
-\setinterfacemessage{systems}{17}{se culege buffer-ul verbatim --}
-\setinterfacemessage{systems}{13}{marcajul -- definit --}
-\setinterfacemessage{systems}{12}{fisierul utilitar nu este sortat, folositi texutil}
-\setinterfacemessage{systems}{11}{se creeaza un utilitar simplu}
-\setinterfacemessage{systems}{10}{nu folositi em in --}
-\setinterfacemessage{floatblocks}{1}{-- renumerotat / -- => --}
-\setinterfacemessage{floatblocks}{3}{-- mutat}
-\setinterfacemessage{floatblocks}{2}{-- salvat}
-\setinterfacemessage{floatblocks}{5}{ordinea adaptata}
-\setinterfacemessage{floatblocks}{4}{-- plasat}
-\setinterfacemessage{floatblocks}{7}{nr. blocurilor de jos limitat la --}
-\setinterfacemessage{floatblocks}{6}{nr. cadrelor de sus limitat la --}
-\setinterfacemessage{floatblocks}{9}{ordinea deranjata}
-\setinterfacemessage{floatblocks}{8}{mai putin de -- linii}
-\setinterfacemessage{floatblocks}{title}{Blocuri}
-\setinterfacemessage{floatblocks}{13}{there is nothing to split}
-\setinterfacemessage{floatblocks}{12}{nedefinit}
-\setinterfacemessage{floatblocks}{11}{nu este dat nici un bloc}
-\setinterfacemessage{floatblocks}{10}{-- limitat}
-\setinterfacemessage{interactions}{1}{aspectul -- x -- (b x h)}
-\setinterfacemessage{interactions}{3}{inactiv}
-\setinterfacemessage{interactions}{2}{activ}
-\setinterfacemessage{interactions}{5}{unknown attachment --}
-\setinterfacemessage{interactions}{4}{nu exista sincronizare pt. pagini (--) in hmode}
-\setinterfacemessage{interactions}{6}{attachment file -- does not exist}
-\setinterfacemessage{interactions}{title}{interactiuni}
-\setinterfacemessage{interactions}{21}{-- cod inserat}
-\setinterfacemessage{regimes}{1}{codificarea --}
-\setinterfacemessage{regimes}{3}{codificarea -- este necunoscuta}
-\setinterfacemessage{regimes}{2}{codificarea -- este Encarcata}
-\setinterfacemessage{regimes}{title}{codificari}
-\setinterfacemessage{structures}{1}{inceput de bloc sectiune --}
-\setinterfacemessage{structures}{title}{structuri}
-\setinterfacemessage{structures}{2}{sfarsit de bloc sectiune --}
-\setinterfacemessage{linguals}{1}{sablonul -- pentru -- s-a incarcat (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{3}{despartirea in silabe -- pentru -- s-a incarcat (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{2}{nu exista sabloane -- pentru -- (n=--,e=--,m=--) (--,--)}
-\setinterfacemessage{linguals}{5}{sabloanele pentru -- nu sunt incarcate}
-\setinterfacemessage{linguals}{4}{nu exista despartire in silabe -- pentru -- (n=--,e=--,m=--)}
-\setinterfacemessage{linguals}{7}{optiunile specifice ale limbii [--] introduc un spatiu --}
-\setinterfacemessage{linguals}{6}{limba -- nu este definita}
-\setinterfacemessage{linguals}{9}{limba -- este activa}
-\setinterfacemessage{linguals}{8}{optiunile specifice ale limbii [--] adaugate}
-\setinterfacemessage{linguals}{title}{limbi}
-\setinterfacemessage{linguals}{10}{sabloanele -- incarcate}
-\setinterfacemessage{verbatims}{1}{fisierul -- nu exista}
-\setinterfacemessage{verbatims}{title}{verbatim}
-\setinterfacemessage{filters}{1}{filter -- is loaded}
-\setinterfacemessage{filters}{title}{filter}
-\setinterfacemessage{filters}{2}{unknown filter --}
-\setinterfacemessage{textblocks}{1}{o noua versiune, este nevoie de inca o trecere}
-\setinterfacemessage{textblocks}{3}{se citesc blocurile din --}
-\setinterfacemessage{textblocks}{2}{se scriu blocurile in --}
-\setinterfacemessage{textblocks}{5}{-- nu este ascuns}
-\setinterfacemessage{textblocks}{4}{este nevoie de inca o trecere}
-\setinterfacemessage{textblocks}{7}{-- ascuns}
-\setinterfacemessage{textblocks}{6}{-- ascuns si procesat}
-\setinterfacemessage{textblocks}{9}{-- nu este cules}
-\setinterfacemessage{textblocks}{8}{-- cules}
-\setinterfacemessage{textblocks}{title}{blocuri de text}
-\setinterfacemessage{textblocks}{12}{-- sarit peste}
-\setinterfacemessage{textblocks}{11}{-- incarcat si cules}
-\setinterfacemessage{textblocks}{10}{-- incarcat si procesat}
-\setinterfacemessage{encodings}{1}{codificarea --}
-\setinterfacemessage{encodings}{3}{codificarea -- este necunoscuta}
-\setinterfacemessage{encodings}{2}{codificarea -- este Encarcata}
-\setinterfacemessage{encodings}{title}{codificari}
-\setinterfacemessage{columns}{1}{este posibil numai -- coloane}
-\setinterfacemessage{columns}{3}{probleme, se dezactiveaza alinierea}
-\setinterfacemessage{columns}{2}{folositi \string\filbreak\space ca alternativa}
-\setinterfacemessage{columns}{5}{cadrele bottom (bottom float) nu sunt inca suportate}
-\setinterfacemessage{columns}{4}{cadrele top (top float) nu sunt inca suportate}
-\setinterfacemessage{columns}{7}{alinierea este oprita dupa 100 de incercari}
-\setinterfacemessage{columns}{6}{-- blocurile sunt amanate}
-\setinterfacemessage{columns}{9}{verificat alinierea}
-\setinterfacemessage{columns}{8}{aliniat in -- pas(i)}
-\setinterfacemessage{columns}{title}{coloane}
-\setinterfacemessage{columns}{13}{blocul lat este mutat in partea de sus a coloanelor}
-\setinterfacemessage{columns}{12}{blocul este mutat pe urmatoarea coloana / --}
-\setinterfacemessage{columns}{11}{blocul este prea lat pentru coloana}
-\setinterfacemessage{columns}{10}{a mai ramas (mai putin de) 1 linie}
-\setinterfacemessage{symbols}{1}{se incarca setul de simboluri --}
-\setinterfacemessage{symbols}{title}{simboluri}
-\setinterfacemessage{files}{1}{sinonimul fisierelor -- este folosit deja pentru --}
-\setinterfacemessage{files}{title}{fisiere}
-\setinterfacemessage{versions}{1}{lipseste @+}
-\setinterfacemessage{versions}{3}{pagini selectate: --}
-\setinterfacemessage{versions}{2}{pagini marcate}
-\setinterfacemessage{versions}{title}{versiuni}
-\setinterfacemessage{specials}{1}{-- incarcat}
-\setinterfacemessage{specials}{3}{-- s-a resetat}
-\setinterfacemessage{specials}{2}{nu este permis un nivel de imbricare mai mare --}
-\setinterfacemessage{specials}{5}{se incarca fisierul de definitii --}
-\setinterfacemessage{specials}{4}{comanda -- nu exista}
-\setinterfacemessage{specials}{7}{driver necunoscut --}
-\setinterfacemessage{specials}{6}{imbricarea nu este permisa}
-\setinterfacemessage{specials}{title}{specials}
-\setinterfacemessage{layouts}{1}{textheight adaptat cu -- la pagina --}
-\setinterfacemessage{layouts}{3}{textul amanat de -- ori}
-\setinterfacemessage{layouts}{2}{textul amanat de -- ori a fost plasat}
-\setinterfacemessage{layouts}{5}{blocuri marginale inactive}
-\setinterfacemessage{layouts}{4}{blocuri marginale active}
-\setinterfacemessage{layouts}{7}{se calculeaza spatiul pentru logo}
-\setinterfacemessage{layouts}{6}{setul -- de subpagini procesat (dimensiunea --)}
-\setinterfacemessage{layouts}{9}{acum nu se supota mai mult de -- nivele de adancime la iteratii}
-\setinterfacemessage{layouts}{8}{se calculeaza fundalurile}
-\setinterfacemessage{layouts}{title}{aranjamente}
-\setinterfacemessage{layouts}{11}{spatierea -- nu este permisa in gridmode}
-\setinterfacemessage{layouts}{10}{-- si -- nu se adauga pana la 1.0}
-\setinterfacemessage{fonts}{1}{codificarea --}
-\setinterfacemessage{fonts}{3}{varianta necunoscuta --}
-\setinterfacemessage{fonts}{2}{varianta -- este incarcata}
-\setinterfacemessage{fonts}{5}{stilul -- nu este definit}
-\setinterfacemessage{fonts}{4}{corpul de litere -- nu este definit}
-\setinterfacemessage{fonts}{7}{format necunoscut --}
-\setinterfacemessage{fonts}{6}{-- este incarcat}
-\setinterfacemessage{fonts}{14}{bodyfont -- is defined (can better be done global)}
-\setinterfacemessage{fonts}{8}{stilul -- definit}
-\setinterfacemessage{fonts}{title}{corp de litere}
-\setinterfacemessage{fonts}{10}{fisier font necunoscut --}
-\setinterfacemessage{databases}{1}{--}
-\setinterfacemessage{databases}{3}{fisier global --}
-\setinterfacemessage{databases}{2}{fisier local --}
-\setinterfacemessage{databases}{4}{fisier necunoscut --}
-\setinterfacemessage{databases}{title}{baze de date}
-\setinterfacemessage{publications}{1}{file -- not found, unknown style ignored}
-\setinterfacemessage{publications}{3}{wrote a new auxiliary file \jobname.aux}
-\setinterfacemessage{publications}{title}{publications}
-\setinterfacemessage{publications}{2}{file -- not found, waiting for bibtex}
-\setinterfacemessage{publications}{4}{loading database from --}
-\setinterfacemessage{publications}{5}{warning: cite argument -- on line \the\inputlineno}
-\setinterfacemessage{publications}{6}{loading formatting style from --}
-\setinterfacemessage{javascript}{1}{se incarca scriptul --}
-\setinterfacemessage{javascript}{title}{javascript}
-\setinterfacemessage{javascript}{2}{preambul necunoscut --}
-\setinterfacemessage{check}{1}{lipseste '=' dupa '--' in linia --}
-\setinterfacemessage{check}{3}{-- -- inlocuieste un macro, folositi MAJUSCULE!}
-\setinterfacemessage{check}{2}{argumentul(ele) -- sunt asteptate in linia --}
-\setinterfacemessage{check}{title}{verificari}
-\setinterfacemessage{metapost}{1}{se incarca biblioteca metapost --}
-\setinterfacemessage{metapost}{title}{metapost}
-\setinterfacemessage{figures}{1}{figura -- nu poate fi gasita}
-\setinterfacemessage{figures}{3}{dimensions of -- are determined externally}
-\setinterfacemessage{figures}{2}{figura -- nu este presetata}
-\setinterfacemessage{figures}{5}{dimensions of -- are unknown}
-\setinterfacemessage{figures}{4}{dimensiunea figurii -- se incarca din fisierul insusi}
-\setinterfacemessage{figures}{6}{dimensiunea figurii -- este calculata de rlxtools}
-\setinterfacemessage{figures}{8}{obiectul figura -- este refolosit}
-\setinterfacemessage{figures}{title}{figuri}
-\setinterfacemessage{colors}{1}{sistem -- este activata global}
-\setinterfacemessage{colors}{3}{-- nu este definita --}
-\setinterfacemessage{colors}{2}{sistem -- este activata local}
-\setinterfacemessage{colors}{5}{sistem -- necunoscuta}
-\setinterfacemessage{colors}{4}{sistem -- este incarcata}
-\setinterfacemessage{colors}{7}{palette -- nu este disponibila}
-\setinterfacemessage{colors}{6}{paleta -- este disponibila}
-\setinterfacemessage{colors}{9}{spatiul de culoare -- nu este suportat}
-\setinterfacemessage{colors}{8}{specificatia -- la culoarea -- devine neagra}
-\setinterfacemessage{colors}{title}{culori}
-\setinterfacemessage{colors}{12}{-- is registered}
-\setinterfacemessage{colors}{11}{culoarea este convertita la gri}
-\setinterfacemessage{colors}{10}{spatiul de culoare -- este suportat}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-nl.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-nl.mkii
deleted file mode 100644
index 7bf09dd57b8..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-nl.mkii
+++ /dev/null
@@ -1,2221 +0,0 @@
-% this file is auto-generated, don't edit this file
-%
-% definitions for interface variables for language nl
-%
-\setinterfacevariable{Addition}{Toevoeging}
-\setinterfacevariable{Alphabetic}{Alphabetic}
-\setinterfacevariable{Balloon}{Ballon}
-\setinterfacevariable{Cap}{Kap}
-\setinterfacevariable{Capital}{Kapitaal}
-\setinterfacevariable{Character}{Letter}
-\setinterfacevariable{Characters}{Letters}
-\setinterfacevariable{CloseDocument}{SluitDocument}
-\setinterfacevariable{ExitViewer}{VerlaatViewer}
-\setinterfacevariable{FirstPage}{EerstePagina}
-\setinterfacevariable{FitHeight}{HoogtePassend}
-\setinterfacevariable{FitWidth}{BreedtePassend}
-\setinterfacevariable{GotoPage}{GaNaarPagina}
-\setinterfacevariable{Greek}{Grieks}
-\setinterfacevariable{Help}{Help}
-\setinterfacevariable{HideField}{VerbergVeld}
-\setinterfacevariable{HideLayer}{VerbergLaag}
-\setinterfacevariable{Key}{Sleutel}
-\setinterfacevariable{LastPage}{LaatstePagina}
-\setinterfacevariable{LoadForm}{LaadFormulier}
-\setinterfacevariable{MONTH}{MAAND}
-\setinterfacevariable{New}{Nieuw}
-\setinterfacevariable{NextJump}{VolgendeSprong}
-\setinterfacevariable{NextPage}{VolgendePagina}
-\setinterfacevariable{Numbers}{Cijfers}
-\setinterfacevariable{OpenNamedDocument}{OpenDocumentOpNaam}
-\setinterfacevariable{Ordinal}{Ordinal}
-\setinterfacevariable{Paragraph}{Paragraaf}
-\setinterfacevariable{PauseMovie}{PauzeerFilm}
-\setinterfacevariable{PauseRendering}{PauzeerRendering}
-\setinterfacevariable{PauseSound}{PauzeerGeluid}
-\setinterfacevariable{PreviousJump}{VorigeSprong}
-\setinterfacevariable{PreviousPage}{VorigePagina}
-\setinterfacevariable{PrintDocument}{PrintDocument}
-\setinterfacevariable{Query}{RaadpleegDocument}
-\setinterfacevariable{QueryAgain}{HerhaalRaadplegen}
-\setinterfacevariable{ResetForm}{ResetFormulier}
-\setinterfacevariable{ResumeMovie}{HervatFilm}
-\setinterfacevariable{ResumeRendering}{HervatRendering}
-\setinterfacevariable{ResumeSound}{HervatGeluid}
-\setinterfacevariable{Romannumerals}{Romeins}
-\setinterfacevariable{SaveDocument}{BewaarDocument}
-\setinterfacevariable{SaveForm}{BewaarFormulier}
-\setinterfacevariable{SaveNamedDocument}{BewaarDocumentOpNaam}
-\setinterfacevariable{SearchAgain}{HerhaalZoeken}
-\setinterfacevariable{SearchDocument}{DoorzoekDocument}
-\setinterfacevariable{ShowBookmarks}{ShowBookmarks}
-\setinterfacevariable{ShowField}{ToonVeld}
-\setinterfacevariable{ShowThumbs}{ShowThumbs}
-\setinterfacevariable{StartMovie}{StartFilm}
-\setinterfacevariable{StartRendering}{StartRendering}
-\setinterfacevariable{StartSound}{StartGeluid}
-\setinterfacevariable{StopMovie}{StopFilm}
-\setinterfacevariable{StopRendering}{StopRendering}
-\setinterfacevariable{StopSound}{StopGeluid}
-\setinterfacevariable{SubmitForm}{VerzendFormulier}
-\setinterfacevariable{ToggleLayer}{WisselLaag}
-\setinterfacevariable{ToggleViewer}{WisselViewer}
-\setinterfacevariable{URL}{URL}
-\setinterfacevariable{VideLayer}{ToonLaag}
-\setinterfacevariable{ViewerHelp}{ViewerHelp}
-\setinterfacevariable{WEEKDAY}{WEEKDAG}
-\setinterfacevariable{WORD}{WOORD}
-\setinterfacevariable{WORDS}{WOORDEN}
-\setinterfacevariable{Word}{Woord}
-\setinterfacevariable{Words}{Woorden}
-\setinterfacevariable{abbreviation}{afkorting}
-\setinterfacevariable{abbreviations}{afkortingen}
-\setinterfacevariable{absolute}{absoluut}
-\setinterfacevariable{action}{actie}
-\setinterfacevariable{after}{na}
-\setinterfacevariable{all}{alles}
-\setinterfacevariable{alphabetic}{alphabetic}
-\setinterfacevariable{always}{altijd}
-\setinterfacevariable{anchor}{anker}
-\setinterfacevariable{and}{en}
-\setinterfacevariable{answerarea}{antwoordgebied}
-\setinterfacevariable{appendices}{bijlagen}
-\setinterfacevariable{appendix}{bijlage}
-\setinterfacevariable{april}{april}
-\setinterfacevariable{aside}{aside}
-\setinterfacevariable{atleftmargin}{oplinkermarge}
-\setinterfacevariable{atmargin}{opmarge}
-\setinterfacevariable{atpage}{oppagina}
-\setinterfacevariable{atrightmargin}{oprechtermarge}
-\setinterfacevariable{attachment}{aanhangsel}
-\setinterfacevariable{august}{augustus}
-\setinterfacevariable{author}{auteur}
-\setinterfacevariable{auto}{auto}
-\setinterfacevariable{autointro}{autointro}
-\setinterfacevariable{autopunctuation}{autopunctuation}
-\setinterfacevariable{back}{terug}
-\setinterfacevariable{background}{achtergrond}
-\setinterfacevariable{backmatter}{uitleidingen}
-\setinterfacevariable{backpart}{uitleiding}
-\setinterfacevariable{backspace}{rugwit}
-\setinterfacevariable{backward}{achteruit}
-\setinterfacevariable{bbl}{bbl}
-\setinterfacevariable{before}{voor}
-\setinterfacevariable{begin}{begin}
-\setinterfacevariable{bib}{bib}
-\setinterfacevariable{big}{groot}
-\setinterfacevariable{bigbodyfont}{grootkorps}
-\setinterfacevariable{bigger}{groter}
-\setinterfacevariable{bigpreference}{grotevoorkeur}
-\setinterfacevariable{blank}{blanko}
-\setinterfacevariable{block}{block}
-\setinterfacevariable{blockquote}{blokcitaat}
-\setinterfacevariable{bodymatter}{hoofdteksten}
-\setinterfacevariable{bodypart}{hoofdtekst}
-\setinterfacevariable{bold}{vet}
-\setinterfacevariable{bolditalic}{vetitalic}
-\setinterfacevariable{boldslanted}{vetschuin}
-\setinterfacevariable{bookmark}{bookmark}
-\setinterfacevariable{both}{beide}
-\setinterfacevariable{bothtext}{bothtext}
-\setinterfacevariable{bottom}{onder}
-\setinterfacevariable{box}{box}
-\setinterfacevariable{brief}{brief}
-\setinterfacevariable{broad}{ruim}
-\setinterfacevariable{buffer}{buffer}
-\setinterfacevariable{by}{per}
-\setinterfacevariable{calligraphic}{calligrafie}
-\setinterfacevariable{camel}{camel}
-\setinterfacevariable{cap}{kap}
-\setinterfacevariable{capital}{kapitaal}
-\setinterfacevariable{category}{category}
-\setinterfacevariable{cd:character}{cd:character}
-\setinterfacevariable{cd:font}{cd:font}
-\setinterfacevariable{center}{centreer}
-\setinterfacevariable{centerlast}{centerlast}
-\setinterfacevariable{chapter}{hoofdstuk}
-\setinterfacevariable{character}{letter}
-\setinterfacevariable{characters}{letters}
-\setinterfacevariable{chemical}{chemical}
-\setinterfacevariable{chemicals}{chemicals}
-\setinterfacevariable{chemistry}{chemie}
-\setinterfacevariable{cite}{cite}
-\setinterfacevariable{closed}{gesloten}
-\setinterfacevariable{color}{kleur}
-\setinterfacevariable{column}{kolom}
-\setinterfacevariable{columns}{kolommen}
-\setinterfacevariable{combination}{combinatie}
-\setinterfacevariable{command}{commando}
-\setinterfacevariable{commands}{commandos}
-\setinterfacevariable{comment}{commentaar}
-\setinterfacevariable{component}{onderdeel}
-\setinterfacevariable{compressseparator}{compressseparator}
-\setinterfacevariable{compressstopper}{compressstopper}
-\setinterfacevariable{concept}{concept}
-\setinterfacevariable{construction}{construction}
-\setinterfacevariable{content}{inhoud}
-\setinterfacevariable{contents}{inhouden}
-\setinterfacevariable{continue}{verder}
-\setinterfacevariable{continued}{vervolgd}
-\setinterfacevariable{controls}{sturing}
-\setinterfacevariable{conversion}{conversie}
-\setinterfacevariable{current}{huidige}
-\setinterfacevariable{cutspace}{snijwit}
-\setinterfacevariable{dataset}{dataset}
-\setinterfacevariable{date}{datum}
-\setinterfacevariable{day}{dag}
-\setinterfacevariable{december}{december}
-\setinterfacevariable{default}{default}
-\setinterfacevariable{depth}{diepte}
-\setinterfacevariable{description}{doordefinitie}
-\setinterfacevariable{disable}{blokkeer}
-\setinterfacevariable{display}{scherm}
-\setinterfacevariable{dot}{punt}
-\setinterfacevariable{doublesided}{dubbelzijdig}
-\setinterfacevariable{down}{omlaag}
-\setinterfacevariable{each}{elk}
-\setinterfacevariable{edge}{rand}
-\setinterfacevariable{effective}{effectief}
-\setinterfacevariable{eight}{acht}
-\setinterfacevariable{embed}{sluitin}
-\setinterfacevariable{empty}{leeg}
-\setinterfacevariable{enable}{enable}
-\setinterfacevariable{end}{eind}
-\setinterfacevariable{endnote}{eindnoot}
-\setinterfacevariable{enumeration}{doornummering}
-\setinterfacevariable{environment}{omgeving}
-\setinterfacevariable{even}{even}
-\setinterfacevariable{export}{export}
-\setinterfacevariable{external}{extern}
-\setinterfacevariable{extremestretch}{extremestretch}
-\setinterfacevariable{fact}{gegeven}
-\setinterfacevariable{fallback}{fallback}
-\setinterfacevariable{february}{februari}
-\setinterfacevariable{field}{veld}
-\setinterfacevariable{figure}{figuur}
-\setinterfacevariable{figures}{figuren}
-\setinterfacevariable{file}{file}
-\setinterfacevariable{final}{definitief}
-\setinterfacevariable{first}{eerste}
-\setinterfacevariable{firstcolumn}{eerstekolom}
-\setinterfacevariable{firstpage}{eerstepagina}
-\setinterfacevariable{firstsubpage}{eerstesubpagina}
-\setinterfacevariable{fit}{passend}
-\setinterfacevariable{five}{vijf}
-\setinterfacevariable{fix}{herstel}
-\setinterfacevariable{fixed}{vast}
-\setinterfacevariable{flexible}{flexibel}
-\setinterfacevariable{float}{blok}
-\setinterfacevariable{flushinner}{lijnbinnen}
-\setinterfacevariable{flushleft}{lijnlinks}
-\setinterfacevariable{flushouter}{lijnbuiten}
-\setinterfacevariable{flushright}{lijnrechts}
-\setinterfacevariable{followingpage}{opvolgendepagina}
-\setinterfacevariable{font}{font}
-\setinterfacevariable{footer}{voet}
-\setinterfacevariable{footnote}{voetnoot}
-\setinterfacevariable{force}{forceer}
-\setinterfacevariable{foreground}{voorgrond}
-\setinterfacevariable{formula}{formule}
-\setinterfacevariable{formulas}{formules}
-\setinterfacevariable{forward}{vooruit}
-\setinterfacevariable{four}{vier}
-\setinterfacevariable{fractions}{fractions}
-\setinterfacevariable{frame}{kader}
-\setinterfacevariable{framedtext}{kadertekst}
-\setinterfacevariable{friday}{vrijdag}
-\setinterfacevariable{frontmatter}{inleidingen}
-\setinterfacevariable{frontpart}{inleiding}
-\setinterfacevariable{fullhz}{fullenhz}
-\setinterfacevariable{global}{globaal}
-\setinterfacevariable{graphic}{grafiek}
-\setinterfacevariable{graphics}{grafieken}
-\setinterfacevariable{gray}{grijs}
-\setinterfacevariable{greek}{grieks}
-\setinterfacevariable{grid}{grid}
-\setinterfacevariable{halfline}{halveregel}
-\setinterfacevariable{handwritten}{handschrift}
-\setinterfacevariable{hang}{hang}
-\setinterfacevariable{hanging}{hangend}
-\setinterfacevariable{hangingboth}{beidehangend}
-\setinterfacevariable{head}{kop}
-\setinterfacevariable{header}{hoofd}
-\setinterfacevariable{headintext}{kopintekst}
-\setinterfacevariable{height}{hoogte}
-\setinterfacevariable{helptext}{helptekst}
-\setinterfacevariable{hencefore}{hierboven}
-\setinterfacevariable{here}{hier}
-\setinterfacevariable{hereafter}{hieronder}
-\setinterfacevariable{hidden}{verborgen}
-\setinterfacevariable{hiddenbar}{hiddenbar}
-\setinterfacevariable{hiding}{verbergen}
-\setinterfacevariable{high}{hoog}
-\setinterfacevariable{horizontal}{horizontaal}
-\setinterfacevariable{hyphenated}{afgebroken}
-\setinterfacevariable{hz}{hz}
-\setinterfacevariable{inbetween}{tussen}
-\setinterfacevariable{index}{index}
-\setinterfacevariable{indices}{indices}
-\setinterfacevariable{inherit}{erf}
-\setinterfacevariable{ininner}{inbinnen}
-\setinterfacevariable{ininneredge}{ininneredge}
-\setinterfacevariable{ininnermargin}{ininnermargin}
-\setinterfacevariable{inleft}{inlinker}
-\setinterfacevariable{inleftedge}{inlinkerrand}
-\setinterfacevariable{inleftmargin}{inlinkermarge}
-\setinterfacevariable{inline}{inline}
-\setinterfacevariable{inmargin}{inmarge}
-\setinterfacevariable{inner}{binnen}
-\setinterfacevariable{inneredge}{binnenrand}
-\setinterfacevariable{innermargin}{binnenmarge}
-\setinterfacevariable{inother}{inandere}
-\setinterfacevariable{inouter}{inbuiten}
-\setinterfacevariable{inouteredge}{inouteredge}
-\setinterfacevariable{inoutermargin}{inoutermargin}
-\setinterfacevariable{inright}{inrechter}
-\setinterfacevariable{inrightedge}{inrechterrand}
-\setinterfacevariable{inrightmargin}{inrechtermarge}
-\setinterfacevariable{integral}{integral}
-\setinterfacevariable{interaction}{interactie}
-\setinterfacevariable{interactionmenu}{interactiemenu}
-\setinterfacevariable{interactive}{interactive}
-\setinterfacevariable{intermezzi}{intermezzos}
-\setinterfacevariable{intermezzo}{intermezzo}
-\setinterfacevariable{intext}{intekst}
-\setinterfacevariable{intro}{intro}
-\setinterfacevariable{invertedshort}{invertedshort}
-\setinterfacevariable{italic}{italic}
-\setinterfacevariable{italicbold}{italicvet}
-\setinterfacevariable{item}{som}
-\setinterfacevariable{itemize}{opsomming}
-\setinterfacevariable{its}{its}
-\setinterfacevariable{january}{januari}
-\setinterfacevariable{joinedup}{aansluitend}
-\setinterfacevariable{july}{juli}
-\setinterfacevariable{june}{juni}
-\setinterfacevariable{keep}{handhaaf}
-\setinterfacevariable{kerncharacters}{kerncharacters}
-\setinterfacevariable{knockout}{knockout}
-\setinterfacevariable{label}{label}
-\setinterfacevariable{landscape}{liggend}
-\setinterfacevariable{last}{laatste}
-\setinterfacevariable{lastcolumn}{laatstekolom}
-\setinterfacevariable{lastpage}{laatstepagina}
-\setinterfacevariable{lastpagenumber}{laatstepaginanummer}
-\setinterfacevariable{lastsubpage}{laatstesubpagina}
-\setinterfacevariable{layer}{layer}
-\setinterfacevariable{left}{links}
-\setinterfacevariable{leftedge}{linkerrand}
-\setinterfacevariable{lefthanging}{linkshangend}
-\setinterfacevariable{leftmargin}{linkermarge}
-\setinterfacevariable{leftpage}{linkerpagina}
-\setinterfacevariable{lefttoright}{lefttoright}
-\setinterfacevariable{legend}{legenda}
-\setinterfacevariable{less}{minder}
-\setinterfacevariable{lesshyphenation}{lesshyphenation}
-\setinterfacevariable{letterspacing}{letterspacing}
-\setinterfacevariable{line}{regel}
-\setinterfacevariable{linenote}{regelnoot}
-\setinterfacevariable{lines}{regels}
-\setinterfacevariable{linked}{linked}
-\setinterfacevariable{list}{lijst}
-\setinterfacevariable{local}{lokaal}
-\setinterfacevariable{localenvironment}{deelomgeving}
-\setinterfacevariable{logo}{logo}
-\setinterfacevariable{logos}{logos}
-\setinterfacevariable{lohi}{laho}
-\setinterfacevariable{long}{long}
-\setinterfacevariable{loose}{los}
-\setinterfacevariable{low}{laag}
-\setinterfacevariable{ls}{ls}
-\setinterfacevariable{makeup}{opmaak}
-\setinterfacevariable{mar}{mar}
-\setinterfacevariable{march}{maart}
-\setinterfacevariable{margin}{marge}
-\setinterfacevariable{marginedge}{kantlijn}
-\setinterfacevariable{margintext}{margetekst}
-\setinterfacevariable{margintitle}{margetitel}
-\setinterfacevariable{marking}{markering}
-\setinterfacevariable{math}{math}
-\setinterfacevariable{mathalignment}{wiskundeuitlijnen}
-\setinterfacevariable{mathcases}{mathcases}
-\setinterfacevariable{mathematics}{wiskunde}
-\setinterfacevariable{mathmatrix}{wiskundematrix}
-\setinterfacevariable{max}{max}
-\setinterfacevariable{maxdepth}{maxdiepte}
-\setinterfacevariable{maxheight}{maxhoogte}
-\setinterfacevariable{maxwidth}{maxbreedte}
-\setinterfacevariable{may}{mei}
-\setinterfacevariable{mediaeval}{mediaeval}
-\setinterfacevariable{medium}{middel}
-\setinterfacevariable{middle}{midden}
-\setinterfacevariable{min}{min}
-\setinterfacevariable{mindepth}{mindiepte}
-\setinterfacevariable{minheight}{minhoogte}
-\setinterfacevariable{minwidth}{minbreedte}
-\setinterfacevariable{mirrored}{gespiegeld}
-\setinterfacevariable{mixed}{mixed}
-\setinterfacevariable{monday}{maandag}
-\setinterfacevariable{mono}{mono}
-\setinterfacevariable{monobold}{monovet}
-\setinterfacevariable{mononormal}{mononormal}
-\setinterfacevariable{month}{maand}
-\setinterfacevariable{more}{meer}
-\setinterfacevariable{morehyphenation}{morehyphenation}
-\setinterfacevariable{name}{naam}
-\setinterfacevariable{narrow}{smal}
-\setinterfacevariable{negative}{negatief}
-\setinterfacevariable{never}{nooit}
-\setinterfacevariable{new}{nieuw}
-\setinterfacevariable{next}{volgende}
-\setinterfacevariable{nextevenpage}{volgendeevenpagina}
-\setinterfacevariable{nextoddpage}{volgendeonevenpagina}
-\setinterfacevariable{nextpage}{volgendepagina}
-\setinterfacevariable{nextsubpage}{volgendesubpagina}
-\setinterfacevariable{nine}{negen}
-\setinterfacevariable{no}{nee}
-\setinterfacevariable{nocheck}{geencontrole}
-\setinterfacevariable{nodepth}{nodepth}
-\setinterfacevariable{nofit}{nietpassend}
-\setinterfacevariable{nogrid}{geengrid}
-\setinterfacevariable{noheight}{noheight}
-\setinterfacevariable{nohz}{geenhz}
-\setinterfacevariable{noline}{noline}
-\setinterfacevariable{nomarking}{geenmarkering}
-\setinterfacevariable{nomenubar}{geenmenubalk}
-\setinterfacevariable{none}{geen}
-\setinterfacevariable{nonumber}{geennummer}
-\setinterfacevariable{norepeat}{norepeat}
-\setinterfacevariable{normal}{normaal}
-\setinterfacevariable{normalshort}{normalshort}
-\setinterfacevariable{nospacing}{geenspatiering}
-\setinterfacevariable{nostopper}{geenafsluiter}
-\setinterfacevariable{not}{niet}
-\setinterfacevariable{notation}{notation}
-\setinterfacevariable{note}{note}
-\setinterfacevariable{nothanging}{niethangend}
-\setinterfacevariable{nothyphenated}{nietafgebroken}
-\setinterfacevariable{notjoinedup}{nietaansluitend}
-\setinterfacevariable{november}{november}
-\setinterfacevariable{nowhere}{nergens}
-\setinterfacevariable{nowhite}{geenwit}
-\setinterfacevariable{number}{nummer}
-\setinterfacevariable{numbers}{cijfers}
-\setinterfacevariable{october}{oktober}
-\setinterfacevariable{odd}{oneven}
-\setinterfacevariable{off}{uit}
-\setinterfacevariable{offset}{offset}
-\setinterfacevariable{old}{oud}
-\setinterfacevariable{oldstyle}{oldstyle}
-\setinterfacevariable{on}{aan}
-\setinterfacevariable{one}{een}
-\setinterfacevariable{opposite}{naast}
-\setinterfacevariable{ordinal}{ordinal}
-\setinterfacevariable{outer}{buiten}
-\setinterfacevariable{outeredge}{buitenrand}
-\setinterfacevariable{outermargin}{buitenmarge}
-\setinterfacevariable{overbar}{overstreep}
-\setinterfacevariable{overbars}{overstrepen}
-\setinterfacevariable{overlay}{overlay}
-\setinterfacevariable{overprint}{overprint}
-\setinterfacevariable{overstrike}{doorstreep}
-\setinterfacevariable{overstrikes}{doorstrepen}
-\setinterfacevariable{packed}{opelkaar}
-\setinterfacevariable{page}{pagina}
-\setinterfacevariable{pagecomment}{paginacommentaar}
-\setinterfacevariable{pagenumber}{paginanummer}
-\setinterfacevariable{paper}{papier}
-\setinterfacevariable{paragraph}{alinea}
-\setinterfacevariable{part}{deel}
-\setinterfacevariable{positive}{positief}
-\setinterfacevariable{postponing}{uitstellen}
-\setinterfacevariable{postscript}{postscript}
-\setinterfacevariable{precedingpage}{voorafgaandepagina}
-\setinterfacevariable{preference}{voorkeur}
-\setinterfacevariable{preview}{preview}
-\setinterfacevariable{previous}{vorige}
-\setinterfacevariable{previousevenpage}{vorigeevenpagina}
-\setinterfacevariable{previousoddpage}{vorigeonevenpagina}
-\setinterfacevariable{previouspage}{vorigepagina}
-\setinterfacevariable{previoussubpage}{vorigesubpagina}
-\setinterfacevariable{print}{print}
-\setinterfacevariable{printable}{printbaar}
-\setinterfacevariable{process}{proces}
-\setinterfacevariable{product}{produkt}
-\setinterfacevariable{program}{programma}
-\setinterfacevariable{project}{project}
-\setinterfacevariable{protected}{beschermd}
-\setinterfacevariable{quadruple}{viertal}
-\setinterfacevariable{quarterline}{kwartregel}
-\setinterfacevariable{quotation}{citaat}
-\setinterfacevariable{quote}{citeer}
-\setinterfacevariable{ran}{ran}
-\setinterfacevariable{random}{willekeurig}
-\setinterfacevariable{readonly}{alleenleesbaar}
-\setinterfacevariable{rectangular}{recht}
-\setinterfacevariable{reference}{referentie}
-\setinterfacevariable{referral}{kenmerk}
-\setinterfacevariable{region}{gebied}
-\setinterfacevariable{register}{register}
-\setinterfacevariable{regular}{regular}
-\setinterfacevariable{relative}{relatief}
-\setinterfacevariable{repeat}{herhaal}
-\setinterfacevariable{required}{verplicht}
-\setinterfacevariable{reset}{reset}
-\setinterfacevariable{reverse}{omgekeerd}
-\setinterfacevariable{right}{rechts}
-\setinterfacevariable{rightedge}{rechterrand}
-\setinterfacevariable{righthanging}{rechtshangend}
-\setinterfacevariable{rightmargin}{rechtermarge}
-\setinterfacevariable{rightpage}{rechterpagina}
-\setinterfacevariable{righttoleft}{righttoleft}
-\setinterfacevariable{roman}{romaan}
-\setinterfacevariable{romannumerals}{romeins}
-\setinterfacevariable{rotate}{roteer}
-\setinterfacevariable{rotated}{geroteerd}
-\setinterfacevariable{round}{rond}
-\setinterfacevariable{row}{rij}
-\setinterfacevariable{rule}{lijn}
-\setinterfacevariable{samepage}{zelfdepagina}
-\setinterfacevariable{sans}{sans}
-\setinterfacevariable{sansbold}{sansvet}
-\setinterfacevariable{sansnormal}{sansnormal}
-\setinterfacevariable{sansserif}{schreefloos}
-\setinterfacevariable{saturday}{zaterdag}
-\setinterfacevariable{screen}{raster}
-\setinterfacevariable{section}{paragraaf}
-\setinterfacevariable{sectionblockenvironment}{sectieblokomgeving}
-\setinterfacevariable{sectionnumber}{sectienummer}
-\setinterfacevariable{see}{zie}
-\setinterfacevariable{selectfont}{selectfont}
-\setinterfacevariable{separator}{scheider}
-\setinterfacevariable{september}{september}
-\setinterfacevariable{serif}{serif}
-\setinterfacevariable{serifbold}{serifbold}
-\setinterfacevariable{serifnormal}{serifnormal}
-\setinterfacevariable{serried}{aanelkaar}
-\setinterfacevariable{setups}{setups}
-\setinterfacevariable{seven}{zeven}
-\setinterfacevariable{sheet}{sheet}
-\setinterfacevariable{shiftdown}{shiftdown}
-\setinterfacevariable{shiftup}{shiftup}
-\setinterfacevariable{short}{kort}
-\setinterfacevariable{simplefonts}{simplefonts}
-\setinterfacevariable{simplelist}{simplelist}
-\setinterfacevariable{singlesided}{enkelzijdig}
-\setinterfacevariable{six}{zes}
-\setinterfacevariable{slanted}{schuin}
-\setinterfacevariable{slantedbold}{schuinvet}
-\setinterfacevariable{small}{klein}
-\setinterfacevariable{smallbodyfont}{kleinkorps}
-\setinterfacevariable{smallbold}{kleinvet}
-\setinterfacevariable{smallbolditalic}{kleinvetitalic}
-\setinterfacevariable{smallboldslanted}{kleinvetschuin}
-\setinterfacevariable{smallcaps}{smallcaps}
-\setinterfacevariable{smaller}{kleiner}
-\setinterfacevariable{smallitalic}{kleinitalic}
-\setinterfacevariable{smallitalicbold}{kleinitalicvet}
-\setinterfacevariable{smallnormal}{kleinnormaal}
-\setinterfacevariable{smallslanted}{kleinschuin}
-\setinterfacevariable{smallslantedbold}{kleinschuinvet}
-\setinterfacevariable{smalltype}{kleintype}
-\setinterfacevariable{somewhere}{ergens}
-\setinterfacevariable{sorted}{gesorteerd}
-\setinterfacevariable{sorting}{sorting}
-\setinterfacevariable{space}{spatie}
-\setinterfacevariable{spacing}{spatiering}
-\setinterfacevariable{speech}{spraak}
-\setinterfacevariable{split}{splitsen}
-\setinterfacevariable{spot}{spot}
-\setinterfacevariable{standard}{standaard}
-\setinterfacevariable{start}{start}
-\setinterfacevariable{starter}{opener}
-\setinterfacevariable{sticker}{sticker}
-\setinterfacevariable{stop}{stop}
-\setinterfacevariable{stopper}{afsluiter}
-\setinterfacevariable{stretch}{rek}
-\setinterfacevariable{stretched}{stretched}
-\setinterfacevariable{strict}{streng}
-\setinterfacevariable{strong}{sterk}
-\setinterfacevariable{strut}{strut}
-\setinterfacevariable{sub}{sub}
-\setinterfacevariable{subbackward}{subachteruit}
-\setinterfacevariable{subformula}{subformule}
-\setinterfacevariable{subforward}{subvooruit}
-\setinterfacevariable{subject}{onderwerp}
-\setinterfacevariable{subpage}{subpagina}
-\setinterfacevariable{subs}{subs}
-\setinterfacevariable{subsection}{subparagraaf}
-\setinterfacevariable{subsubject}{subonderwerp}
-\setinterfacevariable{subsubsection}{subsubparagraaf}
-\setinterfacevariable{subsubsubject}{subsubonderwerp}
-\setinterfacevariable{subsubsubsection}{subsubsubparagraaf}
-\setinterfacevariable{subsubsubsubject}{subsubsubonderwerp}
-\setinterfacevariable{subsubsubsubsection}{subsubsubsubparagraaf}
-\setinterfacevariable{subsubsubsubsubject}{subsubsubsubonderwerp}
-\setinterfacevariable{subsubsubsubsubsection}{subsubsubsubsubparagraaf}
-\setinterfacevariable{subsubsubsubsubsubject}{subsubsubsubsubonderwerp}
-\setinterfacevariable{subsubsubsubsubsubsection}{subsubsubsubsubsubparagraaf}
-\setinterfacevariable{subsubsubsubsubsubsubject}{subsubsubsubsubsubonderwerp}
-\setinterfacevariable{subsubsubsubsubsubsubsection}{subsubsubsubsubsubsubparagraaf}
-\setinterfacevariable{subsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubonderwerp}
-\setinterfacevariable{subsubsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsubparagraaf}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubonderwerp}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsubsubparagraaf}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubsubonderwerp}
-\setinterfacevariable{sunday}{zondag}
-\setinterfacevariable{support}{support}
-\setinterfacevariable{sym}{sym}
-\setinterfacevariable{symbol}{symbool}
-\setinterfacevariable{synchronize}{synchroniseer}
-\setinterfacevariable{synonym}{synonym}
-\setinterfacevariable{system}{systeem}
-\setinterfacevariable{table}{tabel}
-\setinterfacevariable{tablehead}{tabelkop}
-\setinterfacevariable{tables}{tabellen}
-\setinterfacevariable{tabletail}{tabelstaart}
-\setinterfacevariable{tabulate}{tabulatie}
-\setinterfacevariable{tabulatehead}{tabulatiekop}
-\setinterfacevariable{tabulatetail}{tabulatiestaart}
-\setinterfacevariable{tall}{lang}
-\setinterfacevariable{teletype}{teletype}
-\setinterfacevariable{temporary}{voorlopig}
-\setinterfacevariable{test}{test}
-\setinterfacevariable{text}{tekst}
-\setinterfacevariable{textnote}{tekstnoot}
-\setinterfacevariable{three}{drie}
-\setinterfacevariable{thursday}{donderdag}
-\setinterfacevariable{tight}{krap}
-\setinterfacevariable{title}{titel}
-\setinterfacevariable{toggle}{toggle}
-\setinterfacevariable{tolerant}{soepel}
-\setinterfacevariable{top}{boven}
-\setinterfacevariable{tuesday}{dinsdag}
-\setinterfacevariable{two}{twee}
-\setinterfacevariable{txt}{txt}
-\setinterfacevariable{type}{type}
-\setinterfacevariable{typing}{typen}
-\setinterfacevariable{unavailable}{nietbeschikbaar}
-\setinterfacevariable{underbar}{onderstreep}
-\setinterfacevariable{underbars}{onderstrepen}
-\setinterfacevariable{understrike}{understrike}
-\setinterfacevariable{understrikes}{understrikes}
-\setinterfacevariable{unframed}{unframed}
-\setinterfacevariable{unicode}{unicode}
-\setinterfacevariable{unit}{eenheid}
-\setinterfacevariable{units}{eenheden}
-\setinterfacevariable{unknown}{onbekend}
-\setinterfacevariable{unpacked}{vanelkaar}
-\setinterfacevariable{up}{omhoog}
-\setinterfacevariable{url}{url}
-\setinterfacevariable{used}{gebruikt}
-\setinterfacevariable{value}{waarde}
-\setinterfacevariable{vertical}{vertikaal}
-\setinterfacevariable{very}{zeer}
-\setinterfacevariable{verystrict}{zeerstreng}
-\setinterfacevariable{verytolerant}{zeersoepel}
-\setinterfacevariable{vfenced}{vfenced}
-\setinterfacevariable{vulgarfraction}{vulgarfraction}
-\setinterfacevariable{weak}{zwak}
-\setinterfacevariable{wednesday}{woensdag}
-\setinterfacevariable{week}{week}
-\setinterfacevariable{weekday}{weekdag}
-\setinterfacevariable{white}{wit}
-\setinterfacevariable{wide}{breed}
-\setinterfacevariable{width}{breedte}
-\setinterfacevariable{word}{woord}
-\setinterfacevariable{words}{words}
-\setinterfacevariable{xml}{xml}
-\setinterfacevariable{year}{jaar}
-\setinterfacevariable{yes}{ja}
-% definitions for interface constants for language nl
-%
-\setinterfaceconstant{action}{actie}
-\setinterfaceconstant{address}{adres}
-\setinterfaceconstant{after}{na}
-\setinterfaceconstant{afterhead}{kopna}
-\setinterfaceconstant{afterkey}{natoets}
-\setinterfaceconstant{aftersection}{nasectie}
-\setinterfaceconstant{align}{uitlijnen}
-\setinterfaceconstant{alignbottom}{alignbottom}
-\setinterfaceconstant{aligncharacter}{karakteruitlijnen}
-\setinterfaceconstant{alignmentcharacter}{uitlijnkarakter}
-\setinterfaceconstant{alignmentleftsample}{alignmentleftsample}
-\setinterfaceconstant{alignmentleftwidth}{alignmentleftwidth}
-\setinterfaceconstant{alignmentrightsample}{alignmentrightsample}
-\setinterfaceconstant{alignmentrightwidth}{alignmentrightwidth}
-\setinterfaceconstant{alignsymbol}{alignsymbol}
-\setinterfaceconstant{aligntitle}{titeluitlijnen}
-\setinterfaceconstant{alternative}{variant}
-\setinterfaceconstant{anchor}{anker}
-\setinterfaceconstant{anchoring}{verankering}
-\setinterfaceconstant{andtext}{andtext}
-\setinterfaceconstant{apa}{apa}
-\setinterfaceconstant{arguments}{argumenten}
-\setinterfaceconstant{arrow}{pijl}
-\setinterfaceconstant{artauthor}{artauthor}
-\setinterfaceconstant{artauthoretaldisplay}{artauthoretaldisplay}
-\setinterfaceconstant{artauthoretallimit}{artauthoretallimit}
-\setinterfaceconstant{artauthoretaltext}{artauthoretaltext}
-\setinterfaceconstant{artoffset}{artoffset}
-\setinterfaceconstant{at}{op}
-\setinterfaceconstant{author}{auteur}
-\setinterfaceconstant{authorconversion}{authorconversion}
-\setinterfaceconstant{authoretaldisplay}{authoretaldisplay}
-\setinterfaceconstant{authoretallimit}{authoretallimit}
-\setinterfaceconstant{authoretaltext}{authoretaltext}
-\setinterfaceconstant{auto}{auto}
-\setinterfaceconstant{autocase}{autocase}
-\setinterfaceconstant{autofile}{autofile}
-\setinterfaceconstant{autofocus}{autofocus}
-\setinterfaceconstant{autohang}{autohang}
-\setinterfaceconstant{autostrut}{autostrut}
-\setinterfaceconstant{autowidth}{autobreedte}
-\setinterfaceconstant{availableheight}{beschikbarehoogte}
-\setinterfaceconstant{availablewidth}{beschikbarebreedte}
-\setinterfaceconstant{axis}{assenstelsel}
-\setinterfaceconstant{background}{achtergrond}
-\setinterfaceconstant{backgroundcolor}{achtergrondkleur}
-\setinterfaceconstant{backgroundcorner}{achtergrondhoek}
-\setinterfaceconstant{backgrounddepth}{achtergronddiepte}
-\setinterfaceconstant{backgroundoffset}{achtergrondoffset}
-\setinterfaceconstant{backgroundradius}{achtergrondstraal}
-\setinterfaceconstant{backgroundscreen}{achtergrondraster}
-\setinterfaceconstant{backreference}{terugreferentie}
-\setinterfaceconstant{backspace}{rugwit}
-\setinterfaceconstant{balance}{balanceren}
-\setinterfaceconstant{before}{voor}
-\setinterfaceconstant{beforehead}{kopvoor}
-\setinterfaceconstant{beforesection}{voorsectie}
-\setinterfaceconstant{bet}{bet}
-\setinterfaceconstant{bidi}{bidi}
-\setinterfaceconstant{big}{groot}
-\setinterfaceconstant{blank}{blanko}
-\setinterfaceconstant{bleedoffset}{bleedoffset}
-\setinterfaceconstant{blockway}{blokwijze}
-\setinterfaceconstant{bodyfont}{korps}
-\setinterfaceconstant{boffset}{boffset}
-\setinterfaceconstant{boldfeatures}{boldfeatures}
-\setinterfaceconstant{boldfont}{boldfont}
-\setinterfaceconstant{bolditalicfeatures}{bolditalicfeatures}
-\setinterfaceconstant{bolditalicfont}{bolditalicfont}
-\setinterfaceconstant{boldslantedfeatures}{boldslantedfeatures}
-\setinterfaceconstant{boldslantedfont}{boldslantedfont}
-\setinterfaceconstant{bookmark}{bookmark}
-\setinterfaceconstant{bottom}{onder}
-\setinterfaceconstant{bottomafter}{bottomafter}
-\setinterfaceconstant{bottombefore}{bottombefore}
-\setinterfaceconstant{bottomcommand}{ondercommando}
-\setinterfaceconstant{bottomdistance}{onderafstand}
-\setinterfaceconstant{bottomframe}{onderkader}
-\setinterfaceconstant{bottomoffset}{onderoffset}
-\setinterfaceconstant{bottomspace}{bodemwit}
-\setinterfaceconstant{bottomstate}{onderstatus}
-\setinterfaceconstant{break}{break}
-\setinterfaceconstant{buffer}{buffer}
-\setinterfaceconstant{cache}{cache}
-\setinterfaceconstant{calculate}{bereken}
-\setinterfaceconstant{category}{categorie}
-\setinterfaceconstant{ccommand}{ccommando}
-\setinterfaceconstant{character}{character}
-\setinterfaceconstant{characters}{characters}
-\setinterfaceconstant{check}{check}
-\setinterfaceconstant{click}{klik}
-\setinterfaceconstant{clickin}{klikin}
-\setinterfaceconstant{clickout}{klikuit}
-\setinterfaceconstant{clipoffset}{clipoffset}
-\setinterfaceconstant{closeaction}{sluitactie}
-\setinterfaceconstant{closecommand}{sluitcommando}
-\setinterfaceconstant{closepage}{sluitpagina}
-\setinterfaceconstant{closepageaction}{sluitpaginaactie}
-\setinterfaceconstant{closesymbol}{sluitsymbool}
-\setinterfaceconstant{color}{kleur}
-\setinterfaceconstant{column}{kolom}
-\setinterfaceconstant{columndistance}{kolomafstand}
-\setinterfaceconstant{columns}{kolommen}
-\setinterfaceconstant{comma}{comma}
-\setinterfaceconstant{command}{commando}
-\setinterfaceconstant{commandafter}{nacommando}
-\setinterfaceconstant{commandbefore}{voorcommando}
-\setinterfaceconstant{commands}{commandos}
-\setinterfaceconstant{comment}{comment}
-\setinterfaceconstant{commentchar}{commentchar}
-\setinterfaceconstant{commentoffset}{commentoffset}
-\setinterfaceconstant{compact}{compact}
-\setinterfaceconstant{component}{component}
-\setinterfaceconstant{compoundhyphen}{koppelteken}
-\setinterfaceconstant{compress}{comprimeren}
-\setinterfaceconstant{compressdistance}{compressdistance}
-\setinterfaceconstant{compressmethod}{compressmethod}
-\setinterfaceconstant{compressseparator}{compressseparator}
-\setinterfaceconstant{compressstopper}{compressstopper}
-\setinterfaceconstant{concerns}{betreft}
-\setinterfaceconstant{connector}{connector}
-\setinterfaceconstant{continue}{doorgaan}
-\setinterfaceconstant{contrastcolor}{contrastkleur}
-\setinterfaceconstant{controls}{sturing}
-\setinterfaceconstant{conversion}{conversie}
-\setinterfaceconstant{convertfile}{converteerfile}
-\setinterfaceconstant{copies}{kopieen}
-\setinterfaceconstant{corner}{hoek}
-\setinterfaceconstant{coupling}{koppeling}
-\setinterfaceconstant{couplingway}{koppelwijze}
-\setinterfaceconstant{criterium}{criterium}
-\setinterfaceconstant{cropoffset}{cropoffset}
-\setinterfaceconstant{crossreference}{crossreference}
-\setinterfaceconstant{cssfile}{cssfile}
-\setinterfaceconstant{current}{huidige}
-\setinterfaceconstant{cutspace}{snijwit}
-\setinterfaceconstant{dash}{streep}
-\setinterfaceconstant{dat}{dat}
-\setinterfaceconstant{database}{database}
-\setinterfaceconstant{dataset}{dataset}
-\setinterfaceconstant{date}{datum}
-\setinterfaceconstant{deepnumbercommand}{diepnummercommando}
-\setinterfaceconstant{deeptextcommand}{dieptekstcommando}
-\setinterfaceconstant{default}{default}
-\setinterfaceconstant{define}{definieer}
-\setinterfaceconstant{delay}{wachttijd}
-\setinterfaceconstant{depth}{diepte}
-\setinterfaceconstant{depthcorrection}{dieptecorrectie}
-\setinterfaceconstant{direction}{richting}
-\setinterfaceconstant{directory}{directory}
-\setinterfaceconstant{display}{scherm}
-\setinterfaceconstant{displaythreshold}{displaythreshold}
-\setinterfaceconstant{distance}{afstand}
-\setinterfaceconstant{domain}{domain}
-\setinterfaceconstant{dot}{punt}
-\setinterfaceconstant{doublesided}{dubbelzijdig}
-\setinterfaceconstant{down}{down}
-\setinterfaceconstant{dummy}{dummy}
-\setinterfaceconstant{dx}{dx}
-\setinterfaceconstant{dy}{dy}
-\setinterfaceconstant{edge}{rand}
-\setinterfaceconstant{edgedistance}{randafstand}
-\setinterfaceconstant{editor}{editor}
-\setinterfaceconstant{editoretaldisplay}{editoretaldisplay}
-\setinterfaceconstant{editoretallimit}{editoretallimit}
-\setinterfaceconstant{editoretaltext}{editoretaltext}
-\setinterfaceconstant{empty}{leeg}
-\setinterfaceconstant{entities}{entities}
-\setinterfaceconstant{entries}{ingangen}
-\setinterfaceconstant{equalheight}{equalheight}
-\setinterfaceconstant{equalwidth}{equalwidth}
-\setinterfaceconstant{escape}{escape}
-\setinterfaceconstant{etaldisplay}{etaldisplay}
-\setinterfaceconstant{etallimit}{etallimit}
-\setinterfaceconstant{etaloption}{etaloption}
-\setinterfaceconstant{etaltext}{etaltext}
-\setinterfaceconstant{evenmargin}{evenmarge}
-\setinterfaceconstant{exact}{exact}
-\setinterfaceconstant{exitoffset}{exitoffset}
-\setinterfaceconstant{expansion}{expansie}
-\setinterfaceconstant{export}{exporteer}
-\setinterfaceconstant{extras}{extras}
-\setinterfaceconstant{factor}{factor}
-\setinterfaceconstant{fallback}{terugval}
-\setinterfaceconstant{fallbacks}{fallbacks}
-\setinterfaceconstant{family}{soort}
-\setinterfaceconstant{features}{features}
-\setinterfaceconstant{featureset}{featureset}
-\setinterfaceconstant{fences}{fences}
-\setinterfaceconstant{field}{veld}
-\setinterfaceconstant{fieldbackgroundcolor}{veldachtergrondkleur}
-\setinterfaceconstant{fieldframecolor}{veldkaderkleur}
-\setinterfaceconstant{fieldlayer}{veldlaag}
-\setinterfaceconstant{fieldoffset}{veldoffset}
-\setinterfaceconstant{file}{file}
-\setinterfaceconstant{filler}{filler}
-\setinterfaceconstant{filter}{filter}
-\setinterfaceconstant{filtercommand}{filtercommand}
-\setinterfaceconstant{finalnamesep}{finalnamesep}
-\setinterfaceconstant{finalpagesep}{finalpagesep}
-\setinterfaceconstant{finalpubsep}{finalpubsep}
-\setinterfaceconstant{first}{eerste}
-\setinterfaceconstant{firstnamesep}{firstnamesep}
-\setinterfaceconstant{firstpage}{eerstepagina}
-\setinterfaceconstant{focus}{focus}
-\setinterfaceconstant{focusin}{focusin}
-\setinterfaceconstant{focusoffset}{focusoffset}
-\setinterfaceconstant{focusout}{focusuit}
-\setinterfaceconstant{font}{font}
-\setinterfaceconstant{footer}{voet}
-\setinterfaceconstant{footerdistance}{voetafstand}
-\setinterfaceconstant{footerstate}{voetstatus}
-\setinterfaceconstant{force}{forceer}
-\setinterfaceconstant{foregroundcolor}{voorgrondkleur}
-\setinterfaceconstant{foregroundstyle}{voorgrondletter}
-\setinterfaceconstant{format}{formatteer}
-\setinterfaceconstant{fractions}{breuken}
-\setinterfaceconstant{frame}{kader}
-\setinterfaceconstant{framecolor}{kaderkleur}
-\setinterfaceconstant{framecorner}{kaderhoek}
-\setinterfaceconstant{framedepth}{kaderdiepte}
-\setinterfaceconstant{frameoffset}{kaderoffset}
-\setinterfaceconstant{frameradius}{kaderstraal}
-\setinterfaceconstant{frames}{hokjes}
-\setinterfaceconstant{freeregion}{vrijgebied}
-\setinterfaceconstant{from}{van}
-\setinterfaceconstant{functioncolor}{functioncolor}
-\setinterfaceconstant{functionstyle}{functionstyle}
-\setinterfaceconstant{get}{haal}
-\setinterfaceconstant{global}{globaal}
-\setinterfaceconstant{goodies}{goodies}
-\setinterfaceconstant{grid}{grid}
-\setinterfaceconstant{group}{group}
-\setinterfaceconstant{groupsuffix}{groupsuffix}
-\setinterfaceconstant{hang}{hang}
-\setinterfaceconstant{hcompact}{hcomprimeer}
-\setinterfaceconstant{headalign}{kopuitlijnen}
-\setinterfaceconstant{headcolor}{kopkleur}
-\setinterfaceconstant{headcommand}{kopcommando}
-\setinterfaceconstant{headconversion}{kopconversie}
-\setinterfaceconstant{header}{hoofd}
-\setinterfaceconstant{headerdistance}{hoofdafstand}
-\setinterfaceconstant{headerstate}{hoofdstatus}
-\setinterfaceconstant{headlabel}{koplabel}
-\setinterfaceconstant{headnumber}{kopnummer}
-\setinterfaceconstant{headseparator}{kopscheider}
-\setinterfaceconstant{headstyle}{kopletter}
-\setinterfaceconstant{height}{hoogte}
-\setinterfaceconstant{hfactor}{hfactor}
-\setinterfaceconstant{hfil}{hfil}
-\setinterfaceconstant{hidenumber}{hidenumber}
-\setinterfaceconstant{hoffset}{hoffset}
-\setinterfaceconstant{horizontal}{horizontaal}
-\setinterfaceconstant{horoffset}{rugoffset}
-\setinterfaceconstant{hyphen}{hyphen}
-\setinterfaceconstant{hyphens}{hyphens}
-\setinterfaceconstant{icommand}{icommando}
-\setinterfaceconstant{ignore}{ignore}
-\setinterfaceconstant{in}{in}
-\setinterfaceconstant{inbetween}{tussen}
-\setinterfaceconstant{increment}{verhoog}
-\setinterfaceconstant{incrementnumber}{verhoognummer}
-\setinterfaceconstant{indenting}{inspringen}
-\setinterfaceconstant{indentlist}{indentlist}
-\setinterfaceconstant{indentnext}{springvolgendein}
-\setinterfaceconstant{index}{index}
-\setinterfaceconstant{indicator}{aanduiding}
-\setinterfaceconstant{initialsep}{initialsep}
-\setinterfaceconstant{inlinethreshold}{inlinethreshold}
-\setinterfaceconstant{inner}{binnen}
-\setinterfaceconstant{innermargin}{binnenmarge}
-\setinterfaceconstant{inputfile}{inputfile}
-\setinterfaceconstant{insidesection}{binnensectie}
-\setinterfaceconstant{instance}{instance}
-\setinterfaceconstant{intent}{intent}
-\setinterfaceconstant{interaction}{interactie}
-\setinterfaceconstant{interlinespace}{interlinie}
-\setinterfaceconstant{internalgrid}{interngrid}
-\setinterfaceconstant{italicfeatures}{italicfeatures}
-\setinterfaceconstant{italicfont}{italicfont}
-\setinterfaceconstant{itemalign}{itemuitlijnen}
-\setinterfaceconstant{items}{items}
-\setinterfaceconstant{joiners}{joiners}
-\setinterfaceconstant{journalconversion}{journalconversion}
-\setinterfaceconstant{juniorsep}{juniorsep}
-\setinterfaceconstant{keeptogether}{keeptogether}
-\setinterfaceconstant{ken}{ken}
-\setinterfaceconstant{keyexpansion}{sleutelexpansie}
-\setinterfaceconstant{keys}{sleutels}
-\setinterfaceconstant{keyword}{trefwoord}
-\setinterfaceconstant{label}{label}
-\setinterfaceconstant{labelalternative}{labelvariant}
-\setinterfaceconstant{labelcolor}{labelkleur}
-\setinterfaceconstant{labeloffset}{labeloffset}
-\setinterfaceconstant{labelstyle}{labelletter}
-\setinterfaceconstant{language}{language}
-\setinterfaceconstant{last}{last}
-\setinterfaceconstant{lastnamesep}{lastnamesep}
-\setinterfaceconstant{lastpage}{laatstepagina}
-\setinterfaceconstant{lastpagesep}{lastpagesep}
-\setinterfaceconstant{lastpubsep}{lastpubsep}
-\setinterfaceconstant{layout}{layout}
-\setinterfaceconstant{left}{links}
-\setinterfaceconstant{leftcolor}{linkerkleur}
-\setinterfaceconstant{leftcompoundhyphen}{linkerkoppelteken}
-\setinterfaceconstant{leftedge}{linkerrand}
-\setinterfaceconstant{leftedgedistance}{linkerrandafstand}
-\setinterfaceconstant{leftframe}{linkerkader}
-\setinterfaceconstant{lefthyphen}{lefthyphen}
-\setinterfaceconstant{leftmargin}{linkermarge}
-\setinterfaceconstant{leftmargindistance}{linkermargeafstand}
-\setinterfaceconstant{leftoffset}{linkeroffset}
-\setinterfaceconstant{leftquotation}{linkercitaat}
-\setinterfaceconstant{leftquote}{linkerciteer}
-\setinterfaceconstant{leftsample}{leftsample}
-\setinterfaceconstant{leftsentence}{linkerzin}
-\setinterfaceconstant{leftspeech}{linkeruitspraak}
-\setinterfaceconstant{leftstyle}{linkerletter}
-\setinterfaceconstant{leftsubsentence}{linkersubzin}
-\setinterfaceconstant{lefttext}{linkertekst}
-\setinterfaceconstant{leftwidth}{linkerbreedte}
-\setinterfaceconstant{leftwords}{leftwords}
-\setinterfaceconstant{less}{minder}
-\setinterfaceconstant{level}{niveau}
-\setinterfaceconstant{levels}{niveaus}
-\setinterfaceconstant{limittext}{limiettekst}
-\setinterfaceconstant{line}{regel}
-\setinterfaceconstant{linecorrection}{regelcorrectie}
-\setinterfaceconstant{linedirection}{regelrichting}
-\setinterfaceconstant{lines}{regels}
-\setinterfaceconstant{list}{lijst}
-\setinterfaceconstant{listtext}{lijsttekst}
-\setinterfaceconstant{local}{lokaal}
-\setinterfaceconstant{location}{plaats}
-\setinterfaceconstant{loffset}{loffset}
-\setinterfaceconstant{logo}{logo}
-\setinterfaceconstant{logos}{logos}
-\setinterfaceconstant{marcolor}{markleur}
-\setinterfaceconstant{margin}{marge}
-\setinterfaceconstant{margindistance}{margeafstand}
-\setinterfaceconstant{marginedge}{kantlijn}
-\setinterfaceconstant{marginedgetext}{kantlijntekst}
-\setinterfaceconstant{margintext}{margetekst}
-\setinterfaceconstant{mark}{kernmerk}
-\setinterfaceconstant{marking}{markering}
-\setinterfaceconstant{marstyle}{marletter}
-\setinterfaceconstant{mask}{masker}
-\setinterfaceconstant{mathclass}{mathclass}
-\setinterfaceconstant{mathlimits}{mathlimits}
-\setinterfaceconstant{mathstyle}{mathstyle}
-\setinterfaceconstant{max}{max}
-\setinterfaceconstant{maxdepth}{maxdepth}
-\setinterfaceconstant{maxheight}{maxhoogte}
-\setinterfaceconstant{maxwidth}{maxbreedte}
-\setinterfaceconstant{maybeyear}{maybeyear}
-\setinterfaceconstant{menu}{menu}
-\setinterfaceconstant{method}{methode}
-\setinterfaceconstant{middle}{midden}
-\setinterfaceconstant{middlecolor}{middenkleur}
-\setinterfaceconstant{middlecommand}{middencommando}
-\setinterfaceconstant{middlespeech}{middenuitspraak}
-\setinterfaceconstant{middlestyle}{middenletter}
-\setinterfaceconstant{middletext}{middentekst}
-\setinterfaceconstant{middlewidth}{middenbreedte}
-\setinterfaceconstant{midsentence}{middenzin}
-\setinterfaceconstant{min}{min}
-\setinterfaceconstant{mindepth}{mindiepte}
-\setinterfaceconstant{minheight}{minhoogte}
-\setinterfaceconstant{minwidth}{minbreedte}
-\setinterfaceconstant{moffset}{moffset}
-\setinterfaceconstant{monthconversion}{maandconversie}
-\setinterfaceconstant{more}{meer}
-\setinterfaceconstant{mpdepth}{mpdiepte}
-\setinterfaceconstant{mpheight}{mphoogte}
-\setinterfaceconstant{mpoffset}{mpoffset}
-\setinterfaceconstant{mpwidth}{mpbreedte}
-\setinterfaceconstant{n}{n}
-\setinterfaceconstant{name}{naam}
-\setinterfaceconstant{namesep}{namesep}
-\setinterfaceconstant{nbottom}{nonder}
-\setinterfaceconstant{nc}{nc}
-\setinterfaceconstant{next}{volgende}
-\setinterfaceconstant{nextleft}{nextleft}
-\setinterfaceconstant{nextleftquotation}{nextleftquotation}
-\setinterfaceconstant{nextright}{nextright}
-\setinterfaceconstant{nextrightquotation}{nextrightquotation}
-\setinterfaceconstant{nl}{nl}
-\setinterfaceconstant{nleft}{nlinks}
-\setinterfaceconstant{nlines}{nregels}
-\setinterfaceconstant{norm}{norm}
-\setinterfaceconstant{note}{noot}
-\setinterfaceconstant{notes}{noten}
-\setinterfaceconstant{nr}{nr}
-\setinterfaceconstant{nright}{nrechts}
-\setinterfaceconstant{ntop}{nboven}
-\setinterfaceconstant{number}{nummer}
-\setinterfaceconstant{numberalign}{nummeruitlijnen}
-\setinterfaceconstant{numbercolor}{nummerkleur}
-\setinterfaceconstant{numbercommand}{nummercommando}
-\setinterfaceconstant{numberconversion}{numberconversion}
-\setinterfaceconstant{numberconversionset}{numberconversionset}
-\setinterfaceconstant{numberdistance}{nummerafstand}
-\setinterfaceconstant{numbering}{nummeren}
-\setinterfaceconstant{numberorder}{numberorder}
-\setinterfaceconstant{numberprefix}{numberprefix}
-\setinterfaceconstant{numbersegments}{numbersegments}
-\setinterfaceconstant{numberseparator}{nummerscheider}
-\setinterfaceconstant{numberseparatorset}{numberseparatorset}
-\setinterfaceconstant{numberset}{numberset}
-\setinterfaceconstant{numberstarter}{numberstarter}
-\setinterfaceconstant{numberstopper}{numberstopper}
-\setinterfaceconstant{numberstrut}{nummerstrut}
-\setinterfaceconstant{numberstyle}{nummerletter}
-\setinterfaceconstant{numberwidth}{nummerbreedte}
-\setinterfaceconstant{nx}{nx}
-\setinterfaceconstant{ny}{ny}
-\setinterfaceconstant{object}{object}
-\setinterfaceconstant{obstruction}{blokkade}
-\setinterfaceconstant{oddmargin}{onevenmarge}
-\setinterfaceconstant{offset}{offset}
-\setinterfaceconstant{openaction}{openactie}
-\setinterfaceconstant{openpage}{openpagina}
-\setinterfaceconstant{openpageaction}{openpaginaactie}
-\setinterfaceconstant{openup}{openup}
-\setinterfaceconstant{opticalsize}{opticalsize}
-\setinterfaceconstant{option}{optie}
-\setinterfaceconstant{order}{volgorde}
-\setinterfaceconstant{orientation}{orientatie}
-\setinterfaceconstant{otherstext}{otherstext}
-\setinterfaceconstant{outermargin}{buitenmarge}
-\setinterfaceconstant{overprint}{overprint}
-\setinterfaceconstant{ownerpassword}{ownerpassword}
-\setinterfaceconstant{ownnumber}{eigennummer}
-\setinterfaceconstant{packcriterium}{opelkaarcriterium}
-\setinterfaceconstant{page}{pagina}
-\setinterfaceconstant{pageboundaries}{paginaovergangen}
-\setinterfaceconstant{pagecolor}{paginakleur}
-\setinterfaceconstant{pagecolormodel}{paginakleurmodel}
-\setinterfaceconstant{pagecommand}{paginacommando}
-\setinterfaceconstant{pageconnector}{pageconnector}
-\setinterfaceconstant{pageconversion}{pageconversion}
-\setinterfaceconstant{pageconversionset}{pageconversionset}
-\setinterfaceconstant{pageleft}{pageleft}
-\setinterfaceconstant{pagemethod}{paginamethode}
-\setinterfaceconstant{pagenumber}{paginanummer}
-\setinterfaceconstant{pageprefix}{pageprefix}
-\setinterfaceconstant{pageprefixconnector}{pageprefixconnector}
-\setinterfaceconstant{pageprefixconversion}{pageprefixconversion}
-\setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset}
-\setinterfaceconstant{pageprefixsegments}{pageprefixsegments}
-\setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset}
-\setinterfaceconstant{pageprefixset}{pageprefixset}
-\setinterfaceconstant{pageprefixstarter}{pageprefixstarter}
-\setinterfaceconstant{pageprefixstopper}{pageprefixstopper}
-\setinterfaceconstant{pageright}{pageright}
-\setinterfaceconstant{pagesegments}{pagesegments}
-\setinterfaceconstant{pagesep}{pagesep}
-\setinterfaceconstant{pageseparatorset}{pageseparatorset}
-\setinterfaceconstant{pageset}{pageset}
-\setinterfaceconstant{pagestarter}{pagestarter}
-\setinterfaceconstant{pagestate}{paginastatus}
-\setinterfaceconstant{pagestopper}{pagestopper}
-\setinterfaceconstant{pagestyle}{paginaletter}
-\setinterfaceconstant{palet}{palet}
-\setinterfaceconstant{paper}{papier}
-\setinterfaceconstant{paragraph}{alinea}
-\setinterfaceconstant{period}{period}
-\setinterfaceconstant{place}{plaatsen}
-\setinterfaceconstant{placehead}{plaatskop}
-\setinterfaceconstant{placeholder}{placeholder}
-\setinterfaceconstant{placestopper}{plaatsafsluiter}
-\setinterfaceconstant{position}{positie}
-\setinterfaceconstant{prefix}{prefix}
-\setinterfaceconstant{prefixconnector}{prefixconnector}
-\setinterfaceconstant{prefixconversion}{prefixconversion}
-\setinterfaceconstant{prefixconversionset}{prefixconversionset}
-\setinterfaceconstant{prefixsegments}{prefixsegments}
-\setinterfaceconstant{prefixseparatorset}{prefixseparatorset}
-\setinterfaceconstant{prefixset}{prefixset}
-\setinterfaceconstant{prefixstarter}{prefixstarter}
-\setinterfaceconstant{prefixstopper}{prefixstopper}
-\setinterfaceconstant{preset}{preset}
-\setinterfaceconstant{preview}{preview}
-\setinterfaceconstant{previous}{vorige}
-\setinterfaceconstant{previousnumber}{vorigenummer}
-\setinterfaceconstant{print}{print}
-\setinterfaceconstant{printable}{printbaar}
-\setinterfaceconstant{process}{proces}
-\setinterfaceconstant{profile}{profile}
-\setinterfaceconstant{properties}{properties}
-\setinterfaceconstant{pubsep}{pubsep}
-\setinterfaceconstant{quotechar}{quotechar}
-\setinterfaceconstant{radius}{straal}
-\setinterfaceconstant{random}{willekeur}
-\setinterfaceconstant{range}{bereik}
-\setinterfaceconstant{reduction}{reductie}
-\setinterfaceconstant{ref}{ref}
-\setinterfaceconstant{refcommand}{refcommand}
-\setinterfaceconstant{reference}{referentie}
-\setinterfaceconstant{referencemethod}{referencemethod}
-\setinterfaceconstant{referenceprefix}{referenceprefix}
-\setinterfaceconstant{referencetext}{referencetext}
-\setinterfaceconstant{referencing}{refereren}
-\setinterfaceconstant{region}{gebied}
-\setinterfaceconstant{regionin}{gebiedin}
-\setinterfaceconstant{regionout}{gebieduit}
-\setinterfaceconstant{register}{register}
-\setinterfaceconstant{regularfeatures}{regularfeatures}
-\setinterfaceconstant{regularfont}{regularfont}
-\setinterfaceconstant{renderingsetup}{renderingsetup}
-\setinterfaceconstant{repeat}{herhaal}
-\setinterfaceconstant{reset}{reset}
-\setinterfaceconstant{resetnumber}{resetnummer}
-\setinterfaceconstant{resolution}{resolutie}
-\setinterfaceconstant{resources}{resources}
-\setinterfaceconstant{reverse}{omgekeerd}
-\setinterfaceconstant{right}{rechts}
-\setinterfaceconstant{rightchars}{rightchars}
-\setinterfaceconstant{rightcolor}{rechterkleur}
-\setinterfaceconstant{rightcompoundhyphen}{rechterkoppelteken}
-\setinterfaceconstant{rightedge}{rechterrand}
-\setinterfaceconstant{rightedgedistance}{rechterrandafstand}
-\setinterfaceconstant{rightframe}{rechterkader}
-\setinterfaceconstant{righthyphen}{righthyphen}
-\setinterfaceconstant{rightmargin}{rechtermarge}
-\setinterfaceconstant{rightmargindistance}{rechtermargeafstand}
-\setinterfaceconstant{rightoffset}{rechteroffset}
-\setinterfaceconstant{rightquotation}{rechtercitaat}
-\setinterfaceconstant{rightquote}{rechterciteer}
-\setinterfaceconstant{rightsample}{rightsample}
-\setinterfaceconstant{rightsentence}{rechterzin}
-\setinterfaceconstant{rightspeech}{rechteruitspraak}
-\setinterfaceconstant{rightstyle}{rechterletter}
-\setinterfaceconstant{rightsubsentence}{rechtersubzin}
-\setinterfaceconstant{righttext}{rechtertekst}
-\setinterfaceconstant{rightwidth}{rechterbreedte}
-\setinterfaceconstant{rightwords}{rightwords}
-\setinterfaceconstant{roffset}{roffset}
-\setinterfaceconstant{rotation}{rotatie}
-\setinterfaceconstant{rule}{lijn}
-\setinterfaceconstant{rulecolor}{lijnkleur}
-\setinterfaceconstant{rulecommand}{lijncommando}
-\setinterfaceconstant{rulethickness}{lijndikte}
-\setinterfaceconstant{samepage}{zelfdepagina}
-\setinterfaceconstant{sample}{monster}
-\setinterfaceconstant{samplesize}{samplesize}
-\setinterfaceconstant{saveinlist}{saveinlist}
-\setinterfaceconstant{scale}{schaal}
-\setinterfaceconstant{scope}{scope}
-\setinterfaceconstant{screen}{raster}
-\setinterfaceconstant{section}{sectie}
-\setinterfaceconstant{sectionblock}{sectionblock}
-\setinterfaceconstant{sectionconversion}{sectionconversion}
-\setinterfaceconstant{sectionconversionset}{sectionconversionset}
-\setinterfaceconstant{sectionnumber}{sectienummer}
-\setinterfaceconstant{sectionresetset}{sectionresetset}
-\setinterfaceconstant{sectionsegments}{sectionsegments}
-\setinterfaceconstant{sectionseparatorset}{sectionseparatorset}
-\setinterfaceconstant{sectionset}{sectionset}
-\setinterfaceconstant{sectionstarter}{sectionstarter}
-\setinterfaceconstant{sectionstopper}{sectionstopper}
-\setinterfaceconstant{separator}{scheider}
-\setinterfaceconstant{separatorcolor}{scheiderkleur}
-\setinterfaceconstant{separatorstyle}{scheiderletter}
-\setinterfaceconstant{set}{set}
-\setinterfaceconstant{setups}{setups}
-\setinterfaceconstant{shrink}{krimp}
-\setinterfaceconstant{side}{zij}
-\setinterfaceconstant{sidealign}{zijuitlijnen}
-\setinterfaceconstant{sidemethod}{zijmethode}
-\setinterfaceconstant{sidespaceafter}{zijnawit}
-\setinterfaceconstant{sidespacebefore}{zijvoorwit}
-\setinterfaceconstant{sidespaceinbetween}{zijtussenwit}
-\setinterfaceconstant{sidethreshold}{sidethreshold}
-\setinterfaceconstant{sign}{teken}
-\setinterfaceconstant{simplecommand}{simpelcommando}
-\setinterfaceconstant{size}{formaat}
-\setinterfaceconstant{slantedfeatures}{slantedfeatures}
-\setinterfaceconstant{slantedfont}{slantedfont}
-\setinterfaceconstant{small}{klein}
-\setinterfaceconstant{smallcapsfeatures}{smallcapsfeatures}
-\setinterfaceconstant{smallcapsfont}{smallcapsfont}
-\setinterfaceconstant{solution}{oplossing}
-\setinterfaceconstant{sort}{sort}
-\setinterfaceconstant{sorttype}{sortering}
-\setinterfaceconstant{source}{bron}
-\setinterfaceconstant{space}{spatie}
-\setinterfaceconstant{spaceafter}{nawit}
-\setinterfaceconstant{spaceafterside}{witnazij}
-\setinterfaceconstant{spacebefore}{voorwit}
-\setinterfaceconstant{spacebeforeside}{witvoorzij}
-\setinterfaceconstant{spaceinbetween}{tussenwit}
-\setinterfaceconstant{spacing}{spatiering}
-\setinterfaceconstant{specification}{specification}
-\setinterfaceconstant{split}{splitsen}
-\setinterfaceconstant{splitcolor}{splitskleur}
-\setinterfaceconstant{splitmethod}{splitsmethode}
-\setinterfaceconstant{splitoffset}{splitsoffset}
-\setinterfaceconstant{spot}{spot}
-\setinterfaceconstant{stack}{stapel}
-\setinterfaceconstant{stackname}{stapelnaam}
-\setinterfaceconstant{start}{start}
-\setinterfaceconstant{starter}{opener}
-\setinterfaceconstant{state}{status}
-\setinterfaceconstant{step}{stap}
-\setinterfaceconstant{stop}{stop}
-\setinterfaceconstant{stopper}{afsluiter}
-\setinterfaceconstant{stretch}{rek}
-\setinterfaceconstant{strip}{strip}
-\setinterfaceconstant{strut}{strut}
-\setinterfaceconstant{style}{letter}
-\setinterfaceconstant{stylealternative}{stylevariant}
-\setinterfaceconstant{sub}{sub}
-\setinterfaceconstant{subtitle}{subtitel}
-\setinterfaceconstant{suffix}{suffix}
-\setinterfaceconstant{suffixseparator}{suffixscheider}
-\setinterfaceconstant{suffixstopper}{suffixafsluiter}
-\setinterfaceconstant{surnamefirstnamesep}{surnamefirstnamesep}
-\setinterfaceconstant{surnameinitialsep}{surnameinitialsep}
-\setinterfaceconstant{surnamesep}{surnamesep}
-\setinterfaceconstant{svgstyle}{svgstyle}
-\setinterfaceconstant{sx}{sx}
-\setinterfaceconstant{sy}{sy}
-\setinterfaceconstant{symalign}{symuitlijnen}
-\setinterfaceconstant{symbol}{symbool}
-\setinterfaceconstant{symbolcommand}{symbolcommand}
-\setinterfaceconstant{symbolset}{symboolset}
-\setinterfaceconstant{symcolor}{symkleur}
-\setinterfaceconstant{symstyle}{symletter}
-\setinterfaceconstant{synonym}{synoniem}
-\setinterfaceconstant{synonymcolor}{synoniemkleur}
-\setinterfaceconstant{synonymcommand}{synoniemcommando}
-\setinterfaceconstant{synonymstyle}{synoniemletter}
-\setinterfaceconstant{tab}{tab}
-\setinterfaceconstant{text}{tekst}
-\setinterfaceconstant{textalign}{textalign}
-\setinterfaceconstant{textcolor}{tekstkleur}
-\setinterfaceconstant{textcommand}{tekstcommando}
-\setinterfaceconstant{textdistance}{tekstafstand}
-\setinterfaceconstant{textheight}{teksthoogte}
-\setinterfaceconstant{textlayer}{tekstlaag}
-\setinterfaceconstant{textmargin}{tekstmarge}
-\setinterfaceconstant{textmethod}{tekstmethode}
-\setinterfaceconstant{textseparator}{tekstscheider}
-\setinterfaceconstant{textsize}{tekstformaat}
-\setinterfaceconstant{textstate}{tekststatus}
-\setinterfaceconstant{textstyle}{tekstletter}
-\setinterfaceconstant{textwidth}{tekstbreedte}
-\setinterfaceconstant{threshold}{threshold}
-\setinterfaceconstant{time}{tijd}
-\setinterfaceconstant{title}{titel}
-\setinterfaceconstant{titlecolor}{titelkleur}
-\setinterfaceconstant{titlecommand}{titelcommando}
-\setinterfaceconstant{titledistance}{titelafstand}
-\setinterfaceconstant{titleleft}{titellinks}
-\setinterfaceconstant{titleright}{titelrechts}
-\setinterfaceconstant{titlestrut}{titelstrut}
-\setinterfaceconstant{titlestyle}{titelletter}
-\setinterfaceconstant{to}{aan}
-\setinterfaceconstant{toffset}{toffset}
-\setinterfaceconstant{tolerance}{tolerantie}
-\setinterfaceconstant{top}{boven}
-\setinterfaceconstant{topcommand}{bovencommando}
-\setinterfaceconstant{topdistance}{bovenafstand}
-\setinterfaceconstant{topframe}{bovenkader}
-\setinterfaceconstant{topoffset}{bovenoffset}
-\setinterfaceconstant{topspace}{kopwit}
-\setinterfaceconstant{topstate}{bovenstatus}
-\setinterfaceconstant{totalnumber}{totalnumber}
-\setinterfaceconstant{transform}{transformatie}
-\setinterfaceconstant{translate}{translate}
-\setinterfaceconstant{trimoffset}{trimoffset}
-\setinterfaceconstant{type}{type}
-\setinterfaceconstant{unit}{eenheid}
-\setinterfaceconstant{unknownreference}{onbekendereferentie}
-\setinterfaceconstant{up}{up}
-\setinterfaceconstant{urlalternative}{urlvariant}
-\setinterfaceconstant{urlspace}{urlspatie}
-\setinterfaceconstant{userpassword}{userpassword}
-\setinterfaceconstant{validate}{valideer}
-\setinterfaceconstant{values}{waarden}
-\setinterfaceconstant{vcommand}{vcommando}
-\setinterfaceconstant{vcompact}{vcomprimeer}
-\setinterfaceconstant{vector}{vector}
-\setinterfaceconstant{veroffset}{kopoffset}
-\setinterfaceconstant{vertical}{vertikaal}
-\setinterfaceconstant{vfactor}{vfactor}
-\setinterfaceconstant{vfil}{vfil}
-\setinterfaceconstant{viewerprefix}{viewerprefix}
-\setinterfaceconstant{voffset}{voffset}
-\setinterfaceconstant{vonsep}{vonsep}
-\setinterfaceconstant{way}{wijze}
-\setinterfaceconstant{wfactor}{bfactor}
-\setinterfaceconstant{white}{wit}
-\setinterfaceconstant{width}{breedte}
-\setinterfaceconstant{words}{words}
-\setinterfaceconstant{xanchor}{xanker}
-\setinterfaceconstant{xfactor}{xfactor}
-\setinterfaceconstant{xhtml}{xhtml}
-\setinterfaceconstant{xmax}{xmax}
-\setinterfaceconstant{xmlsetup}{xmlsetup}
-\setinterfaceconstant{xoffset}{xoffset}
-\setinterfaceconstant{xscale}{xschaal}
-\setinterfaceconstant{xstep}{xstap}
-\setinterfaceconstant{yanchor}{yanker}
-\setinterfaceconstant{yfactor}{yfactor}
-\setinterfaceconstant{ymax}{ymax}
-\setinterfaceconstant{yoffset}{yoffset}
-\setinterfaceconstant{yscale}{yschaal}
-\setinterfaceconstant{ystep}{ystap}
-% definitions for interface elements for language nl
-%
-\setinterfaceelement{answerlines}{antwoordregels}
-\setinterfaceelement{answerspace}{antwoordruimte}
-\setinterfaceelement{begin}{beginvan}
-\setinterfaceelement{complete}{volledige}
-\setinterfaceelement{coupled}{gekoppelde}
-\setinterfaceelement{currentlocal}{huidigelokale}
-\setinterfaceelement{end}{eindvan}
-\setinterfaceelement{endsetup}{in}
-\setinterfaceelement{get}{haal}
-\setinterfaceelement{increment}{verhoog}
-\setinterfaceelement{list}{lijst}
-\setinterfaceelement{listof}{lijstmet}
-\setinterfaceelement{load}{laad}
-\setinterfaceelement{local}{lokale}
-\setinterfaceelement{makeup}{opmaak}
-\setinterfaceelement{next}{volgende}
-\setinterfaceelement{place}{plaats}
-\setinterfaceelement{previous}{vorige}
-\setinterfaceelement{previouslocal}{vorigelokale}
-\setinterfaceelement{reserve}{reserveer}
-\setinterfaceelement{see}{zie}
-\setinterfaceelement{setup}{stel}
-\setinterfaceelement{start}{start}
-\setinterfaceelement{stop}{stop}
-\setinterfaceelement{text}{tekst}
-\setinterfaceelement{type}{type}
-% definitions for interface commands for language nl
-%
-\setinterfacecommand{Character}{Letter}
-\setinterfacecommand{Characters}{Letters}
-\setinterfacecommand{MONTH}{MAAND}
-\setinterfacecommand{Numbers}{Cijfers}
-\setinterfacecommand{Romannumerals}{Romeins}
-\setinterfacecommand{SmallCapped}{Kap}
-\setinterfacecommand{SmallCaps}{Kaps}
-\setinterfacecommand{WEEKDAY}{WEEKDAG}
-\setinterfacecommand{WORD}{WOORD}
-\setinterfacecommand{WORDS}{WOORDEN}
-\setinterfacecommand{Word}{Woord}
-\setinterfacecommand{Words}{Woorden}
-\setinterfacecommand{about}{about}
-\setinterfacecommand{adaptfontfeature}{adaptfontfeature}
-\setinterfacecommand{adaptlayout}{paslayoutaan}
-\setinterfacecommand{addfeature}{addfeature}
-\setinterfacecommand{alignbottom}{alignbottom}
-\setinterfacecommand{aligned}{aligned}
-\setinterfacecommand{alignedbox}{alignedbox}
-\setinterfacecommand{alignedline}{alignedline}
-\setinterfacecommand{alignhere}{alignhere}
-\setinterfacecommand{alignment}{uitlijnen}
-\setinterfacecommand{alignmentcharacter}{alignmentcharacter}
-\setinterfacecommand{applytocharacters}{applytocharacters}
-\setinterfacecommand{applytofirstcharacter}{applytofirstcharacter}
-\setinterfacecommand{arg}{arg}
-\setinterfacecommand{at}{op}
-\setinterfacecommand{atleftmargin}{oplinkermarge}
-\setinterfacecommand{atpage}{oppagina}
-\setinterfacecommand{atrightmargin}{oprechtermarge}
-\setinterfacecommand{background}{achtergrond}
-\setinterfacecommand{backspace}{rugwit}
-\setinterfacecommand{blackrule}{blokje}
-\setinterfacecommand{blackrules}{blokjes}
-\setinterfacecommand{blank}{blanko}
-\setinterfacecommand{bookmark}{bookmark}
-\setinterfacecommand{bottombox}{bottombox}
-\setinterfacecommand{bottomdistance}{onderafstand}
-\setinterfacecommand{bottomheight}{onderhoogte}
-\setinterfacecommand{bottomleftbox}{bottomleftbox}
-\setinterfacecommand{bottomrightbox}{bottomrightbox}
-\setinterfacecommand{bottomspace}{bodemwit}
-\setinterfacecommand{buildtextbottomdot}{buildtextbottomdot}
-\setinterfacecommand{but}{but}
-\setinterfacecommand{button}{button}
-\setinterfacecommand{bypassblocks}{passeerblokken}
-\setinterfacecommand{character}{letter}
-\setinterfacecommand{characters}{letters}
-\setinterfacecommand{chem}{chem}
-\setinterfacecommand{clip}{clip}
-\setinterfacecommand{clonefield}{kloonveld}
-\setinterfacecommand{color}{kleur}
-\setinterfacecommand{colorbar}{kleurenbalk}
-\setinterfacecommand{colorvalue}{kleurwaarde}
-\setinterfacecommand{column}{kolom}
-\setinterfacecommand{comparecolorgroup}{vergelijkkleurgroep}
-\setinterfacecommand{comparepalet}{vergelijkpalet}
-\setinterfacecommand{completepagenumber}{volledigepaginanummer}
-\setinterfacecommand{completeregister}{volledigregister}
-\setinterfacecommand{component}{onderdeel}
-\setinterfacecommand{convertnumber}{converteernummer}
-\setinterfacecommand{copyfield}{copieerveld}
-\setinterfacecommand{correctwhitespace}{corrigeerwitruimte}
-\setinterfacecommand{coupledocument}{koppeldocument}
-\setinterfacecommand{couplemarking}{koppelmarkering}
-\setinterfacecommand{couplepage}{koppelpagina}
-\setinterfacecommand{couplepaper}{koppelpapier}
-\setinterfacecommand{coupleregister}{koppelregister}
-\setinterfacecommand{crlf}{crlf}
-\setinterfacecommand{currentdate}{huidigedatum}
-\setinterfacecommand{currentheadnumber}{huidigekopnummer}
-\setinterfacecommand{cutspace}{snijwit}
-\setinterfacecommand{date}{datum}
-\setinterfacecommand{decouplemarking}{ontkoppelmarkering}
-\setinterfacecommand{decrementnumber}{verlaagnummer}
-\setinterfacecommand{define}{definieer}
-\setinterfacecommand{defineaccent}{definieeraccent}
-\setinterfacecommand{defineblank}{definieerblanko}
-\setinterfacecommand{defineblock}{definieerblok}
-\setinterfacecommand{definebodyfont}{definieerkorps}
-\setinterfacecommand{definebodyfontenvironment}{definieerkorpsomgeving}
-\setinterfacecommand{definebodyfontswitch}{definebodyfontswitch}
-\setinterfacecommand{definebuffer}{definieerbuffer}
-\setinterfacecommand{definecharacter}{definieerkarakter}
-\setinterfacecommand{definecharacterkerning}{definecharacterkerning}
-\setinterfacecommand{definecharacterspacing}{definecharacterspacing}
-\setinterfacecommand{definecolor}{definieerkleur}
-\setinterfacecommand{definecolorgroup}{definieerkleurgroep}
-\setinterfacecommand{definecolumnbreak}{definieerkolomovergang}
-\setinterfacecommand{definecolumnset}{definieerkolomgroep}
-\setinterfacecommand{definecombination}{definieercombinatie}
-\setinterfacecommand{definecombinedlist}{definieersamengesteldelijst}
-\setinterfacecommand{definecommand}{definieercommando}
-\setinterfacecommand{defineconversion}{definieerconversie}
-\setinterfacecommand{definedescription}{doordefinieren}
-\setinterfacecommand{definedfont}{definedfont}
-\setinterfacecommand{defineenumeration}{doornummeren}
-\setinterfacecommand{definefallbackfamily}{definefallbackfamily}
-\setinterfacecommand{definefield}{definieerveld}
-\setinterfacecommand{definefieldstack}{definieerveldstapel}
-\setinterfacecommand{definefiguresymbol}{definieerfiguursymbool}
-\setinterfacecommand{definefilefallback}{definefilefallback}
-\setinterfacecommand{definefirstline}{definefirstline}
-\setinterfacecommand{definefloat}{definieerplaatsblok}
-\setinterfacecommand{definefont}{definieerfont}
-\setinterfacecommand{definefontalternative}{definefontalternative}
-\setinterfacecommand{definefontfallback}{definefontfallback}
-\setinterfacecommand{definefontfamily}{definefontfamily}
-\setinterfacecommand{definefontfamilypreset}{definefontfamilypreset}
-\setinterfacecommand{definefontfeature}{definefontfeature}
-\setinterfacecommand{definefontfile}{definefontfile}
-\setinterfacecommand{definefontsize}{definefontsize}
-\setinterfacecommand{definefontsolution}{definefontsolution}
-\setinterfacecommand{definefontstyle}{definieerfontstijl}
-\setinterfacecommand{definefontsynonym}{definieerfontsynoniem}
-\setinterfacecommand{defineframed}{definieeromlijnd}
-\setinterfacecommand{defineframedtext}{definieerkadertekst}
-\setinterfacecommand{definefrozenfont}{definefrozenfont}
-\setinterfacecommand{definehbox}{definieerhbox}
-\setinterfacecommand{definehead}{definieerkop}
-\setinterfacecommand{definehyphenationfeatures}{definehyphenationfeatures}
-\setinterfacecommand{defineindentedtext}{definieeringesprongentext}
-\setinterfacecommand{defineinmargin}{definieerinmarge}
-\setinterfacecommand{defineinteractionmenu}{definieerinteractiemenu}
-\setinterfacecommand{defineitemgroup}{definieeritemgroep}
-\setinterfacecommand{defineitems}{defineitems}
-\setinterfacecommand{definelabel}{doorlabelen}
-\setinterfacecommand{definelayer}{definieerlayer}
-\setinterfacecommand{definelayout}{definieerlayout}
-\setinterfacecommand{definelinenote}{definelinenote}
-\setinterfacecommand{definelist}{definieerlijst}
-\setinterfacecommand{definelogo}{definieerbeeldmerk}
-\setinterfacecommand{definemainfield}{definieerhoofdveld}
-\setinterfacecommand{definemakeup}{definieeropmaak}
-\setinterfacecommand{definemarking}{definieermarkering}
-\setinterfacecommand{definemathalignment}{definieerwiskundeuitlijnen}
-\setinterfacecommand{definemode}{definemode}
-\setinterfacecommand{definenamedcolor}{definenamedcolor}
-\setinterfacecommand{definenote}{definenote}
-\setinterfacecommand{defineoutput}{definieeruitvoer}
-\setinterfacecommand{defineoverlay}{definieeroverlay}
-\setinterfacecommand{definepagebreak}{definieerpaginaovergang}
-\setinterfacecommand{definepalet}{definieerpalet}
-\setinterfacecommand{definepapersize}{definieerpapierformaat}
-\setinterfacecommand{defineparagraphs}{definieeralineas}
-\setinterfacecommand{defineperiodkerning}{defineperiodkerning}
-\setinterfacecommand{defineplacement}{definieerplaats}
-\setinterfacecommand{defineprofile}{definieerprofiel}
-\setinterfacecommand{defineprogram}{definieerprogramma}
-\setinterfacecommand{definerawfont}{definerawfont}
-\setinterfacecommand{definereference}{definieerreferentie}
-\setinterfacecommand{definereferenceformat}{definieerreferentieformaat}
-\setinterfacecommand{definereferencelist}{definieerreferentielijst}
-\setinterfacecommand{defineregister}{definieerregister}
-\setinterfacecommand{definerule}{definieerlijn}
-\setinterfacecommand{definesection}{definieersectie}
-\setinterfacecommand{definesectionblock}{definieersectieblok}
-\setinterfacecommand{definesorting}{definieersorteren}
-\setinterfacecommand{definestartstop}{definieerstartstop}
-\setinterfacecommand{definestyle}{definieerletter}
-\setinterfacecommand{definesubfield}{definieersubveld}
-\setinterfacecommand{definesymbol}{definieersymbool}
-\setinterfacecommand{definesynonyms}{definieersynoniemen}
-\setinterfacecommand{definetabletemplate}{definieertabelvorm}
-\setinterfacecommand{definetabulate}{definieertabulatie}
-\setinterfacecommand{definetext}{definieertekst}
-\setinterfacecommand{definetextbackground}{definieertekstachtergrond}
-\setinterfacecommand{definetextnote}{definetextnote}
-\setinterfacecommand{definetextposition}{definieertekstpositie}
-\setinterfacecommand{definetextvariable}{definieertekstvariabele}
-\setinterfacecommand{definetype}{definieertype}
-\setinterfacecommand{definetyping}{definieertypen}
-\setinterfacecommand{defineversion}{definieerversie}
-\setinterfacecommand{depthspanningtext}{depthspanningtext}
-\setinterfacecommand{determineheadnumber}{bepaalkopnummer}
-\setinterfacecommand{determinelistcharacteristics}{bepaallijstkenmerken}
-\setinterfacecommand{determineregistercharacteristics}{bepaalregisterkenmerken}
-\setinterfacecommand{dimension}{dimensie}
-\setinterfacecommand{disableinteractionmenu}{blokkeerinteractiemenu}
-\setinterfacecommand{disablemode}{disablemode}
-\setinterfacecommand{doaddfeature}{doaddfeature}
-\setinterfacecommand{domicile}{woonplaats}
-\setinterfacecommand{dontconvertfont}{dontconvertfont}
-\setinterfacecommand{donttest}{geentest}
-\setinterfacecommand{edgedistance}{randafstand}
-\setinterfacecommand{edgewidth}{randbreedte}
-\setinterfacecommand{emphasisboldface}{emphasisboldface}
-\setinterfacecommand{emptylines}{legeregels}
-\setinterfacecommand{enablemode}{enablemode}
-\setinterfacecommand{environment}{omgeving}
-\setinterfacecommand{externalfigure}{externfiguur}
-\setinterfacecommand{fact}{geg}
-\setinterfacecommand{fastswitchtobodyfont}{fastswitchtobodyfont}
-\setinterfacecommand{feature}{feature}
-\setinterfacecommand{field}{veld}
-\setinterfacecommand{fieldstack}{veldstapel}
-\setinterfacecommand{fillinfield}{invulveld}
-\setinterfacecommand{fillinline}{invulregel}
-\setinterfacecommand{fillinrules}{invullijnen}
-\setinterfacecommand{fillintext}{invultekst}
-\setinterfacecommand{firstcharacter}{firstcharacter}
-\setinterfacecommand{fitfield}{passendveld}
-\setinterfacecommand{fittopbaselinegrid}{fittopbaselinegrid}
-\setinterfacecommand{fixedspace}{vastespatie}
-\setinterfacecommand{fixedspaces}{vastespaties}
-\setinterfacecommand{flushnotes}{flushnotes}
-\setinterfacecommand{followprofile}{volgprofiel}
-\setinterfacecommand{followprofileversion}{volgprofielversie}
-\setinterfacecommand{followversion}{volgversie}
-\setinterfacecommand{footerdistance}{voetafstand}
-\setinterfacecommand{footerheight}{voethoogte}
-\setinterfacecommand{footnote}{voetnoot}
-\setinterfacecommand{footnotetext}{voetnoottekst}
-\setinterfacecommand{forceblocks}{forceerblokken}
-\setinterfacecommand{forcecharacterstripping}{forcecharacterstripping}
-\setinterfacecommand{formulanumber}{formulenummer}
-\setinterfacecommand{fraction}{breuk}
-\setinterfacecommand{framed}{omlijnd}
-\setinterfacecommand{from}{uit}
-\setinterfacecommand{fromlinenote}{fromlinenote}
-\setinterfacecommand{getbuffer}{haalbuffer}
-\setinterfacecommand{getfirstcharacter}{getfirstcharacter}
-\setinterfacecommand{getmarking}{haalmarkering}
-\setinterfacecommand{getnumber}{haalnummer}
-\setinterfacecommand{globaldisablemode}{globaldisablemode}
-\setinterfacecommand{globalenablemode}{globalenablemode}
-\setinterfacecommand{globalpreventmode}{globalpreventmode}
-\setinterfacecommand{godown}{omlaag}
-\setinterfacecommand{goto}{naar}
-\setinterfacecommand{gotobox}{naarbox}
-\setinterfacecommand{gotopage}{naarpagina}
-\setinterfacecommand{graycolor}{grijskleur}
-\setinterfacecommand{greyvalue}{grijswaarde}
-\setinterfacecommand{grid}{rooster}
-\setinterfacecommand{hairline}{haarlijn}
-\setinterfacecommand{head}{kop}
-\setinterfacecommand{headerdistance}{hoofdafstand}
-\setinterfacecommand{headerheight}{hoofdhoogte}
-\setinterfacecommand{headlevel}{kopniveau}
-\setinterfacecommand{headnumber}{kopnummer}
-\setinterfacecommand{headsym}{kopsym}
-\setinterfacecommand{headtext}{koptekst}
-\setinterfacecommand{heightspanningtext}{heightspanningtext}
-\setinterfacecommand{hideblocks}{verbergblokken}
-\setinterfacecommand{high}{hoog}
-\setinterfacecommand{hl}{hl}
-\setinterfacecommand{immediatebetweenlist}{directtussenlijst}
-\setinterfacecommand{immediatetolist}{directnaarlijst}
-\setinterfacecommand{in}{in}
-\setinterfacecommand{incrementnumber}{verhoognummer}
-\setinterfacecommand{indenting}{inspringen}
-\setinterfacecommand{inframed}{inlijnd}
-\setinterfacecommand{infull}{voluit}
-\setinterfacecommand{ininner}{inbinnen}
-\setinterfacecommand{inleft}{inlinker}
-\setinterfacecommand{inleftedge}{inlinkerrand}
-\setinterfacecommand{inleftmargin}{inlinkermarge}
-\setinterfacecommand{inline}{inregel}
-\setinterfacecommand{inmargin}{inmarge}
-\setinterfacecommand{inmframed}{inwilijnd}
-\setinterfacecommand{inneredgedistance}{binnenrandafstand}
-\setinterfacecommand{inneredgewidth}{binnenrandbreedte}
-\setinterfacecommand{innermargindistance}{binnenmargeafstand}
-\setinterfacecommand{innermarginwidth}{binnenmargebreedte}
-\setinterfacecommand{inothermargin}{inanderemarge}
-\setinterfacecommand{inouter}{inbuiten}
-\setinterfacecommand{inright}{inrechter}
-\setinterfacecommand{inrightedge}{inrechterrand}
-\setinterfacecommand{inrightmargin}{inrechtermarge}
-\setinterfacecommand{installlanguage}{installeertaal}
-\setinterfacecommand{interactionbar}{interactiebalk}
-\setinterfacecommand{interactionbuttons}{interactiebuttons}
-\setinterfacecommand{interactionmenu}{interactiemenu}
-\setinterfacecommand{item}{som}
-\setinterfacecommand{itemgroup}{itemgroup}
-\setinterfacecommand{items}{items}
-\setinterfacecommand{itemtag}{itemtag}
-\setinterfacecommand{its}{its}
-\setinterfacecommand{keepblocks}{handhaafblokken}
-\setinterfacecommand{kerncharacters}{kerncharacters}
-\setinterfacecommand{label}{label}
-\setinterfacecommand{labels}{labels}
-\setinterfacecommand{labeltext}{labeltekst}
-\setinterfacecommand{language}{taal}
-\setinterfacecommand{languageCharacters}{languageCharacters}
-\setinterfacecommand{languagecharacters}{languagecharacters}
-\setinterfacecommand{leftaligned}{regellinks}
-\setinterfacecommand{leftbottombox}{leftbottombox}
-\setinterfacecommand{leftedgedistance}{linkerrandafstand}
-\setinterfacecommand{leftedgewidth}{linkerrandbreedte}
-\setinterfacecommand{leftline}{leftline}
-\setinterfacecommand{leftmargindistance}{linkermargeafstand}
-\setinterfacecommand{leftmarginwidth}{linkermargebreedte}
-\setinterfacecommand{leg}{leg}
-\setinterfacecommand{linecorrection}{regelcorrectie}
-\setinterfacecommand{linenote}{linenote}
-\setinterfacecommand{linespanningtext}{linespanningtext}
-\setinterfacecommand{linewidth}{lijndikte}
-\setinterfacecommand{listheight}{lijsthoogte}
-\setinterfacecommand{listlength}{lijstlengte}
-\setinterfacecommand{listsymbol}{lijstsymbool}
-\setinterfacecommand{listwidth}{lijstbreedte}
-\setinterfacecommand{loadfontgoodies}{loadfontgoodies}
-\setinterfacecommand{localfootnotes}{lokalevoetnoten}
-\setinterfacecommand{localnotes}{localnotes}
-\setinterfacecommand{logfields}{registreervelden}
-\setinterfacecommand{lohi}{laho}
-\setinterfacecommand{low}{laag}
-\setinterfacecommand{macroname}{naam}
-\setinterfacecommand{mainlanguage}{hoofdtaal}
-\setinterfacecommand{makeupheight}{zethoogte}
-\setinterfacecommand{makeupwidth}{zetbreedte}
-\setinterfacecommand{mar}{mar}
-\setinterfacecommand{marginblock}{margeblok}
-\setinterfacecommand{margindistance}{margeafstand}
-\setinterfacecommand{marginrule}{kantlijn}
-\setinterfacecommand{margintext}{margetekst}
-\setinterfacecommand{margintitle}{margetitel}
-\setinterfacecommand{marginwidth}{margebreedte}
-\setinterfacecommand{marginword}{margewoord}
-\setinterfacecommand{marking}{markeer}
-\setinterfacecommand{markversion}{markeerversie}
-\setinterfacecommand{mathematics}{wiskunde}
-\setinterfacecommand{menubutton}{menubutton}
-\setinterfacecommand{mframed}{wilijnd}
-\setinterfacecommand{midaligned}{regelmidden}
-\setinterfacecommand{mirror}{spiegel}
-\setinterfacecommand{month}{maand}
-\setinterfacecommand{moveformula}{verplaatsformule}
-\setinterfacecommand{moveongrid}{verplaatsopgrid}
-\setinterfacecommand{movesidefloat}{verplaatszijblok}
-\setinterfacecommand{navigating}{navigerend}
-\setinterfacecommand{nodimension}{geendimensie}
-\setinterfacecommand{noheaderandfooterlines}{geenhoofdenvoetregels}
-\setinterfacecommand{noindenting}{nietinspringen}
-\setinterfacecommand{noitem}{noitem}
-\setinterfacecommand{nolist}{geenlijst}
-\setinterfacecommand{nomarking}{geenmarkering}
-\setinterfacecommand{nomoreblocks}{geenblokkenmeer}
-\setinterfacecommand{nomorefiles}{geenfilesmeer}
-\setinterfacecommand{nop}{nop}
-\setinterfacecommand{nospace}{geenspatie}
-\setinterfacecommand{note}{noot}
-\setinterfacecommand{notesymbol}{notesymbol}
-\setinterfacecommand{notopandbottomlines}{geenbovenenonderregels}
-\setinterfacecommand{notsmallcapped}{nokap}
-\setinterfacecommand{nowhitespace}{geenwitruimte}
-\setinterfacecommand{numberofsubpages}{aantalsubpaginas}
-\setinterfacecommand{numbers}{cijfers}
-\setinterfacecommand{outeredgedistance}{buitenrandafstand}
-\setinterfacecommand{outeredgewidth}{buitenrandbreedte}
-\setinterfacecommand{outermargindistance}{buitenmargeafstand}
-\setinterfacecommand{outermarginwidth}{buitenmargebreedte}
-\setinterfacecommand{packed}{opelkaar}
-\setinterfacecommand{page}{pagina}
-\setinterfacecommand{pagebreak}{pagebreak}
-\setinterfacecommand{pagedepth}{paginadiepte}
-\setinterfacecommand{pagenumber}{paginanummer}
-\setinterfacecommand{pageoffset}{paginaoffset}
-\setinterfacecommand{pagereference}{paginareferentie}
-\setinterfacecommand{paperheight}{papierhoogte}
-\setinterfacecommand{paperwidth}{papierbreedte}
-\setinterfacecommand{periods}{punten}
-\setinterfacecommand{placebookmarks}{plaatsbookmarks}
-\setinterfacecommand{placecombinedlist}{plaatssamengesteldelijst}
-\setinterfacecommand{placefloat}{plaatsplaatsblok}
-\setinterfacecommand{placefootnotes}{plaatsvoetnoten}
-\setinterfacecommand{placeformula}{plaatsformule}
-\setinterfacecommand{placeheadnumber}{plaatskopnummer}
-\setinterfacecommand{placeheadtext}{plaatskoptekst}
-\setinterfacecommand{placelegend}{plaatslegenda}
-\setinterfacecommand{placelist}{plaatslijst}
-\setinterfacecommand{placelistofsynonyms}{plaatslijstmetsynoniemen}
-\setinterfacecommand{placelocalfootnotes}{plaatslokalevoetnoten}
-\setinterfacecommand{placelocalnotes}{placelocalnotes}
-\setinterfacecommand{placelogos}{plaatsbeeldmerken}
-\setinterfacecommand{placenamedfloat}{placenamedfloat}
-\setinterfacecommand{placenotes}{placenotes}
-\setinterfacecommand{placeongrid}{plaatsopgrid}
-\setinterfacecommand{placeontopofeachother}{plaatsonderelkaar}
-\setinterfacecommand{placepagenumber}{plaatspaginanummer}
-\setinterfacecommand{placerawlist}{plaatsruwelijst}
-\setinterfacecommand{placereferencelist}{plaatsreferentielijst}
-\setinterfacecommand{placeregister}{plaatsregister}
-\setinterfacecommand{placerule}{plaatslijn}
-\setinterfacecommand{placesidebyside}{plaatsnaastelkaar}
-\setinterfacecommand{placesubformula}{plaatssubformule}
-\setinterfacecommand{placetextvariable}{plaatstekstvariabele}
-\setinterfacecommand{position}{positioneer}
-\setinterfacecommand{positiontext}{positioneertekst}
-\setinterfacecommand{postponenotes}{postponenotes}
-\setinterfacecommand{postponingnotes}{postponingnotes}
-\setinterfacecommand{predefinedfont}{predefinedfont}
-\setinterfacecommand{predefinefont}{predefinefont}
-\setinterfacecommand{presetdocument}{presetdocument}
-\setinterfacecommand{prettyprintbuffer}{prettyprintbuffer}
-\setinterfacecommand{preventmode}{preventmode}
-\setinterfacecommand{printpaperheight}{printpapierhoogte}
-\setinterfacecommand{printpaperwidth}{printpapierbreedte}
-\setinterfacecommand{processblocks}{verwerkblokken}
-\setinterfacecommand{processbodyfontenvironmentlist}{processbodyfontenvironmentlist}
-\setinterfacecommand{processpage}{verwerkpagina}
-\setinterfacecommand{product}{produkt}
-\setinterfacecommand{program}{programma}
-\setinterfacecommand{project}{projekt}
-\setinterfacecommand{publication}{publicatie}
-\setinterfacecommand{quotation}{citaat}
-\setinterfacecommand{quote}{citeer}
-\setinterfacecommand{ran}{ran}
-\setinterfacecommand{redo}{herhaal}
-\setinterfacecommand{redoconvertfont}{redoconvertfont}
-\setinterfacecommand{ref}{ref}
-\setinterfacecommand{reference}{referentie}
-\setinterfacecommand{referral}{kenmerk}
-\setinterfacecommand{referraldate}{kenmerkdatum}
-\setinterfacecommand{referring}{refereer}
-\setinterfacecommand{registerfontclass}{registerfontclass}
-\setinterfacecommand{registerhyphenationexception}{registerhyphenationexception}
-\setinterfacecommand{registerhyphenationpattern}{registerhyphenationpattern}
-\setinterfacecommand{remark}{toelichting}
-\setinterfacecommand{replacefeature}{replacefeature}
-\setinterfacecommand{reset}{reset}
-\setinterfacecommand{resetandaddfeature}{resetandaddfeature}
-\setinterfacecommand{resetcharacteralign}{resetcharacteralign}
-\setinterfacecommand{resetcharacterkerning}{resetcharacterkerning}
-\setinterfacecommand{resetcharacterspacing}{resetcharacterspacing}
-\setinterfacecommand{resetcharacterstripping}{resetcharacterstripping}
-\setinterfacecommand{resetfeature}{resetfeature}
-\setinterfacecommand{resetfontcolorsheme}{resetfontcolorsheme}
-\setinterfacecommand{resetfontfallback}{resetfontfallback}
-\setinterfacecommand{resetfontsolution}{resetfontsolution}
-\setinterfacecommand{resethyphenationfeatures}{resethyphenationfeatures}
-\setinterfacecommand{resetlocalfloats}{resetlocalfloats}
-\setinterfacecommand{resetmarking}{resetmarkering}
-\setinterfacecommand{resetmode}{resetmode}
-\setinterfacecommand{resetnumber}{resetnummer}
-\setinterfacecommand{resetpath}{resetpath}
-\setinterfacecommand{resetperiodkerning}{resetperiodkerning}
-\setinterfacecommand{resetsystemmode}{resetsystemmode}
-\setinterfacecommand{resettextcontent}{resettekstinhoud}
-\setinterfacecommand{resetvisualizers}{resetvisualizers}
-\setinterfacecommand{restoreglobalbodyfont}{restoreglobalbodyfont}
-\setinterfacecommand{retestfeature}{retestfeature}
-\setinterfacecommand{revivefeature}{revivefeature}
-\setinterfacecommand{rightaligned}{regelrechts}
-\setinterfacecommand{rightbottombox}{rightbottombox}
-\setinterfacecommand{rightedgedistance}{rechterrandafstand}
-\setinterfacecommand{rightedgewidth}{rechterrandbreedte}
-\setinterfacecommand{rightline}{rightline}
-\setinterfacecommand{rightmargindistance}{rechtermargeafstand}
-\setinterfacecommand{rightmarginwidth}{rechtermargebreedte}
-\setinterfacecommand{romannumerals}{romeins}
-\setinterfacecommand{rotate}{roteer}
-\setinterfacecommand{savebuffer}{bewaarbuffer}
-\setinterfacecommand{scale}{schaal}
-\setinterfacecommand{screen}{scherm}
-\setinterfacecommand{selectblocks}{selecteerblokken}
-\setinterfacecommand{selectpaper}{selecteerpapier}
-\setinterfacecommand{selectversion}{selecteerversie}
-\setinterfacecommand{setbigbodyfont}{setbigbodyfont}
-\setinterfacecommand{setcharacteralign}{setcharacteralign}
-\setinterfacecommand{setcharacteraligndetail}{setcharacteraligndetail}
-\setinterfacecommand{setcharactercasing}{setcharactercasing}
-\setinterfacecommand{setcharactercleaning}{setcharactercleaning}
-\setinterfacecommand{setcharacterkerning}{setcharacterkerning}
-\setinterfacecommand{setcharacterspacing}{setcharacterspacing}
-\setinterfacecommand{setcharacterstripping}{setcharacterstripping}
-\setinterfacecommand{setcurrentfontclass}{setcurrentfontclass}
-\setinterfacecommand{setfirstline}{setfirstline}
-\setinterfacecommand{setfirstpasscharacteralign}{setfirstpasscharacteralign}
-\setinterfacecommand{setfont}{setfont}
-\setinterfacecommand{setfontcolorsheme}{setfontcolorsheme}
-\setinterfacecommand{setfontfeature}{setfontfeature}
-\setinterfacecommand{setfontsolution}{setfontsolution}
-\setinterfacecommand{setfontstrut}{setfontstrut}
-\setinterfacecommand{sethyphenationfeatures}{sethyphenationfeatures}
-\setinterfacecommand{setmainbodyfont}{setmainbodyfont}
-\setinterfacecommand{setmode}{setmode}
-\setinterfacecommand{setnote}{setnote}
-\setinterfacecommand{setnotetext}{setnotetext}
-\setinterfacecommand{setnumber}{setnummer}
-\setinterfacecommand{setperiodkerning}{setperiodkerning}
-\setinterfacecommand{setsecondpasscharacteralign}{setsecondpasscharacteralign}
-\setinterfacecommand{setsmallbodyfont}{setsmallbodyfont}
-\setinterfacecommand{setsystemmode}{setsystemmode}
-\setinterfacecommand{settextcontent}{steltekstinhoudin}
-\setinterfacecommand{settextvariable}{kentekstvariabeletoe}
-\setinterfacecommand{setupalign}{steluitlijnenin}
-\setinterfacecommand{setupanswerarea}{stelantwoordgebiedin}
-\setinterfacecommand{setuparranging}{stelarrangerenin}
-\setinterfacecommand{setupattachment}{setupattachment}
-\setinterfacecommand{setupbackground}{stelachtergrondin}
-\setinterfacecommand{setupbackgrounds}{stelachtergrondenin}
-\setinterfacecommand{setupblackrules}{stelblokjesin}
-\setinterfacecommand{setupblank}{stelblankoin}
-\setinterfacecommand{setupblock}{stelblokin}
-\setinterfacecommand{setupbodyfont}{stelkorpsin}
-\setinterfacecommand{setupbodyfontenvironment}{stelkorpsomgevingin}
-\setinterfacecommand{setupbottom}{stelonderin}
-\setinterfacecommand{setupbottomtexts}{stelondertekstenin}
-\setinterfacecommand{setupbuffer}{stelbufferin}
-\setinterfacecommand{setupbuttons}{stelbuttonsin}
-\setinterfacecommand{setupcapitals}{stelkapitalenin}
-\setinterfacecommand{setupcaption}{stelblokkopjein}
-\setinterfacecommand{setupcaptions}{stelblokkopjesin}
-\setinterfacecommand{setupcharacteralign}{setupcharacteralign}
-\setinterfacecommand{setupcharacterkerning}{setupcharacterkerning}
-\setinterfacecommand{setupcharacterspacing}{setupcharacterspacing}
-\setinterfacecommand{setupclipping}{stelclipin}
-\setinterfacecommand{setupcolor}{stelkleurin}
-\setinterfacecommand{setupcolors}{stelkleurenin}
-\setinterfacecommand{setupcolumns}{stelkolommenin}
-\setinterfacecommand{setupcolumnset}{stelkolomgroepin}
-\setinterfacecommand{setupcolumnsetlines}{stelkolomgroepregelsin}
-\setinterfacecommand{setupcolumnsetstart}{stelkolomgroepstartin}
-\setinterfacecommand{setupcombinations}{stelcombinatiesin}
-\setinterfacecommand{setupcombinedlist}{stelsamengesteldelijstin}
-\setinterfacecommand{setupcomment}{stelcommentaarin}
-\setinterfacecommand{setupcounter}{setupcounter}
-\setinterfacecommand{setupdescription}{steldoordefinierenin}
-\setinterfacecommand{setupdescriptions}{steldoordefinierenin}
-\setinterfacecommand{setupenumeration}{steldoornummerenin}
-\setinterfacecommand{setupenumerations}{steldoornummerenin}
-\setinterfacecommand{setupexternalfigures}{stelexternefigurenin}
-\setinterfacecommand{setupfield}{stelveldin}
-\setinterfacecommand{setupfields}{stelveldenin}
-\setinterfacecommand{setupfillinlines}{stelinvulregelsin}
-\setinterfacecommand{setupfillinrules}{stelinvullijnenin}
-\setinterfacecommand{setupfirstline}{setupfirstline}
-\setinterfacecommand{setupfloat}{stelplaatsblokin}
-\setinterfacecommand{setupfloats}{stelplaatsblokkenin}
-\setinterfacecommand{setupfloatsplitting}{stelplaatsbloksplitsenin}
-\setinterfacecommand{setupfontexpansion}{setupfontexpansion}
-\setinterfacecommand{setupfontprotrusion}{setupfontprotrusion}
-\setinterfacecommand{setupfonts}{setupfonts}
-\setinterfacecommand{setupfontsolution}{setupfontsolution}
-\setinterfacecommand{setupfooter}{stelvoetin}
-\setinterfacecommand{setupfootertexts}{stelvoettekstenin}
-\setinterfacecommand{setupfootnotedefinition}{stelvoetnootdefinitiein}
-\setinterfacecommand{setupfootnotes}{stelvoetnotenin}
-\setinterfacecommand{setupforms}{stelformulierenin}
-\setinterfacecommand{setupformula}{stelformulein}
-\setinterfacecommand{setupformulas}{stelformulesin}
-\setinterfacecommand{setupframed}{stelomlijndin}
-\setinterfacecommand{setupframedtext}{stelkadertekstin}
-\setinterfacecommand{setupframedtexts}{stelkadertekstenin}
-\setinterfacecommand{setuphead}{stelkopin}
-\setinterfacecommand{setupheader}{stelhoofdin}
-\setinterfacecommand{setupheadertexts}{stelhoofdtekstenin}
-\setinterfacecommand{setupheadnumber}{stelkopnummerin}
-\setinterfacecommand{setupheads}{stelkoppenin}
-\setinterfacecommand{setupheadtext}{stelkoptekstin}
-\setinterfacecommand{setuphyphenation}{setuphyphenation}
-\setinterfacecommand{setuphyphenmark}{stelkoppeltekenin}
-\setinterfacecommand{setupindentedtext}{stelingesprongentextin}
-\setinterfacecommand{setupindenting}{stelinspringenin}
-\setinterfacecommand{setupinmargin}{stelinmargein}
-\setinterfacecommand{setupinteraction}{stelinteractiein}
-\setinterfacecommand{setupinteractionbar}{stelinteractiebalkin}
-\setinterfacecommand{setupinteractionmenu}{stelinteractiemenuin}
-\setinterfacecommand{setupinteractionscreen}{stelinteractieschermin}
-\setinterfacecommand{setupinterlinespace}{stelinterliniein}
-\setinterfacecommand{setupitemgroup}{stelitemgroepin}
-\setinterfacecommand{setupitemgroups}{stelopsommingenin}
-\setinterfacecommand{setupitems}{stelitemsin}
-\setinterfacecommand{setuplabeltext}{stellabeltekstin}
-\setinterfacecommand{setuplanguage}{steltaalin}
-\setinterfacecommand{setuplayout}{stellayoutin}
-\setinterfacecommand{setuplegend}{stellegendain}
-\setinterfacecommand{setuplinenote}{setuplinenote}
-\setinterfacecommand{setuplinenumbering}{stelregelnummerenin}
-\setinterfacecommand{setuplines}{stelregelsin}
-\setinterfacecommand{setuplinewidth}{stellijndiktein}
-\setinterfacecommand{setuplist}{stellijstin}
-\setinterfacecommand{setupmakeup}{stelopmaakin}
-\setinterfacecommand{setupmarginblock}{stelmargeblokkenin}
-\setinterfacecommand{setupmarginblocks}{stelmargeblokkenin}
-\setinterfacecommand{setupmargindata}{stelinmargein}
-\setinterfacecommand{setupmarginrules}{stelkantlijnin}
-\setinterfacecommand{setupmarking}{stelmarkeringin}
-\setinterfacecommand{setupmathalignment}{stelwiskundeuitlijnenin}
-\setinterfacecommand{setupnarrower}{stelsmallerin}
-\setinterfacecommand{setupnotation}{setupnotation}
-\setinterfacecommand{setupnotations}{setupnotations}
-\setinterfacecommand{setupnote}{setupnote}
-\setinterfacecommand{setupnotes}{setupnotes}
-\setinterfacecommand{setupnumber}{stelnummerin}
-\setinterfacecommand{setupnumbering}{stelnummerenin}
-\setinterfacecommand{setupoppositeplacing}{stelnaastplaatsenin}
-\setinterfacecommand{setupoutput}{steluitvoerin}
-\setinterfacecommand{setuppagecomment}{stelpaginacommentaarin}
-\setinterfacecommand{setuppagenumber}{stelpaginanummerin}
-\setinterfacecommand{setuppagenumbering}{stelpaginanummeringin}
-\setinterfacecommand{setuppagetransitions}{stelpaginaovergangenin}
-\setinterfacecommand{setuppalet}{stelpaletin}
-\setinterfacecommand{setuppaper}{stelpapierin}
-\setinterfacecommand{setuppapersize}{stelpapierformaatin}
-\setinterfacecommand{setupparagraphnumbering}{stelparagraafnummerenin}
-\setinterfacecommand{setupparagraphs}{stelalineasin}
-\setinterfacecommand{setupperiodkerning}{setupperiodkerning}
-\setinterfacecommand{setupplacement}{stelplaatsin}
-\setinterfacecommand{setuppositioning}{stelpositionerenin}
-\setinterfacecommand{setupprofiles}{stelprofielenin}
-\setinterfacecommand{setupprograms}{stelprogrammasin}
-\setinterfacecommand{setuppublications}{stelpublicatiesin}
-\setinterfacecommand{setupquote}{stelciterenin}
-\setinterfacecommand{setupreferencelist}{stelreferentielijstin}
-\setinterfacecommand{setupreferencing}{stelrefererenin}
-\setinterfacecommand{setupregister}{stelregisterin}
-\setinterfacecommand{setuprotate}{stelroterenin}
-\setinterfacecommand{setuprule}{stellijnin}
-\setinterfacecommand{setupscreens}{stelrastersin}
-\setinterfacecommand{setupsection}{stelsectiein}
-\setinterfacecommand{setupsectionblock}{stelsectieblokin}
-\setinterfacecommand{setupsorting}{stelsorterenin}
-\setinterfacecommand{setupspacing}{stelspatieringin}
-\setinterfacecommand{setupstartstop}{stelstartstopin}
-\setinterfacecommand{setupstrut}{stelstrutin}
-\setinterfacecommand{setupsubpagenumber}{stelsubpaginanummerin}
-\setinterfacecommand{setupsymbolset}{stelsymboolsetin}
-\setinterfacecommand{setupsynchronization}{stelsynchronisatiein}
-\setinterfacecommand{setupsynchronizationbar}{stelsynchronisatiebalkin}
-\setinterfacecommand{setupsynonyms}{stelsynoniemenin}
-\setinterfacecommand{setupsystem}{stelsysteemin}
-\setinterfacecommand{setuptab}{steltabin}
-\setinterfacecommand{setuptables}{steltabellenin}
-\setinterfacecommand{setuptabulate}{steltabulatiein}
-\setinterfacecommand{setuptext}{steltekstin}
-\setinterfacecommand{setuptextbackground}{steltekstachtergrondin}
-\setinterfacecommand{setuptextnote}{setuptextnote}
-\setinterfacecommand{setuptextposition}{steltekstpositiein}
-\setinterfacecommand{setuptextrules}{steltekstlijnenin}
-\setinterfacecommand{setuptexttexts}{stelteksttekstenin}
-\setinterfacecommand{setuptextvariable}{steltekstvariabelein}
-\setinterfacecommand{setupthinrules}{steldunnelijnenin}
-\setinterfacecommand{setuptolerance}{steltolerantiein}
-\setinterfacecommand{setuptop}{stelbovenin}
-\setinterfacecommand{setuptoptexts}{stelboventekstenin}
-\setinterfacecommand{setuptype}{steltypein}
-\setinterfacecommand{setuptyping}{steltypenin}
-\setinterfacecommand{setupunderbar}{stelonderstrepenin}
-\setinterfacecommand{setupurl}{stelurlin}
-\setinterfacecommand{setupversions}{stelversiesin}
-\setinterfacecommand{setupwhitespace}{stelwitruimtein}
-\setinterfacecommand{setvisualizerfont}{setvisualizerfont}
-\setinterfacecommand{showbodyfont}{toonkorps}
-\setinterfacecommand{showbodyfontenvironment}{toonkorpsomgeving}
-\setinterfacecommand{showcolor}{toonkleur}
-\setinterfacecommand{showcolorgroup}{toonkleurgroep}
-\setinterfacecommand{showcounter}{showcounter}
-\setinterfacecommand{showexternalfigures}{toonexternefiguren}
-\setinterfacecommand{showfields}{toonvelden}
-\setinterfacecommand{showfont}{showfont}
-\setinterfacecommand{showfontdata}{showfontdata}
-\setinterfacecommand{showfontexpansion}{showfontexpansion}
-\setinterfacecommand{showfontitalics}{showfontitalics}
-\setinterfacecommand{showfontkerns}{showfontkerns}
-\setinterfacecommand{showfontparameters}{showfontparameters}
-\setinterfacecommand{showfontstrip}{showfontstrip}
-\setinterfacecommand{showfontstyle}{showfontstyle}
-\setinterfacecommand{showframe}{toonkader}
-\setinterfacecommand{showgrid}{toongrid}
-\setinterfacecommand{showhyphenationtrace}{showhyphenationtrace}
-\setinterfacecommand{showkerning}{showkerning}
-\setinterfacecommand{showlayout}{toonlayout}
-\setinterfacecommand{showmakeup}{toonopmaak}
-\setinterfacecommand{showminimalbaseline}{showminimalbaseline}
-\setinterfacecommand{showpalet}{toonpalet}
-\setinterfacecommand{showprint}{toonprint}
-\setinterfacecommand{showsetups}{tooninstellingen}
-\setinterfacecommand{showstruts}{toonstruts}
-\setinterfacecommand{showsymbolset}{toonsymboolset}
-\setinterfacecommand{smallcapped}{kap}
-\setinterfacecommand{someline}{eenregel}
-\setinterfacecommand{somewhere}{ergens}
-\setinterfacecommand{space}{spatie}
-\setinterfacecommand{specialitem}{specialitem}
-\setinterfacecommand{splitfloat}{splitsplaatsblok}
-\setinterfacecommand{startalignment}{startuitlijnen}
-\setinterfacecommand{startbackground}{startachtergrond}
-\setinterfacecommand{startcoding}{startcodering}
-\setinterfacecommand{startcolor}{startkleur}
-\setinterfacecommand{startcolumnmakeup}{startkolomopmaak}
-\setinterfacecommand{startcolumns}{startkolommen}
-\setinterfacecommand{startcolumnset}{startkolomgroep}
-\setinterfacecommand{startcombination}{startcombinatie}
-\setinterfacecommand{startcomponent}{startonderdeel}
-\setinterfacecommand{startdocument}{startdocument}
-\setinterfacecommand{startenvironment}{startomgeving}
-\setinterfacecommand{startfigure}{startfiguur}
-\setinterfacecommand{startframed}{startomlijnd}
-\setinterfacecommand{startglobal}{startglobaal}
-\setinterfacecommand{startline}{startregel}
-\setinterfacecommand{startlinecorrection}{startregelcorrectie}
-\setinterfacecommand{startlinenote}{startlinenote}
-\setinterfacecommand{startlinenumbering}{startregelnummeren}
-\setinterfacecommand{startlines}{startregels}
-\setinterfacecommand{startlocal}{startlokaal}
-\setinterfacecommand{startlocalfootnotes}{startlokalevoetnoten}
-\setinterfacecommand{startmakeup}{startopmaak}
-\setinterfacecommand{startmarginblock}{startmargeblok}
-\setinterfacecommand{startmarginrule}{startkantlijn}
-\setinterfacecommand{startnarrower}{startsmaller}
-\setinterfacecommand{startopposite}{startnaast}
-\setinterfacecommand{startoverlay}{startoverlay}
-\setinterfacecommand{startoverview}{startoverzicht}
-\setinterfacecommand{startpacked}{startopelkaar}
-\setinterfacecommand{startpositioning}{startpositioneren}
-\setinterfacecommand{startproduct}{startprodukt}
-\setinterfacecommand{startprofile}{startprofiel}
-\setinterfacecommand{startproject}{startprojekt}
-\setinterfacecommand{startquotation}{startcitaat}
-\setinterfacecommand{startraster}{startraster}
-\setinterfacecommand{startsymbolset}{startsymboolset}
-\setinterfacecommand{startsynchronization}{startsynchronisatie}
-\setinterfacecommand{starttable}{starttabel}
-\setinterfacecommand{starttables}{starttabellen}
-\setinterfacecommand{starttext}{starttekst}
-\setinterfacecommand{starttextbackground}{starttekstachtergrond}
-\setinterfacecommand{starttextrule}{starttekstlijn}
-\setinterfacecommand{startunpacked}{startvanelkaar}
-\setinterfacecommand{startversion}{startversie}
-\setinterfacecommand{stopalignment}{stopuitlijnen}
-\setinterfacecommand{stopbackground}{stopachtergrond}
-\setinterfacecommand{stopcoding}{stopcodering}
-\setinterfacecommand{stopcolor}{stopkleur}
-\setinterfacecommand{stopcolumnmakeup}{stopkolomopmaak}
-\setinterfacecommand{stopcolumns}{stopkolommen}
-\setinterfacecommand{stopcolumnset}{stopkolomgroep}
-\setinterfacecommand{stopcombination}{stopcombinatie}
-\setinterfacecommand{stopcomponent}{stoponderdeel}
-\setinterfacecommand{stopdocument}{stopdocument}
-\setinterfacecommand{stopenvironment}{stopomgeving}
-\setinterfacecommand{stopframed}{stopomlijnd}
-\setinterfacecommand{stopglobal}{stopglobaal}
-\setinterfacecommand{stopline}{stopregel}
-\setinterfacecommand{stoplinecorrection}{stopregelcorrectie}
-\setinterfacecommand{stoplinenote}{stoplinenote}
-\setinterfacecommand{stoplinenumbering}{stopregelnummeren}
-\setinterfacecommand{stoplines}{stopregels}
-\setinterfacecommand{stoplocal}{stoplokaal}
-\setinterfacecommand{stoplocalfootnotes}{stoplokalevoetnoten}
-\setinterfacecommand{stopmakeup}{stopopmaak}
-\setinterfacecommand{stopmarginblock}{stopmargeblok}
-\setinterfacecommand{stopmarginrule}{stopkantlijn}
-\setinterfacecommand{stopnarrower}{stopsmaller}
-\setinterfacecommand{stopopposite}{stopnaast}
-\setinterfacecommand{stopoverlay}{stopoverlay}
-\setinterfacecommand{stopoverview}{stopoverzicht}
-\setinterfacecommand{stoppacked}{stopopelkaar}
-\setinterfacecommand{stoppositioning}{stoppositioneren}
-\setinterfacecommand{stopproduct}{stopprodukt}
-\setinterfacecommand{stopprofile}{stopprofiel}
-\setinterfacecommand{stopproject}{stopprojekt}
-\setinterfacecommand{stopquotation}{stopcitaat}
-\setinterfacecommand{stopraster}{stopraster}
-\setinterfacecommand{stopsynchronization}{stopsynchronisatie}
-\setinterfacecommand{stoptable}{stoptabel}
-\setinterfacecommand{stoptables}{stoptabellen}
-\setinterfacecommand{stoptext}{stoptekst}
-\setinterfacecommand{stoptextbackground}{stoptekstachtergrond}
-\setinterfacecommand{stoptextrule}{stoptekstlijn}
-\setinterfacecommand{stopunpacked}{stopvanelkaar}
-\setinterfacecommand{stopversion}{stopversie}
-\setinterfacecommand{stretched}{uitgerekt}
-\setinterfacecommand{strictinspectnextcharacter}{strictinspectnextcharacter}
-\setinterfacecommand{stripcharacter}{stripcharacter}
-\setinterfacecommand{subformulanumber}{subformulenummer}
-\setinterfacecommand{subpagenumber}{subpaginanummer}
-\setinterfacecommand{subtractfeature}{subtractfeature}
-\setinterfacecommand{switchtobodyfont}{switchnaarkorps}
-\setinterfacecommand{switchtorawfont}{switchtorawfont}
-\setinterfacecommand{sym}{sym}
-\setinterfacecommand{symbol}{symbool}
-\setinterfacecommand{symoffset}{symoffset}
-\setinterfacecommand{synchronizationbar}{synchronisatiebalk}
-\setinterfacecommand{synchronize}{synchroniseer}
-\setinterfacecommand{tab}{tab}
-\setinterfacecommand{testcolumn}{testkolom}
-\setinterfacecommand{testfeature}{testfeature}
-\setinterfacecommand{testfeatureonce}{testfeatureonce}
-\setinterfacecommand{testpage}{testpagina}
-\setinterfacecommand{tex}{tex}
-\setinterfacecommand{textbackground}{tekstachtergrond}
-\setinterfacecommand{textcolor}{textcolor}
-\setinterfacecommand{textheight}{teksthoogte}
-\setinterfacecommand{textnote}{textnote}
-\setinterfacecommand{textreference}{tekstreferentie}
-\setinterfacecommand{textrule}{tekstlijn}
-\setinterfacecommand{textvariable}{tekstvariabele}
-\setinterfacecommand{textwidth}{tekstbreedte}
-\setinterfacecommand{thefirstcharacter}{thefirstcharacter}
-\setinterfacecommand{thenormalizedbodyfontsize}{thenormalizedbodyfontsize}
-\setinterfacecommand{theremainingcharacters}{theremainingcharacters}
-\setinterfacecommand{thinrule}{dunnelijn}
-\setinterfacecommand{thinrules}{dunnelijnen}
-\setinterfacecommand{tolinenote}{tolinenote}
-\setinterfacecommand{tooltip}{suggestie}
-\setinterfacecommand{topdistance}{bovenafstand}
-\setinterfacecommand{topheight}{bovenhoogte}
-\setinterfacecommand{topspace}{kopwit}
-\setinterfacecommand{totalnumberofpages}{totaalaantalpaginas}
-\setinterfacecommand{translate}{vertaal}
-\setinterfacecommand{txt}{txt}
-\setinterfacecommand{typ}{typ}
-\setinterfacecommand{type}{type}
-\setinterfacecommand{typebuffer}{typebuffer}
-\setinterfacecommand{typedefinedbuffer}{typedefinedbuffer}
-\setinterfacecommand{typefile}{typefile}
-\setinterfacecommand{typeinlinebuffer}{typeinlinebuffer}
-\setinterfacecommand{typing}{typing}
-\setinterfacecommand{unitmeaning}{betekenis}
-\setinterfacecommand{unknown}{onbekend}
-\setinterfacecommand{unregisterhyphenationpattern}{unregisterhyphenationpattern}
-\setinterfacecommand{useJSscripts}{gebruikJSscripts}
-\setinterfacecommand{useURL}{gebruikURL}
-\setinterfacecommand{useXMLfilter}{gebruikXMLfilter}
-\setinterfacecommand{useblocks}{gebruikblokken}
-\setinterfacecommand{usebodyfont}{usebodyfont}
-\setinterfacecommand{usebodyfontparameter}{usebodyfontparameter}
-\setinterfacecommand{usecommands}{gebruikcommandos}
-\setinterfacecommand{useencoding}{usecodering}
-\setinterfacecommand{useexternaldocument}{gebruikexterndocument}
-\setinterfacecommand{useexternalfigure}{gebruikexternfiguur}
-\setinterfacecommand{useexternalfile}{gebruikexternefile}
-\setinterfacecommand{useexternalfiles}{gebruikexternefiles}
-\setinterfacecommand{useexternalsoundtrack}{gebruikexterngeluidsfragment}
-\setinterfacecommand{usemodule}{gebruikmodule}
-\setinterfacecommand{usemodules}{gebruikmodules}
-\setinterfacecommand{usepath}{gebruikpad}
-\setinterfacecommand{usereferences}{gebruikreferenties}
-\setinterfacecommand{usespecials}{gebruikspecials}
-\setinterfacecommand{usesymbols}{gebruiksymbolen}
-\setinterfacecommand{usetypescript}{gebruiktypescript}
-\setinterfacecommand{usetypescriptfile}{gebruiktypescriptfile}
-\setinterfacecommand{useurl}{gebruikurl}
-\setinterfacecommand{verbatim}{verbatim}
-\setinterfacecommand{version}{versie}
-\setinterfacecommand{vl}{vl}
-\setinterfacecommand{weekday}{weekdag}
-\setinterfacecommand{whitespace}{witruimte}
-\setinterfacecommand{widthspanningtext}{widthspanningtext}
-\setinterfacecommand{wordright}{woordrechts}
-\setinterfacecommand{writebetweenlist}{schrijftussenlijst}
-\setinterfacecommand{writetolist}{schrijfnaarlijst}
-\setinterfacecommand{writetoreferencelist}{schrijfnaarreferentielijst}
-\setinterfacecommand{writetoregister}{schrijfnaarregister}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-pe.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-pe.mkii
deleted file mode 100644
index bbfae955629..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-pe.mkii
+++ /dev/null
@@ -1,2224 +0,0 @@
-% this file is auto-generated, don't edit this file
-%
-% definitions for interface variables for language pe
-%
-\setinterfacevariable{Addition}{جمع}
-\setinterfacevariable{Alphabetic}{Alphabetic}
-\setinterfacevariable{Balloon}{بادکنک}
-\setinterfacevariable{Cap}{Cap}
-\setinterfacevariable{Capital}{Capital}
-\setinterfacevariable{Character}{Character}
-\setinterfacevariable{Characters}{Characters}
-\setinterfacevariable{CloseDocument}{بستن‌نوشتار}
-\setinterfacevariable{ExitViewer}{خروج‌نمایشگر}
-\setinterfacevariable{FirstPage}{صفحه‌اول}
-\setinterfacevariable{FitHeight}{پرکردن‌ارتفاع}
-\setinterfacevariable{FitWidth}{پرکردن‌عرض}
-\setinterfacevariable{GotoPage}{برو‌به‌صفحه}
-\setinterfacevariable{Greek}{یونانی}
-\setinterfacevariable{Help}{کمک}
-\setinterfacevariable{HideField}{پنهان‌میدان}
-\setinterfacevariable{HideLayer}{پنهان‌لایه}
-\setinterfacevariable{Key}{کلید}
-\setinterfacevariable{LastPage}{صفحه‌آخر}
-\setinterfacevariable{LoadForm}{بارگذاشتن‌فرم}
-\setinterfacevariable{MONTH}{ماه}
-\setinterfacevariable{New}{جدید}
-\setinterfacevariable{NextJump}{پرش‌بعدی}
-\setinterfacevariable{NextPage}{صفحه‌بعدی}
-\setinterfacevariable{Numbers}{شماره‌ها}
-\setinterfacevariable{OpenNamedDocument}{بازکردن‌نوشتار‌ذخیره‌شده}
-\setinterfacevariable{Ordinal}{Ordinal}
-\setinterfacevariable{Paragraph}{پاراگراف}
-\setinterfacevariable{PauseMovie}{ایست‌فیلم}
-\setinterfacevariable{PauseRendering}{توقف‌تعبیر}
-\setinterfacevariable{PauseSound}{ایست‌صدا}
-\setinterfacevariable{PreviousJump}{پرش‌قبلی}
-\setinterfacevariable{PreviousPage}{صفحه‌قبلی}
-\setinterfacevariable{PrintDocument}{چاپ‌نوشتار}
-\setinterfacevariable{Query}{پرسش}
-\setinterfacevariable{QueryAgain}{پرسش‌دوباره}
-\setinterfacevariable{ResetForm}{دوباره‌نشانی‌فرم}
-\setinterfacevariable{ResumeMovie}{ادامه‌فیلم}
-\setinterfacevariable{ResumeRendering}{ادامه‌تعبیر}
-\setinterfacevariable{ResumeSound}{ادامه‌صدا}
-\setinterfacevariable{Romannumerals}{اعداد‌بزرگ‌لاتین}
-\setinterfacevariable{SaveDocument}{ذخیره‌نوشتار}
-\setinterfacevariable{SaveForm}{ذخیره‌فرم}
-\setinterfacevariable{SaveNamedDocument}{ذخیره‌نوشتار‌بانام}
-\setinterfacevariable{SearchAgain}{جستجوی‌دوباره}
-\setinterfacevariable{SearchDocument}{جستجوی‌نوشتار}
-\setinterfacevariable{ShowBookmarks}{نمایش‌چوبخط}
-\setinterfacevariable{ShowField}{نمایش‌میدان}
-\setinterfacevariable{ShowThumbs}{نمایش‌شصت}
-\setinterfacevariable{StartMovie}{شروع‌فیلم}
-\setinterfacevariable{StartRendering}{شروع‌تعبیر}
-\setinterfacevariable{StartSound}{شروع‌صدا}
-\setinterfacevariable{StopMovie}{پایان‌فیلم}
-\setinterfacevariable{StopRendering}{پایان‌تعبیر}
-\setinterfacevariable{StopSound}{پایان‌صدا}
-\setinterfacevariable{SubmitForm}{تسلیم‌فرم}
-\setinterfacevariable{ToggleLayer}{تغییرلایه}
-\setinterfacevariable{ToggleViewer}{تغییرنمایشگر}
-\setinterfacevariable{URL}{URL}
-\setinterfacevariable{VideLayer}{VideLayer}
-\setinterfacevariable{ViewerHelp}{کمک‌نمایشگر}
-\setinterfacevariable{WEEKDAY}{روزهفته}
-\setinterfacevariable{WORD}{کلمه}
-\setinterfacevariable{WORDS}{WORDS}
-\setinterfacevariable{Word}{Word}
-\setinterfacevariable{Words}{Words}
-\setinterfacevariable{abbreviation}{اختصار}
-\setinterfacevariable{abbreviations}{اختصارات}
-\setinterfacevariable{absolute}{قطعی}
-\setinterfacevariable{action}{کنش}
-\setinterfacevariable{after}{بعداز}
-\setinterfacevariable{all}{همه}
-\setinterfacevariable{alphabetic}{alphabetic}
-\setinterfacevariable{always}{همواره}
-\setinterfacevariable{anchor}{anchor}
-\setinterfacevariable{and}{and}
-\setinterfacevariable{answerarea}{answerarea}
-\setinterfacevariable{appendices}{پیوستها}
-\setinterfacevariable{appendix}{پیوست}
-\setinterfacevariable{april}{آوریل}
-\setinterfacevariable{aside}{aside}
-\setinterfacevariable{atleftmargin}{درحاشیه‌چپ}
-\setinterfacevariable{atmargin}{درحاشیه}
-\setinterfacevariable{atpage}{درصفحه}
-\setinterfacevariable{atrightmargin}{درحاشیه‌راست}
-\setinterfacevariable{attachment}{attachment}
-\setinterfacevariable{august}{آگوست}
-\setinterfacevariable{author}{author}
-\setinterfacevariable{auto}{خودکار}
-\setinterfacevariable{autointro}{پیشگفتارخودکار}
-\setinterfacevariable{autopunctuation}{autopunctuation}
-\setinterfacevariable{back}{پشت}
-\setinterfacevariable{background}{پس‌زمینه}
-\setinterfacevariable{backmatter}{پس‌مطلب}
-\setinterfacevariable{backpart}{پس‌قسمت}
-\setinterfacevariable{backspace}{فضای‌پشت}
-\setinterfacevariable{backward}{عقب‌گرد}
-\setinterfacevariable{bbl}{bbl}
-\setinterfacevariable{before}{قبل‌از}
-\setinterfacevariable{begin}{begin}
-\setinterfacevariable{bib}{bib}
-\setinterfacevariable{big}{بزرگ}
-\setinterfacevariable{bigbodyfont}{قلم‌بدنه‌بزرگ}
-\setinterfacevariable{bigger}{bigger}
-\setinterfacevariable{bigpreference}{اولویت‌بزرگ}
-\setinterfacevariable{blank}{خالی}
-\setinterfacevariable{block}{block}
-\setinterfacevariable{blockquote}{نقل‌بلوک}
-\setinterfacevariable{bodymatter}{مطلب‌بدنه}
-\setinterfacevariable{bodypart}{قسمت‌بدنه}
-\setinterfacevariable{bold}{مشکی}
-\setinterfacevariable{bolditalic}{ایتالیک‌مشکی}
-\setinterfacevariable{boldslanted}{خوابیده‌مشکی}
-\setinterfacevariable{bookmark}{چوبخط}
-\setinterfacevariable{both}{هردو}
-\setinterfacevariable{bothtext}{bothtext}
-\setinterfacevariable{bottom}{پایین}
-\setinterfacevariable{box}{box}
-\setinterfacevariable{brief}{مختصر}
-\setinterfacevariable{broad}{گسترده}
-\setinterfacevariable{buffer}{بافر}
-\setinterfacevariable{by}{بوسیله}
-\setinterfacevariable{calligraphic}{خوشنویسی}
-\setinterfacevariable{camel}{camel}
-\setinterfacevariable{cap}{cap}
-\setinterfacevariable{capital}{capital}
-\setinterfacevariable{category}{category}
-\setinterfacevariable{cd:character}{cd:character}
-\setinterfacevariable{cd:font}{cd:font}
-\setinterfacevariable{center}{مرکز}
-\setinterfacevariable{centerlast}{centerlast}
-\setinterfacevariable{chapter}{فصل}
-\setinterfacevariable{character}{حرف}
-\setinterfacevariable{characters}{حرفها}
-\setinterfacevariable{chemical}{chemical}
-\setinterfacevariable{chemicals}{chemicals}
-\setinterfacevariable{chemistry}{chemistry}
-\setinterfacevariable{cite}{cite}
-\setinterfacevariable{closed}{closed}
-\setinterfacevariable{color}{رنگ}
-\setinterfacevariable{column}{ستون}
-\setinterfacevariable{columns}{ستونها}
-\setinterfacevariable{combination}{combination}
-\setinterfacevariable{command}{فرمان}
-\setinterfacevariable{commands}{فرمانها}
-\setinterfacevariable{comment}{توضیح}
-\setinterfacevariable{component}{مولفه}
-\setinterfacevariable{compressseparator}{compressseparator}
-\setinterfacevariable{compressstopper}{compressstopper}
-\setinterfacevariable{concept}{مفهوم}
-\setinterfacevariable{construction}{construction}
-\setinterfacevariable{content}{محتوا}
-\setinterfacevariable{contents}{محتویات}
-\setinterfacevariable{continue}{ادامه}
-\setinterfacevariable{continued}{continued}
-\setinterfacevariable{controls}{کنترلها}
-\setinterfacevariable{conversion}{تبدیل}
-\setinterfacevariable{current}{جاری}
-\setinterfacevariable{cutspace}{فضای‌برش}
-\setinterfacevariable{dataset}{dataset}
-\setinterfacevariable{date}{تاریخ}
-\setinterfacevariable{day}{روز}
-\setinterfacevariable{december}{دسامبر}
-\setinterfacevariable{default}{پیش‌فرض}
-\setinterfacevariable{depth}{عمق}
-\setinterfacevariable{description}{شرح}
-\setinterfacevariable{disable}{ناتوان}
-\setinterfacevariable{display}{نمایش}
-\setinterfacevariable{dot}{نقطه}
-\setinterfacevariable{doublesided}{دورو}
-\setinterfacevariable{down}{down}
-\setinterfacevariable{each}{هر}
-\setinterfacevariable{edge}{لبه}
-\setinterfacevariable{effective}{effective}
-\setinterfacevariable{eight}{eight}
-\setinterfacevariable{embed}{embed}
-\setinterfacevariable{empty}{تهی}
-\setinterfacevariable{enable}{enable}
-\setinterfacevariable{end}{end}
-\setinterfacevariable{endnote}{ته‌نوشت}
-\setinterfacevariable{enumeration}{شماره‌بندی}
-\setinterfacevariable{environment}{محیط}
-\setinterfacevariable{even}{زوج}
-\setinterfacevariable{export}{export}
-\setinterfacevariable{external}{خارجی}
-\setinterfacevariable{extremestretch}{extremestretch}
-\setinterfacevariable{fact}{fact}
-\setinterfacevariable{fallback}{fallback}
-\setinterfacevariable{february}{فوریه}
-\setinterfacevariable{field}{field}
-\setinterfacevariable{figure}{شکل}
-\setinterfacevariable{figures}{شکلها}
-\setinterfacevariable{file}{پرونده}
-\setinterfacevariable{final}{نهایی}
-\setinterfacevariable{first}{اولی}
-\setinterfacevariable{firstcolumn}{ستون‌اول}
-\setinterfacevariable{firstpage}{صفحه‌اول}
-\setinterfacevariable{firstsubpage}{زیرصفحه‌اول}
-\setinterfacevariable{fit}{پرکردن}
-\setinterfacevariable{five}{پنج}
-\setinterfacevariable{fix}{ثابت‌کن}
-\setinterfacevariable{fixed}{ثابت}
-\setinterfacevariable{flexible}{انعطافپذیر}
-\setinterfacevariable{float}{شناور}
-\setinterfacevariable{flushinner}{پمپ‌داخلی}
-\setinterfacevariable{flushleft}{پمپ‌چپ}
-\setinterfacevariable{flushouter}{پمپ‌خارجی}
-\setinterfacevariable{flushright}{پمپ‌راست}
-\setinterfacevariable{followingpage}{followingpage}
-\setinterfacevariable{font}{font}
-\setinterfacevariable{footer}{ته‌برگ}
-\setinterfacevariable{footnote}{پانوشت}
-\setinterfacevariable{force}{اجبار}
-\setinterfacevariable{foreground}{پیش‌زمینه}
-\setinterfacevariable{formula}{فرمول}
-\setinterfacevariable{formulas}{فرمولها}
-\setinterfacevariable{forward}{به‌جلو}
-\setinterfacevariable{four}{چهار}
-\setinterfacevariable{fractions}{fractions}
-\setinterfacevariable{frame}{قالب}
-\setinterfacevariable{framedtext}{متن‌قالبی}
-\setinterfacevariable{friday}{جمعه}
-\setinterfacevariable{frontmatter}{پیش‌مطلب}
-\setinterfacevariable{frontpart}{پیش‌قسمت}
-\setinterfacevariable{fullhz}{fullhz}
-\setinterfacevariable{global}{سراسری}
-\setinterfacevariable{graphic}{گرافیک}
-\setinterfacevariable{graphics}{گرافیکها}
-\setinterfacevariable{gray}{خاکستری}
-\setinterfacevariable{greek}{یونانی}
-\setinterfacevariable{grid}{توری}
-\setinterfacevariable{halfline}{نیم‌خط}
-\setinterfacevariable{handwritten}{دست‌نوشته}
-\setinterfacevariable{hang}{بیاویز}
-\setinterfacevariable{hanging}{آویزان}
-\setinterfacevariable{hangingboth}{hangingboth}
-\setinterfacevariable{head}{سر}
-\setinterfacevariable{header}{سربرگ}
-\setinterfacevariable{headintext}{headintext}
-\setinterfacevariable{height}{ارتفاع}
-\setinterfacevariable{helptext}{متن‌کمکی}
-\setinterfacevariable{hencefore}{hencefore}
-\setinterfacevariable{here}{اینجا}
-\setinterfacevariable{hereafter}{ازاین‌به‌بعد}
-\setinterfacevariable{hidden}{پنهانی}
-\setinterfacevariable{hiddenbar}{hiddenbar}
-\setinterfacevariable{hiding}{پنهان‌کردن}
-\setinterfacevariable{high}{بلند}
-\setinterfacevariable{horizontal}{افقی}
-\setinterfacevariable{hyphenated}{شکسته}
-\setinterfacevariable{hz}{hz}
-\setinterfacevariable{inbetween}{دربین}
-\setinterfacevariable{index}{نمایه}
-\setinterfacevariable{indices}{نمایه‌ها}
-\setinterfacevariable{inherit}{ارث‌بردن}
-\setinterfacevariable{ininner}{درداخلی}
-\setinterfacevariable{ininneredge}{ininneredge}
-\setinterfacevariable{ininnermargin}{ininnermargin}
-\setinterfacevariable{inleft}{درون‌چپ}
-\setinterfacevariable{inleftedge}{درلبه‌چپ}
-\setinterfacevariable{inleftmargin}{درحاشیه‌چپ}
-\setinterfacevariable{inline}{inline}
-\setinterfacevariable{inmargin}{درون‌حاشیه}
-\setinterfacevariable{inner}{داخلی}
-\setinterfacevariable{inneredge}{لبه‌داخلی}
-\setinterfacevariable{innermargin}{حاشیه‌داخلی}
-\setinterfacevariable{inother}{inother}
-\setinterfacevariable{inouter}{درخارجی}
-\setinterfacevariable{inouteredge}{inouteredge}
-\setinterfacevariable{inoutermargin}{inoutermargin}
-\setinterfacevariable{inright}{درون‌راست}
-\setinterfacevariable{inrightedge}{درلبه‌راست}
-\setinterfacevariable{inrightmargin}{درحاشیه‌راست}
-\setinterfacevariable{integral}{integral}
-\setinterfacevariable{interaction}{پانل}
-\setinterfacevariable{interactionmenu}{منوی‌پانل}
-\setinterfacevariable{interactive}{interactive}
-\setinterfacevariable{intermezzi}{میان‌پرده‌ها}
-\setinterfacevariable{intermezzo}{میان‌پرده}
-\setinterfacevariable{intext}{درون‌متن}
-\setinterfacevariable{intro}{پیشگفتار}
-\setinterfacevariable{invertedshort}{invertedshort}
-\setinterfacevariable{italic}{ایتالیک}
-\setinterfacevariable{italicbold}{مشکی‌ایتالیک}
-\setinterfacevariable{item}{آیتم}
-\setinterfacevariable{itemize}{آیتم‌بندی}
-\setinterfacevariable{its}{آیم}
-\setinterfacevariable{january}{ژانویه}
-\setinterfacevariable{joinedup}{متصل‌بالا}
-\setinterfacevariable{july}{ژولای}
-\setinterfacevariable{june}{ژوئن}
-\setinterfacevariable{keep}{نگهدار}
-\setinterfacevariable{kerncharacters}{kerncharacters}
-\setinterfacevariable{knockout}{knockout}
-\setinterfacevariable{label}{برچسب}
-\setinterfacevariable{landscape}{صفحه‌گسترده}
-\setinterfacevariable{last}{آخرین}
-\setinterfacevariable{lastcolumn}{آخرین‌ستون}
-\setinterfacevariable{lastpage}{صفحه‌آخر}
-\setinterfacevariable{lastpagenumber}{شماه‌صفحه‌آخر}
-\setinterfacevariable{lastsubpage}{زیرصفحه‌آخر}
-\setinterfacevariable{layer}{layer}
-\setinterfacevariable{left}{چپ}
-\setinterfacevariable{leftedge}{لبه‌چپ}
-\setinterfacevariable{lefthanging}{آویزان‌چپ}
-\setinterfacevariable{leftmargin}{حاشیه‌چپ}
-\setinterfacevariable{leftpage}{صفحه‌چپ}
-\setinterfacevariable{lefttoright}{lefttoright}
-\setinterfacevariable{legend}{راهنما}
-\setinterfacevariable{less}{less}
-\setinterfacevariable{lesshyphenation}{شکست‌کلمات‌کمتر}
-\setinterfacevariable{letterspacing}{letterspacing}
-\setinterfacevariable{line}{خط}
-\setinterfacevariable{linenote}{خط‌نوشت}
-\setinterfacevariable{lines}{خطها}
-\setinterfacevariable{linked}{linked}
-\setinterfacevariable{list}{لیست}
-\setinterfacevariable{local}{موضعی}
-\setinterfacevariable{localenvironment}{محیط‌موضعی}
-\setinterfacevariable{logo}{آرم}
-\setinterfacevariable{logos}{آرمها}
-\setinterfacevariable{lohi}{پابا}
-\setinterfacevariable{long}{long}
-\setinterfacevariable{loose}{شل}
-\setinterfacevariable{low}{پایین}
-\setinterfacevariable{ls}{ls}
-\setinterfacevariable{makeup}{آرایش}
-\setinterfacevariable{mar}{حاش}
-\setinterfacevariable{march}{مارس}
-\setinterfacevariable{margin}{حاشیه}
-\setinterfacevariable{marginedge}{لبه‌حاشیه}
-\setinterfacevariable{margintext}{متن‌حاشیه}
-\setinterfacevariable{margintitle}{عنوان‌حاشیه}
-\setinterfacevariable{marking}{نشانه‌گذاری}
-\setinterfacevariable{math}{math}
-\setinterfacevariable{mathalignment}{تنظیم‌ریاضی}
-\setinterfacevariable{mathcases}{حالتهای‌ریاضی}
-\setinterfacevariable{mathematics}{ریاضی}
-\setinterfacevariable{mathmatrix}{ماتریش‌ریاضی}
-\setinterfacevariable{max}{بیشترین}
-\setinterfacevariable{maxdepth}{maxdepth}
-\setinterfacevariable{maxheight}{maxheight}
-\setinterfacevariable{maxwidth}{maxwidth}
-\setinterfacevariable{may}{مه}
-\setinterfacevariable{mediaeval}{mediaeval}
-\setinterfacevariable{medium}{متوسط}
-\setinterfacevariable{middle}{میان}
-\setinterfacevariable{min}{کمترین}
-\setinterfacevariable{mindepth}{mindepth}
-\setinterfacevariable{minheight}{کمترین‌ارتفاع}
-\setinterfacevariable{minwidth}{کمترین‌عرض}
-\setinterfacevariable{mirrored}{منعکس}
-\setinterfacevariable{mixed}{mixed}
-\setinterfacevariable{monday}{دوشنبه}
-\setinterfacevariable{mono}{مونو}
-\setinterfacevariable{monobold}{monobold}
-\setinterfacevariable{mononormal}{mononormal}
-\setinterfacevariable{month}{ماه}
-\setinterfacevariable{more}{more}
-\setinterfacevariable{morehyphenation}{شکست‌کلمات‌بیشتر}
-\setinterfacevariable{name}{نام}
-\setinterfacevariable{narrow}{نازک}
-\setinterfacevariable{negative}{منفی}
-\setinterfacevariable{never}{هیچگاه}
-\setinterfacevariable{new}{جدید}
-\setinterfacevariable{next}{بعدی}
-\setinterfacevariable{nextevenpage}{صفحه‌زوج‌بعدی}
-\setinterfacevariable{nextoddpage}{صفحه‌فردبعدی}
-\setinterfacevariable{nextpage}{صفحه‌بعدی}
-\setinterfacevariable{nextsubpage}{زیرصفحه‌بعدی}
-\setinterfacevariable{nine}{nine}
-\setinterfacevariable{no}{نه}
-\setinterfacevariable{nocheck}{بدون‌بررسی}
-\setinterfacevariable{nodepth}{nodepth}
-\setinterfacevariable{nofit}{بدون‌پرکردن}
-\setinterfacevariable{nogrid}{بدون‌توری}
-\setinterfacevariable{noheight}{noheight}
-\setinterfacevariable{nohz}{nohz}
-\setinterfacevariable{noline}{noline}
-\setinterfacevariable{nomarking}{بدون‌نشانه‌گذاری}
-\setinterfacevariable{nomenubar}{nomenubar}
-\setinterfacevariable{none}{هیچکدام}
-\setinterfacevariable{nonumber}{بدون‌شماره}
-\setinterfacevariable{norepeat}{norepeat}
-\setinterfacevariable{normal}{نرمال}
-\setinterfacevariable{normalshort}{normalshort}
-\setinterfacevariable{nospacing}{بدون‌فضاگذاری}
-\setinterfacevariable{nostopper}{nostopper}
-\setinterfacevariable{not}{بدون}
-\setinterfacevariable{notation}{notation}
-\setinterfacevariable{note}{note}
-\setinterfacevariable{nothanging}{بدون‌آویزان‌کردن}
-\setinterfacevariable{nothyphenated}{بدون‌شکست}
-\setinterfacevariable{notjoinedup}{notjoinedup}
-\setinterfacevariable{november}{نوامبر}
-\setinterfacevariable{nowhere}{هیچ‌حا}
-\setinterfacevariable{nowhite}{سفید‌نه}
-\setinterfacevariable{number}{شماره}
-\setinterfacevariable{numbers}{شماره‌ها}
-\setinterfacevariable{october}{اکتبر}
-\setinterfacevariable{odd}{فرد}
-\setinterfacevariable{off}{خاموش}
-\setinterfacevariable{offset}{آفست}
-\setinterfacevariable{old}{قدیمی}
-\setinterfacevariable{oldstyle}{oldstyle}
-\setinterfacevariable{on}{روی}
-\setinterfacevariable{one}{یک}
-\setinterfacevariable{opposite}{مخالف}
-\setinterfacevariable{ordinal}{ordinal}
-\setinterfacevariable{outer}{خارجی}
-\setinterfacevariable{outeredge}{لبه‌خارجی}
-\setinterfacevariable{outermargin}{حاشیه‌خارجی}
-\setinterfacevariable{overbar}{میله‌رو}
-\setinterfacevariable{overbars}{میله‌ها‌رو}
-\setinterfacevariable{overlay}{پوشش}
-\setinterfacevariable{overprint}{overprint}
-\setinterfacevariable{overstrike}{خط‌زدن}
-\setinterfacevariable{overstrikes}{خط‌زدنها}
-\setinterfacevariable{packed}{فشرده}
-\setinterfacevariable{page}{صفحه}
-\setinterfacevariable{pagecomment}{توضیح‌صفحه}
-\setinterfacevariable{pagenumber}{شماره‌صفحه}
-\setinterfacevariable{paper}{برگ}
-\setinterfacevariable{paragraph}{پاراگراف}
-\setinterfacevariable{part}{قسمت}
-\setinterfacevariable{positive}{مثبت}
-\setinterfacevariable{postponing}{تاخیر}
-\setinterfacevariable{postscript}{پست‌اسکریپت}
-\setinterfacevariable{precedingpage}{precedingpage}
-\setinterfacevariable{preference}{ترجیح}
-\setinterfacevariable{preview}{پیش‌دید}
-\setinterfacevariable{previous}{قبلی}
-\setinterfacevariable{previousevenpage}{صفحه‌زوج‌قبلی}
-\setinterfacevariable{previousoddpage}{صفحه‌فردقبلی}
-\setinterfacevariable{previouspage}{صفحه‌قبلی}
-\setinterfacevariable{previoussubpage}{زیرصفحه‌قبلی}
-\setinterfacevariable{print}{print}
-\setinterfacevariable{printable}{قابل‌چاپ}
-\setinterfacevariable{process}{پردازش}
-\setinterfacevariable{product}{محصول}
-\setinterfacevariable{program}{برنامه}
-\setinterfacevariable{project}{پروژه}
-\setinterfacevariable{protected}{حفاظت‌شده}
-\setinterfacevariable{quadruple}{quadruple}
-\setinterfacevariable{quarterline}{quarterline}
-\setinterfacevariable{quotation}{نقل‌قول}
-\setinterfacevariable{quote}{نقل}
-\setinterfacevariable{ran}{برد}
-\setinterfacevariable{random}{تصادفی}
-\setinterfacevariable{readonly}{تنهاخواندنی}
-\setinterfacevariable{rectangular}{چهارگوشه}
-\setinterfacevariable{reference}{مرجع}
-\setinterfacevariable{referral}{مراجعه}
-\setinterfacevariable{region}{region}
-\setinterfacevariable{register}{ثبت}
-\setinterfacevariable{regular}{منظم}
-\setinterfacevariable{relative}{نسبی}
-\setinterfacevariable{repeat}{تکرار}
-\setinterfacevariable{required}{موردنیاز}
-\setinterfacevariable{reset}{بازنشانی}
-\setinterfacevariable{reverse}{برعکس}
-\setinterfacevariable{right}{راست}
-\setinterfacevariable{rightedge}{لبه‌راست}
-\setinterfacevariable{righthanging}{آویزان‌کردن‌راست}
-\setinterfacevariable{rightmargin}{حاشیه‌راست}
-\setinterfacevariable{rightpage}{صفحه‌راست}
-\setinterfacevariable{righttoleft}{righttoleft}
-\setinterfacevariable{roman}{رومن}
-\setinterfacevariable{romannumerals}{شماره‌لاتین}
-\setinterfacevariable{rotate}{دوران}
-\setinterfacevariable{rotated}{دوران‌یافته}
-\setinterfacevariable{round}{گرد}
-\setinterfacevariable{row}{سطر}
-\setinterfacevariable{rule}{خط}
-\setinterfacevariable{samepage}{همان‌صفحه}
-\setinterfacevariable{sans}{سانز}
-\setinterfacevariable{sansbold}{مشکی‌سانز}
-\setinterfacevariable{sansnormal}{sansnormal}
-\setinterfacevariable{sansserif}{سانزسریف}
-\setinterfacevariable{saturday}{شنبه}
-\setinterfacevariable{screen}{پرده}
-\setinterfacevariable{section}{بخش}
-\setinterfacevariable{sectionblockenvironment}{محیط‌بلوک‌بخش}
-\setinterfacevariable{sectionnumber}{شماره‌بخش}
-\setinterfacevariable{see}{ببینید}
-\setinterfacevariable{selectfont}{selectfont}
-\setinterfacevariable{separator}{separator}
-\setinterfacevariable{september}{سپتامبر}
-\setinterfacevariable{serif}{سریف}
-\setinterfacevariable{serifbold}{serifbold}
-\setinterfacevariable{serifnormal}{serifnormal}
-\setinterfacevariable{serried}{تنگ‌هم}
-\setinterfacevariable{setups}{setups}
-\setinterfacevariable{seven}{seven}
-\setinterfacevariable{sheet}{ورقه}
-\setinterfacevariable{shiftdown}{shiftdown}
-\setinterfacevariable{shiftup}{shiftup}
-\setinterfacevariable{short}{short}
-\setinterfacevariable{simplefonts}{simplefonts}
-\setinterfacevariable{simplelist}{simplelist}
-\setinterfacevariable{singlesided}{یک‌رو}
-\setinterfacevariable{six}{six}
-\setinterfacevariable{slanted}{خوابیده}
-\setinterfacevariable{slantedbold}{مشکی‌خوابیده}
-\setinterfacevariable{small}{کوچک}
-\setinterfacevariable{smallbodyfont}{قلم‌بدنه‌کوچک}
-\setinterfacevariable{smallbold}{مشکی‌کوچک}
-\setinterfacevariable{smallbolditalic}{ایتالیک‌مشکی‌کوچک}
-\setinterfacevariable{smallboldslanted}{خوابیده‌مشکی‌کوچک}
-\setinterfacevariable{smallcaps}{smallcaps}
-\setinterfacevariable{smaller}{smaller}
-\setinterfacevariable{smallitalic}{ایتالیک‌کوچک}
-\setinterfacevariable{smallitalicbold}{مشکی‌ایتالیک‌کوچک}
-\setinterfacevariable{smallnormal}{نرمال‌کوچک}
-\setinterfacevariable{smallslanted}{خوابیده‌کوچک}
-\setinterfacevariable{smallslantedbold}{مشکی‌خوابیده‌کوچک}
-\setinterfacevariable{smalltype}{تایپ‌کوچک}
-\setinterfacevariable{somewhere}{جایی}
-\setinterfacevariable{sorted}{مرتب}
-\setinterfacevariable{sorting}{sorting}
-\setinterfacevariable{space}{فضا}
-\setinterfacevariable{spacing}{فضاگذاری}
-\setinterfacevariable{speech}{سخنرانی}
-\setinterfacevariable{split}{شکافتن}
-\setinterfacevariable{spot}{لکه}
-\setinterfacevariable{standard}{استاندارد}
-\setinterfacevariable{start}{شروع}
-\setinterfacevariable{starter}{starter}
-\setinterfacevariable{sticker}{دشنه}
-\setinterfacevariable{stop}{پایان}
-\setinterfacevariable{stopper}{ایست}
-\setinterfacevariable{stretch}{بکش}
-\setinterfacevariable{stretched}{stretched}
-\setinterfacevariable{strict}{اکید}
-\setinterfacevariable{strong}{محکم}
-\setinterfacevariable{strut}{بست}
-\setinterfacevariable{sub}{زیر}
-\setinterfacevariable{subbackward}{زیرعقب‌گرد}
-\setinterfacevariable{subformula}{زیرفرمول}
-\setinterfacevariable{subforward}{زیرجلوگرد}
-\setinterfacevariable{subject}{موضوع}
-\setinterfacevariable{subpage}{زیرصفحه}
-\setinterfacevariable{subs}{subs}
-\setinterfacevariable{subsection}{زیربخش}
-\setinterfacevariable{subsubject}{زیرموضوع}
-\setinterfacevariable{subsubsection}{زیرزیربخش}
-\setinterfacevariable{subsubsubject}{زیرزیرموضوع}
-\setinterfacevariable{subsubsubsection}{زیرزیرزیربخش}
-\setinterfacevariable{subsubsubsubject}{زیرزیرزیرموضوع}
-\setinterfacevariable{subsubsubsubsection}{زیرزیرزیرزیربخش}
-\setinterfacevariable{subsubsubsubsubject}{زیرزیرزیرزیرموضوع}
-\setinterfacevariable{subsubsubsubsubsection}{زیرزیرزیرزیرزیربخش}
-\setinterfacevariable{subsubsubsubsubsubject}{زیرزیرزیرزیرزیرموضوع}
-\setinterfacevariable{subsubsubsubsubsubsection}{زیرزیرزیرزیرزیرزیربخش}
-\setinterfacevariable{subsubsubsubsubsubsubject}{زیرزیرزیرزیرزیرزیرموضوع}
-\setinterfacevariable{subsubsubsubsubsubsubsection}{زیرزیرزیرزیرزیرزیرزیربخش}
-\setinterfacevariable{subsubsubsubsubsubsubsubject}{زیرزیرزیرزیرزیرزیرزیرموضوع}
-\setinterfacevariable{subsubsubsubsubsubsubsubsection}{زیرزیرزیرزیرزیرزیرزیرزیربخش}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubject}{زیرزیرزیرزیرزیرزیرزیرزیرموضوع}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{زیرزیرزیرزیرزیرزیرزیرزیرزیربخش}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{زیرزیرزیرزیرزیرزیرزیرزیرزیرموضوع}
-\setinterfacevariable{sunday}{یک‌شنبه}
-\setinterfacevariable{support}{حمایت}
-\setinterfacevariable{sym}{نم}
-\setinterfacevariable{symbol}{نماد}
-\setinterfacevariable{synchronize}{تطابق}
-\setinterfacevariable{synonym}{synonym}
-\setinterfacevariable{system}{سیستم}
-\setinterfacevariable{table}{جدول}
-\setinterfacevariable{tablehead}{سرجدول}
-\setinterfacevariable{tables}{جدولها}
-\setinterfacevariable{tabletail}{دنباله‌جدول}
-\setinterfacevariable{tabulate}{جدول‌بندی}
-\setinterfacevariable{tabulatehead}{سرجدول‌بندی}
-\setinterfacevariable{tabulatetail}{دنباله‌جدول‌بندی}
-\setinterfacevariable{tall}{دراز}
-\setinterfacevariable{teletype}{دورنگاره}
-\setinterfacevariable{temporary}{موقتی}
-\setinterfacevariable{test}{تست}
-\setinterfacevariable{text}{متن}
-\setinterfacevariable{textnote}{textnote}
-\setinterfacevariable{three}{سه}
-\setinterfacevariable{thursday}{پنج‌شنبه}
-\setinterfacevariable{tight}{tight}
-\setinterfacevariable{title}{عنوان}
-\setinterfacevariable{toggle}{تغییر}
-\setinterfacevariable{tolerant}{بردبار}
-\setinterfacevariable{top}{بالا}
-\setinterfacevariable{tuesday}{سه‌شنبه}
-\setinterfacevariable{two}{دو}
-\setinterfacevariable{txt}{txt}
-\setinterfacevariable{type}{تایپ}
-\setinterfacevariable{typing}{تایپ‌کردن}
-\setinterfacevariable{unavailable}{غیرموجود}
-\setinterfacevariable{underbar}{میله‌زیر}
-\setinterfacevariable{underbars}{میله‌‌های‌زیر}
-\setinterfacevariable{understrike}{understrike}
-\setinterfacevariable{understrikes}{understrikes}
-\setinterfacevariable{unframed}{unframed}
-\setinterfacevariable{unicode}{unicode}
-\setinterfacevariable{unit}{واحد}
-\setinterfacevariable{units}{واحدها}
-\setinterfacevariable{unknown}{ناشناس}
-\setinterfacevariable{unpacked}{غیرفشرده}
-\setinterfacevariable{up}{up}
-\setinterfacevariable{url}{url}
-\setinterfacevariable{used}{استفاده‌شده}
-\setinterfacevariable{value}{مقدار}
-\setinterfacevariable{vertical}{عمودی}
-\setinterfacevariable{very}{خیلی}
-\setinterfacevariable{verystrict}{خیلی‌سختگیر}
-\setinterfacevariable{verytolerant}{خیلی‌بردبار}
-\setinterfacevariable{vfenced}{vfenced}
-\setinterfacevariable{vulgarfraction}{vulgarfraction}
-\setinterfacevariable{weak}{هفته}
-\setinterfacevariable{wednesday}{چهارشنبه}
-\setinterfacevariable{week}{هفته}
-\setinterfacevariable{weekday}{روزهفته}
-\setinterfacevariable{white}{سفید}
-\setinterfacevariable{wide}{گسترده}
-\setinterfacevariable{width}{عرض}
-\setinterfacevariable{word}{word}
-\setinterfacevariable{words}{words}
-\setinterfacevariable{xml}{xml}
-\setinterfacevariable{year}{سال}
-\setinterfacevariable{yes}{بله}
-% definitions for interface constants for language pe
-%
-\setinterfaceconstant{action}{کنش}
-\setinterfaceconstant{address}{نشانی}
-\setinterfaceconstant{after}{بعداز}
-\setinterfaceconstant{afterhead}{بعدازسر}
-\setinterfaceconstant{afterkey}{بعدازکلید}
-\setinterfaceconstant{aftersection}{aftersection}
-\setinterfaceconstant{align}{تنظیم}
-\setinterfaceconstant{alignbottom}{alignbottom}
-\setinterfaceconstant{aligncharacter}{حرف‌تنظیم}
-\setinterfaceconstant{alignmentcharacter}{حرف‌تنظیم‌کردن}
-\setinterfaceconstant{alignmentleftsample}{alignmentleftsample}
-\setinterfaceconstant{alignmentleftwidth}{alignmentleftwidth}
-\setinterfaceconstant{alignmentrightsample}{alignmentrightsample}
-\setinterfaceconstant{alignmentrightwidth}{alignmentrightwidth}
-\setinterfaceconstant{alignsymbol}{alignsymbol}
-\setinterfaceconstant{aligntitle}{عنوان‌تنظیم}
-\setinterfaceconstant{alternative}{جایگزین}
-\setinterfaceconstant{anchor}{anchor}
-\setinterfaceconstant{anchoring}{anchoring}
-\setinterfaceconstant{andtext}{andtext}
-\setinterfaceconstant{apa}{apa}
-\setinterfaceconstant{arguments}{arguments}
-\setinterfaceconstant{arrow}{پیکان}
-\setinterfaceconstant{artauthor}{artauthor}
-\setinterfaceconstant{artauthoretaldisplay}{artauthoretaldisplay}
-\setinterfaceconstant{artauthoretallimit}{artauthoretallimit}
-\setinterfaceconstant{artauthoretaltext}{artauthoretaltext}
-\setinterfaceconstant{artoffset}{artoffset}
-\setinterfaceconstant{at}{در}
-\setinterfaceconstant{author}{نویسنده}
-\setinterfaceconstant{authorconversion}{authorconversion}
-\setinterfaceconstant{authoretaldisplay}{authoretaldisplay}
-\setinterfaceconstant{authoretallimit}{authoretallimit}
-\setinterfaceconstant{authoretaltext}{authoretaltext}
-\setinterfaceconstant{auto}{خودکار}
-\setinterfaceconstant{autocase}{autocase}
-\setinterfaceconstant{autofile}{پرونده‌خودکار}
-\setinterfaceconstant{autofocus}{تمرکز‌خودکار}
-\setinterfaceconstant{autohang}{آویزان‌خودکار}
-\setinterfaceconstant{autostrut}{بست‌خودکار}
-\setinterfaceconstant{autowidth}{عرض‌خودکار}
-\setinterfaceconstant{availableheight}{availableheight}
-\setinterfaceconstant{availablewidth}{availablewidth}
-\setinterfaceconstant{axis}{محورها}
-\setinterfaceconstant{background}{پس‌زمینه}
-\setinterfaceconstant{backgroundcolor}{رنگ‌پس‌زمینه}
-\setinterfaceconstant{backgroundcorner}{گوشه‌پس‌زمینه}
-\setinterfaceconstant{backgrounddepth}{عمق‌پس‌زمینه}
-\setinterfaceconstant{backgroundoffset}{آفست‌پس‌زمینه}
-\setinterfaceconstant{backgroundradius}{شعاع‌پس‌زمینه}
-\setinterfaceconstant{backgroundscreen}{پرده‌پس‌زمینه}
-\setinterfaceconstant{backreference}{backreference}
-\setinterfaceconstant{backspace}{فضای‌پس}
-\setinterfaceconstant{balance}{تعادل}
-\setinterfaceconstant{before}{قبل‌از}
-\setinterfaceconstant{beforehead}{قبل‌ازسر}
-\setinterfaceconstant{beforesection}{beforesection}
-\setinterfaceconstant{bet}{bet}
-\setinterfaceconstant{bidi}{bidi}
-\setinterfaceconstant{big}{بزرگ}
-\setinterfaceconstant{blank}{خالی}
-\setinterfaceconstant{bleedoffset}{bleedoffset}
-\setinterfaceconstant{blockway}{راه‌بلوک}
-\setinterfaceconstant{bodyfont}{قلم‌بدنه}
-\setinterfaceconstant{boffset}{boffset}
-\setinterfaceconstant{boldfeatures}{boldfeatures}
-\setinterfaceconstant{boldfont}{boldfont}
-\setinterfaceconstant{bolditalicfeatures}{bolditalicfeatures}
-\setinterfaceconstant{bolditalicfont}{bolditalicfont}
-\setinterfaceconstant{boldslantedfeatures}{boldslantedfeatures}
-\setinterfaceconstant{boldslantedfont}{boldslantedfont}
-\setinterfaceconstant{bookmark}{چوبخط}
-\setinterfaceconstant{bottom}{پایین}
-\setinterfaceconstant{bottomafter}{bottomafter}
-\setinterfaceconstant{bottombefore}{bottombefore}
-\setinterfaceconstant{bottomcommand}{bottomcommand}
-\setinterfaceconstant{bottomdistance}{فاصله‌پایین}
-\setinterfaceconstant{bottomframe}{قالب‌پایین}
-\setinterfaceconstant{bottomoffset}{آفست‌پایین}
-\setinterfaceconstant{bottomspace}{فضای‌پایین}
-\setinterfaceconstant{bottomstate}{وضعیت‌پایین}
-\setinterfaceconstant{break}{break}
-\setinterfaceconstant{buffer}{buffer}
-\setinterfaceconstant{cache}{میانگیر}
-\setinterfaceconstant{calculate}{محاسبه}
-\setinterfaceconstant{category}{category}
-\setinterfaceconstant{ccommand}{فرمان}
-\setinterfaceconstant{character}{character}
-\setinterfaceconstant{characters}{characters}
-\setinterfaceconstant{check}{check}
-\setinterfaceconstant{click}{فشردن}
-\setinterfaceconstant{clickin}{فشردن‌داخل}
-\setinterfaceconstant{clickout}{فشردن‌خارج}
-\setinterfaceconstant{clipoffset}{آفست‌کلیپ}
-\setinterfaceconstant{closeaction}{بستن‌کنش}
-\setinterfaceconstant{closecommand}{بستن‌فرمان}
-\setinterfaceconstant{closepage}{closepage}
-\setinterfaceconstant{closepageaction}{بستن‌عمل‌صفحه}
-\setinterfaceconstant{closesymbol}{بستن‌نماد}
-\setinterfaceconstant{color}{رنگ}
-\setinterfaceconstant{column}{ستون}
-\setinterfaceconstant{columndistance}{فاصله‌ستون}
-\setinterfaceconstant{columns}{ستونها}
-\setinterfaceconstant{comma}{comma}
-\setinterfaceconstant{command}{فرمان}
-\setinterfaceconstant{commandafter}{فرمان‌بعداز}
-\setinterfaceconstant{commandbefore}{فرمان‌قبل‌از}
-\setinterfaceconstant{commands}{فرمانها}
-\setinterfaceconstant{comment}{comment}
-\setinterfaceconstant{commentchar}{commentchar}
-\setinterfaceconstant{commentoffset}{commentoffset}
-\setinterfaceconstant{compact}{compact}
-\setinterfaceconstant{component}{مولفه}
-\setinterfaceconstant{compoundhyphen}{compoundhyphen}
-\setinterfaceconstant{compress}{فشردن}
-\setinterfaceconstant{compressdistance}{compressdistance}
-\setinterfaceconstant{compressmethod}{compressmethod}
-\setinterfaceconstant{compressseparator}{compressseparator}
-\setinterfaceconstant{compressstopper}{compressstopper}
-\setinterfaceconstant{concerns}{concerns}
-\setinterfaceconstant{connector}{connector}
-\setinterfaceconstant{continue}{ادامه}
-\setinterfaceconstant{contrastcolor}{contrastcolor}
-\setinterfaceconstant{controls}{کنترلها}
-\setinterfaceconstant{conversion}{تبدیل}
-\setinterfaceconstant{convertfile}{پرونده‌تبدیل}
-\setinterfaceconstant{copies}{copies}
-\setinterfaceconstant{corner}{گوشه}
-\setinterfaceconstant{coupling}{تزویج}
-\setinterfaceconstant{couplingway}{روش‌تزویج}
-\setinterfaceconstant{criterium}{criterium}
-\setinterfaceconstant{cropoffset}{cropoffset}
-\setinterfaceconstant{crossreference}{crossreference}
-\setinterfaceconstant{cssfile}{cssfile}
-\setinterfaceconstant{current}{جاری}
-\setinterfaceconstant{cutspace}{فضای‌برش}
-\setinterfaceconstant{dash}{دش}
-\setinterfaceconstant{dat}{dat}
-\setinterfaceconstant{database}{database}
-\setinterfaceconstant{dataset}{dataset}
-\setinterfaceconstant{date}{تاریخ}
-\setinterfaceconstant{deepnumbercommand}{فرمان‌شماره‌عمیق}
-\setinterfaceconstant{deeptextcommand}{فرمان‌متن‌عمیق}
-\setinterfaceconstant{default}{پیش‌فرض}
-\setinterfaceconstant{defaultheight}{defaultheight}
-\setinterfaceconstant{defaultwidth}{defaultwidth}
-\setinterfaceconstant{define}{define}
-\setinterfaceconstant{delay}{تاخیر}
-\setinterfaceconstant{depth}{عمق}
-\setinterfaceconstant{depthcorrection}{تصحیح‌عمق}
-\setinterfaceconstant{direction}{جهت}
-\setinterfaceconstant{directory}{پوشه}
-\setinterfaceconstant{display}{نمایش}
-\setinterfaceconstant{displaythreshold}{displaythreshold}
-\setinterfaceconstant{distance}{فاصله}
-\setinterfaceconstant{domain}{domain}
-\setinterfaceconstant{dot}{نقطه}
-\setinterfaceconstant{doublesided}{دورو}
-\setinterfaceconstant{down}{down}
-\setinterfaceconstant{dummy}{مصنوعی}
-\setinterfaceconstant{dx}{dx}
-\setinterfaceconstant{dy}{dy}
-\setinterfaceconstant{edge}{لبه}
-\setinterfaceconstant{edgedistance}{فاصله‌لبه}
-\setinterfaceconstant{editor}{editor}
-\setinterfaceconstant{editoretaldisplay}{editoretaldisplay}
-\setinterfaceconstant{editoretallimit}{editoretallimit}
-\setinterfaceconstant{editoretaltext}{editoretaltext}
-\setinterfaceconstant{empty}{تهی}
-\setinterfaceconstant{entities}{entities}
-\setinterfaceconstant{entries}{entries}
-\setinterfaceconstant{equalheight}{ارتفاع‌یکسان}
-\setinterfaceconstant{equalwidth}{عرض‌یکسان}
-\setinterfaceconstant{escape}{فرار}
-\setinterfaceconstant{etaldisplay}{etaldisplay}
-\setinterfaceconstant{etallimit}{etallimit}
-\setinterfaceconstant{etaloption}{etaloption}
-\setinterfaceconstant{etaltext}{etaltext}
-\setinterfaceconstant{evenmargin}{حاشیه‌زوج}
-\setinterfaceconstant{exact}{exact}
-\setinterfaceconstant{exitoffset}{exitoffset}
-\setinterfaceconstant{expansion}{گسترش}
-\setinterfaceconstant{export}{export}
-\setinterfaceconstant{extras}{extras}
-\setinterfaceconstant{factor}{عامل}
-\setinterfaceconstant{fallback}{عقب‌ریختن}
-\setinterfaceconstant{fallbacks}{fallbacks}
-\setinterfaceconstant{family}{خانواده}
-\setinterfaceconstant{features}{features}
-\setinterfaceconstant{featureset}{featureset}
-\setinterfaceconstant{fences}{fences}
-\setinterfaceconstant{field}{field}
-\setinterfaceconstant{fieldbackgroundcolor}{رنگ‌پس‌زمینه‌میدان}
-\setinterfaceconstant{fieldframecolor}{رنگ‌قالب‌میدان}
-\setinterfaceconstant{fieldlayer}{لایه‌میدان}
-\setinterfaceconstant{fieldoffset}{آفست‌میدان}
-\setinterfaceconstant{file}{پرونده}
-\setinterfaceconstant{filler}{filler}
-\setinterfaceconstant{filter}{filter}
-\setinterfaceconstant{filtercommand}{filtercommand}
-\setinterfaceconstant{finalnamesep}{finalnamesep}
-\setinterfaceconstant{finalpagesep}{finalpagesep}
-\setinterfaceconstant{finalpubsep}{finalpubsep}
-\setinterfaceconstant{first}{اولی}
-\setinterfaceconstant{firstnamesep}{firstnamesep}
-\setinterfaceconstant{firstpage}{صفحه‌اول}
-\setinterfaceconstant{focus}{تمرکز}
-\setinterfaceconstant{focusin}{تمرکزدرون}
-\setinterfaceconstant{focusoffset}{focusoffset}
-\setinterfaceconstant{focusout}{تمرکزبیرون}
-\setinterfaceconstant{font}{font}
-\setinterfaceconstant{footer}{ته‌برگ}
-\setinterfaceconstant{footerdistance}{فاصله‌ته‌برگ}
-\setinterfaceconstant{footerstate}{وضعیت‌ته‌برگ}
-\setinterfaceconstant{force}{اجبار}
-\setinterfaceconstant{foregroundcolor}{رنگ‌پیش‌زمینه}
-\setinterfaceconstant{foregroundstyle}{سبک‌پیش‌زمینه}
-\setinterfaceconstant{format}{شمایل}
-\setinterfaceconstant{fractions}{fractions}
-\setinterfaceconstant{frame}{قالب}
-\setinterfaceconstant{framecolor}{رنگ‌قالب}
-\setinterfaceconstant{framecorner}{گوشه‌قالب}
-\setinterfaceconstant{framedepth}{عمق‌قالب}
-\setinterfaceconstant{frameoffset}{آفست‌قالب}
-\setinterfaceconstant{frameradius}{شعاع‌قالب}
-\setinterfaceconstant{frames}{قالبها}
-\setinterfaceconstant{freeregion}{freeregion}
-\setinterfaceconstant{from}{از}
-\setinterfaceconstant{functioncolor}{functioncolor}
-\setinterfaceconstant{functionstyle}{functionstyle}
-\setinterfaceconstant{get}{بگیر}
-\setinterfaceconstant{global}{سراسری}
-\setinterfaceconstant{goodies}{goodies}
-\setinterfaceconstant{grid}{توری}
-\setinterfaceconstant{group}{group}
-\setinterfaceconstant{groupsuffix}{groupsuffix}
-\setinterfaceconstant{hang}{بیاویز}
-\setinterfaceconstant{hcompact}{hcompact}
-\setinterfaceconstant{headalign}{headalign}
-\setinterfaceconstant{headcolor}{رنگ‌سر}
-\setinterfaceconstant{headcommand}{فرمان‌سر}
-\setinterfaceconstant{headconversion}{تبدیل‌سر}
-\setinterfaceconstant{header}{سربرگ}
-\setinterfaceconstant{headerdistance}{فاصله‌سربرگ}
-\setinterfaceconstant{headerstate}{وضعیت‌سربرگ}
-\setinterfaceconstant{headlabel}{برچسب‌سر}
-\setinterfaceconstant{headnumber}{شماره‌سر}
-\setinterfaceconstant{headseparator}{headseparator}
-\setinterfaceconstant{headstyle}{سبک‌سر}
-\setinterfaceconstant{height}{ارتفاع}
-\setinterfaceconstant{hfactor}{عامل‌ارتفاع}
-\setinterfaceconstant{hfil}{پرکردن‌ارتفاع}
-\setinterfaceconstant{hidenumber}{hidenumber}
-\setinterfaceconstant{hoffset}{آفست‌ا}
-\setinterfaceconstant{horizontal}{افقی}
-\setinterfaceconstant{horoffset}{آفست‌افق}
-\setinterfaceconstant{hyphen}{شکستن}
-\setinterfaceconstant{hyphens}{hyphens}
-\setinterfaceconstant{icommand}{icommand}
-\setinterfaceconstant{ignore}{ignore}
-\setinterfaceconstant{in}{درون}
-\setinterfaceconstant{inbetween}{دربین}
-\setinterfaceconstant{increment}{افزایش}
-\setinterfaceconstant{incrementnumber}{شماره‌افزایش}
-\setinterfaceconstant{indenting}{تورفتگی}
-\setinterfaceconstant{indentlist}{indentlist}
-\setinterfaceconstant{indentnext}{متن‌تورفته}
-\setinterfaceconstant{index}{index}
-\setinterfaceconstant{indicator}{اندیکاتور}
-\setinterfaceconstant{initialsep}{initialsep}
-\setinterfaceconstant{inlinethreshold}{inlinethreshold}
-\setinterfaceconstant{inner}{داخلی}
-\setinterfaceconstant{innermargin}{حاشیه‌داخلی}
-\setinterfaceconstant{inputfile}{پرونده‌ورودی}
-\setinterfaceconstant{insidesection}{insidesection}
-\setinterfaceconstant{instance}{instance}
-\setinterfaceconstant{intent}{intent}
-\setinterfaceconstant{interaction}{پانل}
-\setinterfaceconstant{interlinespace}{فضای‌بین‌خط}
-\setinterfaceconstant{internalgrid}{internalgrid}
-\setinterfaceconstant{italicfeatures}{italicfeatures}
-\setinterfaceconstant{italicfont}{italicfont}
-\setinterfaceconstant{itemalign}{تنظیم‌آیتم}
-\setinterfaceconstant{items}{آیتمها}
-\setinterfaceconstant{joiners}{joiners}
-\setinterfaceconstant{journalconversion}{journalconversion}
-\setinterfaceconstant{juniorsep}{juniorsep}
-\setinterfaceconstant{keeptogether}{keeptogether}
-\setinterfaceconstant{ken}{ken}
-\setinterfaceconstant{keyexpansion}{گسترش‌کلید}
-\setinterfaceconstant{keys}{keys}
-\setinterfaceconstant{keyword}{کلید‌واژه}
-\setinterfaceconstant{label}{برچسب}
-\setinterfaceconstant{labelalternative}{labelalternative}
-\setinterfaceconstant{labelcolor}{labelcolor}
-\setinterfaceconstant{labeloffset}{labeloffset}
-\setinterfaceconstant{labelstyle}{labelstyle}
-\setinterfaceconstant{language}{language}
-\setinterfaceconstant{last}{last}
-\setinterfaceconstant{lastnamesep}{lastnamesep}
-\setinterfaceconstant{lastpage}{صفحه‌آخر}
-\setinterfaceconstant{lastpagesep}{lastpagesep}
-\setinterfaceconstant{lastpubsep}{lastpubsep}
-\setinterfaceconstant{layout}{layout}
-\setinterfaceconstant{left}{چپ}
-\setinterfaceconstant{leftcolor}{رنگ‌چپ}
-\setinterfaceconstant{leftcompoundhyphen}{leftcompoundhyphen}
-\setinterfaceconstant{leftedge}{لبه‌چپ}
-\setinterfaceconstant{leftedgedistance}{فاصله‌لبه‌چپ}
-\setinterfaceconstant{leftframe}{قالب‌چپ}
-\setinterfaceconstant{lefthyphen}{شکست‌چپ}
-\setinterfaceconstant{leftmargin}{حاشیه‌چپ}
-\setinterfaceconstant{leftmargindistance}{فاصله‌حاشیه‌چپ}
-\setinterfaceconstant{leftoffset}{آفست‌چپ}
-\setinterfaceconstant{leftquotation}{نقل‌قول‌چپ}
-\setinterfaceconstant{leftquote}{نقل‌چپ}
-\setinterfaceconstant{leftsample}{leftsample}
-\setinterfaceconstant{leftsentence}{جمله‌چپ}
-\setinterfaceconstant{leftspeech}{سخنرانی‌چپ}
-\setinterfaceconstant{leftstyle}{سبک‌چپ}
-\setinterfaceconstant{leftsubsentence}{زیرجمله‌چپ}
-\setinterfaceconstant{lefttext}{متن‌چپ}
-\setinterfaceconstant{leftwidth}{عرض‌خط}
-\setinterfaceconstant{leftwords}{leftwords}
-\setinterfaceconstant{less}{less}
-\setinterfaceconstant{level}{مرحله}
-\setinterfaceconstant{levels}{مرحله‌ها}
-\setinterfaceconstant{limittext}{مرزمتن}
-\setinterfaceconstant{line}{خط}
-\setinterfaceconstant{linecorrection}{تصحیح‌خط}
-\setinterfaceconstant{linedirection}{linedirection}
-\setinterfaceconstant{lines}{خطها}
-\setinterfaceconstant{list}{لیست}
-\setinterfaceconstant{listtext}{متن‌لیست}
-\setinterfaceconstant{local}{موضعی}
-\setinterfaceconstant{location}{مکان}
-\setinterfaceconstant{loffset}{loffset}
-\setinterfaceconstant{logo}{آرم}
-\setinterfaceconstant{logos}{آرمها}
-\setinterfaceconstant{marcolor}{رنگ‌حاش}
-\setinterfaceconstant{margin}{حاشیه}
-\setinterfaceconstant{margindistance}{فاصله‌حاشیه}
-\setinterfaceconstant{marginedge}{لبه‌حاشیه}
-\setinterfaceconstant{marginedgetext}{متن‌لبه‌حاشیه}
-\setinterfaceconstant{margintext}{متن‌حاشیه}
-\setinterfaceconstant{mark}{mark}
-\setinterfaceconstant{marking}{نشانه‌گذاری}
-\setinterfaceconstant{marstyle}{سبک‌حاش}
-\setinterfaceconstant{mask}{mask}
-\setinterfaceconstant{mathclass}{mathclass}
-\setinterfaceconstant{mathlimits}{mathlimits}
-\setinterfaceconstant{mathstyle}{mathstyle}
-\setinterfaceconstant{max}{بیشترین}
-\setinterfaceconstant{maxdepth}{maxdepth}
-\setinterfaceconstant{maxheight}{بیشترین‌ارتفاع}
-\setinterfaceconstant{maxwidth}{بیشترین‌عرض}
-\setinterfaceconstant{maybeyear}{maybeyear}
-\setinterfaceconstant{menu}{منو}
-\setinterfaceconstant{method}{روش}
-\setinterfaceconstant{middle}{میان}
-\setinterfaceconstant{middlecolor}{middlecolor}
-\setinterfaceconstant{middlecommand}{middlecommand}
-\setinterfaceconstant{middlespeech}{سخنرانی‌میانی}
-\setinterfaceconstant{middlestyle}{middlestyle}
-\setinterfaceconstant{middletext}{متن‌میانی}
-\setinterfaceconstant{middlewidth}{middlewidth}
-\setinterfaceconstant{midsentence}{جمله‌میانی}
-\setinterfaceconstant{min}{کمترین}
-\setinterfaceconstant{mindepth}{کمترین‌عمق}
-\setinterfaceconstant{minheight}{کمترین‌ارتفاع}
-\setinterfaceconstant{minwidth}{کمترین‌عرض}
-\setinterfaceconstant{moffset}{moffset}
-\setinterfaceconstant{monthconversion}{monthconversion}
-\setinterfaceconstant{more}{more}
-\setinterfaceconstant{mpdepth}{mpdepth}
-\setinterfaceconstant{mpheight}{mpheight}
-\setinterfaceconstant{mpoffset}{mpoffset}
-\setinterfaceconstant{mpwidth}{mpwidth}
-\setinterfaceconstant{n}{n}
-\setinterfaceconstant{name}{نام}
-\setinterfaceconstant{namesep}{namesep}
-\setinterfaceconstant{nbottom}{nbottom}
-\setinterfaceconstant{nc}{nc}
-\setinterfaceconstant{next}{بعدی}
-\setinterfaceconstant{nextleft}{nextleft}
-\setinterfaceconstant{nextleftquotation}{nextleftquotation}
-\setinterfaceconstant{nextright}{nextright}
-\setinterfaceconstant{nextrightquotation}{nextrightquotation}
-\setinterfaceconstant{nl}{nl}
-\setinterfaceconstant{nleft}{nleft}
-\setinterfaceconstant{nlines}{nlines}
-\setinterfaceconstant{norm}{norm}
-\setinterfaceconstant{note}{note}
-\setinterfaceconstant{notes}{notes}
-\setinterfaceconstant{nr}{nr}
-\setinterfaceconstant{nright}{nright}
-\setinterfaceconstant{ntop}{ntop}
-\setinterfaceconstant{number}{شماره}
-\setinterfaceconstant{numberalign}{numberalign}
-\setinterfaceconstant{numbercolor}{رنگ‌شماره}
-\setinterfaceconstant{numbercommand}{فرمان‌شماره}
-\setinterfaceconstant{numberconversion}{numberconversion}
-\setinterfaceconstant{numberconversionset}{numberconversionset}
-\setinterfaceconstant{numberdistance}{فاصله‌شماره}
-\setinterfaceconstant{numbering}{شماره‌گذاری}
-\setinterfaceconstant{numberorder}{numberorder}
-\setinterfaceconstant{numberprefix}{numberprefix}
-\setinterfaceconstant{numbersegments}{numbersegments}
-\setinterfaceconstant{numberseparator}{جداکننده‌شماره}
-\setinterfaceconstant{numberseparatorset}{numberseparatorset}
-\setinterfaceconstant{numberset}{numberset}
-\setinterfaceconstant{numberstarter}{numberstarter}
-\setinterfaceconstant{numberstopper}{numberstopper}
-\setinterfaceconstant{numberstrut}{numberstrut}
-\setinterfaceconstant{numberstyle}{سبک‌شماره}
-\setinterfaceconstant{numberwidth}{عرض‌شماره}
-\setinterfaceconstant{nx}{nx}
-\setinterfaceconstant{ny}{ny}
-\setinterfaceconstant{object}{شیئ}
-\setinterfaceconstant{obstruction}{انسداد}
-\setinterfaceconstant{oddmargin}{حاشیه‌فرد}
-\setinterfaceconstant{offset}{آفست}
-\setinterfaceconstant{openaction}{عمل‌باز}
-\setinterfaceconstant{openpage}{openpage}
-\setinterfaceconstant{openpageaction}{عمل‌صفحه‌باز}
-\setinterfaceconstant{openup}{openup}
-\setinterfaceconstant{opticalsize}{opticalsize}
-\setinterfaceconstant{option}{گزینه}
-\setinterfaceconstant{order}{order}
-\setinterfaceconstant{orientation}{جهت‌دهی}
-\setinterfaceconstant{otherstext}{otherstext}
-\setinterfaceconstant{outermargin}{حاشیه‌خارجی}
-\setinterfaceconstant{overprint}{overprint}
-\setinterfaceconstant{ownerpassword}{ownerpassword}
-\setinterfaceconstant{ownnumber}{شماره‌خود}
-\setinterfaceconstant{packcriterium}{packcriterium}
-\setinterfaceconstant{page}{صفحه}
-\setinterfaceconstant{pageboundaries}{مرزهای‌صفحه}
-\setinterfaceconstant{pagecolor}{رنگ‌صفحه}
-\setinterfaceconstant{pagecolormodel}{pagecolormodel}
-\setinterfaceconstant{pagecommand}{فرمان‌صفحه}
-\setinterfaceconstant{pageconnector}{pageconnector}
-\setinterfaceconstant{pageconversion}{pageconversion}
-\setinterfaceconstant{pageconversionset}{pageconversionset}
-\setinterfaceconstant{pageleft}{pageleft}
-\setinterfaceconstant{pagemethod}{pagemethod}
-\setinterfaceconstant{pagenumber}{شماره‌صفحه}
-\setinterfaceconstant{pageprefix}{pageprefix}
-\setinterfaceconstant{pageprefixconnector}{pageprefixconnector}
-\setinterfaceconstant{pageprefixconversion}{pageprefixconversion}
-\setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset}
-\setinterfaceconstant{pageprefixsegments}{pageprefixsegments}
-\setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset}
-\setinterfaceconstant{pageprefixset}{pageprefixset}
-\setinterfaceconstant{pageprefixstarter}{pageprefixstarter}
-\setinterfaceconstant{pageprefixstopper}{pageprefixstopper}
-\setinterfaceconstant{pageright}{pageright}
-\setinterfaceconstant{pagesegments}{pagesegments}
-\setinterfaceconstant{pagesep}{pagesep}
-\setinterfaceconstant{pageseparatorset}{pageseparatorset}
-\setinterfaceconstant{pageset}{pageset}
-\setinterfaceconstant{pagestarter}{pagestarter}
-\setinterfaceconstant{pagestate}{وضعیت‌صفحه}
-\setinterfaceconstant{pagestopper}{pagestopper}
-\setinterfaceconstant{pagestyle}{سبک‌صفحه}
-\setinterfaceconstant{palet}{لوح}
-\setinterfaceconstant{paper}{برگ}
-\setinterfaceconstant{paragraph}{پاراگراف}
-\setinterfaceconstant{period}{period}
-\setinterfaceconstant{place}{بگذار}
-\setinterfaceconstant{placehead}{بگذارسر}
-\setinterfaceconstant{placeholder}{placeholder}
-\setinterfaceconstant{placestopper}{بگذارایست}
-\setinterfaceconstant{position}{موقعیت}
-\setinterfaceconstant{prefix}{پیشوند}
-\setinterfaceconstant{prefixconnector}{prefixconnector}
-\setinterfaceconstant{prefixconversion}{prefixconversion}
-\setinterfaceconstant{prefixconversionset}{prefixconversionset}
-\setinterfaceconstant{prefixsegments}{prefixsegments}
-\setinterfaceconstant{prefixseparatorset}{prefixseparatorset}
-\setinterfaceconstant{prefixset}{prefixset}
-\setinterfaceconstant{prefixstarter}{prefixstarter}
-\setinterfaceconstant{prefixstopper}{prefixstopper}
-\setinterfaceconstant{preset}{preset}
-\setinterfaceconstant{preview}{پیش‌دید}
-\setinterfaceconstant{previous}{قبلی}
-\setinterfaceconstant{previousnumber}{شماره‌قبلی}
-\setinterfaceconstant{print}{print}
-\setinterfaceconstant{printable}{قابل‌چاپ}
-\setinterfaceconstant{process}{پردازش}
-\setinterfaceconstant{processors}{processors}
-\setinterfaceconstant{profile}{profile}
-\setinterfaceconstant{properties}{properties}
-\setinterfaceconstant{pubsep}{pubsep}
-\setinterfaceconstant{quotechar}{quotechar}
-\setinterfaceconstant{radius}{شعاع}
-\setinterfaceconstant{random}{تصادفی}
-\setinterfaceconstant{range}{range}
-\setinterfaceconstant{reduction}{کاهش}
-\setinterfaceconstant{ref}{رج}
-\setinterfaceconstant{refcommand}{refcommand}
-\setinterfaceconstant{reference}{مرجع}
-\setinterfaceconstant{referencemethod}{referencemethod}
-\setinterfaceconstant{referenceprefix}{referenceprefix}
-\setinterfaceconstant{referencetext}{referencetext}
-\setinterfaceconstant{referencing}{مراجعه}
-\setinterfaceconstant{region}{region}
-\setinterfaceconstant{regionin}{ناحیه‌درون}
-\setinterfaceconstant{regionout}{ناحیه‌بیرون}
-\setinterfaceconstant{register}{register}
-\setinterfaceconstant{regularfeatures}{regularfeatures}
-\setinterfaceconstant{regularfont}{regularfont}
-\setinterfaceconstant{renderingsetup}{renderingsetup}
-\setinterfaceconstant{repeat}{تکرار}
-\setinterfaceconstant{reset}{بازنشانی}
-\setinterfaceconstant{resetnumber}{بازنشانی‌شماره}
-\setinterfaceconstant{resolution}{کیفیت}
-\setinterfaceconstant{resources}{resources}
-\setinterfaceconstant{reverse}{برعکس}
-\setinterfaceconstant{right}{راست}
-\setinterfaceconstant{rightchars}{rightchars}
-\setinterfaceconstant{rightcolor}{رنگ‌راست}
-\setinterfaceconstant{rightcompoundhyphen}{rightcompoundhyphen}
-\setinterfaceconstant{rightedge}{لبه‌راست}
-\setinterfaceconstant{rightedgedistance}{فاصله‌لبه‌راست}
-\setinterfaceconstant{rightframe}{قالب‌راست}
-\setinterfaceconstant{righthyphen}{righthyphen}
-\setinterfaceconstant{rightmargin}{حاشیه‌راست}
-\setinterfaceconstant{rightmargindistance}{فاصله‌حاشیه‌راست}
-\setinterfaceconstant{rightoffset}{آفست‌راست}
-\setinterfaceconstant{rightquotation}{نقل‌قول‌راست}
-\setinterfaceconstant{rightquote}{نقل‌راست}
-\setinterfaceconstant{rightsample}{rightsample}
-\setinterfaceconstant{rightsentence}{جمله‌راست}
-\setinterfaceconstant{rightspeech}{سخنرانی‌راست}
-\setinterfaceconstant{rightstyle}{سبک‌راست}
-\setinterfaceconstant{rightsubsentence}{زیرجمله‌راست}
-\setinterfaceconstant{righttext}{متن‌راست}
-\setinterfaceconstant{rightwidth}{عرض‌راست}
-\setinterfaceconstant{rightwords}{rightwords}
-\setinterfaceconstant{roffset}{roffset}
-\setinterfaceconstant{rotation}{دوران}
-\setinterfaceconstant{rule}{خط}
-\setinterfaceconstant{rulecolor}{رنگ‌خط}
-\setinterfaceconstant{rulecommand}{rulecommand}
-\setinterfaceconstant{rulethickness}{ضخامت‌خط}
-\setinterfaceconstant{samepage}{همان‌صفحه}
-\setinterfaceconstant{sample}{نمونه}
-\setinterfaceconstant{samplesize}{samplesize}
-\setinterfaceconstant{saveinlist}{saveinlist}
-\setinterfaceconstant{scale}{مقیاس}
-\setinterfaceconstant{scope}{طرح}
-\setinterfaceconstant{screen}{پرده}
-\setinterfaceconstant{section}{بخش}
-\setinterfaceconstant{sectionblock}{sectionblock}
-\setinterfaceconstant{sectionconversion}{sectionconversion}
-\setinterfaceconstant{sectionconversionset}{sectionconversionset}
-\setinterfaceconstant{sectionnumber}{شماره‌بخش}
-\setinterfaceconstant{sectionresetset}{sectionresetset}
-\setinterfaceconstant{sectionsegments}{sectionsegments}
-\setinterfaceconstant{sectionseparatorset}{sectionseparatorset}
-\setinterfaceconstant{sectionset}{sectionset}
-\setinterfaceconstant{sectionstarter}{sectionstarter}
-\setinterfaceconstant{sectionstopper}{sectionstopper}
-\setinterfaceconstant{separator}{جداکننده}
-\setinterfaceconstant{separatorcolor}{separatorcolor}
-\setinterfaceconstant{separatorstyle}{separatorstyle}
-\setinterfaceconstant{set}{قراربده}
-\setinterfaceconstant{setups}{setups}
-\setinterfaceconstant{shrink}{shrink}
-\setinterfaceconstant{side}{کنار}
-\setinterfaceconstant{sidealign}{تنظیم‌کنار}
-\setinterfaceconstant{sidemethod}{روش‌کنار}
-\setinterfaceconstant{sidespaceafter}{فضای‌کناری‌بعد}
-\setinterfaceconstant{sidespacebefore}{فضای‌کناری‌قبل}
-\setinterfaceconstant{sidespaceinbetween}{sidespaceinbetween}
-\setinterfaceconstant{sidethreshold}{sidethreshold}
-\setinterfaceconstant{sign}{علامت}
-\setinterfaceconstant{simplecommand}{simplecommand}
-\setinterfaceconstant{size}{اندازه}
-\setinterfaceconstant{slantedfeatures}{slantedfeatures}
-\setinterfaceconstant{slantedfont}{slantedfont}
-\setinterfaceconstant{small}{کوچک}
-\setinterfaceconstant{smallcapsfeatures}{smallcapsfeatures}
-\setinterfaceconstant{smallcapsfont}{smallcapsfont}
-\setinterfaceconstant{solution}{solution}
-\setinterfaceconstant{sort}{sort}
-\setinterfaceconstant{sorttype}{ترتیب‌تایپ}
-\setinterfaceconstant{source}{منبع}
-\setinterfaceconstant{space}{فضا}
-\setinterfaceconstant{spaceafter}{فضا‌بعداز}
-\setinterfaceconstant{spaceafterside}{spaceafterside}
-\setinterfaceconstant{spacebefore}{فضا‌قبل‌از}
-\setinterfaceconstant{spacebeforeside}{spacebeforeside}
-\setinterfaceconstant{spaceinbetween}{فضا‌دربین}
-\setinterfaceconstant{spacing}{فضاگذاری}
-\setinterfaceconstant{specification}{specification}
-\setinterfaceconstant{split}{شکافتن}
-\setinterfaceconstant{splitcolor}{شکافتن‌رنگ}
-\setinterfaceconstant{splitmethod}{روش‌شکافتن}
-\setinterfaceconstant{splitoffset}{شکافتن‌آفست}
-\setinterfaceconstant{spot}{لکه}
-\setinterfaceconstant{stack}{توده}
-\setinterfaceconstant{stackname}{stackname}
-\setinterfaceconstant{start}{شروع}
-\setinterfaceconstant{starter}{starter}
-\setinterfaceconstant{state}{وضعیت}
-\setinterfaceconstant{step}{گام}
-\setinterfaceconstant{stop}{پایان}
-\setinterfaceconstant{stopper}{ایست}
-\setinterfaceconstant{stretch}{کشیدن}
-\setinterfaceconstant{strip}{strip}
-\setinterfaceconstant{strut}{بست}
-\setinterfaceconstant{style}{سبک}
-\setinterfaceconstant{stylealternative}{stylealternative}
-\setinterfaceconstant{sub}{زیر}
-\setinterfaceconstant{subtitle}{زیرعنوان}
-\setinterfaceconstant{suffix}{پسوند}
-\setinterfaceconstant{suffixseparator}{suffixseparator}
-\setinterfaceconstant{suffixstopper}{suffixstopper}
-\setinterfaceconstant{surnamefirstnamesep}{surnamefirstnamesep}
-\setinterfaceconstant{surnameinitialsep}{surnameinitialsep}
-\setinterfaceconstant{surnamesep}{surnamesep}
-\setinterfaceconstant{svgstyle}{svgstyle}
-\setinterfaceconstant{sx}{sx}
-\setinterfaceconstant{sy}{sy}
-\setinterfaceconstant{symalign}{تنظیم‌نماد}
-\setinterfaceconstant{symbol}{نماد}
-\setinterfaceconstant{symbolcommand}{symbolcommand}
-\setinterfaceconstant{symbolset}{مجموعه‌نماد}
-\setinterfaceconstant{symcolor}{رنگ‌نماد}
-\setinterfaceconstant{symstyle}{سبک‌نماد}
-\setinterfaceconstant{synonym}{مترادف}
-\setinterfaceconstant{synonymcolor}{رنگ‌مترادف}
-\setinterfaceconstant{synonymcommand}{synonymcommand}
-\setinterfaceconstant{synonymstyle}{سبک‌مترادف}
-\setinterfaceconstant{tab}{تب}
-\setinterfaceconstant{text}{متن}
-\setinterfaceconstant{textalign}{textalign}
-\setinterfaceconstant{textcolor}{رنگ‌متن}
-\setinterfaceconstant{textcommand}{فرمان‌متن}
-\setinterfaceconstant{textdistance}{فاصله‌متن}
-\setinterfaceconstant{textheight}{ارتفاع‌متن}
-\setinterfaceconstant{textlayer}{لایه‌متن}
-\setinterfaceconstant{textmargin}{حاشیه‌متن}
-\setinterfaceconstant{textmethod}{روش‌متن}
-\setinterfaceconstant{textseparator}{جداکننده‌متن}
-\setinterfaceconstant{textsize}{اندازه‌متن}
-\setinterfaceconstant{textstate}{وضعیت‌متن}
-\setinterfaceconstant{textstyle}{سبک‌متن}
-\setinterfaceconstant{textwidth}{عرض‌متن}
-\setinterfaceconstant{threshold}{threshold}
-\setinterfaceconstant{time}{time}
-\setinterfaceconstant{title}{عنوان}
-\setinterfaceconstant{titlecolor}{رنگ‌عنوان}
-\setinterfaceconstant{titlecommand}{فرمان‌عنوان}
-\setinterfaceconstant{titledistance}{فاصله‌عنوان}
-\setinterfaceconstant{titleleft}{عنوان‌چپ}
-\setinterfaceconstant{titleright}{عنوان‌راست}
-\setinterfaceconstant{titlestrut}{titlestrut}
-\setinterfaceconstant{titlestyle}{سبک‌عنوان}
-\setinterfaceconstant{to}{به}
-\setinterfaceconstant{toffset}{toffset}
-\setinterfaceconstant{tolerance}{بردباری}
-\setinterfaceconstant{top}{بالا}
-\setinterfaceconstant{topcommand}{topcommand}
-\setinterfaceconstant{topdistance}{فاصله‌بالا}
-\setinterfaceconstant{topframe}{قالب‌راست}
-\setinterfaceconstant{topoffset}{آفست‌بالا}
-\setinterfaceconstant{topspace}{فضای‌بالا}
-\setinterfaceconstant{topstate}{وضعیت‌بالا}
-\setinterfaceconstant{totalnumber}{totalnumber}
-\setinterfaceconstant{transform}{transform}
-\setinterfaceconstant{translate}{translate}
-\setinterfaceconstant{trimoffset}{trimoffset}
-\setinterfaceconstant{type}{تایپ}
-\setinterfaceconstant{unit}{واحد}
-\setinterfaceconstant{unknownreference}{مرجع‌ناشناس}
-\setinterfaceconstant{up}{up}
-\setinterfaceconstant{urlalternative}{urlalternative}
-\setinterfaceconstant{urlspace}{urlspace}
-\setinterfaceconstant{userpassword}{userpassword}
-\setinterfaceconstant{validate}{تاییداعتبار}
-\setinterfaceconstant{values}{values}
-\setinterfaceconstant{vcommand}{vcommand}
-\setinterfaceconstant{vcompact}{vcompact}
-\setinterfaceconstant{vector}{vector}
-\setinterfaceconstant{veroffset}{آفست‌عم}
-\setinterfaceconstant{vertical}{عمودی}
-\setinterfaceconstant{vfactor}{vfactor}
-\setinterfaceconstant{vfil}{vfil}
-\setinterfaceconstant{viewerprefix}{viewerprefix}
-\setinterfaceconstant{voffset}{آفست‌ع}
-\setinterfaceconstant{vonsep}{vonsep}
-\setinterfaceconstant{way}{راه}
-\setinterfaceconstant{wfactor}{wfactor}
-\setinterfaceconstant{white}{سفید}
-\setinterfaceconstant{width}{عرض}
-\setinterfaceconstant{words}{words}
-\setinterfaceconstant{xanchor}{xanchor}
-\setinterfaceconstant{xfactor}{فاکتورایکس}
-\setinterfaceconstant{xhtml}{xhtml}
-\setinterfaceconstant{xmax}{xmax}
-\setinterfaceconstant{xmlsetup}{xmlsetup}
-\setinterfaceconstant{xoffset}{آفست‌ایکس}
-\setinterfaceconstant{xscale}{مقیاس‌ایکس}
-\setinterfaceconstant{xstep}{گام‌ایکس}
-\setinterfaceconstant{yanchor}{yanchor}
-\setinterfaceconstant{yfactor}{فاکتوروای}
-\setinterfaceconstant{ymax}{ymax}
-\setinterfaceconstant{yoffset}{آفست‌وای}
-\setinterfaceconstant{yscale}{مقیاس‌وای}
-\setinterfaceconstant{ystep}{گام‌وای}
-% definitions for interface elements for language pe
-%
-\setinterfaceelement{answerlines}{answerlines}
-\setinterfaceelement{answerspace}{answerspace}
-\setinterfaceelement{begin}{عنصرها}
-\setinterfaceelement{complete}{کامل}
-\setinterfaceelement{coupled}{مزدوج}
-\setinterfaceelement{currentlocal}{موضعی‌جاری}
-\setinterfaceelement{end}{انتها}
-\setinterfaceelement{endsetup}{انتهای‌بارگذاری}
-\setinterfaceelement{get}{بگیر}
-\setinterfaceelement{increment}{افزایش}
-\setinterfaceelement{list}{لیست}
-\setinterfaceelement{listof}{لیست‌از}
-\setinterfaceelement{load}{بارگذاشتن}
-\setinterfaceelement{local}{موضعی}
-\setinterfaceelement{makeup}{آرایش}
-\setinterfaceelement{next}{بعدی}
-\setinterfaceelement{place}{مکان}
-\setinterfaceelement{previous}{قبلی}
-\setinterfaceelement{previouslocal}{موضع‌قبلی}
-\setinterfaceelement{reserve}{رزرو}
-\setinterfaceelement{see}{ببینید}
-\setinterfaceelement{setup}{بارگذاری}
-\setinterfaceelement{start}{شروع}
-\setinterfaceelement{stop}{پایان}
-\setinterfaceelement{text}{متن}
-\setinterfaceelement{type}{تایپ}
-% definitions for interface commands for language pe
-%
-\setinterfacecommand{Character}{Character}
-\setinterfacecommand{Characters}{Characters}
-\setinterfacecommand{MONTH}{MONTH}
-\setinterfacecommand{Numbers}{Numbers}
-\setinterfacecommand{Romannumerals}{Romannumerals}
-\setinterfacecommand{SmallCapped}{Cap}
-\setinterfacecommand{SmallCaps}{Caps}
-\setinterfacecommand{WEEKDAY}{WEEKDAY}
-\setinterfacecommand{WORD}{WORD}
-\setinterfacecommand{WORDS}{WORDS}
-\setinterfacecommand{Word}{Word}
-\setinterfacecommand{Words}{Words}
-\setinterfacecommand{about}{درمورد}
-\setinterfacecommand{adaptfontfeature}{adaptfontfeature}
-\setinterfacecommand{adaptlayout}{تنظیم‌طرح‌بندی}
-\setinterfacecommand{addfeature}{addfeature}
-\setinterfacecommand{alignbottom}{alignbottom}
-\setinterfacecommand{aligned}{aligned}
-\setinterfacecommand{alignedbox}{alignedbox}
-\setinterfacecommand{alignedline}{alignedline}
-\setinterfacecommand{alignhere}{alignhere}
-\setinterfacecommand{alignment}{alignment}
-\setinterfacecommand{alignmentcharacter}{alignmentcharacter}
-\setinterfacecommand{applytocharacters}{applytocharacters}
-\setinterfacecommand{applytofirstcharacter}{applytofirstcharacter}
-\setinterfacecommand{arg}{افزودن}
-\setinterfacecommand{at}{در}
-\setinterfacecommand{atleftmargin}{درحاشیه‌چپ}
-\setinterfacecommand{atpage}{درصفحه}
-\setinterfacecommand{atrightmargin}{درحاشیه‌راست}
-\setinterfacecommand{background}{پس‌زمینه}
-\setinterfacecommand{backspace}{فاصله‌پشت}
-\setinterfacecommand{blackrule}{خط‌سیاه}
-\setinterfacecommand{blackrules}{خطهای‌سیاه}
-\setinterfacecommand{blank}{خالی}
-\setinterfacecommand{bookmark}{چوبخط}
-\setinterfacecommand{bottombox}{bottombox}
-\setinterfacecommand{bottomdistance}{فاصله‌پایین}
-\setinterfacecommand{bottomheight}{ارتفاع‌پایین}
-\setinterfacecommand{bottomleftbox}{bottomleftbox}
-\setinterfacecommand{bottomrightbox}{bottomrightbox}
-\setinterfacecommand{bottomspace}{فضای‌پایین}
-\setinterfacecommand{buildtextbottomdot}{buildtextbottomdot}
-\setinterfacecommand{but}{اما}
-\setinterfacecommand{button}{دکمه}
-\setinterfacecommand{bypassblocks}{عبوربلوکها}
-\setinterfacecommand{character}{حرف}
-\setinterfacecommand{characters}{حرفها}
-\setinterfacecommand{chem}{chem}
-\setinterfacecommand{clip}{گیره}
-\setinterfacecommand{clonefield}{میدان‌شبیه‌سازی}
-\setinterfacecommand{color}{رنگ}
-\setinterfacecommand{colorbar}{میله‌رنگ}
-\setinterfacecommand{colorvalue}{مقداررنگ}
-\setinterfacecommand{column}{ستون}
-\setinterfacecommand{comparecolorgroup}{مقایسه‌گروه‌رنگ}
-\setinterfacecommand{comparepalet}{لوح‌مقایسه}
-\setinterfacecommand{completepagenumber}{شماره‌صفحه‌کامل}
-\setinterfacecommand{completeregister}{ثبت‌کامل}
-\setinterfacecommand{component}{مولفه}
-\setinterfacecommand{convertnumber}{شماره‌مبدل}
-\setinterfacecommand{copyfield}{میدان‌کپی}
-\setinterfacecommand{correctwhitespace}{فضای‌سفیدصحیح}
-\setinterfacecommand{coupledocument}{نوشتارزوج}
-\setinterfacecommand{couplemarking}{نشانه‌گذاری‌زوج}
-\setinterfacecommand{couplepage}{صفحه‌زوج}
-\setinterfacecommand{couplepaper}{کاغذزوج}
-\setinterfacecommand{coupleregister}{ثبت‌زوج}
-\setinterfacecommand{crlf}{crlf}
-\setinterfacecommand{currentdate}{تاریخ‌جاری}
-\setinterfacecommand{currentheadnumber}{شماره‌سرجاری}
-\setinterfacecommand{cutspace}{فضای‌برش}
-\setinterfacecommand{date}{تاریخ}
-\setinterfacecommand{decouplemarking}{جداسازی‌نشانه‌گذاری}
-\setinterfacecommand{decrementnumber}{شماره‌کاهش}
-\setinterfacecommand{define}{تعریف}
-\setinterfacecommand{defineaccent}{تعریف‌لهجه}
-\setinterfacecommand{defineblank}{تعریف‌خالی}
-\setinterfacecommand{defineblock}{تعریف‌بلوک}
-\setinterfacecommand{definebodyfont}{تعریف‌قلم‌متن}
-\setinterfacecommand{definebodyfontenvironment}{تعریف‌محیط‌قلم‌بدنه}
-\setinterfacecommand{definebodyfontswitch}{definebodyfontswitch}
-\setinterfacecommand{definebuffer}{تعریف‌بافر}
-\setinterfacecommand{definecharacter}{تعریف‌حرف}
-\setinterfacecommand{definecharacterkerning}{definecharacterkerning}
-\setinterfacecommand{definecharacterspacing}{definecharacterspacing}
-\setinterfacecommand{definecolor}{تعریف‌رنگ}
-\setinterfacecommand{definecolorgroup}{تعریف‌گروه‌رنگ}
-\setinterfacecommand{definecolumnbreak}{تعریف‌شکستن‌ستون}
-\setinterfacecommand{definecolumnset}{تعریف‌مجموعه‌ستون}
-\setinterfacecommand{definecombination}{تعریف‌ترکیب}
-\setinterfacecommand{definecombinedlist}{تعریف‌لیست‌ترکیبی}
-\setinterfacecommand{definecommand}{تعریف‌فرمان}
-\setinterfacecommand{defineconversion}{تعریف‌تبدیل}
-\setinterfacecommand{definedescription}{تعریف‌شرح}
-\setinterfacecommand{definedfont}{definedfont}
-\setinterfacecommand{defineenumeration}{تعریف‌شماره‌بندی}
-\setinterfacecommand{definefallbackfamily}{definefallbackfamily}
-\setinterfacecommand{definefield}{تعریف‌میدان}
-\setinterfacecommand{definefieldstack}{تعریف‌توده‌میدان}
-\setinterfacecommand{definefiguresymbol}{تعریف‌نمادشکل}
-\setinterfacecommand{definefilefallback}{definefilefallback}
-\setinterfacecommand{definefirstline}{definefirstline}
-\setinterfacecommand{definefloat}{تعریف‌شناور}
-\setinterfacecommand{definefont}{تعریف‌قلم}
-\setinterfacecommand{definefontalternative}{definefontalternative}
-\setinterfacecommand{definefontfallback}{definefontfallback}
-\setinterfacecommand{definefontfamily}{definefontfamily}
-\setinterfacecommand{definefontfamilypreset}{definefontfamilypreset}
-\setinterfacecommand{definefontfeature}{definefontfeature}
-\setinterfacecommand{definefontfile}{definefontfile}
-\setinterfacecommand{definefontsize}{definefontsize}
-\setinterfacecommand{definefontsolution}{definefontsolution}
-\setinterfacecommand{definefontstyle}{تعریف‌سبک‌قلم}
-\setinterfacecommand{definefontsynonym}{تعریف‌مترادف‌قلم}
-\setinterfacecommand{defineframed}{تعریف‌قالبی}
-\setinterfacecommand{defineframedtext}{تعریف‌متن‌قالبی}
-\setinterfacecommand{definefrozenfont}{definefrozenfont}
-\setinterfacecommand{definehbox}{تعریف‌جعبه‌‌افقی}
-\setinterfacecommand{definehead}{تعریف‌سر}
-\setinterfacecommand{definehyphenationfeatures}{definehyphenationfeatures}
-\setinterfacecommand{defineindentedtext}{defineindentedtext}
-\setinterfacecommand{defineinmargin}{تعریف‌درون‌حاشیه}
-\setinterfacecommand{defineinteractionmenu}{تعریف‌منوی‌پانل}
-\setinterfacecommand{defineitemgroup}{تعریف‌گروه‌آیتم}
-\setinterfacecommand{defineitems}{defineitems}
-\setinterfacecommand{definelabel}{تعریف‌برچسب}
-\setinterfacecommand{definelayer}{تعریف‌لایه}
-\setinterfacecommand{definelayout}{تعریف‌طرح‌بندی}
-\setinterfacecommand{definelinenote}{definelinenote}
-\setinterfacecommand{definelist}{تعریف‌لیست}
-\setinterfacecommand{definelogo}{تعریف‌آرم}
-\setinterfacecommand{definemainfield}{تعریف‌میدان‌اصلی}
-\setinterfacecommand{definemakeup}{تعریف‌آرایش}
-\setinterfacecommand{definemarking}{تعریف‌نشانه‌گذاری}
-\setinterfacecommand{definemathalignment}{تعریف‌تنظیم‌ریاضی}
-\setinterfacecommand{definemode}{definemode}
-\setinterfacecommand{definenamedcolor}{definenamedcolor}
-\setinterfacecommand{definenote}{definenote}
-\setinterfacecommand{defineoutput}{تعریف‌خروجی}
-\setinterfacecommand{defineoverlay}{تعریف‌پوشش}
-\setinterfacecommand{definepagebreak}{تعریف‌شکست‌صفحه}
-\setinterfacecommand{definepalet}{تعریف‌لوح}
-\setinterfacecommand{definepapersize}{تعریف‌اندازه‌برگ}
-\setinterfacecommand{defineparagraphs}{تعریف‌پاراگرافها}
-\setinterfacecommand{defineperiodkerning}{defineperiodkerning}
-\setinterfacecommand{defineplacement}{تعریف‌جانشانی}
-\setinterfacecommand{defineprofile}{تعریف‌پروفایل}
-\setinterfacecommand{defineprogram}{تعریف‌برنامه}
-\setinterfacecommand{definerawfont}{تعریف‌قلم‌خام}
-\setinterfacecommand{definereference}{تعریف‌مرجع}
-\setinterfacecommand{definereferenceformat}{تعریف‌شمایل‌مرجع}
-\setinterfacecommand{definereferencelist}{تعریف‌لیست‌مرجع}
-\setinterfacecommand{defineregister}{تعریف‌ثبت}
-\setinterfacecommand{definerule}{تعریف‌خط‌حائل}
-\setinterfacecommand{definesection}{تعریف‌بخش}
-\setinterfacecommand{definesectionblock}{تعریف‌بلوک‌بخش}
-\setinterfacecommand{definesorting}{تعریف‌ترتیب}
-\setinterfacecommand{definestartstop}{تعریف‌شروع‌پایان}
-\setinterfacecommand{definestyle}{تعریف‌سبک}
-\setinterfacecommand{definesubfield}{تعریف‌زیرمیدان}
-\setinterfacecommand{definesymbol}{تعریف‌نماد}
-\setinterfacecommand{definesynonyms}{تعریف‌مترادفها}
-\setinterfacecommand{definetabletemplate}{تعریف‌الگوی‌جدول}
-\setinterfacecommand{definetabulate}{تعریف‌جدول‌بندی}
-\setinterfacecommand{definetext}{تعریف‌متن}
-\setinterfacecommand{definetextbackground}{definetextbackground}
-\setinterfacecommand{definetextnote}{definetextnote}
-\setinterfacecommand{definetextposition}{تعریف‌مکان‌متن}
-\setinterfacecommand{definetextvariable}{تعریف‌متغیرمتن}
-\setinterfacecommand{definetype}{تعریف‌تایپ}
-\setinterfacecommand{definetyping}{تعریف‌تایپ‌کردن}
-\setinterfacecommand{defineversion}{تعریف‌نسخه}
-\setinterfacecommand{depthspanningtext}{depthspanningtext}
-\setinterfacecommand{determineheadnumber}{تعیین‌شماره‌سر}
-\setinterfacecommand{determinelistcharacteristics}{تعیین‌مشخصات‌لیست}
-\setinterfacecommand{determineregistercharacteristics}{تعیین‌مشخصات‌ثبت}
-\setinterfacecommand{dimension}{بعد}
-\setinterfacecommand{disableinteractionmenu}{ازکارانداختن‌منوی‌پانل}
-\setinterfacecommand{disablemode}{disablemode}
-\setinterfacecommand{doaddfeature}{doaddfeature}
-\setinterfacecommand{domicile}{مسکن}
-\setinterfacecommand{dontconvertfont}{dontconvertfont}
-\setinterfacecommand{donttest}{امتحان‌نکن}
-\setinterfacecommand{edgedistance}{فاصله‌لبه}
-\setinterfacecommand{edgewidth}{عرض‌لبه}
-\setinterfacecommand{emphasisboldface}{emphasisboldface}
-\setinterfacecommand{emptylines}{خطها‌خالی}
-\setinterfacecommand{enablemode}{enablemode}
-\setinterfacecommand{environment}{محیط}
-\setinterfacecommand{externalfigure}{شکل‌خارجی}
-\setinterfacecommand{fact}{حقیقت}
-\setinterfacecommand{fastswitchtobodyfont}{fastswitchtobodyfont}
-\setinterfacecommand{feature}{feature}
-\setinterfacecommand{field}{میدان}
-\setinterfacecommand{fieldstack}{میدان‌پشته}
-\setinterfacecommand{fillinfield}{درج‌درمیدان}
-\setinterfacecommand{fillinline}{درج‌درخط}
-\setinterfacecommand{fillinrules}{درج‌درخطها}
-\setinterfacecommand{fillintext}{درج‌درمتن}
-\setinterfacecommand{firstcharacter}{firstcharacter}
-\setinterfacecommand{fitfield}{پرکردن‌میدان}
-\setinterfacecommand{fittopbaselinegrid}{fittopbaselinegrid}
-\setinterfacecommand{fixedspace}{فضای‌ثابت}
-\setinterfacecommand{fixedspaces}{فضاهای‌ثابت}
-\setinterfacecommand{flushnotes}{flushnotes}
-\setinterfacecommand{followprofile}{پیروی‌پروفایل}
-\setinterfacecommand{followprofileversion}{پیروی‌نسخه‌پروفایل}
-\setinterfacecommand{followversion}{پیروی‌نسخه}
-\setinterfacecommand{footerdistance}{فاصله‌ته‌برگ}
-\setinterfacecommand{footerheight}{ارتفاع‌ته‌برگ}
-\setinterfacecommand{footnote}{پانوشت}
-\setinterfacecommand{footnotetext}{متن‌پانوشت}
-\setinterfacecommand{forceblocks}{اجباربلوکها}
-\setinterfacecommand{forcecharacterstripping}{forcecharacterstripping}
-\setinterfacecommand{formulanumber}{شماره‌فرمول}
-\setinterfacecommand{fraction}{کسر}
-\setinterfacecommand{framed}{قالبی}
-\setinterfacecommand{from}{از}
-\setinterfacecommand{fromlinenote}{fromlinenote}
-\setinterfacecommand{getbuffer}{دریافت‌بافر}
-\setinterfacecommand{getfirstcharacter}{getfirstcharacter}
-\setinterfacecommand{getmarking}{دریافت‌نشانه}
-\setinterfacecommand{getnumber}{دریافت‌شماره}
-\setinterfacecommand{globaldisablemode}{globaldisablemode}
-\setinterfacecommand{globalenablemode}{globalenablemode}
-\setinterfacecommand{globalpreventmode}{globalpreventmode}
-\setinterfacecommand{godown}{بروپایین}
-\setinterfacecommand{goto}{بروبه}
-\setinterfacecommand{gotobox}{بروبه‌جعبه}
-\setinterfacecommand{gotopage}{بروبه‌صفحه}
-\setinterfacecommand{graycolor}{رنگ‌خاکستری}
-\setinterfacecommand{greyvalue}{مقدارخاکستری}
-\setinterfacecommand{grid}{توری}
-\setinterfacecommand{hairline}{خط‌مو}
-\setinterfacecommand{head}{سر}
-\setinterfacecommand{headerdistance}{فاصله‌سربرگ}
-\setinterfacecommand{headerheight}{ارتفاع‌سربرگ}
-\setinterfacecommand{headlevel}{مرحله‌سر}
-\setinterfacecommand{headnumber}{شماره‌سر}
-\setinterfacecommand{headsym}{نمادسر}
-\setinterfacecommand{headtext}{متن‌سر}
-\setinterfacecommand{heightspanningtext}{heightspanningtext}
-\setinterfacecommand{hideblocks}{بلوکها‌پنهان}
-\setinterfacecommand{high}{بلند}
-\setinterfacecommand{hl}{خ‌ا}
-\setinterfacecommand{immediatebetweenlist}{فوری‌بین‌لیست}
-\setinterfacecommand{immediatetolist}{فوری‌به‌لیست}
-\setinterfacecommand{in}{درون}
-\setinterfacecommand{incrementnumber}{شماره‌افزایش}
-\setinterfacecommand{indenting}{تورفتگی}
-\setinterfacecommand{inframed}{درقالبی}
-\setinterfacecommand{infull}{درپر}
-\setinterfacecommand{ininner}{درداخلی}
-\setinterfacecommand{inleft}{درچپ}
-\setinterfacecommand{inleftedge}{درلبه‌چپ}
-\setinterfacecommand{inleftmargin}{درحاشیه‌چپ}
-\setinterfacecommand{inline}{درخط}
-\setinterfacecommand{inmargin}{درحاشیه}
-\setinterfacecommand{inmframed}{inmframed}
-\setinterfacecommand{inneredgedistance}{فاصله‌لبه‌داخلی}
-\setinterfacecommand{inneredgewidth}{عرض‌لبه‌داخلی}
-\setinterfacecommand{innermargindistance}{فاصله‌حاشیه‌داخلی}
-\setinterfacecommand{innermarginwidth}{عرض‌حاشیه‌داخلی}
-\setinterfacecommand{inothermargin}{درحاشیه‌دیگر}
-\setinterfacecommand{inouter}{درخارجی}
-\setinterfacecommand{inright}{درراست}
-\setinterfacecommand{inrightedge}{درلبه‌راست}
-\setinterfacecommand{inrightmargin}{درحاشیه‌راست}
-\setinterfacecommand{installlanguage}{نصب‌زبان}
-\setinterfacecommand{interactionbar}{میله‌پانل}
-\setinterfacecommand{interactionbuttons}{دکمه‌پانل}
-\setinterfacecommand{interactionmenu}{منوی‌پانل}
-\setinterfacecommand{item}{آیتم}
-\setinterfacecommand{itemgroup}{itemgroup}
-\setinterfacecommand{items}{آیتمها}
-\setinterfacecommand{itemtag}{itemtag}
-\setinterfacecommand{its}{its}
-\setinterfacecommand{keepblocks}{حفظ‌بلوکها}
-\setinterfacecommand{kerncharacters}{kerncharacters}
-\setinterfacecommand{label}{برچسب}
-\setinterfacecommand{labels}{برچسبها}
-\setinterfacecommand{labeltext}{متن‌برچسب}
-\setinterfacecommand{language}{زبان}
-\setinterfacecommand{languageCharacters}{languageCharacters}
-\setinterfacecommand{languagecharacters}{languagecharacters}
-\setinterfacecommand{leftaligned}{چپ‌چین}
-\setinterfacecommand{leftbottombox}{leftbottombox}
-\setinterfacecommand{leftedgedistance}{فاصله‌لبه‌چپ}
-\setinterfacecommand{leftedgewidth}{عرض‌لبه‌چپ}
-\setinterfacecommand{leftline}{leftline}
-\setinterfacecommand{leftmargindistance}{فاصله‌حاشیه‌چپ}
-\setinterfacecommand{leftmarginwidth}{عرض‌حاشیه‌چپ}
-\setinterfacecommand{leg}{پا}
-\setinterfacecommand{linecorrection}{linecorrection}
-\setinterfacecommand{linenote}{linenote}
-\setinterfacecommand{linespanningtext}{linespanningtext}
-\setinterfacecommand{linewidth}{عرض‌خط}
-\setinterfacecommand{listheight}{ارتفاع‌خط}
-\setinterfacecommand{listlength}{طول‌لیست}
-\setinterfacecommand{listsymbol}{نمادلیست}
-\setinterfacecommand{listwidth}{عرض‌لیست}
-\setinterfacecommand{loadfontgoodies}{loadfontgoodies}
-\setinterfacecommand{localfootnotes}{localfootnotes}
-\setinterfacecommand{localnotes}{localnotes}
-\setinterfacecommand{logfields}{میدانهای‌گزارش}
-\setinterfacecommand{lohi}{پابا}
-\setinterfacecommand{low}{پایین}
-\setinterfacecommand{macroname}{نام‌ماکرو}
-\setinterfacecommand{mainlanguage}{زبان‌اصلی}
-\setinterfacecommand{makeupheight}{ارتفاع‌آرایش}
-\setinterfacecommand{makeupwidth}{عرض‌آرایش}
-\setinterfacecommand{mar}{حاش}
-\setinterfacecommand{marginblock}{marginblock}
-\setinterfacecommand{margindistance}{فاصله‌حاشیه}
-\setinterfacecommand{marginrule}{خط‌حاشیه}
-\setinterfacecommand{margintext}{متن‌حاشیه}
-\setinterfacecommand{margintitle}{عنوان‌حاشیه}
-\setinterfacecommand{marginwidth}{عرض‌حاشیه}
-\setinterfacecommand{marginword}{کلمه‌حاشیه}
-\setinterfacecommand{marking}{نشانه‌گذاری}
-\setinterfacecommand{markversion}{نسخه‌نشانه}
-\setinterfacecommand{mathematics}{ریاضی}
-\setinterfacecommand{menubutton}{دکمه‌منو}
-\setinterfacecommand{mframed}{mframed}
-\setinterfacecommand{midaligned}{تنظیم‌وسط}
-\setinterfacecommand{mirror}{آینه}
-\setinterfacecommand{month}{ماه}
-\setinterfacecommand{moveformula}{انتقال‌فرمول}
-\setinterfacecommand{moveongrid}{انتقال‌به‌توری}
-\setinterfacecommand{movesidefloat}{انتقال‌کنار‌شناور}
-\setinterfacecommand{navigating}{هدایت}
-\setinterfacecommand{nodimension}{بدون‌بعد}
-\setinterfacecommand{noheaderandfooterlines}{بدون‌خط‌سروته‌برگ}
-\setinterfacecommand{noindenting}{بدون‌تورفتگی}
-\setinterfacecommand{noitem}{noitem}
-\setinterfacecommand{nolist}{بدون‌لیست}
-\setinterfacecommand{nomarking}{بدون‌نشانه‌گذاری}
-\setinterfacecommand{nomoreblocks}{بدون‌بلوکهای‌بیشتر}
-\setinterfacecommand{nomorefiles}{بدون‌فایلهای‌بیشتر}
-\setinterfacecommand{nop}{منفی}
-\setinterfacecommand{nospace}{بدون‌فضا}
-\setinterfacecommand{note}{یادداشت}
-\setinterfacecommand{notesymbol}{notesymbol}
-\setinterfacecommand{notopandbottomlines}{بدون‌خط‌بالاوپایین}
-\setinterfacecommand{notsmallcapped}{سرپوش‌کوچک‌نه}
-\setinterfacecommand{nowhitespace}{بدون‌فضای‌سفید}
-\setinterfacecommand{numberofsubpages}{شماره‌زیرصفحه}
-\setinterfacecommand{numbers}{شماره‌ها}
-\setinterfacecommand{outeredgedistance}{فاصله‌لبه‌خارجی}
-\setinterfacecommand{outeredgewidth}{عرض‌لبه‌خارجی}
-\setinterfacecommand{outermargindistance}{فاصله‌حاشیه‌خارجی}
-\setinterfacecommand{outermarginwidth}{عرض‌حاشیه‌خارجی}
-\setinterfacecommand{packed}{فشرده}
-\setinterfacecommand{page}{صفحه}
-\setinterfacecommand{pagebreak}{pagebreak}
-\setinterfacecommand{pagedepth}{عمق‌صفحه}
-\setinterfacecommand{pagenumber}{شماره‌صفحه}
-\setinterfacecommand{pageoffset}{آفست‌صفحه}
-\setinterfacecommand{pagereference}{مرجع‌صفحه}
-\setinterfacecommand{paperheight}{ارتفاع‌برگ}
-\setinterfacecommand{paperwidth}{عرض‌برگ}
-\setinterfacecommand{periods}{نقطه‌ها}
-\setinterfacecommand{placebookmarks}{درج‌چوب‌خط}
-\setinterfacecommand{placecombinedlist}{درج‌لیست‌مختلط}
-\setinterfacecommand{placefloat}{درج‌شناور}
-\setinterfacecommand{placefootnotes}{درج‌پانوشتها}
-\setinterfacecommand{placeformula}{درج‌فرمول}
-\setinterfacecommand{placeheadnumber}{درج‌شماره‌سر}
-\setinterfacecommand{placeheadtext}{درج‌متن‌سر}
-\setinterfacecommand{placelegend}{درج‌راهنما}
-\setinterfacecommand{placelist}{درج‌لیست}
-\setinterfacecommand{placelistofsynonyms}{placelistofsynonyms}
-\setinterfacecommand{placelocalfootnotes}{درج‌پانوشتهای‌موضعی}
-\setinterfacecommand{placelocalnotes}{placelocalnotes}
-\setinterfacecommand{placelogos}{درج‌آرمها}
-\setinterfacecommand{placenamedfloat}{placenamedfloat}
-\setinterfacecommand{placenotes}{placenotes}
-\setinterfacecommand{placeongrid}{درج‌در‌توری}
-\setinterfacecommand{placeontopofeachother}{درج‌در‌بالای‌یکدیگر}
-\setinterfacecommand{placepagenumber}{درج‌شماره‌صفحه}
-\setinterfacecommand{placerawlist}{درج‌لیست‌خام}
-\setinterfacecommand{placereferencelist}{درج‌لیست‌مرجع}
-\setinterfacecommand{placeregister}{درج‌ثبت}
-\setinterfacecommand{placerule}{درج‌خط}
-\setinterfacecommand{placesidebyside}{درج‌کنار‌به‌کنار}
-\setinterfacecommand{placesubformula}{درج‌زیرفرمول}
-\setinterfacecommand{placetextvariable}{درج‌متغیرمتن}
-\setinterfacecommand{position}{مکان}
-\setinterfacecommand{positiontext}{مکان‌متن}
-\setinterfacecommand{postponenotes}{postponenotes}
-\setinterfacecommand{postponingnotes}{postponingnotes}
-\setinterfacecommand{predefinedfont}{predefinedfont}
-\setinterfacecommand{predefinefont}{predefinefont}
-\setinterfacecommand{presetdocument}{presetdocument}
-\setinterfacecommand{prettyprintbuffer}{prettyprintbuffer}
-\setinterfacecommand{preventmode}{preventmode}
-\setinterfacecommand{printpaperheight}{چاپ‌ارتفاع‌برگ}
-\setinterfacecommand{printpaperwidth}{چاپ‌عرض‌برگ}
-\setinterfacecommand{processblocks}{بلوکهای‌پردازش}
-\setinterfacecommand{processbodyfontenvironmentlist}{processbodyfontenvironmentlist}
-\setinterfacecommand{processpage}{صفحه‌پردازش}
-\setinterfacecommand{product}{تولید}
-\setinterfacecommand{program}{برنامه}
-\setinterfacecommand{project}{پروژه}
-\setinterfacecommand{publication}{نشر}
-\setinterfacecommand{quotation}{نقل‌قول}
-\setinterfacecommand{quote}{نقل}
-\setinterfacecommand{ran}{ran}
-\setinterfacecommand{redo}{انجام‌دوباره}
-\setinterfacecommand{redoconvertfont}{redoconvertfont}
-\setinterfacecommand{ref}{رج}
-\setinterfacecommand{reference}{مرجع}
-\setinterfacecommand{referral}{رجوع}
-\setinterfacecommand{referraldate}{تاریخ‌رجوع}
-\setinterfacecommand{referring}{مراجعه}
-\setinterfacecommand{registerfontclass}{registerfontclass}
-\setinterfacecommand{registerhyphenationexception}{registerhyphenationexception}
-\setinterfacecommand{registerhyphenationpattern}{registerhyphenationpattern}
-\setinterfacecommand{remark}{توجه}
-\setinterfacecommand{replacefeature}{replacefeature}
-\setinterfacecommand{reset}{بازنشانی}
-\setinterfacecommand{resetandaddfeature}{resetandaddfeature}
-\setinterfacecommand{resetcharacteralign}{resetcharacteralign}
-\setinterfacecommand{resetcharacterkerning}{resetcharacterkerning}
-\setinterfacecommand{resetcharacterspacing}{resetcharacterspacing}
-\setinterfacecommand{resetcharacterstripping}{resetcharacterstripping}
-\setinterfacecommand{resetfeature}{resetfeature}
-\setinterfacecommand{resetfontcolorsheme}{resetfontcolorsheme}
-\setinterfacecommand{resetfontfallback}{resetfontfallback}
-\setinterfacecommand{resetfontsolution}{resetfontsolution}
-\setinterfacecommand{resethyphenationfeatures}{resethyphenationfeatures}
-\setinterfacecommand{resetlocalfloats}{resetlocalfloats}
-\setinterfacecommand{resetmarking}{بازنشانی‌نشانه‌گذاری}
-\setinterfacecommand{resetmode}{resetmode}
-\setinterfacecommand{resetnumber}{بازنشانی‌شماره}
-\setinterfacecommand{resetpath}{resetpath}
-\setinterfacecommand{resetperiodkerning}{resetperiodkerning}
-\setinterfacecommand{resetsystemmode}{resetsystemmode}
-\setinterfacecommand{resettextcontent}{بازنشانی‌متن}
-\setinterfacecommand{resetvisualizers}{resetvisualizers}
-\setinterfacecommand{restoreglobalbodyfont}{restoreglobalbodyfont}
-\setinterfacecommand{retestfeature}{retestfeature}
-\setinterfacecommand{revivefeature}{revivefeature}
-\setinterfacecommand{rightaligned}{تنظیم‌راست}
-\setinterfacecommand{rightbottombox}{rightbottombox}
-\setinterfacecommand{rightedgedistance}{فاصله‌لبه‌راست}
-\setinterfacecommand{rightedgewidth}{عرض‌لبه‌راست}
-\setinterfacecommand{rightline}{rightline}
-\setinterfacecommand{rightmargindistance}{فاصله‌حاشیه‌راست}
-\setinterfacecommand{rightmarginwidth}{عرض‌حاشیه‌راست}
-\setinterfacecommand{romannumerals}{اعدادلاتین}
-\setinterfacecommand{rotate}{دوران}
-\setinterfacecommand{savebuffer}{savebuffer}
-\setinterfacecommand{scale}{مقیاس}
-\setinterfacecommand{screen}{پرده}
-\setinterfacecommand{selectblocks}{انتخاب‌بلوکها}
-\setinterfacecommand{selectpaper}{انتخاب‌برگ}
-\setinterfacecommand{selectversion}{انتخاب‌نسخه}
-\setinterfacecommand{setbigbodyfont}{setbigbodyfont}
-\setinterfacecommand{setcharacteralign}{setcharacteralign}
-\setinterfacecommand{setcharacteraligndetail}{setcharacteraligndetail}
-\setinterfacecommand{setcharactercasing}{setcharactercasing}
-\setinterfacecommand{setcharactercleaning}{setcharactercleaning}
-\setinterfacecommand{setcharacterkerning}{setcharacterkerning}
-\setinterfacecommand{setcharacterspacing}{setcharacterspacing}
-\setinterfacecommand{setcharacterstripping}{setcharacterstripping}
-\setinterfacecommand{setcurrentfontclass}{setcurrentfontclass}
-\setinterfacecommand{setfirstline}{setfirstline}
-\setinterfacecommand{setfirstpasscharacteralign}{setfirstpasscharacteralign}
-\setinterfacecommand{setfont}{setfont}
-\setinterfacecommand{setfontcolorsheme}{setfontcolorsheme}
-\setinterfacecommand{setfontfeature}{setfontfeature}
-\setinterfacecommand{setfontsolution}{setfontsolution}
-\setinterfacecommand{setfontstrut}{setfontstrut}
-\setinterfacecommand{sethyphenationfeatures}{sethyphenationfeatures}
-\setinterfacecommand{setmainbodyfont}{setmainbodyfont}
-\setinterfacecommand{setmode}{setmode}
-\setinterfacecommand{setnote}{setnote}
-\setinterfacecommand{setnotetext}{setnotetext}
-\setinterfacecommand{setnumber}{تعیین‌شماره}
-\setinterfacecommand{setperiodkerning}{setperiodkerning}
-\setinterfacecommand{setsecondpasscharacteralign}{setsecondpasscharacteralign}
-\setinterfacecommand{setsmallbodyfont}{setsmallbodyfont}
-\setinterfacecommand{setsystemmode}{setsystemmode}
-\setinterfacecommand{settextcontent}{تعیین‌محتوای‌متن}
-\setinterfacecommand{settextvariable}{تعیین‌متغیر‌متن}
-\setinterfacecommand{setupalign}{بارگذاری‌تنظیم}
-\setinterfacecommand{setupanswerarea}{setupanswerarea}
-\setinterfacecommand{setuparranging}{بارگذاری‌ترتیب}
-\setinterfacecommand{setupattachment}{setupattachment}
-\setinterfacecommand{setupbackground}{بارگذاری‌پس‌زمینه}
-\setinterfacecommand{setupbackgrounds}{بارگذاری‌پس‌زمینه‌ها}
-\setinterfacecommand{setupblackrules}{بارگذاری‌خطهای‌سیاه}
-\setinterfacecommand{setupblank}{بارگذاری‌خالی}
-\setinterfacecommand{setupblock}{بارگذاری‌بلوک}
-\setinterfacecommand{setupbodyfont}{بارگذاری‌قلم‌متن}
-\setinterfacecommand{setupbodyfontenvironment}{بارگذاری‌محیط‌قلم‌متن}
-\setinterfacecommand{setupbottom}{بارگذاری‌پایین}
-\setinterfacecommand{setupbottomtexts}{بارگذاری‌متن‌پایین}
-\setinterfacecommand{setupbuffer}{بارگذاری‌بافر}
-\setinterfacecommand{setupbuttons}{بارگذاری‌دکمه‌ها}
-\setinterfacecommand{setupcapitals}{setupcapitals}
-\setinterfacecommand{setupcaption}{بارگذاری‌شرح}
-\setinterfacecommand{setupcaptions}{بارگذاری‌شرحها}
-\setinterfacecommand{setupcharacteralign}{setupcharacteralign}
-\setinterfacecommand{setupcharacterkerning}{setupcharacterkerning}
-\setinterfacecommand{setupcharacterspacing}{setupcharacterspacing}
-\setinterfacecommand{setupclipping}{بارگذاری‌چیدن}
-\setinterfacecommand{setupcolor}{بارگذاری‌رنگ}
-\setinterfacecommand{setupcolors}{بارگذاری‌رنگها}
-\setinterfacecommand{setupcolumns}{بارگذاری‌ستونها}
-\setinterfacecommand{setupcolumnset}{بارگذاری‌مجموعه‌ستون}
-\setinterfacecommand{setupcolumnsetlines}{بارگذاری‌خطهای‌مجموعه‌ستون}
-\setinterfacecommand{setupcolumnsetstart}{بارگذاری‌شروع‌مجموعه‌ستون}
-\setinterfacecommand{setupcombinations}{بارگذاری‌ترکیب‌ها}
-\setinterfacecommand{setupcombinedlist}{بارگذاری‌لیست‌ترکیبی}
-\setinterfacecommand{setupcomment}{بارگذاری‌توضیح}
-\setinterfacecommand{setupcounter}{setupcounter}
-\setinterfacecommand{setupdescription}{setupdescription}
-\setinterfacecommand{setupdescriptions}{بارگذاری‌شرح}
-\setinterfacecommand{setupenumeration}{setupenumeration}
-\setinterfacecommand{setupenumerations}{بارگذاری‌شماره‌گذاریها}
-\setinterfacecommand{setupexternalfigures}{بارگذاری‌شکلهای‌خارجی}
-\setinterfacecommand{setupfield}{بارگذاری‌میدان}
-\setinterfacecommand{setupfields}{بارگذاری‌میدانها}
-\setinterfacecommand{setupfillinlines}{بارگذاری‌پرکردن‌خطها}
-\setinterfacecommand{setupfillinrules}{بارگذاری‌درج‌درخطها}
-\setinterfacecommand{setupfirstline}{setupfirstline}
-\setinterfacecommand{setupfloat}{بارگذاری‌شناور}
-\setinterfacecommand{setupfloats}{بارگذاری‌شناورها}
-\setinterfacecommand{setupfloatsplitting}{بارگذاری‌شکافتن‌شناورها}
-\setinterfacecommand{setupfontexpansion}{setupfontexpansion}
-\setinterfacecommand{setupfontprotrusion}{setupfontprotrusion}
-\setinterfacecommand{setupfonts}{setupfonts}
-\setinterfacecommand{setupfontsolution}{setupfontsolution}
-\setinterfacecommand{setupfooter}{بارگذاری‌ته‌برگ}
-\setinterfacecommand{setupfootertexts}{بارگذاری‌متن‌پانوشت}
-\setinterfacecommand{setupfootnotedefinition}{بارگذاری‌تعریف‌پانوشت}
-\setinterfacecommand{setupfootnotes}{بارگذاری‌پانوشتها}
-\setinterfacecommand{setupforms}{بارگذاری‌طرح}
-\setinterfacecommand{setupformula}{setupformula}
-\setinterfacecommand{setupformulas}{بارگذاری‌فرمولها}
-\setinterfacecommand{setupframed}{بارگذاری‌قالبی}
-\setinterfacecommand{setupframedtext}{setupframedtext}
-\setinterfacecommand{setupframedtexts}{بارگذاری‌متن‌قالبی}
-\setinterfacecommand{setuphead}{بارگذاری‌سر}
-\setinterfacecommand{setupheader}{بارگذاری‌سربرگ}
-\setinterfacecommand{setupheadertexts}{بارگذاری‌متن‌سربرگ}
-\setinterfacecommand{setupheadnumber}{بارگذاری‌شماره‌سر}
-\setinterfacecommand{setupheads}{بارگذاری‌سرها}
-\setinterfacecommand{setupheadtext}{بارگذاری‌متن‌سر}
-\setinterfacecommand{setuphyphenation}{setuphyphenation}
-\setinterfacecommand{setuphyphenmark}{بارگذاری‌نشانه‌شکستن}
-\setinterfacecommand{setupindentedtext}{setupindentedtext}
-\setinterfacecommand{setupindenting}{بارگذاری‌تورفتگی}
-\setinterfacecommand{setupinmargin}{بارگذاری‌درون‌حاشیه}
-\setinterfacecommand{setupinteraction}{بارگذاری‌پانل}
-\setinterfacecommand{setupinteractionbar}{بارگذاری‌میله‌پانل}
-\setinterfacecommand{setupinteractionmenu}{بارگذاری‌منوی‌پانل}
-\setinterfacecommand{setupinteractionscreen}{بارگذاری‌پرده‌پانل}
-\setinterfacecommand{setupinterlinespace}{بارگذاری‌فاصله‌بین‌خط}
-\setinterfacecommand{setupitemgroup}{بارگذاری‌گروه‌آیتم}
-\setinterfacecommand{setupitemgroups}{بارگذاری‌گروههای‌آیتم}
-\setinterfacecommand{setupitems}{بارگذاری‌آیتمها}
-\setinterfacecommand{setuplabeltext}{باگذاری‌متن‌برچسب}
-\setinterfacecommand{setuplanguage}{بارگذاری‌زبان}
-\setinterfacecommand{setuplayout}{بارگذاری‌طرح‌بندی}
-\setinterfacecommand{setuplegend}{بارگذاری‌راهنما}
-\setinterfacecommand{setuplinenote}{setuplinenote}
-\setinterfacecommand{setuplinenumbering}{بارگذاری‌شماره‌‌گذاری‌خط}
-\setinterfacecommand{setuplines}{بارگذاری‌خطها}
-\setinterfacecommand{setuplinewidth}{بارگذاری‌عرض‌خط}
-\setinterfacecommand{setuplist}{بارگذاری‌لیست}
-\setinterfacecommand{setupmakeup}{بارگذاری‌آرایش}
-\setinterfacecommand{setupmarginblock}{setupmarginblock}
-\setinterfacecommand{setupmarginblocks}{بارگذاری‌بلوکهای‌حاشیه}
-\setinterfacecommand{setupmargindata}{setupmargindata}
-\setinterfacecommand{setupmarginrules}{بارگذاری‌خطهای‌حاشیه}
-\setinterfacecommand{setupmarking}{بارگذاری‌نشانه‌گذاری}
-\setinterfacecommand{setupmathalignment}{بارگذاری‌تنظیم‌ریاضی}
-\setinterfacecommand{setupnarrower}{بارگذاری‌باریکتر}
-\setinterfacecommand{setupnotation}{setupnotation}
-\setinterfacecommand{setupnotations}{setupnotations}
-\setinterfacecommand{setupnote}{setupnote}
-\setinterfacecommand{setupnotes}{setupnotes}
-\setinterfacecommand{setupnumber}{بارگذاری‌شماره}
-\setinterfacecommand{setupnumbering}{بارگذاری‌شماره‌گذاری}
-\setinterfacecommand{setupoppositeplacing}{بارگذاری‌درج‌مخالف}
-\setinterfacecommand{setupoutput}{بارگذاری‌خروجی}
-\setinterfacecommand{setuppagecomment}{بارگذاری‌توضیح‌صفحه}
-\setinterfacecommand{setuppagenumber}{بارگذاری‌شماره‌صفحه}
-\setinterfacecommand{setuppagenumbering}{بارگذاری‌شماره‌گذاری‌صفحه}
-\setinterfacecommand{setuppagetransitions}{بارگذاری‌گذارصفحه}
-\setinterfacecommand{setuppalet}{بارگذاری‌لوح}
-\setinterfacecommand{setuppaper}{بارگذاری‌برگ}
-\setinterfacecommand{setuppapersize}{بارگذاری‌اندازه‌برگ}
-\setinterfacecommand{setupparagraphnumbering}{بارگذاری‌شماره‌گذاری‌پاراگراف}
-\setinterfacecommand{setupparagraphs}{بارگذاری‌پاراگرافها}
-\setinterfacecommand{setupperiodkerning}{setupperiodkerning}
-\setinterfacecommand{setupplacement}{بارگذاری‌جانشانی}
-\setinterfacecommand{setuppositioning}{بارگذاری‌مکان‌گذاری}
-\setinterfacecommand{setupprofiles}{بارگذاری‌پروفایلها}
-\setinterfacecommand{setupprograms}{بارگذاری‌برنامه‌ها}
-\setinterfacecommand{setuppublications}{بارگذاری‌نشرها}
-\setinterfacecommand{setupquote}{بارگذاری‌نقل}
-\setinterfacecommand{setupreferencelist}{بارگذاری‌لیست‌مرجع}
-\setinterfacecommand{setupreferencing}{بارگذاری‌ارجاع}
-\setinterfacecommand{setupregister}{بارگذاری‌ثبت}
-\setinterfacecommand{setuprotate}{بارگذاری‌دوران}
-\setinterfacecommand{setuprule}{بارگذاری‌خط}
-\setinterfacecommand{setupscreens}{بارگذاری‌پرده‌ها}
-\setinterfacecommand{setupsection}{بارگذاری‌بخش}
-\setinterfacecommand{setupsectionblock}{بارگذاری‌بلوک‌بخش}
-\setinterfacecommand{setupsorting}{بارگذاری‌ترتیب}
-\setinterfacecommand{setupspacing}{بارگذاری‌فضا‌گذاری}
-\setinterfacecommand{setupstartstop}{بارگذاری‌شروع‌پایان}
-\setinterfacecommand{setupstrut}{بارگذاری‌بست}
-\setinterfacecommand{setupsubpagenumber}{بارگذاری‌شماره‌زیرصفحه}
-\setinterfacecommand{setupsymbolset}{بارگذاری‌مجموعه‌نماد}
-\setinterfacecommand{setupsynchronization}{بارگذاری‌تطابق}
-\setinterfacecommand{setupsynchronizationbar}{بارگذاری‌میله‌تطابق}
-\setinterfacecommand{setupsynonyms}{بارگذاری‌مترادفها}
-\setinterfacecommand{setupsystem}{بارگذاری‌سیستم}
-\setinterfacecommand{setuptab}{بارگذاری‌تب}
-\setinterfacecommand{setuptables}{بارگذاری‌جدولها}
-\setinterfacecommand{setuptabulate}{بارگذاری‌جدول‌بندی}
-\setinterfacecommand{setuptext}{بارگذاری‌متن}
-\setinterfacecommand{setuptextbackground}{setuptextbackground}
-\setinterfacecommand{setuptextnote}{setuptextnote}
-\setinterfacecommand{setuptextposition}{بارگذاری‌مکان‌متن}
-\setinterfacecommand{setuptextrules}{بارگذاری‌خطهای‌متن}
-\setinterfacecommand{setuptexttexts}{بارگذاری‌متن‌متنها}
-\setinterfacecommand{setuptextvariable}{بارگذاری‌متغیر‌متن}
-\setinterfacecommand{setupthinrules}{بارگذاری‌خطها‌ی‌نازک}
-\setinterfacecommand{setuptolerance}{بارگذاری‌بردباری}
-\setinterfacecommand{setuptop}{بارگذاری‌بالا}
-\setinterfacecommand{setuptoptexts}{بارگذاری‌متنهای‌بالا}
-\setinterfacecommand{setuptype}{بارگذاری‌تایپ}
-\setinterfacecommand{setuptyping}{بارگذاری‌تایپ‌کردن}
-\setinterfacecommand{setupunderbar}{بارگذاری‌میله‌زیر}
-\setinterfacecommand{setupurl}{setupurl}
-\setinterfacecommand{setupversions}{بارگذاری‌نسخه‌ها}
-\setinterfacecommand{setupwhitespace}{بارگذاری‌فضای‌سفید}
-\setinterfacecommand{setvisualizerfont}{setvisualizerfont}
-\setinterfacecommand{showbodyfont}{نمایش‌قلم‌بدنه}
-\setinterfacecommand{showbodyfontenvironment}{نمایش‌محیط‌قلم‌بدنه}
-\setinterfacecommand{showcolor}{نمایش‌رنگ}
-\setinterfacecommand{showcolorgroup}{نمایش‌گروه‌رنگ}
-\setinterfacecommand{showcounter}{showcounter}
-\setinterfacecommand{showexternalfigures}{نمایش‌شکلهای‌خارجی}
-\setinterfacecommand{showfields}{نمایش‌میدانها}
-\setinterfacecommand{showfont}{showfont}
-\setinterfacecommand{showfontdata}{showfontdata}
-\setinterfacecommand{showfontexpansion}{showfontexpansion}
-\setinterfacecommand{showfontitalics}{showfontitalics}
-\setinterfacecommand{showfontkerns}{showfontkerns}
-\setinterfacecommand{showfontparameters}{showfontparameters}
-\setinterfacecommand{showfontstrip}{showfontstrip}
-\setinterfacecommand{showfontstyle}{showfontstyle}
-\setinterfacecommand{showframe}{نمایش‌قالب}
-\setinterfacecommand{showgrid}{نمایش‌توری}
-\setinterfacecommand{showhyphenationtrace}{showhyphenationtrace}
-\setinterfacecommand{showkerning}{showkerning}
-\setinterfacecommand{showlayout}{نمایش‌طرح‌بندی}
-\setinterfacecommand{showmakeup}{نمایش‌آرایش}
-\setinterfacecommand{showminimalbaseline}{showminimalbaseline}
-\setinterfacecommand{showpalet}{نمایش‌لوح}
-\setinterfacecommand{showprint}{نمایش‌چاپ}
-\setinterfacecommand{showsetups}{نمایش‌بارگذاریها}
-\setinterfacecommand{showstruts}{نمایش‌بستها}
-\setinterfacecommand{showsymbolset}{نمایش‌مجموعه‌علامت}
-\setinterfacecommand{smallcapped}{cap}
-\setinterfacecommand{someline}{یک‌خط}
-\setinterfacecommand{somewhere}{یک‌جا}
-\setinterfacecommand{space}{فضا}
-\setinterfacecommand{specialitem}{specialitem}
-\setinterfacecommand{splitfloat}{شکافتن‌شناور}
-\setinterfacecommand{startalignment}{شروع‌تنظیم}
-\setinterfacecommand{startbackground}{شروع‌پس‌زمینه}
-\setinterfacecommand{startcoding}{شروع‌کد}
-\setinterfacecommand{startcolor}{شروع‌رنگ}
-\setinterfacecommand{startcolumnmakeup}{شروع‌آرایش‌ستون}
-\setinterfacecommand{startcolumns}{شروع‌ستونها}
-\setinterfacecommand{startcolumnset}{شروع‌مجموعه‌ستون}
-\setinterfacecommand{startcombination}{شروع‌ترکیب}
-\setinterfacecommand{startcomponent}{شروع‌مولفه}
-\setinterfacecommand{startdocument}{شروع‌نوشتار}
-\setinterfacecommand{startenvironment}{شروع‌محیط}
-\setinterfacecommand{startfigure}{شروع‌شکل}
-\setinterfacecommand{startframed}{startframed}
-\setinterfacecommand{startglobal}{شروع‌سراسری}
-\setinterfacecommand{startline}{شروع‌خط}
-\setinterfacecommand{startlinecorrection}{شروع‌تصحیح‌خط}
-\setinterfacecommand{startlinenote}{startlinenote}
-\setinterfacecommand{startlinenumbering}{شروع‌شماره‌گذاری‌خط}
-\setinterfacecommand{startlines}{شروع‌خطها}
-\setinterfacecommand{startlocal}{شروع‌موضعی}
-\setinterfacecommand{startlocalfootnotes}{شروع‌پانوشتهای‌موضعی}
-\setinterfacecommand{startmakeup}{شروع‌آرایش}
-\setinterfacecommand{startmarginblock}{شروع‌بلوک‌حاشیه}
-\setinterfacecommand{startmarginrule}{شروع‌خط‌حاشیه}
-\setinterfacecommand{startnarrower}{شروع‌باریکتر}
-\setinterfacecommand{startopposite}{شروع‌مخالف}
-\setinterfacecommand{startoverlay}{شروع‌پوشش}
-\setinterfacecommand{startoverview}{شروع‌بازبینی}
-\setinterfacecommand{startpacked}{شروع‌فشرده}
-\setinterfacecommand{startpositioning}{شروع‌مکان‌گذاری}
-\setinterfacecommand{startproduct}{شروع‌تولید}
-\setinterfacecommand{startprofile}{شروع‌پروفایل}
-\setinterfacecommand{startproject}{شروع‌پروژه}
-\setinterfacecommand{startquotation}{شروع‌نقل‌قول}
-\setinterfacecommand{startraster}{startraster}
-\setinterfacecommand{startsymbolset}{شروع‌مجموعه‌نماد}
-\setinterfacecommand{startsynchronization}{شروع‌تطابق}
-\setinterfacecommand{starttable}{شروع‌جدول}
-\setinterfacecommand{starttables}{شروع‌جدولها}
-\setinterfacecommand{starttext}{شروع‌متن}
-\setinterfacecommand{starttextbackground}{starttextbackground}
-\setinterfacecommand{starttextrule}{شروع‌خط‌متن}
-\setinterfacecommand{startunpacked}{شروع‌غیر‌فشرده}
-\setinterfacecommand{startversion}{شروع‌نسخه}
-\setinterfacecommand{stopalignment}{پایان‌تنظیم}
-\setinterfacecommand{stopbackground}{پایان‌پس‌زمینه}
-\setinterfacecommand{stopcoding}{پایان‌کد}
-\setinterfacecommand{stopcolor}{پایان‌رنگ}
-\setinterfacecommand{stopcolumnmakeup}{پایان‌آرایش‌ستون}
-\setinterfacecommand{stopcolumns}{پایان‌ستونها}
-\setinterfacecommand{stopcolumnset}{پایان‌مجموعه‌ستون}
-\setinterfacecommand{stopcombination}{پایان‌ترکیب}
-\setinterfacecommand{stopcomponent}{پایان‌مولفه}
-\setinterfacecommand{stopdocument}{پایان‌نوشتار}
-\setinterfacecommand{stopenvironment}{پایان‌محیط}
-\setinterfacecommand{stopframed}{stopframed}
-\setinterfacecommand{stopglobal}{پایان‌سراسری}
-\setinterfacecommand{stopline}{پایان‌خط}
-\setinterfacecommand{stoplinecorrection}{پایان‌تصحیح‌خط}
-\setinterfacecommand{stoplinenote}{stoplinenote}
-\setinterfacecommand{stoplinenumbering}{پایان‌شماره‌گذاری‌خط}
-\setinterfacecommand{stoplines}{پایان‌خطها}
-\setinterfacecommand{stoplocal}{پایان‌موضعی}
-\setinterfacecommand{stoplocalfootnotes}{پایان‌پانوشتهای‌موضعی}
-\setinterfacecommand{stopmakeup}{پایان‌آرایش}
-\setinterfacecommand{stopmarginblock}{پایان‌بلوک‌حاشیه}
-\setinterfacecommand{stopmarginrule}{پایان‌خط‌حاشیه}
-\setinterfacecommand{stopnarrower}{پایان‌نازکتر}
-\setinterfacecommand{stopopposite}{پایان‌مخالف}
-\setinterfacecommand{stopoverlay}{پایان‌پوشش}
-\setinterfacecommand{stopoverview}{پایان‌بازبینی}
-\setinterfacecommand{stoppacked}{پایان‌فشرده}
-\setinterfacecommand{stoppositioning}{پایان‌مکان‌گذاری}
-\setinterfacecommand{stopproduct}{پایان‌تولید}
-\setinterfacecommand{stopprofile}{پایان‌پروفایل}
-\setinterfacecommand{stopproject}{پایان‌پروژه}
-\setinterfacecommand{stopquotation}{پایان‌نقل‌قول}
-\setinterfacecommand{stopraster}{stopraster}
-\setinterfacecommand{stopsynchronization}{پایان‌تطابق}
-\setinterfacecommand{stoptable}{پایان‌جدول}
-\setinterfacecommand{stoptables}{پایان‌جدولها}
-\setinterfacecommand{stoptext}{پایان‌متن}
-\setinterfacecommand{stoptextbackground}{stoptextbackground}
-\setinterfacecommand{stoptextrule}{پایان‌خط‌متن}
-\setinterfacecommand{stopunpacked}{پایان‌غیرفشرده}
-\setinterfacecommand{stopversion}{پایان‌نسخه}
-\setinterfacecommand{stretched}{کشیده}
-\setinterfacecommand{strictinspectnextcharacter}{strictinspectnextcharacter}
-\setinterfacecommand{stripcharacter}{stripcharacter}
-\setinterfacecommand{subformulanumber}{شماره‌زیرفرمول}
-\setinterfacecommand{subpagenumber}{شماره‌زیرصفحه}
-\setinterfacecommand{subtractfeature}{subtractfeature}
-\setinterfacecommand{switchtobodyfont}{تغییربه‌قلم‌بدنه}
-\setinterfacecommand{switchtorawfont}{تغییربه‌قلم‌خام}
-\setinterfacecommand{sym}{نم}
-\setinterfacecommand{symbol}{نماد}
-\setinterfacecommand{symoffset}{symoffset}
-\setinterfacecommand{synchronizationbar}{میله‌تطابق}
-\setinterfacecommand{synchronize}{تطابق}
-\setinterfacecommand{tab}{تب}
-\setinterfacecommand{testcolumn}{ستون‌امتحان}
-\setinterfacecommand{testfeature}{testfeature}
-\setinterfacecommand{testfeatureonce}{testfeatureonce}
-\setinterfacecommand{testpage}{صفحه‌تست}
-\setinterfacecommand{tex}{تک}
-\setinterfacecommand{textbackground}{textbackground}
-\setinterfacecommand{textcolor}{textcolor}
-\setinterfacecommand{textheight}{ارتفاع‌متن}
-\setinterfacecommand{textnote}{textnote}
-\setinterfacecommand{textreference}{مرجع‌متن}
-\setinterfacecommand{textrule}{خط‌متن}
-\setinterfacecommand{textvariable}{متغیر متن}
-\setinterfacecommand{textwidth}{عرض‌متن}
-\setinterfacecommand{thefirstcharacter}{thefirstcharacter}
-\setinterfacecommand{thenormalizedbodyfontsize}{thenormalizedbodyfontsize}
-\setinterfacecommand{theremainingcharacters}{theremainingcharacters}
-\setinterfacecommand{thinrule}{خط‌نازک}
-\setinterfacecommand{thinrules}{خطهای‌نازک}
-\setinterfacecommand{tolinenote}{tolinenote}
-\setinterfacecommand{tooltip}{tooltip}
-\setinterfacecommand{topdistance}{فاصله‌بالا}
-\setinterfacecommand{topheight}{ارتفاع‌بالا}
-\setinterfacecommand{topspace}{فضای‌بالا}
-\setinterfacecommand{totalnumberofpages}{شماره‌کل‌صفحه‌ها}
-\setinterfacecommand{translate}{ترجمه}
-\setinterfacecommand{txt}{txt}
-\setinterfacecommand{typ}{typ}
-\setinterfacecommand{type}{تایپ}
-\setinterfacecommand{typebuffer}{تایپ‌بافر}
-\setinterfacecommand{typedefinedbuffer}{typedefinedbuffer}
-\setinterfacecommand{typefile}{تایپ‌پرونده}
-\setinterfacecommand{typeinlinebuffer}{typeinlinebuffer}
-\setinterfacecommand{typing}{typing}
-\setinterfacecommand{unitmeaning}{معنی‌واحد}
-\setinterfacecommand{unknown}{ناشناس}
-\setinterfacecommand{unregisterhyphenationpattern}{unregisterhyphenationpattern}
-\setinterfacecommand{useJSscripts}{useJSscripts}
-\setinterfacecommand{useURL}{useURL}
-\setinterfacecommand{useXMLfilter}{useXMLfilter}
-\setinterfacecommand{useblocks}{استفاده‌بلوکها}
-\setinterfacecommand{usebodyfont}{usebodyfont}
-\setinterfacecommand{usebodyfontparameter}{usebodyfontparameter}
-\setinterfacecommand{usecommands}{استفاده‌فرمانها}
-\setinterfacecommand{useencoding}{استفاده‌رمزینه}
-\setinterfacecommand{useexternaldocument}{استفاده‌نوشتارخارجی}
-\setinterfacecommand{useexternalfigure}{استفاده‌شکل‌خارجی}
-\setinterfacecommand{useexternalfile}{استفاده‌پرونده‌خارجی}
-\setinterfacecommand{useexternalfiles}{استفاده‌پرونده‌های‌خارجی}
-\setinterfacecommand{useexternalsoundtrack}{استفاده‌قطعه‌موزیک‌خارجی}
-\setinterfacecommand{usemodule}{استفاده‌مدول}
-\setinterfacecommand{usemodules}{استفاده‌مدولها}
-\setinterfacecommand{usepath}{استفاده‌مسیر}
-\setinterfacecommand{usereferences}{استفاده‌مرجعها}
-\setinterfacecommand{usespecials}{استفاده‌ویژگیها}
-\setinterfacecommand{usesymbols}{استفاده‌نمادها}
-\setinterfacecommand{usetypescript}{استفاده‌دستخط‌تایپ}
-\setinterfacecommand{usetypescriptfile}{استفاده‌پرونده‌دستخط‌تایپ}
-\setinterfacecommand{useurl}{useurl}
-\setinterfacecommand{verbatim}{verbatim}
-\setinterfacecommand{version}{نسخه}
-\setinterfacecommand{vl}{خ‌ع}
-\setinterfacecommand{weekday}{روزهفته}
-\setinterfacecommand{whitespace}{فضای‌سفید}
-\setinterfacecommand{widthspanningtext}{widthspanningtext}
-\setinterfacecommand{wordright}{کلمه‌راست}
-\setinterfacecommand{writebetweenlist}{بنویس‌بین‌لیست}
-\setinterfacecommand{writetolist}{بنویس‌در‌لیست}
-\setinterfacecommand{writetoreferencelist}{بنویس‌درلیست‌مرجع}
-\setinterfacecommand{writetoregister}{بنویس‌درثبت}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-ro.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-ro.mkii
deleted file mode 100644
index e497b8d6b79..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-ro.mkii
+++ /dev/null
@@ -1,2224 +0,0 @@
-% this file is auto-generated, don't edit this file
-%
-% definitions for interface variables for language ro
-%
-\setinterfacevariable{Addition}{Adaugare}
-\setinterfacevariable{Alphabetic}{Alphabetic}
-\setinterfacevariable{Balloon}{Balon}
-\setinterfacevariable{Cap}{Cap}
-\setinterfacevariable{Capital}{Majuscula}
-\setinterfacevariable{Character}{Caracter}
-\setinterfacevariable{Characters}{Caractere}
-\setinterfacevariable{CloseDocument}{InchideDocument}
-\setinterfacevariable{ExitViewer}{IesireVizualizator}
-\setinterfacevariable{FirstPage}{PrimaPagina}
-\setinterfacevariable{FitHeight}{AjustatInaltime}
-\setinterfacevariable{FitWidth}{AjustatLatime}
-\setinterfacevariable{GotoPage}{LaPagina}
-\setinterfacevariable{Greek}{Grec}
-\setinterfacevariable{Help}{Ajutor}
-\setinterfacevariable{HideField}{AscundeCamp}
-\setinterfacevariable{HideLayer}{HideLayer}
-\setinterfacevariable{Key}{Cheie}
-\setinterfacevariable{LastPage}{UltimaPagina}
-\setinterfacevariable{LoadForm}{IncarcaFormular}
-\setinterfacevariable{MONTH}{LUNA}
-\setinterfacevariable{New}{Nou}
-\setinterfacevariable{NextJump}{SaltUrmator}
-\setinterfacevariable{NextPage}{PaginaUrmatoare}
-\setinterfacevariable{Numbers}{Numere}
-\setinterfacevariable{OpenNamedDocument}{OpenNamedDocument}
-\setinterfacevariable{Ordinal}{Ordinal}
-\setinterfacevariable{Paragraph}{Paragraf}
-\setinterfacevariable{PauseMovie}{PauzaFilm}
-\setinterfacevariable{PauseRendering}{PauseRendering}
-\setinterfacevariable{PauseSound}{PauzaSunet}
-\setinterfacevariable{PreviousJump}{SaltPrecedent}
-\setinterfacevariable{PreviousPage}{PaginaPrecedenta}
-\setinterfacevariable{PrintDocument}{TiparesteDocument}
-\setinterfacevariable{Query}{Query}
-\setinterfacevariable{QueryAgain}{QueryAgain}
-\setinterfacevariable{ResetForm}{ResetareFormular}
-\setinterfacevariable{ResumeMovie}{RepornesteFilm}
-\setinterfacevariable{ResumeRendering}{ResumeRendering}
-\setinterfacevariable{ResumeSound}{RepornesteSunet}
-\setinterfacevariable{Romannumerals}{Numereromane}
-\setinterfacevariable{SaveDocument}{SalvareDocument}
-\setinterfacevariable{SaveForm}{SalveazaFormular}
-\setinterfacevariable{SaveNamedDocument}{SaveNamedDocument}
-\setinterfacevariable{SearchAgain}{CautaDinNou}
-\setinterfacevariable{SearchDocument}{CautaDocument}
-\setinterfacevariable{ShowBookmarks}{ShowBookmarks}
-\setinterfacevariable{ShowField}{AfiseazaCamp}
-\setinterfacevariable{ShowThumbs}{ShowThumbs}
-\setinterfacevariable{StartMovie}{StartFilm}
-\setinterfacevariable{StartRendering}{StartRendering}
-\setinterfacevariable{StartSound}{StartSunet}
-\setinterfacevariable{StopMovie}{StopFilm}
-\setinterfacevariable{StopRendering}{StopRendering}
-\setinterfacevariable{StopSound}{StopSunet}
-\setinterfacevariable{SubmitForm}{TrimiteFormular}
-\setinterfacevariable{ToggleLayer}{ToggleLayer}
-\setinterfacevariable{ToggleViewer}{SchimbaVizualizator}
-\setinterfacevariable{URL}{URL}
-\setinterfacevariable{VideLayer}{VideLayer}
-\setinterfacevariable{ViewerHelp}{AjutorVizualizator}
-\setinterfacevariable{WEEKDAY}{ZISAPTAMANA}
-\setinterfacevariable{WORD}{CUVANT}
-\setinterfacevariable{WORDS}{CUVINTE}
-\setinterfacevariable{Word}{Cuvant}
-\setinterfacevariable{Words}{Cuvinte}
-\setinterfacevariable{abbreviation}{abreviere}
-\setinterfacevariable{abbreviations}{abrevieri}
-\setinterfacevariable{absolute}{absolut}
-\setinterfacevariable{action}{actiune}
-\setinterfacevariable{after}{dupa}
-\setinterfacevariable{all}{tot}
-\setinterfacevariable{alphabetic}{alphabetic}
-\setinterfacevariable{always}{totdeauna}
-\setinterfacevariable{anchor}{anchor}
-\setinterfacevariable{and}{and}
-\setinterfacevariable{answerarea}{answerarea}
-\setinterfacevariable{appendices}{apendixuri}
-\setinterfacevariable{appendix}{apendix}
-\setinterfacevariable{april}{aprilie}
-\setinterfacevariable{aside}{aside}
-\setinterfacevariable{atleftmargin}{atleftmargin}
-\setinterfacevariable{atmargin}{lamargine}
-\setinterfacevariable{atpage}{lapagina}
-\setinterfacevariable{atrightmargin}{atrightmargin}
-\setinterfacevariable{attachment}{attachment}
-\setinterfacevariable{august}{august}
-\setinterfacevariable{author}{autor}
-\setinterfacevariable{auto}{auto}
-\setinterfacevariable{autointro}{autointro}
-\setinterfacevariable{autopunctuation}{autopunctuation}
-\setinterfacevariable{back}{inapot}
-\setinterfacevariable{background}{fundal}
-\setinterfacevariable{backmatter}{epilogul}
-\setinterfacevariable{backpart}{epilog}
-\setinterfacevariable{backspace}{spatiuspate}
-\setinterfacevariable{backward}{inapoi}
-\setinterfacevariable{bbl}{bbl}
-\setinterfacevariable{before}{inainte}
-\setinterfacevariable{begin}{begin}
-\setinterfacevariable{bib}{bib}
-\setinterfacevariable{big}{mare}
-\setinterfacevariable{bigbodyfont}{bigbodyfont}
-\setinterfacevariable{bigger}{bigger}
-\setinterfacevariable{bigpreference}{preferintamare}
-\setinterfacevariable{blank}{blank}
-\setinterfacevariable{block}{block}
-\setinterfacevariable{blockquote}{blockquote}
-\setinterfacevariable{bodymatter}{principalul}
-\setinterfacevariable{bodypart}{principal}
-\setinterfacevariable{bold}{aldin}
-\setinterfacevariable{bolditalic}{aldinitalic}
-\setinterfacevariable{boldslanted}{aldininclinat}
-\setinterfacevariable{bookmark}{semncarte}
-\setinterfacevariable{both}{ambele}
-\setinterfacevariable{bothtext}{bothtext}
-\setinterfacevariable{bottom}{subsol}
-\setinterfacevariable{box}{box}
-\setinterfacevariable{brief}{brief}
-\setinterfacevariable{broad}{broad}
-\setinterfacevariable{buffer}{buffer}
-\setinterfacevariable{by}{de}
-\setinterfacevariable{calligraphic}{caligrafic}
-\setinterfacevariable{camel}{camel}
-\setinterfacevariable{cap}{cap}
-\setinterfacevariable{capital}{majuscula}
-\setinterfacevariable{category}{category}
-\setinterfacevariable{cd:character}{cd:character}
-\setinterfacevariable{cd:font}{cd:font}
-\setinterfacevariable{center}{center}
-\setinterfacevariable{centerlast}{centerlast}
-\setinterfacevariable{chapter}{capitol}
-\setinterfacevariable{character}{caracter}
-\setinterfacevariable{characters}{caractere}
-\setinterfacevariable{chemical}{chemical}
-\setinterfacevariable{chemicals}{chemicals}
-\setinterfacevariable{chemistry}{chemistry}
-\setinterfacevariable{cite}{cite}
-\setinterfacevariable{closed}{closed}
-\setinterfacevariable{color}{culoare}
-\setinterfacevariable{column}{coloana}
-\setinterfacevariable{columns}{coloane}
-\setinterfacevariable{combination}{combination}
-\setinterfacevariable{command}{comanda}
-\setinterfacevariable{commands}{comenzi}
-\setinterfacevariable{comment}{comentariu}
-\setinterfacevariable{component}{componenta}
-\setinterfacevariable{compressseparator}{compressseparator}
-\setinterfacevariable{compressstopper}{compressstopper}
-\setinterfacevariable{concept}{concept}
-\setinterfacevariable{construction}{construction}
-\setinterfacevariable{content}{cuprins}
-\setinterfacevariable{contents}{cuprinsuri}
-\setinterfacevariable{continue}{continuu}
-\setinterfacevariable{continued}{continued}
-\setinterfacevariable{controls}{controale}
-\setinterfacevariable{conversion}{conversie}
-\setinterfacevariable{current}{curent}
-\setinterfacevariable{cutspace}{cutspace}
-\setinterfacevariable{dataset}{dataset}
-\setinterfacevariable{date}{data}
-\setinterfacevariable{day}{zi}
-\setinterfacevariable{december}{decembrie}
-\setinterfacevariable{default}{implicit}
-\setinterfacevariable{depth}{adancime}
-\setinterfacevariable{description}{descriere}
-\setinterfacevariable{disable}{dezactivat}
-\setinterfacevariable{display}{display}
-\setinterfacevariable{dot}{punct}
-\setinterfacevariable{doublesided}{douafete}
-\setinterfacevariable{down}{down}
-\setinterfacevariable{each}{fiecare}
-\setinterfacevariable{edge}{bordura}
-\setinterfacevariable{effective}{effective}
-\setinterfacevariable{eight}{eight}
-\setinterfacevariable{embed}{embed}
-\setinterfacevariable{empty}{gol}
-\setinterfacevariable{enable}{enable}
-\setinterfacevariable{end}{end}
-\setinterfacevariable{endnote}{endnote}
-\setinterfacevariable{enumeration}{enumerare}
-\setinterfacevariable{environment}{mediu}
-\setinterfacevariable{even}{par}
-\setinterfacevariable{export}{export}
-\setinterfacevariable{external}{extern}
-\setinterfacevariable{extremestretch}{extremestretch}
-\setinterfacevariable{fact}{fapt}
-\setinterfacevariable{fallback}{fallback}
-\setinterfacevariable{february}{februarie}
-\setinterfacevariable{field}{field}
-\setinterfacevariable{figure}{figura}
-\setinterfacevariable{figures}{figure}
-\setinterfacevariable{file}{fisier}
-\setinterfacevariable{final}{final}
-\setinterfacevariable{first}{primul}
-\setinterfacevariable{firstcolumn}{firstcolumn}
-\setinterfacevariable{firstpage}{primapagina}
-\setinterfacevariable{firstsubpage}{primasubpagina}
-\setinterfacevariable{fit}{ajustat}
-\setinterfacevariable{five}{cinci}
-\setinterfacevariable{fix}{fix}
-\setinterfacevariable{fixed}{fixat}
-\setinterfacevariable{flexible}{flexibil}
-\setinterfacevariable{float}{obiectmobil}
-\setinterfacevariable{flushinner}{flushinner}
-\setinterfacevariable{flushleft}{flushleft}
-\setinterfacevariable{flushouter}{flushouter}
-\setinterfacevariable{flushright}{flushright}
-\setinterfacevariable{followingpage}{followingpage}
-\setinterfacevariable{font}{font}
-\setinterfacevariable{footer}{subsol}
-\setinterfacevariable{footnote}{notasubsol}
-\setinterfacevariable{force}{fortat}
-\setinterfacevariable{foreground}{primplan}
-\setinterfacevariable{formula}{formula}
-\setinterfacevariable{formulas}{formule}
-\setinterfacevariable{forward}{avans}
-\setinterfacevariable{four}{patru}
-\setinterfacevariable{fractions}{fractions}
-\setinterfacevariable{frame}{incadrat}
-\setinterfacevariable{framedtext}{textinconjurat}
-\setinterfacevariable{friday}{vineri}
-\setinterfacevariable{frontmatter}{prologul}
-\setinterfacevariable{frontpart}{prolog}
-\setinterfacevariable{fullhz}{fullhz}
-\setinterfacevariable{global}{global}
-\setinterfacevariable{graphic}{graficul}
-\setinterfacevariable{graphics}{graficele}
-\setinterfacevariable{gray}{gri}
-\setinterfacevariable{greek}{grec}
-\setinterfacevariable{grid}{grila}
-\setinterfacevariable{halfline}{jumatatelinie}
-\setinterfacevariable{handwritten}{scrismanual}
-\setinterfacevariable{hang}{suspenda}
-\setinterfacevariable{hanging}{suspendat}
-\setinterfacevariable{hangingboth}{hangingboth}
-\setinterfacevariable{head}{antet}
-\setinterfacevariable{header}{antet}
-\setinterfacevariable{headintext}{headintext}
-\setinterfacevariable{height}{inaltime}
-\setinterfacevariable{helptext}{textajutator}
-\setinterfacevariable{hencefore}{precedent}
-\setinterfacevariable{here}{aici}
-\setinterfacevariable{hereafter}{urmator}
-\setinterfacevariable{hidden}{ascuns}
-\setinterfacevariable{hiddenbar}{hiddenbar}
-\setinterfacevariable{hiding}{ascundere}
-\setinterfacevariable{high}{inalt}
-\setinterfacevariable{horizontal}{orizontal}
-\setinterfacevariable{hyphenated}{despsilabe}
-\setinterfacevariable{hz}{hz}
-\setinterfacevariable{inbetween}{intre}
-\setinterfacevariable{index}{index}
-\setinterfacevariable{indices}{indexuri}
-\setinterfacevariable{inherit}{inherit}
-\setinterfacevariable{ininner}{ininner}
-\setinterfacevariable{ininneredge}{ininneredge}
-\setinterfacevariable{ininnermargin}{ininnermargin}
-\setinterfacevariable{inleft}{instanga}
-\setinterfacevariable{inleftedge}{inparteastanga}
-\setinterfacevariable{inleftmargin}{inmargineastanga}
-\setinterfacevariable{inline}{inline}
-\setinterfacevariable{inmargin}{inmargine}
-\setinterfacevariable{inner}{intern}
-\setinterfacevariable{inneredge}{inneredge}
-\setinterfacevariable{innermargin}{innermargin}
-\setinterfacevariable{inother}{inother}
-\setinterfacevariable{inouter}{inouter}
-\setinterfacevariable{inouteredge}{inouteredge}
-\setinterfacevariable{inoutermargin}{inoutermargin}
-\setinterfacevariable{inright}{indreapta}
-\setinterfacevariable{inrightedge}{inparteadreapta}
-\setinterfacevariable{inrightmargin}{inmargineadreapta}
-\setinterfacevariable{integral}{integral}
-\setinterfacevariable{interaction}{interactiune}
-\setinterfacevariable{interactionmenu}{meniuinteractiune}
-\setinterfacevariable{interactive}{interactive}
-\setinterfacevariable{intermezzi}{intermezzi}
-\setinterfacevariable{intermezzo}{intermezzo}
-\setinterfacevariable{intext}{intext}
-\setinterfacevariable{intro}{intro}
-\setinterfacevariable{invertedshort}{invertedshort}
-\setinterfacevariable{italic}{italic}
-\setinterfacevariable{italicbold}{italicaldin}
-\setinterfacevariable{item}{element}
-\setinterfacevariable{itemize}{enumerare}
-\setinterfacevariable{its}{propriu}
-\setinterfacevariable{january}{ianuarie}
-\setinterfacevariable{joinedup}{unit}
-\setinterfacevariable{july}{iulie}
-\setinterfacevariable{june}{iunie}
-\setinterfacevariable{keep}{mentine}
-\setinterfacevariable{kerncharacters}{kerncharacters}
-\setinterfacevariable{knockout}{knockout}
-\setinterfacevariable{label}{eticheta}
-\setinterfacevariable{landscape}{vedere}
-\setinterfacevariable{last}{ultim}
-\setinterfacevariable{lastcolumn}{lastcolumn}
-\setinterfacevariable{lastpage}{ultimapagina}
-\setinterfacevariable{lastpagenumber}{lastpagenumber}
-\setinterfacevariable{lastsubpage}{ultimasubpagina}
-\setinterfacevariable{layer}{layer}
-\setinterfacevariable{left}{stanga}
-\setinterfacevariable{leftedge}{bordurastanga}
-\setinterfacevariable{lefthanging}{lefthanging}
-\setinterfacevariable{leftmargin}{marginestanga}
-\setinterfacevariable{leftpage}{paginastanga}
-\setinterfacevariable{lefttoright}{lefttoright}
-\setinterfacevariable{legend}{legenda}
-\setinterfacevariable{less}{less}
-\setinterfacevariable{lesshyphenation}{lesshyphenation}
-\setinterfacevariable{letterspacing}{letterspacing}
-\setinterfacevariable{line}{linie}
-\setinterfacevariable{linenote}{linenote}
-\setinterfacevariable{lines}{linii}
-\setinterfacevariable{linked}{linked}
-\setinterfacevariable{list}{lista}
-\setinterfacevariable{local}{local}
-\setinterfacevariable{localenvironment}{mediulocal}
-\setinterfacevariable{logo}{logo}
-\setinterfacevariable{logos}{logos}
-\setinterfacevariable{lohi}{lohi}
-\setinterfacevariable{long}{long}
-\setinterfacevariable{loose}{larg}
-\setinterfacevariable{low}{jos}
-\setinterfacevariable{ls}{ls}
-\setinterfacevariable{makeup}{marcaj}
-\setinterfacevariable{mar}{mar}
-\setinterfacevariable{march}{martie}
-\setinterfacevariable{margin}{margine}
-\setinterfacevariable{marginedge}{marginebordura}
-\setinterfacevariable{margintext}{textmarginal}
-\setinterfacevariable{margintitle}{titlumarginal}
-\setinterfacevariable{marking}{marcaje}
-\setinterfacevariable{math}{math}
-\setinterfacevariable{mathalignment}{mathalignment}
-\setinterfacevariable{mathcases}{mathcases}
-\setinterfacevariable{mathematics}{matematica}
-\setinterfacevariable{mathmatrix}{mathmatrix}
-\setinterfacevariable{max}{max}
-\setinterfacevariable{maxdepth}{maxdepth}
-\setinterfacevariable{maxheight}{maxheight}
-\setinterfacevariable{maxwidth}{maxwidth}
-\setinterfacevariable{may}{mai}
-\setinterfacevariable{mediaeval}{medieval}
-\setinterfacevariable{medium}{mediu}
-\setinterfacevariable{middle}{centru}
-\setinterfacevariable{min}{min}
-\setinterfacevariable{mindepth}{mindepth}
-\setinterfacevariable{minheight}{inaltimeminima}
-\setinterfacevariable{minwidth}{latimeminima}
-\setinterfacevariable{mirrored}{oglindit}
-\setinterfacevariable{mixed}{mixed}
-\setinterfacevariable{monday}{luni}
-\setinterfacevariable{mono}{mono}
-\setinterfacevariable{monobold}{monoaldin}
-\setinterfacevariable{mononormal}{mononormal}
-\setinterfacevariable{month}{luna}
-\setinterfacevariable{more}{more}
-\setinterfacevariable{morehyphenation}{morehyphenation}
-\setinterfacevariable{name}{nume}
-\setinterfacevariable{narrow}{ingust}
-\setinterfacevariable{negative}{negativ}
-\setinterfacevariable{never}{niciodata}
-\setinterfacevariable{new}{nou}
-\setinterfacevariable{next}{urmatorul}
-\setinterfacevariable{nextevenpage}{paginaparaurmatoarea}
-\setinterfacevariable{nextoddpage}{paginaimparaurmatoarea}
-\setinterfacevariable{nextpage}{paginaurmatoare}
-\setinterfacevariable{nextsubpage}{urmatoareasubpagina}
-\setinterfacevariable{nine}{nine}
-\setinterfacevariable{no}{nu}
-\setinterfacevariable{nocheck}{nocheck}
-\setinterfacevariable{nodepth}{nodepth}
-\setinterfacevariable{nofit}{nofit}
-\setinterfacevariable{nogrid}{nogrid}
-\setinterfacevariable{noheight}{noheight}
-\setinterfacevariable{nohz}{nohz}
-\setinterfacevariable{noline}{noline}
-\setinterfacevariable{nomarking}{faramarcare}
-\setinterfacevariable{nomenubar}{nomenubar}
-\setinterfacevariable{none}{niciunul}
-\setinterfacevariable{nonumber}{nonumber}
-\setinterfacevariable{norepeat}{norepeat}
-\setinterfacevariable{normal}{normal}
-\setinterfacevariable{normalshort}{normalshort}
-\setinterfacevariable{nospacing}{nospacing}
-\setinterfacevariable{nostopper}{nostopper}
-\setinterfacevariable{not}{nu}
-\setinterfacevariable{notation}{notation}
-\setinterfacevariable{note}{note}
-\setinterfacevariable{nothanging}{nothanging}
-\setinterfacevariable{nothyphenated}{nedespsilabe}
-\setinterfacevariable{notjoinedup}{notjoinedup}
-\setinterfacevariable{november}{noiembrie}
-\setinterfacevariable{nowhere}{niciunde}
-\setinterfacevariable{nowhite}{faraalb}
-\setinterfacevariable{number}{numar}
-\setinterfacevariable{numbers}{numere}
-\setinterfacevariable{october}{octombrie}
-\setinterfacevariable{odd}{impar}
-\setinterfacevariable{off}{dezactivat}
-\setinterfacevariable{offset}{offset}
-\setinterfacevariable{old}{old}
-\setinterfacevariable{oldstyle}{oldstyle}
-\setinterfacevariable{on}{on}
-\setinterfacevariable{one}{unu}
-\setinterfacevariable{opposite}{opus}
-\setinterfacevariable{ordinal}{ordinal}
-\setinterfacevariable{outer}{extern}
-\setinterfacevariable{outeredge}{outeredge}
-\setinterfacevariable{outermargin}{outermargin}
-\setinterfacevariable{overbar}{barasus}
-\setinterfacevariable{overbars}{supralinie}
-\setinterfacevariable{overlay}{overlay}
-\setinterfacevariable{overprint}{overprint}
-\setinterfacevariable{overstrike}{liniepeste}
-\setinterfacevariable{overstrikes}{liniipeste}
-\setinterfacevariable{packed}{impachetat}
-\setinterfacevariable{page}{pagina}
-\setinterfacevariable{pagecomment}{comentariupagina}
-\setinterfacevariable{pagenumber}{numarpagina}
-\setinterfacevariable{paper}{foaie}
-\setinterfacevariable{paragraph}{paragraf}
-\setinterfacevariable{part}{parte}
-\setinterfacevariable{positive}{positiv}
-\setinterfacevariable{postponing}{postponing}
-\setinterfacevariable{postscript}{postscript}
-\setinterfacevariable{precedingpage}{precedingpage}
-\setinterfacevariable{preference}{preferinta}
-\setinterfacevariable{preview}{previzualizare}
-\setinterfacevariable{previous}{precedent}
-\setinterfacevariable{previousevenpage}{paginaparaprecedenta}
-\setinterfacevariable{previousoddpage}{paginaimparaprecedenta}
-\setinterfacevariable{previouspage}{paginaanterioara}
-\setinterfacevariable{previoussubpage}{subpaginaanterioara}
-\setinterfacevariable{print}{print}
-\setinterfacevariable{printable}{tiparibil}
-\setinterfacevariable{process}{process}
-\setinterfacevariable{product}{produs}
-\setinterfacevariable{program}{program}
-\setinterfacevariable{project}{proiect}
-\setinterfacevariable{protected}{protejat}
-\setinterfacevariable{quadruple}{cvadrupul}
-\setinterfacevariable{quarterline}{quarterline}
-\setinterfacevariable{quotation}{citat}
-\setinterfacevariable{quote}{minicitat}
-\setinterfacevariable{ran}{rulat}
-\setinterfacevariable{random}{aleator}
-\setinterfacevariable{readonly}{readonly}
-\setinterfacevariable{rectangular}{rectangular}
-\setinterfacevariable{reference}{referinta}
-\setinterfacevariable{referral}{referinta}
-\setinterfacevariable{region}{region}
-\setinterfacevariable{register}{registru}
-\setinterfacevariable{regular}{regular}
-\setinterfacevariable{relative}{relativ}
-\setinterfacevariable{repeat}{repetat}
-\setinterfacevariable{required}{obligatoriu}
-\setinterfacevariable{reset}{reset}
-\setinterfacevariable{reverse}{reverse}
-\setinterfacevariable{right}{dreapta}
-\setinterfacevariable{rightedge}{borduradreapta}
-\setinterfacevariable{righthanging}{righthanging}
-\setinterfacevariable{rightmargin}{marginedreapta}
-\setinterfacevariable{rightpage}{paginadreapta}
-\setinterfacevariable{righttoleft}{righttoleft}
-\setinterfacevariable{roman}{roman}
-\setinterfacevariable{romannumerals}{numereromane}
-\setinterfacevariable{rotate}{rotit}
-\setinterfacevariable{rotated}{rotat}
-\setinterfacevariable{round}{rotund}
-\setinterfacevariable{row}{rand}
-\setinterfacevariable{rule}{rigla}
-\setinterfacevariable{samepage}{aceeasipagina}
-\setinterfacevariable{sans}{sans}
-\setinterfacevariable{sansbold}{sansaldin}
-\setinterfacevariable{sansnormal}{sansnormal}
-\setinterfacevariable{sansserif}{sansserif}
-\setinterfacevariable{saturday}{sambata}
-\setinterfacevariable{screen}{ecran}
-\setinterfacevariable{section}{sectiune}
-\setinterfacevariable{sectionblockenvironment}{blocsectiuneambient}
-\setinterfacevariable{sectionnumber}{numarsetiune}
-\setinterfacevariable{see}{vezi}
-\setinterfacevariable{selectfont}{selectfont}
-\setinterfacevariable{separator}{separator}
-\setinterfacevariable{september}{septembrie}
-\setinterfacevariable{serif}{serif}
-\setinterfacevariable{serifbold}{serifbold}
-\setinterfacevariable{serifnormal}{serifnormal}
-\setinterfacevariable{serried}{serried}
-\setinterfacevariable{setups}{setups}
-\setinterfacevariable{seven}{seven}
-\setinterfacevariable{sheet}{sheet}
-\setinterfacevariable{shiftdown}{shiftdown}
-\setinterfacevariable{shiftup}{shiftup}
-\setinterfacevariable{short}{short}
-\setinterfacevariable{simplefonts}{simplefonts}
-\setinterfacevariable{simplelist}{simplelist}
-\setinterfacevariable{singlesided}{ofata}
-\setinterfacevariable{six}{six}
-\setinterfacevariable{slanted}{inclinat}
-\setinterfacevariable{slantedbold}{inclinataldin}
-\setinterfacevariable{small}{mic}
-\setinterfacevariable{smallbodyfont}{smallbodyfont}
-\setinterfacevariable{smallbold}{micaldin}
-\setinterfacevariable{smallbolditalic}{micaldininclinat}
-\setinterfacevariable{smallboldslanted}{micaldininclinat}
-\setinterfacevariable{smallcaps}{majusculemici}
-\setinterfacevariable{smaller}{smaller}
-\setinterfacevariable{smallitalic}{micitalic}
-\setinterfacevariable{smallitalicbold}{micitalicaldin}
-\setinterfacevariable{smallnormal}{micnormal}
-\setinterfacevariable{smallslanted}{micinclinat}
-\setinterfacevariable{smallslantedbold}{micinclinataldin}
-\setinterfacevariable{smalltype}{mictype}
-\setinterfacevariable{somewhere}{undeva}
-\setinterfacevariable{sorted}{sortat}
-\setinterfacevariable{sorting}{sorting}
-\setinterfacevariable{space}{spatiu}
-\setinterfacevariable{spacing}{spatiere}
-\setinterfacevariable{speech}{speech}
-\setinterfacevariable{split}{split}
-\setinterfacevariable{spot}{spot}
-\setinterfacevariable{standard}{standard}
-\setinterfacevariable{start}{start}
-\setinterfacevariable{starter}{starter}
-\setinterfacevariable{sticker}{sticker}
-\setinterfacevariable{stop}{stop}
-\setinterfacevariable{stopper}{stopper}
-\setinterfacevariable{stretch}{dilatat}
-\setinterfacevariable{stretched}{stretched}
-\setinterfacevariable{strict}{strict}
-\setinterfacevariable{strong}{strong}
-\setinterfacevariable{strut}{strut}
-\setinterfacevariable{sub}{sub}
-\setinterfacevariable{subbackward}{subinapoi}
-\setinterfacevariable{subformula}{subformula}
-\setinterfacevariable{subforward}{subavans}
-\setinterfacevariable{subject}{subiect}
-\setinterfacevariable{subpage}{subpagina}
-\setinterfacevariable{subs}{subs}
-\setinterfacevariable{subsection}{subsectiune}
-\setinterfacevariable{subsubject}{subsubiect}
-\setinterfacevariable{subsubsection}{subsubsectiune}
-\setinterfacevariable{subsubsubject}{subsubsubiect}
-\setinterfacevariable{subsubsubsection}{subsubsubsectiune}
-\setinterfacevariable{subsubsubsubject}{subsubsubsubiect}
-\setinterfacevariable{subsubsubsubsection}{subsubsubsubsectiune}
-\setinterfacevariable{subsubsubsubsubject}{subsubsubsubsubiect}
-\setinterfacevariable{subsubsubsubsubsection}{subsubsubsubsubsectiune}
-\setinterfacevariable{subsubsubsubsubsubject}{subsubsubsubsubsubiect}
-\setinterfacevariable{subsubsubsubsubsubsection}{subsubsubsubsubsubsectiune}
-\setinterfacevariable{subsubsubsubsubsubsubject}{subsubsubsubsubsubsubiect}
-\setinterfacevariable{subsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsectiune}
-\setinterfacevariable{subsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubiect}
-\setinterfacevariable{subsubsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsubsectiune}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubsubiect}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubsection}{subsubsubsubsubsubsubsubsubsectiune}
-\setinterfacevariable{subsubsubsubsubsubsubsubsubsubject}{subsubsubsubsubsubsubsubsubsubiect}
-\setinterfacevariable{sunday}{duminica}
-\setinterfacevariable{support}{suport}
-\setinterfacevariable{sym}{sym}
-\setinterfacevariable{symbol}{simbol}
-\setinterfacevariable{synchronize}{synchronize}
-\setinterfacevariable{synonym}{synonym}
-\setinterfacevariable{system}{sistem}
-\setinterfacevariable{table}{tabelul}
-\setinterfacevariable{tablehead}{antettabel}
-\setinterfacevariable{tables}{tabelele}
-\setinterfacevariable{tabletail}{subsoltabel}
-\setinterfacevariable{tabulate}{tabulate}
-\setinterfacevariable{tabulatehead}{tabulatehead}
-\setinterfacevariable{tabulatetail}{tabulatetail}
-\setinterfacevariable{tall}{inalt}
-\setinterfacevariable{teletype}{teletype}
-\setinterfacevariable{temporary}{temporar}
-\setinterfacevariable{test}{test}
-\setinterfacevariable{text}{text}
-\setinterfacevariable{textnote}{textnote}
-\setinterfacevariable{three}{trei}
-\setinterfacevariable{thursday}{joi}
-\setinterfacevariable{tight}{tight}
-\setinterfacevariable{title}{titlu}
-\setinterfacevariable{toggle}{toggle}
-\setinterfacevariable{tolerant}{tolerant}
-\setinterfacevariable{top}{sus}
-\setinterfacevariable{tuesday}{marti}
-\setinterfacevariable{two}{doi}
-\setinterfacevariable{txt}{txt}
-\setinterfacevariable{type}{type}
-\setinterfacevariable{typing}{typing}
-\setinterfacevariable{unavailable}{nedisponibil}
-\setinterfacevariable{underbar}{sublinie}
-\setinterfacevariable{underbars}{sublinii}
-\setinterfacevariable{understrike}{understrike}
-\setinterfacevariable{understrikes}{understrikes}
-\setinterfacevariable{unframed}{unframed}
-\setinterfacevariable{unicode}{unicode}
-\setinterfacevariable{unit}{unitate}
-\setinterfacevariable{units}{unitati}
-\setinterfacevariable{unknown}{necunoscut}
-\setinterfacevariable{unpacked}{despachetat}
-\setinterfacevariable{up}{up}
-\setinterfacevariable{url}{url}
-\setinterfacevariable{used}{folosit}
-\setinterfacevariable{value}{valoare}
-\setinterfacevariable{vertical}{vertical}
-\setinterfacevariable{very}{foarte}
-\setinterfacevariable{verystrict}{foartestrict}
-\setinterfacevariable{verytolerant}{foartetolerant}
-\setinterfacevariable{vfenced}{vfenced}
-\setinterfacevariable{vulgarfraction}{vulgarfraction}
-\setinterfacevariable{weak}{weak}
-\setinterfacevariable{wednesday}{miercuri}
-\setinterfacevariable{week}{saptamana}
-\setinterfacevariable{weekday}{zisaptamana}
-\setinterfacevariable{white}{alb}
-\setinterfacevariable{wide}{larg}
-\setinterfacevariable{width}{latime}
-\setinterfacevariable{word}{cuvant}
-\setinterfacevariable{words}{words}
-\setinterfacevariable{xml}{xml}
-\setinterfacevariable{year}{an}
-\setinterfacevariable{yes}{da}
-% definitions for interface constants for language ro
-%
-\setinterfaceconstant{action}{actiune}
-\setinterfaceconstant{address}{adresa}
-\setinterfaceconstant{after}{dupa}
-\setinterfaceconstant{afterhead}{dupatitlu}
-\setinterfaceconstant{afterkey}{dupatasta}
-\setinterfaceconstant{aftersection}{aftersection}
-\setinterfaceconstant{align}{aliniere}
-\setinterfaceconstant{alignbottom}{alignbottom}
-\setinterfaceconstant{aligncharacter}{aliniazacaracter}
-\setinterfaceconstant{alignmentcharacter}{alierecaracter}
-\setinterfaceconstant{alignmentleftsample}{alignmentleftsample}
-\setinterfaceconstant{alignmentleftwidth}{alignmentleftwidth}
-\setinterfaceconstant{alignmentrightsample}{alignmentrightsample}
-\setinterfaceconstant{alignmentrightwidth}{alignmentrightwidth}
-\setinterfaceconstant{alignsymbol}{alignsymbol}
-\setinterfaceconstant{aligntitle}{alinieretitlu}
-\setinterfaceconstant{alternative}{alternativ}
-\setinterfaceconstant{anchor}{anchor}
-\setinterfaceconstant{anchoring}{anchoring}
-\setinterfaceconstant{andtext}{andtext}
-\setinterfaceconstant{apa}{apa}
-\setinterfaceconstant{arguments}{arguments}
-\setinterfaceconstant{arrow}{sageata}
-\setinterfaceconstant{artauthor}{artauthor}
-\setinterfaceconstant{artauthoretaldisplay}{artauthoretaldisplay}
-\setinterfaceconstant{artauthoretallimit}{artauthoretallimit}
-\setinterfaceconstant{artauthoretaltext}{artauthoretaltext}
-\setinterfaceconstant{artoffset}{artoffset}
-\setinterfaceconstant{at}{la}
-\setinterfaceconstant{author}{autor}
-\setinterfaceconstant{authorconversion}{authorconversion}
-\setinterfaceconstant{authoretaldisplay}{authoretaldisplay}
-\setinterfaceconstant{authoretallimit}{authoretallimit}
-\setinterfaceconstant{authoretaltext}{authoretaltext}
-\setinterfaceconstant{auto}{auto}
-\setinterfaceconstant{autocase}{autocase}
-\setinterfaceconstant{autofile}{autofile}
-\setinterfaceconstant{autofocus}{autofocus}
-\setinterfaceconstant{autohang}{autohang}
-\setinterfaceconstant{autostrut}{autostrut}
-\setinterfaceconstant{autowidth}{autolatime}
-\setinterfaceconstant{availableheight}{availableheight}
-\setinterfaceconstant{availablewidth}{availablewidth}
-\setinterfaceconstant{axis}{axa}
-\setinterfaceconstant{background}{fundal}
-\setinterfaceconstant{backgroundcolor}{culoarefundal}
-\setinterfaceconstant{backgroundcorner}{coltfundal}
-\setinterfaceconstant{backgrounddepth}{adancimefundal}
-\setinterfaceconstant{backgroundoffset}{offsetfundal}
-\setinterfaceconstant{backgroundradius}{razafundal}
-\setinterfaceconstant{backgroundscreen}{ecranfundal}
-\setinterfaceconstant{backreference}{backreference}
-\setinterfaceconstant{backspace}{spatiuspate}
-\setinterfaceconstant{balance}{balanta}
-\setinterfaceconstant{before}{inainte}
-\setinterfaceconstant{beforehead}{inaintetitlu}
-\setinterfaceconstant{beforesection}{beforesection}
-\setinterfaceconstant{bet}{bet}
-\setinterfaceconstant{bidi}{bidi}
-\setinterfaceconstant{big}{mare}
-\setinterfaceconstant{blank}{blanc}
-\setinterfaceconstant{bleedoffset}{bleedoffset}
-\setinterfaceconstant{blockway}{blockway}
-\setinterfaceconstant{bodyfont}{fonttext}
-\setinterfaceconstant{boffset}{boffset}
-\setinterfaceconstant{boldfeatures}{boldfeatures}
-\setinterfaceconstant{boldfont}{boldfont}
-\setinterfaceconstant{bolditalicfeatures}{bolditalicfeatures}
-\setinterfaceconstant{bolditalicfont}{bolditalicfont}
-\setinterfaceconstant{boldslantedfeatures}{boldslantedfeatures}
-\setinterfaceconstant{boldslantedfont}{boldslantedfont}
-\setinterfaceconstant{bookmark}{semncarte}
-\setinterfaceconstant{bottom}{jos}
-\setinterfaceconstant{bottomafter}{bottomafter}
-\setinterfaceconstant{bottombefore}{bottombefore}
-\setinterfaceconstant{bottomcommand}{bottomcommand}
-\setinterfaceconstant{bottomdistance}{distantajos}
-\setinterfaceconstant{bottomframe}{framejos}
-\setinterfaceconstant{bottomoffset}{offsetjos}
-\setinterfaceconstant{bottomspace}{spatiujos}
-\setinterfaceconstant{bottomstate}{starejos}
-\setinterfaceconstant{break}{break}
-\setinterfaceconstant{buffer}{buffer}
-\setinterfaceconstant{cache}{cache}
-\setinterfaceconstant{calculate}{calculeaza}
-\setinterfaceconstant{category}{category}
-\setinterfaceconstant{ccommand}{comandac}
-\setinterfaceconstant{character}{character}
-\setinterfaceconstant{characters}{characters}
-\setinterfaceconstant{check}{check}
-\setinterfaceconstant{click}{click}
-\setinterfaceconstant{clickin}{clickintru}
-\setinterfaceconstant{clickout}{clickies}
-\setinterfaceconstant{clipoffset}{clipoffset}
-\setinterfaceconstant{closeaction}{actiuneinchidere}
-\setinterfaceconstant{closecommand}{closecommand}
-\setinterfaceconstant{closepage}{closepage}
-\setinterfaceconstant{closepageaction}{actiuneinchiderepagina}
-\setinterfaceconstant{closesymbol}{closesymbol}
-\setinterfaceconstant{color}{culoare}
-\setinterfaceconstant{column}{coloana}
-\setinterfaceconstant{columndistance}{distantacoloane}
-\setinterfaceconstant{columns}{coloane}
-\setinterfaceconstant{comma}{comma}
-\setinterfaceconstant{command}{comanda}
-\setinterfaceconstant{commandafter}{comandadupa}
-\setinterfaceconstant{commandbefore}{comandainainte}
-\setinterfaceconstant{commands}{comenzi}
-\setinterfaceconstant{comment}{comment}
-\setinterfaceconstant{commentchar}{commentchar}
-\setinterfaceconstant{commentoffset}{commentoffset}
-\setinterfaceconstant{compact}{compact}
-\setinterfaceconstant{component}{component}
-\setinterfaceconstant{compoundhyphen}{compoundhyphen}
-\setinterfaceconstant{compress}{compress}
-\setinterfaceconstant{compressdistance}{compressdistance}
-\setinterfaceconstant{compressmethod}{compressmethod}
-\setinterfaceconstant{compressseparator}{compressseparator}
-\setinterfaceconstant{compressstopper}{compressstopper}
-\setinterfaceconstant{concerns}{concerns}
-\setinterfaceconstant{connector}{connector}
-\setinterfaceconstant{continue}{continua}
-\setinterfaceconstant{contrastcolor}{culoarecontrast}
-\setinterfaceconstant{controls}{controale}
-\setinterfaceconstant{conversion}{conversie}
-\setinterfaceconstant{convertfile}{convertestefisier}
-\setinterfaceconstant{copies}{copies}
-\setinterfaceconstant{corner}{colt}
-\setinterfaceconstant{coupling}{cuplare}
-\setinterfaceconstant{couplingway}{modcuplare}
-\setinterfaceconstant{criterium}{criteriu}
-\setinterfaceconstant{cropoffset}{cropoffset}
-\setinterfaceconstant{crossreference}{crossreference}
-\setinterfaceconstant{cssfile}{cssfile}
-\setinterfaceconstant{current}{curent}
-\setinterfaceconstant{cutspace}{cutspace}
-\setinterfaceconstant{dash}{dash}
-\setinterfaceconstant{dat}{dat}
-\setinterfaceconstant{database}{database}
-\setinterfaceconstant{dataset}{dataset}
-\setinterfaceconstant{date}{data}
-\setinterfaceconstant{deepnumbercommand}{deepnumbercommand}
-\setinterfaceconstant{deeptextcommand}{deeptextcommand}
-\setinterfaceconstant{default}{implicit}
-\setinterfaceconstant{defaultheight}{defaultheight}
-\setinterfaceconstant{defaultwidth}{defaultwidth}
-\setinterfaceconstant{define}{define}
-\setinterfaceconstant{delay}{intarziere}
-\setinterfaceconstant{depth}{inaltime}
-\setinterfaceconstant{depthcorrection}{corectieadancime}
-\setinterfaceconstant{direction}{directie}
-\setinterfaceconstant{directory}{director}
-\setinterfaceconstant{display}{display}
-\setinterfaceconstant{displaythreshold}{displaythreshold}
-\setinterfaceconstant{distance}{distanta}
-\setinterfaceconstant{domain}{domain}
-\setinterfaceconstant{dot}{punct}
-\setinterfaceconstant{doublesided}{douafete}
-\setinterfaceconstant{down}{down}
-\setinterfaceconstant{dummy}{dummy}
-\setinterfaceconstant{dx}{dx}
-\setinterfaceconstant{dy}{dy}
-\setinterfaceconstant{edge}{bordura}
-\setinterfaceconstant{edgedistance}{distantabordura}
-\setinterfaceconstant{editor}{editor}
-\setinterfaceconstant{editoretaldisplay}{editoretaldisplay}
-\setinterfaceconstant{editoretallimit}{editoretallimit}
-\setinterfaceconstant{editoretaltext}{editoretaltext}
-\setinterfaceconstant{empty}{gol}
-\setinterfaceconstant{entities}{entities}
-\setinterfaceconstant{entries}{entries}
-\setinterfaceconstant{equalheight}{equalheight}
-\setinterfaceconstant{equalwidth}{equalwidth}
-\setinterfaceconstant{escape}{escape}
-\setinterfaceconstant{etaldisplay}{etaldisplay}
-\setinterfaceconstant{etallimit}{etallimit}
-\setinterfaceconstant{etaloption}{etaloption}
-\setinterfaceconstant{etaltext}{etaltext}
-\setinterfaceconstant{evenmargin}{marginepara}
-\setinterfaceconstant{exact}{exact}
-\setinterfaceconstant{exitoffset}{exitoffset}
-\setinterfaceconstant{expansion}{expansiune}
-\setinterfaceconstant{export}{export}
-\setinterfaceconstant{extras}{extras}
-\setinterfaceconstant{factor}{factor}
-\setinterfaceconstant{fallback}{fallback}
-\setinterfaceconstant{fallbacks}{fallbacks}
-\setinterfaceconstant{family}{familie}
-\setinterfaceconstant{features}{features}
-\setinterfaceconstant{featureset}{featureset}
-\setinterfaceconstant{fences}{fences}
-\setinterfaceconstant{field}{field}
-\setinterfaceconstant{fieldbackgroundcolor}{culoarefundalcamp}
-\setinterfaceconstant{fieldframecolor}{culoareframecamp}
-\setinterfaceconstant{fieldlayer}{fieldlayer}
-\setinterfaceconstant{fieldoffset}{offsetcamp}
-\setinterfaceconstant{file}{fisier}
-\setinterfaceconstant{filler}{filler}
-\setinterfaceconstant{filter}{filter}
-\setinterfaceconstant{filtercommand}{filtercommand}
-\setinterfaceconstant{finalnamesep}{finalnamesep}
-\setinterfaceconstant{finalpagesep}{finalpagesep}
-\setinterfaceconstant{finalpubsep}{finalpubsep}
-\setinterfaceconstant{first}{primul}
-\setinterfaceconstant{firstnamesep}{firstnamesep}
-\setinterfaceconstant{firstpage}{primapagina}
-\setinterfaceconstant{focus}{focus}
-\setinterfaceconstant{focusin}{focusin}
-\setinterfaceconstant{focusoffset}{focusoffset}
-\setinterfaceconstant{focusout}{focusout}
-\setinterfaceconstant{font}{font}
-\setinterfaceconstant{footer}{subsol}
-\setinterfaceconstant{footerdistance}{distantasubsol}
-\setinterfaceconstant{footerstate}{staresubsol}
-\setinterfaceconstant{force}{fortat}
-\setinterfaceconstant{foregroundcolor}{foregroundcolor}
-\setinterfaceconstant{foregroundstyle}{foregroundstyle}
-\setinterfaceconstant{format}{format}
-\setinterfaceconstant{fractions}{fractions}
-\setinterfaceconstant{frame}{frame}
-\setinterfaceconstant{framecolor}{culoareframe}
-\setinterfaceconstant{framecorner}{coltframe}
-\setinterfaceconstant{framedepth}{adancimeframe}
-\setinterfaceconstant{frameoffset}{offsetframe}
-\setinterfaceconstant{frameradius}{razaframe}
-\setinterfaceconstant{frames}{frames}
-\setinterfaceconstant{freeregion}{freeregion}
-\setinterfaceconstant{from}{dela}
-\setinterfaceconstant{functioncolor}{functioncolor}
-\setinterfaceconstant{functionstyle}{functionstyle}
-\setinterfaceconstant{get}{adu}
-\setinterfaceconstant{global}{global}
-\setinterfaceconstant{goodies}{goodies}
-\setinterfaceconstant{grid}{grid}
-\setinterfaceconstant{group}{group}
-\setinterfaceconstant{groupsuffix}{groupsuffix}
-\setinterfaceconstant{hang}{suspenda}
-\setinterfaceconstant{hcompact}{hcompact}
-\setinterfaceconstant{headalign}{headalign}
-\setinterfaceconstant{headcolor}{culoaretitlu}
-\setinterfaceconstant{headcommand}{headcommand}
-\setinterfaceconstant{headconversion}{conversietitlu}
-\setinterfaceconstant{header}{antet}
-\setinterfaceconstant{headerdistance}{distantaantet}
-\setinterfaceconstant{headerstate}{stareantet}
-\setinterfaceconstant{headlabel}{etichetatitlu}
-\setinterfaceconstant{headnumber}{numartitlu}
-\setinterfaceconstant{headseparator}{headseparator}
-\setinterfaceconstant{headstyle}{stiltitlu}
-\setinterfaceconstant{height}{inaltime}
-\setinterfaceconstant{hfactor}{hfactor}
-\setinterfaceconstant{hfil}{hfil}
-\setinterfaceconstant{hidenumber}{hidenumber}
-\setinterfaceconstant{hoffset}{hoffset}
-\setinterfaceconstant{horizontal}{orizontal}
-\setinterfaceconstant{horoffset}{offsetoriz}
-\setinterfaceconstant{hyphen}{hyphen}
-\setinterfaceconstant{hyphens}{hyphens}
-\setinterfaceconstant{icommand}{comandai}
-\setinterfaceconstant{ignore}{ignore}
-\setinterfaceconstant{in}{in}
-\setinterfaceconstant{inbetween}{intre}
-\setinterfaceconstant{increment}{increment}
-\setinterfaceconstant{incrementnumber}{numarincrement}
-\setinterfaceconstant{indenting}{aliniat}
-\setinterfaceconstant{indentlist}{indentlist}
-\setinterfaceconstant{indentnext}{aliniaturmator}
-\setinterfaceconstant{index}{index}
-\setinterfaceconstant{indicator}{indicator}
-\setinterfaceconstant{initialsep}{initialsep}
-\setinterfaceconstant{inlinethreshold}{inlinethreshold}
-\setinterfaceconstant{inner}{intern}
-\setinterfaceconstant{innermargin}{innermargin}
-\setinterfaceconstant{inputfile}{inputfile}
-\setinterfaceconstant{insidesection}{insidesection}
-\setinterfaceconstant{instance}{instance}
-\setinterfaceconstant{intent}{intent}
-\setinterfaceconstant{interaction}{interactiune}
-\setinterfaceconstant{interlinespace}{spatiereinterliniara}
-\setinterfaceconstant{internalgrid}{internalgrid}
-\setinterfaceconstant{italicfeatures}{italicfeatures}
-\setinterfaceconstant{italicfont}{italicfont}
-\setinterfaceconstant{itemalign}{itemalign}
-\setinterfaceconstant{items}{elemente}
-\setinterfaceconstant{joiners}{joiners}
-\setinterfaceconstant{journalconversion}{journalconversion}
-\setinterfaceconstant{juniorsep}{juniorsep}
-\setinterfaceconstant{keeptogether}{keeptogether}
-\setinterfaceconstant{ken}{ken}
-\setinterfaceconstant{keyexpansion}{keyexpansion}
-\setinterfaceconstant{keys}{keys}
-\setinterfaceconstant{keyword}{keyword}
-\setinterfaceconstant{label}{eticheta}
-\setinterfaceconstant{labelalternative}{labelalternative}
-\setinterfaceconstant{labelcolor}{labelcolor}
-\setinterfaceconstant{labeloffset}{labeloffset}
-\setinterfaceconstant{labelstyle}{labelstyle}
-\setinterfaceconstant{language}{language}
-\setinterfaceconstant{last}{last}
-\setinterfaceconstant{lastnamesep}{lastnamesep}
-\setinterfaceconstant{lastpage}{ultimapagina}
-\setinterfaceconstant{lastpagesep}{lastpagesep}
-\setinterfaceconstant{lastpubsep}{lastpubsep}
-\setinterfaceconstant{layout}{layout}
-\setinterfaceconstant{left}{stanga}
-\setinterfaceconstant{leftcolor}{culoarestanga}
-\setinterfaceconstant{leftcompoundhyphen}{leftcompoundhyphen}
-\setinterfaceconstant{leftedge}{bordurastanga}
-\setinterfaceconstant{leftedgedistance}{distantabordurastanga}
-\setinterfaceconstant{leftframe}{framestanga}
-\setinterfaceconstant{lefthyphen}{lefthyphen}
-\setinterfaceconstant{leftmargin}{marginestanga}
-\setinterfaceconstant{leftmargindistance}{distantamarginestanga}
-\setinterfaceconstant{leftoffset}{offsetstanga}
-\setinterfaceconstant{leftquotation}{citatstanga}
-\setinterfaceconstant{leftquote}{minicitatstanga}
-\setinterfaceconstant{leftsample}{leftsample}
-\setinterfaceconstant{leftsentence}{propozitiestanga}
-\setinterfaceconstant{leftspeech}{leftspeech}
-\setinterfaceconstant{leftstyle}{stilstanga}
-\setinterfaceconstant{leftsubsentence}{subpropozitiestanga}
-\setinterfaceconstant{lefttext}{textstanga}
-\setinterfaceconstant{leftwidth}{latimestanga}
-\setinterfaceconstant{leftwords}{leftwords}
-\setinterfaceconstant{less}{less}
-\setinterfaceconstant{level}{nivel}
-\setinterfaceconstant{levels}{nivele}
-\setinterfaceconstant{limittext}{limittext}
-\setinterfaceconstant{line}{linie}
-\setinterfaceconstant{linecorrection}{corectielinie}
-\setinterfaceconstant{linedirection}{linedirection}
-\setinterfaceconstant{lines}{linii}
-\setinterfaceconstant{list}{lista}
-\setinterfaceconstant{listtext}{listtext}
-\setinterfaceconstant{local}{local}
-\setinterfaceconstant{location}{locatie}
-\setinterfaceconstant{loffset}{loffset}
-\setinterfaceconstant{logo}{logo}
-\setinterfaceconstant{logos}{logos}
-\setinterfaceconstant{marcolor}{culoaremarcaj}
-\setinterfaceconstant{margin}{margine}
-\setinterfaceconstant{margindistance}{distantamargine}
-\setinterfaceconstant{marginedge}{coltbordura}
-\setinterfaceconstant{marginedgetext}{textcoltbordura}
-\setinterfaceconstant{margintext}{textmargine}
-\setinterfaceconstant{mark}{mark}
-\setinterfaceconstant{marking}{marcaje}
-\setinterfaceconstant{marstyle}{stilmarcaj}
-\setinterfaceconstant{mask}{mask}
-\setinterfaceconstant{mathclass}{mathclass}
-\setinterfaceconstant{mathlimits}{mathlimits}
-\setinterfaceconstant{mathstyle}{mathstyle}
-\setinterfaceconstant{max}{max}
-\setinterfaceconstant{maxdepth}{maxdepth}
-\setinterfaceconstant{maxheight}{inaltimemaxima}
-\setinterfaceconstant{maxwidth}{latimemaxima}
-\setinterfaceconstant{maybeyear}{maybeyear}
-\setinterfaceconstant{menu}{meniu}
-\setinterfaceconstant{method}{metoda}
-\setinterfaceconstant{middle}{mijloc}
-\setinterfaceconstant{middlecolor}{middlecolor}
-\setinterfaceconstant{middlecommand}{middlecommand}
-\setinterfaceconstant{middlespeech}{middlespeech}
-\setinterfaceconstant{middlestyle}{middlestyle}
-\setinterfaceconstant{middletext}{textmijloc}
-\setinterfaceconstant{middlewidth}{middlewidth}
-\setinterfaceconstant{midsentence}{midsentence}
-\setinterfaceconstant{min}{min}
-\setinterfaceconstant{mindepth}{mindepth}
-\setinterfaceconstant{minheight}{inaltimeminima}
-\setinterfaceconstant{minwidth}{latimeminima}
-\setinterfaceconstant{moffset}{moffset}
-\setinterfaceconstant{monthconversion}{monthconversion}
-\setinterfaceconstant{more}{more}
-\setinterfaceconstant{mpdepth}{mpdepth}
-\setinterfaceconstant{mpheight}{mpheight}
-\setinterfaceconstant{mpoffset}{mpoffset}
-\setinterfaceconstant{mpwidth}{mpwidth}
-\setinterfaceconstant{n}{n}
-\setinterfaceconstant{name}{nume}
-\setinterfaceconstant{namesep}{namesep}
-\setinterfaceconstant{nbottom}{njos}
-\setinterfaceconstant{nc}{nc}
-\setinterfaceconstant{next}{urmatorul}
-\setinterfaceconstant{nextleft}{nextleft}
-\setinterfaceconstant{nextleftquotation}{nextleftquotation}
-\setinterfaceconstant{nextright}{nextright}
-\setinterfaceconstant{nextrightquotation}{nextrightquotation}
-\setinterfaceconstant{nl}{nl}
-\setinterfaceconstant{nleft}{nstanga}
-\setinterfaceconstant{nlines}{nlinii}
-\setinterfaceconstant{norm}{norm}
-\setinterfaceconstant{note}{note}
-\setinterfaceconstant{notes}{notes}
-\setinterfaceconstant{nr}{nr}
-\setinterfaceconstant{nright}{ndreapta}
-\setinterfaceconstant{ntop}{nsus}
-\setinterfaceconstant{number}{numar}
-\setinterfaceconstant{numberalign}{numberalign}
-\setinterfaceconstant{numbercolor}{culoarenumar}
-\setinterfaceconstant{numbercommand}{comandanumar}
-\setinterfaceconstant{numberconversion}{numberconversion}
-\setinterfaceconstant{numberconversionset}{numberconversionset}
-\setinterfaceconstant{numberdistance}{numberdistance}
-\setinterfaceconstant{numbering}{numerotare}
-\setinterfaceconstant{numberorder}{numberorder}
-\setinterfaceconstant{numberprefix}{numberprefix}
-\setinterfaceconstant{numbersegments}{numbersegments}
-\setinterfaceconstant{numberseparator}{separatornumar}
-\setinterfaceconstant{numberseparatorset}{numberseparatorset}
-\setinterfaceconstant{numberset}{numberset}
-\setinterfaceconstant{numberstarter}{numberstarter}
-\setinterfaceconstant{numberstopper}{numberstopper}
-\setinterfaceconstant{numberstrut}{numberstrut}
-\setinterfaceconstant{numberstyle}{stilnumar}
-\setinterfaceconstant{numberwidth}{numberwidth}
-\setinterfaceconstant{nx}{nx}
-\setinterfaceconstant{ny}{ny}
-\setinterfaceconstant{object}{obiect}
-\setinterfaceconstant{obstruction}{obstructie}
-\setinterfaceconstant{oddmargin}{margineimpara}
-\setinterfaceconstant{offset}{offset}
-\setinterfaceconstant{openaction}{actiunedeschidere}
-\setinterfaceconstant{openpage}{openpage}
-\setinterfaceconstant{openpageaction}{actiunedeschiderepagina}
-\setinterfaceconstant{openup}{openup}
-\setinterfaceconstant{opticalsize}{opticalsize}
-\setinterfaceconstant{option}{optiune}
-\setinterfaceconstant{order}{order}
-\setinterfaceconstant{orientation}{orientation}
-\setinterfaceconstant{otherstext}{otherstext}
-\setinterfaceconstant{outermargin}{outermargin}
-\setinterfaceconstant{overprint}{overprint}
-\setinterfaceconstant{ownerpassword}{ownerpassword}
-\setinterfaceconstant{ownnumber}{numarpropriu}
-\setinterfaceconstant{packcriterium}{packcriterium}
-\setinterfaceconstant{page}{pagina}
-\setinterfaceconstant{pageboundaries}{marginipagina}
-\setinterfaceconstant{pagecolor}{culoarepagina}
-\setinterfaceconstant{pagecolormodel}{pagecolormodel}
-\setinterfaceconstant{pagecommand}{comandapagina}
-\setinterfaceconstant{pageconnector}{pageconnector}
-\setinterfaceconstant{pageconversion}{pageconversion}
-\setinterfaceconstant{pageconversionset}{pageconversionset}
-\setinterfaceconstant{pageleft}{pageleft}
-\setinterfaceconstant{pagemethod}{pagemethod}
-\setinterfaceconstant{pagenumber}{numarpagina}
-\setinterfaceconstant{pageprefix}{pageprefix}
-\setinterfaceconstant{pageprefixconnector}{pageprefixconnector}
-\setinterfaceconstant{pageprefixconversion}{pageprefixconversion}
-\setinterfaceconstant{pageprefixconversionset}{pageprefixconversionset}
-\setinterfaceconstant{pageprefixsegments}{pageprefixsegments}
-\setinterfaceconstant{pageprefixseparatorset}{pageprefixseparatorset}
-\setinterfaceconstant{pageprefixset}{pageprefixset}
-\setinterfaceconstant{pageprefixstarter}{pageprefixstarter}
-\setinterfaceconstant{pageprefixstopper}{pageprefixstopper}
-\setinterfaceconstant{pageright}{pageright}
-\setinterfaceconstant{pagesegments}{pagesegments}
-\setinterfaceconstant{pagesep}{pagesep}
-\setinterfaceconstant{pageseparatorset}{pageseparatorset}
-\setinterfaceconstant{pageset}{pageset}
-\setinterfaceconstant{pagestarter}{pagestarter}
-\setinterfaceconstant{pagestate}{pagestate}
-\setinterfaceconstant{pagestopper}{pagestopper}
-\setinterfaceconstant{pagestyle}{stilpagina}
-\setinterfaceconstant{palet}{paleta}
-\setinterfaceconstant{paper}{hartie}
-\setinterfaceconstant{paragraph}{paragraf}
-\setinterfaceconstant{period}{period}
-\setinterfaceconstant{place}{pune}
-\setinterfaceconstant{placehead}{punetitlu}
-\setinterfaceconstant{placeholder}{placeholder}
-\setinterfaceconstant{placestopper}{punestopper}
-\setinterfaceconstant{position}{pozitie}
-\setinterfaceconstant{prefix}{prefix}
-\setinterfaceconstant{prefixconnector}{prefixconnector}
-\setinterfaceconstant{prefixconversion}{prefixconversion}
-\setinterfaceconstant{prefixconversionset}{prefixconversionset}
-\setinterfaceconstant{prefixsegments}{prefixsegments}
-\setinterfaceconstant{prefixseparatorset}{prefixseparatorset}
-\setinterfaceconstant{prefixset}{prefixset}
-\setinterfaceconstant{prefixstarter}{prefixstarter}
-\setinterfaceconstant{prefixstopper}{prefixstopper}
-\setinterfaceconstant{preset}{preset}
-\setinterfaceconstant{preview}{previzualizare}
-\setinterfaceconstant{previous}{precendent}
-\setinterfaceconstant{previousnumber}{numarprecedent}
-\setinterfaceconstant{print}{print}
-\setinterfaceconstant{printable}{tiparibil}
-\setinterfaceconstant{process}{process}
-\setinterfaceconstant{processors}{processors}
-\setinterfaceconstant{profile}{profile}
-\setinterfaceconstant{properties}{properties}
-\setinterfaceconstant{pubsep}{pubsep}
-\setinterfaceconstant{quotechar}{quotechar}
-\setinterfaceconstant{radius}{raza}
-\setinterfaceconstant{random}{aleator}
-\setinterfaceconstant{range}{range}
-\setinterfaceconstant{reduction}{reducere}
-\setinterfaceconstant{ref}{ref}
-\setinterfaceconstant{refcommand}{refcommand}
-\setinterfaceconstant{reference}{referinta}
-\setinterfaceconstant{referencemethod}{referencemethod}
-\setinterfaceconstant{referenceprefix}{referenceprefix}
-\setinterfaceconstant{referencetext}{referencetext}
-\setinterfaceconstant{referencing}{referinta}
-\setinterfaceconstant{region}{region}
-\setinterfaceconstant{regionin}{regiuneintrare}
-\setinterfaceconstant{regionout}{regiuneiesire}
-\setinterfaceconstant{register}{register}
-\setinterfaceconstant{regularfeatures}{regularfeatures}
-\setinterfaceconstant{regularfont}{regularfont}
-\setinterfaceconstant{renderingsetup}{renderingsetup}
-\setinterfaceconstant{repeat}{repeta}
-\setinterfaceconstant{reset}{reset}
-\setinterfaceconstant{resetnumber}{resetnumber}
-\setinterfaceconstant{resolution}{rezolutie}
-\setinterfaceconstant{resources}{resources}
-\setinterfaceconstant{reverse}{reverse}
-\setinterfaceconstant{right}{dreapta}
-\setinterfaceconstant{rightchars}{rightchars}
-\setinterfaceconstant{rightcolor}{culoaredreapta}
-\setinterfaceconstant{rightcompoundhyphen}{rightcompoundhyphen}
-\setinterfaceconstant{rightedge}{borduradreapta}
-\setinterfaceconstant{rightedgedistance}{distantacoltdreapta}
-\setinterfaceconstant{rightframe}{framedreapta}
-\setinterfaceconstant{righthyphen}{righthyphen}
-\setinterfaceconstant{rightmargin}{marginedreapta}
-\setinterfaceconstant{rightmargindistance}{distantamarginedreapta}
-\setinterfaceconstant{rightoffset}{offsetdreapta}
-\setinterfaceconstant{rightquotation}{citatdreapta}
-\setinterfaceconstant{rightquote}{minicitatdreapta}
-\setinterfaceconstant{rightsample}{rightsample}
-\setinterfaceconstant{rightsentence}{propozitiedreapta}
-\setinterfaceconstant{rightspeech}{rightspeech}
-\setinterfaceconstant{rightstyle}{stildreapta}
-\setinterfaceconstant{rightsubsentence}{subpropozitiedreapta}
-\setinterfaceconstant{righttext}{textdreapta}
-\setinterfaceconstant{rightwidth}{marginedreapta}
-\setinterfaceconstant{rightwords}{rightwords}
-\setinterfaceconstant{roffset}{roffset}
-\setinterfaceconstant{rotation}{rotatie}
-\setinterfaceconstant{rule}{rigla}
-\setinterfaceconstant{rulecolor}{culoarerigla}
-\setinterfaceconstant{rulecommand}{rulecommand}
-\setinterfaceconstant{rulethickness}{grosimerigla}
-\setinterfaceconstant{samepage}{aceeasipagina}
-\setinterfaceconstant{sample}{exemplu}
-\setinterfaceconstant{samplesize}{samplesize}
-\setinterfaceconstant{saveinlist}{saveinlist}
-\setinterfaceconstant{scale}{scala}
-\setinterfaceconstant{scope}{scop}
-\setinterfaceconstant{screen}{ecran}
-\setinterfaceconstant{section}{sectiune}
-\setinterfaceconstant{sectionblock}{sectionblock}
-\setinterfaceconstant{sectionconversion}{sectionconversion}
-\setinterfaceconstant{sectionconversionset}{sectionconversionset}
-\setinterfaceconstant{sectionnumber}{numarsectiune}
-\setinterfaceconstant{sectionresetset}{sectionresetset}
-\setinterfaceconstant{sectionsegments}{sectionsegments}
-\setinterfaceconstant{sectionseparatorset}{sectionseparatorset}
-\setinterfaceconstant{sectionset}{sectionset}
-\setinterfaceconstant{sectionstarter}{sectionstarter}
-\setinterfaceconstant{sectionstopper}{sectionstopper}
-\setinterfaceconstant{separator}{separator}
-\setinterfaceconstant{separatorcolor}{separatorcolor}
-\setinterfaceconstant{separatorstyle}{separatorstyle}
-\setinterfaceconstant{set}{set}
-\setinterfaceconstant{setups}{setups}
-\setinterfaceconstant{shrink}{shrink}
-\setinterfaceconstant{side}{parte}
-\setinterfaceconstant{sidealign}{sidealign}
-\setinterfaceconstant{sidemethod}{sidemethod}
-\setinterfaceconstant{sidespaceafter}{spatiulateraldupa}
-\setinterfaceconstant{sidespacebefore}{spatiulateralinainte}
-\setinterfaceconstant{sidespaceinbetween}{sidespaceinbetween}
-\setinterfaceconstant{sidethreshold}{sidethreshold}
-\setinterfaceconstant{sign}{semn}
-\setinterfaceconstant{simplecommand}{simplecommand}
-\setinterfaceconstant{size}{dimensiune}
-\setinterfaceconstant{slantedfeatures}{slantedfeatures}
-\setinterfaceconstant{slantedfont}{slantedfont}
-\setinterfaceconstant{small}{mic}
-\setinterfaceconstant{smallcapsfeatures}{smallcapsfeatures}
-\setinterfaceconstant{smallcapsfont}{smallcapsfont}
-\setinterfaceconstant{solution}{solution}
-\setinterfaceconstant{sort}{sort}
-\setinterfaceconstant{sorttype}{sorttype}
-\setinterfaceconstant{source}{sursa}
-\setinterfaceconstant{space}{spatiu}
-\setinterfaceconstant{spaceafter}{spatiudupa}
-\setinterfaceconstant{spaceafterside}{spaceafterside}
-\setinterfaceconstant{spacebefore}{spatiuinainte}
-\setinterfaceconstant{spacebeforeside}{spacebeforeside}
-\setinterfaceconstant{spaceinbetween}{spaceinbetween}
-\setinterfaceconstant{spacing}{spatiere}
-\setinterfaceconstant{specification}{specification}
-\setinterfaceconstant{split}{split}
-\setinterfaceconstant{splitcolor}{splitcolor}
-\setinterfaceconstant{splitmethod}{splitmethod}
-\setinterfaceconstant{splitoffset}{splitoffset}
-\setinterfaceconstant{spot}{spot}
-\setinterfaceconstant{stack}{stack}
-\setinterfaceconstant{stackname}{stackname}
-\setinterfaceconstant{start}{start}
-\setinterfaceconstant{starter}{starter}
-\setinterfaceconstant{state}{stare}
-\setinterfaceconstant{step}{pas}
-\setinterfaceconstant{stop}{stop}
-\setinterfaceconstant{stopper}{stopper}
-\setinterfaceconstant{stretch}{dilatat}
-\setinterfaceconstant{strip}{strip}
-\setinterfaceconstant{strut}{strut}
-\setinterfaceconstant{style}{stil}
-\setinterfaceconstant{stylealternative}{stylealternative}
-\setinterfaceconstant{sub}{sub}
-\setinterfaceconstant{subtitle}{subtitlu}
-\setinterfaceconstant{suffix}{suffix}
-\setinterfaceconstant{suffixseparator}{suffixseparator}
-\setinterfaceconstant{suffixstopper}{suffixstopper}
-\setinterfaceconstant{surnamefirstnamesep}{surnamefirstnamesep}
-\setinterfaceconstant{surnameinitialsep}{surnameinitialsep}
-\setinterfaceconstant{surnamesep}{surnamesep}
-\setinterfaceconstant{svgstyle}{svgstyle}
-\setinterfaceconstant{sx}{sx}
-\setinterfaceconstant{sy}{sy}
-\setinterfaceconstant{symalign}{symaliniere}
-\setinterfaceconstant{symbol}{simbol}
-\setinterfaceconstant{symbolcommand}{symbolcommand}
-\setinterfaceconstant{symbolset}{setsimbol}
-\setinterfaceconstant{symcolor}{culoaresimbol}
-\setinterfaceconstant{symstyle}{stilsimbol}
-\setinterfaceconstant{synonym}{sinonim}
-\setinterfaceconstant{synonymcolor}{culoaresinonim}
-\setinterfaceconstant{synonymcommand}{synonymcommand}
-\setinterfaceconstant{synonymstyle}{stilsinonim}
-\setinterfaceconstant{tab}{tab}
-\setinterfaceconstant{text}{text}
-\setinterfaceconstant{textalign}{textalign}
-\setinterfaceconstant{textcolor}{culoaretext}
-\setinterfaceconstant{textcommand}{comandatext}
-\setinterfaceconstant{textdistance}{textdistance}
-\setinterfaceconstant{textheight}{inaltimetext}
-\setinterfaceconstant{textlayer}{textlayer}
-\setinterfaceconstant{textmargin}{textmargin}
-\setinterfaceconstant{textmethod}{textmethod}
-\setinterfaceconstant{textseparator}{separatortext}
-\setinterfaceconstant{textsize}{dimensiunetext}
-\setinterfaceconstant{textstate}{staretext}
-\setinterfaceconstant{textstyle}{stiltext}
-\setinterfaceconstant{textwidth}{latimetext}
-\setinterfaceconstant{threshold}{threshold}
-\setinterfaceconstant{time}{time}
-\setinterfaceconstant{title}{titlu}
-\setinterfaceconstant{titlecolor}{culoaretitlu}
-\setinterfaceconstant{titlecommand}{titlecommand}
-\setinterfaceconstant{titledistance}{distantatitlu}
-\setinterfaceconstant{titleleft}{titleleft}
-\setinterfaceconstant{titleright}{titleright}
-\setinterfaceconstant{titlestrut}{titlestrut}
-\setinterfaceconstant{titlestyle}{stiltitlu}
-\setinterfaceconstant{to}{catre}
-\setinterfaceconstant{toffset}{toffset}
-\setinterfaceconstant{tolerance}{toleranta}
-\setinterfaceconstant{top}{sus}
-\setinterfaceconstant{topcommand}{topcommand}
-\setinterfaceconstant{topdistance}{distantasus}
-\setinterfaceconstant{topframe}{framesus}
-\setinterfaceconstant{topoffset}{offsetsus}
-\setinterfaceconstant{topspace}{spatiusus}
-\setinterfaceconstant{topstate}{staresus}
-\setinterfaceconstant{totalnumber}{totalnumber}
-\setinterfaceconstant{transform}{transform}
-\setinterfaceconstant{translate}{translate}
-\setinterfaceconstant{trimoffset}{trimoffset}
-\setinterfaceconstant{type}{type}
-\setinterfaceconstant{unit}{unitate}
-\setinterfaceconstant{unknownreference}{referintanecunoscuta}
-\setinterfaceconstant{up}{up}
-\setinterfaceconstant{urlalternative}{urlalternativ}
-\setinterfaceconstant{urlspace}{spatiuurl}
-\setinterfaceconstant{userpassword}{userpassword}
-\setinterfaceconstant{validate}{verifica}
-\setinterfaceconstant{values}{values}
-\setinterfaceconstant{vcommand}{comandav}
-\setinterfaceconstant{vcompact}{vcompact}
-\setinterfaceconstant{vector}{vector}
-\setinterfaceconstant{veroffset}{veroffset}
-\setinterfaceconstant{vertical}{vertical}
-\setinterfaceconstant{vfactor}{vfactor}
-\setinterfaceconstant{vfil}{vfil}
-\setinterfaceconstant{viewerprefix}{viewerprefix}
-\setinterfaceconstant{voffset}{voffset}
-\setinterfaceconstant{vonsep}{vonsep}
-\setinterfaceconstant{way}{mod}
-\setinterfaceconstant{wfactor}{factorw}
-\setinterfaceconstant{white}{alb}
-\setinterfaceconstant{width}{latime}
-\setinterfaceconstant{words}{words}
-\setinterfaceconstant{xanchor}{xanchor}
-\setinterfaceconstant{xfactor}{xfactor}
-\setinterfaceconstant{xhtml}{xhtml}
-\setinterfaceconstant{xmax}{xmax}
-\setinterfaceconstant{xmlsetup}{xmlsetup}
-\setinterfaceconstant{xoffset}{xoffset}
-\setinterfaceconstant{xscale}{xscala}
-\setinterfaceconstant{xstep}{xstep}
-\setinterfaceconstant{yanchor}{yanchor}
-\setinterfaceconstant{yfactor}{yfactor}
-\setinterfaceconstant{ymax}{ymax}
-\setinterfaceconstant{yoffset}{yoffset}
-\setinterfaceconstant{yscale}{yscala}
-\setinterfaceconstant{ystep}{ystep}
-% definitions for interface elements for language ro
-%
-\setinterfaceelement{answerlines}{answerlines}
-\setinterfaceelement{answerspace}{answerspace}
-\setinterfaceelement{begin}{inceput}
-\setinterfaceelement{complete}{complet}
-\setinterfaceelement{coupled}{cuplat}
-\setinterfaceelement{currentlocal}{localcurent}
-\setinterfaceelement{end}{sfarsit}
-\setinterfaceelement{endsetup}{}
-\setinterfaceelement{get}{get}
-\setinterfaceelement{increment}{increment}
-\setinterfaceelement{list}{lista}
-\setinterfaceelement{listof}{listade}
-\setinterfaceelement{load}{incarca}
-\setinterfaceelement{local}{local}
-\setinterfaceelement{makeup}{makeup}
-\setinterfaceelement{next}{urmatorul}
-\setinterfaceelement{place}{pune}
-\setinterfaceelement{previous}{precedent}
-\setinterfaceelement{previouslocal}{precedentlocal}
-\setinterfaceelement{reserve}{rezervat}
-\setinterfaceelement{see}{vezi}
-\setinterfaceelement{setup}{setare}
-\setinterfaceelement{start}{start}
-\setinterfaceelement{stop}{stop}
-\setinterfaceelement{text}{text}
-\setinterfaceelement{type}{type}
-% definitions for interface commands for language ro
-%
-\setinterfacecommand{Character}{Litera}
-\setinterfacecommand{Characters}{Litere}
-\setinterfacecommand{MONTH}{LUNA}
-\setinterfacecommand{Numbers}{Numere}
-\setinterfacecommand{Romannumerals}{Numereromane}
-\setinterfacecommand{SmallCapped}{Kap}
-\setinterfacecommand{SmallCaps}{Kaps}
-\setinterfacecommand{WEEKDAY}{ZIDINSAPTAMANA}
-\setinterfacecommand{WORD}{CUVANT}
-\setinterfacecommand{WORDS}{CUVINTE}
-\setinterfacecommand{Word}{Cuvant}
-\setinterfacecommand{Words}{Cuvinte}
-\setinterfacecommand{about}{despre}
-\setinterfacecommand{adaptfontfeature}{adaptfontfeature}
-\setinterfacecommand{adaptlayout}{adapteazaaspect}
-\setinterfacecommand{addfeature}{addfeature}
-\setinterfacecommand{alignbottom}{alignbottom}
-\setinterfacecommand{aligned}{aligned}
-\setinterfacecommand{alignedbox}{alignedbox}
-\setinterfacecommand{alignedline}{alignedline}
-\setinterfacecommand{alignhere}{alignhere}
-\setinterfacecommand{alignment}{alignment}
-\setinterfacecommand{alignmentcharacter}{alignmentcharacter}
-\setinterfacecommand{applytocharacters}{applytocharacters}
-\setinterfacecommand{applytofirstcharacter}{applytofirstcharacter}
-\setinterfacecommand{arg}{arg}
-\setinterfacecommand{at}{la}
-\setinterfacecommand{atleftmargin}{atleftmargin}
-\setinterfacecommand{atpage}{lapagina}
-\setinterfacecommand{atrightmargin}{atrightmargin}
-\setinterfacecommand{background}{fundal}
-\setinterfacecommand{backspace}{spatiuspate}
-\setinterfacecommand{blackrule}{linieneagra}
-\setinterfacecommand{blackrules}{liniinegre}
-\setinterfacecommand{blank}{blanc}
-\setinterfacecommand{bookmark}{semncarte}
-\setinterfacecommand{bottombox}{bottombox}
-\setinterfacecommand{bottomdistance}{distantajos}
-\setinterfacecommand{bottomheight}{inaltimejos}
-\setinterfacecommand{bottomleftbox}{bottomleftbox}
-\setinterfacecommand{bottomrightbox}{bottomrightbox}
-\setinterfacecommand{bottomspace}{spatiujos}
-\setinterfacecommand{buildtextbottomdot}{buildtextbottomdot}
-\setinterfacecommand{but}{but}
-\setinterfacecommand{button}{buton}
-\setinterfacecommand{bypassblocks}{saripesteblocuri}
-\setinterfacecommand{character}{litera}
-\setinterfacecommand{characters}{litere}
-\setinterfacecommand{chem}{chem}
-\setinterfacecommand{clip}{clip}
-\setinterfacecommand{clonefield}{cloneazacamp}
-\setinterfacecommand{color}{culoare}
-\setinterfacecommand{colorbar}{baraculoare}
-\setinterfacecommand{colorvalue}{valoareculoare}
-\setinterfacecommand{column}{coloana}
-\setinterfacecommand{comparecolorgroup}{comparagrupculoare}
-\setinterfacecommand{comparepalet}{comparapaleta}
-\setinterfacecommand{completepagenumber}{completeazanumarpagina}
-\setinterfacecommand{completeregister}{completeregister}
-\setinterfacecommand{component}{componenta}
-\setinterfacecommand{convertnumber}{convertestenumar}
-\setinterfacecommand{copyfield}{copiazacamp}
-\setinterfacecommand{correctwhitespace}{corecteazaspatiualb}
-\setinterfacecommand{coupledocument}{cupleazadocument}
-\setinterfacecommand{couplemarking}{cupleazamarcaje}
-\setinterfacecommand{couplepage}{paginadubla}
-\setinterfacecommand{couplepaper}{hartiedubla}
-\setinterfacecommand{coupleregister}{cupleazaregistru}
-\setinterfacecommand{crlf}{crlf}
-\setinterfacecommand{currentdate}{datacurenta}
-\setinterfacecommand{currentheadnumber}{numartitlucurent}
-\setinterfacecommand{cutspace}{cutspace}
-\setinterfacecommand{date}{data}
-\setinterfacecommand{decouplemarking}{decupleazamarcaje}
-\setinterfacecommand{decrementnumber}{decrementnumber}
-\setinterfacecommand{define}{defineste}
-\setinterfacecommand{defineaccent}{definesteaccent}
-\setinterfacecommand{defineblank}{definesteblanc}
-\setinterfacecommand{defineblock}{definestebloc}
-\setinterfacecommand{definebodyfont}{definestefonttext}
-\setinterfacecommand{definebodyfontenvironment}{definestemediulfonttext}
-\setinterfacecommand{definebodyfontswitch}{definebodyfontswitch}
-\setinterfacecommand{definebuffer}{definestebuffer}
-\setinterfacecommand{definecharacter}{definestecaracter}
-\setinterfacecommand{definecharacterkerning}{definecharacterkerning}
-\setinterfacecommand{definecharacterspacing}{definecharacterspacing}
-\setinterfacecommand{definecolor}{definesteculoare}
-\setinterfacecommand{definecolorgroup}{definestegrupculori}
-\setinterfacecommand{definecolumnbreak}{definecolumnbreak}
-\setinterfacecommand{definecolumnset}{definecolumnset}
-\setinterfacecommand{definecombination}{definecombination}
-\setinterfacecommand{definecombinedlist}{definestelistacombinata}
-\setinterfacecommand{definecommand}{definestecomanda}
-\setinterfacecommand{defineconversion}{definesteconversie}
-\setinterfacecommand{definedescription}{definestedescriere}
-\setinterfacecommand{definedfont}{definedfont}
-\setinterfacecommand{defineenumeration}{definesteenumerare}
-\setinterfacecommand{definefallbackfamily}{definefallbackfamily}
-\setinterfacecommand{definefield}{definestecamp}
-\setinterfacecommand{definefieldstack}{definestestivacampuri}
-\setinterfacecommand{definefiguresymbol}{definestesimbolfigura}
-\setinterfacecommand{definefilefallback}{definefilefallback}
-\setinterfacecommand{definefirstline}{definefirstline}
-\setinterfacecommand{definefloat}{definestefloat}
-\setinterfacecommand{definefont}{definestefont}
-\setinterfacecommand{definefontalternative}{definefontalternative}
-\setinterfacecommand{definefontfallback}{definefontfallback}
-\setinterfacecommand{definefontfamily}{definefontfamily}
-\setinterfacecommand{definefontfamilypreset}{definefontfamilypreset}
-\setinterfacecommand{definefontfeature}{definefontfeature}
-\setinterfacecommand{definefontfile}{definefontfile}
-\setinterfacecommand{definefontsize}{definefontsize}
-\setinterfacecommand{definefontsolution}{definefontsolution}
-\setinterfacecommand{definefontstyle}{definestestilfont}
-\setinterfacecommand{definefontsynonym}{definestesinonimfont}
-\setinterfacecommand{defineframed}{definesteinconjurare}
-\setinterfacecommand{defineframedtext}{definestetextinconjurat}
-\setinterfacecommand{definefrozenfont}{definefrozenfont}
-\setinterfacecommand{definehbox}{definestehbox}
-\setinterfacecommand{definehead}{definesteantet}
-\setinterfacecommand{definehyphenationfeatures}{definehyphenationfeatures}
-\setinterfacecommand{defineindentedtext}{defineindentedtext}
-\setinterfacecommand{defineinmargin}{defineinmargin}
-\setinterfacecommand{defineinteractionmenu}{definestemeniuinteractiune}
-\setinterfacecommand{defineitemgroup}{defineitemgroup}
-\setinterfacecommand{defineitems}{defineitems}
-\setinterfacecommand{definelabel}{definesteeticheta}
-\setinterfacecommand{definelayer}{definelayer}
-\setinterfacecommand{definelayout}{definelayout}
-\setinterfacecommand{definelinenote}{definelinenote}
-\setinterfacecommand{definelist}{definestelista}
-\setinterfacecommand{definelogo}{definestelogo}
-\setinterfacecommand{definemainfield}{definestecampprincipal}
-\setinterfacecommand{definemakeup}{definestemakeup}
-\setinterfacecommand{definemarking}{definestemarcaje}
-\setinterfacecommand{definemathalignment}{definemathalignment}
-\setinterfacecommand{definemode}{definemode}
-\setinterfacecommand{definenamedcolor}{definenamedcolor}
-\setinterfacecommand{definenote}{definenote}
-\setinterfacecommand{defineoutput}{definesteoutput}
-\setinterfacecommand{defineoverlay}{definesteoverlay}
-\setinterfacecommand{definepagebreak}{definepagebreak}
-\setinterfacecommand{definepalet}{definestepaleta}
-\setinterfacecommand{definepapersize}{definestedimensiunehartie}
-\setinterfacecommand{defineparagraphs}{definesteparagraf}
-\setinterfacecommand{defineperiodkerning}{defineperiodkerning}
-\setinterfacecommand{defineplacement}{defineplacement}
-\setinterfacecommand{defineprofile}{definesteprofil}
-\setinterfacecommand{defineprogram}{definesteprogram}
-\setinterfacecommand{definerawfont}{definestefontraw}
-\setinterfacecommand{definereference}{definestereferinte}
-\setinterfacecommand{definereferenceformat}{definesteformatreferinte}
-\setinterfacecommand{definereferencelist}{definestelistareferinte}
-\setinterfacecommand{defineregister}{definesteregistru}
-\setinterfacecommand{definerule}{definesterigla}
-\setinterfacecommand{definesection}{definestesectiune}
-\setinterfacecommand{definesectionblock}{definesteblocsectiune}
-\setinterfacecommand{definesorting}{definestesortare}
-\setinterfacecommand{definestartstop}{definestestartstop}
-\setinterfacecommand{definestyle}{definestestil}
-\setinterfacecommand{definesubfield}{definestesubcamp}
-\setinterfacecommand{definesymbol}{definestesimbol}
-\setinterfacecommand{definesynonyms}{definestesinonim}
-\setinterfacecommand{definetabletemplate}{definestesablontabel}
-\setinterfacecommand{definetabulate}{definestetabulatori}
-\setinterfacecommand{definetext}{definestetext}
-\setinterfacecommand{definetextbackground}{definetextbackground}
-\setinterfacecommand{definetextnote}{definetextnote}
-\setinterfacecommand{definetextposition}{definestepozitietext}
-\setinterfacecommand{definetextvariable}{definestevariabilatext}
-\setinterfacecommand{definetype}{definetype}
-\setinterfacecommand{definetyping}{definestetyping}
-\setinterfacecommand{defineversion}{definesteversiune}
-\setinterfacecommand{depthspanningtext}{depthspanningtext}
-\setinterfacecommand{determineheadnumber}{determinanumartitlu}
-\setinterfacecommand{determinelistcharacteristics}{determinacaracteristicilelistei}
-\setinterfacecommand{determineregistercharacteristics}{determinacaracteristiciregistru}
-\setinterfacecommand{dimension}{dimensiune}
-\setinterfacecommand{disableinteractionmenu}{dezactiveazameniuinteractiune}
-\setinterfacecommand{disablemode}{disablemode}
-\setinterfacecommand{doaddfeature}{doaddfeature}
-\setinterfacecommand{domicile}{domiciliu}
-\setinterfacecommand{dontconvertfont}{dontconvertfont}
-\setinterfacecommand{donttest}{nutesta}
-\setinterfacecommand{edgedistance}{distantacolt}
-\setinterfacecommand{edgewidth}{latimecolturi}
-\setinterfacecommand{emphasisboldface}{emphasisboldface}
-\setinterfacecommand{emptylines}{emptylines}
-\setinterfacecommand{enablemode}{enablemode}
-\setinterfacecommand{environment}{mediu}
-\setinterfacecommand{externalfigure}{figuraexterna}
-\setinterfacecommand{fact}{fact}
-\setinterfacecommand{fastswitchtobodyfont}{fastswitchtobodyfont}
-\setinterfacecommand{feature}{feature}
-\setinterfacecommand{field}{camp}
-\setinterfacecommand{fieldstack}{stivacampuri}
-\setinterfacecommand{fillinfield}{campumplere}
-\setinterfacecommand{fillinline}{linieumplere}
-\setinterfacecommand{fillinrules}{rigleumplere}
-\setinterfacecommand{fillintext}{textumplere}
-\setinterfacecommand{firstcharacter}{firstcharacter}
-\setinterfacecommand{fitfield}{potrivestecamp}
-\setinterfacecommand{fittopbaselinegrid}{fittopbaselinegrid}
-\setinterfacecommand{fixedspace}{spatiufixat}
-\setinterfacecommand{fixedspaces}{spatiifixate}
-\setinterfacecommand{flushnotes}{flushnotes}
-\setinterfacecommand{followprofile}{urmeazaprofil}
-\setinterfacecommand{followprofileversion}{urmeazaversiuneprofil}
-\setinterfacecommand{followversion}{urmeazaversiune}
-\setinterfacecommand{footerdistance}{distantasubsol}
-\setinterfacecommand{footerheight}{inaltimesubsol}
-\setinterfacecommand{footnote}{notasubsol}
-\setinterfacecommand{footnotetext}{footnotetext}
-\setinterfacecommand{forceblocks}{forteazablocuri}
-\setinterfacecommand{forcecharacterstripping}{forcecharacterstripping}
-\setinterfacecommand{formulanumber}{numarformula}
-\setinterfacecommand{fraction}{fractie}
-\setinterfacecommand{framed}{framed}
-\setinterfacecommand{from}{din}
-\setinterfacecommand{fromlinenote}{fromlinenote}
-\setinterfacecommand{getbuffer}{adubuffer}
-\setinterfacecommand{getfirstcharacter}{getfirstcharacter}
-\setinterfacecommand{getmarking}{adumarcaje}
-\setinterfacecommand{getnumber}{getnumber}
-\setinterfacecommand{globaldisablemode}{globaldisablemode}
-\setinterfacecommand{globalenablemode}{globalenablemode}
-\setinterfacecommand{globalpreventmode}{globalpreventmode}
-\setinterfacecommand{godown}{injos}
-\setinterfacecommand{goto}{dute}
-\setinterfacecommand{gotobox}{dutebox}
-\setinterfacecommand{gotopage}{dutepagina}
-\setinterfacecommand{graycolor}{culoaregri}
-\setinterfacecommand{greyvalue}{valoaregri}
-\setinterfacecommand{grid}{grid}
-\setinterfacecommand{hairline}{firdepar}
-\setinterfacecommand{head}{titlu}
-\setinterfacecommand{headerdistance}{distantaantet}
-\setinterfacecommand{headerheight}{inaltimeantet}
-\setinterfacecommand{headlevel}{niveltitlu}
-\setinterfacecommand{headnumber}{numartitlu}
-\setinterfacecommand{headsym}{headsym}
-\setinterfacecommand{headtext}{texttitlu}
-\setinterfacecommand{heightspanningtext}{heightspanningtext}
-\setinterfacecommand{hideblocks}{ascundeblocuri}
-\setinterfacecommand{high}{inalt}
-\setinterfacecommand{hl}{hl}
-\setinterfacecommand{immediatebetweenlist}{immediatebetweenlist}
-\setinterfacecommand{immediatetolist}{immediatetolist}
-\setinterfacecommand{in}{in}
-\setinterfacecommand{incrementnumber}{numarincrement}
-\setinterfacecommand{indenting}{aliniat}
-\setinterfacecommand{inframed}{inframed}
-\setinterfacecommand{infull}{pelung}
-\setinterfacecommand{ininner}{ininner}
-\setinterfacecommand{inleft}{instanga}
-\setinterfacecommand{inleftedge}{inparteastanga}
-\setinterfacecommand{inleftmargin}{inmargineastanga}
-\setinterfacecommand{inline}{inlinie}
-\setinterfacecommand{inmargin}{marginal}
-\setinterfacecommand{inmframed}{inmaframed}
-\setinterfacecommand{inneredgedistance}{inneredgedistance}
-\setinterfacecommand{inneredgewidth}{inneredgewidth}
-\setinterfacecommand{innermargindistance}{innermargindistance}
-\setinterfacecommand{innermarginwidth}{innermarginwidth}
-\setinterfacecommand{inothermargin}{inaltamargine}
-\setinterfacecommand{inouter}{inouter}
-\setinterfacecommand{inright}{indreapta}
-\setinterfacecommand{inrightedge}{inparteadreapta}
-\setinterfacecommand{inrightmargin}{inmargineadreapta}
-\setinterfacecommand{installlanguage}{instalarelimba}
-\setinterfacecommand{interactionbar}{barainteractiune}
-\setinterfacecommand{interactionbuttons}{butoaneinteractiune}
-\setinterfacecommand{interactionmenu}{meniuinteractiune}
-\setinterfacecommand{item}{element}
-\setinterfacecommand{itemgroup}{itemgroup}
-\setinterfacecommand{items}{element}
-\setinterfacecommand{itemtag}{itemtag}
-\setinterfacecommand{its}{el}
-\setinterfacecommand{keepblocks}{pastreazablocuri}
-\setinterfacecommand{kerncharacters}{kerncharacters}
-\setinterfacecommand{label}{eticheta}
-\setinterfacecommand{labels}{etichete}
-\setinterfacecommand{labeltext}{texteticheta}
-\setinterfacecommand{language}{limba}
-\setinterfacecommand{languageCharacters}{languageCharacters}
-\setinterfacecommand{languagecharacters}{languagecharacters}
-\setinterfacecommand{leftaligned}{aliniatstanga}
-\setinterfacecommand{leftbottombox}{leftbottombox}
-\setinterfacecommand{leftedgedistance}{distantacoltstanga}
-\setinterfacecommand{leftedgewidth}{latimecoltstanga}
-\setinterfacecommand{leftline}{leftline}
-\setinterfacecommand{leftmargindistance}{distantamarginestanga}
-\setinterfacecommand{leftmarginwidth}{latimemarginestanga}
-\setinterfacecommand{leg}{leg}
-\setinterfacecommand{linecorrection}{linecorrection}
-\setinterfacecommand{linenote}{linenote}
-\setinterfacecommand{linespanningtext}{linespanningtext}
-\setinterfacecommand{linewidth}{grosimelinie}
-\setinterfacecommand{listheight}{inaltimelista}
-\setinterfacecommand{listlength}{lungimelista}
-\setinterfacecommand{listsymbol}{listsymbol}
-\setinterfacecommand{listwidth}{latimelista}
-\setinterfacecommand{loadfontgoodies}{loadfontgoodies}
-\setinterfacecommand{localfootnotes}{localfootnotes}
-\setinterfacecommand{localnotes}{localnotes}
-\setinterfacecommand{logfields}{logcampuri}
-\setinterfacecommand{lohi}{jossus}
-\setinterfacecommand{low}{jos}
-\setinterfacecommand{macroname}{nume}
-\setinterfacecommand{mainlanguage}{limbaprincipala}
-\setinterfacecommand{makeupheight}{inaltimemakeup}
-\setinterfacecommand{makeupwidth}{latimemakeup}
-\setinterfacecommand{mar}{mar}
-\setinterfacecommand{marginblock}{marginblock}
-\setinterfacecommand{margindistance}{distantamargine}
-\setinterfacecommand{marginrule}{liniemargine}
-\setinterfacecommand{margintext}{textmarginal}
-\setinterfacecommand{margintitle}{titlumarginal}
-\setinterfacecommand{marginwidth}{latimemargine}
-\setinterfacecommand{marginword}{cuvantmarginal}
-\setinterfacecommand{marking}{marcaje}
-\setinterfacecommand{markversion}{marcheazaversiune}
-\setinterfacecommand{mathematics}{matematica}
-\setinterfacecommand{menubutton}{butonmeniu}
-\setinterfacecommand{mframed}{maframed}
-\setinterfacecommand{midaligned}{aliniatcentru}
-\setinterfacecommand{mirror}{reflexie}
-\setinterfacecommand{month}{luna}
-\setinterfacecommand{moveformula}{moveformula}
-\setinterfacecommand{moveongrid}{mutapegrid}
-\setinterfacecommand{movesidefloat}{movesidefloat}
-\setinterfacecommand{navigating}{navigating}
-\setinterfacecommand{nodimension}{faradimensiune}
-\setinterfacecommand{noheaderandfooterlines}{faraliniiantetsisubsol}
-\setinterfacecommand{noindenting}{faraaliniat}
-\setinterfacecommand{noitem}{noitem}
-\setinterfacecommand{nolist}{faralista}
-\setinterfacecommand{nomarking}{faramarcaje}
-\setinterfacecommand{nomoreblocks}{gatablocuri}
-\setinterfacecommand{nomorefiles}{farafisiere}
-\setinterfacecommand{nop}{nop}
-\setinterfacecommand{nospace}{faraspatiu}
-\setinterfacecommand{note}{nota}
-\setinterfacecommand{notesymbol}{notesymbol}
-\setinterfacecommand{notopandbottomlines}{faraliniisussijos}
-\setinterfacecommand{notsmallcapped}{nokap}
-\setinterfacecommand{nowhitespace}{faraspatiualb}
-\setinterfacecommand{numberofsubpages}{numberofsubpages}
-\setinterfacecommand{numbers}{numere}
-\setinterfacecommand{outeredgedistance}{outeredgedistance}
-\setinterfacecommand{outeredgewidth}{outeredgewidth}
-\setinterfacecommand{outermargindistance}{outermargindistance}
-\setinterfacecommand{outermarginwidth}{outermarginwidth}
-\setinterfacecommand{packed}{impachetat}
-\setinterfacecommand{page}{pagina}
-\setinterfacecommand{pagebreak}{pagebreak}
-\setinterfacecommand{pagedepth}{pagedepth}
-\setinterfacecommand{pagenumber}{numarpagina}
-\setinterfacecommand{pageoffset}{pageoffset}
-\setinterfacecommand{pagereference}{referintapagina}
-\setinterfacecommand{paperheight}{inaltimehartie}
-\setinterfacecommand{paperwidth}{latimehartie}
-\setinterfacecommand{periods}{puncte}
-\setinterfacecommand{placebookmarks}{plaseazasemnecarte}
-\setinterfacecommand{placecombinedlist}{punelistacombinata}
-\setinterfacecommand{placefloat}{placefloat}
-\setinterfacecommand{placefootnotes}{punenotesubsol}
-\setinterfacecommand{placeformula}{puneformula}
-\setinterfacecommand{placeheadnumber}{placeheadnumber}
-\setinterfacecommand{placeheadtext}{placeheadtext}
-\setinterfacecommand{placelegend}{punelegenda}
-\setinterfacecommand{placelist}{punelista}
-\setinterfacecommand{placelistofsynonyms}{placelistofsynonyms}
-\setinterfacecommand{placelocalfootnotes}{punenotesubsollocale}
-\setinterfacecommand{placelocalnotes}{placelocalnotes}
-\setinterfacecommand{placelogos}{punelogouri}
-\setinterfacecommand{placenamedfloat}{placenamedfloat}
-\setinterfacecommand{placenotes}{placenotes}
-\setinterfacecommand{placeongrid}{plaseazapegrid}
-\setinterfacecommand{placeontopofeachother}{punedeasuprafiecareia}
-\setinterfacecommand{placepagenumber}{punenumarpagina}
-\setinterfacecommand{placerawlist}{placerawlist}
-\setinterfacecommand{placereferencelist}{placereferencelist}
-\setinterfacecommand{placeregister}{puneregistru}
-\setinterfacecommand{placerule}{punerigla}
-\setinterfacecommand{placesidebyside}{punefatainfata}
-\setinterfacecommand{placesubformula}{punesubformula}
-\setinterfacecommand{placetextvariable}{punevariabilatext}
-\setinterfacecommand{position}{pozitie}
-\setinterfacecommand{positiontext}{pozitietext}
-\setinterfacecommand{postponenotes}{postponenotes}
-\setinterfacecommand{postponingnotes}{postponingnotes}
-\setinterfacecommand{predefinedfont}{predefinedfont}
-\setinterfacecommand{predefinefont}{predefinefont}
-\setinterfacecommand{presetdocument}{presetdocument}
-\setinterfacecommand{prettyprintbuffer}{prettyprintbuffer}
-\setinterfacecommand{preventmode}{preventmode}
-\setinterfacecommand{printpaperheight}{inaltimehartieimprimanta}
-\setinterfacecommand{printpaperwidth}{latimehartieimprimanta}
-\setinterfacecommand{processblocks}{proceseazabloc}
-\setinterfacecommand{processbodyfontenvironmentlist}{processbodyfontenvironmentlist}
-\setinterfacecommand{processpage}{proceseazapagina}
-\setinterfacecommand{product}{produs}
-\setinterfacecommand{program}{program}
-\setinterfacecommand{project}{proiect}
-\setinterfacecommand{publication}{publicatie}
-\setinterfacecommand{quotation}{citat}
-\setinterfacecommand{quote}{minicitat}
-\setinterfacecommand{ran}{ran}
-\setinterfacecommand{redo}{refa}
-\setinterfacecommand{redoconvertfont}{redoconvertfont}
-\setinterfacecommand{ref}{ref}
-\setinterfacecommand{reference}{referinta}
-\setinterfacecommand{referral}{referit}
-\setinterfacecommand{referraldate}{datareferit}
-\setinterfacecommand{referring}{referring}
-\setinterfacecommand{registerfontclass}{registerfontclass}
-\setinterfacecommand{registerhyphenationexception}{registerhyphenationexception}
-\setinterfacecommand{registerhyphenationpattern}{registerhyphenationpattern}
-\setinterfacecommand{remark}{remarca}
-\setinterfacecommand{replacefeature}{replacefeature}
-\setinterfacecommand{reset}{reset}
-\setinterfacecommand{resetandaddfeature}{resetandaddfeature}
-\setinterfacecommand{resetcharacteralign}{resetcharacteralign}
-\setinterfacecommand{resetcharacterkerning}{resetcharacterkerning}
-\setinterfacecommand{resetcharacterspacing}{resetcharacterspacing}
-\setinterfacecommand{resetcharacterstripping}{resetcharacterstripping}
-\setinterfacecommand{resetfeature}{resetfeature}
-\setinterfacecommand{resetfontcolorsheme}{resetfontcolorsheme}
-\setinterfacecommand{resetfontfallback}{resetfontfallback}
-\setinterfacecommand{resetfontsolution}{resetfontsolution}
-\setinterfacecommand{resethyphenationfeatures}{resethyphenationfeatures}
-\setinterfacecommand{resetlocalfloats}{resetlocalfloats}
-\setinterfacecommand{resetmarking}{reseteazamarcaje}
-\setinterfacecommand{resetmode}{resetmode}
-\setinterfacecommand{resetnumber}{resetnumber}
-\setinterfacecommand{resetpath}{resetpath}
-\setinterfacecommand{resetperiodkerning}{resetperiodkerning}
-\setinterfacecommand{resetsystemmode}{resetsystemmode}
-\setinterfacecommand{resettextcontent}{resettextcontent}
-\setinterfacecommand{resetvisualizers}{resetvisualizers}
-\setinterfacecommand{restoreglobalbodyfont}{restoreglobalbodyfont}
-\setinterfacecommand{retestfeature}{retestfeature}
-\setinterfacecommand{revivefeature}{revivefeature}
-\setinterfacecommand{rightaligned}{aliniatdreapta}
-\setinterfacecommand{rightbottombox}{rightbottombox}
-\setinterfacecommand{rightedgedistance}{distantacoltdreapta}
-\setinterfacecommand{rightedgewidth}{latimecoltdreapta}
-\setinterfacecommand{rightline}{rightline}
-\setinterfacecommand{rightmargindistance}{distantamarginedreapta}
-\setinterfacecommand{rightmarginwidth}{latimemarginedreapta}
-\setinterfacecommand{romannumerals}{numereromane}
-\setinterfacecommand{rotate}{roteste}
-\setinterfacecommand{savebuffer}{savebuffer}
-\setinterfacecommand{scale}{scala}
-\setinterfacecommand{screen}{ecran}
-\setinterfacecommand{selectblocks}{selecteazablocuri}
-\setinterfacecommand{selectpaper}{selecteazahartie}
-\setinterfacecommand{selectversion}{selecteazaversiune}
-\setinterfacecommand{setbigbodyfont}{setbigbodyfont}
-\setinterfacecommand{setcharacteralign}{setcharacteralign}
-\setinterfacecommand{setcharacteraligndetail}{setcharacteraligndetail}
-\setinterfacecommand{setcharactercasing}{setcharactercasing}
-\setinterfacecommand{setcharactercleaning}{setcharactercleaning}
-\setinterfacecommand{setcharacterkerning}{setcharacterkerning}
-\setinterfacecommand{setcharacterspacing}{setcharacterspacing}
-\setinterfacecommand{setcharacterstripping}{setcharacterstripping}
-\setinterfacecommand{setcurrentfontclass}{setcurrentfontclass}
-\setinterfacecommand{setfirstline}{setfirstline}
-\setinterfacecommand{setfirstpasscharacteralign}{setfirstpasscharacteralign}
-\setinterfacecommand{setfont}{setfont}
-\setinterfacecommand{setfontcolorsheme}{setfontcolorsheme}
-\setinterfacecommand{setfontfeature}{setfontfeature}
-\setinterfacecommand{setfontsolution}{setfontsolution}
-\setinterfacecommand{setfontstrut}{setfontstrut}
-\setinterfacecommand{sethyphenationfeatures}{sethyphenationfeatures}
-\setinterfacecommand{setmainbodyfont}{setmainbodyfont}
-\setinterfacecommand{setmode}{setmode}
-\setinterfacecommand{setnote}{setnote}
-\setinterfacecommand{setnotetext}{setnotetext}
-\setinterfacecommand{setnumber}{setnumber}
-\setinterfacecommand{setperiodkerning}{setperiodkerning}
-\setinterfacecommand{setsecondpasscharacteralign}{setsecondpasscharacteralign}
-\setinterfacecommand{setsmallbodyfont}{setsmallbodyfont}
-\setinterfacecommand{setsystemmode}{setsystemmode}
-\setinterfacecommand{settextcontent}{settextcontent}
-\setinterfacecommand{settextvariable}{setvariabilatext}
-\setinterfacecommand{setupalign}{seteazaalinierea}
-\setinterfacecommand{setupanswerarea}{setupanswerarea}
-\setinterfacecommand{setuparranging}{seteazaaranjareapag}
-\setinterfacecommand{setupattachment}{setupattachment}
-\setinterfacecommand{setupbackground}{seteazafundal}
-\setinterfacecommand{setupbackgrounds}{seteazafundaluri}
-\setinterfacecommand{setupblackrules}{seteazaliniinegre}
-\setinterfacecommand{setupblank}{seteazablanc}
-\setinterfacecommand{setupblock}{seteazabloc}
-\setinterfacecommand{setupbodyfont}{seteazafonttext}
-\setinterfacecommand{setupbodyfontenvironment}{seteazamediulfonttext}
-\setinterfacecommand{setupbottom}{seteazajos}
-\setinterfacecommand{setupbottomtexts}{seteazatextejos}
-\setinterfacecommand{setupbuffer}{seteazabuffer}
-\setinterfacecommand{setupbuttons}{seteazabutoane}
-\setinterfacecommand{setupcapitals}{seteazamajuscule}
-\setinterfacecommand{setupcaption}{seteazalegenda}
-\setinterfacecommand{setupcaptions}{seteazalegendele}
-\setinterfacecommand{setupcharacteralign}{setupcharacteralign}
-\setinterfacecommand{setupcharacterkerning}{setupcharacterkerning}
-\setinterfacecommand{setupcharacterspacing}{setupcharacterspacing}
-\setinterfacecommand{setupclipping}{seteazaclipping}
-\setinterfacecommand{setupcolor}{seteazaculoare}
-\setinterfacecommand{setupcolors}{seteazaculori}
-\setinterfacecommand{setupcolumns}{seteazacoloane}
-\setinterfacecommand{setupcolumnset}{setupcolumnset}
-\setinterfacecommand{setupcolumnsetlines}{setupcolumnsetlines}
-\setinterfacecommand{setupcolumnsetstart}{setupcolumnsetstart}
-\setinterfacecommand{setupcombinations}{seteazacombinari}
-\setinterfacecommand{setupcombinedlist}{seteazalistacombinata}
-\setinterfacecommand{setupcomment}{seteazacomentariu}
-\setinterfacecommand{setupcounter}{setupcounter}
-\setinterfacecommand{setupdescription}{setupdescription}
-\setinterfacecommand{setupdescriptions}{seteazadescriere}
-\setinterfacecommand{setupenumeration}{setupenumeration}
-\setinterfacecommand{setupenumerations}{seteazaenumerare}
-\setinterfacecommand{setupexternalfigures}{seteazafiguriexterne}
-\setinterfacecommand{setupfield}{seteazacamp}
-\setinterfacecommand{setupfields}{seteazacampuri}
-\setinterfacecommand{setupfillinlines}{seteazaliniiumplere}
-\setinterfacecommand{setupfillinrules}{seteazarigleumplere}
-\setinterfacecommand{setupfirstline}{setupfirstline}
-\setinterfacecommand{setupfloat}{seteazafloat}
-\setinterfacecommand{setupfloats}{seteazafloats}
-\setinterfacecommand{setupfloatsplitting}{seteazaimpartireafloat}
-\setinterfacecommand{setupfontexpansion}{setupfontexpansion}
-\setinterfacecommand{setupfontprotrusion}{setupfontprotrusion}
-\setinterfacecommand{setupfonts}{setupfonts}
-\setinterfacecommand{setupfontsolution}{setupfontsolution}
-\setinterfacecommand{setupfooter}{seteazasubsol}
-\setinterfacecommand{setupfootertexts}{seteazatextesubsol}
-\setinterfacecommand{setupfootnotedefinition}{seteazadefinireanotasubsol}
-\setinterfacecommand{setupfootnotes}{seteazanotasubsol}
-\setinterfacecommand{setupforms}{seteazaformulare}
-\setinterfacecommand{setupformula}{setupformula}
-\setinterfacecommand{setupformulas}{seteazaformule}
-\setinterfacecommand{setupframed}{seteazainconjurat}
-\setinterfacecommand{setupframedtext}{setupframedtext}
-\setinterfacecommand{setupframedtexts}{definestetexteinconjurate}
-\setinterfacecommand{setuphead}{seteazatitlu}
-\setinterfacecommand{setupheader}{seteazaantet}
-\setinterfacecommand{setupheadertexts}{seteazatexteantet}
-\setinterfacecommand{setupheadnumber}{seteazanumartitlu}
-\setinterfacecommand{setupheads}{seteazatitluri}
-\setinterfacecommand{setupheadtext}{seteazatexttitlu}
-\setinterfacecommand{setuphyphenation}{setuphyphenation}
-\setinterfacecommand{setuphyphenmark}{seteazaliniesilabe}
-\setinterfacecommand{setupindentedtext}{setupindentedtext}
-\setinterfacecommand{setupindenting}{seteazaaliniat}
-\setinterfacecommand{setupinmargin}{seteazamarginal}
-\setinterfacecommand{setupinteraction}{seteazainteractiunea}
-\setinterfacecommand{setupinteractionbar}{seteazabarainteractiune}
-\setinterfacecommand{setupinteractionmenu}{seteazameniuinteractiune}
-\setinterfacecommand{setupinteractionscreen}{seteazaecraninteractiune}
-\setinterfacecommand{setupinterlinespace}{seteazaspatiuinterliniar}
-\setinterfacecommand{setupitemgroup}{setupitemgroup}
-\setinterfacecommand{setupitemgroups}{setareitemization}
-\setinterfacecommand{setupitems}{seteazaelemente}
-\setinterfacecommand{setuplabeltext}{seteazatexteticheta}
-\setinterfacecommand{setuplanguage}{setarelimba}
-\setinterfacecommand{setuplayout}{seteazaaspect}
-\setinterfacecommand{setuplegend}{seteazalegenda}
-\setinterfacecommand{setuplinenote}{setuplinenote}
-\setinterfacecommand{setuplinenumbering}{seteazanumerotarelinii}
-\setinterfacecommand{setuplines}{seteazalinii}
-\setinterfacecommand{setuplinewidth}{seteazagrosimelinie}
-\setinterfacecommand{setuplist}{seteazalista}
-\setinterfacecommand{setupmakeup}{seteazamakeup}
-\setinterfacecommand{setupmarginblock}{setupmarginblock}
-\setinterfacecommand{setupmarginblocks}{seteazablocurimarginale}
-\setinterfacecommand{setupmargindata}{setupmargindata}
-\setinterfacecommand{setupmarginrules}{seteazaliniimargine}
-\setinterfacecommand{setupmarking}{seteazamarcaje}
-\setinterfacecommand{setupmathalignment}{setupmathalignment}
-\setinterfacecommand{setupnarrower}{seteazaingust}
-\setinterfacecommand{setupnotation}{setupnotation}
-\setinterfacecommand{setupnotations}{setupnotations}
-\setinterfacecommand{setupnote}{setupnote}
-\setinterfacecommand{setupnotes}{setupnotes}
-\setinterfacecommand{setupnumber}{setupnumber}
-\setinterfacecommand{setupnumbering}{seteazanumerotare}
-\setinterfacecommand{setupoppositeplacing}{seteazaplasareaopozita}
-\setinterfacecommand{setupoutput}{setareoutput}
-\setinterfacecommand{setuppagecomment}{seteazacomentariupagina}
-\setinterfacecommand{setuppagenumber}{seteazanumarpagina}
-\setinterfacecommand{setuppagenumbering}{seteazanumerotarepagina}
-\setinterfacecommand{setuppagetransitions}{seteazatranzitiepagina}
-\setinterfacecommand{setuppalet}{seteazapaleta}
-\setinterfacecommand{setuppaper}{setuppaper}
-\setinterfacecommand{setuppapersize}{seteazadimensiunihartie}
-\setinterfacecommand{setupparagraphnumbering}{seteazanumerotareparagrafe}
-\setinterfacecommand{setupparagraphs}{seteazaparagrafe}
-\setinterfacecommand{setupperiodkerning}{setupperiodkerning}
-\setinterfacecommand{setupplacement}{setupplacement}
-\setinterfacecommand{setuppositioning}{setarepozitie}
-\setinterfacecommand{setupprofiles}{seteazaprofile}
-\setinterfacecommand{setupprograms}{seteazaprograme}
-\setinterfacecommand{setuppublications}{seteazapublicatii}
-\setinterfacecommand{setupquote}{seteazaminicitat}
-\setinterfacecommand{setupreferencelist}{seteazalistareferinte}
-\setinterfacecommand{setupreferencing}{seteazareferinte}
-\setinterfacecommand{setupregister}{seteazaregistru}
-\setinterfacecommand{setuprotate}{seteazarotare}
-\setinterfacecommand{setuprule}{seteazarigla}
-\setinterfacecommand{setupscreens}{seteazaecrane}
-\setinterfacecommand{setupsection}{seteazasectiune}
-\setinterfacecommand{setupsectionblock}{seteazablocsectiune}
-\setinterfacecommand{setupsorting}{seteazasortare}
-\setinterfacecommand{setupspacing}{seteazaspatiu}
-\setinterfacecommand{setupstartstop}{setupstartstop}
-\setinterfacecommand{setupstrut}{seteazastrut}
-\setinterfacecommand{setupsubpagenumber}{seteazanumarsubpagina}
-\setinterfacecommand{setupsymbolset}{seteazasimbol}
-\setinterfacecommand{setupsynchronization}{setaresincronizare}
-\setinterfacecommand{setupsynchronizationbar}{setarebarasincronizare}
-\setinterfacecommand{setupsynonyms}{seteazasinonime}
-\setinterfacecommand{setupsystem}{seteazasistem}
-\setinterfacecommand{setuptab}{seteazatab}
-\setinterfacecommand{setuptables}{seteazatabele}
-\setinterfacecommand{setuptabulate}{seteazatabulatori}
-\setinterfacecommand{setuptext}{seteazatext}
-\setinterfacecommand{setuptextbackground}{setuptextbackground}
-\setinterfacecommand{setuptextnote}{setuptextnote}
-\setinterfacecommand{setuptextposition}{seteazapozitietext}
-\setinterfacecommand{setuptextrules}{seteazarigletext}
-\setinterfacecommand{setuptexttexts}{seteazatextetext}
-\setinterfacecommand{setuptextvariable}{seteazavariabilatext}
-\setinterfacecommand{setupthinrules}{seteazaliniesubtire}
-\setinterfacecommand{setuptolerance}{seteazatoleranta}
-\setinterfacecommand{setuptop}{seteazasus}
-\setinterfacecommand{setuptoptexts}{seteazatextesus}
-\setinterfacecommand{setuptype}{seteazatype}
-\setinterfacecommand{setuptyping}{seteazatyping}
-\setinterfacecommand{setupunderbar}{seteazasublinie}
-\setinterfacecommand{setupurl}{seteazaurl}
-\setinterfacecommand{setupversions}{seteazaversiuni}
-\setinterfacecommand{setupwhitespace}{seteazaspatiualb}
-\setinterfacecommand{setvisualizerfont}{setvisualizerfont}
-\setinterfacecommand{showbodyfont}{afiseazafonttext}
-\setinterfacecommand{showbodyfontenvironment}{afiseazamediufonttext}
-\setinterfacecommand{showcolor}{afiseazaculoare}
-\setinterfacecommand{showcolorgroup}{afiseazagrupculoare}
-\setinterfacecommand{showcounter}{showcounter}
-\setinterfacecommand{showexternalfigures}{afiseazafiguriexterne}
-\setinterfacecommand{showfields}{afiseazacampuri}
-\setinterfacecommand{showfont}{showfont}
-\setinterfacecommand{showfontdata}{showfontdata}
-\setinterfacecommand{showfontexpansion}{showfontexpansion}
-\setinterfacecommand{showfontitalics}{showfontitalics}
-\setinterfacecommand{showfontkerns}{showfontkerns}
-\setinterfacecommand{showfontparameters}{showfontparameters}
-\setinterfacecommand{showfontstrip}{showfontstrip}
-\setinterfacecommand{showfontstyle}{showfontstyle}
-\setinterfacecommand{showframe}{afiseazarama}
-\setinterfacecommand{showgrid}{afiseazagrid}
-\setinterfacecommand{showhyphenationtrace}{showhyphenationtrace}
-\setinterfacecommand{showkerning}{showkerning}
-\setinterfacecommand{showlayout}{afiseazaaspect}
-\setinterfacecommand{showmakeup}{afiseazamakeup}
-\setinterfacecommand{showminimalbaseline}{showminimalbaseline}
-\setinterfacecommand{showpalet}{afiseazapaleta}
-\setinterfacecommand{showprint}{afiseazatiparire}
-\setinterfacecommand{showsetups}{afiseazasetari}
-\setinterfacecommand{showstruts}{afiseazastruts}
-\setinterfacecommand{showsymbolset}{afiseazasetsimboluri}
-\setinterfacecommand{smallcapped}{kap}
-\setinterfacecommand{someline}{olinie}
-\setinterfacecommand{somewhere}{undeva}
-\setinterfacecommand{space}{spatiu}
-\setinterfacecommand{specialitem}{specialitem}
-\setinterfacecommand{splitfloat}{impartefloat}
-\setinterfacecommand{startalignment}{startaliniere}
-\setinterfacecommand{startbackground}{startfundal}
-\setinterfacecommand{startcoding}{startcodificare}
-\setinterfacecommand{startcolor}{startculoare}
-\setinterfacecommand{startcolumnmakeup}{startcolumnmakeup}
-\setinterfacecommand{startcolumns}{startcoloane}
-\setinterfacecommand{startcolumnset}{startcolumnset}
-\setinterfacecommand{startcombination}{startcombinare}
-\setinterfacecommand{startcomponent}{startcomponenta}
-\setinterfacecommand{startdocument}{startdocument}
-\setinterfacecommand{startenvironment}{startmediu}
-\setinterfacecommand{startfigure}{startfigura}
-\setinterfacecommand{startframed}{startframed}
-\setinterfacecommand{startglobal}{startglobal}
-\setinterfacecommand{startline}{startlinie}
-\setinterfacecommand{startlinecorrection}{startcorectielinie}
-\setinterfacecommand{startlinenote}{startlinenote}
-\setinterfacecommand{startlinenumbering}{startnumerotarelinii}
-\setinterfacecommand{startlines}{startlinii}
-\setinterfacecommand{startlocal}{startlocal}
-\setinterfacecommand{startlocalfootnotes}{startnotesubsollocale}
-\setinterfacecommand{startmakeup}{startmakeup}
-\setinterfacecommand{startmarginblock}{startblocmarginal}
-\setinterfacecommand{startmarginrule}{startliniemargine}
-\setinterfacecommand{startnarrower}{startingust}
-\setinterfacecommand{startopposite}{startopozit}
-\setinterfacecommand{startoverlay}{startoverlay}
-\setinterfacecommand{startoverview}{startoverview}
-\setinterfacecommand{startpacked}{startimpachetat}
-\setinterfacecommand{startpositioning}{startpozitionare}
-\setinterfacecommand{startproduct}{startprodus}
-\setinterfacecommand{startprofile}{startprofil}
-\setinterfacecommand{startproject}{startproiect}
-\setinterfacecommand{startquotation}{startcitat}
-\setinterfacecommand{startraster}{startraster}
-\setinterfacecommand{startsymbolset}{startsetsimboluri}
-\setinterfacecommand{startsynchronization}{startsincronizare}
-\setinterfacecommand{starttable}{starttabel}
-\setinterfacecommand{starttables}{starttabele}
-\setinterfacecommand{starttext}{starttext}
-\setinterfacecommand{starttextbackground}{starttextbackground}
-\setinterfacecommand{starttextrule}{startriglatext}
-\setinterfacecommand{startunpacked}{startneimpachetat}
-\setinterfacecommand{startversion}{startversiune}
-\setinterfacecommand{stopalignment}{stopaliniere}
-\setinterfacecommand{stopbackground}{stopfundal}
-\setinterfacecommand{stopcoding}{stopcodificare}
-\setinterfacecommand{stopcolor}{stopculoare}
-\setinterfacecommand{stopcolumnmakeup}{stopcolumnmakeup}
-\setinterfacecommand{stopcolumns}{stopcoloane}
-\setinterfacecommand{stopcolumnset}{stopcolumnset}
-\setinterfacecommand{stopcombination}{stopcombinare}
-\setinterfacecommand{stopcomponent}{stopcomponenta}
-\setinterfacecommand{stopdocument}{stopdocument}
-\setinterfacecommand{stopenvironment}{stopmediu}
-\setinterfacecommand{stopframed}{stopframed}
-\setinterfacecommand{stopglobal}{stopblobal}
-\setinterfacecommand{stopline}{stoplinie}
-\setinterfacecommand{stoplinecorrection}{stopcorectielinie}
-\setinterfacecommand{stoplinenote}{stoplinenote}
-\setinterfacecommand{stoplinenumbering}{stopnumerotarelinii}
-\setinterfacecommand{stoplines}{stoplinii}
-\setinterfacecommand{stoplocal}{stoplocal}
-\setinterfacecommand{stoplocalfootnotes}{stopnotesubsollocale}
-\setinterfacecommand{stopmakeup}{stopmakeup}
-\setinterfacecommand{stopmarginblock}{stopblocmarginal}
-\setinterfacecommand{stopmarginrule}{stopliniemargine}
-\setinterfacecommand{stopnarrower}{stopingust}
-\setinterfacecommand{stopopposite}{stopopozit}
-\setinterfacecommand{stopoverlay}{stopoverlay}
-\setinterfacecommand{stopoverview}{stopoverview}
-\setinterfacecommand{stoppacked}{stopimpachetat}
-\setinterfacecommand{stoppositioning}{stoppozitionare}
-\setinterfacecommand{stopproduct}{stopprodus}
-\setinterfacecommand{stopprofile}{stopprofil}
-\setinterfacecommand{stopproject}{stopproiect}
-\setinterfacecommand{stopquotation}{stopcitat}
-\setinterfacecommand{stopraster}{stopraster}
-\setinterfacecommand{stopsynchronization}{stopsincronizare}
-\setinterfacecommand{stoptable}{stoptabel}
-\setinterfacecommand{stoptables}{stoptabele}
-\setinterfacecommand{stoptext}{stoptext}
-\setinterfacecommand{stoptextbackground}{stoptextbackground}
-\setinterfacecommand{stoptextrule}{stopriglatext}
-\setinterfacecommand{stopunpacked}{stopneimpachetat}
-\setinterfacecommand{stopversion}{stopversiune}
-\setinterfacecommand{stretched}{intins}
-\setinterfacecommand{strictinspectnextcharacter}{strictinspectnextcharacter}
-\setinterfacecommand{stripcharacter}{stripcharacter}
-\setinterfacecommand{subformulanumber}{numarsubformula}
-\setinterfacecommand{subpagenumber}{subpagenumber}
-\setinterfacecommand{subtractfeature}{subtractfeature}
-\setinterfacecommand{switchtobodyfont}{trecilafonttext}
-\setinterfacecommand{switchtorawfont}{trecilafontraw}
-\setinterfacecommand{sym}{sim}
-\setinterfacecommand{symbol}{simbol}
-\setinterfacecommand{symoffset}{symoffset}
-\setinterfacecommand{synchronizationbar}{barasincronizare}
-\setinterfacecommand{synchronize}{sincronizeaza}
-\setinterfacecommand{tab}{tab}
-\setinterfacecommand{testcolumn}{testcolumn}
-\setinterfacecommand{testfeature}{testfeature}
-\setinterfacecommand{testfeatureonce}{testfeatureonce}
-\setinterfacecommand{testpage}{testpage}
-\setinterfacecommand{tex}{tex}
-\setinterfacecommand{textbackground}{textbackground}
-\setinterfacecommand{textcolor}{textcolor}
-\setinterfacecommand{textheight}{inaltimetext}
-\setinterfacecommand{textnote}{textnote}
-\setinterfacecommand{textreference}{referintatext}
-\setinterfacecommand{textrule}{riglatext}
-\setinterfacecommand{textvariable}{variabilatext}
-\setinterfacecommand{textwidth}{latimetext}
-\setinterfacecommand{thefirstcharacter}{thefirstcharacter}
-\setinterfacecommand{thenormalizedbodyfontsize}{thenormalizedbodyfontsize}
-\setinterfacecommand{theremainingcharacters}{theremainingcharacters}
-\setinterfacecommand{thinrule}{liniesubtire}
-\setinterfacecommand{thinrules}{liniisubtiri}
-\setinterfacecommand{tolinenote}{tolinenote}
-\setinterfacecommand{tooltip}{tooltip}
-\setinterfacecommand{topdistance}{distantasus}
-\setinterfacecommand{topheight}{inaltimesus}
-\setinterfacecommand{topspace}{spatiusus}
-\setinterfacecommand{totalnumberofpages}{numartotalpagini}
-\setinterfacecommand{translate}{traduce}
-\setinterfacecommand{txt}{txt}
-\setinterfacecommand{typ}{typ}
-\setinterfacecommand{type}{type}
-\setinterfacecommand{typebuffer}{scriebuffer}
-\setinterfacecommand{typedefinedbuffer}{typedefinedbuffer}
-\setinterfacecommand{typefile}{typefile}
-\setinterfacecommand{typeinlinebuffer}{typeinlinebuffer}
-\setinterfacecommand{typing}{typing}
-\setinterfacecommand{unitmeaning}{numeunitate}
-\setinterfacecommand{unknown}{necunoscut}
-\setinterfacecommand{unregisterhyphenationpattern}{unregisterhyphenationpattern}
-\setinterfacecommand{useJSscripts}{folosestescriptJS}
-\setinterfacecommand{useURL}{folosesteURL}
-\setinterfacecommand{useXMLfilter}{useXMLfilter}
-\setinterfacecommand{useblocks}{folosestebloc}
-\setinterfacecommand{usebodyfont}{usebodyfont}
-\setinterfacecommand{usebodyfontparameter}{usebodyfontparameter}
-\setinterfacecommand{usecommands}{folosestecomenzi}
-\setinterfacecommand{useencoding}{folosestecodificarea}
-\setinterfacecommand{useexternaldocument}{folosestedocumentextern}
-\setinterfacecommand{useexternalfigure}{folosestefiguraexterna}
-\setinterfacecommand{useexternalfile}{folosestefisierextern}
-\setinterfacecommand{useexternalfiles}{folosestefisiereexterne}
-\setinterfacecommand{useexternalsoundtrack}{folosestemuzicaexterna}
-\setinterfacecommand{usemodule}{folosestemodul}
-\setinterfacecommand{usemodules}{folosestemodule}
-\setinterfacecommand{usepath}{folosestedirector}
-\setinterfacecommand{usereferences}{folosestereferinte}
-\setinterfacecommand{usespecials}{folosestespeciale}
-\setinterfacecommand{usesymbols}{folosestesimboluri}
-\setinterfacecommand{usetypescript}{usetypescript}
-\setinterfacecommand{usetypescriptfile}{usetypescriptfile}
-\setinterfacecommand{useurl}{folosesteurl}
-\setinterfacecommand{verbatim}{verbatim}
-\setinterfacecommand{version}{versiune}
-\setinterfacecommand{vl}{vl}
-\setinterfacecommand{weekday}{zidinsaptamana}
-\setinterfacecommand{whitespace}{spatiualb}
-\setinterfacecommand{widthspanningtext}{widthspanningtext}
-\setinterfacecommand{wordright}{cuvantdreapta}
-\setinterfacecommand{writebetweenlist}{scrieintreliste}
-\setinterfacecommand{writetolist}{scrieinlista}
-\setinterfacecommand{writetoreferencelist}{scrieinlistareferinte}
-\setinterfacecommand{writetoregister}{scrieinregistru}
-%
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/mult-sys.mkii b/Master/texmf-dist/tex/context/base/mkii/mult-sys.mkii
deleted file mode 100644
index 1961fdf11b1..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/mult-sys.mkii
+++ /dev/null
@@ -1,892 +0,0 @@
-%D \module
-%D [ file=mult-sys,
-%D version=1996.06.01,
-%D title=\CONTEXT\ Multilingual Macros,
-%D subtitle=System,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D In boring module we define a lot of obscure but useful
-%D system constants. By doing so we save lots of memory while
-%D at the same time we prevent ourself from typing errors.
-
-\writestatus{loading}{ConTeXt Multilingual Macros / System}
-
-\unprotect
-
-%D The constants are grouped in such a way that there is a
-%D minimal change of conflicts.
-%D
-%D \starttyping
-%D \definesystemconstants {word}
-%D \definemessageconstant {word}
-%D \stoptyping
-%D
-%D This commands generate \type{\s!word} and \type{\m!word}.
-
-\definesystemconstant {hans}
-\definesystemconstant {taco}
-
-%D First we define some system constants used for both the
-%D multi||lingual interface and multi||linguag typesetting.
-
-\definesystemconstant {afrikaans} \definesystemconstant {af}
-\definesystemconstant {arabic} \definesystemconstant {ar}
-\definesystemconstant {catalan} \definesystemconstant {ca}
-\definesystemconstant {chinese} \definesystemconstant {cn}
-\definesystemconstant {croatian} \definesystemconstant {hr}
-\definesystemconstant {czech} \definesystemconstant {cs} \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 {lithuanian} \definesystemconstant {lt}
-\definesystemconstant {bokmal} \definesystemconstant {nb} \definesystemconstant {norwegian} \definesystemconstant {no}
-\definesystemconstant {nynorsk} \definesystemconstant {nn}
-\definesystemconstant {polish} \definesystemconstant {pl}
-\definesystemconstant {persian} \definesystemconstant {pe}
-\definesystemconstant {portuguese} \definesystemconstant {pt}
-\definesystemconstant {romanian} \definesystemconstant {ro}
-\definesystemconstant {russian} \definesystemconstant {ru}
-\definesystemconstant {slovak} \definesystemconstant {sk}
-\definesystemconstant {slovenian} \definesystemconstant {sl}
-\definesystemconstant {slovene}
-\definesystemconstant {spanish} \definesystemconstant {es}
-\definesystemconstant {swedish} \definesystemconstant {sv}
-\definesystemconstant {turkish} \definesystemconstant {tr}
-\definesystemconstant {turkmen} \definesystemconstant {tk}
-\definesystemconstant {gbenglish} \definesystemconstant {gb} \definesystemconstant {ukenglish} \definesystemconstant {uk}
-\definesystemconstant {usenglish} \definesystemconstant {us}
-\definesystemconstant {ukrainian} \definesystemconstant {ua}
-\definesystemconstant {greek} \definesystemconstant {gr}
-\definesystemconstant {ancientgreek} \definesystemconstant {agr}
-\definesystemconstant {vietnamese} \definesystemconstant {vi} \definesystemconstant {vn}
-
-%D For proper \UNICODE\ support we need a few font related
-%D constants.
-
-\definesystemconstant {BoldItalic}
-\definesystemconstant {BoldSlanted}
-\definesystemconstant {Bold}
-\definesystemconstant {Italic}
-\definesystemconstant {Regular}
-\definesystemconstant {Slanted}
-\definesystemconstant {Unicode}
-
-\definesystemconstant {Serif} \definesystemconstant {Regular}
-\definesystemconstant {Sans} \definesystemconstant {Support}
-\definesystemconstant {Mono} \definesystemconstant {Type}
-\definesystemconstant {Math}
-\definesystemconstant {Handwriting}
-\definesystemconstant {Calligraphy}
-\definesystemconstant {Casual}
-
-\definesystemconstant {SerifBold} \definesystemconstant {SansBold} \definesystemconstant {MonoBold}
-\definesystemconstant {SerifItalic} \definesystemconstant {SansItalic} \definesystemconstant {MonoItalic}
-\definesystemconstant {SerifBoldItalic} \definesystemconstant {SansBoldItalic} \definesystemconstant {MonoBoldItalic}
-\definesystemconstant {SerifSlanted} \definesystemconstant {SansSlanted} \definesystemconstant {MonoSlanted}
-\definesystemconstant {SerifBoldSlanted} \definesystemconstant {SansBoldSlanted} \definesystemconstant {MonoBoldSlanted}
-\definesystemconstant {SerifCaps} \definesystemconstant {SansCaps} \definesystemconstant {MonoCaps}
-
-\definesystemconstant {Normal}
-\definesystemconstant {Caps}
-
-\definesystemconstant {mnem} % kind of generic short tag
-
-\definesystemconstant {file}
-\definesystemconstant {name}
-\definesystemconstant {spec}
-
-\definesystemconstant {serif}
-\definesystemconstant {sans}
-\definesystemconstant {mono}
-\definesystemconstant {math}
-\definesystemconstant {handwriting}
-\definesystemconstant {calligraphy}
-\definesystemconstant {casual}
-\definesystemconstant {fax}
-
-\definesystemconstant {fallback}
-
-\definesystemconstant {none}
-\definesystemconstant {default}
-\definesystemconstant {smallcaps}
-
-%D As the name of their define command states, the next set of
-%D constants is used in the message macro's.
-
-\definemessageconstant {check}
-\definemessageconstant {colors}
-\definemessageconstant {columns}
-\definemessageconstant {encodings}
-\definemessageconstant {regimes}
-\definemessageconstant {figures}
-\definemessageconstant {fields}
-\definemessageconstant {files}
-\definemessageconstant {floatblocks}
-\definemessageconstant {fonts}
-\definemessageconstant {handlings}
-\definemessageconstant {interactions}
-\definemessageconstant {javascript}
-\definemessageconstant {layouts}
-\definemessageconstant {linguals}
-\definemessageconstant {references}
-\definemessageconstant {specials}
-\definemessageconstant {structures}
-\definemessageconstant {symbols}
-\definemessageconstant {systems}
-\definemessageconstant {lua}
-\definemessageconstant {textblocks}
-\definemessageconstant {verbatims}
-\definemessageconstant {versions}
-\definemessageconstant {metapost}
-\definemessageconstant {chemicals}
-\definemessageconstant {publications}
-
-%D Net come some \CONTEXT\ constants, used in the definition
-%D of private commands:
-
-\definesystemconstant {tex}
-\definesystemconstant {xml}
-\definesystemconstant {lua}
-
-\definesystemconstant {next}
-\definesystemconstant {pickup}
-\definesystemconstant {ascii}
-\definesystemconstant {default}
-\definesystemconstant {unknown}
-\definesystemconstant {action}
-\definesystemconstant {compare}
-\definesystemconstant {do}
-\definesystemconstant {dodo}
-\definesystemconstant {complex}
-\definesystemconstant {simple}
-\definesystemconstant {start}
-\definesystemconstant {stop}
-\definesystemconstant {dummy}
-\definesystemconstant {local}
-\definesystemconstant {global}
-\definesystemconstant {done}
-\definesystemconstant {font}
-\definesystemconstant {link}
-\definesystemconstant {parent}
-\definesystemconstant {clone}
-\definesystemconstant {section} \let\v!sectionlevel\s!section % for old times sake
-\definesystemconstant {handler}
-\definesystemconstant {counter}
-\definesystemconstant {single}
-\definesystemconstant {multi}
-
-\definesystemconstant {hasnumber}
-\definesystemconstant {hastitle}
-\definesystemconstant {hascaption}
-\definesystemconstant {haslevel}
-
-\definesystemconstant {mkiv}
-\definesystemconstant {mkii}
-\definesystemconstant {entities}
-
-\definesystemconstant {normal}
-\definesystemconstant {bold}
-\definesystemconstant {italic}
-\definesystemconstant {slanted}
-
-\definesystemconstant {default}
-\definesystemconstant {smallcaps}
-
-\definesystemconstant {text}
-\definesystemconstant {page}
-\definesystemconstant {leftpage}
-\definesystemconstant {rightpage}
-\definesystemconstant {somewhere}
-
-%D A more experienced \TEX\ user will recognize the next four
-%D constants. We need these because font-definitions are
-%D partially english.
-
-\definesystemconstant {run}
-
-\definesystemconstant {fam}
-\definesystemconstant {text}
-\definesystemconstant {script}
-\definesystemconstant {scriptscript}
-
-\definesystemconstant {lefthyphenmin}
-\definesystemconstant {righthyphenmin}
-\definesystemconstant {lefthyphenchar}
-\definesystemconstant {righthyphenchar}
-
-\definesystemconstant {skewchar}
-\definesystemconstant {hyphenchar}
-\definesystemconstant {catcodes}
-\definesystemconstant {encoding}
-\definesystemconstant {resource}
-\definesystemconstant {mapping}
-\definesystemconstant {language}
-\definesystemconstant {patterns}
-\definesystemconstant {rname}
-\definesystemconstant {rscale}
-\definesystemconstant {handling}
-\definesystemconstant {features}
-\definesystemconstant {fallbacks}
-\definesystemconstant {goodies}
-\definesystemconstant {background}
-\definesystemconstant {ucmap}
-
-\definesystemconstant {property}
-\definesystemconstant {overprint}
-\definesystemconstant {layer}
-\definesystemconstant {effect}
-\definesystemconstant {negative}
-\definesystemconstant {color}
-\definesystemconstant {transparency}
-
-\definesystemconstant {black}
-\definesystemconstant {white}
-
-\definesystemconstant {format}
-\definesystemconstant {extensions}
-\definesystemconstant {initializations}
-
-%D Just to be complete we define the standard \TEX\ units.
-
-\definesystemconstant {cm}
-\definesystemconstant {em}
-\definesystemconstant {ex}
-\definesystemconstant {mm}
-\definesystemconstant {pt}
-\definesystemconstant {sp}
-\definesystemconstant {bp}
-\definesystemconstant {in}
-\definesystemconstant {pc}
-\definesystemconstant {cm}
-\definesystemconstant {dd}
-\definesystemconstant {cc}
-\definesystemconstant {nd}
-\definesystemconstant {nc}
-
-%D These constants are used for internal and utility
-%D commands.
-
-\definesystemconstant {check}
-\definesystemconstant {reset}
-\definesystemconstant {set}
-
-\definesystemconstant {entrya}
-\definesystemconstant {entryb}
-\definesystemconstant {entryc}
-\definesystemconstant {entryd}
-\definesystemconstant {entry}
-\definesystemconstant {see}
-\definesystemconstant {from}
-\definesystemconstant {to}
-\definesystemconstant {line}
-\definesystemconstant {page}
-\definesystemconstant {realpage}
-\definesystemconstant {userpage}
-\definesystemconstant {subpage}
-
-\definesystemconstant {synonym}
-
-\definesystemconstant {reference}
-\definesystemconstant {main}
-
-\definesystemconstant {list}
-
-\definesystemconstant {item}
-\definesystemconstant {itemcount}
-
-\definesystemconstant {number}
-\definesystemconstant {references}
-\definesystemconstant {between}
-\definesystemconstant {format}
-\definesystemconstant {old}
-
-\definesystemconstant {thisisblock}
-\definesystemconstant {thiswasblock}
-
-\definesystemconstant {figurepreset}
-
-\definesystemconstant {empty}
-
-%D Some \CONTEXT\ commands take a two||pass aproach to
-%D optimize the typesetting. Each two||pass object has its
-%D own tag.
-
-\definesystemconstant {pass}
-
-\definesystemconstant {data}
-\definesystemconstant {float}
-\definesystemconstant {list}
-\definesystemconstant {page}
-\definesystemconstant {subpage}
-\definesystemconstant {margin}
-\definesystemconstant {profile}
-\definesystemconstant {versionbegin}
-\definesystemconstant {versionend}
-\definesystemconstant {cross}
-\definesystemconstant {paragraph}
-
-%D A lot of macros use tags to distinguish between different
-%D objects, e.g. lists and registers.
-
-\definesystemconstant {prt} % part (deel)
-\definesystemconstant {chp} % chapter (hoofdstuk)
-\definesystemconstant {sec} % section (paragraaf)
-\definesystemconstant {tit} % title (titel)
-\definesystemconstant {sub} % subject (onderwerp)
-\definesystemconstant {mar} % margin (marge)
-\definesystemconstant {num} % number (doornummeren)
-\definesystemconstant {def} % definition (doordefinieren)
-\definesystemconstant {for} % formula (formule)
-\definesystemconstant {fnt} % footnote (voetnoot)
-\definesystemconstant {ind} % index (register)
-\definesystemconstant {lin} % linked index
-\definesystemconstant {lst} % list (opsomming)
-\definesystemconstant {flt} % float (plaatsblok)
-\definesystemconstant {pag} % page (pagina)
-\definesystemconstant {txt} % text (tekst)
-\definesystemconstant {ref} % reference (verwijzing)
-\definesystemconstant {lab} % label (label)
-\definesystemconstant {aut} % automatic (inhoud, index)
-\definesystemconstant {vwa} % automatic (illustrations)
-\definesystemconstant {vwb} % automatic (illustrations)
-
-\definesystemconstant {kop} % kop % still dutch
-
-%D Reference labels can be tagged by users, for instance by
-%D means of \type{tag:}. The reference mechanism itself uses
-%D some tags too. These are definitely not to be used by users.
-%D Here they are:
-
-\definereferenceconstant {cross} {:c:} % cross reference
-\definereferenceconstant {view} {:v:} % view reference
-\definereferenceconstant {viewa} {:a:} % view reference test a
-\definereferenceconstant {viewb} {:b:} % view reference test b
-\definereferenceconstant {page} {:p:} % page referece
-\definereferenceconstant {list} {:l:} % list reference
-\definereferenceconstant {exec} {:e:} % execution reference
-\definereferenceconstant {form} {:m:} % form reference
-\definereferenceconstant {syst} {:s:} % system reference
-
-\definereferenceconstant {from} {:f:} % from list reference
-\definereferenceconstant {to} {:t:} % to list reference
-
-\definereferenceconstant {object} {:o:} % object reference
-\definereferenceconstant {driver} {:d:} % driver object reference
-\definereferenceconstant {widget} {:w:} % field chain reference
-
-\definereferenceconstant {java} {:j:} % java scripts
-
-%D When we use numbers and dimensions the same applies as
-%D with the keywords like \type{width} and \type{plus}
-%D mentioned earlier.
-
-\def\!!ten {10}
-\def\!!twelve {12}
-\def\!!hundred {100}
-\def\!!thousand {1000}
-\def\!!tenthousand {10000}
-\def\!!maxcard {65536}
-\def\!!medcard {32768}
-
-\def\!!zeropoint {0pt}
-\def\!!onepoint {1pt}
-\def\!!twopoint {2pt}
-\def\!!threepoint {3pt}
-\def\!!fourpoint {4pt}
-\def\!!fivepoint {5pt}
-\def\!!sixpoint {6pt}
-\def\!!sevenpoint {7pt}
-\def\!!eightpoint {8pt}
-\def\!!ninepoint {9pt}
-\def\!!tenpoint {10pt}
-\def\!!elevenpoint {11pt}
-\def\!!twelvepoint {12pt}
-\def\!!fourteenpointfour {14.4pt}
-
-\let\onerealpoint\onepoint % needed for latex
-
-% D Another optimization is:
-%
-% \let\points\onepoint
-
-%D A rough test is:
-%D
-%D \starttyping
-%D \def\TestMe % 7.75 sec on a P4/2G
-%D {\dimen0=10\points\dimen0=10\points\dimen0=10\points\dimen0=10\points\dimen0=10\points
-%D \dimen0=10\points\dimen0=10\points\dimen0=10\points\dimen0=10\points\dimen0=10\points}
-%D
-%D \def\TestMe % 11.5 sec on a P4/2G
-%D {\dimen0=10pt\dimen0=10pt\dimen0=10pt\dimen0=10pt\dimen0=10pt%
-%D \dimen0=10pt\dimen0=10pt\dimen0=10pt\dimen0=10pt\dimen0=10pt}
-%D
-%D \def\TestMe % 12.5 sec on a P4/2G
-%D {\dimen0=10\s!pt\dimen0=10\s!pt\dimen0=10\s!pt\dimen0=10\s!pt\dimen0=10\s!pt%
-%D \dimen0=10\s!pt\dimen0=10\s!pt\dimen0=10\s!pt\dimen0=10\s!pt\dimen0=10\s!pt}
-%D
-%D \testfeatureonce {500000}{\TestMe}
-%D \stoptyping
-
-%D Variables are composed of a command specific tag and a user
-%D supplied variable (system constant). The first tag \type{ag}
-%D for instance is available as \type{\??ag} and expands to
-%D \type{@@ag} in composed variables.
-
-% vervallen : hd hr hm vt vr vm tr tn te br bm bo on om or
-
-\definesystemvariable {ab} % AlignedBoxes
-\definesystemvariable {ac} % ACcent
-\definesystemvariable {ae} % AttributEs
-\definesystemvariable {ag} % AchterGrond
-\definesystemvariable {al} % ALinea's
-\definesystemvariable {am} % interActieMenu
-\definesystemvariable {an} % ANchor
-\definesystemvariable {as} % AlignmentSwitch
-\definesystemvariable {at} % ATtachments
-\definesystemvariable {ba} % synchronisatieBAlk
-\definesystemvariable {bc} % BaCkend
-\definesystemvariable {be} % startstop (BeginEnd)
-\definesystemvariable {bj} % BlokJe
-\definesystemvariable {bk} % Blokken (floats)
-\definesystemvariable {bl} % BLanko
-\definesystemvariable {bg} % BleedinG
-\definesystemvariable {bm} % BookMark
-\definesystemvariable {bo} % BlankO (definitions)
-\definesystemvariable {bp} % BreakPoint
-\definesystemvariable {br} % sideBaR
-\definesystemvariable {bs} % SelecteerBlokken
-\definesystemvariable {bt} % BuTton
-\definesystemvariable {bu} % BUffer
-\definesystemvariable {bv} % Brieven
-\definesystemvariable {by} % Per
-\definesystemvariable {cb} % CollectBox
-\definesystemvariable {cc} % Comment
-\definesystemvariable {ce} % CasEs
-\definesystemvariable {cf} % Style (ColorFont)
-\definesystemvariable {ch} % CHaracterspacing
-\definesystemvariable {ci} % CItaat
-\definesystemvariable {ck} % Character Kerning
-\definesystemvariable {cl} % kleur (CoLor setup)
-\definesystemvariable {cn} % CollumN
-\definesystemvariable {cm} % CheMical
-\definesystemvariable {co} % COmbinaties
-\definesystemvariable {cp} % CliP
-\definesystemvariable {cr} % kleur (ColoR)
-\definesystemvariable {cs} % kleur (ColorSeparation
-\definesystemvariable {cv} % ConVersie
-\definesystemvariable {cy} % CrYteria
-\definesystemvariable {da} % DAte
-\definesystemvariable {db} % Labels
-\definesystemvariable {dc} % DroppedCaps
-\definesystemvariable {dd} % DoorDefinieren
-\definesystemvariable {de} % DEel
-\definesystemvariable {di} % DIrections
-\definesystemvariable {dl} % DunneLijnen
-\definesystemvariable {dn} % DoorNummeren
-\definesystemvariable {dm} % DefineMeasure
-\definesystemvariable {do} % DefinieerOpmaak
-\definesystemvariable {du} % DUmmy
-\definesystemvariable {ds} % DoorSpringen
-\definesystemvariable {ef} % ExternFiguur
-\definesystemvariable {ec} % EnCoding
-\definesystemvariable {el} % Elements
-\definesystemvariable {en} % ENvironments
-\definesystemvariable {ep} % ExternfiguurPreset
-\definesystemvariable {eq} % EQalign
-\definesystemvariable {er} % external resources
-\definesystemvariable {ex} % ExterneFiguren
-\definesystemvariable {fa} % font feature
-\definesystemvariable {fc} % FramedContent
-\definesystemvariable {fd} % FielD
-\definesystemvariable {fe} % FoxetExtensions
-\definesystemvariable {ff} % FontFile
-\definesystemvariable {fg} % FiGuurmaten
-\definesystemvariable {fi} % FIle
-\definesystemvariable {fl} % Floats
-\definesystemvariable {fm} % ForMules
-\definesystemvariable {fn} % subformulas
-\definesystemvariable {fo} % xml FO
-\definesystemvariable {fp} % FilegroeP
-\definesystemvariable {fq} % Features
-\definesystemvariable {fr} % ForM
-\definesystemvariable {fs} % FileSynonym
-\definesystemvariable {ft} % FonTs
-\definesystemvariable {fu} % FontSolution
-\definesystemvariable {fv} % FontVariant
-\definesystemvariable {fw} % simpleFonts by Wolfgang
-\definesystemvariable {fx} % FoXet
-\definesystemvariable {gr} % GRid
-\definesystemvariable {ha} % HAng
-\definesystemvariable {hs} % HSpace
-\definesystemvariable {ht} % HiddenText
-\definesystemvariable {ia} % Interactie
-\definesystemvariable {ib} % InteractieBalk
-\definesystemvariable {ic} % ICc profiles
-\definesystemvariable {id} % Index
-\definesystemvariable {ig} % ItemGroup
-\definesystemvariable {ih} % InHoudsopgave
-\definesystemvariable {ii} % stelIndexIn
-\definesystemvariable {il} % stelInvulRegelsin
-\definesystemvariable {im} % InMarge
-\definesystemvariable {in} % INspringen
-\definesystemvariable {ip} % InsertPages
-\definesystemvariable {is} % Items
-\definesystemvariable {it} % stelInTerliniein
-\definesystemvariable {iv} % stelInvulLijnenin
-\definesystemvariable {ka} % KAntlijn
-\definesystemvariable {kd} % KaDerteksten
-\definesystemvariable {kj} % KopJes (floats)
-\definesystemvariable {kk} % Kapitalen
-\definesystemvariable {kl} % KoLommen
-\definesystemvariable {km} % KenMerk
-\definesystemvariable {ko} % KOp(pen)
-\definesystemvariable {kp} % KopPelteken
-\definesystemvariable {kr} % KoRps
-\definesystemvariable {ks} % KolomSpan
-\definesystemvariable {kt} % KonTakten
-\definesystemvariable {kw} % KontaktWaarde
-\definesystemvariable {la} % LAnguage
-\definesystemvariable {lb} % LaBels
-\definesystemvariable {ld} % LegenDa
-\definesystemvariable {le} % LinetablE
-\definesystemvariable {lf} % LocalFigures
-\definesystemvariable {lg} % taal (LanGuage)
-\definesystemvariable {li} % LIjst
-\definesystemvariable {lk} % LinK
-\definesystemvariable {ll} % Layers
-\definesystemvariable {lx} % LayerteXt
-\definesystemvariable {ln} % LijNen
-\definesystemvariable {lo} % LOgos
-\definesystemvariable {lt} % LiTeratuur
-\definesystemvariable {ls} % languageScript
-\definesystemvariable {ly} % LaYout
-\definesystemvariable {ma} % MargeAchtergrond
-\definesystemvariable {mb} % MargeBlokken
-\definesystemvariable {md} % MoDule
-\definesystemvariable {me} % MultilingualElement (tags)
-\definesystemvariable {mg} % Metapost paGe
-\definesystemvariable {mh} % MultilingualHead
-\definesystemvariable {mk} % MarKering
-\definesystemvariable {ml} % MultilingualLabel
-\definesystemvariable {mm} % MultilingualMath
-\definesystemvariable {mt} % inline MaTh
-\definesystemvariable {mo} % Math Options
-\definesystemvariable {mp} % MetaPost
-\definesystemvariable {mx} % MatriX
-\definesystemvariable {ng} % parbuilders
-\definesystemvariable {nh} % new heads (structure)
-\definesystemvariable {nn} % structurenumbering
-\definesystemvariable {nm} % Nummering
-\definesystemvariable {np} % NaastPlaatsen
-\definesystemvariable {nr} % Nummeren
-\definesystemvariable {of} % OFfset
-\definesystemvariable {oi} % OmlijndInstellingen
-\definesystemvariable {ol} % OmLijnd
-\definesystemvariable {od} % Omlijnd Defaults (simple)
-\definesystemvariable {on} % ONderstreep
-\definesystemvariable {oo} % OpsOmmingen
-\definesystemvariable {op} % OPsomming
-\definesystemvariable {or} % OtpfilteR
-\definesystemvariable {os} % OffSet
-\definesystemvariable {ot} % OTpsequence
-\definesystemvariable {ov} % OVerlay
-\definesystemvariable {ox} % OffsetBox
-\definesystemvariable {pa} % PAlet
-\definesystemvariable {pb} % PuBlication
-\definesystemvariable {pc} % PageComment
-\definesystemvariable {pe} % PagEhandler
-\definesystemvariable {pf} % ProFiel
-\definesystemvariable {pg} % KoppelPagina
-\definesystemvariable {ph} % ParagrapH
-\definesystemvariable {pl} % PLaats
-\definesystemvariable {pn} % PaginaNummer
-\definesystemvariable {po} % PrOcessor
-\definesystemvariable {pp} % PaPier
-\definesystemvariable {pr} % PRogrammas
-\definesystemvariable {ps} % PoSitioneren
-\definesystemvariable {pt} % PageshifT
-\definesystemvariable {py} % PropertYs
-\definesystemvariable {pv} % PublicationVariable
-\definesystemvariable {ra} % RAise
-\definesystemvariable {rd} % RenDering
-\definesystemvariable {rf} % ReFereren
-\definesystemvariable {rg} % ReGel
-\definesystemvariable {rl} % ReferentieLijst
-\definesystemvariable {rn} % RegelNummer
-\definesystemvariable {ro} % ROteren
-\definesystemvariable {rr} % linenotes
-\definesystemvariable {rs} % RaSters
-\definesystemvariable {rt} % RoosTers
-\definesystemvariable {rv} % ReserVeerfiguur
-\definesystemvariable {rw} % RenderingWindow
-\definesystemvariable {sa} % ScAle
-\definesystemvariable {sb} % SectieBlok
-\definesystemvariable {sc} % SCherm
-\definesystemvariable {sd} % SounD
-\definesystemvariable {se} % SEctie
-\definesystemvariable {sf} % SpeciFics
-\definesystemvariable {sg} % SpacinG
-\definesystemvariable {sh} % ShapeText
-\definesystemvariable {si} % SplIt
-\definesystemvariable {sk} % SectieKop
-\definesystemvariable {sl} % SmalLer
-\definesystemvariable {sm} % SynonieMen
-\definesystemvariable {sn} % SubNummer
-\definesystemvariable {so} % SOrteren
-\definesystemvariable {sp} % SelecteerPapier
-\definesystemvariable {sr} % SpacehandleR
-\definesystemvariable {ss} % Symbool
-\definesystemvariable {st} % STickers
-\definesystemvariable {su} % SetUp
-\definesystemvariable {sv} % SysteemVariabelen
-\definesystemvariable {sw} % SectionWorld
-\definesystemvariable {sx} % Selector
-\definesystemvariable {sy} % SYnchronisatie
-\definesystemvariable {ta} % TAb
-\definesystemvariable {tb} % TekstBlokken
-\definesystemvariable {td} % TextbackgrounDs
-\definesystemvariable {te} % TEmplate
-\definesystemvariable {tf} % TypeFace
-\definesystemvariable {tg} % Tex paGe
-\definesystemvariable {ti} % TabelInstellingen
-\definesystemvariable {tk} % Teksten
-\definesystemvariable {tl} % TekstLijnen
-\definesystemvariable {tm} % TypesynonyM
-\definesystemvariable {tp} % TyPen
-\definesystemvariable {tx} % TeXtflow
-\definesystemvariable {to} % TOlerance
-\definesystemvariable {tr} % TRacer
-\definesystemvariable {ts} % TypeScript
-\definesystemvariable {tt} % TabulaTe
-\definesystemvariable {ty} % TYpe
-\definesystemvariable {uc} % Unicode
-\definesystemvariable {ui} % UItvoer
-\definesystemvariable {ur} % URl
-\definesystemvariable {up} % Utility Program
-\definesystemvariable {va} % VspAce
-\definesystemvariable {ve} % VErsie
-\definesystemvariable {vn} % VoetNoten
-\definesystemvariable {vs} % VSpacing
-\definesystemvariable {vt} % VerTical
-\definesystemvariable {wr} % WitRuimte
-\definesystemvariable {wl} % WordList
-\definesystemvariable {xf} % XML File
-\definesystemvariable {xl} % lxml (mkiv)
-\definesystemvariable {xm} % xml (mkiv)
-\definesystemvariable {xp} % XML Processing
-\definesystemvariable {xy} % schaal
-\definesystemvariable {za} % ZetspiegelAanpassing
-
-%D Next we define some language independant one letter
-%D variables and keywords.
-
-\defineinterfaceconstant {x} {x} % x offset
-\defineinterfaceconstant {y} {y} % y offset
-\defineinterfaceconstant {w} {w} % width
-\defineinterfaceconstant {h} {h} % height
-\defineinterfaceconstant {s} {s} % size
-\defineinterfaceconstant {t} {t} % title
-\defineinterfaceconstant {c} {c} % creator
-\defineinterfaceconstant {e} {e} % extension
-\defineinterfaceconstant {f} {f} % file
-
-\defineinterfaceconstant {a} {a} % kunnen weg
-\defineinterfaceconstant {b} {b} % kunnen weg
-\defineinterfaceconstant {c} {c} % kunnen weg
-\defineinterfaceconstant {d} {d} % kunnen weg
-\defineinterfaceconstant {e} {e} % kunnen weg
-
-\defineinterfaceconstant {s} {s}
-\defineinterfaceconstant {r} {r}
-\defineinterfaceconstant {g} {g}
-\defineinterfaceconstant {b} {b}
-\defineinterfaceconstant {c} {c}
-\defineinterfaceconstant {m} {m}
-\defineinterfaceconstant {y} {y}
-\defineinterfaceconstant {k} {k}
-\defineinterfaceconstant {a} {a} % alternative
-\defineinterfaceconstant {t} {t} % transparency
-\defineinterfaceconstant {p} {p} % percentage
-
-\defineinterfaceconstant {t} {t}
-\defineinterfaceconstant {h} {h}
-\defineinterfaceconstant {b} {b}
-
-\defineinterfaceconstant {rgb} {rgb}
-\defineinterfacevariable {rgb} {rgb}
-
-\defineinterfaceconstant {cmyk} {cmyk}
-\defineinterfacevariable {cmyk} {cmyk}
-
-\defineinterfaceconstant {mp} {mp}
-\defineinterfacevariable {mp} {mp}
-
-\defineinterfacevariable {s} {s}
-
-\defineinterfacevariable {a} {a}
-\defineinterfacevariable {b} {b}
-\defineinterfacevariable {c} {c}
-\defineinterfacevariable {d} {d}
-
-%D Special purpose variables:
-
-\def\v!oddeven#1{\ifodd#1\v!odd\else\v!even\fi}
-
-%D The names of files and their extensions are fixed.
-%D \CONTEXT\ uses as less files as possible. Utility files can
-%D be recognized by the first two characters of the extension:
-%D \type{tu}.
-
-\definefileconstant {utilityfilename} {texutil}
-
-\definefileconstant {blockextension} {tub}
-\definefileconstant {figureextension} {tuf}
-\definefileconstant {inputextension} {tui}
-\definefileconstant {outputextension} {tuo} % tup for previous run
-\definefileconstant {optionextension} {top}
-\definefileconstant {temporaryextension} {tmp}
-\definefileconstant {patternsextension} {pat}
-\definefileconstant {hyphensextension} {hyp}
-\definefileconstant {fontmapextension} {map}
-\definefileconstant {bibextension} {bbl}
-
-%D These files are loaded at start||up. They may contain system
-%D specific setups (or calls to other files), old macro's, to
-%D garantee compatibility and new macro's noy yet present in
-%D the format.
-
-\definefileconstant {errfilename} {cont-err}
-\definefileconstant {sysfilename} {cont-sys}
-\definefileconstant {newfilename} {cont-new}
-\definefileconstant {locfilename} {cont-loc}
-\definefileconstant {expfilename} {cont-exp}
-%definefileconstant {usrfilename} {cont-usr} % .tex
-%definefileconstant {fmtfilename} {cont-fmt} % .tex
-
-%D Handy for typescripts (we could use s! instead:
-
-\definetypescriptconstant {name} {name}
-\definetypescriptconstant {default} {default}
-\definetypescriptconstant {map} {map}
-\definetypescriptconstant {special} {special}
-\definetypescriptconstant {size} {size}
-
-%D The setup files for the language, font, color and special
-%D subsystems have a common prefix. This means that we have at
-%D most three characters for unique filenames.
-
-\definefileconstant {colorprefix} {colo-}
-\definefileconstant {encodingprefix} {enco-}
-\definefileconstant {filterprefix} {filt-}
-\definefileconstant {fontprefix} {font-}
-\definefileconstant {handlingprefix} {hand-}
-\definefileconstant {javascriptprefix} {java-}
-\definefileconstant {languageprefix} {lang-}
-\definefileconstant {mathprefix} {math-}
-\definefileconstant {metapostprefix} {meta-}
-\definefileconstant {regimeprefix} {regi-}
-\definefileconstant {specialprefix} {spec-}
-\definefileconstant {symbolprefix} {symb-}
-\definefileconstant {typeprefix} {type-}
-\definefileconstant {xtagprefix} {xtag-}
-\definefileconstant {propprefix} {prop-}
-\definefileconstant {unicprefix} {unic-}
-\definefileconstant {sortprefix} {sort-}
-\definefileconstant {prettyprefix} {pret-}
-
-\definefileconstant {moduleprefix} {m-}
-\definefileconstant {styleprefix} {s-}
-\definefileconstant {xstyleprefix} {x-}
-\definefileconstant {privateprefix} {p-}
-\definefileconstant {thirdprefix} {t-}
-
-%definefileconstant {beforeprefix} {b-}
-%definefileconstant {afterprefix} {a-}
-
-%D \CONTEXT\ follows different strategies for finding files.
-%D The macros that are responsible for this 'clever' searching
-%D make use of two (very important) path specifiers.
-
-\definefileconstant {pathseparator} {/}
-\definefileconstant {currentpath} {.}
-\definefileconstant {parentpath} {..}
-
-%D The way fonts are defined and called upon is language
-%D independant. We follow the scheme laid down by Knuth in
-%D Plain \TEX. We'll explain their meaning later.
-
-\defineinterfaceconstant {tf} {tf}
-\defineinterfaceconstant {bf} {bf}
-\defineinterfaceconstant {bs} {bs}
-\defineinterfaceconstant {bi} {bi}
-\defineinterfaceconstant {sl} {sl}
-\defineinterfaceconstant {it} {it}
-\defineinterfaceconstant {sc} {sc}
-\defineinterfaceconstant {rm} {rm}
-\defineinterfaceconstant {ss} {ss}
-\defineinterfaceconstant {tt} {tt}
-\defineinterfaceconstant {hw} {hw}
-\defineinterfaceconstant {cg} {cg}
-\defineinterfaceconstant {os} {os}
-\defineinterfaceconstant {mm} {mm}
-\defineinterfaceconstant {i} {i}
-\defineinterfaceconstant {nn} {nn}
-
-\defineinterfaceconstant {x} {x}
-\defineinterfaceconstant {xx} {xx}
-
-\defineinterfaceconstant {em} {em}
-
-\defineinterfaceconstant {mi} {mi}
-\defineinterfaceconstant {sy} {sy}
-\defineinterfaceconstant {ex} {ex}
-\defineinterfaceconstant {mr} {mr}
-
-\defineinterfaceconstant {ma} {ma}
-\defineinterfaceconstant {mb} {mb}
-\defineinterfaceconstant {mc} {mc}
-
-%D For figure inclusion we need:
-
-\defineinterfaceconstant {tif} {tif}
-\defineinterfaceconstant {eps} {eps}
-\defineinterfaceconstant {mps} {mps}
-\defineinterfaceconstant {jpg} {jpg}
-\defineinterfaceconstant {pdf} {pdf}
-\defineinterfaceconstant {png} {png}
-\defineinterfaceconstant {avi} {avi}
-\defineinterfaceconstant {mov} {mov}
-\defineinterfaceconstant {svg} {svg}
-\defineinterfaceconstant {tex} {tex}
-\defineinterfaceconstant {tmp} {tmp}
-\defineinterfaceconstant {cld} {cld}
-
-%D A careful reader will have noticed that in the module
-%D \type{mult-ini} we defined \type{\selectinterface}. We were
-%D not yet able to actually select an interface, because we
-%D still had to define the constants and variables. Now we've
-%D done so, selection is permitted.
-
-\selectinterface
-
-%D Ok, here are some more, because we've got ouselves some
-%D extensions to \CONTEXT.
-
-\definemessageconstant {addresses}
-\definemessageconstant {documents}
-
-\protect
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/norm-alo.mkii b/Master/texmf-dist/tex/context/base/mkii/norm-alo.mkii
deleted file mode 100644
index d359cf7e88f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/norm-alo.mkii
+++ /dev/null
@@ -1,36 +0,0 @@
-%D \module
-%D [ file=norm-alo,
-%D version=2009.03.19,
-%D title=\CONTEXT\ Norm Macros,
-%D subtitle=\ALEPH\ and \OMEGA,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This file will become obsolete!
-
-% omega primitives
-
-\let\textdir = \textdir
-\let\pagedir = \pagedir
-\let\mathdir = \mathdir
-\let\pardir = \pardir
-\let\bodydir = \bodydir
-\let\leftghost = \leftghost
-\let\rightghost = \rightghost
-\let\localleftbox = \localleftbox
-\let\localrightbox = \localrightbox
-\let\localinterlinepenalty = \localinterlinepenalty
-\let\localbrokenpenalty = \localbrokenpenalty
-
-% aleph primitives
-
-\let\boxdir = \boxdir
-\let\pagebottomoffset = \pagebottomoffset
-\let\pagerightoffset = \pagerightoffset
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/norm-ctx.mkii b/Master/texmf-dist/tex/context/base/mkii/norm-ctx.mkii
deleted file mode 100644
index b1a4c7d3593..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/norm-ctx.mkii
+++ /dev/null
@@ -1,16 +0,0 @@
-%D \module
-%D [ file=norm-ctx,
-%D version=2009.03.19,
-%D title=\CONTEXT\ Norm Macros,
-%D subtitle=\ALEPH\ and \OMEGA,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D A few more might end up here (like the weird ones in syst-ini).
-
-\let\normalreqno = \normaleqno
diff --git a/Master/texmf-dist/tex/context/base/mkii/norm-etx.mkii b/Master/texmf-dist/tex/context/base/mkii/norm-etx.mkii
deleted file mode 100644
index bd244e4d1e9..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/norm-etx.mkii
+++ /dev/null
@@ -1,79 +0,0 @@
-%D \module
-%D [ file=norm-etx,
-%D version=2009.03.19,
-%D title=\CONTEXT\ Norm Macros,
-%D subtitle=\ETEX,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% etex primitives
-
-\let \normalbotmarks = \botmarks
-\let \normalclubpenalties = \clubpenalties
-\let \normalcurrentgrouplevel = \currentgrouplevel
-\let \normalcurrentgrouptype = \currentgrouptype
-\let \normalcurrentifbranch = \currentifbranch
-\let \normalcurrentiflevel = \currentiflevel
-\let \normalcurrentiftype = \currentiftype
-\let \normaldetokenize = \detokenize
-\let \normaldimexpr = \dimexpr
-\let \normaldisplaywidowpenalties = \displaywidowpenalties
-\let \normaleTeXVersion = \eTeXVersion
-\let \normaleTeXminorversion = \eTeXminorversion
-\let \normaleTeXrevision = \eTeXrevision
-\let \normaleTeXversion = \eTeXversion
-\let \normaleveryeof = \everyeof
-\let \normalfirstmarks = \firstmarks
-\let \normalfontchardp = \fontchardp
-\let \normalfontcharht = \fontcharht
-\let \normalfontcharic = \fontcharic
-\let \normalfontcharwd = \fontcharwd
-\let \normalglueexpr = \glueexpr
-\let \normalglueshrink = \glueshrink
-\let \normalglueshrinkorder = \glueshrinkorder
-\let \normalgluestretch = \gluestretch
-\let \normalgluestretchorder = \gluestretchorder
-\let \normalgluetomu = \gluetomu
-\let \normalifcsname = \ifcsname
-\let \normalifdefined = \ifdefined
-\let \normaliffontchar = \iffontchar
-\let \normalinteractionmode = \interactionmode
-\let \normalinterlinepenalties = \interlinepenalties
-\let \normallastlinefit = \lastlinefit
-\let \normallastnodetype = \lastnodetype
-\let \normalmarks = \marks
-\let \normalmuexpr = \muexpr
-\let \normalmutoglue = \mutoglue
-\let \normalnumexpr = \numexpr
-\let \normalpagediscards = \pagediscards
-\let \normalparshapedimen = \parshapedimen
-\let \normalparshapeindent = \parshapeindent
-\let \normalparshapelength = \parshapelength
-\let \normalpredisplaydirection = \predisplaydirection
-\let \normalprotected = \protected
-\let \normalreadline = \readline
-\let \normalsavinghyphcodes = \savinghyphcodes
-\let \normalsavingvdiscards = \savingvdiscards
-\let \normalscantokens = \scantokens
-\let \normalshowgroups = \showgroups
-\let \normalshowifs = \showifs
-\let \normalshowtokens = \showtokens
-\let \normalsplitbotmarks = \splitbotmarks
-\let \normalsplitdiscards = \splitdiscards
-\let \normalsplitfirstmarks = \splitfirstmarks
-\let \normaltopmarks = \topmarks
-\let \normaltracingassigns = \tracingassigns
-\let \normaltracinggroups = \tracinggroups
-\let \normaltracingifs = \tracingifs
-\let \normaltracingnesting = \tracingnesting
-\let \normaltracingscantokens = \tracingscantokens
-\let \normalunexpanded = \unexpanded
-\let \normalunless = \unless
-\let \normalwidowpenalties = \widowpenalties
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/norm-ltx.mkii b/Master/texmf-dist/tex/context/base/mkii/norm-ltx.mkii
deleted file mode 100644
index 9a8f7ba576c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/norm-ltx.mkii
+++ /dev/null
@@ -1,177 +0,0 @@
-%D \module
-%D [ file=norm-ltx,
-%D version=2009.03.19,
-%D title=\CONTEXT\ Norm Macros,
-%D subtitle=\LUATEX,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This file will become obsolete!
-
-% luatex primitives (incomplete)
-
-\let \normalUdelcode = \Udelcode
-\let \normalUdelcodenum = \Udelcodenum
-\let \normalUdelimiter = \Udelimiter
-\let \normalUmathaccent = \Umathaccent
-\let \normalUmathaccents = \Umathaccents
-\let \normalUmathaxis = \Umathaxis
-\let \normalUmathbinbinspacing = \Umathbinbinspacing
-\let \normalUmathbinclosespacing = \Umathbinclosespacing
-\let \normalUmathbininnerspacing = \Umathbininnerspacing
-\let \normalUmathbinopenspacing = \Umathbinopenspacing
-\let \normalUmathbinopspacing = \Umathbinopspacing
-\let \normalUmathbinordspacing = \Umathbinordspacing
-\let \normalUmathbinpunctspacing = \Umathbinpunctspacing
-\let \normalUmathbinrelspacing = \Umathbinrelspacing
-\let \normalUmathbotaccent = \Umathbotaccent
-\let \normalUmathchar = \Umathchar
-\let \normalUmathchardef = \Umathchardef
-\let \normalUmathcharnum = \Umathcharnum
-\let \normalUmathclosebinspacing = \Umathclosebinspacing
-\let \normalUmathcloseclosespacing = \Umathcloseclosespacing
-\let \normalUmathcloseinnerspacing = \Umathcloseinnerspacing
-\let \normalUmathcloseopenspacing = \Umathcloseopenspacing
-\let \normalUmathcloseopspacing = \Umathcloseopspacing
-\let \normalUmathcloseordspacing = \Umathcloseordspacing
-\let \normalUmathclosepunctspacing = \Umathclosepunctspacing
-\let \normalUmathcloserelspacing = \Umathcloserelspacing
-\let \normalUmathcode = \Umathcode
-\let \normalUmathcodenum = \Umathcodenum
-\let \normalUmathconnectoroverlapmin = \Umathconnectoroverlapmin
-\let \normalUmathfractiondelsize = \Umathfractiondelsize
-\let \normalUmathfractiondenomdown = \Umathfractiondenomdown
-\let \normalUmathfractiondenomvgap = \Umathfractiondenomvgap
-\let \normalUmathfractionnumup = \Umathfractionnumup
-\let \normalUmathfractionnumvgap = \Umathfractionnumvgap
-\let \normalUmathfractionrule = \Umathfractionrule
-\let \normalUmathinnerbinspacing = \Umathinnerbinspacing
-\let \normalUmathinnerclosespacing = \Umathinnerclosespacing
-\let \normalUmathinnerinnerspacing = \Umathinnerinnerspacing
-\let \normalUmathinneropenspacing = \Umathinneropenspacing
-\let \normalUmathinneropspacing = \Umathinneropspacing
-\let \normalUmathinnerordspacing = \Umathinnerordspacing
-\let \normalUmathinnerpunctspacing = \Umathinnerpunctspacing
-\let \normalUmathinnerrelspacing = \Umathinnerrelspacing
-\let \normalUmathlimitabovebgap = \Umathlimitabovebgap
-\let \normalUmathlimitabovekern = \Umathlimitabovekern
-\let \normalUmathlimitabovevgap = \Umathlimitabovevgap
-\let \normalUmathlimitdownbgap = \Umathlimitdownbgap
-\let \normalUmathlimitdownkern = \Umathlimitdownkern
-\let \normalUmathlimitdownvgap = \Umathlimitdownvgap
-\let \normalUmathopbinspacing = \Umathopbinspacing
-\let \normalUmathopclosespacing = \Umathopclosespacing
-\let \normalUmathopenbinspacing = \Umathopenbinspacing
-\let \normalUmathopenclosespacing = \Umathopenclosespacing
-\let \normalUmathopeninnerspacing = \Umathopeninnerspacing
-\let \normalUmathopenopenspacing = \Umathopenopenspacing
-\let \normalUmathopenopspacing = \Umathopenopspacing
-\let \normalUmathopenordspacing = \Umathopenordspacing
-\let \normalUmathopenpunctspacing = \Umathopenpunctspacing
-\let \normalUmathopenrelspacing = \Umathopenrelspacing
-\let \normalUmathoperatorsize = \Umathoperatorsize
-\let \normalUmathopinnerspacing = \Umathopinnerspacing
-\let \normalUmathopopenspacing = \Umathopopenspacing
-\let \normalUmathopopspacing = \Umathopopspacing
-\let \normalUmathopordspacing = \Umathopordspacing
-\let \normalUmathoppunctspacing = \Umathoppunctspacing
-\let \normalUmathoprelspacing = \Umathoprelspacing
-\let \normalUmathordbinspacing = \Umathordbinspacing
-\let \normalUmathordclosespacing = \Umathordclosespacing
-\let \normalUmathordinnerspacing = \Umathordinnerspacing
-\let \normalUmathordopenspacing = \Umathordopenspacing
-\let \normalUmathordopspacing = \Umathordopspacing
-\let \normalUmathordordspacing = \Umathordordspacing
-\let \normalUmathordpunctspacing = \Umathordpunctspacing
-\let \normalUmathordrelspacing = \Umathordrelspacing
-\let \normalUmathoverbarkern = \Umathoverbarkern
-\let \normalUmathoverbarrule = \Umathoverbarrule
-\let \normalUmathoverbarvgap = \Umathoverbarvgap
-\let \normalUmathoverdelimiterbgap = \Umathoverdelimiterbgap
-\let \normalUmathoverdelimitervgap = \Umathoverdelimitervgap
-\let \normalUmathpunctbinspacing = \Umathpunctbinspacing
-\let \normalUmathpunctclosespacing = \Umathpunctclosespacing
-\let \normalUmathpunctinnerspacing = \Umathpunctinnerspacing
-\let \normalUmathpunctopenspacing = \Umathpunctopenspacing
-\let \normalUmathpunctopspacing = \Umathpunctopspacing
-\let \normalUmathpunctordspacing = \Umathpunctordspacing
-\let \normalUmathpunctpunctspacing = \Umathpunctpunctspacing
-\let \normalUmathpunctrelspacing = \Umathpunctrelspacing
-\let \normalUmathquad = \Umathquad
-\let \normalUmathradicaldegreeafter = \Umathradicaldegreeafter
-\let \normalUmathradicaldegreebefore = \Umathradicaldegreebefore
-\let \normalUmathradicaldegreeraise = \Umathradicaldegreeraise
-\let \normalUmathradicalkern = \Umathradicalkern
-\let \normalUmathradicalrule = \Umathradicalrule
-\let \normalUmathradicalvgap = \Umathradicalvgap
-\let \normalUmathrelbinspacing = \Umathrelbinspacing
-\let \normalUmathrelclosespacing = \Umathrelclosespacing
-\let \normalUmathrelinnerspacing = \Umathrelinnerspacing
-\let \normalUmathrelopenspacing = \Umathrelopenspacing
-\let \normalUmathrelopspacing = \Umathrelopspacing
-\let \normalUmathrelordspacing = \Umathrelordspacing
-\let \normalUmathrelpunctspacing = \Umathrelpunctspacing
-\let \normalUmathrelrelspacing = \Umathrelrelspacing
-\let \normalUmathspaceafterscript = \Umathspaceafterscript
-\let \normalUmathstackdenomdown = \Umathstackdenomdown
-\let \normalUmathstacknumup = \Umathstacknumup
-\let \normalUmathstackvgap = \Umathstackvgap
-\let \normalUmathsubshiftdown = \Umathsubshiftdown
-\let \normalUmathsubshiftdrop = \Umathsubshiftdrop
-\let \normalUmathsubsupshiftdown = \Umathsubsupshiftdown
-\let \normalUmathsubsupvgap = \Umathsubsupvgap
-\let \normalUmathsubtopmax = \Umathsubtopmax
-\let \normalUmathsupbottommin = \Umathsupbottommin
-\let \normalUmathsupshiftdrop = \Umathsupshiftdrop
-\let \normalUmathsupshiftup = \Umathsupshiftup
-\let \normalUmathsupsubbottommax = \Umathsupsubbottommax
-\let \normalUmathunderbarkern = \Umathunderbarkern
-\let \normalUmathunderbarrule = \Umathunderbarrule
-\let \normalUmathunderbarvgap = \Umathunderbarvgap
-\let \normalUmathunderdelimiterbgap = \Umathunderdelimiterbgap
-\let \normalUmathunderdelimitervgap = \Umathunderdelimitervgap
-\let \normalUoverdelimiter = \Uoverdelimiter
-\let \normalUradical = \Uradical
-\let \normalUroot = \Uroot
-\let \normalUunderdelimiter = \Uunderdelimiter
-\let \normalattribute = \attribute
-\let \normalattributedef = \attributedef
-\let \normalcatcodetable = \catcodetable
-\let \normalclearmarks = \clearmarks
-\let \normalcrampeddisplaystyle = \crampeddisplaystyle
-\let \normalcrampedscriptscriptstyle = \crampedscriptscriptstyle
-\let \normalcrampedscriptstyle = \crampedscriptstyle
-\let \normalcrampedtextstyle = \crampedtextstyle
-\let \normalformatname = \formatname
-\let \normalifabsdim = \ifabsdim
-\let \normalifabsnum = \ifabsnum
-\let \normalifprimitive = \ifprimitive
-\let \normalinitcatcodetable = \initcatcodetable
-\let \normallatelua = \latelua
-\let \normalluaescapestring = \luaescapestring
-\let \normalluastartup = \luastartup
-%let \normalluatexdatestamp = \luatexdatestamp
-\let \normalluatexrevision = \luatexrevision
-\let \normalluatexversion = \luatexversion
-\let \normalnokerns = \nokerns
-\let \normalnoligs = \noligs
-\let \normalpageleftoffset = \pageleftoffset
-\let \normalpagetopoffset = \pagetopoffset
-\let \normalpostexhyphenchar = \postexhyphenchar
-\let \normalposthyphenchar = \posthyphenchar
-\let \normalpreexhyphenchar = \preexhyphenchar
-\let \normalprehyphenchar = \prehyphenchar
-\let \normalprimitive = \primitive
-\let \normalsavecatcodetable = \savecatcodetable
-\let \normalscantextokens = \scantextokens
-\let \normalsuppressfontnotfounderror = \suppressfontnotfounderror
-\let \normalsuppressifcsnameerror = \suppressifcsnameerror
-\let \normalsuppresslongerror = \suppresslongerror
-\let \normalsynctex = \synctex
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/norm-ptx.mkii b/Master/texmf-dist/tex/context/base/mkii/norm-ptx.mkii
deleted file mode 100644
index 14a57aeec1b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/norm-ptx.mkii
+++ /dev/null
@@ -1,132 +0,0 @@
-%D \module
-%D [ file=norm-ptx,
-%D version=2009.03.19,
-%D title=\CONTEXT\ Norm Macros,
-%D subtitle=\PDFTEX,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Eventually most of these will be disabled in \MKIV.
-
-\let \normalefcode = \efcode
-\let \normalexpanded = \expanded
-\let \normalifincsname = \ifincsname
-\let \normalifpdfabsdim = \ifpdfabsdim
-\let \normalifpdfabsnum = \ifpdfabsnum
-\let \normalifpdfprimitive = \ifpdfprimitive
-\let \normalleftmarginkern = \leftmarginkern
-\let \normalletterspacefont = \letterspacefont
-\let \normallpcode = \lpcode
-\let \normalpdfadjustspacing = \pdfadjustspacing
-\let \normalpdfannot = \pdfannot
-\let \normalpdfcatalog = \pdfcatalog
-\let \normalpdfcolorstack = \pdfcolorstack
-\let \normalpdfcolorstackinit = \pdfcolorstackinit
-\let \normalpdfcompresslevel = \pdfcompresslevel
-\let \normalpdfcopyfont = \pdfcopyfont
-\let \normalpdfcreationdate = \pdfcreationdate
-\let \normalpdfdecimaldigits = \pdfdecimaldigits
-\let \normalpdfdest = \pdfdest
-\let \normalpdfdestmargin = \pdfdestmargin
-\let \normalpdfdraftmode = \pdfdraftmode
-\let \normalpdfeachlinedepth = \pdfeachlinedepth
-\let \normalpdfeachlineheight = \pdfeachlineheight
-\let \normalpdfendlink = \pdfendlink
-\let \normalpdfendthread = \pdfendthread
-\let \normalpdffirstlineheight = \pdffirstlineheight
-\let \normalpdffontattr = \pdffontattr
-\let \normalpdffontexpand = \pdffontexpand
-\let \normalpdffontname = \pdffontname
-\let \normalpdffontobjnum = \pdffontobjnum
-\let \normalpdffontsize = \pdffontsize
-\let \normalpdfforcepagebox = \pdfforcepagebox % obsolete
-\let \normalpdfgamma = \pdfgamma
-\let \normalpdfgentounicode = \pdfgentounicode
-\let \normalpdfglyphtounicode = \pdfglyphtounicode
-\let \normalpdfhorigin = \pdfhorigin
-\let \normalpdfignoreddimen = \pdfignoreddimen
-\let \normalpdfimageapplygamma = \pdfimageapplygamma
-\let \normalpdfimagegamma = \pdfimagegamma
-\let \normalpdfimagehicolor = \pdfimagehicolor
-\let \normalpdfimageresolution = \pdfimageresolution
-\let \normalpdfincludechars = \pdfincludechars
-\let \normalpdfinclusioncopyfonts = \pdfinclusioncopyfonts
-\let \normalpdfinclusionerrorlevel = \pdfinclusionerrorlevel
-\let \normalpdfinfo = \pdfinfo
-\let \normalpdfinsertht = \pdfinsertht
-\let \normalpdflastannot = \pdflastannot
-\let \normalpdflastlinedepth = \pdflastlinedepth
-\let \normalpdflastlink = \pdflastlink
-\let \normalpdflastobj = \pdflastobj
-\let \normalpdflastxform = \pdflastxform
-\let \normalpdflastximage = \pdflastximage
-\let \normalpdflastximagecolordepth = \pdflastximagecolordepth
-\let \normalpdflastximagepages = \pdflastximagepages
-\let \normalpdflastxpos = \pdflastxpos
-\let \normalpdflastypos = \pdflastypos
-\let \normalpdflinkmargin = \pdflinkmargin
-\let \normalpdfliteral = \pdfliteral
-\let \normalpdfmapfile = \pdfmapfile
-\let \normalpdfmapline = \pdfmapline
-\let \normalpdfminorversion = \pdfminorversion
-\let \normalpdfmovechars = \pdfmovechars % obsolete
-\let \normalpdfnames = \pdfnames
-\let \normalpdfnoligatures = \pdfnoligatures
-\let \normalpdfnormaldeviate = \pdfnormaldeviate
-\let \normalpdfobj = \pdfobj
-\let \normalpdfobjcompresslevel = \pdfobjcompresslevel
-\let \normalpdfoptionalwaysusepdfpagebox = \pdfoptionalwaysusepdfpagebox % obsolete
-\let \normalpdfoptionpdfinclusionerrorlevel = \pdfoptionpdfinclusionerrorlevel % obsolete
-\let \normalpdfoptionpdfminorversion = \pdfoptionpdfminorversion
-\let \normalpdfoutline = \pdfoutline
-\let \normalpdfoutput = \pdfoutput
-\let \normalpdfpageattr = \pdfpageattr
-\let \normalpdfpagebox = \pdfpagebox
-\let \normalpdfpageheight = \pdfpageheight
-\let \normalpdfpageref = \pdfpageref
-\let \normalpdfpageresources = \pdfpageresources
-\let \normalpdfpagesattr = \pdfpagesattr
-\let \normalpdfpagewidth = \pdfpagewidth
-\let \normalpdfpkmode = \pdfpkmode
-\let \normalpdfpkresolution = \pdfpkresolution
-\let \normalpdfprimitive = \pdfprimitive
-\let \normalpdfprotrudechars = \pdfprotrudechars
-\let \normalpdfpxdimen = \pdfpxdimen
-\let \normalpdfrandomseed = \pdfrandomseed
-\let \normalpdfrefobj = \pdfrefobj
-\let \normalpdfrefxform = \pdfrefxform
-\let \normalpdfrefximage = \pdfrefximage
-\let \normalpdfreplacefont = \pdfreplacefont
-\let \normalpdfrestore = \pdfrestore
-\let \normalpdfretval = \pdfretval
-\let \normalpdfsave = \pdfsave
-\let \normalpdfsavepos = \pdfsavepos
-\let \normalpdfsetmatrix = \pdfsetmatrix
-\let \normalpdfsetrandomseed = \pdfsetrandomseed
-\let \normalpdfstartlink = \pdfstartlink
-\let \normalpdfstartthread = \pdfstartthread
-\let \normalpdftexbanner = \pdftexbanner
-\let \normalpdftexrevision = \pdftexrevision
-\let \normalpdftexversion = \pdftexversion
-\let \normalpdfthread = \pdfthread
-\let \normalpdfthreadmargin = \pdfthreadmargin
-\let \normalpdftracingfonts = \pdftracingfonts
-\let \normalpdftrailer = \pdftrailer
-\let \normalpdfuniformdeviate = \pdfuniformdeviate
-\let \normalpdfuniqueresname = \pdfuniqueresname
-\let \normalpdfvorigin = \pdfvorigin
-\let \normalpdfxform = \pdfxform
-\let \normalpdfxformname = \pdfxformname
-\let \normalpdfximage = \pdfximage
-\let \normalpdfximagebbox = \pdfximagebbox
-\let \normalquitvmode = \quitvmode
-\let \normalrightmarginkern = \rightmarginkern
-\let \normalrpcode = \rpcode
-\let \normaltagcode = \tagcode
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/norm-tex.mkii b/Master/texmf-dist/tex/context/base/mkii/norm-tex.mkii
deleted file mode 100644
index 0bd54f71a99..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/norm-tex.mkii
+++ /dev/null
@@ -1,351 +0,0 @@
-%D \module
-%D [ file=norm-etx,
-%D version=2009.03.19,
-%D title=\CONTEXT\ Norm Macros,
-%D subtitle=\TEX,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Since \LUATEX\ can generate these lists internally it started
-%D to make sense to cleanup this \type {\normalstuff} for \MKII\ as
-%D well. The tables are generated with a \LUA\ script.
-
-% tex primitives
-
-% Beware, we already redefined \dump, \outer and \everyjob !
-
-% \normal = \
-% \normal- = \-
-% \normal/ = \/
-\let \normalabove = \above
-\let \normalabovedisplayshortskip = \abovedisplayshortskip
-\let \normalabovedisplayskip = \abovedisplayskip
-\let \normalabovewithdelims = \abovewithdelims
-\let \normalaccent = \accent
-\let \normaladjdemerits = \adjdemerits
-\let \normaladvance = \advance
-\let \normalafterassignment = \afterassignment
-\let \normalaftergroup = \aftergroup
-\let \normalatop = \atop
-\let \normalatopwithdelims = \atopwithdelims
-\let \normalbadness = \badness
-\let \normalbaselineskip = \baselineskip
-\let \normalbatchmode = \batchmode
-\let \normalbegingroup = \begingroup
-\let \normalbelowdisplayshortskip = \belowdisplayshortskip
-\let \normalbelowdisplayskip = \belowdisplayskip
-\let \normalbinoppenalty = \binoppenalty
-\let \normalbotmark = \botmark
-\let \normalbox = \box
-\let \normalboxmaxdepth = \boxmaxdepth
-\let \normalbrokenpenalty = \brokenpenalty
-\let \normalcatcode = \catcode
-\let \normalchar = \char
-\let \normalchardef = \chardef
-\let \normalcleaders = \cleaders
-\let \normalclosein = \closein
-\let \normalcloseout = \closeout
-\let \normalclubpenalty = \clubpenalty
-\let \normalcopy = \copy
-\let \normalcount = \count
-\let \normalcountdef = \countdef
-\let \normalcr = \cr
-\let \normalcrcr = \crcr
-\let \normalcsname = \csname
-\let \normalday = \day
-\let \normaldeadcycles = \deadcycles
-\let \normaldef = \def
-\let \normaldefaulthyphenchar = \defaulthyphenchar
-\let \normaldefaultskewchar = \defaultskewchar
-\let \normaldelcode = \delcode
-\let \normaldelimiter = \delimiter
-\let \normaldelimiterfactor = \delimiterfactor
-\let \normaldelimitershortfall = \delimitershortfall
-\let \normaldimen = \dimen
-\let \normaldimendef = \dimendef
-\let \normaldirectlua = \directlua
-\let \normaldiscretionary = \discretionary
-\let \normaldisplayindent = \displayindent
-\let \normaldisplaylimits = \displaylimits
-\let \normaldisplaystyle = \displaystyle
-\let \normaldisplaywidowpenalty = \displaywidowpenalty
-\let \normaldisplaywidth = \displaywidth
-\let \normaldivide = \divide
-\let \normaldoublehyphendemerits = \doublehyphendemerits
-\let \normaldp = \dp
-% \normaldump = \dump
-\let \normaledef = \edef
-\let \normalelse = \else
-\let \normalemergencystretch = \emergencystretch
-\let \normalend = \end
-\let \normalendcsname = \endcsname
-\let \normalendgroup = \endgroup
-\let \normalendinput = \endinput
-\let \normalendlinechar = \endlinechar
-\let \normaleqno = \eqno
-\let \normalerrhelp = \errhelp
-\let \normalerrmessage = \errmessage
-\let \normalerrorcontextlines = \errorcontextlines
-\let \normalerrorstopmode = \errorstopmode
-\let \normalescapechar = \escapechar
-\let \normaleverycr = \everycr
-\let \normaleverydisplay = \everydisplay
-\let \normaleveryhbox = \everyhbox
-% \normaleveryjob = \everyjob
-\let \normaleverymath = \everymath
-\let \normaleverypar = \everypar
-\let \normaleveryvbox = \everyvbox
-\let \normalexhyphenchar = \exhyphenchar
-\let \normalexhyphenpenalty = \exhyphenpenalty
-\let \normalexpandafter = \expandafter
-\let \normalfam = \fam
-\let \normalfi = \fi
-\let \normalfinalhyphendemerits = \finalhyphendemerits
-\let \normalfirstmark = \firstmark
-\let \normalfloatingpenalty = \floatingpenalty
-\let \normalfont = \font
-\let \normalfontdimen = \fontdimen
-\let \normalfontname = \fontname
-\let \normalfuturelet = \futurelet
-\let \normalgdef = \gdef
-\let \normalglobal = \global
-\let \normalglobaldefs = \globaldefs
-\let \normalhalign = \halign
-\let \normalhangafter = \hangafter
-\let \normalhangindent = \hangindent
-\let \normalhbadness = \hbadness
-\let \normalhbox = \hbox
-\let \normalhfil = \hfil
-\let \normalhfill = \hfill
-\let \normalhfilneg = \hfilneg
-\let \normalhfuzz = \hfuzz
-\let \normalhoffset = \hoffset
-\let \normalholdinginserts = \holdinginserts
-\let \normalhrule = \hrule
-\let \normalhsize = \hsize
-\let \normalhskip = \hskip
-\let \normalhss = \hss
-\let \normalht = \ht
-\let \normalhyphenation = \hyphenation
-\let \normalhyphenchar = \hyphenchar
-\let \normalhyphenpenalty = \hyphenpenalty
-\let \normalif = \if
-\let \normalifcase = \ifcase
-\let \normalifcat = \ifcat
-\let \normalifdim = \ifdim
-\let \normalifeof = \ifeof
-\let \normaliffalse = \iffalse
-\let \normalifhbox = \ifhbox
-\let \normalifhmode = \ifhmode
-\let \normalifinner = \ifinner
-\let \normalifmmode = \ifmmode
-\let \normalifnum = \ifnum
-\let \normalifodd = \ifodd
-\let \normaliftrue = \iftrue
-\let \normalifvbox = \ifvbox
-\let \normalifvmode = \ifvmode
-\let \normalifvoid = \ifvoid
-\let \normalifx = \ifx
-\let \normalignorespaces = \ignorespaces
-\let \normalimmediate = \immediate
-\let \normalindent = \indent
-% \normalinput = \input
-\let \normalinputlineno = \inputlineno
-\let \normalinsert = \insert
-\let \normalinsertpenalties = \insertpenalties
-\let \normalinterlinepenalty = \interlinepenalty
-\let \normaljobname = \jobname
-\let \normalkern = \kern
-\let \normallanguage = \language
-\let \normallastbox = \lastbox
-\let \normallastkern = \lastkern
-\let \normallastpenalty = \lastpenalty
-\let \normallastskip = \lastskip
-\let \normallccode = \lccode
-\let \normalleaders = \leaders
-\let \normalleft = \left
-\let \normallefthyphenmin = \lefthyphenmin
-\let \normalleftskip = \leftskip
-\let \normalleqno = \leqno
-\let \normallet = \let
-\let \normallimits = \limits
-\let \normallinepenalty = \linepenalty
-\let \normallineskip = \lineskip
-\let \normallineskiplimit = \lineskiplimit
-\let \normallong = \long
-\let \normallooseness = \looseness
-\let \normallower = \lower
-\let \normallowercase = \lowercase
-\let \normalmag = \mag
-\let \normalmark = \mark
-\let \normalmathaccent = \mathaccent
-\let \normalmathbin = \mathbin
-\let \normalmathchar = \mathchar
-\let \normalmathchardef = \mathchardef
-\let \normalmathchoice = \mathchoice
-\let \normalmathclose = \mathclose
-\let \normalmathcode = \mathcode
-\let \normalmathinner = \mathinner
-\let \normalmathop = \mathop
-\let \normalmathopen = \mathopen
-\let \normalmathord = \mathord
-\let \normalmathpunct = \mathpunct
-\let \normalmathrel = \mathrel
-\let \normalmathsurround = \mathsurround
-\let \normalmaxdeadcycles = \maxdeadcycles
-\let \normalmaxdepth = \maxdepth
-\let \normalmeaning = \meaning
-\let \normalmedmuskip = \medmuskip
-\let \normalmessage = \message
-\let \normalmiddle = \middle
-\let \normalmkern = \mkern
-\let \normalmonth = \month
-\let \normalmoveleft = \moveleft
-\let \normalmoveright = \moveright
-\let \normalmskip = \mskip
-\let \normalmultiply = \multiply
-\let \normalmuskip = \muskip
-\let \normalmuskipdef = \muskipdef
-\let \normalnewlinechar = \newlinechar
-\let \normalnoalign = \noalign
-\let \normalnoboundary = \noboundary
-\let \normalnoexpand = \noexpand
-\let \normalnoindent = \noindent
-\let \normalnolimits = \nolimits
-\let \normalnonscript = \nonscript
-\let \normalnonstopmode = \nonstopmode
-\let \normalnulldelimiterspace = \nulldelimiterspace
-\let \normalnullfont = \nullfont
-\let \normalnumber = \number
-\let \normalomit = \omit
-\let \normalopenin = \openin
-\let \normalopenout = \openout
-\let \normalor = \or
-% \normalouter = \outer
-\let \normaloutput = \output
-\let \normaloutputpenalty = \outputpenalty
-\let \normalover = \over
-\let \normaloverfullrule = \overfullrule
-\let \normaloverline = \overline
-\let \normaloverwithdelims = \overwithdelims
-\let \normalpagedepth = \pagedepth
-\let \normalpagefilllstretch = \pagefilllstretch
-\let \normalpagefillstretch = \pagefillstretch
-\let \normalpagefilstretch = \pagefilstretch
-\let \normalpagegoal = \pagegoal
-\let \normalpageshrink = \pageshrink
-\let \normalpagestretch = \pagestretch
-\let \normalpagetotal = \pagetotal
-\let \normalpar = \par
-\let \normalparfillskip = \parfillskip
-\let \normalparindent = \parindent
-\let \normalparshape = \parshape
-\let \normalparskip = \parskip
-\let \normalpatterns = \patterns
-\let \normalpausing = \pausing
-\let \normalpenalty = \penalty
-\let \normalpostdisplaypenalty = \postdisplaypenalty
-\let \normalpredisplaypenalty = \predisplaypenalty
-\let \normalpredisplaysize = \predisplaysize
-\let \normalpretolerance = \pretolerance
-\let \normalprevdepth = \prevdepth
-\let \normalprevgraf = \prevgraf
-\let \normalradical = \radical
-\let \normalraise = \raise
-\let \normalread = \read
-\let \normalrelax = \relax
-\let \normalrelpenalty = \relpenalty
-\let \normalright = \right
-\let \normalrighthyphenmin = \righthyphenmin
-\let \normalrightskip = \rightskip
-\let \normalromannumeral = \romannumeral
-\let \normalscriptfont = \scriptfont
-\let \normalscriptscriptfont = \scriptscriptfont
-\let \normalscriptscriptstyle = \scriptscriptstyle
-\let \normalscriptspace = \scriptspace
-\let \normalscriptstyle = \scriptstyle
-\let \normalscrollmode = \scrollmode
-\let \normalsetbox = \setbox
-\let \normalsetlanguage = \setlanguage
-\let \normalsfcode = \sfcode
-\let \normalshipout = \shipout
-\let \normalshow = \show
-\let \normalshowbox = \showbox
-\let \normalshowboxbreadth = \showboxbreadth
-\let \normalshowboxdepth = \showboxdepth
-\let \normalshowlists = \showlists
-\let \normalshowthe = \showthe
-\let \normalskewchar = \skewchar
-\let \normalskip = \skip
-\let \normalskipdef = \skipdef
-\let \normalspacefactor = \spacefactor
-\let \normalspaceskip = \spaceskip
-\let \normalspan = \span
-\let \normalspecial = \special
-\let \normalsplitbotmark = \splitbotmark
-\let \normalsplitfirstmark = \splitfirstmark
-\let \normalsplitmaxdepth = \splitmaxdepth
-\let \normalsplittopskip = \splittopskip
-\let \normalstring = \string
-\let \normaltabskip = \tabskip
-\let \normaltextfont = \textfont
-\let \normaltextstyle = \textstyle
-\let \normalthe = \the
-\let \normalthickmuskip = \thickmuskip
-\let \normalthinmuskip = \thinmuskip
-\let \normaltime = \time
-\let \normaltoks = \toks
-\let \normaltoksdef = \toksdef
-\let \normaltolerance = \tolerance
-\let \normaltopmark = \topmark
-\let \normaltopskip = \topskip
-\let \normaltracingcommands = \tracingcommands
-\let \normaltracinglostchars = \tracinglostchars
-\let \normaltracingmacros = \tracingmacros
-\let \normaltracingonline = \tracingonline
-\let \normaltracingoutput = \tracingoutput
-\let \normaltracingpages = \tracingpages
-\let \normaltracingparagraphs = \tracingparagraphs
-\let \normaltracingrestores = \tracingrestores
-\let \normaltracingstats = \tracingstats
-\let \normaluccode = \uccode
-\let \normaluchyph = \uchyph
-\let \normalunderline = \underline
-\let \normalunhbox = \unhbox
-\let \normalunhcopy = \unhcopy
-\let \normalunkern = \unkern
-\let \normalunpenalty = \unpenalty
-\let \normalunskip = \unskip
-\let \normalunvbox = \unvbox
-\let \normalunvcopy = \unvcopy
-\let \normaluppercase = \uppercase
-\let \normalvadjust = \vadjust
-\let \normalvalign = \valign
-\let \normalvbadness = \vbadness
-\let \normalvbox = \vbox
-\let \normalvcenter = \vcenter
-\let \normalvfil = \vfil
-\let \normalvfill = \vfill
-\let \normalvfilneg = \vfilneg
-\let \normalvfuzz = \vfuzz
-\let \normalvoffset = \voffset
-\let \normalvrule = \vrule
-\let \normalvsize = \vsize
-\let \normalvskip = \vskip
-\let \normalvsplit = \vsplit
-\let \normalvss = \vss
-\let \normalvtop = \vtop
-\let \normalwd = \wd
-\let \normalwidowpenalty = \widowpenalty
-\let \normalwrite = \write
-\let \normalxdef = \xdef
-\let \normalxleaders = \xleaders
-\let \normalxspaceskip = \xspaceskip
-\let \normalyear = \year
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/norm-xtx.mkii b/Master/texmf-dist/tex/context/base/mkii/norm-xtx.mkii
deleted file mode 100644
index 851b90b310c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/norm-xtx.mkii
+++ /dev/null
@@ -1,18 +0,0 @@
-%D \module
-%D [ file=norm-xtx,
-%D version=2009.03.19,
-%D title=\CONTEXT\ Norm Macros,
-%D subtitle=\XETEX,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% xetex primitives
-
-% nothing yet (also defined pdftex primitives)
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/pack-box.mkii b/Master/texmf-dist/tex/context/base/mkii/pack-box.mkii
deleted file mode 100644
index 92845038530..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/pack-box.mkii
+++ /dev/null
@@ -1,956 +0,0 @@
-%D \module
-%D [ file=pack-box,
-%D version=2002.04.12,
-%D title=\CONTEXT\ Packaging Macros,
-%D subtitle=Boxes,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Packaging Macros / Boxes}
-
-%D This module contains all kind of macros for moving content
-%D around. Many macros here come from other modules, but
-%D depencies made it more clear to isolate them.
-
-% \placeornament
-
-\unprotect
-
-% \definelayer[\v!tekst-2][\c!positie=\v!ja]
-% \definelayer[\v!tekst-1][\c!positie=\v!ja]
-% \definelayer[\v!tekst+1][\c!positie=\v!ja]
-% \definelayer[\v!tekst+2][\c!positie=\v!ja]
-
-% we need to set the size, else we get dimensions depending
-% on the content, which in itself is ok, but can lead to loops
-% due to rounding errors (happened in demo-obv)
-
-\definelayer[\v!text-2][\c!position=\v!yes,\c!width=\overlaywidth,\c!height=\overlayheight]
-\definelayer[\v!text-1][\c!position=\v!yes,\c!width=\overlaywidth,\c!height=\overlayheight]
-\definelayer[\v!text+1][\c!position=\v!yes,\c!width=\overlaywidth,\c!height=\overlayheight]
-\definelayer[\v!text+2][\c!position=\v!yes,\c!width=\overlaywidth,\c!height=\overlayheight]
-
-\def\internaltextoverlay#1% will become more generic and installable
- {\startoverlay % i.e. probably an overlay by itself
- {\positionoverlay{\v!text#1}} % see later
- {\composedlayer {\v!text#1}}
- \stopoverlay}
-
-%\def\internaltextoverlay#1%
-% {\hbox to \zeropoint{\positionoverlay{\v!tekst#1}\hss}%
-% \composedlayer{\v!tekst#1}}
-
-% todo: share info, so that tuo will be smaller
-
-\defineoverlay[\v!text-2][\internaltextoverlay{-2}]
-\defineoverlay[\v!text-1][\internaltextoverlay{-1}]
-\defineoverlay[\v!text+1][\internaltextoverlay{+1}]
-\defineoverlay[\v!text+2][\internaltextoverlay{+2}]
-
-% to be documented
-
-\definelayer[anchor]
-
-\def\anchor
- {\dosingleargument\doanchor}
-
-\def\doanchor[#1]%
- {\ifundefined{\??an#1}\@EA\dodoanchor\else\@EA\nonoanchor\fi[#1]}
-
-\def\nonoanchor[#1]%
- {\getvalue{\??an#1}}
-
-\def\dodoanchor[#1]%
- {\dotripleempty\dododoanchor[#1]}
-
-\def\dododoanchor
- {\ifthirdargument
- \expandafter\dodoanchorT
- \else
- \expandafter\dodoanchorS
- \fi}
-
-\def\dodoanchorS[#1][#2][#3]%
- {\dodoanchorT[#1][#2][#2]}
-
-\def\dodoanchorT[#1][#2][#3]%
- {\dowithnextbox
- {\bgroup
- \checktextbackgrounds
- \setbox\scratchbox\null
- \wd\scratchbox\nextboxwd
- \ht\scratchbox\nextboxht
- \dp\scratchbox\nextboxdp
- \setlayer
- [anchor]
- [\c!width=\wd\scratchbox,
- \c!height=\ht\scratchbox,
- \c!offset=\!!zeropoint,
- #2,#3]
- {\setlayer[#1]{\flushnextbox}}%
- \framed
- [#2,
- \c!background=anchor,
- \c!offset=\v!overlay,
- \c!frame=\v!off,
- #3]
- {\box\scratchbox}%
- \egroup}%
- \vbox}
-
-\def\defineanchor
- {\doquadrupleempty\dodefineanchor}
-
-\def\dodefineanchor[#1][#2][#3][#4]%
- {\setvalue{\??an#1}{\dodefinedanchor[#2][#3][#4]}}
-
-\def\dodefinedanchor[#1][#2][#3]%
- {\def\docommand[##1][##2]%
- {\ifsecondargument
- \def\next{\dodoanchorT[#1][#2,##1][#3,##2]}%
- \else\iffirstargument
- \def\next{\dodoanchorT[#1][#2,##1][#2,##1]}%
- \else
- \def\next{\dodoanchorT[#1][#2][#3]}%
- \fi\fi
- \next}%
- \dodoubleempty\docommand}
-
-\def\@@collectorbox{@@collectorbox}
-
-\def\definecollector
- {\dodoubleargument\dodefinecollector}
-
-\def\dodefinecollector[#1][#2]%
- {\ifundefined{\@@collectorbox#1}%
- \expandafter\newbox\csname\@@collectorbox#1\endcsname
- \fi
- \resetcollector[#1]%
- \setupcollector
- [#1]
- [\c!state=\v!start,
- \c!x=\!!zeropoint,\c!y=\!!zeropoint,
- \c!offset=\!!zeropoint,\c!rotation=, % geen 0 !
- \c!hoffset=\!!zeropoint,\c!voffset=\!!zeropoint,
- \c!location=rb,\c!corner=,#2]}
-
-\def\setupcollector
- {\dodoubleargument\dosetupcollector}
-
-\def\dosetupcollector[#1][#2]%
- {\def\docommand##1{\getparameters[\??cb##1][#2]}%
- \processcommalist[#1]\docommand}
-
-\def\setcollector
- {\dodoubleargument\dosetcollector}
-
-\def\dosetcollector[#1][#2]%
- {\bgroup
- \forgetall
- \dontcomplain
- \dowithnextbox
- {\ifundefined{\@@collectorbox#1}%
- \writestatus{collector}{unknown layer #1}%
- \else
- \dodosetcollector[#1][#2]%
- \fi
- \egroup}
- \hbox}
-
-\def\collectorparameter#1{\csname\??cb\currentcollector#1\endcsname}
-
-\def\dodosetcollector[#1][#2]% todo: keep reference point
- {\def\currentcollector{#1}%
- \mathchardef\collectorbox\csname\@@collectorbox#1\endcsname
- \getparameters[\??cb#1][#2]%
- \@@layerxsiz\wd\collectorbox
- \@@layerysiz\ht\collectorbox
- \doifvaluesomething{\??cb#1\c!rotation}
- {\setbox\nextbox\hbox
- {\rotate
- [\c!location=\v!high,
- \c!rotation=\collectorparameter\c!rotation]
- {\flushnextbox}}}%
- \advance\@@layerysiz\dp\collectorbox
- \@@layerxpos\collectorparameter\c!x
- \advance\@@layerxpos\collectorparameter\c!hoffset
- \@@layerypos\collectorparameter\c!y
- \advance\@@layerypos\collectorparameter\c!voffset
- \doifelse\v!middle{\collectorparameter\c!corner}
- {\ifdim\@@layerxsiz>\zeropoint
- \advance\@@layerxpos.5\@@layerxsiz
- \fi
- \ifdim\@@layerysiz>\zeropoint
- \advance\@@layerypos.5\@@layerysiz
- \fi}%
- {\ExpandBothAfter\doifinset\v!bottom{\collectorparameter\c!corner}
- {\ifdim\@@layerysiz>\zeropoint
- \advance\@@layerypos-\@@layerysiz
- \@@layerypos-\@@layerypos
- \fi}%
- \ExpandBothAfter\doifinset\v!right{\collectorparameter\c!corner}
- {\ifdim\@@layerxsiz>\zeropoint
- \advance\@@layerxpos-\@@layerxsiz
- \@@layerxpos-\@@layerxpos
- \fi}}%
- \setbox\nextbox\hbox
- {\alignedbox[\collectorparameter\c!location]\vbox{\flushnextbox}}%
- \boxmaxdepth\zeropoint % really needed, nice example
- \global\advance\boxhdisplacement\@@layerxpos
- \ifdim\boxhdisplacement<\zeropoint
- \global\setbox\collectorbox\hbox
- {\hskip-\boxhdisplacement
- \box\collectorbox}%
- \fi
- \global\advance\boxvdisplacement\@@layerypos
- \ifdim\boxvdisplacement<\zeropoint
- \global\setbox\collectorbox\hbox
- {\lower-\boxvdisplacement
- \box\collectorbox}%
- \fi
- \@@layerxsiz\wd\collectorbox
- \@@layerysiz\ht\collectorbox
- \advance\@@layerysiz\dp\collectorbox
- \global\setbox\collectorbox\hbox
- {\box\collectorbox
- \hskip-\@@layerxsiz
- \hskip\@@layerxpos\relax
- \ifdim\boxhdisplacement<\zeropoint
- \hskip-\boxhdisplacement
- \fi
- \lower\@@layerypos\hbox
- {\ifdim\boxvdisplacement<\zeropoint
- \lower-\boxvdisplacement\flushnextbox
- \else
- \flushnextbox
- \fi}}%
- % combine height and depth into depth only (later flushed as height)
- \global\setbox\collectorbox\hbox
- {\lower\ht\collectorbox\box\collectorbox}%
- % just to be sure
- \ifdim\wd\collectorbox<\@@layerxsiz
- \wd\collectorbox\@@layerxsiz
- \fi}
-
-\def\flushcollector[#1]%
- {\ifundefined{\@@collectorbox#1}%
- \writestatus{collector}{unknown collector #1}%
- \else
- \doifnotvalue{\??cb#1\c!state}\v!stop
- {\vbox
- {\hbox
- {\doifelsevalue{\??cb#1\c!state}\v!repeat
- {\let\next\copy}{\let\next\box}%
- \raise\dp\csname\@@collectorbox#1\endcsname
- \next\csname\@@collectorbox#1\endcsname}}}%
- \fi}
-
-\def\composedcollector#1{\flushcollector[#1]}
-
-\def\resetcollector[#1]%
- {\ifundefined{\@@collectorbox#1}\else
- \global\setbox\csname\@@collectorbox#1\endcsname\emptybox
- \fi}
-
-\def\adaptcollector
- {\dodoubleargument\doadaptcollector}
-
-\def\doadaptcollector[#1][#2]% % a typical case where \global\wd looks better in the code
- {\bgroup
- \def\currentcollector{#1}%
- \mathchardef\collectorbox\csname\@@collectorbox#1\endcsname
- \getparameters
- [\??cb#1][\c!voffset=\zeropoint,\c!hoffset=\zeropoint,#2]%
- \scratchdimen\wd\collectorbox
- \advance\scratchdimen\collectorparameter\c!hoffset
- \global\wd\collectorbox\scratchdimen
- \scratchdimen\ht\collectorbox
- \advance\scratchdimen\collectorparameter\c!voffset
- \global\ht\collectorbox\scratchdimen
- \egroup}
-
-%\definecollector[test]
-%\setcollector[test]
-% [location=rb]
-% {\externalfigure[koe][frame=on,width=3cm]}
-%\setcollector[test]
-% [corner={right,bottom},location={left,top}]
-% {\framed{gans}}
-%\composedcollector{test}
-
-\definecollector
- [caption]
-
-\def\collectedtext
- {\dodoubleempty\docollectedtext}
-
-\def\docollectedtext[#1][#2]#3%
- {\bgroup
- \dowithnextbox
- {\setcollector
- [caption]
- {\flushnextbox}%
- \setcollector
- [caption][#1]
- {\getparameters[\??du][#2]%
- \dosetfontattribute\??du\c!style\setupinterlinespace
- \framed % watch the special setting of kader/overlay
- [\c!frame=\v!overlay,#2]
- {\doattributes\??du\c!style\c!color{#3}}}%
- \composedcollector{caption}%
- \egroup}%
- \hbox}
-
-% \collectedtext
-% [corner={right,bottom},location={left,top}]
-% [background=color,backgroundcolor=white,offset=0pt]
-% {gans}
-% {\externalfigure[koe][width=3cm]}
-%
-% \collectedtext
-% [rotation=90,corner={right,bottom},location={right,top}]
-% [frame=on,offset=0pt]
-% {gans}
-% {\externalfigure[koe][width=3cm]}
-%
-% \collectedtext
-% [rotation=90,corner={left,bottom},location={left,top}]
-% [frame=on,offset=0pt]
-% {gans}
-% {\externalfigure[koe][width=3cm]}
-
-\definelayer
- [caption]
-
-\def\layeredtext
- {\dodoubleempty\dolayeredtext}
-
-\def\dolayeredtext[#1][#2]#3%
- {\bgroup
- \dowithnextbox
- {\!!widtha \nextboxwd
- \!!heighta\nextboxht
- \bgroup % preserve \nextbox
- \setuplayer
- [caption]
- [\c!width=\!!widtha,\c!height=\!!heighta]%
- \setlayer
- [caption]
- [#1]
- {\getparameters[\??du][#2]%
- \dosetfontattribute\??du\c!style\setupinterlinespace
- \framed
- [\c!frame=\v!overlay,,#2]
- {\doattributes\??du\c!style\c!color{#3}}}%
- \egroup
- \framed
- [\c!offset=\v!overlay,
- \c!frame=\v!off,
- \c!background={\v!foreground,caption},
- \c!width=\!!widtha,
- \c!height=\!!heighta]
- {\flushnextbox}%
- \egroup}%
- \hbox}
-
-% \layeredtext
-% [corner={right,bottom},location={left,top}]
-% [background=color,backgroundcolor=white,offset=0pt]
-% {gans}
-% {\externalfigure[koe][width=3cm]}
-%
-% \layeredtext
-% [rotation=90,corner={right,bottom},location={right,top}]
-% [frame=on,offset=0pt]
-% {gans}
-% {\externalfigure[koe][width=3cm]}
-%
-% \layeredtext
-% [rotation=90,corner={left,bottom},location={left,top}]
-% [frame=on,offset=0pt]
-% {gans}
-% {\externalfigure[koe][width=3cm]}
-
-\def\ornamenttext
- {\dodoubleempty\doornamenttext}
-
-\def\doornamenttext[#1][#2]%
- {\bgroup
- \doifassignmentelse{#1}
- {\getparameters[\s!dummy][\c!alternative=\v!a,#1]%
- \doifelse\dummyalternative\v!a
- {\egroup\collectedtext}%
- {\egroup\layeredtext }%
- [#1][#2]}%
- {\egroup\getvalue{#1}}}
-
-\def\defineornament
- {\dotripleempty\dodefineornament}
-
-\def\dodefineornament[#1][#2][#3]%
- {\setvalue{#1}{\doornamenttext[#2][#3]}}
-
-% \defineornament
-% [affiliation]
-% [rotation=90,corner={right,bottom},location={right,top},
-% hoffset=-.25ex]
-% [frame=on,background=color,backgroundcolor=red,offset=0pt]
-%
-% \ruledhbox{\affiliation{gans}{\externalfigure[koe][width=3cm]}}
-%
-% \defineornament
-% [affiliation]
-% [rotation=90,corner={right,bottom},location={right,top},
-% hoffset=-.25ex,alternative=b]
-% [frame=on,background=color,backgroundcolor=red,offset=0pt]
-%
-% \ruledhbox{\affiliation{gans}{\externalfigure[koe][width=3cm]}}
-%
-% \defineornament
-% [affiliation]
-% [rotation=90,corner={right,bottom},location={left,top},
-% hoffset=.25ex,voffset=.25ex,alternative=a]
-% [background=color,style=\ss\tfxx,backgroundcolor=white,offset=0pt]
-%
-% \affiliation{photo}{\externalfigure[molen][width=3cm]}
-%
-% \defineornament
-% [affiliation]
-% [rotation=90,corner={right,bottom},location={left,top},
-% hoffset=.25ex,voffset=.25ex,alternative=b]
-% [background=color,style=\ss\tfxx,backgroundcolor=white,offset=0pt]
-%
-% \affiliation{drawing}{\externalfigure[hakker][width=3cm]}
-
-% pas op: aanpassen aan nieuwe layer hoek ankers en columnset
-
-\newcount\nofbleeds % per pag
-
-\def\setupbleeding
- {\dodoubleempty\getparameters[\??bg]}
-
-\setupbleeding
- [\c!location=l,
- \c!stretch=\v!yes,
- \c!width=3cm,
- \c!height=3cm,
- \c!offset=2mm,
- \c!page=\v!no,
- \c!voffset=\@@bgoffset,
- \c!hoffset=\@@bgoffset]
-
-\def\bleed
- {\dosingleempty\dobleed}
-
-\def\bleedwidth {\the\hsize}%
-\def\bleedheight{\the\vsize}%
-
-\def\dobleed[#1]#2%
- {\hbox\bgroup
- \xdef\bleedwidth {\the\hsize}%
- \xdef\bleedheight{\the\vsize}%
- \global\advance\nofbleeds\plusone
- \getparameters[\??bg][#1]%
- \!!doneafalse % left
- \!!donebfalse % right
- \!!donecfalse % top
- \!!donedfalse % bottom
- % replace this part ! todo: default location
- \processaction
- [\@@bglocation]
- [ t=>\!!donectrue\let\@@bghoffset\!!zeropoint,
- b=>\!!donedtrue\let\@@bghoffset\!!zeropoint,
- l=>\!!doneatrue\let\@@bgvoffset\!!zeropoint,
- r=>\!!donebtrue\let\@@bgvoffset\!!zeropoint,
- bl=>\!!doneatrue\!!donedtrue,
- lb=>\!!doneatrue\!!donedtrue,
- br=>\!!donebtrue\!!donedtrue,
- rb=>\!!donebtrue\!!donedtrue,
- tl=>\!!doneatrue\!!donectrue,
- lt=>\!!doneatrue\!!donectrue,
- tr=>\!!donebtrue\!!donectrue,
- rt=>\!!donebtrue\!!donectrue]%
- \doifelse\@@bgstretch\v!yes\donetrue\donefalse
- \scratchdimen\@@bgwidth
- \edef\currentbgposition {\??bg:\number\nofbleeds}%
- \edef\currentpageposition{page:0}% todo: per page
- \ifdone
- \if!!donea
- \advance\scratchdimen\dimexpr \MPx\currentbgposition-\MPx\currentpageposition\relax
- \else\if!!doneb
- \scratchdimen\dimexpr\paperwidth-\MPx\currentbgposition-\MPx\currentpageposition\relax % not checked
- \fi\fi
- \fi
- \advance\scratchdimen\@@bghoffset
- \xdef\bleedwidth{\the\scratchdimen}%
- \scratchdimen\@@bgheight
- \ifdone
- \if!!donec
- \scratchdimen\dimexpr\paperheight-\MPy\currentbgposition-\MPy\currentpageposition\relax % not checked
- \else\if!!doned
- \advance\scratchdimen\dimexpr \MPy\currentbgposition-\MPy\currentpageposition\relax % not checked
- \fi\fi
- \fi
- \advance\scratchdimen\@@bgvoffset
- \xdef\bleedheight{\the\scratchdimen}%
- \hsize\bleedwidth
- \vsize\bleedheight
- \setbox\scratchbox\hbox{#2}%
- \doif\@@bgpage\v!yes
- {\setbox\scratchbox\topskippedbox{\box\scratchbox}}%
- \setbox\scratchbox\hbox to \@@bgwidth
- {\if!!donea\hss\fi\box\scratchbox\if!!doneb\hss\fi}%
- \if!!doned
- \setbox\scratchbox\hbox
- {\lower\bleedheight\hbox{\raise\@@bgheight\box\scratchbox}}%
- \fi
- \wd\scratchbox\@@bgwidth
- \ht\scratchbox\@@bgheight
- \dp\scratchbox\zeropoint
- \ifdone
- \hpos\currentbgposition{\box\scratchbox}%
- \else
- \box\scratchbox
- \fi
- \egroup}
-
-\setupbleeding[\c!stretch=\v!yes]
-
-\defineexternalfigure[bleed][\c!width=\bleedwidth,\c!height=\bleedheight]
-
-% \placefigure[left]{none}
-% {\bleed[width=5cm,height=3cm,location=lt]{\externalfigure[koe][bleed]}}
-%
-% \input tufte
-%
-% \placefigure[left]{none}
-% {\bleed[width=5cm,height=3cm,location=l]{\externalfigure[koe][bleed]}}
-%
-% \input tufte
-%
-% \placefigure[right]{none}
-% {\bleed[width=5cm,height=3cm,location=r]{\externalfigure[koe][bleed]}}
-%
-% \input tufte
-%
-% \placesomefloat[right]{none}
-% {\bleed[width=5cm,height=3cm,location=rb]{\externalfigure[koe][bleed]}}
-%
-% \input tufte
-%
-% \placefigure
-% [top,none]
-% {} % no caption
-% {\bleed
-% [hoffset=-\backspace,
-% voffset=3mm,
-% width=0cm,
-% height=6\lineheight,
-% page=yes, % correct for topskip
-% location=lt]
-% {\externalfigure[koe][bleed][frame=on]}}
-
-% \setlayerframed[layer id][layer settings][framed setting]{data}
-% \setlayerframed[layer id][combined settings]{data}
-
-\def\setlayerframed
- {\dotripleempty\dosetlayerframed}
-
-\def\dosetlayerframed
- {\ifthirdargument
- \expandafter\dosetlayerframedT
- \else
- \expandafter\dosetlayerframedS
- \fi}
-
-\def\dosetlayerframedT[#1][#2][#3]%
- {\dowithnextbox{\setlayer[#1][#2]{\flushnextbox}}%
- \hbox\framed[#3]}
-
-% \def\dosetlayerframedS[#1][#2][#3]%
-% {\dowithnextbox
-% {\setlayer[#1][\c!width=\nextboxwd,\c!height=\nextboxht,\c!offset=\!!zeropoint,#2]{\flushnextbox}}%
-% \hbox\framed[\c!location=\v!normal,#2]}
-%
-% better (2011-09-06)
-
-\def\dosetlayerframedS[#1][#2][#3]%
- {\dowithnextbox
- {\setlayer[#1][\c!width=\nextboxwd,\c!height=\nextboxht,#2,\c!offset=\!!zeropoint]{\flushnextbox}}%
- \hbox\framed[\c!location=\v!normal,#2]}
-
-\def\setlayertext
- {\dotripleempty\dosetlayertext}
-
-\def\dosetlayertext[#1][#2][#3]%
- {\bgroup
- \getparameters
- [\??lx]
- [\c!align=,
- \c!width=\hsize,
- \c!color=,
- \c!style=,
- #3]%
- \dowithnextboxcontent
- {\forgetall
- \hsize\@@lxwidth
- \expanded{\setupalign[\@@lxalign]}%
- \dosetfontattribute\??lx\c!style}
- {\setlayer[#1][#2]{\strut\color[\@@lxcolor]{\flushnextbox}}%
- \egroup}%
- \vtop}
-
-% \setupbackgrounds
-% [page]
-% [background=pagefigures]
-%
-% \definelayer
-% [pagefigures]
-% [x=-2mm,
-% y=-2mm,
-% width=\paperwidth,
-% height=\paperheight]
-%
-% \definelayerpreset [lefttop] [corner={left,top},location={right,bottom}]
-% \definelayerpreset [righttop] [corner={right,top},location={left,bottom}]
-% \definelayerpreset [leftbottom] [corner={left,bottom},location={right,top}]
-% \definelayerpreset [rightbottom] [corner={right,bottom},location={left,top}]
-% \definelayerpreset [middle] [corner=middle,location=middle]
-%
-% \setlayer[pagefigures][preset=lefttop]
-% \setlayer[pagefigures][preset=righttop]
-% \setlayer[pagefigures][preset=leftbottom]
-% \setlayer[pagefigures][preset=rightbottom]
-
-\definelayerpreset
- [\v!left\v!top]
- [\c!corner={\v!left,\v!top},\c!location={\v!right,\v!bottom}]
-
-\definelayerpreset
- [\v!right\v!top]
- [\c!corner={\v!right,\v!top},\c!location={\v!left,\v!bottom}]
-
-\definelayerpreset
- [\v!left\v!bottom]
- [\c!corner={\v!left,\v!bottom},\c!location={\v!right,\v!top}]
-
-\definelayerpreset
- [\v!right\v!bottom]
- [\c!corner={\v!right,\v!bottom},\c!location={\v!left,\v!top}]
-
-\definelayerpreset
- [\v!middle]
- [\c!corner=\v!middle,\c!location=\v!middle]
-
-% \definelayerpreset
-% [\v!middle\v!top]
-% [\c!location=\v!bottom,\c!hoffset=.5\layerwidth]
-
-% \definelayerpreset
-% [\v!middle\v!bottom]
-% [\c!location=\v!top,\c!hoffset=.5\layerwidth,\c!voffset=\layerheight]
-
-% \definelayerpreset
-% [\v!middle\v!left]
-% [\c!location=\v!right,\c!voffset=.5\layerheight]
-
-% \definelayerpreset
-% [\v!middle\v!right]
-% [\c!location=\v!left,\c!hoffset=\layerwidth,\c!voffset=.5\layerheight]
-
-\definelayerpreset
- [\v!middle\v!top]
- [\c!location=\v!bottom,\c!corner=\v!top,\c!dx=.5\layerwidth]
-
-\definelayerpreset
- [\v!middle\v!bottom]
- [\c!location=\v!top,\c!corner=\v!bottom,\c!dx=.5\layerwidth]
-
-\definelayerpreset
- [\v!middle\v!left]
- [\c!location=\v!right,\c!corner=\v!left,\c!dy=.5\layerheight]
-
-\definelayerpreset
- [\v!middle\v!right]
- [\c!location=\v!left,\c!corner=\v!right,\c!dy=.5\layerheight]
-
-\def\alignedbox
- {\dodoubleempty\doalignedbox[]}
-
-% \def\doalignedbox[#1][#2]%
-% {\bgroup
-% %\let\iftraceboxplacement\iftracelayers % ugly
-% \dowithnextbox
-% {\let\next\middlebox
-% \processaction
-% [#2]
-% [ t=>\let\next\topbox , b=>\let\next\bottombox ,
-% l=>\let\next\leftbox , r=>\let\next\rightbox ,
-% bl=>\let\next\bottomleftbox,br=>\let\next\bottomrightbox,
-% tl=>\let\next\topleftbox ,tr=>\let\next\toprightbox ,
-% lt=>\let\next\lefttopbox ,lb=>\let\next\leftbottombox ,
-% rt=>\let\next\righttopbox ,rb=>\let\next\rightbottombox]%
-% \next{\flushnextbox}%
-% \egroup}#1}
-
-\def\doalignedbox[#1][#2]%
- {\bgroup
- %\let\iftraceboxplacement\iftracelayers % ugly
- \dowithnextbox
- {\serializecommalist[#2]%
- \executeifdefined{\??ab\??ab\serializedcommalist}\middlebox{\flushnextbox}%
- \egroup}#1}
-
-\setvalue{\??ab\??ab }{\middlebox}
-\setvalue{\??ab\??ab\v!middle }{\middlebox}
-\setvalue{\??ab\??ab\v!left }{\leftbox }
-\setvalue{\??ab\??ab\v!right }{\rightbox }
-\setvalue{\??ab\??ab\v!bottom }{\bottombox}
-\setvalue{\??ab\??ab\v!top }{\topbox }
-
-\setvalue{\??ab\??ab\v!middle\v!middle}{\middlebox}
-\setvalue{\??ab\??ab\v!left \v!top }{\lefttopbox}
-\setvalue{\??ab\??ab\v!left \v!bottom}{\leftbottombox}
-\setvalue{\??ab\??ab\v!right \v!top }{\righttopbox}
-\setvalue{\??ab\??ab\v!right \v!bottom}{\rightbottombox}
-\setvalue{\??ab\??ab\v!top \v!left }{\topleftbox}
-\setvalue{\??ab\??ab\v!bottom\v!left }{\bottomleftbox}
-\setvalue{\??ab\??ab\v!top \v!right }{\toprightbox}
-\setvalue{\??ab\??ab\v!bottom\v!right }{\bottomrightbox}
-
-\setvalue{\??ab\??ab c}{\middlebox}
-\setvalue{\??ab\??ab l}{\leftbox}
-\setvalue{\??ab\??ab r}{\rightbox}
-\setvalue{\??ab\??ab b}{\bottombox}
-\setvalue{\??ab\??ab t}{\topbox}
-
-\setvalue{\??ab\??ab lt}{\lefttopbox}
-\setvalue{\??ab\??ab lb}{\leftbottombox}
-\setvalue{\??ab\??ab rt}{\righttopbox}
-\setvalue{\??ab\??ab rb}{\rightbottombox}
-\setvalue{\??ab\??ab tl}{\topleftbox}
-\setvalue{\??ab\??ab bl}{\bottomleftbox}
-\setvalue{\??ab\??ab tr}{\toprightbox}
-\setvalue{\??ab\??ab br}{\bottomrightbox}
-
-\setvalue{\??ab\??ab m}{\middlebox}
-
-% The next ones were desparately needed by Vit Zyka (see
-% \type {supp-box} for definitions).
-
-\setvalue{\??ab\??ab g}{\baselinemiddlebox}
-\setvalue{\??ab\??ab gl}{\baselineleftbox}
-\setvalue{\??ab\??ab gc}{\baselinemiddlebox}
-\setvalue{\??ab\??ab gr}{\baselinerightbox}
-
-\setvalue{\??ab\??ab \v!line }{\baselinemiddlebox} % \v!grid is taken
-\setvalue{\??ab\??ab \v!line\v!left }{\baselineleftbox}
-\setvalue{\??ab\??ab \v!line\v!middle}{\baselinemiddlebox}
-\setvalue{\??ab\??ab \v!line\v!right }{\baselinerightbox}
-
-\unexpanded\def\offsetbox
- {\dodoubleempty\dooffsetbox[]}
-
-% left/right/top/bottomoffset -> dimensions change
-% x/y | method=fixed -> dimensions don't change
-
-\def\dooffsetbox[#1][#2]%
- {\bgroup
- \dowithnextbox
- {\getparameters[\??ox]
- [\c!x=\zeropoint,
- \c!y=\zeropoint,
- \c!width=\nextboxwd,
- \c!height=\nextboxht,
- \c!depth=\nextboxdp,
- \c!location=,
- \c!leftoffset=\zeropoint,
- \c!rightoffset=\zeropoint,
- \c!topoffset=\zeropoint,
- \c!bottomoffset=\zeropoint,
- \c!method=,
- #2]%
- \donefalse
- \ifdim\@@oxleftoffset =\zeropoint\else\donetrue\fi
- \ifdim\@@oxrightoffset=\zeropoint\else\donetrue\fi
- \ifdim\@@oxtopoffset =\zeropoint\else\donetrue\fi
- \ifdim\@@oxbottomoffset =\zeropoint\else\donetrue\fi
- \ifdone
- \doif\@@oxmethod\v!fixed % new
- {\ifdim\@@oxleftoffset=\zeropoint
- \ifdim\@@oxrightoffset=\zeropoint \else
- \scratchdimen-\@@oxrightoffset
- \edef\@@oxx{\the\scratchdimen}%
- \let\@@oxrightoffset\zeropoint
- \fi
- \else
- \let\@@oxx\@@oxleftoffset
- \let\@@oxleftoffset\zeropoint
- \fi
- \ifdim\@@oxtopoffset=\zeropoint
- \ifdim\@@oxbottomoffset=\zeropoint \else
- \scratchdimen-\@@oxbottomoffset
- \edef\@@oxy{\the\scratchdimen}%
- \let\@@oxbottomoffset\zeropoint
- \fi
- \else
- \let\@@oxy\@@oxtopoffset
- \let\@@oxtopoffset\zeropoint
- \fi
- \donefalse}%
- \fi
- \ifdone
- \setbox\nextbox\vbox
- {\forgetall\offinterlineskip
- \vskip\@@oxtopoffset
- \hbox
- {\hskip\@@oxleftoffset
- \flushnextbox
- \hskip\@@oxrightoffset}%
- \vskip\@@oxbottomoffset}%
- \scratchdimen\nextboxht
- \advance\scratchdimen\nextboxdp
- \nextboxht\scratchdimen
- \nextboxdp\zeropoint
- \fi
- \freezedimenmacro\@@oxwidth
- \freezedimenmacro\@@oxheight
- \freezedimenmacro\@@oxdepth
- \setbox\nextbox\hbox
- {\hskip\@@oxx\lower\@@oxy\hbox
- {\doifelsenothing\@@oxlocation
- {\flushnextbox}
- {\alignedbox[\@@oxlocation]\hbox{\flushnextbox}}}}%
- \nextboxwd\@@oxwidth
- \nextboxht\@@oxheight
- \nextboxdp\@@oxdepth
- \flushnextbox
- \egroup}#1}
-
-% \useMPlibrary[pre] \setupbackgrounds[page][background=pagegrid]
-%
-% \placefigure[left,none]{}{\offset[leftoffset=1cm]{\externalfigure[koe][breedte=3cm]}}
-% \input tufte
-% \placefigure[left,none]{}{\offset[rightoffset=1cm]{\externalfigure[koe][breedte=3cm]}}
-% \input tufte
-% \placefigure[left,none]{}{\offset[topoffset=1cm]{\externalfigure[koe][breedte=3cm]}}
-% \input tufte
-% \placefigure[left,none]{}{\offset[bottomoffset=1cm]{\externalfigure[koe][breedte=3cm]}}
-% \input tufte
-
-\unexpanded\def\offset {\dodoubleempty\dooffsetbox [\hbox]} % yes or no
-\unexpanded\def\aligned{\dosingleempty\doalignedbox[\hbox]} % yes or no
-
-%\ruledhbox{\offsetbox[x=-1cm,y=-1cm,location=c]
-% {\framed[width=4cm,height=4cm]{x}}}
-
-\def\dotabbed#1#2#3#4%
- {\dontleavehmode
- \bgroup
- \setbox\scratchbox\hbox{#3}%
- \hbox to \wd\scratchbox{#1#4#2}%
- \egroup}
-
-\unexpanded\def\ltabbed{\dotabbed\relax\hss}
-\unexpanded\def\rtabbed{\dotabbed\hss \relax}
-\unexpanded\def\ctabbed{\dotabbed\hss \hss} \let\mtabbed\ctabbed
-
-% \ltabbed{\romeins{3}}{\romeins{1}} test \endgraf
-% \ltabbed{\romeins{3}}{\romeins{2}} test \endgraf
-% \ltabbed{\romeins{3}}{\romeins{3}} test \endgraf
-%
-% \rtabbed{\romeins{3}}{\romeins{1}} test \endgraf
-% \rtabbed{\romeins{3}}{\romeins{2}} test \endgraf
-% \rtabbed{\romeins{3}}{\romeins{3}} test \endgraf
-%
-% \ctabbed{\romeins{3}}{\romeins{1}} test \endgraf
-% \ctabbed{\romeins{3}}{\romeins{2}} test \endgraf
-% \ctabbed{\romeins{3}}{\romeins{3}} test \endgraf
-
-% alternative, if done, then other name
-%
-% \def\dotabbed#1#2#3#4%
-% {\dontleavehmode
-% \bgroup
-% \scratchdimen\zeropoint
-% \def\docommand##1%
-% {\setbox\scratchbox\hbox{##1}%
-% \ifdim\wd\scratchbox>\scratchdimen
-% \scratchdimen\wd\scratchbox
-% \fi}%
-% \processcommalist[#3]\docommand
-% \hbox to \scratchdimen{#1#4#2}%
-% \egroup}
-%
-% \def\ltabbed{\dotabbed\relax\hss}
-% \def\rtabbed{\dotabbed\hss \relax}
-% \def\ctabbed{\dotabbed\hss \hss} \let\mtabbed\ctabbed
-%
-% \ltabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{10}} test \endgraf
-% \ltabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{15}} test \endgraf
-% \ltabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{2000}} test \endgraf
-%
-% \rtabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{10}} test \endgraf
-% \rtabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{15}} test \endgraf
-% \rtabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{2000}} test \endgraf
-%
-% \ctabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{10}} test \endgraf
-% \ctabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{15}} test \endgraf
-% \ctabbed{\romeins{10},\romeins{2000},\romeins{15}}{\romeins{2000}} test \endgraf
-
-% to be documented
-
-\unexpanded\def\phantombox[#1]%
- {\hbox\bgroup
- \getparameters
- [\??ol]
- [\c!width=\zeropoint,%
- \c!height=\zeropoint,%
- \c!depth=\zeropoint,#1]%
- \setbox\scratchbox\null
- \wd\scratchbox\@@olwidth
- \ht\scratchbox\@@olheight
- \dp\scratchbox\@@oldepth
- \box\scratchbox
- \egroup}
-
-% \backgroundimage{1}{\hsize}{\vsize}{\externalfigure[cow][\c!width=3cm]}
-
-\unexpanded\def\backgroundimage#1#2#3% repeat hsize vsize
- {\bgroup
- \forgetall
- \dowithnextbox
- {\offinterlineskip
- \ifcase#1\relax
- % just one
- \else
- \scratchdimen#2\divide\scratchdimen\nextboxwd\count0\scratchdimen\advance\count0\plusone
- \scratchdimen#3\divide\scratchdimen\nextboxht\count2\scratchdimen\advance\count2\plusone
- % to be considered, probably methods
- \ifcase#1\or % x and y
- \setbox\nextbox\hbox{\dorecurse{\count0}{\copy\nextbox}}%
- \setbox\nextbox\vbox{\dorecurse{\count2}{\copy\nextbox\endgraf}}%
- \or % x
- \setbox\nextbox\hbox{\dorecurse{\count0}{\copy\nextbox}}%
- \or % y
- \setbox\nextbox\vbox{\dorecurse{\count2}{\copy\nextbox\endgraf}}%
- \fi
- \fi
- \ifdim\nextboxwd>#2\relax
- \setbox\nextbox\hbox to #2{\hss\flushnextbox\hss}%
- \setbox\nextbox\hbox{\expanded{\clip[\c!width=#2,\c!height=\the\nextboxht]{\flushnextbox}}}%
- \fi
- \ifdim\nextboxht>#3\relax
- \setbox\nextbox\vbox to #3{\vss\flushnextbox\vss}%
- \setbox\nextbox\hbox{\expanded{\clip[\c!width=\the\nextboxwd,\c!height=#3]{\flushnextbox}}}%
- \fi
- \flushnextbox
- \egroup}%
- \hbox}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/pack-lyr.mkii b/Master/texmf-dist/tex/context/base/mkii/pack-lyr.mkii
deleted file mode 100644
index 1b0c0fd63f2..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/pack-lyr.mkii
+++ /dev/null
@@ -1,755 +0,0 @@
-%D \module
-%D [ file=pack-lyr,
-%D version=2000.10.20,
-%D title=\CONTEXT\ Packaging Macros,
-%D subtitle=Layers,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Packaging Macros / Layers}
-
-%D This module is now etex dependent.
-
-% todo : first / last / next / +... => page key
-% test on left/right box when no doublesided option given
-% use \ifcsname instead of doifvalue
-
-\unprotect
-
-% When being backgrounds layers get the background offset
-% displacement. Should be an option, on by default
-% (compatibility).
-
-% positie=forceer == ja maar dan ook in status=herhaal
-
-%D The layering mechanism implemented here is independent of
-%D the output routine, but future extensions may depend on a
-%D more close cooperation.
-
-%D First we overload a macro from \type {core-rul}. From now on
-%D we accept a (optional) argument: the specific layer it
-%D will go in. This means that we can move an overlay from one
-%D background to the other using the dimensions of the parent.
-
-%D ! ! ! ! to be documented ! ! ! !
-
-\ifx\undefined\defineoverlay \message{loaded to early} \wait \fi
-
-\def\defineoverlay
- {\dotripleempty\dodefineoverlay}
-
-\def\dodefineoverlay[#1][#2][#3]% overlay [layer] content
- {\ifthirdargument
- \writestatus{BEWARE}{This (overlay definition) has changed!}% temp
- \def\docommand##1{\setvalue{\??ov##1}{\setlayer[#2]{\executedefinedoverlay{##1}{#3}}}}
- \else
- \def\docommand##1{\setvalue{\??ov##1}{\executedefinedoverlay{##1}{#2}}}%
- \fi
- \processcommalist[#1]\docommand}
-
-%D When tracing is turned on, a couple of boxes will
-%D show up as well as the reference point.
-
-\newif\iftracelayers % \tracelayerstrue
-
-%D This handy constant saved some string memory.
-
-\def\@@layerbox{@@layerbox}
-
-%D \macros
-%D {definelayer}
-%D
-%D Each layer gets its own (global) box. This also means that
-%D the data that goes into a layer, is typeset immediately.
-%D Each layer automatically gets an associated overlay,
-%D which can be used in any background assignment.
-
-% todo : links/rechts
-
-\def\definelayer
- {\dodoubleargument\dodefinelayer}
-
-\def\dodefinelayer[#1][#2]% \zeropoint ipv \!!zeropoint
- {\setuplayer
- [#1]
- [\c!doublesided=,\c!preset=,
- \c!state=\v!start,\c!direction=\v!normal,\c!option=,
- \c!x=\zeropoint,\c!y=\zeropoint,\c!position=\v!no,
- \c!line=0,\c!column=0,
- \c!width=\nextboxwd,\c!height=\nextboxht,
- \c!offset=\zeropoint,\c!rotation=, % geen 0 !
- \c!hoffset=\zeropoint,\c!voffset=\zeropoint,
- \c!dx=\zeropoint,\c!dy=\zeropoint,
- \c!location=rb,\c!position=\v!no,\c!page=,
- \c!method=\v!overlay,
- \c!sx=1,\c!sy=1,\c!corner=,#2]%
- \doifvalue{\??ll#1\c!doublesided}\v!yes
- {\dopresetlayerbox{\v!left #1}%
- \dopresetlayerbox{\v!right#1}}%
- \dopresetlayerbox{#1}%
- \defineoverlay[#1][\composedlayer{#1}]}
-
-\def\dopresetlayerbox#1%
- {\ifundefined{\@@layerbox#1}%
- \expandafter\newbox\csname\@@layerbox#1\endcsname
- \else
- \resetlayer[#1]%
- \fi}
-
-%D \macros
-%D {setuplayer}
-%D
-%D After a layer is defined, you can change its
-%D characteristics.
-
-\def\setuplayer
- {\dodoubleargument\dosetuplayer}
-
-\def\dosetuplayer[#1][#2]%
- {\def\docommand##1{\getparameters[\??ll##1][#2]}%
- \processcommalist[#1]\docommand}
-
-%D \macros
-%D {setlayer}
-%D
-%D Data is moved into a layer with the following macro. When
-%D \type {position} is set, relative positioning is used, with
-%D the current point as reference point. Otherwise the topleft
-%D corner is used as reference point.
-%D
-%D \starttyping
-%D \setlayer [identifier] [optional parameters] {data}
-%D \stoptyping
-
-\newcount\currentlayerdata
-
-\let\currentlayerwidth \!!zeropoint
-\let\currentlayerheight\!!zeropoint
-
-\def\setcurrentlayerdimensions
- {\dodoubleempty\dosetcurrentlayerdimensions}
-
-\def\dosetcurrentlayerdimensions[#1][#2]% name left|right
- {\edef\currentlayerwidth {\thelayerwidth {#2#1}}%
- \edef\currentlayerheight{\thelayerheight{#2#1}}}
-
-\def\thelayerwidth #1{\the\wd\executeifdefined{\@@layerbox#1}\emptybox}
-\def\thelayerheight#1{\the\ht\executeifdefined{\@@layerbox#1}\emptybox}
-
-\def\setlayer
- {\dotripleempty\dosetlayer}
-
-\def\dosetlayer[#1][#2][#3]% #4 == box do \fi is ok
- {\doifelsevalue{\??ll#1\c!state}\v!stop
- {\dowithnextbox\donothing\hbox}
- {\ifthirdargument
- \dodosetlayer[#1][#2][#3]%
- \else
- \doifassignmentelse{#2}
- {\dodosetlayer[#1][][#2]}%
- {\dodosetlayer[#1][#2][]}%
- \fi}}
-
-\def\dodosetlayer[#1][#2][#3]% #2 = links/rechts
- {\bgroup
- \recalculatebackgrounds
- \recalculatelogos
- \global\advance\currentlayerdata\plusone
- \forgetall
- \dontcomplain
- \doifvalue{\??ll#1\c!option}\v!test\tracelayerstrue
- \iftracelayers\traceboxplacementtrue\fi
- \dowithnextbox % sneller als aparte macro
- {\ifcsname\@@layerbox#1\endcsname % nb: odd/even discard, left/right not
- \edef\@@layerloc{#2}%
- \ifx\@@layerloc\v!even
- \ifodd\realpageno
- % discard nextbox
- \else
- \dododosetlayer[#1][\v!left][#3]%
- \fi
- \else\ifx\@@layerloc\v!odd
- \ifodd\realpageno
- \dododosetlayer[#1][\v!right][#3]%
- %\else
- % discard nextbox
- \fi
- \else
- \dododosetlayer[#1][#2][#3]%
- \fi\fi
- \else
- \writestatus{layer}{unknown layer #1}%
- \fi
- \egroup}%
- \hbox}
-
-\newbox\layerbox
-
-\newdimen\@@layerxsiz
-\newdimen\@@layerysiz
-\newdimen\@@layerxoff
-\newdimen\@@layeryoff
-\newdimen\@@layerxpos
-\newdimen\@@layerypos
-
-\let\lastlayerxpos\!!zeropoint
-\let\lastlayerypos\!!zeropoint
-\let\lastlayerwd \!!zeropoint
-\let\lastlayerht \!!zeropoint
-\let\lastlayerdp \!!zeropoint
-
-% todo left/right
-
-\def\setlastlayerpos#1%
- {\edef\layerpage{\MPp{lyr:\the\currentlayerdata}}%
- \xdef\lastlayerxpos{\the\dimexpr-\MPx{lyr:#1:\layerpage}+\MPx{lyr:\the\currentlayerdata}\relax}%
- \xdef\lastlayerypos{\the\dimexpr \MPy{lyr:#1:\layerpage}-\MPy{lyr:\the\currentlayerdata}\relax}}
-
-\def\definelayerpreset
- {\dodoubleargument\dodefinelayerpreset}
-
-% \def\dodefinelayerpreset[#1][#2]%
-% {\setvalue{\??ll\??ll#1}{\dopresetlayer{#2}}}
-%
-% more fun: \definelayerpreset[whatever][lefttop]
-
-\def\dodefinelayerpreset[#1][#2]%
- {\doifassignmentelse{#2}
- {\setvalue{\??ll\??ll#1}{\dopresetlayer{#2}}}
- {\setvalue{\??ll\??ll#1}{\getvalue{\??ll\??ll#2}}}}
-
-\def\dopresetlayer#1#2#3% #1=list #2=tag #3=list
- {\getparameters[\??ll#2][#1,#3]}
-
-\letempty\currentlayer
-
-\def\layerparameter#1{\csname\??ll\currentlayer#1\endcsname}
-
-\newdimen\layerwidth
-\newdimen\layerheight
-
-\chardef\@@lacome=1 % LAyerCOnstructionMEthod / temp, will be default
-
-\def\dododosetlayer[#1][#2][#3]% will be sped up
- {% we use the global width, never change this
- \def\currentlayer{#1}%
- \@@layerxsiz\layerparameter\c!width
- \@@layerysiz\layerparameter\c!height
- \layerwidth \@@layerxsiz
- \layerheight\@@layerysiz
- % preroll
- \getparameters[\??ll\currentlayer][#3]%
- % presets and real roll
-% maybe todo:
-% \doif{\layerparameter\c!method}\v!fit
-% {\@@layerxsiz\thelayerwidth \currentlayer
-% \@@layerysiz\thelayerheight\currentlayer
-% \layerwidth \@@layerxsiz
-% \layerheight\@@layerysiz
-% }%
- % etc
- \executeifdefined{\??ll\??ll\layerparameter\c!preset}\gobbletwoarguments\currentlayer{#3}%
- % that was real slow
- \doif{\layerparameter\c!position}\v!overlay % slow, use \dosetvalue instead
- {\getparameters[\??ll\currentlayer][\c!width=\zeropoint,\c!height=\zeropoint,\c!position=\v!yes]}%
- \doifsomething{\layerparameter\c!rotation}
- {\setbox\nextbox\hbox
- {\rotate % to be checked with new rotation
- [\c!location=\v!high,\c!rotation=\layerparameter\c!rotation]
- {\flushnextbox}}}%
- % no, not local
- % \@@layerxsiz\layerparameter\c!width
- % \@@layerysiz\layerparameter\c!height
- % never change that
- \@@layerxpos\layerparameter\c!x
- \@@layerypos\layerparameter\c!y
- \doifelse{\layerparameter\c!hoffset}\v!max
- {\@@layerxoff\@@layerxsiz}{\@@layerxoff\layerparameter\c!hoffset}%
- \doifelse{\layerparameter\c!voffset}\v!max
- {\@@layeryoff\@@layerysiz}{\@@layeryoff\layerparameter\c!voffset}%
- % dx/dy are internal context ones and can be used in preset
- \advance\@@layerxoff\dimexpr\layerparameter\c!offset+\layerparameter\c!dx\relax
- \advance\@@layeryoff\dimexpr\layerparameter\c!offset+\layerparameter\c!dy\relax
- \@@layerxpos\layerparameter\c!sx\@@layerxpos
- \@@layerypos\layerparameter\c!sy\@@layerypos
- \@@layerxoff\layerparameter\c!sx\@@layerxoff
- \@@layeryoff\layerparameter\c!sy\@@layeryoff
- \doifelse{\layerparameter\c!position}\v!yes % combine ^
- {\setlastlayerpos{#2\currentlayer}% todo l/r %%%%%%%%%%%%
- \@@layerxpos\lastlayerxpos
- \@@layerypos\lastlayerypos
- \letgvalue{\??ll\currentlayer\layerpage\c!position}\v!yes
- \letgvalue{\??ll\currentlayer\c!state}\v!start % needed ?
- \setbox\layerbox\vbox to \@@layerysiz
- {\hbox to \@@layerxsiz{\xypos{lyr:\the\currentlayerdata}\hss}\vss}}
- {\setbox\layerbox\emptybox
- \globallet\lastlayerxpos\!!zeropoint
- \globallet\lastlayerypos\!!zeropoint
- \ExpandBothAfter\doifinset\v!bottom{\layerparameter\c!corner}
- {\ifnum\layerparameter\c!line=\zerocount\else % can be < 0
- \setevalue{\??ll\currentlayer\c!line}%
- {\the\numexpr-\layerparameter\c!line+\layoutlines+\plusone\relax}%
- \fi
- \ifdim\@@layerysiz>\zeropoint
- \advance\@@layerypos-\@@layerysiz
- \@@layerypos-\@@layerypos
- \@@layeryoff-\@@layeryoff
- \fi}%
- \ExpandBothAfter\doifinset\v!right{\layerparameter\c!corner}
- {\ifnum\layerparameter\c!column=\zerocount\else % can be < 0
- \setevalue{\??ll\currentlayer\c!column}%
- {\the\numexpr-\layerparameter\c!column+\layoutcolumns+\plusone\relax}%
- \fi
- \ifdim\@@layerxsiz>\zeropoint
- \advance\@@layerxpos-\@@layerxsiz
- \@@layerxpos-\@@layerxpos
- \@@layerxoff-\@@layerxoff
- \fi}%
- \ExpandBothAfter\doif\v!middle{\layerparameter\c!corner}
- {\ifdim\@@layerxsiz>\zeropoint \advance\@@layerxpos.5\@@layerxsiz \fi
- \ifdim\@@layerysiz>\zeropoint \advance\@@layerypos.5\@@layerysiz \fi}%
- \edef\layerpage{\layerparameter\c!page}}%
- \doifsomething\layerpage
- {\edef\layerpage{:\layerpage}%
- \doifundefined{\@@layerbox#2\currentlayer\layerpage}
- {\global\expandafter\newbox\csname\@@layerbox#2\currentlayer\layerpage\endcsname}}%
- \dontcomplain % more comfortable
- \mathchardef\layerpagebox\csname\@@layerbox#2\currentlayer\layerpage\endcsname
- \ifvoid\layerpagebox
- \gsetboxllx\layerpagebox\zeropoint
- \gsetboxlly\layerpagebox\zeropoint
- \fi
- \global\setbox\layerpagebox\vbox %to \layerparameter\c!height % new, otherwise no negative y possible
- {\offinterlineskip
- %postpone, to after nextboxwd correction % \hsize\layerparameter\c!width % new, keep box small
- %\ifvoid\csname\@@layerbox\currentlayer\layerpage\endcsname\else % why not #2#1
- \ifvoid\layerpagebox
- \let\lastlayerwidth \zeropoint
- \let\lastlayerheight\zeropoint
- \else
- \edef\lastlayerwidth {\the\wd\layerpagebox}%
- \edef\lastlayerheight{\the\ht\layerpagebox}%
- \ht\layerpagebox\zeropoint
- \dp\layerpagebox\zeropoint
- \wd\layerpagebox\zeropoint
- \doifnot{\layerparameter\c!direction}\v!reverse{\box\layerpagebox}%
- \fi
- % don't move
- \xdef\lastlayerwd{\the\nextboxwd}%
- \xdef\lastlayerht{\the\nextboxht}% % not entirely ok when grid !
- \xdef\lastlayerdp{\the\nextboxdp}% % not entirely ok when grid !
- % this code
- \doifelse{\layerparameter\c!location}\v!grid\donetrue\donefalse
- \ifdone
- \nextboxht\strutheight
- \nextboxdp\strutdepth
- \else
- \setbox\nextbox\hbox{\alignedbox[\layerparameter\c!location]\vbox{\flushnextbox}}%
- \fi
- \ifnum\layerparameter\c!line=\zerocount\else % no \ifcase, can be negative
- \advance\@@layerypos\dimexpr\layerparameter\c!line\lineheight+\topskip-\lineheight-\nextboxht\relax
- \fi
- \ifnum\layerparameter\c!column=\zerocount\else % no \ifcase, can be negative
- \advance\@@layerxpos\layoutcolumnoffset{\layerparameter\c!column}%
- \fi
- \ifdone
- \setbox\nextbox\hbox{\alignedbox[rb]\vbox{\flushnextbox}}%
- \fi
- % ll registration
- \scratchdimen\@@layerxpos
- \advance\scratchdimen\@@layerxoff
- \ifdim\scratchdimen<\getboxllx\layerpagebox
- \gsetboxllx\layerpagebox\scratchdimen
- \fi
- \ifcase\@@lacome\or % this test will become obsolete
- \advance\scratchdimen\nextboxwd
- \nextboxwd\ifdim\scratchdimen>\lastlayerwidth \scratchdimen \else \lastlayerwidth \fi
- \fi
- \scratchdimen\@@layerypos
- \advance\scratchdimen\@@layeryoff
- \ifdim\scratchdimen<\getboxlly\layerpagebox
- \gsetboxlly\layerpagebox\scratchdimen
- \fi
- % ll compensation
- \ifcase\@@lacome\or % this test will become obsolete
- \advance\scratchdimen\dimexpr\nextboxht+\nextboxdp\relax
- \nextboxht\ifdim\scratchdimen>\lastlayerheight \scratchdimen \else \lastlayerheight \fi
- \nextboxdp\zeropoint
- \fi
- % placement
- \hsize\layerparameter\c!width % new, keep box small
- \vbox to \layerparameter\c!height \bgroup
- \smashbox\nextbox
- \vskip\dimexpr\@@layerypos+\@@layeryoff\relax
- \hskip\dimexpr\@@layerxpos+\@@layerxoff\relax
- \flushnextbox
- \ifvoid\layerpagebox
- % already flushed
- \else
- % the reverse case % check !
- \vskip-\dimexpr\@@layerypos+\@@layeryoff\relax
- \box\layerpagebox
- \fi
- \egroup}%
- % when position is true, the layerbox holds the compensation and needs
- % to be placed; never change this !
- \ifvoid\layerbox\else\box\layerbox\fi}
-
-%D Given the task to be accomplished, the previous macro is
-%D not even that complicated. It mainly comes down to skipping
-%D to the right place and placing a box on top of or below the
-%D existing content. In the case of position tracking, another
-%D reference point is chosen.
-
-%D \macros
-%D {doifelselayerdata}
-%D
-
-\def\doifelselayerdata#1%
- {\ifundefined{\@@layerbox#1}%
- \@EA\secondoftwoarguments
- \else\ifvoid\csname\@@layerbox#1\endcsname
- \@EAEAEA\secondoftwoarguments
- \else
- \@EAEAEA\firstoftwoarguments
- \fi\fi}
-
-%D \macros
-%D {flushlayer}
-%D
-%D When we flush a layer, we flush both the main one and the
-%D page dependent one (when defined). This feature is more
-%D efficient in \ETEX\ since there testing for an undefined
-%D macro does not takes hash space.
-
-% todo: setups before flush, handy hook
-
-\unexpanded\def\flushlayer[#1]%
- {\doifelsevalue{\??ll#1\c!state}\v!next
- {\global\letvalue{\??ll#1\c!state}\v!start} % dangerous, stack-built-up
- {\doifelsevalue{\??ll#1\c!state}\v!continue
- {\global\letvalue{\??ll#1\c!state}\v!repeat} % dangerous, stack-built-up
- {\doifelsevalue{\??ll#1\c!doublesided}\v!yes
- {\doifundefinedelse{\@@layerbox#1}%
- {\dodoflushlayerA[#1]}
- {\doifbothsidesoverruled
- {\dodoflushlayerB\v!left [#1]}% left
- {\dodoflushlayerB\v!right[#1]}% right
- {\dodoflushlayerB\v!left [#1]}}}% left
- {\dodoflushlayerA[#1]}}}}
-
-\def\dodoflushlayerA[#1]%
- {\doifnotvalue{\??ll#1\c!state}\v!stop
- {\startoverlay
- {\dodoflushlayer1{#1}{#1}}
- {\dodoflushlayer0{#1}{#1:\realfolio}}
- \stopoverlay}}
-
-\def\dodoflushlayerB#1[#2]%
- {\doifnotvalue{\??ll#2\c!state}\v!stop
- {\startoverlay
- {\dodoflushlayer1{#2}{#2}}
- {\dodoflushlayer0{#2}{#2:\realfolio}}
- {\dodoflushlayer1{#2}{#1#2}}
- {\dodoflushlayer0{#2}{#1#2:\realfolio}}
- \stopoverlay}}
-
-\def\dodoflushlayer#1#2#3%
- {\ifundefined{\@@layerbox#3}%
- \ifcase#1\else\writestatus{layer}{unknown layer #3}\fi
- \else
- \bgroup
- \forgetall
- \offinterlineskip
- % needed because we need to handle method
- \executeifdefined{\??ll\??ll\getvalue{\??ll#2\c!preset}}\gobbletwoarguments{#2}{}%
- %
- \doifvalue{\??ll#2\c!option}\v!test\tracelayerstrue
- \iftracelayers\traceboxplacementtrue\fi
- \!!doneafalse
- \!!donebfalse
- \doifvalue{\??ll#2\c!method}\v!overlay\!!doneatrue
- \doifvalue{\??ll#2\c!method}\v!fit\!!donebtrue
- \!!donectrue
- \ifcase#1\else
- \doifnotvalue{\??ll#2\c!position}\v!yes
- {\doifvalue{\??ll#2\c!repeat}\v!yes\!!donecfalse
- \doifvalue{\??ll#2\c!state}\v!repeat\!!donecfalse}%
- \fi
- \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
- \setbox\nextbox \if!!doneb
-% \vbox
-% {\scratchdimen\getboxlly\layerbox
-% \vskip-\scratchdimen
-% \scratchdimen\getboxllx\layerbox
-% \hskip-\scratchdimen
-% \advance\scratchdimen-\wd\layerbox
-% \hsize-\scratchdimen
-% \if!!donec\box\else\copy\fi\layerbox}%
- \vbox
- {\vskip-\getboxlly\layerbox
- \hskip-\getboxllx\layerbox
- \hsize-\dimexpr\getboxllx\layerbox-\wd\layerbox\relax
- \if!!donec\box\else\copy\fi\layerbox}%
- \else
- \if!!donec\box\else\copy\fi\layerbox % sorry for the delay due to copying
- \fi
- % todo: method=offset => overlayoffset right/down (handy for backgrounds with offset)
- \iftracelayers \ruledvbox \else \vbox \fi \if!!donea to \overlayheight \fi
- {\hbox \if!!donea to \overlaywidth \fi
- {% klopt dit? #3 en niet #2 ?
- \doifvalue{\??ll#3\realfolio\c!position}\v!yes{\xypos{lyr:#3:\realfolio}}%
- \doifoverlayelse{#3}
- {\box\nextbox}
- {\startlayoutcomponent{l:#3}{layer #3}\box\nextbox\stoplayoutcomponent}%
- \hss}%
- \vss}%
- \if!!donec
- \gsetboxllx\layerbox\zeropoint
- \gsetboxlly\layerbox\zeropoint
- \fi
- \egroup
- \fi}
-
-% \definelayer[test][method=fit] \setupcolors[state=start] \tracelayerstrue
-%
-% \framed[framecolor=red,offset=overlay]{\setlayer[test]{aa}\setlayer[test][x=10pt]{g}\flushlayer[test]}
-% \framed[framecolor=red,offset=overlay]{\setlayer[test]{aa}\setlayer[test][x=-10pt]{bb}\flushlayer[test]}
-% \framed[framecolor=red,offset=overlay]{\setlayer[test][x=-20pt]{cccccc}\flushlayer[test]}
-% \framed[framecolor=red,offset=overlay]{\setlayer[test]{dd}\setlayer[test][x=-20pt,y=-3pt]{eeeeee}\flushlayer[test]}
-
-%D \macros
-%D {composedlayer,placelayer,tightlayer}
-%D
-%D This is a handy shortcut, which saves a couple of braces
-%D when we use it as parameter. This name also suits better
-%D to other layering commands.
-
-\def\composedlayer#1{\flushlayer[#1]}
-
-\let\placelayer\flushlayer
-
-\def\tightlayer[#1]%
- {\hbox
- {\def\currentlayer{#1}% todo: left/right
- \setbox\nextbox\emptybox % hoogte/breedte are \wd\nextbox/\ht\nextbox
- \hsize\layerparameter\c!width % \overlaywidth = \hsize
- \vsize\layerparameter\c!height % \overlaywheight = \vsize
- \composedlayer{#1}}}
-
-%D \macros
-%D {resetlayer}
-%D
-%D This macro hardly needs an explanation (and is seldom
-%D needed as well).
-
-\def\doresetlayer#1%
- {\ifundefined{\@@layerbox#1}\else
- \global\setbox\csname\@@layerbox#1\endcsname\emptybox
- \fi}
-
-\def\resetlayer[#1]%
- {\doresetlayer{#1}%
- \doifvalue{\??ll#1\c!doublesided}\v!yes % kind of redundant test
- {\doresetlayer{\v!left #1}%
- \doresetlayer{\v!right#1}}%
- \doresetlayer{#1:\realfolio}}
-
-%D \macros
-%D {setMPlayer}
-%D
-%D The following layer macro uses the positions that are
-%D registered by \METAPOST.
-%D
-%D \starttyping
-%D \definelayer[test]
-%D
-%D \setMPlayer [test] [somepos-1] {Whatever we want here!}
-%D \setMPlayer [test] [somepos-2] {Whatever we need there!}
-%D \setMPlayer [test] [somepos-3] {\externalfigure[cow.mps][width=2cm]}
-%D
-%D \startuseMPgraphic{oeps}
-%D draw fullcircle scaled 10cm withcolor red ;
-%D register ("somepos-1",2cm,3cm,center currentpicture) ;
-%D register ("somepos-2",8cm,5cm,(-1cm,-2cm)) ;
-%D register ("somepos-3",0cm,0cm,(-2cm,2cm)) ;
-%D \stopuseMPgraphic
-%D
-%D \getMPlayer[test]{\useMPgraphic{oeps}}
-%D \stoptyping
-%D
-%D The last line is equivalent to
-%D
-%D \starttyping
-%D \framed
-%D [background={foreground,test},offset=overlay]
-%D {\useMPgraphic{oeps}}
-%D \stoptyping
-
-\def\setMPlayer
- {\dotripleempty\dosetMPlayer}
-
-\def\MPlayerwidth {\hsize}
-\def\MPlayerheight{\vsize}
-
-\def\dosetMPlayer[#1][#2][#3]%
- {\checkpositions % new, else only support after \starttext
- \edef\MPlayerwidth {\MPw{#2}}%
- \edef\MPlayerheight{\MPh{#2}}%
- \setlayer[#1][\c!x=\MPx{#2},\c!y=\MPy{#2},\c!position=\v!no,#3]}
-
-\def\getMPlayer
- {\dodoubleempty\dogetMPlayer}
-
-\def\dogetMPlayer[#1][#2]%
- {\framed
- [\c!background={\v!foreground,#1},
- \c!frame=\v!off,
- \c!offset=\v!overlay,#2]}
-
-% Some day this (old) mechanism will be combined/integrated
-% in overlays
-
-\newskip\xposition \newskip\yposition
-\newskip\xdimension \newskip\ydimension
-\newskip\xoffset \newskip\yoffset
-
-% already defined \newbox\positionbox
-
-\def\startpositioning
- {\bgroup
- \xposition \zeropoint \yposition \zeropoint
- \xdimension\zeropoint \ydimension\zeropoint
- \xoffset \zeropoint \yoffset \zeropoint
- \hfuzz \paperwidth \vfuzz \paperheight
- \setbox\positionbox\hbox\bgroup}
-
-\def\stoppositioning
- {\doifnot\@@psoffset\v!yes
- {\global\xoffset\zeropoint
- \global\yoffset\zeropoint}%
- \global\advance\xdimension \xoffset
- \global\advance\ydimension \yoffset
- \egroup
- \vbox to \ydimension
- {\vskip\yoffset
- \hbox to \xdimension
- {\hskip\xoffset
- \box\positionbox
- \hfill}
- \vfill}%
- \egroup}
-
-\def\resetpositioning
- {\getparameters[\??ps]
- [\c!state=\v!start,%
- \c!unit=\s!cm,%
- \c!factor=1,%
- \c!scale=1,%
- \c!xfactor=\@@psfactor,%
- \c!yfactor=\@@psfactor,%
- \c!xscale=\@@psscale,%
- \c!yscale=\@@psscale,%
- \c!xstep=\v!absolute,%
- \c!ystep=\v!absolute,%
- \c!xoffset=\!!zeropoint,%
- \c!yoffset=\!!zeropoint]}
-
-\def\setuppositioning
- {\resetpositioning
- \dodoubleargument\getparameters[\??ps]}
-
-\def\calculateposition#1#2#3#4#5#6#7#8#9%
- {\setdimensionwithunit\scratchskip{#1}\@@psunit
- \scratchskip#8\scratchskip
- \scratchskip#9\scratchskip
- \advance\scratchskip #4\relax
- \doif{#2}\v!relative
- {\advance\scratchskip #3%
- \let#4\!!zeropoint}%
- #3\scratchskip\relax
- \doifnot\@@psstate\v!overlay
- {\scratchskip#5\relax
- \advance\scratchskip #3\relax
- \ifdim#3<-#7\relax \global#7-#3\relax \fi
- \ifdim\scratchskip>#6\relax \global#6\scratchskip\relax \fi}}
-
-\def\position
- {\dosingleempty\doposition}
-
-\def\doposition[#1]#2(#3,#4)%
- {\dowithnextbox
- {\bgroup
- \getparameters[\??ps][#1]%
- \dontcomplain
- \calculateposition{#3}\@@psxstep\xposition
- \@@psxoffset{\nextboxwd}\xdimension\xoffset
- \@@psxscale\@@psxfactor
- \scratchdimen\nextboxht \advance\scratchdimen \nextboxdp
- \calculateposition{#4}\@@psystep\yposition
- \@@psyoffset\scratchdimen\ydimension\yoffset
- \@@psyscale\@@psyfactor
- \vbox to \zeropoint % kan beter.
- {\vskip\yposition
- \hbox to \zeropoint
- {\hskip\xposition
- \flushnextbox
- \hss}
- \vss}%
- \xdef\dopoppositioning
- {\xposition\the\xposition
- \yposition\the\yposition
- \noexpand\def\noexpand\@@psxoffset{\@@psxoffset}%
- \noexpand\def\noexpand\@@psyoffset{\@@psyoffset}}%
- \egroup
- \dopoppositioning
- \ignorespaces}
- \hbox}
-
-\resetpositioning
-
-\setuppositioning
- [\c!unit=\s!cm,
- \c!factor=1,
- \c!scale=1,
- \c!xstep=\v!absolute,
- \c!ystep=\v!absolute,
- \c!offset=\v!yes,
- \c!xoffset=\!!zeropoint,
- \c!yoffset=\!!zeropoint]
-
-%D Watch out, a redefinition:
-
-\ifx\settextpagecontent\undefined \writestatus\m!systems{error in page-lyr.tex} \wait \fi
-
-\let\normalsettextpagecontent\settextpagecontent
-
-\definelayer
- [OTRTEXT]
-
-\setuplayer
- [OTRTEXT]
- [\c!width=\innermakeupwidth,
- \c!height=\textheight]
-
-% will be overloaded in page-spr
-
-\def\settextpagecontent#1#2#3% #2 and #3 will disappear
- {\doifelselayerdata{OTRTEXT}
- {\setbox#1\hbox to \makeupwidth
- {\startoverlay
- {\tightlayer[OTRTEXT]} % first, otherwise problems with toc
- {\normalsettextpagecontent{#1}{#2}{#3}\box#1}
- \stopoverlay}%
- \dp#1\zeropoint}%
- {\normalsettextpagecontent{#1}{#2}{#3}}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/pack-obj.mkii b/Master/texmf-dist/tex/context/base/mkii/pack-obj.mkii
deleted file mode 100644
index 81523d52564..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/pack-obj.mkii
+++ /dev/null
@@ -1,371 +0,0 @@
-%D \module
-%D [ file=pack-obj,
-%D version=1998.01.15,
-%D title=\CONTEXT\ Packaging Macros,
-%D subtitle=Objects,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% todo, move more to mkiv, get rid of blabelgroup
-
-\writestatus{loading}{ConTeXt Packaging Macros / Objects}
-
-\unprotect
-
-%D \macros
-%D {setobject,getobject,ifinobject}
-%D
-%D Boxes can be considered reuable objects. Unfortunaltely once
-%D passed to the \DVI\ file, such objects cannot be reused. In
-%D \PDF\ however, reusing is possible and sometimes even a
-%D necessity. Therefore, \CONTEXT\ supports reusable objects.
-%D
-%D During the \TEX\ processing run, boxes can serve the purpose
-%D of objects, and the \DVI\ driver module implements objects
-%D using packed boxes.
-%D
-%D The \PDF\ and \PDFTEX\ driver modules implement objects
-%D using \PDF\ forms. There is no (real) restriction on the
-%D number of objects there.
-%D
-%D The first application of objects in \CONTEXT\ concerned
-%D \METAPOST\ graphics and fill||in form fields. The first
-%D application can save lots of bytes, while the latter use is
-%D more a necessity than byte saving.
-%D
-%D \starttyping
-%D \setobject{class}{name}\somebox{}
-%D \getobject{class}{name}
-%D \stoptyping
-%D
-%D Here \type{\somebox} can be whatever box specification suits
-%D \TEX. We save the dimensions of an object, although some
-%D drivers will do so themselves. This means that when for
-%D instance using \PDFTEX\ we could save a hash entry plus some
-%D 20+ memory locations per object by delegating this
-%D housekeeping to the driver. The current approach permits
-%D us to keep the box characteristic too.
-
-\newif\ifinobject
-
-\def\checkobjectreferences
- {\startnointerference
- \protectlabels
- \ifx\usedoutputdriver\currentoutput
- \doutilities{objectreferences}\jobname\empty\relax\relax
- \else
- % different format (will fails on \purenumber)
- \fi
- \global\let\checkobjectreferences\relax
- \stopnointerference}
-
-\def\objectplaceholder{NOT YET FLUSHED}%
-
-\def\presetobject#1#2% \global added
- {\blabelgroup
- \ifcsname\r!object#1::#2\endcsname\else
- \global\@EA\let\csname\r!object#1::#2\endcsname\objectplaceholder
- \fi
- \elabelgroup}
-
-\def\dosetobject#1#2#3% \initializepaper this will move to \everyshipout
- {\initializepaper
- \blabelgroup
- \ifcsname\r!object#2::#3\endcsname
- \elabelgroup \expandafter\gobblefivearguments
- \else % tzt, overload internal referenced objects to save entries
- \elabelgroup \expandafter\dodosetobject
- \fi
- {#1}{#2}{#3}}
-
-\def\resetobject#1#2%
- {\checkobjectreferences
- \letbeundefined{\r!object#1::#2}}
-
-%D \macros
-%D {finalizeobjectbox}
-%D
-%D This one provides a hook for last minute object box processing
-%D we need this in \MKIV.
-
-\ifx\finalizeobjectbox\undefined
- \let\finalizeobjectbox\gobbleoneargument
-\fi
-
-%D Somehow there is a rounding error problem in either \PDFTEX\
-%D or in viewers, or maybe it is conforming the specs. The next
-%D variable compensate for it by removing the rather tight
-%D clip.
-
-\def\objectoffset{1cm}
-
-% \def\dodosetobject#1#2#3%
-% {\bgroup
-% \inobjecttrue
-% \dowithnextbox{\dododosetobject{#1}{#2}{#3}\egroup}}
-
-\def\dodosetobject#1#2#3%
- {\bgroup
- \globalpushmacro\crossreferenceobject \objectreferenced
- \inobjecttrue
- \dowithnextbox
- {\globalpopmacro\crossreferenceobject
- \dododosetobject{#1}{#2}{#3}\egroup}}
-
-\def\dododosetobject#1#2#3%
- {\blabelgroup
- \dontshowcomposition % rather fuzzy in \setxvalue ... \hbox
- \scratchdimen\objectoffset
- \@EA\xdef\csname\r!object#2::#3\endcsname
- {\noexpand\dohandleobject{#2}{#3}%
- {\ifhbox\nextbox\hbox\else\vbox\fi}%
- %{\the\nextboxwd}{\the\nextboxht}{\the\nextboxdp}}%
- {\number\nextboxwd}{\number\nextboxht}{\number\nextboxdp}%
- {\number\scratchdimen}}%
- \expanded % freeze the dimensions since \dostartobject may use \nextbox
- {\dostartobject
- {#2}{#3}{\the\nextboxwd}{\the\nextboxht}{\the\nextboxdp}}%
- \ifcase#1\relax\else \ifdim\objectoffset>\zeropoint
- \setbox\nextbox\vbox spread 2\scratchdimen
- {\forgetall \offinterlineskip
- \vss\hbox spread 2\scratchdimen{\hss\flushnextbox\hss}\vss}%
- \fi \fi
- \flushnextbox
- \dostopobject
- \elabelgroup}
-
-\def\getobject#1#2%
- {\blabelgroup
- \let\dohandleobject\dogetobject
- \csname\r!object#1::#2\endcsname}
-
-% \def\dogetobject#1#2#3#4#5#6%
-% {\initializepaper
-% \forgetall
-% \dontshowcomposition
-% \setbox\scratchbox\vbox
-% {\doinsertobject{#1}{#2}}%
-% \setbox\scratchbox#3%
-% {\vbox to #5\scaledpoint
-% {\ifdim\ht\scratchbox>#5\scaledpoint
-% % or \ifdim\wd\scratchbox>#4\scaledpoint
-% \vss\hbox to #4\scaledpoint{\hss\box\scratchbox\hss}\vss
-% \else
-% \vss\box\scratchbox
-% \fi}}%
-% \wd\scratchbox#4\scaledpoint
-% \ht\scratchbox#5\scaledpoint
-% \dp\scratchbox#6\scaledpoint
-% \box\scratchbox
-% \elabelgroup}
-
-% \def\dogetobject#1#2#3#4#5#6#7%
-% {\initializepaper
-% \forgetall
-% \dontshowcomposition
-% \setbox\scratchbox\vbox
-% {\doinsertobject{#1}{#2}}%
-% \setbox\scratchbox#3%
-% {\vbox to #5\scaledpoint
-% {\ifdim\ht\scratchbox>#5\scaledpoint
-% % or \ifdim\wd\scratchbox>#4\scaledpoint
-% \vss\hbox to #4\scaledpoint{\hss\box\scratchbox\hss}\vss
-% \else
-% \vss\box\scratchbox
-% \fi}}%
-% \scratchdimen#7\scaledpoint
-% \setbox\nextbox\hbox
-% {\hskip-\scratchdimen\lower\scratchdimen\flushnextbox}%
-% \wd\scratchbox#4\scaledpoint
-% \ht\scratchbox#5\scaledpoint
-% \dp\scratchbox#6\scaledpoint
-% \box\scratchbox
-% \elabelgroup}
-
-\def\dogetobject#1#2#3#4#5#6#7% don't change this, should work for dvi & pdf
- {\initializepaper
- \forgetall
- \dontshowcomposition
- \setbox\scratchbox\vbox
- {\doinsertobject{#1}{#2}}%
- \setbox\scratchbox#3%
- {\vbox to #5\scaledpoint
- {\ifdim\ht\scratchbox>#5\scaledpoint
- \vss\hbox to #4\scaledpoint{\hss\box\scratchbox\hss}\vss
- \else\ifdim\wd\scratchbox>#4\scaledpoint
- \vss\hbox to #4\scaledpoint{\hss\box\scratchbox\hss}\vss
- \else
- %\vss\box\scratchbox
- \vss\hbox to #4\scaledpoint{\box\scratchbox\hss}% fix Chof
- \fi\fi}}%
- \box\scratchbox
- \elabelgroup}
-
-%D If needed one can ask for the dimensions of an object with:
-%D
-%D \starttyping
-%D \getobjectdimensions{class}{name}
-%D \stoptyping
-%D
-%D The results are reported in \type {\objectwidth}, \type
-%D {\objectheight} and \type {\objectdepth}.
-
-% \def\dogetobjectdimensions#1#2#3#4#5#6%
-% {\def\objectwidth {#4\s!sp}%
-% \def\objectheight{#5\s!sp}%
-% \def\objectdepth {#6\s!sp}}
-
-\def\dogetobjectdimensions#1#2#3#4#5#6#7%
- {\def\objectwidth {#4\s!sp}%
- \def\objectheight{#5\s!sp}%
- \def\objectdepth {#6\s!sp}%
- \def\objectmargin{#7\s!sp}}
-
-\def\getobjectdimensions#1#2%
- {\let\dohandleobject\dogetobjectdimensions
- \let\objectwidth \!!zeropoint
- \let\objectheight\!!zeropoint
- \let\objectdepth \!!zeropoint
- \labelcsname\r!object#1::#2\endcsname}
-
-%D Apart from this kind of objects, that have typeset content,
-%D we can have low level driver specific objects. Both types
-%D can have references to internal representations, hidden for
-%D the user. We keep track of such references by means of a
-%D dedicated cross reference mechanism. Normally, objects are
-%D defined before they are used, but forward referencing
-%D sometimes occurs.
-%D
-%D \starttyping
-%D \dosetobjectreference {class} {identifier} {reference value} {page}
-%D \dogetobjectreference {class} {identifier} \csname
-%D \stoptyping
-%D
-%D These commands are to be called by the \type{\startobject},
-%D \type{\stopobject} and \type{\insertobject} specials.
-
-\def\objectreferenced{\global\chardef\crossreferenceobject\plusone}
-\def\driverreferenced{\global\chardef\crossreferenceobject\zerocount}
-
-\objectreferenced
-
-% no undefined test ! ! ! ! (pdftex fails on undefined objects)
-
-\def\setobjectreferences
- {\def\objectreference##1##2##3##4%
- {\ifundefined{\r!driver##1::##2}%
- \setxvalue{\r!driver##1::##2}{{##3}{##4}}%
- \else
- \showmessage\m!references{31}{[##1 ##2=>##3/##4]}%
- \fi}}
-
-\def\resetobjectreferences
- {\let\objectreference\gobblefourarguments}
-
-\resetobjectreferences
-
-\def\doregisterobjectreference#1#2#3%
- {\checkobjectreferences
- \blabelgroup
- \expanded{\writeutilitycommand{\noexpand\objectreference{#1}{#2}{#3}{\noexpand\realfolio}}}%
- \setxvalue{\r!driver#1::#2}{{#3}{\noexpand\realfolio}}%
- \elabelgroup}
-
-\def\dooverloadobjectreference#1#2#3%
- {\checkobjectreferences
- \blabelgroup
- \setxvalue{\r!driver#1::#2}{{#3}{\noexpand\realfolio}}%
- \elabelgroup}
-
-\def\dosetobjectreference
- {\ifcase\crossreferenceobject
- \objectreferenced
- \expandafter\dooverloadobjectreference
- \else
- \expandafter\doregisterobjectreference
- \fi}
-
-\def\dosetdriverreference
- {\driverreferenced\dosetobjectreference}
-
-\def\defaultobjectreference#1#2{0} % driver dependent
-\def\defaultobjectpage #1#2{\realfolio}
-
-\def\dogetobjectreference {\dodogetobjectreference\firstoftwoarguments\defaultobjectreference}
-\def\dogetobjectreferencepage{\dodogetobjectreference\secondoftwoarguments\defaultobjectpage}
-
-\def\dodogetobjectreference#1#2#3#4#5%
- {\checkobjectreferences
- \blabelgroup
- \ifundefined{\r!driver#3::#4}%
- \showmessage\m!references{30}{[#3 #4=>#3/#4]}%
- \xdef#5{#2{#3}{#4}}%
- \else
- \xdef#5{\@EAEAEA#1\csname\r!driver#3::#4\endcsname}%
- \fi
- \elabelgroup}
-
-\def\setobject {\driverreferenced\dosetobject1}
-\def\settightobject{\driverreferenced\dosetobject0}
-
-%D \macros
-%D {doifobjectfoundelse,doifobjectreferencefoundelse}
-%D
-%D To prevent redundant definition of objects, one can use
-%D the next tests:
-%D
-%D \starttyping
-%D \doifobjectfoundelse{class}{object}{do then}{do else}
-%D \doifobjectreferencefoundelse{class}{object}{do then}{do else}
-%D \stoptyping
-
-\def\doifobjectfoundelse#1#2%
- {\blabelgroup \ifcsname\r!object#1::#2\endcsname
- \elabelgroup \expandafter\firstoftwoarguments
- \else
- \elabelgroup \expandafter\secondoftwoarguments
- \fi}
-
-\def\doifobjectreferencefoundelse#1#2%
- {\checkobjectreferences
- \blabelgroup \ifcsname\r!driver#1::#2\endcsname
- \elabelgroup \expandafter\firstoftwoarguments
- \else
- \elabelgroup \expandafter\secondoftwoarguments
- \fi}
-
-%D \macros
-%D {doifobjectssupportedelse}
-%D
-%D Starting with reuse of graphics, we will implement object
-%D reuse when possible. To enable mechanisms to determine
-%D what method to use, we provide:
-%D
-%D \starttyping
-%D \doifobjectssupportedelse{true action}{false action}
-%D \stoptyping
-%D
-%D As we can see, currently objects depend on the special
-%D driver.
-
-\newif\ifobjectssupported \objectssupportedtrue
-
-\def\doifobjectssupportedelse
- {\ifobjectssupported
- \@EA\doifspecialavailableelse\@EA\doinsertobject
- \else
- \@EA\secondoftwoarguments
- \fi}
-
-%D There is a conceptual problem here. Objects are not possible
-%D in \DVI, unless faked like in \type {spec-dvi}. This means
-%D that we must be careful in loading special drivers that do
-%D support objects while we still want to be able to use the
-%D \DVI\ output.
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/pack-rul.mkii b/Master/texmf-dist/tex/context/base/mkii/pack-rul.mkii
deleted file mode 100644
index 7399cacd811..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/pack-rul.mkii
+++ /dev/null
@@ -1,3650 +0,0 @@
-%D \module
-%D [ file=pack-rul, % was core-rul,
-%D version=1998.10.16,
-%D title=\CONTEXT\ Packaging Macros,
-%D subtitle=Ruled Content,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Packaging Macros / Ruled Content}
-
-\unprotect
-
-%D We have removed the rather old and out dated raster methods. They
-%D have not been used for ages.
-
-%D \macros
-%D {linewidth, setuplinewidth}
-%D
-%D This module deals with rules (lines) in several ways. First
-%D we introduce two macros that can be used to set some common
-%D characteristics.
-%D
-%D \showsetup{setuplinewidth}
-%D
-%D The linewidth is available in \type{\linewidth}. The
-%D preset value of .4pt equals the default hard coded \TEX\
-%D rule width.
-
-\newdimen\linewidth
-
-\def\dosetuplinewidth[#1]%
- {\assigndimension{#1}\linewidth{.2\points}{.4\points}{.6\points}}
-
-\def\setuplinewidth
- {\dosingleargument\dosetuplinewidth}
-
-%D \macros
-%D {ruledlinewidth, inheritruledlinewidth}
-%D
-%D Inside framed boxed we will use a private dimensions. As
-%D an option one can let the linewidth inherit its value from
-%D this one.
-
-\newdimen\ruledlinewidth \newif\ifinheritruledlinewidth
-
-% %D \TEX\ lacks support for color and even gray scales. The next
-% %D macros can provide a sort of poor mans gray scales as well
-% %D as give access to more suitable methods of rendering. Such a
-% %D method looks like:
-% %D
-% %D \starttyping
-% %D \def\methodegraybox#1#2#3#4#5#6%
-% %D { ... }
-% %D \stoptyping
-% %D
-% %D The string \type{graybox} is a common element in the name,
-% %D so we can have for instance \type {\postscriptgraybox} or
-% %D \type {\texgraybox}. The first three arguments take a
-% %D dimension, the fourth one takes a number between~0 and~1,
-% %D and the last argument specifies a radius of the box when
-% %D rounded corners are used, so:
-% %D
-% %D \startbuffer
-% %D \dotgraybox{.5\hsize}{1cm}{0cm}{.85}{\v!no}{0pt}
-% %D \stopbuffer
-% %D
-% %D \typebuffer
-% %D
-% %D becomes:
-% %D
-% %D %\startlinecorrection
-% %D % \vbox to 1cm{\getbuffer}
-% %D %\stoplinecorrection
-% %D
-% %D \startlinecorrection
-% %D \unprotect
-% %D \vbox to 1cm{\dotgraybox{.5\hsize}{1cm}{0cm}{.85}{\v!no}{0pt}}
-% %D \protect
-% %D \stoplinecorrection
-% %D
-% %D There are two predefined methodes, one uses periods and the
-% %D other uses small rules. The second method is less
-% %D efficient, but sometimes give better results. The dimensions
-% %D of the resullting box are set to zero.
-%
-% \setvalue{\v!dot graybox}{\processraster\symbol\rasterdot}
-% \setvalue{\v!rule graybox}{\processraster\symbol\rasterbox}
-%
-% \def\rasterdot{\rasterfont.}
-% \def\rasterbox{\hss\vrule\!!width.4pt\!!height.4pt\!!depth\zeropoint}
-%
-% %D Now of course we need:
-%
-% \ifx\rasterfont\undefined \def\rasterfont{\fivepoint} \fi
-%
-% %D We implement two pure \TEX\ based generators, that use
-% %D \type{\leaders} to quickly gerenate the gray pattern. One
-% %D should beware of \DIMENSION\ conflicts, so we use some
-% %D registers above~8. These macros are memory hungry and byte
-% %D spoiling.
-%
-% \def\processraster#1#2#3#4#5#6#7%
-% {\bgroup
-% \forgetall
-% \dontcomplain
-% \dimen10=\onepoint
-% \dimen10=\@@rsfactor\dimen10
-% \dimen10=#5\dimen10
-% \setbox2\hbox to #2
-% {\cleaders\hbox to 2\dimen10{#1\hss}\hss}%
-% \dimen12=#3%
-% \advance\dimen12 #4%
-% % \setbox0\vbox to \dimen12
-% {\cleaders\vbox to 2\dimen10{\box2\vss}\vss}%
-% \setbox0\hbox
-% {\hskip-.5\dimen10\lower0.5\dimen10\copy0
-% \hskip-\wd0\hskip\dimen10\lower1.5\dimen10\box0}%
-% \box0
-% \egroup}
-
-%D \macros
-%D {setupscreens}
-%D
-%D The previous macro uses a predefined constant
-%D \type{\@@rsfactor}. This factor can be set by:
-%D
-%D \showsetup{setupscreens}
-
-\def\setupscreens
- {\dodoubleargument\getparameters[\??rs]}
-
-% %D The most appropriate way to call for this feature is
-% %D using \type{\graybox}, which is defined as:
-%
-% \def\graybox{\getvalue{\@@rsmethod graybox}}
-%
-% %D We just introduced two pure \TEX\ methods for generating
-% %D rasters. However, it's far more efficient and comfortable in
-% %D terms of speed, memory usage and file size, to use a driver
-% %D supported method.
-%
-% \setvalue{\v!external graybox}{\setgraybox}
-%
-% %D For compatibility reasons we also define the original one:
-%
-% \setvalue{\v!postscript graybox}{\getvalue{\v!external graybox}}
-%
-% %D A quite valid way of letting drivers do the job, is giving
-% %D a solid rule a gray texture.
-
-%D We will communicate through module specific variables, current
-%D framed parameters and some reserved dimension registers.
-
-\newdimen \frameddimenwd
-\newdimen \frameddimenht
-\newdimen \frameddimendp
-
-%D We don't have to stick to a \TEX\ drawn rule, but
-%D also can use rounded or even fancier shapes, as we will
-%D see later on.
-
-\def\dofilledbox
- {\bgroup
- \doifelse{\framedparameter\c!backgroundcorner}\v!rectangular
- {\dofilledlinedbox}
- {\ifzeropt\dimexpr\framedparameter\c!backgroundradius\relax % just in case of .x\bodyfontsize
- \dofilledlinedbox
- \else
- \dofilledroundbox
- \fi}%
- \egroup}
-
-\def\dophantombox
- {\hphantom{\dofilledbox}}
-
-\def\dofilledlinedbox
- {\vrule\!!width\frameddimenwd\!!height\frameddimenht\!!depth\frameddimendp\relax}%
-
-\def\dostrokedroundbox
- {\doif{\framedparameter\c!frame}\v!on\dodostrokedroundbox}
-
-\def\dodostrokedroundbox
- {\bgroup
- \edef\ovalmod{\framedparameter\c!framecorner}%
- \doifelse\ovalmod\v!round{\let\ovalmod\!!zerocount}{\edef\ovalmod{\number\ovalmod}}%
- \edef\ovalwid{\the\frameddimenwd}%
- \edef\ovalhei{\the\frameddimenht}%
- \edef\ovaldep{\the\frameddimendp}%
- \edef\ovallin{\the\dimexpr\ruledlinewidth}%
- \edef\ovalrad{\the\dimexpr\framedparameter\c!frameradius}%
- \let\ovalstr\!!plusone
- \let\ovalfil\!!zerocount
- \forcecolorhack
- \doovalbox\ovalwid\ovalhei\ovaldep\ovallin\ovalrad\ovalstr\ovalfil\ovalmod
- \egroup}
-
-\def\dofilledroundbox
- {\bgroup
- \edef\ovalmod{\framedparameter\c!backgroundcorner}%
- \doifelse\ovalmod\v!round{\let\ovalmod\!!zerocount}{\edef\ovalmod{\number\ovalmod}}%
- \edef\ovalwid{\the\frameddimenwd}%
- \edef\ovalhei{\the\frameddimenht}%
- \edef\ovaldep{\the\frameddimendp}%
- \edef\ovallin{\the\dimexpr\ruledlinewidth\relax}%
- \edef\ovalrad{\the\dimexpr\framedparameter\c!backgroundradius\relax}%
- \let\ovalstr\!!zerocount
- \let\ovalfil\!!plusone
- \forcecolorhack
- \doovalbox\ovalwid\ovalhei\ovaldep\ovallin\ovalrad\ovalstr\ovalfil\ovalmod
- \egroup}
-
-% a lot of weird corners
-%
-% \startTEXpage
-% \dontleavehmode\framed
-% [corner=0,frame=on,framecolor=green,
-% background=color,backgroundcolor=yellow]{\tttf TEST \twodigits\recurselevel}%
-% \vskip1em
-% \dontleavehmode\dostepwiserecurse {1} {4}{1}{\framed
-% [corner=\recurselevel,frame=on,framecolor=green,
-% background=color,backgroundcolor=yellow]{\tttf TEST \twodigits\recurselevel}%
-% \quad}
-% \vskip1em
-% \dontleavehmode\dostepwiserecurse {5} {8}{1}{\framed
-% [corner=\recurselevel,frame=on,framecolor=green,
-% background=color,backgroundcolor=yellow]{\tttf TEST \twodigits\recurselevel}%
-% \quad}
-% \vskip1em
-% \dontleavehmode\dostepwiserecurse {1} {4}{1}{\framed
-% [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}%
-% \quad}
-% \vskip1em
-% \dontleavehmode\dostepwiserecurse {5} {8}{1}{\framed
-% [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}%
-% \quad}
-% \vskip1em
-% \dontleavehmode\dostepwiserecurse {9}{12}{1}{\framed
-% [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}%
-% \quad}
-% \vskip1em
-% \dontleavehmode\dostepwiserecurse{13}{16}{1}{\framed
-% [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}%
-% \quad}
-% \vskip1em
-% \dontleavehmode\dostepwiserecurse{17}{20}{1}{\framed
-% [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}%
-% \quad}
-% \vskip1em
-% \dontleavehmode\dostepwiserecurse{21}{24}{1}{\framed
-% [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}%
-% \quad}
-% \vskip1em
-% \dontleavehmode\dostepwiserecurse{25}{28}{1}{\framed
-% [corner=\recurselevel,frame=on,framecolor=green]{\tttf TEST \twodigits\recurselevel}%
-% \quad}
-% \stopTEXpage
-
-%D The oval box is drawn using a special macro, depending on
-%D the driver in use.
-
-\def\dograybox % avoid black rules when no gray
- {\doifelsenothing{\framedparameter\c!backgroundscreen}
- {\dophantombox}
- {\raster[\framedparameter\c!backgroundscreen]{\dofilledbox}}}
-
-%D It won't be a surprise that we not only provide gray boxes,
-%D but also colored ones. Here it is:
-
-\def\docolorbox
- {\hbox{\ifincolor
- \doifcolorelse{\framedparameter\c!backgroundcolor}
- {\localcolortrue\color[\framedparameter\c!backgroundcolor]{\dofilledbox}}
- {\dophantombox}%
- \else
- \dophantombox
- \fi}}
-
-%D \macros
-%D {defineoverlay, doifoverlayelse, overlayoffset,
-%D overlaywidth, overlayheight, overlaydepth,
-%D overlaycolor, overlaylinecolor, overlaylinewidth}
-%D
-%D Before we define the macro that actually takes card of the
-%D backgrounds, we introduce overlays. An overlay is something
-%D that contrary to its name lays {\em under} the text. An
-%D example of an overlay definition is:
-%D
-%D \startbuffer[tmp-1]
-%D \defineoverlay
-%D [fancy]
-%D [{\externalfigure
-%D [mp-cont.502]
-%D [width=\overlaywidth,
-%D height=\overlayheight]}]
-%D \stopbuffer
-%D
-%D \typebuffer[tmp-1]
-%D
-%D That for instance can be uses in:
-%D
-%D \startbuffer[tmp-2]
-%D \framed[backgroundachtergrond=fancy]{How Fancy!}
-%D \framed[backgroundachtergrond=fancy,frame=off]{Even More Fancy!}
-%D \stopbuffer
-%D
-%D and looks like:
-%D
-%D \startlinecorrection
-%D \vbox{\baselineskip24pt\getbuffer[tmp-1]\getbuffer[tmp-2]}
-%D \stoplinecorrection
-%D
-%D The formal definition is:
-%D
-%D \showsetup{defineoverlay}
-%D
-%D This macro's definition is a bit obscure, due the many
-%D non||used arguments and the two step call that enable the
-%D setting of the width, height and depth variables.
-%D Multiple backgrounds are possible and are specified as:
-%D
-%D \starttyping
-%D \framed[background={one,two,three}]{Three backgrounds!}
-%D \stoptyping
-%D
-%D Most drawing packages only know width and height. Therefore
-%D the dimensions have a slightly different meaning here:
-%D
-%D \startitemize[packed]
-%D \item \type{\overlaywidth }: width of the overlay
-%D \item \type{\overlayheight}: height plus depth of the overlay
-%D \item \type{\overlaydepth }: depth of the overlay
-%D \stopitemize
-%D
-%D The resulting box is lowered to the right depth.
-
-\def\overlaywidth {\the\hsize\space} % We preset the variables
-\def\overlayheight {\the\vsize\space} % to some reasonable default
-\let\overlaydepth \!!zeropoint % values. The attributes
-\let\overlayoffset \!!zeropoint % of the frame can be (are)
-\let\overlaycolor \empty % set somewhere else.
-\let\overlaylinewidth \!!zeropoint %
-\let\overlaylinecolor \empty %
-
-%D The next register is used to initialize overlays.
-
-\newtoks\everyoverlay
-
-%D An example of an initialization is the following (overlays
-%D can contain text and be executed under an regime where
-%D interlineskip is off).
-
-\appendtoks \oninterlineskip \to \everyoverlay
-
-\def\defineoverlay
- {\dodoubleargument\dodefineoverlay}
-
-\def\dodefineoverlay[#1][#2]%
- {\def\docommand##1{\setvalue{\??ov##1}{\executedefinedoverlay{##1}{#2}}}%
- \processcommalist[#1]\docommand}
-
-\prependtoks
- \hsize\overlaywidth
- \vsize\overlayheight
-\to\everyoverlay
-
-\long\def\executedefinedoverlay#1#2%
- {\bgroup
- \edef\overlaywidth {\the\frameddimenwd\space}%
- \edef\overlayheight{\the\dimexpr\frameddimenht+\frameddimendp\relax\space}%
- \edef\overlaydepth {\the\frameddimendp\space}%
- \edef\overlaycolor {\framedparameter\c!backgroundcolor}%
- %\edef\overlaycorner{\framedparameter\c!backgroundcorner}%
- %\edef\overlayradius{\framedparameter\c!backgroundradius}%
- \let\overlayoffset\backgroundoffset % we steal this one
- \setbox\scratchbox\hbox{\lower\overlaydepth\hbox{\the\everyoverlay#2}}%
- \setbox\scratchbox\hbox
- {\hskip-.5\dimexpr\wd\scratchbox-\overlaywidth \relax
- \raise-.5\dimexpr\ht\scratchbox-\frameddimenht\relax % not overlayheight !
- \box\scratchbox}%
- \wd\scratchbox\overlaywidth
- \ht\scratchbox\overlayheight
- \dp\scratchbox\overlaydepth
- \startlayoutcomponent{o:#1}{overlay #1}%
- \box\scratchbox
- \stoplayoutcomponent
- \egroup}
-
-%D The empty case is:
-
-\let\executeoverlay\gobblesevenarguments
-
-%D For testing we provide:
-
-\def\doifoverlayelse#1%
- {\doifdefinedelse{\??ov#1}}
-
-%D We predefine two already familiar backgrounds:
-
-\setvalue{\??ov\v!screen}{\dograybox }
-\setvalue{\??ov\v!color }{\docolorbox}
-
-% %D After all these preparations, the background macro does no
-% %D bring to many surprises. One has to keep in mind that this
-% %D macro starts up a call chain, depending on the background
-% %D one needs:
-% %D
-% %D \startitemize[packed]
-% %D \item a raster, color or user defined shape
-% %D \item square or round corners
-% %D \item a \TEX\ or driver based method
-% %D \stopitemize
-% %D
-% %D The macro can be extended by adding commands to the token
-% %D list register \type {\everybackgroundbox}. For this
-% %D purpose, the name of the current background is available in
-% %D \type {\currentbackgound}.
-
-%D The content of the box will be (temporary) saved in a box. We
-%D also have an extra box for backgrounds.
-
-\newbox\framebox
-\newbox\extraframebox
-
-\newtoks\everybackgroundbox
-
-\let\currentbackground\empty
-
-% \def\dodobackgroundbox#1% also less passing, we can get rid of the old method
-% {\bgroup
-% \def\currentbackground{#1}%
-% \the\everybackgroundbox
-% \setbox\extraframebox\hbox
-% {\vbox{\moveleft\backgroundoffset\hbox{\executeifdefined{\??ov\currentbackground}\donothing}}}%
-% \wd\extraframebox\zeropoint % \backgroundwidth
-% \ht\extraframebox\backgroundheight
-% \dp\extraframebox\backgrounddepth
-% \box\extraframebox % \hskip-\backgroundwidth
-% \egroup}
-
-% \def\dodobackgroundbox#1% also less passing, we can get rid of the old method
-% {\bgroup
-% \def\currentbackground{#1}%
-% \ifcsname\??ov\currentbackground\endcsname
-% \the\everybackgroundbox
-% \setbox\extraframebox\hbox{\vbox{\moveleft\backgroundoffset\hbox{\csname\??ov\currentbackground\endcsname}}}%
-% \wd\extraframebox\zeropoint % \backgroundwidth
-% \ht\extraframebox\backgroundheight
-% \dp\extraframebox\backgrounddepth
-% \box\extraframebox % \hskip-\backgroundwidth
-% \fi
-% \egroup}
-
-\def\dodobackgroundbox
- {\bgroup
- \ifcsname\??ov\currentbackground\endcsname
- \the\everybackgroundbox
- \setbox\extraframebox\hbox{\vbox{\moveleft\backgroundoffset\hbox{\csname\??ov\currentbackground\endcsname}}}%
- \wd\extraframebox\zeropoint % \backgroundwidth
- \ht\extraframebox\backgroundheight
- \dp\extraframebox\backgrounddepth
- \box\extraframebox % \hskip-\backgroundwidth
- \fi
- \egroup}
-
-\def\dododobackgroundbox#1,#2% #2 gobbles spaces
- {\edef\currentbackground{#1}%
- \ifx\currentbackground\s!unknown\else
- \dodobackgroundbox\expandafter\dododobackgroundbox
- \fi#2}
-
-\let\backgroundoffset\!!zeropoint
-\let\backgrounddepth \!!zeropoint
-\def\backgroundwidth {\the\hsize}
-\def\backgroundheight{\the\vsize}
-
-% todo: also \def\theforegroundbox{#1}
-
-% \def\dobackgroundbox#1%
-% {\setbox\framebox\vbox
-% {\forgetall
-% \boxmaxdepth\maxdimen
-% \scratchdimen \framedparameter{#1}\relax
-% \frameddimenwd\dimexpr\wd\framebox+2\scratchdimen\relax
-% \frameddimenht\dimexpr\ht\framebox+ \scratchdimen\relax
-% \frameddimendp\dimexpr\dp\framebox+ \scratchdimen+\framedparameter\c!backgrounddepth\relax
-% \edef\backgroundoffset{\the\scratchdimen}%
-% \edef\backgroundwidth {\the\wd\framebox}%
-% \edef\backgroundheight{\the\ht\framebox}%
-% \edef\backgrounddepth {\the\dp\framebox}%
-% %\edef\foregroundbox{\box#1}%
-% \def\foregroundbox% fuzzy but needed hack, this \vss, otherwise
-% {\vbox to \backgroundheight{\vss\box\framebox\vss}}% vertical shift
-% \edef\component{\framedparameter\c!component}%
-% \hbox to \backgroundwidth % in case 'foreground' is used as overlay
-% {\ifx\component\empty
-% \rawprocesscommalist[\framedbackground]\dodobackgroundbox
-% \else
-% \startlayoutcomponent{b:\component}{\s!background\space\component}%
-% \rawprocesscommalist[\framedbackground]\dodobackgroundbox
-% \stoplayoutcomponent
-% \fi
-% \box\framebox\hss}}}
-
-\def\normalforegroundbox% fuzzy but needed hack, this \vss, otherwise
- {\vbox to \backgroundheight{\vss\box\framebox\vss}}% vertical shift
-
-\def\dobackgroundbox#1%
- {\setbox\framebox\vbox
- {\forgetall
- \boxmaxdepth\maxdimen
- \scratchdimen \framedparameter{#1}\relax
- \frameddimenwd\dimexpr\wd\framebox+2\scratchdimen\relax
- \frameddimenht\dimexpr\ht\framebox+ \scratchdimen\relax
- \frameddimendp\dimexpr\dp\framebox+ \scratchdimen+\framedparameter\c!backgrounddepth\relax
- \edef\backgroundoffset{\the\scratchdimen}%
- \edef\backgroundwidth {\the\wd\framebox}%
- \edef\backgroundheight{\the\ht\framebox}%
- \edef\backgrounddepth {\the\dp\framebox}%
- %\edef\foregroundbox{\box#1}%
- \edef\component{\framedparameter\c!component}%
- \let\foregroundbox\normalforegroundbox
- \hbox to \backgroundwidth % in case 'foreground' is used as overlay
- {\ifx\component\empty
- \expanded{\dododobackgroundbox\framedparameter\c!background},\s!unknown,\relax
- \else
- \startlayoutcomponent{b:\component}{background \component}%
- \expanded{\dododobackgroundbox\framedparameter\c!background},\s!unknown,\relax
- \stoplayoutcomponent
- \fi
- \box\framebox\hss}}}
-
-%D One can explictly insert the foreground box. For that
-%D purpose we introduce the overlay \type {foreground}.
-
-\defineoverlay[\v!foreground][\foregroundbox]
-
-%D We can specify overlays as a comma separated list of
-%D overlays, a sometimes handy feature.
-
-%D Besides backgrounds (overlays) we also need some macros to
-%D draw outlines (ruled borders). Again we have to deal with
-%D square and round corners. The first category can be handled
-%D by \TEX\ itself, the latter one depends on the driver. This
-%D macro also support a negative offset.
-
-\ifx\scratchoffset\undefined \newdimen\scratchoffset \fi
-
-\def\dooutlinebox % we needed to move the color command in order to apply attributes properly
- {\setbox\framebox\vbox % rules on top of box
- {\scratchoffset \framedparameter\c!frameoffset\relax
- \frameddimenwd\dimexpr\wd\framebox+2\scratchoffset\relax
- \frameddimenht\dimexpr\ht\framebox+ \scratchoffset\relax
- \frameddimendp\dimexpr\dp\framebox+ \scratchoffset+\framedparameter\c!framedepth\relax
- \ifdim\frameddimendp<\zeropoint
- \advance\frameddimenht \frameddimendp
- \scratchdimen-\frameddimendp
- \frameddimendp\zeropoint
- \else
- \scratchdimen\zeropoint
- \fi
- \setbox\extraframebox\hbox
- {\doifsomething{\framedparameter\c!framecolor}{\color[\framedparameter\c!framecolor]}{\dostrokedbox}}%
- \setbox\extraframebox\hbox
- {\raise\scratchdimen\vbox
- {\moveleft\scratchoffset
- \box\extraframebox}}%
- \wd\extraframebox\wd\framebox
- \ht\extraframebox\ht\framebox
- \dp\extraframebox\dp\framebox
- \hbox{\box\framebox\hskip-\wd\extraframebox\box\extraframebox}}}
-
-\def\dostrokedbox
- {\doifelse{\framedparameter\c!framecorner}\v!rectangular
- {\dostrokedlinedbox}
- {\ifzeropt\dimexpr\framedparameter\c!frameradius\relax % just in case of .x\bodyfontsize
- \dostrokedlinedbox
- \else
- \dostrokedroundbox
- \fi}}
-
-\def\dostrokedlinedbox
- {\setbox\scratchbox\null
- \wd\scratchbox\frameddimenwd
- \ht\scratchbox\frameddimenht
- \dp\scratchbox\frameddimendp
- \setbox\scratchbox\vbox \bgroup
- \csname t\@@frame@@\framedparameter\c!frame\framedparameter\c!topframe \endcsname
- \hbox \bgroup
- \csname l\@@frame@@\framedparameter\c!frame\framedparameter\c!leftframe \endcsname
- \box\scratchbox
- \csname r\@@frame@@\framedparameter\c!frame\framedparameter\c!rightframe \endcsname
- \egroup
- \csname b\@@frame@@\framedparameter\c!frame\framedparameter\c!bottomframe\endcsname
- \egroup
- \wd\scratchbox\frameddimenwd
- \ht\scratchbox\frameddimenht
- \dp\scratchbox\frameddimendp
- \box\scratchbox}
-
-\def\@@frame@@{@@frame@@}
-
-% \setvalue{t\@@frame@@\v!on \v!on}{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth}
-% \setvalue{t\@@frame@@\v!off\v!on}{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth}
-% \setvalue{t\@@frame@@\v!on }{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth}
-% \setvalue{b\@@frame@@\v!on \v!on}{\kern-\ruledlinewidth\hrule\!!height\ruledlinewidth}
-% \setvalue{b\@@frame@@\v!off\v!on}{\kern-\ruledlinewidth\hrule\!!height\ruledlinewidth}
-% \setvalue{b\@@frame@@\v!on }{\kern-\ruledlinewidth\hrule\!!height\ruledlinewidth}
-% \setvalue{l\@@frame@@\v!on \v!on}{\vrule\!!width\ruledlinewidth\kern-\ruledlinewidth}
-% \setvalue{l\@@frame@@\v!off\v!on}{\vrule\!!width\ruledlinewidth\kern-\ruledlinewidth}
-% \setvalue{l\@@frame@@\v!on }{\vrule\!!width\ruledlinewidth\kern-\ruledlinewidth}
-% \setvalue{r\@@frame@@\v!on \v!on}{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth}
-% \setvalue{r\@@frame@@\v!off\v!on}{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth}
-% \setvalue{r\@@frame@@\v!on }{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth}
-
-\def\@@frame@@trule{\hrule\!!height\ruledlinewidth\kern-\ruledlinewidth}
-\def\@@frame@@brule{\kern-\ruledlinewidth\hrule\!!height\ruledlinewidth}
-\def\@@frame@@rrule{\kern-\ruledlinewidth\vrule\!!width\ruledlinewidth}
-\def\@@frame@@lrule{\vrule\!!width\ruledlinewidth\kern-\ruledlinewidth}
-
-\letvalue{t\@@frame@@\v!on \v!on}\@@frame@@trule
-\letvalue{t\@@frame@@\v!off\v!on}\@@frame@@trule
-\letvalue{t\@@frame@@\v!on }\@@frame@@trule
-
-\letvalue{b\@@frame@@\v!on \v!on}\@@frame@@brule
-\letvalue{b\@@frame@@\v!off\v!on}\@@frame@@brule
-\letvalue{b\@@frame@@\v!on }\@@frame@@brule
-
-\letvalue{l\@@frame@@\v!on \v!on}\@@frame@@lrule
-\letvalue{l\@@frame@@\v!off\v!on}\@@frame@@lrule
-\letvalue{l\@@frame@@\v!on }\@@frame@@lrule
-
-\letvalue{r\@@frame@@\v!on \v!on}\@@frame@@rrule
-\letvalue{r\@@frame@@\v!off\v!on}\@@frame@@rrule
-\letvalue{r\@@frame@@\v!on }\@@frame@@rrule
-
-% no overlapping rules
-
-\def\@@frame@@trules{\hbox{\kern\ruledlinewidth\vrule\!!width\dimexpr\frameddimenwd-2\ruledlinewidth\relax\!!height\ruledlinewidth}\nointerlineskip\kern-\ruledlinewidth}
-\def\@@frame@@brules{\kern-\ruledlinewidth\nointerlineskip\hbox{\kern\ruledlinewidth\vrule\!!width\dimexpr\frameddimenwd-2\ruledlinewidth\relax\!!height\ruledlinewidth}}
-\def\@@frame@@rrules{\kern-\ruledlinewidth\vrule\!!height\dimexpr\frameddimenht-\ruledlinewidth\relax\!!depth-\ruledlinewidth\!!width\ruledlinewidth}
-\def\@@frame@@lrules{\vrule\!!height\dimexpr\frameddimenht-\ruledlinewidth\relax\!!depth-\ruledlinewidth\!!width\ruledlinewidth\kern-\ruledlinewidth}
-
-% small is relatively new
-
-\letvalue{t\@@frame@@\v!small\v!small}\@@frame@@trules
-\letvalue{t\@@frame@@\v!off \v!small}\@@frame@@trules
-\letvalue{t\@@frame@@\v!small }\@@frame@@trules
-
-\letvalue{b\@@frame@@\v!small\v!small}\@@frame@@brules
-\letvalue{b\@@frame@@\v!off \v!small}\@@frame@@brules
-\letvalue{b\@@frame@@\v!small }\@@frame@@brules
-
-\letvalue{l\@@frame@@\v!small\v!small}\@@frame@@lrules
-\letvalue{l\@@frame@@\v!off \v!small}\@@frame@@lrules
-\letvalue{l\@@frame@@\v!small }\@@frame@@lrules
-
-\letvalue{r\@@frame@@\v!small\v!small}\@@frame@@rrules
-\letvalue{r\@@frame@@\v!off \v!small}\@@frame@@rrules
-\letvalue{r\@@frame@@\v!small }\@@frame@@rrules
-
-%D I condidered using the low level support command
-%D \type{\ruledhbox}, but this would slow down processing by a
-%D factor~3.
-
-% \framed
-% [width=4cm,height=3cm,rulethickness=3mm,
-% frame=off,rightframe=on,leftframe=on,topframe=on,bottomframe=on]
-% {}
-% \framed
-% [width=4cm,height=3cm,rulethickness=3mm,
-% frame=off,rightframe=small,leftframe=small,topframe=small,bottomframe=small]
-% {}
-% \framed
-% [width=4cm,height=3cm,rulethickness=3mm,
-% frame=off,rightframe=small,leftframe=small,topframe=small,bottomframe=on]
-% {}
-
-%D The next few macros are probably the most misused ones in
-%D \CONTEXT. They deal with putting rules around boxes, provide
-%D backgrounds, offer alignment features, and some more. We
-%D start with defining some booleans. These give an impression
-%D of what we are going to take into account.
-
-% todo: chardefs
-
-\newif\ifboxhasoffset
-\newif\ifboxhaswidth
-\newif\ifboxhasheight
-\newif\ifboxhasformat
-\newif\ifboxhasstrut
-\newif\ifboxisoverlaid
-\newif\ifboxhasframe
-\newif\ifdelayedstrut
-
-%D We also need a few \DIMENSIONS:
-
-\newdimen\@@localoffset
-\newdimen\@@globalwidth
-
-%D \macros
-%D {framed, setupframed}
-%D
-%D Ruled boxes are typeset using \type{\framed}. This command
-%D is quite versatile and, although some users will probably
-%D seldom use it, one cannot overlook its features.
-%D
-%D \showsetup{setupframed}
-%D \showsetup{framed}
-%D
-%D This general macro is a special version of an even more
-%D general case, that can easily be linked into other macros
-%D that need some kind of framing. The local version is called
-%D with an extra parameter: the variable identifier. The reason
-%D for passing this identifier between brackets lays in the
-%D mere fact that this way we can use the optional argument
-%D grabbers.
-
-\def\defaultframeoffset{.25ex}
-
-\unexpanded\def\framed
- {\bgroup
- \copylocalframed[\??ol][\??oi]% == \presetlocalframed[\??ol]%
- \dodoubleempty\startlocalframed[\??ol]}
-
-\def\presetlocalframed[#1]%
- {\copylocalframed[#1][\??oi]}
-
-% \def\copylocalframed[#1]#2[#3]%
-% {\copyparameters[#1][#3]%
-% [\c!width,\c!height,\c!radius,\c!corner,\c!depth,\c!offset,%
-% \c!autowidth,\c!empty,\c!component,\c!orientation,\c!lines,%
-% \c!align,\c!bottom,\c!top,\c!strut,\c!autostrut,\c!location,\c!setups,\c!extras,%
-% \c!foregroundstyle,\c!foregroundcolor,%
-% \c!background,\c!backgroundoffset,\c!backgroundcorner,\c!backgroundradius,\c!backgrounddepth,\c!backgroundcolor,\c!backgroundscreen,%
-% \c!frame,\c!frameoffset,\c!framecorner,\c!frameradius,\c!framedepth,\c!framecolor,\c!rulethickness,%
-% \c!topframe,\c!bottomframe,\c!leftframe,\c!rightframe]}
-
-% since framed is used all over the place, we have a (small) speedup)
-
-\def\copylocalframed[#1]#2[#3]%
- {\edef\copiedfrom{#1}\edef\copiedto{#3}%
- \docopyvalue\copiedfrom\copiedto\c!width
- \docopyvalue\copiedfrom\copiedto\c!height
- \docopyvalue\copiedfrom\copiedto\c!autowidth
- \docopyvalue\copiedfrom\copiedto\c!offset
- \docopyvalue\copiedfrom\copiedto\c!empty
- \docopyvalue\copiedfrom\copiedto\c!rulethickness
- \docopyvalue\copiedfrom\copiedto\c!radius
- \docopyvalue\copiedfrom\copiedto\c!corner
- \docopyvalue\copiedfrom\copiedto\c!depth
- \docopyvalue\copiedfrom\copiedto\c!frame
- \docopyvalue\copiedfrom\copiedto\c!framecolor
- \docopyvalue\copiedfrom\copiedto\c!foregroundstyle
- \docopyvalue\copiedfrom\copiedto\c!foregroundcolor
- \docopyvalue\copiedfrom\copiedto\c!lines
- \docopyvalue\copiedfrom\copiedto\c!orientation
- \docopyvalue\copiedfrom\copiedto\c!topframe
- \docopyvalue\copiedfrom\copiedto\c!bottomframe
- \docopyvalue\copiedfrom\copiedto\c!leftframe
- \docopyvalue\copiedfrom\copiedto\c!rightframe
- \docopyvalue\copiedfrom\copiedto\c!rulethickness
- \docopyvalue\copiedfrom\copiedto\c!frameoffset
- \docopyvalue\copiedfrom\copiedto\c!background
- \docopyvalue\copiedfrom\copiedto\c!component
- \docopyvalue\copiedfrom\copiedto\c!backgroundoffset
- \docopyvalue\copiedfrom\copiedto\c!backgroundscreen
- \docopyvalue\copiedfrom\copiedto\c!backgroundcolor
- \docopyvalue\copiedfrom\copiedto\c!align
- \docopyvalue\copiedfrom\copiedto\c!bottom
- \docopyvalue\copiedfrom\copiedto\c!top
- \docopyvalue\copiedfrom\copiedto\c!strut
- \docopyvalue\copiedfrom\copiedto\c!autostrut
- \docopyvalue\copiedfrom\copiedto\c!location
- \docopyvalue\copiedfrom\copiedto\c!component
- \docopyvalue\copiedfrom\copiedto\c!extras
- \docopyvalue\copiedfrom\copiedto\c!setups
- \docopyvalue\copiedfrom\copiedto\c!backgroundradius
- \docopyvalue\copiedfrom\copiedto\c!backgroundcorner
- \docopyvalue\copiedfrom\copiedto\c!backgrounddepth
- \docopyvalue\copiedfrom\copiedto\c!frameradius
- \docopyvalue\copiedfrom\copiedto\c!framecorner
- \docopyvalue\copiedfrom\copiedto\c!framedepth}
-
-\def\setupframed
- {\dodoubleempty\dosetupframed}
-
-\def\dosetupframed
- {\ifsecondargument
- \@EA\dodoublesetupframed
- \else
- \@EA\dosinglesetupframed
- \fi}
-
-\def\dosinglesetupframed[#1][#2]%
- {\getparameters[\??oi][#1]}
-
-\def\dodoublesetupframed[#1][#2]%
- {\bgroup
- \let\dodoubleempty\empty
- \def\doframed[##1]{\gdef\globalredefinedframed{\dodoubleempty\doframed[##1,#2]}}%
- \getvalue{#1}%
- \egroup
- \letvalue{#1}\globalredefinedframed}
-
-%D \startbuffer
-%D \setupframed [framecolor=yellow] \framed{A}
-%D \defineframed[myframed] [framecolor=blue] \myframed{B}
-%D \setupframed [myframed] [framecolor=red] \myframed{C}
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \presetlocalframed[myframed]
-%D \setuplocalframed[myframed][width=4cm,height=2cm]
-%D \localframed[myframed][framecolor=green]{oeps}
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-%D \macros
-%D {ifinframed}
-%D
-%D The normal case first presets all parameters and next starts
-%D looking for the user supplied ones. The first step is
-%D omitted in the local case, because these are preset at
-%D declaration time and keep their values unless explictly
-%D changed. By presetting the variables everytime the normal
-%D command is called, we can use this command nested, without
-%D the unwanted side effect of inheritance. The boolean is
-%D used to speed up the color stack.
-
-\newif\ifinframed
-
-\def\localframed
- {\bgroup
- \dodoubleempty\startlocalframed}
-
-%D The next one is faster on multiple backgrounds per page. No
-%D dimensions can be set, only frames and backgrounds.
-
-\def\fastlocalframed[#1]#2[#3]#4% 3-4
- {\bgroup
- \inframedtrue
- \edef\@@framed{#1}%
- % more bytes
- % \scratchdimen\framedparameter\c!frameoffset
- % \setevalue{\@@framed\c!frameoffset}{\the\scratchdimen}%
- % \doifnotvalue{\@@framed\c!backgroundoffset}\v!frame
- % {\scratchdimen\framedparameter\c!backgroundoffset
- % \setevalue{\@@framed\c!backgroundoffset}{\the\scratchdimen}}%
- % less bytes
- \@EA\freezedimenmacro\csname\@@framed\c!frameoffset\endcsname
- \doifnotvalue{\@@framed\c!backgroundoffset}\v!frame
- {\@EA\freezedimenmacro\csname\@@framed\c!backgroundoffset\endcsname}%
- % so far
- \setbox\framebox\hbox{#4}%
- \getparameters[\@@framed][#3]% no \expanded !
- % no, better in calling macro
- %
- % \edef\doframedsetups{\framedparameter\c!setups}%
- % \ifx\doframedsetups\empty\else
- % \edef\doframedsetups{\noexpand\setups[\doframedsetups]}%
- % \fi
- \removeframedboxdepth
- \edef\framedforegroundcolor{\framedparameter\c!foregroundcolor}%
- \ifx\framedforegroundcolor\empty\else\docolorframebox\fi
- \edef\overlaylinecolor{\framedparameter\c!framecolor}%
- \def \overlaylinewidth{\the\ruledlinewidth}% no edef
- \edef\@@localframing {\framedparameter\c!frame}%
- \ifx\@@localframing\v!overlay \else \ifx\@@localframing\v!none \else
- \edef\framedrulethickness{\framedparameter\c!rulethickness}%
- \ifx\framedrulethickness\empty\else
- \ruledlinewidth\framedrulethickness\relax
- \ifinheritruledlinewidth\linewidth\ruledlinewidth\fi
- \fi
- \dooutlinebox % real or invisible frame
- \fi \fi
- \edef\framedbackground{\framedparameter\c!background}%
- \ifx\framedbackground\empty\else\dobackedbox\fi
- \restoreframedboxdepth
- \box\framebox
- \egroup}
-
-%D Before we go into details, we present (and implement) the
-%D main framing routine. I saw no real reason for splitting the
-%D next two macros into smaller pieces. The content will be
-%D collected in a horizontal or vertical box with fixed or free
-%D dimensions and specific settings concerning aligment and
-%D offsets.
-%D
-%D In the first few lines, we pre||expand the frame and
-%D background offsets. We do so, because the can be defined in
-%D terms of the main offset. However, see for instance page
-%D backgrounds, when \type {#2} sets the offset to \type
-%D {overlay}, both offsets become invalid.
-%D
-%D Because it is used so often the he next macro is (and
-%D looks) rather optimized.
-
-\let\postprocessframebox\relax
-
-\let\@@framed\s!unknown
-
-\def\framedparameter#1%
- {\csname\@@framed#1\endcsname}
-
-\newdimen\!!framedwidth
-\newdimen\!!framedheight
-
-\def\startlocalframed[#1][#2]%
- {\bgroup
- \inframedtrue
- \edef\@@framed{#1}%
- % this piece of pre expansion is needed (sometimes used in frameoffset)
- % \doifvaluesomething{\@@framed\c!rulethickness} % obsolete
- % {\ruledlinewidth\getvalue{\@@framed\c!rulethickness}}% obsolete
- % this piece of pre expansion is needed (sometimes used circular)
- \setevalue{\@@framed\c!frameoffset}{\the\dimexpr\framedparameter\c!frameoffset\relax}%
- \doifnotvalue{\@@framed\c!backgroundoffset}\v!frame
- {\setevalue{\@@framed\c!backgroundoffset}{\the\dimexpr\framedparameter\c!backgroundoffset\relax}}%
- % to prevent deadlock in case of self refering
- \ifsecondargument % faster
- \getparameters[\@@framed][#2]% here !
- \fi
- % new, experimental dirty hook
- \framedparameter\c!extras
- % to get the right spacing
- \doifvaluesomething{\@@framed\c!foregroundstyle}
- {\@EA\doconvertfont\csname\@@framed\c!foregroundstyle\endcsname\empty}%
- % beware, both the frame and background offset can be overruled
- %
- \edef\doframedsetups{\framedparameter\c!setups}%
- \ifx\doframedsetups\empty\else
- \edef\doframedsetups{\noexpand\setups[\doframedsetups]}%
- \fi
- % the next macros are visible
- \edef\localoffset{\framedparameter\c!offset}%
- \edef\localwidth {\framedparameter\c!width}%
- \edef\localheight{\framedparameter\c!height}%
- \edef\localformat{\framedparameter\c!align}%
- \edef\localstrut {\framedparameter\c!strut}%
- % these are not
- \edef\@@localautostrut {\framedparameter\c!autostrut}%
- \edef\@@localframing {\framedparameter\c!frame}%
- \edef\@@locallocation {\framedparameter\c!location}%
- \edef\@@localorientation{\framedparameter\c!orientation}%
- %
- \edef\@@localautowidth {\framedparameter\c!autowidth}%
- %
- \ifx\@@localframing\v!overlay % no frame, no offset, no framewidth
- \boxhasframefalse
- \let\localoffset\v!overlay
- \else\ifx\@@localframing\v!none % no frame, no framewidth
- \boxhasframefalse
- \else
- \boxhasframetrue
- \fi\fi
- \ifboxhasframe
- \edef\framedrulethickness{\framedparameter\c!rulethickness}%
- \ifx\framedrulethickness\empty\else
- \ruledlinewidth\framedrulethickness\relax
- \ifinheritruledlinewidth\linewidth\ruledlinewidth\fi
- \fi
- \else
- \ruledlinewidth\zeropoint
- \fi
- \ifx\localformat\empty
- \boxhasformatfalse
- \else
- \boxhasformattrue
- \dosetraggedcommand\localformat
- \edef\dobeforeframedbox{\raggedtopcommand\framedparameter\c!top}%
- \edef\doafterframedbox {\framedparameter\c!bottom\raggedbottomcommand}%
- \fi
- \ifx\localoffset\v!none
- \boxhasoffsetfalse
- \boxhasstrutfalse
- \boxisoverlaidfalse
- \@@localoffset\ruledlinewidth
- \else\ifx\localoffset\v!overlay
- % \ifx\@@localframing\v!no \boxhasframefalse \fi % test first
- \boxhasoffsetfalse
- \boxhasstrutfalse
- \boxisoverlaidtrue
- \@@localoffset\zeropoint
- \else
- \boxhasoffsettrue
- \boxhasstruttrue
- \boxisoverlaidfalse
- \ifx\localoffset\v!default % new per 2-6-2000
- \let\localoffset\defaultframeoffset
- \letvalue{\@@framed\c!offset}\defaultframeoffset
- \else
- \let\defaultframeoffset\localoffset
- \fi
- \@@localoffset\dimexpr\localoffset+\ruledlinewidth\relax
- \fi\fi
- \!!framedheight\zeropoint
- \!!framedwidth \zeropoint
- \ifx\localwidth\v!fit
- \ifboxhasformat
- \boxhaswidthtrue
- \!!framedwidth\hsize
- \else
- \boxhaswidthfalse
- \fi
- \else\ifx\localwidth\v!fixed % equals \v!fit but no shapebox
- \ifboxhasformat
- \boxhaswidthtrue
- \!!framedwidth\hsize
- \else
- \boxhaswidthfalse
- \fi
- \else\ifx\localwidth\v!broad
- \boxhaswidthtrue
- \!!framedwidth\hsize
- \else\ifx\localwidth\v!local
- \boxhaswidthtrue
- \setlocalhsize
- \!!framedwidth\localhsize
- \else
- \boxhaswidthtrue
- \!!framedwidth\localwidth
- \fi\fi\fi\fi
- \ifx\localheight\v!fit
- \boxhasheightfalse % no longer: \boxhasstrutfalse
- \else\ifx\localheight\v!broad
- \boxhasheightfalse
- \else
- \boxhasheighttrue
- \!!framedheight\localheight
- \fi\fi
- \ifboxhasheight
- % obey user set height, also downward compatible
- \else
- \doifvaluesomething{\@@framed\c!lines}
- {\ifcase\framedparameter\c!lines\else
- \!!framedheight\framedparameter\c!lines\lineheight
- \edef\localheight{\the\!!framedheight}%
- \boxhasheighttrue
- \fi}%
- \fi
- % this is now an option: width=local
- %
- % \ifdim\!!framedwidth=\hsize
- % \parindent\zeropoint
- % \setlocalhsize
- % \!!framedwidth\localhsize
- % \fi
- % i.e. disable (colsetbackgroundproblemintechniek)
- \advance\!!framedwidth -2\@@localoffset
- \advance\!!framedheight -2\@@localoffset
- \ifx\localstrut\v!no
- \boxhasstrutfalse
- \else\ifx\localstrut\v!global
- \setstrut
- \else\ifx\localstrut\v!local
- \setfontstrut
- \else
- \setstrut
- \fi\fi\fi
- \ifboxhasstrut
- \let\localbegstrut\begstrut
- \let\localendstrut\endstrut
- \let\localstrut \strut
- \else
- \let\localbegstrut\pseudobegstrut % was: \relax
- \let\localendstrut\pseudoendstrut % was: \relax
- \let\localstrut \pseudostrut % was: \relax
- %\ifboxhasheight\ifdim\!!framedheight<\strutht % saveguard
- % \let\localbegstrut\relax % but not that
- % \let\localstrut \relax % save after all
- %\fi\fi
- \fi
- \ifx\@@localautostrut\v!yes
- \let\delayedbegstrut\relax
- \let\delayedendstrut\relax
- \let\delayedstrut \relax
- \else
- \let\delayedbegstrut\localbegstrut
- \let\delayedendstrut\localendstrut
- \let\delayedstrut \localstrut
- \let\localbegstrut \relax
- \let\localendstrut \relax
- \let\localstrut \relax
- \fi
- \ifboxhasheight
- \let\\\vboxednewline
- \ifboxhaswidth
- \let\hairline\vboxedhairline
- \ifboxhasformat
- \let\next\doformatboxSomeFormat
- \else
- \let\next\doformatboxNoFormat
- \fi
- \else
- \let\hairline\hboxedhairline
- \ifboxhasformat
- \let\next\doformatboxHeight
- \else
- \let\next\doformatboxVSize
- \fi
- \fi
- \else
- \ifboxhaswidth
- \ifboxhasformat
- \let\hairline\vboxedhairline
- \let\\\vboxednewline
- \let\next\doformatboxWidth
- \else
- \let\hairline\hboxedhairline
- \let\\\hboxednewline
- \let\next\doformatboxHSize
- \fi
- \else
- \let\hairline\hboxedhairline
- \let\\\hboxednewline
- \let\next\doformatboxNoSize
- \fi
- \fi
- \edef\framedwidth % a new feature, visible for user
- {\ifdim\!!framedwidth >\zeropoint\the\!!framedwidth \else\zeropoint\fi}%
- \edef\framedheight% a new feature, visible for user
- {\ifdim\!!framedheight>\zeropoint\the\!!framedheight\else\zeropoint\fi}%
- % we need to register the (outer) color
- \startregistercolor[\framedparameter\c!foregroundcolor]%
- % first alternative
- %\def\dowithframedbox%
- % {\let\postprocessframebox\relax %new
- % \aftergroup\stoplocalframed}%
- % \afterassignment\dowithframedbox
- % \setbox\framebox=\next}
- % second alternative
- %\dowithnextbox
- % {\setbox\framebox\flushnextbox
- % \let\postprocessframebox\relax %new
- % \stoplocalframed}
- % \next}
- \@@startframedorientation
- \afterassignment\dodowithframebox
- \setbox\framebox\next}
-
-\def\dowithframebox
- {% moved : \let\postprocessframebox\relax
- \stoplocalframed}
-
-\def\dodowithframebox
- {\aftergroup\dowithframebox}
-
-\let\doafterframedbox \relax
-\let\dobeforeframedbox\relax
-
-%D Carefull analysis of this macro will learn us that not all
-%D branches in the last conditionals can be encountered, that
-%D is, some assignments to \type{\next} will never occur.
-%D Nevertheless we implement the whole scheme, if not for
-%D future extensions.
-
-%D \macros
-%D {ifreshapeframebox}
-%D
-%D The last few lines tell what to do after the content of the
-%D box is collected and passed to the next macro. In the case
-%D of a fixed width and centered alignment, the content is
-%D evaluated and used to determine the most natural width. The
-%D rest of the code deals with backgrounds and frames.
-
-\newif\ifreshapeframebox \reshapeframeboxtrue
-
-%D Beware: setting \type {top} and \type {bottom} to nothing, may
-%D result in a frame that is larger that the given height! try:
-%D
-%D \starttyping
-%D \framed
-%D [height=3cm,top=,bottom=,offset=overlay]
-%D {\strut test \shapefill \strut test}
-%D \stoptyping
-%D
-%D This is intended behaviour and not a bug! One can always set
-%D
-%D \starttyping
-%D ...,bottom=\kern0pt,...
-%D \stoptyping
-
-\def\stoplocalframed
- {\dontshowcomposition
- \@@stopframedorientation % hm, wrong place ! should rotate the result (after reshape)
- \stopregistercolor
- \handleframedlocator\c!before\@@locallocation
- \ifboxhasformat
- \ifx\@@localautowidth\v!force
- \ifreshapeframebox\doreshapeframedbox\fi
- \boxhaswidthfalse
- \else
- \ifx\localwidth\v!fit
- \ifx\@@localautowidth\v!yes
- \ifreshapeframebox\doreshapeframedbox\fi
- \fi
- \boxhaswidthfalse
- \else\ifx\localwidth\v!fixed
- \boxhaswidthfalse
- \else
- \resetshapeframebox
- \fi\fi
- \fi
- \else
- \resetshapeframebox
- \fi
- \ifboxhaswidth
- \wd\framebox\!!framedwidth
- \fi
- \ifboxhasheight
- \ht\framebox\!!framedheight
- \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}%
- \edef\framedforegroundcolor{\framedparameter\c!foregroundcolor}%
- \ifx\framedforegroundcolor\empty\else\docolorframebox\fi
- \ifboxhasoffset
- \dooffsetframebox
- \fi
- \ifboxisoverlaid \else
- \dolocateframebox
- \fi
- \ifx\postprocessframebox\relax \else
- \let\next\postprocessframebox
- \let\postprocessframebox\relax % prevent nesting
- \next\framebox
- \fi
- \edef\overlaylinecolor{\framedparameter\c!framecolor}%
- \edef\overlaylinewidth{\the\ruledlinewidth}% \@@...
- \ifboxhasframe % real or invisible frame
- \dooutlinebox
- \fi
- \edef\framedbackground{\framedparameter\c!background}%
- \ifx\framedbackground\empty\else\dobackedbox\fi
- \handleframedlocator\c!after\@@locallocation
- \box\framebox
- \egroup
- \egroup}
-
-\def\installframedlocator#1#2#3%
- {\setvalue{\??ol:\c!location:\c!before:#1}{#2}%
- \setvalue{\??ol:\c!location:\c!after :#1}{#3}}
-
-\def\handleframedlocator#1#2%
- {\getvalue{\??ol:\c!location:#1:#2}}
-
-\def\doprelocframedbox#1%
- {\scratchdimen\dimexpr#1+\ruledlinewidth\relax
- \ifboxhasoffset
- \advance\scratchdimen \framedparameter\c!offset
- \fi
- \scratchskip\dimexpr\ht\framebox-\scratchdimen\relax}
-
-% \ruledhbox
-% {A
-% \framed[width=2cm,align=middle,location=hanging]{location\\equals\\hanging}
-% \framed[width=2cm,align=middle,location=depth] {location\\equals\\depth}
-% \framed[width=2cm,align=middle,location=height] {location\\equals\\height}
-% B}
-% \vskip2cm
-% \ruledhbox
-% {A
-% \framed[width=2cm,align=middle,location=low] {location\\equals\\low}
-% \framed[width=2cm,align=middle,location=line] {location\\equals\\line}
-% \framed[width=2cm,align=middle,location=high] {location\\equals\\high}
-% B}
-% \vskip2cm
-% \ruledhbox
-% {A
-% \framed[width=2cm,align=middle,location=top] {location\\equals\\top}
-% \framed[width=2cm,align=middle,location=bottom] {location\\equals\\bottom}
-% \framed[width=2cm,align=middle,location=lohi] {location\\equals\\lohi}
-% \framed[width=2cm,align=middle,location=middle] {location\\equals\\middle}
-% B}
-
-\installframedlocator \v!hanging % best with strut=no
- {}
- {\dp\framebox\ht\framebox
- \ht\framebox\zeropoint}
-
-\installframedlocator \v!depth
- {}
- {\ht\framebox\dimexpr\ht\framebox-\strutdp\relax
- \dp\framebox\strutdp
- \box\framebox}
-
-\installframedlocator \v!height
- {}
- {\dp\framebox\dimexpr\ht\framebox-\strutht\relax
- \ht\framebox\strutht
- \box\framebox}
-
-\installframedlocator \v!high
- {}
- {\doprelocframedbox\strutht
- \setbox\framebox\hbox{\lower\scratchskip\box\framebox}%
- \ht\framebox\strutht
- \dp\framebox\strutdp
- \hbox{\box\framebox}}
-
-\installframedlocator \v!line
- {}
- {\setbox\framebox\hbox{\lower.5\ht\framebox\box\framebox}%
- \ht\framebox.5\lineheight
- \dp\framebox.5\lineheight
- \hbox{\box\framebox}}
-
-\installframedlocator \v!low
- {}
- {\doprelocframedbox\strutdp
- \setbox\framebox\hbox{\lower\scratchdimen\box\framebox}%
- \ht\framebox\strutht
- \dp\framebox\strutdp
- \box\framebox}
-
-\installframedlocator \v!top
- {}
- {\doprelocframedbox\strutht
- \setbox\framebox\hbox{\lower\scratchskip\box\framebox}%
- \ht\framebox\scratchdimen
- \dp\framebox\scratchskip
- \hbox{\box\framebox}}
-
-\installframedlocator \v!middle
- {}
- {\scratchdimen.5\ht\framebox
- \setbox\framebox\hbox{\lower\scratchdimen\box\framebox}%
- \ht\framebox\scratchdimen
- \dp\framebox\scratchdimen
- \hbox{\box\framebox}}
-
-\installframedlocator \v!lohi
- {\handleframedlocator\c!before\v!middle}
- {\handleframedlocator\c!after \v!middle}
-
-\installframedlocator \v!bottom
- {}
- {\doprelocframedbox\strutdp
- \setbox\framebox\hbox{\lower\scratchdimen\box\framebox}%
- \ht\framebox\scratchskip
- \dp\framebox\scratchdimen
- \hbox{\box\framebox}}
-
-\installframedlocator \v!keep % retains height/depth
- {\removeframedboxdepth}
- {\restoreframedboxdepth}
-
-% also used in fastlocalframed
-
-\newdimen\originalframedwd
-\newdimen\originalframedht
-\newdimen\originalframeddp
-
-\def\removeframedboxdepth
- {\originalframedwd\wd\framebox
- \originalframedht\ht\framebox
- \originalframeddp\dp\framebox
- \ifzeropt\originalframeddp\else\setbox\framebox\hbox{\raise\originalframeddp\box\framebox}\fi
- \wd\framebox\originalframedwd
- \ht\framebox\dimexpr\originalframedht+\originalframeddp\relax
- \dp\framebox\zeropoint}
-
-\def\restoreframedboxdepth
- {\ifzeropt\originalframeddp\else\setbox\framebox\hbox{\lower\originalframeddp\box\framebox}\fi
- \wd\framebox\originalframedwd
- \ht\framebox\originalframedht
- \dp\framebox\originalframeddp}
-
-% \let\@@startframedorientation\relax
-% \let\@@stopframedorientation \relax
-
-% \framed[width=12cm,height=3cm,orientation=0]{\input ward\relax}
-% \framed[width=12cm,height=3cm,orientation=90]{\input ward\relax}
-% \framed[width=12cm,height=3cm,orientation=180]{\input ward\relax}
-% \framed[width=12cm,height=3cm,orientation=270]{\input ward\relax}
-% \framed[width=12cm,height=3cm,orientation=-90]{\input ward\relax}
-% \framed[width=12cm,height=3cm,orientation=-180]{\input ward\relax}
-% \framed[width=12cm,height=3cm,orientation=-270]{\input ward\relax}
-
-\def\@@startframedorientation
- {\let\@@stopframedorientation \relax
- \ifx\@@localorientation\empty\else
- \ifcase\@@localorientation\else
- \scratchcounter\@@localorientation
- \divide\scratchcounter\plustwo
- \ifodd\scratchcounter
- \swapmacros\framedwidth \framedheight
- \swapmacros\localwidth \localheight
- \swapdimens\!!framedheight\!!framedwidth
- \def\@@stopframedorientation{\@@dostopframedorientation\plusone}%
- \else
- \def\@@stopframedorientation{\@@dostopframedorientation\zerocount}%
- \fi
- \fi
- \fi}
-
-\def\@@dostopframedorientation#1%
- {\ifcase#1\else
- \swapmacros\framedwidth \framedheight
- \swapmacros\localwidth \localheight
- \swapdimens\!!framedheight\!!framedwidth
- \fi
- \setbox\framebox\hbox{\dorotatebox\@@localorientation\hbox{\box\framebox}}}
-
-%D The last conditional takes care of the special situation of
-%D in||line \inframed[height=3cm]{framed} boxes. Such boxes have
-%D to be \inframed{aligned} with the running text.
-
-\def\doinframed[#1]% we could omit #1] but readibility ...
- {\framed[\c!location=\v!low,#1]}
-
-\unexpanded\def\inframed
- {\dosingleempty\doinframed}
-
-%D When we set \type{empty} to \type{yes}, we get
-%D ourselves a frame and/or background, but no content, so
-%D actually we have a sort of phantom framed box.
-
-%D Because color marks and specials can interfere with
-%D spacing, we provide a way to specify a foregroundcolor.
-
-\def\docolorframebox
- {\doifvaluesomething{\@@framed\c!foregroundcolor}
- {\doifcolorelse{\framedparameter\c!foregroundcolor}
- {\setbox\framebox\hbox
- {\localcolortrue
- \color[\framedparameter\c!foregroundcolor]{\box\framebox}}}
- {}}}
-
-%D \macros
-%D {mframed, minframed}
-%D
-%D When Tobias asked how to frame mathematical elements in
-%D formulas, Taco's posted the next macro:
-%D
-%D \starttyping
-%D \def\mframed#1%
-%D {\relax
-%D \ifmmode
-%D \vcenter{\hbox{\framed{$\ifinner\else\displaystyle\fi#1$}}}%
-%D \else
-%D \framed{$#1$}%
-%D \fi}
-%D \stoptyping
-%D
-%D Because \type {\ifinner} does not (always) reports what
-%D one would expect, we move the test to the outer level. We
-%D also want to pass arguments,
-%D
-%D \starttyping
-%D \def\mframed%
-%D {\dosingleempty\domframed}
-%D
-%D \def\domframed[#1]#2% % tzt \dowithnextmathbox ?
-%D {\relax
-%D \ifmmode
-%D \ifinner
-%D \inframed[#1]{$#2$}%
-%D \else
-%D \vcenter{\hbox{\framed[#1]{$\displaystyle#2$}}}%
-%D \fi
-%D \else
-%D \inframed[#1]{$#2$}%
-%D \fi}
-%D \stoptyping
-%D
-%D Still better is the next alternative, if only because it
-%D takes care of setting the super- and subscripts styles
-
-\ifx\restoremathstyle\undefined \let\restoremathstyle\relax \fi
-
-\def\domframed[#1][#2]#3%
- {\begingroup
- \ifmmode
- \ifinner
- \let\mframedstyle\restoremathstyle
- \else
- \let\mframedstyle\displaystyle
- \fi
- \else
- \let\mframedstyle\restoremathstyle
- \fi
- #1\ifdone
- \def\normalstrut{$\mframedstyle\vphantom($}%
- \framed
- [\c!frameoffset=\@@oioffset,\c!offset=\v!overlay,#2]
- {$\mframedstyle#3$}%
- \else
- \inframed
- [#2]
- {$\mframedstyle#3$}%
- \fi
- \endgroup}
-
-\def\mframed
- {\dodoubleempty\domframed[\donetrue]}
-
-\def\inmframed
- {\dodoubleempty\domframed[\donefalse]}
-
-%D So instead of the rather versatile \type {\framed}, we ue
-%D the \type {\mframed}.
-%D
-%D \startbuffer
-%D \startformula
-%D x \times \mframed{y} \times y^{z_z}
-%D x \times \inmframed{y} \times y^{z_z}
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-%D
-%D However, we got into troubles when we want to nest sub- and
-%D superscripts, like in
-%D
-%D \startbuffer
-%D \startformula
-%D x \times \mframed{y} \times y^{\mframed{z}_{\mframed{z}}}
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-%D
-%D Therefore, we can best use \type {\super} and \type {\suber}
-%D instead of \type {^} and \type {_}. Both commands take care
-%D of proper font switching.
-%D
-%D \startbuffer
-%D \startformula
-%D x \times \mframed{y} \times y\super{\mframed{z}\suber{\mframed{z}}}
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-%D
-%D As usual, one can specify in what way the text should be
-%D framed. One should be aware of the fact that, inorder to
-%D preserve the proper spacing, the \type {offset} is set to
-%D \type {overlay} and \type {frameoffset} is used used
-%D instead.
-%D
-%D \startbuffer
-%D \startformula
-%D x \times y\super{\mframed[framecolor=red]{z}\suber{z}}
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-%D
-%D For inline use, we also provide the \type {\inmframed}
-%D alternative: we want $x \times \inmframed{y}$ in inline
-%D math, right?
-
-%D This previous framing macros needs a lot of alternatives for
-%D putting rules around boxes, inserting offsets and aligning
-%D text. Each step is handled by separate macros.
-
-\def\dowidenframebox#1%
- {\setbox\framebox\vbox
- {\kern#1\hbox{\kern#1\box\framebox\kern#1}\kern#1}}
-
-\def\dooffsetframebox{\dowidenframebox\localoffset}
-\def\dolocateframebox{\dowidenframebox\ruledlinewidth}
-
-%D Let's hope that the next few examples show us enough of
-%D what needs to be done by the auxiliary macros.
-%D
-%D \startbuffer
-%D \framed[height=1cm,offset=.5cm] {rule based learning}
-%D \framed[height=1cm,offset=0cm] {rule based learning}
-%D \framed[height=1cm,offset=none] {rule based learning}
-%D \framed[height=1cm,offset=overlay]{rule based learning}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \startlinecorrection
-%D \hbox{\getbuffer}
-%D \stoplinecorrection
-%D
-%D \startbuffer
-%D \framed[offset=.5cm] {rule based learning}
-%D \framed[offset=0cm] {rule based learning}
-%D \framed[offset=none] {rule based learning}
-%D \framed[offset=overlay]{rule based learning}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \startlinecorrection
-%D \hbox{\getbuffer}
-%D \stoplinecorrection
-%D
-%D \startbuffer
-%D \framed[strut=nee,offset=.5cm] {rule based learning}
-%D \framed[strut=nee,offset=0cm] {rule based learning}
-%D \framed[strut=nee,offset=none] {rule based learning}
-%D \framed[strut=nee,offset=overlay]{rule based learning}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \startlinecorrection
-%D \hbox{\getbuffer}
-%D \stoplinecorrection
-%D
-%D \startbuffer
-%D \framed[width=3cm,align=left] {rule\\based\\learning}
-%D \framed[width=3cm,align=middle] {rule\\based\\learning}
-%D \framed[width=3cm,align=right] {rule\\based\\learning}
-%D \framed[width=fit,align=middle] {rule\\based\\learning}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \startlinecorrection
-%D \hbox{\dontcomplain\getbuffer}
-%D \stoplinecorrection
-%D
-%D So now we're ready for the complicated stuff. We distinguish
-%D between borders with straight lines and those with round
-%D corners. When using the first alternative it is possible to
-%D turn off one or more lines. More fancy shapes are also
-%D possible by specifying dedicated backgrounds. Turning lines
-%D on and off is implemented as efficient as possible and as a
-%D result is interface language dependant. This next
-%D implementation evolved from simpler ones. It puts for
-%D instance the rules on top of the content and provides
-%D additional offset capabilities. The lot of calls to other
-%D macros makes this mechanism not that easy to comprehend.
-
-%D Getting the backgrounds right takes less code. Again we
-%D have to take care of additional offsets.
-
-\def\dobackedbox
- {\doifelsevalue{\@@framed\c!backgroundoffset}\v!frame % new
- {\dobackgroundbox\c!frameoffset}
- {\dobackgroundbox\c!backgroundoffset}}
-
-%D We handle left, right or middle alignment as well as fixed
-%D or free widths and heights. Each combination gets its own
-%D macro.
-
-%D The following code handles one-liners: \type{align={line,flushright}}.
-%D Beware, since we entered a group and either or not grab the next
-%D bgroup token, we need to finish the group in the oneliner mode.
-
-\ifx\raggedoneliner\undefined \chardef\raggedoneliner\zerocount \fi
-
-\def\doformatonelinerbox % beware: assumes explicit preceding bgroup
- {\ifcase\raggedoneliner
- \expandafter\nodoformatonelinerbox
- \else
- \expandafter\dodoformatonelinerbox
- \fi}
-
-\def\dodoformatonelinerbox
- {\dowithnextboxcontent
- {\ignorespaces}
- {\hbox to \hsize
- {\ifcase\raggedstatus\or\hss\or\hss\fi
- \unhbox\nextbox \removeunwantedspaces
- \ifcase\raggedstatus\or \or\hss\or\hss\fi}%
- \egroup}
- \hbox}
-
-\def\nodoformatonelinerbox % grabs {
- {\let\next=}
-
-%D The handlers:
-
-\def\doformatboxSomeFormat
- {\vbox to \!!framedheight
- \bgroup
- \let\postprocessframebox\relax
- \forgetall
- \oninterlineskip
- \hsize\!!framedwidth
- \vsize\!!framedheight
- \doframedsetups
- \raggedcommand
- \dobeforeframedbox
- \bgroup
- \localbegstrut
- \aftergroup\localendstrut
- \aftergroup\doafterframedbox
- \aftergroup\egroup
- \doformatonelinerbox}
-
-\def\doformatboxNoFormat
- {\vbox to \!!framedheight
- \bgroup
- \let\postprocessframebox\relax
- \forgetall
- \oninterlineskip
- \hsize\!!framedwidth
- \vsize\!!framedheight
- \doframedsetups
- \raggedcenter
- \vss
- \bgroup
- \localbegstrut
- \aftergroup\localendstrut
- \aftergroup\vss
- \aftergroup\egroup
- \doformatonelinerbox}
-
-\def\doformatboxHeight
- {\vbox to \!!framedheight
- \bgroup
- \let\postprocessframebox\relax
- \forgetall
- \oninterlineskip
- \doframedsetups
- \raggedcommand
- \vss
- \bgroup
- \aftergroup\localendstrut
- \aftergroup\vss
- \aftergroup\egroup
- \localbegstrut
- \doformatonelinerbox}
-
-\def\doformatboxWidth
- {\vbox
- \bgroup
- \let\postprocessframebox\relax
- \forgetall
- \oninterlineskip
- \hsize\!!framedwidth
- \doframedsetups
- \raggedcommand
- \dobeforeframedbox
- \bgroup
- \localbegstrut
- \aftergroup\localendstrut
- \aftergroup\doafterframedbox
- \aftergroup\egroup
- \doformatonelinerbox}
-
-\def\doformatboxVSize
- {\vbox to \!!framedheight
- \bgroup
- \let\postprocessframebox\relax
- \forgetall
- \vsize\!!framedheight
- \doframedsetups
- \vss
- \bgroup
- \aftergroup\vss
- \aftergroup\egroup
- \hbox
- \bgroup
- \aftergroup\egroup
- \localstrut
- \doformatonelinerbox}
-
-\def\doformatboxHSize
- {\hbox to \!!framedwidth
- \bgroup
- \let\postprocessframebox\relax
- \forgetall
- \doframedsetups
- \hss
- \localstrut
- \bgroup
- \aftergroup\hss
- \aftergroup\egroup
- \doformatonelinerbox}
-
-\def\doformatboxNoSize
- {\hbox
- \bgroup
- \let\postprocessframebox\relax
- \doframedsetups
- \localstrut
- \doformatonelinerbox}
-
-\let\doframedsetups\relax
-
-%D On the next page we show some examples of how these macros
-%D come into action. The examples show us how
-%D \type {fit}, \type {broad} dimensions influence the
-%D formatting. Watch the visualized struts. \footnote {Here we
-%D used \type {\showstruts}.}
-%D
-%D \startpostponing
-%D \bgroup
-%D \showstruts
-%D \dontcomplain
-%D \startlinecorrection
-%D \halign{#\enskip&#\enskip&#\enskip&#\enskip&#\enskip&#\cr
-%D \framed[width=.2\hsize, height=.2\hsize, align=] {a\par b\par c}&
-%D \framed[width=.2\hsize, height=broad, align=] {a\par b\par c}&
-%D \framed[width=.2\hsize, height=fit, align=] {a\par b\par c}&
-%D \framed[width=fit, height=.2\hsize, align=] {a\par b\par c}&
-%D \framed[width=fit, height=broad, align=] {a\par b\par c}&
-%D \framed[width=fit, height=fit, align=] {a\par b\par c}\cr
-%D \noalign{\vskip1em}
-%D \framed[width=.2\hsize, height=.2\hsize, align=yes] {a\par b\par c}&
-%D \framed[width=.2\hsize, height=broad, align=yes] {a\par b\par c}&
-%D \framed[width=.2\hsize, height=fit, align=yes] {a\par b\par c}&
-%D \framed[width=fit, height=.2\hsize, align=yes] {a\par b\par c}&
-%D \framed[width=fit, height=broad, align=yes] {a\par b\par c}&
-%D \framed[width=fit, height=fit, align=yes] {a\par b\par c}\cr
-%D \noalign{\vskip1em}
-%D \framed[width=.2\hsize, height=.2\hsize, align=right] {a\par b\par c}&
-%D \framed[width=.2\hsize, height=broad, align=right] {a\par b\par c}&
-%D \framed[width=.2\hsize, height=fit, align=right] {a\par b\par c}&
-%D \framed[width=fit, height=.2\hsize, align=right] {a\par b\par c}&
-%D \framed[width=fit, height=broad, align=right] {a\par b\par c}&
-%D \framed[width=fit, height=fit, align=right] {a\par b\par c}\cr
-%D \noalign{\vskip1em}
-%D \framed[width=.2\hsize, height=.2\hsize, align=left] {a\par b\par c}&
-%D \framed[width=.2\hsize, height=broad, align=left] {a\par b\par c}&
-%D \framed[width=.2\hsize, height=fit, align=left] {a\par b\par c}&
-%D \framed[width=fit, height=.2\hsize, align=left] {a\par b\par c}&
-%D \framed[width=fit, height=broad, align=left] {a\par b\par c}&
-%D \framed[width=fit, height=fit, align=left] {a\par b\par c}\cr
-%D \noalign{\vskip1em}
-%D \framed[width=.2\hsize, height=.2\hsize, align=middle] {a\par b\par c}&
-%D \framed[width=.2\hsize, height=broad, align=middle] {a\par b\par c}&
-%D \framed[width=.2\hsize, height=fit, align=middle] {a\par b\par c}&
-%D \framed[width=fit, height=.2\hsize, align=middle] {a\par b\par c}&
-%D \framed[width=fit, height=broad, align=middle] {a\par b\par c}&
-%D \framed[width=fit, height=fit, align=middle] {a\par b\par c}\cr}
-%D \stoplinecorrection
-%D \blank[2*big]
-%D \egroup
-%D \stoppostponing
-
-%D \macros
-%D {framednoflines, framedlastlength}
-%D
-%D It is possible to let the frame macro calculate the width
-%D of a centered box automatically (\type {fit}). When
-%D doing so, we need to reshape the box:
-
-% The next implementation is frozen! It preserves the depth,
-% otherwise we get problems with framed display math and auto
-% width.
-
-\newcount\framednoflines
-\newdimen\framedlastlength
-
-\def\resetshapeframebox
- {\framednoflines \zerocount
- \framedlastlength\zeropoint}
-
-\chardef\reshapeframeboxmethod\plusone % 0=no flush, 1=old method 2=no depth messing
-
-\def\shapeboxstrut % put this in front if needed !
- {\vrule\!!width\zeropoint\!!height\ht\shapebox\!!depth\dp\shapebox}
-
-\let\framedboxwidth \!!zeropoint
-\let\framedboxheight\!!zeropoint
-\let\framedboxdepth \!!zeropoint
-
-\def\doreshapeframedbox % frozen, that is ... \shapeboxstrut added
- {\ifvbox\framebox
- \beginofshapebox
- \unvcopy\framebox
- \endofshapebox
- \global\@@globalwidth\zeropoint
- \edef\framedboxwidth {\the\wd\framebox}%
- \edef\framedboxheight{\the\ht\framebox}%
- \edef\framedboxdepth {\the\dp\framebox}%
- \resetshapeframebox
- \reshapebox
- {\setbox0\hbox
- {\strut\ifhbox\shapebox\shapeboxstrut\unhbox\else\box\fi\shapebox}%
- \global\advance\framednoflines \plusone
- \ifdim\framedlastlength>\zeropoint\else
- \global\framedlastlength\wd0
- \fi
- \ifdim\wd0>\@@globalwidth
- \global\@@globalwidth\wd0
- \fi}%
- \ifreshapingfailed
- % no need for anothr pass or finalizer
- \else
- \dosetraggedcommand\localformat
- \raggedcommand
- \ifboxhasheight
- \setbox\framebox\vbox to \localheight
- {\hsize\@@globalwidth
- \reshapebox{\hbox to \hsize{\ifhbox\shapebox\shapeboxstrut\unhbox\else\box\fi\shapebox}}%
- \dobeforeframedbox
- \innerflushshapebox
- \doafterframedbox}%
- \else
- \setbox\framebox\vbox to \framedboxheight % \ht\framebox
- {\hsize\@@globalwidth
- \reshapebox{\hbox to \hsize{\ifhbox\shapebox\shapeboxstrut\unhbox\else\box\fi\shapebox}}%
- \ifcase\reshapeframeboxmethod
- \or \innerflushshapebox \or \innerflushshapebox
- \fi}%
- \ifcase\reshapeframeboxmethod \or
- \dp\framebox\framedboxdepth % \strutdp otherwise problem with math
- \fi
- \fi
- \ifdim\framedlastlength=\zeropoint\global\framedlastlength\wd\framebox\fi
- \ifcase\framednoflines\global\framednoflines\plusone\fi
- \fi
- \fi}
-
-%D The two variables \type {\framednoflines} and \type
-%D {\framedlastlength} can be used in a second pass to
-%D optimized framed material.
-
-% torture test / strange case (much depth) / method 2 needed
-%
-% \startTEXpage[frame=on]
-% \startformula \startalign \NC A \NC B \NR \intertext{test} \NC C \NC D \NR \stopalign \stopformula
-% test outside formula
-% \startformula \startalign \NC A \NC B \NR \intertext{test} \NC C \NC D \NR \stopalign \stopformula
-% \blank[big]
-% \startformula \startalign \NC \int_01 \NC B \NR \intertext{test} \NC \int_01 \NC D \NR \stopalign \stopformula
-% test outside formula
-% \startformula \startalign \NC \int_01 \NC B \NR \intertext{test} \NC \int_01 \NC D \NR \stopalign \stopformula
-% \stopTEXpage
-
-%D The examples on the next page show how one can give the
-%D frame as well as the background an additional offset and
-%D even a bit more depth. The blue outline is the frame, the
-%D red box is the background and the small black outline is the
-%D visualization of the resulting box, that is, we applied
-%D \type{\ruledhbox} to the result.
-
-%D \startpostponing
-%D \bgroup
-%D \unprotect
-%D \dontcomplain
-%D
-%D \startbuffer
-%D \vbox to \vsize
-%D \bgroup
-%D \startalignment[middle]
-%D \vss
-%D \dontleavehmode\vbox to .8\vsize
-%D \bgroup
-%D \hsize=300pt
-%D \setupframed
-%D [background=color,
-%D backgroundcolorachtergrondkleur=darkred,
-%D width=300pt,
-%D height=60pt,
-%D framecolorkaderkleur=DemoBlue,
-%D rulethickness=2pt]
-%D \def\status%
-%D {backgroundoffset=\framedparameter\c!backgroundoffset\\
-%D frameoffset=\framedparameter\c!frameoffset\\
-%D depth=\framedparameter\c!depth}
-%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=0pt,frameoffset=0pt]{\status}}
-%D \vss
-%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=5pt,frameoffset=0pt]{\status}}
-%D \vss
-%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=0pt,frameoffset=5pt]{\status}}
-%D \vss
-%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=2pt,frameoffset=5pt]{\status}}
-%D \vss
-%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=5pt,frameoffset=2pt]{\status}}
-%D \vss
-%D \dontleavehmode \ruledhbox{\framed[backgroundoffset=5pt,frameoffset=5pt]{\status}}
-%D \egroup
-%D \vss
-%D \stopalignment
-%D \egroup
-%D \stopbuffer
-%D
-%D \getbuffer \page
-%D
-%D {\setupframed[depth=4pt]\getbuffer} \page
-%D
-%D \protect
-%D \egroup
-%D \stoppostponing
-
-%D When typesetting the framed box inline, we have to keep the
-%D baseline intact outside as well as inside the framed box.
-
-\def\doinlineframedbox
- {\scratchdimen\dimexpr\strutdp+\ruledlinewidth\relax
- \ifboxhasoffset
- \advance\scratchdimen \framedparameter\c!offset
- \fi
- \setbox\framebox\hbox{\lower\scratchdimen\box\framebox}%
- \ht\framebox\strutht
- \dp\framebox\strutdp
- \box\framebox}
-
-%D We can also lower the box over the natural depth of the
-%D line.
-
-\def\doloweredframedbox
- {\ht\framebox\dimexpr\ht\framebox+\dp\framebox-\strutdp\relax
- \dp\framebox\strutdp
- \box\framebox}
-
-%D Hanging the content is mainly meant for cases like the
-%D following:
-%D
-%D \starttyping
-%D \framed[strut=no]
-%D {\framed[height=2cm,location=hanging]{test}%
-%D \framed[height=1cm,location=hanging]{test}}
-%D \stoptyping
-
-\def\dohangingframedbox % best with strut=no
- {\scratchdimen\dimexpr\ht\framebox+\dp\framebox\relax
- \ht\framebox\zeropoint
- \dp\framebox\scratchdimen}
-
-%D We can draw lines from left to right and top to bottom by
-%D using the normal \type{\hairline} command. Both directions
-%D need a different treatment.
-%D
-%D \startbuffer
-%D \framed[width=4cm] {alfa\hairline beta\hairline gamma}
-%D \framed[height=2cm] {alfa\hairline beta\hairline gamma}
-%D \framed[width=4cm,height=2cm]{alfa\hairline beta\hairline gamma}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \startlinecorrection
-%D \hbox{\getbuffer}
-%D \stoplinecorrection
-%D
-%D These macros try to adapt their behaviour as good as
-%D possible to the circumstances and act as natural as
-%D possible.
-
-\def\vboxedhairline
- {\bgroup
- \dimen2=\ifboxhasoffset \localoffset \else \zeropoint \fi
- \dimen4=\dimexpr\dimen2+\ruledlinewidth\relax
- \setbox0\vbox
- {\advance\hsize 2\dimen4
- \vskip\dimen2
- \hrule
- \!!height\ruledlinewidth
- \!!depth\zeropoint
- \!!width\hsize
- \vskip\dimen2}%
- %\endgraf\nointerlineskip\endgraf
- %\moveleft\dimen4\box0
- %\endgraf\nointerlineskip\localbegstrut
- \endgraf\obeydepth\nointerlineskip
- \moveleft\dimen4\box0
- \endgraf\nointerlineskip\localbegstrut % beware, we might kill it in a style using \vskip\lineheight
- \egroup} % so this must not be changed
-
-\def\hboxedhairline % use framed dimen
- {\bgroup
- \dimen2=\ifboxhasoffset \localoffset \else \zeropoint \fi
- \ifboxhasheight
- \dimen4\dimexpr\localheight/2+\strutdp-2\ruledlinewidth\relax
- \dimen6\dimexpr\localheight/2-\strutdp+2\ruledlinewidth\relax
- \else
- \dimen4\dimexpr\strutht+\dimen2\relax
- \dimen6\dimexpr\strutdp+\dimen2\relax
- \fi
- \unskip
- \setbox\scratchbox\hbox
- {\hskip\dimen2
- \vrule\!!height\dimen4\!!depth\dimen6\!!width\ruledlinewidth
- \hskip\dimen2}%
- \ht\scratchbox\strutht
- \dp\scratchbox\strutdp
- \box\scratchbox
- \ignorespaces
- \egroup}
-
-%D The argument of the frame command accepts \type{\\} as a
-%D sort of newline signal. In horizontal boxes it expands to a
-%D space.
-
-\def\vboxednewline
- {\endgraf\ignorespaces}
-
-\def\hboxednewline
- {\unskip\normalspace\ignorespaces}
-
-%D We can set each rule on or off. The default setting is
-%D inherited from \type{frame}. An earlier implementation
-%D use a bit different approach, but the new one seems more
-%D natural:
-%D
-%D \bgroup
-%D \setuptyping[margin=0pt]
-%D \startlinecorrection
-%D \startbuffer
-%D \framed[offset=overlay,frame=on]{\darkred\blackrule}
-%D \stopbuffer
-%D \hbox{\getbuffer\vbox{\typebuffer}}
-%D
-%D \startbuffer
-%D \framed[offset=overlay,frame=on,bottomframe=off]{\darkred\blackrule}
-%D \stopbuffer
-%D \hbox{\getbuffer\vbox{\typebuffer}}
-%D
-%D \startbuffer
-%D \framed[offset=overlay,frame=on,bottomframe=on]{\darkred\blackrule}
-%D \stopbuffer
-%D \hbox{\getbuffer\vbox{\typebuffer}}
-%D
-%D \startbuffer
-%D \framed[offset=overlay,frame=off]{\darkred\blackrule}
-%D \stopbuffer
-%D \hbox{\getbuffer\vbox{\typebuffer}}
-%D
-%D \startbuffer
-%D \framed[offset=overlay,frame=off,bottomframe=off]{\darkred\blackrule}
-%D \stopbuffer
-%D \hbox{\getbuffer\vbox{\typebuffer}}
-%D
-%D \startbuffer
-%D \framed[offset=overlay,frame=off,bottomframe=on]{\darkred\blackrule}
-%D \stopbuffer
-%D \hbox{\getbuffer\vbox{\typebuffer}}
-%D \stoplinecorrection
-%D \egroup
-
-%D \macros
-%D {setupblackrules}
-%D
-%D The graphic capabilities of \TEX\ do not go beyond simple
-%D filled rules, except of course when using specials. Let's
-%D start with a warning: using this commands is far more slower
-%D than using the \TEX\ primitives \type{\hrule} and
-%D \type{\vrule}, but they save us some tokens. The
-%D characteristics of these rule drawing command can be set by:
-%D
-%D \showsetup{setupblackrules}
-
-\def\setupblackrules
- {\dodoubleargument\getparameters[\??bj]}
-
-%D \macros
-%D {blackrule}
-%D
-%D The simple command draws only one rule. Its optional
-%D argument can be used to specify the dimensions. By setting
-%D the width, height or depth to \type {max}, one gets the
-%D natural dimensions.
-%D
-%D \showsetup{blackrule}
-
-\def\doblackrule[#1]%
- {\hbox\bgroup
- \getparameters[\??bj][#1]%
- \setstrut
- \doif\@@bjwidth \v!max{\def\@@bjwidth {1em}}%
- \doif\@@bjheight\v!max{\def\@@bjheight{\strutht}}%
- \doif\@@bjdepth \v!max{\def\@@bjdepth {\strutdp}}%
- \localstartcolor[\@@bjcolor]%
- \vrule
- \!!width \@@bjwidth
- \!!height\@@bjheight
- \!!depth \@@bjdepth
- \localstopcolor
- \egroup}
-
-\unexpanded\def\blackrule
- {\dosingleempty\doblackrule}
-
-%D \macros
-%D {blackrules}
-%D
-%D One can call for a sequence of black rules, if needed
-%D equally spaced over the given width.
-%D
-%D \showsetup{blackrules}
-%D
-%D The two alternative calls are therefore:
-%D
-%D \startbuffer
-%D Tell me, is this according to the \blackrules[n=6]?
-%D These \blackrules[alternativevariant=b,n=10,distance=.2em,width=4cm] are quite clear.
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D or:
-%D
-%D \startvoorbeeld
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D \stopvoorbeeld
-%D
-%D We could of course have implemented this macro using
-%D \type{\leaders}, but this would probably have taken more
-%D tokens.
-
-\def\doblackrules[#1]%
- {\hbox\bgroup
- \getparameters[\??bj][#1]%
- \!!widtha\@@bjwidth
- \!!widthb\@@bjdistance
- \doif\@@bjalternative\c!b
- {\scratchcounter\@@bjn
- \ifnum\scratchcounter=\plusone
- \!!widthb\zeropoint
- \else
- \advance\scratchcounter \minusone
- \advance\!!widtha -\scratchcounter\!!widthb
- \divide \!!widtha \@@bjn
- \fi}%
- \localstartcolor[\@@bjcolor]%
- \dorecurse\@@bjn
- {\vrule
- \!!width \!!widtha
- \!!height\@@bjheight
- \!!depth \@@bjdepth
- \hskip\!!widthb}%
- \unskip
- \localstopcolor
- \egroup}
-
-\unexpanded\def\blackrules
- {\dosingleempty\doblackrules}
-
-%D The next commands can be used to draw margin rules. We
-%D support two methods: \marginrule{one for in||line use} and
-%D one that acts on a paragraph. Drawing a margin rule is
-%D rather straightforward because we can use the commands that
-%D put text in the margin.
-
-\def\dodrawmarginrule
- {\setbox\scratchbox\hbox
- {\vrule\!!depth\strutdepth\!!height\strutheight\!!width\@@karulethickness}%
- \smashbox\scratchbox % no \vsmash !!!
- \box\scratchbox}
-
-\def\drawmarginrule
- {\strut\inleft{\dodrawmarginrule}}
-
-%D \macros
-%D {marginrule}
-%D
-%D The first method gobbles words and simply puts a bar in the
-%D margin. This method is not entirely robust.
-%D
-%D \showsetup{marginrule}
-
-\definecomplexorsimple\marginrule
-
-\def\simplemarginrule
- {\let\processword\drawmarginrule
- \processwords}
-
-\def\complexmarginrule[#1]%
- {\ifnum#1<\@@kalevel\relax \else
- \def\@@kadefaultwidth{#1}%
- \expandafter\simplemarginrule
- \fi}
-
-%D We need an auxiliary variable
-
-\def\@@kadefaultwidth{1}
-
-%D \macros
-%D {setupmarginrules}
-%D
-%D This macro definitions show us that we can pass an optional
-%D level, which is matched against the previous set one. The
-%D level can be set up with
-%D
-%D \showsetup{setupmarginrules}
-
-\def\setupmarginrules
- {\dodoubleargument\getparameters[\??ka]}
-
-%D \macros
-%D {startmarginrule}
-%D
-%D The second method collects text and reformats it afterwards,
-%D using the shapebox macros. We prevent local margin rules.
-%D
-%D \showsetup{startmarginrule}
-
-\definecomplexorsimple\startmarginrule
-
-\def\simplestartmarginrule
- {\bgroup
- \let\drawmarginrule\relax
- \let\stopmarginrule\dostopmarginrule
- \beginofshapebox}
-
-\def\complexstartmarginrule[#1]%
- {\bgroup
- \let\drawmarginrule\relax
- \ifnum#1<\@@kalevel\relax
- \let\stopmarginrule\egroup
- \else
- \def\@@kadefaultwidth{#1}%
- \let\stopmarginrule\dostopmarginrule
- \expandafter\beginofshapebox
- \fi}
-
-\def\dostopmarginrule
- {\endofshapebox
- \reshapebox
- {\hbox{\inleftmargin{\dodrawmarginrule}\box\shapebox}}%
- \flushshapebox
- \egroup}
-
-%D \startbuffer
-%D \setupmarginrules[level=5]
-%D
-%D \startmarginrule[1]
-%D First we set the level at~5. Next we typeset this first
-%D paragraph as a level~1 one. As expected no rule show up.
-%D \stopmarginrule
-%D
-%D \startmarginrule[5]
-%D The second paragraph is a level~5 one. As we can see here,
-%D the marginal rule gets a width according to its level.
-%D \stopmarginrule
-%D
-%D \startmarginrule[8]
-%D It will of course be no surprise that this third paragraph
-%D has a even thicker margin rule. This behavior can be
-%D overruled by specifying the width explictly.
-%D \stopmarginrule
-%D \stopbuffer
-%D
-%D In next example we show most features. Watch the rule
-%D thickness adapting itself to the level.
-%D
-%D \startvoorbeeld
-%D \getbuffer
-%D \stopvoorbeeld
-%D
-%D We just said:
-%D
-%D \typebuffer
-
-%D \macros
-%D {vl, hl}
-%D
-%D The command \type{\vl} draws a vertical rule \vl\ with strut
-%D dimensions, multiplied with the factor specified in the
-%D optional argument. The height and depth are clipped \vl[3]
-%D to the baselinedistance. Its horizontal counterpart
-%D \type{\hl} draws a horizontal rule \hl\ with a width of 1em,
-%D multiplied with the optional factor. The horizontal rule is
-%D drawn on top of the baseline.
-%D
-%D \showsetup{vl}
-%D \showsetup{hl}
-
-\def\complexvl[#1]%
- {\bgroup
- \!!dimena#1\strutht
- \!!dimenb#1\strutdp
- \setbox\scratchbox\hbox
- {\vrule
- \!!width \linewidth
- \!!height\!!dimena
- \!!depth \!!dimenb}%
- \dp\scratchbox\strutdp
- \ht\scratchbox\strutht
- \box\scratchbox
- \egroup}
-
-\def\complexhl[#1]%
- {\hbox
- {\vrule
- \!!width #1\s!em
- \!!height\linewidth
- \!!depth \zeropoint}}
-
-\definecomplexorsimple\vl \def\simplevl{\complexvl[1]}
-\definecomplexorsimple\hl \def\simplehl{\complexhl[1]}
-
-%D \macros
-%D {hairline, thinrule, thinrules, setupthinrules}
-%D
-%D Drawing thin lines can of course easily be accomplished by
-%D the \TEX\ primitives \type{\hrule} and \type{\vrule}. The
-%D next few macros however free us from some specifications.
-%D
-%D \startbuffer
-%D some text
-%D
-%D \hairline
-%D
-%D some more text
-%D
-%D \thinrule
-%D
-%D more and more text
-%D
-%D hi \thinrule\ there
-%D
-%D and then the final text
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D becomes
-%D
-%D \startvoorbeeld
-%D \getbuffer
-%D \stopvoorbeeld
-%D
-%D So we've got
-%D
-%D \showsetup{hairline}
-%D \showsetup{thinrule}
-%D
-%D Both can be set up with:
-%D
-%D \showsetup{setupthinrules}
-%D
-%D We also have
-%D
-%D \showsetup{thinrules}
-%D
-%D which looks like: \thinrules[n=2]
-
-\def\thinrule
- {\strut
- \bgroup
- \chardef\ruletype\plusone
- \processaction
- [\@@dlalternative]
- [ \v!a=>\chardef\ruletype0,% no line
- %\v!b=>\chardef\ruletype1,% height/depth
- \v!c=>\chardef\ruletype2,% topheight/botdepth
- % 11=>\chardef\ruletype1,% fallback for backgrounds
- 0=>\chardef\ruletype0,% compatible with backgrounds
- % 1=>\chardef\ruletype1,% compatible with backgrounds
- 2=>\chardef\ruletype2]% compatible with backgrounds
- \doifsomething\@@dlrulethickness
- {\linewidth\@@dlrulethickness}%
- \ifdim\linewidth=\zeropoint
- \chardef\ruletype\zerocount
- \else
- \doifnot\@@dlframe\v!on{\chardef\ruletype\zerocount}%
- \fi
- \ifnum\ruletype=\plusone
- \doif\@@dlheight\v!max{\let\@@dlheight\!!plusone}%
- \doif\@@dldepth \v!max{\let\@@dldepth \!!plusone}%
- \else
- \let\@@dlheight\!!plusone
- \let\@@dldepth\!!plusone
- \fi
- \freezedimensionwithunit\@@dlheight\strutht
- \freezedimensionwithunit\@@dldepth\strutdp
- \divide\linewidth \plustwo
- \doifelse\@@dlbackground\v!color
- {\startcolor[\@@dlbackgroundcolor]%
- \ifnum\ruletype=\plustwo % prevent overshoot due to rounding
- \leaders
- \hrule
- \!!height\dimexpr\@@dlheight-.5\linewidth\relax
- \!!depth \dimexpr\@@dldepth -.5\linewidth\relax
- \hfill
- \else
- \leaders
- \hrule
- \!!height\@@dlheight
- \!!depth \@@dldepth
- \hfill
- \fi
- \stopcolor
- \ifcase\ruletype
- % no rule
- \or
- \startcolor[\@@dlcolor]%
- \hfillneg
- \leaders\hrule\!!height\linewidth\!!depth\linewidth\hfill
- \stopcolor
- \or
- \startcolor[\@@dlcolor]%
- \hfillneg\leaders\hrule\!!height\dimexpr-\@@dldepth+\linewidth\relax\!!depth\@@dldepth\hfill
- \hfillneg\leaders\hrule\!!height\@@dlheight\!!depth\dimexpr-\@@dlheight+\linewidth\relax\hfill
- \stopcolor
- \fi}
- {\ifcase\ruletype \else
- \startcolor[\@@dlcolor]%
- \leaders\hrule\!!height\@@dlheight\!!depth\@@dldepth\hfill
- \stopcolor
- \fi}%
- \strut
- \carryoverpar\egroup}
-
-\def\hairline
- {\endgraf
- \thinrule
- \endgraf}
-
-\def\dosetupthinrules[#1]%
- {\getparameters[\??dl][#1]}
-
-\def\setupthinrules
- {\dosingleargument\dosetupthinrules}
-
-\def\dothinrules[#1]%
- {\bgroup
- \dosetupthinrules[#1]%
- \@@dlbefore
- \assignvalue\@@dlinterlinespace\@@dlinterlinespace{1.0}{1.5}{2.0}%
- \spacing\@@dlinterlinespace
- \dorecurse\@@dln
- {\ifnum\recurselevel=\@@dln \dothinrulesnobreak \else
- \ifnum\recurselevel=2 \dothinrulesnobreak \fi\fi
- \thinrule
- \ifnum\recurselevel<\@@dln\relax
- % test needed, else messed up whitespace
- \ifx\@@dlinbetween\empty
- \softbreak
- \else
- \endgraf
- \nowhitespace
- \@@dlinbetween
- \fi
- \fi}%
- \doifelsenothing\@@dlafter
- {\carryoverpar\egroup}
- {\@@dlafter\egroup}}
-
-\def\thinrules
- {\dosingleempty\dothinrules}
-
-%D A couple of examples are given below.
-%D
-%D \startbuffer
-%D \setupthinrules[n=3,inbetween=,color=gray]
-%D
-%D test test \thinrules\ test test \par
-%D test test \thinrules [color=green] test test \par
-%D test test \thinrules [height=max, depth=max] test test \par
-%D
-%D \setupthinrules[height=.9,depth=.9]
-%D
-%D test test \thinrules\ test test \par
-%D test test \thinrules [alternativevariant=b] test test \par
-%D test test \thinrules [alternativevariant=c] test test \par
-%D test test \thinrules [alternativevariant=c,inbetween=\vskip2ex] test test \par
-%D \stopbuffer
-%D
-%D \typebuffer {\getbuffer}
-%D
-%D There are a couple of alternative ways to visualize rules
-%D using backgrounds. At first sight these may look strange,
-%D but they make sense in educational settings. The
-%D alternatives are more or less compatible with the more
-%D advanced \METAPOST\ based implementation.
-%D
-%D \startbuffer[a]
-%D \setupthinrules
-%D [n=2,
-%D backgroundcolor=gray ,
-%D rulethickness=1pt,
-%D colorkleur=donkerblauw,
-%D after=\blank,
-%D before=\blank]
-%D \stopbuffer
-%D
-%D \typebuffer[a]
-%D
-%D \startbuffer[b]
-%D \thinrules[alternativevariant=a]
-%D \thinrules[alternativevariant=b]
-%D \thinrules[alternativevariant=c]
-%D \stopbuffer
-%D
-%D \typebuffer[b] \getbuffer[a,b]
-%D
-%D \startbuffer[b]
-%D \thinrules[alternativevariant=a,background=color]
-%D \thinrules[alternativevariant=b,background=color]
-%D \thinrules[alternativevariant=c,background=color]
-%D \stopbuffer
-%D
-%D \typebuffer[b] \getbuffer[a,b]
-%D
-%D \startbuffer[b]
-%D \thinrules[alternativevariant=a,height=.8,depth=.8,background=color]
-%D \thinrules[alternativevariant=b,height=.8,depth=.8,background=color]
-%D \thinrules[alternativevariant=c,height=.8,depth=.8,background=color]
-%D \stopbuffer
-%D
-%D \typebuffer[b] \getbuffer[a,b]
-
-%D \macros
-%D {optimizethinrules}
-%D
-%D By saying \type {\thinrulestrue} or \type {-false}, we
-%D can influence the way dangling lines are handled.
-
-\newif\ifoptimizethinrules \optimizethinrulestrue
-
-\def\dothinrulesnobreak
- {\ifoptimizethinrules\penalty500\fi}
-
-%D \macros
-%D {startframedtext, setupframedtexts, defineframedtext}
-%D
-%D The general framing command we discussed previously, is not
-%D entirely suited for what we call framed texts, as for
-%D instance used in intermezzo's. The next examples show what
-%D we have in mind.
-%D
-%D \startbuffer[framed-0]
-%D \setupframedtexts
-%D [frame=off,
-%D width=\hsize,
-%D background=screen]
-%D
-%D \startframedtext
-%D By default the framed text is centered \dots
-%D \stopframedtext
-%D
-%D \startframedtext[right]
-%D \dots\ but we can also align left, middle and right.
-%D \stopframedtext
-%D \stopbuffer
-%D
-%D \startbuffer[framed-1]
-%D \defineframedtext
-%D [Example]
-%D [width=6cm,
-%D height=5cm]
-%D
-%D \startExample
-%D \typebuffer[framed-1]
-%D \stopExample
-%D \stopbuffer
-%D
-%D \startbuffer[framed-2]
-%D \defineframedtext
-%D [Example]
-%D [width=6cm]
-%D
-%D \startExample
-%D \typebuffer[framed-2]
-%D \stopExample
-%D \stopbuffer
-%D
-%D \startbuffer[framed-3]
-%D \defineframedtext
-%D [Example]
-%D [height=5cm]
-%D
-%D \startExample
-%D \typebuffer[framed-3]
-%D \stopExample
-%D \stopbuffer
-%D
-%D \startbuffer[framed-4]
-%D \defineframedtext
-%D [Example]
-%D [width=fit,height=broad]
-%D
-%D \Example{a very exciting example}
-%D \stopbuffer
-%D
-%D \bgroup \setuptyping[margin=0pt] \getbuffer[framed-0] \egroup
-%D \bgroup \setuptyping[margin=0pt] \getbuffer[framed-1] \egroup
-%D \bgroup \setuptyping[margin=0pt] \getbuffer[framed-2] \egroup
-%D \bgroup \setuptyping[margin=0pt] \getbuffer[framed-3] \egroup
-%D \bgroup \setuptyping[margin=0pt] \getbuffer[framed-4] \egroup
-%D
-%D Here we can see that we have a predefined framed text class
-%D as well as the tools for defining our own. So we have:
-%D
-%D \showsetup{setupframedtexts}
-%D
-%D as well as the definition command:
-%D
-%D \showsetup{defineframedtext}
-%D
-%D that generates two commands:
-%D
-%D \showsetup{start<<framedtext>>}
-%D \showsetup{<<framedtext>>}
-%D
-%D The next definition shows the defaults.
-
-\def\dodefineframedtext[#1][#2]%
- {\presetlocalframed[\??kd#1]%
- \getparameters[\??kd#1]
- [\c!width=0.75\hsize,
- \c!height=\v!fit,
- \c!align=\v!yes,
- \c!top=,
- \c!bottom=\vfill,
- \c!offset=1em,
- \c!bodyfont=,
- \c!style=,
- \c!color=,
- \c!left=,
- \c!right=\hfill,
- \c!before=\blank,
- \c!after=\blank,
- \c!inner=,
- \c!frame=\v!on,
- \c!topframe=,
- \c!bottomframe=,
- \c!leftframe=,
- \c!rightframe=,
- \c!radius=.5\bodyfontsize,
- \c!corner=\v!rectangular,
- \c!foregroundcolor=,
- \c!foregroundstyle=,
- \c!background=,
- \c!backgroundcolor=,
- \c!backgroundscreen=\@@rsscreen,
- \c!linecorrection=\v!on,
- \c!depthcorrection=\v!on,
- \c!margin=\v!standard,
- \c!orientation=,
- \c!indenting=,
- #2]%
- \setvalue{\e!start#1}{\dostartframedtext[#1]}%
- \setvalue{\e!stop #1}{\dostopframedtext }%
- \setvalue {#1}{\doframedtext [#1]}}
-
-\def\defineframedtext
- {\dodoubleempty\dodefineframedtext}
-
-%D We define the general (and original) case by just saying:
-
-\defineframedtext[\v!framedtext]
-
-%D We need several steps before the actual job is done,
-%D because we have to handle an optional identifier (and
-%D because these commands evolved out of a single case).
-
-\def\framedtextparameter#1#2%
- {\csname\??kd#1#2\endcsname}
-
-\def\dosetupframedtexts[#1][#2]%
- {\ifsecondargument
- \def\docommand##1{\getparameters[\??kd##1][#2]}%
- \processcommacommand[#1]\docommand % new, #1 may be macro
- \else
- \getparameters[\??kd\v!framedtext][#1]%
- \fi}
-
-\def\setupframedtexts
- {\dodoubleempty\dosetupframedtexts}
-
-\def\dostartframedtext
- {\bgroup\dotripleempty\dodostartframedtext}
-
-\def\dodostartframedtext[#1][#2][#3]%
- {\doifassignmentelse{#2}
- {\dododostartframedtext[#1][][#2]}
- {\dododostartframedtext[#1][#2][#3]}}
-
-\setfalse\framedtextlocationnone
-
-\def\checkframedtext % messy dependency
- {\ifinsidefloat
- \localhsize\hsize
- \else\ifdim\sidefloatvsize>\zeropoint % will be proper handle
- % \strut % rather clean way to invoke the sidefloat OTR
- % \setbox0=\lastbox % and get the widths set, so from now on we
- % \setlocalhsize % can have framed texts alongside sidefloats
- \checksidefloat
- \setlocalhsize
- \else
- \localhsize\hsize
- \fi\fi}
-
-\def\dododostartframedtext[#1][#2][#3]% #3 only passed to framed, not to framedtext
- {\doifsomething{#2}{\setvalue{\??kd#1\c!location}{#2}}% does not listen to #3
- \setfalse\framedtextlocationnone
- \processaction % \v!low en \v!depth are already taken !
- [\framedtextparameter{#1}\c!location]
- [ \v!left=>\letvalue{\??kd#1\c!left }\relax
- \letvalue{\??kd#1\c!right}\hfill,
- \v!right=>\letvalue{\??kd#1\c!left }\hfill
- \letvalue{\??kd#1\c!right}\relax,
- \v!middle=>\letvalue{\??kd#1\c!left }\hfill
- \letvalue{\??kd#1\c!right}\hfill,
- \v!none=>\letvalue{\??kd#1\c!left }\relax % new
- \letvalue{\??kd#1\c!right}\relax % new
- \settrue\framedtextlocationnone]%
- \letvalue{\??kd#1\c!location}\empty
- % removed 06/2001
- % \forgetparindent
- % added 06/2001 [see demo-bbv]
- \localhsize\hsize \checkframedtext
- % so far
- \setbox\framebox\vbox
- \startboxedcontent
- \hsize\localhsize
- % \insidefloattrue % ? better
- \expanded{\switchtobodyfont[\framedtextparameter{#1}\c!bodyfont]}%
- \startcolor[\framedtextparameter{#1}\c!color]%
- \localframed[\??kd#1][\c!strut=\v!no,#3]% todo: use delayedstrut
- \bgroup
- \let\\=\endgraf
- \framedtextparameter{#1}\c!inner % oud spul
- \doifvalue{\??kd#1\c!depthcorrection}\v!on % new, inside box
- {\bgroup
- \verticalstrut
- % we need \nowhitespace in case of setups setting whitespace
- % nb, not safe, text vs \vbox as next
- \vskip-\struttotal
- \nowhitespace % na vskip ! new 20/05/2004, fails with next content being box (\scale{..})
- }%
- \doinhibitblank % \blank[\v!disable]% plaatst signal
-\setupindenting[\framedtextparameter{#1}\c!indenting]%
- \doconvertfont{\framedtextparameter{#1}\c!style}\empty
- \def\dostopframedtext{\dodostopframedtext{#1}{#2}}}
-
-%D The \type {none} option is handy for nested usage, as
-%D in the presentation styles, where we don't want
-%D interference.
-
-\def\dodostopframedtext#1#2% % no \baselinecorrection, see faq docs
- {\endgraf
- \removelastskip
- \doifvalue{\??kd#1\c!depthcorrection}\v!on % local and global
- {\forgetall
- \vskip-\struttotal
- \verticalstrut
- \egroup
- \forgetall
- \vskip-\lineheight
- % will be an option, not default
- % \setbaselinecorrections
- % \donegbotbaselinecorrection
- \verticalstrut}
- \stopboxedcontent
- \stopcolor
- \ifconditional\framedtextlocationnone
- \egroup
- \box\framebox
- \else\ifinsidefloat
- \egroup
- \box\framebox
- \else
- \egroup
- \doplacement[\??kd#1][\c!depthcorrection=\v!off]{\box\framebox}%
- \fi\fi
- \egroup}
-
-%D Placement can be ignored:
-%D
-%D \starttyping
-%D \hbox to \hsize \bgroup
-%D \startframedtext[none][width=.5\textwidth] \input tufte \stopframedtext
-%D \startframedtext[none][width=.5\textwidth] \input zapf \stopframedtext
-%D \egroup
-%D
-%D \hbox to \hsize \bgroup
-%D \setupframedtexts[location=none]%
-%D \startframedtext[width=.5\textwidth] \input zapf \stopframedtext
-%D \startframedtext[width=.5\textwidth] \input tufte \stopframedtext
-%D \egroup
-%D \stoptyping
-
-%D The simple brace (or group) delimited case is typeset
-%D slightly different and is not aligned.
-
-\def\doframedtext
- {\bgroup\dodoubleempty\dodoframedtext}
-
-\def\dodoframedtext[#1][#2]% beware!
- {\expanded{\switchtobodyfont[\getvalue{\??kd#1\c!bodyfont}]}%
- \localframed[\??kd#1][\c!strut=\v!no,#2]%
- \bgroup
- \blank[\v!disable]%
- \let\\=\endgraf
- \getvalue{\??kd#1\c!inner}% % kleur naar outer level
- \dostartattributes{\??kd#1}\c!style\c!color\empty
- \bgroup
- \aftergroup\docloseframedtext
- \let\next=}
-
-\def\docloseframedtext
- {\removelastskip
- \dostopattributes
- \egroup
- \egroup}
-
-%D \macros
-%D {defineframed}
-%D
-%D One can also define simple framed texts, using:
-%D
-%D \showsetup{defineframed}
-
-\def\defineframed
- {\dodoubleempty\dodefineframed}
-
-\def\dodefineframed[#1][#2]%
- {\iffirstargument
- \setvalue{#1}{\dodoubleempty\doframed[#2]}%
- \fi}
-
-\def\doframed[#1][#2]%
- {\framed[#1,#2]}
-
-%D \macros
-%D {textrule, starttextrule, setuptextrules}
-%D
-%D Putting rules before and after a paragraph is very space
-%D sensitive, but the next command handles that quite well. It
-%D comes in two disguises:
-%D
-%D \startbuffer
-%D \textrule[top]{fragments}
-%D \input reich
-%D \textrule
-%D \stopbuffer
-%D
-%D \bgroup \typebuffer \getbuffer \egroup
-%D
-%D \startbuffer
-%D \setuptextrules
-%D [width=90pt,distance=12pt,rulecolor=blue,
-%D bodyfont=small,style=\sc,color=red]
-%D
-%D \starttextrule{Ship Building Tools}
-%D \nl \setuptolerance[tolerant] \input materie
-%D \stoptextrule
-%D \stopbuffer
-%D
-%D \bgroup \typebuffer \getbuffer \egroup
-%D
-%D \startbuffer
-%D \setuptextrules
-%D [location=inmargin,
-%D bodyfont=small,style=slantedbold]
-%D
-%D \starttextrule{wonderful}
-%D \input tufte
-%D \stoptextrule
-%D \stopbuffer
-%D
-%D \bgroup \typebuffer \getbuffer \egroup
-%D
-%D The formal definition of these commands is:
-%D
-%D \showsetup{textrule}
-%D \showsetup{starttextrule}
-%D \showsetup{setuptextrules}
-%D
-%D The implementation looks a bit complicated due to the
-%D optional arguments.
-
-\def\setuptextrules
- {\dodoubleargument\getparameters[\??tl]}
-
-\def\complextextrule[#1]% if needed we can make it installable
- {\let\next\dobottomtextrule
- \processaction
- [#1]
- [ \v!top=>\let\next\dotoptextrule,
- \v!middle=>\let\next\domiddletextrule,
- \v!bottom=>\let\next\dobottomtextrule]%
- \dosinglegroupempty\next}
-
-\definecomplexorsimple\textrule
-
-\def\simpletextrule
- {\dosinglegroupempty\dounknowntextrule}
-
-\def\docomplextextrule#1%
- {\bgroup
- \advance\hsize\dimexpr-\rightskip-\leftskip\relax
- \setbox\scratchbox\hbox to \hsize
- {\dimen4\dimexpr .5ex+.5\linewidth\relax
- \dimen6\dimexpr-.5ex+.5\linewidth\relax
- \doifnothing{#1}\firstargumentfalse
- \iffirstargument
- \doifelse\@@tllocation\v!inmargin
- {\llap{\doattributes\??tl\c!style\c!color{#1}\hskip\leftmargindistance}}
- {\color[\@@tlrulecolor]
- {\vrule\!!height\dimen4\!!depth\dimen6\!!width\@@tlwidth}%
- \hbox spread 2\dimexpr\@@tldistance\relax
- {\hss\doattributes\??tl\c!style\c!color{\strut#1}\hss}}%
- \fi
- \color[\@@tlrulecolor]
- {\leaders\hrule\!!height\dimen4\!!depth\dimen6\hfill}}%
- \ht\scratchbox\strutht
- \dp\scratchbox\strutdp
- \noindent\box\scratchbox
-%\nobreak\verticalstrut\kern-\struttotal
-% evt \witruimte
- \egroup}
-
-\def\dotoptextrule#1%
- {\page[\v!preference] % interferes
- %\whitespace % no
- \@@tlbefore
- \docomplextextrule{#1}%
-% todo, option: \doifnothing{#1}{\ruledvskip-.5ex}
- \nowhitespace
- \@@tlinbetween
- \endgraf}
-
-\def\dodobottomtextrule#1#2%
- {\ifhmode
- \endgraf
- \fi
- \dimen0\strutdp
- \ifdim\prevdepth>\strutdp\else % was <\strutdp
- \ifdim\prevdepth>\zeropoint
- \advance\dimen0 -\prevdepth
- \fi
- \fi
- \advance\dimen0 .5ex
- \vskip\dimen0
-% ==
-% \vskip\dimexpr \strutdp + .5ex
-% \ifdim\prevdepth>\strutdp\else\ifdim\prevdepth>\zeropoint-\prevdepth\fi\fi\relax
-%
- \@@tlinbetween
- \doifelsenothing{#2}
- {\bgroup
- \advance\hsize\dimexpr-\rightskip-\leftskip\relax
- \nointerlineskip
- \moveleft-\leftskip\vbox
- {\color[\@@tlrulecolor]
- {\hrule\!!depth\linewidth\!!height\zeropoint\!!width\hsize}}%
- \egroup}
- {\docomplextextrule{#2}}%
- \ifvmode\prevdepth\zeropoint\fi
- #1%
- \page[\v!preference]}
-
-\def\dobottomtextrule
- {\dodobottomtextrule\@@tlafter}
-
-\def\domiddletextrule
- {\dodobottomtextrule\@@tlinbetween}
-
-\def\dounknowntextrule
- {\iffirstargument
- \@EA\dotoptextrule
- \else
- \@EA\dobottomtextrule\@EA\empty
- \fi}
-
-%D The grouped commands also supports bodyfont switching:
-
-\def\starttextrule#1%
- {\bgroup
- \def\dounknowntextrule{\domiddletextrule}
- \dotoptextrule{#1}
- \bgroup
- \doifsomething\@@tlbodyfont{\switchtobodyfont[\@@tlbodyfont]}}
-
-\def\stoptextrule
- {\par
- \egroup
- \dobottomtextrule\empty
- \egroup}
-
-%D \macros
-%D {fillinrules, setupfillinrules}
-%D
-%D The next few commands do not really deserve a place in a
-%D core module, because they deal with specific typography.
-%D Nevertheless I decided to make them part of the core,
-%D because they permit us to make questionaires. Let's start
-%D with some examples.
-%D
-%D \fillinrules[n=2,width=fit]{first}
-%D \fillinrules[n=2,width=broad]{first}
-%D \fillinrules[n=2,width=3cm]{first}
-%D \fillinrules[n=2,width=3cm,distance=.5em,separator=:]{first}
-%D \fillinrules[n=2]{first}{last}
-%D \fillintext{first}{last} \input reich \par
-%D
-%D The main command is \type{\fillinrules}. This command takes
-%D one and an optional second argument and sets a paragraph with
-%D empty visualized lines.
-%D
-%D \showsetup{fillinrules}
-%D \showsetup{setupfillinrules}
-
-\def\setupfillinrules
- {\dodoubleargument\getparameters[\??il]}
-
-\definecomplexorsimpleempty\fillinrules
-
-\def\complexfillinrules[#1]%
- {\def\docomplexfillinrules##1##2%
- {\dodocomplexfillinrules[#1]{##1}{##2}{\thinrules
- [\c!n=\@@iln,\c!interlinespace=\@@ilinterlinespace,\c!before=,\c!after=]}}%
- \dodoublegroupempty\docomplexfillinrules}
-
-\def\dodocomplexfillinrules[#1]#2#3#4%
- {\endgraf
- \@@ilbefore
- \begingroup
- \setupfillinrules[#1]%
- \noindent
- \doifsomething{#2}
- {\doifelse\@@ilwidth\v!fit
- {\let\@@ildistance\!!zeropoint
- \hbox}
- {\doifelse\@@ilwidth\v!broad
- {\hbox}
- {\hbox to \@@ilwidth}}%
- \bgroup
- \doattributes\??il\c!style\c!color{\strut#2\hfill\@@ilseparator}%
- \hskip\@@ildistance
- \egroup}%
- %\hangindent=\wd0\relax % tzt hang=yes,n
- %\parindent=\hangindent
- %\box0\relax
- \setupwhitespace[\v!big]%
- \ignorespaces
- #4%
- \doifsomething{#3}
- {\kern\@@ildistance
- \doattributes\??il\c!style\c!color{#3\strut}}%
- \endgroup
- \endgraf
- \@@ilafter}
-
-%D \macros
-%D {fillintext}
-%D
-%D To provide compatible layouts when texts and lines are
-%D mixed, one can typeset a paragraph by using the command
-%D \type{\fillintext}.
-%D
-%D \showsetup{fillintext}
-
-\definecomplexorsimpleempty\fillintext
-
-\def\complexfillintext[#1]% rather rough, using an \unhbox is suboptimal
- {\def\docomplexfillintext##1##2%
- {\dowithnextbox
- {\dodocomplexfillinrules[#1]{##1}{\hfill##2}{\unhbox\nextbox\unskip}}%
- \hbox\bgroup\let\par\egroup\ignorespaces}%
- \dodoublegroupempty\docomplexfillintext}
-
-%D \macros
-%D {fillinline, setupfillinlines}
-%D
-%D Another member of the family takes care of putting a (often
-%D small) rule after a piece of text, like
-%D
-%D \startbuffer
-%D \fillinline \input reich \par
-%D \fillinline[margin=0cm] \input reich \par
-%D \stopbuffer
-%D
-%D \startvoorbeeld
-%D \getbuffer
-%D \stopvoorbeeld
-%D
-%D which was typeset by saying:
-%D
-%D \typebuffer
-%D
-%D The two commands that take care of this are:
-%D
-%D \showsetup{fillinline}
-%D \showsetup{setupfillinlines}
-
-\def\setupfillinlines
- {\dodoubleargument\getparameters[\??iv]}
-
-\definecomplexorsimpleempty\fillinline
-
-\def\complexfillinline[#1]%
- {%\endgraf % interferes with \definedescription cum suis
- \@@ivbefore
- \begingroup
- \setupfillinlines[#1]%
- \advance\rightskip \@@ivmargin
- \parfillskip\zeropoint
- \def\par % very dangerous
- {\let\par\endgraf % -)
- \ifhmode\unskip\hfill\fi
- \scratchdimen\dimexpr\@@ivwidth-\@@ivdistance\relax
- \ifdim\scratchdimen>\@@ivmargin\else\expandafter\rlap\fi
- {\kern\@@ivdistance
- \vrule
- \!!width \scratchdimen
- \!!height.5\linewidth
- \!!depth .5\linewidth}%
- \endgraf % !
- \endgroup
- \endgraf % !
- \@@ilafter}}
-
-%D \stopdocumentation
-%D \bgroup
-%D
-%D \setupframedtexts
-%D [setuptext]
-%D [background=color,backgroundcolor=white]
-%D
-%D \startbuffer
-%D \setupbackground
-%D [backgroundoffset=4pt,
-%D background=screen,
-%D frame=on,
-%D framecolor=red,
-%D leftoffset=2pt]
-%D \stopbuffer
-%D
-%D \getbuffer
-%D
-%D \startbackground
-%D
-%D \macros
-%D {setupbackground,startbackground,background}
-%D
-%D The section deals with backgrounds in the running text. This
-%D means that texts is to be collected and split over pages. To
-%D show what can be done, we provide this part of the
-%D documentation with some gray background and a red frame.
-%D Both the background and frame can have all characteristics
-%D of \type{\framed}. This time we used the setting:
-%D
-%D \typebuffer
-%D
-%D The implementation is not that sophisticated, but suffices.
-%D The main problem with this kind of functionality is to get
-%D the spacing all right.
-
-%D Specifying the background is more or less the same as
-%D specifying a framed box.
-%D
-%D \showsetup{setupbackground}
-
-\presetlocalframed[\??ag]
-
-\def\dosetupbackground[#1]%
- {\getparameters[\??ag][#1]%
- \doifelse\@@agstate\v!start
- {\let\startbackground\dostartbackground
- \let\stopbackground \dostopbackground
- \let\background \dobackground}
- {\let\startbackground\relax
- \let\stopbackground \relax
- \let\background \relax}}
-
-\def\setupbackground
- {\dosingleargument\dosetupbackground}
-
-%D Actually typesetting the background is implemented rather
-%D straightforward. We need to handle some spacing as well as
-%D the (often) a bit smaller horizontal size.
-%D
-%D \showsetup{startbackground}
-%D
-%D Although we could have used a scratch one, we first
-%D declare a boolean.
-
-% 0=no-split, 1=no-split+indent, 2=split, 3=split+indent
-
-\chardef\backgroundsplitmode\plusthree
-
-%D The \type{\vbox to \lineheight{}\vskip\zeropoint}
-%D construction gives the first real line a decent height by
-%D adding a dummy line.
-
-\def\dostartbackground
- {\endgraf
- \bgroup
- \setbox0\vbox\bgroup
- \vbox to \lineheight{}\vskip\zeropoint
- \blank[\v!disable]
- % \advance\hsize -\@@agleftoffset
- % \advance\hsize -\@@agrightoffset
- \leftskip \@@agleftoffset % new **
- \rightskip\@@agrightoffset} % new **
-
-%D This dummy line is removed by \type{\setbox2=\vsplit0 to
-%D \lineheight}. That way \type{\topskip} takes care of the
-%D lineheight. I'll probably forget to apply this trick
-%D elsewhere.
-
-\def\dostopbackground % improved version (i hope)
- {\endgraf
- \removelastskip
- \egroup
- \dimen2\leftskip % new **
- \forgetall
- \ifinsidefloat
- \chardef\backgroundsplitmode\zerocount
- \fi
- \ifcase\backgroundsplitmode
- \localframed[\??ag][\c!offset=\v!overlay]{\box0}%
- \or
- \hskip\dimen2
- \localframed[\??ag][\c!offset=\v!overlay]{\box0}%
- \else
- \splitmaxdepth\boxmaxdepth
- \splittopskip\topskip
- \setbox2\vsplit0 to \lineheight % get rid of fake line
- \loop
- \ifdim\pagetotal=\zeropoint % empty page
- \scratchdimen\textheight
- \chardef\backgroundsplit\plusone % split to max height
- \else
- \setbox\scratchbox\vbox{\@@agbefore}%
- \scratchdimen\dimexpr\pagegoal-\ht\scratchbox-\pagetotal\relax
- \chardef\backgroundsplit\plustwo % split to partial height
- \fi
- \advance\scratchdimen\dimexpr-\@@agtopoffset-\@@agbottomoffset\relax
- \ifdim\scratchdimen>2\lineheight\relax % reasonable, will be configurable
- \ifdim\ht0>\scratchdimen % larger than page
- \setbox2\vsplit0 to \scratchdimen
- \else
- \setbox2\box0
- \chardef\backgroundsplit\zerocount % no split
- \fi
- \setbox2\vbox \ifcase\backgroundsplit\or to \textheight \fi % max split
- {\vskip\@@agtopoffset
- \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
- \ifdim\ht0>\zeropoint \repeat
- \fi
- \egroup
- \endgraf}
-
-%D As a bonus we also have a short command, that is of not
-%D much use, but kept there for historic reasons.
-%D
-%D \showsetup{background}
-
-\def\dobackground
- {\bgroup
- \dowithnextbox
- {\localframed[\??ag][\c!offset=\v!overlay]{\flushnextbox}\egroup}
- \vbox}
-
-%D \stopdocumentation
-%D \stopbackground
-%D \egroup
-
-%D New, for the moment private; let's see when GB finds out
-%D about this one and its obscure usage. It's used in:
-%D
-%D \startbuffer
-%D \defineframedtext
-%D [tabulateframe]
-%D [offset=overlay,
-%D backgroundoffset=3pt,
-%D background=color,
-%D backgroundcolor=green]
-%D
-%D \setuptabulate
-%D [tabulate]
-%D [frame=tabulateframe]
-%D
-%D \setuptables
-%D [frame=tabulateframe]
-%D
-%D \input tufte
-%D
-%D \starttabulate[|l|l|]
-%D \NC test \NC test \NC \NR \NC test \NC test \NC \NR
-%D \NC test \NC test \NC \NR \NC test \NC test \NC \NR
-%D \stoptabulate
-%D
-%D \input tufte
-%D
-%D \starttable[|l|l|]
-%D \NC test \NC test \NC \AR \NC test \NC test \NC \AR
-%D \NC test \NC test \NC \AR \NC test \NC test \NC \AR
-%D \stoptable
-%D \stopbuffer
-%D
-%D \typebuffer
-
-\def\defineframedcontent
- {\dodoubleempty\dodefineframedcontent}
-
-\def\dodefineframedcontent[#1][#2]%
- {\presetlocalframed[\??fc#1]%
- \getparameters[\??fc#1]
- [\c!leftoffset=\zeropoint,
- \c!rightoffset=\getvalue{\??fc#1\c!leftoffset},
- \c!topoffset=\zeropoint,
- \c!bottomoffset=\getvalue{\??fc#1\c!topoffset},
- \c!strut=\v!no,
- \c!offset=\v!overlay,
- \c!linecorrection=\v!no,
- \c!left=,
- \c!right=,
- #2]}
-
-\let\setuplocalframed\getparameters
-
-\def\setupframedcontent
- {\dodoubleempty\dosetupframedcontent}
-
-\def\dosetupframedcontent[#1][#2]%
- {\def\docommand##1{\getparameters[\??fc##1][#2]}%
- \processcommacommand[#1]\docommand}
-
-\def\startframedcontent[#1]%
- {\bgroup
- \let\stopframedcontent\egroup
- \doifnot{#1}\v!off
- {\doifdefined{\??fc#1\c!frame}
- {\def\stopframedcontent{\dostopframedcontent{#1}}%
- \dostartframedcontent{#1}}}}
-
-\def\dostartframedcontent#1%
- {\setbox\framebox\hbox\bgroup
- \setlocalhsize
- \hsize\localhsize
- \advance\hsize\dimexpr-\getvalue{\??fc#1\c!leftoffset}-\getvalue{\??fc#1\c!rightoffset} \relax
- \advance\vsize\dimexpr-\getvalue{\??fc#1\c!topoffset} -\getvalue{\??fc#1\c!bottomoffset}\relax
- \hskip\getvalue{\??fc#1\c!leftoffset}%
- \vbox\bgroup
- \vskip\getvalue{\??fc#1\c!topoffset}%
- \vbox\bgroup
- \forgetall
- \blank[\v!disable]}
-
-\def\dostopframedcontent#1%
- {\removelastskip
- \egroup
- \vskip\getvalue{\??fc#1\c!bottomoffset}%
- \egroup
- \hskip\getvalue{\??fc#1\c!rightoffset}%
- \egroup
- \doifvalue{\??fc#1\c!width}\v!fit
- {\letvalue{\??fc#1\c!width}\v!fixed}% no shapebox
- \ifinsidefloat
- \donefalse
- \else
- \doifelsevalue{\??fc#1\c!linecorrection}\v!yes\donetrue\donefalse
- \fi
- % plaats ?
- \ifdone\startlinecorrection\fi
- \getvalue{\??fc#1\c!left}% new
- \localframed[\??fc#1]{\box\framebox}%
- \getvalue{\??fc#1\c!right}% new
- \ifdone\stoplinecorrection\fi
- \egroup}
-
-%D \macros
-%D {backgroundline}
-%D
-%D For the moment an undocumented feature, but a cancidate
-%D for going public.
-
-\def\backgroundline[#1]%
- %{\doifsomething{#1}{\dobackgroundline{#1}}\hbox}
- {\doifcolorelse{#1}{\dobackgroundline{#1}\hbox}\hbox}
-
-% \def\backgroundline[#1]%
-% {\doifcolor{#1}{\dobackgroundline{#1}}\hbox}
-
-\def\dobackgroundline#1%
- {\dowithnextbox
- {\hbox
- {\localcolortrue
- \startcolor[#1]%
- \vrule
- \!!width \nextboxwd
- \!!height\nextboxht
- \!!depth \nextboxdp
- \stopcolor
- \hskip-\nextboxwd
- \flushnextbox}}}
-
-%D \macros
-%D {encircled}
-%D
-%D Some not so robust left||overs (borrowed from Knuth,
-%D \TEX Book\ page 356):
-
-\def\encircled#1%
- {{\ooalign{\hfil\raise0.07ex\hbox{{\tx#1}}\hfil\crcr\mathhexbox20D}}}
-
-\let\omcirkeld\encircled
-
-\setuplinewidth
- [\v!medium]
-
-\setupframed
- [\c!width=\v!fit,
- \c!height=\v!broad,
- \c!lines=,
- \c!offset=0.25ex, % \defaultframeoffset
- \c!empty=\v!no,
- \c!frame=\v!on,
- \c!topframe=,
- \c!bottomframe=,
- \c!leftframe=,
- \c!rightframe=,
- \c!radius=.5\bodyfontsize,
- \c!rulethickness=\linewidth,
- \c!corner=\v!rectangular,
- \c!depth=\!!zeropoint,
- \c!foregroundcolor=,
- \c!foregroundstyle=,
- \c!background=,
- \c!backgroundscreen=\@@rsscreen,
- \c!backgroundcolor=,
- \c!backgroundoffset=\!!zeropoint,
- \c!framecolor=,
- \c!frameoffset=\!!zeropoint,
- \c!backgroundcorner=\framedparameter\c!corner,
- \c!backgroundradius=\framedparameter\c!radius,
- \c!backgrounddepth=\framedparameter\c!depth,
- \c!framecorner=\framedparameter\c!corner,
- \c!frameradius=\framedparameter\c!radius,
- \c!framedepth=\framedparameter\c!depth,
- \c!component=,
- \c!align=,
- \c!bottom=\vss,
- \c!top=,
- \c!strut=\v!yes,
- \c!autostrut=\v!yes,
- \c!location=\v!normal,
- \c!orientation=,
- \c!autowidth=\v!yes,
- \c!setups=]
-
-\setupscreens
- [%\c!factor=1.0, % obsolete
- %\c!method=\v!external, % obsolete
- \c!screen=0.95]
-
-\setupblackrules
- [\c!n=3,
- \c!width=1em,
- \c!height=1ex,
- \c!depth=\!!zeropoint,
- \c!alternative=\c!a,
- \c!distance=.25ex,
- \c!color=]
-
-\setupmarginrules
- [\c!level=0,
- \c!rulethickness=\@@kadefaultwidth\linewidth]
-
-\setupthinrules
- [\c!interlinespace=\v!small,
- \c!n=3,
- \c!before=,
- \c!inbetween={\blank[\v!white]},
- \c!after=,
- \c!color=,
- \c!height=.5\linewidth,
- \c!depth=.5\linewidth,
- \c!frame=\v!on, % compatible with textbackgrounds
- \c!alternative=\v!b,
- \c!backgroundcolor=,
- \c!background=,
- \c!rulethickness=]
-
-\setuptextrules
- [\c!location=\v!left,
- \c!before=\blank,
- \c!after=\blank,
- \c!inbetween=,
- \c!width=2em,
- \c!style=\v!bold,
- \c!color=,
- \c!rulecolor=,
- \c!bodyfont=,
- \c!distance=.5em]
-
-\setupfillinrules
- [\c!width=\v!broad,
- \c!distance=1em,
- \c!before=\blank,
- \c!after=\blank,
- \c!n=1,
- \c!interlinespace=\v!small,
- \c!separator=,
- \c!style=\v!normal,
- \c!color=]
-
-\setupfillinlines
- [\c!width=3cm,
- \c!margin=\@@ivwidth,
- \c!distance=1em,
- \c!before=\blank,
- \c!after=\blank]
-
-\setupbackground
- [\c!leftoffset=.5\bodyfontsize,
- \c!rightoffset=\@@agleftoffset,
- \c!topoffset=\!!zeropoint,
- \c!bottomoffset=\@@agtopoffset,
- \c!state=\v!start,
- \c!radius=.5\bodyfontsize,
- \c!corner=\v!rectangular,
- \c!frame=\v!off,
- \c!color=,
- \c!depth=\!!zeropoint,
- \c!background=\v!screen,
- \c!backgroundcolor=\@@agcolor,
- \c!screen=\@@rsscreen,
- \c!before=,
- \c!after=]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-app.mkii b/Master/texmf-dist/tex/context/base/mkii/page-app.mkii
deleted file mode 100644
index 75e0cf87467..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-app.mkii
+++ /dev/null
@@ -1,225 +0,0 @@
-%D \module
-%D [ file=page-app, % from meta-fig
-%D version=1998.01.15,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Independent page building,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / Applications}
-
-%D The fitting page code is moved from \type {meta-fig} to
-%D here.
-
-\unprotect
-
-\definepapersize
- [\??fp\s!dummy]
- [\c!width=\fittingwd,
- \c!height=\fittinght]
-
-\definelayout
- [\??fp\s!dummy]
- [\c!width=\fittingwd,\c!height=\fittinght,\c!location=\v!middle,
- \c!topspace=\!!zeropoint,\c!backspace=\!!zeropoint,
- \c!cutspace=\!!zeropoint,\c!bottomspace=\!!zeropoint,
- \c!textdistance=\!!zeropoint,\c!lines=0,\c!grid=\v!no,
- \c!top=\!!zeropoint,\c!bottom=\!!zeropoint,
- \c!margin=\!!zeropoint,\c!edge=\!!zeropoint,
- \c!leftmargin=\!!zeropoint,\c!leftedge=\!!zeropoint,
- \c!rightmargin=\!!zeropoint,\c!rightedge=\!!zeropoint,
- \c!header=\!!zeropoint,\c!footer=\!!zeropoint]
-
-
-\def\dostartfittingpage[#1][#2]%
- {\page % this is kind of tricky! there can be preceding page refs
- \autostarttext
- \bgroup % resulting in a zero height page; test fig-make !
- \def\currentfittingpage{#1}%
- \dontcomplain
- % runs under current page regime, i.e. page variables passed to mp
- \getparameters[\currentfittingpage][\c!paper=,#2]% auto or size or nothing
- \setbox\scratchbox\hbox
- \bgroup
- % needed later \getparameters[\currentfittingpage][\c!paper=,#2]% auto or size or nothing
- \doifvalue{\currentfittingpage\c!margin}\v!page % undocumented
- {\offsetbox
- [\c!leftoffset=\backspace,
- \c!rightoffset=\cutspace,
- \c!topoffset=\topspace,
- \c!bottomoffset=\bottomspace]\hbox}%
- \bgroup
- \scale[\c!scale=\getvalue{\currentfittingpage\c!scale}]%
- \bgroup\localframed[\currentfittingpage]%
- \bgroup}
-
-\def\dostopfittingpage
- {\egroup % localframed
- \egroup % scale
- \egroup % offsetbox
- \egroup % scratchbox
- \edef\fittingwd{\the\wd\scratchbox}%
- \edef\fittinght{\the\ht\scratchbox}%
- \startlocallayout
- \ifdim\fittinght<\lineheight
- % write status : too small
- \setbox\scratchbox\vbox to \lineheight{\vss\box\scratchbox\vss}%
- \edef\fittinght{\the\lineheight}%
- \fi
- \let\checkcurrentlayout\relax % else interference with odd/even layout
- \processaction
- [\getvalue{\currentfittingpage\c!paper}]
- [ \v!auto=>\let\fittingpapersize\printpapersize,
- \s!unknown=>\let\fittingpapersize\commalistelement,
- \s!default=>\def\fittingpapersize{\??fp\s!dummy}]%
- \expanded{\setuppapersize[\??fp\s!dummy][\fittingpapersize]}%
- \definelayout
- [\v!page]%
- [\c!location=\v!middle,
- \c!width=\fittingwd,
- \c!height=\fittinght]%
- \setuplayout
- [\v!page]%
- \startmakeup[\v!standard][\c!textstate=\v!empty,\c!doublesided=\v!no,\c!page=]%
- \centerbox{\box\scratchbox}%
- \stopmakeup
- \stoplocallayout
- \egroup
- \autostoptext}
-
-%D \TEX\ pages (for \METAPOST\ pages, see \type {meta-fig}):
-
-\presetlocalframed[\??tg]
-
-\def\setupTEXpage
- {\dodoubleargument\getparameters[\??tg]}
-
-\def\startTEXpage
- {\dosingleempty\dostartTEXpage}
-
-\def\dostartTEXpage[#1]%
- {\dostartfittingpage[\??tg][#1]\gobblespacetokens}
-
-\def\stopTEXpage
- {\removelastspace
- \dostopfittingpage}
-
-\setupTEXpage
- [\c!scale=1000,
- \c!strut=\v!no,
- \c!align=\v!normal, % needed, else problems !
- \c!offset=\v!overlay,
- \c!width=\v!fit,
- \c!height=\v!fit,
- \c!frame=\v!off]
-
-%D For Mojca:
-%D
-%D \starttyping
-%D \startTEXstream \chapter{Bla} Hello world!\crlf Hello world! \stopTEXstream
-%D \startTEXpage \chapter{Bla} Hello world!\crlf Hello world! \stopTEXpage
-%D \stoptyping
-%D
-%D maybe I should support stream=yes in framed.
-
-\def\startTEXstream
- {\dosingleempty\dostartTEXstream}
-
-\def\dostartTEXstream[#1]%
- {\page
- \defineoutputstream[tex]%
- \enableoutputstream[tex]%
- \def\stopTEXstream
- {\disableoutputstream
- \startTEXpage
- \outputstreamunvbox[tex]%
- \stopTEXpage}}
-
-%D Application pages (for an example, see \type {m-pstric}):
-
-\def\@@texapp{texapp}
-\def\@@texdim{texdim}
-
-\def\saveTEXapplication#1#2%
- {\immediate\openout\scratchwrite=\bufferprefix\@@texdim.tmp
- \immediate\write\scratchwrite{\dimen#1=\the\ht\scratchbox}%
- \immediate\write\scratchwrite{\dimen#2=\the\wd\scratchbox}%
- \immediate\closeout\scratchwrite}
-
-\def\restoreTEXapplication
- {\readlocfile{\bufferprefix\@@texdim.tmp}\donothing\donothing}
-
-\def\startTEXapplication
- {\dosingleempty\dostartTEXapplication}
-
-\long\def\dostartTEXapplication[#1]#2#3\stopTEXapplication
- {\bgroup
- \bgroup
- \let\f!temporaryextension\c!tex
- \setbuffer[\@@texapp]%
- \starttext
- #2% preamble
- \startTEXpage[#1]%
- \topskip\zeropoint
- \setbox\scratchbox\hbox{#3}%
- \saveTEXapplication02% dimensions
- \box\scratchbox
- \stopTEXpage
- \stoptext
- \endbuffer
- \egroup
- \doifelse\jobsuffix{dvi}\donetrue\donefalse
- \executesystemcommand{texexec \bufferprefix\@@texapp.tex --once --batch}%
- \ifdone % eps
- \executesystemcommand{dvips -E* -o \@@texapp.eps \@@texapp}%
- \else % pdf
- \executesystemcommand{dvips \bufferprefix\@@texapp}%
- \executesystemcommand{ps2pdf \bufferprefix\@@texapp.ps \bufferprefix\@@texapp.pdf}%
-% \executesystemcommand{texmfstart pstopdf \bufferprefix\@@texapp.ps \bufferprefix\@@texapp.pdf}%
- \fi
- \restoreTEXapplication % dimensions
- \doifelse\jobsuffix{dvi}\donetrue\donefalse
- \setbox\scratchbox\hbox
- {\expanded{\externalfigure
- [\bufferprefix\@@texapp.\ifdone eps\else pdf\fi]
- [\c!object=\v!no]}}%
- \setbox\scratchbox\hbox
- {\lower\ht\scratchbox\hbox{\raise\dimen2\box\scratchbox}}%
- \wd\scratchbox\dimen0
- \ht\scratchbox\dimen2
- \dp\scratchbox\zeropoint
- \box\scratchbox
- \egroup}
-
-%D \macros
-%D {startpagefigure}
-%D
-%D \starttyping
-%D \starttext \pagefigure[two.1] \stoptext
-%D \stoptyping
-
-\def\startpagefigure
- {\dodoubleempty\dostartpagefigure}
-
-\def\dostartpagefigure[#1][#2]%
- {\bgroup
- \getparameters[\??ex][\c!offset=\v!overlay,#2]%
- \startTEXpage[\c!offset=\@@exoffset]%
- \externalfigure[#1][#2]\ignorespaces} % so we can put some text below the graphic
-
-\def\stoppagefigure
- {\stopTEXpage
- \egroup}
-
-\def\pagefigure
- {\dodoubleempty\dopagefigure}
-
-\def\dopagefigure[#1][#2]%
- {\dostartpagefigure[#1][#2]\stoppagefigure}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-bck.mkii b/Master/texmf-dist/tex/context/base/mkii/page-bck.mkii
deleted file mode 100644
index 4c636d29e34..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-bck.mkii
+++ /dev/null
@@ -1,593 +0,0 @@
-%D \module
-%D [ file=page-bck, % copied from main-001
-%D version=1997.03.31,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Backgrounds,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / Backgrounds}
-
-% \chardef\kindofpagetextareas=1 will isolate graphics from backgrounds
-
-\unprotect
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-%D \macros
-%D {recalculatebackgrounds}
-%D
-%D We use a couple of switches so that we can minimize the
-%D amount of background calculations. The main switch is set
-%D by the recalculate directive.
-%D
-%D \starttyping
-%D \recalculatebackgrounds
-%D \stoptyping
-%D
-%D Other modules may not directly set the switches
-%D themselves.
-
-\newif\ifnewbackground
-\newif\ifsomebackground
-
-%D For special purposes, users can question the \type
-%D {*background} mode. This mode is only available when
-%D typesetting the pagebody.
-%D
-%D \starttyping
-%D \startmode[*background] ...
-%D \stoptyping
-
-\appendtoks
- \ifsomebackground \ifnewbackground \setsystemmode\v!background \fi \fi
-\to \everybeforepagebody
-
-%D \macros
-%D {addmainbackground, addtextbackground,
-%D addpagebackground, addprintbackground}
-%D
-%D Apart from the previously mentioned directive, the
-%D interface between this module and the other modules
-%D is made up by four macros that add background to parts of
-%D the layout.
-%D
-%D \starttyping
-%D \addmainbackground <box>
-%D \addtextbackground <box>
-%D \addpagebackground <box>
-%D \addprintbackground <box>
-%D \stoptyping
-
-%D To minimize calculations, we keep track of the state of the
-%D background of each area. A previous implementation did
-%D check each call to the background calculation macro, but
-%D using an intermediate usage flag instead of testing each
-%D time saves about 3\% on a run with a couple of backgrounds.
-%D (On the 824 pages maps bibliography runtime went down from
-%D 309 to 299 seconds.)
-
-\def\checkbackground#1%
- {\edef\!!stringe{\??ma#1}%
- \doifelsevaluenothing{\!!stringe\c!background }
- {\doifelsevaluenothing{\!!stringe\c!foregroundcolor}
- {\doifelsevalue{\!!stringe\c!frame }\v!on\!!doneatrue
- {\doifelsevalue{\!!stringe\c!leftframe }\v!on\!!doneatrue
- {\doifelsevalue{\!!stringe\c!rightframe}\v!on\!!doneatrue
- {\doifelsevalue{\!!stringe\c!topframe }\v!on\!!doneatrue
- {\doifelsevalue{\!!stringe\c!bottomframe }\v!on\!!doneatrue
- \!!doneafalse}}}}}
- \!!doneatrue}
- \!!doneatrue
- \if!!donea
- \setusage \!!stringe
- \else
- \resetusage\!!stringe
- \fi}
-
-\def\ifsomebackgroundfound#1%
- {\ifusage{\??ma#1}}
-
-% \def\doifsomebackgroundelse#1#2#3%
-% {\ifusage{\??ma#1}#2\else#3\fi}
-
-\def\doifsomebackgroundelse#1%
- {\ifusage{\??ma#1}%
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-%D The background mechanism falls back on the \type {\framed}
-%D macro. This means that all normal frame and overlay
-%D features can be used.
-
-\def\addsomebackground#1#2#3#4% area box width height / zero test added
- {\ifsomebackgroundfound#1\ifdim#3>\zeropoint\ifdim#4>\zeropoint
- \doifvaluesomething{\??ma#1\c!setups}{\setups[\getvalue{\??ma#1\c!setups}]}% should not produce funny spaces !
- \setbox#2\vbox\fastlocalframed
- [\??ma#1]
- [\c!component=#1,\c!strut=\v!no,\c!offset=\v!overlay,\c!setups=,%
- \c!width=#3,\c!height=#4]
- {\dp#2\zeropoint\box#2}%
- \fi\fi\fi}
-
-%D There are quite some backgrounds. At the bottom layer,
-%D there is the {\em paper} background. This one is only
-%D used for special purposes, like annotations to documents.
-
-\def\addprintbackground#1%
- {\addsomebackground
- \v!paper#1\printpaperwidth\printpaperheight}
-
-%D The page backgrounds can be put behind the {\em left
-%D page}, the {\em right page} or {\em each page}. As with
-%D the paper background, these are calculated on each page.
-
-\def\addpagebackground#1%
- {\doifbothsidesoverruled
- {\addsomebackground\v!rightpage#1\paperwidth\paperheight}
- {\addsomebackground\v!rightpage#1\paperwidth\paperheight}
- {\addsomebackground\v!leftpage #1\paperwidth\paperheight}%
- \addsomebackground\v!page #1\paperwidth\paperheight}
-
-%D Then there are the 25 areas that make up the layout: {\em
-%D top, header, text, footer, bottom} times {\em left edge,
-%D left margin, text, right margin, right edge}. These are
-%D only recalculated when they change or when the \type
-%D {status} is set to \type {repeat}.
-
-\newbox\leftbackground
-\newbox\rightbackground
-
-\def\addmainbackground#1% todo: dimension spec
- {\ifsomebackground
- \ifnewbackground \setbackgroundboxes \fi
- \setbox#1\vbox
- {\offinterlineskip
- \doifmarginswapelse
- {\copy\leftbackground}{\copy\rightbackground}%
- \box#1}%
- \fi}
-
-%D Finaly there is an aditional {\em text} background, again
-%D useful for special purposes only. This one is calculated
-%D each time. The hidden backgrounds are not meant for users!
-
-\newconditional\hiddenbackgroundenabled
-
-\def\addtextbackground#1%
- {\ifconditional\hiddenbackgroundenabled
- \addsomebackground\v!hidden#1\makeupwidth\textheight % mine !
- \fi
- \addsomebackground\v!text#1\makeupwidth\textheight}
-
-%D The next couple of macros implement the area backgrounds.
-%D As said, these are cached in dedicated boxes. The offsets
-%D and depth of the page are used for alignment purposes.
-
-\newdimen\pageoffset % bleed
-\newdimen\pagedepth
-
-\let\pagebackgroundhoffset\!!zeropoint
-\let\pagebackgroundvoffset\!!zeropoint
-\let\pagebackgrounddepth \!!zeropoint
-
-% \def\setbackgroundboxes
-% {\showmessage\m!layouts8\empty
-% \setbackgroundbox\leftbackground\relax
-% \ifdoublesided
-% \setbackgroundbox\rightbackground\doswapmargins
-% \fi
-% \doifnot\@@mastatus\v!herhaal{\global\newbackgroundfalse}}
-
-%D We need a bit more clever mechanism in order to handle
-%D layers well. This means that we cannot calculate both
-%D background at the same time since something may have
-%D changed halfway a page.
-
-\chardef\newrightbackground\zerocount
-\chardef\newleftbackground \zerocount
-
-\def\recalculatebackgrounds
- {\global\newbackgroundtrue}
-
-\def\setbackgroundboxes
- {\ifnewbackground
- \global\chardef\newrightbackground\plusone
- \global\chardef\newleftbackground\plusone
- \global\setbox\leftbackground\emptybox
- \global\setbox\rightbackground\emptybox
- \fi
- \doifbothsides
- {\ifcase\newleftbackground \else
- % \showmessage\m!layouts8\empty
- \setbackgroundbox\leftbackground\relax
- \global\chardef\newleftbackground\zerocount
- \global\chardef\newrightbackground\zerocount
- \fi}
- {\ifcase\newleftbackground \else
- % \showmessage\m!layouts8\empty
- \setbackgroundbox\leftbackground\relax
- \global\chardef\newleftbackground\zerocount
- \fi}
- {\ifcase\newrightbackground \else
- % \showmessage\m!layouts8\empty
- \setbackgroundbox\rightbackground\doswapmargins
- \global\chardef\newrightbackground\zerocount
- \fi}%
- \ifx\@@mastate\v!repeat\else\global\newbackgroundfalse\fi}
-
-\def\addmainbackground#1% todo: dimension spec
- {\ifsomebackground
- \setbackgroundboxes
- \setbox#1\vbox
- {\offinterlineskip
- \doifmarginswapelse
- {\copy\leftbackground}
- {\copy\rightbackground}
- \box#1}%
- \fi}
-
-\def\setbackgroundoffsets
- {\ifsomebackground \ifnewbackground
- \global\let\pagebackgroundhoffset\!!zeropoint
- \global\let\pagebackgroundvoffset\!!zeropoint
- \global\let\pagebackgrounddepth \!!zeropoint
- \doifsomebackgroundelse{\v!text\v!text}\donetrue\donefalse
- \ifdone\else\doifsomebackgroundelse\v!text\donetrue\donothing\fi
- \ifdone
- \bgroup
- \scratchdimen\getvalue{\??ma\v!page\c!offset}%
- \doifsomebackgroundelse{\v!top\v!text}\donothing
- {\doifsomebackgroundelse{\v!bottom\v!text}\donothing
- {\xdef\pagebackgroundhoffset{\the\scratchdimen}}}%
- \doifsomebackgroundelse{\v!text\v!rightedge}\donothing
- {\doifsomebackgroundelse{\v!text\v!leftedge}\donothing
- {\xdef\pagebackgroundvoffset{\the\scratchdimen}%
- \scratchdimen\getvalue{\??ma\v!page\c!depth}%
- \xdef\pagebackgrounddepth{\the\scratchdimen}}}%
- \egroup
- \fi
- \fi \fi}
-
-\appendtoks \setbackgroundoffsets \to \everybeforepagebody
-
-\newconditional\swapbackgroundmargins \settrue\swapbackgroundmargins
-
-\def\setbackgroundbox#1#2%
- {\global\setbox#1\vbox
- {\dontcomplain
- \swapmargins
- \ifconditional\swapbackgroundmargins
- \doifmarginswapelse \donothing
- {\swapmacros\v!rightmargin\v!leftmargin
- \swapmacros\v!rightedge \v!leftedge}%
- \fi
- \calculatereducedvsizes
- \offinterlineskip
- #2\relax
- \vskip\dimexpr-\topheight-\topdistance\relax
- \dodopagebodybackground\v!top\topheight
- \vskip\topdistance
- \dodopagebodybackground\v!header\headerheight
- \vskip\headerdistance
- \dodopagebodybackground\v!text\textheight
- \vskip\footerdistance
- \dodopagebodybackground\v!footer\footerheight
- \vskip\bottomdistance
- \dodopagebodybackground\v!bottom\bottomheight
- \vfilll}%
- \smashbox#1}
-
-\def\dodopagebodybackground#1#2%
- {\ifdim#2>\zeropoint % added, faster
- \setbox\scratchbox\vbox to #2
- \bgroup\hbox\bgroup
- % \swapmargins
- \goleftonpage
- \dododopagebodybackground\leftedgewidth #2#1\v!leftedge
- \hskip\leftedgedistance
- \dododopagebodybackground\leftmarginwidth #2#1\v!leftmargin
- \hskip\leftmargindistance
- \dododopagebodybackground\makeupwidth #2#1\v!text
- \hskip\rightmargindistance
- \dododopagebodybackground\rightmarginwidth#2#1\v!rightmargin
- \hskip\rightedgedistance
- \dododopagebodybackground\rightedgewidth #2#1\v!rightedge
- \egroup\egroup
- \wd\scratchbox\zeropoint
- \box\scratchbox\relax
- \fi}
-
-\def\dododopagebodybackground#1#2#3#4% width height pos pos
- {\ifsomebackgroundfound{#3#4}%
- \ifdim#2>\zeropoint\relax
- \ifdim#1>\zeropoint\relax
- \doifvaluesomething{\??ma#3#4\c!setups}{\setups[\getvalue{\??ma#3#4\c!setups}]}% should not produce funny spaces !
- \fastlocalframed
- [\??ma#3#4]
- [\c!component=#3-#4,\c!offset=\v!overlay,\c!setups=]
- {\vbox to #2{\vss\hbox to#1{\hss\getvalue{\??ma#3#4\c!command}\hss}\vss}}%
- \else
- \hskip#1%
- \fi
- \else
- \hskip#1%
- \fi
- \else
- \hskip#1%
- \fi}
-
-%D The background mechanism is quite demanding in terms or
-%D resources. We used to delay these definitions till runtime
-%D usage, but since today's \TEX's are large, we now do the
-%D work on forehand.
-%D
-%D \starttyping
-%D \setupbackgrounds [settings]
-%D \setupbackgrounds [paper,page,text,..] [settings]
-%D \setupbackgrounds [top,...] [leftedge,...] [settings]
-%D \stoptyping
-%D
-%D \showsetup{setupbackgrounds}
-%D
-%D Because the number of arguments runs from one to three,
-%D we need to check for it.
-
-\def\setupbackgrounds
- {\dotripleempty\dosetupbackgrounds}
-
-\def\dosetupbackgrounds[#1][#2][#3]%
- {\ifthirdargument
- \global\somebackgroundtrue
- \def\docommand##1%
- {\doifinsetelse{##1}{\v!paper,\v!page,\v!leftpage,\v!rightpage}
- {\getparameters[\??ma##1][#3]\checkbackground{##1}}
- {\def\dodocommand####1{\getparameters[\??ma##1####1][#3]\checkbackground{##1####1}}%
- \processcommalist[#2]\dodocommand}}%
- \processcommalist[#1]\docommand
- \else\ifsecondargument
- \global\somebackgroundtrue
- \doifcommonelse{#1}{\v!text,\v!hidden,\v!paper,\v!page,\v!leftpage,\v!rightpage}
- {\def\docommand##1{\getparameters[\??ma##1][#2]\checkbackground{##1}}%
- \processcommalist[#1]\docommand}%
- {\setupbackgrounds
- [#1]%
- [\v!leftedge,\v!leftmargin,\v!text,\v!rightmargin,\v!rightedge]%
- [#2]}%
- \else\iffirstargument
- \getparameters[\??ma][#1]%
- \fi\fi\fi
- \doifelsevalue{\??ma\v!page\c!offset}\v!overlay
- {\global\pageoffset\zeropoint}
- {\global\pageoffset\getvalue{\??ma\v!page\c!offset}}%
- \global\pagedepth\getvalue{\??ma\v!page\c!depth}%
- \xdef\pagebackgroundoffset{\the\pageoffset}%
- \xdef\pagebackgrounddepth {\the\pagedepth }%
- \doifelse\@@mastate\v!stop
- {\global\newbackgroundfalse}
- {\global\newbackgroundtrue }}
-
-\let\pagebackgroundoffset\!!zeropoint
-\let\pagebackgrounddepth \!!zeropoint
-
-%D Each areas (currently there are $1+3+25+1=30$ of them)
-%D has its own low level framed object associated.
-
-\presetlocalframed [\??ma\v!paper]
-\presetlocalframed [\??ma\v!page]
-\presetlocalframed [\??ma\v!leftpage]
-\presetlocalframed [\??ma\v!rightpage]
-
-\copyparameters
- [\??ma\v!paper\c!frame][\??ma\v!page]
- [\c!offset,\c!depth,\c!radius,\c!corner,\c!color,\c!screen]
-
-\copyparameters
- [\??ma\v!paper\c!background][\??ma\v!page]
- [\c!offset,\c!depth,\c!radius,\c!corner,\c!color,\c!screen]
-
-\copyparameters
- [\??ma\v!page\c!frame][\??ma\v!page]
- [\c!offset,\c!depth,\c!radius,\c!corner,\c!color,\c!screen]
-
-\copyparameters
- [\??ma\v!page\c!background][\??ma\v!page]
- [\c!offset,\c!depth,\c!radius,\c!corner,\c!color,\c!screen]
-
-\copyparameters
- [\??ma\v!leftpage\c!frame][\??ma\v!leftpage]
- [\c!offset,\c!depth,\c!radius,\c!corner,\c!color,\c!screen]
-
-\copyparameters
- [\??ma\v!leftpage\c!background][\??ma\v!leftpage]
- [\c!offset,\c!depth,\c!radius,\c!corner,\c!color,\c!screen]
-
-\copyparameters
- [\??ma\v!rightpage\c!frame][\??ma\v!rightpage]
- [\c!offset,\c!depth,\c!radius,\c!corner,\c!color,\c!screen]
-
-\copyparameters
- [\??ma\v!rightpage\c!background][\??ma\v!rightpage]
- [\c!offset,\c!depth,\c!radius,\c!corner,\c!color,\c!screen]
-
-%D We save some keying by defining the areas using
-%D intermediate commands. The inheritance macro makes sure
-%D that copies are efficient.
-
-\def\dodocommand#1#2%
- {\copylocalframed
- [\??ma#1#2][\??ma\v!page]%
- \getparameters
- [\??ma#1#2]
- [\c!background=,\c!frame=,\c!color=,\c!screen=\@@rsscreen,
- \c!bottomframe=,\c!topframe=,\c!leftframe=,\c!rightframe=]%
- \inheritparameter[\??ma][#1#2\c!color][\v!page\c!color]%
- \inheritparameter[\??ma][#1#2\c!screen][\v!page\c!screen]%
- \inheritparameter[\??ma][#1#2\c!framecolor][\v!page\c!framecolor]%
- \inheritparameter[\??ma][#1#2\c!backgroundcolor][\v!page\c!backgroundcolor]%
- \inheritparameter[\??ma][#1#2\c!backgroundscreen][\v!page\c!backgroundscreen]}
-
-%D The stand alone text area inherits from the page too.
-
-\dodocommand\v!text \empty
-\dodocommand\v!hidden\empty
-
-%D We now define all 25 main areas in a row.
-
-\def\docommand#1%
- {\dodocommand#1\v!leftedge
- \dodocommand#1\v!leftmargin
- \dodocommand#1\v!text
- \dodocommand#1\v!rightmargin
- \dodocommand#1\v!rightedge}
-
-\docommand\v!top
-\docommand\v!header
-\docommand\v!text
-\docommand\v!footer
-\docommand\v!bottom
-
-%D We need some cleanup now.
-
-\let\dodocommand\relax \let\docommand\relax
-
-%D We now set up the individual areas to use reasonable
-%D defaults.
-
-\setupbackgrounds
- [\c!state=\c!start]
-
-\setupbackgrounds
- [\v!paper,\v!page,\v!leftpage,\v!rightpage]
- [\c!frame=\v!off,
- \c!radius=.5\bodyfontsize,
- \c!corner=\v!rectangular,
- \c!background=,
- \c!screen=\@@rsscreen,
- \c!color=,
- %\c!frameoffset=\getvalue{\??ma\v!page\c!offset},
- %\c!backgroundoffset=\getvalue{\??ma\v!page\c!offset},
- \c!offset=\!!zeropoint, % later set to \v!overlay, watch out !
- \c!depth=\!!zeropoint]
-
-\def\docommand#1%
- {\inheritparameter[\??ma][#1\c!frameoffset][\v!page\c!offset]%
- \inheritparameter[\??ma][#1\c!backgroundoffset][\v!page\c!offset]}
-
-\docommand\v!paper
-\docommand\v!page
-\docommand\v!leftpage
-\docommand\v!rightpage
-
-%D Again we clean up temporary macros.
-
-\let\docommand\relax
-
-%D The hidden layer can be populated by extending the
-%D following comma separated list. This only happens in core
-%D modules.
-
-% todo page-2 .. page+2 achter pagina -> bleed
-% spread-2 .. spread+2 achter spread -> spread (repeat 2 times)
-
-\def\enablehiddenbackground
- {\global\settrue\hiddenbackgroundenabled
- \global\somebackgroundtrue
- \recalculatebackgrounds}
-
-\def\disablehiddenbackground
- {\global\setfalse\hiddenbackgroundenabled}
-
-\def\hiddenbackground
- {\v!text-2,\v!text-1,\v!foreground,\v!text+1,\v!text+2}
-
-\setupbackgrounds
- [\v!hidden]
- [\c!background=\hiddenbackground]
-
-% The next series is used in local (for instance floating)
-% backgrounds.
-
-\presetlocalframed
- [\??ma\v!local]
-
-\def\localbackground
- {\v!local-2,\v!local-1,\v!foreground,\v!local+1,\v!local+2}
-
-\defineoverlay[\v!local-2][\positionoverlay{\v!local-2}]
-\defineoverlay[\v!local-1][\positionoverlay{\v!local-1}]
-\defineoverlay[\v!local+1][\positionoverlay{\v!local+1}]
-\defineoverlay[\v!local+2][\positionoverlay{\v!local+2}]
-
-\def\addlocalbackgroundtobox
- {\ifconditional\hiddenbackgroundenabled
- \expandafter\doaddlocalbackground
- \else
- \resetglobal \expandafter\gobbleoneargument
- \fi}
-
-\def\doaddlocalbackground#1%
- {\dodoglobal\setbox#1\hbox
- {\fastlocalframed % \localframed
- [\??ma\v!local]
- [\c!component=local,\c!frame=\v!off,\c!offset=\v!overlay,\c!setups=,%
- \c!location=\v!keep,% when we use \localframed instead of \fastlocalframed
- \c!background=\localbackground]%
- {\registerMPlocaltextarea{\box#1}}}%
- \resetglobal % redundant
- \doglobal\increment\localpositionnumber\relax} % afterwards !
-
-% Test how previous macro behaves with depth:
-%
-% \startcolumnset
-% \input tufte
-% \placefigure{none}{\framed[lines=5]{xxx}}
-% \input tufte
-% \placefigure{none}{\starttabulate\NC test\nc test\NC\NR\stoptabulate}
-% \input tufte
-% \stopcolumnset
-
-%D Because we haven't really set up backgrounds yet, we set
-%D the main efficiency switch to false.
-
-\somebackgroundfalse
-
-\protect \endinput
-
-%D Removed \quote {features}:
-%D
-%D \starttyping
-%D \startinteraction
-%D \doifmarginswapelse
-%D {\copy\leftbackground}
-%D {\copy\rightbackground}%
-%D \stopinteraction
-%D \stoptyping
-%D
-%D \starttyping
-%D \edef\setpagebackgrounddepth%
-%D {\dp#2=\the\dp#2}%
-%D \setbox#2=\vbox\localframed[\??ma#1]{...}
-%D \setpagebackgrounddepth
-%D \stoptyping
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-flw.mkii b/Master/texmf-dist/tex/context/base/mkii/page-flw.mkii
deleted file mode 100644
index ba8fd3eabaf..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-flw.mkii
+++ /dev/null
@@ -1,107 +0,0 @@
-%D \module
-%D [ file=page-flw,
-%D version=2003.04.19, % from test-002 (1997) profile experiment
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Text Flows,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / Text Flows}
-
-%D This is high experimental and especially flushing may change (proper
-%D spacing is the driving force here).
-
-\unprotect
-
-\def\definetextflow
- {\dodoubleempty\dodefinetextflow}
-
-\def\dodefinetextflow[#1][#2]% flow settings
- {\iffirstargument
- \doiftextflowcollectorelse{#1}
- {\setbox\textflowcollector{#1}\emptybox}
- {\@EA\newbox\csname\??tx:c:#1\endcsname}%
- \getparameters[\??tx:p:#1]
- [\c!width=\hsize,\c!style=,#2]%
- \fi}
-
-\def\textflowparameter#1#2{\csname\??tx:p:#1#2\endcsname}
-\def\textflowcollector #1{\csname\??tx:c:#1\endcsname}
-
-\def\doiftextflowcollectorelse#1{\doifdefinedelse{\??tx:c:#1}}
-
-\def\doiftextflowelse#1%
- {\doiftextflowcollectorelse{#1}
- {\ifvoid\textflowcollector{#1}%
- \expandafter\secondoftwoarguments
- \else
- \expandafter\firstoftwoarguments
- \fi}
- {\secondoftwoarguments}}
-
-\def\doiftextflow#1%
- {\doiftextflowelse{#1}\firstofoneargument\gobbleoneargument}
-
-\def\starttextflow[#1]%
- {\doiftextflowcollectorelse{#1}
- {\global\setbox\textflowcollector{#1}\vbox
- \bgroup
- \unvbox\textflowcollector{#1}%
- \hsize\textflowparameter{#1}\c!width
- \doifsomething{\textflowparameter{#1}\c!style}%
- {\doconvertfont{\textflowparameter{#1}\c!style}}%
- \def\stoptextflow{\endgraf\egroup}}
- {\let\stoptextflow\relax}}
-
-\def\flushtextflow#1%
- {\doiftextflow{#1}
- {\ifdim\ht\textflowcollector{#1}>\vsize
- \setbox\scratchbox\vsplit\textflowcollector{#1} to \vsize
- \unvbox\scratchbox
- \else
- \unvbox\textflowcollector{#1}%
- \fi}}
-
-\protect \endinput
-
-% Example (dutch)
-%
-% \stelpapierformaatin [S6]
-% \steltolerantiein [soepel,rek]
-% \stelkleurenin [status=start]
-% \stelvoetin [strut=nee]
-% \stelwitruimtein [groot]
-%
-% \stellayoutin
-% [rechterrand=5cm,breedte=passend,marge=0pt,randafstand=1cm,
-% voet=4cm,voetafstand=1cm,hoofd=0cm]
-%
-% \stelteksttekstenin[rand][][\vbox{\flushtextflow{alpha}}]
-% \stelvoettekstenin [rand][][\vbox{\flushtextflow{beta}}]
-% \stelvoettekstenin [\vbox{\flushtextflow{gamma}}][]
-%
-% \definetextflow [alfa] [breedte=\rechterrandbreedte]
-% \definetextflow [beta] [breedte=\rechterrandbreedte]
-% \definetextflow [gamma] [breedte=\voethoogte]
-%
-% \starttekst
-%
-% \dorecurse{50}
-% {\getrandomnumber{\funny}{0}{8}
-% \ifcase\funny \starttextflow[alfa] \input tufte.tex \stoptextflow
-% \or \starttextflow[beta] \input knuth.tex \stoptextflow
-% \or \starttextflow[gamma] \input materie.tex \stoptextflow
-% \or {\bf TUFTE}\quad \input tufte \par
-% \or {\bf TUFTE}\quad \input tufte \par
-% \or {\bf KNUTH}\quad \input knuth \par
-% \or {\bf KNUTH}\quad \input knuth \par
-% \or {\bf MATERIE}\quad \input materie \par
-% \else {\bf MATERIE}\quad \input materie \par
-% \fi}
-%
-% \stoptekst
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-imp.mkii b/Master/texmf-dist/tex/context/base/mkii/page-imp.mkii
deleted file mode 100644
index bf10504b48c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-imp.mkii
+++ /dev/null
@@ -1,1662 +0,0 @@
-%D \module
-%D [ file=page-imp, % was: core-pag,
-%D version=1998.01.15,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Pagebody Building (Imposition),
-%D author=Hans Hagen & Willi Egger,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% much of this can more to run time loading !
-
-\writestatus{loading}{ConTeXt Page Macros / Pagebody Building}
-
-\unprotect
-
-% sizing bug:
-%
-% \setuppapersize[A4][A4,landscape] \setuparranging[2UP] \showframe
-%
-% \starttext \dorecurse{10}{\input tufte \par} \stoptext
-
-% to be moved code:
-
-\newif\ifclipprintbox \clipprintboxtrue
-%newif\ifclippagebox \clippageboxtrue
-
-\def\clippedprintbox#1#2% can be made more efficient, see other clipper
- {\ifclipprintbox
- \!!widthc \pagebackgroundoffset
- \!!widtha \dimexpr\paperwidth + \!!widthc\relax
- \!!heighta\dimexpr\paperheight+2\!!widthc\relax
- \setbox#2\vbox to \paperheight{\vfill\box#2}%
- \ht#2\paperheight
- \wd#2\paperwidth
- \setbox#2\vbox
- {\framed
- [\c!offset=\!!widthc,\c!strut=\v!no,\c!frame=\v!off]
- {\box#2}}%
- \setbox#2\hbox to \paperwidth
- {\ifcase#1\relax
- \!!widthb\zeropoint
- \hskip-\!!widthc
- \else
- \!!widthb\!!widthc
- \fi
- \lower\!!widthc\hbox
- {\clip
- [\c!width=\!!widtha,\c!height=\!!heighta,
- \c!hoffset=\!!widthb,\c!voffset=\zeropoint]
- {\box#2}}}%
- \wd#2\paperwidth
- \ht#2\paperheight
- \fi
- \box#2\relax}
-
-\let\clippagebox \gobbleoneargument
-\let\clipprintbox\gobbleoneargument
-
-% \setuppagenumbering[alternative=doublesided]
-% \setupcolors[state=start]
-% \setuppapersize[A4][A4,oversized]
-% \setuplayout[location=middle,clipoffset=5mm]
-% \setupbackgrounds
-% [page]
-% [frame=on,rulethickness=1mm,
-% backgroundoffset=10mm,background=color,backgroundcolor=red]
-% \starttext \dorecurse{10}{\input tufte \par} \stoptext
-
-\def\clippagebox#1%
- {\ifdim\@@lyclipoffset>\zeropoint
- \!!widtha \wd#1%
- \!!heighta\ht#1%
- \!!deptha \dp#1%
- \setbox#1\hbox
- {\!!widthb \@@lyclipoffset
- \advance\!!heighta\dimexpr\!!deptha+2\!!widthb\relax
- \advance\!!widtha \!!widthb
- \doifbothsides
- {\advance\!!widtha\!!widthb \!!widthc-\!!widthb \hskip\!!widthc}%
- {\!!widthc\zeropoint}
- {\!!widthc-\!!widthb \hskip\!!widthc}%
- \lower\!!widthb\hbox
- {\clip
- [\c!hoffset=\!!widthc,
- \c!voffset=-\!!widthb,
- \c!width=\!!widtha,
- \c!height=\!!heighta]%
- {\box#1}}}%
- \wd#1\!!widtha
- \ht#1\!!heighta
- \dp#1\!!deptha
- \fi}
-
-%D \macros
-%D {starttextdata}
-%D
-%D This is a user macro (appending to every last shipout is not
-%D really user friendly.
-
-\newtoks \collectedtextdata
-
-\long\def\starttextdata#1\stoptextdata
- {\doglobal\appendtoks#1\to\collectedtextdata}
-
-\def\flushtextdata
- {\vsmashed{\the\collectedtextdata}% all dimensions zero
- \global\collectedtextdata\emptytoks
- \globallet\flushtextdata\donothing}
-
-\prependtoks \flushtextdata \to \everylastshipout
-
-% moved code:
-
-% \def\myshipout#1%
-% {\beforeshipout % voor de pagebody dus !
-% \dontshowcomposition
-% \ifarrangingpages\@EA\actualarrange\else\@EA\actualshipout\fi
-% {\thisisrealpage\realfolio#1}%
-% \gotonextrealpage
-% \aftershipout}
-
-\def\installpagehandler#1#2% % a handler takes one argument: something to be boxed
- {\setvalue{\??pp:\c!method:#1}{#2}} % and shipped out (don't depend on the exact package)
-
-\installpagehandler\v!normal
- {\ifarrangingpages\expandafter\actualarrange\else\expandafter\actualshipout\fi}
-
-\def\myshipout#1%
- {\beforeshipout % voor de pagebody dus !
- \dontshowcomposition
- \executeifdefined{\??pp:\c!method:\@@ppmethod}\gobbleoneargument{\thisisrealpage\realfolio#1}%
- \gotonextrealpage
- \aftershipout}
-
-\newbox\postponedcontent
-
-\def\flushatshipout
- {\dowithnextbox
- {\global\setbox\postponedcontent\hbox to \zeropoint
- {%\hskip-\maxdimen % niet hier, gaat mis in acrobat (clipt)
- \unhbox\postponedcontent\unhbox\nextbox}%
- \ht\postponedcontent\zeropoint
- \dp\postponedcontent\zeropoint
- \wd\postponedcontent\zeropoint}%
- \hbox}
-
-% \starttypen
-% \def\pagestoshipout{1,3,5}
-% \stoptypen
-
-\newcount\shippedoutpages
-
-\let\pagestoshipout\empty % {1,3,6}
-\chardef\whichpagetoshipout=0 % 0=all 1=odd 2=even
-
-\ifx\finalizeshipoutbox\undefined \let\finalizeshipoutbox\firstofoneargument \fi
-
-\def\actualshipout#1%
- {\global\advance\shippedoutpages\plusone
- % this is not resource safe!
- \ifx\pagestoshipout\empty
- \ifcase\whichpagetoshipout\relax
- \donetrue
- \or % 1
- \ifodd\shippedoutpages\relax\donetrue\else\donefalse\fi
- \or % 2
- \ifodd\shippedoutpages\relax\donefalse\else\donetrue\fi
- \else
- \donetrue
- \fi
- \else % testen, aangepast / expanded nodig ?
- \expanded{\doifinsetelse{\the\shippedoutpages}{\pagestoshipout}}%
- \donetrue\donefalse
- \fi
- \ifdone
- \shipout\vbox
- {\forgetall
- \offinterlineskip
- \dontcomplain
- \scratchdimen-1in
- \vskip\scratchdimen
- \hskip\scratchdimen
- \hbox % \setbox0=\box.. is nicer
- {\setbox0\hbox{\finalizeshipoutbox{#1}}% just in case there are objects there, hook for testing
- \setbox\scratchbox\hbox
- {% before the main one !
- \ifcase\realfolio \or
- \the\everyfirstshipout
- \global\everyfirstshipout\emptytoks
- \fi
- % the main one
- \the\everyshipout\relax
- % always last (and after the main one)
- \ifnum\realpageno=\lastpage\relax
- \the\everylastshipout
- \global\everylastshipout\emptytoks
- \fi}%
- \smashbox\scratchbox
- \box\scratchbox
- \box\postponedcontent % evt ver naar links !
- \box0}}%
- \else
- \message
- {[\ifarrangingpages arranged \fi page
- \ifarrangingpages\the\arrangeno\else\the\realpageno\fi\normalspace
- not flushed]}%
- \setbox0\hbox{#1}%
- \deadcycles\zerocount
- \fi}
-
-\def\actualarrange#1%
- {\setbox0\hbox{\thisisrealpage{\realfolio}#1}%
- \pusharrangedpage0%
- \deadcycles\zerocount}
-
-%D We need a couple of boxes for duplex printing \unknown
-
-\newbox\arrangedpageA \newbox\arrangedpageB
-
-%D \unknown\ and some for simulating big sheets.
-
-\newbox\arrangedpageC \newbox\arrangedpageD
-\newbox\arrangedpageE \newbox\arrangedpageF
-\newbox\arrangedpageG \newbox\arrangedpageH
-
-\newif\ifswaparranged
-\newif\ifnegatearranged
-\newif\ifmirrorarranged
-\newif\ifdoublearranged
-
-\newif\ifarrangingdisabled
-
-\def\arrangedrotationO{0}
-\def\arrangedrotationE{0}
-
-\newcounter\arrangedpageN
-\newcounter\arrangedpageM
-
-\chardef\arrangedpageT=1
-\chardef\arrangedpageX=1
-\chardef\arrangedpageY=1
-
-\def\calculatepaperoffsets#1%
- {\scratchdimen\getvalue{\??pp#1\c!offset}%
- \divide\scratchdimen \arrangedpageX
- \global\advance\paperwidth -2\scratchdimen
- \scratchdimen\getvalue{\??pp#1\c!offset}%
- \divide\scratchdimen \arrangedpageY
- \global\advance\paperheight-2\scratchdimen}
-
-\newconditional\arrangedbackgroundokay % more ifs -> conditionals
-
-\def\setuparranging[#1]%
- {\ifarrangingdisabled \else
- \doifelse{#1}\v!disable
- {\global\arrangingdisabledtrue}
- {\global\arrangingdisabledfalse}%
- \global\arrangingpagestrue
- \global\negatearrangedfalse
- \global\mirrorarrangedfalse
- \global\doublearrangedfalse
- \gdef\arrangedrotationO{0}%
- \gdef\arrangedrotationE{180}%
- \processallactionsinset
- [#1]
- [ \v!mirrored=>\global\mirrorarrangedtrue,
- \v!doublesided=>\global\doublearrangedtrue,
- \v!negative=>\global\negatearrangedtrue,
- \v!rotated=>\gdef\arrangedrotationO {90}\gdef\arrangedrotationE{270},
- 90=>\gdef\arrangedrotationO {90}\gdef\arrangedrotationE{270},
- 180=>\gdef\arrangedrotationO{180}\gdef\arrangedrotationE{0},
- 270=>\gdef\arrangedrotationO{270}\gdef\arrangedrotationE{90},
- \s!reset=>\global\arrangingpagesfalse,
- \v!background=>\global\settrue\arrangedbackgroundokay,
- \s!unknown=>\checkinstalledpagearrangement\commalistelement]%
- % no \s!default=> we can have aaa,,bbb
- \ifx\handlearrangedpage\undefined
- \global\arrangingpagesfalse
- \fi
- \doifcommonelse{#1}{90,270,\v!rotated}
- {\swapmacros\horizontalcutmarks\verticalcutmarks}{}% ugly solution
- \setuppapersize
- \ifarrangingpages
- \abortutilitygeneration
- \fi
- \fi}
-
-\def\installpagearrangement #1 %
- {\setgvalue{\??pp\??pp#1}}
-
-\def\checkinstalledpagearrangement#1% can be empty: aaa,,bbb
- {\executeifdefined{\??pp\??pp#1}\donothing}
-
-\def\dosetuparrangement#1#2#3#4#5#6#7#8%
- {\global\chardef\arrangedpageX #1%
- \global\chardef\arrangedpageY #2%
- \global\chardef\arrangedpageT #3%
- \global\chardef\horizontalcutmarks#4%
- \global\chardef\verticalcutmarks #5%
- \global\let \pusharrangedpage #6%
- \global\let \poparrangedpages #7%
- \global\let \handlearrangedpage#8}
-
-\installpagearrangement {\v!normal}
- {\global\arrangingpagesfalse}
-
-\installpagearrangement 2*16
- {\dosetuparrangement{4}{4}{16}{5}{5}%
- \pusharrangedpageTHIRTYTWO\poparrangedpagesAB\relax}
-
-\installpagearrangement 2*8
- {\dosetuparrangement{4}{2}{8}{5}{3}%
- \pusharrangedpageSIXTEEN\poparrangedpagesAB\relax}
-
-\installpagearrangement 2*4
- {\dosetuparrangement{2}{2}{4}{3}{3}%
- \pusharrangedpageEIGHT\poparrangedpagesAB\relax}
-
-\installpagearrangement 2*2
- {\dosetuparrangement{2}{1}{2}{3}{2}%
- \pusharrangedpageFOURA\poparrangedpagesAB\relax}
-
-\installpagearrangement 2**2
- {\dosetuparrangement{2}{1}{2}{3}{2}%
- \pusharrangedpageFOURB\poparrangedpagesAB\relax}
-
-\installpagearrangement 2SIDE
- {\dosetuparrangement{2}{1}{2}{3}{2}%
- \pusharrangedpageSIDETOP\poparrangedpagesTWO\handlearrangedpageSIDE}
-
-\installpagearrangement 2TOP
- {\dosetuparrangement{1}{2}{2}{2}{3}%
- \pusharrangedpageSIDETOP\poparrangedpagesTWO\handlearrangedpageTOP}
-
-\installpagearrangement 2UP
- {\dosetuparrangement{2}{1}{4}{3}{2}%
- \pusharrangedpageTWO\poparrangedpagesTWO\handlearrangedpageTWOUP}
-
-\installpagearrangement 2DOWN
- {\dosetuparrangement{1}{2}{4}{2}{3}%
- \pusharrangedpageTWO\poparrangedpagesTWO\handlearrangedpageTWODOWN}
-
-\installpagearrangement 2*4*2 % one defined by Willy Egger:
- {\dosetuparrangement{2}{2}{4}{3}{3}%
- \pusharrangedpageSIXTEENTWO\poparrangedpagesAtoD\relax}
-
-\installpagearrangement 2*2*4 % onother one of Willy Egger
- {\dosetuparrangement{2}{1}{8}{3}{2}%
- \pusharrangedpageSIXTEENFOUR\poparrangedpagesAtoH\relax}
-
-\installpagearrangement 2TOPSIDE
- {\dosetuparrangement{1}{2}{4}{2}{3}%
- \pusharrangedpageTWOTOPSIDE\poparrangedpagesTWOTOPSIDE\handlearrangedpageTOP}
-
-% \def\filluparrangedpages % beware: \realpageno is 1 ahead
-% {\ifarrangingpages
-% \scratchcounter-\realpageno
-% \divide\scratchcounter \arrangedpageT
-% \multiply\scratchcounter \arrangedpageT
-% \advance\scratchcounter \realpageno
-% \advance\scratchcounter \minusone
-% \dorecurse\scratchcounter{\noheaderandfooterlines\ejectdummypage}%
-% \fi}
-
-\def\filluparrangedpages % beware: \realpageno is 1 ahead
- {\ifarrangingpages
- \scratchcounter\numexpr\realpageno-\plusone\relax
- \dosetmodulo\scratchcounter\arrangedpageT\scratchcounter
- \ifcase\scratchcounter\else
- \advance\scratchcounter \plusone
- \dostepwiserecurse\scratchcounter\arrangedpageT\plusone
- {\noheaderandfooterlines\ejectdummypage}%
- \fi
- \fi}
-
-\def\handlearrangedpageXandY#1#2#3#4#5%
- {\global\setbox#5\hbox to \arrangedpageX\paperwidth
- {\setbox\scratchbox\vbox to \arrangedpageY\paperheight
- {\forgetall
- \offinterlineskip
- \dontcomplain
- \vskip#4\paperheight
- \hskip#3\paperwidth
- \dorotatebox{\ifcase#2 0\else180\fi}\hbox{\box#1}%
- \vfill}%
- \wd\scratchbox\zeropoint
- \box\scratchbox\box#5\hss}}
-
-\def\gotonextarrangepage
- {\global\advance\arrangeno \plusone
- \def\pagecutmarksymbol{\the\arrangeno}}
-
-\def\outputarrangedbox#1%
- {\bgroup
- \gotonextarrangepage
- \ifnum\arrangedrotationO\arrangedrotationE>\zerocount
- \setbox#1\vbox
- {\ifdoublearranged
- \ifodd\arrangeno
- \dorotatebox\arrangedrotationO\hbox{\box#1}%
- \else
- \dorotatebox\arrangedrotationE\hbox{\box#1}%
- \fi
- \else
- \dorotatebox\arrangedrotationO\hbox{\box#1}%
- \fi}%
- \fi
- \ifmirrorarranged
- \setbox#1\vbox{\domirrorbox\vbox{\box#1}}%
- \fi
- \ifnegatearranged
- \negatecolorbox{#1}%
- \fi
- \finishpagebox#1%
- \ifconditional\arrangedbackgroundokay\addprintbackground#1\fi
- \actualshipout{\box#1}%
- \egroup}
-
-%D The format file can be 16K smaller when we postpone the
-%D real arrangments. Some day ...
-
-% TOP
-
-% 32/16/8/4/SIDE
-
-\def\poparrangedpagesAB
- {\ifnum\arrangedpageN>\zerocount
- \dontcomplain
- \paperwidth\arrangedpageX\paperwidth
- \paperheight\arrangedpageY\paperheight
- \outputarrangedbox\arrangedpageA
- \outputarrangedbox\arrangedpageB
- \doglobal\newcounter\arrangedpageN
- \fi}
-
-\def\pusharrangedpageTHIRTYTWO#1% taco's challenge
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}033\arrangedpageA % 1
- \or \handlearrangedpageXandY{#1}003\arrangedpageB % 2
- \or \handlearrangedpageXandY{#1}100\arrangedpageB % 3
- \or \handlearrangedpageXandY{#1}130\arrangedpageA % 4
- \or \handlearrangedpageXandY{#1}100\arrangedpageA % 5
- \or \handlearrangedpageXandY{#1}130\arrangedpageB % 6
- \or \handlearrangedpageXandY{#1}033\arrangedpageB % 7
- \or \handlearrangedpageXandY{#1}003\arrangedpageA % 8
- \or \handlearrangedpageXandY{#1}102\arrangedpageA % 9
- \or \handlearrangedpageXandY{#1}132\arrangedpageB % 10
- \or \handlearrangedpageXandY{#1}031\arrangedpageB % 11
- \or \handlearrangedpageXandY{#1}001\arrangedpageA % 12
- \or \handlearrangedpageXandY{#1}031\arrangedpageA % 13
- \or \handlearrangedpageXandY{#1}001\arrangedpageB % 14
- \or \handlearrangedpageXandY{#1}102\arrangedpageB % 15
- \or \handlearrangedpageXandY{#1}132\arrangedpageA % 16
- \or \handlearrangedpageXandY{#1}122\arrangedpageA % 17
- \or \handlearrangedpageXandY{#1}112\arrangedpageB % 18
- \or \handlearrangedpageXandY{#1}011\arrangedpageB % 19
- \or \handlearrangedpageXandY{#1}021\arrangedpageA % 20
- \or \handlearrangedpageXandY{#1}011\arrangedpageA % 21
- \or \handlearrangedpageXandY{#1}021\arrangedpageB % 22
- \or \handlearrangedpageXandY{#1}122\arrangedpageB % 23
- \or \handlearrangedpageXandY{#1}112\arrangedpageA % 24
- \or \handlearrangedpageXandY{#1}013\arrangedpageA % 25
- \or \handlearrangedpageXandY{#1}023\arrangedpageB % 26
- \or \handlearrangedpageXandY{#1}120\arrangedpageB % 27
- \or \handlearrangedpageXandY{#1}110\arrangedpageA % 28
- \or \handlearrangedpageXandY{#1}120\arrangedpageA % 29
- \or \handlearrangedpageXandY{#1}110\arrangedpageB % 30
- \or \handlearrangedpageXandY{#1}013\arrangedpageB % 31
- \or \handlearrangedpageXandY{#1}023\arrangedpageA % 32
- \poparrangedpages
- \fi}
-
-\def\pusharrangedpageSIXTEEN#1% changed to match the official way of doing
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}031\arrangedpageA % 1
- \or \handlearrangedpageXandY{#1}001\arrangedpageB % 2
- \or \handlearrangedpageXandY{#1}031\arrangedpageB % 3
- \or \handlearrangedpageXandY{#1}001\arrangedpageA % 4
- \or \handlearrangedpageXandY{#1}100\arrangedpageA % 5
- \or \handlearrangedpageXandY{#1}130\arrangedpageB % 6
- \or \handlearrangedpageXandY{#1}100\arrangedpageB % 7
- \or \handlearrangedpageXandY{#1}130\arrangedpageA % 8
- \or \handlearrangedpageXandY{#1}120\arrangedpageA % 9
- \or \handlearrangedpageXandY{#1}110\arrangedpageB % 10
- \or \handlearrangedpageXandY{#1}120\arrangedpageB % 11
- \or \handlearrangedpageXandY{#1}110\arrangedpageA % 12
- \or \handlearrangedpageXandY{#1}011\arrangedpageA % 13
- \or \handlearrangedpageXandY{#1}021\arrangedpageB % 14
- \or \handlearrangedpageXandY{#1}011\arrangedpageB % 15
- \or \handlearrangedpageXandY{#1}021\arrangedpageA % 16
- \poparrangedpages
- \fi}
-
-\def\pusharrangedpageEIGHT#1% changed to match the official way of doing
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}011\arrangedpageA % 1
- \or \handlearrangedpageXandY{#1}001\arrangedpageB % 2
- \or \handlearrangedpageXandY{#1}100\arrangedpageB % 3
- \or \handlearrangedpageXandY{#1}110\arrangedpageA % 4
- \or \handlearrangedpageXandY{#1}100\arrangedpageA % 5
- \or \handlearrangedpageXandY{#1}110\arrangedpageB % 6
- \or \handlearrangedpageXandY{#1}011\arrangedpageB % 7
- \or \handlearrangedpageXandY{#1}001\arrangedpageA % 8
- \poparrangedpages
- \fi}
-
-\def\pusharrangedpageFOURA{\pusharrangedpageFOURdo01}
-\def\pusharrangedpageFOURB{\pusharrangedpageFOURdo10}
-
-\def\pusharrangedpageFOURdo#1#2#3%
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#3}010\arrangedpageA % 1
- \or \handlearrangedpageXandY{#3}0{#1}0\arrangedpageB % 2/3 not {1}
- \or \handlearrangedpageXandY{#3}0{#2}0\arrangedpageB % 3/2 not {1}
- \or \handlearrangedpageXandY{#3}000\arrangedpageA % 4
- \poparrangedpages
- \fi}
-
-\def\pusharrangedpageSIDETOP#1%
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}000\arrangedpageA % 1
- \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2
- \poparrangedpages
- \fi}
-
-\def\handlearrangedpageSIDE
- {\wd\arrangedpageA\paperwidth
- \wd\arrangedpageB\paperwidth
- \global\setbox\arrangedpageA\hbox
- {\box\arrangedpageA\box\arrangedpageB}%
- \ht\arrangedpageA\paperheight}
-
-\def\handlearrangedpageTOP
- {\ht\arrangedpageA\paperheight
- \ht\arrangedpageB\paperheight
- \global\setbox\arrangedpageA\vbox
- {\forgetall\offinterlineskip\vskip\paperheight
- \box\arrangedpageA\box\arrangedpageB}%
- \global\setbox\arrangedpageB\box\scratchbox} % ?
-
-% 2UP/2DOWN / 1pt prevents overflow
-
-\def\splitoffarrangedpagesTWO
- {\splittopskip\zeropoint
- \global\setbox\arrangedpageA\vsplit\arrangedpageB to \onepoint
- \scratchdimen\dimexpr\ht\arrangedpageB-\onepoint\relax
- \ifdim\scratchdimen>\onepoint
- \setbox\scratchbox\vsplit\arrangedpageB to \scratchdimen
- \fi}
-
-\def\handlearrangedpageTWOUP
- {\splitoffarrangedpagesTWO
- \ifswaparranged
- \global\setbox\arrangedpageA\hbox
- {\clippedprintbox0\arrangedpageA
- \clippedprintbox1\arrangedpageB}%
- \swaparrangedfalse
- \else
- \global\setbox\arrangedpageA\hbox
- {\clippedprintbox0\arrangedpageB
- \clippedprintbox1\arrangedpageA}%
- \swaparrangedtrue
- \fi
- \ht\arrangedpageA\paperheight
- \global\setbox\arrangedpageB\box\scratchbox}
-
-\def\handlearrangedpageTWODOWN
- {\splitoffarrangedpagesTWO
- \ht\arrangedpageA\paperheight
- \ht\arrangedpageB\paperheight
- \ifswaparranged
- \global\setbox\arrangedpageA\vbox
- {\forgetall\offinterlineskip\vskip\paperheight
- \box\arrangedpageA\box\arrangedpageB}%
- \swaparrangedfalse
- \else
- \global\setbox\arrangedpageA\vbox
- {\forgetall\offinterlineskip\vskip\paperheight
- \box\arrangedpageB\box\arrangedpageA}%
- \swaparrangedtrue
- \fi
- \global\setbox\arrangedpageB\box\scratchbox}
-
-\def\poparrangedpagesTWO
- {\ifnum\arrangedpageN>\zerocount
- \dontcomplain
- \swaparrangedfalse
- \doloop
- {\handlearrangedpage
- \bgroup
- \paperwidth\arrangedpageX\paperwidth
- \paperheight\arrangedpageY\paperheight
- \ht\arrangedpageA\paperheight
- \wd\arrangedpageA\paperwidth
- \outputarrangedbox\arrangedpageA
- \egroup
- \ifdim\ht\arrangedpageB=\zeropoint
- \exitloop
- \fi}%
- \doglobal\newcounter\arrangedpageN
- \fi}
-
-\def\pusharrangedpageTWO#1%
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \global\setbox\arrangedpageB\vbox
- {\forgetall
- \offinterlineskip
- \unvbox\arrangedpageB
- \allowbreak
- \ht#1\onepoint
- \dp#1\zeropoint
- \vbox{\box#1}}}
-
-\def\poparrangedpagesTWOTOPSIDE
- {\ifnum\arrangedpageN>\zerocount
- \bgroup
- \gdef\arrangedpageN{2}\poparrangedpagesTWO
- \let\arrangedpageA\arrangedpageC
- \let\arrangedpageB\arrangedpageD
- \gdef\arrangedpageN{2}\poparrangedpagesTWO
- \doglobal\newcounter\arrangedpageN
- \egroup
- \fi}
-
-\def\pusharrangedpageTWOTOPSIDE#1%
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}000\arrangedpageA % 1
- \or \handlearrangedpageXandY{#1}000\arrangedpageC % 2
- \or \handlearrangedpageXandY{#1}000\arrangedpageB % 1
- \or \handlearrangedpageXandY{#1}000\arrangedpageD % 2
- \poparrangedpages
- \fi}
-
-%D Willy Egger's sheet simulations:
-
-\def\poparrangedpagesAtoH
- {\ifnum\arrangedpageN>\zerocount
- \dontcomplain
- \paperwidth\arrangedpageX\paperwidth
- \paperheight\arrangedpageY\paperheight
- \outputarrangedbox\arrangedpageA
- \outputarrangedbox\arrangedpageB
- \outputarrangedbox\arrangedpageC
- \outputarrangedbox\arrangedpageD
- \outputarrangedbox\arrangedpageE
- \outputarrangedbox\arrangedpageF
- \outputarrangedbox\arrangedpageG
- \outputarrangedbox\arrangedpageH
- \doglobal\newcounter\arrangedpageN
- \fi}
-
-% to arrange 16 pages on 2 sheets to form one booklet
-
-\def\poparrangedpagesAtoD
- {\ifnum\arrangedpageN>\zerocount
- \dontcomplain
- \paperwidth\arrangedpageX\paperwidth
- \paperheight\arrangedpageY\paperheight
- \outputarrangedbox\arrangedpageA
- \outputarrangedbox\arrangedpageB
- \outputarrangedbox\arrangedpageC
- \outputarrangedbox\arrangedpageD
- \doglobal\newcounter\arrangedpageN
- \fi}
-
-% to arrange 16 pages on 4 sheets to form one booklet
-
-\def\pusharrangedpageSIXTEENFOUR#1%
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}010\arrangedpageA % 1
- \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2
- \or \handlearrangedpageXandY{#1}010\arrangedpageC % 3
- \or \handlearrangedpageXandY{#1}000\arrangedpageD % 4
- \or \handlearrangedpageXandY{#1}010\arrangedpageE % 5
- \or \handlearrangedpageXandY{#1}000\arrangedpageF % 6
- \or \handlearrangedpageXandY{#1}010\arrangedpageG % 7
- \or \handlearrangedpageXandY{#1}000\arrangedpageH % 8
- \or \handlearrangedpageXandY{#1}010\arrangedpageH % 9
- \or \handlearrangedpageXandY{#1}000\arrangedpageG % 10
- \or \handlearrangedpageXandY{#1}010\arrangedpageF % 11
- \or \handlearrangedpageXandY{#1}000\arrangedpageE % 12
- \or \handlearrangedpageXandY{#1}010\arrangedpageD % 13
- \or \handlearrangedpageXandY{#1}000\arrangedpageC % 14
- \or \handlearrangedpageXandY{#1}010\arrangedpageB % 15
- \or \handlearrangedpageXandY{#1}000\arrangedpageA % 16
- \poparrangedpages
- \fi}
-
-% to arrange 16 pages on 2 sheets to form one booklet
-
-\def\pusharrangedpageSIXTEENTWO#1%
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}011\arrangedpageA % 1
- \or \handlearrangedpageXandY{#1}001\arrangedpageB % 2
- \or \handlearrangedpageXandY{#1}011\arrangedpageC % 3
- \or \handlearrangedpageXandY{#1}001\arrangedpageD % 4
- \or \handlearrangedpageXandY{#1}100\arrangedpageD % 5
- \or \handlearrangedpageXandY{#1}110\arrangedpageC % 6
- \or \handlearrangedpageXandY{#1}100\arrangedpageB % 7
- \or \handlearrangedpageXandY{#1}110\arrangedpageA % 8
- \or \handlearrangedpageXandY{#1}100\arrangedpageA % 9
- \or \handlearrangedpageXandY{#1}110\arrangedpageB % 10
- \or \handlearrangedpageXandY{#1}100\arrangedpageC % 11
- \or \handlearrangedpageXandY{#1}110\arrangedpageD % 12
- \or \handlearrangedpageXandY{#1}011\arrangedpageD % 13
- \or \handlearrangedpageXandY{#1}001\arrangedpageC % 14
- \or \handlearrangedpageXandY{#1}011\arrangedpageB % 15
- \or \handlearrangedpageXandY{#1}001\arrangedpageA % 16
- \poparrangedpages
- \fi}
-
-% % handy for stickers etc, this way we can treat them as page
-%
-% \setuppapersize [XY][A4]
-% \setuppaper [topspace=5mm,backspace=5mm,dx=1mm,dy=1mm,nx=2,ny=6]
-% \setuplayout [page] [topspace=5mm,backspace=5mm]
-% \setuplayout [page]
-% \setuplayout [location=middle]
-% \setuparranging [XY]
-% \showframe
-%
-% \starttext \dorecurse{30}{test \recurselevel \page} \stoptext
-
-\def\pusharrangedpageXY#1%
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \doglobal\increment\arrangedpageM
- \global\setbox\arrangedpageB\hbox
- \ifdim\@@ppwidth>\zeropoint to \@@ppwidth \fi
- {\ifvoid\arrangedpageB\else
- \unhbox\arrangedpageB
- \ifdim\@@ppdx>\zeropoint \else \hss\fi
- \hskip\@@ppdx
- \ifdim\@@ppdx>\zeropoint \else \hss\fi
- \fi
- \box#1}%
- \ifnum\arrangedpageM<\arrangedpageX\else
- \global\setbox\arrangedpageA\vbox
- \ifdim\@@ppheight>\zeropoint to \@@ppheight \fi
- {\offinterlineskip
- \ifvoid\arrangedpageA\else
- \unvbox\arrangedpageA
- \ifdim\@@ppdy>\zeropoint \else \vss\fi
- \vskip\@@ppdy
- \ifdim\@@ppdy>\zeropoint \else \vss\fi
- \fi
- \box\arrangedpageB}%
- \doglobal\newcounter\arrangedpageM
- \fi
- \ifnum\arrangedpageN<\arrangedpageT\else
- \poparrangedpages
- \fi}
-
-\def\poparrangedpagesXY
- {\ifnum\arrangedpageN>\zerocount
- \dontcomplain
- \paperwidth\arrangedpageX\paperwidth
- \paperheight \arrangedpageY\paperheight
- \outputarrangedbox\arrangedpageA
- \doglobal\newcounter\arrangedpageN
- \doglobal\newcounter\arrangedpageM
- \fi}
-
-\installpagearrangement XY
- {\dosetuparrangement\@@ppnx\@@ppny\@@ppxy\!!zerocount\!!zerocount
- \pusharrangedpageXY\poparrangedpagesXY\relax}
-
-%D A crazy definition, don't guess who pushed me for the landscape option.
-
-\definepapersize
- [XY]
- [\c!height=\dimexpr\dimexpr\@@ppheight-\numexpr\@@ppny-1\relax\dimexpr\@@ppdy\relax\relax/\@@ppny\relax,
- \c!width =\dimexpr\dimexpr\@@ppwidth -\numexpr\@@ppnx-1\relax\dimexpr\@@ppdx\relax\relax/\@@ppnx\relax]
-
-\setuppaper
- [\c!width =\dimexpr\printpaperwidth -2\dimexpr\@@ppbackspace\relax\relax,
- \c!height=\dimexpr\printpaperheight-2\dimexpr\@@pptopspace \relax\relax]
-
-%D Might be used if a printer is printing from a rol or creating mini-books from A4:
-%D This section has 16 pages. The folding scheme is first a Z-fold and at the end
-%D a final fold in the spine.
-%D Coding: [2*8*Z]
-
-\installpagearrangement 2*8*Z
- {\dosetuparrangement{2}{4}{8}{3}{5}% X,Y,Total,hcutmarks,vcutmarks
- \pusharrangedpageSIXTEENZ\poparrangedpagesAB\relax}
-
-\def\pusharrangedpageSIXTEENZ#1%
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}010\arrangedpageA % 1
- \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2
- \or \handlearrangedpageXandY{#1}101\arrangedpageB % 3
- \or \handlearrangedpageXandY{#1}111\arrangedpageA % 4
- \or \handlearrangedpageXandY{#1}012\arrangedpageA % 5
- \or \handlearrangedpageXandY{#1}002\arrangedpageB % 6
- \or \handlearrangedpageXandY{#1}103\arrangedpageB % 7
- \or \handlearrangedpageXandY{#1}113\arrangedpageA % 8
- \or \handlearrangedpageXandY{#1}103\arrangedpageA % 9
- \or \handlearrangedpageXandY{#1}113\arrangedpageB % 10
- \or \handlearrangedpageXandY{#1}012\arrangedpageB % 11
- \or \handlearrangedpageXandY{#1}002\arrangedpageA % 12
- \or \handlearrangedpageXandY{#1}101\arrangedpageA % 13
- \or \handlearrangedpageXandY{#1}111\arrangedpageB % 14
- \or \handlearrangedpageXandY{#1}010\arrangedpageB % 15
- \or \handlearrangedpageXandY{#1}000\arrangedpageA % 16
- \poparrangedpages
- \fi}
-
-%D Another Z-folded section with 12 pages
-%D Coding: [2*6*Z]
-
-\installpagearrangement 2*6*Z
- {\dosetuparrangement{2}{3}{6}{3}{4}% X,Y,Total,hcutmarks,vcutmarks
- \pusharrangedpageTWELVEZ\poparrangedpagesAB\relax}
-
-\def\pusharrangedpageTWELVEZ#1%
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}010\arrangedpageA % 1: rotation (0=upright),x (0=first column),y (0=first row)
- \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2
- \or \handlearrangedpageXandY{#1}101\arrangedpageB % 3
- \or \handlearrangedpageXandY{#1}111\arrangedpageA % 4
- \or \handlearrangedpageXandY{#1}012\arrangedpageA % 5
- \or \handlearrangedpageXandY{#1}002\arrangedpageB % 6
- \or \handlearrangedpageXandY{#1}012\arrangedpageB % 7
- \or \handlearrangedpageXandY{#1}002\arrangedpageA % 8
- \or \handlearrangedpageXandY{#1}101\arrangedpageA % 9
- \or \handlearrangedpageXandY{#1}111\arrangedpageB % 10
- \or \handlearrangedpageXandY{#1}010\arrangedpageB % 11
- \or \handlearrangedpageXandY{#1}000\arrangedpageA % 12
- \poparrangedpages
- \fi}
-
-%D For Heinz' special greeting cards folding. This scheme is also used for the PocketDiary (module):
-%D Coding: [1*8]
-
-\installpagearrangement 1*8
- {\dosetuparrangement{4}{2}{8}{5}{3} % X,Y,Total,hcutmarks,vcutmarks
- \pusharrangedpageEIGHTSINGLESIDEDFOLDED\poparrangedpagesTWO\relax}
-
-\def\pusharrangedpageEIGHTSINGLESIDEDFOLDED#1%
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}010\arrangedpageA % 1 rot,hskip,vskip
- \or \handlearrangedpageXandY{#1}020\arrangedpageA % 2
- \or \handlearrangedpageXandY{#1}030\arrangedpageA % 3
- \or \handlearrangedpageXandY{#1}131\arrangedpageA % 4
- \or \handlearrangedpageXandY{#1}121\arrangedpageA % 5
- \or \handlearrangedpageXandY{#1}111\arrangedpageA % 6
- \or \handlearrangedpageXandY{#1}101\arrangedpageA % 7
- \or \handlearrangedpageXandY{#1}000\arrangedpageA % 8
- \poparrangedpages
- \fi}
-
-%D This is not a section. \CONTEXT\ places 4 pages on a sheet of paper, singlesided
-%D Coding: [1*4]
-
-\installpagearrangement 1*4
- {\dosetuparrangement{2}{2}{4}{3}{3} % X,Y,Total,hcutmarks,vcutmarks
- \pusharrangedpageFOURSINGLESIDEDFOLDED\poparrangedpagesTWO\relax}
-
-\def\pusharrangedpageFOURSINGLESIDEDFOLDED#1%
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}100\arrangedpageA % 1 rot,hskip,vskip
- \or \handlearrangedpageXandY{#1}001\arrangedpageA % 2
- \or \handlearrangedpageXandY{#1}011\arrangedpageA % 3
- \or \handlearrangedpageXandY{#1}110\arrangedpageA % 4
- \poparrangedpages
- \fi}
-
-%D This imposition scheme was requested by Hraban Ramm, by Willi Egger 21-07-2003
-%D Coding: [3SIDE]
-
-\installpagearrangement 3SIDE
- {\dosetuparrangement{3}{1}{3}{4}{2}% X,Y,Total,hcutmarks,vcutmarks
- \pusharrangedpageTHREESIDE\poparrangedpagesAB\relax}
-
-\def\pusharrangedpageTHREESIDE#1% Willi's approach
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}000\arrangedpageA % 1 rot,hskip,vskip
- \or \handlearrangedpageXandY{#1}010\arrangedpageA % 2
- \or \handlearrangedpageXandY{#1}020\arrangedpageA % 3
- \or \handlearrangedpageXandY{#1}000\arrangedpageB % 4
- \or \handlearrangedpageXandY{#1}010\arrangedpageB % 5
- \or \handlearrangedpageXandY{#1}020\arrangedpageB % 6
- \poparrangedpages
- \fi}
-
-%D FLYER in three parts and 6 pages 22-10-2010
-%D Coding: [TRYPTICHON]
-
-\installpagearrangement TRYPTICHON
- {\dosetuparrangement{3}{1}{3}{4}{2}% X,Y,Total,hcutmarks,vcutmarks
- \pusharrangedpageFOLDERSIX\poparrangedpagesAB\relax}
-
-\def\pusharrangedpageFOLDERSIX#1% Willi's approach
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}020\arrangedpageA % 1 rot,hskip,vskip
- \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2
- \or \handlearrangedpageXandY{#1}010\arrangedpageB % 3
- \or \handlearrangedpageXandY{#1}020\arrangedpageB % 4
- \or \handlearrangedpageXandY{#1}000\arrangedpageA % 5
- \or \handlearrangedpageXandY{#1}010\arrangedpageA % 6
- \poparrangedpages
- \fi}
-
-%D FLYER in Z-fold with 8 pages 22-01-2010
-%D Coding: [ZFLYER-8]
-
-\installpagearrangement ZFLYER-8
- {\dosetuparrangement{4}{1}{4}{5}{2}% X,Y,Total,hcutmarks,vcutmarks
- \pusharrangedpageZFOLDEREIGHT\poparrangedpagesAB\relax}
-
-\def\pusharrangedpageZFOLDEREIGHT#1% Willi's approach
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}030\arrangedpageA % 1 rot,hskip,vskip
- \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2
- \or \handlearrangedpageXandY{#1}010\arrangedpageB % 3
- \or \handlearrangedpageXandY{#1}020\arrangedpageB % 4
- \or \handlearrangedpageXandY{#1}030\arrangedpageB % 5
- \or \handlearrangedpageXandY{#1}000\arrangedpageA % 6
- \or \handlearrangedpageXandY{#1}010\arrangedpageA % 7
- \or \handlearrangedpageXandY{#1}020\arrangedpageA % 8
- \poparrangedpages
- \fi}
-
-%D FLYER in Z-fold with 10 pages 04-08-2010
-%D Coding: [ZFLYER-10]
-
-\installpagearrangement ZFLYER-10
- {\dosetuparrangement{5}{1}{5}{6}{2}% X,Y,Total,hcutmarks,vcutmarks
- \pusharrangedpageZFLYERTEN\poparrangedpagesAB\relax}
-
-\def\pusharrangedpageZFLYERTEN#1% Willi's approach
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}040\arrangedpageA % 1 rot,hskip,vskip
- \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2
- \or \handlearrangedpageXandY{#1}010\arrangedpageB % 3
- \or \handlearrangedpageXandY{#1}020\arrangedpageB % 4
- \or \handlearrangedpageXandY{#1}030\arrangedpageB % 5
- \or \handlearrangedpageXandY{#1}040\arrangedpageB % 6
- \or \handlearrangedpageXandY{#1}000\arrangedpageA % 7
- \or \handlearrangedpageXandY{#1}010\arrangedpageA % 8
- \or \handlearrangedpageXandY{#1}020\arrangedpageA % 9
- \or \handlearrangedpageXandY{#1}030\arrangedpageA % 10
- \poparrangedpages
- \fi}
-
-
-%D FLYER in Z-fold with 12 pages 04-08-2010
-%D Coding: [ZFLYER-12]
-
-\installpagearrangement ZFLYER-12
- {\dosetuparrangement{6}{1}{6}{7}{2}% X,Y,Total,hcutmarks,vcutmarks
- \pusharrangedpageZFLYERTWELVE\poparrangedpagesAB\relax}
-
-\def\pusharrangedpageZFLYERTWELVE#1% Willi's approach
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}050\arrangedpageA % 1 rot,hskip,vskip
- \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2
- \or \handlearrangedpageXandY{#1}010\arrangedpageB % 3
- \or \handlearrangedpageXandY{#1}020\arrangedpageB % 4
- \or \handlearrangedpageXandY{#1}030\arrangedpageB % 5
- \or \handlearrangedpageXandY{#1}040\arrangedpageB % 6
- \or \handlearrangedpageXandY{#1}050\arrangedpageB % 7
- \or \handlearrangedpageXandY{#1}000\arrangedpageA % 8
- \or \handlearrangedpageXandY{#1}010\arrangedpageA % 9
- \or \handlearrangedpageXandY{#1}020\arrangedpageA % 10
- \or \handlearrangedpageXandY{#1}030\arrangedpageA % 11
- \or \handlearrangedpageXandY{#1}040\arrangedpageA % 12
- \poparrangedpages
- \fi}
-
-%D FLYER folded as a map with 6 pages per side.
-%D Coding: [MAPFLYER-12]
-
-\installpagearrangement MAPFLYER-12
- {\dosetuparrangement{3}{2}{6}{4}{2}% X,Y,Total,hcutmarks,vcutmarks
- \pusharrangedpageMFOLDERTWELVE\poparrangedpagesAB\relax}
-
-\def\pusharrangedpageMFOLDERTWELVE#1% Willi's approach
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}020\arrangedpageA % 1 rot,hskip,vskip
- \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2
- \or \handlearrangedpageXandY{#1}001\arrangedpageB % 3
- \or \handlearrangedpageXandY{#1}010\arrangedpageB % 4
- \or \handlearrangedpageXandY{#1}011\arrangedpageB % 5
- \or \handlearrangedpageXandY{#1}020\arrangedpageB % 6
- \or \handlearrangedpageXandY{#1}021\arrangedpageB % 7
- \or \handlearrangedpageXandY{#1}000\arrangedpageA % 8
- \or \handlearrangedpageXandY{#1}001\arrangedpageA % 9
- \or \handlearrangedpageXandY{#1}010\arrangedpageA % 10
- \or \handlearrangedpageXandY{#1}011\arrangedpageA % 11
- \or \handlearrangedpageXandY{#1}021\arrangedpageA % 12
- \poparrangedpages
- \fi}
-
-%D FLYER folded as double window with 4 pages per side.
-%D Coding: [DOUBLEWINDOW]
-
-\installpagearrangement DOUBLEWINDOW
- {\dosetuparrangement{4}{1}{4}{5}{2}% X,Y,Total,hcutmarks,vcutmarks
- \pusharrangedpageDOUBLEWINDOWEIGHT\poparrangedpagesAB\relax}
-
-\def\pusharrangedpageDOUBLEWINDOWEIGHT#1% Willi's approach
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}020\arrangedpageA % 1 rot,hskip,vskip
- \or \handlearrangedpageXandY{#1}030\arrangedpageA % 2
- \or \handlearrangedpageXandY{#1}000\arrangedpageB % 3
- \or \handlearrangedpageXandY{#1}010\arrangedpageB % 4
- \or \handlearrangedpageXandY{#1}020\arrangedpageB % 5
- \or \handlearrangedpageXandY{#1}030\arrangedpageB % 6
- \or \handlearrangedpageXandY{#1}000\arrangedpageA % 7
- \or \handlearrangedpageXandY{#1}010\arrangedpageA % 8
- \poparrangedpages
- \fi}
-
-%D Imposition as requested by Jan Pohanka 26-08-2010, 4 pages, two verso, two recto,
-%D uneven pages upright and down, even pages top and rotated 180.
-%D Implementation with 2 pages for conference-name-display
-%D Coding: [1*2-Conference]
-
-\installpagearrangement 1*2-Conference
- {\dosetuparrangement{1}{2}{4}{3}{2}% X,Y,Total,hcutmarks,vcutmarks
- \pusharrangedpageCONFERENCE2\poparrangedpagesAB\relax}
-
-\def\pusharrangedpageCONFERENCE2#1%
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}001\arrangedpageA % 1 rot,hskip,vskip
- \or \handlearrangedpageXandY{#1}100\arrangedpageA % 2
- \poparrangedpages
- \fi}
-
-%D Implementation with 4 pages for conference-name-display
-%D Coding: [1*4-Conference]
-
-\installpagearrangement 1*4-Conference
- {\dosetuparrangement{1}{2}{4}{3}{2}% X,Y,Total,hcutmarks,vcutmarks
- \pusharrangedpageCONFERENCE4\poparrangedpagesAB\relax}
-
-\def\pusharrangedpageCONFERENCE4#1%
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}001\arrangedpageA % 1 rot,hskip,vskip
- \or \handlearrangedpageXandY{#1}100\arrangedpageA % 2
- \or \handlearrangedpageXandY{#1}011\arrangedpageB % 3
- \or \handlearrangedpageXandY{#1}110\arrangedpageB % 4
- \poparrangedpages
- \fi}
-
-% There should be arrangements for section made of heavy and thick paper. i.e. the heavier the paper
-% the fewer pages per section:
-% Section with 8 pages put on to sheets of paper. Each sheet carries recto 2 and verso 2 pages.
-% Coding: [2*2*2]
-
-\installpagearrangement 2*2*2
- {\dosetuparrangement{2}{1}{2}{3}{2}% X,Y,Total,hcutmarks,vcutmarks
- \pusharrangedpageEIGHTTWO\poparrangedpagesAtoD\relax}
-
-\def\pusharrangedpageEIGHTWO#1%
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}010\arrangedpageA % 1 rot,hskip,vskip
- \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2
- \or \handlearrangedpageXandY{#1}010\arrangedpageC % 3
- \or \handlearrangedpageXandY{#1}000\arrangedpageD % 4
- \or \handlearrangedpageXandY{#1}010\arrangedpageD % 5
- \or \handlearrangedpageXandY{#1}000\arrangedpageC % 6
- \or \handlearrangedpageXandY{#1}010\arrangedpageB % 7
- \or \handlearrangedpageXandY{#1}000\arrangedpageA % 8
- \poparrangedpages
- \fi}
-
-% Section with 12 pages, built from three sheets of paper.
-% Each sheet carries 2 pages recto and verso.
-% Coding: [2*2*3]
-
-\def\poparrangedpagesAtoF
- {\ifnum\arrangedpageN>\zerocount
- \paperwidth \arrangedpageX\paperwidth
- \paperheight\arrangedpageY\paperheight
- \outputarrangedbox\arrangedpageA
- \outputarrangedbox\arrangedpageB
- \outputarrangedbox\arrangedpageC
- \outputarrangedbox\arrangedpageD
- \outputarrangedbox\arrangedpageE
- \outputarrangedbox\arrangedpageF
- \global\arrangedpageN\zerocount
- \fi}
-\installpagearrangement 2*2*3
- {\dosetuparrangement{2}{1}{2}{3}{2}% X,Y,Total,hcutmarks,vcutmarks
- \pusharrangedpageTWELVETWO\poparrangedpagesAtoD\relax}
-
-\def\pusharrangedpageTWELVETWO#1%
- {\doglobal\increment\arrangedpageN
- \reportarrangedpage\arrangedpageN
- \ifcase\arrangedpageN
- \or \handlearrangedpageXandY{#1}010\arrangedpageA % 1 rot,hskip,vskip
- \or \handlearrangedpageXandY{#1}000\arrangedpageB % 2
- \or \handlearrangedpageXandY{#1}010\arrangedpageC % 3
- \or \handlearrangedpageXandY{#1}000\arrangedpageD % 4
- \or \handlearrangedpageXandY{#1}010\arrangedpageE % 5
- \or \handlearrangedpageXandY{#1}000\arrangedpageF % 6
- \or \handlearrangedpageXandY{#1}010\arrangedpageF % 7
- \or \handlearrangedpageXandY{#1}000\arrangedpageE % 8
- \or \handlearrangedpageXandY{#1}010\arrangedpageD % 9
- \or \handlearrangedpageXandY{#1}000\arrangedpageC % 10
- \or \handlearrangedpageXandY{#1}010\arrangedpageB % 11
- \or \handlearrangedpageXandY{#1}000\arrangedpageA % 12
- \poparrangedpages
- \fi}
-
-% \definepageshift[test][horizontal][10pt,20pt,30pt,40pt,50pt]
-% \definepageshift[test][vertical] [10pt,20pt,30pt,40pt,50pt]
-%
-% \setuppageshift[test]
-% \setuppageshift[test][test]
-% \setuppageshift[test][none]
-% \setuppageshift[none][test]
-% \setuppageshift[paper][test][test] % arrange only
-% \setuppageshift[paper][test] % arrange only
-% \setuppageshift[print][test][test]
-%
-% \showframe \dorecurse{100}{\input tufte \par}
-
-% #1=name #2=horizontal|vertical #3=shiftlist
-
-\def\definepageshift
- {\dotripleargument\dodefinepageshift}
-
-\def\dodefinepageshift[#1][#2][#3]%
- {\setvalue{\??pt#2:#1}{#3}}
-
-\letempty \hpageshifts \newcounter\nofhpageshifts
-\letempty \vpageshifts \newcounter\nofvpageshifts
-
-% \let\shiftprintpagebox\gobbleoneargument
-% \let\shiftpaperpagebox\gobbleoneargument
-
-\def\dogetpageshift#1#2#3% #1=\dimenx #2=\xpageshifts #3=\nofxpageshifts
- {\ifx#2\empty
- #1\zeropoint
- \else
- \doglobal\increment#3%
- \getfromcommacommand[#2][#3]%
- \ifx\commalistelement\empty
- \globallet#3\!!plusone
- \getfromcommacommand[#2][#3]%
- \fi
- \ifx\commalistelement\empty
- #1\zeropoint
- \else
- #1=\commalistelement
- \donetrue
- \fi
- \fi}
-
-\def\shiftpagebox#1%
- {\donefalse
- \dogetpageshift{\dimen0}\hpageshifts\nofhpageshifts
- \dogetpageshift{\dimen2}\vpageshifts\nofvpageshifts
- \ifdone % see also layout offsets, maybe \movebox
- \edef\next{\wd#1\the\wd#1\ht#1\the\ht#1\dp#1\the\dp#1}%
- \setbox#1\vbox % \forgetall already done
- {\offinterlineskip\vskip\dimen2\hskip\dimen0\box#1}%
- \next
- \fi}
-
-\def\setuppageshift
- {\dotripleempty\dosetuppageshift}
-
-\def\dosetuppageshift[#1][#2][#3]% page|paper horizontal vertical
- {\ifthirdargument % paper=arrange
- \let\hpageshifts\empty
- \let\vpageshifts\empty
- \let\shiftprintpagebox\gobbleoneargument
- \let\shiftpaperpagebox\gobbleoneargument
- \doifdefined{\??pt\v!horizontal:#2}
- {\edef\hpageshifts{\getvalue{\??pt\v!horizontal:#2}}}%
- \doifdefined{\??pt\v!vertical :#3}
- {\edef\vpageshifts{\getvalue{\??pt\v!vertical :#3}}}%
- \doif{#1}\v!page{\let\shiftprintpagebox\shiftpagebox}%
- \doif{#1}\v!paper{\let\shiftpaperpagebox\shiftpagebox}%
- \else\ifsecondargument
- \doifinsetelse{#1}{\v!page,\v!paper}
- {\setuppageshift[#1][#2][#2]}
- {\setuppageshift[\v!page][#1][#2]}%
- \else\iffirstargument
- \setuppageshift[\v!page][#1][#1]%
- \fi\fi\fi}
-
-%D One can (mis)use this mechanism, in close cooperation
-%D with \PDFTEX\ to arrange pages of already produced files.
-%D
-%D \starttyping
-%D \insertpages[file.pdf][1,3][n=30,width=18cm]
-%D \stoptyping
-%D
-%D The pages are inserted in the text area, and even pages
-%D are repositioned according to the width. In this example
-%D empty pages are added after page 1 and 3.
-%D
-%D Selecting pages can be accomplished by:
-%D
-%D \starttyping
-%D \filterpages[file.pdf][1,3,5][n=30,width=18cm]
-%D \stoptyping
-%D
-%D One may pass \type {odd} or \type {even} instead of a
-%D comma separated list. A third alternative is:
-%D
-%D \starttyping
-%D \copypages[file.pdf][n=30,scale=950]
-%D \stoptyping
-%D
-%D This macros inserts the page, according to the settings
-%D provided.
-
-\def\insertpages
- {\dotripleempty\doinsertpages}
-
-\def\doinsertpages[#1][#2][#3]%
- {\doifassignmentelse{#2}
- {\dodoinsertpages[#1][][#2]}
- {\dodoinsertpages[#1][#2][#3]}}
-
-\def\dodoinsertpages[#1][#2][#3]%
- {\bgroup
- \dontcomplain
- \getfiguredimensions[#1]%
- \getparameters[\??ip][\c!n=\noffigurepages,\c!width=\!!zeropoint,#3]%
- \doifinset0{#2}{\null\page}%
- \dorecurse\@@ipn
- {\dofilterpage{#1}\recurselevel
- \doifinset\recurselevel{#2}{\null\page}}%
- \egroup}
-
-\def\filterpages
- {\dotripleempty\dofilterpages}
-
-\def\dofilterpages[#1][#2][#3]% % \noffigurepages not yet supported
- {\bgroup
- \dontcomplain
- \getfiguredimensions[#1]%
- \getparameters[\??ip][\c!n=\noffigurepages,\c!width=\!!zeropoint,#3]%
- \doifelse{#2}\v!even
- {\dorecurse\@@ipn
- {\ifodd\recurselevel\relax\else\dofilterpage{#1}\recurselevel\fi}}
- {\doifelse{#2}\v!odd
- {\dorecurse\@@ipn
- {\ifodd\recurselevel\relax\dofilterpage{#1}\recurselevel\fi}}
- {\def\dodocommand##1%
- {\ifnum##1>\@@ipn\else\dofilterpage{#1}{##1}\fi}%
- \def\docommand##1%
- {\dowithrange{##1}\dodocommand}%
- \processcommalist[#2]\docommand}}%
- \egroup}
-
-\def\dofilterpage#1#2%
- {\hbox to \textwidth
- {\ifdoublesided\ifdim\@@ipwidth>\zeropoint\relax\ifodd\realpageno\else
- \hfill
- \def\dowithfigure{\hskip-\@@ipwidth}%
- \fi\fi\fi
- \setbox0\hbox
- {\externalfigure[#1][\c!page=#2,\c!height=\textheight]}%
- \wd0\zeropoint
- \box0}
- \page}
-
-\def\copypages
- {\dodoubleempty\docopypages}
-
-\def\docopypages[#1][#2]%
- {\bgroup
- \getfiguredimensions[#1]%
- \getparameters[\??ip]
- [\c!n=\noffigurepages,
- \c!marking=\v!off,
- \c!scale=\!!thousand,
- \c!offset=\!!zeropoint,
- #2]%
- \dorecurse\@@ipn
- {\vbox to \textheight
- {\hsize\textwidth
- \scratchdimen\@@ipoffset
- \centeredbox
- {\doifelse\@@ipmarking\v!on\cuthbox\hbox
- {\ifdim\scratchdimen>\zeropoint\relax
- \advance\vsize -2\scratchdimen
- \advance\hsize -2\scratchdimen
- \externalfigure[#1][\c!page=\recurselevel,#2,\c!scale=,\c!factor=\v!max,\c!offset=\v!overlay]%
- \else
- \externalfigure[#1][\c!page=\recurselevel,#2,\c!offset=\v!overlay]%
- \fi}}}
- \page}
- \egroup}
-
-%D \macros
-%D {combinepages}
-%D
-%D Yet another way of postprocessing is handles by \type
-%D {\combinepages}. This macro builds a matrix of pages from a
-%D file, for example:
-%D
-%D \starttyping
-%D \setuppapersize
-%D [A4][A4] % or [A4,landscape][A4,landscape]
-%D
-%D \setuplayout
-%D [header=0pt,footer=1cm,
-%D backspace=1cm,topspace=1cm,
-%D width=middle,height=middle]
-%D
-%D \setupfootertexts
-%D [presentation---\currentdate\space---\space\pagenumber]
-%D
-%D \starttext
-%D \combinepages[slides][nx=2,ny=3,frame=on]
-%D \stoptext
-%D \stoptyping
-%D
-%D One can influence the way the pages are combined. (This
-%D will be explained some time.)
-
-\def\combinepages
- {\dodoubleempty\docombinepages}
-
-\def\docombinepages[#1][#2]% a=perpag b=free
- {\bgroup
- \dontcomplain
- \getfiguredimensions[#1]%
- \getparameters
- [\??ip]
- [\c!alternative=\v!a,
- \c!n=\noffigurepages,\c!nx=2,\c!ny=2,\c!start=1,\c!stop=\!!maxcard,
- \c!distance=\bodyfontsize,
- \c!bottom=\vfill,\c!top=\vss,
- \c!left=\hss,\c!right=\hss,
- \c!before=\page,\c!after=\page,\c!inbetween=\blank,
- \c!frame=,\c!background=,\c!backgroundcolor=,
- #2]%
- \def\@@ipname{#1}%
- \@@ipbefore
- \executeifdefined{\strippedcsname\docombinepages\@@ipalternative}\docombinepagesb
- \@@ipafter
- \egroup}
-
-\def\docombinepagesa
- {\globallet\combinedpagescounter\@@ipstart
- \doloop
- {\vbox to \textheight
- {\hsize\textwidth % ? ?
- \scratchdimen\@@ipdistance
- \!!widtha \dimexpr(\hsize-\@@ipnx\scratchdimen+\scratchdimen)/\@@ipnx\relax
- \!!heighta\dimexpr(\vsize-\@@ipny\scratchdimen+\scratchdimen)/\@@ipny\relax
- \dorecurse\@@ipny
- {\hbox to \hsize
- {\dorecurse\@@ipnx
- {\vbox to \!!heighta
- {\hsize\!!widtha
- \vsize\!!heighta
- \@@iptop
- \hbox to \hsize
- {\@@ipleft
- \ifnum\combinedpagescounter>\@@ipstop\relax
- \globallet\@@ipn\!!zerocount
- \else\ifnum\combinedpagescounter>\@@ipn \else
- \externalfigure[\@@ipname]
- [\c!object=\v!no,
- \c!page=\combinedpagescounter,
- \c!factor=\v!max,
- \c!background=\@@ipbackground,
- \c!backgroundcolor=\@@ipbackgroundcolor,
- \c!frame=\@@ipframe]%
- \fi\fi
- \@@ipright}
- \@@ipbottom}%
- \doglobal\increment\combinedpagescounter
- \hfil}%
- \hfilneg}
- \vfil}%
- \vfilneg}%
- \page
- \ifnum\combinedpagescounter>\@@ipn \exitloop\fi}}
-
-\def\docombinepagesc
- {\globallet\combinedpagescounter\@@ipstart
- \doloop
- {\vbox to \textheight
- {\hsize\textwidth % ? ?
- \scratchdimen\@@ipdistance
- \!!widtha \dimexpr(\hsize-\@@ipnx\scratchdimen+\scratchdimen)/\@@ipnx\relax
- \!!heighta\dimexpr(\vsize-\@@ipny\scratchdimen+\scratchdimen)/\@@ipny\relax
- \hbox to \hsize
- {\dorecurse\@@ipnx
- {\@@ipleft
- \vbox to \textheight
- {\hsize\!!widtha
- {\dorecurse\@@ipny
- {\@@iptop
- \hbox to \hsize
- {\vbox to \!!heighta
- {\hsize\!!widtha
- \vsize\!!heighta
- \ifnum\combinedpagescounter>\@@ipstop\relax
- \globallet\@@ipn\!!zerocount
- \else\ifnum\combinedpagescounter>\@@ipn \else
- \externalfigure[\@@ipname]
- [\c!object=\v!no,
- \c!page=\combinedpagescounter,
- \c!factor=\v!max,
- \c!background=\@@ipbackground,
- \c!backgroundcolor=\@@ipbackgroundcolor,
- \c!frame=\@@ipframe]%
- \fi\fi}}
- \doglobal\increment\combinedpagescounter
- \@@ipbottom}%
- \vfil}%
- \vfilneg}
- \hfil}%
- \hfilneg}}
- \page
- \ifnum\combinedpagescounter>\@@ipn \exitloop\fi}}
-
-\let\docombinepageshorizontal\docombinepagesa
-\let\docombinepagesvertical \docombinepagesc
-
-\def\docombinepagesb
- {\globallet\combinedpagescounter\@@ipstart
- \doloop
- {\startbaselinecorrection
- \scratchdimen\@@ipdistance
- \!!widtha\dimexpr(\hsize-\@@ipnx\scratchdimen+\scratchdimen)/\@@ipnx\relax
- \hbox to \hsize
- {\dorecurse\@@ipnx
- {\doglobal\increment\combinedpagescounter
- \ifnum\combinedpagescounter>\@@ipn \else
- \expanded{\externalfigure[\@@ipname]
- [\c!page=\combinedpagescounter,
- \c!width=\the\!!widtha,% todo \freezedimenmacro
- \c!background=\@@ipbackground,
- \c!backgroundcolor=\@@ipbackgroundcolor,
- \c!frame=\@@ipframe]}%
- \hfill
- \fi}\hfillneg}%
- \stopbaselinecorrection
- \ifnum\combinedpagescounter<\@@ipn\relax
- \@@ipinbetween
- \else
- \exitloop
- \fi}}
-
-%D \macros
-%D {setuppagecomment,startpagecomment}
-%D
-%D This command is not yet documented. Usage:
-%D
-%D \starttyping
-%D \setuppagecomment[state=start,location=right]
-%D
-%D \startpagecomment
-%D \input knuth
-%D \stoppagecomment
-%D \stoptyping
-
-\def\setuppagecomment
- {\dosingleempty\dosetuppagecomment}
-
-\def\dosetuppagecomment[#1]%
- {\getparameters[\??pc][#1]%
- \doifelse\@@pcstate\v!start
- {\doifinsetelse\@@pclocation{\v!bottom,\v!top}
- {\setuppapersize[\c!left=\hskip\@@pcoffset]%
- \edef\@@pcpaperheight{\the\dimexpr\paperheight+\@@pcoffset+\@@pcoffset+\@@pcdistance+\@@pcheight\relax}%
- \edef\@@pcpaperwidth {\the\dimexpr\paperwidth+\@@pcoffset+\@@pcoffset\relax}%
- \defineoverlay[\v!pagecomment][\placepagecommentTB]}
- {\setuppapersize[\c!top=\vskip\@@pcoffset]%
- \edef\@@pcpaperheight{\the\dimexpr\paperheight+\@@pcoffset+\@@pcoffset\relax}%
- \edef\@@pcpaperwidth {\the\dimexpr\paperwidth+\@@pcoffset+\@@pcoffset+\@@pcdistance+\@@pcwidth\relax}%
- \defineoverlay[\v!pagecomment][\placepagecommentLR]}%
- \processaction
- [\@@pclocation]
- [ \v!bottom=>{\setuppapersize[\c!bottom =\vss,\c!top =\vskip\@@pcoffset]},
- \v!top=>{\setuppapersize[\c!top =\vss,\c!bottom =\vskip\@@pcoffset]},
- \v!left=>{\setuppapersize[\c!left =\hss,\c!right=\hskip\@@pcoffset]},
- \v!right=>{\setuppapersize[\c!right=\hss,\c!left =\hskip\@@pcoffset]}]%
- \definepapersize
- [\v!pagecomment]
- [\c!height=\@@pcpaperheight,
- \c!width=\@@pcpaperwidth]%
- \let\@@pcprintpapersize\printpapersize
- \setuppapersize[\papersize][\v!pagecomment]%
- \setupbackgrounds[\v!paper][\c!background=\v!pagecomment]}
- {\doif\@@pcstate\v!stop % else initialization invokes backgrounds
- {% this should be tested first
- % \expanded{\setuppapersize[\papersize][\@@pcprintpapersize]}%
- \setupbackgrounds[\v!paper][\c!background=]}}}
-
-\def\@@pcprintpapersize{\printpapersize}
-
-\def\placepagecommentTB
- {\vbox to \printpaperheight
- {\forgetall
- \hsize\printpaperwidth
- \vskip\@@pcoffset
- \doifelse\@@pclocation\v!bottom{\vskip\dimexpr\paperheight+\@@pcdistance\relax}\vss
- \hskip\@@pcoffset
- \vbox to \@@pcheight
- {\forgetall
- \hsize\paperwidth
- \ifpagecomment
- \getbuffer[\v!pagecomment]%
- \global\pagecommentfalse
- \fi}%
- \hfill
- \doifelse\@@pclocation\v!bottom\vss{\vskip\dimexpr\paperheight+\@@pcdistance\relax}%
- \vskip\@@pcoffset}}
-
-\def\placepagecommentLR
- {\hbox to \printpaperwidth
- {\hskip\@@pcoffset
- \doifelse\@@pclocation\v!right{\hskip\paperwidth\hskip\@@pcdistance}\hss
- \vbox to \printpaperheight
- {\forgetall
- \vskip\@@pcoffset
- \hsize\@@pcwidth
- \ifpagecomment
- \getbuffer[\v!pagecomment]%
- \global\pagecommentfalse
- \fi
- \vss}%
- \doifelse\@@pclocation\v!right\hss{\hskip\paperwidth\hskip\@@pcdistance}%
- \hskip\@@pcoffset}}
-
-\newif\ifpagecomment
-
-\setvalue{\e!start\v!pagecomment}%
- {\global\pagecommenttrue
- \dostartbuffer[\v!pagecomment][\e!start\v!pagecomment][\e!stop\v!pagecomment]}
-
-\setuppagecomment
- [\c!state=, % \v!stop would invoke background calculation
- \c!location=\v!bottom,
- \c!offset=.5cm,
- \c!distance=.5cm,
- \c!height=5cm,
- \c!width=10cm]
-
-% This macro cuts a page into n parts that can be pasted
-% together.
-
-\def\slicepages
- {\dotripleempty\doslicepages}
-
-\def\doslicepages[#1][#2][#3]%
- {\ifthirdargument
- \dodoslicepages[#1][#2][#3]%
- \else
- \dodoslicepages[#1][#2][#2]%
- \fi}
-
-\newcounter\slicedpagenumber
-
-\def\dodoslicepages[#1][#2][#3]%
- {\bgroup
- \dontcomplain
- \globallet\slicedpagenumber\!!zerocount
- \getfiguredimensions[#1]
- \getparameters
- [\??ip]
- [\c!n=1,
- \c!offset=\!!zeropoint,
- \c!hoffset=\!!zeropoint,\c!voffset=\!!zeropoint,
- \c!width=\figurewidth,\c!height=\figureheight,#2]
- \ifnum\@@ipn>\zerocount
- \definepapersize
- [\s!dummy][\c!height=\@@ipheight,\c!width=\@@ipwidth]
- \setuppapersize
- [\s!dummy][\s!dummy]
- \setuplayout
- [\c!backspace=\!!zeropoint,\c!topspace=\!!zeropoint,
- \c!height=\v!middle,\c!width=\v!middle,
- \c!textdistance=\!!zeropoint,
- \c!header=\!!zeropoint,\c!footer=\!!zeropoint]
- \fi
- \dorecurse\noffigurepages
- {\global\let\slicedpagenumber\recurselevel
- \ifnum\@@ipn>\plusone
- \dorecurse\@@ipn
- {\let\xslice\recurselevel
- \dorecurse\@@ipn
- {\let\yslice\recurselevel
- \clip
- [\c!nx=\@@ipn,\c!ny=\@@ipn,\c!x=\xslice,\c!y=\yslice]
- {\scale
- [\c!scale=\@@ipn000]
- {\externalfigure[#1][\c!page=\slicedpagenumber]}}
- \page}}
- \else
- \ifodd\slicedpagenumber\relax
- \getparameters[\??ip][#2]
- \else
- \getparameters[\??ip][#3]
- \fi
- \hskip\@@ipoffset
- \clip
- [\c!hoffset=\@@iphoffset,\c!voffset=\@@ipvoffset,
- \c!height=\@@ipheight,\c!width=\@@ipwidth]
- {\externalfigure[#1][\c!page=\slicedpagenumber]}
- \page
- \fi}
- \egroup}
-
-% \starttext \slicepages[slice1.pdf][n=3] \stoptext
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/page-ini.mkii
deleted file mode 100644
index bc4aab60f89..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-ini.mkii
+++ /dev/null
@@ -1,1558 +0,0 @@
- %D \module
-%D [ file=page-ini,
-%D version=2000.10.20,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Initializations,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / Initializations}
-
-% still a dutch/english mess
-
-%D This class of modules implements the output routines and
-%D floating body support. Although the modules are relatively
-%D new, the code herein is rather old. This reordering was
-%D needed when column sets were implemented and sharing code
-%D started to make sense.
-
-%D The history shows from the code, since both column
-%D mechanism use a different way of looping over columns.
-
-\unprotect
-
-\def\m!otr{otr}
-
-\chardef\normalpagebox=255
-
-\newbox\pagebox
-
-\ifx\recalculatelayout\undefined
-
- \let \recalculatelayout \relax
-
-\fi
-
-\ifx\recalculatelogos\undefined
-
- \let \recalculatelogos \relax
- \let \addlogobackground \gobbleoneargument % <box>
-
-\fi
-
-\ifx\recalculatebackgrounds\undefined
-
- \let \recalculatebackgrounds \relax
- \let \addmainbackground \gobbleoneargument % <box>
- \let \addtextbackground \gobbleoneargument % <box>
- \let \addpagebackground \gobbleoneargument % <box>
- \let \addprintbackground \gobbleoneargument % <box>
- \let \addstatusinfo \gobbleoneargument % <box>
-
-\fi
-
-\ifx\realpageno\undefined
-
- \countdef\realpageno = 0 \realpageno = 1
- \countdef\userpageno = 1 \userpageno = 1
- \countdef\subpageno = 2 \subpageno = 0 % !!
- \countdef\arrangeno = 3 \arrangeno = 0 % !!
-
- \let\pageno\userpageno
-
-\fi
-
-\ifx\realfolio\undefined
-
- \def\realfolio{\the\realpageno}
-
-\fi
-
-\newcount\nofshipouts
-
-\appendtoks
- \global\advance\nofshipouts\plusone
-\to \everyaftershipout
-
-% principle:
-%
-% multiple otr's
-%
-% (1) single column, simple routine (old one)
-% (2) multi column, collect and split routine (old one)
-% (3) multi column, page by page (new one, needed for taco)
-% (4) single column, spread handling (for fun)
-% (5) multi column, page by page, spread handling (as challenge)
-%
-% common components
-%
-% (1) float placement
-% (2) float flushing
-% (3) page body building
-% (4) ...
-%
-% ort
-%
-% + balancing
-% - mixed / one / multi / balancetofit
-% + backgrounds
-% + pre / post
-% + distances / heights
-% + ragged / baseline / normal
-% - pos sync
-% - last page
-%
-% - itemize / subtexts -> old mechanism
-%
-% floats
-%
-% - top / bottom / side / page / column / spead
-% - flush / packed flush / current page / next page / area
-%
-% footnotes
-%
-% + carry over pre column / local to column
-% + last column / pre last column / each column
-% - multiple classes
-% - area / page / end
-%
-% areas
-%
-% - top / bottom / mid in spread
-%
-% IMPORTANT
-%
-% switchtobodyfont in between ivm top
-
-% floats:
-%
-% tricky in balancing mode, a la huidige multi columns
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-% messages moved
-
-\ifx\dosetuplayout\undefined % overloaded in page-lay !
-
- \def\setuplayout{\dodoubleempty\getparameters[\??ly]}
-
-\fi
-
-\ifx\mkprocesscolumncontents\undefined\let\mkprocesscolumncontents\gobbleoneargument\fi
-\ifx\mkprocesspagecontents \undefined\let\mkprocesspagecontents \gobbleoneargument\fi
-\ifx\mkprocessboxcontents \undefined\let\mkprocessboxcontents \gobbleoneargument\fi
-
-\def\normalejectpenalty{-\plustenthousand } \let\ejectpenalty\normalejectpenalty
-\def\normalsuperpenalty{-\plustwentythousand} \let\superpenalty\normalsuperpenalty
-
-%D In case we're not running \ETEX, we need to bypass a
-%D couple of primitives.
-
-% ONE = single column
-% MUL = multi column
-% SET = columns sets
-
-\def\@@OTR{OTR}
-
-\let\OTRdefault\empty
-
-\def\OTRcommand#1%
- {\csname\@@OTR
- \ifcsname\@@OTR\OTRidentifier\strippedcsname#1\endcsname
- \OTRidentifier
- \else\ifcsname\@@OTR\OTRdefault\strippedcsname#1\endcsname % fallback
- \OTRdefault
- \fi\fi
- \strippedcsname#1\endcsname}
-
-% obsolete
-
-\def\installotr#1% andere naam, beter \connectotr of zo
- {\def\OTRidentifier{#1}}
-
-\def\activateotr#1#2%
- {\def\OTRidentifier{#1}%
- \def\OTRdefault {#2}}
-
-%D The initialization of the \type {\hsize} and \type {\vsize}
-%D depends on the OTR used.
-
-\def\setvsize {\OTRcommand\setvsize}
-\def\sethsize {\OTRcommand\sethsize}
-\def\finalsidefloatoutput {\OTRcommand\finalsidefloatoutput}
-\def\dopagecontents {\OTRcommand\dopagecontents}
-
-\def\dosettopinserts {\OTRcommand\dosettopinserts}
-\def\dosetbotinserts {\OTRcommand\dosetbotinserts}
-\def\dotopinsertions {\OTRcommand\dotopinsertions}
-\def\dobotinsertions {\OTRcommand\dobotinsertions}
-\def\dosetbothinserts {\OTRcommand\dosetbothinserts}
-
-\def\doflushfloats {\OTRcommand\doflushfloats}
-\def\flushfloatbox {\OTRcommand\flushfloatbox}
-\def\docheckiffloatfits {\OTRcommand\docheckiffloatfits}
-
-\def\someherefloat {\OTRcommand\someherefloat}
-\def\somefixdfloat {\OTRcommand\somefixdfloat}
-\def\somepagefloat {\OTRcommand\somepagefloat}
-\def\sometopsfloat {\OTRcommand\sometopsfloat}
-\def\somebotsfloat {\OTRcommand\somebotsfloat}
-\def\somesidefloat {\OTRcommand\somesidefloat}
-
-\def\flushsavedfloats {\OTRcommand\flushsavedfloats}
-
-\def\synchronizehsize {\OTRcommand\synchronizehsize}
-
-\def\gotonextpage {\OTRcommand\gotonextpage }
-\def\gotonextpageX{\OTRcommand\gotonextpageX} % will become obsolete
-
-% beter een \installotr#1 met #1 = macro en auto test
-
-\newif \iftraceotr
-\newif \ifinotr
-\newtoks \mainoutput
-\newcount\otrlevel
-
-% When issuing two \par\penalty-\plustenthousand's, only the first
-% triggers the otr; obscure feature or optimization?
-
-\def\outputcounter{-100010} % -10010
-
-\def\doinvokeoutput
- {\iftraceotr
- \expandafter\dodotracedoutput
- \else
- \expandafter\dodoinvokeoutput
- \fi}
-
-\def\outputmessage#1#2#3%
- {\iftraceotr\writestatus\m!otr{#1 #2 \number#3}\fi}
-
-\def\dodoinvokeoutput#1%
- {\outputmessage+{special}{#1}%
- \bgroup\par\penalty#1\relax\egroup
- \outputmessage-{special}{#1}}
-
-\def\dodotracedoutput#1%
- {\outputmessage+{traced}{#1/\the\outputpenalty}%
- \writestatus\m!otr{c:\number\mofcolumns,v:\the\vsize,g:\the\pagegoal,t:\the\pagetotal}%
- \dodoinvokeoutput{#1}%
- \writestatus\m!otr{c:\number\mofcolumns,v:\the\vsize,g:\the\pagegoal,t:\the\pagetotal}%
- \outputmessage-{traced}{#1/\the\outputpenalty}}
-
-\def\installoutput#1#2% \invoke \action
- {\decrement\outputcounter
- \edef#1{\noexpand\doinvokeoutput{\outputcounter}}%
- \setvalue{\@@OTR\outputcounter}{#2}}
-
-\def\invokeoutputroutine
- {\outputmessage+{trying}\outputpenalty
- \executeifdefined{\@@OTR\the\outputpenalty}\dodonormaloutput
- \outputmessage-{trying}\outputpenalty}
-
-\def\dodonormaloutput
- {\outputmessage+{normal}\outputpenalty
- \the\OTRcommand\output
- \outputmessage-{normal}\outputpenalty}
-
-\mainoutput{\invokeoutputroutine} \output{\inotrtrue\the\mainoutput}
-
-%D Some hooks:
-
-\output{\inotrtrue\the\everybeforeoutput\the\mainoutput\the\everyafteroutput}
-
-\ifx\pagediscards\undefined \let\pagediscards\relax \fi
-
-\installoutput\synchronizeoutput % maybe add pagediscards
- {\ifvoid\normalpagebox\else
- \unvbox\normalpagebox
- \pagediscards % maybe not needed ?
- \fi}
-
-\installoutput\discardpage
- {\setbox\scratchbox\box\normalpagebox}
-
-%D In order to force consistent use of variables, we
-%D predefine a lot of them here.
-
-%D The next two registers can be used to store pre column
-%D material as well as footnotes or so.
-
-\newbox\precolumnbox \newdimen\precolumnboxheight
-\newbox\postcolumnbox \newdimen\postcolumnboxheight
-
-%D We reserve a counter for the number of columns as well as
-%D the current column. Both are not to be changed by users!
-
-\newcount\nofcolumns \nofcolumns = 1
-\newcount\mofcolumns \mofcolumns = 1
-
-\chardef\maxnofcolumns = 50
-\chardef\allocatednofcolumns = 0
-
-%D The next dimensions reports the final column height
-
-\newdimen\finalcolumnheights
-\newcount\finalcolumnlines
-
-%D During initialization the temporary boxes are allocated.
-%D This enables us to use as much columns as we want, without
-%D exhausting the pool of boxes too fast. We could have packed
-%D them in one box, but we've got enough boxes.
-%D
-%D Two sets of boxes are declared, the txtboxes are used for
-%D the text, the topboxes are for moved column floats.
-
-\def\@col@{@col@}
-
-\def\initializecolumns#1%
- {\ifnum#1>\maxnofcolumns
- \showmessage\m!columns1\maxnofcolumns
- \nofcolumns\maxnofcolumns
- \else
- \nofcolumns#1\relax
- \fi
- \ifnum\nofcolumns>\allocatednofcolumns
- \dorecurse\nofcolumns
- {\ifnum\recurselevel>\allocatednofcolumns\relax
- % \newbox\next \letgvalue{\@col@-\recurselevel-t}=\next
- \@EA\newbox\csname\@col@-\recurselevel-t\endcsname % text
- \@EA\newbox\csname\@col@-\recurselevel-f\endcsname % foot
- \@EA\newbox\csname\@col@-\recurselevel-h\endcsname % top insert
- \@EA\newbox\csname\@col@-\recurselevel-l\endcsname % top insert
- \fi}%
- \global\chardef\allocatednofcolumns=\nofcolumns
- \fi}
-
-\def\firstcolumnbox {\columntextbox\plusone}
-\def\currentcolumnbox {\columntextbox\mofcolumns}
-\def\lastcolumnbox {\columntextbox\nofcolumns}
-
-\def\firsttopcolumnbox {\columntopbox \plusone}
-\def\currenttopcolumnbox{\columntopbox \mofcolumns}
-\def\lasttopcolumnbox {\columntopbox \nofcolumns}
-
-\def\columntextbox#1{\csname\@col@-\number#1-t\endcsname}
-\def\columnfootbox#1{\csname\@col@-\number#1-f\endcsname}
-\def\columntopbox #1{\csname\@col@-\number#1-h\endcsname}
-\def\columnbotbox #1{\csname\@col@-\number#1-l\endcsname}
-
-\def\columnsettextbox{\global\setbox\columntextbox}
-\def\columnsetfootbox{\global\setbox\columnfootbox}
-\def\columnsettopbox {\global\setbox\columntopbox}
-\def\columnsetbotbox {\global\setbox\columnbotbox}
-
-\def\columngettextbox{\copy\columntextbox}
-\def\columngetfootbox{\copy\columnfootbox}
-\def\columngettopbox {\copy\columntopbox}
-\def\columngetbotbox {\copy\columnbotbox}
-
-\def\columnerasetextboxes{\dorecurse\allocatednofcolumns{\columnsettextbox\recurselevel\emptybox}}
-\def\columnerasefootboxes{\dorecurse\allocatednofcolumns{\columnsetfootbox\recurselevel\emptybox}}
-\def\columnerasetopboxes {\dorecurse\allocatednofcolumns{\columnsettopbox \recurselevel\emptybox}}
-\def\columnerasebotboxes {\dorecurse\allocatednofcolumns{\columnsetbotbox \recurselevel\emptybox}}
-
-%D Without going in details we present two macro's which handle
-%D the columns. The action which is transfered by the the first
-%D and only parameter can do something with \type
-%D {\currentcolumnbox}. In case of the mid columns, \type
-%D {\firstcolumnbox} and \type {\lastcolumnbox} are handled
-%D outside these macro's.
-
-\def\dohandlecolumn#1%
- {\mofcolumns\recurselevel
- \let\currentcolumn\recurselevel
- #1\relax}
-
-\def\dohandleallcolumns#1%
- {\dorecurse\nofcolumns{\dohandlecolumn{#1}}}
-
-\def\dohandlerevcolumns#1%
- {\dostepwiserecurse\nofcolumns\plusone\minusone{\dohandlecolumn{#1}}}
-
-\def\dohandlemidcolumns#1%
- {\dohandleallcolumns
- {\ifnum\recurselevel>\plusone
- \ifnum\recurselevel<\nofcolumns
- \dohandlecolumn{#1}%
- \fi
- \fi}}
-
-%D This register can be used as a temporary storage for page
-%D content.
-
-\newbox\restofpage
-
-%D Features.
-
-\newif\ifintermediatefootnotes
-\newif\ifcarryoverfootnotes %\carryoverfootnotestrue
-\newif\iflastcolumnfootnotes %\lastcolumnfootnotestrue
-\newif\ifbalancecolumns %\balancecolumnstrue
-\newif\ifbalancetoheight %\balancetoheighttrue
-\newif\ifforcecolumngrid \forcecolumngridtrue
-\newif\ifstretchcolumns \stretchcolumnsfalse
-\newif\ifinheritcolumns \inheritcolumnsfalse
-\newif\ifheightencolumns \heightencolumnsfalse
-
-\newif\ifbalancingcolumns
-\newif\ifcollectingcontent
-\newif\ifcolumnoverflow
-\newif\iffinalflushingfloats
-\newif\ifpackflushedfloats \packflushedfloatstrue % for the moment
-
-\newdimen\intercolumnwidth
-\newdimen\localcolumnwidth
-\newdimen\savedpagetotal
-
-\chardef\columndirection=0 % 0:lr 1:rl
-
-\def\minbalancetoplines {1}
-\def\minfreecolumnlines {2}
-
-\newif\ifrecentercolumnbox \recentercolumnboxtrue
-\newif\ifrerecentercolumnbox \rerecentercolumnboxtrue
-\newif\ifpackcolumnfloats \packcolumnfloatstrue
-
-\newbox\collectedpagefloats
-\newbox\collectedleftpagefloats
-\newbox\collectedrightpagefloats
-
-%D The \type {\ifdim} test is needed, because otherwise the
-%D last line of a text end up on top of the baseline instead of
-%D on the baseline, as is the case with preceding pages.
-%D Also, a \type {\vfil} better than a \type {\vfill}.
-
-% to be replaced by \page[now] \page[final] / merged
-
-% \def\eject {\par\penalty-\plustenthousand } % == {\par\break} % plain
-% \def\supereject {\par\penalty-\plustwentythousand} % also plain
-
-\def\eject {\par\ifvmode\penalty\ejectpenalty\fi\resetpagebreak} % == {\par\break} % plain
-\def\supereject {\par\ifvmode\penalty\superpenalty\fi\resetpagebreak} % also plain
-
-\def\doejectpage {\par\ifvmode\ifdim\pagetotal>\pagegoal\else\normalvfil\fi\fi} % pg set to \textheight
-\def\ejectpage {\doejectpage\eject}
-\def\superejectpage{\doejectpage\supereject}
-
-\ifx\bye\undefined \def\bye{\par\vfill\supereject\end} \fi % plain tex command
-
-% floats
-%
-% \def\ejectinsert
-% {\flushnotes
-% \bgroup
-% \noftopfloats\plusthousand
-% \nofbotfloats\zerocount
-% \doflushfloats
-% \egroup}
-
-\def\ejectinsert
- {\flushnotes
- \bgroup
- \noftopfloats\plusthousand
- \nofbotfloats\zerocount
- % this is needed in case a float that has been stored
- % ends up at the current page; this border case occurs when
- % the calculated room is 'eps' smaller that the room available
- % when just flushing; so now we have (maybe optional):
- \pagebaselinecorrection
- % alas, this is tricky but needed (first surfaced in prikkels)
- \doflushfloats
- \egroup}
-
-\def\ejectdummypage
- {\endgraf \ifvmode
- \ejectinsert
- \hardespatie % will be different
- \vfill
- \gotonextpage
- \fi}
-
-\def\beforefinaloutput
- {}
-
-\def\afterfinaloutput
- {\forgetall
- \vskip\zeropoint\relax
- \ifvoid\normalpagebox \else
- \unvbox\normalpagebox
- \penalty\outputpenalty
- \fi
- % not really needed, replaced by \flushsavedfloats
- \ifnum\outputpenalty>\superpenalty \else % better use a proper otr signal
- \dosupereject
- \fi
- % but does not hurt either (we're still in the otr!)
- \inpagebodytrue % needed for enabling \blank !
- \flushsavedfloats % was \dosetbothinserts; only otr one !
- \setvsize % this is needed for interacting components, like floats and multicolumns
- \adaptfuzzypagegoal} % watch this hack!
-
-\def\dofinaloutput#1#2% \vbox: prevents spurious spaces in every..pagebody
- {\beforefinaloutput
- \the\everybeforeshipout % brrr not in shipout
- \ifspecialbasedsettings
- \myshipout{\hbox{\hbox to \zeropoint{\the\pageboundsettings}%
- \hbox{\vbox{\dopagebody#1#2\setpagecounters}}}}%
- \else
- \the\pageboundsettings
- \myshipout{\hbox{\vbox{\dopagebody#1#2\setpagecounters}}}%
- \fi
- \the\everyaftershipout
- \afterfinaloutput
- \popproperties} % ... and here ...
-
-\def\donofinaloutput#1#2%
- {\beforefinaloutput
- \the\everybeforeshipout
- \setpagecounters
- \message{[-\the\realpageno]}%
- \setbox\scratchbox\hbox
- {%\the\everyshipout % still needed here ?
- \dopagebody#1#2}%
- \deadcycles\zerocount
- \gotonextrealpage
- \the\everyaftershipout
- \afterfinaloutput
- \popproperties} % ... and here
-
-% beware: \ifprocessingpages is in use
-
-\ifx\checkpageversion\undefined \let\checkpageversion\relax \fi % todo: hook into \everybeforeshipout
-\ifx\doflushspread \undefined \let\doflushspread \relax \fi % todo
-
-\def\finaloutput#1#2%
- {\checkpageversion
- \ifprocessingpages
- \ifpageselected
- \@EAEAEA\dofinaloutput
- \else
- \@EAEAEA\donofinaloutput
- \fi
- \else
- \ifpageselected
- \@EAEAEA\donofinaloutput
- \else
- \@EAEAEA\dofinaloutput
- \fi
- \fi#1#2%
- \resetselectiepagina
- \incrementpagenumber
- \checkpagedimensions
- \ifnum\outputpenalty>\superpenalty \else
- \dosupereject
- \fi
- \doflushspread
- \dopostponeblock}
-
-\def\dooutput
- {\finaloutput\unvbox\normalpagebox}
-
-\maxdeadcycles=1000
-
-% will be installable tracer; better use chardef
-
-% this needs a real cleanup
-
-\def\doplaceversiontext#1#2%
- {\doifsomething{#2}
- {\defconvertedcommand\ascii{#2}%
- \space#1:\space\ascii\space
- \!!doneatrue}}
-
-\def\placeversioninfo % nog engels maken
- {\ifcase\conceptmode
- % 0 : nothing
- \or
- % 1 : simple
- \vskip\!!sixpoint
- \hbox to \makeupwidth
- {\infofont
- \v!concept:\space\currentdate
- \hss\reportpagedimensions}%
- \else
- % 2/3 : extensive
- \vskip\!!sixpoint
- \hbox to \makeupwidth
- {\infofont
- \getmessage\m!systems{27}:\space\currentdate\space
- \doplaceversiontext\v!project \currentproject
- \doplaceversiontext\v!product \currentproduct
- \doplaceversiontext\v!component\currentcomponent
- \if!!donea\else\space\v!file:\space\jobname\fi
- \hss\reportpagedimensions}%
- \fi}
-
-% tot hier
-
-\def\doversion[#1]%
- {\chardef\conceptmode\zerocount
- \overfullrule\zeropoint
- \processaction % \v!final=>
- [#1]
- [ \v!concept=>\chardef\conceptmode\plusone, % simple banner
- \v!file=>\chardef\conceptmode\plustwo, % full banner
- \v!temporary=>\chardef\conceptmode\plusthree % full banner plus
- \overfullrule5\points]} % info in the margin
-
-\def\version
- {\dosingleargument\doversion}
-
-\def\addstatusinfo
- {\ifcase\conceptmode
- \@EA\gobbleoneargument
- \else
- \@EA\doaddstatusinfo
- \fi}
-
-\def\doaddstatusinfo#1%
- {\setbox#1\vbox to \paperheight
- {\vsmashbox#1\box#1%
- \offinterlineskip
- \vskip\topspace
- \hsize\paperwidth
- \hfill\hbox{\placetestinfo\hskip.5cm}\vss
- \settexthoffset\hskip\texthoffset % brrrr
- %\tlap{\placeversioninfo}\vskip.5cm
- \vbox to 1cm{\vss\placeversioninfo\vss}}}
-
-\def\dotestinfo#1#2#3%
- {\ifinpagebody\else\ifnum\conceptmode=\plusthree
- \begingroup
- \defconvertedcommand\ascii{#3}%
- \xdef\extratestinfo
- {#2\space\ascii}%
- \gdef\totaltestinfo
- {\global\setbox#1\vbox
- {\unvbox#1\relax
- \infofont \setupinterlinespace
- \hbox
- {\strut
- \expanded{\doboundtext{\extratestinfo}{12em}{..}}%
- \quad}}}%
- \endgroup
- \ifinner
- \aftergroup\totaltestinfo
- \else
- \totaltestinfo
- \fi
- \fi\fi}
-
-% this will be inserts some day
-
-% \installinsertion\referenceinfobox
-% \installinsertion\registerinfobox
-% \installinsertion\floatinfobox
-
-\newbox\referenceinfobox
-\newbox\registerinfobox
-\newbox\floatinfobox
-
-\def\referenceinfo{\dotestinfo\referenceinfobox}
-\def\registerinfo {\dotestinfo\registerinfobox}
-\def\floatinfo {\dotestinfo\floatinfobox}
-
-\def\placetestinfo
- {\vbox to \makeupheight
- {\forgetall
- \infofont
- \hsize10em
- \ifvoid\floatinfobox\else
- \strut \getmessage\m!systems{24}%
- \vskip\!!sixpoint
- \unvbox\floatinfobox
- \vskip\!!twelvepoint
- \fi
- \ifvoid\referenceinfobox\else
- \strut \getmessage\m!systems{25}%
- \vskip\!!sixpoint
- \unvbox\referenceinfobox
- \vskip\!!twelvepoint
- \fi
- \ifvoid\registerinfobox\else
- \strut \getmessage\m!systems{26}%
- \vskip\!!sixpoint
- \unvbox\registerinfobox
- \fi
- \vss}}
-
-\version[\v!final]
-
-% bewaren tvb documentatie
-%
-% \hbox to \hsize
-% {\en
-% \switchnaarkorps[5pt]%
-% \emergencystretch2em
-% \dimen0=\baselineskip
-% \baselineskip=\dimen0 plus 1pt
-% \hsize=.2\hsize
-% \vsize=2\hsize
-% \ruledvbox to \vsize{\input tufte \par}\hss
-% \ruledvbox to \vsize{\input tufte \par\kern-\prevdepth}\hss
-% \ruledvbox to \vsize{\input tufte \par\kern0pt}\hss
-% \ruledvbox to \vsize{\input tufte \par\vfill}\hss
-% \ruledvbox to \vsize{\input tufte \par\kern-\prevdepth\vfill}}
-%
-% \hbox to \hsize
-% {\en
-% \switchnaarkorps[5pt]%
-% \emergencystretch2em
-% \dimen0=\baselineskip
-% \baselineskip=\dimen0 plus 1pt
-% \hsize=.18\hsize
-% \vsize=2.5\hsize
-% \setbox0=\vbox{\input tufte\relax}%
-% \ruledvbox to \vsize{\unvcopy0}\hss
-% \ruledvbox to \vsize{\unvcopy0\kern-\dp0}\hss
-% \ruledvbox to \vsize{\unvcopy0\kern0pt}\hss
-% \ruledvbox to \vsize{\unvcopy0\vfill}\hss
-% \ruledvbox to \vsize{\unvcopy0\kern-\dp0\vfill}}
-
-\newtoks\afterpage \newtoks\aftereverypage
-\newtoks\beforepage \newtoks\beforeeverypage
-
-\chardef\showgridstate=0
-
-\def\showgrid
- {\dosingleempty\doshowgrid}
-
-\def\doshowgrid[#1]%
- {\chardef\showgridstate \plusone % downward compatible default
- \chardef\gridboxlinemode \plusone
- \chardef\gridboxlinenomode\plusone
- \processallactionsinset
- [#1]%
- [ \v!reset=>\chardef\showgridstate \zerocount,
- \v!bottom=>\chardef\showgridstate \plusone,
- \v!top=>\chardef\showgridstate \plustwo,
- \v!none=>\chardef\gridboxlinemode \zerocount,
- \v!all=>\chardef\gridboxlinemode \plusone,
- \v!lines=>\chardef\gridboxlinemode \plustwo,
- \v!frame=>\chardef\gridboxlinemode \plusthree,
- \v!nonumber=>\chardef\gridboxlinenomode\zerocount,
- \v!right=>\chardef\gridboxlinenomode\plusone,
- \v!left=>\chardef\gridboxlinenomode\plustwo]}
-
-\def\buildpagebox#1%
- {\setbox#1\vbox to \paperheight
- {\hsize\paperwidth
- \vskip\topspace
- \doifbothsides
- {\hskip\backspace}
- {\hskip\backspace}
- {\hskip\paperwidth \hskip-\backspace \hskip-\makeupwidth}%
- \box#1}%
- \dp#1\zeropoint}
-
-% \newif\ifpagebodyornaments \pagebodyornamentstrue
-%
-% \appendtoks
-% \global\pagebodyornamentstrue
-% \to \everyaftershipout
-
-\newif\ifarrangingpages \arrangingpagesfalse
-
-\chardef\pageornamentstate\zerocount % 0=on 1=one-off 2=always-off
-
-\def\pagebodyornamentstrue {\chardef\pageornamentstate\zerocount} % for a while
-\def\pagebodyornamentsfalse{\chardef\pageornamentstate\plusone} % for a while
-
-\appendtoks
- \ifcase\pageornamentstate\or
- \chardef\pageornamentstate\zerocount
- \fi
-\to \everyaftershipout
-
-\let\poparrangedpages\relax
-\let\pusharrangedpage\relax
-
-\ifx\shiftprintpagebox\undefined
- \let\shiftprintpagebox\gobbleoneargument
- \let\shiftpaperpagebox\gobbleoneargument
-\fi
-
-\ifx\registerpageposition\undefined
- \let\registerpageposition\gobbleoneargument
-\fi
-
-\def\reportarrangedpage#1%
- {\showmessage\m!systems
- {23}{\the\realpageno.\the\pageno\ifnum\subpageno>0 .\the\subpageno\fi,#1}}
-
-\newif\ifsavepagebody \newbox\savedpagebody
-
-% beware, \??ly is used before defined, i.e. bad module design
-
-\setuplayout[\c!method=\v!normal]
-
-\def\buildpagebody#1#2%
- {\ifsavepagebody\global\setbox\savedpagebody\fi
- \vbox
- {\beginrestorecatcodes
- \forgetall % igv problemen, check: \boxmaxdepth\maxdimen
- \boxmaxdepth\maxdimen % new
- \dontcomplain
- % the following plugin uses and sets pagebox; beware: this
- % will change and is for my (hh) personal experiments
- \executeifdefined{\??ly\c!method\@@lymethod}%
- {\getvalue{\??ly\c!method\v!normal}}#1#2%
- % the finishing touch
- \ifcase\pageornamentstate
- \addpagebackground \pagebox
- \fi
- \registerpageposition\pagebox
- \ifarrangingpages
- \shiftpaperpagebox \pagebox % \v!paper
- \else
- \clippagebox \pagebox
- \doifelse\@@lymarking\v!page
- {\replicatepagebox \pagebox
- \addpagecutmarks \pagebox}
- {\addpagecutmarks \pagebox
- \replicatepagebox \pagebox}%
- \scalepagebox \pagebox
- \mirrorpaperbox \pagebox
- \orientpaperbox \pagebox
- \addpagecolormarks \pagebox
- \centerpagebox \pagebox
- \addprintbackground\pagebox
- \mirrorprintbox \pagebox
- \orientprintbox \pagebox
- \shiftprintpagebox \pagebox % \v!page
- \offsetprintbox \pagebox
- \negateprintbox \pagebox
- \fi
- \box\pagebox
- \endrestorecatcodes}%
- \ifsavepagebody\copy\savedpagebody\fi}
-
-\setvalue{\??ly\c!method\v!normal}#1#2%
- {\setbox\pagebox\vbox
- {\offinterlineskip
- \ifcase\pageornamentstate
- \bgroup % else footnotes get inconsistent font/baseline
- \dostartattributes\??ly\c!style\c!color\empty
- \offinterlineskip
- \gettextboxes
- \dostopattributes
- \egroup
- \fi
- \getmainbox#1#2}% including footnotes
- \ifcase\pageornamentstate
- \addmainbackground \pagebox
- \addlogobackground \pagebox
- \fi
- \buildpagebox \pagebox
- \addstatusinfo \pagebox}
-
-\def\finishpagebox#1%
- {\ifarrangingpages
- \addpagecutmarks #1%
- \addpagecolormarks#1%
- \centerpagebox #1%
- \mirrorprintbox #1%
- \orientprintbox #1%
- \offsetprintbox #1%
- \negateprintbox #1%
- \fi}
-
-\appendtoks \restoreglobalbodyfont \to \everybeforepagebody
-\appendtoks \restorecolumnsettings \to \everybeforepagebody
-
-\ifx\nestednewbox\undefined \newbox\nestednextbox \fi
-
-\prependtoks \let\nextbox\nestednextbox \to \everybeforepagebody
-
-\def\dopagebody#1#2%
- {%\getallmarks % now in following token register
- \the\everybeforepagebody
- \starttextproperties
- \gotonextsubpage % nog eens: als in pagina (tbv standaard opmaak)
- \dontshowboxes % dan hier blokkeren en verderop resetten
-% \shipoutfacingpage
- \checkreferences
- \checkmargeblokken
- \the\beforeeverypage
- \flushtoks\beforepage
- \inpagebodytrue\buildpagebody#1#2%
- \flushtoks\afterpage
- \the\aftereverypage
- \resetpagebreak
- %updatelistreferences % now in aftereverypage
- \resetlayouttextlines % will go to \aftereverypage
- \stoptextproperties
- \the\everyafterpagebody}
-
-\newtoks\pageboundsettings
-
-\prependtoks \initializepaper \to \pageboundsettings
-
-% not here
-
-\newif\ifpagebreakdisabled \pagebreakdisabledfalse
-
-% \chardef\testpagemethod=0 % todo: \testnewpage[method=,lines=,voffset=]
-%
-% \def\testpage {\dotripleempty\dotestpage[\plusone]}
-% \def\testpageonly{\dotripleempty\dotestpage[\plustwo]}
-%
-% \def\dotestpage[#1][#2][#3]%
-% {%\relax % needed before \if
-% \endgraf
-% \ifpagebreakdisabled
-% % do nothing
-% \else
-% %ifnum#1=\plusone\synchronizeoutput\fi
-% \ifdim\pagegoal<\maxdimen \relax
-% \ifdim\pagetotal<\pagegoal \relax
-% \scratchdimen\lineheight
-% \multiply\scratchdimen#2\relax
-% \advance\scratchdimen \pagetotal
-% \ifdim\lastskip<\parskip
-% \advance\scratchdimen \parskip
-% \fi
-% \ifthirdargument
-% \advance\scratchdimen#3\relax
-% \fi
-% \ifcase\testpagemethod
-% \ifdim\scratchdimen>.99\pagegoal
-% \vfill\eject % \penalty-\!!tenthousand\relax
-% \fi
-% \or
-% \advance\scratchdimen-\pagegoal
-% \ifdim\scratchdimen>-\lineheight
-% \vfill\eject % \penalty-\!!tenthousand\relax
-% \fi
-% \or
-% \getnoflines\pagegoal
-% \advance\scratchdimen-\noflines\lineheight \relax
-% \ifdim\scratchdimen>-\lineheight
-% \vfill\eject % \penalty-\!!tenthousand\relax
-% \fi
-% \or % same as 0 but more accurate
-% \advance\scratchdimen-10\s!sp\relax
-% \ifdim\scratchdimen>\pagegoal
-% \vfill\eject % \penalty-\!!tenthousand\relax
-% \fi
-% \fi
-% \else
-% % force page break / new
-% % \vfill\eject % \penalty-\!!tenthousand\relax
-% \fi
-% \else
-% \ifnum#1=\plusone\goodbreak\fi
-% \fi
-% \fi}
-
-\chardef\testpagemethod \zerocount % todo: \testnewpage[method=,lines=,voffset=]
-\chardef\testpagetrigger\zerocount
-
-\def\testpage {\dotripleempty\dotestpage[\plusone ]} %
-\def\testpageonly{\dotripleempty\dotestpage[\plustwo ]} % no penalties added to the mvl
-\def\testpagesync{\dotripleempty\dotestpage[\plusthree]} % force sync
-
-\def\dotestpage[#1][#2][#3]% don't change, only add more methods
- {\relax % needed before \if
- \ifpagebreakdisabled
- \endgraf
- \else
- % new from here
- \ifcase\testpagetrigger
- \endgraf
- \or
- \ifvmode
- \dosomebreak\allowbreak
- \else % indeed?
- \vadjust{\allowbreak}%
- \endgraf
- \fi
- \fi
- % till here
- \ifdim\pagegoal<\maxdimen \relax
- \ifdim\pagetotal<\pagegoal \relax
- \scratchdimen\lineheight
- \multiply\scratchdimen#2\relax
- \advance\scratchdimen \pagetotal
- \ifdim\lastskip<\parskip
- \advance\scratchdimen \parskip
- \fi
- \ifthirdargument
- \advance\scratchdimen#3\relax
- \fi
- \ifcase\testpagemethod
- \ifdim\scratchdimen>.99\pagegoal
- \penalty-\!!tenthousand\relax
- \fi
- \or
- \advance\scratchdimen-\pagegoal
- \ifdim\scratchdimen>-\lineheight
- \penalty-\!!tenthousand\relax
- \fi
- \or
- \getnoflines\pagegoal
- \advance\scratchdimen-\noflines\lineheight \relax
- \ifdim\scratchdimen>-\lineheight
- \penalty-\!!tenthousand\relax
- \fi
- \or % same as 0 but more accurate
- \advance\scratchdimen-10\s!sp\relax
- \ifdim\scratchdimen>\pagegoal
- \penalty-\!!tenthousand\relax
- \fi
- \fi
- \else
- \ifnum#1=\plusthree
- \flushpagesofar
- \fi
- \fi
- \else
- \ifnum#1=\plusone\goodbreak\fi
- \fi
- \fi}
-
-\def\flushpagesofar
- {\endgraf
- \ifdim\pagetotal>\pagegoal
- \ifdim\dimexpr\pagetotal-\pageshrink\relax>\pagegoal
- \goodbreak % \penalty0
- \else
- \page
- \fi
- \else
- \fi}
-
-\def\testcolumn
- {\dodoubleempty\dotestcolumn}
-
-\def\dotestcolumn[#1][#2]%
- {%\relax % needed before \if !
- \endgraf
- \ifdim\pagegoal<\maxdimen \ifdim\pagetotal<\pagegoal % \relax
- \scratchdimen\pagegoal
- \advance\scratchdimen-\pagetotal
- \ifdim\lastskip<\parskip
- \advance\scratchdimen \parskip
- \fi
- \ifsecondargument
- \advance\scratchdimen#2%
- \fi
- \getrawnoflines\scratchdimen % raw !
- % \message{[\number#1>\number\noflines ?}\wait
- \ifnum#1>\noflines
- \column
- \fi
- \else
- \penalty-\!!tenthousand % untested ! ! \column
- \fi \fi}
-
-\let\resetcurrentsectionmarks\relax
-
-% was: \resetsectionmarks\firstsection, zie \handlepagebreak
-
-\def\page{\pagebreak} % the short form of \pagebreak (mult-com one)
-
-\def\resetpagebreak
- {\global\pagebreakdisabledfalse}
-
-\def\simplifypagebreak
- {\def\dopagebreak[##1]{\goodbreak}}
-
-\def\disablepagebreaks
- {\def\dopagebreak[##1]{}}
-
-\def\executepagebreakhandler#1%
- {\edef\@@pagespecification{#1}%
- \doifdefinedelse{\??pe:\@@pagespecification}
- {\getvalue{\??pe:\@@pagespecification}}
- {\doifdefinedelse{\??pe::\@@pagespecification}
- {\executepagebreakhandlers{\getvalue{\??pe::\@@pagespecification}}}
- {\getvalue{\??pe:\s!unknown}}}}
-
-\long\def\installpagebreakhandler#1#2%
- {\long\setvalue{\??pe:#1}{#2}}
-
-% \definecomplexorsimple\pagebreak
-
-% \def\simplepagebreak
-% {\executepagebreakhandler\v!ja}
-
-% \def\complexpagebreak[#1]% if empty, do nothing and avoid processing,
-% {\flushnotes % see head's; watch how we group
-% \doifsomething{#1}{\bgroup\executepagebreakhandlers{#1}\egroup}}
-
-\unexpanded\def\pagebreak
- {\dosingleempty\dopagebreak}
-
-\def\dopagebreak[#1]% so, page ornaments are reset after a pagebreak command, unless set
- {\bgroup
- \edef\prevrealpageno{\the\realpageno}%
- \ifcase\pageornamentstate \or
- % disable reset after shipout
- \global\chardef\pageornamentstate\plustwo
- \fi
- \iffirstargument % or if empty i.e. []
- \flushnotes\executepagebreakhandlers{#1}%
- \else % so, no pagebreak when \pagebreak[] ! ! !
- \flushnotes\executepagebreakhandler\v!yes
- \fi
- \ifnum\prevrealpageno<\realpageno
- \global\chardef\pageornamentstate\zerocount
- \fi
- \egroup}
-
-\def\executepagebreakhandlers#1%
- {\processcommacommand[#1]\executepagebreakhandler}
-
-\installpagebreakhandler \s!dummy
- {\ejectinsert
- \gotonextpage
- \ejectdummypage}
-
-\installpagebreakhandler \v!frame
- {\page\bgroup\showframe\page[\v!empty]\egroup}
-
-\installpagebreakhandler \s!unknown
- {\doifinstringelse{+}\@@pagespecification
- {\ejectinsert
- \gotonextpage
- \dorecurse\@@pagespecification\ejectdummypage}
- {\doifnumberelse\@@pagespecification
- {\ejectinsert
- \gotonextpage
- \doloop
- {\ifnum\userpageno<\@@pagespecification\relax
- \ejectdummypage
- \else
- \exitloop
- \fi}}
- {}}}
-
-\installpagebreakhandler \s!default
- {} % do nothing if empty
-
-\installpagebreakhandler \v!reset
- {% better not: \global\chardef\pageornamentstate\zerocount
- \resetpagebreak}
-
-\installpagebreakhandler \v!disable
- {\global\pagebreakdisabledtrue}
-
-\installpagebreakhandler \v!yes
- {\ifpagebreakdisabled\else
- \ejectinsert
- \gotonextpage
- \ifinsidecolumns % this will move to MUL
- \ejectpage % anders soms geen overgang
- \fi
- \fi}
-
-\installpagebreakhandler \v!makeup % ??
- {\ifpagebreakdisabled\else
- \eject
- \fi}
-
-\installpagebreakhandler \v!blank
- {\ifcase\pageornamentstate
- \global\chardef\pageornamentstate\plusone
- \fi}
-
-\installpagebreakhandler \v!no
- {\ifpagebreakdisabled\else
- \dosomebreak\nobreak
- \fi}
-
-\installpagebreakhandler \v!preference
- {\ifpagebreakdisabled\else
- \ifinsidecolumns % this will move to MUL
- \dosomebreak\goodbreak
- \else
- \testpage[3][\zeropoint]%
- \fi
- \fi}
-
-\installpagebreakhandler \v!bigpreference
- {\ifpagebreakdisabled\else
- \ifinsidecolumns % this will move to MUL
- \dosomebreak\goodbreak
- \else
- \testpage[5][\zeropoint]%
- \fi
- \fi}
-
-\installpagebreakhandler \v!empty
- {\ejectinsert
- \gotonextpage
- \doifnotvalue{\??tk\v!header\c!state}\v!stop{\setupheader[\c!state=\v!empty]}%
- \doifnotvalue{\??tk\v!footer\c!state}\v!stop{\setupfooter[\c!state=\v!empty]}%
- \ejectdummypage}
-
-\installpagebreakhandler \v!left
- {\ejectinsert
- \gotonextpageX % will become \gotonextpage
- \doifbothsidesoverruled{}{\resetcurrentsectionmarks\ejectdummypage}{}}
-
-\installpagebreakhandler \v!right
- {\ejectinsert
- \gotonextpageX % will become \gotonextpage
- \doifbothsidesoverruled{}{}{\resetcurrentsectionmarks\ejectdummypage}}
-
-\installpagebreakhandler \v!even
- {\page
- \doifoddpageelse{\resetcurrentsectionmarks\ejectdummypage}\donothing}
-
-\installpagebreakhandler \v!odd
- {\page
- \doifoddpageelse\donothing{\resetcurrentsectionmarks\ejectdummypage}}
-
-\installpagebreakhandler \v!quadruple % not yet ok inside columnsets
- {\ifdoublesided
- \!!counta\realpageno
- \!!countb\realpageno
- \divide\!!counta 4
- \divide\!!countb 2
- \ifnum\!!counta=\!!countb
- \else
- \executepagebreakhandler\v!yes
- \executepagebreakhandler\v!empty
- \executepagebreakhandler\v!empty
- \fi
- \fi}
-
-\installpagebreakhandler \v!last
- {\ejectinsert
- \gotonextpageX % will become \gotonextpage
- \relax
- \doifbothsidesoverruled
- {\shipoutfacingpage}
- {}
- {\noheaderandfooterlines \ejectdummypage}%
- \filluparrangedpages}
-
-\installpagebreakhandler \v!lastpage % handy for backpage preceded by empty pages
- {\executepagebreakhandler\v!yes
- \ifdoublesided
- \executepagebreakhandler\v!left
- \executepagebreakhandler\v!empty
- \executepagebreakhandler\v!empty
- \fi}
-
-\installpagebreakhandler \v!start
- {\globallet\shipout\normalshipout}
-
-\installpagebreakhandler \v!stop
- {\globallet\shipout\noshipout}
-
-% nb: \executepagebreakhandler\v!hoofd in other ones
-
-\installpagebreakhandler \v!header
- {\doifnotvalue{\??tk\v!header\c!state}\v!stop{\setupheader[\c!state=\v!empty]}}
-
-\installpagebreakhandler \v!footer
- {\doifnotvalue{\??tk\v!footer\c!state}\v!stop{\setupfooter[\c!state=\v!empty]}}
-
-% \definepagebreak
-% [chapter]
-% [yes,header,right]
-%
-% \setuphead
-% [chapter]
-% [page=chapter,
-% header=empty,
-% footer=chapter]
-%
-% \definepagebreak % untested
-% [lastpage]
-% [left,{empty,right},{empty,left}]
-
-% public page handler, beware: definepage already in use (core-ref)
-%
-% \definepagebreak[instance][forsure]
-% \definepagebreak[forsure][yes,+4]
-
-\def\definepagebreak
- {\dodoubleargument\dodefinepagebreak}
-
-\def\dodefinepagebreak[#1][#2]% non recursive, meant for simple mappings
- {\setvalue{\??pe::#1}{#2}}
-
-% hier nog uti blokkeren
-
-% don't change this / test case:
-%
-% \setupbackgrounds[state=repeat]
-% \setupbackgrounds[text][text][background=whatever]
-% \couplepage[chapter][before={\defineoverlay[whatever][ON]}]
-% \setuphead[chapter][before={\pagetype[chapter]}]
-% \chapter{First} \page test \chapter{second} \page test
-
-\long\def\installcolumnbreakhandler#1#2#3% #1=otr-id #2=tag
- {\long\setvalue{\??cn:#1:#2}{#3}}
-
-\def\definecolumnbreak
- {\dodoubleargument\dodefinecolumnbreak}
-
-\def\dodefinecolumnbreak[#1][#2]% non recursive, meant for simple mappings
- {\setvalue{\??cn::#1}{#2}}
-
-%\def\columnbreak
-% {\dosingleempty\docolumnbreak}
-%
-%\def\docolumnbreak[#1]%
-% {\expanded{\nextcolumn[\executeifdefined{\??cn::#1}{#1}]}}
-
-\definecomplexorsimple\columnbreak
-
-\def\simplecolumnbreak
- {\executecolumnbreakhandler\v!yes}
-
-\def\complexcolumnbreak[#1]% if empty, do nothing and avoid processing
- {\doifsomething{#1}{\executecolumnbreakhandlers{#1}}}
-
-\def\executecolumnbreakhandlers#1%
- {\processcommacommand[#1]\executecolumnbreakhandler}
-
-\def\executecolumnbreakhandler#1% here no commalist
- {\edef\@@columnspecification{#1}%
- \doifdefinedelse{\??cn:\OTRidentifier:\@@columnspecification}
- {\getvalue{\??cn:\OTRidentifier:\@@columnspecification}}
- {\doifdefinedelse{\??cn::\@@columnspecification}
- {\executecolumnbreakhandlers{\getvalue{\??cn::\@@columnspecification}}}
- {\getvalue{\??cn:\OTRidentifier:\s!unknown}}}}
-
-%let\nextcolumn\columnbreak
-\let\column \columnbreak
-
-% We don't want spurious last pages (due to left over marks):
-
-\def\noshipout
- {\writestatus\m!systems{ignoring further shipouts}%
- \global\advance\realpageno\minusone % else no flush of resources
- \dowithnextbox{\deadcycles\zerocount}}
-
-% \def\doignorerestoftext
-% {\ifarrangingpages \else \ifnum\textlevel>\zerocount \else
-% \globallet\shipout\noshipout
-% \fi \fi}
-%
-% better:
-
-\def\doignorerestoftext
- {\ifarrangingpages \else \ifnum\textlevel=\plusone
- \globallet\shipout\noshipout
- \fi \fi}
-
-\let\ignorerestoftext\donothing
-
-\prependtoks % only ignore in a symmetrical doc
- \globallet\ignorerestoftext\doignorerestoftext
-\to \everystarttext
-
-% \appendtoks
-% \ignorerestoftext
-% \to \everylastshipout
-
-\newif\ifpageselected \pageselectedtrue
-\newif\ifselectingpages \selectingpagesfalse
-\newif\ifprocessingpages\processingpagestrue
-
-\let\pageselection \empty
-\let\currentpageselection\empty
-\let\aftershipout \relax
-\let\beforeshipout \relax
-
-\def\dodobeforeshipout#1%
- {\global\let\beforeshipout\relax
- \getvalue{\??pg#1\c!before}}
-
-\def\dobeforeshipout
- {\doifsomething\currentpageselection
- {\processcommacommand[\currentpageselection]\dodobeforeshipout}}
-
-\def\dododoaftershipout#1%
- {\global\let\aftershipout\relax
- \global\let\currentpageselection\empty
- \getvalue{\??pg#1\c!after}}
-
-\def\dodoaftershipout#1%
- {\doifelsevalue{\??pg#1\c!option}\v!doublesided
- {\doifbothsidesoverruled
- {\dododoaftershipout{#1}}
- {\dododoaftershipout{#1}}
- {}}
- {\dododoaftershipout{#1}}}
-
-\def\doaftershipout
- {\doifsomething\currentpageselection
- {\processcommacommand[\currentpageselection]\dodoaftershipout}}
-
-% Dit wordt eigenlijk nooit en moet worden vervangen door
-% het meer algemene mechanisme.
-
-\def\dopagetype[#1]%
- {\edef\desoortpagina{#1}%
- \ifx\desoortpagina\empty \else
- \@EA\doglobal\@EA\addtocommalist\@EA{\desoortpagina}\currentpageselection
- \ifselectingpages
- \fullexpandtwoargsafter\doifcommon\desoortpagina\pageselection
- {\global\pageselectedtrue}%
- \fi
- \gdef\beforeshipout{\dobeforeshipout}%
- \gdef\aftershipout {\doaftershipout}%
- \fi}
-
-\def\pagetype
- {\dosingleargument\dopagetype}
-
-\def\docouplepage[#1][#2]%
- {\getparameters
- [\??pg]
- [\c!before=,
- \c!after=,
- \c!option=,
- #2]%
- \def\docommand##1%
- {\getparameters
- [\??pg##1]
- [\c!before=\@@pgbefore,
- \c!after=\@@pgafter,
- \c!option=\@@pgoption]}%
- \processcommalist[#1]\docommand}%
-
-\def\couplepage
- {\dodoubleargument\docouplepage}
-
-\def\doprocesspage[#1][#2]%
- {\processaction
- [#2]
- [\v!yes=>\global\processingpagestrue,
- \v!no=>\global\processingpagesfalse]%
- \gdef\pageselection{#1}%
- \global\selectingpagestrue
- \global\pageselectedfalse}
-
-\def\processpage
- {\dodoubleargument\doprocesspage}
-
-\def\resetselectiepagina
- {\ifselectingpages
- \doifbothsidesoverruled{\global\pageselectedfalse}{}{\global\pageselectedfalse}%
- \fi}
-
-\newif\ifregistertextareas
-\newif\iftracetextareas
-
-\newbox\registertextbox
-
-% \def\registeredtextarea#1#2#3% #1=lower-dp #2=correct-ht #3=box
-% {\hbox{\box#3}}
-
-\def\enabletextarearegistration{\global\registertextareastrue}
-
-\def\registeredtextarea#1#2#3% #1=lower-dp #2=correct-ht #3=box
- {\hbox\bgroup
- \ifregistertextareas \ifx\registerMPtextarea\undefined \else
- \setbox\registertextbox\null
- \wd\registertextbox\wd#3%
- \ht\registertextbox\ht#3%
- \dp\registertextbox\dp#3%
- \ifcase#1\or % 1
- \setbox\registertextbox\hbox{\lower\strutdp\box\registertextbox}%
- \fi
- \ifcase#2\or % 1
- \setbox\registertextbox\hbox{\raise\topskip\hbox{\lower\strutht\box\registertextbox}}%
- \dp\registertextbox\strutdp
- \fi
- \dp\registertextbox\strutdp % needed
- %\setbox\registertextbox\hbox
- % {\iftracetextareas\gray\boxrulewidth2pt\ruledhbox\fi
- % {\registerMPtextarea{\box\registertextbox}}}%
- \setbox\registertextbox\hbox
- {\registerMPtextarea{\box\registertextbox}}%
- \smashbox\registertextbox
- \box\registertextbox
- \fi \fi
- \box#3%
- \egroup}
-
-%D \macros
-%D {setupoppositeplacing,startopposite}
-%D
-%D \starttyping
-%D \starttext
-%D test \startopposite \blackrule[width=3cm,height=4cm] \stopopposite test
-%D test \startopposite \blackrule[width=3cm,height=4cm] \stopopposite test
-%D \stoptext
-%D \stoptyping
-
-% Moved from page-mar.tex, made english, cleaned up, but still to be
-% redesigned
-
-\newbox\facingpage
-
-\def\setupoppositeplacing
- {\dodoubleargument\getparameters[\??np]}
-
-\def\startopposite
- {\dowithnextboxcontent
- {\hsize\makeupwidth}%
- {\global\setbox\facingpage\vbox
- {\ifvoid\facingpage
- \@@npbefore
- \else
- \@@npinbetween
- \unvbox\facingpage
- \fi
- \box\nextbox}}%
- \vbox\bgroup}
-
-\def\stopopposite
- {\egroup}
-
-\def\finishfacingpage
- {\ifvoid\facingpage\else
- \global\setbox\facingpage\vbox to \makeupheight
- {\unvbox\facingpage
- \@@npafter
- \vss}%
- \fi}
-
-\def\shipoutfacingpage
- {\doif\@@npstate\v!start
- {\ifvoid\facingpage\else
- \ifnum\realpageno>\plusone
- \bgroup
- \chardef\pageornamentstate\plusone
- \finishfacingpage
- \myshipout{\buildpagebody\box\facingpage}%
- \egroup
- \else
- \global\setbox\facingpage\emptybox
- \fi
- \fi}}
-
-\setupoppositeplacing
- [\c!state=\v!start,
- \c!before=,
- \c!inbetween=\blank,
- \c!after=]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-ins.mkii b/Master/texmf-dist/tex/context/base/mkii/page-ins.mkii
deleted file mode 100644
index ce0f51d7282..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-ins.mkii
+++ /dev/null
@@ -1,103 +0,0 @@
-%D \module
-%D [ file=core-ins,
-%D version=2002.04.16,
-%D title=\CONTEXT\ Insertion Macros,
-%D subtitle=Insertions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / Insertions}
-
-%D Insertions are special data collections that are associated
-%D to \TEX's internal page builder. When multiple footnote
-%D classes were introduced, I decided to isolate some of the
-%D functionality in a module.
-
-\unprotect
-
-\newtoks\@@insertionlist
-
-\def\processinsertions{\the\@@insertionlist}
-
-\let\doprocessinsert\gobbleoneargument
-
-%\def\installinsertion#1%
-% {\ifx#1\undefined
-% \newinsert#1%
-% \count#1\plusthousand
-% \skip #1\zeropoint
-% \dimen#1\maxdimen
-% \appendtoks\doprocessinsert#1\to\@@insertionlist
-% \fi}
-
-\def\installinsertion#1%
- {\ifx#1\undefined
- \let#1\relax
- \fi
- \ifx#1\relax % permits \csname...\endcsname
- \newinsert#1%
- \count#1\plusthousand
- \skip #1\zeropoint
- \dimen#1\maxdimen
- \appendtoks\doprocessinsert#1\to\@@insertionlist
- \fi}
-
-
-\def\synchronizeinsertions
- {\def\doprocessinsert##1{\ifvoid##1\else\insert##1{\unvbox##1}\fi}%
- \processinsertions}
-
-%D For instance, when we postpone footnotes, we need to save
-%D some data related to the inserts. The next methods are
-%D far from ideal, but better than nothing. We save and
-%D restore box content and associated data independently.
-%D The box content is only restores when non||void.
-
-\def\backupinsertion#1%
- {\csname\string#1\endcsname}
-
-\def\installbackupinsertion#1%
- {\expandafter\newinsert\csname\string#1\endcsname
- \count\backupinsertion#1\zerocount
- \skip \backupinsertion#1\zeropoint
- \dimen\backupinsertion#1\maxdimen}
-
-\def\saveinsertionbox#1%
- {\ifdim\ht#1>\zeropoint % hm, actually unknown
- \global\setbox\backupinsertion#1\box#1%
- \else
- \global\setbox\backupinsertion#1\emptybox
- \fi}
-
-\def\restoreinsertionbox#1%
- {\ifvoid\backupinsertion#1\else % if void, we keep the content
- \global\setbox#1\box\backupinsertion#1%
- \fi}
-
-\def\eraseinsertionbackup#1%
- {\global\setbox\backupinsertion#1\emptybox}
-
-\def\saveinsertiondata#1%
- {\global\skip \backupinsertion#1\skip #1%
- \global\count\backupinsertion#1\count#1%
- \global\dimen\backupinsertion#1\dimen#1}
-
-\def\restoreinsertiondata#1%
- {\global\skip #1\skip \backupinsertion#1%
- \global\count#1\count\backupinsertion#1%
- \global\dimen#1\dimen\backupinsertion#1}
-
-%D Auxiliary macros:
-
-\def\addinsertionheight#1\to#2%
- {\ifvoid#1\else
- \advance#2 1\skip#1\relax
- \advance#2 \ht #1\relax
- \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-lay.mkii b/Master/texmf-dist/tex/context/base/mkii/page-lay.mkii
deleted file mode 100644
index 61ff8764f38..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-lay.mkii
+++ /dev/null
@@ -1,1439 +0,0 @@
-%D \module
-%D [ file=page-lay,
-%D version=2000.10.20, % copied from main-001
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Layout Specification,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / Layout Specification}
-
-%D This module is now etex dependent.
-
-% to be translated into english
-
-% hoofdhoogte wordt bij status=hoog niet aangepast op outer
-% level, wel binnen bepaalde berekeningen
-
-%D Before you start wondering why some of the page related
-%D modules skip upward or left in order to place elements, you
-%D must realize that the reference point is the top left
-%D corner of the main typesetting area. One reason for this
-%D choice is that it suited some viewers that displayed page
-%D areas. Another reason is that margins, edges and top and
-%D bottom areas are kind of virtual, while the header, text
-%D and footer areas normally determine the text flow.
-
-\unprotect
-
-%D First we get rid of the funny \TEX\ offset defaults of one
-%D inch by setting them to zero.
-
-\voffset = 0pt % setting this to -1in let's go metapost crazy
-\hoffset = 0pt % setting this to -1in let's go metapost crazy
-
-%D The dimensions related to layout areas are represented by
-%D real dimensions.
-
-\newdimen\paperheight \paperheight = 297mm
-\newdimen\paperwidth \paperwidth = 210mm
-
-\newdimen\printpaperheight \printpaperheight = \paperheight
-\newdimen\printpaperwidth \printpaperwidth = \paperwidth
-
-\newdimen\makeupheight % calculated
-\newdimen\makeupwidth % calculated
-
-\newdimen\textheight % calculated
-\newdimen\textwidth % calculated
-
-\newdimen\topspace \topspace = 2cm
-\newdimen\backspace \backspace = \topspace
-\newdimen\cutspace \cutspace = 0pt
-\newdimen\bottomspace \bottomspace = 0pt
-
-\newdimen\headerheight \headerheight = 2cm
-\newdimen\footerheight \footerheight = \headerheight
-
-\newdimen\topoffset \topoffset = 0pt
-\newdimen\backoffset \backoffset = \topoffset
-
-\newdimen\leftmarginwidth \leftmarginwidth = 3cm
-\newdimen\rightmarginwidth \rightmarginwidth = \leftmarginwidth
-
-\newdimen\leftedgewidth \leftedgewidth = 3cm
-\newdimen\rightedgewidth \rightedgewidth = \leftedgewidth
-
-\newdimen\topheight \topheight = 0cm
-\newdimen\bottomheight \bottomheight = \topheight
-
-\newcount\layoutlines \layoutlines = 0
-\newcount\layoutcolumns \layoutcolumns = 0
-\newdimen\layoutcolumndistance \layoutcolumndistance = 0pt
-\newdimen\layoutcolumnwidth \layoutcolumnwidth = 0pt
-
-%D We can save some tokens and fuzzy parameters by using a
-%D symbolic name for the current set of layout parameters.
-
-\let\currentlayout\empty
-
-\def\layoutparameter#1%
- {\csname\??ly\ifcsname
- \??ly\currentlayout#1\endcsname\currentlayout
- \fi#1\endcsname}
-
-\def\namedlayoutparameter#1#2%
- {\csname\??ly\ifcsname\??ly #1#2\endcsname#1\else
- \ifcsname\??ly\currentlayout#2\endcsname\currentlayout
- \fi\fi#2\endcsname}
-
-%D Beause normal \TEX\ has at most 256 dimensions (of which a
-%D substantial part is already in use), we provide a way to
-%D generate a format with macro based alternatives. For a long
-%D time, this used to be the default case. Beware: only fixed
-%D dimensions can be used in calculations! By the way, the
-%D gain in speed can hardly be called impressive and is roughly
-%D 1 second on a 35 second run of 850 empty pages with a
-%D couple of backgrounds only (which is far less than one
-%D percent on a normal document).
-
-%D The next series of dimensions are complemented by left
-%D and rights ones.
-
-\newdimen \margindistance
-\newdimen \edgedistance
-\newdimen \marginwidth
-\newdimen \edgewidth
-
-%D Because a distance does not really makes sense when there
-%D is no area, we use a zero distance in case there is no
-%D area.
-
-\def\layoutdistance#1#2%
- {\ifdim\zeropoint<#1\layoutparameter#2\else\zeropoint\fi}
-
-%D The horizontal distances are:
-
-\newdimen \leftedgedistance
-\newdimen \rightedgedistance
-\newdimen \leftmargindistance
-\newdimen \rightmargindistance
-
-%D The vertical distances are:
-
-\newdimen \topdistance
-\newdimen \headerdistance
-\newdimen \footerdistance
-\newdimen \bottomdistance
-
-%D We need to calculate the extra distances:
-
-\def\setlayoutdimensions
- {\global\marginwidth \layoutparameter\c!margin
- \global\edgewidth \layoutparameter\c!edge
- \global\margindistance \layoutparameter\c!margindistance
- \global\edgedistance \layoutparameter\c!edgedistance
- \global\leftedgedistance \layoutdistance \leftedgewidth \c!leftedgedistance
- \global\rightedgedistance \layoutdistance \rightedgewidth \c!rightedgedistance
- \global\leftmargindistance \layoutdistance \leftmarginwidth \c!leftmargindistance
- \global\rightmargindistance\layoutdistance \rightmarginwidth \c!rightmargindistance
- \global\topdistance \layoutdistance \topheight \c!topdistance
- \global\headerdistance \layoutdistance \headerheight \c!headerdistance
- \global\footerdistance \layoutdistance \footerheight \c!footerdistance
- \global\bottomdistance \layoutdistance \bottomheight \c!bottomdistance}
-
-\def\setlayoutdistances % local in \setreducedvsize
- {\headerdistance\layoutdistance\headerheight\c!headerdistance
- \footerdistance\layoutdistance\footerheight\c!footerdistance}
-
-% these are wrong in the running text, assumes some swapping, needs a cleanup
-
-\def\outermarginwidth {\rightorleftpageaction\rightmarginwidth \leftmarginwidth }
-\def\innermarginwidth {\rightorleftpageaction\leftmarginwidth \rightmarginwidth}
-\def\outermargindistance{\rightorleftpageaction\rightmargindistance\leftmargindistance }
-\def\innermargindistance{\rightorleftpageaction\leftmargindistance \rightmargindistance}
-
-\def\outeredgewidth {\rightorleftpageaction\rightedgewidth \leftedgewidth }
-\def\inneredgewidth {\rightorleftpageaction\leftedgewidth \rightedgewidth}
-\def\outeredgedistance {\rightorleftpageaction\rightedgedistance\leftedgedistance }
-\def\inneredgedistance {\rightorleftpageaction\leftedgedistance \rightedgedistance}
-
-\def\outerspacewidth {\rightorleftpageaction\cutspace\backspace}
-\def\innerspacewidth {\rightorleftpageaction\backspace\cutspace}
-
-\newtoks\extralayoutcalculations \def\calculatelayoutextras{\the\extralayoutcalculations}
-
-% \appendtoks
-% non etex calculations used to go here
-% \to \extralayoutcalculations
-
-\newtoks\everyswapmargins % watch the order !
-
-\appendtoks
- \swapdimens\leftmargindistance\rightmargindistance
- \swapdimens\leftedgedistance \rightedgedistance
- \swapdimens\leftmarginwidth \rightmarginwidth
- \swapdimens\leftedgewidth \rightedgewidth
-\to \everyswapmargins
-
-\appendtoks
- \swapmacros\leftmargintotal \rightmargintotal
- \swapmacros\leftedgetotal \rightedgetotal
- \swapmacros\leftsidetotal \rightsidetotal
- \swapmacros\leftcombitotal \rightcombitotal
- \swapmacros\innermargintotal\outermargintotal
- \swapmacros\inneredgetotal \outeredgetotal
- \swapmacros\innercombitotal \outercombitotal
- \swapmacros\innersidetotal \outersidetotal
-\to \everyswapmargins
-
-%D \macros
-%D {definepapersize}
-%D
-%D Before we start calculating layout dimensions, we will
-%D first take care of paper sizes. The first argument can be
-%D either an assignment (for defaults) or an identifier, in
-%D which case the second argument is an assignment.
-%D
-%D \showsetup{definepapersize}
-
-\def\definepapersize
- {\dodoubleempty\dodefinepapersize}
-
-\def\definepapersize
- {\dotripleempty\dodefinepapersize}
-
-\def\dodefinepapersize[#1][#2][#3]%
- {\ifsecondargument
- \doifsomething{#1} % to be sure
- {\doifassignmentelse{#2}
- {\getparameters
- [\??pp#1] % geen \c!scale, scheelt hash ruimte
- [\c!width=\@@ppwidth,\c!height=\@@ppheight,\c!offset=\@@ppoffset,#2]}
- {\setvalue{\??pp:1:#1}{#2}%
- \setvalue{\??pp:2:#1}{#3}}}%
- \else
- \getparameters[\??pp][#1]%
- \setuppapersize % hm. this will freeze !
- \fi}
-
-%D For the moment we need to fake this macro.
-
-\ifx\setuppapersize\undefined
- \let\setuppapersize\relax
-\fi
-
-%D We set the defaults to the dimensions of an A4 sheet of
-%D paper.
-
-\definepapersize
- [\c!width=210mm,\c!height=297mm,\c!offset=\!!zeropoint]
-
-%D Yet undocumented, let's see if it gets noticed.
-%D
-%D \starttyping
-%D \definepapersize[main] [A4] [A4]
-%D \definepapersize[extra][A4,landscape][A4,landscape]
-%D
-%D \starttext
-%D \setuppapersize[main]
-%D Page 1. \page
-%D Page 2. \page
-%D \setuppapersize[extra]
-%D Page 2 \page
-%D \setuppapersize[main]
-%D Page 3. \page
-%D Page 4. \page
-%D \adaptpapersize[extra]
-%D Page 5. \page
-%D Page 6. \page
-%D \stoptext
-%D \stoptyping
-
-%D \macros
-%D {setuppaper,setuppapersize}
-%D
-%D When setting up the papersize on which to typeset and
-%D print, we can also determine some more characteristics.
-%D
-%D \showsetup{setuppapersize}
-%D
-%D We keep track of these features with the following
-%D variables.
-
-\chardef\papermirror =0 \chardef\printmirror =0
-\chardef\paperorientation=0 \chardef\printorientation=0 % beware: later no chardef
-\chardef\paperreverse =0 \chardef\printreverse =0
-\chardef\paperlandscape =0 \chardef\printlandscape =0
-
-\let\papersize\empty \let\printpapersize\empty
-
-\def\paperscale{1} \newif\ifnegateprintbox
-
-\def\setuppaper[#1]%
- {\getparameters[\??pp][\c!paper=,\c!page=,#1]%
- \edef\@@ppxy{\the\numexpr\@@ppnx*\@@ppny\relax}%
- \doifelsenothing\@@pppage
- {\doifelsenothing\@@pppaper
- {} % {\setuppapersize} % added, removed, no need for, too tricky, mag-01 (fixed by freezing pp's)
- {\dodosetuppapersize[\papersize][\@@pppaper]}}
- {\doifelsenothing\@@pppaper
- {\dodosetuppapersize[\@@pppage][\printpapersize]}
- {\dodosetuppapersize[\@@pppage][\@@pppaper]}}}
-
-\def\setuppapersize
- {\dodoubleempty\dosetuppapersize}
-
-\def\dosetuppapersize[#1][#2]%
- {\doifassignmentelse{#1}
- {\setuppaper[#1]}
- {\doifelsenothing{#2}
- {\expanded{\dodosetuppapersize
- [\executeifdefined{\??pp:1:#1}{#1}]%
- [\executeifdefined{\??pp:2:#1}{\v!default}]}}
- {\doifassignmentelse{#2}
- {\getparameters[\??pp\executeifdefined{\??pp:1:#1}{#1}][#2]}
- {\expanded{\dodosetuppapersize
- [\executeifdefined{\??pp:1:#1}{#1}]%
- [\executeifdefined{\??pp:1:#2}{#2}]}}}}}
-
-\let\reinstatepapersize\relax
-
-\def\adaptpapersize
- {\global\let\reinstatepapersize\restorepapersize
- \setuppapersize}
-
-\appendtoks
- \reinstatepapersize
- \global\let\reinstatepapersize\relax
-\to \everyaftershipout
-
-\def\dodosetuppapersize[#1][#2]%
- {\ifsecondargument
- \expanded{\dododosetuppapersize[#1][#2]}%
- \calculatehsizes
- \calculatevsizes
- \recalculatelogos
- \recalculatebackgrounds
- \recalculatelayout
- \else\iffirstargument
- \setuppapersize[#1][#2]%
- \else\ifx\papersize\undefined\else
- \restorepapersize
- \fi\fi\fi}
-
-% dimen freeze is a bit tricky, but catches local redundant calls
-% with values where e.g width is defined in terms of \paperwidth
-
-\def\dododosetuppapersize[#1][#2]%
- {\xdef\restorepapersize{\noexpand\setuppapersize[#1][#2]}%
- \dosetuppaperorientation{#1}\paperlandscape\paperorientation\paperreverse\papermirror
- \dosetuppaperorientation{#2}\printlandscape\printorientation\printreverse\printmirror
- \def\docommand##1%
- {\doifsomething{##1}{\doifdefined{\??pp##1\c!width}
- {\global\paperwidth \getvalue{\??pp##1\c!width}%
- \global\paperheight\getvalue{\??pp##1\c!height}%
-\ifinpagebody
- \setevalue{\??pp##1\c!height}{\the\paperheight}%
- \setevalue{\??pp##1\c!width }{\the\paperwidth }%
-\fi
- \calculatepaperoffsets{##1}%
- \xdef\papersize{##1}}}}%
- \processcommacommand[#1]\docommand
- \doifdefinedelse{\??pp#1\c!scale}
- {\edef\paperscale{\getvalue{\??pp#1\c!scale}}}
- {\edef\paperscale{1}}%
- \def\docommand##1%
- {\doifsomething{##1}{\doifdefined{\??pp##1\c!width}
- {\global\printpaperwidth \getvalue{\??pp##1\c!width}%
- \global\printpaperheight\getvalue{\??pp##1\c!height}%
-\ifinpagebody
- \setevalue{\??pp##1\c!height}{\the\printpaperheight}%
- \setevalue{\??pp##1\c!width }{\the\printpaperwidth}%
-\fi
- \xdef\printpapersize{##1}}}}%
- \processcommacommand[#2]\docommand
- \global\setdimentoatleast\paperwidth \onepoint
- \global\setdimentoatleast\paperheight \onepoint
- \global\setdimentoatleast\printpaperwidth \onepoint
- \global\setdimentoatleast\printpaperheight\onepoint
- \ifcase\paperlandscape\else
- \doglobal\swapdimens\paperwidth\paperheight
- \fi
- \ifcase\printlandscape\else
- \doglobal\swapdimens\printpaperwidth\printpaperheight
- \fi
- % this check can be confusing, so we've added the possibility
- % to bypass this test: \setuppapersize[option=fit]
- \doif\@@ppoption\v!max % \v!fit is
- {\bgroup
- % we need to pre-swap else we get the wrong paper size
- \ifcase\paperorientation\else
- \doifinset\paperorientation{90,270}{\swapdimens\paperwidth\paperheight}%
- \fi
- \ifcase\printorientation\else
- \doifinset\printorientation{90,270}{\swapdimens\printpaperwidth\printpaperheight}%
- \fi
- \ifdim\paperheight>\printpaperheight
- \global\printpaperheight\paperheight
- \writestatus\m!systems{print height forced to paper height}%
- \fi
- \ifdim\paperwidth>\printpaperwidth
- \global\printpaperwidth\paperwidth
- \writestatus\m!systems{print width forced to paper width}%
- \fi
- \egroup}}
-
-\def\dosetuppaperorientation#1#2#3#4#5%
- {\global\chardef#2\zerocount
- \global\chardef#5\zerocount
- \globallet#3\!!zerocount
- \globallet#4\!!zerocount
- \global\negateprintboxfalse
- \processallactionsinset
- [#1]
- [ \v!landscape=>\global\chardef#2\plusone,
- \v!mirrored=>\global\chardef#5\plusone,
- \v!rotated=>\gdef#3{90}\gdef#4{270},
- \v!negative=>\global\negateprintboxtrue,
- 90=>\gdef#3{90}\gdef#4{270},
- 180=>\gdef#3{180}\gdef#4{0},
- 270=>\gdef#3{270}\gdef#4{90}]}
-
-\ifx\calculatepaperoffsets\undefined
-
- \def\calculatepaperoffsets#1%
- {\scratchdimen\getvalue{\??pp#1\c!offset}%
- \global\advance\paperwidth -2\scratchdimen
- \global\advance\paperheight-2\scratchdimen}
-
-\fi
-
-\let\restorepapersize\relax
-
-\def\checkforems[#1]%
- {\def\docommand##1%
- {\beforesplitstring##1\at em\to\asciia
- \doifnot\asciia{##1}
- {\aftersplitstring\asciia\at=\to\asciia
- \doifsomething\asciia
- {\showmessage\m!systems{10}{##1}}}}%
- \processcommalist[#1]\docommand}
-
-\ifx\setups\undefined \def\setups[#1]{\setdefaultpenalties} \fi
-
-% \newtoks \everybeforelayout \relax
-% \newtoks \everyafterlayout \relax
-
-\def\recalculatelayout
- {\doifsomething{\layoutparameter\c!page\layoutparameter\c!paper}
- {\expanded{\dododosetuppapersize[\layoutparameter\c!page][\layoutparameter\c!paper]}}%
- \dorecalculatelayout}
-
-\def\dorecalculatelayout
- {%\the\everybeforelayout
- \setups[\layoutparameter\c!preset]%
- \global\leftmarginwidth \layoutparameter\c!leftmargin
- \global\rightmarginwidth\layoutparameter\c!rightmargin
- \global\leftedgewidth \layoutparameter\c!leftedge
- \global\rightedgewidth \layoutparameter\c!rightedge
- \global\headerheight \layoutparameter\c!header
- \global\footerheight \layoutparameter\c!footer
- \global\bottomheight \layoutparameter\c!bottom
- \global\topheight \layoutparameter\c!top
- \global\backspace \layoutparameter\c!backspace
- \global\topspace \layoutparameter\c!topspace
- \setlayoutdimensions % the rest of the `dimensions'
- \doifelse\@@lygrid\v!yes\gridsnappingtrue\gridsnappingfalse
- \ifgridsnapping
- \setsystemmode\v!grid
- \else
- \resetsystemmode\v!grid
- \fi
- \setups[\layoutparameter\c!setups]% depends on gridsnapping !
- \simplesetupwhitespace
- \simplesetupblank
- \global\cutspace\layoutparameter\c!cutspace
- \relax
- \doifelse{\layoutparameter\c!width}\v!middle
- {\ifdim\cutspace=\zeropoint
- \global\cutspace\backspace
- \fi
- \global\makeupwidth\dimexpr\paperwidth-\backspace-\cutspace\relax}
- {\doifelse{\layoutparameter\c!width}\v!fit
- {\ifdim\cutspace=\zeropoint
- \global\cutspace\backspace
- \fi
- \global\makeupwidth\dimexpr\paperwidth-\cutspace\relax
- \scratchdimen\dimexpr\backspace
- -\leftedgewidth -\leftedgedistance
- -\leftmarginwidth-\leftmargindistance\relax
- \ifdim\scratchdimen<\zeropoint
- \scratchdimen\zeropoint
- \fi
- \global\advance\makeupwidth\dimexpr
- -\rightmargindistance-\rightmarginwidth
- -\rightedgedistance -\rightedgewidth
- -\scratchdimen\relax}
- {\global\makeupwidth\layoutparameter\c!width\relax
- \ifdim\cutspace=\zeropoint
- \global\cutspace\dimexpr\paperwidth-\makeupwidth-\backspace\relax
- % \else
- % A kind of inconsistent specification, but used
- % in for instance s-pre-19.tex; the cutspace is
- % used only for determining some kind of right
- % margin; don't use this in doublesided mode
- \fi}}%
- \scratchdimen\layoutparameter\c!bottomspace\relax
- %\ifdim\scratchdimen=\zeropoint
- % \scratchdimen\topspace
- %\fi
- \global\bottomspace\layoutparameter\c!bottomspace\relax
- \global\layoutlines0\number\layoutparameter\c!lines\relax % may be empty
- \ifcase\layoutlines
- \doifelse{\layoutparameter\c!height}\v!middle
- {\ifdim\bottomspace=\zeropoint
- \global\bottomspace\topspace
- \fi
- \global\makeupheight\dimexpr\paperheight-\topspace-\bottomspace\relax}
- {\doifelse{\layoutparameter\c!height}\v!fit
- {\ifdim\bottomspace=\zeropoint
- \global\bottomspace\topspace
- \fi
- \global\makeupheight\dimexpr\paperheight-\bottomspace\relax
- \scratchdimen\dimexpr\topspace-\topheight-\topdistance\relax
- \ifdim\scratchdimen<\zeropoint
- \scratchdimen\zeropoint
- \fi
- \global\advance\makeupheight\dimexpr-\bottomdistance-\bottomheight-\scratchdimen\relax}
- {\global\makeupheight\layoutparameter\c!height\relax
- \ifdim\bottomspace=\zeropoint
- \global\bottomspace\dimexpr\paperheight-\makeupheight-\topspace\relax
- \else
- % inconsistent specification
- \fi}}%
- \else
- % beware, when the bodyfont changes (switched) this will change as well; implementing
- % a global lineheight is tricky: should we take the bodyfont interlinespace or the one set
- % independent of the bodyfont (before or after a layout spec); way too fuzzy, so we
- % stick to the current method (after a night of experimenting ...2003/10/13)
- \global\makeupheight\dimexpr
- \layoutparameter\c!lines\lineheight-\strutheight+\topskip+
- \headerdistance+\headerheight+\footerdistance+\footerheight\relax
- \fi
- \backoffset\layoutparameter\c!horoffset
- \topoffset \layoutparameter\c!veroffset
- \global\setdimentoatleast\makeupwidth\onepoint
- \global\setdimentoatleast\makeupheight \onepoint
- % \checkcurrentlayout % here ?
- % \the\everyafterlayout
- \calculatelayoutextras
- \calculatehsizes
- \calculatevsizes
- \calculatepseudocolumns
- \checkgridsnapping
- \recalculatelogos
- \recalculatebackgrounds}
-
-\def\calculatepseudocolumns
- {\global\layoutcolumns\layoutparameter\c!columns
- \global\layoutcolumndistance\layoutparameter\c!columndistance
- \global\layoutcolumnwidth\dimexpr\makeupwidth-\layoutcolumns\layoutcolumndistance+\layoutcolumndistance\relax
- \global\divide\layoutcolumnwidth\layoutcolumns
- \dorecurse\layoutcolumns
- {\setxvalue{\??ly:c:\recurselevel}%
- {\the\numexpr\recurselevel-\plusone\relax\dimexpr\layoutcolumnwidth+\layoutcolumndistance\relax}}}
-
-%\dorecurse\layoutcolumns
-% {\setxvalue{\??ly:c:\recurselevel}{\the\dimexpr
-% (\numexpr(\recurselevel-1)\dimexpr(\layoutcolumnwidth+\layoutcolumndistance))}}
-
-\def\layoutcolumnoffset#1%
- {\executeifdefined{\??ly:c:#1}\!!zeropoint}
-
-\def\checklayout
- {\ifdim\makeupheight=\layoutlines\lineheight \else \recalculatelayout \fi}
-
-\appendtoks \checklayout \to \everystarttext
-
-% document:
-%
-% \setuplayout[odd][state=stop] \setuplayout[even][state=stop] \setuplayout[page]
-%
-% \startstandardmakeup[page=blank] ... \stopstandardmakeup
-
-\def\changetolayout#1%
- {%\writestatus\m!layouts{changing to layout #1}%
- \xdef\currentlayout{#1}\recalculatelayout}
-
-\def\checkcurrentoddlayout
- {\ifcsname\??ly\v!odd\c!state\endcsname
- \doifvalue{\??ly\v!odd\c!state}\v!start{\changetolayout\v!odd}%
- \fi}
-
-\def\checkcurrentevenlayout
- {\ifcsname\??ly\v!even\c!state\endcsname
- \doifvalue{\??ly\v!even\c!state}\v!start{\changetolayout\v!even}%
- \fi}
-
-\ifx\lastpage\undefined \def\lastpage{1} \fi
-
-\def\reverserealfolio
- {\ifnum\lastpage>\plusone
- \ifnum\lastpage=\realfolio
- \v!last
- \else\ifnum\plusone=\realfolio
- \v!first
- \else
- \the\numexpr\realfolio-\lastpage\relax
- \fi\fi
- \else
- \!!zerocount
- \fi}
-
-\def\checkcurrentlayout % public and used in naw, so keep this name
- {\ifcsname\??ly\realfolio\c!state\endcsname
- \doifvalue{\??ly\realfolio\c!state}\v!start{\changetolayout\realfolio}%
- \else\ifcsname\??ly\reverserealfolio\c!state\endcsname
- \doifvalue{\??ly\reverserealfolio\c!state}\v!start{\changetolayout\reverserealfolio}%
- \else\ifcsname\??ly\v!current\c!state\endcsname
- \changetolayout\v!current % no start test ?
- \else
- \doifoddpageelse\checkcurrentoddlayout\checkcurrentevenlayout
- \fi\fi\fi}
-
-% testcase
-%
-% \setuppagenumbering[alternative=doublesided]
-%
-% \setuplayout [width=11cm]
-% \definelayout [odd] [backspace=1cm]
-% \definelayout [even] [backspace=4cm]
-% \definelayout [5] [backspace=5cm]
-% \definelayout [6] [backspace=5cm]
-% \definelayout [-2] [backspace=0cm,cutspace=0cm]
-% \definelayout [last] [backspace=0cm,cutspace=0cm]
-%
-% \checkcurrentlayout \showframe
-%
-% \starttext
-% \dorecurse{20} {\input knuth \endgraf \input tufte \endgraf}
-% \stoptext
-
-%appendtoks \checkcurrentlayout \to \everyaftershipout % no
-\appendtoks \checkcurrentlayout \to \everystarttext
-
-\appendtoks
- \dochecknextlayout
-\to \everyaftershipout
-
-% \def\dochecknextlayout
-% {\ifx\currentlayout\v!current
-% % prevent redundant calculations
-% \else
-% \globallet\currentlayout\empty
-% \global\letbeundefined{\??ly\v!current\c!state}%
-% \checkcurrentlayout
-% \fi}
-%
-% this breaks after a standardmakeup
-
-\def\dochecknextlayout{\checkcurrentlayout}
-
-\newif\ifdoublesidedprint
-
-\def\presetcenterpagebox % in \setuplayout !!!!!!!!!!!!!!!!
- {\doublesidedprintfalse
- \ExpandFirstAfter\processallactionsinset
- [\@@lylocation]
- [ \v!middle=>{\setuppapersize[\c!left=\hss,\c!right=\hss,\c!top=\vss,\c!bottom=\vss]},
- \v!left=>{\setuppapersize[\c!left=,\c!right=\hss]},
- \v!right=>{\setuppapersize[\c!left=\hss,\c!right=]},
- \v!bottom=>{\setuppapersize[\c!top=\vss,\c!bottom=]},
- \v!top=>{\setuppapersize[\c!top=,\c!bottom=\vss]},%
- \v!doublesided=>\doublesidedprinttrue,
- \v!singlesided=>\doublesidedprintfalse]}
-
-\def\definelayout
- {\dodoubleargument\dodefinelayout}
-
-\def\dodefinelayout[#1][#2]%
- {\getparameters[\??ly#1][\c!state=\v!start,#2]}
-
-\def\dodosetuplayout[#1][#2]%
- {\ConvertToConstant\doifnot{#2}\v!reset % #2 ?
- {\getparameters[\??ly#1][#2]%
- \checkforems[#2]}}
-
-% global needed for non-doublesided standardmakeup
-
-\def\dosetuplayout[#1][#2]%
- {\globallet\currentlayout\empty % new, global
- \ifsecondargument
- \dodosetuplayout[#1][#2]%
- \else\iffirstargument
- \doifassignmentelse{#1}
- {\dodosetuplayout[][#1]}
- {\doifnot{#1}\v!reset{\xdef\currentlayout{#1}}}% new, global
- \fi\fi
- \recalculatelayout
- \checkcurrentlayout % here ?
- \presetcenterpagebox}
-
-\def\setuplayout
- {\dodoubleempty\dosetuplayout}
-
-\let\@@zaheight=\!!zeropoint
-
-\def\dopushpagedimensions
- {\xdef\oldtextheight {\the\textheight }%
- \xdef\oldfooterheight{\the\footerheight}%
- \global\let\@@zaheight\@@zaheight}
-
-\def\dopoppagedimensions
- {\global\textheight \oldtextheight
- \global\footerheight\oldfooterheight
- \recalculatelayout
- \global\let\pushpagedimensions\dopushpagedimensions
- \global\let\poppagedimensions\relax}
-
-\let\poppagedimensions = \relax
-\let\pushpagedimensions = \dopushpagedimensions
-
-% Elke \csname ... \endcsname wordt ook aangemaakt, dus ook
-% in een test met \doifdefined. Bij veel bladzijden kan dit
-% te veel macro's kosten. Vandaar de set \adaptedpages. Het
-% kost tijd, maar scheelt macro's.
-
-\let\adaptedpages\empty
-
-\def\adaptpagedimensions
- {\ifx\adaptedpages\empty\else
- \rawdoifinsetelse\realfolio\adaptedpages
- {\getvalue{\??za\realfolio}%
- \letbeundefined{\??za\realfolio}}
- \donothing
- \fi}
-
-\def\checkpagedimensions
- {\poppagedimensions
- \adaptpagedimensions}
-
-\def\reportpagedimensions
- {\ifx\poppagedimensions\relax \else
- \space\the\dimexpr\@@zaheight\relax\space-\space
- \fi
- \realfolio}
-
-\def\dodoadaptlayout[#1]%
- {\getparameters[\??za][\c!height=,\c!lines=0,#1]%
- \pushpagedimensions
- \ifcase\@@zalines\relax
- \showmessage\m!layouts1{\@@zaheight,\realfolio}%
- \else
- \showmessage\m!layouts1{\@@zalines\space\v!lines,\realfolio}%
- \def\@@zaheight{\@@zalines\openlineheight}%
- \fi
- \doifelse\@@zaheight\v!max
- {\balancedimensions\textheight\footerheight\footerheight}
- {\balancedimensions\textheight\footerheight\@@zaheight}%
- \ifdim\footerheight<\zeropoint
- \global\advance\textheight \footerheight
- \global\footerheight\zeropoint
- \global\xdef\@@zaheight{\layoutparameter\c!footer\space(\v!max)}%
- \fi
- \setvsize
- \global\pagegoal\vsize % nog corrigeren voor insertions ?
- \recalculatelogos
- \recalculatebackgrounds
- \global\let\pushpagedimensions\relax
- \global\let\poppagedimensions\dopoppagedimensions}
-
-\def\doadaptlayout[#1][#2]%
- {\doifelsenothing{#2}
- {\dodoadaptlayout[#1]}
- {\def\docommand##1%
- {\addtocommalist{##1}\adaptedpages
- \setgvalue{\??za##1}{\dodoadaptlayout[#2]}}%
- \processcommalist[#1]\docommand
- \adaptpagedimensions}}
-
-\def\adaptlayout
- {\dodoubleempty\doadaptlayout}
-
-% describe interface
-
-%D Centering the paper area on the print area is determined
-%D by the \type {top}, \type {bottom}, \type {left} and \type
-%D {right} parameters.
-
-\def\centerpagebox#1%
- {\printpaperwidth \paperscale\printpaperwidth
- \printpaperheight\paperscale\printpaperheight
- \setbox#1\vbox to \printpaperheight
- {\@@pptop
- \hbox to \printpaperwidth
- {\ifdoublesidedprint
- \doifbothsides
- {\@@ppleft \box#1\@@ppright}
- {\@@ppleft \box#1\@@ppright}
- {\@@ppright\box#1\@@ppleft }%
- \else
- \@@ppleft \box#1\@@ppright
- \fi}%
- \par
- \@@ppbottom}}
-
-\def\offsetprintbox#1%
- {\ifdim\topoffset=\zeropoint % \relax
- \ifdim\backoffset=\zeropoint
- \donefalse
- \else
- \donetrue
- \fi
- \else
- \donetrue
- \fi
- \ifdone
- \edef\next{\wd#1\the\wd#1\ht#1\the\ht#1\dp#1\the\dp#1}%
- \setbox#1\vbox
- {%\forgetall
- \offinterlineskip
- \vskip\topoffset
- \doifbothsides{\hskip\backoffset}{\hskip\backoffset}{\hskip-\backoffset}%
- \box#1}%
- \next
- \fi}
-
-\def\replicatepagebox#1%
- {\ifnum\@@lynx>\plusone
- \donetrue
- \else\ifnum\@@lyny>\plusone
- \donetrue
- \else
- \donefalse
- \fi\fi
- \ifdone
- \setbox#1\vbox
- {%\forgetall
- \offinterlineskip
- \dorecurse\@@lyny
- {\hbox{\dorecurse\@@lynx{\copy#1\hskip\@@lydx}\unskip}%
- \vskip\@@lydy}
- \unskip}%
- \fi}
-
-\def\orientpagebodybox#1#2#3%
- {\ifnum#2#3>\zerocount
- \setbox#1\vbox
- {\edef\somerotation{\ifdoublesided\ifodd\realpageno#2\else#3\fi\else#2\fi}%
- \dorotatebox\somerotation\hbox{\box#1}}%
- \fi}
-
-\def\orientpaperbox#1%
- {\orientpagebodybox{#1}\paperorientation\paperreverse}
-
-\def\orientprintbox#1%
- {\orientpagebodybox{#1}\printorientation\printreverse}
-
-\def\mirrorpagebodybox#1#2%
- {\ifcase#2\or
- \setbox#1\vbox
- {\domirrorbox\vbox{\box#1}}%
- \fi}
-
-\def\mirrorpaperbox#1%
- {\mirrorpagebodybox{#1}\papermirror}
-
-\def\mirrorprintbox#1%
- {\mirrorpagebodybox{#1}\printmirror}
-
-\def\scalepagebox#1%
- {\ifdim\@@lyscale\points=\onepoint \else
- \setbox#1\vbox
- {\scale[\c!sx=\@@lyscale,\c!sy=\@@lyscale]{\box#1}}%
- \paperwidth\@@lyscale\paperwidth
- \paperheight \@@lyscale\paperheight
- \fi}
-
-\def\negateprintbox#1%
- {\ifnegateprintbox
- \negatecolorbox{#1}%
- \fi}
-
-\def\pagecutmarksymbol {\the\realpageno}
-\def\pagecutmarklength {.5cm}
-\let\pagecutmarktoptext \empty
-\let\pagecutmarkbottomtext \empty
-
-\def\extrapagecutmarkbottomtext
- {\rlap{\jobname}\hfill\currentdate\space-\space\currenttime\hfill\llap{\realfolio}}
-
-\def\makepagecutbox % #1
- {\let\cutmarksymbol \pagecutmarksymbol
- \let\cutmarklength \pagecutmarklength
- \let\cutmarktoptext \pagecutmarktoptext
- \let\cutmarkbottomtext\pagecutmarkbottomtext
- \makecutbox}
-
-\setvalue{\??ly:n:\c!marking:\v!on}%
- {\makepagecutbox}
-
-\setvalue{\??ly:n:\c!marking:\v!page}% only at outer when nx/ny > 0
- {\makepagecutbox}
-
-\setvalue{\??ly:n:\c!marking:\v!empty}%
- {\let\pagecutmarksymbol\empty
- \let\pagecutmarktoptext\empty
- \let\pagecutmarkbottomtext\empty
- \makepagecutbox}
-
-\setvalue{\??ly:n:\c!marking:\v!text}%
- {\let\pagecutmarksymbol\empty
- \let\pagecutmarkbottomtext\extrapagecutmarkbottomtext
- \makepagecutbox}
-
-\setvalue{\??ly:c:\c!marking:\v!color}%
- {\doaddpagecolormarks\colormarkbox}
-
-\setvalue{\??ly:c:\c!marking:\v!screen}%
- {\doaddpagecolormarks\rastermarkbox}
-
-\def\addpagecutmarks % #1
- {\executeifdefined{\??ly:n:\c!marking:\@@lymarking}\gobbleoneargument}
-
-\def\addpagecolormarks % #1
- {\executeifdefined{\??ly:c:\c!marking:\@@lymarking}\gobbleoneargument}
-
-\def\doaddpagecolormarks#1#2%
- {\makepagecutbox{#2}%
- \ifnum\horizontalcutmarks>2 \chardef\colormarkoffset4 \fi
- \ifnum\verticalcutmarks >2 \chardef\colormarkoffset4 \fi
- #1{#2}}
-
-% 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
- \doifelselayoutsomeline \v!header
- {\redoglobal\advance\textheight-\dimexpr\headerheight+\headerdistance\relax}%
- \donothing
- \doifelselayoutsomeline \v!footer
- {\redoglobal\advance\textheight-\dimexpr\footerheight+\footerdistance\relax}%
- \donothing
- \ifzeropt\headerheight
- \resetsystemmode\v!header
- \else
- \setsystemmode\v!header
- \fi
- \ifzeropt\footerheight
- \resetsystemmode\v!footer
- \else
- \setsystemmode\v!footer
- \fi
- \resetglobal
- \setvsize}
-
-\def\calculatereducedvsizes
- {\textheight\makeupheight
- \doifelselayoutsomeline \v!header
- {\advance\textheight-\dimexpr\headerheight+\headerdistance\relax}%
- {\headerheight\zeropoint
- \setlayoutdistances}%
- \doifelselayoutsomeline \v!footer
- {\advance\textheight-\dimexpr\footerheight+\footerdistance\relax}%
- {\footerheight\zeropoint
- \setlayoutdistances}}
-
-\newdimen\innermakeupwidth % special purpose
-\newdimen\innermakeupmargin % special purpose
-
-\chardef\innermakeupcompensation\plusone
-
-\def\compensatedinnermakeupmargin
- {\dimexpr\ifnum\innermakeupcompensation=\plusone+\innermakeupmargin\else\zeropoint\fi\relax}
-
-\def\freezetextwidth % \makeupwidth may be set to \textwidth
- {\textwidth\makeupwidth % which is a tricky but valid value
- \doifsomething{\layoutparameter\c!textwidth}
- {\textwidth\layoutparameter\c!textwidth}% % local
- \global\innermakeupwidth\textwidth
- \doifelsenothing{\layoutparameter\c!textmargin}
- {\global\innermakeupmargin\zeropoint}
- {\global\innermakeupmargin\layoutparameter\c!textmargin}%
- \global\advance\innermakeupwidth-\dimexpr\innermakeupmargin+\innermakeupmargin\relax
- \advance\textwidth-\dimexpr\innermakeupmargin+\innermakeupmargin\relax} % local
-
-\def\calculatehsizes
- {\freezetextwidth
- \sethsize}
-
-% De onderstaande macro voert commando's uit, afhankelijk van
-% het karakter van het paginanummer.
-%
-% \doifoddpageelse{then-commando}{else-commando}
-
-%D When we start at an even page, we need to swap the layout
-%D differently. We cannot adapt the real page number, since
-%D it is used in cross referencing. The next switch is set
-%D when we start at an even page.
-
-\newif\ifshiftedrealpageno
-
-% \def\doifoddpageelse#1#2%
-% {\ifshiftedrealpageno
-% \ifodd\realpageno#2\else#1\fi
-% \else
-% \ifodd\realpageno#1\else#2\fi
-% \fi}
-
-\def\doifoddpageelse
- {\ifshiftedrealpageno
- \ifodd\realpageno
- \@EAEAEA\secondoftwoarguments
- \else
- \@EAEAEA\firstoftwoarguments
- \fi
- \else
- \ifodd\realpageno
- \@EAEAEA\firstoftwoarguments
- \else
- \@EAEAEA\secondoftwoarguments
- \fi
- \fi}
-
-\let\doifonevenpaginaelse\doifoddpageelse
-
-% what are those \relax'es doing there?
-
-% \def\doifbothsidesoverruled#1#2#3%
-% {\ifdoublesided
-% \doifoddpageelse{#2}{#3}\relax
-% \else
-% #1\relax
-% \fi}
-
-% \def\doifbothsides#1#2#3%
-% {\ifdoublesided
-% \ifsinglesided
-% #1\relax
-% \else
-% \doifoddpageelse{#2}{#3}\relax
-% \fi
-% \else
-% #1\relax
-% \fi}
-
-\def\redoifoddpageelse#1{\doifoddpageelse}
-
-\def\doifbothsidesoverruled
- {\ifdoublesided
- \@EA\redoifoddpageelse
- \else
- \@EA\firstofthreearguments
- \fi}
-
-\def\doifbothsides
- {\ifdoublesided
- \ifsinglesided
- \@EAEAEA\firstofthreearguments
- \else
- \@EAEAEA\redoifoddpageelse
- \fi
- \else
- \@EA\firstofthreearguments
- \fi}
-
-\newdimen\texthoffset
-
-\def\settexthoffset
- {\doifbothsides
- {\texthoffset\backspace}
- {\texthoffset\backspace}
- {\texthoffset\dimexpr\paperwidth-\backspace-\makeupwidth\relax}}
-
-\def\goleftonpage
- {\hskip-\dimexpr\leftmargindistance+\leftmarginwidth+\leftedgedistance+\leftedgewidth\relax}
-
-\def\doifmarginswapelse#1#2%
- {\doifbothsides{#1}{#1}{#2}}
-
-\def\swapmargins
- {\doifmarginswapelse\relax\doswapmargins}
-
-\def\doswapmargins
- {\let\swapmargins \relax % to prevent local swapping
- \let\doswapmargins\relax % to prevent local swapping
- \the\everyswapmargins}
-
-\def\rightorleftpageaction
- {\ifdoublesided
- \ifsinglesided
- \@EAEAEA\firstoftwoarguments
- \else
- \@EAEAEA\doifoddpageelse
- \fi
- \else
- \@EA\firstoftwoarguments
- \fi}
-
-\def\outermarginwidth {\rightorleftpageaction\rightmarginwidth \leftmarginwidth }
-\def\innermarginwidth {\rightorleftpageaction\leftmarginwidth \rightmarginwidth}
-\def\outermargindistance{\rightorleftpageaction\rightmargindistance\leftmargindistance }
-\def\innermargindistance{\rightorleftpageaction\leftmargindistance \rightmargindistance}
-
-\def\outeredgewidth {\rightorleftpageaction\rightedgewidth \leftedgewidth }
-\def\inneredgewidth {\rightorleftpageaction\leftedgewidth \rightedgewidth}
-\def\outeredgedistance {\rightorleftpageaction\rightedgedistance\leftedgedistance }
-\def\inneredgedistance {\rightorleftpageaction\leftedgedistance \rightedgedistance}
-
-\def\outerspacewidth {\rightorleftpageaction\cutspace \backspace }
-\def\innerspacewidth {\rightorleftpageaction\backspace\cutspace}
-
-\def\leftmargintotal {\dimexpr\leftmarginwidth +\leftmargindistance \relax}
-\def\rightmargintotal {\dimexpr\rightmarginwidth+\rightmargindistance\relax}
-\def\leftedgetotal {\dimexpr\leftedgewidth +\leftedgedistance \relax}
-\def\rightedgetotal {\dimexpr\rightedgewidth +\rightedgedistance \relax}
-
-\def\leftsidetotal {\dimexpr\leftmarginwidth +\leftedgetotal \relax}
-\def\rightsidetotal {\dimexpr\rightmarginwidth+\rightedgetotal\relax}
-\def\leftcombitotal {\dimexpr\leftmargintotal +\leftedgetotal \relax}
-\def\rightcombitotal {\dimexpr\rightmargintotal+\rightedgetotal\relax}
-
-\def\innermargintotal {\dimexpr\innermarginwidth+\innermargindistance\relax}
-\def\outermargintotal {\dimexpr\outermarginwidth+\outermargindistance\relax}
-\def\inneredgetotal {\dimexpr\inneredgewidth +\inneredgedistance \relax}
-\def\outeredgetotal {\dimexpr\outeredgewidth +\outeredgedistance \relax}
-
-\def\innercombitotal {\dimexpr\innermargintotal+\inneredgetotal\relax}
-\def\outercombitotal {\dimexpr\outermargintotal+\outeredgetotal\relax}
-\def\innersidetotal {\dimexpr\innermarginwidth+\inneredgetotal\relax}
-\def\outersidetotal {\dimexpr\outermarginwidth+\outeredgetotal\relax}
-
-%D \macros
-%D {startlocallayout}
-%D
-%D These macros should be used with care. They permit local
-%D layouts (as used in fitting pages, see \type {page-app.tex}).
-
-%D This is kind of obsolete now that we have \type
-%D {\definelayout}, so this hack will disappear in future
-%D versions.
-
-\def\startlocallayout
- {\globalpushmacro\restorepapersize
- \globalpushmacro\currentlayout}
-
-\def\stoplocallayout
- {\globalpopmacro\currentlayout
- \globalpopmacro\restorepapersize
- \restorepapersize
- \setuplayout}
-
-%D \macros
-%D {showprint, showframe, showlayout, showsetups}
-%D
-%D We predefine a couple of tracing macros.
-%D
-%D \showsetup{showprint}
-%D \showsetup{showframe}
-%D \showsetup{showlayout}
-%D \showsetup{showsetups}
-%D %showsetup{showmargins}
-
-\fetchruntimecommand \showprint {page-run}
-\fetchruntimecommand \showframe {page-run}
-\fetchruntimecommand \showlayout {page-run}
-\fetchruntimecommand \showsetups {page-run}
-\fetchruntimecommand \showmargins {page-run}
-
-%D The default dimensions are quite old and will not change.
-%D The funny fractions were introduced when we went from fixed
-%D dimensions to relative ones. Since \CONTEXT\ is a dutch
-%D package, the dimensions are based on the metric system. The
-%D asymmetrical layout is kind of handy for short
-%D quick||and||dirty stapled documents.
-%D
-%D Although valid, it is not a real good idea to use
-%D dimensions based on the \type {em} unit. First of all,
-%D since there are no fonts loaded yet, this dimension makes
-%D no sense, and second, you would loose track of values,
-%D since they could change while going to a new page,
-%D depending on the current font setting.
-
-\setuplayout
- [ \c!topspace=.08417508418\paperheight, % 2.5cm
- \c!top=\!!zeropoint,
- \c!topdistance=\!!zeropoint,
- \c!header=.06734006734\paperheight, % 2.0cm
- \c!headerdistance=\!!zeropoint,
- \c!height=.84175084175\paperheight, % 25.0cm
- \c!footerdistance=\layoutparameter\c!headerdistance,
- \c!footer=.06734006734\paperheight, % 2.0cm
- \c!bottomdistance=\layoutparameter\c!topdistance,
- \c!bottom=\!!zeropoint,
- \c!backspace=.11904761905\paperwidth, % 2.5cm
- \c!edge=\!!zeropoint,
- \c!edgedistance=\layoutparameter\c!margindistance,
- \c!margin=.12649983170\paperwidth, % snijwit-2*afstand
- \c!margindistance=.02008341748\paperwidth, % 12.0pt
- \c!leftedge=\layoutparameter\c!edge,
- \c!leftedgedistance=\layoutparameter\c!edgedistance,
- \c!leftmargin=\layoutparameter\c!margin,
- \c!leftmargindistance=\layoutparameter\c!margindistance,
- \c!width=.71428571429\paperwidth, % 15.0cm
- \c!rightmargindistance=\layoutparameter\c!margindistance,
- \c!rightmargin=\layoutparameter\c!margin,
- \c!rightedgedistance=\layoutparameter\c!edgedistance,
- \c!rightedge=\layoutparameter\c!edge,
- \c!veroffset=\!!zeropoint,
- \c!bottomspace=\!!zeropoint,
- \c!horoffset=\!!zeropoint,
- \c!cutspace=\!!zeropoint,
- \c!textwidth=, % dangerous option -> centered / local
- \c!textmargin=, % dangerous option -> both sides
- \c!textdistance=\!!zeropoint, % shift down on grid
- \c!style=,
- \c!color=,
- \c!marking=\v!off,
- \c!location=, % \v!singlesided, but empty is signal
- \c!scale=1,
- \c!nx=1,
- \c!ny=1,
- \c!dx=\!!zeropoint,
- \c!dy=\!!zeropoint,
- \c!grid=\v!no,
- \c!preset=,
- \c!setups=\systemsetupsprefix\s!default,
- \c!clipoffset=\!!zeropoint,
- \c!lines=0,
- \c!paper=, % for foxet
- \c!page=, % for foxet
- \c!columns=1,
- \c!columndistance=\!!zeropoint]
-
-%D First we define a whole range of (DIN) papersizes,
-%D of which the A-series makes most sense. We enable checking.
-
-%D We also set some of the parameters that will be used when
-%D positioning the typeset paper onto the print paper.
-
-\setuppaper % (size) % only used in XY imposition
- [\c!width=\zeropoint,
- \c!height=\zeropoint,
- \c!topspace=\zeropoint,
- \c!backspace=\zeropoint,
- \c!dx=\zeropoint,
- \c!dy=\zeropoint,
- \c!nx=1,
- \c!ny=1,
- \c!method=\v!normal]
-
-\setuppapersize
- [\c!option=\v!max,
- \c!top=,
- \c!bottom=\vss,
- \c!left=,
- \c!right=\hss]
-
-\definepapersize [A0] [\c!width=841mm,\c!height=1189mm]
-\definepapersize [A1] [\c!width=594mm,\c!height=841mm]
-\definepapersize [A2] [\c!width=420mm,\c!height=594mm]
-\definepapersize [A3] [\c!width=297mm,\c!height=420mm]
-\definepapersize [A4] [\c!width=210mm,\c!height=297mm]
-\definepapersize [A5] [\c!width=148mm,\c!height=210mm]
-\definepapersize [A6] [\c!width=105mm,\c!height=148mm]
-\definepapersize [A7] [\c!width=74mm,\c!height=105mm]
-\definepapersize [A8] [\c!width=52mm,\c!height=74mm]
-\definepapersize [A9] [\c!width=37mm,\c!height=52mm]
-\definepapersize [A10] [\c!width=26mm,\c!height=37mm]
-
-\definepapersize [B0] [\c!width=1000mm,\c!height=1414mm]
-\definepapersize [B1] [\c!width=707mm,\c!height=1000mm]
-\definepapersize [B2] [\c!width=500mm,\c!height=707mm]
-\definepapersize [B3] [\c!width=353mm,\c!height=500mm] % [\c!width=354mm,\c!height=500mm]
-\definepapersize [B4] [\c!width=250mm,\c!height=353mm] % [\c!width=250mm,\c!height=354mm]
-\definepapersize [B5] [\c!width=176mm,\c!height=250mm] % [\c!width=177mm,\c!height=250mm]
-\definepapersize [B6] [\c!width=125mm,\c!height=176mm] % [\c!width=125mm,\c!height=177mm]
-\definepapersize [B7] [\c!width=88mm,\c!height=125mm]
-\definepapersize [B8] [\c!width=62mm,\c!height=88mm] % [\c!width=63mm,\c!height=88mm]
-\definepapersize [B9] [\c!width=44mm,\c!height=62mm] % [\c!width=44mm,\c!height=63mm]
-\definepapersize [B10] [\c!width=31mm,\c!height=44mm]
-
-\definepapersize [C0] [\c!width=917mm,\c!height=1297mm]
-\definepapersize [C1] [\c!width=648mm,\c!height=917mm] % [\c!width=649mm,\c!height=917mm]
-\definepapersize [C2] [\c!width=458mm,\c!height=648mm] % [\c!width=459mm,\c!height=649mm]
-\definepapersize [C3] [\c!width=324mm,\c!height=458mm] % [\c!width=324mm,\c!height=459mm]
-\definepapersize [C4] [\c!width=229mm,\c!height=324mm]
-\definepapersize [C5] [\c!width=162mm,\c!height=229mm]
-\definepapersize [C6] [\c!width=114mm,\c!height=162mm] % [\c!width=115mm,\c!height=162mm]
-\definepapersize [C7] [\c!width=81mm,\c!height=114mm] % [\c!width=81mm,\c!height=115mm]
-\definepapersize [C8] [\c!width=57mm,\c!height=81mm]
-\definepapersize [C9] [\c!width=40mm,\c!height=57mm]
-\definepapersize [C10] [\c!width=28mm,\c!height=40mm]
-
-%D Per August 2004 the rounding of some (seldom used) sizes
-%D were corrected top the latest DIN specifications. Peter
-%D Rolf came up with these and a few more missing sizes.
-%D Watch out: spaces and slashes!
-
-\definepapersize [4 A0] [\c!width=1682mm,\c!height=2378mm]
-\definepapersize [2 A0] [\c!width=1189mm,\c!height=1682mm]
-\definepapersize [C6/C5] [\c!width=114mm,\c!height=229mm]
-
-%D Because there are no standardized screen sizes, we define
-%D a bunch of sizes with $4:3$ ratios. The \type {S6} size is
-%D nearly as wide as a sheet of \type {A4} paper.
-
-\definepapersize [S3] [\c!width=300pt,\c!height=225pt]
-\definepapersize [S4] [\c!width=400pt,\c!height=300pt]
-\definepapersize [S5] [\c!width=500pt,\c!height=375pt]
-\definepapersize [S6] [\c!width=600pt,\c!height=450pt]
-\definepapersize [S8] [\c!width=800pt,\c!height=600pt]
-\definepapersize [SW] [\c!width=800pt,\c!height=450pt]
-\definepapersize [SM] [\c!width=720pt,\c!height=450pt]
-
-%D These are handy too:
-
-\definepapersize [S33] [\c!width=300pt,\c!height=300pt]
-\definepapersize [S44] [\c!width=400pt,\c!height=400pt]
-\definepapersize [S55] [\c!width=500pt,\c!height=500pt]
-\definepapersize [S66] [\c!width=600pt,\c!height=600pt]
-
-%D One may wonder if \TEX\ should be used for typesetting
-%D \CDROM\ covers, but it does not hurt to have the paper size
-%D ready.
-
-\definepapersize [CD] [\c!width=120mm,\c!height=120mm]
-
-%D The next series is for our English speaking friends who
-%D decided to stick to non metric values. Thanks to Nelson
-%D Beebe for completing the inch based list.
-
-\definepapersize [letter] [\c!width=8.5in,\c!height=11in]
-\definepapersize [ledger] [\c!width=11in,\c!height=17in]
-\definepapersize [tabloid] [\c!width=17in,\c!height=11in]
-
-\definepapersize [legal] [\c!width=8.5in,\c!height=14in]
-\definepapersize [folio] [\c!width=8.5in,\c!height=13in]
-\definepapersize [executive] [\c!width=7.25in,\c!height=10.5in]
-
-\definepapersize [A] [\c!width=8.5in,\c!height=11in] % 1 sheet
-\definepapersize [B] [\c!width=11in,\c!height=17in] % 2 sheets
-\definepapersize [C] [\c!width=17in,\c!height=22in] % 4 sheets
-
-%D The next set is for Tobias Burnus, who gave me the sizes.
-
-\definepapersize [envelope 9] [\c!width=8.88in,\c!height=3.88in]
-\definepapersize [envelope 10] [\c!width=9.5in,\c!height=4.13in]
-\definepapersize [envelope 11] [\c!width=10.38in,\c!height=4.5in]
-\definepapersize [envelope 12] [\c!width=11.0in,\c!height=4.75in]
-\definepapersize [envelope 14] [\c!width=11.5in,\c!height=5.0in]
-\definepapersize [monarch] [\c!width=7.5in,\c!height=3.88in]
-\definepapersize [check] [\c!width=8.58in,\c!height=3.88in]
-\definepapersize [DL] [\c!width=110mm,\c!height=220mm] % [\c!width=220mm,\c!height=110mm]
-\definepapersize [E4] [\c!width=280mm,\c!height=400mm]
-
-%D The next three sets are supplied by Taco:
-
-\definepapersize [RA0] [\c!width=860mm,\c!height=1220mm]
-\definepapersize [RA1] [\c!width=610mm,\c!height=860mm]
-\definepapersize [RA2] [\c!width=430mm,\c!height=610mm]
-\definepapersize [RA3] [\c!width=305mm,\c!height=430mm]
-\definepapersize [RA4] [\c!width=215mm,\c!height=305mm]
-
-%D ISO SRA (supplementary raw A) sizes:
-
-\definepapersize [SRA0] [\c!width=900mm,\c!height=1280mm]
-\definepapersize [SRA1] [\c!width=640mm,\c!height=900mm]
-\definepapersize [SRA2] [\c!width=450mm,\c!height=640mm]
-\definepapersize [SRA3] [\c!width=320mm,\c!height=450mm]
-\definepapersize [SRA4] [\c!width=225mm,\c!height=320mm]
-
-%D Swedish thesis formats:
-
-\definepapersize [G5] [\c!width=169mm,\c!height=239mm]
-\definepapersize [E5] [\c!width=155mm,\c!height=220mm]
-
-%D Industry invention:
-
-\definepapersize [A3plus] [\c!width=329mm,\c!height=483mm]
-
-%D We can now default to a reasonable size. We match the print
-%D paper size with the typeset paper size. This setting should
-%D come after the first layout specification (already done).
-
-% not interfaced !
-
-\definepapersize
- [oversized]
- [ \c!width=\dimexpr\paperwidth +1.5cm\relax,
- \c!height=\dimexpr\paperheight+1.5cm\relax]
-
-\definepapersize
- [doublesized]
- [ \c!width=\dimexpr \paperwidth \relax,
- \c!height=\dimexpr2\paperheight\relax]
-
-\definepapersize
- [doubleoversized]
- [ \c!width=\dimexpr \paperheight+1.5cm\relax,
- \c!height=\dimexpr2\paperwidth +1.5cm\relax]
-
-\definepapersize
- [\v!default]
- [ \c!width=\paperwidth,
- \c!height=\paperheight]
-
-\definepapersize
- [samesized]
- [ \c!width=\paperwidth,
- \c!height=\paperheight]
-
-\setuppapersize
- [A4][samesized]
-
-%D For orthogonality:
-
-\definepapersize
- [undersized]
- [ \c!width=\dimexpr\paperwidth -1.5cm\relax,
- \c!height=\dimexpr\paperheight-1.5cm\relax]
-
-\definelayout
- [\v!page]
- [\c!backspace=\zeropoint,
- \c!cutspace=\zeropoint,
- \c!topspace=\zeropoint,
- \c!bottomspace=\zeropoint,
- \c!margin=\zeropoint,
- \c!edge=\zeropoint,
- \c!header=\zeropoint,
- \c!footer=\zeropoint,
- \c!top=\zeropoint,
- \c!bottom=\zeropoint,
- \c!leftmargin=\zeropoint,
- \c!rightmargin=\zeropoint,
- \c!leftedge=\zeropoint,
- \c!rightedge=\zeropoint,
- \c!textdistance=\zeropoint,
- \c!width=\v!middle,
- \c!height=\v!middle,
- \c!lines=0,
- \c!grid=\v!no]
-
-\definelayout
- [\v!middle]
- [\c!width=\v!middle,
- \c!height=\v!middle]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-lin.mkii b/Master/texmf-dist/tex/context/base/mkii/page-lin.mkii
deleted file mode 100644
index c6b352ae73c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-lin.mkii
+++ /dev/null
@@ -1,312 +0,0 @@
-%D \module
-%D [ file=page-lin, % copied from main-001
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Line Numbering,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / Line Numbering}
-
-\unprotect
-
-\newif\ifnumberinglines
-\newif\iftypesettinglines
-
-\newcount\linenumber
-\newcount\linestepper
-
-\chardef\linenumberlocation=0
-
-\newtoks\beforeeverylinenumbering
-\newtoks\aftereverylinenumbering
-
-% het gebruik van \setlocalreference scheelt een hash entry
-
-\def\dodoshowlinenumber % for use elsewhere, to be extended
- {\doplacelinenumber
- \global\advance\linenumber \plusone}
-
-\def\completelinenumber
- {\@@rnleft\convertnumber\@@rnconversion\linenumber\@@rnright}
-
-\def\dosetuplinenumbering[#1]%
- {\getparameters[\??rn][\c!start=1,\c!step=1,#1]%
- \global\linenumber\plusone}
-
-\def\setuplinenumbering
- {\dosingleargument\dosetuplinenumbering}
-
-\def\dostartnummerenLINE
- {\EveryPar{\placelinenumber}} % why not append to everypar ? better
-
-\def\dostopnummerenLINE
- {\the\aftereverylinenumbering
- \egroup}
-
-\def\dostartnummerenVERB
- {\EveryLine{\placelinenumber}}
-
-\def\dostopnummerenVERB
- {\the\aftereverylinenumbering
- \egroup}
-
-\newevery \everylinenumber \relax
-
-\def\dodoplacelinenumber
- {% beware of em's, the font is already switched !
- \setbox\scratchbox\hbox
- {\setbox0\hbox{\@@rncommand{\completelinenumber}}\vsmashbox0%
- \ifcase\linenumberlocation
- \iftypesettinglines % hack
- \expandafter\llap
- \else
- \expandafter\rlap
- \fi{\hbox to \@@rnwidth{\box0\hss}}% was \llap, nog testen !!
- \or
- \inleftmargin
- {\forgetall
- \doifelse\@@rnwidth\v!margin
- {\hsize\leftmarginwidth}{\hsize\@@rnwidth}%
- \alignedline\@@rnalign\v!right{\box0\hskip\@@rndistance}}%
- \else
- \inrightmargin
- {\forgetall
- \doifelse\@@rnwidth\v!margin
- {\hsize\rightmarginwidth}{\hsize\@@rnwidth}%
- \alignedline\@@rnalign\v!left{\hskip\@@rndistance\box0}}%
- \fi}%
- \vsmashbox\scratchbox
- \box\scratchbox
- \the\everylinenumber}
-
-\def\complexstartlinenumbering[#1]%
- {\doifnot{#1}\v!continue
- {\doifnumberelse{#1}
- {\global\linenumber#1\relax}
- {\doifelsenothing\@@rnstart
- {\global\linenumber\plusone}
- {\global\linenumber\@@rnstart}}}%
- \chardef\linenumberlocation\zerocount
- \processaction
- [\@@rnlocation]
- [ \v!inmargin=>\chardef\linenumberlocation\plusone,
- \v!inleft=>\chardef\linenumberlocation\plusone,
- \v!inright=>\chardef\linenumberlocation\plustwo,
- \v!margin=>\chardef\linenumberlocation\plusone]%
- % \v!text=>\chardef\linenumberlocation\zerocount,
- %\s!unknown=>\chardef\linenumberlocation\zerocount,
- %\s!default=>\chardef\linenumberlocation\zerocount]%
- \doifnot\@@rnwidth\v!margin
- {\freezedimenmacro\@@rnwidth
- \ifcase\linenumberlocation % text
- \advance\leftskip\@@rnwidth\relax
- \fi}%
- \freezedimenmacro\@@rndistance
- \chardef\@@rn@@rnmethod
- \ifprocessingverbatim\zerocount\else\iftypesettinglines\plusone\else\plustwo\fi\fi
- \processaction
- [\@@rnmethod]
- [ \v!type=>\chardef\@@rn@@rnmethod\zerocount,
- \v!line=>\chardef\@@rn@@rnmethod\plusone,
- \v!text=>\chardef\@@rn@@rnmethod\plustwo,
- \v!file=>\chardef\@@rn@@rnmethod\plusthree]%
- \ifcase\@@rn@@rnmethod % verbatim, line by line
- \typesettinglinestrue
- \let\dostartnummeren\dostartnummerenVERB
- \let\stoplinenumbering\dostopnummerenVERB
- \def\placelinenumber
- {\doplacelinenumber
- \global\advance\linenumber \plusone}%
- \or % text, line by line
- \let\dostartnummeren\dostartnummerenLINE
- \let\stoplinenumbering\dostopnummerenLINE
- \def\placelinenumber
- {\doplacelinenumber
- \global\advance\linenumber \plusone}%
- \or % text, whole lot
- \let\dostartnummeren\dostartnummerenPAR
- \let\stoplinenumbering\dostopnummerenPAR
- \def\placelinenumber
- {\global\advance\linenumber \minusone
- \doplacelinenumber}%
- \or % verbatim, selective line by line
- \typesettinglinestrue
- \let\dostartnummeren\dostartnummerenVERB
- \let\stoplinenumbering\dostopnummerenVERB
- \def\placelinenumber
- {\global\linenumber\verbatimlinenumber
- \global\advance\linenumber \minusone
- \doplacelinenumber}%
- \fi
- \dostartnummeren}
-
-\def\startlinenumbering
- {\bgroup
- \the\beforeeverylinenumbering
- \numberinglinestrue
- \complexorsimpleempty\startlinenumbering}
-
-\def\donoplacelinenumber
- {\the\everylinenumber}
-
-\def\doplacelinenumber
- {\ifnum\linenumber<\@@rnstart\relax
- \donoplacelinenumber
- \else
- \ifnum\numexpr(\linenumber/\@@rnstep)*\@@rnstep\relax=\linenumber
- \doattributes\??rn\c!style\c!color\dodoplacelinenumber
- \else
- \donoplacelinenumber
- \fi
- \fi}
-
-\def\someline[#1]%
- {\dolinereference0[#1]\ignorespaces}
-
-\def\startline[#1]%
- {\dolinereference1[#1]\ignorespaces}
-
-\def\stopline[#1]%
- {\removelastspace\dolinereference2[#1]}
-
-\def\inline#1[#2]%
- {\doifelsenothing{#1}
- {\doifinstringelse{--}\currenttextreference
- {\in{\leftlabeltext\v!lines}{\rightlabeltext\v!lines}[\@@rnprefix#2]}
- {\in{\leftlabeltext\v!line }{\rightlabeltext\v!line }[\@@rnprefix#2]}}
- {\in{#1}[\@@rnprefix#2]}}
-
-\def\dostartnummerenPAR
- {\beginofshapebox
- \doglobal\newcounter\linereference}
-
-% localcrossref heroverwegen
-
-\def\setlinereference#1#2#3#4%
- {\setxvalue{lrf:#1}{\noexpand\dogetlinereference{#2}{#3}{#4}}}
-
-\def\getlinereference#1%
- {\getvalue{lrf:#1}}
-
-\def\dogetlinereference#1#2#3%
- {\edef\linereferencename{#1}%
- \edef\linereferenceline{#2}%
- \edef\linereferenceplus{#3}}
-
-% 1 xxx xxx xxx xxx xxx xxx xxx
-% 2 xxx yyy yyy yyy yyy yyy yyy <= start y
-% 3 yyy yyy yyy yyy yyy yyy yyy
-% 4 yyy yyy yyy yyy yyy xxx xxx <= stop y
-% 5 xxx xxx xxx xxx xxx xxx xxx
-
-\def\dolinereference#1[#2]%
- {\bgroup
- \dimen0=\strutdp
- \doif\@@rnreferencing\v!on
- {\doglobal\increment\linereference
- % start 1=>(n=y,l=0,p=1)
- % stop 2=>(n=y,l=0,p=2)
- \setlinereference{\linereference}{\@@rnprefix#2}{0}{#1}%
- \advance\dimen0 \linereference sp}%
- \prewordbreak
- \vrule \!!width \zeropoint \!!depth \dimen0 \!!height \zeropoint
- \prewordbreak
- \egroup}
-
-\def\dostopnummerenPAR % dp's -> openstrutdepth
- {\endofshapebox
- \checkreferences
- \linestepper\zerocount
- \reshapebox{\global\advance\linestepper \plusone}%
- \global\advance\linenumber \linestepper
- \doifelse\@@rnreferencing\v!on
- {\reshapebox % We are going back!
- {\global\advance\linenumber \minusone
- \dimen0=\dp\shapebox
- \advance\dimen0 -\strutdp\relax
- \ifdim\dimen0>\zeropoint
- % 1=>4 | 2=>4 1=>2
- % start 1=>(n=y,l=2,p=1)
- % stop 2=>(n=y,l=4,p=2)
- \dostepwiserecurse\plusone{\number\dimen0}\plusone
- {\getlinereference\recurselevel
- \setlinereference\recurselevel
- {\linereferencename}{\the\linenumber}{\linereferenceplus}}%
- \fi}%
- \global\advance\linenumber \linestepper
- \ifnum\linereference>\zerocount % anders vreemde loop in paragraphs+recurse
- \dorecurse\linereference
- {\getlinereference\recurselevel
- \ifnum\linereferenceplus=2 % stop
- % ref y: text = 4 / Kan dit buiten referentie mechanisme om?
- \expanded{\setlocalcrossreference
- {\referenceprefix\linereferencename}{}{}{\linereferenceline}}%
- \fi}%
- \dorecurse\linereference
- {\getlinereference\recurselevel
- \ifnum\linereferenceplus<2 % start / lone
- \ifnum\linereferenceplus=1 % start
- \getreferenceelements\linereferencename % text = 4
- \ifnum\linereferenceline<0\currenttextreference\relax % 0 prevents error
- \edef\linereferenceline{\linereferenceline--\currenttextreference}%
- \fi
- \fi
- \expanded{\setlocalcrossreference
- {\referenceprefix\linereferencename}{}{}{\linereferenceline}}%
- \fi}%
- \global\let\scratchline\linenumber % We are going back!
- \reshapebox
- {\doglobal\decrement\scratchline
- \hbox
- {\dorecurse\linereference
- {\getlinereference\recurselevel
- \getreferenceelements\linereferencename
- \beforesplitstring\currenttextreference--\at--\to\firstline
- \ifnum\firstline=\scratchline\relax
- % beter een rawtextreference, i.e. expanded
- % \textreference[\linereferencename]{\currenttextreference}%
- \rawtextreference\s!lin\linereferencename\currenttextreference
- \expanded{\setlocalcrossreference
- {\referenceprefix\linereferencename}{}{}{0}}% ==done
- \fi}%
- \dimen0\dp\shapebox
- \advance\dimen0 -\strutdp\relax
- \ifdim\dimen0>\zeropoint
- \dp\shapebox\strutdp
- \fi
- \placelinenumber\box\shapebox}}% no \strut !
- \else
- \reshapebox{\hbox{\placelinenumber\box\shapebox}}% no \strut !
- \fi}
- {\reshapebox{\global\advance\linenumber \minusone}%
- \global\advance\linenumber \linestepper
- \reshapebox{\hbox{\placelinenumber\box\shapebox}}}% no \strut !
- \global\advance\linenumber \linestepper
- \flushshapebox
- \the\aftereverylinenumbering
- \egroup}
-
-\setuplinenumbering
- [\c!method=,
- \c!conversion=\v!numbers,
- \c!start=1,
- \c!step=1,
- \c!location=\v!margin,
- \c!style=,
- \c!color=,
- \c!prefix=,
- \c!referencing=\v!on,
- \c!width=\ifcase\linenumberlocation2em\else\v!margin\fi,
- \c!left=,
- \c!right=,
- \c!command=,
- \c!distance=\zeropoint,
- \c!align=\ifcase\linenumberlocation\v!right\or\v!right\or\v!left\fi]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-log.mkii b/Master/texmf-dist/tex/context/base/mkii/page-log.mkii
deleted file mode 100644
index c64c27bce03..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-log.mkii
+++ /dev/null
@@ -1,202 +0,0 @@
-%D \module
-%D [ file=page-log, % moved here from main-001
-%D version=1997.03.31,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Logos,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / Logos}
-
-\unprotect
-
-%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
-%D interfere with the other ones, but an even more important
-%D reason is that logos are kind of special in the sense that
-%D they have a short life span and may change after the first
-%D page.
-
-%D \macros
-%D {recalculatelogos,addlogobackground}
-%D
-%D The interface to the other low level page building routines
-%D is provided by a macro that signals changes in layout
-%D specifications:
-%D
-%D \starttyping
-%D \recalculatelogos
-%D \stoptyping
-%D
-%D as well as a simple placement macro:
-%D
-%D \starttyping
-%D \addlogobackground <box>
-%D \stoptyping
-%D
-%D In no way the following boolean switch should be used
-%D directly.
-
-\newif\ifnewlogos
-
-\def\recalculatelogos
- {\global\newlogostrue}
-
-%D The current state of logos is registered in a status
-%D variable \type {\logostatus}.
-%D
-%D \starttabulate[|l|l|l|]
-%D \NC 0 \NC don't place \NC remains 0 \NC \NR
-%D \NC 1 \NC place now \NC remains 1 \NC \NR
-%D \NC 2 \NC calulate and place \NC becomes 1 \NC \NR
-%D \NC 3 \NC calculate and place once \NC becomes 2 \NC \NR
-%D \stoptabulate
-
-\chardef\logostatus=0
-
-\def\addlogobackground#1% todo: dimension spec
- {\ifcase\logostatus \else
- \ifcase\logostatus
- % no logos to take care of
- \or % 1
- \ifnewlogos
- \chardef\logostatus2
- \setlogoboxes
- \chardef\logostatus1
- \global\newlogosfalse
- \fi
- \or % 2
- \setlogoboxes
- \chardef\logostatus1
- \or % 3
- \setlogoboxes
- \global\chardef\logostatus2
- \fi
- \setbox#1\vbox
- {\offinterlineskip
- \doifmarginswapelse
- {\copy\leftlogos}
- {\copy\rightlogos}
- \box#1}%
- \fi}
-
-%D For efficiency reasons (and since logos seldom change inside
-%D a document) we can save the left and right hand (or first
-%D and following page) logos in boxes. The areas are slightly
-%D different from the ones used in backgrounds and text
-%D placement, but still related to the page layout. The {\em
-%D left} and {\em right edge}, as well as {\em top} and {\em
-%D bottom} touch the bounding box of the paper and are
-%D therefore not the sams as their background adn text
-%D counterparts. In addition there are {\em left}, {\em right}
-%D and {\em middle} areas as well as a {\em page} one.
-
-\newbox\leftlogos
-\newbox\rightlogos
-
-\def\setlogoboxes
- {\showmessage\m!layouts7\empty
- \dosetlogobox\leftlogos\relax
- \ifdoublesided
- \dosetlogobox\rightlogos\doswapmargins
- \fi}
-
-\def\dosetlogobox#1#2%
- {\global\setbox#1\vbox to \paperheight
- {\dontcomplain % needed here ?
- \calculatereducedvsizes % needed here ?
- \offinterlineskip
- #2\relax
- \vskip-\topspace
- \dodosetlogobox\v!top\blap
- \vskip\topspace
- \dodosetlogobox\v!header\blap
- \vskip\dimexpr\headerheight+\headerdistance\relax
- \dodosetlogobox\v!text\blap
- \vskip\dimexpr\textheight+\footerdistance+\footerheight\relax
- \dodosetlogobox\v!footer \tlap
- \vfilll
- \dodosetlogobox\v!bottom\tlap
- \vskip\topspace}
- \smashbox#1}
-
-\def\dodosetlogobox#1#2%
- {\hbox % width equals \makeupwidth
- {\def\docommand##1%
- {\donefalse
- \ifnum\logostatus=3 \ExpandBothAfter
- \doifinset{\getvalue{\??lo#1##1}}\requestedlogos\donetrue
- \else
- \doifvalue{\??lo#1##1\c!state}\v!start\donetrue
- \fi
- \ifdone
- #2{\hbox{\getvalue{\??lo#1##1\c!command}}}%
- \fi}%
- \def\dodocommand##1##2##3##4##5##6%
- {\hsmash
- {\hskip-\texthoffset
- \hbox to \paperwidth
- {\rlap{\docommand##1}\hss\llap{\docommand##6}}%
- \hskip-\paperwidth
- \hbox to \paperwidth
- {\hskip\texthoffset
- \hskip-\leftmarginwidth
- \hskip-\leftmargindistance
- \hbox to \leftmarginwidth{\docommand##2\hss}%
- \hskip\leftmargindistance
- \hbox to \makeupwidth{\docommand##3\hss\docommand##4}%
- \hskip\rightmargindistance
- \hbox to \rightmarginwidth{\hss\docommand##5}%
- \hfill}}}%
- \normalbaselines
- \settexthoffset
- \hsmash
- {\hbox to \makeupwidth{\hss\docommand\c!middle\hss}}%
- \hsmash
- {\hskip-\texthoffset
- \hbox to \paperwidth{\docommand\v!page\hss}}%
- \swapmargins
- \doifbothsidesoverruled
- {\dodocommand
- \v!leftedge \v!leftmargin \v!left
- \v!right \v!rightmargin \v!rightedge}
- {\dodocommand
- \v!leftedge \v!leftmargin \v!left
- \v!right \v!rightmargin \v!rightedge}
- {\dodocommand
- \v!rightedge \v!rightmargin \v!right
- \v!left \v!leftmargin \v!leftedge}}}
-
-%D The user interface is relatively simple and provides
-%D macros for assigning logos to logo areas as well as
-%D forcing placement.
-%D
-%D \showsetup{definelogo}
-%D \showsetup{placelogos}
-
-\let\definedlogos \empty
-\let\requestedlogos\empty
-
-\long\def\dodefinelogo[#1][#2][#3][#4]%
- {\addtocommalist{#1}\definedlogos
- \long\setvalue{\??lo#2#3}{#1}%
- \getparameters[\??lo#2#3][#4]%
- \global\chardef\logostatus2 }
-
-\def\definelogo
- {\doquadrupleargument\dodefinelogo}
-
-\def\placelogos
- {\dosingleempty\doplacelogos}
-
-\def\doplacelogos[#1]%
- {\xdef\requestedlogos{\iffirstargument#1\else\definedlogos\fi}%
- \global\chardef\logostatus3 }
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-mak.mkii b/Master/texmf-dist/tex/context/base/mkii/page-mak.mkii
deleted file mode 100644
index 3a513137fe8..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-mak.mkii
+++ /dev/null
@@ -1,230 +0,0 @@
-%D \module
-%D [ file=page-mak, % copied from main-001,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Simple MakeUp,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / MakeUp}
-
-\unprotect
-
-%D \macros
-%D {definemakeup, setupmakeup, startmakeup}
-%D
-%D A makeup is a separate page, like a title page or colofon.
-%D There is one standard makeup page, but you can define more
-%D if needed.
-%D
-%D \starttyping
-%D \startstandardmakeup
-%D My Fancy Title
-%D \stopstandardmakeup
-%D \stoptyping
-%D
-%D The associated commands are:
-%D
-%D \showsetup{definemakeup}
-%D \showsetup{setupmakeup}
-%D \showsetup{startmakeup}
-
-\def\definemakeup
- {\dodoubleargument\dodefinemakeup}
-
-\def\dodefinemakeup[#1][#2]%
- {\getparameters
- [\??do#1]%
- [\c!width=\innermakeupwidth, % example in manual / was \makeupwidth
- \c!height=\textheight, % example in manual
- \c!commands=,
- \c!setups=,
- \c!page=\v!right,
- \c!doublesided=\v!empty,
- \c!before=,
- \c!top=\vss,
- \c!bottom=\vss,
- \c!after=,
- \c!bottomstate=\v!normal,
- \c!topstate=\v!normal,
- \c!textstate=\v!normal,
- \c!headerstate=\v!stop,
- \c!footerstate=\v!stop,
- \c!pagestate=\v!stop, % in manual ! ! !
- \c!color=,
- \c!align=,
- #2]%
- \setvalue{\e!start#1\e!makeup}{\startmakeup[#1]}%
- \setvalue{\e!stop #1\e!makeup}{\stopmakeup}}
-
-\def\setupmakeup
- {\dodoubleargument\dosetupmakeup}
-
-\def\dosetupmakeup[#1]%
- {\getparameters[\??do#1]}
-
-%D This will save us some 375 bytes in the format file.
-
-\def\makeupparameter#1{\getvalue{\??do\currentmakeup#1}}
-
-%D The \type{\start}||\type{\stop} macros are used for both
-%D the direct and indirect way. The parameterless call will
-%D build a simple box.
-
-\newtoks\everymakeup
-
-\appendtoks \postponemarks \to \everymakeup
-
-\let\currentmakeup\empty
-
-\def\startmakeup
- {\dodoubleempty\dostartmakeup}
-
-\def\dostartmakeup[#1][#2]%
- {\bgroup
- \edef\currentmakeup{#1}%
- \the\everymakeup
- \iffirstargument
- \setupmakeup[\currentmakeup][#2]%
- \let\stopmakeup\dodostopmakeup
- \expandafter \dodostartmakeup
- \else
- \let\stopmakeup\donostopmakeup
- \expandafter \donostartmakeup
- \fi}
-
-%D The simple case:
-
-\def\donostartmakeup % textwidth ?
- {\page
- \setupheader[\c!state=\v!empty]%
- \setupfooter[\c!state=\v!empty]%
- \setsystemmode\v!makeup
- \vbox to \textheight\bgroup\hsize\textwidth}
-
-\def\donostopmakeup
- {\egroup
- \flushmarks % new, here, else empty pages
- \page
- \egroup}
-
-%D The normal one:
-
-\newbox\makeupbox
-
-\def\dodostartmakeup
- {\doifvaluesomething{\??do\currentmakeup\c!page}
- {\ExpandFirstAfter\page[\makeupparameter\c!page]}%
- \pagetype[\currentmakeup]%
- \setsystemmode\v!makeup
- \setupmakeuplayout
- \makeupparameter\c!commands % hm, what is this one doing here ?
- \startregistercolor[\makeupparameter\c!color]%
- \forgetall % else indented flush
- \global\setbox\makeupbox\vbox to \makeupparameter\c!height
- \bgroup
-% \forgetall
- \setups[\makeupparameter\c!setups]%
- \hsize\makeupparameter\c!width
- \doifsomething{\makeupparameter\c!align}
- {\setupalign[\makeupparameter\c!align]}%
- \makeupparameter\c!top}
-
-\def\dodostopmakeup
- {\endgraf
- \makeupparameter\c!bottom
- \egroup
- \flushmarks % new, here, else empty pages
- \stopregistercolor
- \doflushmakeup
- \egroup
- \calculatehsizes
- \calculatevsizes}
-
-%D Selective page processing is handled here. (Why?)
-
-\def\doflushmakeup
- {\ifprocessingpages
- \ifpageselected
- \doshipoutmakeup
- \fi
- \else
- \ifpageselected \else
- \doshipoutmakeup
- \fi
- \fi
- \ifselectingpages
- \global\pageselectedfalse
- \fi}
-
-% \def\pushpagestate{\globalpushmacro\@@pnstate}
-% \def\poppagestate {\globalpopmacro \@@pnstate}
-
-\def\doshipoutmakeup
- {\pushpagestate % new
- \makeupparameter\c!before
- \setbox\makeupbox\vbox{\hbox{\color[\makeupparameter\c!color]{\box\makeupbox}}}%
- % \ifgridsnapping
- % new per 22/6/2006
- \ifdim\ht\makeupbox>\vsize
- \ht\makeupbox\vsize
- \fi
- % \fi
- \box\makeupbox
- \setuppagenumber[\c!state=\makeupparameter\c!pagestate]%
- \setupmakeuplayout
- \page
- \makeupparameter\c!after
- \relax % voor fi
- \ifdoublesided \ifodd\realpageno\else
- \processaction
- [\makeupparameter\c!doublesided]
- [ \v!yes=>\null
- \page,
- \v!empty=>{\setupmakeuplayout
- \page[\v!blank]%
- \null
- \page}]%
- \fi \fi
- \poppagestate} % new
-
-%D The text surrounding the main body text can be influenced
-%D by setting their associated status variables. The
-%D connection between them is made by the following macro
-
-\def\setupmakeuplayout
- {\setupfooter[\c!state=\makeupparameter\c!footerstate]%
- \setupheader[\c!state=\makeupparameter\c!headerstate]%
- \setuptext [\c!state=\makeupparameter\c!textstate]%
- \setupbottom[\c!state=\makeupparameter\c!bottomstate]%
- \setuptop [\c!state=\makeupparameter\c!topstate]%
- % this is needed, but no \setuplayout here; fails in texexec --fig=c
- \recalculatelayout}
-
-%D The standard page template is defined as follows:
-
-\definemakeup
- [\v!standard]
- [\c!width=\innermakeupwidth,
- \c!height=\textheight,
- \c!page=\v!right,
- \c!doublesided=\v!empty]
-
-\definemakeup
- [\v!text]
- [\c!topstate=\v!start,
- \c!headerstate=\v!start,
- \c!textstate=\v!start,
- \c!footerstate=\v!start,
- \c!bottomstate=\v!start,
- \c!doublesided=\v!no,
- \c!page=\v!yes,
- \c!top=\pseudostrut\ignorespaces,
- \c!bottom=\obeydepth\vss]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-mar.mkii b/Master/texmf-dist/tex/context/base/mkii/page-mar.mkii
deleted file mode 100644
index d386d8ab93b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-mar.mkii
+++ /dev/null
@@ -1,867 +0,0 @@
-%D \module
-%D [ file=page-mar, % moved here from main-001
-%D version=1997.03.31,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Marginal Things,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Support for margin words is one of the reasons for writing
-%D \CONTEXT. Over time support for marginal content has been
-%D extended en enhanced. Therefore it's always good to watch
-%D out for unexpected side effects.
-
-\writestatus{loading}{ConTeXt Page Macros / Maginal Things}
-
-\unprotect
-
-%D There are three categories and their historically grown meaning is
-%D as follows:
-%D
-%D marginlines: these are flushed relative to the start of a line and
-%D need to be invoked there.
-%D
-%D marginwords: these can be issued in the text flow and will migrate
-%D sidewards; in spite of the name, it can be a paragraph of text as
-%D well, but normally it's words.
-%D
-%D margintexts: these can be set beforehand and are flushed at the
-%D next paragraph of text (of header)
-%D
-%D While these mechanisms were rather separated, they now are slightly
-%D more integrated. Instead of low level instances we now have a mechanism
-%D for defining additional ones.
-
-%D \macros
-%D {inleftedge,inleftmargin,inrightmargin,inrightedge}
-%D
-%D The fast and clean way of putting things in the margin is
-%D using \type{\rlap} or \type{\llap}. Unfortunately these
-%D macro's don't handle indentation, left and right skips. We
-%D therefore embed them in some macro's that (force and)
-%D remove the indentation and restore it afterwards.
-
-\def\definemarginline
- {\dodoubleargument\dodefinemarginline}
-
-\def\dodefinemarginline[#1][#2]%
- {\getparameters
- [\??im\??im#1]
- [\c!location=\v!left,
- \c!distance=\zeropoint,
- \c!width=\leftmarginwidth,
- \c!hoffset=\leftmargindistance,
- \c!command=,
- #2]%
- \unexpanded\setvalue{#1}{\dohandlemarginline{#1}}}
-
-\def\marginlineparameter #1{\csname\??im\??im\currentmarginline#1\endcsname}
-\def\marginlineexecuter #1#2{\executeifdefined{\??im\??im\currentmarginline#1}{#2}}
-
-\def\dohandlemarginline#1% #2
- {\def\currentmarginline{#1}%
- \csname\s!do\??im\??im\executeifdefined{\??im\??im#1\c!location}\v!left\endcsname{#1}} % {#2}
-
-\def\doleftmarginline#1#2% #1 is redundant (we can remove it when we group dohandlemarginline; maybe ...
- {\pushindentation
- \llap
- {\def\currentmarginline{#1}%
- \postsignalrightpage
- \hsize\marginlineparameter\c!width\relax
- \marginlineexecuter\c!command\firstofoneargument{#2}\relax
- \hskip\dimexpr
- +\leftskip
- +\compensatedinnermakeupmargin
- +\marginlineparameter\c!hoffset
- +\marginlineparameter\c!distance
- \relax}%
- \popindentation
- \ignorespaces}
-
-\def\dorightmarginline#1#2% #1 is redundant
- {\pushindentation
- \rlap
- {\def\currentmarginline{#1}%
- \postsignalrightpage
- \hskip\dimexpr
- +\hsize
- -\rightskip
- +\compensatedinnermakeupmargin
- +\marginlineparameter\c!hoffset
- +\marginlineparameter\c!distance
- \relax
- \hsize\marginlineparameter\c!width
- \marginlineexecuter\c!command\firstofoneargument{#2}}%
- \popindentation
- \ignorespaces}
-
-\long\def\installmarginlinehandler#1#2{\setvalue{\s!do\??im\??im#1}{#2}}
-
-\installmarginlinehandler \v!left {\doleftmarginline}
-\installmarginlinehandler \v!right {\dorightmarginline}
-\installmarginlinehandler \v!inner {\presignalrightpage\doifrightpageelse\doleftmarginline \dorightmarginline}
-\installmarginlinehandler \v!outer {\presignalrightpage\doifrightpageelse\dorightmarginline\doleftmarginline }
-
-\definemarginline[inleftmargin] [\c!location=\v!left, \c!width=\leftmarginwidth, \c!distance=\leftmargindistance, \c!hoffset=\zeropoint]
-\definemarginline[inrightmargin][\c!location=\v!right,\c!width=\rightmarginwidth,\c!distance=\rightmargindistance,\c!hoffset=\zeropoint]
-\definemarginline[inleftedge] [\c!location=\v!left, \c!width=\leftedgewidth, \c!distance=\leftedgedistance, \c!hoffset=\leftmargintotal]
-\definemarginline[inrightedge] [\c!location=\v!right,\c!width=\rightedgewidth, \c!distance=\rightedgedistance, \c!hoffset=\rightmargintotal]
-
-\definemarginline[inoutermargin][\c!location=\v!outer,\c!width=\outermarginwidth,\c!distance=\outermargindistance,\c!hoffset=\zeropoint]
-\definemarginline[ininnermargin][\c!location=\v!inner,\c!width=\innermarginwidth,\c!distance=\innermargindistance,\c!hoffset=\zeropoint]
-\definemarginline[inouteredge] [\c!location=\v!outer,\c!width=\outeredgewidth, \c!distance=\outeredgedistance, \c!hoffset=\outermargintotal]
-\definemarginline[ininneredge] [\c!location=\v!inner,\c!width=\inneredgewidth, \c!distance=\inneredgedistance, \c!hoffset=\innermargintotal]
-
-\definemarginline[atleftmargin] [\c!location=\v!left, \c!command=\lrlap,\c!width=\zeropoint,\c!distance=\zeropoint,\c!hoffset=\zeropoint]
-\definemarginline[atrightmargin][\c!location=\v!right,\c!command=\rllap,\c!width=\zeropoint,\c!distance=\zeropoint,\c!hoffset=\zeropoint]
-
-\ifx\lrlap\undefined \def\lrlap#1{\llap{\rlap{#1}}} \fi
-\ifx\rllap\undefined \def\rllap#1{\rlap{\llap{#1}}} \fi
-
-\def\lrlap#1{\llap{\rlap{#1}}}
-\def\rllap#1{\rlap{\hskip\hsize\llap{#1}}}
-
-%D We want to keep things efficient and therefore only handle
-%D situations like:
-%D
-%D \startbuffer
-%D \inleftedge {fine} some text \par
-%D \strut \inleftmargin {fine} some text \par
-%D \noindent \inrightmargin {fine} some text \par
-%D \noindent \strut \inrightedge {fine} some text \par
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D which looks like:
-%D
-%D \bgroup
-%D \getbuffer
-%D \parindent 30pt
-%D \getbuffer
-%D \egroup
-%D
-%D A torture test:
-%D
-%D \starttyping
-%D \def\TestLine#1#2{\backgroundline[#1]{\strut\white\tttf#2~\recurselevel}}
-%D
-%D \startbuffer
-%D \inleftmargin {\TestLine{red} {lm}} test test test \par
-%D \inrightmargin{\TestLine{green} {rm}} test test test \par
-%D \inleftedge {\TestLine{red} {le}} test test test \par
-%D \inrightedge {\TestLine{green} {re}} test test test \par
-%D \inoutermargin{\TestLine{blue} {om}} test test test \par
-%D \ininnermargin{\TestLine{yellow}{im}} test test test \par
-%D \inouteredge {\TestLine{blue} {oe}} test test test \par
-%D \ininneredge {\TestLine{yellow}{ie}} test test test \par
-%D \atleftmargin {\TestLine{red} {alm}} \hfill test \par
-%D \atrightmargin{\TestLine{green} {arm}} test \hfill \par
-%D \stopbuffer
-%D
-%D \dorecurse{40}\getbuffer \page
-%D \stoptyping
-
-%D New, yet undocumented:
-%D
-%D used for pascal:
-%D
-%D \starttyping
-%D \index {test} test \index {west} west \index {rest} rest
-%D
-%D \startnarrower
-%D \placeregister[index][alternative=b,command=\atleftmargin]
-%D \stopnarrower
-%D \stoptyping
-
-% todo: compensate distance when setuplayout[textwidth=..]
-% todo: generalize margin/edge model, now too much duplication
-
-%D The next bunch of macros looks messy which is due to its
-%D multi-purpose character.
-
-\chardef\margincontentdisplacement \zerocount
-\let \margincontentdistance \!!zeropoint
-\let \margincontenthoffset \!!zeropoint
-\def \margincontentlines {1}
-\def \margincontenttag {0}
-\let \margincontentseparator \empty
-\def \margincontentstrutheight {\strutht}
-
-\newcount\margincontentlevel
-\newdimen\margincontentheight
-
-\def\setupinmargin
- {\dodoubleempty\dosetupinmargin}
-
-\def\dosetupinmargin[#1][#2]%
- {\ifsecondargument
- \processcommalist[#1]{\dodosetupinmargin[#2]}% becomes [#2]{##1}
- \else
- \getparameters[\??im][#1]%
- \fi}
-
-% \def\dodosetupinmargin[#1]#2% [settings]{class}
-% {\checkinmargin[#2]%
-% \getparameters[\??im#2][#1]}
-
-\def\dodosetupinmargin[#1]#2% [settings]{class}
- {\checkinmargin[#2]%
- \getparameters[\??im#2][#1]%
- % will become an \everyinmarginsetup thing
- \ifcase\executeifdefined{\??im#2\c!sidemethod}{0}\else
- \enableparpositions
- \fi}
-
-\def\checkinmargin[#1]%
- {\ifundefined{\??im#1\c!offset}% this offset is related to framed !
- \addtocommalist{#1}\inmargintaglist
- \presetmargintext[#1]%
- \fi}
-
-\def\presetmargintext[#1]%
- {\presetlocalframed
- [\??im#1]%
- \getparameters
- [\??im#1]
- [\c!frame=\v!off,
- \c!offset=\v!overlay,
- \c!line=1,
- \c!separator=,
- \c!width=\v!broad,
- \c!distance=, % empty = signal
- \c!hoffset=\zeropoint,
- \c!style=\@@imstyle,
- \c!color=\@@imcolor,
- \c!strut=\@@imstrut,
- \c!location=\@@imlocation,
- \c!align=\@@imalign,
- \c!before=\@@imbefore,
- \c!after=\@@imafter]}
-
-\newdimen\naturalmargincontentheight
-
-\def\makemargintextblock#1#2#3% width l r content
- {\bgroup
- \forgetall % added, else problems with 'center' and nested itemize
- \dontcomplain
- \hsize\getvalue{\??im#1\c!width}\relax
- \doifnumberelse\margincontenttag
- {\ifcase\margincontenttag\relax
- \edef\margincontenttag{#1}% first one is setups id as well
- \fi}
- \donothing
- \doifnumberelse\margincontenttag
- {\ifnum\margincontenttag>25 % to be translated
- \writestatus\m!systems{potential margin stack overflow (\margincontenttag)}%
- \fi}
- \donothing
- % we need to preserve {a,b,c} kind of settings
- \let\margincontentalign#1%
- \processallactionsinset
- [\getvalue{\??im\margincontenttag\c!align}]
- [ \v!yes=>\let\margincontentalign#1,
- \v!no=>\let\margincontentalign\v!normal,
- \v!inner=>\let\margincontentalign#1,
- \v!outer=>\let\margincontentalign#2,
- \v!left=>\let\margincontentalign\v!left,
- \v!middle=>\let\margincontentalign\v!middle,
- \v!right=>\let\margincontentalign\v!right]%
- \doifvaluesomething{\??im\margincontenttag\c!align} % watch {} around set
- {\edef\margincontentalign{{\getvalue{\??im\margincontenttag\c!align},\margincontentalign}}}%
- %
- \expanded{\getparameters[\??im\margincontenttag][\c!align=\margincontentalign]}%
- %
- \edef\margincontentstrut{\getvalue{\??im\margincontenttag\c!strut}}%
- \savestrut %
- \setbox\scratchbox\vbox\localframed
- [\??im\margincontenttag]
- [\c!strut=\v!no,\c!offset=\v!overlay] % strut handled internally
- {\decrement\margincontentlines
- \dorecurse\margincontentlines{\savedstrut\endgraf\nointerlineskip}% ! savedstrut
- \@@imbefore
- \dostartattributes{\??im\margincontenttag}\c!style\c!color\empty
- \dosetupstrut[\margincontentstrut]% was: \setstrut % yes or no
- \begstrut#3\endstrut\endgraf
- \xdef\margincontentstrutheight{\the\strutht}% so that it's known outside the framed
- \dostopattributes
- \@@imafter}%
- \global \naturalmargincontentheight\ht\scratchbox
- \global\advance\naturalmargincontentheight\dp\scratchbox
- \doif\@@imstack\v!yes
- {\def\overlappingmargin{-20\scaledpoint}% test value, maybe .25\strutboxdp, maybe configurable
- \setbox\scratchbox\vbox{\stackeddown\vbox{\box\scratchbox}}}% new
- \ht\scratchbox\strutht
- \dp\scratchbox\strutdp % nieuw
- \box\scratchbox
- \egroup}
-
-%D The stacker permits constructs like:
-%D
-%D \starttyping
-%D \setupinmargin[stack=yes]
-%D
-%D \inleft{test 1}test\break
-%D \inleft{test 2}test\break
-%D \inleft{test 1}
-%D \input tufte
-%D \inleft{test 1}
-%D \inleft{test 2}
-%D \inleft{test 3}
-%D \input tufte
-%D \inleft{test 1}
-%D \inleft{test 2\endgraf test 3}
-%D \inleft{test 4}
-%D \input tufte
-%D \inleft{test 1}
-%D \inleft{test 2\endgraf test 3}
-%D \inleft{test 4\endgraf test 5\endgraf test 6}
-%D \inleft{test 7\endgraf test 8\endgraf test 9}
-%D \input tufte
-%D \stoptyping
-
-%D This approach permits us to implement a better mechanism
-%D later. We need the \type {\graphicvadjust} in order to
-%D handle:
-%D
-%D \starttyping
-%D \inleft{test} {\red \dorecurse{40}{test }\par}
-%D {\red \inleft{test} \dorecurse{40}{test }\par}
-%D \stoptyping
-%D
-%D The outer margin color is either black or color set as
-%D main text color.
-
-\newif\ifrightmargin % documenteren
-
-\ifx\dopositionmarginbox\undefined
- \def\dopositionmarginbox#1{\graphicvadjust{\box#1}}
-\fi
-
-% watch out, margin dimensions are swapped locally (\swapmargins)
-
-% with \margincontentmethod one can control pagebreaks
-%
-% 0 no break
-% 1 each entry is one line
-% 2 only natural height
-% 3 also stack height
-
-\chardef\margincontentmethod \plusthree % beware: 1 = old method
-\chardef\marginpagecheckmethod\plusone
-
-\def\margincontentextralines{1} % old method, play safe
-\def\nofmargincontentlines {0}
-
-\def\doplacemargintext#1#2#3#4%
- {\dontcomplain
- \strut
- \doifsomething{#1}
- {\def\margincontenttag{#1}}%
- \doifinsetelse{\margincontenttag}{\v!left,\v!right} % ugly hack
- {\let \margincontentdistance \empty % signal
- \let \margincontenthoffset \zeropoint}
- {\edef\margincontentdistance{\executeifdefined{\??im\margincontenttag\c!distance }\empty }% signal
- \edef\margincontenthoffset {\executeifdefined{\??im\margincontenttag\c!hoffset }\zeropoint}}%
- \edef\margincontentlines {\executeifdefined{\??im\margincontenttag\c!line }\plusone }%
- \edef\margincontentseparator {\executeifdefined{\??im\margincontenttag\c!separator}\donothing}%
- \setbox\scratchbox\hbox{#4}% % todo: make sure that color stack works
- \ifcase\margincontentmethod
- \scratchdimen\zeropoint
- \or % old method
- \scratchdimen\ht\scratchbox
- \advance\scratchdimen\dp\scratchbox
- \or
- \scratchdimen\naturalmargincontentheight
- \or
- \scratchdimen\naturalmargincontentheight
- \ifx\laststackvmove\undefined\else\global\advance\scratchdimen\laststackvmove\fi
- \fi
- \ifdim\scratchdimen>\margincontentheight
- \global\margincontentheight\scratchdimen
- \fi
- \setbox\scratchbox\hbox
- {#2{\hskip#3\strut
- \ifcase\margincontentdisplacement
- % normal, move strutheight up
- \scratchdimen\strutdp
- \advance\scratchdimen \margincontentstrutheight
- \advance\scratchdimen -\strutht
- \raise\scratchdimen
- \or
- % low, obey vadjust
- \fi
- \box\scratchbox}}%
- \ht\scratchbox\zeropoint
- \dp\scratchbox\zeropoint
- \gdef\margincontentstrutheight{\the\strutht}%
- %\graphicvadjust{\box\scratchbox}} % fails in high math lines, let it be
- %\hbox{\lower\strutdp\box\scratchbox}} % alas, wrong lapping, therefore useless
- \dopositionmarginbox\scratchbox}
-
-% \def\domarginblockskip#1%
-% {\hskip\margincontenthoffset
-% \hskip\compensatedinnermakeupmargin\relax
-% \doifelsenothing\margincontentdistance
-% {\hskip\getvalue{\??im#1\c!distance}}
-% {\hskip\margincontentdistance}%
-% \relax}
-
-\def\domarginblockskip#1%
- {\doifelsenothing\margincontentdistance
- {\hskip\dimexpr
- +\margincontenthoffset
- +\compensatedinnermakeupmargin
- +\csname\??im#1\c!distance\endcsname
- \relax}
- {\dimexpr
- +\margincontenthoffset
- +\compensatedinnermakeupmargin
- +\margincontentdistance
- \relax}%
- \relax}
-
-\def\doleftmarginblock#1#2%
- {\doplacemargintext{#1}\llap\zeropoint
- {\llap{\placemargincontentseparator}%
- \makemargintextblock\v!left\v!right{#2}%
- \domarginblockskip\v!left}}
-
-\def\dorightmarginblock#1#2%
- {\doplacemargintext{#1}\rlap\hsize
- {\hskip\textwidth\hskip-\hsize % new: hsize correction
- \domarginblockskip\v!right
- \makemargintextblock\v!right\v!left{#2}%
- \rlap{\placemargincontentseparator}}}
-
-\def\placemargincontentseparator
- {\ifnum\margincontentlevel>\zerocount
- \ifx\margincontentseparator\empty\else
- \bgroup
- \scratchdimen\margincontentlines\lineheight
- \advance\scratchdimen -\lineheight
- \lower\scratchdimen\hbox{\margincontentseparator}%
- \egroup
- \fi
- \fi}
-
-\newbox\marginconstructbox
-
-\def\doinmarginswapped#1#2#3#4%
- {\iffirstsidefloatparagraph\nowhitespace\fi % zo laat mogelijk
- \setbox\marginconstructbox\hbox\bgroup % prevents page break in the middle of construction
- \startsignalrightpage
- \doifswappedrightpageelse
- {\rightmargintrue #2}
- {\rightmarginfalse#1}
- {#3}% setups
- {#4}% content
- \stopsignalrightpage
- \egroup
- \unhbox\marginconstructbox}
-
-% history made this a bit complicated, the +/- was needed before
-% we had enough mem/hash to do the page correction
-
-\edef\inmargintaglist{+,-,\v!low,\v!left,\v!right,\v!inner,\v!outer}
-
-% the old one:
-%
-% \def\doinmargin[#1][#2][#3][#4][#5]% #6 #7
-% {\doifcommonelse{+,-,\v!laag}{#4}
-% {\dodoinmargin[#1][#2][#3][#4][#5]}
-% {\dodoinmargin[#1][#2][#3][][#4]}}
-%
-% an alternative:
-%
-% \letvalue{\??im\v!laag\c!offset}\empty
-% \letvalue{\??im +\c!offset}\empty
-% \letvalue{\??im -\c!offset}\empty
-%
-% \def\doinmargin[#1][#2][#3][#4][#5]% #6 #7
-% {\doifnumberelse{#4}
-% {\dodoinmargin[#1][#2][#3][#4][#5]}
-% {\doifdefinedelse{\??im#4\c!offset}
-% {\dodoinmargin[#1][#2][#3][#4][#5]}
-% {\dodoinmargin[#1][#2][#3][][#4]}}}
-%
-% the problem is that we need to keep downward compatibility
-% with respect to the first argument thing a reference or a
-% directive; the alternative is to force users to pass a
-% directive along with a reference; anyhow, as long as one
-% does not use references that have the same name as a
-% directive we can use the (slow) alternative
-
-\def\doinmargin[#1][#2][#3][#4][#5]% #6 #7
- {\expanded{\doifinsetelse{#4}{\inmargintaglist}}
- {\dodoinmargin[#1][#2][#3][#4][#5]}
- {\dodoinmargin[#1][#2][#3][][#4]}}
-
-\def\defineinmargin
- {\doquadrupleempty\dodefineinmargin}
-
-\def\dodefineinmargin[#1][#2][#3][#4]%
- {\doifassignmentelse{#4}
- {\setupinmargin[#1][#4]%
- \setvalue{#1}{\indentation\doquintupleempty\doinmargin[#2][#3][#1]}}
- {\setvalue{#1}{\indentation\doquintupleempty\doinmargin[#2][#3][#4]}}}
-
-\defineinmargin [inleft] [\v!left] [\v!normal] % takes left settings
-\defineinmargin [inright] [\v!right] [\v!normal] % takes right settings
-\defineinmargin [ininner] [\v!inner] [\v!normal] % takes left/right settings
-\defineinmargin [inouter] [\v!outer] [\v!normal] % takes left/right settings
-\defineinmargin [inmargin] [\@@imlocation] [\v!normal] % takes left/right settings
-\defineinmargin [inother] [\@@imlocation] [\v!reverse] % takes left/right settings
-
-\def\inothermargin{\inother}
-
-%D This permits definitions like:
-%D
-%D \starttyping
-%D \defineinmargin [SomePlace] [inner] [normal] [distance=1cm]
-%D \defineinmargin [SomePlace] [inner] [normal] [SomePlace] \setupinmargin[SomePlace][distance=1cm]
-%D \defineinmargin [MyPlace] [inner] [normal] [SomePlace]
-%D \defineinmargin [YourPlace] [inner] [normal] [SomePlace]
-%D \stoptyping
-%D
-%D A torture test:
-%D
-%D \starttyping
-%D \startbuffer
-%D \inleft {\TestLine{red} {l}} test test test \par
-%D \inright {\TestLine{green} {r}} test test test \par
-%D \inmargin {\TestLine{blue} {m}} test test test \par
-%D \inothermargin{\TestLine{yellow} {x}} test test test \par
-%D \ininner {\TestLine{cyan} {i}} test test test \par
-%D \inouter {\TestLine{magenta}{o}} test test test \par
-%D \stopbuffer
-%D
-%D \dorecurse{80}\getbuffer \page
-%D \stoptyping
-%D
-%D and
-%D
-%D \starttyping
-%D \defineinmargin [InOuterA] [outer] [normal] [distance=0cm]
-%D \defineinmargin [InOuterB] [outer] [normal] [distance=1cm]
-%D \defineinmargin [InOuterC] [outer] [normal] [distance=2cm,line=2]
-%D
-%D \startbuffer
-%D \InOuterA{\TestLine{red} {A}} test test test \par
-%D \InOuterB{\TestLine{green}{B}} test test test \par
-%D \InOuterC{\TestLine{blue} {C}} test test test \par
-%D \stopbuffer
-%D
-%D \dorecurse{80}\getbuffer \page
-%D
-%D \dorecurse{10}{\inleft {one} test \inleft {two} test } \page
-%D
-%D \start
-%D \margintext {one} \margintext {two} \input thuan \par
-%D \setupinmargin[1][line=3,distance=1cm]
-%D \margintext [1]{one}
-%D \margintext [2]{two}
-%D \input thuan \page
-%D \stop
-%D
-%D \setupinmargin[3][location=inner,distance=1cm]
-%D \setupinmargin[4][location=outer,distance=2cm]
-%D
-%D % \setupinmargin[left] [line=2]
-%D % \setupinmargin[right][line=2]
-%D
-%D \dorecurse
-%D {10}
-%D {\margintext {\kern3cm\TestLine{blue}{none}}
-%D \margintext[3] {\TestLine{darkgray}{3}}
-%D \margintext[4] {\TestLine{darkgray}{4}}
-%D \margintext[left] {\TestLine{red} {left}}
-%D \margintext[right]{\TestLine{green} {right}}
-%D \margintext[inner]{\TestLine{cyan} {inner}}
-%D \margintext[outer]{\TestLine{magenta} {outer}}
-%D \input thuan \endgraf}
-%D
-%D \dorecurse{10}{\margintext{test\\test\\test} \input thuan \endgraf}
-%D \stoptyping
-
-% Test case:
-%
-% \setuppagenumbering[alternative=doublesided] \setupwhitespace[medium]
-%
-% \placefigure[right]{}{\externalfigure[dummy][width=2cm]}
-% \input tufte \inothermargin{test} \input tufte
-
-% \def\dodoinmargin[#1][#2][#3][#4][#5]#6%
-% {\bgroup
-% \forgetall % otherwise sidefloat problems, added 2005/07/20, maybe dangerous
-% \postponenotes % group is (somehow) needed
-% \doifinsetelse\v!low{#4}
-% {\chardef\margincontentdisplacement\plusone}
-% {\chardef\margincontentdisplacement\zerocount}%
-% \doif\v!reverse{#2}
-% {\swapmacros\dorightmarginblock\doleftmarginblock}%
-% \processaction
-% [#1]
-% [ \v!left=>\let\next\doleftmarginblock, % no swapping
-% \v!right=>\let\next\dorightmarginblock, % no swapping
-% \v!inner=>\def\next{\doinmarginswapped\dorightmarginblock\doleftmarginblock },
-% \v!outer=>\def\next{\doinmarginswapped\doleftmarginblock \dorightmarginblock},
-% \s!unknown=>\ifdoublesided
-% \doifcommonelse{+,-}{#4}
-% {\def\next{\doinmarginswapped\dorightmarginblock\doleftmarginblock }}
-% {\def\next{\doinmarginswapped\doleftmarginblock \dorightmarginblock}}%
-% \else
-% \let\next\doleftmarginblock
-% \fi]%
-% \next{#3}{#6}%
-% \rawpagereference\s!mar{#5}% naar binnen ! ! ! !
-% \flushnotes
-% \egroup % don't forget the group
-% \ignorespaces}
-
-% test first
-%
-% setupsystem[random=1235]
-%
-% \setupinmargin[left][sidemethod=3]
-% \dorecurse{10}{test \fakewords{20}{40} test \inleft{test\\test} test \fakewords{20}{40} \par}
-% \page
-% \setupinmargin[left][sidemethod=4]
-% \dorecurse{40}{test \fakewords{50}{80} test \inleft{test\\test} \par}
-% \page
-
-\def\dodoinmargin[#1][#2][#3][#4][#5]#6%
- {\bgroup
-% \tracingall
- % old stuff, a bit tricky, but now interfaced
- \edef\currentmargincontent{#1}%
- \chardef\marginrepositionmethod\executeifdefined{\??im\currentmargincontent\c!sidemethod }\plusone
- \chardef\margincontentmethod \executeifdefined{\??im\currentmargincontent\c!textmethod }\plusthree
- \chardef\marginpagecheckmethod \executeifdefined{\??im\currentmargincontent\c!splitmethod}\plusone
- % so far
- \forgetall % otherwise sidefloat problems, added 2005/07/20, maybe dangerous
- \postponenotes % group is (somehow) needed
- \doifinsetelse\v!low{#4}
- {\chardef\margincontentdisplacement\plusone}
- {\chardef\margincontentdisplacement\zerocount}%
- \doif\v!reverse{#2}
- {\swapmacros\dorightmarginblock\doleftmarginblock}%
- \processaction
- [#1]
- [ \v!left=>\let\next\doleftmarginblock, % no swapping
- \v!right=>\let\next\dorightmarginblock, % no swapping
- \v!inner=>\def\next{\doinmarginswapped\dorightmarginblock\doleftmarginblock },
- \v!outer=>\def\next{\doinmarginswapped\doleftmarginblock \dorightmarginblock},
- \s!unknown=>\ifdoublesided
- \doifcommonelse{+,-}{#4}
- {\def\next{\doinmarginswapped\dorightmarginblock\doleftmarginblock }}
- {\def\next{\doinmarginswapped\doleftmarginblock \dorightmarginblock}}%
- \else
- \let\next\doleftmarginblock
- \fi]%
- \next{#3}{#6}%
- \rawpagereference\s!mar{#5}% naar binnen ! ! ! !
- \flushnotes
- \egroup % don't forget the group
- \ignorespaces}
-
-% dit zijn voorlopig lokale commando's / vervallen
-%
-% \def\woordinmarge {\indentation\doquintupleempty\doinmargin[\@@implaats][\inleftmargin][\inrightmarge]}
-%
-% \def\woordinlinker {\inleftmargin } % vervallen
-% \def\woordinrechter{\inrechtermarge} % vervallen
-
-% Some day: \definemarking[\v!margetitel]
-
-%D Now come the margin text collectors. The collected content is
-%D flushed at every paragraph by the following macro. Note for
-%D myself: here the location (plaats) is no longer a tag (number).
-
-% gone: \def\doflushmargincontent{\doinmargin[\@@implaats][\v!normaal][]} % + [#1][#2]{#3}}
-
-%D These are now all the same (long ago they had different
-%D implementations, somewhere in Sork time if I remember
-%D right).
-
-\def\margintext {\dodoubleempty\domargincontent}
-\def\marginword {\margintext}
-\def\margintitle{\margintext} % txt mark as well
-
-\newtoks\collectedmargintexts % so .. delayed!
-\chardef\margintextcollected \zerocount
-
-\def\domargincontent[#1][#2]#3% we used to check for #2/#1 being number, no longer now
- {\global\chardef\margintextcollected\plusone
- \edef\margincontenttag{#1}%
- \ifx\margincontenttag\empty
- \global\advance\margincontentlevel\plusone
- \edef\margincontenttag{\number\margincontentlevel}%
- \fi
- \checkinmargin[\margincontenttag]%
- \doglobal \appendetoks
- \noexpand \checkinmargin[\margincontenttag]%
- \noexpand \doinmargin[\executeifdefined{\??im\margincontenttag\c!location}\@@imlocation][\v!normal][\margincontenttag][\margincontenttag][#2]%
- \to \collectedmargintexts
- \doglobal \appendtoks
- {#3}%
- \to \collectedmargintexts}
-
-\let\restoreinterlinepenalty\relax
-
-\def\flushmargincontents % plural
- {\restoreinterlinepenalty % here?
- \ifcase\margintextcollected\else % called quite often, so we
- \expandafter\doflushmargincontents % speed up the \fi scan by
- \fi} % using a \do..
-
-\def\doflushmargincontents % links + rechts
- {\bgroup
- \forgetall
- \global\margincontentheight\zeropoint
- \startsignalrightpage
- \the\collectedmargintexts
- \signalrightpage
- \stopsignalrightpage
- \resetmargincontent
- % dirty tricks
- \ifcase\margincontentmethod
- \donefalse
- \else\ifinsidecolumns % brrrr
- \donetrue % how fuzzy
- \else\ifdim\margincontentheight>\lineheight\relax
- \donetrue % how dirty
- \else
- \donefalse % how needed
- \fi\fi\fi
- \savemargincontentlines
- \ifdone
- \advance\margincontentheight \margincontentextralines\lineheight
- \ifdim\pagegoal>\pagetotal
- \bgroup % preserve \margincontentheight
- \advance\margincontentheight \pagetotal
- \ifdim\margincontentheight>\pagegoal
- \egroup
- \ifcase\marginpagecheckmethod
- % disabled
- \or
- \setmargincontentpenalties
- \or
- % potentially dangerous, maybe better a \goodbreak; the problem is that
- % there can be a penalty there, which we then overload and we also introduce
- % nasty side effects, so, we drop this option
- % \vadjust pre {\page}%
- \fi
- \else
- \egroup
- \fi
- \fi
- \else % We need the above because interlinepenalties overrule vadjusted \nobreaks.
- % a bit dangerous
- \vadjust{\nobreak}%
- \fi
- \egroup}
-
-\def\setmargincontentpenalties
- {\getnoflines\margincontentheight
- \keeplinestogether\noflines}
-
-\def\savemargincontentlines
- {\bgroup
- \advance\margincontentheight \margincontentextralines\lineheight % 1 by default
- \getnoflines\margincontentheight
- \xdef\nofmargincontentlines{\the\noflines}%
- \egroup}
-
-\def\fillupmargincontentlines % etex ! ! !
- {\endgraf
- \begingroup
- \scratchcounter\numexpr\nofmargincontentlines-\prevgraf\relax\relax
- \ifnum\scratchcounter>\zerocount
- \forgetall\dorecurse\scratchcounter{\nobreak\crlf}%
- \fi
- \endgroup}
-
-% Yet undocumented, for a manual flush in for instance headers.
-
-\def\resetmargincontent
- {\global\margincontentlevel\zerocount
- \global\chardef\margintextcollected\zerocount
- \global\collectedmargintexts\emptytoks}
-
-% \def\placemargincontent
-% {\ifcase\margintextcollected\else
-% \bgroup
-% \chardef\graphicvadjustmode\zerocount
-% \doflushmargincontents
-% \egroup
-% \fi}
-%
-% font fix:
-
-\def\placemargincontent
- {\ifcase\margintextcollected\else % was level check
- \bgroup
- \redoconvertfont % !!
- \chardef\graphicvadjustmode\zerocount
- \doflushmargincontents
- \egroup
- \fi}
-
-% For old times sake (i use it in project styles) we provide
-
-\def\placemargintexts {\placemargincontent}
-\def\resetmargetitels {\resetmargincontent}
-\def\margewoordpositie{\margewoord} % obsolete, now no longer range
-
-% but never use them yourself since they may disappear.
-
-\def\oplinker#1%
- {\strut
- \graphicvadjust
- {\dontcomplain
- \setbox\scratchbox\vtop{\forgetall\strut#1}%
- \getboxheight\scratchdimen\of\box\scratchbox
- \vskip-\scratchdimen % waarom stond hier een \ ?
- \box\scratchbox}}
-
-\setupinmargin
- [\c!style=\v!bold,
- \c!color=,
- \c!strut=\v!auto,
- \c!location=\v!both,
- \c!align=\v!inner,
- \c!stack=\v!no,
- \c!before=,
- \c!after=]
-
-\setupinmargin
- [\v!left]
- [\c!distance=\leftmargindistance,
- \c!width=\leftmarginwidth,
- %\c!align=\v!left, % no
- \c!location=\v!left]
-
-\setupinmargin
- [\v!right]
- [\c!distance=\rightmargindistance,
- \c!width=\rightmarginwidth,
- %\c!align=\v!right, % no
- \c!location=\v!right]
-
-% bonus needed when [inner/outer] is used as tag
-
-\setupinmargin[\v!inner][\c!location=\v!inner,\c!align=\v!inner]
-\setupinmargin[\v!outer][\c!location=\v!outer,\c!align=\v!inner]
-
-% more efficient (5K less fotmat file)
-%
-% \letvalue{\??im\v!inner\c!location}\v!inner \letvalue{\??im\v!inner\c!align}\v!inner
-% \letvalue{\??im\v!outer\c!location}\v!outer \letvalue{\??im\v!outer\c!align}\v!inner
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-mis.mkii b/Master/texmf-dist/tex/context/base/mkii/page-mis.mkii
deleted file mode 100644
index a61b2435baf..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-mis.mkii
+++ /dev/null
@@ -1,268 +0,0 @@
-%D \module
-%D [ file=page-mis,
-%D version=2008.11.17, % was part of page-flt.tex / 2000.10.20
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Misc Float Things,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / Misc Float Things}
-
-\unprotect
-
-\newif\ifmargeblokken
-
-\def\dosetupmarginblocks[#1]%
- {\getparameters[\??mb][#1]%
- \doifelse\@@mbstate\v!start
- {\showmessage\m!layouts4\empty
- \margeblokkentrue
- \let\somenextfloat\dosomenextfloat
- \let\startmarginblock\dostartmarginblock
- \let\stopmarginblock\dostopmarginblock}%
- {\showmessage\m!layouts5\empty
- \margeblokkenfalse
- \def\somenextfloat[##1]%
- {\someelsefloat[##1,\v!here]}%
- \let\startmarginblock\dontstartmargeblok
- \let\stopmarginblock\dontstopmargeblok}}
-
-\def\setupmarginblocks
- {\dosingleargument\dosetupmarginblocks}
-
-\newbox\marginbox
-
-\def\dosomenextfloat[#1]%
- {\global\setbox\marginbox\vbox
- {\hsize\@@mbwidth
- \unvcopy\marginbox
- \ifvoid\marginbox\else\expandafter\@@mbinbetween\fi
- \box\floatbox\filbreak}%
- \ifdim\ht\marginbox>\textheight
- \dosavefloatinfo
- \else
- \doinsertfloatinfo
- \fi}
-
-\newbox\preparedmarginbox
-
-\def\reshapemargin
- {\ifdim\ht\preparedmarginbox>\zeropoint
- \beginofshapebox
- \unvbox\preparedmarginbox
- \endofshapebox
- \reshapebox
- {\box\shapebox}%
- \setbox\preparedmarginbox\vbox to \textheight
- {\@@mbtop
- \flushshapebox
- \@@mbbottom}%
- \fi}
-
-\def\plaatsrechtermargeblok
- {\hskip\rightmarginwidth}
-
-\def\plaatslinkermargeblok
- {\hskip\leftmarginwidth}
-
-\def\checkmargeblokken
- {\ifvoid\marginbox\else\docheckmargeblokken\fi}
-
-\def\docheckmargeblokken % erg inefficient
- {\setbox\preparedmarginbox\vbox
- {\forgetall
- \splittopskip\topskip
- \ifvoid\marginbox\else
- \ifdim\ht\marginbox>\textheight
- \vsplit\marginbox to \textheight
- \else
- \unvbox\marginbox
- \fi
- \fi}%
- \reshapemargin
- \setbox\preparedmarginbox\vbox
- {\@@mbbefore\box\preparedmarginbox\@@mbafter}%
- \def\rightmarginbox
- {\def\plaatsrechtermargeblok
- {\setbox\preparedmarginbox\hbox to \rightmarginwidth
- {\@@mbleft\box\preparedmarginbox\@@mbright}%
- \vsmashbox\preparedmarginbox
- \box\preparedmarginbox}}%
- \def\leftmarginbox
- {\def\plaatslinkermargeblok
- {\setbox\preparedmarginbox\hbox to \leftmarginwidth
- {\@@mbright\box\preparedmarginbox\@@mbleft}%
- \vsmashbox\preparedmarginbox
- \box\preparedmarginbox}}%
- \processaction % traag
- [\@@mblocation]
- [ \v!inmargin=>\doifbothsidesoverruled\rightmarginbox\rightmarginbox\leftmarginbox,
- \v!middle=>\doifbothsidesoverruled\rightmarginbox\leftmarginbox\rightmarginbox,
- \v!left=>\leftmarginbox,
- \v!right=>\rightmarginbox,
- \s!unknown=>\setbox\preparedmarginbox\hbox{}]}
-
-\def\dostartmarginblock % 2 maal \vbox ivm \unvbox elders
- {\global\setbox\marginbox\vtop\bgroup\vbox\bgroup
- \hsize\@@mbwidth
- \ifvoid\marginbox\else
- \unvbox\marginbox
- \@@mbinbetween
- \fi
- \setupalign[\@@mbalign]%
- \dostartattributes\??mb\c!style\c!color{}%
- \begstrut\ignorespaces}
-
-\def\dostopmarginblock
- {\unskip\endstrut
- \dostopattributes
- \egroup
- \egroup}
-
-\def\dontstartmargeblok
- {\@@mbbefore
- \bgroup
- \dostartattributes\??mb\c!style\c!color\empty}
-
-\def\dontstopmargeblok
- {\dostopattributes
- \egroup
- \@@mbafter}
-
-\newcounter\nofpostponedblocks
-
-\newif\ifinpostponing
-
-\newevery\everytopofpage\relax
-
-\appendtoks \the\everytopofpage \to\everystarttext
-\appendtoks\global\everytopofpage\emptytoks\to\everystoptext
-
-% \startpostponing [pagenumber] [+pageoffset]
-%
-% \startpostponing[2]
-% PAGE 2 \blank
-% \stoppostponing
-%
-% \startpostponing[+1]
-% PAGE +1 \blank
-% \stoppostponing
-%
-% \startpostponing[+2]
-% PAGE +2 \blank
-% \stoppostponing
-%
-% \starttext \dorecurse{4}{\input tufte \page} \stoptext
-
-\newtoks \postponedpageblocks
-\newcounter\nofpostponedpageblocks
-
-% \ifinpostponing: handhaven, want gebruikt in stijlen ! ! ! ! !
-
-\def\flushpagefloats
- {\doifoddpageelse
- {\ifvoid\collectedleftpagefloats
- \ifvoid\collectedrightpagefloats\else
- \unvbox\collectedrightpagefloats
- \page
- %\the\everytopofpage
- \fi
- \fi}
- {\ifvoid\collectedleftpagefloats\else
- \unvbox\collectedleftpagefloats
- \page
- %\the\everytopofpage
- \fi
- \ifvoid\collectedrightpagefloats\else
- \unvbox\collectedrightpagefloats
- \page
- %\the\everytopofpage
- \fi}%
- \ifvoid\collectedpagefloats\else
- % message
- \unvbox\collectedpagefloats
- \fi}
-
-% \def\flushrestfloats
-% {\doif{\floatsharedparameter\c!cache}\v!no\doflushfloats}
-
-% \let\flushrestfloats\relax
-
-\def\dopostponeblock
- {\bgroup % new may 2004
- \setsystemmode\v!postponing % new may 2004
- \the\everytopofpage
- %\flushrestfloats
- \flushpagefloats
- \donefalse
- \ifinpostponing \else
- \ifcase\nofpostponedblocks \else \donetrue \fi
- \ifcase\nofpostponedpageblocks \else \donetrue \fi
- \fi
- \ifdone
- \bgroup % we need the color/font switch, else problems inside split verbatim
- \setnormalcatcodes % postponing in verbatim
- \pushpostponedpagecolor
- \restoreglobalbodyfont % The \nof-test is
- \global\pagetotal\zeropoint % recently added and
- \global\inpostponingtrue % definitely needed else
- \the\postponedpageblocks % we can loose or disorder
- \dorecurse\nofpostponedblocks % floats; anyhow, this
- {\getbuffer[pbuf-\recurselevel]}% % mechanism is still
- \doflushfloats % new but potential dangerous % suboptimal and needs a
- \doglobal\newcounter\nofpostponedblocks % proper analysis
- \global\inpostponingfalse
- \poppostponedpagecolor
- \egroup
- \fi
- \egroup} % new may 2004
-
-\def\getpostponedblock#1#2%
- {\doif{#1}\realfolio{\getbuffer[rbuf-#2]}} % no \ifnum, avoid \fi
-
-% beware, \dosingleempty conflicts with buffers (feeds back the \par)
-
-\setvalue{\e!start\v!postponing}%
- {\bgroup
- \obeylines
- \doifnextoptionalelse{\egroup\nodostartpostponing}{\egroup\dodostartpostponing}}
-
-\def\nodostartpostponing[#1]%
- {\doglobal\increment\nofpostponedpageblocks
- \bgroup % a little bit of misusing grouping
- \doifinstring{+}{#1}\advance \realpageno#1\relax % ugly but efficient
- \doglobal\appendetoks\noexpand\getpostponedblock
- {\realfolio}{\nofpostponedpageblocks}\to\postponedpageblocks
- \egroup
- \showmessage\m!layouts3\nofpostponedpageblocks
- \dostartbuffer[rbuf-\nofpostponedpageblocks]%
- [\e!start\v!postponing][\e!stop\v!postponing]}
-
-\def\dodostartpostponing
- {\doglobal\increment\nofpostponedblocks
- \showmessage\m!layouts3\nofpostponedblocks
- \expanded{\dostartbuffer[pbuf-\nofpostponedblocks][\e!start\v!postponing][\e!stop\v!postponing]}}
-
-% Setups:
-
-\setupmarginblocks
- [\c!state=\v!start,
- \c!location=\v!inmargin,
- \c!width=\rightmarginwidth,
- \c!style=,
- \c!color=,
- \c!align=,
- \c!left=,
- \c!right=,
- \c!top=,
- \c!inbetween=\blank,
- \c!bottom=\vfill,
- \c!before=,
- \c!after=]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-mul.mkii b/Master/texmf-dist/tex/context/base/mkii/page-mul.mkii
deleted file mode 100644
index bf258abed45..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-mul.mkii
+++ /dev/null
@@ -1,1773 +0,0 @@
-%D \module
-%D [ file=page-mul, % was: core-mul
-%D version=1998.03.15,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Multi Column Output,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / Simple Multi Column}
-
-%D This module is mostly a copy from the original multi column
-%D routine as implemented in \type {core-mul}. When the main
-%D OTR macro's were isolated in modules and column sets were
-%D introduced, this module became part of the OTR modules. As
-%D a result this module is no longer generic. It also needs
-%D an overhaul.
-
-\unprotect
-
-% TO DO !
-
-\let\OTRMULsetvsize \OTRONEsetvsize
-\let\OTRMULsethsize \OTRONEsethsize
-\let\OTRMULdopagecontents \OTRONEdopagecontents
-\let\OTRMULfinalsidefloatoutput\OTRONEfinalsidefloatoutput % ???
-\let\OTRMULflushfloatbox \OTRONEflushfloatbox
-
-\let\OTRMULdosettopinserts \relax
-\let\OTRMULdosetbotinserts \relax
-\let\OTRMULdotopinsertions \relax
-\let\OTRMULdobotinsertions \relax
-\let\OTRMULdosetbothinserts \relax
-\let\OTRMULflushsavedfloats \relax
-
-\let\OTRMULflushsidefloats \forgetsidefloats % \relax
-\let\OTRMULsynchronizesidefloats\forgetsidefloats % \relax
-
-\newtoks \OTRMULoutput
-
-\def\OTRMULgotonextpage
- {\ejectpage}
-
-\def\OTRMULgotonextpageX % will become obsolete
- {\superejectpage}
-
-% check \count<insert> multiplications
-
-% some day try this in balancing routine
-%
-% \ifdim\pagetotal>\pagegoal
-% \eject
-% \else
-% \goodbreak
-% \fi
-
-%D The following macro's implement a multi||column output
-%D routine. The original implementation was based on Donald
-%D Knuth's implementation, which was adapted by Craig Platt to
-%D support balancing of the last page. I gradually adapted
-%D Platt's version to our needs but under certain
-%D circumstances things still went wrong. I considered all
-%D calls to Platt's \type{\balancingerror} as undesirable.
-
-%D This completely new implementation can handle enough
-%D situations for everyday documents, but is still far from
-%D perfect. While at the moment the routine doesn't support
-%D all kind of floats, it does support:
-%D
-%D \startitemize[packed]
-%D \item an unlimitted number of columns
-%D \item ragged or not ragged bottoms
-%D \item optional balancing without \type{\balancingerrors}
-%D \item different \type{\baselineskips}, \type{\spacing},
-%D \type{\topskip} and \type{\maxdepth}
-%D \item left- and right indentation, e.g. within lists
-%D \item moving columns floats to the next column or page
-%D \item handling of floats that are to wide for a columns
-%D \stopitemize
-%D
-%D One could wonder why single and multi||columns modes are
-%D still separated. One reason for this is that \TeX\ is not
-%D suited well for handling multi||columns. As a result, the
-%D single columns routines are more robust. Handling one
-%D column as a special case of multi||columns is posible but at
-%D the cost of worse float handling, worse page breaking,
-%D worse etc. Complicated multi||column page handling should
-%D be done in \cap{DTP}||systems anyway.
-%D
-%D There are three commands provided for entering and leaving
-%D multi||column mode and for going to the next column:
-%D
-%D \interface \type{\beginmulticolumns} \\ \\
-%D \interface \type{\endmulticolumns} \\ \\
-%D \interface \type{\ejectcolumn} \\ \\
-%D
-%D This routines are sort of stand||alone. They communicate
-%D with the rest of \CONTEXT\ by means of some interface
-%D macro's, which we only mention.
-%D
-%D \interface \type{\nofcolumns} \\
-%D the number of columns \\
-%D \interface \type{\minbalancetoplines} \\
-%D the minimum number op balanced top lines \\
-%D \interface \type{\betweencolumns} \\
-%D the stuff between columns \\
-%D \interface \type{\finaloutput{action}{box}} \\
-%D some kind of \type{\pagebody} and \type{\shipout} \\
-%D
-%D \interface \type{\ifbalancecolumns} \\
-%D balancing the colums or not \\
-%D \interface \type{\ifstretchcolumns} \\
-%D ragging the bottom or not \\
-%D
-%D \interface \type{\ifheightencolumns} \\
-%D fix the heigh tor not \\
-%D \interface \type{\fixedcolumnheight} \\
-%D the optional fixed height \\
-%D
-%D \interface \type{\ifinheritcolumns} \\
-%D handle ragging or not \\
-%D \interface \type{\ifr@ggedbottom} \\
-%D use ragged bottoms \\
-%D \interface \type{\ifb@selinebottom} \\
-%D put the bottom line on the baseline \\
-%D \interface \type{\ifnormalbottom} \\
-%D put the bottom line at the baseline \\
-%D
-%D \interface \type{\ifreversecolumns} \\
-%D reverse the order in wich columns are flushed \\
-%D
-%D \interface \type{\usercolumnwidth} \\
-%D the calculated width of a column \\
-%D \interface \type{\columntextwidth} \\
-%D the maximum width of a column \\
-%D \interface \type{\columntextheight} \\
-%D the minimum width of a column \\
-%D
-%D \interface \type{\spacingfactor} \\
-%D the spacing factor \\
-%D \interface \type{\bodyfontsize} \\
-%D the (local) bodyfontsize \\
-%D \interface \type{\openlineheight} \\
-%D the lineheight (including \type{\spacing}) \\
-%D
-%D \interface \type{\EveryBodyFont} \\
-%D communication channel to font switching routines \\
-%D
-%D \interface \type{\global\settopskip} \\
-%D set \type{\topskip} \\
-%D \interface \type{\setvsize} \\
-%D set \type{\vsize} and \type{\pagegoal} \\
-%D \interface \type{\sethsize} \\
-%D set \type{\hsize} \\
-%D
-%D \interface \type{\flushcolumnfloats} \\
-%D push saved column floats (next page) \\
-%D \interface \type{\flushcolumnfloat} \\
-%D push saved column floats (next column) \\
-%D \interface \type{\setcolumnfloats} \\
-%D initialize column floats \\
-%D
-%D \interface \type{\finishcolumnbox} \\
-%D do something special (a hook) \\
-%D \interface \type{\postprocesscolumnpagebox} \\
-%D do something with each columnbox (also a hook) \\
-%D \interface \type{\postprocesscolumnbox} \\
-%D do something with each columnbox (also a hook) \\
-%D \interface \type{\postprocesscolumnline} \\
-%D do something with each columnline (also a hook) \\
-%D \interface \type{\currentcolumn} \\
-%D the current column \\
-%D
-%D These interface macro's are called upon or initialized
-%D by the multi||column macro's.
-
-%D A lot of footnote stuff added!
-
-\def\finalcolumntextwidth {\makeupwidth}
-\def\finalcolumntextheight {\textheight}
-\def\columntextwidth {\makeupwidth}
-\def\columntextheight {\textheight}
-\def\usercolumnwidth {\textwidth}
-\def\columntextoffset {\!!zeropoint}
-
-\def\fixedcolumnheight {\textheight}
-\def\betweencolumns {\hskip\bodyfontsize}
-
-\let\setcolumnfloats \relax % in CONTEXT used for floats
-\let\flushcolumnfloats \relax % in CONTEXT used for floats
-\let\flushcolumnfloat \relax % in CONTEXT used for floats
-\let\finishcolumnbox \relax % in CONTEXT used for backgrounds
-
-% %D In fact, the column height and width are set by means of
-% %D two macro's. One can change their meaning if needed:
-%
-% \def\setcolumntextheight
-% {\def\columntextheight{\teksthoogte}}
-%
-% \def\setcolumntextwidth
-% {\def\columntextwidth{\zetbreedte}}
-
-%D Both macros are redefined in \CONTEXT\ when backgrounds
-%D are applied to columns. The final values are used when
-%D flushing the columns.
-
-\newtoks\singlecolumnout % remove that one
-
-%D It's more convenient to use \type {\columnwidth} instead
-%D of messing around with boxes each time.
-
-\newdimen\columnwidth
-\newdimen\gutterwidth
-
-\def\determinecolumnwidth
- {\bgroup
- \setbox\scratchbox\hbox
- {\setcolumnhsize
- \global\columnwidth\usercolumnwidth
- \global\gutterwidth\intercolumnwidth}%
- \egroup}
-
-%D Going to a new columns is done by means of a
-%D \type{\ejectcolumn}. The following definition does not
-%D always work.
-
-\def\ejectcolumn
- {\goodbreak\showmessage\m!columns2\empty}
-
-%D The next macro should never be called so let's deal with it.
-%D There were several solutions to these kind of errors. First
-%D we check for a good breakpoint before firing up the
-%D multi||column routine (\type{\break} or \type{\allowbreak}).
-%D We do the same at the end of the routine
-%D (\type{\allowbreak}). These allowances are definitely
-%D needed!
-%D
-%D Some on first sight redundant calls to for instance
-%D \type{\setvsize} in the flushing, splitting and balancing
-%D macro's can definitely not be omitted! Some are just there
-%D to handle situations that only few times arise. One of
-%D those can be that the output routine is invoked before
-%D everything is taken care of. This happens when we
-%D flush (part of) the current page with an \type{\unvbox}
-%D with a \type{\pagetotal}~$\approx$ \type{\pagegoal}. One
-%D simply cannot balance columns that are just balanced.
-%D
-%D I hope one never sees the following message. Because it
-%D took me a lot of time to develop the multi||columns
-%D routines, every (although seldom) warning gives me the
-%D creeps!
-
-\def\balancingerror
- {\showmessage\m!columns3\empty
- \finaloutput\unvbox\normalpagebox}
-
-\def\OTRMULsometopsfloat{\showmessage\m!columns4\empty \someherefloat}
-\def\OTRMULsomebotsfloat{\showmessage\m!columns5\empty \someherefloat}
-
-\def\OTRMULsomeherefloat{\OTRONEsomeherefloat}
-
-%D The local column width is available in the dimension
-%D register \type{\localcolumnwidth}, which is calculated as:
-
-\def\setcolumnhsize % beware, this one is available for use in macros
- {\setbox\scratchbox\hbox{\parindent\zeropoint\betweencolumns}%
- \intercolumnwidth\wd\scratchbox
- \localcolumnwidth\columntextwidth
- \advance\localcolumnwidth -\leftskip
- \advance\localcolumnwidth -\rightskip
- % new
- \advance\localcolumnwidth -\colleftskip
- \advance\localcolumnwidth -\colrightskip
- %
- \advance\localcolumnwidth -\nofcolumns\intercolumnwidth
- \advance\localcolumnwidth \intercolumnwidth
- \divide \localcolumnwidth \nofcolumns
- \scratchdimen\columntextoffset
- \multiply\scratchdimen \plustwo
- \advance\localcolumnwidth -\scratchdimen
- \usercolumnwidth\localcolumnwidth
- \hsize\localcolumnwidth} % we don't do it \global
-
-%D Torture test:
-%D
-%D \startbuffer
-%D \startbuffer[b]
-%D \startcolumns
-%D \input tufte
-%D \stopcolumns
-%D \stopbuffer
-%D \typebuffer[b] \getbuffer[b]
-%D
-%D \startbuffer[b]
-%D \startnarrower
-%D \input tufte
-%D \stopnarrower
-%D \stopbuffer
-%D \typebuffer[b] \getbuffer[b]
-%D
-%D \startbuffer[b]
-%D \startcolumns \startnarrower
-%D \input tufte
-%D \stopnarrower \stopcolumns
-%D \stopbuffer
-%D \typebuffer[b] \getbuffer[b]
-%D
-%D \startbuffer[b]
-%D \startnarrower \startcolumns
-%D \input tufte
-%D \stopcolumns \stopnarrower
-%D \stopbuffer
-%D \typebuffer[b] \getbuffer[b]
-%D
-%D \startbuffer[b]
-%D \startcolumns \startnarrower[left]
-%D \input tufte
-%D \stopnarrower \stopcolumns
-%D \stopbuffer
-%D \typebuffer[b] \getbuffer[b]
-%D
-%D \startbuffer[b]
-%D \startnarrower[left] \startcolumns
-%D \input tufte
-%D \stopcolumns \stopnarrower
-%D \stopbuffer
-%D \typebuffer[b] \getbuffer[b]
-%D
-%D \startbuffer[b]
-%D \startnarrower \startcolumns \startnarrower
-%D \input tufte
-%D \stopnarrower\stopcolumns \stopnarrower
-%D \stopbuffer
-%D \typebuffer[b] \getbuffer[b]
-%D
-%D \startbuffer[b]
-%D \startnarrower[left] \startcolumns \startnarrower
-%D \input tufte
-%D \stopnarrower\stopcolumns \stopnarrower
-%D \stopbuffer
-%D \typebuffer[b] \getbuffer[b]
-%D \stopbuffer
-%D
-%D \start
-%D \def\postprocesscolumnline#1{\ruledhbox{\strut\box#1}\hss}
-%D \getbuffer
-%D \stop
-
-%D One should be aware that when font related dimensions are
-%D used in typesetting the in||between material, these
-%D dimensions are influenced by bodyfont switches inside
-%D multi||column mode.
-
-\newdimen\mcscratchdimen
-\newcount\nofcolumnlines
-
-\chardef\multicolumnlinemethod\zerocount % 0: overshoot (old default), 1: tight
-% \chardef\multicolumnlinemethod\plusone
-
-\def\getmulticolumnlines
- {\mcscratchdimen-\columntextoffset
- \multiply\mcscratchdimen \plustwo
- \advance\mcscratchdimen \columntextheight
- \ifdim\precolumnboxheight>\zeropoint
- \advance\mcscratchdimen -\precolumnboxheight
- \fi
- \settotalinsertionheight
- \advance\mcscratchdimen -\totalinsertionheight
- \ifcase\multicolumnlinemethod \getnoflines\mcscratchdimen
- \or \getrawnoflines\mcscratchdimen
- \else \getrawnoflines\mcscratchdimen
- \fi
- % added 30/7/2004
- \ifnum\layoutlines>\zerocount \ifnum\noflines>\layoutlines
- \noflines\layoutlines
- \fi \fi
- \nofcolumnlines\noflines}
-
-\def\multicolumnovershootratio{.5} % {\ifgridsnapping0\else.5\fi}
-
-\def\setcolumnvsize
- {\getmulticolumnlines
- \mcscratchdimen\nofcolumnlines\openlineheight
- \advance\mcscratchdimen \multicolumnovershootratio\openlineheight % collect enough data
- \global\vsize\nofcolumns\mcscratchdimen
- \global\pagegoal\vsize} % let's do it only here
-
-%D It really starts here. After some checks and initializations
-%D we change the output routine to continous multi||column
-%D mode. This mode handles columns that fill the current and
-%D next full pages. The method used is (more or less)
-%D multiplying \type{\vsize} and dividing \type{\hsize} by
-%D \type{\nofcolumns}. More on this can be found in the
-%D \TeX book. We save the top of the current page in box
-%D \type{\precolumnbox}.
-%D
-%D We manipulate \type{\topskip} a bit, just to be shure that
-%D is has no flexibility. This has te be done every time a
-%D font switch takles place, because \type{\topskip} can depend
-%D on this.
-%D
-%D Watch the trick with the \type{\vbox}. This way we get the
-%D right interlining and white space.
-
-\def\beginmulticolumns
- {\par
- \flushnotes
- \xdef\precolumndepth{\the\prevdepth}%
- \begingroup
- % new
- \leftskip1\leftskip
- \rightskip1\rightskip
- \edef\colleftskip {\the\leftskip}%
- \edef\colrightskip{\the\rightskip}%
- \leftskip\zeropoint
- \rightskip\zeropoint
- %
- \dontshowcomposition
- %\setcolumntextwidth\relax
- %\setcolumntextheight\relax
- \widowpenalty\zerocount % is gewoon beter
- \clubpenalty \zerocount % zeker bij grids
- \ifsomefloatwaiting
- \showmessage\m!columns6{\the\savednoffloats}%
- \global\setbox\savedfloatlist\box\floatlist
- \xdef\restoresavedfloats
- {\global\savednoffloats\the\savednoffloats
- \global\setbox\floatlist\box\savedfloatlist
- \global\noexpand\somefloatwaitingtrue}%
- \global\savednoffloats\zerocount
- \global\somefloatwaitingfalse
- \else
- \global\let\restoresavedfloats\relax
- \fi
- \dimen0\pagetotal
- \advance\dimen0 \parskip
- \advance\dimen0 \openlineheight
- \ifdim\dimen0<\pagegoal
- \allowbreak
- \else
- \break % Sometimes fails
- \fi
- \appendtoks\topskip1\topskip\to\everybodyfont
- \the\everybodyfont % ugly here
- \saveinterlinespace % ugly here
- \initializecolumns\nofcolumns
- \hangafter\zerocount
- \hangindent\zeropoint
- \everypar\emptytoks
- \ifdim\pagetotal=\zeropoint \else
- \verticalstrut
- \vskip-\struttotal
- \fi
- \global\savedpagetotal\pagetotal
- \global\singlecolumnout\output
- %\global\output{\global\setbox\precolumnbox\vbox{\unvbox\normalpagebox}}%
- \global\output{\global\setbox\precolumnbox\vbox{\dotopinsertions\unvbox\normalpagebox}}%
- \eject % no \holdinginserts=1, can make footnote disappear !
- \global\precolumnboxheight\ht\precolumnbox
- \global\output{\continuousmulticolumnsout}%
- \setcolumnfloats
- \dohandleallcolumns
- {\global\setbox\currenttopcolumnbox\emptybox}%
- \checkbegincolumnfootnotes
- \activateotr{MUL}{ONE}% todo ! ! ! !
- \let\sethsize\setcolumnhsize
- \let\setvsize\setcolumnvsize
- \sethsize
- \setvsize
- \showcomposition}
-
-%D When we leave the multi||column mode, we have to process the
-%D not yet shipped out part of the columns. When we don't
-%D balance, we simply force a continuous output, but a balanced
-%D output is more tricky.
-
-%D First we try to fill up the page and when all or something
-%D is left we try to balance things. This is another useful
-%D adaption of the ancesters of these macro's. It takes some
-%D reasoning to find out what happens and maybe I'm making
-%D some mistake, but it works.
-%D
-%D Voiding box \type{\precolumnbox} is sometimes necessary,
-%D e.g. when there is no text given between \type{\begin..}
-%D and \type{\end..}. The \type{\par} is needed!
-
-\chardef\multicolumnendsyncmethod\plusone % 1: old sync 2: new sync (cont-loc/project) / may fail ! ! ! !
-
-\def\endmulticolumns
- {%\par
- \ifnum\multicolumnendsyncmethod=\plustwo
- \synchronizeoutput
- \else
- % don't combine these
- \vskip\lineheight
- \vskip-\lineheight % take footnotes into account
- \fi
- \dontshowcomposition
- \doflushcolumnfloat % added recently
- %\doflushcolumnfloats % no, since it results in wrong top floats
- \flushnotes % before start of columns
- \par
- \ifbalancecolumns
- \ifnum\multicolumnendsyncmethod=\plusone
- \global\output{\continuousmulticolumnsout}%
- \goodbreak
- \fi
- \global\output{\balancedmulticolumnsout}%
- \else
- \goodbreak
- \fi
- \eject % the prevdepth is important, try e.g. toclist in
- \prevdepth\zeropoint % columns before some noncolumned text text
- \global\output\singlecolumnout
- \global\output{\the\mainoutput}% % % % % todo
- \ifvoid\precolumnbox\else
- \unvbox\precolumnbox
- \fi
- \global\precolumnboxheight\zeropoint
- \endgroup % here
- \nofcolumns\plusone
- \setvsize % the outer one!
- \synchronizeoutput % new may 2004 / we need to: \pagegoal\vsize
- \checkendcolumnfootnotes
- \dosomebreak\allowbreak
- \restoresavedfloats}
-
-%D Because some initializations happen three times, we
-%D defined a macro for them. Erasing \type{\everypar} is
-%D needed because we don't want anything to interfere.
-
-\def\setmulticolumnsout
- {\everypar\emptytoks
- \dontcomplain
- \settopskip
- \setmaxdepth
- \topskip1\topskip
- \splittopskip\topskip
- \splitmaxdepth\maxdepth
- \boxmaxdepth\maxdepth % dangerous
- \emergencystretch\zeropoint\relax} % sometimes needed !
-
-%D Flushing the page comes to pasting the columns together and
-%D appending the result to box \type{\precolumnbox}, if not
-%D void. I've seen a lot of implementations in which some skip
-%D was put between normal text and multi||column text. When we
-%D don't want this, the baselines can be messed up. I hope the
-%D seemingly complicated calculation of a correction
-%D \type{\kern} is adequate to overcome this. Although not
-%D watertight, spacing is taken into account and even multiple
-%D mode changes on one page go well. But cross your fingers and
-%D don't blame me.
-%D
-%D One of the complications of flushing out the boxes is that
-%D \type{\precolumnbox} needs to be \type{\unvbox}'ed, otherwise
-%D there is too less flexibility in the page when using
-%D \type{\r@ggedbottom}. It took a lot of time before these
-%D kind of problems were overcome. Using \type{\unvbox} at the
-%D wrong moment can generate \type{\balancingerror}'s.
-%D
-%D One can use the macros \type {\maxcolumnheight} and \type
-%D {\maxcolumndepth} when generating material between columns
-%D as well as postprocessing column lines.
-
-\let\maxcolumnheight=\zeropoint
-\let\maxcolumndepth =\zeropoint
-
-\newbox\columnpagebox
-
-\def\setmaxcolumndimensions
- {\let\maxcolumnheight\!!zeropoint
- \let\maxcolumndepth \!!zeropoint
- \dohandleallcolumns
- {\ifdim\ht\currentcolumnbox>\maxcolumnheight
- \edef\maxcolumnheight{\the\ht\currentcolumnbox}%
- \fi
- \ifdim\dp\currentcolumnbox>\maxcolumndepth
- \edef\maxcolumndepth{\the\dp\currentcolumnbox}%
- \fi}}
-
-\chardef\multicolumntopflushmethod\plusone % 0: no correction, 1: correction when topstuff, 2: correction, 3: correction++
-\chardef\multicolumntopalignmethod\plustwo % 0: nothing, 1: force grid, 2: follow grid
-
-\def\flushprecolumnboxnogrid
- {\unvbox\precolumnbox}
-
-\def\flushprecolumnboxongrid
- {\scratchdimen\savedpagetotal
- \advance\scratchdimen -\ht\precolumnbox
- \advance\scratchdimen -\dp\precolumnbox
- \advance\scratchdimen -\topskip
- \box\precolumnbox
- \kern\scratchdimen}
-
-\newconditional\someprecolumncontent
-
-\def\flushcolumnedpage#1%
- {\bgroup
- \ifvoid\precolumnbox
- \setfalse\someprecolumncontent % will be set elsewhere
- \else
- \settrue\someprecolumncontent
-\mkprocessboxcontents\precolumnbox
- \fi
- \forgetall
- \setmulticolumnsout
- \showcomposition
- \setmaxcolumndimensions
- \dohandleallcolumns
- {\mkprocesscolumncontents\currentcolumnbox}%
- \postprocesscolumns
- \dohandleallcolumns % \hbox i.v.m. \showcomposition
- {\global\setbox\currentcolumnbox\hbox to \localcolumnwidth
- {\box\currentcolumnbox}%
- \wd\currentcolumnbox\localcolumnwidth
- \ifheightencolumns
- \ht\currentcolumnbox\fixedcolumnheight
- \fi}%
- \setmaxcolumndimensions
- \overlaycolumnfootnotes
- \setbox\columnpagebox\vbox
- {\hbox to \finalcolumntextwidth
- {\hskip\colleftskip\relax % new, \relax needed
- \ifreversecolumns
- \popsplitproperties % else wrong color stack
- \@EA\dohandlerevcolumns
- \else
- \@EA\dohandleallcolumns
- \fi
- {\finishcolumnbox{\hbox
- {\ifx\finishcolumnbox\relax\else\strut\fi
- \box\currentcolumnbox}}%
- \hfil}%
- \unskip
- \hskip\colrightskip}}% new
- \scratchdimen\zeropoint
- \dohandleallcolumns
- {\ifdim-\ht\currenttopcolumnbox<\scratchdimen
- \scratchdimen-\ht\currenttopcolumnbox
- \fi
- \global\setbox\currenttopcolumnbox\emptybox}%
- \advance\scratchdimen \ht\columnpagebox
- \setbox\scratchbox\hbox to \columntextwidth
- {\vrule
- \!!width\zeropoint
- \!!height\scratchdimen
- \!!depth\dp\columnpagebox
- \dostepwiserecurse2\nofcolumns1{\hfil\betweencolumns}\hfil}%
- \setbox\columnpagebox\hbox
- {\box\columnpagebox
- \hskip-\columntextwidth
- \restoretextcolor{\box\scratchbox}}%
- \postprocesscolumnpagebox % new, acts upon \box\columnpagebox
- \ifconditional\someprecolumncontent
- \settrue\someprecolumncontent
- % next some incredible crappy code
- \ifcase\multicolumntopalignmethod
- \flushprecolumnboxnogrid % not on grid
- \or
- \flushprecolumnboxongrid % force on grid
- \else\ifgridsnapping % somehow this junk fails in pascal
- \flushprecolumnboxongrid % obey grid settings, force on grid
- \else
- \flushprecolumnboxnogrid % ignore grid settings, not on grid
- \fi \fi
- \fi
- \global\precolumnboxheight\zeropoint
- \setvsize
- \dosomebreak\nobreak % hm, only needed when topstuff
- \ifgridsnapping
- \else
- \ifcase\multicolumntopflushmethod
- % sometimes method 1 goes wrong, so we need a way out; best sort this out
- % when we run into it again
- \or
- % \input tufte \startcolumns \showbaselines \input tufte \stopcolumns \input tufte
- \ifconditional\someprecolumncontent
-% \scratchdimen\topskip
-% \advance\scratchdimen -\openstrutheight
-% \nointerlineskip
-% \vskip-\scratchdimen
- \nointerlineskip
- \vskip\dimexpr\openstrutheight-\topskip\relax
- \fi
- \or
-% \scratchdimen\topskip
-% \advance\scratchdimen -\openstrutheight
-% \nointerlineskip
-% \vskip-\scratchdimen
- \nointerlineskip
- \vskip\dimexpr\openstrutheight-\topskip\relax
- \or
- % untested but maybe handy
-% \scratchdimen\topskip
-% \advance\scratchdimen -\openstrutheight
-% \nointerlineskip
-% \vskip-\scratchdimen
-% \vskip-\lineheight
-% \vbox{\strut}%
- \nointerlineskip
- \vskip\dimexpr\openstrutheight-\topskip-\lineheight\relax
- \vbox{\strut}%
- \fi
- \fi
- \prevdepth\openstrutdepth
- \nointerlineskip
- \dp\columnpagebox\zeropoint
- \global\finalcolumnheights\ht\columnpagebox
- \getnoflines\finalcolumnheights
- \global\finalcolumnlines\noflines
- \ifcase#1\else
- % messy correction, we need to rewrite this module (newcolumns)
- \setbox\columnpagebox\vbox
- {\offinterlineskip
- \scratchdimen\ht\columnpagebox
- \advance\scratchdimen\dp\columnpagebox % we probably lost that one already
- \box\columnpagebox
- \vskip-\scratchdimen}%
- \scratchdimen\noflines\openlineheight
- \advance\scratchdimen-\openstrutdepth
- \advance\scratchdimen-\openlineheight
- \advance\scratchdimen\topskip
- \ht\columnpagebox\scratchdimen
- \dp\columnpagebox\openstrutdepth
- % end of mess
- \fi
- \box\columnpagebox
- \egroup}
-
-%D In case one didn't notice, finaly \type{\finishcolumnbox} is
-%D applied to all boxes. One can use these hooks for special
-%D purposes.
-%D
-%D Once upon a time I wanted to manipulate the individual lines
-%D in a column. This feature is demonstrated in the two examples
-%D below.
-%D
-%D \startbuffer
-%D \def\postprocesscolumnline#1% or \postprocesscolumnbox
-%D {\ruledhbox{\box#1}\hss}
-%D
-%D \startcolumns[n=4]
-%D \dorecurse{25}{line: \recurselevel\par}
-%D \stopcolumns
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Here we show the natural width of the lines:
-%D
-%D {\getbuffer}
-%D
-%D The next example does a bit more advanced manipulation:
-%D
-%D \startbuffer
-%D \def\postprocesscolumnline#1%
-%D {\ifodd\currentcolumn
-%D \hfill\unhbox#1\relax
-%D \else
-%D \relax\unhbox#1\hfill
-%D \fi}
-%D
-%D \startcolumns[n=4]
-%D \dorecurse{25}{line \recurselevel\par}
-%D \stopcolumns
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Here we also see an application of \type{\currentcolumn}:
-%D
-%D {\getbuffer}
-%D
-%D This feature is implemented using the reshape macros
-%D presented in \type{supp-box}.
-
-\def\postprocesscolumns
- {\ifx\postprocesscolumnline\undefined \else
- \dohandleallcolumns
- {\global\setbox\currentcolumnbox\vtop
- {\beginofshapebox
- \unvbox\currentcolumnbox
- \unskip\unskip
- \endofshapebox
- \reshapebox
- {\dimen0\ht\shapebox
- \dimen2\dp\shapebox
- \setbox\shapebox\hbox to \hsize
- {\postprocesscolumnline\shapebox}%
- \ht\shapebox\dimen0
- \dp\shapebox\dimen2
- \box\shapebox}%
- \flushshapebox
- \everypar\emptytoks
- \parskip\zeropoint % = \forgetall
- \verticalstrut
- \vskip-\struttotal
- \vfil}}%
- \fi
- \ifx\postprocesscolumnbox\undefined \else
- \dohandleallcolumns
- {\global\setbox\currentcolumnbox\hbox
- {\postprocesscolumnbox\currentcolumnbox}}
- \fi}
-
-%D We default to doing nothing!
-
-\let\postprocesscolumnline =\undefined
-\let\postprocesscolumnbox =\undefined
-\let\postprocesscolumnpagebox=\relax
-
-%D \macros
-%D {reversecolumnstrue}
-%D
-%D We can force the macro that takes care of combining
-%D the columns, to flush them in the revere order. Of
-%D course, by default we don't reverse.
-
-\newif\ifreversecolumns
-
-%D Here comes the simple splitting routine. It's a bit
-%D longer than expected because of ragging bottoms or not.
-%D This part can be a bit shorter but I suppose that I will
-%D forget what happens. The splitting takes some already
-%D present material (think of floats) into account!
-%D
-%D First we present some auxiliary routines. Any material,
-%D like for instance floats, that is already present in the
-%D boxes is preserved.
-
-\def\splitcolumn#1from \box#2to \dimen#3 top \box#4%
- {\bgroup
- \ifdim\ht#4>\zeropoint
- \dimen0\dimen#3\relax
- \dimen2\dimen0
- \advance\dimen0 -\ht#4%
- \columnfootnotecorrection{#1}{\dimen0}%
- \setbox0\vsplit#2 to \dimen0
- \global\setbox#1\vbox to \dimen2
- {\ifgridsnapping
- \dimen0-\openstrutheight
- \advance\dimen0 \topskip
- \vskip\dimen0\copy#4\vskip-\dimen0
- \else
- \unvcopy#4%
- \fi
- \fuzzysnappedbox\unvbox0
- \fakecolumnfootnotes{#1}}%
- \else
- \ifcase\clevernotes
- \global\setbox#1\vsplit#2 to \dimen#3%
- \global\setbox#1\vbox
- {\fuzzysnappedbox\unvbox{#1}}% % or \box ?
- \else
- \columnfootnotecorrection{#1}{\dimen#3}%
- \setbox0\vsplit#2 to \dimen#3%
- \global\setbox#1\vbox to \dimen#3%
- {\fuzzysnappedbox\unvbox0
- \fakecolumnfootnotes{#1}}%
- \fi
- \fi
- \egroup}
-
-\def\splitcurrentcolumn from \box#1to \dimen#2%
- {\splitcolumn\currentcolumnbox from \box#1 to \dimen#2 top \box\currenttopcolumnbox}
-
-\def\splitfirstcolumn from \box#1to \dimen#2%
- {\splitcolumn\firstcolumnbox from \box#1 to \dimen#2 top \box\firsttopcolumnbox}
-
-\def\splitlastcolumn from \box#1to \dimen#2%
- {\global\setbox\lastcolumnbox\vbox
- {\unvcopy\lasttopcolumnbox
- \fuzzysnappedbox\unvbox{#1}%
- \fakecolumnfootnotes\lastcolumnbox}}
-
-%D NEW: still to be documented.
-
-\def\fakecolumnfootnotes#1%
- {\relax
- \ifcase\clevernotes\else
- \ifnum#1=\lastcolumnbox
- \fakenotes
- \fi
- \fi}
-
-\def\columnfootnotecorrection#1#2%
- {\relax
- \ifcase\clevernotes
- % page notes
- \or
- \ifnum#1=\firstcolumnbox\relax
- \calculatetotalclevernoteheight
- \advance#2 -\totalnoteheight
- \fi
- \else
- \ifnum#1=\lastcolumnbox\relax
- \calculatetotalclevernoteheight
- \advance#2 -\totalnoteheight
- \fi
- \fi}
-
-\def\overlaycolumnfootnotes
- {\relax
- \ifcase\clevernotes
- % page notes
- \else
- \checknotepresence
- \ifnotespresent
- % the note box has the depth of the notefont
- % because a column (i.e. first column has no depth,
- % we need to anchor top down)
- \bgroup
- \ifcase\clevernotes\or
- \getmulticolumnlines
- \advance\nofcolumnlines \minustwo
- \scratchdimen\nofcolumnlines\lineheight
- \advance\scratchdimen \topskip
- \setbox0\hbox
- {\lower\scratchdimen\vbox{\placenoteinserts}}%
- \ht0=\openstrutheight % \strutht
- \dp0=\openstrutdepth % \strutdp
- \scratchdimen\ht\firstcolumnbox
- \global\setbox\firstcolumnbox\vbox to \scratchdimen
- {\box\firstcolumnbox
- \vskip-\scratchdimen
- \restoretextcolor{\box0}}%
- \else
- % maybe here also \getmulticolumnlines
- \scratchdimen\ht\firstcolumnbox
- \advance\scratchdimen -\openstrutdepth % \strutdp
- \getnoflines\scratchdimen
- \advance\noflines \minustwo
- \scratchdimen\noflines\lineheight
- \advance\scratchdimen \topskip
- \setbox0\hbox
- {\lower\scratchdimen\vbox{\placenoteinserts}}%
- \ht0=\openstrutheight % \strutht
- \dp0=\openstrutdepth % \strutdp
- \scratchdimen\ht\lastcolumnbox
- \global\setbox\lastcolumnbox\vbox to \scratchdimen
- {\box\lastcolumnbox
- \vskip-\scratchdimen
- \restoretextcolor{\box0}}%
- \fi
- \egroup
- \fi
- \fi}
-
-%D Here comes the routine that splits the long box in columns.
-%D The macro \type{\flushcolumnfloats} can be used to flush
-%D either floats that were present before the multi||column
-%D mode was entered, or floats that migrate to next columns.
-%D Flushing floats is a delicate process.
-
-\def\continuousmulticolumnsout
- {\bgroup
- \forgetall
- \setmulticolumnsout
- \dontshowcomposition
-% \dimen0=\columntextheight
-% \advance\dimen0 -\precolumnboxheight
-% \settotalinsertionheight
-% \advance\dimen0 -\totalinsertionheight
-% \ifgridsnapping % evt altijd, nog testen
-% \getnoflines{\dimen0}
-% \dimen0=\noflines\openlineheight
-% \fi
- \getmulticolumnlines
- \dimen0=\nofcolumnlines\openlineheight
- \dohandleallcolumns
- {\splitcurrentcolumn from \box\normalpagebox to \dimen0}%
- \setbox\restofpage\vbox{\unvbox\normalpagebox}%
- \ifinheritcolumns
- \ifr@ggedbottom % vreemd
- \dohandleallcolumns
- {\global\setbox\currentcolumnbox\vbox to \ht\firstcolumnbox
- {\dimen0\dp\currentcolumnbox
- \unvbox\currentcolumnbox
- \vskip-\dimen0
- \vskip\openstrutdepth % \strutdp
- \prevdepth\openstrutdepth % \strutdp
- \vfill}}%
- \ifbottomnotes \else
- \dimen0\ht\firstcolumnbox
- \fi
- \fi
- \ifn@rmalbottom
- \advance\dimen0 \maxdepth
- \dohandleallcolumns
- {\global\setbox\currentcolumnbox\vbox to \dimen0
- {\unvbox\currentcolumnbox}}%
- \fi
- \ifb@selinebottom
- % the columns are on top of the baseline
- \fi
- \else
- \dohandleallcolumns
- {\global\setbox\currentcolumnbox\vbox to \dimen0
- {\ifstretchcolumns
- \unvbox\currentcolumnbox
- \else
- \unvbox\currentcolumnbox % wel of niet \unvbox ?
- \vfill
- \fi}}%
- \dohandleallcolumns
- {\ht\currentcolumnbox\dimen0}% redundant
- \fi
- \setbox\precolumnbox\vbox{\flushcolumnedpage\zerocount}%
- \finaloutput\box\precolumnbox
- \sethsize
- \setvsize
- \flushcolumnfloats
- \unvbox\restofpage
- % \penalty\outputpenalty % gaat gruwelijk mis in opsommingen
- \egroup}
-
-%D And this is the balancing stuff. Again, part of the routine
-%D is dedicated to handling ragged bottoms, but here we also
-%D see some handling concerning the stretching of columns.
-%D We set \type{\widowpenalty} at~0, which enables us to
-%D balance columns with few lines. The use of \type{\box2} and
-%D \type{\box4} garantees a more robust check when skips are
-%D used.
-
-\def\multicolumnsbalancemax{250} % 100 is too small when floats are involved
-
-\def\balancedmulticolumnsout
- {\bgroup
- \setmulticolumnsout
- \dontshowcomposition
- \widowpenalty\zerocount
- \setbox0\vbox{\unvbox\normalpagebox}%
-\ifdim\ht0>\openlineheight % at least one line
- \ifnum\minbalancetoplines<2 % balance anyway
- \donetrue
- \else % check criterium to available lines
- \getnoflines{\ht0}%
- \divide\noflines \nofcolumns \relax
- \ifnum\noflines<\minbalancetoplines \relax
- \dimen0\ht0
- \advance\dimen0 \ht\firsttopcolumnbox
- \advance\dimen0 \openlineheight \relax % let's play safe
- \ifdim\dimen0>\columntextheight % column exceeding text height
- \donetrue
- \else % it seems to fit
- \donefalse
- \fi
- \else % balance indeed
- \donetrue
- \fi
- \fi
-\else % balancing does not make sense
- \donefalse
-\fi
-\ifdone % start balancing
- %\ifdim\ht0>\openlineheight
- \dimen0\ht0
- \advance\dimen0 \topskip
- \advance\dimen0 -\baselineskip
- \dohandleallcolumns
- {\advance\dimen0 \ht\currenttopcolumnbox}%
- \divide\dimen0 \nofcolumns
- \vbadness\!!tenthousand\relax
- \count255=\zerocount
- \bgroup
- \ifgridsnapping
- \dimen2\lineheight
- \else
- \dimen2=\onepoint % RUBISH
- \dimen2=\spacingfactor\dimen2
- \fi
- \doloop
- {\advance\count255 \plusone
- \global\setbox\restofpage\copy0\relax
- \splitfirstcolumn from \box\restofpage to \dimen0
- \dohandlemidcolumns
- {\splitcurrentcolumn from \box\restofpage to \dimen0}%
- \splitlastcolumn from \box\restofpage to \dimen0
- \setbox2\vbox{\unvcopy\firstcolumnbox}%
- \dimen4\zeropoint
- \dohandleallcolumns
- {\setbox4\vbox
- {\unvcopy\currentcolumnbox
- %rather new, test this on pdftex-z.tex
- \unpenalty\unskip\unpenalty\unskip}% maybe better in main splitter
- %\writestatus{balance}{\the\currentcolumnbox: \the\ht4}%
-% \dimen6\ht4 \ifdim\dimen6>\dimen4 \dimen4=\dimen6 \fi}%
- \ifdim\ht4>\dimen4 \dimen4=\ht4 \fi}%
- \advance\dimen4 -.0005pt % get rid of accurracy problem, pretty new
- \ifnum\count255>\multicolumnsbalancemax\relax
- \exitloop
- \else\ifdim\dimen4>\ht2
- \advance\dimen0 \dimen2\relax
- \else
- \exitloop
- \fi\fi}%
- \dohandleallcolumns
- {\global\setbox\currentcolumnbox\vbox{\unvcopy\currentcolumnbox}}% NIEUW
- \ifnum\count255>\multicolumnsbalancemax\relax
- \showmessage\m!columns7\empty
- \else
- \showmessage\m!columns8{\the\count255\space}%
- \fi
- \egroup
- \ifinheritcolumns
- % We cannot assume that the first column is the tallest, if
- % only because we may have an aborted balance (one line in the
- % first column and a graphic in the second one).
- %
- % \dimen0\ht\firstcolumnbox
- % \dimen2\ht\firstcolumnbox
- %
- \dimen0=\zeropoint
- \dohandleallcolumns
- {\ifdim\ht\currentcolumnbox>\dimen0
- \dimen0=\ht\currentcolumnbox
- \fi}%
- \dimen2\dimen0
- % so far
- \advance\dimen2 -\openlineheight
- \dohandleallcolumns
- {\dimen4\ht\currentcolumnbox
- \dimen6=10\openlineheight % funny value
- \global\setbox\currentcolumnbox\vbox to \dimen0
- {\unvbox\currentcolumnbox
- \ifdim\dimen4>\dimen6
- \ifdim\dimen4<\dimen0
- \ifdim\dimen4>\dimen2
- \vskip\zeropoint % !!
- \else
- \vskip\openlineheight
- \vfill
- \fi
- \else
- \vskip\zeropoint
- \fi
- \else
- \vskip\openlineheight
- \vfill
- \fi}}%
- \else
- \bgroup
- \ifstretchcolumns
- \dimen0\ht\firstcolumnbox
- \dimen2=\bottomtolerance\ht\firstcolumnbox
- \setbox0\vbox{\unvcopy\lastcolumnbox}%
- \advance\dimen0 -\ht0\relax
- \advance\dimen0 -\dp0\relax
- \ifdim\dimen0>\openlineheight\relax
- \ifdim\dimen0>\dimen2\relax
- % \stretchcolumnsfalse % beter goed slecht dan slecht goed
- \showmessage\m!columns9\empty
- \fi
- \fi
- \fi
- \dohandleallcolumns
- {\global\setbox\currentcolumnbox\vbox to \ht\firstcolumnbox
- {\ifstretchcolumns
- \unvbox\currentcolumnbox
- \else
- \box\currentcolumnbox
- \vfill
- \fi}}%
- \egroup
- \fi
- \else
- % a one liner is not properly handled here, so best rewrite the text then
- \showmessage\m!columns{10}\empty
- \global\setbox\firstcolumnbox\vbox{\unvbox0}%
- \fi
- \global\output{\balancingerror}%
- \b@selinebottomtrue % forces depth in separation rule
- \flushcolumnedpage\plusone
- \multicolumnseject
- \egroup}
-
-\def\multicolumnseject
- {%\ifdim\pagetotal>\textheight
- % \eject % new, but wrong as fails on mixed-001.tex (wrong pagetotal at this point)
- %\else
- \allowbreak
- }%\fi}
-
-%D The multicolumn mechanism is incorporated in a \CONTEXT\
-%D interface, which acts like:
-%D
-%D \starttyping
-%D \startcolumns[n=4,balance=no]
-%D some text
-%D \stopcolumns
-%D \stoptyping
-%D
-%D The setup is optional. The default behaviour of columns
-%D can be set up with:
-%D
-%D \starttyping
-%D \setupcolumns
-%D [n=2,
-%D balance=yes]
-%D \stoptyping
-%D
-%D In this case, stretching is according to the way it's
-%D done outside columns (\type{\inheritcolumnstrue}). Also
-%D we can setup the \type{tolerance} within a column, the
-%D \type{distance} between columns and the fixed
-%D \type{height} of a column.
-
-%D Multi||column output: the float routines
-%D
-%D Here come the routines that handle the placement of column
-%D floats. Floats that are to big migrate to the next
-%D column. Floats that are too wide, migrate to the top of the
-%D next page, where they span as much columns as needed.
-%D Floats that are left over from outside the multi||column
-%D mode are flushed first. In macro \type{\finaloutput} the
-%D topfloats that are left from previous text should be set.
-%D
-%D When there are some floats in the queue, we inhibit the
-%D flushing of floats on top of columns. The number of
-%D waiting floats is preswent in \type{\savednoftopfloats} and
-%D is saved. As long as there are floats waiting, the topfloats
-%D are places as if we are outside multi||column mode. This is
-%D neccessary for e.g. multicolumn lists.
-%D
-%D When all those floats are flushed, we switch to the local
-%D flushing routine.
-
-\def\setcolumnfloats
- {\xdef\globalsavednoffloats{\the\savednoffloats}%
- \ifnum\globalsavednoffloats>\zerocount
- \setglobalcolumnfloats
- \else
- \setlocalcolumnfloats
- \fi}
-
-\def\setglobalcolumnfloats
- {\everypar\emptytoks
- \let\flushcolumnfloat\relax
- %\let\doroomfloat\relax
- \let\docheckiffloatfits\relax
- \let\flushcolumnfloats\noflushcolumnfloats}
-
-\def\setlocalcolumnfloats
- {\everypar{\flushnotes\flushcolumnfloat\flushmargincontents\checkindentation}%
- \let\flushcolumnfloat\doflushcolumnfloat
- %\let\doroomfloat\docolumnroomfloat
- \let\docheckiffloatfits\docolumnroomfloat
- \let\flushcolumnfloats\doflushcolumnfloats
- \let\doflushfloats\doflushcolumnfloats % new
- \let\dosetbothinserts\relax
- \let\dotopinsertions\relax}
-
-\def\noflushcolumnfloats
- {\bgroup
- \xdef\localsavednoffloats{\the\savednoffloats}%
- \global\savednoffloats\globalsavednoffloats
- \dotopinsertions
- \xdef\globalsavenoffloats{\the\savednoffloats}%
- \ifnum\globalsavednoffloats=\zerocount
- \setlocalcolumnfloats
- \fi
- \global\savednoffloats\localsavednoffloats
- \egroup}
-
-%D We need to calculate the amount of free space in a columns.
-%D When there is not enough room, we migrate the float to the
-%D next column. These macro's are alternatives (and
-%D look||alikes) of \type{\doroomfloat}. When a float is to
-%D wide, for one column, it is moved to the top of the next
-%D page. Of course such moved floats have to be taken into
-%D account when we calculate the available space. It's a pitty
-%D that such things are no integral part of \TEX.
-
-\def\getcolumnstatus\column#1\total#2\goal#3\\%
- {\dimen0=\ifdim\pagegoal<\maxdimen \pagetotal \else \zeropoint \fi
- \dimen2=\zeropoint
- \count255=\zerocount
- \dimen8=\columntextheight
- \advance\dimen8 -\precolumnboxheight
- \def\dogetcolumnstatus
- {\advance\count255 \plusone
- \advance\dimen2 \ht\currenttopcolumnbox
- \advance\dimen2 \dp\currenttopcolumnbox
- \dimen4\dimen2
- \advance\dimen4 \dimen0
- \dimen6=\count255\dimen8
- \ifdim\dimen4>\dimen6
- \else
- \let\dogetcolumnstatus\relax
- \fi}%
- \dohandleallcolumns{\dogetcolumnstatus}%
- \ifnum\count255=0 \count255=1 \fi
- #1=\count255
- #2=\dimen4
- #3=\dimen6 }
-
-\def\getinsertionheight
- {\ifdim\pagegoal<\maxdimen
- \bgroup
- \dimen0=\columntextheight
- \advance\dimen0 -\pagegoal
- \xdef\insertionheight{\the\dimen0}%
- \egroup
- \else
- \global\let\insertionheight\zeropoint
- \fi}
-
-\def\docolumnroomfloat
- {\ifpostponecolumnfloats
- \global\roomforfloatfalse
- \else\ifnofloatpermitted
- \global\roomforfloatfalse
- \else
- \bgroup
- \getcolumnstatus\column\count255\total\dimen0\goal\dimen2\\%
- \advance\dimen0 2\openlineheight % nog nodig ?
- %\ifnum\count255=\nofcolumns
- % \getinsertionheight
- % %\message{\insertionheight}\wait
- % \advance\dimen0 \insertionheight
- %\fi
- \setbox\scratchbox\vbox % tricky met objecten ?
- {\blank[\@@bkspacebefore]
- \snaptogrid\vbox{\copy\floatbox}}%
- \advance\dimen0 \ht\scratchbox
- \advance\dimen0 .5\lineheight % needed because goal a bit higher
- %\message{column: \the\count255; total: \the\dimen0; goal: \the\dimen2}\wait
- \ifdim\dimen0>\dimen2
- \global\roomforfloatfalse
- \else
- \global\roomforfloattrue
- \fi
- \ifdim\wd\floatbox>\hsize
- \showmessage\m!columns{11}\empty
- \global\roomforfloatfalse
- \fi
- \egroup
- \fi\fi}
-
-%D Flushing one float is done as soon as possible, i.e.
-%D \type{\everypar}. This means that (at the moment)
-%D sidefloats are not supported (overulled)!
-
-\newif\ifflushingcolumnfloats \flushingcolumnfloatstrue
-
-\def\doflushcolumnfloat
- {\ifpostponecolumnfloats\else\ifflushingcolumnfloats\ifprocessingverbatim\else\ifsomefloatwaiting
- \bgroup
- \forgetall
- \let\doflushcolumnfloat\relax
- \getcolumnstatus\column\mofcolumns\total\dimen0\goal\dimen2\\%
- \ifdim\dimen0>\zeropoint
- \dogetfloat
- \ifdim\wd\floatbox>\hsize
- \doresavefloat
- \else
- %\setbox2=\vbox
- % {\blank[\@@bkspacebefore]
- % \snaptogrid\vbox{\copy\floatbox}%
- % \blank[\@@bkspaceafter]
- \setbox2=\vbox
- {\blank[\@@bkspacebefore]
- \snaptogrid\vbox{\copy\floatbox}}%
- \advance\dimen0 \ht2
- \ifdim\dimen0>\dimen2
- \ifnum\mofcolumns<\nofcolumns
- \advance\mofcolumns \plusone
-%% bug %% \edef\currenttopcolumnbox{\getvalue{\@@topcol\the\count255}}%
- \ifdim\ht\currenttopcolumnbox=\zeropoint
- \global\setbox\currenttopcolumnbox\vbox
- {\snaptogrid\vbox{\copy\floatbox}
- \whitespace % nodig ?
- \blank[\@@bkspaceafter]}%
- \dimen4=\ht\currenttopcolumnbox
- \advance\dimen4 \dp\currenttopcolumnbox
- \global\advance\vsize -\dimen4
- \advance\dimen4 -\pagegoal
- \global\pagegoal-\dimen4
- \showmessage\m!columns{12}a%
- \else
- \showmessage\m!columns{12}b%
- \doresavefloat
- \fi
- \else
- \showmessage\m!columns{12}c%
- \doresavefloat
- \fi
- \else
- \ifhmode{\setbox0\lastbox}\fi% waar is die er in geslopen
- \par
- \ifdim\prevdepth<\zeropoint \else % anders bovenaan kolom witruimte
- \nobreak
- \blank[\@@bkspacebefore]
- \nobreak
- \fi
- \flushfloatbox
- \blank[\@@bkspaceafter]
- \fi
- \fi
- \fi
- \egroup
- \fi\fi\fi\fi}
-
-%D This one looks complicated. Upto \type{\nofcolumns} floats
-%D are placed, taking the width of a float into account. This
-%D routine can be improved on different ways:
-%D
-%D \startitemize[intro,packed]
-%D \item taking into account some imaginary baseline, just to
-%D get the captions in line
-%D \item multipass flushing until as many floats are displaced
-%D as possible
-%D \stopitemize
-%D
-%D When handling lots of (small) floats spacing can get worse
-%D because of lining out the columns.
-
-\def\doflushcolumnfloats
- {\ifpostponecolumnfloats\else
- \bgroup
- \forgetall
- \ifsomefloatwaiting
- \dimen8\zeropoint
- \dimen4\zeropoint
- \count0\zerocount % count0 can be used local
- \count2\nofcolumns % count2 can be used local
- \dohandleallcolumns
- {\ifnum\count0>\zerocount % the wide one's reserved space
- \global\setbox\currenttopcolumnbox\vbox
- {\snaptogrid\vbox
- {\copy\currenttopcolumnbox
- \hbox{\vphantom{\copy\floatbox}}}
- \whitespace % nodig ?
- \blank[\@@bkspaceafter]}%
- \else
- \dogetfloat
- \ifdim\wd\floatbox>\finalcolumntextwidth % better somewhere else too
- \global\setbox\floatbox\hbox to \finalcolumntextwidth{\hss\box\floatbox\hss}%
- \fi % otherwise the graphic may disappear
- \ifdim\wd\floatbox>\hsize
- \dimen0\wd\floatbox
- \advance\dimen0 \intercolumnwidth
- \dimen2\hsize
- \advance\dimen2 \intercolumnwidth
- \advance\dimen0 .5pt % hm, why 1
- \advance\dimen2 .5pt % hm, why 2
- \divide\dimen0 \dimen2
- \count0\dimen0
- \advance\count0 \plusone
- \ifnum\count0>\count2
- \doresavefloat
- \count0\zerocount
- \else
- \dimen0=\count0\hsize
- \advance\dimen0 \count0\intercolumnwidth
- \advance\dimen0 -\intercolumnwidth
- \global\setbox\floatbox\hbox to \dimen0
- %{\hss\hbox{\copy\floatbox}\hss}%
- {\processaction[\@@bklocation] % how easy to forget
- [ \v!left=>\copy\floatbox\hss,
- \v!right=>\hss\copy\floatbox,
- \s!default=>\hss\copy\floatbox\hss,
- \s!unknown=>\hss\copy\floatbox\hss]}%
- \fi
- \showmessage\m!columns{13}\empty
- \else
- % \showmessage\m!columns{13}\empty
- \fi
- \ifdim\ht\floatbox>\zeropoint\relax
- \global\setbox\currenttopcolumnbox\vbox
- {\snaptogrid\vbox
- {\copy\currenttopcolumnbox
- \copy\floatbox}
- \whitespace % nodig ?
- \blank[\@@bkspaceafter]}%
- \fi
- \dimen6\ht\currenttopcolumnbox
- \advance\dimen6 \dp\currenttopcolumnbox
- \fi
- \ifdim\dimen4<\ht\currenttopcolumnbox
- \dimen4\ht\currenttopcolumnbox
- \fi
- \advance\dimen8 \dimen6
- \advance\count2 \minusone
- \advance\count0 \minusone }%
- \setvsize
- \global\advance\vsize -\dimen8
- \global\pagegoal\vsize
- \else
- %\doflushfloats % does not snap!
- \fi
- \egroup
- \fi}
-
-%D The next macro can be used to flush floats in the current
-%D stream. No width checking is (yet) done.
-
-\def\insertcolumnfloats
- {\doloop
- {\ifsomefloatwaiting
- \bgroup
- \forgetall
- % no check for width
- \dogetfloat
- \blank[\@@bkspacebefore]
- \snaptogrid\vbox{\copy\floatbox}
- \blank[\@@bkspaceafter]
- \egroup
- \else
- \exitloop
- \fi}}
-
-%D This were the multi||column routines. They can and need to
-%D be improved but at the moment their behaviour is acceptable.
-%D
-%D One inprovement can be to normalize the height of floats
-%D to $n\times$\type{\lineheight} with a macro like:
-%D
-%D \starttyping
-%D \normalizevbox{...}
-%D \stoptyping
-
-% border case, should fit on one page
-%
-% \startcolumns
-%
-% 1 \input tufte \par \plaatsfiguur{}{\omlijnd[breedte=\hsize,hoogte=3cm]{1}}
-% 2 \input tufte \par \plaatsfiguur{}{\omlijnd[breedte=\hsize,hoogte=3cm]{2}}
-% 3 \input tufte \par \plaatsfiguur{}{\omlijnd[breedte=\hsize,hoogte=3cm]{3}}
-%
-% \stopcolumns
-
-\def\setupcolumns
- {\dosingleempty\dosetupcolumns}
-
-\def\dosetupcolumns[#1]%
- {\getparameters[\??kl][#1]%
- \nofcolumns\@@kln\relax
- \processaction
- [\@@klrule]
- [ \v!on=>\let\betweencolumns\linebetweencolumns,
- \v!off=>\let\betweencolumns\spacebetweencolumns,
- \s!default=>\let\betweencolumns\spacebetweencolumns,
- \s!unknown=>\let\betweencolumns\@@klrule]}
-
-\def\linebetweencolumns
- {\bgroup
- \starttextproperties
- \ifdim\@@kldistance>\zeropoint
- \dimen0=\@@kldistance
- \else
- \dimen0=\linewidth
- \fi
- \advance\dimen0 -\linewidth
- \hskip.5\dimen0
- \vrule
- \!!width\linewidth
- \ifb@selinebottom\!!depth\strutdepth\fi
- \hskip.5\dimen0\relax
- \stoptextproperties
- \egroup}
-
-\def\spacebetweencolumns
- {\hskip\@@kldistance}
-
-\presetlocalframed[\??kl]
-
-\def\backgroundfinishcolumnbox
- {\doifinsetelse\@@kloffset{\v!none,\v!overlay}
- {\let\@@kloffset\!!zeropoint}
- {\scratchdimen\@@kloffset
- \advance\scratchdimen -\@@klrulethickness
- \edef\@@kloffset{\the\scratchdimen}}%
- \localframed
- [\??kl]
- [\c!strut=\v!no,
- \c!width=\v!fit,
- \c!height=\v!fit,
- \c!align=]}
-
-\let\restorecolumnsettings\relax
-
-\definecomplexorsimpleempty\startcolumns
-
-\def\complexstartcolumns[#1]% %% \startcolumns
- {\bgroup
- \let\stopcolumns\egroup
- \ifinsidecolumns
- \else
- \setupcolumns[#1]%
- \ifnum\@@kln>1\relax
- \whitespace
- \begingroup
- \doif\@@kloption\v!background
- {\let\finishcolumnbox\backgroundfinishcolumnbox
- \let\columntextoffset\@@kloffset}%
- \ifx\@@klcommand\empty\else
- \let\postprocesscolumnline\@@klcommand
- \fi
- \doifelsenothing\@@klheight
- \heightencolumnsfalse
- \heightencolumnstrue
- \doifelse\@@kldirection\v!right
- \reversecolumnsfalse
- \reversecolumnstrue
- \doifelse\@@klbalance\v!yes
- \balancecolumnstrue
- \balancecolumnsfalse
-\installalign\v!yes {\stretchcolumnstrue \inheritcolumnsfalse}% todo: new key
-\installalign\v!no {\stretchcolumnsfalse\inheritcolumnsfalse}% todo: new key
-\installalign\v!text{\stretchcolumnsfalse\inheritcolumnstrue }%
-\stretchcolumnsfalse
-\inheritcolumnstrue
-\doifsomething\@@klalign{\expanded{\setupalign[\@@klalign]}}%
-% \processaction
-% [\@@klalign]
-% [ \v!yes=>\stretchcolumnstrue
-% \inheritcolumnsfalse,
-% \v!no=>\stretchcolumnsfalse
-% \inheritcolumnsfalse,
-% \v!text=>\stretchcolumnsfalse
-% \inheritcolumnstrue]%
- \nofcolumns=\@@kln
- %
- % probably more is needed, and how about nesting save's
- %
- \savecurrentblank
- \savecurrentwhitespace
- \def\restorecolumnsettings
- {\boxmaxdepth\maxdimen % done elsewhere
- \restorecurrentblank
- \restorecurrentwhitespace}%
- %
- \edef\fixedcolumnheight{\@@klheight}%
- \edef\minbalancetoplines{\@@klntop}%
- \setuptolerance[\@@kltolerance]% %% \startcolumns
- \setupblank[\@@klblank]%
- \ifdim\ctxparskip>\zeropoint\relax
- \setupwhitespace[\@@klblank]%
- \fi
- \def\stopcolumns
- {\endmulticolumns
- \global\insidecolumnsfalse
- \endgroup
- \egroup}%
- \global\insidecolumnstrue
- \beginmulticolumns
- \fi
- \fi}
-
-\installcolumnbreakhandler {MUL} \v!preference
- {\goodbreak}
-
-\installcolumnbreakhandler {MUL} \v!yes
- {\par % todo: since
- {\testrulewidth\zeropoint\ruledvskip\textheight}% we misuse a
- \penalty-200 % side effect
- \vskip-\textheight
- }% bugged : \prevdepth-\thousandpoint} % signals top of column to \blank
-
-%D New: only at start of columns; may change ! Rather
-%D interwoven and therefore to be integrated when the multi
-%D column modules are merged. (moved from cont-new.tex)
-
-\def\setupcolumnspan[#1]%
- {\getparameters[\??ks][#1]}
-
-\presetlocalframed
- [\??ks]
-
-\setupcolumnspan
- [\c!n=2,
- \c!offset=\v!overlay,
- \c!frame=\v!off]
-
-\newbox\columnspanbox \let\postprocesscolumnspanbox\gobbleoneargument
-
-\def\dostartcolumnspan[#1]%
- {\bgroup
- \setupcolumnspan[#1]%
- \forgetall
- \ifinsidecolumns
- \advance\hsize \intercolumnwidth
- \hsize\@@ksn\hsize
- \advance\hsize -\intercolumnwidth
- \fi
- \dowithnextbox
- {\setbox\columnspanbox\flushnextbox
- \ifinsidecolumns\wd\columnspanbox\hsize\fi
- \postprocesscolumnspanbox\columnspanbox
- \scratchdimen\ht\columnspanbox
- \setbox\columnspanbox\hbox % depth to be checked, probably option!
- {\localframed[\??ks][\c!offset=\v!overlay]{\box\columnspanbox}}%
- \ht\columnspanbox\scratchdimen
- \dp\columnspanbox\strutdp
- \wd\columnspanbox\hsize
- \ifinsidecolumns
- \ifnum\@@ksn>1
- \setvsize
- \dohandleallcolumns
- {\ifnum\currentcolumn>\@@ksn\else
- \global\setbox\currenttopcolumnbox=\vbox
- {\ifnum\currentcolumn=1
- \snaptogrid\vbox{\copy\columnspanbox}
- \else
- \snaptogrid\vbox{\vphantom{\copy\columnspanbox}}
- \fi}%
- \wd\currenttopcolumnbox\hsize
- \global\advance\vsize -\ht\currenttopcolumnbox
- \fi}
- \global\pagegoal\vsize
- \else
- \snaptogrid\vbox{\box\columnspanbox}
- \fi
- \else
- \snaptogrid\vbox{\box\columnspanbox}
- \fi
- \endgraf
- \ifvmode\prevdepth\strutdp\fi
- \egroup}
- \vbox\bgroup
- %\topskipcorrection % becomes an option !
- \EveryPar{\begstrut\EveryPar{}}} % also !
-
-\def\startcolumnspan
- {\dosingleempty\dostartcolumnspan}
-
-\def\stopcolumnspan
- {\egroup}
-
-\setupcolumns
- [\c!n=2,
- \c!ntop=1,
- \c!command=,
- \c!direction=\v!right,
- \c!rule=\v!off,
- \c!tolerance=\v!tolerant,
- \c!distance=1.5\bodyfontsize, % influenced by switching
- \c!height=,
- \c!balance=\v!yes,
- \c!align=\v!text,
- \c!blank={\v!line,\v!fixed},
- \c!option=,
- \c!rulethickness=\linewidth,
- \c!offset=.5\bodyfontsize]
-
-%D Undocumented and still under development.
-
-\def\startsimplecolumns
- {\dosingleempty\dostartsimplecolumns}
-
-\def\dostartsimplecolumns[#1]%
- {\bgroup
- \nopenalties
- \getparameters[\??kl]
- [\c!width=\hsize,\c!distance=1.5\bodyfontsize,%
- \c!n=2,\c!lines=0,#1]%
- \let\rigidcolumnlines\@@kllines
- \setrigidcolumnhsize\@@klwidth\@@kldistance\@@kln
- \setbox\scratchbox\vbox\bgroup
- \forgetall} % \blank[\v!disable]
-
-\def\stopsimplecolumns
- {\removebottomthings
- \egroup
- \rigidcolumnbalance\scratchbox
- \egroup}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-not.mkii b/Master/texmf-dist/tex/context/base/mkii/page-not.mkii
deleted file mode 100644
index 7bb9824307c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-not.mkii
+++ /dev/null
@@ -1,72 +0,0 @@
-%D \module
-%D [ file=page-nnt,
-%D version=2002.04.16,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Footnotes,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / Footnotes}
-
-%D Terrible hacks: we need to share save/restore
-
-%D We've moved some footnote handling to a separate page
-%D module. The macros below are used in the single and multi
-%D column page handlers and permit mixed usage of column and
-%D page notes.
-
-\unprotect
-
-\def\checkbegincolumnfootnotes % should happen inside otr
- {\ifcase\clevernotes
- \erasenotebackup
- \else
- \doflushnotes
- \savenotecontent
- \fi
- \savenotedata
- \checknotes}
-
-\def\checkendcolumnfootnotes
- {\restorenotedata % maybe better just \checknotes
- \ifcase\clevernotes\else
- \restorenotecontent
- \fi}
-
-\def\checksinglecolumnfootnotes
- {\checknotes} % njet : \restorenotedata
-
-\newdimen\totalinsertionheight
-
-\def\settotalinsertionheight
- {\calculatetotalnoteheight
- \totalinsertionheight\totalnoteheight
- \addinsertionheight\topins\to\totalinsertionheight
- \addinsertionheight\botins\to\totalinsertionheight}
-
-% hm
-
-\def\checkbegincolumnfootnotes % should happen inside otr
- {\ifcase\clevernotes
- \erasenotebackup
- \else
- \doflushnotes
- \savenotecontent
- \fi
- \savenotedata
- \checknotes}
-
-\def\checkendcolumnfootnotes
- {\restorenotedata
- \ifinsidecolumns
- \ifcase\clevernotes\else
- \restorenotecontent
- \fi
- \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-one.mkii b/Master/texmf-dist/tex/context/base/mkii/page-one.mkii
deleted file mode 100644
index fe4b285cb91..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-one.mkii
+++ /dev/null
@@ -1,659 +0,0 @@
-%D \module
-%D [ file=page-one,
-%D version=2000.10.20,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Default Routine,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / Default Routine}
-
-%D This is just the good old \CONTEXT\ output routine, which
-%D has been there right from the start.
-
-\unprotect
-
-% OTRONE: basic single column
-
-\activateotr{ONE}{} % the default one
-
-\newtoks\OTRONEoutput
-
-\def\OTRONEgotonextpage
- {\ejectpage}
-
-\def\OTRONEgotonextpageX % will become obsolete
- {\superejectpage}
-
-\def\OTRONEsethsize
- {\global\hsize\textwidth}
-
-% keep (original one)
-%
-% \def\OTRONEsetvsize
-% {\ifdim\vsize=\teksthoogte \else
-% \bgroup
-% \scratchdimen-\vsize
-% \advance\scratchdimen \teksthoogte
-% \global\advance\vsize \scratchdimen
-% \relax \ifdim\pagegoal<\maxdimen
-% \advance\scratchdimen \pagegoal
-% \global\pagegoal\scratchdimen
-% \fi
-% \egroup
-% \fi}
-%
-% no (keep)
-%
-% \def\OTRONEsetvsize
-% {\ifdim\vsize=\teksthoogte \else
-% \bgroup
-% \scratchdimen-\vsize
-% \advance\scratchdimen \teksthoogte
-% \ifgridsnapping
-% \getrawnoflines\scratchdimen
-% \scratchdimen\noflines\openlineheight
-% \ifdim\scratchdimen>\noflinesheight % available afterwards
-% \advance\scratchdimen-\openlineheight
-% \fi
-% \ifdim\scratchdimen<\zeropoint
-% \scratchdimen\zeropoint
-% \fi
-% \fi
-% \global\advance\vsize \scratchdimen
-% \relax \ifdim\pagegoal<\maxdimen
-% \advance\scratchdimen \pagegoal
-% \global\pagegoal\scratchdimen
-% \fi
-% \egroup
-% \fi}
-
-% \def\OTRONEsetvsize
-% {\ifgridsnapping
-% \ifcase\layoutlines
-% \getrawnoflines\teksthoogte
-% \else
-% \noflines\layoutlines
-% \fi
-% \global\vsize\noflines\openlineheight
-% \else
-% \global\vsize\teksthoogte
-% \fi
-% \ifdim\pagegoal<\maxdimen
-% \global\pagegoal\vsize
-% \fi}
-
-\newdimen\oldvsize
-
-\def\OTRONEsetvsize
- {\ifgridsnapping
- \ifcase\layoutlines
- \getrawnoflines\textheight
- \else
- \noflines\layoutlines
- \fi
- \global\vsize\noflines\openlineheight
- \else
- \global\vsize\textheight
- \fi
- \ifdim\pagegoal<\maxdimen
- \ifdim\oldvsize=\vsize
- % let's assume that the layout didn't change
- \else
- \bgroup
- \global\oldvsize\vsize
- \advance\vsize-\topinserted
- \advance\vsize-\botinserted
- \global\pagegoal\vsize
- \egroup
- \fi
- \fi}
-
-\chardef\kindofpagetextareas=2 % whole page (public variable! never change)
-
-\def\OTRONEregisteredtextarea#1%
- {\ifregistertextareas
- \setbox0\vbox{#1}%
- \wd0\makeupwidth % somehow a space creeps in
- \vbox{\registeredtextarea000}%
- \else
- #1%
- \fi}
-
-% \chardef\kindofpagetextareas\plusone
-
-\def\doOTRONEregisteredtextareaA#1%
- {\ifregistertextareas
- \xypos{pbd:\realfolio:b}% we could save bytes by only saving the y
- \endgraf
- \begingroup
- \scratchdimen\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 (experimental)
- \let\OTRONEregisteredtextareaA\doOTRONEregisteredtextareaA
- \or % whole page (default)
- \let\OTRONEregisteredtextareaB\doOTRONEregisteredtextareaB
- \or % partial page (only works well with no stretch!)
- \let\OTRONEregisteredtextareaA\doOTRONEregisteredtextareaB
- \fi
- \setbox0\vbox \ifbottomnotes to \textheight \fi
- {\edef\currentpagedepth{\the\dp#2}% still to be derived from #1
- \dotopinsertions
- \ifgridsnapping
- \OTRONEregisteredtextareaA{#1#2}%
- \vskip-\currentpagedepth\vskip\openstrutdepth
- \pushproperties % moved from just after #1#2
- \prevdepth\openstrutdepth
- \dobotinsertions
- \vfil
- \else\ifr@ggedbottom
- \OTRONEregisteredtextareaA{#1#2}%
- \vskip-\currentpagedepth\vskip\openstrutdepth
- \pushproperties % moved from just after #1#2
- \prevdepth\openstrutdepth
- \dobotinsertions
- \vfil
- \else\ifb@selinebottom
- \OTRONEregisteredtextareaA{#1#2}%
- \kern-\currentpagedepth\kern\maxdepth
- \pushproperties % moved from just after #1#2
- \dobotinsertions
- \else
- \OTRONEregisteredtextareaA{#1#2}%
- \pushproperties % moved from just after #1#2
- \dobotinsertions % added
- \fi\fi\fi
- \fakepagenotes}% was \fakenotes, but wrong! (check with \setupalign[height])
- \ifbottomnotes
- \ifgridsnapping
-\ifcase\layoutlines % todo: make macro of this
- \getrawnoflines\textheight
-\else
- \noflines\layoutlines
-\fi
-% \getnoflines\textheight
- \advance\noflines \minusone
- \scratchdimen\noflines\lineheight
- \advance\scratchdimen \topskip
- \else
- \scratchdimen\ht0
- \fi
- \else
- \scratchdimen\zeropoint
- \fi
- \setbox2\hbox
- {\checksinglecolumnfootnotes
- \lower\scratchdimen\vbox{\placebottomnotes}}%
- \smashbox2% % needed here
- \ifbottomnotes
- \ht0\zeropoint
- \fi
- \OTRONEregisteredtextareaB
- {\vbox to \textheight
- {\box0\box2\ifbottomnotes\else\vfill\fi}}%
- \egroup}
-
-\def\OTRONEfinalsidefloatoutput
- {\finaloutput\unvbox\normalpagebox}
-
-\OTRONEoutput
- {\sidefloatoutput}
-
-%D Insertions
-
-\newif\iftopofinsert
-
-% \def\OTRONEdosettopinserts
-% {\bgroup
-% \ifsomefloatwaiting
-% \noffloatinserts\zerocount
-% \let\totaltopinserted\!!zeropoint
-% \OTRONEdodosettopinserts
-% \ifnum\@@bknbottom=\zerocount
-% \ifnum\@@bknlines>\zerocount
-% \ifdim\totaltopinserted>\zeropoint\relax
-% \dimen0=\lineheight
-% \dimen0=\@@bknlines\dimen0
-% \advance\dimen0 \totaltopinserted\relax
-% \ifdim\dimen0>\textheight
-% \showmessage\m!floatblocks8\@@bknlines
-% \vfilll\eject
-% \fi
-% \fi
-% \fi
-% \fi
-% \fi
-% \egroup}
-
-\def\OTRONEdosettopinserts
- {\bgroup
- \ifsomefloatwaiting
- \noffloatinserts\zerocount
- \let\totaltopinserted\!!zeropoint
- \OTRONEdodosettopinserts
- \ifnum\@@bknbottom=\zerocount
- \ifnum\@@bknlines>\zerocount
- \ifdim\totaltopinserted>\zeropoint\relax
- \ifdim\dimexpr\@@bknlines\lineheight+\totaltopinserted\relax>\textheight
- \showmessage\m!floatblocks8\@@bknlines
- \vfilll\eject
- \fi
- \fi
- \fi
- \fi
- \fi
- \egroup}
-
-\def\OTRONEdodosettopinserts
- {\ifnum\noffloatinserts<\noftopfloats
- \dogetfloat
- \ifdim\topinserted=\zeropoint
- \topofinserttrue
- \else
- \topofinsertfalse
- \fi
- \global\advance\topinserted\dimexpr\ht\floatbox+\dp\floatbox+\floatbottomskip\relax
- \ifdim\topinserted<\textheight\relax
- \xdef\totaltopinserted{\the\topinserted}%
- \insert\topins
- {\forgetall
- \iftopofinsert
- \topskipcorrection % [xx] new: see icare topbleed
- \kern-\lineskip\par
- \prevdepth\maxdimen
- \else
- %\blank[-\@@bkspaceafter,\@@bkspacebefore]% inserts can't look back
- \betweenfloatblanko
- \fi
- \flushfloatbox
- \blank[\@@bkspaceafter]}%
- \ifsomefloatwaiting
- \advance\noffloatinserts \plusone
- \else
- \noffloatinserts\noftopfloats\relax
- \fi
- \dofloatflushedinfo
- \else
- \doresavefloat
- \noffloatinserts\noftopfloats\relax
- \fi
- \else
- \ifsomefloatwaiting
- \showmessage\m!floatblocks6{\the\noftopfloats}%
- \fi
- \let\OTRONEdodosettopinserts\relax
- \fi
- \OTRONEdodosettopinserts}
-
-\def\OTRONEdosetbotinserts
- {\bgroup
- \ifsomefloatwaiting
- \noffloatinserts\zerocount
- \OTRONEdodosetbotinserts
- \fi
- \egroup}
-
-\def\OTRONEdodosetbotinserts
- {\ifnum\noffloatinserts<\nofbotfloats\relax
- \dogetfloat
- \global\advance\botinserted \ht\floatbox\relax
- \global\advance\botinserted \dp\floatbox\relax
- \global\advance\botinserted \floattopskip\relax
- \ifdim\botinserted<\pagegoal\relax
- \insert\botins
- {\forgetall
- \blank[\@@bkspacebefore]%
- \flushfloatbox}%
- \ifsomefloatwaiting
- \advance\noffloatinserts \plusone
- \else
- \noffloatinserts\nofbotfloats
- \fi
- \dofloatflushedinfo
- \else
- \doresavefloat
- \noffloatinserts\nofbotfloats\relax
- \fi
- \global\nofloatpermittedtrue % vgl topfloats s!
- \else
- \ifsomefloatwaiting
- \showmessage\m!floatblocks7{\the\nofbotfloats}%
- \fi
- \let\OTRONEdodosetbotinserts\relax
- \fi
- \OTRONEdodosetbotinserts}
-
-\def\OTRONEdosetbothinserts
- {\global\topinserted\zeropoint
- \global\botinserted\zeropoint
- \ifflushingfloats \else
- \OTRONEdosettopinserts
- \OTRONEdosetbotinserts
- \ifsomefloatwaiting
- \doif\@@bkcache\v!no\doflushfloats
- \fi
- \fi}
-
-% \def\OTRONEdotopinsertions
-% {\ifvoid\topins\else
-% \ifgridsnapping
-% \box\topins
-% \vskip-\topskip \vskip\strutheight % [xx] new: see icare topbleed
-% \else
-% \unvbox\topins
-% \fi
-% \fi
-% \global\topinserted\zeropoint}
-
-\chardef\topinserttopskipmode=0 % 1 no topskip
-
-\def\OTRONEdotopinsertions
- {\ifvoid\topins\else
- \ifgridsnapping
- \box\topins
- \vskip-\topskip
- \vskip\strutheight % [xx] new: see icare topbleed
- \else
- \ifcase\topinserttopskipmode
- % 0: default, do nothing
- \or
- % 1: no topskip (crossed fingers)
- \vskip-\topskip
- \vskip\strutheight
- \fi
- \unvbox\topins
- \fi
- \fi
- \global\topinserted\zeropoint}
-
-\def\OTRONEdobotinsertions
- {\ifvoid\botins\else
- \ifgridsnapping
- \snaptogrid\hbox{\box\botins}%
- \else
- \unvbox\botins
- \fi
- \fi
- \global\botinserted\zeropoint
- \global\nofloatpermittedfalse}
-
-\def\OTRONEdoflushfloats
- {\global\flushingfloatstrue
- \ifsomefloatwaiting
- \par
- % if kept, then option and definitely off in gridmode ! ! ! !
- % \ifvmode \prevdepth\maxdimen \fi % prevents whitespace; problematic in icare tests
- \OTRONEdodoflushfloats
- \fi
- \global\savednoffloats\zerocount
- \global\somefloatwaitingfalse
- \global\flushingfloatsfalse}
-
-\def\OTRONEflushfloatbox % nog verder doorvoeren en meer info in marge
- {\ifcenterfloatbox \ifdim\wd\floatbox<\hsize
- \setbox\floatbox\hbox to \hsize{\hss\box\floatbox\hss}%
- \fi \fi
- \snaptogrid\hbox{\iftestfloatbox\ruledhbox\fi{\copy\floatbox}}}
-
-\def\OTRONEdodoflushfloats % much in common with OTRSET
- {\ifsomefloatwaiting
- \ifpackflushedfloats
- \centerfloatboxfalse
- \dogetfloat
- \ifdim\wd\floatbox>\makeupwidth
- \global\setbox\floatbox\hbox to \makeupwidth{\hss\box\floatbox\hss}%
- \fi
- \OTRONEsetvsize
- \!!widtha\wd\floatbox
- \dofloatflushedinfo
- \doloop
- {\ifsomefloatwaiting
- \dosavefloatstatus
- \dogetfloat
- \advance\!!widtha 1em % variable
- \advance\!!widtha \wd\floatbox\relax
- \ifdim\!!widtha>\hsize
- \dorestorefloatstatus
- \global\somefloatwaitingtrue
- \exitloop
- \else
- \global\setbox\floatbox\hbox
- {\ifcase\columndirection % nog document wide
- \ifvoid\savedfloatbox\else
- \ifhbox\savedfloatbox\unhbox\else\box\fi\savedfloatbox\hfil
- \fi
- \ifhbox\floatbox\unhbox\else\box\fi\floatbox
- \else
- \ifhbox\floatbox\unhbox\else\box\fi\floatbox
- \ifvoid\savedfloatbox\else
- \hfil\ifhbox\savedfloatbox\unhbox\else\box\fi\savedfloatbox
- \fi
- \fi}%
- \dofloatflushedinfo
- \fi
- \else
- \exitloop
- \fi}%
- \global\setbox\floatbox\hbox to \hsize
- {\hfil\ifhbox\floatbox\unhbox\else\box\fi\floatbox\hfil}%
- \else
- %\bgroup % \box\floatbox can be in use!? messy
- \dogetfloat
- %\doplacefloatbox
- %\egroup
- \dofloatflushedinfo
- \fi
- % there is a chance that due to rounding errors, the float
- % fits on a page where it was first rejected, in which case
- % the prevdepth is -maxdimen and we cannot obey the grid
- \doplacefloatbox
- \expandafter\OTRONEdodoflushfloats
- \fi}
-
-\def\OTRONEdocheckiffloatfits % vervangen ivm downward comp
- {\ifnofloatpermitted
- \global\roomforfloatfalse
- \else
- % new per 31/5/2004, should be an option, only one column mode
- \begingroup
- \scratchdimen\dimexpr\pagetotal+\lineheight\relax
- \ifdim\scratchdimen>\pagegoal
- \goodbreak % hack ? needed in icare-az
- \fi
- % should be an option
- \endgroup
- \dimen0\dimexpr\pagetotal+\ht\floatbox+\dp\floatbox+\floattopskip-\pageshrink\relax
- %\message{c:\the\mofcolumns,t:\the\pagetotal,g:\the\pagegoal}%\wait
- \dimen2\pagegoal
- \relax % needed
- \ifcase\textfloatmethod
- % method 0 : raw
- \or
- % method 1 : safe
- \dimen2 .99\pagegoal
- \or
- % method 2 : tight
- \advance\dimen0 -\onepoint
- \fi
- \relax % really needed ! ! ! !
- \ifdim\dimen0>\dimen2
- \global\roomforfloatfalse
- \else
- \global\roomforfloattrue
- \fi
- \fi}
-
-\def\OTRONEflushsavedfloats
- {\dosetbothinserts}
-
-% TODO: TEST FIRST, NO CORRECTION NEEDED IN GRID MODE, EVT OPTION
-
-\def\OTRONEsomeherefloat[#1]% spacing between two successive must be better
- {\baselinecorrection % not really needed in grid mode:
- %\ifgridsnapping \else \baselinecorrection \fi % ! ! ! test test test ! ! ! !
- \doplacefloatbox
- \doinsertfloatinfo
- \dochecknextindentation\??bk
- \dorechecknextindentation}
-
-% \def\OTRONEsomefixdfloat % [#1]
-% {\docheckiffloatfits
-% \ifroomforfloat\else
-% \goodbreak
-% \fi
-% \showmessage\m!floatblocks9\empty
-% \someherefloat} % [#1]
-%
-% better:
-%
-% \dorecurse{50}
-% {[before normal] \input thuan
-% \placefigure{normal}{\framed[height=1cm,width=8cm]{}}
-% \placefigure{normal}{\framed[height=2cm,width=8cm]{}}
-% [before force] \input thuan
-% \placefigure[force]{force}{\framed[height=8cm,width=8cm]{}}}
-
-\chardef\fixedfloatmethod=3
-
-% \def\OTRONEsomefixdfloat % [#1]
-% {\docheckiffloatfits
-% \ifroomforfloat\else
-% \ifzeropt\pagetotal
-% % let's assume that there is room
-% \else
-% \ifcase\fixedfloatmethod
-% % disabled
-% \or % 1 (old method)
-% \goodbreak
-% \or % 2 (safe method)
-% \page
-% \or % 3 (keeps in stream)
-% \vskip\textheight
-% \vskip-\textheight
-% \or % 4 (also keeps in place)
-% \dosomebreak\nobreak
-% \fi
-% \fi
-% \fi
-% \showmessage\m!floatblocks9\empty
-% \someherefloat} % [#1]
-
-\def\OTRONEsomefixdfloat % [#1]
- {% there is (in mkii) no good way to prevent a break
- % so better fail than mess, we can get loose from
- % heads, so be it
- \showmessage\m!floatblocks9\empty
- \OTRONEsomeherefloat} % [#1]
-
-\def\OTRONEsomesidefloat[#1]% links, rechts NOG TESTEN EN AANPASSEN
- {\ifinsidecolumns
- \someelsefloat[\v!here]%
- \else
- %\checkwaitingfloats{#1}%
- \def\logsidefloat
- {\doinsertfloatinfo}%
- \setbox\floatbox\vbox{\box\floatbox}%
- \wd\floatbox\floatwidth
- \processfirstactioninset
- [#1]
- [ \v!left=>\leftfloat {\box\floatbox},
- \v!right=>\rightfloat {\box\floatbox},
- \v!inleft=>\leftmarginfloat {\box\floatbox},
- \v!inright=>\rightmarginfloat{\box\floatbox},
- \v!leftmargin=>\leftmarginfloat {\box\floatbox},
- \v!rightmargin=>\rightmarginfloat{\box\floatbox},
- \v!leftedge=>\leftedgefloat {\box\floatbox},
- \v!rightedge=>\rightedgefloat {\box\floatbox},
- \v!backspace=>\backspacefloat {\box\floatbox},
- \v!cutspace=>\cutspacefloat {\box\floatbox},
- \v!inmargin=>\cutspacefloat {\box\floatbox}]%
- \doifinset\v!tall{#1}\flushsidefloatsafterpar
- \fi}
-
-\def\OTRONEdosomepagefloat#1[#2]%
- {%\checkwaitingfloats{#1}%
- \global\setbox#1\vbox
- {\unvbox#1%
- \vbox to \textheight
- {\doifnotinset\v!high{#2}\vfill
- \box\floatbox
- \doifnotinset\v!low{#2}\vfill}%
- \goodbreak}%
- \doinsertfloatinfo}
-
-\def\OTRONEsomepagefloat {\OTRONEdosomepagefloat\collectedpagefloats}
-\def\OTRONEsomeleftpagefloat {\OTRONEdosomepagefloat\collectedleftpagefloats}
-\def\OTRONEsomerightpagefloat{\OTRONEdosomepagefloat\collectedrightpagefloats}
-
-\def\OTRONEsometopsfloat[#1]%
- {\ifdim\topinserted=\zeropoint
- \topofinserttrue
- \else
- \topofinsertfalse
- \fi
- \global\advance\topinserted \ht\floatbox
- \global\advance\topinserted \dp\floatbox
- \global\advance\topinserted \floatbottomskip
- \insert\topins
- {\forgetall
- \iftopofinsert
- \topskipcorrection % [xx] new: see icare topbleed
- \kern-\lineskip\par\prevdepth\maxdimen
- \else
- %\blank[-\@@bkspaceafter,\@@bkspacebefore]% inserts can't look back
- \betweenfloatblanko
- \fi
- \flushfloatbox
- \blank[\@@bkspaceafter]}%
- \doinsertfloatinfo}
-
-\def\OTRONEsomebotsfloat[#1]%
- {\global\advance\botinserted \ht\floatbox
- \global\advance\botinserted \dp\floatbox
- \global\advance\botinserted \floattopskip
- \insert\botins
- {\forgetall
- \blank[\@@bkspacebefore]%
- \flushfloatbox}%
- %\global\nofloatpermittedtrue
- \doinsertfloatinfo}
-
-\def\OTRONEsomefacefloat[#1]% untested
- {\startopposite\flushfloatbox\stopopposite}
-
-\def\OTRONEnextcolumn[#1]%
- {}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-par.mkii b/Master/texmf-dist/tex/context/base/mkii/page-par.mkii
deleted file mode 100644
index 9b5e0b6ebfa..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-par.mkii
+++ /dev/null
@@ -1,58 +0,0 @@
-%D \module
-%D [ file=page-par, % copied from page-lin
-%D version=1997.03.31,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Line Numbering,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / Paragraph Numbering}
-
-\unprotect
-
-\newcount\internalparagraphnumber
-
-\def\setupparagraphnumbering
- {\dosingleempty\dosetupparagraphnumbering}
-
-\def\dosetupparagraphnumbering[#1]%
- {\getparameters
- [\??ph][#1]%
- \processaction
- [\@@phstate]
- [\v!start=>\let\showparagraphnumber\doshowparagraphnumberA,
- \v!stop=>\let\showparagraphnumber\relax,
- \v!line=>\let\showparagraphnumber\doshowparagraphnumberB,
- \v!reset=>\global\internalparagraphnumber\zerocount
- \let\showparagraphnumber\doshowparagraphnumberA]}
-
-\def\dodoshowparagraphnumber
- {\global\advance\internalparagraphnumber \plusone
- \inleftmargin % \tf normalizes em
- {\tf{\doattributes\??ph\c!style\c!color{\the\internalparagraphnumber}}%
- \kern\@@phdistance}}
-
-\def\doshowparagraphnumberA
- {\ifprocessingverbatim
- \iflinepar\dodoshowparagraphnumber\fi
- \else
- \dodoshowparagraphnumber
- \fi}
-
-\def\doshowparagraphnumberB
- {\ifnumberinglines
- \doshowparagraphnumberA
- \fi}
-
-\setupparagraphnumbering
- [\c!state=\v!stop,
- \c!style=,
- \c!color=,
- \c!distance=\ifcase\linenumberlocation2em\else\!!zeropoint\fi] % will change
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-plg.mkii b/Master/texmf-dist/tex/context/base/mkii/page-plg.mkii
deleted file mode 100644
index 3c3255f4c70..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-plg.mkii
+++ /dev/null
@@ -1,202 +0,0 @@
-%D \module
-%D [ file=page-pls,
-%D version=2003.03.16,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Page Setup,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\ifx\pageareabox\undefined \else \endinput \fi
-
-\writestatus{loading}{ConTeXt Page Macros / Extra Page Building}
-
-%D This feature has been present for a while but has never been
-%D exploited: pluggable pagebuilders. The next example code
-%D demonstrates the application of one such a plug-in. This variant
-%D support \type {page}, \type {leftpage} and \type {rightpage}
-%D definitions where specific areas are placed with the \type
-%D {\pagearea} command.
-%D
-%D \starttyping
-%D \setupheadertexts[the header text]
-%D \setupfootertexts[a pretty long left footer text][something right]
-%D \setupbottomtexts[a not so long bottom text][another right thing]
-%D \setuptexttexts [margin][something marginal][indeed]
-%D
-%D \startpagelayout[leftpage]
-%D \setupTABLE[offset=overlay]
-%D \setupTABLE[c][1][width=\leftmarginwidth]
-%D \bTABLE
-%D \bTR
-%D \bTD[nx=3,background=color,backgroundcolor=green]
-%D \pagearea[header][text][middle]
-%D \eTD
-%D \eTR
-%D \bTR
-%D \bTD \pagearea[text][margin][left] \eTD
-%D \bTD[nx=2] \pagearea[text] \eTD
-%D \eTR
-%D \bTR
-%D \bTD[nx=3,offset=overlay]
-%D {\bTABLE[width=.5\hsize]
-%D \bTR
-%D \bTD \pagearea[footer][text][left] \eTD
-%D \bTD \pagearea[bottom][text][left] \eTD
-%D \eTR
-%D \eTABLE}
-%D \eTD
-%D \eTR
-%D \eTABLE
-%D \stoppagelayout
-%D
-%D \startpagelayout[rightpage]
-%D \setupTABLE[offset=overlay]
-%D \setupTABLE[c][1][width=\rightmarginwidth]
-%D \bTABLE
-%D \bTR
-%D \bTD[nx=3] \pagearea[header][text][middle] \eTD
-%D \eTR
-%D \bTR
-%D \bTD \pagearea[text][margin][left] \eTD
-%D \bTD[nx=2] \pagearea[text] \eTD
-%D \eTR
-%D \bTR
-%D \bTD[nx=3,offset=overlay]
-%D {\bTABLE[width=.5\hsize]
-%D \bTR
-%D \bTD \pagearea[bottom][text][right] \eTD
-%D \bTD \pagearea[footer][text][right] \eTD
-%D \eTR
-%D \eTABLE}
-%D \eTD
-%D \eTR
-%D \eTABLE
-%D \stoppagelayout
-%D
-%D \setupcolors[state=start]
-%D
-%D \setupbackgrounds[text][background=color,backgroundcolor=blue]
-%D \setupbackgrounds[header][text][background=color,backgroundcolor=red]
-%D
-%D \setuppagenumbering[alternative=doublesided,location=]
-%D
-%D \setuplayout[method=makeup]
-%D
-%D \definetextbackground
-%D [test]
-%D [state=start,
-%D background=color,
-%D backgroundcolor=yellow]
-%D
-%D \starttext
-%D
-%D \dorecurse{10}{\input tufte \par}
-%D
-%D \input tufte \starttest \input tufte \stoptest \input tufte
-%D
-%D \starttabulate
-%D \NC test \NC \starttest \input tufte \stoptest \NC \NR
-%D \stoptabulate
-%D
-%D \dorecurse{10}{\input tufte \par}
-%D
-%D \stoptext
-%D \stoptyping
-
-\unprotect
-
-\setvalue{\??ly\c!method\v!makeup}#1#2%
- {\setbox\pagebox\hbox
- {\vbox to \textheight
- {\offinterlineskip
- % optie
- \vskip\dimexpr-1\topskip+\strutheight\relax
- %
- \textwidth\makeupwidth
- \hsize\textwidth
- \boxmaxdepth\maxdepth
- \noindent
- \dopagecontents#1#2}}%
- \wd\pagebox\makeupwidth
- \ht\pagebox\textheight
- \dp\pagebox\zeropoint
- \hsize\paperwidth
- \vsize\paperheight
- \setbox\pagebox\vbox
- {\doifbothsidesoverruled
- {\let\!!stringa\v!page}
- {\let\!!stringa\v!rightpage}
- {\let\!!stringa\v!leftpage}%
- \getvalue{\??ly\c!method:\!!stringa}}%
- \wd\pagebox\paperwidth
- \ht\pagebox\paperheight
- \dp\pagebox\zeropoint}
-
-\newbox\pageareabox
-
-\def\pagearea
- {\dotripleempty\dopagearea}
-
-\def\dopagearea[#1][#2][#3]%
- {\ifthirdargument
- \doifelse{#3}\v!left
- {\dodopagearea{#1}{#2}\c!lefttext}
- {\doifelse{#3}\v!right
- {\dodopagearea{#1}{#2}\c!righttext}
- {\dodopagearea{#1}{#2}\c!middletext}}%
- \else\ifsecondargument
- \doifbothsidesoverruled
- {\dodopagearea{#1}{#2}\c!righttext}
- {\dodopagearea{#1}{#2}\c!righttext}
- {\dodopagearea{#1}{#2}\c!lefttext }%
- \else
- \doif{#1}\v!text % copy due to trial runs in TABLE
- {\iftrialtypesetting
- \copy\pagebox
- \else
- \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/mkii/page-run.mkii b/Master/texmf-dist/tex/context/base/mkii/page-run.mkii
deleted file mode 100644
index b128c192d87..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-run.mkii
+++ /dev/null
@@ -1,382 +0,0 @@
-%D \module
-%D [ file=page-run,
-%D version=2000.10.20,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Runtime Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / Runtime Macros}
-
-\unprotect
-
-\gdef\doshowprint[#1][#2][#3]%
- {\framed
- [\c!offset=\v!overlay,
- \c!strut=\v!no]
- {\forgetall
- \dontcomplain
- \globaldefs\minusone
- \dimen0\pagegoal
- \definepapersize[X][\c!width=4em, \c!height=6em]%
- \definepapersize[Y][\c!width=12em,\c!height=14em]%
- \setuppapersize[#1,X][#2,Y]%
- \setuplayout[#3]%
- \setbox0\vbox
- {\framed
- [\c!offset=\v!overlay,\c!strut=\v!no,
- \c!width=\paperwidth,\c!height=\paperheight]
- {\ss ABC\par DEF}}%
- \doublesidedfalse
- \def\cutmarklength{.5em}%
- \addpagecutmarks0%
- \replicatepagebox0%
- \scalepagebox0%
- \mirrorpaperbox0%
- \orientpaperbox0%
- \centerpagebox0%
- \mirrorprintbox0%
- \orientprintbox0%
- \offsetprintbox0%
- \pagegoal\dimen0
- \box0}}
-
-\gdef\showprint
- {\dotripleempty\doshowprint}
-
-% \switchnaarkorps[8pt]
-%
-% \startcombinatie[4*4]
-% {\toonprint} {\strut}
-% {\toonprint[][][plaats=midden]} {\type{plaats=midden}}
-% {\toonprint[][][plaats=midden,markering=aan]} {\type{markering=aan}\break
-% \type{plaats=midden}}
-% {\toonprint[][][plaats=midden,markering=aan,nx=2]} {\type{markering=aan}\break
-% \type{plaats=midden}\break
-% \type{nx=2}}
-% {\toonprint[][][plaats=links]} {\type{plaats=links}}
-% {\toonprint[][][plaats=rechts]} {\type{plaats=rechts}}
-% {\toonprint[][][plaats={links,onder}]} {\type{plaats={links,onder}}}
-% {\toonprint[][][plaats={rechts,onder}]} {\type{plaats={rechts,onder}}}
-% {\toonprint[][][nx=2,ny=1]} {\type{nx=2,ny=1}}
-% {\toonprint[][][nx=1,ny=2]} {\type{nx=1,ny=2}}
-% {\toonprint[][][nx=2,ny=2]} {\type{nx=2,ny=2}}
-% {\toonprint[][][nx=2,ny=2,plaats=midden]} {\type{nx=2,ny=2}\break
-% \type{plaats=midden}}
-% {\toonprint[][][rugoffset=3pt]} {\type{rugoffset=.5cm}}
-% {\toonprint[][][kopoffset=3pt]} {\type{kopoffset=.5cm}}
-% {\toonprint[][][schaal=1.5]} {\type{schaal=1.5}}
-% {\toonprint[][][schaal=0.8]} {\type{schaal=0.8}}
-% \stopcombinatie
-%
-% \startcombinatie[3*4]
-% {\toonprint[liggend][][plaats=midden]} {\type{liggend}}
-% {\toonprint[][liggend][plaats=midden]} {\strut\break\type{liggend}}
-% {\toonprint[liggend][liggend][plaats=midden]} {\type{liggend}\break\type{liggend}}
-% {\toonprint[90][][plaats=midden]} {\type{90}}
-% {\toonprint[][90][plaats=midden]} {\strut\break\type{90}}
-% {\toonprint[90][90][plaats=midden]} {\type{90}\break\type{90}}
-% {\toonprint[180][][plaats=midden]} {\type{180}}
-% {\toonprint[][180][plaats=midden]} {\strut\break\type{180}}
-% {\toonprint[180][180][plaats=midden]} {\type{180}\break\type{180}}
-% {\toonprint[gespiegeld][][plaats=midden]} {\type{gespiegeld}}
-% {\toonprint[][gespiegeld][plaats=midden]} {\strut\break\type{gespiegeld}}
-% {\toonprint[gespiegeld][gespiegeld][plaats=midden]} {\type{gespiegeld}\break\type{gespiegeld}}
-% \stopcombinatie
-
-\gdef\doshowframe[#1][#2]%
- {\ifsecondargument
- \setupbackgrounds
- [\v!page]
- [\c!frame=\v!on,
- \c!corner=\v!rectangular,
- \c!frameoffset=\!!zeropoint,
- \c!framedepth=\!!zeropoint,
- \c!framecolor=layout:page]
- \setupbackgrounds
- [#1][#2]
- [\c!background=,
- \c!frame=\v!on,
- \c!corner=\v!rectangular,
- \c!frameoffset=\!!zeropoint,
- \c!framedepth=\!!zeropoint,
- \c!framecolor=]
- \else\iffirstargument
- \showframe
- [\v!header,\v!text,\v!footer]
- [#1]
- \else
- \showframe
- [\v!header,\v!text,\v!footer]
- [\v!leftedge,\v!leftmargin,
- \v!text,
- \v!rightmargin,\v!rightedge]
- \fi\fi
- \setupbackgrounds
- [\c!state=\v!repeat]}
-
-\gdef\showframe{\dodoubleempty\doshowframe}
-
-\gdef\showsetupA#1#2%
- {#1&\PtToCm{\the#2}&\the#2&\tttf\string#2\cr}
-
-\gdef\showsetupB#1#2#3%
- {#1&&#2#3&\tttf\string#3\cr}
-
-% \startinterface english % english is fallback
-
-\gdef\showsetups
- {\noindent
- \vbox
- {\forgetall
- \dontcomplain
- \switchtobodyfont[\v!small]
- \tabskip\zeropoint
- \halign
- {\strut##\quad\hss&##\quad\hss&##\quad\hss&##\hss\cr
- \showsetupA{paperheight} \paperheight
- \showsetupA{paperwidth} \paperwidth
- \showsetupA{printpaperheight} \printpaperheight
- \showsetupA{printpaperwidth} \printpaperwidth
- \showsetupA{topspace} \topspace
- \showsetupA{backspace} \backspace
- \showsetupA{height} \makeupheight
- \showsetupA{width} \makeupwidth
- \showsetupA{top} \topheight
- \showsetupA{topdistance} \topdistance
- \showsetupA{header} \headerheight
- \showsetupA{headerdistance} \headerdistance
- \showsetupA{textheight} \textheight
- \showsetupA{footerdistance} \footerdistance
- \showsetupA{footer} \footerheight
- \showsetupA{bottomdistance} \bottomdistance
- \showsetupA{bottom} \bottomheight
- \showsetupA{leftedge} \leftedgewidth
- \showsetupA{leftedgedistance} \leftedgedistance
- \showsetupA{leftmargin} \leftmarginwidth
- \showsetupA{leftmargindistance} \leftmargindistance
- \showsetupA{textwidth} \textwidth
- \showsetupA{rightmargindistance}\rightmargindistance
- \showsetupA{rightmargin} \rightmarginwidth
- \showsetupA{rightedgedistance} \rightedgedistance
- \showsetupA{rightedge} \rightedgewidth
- \showsetupB{bodyfontsize} \the \globalbodyfontsize
- \showsetupB{line} \relax \normallineheight
- \showsetupB{height} \relax \strutheightfactor
- \showsetupB{depth} \relax \strutdepthfactor
- \showsetupB{topskip} \relax \topskipfactor
- \showsetupB{maxdepth} \relax \maxdepthfactor}}}
-
-% \stopinterface
-
-\startinterface dutch
-
-\gdef\showsetups
- {\noindent
- \vbox
- {\forgetall
- \dontcomplain
- \switchtobodyfont[\v!small]
- \tabskip\zeropoint
- \halign
- {\strut##\quad\hss&##\quad\hss&##\quad\hss&##\hss\cr
- \showsetupA{papierhoogte} \papierhoogte
- \showsetupA{papierbreedte} \papierbreedte
- \showsetupA{printpapierhoogte} \printpapierhoogte
- \showsetupA{printpapierbreedte} \printpapierbreedte
- \showsetupA{kopwit} \kopwit
- \showsetupA{rugwit} \rugwit
- \showsetupA{snijwit} \snijwit
- \showsetupA{hoogte} \zethoogte
- \showsetupA{breedte} \zetbreedte
- \showsetupA{boven} \bovenhoogte
- \showsetupA{bovenafstand} \bovenafstand
- \showsetupA{hoofd} \hoofdhoogte
- \showsetupA{hoofdafstand} \hoofdafstand
- \showsetupA{teksthoogte} \teksthoogte
- \showsetupA{voetafstand} \voetafstand
- \showsetupA{voet} \voethoogte
- \showsetupA{onderafstand} \onderafstand
- \showsetupA{onder} \onderhoogte
- \showsetupA{linkerrand} \linkerrandbreedte
- \showsetupA{linkerrandafstand} \linkerrandafstand
- \showsetupA{linkermarge} \linkermargebreedte
- \showsetupA{linkermargeafstand} \linkermargeafstand
- \showsetupA{tekstbreedte} \tekstbreedte
- \showsetupA{rechtermargeafstand}\rechtermargeafstand
- \showsetupA{rechtermarge} \rechtermargebreedte
- \showsetupA{rechterrandafstand} \rechterrandafstand
- \showsetupA{rechterrand} \rechterrandbreedte
- \showsetupB{korps} \the \globalbodyfontsize
- \showsetupB{regel} \relax \normallineheight
- \showsetupB{hoogte} \relax \strutheightfactor
- \showsetupB{diepte} \relax \strutdepthfactor
- \showsetupB{boven} \relax \topskipfactor
- \showsetupB{onder} \relax \maxdepthfactor}}}
-
-\stopinterface
-
-% todo: \showsetupA{rugwit} \rugwit
-
-\startinterface german
-
-\gdef\showsetups%
- {\noindent
- \vbox
- {\forgetall
- \dontcomplain
- \switchtobodyfont[\v!small]
- \tabskip\zeropoint
- \halign
- {\strut##\quad\hss&##\quad\hss&##\quad\hss&##\hss\cr
- \showsetupA{papierhoehe} \papierhoehe
- \showsetupA{papierbreite} \papierbreite
- \showsetupA{printpapierhoehe} \printpapierhoehe
- \showsetupA{printpapierbreite} \printpapierbreite
- \showsetupA{kopfweite} \kopfweite
- \showsetupA{rumpfweite} \rumpfweite
- \showsetupA{hoehe} \satzhoehe
- \showsetupA{breite} \satzbreite
- \showsetupA{oben} \hoeheoben
- \showsetupA{abstandoben} \abstandoben
- \showsetupA{kopfzeile} \kopfzeilenhoehe
- \showsetupA{kopfzeilenabstand} \kopfzeilenabstand
- \showsetupA{texthoehe} \texthoehe
- \showsetupA{fusszeileabstand} \fusszeileabstand
- \showsetupA{fusszeilen} \fusszeilenhoehe
- \showsetupA{abstandunten} \abstandunten
- \showsetupA{hoeheunten} \hoeheunten
- \showsetupA{linkerrand} \breitelinkerrand
- \showsetupA{abstandlinkerrand} \abstandlinkerrand
- \showsetupA{linkemarginal} \linkemarginalbreite
- \showsetupA{linkemarginalafstand} \linkemarginalafstand
- \showsetupA{textbreite} \textbreite
- \showsetupA{rechtemarginalafstand}\rechtemarginalafstand
- \showsetupA{rechtemarginal} \rechtemarginalbreite
- \showsetupA{abstandrechterrand} \abstandrechterrand
- \showsetupA{rechterrand} \breiterechterrand
- \showsetupB{fliesstext} \the \globalbodyfontsize
- \showsetupB{linie} \relax \normallineheight
- \showsetupB{hoehe} \relax \strutheightfactor
- \showsetupB{tiefe} \relax \strutdepthfactor
- \showsetupB{topskip} \relax \topskipfactor
- \showsetupB{maxdepth} \relax \maxdepthfactor}}}
-
-\stopinterface
-
-\startinterface czech
-
-\gdef\showsetups%
- {\noindent
- \vbox
- {\forgetall
- \dontcomplain
- \switchtobodyfont[\v!small]
- \tabskip\zeropoint
- \halign
- {\strut##\quad\hss&##\quad\hss&##\quad\hss&##\hss\cr
- \showsetupA{vyskapapiru} \vyskapapiru
- \showsetupA{sirkapapiru} \sirkapapiru
- \showsetupA{vyskatiskpapiru} \vyskatiskpapiru
- \showsetupA{sirkatiskpapiru} \sirkatiskpapiru
- \showsetupA{hornimezera} \hornimezera
- \showsetupA{spodnimezera} \spodnimezera
- \showsetupA{vyska} \vyskasazby
- \showsetupA{breite} \sirkasazby
- \showsetupA{vyskatextu} \vyskatextu
- \showsetupA{sirkatextu} \sirkatextu
- \showsetupA{horejsek} \vyskahorejsku
- \showsetupA{vzdalenosthorejsku} \vzdalenosthorejsku
- \showsetupA{zahlavi} \vyskazahlavi
- \showsetupA{vzdalenostzahlavi} \vzdalenostzahlavi
- \showsetupA{fusszeileabstand} \vzdalenostupati
- \showsetupA{upati} \vyskaupati
- \showsetupA{vzdalenostspodku} \vzdalenostspodku
- \showsetupA{spodek} \vyakaspodku
- \showsetupA{levyokraj} \sirkalevehookraje
- \showsetupA{vzdalenostlevehookraje} \vzdalenostlevehookraje
- \showsetupA{levamarginalie} \sirkalevemarginalie
- \showsetupA{vzdalenostlevemarginalie} \vzdalenostlevemarginalie
- \showsetupA{vzdalenostpravemarginalie}\vzdalenostpravemarginalie
- \showsetupA{pravamarginalie} \sirkapravemarginalie
- \showsetupA{vzdalenostpravehookraje} \vzdalenostpravehookraje
- \showsetupA{pravyokraj} \sirkapravehookraje
- \showsetupB{zakladnivelikost} \the \globalbodyfontsize
- \showsetupB{linka} \relax \normallineheight
- \showsetupB{vyska} \relax \strutheightfactor
- \showsetupB{hloubka} \relax \strutdepthfactor
- \showsetupB{topskip} \relax \topskipfactor
- \showsetupB{maxdepth} \relax \maxdepthfactor}}}
-
-\stopinterface
-
-\startinterface romanian
-
-\gdef\showsetups%
- {\noindent
- \vbox
- {\forgetall
- \dontcomplain
- \switchtobodyfont[\v!small]
- \tabskip\zeropoint
- \halign
- {\strut##\quad\hss&##\quad\hss&##\quad\hss&##\hss\cr
- \showsetupA{paperheight} \paperheight
- \showsetupA{paperwidth} \paperwidth
- \showsetupA{printpaperheight} \printpaperheight
- \showsetupA{printpaperwidth} \printpaperwidth
- \showsetupA{topspace} \topspace
- \showsetupA{backspace} \backspace
- \showsetupA{height} \makeupheight
- \showsetupA{width} \makeupwidth
- \showsetupA{top} \topheight
- \showsetupA{topdistance} \topdistance
- \showsetupA{header} \headerheight
- \showsetupA{headerdistance} \headerdistance
- \showsetupA{textheight} \textheight
- \showsetupA{footerdistance} \footerdistance
- \showsetupA{footer} \footerheight
- \showsetupA{bottomdistance} \bottomdistance
- \showsetupA{bottom} \bottomheight
- \showsetupA{leftedge} \leftedgewidth
- \showsetupA{leftedgedistance} \leftedgedistance
- \showsetupA{leftmargin} \leftmarginwidth
- \showsetupA{leftmargindistance} \leftmargindistance
- \showsetupA{textwidth} \textwidth
- \showsetupA{rightmargindistance}\rightmargindistance
- \showsetupA{rightmargin} \rightmarginwidth
- \showsetupA{rightedgedistance} \rightedgedistance
- \showsetupA{rightedge} \rightedgewidth
- \showsetupB{bodyfontsize} \the \globalbodyfontsize
- \showsetupB{line} \relax \normallineheight
- \showsetupB{height} \relax \strutheightfactor
- \showsetupB{depth} \relax \strutdepthfactor
- \showsetupB{topskip} \relax \topskipfactor
- \showsetupB{maxdepth} \relax \maxdepthfactor}}}
-
-\stopinterface
-
-\gdef\showlayout % interfereert lelijk met een \typefile er na
- {\bgroup
- \page
- \showframe
- \setuplayout[\c!marking=\v!on]
- \dorecurse{4}{\showsetups\page}
- \egroup}
-
-\gdef\showmargins
- {\starttabulate
- \NC asynchrone \NC \doifoddpageelse {odd} {even} \NC \NR
- \NC synchrone \NC \doifrightpageelse {right} {left} \NC \NR
- \NC right margin \NC \the\rightmarginwidth \NC \NR
- \NC left margin \NC \the\leftmarginwidth \NC \NR
- \NC outer margin \NC \the\outermarginwidth \NC \NR
- \NC inner margin \NC \the\innermarginwidth \NC \NR
- \stoptabulate}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-set.mkii b/Master/texmf-dist/tex/context/base/mkii/page-set.mkii
deleted file mode 100644
index 3c8c87e5c40..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-set.mkii
+++ /dev/null
@@ -1,2781 +0,0 @@
-%D \module
-%D [ file=page-set,
-%D version=2000.10.20,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Column Sets,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% getnoflines vs getrawnoflines
-
-% some day: cleanup and go etex
-
-\writestatus{loading}{ConTeXt Page Macros / Column Sets}
-
-% todo : last longer than previous
-% todo : block span over last column if footnotes
-% todo : diagnosis balancing run
-% todo : separate footnote placement
-% todo : go on on same page with colset
-% todo : test page areas per page
-% todo : leftmargin/rightmargin (better than afstand(1))
-
-% use the OTRSET layer for more purposes, like the footnotes !
-
-\unprotect
-
-\newcount\tofcolumns % total
-\newcount\lofcolumns % left
-\newcount\rofcolumns % right
-
-\newcount\columnfirstcell \columnfirstcell=1
-\newcount\columnlastcell
-\newcount\columnfreecells
-\newcount\currenthcell
-\newcount\currentvcell
-\newcount\columnhcells
-\newcount\columnvcells
-
-\newif\ifenoughcolumncells
-\newif\ifsomefreecolumncells
-\newif\ifcolumnspread
-\newif\iftracecolumnset % \tracecolumnsettrue
-
-\def\columnmaxcells {75} % runtime
-\def\columnmaxfreecells {0} % runtime
-\def\columngaplimit {0} % {5}
-
-\def\@otr@{otr}
-
-\def\OTRSETmakeupwidth{\innermakeupwidth}
-
-\let\OTRSETflushsidefloats \forgetsidefloats % \relax
-\let\OTRSETsynchronizesidefloats\forgetsidefloats % \relax
-
-\def\OTRSETgridcell #1#2{\csname \@otr@:\number#1:\number#2\endcsname}
-\def\OTRSETgetgridcell#1#2{\box\csname \@otr@:\number#1:\number#2\endcsname}
-\def\OTRSETsetgridcell#1#2{\global\setbox\csname\@otr@:\number#1:\number#2\endcsname}
-
-\long\def\OTRSETdoifcellelse#1#2%
- {\relax\ifvoid\csname\@otr@:\number#1:\number#2\endcsname
- \@EA\secondoftwoarguments\else\@EA\firstoftwoarguments
- \fi}
-
-% The following two macros are used to compensate for a switch in body fonts
-% as in:
-%
-% \definecolumnset [two] [n=2,balancing=yes]
-% \definecolumnset [three] [n=3,balancing=yes]
-%
-% \setupcolumnsetlines[two][1][1][7]
-% \setupcolumnsetlines[two][1][2][10]
-%
-% \setupcolumnsetlines[three][1][1][40]
-% \setupcolumnsetlines[three][1][2][40]
-% \setupcolumnsetlines[three][1][3][40]
-%
-% \setupcolumnsetstart[three][1][1][15]
-% \setupcolumnsetstart[three][1][2][20]
-% \setupcolumnsetstart[three][1][3][20]
-%
-% \starttext
-% \startcolumnset [two] \dorecurse {1}{\input tufte \par} \stopcolumnset
-% \switchtobodyfont[small]
-% \startcolumnset [three] \dorecurse {1}{\input tufte \par} \stopcolumnset
-% \stoptext
-
-%D Marks in columnsets:
-%D
-%D \starttyping
-%D \definemarking[M]
-%D \setupheadertexts[\setups{show-M-marks}]
-%D \definecolumnset[test][n=3]
-%D
-%D \startsetups show-M-marks
-%D \getmarking[M][1][previous]/\getmarking[M][1][first]/\getmarking[M][1][last]\quad
-%D \getmarking[M][2][previous]/\getmarking[M][2][first]/\getmarking[M][2][last]\quad
-%D \getmarking[M][3][previous]/\getmarking[M][3][first]/\getmarking[M][3][last]\quad
-%D \getmarking[M][1][previous]/\getmarking[M][1][first]/\getmarking[M][last]\quad
-%D \getsavedmarking[M][previous]/\getsavedmarking[M][first]/\getsavedmarking[M][last]
-%D \stopsetups
-%D
-%D \startbuffer
-%D \section{Knuth} [K1]\marking[M]{k1} [K2]\marking[M]{k2} \input knuth
-%D \section{Zapf} [Z]\marking[M]{z} \input zapf
-%D \stopbuffer
-%D
-%D \startbuffer
-%D \section{Ward} [W]\marking[M]{w} \input ward
-%D \placefigure[here]{none}{\externalfigure[a][height=2cm]}
-%D \section{Davis} [D]\marking[M]{d} \input davis
-%D \section{Zapf} [Z]\marking[M]{z} \input zapf
-%D \stopbuffer
-%D
-%D \startbuffer
-%D \section{Ward} [W]\marking[M]{w} \input ward
-%D \placefigure[here]{none}{\externalfigure[a][height=2cm]}
-%D \section{Davis} [D]\marking[M]{d} \input davis
-%D \section{Zapf} [Z]\marking[M]{z} \input zapf
-%D \section{Douglas} [O]\marking[M]{o} \input douglas
-%D \stopbuffer
-%D
-%D \starttext
-%D \startcolumnset[test]
-%D \dorecurse{5}{\getbuffer}
-%D \placefigure[here]{none}{\externalfigure[a][height=2cm]}
-%D % \column % sometimes needed
-%D \stopcolumnset
-%D \stoptext
-%D \stoptyping
-
-% not ok yet, for column sets we need a special case: within a column we
-% need to bubble-up the marks; the indirectness permits overloading here
-
-\let\saveOTRSETmark \refreshsavedmark
-\let\bubbleOTRSETmark\bubblesavedmark
-\let\resetOTRSETmark \resetsavedmark
-\let\presetOTRSETmark\presetsavedmark
-
-\def\doregisterOTRSETmarks#1{\saveOTRSETmark [#1][\number\mofcolumns]}
-\def\dobubbleOTRSETmarks #1{\bubbleOTRSETmark[#1][\number\mofcolumns]}
-\def\doresetOTRSETmarks #1{\resetOTRSETmark [#1][\recurselevel]}
-\def\dopresetOTRSETmarks #1{\presetOTRSETmark[#1][\recurselevel]}
-
-\def\registerOTRSETmarks
- {\processcommacommand[\alldefinedmarks]\doregisterOTRSETmarks}
-\def\bubbleOTRSETmarks
- {\processcommacommand[\alldefinedmarks]\dobubbleOTRSETmarks}
-\def\resetOTRSETmarks
- {\dorecurse\nofcolumns{\processcommacommand[\alldefinedmarks]\doresetOTRSETmarks}}
-\def\presetOTRSETmarks
- {\dorecurse\nofcolumns{\processcommacommand[\alldefinedmarks]\dopresetOTRSETmarks}}
-
-%D test case of Vit Zika (context list):
-%D
-%D \starttyping
-%D \setuplayout[height=middle,width=middle,grid=yes]
-%D
-%D \starttext
-%D \startcolumnset
-%D \dorecurse{10}
-%D {\input thuan \endgraf
-%D \bgroup
-%D \ss\restoreinterlinespace
-%D \dorecurse{3}{\input hawking \endgraf}
-%D \egroup
-%D \input bryson \endgraf}
-%D \stopcolumnset
-%D \stoptext
-%D \stoptyping
-
-\def\OTRSETsetcorrectnofcells#1%
- {\bgroup
- \!!counta#1\relax
- \ifdim\globalbodyfontsize=\localbodyfontsize
- \restoreinterlinespace
- \else
- \!!dimena-\!!counta\lineheight
- \restoreglobalbodyfont % slow, we need a fast one
- \advance\!!dimena\!!counta\lineheight
- \getnoflines\!!dimena
- \advance\!!counta\noflines
- \ifnum\!!counta<#1\else
- \!!counta#1\relax
- \fi
- \fi
- \relax % needed ! ! ! ! else lookahead over \fi and \@EA
- \@EA\egroup\@EA\scratchcounter\the\!!counta\relax}
-
-\def\OTRSETsetcorrectcellht
- {\bgroup
- \!!dimena-\strutht\relax
- \ifdim\globalbodyfontsize=\localbodyfontsize
- \restoreinterlinespace
- \else
- \restoreglobalbodyfont
- \fi
- \advance\!!dimena\strutht
- \relax % needed ! ! ! ! else lookahead over \fi and \@EA
- \@EA\egroup\@EA\scratchdimen\the\!!dimena\relax}
-
-\def\columnerasegridboxes % maybe dedicated loops
- {\bgroup
- \increment\columnmaxcells\relax
- \ifodd\realpageno
- \else % we are on the other page
- \columnspreadfalse
- \fi
- \ifcolumnspread
- \dorecurse\nofcolumns
- {\let\!!stringa\recurselevel
- \scratchcounter\recurselevel \advance\scratchcounter\lofcolumns
- \edef\!!stringb{\the\scratchcounter}%
- \dostepwiserecurse \zerocount \columnmaxcells \plusone
- {\ifcsname\@otr@:\!!stringa:\recurselevel\endcsname
- \global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname
- \ifcsname\@otr@:\!!stringb:\recurselevel\endcsname
- \box\csname\@otr@:\!!stringb:\recurselevel\endcsname
- %\global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\box\csname\@otr@:\!!stringb:\recurselevel\endcsname
- \else
- \emptybox
- %\global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\emptybox
- \expandafter\newbox\csname\@otr@:\!!stringb:\recurselevel\endcsname
- \fi
- \else
- \expandafter\newbox\csname\@otr@:\!!stringa:\recurselevel\endcsname
- \ifcsname\@otr@:\!!stringb:\recurselevel\endcsname
- \global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\box\csname\@otr@:\!!stringb:\recurselevel\endcsname
- \else
- \expandafter\newbox\csname\@otr@:\!!stringb:\recurselevel\endcsname
- \fi
- \fi}}%
- \else
- \dorecurse \tofcolumns
- {\let\!!stringa\recurselevel
- \dostepwiserecurse \zerocount \columnmaxcells \plusone
- {\ifcsname\@otr@:\!!stringa:\recurselevel\endcsname
- \global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\emptybox
- \else
- \expandafter\newbox\csname\@otr@:\!!stringa:\recurselevel\endcsname
- \fi}}%
- \fi
- \dorecurse\tofcolumns
- {\global\setbox\csname\@otr@:\recurselevel:\columnmaxcells\endcsname\copy\placeholderboxa}%
- \global\columnfirstcell\zerocount
- \global\columnlastcell\columnfirstcell
- \global\columnfreecells\columnfirstcell
- \egroup}
-
-\def\doOTRSETsetgridcells#1#2#3#4#5#6% placeholder col row wid hei {data}
- {\!!countd#2\advance\!!countd#4\advance\!!countd\minusone
- \!!counte#3\advance\!!counte#5\advance\!!counte\minusone
- \dostepwiserecurse{#2}\!!countd\plusone
- {\!!countf\recurselevel
- \dostepwiserecurse{#3}\!!counte\plusone
- {\OTRSETsetgridcell\!!countf\recurselevel#1}}%
- \dostepwiserecurse{#3}\!!counte\plusone
- {\wd\OTRSETgridcell{#2}\recurselevel\hsize}%
- \OTRSETsetgridcell{#2}\!!counte#6}
-
-\def\OTRSETsetgridcells
- {\doOTRSETsetgridcells{\copy\placeholderboxb}}
-
-\def\OTRSETerasegridcells#1#2#3#4%
- {\doOTRSETsetgridcells{\emptybox}{#1}{#2}{#3}{#4}{\emptybox}}
-
-\def\setupcolumnsetlines{\doquintupleempty\dosetupcolumnsettrick[l]}
-\def\setupcolumnsetstart{\doquintupleempty\dosetupcolumnsettrick[s]}
-
-\def\dosetupcolumnsettrick[#1][#2][#3][#4][#5]% tag id page col value
- {% not needed, is already relative
- % \doifinstringelse{+}{#3}{\scratchcounter\realpageno}{\scratchcounter\zerocount}%
- % \advance\scratchcounter#3\relax % \relax needed
- % \setevalue{\??mc:#1:#2:\the\scratchcounter:\number#4}{\number#5}}
- \iffifthargument
- \setevalue{\??mc:#1:#2:\number#3:\number#4}{\number#5}%
- \else
- \setevalue{\??mc:#1:#2:\number#3:0}{\number#4}%
- \fi}
-
-\def\currentcolumnmaxcellstag #1{\??mc:l:\OTRSETidentifier:\columnsetpage:\number#1}
-\def\currentcolumnstartcelltag#1{\??mc:s:\OTRSETidentifier:\columnsetpage:\number#1}
-
-\def\doresetcolumnsetlines#1%
- {\ifcsname\currentcolumnmaxcellstag{#1}\endcsname
- \letgvalue{\currentcolumnmaxcellstag{#1}}\zerocount
- \fi
- \ifcsname\currentcolumnmaxcellstag{#1}\endcsname
- \letgvalue{\currentcolumnmaxcellstag{#1}}\zerocount
- \fi}
-
-\def\currentcolumnsomecells#1#2%
- {\ifcsname#1\mofcolumns\endcsname
- \ifnum\csname#1\mofcolumns\endcsname=\zerocount
- #2%
- \else
- \number\numexpr\ifnum\csname#1\mofcolumns\endcsname<\zerocount
- \columnmaxcells+\fi\csname#1\mofcolumns\endcsname\relax
- \fi
- \else\ifcsname#10\endcsname
- \ifnum\csname#10\endcsname=\zerocount
- #2%
- \else
- \number\numexpr\ifnum\csname#10\endcsname<\zerocount
- \columnmaxcells+\fi\csname#10\endcsname\relax
- \fi
- \else
- #2%
- \fi\fi}
-
-\def\currentcolumnmaxcells {\currentcolumnsomecells\currentcolumnmaxcellstag \columnmaxcells}
-\def\currentcolumnstartcell{\currentcolumnsomecells\currentcolumnstartcelltag\plusone}
-
-\def\OTRSETsetfreecells#1#2% col start
- {\bgroup
- \global\columnfirstcell\ifnum#2=0 1\else#2\fi\relax
- \OTRSETsetcorrectnofcells\currentcolumnmaxcells % sets \scratchcounter
- \edef\columnmaxcells{\the\scratchcounter}%
- \ifnum\columnfirstcell>\columnmaxcells
- \global\columnfreecells\zerocount
- \global\columnfirstcell\plusone
- \global\columnlastcell \zerocount
- \global\somefreecolumncellsfalse
- %\message{no cells a}%
- \else
- \doloop
- {\ifnum\columnfirstcell>\columnmaxcells\relax
- \exitloop
- \else
- \OTRSETdoifcellelse{#1}\columnfirstcell
- {\global\advance\columnfirstcell\plusone}\exitloop
- \fi}%
- \global\columnlastcell\columnfirstcell
- \doloop
- {\ifnum\columnlastcell>\columnmaxcells\relax
- \exitloop
- \else
- \OTRSETdoifcellelse{#1}\columnlastcell
- {\global\advance\columnlastcell \minusone \exitloop}
- {\global\advance\columnlastcell \plusone }%
- \fi}%
- \ifnum\columnfirstcell>\columnmaxcells
- \global\columnfreecells\zerocount
- \global\columnfirstcell\plusone
- \global\columnlastcell \zerocount
- \global\somefreecolumncellsfalse
- %\message{no cells b}%
- \else
- \ifnum\columnlastcell>\columnmaxcells
- \global\columnlastcell\columnmaxcells
- \fi
- \global\columnfreecells\columnlastcell
- \global\advance\columnfreecells -\columnfirstcell
- \global\advance\columnfreecells \plusone
- \global\somefreecolumncellstrue
- %\message{\number\columnfirstcell-\number\columnlastcell=\number\columnfreecells}%
- \fi
- \fi
- \egroup}
-
-\def\OTRSETgetmaxfreecells#1#2% col start
- {\let\columnmaxfreecells\!!zerocount
- \let\columnfrmfreecells\!!zerocount
- \pushmacro \columnmaxcells
-\OTRSETsetcorrectnofcells\currentcolumnmaxcells % sets \scratchcounter
-\edef\columnmaxcells{\the\scratchcounter}%
- \scratchcounter\zerocount
- \dostepwiserecurse{#2}\columnmaxcells\plusone
- {\OTRSETdoifcellelse{#1}\recurselevel
- {\ifnum\columnmaxfreecells<\scratchcounter
- \edef\columnmaxfreecells{\the\scratchcounter}%
- \let\columnfrmfreecells\recurselevel
- \fi
- \scratchcounter\zerocount}
- {\advance\scratchcounter\plusone}}%
- \popmacro\columnmaxcells}
-
-\long\def\OTRSETrecurseRL#1%
- {\dostepwiserecurse\nofcolumns\plusone\minusone
- {#1\hskip\OTRSETgetparameter\c!distance\recurselevel}}
-
-\def\OTRSETmakegridbox
- {\ifcase\columndirection
- \OTRSETdomakegridbox\plusone\nofcolumns\plusone
- \else
- \OTRSETdomakegridbox\nofcolumns\plusone\minusone
- \fi}
-
-\def\OTRSETmakeupwidth{\makeupwidth} % temporary indirectness
-
-\def\OTRSETdomakegridbox#1#2#3%
- {\hbox\bgroup
- \dontcomplain
- \forgetall % can go once in \flush
- \!!heighta \textheight
- % test first !
- \hbox to \OTRSETmakeupwidth
- {\dostepwiserecurse{#1}{#2}{#3}
- {\mofcolumns\recurselevel
- \localcolumnwidth\OTRSETlocalwidth\mofcolumns
- \setbox\scratchbox\hbox\localframed
- [\??mc\OTRSETidentifier\number\mofcolumns]%
- [\c!width=\localcolumnwidth,\c!height=\!!heighta,\c!lines=]%
- {}%
- \wd\scratchbox\localcolumnwidth
- \ht\scratchbox\!!heighta
- \ifcase\columndirection
- \hskip\OTRSETgetparameter\c!distance\recurselevel
- \box\scratchbox
- \else
- \box\scratchbox
- \hskip\OTRSETgetparameter\c!distance\recurselevel
- \fi}}%
- \hskip-\OTRSETmakeupwidth
- % main text
- \hbox to \OTRSETmakeupwidth
- {\dostepwiserecurse{#1}{#2}{#3}
- {\mofcolumns\recurselevel
- \localcolumnwidth\OTRSETlocalwidth\mofcolumns
- \offinterlineskip
- \setbox\scratchbox\vbox to \!!heighta
- {\topskipcorrection % not needed
- \ifcase\OTRSETbalancemethod
- % no
- \or
- % yes
- \doifelselayerdata{OTRTEXT}\vfill\relax % temp hack
- \or
- % top
- \or
- % bottom
- \vfill
- \fi
- \dorecurse\columnmaxcells
- {\setbox\scratchbox\hbox{\OTRSETgetgridcell\mofcolumns\recurselevel}%
-% {\setbox\scratchbox\hbox
-% {\localstarttextcolor
-% \OTRSETgetgridcell\mofcolumns\recurselevel
-% \localstoptextcolor}%
- \ht\scratchbox\strutht
- \dp\scratchbox\strutdp
- \ifcase\columndirection
- \box\scratchbox
- \else
- \hbox to \localcolumnwidth
- {\hskip\localcolumnwidth\llap{\box\scratchbox}}%
- \fi
- \par}%
- \ifcase\OTRSETbalancemethod
- % no
- \else
- % yes, top, bottom
- \ifdim\globalbodyfontsize=\localbodyfontsize
- \removedepth
- \restoreglobalbodyfont
- \vskip\strutdepth
- \fi
- \kern\zeropoint
- \vss
- \fi}%
- \wd\scratchbox\localcolumnwidth % \textwidth
- \ifcase\columndirection
- \hskip\OTRSETgetparameter\c!distance\recurselevel\box\scratchbox
- \else
- \box\scratchbox\hskip\OTRSETgetparameter\c!distance\recurselevel
- \fi}}%
- \egroup}
-
-\let\OTRSETbalht\zeropoint
-
-\def\OTRSETreducegridbox % for the moment no difference between methods
- {\globallet\OTRSETbalht\zeropoint
- \ifcase\OTRSETbalancemethod
- % no balancing
- \else
- \bgroup
- \!!counta\columnmaxcells
- \donetrue
- \doloop
- {\dorecurse\nofcolumns{\OTRSETdoifcellelse\recurselevel\!!counta\donefalse\donothing}%
- \ifdone
- \ifnum\!!counta>\plusone\advance\!!counta\minusone\else\exitloop\fi
- \else
- \exitloop
- \fi}%
- \ifnum\!!counta>\plusone
- \!!heighta\lineheight
- \multiply\!!heighta \!!counta
- \advance\!!heighta \topskip
- \advance\!!heighta -\lineheight
- \else
- \!!heighta\zeropoint
- \fi
- \xdef\OTRSETbalht{\the\!!heighta}%
- \egroup
- \fi}
-
-\def\OTRSETflushfinalfootnotes
- {\ifcase\lastcolumnlastcell \else
- \setbox\scratchbox\hbox
- {\placebottomnotes}%
- \ifdim\ht\scratchbox>\zeropoint
- \setbox\scratchbox\hbox
- {\hbox to \zeropoint{\OTRSETgetgridcell\nofcolumns\lastcolumnlastcell}%
- \box\scratchbox}%
- \ht\scratchbox\strutht
- \dp\scratchbox\strutdp
- \OTRSETsetgridcell\nofcolumns\lastcolumnlastcell\box\scratchbox
- \fi
- \global\lastcolumnlastcell\zerocount
- \fi}
-
-\def\OTRSETdoflush
- {\ifcollectingcontent
- \registerOTRSETmarks
- \global\mofcolumns\plusone
- \else
- \OTRSETdofinalflush
- \OTRSETdofinaloutput
- \ifnum\columnsetpage>0
- \dorecurse\nofcolumns{\doresetcolumnsetlines\recurselevel}%
- \fi
- \doglobal\increment\columnsetpage
- \OTRSETinitializecolumns
- %\OTRSETdoflushfloats
- \OTRSETstartnextpage
-\presetOTRSETmarks
- \initializecolumntextareas
- \fi}
-
-\newbox\OTRfinalpagebox
-
-\def\OTRSETdofinalflush % see \OTRSETdoflush
- {\OTRSETflushfinalfootnotes
- \placecolumntextareas
- \OTRSETcentergridcells
- \bgroup % we want to keep the reduction local
- \OTRSETreducegridbox
- \global\setbox\OTRfinalpagebox\OTRSETmakegridbox
- \egroup % otherwise we get the wrong number of free cells
- %\gdef\localcolumnmaxcells{0}% here ?
- \global\mofcolumns\nofcolumns} % otherwise problems in finaloutput
-
-\def\OTRSETdofinaloutput
- {\ifdim\ht\OTRfinalpagebox=\textheight
- \bgroup % \let\OTRSETsetvsize\relax % prevents useless search for gap
- \ifcase\OTRSETbalancemethod
- \finaloutput\box\OTRfinalpagebox
- \else\ifdim\OTRSETbalht>\zeropoint
- % catch a bordercase
- \scratchdimen\OTRSETbalht
- \advance\scratchdimen\lineheight\relax
- \ifdim\scratchdimen>\textheight
- % full page
- \finaloutput\box\OTRfinalpagebox
- \else
- % same page
- \global\setbox\OTRfinalpagebox \iftracecolumnset\ruledvbox\else\vbox\fi to \OTRSETbalht
- {\box\OTRfinalpagebox\vss}%
- \setlayer[OTRTEXT]{\box\OTRfinalpagebox}%
- \snaptogrid\vbox{\vskip\OTRSETbalht}% hack
- \fi
- \else
- \finaloutput\box\OTRfinalpagebox
- \fi \fi
- \globallet\OTRSETbalht\zeropoint
- \egroup
- \fi}
-
-\definesystemvariable {mc}
-\definesystemvariable {mt}
-\definesystemconstant {colset}
-
-\definetwopasslist\s!colset
-
-\newdimen \OTRSETtextswidth
-\newdimen \OTRSETtextsheight
-\let \OTRSETidentifier=\empty
-
-\newtoks \OTRSEToutput
-
-\def\OTRSETgetparameter#1#2{\csname\??mc\OTRSETidentifier\number#2#1\endcsname}
-\def\OTRSETsetparameter#1#2{\setvalue{\??mc\OTRSETidentifier\number#2#1}}
-
-\def\OTRSETskipstart
- {\scratchcounter\executeifdefined{\??mc\OTRSETidentifier\c!start}\zerocount
- \relax % needed !
- \ifcase\scratchcounter\else
- \advance\scratchcounter\plusone
- \doOTRSETsetgridcells
- {\copy\placeholderboxe}
- \plusone\plusone\nofcolumns\scratchcounter
- \null
- \fi}
-
-\def\OTRSETsetvsize % snap per sectie (gap here?)
- {\ifcollectingcontent \else % can be assigndimen
-\OTRSETskipstart % not that well tested
- \OTRSETcheckinsert % added
- \OTRSETsetfreecells\mofcolumns\columnfirstcell
- \ifsomefreecolumncells
- \global\vsize\columnfreecells\lineheight
- \ifinotr % else problems with floats, see extreme
- \global\pagegoal\vsize % niet nodig, tenzij binnen otr
- \fi
- \synchronizeoutput % fails on example
- % \allowbreak % hm
- \fi
- \synchronizenotes
- \fi}
-
-\def\OTRSETsethsize % of course this does not migrate outside the otr
- {\localcolumnwidth\OTRSETlocalwidth\mofcolumns
- \textwidth\localcolumnwidth
- \hsize\localcolumnwidth}
-
-\def\OTRSETsynchronizehsize
- {\ifcase0\getvalue{\??mc\??mc\c!width}\else % some width set
- \bgroup
- \scratchdimen\OTRSETlocalwidth\mofcolumns
- \ifdim\scratchdimen=\textwidth
- \egroup
- \else
- % only if change in width and \column/\break
- \egroup \OTRSETsethsize
- \fi
- \fi}
-
-\def\OTRSETcheckfreelines
- {\OTRSETsetvsize}
-
-\def\doOTRSETcolumnseparator
- {\hbox to \zeropoint{\hss\red\vl\hss}}
-
-\let\OTRSETcolumnseparator\relax
-
-\def\showbreaks
- {\let\OTRSETcolumnseparator\doOTRSETcolumnseparator}
-
-% \installcolumnbreakhandler {SET} \v!ja
-% {% hmmm:
-% \ifhmode
-% \bgroup
-% \removeunwantedspaces
-% \parfillskip\zeropoint
-% \OTRSETcolumnseparator
-% \par
-% \egroup
-% \fi
-% % brrr:
-% \ejectinsert
-% \ejectpage
-% \OTRSETsynchronizehsize} % no \OTRSETsethsize, can be mid smaller (like tabulate)
-%
-% \installcolumnbreakhandler {SET} \v!forceer
-% {\OTRSETgotocolumn[\v!forceer]}
-% \installcolumnbreakhandler {SET} \v!eerste
-% {\OTRSETgotocolumn[\v!eerste]}
-% \installcolumnbreakhandler {SET} \v!laatste
-% {\OTRSETgotocolumn[\v!laatste]}
-%
-% \installcolumnbreakhandler {SET} \v!pagina
-% {\simplepagebreak % \flushnotes \executepagebreakhandler\v!ja
-% \ifnum\mofcolumns>\plusone
-% \OTRSETgotocolumn[\v!laatste,\v!forceer]%
-% \fi}
-
-\def\OTRSETcolumnhbreak
- {\ifhmode
- \bgroup
- \removeunwantedspaces
- \parfillskip\zeropoint
- \OTRSETcolumnseparator
- \par
- \egroup
- \fi}
-
-\installcolumnbreakhandler {SET} \v!local
- {\OTRSETcolumnhbreak
- \ejectinsert
- \ejectpage % brrr
- % no \OTRSETsethsize, can be mid smaller (like tabulate)
- % also, this one should be executed at the outer level
- % (setting hsize inside otr does not work)
- \OTRSETsynchronizehsize}
-
-% We need to make sure that we really leave the column; mid
-% column we may end up in an empty gap, and we don't want to
-% stay there (basically such a gap is a small empty page
-% then).
-
-\installcolumnbreakhandler {SET} \v!yes
- {\OTRSETcolumnhbreak
- \edef\savedmofcolumns{\the\mofcolumns}%
- \edef\savedrealpageno{\the\realpageno}%
- \ejectinsert
- \ejectpage % brrr
- \doloop
- {\ifnum\savedmofcolumns=\mofcolumns
- \ifnum\savedrealpageno=\realpageno
- \OTRSETdummycolumn
- \else
- \exitloop
- \fi
- \else
- \exitloop
- \fi}%
- \OTRSETsynchronizehsize}
-
-\installcolumnbreakhandler {SET} \s!unknown
- {\expanded{\OTRSETgotocolumn[\@@columnspecification]}}
-
-\installcolumnbreakhandler {SET} \v!page
- {\vfill\eject % \doejectpage\eject
- \OTRSETgotonextpage}
-
-\newtoks\OTRSETeverystartofcolumn
-
-\newbox\OTRSETsavedfootnotes
-
-% \installoutput\OTRSETflushtextsofar % spacing goes wrong
-
-%\def\OTRSETflushtextsofar
-% {\ifvoid\normalpagebox \else
-% \setbox\scratchbox\vbox{\unvbox\normalpagebox}%
-% \OTRSETsavenotes
-% \OTRSEThandleflushedtext0
-% \fi}
-
-% The complication is in the fact that when the HERE float
-% is placed, the otr is not invoked when there is not yet
-% enough content; this can lead to a change in order (turning
-% on the tracer with option 0 is very instructive, watch the
-% small numbers in the margin)
-%
-% 0 = no flushing, so no interference but user should handle
-% border cases of placement
-% 1 = the normal otr, rather untested
-% 2 = a solution that works ok, is experimental and above
-% all messy
-
-\chardef\OTRSETflushtextmode=0
-
-\def\OTRSETflushtextsofar
- {\ifcase\OTRSETflushtextmode
- % don't mess around
- \or
- % the normal one
- \ifvoid\normalpagebox\else
- \OTRSETnaturalflush
- \OTRSETcheckfreelines
- \fi
- \or
- % way to complicated, but kind of ok
- \doOTRSETflushtextsofar
- \fi}
-
-\newskip\lastskipinotr
-
-\installoutput\doOTRSETflushtextsofar % experimental
- {\ifvoid\normalpagebox\else
- \scratchdimen\dp\normalpagebox
- \setbox\scratchbox\vbox
- {\forgetall
- \unvbox\normalpagebox
- \global\lastskipinotr\lastskip\relax
- \ifdim\lastskipinotr>\zeropoint\relax
- \removelastskip
- \else
- \kern-\scratchdimen % handle depth
- \fi}%
- \ifdim\lastskipinotr>\zeropoint
- \scratchskip\ht\scratchbox
- \setbox\scratchbox\hbox
- {\lower\strutdepth\box\scratchbox}%
- \dp\scratchbox\scratchdimen
- \ht\scratchbox\scratchskip
- \fi
- \OTRSETsavenotes
- \OTRSEThandleflushedtext\zerocount
- \ifdim\lastskipinotr>\zeropoint
- %\vskip \lastskipinotr % hm, gets lost anyway
- \else
- % we should not discard skips after here; tricky
- \fi
- \OTRSETsetvsize
- \fi}
-
-\def\OTRSETplacebottomnotes
- {\iflastcolumnfootnotes
- \ifnum\nofcolumns=\mofcolumns
- \ifintermediatefootnotes \placebottomnotes \fi
- \fi
- \else
- \placebottomnotes
- \fi}
-
-\def\OTRSETflushsavednotes
- {\iflastcolumnfootnotes
- \ifnum\nofcolumns=\mofcolumns
- \flushsavednotes
- \fi
- \else
- \flushsavednotes
- \fi}
-
-\def\OTRSETsavenotes
- {\iflastcolumnfootnotes
- \ifnum\nofcolumns=\mofcolumns \else
- \savenotes
- \fi
- \fi}
-
-\appendtoks \OTRSETflushsavednotes \to \OTRSETeverystartofcolumn
-
-\def\OTRSETnaturalflush
- {\bgroup
- \forgetall % new, needed !
- \setbox0\vbox to \columnfreecells\lineheight
- {\vskip-\topskip
- \vskip\lineheight
- \prevdepth\strutdp
- \unvbox\normalpagebox
- \vfill}%
- \setbox2\hbox
- {\OTRSETplacebottomnotes}%
- \setbox\scratchbox\hbox
- {\wd0\zeropoint\box0\box2}%
- \dp\scratchbox\strutdp
- \OTRSEThandleflushedtext\plusone
- \egroup}
-
-\newcount\lastcolumnlastcell
-
-\def\OTRSEThandleflushedtext#1%
- {\getnoflines{\ht\scratchbox}%
- %\wd\scratchbox\textwidth % geen \hsize kan < zijn in bv split tabulate
- \wd\scratchbox\OTRSETlocalwidth\mofcolumns
- \doOTRSETsetgridcells
- {\copy\placeholderboxf}
- \mofcolumns\columnfirstcell\plusone\noflines
- {\registeredtextarea1\columnfirstcell\scratchbox}% == \hbox / tricky htcorr == \columnfirstcell
- \global\columnlastcell\columnfirstcell
- \global\advance\columnlastcell \noflines
- \global\lastcolumnlastcell\columnlastcell
- \global\advance\lastcolumnlastcell \minusone
- % find next (acceptable) gap, todo: deadcycle
- \ifcase#1\else
- \OTRSETfillgapsbetweencells\mofcolumns\columnlastcell
- \fi
- \OTRSETfindnextgap
- % \message{\the\mofcolumns,\the\columnfirstcell,\the\columnfreecells}%
- % \wait
- % we cannot adapt the hsize since it may have changed (like
- % inside a tabulate) so we only change it when there is a
- % reason to do so
- \OTRSETsynchronizehsize
- \OTRSETsetvsize}
-
-\def\OTRSETfindnextgap
- {\OTRSETsetfreecells\mofcolumns\columnlastcell
- \ifsomefreecolumncells
- % okay
- \bubbleOTRSETmarks % not robust because we reenter
- \else
- \registerOTRSETmarks % not robust because we reenter
- \global\advance\mofcolumns \plusone
- \ifnum\mofcolumns>\nofcolumns
- \OTRSETdoflush
- \global\columnlastcell\plusone
- \global\columnfirstcell\zerocount
- \OTRSETdoflushfloats
- \else
- \the\OTRSETeverystartofcolumn
- \global\columnlastcell\plusone
- \global\columnfirstcell\zerocount
- \fi
- \fi}
-
-\let\OTRSETcheckfreelines\donothing
-
-\def\OTRSETfillgapsbetweencells#1#2% col
- {\ifnum\columngaplimit>\zerocount
- \donefalse
- \dostepwiserecurse{#2}\columnmaxcells\plusone
- {\OTRSETdoifcellelse{#1}\recurselevel
- {\ifdone
- \!!countb\recurselevel \advance\!!countb -\!!counta\relax
- \ifnum\!!countb>\plusone
- \advance\!!countb \minusone
- \ifnum\!!countb<\columngaplimit\relax
- \!!countb\recurselevel \advance\!!countb \minusone
- \dostepwiserecurse\!!counta\!!countb\plusone
- {\OTRSETsetgridcell{#1}\recurselevel\copy\placeholderboxc}%
- %\message{[gap]}%
- \fi
- \fi
- \fi
- \donefalse}
- {\ifdone \else
- \donetrue
- \!!counta\recurselevel
- \fi}}%
- \fi}
-
-\appendtoks
- \OTRSETfillgapsbetweencells\mofcolumns\plusone
-\to \OTRSETeverystartofcolumn
-
-%\def\OTRSETfreezeminimumgap#1%
-% {\OTRSETgetmaxfreecells{#1}{1}%
-% \ifnum\columnmaxfreecells>0
-% \!!countb=\columnfrmfreecells
-% \!!counta=\!!counta \advance\!!counta -\columnmaxfreecells
-% \dorecurse{\columnmaxcells}
-% {\ifnum\recurselevel<\!!counta\relax
-% \donetrue
-% \else\ifnum\recurselevel>\!!countb
-% \donetrue
-% \else
-% \donefalse
-% \fi\fi
-% \ifdone
-% \OTRSETdoifcellelse{#1}{\recurselevel}
-% {}{\OTRSETsetgridcell{#1}\recurselevel\copy\placeholderboxc}%
-% \fi}%
-% \fi}
-%
-%\def\OTRSETfillgaps#1#2#3% col from to
-% {\dostepwiserecurse{#2}{#3}{1}
-% {\OTRSETdoifcellelse{#1}{\recurselevel}
-% {}{\OTRSETsetgridcell{#1}\recurselevel\copy\placeholderboxc}}}
-%
-%\def\OTRSETfillbotgaps#1#2% col first
-% {\OTRSETfillgaps{#1}{#2}{\columnmaxcells}}
-%
-%\def\OTRSETfilltopgaps#1#2% col last
-% {\OTRSETfillgaps{#1}{1}{#2}}
-
-\newif\ifspancolumnslots \spancolumnslotstrue
-\newif\ifcheckcolumnspan \checkcolumnspantrue
-
-\def\OTRSETcheckwidthgap#1#2% box size
- {\ifcheckcolumnspan
- \bgroup
- \scratchdimen#2%
- \advance\scratchdimen-\wd#1\relax
- \ifdim-10\scaledpoint>\scratchdimen
- \egroup
- \else\ifdim10\scaledpoint<\scratchdimen
- \egroup
- \else
- \egroup
- \wd#1=#2%
- \fi\fi
- \fi}
-
-\def\OTRSETcheckcolumnslot#1%
- {\enoughcolumncellstrue
- \ifspancolumnslots\else
- \OTRSETcheckwidthgap#1\hsize
- \ifdim\wd#1>\hsize
- \enoughcolumncellsfalse
- \fi
- \fi
- \ifenoughcolumncells
- \getnoflines\pagetotal
- \scratchcounter\noflines
- \getnoflines{\ht#1}%
- \columnvcells\noflines
- \columnhcells\plusone
- \advance\scratchcounter \columnvcells \relax
- \ifnum\scratchcounter>\columnfreecells
- \enoughcolumncellsfalse
- \fi
- \fi}
-
-\def\OTRSETstoreincolumnslotPAGE#1%
- {\ifenoughcolumncells
- % to do
- \OTRSETsavebox{#1}%
- \else
- \OTRSETsavebox{#1}%
- \fi}
-
-\def\OTRSETstoreincolumnslotTOPS#1%
- {\OTRSETprepareforcolumnslot1{#1}%
- \OTRSETcheckcolumnslot{#1}%
- \ifenoughcolumncells
- \OTRSETcheckcolumnspace\mofcolumns\columnfirstcell{#1}%
- \fi
- \ifenoughcolumncells
- \OTRSETsetgridcells\mofcolumns\columnfirstcell\columnhcells\columnvcells
- {\hbox{\copy#1}}%
- \OTRSETsetvsize
- \else
- \OTRSETsavebox{#1}%
- \fi}
-
-\def\OTRSETstoreincolumnslotBOTS#1%
- {\OTRSETprepareforcolumnslot3{#1}%
- \edef\savedcolumnlastcell{\the\columnlastcell}%
- \OTRSETcheckcolumnslot{#1}%
- \ifenoughcolumncells
- \advance\columnlastcell -\columnvcells \advance\columnlastcell \plusone
-% \OTRSETcheckcolumnspace\mofcolumns\columnfirstcell{#1}%
- \OTRSETcheckcolumnspace\mofcolumns\columnlastcell{#1}%
- \fi
- \ifenoughcolumncells
- \OTRSETsetgridcells\mofcolumns\columnlastcell\columnhcells\columnvcells{\copy#1}%
- \OTRSETfillgapsbetweencells\mofcolumns\savedcolumnlastcell % -)
- \OTRSETsetvsize
- \else
- \columnlastcell\savedcolumnlastcell
- \OTRSETsavebox{#1}%
- \fi}
-
-\newdimen\totalcolumnspace
-
-\def\columnspacetopoffset{0}
-\def\columnspacebotoffset{0}
-
-\def\OTRSETcheckcolumnspace#1#2#3% col row box
- {\columnhcells\plusone
- \totalcolumnspace\zeropoint
- \scratchcounter#1%
- \enoughcolumncellstrue
- \doloop
- {\advance\totalcolumnspace \OTRSETlocalwidth\scratchcounter\relax % needed
-\OTRSETcheckwidthgap#3\totalcolumnspace
- \ifnum\wd#3>\totalcolumnspace\relax
- \ifnum\scratchcounter=\nofcolumns
- \enoughcolumncellsfalse
- \exitloop
- \else
- \advance\columnhcells \plusone
- \advance\scratchcounter \plusone
- \advance\totalcolumnspace \OTRSETgetparameter\c!distance\scratchcounter
- \fi
- \else
- \exitloop
- \fi}%
- \ifenoughcolumncells
- \getnoflines{\ht#3}%
- \columnvcells\noflines
- \OTRSETcheckcolumncells{#1}{#2}\columnhcells\columnvcells
- \fi}
-
-\def\OTRSETcheckcolumncells#1#2#3#4% col row wid hei
- {\!!countd#1\advance\!!countd#3\advance\!!countd\minusone
- \!!counte#2\advance\!!counte#4\advance\!!counte\minusone
- \ifnum\!!counte>\columnmaxcells\relax
- \enoughcolumncellsfalse
- \else
- \enoughcolumncellstrue
-%\let\columnspacetopoffset\zerocount
-%\scratchcounter#2\advance\scratchcounter\minusone
-%\ifnum\scratchcounter>0
-% \dostepwiserecurse{#1}\!!countd\plusone
-% {\ifdim\wd\OTRSETgridcell\recurselevel\scratchcounter>\zeropoint
-% \let\columnspacetopoffset\plusone
-% \else\ifdim\dp\OTRSETgridcell\recurselevel\scratchcounter>\zeropoint
-% \let\columnspacetopoffset\plusone
-% \fi\fi}%
-% \advance\!!counte \columnspacetopoffset \relax
-% \advance\columnvcells \columnspacetopoffset \relax
-%\fi
-%\let\columnspacebotoffset\zerocount
-%\scratchcounter\!!counte
-%\advance\scratchcounter \columnvcells \relax
-%\ifnum\scratchcounter>\columnmaxcells\else
-% \dostepwiserecurse{#1}\!!countd\plusone
-% {\ifdim\wd\OTRSETgridcell\recurselevel\scratchcounter>\zeropoint
-% \let\columnspacebotoffset\plusone
-% \else\ifdim\dp\OTRSETgridcell\recurselevel\scratchcounter>\zeropoint
-% \let\columnspacebotoffset\plusone
-% \fi\fi}%
-% \advance\!!counte \columnspacebotoffset \relax
-% \advance\columnvcells \columnspacebotoffset \relax
-%\fi
- \dostepwiserecurse{#1}\!!countd\plusone % cols
- {\ifenoughcolumncells
- \!!countf\recurselevel\relax
- \dostepwiserecurse{#2}\!!counte\plusone % rows
- {\ifenoughcolumncells
- \OTRSETdoifcellelse\!!countf\recurselevel
- {\enoughcolumncellsfalse}{}%
- \fi}%
- \fi}%
- \fi}
-
-\def\OTRSETsetpreferedcolumnslot#1#2%
- {\doifsomething{#1}{\edef\preferedcolumn{#1}}%
- \doifsomething{#2}{\edef\preferedrow {#2}}}
-
-\OTRSETsetpreferedcolumnslot{\nofcolumns}{1} % default ?
-
-\let\pofcolumns\mofcolumns
-\let\qofcolumns\mofcolumns
-
-\newif\ifquitincurrentcolumn
-
-\def\OTRSETstoreincolumnslotLRTB#1%
- {\OTRSETprepareforcolumnslot1{#1}%
- \OTRSETflushtextsofar
- \OTRSETstoreincolumnslotindeed
- \mofcolumns\nofcolumns+\currenthcell
- \plusone\columnmaxcells+\currentvcell{#1}}
-
-\def\OTRSETstoreincolumnslotLRBT#1%
- {\OTRSETprepareforcolumnslot3{#1}%
- \OTRSETflushtextsofar
- \OTRSETstoreincolumnslotindeed
- \mofcolumns\nofcolumns+\currenthcell
- \columnmaxcells\plusone-\currentvcell{#1}}
-
-\def\OTRSETstoreincolumnslotRLTB#1%
- {\OTRSETprepareforcolumnslot1{#1}%
- \OTRSETflushtextsofar
- \OTRSETcheckprefered
- \OTRSETstoreincolumnslotindeed
- \nofcolumns\qofcolumns-\currenthcell
- \plusone\columnmaxcells+\currentvcell{#1}}
-
-\def\OTRSETstoreincolumnslotRLBT#1%
- {\OTRSETprepareforcolumnslot3{#1}%
- \OTRSETflushtextsofar
- \OTRSETcheckprefered
- \OTRSETstoreincolumnslotindeed
- \nofcolumns\qofcolumns-\currenthcell
- \columnmaxcells\plusone-\currentvcell{#1}}
-
-\def\OTRSETstoreincolumnslotTBLR#1%
- {\OTRSETprepareforcolumnslot1{#1}%
- \OTRSETflushtextsofar
- \OTRSETstoreincolumnslotindeed
- \plusone\columnmaxcells+\currentvcell
- \mofcolumns\nofcolumns+\currenthcell{#1}}
-
-\def\OTRSETstoreincolumnslotTBRL#1%
- {\OTRSETprepareforcolumnslot1{#1}%
- \OTRSETflushtextsofar
- \OTRSETcheckprefered
- \OTRSETstoreincolumnslotindeed
- \plusone\columnmaxcells+\currentvcell
- \nofcolumns\qofcolumns-\currenthcell{#1}}
-
-\def\OTRSETstoreincolumnslotBTLR#1%
- {\OTRSETprepareforcolumnslot3{#1}%
- \OTRSETflushtextsofar
- \OTRSETstoreincolumnslotindeed
- \columnmaxcells\plusone-\currentvcell
- \mofcolumns\nofcolumns+\currenthcell{#1}}
-
-\def\OTRSETstoreincolumnslotBTRL#1%
- {\OTRSETprepareforcolumnslot3{#1}%
- \OTRSETflushtextsofar
- \OTRSETcheckprefered
- \OTRSETstoreincolumnslotindeed
- \columnmaxcells\plusone-\currentvcell
- \nofcolumns\qofcolumns-\currenthcell{#1}}
-
-\def\OTRSETstoreincolumnslotFXTB#1% fixed column
- {\OTRSETcheckprefered
- \OTRSETdoifcellelse\pofcolumns\plusone
- {\OTRSETprepareforcolumnslot2}{\OTRSETprepareforcolumnslot1}{#1}% % 1/2 dependent of place, todo
- \OTRSETflushtextsofar
- \OTRSETstoreincolumnslotindeed
- \pofcolumns \pofcolumns +\currenthcell
- \preferedrow\columnmaxcells+\currentvcell{#1}}
-
-\def\OTRSETstoreincolumnslotFXBT#1% fixed column
- {\OTRSETcheckprefered
- \OTRSETdoifcellelse\pofcolumns\columnmaxcells
- {\OTRSETprepareforcolumnslot2}{\OTRSETprepareforcolumnslot3}{#1}% % 3/2 dependent of place, todo
- \OTRSETflushtextsofar
- \OTRSETstoreincolumnslotindeed
- \pofcolumns \pofcolumns +\currenthcell
- \columnmaxcells\preferedrow-\currentvcell{#1}}
-
-% \def\OTRSETstoreincolumnslotHERE#1% fixed column
-% {\OTRSETprepareforcolumnslot2{#1}%
-% \OTRSETflushtextsofar
-% \getnoflines\pagetotal \advance\noflines\columnfirstcell
-% \OTRSETstoreincolumnslotindeed
-% \mofcolumns\mofcolumns+\currenthcell
-% \noflines\columnmaxcells+\currentvcell{#1}%
-% \OTRSETsetvsize}
-
-\chardef\OTRSETforcefixedfloats=0
-
-\def\OTRSETstoreincolumnslotHERE#1% fixed column
- {\ifcase\OTRSETforcefixedfloats
- \OTRSETstoreincolumnslotSOMEWHERE2{#1}%
- \else
- \OTRSETstoreincolumnslotFIXD{#1}%
- \fi}
-
-% this one looses too wide graphics
-%
-% \def\OTRSETstoreincolumnslotFIXD#1% fixed column
-% {\OTRSETprepareforcolumnslot2{#1}%
-% % no flush text sofar here, beware: no width test
-% \snaptogrid\vbox{\box#1}}
-%
-% still imperfect
-
-\def\OTRSETstoreincolumnslotFIXD#1% fixed column
- {\OTRSETflushtextsofar
- \ifdim\wd#1>\textwidth
- \OTRSETstoreincolumnslotSOMEWHERE2{#1}%
- \else
- % crappy test / needed for o-pbu-f / will be replaced
- \getnoflines{\ht#1}%
- \scratchdimen\noflines\lineheight
- \advance\scratchdimen\lineheight
- \advance\scratchdimen\pagetotal\relax
- \ifdim\scratchdimen<\pagegoal
- %OTRSETprepareforcolumnslot3{#1}%
- %ruledvskip\columnslotspacing\lineheight
- \blank[\columnslotspacing*\v!line]%
- \snaptogrid\hbox to \hsize{\hss\box#1\hss}% strange, why the centering
- \blank[\columnslotspacing*\v!line]%
- \else
- \OTRSETstoreincolumnslotSOMEWHERE2{#1}%
- \fi
- \fi}
-
-\def\OTRSETstoreincolumnslotSOMEWHERE#1#2%
- {\OTRSETprepareforcolumnslot{#1}{#2}%
- \OTRSETflushtextsofar
- \getnoflines\pagetotal \advance\noflines\columnfirstcell
- \OTRSETstoreincolumnslotindeed
- \mofcolumns\mofcolumns+\currenthcell
- \noflines\columnmaxcells+\currentvcell{#2}%
- \OTRSETsetvsize}
-
-\def\OTRSETcheckprefered
- {\ifnum\preferedcolumn<\mofcolumns
- \let\pofcolumns\mofcolumns
- \else
- \let\pofcolumns\preferedcolumn
- \fi
- \ifquitincurrentcolumn
- \ifnum\mofcolumns=\nofcolumns
- \def\qofcolumns{\mofcolumns}%
- \else
- \scratchcounter\mofcolumns
- \advance\scratchcounter \plusone
- \edef\qofcolumns{\the\scratchcounter}%
- \fi
- \else
- \let\qofcolumns\mofcolumns
- \fi}
-
-\def\OTRSETstoreincolumnslotindeed#1#2#3#4#5#6#7#8#9%
- {\OTRSETcheckprefered
- \enoughcolumncellsfalse
- \donefalse
- \dostepwiserecurse{#1}{#2}{#31}
- {\ifdone
- \exitloop
- \else
- #4=\recurselevel
- \dostepwiserecurse{#5}{#6}{#71}
- {\ifdone
- \exitloop
- \else
- #8=\recurselevel
- \OTRSETcheckcolumnspace\currenthcell\currentvcell{#9}%
- \ifenoughcolumncells \donetrue \fi
- \fi}%
- \fi}%
- \ifdone
- \enoughcolumncellstrue
- \else
- \enoughcolumncellsfalse
- \fi
- \ifenoughcolumncells
-% \ifnum\columnspacetopoffset>0\message{[+++]}\fi
-% \ifnum\columnspacebotoffset>0\message{[---]}\fi
-% \OTRSETsetgridcells\currenthcell\currentvcell\columnhcells\columnvcells
-% {\vbox
-% {\ifcase\columnspacetopoffset\else\ruledvskip\columnspacetopoffset\lineheight\fi
-% \copy#9
-% \ifcase\columnspacebotoffset\else\ruledvskip\columnspacebotoffset\lineheight\fi}}%
- \OTRSETsetgridcells\currenthcell\currentvcell\columnhcells\columnvcells
- {\copy#9}%
- \ifnum\currenthcell=\mofcolumns\relax
- \ifdim\ht\OTRSETsavedfootnotes>\zeropoint
- \OTRSETsetfreecells\mofcolumns\columnfirstcell
- \ifsomefreecolumncells
- \getnoflines{\ht\OTRSETsavedfootnotes}\relax
- \ifnum\columnfreecells<\noflines
- \global\somefreecolumncellsfalse
- \else
- %\message{[flt]}% float
- \fi
- \fi
- \ifsomefreecolumncells
- % ok, enough room for notes
- %\message{[flt]}% float
- \else % ?
- \OTRSETsavebox{#9}%
- \OTRSETerasegridcells\currenthcell\currentvcell\columnhcells\columnvcells
- %\message{[clr]}% save box
- \fi
- \else
- %\message{[flt]}% float
- \fi
- \else
- %\message{[flt]}% float
- \fi
- \OTRSETsetvsize
- %\message{[fnt]}% float
- \else
- %\message{[rej]}% save box
- \OTRSETsavebox{#9}%
- \fi}
-
-\chardef\columnslotspacing \plusone
-
-\def\OTRSETstoreincolumnslot#1% #2 % {method} {box} % alleen last
- {% no messing around here
- % \dp#2=\zeropoint
- % \ifcase\columnslotspacing\else
- % \setbox#2=\vbox spread \columnslotspacing\lineheight
- % {\vss\box#2\vss}%
- % \fi
- % and don't change this any more
-% \doifdefinedelse{\strippedcsname\OTRSETstoreincolumnslot#1}
-% {\getvalue{\strippedcsname\OTRSETstoreincolumnslot#1}{#2}}
-% {\OTRSETstoreincolumnslotUNKNOWN{#2}}}
- \executeifdefined{\strippedcsname\OTRSETstoreincolumnslot#1}
- \OTRSETstoreincolumnslotUNKNOWN} % {#2}}
-
-\def\OTRSETstoreincolumnslotUNKNOWN#1%
- {\OTRSETprepareforcolumnslot2{#1}\copy#1} % {} ?
-
-% \def\OTRSETprepareforcolumnslot#1#2% 1=hoog 2=midden 3=laag
-% {\dp#2\zeropoint
-% \ifcase\columnslotspacing\else
-% \scratchdimen\columnslotspacing\lineheight
-% \ifnum#1=2 \scratchdimen2\scratchdimen \fi
-% \setbox#2\vbox spread \scratchdimen
-% {\ifnum#1>1\vss\fi\box#2\relax\ifnum#1<3\vss\fi}%
-% \fi}
-
-\def\OTRSETprepareforcolumnslot#1#2% 1=hoog 2=midden 3=laag
- {\dp#2\zeropoint
- \ifcase\columnslotspacing\else
- \scratchdimen\columnslotspacing\lineheight
- \ifnum#1=2 \scratchdimen2\scratchdimen \fi
- \begingroup
- \advance\scratchdimen\ht#2\relax
- \ifdim\scratchdimen<\columnmaxcells\lineheight
- \endgroup \setbox#2\vbox spread \scratchdimen \bgroup
- \else
- \endgroup \setbox#2\vbox to \columnmaxcells\lineheight \bgroup
- \vskip\strutdepth
- \fi
- \ifnum#1>1\vss\fi
- \box#2\relax
- \ifnum#1<3\vss\fi
- \egroup
- \fi}
-
-\def\OTRSETdocheckiffloatfits % eigenlijk moet else float anders
- {\global\ifnofloatpermitted\roomforfloatfalse\else\roomforfloattrue\fi}
-
-\def\OTRSETunpreparebox#1%
- {\ifhbox#1% spans and so
- \global\setbox\floatbox\vbox{\box#1}%
- \else
- \setbox\scratchbox\vbox
- {\unvbox#1\unskip\unskip\unskip
- \global\setbox\floatbox\lastbox}%
- \fi}
-
-\def\OTRSETsavebox#1% clean up the skips
- {\OTRSETunpreparebox{#1}%
- \dosavefloat}
-
-\def\OTRSETresavebox#1% clean up the skips
- {\OTRSETunpreparebox{#1}%
- \doresavefloat}
-
-\def\OTRSETflushfloatbox % nog verder doorvoeren en meer info in marge
- {\iftestfloatbox\ruledhbox\fi{\box\floatbox}}
-
-\def\OTRSETdoflushfloats
- {\bgroup
- \def\OTRSETsavebox##1{\!!doneafalse}%
- \doloop
- {\ifsomefloatwaiting
-\OTRSETskipstart
- \dogetfloat
- \ifdim\wd\floatbox>\zeropoint
- \!!doneatrue
- \dp\floatbox\zeropoint
- \OTRSETstoreincolumnslot{TBLR}\floatbox
- \if!!donea
- %\message{[flu]}%
- \else
- \OTRSETresavebox\floatbox
- \exitloop
- \fi
- \else
- %\message{[err]}% happens but why?
- \fi
- \else
- \exitloop
- \fi}
- \egroup}
-
-\newif\ifcentergridcells \centergridcellstrue
-
-\newif\ifcentergridcellonly \centergridcellonlyfalse
-\newif\ifautocentergridcellonly \autocentergridcellonlytrue
-
-\def\OTRSETcentergridcells
- {\ifcentergridcells
- \dorecurse\nofcolumns
- {\currenthcell\recurselevel
- \ifautocentergridcellonly
- % we prevent centering when the next column is empty
- % to be checked ! ! ! !
- \advance\currenthcell \plusone
- \centergridcellonlytrue
- \ifnum\currenthcell>\nofcolumns
- % ok already
- \else
- % only span if there is a next column with content
- \dorecurse\columnmaxcells
- {\ifdim\ht\OTRSETgridcell\currenthcell\currentvcell>\zeropoint
- \centergridcellonlyfalse
- \else\ifdim\dp\OTRSETgridcell\currenthcell\currentvcell>\zeropoint
- \centergridcellonlyfalse
- \fi\fi}%
- \fi
- \fi
- \currenthcell\recurselevel
- \dorecurse\columnmaxcells
- {\currentvcell\recurselevel\relax
- \ifdim\ht\OTRSETgridcell\currenthcell\currentvcell>\zeropoint
- \ifdim\dp\OTRSETgridcell\currenthcell\currentvcell=\zeropoint
- \bgroup
- \setbox\scratchbox\OTRSETgetgridcell\currenthcell\currentvcell
- \getnoflines{\ht\scratchbox}%
- \!!counta\currentvcell
- \advance\!!counta -\noflines
- \advance\!!counta \plusone
- % first col always ok
- \!!countb\currenthcell
- \!!countc\currenthcell
- \advance\!!countc \plusone
- \!!donebtrue
- \ifcentergridcellonly
- \!!countc\maxdimen
- \fi
- \dostepwiserecurse\!!countc\nofcolumns\plusone
- {\if!!doneb
- \let\xrecurselevel\recurselevel
- \dostepwiserecurse\!!counta\currentvcell\plusone
- {\ifdim\ht\OTRSETgridcell\xrecurselevel\recurselevel>\zeropoint
- \!!donebfalse
- \else\ifdim\wd\OTRSETgridcell\xrecurselevel\recurselevel>\zeropoint
- \!!donebfalse
- \fi\fi}%
- \if!!doneb
- \!!countb\xrecurselevel
- \fi
- \fi}%
- \totalcolumnspace\OTRSETlocalwidth\currenthcell
- \dostepwiserecurse\!!countc\!!countb\plusone
- {\advance\totalcolumnspace \OTRSETlocalwidth\recurselevel
- \advance\totalcolumnspace \OTRSETgetparameter\c!distance\recurselevel}%
- \ifdim\totalcolumnspace>\wd\scratchbox
- \setbox\scratchbox\hbox to \totalcolumnspace{\hss\box\scratchbox\hss}%
- \fi
- \OTRSETsetgridcell\currenthcell\currentvcell\box\scratchbox
- \egroup
- \fi
- \fi}}%
- \fi}
-
-\def\OTRSETinitializecolumns% once per page
- {\columnspreadtrue % todo
- \ifcolumnspread
- \global\rofcolumns\getvalue{\??mc\OTRSETidentifier\c!nright}%
- \global\lofcolumns\getvalue{\??mc\OTRSETidentifier\c!nleft}%
- \global\tofcolumns\rofcolumns \relax
- \ifodd\realpageno\relax
- \global\nofcolumns\rofcolumns
- \else
- \global\advance\tofcolumns\lofcolumns
- \global\nofcolumns\lofcolumns
- \fi
- \else
- \global\nofcolumns\getvalue{\??mc\OTRSETidentifier\c!n}%
- \global\rofcolumns\nofcolumns
- \global\lofcolumns\nofcolumns
- \global\tofcolumns\nofcolumns
- \fi
- \OTRSETassignwidths
- \global\mofcolumns\plusone
- \columnerasegridboxes}
-
-% vanaf hier:
-
-\def\definecolumnset
- {\dodoubleargument\dodefinecolumnset}
-
-\def\dodefinecolumnset[#1][#2]%
- {\getparameters[\??mc#1]
- [\c!direction=\v!right,
- \c!balance=\v!no,
- \c!distance=1.5\bodyfontsize, % controleren
- \c!n=2,
- \c!nleft=\getvalue{\??mc#1\c!n},
- \c!nright=\getvalue{\??mc#1\c!n},
- \c!width=\v!fit,
- \c!lines=0,
- \c!start=0,
- #2]%
- \dorecurse{\getvalue{\??mc#1\c!nleft}} % todo
- {\dododefinecolumnset[#1][\recurselevel]}%
- \dorecurse{\getvalue{\??mc#1\c!nright}} % todo
- {\dododefinecolumnset[#1][\recurselevel]}%
- % redo framed settings
- \setupcolumnset[#1][1][\c!distance=\!!zeropoint]}
-
-\def\dododefinecolumnset[#1][#2]%
- {\presetlocalframed
- [\??mc#1#2]%
- \setupcolumnset
- [#1][#2]
- [\c!offset=\v!overlay,
- \c!frame=\v!off,
- \c!align=,
- \c!lines=0,% really needed since c!regels is now part of framed
- \c!width=\getvalue{\??mc#1\c!width},
- \c!distance=\getvalue{\??mc#1\c!distance}]}
-
-\def\setupcolumnset
- {\dotripleargument\dosetupcolumnset}
-
-\def\dosetupcolumnset[#1][#2][#3]%
- {\ifthirdargument
- \def\docommand##1%
- {\doifelse{##1}\v!each
- {\dorecurse{\getvalue{\??mc#1\c!n}}{\docommand\recurselevel}}
- {\getparameters[\??mc#1##1][#3]}}%
- \processcommalist[#2]\docommand
- \else
- \getparameters[\??mc#1][#2]%
- \fi}
-
-\definecolumnset[\s!default][\c!n=2] % fallback
-
-\def\OTRSETgotonextpage
- {\vfill\eject
- \relax\ifnum\mofcolumns>\plusone
- \OTRSETgotocolumn[\v!last]%
- \ifnum\mofcolumns>\plusone
- \OTRSETgotocolumn[\v!force]%
- \fi
- \fi}
-
-\let\OTRSETgotonextpageX\OTRSETgotonextpage % will become obsolete
-
-\def\OTRSETgotocolumn
- {\dosingleempty\doOTRSETgotocolumn}
-
-\def\doOTRSETgotoCOLROW#1% <number>|<number>*<number>
- {\bgroup % really needed
- \splitstring#1\at*\to\column\and\row
- \bgroup
- \ifx\column\empty\else\expanded{\doOTRSETgotoCOLUMN{\column}}\fi
- \egroup
- \bgroup
- \ifx\row \empty\else\expanded{\doOTRSETgotoROW {\row }}\fi
- \egroup
- \egroup}
-
-\def\doOTRSETgotoCOLUMN#1%
- {\ifnum\mofcolumns=#1\else
- \vfill\eject % \doejectpage\eject
- \doloop
- {\ifnum\mofcolumns=#1\relax
- \exitloop \else \OTRSETdummycolumn
- \fi}%
- \fi}
-
-\def\doOTRSETgotoROW#1%
- {\ifnum#1>1
- \scratchcounter\zerocount
- \currenthcell\mofcolumns
- \currentvcell#1\advance\currentvcell \minusone
- \dorecurse\currentvcell
- {\OTRSETdoifcellelse\mofcolumns\recurselevel\donothing
- {\advance\scratchcounter\plusone}}
- \getnoflines\pagetotal
- \advance\scratchcounter-\noflines
- \ifnum\scratchcounter>\zerocount
- \dorecurse\scratchcounter{\line{\strut}}%
- \fi
- \fi
- \OTRSETsetvsize}
-
-\def\doOTRSETgotocolumn[#1]% yes|force|first|last|<number>|<number>*<number>
- {\processallactionsinset
- [#1]
- [ \v!yes=>\OTRSETdummycolumn,
- \v!no=>,% not supported
- \v!force=>\OTRSETdummycolumn,
- \v!first=>\expanded{\doOTRSETgotoCOLUMN{1}},
- \v!last=>\expanded{\doOTRSETgotoCOLUMN{\the\nofcolumns}},
- \s!default=>\OTRSETdummycolumn,
- \s!unknown=>\expanded{\doOTRSETgotoCOLROW{\commalistelement}}]}
-
-% to be documented and tested, not yet that robust
-
-% \def\OTRSETgotocell#1#2%
-% {\endgraf
-% \gdef\gotocellcounter{0}%
-% \doloop
-% {\ifnum\mofcolumns<#1\relax
-% \doglobal\increment\gotocellcounter\relax
-% \ifnum\gotocellcounter>#1\relax
-% \line{\strut}\crlf
-% \line{\strut}\crlf
-% \column
-% \writestatus{columnset}{quitting goto cell}%
-% \exitloop
-% \else
-% \column
-% \fi
-% \else
-% \exitloop
-% \fi}%
-% \ifnum\mofcolumns=#1\relax
-% \ifnum#2>1
-% \scratchcounter\zerocount
-% \currenthcell\mofcolumns
-% \currentvcell#2\advance\currentvcell \minusone
-% \dorecurse\currentvcell
-% {\OTRSETdoifcellelse\mofcolumns\recurselevel\donothing
-% {\advance\scratchcounter\plusone}}
-% \getnoflines\pagetotal
-% \advance\scratchcounter-\noflines
-% \ifnum\scratchcounter>\zerocount
-% \dorecurse\scratchcounter{\line{\strut}}%
-% \fi
-% \fi
-% \fi
-% \OTRSETsetvsize}
-
-\def\OTRSETgotocell#1#2% obsolete: now \column[#1*#2]
- {\endgraf
- \doOTRSETgotoCOLUMN{#1}%
- \doOTRSETgotoROW {#2}}
-
-\def\OTRSETdummycolumn
- {\verticalstrut
- \vskip-\struttotal
- \vfill
- \eject}
-
-\newcounter\columnsetlevel
-\let\currentcolumnset\empty
-\chardef\OTRSETfinish\zerocount
-
-\def\startcolumnset
- {\dodoubleempty\dostartcolumnset}
-
-\def\dostartcolumnset[#1][#2]%
- {\increment\columnsetlevel\relax
- \globallet\localcolumnmaxcells\!!zerocount
- \global\chardef\OTRSETfinish\zerocount
- \resetOTRSETmarks
- \ifnum\columnsetlevel=\plusone
- \bgroup
- \saveinterlinespace
- \globallet\columnsetpage\!!plusone
- \def\currentcolumnset{#2}%
- \insidecolumnstrue % will be different flag in addition
- \activateotr{SET}{ONE}% andere naam, activate or so
- \doifelsenothing{#1}
- {\globallet\OTRSETlist\s!default}
- {\xdef\OTRSETlist{#1}}%
- \OTRSETstartnextpage
- \OTRSETassignwidths
- \OTRSETsethsize
- \else
- \bgroup
- \fi}
-
-% \setuplayout[grid=yes] \definecolumnset[example] \showgrid
-
-% \starttext
-% \startcolumnset[example]
-% \input knuth \endgraf \input knuth
-% \placetable{table}{\framed[width=\makeupwidth,height=4cm]{Hello}}
-% \input knuth \endgraf \input knuth
-% \stopcolumnset
-% \input knuth \endgraf \input knuth
-% \stoptext
-
-
-\def\OTRSETflushleftovers % new per 13/4/2006
- {\OTRSETdoifcellelse{1}{1}
- {\bgroup
- \OTRSETcentergridcells
- \chardef\OTRSETbalancemethod\plusone
- \OTRSETreducegridbox
- \global\setbox\OTRfinalpagebox\OTRSETmakegridbox
- \ht\OTRfinalpagebox\textheight % signals output that there is content
- \OTRSETdofinaloutput
- \globallet\OTRSETbalht\zeropoint
- \egroup}
- {}}
-
-\def\stopcolumnset
- {\relax
- \ifnum\columnsetlevel=\plusone
- \endgraf % needed, else wrong vsize in one par case
- \global\chardef\OTRSETfinish\plusone
- % no, extra page \pagebreak % (test on pascal toc)
- \dostopcolumnset
- \egroup
- \global\notelimittrue % brrr, untested and fuzzy
- \setvsize
- \sethsize
- \ifvoid\OTRfinalpagebox\else
- % probably balanced
- \ifdim\ht\OTRfinalpagebox<\textheight
- \snaptogrid[\v!page]\hbox{\box\OTRfinalpagebox}%
- \else
- \box\OTRfinalpagebox
- \fi
- \fi
- \global\chardef\OTRSETfinish\zerocount
- \ifsomefloatwaiting \setvsize \pagebreak \setvsize \fi
- \OTRSETflushleftovers
- \else
- \egroup
- \fi
- \decrement\columnsetlevel\relax}
-
-\chardef\OTRSETbalancemethod\zerocount
-
-\def\dostopcolumnset
- {%\OTRSETdofinalflushfloats % yes/no
- \ifcase\OTRSETbalancemethod
- \OTRSETnobalance
- \else
- \OTRSETdobalance
- \fi}
-
-\def\OTRSETdobalance
- {\OTRSETnobalance}
-
-\def\localcolumnmaxcells{0}
-
-% don't loose empty 1page/1column with area (example **)
-%
-% \definecolumntextarea[title][x=1,y=4,nx=2,ny=7,state=start]
-% \setupcolumntextareatext[title][\vtop to 5cm{a\\b\\b\\d}]
-%
-% \starttext
-% \startcolumnset \dorecurse{1}{\input tufte \par} \stopcolumnset
-% \stoptext
-
-% better:
-
-\def\definecolumnsetarea {\definecolumntextarea}
-\def\setupcolumnsetarea {\setupcolumntextarea}
-\def\setupcolumnsetareatext{\setupcolumntextareatext}
-
-\def\OTRSETnobalance
- {\iflastcolumnfootnotes % testen ! optie
- % inhibit flush of floats !
- % todo: nothing if no footnotes, else empty page
- \dostepwiserecurse\mofcolumns\nofcolumns\plusone
- {\vskip-\struttotal\verticalstrut\vfill\eject}%
- \else
- \ifnum\mofcolumns>\plusone
- \donetrue
- \else\ifdim\pagetotal>\zeropoint % too dangerous, we loose data
- \donetrue
- \else
- \donefalse
- \fi\fi
- \ifdone
- \ifnum\mofcolumns=\nofcolumns
- \OTRSETflushfinalfootnotes
- \else
- % probably todo
- \fi
- \vfill
- \eject
-\registerOTRSETmarks
- % brr, may result in empty page after nicely fit text
- % or if left, then lost of first column only text
- \ifnum\mofcolumns>\plusone
- \OTRSETdofinalflush
- \OTRSETdofinaloutput
- \fi
- \fi
- \fi}
-
-\def\OTRSETstartnextpage
- {\doifsomething\OTRSETlist
- {\getfromcommacommand[\OTRSETlist][1]%
- \global\let\OTRSETidentifier\commalistelement
- \doifundefined{\??mc\OTRSETidentifier\c!n}
- {\globallet\OTRSETidentifier\s!default}%
- \let\newcommalistelement\empty
- \doglobal\replaceincommalist\OTRSETlist1%
- \OTRSETrestart}}
-
-\def\OTRSETrestart % weed
- {\OTRSETinitializefeatures
- \OTRSETflushpreposttext
- \OTRSETinitializecolumns
- \OTRSETcheckinsert
- \OTRSETcheckgrid
- \OTRSETsetvsize
- \OTRSETsethsize % or local ?
- \OTRSETsetplaceholders
- \OTRSEThandlepreposttext
- \initializecolumntextareas % name !
- \OTRSETcheckstartcells
- \OTRSETsetvsize}
-
-% \def\OTRSETcheckstartcells
-% {\dorecurse\nofcolumns
-% {\bgroup
-% \mofcolumns\recurselevel
-% \scratchcounter\currentcolumnstartcell % uses \mofcolumns, returns 1 or more
-% \advance\scratchcounter \minusone
-% \dorecurse\scratchcounter
-% {\OTRSETdoifcellelse\mofcolumns\recurselevel
-% \donothing{\OTRSETsetgridcell\mofcolumns\recurselevel\copy\placeholderboxe}}%
-% \egroup}}
-
-\def\OTRSETcheckstartcells
- {\dorecurse\nofcolumns
- {\bgroup
- \mofcolumns\recurselevel
-\OTRSETsetcorrectnofcells\currentcolumnstartcell
-\advance\scratchcounter \minusone
- \dorecurse\scratchcounter
- {\OTRSETdoifcellelse\mofcolumns\recurselevel
- \donothing{\OTRSETsetgridcell\mofcolumns\recurselevel\copy\placeholderboxe}}%
- \egroup}}
-
-% \OTRSEToutput
-% {\dontcomplain % new, get rid of overfull message (to be sorted out)
-% \OTRSETnaturalflush
-% %\OTRSETstartnextpage
-% \OTRSETdoflushfloats % actually belongs in \flushsavedfloats (but goes wrong)
-% \OTRSETcheckfreelines
-% \OTRSETchecksidefloat}
-
-\OTRSEToutput
- {\dontcomplain % new, get rid of overfull message (to be sorted out)
- \doloop
- {\OTRSETnaturalflush
- %\OTRSETstartnextpage % no
- \OTRSETdoflushfloats % actually belongs in \flushsavedfloats (but goes wrong)
- \OTRSETcheckfreelines
- \ifsomefreecolumncells
- \exitloop
- \else
- % flush page and get rid of more floats if present
- \fi}%
- \OTRSETchecksidefloat}
-
-\def\OTRSETinitializefeatures
- {% number of lines
- % new: raw
- \getrawnoflines\textheight\xdef\columnmaxcells{\the\noflines}%
- % direction
- \doifelsevalue{\??mc\OTRSETidentifier\c!direction}\v!right
- {\chardef\columndirection\zerocount}
- {\chardef\columndirection\plusone}%
- % balancing
- \chardef\OTRSETbalancemethod\zerocount
- \processaction
- [\getvalue{\??mc\OTRSETidentifier\c!balance}]
- [ \v!yes=>\chardef\OTRSETbalancemethod\plusone,
- \v!top=>\chardef\OTRSETbalancemethod\plustwo,
- \v!bottom=>\chardef\OTRSETbalancemethod\plusthree]}
-
-% keep 'm for a while
-%
-% \installoutput\OTRSETflushpreposttext
-% {\global\setbox\precolumnbox\vbox{\unvbox\normalpagebox}%
-% \ifcarryoverfootnotes \else
-% \global\setbox\postcolumnbox\vbox{\placebottomnotes}%
-% \fi}
-%
-% to be tested on 'boekinhoud' in 'pascal/demo-bbi'
-%
-% junk ! ! ! ! !
-%
-%\installoutput\OTRSETflushpreposttext
-% {\global\setbox\precolumnbox\vbox
-% {\unvbox\normalpagebox
-% \strut\vskip-2\lineheight\strut}% we want a proper depth
-% \ifcarryoverfootnotes \else
-% \global\setbox\postcolumnbox\vbox{\placebottomnotes}%
-% \fi}
-%
-% \starttext
-% \definecolumnset[two][n=2]
-% \startcolumnset[two] \dorecurse{4}{\input tufte } \stopcolumnset
-% \input tufte
-% \startcolumnset[two] \input tufte \stopcolumnset
-% \stoptext
-%
-% \installoutput\OTRSETflushpreposttext
-% {\global\setbox\precolumnbox\vbox{\unvbox\normalpagebox}%
-% \dp\precolumnbox\strutdepth
-% \ifcarryoverfootnotes \else
-% \global\setbox\postcolumnbox\vbox{\placebottomnotes}%
-% \fi}
-
-% test:
-%
-% \setupcolumnset [test-1] [balance=yes]
-% \setupcolumnset [test-2] [balance=yes]
-% \setupcolumnsetlines[test-1][1][1] [8]
-% \setupcolumnsetlines[test-1][1][2][10]
-% \startcolumnset [test-1] \dorecurse {1}{\input tufte \par} \stopcolumnset
-% \startcolumnset [test-2] \dorecurse {2}{\input ward \par} \stopcolumnset
-
-\ifx\lastskipinotr\undefined \newskip\lastskipinotr \fi
-
-\installoutput\OTRSETflushpreposttext
- {\global\setbox\precolumnbox\vbox
- {\unvbox\normalpagebox
- \global\lastskipinotr\lastskip}%
- \ifdim\lastskipinotr>\zeropoint
- \global\setbox\precolumnbox\hbox
- {\lower\strutdepth\box\precolumnbox}%
- \fi
- \dp\precolumnbox\strutdepth
- \ifcarryoverfootnotes \else
- \global\setbox\postcolumnbox\vbox{\placebottomnotes}%
- \fi}
-
-\let\precolumnlines \!!zerocount
-\let\postcolumnlines\!!zerocount
-
-\def\OTRSEThandlepreposttext
- {\ifdim\ht\precolumnbox>\zeropoint % new
- \getnoflines{\ht\precolumnbox}%
- \edef\precolumnlines{\the\noflines}%
- \doOTRSETsetgridcells
- {\copy\placeholderboxe}
- \plusone\plusone\nofcolumns\noflines
- % normal version (single column set)
- % {\box\precolumnbox}%
- % compensated for bodyfont change
- {\hbox
- {\OTRSETsetcorrectcellht
- \raise\scratchdimen\box\precolumnbox}}%
- \else
- \let\precolumnlines\!!zerocount
- \fi
- \ifdim\ht\postcolumnbox>\zeropoint % new, otherwise empty bottom line
- \getnoflines{\ht\postcolumnbox}%
- \edef\postcolumnlines{\the\noflines}%
- \advance\columnfreecells -\noflines
- \advance\columnfreecells \plusone
- \doOTRSETsetgridcells
- {\copy\placeholderboxe}
- \plusone\columnfreecells\nofcolumns\noflines
- {\box\postcolumnbox}%
- \else
- \let\postcolumnlines\!!zerocount
- \fi}
-
-\def\OTRSETchecksidefloat
- {} % {\sidefloatoutput}
-
-\def\OTRSETfinalsidefloatoutput
- {}
-
-\def\OTRSETcheckgrid
- {\topskip1\topskip
- \ifforcecolumngrid
- \widowpenalty\zerocount
- \clubpenalty\zerocount
- \brokenpenalty\zerocount
- \fi}
-
-\def\OTRSETcheckinsert
- {\iflastcolumnfootnotes
- \ifnum\nofcolumns=\mofcolumns
- \OTRSETforceinserts
- \else
- \OTRSETinhibitinserts
- \fi
- \else
- \OTRSETforceinserts
- \fi}
-
-\def\OTRSETforceinserts
- {\enablenotes}
-
-\def\OTRSETinhibitinserts
- {\disablenotes}
-
-% undocumented goodie
-
-\def\definecolumnsethsize#1#2#3#4% will be improved/speed up
- {\bgroup
- \def\OTRSETidentifier{#1}%
- \ifcase\columnsetlevel\relax
- \mofcolumns\plusone
- \OTRSETinitializecolumns
- \OTRSETassignwidths
- \OTRSETsethsize
- \fi
- \!!counta#2\!!countb#3\docalculatecolumnsetspan
- \expandafter\egroup\expandafter\edef\expandafter
- #4\expandafter{\the\!!widtha}}
-
-% interface to footnotes
-
-\def\OTRSETassignwidths
- {%\scratchdimen\makeupwidth
- \freezetextwidth \scratchdimen\textwidth
- %
- \scratchcounter\zerocount
- \dorecurse\nofcolumns
- {\doifelsevalue{\??mc\OTRSETidentifier\recurselevel\c!width}\v!fit
- {\advance\scratchcounter \plusone }
- {\advance\scratchdimen -\getvalue{\??mc\OTRSETidentifier\recurselevel\c!width}}%
- \advance\scratchdimen -\getvalue{\??mc\OTRSETidentifier\recurselevel\c!distance}}%
- \ifcase\scratchcounter\else
- \divide\scratchdimen \scratchcounter
- \fi
- \setgvalue{\??mc\??mc\c!width}{0}%
- \dorecurse\nofcolumns
- {\doifelsevalue{\??mc\OTRSETidentifier\recurselevel\c!width}\v!fit
- {\dimen0=\scratchdimen}
- {\setgvalue{\??mc\??mc\c!width}{1}%
- \dimen0=\getvalue{\??mc\OTRSETidentifier\recurselevel\c!width}}%
- \setxvalue{\??mc\recurselevel\??mc\c!width}{\the\dimen0}}}
-
-\def\OTRSETlocalwidth#1%
- {\getvalue{\??mc\number#1\??mc\c!width}}
-
-\newbox\placeholderboxa
-\newbox\placeholderboxb
-\newbox\placeholderboxc
-\newbox\placeholderboxd
-\newbox\placeholderboxe
-\newbox\placeholderboxf
-
-\def\columnplaceholder#1#2%
- {\hbox
- {\localcolortrue
- \setbox\scratchbox\hbox to \hsize
- {\iftracecolumnset \incolortrue \localcolortrue
- \hskip-.5ex%
- \startcolor[columnset:#2]\vrule\!!width1ex\!!height.5ex\!!depth.5ex\stopcolor
- \fi
- \hss}%
- \ifcase#1\relax
- \ht\scratchbox\zeropoint
- \dp\scratchbox\zeropoint
- \wd\scratchbox\zeropoint
- \else
- \wd\scratchbox\hsize
- \ht\scratchbox\strutht
- \dp\scratchbox\strutdp
- \fi
- \box\scratchbox}}
-
-\definepalet
- [columnset]
- [a=cyan,b=green,c=blue,d=red,e=magenta,f=darkgray]
-
-\def\OTRSETsetplaceholders
- {\global\setbox\placeholderboxa\columnplaceholder0a%
- \global\setbox\placeholderboxb\columnplaceholder0b%
- \global\setbox\placeholderboxc\columnplaceholder0c%
- \global\setbox\placeholderboxd\columnplaceholder0d%
- \global\setbox\placeholderboxe\columnplaceholder0e%
- \global\setbox\placeholderboxf\columnplaceholder1f}
-
-\def\doOTRSETshowstatus
- {\llap{\incolortrue \localcolortrue \tt\tfxx
- \startcolor[blue](\the\vsize->\number\columnfirstcell\#\number\columnfreecells)\stopcolor
- \hskip\leftskip}}
-
-\def\OTRSETshowstatus
- {\iftracecolumnset \doOTRSETshowstatus \fi}
-
-% \appendtoks \OTRSETshowstatus \to \everypar
-
-% page contents
-
-\def\OTRSETdopagecontents#1#2% takes two args: \box<n> \unvbox<n>
- {\vbox to \textheight{\forgetall#1#2\pushproperties}}
-
-\def\OTRSETsomepagefloat {\def\floatmethod{PAGE}\OTRSETsomeslotfloat} % check
-\def\OTRSETsomeherefloat {\def\floatmethod{HERE}\OTRSETsomeslotfloat} % check
-\def\OTRSETsomeelsefloat {\def\floatmethod{HERE}\OTRSETsomeslotfloat} % check
-\def\OTRSETsomefixdfloat {\def\floatmethod{FIXD}\OTRSETsomeslotfloat} % check
-\def\OTRSETsometopfloat {\def\floatmethod{TOPS}\OTRSETsomeslotfloat} % check
-\def\OTRSETsomebottomfloat{\def\floatmethod{BOTS}\OTRSETsomeslotfloat} % check
-
-\def\OTRSETflushfloatbox % nog verder doorvoeren en meer info in marge
- {\iftestfloatbox\ruledhbox\fi{\box\floatbox}}
-
-\def\OTRSETsomeslotfloat[#1]%
- {\setbox\floatbox\vbox{\flushfloatbox}%
- \dp\floatbox\strutdp
- \@EA\uppercasestring\floatmethod\to\floatmethod
- \OTRSETstoreincolumnslot\floatmethod\floatbox
- \doinsertfloatinfo}
-
-% kind of new, looks much like OTRONE, but not entirely
-
-\def\OTRSETdosettopinserts
- {\bgroup
- \ifsomefloatwaiting
- \noffloatinserts\zerocount
- \let\totaltopinserted\!!zeropoint
- \OTRSETdodosettopinserts
- \ifnum\@@bknbottom=\zerocount
- \ifnum\@@bknlines>\zerocount
- \ifdim\totaltopinserted>\zeropoint\relax
- \dimen0\lineheight
- \dimen0=\@@bknlines\dimen0
- \advance\dimen0 \totaltopinserted\relax
- \ifdim\dimen0>\textheight % \vsize %%%%%%%%% \textheight
- \showmessage\m!floatblocks8{\@@bknlines}%
- \vfilll\eject
- \fi
- \fi
- \fi
- \fi
- \fi
- \egroup}
-
-\def\OTRSETdodosettopinserts
- {\ifnum\noffloatinserts<\noftopfloats
- \dogetfloat
- \ifdim\topinserted=\zeropoint\relax
- \topofinserttrue
- \else
- \topofinsertfalse
- \fi
- \setbox\scratchbox\vbox % kan beter !
- {\forgetall
- \iftopofinsert
- \ifdim\OTRSETtopoffset=\zeropoint
- \moveongrid[\v!top]
- \fi
- \else
- \betweenfloatblanko % inserts can't look back
- \fi
- \flushfloatbox
- \blank[\@@bkspaceafter]}%
- \global\advance\topinserted \ht\scratchbox\relax
- \ifdim\topinserted>\vsize % was \textheight\relax
- \OTRSETresavebox\floatbox
- \noffloatinserts\noftopfloats\relax
- \global\advance\topinserted -\ht\scratchbox
- \let\OTRSETdodosettopinserts\relax % to be tested
- \else
- \xdef\totaltopinserted{\the\topinserted}%
- \insert\topins{\forgetall\box\scratchbox}% interlineskip ?
- \ifsomefloatwaiting
- \advance\noffloatinserts \plusone
- \else
- \noffloatinserts\noftopfloats\relax
- \fi
- \dofloatflushedinfo
- \fi
- \else
- \ifsomefloatwaiting
- \showmessage\m!floatblocks6{\the\noftopfloats}%
- \fi
- \let\OTRSETdodosettopinserts\relax
- \fi
- \OTRSETdodosettopinserts}
-
-\def\OTRSETdosetbotinserts
- {\bgroup
- \ifsomefloatwaiting
- \noffloatinserts\zerocount
- \OTRSETdodosetbotinserts
- \fi
- \egroup}
-
-\def\OTRSETdodosetbotinserts
- {\ifnum\noffloatinserts<\nofbotfloats\relax
- \dogetfloat
- \global\advance\botinserted \ht\floatbox\relax
- \global\advance\botinserted \dp\floatbox\relax
- \global\advance\botinserted \floattopskip\relax
- \ifdim\botinserted<\pagegoal\relax
- \insert\botins
- {\forgetall
- \blank[\@@bkspacebefore]%
- \flushfloatbox}%
- \ifsomefloatwaiting
- \advance\noffloatinserts \plusone
- \else
- \noffloatinserts\nofbotfloats
- \fi
- \dofloatflushedinfo
- \else
- \OTRSETresavebox\floatbox
- \noffloatinserts\nofbotfloats\relax
- \fi
- \global\nofloatpermittedtrue % vgl topfloats s!
- \else
- \ifsomefloatwaiting
- \showmessage\m!floatblocks7{\the\nofbotfloats}%
- \fi
- \let\OTRSETdodosetbotinserts\relax
- \fi
- \OTRSETdodosetbotinserts}
-
-\let\OTRSETdosetbothinserts\relax
-
-\def\OTRSETdotopinsertions
- {\ifvoid\topins\else
- \ifvoid\columntopbox\mofcolumns
- \columnsettopbox\mofcolumns\box\topins
- \else
- \columnsettopbox\mofcolumns\vbox % temp, must be better
- {\forgetall
- \offinterlineskip
- \box\columntopbox\mofcolumns
- \box\topins}
- \fi
- \fi
- \global\topinserted\zeropoint\relax} % goes away
-
-\def\OTRSETdobotinsertions
- {\ifvoid\botins \else
- \columnsetbotbox\mofcolumns\box\botins
-% \else
-% \columnsetbotbox\mofcolumns\vbox % temp, must be better
-% {\forgetall
-% \offinterlineskip
-% \box\botins
-% \box\columnbotbox\mofcolumns}
- \fi
- \global\botinserted\zeropoint\relax} % goes away
-
-% set ipv text
-
-% left right 1 2 3 +1 +2 +3
-
-\let\columnleftareas \empty
-\let\columnrightareas\empty
-
-% links rechts => odd, even, n, named
-
-\def\definecolumntextarea
- {\dotripleempty\dodefinecolumntextarea}
-
-\def\dodefinecolumntextarea[#1][#2][#3]% y=0 is mogelijke en handig !
- {\ifthirdargument
- \doifinsetelse{#2}{\v!both,\v!fixed}
- {\definecolumntextarea[#1][\v!left ][\c!type=#2,#3]%
- \definecolumntextarea[#1][\v!right][\c!type=#2,#3]}
- {\doifelse{#2}\v!next
- {\doifoddpageelse
- {\definecolumntextarea[#1][\v!right][\c!type=#2,#3]}
- {\definecolumntextarea[#1][\v!left ][\c!type=#2,#3]}}
- {\presetlocalframed
- [\??mt#1#2]%
- \processaction[#2] % \doglobal voorkomt stack build up
- [ \v!left=>\doglobal\addtocommalist{#1}\columnleftareas,
- \v!right=>\doglobal\addtocommalist{#1}\columnrightareas]%
- \getparameters[\??mt#1#2]
- [\c!x=1,\c!y=1,\c!nx=1,\c!ny=1,\c!clipoffset=2\lineheight,
- \c!leftoffset=\zeropoint,\c!rightoffset=\zeropoint,
- \c!offset=\v!overlay,\c!strut=\v!no,\c!frame=\v!off,
- \c!type=#2,\c!page=1,\c!state=\v!stop,#3]}}%
- \else
- \definecolumntextarea[#1][\v!next][#2]%
- \fi}
-
-\def\setupcolumntextarea
- {\dotripleempty\dosetupcolumntextarea}
-
-\def\dosetupcolumntextarea[#1][#2][#3]%
- {\ifthirdargument
- \doifelse{#2}\v!both
- {\setupcolumntextarea[#1][\v!left ][#3]%
- \setupcolumntextarea[#1][\v!right][#3]}
- {\doifelse{#2}\v!next
- {\doifoddpageelse
- {\setupcolumntextarea[#1][\v!right][#3]}
- {\setupcolumntextarea[#1][\v!left][#3]}}
- {\getparameters[\??mt#1#2][#3]}}%
- \else
- \setupcolumntextarea[#1][\v!next][#2]%
- \fi}
-
-\def\docheckcolumnsetareapage#1#2%
- {\ifnum\getvalue{\??mt#1\c!page}>\plusone
- \doifelsevalue{\??mt#1\c!type}\v!fixed
- {\ifnum\columnsetpage=\getvalue{\??mt#1\c!page}\relax
- \donetrue\else\donefalse
- \fi}
- {\ifnum\columnsetpage<\getvalue{\??mt#1\c!page}\relax
- \donefalse\else\donetrue
- \fi}%
- \else
- \donetrue
- \fi}
-
-\def\initializecolumntextareas
- {\ifodd\realpageno
- \doinitializecolumntextareas\columnrightareas\v!right
- \else
- \doinitializecolumntextareas\columnleftareas\v!left
- \fi}
-
-\def\doinitializecolumntextareas#1#2%
- {\def\docommand##1%
- {\docheckcolumnsetareapage{##1#2}\plusone
- \ifdone
- \donefalse
- \processaction
- [\getvalue{\??mt##1#2\c!state}]
- [ \v!start=>\donetrue,
- \v!repeat=>\donetrue,
- \s!unknown=>\doperformtest\commalistelement\donetrue\donefalse]%
- \ifdone\dodoinitializecolumntextareas{##1}{#2}\fi
- \fi}%
- \processcommacommand[#1]\docommand}
-
-\def\dodoinitializecolumntextareas#1#2%
- {\doOTRSETsetgridcells
- {\copy\placeholderboxd}
- {\getvalue{\??mt#1#2\c!x }}{\getvalue{\??mt#1#2\c!y }}
- {\getvalue{\??mt#1#2\c!nx}}{\getvalue{\??mt#1#2\c!ny}}
- {\copy\placeholderboxd}}
-
-\def\placecolumntextareas
- {\ifodd\realpageno
- \doplacecolumntextareas\columnrightareas\v!right
- \else
- \doplacecolumntextareas\columnleftareas\v!left
- \fi}
-
-\def\doplacecolumntextareas#1#2% global ?
- {\bgroup
- \forgetall
- \def\docommand##1%
- {\docheckcolumnsetareapage{##1#2}\zerocount
- \ifdone
- \donefalse
- \processaction
- [\getvalue{\??mt##1#2\c!state}]
- [ \v!start=>\donetrue\doglobal\removefromcommalist{##1}#1,
- \v!repeat=>\donetrue,
- \s!unknown=>\doperformtest\commalistelement\donetrue\donefalse]%
- \ifdone
- \dodoplacecolumntextareas{##1}{#2}%
- \else
- \doglobal\removefromcommalist{##1}#1%
- \fi
- \fi}%
- \processcommacommand[#1]\docommand
- \egroup}
-
-% \page[left]
-% \definecolumntextarea[intro][left][x=1,y=1,nx=4,ny=20,state=start,background=introlayer]
-% \setupcolumntextareatext[intro][left][\setups{intro}]
-% \flushcolumntextareas
-
-\def\flushcolumntextareas
- {\initializecolumntextareas
- \setvsize}
-
-\def\columntextlastbackspace{\backspace}
-
-% beware, we have clipping offsets of 2\lineheight by default
-
-\def\columntextareaparameter#1%
- {\csname\??mt\currentcolumntestarea#1\endcsname}
-
-\def\dodoplacecolumntextareas#1#2%
- {\def\currentcolumntestarea{#1#2}%
- \!!counta\columntextareaparameter\c!x
- \!!countb\columntextareaparameter\c!nx
- \docalculatecolumnsetspan
- \!!heighta\columntextareaparameter\c!ny\lineheight
- % wrong
- % \ifnum\columntextareaparameter\c!y=\zerocount
- % \advance\!!heighta -\lineheight
- % \advance\!!heighta \topskip
- % \fi
- % \advance\!!heighta -\lineheight % option
- \ifnum\columntextareaparameter\c!y=\plusone
- \advance\!!heighta -\lineheight
- \advance\!!heighta \topskip
- \fi
- %
- \setbox\scratchbox\vbox
- {\donetrue\localframed
- [\??mt\currentcolumntestarea]
- [\c!location=,% new (*)
- \c!width=\!!widtha,\c!height=\!!heighta,\c!lines=]
- {\columntextareaparameter\empty}}%
- \!!counta\columntextareaparameter\c!x
- \!!countb\columntextareaparameter\c!y
- \advance\!!countb \columntextareaparameter\c!ny
- \advance\!!countb \minusone
- % new (*)
- \doif{\columntextareaparameter\c!location}\v!depth
- {\setbox\scratchbox\hbox{\lower\strutdepth\box\scratchbox}%
- \dp\scratchbox\zeropoint
- \ht\scratchbox\!!heighta}%
- %
- \setbox0\hbox
- {\ifcase\!!countc
- \copy\scratchbox % \box
- \else
- \clip
- [ %\c!topoffset=\columntextareaparameter\c!clipoffset,%
- %\c!bottomoffset=\columntextareaparameter\c!clipoffset,%
- %\c!leftoffset=\columntextareaparameter\c!clipoffset,%
- \c!offset=\columntextareaparameter\c!clipoffset,%
- \c!offset=\columntextareaparameter\c!clipoffset,%
- \c!rightoffset=\columntextareaparameter\c!rightoffset,%
- \c!width=\!!widthb,%
- \c!height=\!!heighta]%
- {\copy\scratchbox}%
- \fi}%
- \OTRSETsetgridcell\!!counta\!!countb\box0
- \ifcase\!!countc\else
- \advance\!!counta \columntextareaparameter\c!nx
- \advance\!!counta -\!!countc
- \advance\!!widtha -\!!widthb
- \setbox0\hbox
- {\hskip-\namedlayoutparameter\v!odd\c!backspace
- \clip
- [ %\c!topoffset=\columntextareaparameter\c!clipoffset,%
- %\c!bottomoffset=\columntextareaparameter\c!clipoffset,%
- %\c!rightoffset=\columntextareaparameter\c!clipoffset,%
- \c!offset=\columntextareaparameter\c!clipoffset,%
- \c!offset=\columntextareaparameter\c!clipoffset,%
- \c!leftoffset=\columntextareaparameter\c!leftoffset,%
- \c!width=\!!widtha,%
- \c!height=\!!heighta,%
- \c!hoffset=\!!widthb]%
- {\copy\scratchbox}}%
- \OTRSETsetgridcell\!!counta\!!countb\box0%
- \fi}
-
-\def\setupcolumntextareatext
- {\dotripleempty\dosetupcolumntextareatext}
-
-\long\def\dosetupcolumntextareatext[#1][#2][#3]%
- {\ifthirdargument
- \doifelse{#2}\v!both
- {\setvalue{\??mt#1\v!left }{#3}%
- \setvalue{\??mt#1\v!right}{#3}}
- {\doifelse{#2}\v!next
- {\doifoddpageelse
- {\setvalue{\??mt#1\v!right}{#3}}%
- {\setvalue{\??mt#1\v!left }{#3}}}%
- {\setvalue{\??mt#1#2}{#3}}}%
- \else
- \setupcolumntextareatext[#1][\v!next][{#2}]%
- \fi}
-
-\def\docalculatecolumnsetspan
- {% \!!counta <= x
- % \!!countb <= nx
- % \!!widtha => total width
- % \!!widthb => left width
- % \!!countc => left cols
- \!!widtha\!!countb\textwidth % we assume equal widths
- \advance\!!countb \!!counta
- \advance\!!countb \minusone
- \ifnum\!!countb>\nofcolumns
- \!!countc\!!countb
- \advance\!!countc -\nofcolumns
- \!!countb\nofcolumns
- \else
- \!!countc\zerocount
- \fi
- \advance\!!counta \plusone
- \dostepwiserecurse\!!counta\!!countb\plusone
- {\advance\!!widtha\OTRSETgetparameter\c!distance\recurselevel}%
- \!!widthb\!!widtha
- \advance\!!widthb -\!!countc\textwidth
- \ifodd\realpageno \else % tricky, assumes that we keep there
- \ifcase\!!countc\else
- % nog niet ok voor enkel/doublesided
- \advance\!!widtha \namedlayoutparameter\v!even\c!backspace
- \advance\!!widtha \namedlayoutparameter\v!odd \c!backspace
- \advance\!!widthb \namedlayoutparameter\v!even\c!backspace
- \dorecurse\!!countc
- {\advance\!!widtha\OTRSETgetparameter\c!distance\recurselevel}%
- \fi
- \fi}
-
-\def\columnsetspanhsize{\textwidth}
-
-\def\setcolumnsetspanhsize#1#2% x nx / uses counta/b
- {\!!counta#1\!!countb#2\docalculatecolumnsetspan
- \edef\columnsetspanhsize{\the\!!widtha}}
-
-\def\definecolumnsetspan
- {\dodoubleempty\dodefinecolumnsetspan}
-
-\def\dodefinecolumnsetspan[#1][#2]%
- {%\ifsecondargument
- \defineframedtext
- [cs:#1]
- [\c!frame=\v!off,
- \c!before=,
- \c!after=,
- \c!offset=\v!overlay,
- \c!location=\v!left,
- \c!linecorrection=\v!off,
- \c!depthcorrection=\v!off,
- \c!n=2,
- \c!nlines=0,
- \c!indenting=,
- \c!indentnext=\v!yes,
- \c!default=HERE,
- \c!alternative=\v!a,
- #2]%
- %\else
- % \definecolumnspan[][#1]%
- }%\fi}
-
-\definecolumnsetspan[\s!default]
-
-\def\setupcolumnsetspan
- {\dodoubleempty\dosetupcolumnsetspan}
-
-\def\dosetupcolumnsetspan[#1][#2]%
- {\ifsecondargument
- \setupframedtexts[cs:#1][#2]%
- \else
- \setupcolumnsetspan[\s!default][#1]%
- \fi}
-
-\def\startcolumnsetspan
- {\dotripleempty\dostartcolumnsetspan}
-
-%%%%%%%%%%%%%%%% TODO
-
-\def\dostartcolumnsetspan[#1][#2][#3]% [#3] gobbles space
- {\endgraf % else rubish output if forgotten
- \vskip \zeropoint % make sure otr is done, otherwise last line problems
- \bgroup
- \forgetall
- \ifnum\columnsetlevel>\zerocount\else
- % of course we needed a one-column fall back for tm
- \columnsetspanhsize\hsize
- \nofcolumns\plusone
- \mofcolumns\plusone
- \fi
- \setupframedtexts[cs:#1]
- [\c!width=\columnsetspanhsize,
- \c!linecorrection=\v!off,
- \c!depthcorrection=\v!off,
- #2]%
- % determine widths
- \!!countc\framedtextparameter{cs:#1}\c!n
- % \!!countd\numexpr(\nofcolumns-\mofcolumns+\plusone)%
- \!!countd\nofcolumns
- % n <= n of columns
- \ifnum\!!countc>\!!countd \!!countc\!!countd \fi
- \advance\!!countd -\mofcolumns
- \advance\!!countd \plusone
- % n <= n of available columns (alternative a)
- \doif{\framedtextparameter{cs:#1}\c!alternative}\v!a
- {\ifnum\!!countc>\!!countd \!!countc\!!countd \fi}%
- % here it all starts
- \setcolumnsetspanhsize\mofcolumns\!!countc % a/b used
- \hsize\columnsetspanhsize
- \setbox\scratchbox\vbox\bgroup
- \dostartframedtext[cs:#1][\v!none]% geen nils placement
- % spoils spacing : \vskip-\struttotal\par\verticalstrut\par
- \ifnum\columnsetlevel>\zerocount
- \framedtextparameter{cs:#1}\c!before
- \fi
- \def\stopcolumnsetspan{\dostopcolumnsetspan{#1}}}
-
-\def\dostopcolumnsetspan#1%
- {\par
- \verticalstrut
- \kern-2\struttotal
- \verticalstrut
- \ifnum\columnsetlevel>\zerocount
- \doifsomething{\framedtextparameter{cs:#1}\c!after}
- {\framedtextparameter{cs:#1}\c!after
- \kern\zeropoint}% otherwise blanks disappear, better be a switch
- \else
- \endgraf
- \fi
- \dostopframedtext
- \egroup
- \setbox\scratchbox\frozenhbox to \hsize
- {\dontcomplain
- \alignedline{\framedtextparameter{cs:#1}\c!location}\v!middle
- {\lower\strutdepth\box\scratchbox}}%
- \dp\scratchbox\zeropoint % else wrong snap insidefloat
-%
-% to be tested first (strange in grid mode)
-%
-% \setbox\scratchbox\frozenhbox to \hsize
-% {\dontcomplain
-% \chardef\alignstrutmode\zerocount
-% \alignedline{\framedtextparameter{cs:#1}\c!plaats}\v!midden
-% {\box\scratchbox}}%
-%
- \ifinsidefloat
- \box\scratchbox
- \else\ifnum\columnsetlevel>\zerocount
- % we only set \columnsetspacing when asked for, else bottom problems
- % don't change this any more (test naw)
- \chardef\columnslotspacing\framedtextparameter{cs:#1}\c!nlines\relax
- % todo: nboven/onder & \chardef\columnslotlocation2
- %\OTRSETstoreincolumnslotHERE\scratchbox
- \edef\floatmethod{\framedtextparameter{cs:#1}\c!default}%
- \@EA\uppercasestring\floatmethod\to\floatmethod
- % todo : \v!here -> here enzovoorts
- \OTRSETstoreincolumnslot\floatmethod\scratchbox
- % watch out: no \dochecknextindentation{tag}
- \checknextindentation[\framedtextparameter{cs:#1}\c!indentnext]%
- \else
- % of course we needed a one-column fall back for tm; brrr, the box has now too
- % much height (try \ruledvbox); don't change this without testing techniek
- \scratchdimen\ht\scratchbox
- \advance\scratchdimen-\strutdp
- \ht\scratchbox\scratchdimen
- \framedtextparameter{cs:#1}\c!before
- \snaptogrid\vbox{\box\scratchbox}%
- \framedtextparameter{cs:#1}\c!after
- \fi\fi
- \egroup
- \endgraf}
-
-% \startcolumnset[two]
-% \input tufte
-% \startcolumnsetspan[two][width=20cm,location=middle] \input tufte \stopcolumnsetspan
-% \startcolumnsetspan[two][default=btlr] \input tufte \stopcolumnsetspan
-% \input tufte \par
-% \input tufte \par
-% \startcolumnsetspan[two] \emptylines[5] \stopcolumnsetspan
-% \startcolumnsetspan[two] \input tufte \stopcolumnsetspan
-% \stopcolumnset
-
-\protect \endinput
-
-% extreme examples (1)
-%
-% \setupfloats[numbering=nocheck]
-%
-% \definecolumnset [first] [n=2,start=0]
-% \definecolumnset [next] [n=2,start=3]
-%
-% \setuptexttexts[\vbox to \textheight{\topskipcorrection \hsize\makeupwidth left \hfill right\vfill}]
-%
-% \setuphead[chapter][text=empty]
-%
-% \starttext
-%
-% \startcolumnset[first,next]
-% \placefigure[btrl]{}{}
-% \placefigure[tblr]{}{}
-% \chapter{thuan} \dorecurse{25}{\recurselevel: \input thuan \endgraf}
-% \stopcolumnset
-%
-% \startcolumnset[first,next]
-% \chapter{thuan} \dorecurse{25}{\input thuan \endgraf\placefigure{}{}}
-% \stopcolumnset
-
-\unprotect
-
-% only in columnsets
-
-% \def\cornerfigure
-% {\dotripleempty\docornerfigure}
-%
-% \def\docornerfigure[#1][#2][#3]% [layer] [location] [settings]
-% {\bgroup
-% \dowithnextbox
-% {\!!doneafalse
-% \!!donebfalse
-% \processallactionsinset
-% [\v!left,\v!bottom,#2]
-% [ \v!left=>\!!doneatrue ,
-% \v!right=>\!!doneafalse,
-% \v!top=>\!!donebtrue ,
-% \v!bottom=>\!!donebfalse]%
-% \!!widtha\nextboxwd
-% \if!!donea
-% % unchecked
-% \advance\!!widtha-\backspace
-% \else
-% % unchecked
-% \advance\!!widtha-\backspace
-% \fi
-% \!!widtha\textwidth % could be an option
-% \!!heighta\nextboxht
-% % zou een macro moeten zijn \getnoflayoutlines
-% \ifnum\layoutparameter\c!lines=\zerocount
-% \getnoflines\textheight
-% \else
-% \noflines\layoutparameter\c!lines
-% \fi
-% %
-% \advance\noflines \plusone % wordt default, instelbaar
-% \!!heightb\noflines\lineheight\relax
-% \if!!doneb % boven
-% % unchecked
-% \advance\!!heighta-\topspace
-% \advance\!!heighta-\headerheight
-% \advance\!!heighta-\headerdistance
-% \else % onder
-% % checked
-% \advance\!!heighta-\paperheight
-% \advance\!!heighta+\!!heightb
-% \advance\!!heighta+\topspace
-% \advance\!!heighta+\headerheight
-% \advance\!!heighta+\headerdistance
-% \advance\!!heighta-\footerdistance
-% \advance\!!heighta-\footerheight
-% \fi
-% \getnoflines\!!heighta
-% \!!heighta\noflines\lineheight\relax
-% \def\docornerfigure[####1]%
-% {\expanded{\plaatsfiguur[####1,\v!none]{}
-% {\noexpand\phantombox[\c!width=\the\!!widtha,\c!height=\the\!!heighta]}}}%
-% \if!!donea
-% \if!!doneb % links boven / rb
-% \setlayer[#1]
-% [\c!corner={\v!left,\v!top},\c!location=rb,#3]
-% {\flushnextbox}%
-% \docornerfigure[tblr]%
-% \else % links onder / rt
-% \setlayer[#1]
-% [\c!corner={\v!left,\v!bottom},\c!location=rt,#3]
-% {\flushnextbox}%
-% \docornerfigure[btlr]%
-% \fi
-% \else
-% \if!!doneb % rechts boven / lt
-% \setlayer[#1]
-% [\c!corner={\v!right,\v!top},\c!location=lb,#3]
-% {\flushnextbox}%
-% \docornerfigure[tbrl]%
-% \else % rechts onder / lb
-% \setlayer[#1]
-% [\c!corner={\v!right,\v!bottom},\c!location=lt,#3]
-% {\flushnextbox}%
-% \docornerfigure[btrl]%
-% \fi
-% \fi
-% \egroup}
-% \vbox}
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-sid.mkii b/Master/texmf-dist/tex/context/base/mkii/page-sid.mkii
deleted file mode 100644
index 6c3447e1ca0..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-sid.mkii
+++ /dev/null
@@ -1,931 +0,0 @@
-%D \module
-%D [ file=page-sid,
-%D version=2000.10.20,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Side Floats,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / Side Floats}
-
-\unprotect
-
-% problem: when too small, side effects; we need to determine the
-% shift earlier so that we can act when shift < size
-%
-% \definefloat[edgefigure]
-% \setupfloat
-% [edgefigure]
-% [rightmargindistance=-\rightmargintotal,
-% leftmargindistance=-\rightmargintotal,
-% default=outer]
-% \starttext
-% \placeedgefigure{}{\framed[width=12cm]{}} \input tufte
-% \placeedgefigure{}{\framed[width=5cm]{}} \input tufte
-% \placeedgefigure{}{\framed[width=4cm]{}} \input tufte
-% \placeedgefigure{}{\framed[width=2cm]{}} \input tufte
-% \stoptext
-
-% todo: dimexpr an dnumexpr
-
-% These macro deal with side floats. We started with Daniel
-% Comenetz macros as published in TUGBoat Volume 14 (1993),
-% No.\ 1: Anchored Figures at Either Margin. I extended and
-% patched the macros to suite our needs which results in a
-% messy module. Therefore, this module badly needs an update
-% because it's now a mixture of old and new macros.
-
-% afhankelijke variabelen
-%
-% \overgap vervangen door \floatsidetopskip
-% \sidegap vervangen door \floatsideskip
-% \undergap vervangen door \floatsidebottomskip
-%
-% \prskp vervangen door \ctxparskip
-
-% toegevoegde macro's/aanroepen
-%
-% \logsidefloat : loginformatie
-% \flushsidefloats : nodig voor koppen
-
-% recente wijzigingen:
-%
-% namen aangepast: \float... enz. i.p.v. \pic
-
-% Pas op: \EveryPar{\EveryPar{}\margetitel{whatever}}
-% \plaatsfiguur[links]{}{} moet goed gaan. In dat geval
-% begint de tekst terecht wat lager.
-
-\newdimen\sidefloatheight % includes the topskip
-\newdimen\sidefloatwidth
-\newdimen\sidefloathsize
-\newdimen\sidefloatshift
-\newdimen\sidefloatextrashift
-\newdimen\sidefloatvsize \def\nofloatvsize{-1pt }
-\newdimen\sidefloatprogress
-\newdimen\sidefloatpagetotal
-
-\newbox\floatbottom
-
-\newcount\sidefloatsidelines
-\newcount\sidefloatlinesdone
-
-% 1 = backspace
-% 2 = leftedge
-% 3 = leftmargin
-% 4 = leftside
-% 5 = rightside
-% 6 = rightmargin
-% 7 = rightedge
-% 8 = cutspace
-
-\chardef\sidefloattype\zerocount
-
-\def\backspacefloat {\global\chardef\sidefloattype1 \putsidefloat}
-\def\leftedgefloat {\global\chardef\sidefloattype2 \putsidefloat}
-\def\leftmarginfloat {\global\chardef\sidefloattype3 \putsidefloat}
-\def\leftfloat {\global\chardef\sidefloattype4 \putsidefloat}
-\def\rightfloat {\global\chardef\sidefloattype5 \putsidefloat}
-\def\rightmarginfloat {\global\chardef\sidefloattype6 \putsidefloat}
-\def\rightedgefloat {\global\chardef\sidefloattype7 \putsidefloat}
-\def\cutspacefloat {\global\chardef\sidefloattype8 \putsidefloat}
-
-\let\marginfloat \cutspacefloat
-
-\newif\ifroomforfloat
-\newif\iffloatshort
-\newif\iffloatflag
-\newif\iffloatrighteqo
-\newif\iffloatlefteqo
-
-\newdimen\sidefloatleftskip
-\newdimen\sidefloatrightskip
-\newdimen\sidefloatmaximum
-
-% \def\checksidefloatshift
-% {\ifdim\sidefloatmaximum>\zeropoint
-% \ifcase\sidefloattype
-% % invalid
-% \or
-% % backspace
-% \or
-% \global\sidefloatshift-\sidefloatmaximum
-% \global\advance\sidefloatshift-\rightorleftpageaction \leftedgedistance \rightedgedistance
-% \global\advance\sidefloatshift-\rightorleftpageaction \leftmarginwidth \rightmarginwidth
-% \global\advance\sidefloatshift-\rightorleftpageaction \leftmargindistance \rightmargindistance
-% \or
-% \global\sidefloatshift-\sidefloatmaximum
-% \global\advance\sidefloatshift-\rightorleftpageaction \leftmargindistance \rightmargindistance
-% \or
-% % left
-% \or
-% % right
-% \or
-% \global\sidefloatshift-\sidefloatmaximum
-% \global\advance\sidefloatshift-\rightorleftpageaction \leftmargindistance \rightmargindistance
-% \or
-% \global\sidefloatshift-\sidefloatmaximum
-% \global\advance\sidefloatshift-\rightorleftpageaction \leftedgedistance \rightedgedistance
-% \global\advance\sidefloatshift-\rightorleftpageaction \leftmarginwidth \rightmarginwidth
-% \global\advance\sidefloatshift-\rightorleftpageaction \leftmargindistance \rightmargindistance
-% \or
-% % cutspace
-% \fi
-% \fi}
-
-\def\checksidefloatshift
- {\ifdim\sidefloatmaximum>\zeropoint
- \ifcase\sidefloattype
- % invalid
- \or
- % backspace
- \or
- \global\sidefloatshift\dimexpr
- -\sidefloatmaximum
- -\rightorleftpageaction \leftedgedistance \rightedgedistance
- -\rightorleftpageaction \leftmarginwidth \rightmarginwidth
- -\rightorleftpageaction \leftmargindistance \rightmargindistance
- -\compensatedinnermakeupmargin
- \relax
- \or
- \global\sidefloatshift\dimexpr
- -\sidefloatmaximum
- -\rightorleftpageaction \leftmargindistance \rightmargindistance
- -\compensatedinnermakeupmargin
- \relax
- \or
- % left
- \or
- % right
- \or
- \global\sidefloatshift\dimexpr
- -\sidefloatmaximum
- -\rightorleftpageaction \leftmargindistance \rightmargindistance
- -\compensatedinnermakeupmargin
- \relax
- \or
- \global\sidefloatshift\dimexpr
- -\sidefloatmaximum
- -\rightorleftpageaction \leftedgedistance \rightedgedistance
- -\rightorleftpageaction \leftmarginwidth \rightmarginwidth
- -\rightorleftpageaction \leftmargindistance \rightmargindistance
- -\compensatedinnermakeupmargin
- \relax
- \or
- % cutspace
- \fi
- \fi}
-
-% \def\setsidefloatskips
-% {\global\sidefloatrightskip\zeropoint
-% \global\sidefloatleftskip \zeropoint
-% \ifcase\sidefloattype
-% \or % backspace
-% \global \sidefloatleftskip \rightorleftpageaction \backspace \cutspace
-% \or % leftedge
-% \global \sidefloatleftskip \rightorleftpageaction \leftmargindistance\rightmargindistance
-% \global\advance\sidefloatleftskip \rightorleftpageaction \leftmarginwidth\rightmarginwidth
-% \global\advance\sidefloatleftskip \rightorleftpageaction \leftedgedistance\rightedgedistance
-% \or % leftmargin
-% \global \sidefloatleftskip \rightorleftpageaction \leftmargindistance\rightmargindistance
-% \or % leftside
-% \or % rightside
-% \or % rightmargin
-% \global \sidefloatrightskip\rightorleftpageaction \rightmargindistance\leftmargindistance
-% \or % rightedge
-% \global \sidefloatrightskip\rightorleftpageaction \rightmargindistance\leftmargindistance
-% \global\advance\sidefloatrightskip\rightorleftpageaction \rightmarginwidth\leftmarginwidth
-% \global\advance\sidefloatrightskip\rightorleftpageaction \rightedgedistance\leftedgedistance
-% \or % cutspace
-% \global \sidefloatrightskip\rightorleftpageaction \cutspace\backspace
-% \fi
-% \ifdim\sidefloatrightskip>\zeropoint
-% \doglobal\advance\sidefloatrightskip\rightskip
-% \fi
-% \ifdim\sidefloatleftskip>\zeropoint
-% \doglobal\advance\sidefloatleftskip\leftskip
-% \fi}
-
-
-% use \outermarginwidth etc here
-
-\def\setsidefloatskips
- {\global\sidefloatrightskip\zeropoint
- \global\sidefloatleftskip \zeropoint
- \ifcase\sidefloattype
- \or % backspace
- \global\sidefloatleftskip\dimexpr
- +\rightorleftpageaction \backspace \cutspace
- +\compensatedinnermakeupmargin
- \relax
- \or % leftedge
- \global\sidefloatleftskip\dimexpr
- +\rightorleftpageaction \leftmargindistance \rightmargindistance
- +\rightorleftpageaction \leftmarginwidth \rightmarginwidth
- +\rightorleftpageaction \leftedgedistance \rightedgedistance
- +\compensatedinnermakeupmargin
- \relax
- \or % leftmargin
- \global\sidefloatleftskip\dimexpr
- +\rightorleftpageaction \leftmargindistance \rightmargindistance
- +\compensatedinnermakeupmargin
- \relax
- \or % leftside
- \or % rightside
- \or % rightmargin
- \global\sidefloatrightskip\dimexpr
- +\rightorleftpageaction \rightmargindistance \leftmargindistance
- +\compensatedinnermakeupmargin
- \relax
- \or % rightedge
- \global\sidefloatrightskip\dimexpr
- +\rightorleftpageaction \rightmargindistance \leftmargindistance
- +\rightorleftpageaction \rightmarginwidth \leftmarginwidth
- +\rightorleftpageaction \rightedgedistance \leftedgedistance
- +\compensatedinnermakeupmargin
- \relax
- \or % cutspace
- \global\sidefloatrightskip\dimexpr
- +\rightorleftpageaction \cutspace \backspace
- +\compensatedinnermakeupmargin
- \relax
- \fi
- \ifdim\sidefloatrightskip>\zeropoint \doglobal\advance\sidefloatrightskip\rightskip \fi
- \ifdim\sidefloatleftskip >\zeropoint \doglobal\advance\sidefloatleftskip \leftskip \fi}
-
-% eq is still crap
-
-\ifx\normalleqno\undefined
-
- \let\floatrighteqo=\eqno
- \let\floatleftleqo=\leqno
-
-\else
-
- \let\floatrighteqo=\normaleqno
- \let\floatleftleqo=\normalleqno
-
-\fi
-
-% Watch it even more! In inner, gaat't mis omdat daar
-% pagetotal enz niet zijn aangepast. Inner kan overigens niet
-% betrouwbaar worden getest!
-
-% \def\flushsidefloats%
-% {\par
-% \sidefloatprogress=\sidefloatvsize
-% \advance\sidefloatprogress by -\pagetotal
-% \ifdim\sidefloatprogress>\zeropoint
-% \witruimte % nog checken op interferentie
-% \kern\sidefloatprogress
-% \fi
-% \global\sidefloatvsize=\nofloatvsize
-% \global\floatflagfalse}
-%
-% no, too buggy, leads to top of page crap
-%
-%\def\flushsidefloats
-% {\par
-% \dochecksidefloat
-% \scratchcounter=-\hangafter
-% \dorecurse{\scratchcounter}{\strut\hfill\strut\par}}
-%
-%\def\flushsidefloats
-% {\par
-% \!!heighta\sidefloatvsize
-% \advance\!!heighta -\pagetotal
-% \ifdim\!!heighta>\zeropoint
-% % to be checked for interference
-% \witruimte
-% % will be option
-% \getnoflines\!!heighta
-% \!!heighta\noflines\lineheight
-% % so far for option
-% \kern\!!heighta
-% \fi
-% % == \forgetsidefloats
-% \global\sidefloatvsize\nofloatvsize
-% \global\floatshortfalse
-% \global\floatflagfalse}
-
-% \def\flushsidefloats
-% {\par
-% \!!heighta\sidefloatvsize
-% \advance\!!heighta -\pagetotal
-% \ifdim\!!heighta>\zeropoint
-% % to be checked for interference
-% \witruimte
-% % will be option
-% \getnoflines\!!heighta
-% \!!heighta\noflines\lineheight
-% % so far for option
-% \ifdim\sidefloatbottomskip>\zeropoint\relax
-% \ifdim\!!heighta>\sidefloatbottomskip
-% \advance\!!heighta-\sidefloatbottomskip
-% \kern\!!heighta
-% \vskip\sidefloatbottomskip
-% \else
-% \kern\!!heighta
-% \fi
-% \else
-% \kern\!!heighta
-% \fi
-% \fi
-% % == \forgetsidefloats
-% \global\sidefloatvsize\nofloatvsize
-% \global\floatshortfalse
-% \global\floatflagfalse}
-
-\newif\iftracesidefloats
-
-\def\flushsidefloats
- {\par
- \!!heighta\sidefloatvsize
- \advance\!!heighta -\pagetotal
- \ifnum\!!heighta>\zeropoint
- \global\advance\sidefloatvsize -\sidefloatbottomskip
- \ifdim\!!heighta>\zeropoint
- \bgroup
- \let\flushsidefloats\relax
- \forgetall
- \doloop
- {\strut
- \iftracesidefloats
- \color[darkgray]%
- {\baselinerulefalse
- \boxrulewidth.5\points
- \ruledhbox{\strut\kern\sidefloatwidth}}%
- \fi
- \par
- \!!heighta\sidefloatvsize
- \advance\!!heighta -\pagetotal
- \ifdim\!!heighta>\zeropoint
- \ifnum\recurselevel>\plushundred
- \exitloop
- \fi
- \else
- \exitloop
- \fi}%
- \egroup
- \ifdim\parskip>\zeropoint
- \ifdim\sidefloatbottomskip>\parskip
- \nowhitespace
- \vskip\sidefloatbottomskip
- \fi
- \fi
- \else\ifdim\sidefloatbottomskip>\parskip
- \vskip\sidefloatbottomskip
- \fi\fi
- \fi
- % not entirely the same as \forgetsidefloats
- \global\sidefloatvsize\nofloatvsize
- % \global\sidefloatsidelines\zerocount % no, we flush before a side float
- \global\floatshortfalse % so this will get lost
- % also here if used at all \global\holdinginserts\zerocount
- \global\floatflagfalse}
-
-\def\flushsidefloatsafterpar
- {\xdef\oldpagetotal{\the\pagetotal}%
- \gdef\checksidefloat
- {\dochecksidefloat
- \ifdim\oldpagetotal=\pagetotal \else
- \global\let\checksidefloat\dochecksidefloat
- \flushsidefloats
- \global\sidefloatsidelines\zerocount % here !
- \fi}}
-
-\def\forgetsidefloats
- {\global\sidefloatvsize\nofloatvsize
- \global\sidefloatsidelines\zerocount
- % also here if used at all \global\holdinginserts\zerocount
- \global\floatshortfalse
- \global\floatflagfalse}
-
-\let\logsidefloat=\relax
-
-\def\pushpenalties % needed ? and right
- {\widowpenalty\plusone
- \clubpenalty\plustwo
- \brokenpenalty\plusone
- \let\pushpenalties\relax
- \edef\poppenalties
- {\widowpenalty \the\widowpenalty
- \clubpenalty \the\clubpenalty
- \brokenpenalty\the\brokenpenalty
- \let\poppenalties\relax}}
-
-% shouldn;t that be:
-%
-% \def\pushpenalties % needed?
-% {\let\pushpenalties\relax
-% \edef\poppenalties
-% {\widowpenalty \the\widowpenalty
-% \clubpenalty \the\clubpenalty
-% \brokenpenalty\the\brokenpenalty
-% \let\poppenalties\relax}%
-% \widowpenalty\plusone
-% \clubpenalty\plustwo
-% \brokenpenalty\plusone}
-
-\let\poppenalties=\relax
-
-\def\restorepenalties
- {\ifnum\outputpenalty=\!!tenthousand\else
- \penalty\outputpenalty
- \fi}
-
-\def\sidefloatoutput
- {\iffloatshort
- \unvbox\normalpagebox
- \setbox\floatbottom\lastbox
- \ifdim\wd\floatbottom>\sidefloathsize
- \penalty-201
- \box\floatbottom
- \else
- \ifvoid\floatbottom
- \else
- \restoreleftindent
- \ifdim\wd\floatbottom<\sidefloathsize
- \parskip\zeropoint
- %\noindent
- \ifinner\else\vadjust{\penalty\minusone}\fi
- \iffloatlefteqo
- \global\floatlefteqofalse
- \else
- \global\advance\sidefloathsize -\wd\floatbottom
- \iffloatrighteqo
- \global\floatrighteqofalse
- \else
- \global\divide\sidefloathsize \plustwo
- \fi
- \hskip\sidefloathsize
- \fi
- \fi
- \box\floatbottom
- \restorepenalties
- \fi
- \fi
- % why was this \global\holdinginserts\zerocount
- \global\floatshortfalse
- \else
- \finalsidefloatoutput % new
- \global\sidefloatvsize\nofloatvsize
- \global\sidefloatsidelines\zerocount
- % we can end up in fig lock, so \global\holdinginserts\zerocount here too ?
- \poppenalties
- \fi}
-
-\def\finalsidefloatoutput% new
- {\finaloutput\unvbox\normalpagebox}
-
-\def\restoreleftindent
- {\relax \ifnum\sidefloattype>4 \else
- \parskip\zeropoint % here ?
- \ifdim\sidefloatwidth>\zeropoint % new, see prikkels
- \noindent
- \ifinner\else\vadjust{\penalty\minusone}\fi
- \hskip\sidefloatwidth
- %\else
- % we have a margin or edge float
- \fi
- \fi}
-
-\ifx\normaleqno\undefined
-
- \def\normaleqno
- {\iffloatshort
- \global\floatrighteqotrue
- \fi
- \floatrighteqo}
-
-\else
-
- \def\eqno
- {\iffloatshort
- \global\floatrighteqotrue
- \fi
- \floatrighteqo}
-
-\fi
-
-% externfiguur -> grid =ja|hoogte|diepte|halveregel|passend -> helemaal in details
-% stelplaatsblokin -> zijuitlijnen=hoogte|diepte|regel|halveregel|grid -> halveregel in 'details'
-
-% replacement for below
-%
-% \global\setbox\floatbox\hbox % no \hskip, but \kern here
-% {\ifcase\sidefloattype
-% \vbox{#1}%
-% \or % 1
-% \hskip\sidefloatleftshift
-% \hskip\sidefloatshift
-% \vbox{#1}%
-% \kern-\sidefloatextrashift
-% \or % 2
-% \hskip\sidefloatshift
-% \vbox{#1}%
-% \kern-\sidefloatextrashift
-% \or % 3
-% \hskip\sidefloatshift
-% \vbox{#1}%
-% \kern-\sidefloatextrashift
-% \or % 4
-% \hskip\sidefloatleftshift
-% \hskip\sidefloatshift
-% \vbox{#1\removedepth}%
-% \kern-\sidefloatextrashift
-% \or % 5
-% \hskip-\sidefloatextrashift
-% \vbox{#1}%
-% \kern\sidefloatshift
-% \kern\sidefloatrightshift
-% \or % 6
-% \hskip-\sidefloatextrashift
-% \vbox{#1}%
-% \kern\sidefloatshift
-% \or % 7
-% \hskip-\sidefloatextrashift
-% \vbox{#1}%
-% \kern\sidefloatshift
-% \or % 8
-% \hskip-\sidefloatextrashift
-% \vbox{#1}%
-% \kern\sidefloatshift
-% \kern\sidefloatrightshift
-% \fi}%
-%
-% keep this ^
-
-\def\putsidefloat#1% grid (4) is rather experimental
- {\par
- \whitespace
- % moved here dec 2001
- {\everypar\emptytoks\forgetall\verticalstrut\vskip-\struttotal}% moved
- \checksidefloatshift
- \ifdim\sidefloatshift=\zeropoint \relax
- \ifnum\sidefloattype=4
- \global\advance\sidefloatshift\sidefloatextrashift
- \global\sidefloatextrashift\zeropoint
- \else\ifnum\sidefloattype=5
- \global\advance\sidefloatshift\sidefloatextrashift
- \global\sidefloatextrashift\zeropoint
- \fi\fi
- \else
- \ifnum\sidefloattype<4
- \global\chardef\sidefloattype4
- \else\ifnum\sidefloattype>5
- \global\chardef\sidefloattype5
- \fi\fi
- \fi
- \previoussidefloat
- \stallsidefloat
- %\global\setbox\floatbox\hbox
- % {\ifmarginfloat\else\ifrightfloat\else\kern\sidefloatleftshift\fi\fi
- % \hskip\ifrightfloat-\sidefloatextrashift\else\sidefloatshift\fi
- % \vbox{#1\ifnum\sidefloatalign=4 \removedepth\fi}%
- % \kern\ifrightfloat\sidefloatshift\else-\sidefloatextrashift\fi
- % \ifmarginfloat\else\ifrightfloat\kern\sidefloatrightshift\fi\fi}%
- \global\setbox\floatbox\hbox % no \hskip, but \kern here
- {\ifnum\sidefloattype=4
- \hskip\sidefloatleftshift
- \else\ifnum\sidefloattype=1
- \hskip\sidefloatleftshift
- \fi\fi
- \ifnum\sidefloattype>4
- \hskip-\sidefloatextrashift
- \else
- \hskip\sidefloatshift
- \fi
- \vbox{#1\ifnum\sidefloatalign=4 \removedepth\fi}%
- \ifnum\sidefloattype>4
- \kern\sidefloatshift
- \else
- \kern-\sidefloatextrashift
- \fi
- \ifnum\sidefloattype=8
- \kern\sidefloatrightshift
- \else\ifnum\sidefloattype=5
- \kern\sidefloatrightshift
- \fi\fi}%
- \ifnum\sidefloatalign=4
- \getnoflines{\ht\floatbox}%
- \scratchdimen\noflines\lineheight
- \advance\scratchdimen-\strutdepth
- \getrawnoflines\sidefloattopskip
- \advance\scratchdimen\noflines\lineheight
- % todo: maybe rounding problem here
- % \global\setbox\floatbox\hbox{\lower\lineheight\box\floatbox}%
- \global\setbox\floatbox\hbox{\lower\strutdepth\box\floatbox}%
- \ht\floatbox\scratchdimen
- \dp\floatbox\zeropoint
- \fi
- \ifcase\sidefloatalign \else
- \global\sidefloattopskip\zeropoint
- \fi
- \scratchdimen
- \ifnum\sidefloattype<4
- \sidefloattopskip
- \else\ifnum\sidefloattype>5
- \sidefloattopskip
- \else
- \zeropoint
- \fi\fi
- % the top of the box is at the previous baseline
- \ifcase\sidefloatalign
- % 0 normal
- \advance\scratchdimen\strutdepth % == \sidefloattopoffset
- \or % 1 height
- \advance\scratchdimen\strutdepth % == \sidefloattopoffset
- \or % 2 line
- \or % 3 depth
- \advance\scratchdimen\lineheight
- \advance\scratchdimen\strutdepth
- \or % 4 grid
- \scratchdimen\zeropoint
- \or
- \advance\scratchdimen\strutheight
- \fi
- % new
- \global\sidefloatlinesdone\zerocount
- \ifnum\sidefloatsidelines>\zerocount
- \advance\scratchdimen\sidefloatsidelines\lineheight
- \fi
- % new
- \global\setbox\floatbox\hbox
- {\vbox
- {\vskip\scratchdimen
- \nointerlineskip
- \box\floatbox
- \ifnum\sidefloatalign=5 \vskip-\lineheight \fi}}%
- \ifnum\sidefloattype<4
- \global\sidefloattopskip\zeropoint
- \else\ifnum\sidefloattype>5
- \global\sidefloattopskip\zeropoint
- \fi\fi
- \global\sidefloatdownshift\zeropoint
- \measuresidefloat
- \ifroomforfloat \else
- \tosssidefloat
- \measuresidefloat
- \stallsidefloat
- \fi
- \setsidefloat}
-
-\def\progresssidefloat
- {\sidefloatprogress\sidefloatvsize
- \iffloatflag
- \advance\sidefloatprogress -\sidefloatpagetotal
- \global\floatflagfalse
- \else
- \advance\sidefloatprogress -\pagetotal
- \fi}
-
-\def\tosssidefloat
- {\vfill\eject}
-
-\def\measuresidefloat
- {\global\floatflagtrue
- \global\sidefloatpagetotal \pagetotal % global
- \ifnum\sidefloattype<4
- \global \sidefloatwidth \zeropoint
- \else\ifnum\sidefloattype>5
- \global \sidefloatwidth \zeropoint
- \else
- \global \sidefloatwidth \wd\floatbox
- \global\advance\sidefloatwidth \floatsideskip
- \fi\fi
- \ifdim\sidefloatwidth<\zeropoint
- \global\sidefloatwidth\zeropoint
- \fi
- \global \sidefloathsize \hsize
- \global\advance\sidefloathsize -\sidefloatwidth
- \global \sidefloatheight \ht\floatbox
- \global\advance\sidefloatheight \dp\floatbox
- \global\advance\sidefloatheight \sidefloattopskip
- \global \sidefloatvsize \sidefloatheight
- \global\advance\sidefloatvsize \sidefloatpagetotal
- \dimen0\sidefloatvsize
- \dimen2\pagegoal
- \relax
- \ifcase\sidefloatmethod
- % method 0 : raw
- \or
- % method 1 : safe
- \dimen2 .99\pagegoal
- \or
- % method 2 : tight
- \advance\dimen0 -\onepoint
- \fi
- \relax % really needed ! ! ! !
- \ifdim\dimen0>\dimen2
- \global\roomforfloatfalse
- \else
- \dimen0=\pagegoal
- \advance\dimen0 -\sidefloatvsize
- \ifdim\dimen0<\sidefloatbottomskip
- \global\advance\sidefloatvsize \dimen0
- \global\floatshorttrue
- \pushpenalties
- % why was this \global\holdinginserts\plusone
- \else
- \global\advance\sidefloatvsize \sidefloatbottomskip
- \global\floatshortfalse
- \fi
- \global\roomforfloattrue
- \fi}
-
-\def\setsidefloat% nilling everypar saves time and redudant pos's
- {% removed here dec 2001
- % {\everypar\emptytoks\forgetall\verticalstrut\vskip-\struttotal}%
- \ifnum\sidefloattype=4 \kern\sidefloattopskip \fi
- \ifnum\sidefloattype=5 \kern\sidefloattopskip \fi
- \edef\presidefloatdepth{\the\prevdepth}%
- \nointerlineskip
- \bgroup
- \everypar\emptytoks
- \parskip\zeropoint
- %\checksidefloatshift
- \setsidefloatskips
- \logsidefloat
- \relax
- \ifcase\sidefloattype
- % invalid
- \or % backspace
- \noindent\llap{\rlap{\box\floatbox}\hskip\sidefloatleftskip}\hfill
- \or % leftedge
- \noindent\llap{\box\floatbox\hskip\sidefloatleftskip}\hfill
- \or % leftmargin
- \noindent\llap{\box\floatbox\hskip\sidefloatleftskip}\hfill
- \or % leftside
- \noindent\box\floatbox\hfill
- \or % rightside
- \hfill\box\floatbox
- \or % rightmargin
- \hfill\rlap{\hskip\sidefloatrightskip\box\floatbox}%
- \or % rightedge
- \hfill\rlap{\hskip\sidefloatrightskip\box\floatbox}%
- \or % cutspace
- \hfill\rlap{\hskip\sidefloatrightskip\llap{\box\floatbox}}%
- \fi
- \egroup
- \par
- \kern-\sidefloatheight
- \penalty10001 % oeps, this will change
- \normalbaselines
- \prevdepth\presidefloatdepth
- % \noindent
- \resetsidefloatparagraph
- \ignorespaces} % not really needed
-
-\newcount\sidefloatparagraph
-
-\def\iffirstsidefloatparagraph
- {\ifcase\sidefloatparagraph\or}
-
-% without sidefloat lines
-%
-% \def\setsidefloatparagraph
-% {%\advance\sidefloatprogress \sidefloatbottomskip
-% %\!!counta\sidefloatprogress
-% \scratchdimen\sidefloatprogress
-% \advance\scratchdimen \strutht
-% \advance\scratchdimen -\roundingeps % new, needed in prikkels, prevent rounding errors
-% \!!counta\scratchdimen
-% \divide\!!counta \baselineskip
-% \ifnum\!!counta>0
-% \hangindent \ifnum\sidefloattype>4 -\fi\sidefloatwidth
-% \hangafter-\!!counta
-% \fi
-% \global\advance\sidefloatparagraph \plusone
-% \iftracesidefloats
-% \hskip-\sidefloatwidth
-% \color[darkgray]%
-% {\vrule\!!height.5\points\!!depth.5\points\!!width\sidefloatwidth
-% %\hskip-.25\bodyfontsize\showstruts\strut\hskip.25\bodyfontsize}%
-% \llap{\showstruts\strut\hskip.25\bodyfontsize}}%
-% \fi}
-
-\def\setsidefloatparagraph
- {%\advance\sidefloatprogress \sidefloatbottomskip
- %\!!counta\sidefloatprogress
- \scratchdimen\sidefloatprogress
- \advance\scratchdimen \strutht
- \advance\scratchdimen -\roundingeps % new, needed in prikkels, prevent rounding errors
- \!!counta\scratchdimen
- \divide\!!counta \baselineskip\relax
- \ifnum\!!counta>0
- % new from here
- \ifcase\sidefloatsidelines\else
- \ifcase\sidefloatlinesdone
- \global\sidefloatlinesdone\!!counta
- \else
- \scratchcounter\sidefloatlinesdone
- \advance\scratchcounter-\!!counta
- \global\advance\sidefloatsidelines-\scratchcounter
- \fi
- \fi
- \ifnum\sidefloatsidelines>\zerocount
- \scratchtoks\emptytoks
- \scratchcounter\sidefloatsidelines
- \scratchdimen\hsize
- \advance\scratchdimen-\sidefloatwidth
- \dorecurse\sidefloatsidelines
- {\appendtoks \zeropoint \hsize \to \scratchtoks}%
- \ifnum\!!counta>\sidefloatsidelines
- \advance\!!counta -\sidefloatsidelines\relax
- \advance\scratchcounter\!!counta
- \dorecurse\!!counta
- {\ifnum\sidefloattype>4
- \appendtoks \zeropoint \scratchdimen \to \scratchtoks
- \else
- \appendtoks \sidefloatwidth \scratchdimen \to \scratchtoks
- \fi}%
- \fi
- \advance\scratchcounter \plusone
- \parshape \scratchcounter \the\scratchtoks \zeropoint \hsize\relax
- \else
- % new till here
- \hangindent \ifnum\sidefloattype>4 -\fi\sidefloatwidth
- \hangafter-\!!counta
- \fi
- \fi
- \global\advance\sidefloatparagraph \plusone
- \iftracesidefloats
- \hskip-\sidefloatwidth
- \color[darkgray]%
- {\vrule\!!height.5\points\!!depth.5\points\!!width\sidefloatwidth
- %\hskip-.25\bodyfontsize\showstruts\strut\hskip.25\bodyfontsize}%
- \llap{\showstruts\strut\hskip.25\bodyfontsize}}%
- \fi}
-
-\def\resetsidefloatparagraph
- {\global\sidefloatparagraph\zerocount }
-
-\def\dochecksidefloat
- {\progresssidefloat
- \ifdim\sidefloatprogress>\zeropoint
- \setsidefloatparagraph
- \else
- \resetsidefloatparagraph
- \fi
- \parskip\ctxparskip}
-
-\def\checksidefloat
- {\dochecksidefloat}
-
-\def\synchronizesidefloats
- {\ifinner \else \checksidefloat \fi}
-
-\def\doadjustsidefloatdisplaylines
- {\par
- \vskip-\parskip
- \noindent
- \ignorespaces}
-
-\def\adjustsidefloatdisplaylines
- {\aftergroup\doadjustsidefloatdisplaylines}
-
-\def\previoussidefloat
- {\progresssidefloat
- \ifdim\sidefloatprogress>\zeropoint \relax
- \iffloatshort
- \global\floatshortfalse
- \tosssidefloat
- \else
- \kern\sidefloatprogress
- \fi
- \fi}
-
-\def\stallsidefloat
- {\!!counta\pageshrink
- \divide\!!counta \baselineskip
- \advance\!!counta \plusone
- \parskip\zeropoint
- \dorecurse\!!counta{\line{}}%
- \kern-\!!counta\baselineskip
- \penalty\zerocount }
-
-% We need to hook it into the other otr's. This code will move.
-
-\let\OTRONEflushsidefloats \flushsidefloats
-\let\OTRONEsynchronizesidefloats\synchronizesidefloats
-
-% page-set
-%
-% \let\OTRSETflushsidefloats \forgetsidefloats
-% \let\OTRSETsynchronizesidefloats\forgetsidefloats
-
-% page-mul
-%
-% \let\OTRMULflushsidefloats \forgetsidefloats
-% \let\OTRMULsynchronizesidefloats\forgetsidefloats
-
-\def\synchronizesidefloats{\OTRcommand\synchronizesidefloats}
-\def\flushsidefloats {\OTRcommand\flushsidefloats}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-spr.mkii b/Master/texmf-dist/tex/context/base/mkii/page-spr.mkii
deleted file mode 100644
index 65e435d7c2f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-spr.mkii
+++ /dev/null
@@ -1,104 +0,0 @@
-%D \module
-%D [ file=page-spr,
-%D version=2002.11.11,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Spreading,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / Spreading}
-
-% This module is experimental and not yet official!
-
-\unprotect
-
-\newbox\spreadbox
-\newif \ifinspread
-
-\chardef\showspreadmode=1
-
-% beware, ugly overload, to be redone
-
-\def\normalsettextpagecontent#1#2#3% #2 and #3 will disappear
- {\setbox#1\hbox
- {\vbox to \textheight
- {\offinterlineskip
- \freezetextwidth
- \hsize\textwidth % local variant of \sethsize
- \boxmaxdepth\maxdepth
- \noindent % content can be < \hsize
- \dopagecontents#2#3}}%
- \dp#1\zeropoint
- \setbox#1\hbox to \makeupwidth
- {\ifinspread
- \ifvoid\spreadbox
- \global\setbox\spreadbox\box#1%
- \copy\spreadbox\hss % left page
- \else
- % prevent duplicate writes in normal run
- \ifarrangingpages \else \ifcase\showspreadmode
- \global\setbox\spreadbox\null
- \wd\spreadbox\makeupwidth
- \ht\spreadbox\textheight
- \fi \fi
- \hss\box\spreadbox % right page
- \fi
- \else
- \hss\box#1\hss % never change the \hss's
- \fi}}
-
-\def\doflushspread
- {\ifinspread \ifvoid\spreadbox\else
- % this page will be discarded later
- \null \page
- \fi \fi }
-
-\def\startspread
- {\bgroup
- \ifdoublesided
- \page[\v!left]%
- %\setsystemmode{spread}%
- \inspreadtrue
- \scratchdimen2\textwidth
- \advance\scratchdimen2\backspace
- \expanded{\setuplayout[\c!textwidth=\the\scratchdimen]}%
- \def\startspread{\bgroup\let\stopspread\egroup}%
- \let\stopspread\dostopspread
- \else
- \let\stopspread\egroup
- \fi}
-
-\let\stopspread\relax
-
-\def\dostopspread
- {\kern\zeropoint\page
- \inspreadfalse
- \setuplayout[\c!textwidth=\textwidth]
- \page[\v!left]
- \egroup}
-
-\protect \endinput
-
-% texexec --arr --pdf test
-%
-% \setuplayout[width=middle]
-% \setuppapersize[A4][A3,landscape]
-% \setuppagenumbering[alternative=doublesided]
-% \setuparranging[2UP]
-%
-% \starttext
-%
-% \dorecurse{3}{\input tufte }
-%
-% \startspread
-% \dorecurse{10}{\input tufte }
-% \stopspread
-%
-% \dorecurse{3}{\input tufte }
-%
-% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkii/page-str.mkii b/Master/texmf-dist/tex/context/base/mkii/page-str.mkii
deleted file mode 100644
index df0cc5aa2fd..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-str.mkii
+++ /dev/null
@@ -1,331 +0,0 @@
-%D \module
-%D [ file=page-str,
-%D version=2006.03.21,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Page Streams,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Page Macros / Page Streams}
-
-%D The first version of this component of \CONTEXT\ was written
-%D for Thomas Schmitz who asked for parallel page streams. While
-%D playing with the code, I decided to make it into a component
-%D that can be used to construct all kind of stream related
-%D mechanisms. Because I could apply this feature in a project,
-%D there is some additional code here (related to graphics).
-%D
-%D These macros were written while listening to and watching the DVD
-%D \quotation {Rush In Rio}.
-
-% not yet ok in mkiv ... marknotes
-
-\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}\emptybox
- \else
- \global\setbox\outputstreamtag{#1}\vbox
- {\presetoutputstream
- \ifvoid\outputstreamtag{#1}\else\unvbox\outputstreamtag{#1}\fi
- \scratchdimen\dp\normalpagebox
- \unvbox\normalpagebox
- \vskip-\scratchdimen
- \kern\strutdepth}%
- \fi}
-
-% \def\presetoutputstream
-% {\pdffirstlineheight\strutheight
-% \pdflastlinedepth \strutdepth
-% \pdfeachlineheight \strutheight
-% \pdfeachlinedepth \strutdepth}
-
-\let\presetoutputstream\relax
-
-\def\outputstreamht [#1]{\ht\outputstreamtag{#1}}
-\def\outputstreamdp [#1]{\dp\outputstreamtag{#1}}
-\def\outputstreamwd [#1]{\wd\outputstreamtag{#1}}
-
-%def\outputstreambox [#1]{\ifvoid\outputstreamtag{#1}\else\box \outputstreamtag{#1}\fi}
-%def\outputstreamcopy[#1]{\ifvoid\outputstreamtag{#1}\else\copy\outputstreamtag{#1}\fi}
-
-\def\dowithoutputstreambox#1[#2]{\ifvoid\outputstreamtag{#2}\else#1\outputstreamtag{#2}\fi}
-
-\def\outputstreamcopy {\dowithoutputstreambox\copy }
-\def\outputstreambox {\dowithoutputstreambox\box }
-\def\outputstreamunvcopy{\dowithoutputstreambox\unvcopy}
-\def\outputstreamunvbox {\dowithoutputstreambox\unvbox }
-
-%D Footnotes don't go along with streams, simply because there is no
-%D way to re-split inserts. A dirty way out is to use marks and store
-%D notes that way.
-
-\def\definemarknote
- {\dodoubleempty\dodefinemarknote}
-
-\def\dodefinemarknote[#1][#2]%
- {\definemarking[mn:#1]%
- \setvalue{mn:#1:n}{0}%
- \getparameters
- [mn:#1]
- [\c!before=,
- \c!after=,
- \c!inbetween=\endgraf,
- \c!command=\firstofoneargument,
- #2]}
-
-\def\setmarknote[#1]#2%
- {\doglobal\incrementvalue{mn:#1:n}%
- \setgvalue{mn:#1:t:\getvalue{mn:#1:n}}{#2}%
- \expanded{\marking[mn:#1]{\getvalue{mn:#1:n}}}}
-
-\def\flushmarknotes[#1]% assumes split
- {\begingroup
-% \edef\firstmarknote{0\fetchmark[mn:#1][column:first]}%
-% \edef\lastmarknote {0\fetchmark[mn:#1][column:last]}%
-% \ifnum\firstmarknote<\lastmarknote\relax
-% \getvalue{mn:#1\c!before}%
-% \dostepwiserecurse\firstmarknote\lastmarknote\plusone
-% {\ifnum\recurselevel>\firstmarknote\relax
-% \ifnum\recurselevel<\lastmarknote\relax
-% \getvalue{mn:#1\c!inbetween}%
-% \fi
-% \fi
-% \getvalue{mn:#1\c!command}{\getvalue{mn:#1:t:\recurselevel}}}%
-% \getvalue{mn:#1\c!after}%
-% \fi
- \endgroup}
-
-\def\erasemarknotes[#1]%
- {\begingroup
- \edef\firstmarknote{0\fetchmark[mn:#1][column:first]}%
- \edef\lastmarknote {0\fetchmark[mn:#1][column:last]}%
- \dostepwiserecurse\firstmarknote\lastmarknote\plusone
- {\global\letvalue{mn:#1:t:\recurselevel}\empty}%
- \endgroup}
-
-%D The next section implements synchronization of (currently
-%D two) output streams. In due time we will implement both a
-%D vertical and horizontal system, as well as alternative
-%D splitters (firstpagevsize, succesivevsize etc).
-
-\def\synchronizeoutputstreams[#1]% [one,two] [left,right]
- {\bgroup
- \getfromcommalist[#1][\plusone]\let\firstoutputstream \commalistelement
- \getfromcommalist[#1][\plustwo]\let\secondoutputstream\commalistelement
- \forgeteverypar
- \def\roundingeps{50sp}%
- \getboxheight\dimen0\of\box\outputstreamtag\firstoutputstream
- \getboxheight\dimen2\of\box\outputstreamtag\secondoutputstream
- \scratchdimen\dimexpr\dimen0-\dimen2\relax
- \ifdim\scratchdimen<-\roundingeps\relax
- \scratchdimen-\scratchdimen
- \writestatus{sync}{compensating first stream: \the\scratchdimen/\number\scratchdimen}%
- \getroundednoflines\scratchdimen
- \global\setbox\outputstreamtag\firstoutputstream\vbox
- {\presetoutputstream
- \unvbox\outputstreamtag\firstoutputstream\dorecurse\noflines\crlf}%
- \else\ifdim\scratchdimen>\roundingeps\relax
- \writestatus{sync}{compensating second stream: \the\scratchdimen/\number\scratchdimen}%
- \getroundednoflines\scratchdimen
- \global\setbox\outputstreamtag\secondoutputstream\vbox
- {\presetoutputstream
- \unvbox\outputstreamtag\secondoutputstream\dorecurse\noflines\crlf}%
- \else
- \writestatus{sync}{no need to compensate streams: \the\scratchdimen/\number\scratchdimen}%
- \fi\fi
- \egroup}
-
-\def\nofoutputstreamsplitlines {\v!auto} % {40}
-\def\outputstreamsplittolerance {-5}
-
-\def\flushoutputstreampages[#1]%
- {\bgroup
- \getfromcommalist[#1][\plusone]\let\firstoutputstream \commalistelement
- \getfromcommalist[#1][\plustwo]\let\secondoutputstream\commalistelement
- \doloop
- {\flushoutputstreams[#1]%
- \ifvoid\outputstreamtag\firstoutputstream
- \ifvoid\outputstreamtag\secondoutputstream
- \exitloop
- \else
- \global\setbox\outputstreamtag\firstoutputstream\vbox{\strut}%
- \fi
- \else
- \ifvoid\outputstreamtag\secondoutputstream
- \global\setbox\outputstreamtag\secondoutputstream\vbox{\strut}%
- \else
- % okay
- \fi
- \fi}%
- \egroup}
-
-\def\flushoutputstreams[#1]%
- {\bgroup
- \getfromcommalist[#1][\plusone]\let\firstoutputstream \commalistelement
- \getfromcommalist[#1][\plustwo]\let\secondoutputstream\commalistelement
- \doif\nofoutputstreamsplitlines\v!auto
- {\getrawnoflines\textheight
- \edef\nofoutputstreamsplitlines{\the\noflines}}%
- \splittopskip\strutheight
- \scratchdimen\nofoutputstreamsplitlines\lineheight\relax
- \unless\iffalse
- \dimen0\scratchdimen
- \doloop
- {\setbox4\copy\outputstreamtag\firstoutputstream
- \setbox0\vsplit4 to \dimen0
- \setbox0\vbox
- {\directsetup{stream:\firstoutputstream:top}%
- \unvbox0
- \directsetup{stream:\firstoutputstream:bottom}}%
- \ifdim\ht0>\scratchdimen
- \advance\dimen0-\lineheight
- \else
- \exitloop
- \fi}%
- \scratchdimen\dimen0
- \dimen2\scratchdimen
- \doloop
- {\setbox6\copy\outputstreamtag\secondoutputstream
- \setbox2\vsplit6 to \dimen2
- \setbox2\vbox
- {\directsetup{stream:\secondoutputstream:top}%
- \unvbox0
- \directsetup{stream:\secondoutputstream:bottom}}%
- \ifdim\ht2>\scratchdimen
- \advance\dimen2-\lineheight
- \else
- \exitloop
- \fi}%
- \scratchdimen\dimen2
- \fi
- \setbox4\copy\outputstreamtag\firstoutputstream
- \setbox6\copy\outputstreamtag\secondoutputstream
- \scratchcounter\zerocount
- \doloop
- {\setbox0\vsplit4 to \scratchdimen
- \setbox0\vbox{\unvbox0}%
- \setbox2\vsplit6 to \scratchdimen
- \setbox2\vbox{\unvbox2}%
- \ifvoid4
- \exitloop
- \else\ifvoid6
- \exitloop
- \else
- \dimen8=\dimexpr\ht4-\ht6\relax
- \ifdim\dimen8<\zeropoint\dimen8=-\dimen8\relax\fi
- \advance\scratchcounter\plusone
- \ifdim\dimen8<.5\lineheight
- \exitloop
- \else\ifnum\outputstreamsplittolerance>\zeropoint
- \ifnum\scratchcounter>\outputstreamsplittolerance\relax
- \exitloop
- \else
- \advance\scratchdimen\lineheight
- \fi
- \else\ifnum\outputstreamsplittolerance<\zeropoint
- \ifnum-\scratchcounter<\outputstreamsplittolerance\relax
- \exitloop
- \else
- \advance\scratchdimen-\lineheight
- \fi
- \else\ifnum\outputstreamsplittolerance=\zeropoint
- \exitloop
- \fi\fi\fi\fi
- \fi\fi}%
- \setbox0\vsplit\outputstreamtag\firstoutputstream to \scratchdimen
- \setbox0\vbox to \textheight
- {\presetoutputstream
- \directsetup{stream:\firstoutputstream:top}%
- \unvbox0
- \vfill
- \directsetup{stream:\firstoutputstream:bottom}}%
- \setbox2\vsplit\outputstreamtag\secondoutputstream to \scratchdimen
- \setbox2\vbox to \textheight
- {\presetoutputstream
- \directsetup{stream:\secondoutputstream:top}%
- \unvbox2
- \vfill
- \directsetup{stream:\secondoutputstream:bottom}}%
- \directsetup{stream:\firstoutputstream:reset}%
- \directsetup{stream:\secondoutputstream:reset}%
- \page[even]
- \box0\vfill\page
- \box2\vfill\page
- \egroup}
-
-%D 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/mkii/page-txt.mkii b/Master/texmf-dist/tex/context/base/mkii/page-txt.mkii
deleted file mode 100644
index dd643b1b4e6..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/page-txt.mkii
+++ /dev/null
@@ -1,784 +0,0 @@
-%D \module
-%D [ file=page-txt, % copied from main-001,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Texts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \setuplayouttext in manual
-
-\writestatus{loading}{ConTeXt Page Macros / Texts}
-
-\unprotect
-
-\let\dodummypageskip\gobbleoneargument % obsolete
-
-%D Interfacing between this and other modules is handled by
-%D the following macros. The current state of a text line
-%D (header, footer, etc.) is checked by:
-%D
-%D \starttyping
-%D \resetlayouttextlines
-%D \stoptyping
-%D
-%D The main text box is finished by the following macro:
-%D
-%D \starttyping
-%D \getmainbox <box> <\vbox|\unvbox>
-%D \stoptyping
-%D
-%D The text lines are collected with:
-%D
-%D \starttyping
-%D \gettextboxes
-%D \stoptyping
-%D
-%D It is possible to extens the default content of the text
-%D areas by appending content to the following token list
-%D registers:
-
-\newtoks\toptextcontent \newtoks\leftedgetextcontent
-\newtoks\headertextcontent \newtoks\leftmargintextcontent
-\newtoks\footertextcontent \newtoks\rightmargintextcontent
-\newtoks\bottomtextcontent \newtoks\rightedgetextcontent
-
-\newtoks\texttextcontent
-
-%D \macros
-%D {setuptop, setupheader, setuptext,
-%D setupfooter, setupbottom}
-%D
-%D The macros in this module sometimes look a bit more complicated
-%D than needed, which is a direct result of the fact that their
-%D ancestors are quite old and upward compatibility is a must.
-%D
-%D \showsetup{setuptop}
-%D \showsetup{setupheader}
-%D \showsetup{setuptext}
-%D \showsetup{setupfooter}
-%D \showsetup{setupbottom}
-
-\def\setuplayouttext
- {\dotripleempty\dosetuplayouttext}
-
-\def\dosetuplayouttext[#1][#2][#3]% beware, non global
- {\ifthirdargument
- \getparameters[\??tk#1#2][#3]%
- \else
- %\getparameters[\??tk#1\v!text][#2]%
- \edef\previoustextstate{\getvalue{\??tk#1\c!state}}%
- \getparameters[\??tk#1][#2]%
- \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]}
-\def\setuptext {\dotripleempty\dosetuplayouttext[\v!text]}
-\def\setupfooter {\dotripleempty\dosetuplayouttext[\v!footer]}
-\def\setupbottom {\dotripleempty\dosetuplayouttext[\v!bottom]}
-
-%D \macros
-%D {noheaderandfooterlines,notopandbottomlines}
-%D
-%D Although not really needed, the following shortcuts
-%D sometimes come in handy.
-%D
-%D \showsetup{noheaderandfooterlines}
-%D \showsetup{notopandbottomlines}
-
-\def\noheaderandfooterlines
- {\setupheader[\c!state=\v!empty]%
- \setupfooter[\c!state=\v!empty]}
-
-\def\notopandbottomlines
- {\setuptop [\c!state=\v!empty]%
- \setupbottom[\c!state=\v!empty]}
-
-%D \macros
-%D {setuptoptexts, setupheadertexts, setuptexttexts,
-%D setupfootertexts, setupbottomtexts}
-%D
-%D The next macros take one or more arguments. The exact setup
-%D depends on the number of arguments. Although not that
-%D intuitive, the current scheme evolved out of the original.
-%D When margin and edge texts as well as middle texts showed
-%D up, the current odd|/|even scheme surfaced.
-%D
-%D \showsetup{setuptoptexts}
-%D \showsetup{setupheadertexts}
-%D \showsetup{setuptexttexts}
-%D \showsetup{setupfootertexts}
-%D \showsetup{setupbottomtexts}
-
-\def\setuptoptexts {\dosixtupleempty\dosetuptexts[\v!top]}
-\def\setupheadertexts {\dosixtupleempty\dosetuptexts[\v!header]}
-\def\setuptexttexts {\dosixtupleempty\dosetuptexts[\v!text]}
-\def\setupfootertexts {\dosixtupleempty\dosetuptexts[\v!footer ]}
-\def\setupbottomtexts {\dosixtupleempty\dosetuptexts[\v!bottom]}
-
-%D The left, right and center variables can also be set
-%D directly using the previously discussed macros.
-
-\def\dosetuptexts[#1][#2][#3][#4][#5][#6]%
- {\ifsixthargument
- \setvalue{\??tk#1#2\c!lefttext}%
- {\dodoubletexts{\??tk#1}{#2}%
- {\c!leftstyle \c!leftcolor \c!leftwidth }{#3}%
- {\c!rightstyle\c!rightcolor\c!rightwidth}{#6}}%
- \setvalue{\??tk#1#2\c!righttext}%
- {\dodoubletexts{\??tk#1}{#2}%
- {\c!rightstyle\c!rightcolor\c!rightwidth}{#4}%
- {\c!leftstyle \c!leftcolor \c!leftwidth }{#5}}%
- \else\iffifthargument
- \setvalue{\??tk#1\v!text\c!lefttext}%
- {\dodoubletexts{\??tk#1}\v!text
- {\c!leftstyle \c!leftcolor \c!leftwidth }{#2}%
- {\c!rightstyle\c!rightcolor\c!rightwidth}{#5}}%
- \setvalue{\??tk#1\v!text\c!righttext}%
- {\dodoubletexts{\??tk#1}\v!text
- {\c!rightstyle\c!rightcolor\c!rightwidth}{#3}%
- {\c!leftstyle \c!leftcolor \c!leftwidth }{#4}}%
- \else\iffourthargument
- \setvalue{\??tk#1#2\c!lefttext}%
- {\dodoubletexts{\??tk#1}{#2}
- {\c!leftstyle\c!leftcolor\c!leftwidth}{#3}%
- {\c!leftstyle\c!leftcolor\c!leftwidth}{#3}}%
- \setvalue{\??tk#1#2\c!righttext}%
- {\dodoubletexts{\??tk#1}{#2}
- {\c!rightstyle\c!rightcolor\c!rightwidth}{#4}%
- {\c!rightstyle\c!rightcolor\c!rightwidth}{#4}}%
- \else\ifthirdargument
- \setvalue{\??tk#1\v!text\c!lefttext}%
- {\dodoubletexts{\??tk#1}\v!text
- {\c!leftstyle\c!leftcolor\c!leftwidth}{#2}%
- {\c!leftstyle\c!leftcolor\c!leftwidth}{#2}}%
- \setvalue{\??tk#1\v!text\c!righttext}%
- {\dodoubletexts{\??tk#1}\v!text
- {\c!rightstyle\c!rightcolor\c!rightwidth}{#3}%
- {\c!rightstyle\c!rightcolor\c!rightwidth}{#3}}%
- \else\ifsecondargument % new
- \letvalue{\??tk#1\v!text\c!lefttext }\empty
- \letvalue{\??tk#1\v!text\c!righttext}\empty
- \setvalue{\??tk#1\v!text\c!middletext }%
- {\dosingletexts{\??tk#1}\v!text\c!style\c!color\c!width{#2}}%
- \else
- \dosixtupleempty\dosetuptexts[#1][\v!text][][][][]%
- \dosixtupleempty\dosetuptexts[#1][\v!margin][][][][]%
- \dosixtupleempty\dosetuptexts[#1][\v!edge ][][][][]%
- \fi\fi\fi\fi\fi}
-
-%D Left and right texts are swapped on odd and even pages, but
-%D only when double sided typesetting is enabled.
-
-\def\dodoubletexts#1#2#3#4#5#6%
- {\doifoddpageelse
- {\dosingletexts{#1}{#2}#3{#4}} % #3 => provides three arguments
- {\dosingletexts{#1}{#2}#5{#6}}} % #5 => provides three arguments
-
-%D The next macro will be cleaned up amd made less messy and
-%D dependent.
-
-\def\placetextlinestrut#1%
- {\doifvalue{#1\c!strut}\v!yes{\setstrut\strut}}
-
-\def\dosingletexts#1#2#3#4#5#6%
- {\bgroup
- \defconvertedargument\ascii{#6}%
- \doifsomething\ascii
- {\doattributes{#1#2}#3#4%
- {\placetextlinestrut{#1}% here !
- %\doifdefinedelse{\??mk\ascii\c!coupling} % brrr
- \doifelsemarking\ascii
- {\dolimitatetexts{#1#2#5}{\getmarking[\ascii][\v!first]}}
- {\ConvertConstantAfter\doifelse\v!pagenumber{#6}
- \@@plaatspaginanummer
- {\ConvertConstantAfter\doifelse\v!date{#6}
- {\currentdate}
- {% #6{}{}{} -> {} needed for macros that look
- % ahead, like \uniqueMPgraphic
- \opeenregel\dolimitatetexts{#1#2#5}{#6{}{}{}}}}}}}%
- \egroup}
-
-%D When specified, the texts are automatically limited in
-%D length.
-
-\def\dolimitatetexts#1#2%
- {\doifelsevaluenothing{#1}{#2}{\limitatetext{#2}{\getvalue{#1}}{\unknown}}}
-
-%D The placement of text is hooked into the token lists
-%D associated to the area at hand.
-
-\appendtoks \placelayouttextline\v!top \topheight \to \toptextcontent
-\appendtoks \placelayouttextline\v!header\headerheight \to \headertextcontent
-\appendtoks \placelayouttextline\v!text \textheight \to \texttextcontent
-\appendtoks \placelayouttextline\v!footer\footerheight \to \footertextcontent
-\appendtoks \placelayouttextline\v!bottom\bottomheight \to \bottomtextcontent
-
-%D Texts can be disabled, moved up and ignored, depending in
-%D the \type {status} variable. This is handled by the next
-%D couple of macros.
-
-\def\settextlinestatus #1{\edef\textlinestatus{\csname\??tk#1\c!state\endcsname}}
-%def\resettextlinestatus#1{\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}%
- \csname\string\placelayouttextline
- \ifundefined{\string\placelayouttextline\textlinestatus}%
- \s!unknown
- \else
- \textlinestatus
- \fi
- \endcsname{#1}} % {#2}
-
-\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}
-
-\setvalue{\string\placelayouttextline\v!none}#1#2%
- {}
-
-\setvalue{\string\placelayouttextline\v!high}#1#2%
- {\global\settrue\resyncaftertextline
- \resettextlinestatus{#1}}
-
-\setvalue{\string\placelayouttextline\v!empty}#1#2%
- {\resettextlinestatus{#1}}
-
-\setvalue{\string\placelayouttextline\v!start}#1#2%
- {\resettextlinestatus{#1}%
- \doplacelayouttextline{#1}{#2}}
-
-\setvalue{\string\placelayouttextline\v!stop}#1#2%
- {}
-
-\setvalue{\string\placelayouttextline\v!nomarking}#1#2%
- {\bgroup
- \resettextlinestatus{#1}%
- \let\dogetmarking\nogetmarking
- \doplacelayouttextline{#1}{#2}%
- \egroup}
-
-\setvalue{\string\placelayouttextline\s!unknown}#1#2%
- {\global\settrue\resyncaftertextline
- \bgroup % new
- \resettextlinestatus{#1}%
- \getvalue{\??tk#1\textlinestatus}%
- \getvalue{\??tk#1\v!text \textlinestatus}%
- \getvalue{\??tk#1\v!margin\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%
- {\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}
-
-% \settext[header][text][middle][xxx][yyy]
-
-\def\settextcontent
- {\doquintupleempty\dosettextcontent}
-
-\def\dosettextcontent[#1][#2][#3][#4][#5]% header text middle text/text
- {\iffifthargument
- \setvalue{\??tk#1#2\executeifdefined{:\c!text:#3:}\c!middletext}%
- {\dodoubletexts{\??tk#1}{#2}%
- {\c!leftstyle \c!leftcolor \c!leftwidth }{#4}%
- {\c!rightstyle\c!rightcolor\c!rightwidth}{#5}}%
- \else\iffourthargument
- \setvalue{\??tk#1#2\executeifdefined{:\c!text:#3:}\c!middletext}%
- {\dodoubletexts{\??tk#1}{#2}%
- {\c!leftstyle \c!leftcolor \c!leftwidth }{#4}%
- {\c!rightstyle\c!rightcolor\c!rightwidth}{#4}}%
- \else\ifthirdargument
- \setvalue{\??tk#1#2\c!middletext}%
- {\dodoubletexts{\??tk#1}{#2}%
- {\c!leftstyle \c!leftcolor \c!leftwidth }{#3}%
- {\c!rightstyle\c!rightcolor\c!rightwidth}{#3}}%
- \fi\fi\fi}
-
-\def\resettextcontent
- {\dotripleempty\doresettextcontent}
-
-\def\doresettextcontent[#1][#2][#3]% header text middle
- {\ifthirdargument
- \letvalue{\??tk#1#2\executeifdefined{:\c!text:#3:}\c!middletext}\empty
- \else\ifsecondargument
- \letvalue{\??tk#1#2\c!lefttext }\empty
- \letvalue{\??tk#1#2\c!middletext}\empty
- \letvalue{\??tk#1#2\c!righttext }\empty
- \fi\fi}
-
-\let\settext \settextcontent % downward compatibility
-\let\resettext\resettextcontent % downward compatibility
-
-\setvalue{:\c!middle:\c!text:}{\c!middletext}
-\setvalue{:\c!left :\c!text:}{\c!lefttext }
-\setvalue{:\c!right :\c!text:}{\c!righttext }
-
-%D The next series of macros is not that easy to read,
-%D because they hook into the main page building macros. By
-%D using token list registers for the text content, we can
-%D easily hook in other code, like menu generators.
-%D
-%D Beware: the token lists are always expanded, also when the
-%D height of an area is zero. This is because reset actions can
-%D be part of them.
-
-\newbox\scratchpagebox
-
-\def\gettextboxes
- {\setbox\scratchpagebox\vbox
- {\dontcomplain
- \calculatereducedvsizes
- \swapmargins
- \offinterlineskip
- \vskip\dimexpr-\topheight-\topdistance\relax
- \the\toptextcontent
- \vskip\dimexpr\topheight+\topdistance\relax
- \the\headertextcontent
- \vskip\dimexpr\headerheight+\headerdistance\relax
- \placepositionanchors
- \vskip-\textheight
- \the\texttextcontent
- \vskip\textheight
- \the\everyendoftextbody
- \vskip\footerdistance
- \the\footertextcontent
- \vskip\dimexpr\footerheight+\bottomdistance\relax
- \the\bottomtextcontent
- \vskip\bottomheight
- \vfilll}%
- \smashbox\scratchpagebox
- \box\scratchpagebox}
-
-\def\getmainbox#1#2%
- {\setbox\scratchpagebox\vbox
- {\offinterlineskip % na \paginaletter !
- \calculatereducedvsizes
- \calculatehsizes
- \swapmargins
- \vskip\dimexpr\headerheight+\headerdistance+\layoutparameter\c!textdistance\relax
- \hbox to \makeupwidth
- {\bgroup
- \swapmargins
- \goleftonpage
- \ifdim\leftedgewidth>\zeropoint
- \the\leftedgetextcontent
- \hskip\leftedgewidth
- \fi
- \hskip\leftedgedistance
- \ifdim\leftmarginwidth>\zeropoint
- \the\leftmargintextcontent
- \hskip\leftmarginwidth
- \fi
- \hskip\leftmargindistance
- \egroup
- \mkprocesspagecontents{#2}%
- \settextpagecontent\scratchpagebox{#1}{#2}%
- \setbox\scratchpagebox\vbox % can we avoid this extra box
- {\startlayoutcomponent{textbody}{text body}%
- \box\scratchpagebox
- \stoplayoutcomponent}%
- \addtextbackground\scratchpagebox
- \addtextgridlayer\scratchpagebox
- \localstarttextcolor % does not work in mkiv
- \box\scratchpagebox
- \localstoptextcolor % so we have to change this
- \bgroup
- \hskip\rightmargindistance
- \ifdim\rightmarginwidth>\zeropoint
- \the\rightmargintextcontent
- \hskip\rightmarginwidth
- \fi
- \hskip\rightedgedistance
- \ifdim\rightedgewidth>\zeropoint
- \the\rightedgetextcontent
- \hskip\rightedgewidth
- \fi
- \egroup
- \hss}}%
- \smashbox\scratchpagebox
- \box\scratchpagebox}
-
-%D The main text area has to be combined with some additional
-%D (tracing) information.
-
-% will be overloaded in page-lyr
-
-\def\settextpagecontent#1#2#3% #2 and #3 will disappear
- {\setbox#1\hbox to \makeupwidth
- {\hss % so don't change this
- \vbox to \textheight
- {\offinterlineskip
- \freezetextwidth
- \hsize\textwidth % local variant of \sethsize
- \boxmaxdepth\maxdepth
- \noindent % content can be < \hsize
- \dopagecontents#2#3}%
- \hss}%
- \dp#1\zeropoint}
-
-\definepalet
- [layout]
- [grid=red,
- page=green]
-
-\def\addtextgridlayer#1% tzt run time
- {\ifcase\showgridstate\else % 1=bottom 2=top
- \setgridbox\scratchbox\makeupwidth\textheight
- \setbox#1\hbox
- {\ifcase\showgridstate\or\or\box#1\hskip-\makeupwidth\fi
- \bgroup % color
- \startlayoutcomponent{gridcolumns}{grid columns}%
- \incolortrue
- \ifcase\layoutcolumns\else
- \gray
- \hbox to \makeupwidth
- {\dorecurse\layoutcolumns
- {\hskip\layoutcolumnwidth
- \ifnum\recurselevel<\layoutcolumns
- \vrule
- \!!height\ht\scratchbox
- \!!depth\dp\scratchbox
- \!!width\layoutcolumndistance
- \fi}}%
- \hskip-\makeupwidth
- \fi
- \stoplayoutcomponent
- \startlayoutcomponent{gridlines}{grid lines}%
- \startcolor[layout:grid]\box\scratchbox\stopcolor
- \stoplayoutcomponent
- \egroup
- \ifcase\showgridstate\or\hskip-\makeupwidth\box#1\fi}%
- \fi}
-
-%D The placement of a whole line is handled by the next two
-%D macros. These are hooked into the general purpose token
-%D list registers mentioned before.
-
-\def\ignoredlinebreak{\unskip\space\ignorespaces}
-
-\def\doplacelayouttextline#1#2%
- {\ifdim#2>\zeropoint\relax % prevents pagenumbers when zero height
- \goleftonpage
- \hbox
- {\setbox\scratchpagebox\vbox to #2
- {%\forgetall
- \vsize#2\relax
- \normalbaselines
- \let\\\ignoredlinebreak
- \let\crlf\ignoredlinebreak
- %\getvalue{\??tk#1\v!text\c!before}%
- \getvalue{\??tk#1\c!before}%
- \doifbothsidesoverruled
- {\dodoplacelayouttextline#1\c!lefttext \c!middletext\c!righttext\gobbleoneargument\getvalue}
- {\dodoplacelayouttextline#1\c!lefttext \c!middletext\c!righttext\gobbleoneargument\getvalue}
- {\dodoplacelayouttextline#1\c!righttext\c!middletext\c!lefttext \getvalue\gobbleoneargument}%
- %\getvalue{\??tk#1\v!text\c!after}%
- \getvalue{\??tk#1\c!after}%
- \kern\zeropoint}% keep the \dp, beware of \vtops, never change this!
- \dp\scratchpagebox\zeropoint
- \box\scratchpagebox}%
- \vskip-#2\relax
- \fi}
-
-\def\dodoplacelayouttextline#1#2#3#4#5#6% \hsize toegevoegd, \hss's niet meer wijzigen
- {\hbox
- {\ifdim\leftedgewidth>\zeropoint
- \dododoplacelayouttextline\leftedgewidth{#1}\v!edge
- {\hss\getvalue{\??tk#1\v!edge#2}}%
- \hskip\leftedgedistance
- \fi
- \ifdim\leftmarginwidth>\zeropoint
- \dododoplacelayouttextline\leftmarginwidth{#1}\v!margin
- {\hbox to \leftmarginwidth
- {\hss\getvalue{\??tk#1\v!margin#2}}%
- \hskip-\leftmarginwidth
- \hbox to \leftmarginwidth
- {\hss#5{\??tk#1\v!margin\c!margintext}}}%
- \hskip\leftmargindistance
- \fi
- \ifdim\makeupwidth>\zeropoint
- \dododoplacelayouttextline\makeupwidth{#1}\v!text
- {\hbox to \makeupwidth
- {\@@nmpre{#5{\??tk#1\v!text\c!marginedgetext}}%
- \getvalue{\??tk#1\v!text#2}\hss}%
- \hskip-\makeupwidth
- \hbox to \makeupwidth
- {\hss\getvalue{\??tk#1\v!text#3}\hss}%
- \hskip-\makeupwidth
- \hbox to \makeupwidth
- {\hss\getvalue{\??tk#1\v!text#4}%
- \@@nmpos{#6{\??tk#1\v!text\c!marginedgetext}}}}%
- \fi
- \ifdim\rightmarginwidth>\zeropoint
- \hskip\rightmargindistance
- \dododoplacelayouttextline\rightmarginwidth{#1}\v!margin
- {\hbox to \rightmarginwidth
- {\getvalue{\??tk#1\v!margin#4}\hss}%
- \hskip-\rightmarginwidth
- \hbox to \rightmarginwidth
- {#6{\??tk#1\v!margin\c!margintext}\hss}}%
- \fi
- \ifdim\rightedgewidth>\zeropoint
- \hskip\rightedgedistance
- \dododoplacelayouttextline\rightedgewidth{#1}\v!edge
- {\getvalue{\??tk#1\v!edge#4}\hss}%
- \fi}}
-
-% \def\dododoplacelayouttextline#1#2#3#4%
-% {\vbox % to \vsize
-% {\hsize#1\relax
-% \getvalue{\??tk#2#3\c!voor}
-% \hbox to #1{#4}%
-% \getvalue{\??tk#2#3\c!na}}}
-
-\def\dododoplacelayouttextline#1#2#3#4%
- {\vbox % to \vsize
- {\hsize#1\relax
- \getvalue{\??tk#2#3\c!before}%
- \startlayoutcomponent{t:#2:#3}{area #2 #3}%
- \hbox to #1{#4}%
- \stoplayoutcomponent
- \getvalue{\??tk#2#3\c!after}}}
-
-%D Although it is far better to use backgrounds for this
-%D purpose, one can add a rule in the following way. This
-%D method makes the rules disappear in case of an empty text
-%D line. Consider this a feature.
-%D
-%D \starttyping
-%D \setupheadertexts[left][right]
-%D
-%D \setupheader[text][after=\hrule,style=bold]
-%D
-%D \starttext
-%D \input tufte \page
-%D \setupheader[state=empty]
-%D \input tufte \page
-%D \stoptext
-%D \stoptyping
-
-%D The next twosome will be done differently (using an
-%D existing auxiliary macro).
-
-% \def\@@nmpre#1{\setbox0\hbox{#1}\ifdim\wd0=\zeropoint\else\unhbox0\tfskip\fi}
-% \def\@@nmpos#1{\setbox0\hbox{#1}\ifdim\wd0=\zeropoint\else\tfskip\unhbox0\fi}
-
-% cleaner
-
-\def\@@nmpre#1{\doiftext{#1}{{#1}\tfskip}}
-\def\@@nmpos#1{\doiftext{#1}{\tfskip{#1}}}
-
-% newer
-
-\def\@@nmprepos#1#2#3#4#5%
- {\doifelsenothing\@@nmwidth
- {\doiftext{#5}{#1{#5}#2}}
- {\doiftext{#5}{\hbox to \@@nmwidth{#3{#5}#4}}}}
-
-\def\@@nmpre{\@@nmprepos\empty\tfskip\relax\hss}
-\def\@@nmpos{\@@nmprepos\tfskip\empty\hss\relax}
-
-%D This code will move to \type {page-flt.tex}.
-
-\appendtoks
- \plaatsrechtermargeblok \hskip-\rightmarginwidth
-\to \rightmargintextcontent
-
-\appendtoks
- \plaatslinkermargeblok \hskip-\leftmarginwidth
-\to \leftmargintextcontent
-
-%D The next hook will later be used for keeping track of
-%D positions, i.e.\ it will provide a proper (page
-%D dependent) reference point.
-
-\ifx\undefined\placepositionanchors
- \def\placepositionanchors{\vskip\textheight}
-\fi
-
-%D \macros
-%D {definetext}
-%D
-%D Some macros ago, we implemented the \type {status} option
-%D \type {unknown}. This one is used to take care of
-%D symbolic texts handlers.
-%D
-%D \showsetup{definetext}
-%D
-%D The next example demonstrates how we can use this
-%D mechanism to provide page (event) dependent text lines.
-%D
-%D \starttyping
-%D \definetext[chapter][footer][pagenumber]
-%D \setuphead[chapter][header=high,footer=chapter]
-%D \setupheadertexts[pagenumber]
-%D \setupfootertexts[left][right]
-%D \chapter{eerste} \dorecurse{20}{\input tufte \relax}
-%D \chapter{tweede} \dorecurse{20}{\input tufte \relax}
-%D \stoptyping
-
-\def\definetext
- {\doseventupleempty\dodefinetext}
-
-\def\dodefinetext[#1][#2][#3][#4][#5][#6][#7]%
- {\ifseventhargument
- \setvalue{\??tk#2#3#1}{\dosixtupleempty\dosetuptexts[#2][#3][#4][#5][#6][#7]}%
- \else\ifsixthargument
- \setvalue{\??tk #2#1}{\dosixtupleempty\dosetuptexts[#2][#3][#4][#5][#6]}%
- \else\iffifthargument
- \setvalue{\??tk#2#3#1}{\dosixtupleempty\dosetuptexts[#2][#3][#4][#5]}%
- \else\iffourthargument
- \setvalue{\??tk #2#1}{\dosixtupleempty\dosetuptexts[#2][#3][#4]}%
- \else
- \setvalue{\??tk #2#1}{\dosixtupleempty\dosetuptexts[#2][#3]}%
- \fi\fi\fi\fi}
-
-%D The rest of this file is dedicated to setting up the
-%D texts. This code is not that impressive.
-
-\setupheadertexts [\v!text] [] []
-\setupheadertexts [\v!margin] [] []
-\setupheadertexts [\v!edge] [] []
-
-\setupfootertexts [\v!text] [] []
-\setupfootertexts [\v!margin] [] []
-\setupfootertexts [\v!edge] [] []
-
-\setuptexttexts [\v!text] [] []
-\setuptexttexts [\v!margin] [] []
-\setuptexttexts [\v!edge] [] []
-
-\setupbottomtexts [\v!text] [] []
-\setupbottomtexts [\v!margin] [] []
-\setupbottomtexts [\v!edge] [] []
-
-\setuptoptexts [\v!text] [] []
-\setuptoptexts [\v!margin] [] []
-\setuptoptexts [\v!edge] [] []
-
-% alternative
-%
-% \def\resetlayouttekst%
-% {\dodoubleempty\doresetlayouttekst}
-%
-% \def\doresetlayouttekst[#1][#2]%
-% {\ifsecondargument
-% \dodoresetlayouttekst[#1][#2]%
-% \else
-% \dodoresetlayouttekst[#1][\v!tekst]%
-% \fi}
-%
-% \def\dodoresetlayouttekst[#1][#2]%
-% {...}
-%
-% \def\docommand#1%
-% {\resetlayouttekst[#1][\v!tekst]%
-% \resetlayouttekst[#1][\v!marge]%
-% \resetlayouttekst[#1][\v!rand]}
-
-%D We combine a lot of similar settings in a macro that
-%D we will later dispose.
-
-\def\dodocommand[#1][#2]%
- {\getparameters
- [\??tk#1#2]
- [%\c!state=\v!normal, % moved
- \c!before=, % both global and local are used
- \c!after=, % both global and local are used
- \c!strut=, % the local one, not (yet) used
- \c!style=\getvalue{\??tk#1\c!style},% hm, got lost
- \c!color=\getvalue{\??tk#1\c!color}, % hm, got lost
- \c!lefttext=,
- \c!middletext=,
- \c!righttext=,
- \c!marginedgetext=,
- \c!margintext=,
- \c!width=]%
- \inheritparameter[\??tk#1#2][\c!leftstyle ][\c!style ]%
- \inheritparameter[\??tk#1#2][\c!rightstyle ][\c!style ]%
- \inheritparameter[\??tk#1#2][\c!leftcolor ][\c!color ]%
- \inheritparameter[\??tk#1#2][\c!rightcolor ][\c!color ]%
- \inheritparameter[\??tk#1#2][\c!leftwidth ][\c!width]%
- \inheritparameter[\??tk#1#2][\c!rightwidth][\c!width]}
-
-\def\docommand#1%
- {\dodocommand[#1][\v!text]%
- \dodocommand[#1][\v!margin]%
- \dodocommand[#1][\v!edge]}
-
-\docommand\v!top
-\docommand\v!header
-\docommand\v!footer
-\docommand\v!text
-\docommand\v!bottom
-
-\let\docommand \relax
-\let\dodocommand\relax
-
-%D While the header and footer lines are moved away from the
-%D main text, the top and bottom lines are centered.
-
-\setuptop [\c!state=\v!normal,\c!before=\vss,\c!after=\vss,\c!strut=]
-\setupheader[\c!state=\v!normal,\c!before=, \c!after=\vss,\c!strut=\v!yes]
-\setuptext [\c!state=\v!normal,\c!before=\vss,\c!after=\vss,\c!strut=]
-\setupfooter[\c!state=\v!normal,\c!before=\vss,\c!after=, \c!strut=\v!yes]
-\setupbottom[\c!state=\v!normal,\c!before=\vss,\c!after=\vss,\c!strut=]
-
-\setuptop [\c!style=,\c!color=]
-\setupheader[\c!style=,\c!color=]
-\setuptext [\c!style=,\c!color=]
-\setupfooter[\c!style=,\c!color=]
-\setupbottom[\c!style=,\c!color=]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/pdfr-def.mkii b/Master/texmf-dist/tex/context/base/mkii/pdfr-def.mkii
deleted file mode 100644
index b3f67b93f82..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/pdfr-def.mkii
+++ /dev/null
@@ -1,843 +0,0 @@
-% filename : pdfr-def.mkii
-% comment : generated by mtxrun --script chars --pdf
-% author : Hans Hagen, PRAGMA-ADE, Hasselt NL
-% copyright: PRAGMA ADE / ConTeXt Development Team
-% license : see context related readme files
-%
-\pdfglyphtounicode{space}{0020}%
-\pdfglyphtounicode{exclam}{0021}%
-\pdfglyphtounicode{quotedbl}{0022}%
-\pdfglyphtounicode{numbersign}{0023}%
-\pdfglyphtounicode{dollar}{0024}%
-\pdfglyphtounicode{percent}{0025}%
-\pdfglyphtounicode{ampersand}{0026}%
-\pdfglyphtounicode{quotesingle}{0027}%
-\pdfglyphtounicode{parenleft}{0028}%
-\pdfglyphtounicode{parenright}{0029}%
-\pdfglyphtounicode{asterisk}{002A}%
-\pdfglyphtounicode{plus}{002B}%
-\pdfglyphtounicode{comma}{002C}%
-\pdfglyphtounicode{hyphen}{002D}%
-\pdfglyphtounicode{period}{002E}%
-\pdfglyphtounicode{slash}{002F}%
-\pdfglyphtounicode{zero}{0030}%
-\pdfglyphtounicode{one}{0031}%
-\pdfglyphtounicode{two}{0032}%
-\pdfglyphtounicode{three}{0033}%
-\pdfglyphtounicode{four}{0034}%
-\pdfglyphtounicode{five}{0035}%
-\pdfglyphtounicode{six}{0036}%
-\pdfglyphtounicode{seven}{0037}%
-\pdfglyphtounicode{eight}{0038}%
-\pdfglyphtounicode{nine}{0039}%
-\pdfglyphtounicode{colon}{003A}%
-\pdfglyphtounicode{semicolon}{003B}%
-\pdfglyphtounicode{less}{003C}%
-\pdfglyphtounicode{equal}{003D}%
-\pdfglyphtounicode{greater}{003E}%
-\pdfglyphtounicode{question}{003F}%
-\pdfglyphtounicode{at}{0040}%
-\pdfglyphtounicode{A}{0041}%
-\pdfglyphtounicode{B}{0042}%
-\pdfglyphtounicode{C}{0043}%
-\pdfglyphtounicode{D}{0044}%
-\pdfglyphtounicode{E}{0045}%
-\pdfglyphtounicode{F}{0046}%
-\pdfglyphtounicode{G}{0047}%
-\pdfglyphtounicode{H}{0048}%
-\pdfglyphtounicode{I}{0049}%
-\pdfglyphtounicode{J}{004A}%
-\pdfglyphtounicode{K}{004B}%
-\pdfglyphtounicode{L}{004C}%
-\pdfglyphtounicode{M}{004D}%
-\pdfglyphtounicode{N}{004E}%
-\pdfglyphtounicode{O}{004F}%
-\pdfglyphtounicode{P}{0050}%
-\pdfglyphtounicode{Q}{0051}%
-\pdfglyphtounicode{R}{0052}%
-\pdfglyphtounicode{S}{0053}%
-\pdfglyphtounicode{T}{0054}%
-\pdfglyphtounicode{U}{0055}%
-\pdfglyphtounicode{V}{0056}%
-\pdfglyphtounicode{W}{0057}%
-\pdfglyphtounicode{X}{0058}%
-\pdfglyphtounicode{Y}{0059}%
-\pdfglyphtounicode{Z}{005A}%
-\pdfglyphtounicode{bracketleft}{005B}%
-\pdfglyphtounicode{backslash}{005C}%
-\pdfglyphtounicode{bracketright}{005D}%
-\pdfglyphtounicode{asciicircum}{005E}%
-\pdfglyphtounicode{underscore}{005F}%
-\pdfglyphtounicode{grave}{0060}%
-\pdfglyphtounicode{a}{0061}%
-\pdfglyphtounicode{b}{0062}%
-\pdfglyphtounicode{c}{0063}%
-\pdfglyphtounicode{d}{0064}%
-\pdfglyphtounicode{e}{0065}%
-\pdfglyphtounicode{f}{0066}%
-\pdfglyphtounicode{g}{0067}%
-\pdfglyphtounicode{h}{0068}%
-\pdfglyphtounicode{i}{0069}%
-\pdfglyphtounicode{j}{006A}%
-\pdfglyphtounicode{k}{006B}%
-\pdfglyphtounicode{l}{006C}%
-\pdfglyphtounicode{m}{006D}%
-\pdfglyphtounicode{n}{006E}%
-\pdfglyphtounicode{o}{006F}%
-\pdfglyphtounicode{p}{0070}%
-\pdfglyphtounicode{q}{0071}%
-\pdfglyphtounicode{r}{0072}%
-\pdfglyphtounicode{s}{0073}%
-\pdfglyphtounicode{t}{0074}%
-\pdfglyphtounicode{u}{0075}%
-\pdfglyphtounicode{v}{0076}%
-\pdfglyphtounicode{w}{0077}%
-\pdfglyphtounicode{x}{0078}%
-\pdfglyphtounicode{y}{0079}%
-\pdfglyphtounicode{z}{007A}%
-\pdfglyphtounicode{braceleft}{007B}%
-\pdfglyphtounicode{bar}{007C}%
-\pdfglyphtounicode{braceright}{007D}%
-\pdfglyphtounicode{asciitilde}{007E}%
-\pdfglyphtounicode{exclamdown}{00A1}%
-\pdfglyphtounicode{cent}{00A2}%
-\pdfglyphtounicode{sterling}{00A3}%
-\pdfglyphtounicode{currency}{00A4}%
-\pdfglyphtounicode{yen}{00A5}%
-\pdfglyphtounicode{brokenbar}{00A6}%
-\pdfglyphtounicode{section}{00A7}%
-\pdfglyphtounicode{dieresis}{00A8}%
-\pdfglyphtounicode{copyright}{00A9}%
-\pdfglyphtounicode{ordfeminine}{00AA}%
-\pdfglyphtounicode{guillemotleft}{00AB}%
-\pdfglyphtounicode{logicalnot}{00AC}%
-\pdfglyphtounicode{registered}{00AE}%
-\pdfglyphtounicode{macron}{00AF}%
-\pdfglyphtounicode{degree}{00B0}%
-\pdfglyphtounicode{plusminus}{00B1}%
-\pdfglyphtounicode{acute}{00B4}%
-\pdfglyphtounicode{mu}{00B5}%
-\pdfglyphtounicode{paragraph}{00B6}%
-\pdfglyphtounicode{periodcentered}{00B7}%
-\pdfglyphtounicode{cedilla}{00B8}%
-\pdfglyphtounicode{ordmasculine}{00BA}%
-\pdfglyphtounicode{guillemotright}{00BB}%
-\pdfglyphtounicode{onequarter}{00BC}%
-\pdfglyphtounicode{onehalf}{00BD}%
-\pdfglyphtounicode{threequarters}{00BE}%
-\pdfglyphtounicode{questiondown}{00BF}%
-\pdfglyphtounicode{Agrave}{00C0}%
-\pdfglyphtounicode{Aacute}{00C1}%
-\pdfglyphtounicode{Acircumflex}{00C2}%
-\pdfglyphtounicode{Atilde}{00C3}%
-\pdfglyphtounicode{Adieresis}{00C4}%
-\pdfglyphtounicode{Aring}{00C5}%
-\pdfglyphtounicode{AE}{00C6}%
-\pdfglyphtounicode{Ccedilla}{00C7}%
-\pdfglyphtounicode{Egrave}{00C8}%
-\pdfglyphtounicode{Eacute}{00C9}%
-\pdfglyphtounicode{Ecircumflex}{00CA}%
-\pdfglyphtounicode{Edieresis}{00CB}%
-\pdfglyphtounicode{Igrave}{00CC}%
-\pdfglyphtounicode{Iacute}{00CD}%
-\pdfglyphtounicode{Icircumflex}{00CE}%
-\pdfglyphtounicode{Idieresis}{00CF}%
-\pdfglyphtounicode{Eth}{00D0}%
-\pdfglyphtounicode{Ntilde}{00D1}%
-\pdfglyphtounicode{Ograve}{00D2}%
-\pdfglyphtounicode{Oacute}{00D3}%
-\pdfglyphtounicode{Ocircumflex}{00D4}%
-\pdfglyphtounicode{Otilde}{00D5}%
-\pdfglyphtounicode{Odieresis}{00D6}%
-\pdfglyphtounicode{multiply}{00D7}%
-\pdfglyphtounicode{Oslash}{00D8}%
-\pdfglyphtounicode{Ugrave}{00D9}%
-\pdfglyphtounicode{Uacute}{00DA}%
-\pdfglyphtounicode{Ucircumflex}{00DB}%
-\pdfglyphtounicode{Udieresis}{00DC}%
-\pdfglyphtounicode{Yacute}{00DD}%
-\pdfglyphtounicode{Thorn}{00DE}%
-\pdfglyphtounicode{germandbls}{00DF}%
-\pdfglyphtounicode{agrave}{00E0}%
-\pdfglyphtounicode{aacute}{00E1}%
-\pdfglyphtounicode{acircumflex}{00E2}%
-\pdfglyphtounicode{atilde}{00E3}%
-\pdfglyphtounicode{adieresis}{00E4}%
-\pdfglyphtounicode{aring}{00E5}%
-\pdfglyphtounicode{ae}{00E6}%
-\pdfglyphtounicode{ccedilla}{00E7}%
-\pdfglyphtounicode{egrave}{00E8}%
-\pdfglyphtounicode{eacute}{00E9}%
-\pdfglyphtounicode{ecircumflex}{00EA}%
-\pdfglyphtounicode{edieresis}{00EB}%
-\pdfglyphtounicode{igrave}{00EC}%
-\pdfglyphtounicode{iacute}{00ED}%
-\pdfglyphtounicode{icircumflex}{00EE}%
-\pdfglyphtounicode{idieresis}{00EF}%
-\pdfglyphtounicode{eth}{00F0}%
-\pdfglyphtounicode{ntilde}{00F1}%
-\pdfglyphtounicode{ograve}{00F2}%
-\pdfglyphtounicode{oacute}{00F3}%
-\pdfglyphtounicode{ocircumflex}{00F4}%
-\pdfglyphtounicode{otilde}{00F5}%
-\pdfglyphtounicode{odieresis}{00F6}%
-\pdfglyphtounicode{divide}{00F7}%
-\pdfglyphtounicode{oslash}{00F8}%
-\pdfglyphtounicode{ugrave}{00F9}%
-\pdfglyphtounicode{uacute}{00FA}%
-\pdfglyphtounicode{ucircumflex}{00FB}%
-\pdfglyphtounicode{udieresis}{00FC}%
-\pdfglyphtounicode{yacute}{00FD}%
-\pdfglyphtounicode{thorn}{00FE}%
-\pdfglyphtounicode{ydieresis}{00FF}%
-\pdfglyphtounicode{Amacron}{0100}%
-\pdfglyphtounicode{amacron}{0101}%
-\pdfglyphtounicode{Abreve}{0102}%
-\pdfglyphtounicode{abreve}{0103}%
-\pdfglyphtounicode{Aogonek}{0104}%
-\pdfglyphtounicode{aogonek}{0105}%
-\pdfglyphtounicode{Cacute}{0106}%
-\pdfglyphtounicode{cacute}{0107}%
-\pdfglyphtounicode{Ccircumflex}{0108}%
-\pdfglyphtounicode{ccircumflex}{0109}%
-\pdfglyphtounicode{Cdotaccent}{010A}%
-\pdfglyphtounicode{cdotaccent}{010B}%
-\pdfglyphtounicode{Ccaron}{010C}%
-\pdfglyphtounicode{ccaron}{010D}%
-\pdfglyphtounicode{Dcaron}{010E}%
-\pdfglyphtounicode{dcaron}{010F}%
-\pdfglyphtounicode{Dcroat}{0110}%
-\pdfglyphtounicode{dcroat}{0111}%
-\pdfglyphtounicode{Emacron}{0112}%
-\pdfglyphtounicode{emacron}{0113}%
-\pdfglyphtounicode{Ebreve}{0114}%
-\pdfglyphtounicode{ebreve}{0115}%
-\pdfglyphtounicode{Edotaccent}{0116}%
-\pdfglyphtounicode{edotaccent}{0117}%
-\pdfglyphtounicode{Eogonek}{0118}%
-\pdfglyphtounicode{eogonek}{0119}%
-\pdfglyphtounicode{Ecaron}{011A}%
-\pdfglyphtounicode{ecaron}{011B}%
-\pdfglyphtounicode{Gcircumflex}{011C}%
-\pdfglyphtounicode{gcircumflex}{011D}%
-\pdfglyphtounicode{Gbreve}{011E}%
-\pdfglyphtounicode{gbreve}{011F}%
-\pdfglyphtounicode{Gdotaccent}{0120}%
-\pdfglyphtounicode{gdotaccent}{0121}%
-\pdfglyphtounicode{Gcommaaccent}{0122}%
-\pdfglyphtounicode{gcommaaccent}{0123}%
-\pdfglyphtounicode{Hcircumflex}{0124}%
-\pdfglyphtounicode{hcircumflex}{0125}%
-\pdfglyphtounicode{Hbar}{0126}%
-\pdfglyphtounicode{hbar}{0127}%
-\pdfglyphtounicode{Itilde}{0128}%
-\pdfglyphtounicode{itilde}{0129}%
-\pdfglyphtounicode{Imacron}{012A}%
-\pdfglyphtounicode{imacron}{012B}%
-\pdfglyphtounicode{Ibreve}{012C}%
-\pdfglyphtounicode{ibreve}{012D}%
-\pdfglyphtounicode{Iogonek}{012E}%
-\pdfglyphtounicode{iogonek}{012F}%
-\pdfglyphtounicode{Idotaccent}{0130}%
-\pdfglyphtounicode{dotlessi}{0131}%
-\pdfglyphtounicode{IJ}{0132}%
-\pdfglyphtounicode{ij}{0133}%
-\pdfglyphtounicode{Jcircumflex}{0134}%
-\pdfglyphtounicode{jcircumflex}{0135}%
-\pdfglyphtounicode{Kcommaaccent}{0136}%
-\pdfglyphtounicode{kcommaaccent}{0137}%
-\pdfglyphtounicode{kgreenlandic}{0138}%
-\pdfglyphtounicode{Lacute}{0139}%
-\pdfglyphtounicode{lacute}{013A}%
-\pdfglyphtounicode{Lcommaaccent}{013B}%
-\pdfglyphtounicode{lcommaaccent}{013C}%
-\pdfglyphtounicode{Lcaron}{013D}%
-\pdfglyphtounicode{lcaron}{013E}%
-\pdfglyphtounicode{Ldot}{013F}%
-\pdfglyphtounicode{ldot}{0140}%
-\pdfglyphtounicode{Lslash}{0141}%
-\pdfglyphtounicode{lslash}{0142}%
-\pdfglyphtounicode{Nacute}{0143}%
-\pdfglyphtounicode{nacute}{0144}%
-\pdfglyphtounicode{Ncommaaccent}{0145}%
-\pdfglyphtounicode{ncommaaccent}{0146}%
-\pdfglyphtounicode{Ncaron}{0147}%
-\pdfglyphtounicode{ncaron}{0148}%
-\pdfglyphtounicode{napostrophe}{0149}%
-\pdfglyphtounicode{Eng}{014A}%
-\pdfglyphtounicode{eng}{014B}%
-\pdfglyphtounicode{Omacron}{014C}%
-\pdfglyphtounicode{omacron}{014D}%
-\pdfglyphtounicode{Obreve}{014E}%
-\pdfglyphtounicode{obreve}{014F}%
-\pdfglyphtounicode{Ohungarumlaut}{0150}%
-\pdfglyphtounicode{ohungarumlaut}{0151}%
-\pdfglyphtounicode{OE}{0152}%
-\pdfglyphtounicode{oe}{0153}%
-\pdfglyphtounicode{Racute}{0154}%
-\pdfglyphtounicode{racute}{0155}%
-\pdfglyphtounicode{Rcommaaccent}{0156}%
-\pdfglyphtounicode{rcommaaccent}{0157}%
-\pdfglyphtounicode{Rcaron}{0158}%
-\pdfglyphtounicode{rcaron}{0159}%
-\pdfglyphtounicode{Sacute}{015A}%
-\pdfglyphtounicode{sacute}{015B}%
-\pdfglyphtounicode{Scircumflex}{015C}%
-\pdfglyphtounicode{scircumflex}{015D}%
-\pdfglyphtounicode{Scedilla}{015E}%
-\pdfglyphtounicode{scedilla}{015F}%
-\pdfglyphtounicode{Scaron}{0160}%
-\pdfglyphtounicode{scaron}{0161}%
-\pdfglyphtounicode{Tcommaaccent}{0162}%
-\pdfglyphtounicode{tcommaaccent}{0163}%
-\pdfglyphtounicode{Tcaron}{0164}%
-\pdfglyphtounicode{tcaron}{0165}%
-\pdfglyphtounicode{Tbar}{0166}%
-\pdfglyphtounicode{tbar}{0167}%
-\pdfglyphtounicode{Utilde}{0168}%
-\pdfglyphtounicode{utilde}{0169}%
-\pdfglyphtounicode{Umacron}{016A}%
-\pdfglyphtounicode{umacron}{016B}%
-\pdfglyphtounicode{Ubreve}{016C}%
-\pdfglyphtounicode{ubreve}{016D}%
-\pdfglyphtounicode{Uring}{016E}%
-\pdfglyphtounicode{uring}{016F}%
-\pdfglyphtounicode{Uhungarumlaut}{0170}%
-\pdfglyphtounicode{uhungarumlaut}{0171}%
-\pdfglyphtounicode{Uogonek}{0172}%
-\pdfglyphtounicode{uogonek}{0173}%
-\pdfglyphtounicode{Wcircumflex}{0174}%
-\pdfglyphtounicode{wcircumflex}{0175}%
-\pdfglyphtounicode{Ycircumflex}{0176}%
-\pdfglyphtounicode{ycircumflex}{0177}%
-\pdfglyphtounicode{Ydieresis}{0178}%
-\pdfglyphtounicode{Zacute}{0179}%
-\pdfglyphtounicode{zacute}{017A}%
-\pdfglyphtounicode{Zdotaccent}{017B}%
-\pdfglyphtounicode{zdotaccent}{017C}%
-\pdfglyphtounicode{Zcaron}{017D}%
-\pdfglyphtounicode{zcaron}{017E}%
-\pdfglyphtounicode{longs}{017F}%
-\pdfglyphtounicode{florin}{0192}%
-\pdfglyphtounicode{Ohorn}{01A0}%
-\pdfglyphtounicode{ohorn}{01A1}%
-\pdfglyphtounicode{Uhorn}{01AF}%
-\pdfglyphtounicode{uhorn}{01B0}%
-\pdfglyphtounicode{Gcaron}{01E6}%
-\pdfglyphtounicode{gcaron}{01E7}%
-\pdfglyphtounicode{Aringacute}{01FA}%
-\pdfglyphtounicode{aringacute}{01FB}%
-\pdfglyphtounicode{AEacute}{01FC}%
-\pdfglyphtounicode{aeacute}{01FD}%
-\pdfglyphtounicode{Oslashacute}{01FE}%
-\pdfglyphtounicode{oslashacute}{01FF}%
-\pdfglyphtounicode{Scommaaccent}{0218}%
-\pdfglyphtounicode{scommaaccent}{0219}%
-\pdfglyphtounicode{afii57929}{02BC}%
-\pdfglyphtounicode{afii64937}{02BD}%
-\pdfglyphtounicode{circumflex}{02C6}%
-\pdfglyphtounicode{caron}{02C7}%
-\pdfglyphtounicode{breve}{02D8}%
-\pdfglyphtounicode{dotaccent}{02D9}%
-\pdfglyphtounicode{ring}{02DA}%
-\pdfglyphtounicode{ogonek}{02DB}%
-\pdfglyphtounicode{tilde}{02DC}%
-\pdfglyphtounicode{hungarumlaut}{02DD}%
-\pdfglyphtounicode{gravecomb}{0300}%
-\pdfglyphtounicode{acutecomb}{0301}%
-\pdfglyphtounicode{tildecomb}{0303}%
-\pdfglyphtounicode{hookabovecomb}{0309}%
-\pdfglyphtounicode{dotbelowcomb}{0323}%
-\pdfglyphtounicode{tonos}{0384}%
-\pdfglyphtounicode{dieresistonos}{0385}%
-\pdfglyphtounicode{Alphatonos}{0386}%
-\pdfglyphtounicode{anoteleia}{0387}%
-\pdfglyphtounicode{Epsilontonos}{0388}%
-\pdfglyphtounicode{Etatonos}{0389}%
-\pdfglyphtounicode{Iotatonos}{038A}%
-\pdfglyphtounicode{Omicrontonos}{038C}%
-\pdfglyphtounicode{Upsilontonos}{038E}%
-\pdfglyphtounicode{Omegatonos}{038F}%
-\pdfglyphtounicode{iotadieresistonos}{0390}%
-\pdfglyphtounicode{Alpha}{0391}%
-\pdfglyphtounicode{Beta}{0392}%
-\pdfglyphtounicode{Gamma}{0393}%
-\pdfglyphtounicode{Epsilon}{0395}%
-\pdfglyphtounicode{Zeta}{0396}%
-\pdfglyphtounicode{Eta}{0397}%
-\pdfglyphtounicode{Theta}{0398}%
-\pdfglyphtounicode{Iota}{0399}%
-\pdfglyphtounicode{Kappa}{039A}%
-\pdfglyphtounicode{Lambda}{039B}%
-\pdfglyphtounicode{Mu}{039C}%
-\pdfglyphtounicode{Nu}{039D}%
-\pdfglyphtounicode{Xi}{039E}%
-\pdfglyphtounicode{Omicron}{039F}%
-\pdfglyphtounicode{Pi}{03A0}%
-\pdfglyphtounicode{Rho}{03A1}%
-\pdfglyphtounicode{Sigma}{03A3}%
-\pdfglyphtounicode{Tau}{03A4}%
-\pdfglyphtounicode{Upsilon}{03A5}%
-\pdfglyphtounicode{Phi}{03A6}%
-\pdfglyphtounicode{Chi}{03A7}%
-\pdfglyphtounicode{Psi}{03A8}%
-\pdfglyphtounicode{Iotadieresis}{03AA}%
-\pdfglyphtounicode{Upsilondieresis}{03AB}%
-\pdfglyphtounicode{alphatonos}{03AC}%
-\pdfglyphtounicode{epsilontonos}{03AD}%
-\pdfglyphtounicode{etatonos}{03AE}%
-\pdfglyphtounicode{iotatonos}{03AF}%
-\pdfglyphtounicode{upsilondieresistonos}{03B0}%
-\pdfglyphtounicode{alpha}{03B1}%
-\pdfglyphtounicode{beta}{03B2}%
-\pdfglyphtounicode{gamma}{03B3}%
-\pdfglyphtounicode{delta}{03B4}%
-\pdfglyphtounicode{epsilon}{03B5}%
-\pdfglyphtounicode{zeta}{03B6}%
-\pdfglyphtounicode{eta}{03B7}%
-\pdfglyphtounicode{theta}{03B8}%
-\pdfglyphtounicode{iota}{03B9}%
-\pdfglyphtounicode{kappa}{03BA}%
-\pdfglyphtounicode{lambda}{03BB}%
-\pdfglyphtounicode{nu}{03BD}%
-\pdfglyphtounicode{xi}{03BE}%
-\pdfglyphtounicode{omicron}{03BF}%
-\pdfglyphtounicode{pi}{03C0}%
-\pdfglyphtounicode{rho}{03C1}%
-\pdfglyphtounicode{sigma1}{03C2}%
-\pdfglyphtounicode{sigma}{03C3}%
-\pdfglyphtounicode{tau}{03C4}%
-\pdfglyphtounicode{upsilon}{03C5}%
-\pdfglyphtounicode{phi}{03C6}%
-\pdfglyphtounicode{chi}{03C7}%
-\pdfglyphtounicode{psi}{03C8}%
-\pdfglyphtounicode{omega}{03C9}%
-\pdfglyphtounicode{iotadieresis}{03CA}%
-\pdfglyphtounicode{upsilondieresis}{03CB}%
-\pdfglyphtounicode{omicrontonos}{03CC}%
-\pdfglyphtounicode{upsilontonos}{03CD}%
-\pdfglyphtounicode{omegatonos}{03CE}%
-\pdfglyphtounicode{theta1}{03D1}%
-\pdfglyphtounicode{Upsilon1}{03D2}%
-\pdfglyphtounicode{phi1}{03D5}%
-\pdfglyphtounicode{omega1}{03D6}%
-\pdfglyphtounicode{afii10023}{0401}%
-\pdfglyphtounicode{afii10051}{0402}%
-\pdfglyphtounicode{afii10052}{0403}%
-\pdfglyphtounicode{afii10053}{0404}%
-\pdfglyphtounicode{afii10054}{0405}%
-\pdfglyphtounicode{afii10055}{0406}%
-\pdfglyphtounicode{afii10056}{0407}%
-\pdfglyphtounicode{afii10057}{0408}%
-\pdfglyphtounicode{afii10058}{0409}%
-\pdfglyphtounicode{afii10059}{040A}%
-\pdfglyphtounicode{afii10060}{040B}%
-\pdfglyphtounicode{afii10061}{040C}%
-\pdfglyphtounicode{afii10062}{040E}%
-\pdfglyphtounicode{afii10145}{040F}%
-\pdfglyphtounicode{afii10017}{0410}%
-\pdfglyphtounicode{afii10018}{0411}%
-\pdfglyphtounicode{afii10019}{0412}%
-\pdfglyphtounicode{afii10020}{0413}%
-\pdfglyphtounicode{afii10021}{0414}%
-\pdfglyphtounicode{afii10022}{0415}%
-\pdfglyphtounicode{afii10024}{0416}%
-\pdfglyphtounicode{afii10025}{0417}%
-\pdfglyphtounicode{afii10026}{0418}%
-\pdfglyphtounicode{afii10027}{0419}%
-\pdfglyphtounicode{afii10028}{041A}%
-\pdfglyphtounicode{afii10029}{041B}%
-\pdfglyphtounicode{afii10030}{041C}%
-\pdfglyphtounicode{afii10031}{041D}%
-\pdfglyphtounicode{afii10032}{041E}%
-\pdfglyphtounicode{afii10033}{041F}%
-\pdfglyphtounicode{afii10034}{0420}%
-\pdfglyphtounicode{afii10035}{0421}%
-\pdfglyphtounicode{afii10036}{0422}%
-\pdfglyphtounicode{afii10037}{0423}%
-\pdfglyphtounicode{afii10038}{0424}%
-\pdfglyphtounicode{afii10039}{0425}%
-\pdfglyphtounicode{afii10040}{0426}%
-\pdfglyphtounicode{afii10041}{0427}%
-\pdfglyphtounicode{afii10042}{0428}%
-\pdfglyphtounicode{afii10043}{0429}%
-\pdfglyphtounicode{afii10044}{042A}%
-\pdfglyphtounicode{afii10045}{042B}%
-\pdfglyphtounicode{afii10046}{042C}%
-\pdfglyphtounicode{afii10047}{042D}%
-\pdfglyphtounicode{afii10048}{042E}%
-\pdfglyphtounicode{afii10049}{042F}%
-\pdfglyphtounicode{afii10065}{0430}%
-\pdfglyphtounicode{afii10066}{0431}%
-\pdfglyphtounicode{afii10067}{0432}%
-\pdfglyphtounicode{afii10068}{0433}%
-\pdfglyphtounicode{afii10069}{0434}%
-\pdfglyphtounicode{afii10070}{0435}%
-\pdfglyphtounicode{afii10072}{0436}%
-\pdfglyphtounicode{afii10073}{0437}%
-\pdfglyphtounicode{afii10074}{0438}%
-\pdfglyphtounicode{afii10075}{0439}%
-\pdfglyphtounicode{afii10076}{043A}%
-\pdfglyphtounicode{afii10077}{043B}%
-\pdfglyphtounicode{afii10078}{043C}%
-\pdfglyphtounicode{afii10079}{043D}%
-\pdfglyphtounicode{afii10080}{043E}%
-\pdfglyphtounicode{afii10081}{043F}%
-\pdfglyphtounicode{afii10082}{0440}%
-\pdfglyphtounicode{afii10083}{0441}%
-\pdfglyphtounicode{afii10084}{0442}%
-\pdfglyphtounicode{afii10085}{0443}%
-\pdfglyphtounicode{afii10086}{0444}%
-\pdfglyphtounicode{afii10087}{0445}%
-\pdfglyphtounicode{afii10088}{0446}%
-\pdfglyphtounicode{afii10089}{0447}%
-\pdfglyphtounicode{afii10090}{0448}%
-\pdfglyphtounicode{afii10091}{0449}%
-\pdfglyphtounicode{afii10092}{044A}%
-\pdfglyphtounicode{afii10093}{044B}%
-\pdfglyphtounicode{afii10094}{044C}%
-\pdfglyphtounicode{afii10095}{044D}%
-\pdfglyphtounicode{afii10096}{044E}%
-\pdfglyphtounicode{afii10097}{044F}%
-\pdfglyphtounicode{afii10071}{0451}%
-\pdfglyphtounicode{afii10099}{0452}%
-\pdfglyphtounicode{afii10100}{0453}%
-\pdfglyphtounicode{afii10101}{0454}%
-\pdfglyphtounicode{afii10102}{0455}%
-\pdfglyphtounicode{afii10103}{0456}%
-\pdfglyphtounicode{afii10104}{0457}%
-\pdfglyphtounicode{afii10105}{0458}%
-\pdfglyphtounicode{afii10106}{0459}%
-\pdfglyphtounicode{afii10107}{045A}%
-\pdfglyphtounicode{afii10108}{045B}%
-\pdfglyphtounicode{afii10109}{045C}%
-\pdfglyphtounicode{afii10110}{045E}%
-\pdfglyphtounicode{afii10193}{045F}%
-\pdfglyphtounicode{afii10146}{0462}%
-\pdfglyphtounicode{afii10194}{0463}%
-\pdfglyphtounicode{afii10147}{0472}%
-\pdfglyphtounicode{afii10195}{0473}%
-\pdfglyphtounicode{afii10148}{0474}%
-\pdfglyphtounicode{afii10196}{0475}%
-\pdfglyphtounicode{afii10050}{0490}%
-\pdfglyphtounicode{afii10098}{0491}%
-\pdfglyphtounicode{afii10846}{04D9}%
-\pdfglyphtounicode{afii57799}{05B0}%
-\pdfglyphtounicode{afii57801}{05B1}%
-\pdfglyphtounicode{afii57800}{05B2}%
-\pdfglyphtounicode{afii57802}{05B3}%
-\pdfglyphtounicode{afii57793}{05B4}%
-\pdfglyphtounicode{afii57794}{05B5}%
-\pdfglyphtounicode{afii57795}{05B6}%
-\pdfglyphtounicode{afii57798}{05B7}%
-\pdfglyphtounicode{afii57797}{05B8}%
-\pdfglyphtounicode{afii57806}{05B9}%
-\pdfglyphtounicode{afii57796}{05BB}%
-\pdfglyphtounicode{afii57807}{05BC}%
-\pdfglyphtounicode{afii57839}{05BD}%
-\pdfglyphtounicode{afii57645}{05BE}%
-\pdfglyphtounicode{afii57841}{05BF}%
-\pdfglyphtounicode{afii57842}{05C0}%
-\pdfglyphtounicode{afii57804}{05C1}%
-\pdfglyphtounicode{afii57803}{05C2}%
-\pdfglyphtounicode{afii57658}{05C3}%
-\pdfglyphtounicode{afii57664}{05D0}%
-\pdfglyphtounicode{afii57665}{05D1}%
-\pdfglyphtounicode{afii57666}{05D2}%
-\pdfglyphtounicode{afii57667}{05D3}%
-\pdfglyphtounicode{afii57668}{05D4}%
-\pdfglyphtounicode{afii57669}{05D5}%
-\pdfglyphtounicode{afii57670}{05D6}%
-\pdfglyphtounicode{afii57671}{05D7}%
-\pdfglyphtounicode{afii57672}{05D8}%
-\pdfglyphtounicode{afii57673}{05D9}%
-\pdfglyphtounicode{afii57674}{05DA}%
-\pdfglyphtounicode{afii57675}{05DB}%
-\pdfglyphtounicode{afii57676}{05DC}%
-\pdfglyphtounicode{afii57677}{05DD}%
-\pdfglyphtounicode{afii57678}{05DE}%
-\pdfglyphtounicode{afii57679}{05DF}%
-\pdfglyphtounicode{afii57680}{05E0}%
-\pdfglyphtounicode{afii57681}{05E1}%
-\pdfglyphtounicode{afii57682}{05E2}%
-\pdfglyphtounicode{afii57683}{05E3}%
-\pdfglyphtounicode{afii57684}{05E4}%
-\pdfglyphtounicode{afii57685}{05E5}%
-\pdfglyphtounicode{afii57686}{05E6}%
-\pdfglyphtounicode{afii57687}{05E7}%
-\pdfglyphtounicode{afii57688}{05E8}%
-\pdfglyphtounicode{afii57689}{05E9}%
-\pdfglyphtounicode{afii57690}{05EA}%
-\pdfglyphtounicode{afii57716}{05F0}%
-\pdfglyphtounicode{afii57717}{05F1}%
-\pdfglyphtounicode{afii57718}{05F2}%
-\pdfglyphtounicode{afii57388}{060C}%
-\pdfglyphtounicode{afii57403}{061B}%
-\pdfglyphtounicode{afii57407}{061F}%
-\pdfglyphtounicode{afii57409}{0621}%
-\pdfglyphtounicode{afii57410}{0622}%
-\pdfglyphtounicode{afii57411}{0623}%
-\pdfglyphtounicode{afii57412}{0624}%
-\pdfglyphtounicode{afii57413}{0625}%
-\pdfglyphtounicode{afii57414}{0626}%
-\pdfglyphtounicode{afii57415}{0627}%
-\pdfglyphtounicode{afii57416}{0628}%
-\pdfglyphtounicode{afii57417}{0629}%
-\pdfglyphtounicode{afii57418}{062A}%
-\pdfglyphtounicode{afii57419}{062B}%
-\pdfglyphtounicode{afii57420}{062C}%
-\pdfglyphtounicode{afii57421}{062D}%
-\pdfglyphtounicode{afii57422}{062E}%
-\pdfglyphtounicode{afii57423}{062F}%
-\pdfglyphtounicode{afii57424}{0630}%
-\pdfglyphtounicode{afii57425}{0631}%
-\pdfglyphtounicode{afii57426}{0632}%
-\pdfglyphtounicode{afii57427}{0633}%
-\pdfglyphtounicode{afii57428}{0634}%
-\pdfglyphtounicode{afii57429}{0635}%
-\pdfglyphtounicode{afii57430}{0636}%
-\pdfglyphtounicode{afii57431}{0637}%
-\pdfglyphtounicode{afii57432}{0638}%
-\pdfglyphtounicode{afii57433}{0639}%
-\pdfglyphtounicode{afii57434}{063A}%
-\pdfglyphtounicode{afii57440}{0640}%
-\pdfglyphtounicode{afii57441}{0641}%
-\pdfglyphtounicode{afii57442}{0642}%
-\pdfglyphtounicode{afii57443}{0643}%
-\pdfglyphtounicode{afii57444}{0644}%
-\pdfglyphtounicode{afii57445}{0645}%
-\pdfglyphtounicode{afii57446}{0646}%
-\pdfglyphtounicode{afii57470}{0647}%
-\pdfglyphtounicode{afii57448}{0648}%
-\pdfglyphtounicode{afii57449}{0649}%
-\pdfglyphtounicode{afii57450}{064A}%
-\pdfglyphtounicode{afii57451}{064B}%
-\pdfglyphtounicode{afii57452}{064C}%
-\pdfglyphtounicode{afii57453}{064D}%
-\pdfglyphtounicode{afii57454}{064E}%
-\pdfglyphtounicode{afii57455}{064F}%
-\pdfglyphtounicode{afii57456}{0650}%
-\pdfglyphtounicode{afii57457}{0651}%
-\pdfglyphtounicode{afii57458}{0652}%
-\pdfglyphtounicode{afii57392}{0660}%
-\pdfglyphtounicode{afii57393}{0661}%
-\pdfglyphtounicode{afii57394}{0662}%
-\pdfglyphtounicode{afii57395}{0663}%
-\pdfglyphtounicode{afii57396}{0664}%
-\pdfglyphtounicode{afii57397}{0665}%
-\pdfglyphtounicode{afii57398}{0666}%
-\pdfglyphtounicode{afii57399}{0667}%
-\pdfglyphtounicode{afii57400}{0668}%
-\pdfglyphtounicode{afii57401}{0669}%
-\pdfglyphtounicode{afii57381}{066A}%
-\pdfglyphtounicode{afii63167}{066D}%
-\pdfglyphtounicode{afii57511}{0679}%
-\pdfglyphtounicode{afii57506}{067E}%
-\pdfglyphtounicode{afii57507}{0686}%
-\pdfglyphtounicode{afii57512}{0688}%
-\pdfglyphtounicode{afii57513}{0691}%
-\pdfglyphtounicode{afii57508}{0698}%
-\pdfglyphtounicode{afii57505}{06A4}%
-\pdfglyphtounicode{afii57509}{06AF}%
-\pdfglyphtounicode{afii57514}{06BA}%
-\pdfglyphtounicode{afii57519}{06D2}%
-\pdfglyphtounicode{afii57534}{06D5}%
-\pdfglyphtounicode{Wgrave}{1E80}%
-\pdfglyphtounicode{wgrave}{1E81}%
-\pdfglyphtounicode{Wacute}{1E82}%
-\pdfglyphtounicode{wacute}{1E83}%
-\pdfglyphtounicode{Wdieresis}{1E84}%
-\pdfglyphtounicode{wdieresis}{1E85}%
-\pdfglyphtounicode{Ygrave}{1EF2}%
-\pdfglyphtounicode{ygrave}{1EF3}%
-\pdfglyphtounicode{afii61664}{200C}%
-\pdfglyphtounicode{afii301}{200D}%
-\pdfglyphtounicode{afii299}{200E}%
-\pdfglyphtounicode{afii300}{200F}%
-\pdfglyphtounicode{figuredash}{2012}%
-\pdfglyphtounicode{endash}{2013}%
-\pdfglyphtounicode{emdash}{2014}%
-\pdfglyphtounicode{afii208}{2015}%
-\pdfglyphtounicode{underscoredbl}{2017}%
-\pdfglyphtounicode{quoteleft}{2018}%
-\pdfglyphtounicode{quoteright}{2019}%
-\pdfglyphtounicode{quotesinglbase}{201A}%
-\pdfglyphtounicode{quotereversed}{201B}%
-\pdfglyphtounicode{quotedblleft}{201C}%
-\pdfglyphtounicode{quotedblright}{201D}%
-\pdfglyphtounicode{quotedblbase}{201E}%
-\pdfglyphtounicode{dagger}{2020}%
-\pdfglyphtounicode{daggerdbl}{2021}%
-\pdfglyphtounicode{bullet}{2022}%
-\pdfglyphtounicode{onedotenleader}{2024}%
-\pdfglyphtounicode{twodotenleader}{2025}%
-\pdfglyphtounicode{ellipsis}{2026}%
-\pdfglyphtounicode{afii61573}{202C}%
-\pdfglyphtounicode{afii61574}{202D}%
-\pdfglyphtounicode{afii61575}{202E}%
-\pdfglyphtounicode{perthousand}{2030}%
-\pdfglyphtounicode{minute}{2032}%
-\pdfglyphtounicode{second}{2033}%
-\pdfglyphtounicode{guilsinglleft}{2039}%
-\pdfglyphtounicode{guilsinglright}{203A}%
-\pdfglyphtounicode{exclamdbl}{203C}%
-\pdfglyphtounicode{fraction}{2044}%
-\pdfglyphtounicode{colonmonetary}{20A1}%
-\pdfglyphtounicode{franc}{20A3}%
-\pdfglyphtounicode{lira}{20A4}%
-\pdfglyphtounicode{peseta}{20A7}%
-\pdfglyphtounicode{afii57636}{20AA}%
-\pdfglyphtounicode{dong}{20AB}%
-\pdfglyphtounicode{Euro}{20AC}%
-\pdfglyphtounicode{afii61248}{2105}%
-\pdfglyphtounicode{Ifraktur}{2111}%
-\pdfglyphtounicode{afii61289}{2113}%
-\pdfglyphtounicode{afii61352}{2116}%
-\pdfglyphtounicode{weierstrass}{2118}%
-\pdfglyphtounicode{Rfraktur}{211C}%
-\pdfglyphtounicode{prescription}{211E}%
-\pdfglyphtounicode{trademark}{2122}%
-\pdfglyphtounicode{Omega}{2126}%
-\pdfglyphtounicode{estimated}{212E}%
-\pdfglyphtounicode{aleph}{2135}%
-\pdfglyphtounicode{onethird}{2153}%
-\pdfglyphtounicode{twothirds}{2154}%
-\pdfglyphtounicode{oneeighth}{215B}%
-\pdfglyphtounicode{threeeighths}{215C}%
-\pdfglyphtounicode{fiveeighths}{215D}%
-\pdfglyphtounicode{seveneighths}{215E}%
-\pdfglyphtounicode{arrowleft}{2190}%
-\pdfglyphtounicode{arrowup}{2191}%
-\pdfglyphtounicode{arrowright}{2192}%
-\pdfglyphtounicode{arrowdown}{2193}%
-\pdfglyphtounicode{arrowboth}{2194}%
-\pdfglyphtounicode{arrowupdn}{2195}%
-\pdfglyphtounicode{arrowupdnbse}{21A8}%
-\pdfglyphtounicode{carriagereturn}{21B5}%
-\pdfglyphtounicode{arrowdblleft}{21D0}%
-\pdfglyphtounicode{arrowdblup}{21D1}%
-\pdfglyphtounicode{arrowdblright}{21D2}%
-\pdfglyphtounicode{arrowdbldown}{21D3}%
-\pdfglyphtounicode{arrowdblboth}{21D4}%
-\pdfglyphtounicode{universal}{2200}%
-\pdfglyphtounicode{partialdiff}{2202}%
-\pdfglyphtounicode{existential}{2203}%
-\pdfglyphtounicode{emptyset}{2205}%
-\pdfglyphtounicode{Delta}{2206}%
-\pdfglyphtounicode{gradient}{2207}%
-\pdfglyphtounicode{element}{2208}%
-\pdfglyphtounicode{notelement}{2209}%
-\pdfglyphtounicode{suchthat}{220B}%
-\pdfglyphtounicode{product}{220F}%
-\pdfglyphtounicode{summation}{2211}%
-\pdfglyphtounicode{minus}{2212}%
-\pdfglyphtounicode{asteriskmath}{2217}%
-\pdfglyphtounicode{radical}{221A}%
-\pdfglyphtounicode{proportional}{221D}%
-\pdfglyphtounicode{infinity}{221E}%
-\pdfglyphtounicode{orthogonal}{221F}%
-\pdfglyphtounicode{angle}{2220}%
-\pdfglyphtounicode{logicaland}{2227}%
-\pdfglyphtounicode{logicalor}{2228}%
-\pdfglyphtounicode{intersection}{2229}%
-\pdfglyphtounicode{union}{222A}%
-\pdfglyphtounicode{integral}{222B}%
-\pdfglyphtounicode{therefore}{2234}%
-\pdfglyphtounicode{similar}{223C}%
-\pdfglyphtounicode{congruent}{2245}%
-\pdfglyphtounicode{approxequal}{2248}%
-\pdfglyphtounicode{notequal}{2260}%
-\pdfglyphtounicode{equivalence}{2261}%
-\pdfglyphtounicode{lessequal}{2264}%
-\pdfglyphtounicode{greaterequal}{2265}%
-\pdfglyphtounicode{propersubset}{2282}%
-\pdfglyphtounicode{propersuperset}{2283}%
-\pdfglyphtounicode{notsubset}{2284}%
-\pdfglyphtounicode{reflexsubset}{2286}%
-\pdfglyphtounicode{reflexsuperset}{2287}%
-\pdfglyphtounicode{circleplus}{2295}%
-\pdfglyphtounicode{circlemultiply}{2297}%
-\pdfglyphtounicode{perpendicular}{22A5}%
-\pdfglyphtounicode{dotmath}{22C5}%
-\pdfglyphtounicode{house}{2302}%
-\pdfglyphtounicode{revlogicalnot}{2310}%
-\pdfglyphtounicode{integraltp}{2320}%
-\pdfglyphtounicode{integralbt}{2321}%
-\pdfglyphtounicode{angleleft}{2329}%
-\pdfglyphtounicode{angleright}{232A}%
-\pdfglyphtounicode{SF100000}{2500}%
-\pdfglyphtounicode{SF110000}{2502}%
-\pdfglyphtounicode{SF10000}{250C}%
-\pdfglyphtounicode{SF30000}{2510}%
-\pdfglyphtounicode{SF20000}{2514}%
-\pdfglyphtounicode{SF40000}{2518}%
-\pdfglyphtounicode{SF80000}{251C}%
-\pdfglyphtounicode{SF90000}{2524}%
-\pdfglyphtounicode{SF60000}{252C}%
-\pdfglyphtounicode{SF70000}{2534}%
-\pdfglyphtounicode{SF50000}{253C}%
-\pdfglyphtounicode{SF430000}{2550}%
-\pdfglyphtounicode{SF240000}{2551}%
-\pdfglyphtounicode{SF510000}{2552}%
-\pdfglyphtounicode{SF520000}{2553}%
-\pdfglyphtounicode{SF390000}{2554}%
-\pdfglyphtounicode{SF220000}{2555}%
-\pdfglyphtounicode{SF210000}{2556}%
-\pdfglyphtounicode{SF250000}{2557}%
-\pdfglyphtounicode{SF500000}{2558}%
-\pdfglyphtounicode{SF490000}{2559}%
-\pdfglyphtounicode{SF380000}{255A}%
-\pdfglyphtounicode{SF280000}{255B}%
-\pdfglyphtounicode{SF270000}{255C}%
-\pdfglyphtounicode{SF260000}{255D}%
-\pdfglyphtounicode{SF360000}{255E}%
-\pdfglyphtounicode{SF370000}{255F}%
-\pdfglyphtounicode{SF420000}{2560}%
-\pdfglyphtounicode{SF190000}{2561}%
-\pdfglyphtounicode{SF200000}{2562}%
-\pdfglyphtounicode{SF230000}{2563}%
-\pdfglyphtounicode{SF470000}{2564}%
-\pdfglyphtounicode{SF480000}{2565}%
-\pdfglyphtounicode{SF410000}{2566}%
-\pdfglyphtounicode{SF450000}{2567}%
-\pdfglyphtounicode{SF460000}{2568}%
-\pdfglyphtounicode{SF400000}{2569}%
-\pdfglyphtounicode{SF540000}{256A}%
-\pdfglyphtounicode{SF530000}{256B}%
-\pdfglyphtounicode{SF440000}{256C}%
-\pdfglyphtounicode{upblock}{2580}%
-\pdfglyphtounicode{dnblock}{2584}%
-\pdfglyphtounicode{block}{2588}%
-\pdfglyphtounicode{lfblock}{258C}%
-\pdfglyphtounicode{rtblock}{2590}%
-\pdfglyphtounicode{ltshade}{2591}%
-\pdfglyphtounicode{shade}{2592}%
-\pdfglyphtounicode{dkshade}{2593}%
-\pdfglyphtounicode{filledbox}{25A0}%
-\pdfglyphtounicode{H22073}{25A1}%
-\pdfglyphtounicode{H18543}{25AA}%
-\pdfglyphtounicode{H18551}{25AB}%
-\pdfglyphtounicode{filledrect}{25AC}%
-\pdfglyphtounicode{triagup}{25B2}%
-\pdfglyphtounicode{triagrt}{25BA}%
-\pdfglyphtounicode{triagdn}{25BC}%
-\pdfglyphtounicode{triaglf}{25C4}%
-\pdfglyphtounicode{lozenge}{25CA}%
-\pdfglyphtounicode{circle}{25CB}%
-\pdfglyphtounicode{H18533}{25CF}%
-\pdfglyphtounicode{invbullet}{25D8}%
-\pdfglyphtounicode{invcircle}{25D9}%
-\pdfglyphtounicode{openbullet}{25E6}%
-\pdfglyphtounicode{smileface}{263A}%
-\pdfglyphtounicode{invsmileface}{263B}%
-\pdfglyphtounicode{sun}{263C}%
-\pdfglyphtounicode{female}{2640}%
-\pdfglyphtounicode{male}{2642}%
-\pdfglyphtounicode{spade}{2660}%
-\pdfglyphtounicode{club}{2663}%
-\pdfglyphtounicode{heart}{2665}%
-\pdfglyphtounicode{diamond}{2666}%
-\pdfglyphtounicode{musicalnote}{266A}%
-\pdfglyphtounicode{musicalnotedbl}{266B}%
-%
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/pdfr-ec.mkii b/Master/texmf-dist/tex/context/base/mkii/pdfr-ec.mkii
deleted file mode 100644
index e2208aa3657..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/pdfr-ec.mkii
+++ /dev/null
@@ -1,145 +0,0 @@
-%D \module
-%D [ file=pdfr-ec,
-%D version=2005.07.27,
-%D title=\CONTEXT\ PDF Font Resources,
-%D subtitle=EC encoding,
-%D author={Vladimir Volovich / Taco Hoekwater},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This vector is derived (but reformatted a bit) from
-%D the one in \LaTeX's CMap package
-
-\startpdffontresource[ec]
-/CIDInit /ProcSet findresource begin
-12 dict begin
- begincmap
- /CIDSystemInfo
- << /Registry (TeX)
- /Ordering (T1)
- /Supplement 0
- >> def
- /CMapName /TeX-T1-0 def
- /CMapType 2 def
- 1 begincodespacerange
- <00> <FF>
- endcodespacerange
- 10 beginbfrange
- <0E> <0F> <2039>
- <10> <12> <201C>
- <15> <16> <2013>
- <21> <26> <0021>
- <28> <5F> <0028>
- <61> <7E> <0061>
- <C0> <D6> <00C0>
- <D8> <DE> <00D8>
- <E0> <F6> <00E0>
- <F8> <FE> <00F8>
- endbfrange
- 95 beginbfchar
- <00> <0060>
- <01> <00B4>
- <02> <02C6>
- <03> <02DC>
- <04> <00A8>
- <05> <02DD>
- <06> <02DA>
- <07> <02C7>
- <08> <02D8>
- <09> <00AF>
- <0A> <02D9>
- <0B> <00B8>
- <0C> <02DB>
- <0D> <201A>
- <13> <00AB>
- <14> <00BB>
- <17> <200C>
- <19> <0131>
- <1B> <00660066>
- <1C> <00660069>
- <1D> <0066006C>
- <1E> <006600660069>
- <1F> <00660066006C>
- <20> <2423>
- <27> <2019>
- <60> <2018>
- <7F> <002D>
- <80> <0102>
- <81> <0104>
- <82> <0106>
- <83> <010C>
- <84> <010E>
- <85> <011A>
- <86> <0118>
- <87> <011E>
- <88> <0139>
- <89> <013D>
- <8A> <0141>
- <8B> <0143>
- <8C> <0147>
- <8D> <014A>
- <8E> <0150>
- <8F> <0154>
- <90> <0158>
- <91> <015A>
- <92> <0160>
- <93> <015E>
- <94> <0164>
- <95> <021A>
- <96> <0170>
- <97> <016E>
- <98> <0178>
- <99> <0179>
- <9A> <017D>
- <9B> <017B>
- <9C> <0132>
- <9D> <0130>
- <9E> <0111>
- <9F> <00A7>
- <A0> <0103>
- <A1> <0105>
- <A2> <0107>
- <A3> <010D>
- <A4> <010F>
- <A5> <011B>
- <A6> <0119>
- <A7> <011F>
- <A8> <013A>
- <A9> <013E>
- <AA> <0142>
- <AB> <0144>
- <AC> <0148>
- <AD> <014B>
- <AE> <0151>
- <AF> <0155>
- <B0> <0159>
- <B1> <015B>
- <B2> <0161>
- <B3> <015F>
- <B4> <0165>
- <B5> <021B>
- <B6> <0171>
- <B7> <016F>
- <B8> <00FF>
- <B9> <017A>
- <BA> <017E>
- <BB> <017C>
- <BC> <0133>
- <BD> <00A1>
- <BE> <00BF>
- <BF> <00A3>
- <D7> <0152>
- <DF> <00530053>
- <F7> <0153>
- <FF> <00DF>
- endbfchar
- endcmap
-CMapName currentdict /CMap defineresource pop end
-end
-\stoppdffontresource
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/pdfr-il2.mkii b/Master/texmf-dist/tex/context/base/mkii/pdfr-il2.mkii
deleted file mode 100644
index 81f9c42acca..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/pdfr-il2.mkii
+++ /dev/null
@@ -1,233 +0,0 @@
-%D \module
-%D [ file=pdfr-il2,
-%D version=2000.12.10,
-%D title=\CONTEXT\ PDF Font Resources,
-%D subtitle=ISO Latin 2,
-%D author={Ondrej Koala Vacha, Hans Hagen},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This vector is derived (but reformatted a bit) from a
-%D sample send to me by Petr Ferdus. There was some Czech
-%D comment in which I could recognize the name of Ondrej
-%D Koala Vacha. More information on setting up such a vector
-%D can be found in the \PDF\ reference manual.
-
-\startpdffontresource[il2]
-/CIDInit /ProcSet findresource begin
-12 dict begin
- begincmap
- /CIDSystemInfo
- << /Registry (Adobe)
- /Ordering (T1UV)
- /Supplement 0
- >> def
- /CMapName /Adobe-Identity-UCS def
- /CMapType 1 def
- 1 begincodespacerange
- <00> <FF>
- endcodespacerange
- %%FontSpecificEncoding
- 191 beginbfrange
- <20> <20> <0020> % space dec: 32 oct:040 hex:20
- <21> <21> <0021> % exclam dec: 33 oct:041 hex:21
- <22> <22> <0022> % quotedbl dec: 34 oct:042 hex:22
- <23> <23> <0023> % numbersign dec: 35 oct:043 hex:23
- <24> <24> <0024> % dollar dec: 36 oct:044 hex:24
- <25> <25> <0025> % percent dec: 37 oct:045 hex:25
- <26> <26> <0026> % ampersand dec: 38 oct:046 hex:26
- <27> <27> <0027> % quotesingle dec: 39 oct:047 hex:27
- <28> <28> <0028> % parenleft dec: 40 oct:050 hex:28
- <29> <29> <0029> % parenright dec: 41 oct:051 hex:29
- <2a> <2a> <002a> % asterisk dec: 42 oct:052 hex:2a
- <2b> <2b> <002b> % plus dec: 43 oct:053 hex:2b
- <2c> <2c> <002c> % comma dec: 44 oct:054 hex:2c
- <2d> <2d> <002d> % hyphen dec: 45 oct:055 hex:2d
- <2e> <2e> <002e> % period dec: 46 oct:056 hex:2e
- <2f> <2f> <002f> % slash dec: 47 oct:057 hex:2f
- <30> <30> <0030> % zero dec: 48 oct:060 hex:30
- <31> <31> <0031> % one dec: 49 oct:061 hex:31
- <32> <32> <0032> % two dec: 50 oct:062 hex:32
- <33> <33> <0033> % three dec: 51 oct:063 hex:33
- <34> <34> <0034> % four dec: 52 oct:064 hex:34
- <35> <35> <0035> % five dec: 53 oct:065 hex:35
- <36> <36> <0036> % six dec: 54 oct:066 hex:36
- <37> <37> <0037> % seven dec: 55 oct:067 hex:37
- <38> <38> <0038> % eight dec: 56 oct:070 hex:38
- <39> <39> <0039> % nine dec: 57 oct:071 hex:39
- <3a> <3a> <003a> % colon dec: 58 oct:072 hex:3a
- <3b> <3b> <003b> % semicolon dec: 59 oct:073 hex:3b
- <3c> <3c> <003c> % less dec: 60 oct:074 hex:3c
- <3d> <3d> <003d> % equal dec: 61 oct:075 hex:3d
- <3e> <3e> <003e> % greater dec: 62 oct:076 hex:3e
- <3f> <3f> <003f> % question dec: 63 oct:077 hex:3f
- <40> <40> <0040> % at dec: 64 oct:100 hex:40
- <41> <41> <0041> % A dec: 65 oct:101 hex:41
- <42> <42> <0042> % B dec: 66 oct:102 hex:42
- <43> <43> <0043> % C dec: 67 oct:103 hex:43
- <44> <44> <0044> % D dec: 68 oct:104 hex:44
- <45> <45> <0045> % E dec: 69 oct:105 hex:45
- <46> <46> <0046> % F dec: 70 oct:106 hex:46
- <47> <47> <0047> % G dec: 71 oct:107 hex:47
- <48> <48> <0048> % H dec: 72 oct:110 hex:48
- <49> <49> <0049> % I dec: 73 oct:111 hex:49
- <4a> <4a> <004a> % J dec: 74 oct:112 hex:4a
- <4b> <4b> <004b> % K dec: 75 oct:113 hex:4b
- <4c> <4c> <004c> % L dec: 76 oct:114 hex:4c
- <4d> <4d> <004d> % M dec: 77 oct:115 hex:4d
- <4e> <4e> <004e> % N dec: 78 oct:116 hex:4e
- <4f> <4f> <004f> % O dec: 79 oct:117 hex:4f
- <50> <50> <0050> % P dec: 80 oct:120 hex:50
- <51> <51> <0051> % Q dec: 81 oct:121 hex:51
- <52> <52> <0052> % R dec: 82 oct:122 hex:52
- <53> <53> <0053> % S dec: 83 oct:123 hex:53
- <54> <54> <0054> % T dec: 84 oct:124 hex:54
- <55> <55> <0055> % U dec: 85 oct:125 hex:55
- <56> <56> <0056> % V dec: 86 oct:126 hex:56
- <57> <57> <0057> % W dec: 87 oct:127 hex:57
- <58> <58> <0058> % X dec: 88 oct:130 hex:58
- <59> <59> <0059> % Y dec: 89 oct:131 hex:59
- <5a> <5a> <005a> % Z dec: 90 oct:132 hex:5a
- <5b> <5b> <005b> % bracketleft dec: 91 oct:133 hex:5b
- <5c> <5c> <005c> % backslash dec: 92 oct:134 hex:5c
- <5d> <5d> <005d> % bracketright dec: 93 oct:135 hex:5d
- <5e> <5e> <005e> % asciicircum dec: 94 oct:136 hex:5e
- <5f> <5f> <005f> % underscore dec: 95 oct:137 hex:5f
- <60> <60> <0060> % grave dec: 96 oct:140 hex:60
- <61> <61> <0061> % a dec: 97 oct:141 hex:61
- <62> <62> <0062> % b dec: 98 oct:142 hex:62
- <63> <63> <0063> % c dec: 99 oct:143 hex:63
- <64> <64> <0064> % d dec:100 oct:144 hex:64
- <65> <65> <0065> % e dec:101 oct:145 hex:65
- <66> <66> <0066> % f dec:102 oct:146 hex:66
- <67> <67> <0067> % g dec:103 oct:147 hex:67
- <68> <68> <0068> % h dec:104 oct:150 hex:68
- <69> <69> <0069> % i dec:105 oct:151 hex:69
- <6a> <6a> <006a> % j dec:106 oct:152 hex:6a
- <6b> <6b> <006b> % k dec:107 oct:153 hex:6b
- <6c> <6c> <006c> % l dec:108 oct:154 hex:6c
- <6d> <6d> <006d> % m dec:109 oct:155 hex:6d
- <6e> <6e> <006e> % n dec:110 oct:156 hex:6e
- <6f> <6f> <006f> % o dec:111 oct:157 hex:6f
- <70> <70> <0070> % p dec:112 oct:160 hex:70
- <71> <71> <0071> % q dec:113 oct:161 hex:71
- <72> <72> <0072> % r dec:114 oct:162 hex:72
- <73> <73> <0073> % s dec:115 oct:163 hex:73
- <74> <74> <0074> % t dec:116 oct:164 hex:74
- <75> <75> <0075> % u dec:117 oct:165 hex:75
- <76> <76> <0076> % v dec:118 oct:166 hex:76
- <77> <77> <0077> % w dec:119 oct:167 hex:77
- <78> <78> <0078> % x dec:120 oct:170 hex:78
- <79> <79> <0079> % y dec:121 oct:171 hex:79
- <7a> <7a> <007a> % z dec:122 oct:172 hex:7a
- <7b> <7b> <007b> % braceleft dec:123 oct:173 hex:7b
- <7c> <7c> <007c> % bar dec:124 oct:174 hex:7c
- <7d> <7d> <007d> % braceright dec:125 oct:175 hex:7d
- <7e> <7e> <007e> % asciitilde dec:126 oct:176 hex:7e
- <a0> <a0> <00a0> % nbspace dec:160 oct:240 hex:a0
- <a1> <a1> <0104> % Aogonek dec:161 oct:241 hex:a1
- <a2> <a2> <00a2> % breve dec:162 oct:242 hex:a2
- <a3> <a3> <00a3> % Lslash dec:163 oct:243 hex:a3
- <a4> <a4> <00a4> % currency dec:164 oct:244 hex:a4
- <a5> <a5> <013d> % Lcaron dec:165 oct:245 hex:a5
- <a6> <a6> <015a> % Sacute dec:166 oct:246 hex:a6
- <a7> <a7> <00a7> % section dec:167 oct:247 hex:a7
- <a8> <a8> <00a8> % dieresis dec:168 oct:250 hex:a8
- <a9> <a9> <0160> % Scaron dec:169 oct:251 hex:a9
- <aa> <aa> <015e> % Scedilla dec:170 oct:252 hex:aa
- <ab> <ab> <0164> % Tcaron dec:171 oct:253 hex:ab
- <ac> <ac> <0179> % Zacute dec:172 oct:254 hex:ac
- <ad> <ad> <00ad> % sfthyphen dec:173 oct:255 hex:ad
- <ae> <ae> <017d> % Zcaron dec:174 oct:256 hex:ae
- <af> <af> <00af> % Zdotaccent dec:175 oct:257 hex:af
- <b0> <b0> <00b0> % ring dec:176 oct:260 hex:b0
- <b1> <b1> <0105> % aogonek dec:177 oct:261 hex:b1
- <b2> <b2> <00b2> % ogonek dec:178 oct:262 hex:b2
- <b3> <b3> <00b3> % lslash dec:179 oct:263 hex:b3
- <b4> <b4> <00b4> % acute dec:180 oct:264 hex:b4
- <b5> <b5> <013e> % lcaron dec:181 oct:265 hex:b5
- <b6> <b6> <015b> % sacute dec:182 oct:266 hex:b6
- <b7> <b7> <00b7> % caron dec:183 oct:267 hex:b7
- <b8> <b8> <00b8> % cedilla dec:184 oct:270 hex:b8
- <b9> <b9> <0161> % scaron dec:185 oct:271 hex:b9
- <ba> <ba> <015f> % scedilla dec:186 oct:272 hex:ba
- <bb> <bb> <0165> % tcaron dec:187 oct:273 hex:bb
- <bc> <bc> <017a> % zacute dec:188 oct:274 hex:bc
- <bd> <bd> <00bd> % hungarumlaut dec:189 oct:275 hex:bd
- <be> <be> <017e> % zcaron dec:190 oct:276 hex:be
- <bf> <bf> <00bf> % zdotaccent dec:191 oct:277 hex:bf
- <c0> <c0> <0154> % Racute dec:192 oct:300 hex:c0
- <c1> <c1> <00c1> % Aacute dec:193 oct:301 hex:c1
- <c2> <c2> <00c2> % Acircumflex dec:194 oct:302 hex:c2
- <c3> <c3> <0102> % Abreve dec:195 oct:303 hex:c3
- <c4> <c4> <00c4> % Adieresis dec:196 oct:304 hex:c4
- <c5> <c5> <0139> % Lacute dec:197 oct:305 hex:c5
- <c6> <c6> <0106> % Cacute dec:198 oct:306 hex:c6
- <c7> <c7> <00c7> % Ccedilla dec:199 oct:307 hex:c7
- <c8> <c8> <010c> % Ccaron dec:200 oct:310 hex:c8
- <c9> <c9> <00c9> % Eacute dec:201 oct:311 hex:c9
- <ca> <ca> <0118> % Eogonek dec:202 oct:312 hex:ca
- <cb> <cb> <00cb> % Edieresis dec:203 oct:313 hex:cb
- <cc> <cc> <011a> % Ecaron dec:204 oct:314 hex:cc
- <cd> <cd> <00cd> % Iacute dec:205 oct:315 hex:cd
- <ce> <ce> <00ce> % Icircumflex dec:206 oct:316 hex:ce
- <cf> <cf> <010e> % Dcaron dec:207 oct:317 hex:cf
- <d0> <d0> <00d0> % Dslash dec:208 oct:320 hex:d0
- <d1> <d1> <0143> % Nacute dec:209 oct:321 hex:d1
- <d2> <d2> <0147> % Ncaron dec:210 oct:322 hex:d2
- <d3> <d3> <00d3> % Oacute dec:211 oct:323 hex:d3
- <d4> <d4> <00d4> % Ocircumflex dec:212 oct:324 hex:d4
- <d5> <d5> <00d5> % Ohungarumlaut dec:213 oct:325 hex:d5
- <d6> <d6> <00d6> % Odieresis dec:214 oct:326 hex:d6
- <d7> <d7> <00d7> % multiply dec:215 oct:327 hex:d7
- <d8> <d8> <0158> % Rcaron dec:216 oct:330 hex:d8
- <d9> <d9> <016e> % Uring dec:217 oct:331 hex:d9
- <da> <da> <00da> % Uacute dec:218 oct:332 hex:da
- <db> <db> <00db> % Uhungarumlaut dec:219 oct:333 hex:db
- <dc> <dc> <00dc> % Udieresis dec:220 oct:334 hex:dc
- <dd> <dd> <00dd> % Yacute dec:221 oct:335 hex:dd
- <de> <de> <00de> % Tcommaaccent dec:222 oct:336 hex:de
- <df> <df> <00df> % germandbls dec:223 oct:337 hex:df
- <e0> <e0> <0155> % racute dec:224 oct:340 hex:e0
- <e1> <e1> <00e1> % aacute dec:225 oct:341 hex:e1
- <e2> <e2> <00e2> % acircumflex dec:226 oct:342 hex:e2
- <e3> <e3> <0103> % abreve dec:227 oct:343 hex:e3
- <e4> <e4> <00e4> % adieresis dec:228 oct:344 hex:e4
- <e5> <e5> <013a> % lacute dec:229 oct:345 hex:e5
- <e6> <e6> <0107> % cacute dec:230 oct:346 hex:e6
- <e7> <e7> <00e7> % ccedilla dec:231 oct:347 hex:e7
- <e8> <e8> <010d> % ccaron dec:232 oct:350 hex:e8
- <e9> <e9> <00e9> % eacute dec:233 oct:351 hex:e9
- <ea> <ea> <0119> % eogonek dec:234 oct:352 hex:ea
- <eb> <eb> <00eb> % edieresis dec:235 oct:353 hex:eb
- <ec> <ec> <011b> % ecaron dec:236 oct:354 hex:ec
- <ed> <ed> <00ed> % iacute dec:237 oct:355 hex:ed
- <ee> <ee> <00ee> % icircumflex dec:238 oct:356 hex:ee
- <ef> <ef> <010f> % dcaron dec:239 oct:357 hex:ef
- <f0> <f0> <00f0> % dmacron dec:240 oct:360 hex:f0
- <f1> <f1> <0144> % nacute dec:241 oct:361 hex:f1
- <f2> <f2> <0148> % ncaron dec:242 oct:362 hex:f2
- <f3> <f3> <00f3> % oacute dec:243 oct:363 hex:f3
- <f4> <f4> <00f4> % ocircumflex dec:244 oct:364 hex:f4
- <f5> <f5> <00f5> % ohungarumlaut dec:245 oct:365 hex:f5
- <f6> <f6> <00f6> % odieresis dec:246 oct:366 hex:f6
- <f7> <f7> <00f7> % divide dec:247 oct:367 hex:f7
- <f8> <f8> <0159> % rcaron dec:248 oct:370 hex:f8
- <f9> <f9> <016f> % uring dec:249 oct:371 hex:f9
- <fa> <fa> <00fa> % uacute dec:250 oct:372 hex:fa
- <fb> <fb> <00fb> % uhungarumlaut dec:251 oct:373 hex:fb
- <fc> <fc> <00fc> % udieresis dec:252 oct:374 hex:fc
- <fd> <fd> <00fd> % yacute dec:253 oct:375 hex:fd
- <fe> <fe> <00fe> % tcommaaccent dec:254 oct:376 hex:fe
- <ff> <ff> <00ff> % dotaccent dec:255 oct:377 hex:ff
- endbfrange
- endcmap
-CMapName currentdict /CMap defineresource pop end
-end
-\stoppdffontresource
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/prop-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/prop-ini.mkii
deleted file mode 100644
index 11efd036234..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/prop-ini.mkii
+++ /dev/null
@@ -1,150 +0,0 @@
-%D \module
-%D [ file=prop-ini,
-%D version=2003.04.20,
-%D title=\CONTEXT\ Property Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Property Macros / Initialization}
-
-%D Welcome to the third alternative of this yet undocumented module,
-%D which means that there is no public interface yet!
-
-\unprotect
-
-\newcount\propertylevel
-
-\def\currentpropertylevel {\csname\??py:l:\currentpropertytype\endcsname} % counter
-\def\previouspropertylevel{\csname\??py:p:\currentpropertytype\endcsname} % counter
-
-\def\currentproperty {\csname\??py:c:\number\currentpropertylevel \endcsname} % string
-\def\previousproperty {\csname\??py:c:\number\previouspropertylevel\endcsname} % string
-
-% more efficient:
-
-\def\currentproperty {\csname\??py:c:\number\propertylevel\endcsname} % string
-\def\currentpropertytype {\csname\??py\currentproperty\c!type\endcsname}
-
-\def\docheckproperty % watch the s instead of e
- {\csname\s!check\currentpropertytype property\endcsname
- \global\expandafter\let\csname\??py\s!check\currentproperty\endcsname\empty}
-
-\def\checkproperty[#1]%
- {\bgroup
- \def\currentproperty{#1}%
- \csname\??py\s!check\currentproperty\endcsname
- \egroup}
-
-\unexpanded\def\property[#1]%
- {\groupedcommand{\dostartproperty{#1}}\dostopproperty}
-
-\unexpanded\def\startproperty[#1]%
- {\dostartproperty{#1}}
-
-\unexpanded\def\stopproperty
- {\dostopproperty}
-
-\def\dostartgproperty
- {\begingroup\dostartproperty}
-
-\def\dostopgproperty
- {\dostopproperty\endgroup}
-
-\def\dostartproperty#1% evt pack: {current}{level}{
- {\global\advance\propertylevel\plusone
- \@EAEAEA\xdef\currentproperty{#1}%
- \global\advance\previouspropertylevel\plusone
- \global\advance\currentpropertylevel\plusone
- \csname\??py\s!check\currentproperty\endcsname
- \csname\s!start\currentpropertytype\s!property\endcsname}
-
-\def\dostopproperty
- {\csname\s!stop\currentpropertytype\s!property\endcsname
- \global\advance\currentpropertylevel\minusone
- \global\advance\previouspropertylevel\minusone
- \global\advance\propertylevel\minusone}
-
-\def\defineproperty
- {\dotripleempty\dodefineproperty}
-
-\def\dodefineproperty[#1]%
- {\ifcsname\??py#1\c!global\endcsname
- \expandafter\nododefineproperty
- \else
- \expandafter\dododefineproperty
- \fi[#1]}
-
-% due to initializations/counters, definitions are always global
-%
-% global : yes : ungrouped
-% no : grouped
-% method : command : define commands
-% none : no commands
-
-\def\dododefineproperty[#1][#2][#3]% global ! ! !
- {\getgparameters[\??py#1][\c!global=\v!no,\c!type=#2,\c!method=\v!none,#3]% global ! ! ! !
- \ifcsname\??py:l:#2\endcsname \else
- \expandafter\newcount\csname\??py:l:#2\endcsname % current level
- \expandafter\newcount\csname\??py:p:#2\endcsname % previous level
- \global\csname\??py:p:#2\endcsname\minusone
- \global\expandafter\expandafter\let\csname\??py:c:0\endcsname\empty
- \fi
- \letgvalue{\??py\s!check#1}\docheckproperty
- \doifelsevalue{\??py#1\c!method}\v!command
- {\doifelsevalue{\??py#1\c!global}\v!yes
- {\setgvalue{\e!start#1}{\dostartproperty{#1}}%
- \letgvalue{\e!stop #1}\dostopproperty}%
- {\setgvalue{\e!start#1}{\dostartgproperty{#1}}%
- \letgvalue{\e!stop #1}\dostopgproperty}}%
- {\doifelsevalue{\??py#1\c!global}\v!yes
- {\setgvalue{\e!start#2}[##1]{\dostartproperty{##1}}%
- \letgvalue{\e!stop #2}\dostopproperty}%
- {\setgvalue{\e!start#2}[##1]{\dostartgproperty{##1}}%
- \letgvalue{\e!stop #2}\dostopgproperty}}}
-
-\def\nododefineproperty[#1][#2][#3]%
- {}
-
-\def\doifelseproperty#1{\doifdefinedelse{\??py#1\c!global}}
-
-\def\setupproperty
- {\dodoubleempty\dosetupproperty}
-
-\def\dosetupproperty[#1][#2]% local
- {\ifsecondargument
- \getparameters[\??py#1][#2]%
- \else
- \getparameters[\??py][#1]%
- \fi}
-
-\letvalue{\??py\s!empty}\empty
-
-% beware, normally \*parameter concerns the current one
-
-\def\propertyparameter#1#2% expands to #1 when not defined (see \define...)
- {\csname\??py
- \ifcsname\??py#1#2\endcsname
- #1#2%
- \else\ifcsname\??py\csname\??py#1\c!type\endcsname#2\endcsname
- \csname\??py#1\c!type\endcsname#2%
- \else
- \s!empty
- \fi\fi
- \endcsname}
-
-\def\currentpropertyparameter % self and class
- {\propertyparameter\currentproperty}
-
-\def\checkedpropertyparameter#1% only self
- {\executeifdefined{\??py\currentproperty#1}}
-
-\def\definepropertyhandler#1{\setvalue{\??py*#1}}
-\def\propertyhandler #1{\getvalue{\??py*#1}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/prop-lay.mkii b/Master/texmf-dist/tex/context/base/mkii/prop-lay.mkii
deleted file mode 100644
index 77c48ca6ed2..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/prop-lay.mkii
+++ /dev/null
@@ -1,143 +0,0 @@
-%D \module
-%D [ file=prop-lay,
-%D version=2003.04.20,
-%D title=\CONTEXT\ Property Macros,
-%D subtitle=Layers,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Property Macros / Layers}
-
-%D Highly experimental, will probably change/evolve. Also, quite certainly
-%D we will no longer share code between mkii and mkiv.
-
-\unprotect
-
-\let\currentlayerproperty\empty
-
-\def\checklayerproperty
- {\doifelse{\checkedpropertyparameter\v!printable\currentproperty}\v!no
- {\def\printviewerlayer{0}}
- {\def\printviewerlayer{1}}%
- \dodefineviewerlayer
- \currentproperty % tag
- {\checkedpropertyparameter\c!title\currentproperty}%
- {\checkedpropertyparameter\c!state\v!start}% visible or hidden
- {0}% type (1=frozen)
- {\printviewerlayer}}% 1=printable
-
-\def\startlayerproperty
- {\let\currentlayerproperty\currentproperty
- \dostartviewerlayer\currentproperty}
-
-\def\stoplayerproperty
- {\dostopviewerlayer
- \let\currentlayerproperty\previousproperty}
-
-\def\domakelayerpropertylist
- {\iflocation
- \expandafter\domakeviewerlayerlist
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\setglobalsystemreference \rt!exec \v!HideLayer {hidelayer}
-\setglobalsystemreference \rt!exec \v!VideLayer {videlayer}
-\setglobalsystemreference \rt!exec \v!ToggleLayer {togglelayer}
-
-\setexecutecommandcheck {hidelayer} \domakelayerpropertylist
-\setexecutecommandcheck {videlayer} \domakelayerpropertylist
-\setexecutecommandcheck {togglelayer} \domakelayerpropertylist
-
-% \currentlayerproperty
-% \checklayerproperty
-% \startlayerproperty
-% \stoplayerproperty
-% \domakelayerpropertylist
-
-%D \starttext
-%D
-%D \setuppapersize[S4][S4]
-%D \setuplayout[middle]
-%D \setupcolors[state=start]
-%D \setupinteraction[state=start,color=,contrastcolor=]
-%D
-%D \defineproperty [L1] [layer] [title=layer 1]
-%D \defineproperty [L2] [layer] [title=layer 2]
-%D
-%D \button{HIDE L1}[HideLayer{L1}]
-%D \button{VIDE L1}[VideLayer{L1}]
-%D \button{TOGGLE L1}[ToggleLayer{L1}]
-%D
-%D \button{HIDE L2}[HideLayer{L2}]
-%D \button{VIDE L2}[VideLayer{L2}]
-%D \button{TOGGLE L2}[ToggleLayer{L2}]
-%D
-%D \noheaderandfooterlines \centerbox{\startoverlay
-%D {\definedfont[Mono at 150pt]%
-%D \startproperty[L1]\red TEST\stopproperty}
-%D {\definedfont[Mono at 150pt]%
-%D \startproperty[L2]\green TEST\stopproperty}
-%D \stopoverlay} \page
-%D
-%D \noheaderandfooterlines \centerbox{\startoverlay
-%D {\definedfont[Mono at 15pt]%
-%D \goto{\startproperty[L1]\red TEST\stopproperty}[CloseDocument]}
-%D {\definedfont[Mono at 15pt]%
-%D \goto{\startproperty[L2]\green TEST\stopproperty}[CloseDocument]}
-%D \stopoverlay} \page
-%D
-%D \startproperty[L1]
-%D level 1 \startproperty[L2]level 2 \stopproperty level 1
-%D \stopproperty
-%D
-%D \startproperty[L1]
-%D level 1 \page \startproperty[L2]level 2 \stopproperty level 1
-%D \stopproperty
-%D
-%D \stoptext
-
-%D Handy for tracing:
-
-\def\showlayoutcomponents
- {\let\startlayoutcomponent\dostartlayoutcomponent
- \let\stoplayoutcomponent \dostoplayoutcomponent}
-
-\def\dodefinelayoutcomponent#1#2%
- {\doifelsenothing{#2}%
- {\defineproperty[#1][\s!layer]}%
- {\defineproperty[#1][\s!layer][\c!title=#2]}}
-
-\def\dostartlayoutcomponent#1#2%
- {\doifelseproperty{#1}\donothing{\dodefinelayoutcomponent{#1}{#2}}%
- \startproperty[#1]}
-
-\def\dostoplayoutcomponent
- {\stopproperty}
-
-\let\startlayoutcomponent\gobbletwoarguments
-\let\stoplayoutcomponent \relax
-
-\protect \endinput
-
-% \def\remaplayering
-% {\dodoubleargument\doremaplayering}
-%
-% \def\remaplayering[#1][#2]%
-% {\setvalue{\??lm#1}{#2}}
-%
-% \def\remappedlayering#1%
-% {\ifcsname\??lm#1\endcsname
-% \@EA\remappedlayering\csname\??lm#1\endcsname\else#1%
-% \fi}
-%
-% \def\startshowlayering#1#2%
-% {\ifshowlayering
-% \defineproperty[\remappedlayering{#1}][\s!layer][\c!titel=#2]%
-% \startproperty[\remappedlayering{#1}]%
-% \fi}
diff --git a/Master/texmf-dist/tex/context/base/mkii/prop-mis.mkii b/Master/texmf-dist/tex/context/base/mkii/prop-mis.mkii
deleted file mode 100644
index 47fb9ea0661..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/prop-mis.mkii
+++ /dev/null
@@ -1,189 +0,0 @@
-%D \module
-%D [ file=prop-mis,
-%D version=2004.05.29, % some code moved from private modules
-%D title=\CONTEXT\ Property Macros,
-%D subtitle=Miscelaneous,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Property Macros / Miscelaneous}
-
-%D This module contains some code that has been in use in some
-%D private modules (p-*). These features depend on the fact
-%D that pdftex writes the page content as one stream.
-
-%D EXPERIMENTAL
-
-\unprotect
-
-%D Stream based overprint and knockout:
-
-\defineproperty[\v!overprint][\s!overprint] [\c!method=\v!command]
-\defineproperty[\v!knockout] [\s!overprint] [\c!method=\v!command]
-
-%D Negation.
-
-\defineproperty [\v!negative] [\s!negative] [\c!method=\v!command]
-\defineproperty [\v!positive] [\s!negative] [\c!method=\v!command]
-
-%D Special font effects.
-
-\setupproperty
- [\s!effect]
- [\c!rulethickness=\zeropoint,
- \c!stretch=0]
-
-\defineproperty [\v!inner] [\s!effect] [\c!rulethickness=.25pt]
-\defineproperty [\v!outer] [\s!effect] [\c!rulethickness=.25pt]
-\defineproperty [\v!both] [\s!effect] [\c!rulethickness=.25pt]
-\defineproperty [\v!normal] [\s!effect]
-\defineproperty [\v!hidden] [\s!effect]
-
-\defineproperty [\v!stretch] [\s!effect] [\c!stretch=1]
-
-%D Overprint cum suis.
-
-\definepropertyhandler \v!overprint {\dostartoverprint}
-\definepropertyhandler \v!knockout {\dostopoverprint }
-
-\def\startoverprintproperty
- {\ifincolor
- \propertyhandler\currentproperty
- \dooverprintmark\currentproperty
- \fi}
-
-\def\stopoverprintproperty
- {\ifincolor
- \ifcase\currentpropertylevel\or
- \dostopoverprint
- \dooverprintmark\empty
- \else
- \propertyhandler\previousproperty
- \dooverprintmark\previousproperty
- \fi
- \fi}
-
-\rawnewmark\overprintmark
-
-\def\dooverprintmark#1%
- {\ifinpagebody \else \ifinframed \else
- \expanded{\rawsetmark\noexpand\overprintmark{#1}}%
- \fi \fi}
-
-\def\pushoverprintproperty
- {\doifsomething{\rawgetbotmark\overprintmark}\dostopoverprint}
-
-\def\popoverprintproperty
- {\doifsomething{\rawgetbotmark\overprintmark}%
- {\propertyhandler{\rawgetbotmark\overprintmark}}}
-
-\def\popsplitoverprintproperty
- {\getsplitmarks\overprintmark % hier wel
- \doifsomething{\rawgetsplitbotmark\overprintmark}%
- {\propertyhandler{\rawgetsplitbotmark\overprintmark}}}
-
-\appendtoks \pushoverprintproperty \to \everypushproperties
-\appendtoks \popoverprintproperty \to \everypopproperties
-\appendtoks \popsplitoverprintproperty \to \everypopsplitproperties
-
-%D Negative cum suis.
-
-\definepropertyhandler \v!negative {\dostartnegative}
-\definepropertyhandler \v!positive {\dostopnegative }
-
-\def\startnegativeproperty
- {\ifincolor
- \propertyhandler\currentproperty
- \donegativemark\currentproperty
- \fi}
-
-\def\stopnegativeproperty
- {\ifincolor
- \ifcase\currentpropertylevel\or
- \dostopnegative
- \donegativemark\empty
- \else
- \propertyhandler\previousproperty
- \donegativemark\previousproperty
- \fi
- \fi}
-
-\rawnewmark\negativemark
-
-\def\donegativemark#1%
- {\ifinpagebody \else \ifinframed \else
- \expanded{\rawsetmark\noexpand\negativemark{#1}}%
- \fi \fi}
-
-\def\pushnegativeproperty
- {\doifsomething{\rawgetbotmark\negativemark}\dostopnegative}
-
-\def\popnegativeproperty
- {\doifsomething{\rawgetbotmark\overprintmark}%
- {\propertyhandler{\rawgetbotmark\negativemark}}}
-
-\def\popsplitnegativeproperty
- {\getsplitmarks\negativemark % hier wel
- \doifsomething{\rawgetsplitbotmark\negativemark}%
- {\propertyhandler{\rawgetsplitbotmark\negativemark}}}
-
-\appendtoks \pushnegativeproperty \to \everypushproperties
-\appendtoks \popnegativeproperty \to \everypopproperties
-\appendtoks \popsplitnegativeproperty \to \everypopsplitproperties
-
-%D Effects.
-
-\definepropertyhandler \v!normal {0}
-\definepropertyhandler \v!inner {0}
-\definepropertyhandler \v!outer {1}
-\definepropertyhandler \v!both {2}
-\definepropertyhandler \v!hidden {3}
-\definepropertyhandler \v!stretch{0}
-
-\def\effectpropertydata#1%
- {{\propertyhandler{#1}}%
- {\propertyparameter{#1}\c!rulethickness}%
- {\propertyparameter{#1}\c!stretch}}
-
-\def\starteffectproperty
- {\expanded{\dostartfonteffect\effectpropertydata\currentproperty}%
- \doeffectmark{\effectpropertydata\currentproperty}}
-
-\def\stopeffectproperty
- {\dostopfonteffect
- \ifcase\currentpropertylevel\or
- \doeffectmark\empty
- \else
- \expanded{\dostartfonteffect\effectpropertydata\previousproperty}%
- \doeffectmark{\effectpropertydata\previousproperty}%
- \fi}
-
-\rawnewmark\effectmark
-
-\def\doeffectmark#1%
- {\ifinpagebody \else \ifinframed \else
- \expanded{\rawsetmark\noexpand\effectmark{#1}}% could be number
- \fi \fi}
-
-\def\pusheffectproperty
- {\doifsomething{\rawgetbotmark\effectmark}\dostopfonteffect}
-
-\def\popeffectproperty
- {\doifsomething{\rawgetbotmark\effectmark}%
- {\expanded{\dostartfonteffect\rawgetbotmark\effectmark}}}
-
-\def\popspliteffectproperty
- {\getsplitmarks\effectmark
- \doifsomething{\rawgetsplitbotmark\effectmark}%
- {\expanded{\dostartfonteffect\rawgetsplitbotmark\effectmark}}}
-
-\appendtoks \pusheffectproperty \to \everypushproperties
-\appendtoks \popeffectproperty \to \everypopproperties
-\appendtoks \popspliteffectproperty \to \everypopsplitproperties
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/regi-8859-1.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-8859-1.mkii
deleted file mode 100644
index 00439ae9e3e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-8859-1.mkii
+++ /dev/null
@@ -1,154 +0,0 @@
-%D \module
-%D [ file=regi-8859-1,
-%D version=2005.12.26,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=iso-8859-1 (West European),
-%D author=script-generated,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%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: \type{\enableregime[8859-1]} (see \type {regi-syn} for
-%D alternatives calls).
-
-\startregime[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/mkii/regi-8859-10.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-8859-10.mkii
deleted file mode 100644
index 6646860342a..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-8859-10.mkii
+++ /dev/null
@@ -1,152 +0,0 @@
-%D \module
-%D [ file=regi-8859-10,
-%D version=2005.12.26,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=iso-8859-10 (Nordic),
-%D author=script-generated,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Support for iso-8859-10/Latin6 input encoding (regime) for Nordic languages.
-%D
-%D Usage: \type{\enableregime[8859-10]} (see \type {regi-syn} for
-%D alternatives calls).
-
-
-\startregime[iso-8859-10]
-
-\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 {\Emacron} % 0112 LATIN CAPITAL LETTER E WITH MACRON
-\defineactivetoken 163 {\Gcommaaccent} % 0122 LATIN CAPITAL LETTER G WITH CEDILLA
-\defineactivetoken 164 {\Imacron} % 012A LATIN CAPITAL LETTER I WITH MACRON
-\defineactivetoken 165 {\Itilde} % 0128 LATIN CAPITAL LETTER I WITH TILDE
-\defineactivetoken 166 {\Kcommaaccent} % 0136 LATIN CAPITAL LETTER K WITH CEDILLA
-\defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN
-\defineactivetoken 168 {\Lcommaaccent} % 013B LATIN CAPITAL LETTER L WITH CEDILLA
-\defineactivetoken 169 {\Dstroke} % 0110 LATIN CAPITAL LETTER D WITH STROKE
-\defineactivetoken 170 {\Scaron} % 0160 LATIN CAPITAL LETTER S WITH CARON
-\defineactivetoken 171 {\Tstroke} % 0166 LATIN CAPITAL LETTER T WITH STROKE
-\defineactivetoken 172 {\Zcaron} % 017D LATIN CAPITAL LETTER Z WITH CARON
-\defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN
-\defineactivetoken 174 {\Umacron} % 016A LATIN CAPITAL LETTER U WITH MACRON
-\defineactivetoken 175 {\Neng} % 014A LATIN CAPITAL LETTER ENG
-\defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN
-\defineactivetoken 177 {\aogonek} % 0105 LATIN SMALL LETTER A WITH OGONEK
-\defineactivetoken 178 {\emacron} % 0113 LATIN SMALL LETTER E WITH MACRON
-\defineactivetoken 179 {\gcommaaccent} % 0123 LATIN SMALL LETTER G WITH CEDILLA
-\defineactivetoken 180 {\imacron} % 012B LATIN SMALL LETTER I WITH MACRON
-\defineactivetoken 181 {\itilde} % 0129 LATIN SMALL LETTER I WITH TILDE
-\defineactivetoken 182 {\kcommaaccent} % 0137 LATIN SMALL LETTER K WITH CEDILLA
-\defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT
-\defineactivetoken 184 {\lcommaaccent} % 013C LATIN SMALL LETTER L WITH CEDILLA
-\defineactivetoken 185 {\dstroke} % 0111 LATIN SMALL LETTER D WITH STROKE
-\defineactivetoken 186 {\scaron} % 0161 LATIN SMALL LETTER S WITH CARON
-\defineactivetoken 187 {\tstroke} % 0167 LATIN SMALL LETTER T WITH STROKE
-\defineactivetoken 188 {\zcaron} % 017E LATIN SMALL LETTER Z WITH CARON
-\defineactivetoken 189 {\texthorizontalbar} % 2015 HORIZONTAL BAR
-\defineactivetoken 190 {\umacron} % 016B LATIN SMALL LETTER U WITH MACRON
-\defineactivetoken 191 {\neng} % 014B LATIN SMALL LETTER ENG
-\defineactivetoken 192 {\Amacron} % 0100 LATIN CAPITAL LETTER A WITH MACRON
-\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 {\Iogonek} % 012E LATIN CAPITAL LETTER I WITH OGONEK
-\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 {\Edotaccent} % 0116 LATIN CAPITAL LETTER E WITH DOT ABOVE
-\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 {\Ncommaaccent} % 0145 LATIN CAPITAL LETTER N WITH CEDILLA
-\defineactivetoken 210 {\Omacron} % 014C LATIN CAPITAL LETTER O WITH MACRON
-\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 {\Utilde} % 0168 LATIN CAPITAL LETTER U WITH TILDE
-\defineactivetoken 216 {\Ostroke} % 00D8 LATIN CAPITAL LETTER O WITH STROKE
-\defineactivetoken 217 {\Uogonek} % 0172 LATIN CAPITAL LETTER U WITH OGONEK
-\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 {\amacron} % 0101 LATIN SMALL LETTER A WITH MACRON
-\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 {\iogonek} % 012F LATIN SMALL LETTER I WITH OGONEK
-\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 {\edotaccent} % 0117 LATIN SMALL LETTER E WITH DOT ABOVE
-\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 {\ncommaaccent} % 0146 LATIN SMALL LETTER N WITH CEDILLA
-\defineactivetoken 242 {\omacron} % 014D LATIN SMALL LETTER O WITH MACRON
-\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 {\utilde} % 0169 LATIN SMALL LETTER U WITH TILDE
-\defineactivetoken 248 {\ostroke} % 00F8 LATIN SMALL LETTER O WITH STROKE
-\defineactivetoken 249 {\uogonek} % 0173 LATIN SMALL LETTER U WITH OGONEK
-\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 {\kkra} % 0138 LATIN SMALL LETTER KRA
-
-\stopregime
-
diff --git a/Master/texmf-dist/tex/context/base/mkii/regi-8859-13.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-8859-13.mkii
deleted file mode 100644
index f1b1dbe7870..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-8859-13.mkii
+++ /dev/null
@@ -1,152 +0,0 @@
-%D \module
-%D [ file=regi-8859-13,
-%D version=2005.12.26,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=iso-8859-13 (Baltic),
-%D author=script-generated,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Support for iso-8859-13/Latin7 input encoding (regime) for Baltic languages,
-%D see also iso-8859-4 and cp1257.
-%D
-%D Usage: \type{\enableregime[8859-13]} (see \type {regi-syn} for
-%D alternatives calls).
-
-\startregime[iso-8859-13]
-
-\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 {\quotedblright} % 201D RIGHT DOUBLE QUOTATION MARK
-\defineactivetoken 162 {\textcent} % 00A2 CENT SIGN
-\defineactivetoken 163 {\textsterling} % 00A3 POUND SIGN
-\defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN
-\defineactivetoken 165 {\quotedblbase} % 201E DOUBLE LOW-9 QUOTATION MARK
-\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 {\quotedblleft} % 201C LEFT DOUBLE QUOTATION MARK
-\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 {\quoteright} % 2019 RIGHT SINGLE QUOTATION MARK
-
-\stopregime
-
diff --git a/Master/texmf-dist/tex/context/base/mkii/regi-8859-15.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-8859-15.mkii
deleted file mode 100644
index 1455161c30e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-8859-15.mkii
+++ /dev/null
@@ -1,154 +0,0 @@
-%D \module
-%D [ file=regi-8859-15,
-%D version=2005.12.26,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=iso-8859-15 (West European),
-%D author=script-generated,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Support for iso-8859-15/Latin9 input encoding (regime) for
-%D West European languages, almost the same as iso-8859-1 with rarely
-%D used symbols (currency symbol,%D fractions, accents) replaced by
-%D Euro and some additional letters,%D see also cp1252.
-%D
-%D Usage: \type{\enableregime[8859-15]} (see \type {regi-syn} for
-%D alternatives calls).
-
-\startregime[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/mkii/regi-8859-16.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-8859-16.mkii
deleted file mode 100644
index f284c4116e7..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-8859-16.mkii
+++ /dev/null
@@ -1,151 +0,0 @@
-%D \module
-%D [ file=regi-8859-16,
-%D version=2005.12.26,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=iso-8859-16 (Romanian),
-%D author=script-generated,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Support for iso-8859-16/Latin10 input encoding (regime) for Romanian.
-%D
-%D Usage: \type{\enableregime[8859-16]} (see \type {regi-syn} for
-%D alternatives calls).
-
-\startregime[8859-16]
-
-\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 {\aogonek} % 0105 LATIN SMALL LETTER A WITH OGONEK
-\defineactivetoken 163 {\Lstroke} % 0141 LATIN CAPITAL LETTER L WITH STROKE
-\defineactivetoken 164 {\texteuro} % 20AC EURO SIGN
-\defineactivetoken 165 {\quotedblbase} % 201E DOUBLE LOW-9 QUOTATION MARK
-\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 {\Scommaaccent} % 0218 LATIN CAPITAL LETTER S WITH COMMA BELOW
-\defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-\defineactivetoken 172 {\Zacute} % 0179 LATIN CAPITAL LETTER Z WITH ACUTE
-\defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN
-\defineactivetoken 174 {\zacute} % 017A LATIN SMALL LETTER Z WITH ACUTE
-\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 {\Ccaron} % 010C LATIN CAPITAL LETTER C WITH CARON
-\defineactivetoken 179 {\lstroke} % 0142 LATIN SMALL LETTER L WITH STROKE
-\defineactivetoken 180 {\Zcaron} % 017D LATIN CAPITAL LETTER Z WITH CARON
-\defineactivetoken 181 {\quotedblright} % 201D RIGHT DOUBLE QUOTATION MARK
-\defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN
-\defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT
-\defineactivetoken 184 {\zcaron} % 017E LATIN SMALL LETTER Z WITH CARON
-\defineactivetoken 185 {\ccaron} % 010D LATIN SMALL LETTER C WITH CARON
-\defineactivetoken 186 {\scommaaccent} % 0219 LATIN SMALL LETTER S WITH COMMA BELOW
-\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 {\zdotaccent} % 017C LATIN SMALL LETTER Z WITH DOT ABOVE
-\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 {\Abreve} % 0102 LATIN CAPITAL LETTER A WITH BREVE
-\defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
-\defineactivetoken 197 {\Cacute} % 0106 LATIN CAPITAL LETTER C WITH ACUTE
-\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 {\Dstroke} % 0110 LATIN CAPITAL LETTER D WITH STROKE
-\defineactivetoken 209 {\Nacute} % 0143 LATIN CAPITAL LETTER N WITH 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 {\Ohungarumlaut} % 0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-\defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
-\defineactivetoken 215 {\Sacute} % 015A LATIN CAPITAL LETTER S WITH ACUTE
-\defineactivetoken 216 {\Uhungarumlaut} % 0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-\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 {\Eogonek} % 0118 LATIN CAPITAL LETTER E WITH OGONEK
-\defineactivetoken 222 {\Tcommaaccent} % 021A LATIN CAPITAL LETTER T WITH COMMA BELOW
-\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 {\abreve} % 0103 LATIN SMALL LETTER A WITH BREVE
-\defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS
-\defineactivetoken 229 {\cacute} % 0107 LATIN SMALL LETTER C WITH ACUTE
-\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 {\dstroke} % 0111 LATIN SMALL LETTER D WITH STROKE
-\defineactivetoken 241 {\nacute} % 0144 LATIN SMALL LETTER N WITH ACUTE
-\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 {\ohungarumlaut} % 0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE
-\defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS
-\defineactivetoken 247 {\sacute} % 015B LATIN SMALL LETTER S WITH ACUTE
-\defineactivetoken 248 {\uhungarumlaut} % 0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE
-\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 {\eogonek} % 0119 LATIN SMALL LETTER E WITH OGONEK
-\defineactivetoken 254 {\tcommaaccent} % 021B LATIN SMALL LETTER T WITH COMMA BELOW
-\defineactivetoken 255 {\ydiaeresis} % 00FF LATIN SMALL LETTER Y WITH DIAERESIS
-
-\stopregime
-
diff --git a/Master/texmf-dist/tex/context/base/mkii/regi-8859-2.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-8859-2.mkii
deleted file mode 100644
index 9efc27a7968..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-8859-2.mkii
+++ /dev/null
@@ -1,152 +0,0 @@
-%D \module
-%D [ file=regi-8859-2,
-%D version=2005.12.26,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=iso-8859-2 (East European),
-%D author=script-generated,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Support for iso-8859-2/Latin2 input encoding (regime) for
-%D Central European languages, see also cp1250.
-%D
-%D Usage: \type{\enableregime[8859-2]} (see \type {regi-syn} for
-%D alternatives calls).
-
-\startregime[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/mkii/regi-8859-3.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-8859-3.mkii
deleted file mode 100644
index 99fa66ac313..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-8859-3.mkii
+++ /dev/null
@@ -1,145 +0,0 @@
-%D \module
-%D [ file=regi-8859-3,
-%D version=2005.12.26,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=iso-8859-3 (South European),
-%D author=script-generated,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Support for iso-8859-3/Latin3 input encoding (regime) for South
-%D European languages, esp. for Esperanto and Maltese.
-%D
-%D Usage: \type{\enableregime[8859-3]} (see \type {regi-syn} for
-%D alternatives calls).
-
-\startregime[8859-3]
-
-\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 {\Hstroke} % 0126 LATIN CAPITAL LETTER H WITH STROKE
-\defineactivetoken 162 {\textbreve} % 02D8 BREVE
-\defineactivetoken 163 {\textsterling} % 00A3 POUND SIGN
-\defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN
-\defineactivetoken 166 {\Hcircumflex} % 0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-\defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN
-\defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS
-\defineactivetoken 169 {\Idotaccent} % 0130 LATIN CAPITAL LETTER I WITH DOT ABOVE
-\defineactivetoken 170 {\Scedilla} % 015E LATIN CAPITAL LETTER S WITH CEDILLA
-\defineactivetoken 171 {\Gbreve} % 011E LATIN CAPITAL LETTER G WITH BREVE
-\defineactivetoken 172 {\Jcircumflex} % 0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-\defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN
-\defineactivetoken 175 {\Zdotaccent} % 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
-\defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN
-\defineactivetoken 177 {\hstroke} % 0127 LATIN SMALL LETTER H WITH STROKE
-\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 {\hcircumflex} % 0125 LATIN SMALL LETTER H WITH CIRCUMFLEX
-\defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT
-\defineactivetoken 184 {\textcedilla} % 00B8 CEDILLA
-\defineactivetoken 185 {\dotlessi} % 0131 LATIN SMALL LETTER DOTLESS I
-\defineactivetoken 186 {\scedilla} % 015F LATIN SMALL LETTER S WITH CEDILLA
-\defineactivetoken 187 {\gbreve} % 011F LATIN SMALL LETTER G WITH BREVE
-\defineactivetoken 188 {\jcircumflex} % 0135 LATIN SMALL LETTER J WITH CIRCUMFLEX
-\defineactivetoken 189 {\onehalf} % 00BD VULGAR FRACTION ONE HALF
-\defineactivetoken 191 {\zdotaccent} % 017C LATIN SMALL LETTER Z WITH DOT ABOVE
-\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 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
-\defineactivetoken 197 {\Cdotaccent} % 010A LATIN CAPITAL LETTER C WITH DOT ABOVE
-\defineactivetoken 198 {\Ccircumflex} % 0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-\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 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 {\Gdotaccent} % 0120 LATIN CAPITAL LETTER G WITH DOT ABOVE
-\defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
-\defineactivetoken 215 {\textmultiply} % 00D7 MULTIPLICATION SIGN
-\defineactivetoken 216 {\Gcircumflex} % 011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-\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 {\Ubreve} % 016C LATIN CAPITAL LETTER U WITH BREVE
-\defineactivetoken 222 {\Scircumflex} % 015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-\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 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS
-\defineactivetoken 229 {\cdotaccent} % 010B LATIN SMALL LETTER C WITH DOT ABOVE
-\defineactivetoken 230 {\ccircumflex} % 0109 LATIN SMALL LETTER C WITH CIRCUMFLEX
-\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 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 {\gdotaccent} % 0121 LATIN SMALL LETTER G WITH DOT ABOVE
-\defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS
-\defineactivetoken 247 {\textdiv} % 00F7 DIVISION SIGN
-\defineactivetoken 248 {\gcircumflex} % 011D LATIN SMALL LETTER G WITH CIRCUMFLEX
-\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 {\ubreve} % 016D LATIN SMALL LETTER U WITH BREVE
-\defineactivetoken 254 {\scircumflex} % 015D LATIN SMALL LETTER S WITH CIRCUMFLEX
-\defineactivetoken 255 {\textdotaccent} % 02D9 DOT ABOVE
-
-\stopregime
-
diff --git a/Master/texmf-dist/tex/context/base/mkii/regi-8859-4.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-8859-4.mkii
deleted file mode 100644
index c7adf34710e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-8859-4.mkii
+++ /dev/null
@@ -1,152 +0,0 @@
-%D \module
-%D [ file=regi-8859-4,
-%D version=2005.12.26,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=iso-8859-4 (North European),
-%D author=script-generated,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Support for iso-8859-4/Latin4 input encoding (regime) for West
-%D European languages, see also cp1257 and iso-8859-13.
-%D
-%D Usage: \type{\enableregime[8859-4]} (see \type {regi-syn} for
-%D alternatives calls).
-
-\startregime[8859-4]
-
-\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 {\kkra} % 0138 LATIN SMALL LETTER KRA
-\defineactivetoken 163 {\Rcommaaccent} % 0156 LATIN CAPITAL LETTER R WITH CEDILLA
-\defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN
-\defineactivetoken 165 {\Itilde} % 0128 LATIN CAPITAL LETTER I WITH TILDE
-\defineactivetoken 166 {\Lcommaaccent} % 013B LATIN CAPITAL LETTER L WITH CEDILLA
-\defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN
-\defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS
-\defineactivetoken 169 {\Scaron} % 0160 LATIN CAPITAL LETTER S WITH CARON
-\defineactivetoken 170 {\Emacron} % 0112 LATIN CAPITAL LETTER E WITH MACRON
-\defineactivetoken 171 {\Gcommaaccent} % 0122 LATIN CAPITAL LETTER G WITH CEDILLA
-\defineactivetoken 172 {\Tstroke} % 0166 LATIN CAPITAL LETTER T WITH STROKE
-\defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN
-\defineactivetoken 174 {\Zcaron} % 017D LATIN CAPITAL LETTER Z WITH CARON
-\defineactivetoken 175 {\textmacron} % 00AF MACRON
-\defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN
-\defineactivetoken 177 {\aogonek} % 0105 LATIN SMALL LETTER A WITH OGONEK
-\defineactivetoken 178 {\textogonek} % 02DB OGONEK
-\defineactivetoken 179 {\rcommaaccent} % 0157 LATIN SMALL LETTER R WITH CEDILLA
-\defineactivetoken 180 {\textacute} % 00B4 ACUTE ACCENT
-\defineactivetoken 181 {\itilde} % 0129 LATIN SMALL LETTER I WITH TILDE
-\defineactivetoken 182 {\lcommaaccent} % 013C LATIN SMALL LETTER L WITH CEDILLA
-\defineactivetoken 183 {\textcaron} % 02C7 CARON
-\defineactivetoken 184 {\textcedilla} % 00B8 CEDILLA
-\defineactivetoken 185 {\scaron} % 0161 LATIN SMALL LETTER S WITH CARON
-\defineactivetoken 186 {\emacron} % 0113 LATIN SMALL LETTER E WITH MACRON
-\defineactivetoken 187 {\gcommaaccent} % 0123 LATIN SMALL LETTER G WITH CEDILLA
-\defineactivetoken 188 {\tstroke} % 0167 LATIN SMALL LETTER T WITH STROKE
-\defineactivetoken 189 {\Neng} % 014A LATIN CAPITAL LETTER ENG
-\defineactivetoken 190 {\zcaron} % 017E LATIN SMALL LETTER Z WITH CARON
-\defineactivetoken 191 {\neng} % 014B LATIN SMALL LETTER ENG
-\defineactivetoken 192 {\Amacron} % 0100 LATIN CAPITAL LETTER A WITH MACRON
-\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 {\Iogonek} % 012E LATIN CAPITAL LETTER I WITH OGONEK
-\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 {\Edotaccent} % 0116 LATIN CAPITAL LETTER E WITH DOT ABOVE
-\defineactivetoken 205 {\Iacute} % 00CD LATIN CAPITAL LETTER I WITH ACUTE
-\defineactivetoken 206 {\Icircumflex} % 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-\defineactivetoken 207 {\Imacron} % 012A LATIN CAPITAL LETTER I WITH MACRON
-\defineactivetoken 208 {\Dstroke} % 0110 LATIN CAPITAL LETTER D WITH STROKE
-\defineactivetoken 209 {\Ncommaaccent} % 0145 LATIN CAPITAL LETTER N WITH CEDILLA
-\defineactivetoken 210 {\Omacron} % 014C LATIN CAPITAL LETTER O WITH MACRON
-\defineactivetoken 211 {\Kcommaaccent} % 0136 LATIN CAPITAL LETTER K WITH CEDILLA
-\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 {\Uogonek} % 0172 LATIN CAPITAL LETTER U WITH OGONEK
-\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 {\Utilde} % 0168 LATIN CAPITAL LETTER U WITH TILDE
-\defineactivetoken 222 {\Umacron} % 016A LATIN CAPITAL LETTER U WITH MACRON
-\defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S
-\defineactivetoken 224 {\amacron} % 0101 LATIN SMALL LETTER A WITH MACRON
-\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 {\iogonek} % 012F LATIN SMALL LETTER I WITH OGONEK
-\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 {\edotaccent} % 0117 LATIN SMALL LETTER E WITH DOT ABOVE
-\defineactivetoken 237 {\iacute} % 00ED LATIN SMALL LETTER I WITH ACUTE
-\defineactivetoken 238 {\icircumflex} % 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
-\defineactivetoken 239 {\imacron} % 012B LATIN SMALL LETTER I WITH MACRON
-\defineactivetoken 240 {\dstroke} % 0111 LATIN SMALL LETTER D WITH STROKE
-\defineactivetoken 241 {\ncommaaccent} % 0146 LATIN SMALL LETTER N WITH CEDILLA
-\defineactivetoken 242 {\omacron} % 014D LATIN SMALL LETTER O WITH MACRON
-\defineactivetoken 243 {\kcommaaccent} % 0137 LATIN SMALL LETTER K WITH CEDILLA
-\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 {\uogonek} % 0173 LATIN SMALL LETTER U WITH OGONEK
-\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 {\utilde} % 0169 LATIN SMALL LETTER U WITH TILDE
-\defineactivetoken 254 {\umacron} % 016B LATIN SMALL LETTER U WITH MACRON
-\defineactivetoken 255 {\textdotaccent} % 02D9 DOT ABOVE
-
-\stopregime
-
diff --git a/Master/texmf-dist/tex/context/base/mkii/regi-8859-5.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-8859-5.mkii
deleted file mode 100644
index 807d74640b4..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-8859-5.mkii
+++ /dev/null
@@ -1,152 +0,0 @@
-%D \module
-%D [ file=regi-8859-5,
-%D version=2005.12.26,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=iso-8859-5 (Cyrillic),
-%D author=script-generated,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Support for iso-8859-5 input encoding (regime) for Cyrillic,
-%D see also regi-cyr and regi-cyp.
-%D
-%D Usage: \type{\enableregime[8859-5]} (see \type {regi-syn} for
-%D alternatives calls).
-
-\startregime[8859-5]
-
-\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 {\cyrillicYO} % 0401 CYRILLIC CAPITAL LETTER IO
-\defineactivetoken 162 {\cyrillicDJE} % 0402 CYRILLIC CAPITAL LETTER DJE
-\defineactivetoken 163 {\cyrillicGJE} % 0403 CYRILLIC CAPITAL LETTER GJE
-\defineactivetoken 164 {\cyrillicIE} % 0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE
-\defineactivetoken 165 {\cyrillicDZE} % 0405 CYRILLIC CAPITAL LETTER DZE
-\defineactivetoken 166 {\cyrillicII} % 0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-\defineactivetoken 167 {\cyrillicYI} % 0407 CYRILLIC CAPITAL LETTER YI
-\defineactivetoken 168 {\cyrillicJE} % 0408 CYRILLIC CAPITAL LETTER JE
-\defineactivetoken 169 {\cyrillicLJE} % 0409 CYRILLIC CAPITAL LETTER LJE
-\defineactivetoken 170 {\cyrillicNJE} % 040A CYRILLIC CAPITAL LETTER NJE
-\defineactivetoken 171 {\cyrillicTSHE} % 040B CYRILLIC CAPITAL LETTER TSHE
-\defineactivetoken 172 {\cyrillicKJE} % 040C CYRILLIC CAPITAL LETTER KJE
-\defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN
-\defineactivetoken 174 {\cyrillicUSHRT} % 040E CYRILLIC CAPITAL LETTER SHORT U
-\defineactivetoken 175 {\cyrillicDZHE} % 040F CYRILLIC CAPITAL LETTER DZHE
-\defineactivetoken 176 {\cyrillicA} % 0410 CYRILLIC CAPITAL LETTER A
-\defineactivetoken 177 {\cyrillicB} % 0411 CYRILLIC CAPITAL LETTER BE
-\defineactivetoken 178 {\cyrillicV} % 0412 CYRILLIC CAPITAL LETTER VE
-\defineactivetoken 179 {\cyrillicG} % 0413 CYRILLIC CAPITAL LETTER GHE
-\defineactivetoken 180 {\cyrillicD} % 0414 CYRILLIC CAPITAL LETTER DE
-\defineactivetoken 181 {\cyrillicE} % 0415 CYRILLIC CAPITAL LETTER IE
-\defineactivetoken 182 {\cyrillicZH} % 0416 CYRILLIC CAPITAL LETTER ZHE
-\defineactivetoken 183 {\cyrillicZ} % 0417 CYRILLIC CAPITAL LETTER ZE
-\defineactivetoken 184 {\cyrillicI} % 0418 CYRILLIC CAPITAL LETTER I
-\defineactivetoken 185 {\cyrillicISHRT} % 0419 CYRILLIC CAPITAL LETTER SHORT I
-\defineactivetoken 186 {\cyrillicK} % 041A CYRILLIC CAPITAL LETTER KA
-\defineactivetoken 187 {\cyrillicL} % 041B CYRILLIC CAPITAL LETTER EL
-\defineactivetoken 188 {\cyrillicM} % 041C CYRILLIC CAPITAL LETTER EM
-\defineactivetoken 189 {\cyrillicN} % 041D CYRILLIC CAPITAL LETTER EN
-\defineactivetoken 190 {\cyrillicO} % 041E CYRILLIC CAPITAL LETTER O
-\defineactivetoken 191 {\cyrillicP} % 041F CYRILLIC CAPITAL LETTER PE
-\defineactivetoken 192 {\cyrillicR} % 0420 CYRILLIC CAPITAL LETTER ER
-\defineactivetoken 193 {\cyrillicS} % 0421 CYRILLIC CAPITAL LETTER ES
-\defineactivetoken 194 {\cyrillicT} % 0422 CYRILLIC CAPITAL LETTER TE
-\defineactivetoken 195 {\cyrillicU} % 0423 CYRILLIC CAPITAL LETTER U
-\defineactivetoken 196 {\cyrillicF} % 0424 CYRILLIC CAPITAL LETTER EF
-\defineactivetoken 197 {\cyrillicH} % 0425 CYRILLIC CAPITAL LETTER HA
-\defineactivetoken 198 {\cyrillicC} % 0426 CYRILLIC CAPITAL LETTER TSE
-\defineactivetoken 199 {\cyrillicCH} % 0427 CYRILLIC CAPITAL LETTER CHE
-\defineactivetoken 200 {\cyrillicSH} % 0428 CYRILLIC CAPITAL LETTER SHA
-\defineactivetoken 201 {\cyrillicSHCH} % 0429 CYRILLIC CAPITAL LETTER SHCHA
-\defineactivetoken 202 {\cyrillicHRDSN} % 042A CYRILLIC CAPITAL LETTER HARD SIGN
-\defineactivetoken 203 {\cyrillicERY} % 042B CYRILLIC CAPITAL LETTER YERU
-\defineactivetoken 204 {\cyrillicSFTSN} % 042C CYRILLIC CAPITAL LETTER SOFT SIGN
-\defineactivetoken 205 {\cyrillicEREV} % 042D CYRILLIC CAPITAL LETTER E
-\defineactivetoken 206 {\cyrillicYU} % 042E CYRILLIC CAPITAL LETTER YU
-\defineactivetoken 207 {\cyrillicYA} % 042F CYRILLIC CAPITAL LETTER YA
-\defineactivetoken 208 {\cyrillica} % 0430 CYRILLIC SMALL LETTER A
-\defineactivetoken 209 {\cyrillicb} % 0431 CYRILLIC SMALL LETTER BE
-\defineactivetoken 210 {\cyrillicv} % 0432 CYRILLIC SMALL LETTER VE
-\defineactivetoken 211 {\cyrillicg} % 0433 CYRILLIC SMALL LETTER GHE
-\defineactivetoken 212 {\cyrillicd} % 0434 CYRILLIC SMALL LETTER DE
-\defineactivetoken 213 {\cyrillice} % 0435 CYRILLIC SMALL LETTER IE
-\defineactivetoken 214 {\cyrilliczh} % 0436 CYRILLIC SMALL LETTER ZHE
-\defineactivetoken 215 {\cyrillicz} % 0437 CYRILLIC SMALL LETTER ZE
-\defineactivetoken 216 {\cyrillici} % 0438 CYRILLIC SMALL LETTER I
-\defineactivetoken 217 {\cyrillicishrt} % 0439 CYRILLIC SMALL LETTER SHORT I
-\defineactivetoken 218 {\cyrillick} % 043A CYRILLIC SMALL LETTER KA
-\defineactivetoken 219 {\cyrillicl} % 043B CYRILLIC SMALL LETTER EL
-\defineactivetoken 220 {\cyrillicm} % 043C CYRILLIC SMALL LETTER EM
-\defineactivetoken 221 {\cyrillicn} % 043D CYRILLIC SMALL LETTER EN
-\defineactivetoken 222 {\cyrillico} % 043E CYRILLIC SMALL LETTER O
-\defineactivetoken 223 {\cyrillicp} % 043F CYRILLIC SMALL LETTER PE
-\defineactivetoken 224 {\cyrillicr} % 0440 CYRILLIC SMALL LETTER ER
-\defineactivetoken 225 {\cyrillics} % 0441 CYRILLIC SMALL LETTER ES
-\defineactivetoken 226 {\cyrillict} % 0442 CYRILLIC SMALL LETTER TE
-\defineactivetoken 227 {\cyrillicu} % 0443 CYRILLIC SMALL LETTER U
-\defineactivetoken 228 {\cyrillicf} % 0444 CYRILLIC SMALL LETTER EF
-\defineactivetoken 229 {\cyrillich} % 0445 CYRILLIC SMALL LETTER HA
-\defineactivetoken 230 {\cyrillicc} % 0446 CYRILLIC SMALL LETTER TSE
-\defineactivetoken 231 {\cyrillicch} % 0447 CYRILLIC SMALL LETTER CHE
-\defineactivetoken 232 {\cyrillicsh} % 0448 CYRILLIC SMALL LETTER SHA
-\defineactivetoken 233 {\cyrillicshch} % 0449 CYRILLIC SMALL LETTER SHCHA
-\defineactivetoken 234 {\cyrillichrdsn} % 044A CYRILLIC SMALL LETTER HARD SIGN
-\defineactivetoken 235 {\cyrillicery} % 044B CYRILLIC SMALL LETTER YERU
-\defineactivetoken 236 {\cyrillicsftsn} % 044C CYRILLIC SMALL LETTER SOFT SIGN
-\defineactivetoken 237 {\cyrillicerev} % 044D CYRILLIC SMALL LETTER E
-\defineactivetoken 238 {\cyrillicyu} % 044E CYRILLIC SMALL LETTER YU
-\defineactivetoken 239 {\cyrillicya} % 044F CYRILLIC SMALL LETTER YA
-\defineactivetoken 240 {\textnumero} % 2116 NUMERO SIGN
-\defineactivetoken 241 {\cyrillicyo} % 0451 CYRILLIC SMALL LETTER IO
-\defineactivetoken 242 {\cyrillicdje} % 0452 CYRILLIC SMALL LETTER DJE
-\defineactivetoken 243 {\cyrillicgje} % 0453 CYRILLIC SMALL LETTER GJE
-\defineactivetoken 244 {\cyrillicie} % 0454 CYRILLIC SMALL LETTER UKRAINIAN IE
-\defineactivetoken 245 {\cyrillicdze} % 0455 CYRILLIC SMALL LETTER DZE
-\defineactivetoken 246 {\cyrillicii} % 0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-\defineactivetoken 247 {\cyrillicyi} % 0457 CYRILLIC SMALL LETTER YI
-\defineactivetoken 248 {\cyrillicje} % 0458 CYRILLIC SMALL LETTER JE
-\defineactivetoken 249 {\cyrilliclje} % 0459 CYRILLIC SMALL LETTER LJE
-\defineactivetoken 250 {\cyrillicnje} % 045A CYRILLIC SMALL LETTER NJE
-\defineactivetoken 251 {\cyrillictshe} % 045B CYRILLIC SMALL LETTER TSHE
-\defineactivetoken 252 {\cyrillickje} % 045C CYRILLIC SMALL LETTER KJE
-\defineactivetoken 253 {\sectionmark} % 00A7 SECTION SIGN
-\defineactivetoken 254 {\cyrillicushrt} % 045E CYRILLIC SMALL LETTER SHORT U
-\defineactivetoken 255 {\cyrillicdzhe} % 045F CYRILLIC SMALL LETTER DZHE
-
-\stopregime
-
diff --git a/Master/texmf-dist/tex/context/base/mkii/regi-8859-7.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-8859-7.mkii
deleted file mode 100644
index 1c8197a4270..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-8859-7.mkii
+++ /dev/null
@@ -1,153 +0,0 @@
-%D \module
-%D [ file=regi-8859-7,
-%D version=2005.12.26,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=iso-8859-7 (Greek),
-%D author=script-generated,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%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: \type{\enableregime[8859-7]} (see \type {regi-syn} for
-%D alternatives calls).
-
-\startregime[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 {\unknownchar} % 20AF DRACHMA SIGN (TODO)
-\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} % 037A GREEK YPOGEGRAMMENI (TODO)
-\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/mkii/regi-8859-9.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-8859-9.mkii
deleted file mode 100644
index 60757b2e684..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-8859-9.mkii
+++ /dev/null
@@ -1,152 +0,0 @@
-%D \module
-%D [ file=regi-8859-9,
-%D version=2005.12.26,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=iso-8859-9 (Turkish),
-%D author=script-generated,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Support for iso-8859-9/Latin5 input encoding (regime) for Turkish,
-%D see also cp1254.
-%D
-%D Usage: \type{\enableregime[8859-9]} (see \type {regi-syn} for
-%D alternatives calls).
-
-\startregime[8859-9]
-
-\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 {\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/mkii/regi-cp1250.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-cp1250.mkii
deleted file mode 100644
index c13ee53e2c1..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-cp1250.mkii
+++ /dev/null
@@ -1,153 +0,0 @@
-%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 \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D 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/mkii/regi-cp1251.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-cp1251.mkii
deleted file mode 100644
index 66576bd16be..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-cp1251.mkii
+++ /dev/null
@@ -1,152 +0,0 @@
-%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 \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D 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/mkii/regi-cp1252.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-cp1252.mkii
deleted file mode 100644
index 316d694a67e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-cp1252.mkii
+++ /dev/null
@@ -1,156 +0,0 @@
-%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 \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D 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/mkii/regi-cp1253.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-cp1253.mkii
deleted file mode 100644
index 05d53c1298e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-cp1253.mkii
+++ /dev/null
@@ -1,153 +0,0 @@
-%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 \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D 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/mkii/regi-cp1254.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-cp1254.mkii
deleted file mode 100644
index 73f8f270820..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-cp1254.mkii
+++ /dev/null
@@ -1,153 +0,0 @@
-%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 \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D 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/mkii/regi-cp1257.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-cp1257.mkii
deleted file mode 100644
index 4c9cb56f059..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-cp1257.mkii
+++ /dev/null
@@ -1,153 +0,0 @@
-%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 \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D 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/mkii/regi-cyp.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-cyp.mkii
deleted file mode 100644
index 3f45ace2307..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-cyp.mkii
+++ /dev/null
@@ -1,1169 +0,0 @@
-%D \module
-%D [ file=regi-cyp,
-%D version=2003.01.24,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Cyrillic Plus,
-%D author=...,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D In this file several rarely user cyrillic input regimes
-%D are defined.
-
-\startregime[cp855]
-
-\defineactivetoken 128 {\cyrillicdje}
-\defineactivetoken 129 {\cyrillicDJE}
-\defineactivetoken 130 {\'\cyrillicg}
-\defineactivetoken 131 {\'\cyrillicG}
-\defineactivetoken 132 {\cyrillicyo}
-\defineactivetoken 133 {\cyrillicYO}
-\defineactivetoken 134 {\cyrillicie}
-\defineactivetoken 135 {\cyrillicIE}
-\defineactivetoken 136 {\cyrillicdze}
-\defineactivetoken 137 {\cyrillicDZE}
-\defineactivetoken 138 {\cyrillicii}
-\defineactivetoken 139 {\cyrillicII}
-\defineactivetoken 140 {\cyrillicyi}
-\defineactivetoken 141 {\cyrillicYI}
-\defineactivetoken 142 {\cyrillicje}
-\defineactivetoken 143 {\cyrillicJE}
-\defineactivetoken 144 {\cyrilliclje}
-\defineactivetoken 145 {\cyrillicLJE}
-\defineactivetoken 146 {\cyrillicnje}
-\defineactivetoken 147 {\cyrillicNJE}
-\defineactivetoken 148 {\cyrillictshe}
-\defineactivetoken 149 {\cyrillicTSHE}
-\defineactivetoken 150 {\'\cyrillick}
-\defineactivetoken 151 {\'\cyrillicK}
-\defineactivetoken 152 {\cyrillicushrt}
-\defineactivetoken 153 {\cyrillicUSHRT}
-\defineactivetoken 154 {\cyrillicdzhe}
-\defineactivetoken 155 {\cyrillicDZHE}
-\defineactivetoken 156 {\cyrillicyu}
-\defineactivetoken 157 {\cyrillicYU}
-\defineactivetoken 158 {\cyrillichrdsn}
-\defineactivetoken 159 {\cyrillicHRDSN}
-\defineactivetoken 160 {\cyrillica}
-\defineactivetoken 161 {\cyrillicA}
-\defineactivetoken 162 {\cyrillicb}
-\defineactivetoken 163 {\cyrillicB}
-\defineactivetoken 164 {\cyrillicc}
-\defineactivetoken 165 {\cyrillicC}
-\defineactivetoken 166 {\cyrillicd}
-\defineactivetoken 167 {\cyrillicD}
-\defineactivetoken 168 {\cyrillice}
-\defineactivetoken 169 {\cyrillicE}
-\defineactivetoken 170 {\cyrillicf}
-\defineactivetoken 171 {\cyrillicF}
-\defineactivetoken 172 {\cyrillicg}
-\defineactivetoken 173 {\cyrillicG}
-\defineactivetoken 174 {\leftguillemot}
-\defineactivetoken 175 {\rightguillemot}
-\defineactivetoken 181 {\cyrillich}
-\defineactivetoken 182 {\cyrillicH}
-\defineactivetoken 183 {\cyrillici}
-\defineactivetoken 184 {\cyrillicI}
-\defineactivetoken 189 {\cyrillicishrt}
-\defineactivetoken 190 {\cyrillicISHRT}
-\defineactivetoken 198 {\cyrillick}
-\defineactivetoken 199 {\cyrillicK}
-\defineactivetoken 207 {\textcurrency}
-\defineactivetoken 208 {\cyrillicl}
-\defineactivetoken 209 {\cyrillicL}
-\defineactivetoken 210 {\cyrillicm}
-\defineactivetoken 211 {\cyrillicM}
-\defineactivetoken 212 {\cyrillicn}
-\defineactivetoken 213 {\cyrillicN}
-\defineactivetoken 214 {\cyrillico}
-\defineactivetoken 215 {\cyrillicO}
-\defineactivetoken 216 {\cyrillicp}
-\defineactivetoken 221 {\cyrillicP}
-\defineactivetoken 222 {\cyrillicya}
-\defineactivetoken 224 {\cyrillicYA}
-\defineactivetoken 225 {\cyrillicr}
-\defineactivetoken 226 {\cyrillicR}
-\defineactivetoken 227 {\cyrillics}
-\defineactivetoken 228 {\cyrillicS}
-\defineactivetoken 229 {\cyrillict}
-\defineactivetoken 230 {\cyrillicT}
-\defineactivetoken 231 {\cyrillicu}
-\defineactivetoken 232 {\cyrillicU}
-\defineactivetoken 233 {\cyrilliczh}
-\defineactivetoken 234 {\cyrillicZH}
-\defineactivetoken 235 {\cyrillicv}
-\defineactivetoken 236 {\cyrillicV}
-\defineactivetoken 237 {\cyrillicsftsn}
-\defineactivetoken 238 {\cyrillicSFTSN}
-\defineactivetoken 239 {\textnumero}
-\defineactivetoken 240 {\-}
-\defineactivetoken 241 {\cyrillicery}
-\defineactivetoken 242 {\cyrillicERY}
-\defineactivetoken 243 {\cyrillicz}
-\defineactivetoken 244 {\cyrillicZ}
-\defineactivetoken 245 {\cyrillicsh}
-\defineactivetoken 246 {\cyrillicSH}
-\defineactivetoken 247 {\cyrillicerev}
-\defineactivetoken 248 {\cyrillicEREV}
-\defineactivetoken 249 {\cyrillicshch}
-\defineactivetoken 250 {\cyrillicSHCH}
-\defineactivetoken 251 {\cyrillicch}
-\defineactivetoken 252 {\cyrillicCH}
-\defineactivetoken 253 {\sectionmark}
-\defineactivetoken 254 {\textblacksquare}
-\defineactivetoken 255 {\nonbreakablespace}
-
-\stopregime
-
-\startregime[cp866av]
-
-\defineactivetoken 128 {\cyrillicA}
-\defineactivetoken 129 {\cyrillicB}
-\defineactivetoken 130 {\cyrillicV}
-\defineactivetoken 131 {\cyrillicG}
-\defineactivetoken 132 {\cyrillicD}
-\defineactivetoken 133 {\cyrillicE}
-\defineactivetoken 134 {\cyrillicZH}
-\defineactivetoken 135 {\cyrillicZ}
-\defineactivetoken 136 {\cyrillicI}
-\defineactivetoken 137 {\cyrillicISHRT}
-\defineactivetoken 138 {\cyrillicK}
-\defineactivetoken 139 {\cyrillicL}
-\defineactivetoken 140 {\cyrillicM}
-\defineactivetoken 141 {\cyrillicN}
-\defineactivetoken 142 {\cyrillicO}
-\defineactivetoken 143 {\cyrillicP}
-\defineactivetoken 144 {\cyrillicR}
-\defineactivetoken 145 {\cyrillicS}
-\defineactivetoken 146 {\cyrillicT}
-\defineactivetoken 147 {\cyrillicU}
-\defineactivetoken 148 {\cyrillicF}
-\defineactivetoken 149 {\cyrillicH}
-\defineactivetoken 150 {\cyrillicC}
-\defineactivetoken 151 {\cyrillicCH}
-\defineactivetoken 152 {\cyrillicSH}
-\defineactivetoken 153 {\cyrillicSHCH}
-\defineactivetoken 154 {\cyrillicHRDSN}
-\defineactivetoken 155 {\cyrillicERY}
-\defineactivetoken 156 {\cyrillicSFTSN}
-\defineactivetoken 157 {\cyrillicEREV}
-\defineactivetoken 158 {\cyrillicYU}
-\defineactivetoken 159 {\cyrillicYA}
-\defineactivetoken 160 {\cyrillica}
-\defineactivetoken 161 {\cyrillicb}
-\defineactivetoken 162 {\cyrillicv}
-\defineactivetoken 163 {\cyrillicg}
-\defineactivetoken 164 {\cyrillicd}
-\defineactivetoken 165 {\cyrillice}
-\defineactivetoken 166 {\cyrilliczh}
-\defineactivetoken 167 {\cyrillicz}
-\defineactivetoken 168 {\cyrillici}
-\defineactivetoken 169 {\cyrillicishrt}
-\defineactivetoken 170 {\cyrillick}
-\defineactivetoken 171 {\cyrillicl}
-\defineactivetoken 172 {\cyrillicm}
-\defineactivetoken 173 {\cyrillicn}
-\defineactivetoken 174 {\cyrillico}
-\defineactivetoken 175 {\cyrillicp}
-\defineactivetoken 224 {\cyrillicr}
-\defineactivetoken 225 {\cyrillics}
-\defineactivetoken 226 {\cyrillict}
-\defineactivetoken 227 {\cyrillicu}
-\defineactivetoken 228 {\cyrillicf}
-\defineactivetoken 229 {\cyrillich}
-\defineactivetoken 230 {\cyrillicc}
-\defineactivetoken 231 {\cyrillicch}
-\defineactivetoken 232 {\cyrillicsh}
-\defineactivetoken 233 {\cyrillicshch}
-\defineactivetoken 234 {\cyrillichrdsn}
-\defineactivetoken 235 {\cyrillicery}
-\defineactivetoken 236 {\cyrillicsftsn}
-\defineactivetoken 237 {\cyrillicerev}
-\defineactivetoken 238 {\cyrillicyu}
-\defineactivetoken 239 {\cyrillicya}
-\defineactivetoken 240 {\cyrillicYO}
-\defineactivetoken 241 {\cyrillicyo}
-\defineactivetoken 252 {\textnumero}
-\defineactivetoken 253 {\textcurrency}
-\defineactivetoken 254 {\textblacksquare}
-\defineactivetoken 255 {\nonbreakablespace}
-\defineactivetoken 246 {\mathematics\rightarrow}
-\defineactivetoken 247 {\mathematics\leftarrow}
-\defineactivetoken 248 {\mathematics\downarrow}
-\defineactivetoken 249 {\mathematics\uparrow}
-\defineactivetoken 250 {\textdiv}
-\defineactivetoken 251 {\textpm}
-
-\stopregime
-
-\startregime[cp866mav]
-
-\defineactivetoken 128 {\cyrillicA}
-\defineactivetoken 129 {\cyrillicB}
-\defineactivetoken 130 {\cyrillicV}
-\defineactivetoken 131 {\cyrillicG}
-\defineactivetoken 132 {\cyrillicD}
-\defineactivetoken 133 {\cyrillicE}
-\defineactivetoken 134 {\cyrillicZH}
-\defineactivetoken 135 {\cyrillicZ}
-\defineactivetoken 136 {\cyrillicI}
-\defineactivetoken 137 {\cyrillicISHRT}
-\defineactivetoken 138 {\cyrillicK}
-\defineactivetoken 139 {\cyrillicL}
-\defineactivetoken 140 {\cyrillicM}
-\defineactivetoken 141 {\cyrillicN}
-\defineactivetoken 142 {\cyrillicO}
-\defineactivetoken 143 {\cyrillicP}
-\defineactivetoken 144 {\cyrillicR}
-\defineactivetoken 145 {\cyrillicS}
-\defineactivetoken 146 {\cyrillicT}
-\defineactivetoken 147 {\cyrillicU}
-\defineactivetoken 148 {\cyrillicF}
-\defineactivetoken 149 {\cyrillicH}
-\defineactivetoken 150 {\cyrillicC}
-\defineactivetoken 151 {\cyrillicCH}
-\defineactivetoken 152 {\cyrillicSH}
-\defineactivetoken 153 {\cyrillicSHCH}
-\defineactivetoken 154 {\cyrillicHRDSN}
-\defineactivetoken 155 {\cyrillicERY}
-\defineactivetoken 156 {\cyrillicSFTSN}
-\defineactivetoken 157 {\cyrillicEREV}
-\defineactivetoken 158 {\cyrillicYU}
-\defineactivetoken 159 {\cyrillicYA}
-\defineactivetoken 160 {\cyrillica}
-\defineactivetoken 161 {\cyrillicb}
-\defineactivetoken 162 {\cyrillicv}
-\defineactivetoken 163 {\cyrillicg}
-\defineactivetoken 164 {\cyrillicd}
-\defineactivetoken 165 {\cyrillice}
-\defineactivetoken 166 {\cyrilliczh}
-\defineactivetoken 167 {\cyrillicz}
-\defineactivetoken 168 {\cyrillici}
-\defineactivetoken 169 {\cyrillicishrt}
-\defineactivetoken 170 {\cyrillick}
-\defineactivetoken 171 {\cyrillicl}
-\defineactivetoken 172 {\cyrillicm}
-\defineactivetoken 173 {\cyrillicn}
-\defineactivetoken 174 {\cyrillico}
-\defineactivetoken 175 {\cyrillicp}
-\defineactivetoken 224 {\cyrillicr}
-\defineactivetoken 225 {\cyrillics}
-\defineactivetoken 226 {\cyrillict}
-\defineactivetoken 227 {\cyrillicu}
-\defineactivetoken 228 {\cyrillicf}
-\defineactivetoken 229 {\cyrillich}
-\defineactivetoken 230 {\cyrillicc}
-\defineactivetoken 231 {\cyrillicch}
-\defineactivetoken 232 {\cyrillicsh}
-\defineactivetoken 233 {\cyrillicshch}
-\defineactivetoken 234 {\cyrillichrdsn}
-\defineactivetoken 235 {\cyrillicery}
-\defineactivetoken 236 {\cyrillicsftsn}
-\defineactivetoken 237 {\cyrillicerev}
-\defineactivetoken 238 {\cyrillicyu}
-\defineactivetoken 239 {\cyrillicya}
-\defineactivetoken 240 {\cyrillicYO}
-\defineactivetoken 241 {\cyrillicyo}
-\defineactivetoken 248 {\textdegree}
-\defineactivetoken 249 {\textbullet}
-\defineactivetoken 250 {\periodcentered}
-\defineactivetoken 254 {\textblacksquare}
-\defineactivetoken 255 {\nonbreakablespace}
-\defineactivetoken 242 {\mathematics\geq}
-\defineactivetoken 243 {\mathematics\leq}
-\defineactivetoken 246 {\textdiv}
-\defineactivetoken 247 {\mathematics\sim}
-\defineactivetoken 251 {\textsurd}
-\defineactivetoken 252 {\high{\txx n}}
-\defineactivetoken 253 {\twosuperior}
-
-\stopregime
-
-\startregime[cp866tat]
-
-\defineactivetoken 128 {\cyrillicA}
-\defineactivetoken 129 {\cyrillicB}
-\defineactivetoken 130 {\cyrillicV}
-\defineactivetoken 131 {\cyrillicG}
-\defineactivetoken 132 {\cyrillicD}
-\defineactivetoken 133 {\cyrillicE}
-\defineactivetoken 134 {\cyrillicZH}
-\defineactivetoken 135 {\cyrillicZ}
-\defineactivetoken 136 {\cyrillicI}
-\defineactivetoken 137 {\cyrillicISHRT}
-\defineactivetoken 138 {\cyrillicK}
-\defineactivetoken 139 {\cyrillicL}
-\defineactivetoken 140 {\cyrillicM}
-\defineactivetoken 141 {\cyrillicN}
-\defineactivetoken 142 {\cyrillicO}
-\defineactivetoken 143 {\cyrillicP}
-\defineactivetoken 144 {\cyrillicR}
-\defineactivetoken 145 {\cyrillicS}
-\defineactivetoken 146 {\cyrillicT}
-\defineactivetoken 147 {\cyrillicU}
-\defineactivetoken 148 {\cyrillicF}
-\defineactivetoken 149 {\cyrillicH}
-\defineactivetoken 150 {\cyrillicC}
-\defineactivetoken 151 {\cyrillicCH}
-\defineactivetoken 152 {\cyrillicSH}
-\defineactivetoken 153 {\cyrillicSHCH}
-\defineactivetoken 154 {\cyrillicHRDSN}
-\defineactivetoken 155 {\cyrillicERY}
-\defineactivetoken 156 {\cyrillicSFTSN}
-\defineactivetoken 157 {\cyrillicEREV}
-\defineactivetoken 158 {\cyrillicYU}
-\defineactivetoken 159 {\cyrillicYA}
-\defineactivetoken 160 {\cyrillica}
-\defineactivetoken 161 {\cyrillicb}
-\defineactivetoken 162 {\cyrillicv}
-\defineactivetoken 163 {\cyrillicg}
-\defineactivetoken 164 {\cyrillicd}
-\defineactivetoken 165 {\cyrillice}
-\defineactivetoken 166 {\cyrilliczh}
-\defineactivetoken 167 {\cyrillicz}
-\defineactivetoken 168 {\cyrillici}
-\defineactivetoken 169 {\cyrillicishrt}
-\defineactivetoken 170 {\cyrillick}
-\defineactivetoken 171 {\cyrillicl}
-\defineactivetoken 172 {\cyrillicm}
-\defineactivetoken 173 {\cyrillicn}
-\defineactivetoken 174 {\cyrillico}
-\defineactivetoken 175 {\cyrillicp}
-\defineactivetoken 224 {\cyrillicr}
-\defineactivetoken 225 {\cyrillics}
-\defineactivetoken 226 {\cyrillict}
-\defineactivetoken 227 {\cyrillicu}
-\defineactivetoken 228 {\cyrillicf}
-\defineactivetoken 229 {\cyrillich}
-\defineactivetoken 230 {\cyrillicc}
-\defineactivetoken 231 {\cyrillicch}
-\defineactivetoken 232 {\cyrillicsh}
-\defineactivetoken 233 {\cyrillicshch}
-\defineactivetoken 234 {\cyrillichrdsn}
-\defineactivetoken 235 {\cyrillicery}
-\defineactivetoken 236 {\cyrillicsftsn}
-\defineactivetoken 237 {\cyrillicerev}
-\defineactivetoken 238 {\cyrillicyu}
-\defineactivetoken 239 {\cyrillicya}
-\defineactivetoken 240 {\cyrillicYO}
-\defineactivetoken 241 {\cyrillicyo}
-\defineactivetoken 242 {\cyrillicSCHWA}
-\defineactivetoken 243 {\cyrillicschwa}
-\defineactivetoken 244 {\cyrillicOTLD}
-\defineactivetoken 245 {\cyrillicotld}
-\defineactivetoken 246 {\cyrillicY}
-\defineactivetoken 247 {\cyrillicy}
-\defineactivetoken 248 {\cyrillicZHDSC}
-\defineactivetoken 249 {\cyrilliczhdsc}
-\defineactivetoken 250 {\cyrillicNDSC}
-\defineactivetoken 251 {\cyrillicndsc}
-\defineactivetoken 252 {\cyrillicSHHA}
-\defineactivetoken 253 {\cyrillicshha}
-\defineactivetoken 254 {\textblacksquare}
-\defineactivetoken 255 {\nonbreakablespace}
-
-\stopregime
-
-\startregime[ctt]
-
-\defineactivetoken 171 {\leftguillemot}
-\defineactivetoken 187 {\rightguillemot}
-\defineactivetoken 192 {\cyrillicA}
-\defineactivetoken 193 {\cyrillicB}
-\defineactivetoken 194 {\cyrillicV}
-\defineactivetoken 195 {\cyrillicG}
-\defineactivetoken 196 {\cyrillicD}
-\defineactivetoken 197 {\cyrillicE}
-\defineactivetoken 168 {\cyrillicYO}
-\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 170 {\cyrillicOTLD}
-\defineactivetoken 207 {\cyrillicP}
-\defineactivetoken 208 {\cyrillicR}
-\defineactivetoken 209 {\cyrillicS}
-\defineactivetoken 210 {\cyrillicT}
-\defineactivetoken 211 {\cyrillicU}
-\defineactivetoken 175 {\cyrillicY}
-\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 184 {\cyrillicyo}
-\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 186 {\cyrillicotld}
-\defineactivetoken 239 {\cyrillicp}
-\defineactivetoken 240 {\cyrillicr}
-\defineactivetoken 241 {\cyrillics}
-\defineactivetoken 242 {\cyrillict}
-\defineactivetoken 243 {\cyrillicu}
-\defineactivetoken 191 {\cyrillicy}
-\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}
-
-\stopregime
-
-\startregime[dbk]
-
-\defineactivetoken 128 {\cyrillicA}
-\defineactivetoken 129 {\cyrillicB}
-\defineactivetoken 130 {\cyrillicV}
-\defineactivetoken 131 {\cyrillicG}
-\defineactivetoken 132 {\cyrillicD}
-\defineactivetoken 133 {\cyrillicE}
-\defineactivetoken 134 {\cyrillicYO}
-\defineactivetoken 135 {\cyrillicZH}
-\defineactivetoken 136 {\cyrillicZ}
-\defineactivetoken 137 {\cyrillicI}
-\defineactivetoken 139 {\cyrillicISHRT}
-\defineactivetoken 140 {\cyrillicK}
-\defineactivetoken 142 {\cyrillicL}
-\defineactivetoken 143 {\cyrillicM}
-\defineactivetoken 144 {\cyrillicN}
-\defineactivetoken 145 {\cyrillicO}
-\defineactivetoken 146 {\cyrillicOTLD}
-\defineactivetoken 147 {\cyrillicP}
-\defineactivetoken 148 {\cyrillicR}
-\defineactivetoken 149 {\cyrillicS}
-\defineactivetoken 150 {\cyrillicT}
-\defineactivetoken 151 {\cyrillicU}
-\defineactivetoken 152 {\cyrillicY}
-\defineactivetoken 153 {\cyrillicF}
-\defineactivetoken 154 {\cyrillicH}
-\defineactivetoken 155 {\cyrillicC}
-\defineactivetoken 156 {\cyrillicCH}
-\defineactivetoken 157 {\cyrillicSH}
-\defineactivetoken 158 {\cyrillicSHCH}
-\defineactivetoken 159 {\cyrillicHRDSN}
-\defineactivetoken 160 {\cyrillicERY}
-\defineactivetoken 161 {\cyrillicSFTSN}
-\defineactivetoken 162 {\cyrillicEREV}
-\defineactivetoken 163 {\cyrillicYU}
-\defineactivetoken 164 {\cyrillicYA}
-\defineactivetoken 165 {\cyrillica}
-\defineactivetoken 166 {\cyrillicb}
-\defineactivetoken 167 {\cyrillicv}
-\defineactivetoken 168 {\cyrillicg}
-\defineactivetoken 169 {\cyrillicd}
-\defineactivetoken 170 {\cyrillice}
-\defineactivetoken 171 {\cyrillicyo}
-\defineactivetoken 172 {\cyrilliczh}
-\defineactivetoken 173 {\cyrillicz}
-\defineactivetoken 174 {\cyrillici}
-\defineactivetoken 175 {\cyrillicishrt}
-\defineactivetoken 225 {\cyrillick}
-\defineactivetoken 226 {\cyrillicl}
-\defineactivetoken 227 {\cyrillicm}
-\defineactivetoken 228 {\cyrillicn}
-\defineactivetoken 229 {\cyrillico}
-\defineactivetoken 230 {\cyrillicotld}
-\defineactivetoken 231 {\cyrillicp}
-\defineactivetoken 232 {\cyrillicr}
-\defineactivetoken 233 {\cyrillics}
-\defineactivetoken 234 {\cyrillict}
-\defineactivetoken 235 {\cyrillicu}
-\defineactivetoken 236 {\cyrillicy}
-\defineactivetoken 237 {\cyrillicf}
-\defineactivetoken 238 {\cyrillich}
-\defineactivetoken 239 {\cyrillicc}
-\defineactivetoken 241 {\cyrillicch}
-\defineactivetoken 242 {\cyrillicsh}
-\defineactivetoken 243 {\cyrillicshch}
-\defineactivetoken 244 {\cyrillichrdsn}
-\defineactivetoken 245 {\cyrillicery}
-\defineactivetoken 246 {\cyrillicsftsn}
-\defineactivetoken 247 {\cyrillicerev}
-\defineactivetoken 248 {\cyrillicyu}
-\defineactivetoken 249 {\cyrillicya}
-
-\stopregime
-
-\startregime[iso88595]
-
-\defineactivetoken 160 {\nonbreakablespace}
-\defineactivetoken 161 {\cyrillicYO}
-\defineactivetoken 162 {\cyrillicDJE}
-\defineactivetoken 163 {\'\cyrillicG}
-\defineactivetoken 164 {\cyrillicIE}
-\defineactivetoken 165 {\cyrillicDZE}
-\defineactivetoken 166 {\cyrillicII}
-\defineactivetoken 167 {\cyrillicYI}
-\defineactivetoken 168 {\cyrillicJE}
-\defineactivetoken 169 {\cyrillicLJE}
-\defineactivetoken 170 {\cyrillicNJE}
-\defineactivetoken 171 {\cyrillicTSHE}
-\defineactivetoken 172 {\'\cyrillicK}
-\defineactivetoken 173 {\-}
-\defineactivetoken 174 {\cyrillicUSHRT}
-\defineactivetoken 175 {\cyrillicDZHE}
-\defineactivetoken 176 {\cyrillicA}
-\defineactivetoken 177 {\cyrillicB}
-\defineactivetoken 178 {\cyrillicV}
-\defineactivetoken 179 {\cyrillicG}
-\defineactivetoken 180 {\cyrillicD}
-\defineactivetoken 181 {\cyrillicE}
-\defineactivetoken 182 {\cyrillicZH}
-\defineactivetoken 183 {\cyrillicZ}
-\defineactivetoken 184 {\cyrillicI}
-\defineactivetoken 185 {\cyrillicISHRT}
-\defineactivetoken 186 {\cyrillicK}
-\defineactivetoken 187 {\cyrillicL}
-\defineactivetoken 188 {\cyrillicM}
-\defineactivetoken 189 {\cyrillicN}
-\defineactivetoken 190 {\cyrillicO}
-\defineactivetoken 191 {\cyrillicP}
-\defineactivetoken 192 {\cyrillicR}
-\defineactivetoken 193 {\cyrillicS}
-\defineactivetoken 194 {\cyrillicT}
-\defineactivetoken 195 {\cyrillicU}
-\defineactivetoken 196 {\cyrillicF}
-\defineactivetoken 197 {\cyrillicH}
-\defineactivetoken 198 {\cyrillicC}
-\defineactivetoken 199 {\cyrillicCH}
-\defineactivetoken 200 {\cyrillicSH}
-\defineactivetoken 201 {\cyrillicSHCH}
-\defineactivetoken 202 {\cyrillicHRDSN}
-\defineactivetoken 203 {\cyrillicERY}
-\defineactivetoken 204 {\cyrillicSFTSN}
-\defineactivetoken 205 {\cyrillicEREV}
-\defineactivetoken 206 {\cyrillicYU}
-\defineactivetoken 207 {\cyrillicYA}
-\defineactivetoken 208 {\cyrillica}
-\defineactivetoken 209 {\cyrillicb}
-\defineactivetoken 210 {\cyrillicv}
-\defineactivetoken 211 {\cyrillicg}
-\defineactivetoken 212 {\cyrillicd}
-\defineactivetoken 213 {\cyrillice}
-\defineactivetoken 214 {\cyrilliczh}
-\defineactivetoken 215 {\cyrillicz}
-\defineactivetoken 216 {\cyrillici}
-\defineactivetoken 217 {\cyrillicishrt}
-\defineactivetoken 218 {\cyrillick}
-\defineactivetoken 219 {\cyrillicl}
-\defineactivetoken 220 {\cyrillicm}
-\defineactivetoken 221 {\cyrillicn}
-\defineactivetoken 222 {\cyrillico}
-\defineactivetoken 223 {\cyrillicp}
-\defineactivetoken 224 {\cyrillicr}
-\defineactivetoken 225 {\cyrillics}
-\defineactivetoken 226 {\cyrillict}
-\defineactivetoken 227 {\cyrillicu}
-\defineactivetoken 228 {\cyrillicf}
-\defineactivetoken 229 {\cyrillich}
-\defineactivetoken 230 {\cyrillicc}
-\defineactivetoken 231 {\cyrillicch}
-\defineactivetoken 232 {\cyrillicsh}
-\defineactivetoken 233 {\cyrillicshch}
-\defineactivetoken 234 {\cyrillichrdsn}
-\defineactivetoken 235 {\cyrillicery}
-\defineactivetoken 236 {\cyrillicsftsn}
-\defineactivetoken 237 {\cyrillicerev}
-\defineactivetoken 238 {\cyrillicyu}
-\defineactivetoken 239 {\cyrillicya}
-\defineactivetoken 240 {\textnumero}
-\defineactivetoken 241 {\cyrillicyo}
-\defineactivetoken 242 {\cyrillicdje}
-\defineactivetoken 243 {\'\cyrillicg}
-\defineactivetoken 244 {\cyrillicie}
-\defineactivetoken 245 {\cyrillicdze}
-\defineactivetoken 246 {\cyrillicii}
-\defineactivetoken 247 {\cyrillicyi}
-\defineactivetoken 248 {\cyrillicje}
-\defineactivetoken 249 {\cyrilliclje}
-\defineactivetoken 250 {\cyrillicnje}
-\defineactivetoken 251 {\cyrillictshe}
-\defineactivetoken 252 {\'\cyrillick}
-\defineactivetoken 253 {\sectionmark}
-\defineactivetoken 254 {\cyrillicushrt}
-\defineactivetoken 255 {\cyrillicdzhe}
-
-\stopregime
-
-\startregime[isoir111]
-
-\defineactivetoken 225 {\cyrillicA}
-\defineactivetoken 226 {\cyrillicB}
-\defineactivetoken 247 {\cyrillicV}
-\defineactivetoken 231 {\cyrillicG}
-\defineactivetoken 228 {\cyrillicD}
-\defineactivetoken 229 {\cyrillicE}
-\defineactivetoken 179 {\cyrillicYO}
-\defineactivetoken 246 {\cyrillicZH}
-\defineactivetoken 250 {\cyrillicZ}
-\defineactivetoken 233 {\cyrillicI}
-\defineactivetoken 234 {\cyrillicISHRT}
-\defineactivetoken 235 {\cyrillicK}
-\defineactivetoken 236 {\cyrillicL}
-\defineactivetoken 237 {\cyrillicM}
-\defineactivetoken 238 {\cyrillicN}
-\defineactivetoken 239 {\cyrillicO}
-\defineactivetoken 240 {\cyrillicP}
-\defineactivetoken 242 {\cyrillicR}
-\defineactivetoken 243 {\cyrillicS}
-\defineactivetoken 244 {\cyrillicT}
-\defineactivetoken 245 {\cyrillicU}
-\defineactivetoken 230 {\cyrillicF}
-\defineactivetoken 232 {\cyrillicH}
-\defineactivetoken 227 {\cyrillicC}
-\defineactivetoken 254 {\cyrillicCH}
-\defineactivetoken 251 {\cyrillicSH}
-\defineactivetoken 253 {\cyrillicSHCH}
-\defineactivetoken 255 {\cyrillicHRDSN}
-\defineactivetoken 249 {\cyrillicERY}
-\defineactivetoken 248 {\cyrillicSFTSN}
-\defineactivetoken 252 {\cyrillicEREV}
-\defineactivetoken 224 {\cyrillicYU}
-\defineactivetoken 241 {\cyrillicYA}
-\defineactivetoken 193 {\cyrillica}
-\defineactivetoken 194 {\cyrillicb}
-\defineactivetoken 215 {\cyrillicv}
-\defineactivetoken 199 {\cyrillicg}
-\defineactivetoken 196 {\cyrillicd}
-\defineactivetoken 197 {\cyrillice}
-\defineactivetoken 163 {\cyrillicyo}
-\defineactivetoken 214 {\cyrilliczh}
-\defineactivetoken 218 {\cyrillicz}
-\defineactivetoken 201 {\cyrillici}
-\defineactivetoken 202 {\cyrillicishrt}
-\defineactivetoken 203 {\cyrillick}
-\defineactivetoken 204 {\cyrillicl}
-\defineactivetoken 205 {\cyrillicm}
-\defineactivetoken 206 {\cyrillicn}
-\defineactivetoken 207 {\cyrillico}
-\defineactivetoken 208 {\cyrillicp}
-\defineactivetoken 210 {\cyrillicr}
-\defineactivetoken 211 {\cyrillics}
-\defineactivetoken 212 {\cyrillict}
-\defineactivetoken 213 {\cyrillicu}
-\defineactivetoken 198 {\cyrillicf}
-\defineactivetoken 200 {\cyrillich}
-\defineactivetoken 195 {\cyrillicc}
-\defineactivetoken 222 {\cyrillicch}
-\defineactivetoken 219 {\cyrillicsh}
-\defineactivetoken 221 {\cyrillicshch}
-\defineactivetoken 223 {\cyrillichrdsn}
-\defineactivetoken 217 {\cyrillicery}
-\defineactivetoken 216 {\cyrillicsftsn}
-\defineactivetoken 220 {\cyrillicerev}
-\defineactivetoken 192 {\cyrillicyu}
-\defineactivetoken 209 {\cyrillicya}
-\defineactivetoken 160 {\nonbreakablespace}
-\defineactivetoken 161 {\cyrillicdje}
-\defineactivetoken 162 {\'\cyrillicg}
-\defineactivetoken 164 {\cyrillicie}
-\defineactivetoken 165 {\cyrillicdze}
-\defineactivetoken 166 {\cyrillicii}
-\defineactivetoken 167 {\cyrillicyi}
-\defineactivetoken 168 {\cyrillicje}
-\defineactivetoken 169 {\cyrilliclje}
-\defineactivetoken 170 {\cyrillicnje}
-\defineactivetoken 171 {\cyrillictshe}
-\defineactivetoken 172 {\'\cyrillick}
-\defineactivetoken 173 {\-}
-\defineactivetoken 174 {\cyrillicushrt}
-\defineactivetoken 175 {\cyrillicdzhe}
-\defineactivetoken 176 {\textnumero}
-\defineactivetoken 177 {\cyrillicDJE}
-\defineactivetoken 178 {\'\cyrillicG}
-\defineactivetoken 180 {\cyrillicIE}
-\defineactivetoken 181 {\cyrillicDZE}
-\defineactivetoken 182 {\cyrillicII}
-\defineactivetoken 183 {\cyrillicYI}
-\defineactivetoken 184 {\cyrillicJE}
-\defineactivetoken 185 {\cyrillicLJE}
-\defineactivetoken 186 {\cyrillicNJE}
-\defineactivetoken 187 {\cyrillicTSHE}
-\defineactivetoken 188 {\'\cyrillicK}
-\defineactivetoken 189 {\textcurrency}
-\defineactivetoken 190 {\cyrillicUSHRT}
-\defineactivetoken 191 {\cyrillicDZHE}
-
-\stopregime
-
-\startregime[mik]
-
-\defineactivetoken 128 {\cyrillicA}
-\defineactivetoken 129 {\cyrillicB}
-\defineactivetoken 130 {\cyrillicV}
-\defineactivetoken 131 {\cyrillicG}
-\defineactivetoken 132 {\cyrillicD}
-\defineactivetoken 133 {\cyrillicE}
-\defineactivetoken 134 {\cyrillicZH}
-\defineactivetoken 135 {\cyrillicZ}
-\defineactivetoken 136 {\cyrillicI}
-\defineactivetoken 137 {\cyrillicISHRT}
-\defineactivetoken 138 {\cyrillicK}
-\defineactivetoken 139 {\cyrillicL}
-\defineactivetoken 140 {\cyrillicM}
-\defineactivetoken 141 {\cyrillicN}
-\defineactivetoken 142 {\cyrillicO}
-\defineactivetoken 143 {\cyrillicP}
-\defineactivetoken 144 {\cyrillicR}
-\defineactivetoken 145 {\cyrillicS}
-\defineactivetoken 146 {\cyrillicT}
-\defineactivetoken 147 {\cyrillicU}
-\defineactivetoken 148 {\cyrillicF}
-\defineactivetoken 149 {\cyrillicH}
-\defineactivetoken 150 {\cyrillicC}
-\defineactivetoken 151 {\cyrillicCH}
-\defineactivetoken 152 {\cyrillicSH}
-\defineactivetoken 153 {\cyrillicSHCH}
-\defineactivetoken 154 {\cyrillicHRDSN}
-\defineactivetoken 155 {\cyrillicERY}
-\defineactivetoken 156 {\cyrillicSFTSN}
-\defineactivetoken 157 {\cyrillicEREV}
-\defineactivetoken 158 {\cyrillicYU}
-\defineactivetoken 159 {\cyrillicYA}
-\defineactivetoken 160 {\cyrillica}
-\defineactivetoken 161 {\cyrillicb}
-\defineactivetoken 162 {\cyrillicv}
-\defineactivetoken 163 {\cyrillicg}
-\defineactivetoken 164 {\cyrillicd}
-\defineactivetoken 165 {\cyrillice}
-\defineactivetoken 166 {\cyrilliczh}
-\defineactivetoken 167 {\cyrillicz}
-\defineactivetoken 168 {\cyrillici}
-\defineactivetoken 169 {\cyrillicishrt}
-\defineactivetoken 170 {\cyrillick}
-\defineactivetoken 171 {\cyrillicl}
-\defineactivetoken 172 {\cyrillicm}
-\defineactivetoken 173 {\cyrillicn}
-\defineactivetoken 174 {\cyrillico}
-\defineactivetoken 175 {\cyrillicp}
-\defineactivetoken 176 {\cyrillicr}
-\defineactivetoken 177 {\cyrillics}
-\defineactivetoken 178 {\cyrillict}
-\defineactivetoken 179 {\cyrillicu}
-\defineactivetoken 180 {\cyrillicf}
-\defineactivetoken 181 {\cyrillich}
-\defineactivetoken 182 {\cyrillicc}
-\defineactivetoken 183 {\cyrillicch}
-\defineactivetoken 184 {\cyrillicsh}
-\defineactivetoken 185 {\cyrillicshch}
-\defineactivetoken 186 {\cyrillichrdsn}
-\defineactivetoken 187 {\cyrillicery}
-\defineactivetoken 188 {\cyrillicsftsn}
-\defineactivetoken 189 {\cyrillicerev}
-\defineactivetoken 190 {\cyrillicyu}
-\defineactivetoken 191 {\cyrillicya}
-\defineactivetoken 213 {\textnumero}
-\defineactivetoken 214 {\sectionmark}
-\defineactivetoken 248 {\textdegree}
-\defineactivetoken 249 {\textbullet}
-\defineactivetoken 250 {\periodcentered}
-\defineactivetoken 254 {\textblacksquare}
-\defineactivetoken 255 {\nonbreakablespace}
-\defineactivetoken 224 {\mathematics\alpha}
-\defineactivetoken 225 {\mathematics\beta}
-\defineactivetoken 226 {\mathematics\Gamma}
-\defineactivetoken 227 {\mathematics\pi}
-\defineactivetoken 228 {\mathematics\Sigma}
-\defineactivetoken 229 {\mathematics\sigma}
-\defineactivetoken 230 {\textmu}
-\defineactivetoken 231 {\mathematics\tau}
-\defineactivetoken 232 {\mathematics\Phi}
-\defineactivetoken 233 {\mathematics\Theta}
-\defineactivetoken 234 {\mathematics\Omega}
-\defineactivetoken 235 {\mathematics\delta}
-\defineactivetoken 236 {\mathematics\infty}
-\defineactivetoken 237 {\mathematics\emptyset}
-\defineactivetoken 238 {\mathematics\in}
-\defineactivetoken 239 {\mathematics\cap}
-\defineactivetoken 240 {\mathematics\equiv}
-\defineactivetoken 241 {\textpm}
-\defineactivetoken 242 {\mathematics\geq}
-\defineactivetoken 243 {\mathematics\leq}
-\defineactivetoken 246 {\textdiv}
-\defineactivetoken 247 {\mathematics\sim}
-\defineactivetoken 251 {\textsurd}
-\defineactivetoken 252 {\high{\txx n}}
-\defineactivetoken 253 {\twosuperior}
-
-\stopregime
-
-\startregime[mls]
-
-% The symbols 194 to 253 are defined in Mongolian fonts in
-% the Mon\TeX\ package (?)
-
-\defineactivetoken 128 {\cyrillicB}
-\defineactivetoken 129 {\cyrillicy}
-\defineactivetoken 130 {\cyrillicD}
-\defineactivetoken 131 {\cyrillicYO}
-\defineactivetoken 132 {\cyrillicerev}
-\defineactivetoken 133 {\cyrillicZH}
-\defineactivetoken 134 {\cyrillicZ}
-\defineactivetoken 135 {\cyrillicI}
-\defineactivetoken 136 {\cyrillicISHRT}
-\defineactivetoken 137 {\cyrillicyo}
-\defineactivetoken 138 {\cyrillicL}
-\defineactivetoken 139 {\cyrillicishrt}
-\defineactivetoken 140 {\cyrillicOTLD}
-\defineactivetoken 141 {\cyrillicP}
-\defineactivetoken 142 {\cyrillicEREV}
-\defineactivetoken 143 {\cyrillicU}
-\defineactivetoken 144 {\cyrillicF}
-\defineactivetoken 145 {\cyrillicC}
-\defineactivetoken 146 {\cyrillicCH}
-\defineactivetoken 147 {\cyrillicSH}
-\defineactivetoken 148 {\cyrillicotld}
-\defineactivetoken 149 {\cyrillicSHCH}
-\defineactivetoken 150 {\cyrillicHRDSN}
-\defineactivetoken 151 {\cyrillicERY}
-\defineactivetoken 152 {\cyrillicSFTSN}
-\defineactivetoken 153 {\cyrillicOTLD}
-\defineactivetoken 154 {\cyrillicY}
-\defineactivetoken 155 {\cyrillicEREV}
-\defineactivetoken 156 {\cyrillicYU}
-\defineactivetoken 157 {\cyrillicYA}
-\defineactivetoken 158 {\cyrillicb}
-\defineactivetoken 159 {\cyrillicv}
-\defineactivetoken 160 {\cyrillicg}
-\defineactivetoken 161 {\cyrillicd}
-\defineactivetoken 162 {\cyrilliczh}
-\defineactivetoken 163 {\cyrillicz}
-\defineactivetoken 164 {\cyrillici}
-\defineactivetoken 165 {\cyrillicishrt}
-\defineactivetoken 166 {\cyrillick}
-\defineactivetoken 167 {\cyrillicl}
-\defineactivetoken 168 {\cyrillicm}
-\defineactivetoken 169 {\cyrillicn}
-\defineactivetoken 170 {\cyrillicotld}
-\defineactivetoken 171 {\cyrillicp}
-\defineactivetoken 172 {\cyrillict}
-\defineactivetoken 173 {\cyrillicy}
-\defineactivetoken 174 {\leftguillemot}
-\defineactivetoken 175 {\rightguillemot}
-\defineactivetoken 176 {\cyrillicf}
-\defineactivetoken 177 {\cyrillicc}
-\defineactivetoken 178 {\cyrillicch}
-\defineactivetoken 180 {\cyrillicsh}
-\defineactivetoken 181 {\cyrillicshch}
-\defineactivetoken 182 {\cyrillichrdsn}
-\defineactivetoken 183 {\cyrillicery}
-\defineactivetoken 184 {\cyrillicsftsn}
-\defineactivetoken 189 {\cyrillicerev}
-\defineactivetoken 190 {\cyrillicyu}
-\defineactivetoken 193 {\cyrillicya}
-\defineactivetoken 226 {\cyrillicG}
-\defineactivetoken 225 {\ss}
-\defineactivetoken 231 {\mathematics{\gamma}}
-\defineactivetoken 255 {\nonbreakablespace}
-\defineactivetoken 194 {\titem}
-\defineactivetoken 195 {\shud}
-\defineactivetoken 197 {\secondaryshud}
-\defineactivetoken 198 {\shilbe}
-\defineactivetoken 199 {\gedes}
-\defineactivetoken 207 {\secondarygedes}
-\defineactivetoken 208 {\cegteishud}
-\defineactivetoken 209 {\lewer}
-\defineactivetoken 210 {\suuliinlewer}
-\defineactivetoken 211 {\tertiarylewer}
-\defineactivetoken 212 {\mewer}
-\defineactivetoken 213 {\suuliinmewer}
-\defineactivetoken 214 {\xewteeqix}
-\defineactivetoken 215 {\dawxarcegtxewteeqix}
-\defineactivetoken 216 {\halfnum}
-\defineactivetoken 219 {\num}
-\defineactivetoken 220 {\halfnumtgedes}
-\defineactivetoken 221 {\numtaigedes}
-\defineactivetoken 222 {\buruuxarsangedes}
-\defineactivetoken 223 {\gedesteishilbe}
-\defineactivetoken 224 {\erweeljinshilbe}
-\defineactivetoken 227 {\secerweeljin}
-\defineactivetoken 228 {\bosooshilbe}
-\defineactivetoken 229 {\etgershilbe}
-\defineactivetoken 230 {\zawj}
-\defineactivetoken 232 {\suuliinzawj}
-\defineactivetoken 233 {\dawxarcegtzawj}
-\defineactivetoken 234 {\sereeewer}
-\defineactivetoken 235 {\matgarshilbe}
-\defineactivetoken 236 {\bituushilbe}
-\defineactivetoken 237 {\secondaryqagt}
-\defineactivetoken 238 {\qagt}
-\defineactivetoken 239 {\secnumtdelbenqix}
-\defineactivetoken 240 {\numtdelbenqix}
-\defineactivetoken 241 {\secsertenqixtnum}
-\defineactivetoken 242 {\sertenqixtnum}
-\defineactivetoken 243 {\zadgaizardigt}
-\defineactivetoken 244 {\bituuzardigt}
-\defineactivetoken 245 {\malgaitaititem}
-\defineactivetoken 246 {\suul}
-\defineactivetoken 247 {\orxic}
-\defineactivetoken 248 {\biodoisuul}
-\defineactivetoken 249 {\bagodoisuul}
-\defineactivetoken 250 {\nceg}
-\defineactivetoken 251 {\gceg}
-\defineactivetoken 252 {\ceg}
-\defineactivetoken 253 {\dorwoljin}
-
-\stopregime
-
-\startregime[mnk]
-
-\defineactivetoken 128 {\cyrillicA}
-\defineactivetoken 129 {\cyrillicB}
-\defineactivetoken 130 {\cyrillicV}
-\defineactivetoken 131 {\cyrillicG}
-\defineactivetoken 132 {\cyrillicD}
-\defineactivetoken 133 {\cyrillicE}
-\defineactivetoken 134 {\cyrillicYO}
-\defineactivetoken 135 {\cyrillicZH}
-\defineactivetoken 136 {\cyrillicZ}
-\defineactivetoken 137 {\cyrillicI}
-\defineactivetoken 138 {\cyrillicISHRT}
-\defineactivetoken 139 {\cyrillicK}
-\defineactivetoken 140 {\cyrillicL}
-\defineactivetoken 141 {\cyrillicM}
-\defineactivetoken 142 {\cyrillicN}
-\defineactivetoken 143 {\cyrillicO}
-\defineactivetoken 144 {\cyrillicOTLD}
-\defineactivetoken 145 {\cyrillicP}
-\defineactivetoken 146 {\cyrillicR}
-\defineactivetoken 147 {\cyrillicS}
-\defineactivetoken 148 {\cyrillicT}
-\defineactivetoken 149 {\cyrillicU}
-\defineactivetoken 150 {\cyrillicY}
-\defineactivetoken 151 {\cyrillicF}
-\defineactivetoken 152 {\cyrillicH}
-\defineactivetoken 153 {\cyrillicC}
-\defineactivetoken 154 {\cyrillicCH}
-\defineactivetoken 155 {\cyrillicSH}
-\defineactivetoken 156 {\cyrillicSHCH}
-\defineactivetoken 157 {\cyrillicHRDSN}
-\defineactivetoken 158 {\cyrillicERY}
-\defineactivetoken 159 {\cyrillicSFTSN}
-\defineactivetoken 160 {\cyrillicEREV}
-\defineactivetoken 161 {\cyrillicYU}
-\defineactivetoken 162 {\cyrillicYA}
-\defineactivetoken 163 {\cyrillica}
-\defineactivetoken 164 {\cyrillicb}
-\defineactivetoken 165 {\cyrillicv}
-\defineactivetoken 166 {\cyrillicg}
-\defineactivetoken 167 {\cyrillicd}
-\defineactivetoken 168 {\cyrillice}
-\defineactivetoken 169 {\cyrillicyo}
-\defineactivetoken 170 {\cyrilliczh}
-\defineactivetoken 173 {\cyrillicz}
-\defineactivetoken 224 {\cyrillici}
-\defineactivetoken 225 {\cyrillicishrt}
-\defineactivetoken 226 {\cyrillick}
-\defineactivetoken 227 {\cyrillicl}
-\defineactivetoken 228 {\cyrillicm}
-\defineactivetoken 229 {\cyrillicn}
-\defineactivetoken 230 {\cyrillico}
-\defineactivetoken 231 {\cyrillicotld}
-\defineactivetoken 232 {\cyrillicp}
-\defineactivetoken 233 {\cyrillicr}
-\defineactivetoken 234 {\cyrillics}
-\defineactivetoken 235 {\cyrillict}
-\defineactivetoken 236 {\cyrillicu}
-\defineactivetoken 237 {\cyrillicy}
-\defineactivetoken 238 {\cyrillicf}
-\defineactivetoken 239 {\cyrillich}
-\defineactivetoken 240 {\cyrillicc}
-\defineactivetoken 241 {\cyrillicch}
-\defineactivetoken 242 {\cyrillicsh}
-\defineactivetoken 243 {\cyrillicshch}
-\defineactivetoken 244 {\cyrillichrdsn}
-\defineactivetoken 245 {\cyrillicery}
-\defineactivetoken 248 {\cyrillicsftsn}
-\defineactivetoken 252 {\cyrillicerev}
-\defineactivetoken 253 {\cyrillicyu}
-\defineactivetoken 254 {\cyrillicya}
-
-\stopregime
-
-\startregime[mos]
-
-\defineactivetoken 128 {\cyrillicA}
-\defineactivetoken 129 {\cyrillicB}
-\defineactivetoken 130 {\cyrillicV}
-\defineactivetoken 131 {\cyrillicG}
-\defineactivetoken 132 {\cyrillicD}
-\defineactivetoken 133 {\cyrillicE}
-\defineactivetoken 160 {\cyrillicYO}
-\defineactivetoken 134 {\cyrillicZH}
-\defineactivetoken 135 {\cyrillicZ}
-\defineactivetoken 136 {\cyrillicI}
-\defineactivetoken 137 {\cyrillicISHRT}
-\defineactivetoken 138 {\cyrillicK}
-\defineactivetoken 139 {\cyrillicL}
-\defineactivetoken 140 {\cyrillicM}
-\defineactivetoken 141 {\cyrillicN}
-\defineactivetoken 142 {\cyrillicO}
-\defineactivetoken 153 {\cyrillicOTLD}
-\defineactivetoken 143 {\cyrillicP}
-\defineactivetoken 144 {\cyrillicR}
-\defineactivetoken 145 {\cyrillicS}
-\defineactivetoken 146 {\cyrillicT}
-\defineactivetoken 147 {\cyrillicU}
-\defineactivetoken 154 {\cyrillicY}
-\defineactivetoken 148 {\cyrillicF}
-\defineactivetoken 149 {\cyrillicH}
-\defineactivetoken 150 {\cyrillicC}
-\defineactivetoken 151 {\cyrillicCH}
-\defineactivetoken 152 {\cyrillicSH}
-\defineactivetoken 164 {\cyrillicSHCH}
-\defineactivetoken 162 {\cyrillicHRDSN}
-\defineactivetoken 155 {\cyrillicERY}
-\defineactivetoken 156 {\cyrillicSFTSN}
-\defineactivetoken 157 {\cyrillicEREV}
-\defineactivetoken 158 {\cyrillicYU}
-\defineactivetoken 159 {\cyrillicYA}
-\defineactivetoken 224 {\cyrillica}
-\defineactivetoken 225 {\cyrillicb}
-\defineactivetoken 226 {\cyrillicv}
-\defineactivetoken 227 {\cyrillicg}
-\defineactivetoken 228 {\cyrillicd}
-\defineactivetoken 229 {\cyrillice}
-\defineactivetoken 161 {\cyrillicyo}
-\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 249 {\cyrillicotld}
-\defineactivetoken 239 {\cyrillicp}
-\defineactivetoken 240 {\cyrillicr}
-\defineactivetoken 241 {\cyrillics}
-\defineactivetoken 242 {\cyrillict}
-\defineactivetoken 243 {\cyrillicu}
-\defineactivetoken 250 {\cyrillicy}
-\defineactivetoken 244 {\cyrillicf}
-\defineactivetoken 245 {\cyrillich}
-\defineactivetoken 246 {\cyrillicc}
-\defineactivetoken 247 {\cyrillicch}
-\defineactivetoken 248 {\cyrillicsh}
-\defineactivetoken 165 {\cyrillicshch}
-\defineactivetoken 163 {\cyrillichrdsn}
-\defineactivetoken 251 {\cyrillicery}
-\defineactivetoken 252 {\cyrillicsftsn}
-\defineactivetoken 253 {\cyrillicerev}
-\defineactivetoken 254 {\cyrillicyu}
-\defineactivetoken 168 {\cyrillicya}
-
-\stopregime
-
-\startregime[ncc]
-
-\defineactivetoken 128 {\cyrillicA}
-\defineactivetoken 129 {\cyrillicB}
-\defineactivetoken 130 {\cyrillicV}
-\defineactivetoken 131 {\cyrillicG}
-\defineactivetoken 132 {\cyrillicD}
-\defineactivetoken 133 {\cyrillicE}
-\defineactivetoken 134 {\cyrillicYO}
-\defineactivetoken 135 {\cyrillicZH}
-\defineactivetoken 136 {\cyrillicZ}
-\defineactivetoken 137 {\cyrillicI}
-\defineactivetoken 139 {\cyrillicISHRT}
-\defineactivetoken 140 {\cyrillicK}
-\defineactivetoken 142 {\cyrillicL}
-\defineactivetoken 143 {\cyrillicM}
-\defineactivetoken 144 {\cyrillicN}
-\defineactivetoken 145 {\cyrillicO}
-\defineactivetoken 146 {\cyrillicOTLD}
-\defineactivetoken 147 {\cyrillicP}
-\defineactivetoken 148 {\cyrillicR}
-\defineactivetoken 149 {\cyrillicS}
-\defineactivetoken 150 {\cyrillicT}
-\defineactivetoken 151 {\cyrillicU}
-\defineactivetoken 152 {\cyrillicY}
-\defineactivetoken 153 {\cyrillicF}
-\defineactivetoken 154 {\cyrillicH}
-\defineactivetoken 155 {\cyrillicC}
-\defineactivetoken 156 {\cyrillicCH}
-\defineactivetoken 157 {\cyrillicSH}
-\defineactivetoken 158 {\cyrillicSHCH}
-\defineactivetoken 159 {\cyrillicHRDSN}
-\defineactivetoken 160 {\cyrillicERY}
-\defineactivetoken 161 {\cyrillicSFTSN}
-\defineactivetoken 162 {\cyrillicEREV}
-\defineactivetoken 163 {\cyrillicYU}
-\defineactivetoken 164 {\cyrillicYA}
-\defineactivetoken 165 {\cyrillica}
-\defineactivetoken 166 {\cyrillicb}
-\defineactivetoken 167 {\cyrillicv}
-\defineactivetoken 168 {\cyrillicg}
-\defineactivetoken 169 {\cyrillicd}
-\defineactivetoken 170 {\cyrillice}
-\defineactivetoken 171 {\cyrillicyo}
-\defineactivetoken 172 {\cyrilliczh}
-\defineactivetoken 173 {\cyrillicz}
-\defineactivetoken 225 {\cyrillici}
-\defineactivetoken 226 {\cyrillicishrt}
-\defineactivetoken 227 {\cyrillick}
-\defineactivetoken 228 {\cyrillicl}
-\defineactivetoken 229 {\cyrillicm}
-\defineactivetoken 230 {\cyrillicn}
-\defineactivetoken 231 {\cyrillico}
-\defineactivetoken 232 {\cyrillicotld}
-\defineactivetoken 233 {\cyrillicp}
-\defineactivetoken 234 {\cyrillicr}
-\defineactivetoken 235 {\cyrillics}
-\defineactivetoken 236 {\cyrillict}
-\defineactivetoken 237 {\cyrillicu}
-\defineactivetoken 238 {\cyrillicy}
-\defineactivetoken 239 {\cyrillicf}
-\defineactivetoken 240 {\cyrillich}
-\defineactivetoken 241 {\cyrillicc}
-\defineactivetoken 242 {\cyrillicch}
-\defineactivetoken 243 {\cyrillicsh}
-\defineactivetoken 244 {\cyrillicshch}
-\defineactivetoken 245 {\cyrillichrdsn}
-\defineactivetoken 246 {\cyrillicery}
-\defineactivetoken 247 {\cyrillicsftsn}
-\defineactivetoken 248 {\cyrillicerev}
-\defineactivetoken 249 {\cyrillicyu}
-\defineactivetoken 251 {\cyrillicya}
-
-\stopregime
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/regi-cyr.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-cyr.mkii
deleted file mode 100644
index 1910c0e7cb3..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-cyr.mkii
+++ /dev/null
@@ -1,722 +0,0 @@
-%D \module
-%D [ file=regi-cyr,
-%D version=2003.01.24,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Cyrillic,
-%D author=...,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Here are additional input regimes for cyrillic encodings others than cp1251
-%D and iso-8859-5:
-%D
-%D \startitemize
-%D \item two variants of dos
-%D \item three variants of koi-8 for *nix: russian,
-%D ukrainian and mixed
-%D \item two variants for the mac
-%D \stopitemize
-%D
-%D Other, not so popular regimes, can be found in \type
-%D {regi-cy2}.
-
-\startregime[cp866]
-
-\defineactivetoken 128 {\cyrillicA}
-\defineactivetoken 129 {\cyrillicB}
-\defineactivetoken 130 {\cyrillicV}
-\defineactivetoken 131 {\cyrillicG}
-\defineactivetoken 132 {\cyrillicD}
-\defineactivetoken 133 {\cyrillicE}
-\defineactivetoken 134 {\cyrillicZH}
-\defineactivetoken 135 {\cyrillicZ}
-\defineactivetoken 136 {\cyrillicI}
-\defineactivetoken 137 {\cyrillicISHRT}
-\defineactivetoken 138 {\cyrillicK}
-\defineactivetoken 139 {\cyrillicL}
-\defineactivetoken 140 {\cyrillicM}
-\defineactivetoken 141 {\cyrillicN}
-\defineactivetoken 142 {\cyrillicO}
-\defineactivetoken 143 {\cyrillicP}
-\defineactivetoken 144 {\cyrillicR}
-\defineactivetoken 145 {\cyrillicS}
-\defineactivetoken 146 {\cyrillicT}
-\defineactivetoken 147 {\cyrillicU}
-\defineactivetoken 148 {\cyrillicF}
-\defineactivetoken 149 {\cyrillicH}
-\defineactivetoken 150 {\cyrillicC}
-\defineactivetoken 151 {\cyrillicCH}
-\defineactivetoken 152 {\cyrillicSH}
-\defineactivetoken 153 {\cyrillicSHCH}
-\defineactivetoken 154 {\cyrillicHRDSN}
-\defineactivetoken 155 {\cyrillicERY}
-\defineactivetoken 156 {\cyrillicSFTSN}
-\defineactivetoken 157 {\cyrillicEREV}
-\defineactivetoken 158 {\cyrillicYU}
-\defineactivetoken 159 {\cyrillicYA}
-\defineactivetoken 160 {\cyrillica}
-\defineactivetoken 161 {\cyrillicb}
-\defineactivetoken 162 {\cyrillicv}
-\defineactivetoken 163 {\cyrillicg}
-\defineactivetoken 164 {\cyrillicd}
-\defineactivetoken 165 {\cyrillice}
-\defineactivetoken 166 {\cyrilliczh}
-\defineactivetoken 167 {\cyrillicz}
-\defineactivetoken 168 {\cyrillici}
-\defineactivetoken 169 {\cyrillicishrt}
-\defineactivetoken 170 {\cyrillick}
-\defineactivetoken 171 {\cyrillicl}
-\defineactivetoken 172 {\cyrillicm}
-\defineactivetoken 173 {\cyrillicn}
-\defineactivetoken 174 {\cyrillico}
-\defineactivetoken 175 {\cyrillicp}
-\defineactivetoken 224 {\cyrillicr}
-\defineactivetoken 225 {\cyrillics}
-\defineactivetoken 226 {\cyrillict}
-\defineactivetoken 227 {\cyrillicu}
-\defineactivetoken 228 {\cyrillicf}
-\defineactivetoken 229 {\cyrillich}
-\defineactivetoken 230 {\cyrillicc}
-\defineactivetoken 231 {\cyrillicch}
-\defineactivetoken 232 {\cyrillicsh}
-\defineactivetoken 233 {\cyrillicshch}
-\defineactivetoken 234 {\cyrillichrdsn}
-\defineactivetoken 235 {\cyrillicery}
-\defineactivetoken 236 {\cyrillicsftsn}
-\defineactivetoken 237 {\cyrillicerev}
-\defineactivetoken 238 {\cyrillicyu}
-\defineactivetoken 239 {\cyrillicya}
-\defineactivetoken 240 {\cyrillicYO}
-\defineactivetoken 241 {\cyrillicyo}
-\defineactivetoken 242 {\cyrillicIE}
-\defineactivetoken 243 {\cyrillicie}
-\defineactivetoken 244 {\cyrillicYI}
-\defineactivetoken 245 {\cyrillicyi}
-\defineactivetoken 246 {\cyrillicUSHRT}
-\defineactivetoken 247 {\cyrillicushrt}
-\defineactivetoken 248 {\textdegree}
-\defineactivetoken 249 {\bullet}
-\defineactivetoken 250 {\periodcentered}
-\defineactivetoken 252 {\textnumero}
-\defineactivetoken 253 {\textcurrency}
-\defineactivetoken 254 {\textblacksquare}
-\defineactivetoken 255 {\nonbreakablespace}
-\defineactivetoken 251 {\textsurd}
-
-\stopregime
-
-\startregime[cp866nav]
-
-\defineactivetoken 128 {\cyrillicA}
-\defineactivetoken 129 {\cyrillicB}
-\defineactivetoken 130 {\cyrillicV}
-\defineactivetoken 131 {\cyrillicG}
-\defineactivetoken 132 {\cyrillicD}
-\defineactivetoken 133 {\cyrillicE}
-\defineactivetoken 134 {\cyrillicZH}
-\defineactivetoken 135 {\cyrillicZ}
-\defineactivetoken 136 {\cyrillicI}
-\defineactivetoken 137 {\cyrillicISHRT}
-\defineactivetoken 138 {\cyrillicK}
-\defineactivetoken 139 {\cyrillicL}
-\defineactivetoken 140 {\cyrillicM}
-\defineactivetoken 141 {\cyrillicN}
-\defineactivetoken 142 {\cyrillicO}
-\defineactivetoken 143 {\cyrillicP}
-\defineactivetoken 144 {\cyrillicR}
-\defineactivetoken 145 {\cyrillicS}
-\defineactivetoken 146 {\cyrillicT}
-\defineactivetoken 147 {\cyrillicU}
-\defineactivetoken 148 {\cyrillicF}
-\defineactivetoken 149 {\cyrillicH}
-\defineactivetoken 150 {\cyrillicC}
-\defineactivetoken 151 {\cyrillicCH}
-\defineactivetoken 152 {\cyrillicSH}
-\defineactivetoken 153 {\cyrillicSHCH}
-\defineactivetoken 154 {\cyrillicHRDSN}
-\defineactivetoken 155 {\cyrillicERY}
-\defineactivetoken 156 {\cyrillicSFTSN}
-\defineactivetoken 157 {\cyrillicEREV}
-\defineactivetoken 158 {\cyrillicYU}
-\defineactivetoken 159 {\cyrillicYA}
-\defineactivetoken 160 {\cyrillica}
-\defineactivetoken 161 {\cyrillicb}
-\defineactivetoken 162 {\cyrillicv}
-\defineactivetoken 163 {\cyrillicg}
-\defineactivetoken 164 {\cyrillicd}
-\defineactivetoken 165 {\cyrillice}
-\defineactivetoken 166 {\cyrilliczh}
-\defineactivetoken 167 {\cyrillicz}
-\defineactivetoken 168 {\cyrillici}
-\defineactivetoken 169 {\cyrillicishrt}
-\defineactivetoken 170 {\cyrillick}
-\defineactivetoken 171 {\cyrillicl}
-\defineactivetoken 172 {\cyrillicm}
-\defineactivetoken 173 {\cyrillicn}
-\defineactivetoken 174 {\cyrillico}
-\defineactivetoken 175 {\cyrillicp}
-\defineactivetoken 224 {\cyrillicr}
-\defineactivetoken 225 {\cyrillics}
-\defineactivetoken 226 {\cyrillict}
-\defineactivetoken 227 {\cyrillicu}
-\defineactivetoken 228 {\cyrillicf}
-\defineactivetoken 229 {\cyrillich}
-\defineactivetoken 230 {\cyrillicc}
-\defineactivetoken 231 {\cyrillicch}
-\defineactivetoken 232 {\cyrillicsh}
-\defineactivetoken 233 {\cyrillicshch}
-\defineactivetoken 234 {\cyrillichrdsn}
-\defineactivetoken 235 {\cyrillicery}
-\defineactivetoken 236 {\cyrillicsftsn}
-\defineactivetoken 237 {\cyrillicerev}
-\defineactivetoken 238 {\cyrillicyu}
-\defineactivetoken 239 {\cyrillicya}
-\defineactivetoken 240 {\cyrillicYO}
-\defineactivetoken 241 {\cyrillicyo}
-\defineactivetoken 242 {\cyrillicGUP}
-\defineactivetoken 243 {\cyrillicgup}
-\defineactivetoken 244 {\cyrillicIE}
-\defineactivetoken 245 {\cyrillicie}
-\defineactivetoken 246 {\cyrillicII}
-\defineactivetoken 247 {\cyrillicii}
-\defineactivetoken 248 {\cyrillicYI}
-\defineactivetoken 249 {\cyrillicyi}
-\defineactivetoken 250 {\cyrillicUSHRT}
-\defineactivetoken 251 {\cyrillicushrt}
-\defineactivetoken 252 {\textnumero}
-\defineactivetoken 253 {\leftguillemot}
-\defineactivetoken 254 {\rightguillemot}
-\defineactivetoken 255 {\nonbreakablespace}
-
-\stopregime
-
-\startregime[koi8-r]
-
-\defineactivetoken 225 {\cyrillicA}
-\defineactivetoken 226 {\cyrillicB}
-\defineactivetoken 247 {\cyrillicV}
-\defineactivetoken 231 {\cyrillicG}
-\defineactivetoken 228 {\cyrillicD}
-\defineactivetoken 229 {\cyrillicE}
-\defineactivetoken 179 {\cyrillicYO}
-\defineactivetoken 246 {\cyrillicZH}
-\defineactivetoken 250 {\cyrillicZ}
-\defineactivetoken 233 {\cyrillicI}
-\defineactivetoken 234 {\cyrillicISHRT}
-\defineactivetoken 235 {\cyrillicK}
-\defineactivetoken 236 {\cyrillicL}
-\defineactivetoken 237 {\cyrillicM}
-\defineactivetoken 238 {\cyrillicN}
-\defineactivetoken 239 {\cyrillicO}
-\defineactivetoken 240 {\cyrillicP}
-\defineactivetoken 242 {\cyrillicR}
-\defineactivetoken 243 {\cyrillicS}
-\defineactivetoken 244 {\cyrillicT}
-\defineactivetoken 245 {\cyrillicU}
-\defineactivetoken 230 {\cyrillicF}
-\defineactivetoken 232 {\cyrillicH}
-\defineactivetoken 227 {\cyrillicC}
-\defineactivetoken 254 {\cyrillicCH}
-\defineactivetoken 251 {\cyrillicSH}
-\defineactivetoken 253 {\cyrillicSHCH}
-\defineactivetoken 255 {\cyrillicHRDSN}
-\defineactivetoken 249 {\cyrillicERY}
-\defineactivetoken 248 {\cyrillicSFTSN}
-\defineactivetoken 252 {\cyrillicEREV}
-\defineactivetoken 224 {\cyrillicYU}
-\defineactivetoken 241 {\cyrillicYA}
-\defineactivetoken 193 {\cyrillica}
-\defineactivetoken 194 {\cyrillicb}
-\defineactivetoken 215 {\cyrillicv}
-\defineactivetoken 199 {\cyrillicg}
-\defineactivetoken 196 {\cyrillicd}
-\defineactivetoken 197 {\cyrillice}
-\defineactivetoken 163 {\cyrillicyo}
-\defineactivetoken 214 {\cyrilliczh}
-\defineactivetoken 218 {\cyrillicz}
-\defineactivetoken 201 {\cyrillici}
-\defineactivetoken 202 {\cyrillicishrt}
-\defineactivetoken 203 {\cyrillick}
-\defineactivetoken 204 {\cyrillicl}
-\defineactivetoken 205 {\cyrillicm}
-\defineactivetoken 206 {\cyrillicn}
-\defineactivetoken 207 {\cyrillico}
-\defineactivetoken 208 {\cyrillicp}
-\defineactivetoken 210 {\cyrillicr}
-\defineactivetoken 211 {\cyrillics}
-\defineactivetoken 212 {\cyrillict}
-\defineactivetoken 213 {\cyrillicu}
-\defineactivetoken 198 {\cyrillicf}
-\defineactivetoken 200 {\cyrillich}
-\defineactivetoken 195 {\cyrillicc}
-\defineactivetoken 222 {\cyrillicch}
-\defineactivetoken 219 {\cyrillicsh}
-\defineactivetoken 221 {\cyrillicshch}
-\defineactivetoken 223 {\cyrillichrdsn}
-\defineactivetoken 217 {\cyrillicery}
-\defineactivetoken 216 {\cyrillicsftsn}
-\defineactivetoken 220 {\cyrillicerev}
-\defineactivetoken 192 {\cyrillicyu}
-\defineactivetoken 209 {\cyrillicya}
-\defineactivetoken 148 {\textblacksquare}
-\defineactivetoken 149 {\textbullet}
-\defineactivetoken 154 {\nonbreakablespace}
-\defineactivetoken 156 {\textdegree}
-\defineactivetoken 158 {\periodcentered}
-\defineactivetoken 191 {\copyright}
-\defineactivetoken 150 {\textsurd}
-\defineactivetoken 151 {\mathematics\sim}
-\defineactivetoken 152 {\mathematics\leq}
-\defineactivetoken 153 {\mathematics\geq}
-\defineactivetoken 157 {\twosuperior}
-\defineactivetoken 159 {\textdiv}
-
-\stopregime
-
-\startregime[koi8-ru]
-
-\defineactivetoken 225 {\cyrillicA}
-\defineactivetoken 226 {\cyrillicB}
-\defineactivetoken 247 {\cyrillicV}
-\defineactivetoken 231 {\cyrillicG}
-\defineactivetoken 228 {\cyrillicD}
-\defineactivetoken 229 {\cyrillicE}
-\defineactivetoken 179 {\cyrillicYO}
-\defineactivetoken 246 {\cyrillicZH}
-\defineactivetoken 250 {\cyrillicZ}
-\defineactivetoken 233 {\cyrillicI}
-\defineactivetoken 234 {\cyrillicISHRT}
-\defineactivetoken 235 {\cyrillicK}
-\defineactivetoken 236 {\cyrillicL}
-\defineactivetoken 237 {\cyrillicM}
-\defineactivetoken 238 {\cyrillicN}
-\defineactivetoken 239 {\cyrillicO}
-\defineactivetoken 240 {\cyrillicP}
-\defineactivetoken 242 {\cyrillicR}
-\defineactivetoken 243 {\cyrillicS}
-\defineactivetoken 244 {\cyrillicT}
-\defineactivetoken 245 {\cyrillicU}
-\defineactivetoken 230 {\cyrillicF}
-\defineactivetoken 232 {\cyrillicH}
-\defineactivetoken 227 {\cyrillicC}
-\defineactivetoken 254 {\cyrillicCH}
-\defineactivetoken 251 {\cyrillicSH}
-\defineactivetoken 253 {\cyrillicSHCH}
-\defineactivetoken 255 {\cyrillicHRDSN}
-\defineactivetoken 249 {\cyrillicERY}
-\defineactivetoken 248 {\cyrillicSFTSN}
-\defineactivetoken 252 {\cyrillicEREV}
-\defineactivetoken 224 {\cyrillicYU}
-\defineactivetoken 241 {\cyrillicYA}
-\defineactivetoken 193 {\cyrillica}
-\defineactivetoken 194 {\cyrillicb}
-\defineactivetoken 215 {\cyrillicv}
-\defineactivetoken 199 {\cyrillicg}
-\defineactivetoken 196 {\cyrillicd}
-\defineactivetoken 197 {\cyrillice}
-\defineactivetoken 163 {\cyrillicyo}
-\defineactivetoken 214 {\cyrilliczh}
-\defineactivetoken 218 {\cyrillicz}
-\defineactivetoken 201 {\cyrillici}
-\defineactivetoken 202 {\cyrillicishrt}
-\defineactivetoken 203 {\cyrillick}
-\defineactivetoken 204 {\cyrillicl}
-\defineactivetoken 205 {\cyrillicm}
-\defineactivetoken 206 {\cyrillicn}
-\defineactivetoken 207 {\cyrillico}
-\defineactivetoken 208 {\cyrillicp}
-\defineactivetoken 210 {\cyrillicr}
-\defineactivetoken 211 {\cyrillics}
-\defineactivetoken 212 {\cyrillict}
-\defineactivetoken 213 {\cyrillicu}
-\defineactivetoken 198 {\cyrillicf}
-\defineactivetoken 200 {\cyrillich}
-\defineactivetoken 195 {\cyrillicc}
-\defineactivetoken 222 {\cyrillicch}
-\defineactivetoken 219 {\cyrillicsh}
-\defineactivetoken 221 {\cyrillicshch}
-\defineactivetoken 223 {\cyrillichrdsn}
-\defineactivetoken 217 {\cyrillicery}
-\defineactivetoken 216 {\cyrillicsftsn}
-\defineactivetoken 220 {\cyrillicerev}
-\defineactivetoken 192 {\cyrillicyu}
-\defineactivetoken 209 {\cyrillicya}
-\defineactivetoken 147 {\upperleftsinglesixquote}
-\defineactivetoken 148 {\textblacksquare}
-\defineactivetoken 149 {\textbullet} % Changed by V.F. 07/02/2003 (was: \bullet)
-\defineactivetoken 150 {\upperrightdoubleninequote}
-\defineactivetoken 151 {\emdash}
-\defineactivetoken 152 {\textnumero}
-\defineactivetoken 153 {\trademark} % Changed by V.F. 07/02/2003 (was: \texttrademark)
-\defineactivetoken 154 {\nonbreakablespace}
-\defineactivetoken 155 {\rightguillemot}
-\defineactivetoken 156 {\registered}
-\defineactivetoken 157 {\leftguillemot}
-\defineactivetoken 158 {\periodcentered} % Changed by V.F. 07/02/2003 (was: \textperiodcentered)
-\defineactivetoken 159 {\textcurrency}
-\defineactivetoken 164 {\cyrillicie}
-\defineactivetoken 166 {\cyrillicii}
-\defineactivetoken 167 {\cyrillicyi}
-\defineactivetoken 173 {\cyrillicgup}
-\defineactivetoken 174 {\cyrillicushrt}
-\defineactivetoken 180 {\cyrillicIE}
-\defineactivetoken 182 {\cyrillicII}
-\defineactivetoken 183 {\cyrillicYI}
-\defineactivetoken 189 {\cyrillicGUP}
-\defineactivetoken 190 {\cyrillicUSHRT}
-\defineactivetoken 191 {\copyright}
-
-\stopregime
-
-\startregime[koi8-u]
-
-\defineactivetoken 225 {\cyrillicA}
-\defineactivetoken 226 {\cyrillicB}
-\defineactivetoken 247 {\cyrillicV}
-\defineactivetoken 231 {\cyrillicG}
-\defineactivetoken 228 {\cyrillicD}
-\defineactivetoken 229 {\cyrillicE}
-\defineactivetoken 179 {\cyrillicYO}
-\defineactivetoken 246 {\cyrillicZH}
-\defineactivetoken 250 {\cyrillicZ}
-\defineactivetoken 233 {\cyrillicI}
-\defineactivetoken 234 {\cyrillicISHRT}
-\defineactivetoken 235 {\cyrillicK}
-\defineactivetoken 236 {\cyrillicL}
-\defineactivetoken 237 {\cyrillicM}
-\defineactivetoken 238 {\cyrillicN}
-\defineactivetoken 239 {\cyrillicO}
-\defineactivetoken 240 {\cyrillicP}
-\defineactivetoken 242 {\cyrillicR}
-\defineactivetoken 243 {\cyrillicS}
-\defineactivetoken 244 {\cyrillicT}
-\defineactivetoken 245 {\cyrillicU}
-\defineactivetoken 230 {\cyrillicF}
-\defineactivetoken 232 {\cyrillicH}
-\defineactivetoken 227 {\cyrillicC}
-\defineactivetoken 254 {\cyrillicCH}
-\defineactivetoken 251 {\cyrillicSH}
-\defineactivetoken 253 {\cyrillicSHCH}
-\defineactivetoken 255 {\cyrillicHRDSN}
-\defineactivetoken 249 {\cyrillicERY}
-\defineactivetoken 248 {\cyrillicSFTSN}
-\defineactivetoken 252 {\cyrillicEREV}
-\defineactivetoken 224 {\cyrillicYU}
-\defineactivetoken 241 {\cyrillicYA}
-\defineactivetoken 193 {\cyrillica}
-\defineactivetoken 194 {\cyrillicb}
-\defineactivetoken 215 {\cyrillicv}
-\defineactivetoken 199 {\cyrillicg}
-\defineactivetoken 196 {\cyrillicd}
-\defineactivetoken 197 {\cyrillice}
-\defineactivetoken 163 {\cyrillicyo}
-\defineactivetoken 214 {\cyrilliczh}
-\defineactivetoken 218 {\cyrillicz}
-\defineactivetoken 201 {\cyrillici}
-\defineactivetoken 202 {\cyrillicishrt}
-\defineactivetoken 203 {\cyrillick}
-\defineactivetoken 204 {\cyrillicl}
-\defineactivetoken 205 {\cyrillicm}
-\defineactivetoken 206 {\cyrillicn}
-\defineactivetoken 207 {\cyrillico}
-\defineactivetoken 208 {\cyrillicp}
-\defineactivetoken 210 {\cyrillicr}
-\defineactivetoken 211 {\cyrillics}
-\defineactivetoken 212 {\cyrillict}
-\defineactivetoken 213 {\cyrillicu}
-\defineactivetoken 198 {\cyrillicf}
-\defineactivetoken 200 {\cyrillich}
-\defineactivetoken 195 {\cyrillicc}
-\defineactivetoken 222 {\cyrillicch}
-\defineactivetoken 219 {\cyrillicsh}
-\defineactivetoken 221 {\cyrillicshch}
-\defineactivetoken 223 {\cyrillichrdsn}
-\defineactivetoken 217 {\cyrillicery}
-\defineactivetoken 216 {\cyrillicsftsn}
-\defineactivetoken 220 {\cyrillicerev}
-\defineactivetoken 192 {\cyrillicyu}
-\defineactivetoken 209 {\cyrillicya}
-\defineactivetoken 164 {\cyrillicie}
-\defineactivetoken 166 {\cyrillicii}
-\defineactivetoken 167 {\cyrillicyi}
-\defineactivetoken 173 {\cyrillicgup}
-\defineactivetoken 180 {\cyrillicIE}
-\defineactivetoken 182 {\cyrillicII}
-\defineactivetoken 183 {\cyrillicYI}
-\defineactivetoken 189 {\cyrillicGUP}
-
-\stopregime
-
-\startregime[maccyr]
-
-\defineactivetoken 128 {\cyrillicA}
-\defineactivetoken 129 {\cyrillicB}
-\defineactivetoken 130 {\cyrillicV}
-\defineactivetoken 131 {\cyrillicG}
-\defineactivetoken 132 {\cyrillicD}
-\defineactivetoken 133 {\cyrillicE}
-\defineactivetoken 134 {\cyrillicZH}
-\defineactivetoken 135 {\cyrillicZ}
-\defineactivetoken 136 {\cyrillicI}
-\defineactivetoken 137 {\cyrillicISHRT}
-\defineactivetoken 138 {\cyrillicK}
-\defineactivetoken 139 {\cyrillicL}
-\defineactivetoken 140 {\cyrillicM}
-\defineactivetoken 141 {\cyrillicN}
-\defineactivetoken 142 {\cyrillicO}
-\defineactivetoken 143 {\cyrillicP}
-\defineactivetoken 144 {\cyrillicR}
-\defineactivetoken 145 {\cyrillicS}
-\defineactivetoken 146 {\cyrillicT}
-\defineactivetoken 147 {\cyrillicU}
-\defineactivetoken 148 {\cyrillicF}
-\defineactivetoken 149 {\cyrillicH}
-\defineactivetoken 150 {\cyrillicC}
-\defineactivetoken 151 {\cyrillicCH}
-\defineactivetoken 152 {\cyrillicSH}
-\defineactivetoken 153 {\cyrillicSHCH}
-\defineactivetoken 154 {\cyrillicHRDSN}
-\defineactivetoken 155 {\cyrillicERY}
-\defineactivetoken 156 {\cyrillicSFTSN}
-\defineactivetoken 157 {\cyrillicEREV}
-\defineactivetoken 158 {\cyrillicYU}
-\defineactivetoken 159 {\cyrillicYA}
-\defineactivetoken 160 {\textdag} % Changed by V.F. 07/02/2003 (was: dag)
-\defineactivetoken 161 {\textdegree}
-\defineactivetoken 162 {\textcent}
-\defineactivetoken 163 {\textsterling} % Changed by V.F. 07/02/2003 (was: \sterling)
-\defineactivetoken 164 {\sectionmark} % Changed by V.F. 07/02/2003 (was: \S)
-\defineactivetoken 165 {\textbullet} % Changed by V.F. 07/02/2003 (was: \bullet}
-\defineactivetoken 166 {\paragraphmark} % Changed by V.F. 07/02/2003 (was: \P)
-\defineactivetoken 167 {\cyrillicII}
-\defineactivetoken 168 {\registered}
-\defineactivetoken 169 {\copyright}
-\defineactivetoken 170 {\trademark} % Changed by V.F. 07/02/2003 (was: \texttrademark}
-\defineactivetoken 171 {\cyrillicDJE}
-\defineactivetoken 172 {\cyrillicdje}
-\defineactivetoken 174 {\'\cyrillicG}
-\defineactivetoken 175 {\'\cyrillicg}
-\defineactivetoken 180 {\cyrillicii}
-\defineactivetoken 183 {\cyrillicJE}
-\defineactivetoken 184 {\cyrillicIE}
-\defineactivetoken 185 {\cyrillicie}
-\defineactivetoken 186 {\cyrillicYI}
-\defineactivetoken 187 {\cyrillicyi}
-\defineactivetoken 188 {\cyrillicLJE}
-\defineactivetoken 189 {\cyrilliclje}
-\defineactivetoken 190 {\cyrillicNJE}
-\defineactivetoken 191 {\cyrillicnje}
-\defineactivetoken 192 {\cyrillicje}
-\defineactivetoken 193 {\cyrillicDZE}
-\defineactivetoken 196 {\textflorin} % Changed by V.F. 07/02/2003 (was: \florijn)
-\defineactivetoken 199 {\leftguillemot}
-\defineactivetoken 200 {\rightguillemot}
-\defineactivetoken 201 {\textellipsis} % Changed by V.F. 07/02/2003 (was: \dots)
-\defineactivetoken 202 {\nonbreakablespace}
-\defineactivetoken 203 {\cyrillicTSHE}
-\defineactivetoken 204 {\cyrillictshe}
-\defineactivetoken 205 {\'\cyrillicK}
-\defineactivetoken 206 {\'\cyrillick}
-\defineactivetoken 207 {\cyrillicdze}
-\defineactivetoken 208 {\endash}
-\defineactivetoken 209 {\emdash}
-\defineactivetoken 210 {\upperleftdoublesixquote} % Changed by V.F. 07/02/2003
- % (was: \upperleftsinglesixquote)
-\defineactivetoken 211 {\upperrightdoubleninequote}
-\defineactivetoken 212 {\upperleftsinglesixquote}
-\defineactivetoken 213 {\upperrightsingleninequote}
-\defineactivetoken 215 {\lowerleftdoubleninequote}
-\defineactivetoken 216 {\cyrillicUSHRT}
-\defineactivetoken 217 {\cyrillicushrt}
-\defineactivetoken 218 {\cyrillicDZHE}
-\defineactivetoken 219 {\cyrillicdzhe}
-\defineactivetoken 220 {\textnumero}
-\defineactivetoken 221 {\cyrillicYO}
-\defineactivetoken 222 {\cyrillicyo}
-\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 {\textcurrency}
-\defineactivetoken 173 {\mathematics{\neq}} % Added by V.F. 07/02/2003
-\defineactivetoken 176 {\mathematics{\infty}} % Added by V.F. 07/02/2003
-\defineactivetoken 177 {\textpm} % Added by V.F. 07/02/2003
-\defineactivetoken 178 {\mathematics{\leq}} % Added by V.F. 07/02/2003
-\defineactivetoken 179 {\mathematics{\geq}} % Added by V.F. 07/02/2003
-\defineactivetoken 181 {\textmu} % Added by V.F. 07/02/2003
-\defineactivetoken 182 {\mathematics{\partial}} % Added by V.F. 07/02/2003
-\defineactivetoken 194 {\textlognot} % Added by V.F. 07/02/2003
-\defineactivetoken 195 {\textsurd} % Added by V.F. 07/02/2003
-\defineactivetoken 197 {\mathematics{\approx}} % Added by V.F. 07/02/2003
-\defineactivetoken 198 {\mathematics{\Delta}} % Added by V.F. 07/02/2003
-\defineactivetoken 214 {\textdiv} % Added by V.F. 07/02/2003
-
-\stopregime
-
-\startregime[macukr]
-
-\defineactivetoken 128 {\cyrillicA}
-\defineactivetoken 129 {\cyrillicB}
-\defineactivetoken 130 {\cyrillicV}
-\defineactivetoken 131 {\cyrillicG}
-\defineactivetoken 132 {\cyrillicD}
-\defineactivetoken 133 {\cyrillicE}
-\defineactivetoken 134 {\cyrillicZH}
-\defineactivetoken 135 {\cyrillicZ}
-\defineactivetoken 136 {\cyrillicI}
-\defineactivetoken 137 {\cyrillicISHRT}
-\defineactivetoken 138 {\cyrillicK}
-\defineactivetoken 139 {\cyrillicL}
-\defineactivetoken 140 {\cyrillicM}
-\defineactivetoken 141 {\cyrillicN}
-\defineactivetoken 142 {\cyrillicO}
-\defineactivetoken 143 {\cyrillicP}
-\defineactivetoken 144 {\cyrillicR}
-\defineactivetoken 145 {\cyrillicS}
-\defineactivetoken 146 {\cyrillicT}
-\defineactivetoken 147 {\cyrillicU}
-\defineactivetoken 148 {\cyrillicF}
-\defineactivetoken 149 {\cyrillicH}
-\defineactivetoken 150 {\cyrillicC}
-\defineactivetoken 151 {\cyrillicCH}
-\defineactivetoken 152 {\cyrillicSH}
-\defineactivetoken 153 {\cyrillicSHCH}
-\defineactivetoken 154 {\cyrillicHRDSN}
-\defineactivetoken 155 {\cyrillicERY}
-\defineactivetoken 156 {\cyrillicSFTSN}
-\defineactivetoken 157 {\cyrillicEREV}
-\defineactivetoken 158 {\cyrillicYU}
-\defineactivetoken 159 {\cyrillicYA}
-\defineactivetoken 160 {\textdag} % Changed by V.F. 07/02/2003 (was: \dag)
-\defineactivetoken 161 {\textdegree}
-\defineactivetoken 162 {\cyrillicGUP}
-\defineactivetoken 163 {\textsterling} % Changed by V.F. 07/02/2003 (was: \sterling)
-\defineactivetoken 164 {\sectionmark} % Changed by V.F. 07/02/2003 (was: \S)
-\defineactivetoken 165 {\textbullet} % Changed by V.F. 07/02/2003 (was: \bullet}
-\defineactivetoken 166 {\paragraphmark} % Changed by V.F. 07/02/2003 (was: \P)
-\defineactivetoken 167 {\cyrillicII}
-\defineactivetoken 168 {\registered}
-\defineactivetoken 169 {\copyright}
-\defineactivetoken 170 {\trademark} % Changed by V.F. 07/02/2003 (was: \texttrademark}
-\defineactivetoken 171 {\cyrillicDJE}
-\defineactivetoken 172 {\cyrillicdje}
-\defineactivetoken 174 {\'\cyrillicG}
-\defineactivetoken 175 {\'\cyrillicg}
-\defineactivetoken 180 {\cyrillicii}
-\defineactivetoken 182 {\cyrillicgup}
-\defineactivetoken 183 {\cyrillicJE}
-\defineactivetoken 184 {\cyrillicIE}
-\defineactivetoken 185 {\cyrillicie}
-\defineactivetoken 186 {\cyrillicYI}
-\defineactivetoken 187 {\cyrillicyi}
-\defineactivetoken 188 {\cyrillicLJE}
-\defineactivetoken 189 {\cyrilliclje}
-\defineactivetoken 190 {\cyrillicNJE}
-\defineactivetoken 191 {\cyrillicnje}
-\defineactivetoken 192 {\cyrillicje}
-\defineactivetoken 193 {\cyrillicDZE}
-\defineactivetoken 196 {\textflorin} % Changed by V.F. 07/02/2003 (was: \florijn)
-\defineactivetoken 199 {\leftguillemot}
-\defineactivetoken 200 {\rightguillemot}
-\defineactivetoken 201 {\textellipsis} % Changed by V.F. 07/02/2003 (was: \dots)
-\defineactivetoken 202 {\nonbreakablespace}
-\defineactivetoken 203 {\cyrillicTSHE}
-\defineactivetoken 204 {\cyrillictshe}
-\defineactivetoken 205 {\'\cyrillicK}
-\defineactivetoken 206 {\'\cyrillick}
-\defineactivetoken 207 {\cyrillicdze}
-\defineactivetoken 208 {\endash}
-\defineactivetoken 209 {\emdash}
-\defineactivetoken 210 {\upperleftdoublesixquote} % Changed by V.F. 07/02/2003
- % (was: \upperleftsinglesixquote)
-\defineactivetoken 211 {\upperrightdoubleninequote}
-\defineactivetoken 212 {\upperleftsinglesixquote}
-\defineactivetoken 213 {\upperrightsingleninequote}
-\defineactivetoken 215 {\lowerleftdoubleninequote}
-\defineactivetoken 216 {\cyrillicUSHRT}
-\defineactivetoken 217 {\cyrillicushrt}
-\defineactivetoken 218 {\cyrillicDZHE}
-\defineactivetoken 219 {\cyrillicdzhe}
-\defineactivetoken 220 {\textnumero}
-\defineactivetoken 221 {\cyrillicYO}
-\defineactivetoken 222 {\cyrillicyo}
-\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 {\textcurrency}
-\defineactivetoken 173 {\mathematics{\neq}} % Added by V.F. 07/02/2003
-\defineactivetoken 176 {\mathematics{\infty}} % Added by V.F. 07/02/2003
-\defineactivetoken 177 {\textpm} % Added by V.F. 07/02/2003
-\defineactivetoken 178 {\mathematics{\leq}} % Added by V.F. 07/02/2003
-\defineactivetoken 179 {\mathematics{\geq}} % Added by V.F. 07/02/2003
-\defineactivetoken 181 {\textmu} % Added by V.F. 07/02/2003
-\defineactivetoken 194 {\textlognot} % Added by V.F. 07/02/2003
-\defineactivetoken 195 {\textsurd} % Added by V.F. 07/02/2003
-\defineactivetoken 197 {\mathematics{\approx}} % Added by V.F. 07/02/2003
-\defineactivetoken 198 {\mathematics{\Delta}} % Added by V.F. 07/02/2003
-\defineactivetoken 214 {\textdiv} % Added by V.F. 07/02/2003
-
-\stopregime
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/regi-def.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-def.mkii
deleted file mode 100644
index 3af0c9d3c5d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-def.mkii
+++ /dev/null
@@ -1,21 +0,0 @@
-%D \module
-%D [ file=regi-def,
-%D version=2000.20.12, % split from less verbose base file
-%D title=\CONTEXT\ Regime Macros,
-%D subtitle=Default Character Definitions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\startregime[default]
-
-\dostepwiserecurse{128}{255}{1}
- {\expanded{\defineactivetoken\recurselevel\space{\rawcharacter\recurselevel}}}%
-
-\stopregime
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/regi-ibm.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-ibm.mkii
deleted file mode 100644
index 5756e77054f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-ibm.mkii
+++ /dev/null
@@ -1,73 +0,0 @@
-%D \module
-%D [ file=regi-ibm,
-%D version=1995.01.01,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=The Good Old MSDOS IBM codepage,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module activates the \cap{IBM PC} high \ASCII\
-%D characters, such as and .
-
-\startregime [ibm]
-
-\defineactivetoken 145 {\aeligature} %
-\defineactivetoken 146 {\AEligature} %
-\defineactivetoken 152 {\ijligature} %
-
-\defineactivetoken 225 {\ssharp} %
-
-\defineactivetoken 160 {\aacute} %
-\defineactivetoken 130 {\eacute} %
-\defineactivetoken 144 {\Eacute} %
-\defineactivetoken 161 {\iacute} %
-\defineactivetoken 162 {\oacute} %
-\defineactivetoken 163 {\uacute} %
-
-\defineactivetoken 135 {\ccedilla} %
-\defineactivetoken 128 {\Ccedilla} %
-
-\defineactivetoken 132 {\adiaeresis} %
-\defineactivetoken 142 {\Adiaeresis} %
-\defineactivetoken 137 {\ediaeresis} %
-\defineactivetoken 139 {\idiaeresis} %
-\defineactivetoken 148 {\odiaeresis} %
-\defineactivetoken 153 {\Odiaeresis} %
-\defineactivetoken 129 {\udiaeresis} %
-\defineactivetoken 154 {\Udiaeresis} %
-
-\defineactivetoken 164 {\ntilde} %
-\defineactivetoken 165 {\Ntilde} %
-
-\defineactivetoken 134 {\aring} %
-\defineactivetoken 143 {\Aring} %
-
-\defineactivetoken 131 {\acircumflex} %
-\defineactivetoken 136 {\ecircumflex} %
-\defineactivetoken 140 {\icircumflex} %
-\defineactivetoken 147 {\ocircumflex} %
-\defineactivetoken 150 {\ucircumflex} %
-
-\defineactivetoken 133 {\agrave} %
-\defineactivetoken 138 {\egrave} %
-\defineactivetoken 141 {\igrave} %
-\defineactivetoken 149 {\ograve} %
-\defineactivetoken 151 {\ugrave} %
-
-\stopregime
-
-% todo
-
-\startregime [ibm]
-
-\defineactivetoken {\ifvmode\leavevmode\fi\leftguillemot\prewordbreak}
-\defineactivetoken {\prewordbreak\rightguillemot}
-
-\stopregime
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/regi-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-ini.mkii
deleted file mode 100644
index 1122ce18ac9..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-ini.mkii
+++ /dev/null
@@ -1,248 +0,0 @@
-%D \module
-%D [ file=regi-ini,
-%D version=2000.12.27, % 1998.12.03,
-%D title=\CONTEXT\ Regime Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-%D Remark: regimes accumulate, so there is no explicit reset in
-%D mkii mode.
-
-%D Variables.
-
-\def\@reg@{@r@eg@} % regime prefix
-
-%D \macros
-%D {currentregime}
-
-\let\currentregime\empty
-\let\defaultregime\s!default
-
-%D Some low level inheritance stuff (mkii).
-
-\def\doautosetregime#1#2%
- {\ifnum#2>127
- \expanded{\defineactivetoken #2 \@EA\noexpand\csname#1\endcsname}%
- \fi}
-
-%D \macros
-%D {startregime}
-%D
-%D Sometimes it makes sense to activate the characters in the
-%D upper half of the character table. Such a bundle of
-%D characters can be packages in a regime. Later we will see
-%D encodings (that links characters slots to glyphs) and
-%D mappings (that take care of hyphenation and case changes).
-%D
-%D When character~231 is of category code letter, it
-%D directly maps to glyph~231 (unless of course some virtual
-%D font is used). By making character~231 active, we can map
-%D it onto for instance the glyph in slot 233. This mapping
-%D can in itself be indirect, in the sense that it is for
-%D instance handled by an accent command.
-%D
-%D Regimes are implemented roughly the same as mappings, but
-%D enabled under different circumstances. In the future, the
-%D low level implementation may change.
-
-\def\startregime[#1]%
- {\pushmacro\currentregime
- \edef\currentregime{#1}%
- \checkregimetoks}
-
-\def\checkregimetoks
- {\doifundefined{\@reg@\currentregime}
- {\@EA\newtoks\csname\@reg@\currentregime\endcsname}}
-
-\def\stopregime
- {\popmacro\currentregime}
-
-\def\setregimetoks
- {\checkregimetoks
- \@EA\let\@EA\regimetoks\csname\@reg@\currentregime\endcsname}
-
-%D \macros
-%D {defineactivedecimal, defineactivedecimals, defineactivetoken}
-%D
-%D The following commands are rather ugly ones. It makes a
-%D character active and assigns it a value. When expanded,
-%D the decimal number of the character is passed as first
-%D argument.
-%D
-%D \starttyping
-%D \def\decimalcharacter#1{\message{#1 is now active}}
-%D
-%D \defineactivedecimal 122 {\decimalcharacter}
-%D
-%D \defineactivedecimals 128 to 255 as {\decimalcharacter}
-%D \stoptyping
-%D
-%D This command is typically used in coding definitions,
-%D like the \UNICODE\ one.
-
-\def\dodefineactivedecimal#1#2% \unexpanded ? pdfdoc encoding
- {\catcode#1\active
- \scratchcounter\uccode\activehackcode
- \uccode\activehackcode#1\relax
- \uppercase{\unexpanded\edef~{\noexpand#2{\number#1}}}%
- \uccode\activehackcode\scratchcounter}
-
-\long\def\defineactivedecimal#1 #2 %
- {\setregimetoks
- \regimetoks\expandafter{\the\regimetoks\dodefineactivedecimal{#1}{#2}}}
-
-\long\def\defineactivedecimals#1 to #2 as #3 %
- {\setregimetoks
- \dostepwiserecurse{#1}{#2}\plusone
- {\regimetoks\@EA\@EA\@EA{\@EA\the\@EA\regimetoks\@EA\dodefineactivedecimal\@EA{\recurselevel}{#3}}}}
-
-\def\doexpandactivedecimal#1%
- {\ifnum#1>\scratchcounter
- \expandafter\gobbletwoarguments
- \else
- \noexpand\dodefineactivedecimal{#1}{\the\scratchtoks}%
- \expandafter\expandafter\expandafter\doexpandactivedecimal\expandafter
- \fi\expandafter{\the\numexpr#1+\plusone\relax}}
-
-\long\def\defineactivedecimals#1 to #2 as #3 %
- {\setregimetoks
- \scratchcounter#2\relax
- \scratchtoks{#3}%
- \expanded{\regimetoks{\the\regimetoks\doexpandactivedecimal{#1}}}%
- \ignorespaces}
-
-\long\def\defineactivetoken #1 #2% no {} after #2, else no kern
- {\setregimetoks
- \regimetoks\expandafter{\the\regimetoks\defineactivecharacter#1 {#2}}}
-
-\long\def\defineactiveinspector #1 #2% watch the missing {}
- {\setregimetoks
- \regimetoks\expandafter{\the\regimetoks\defineactivecharacter#1 {#2}}}
-
-%D \macros
-%D {defineregimesynonym,trueregimename}
-
-\def\defineregimesynonym
- {\dodoubleargument\dodefineregimesynonym}
-
-\def\dodefineregimesynonym[#1][#2]%
- {\setevalue{\@reg@:s:#1}{#2}}
-
-\def\trueregimename#1%
- {\executeifdefined{\@reg@:s:#1}{#1}}
-
-%D \macros
-%D {useregime}
-
-\def\useregime[#1]%
- {\processcommalist[#1]\douseregime}
-
-\def\douseregime#1%
- {\doifundefined{\c!file\f!regimeprefix#1}%
- {\letgvalue{\c!file\f!regimeprefix#1}\empty
- \makeshortfilename[\truefilename{\f!regimeprefix#1}]%
- \startreadingfile
- \readsysfile{\shortfilename.mkii}
- {\showmessage\m!regimes2{#1}}
- {\showmessage\m!regimes3{#1}}%
- \stopreadingfile}}
-
-%D \macros
-%D {enableregime,disableregime}
-
-\let\enabledregime\empty
-
-\def\enableregime[#1]%
- {\edef\currentregime{\trueregimename{#1}}%
- \doifelsenothing\currentregime
- {\disableregime}
- {\douseregime\currentregime
- \the\executeifdefined{\@reg@\currentregime}\emptytoks}}
-
-\def\disableregime
- {\let\currentregime\empty}
-
-%D \macros
-%D {protectregime, settoletterunlessactive, settocodeunlessactive}
-%D
-%D The next boolean is used later on to prevent unwanted
-%D catcode changes. Use it with care.
-
-\newif\ifprotectregime \protectregimetrue
-
-\def\settoletterunlessactive#1%
- {\ifprotectregime\ifnum\catcode#1=\active\else
- \catcode#1\@@letter
- \fi\else
- \catcode#1\@@letter
- \fi}
-
-\def\settootherunlessactive#1%
- {\ifprotectregime\ifnum\catcode#1=\active\else
- \catcode#1=\@@other
- \fi\else
- \catcode#1=\@@other
- \fi}
-
-\def\settocodeunlessactive#1#2%
- {\ifprotectregime\ifnum\catcode#1=\active\else
- \catcode#1=#2\relax
- \fi\else
- \catcode#1=#2\relax
- \fi}
-
-%D Goodie:
-
-\def\showregime[#1]%
- {\doifnot{#1}{utf}
- {\bgroup
- \enableregime[#1]%
- \starttabulate[|l|l|l|]
- \dostepwiserecurse{128}{255}{1}
- {\expanded
- {\scantokens
- {\NC \recurselevel
- \NC \rawcharacter\recurselevel
- \NC \noexpand\tttf
- \noexpand\meaning\rawcharacter\recurselevel \NC \NR}}}%
- \stoptabulate
- \unskip
- \egroup}}
-
-%D Sort related:
-
-\def\dowalkregime#1%
- {\the\executeifdefined{\@reg@#1}\emptytoks}
-
-%D Simplify matters for \XETEX.
-
-\ifnum\texengine=\xetexengine
-
- \def\enableregime[#1]%
- {\doifelse{#1}{utf}%
- {\writestatus\m!regimes{mapping utf to utf-8}%
- \XeTeXinputencoding{utf-8}}
- {\XeTeXinputencoding{#1}}}
-
- \def\disableregime
- {\XeTeXinputencoding{utf-8}}
-
- \def\loadregime[#1]{}
- \let\walkregime \gobbleoneargument
- \let\doautosetregime \gobbletwoarguments
-
-\else
-
- \useregime[def,uni,utf] % we load the rest runtime
-
-\fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/regi-mac.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-mac.mkii
deleted file mode 100644
index 30f57ab18cb..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-mac.mkii
+++ /dev/null
@@ -1,147 +0,0 @@
-%D \module
-%D [ file=regi-mac,
-%D version=2001.03.18,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Mac Encoding,
-%D author={Michel Bovani \& Adam Lindsay \& Hans Hagen},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\startregime [mac]
-
-\defineactivetoken 128 {\Adiaeresis}
-\defineactivetoken 129 {\Aring}
-\defineactivetoken 130 {\Ccedilla}
-\defineactivetoken 131 {\Eacute}
-\defineactivetoken 132 {\Ntilde}
-\defineactivetoken 133 {\Odiaeresis}
-\defineactivetoken 134 {\Udiaeresis}
-\defineactivetoken 135 {\aacute}
-\defineactivetoken 136 {\agrave}
-\defineactivetoken 137 {\acircumflex}
-\defineactivetoken 138 {\adiaeresis}
-\defineactivetoken 139 {\atilde}
-\defineactivetoken 140 {\aring}
-\defineactivetoken 141 {\ccedilla}
-\defineactivetoken 142 {\eacute}
-\defineactivetoken 143 {\egrave}
-\defineactivetoken 144 {\ecircumflex}
-\defineactivetoken 145 {\ediaeresis}
-\defineactivetoken 146 {\iacute}
-\defineactivetoken 147 {\igrave}
-\defineactivetoken 148 {\icircumflex}
-\defineactivetoken 149 {\idiaeresis}
-\defineactivetoken 150 {\ntilde}
-\defineactivetoken 151 {\oacute}
-\defineactivetoken 152 {\ograve}
-\defineactivetoken 153 {\ocircumflex}
-\defineactivetoken 154 {\odiaeresis}
-\defineactivetoken 155 {\otilde}
-\defineactivetoken 156 {\uacute}
-\defineactivetoken 157 {\ugrave}
-\defineactivetoken 158 {\ucircumflex}
-\defineactivetoken 159 {\udiaeresis}
-\defineactivetoken 160 {\textdag}
-\defineactivetoken 161 {\textdegree}
-\defineactivetoken 162 {\textcent}
-\defineactivetoken 163 {\textsterling}
-\defineactivetoken 164 {\sectionmark}
-\defineactivetoken 165 {\textbullet}
-\defineactivetoken 166 {\paragraphmark}
-\defineactivetoken 167 {\ssharp}
-\defineactivetoken 168 {\registered}
-\defineactivetoken 169 {\copyright}
-\defineactivetoken 170 {\trademark}
-\defineactivetoken 171 {\textacute}
-\defineactivetoken 172 {\textdiaeresis}
-\defineactivetoken 173 {\mathematics\neq}
-\defineactivetoken 174 {\AEligature}
-\defineactivetoken 175 {\Ostroke}
-\defineactivetoken 176 {\mathematics\infty}
-\defineactivetoken 177 {\textpm}
-\defineactivetoken 178 {\mathematics\leq}
-\defineactivetoken 179 {\mathematics\geq}
-\defineactivetoken 180 {\textyen}
-\defineactivetoken 181 {\textmu}
-\defineactivetoken 182 {\mathematics\partial}
-\defineactivetoken 183 {\mathematics\Sigma}
-\defineactivetoken 184 {\mathematics\Pi}
-\defineactivetoken 185 {\mathematics\pi}
-\defineactivetoken 186 {\mathematics\smallint}
-\defineactivetoken 187 {\ordfeminine}
-\defineactivetoken 188 {\ordmasculine}
-\defineactivetoken 189 {\mathematics\Omega}
-\defineactivetoken 190 {\aeligature}
-\defineactivetoken 191 {\ostroke}
-\defineactivetoken 192 {\questiondown}
-\defineactivetoken 193 {\exclamdown}
-\defineactivetoken 194 {\textlognot}
-\defineactivetoken 195 {\mathematics{\sqrt{}}}
-\defineactivetoken 196 {\textflorin}
-\defineactivetoken 197 {\mathematics\approx}
-\defineactivetoken 198 {\mathematics\Delta}
-\defineactivetoken 199 {\leftguillemot}
-\defineactivetoken 200 {\rightguillemot}
-\defineactivetoken 201 {\dots}
-\defineactivetoken 202 {\nonbreakablespace}
-\defineactivetoken 203 {\Agrave}
-\defineactivetoken 204 {\Atilde}
-\defineactivetoken 205 {\Otilde}
-\defineactivetoken 206 {\OEligature}
-\defineactivetoken 207 {\oeligature}
-\defineactivetoken 208 {\endash}
-\defineactivetoken 209 {\emdash}
-\defineactivetoken 210 {\quotedblleft}
-\defineactivetoken 211 {\quotedblright}
-\defineactivetoken 212 {\quoteleft}
-\defineactivetoken 213 {\quoteright}
-\defineactivetoken 214 {\textdiv}
-\defineactivetoken 215 {\mathematics\diamond}
-\defineactivetoken 216 {\ydiaeresis}
-\defineactivetoken 217 {\Ydiaeresis}
-\defineactivetoken 218 {\textfraction}
-\defineactivetoken 219 {\texteuro}
-\defineactivetoken 220 {\guilsingleleft}
-\defineactivetoken 221 {\guilsingleright}
-\defineactivetoken 222 {fi}
-\defineactivetoken 223 {fl}
-\defineactivetoken 224 {\textddag}
-\defineactivetoken 225 {\periodcentered}
-\defineactivetoken 226 {\quotesinglebase}
-\defineactivetoken 227 {\quotedblbase }
-\defineactivetoken 228 {\perthousand}
-\defineactivetoken 229 {\Acircumflex}
-\defineactivetoken 230 {\Ecircumflex}
-\defineactivetoken 231 {\Aacute}
-\defineactivetoken 232 {\Ediaeresis}
-\defineactivetoken 233 {\Egrave}
-\defineactivetoken 234 {\Iacute}
-\defineactivetoken 235 {\Icircumflex}
-\defineactivetoken 236 {\Idiaeresis}
-\defineactivetoken 237 {\Igrave}
-\defineactivetoken 238 {\Oacute}
-\defineactivetoken 239 {\Ocircumflex}
-%defineactivetoken 240 % No definition for Apple logo glyph yet.
-\defineactivetoken 241 {\Ograve}
-\defineactivetoken 242 {\Uacute}
-\defineactivetoken 243 {\Ucircumflex}
-\defineactivetoken 244 {\Ugrave}
-\defineactivetoken 245 {\dotlessi}
-\defineactivetoken 246 {\textcircumflex}
-\defineactivetoken 247 {\texttilde}
-\defineactivetoken 248 {\textmacron}
-\defineactivetoken 249 {\textbreve}
-\defineactivetoken 250 {\textdotaccent}
-\defineactivetoken 251 {\textring}
-\defineactivetoken 252 {\textcedilla}
-\defineactivetoken 253 {\texthungarumlaut}
-\defineactivetoken 254 {\textogonek}
-\defineactivetoken 255 {\textcaron}
-
-\stopregime
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/regi-syn.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-syn.mkii
deleted file mode 100644
index 09fd59deeb5..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-syn.mkii
+++ /dev/null
@@ -1,73 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\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] [8859-1]
-\defineregimesynonym [il2] [8859-2]
-\defineregimesynonym [il3] [8859-3]
-\defineregimesynonym [il4] [8859-4]
-\defineregimesynonym [il5] [8859-9]
-\defineregimesynonym [il6] [8859-10]
-\defineregimesynonym [il7] [8859-13]
-%defineregimesynonym [il8] [8859-14]
-\defineregimesynonym [il9] [8859-15]
-\defineregimesynonym [il10] [8859-16]
-
-\defineregimesynonym [iso-8859-1] [8859-1]
-\defineregimesynonym [iso-8859-2] [8859-2]
-\defineregimesynonym [iso-8859-3] [8859-3]
-\defineregimesynonym [iso-8859-4] [8859-4]
-\defineregimesynonym [iso-8859-9] [8859-9]
-\defineregimesynonym [iso-8859-10] [8859-10]
-\defineregimesynonym [iso-8859-13] [8859-13]
-%defineregimesynonym [iso-8859-14] [8859-14]
-\defineregimesynonym [iso-8859-15] [8859-15]
-\defineregimesynonym [iso-8859-16] [8859-16]
-
-\defineregimesynonym [latin1] [8859-1]
-\defineregimesynonym [latin2] [8859-2]
-\defineregimesynonym [latin3] [8859-3]
-\defineregimesynonym [latin4] [8859-4]
-\defineregimesynonym [latin5] [8859-9]
-\defineregimesynonym [latin6] [8859-10]
-\defineregimesynonym [latin7] [8859-13]
-%defineregimesynonym [latin8] [8859-14]
-\defineregimesynonym [latin9] [8859-15]
-\defineregimesynonym [latin10] [8859-16]
-
-% kind of special
-
-\defineregimesynonym [utf-8] [utf]
-\defineregimesynonym [utf8] [utf]
-
-% for historical reasons / compatibility
-
-\defineregimesynonym [windows] [cp1252]
-\defineregimesynonym [grk] [8859-7]
-\defineregimesynonym [iso88595] [8859-5]
-
-\protect \endinput
-
diff --git a/Master/texmf-dist/tex/context/base/mkii/regi-uni.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-uni.mkii
deleted file mode 100644
index fe2f99a4f2d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-uni.mkii
+++ /dev/null
@@ -1,24 +0,0 @@
-%D \module
-%D [ file=enco-uni,
-%D version=1998.10.18,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=Unicode,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%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]
-
-\defineactivedecimals 128 to 255 as {\handleunicodeflowglyph}
-
-\stopregime
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/regi-utf.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-utf.mkii
deleted file mode 100644
index 09926a17231..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-utf.mkii
+++ /dev/null
@@ -1,52 +0,0 @@
-%D \module
-%D [ file=regi-utf,
-%D version=2002.12.03,
-%D title=\CONTEXT\ Encoding Macros,
-%D subtitle=UTF-8,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\ifnum\texengine>\pdftexengine
- \expandafter \endinput
-\fi
-
-%D This regime activates the characters $>192$ and let them
-%D handle \UTF\ encoded content streams. This regime runs on
-%D top of the \type {unic} modules. We use an active inspector
-%D instead of a active token handler because here we don't want
-%D the \type {{}}. We only support this in \ETEX.
-
-% ÀÁÂÃÄÅàáâãäå
-% ÆÇæç
-% ÈÉÊËèéêë
-% ÌÍÎÏÞìíîïþ
-% Ðð
-% Ññ
-% ÒÓÔÕÖòóôõö
-% Øø
-% ÙÚÛÜùúûü
-% Ýýÿ
-% ß
-% Ţţ
-
-\unprotect
-
-\startregime[utf]
-
-\dostepwiserecurse{192}{223}{1}
- {\expanded{\defineactiveinspector{\recurselevel} {\noexpand\utftwouniglph {\recurselevel}}}} % space delimited
-
-\dostepwiserecurse{224}{239}{1}
- {\expanded{\defineactiveinspector{\recurselevel} {\noexpand\utfthreeuniglph{\recurselevel}}}} % space delimited
-
-\dostepwiserecurse{240}{247}{1}
- {\expanded{\defineactiveinspector{\recurselevel} {\noexpand\utffouruniglph {\recurselevel}}}} % space delimited
-
-\stopregime
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/regi-vis.mkii b/Master/texmf-dist/tex/context/base/mkii/regi-vis.mkii
deleted file mode 100644
index 1807bdc93df..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/regi-vis.mkii
+++ /dev/null
@@ -1,158 +0,0 @@
-%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 \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Support for VISCII input encoding (regime) for Vietnamese.
-%D
-%D Usage:
-%D \type{\enableregime[vis]}
-
-
-\startregime[viscii]
-
-\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
-
diff --git a/Master/texmf-dist/tex/context/base/mkii/scrn-fld.mkii b/Master/texmf-dist/tex/context/base/mkii/scrn-fld.mkii
deleted file mode 100644
index 993b510ea4b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/scrn-fld.mkii
+++ /dev/null
@@ -1,1247 +0,0 @@
-%D \module
-%D [ file=scrn-fld,
-%D version=1997.05.18,
-%D title=\CONTEXT\ Screen Macros,
-%D subtitle=Fields,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \appendtocommalist versus \addtocommalist
-%
-% * as default trigger in radiofields ?
-%
-% beware: weblink plugin truncates on length, while save as doesn't;
-% more precise: (1) first time right string is sent, (2)
-% internal string truncated, (3) second time truncated
-% string is sent.
-
-\writestatus{loading}{ConTeXt Screen Macros / Fields}
-
-% messages
-
-\definemessageconstant{fields}
-
-\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%
- {\getobject{SYM}{#1}}
-
-\def\dopresetfieldsymbol#1%
- {\checkobjectreferences
- \doifobjectfoundelse{SYM}{#1}
- {}
- {\settightobject{SYM}{#1}\hbox{\symbol[#1]}%
- \flushatshipout
- {\setbox0\hbox{\hskip-\maxdimen\getobject{SYM}{#1}}%
- \smashbox0\box0}}}
-
-\def\presetfieldsymbols[#1]% slow
- {\def\dopresetfieldsymbols##1%
- {\processcommalist[##1]\dopresetfieldsymbol}%
- \@EA\processcommalist\@EA[#1]\dopresetfieldsymbols}
-
-\def\definedefaultsymbols
- {\definesymbol[defaultyes][$\times$]%
- \definesymbol[defaultno][$\cdot$]}
-
-\def\resetfieldsymbol[#1]% for experimental usage only
- {\resetobject{SYM}{#1}}
-
-%D The interface to the specials. DEFAULT NOG ANDERS
-
-\def\preparefieldvariables % evt \def's at the outer level (test) or \edef's here for fast testing
- {\let\@@DriverFieldNumber \@@fdn
- \let\@@DriverFieldStyle \@@fdstyle
- \let\@@DriverFieldColor \@@fdcolor
- \let\@@DriverFieldBackgroundColor\@@fdfieldbackgroundcolor
- \let\@@DriverFieldFrameColor \@@fdfieldframecolor
- \let\@@DriverFieldLayer \@@fdfieldlayer
- \let\@@DriverFieldOption \@@fdoption
- \let\@@DriverFieldAlign \@@fdalign
- \let\@@DriverFieldClickIn \@@fdclickin
- \let\@@DriverFieldClickOut \@@fdclickout
- \let\@@DriverFieldRegionIn \@@fdregionin
- \let\@@DriverFieldRegionOut \@@fdregionout
- \let\@@DriverFieldAfterKey \@@fdafterkey
- \let\@@DriverFieldFormat \@@fdformat
- \let\@@DriverFieldValidate \@@fdvalidate
- \let\@@DriverFieldCalculate \@@fdcalculate
- \let\@@DriverFieldFocusIn \@@fdfocusin
- \let\@@DriverFieldFocusOut \@@fdfocusout}
-
-% todo : remove arguments, consider DriverField a namespace
-
-\def\presetlinefield
- {\preparefieldvariables
- \dopresetlinefield
- {\@@DriverFieldName}
- {\@@DriverFieldWidth}
- {\@@DriverFieldHeight}
- {\@@DriverFieldDefault}
- {\@@DriverFieldNumber}
- {\@@DriverFieldStyle,\@@DriverFieldColor,\@@DriverFieldBackgroundColor,\@@DriverFieldFrameColor}
- {\@@DriverFieldOption}
- {\@@DriverFieldAlign}
- {\@@DriverFieldClickIn,\@@DriverFieldClickOut,\@@DriverFieldRegionIn,\@@DriverFieldRegionOut,%
- \@@DriverFieldAfterKey,\@@DriverFieldFormat,\@@DriverFieldValidate,\@@DriverFieldCalculate,%
- \@@DriverFieldFocusIn,\@@DriverFieldFocusOut}}
-
-\def\presettextfield
- {\preparefieldvariables
- \dopresettextfield
- {\@@DriverFieldName}
- {\@@DriverFieldWidth}
- {\@@DriverFieldHeight}
- {\@@DriverFieldDefault}
- {\@@DriverFieldNumber}
- {\@@DriverFieldStyle,\@@DriverFieldColor,\@@DriverFieldBackgroundColor,\@@DriverFieldFrameColor}
- {\@@DriverFieldOption}
- {\@@DriverFieldAlign}
- {\@@DriverFieldClickIn,\@@DriverFieldClickOut,\@@DriverFieldRegionIn,\@@DriverFieldRegionOut,%
- \@@DriverFieldAfterKey,\@@DriverFieldFormat,\@@DriverFieldValidate,\@@DriverFieldCalculate,%
- \@@DriverFieldFocusIn,\@@DriverFieldFocusOut}}
-
-\def\presetchoicefield
- {\preparefieldvariables
- \dopresetchoicefield
- {\@@DriverFieldName}
- {\@@DriverFieldWidth}
- {\@@DriverFieldHeight}
- {\@@DriverFieldDefault}
- {\@@DriverFieldStyle,\@@DriverFieldColor,\@@DriverFieldBackgroundColor,\@@DriverFieldFrameColor}
- {\@@DriverFieldOption}
- {\@@DriverFieldValues}
- {\@@DriverFieldClickIn,\@@DriverFieldClickOut,\@@DriverFieldRegionIn,\@@DriverFieldRegionOut,%
- \@@DriverFieldAfterKey,\@@DriverFieldFormat,\@@DriverFieldValidate,\@@DriverFieldCalculate,%
- \@@DriverFieldFocusIn,\@@DriverFieldFocusOut}}
-
-\def\presetpopupfield
- {\preparefieldvariables
- \dopresetpopupfield
- {\@@DriverFieldName}
- {\@@DriverFieldWidth}
- {\@@DriverFieldHeight}
- {\@@DriverFieldDefault}
- {\@@DriverFieldStyle,\@@DriverFieldColor,\@@DriverFieldBackgroundColor,\@@DriverFieldFrameColor}
- {\@@DriverFieldOption}
- {\@@DriverFieldValues}
- {\@@DriverFieldClickIn,\@@DriverFieldClickOut,\@@DriverFieldRegionIn,\@@DriverFieldRegionOut,%
- \@@DriverFieldAfterKey,\@@DriverFieldFormat,\@@DriverFieldValidate,\@@DriverFieldCalculate,%
- \@@DriverFieldFocusIn,\@@DriverFieldFocusOut}}
-
-\def\presetcombofield
- {\preparefieldvariables
- \dopresetcombofield
- {\@@DriverFieldName}
- {\@@DriverFieldWidth}
- {\@@DriverFieldHeight}
- {\@@DriverFieldDefault}
- {\@@DriverFieldStyle,\@@DriverFieldColor,\@@DriverFieldBackgroundColor,\@@DriverFieldFrameColor}
- {\@@DriverFieldOption}
- {\@@DriverFieldValues}
- {\@@DriverFieldClickIn,\@@DriverFieldClickOut,\@@DriverFieldRegionIn,\@@DriverFieldRegionOut,%
- \@@DriverFieldAfterKey,\@@DriverFieldFormat,\@@DriverFieldValidate,\@@DriverFieldCalculate,%
- \@@DriverFieldFocusIn,\@@DriverFieldFocusOut}}
-
-\def\presetcheckfield
- {\preparefieldvariables
- \presetfieldsymbols[\@@DriverFieldValues]%
- \dopresetcheckfield
- {\@@DriverFieldName}
- {\@@DriverFieldWidth}
- {\@@DriverFieldHeight}
- {\@@DriverFieldDefault}
- {\@@DriverFieldOption}
- {\@@DriverFieldValues}
- {\@@DriverFieldClickIn,\@@DriverFieldClickOut,\@@DriverFieldRegionIn,\@@DriverFieldRegionOut,%
- \@@DriverFieldAfterKey,\@@DriverFieldFormat,\@@DriverFieldValidate,\@@DriverFieldCalculate,%
- \@@DriverFieldFocusIn,\@@DriverFieldFocusOut}}
-
-\def\presetpushfield
- {\preparefieldvariables
- %\edef\@@DriverFieldValues{{\@@DriverFieldValues}}% makes sure {a,b,c} is passed
- \presetfieldsymbols[\@@DriverFieldValues]%
- \dopresetpushfield
- {\@@DriverFieldName}
- {\@@DriverFieldWidth}
- {\@@DriverFieldHeight}
- {\@@DriverFieldDefault}
- {\@@DriverFieldOption}
- {\@@DriverFieldValues}
- {\@@DriverFieldClickIn,\@@DriverFieldClickOut,\@@DriverFieldRegionIn,\@@DriverFieldRegionOut,%
- \@@DriverFieldAfterKey,\@@DriverFieldFormat,\@@DriverFieldValidate,\@@DriverFieldCalculate,%
- \@@DriverFieldFocusIn,\@@DriverFieldFocusOut}}
-
-\def\presetradiofield
- {\preparefieldvariables
- \presetfieldsymbols[\@@DriverFieldValues]%
- \dopresetradiofield
- {\@@DriverFieldName}
- {\@@DriverFieldWidth}
- {\@@DriverFieldHeight}
- {\@@DriverFieldDefault}
- {\@@DriverFieldOption}
- {\@@DriverFieldRoot}
- {\@@DriverFieldValues}
- {\@@DriverFieldClickIn,\@@DriverFieldClickOut,\@@DriverFieldRegionIn,\@@DriverFieldRegionOut,%
- \@@DriverFieldAfterKey,\@@DriverFieldFormat,\@@DriverFieldValidate,\@@DriverFieldCalculate,%
- \@@DriverFieldFocusIn,\@@DriverFieldFocusOut}}
-
-\def\presetradiorecord
- {\preparefieldvariables
- \dopresetradiorecord
- {\@@DriverFieldName}
- {\@@DriverFieldDefault}
- {\@@DriverFieldOption}
- {\@@DriverFieldKids}
- {\@@DriverFieldClickIn,\@@DriverFieldClickOut,\@@DriverFieldRegionIn,\@@DriverFieldRegionOut,%
- \@@DriverFieldAfterKey,\@@DriverFieldFormat,\@@DriverFieldValidate,\@@DriverFieldCalculate,%
- \@@DriverFieldFocusIn,\@@DriverFieldFocusOut}}
-
-\def\setfieldmodes#1#2#3%
- {\xdef\@@DriverFieldMode{#1}% % 0 1 2 3
- \xdef\@@DriverFieldFree{#2}% % 0 1
- \xdef\@@DriverFieldAuto{#3}} % 0 1
-
-\newevery\everysetfield\relax
-
-\def\doiffieldelse#1{\doifdefinedelse{fielddata#1}}
-
-\def\setfield#1#2#3#4#5#6#7#8#9%
- {\bgroup
- \doglobal\increment\numberoffields
- \iftracefields
- \doglobal\addtocommalist{#1}\collectedfields
- \fi
- \the\everysetfield
- \setxvalue{fielddata#1}% kortere tag #7 needs expansion etc
- {\noexpand\dosetfield{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}%
- \egroup}
-
-\def\dosetfield#1#2#3#4#5#6#7#8#9%
- {\xdef\@@DriverFieldName {#1}%
- \xdef\@@DriverFieldType {#2}%
- \xdef\@@DriverFieldRoot {#3}%
- \xdef\@@DriverFieldParent {#4}%
- \xdef\@@DriverFieldKids {#5}%
- \xdef\@@DriverFieldGroup {#6}%
- \setfieldmodes #7%
- \bgroup
- \def\par{\string\n\string\n}%
- \xdef\@@DriverFieldValues {#8}%
- \xdef\@@DriverFieldDefault{#9}%
- \egroup}
-
-\def\changefield#1%
- {\setfield{#1}\@@DriverFieldType\@@DriverFieldRoot\@@DriverFieldParent\@@DriverFieldKids\@@DriverFieldGroup
- {\@@DriverFieldMode\@@DriverFieldFree\@@DriverFieldAuto}\@@DriverFieldValues\@@DriverFieldDefault}
-
-\def\getfield#1% name
- {\doifundefinedelse{fielddata#1}
- {\dosetfield{#1}\empty\empty\empty\empty\empty{\empty00}\empty\empty}
- {\getvalue{fielddata#1}}}
-
-\newif\iftracefields \tracefieldsfalse
-
-\let\tracefields\tracefieldstrue
-
-\def\doshowfields[#1]% todo: tabulate van maken en runtime
- {\bgroup
- \switchtobodyfont[8pt,tt]%
- \doifsomething{#1}{\def\collectedfields{#1}}%
- \ifx\collectedfields\empty
- \par specify [fieldlist] or say \type{\tracefieldstrue} first\par
- \else
- \def\normalizedfieldmode##1##2##3%
- {\ifcase0##2 \else\sl\fi
- \ifcase0##1 loner\or parent\or clone\or copy\fi}%
- \def\dosetfield##1##2##3##4##5##6##7##8##9%
- {##1&##2&##3&##4&##5&##6&\normalizedfieldmode##7&##8&##9\cr}%
- \halign
- {&##\strut\hss\quad\cr
- \noalign{\hrule}%
- NAME &TYPE &ROOT &
- PARENT&KIDS &GROUP &
- MODE &VALUES&DEFAULT\cr
- \noalign{\hrule}%
- \@EA\globalprocesscommalist\@EA[\collectedfields]\getfield
- \noalign{\hrule}}%
- \fi
- \egroup}
-
-\def\showfields
- {\dosingleempty\doshowfields}
-
-\def\dologfields[#1]%
- {\bgroup
- \immediate\openout\scratchwrite=fields.log
- \doifsomething{#1}{\def\collectedfields{#1}}%
- \ifx\colledtedfields\empty
- \immediate\write\scratchwrite{use \tracefieldstrue}%
- \else
- \def\normalizedfieldmode##1##2##3%
- {\edef\@@DriverFieldMode
- {\ifcase##1 loner \or parent \or clone \or copy \fi
- \ifcase##2 \else(done)\fi}}%
- \def\dosetfield##1##2##3##4##5##6##7##8##9%
- {\normalizedfieldmode##7%
- \immediate\write\scratchwrite
- {N=##1 / T=##2 / R=##3 / P=##4 / K=##5 / G=##6 /
- M=\@@DriverFieldMode\space/ V=##8 / D=##9}}%
- \processcommacommand[\collectedfields]\getfield
- \fi
- \immediate\closeout\scratchwrite
- \egroup}
-
-\def\logfields
- {\dosingleempty\doLogFields}
-
-%D \starttyping
-%D \definefield [name] [type] [group] [values] [default]
-%D
-%D \definefield [WWWW] [text] [textsetup] [default text]
-%D \definefield [XXXX] [push] [pushsetup] [yes,no] [yes]
-%D \definefield [XXXX] [check] [checksetup] [yes,no] [yes]
-%D \definefield [YYYY] [combo] [combosetup] [a,b,c,d] [b]
-%D \definefield [ZZZZ] [radio] [radiosetup] [W,X,Y,Z] [Y]
-%D
-%D \definesubfield [W] [subsetup] [p,q]
-%D \definesubfield [X,Y] [subsetup] [p,r]
-%D \definesubfield [Z] [subsetup] [y,z]
-%D
-%D evt \definemainfield ... wanneer geplaatst voor subs gegeven
-%D
-%D \clonefield [XXXX] [XX,YY] [mysetup] [on,off]
-%D \clonefield [Z] [AA,BB] [somesetup] [true,false]
-%D \clonefield [Z] [CC,DD] [anothersetup]
-%D
-%D \copyfield [XXXX] [PP,QQ,RR]
-%D
-%D \field[XXXX]
-%D \fitfield[XXXX]
-%D \stoptyping
-%D
-%D Beware, in \MKII\ we don't support autocloning for radiofields.
-
-\newif\ifdefinemainfield \definemainfieldfalse
-
-%D We need to keep track of cloned (related) fields and so by
-%D maintaining lists of field clones.
-%D
-%D The first alternative used a two pass data list and was
-%D implemented as follows:
-%D
-%D \starttyping
-%D \def\getmainfieldkids#1%
-%D {\let\@@DriverFieldKids\empty
-%D \ifdefinemainfield
-%D \definetwopasslist{fld:#1}% defined by system
-%D \doloop
-%D {\gettwopassdata{fld:#1}%
-%D \iftwopassdatafound
-%D %\addtocommalist\twopassdata\@@DriverFieldKids
-%D \appendtocommalist\twopassdata\@@DriverFieldKids
-%D \else
-%D \exitloop
-%D \fi}%
-%D \fi}
-%D \stoptyping
-%D
-%D However, the next alternative is much faster when we have
-%D a field with thousands of clones, something not that
-%D imaginary.
-%D
-%D \starttyping
-%D \def\getmainfieldkids#1%
-%D {\let\@@DriverFieldKids\empty
-%D \ifdefinemainfield
-%D \definetwopasslist{fld:#1}% runtime defined by system
-%D \getnamedtwopassdatalist{fld:#1}\@@DriverFieldKids
-%D \fi}
-%D \stoptyping
-%D
-%D The data is written by file using:
-%D
-%D \starttyping
-%D \newcounter\nofmainfieldkids
-%D
-%D \def\setmainfieldkid#1#2%
-%D {\doglobal\increment\nofmainfieldkids
-%D \savetwopassdata{fld:#1}{\nofmainfieldkids}{#2}}
-%D \stoptyping
-%D
-%D The trade of of this mechanism is that for each cloned or
-%D copied field, the uitlity file is to be read in order to
-%D fetch the data.
-%D
-%D The next, much faster alternative uses a dedicated %
-%D reference mechanism.
-
-\def\setmainfieldkid#1#2%
- {\immediatewriteutilitycommand{\fieldreference{#1}{#2}}}
-
-\def\checkfieldreferences
- {\startnointerference
- \protectlabels
- \doutilities{fieldreferences}\jobname\empty\relax\relax
- \global\let\checkfieldreferences\relax
- \stopnointerference}
-
-\def\setfieldreferences
- {\def\fieldreference##1##2%
- {\ifundefined{\r!widget##1}%
- \setxvalue{\r!widget##1}{##2}%
- \else
- \edef\!!stringa{\getvalue{\r!widget##1}}%
- \setxvalue{\r!widget##1}{\!!stringa,##2}%
- \fi}}
-
-\def\resetfieldreferences
- {\let\fieldreference\gobbletwoarguments}
-
-\def\getmainfieldkids#1%
- {\checkfieldreferences
- \ifdefinemainfield
- \doifundefinedelse{\r!widget#1}%
- {\let\@@DriverFieldKids\empty}
- {\@EA\let\@EA\@@DriverFieldKids\csname\r!widget#1\endcsname}%
- \else
- \let\@@DriverFieldKids\empty
- \fi}
-
-\resetfieldreferences
-
-%D Of course it costs a few more tokens to implement, but it's
-%D worth the memory: running for instance the 2000 page
-%D english examns publishing on demand document went down from
-%D 1350 seconds to less than 950 on a 650 Mhz pentium.
-
-\def\definefield
- {\definemainfieldfalse\doquintupleempty\dodefinefield}
-
-\def\definemainfield
- {\definemainfieldtrue \doquintupleempty\dodefinefield}
-
-\let\collectedfields\empty
-\newcounter\numberoffields
-\newcounter\totalnumberoffields
-
-\def\savenumberoffields
- {\ifcase\numberoffields\relax\else
- \savecurrentvalue\totalnumberoffields\numberoffields
- \fi}
-
-\appendtoks \savenumberoffields \to \everybye % \everylastshipout
-
-% \def\presetfieldreferences
-% {\ifnum\totalnumberoffields>0
-% \definereference[AtOpenInitializeForm][\v!ResetForm]%
-% \fi}
-%
-% \definereference[AtOpenInitializeForm][\v!geen]
-%
-% \appendtoks \presetfieldreferences \to \everycheckreferences
-
-\def\dodefinefield[#1][#2][#3][#4][#5]%
- {\ifsecondargument
- \edef\currentfieldname{#1}% just in case we're inside a loop
- \doifundefinedelse{define#2field}
- {\writestatus\m!fields{unknown field type #2}}
- {\doifundefined{fielddata\currentfieldname}
- {\getmainfieldkids\currentfieldname
- \ifdefinemainfield
- \ifx\@@DriverFieldKids\empty
- \let\@@DriverFieldMode\fieldlonermode
- \else
- \let\@@DriverFieldMode\fieldparentmode
- \fi
- \def\@@DriverFieldAuto{1}%
- \else
- \let\@@DriverFieldMode\fieldlonermode
- \def\@@DriverFieldAuto{0}%
- \fi
- \def\@@DriverFieldFree{0}%
- \getvalue{define#2field}{\currentfieldname}{#2}{#3}{#4}{#5}}}%
- \else
- \writestatus\m!fields{pass fieldname and fieldtype}%
- \fi}
-
-\def\definelinefield#1#2#3#4#5%
- {\setfield{#1}{#2}{}{}{\@@DriverFieldKids}{#3}{\@@DriverFieldMode\@@DriverFieldFree\@@DriverFieldAuto}{}{#4}}
-
-\let\definetextfield=\definelinefield
-
-\def\definechoicefield#1#2#3#4#5%
- {\doifelsenothing{#4}
- {\def\@@DriverFieldValues{yes,no}}
- {\def\@@DriverFieldValues{#4}}%
- \doifelsenothing{#5}
- {\dogetcommacommandelement2\from\@@DriverFieldValues \to\@@DriverFieldDefault
- \dogetcommacommandelement1\from\@@DriverFieldDefault\to\@@DriverFieldDefault}
- {\def\@@DriverFieldDefault{#5}}%
- \setfield{#1}{#2}{}{}{\@@DriverFieldKids}{#3}{\@@DriverFieldMode\@@DriverFieldFree\@@DriverFieldAuto}{\@@DriverFieldValues}{\@@DriverFieldDefault}}
-
-\let\definepopupfield=\definechoicefield
-\let\definecombofield=\definechoicefield
-
-%\def\definecheckfield#1#2#3#4#5%
-% {\doifelsenothing{#4}
-% {\definedefaultsymbols
-% \def\@@DriverFieldValues{defaultyes}}
-% {\def\@@DriverFieldValues{#4}}%
-% \doifelsenothing{#5}
-% {\dogetcommacommandelement2\from\@@DriverFieldValues\to\@@DriverFieldDefault
-% \dogetcommacommandelement1\from\@@DriverFieldDefault\to\@@DriverFieldDefault}
-% {\def\@@DriverFieldDefault{#5}}%
-% \setfield{#1}{#2}{}{}{\@@DriverFieldKids}{#3}{\@@DriverFieldMode\@@DriverFieldFree\@@DriverFieldAuto}{\@@DriverFieldValues}{\@@DriverFieldDefault}}
-
-%D Since these fields have an on/off state only, we pass 1/0
-%D to the driver as default values.
-
-\def\definecheckfield#1#2#3#4#5%
- {\doifelsenothing{#4}
- {\definedefaultsymbols
- \def\@@DriverFieldValues{defaultyes}}
- {\def\@@DriverFieldValues{#4}}%
- \doifelsenothing{#5}
- {\def\@@DriverFieldDefault{2}}
- {\dogetcommacommandelement1\from\@@DriverFieldValues\to\@@DriverFieldDefault
- \doifinstringelse{#5}{\@@DriverFieldDefault}
- {\def\@@DriverFieldDefault{1}}
- {\def\@@DriverFieldDefault{0}}}%
- \setfield
- {#1}{#2}{}{}{\@@DriverFieldKids}{#3}%
- {\@@DriverFieldMode\@@DriverFieldFree\@@DriverFieldAuto}%
- {\@@DriverFieldValues}{\@@DriverFieldDefault}}
-
-\let\definepushfield=\definecheckfield
-
-\def\defineradiofield#1#2#3#4#5%
- {\iffourthargument
- \doifelsenothing{#5}
- {\dogetcommacommandelement1\from#4\to\SavedFieldDefault
- \dogetcommacommandelement1\from\SavedFieldDefault\to\SavedFieldDefault}
- {\def\SavedFieldDefault{#5}}%
-% when opt works
-% \@EA\beforesplitstring\SavedFieldDefault\at=>\to\SavedFieldDefault
- \ifx\@@DriverFieldKids\empty
- \setfield{#1}{#2}{}{}{#4}{#3}{\@@DriverFieldMode\@@DriverFieldFree\@@DriverFieldAuto}{}{\SavedFieldDefault}%
- \else
- \setfield{#1}{#2}{}{}{#4,\@@DriverFieldKids}{#3}{\@@DriverFieldMode\@@DriverFieldFree\@@DriverFieldAuto}{}{\SavedFieldDefault}%
- \fi
-%
- \def\docommand##1%
- {\doifelse{##1}\SavedFieldDefault
- {\def\@@DriverFieldDefault{##1}}%
- {\let\@@DriverFieldDefault\empty}%
- \setfield{##1}{#2}{#1}{}{}{#3}{\@@DriverFieldMode\@@DriverFieldFree\@@DriverFieldAuto}{}{\@@DriverFieldDefault}}%
-% when opt works
-% \def\docommand##1%
-% {\@EA\beforesplitstring##1\at=>\to\FieldValue
-% \doifelse\FieldValue\SavedFieldDefault
-% {\let\@@DriverFieldDefault\FieldValue}%
-% {\let\@@DriverFieldDefault\empty}%
-% \setfield\FieldValue{#2}{#1}{}{}{#3}{\@@DriverFieldMode\@@DriverFieldFree\@@DriverFieldAuto}{}{\@@DriverFieldDefault}}%
- \processcommalist[#4]\docommand
- \else
- \writestatus\m!fields{pass values too}%
- \fi}
-
-\def\definesubfield
- {\dotripleempty\dodefinesubfield}
-
-\def\dodefinesubfield[#1][#2][#3]% for the moment only radio ones
- {\ifsecondargument
- \def\docommand##1%
- {\getfield{##1}%
- \ifx\@@DriverFieldType\empty
- \writestatus\m!fields{unknown field ##1}% to do
- \else
- \doifsomething{#2}
- {\edef\@@DriverFieldGroup{#2}}%
- \doifelsenothing{#3}
- {\definedefaultsymbols
- \def\@@DriverFieldValues{defaultyes}}
- {\def\@@DriverFieldValues{#3}}%
- \changefield{##1}%
- \fi}%
- \processcommalist[#1]\docommand
- \else
- \writestatus\m!fields{pass fieldname, setupgroup, values and default}%
- \fi}
-
-\def\doclonefield[#1][#2][#3][#4]% parent children setupgroup values
- {\ifsecondargument
- \getfield{#1}%
-\iftrialtypesetting\else
- \ifx\@@DriverFieldType\empty
- \writestatus\m!fields{unknown field #1}%
- \else
- \let\@@DriverFieldMode\fieldparentmode
- %\def\docommand##1{\addtocommalist{##1}\@@DriverFieldKids}%
- \def\docommand##1{\appendtocommalist{##1}\@@DriverFieldKids}%
- \processcommalist[#2]\docommand
- \changefield{#1}%
- \let\@@DriverFieldAutoParent\@@DriverFieldAuto
- \def\@@DriverFieldParent{#1}%
- \let\@@DriverFieldKids\empty
- \let\@@DriverFieldRoot\empty
- \let\@@DriverFieldMode\fieldchildmode
- \def\@@DriverFieldFree{0}%
- \def\@@DriverFieldAuto{0}%
- \doifsomething{#3}{\edef\@@DriverFieldGroup{#3}}%
- \doifsomething{#4}{\edef\@@DriverFieldValues{#4}}%
- \def\docommand##1%
- {\ifcase\@@DriverFieldAutoParent\else
- \setmainfieldkid{\@@DriverFieldParent}{##1}%
- \fi
- \changefield{##1}}%
- \processcommalist[#2]\docommand
- \fi
-\fi
- \else
- \writestatus\m!fields{pass parent field and clones}%
- \fi}
-
-\def\clonefield
- {\doquadrupleempty\doclonefield}
-
-\def\docopyfield[#1][#2]% parent children
- {\ifsecondargument
- \getfield{#1}%
-\iftrialtypesetting\else
- \ifx\@@DriverFieldType\empty
- \writestatus\m!fields{unknown field #1}%
- \else
- \let\@@DriverFieldMode\fieldparentmode
- %\def\docommand##1{\addtocommalist{##1}\@@DriverFieldKids}%
- \def\docommand##1{\appendtocommalist{##1}\@@DriverFieldKids}%
- \processcommalist[#2]\docommand
- \changefield{#1}%
- \let\@@DriverFieldAutoParent\@@DriverFieldAuto
- \def\@@DriverFieldParent{#1}%
- \let\@@DriverFieldKids\empty
- \let\@@DriverFieldRoot\empty
- \let\@@DriverFieldMode\fieldcopymode
- \def\@@DriverFieldFree{0}%
- \def\@@DriverFieldAuto{0}%
- \def\docommand##1%
- {\ifcase\@@DriverFieldAutoParent\else
- \setmainfieldkid{\@@DriverFieldParent}{##1}%
- \fi
- \changefield{##1}}%
- \processcommalist[#2]\docommand
- \fi
-\fi
- \else
- \writestatus\m!fields{pass parent field and copies}%
- \fi}
-
-\def\copyfield{\dodoubleempty\docopyfield}
-
-\unexpanded\def\field {\dotripleempty\dofield[\dohandlefield]}
-\unexpanded\def\fitfield{\dotripleempty\dofield[\dohandlefitfield]}
-
-\def\dofield[#1][#2][#3]%
- {\iffirstargument
- \bgroup
- \getfield{#2}%
- \ifsecondargument
- \def\@@DriverFieldLabel{#3}%
- \else
- \let\@@DriverFieldLabel\@@DriverFieldName
- \fi
- \ifx\@@DriverFieldType\empty
- \writestatus\m!fields{unknown field #2}%
- \else\ifcase\@@DriverFieldFree\relax
- \doifdefinedelse{\strippedcsname\setupfield\@@DriverFieldGroup}
- {\let\dosetupfield=#1\getvalue{\strippedcsname\setupfield\@@DriverFieldGroup}}
- {#1[\@@DriverFieldName][\v!label,\v!frame,\v!horizontal][][][]}%
-\iftrialtypesetting\else
- \def\@@DriverFieldFree{1}%
- \changefield{#2}%
-\fi
- \else\ifcase\@@DriverFieldAuto\relax
- % \writestatus\m!fields{field #2 already typeset}%
- \else
- % \writestatus\m!fields{field #2 automatically copied}%
- \nextsystemfield
- \copyfield[\@@DriverFieldName][\currentsystemfield]%
- \dotripleempty\dofield[#1][\currentsystemfield][#3]% get the if's right
- \fi\fi\fi
- \egroup
- \fi}
-
-\def\typesetfield
- {\useJSscripts[fld]%
- \ifx\@@DriverFieldRoot\empty \else
- \let\@@SavedFieldName\@@DriverFieldName
- \getfield\@@DriverFieldRoot
- \ifcase\@@DriverFieldFree\relax
- \dosetfieldstatus\@@DriverFieldMode\@@DriverFieldParent\@@DriverFieldKids\@@DriverFieldRoot
- \dopresetrecord
-\iftrialtypesetting\else
- \def\@@DriverFieldFree{1}%
- \changefield\@@DriverFieldName
-\fi
- \fi
- \getfield\@@SavedFieldName
- \fi
- \ifx\@@DriverFieldKids\empty
- \donefalse
- \else
- \donetrue
- \fi
- \ifdone
- \let\@@DriverFieldParent\@@DriverFieldName
- %\addtocommalist\@@DriverFieldParent\@@DriverFieldKids
- \appendtocommalist\@@DriverFieldParent\@@DriverFieldKids
- \dosetfieldstatus\@@DriverFieldMode\@@DriverFieldParent\@@DriverFieldKids\@@DriverFieldRoot
- \dopresetfield
- \let\@@DriverFieldMode\fieldchildmode
- \fi
- \dosetfieldstatus\@@DriverFieldMode\@@DriverFieldParent\@@DriverFieldKids\@@DriverFieldRoot
- \dopresetfield}
-
-\def\dopresetfield
- {\iftrialtypesetting\else\iflocation\getvalue{preset\@@DriverFieldType field}\fi\fi}
-
-\def\dopresetrecord
- {\iftrialtypesetting\else\iflocation\getvalue{preset\@@DriverFieldType record}\fi\fi}
-
-\def\dodefinethefieldset[#1][#2]%
- {\dodefinefieldset{#1}{#2}}
-
-\def\definefieldset%
- {\dodoubleargument\dodefinethefieldset}
-
-\def\normaldodosetupfield[#1][#2][#3][#4][#5]%
- {\doifdefinedelse{\strippedcsname\setupfield#1}
- {\pushmacro\dosetupfield
- \def\dosetupfield[##1][##2][##3][##4][##5]%
- {\setvalue{\strippedcsname\setupfield#1}{\dosetupfield[#1][##2,#2][##3,#3][##4,#4][##5,#5]}}%
- \getvalue{\strippedcsname\setupfield#1}%
- \popmacro\dosetupfield}
- {\setvalue{\strippedcsname\setupfield#1}{\dosetupfield[#1][#2][#3][#4][#5]}}}
-
-\let\dodosetupfield\normaldodosetupfield
-
-\def\donosetupfield[#1][#2][#3][#4][#5]%
- {\setvalue{\strippedcsname\setupfield#1}{\dosetupfield[#1][#2][#3][#4][#5]}}
-
-\def\dosetupfield[#1][#2][#3][#4][#5]%
- {\iffifthargument
- \def\docommand##1{\dodosetupfield[##1][#2][#3][#4][#5]}%
- \processcommalist[#1]\docommand
- \else\ifthirdargument
- \def\docommand##1{\dodosetupfield[##1][#2][][][#3]}%
- \processcommalist[#1]\docommand
- \else\ifsecondargument
- \doifelse{#2}\v!reset
- {\def\docommand##1{\donosetupfield[#1][][][][]}}
- {\def\docommand##1{\dodosetupfield[##1][][][][#2]}}%
- \processcommalist[#1]\docommand
- \else\iffirstargument
- \def\docommand##1{\dodosetupfield[##1][][][][]}%
- \processcommalist[#1]\docommand
- \else
- \writestatus\m!fields{provide either 1, 2, 3 or 5 arguments}%
- \fi\fi\fi\fi}
-
-\def\setupfield
- {\doquintupleempty\dosetupfield}
-
-\def\dosetupfields[#1][#2][#3][#4]%
- {\ifsecondargument
- \def\dodosetupfield[##1][##2][##3][##4][##5]%
- {\doifdefinedelse{\strippedcsname\setupfield##1}
- {\def\dosetupfield[####1][####2][####3][####4][####5]%
- {\setvalue{\strippedcsname\setupfield##1}{\dosetupfield[##1][#1,####2,##2][#2,####3,##3][#3,####4,##4][#4,####5,##5]}}%
- \getvalue{\strippedcsname\setupfield##1}}
- {\setvalue{\strippedcsname\setupfield##1}{\dosetupfield[##1][#1,##2][#2,##3][#3,##4][#4,##5]}}}%
- \else\iffirstargument
- \doifelse{#1}\v!reset
- {\resetfields}
- {\setupfields[][][][#1]}% checken
- \else
- \writestatus\m!fields{provide either 1 or 4 arguments}%
- \fi\fi}
-
-\def\setupfields
- {\doquadrupleempty\dosetupfields}
-
-\def\resetfields
- {\let\dodosetupfield\normaldodosetupfield}
-
-% \setupfields[\v!reset]
-
-% opties: veld, label, kader, vertikaal/horizontaal
-
-\newif\ifShowFieldLabel
-\newif\ifShowFieldFrame
-\newif\ifVerticalField
-\newif\ifHorizontalField
-
-% way to slow/complicated, we need some simple alternative
-% as well
-
-\def\dohandlefield[#1][#2][#3][#4][#5]%
- {\presetlocalframed[\??fd]%
- \processallactionsinset
- [#2]
- [ \v!reset=>\ShowFieldLabelfalse\ShowFieldFramefalse
- \HorizontalFieldfalse\VerticalFieldfalse,
- \v!label=>\ShowFieldLabeltrue,
- \v!frame=>\ShowFieldFrametrue,
- \v!horizontal=>\HorizontalFieldtrue,
- \v!vertical=>\VerticalFieldtrue]%
- \ifVerticalField
- \getparameters[\??fd]
- [\c!distance=\!!zeropoint,\c!inbetween=\vskip\@@localoffset,
- \c!align=\v!right,\c!width=20em]%
- \else\ifHorizontalField
- \getparameters[\??fd]
- [\c!distance=\@@localoffset,\c!inbetween=,\c!align=\c!left,
- \c!height=10ex]%
- \else
- \getparameters[\??fd]
- [\c!distance=\!!zeropoint,\c!inbetween=,\c!align=\c!left]%
- \fi\fi
- \getparameters[\??fd]
- [\c!n=,\c!before=,\c!after=\vss,\c!style=,\c!color=,#3]%
- \reshapeframeboxfalse % else ugly spacing
- \ifShowFieldFrame
- \localframed[\??fd][\c!strut=\v!no,\c!align=]\bgroup
- \else
- \vbox\bgroup
- \fi
- \dontcomplain
- \ifShowFieldLabel
- \setbox0\hbox
- {\reshapeframeboxtrue % else wrong dimensions
- \framed
- [\c!style=,\c!color=,\c!align=\c!right,#4]
- {\@@DriverFieldLabel}}%
- \fi
- \setbox2\hbox
- {\reshapeframeboxtrue % else wrong dimensions
- \ifVerticalField
- \setupframed[\c!height=6ex,\c!width=\hsize]%
- \else\ifHorizontalField
- \setupframed[\c!height=\vsize,\c!width=20em]%
- \else
- \setupframed[\c!height=2cm,\c!width=2cm]%
- \fi\fi
- \framed
- [\c!align=\v!right,\c!strut=\v!no,#5]
- {\getparameters
- [\??fd]
- [\c!color=,\c!style=,\c!align=\v!right,\c!option=,
- \c!clickin=,\c!clickout=,\c!regionin=,\c!regionout=,
- \c!afterkey=,\c!format=,\c!validate=,\c!calculate=,
- \c!focusin=,\c!focusout=,
- \c!fieldoffset=\!!zeropoint,\c!fieldbackgroundcolor=,
- \c!fieldframecolor=,\c!fieldlayer=\@@iafieldlayer,#5]%
- \scratchdimen\framedwidth \edef\@@DriverFieldWidth {\the\scratchdimen}%
- \scratchdimen\framedheight\edef\@@DriverFieldHeight{\the\scratchdimen}%
- \vfill
- \hbox{\lower\@@fdfieldoffset\hbox{\typesetfield}}
- \vss}}%
- \ifShowFieldLabel
- \ifVerticalField
- \vbox
- {\copy0
- \@@fdinbetween
- \copy2}%
- \else
- \hbox
- {\vbox \ifdim\ht2>\ht0 to \ht2 \fi
- {\@@fdbefore
- \copy0
- \@@fdafter}%
- \hskip\@@fddistance
- \vbox \ifdim\ht0>\ht2 to \ht0 \fi
- {\@@fdbefore
- \box2
- \@@fdafter}}%
- \fi
- \else
- \box2
- \fi
- \egroup}
-
-\chardef\fitfieldmode\plusone % 3 = best
-
-\def\dohandlefitfield[#1][#2][#3][#4][#5]% alleen check
- {\presetlocalframed[\??fd]%
- \localframed
- [\??fd]
- [\c!n=1024, % beware: weblink plug in truncates
- \c!strut=\v!no,\c!color=,\c!style=,\c!option=,
- \c!clickin=,\c!clickout=,\c!regionin=,\c!regionout=,
- \c!focusin=,\c!focusout=,
- \c!afterkey=,\c!format=,\c!validate=,\c!calculate=,
- \c!fieldoffset=\!!zeropoint,\c!fieldbackgroundcolor=,
- \c!fieldframecolor=,\c!fieldlayer=\@@iafieldlayer,#5,\c!align=]
- {\dogetcommacommandelement1\from\@@DriverFieldValues\to\@@DriverFieldValue
- \ifx\@@DriverFieldValue\empty
- \let\@@DriverFieldValue\@@DriverFieldDefault
- \fi
- \dopresetfieldsymbol\@@DriverFieldValue
- \setbox\scratchbox\hbox{\dogetfieldsymbol\@@DriverFieldValue}%
- \scratchdimen\wd\scratchbox \edef\@@DriverFieldWidth {\the\scratchdimen}%
- \scratchdimen\ht\scratchbox \edef\@@DriverFieldHeight{\the\scratchdimen}%
- \ifcase\fitfieldmode
- \typesetfield
- \or % 1 = ignore depth (original, assumed no depth, actually a bug)
- \vbox to \ht\scratchbox{\vfill\hbox to \wd\scratchbox{\typesetfield\hfill}\vss}%
- \or % 2 = add depth to height, but no depth in result
- \advance\scratchdimen\dp\scratchbox \edef\@@DriverFieldHeight{\the\scratchdimen}%
- \vbox to \ht\scratchbox{\vfill\hbox to \wd\scratchbox{\typesetfield\hfill}\vss}%
- \or % 3 = add depth to height, and apply depth to result
- \advance\scratchdimen\dp\scratchbox \edef\@@DriverFieldHeight{\the\scratchdimen}%
- \hbox to \wd\scratchbox{\lower\dp\scratchbox\hbox{\typesetfield}\hfill}%
- \fi}}
-
-%D Common stuff
-
-\newcounter\nofsystemfields
-
-\def\nextsystemfield
- {\doglobal\increment\nofsystemfields
- \def\currentsystemfield{sys::\nofsystemfields}}
-
-%D An example:
-
-\def\fillinfield
- {\dosingleempty\dofillinfield}
-
-\def\dofillinfield[#1]#2%
- {\dontleavehmode
- \hbox
- {\forgetall
- \setupfields[\v!reset]%
- \nextsystemfield
- \useJSscripts[ans]%
- \doifelsenothing{#1}
- {\def\therightanswer{#2}}
- {\def\therightanswer{#1}}%
- \setbox0\hbox{#2}%
- \setbox2\hbox{\therightanswer}%
- \dimen0=\ifdim\wd0>\wd2 \wd0 \else \wd2 \fi
- \advance\dimen0 .2em
- \definefield
- [\currentsystemfield][line][systemfield]%
- \setupfield
- [systemfield]
- [\c!n=1024, % beware: weblink plugin truncates
- \c!location=\v!low,\c!strut=\v!yes,\c!fieldoffset=0pt,
- \c!height=1.2\openlineheight,\c!width=\dimen0,\c!offset=\v!overlay,
- \c!style=,\c!align=\v!middle,\c!frame=\v!off,
- \c!color=red,\c!fieldbackgroundcolor=\s!white,\c!fieldframecolor=blue,
- \c!validate=JS(Check_Answer{\currentsystemfield,\therightanswer})]%
- \switchtobodyfont
- [\c!small]%
- \hbox to \wd0
- {\copy0\hskip-\wd0\hss\field[\currentsystemfield]\hss}}}
-
-%D and another one:
-
-\def\tooltip
- {\dosingleempty\dotooltip}
-
-\def\dotooltip[#1]#2#3%
- {\bgroup
- \setupfields[\v!reset]%
- \useJSscripts[fld]%
- \setbox0\hbox
- {\dontcomplain
- \nextsystemfield
- \setbox0\hbox{#2}%
- \definesymbol
- [\currentsystemfield:txt]
- [{\inframed[\c!frame=\v!off,\c!background=\v!screen]{#3}}]%
- \setbox2\hbox{\symbol[\currentsystemfield:txt]}%
- \definefield
- [\currentsystemfield:txt][check]
- [dummy][\currentsystemfield:txt][\currentsystemfield:txt]%
- \setupfield
- [dummy]
- [\c!frame=\v!off,
- \c!regionout=JS(Hide_Field{\currentsystemfield:txt}),
- \c!option=\v!hidden]%
- \hbox to \zeropoint
- {\dimen0\wd2\advance\dimen0 -\wd0
- \doifelse{#1}\v!left
- {\hskip-\dimen0}
- {\doif{#1}\v!middle
- {\hskip-.5\dimen0}}%
- \lower\openlineheight\hbox to \zeropoint
- {\fitfield[\currentsystemfield:txt]}}%
- \dimen0=\ifdim\wd0=\zeropoint 3em\else\wd0\fi
- \definesymbol
- [\currentsystemfield:but]
- [{\framed[\c!height=2ex,\c!width=\dimen0,\c!frame=\v!off]{}}]%
- \definefield
- [\currentsystemfield:but][push]
- [dummy][\currentsystemfield:but][\currentsystemfield:but]%
- \setupfield
- [dummy]
- [\c!frame=\v!off,
- \c!option=,
- \c!regionin=JS(Vide_Field{\currentsystemfield:txt}),
- \c!regionout=JS(Hide_Field{\currentsystemfield:txt}),
- \c!fieldlayer=\@@iafieldlayer]%
- \lower2ex\hbox to \zeropoint
- {\fitfield[\currentsystemfield:but]}%
- #2}%
- \ht0\strutht\dp0\strutdp\box0
- \egroup}
-
-%D And one more:
-
-\def\definefieldstack
- {\dotripleargument\dodefinefieldstack}
-
-\def\dodefinefieldstack[#1][#2][#3]% name, symbols, settings
- {\doifundefined{fieldstack:#1}
- {\setgvalue{fieldstack:#1}{\dodofieldstack[#1][#2][#3]}}}
-
-\def\dodofieldstack[#1][#2][#3]% start=n, 0 == leeg
- {\bgroup
- \getparameters[\??fd][\c!start=1,#3]%
- \setupfields[\v!reset]%
- \definesymbol[\v!empty][]%
- \useJSscripts[fld][FieldStack]%
- \newcounter\stackedfieldnumber
- \def\dododofieldstack##1%
- {\increment\stackedfieldnumber
- \ifnum\stackedfieldnumber=\@@fdstart\relax
- \definefield[#1:\stackedfieldnumber][check][#1][##1,\v!empty][##1]%
- \else
- \definefield[#1:\stackedfieldnumber][check][#1][##1,\v!empty][\v!empty]%
- \fi}%
- \processcommalist[#2]\dododofieldstack
- \setupfield[#1][\v!reset]% added
- \setupfield[#1][\c!option=\v!readonly,#3]% #3 swapped
- \newcounter\stackedfieldnumber
- \def\dododofieldstack##1%
- {\doglobal\increment\stackedfieldnumber
- \fitfield[#1:\stackedfieldnumber]\egroup\bgroup}%
- \startoverlay
- \bgroup
- \globalprocesscommalist[#2]\dododofieldstack
- \egroup
- \stopoverlay
- \egroup}
-
-\def\dofieldstack[#1][#2][#3]%
- {\ifsecondargument
- \dodefinefieldstack[#1][#2][#3]\fieldstack[#1]%
- \else
- \getvalue{fieldstack:#1}\setgvalue{fieldstack:#1}{[#1]}%
- \fi}
-
-\def\fieldstack
- {\dotripleempty\dofieldstack}
-
-%D When submitting a form, we need to tell the driver module
-%D that we want \FDF\ or \HTML.
-
-\def\setupforms
- {\dodoubleargument\getparameters[\??fr]}
-
-\def\checksubmitform#1%
- {\setsubmitoutputformat\@@frmethod}
-
-\setexecutecommandcheck {submitform} \checksubmitform
-
-\setupforms
- [\c!method=HTML]
-
-%D Goodie:
-
-\def\definepushbutton % name optional setup
- {\dodoubleempty\dodefinepushbutton}
-
-\def\dodefinepushbutton[#1][#2]% name setup
- {\dododefinepushbutton{#1}{n}{push}%
- \dododefinepushbutton{#1}{r}{\symbol[psym:#1:n]}%
- \dododefinepushbutton{#1}{d}{\symbol[psym:#1:r]}%
- \setvalue{pushbutton:#1}{\dohandlepushbutton{#1}{#2}}}
-
-\def\dododefinepushbutton#1#2#3%
- {\doifsymboldefinedelse{psym:#1:#2}%
- \donothing{\definesymbol[psym:#1:#2][{#3}]}}
-
-\def\definepushsymbol
- {\dotripleargument\dodefinepushsymbol}
-
-\def\dodefinepushsymbol[#1][#2]% [#3]
- {\definesymbol[psym:#1:#2]}
-
-\def\dopushbutton[#1][#2]%
- {\executeifdefined{pushbutton:#1}\gobbleoneargument{#2}}
-
-\def\pushbutton
- {\dodoubleargument\dopushbutton}
-
-\def\dohandlepushbutton#1#2#3% identifier setup script
- {\bgroup
- \nextsystemfield
- \setupfield
- [pushbutton]
- [\c!frame=\v!overlay,
- \c!offset=\v!overlay,
- \c!clickout=#3,#2]%
- \definefield
- [\currentsystemfield]
- [push]
- [pushbutton]
- [psym:#1:n,psym:#1:r,psym:#1:d]%
- \fitfield
- [\currentsystemfield]%
- \egroup}
-
-% \def\do@@ampsh
-% {\dodoubleargument\dodo@@ampsh}
-%
-% \def\dodo@@ampsh[#1][#2]#3\\%
-% {\txt\pushbutton[#1][#2]\\}%
-%
-%\appendtoks \let\psh\do@@ampsh \to \everysetmenucommands
-
-\def\@@ampsh{\txt\pushbutton}
-
-\appendtoks \let\psh\@@ampsh \to \everysetmenucommands
-
-% \definepushbutton [reset]
-%
-% \definepushsymbol [reset] [n] [\uniqueMPgraphic{whatever}{color=green}]
-% \definepushsymbol [reset] [r] [\uniqueMPgraphic{whatever}{color=white}]
-%
-% \startinteractionmenu[bottom]
-% \psh [reset] [JS(reset_something)] \\
-% \stopinteractionmenu
-
-%D Another goodie:
-
-% \definecolor[rollover:n][red]
-% \definecolor[rollover:r][green]
-% \definecolor[rollover:d][blue]
-
-\definepalet
- [rollover]
- [n=red,
- r=green,
- d=blue]
-
-\newcounter\nofrollovers
-\newcounter\nofrollbuttons
-
-\def\dorollbutton[#1][#2]#3[#4]%
- {\dontleavehmode
- \bgroup
- \doglobal\increment\nofrollovers
- \doglobal\increment\nofrollbuttons
- \unexpanded\def\dosetlocationbox[##1]##2[##3]%
- {\getparameters[##1][##3]%
- \definecolor[rollover][rollover:##2]%
- \doifelse{##2}{n}{\doifelsevalue{##1\c!alternative}\v!hidden\phantom\hbox}\hbox
- {\localframed[##1]
- [\c!framecolor=rollover,\c!backgroundcolor=rollover,\c!color=rollover]%
- {\dolocationattributes{##1}\c!style\c!color{#3}}}}%
- \iffirstargument
- \ifsecondargument
- \def\setlocationbox##1{\dosetlocationbox[\??am#1]{##1}[#2]}%
- \else
- \doifassignmentelse{#1}
- {\def\setlocationbox##1{\dosetlocationbox[\??bt]{##1}[#1]}}
- {\def\setlocationbox##1{\dosetlocationbox[\??am#1]{##1}[]}}%
- \fi
- \else
- \def\setlocationbox##1{\dosetlocationbox[\??bt]{##1}[]}%
- \fi
- % todo: share symbols, tricky since different dimensions
- \definesymbol[rsym:\nofrollovers:n][\setlocationbox n]%
- \definesymbol[rsym:\nofrollovers:r][\setlocationbox r]%
- \definesymbol[rsym:\nofrollovers:d][\setlocationbox d]%
- \setupfield
- [rollbutton]
- [\c!frame=\v!off,
- \c!offset=\v!overlay,
- \c!clickout={#4}]%
- \definefield
- [roll:\nofrollbuttons][push][rollbutton]
- [rsym:\nofrollovers:n,%
- rsym:\nofrollovers:r,%
- rsym:\nofrollovers:d]%
- \fitfield[roll:\nofrollbuttons]%
- \egroup}
-
-\unexpanded\def\rollbutton
- {\dodoubleempty\dorollbutton}
-
-\def\menu@rob[#1]#2\\%
- {\txt\rollbutton[\currentmenu]{\ignorespaces#2\unskip}[#1]\\}%
-
-\appendtoks \let\rob\menu@rob \to \everysetmenucommands
-
-% calls:
-% {..} [JS..]
-% [left] {..} [JS..]
-% [a=b] {..} [JS..]
-% [left] [a=b] {..} [JS..]
-%
-% \setupbuttons[offset=0pt,frame=off] % alternative=hidden
-%
-% \rollbutton {Manuals} [JS(Goto_File{show-man.pdf})]
-% \rollbutton {Articles} [JS(Goto_File{show-art.pdf})]
-% \rollbutton {Papers} [JS(Goto_File{show-pap.pdf})]
-% \rollbutton {Presentations} [JS(Goto_File{show-pre.pdf})]
-% \rollbutton {Resources} [JS(Goto_File{show-res.pdf})]
-%
-% \rob [JS(...)] bla bla \\
-
-\unexpanded\def\overlayrollbutton
- {\dodoubleargument\dooverlayrollbutton}
-
-\def\dooverlayrollbutton[#1][#2]%
- {\bgroup
- \nextsystemfield
- \setupfield
- [overlayrollbutton]
- [\c!frame=\v!off,\c!offset=\v!overlay,\c!regionin={#1},\c!regionout={#2}]%
- \definesymbol
- [\currentsystemfield]
- [{\framed[\c!frame=\v!off,\c!width=\overlaywidth,\c!height=\overlayheight]{}}]%
- \definefield
- [\currentsystemfield][push][overlayrollbutton][\currentsystemfield][\currentsystemfield]%
- \fitfield[\currentsystemfield]%
- \egroup}
-
-% \defineoverlay
-% [ShowMenu]
-% [{\overlayrollbutton[VideLayer{navigation}][HideLayer{navigation}]}]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/scrn-hlp.mkii b/Master/texmf-dist/tex/context/base/mkii/scrn-hlp.mkii
deleted file mode 100644
index c526f51ebb4..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/scrn-hlp.mkii
+++ /dev/null
@@ -1,171 +0,0 @@
-%D \module
-%D [ file=scrn-hlp,
-%D version=1998.10.10,
-%D title=\CONTEXT\ Screen Macros,
-%D subtitle=Help (Experimental),
-%D author={Hans Hagen \& Ton Otten},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% todo : dedicated vide/hide voor helps
-
-\writestatus{loading}{ConTeXt Screen Macros / Help popups}
-
-%D This is an experimental and private module, so the interface
-%D and functionality can change. Pieces of code will be moved
-%D to other modules. More features are possible but will be
-%D interfaces later. See m-chart for an application as well
-%D as the second tno-tpd manual (graphic in margin, click
-%D on it, pop up big one, use menu with hides, as well as
-%D background, etc. etc.
-
-\unprotect
-
-\defineframedtext
- [\v!helptext]
-
-\setupframedtexts
- [\v!helptext]
- [\c!width=.75\textwidth,
- \c!align=\v!normal,
- \c!frame=\v!off,
- \c!background=\v!screen]
-
-\newcounter \nofhelpdataentries
-\newconditional \somehelpdatadefined
-
-\appendtoks \getpagehelpdata \to \beforeeverypage
-\appendtoks \synchronizepagehelpdata \to \aftereverypage
-
-% will be proper state variable
-
-\let\pagehelpdata\empty
-
-\def\dontresetpagedata
- {\let\synchronizepagehelpdata\relax}
-
-\def\resetpagehelpdata
- {\iflocation
- \let\synchronizepagehelpdata\resetpagehelpdata
- \global\let\pagehelpdata\empty
- \resetreference[HideHelp]%
- \fi}
-
-\let\synchronizepagehelpdata\resetpagehelpdata
-
-\resetreference[HideHelp]
-
-\def\getpagehelpdata
- {\iflocation\ifcase\nofhelpdataentries\else
- \let\pagehelpdata\empty
- \ifconditional\somehelpdatadefined
- \definetwopasslist{hlp:\realfolio}%
- \doloop
- {\gettwopassdata{hlp:\realfolio}%
- \iftwopassdatafound
- \addtocommalist\twopassdata\pagehelpdata
- \else
- \exitloop
- \fi}%
- \fi
- \ifx\pagehelpdata\empty \else
- \useJSscripts[fld]%
- \definereference[HideHelp][JS(Hide_Fields)]% for the moment
- \fi
- \fi\fi}
-
-\def\setpagehelpdata[#1]%
- {\iflocation\expanded{\dosetpagehelpdata{#1}}\fi}
-
-\def\dosetpagehelpdata#1%
- {\doglobal\increment\nofhelpdataentries
- \savetwopassdata{hlp:\realfolio}{\nofhelpdataentries}{#1}}
-
-\setvalue{\e!start\v!helptext}[#1]%
- {\iflocation
- \global\settrue\somehelpdatadefined
- \setvalue{\e!stop\v!helptext}%
- %{\definesymbol[helpinfo:#1][{\doframedtext[\v!helptext]{\getbuffer[\v!helptext]}}]%
- % \dopresetfieldsymbol{helpinfo:#1}}%
- {\definesymbol[\v!helptext:#1][{\doframedtext[\v!helptext]{\getbuffer[\v!helptext]}}]%
- \dopresetfieldsymbol{\v!helptext:#1}}%
- \else
- \letvalue{\e!stop\v!helptext}\relax
- \fi
- \dostartbuffer[\v!helptext][\e!start\v!helptext][\e!stop\v!helptext]}
-
-\long\def\helptext[#1]#2%
- {\iflocation
- \global\settrue\somehelpdatadefined
- %\definesymbol[helpinfo:#1][{\doframedtext[\v!helptext]{#2}}]%
- %\dopresetfieldsymbol{helpinfo:#1}%
- \definesymbol[\v!helptext:#1][{\doframedtext[\v!helptext]{#2}}]%
- \dopresetfieldsymbol{\v!helptext:#1}%
- \fi}
-
-\let\definehelptext\helptext % for backward compabilities sake
-
-\def\dohelpdata#1%
- {\setbox\scratchbox\hbox
- {\startoverlay
- {\box\scratchbox}
- %{\definemainfield[help:#1][check][helpsetup][helpinfo:#1][helpinfo:#1]%
- {\definemainfield[help:#1][check][helpsetup][\v!helptext:#1][\v!helptext:#1]%
- \fitfield[help:#1]}
- \stopoverlay}}
-
-\def\helpdata
- {\iflocation
- \bgroup
- %\getpagehelpdata
- \ifx\pagehelpdata\empty \else
- \setupfields[\v!reset]%
- \setupfield
- [helpsetup]
- [\c!width=\v!fit,
- \c!height=\v!fit,
- \c!frame=\v!off,
- \c!clickin=JS(Hide_Fields),
- \c!option={\v!readonly,\v!hidden}]%
- \setbox\scratchbox\emptybox
- \processcommacommand[\pagehelpdata]\dohelpdata
- \box\scratchbox
- \fi
- \egroup
- \fi}
-
-\def\helpbutton % also gobble spaces between [][]
- {\dodoubleempty\dohelpbutton}
-
-\def\dohelpbutton
- {\ifsecondargument
- \expandafter\donohelpbutton
- \else
- \expandafter\dodohelpbutton
- \fi}
-
-\def\dodohelpbutton[#1][#2]#3[#4]% #2 is space gobbling dummy
- {\iflocation
- \setpagehelpdata[#4]%
- \useJSscripts[fld]%
- \button[#1]{#3}[JS(Vide_Hide_Fields{help:#4})]%
- \fi}
-
-\def\donohelpbutton[#1][#2]%
- {\dodohelpbutton[#1][]{}[#2]}
-
-\def\doifhelpinfo#1#2%
- {\iflocation
- \doifsymboldefinedelse{helpinfo:#1}{#2}\donothing
- \fi}
-
-\def\doifelsehelpinfo#1#2#3%
- {\iflocation
- \doifsymboldefinedelse{helpinfo:#1}{#2}{#3}%
- \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/scrn-int.mkii b/Master/texmf-dist/tex/context/base/mkii/scrn-int.mkii
deleted file mode 100644
index 01d8501e217..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/scrn-int.mkii
+++ /dev/null
@@ -1,2312 +0,0 @@
-%D \module
-%D [ file=scrn-int,
-%D version=1995.01.01,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Interaction,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% evt interactionbaren runtime laden (scheelt 8K)
-
-%D Still to be done properly.
-
-\writestatus{loading}{ConTeXt Screen Macros / Interaction}
-
-\unprotect
-
-% \expand vs \expanded
-
-% linked registers implementeren als een koppeling == mooier
-
-\presetlocalframed[\??lk]
-
-\newcounter\numberoflinks
-
-\def\stelkoppelingenin
- {\dodoubleargument\getparameters[\??lk]}
-
-\def\definieerkoppeling[#1]% % local loading !
- {\doifundefined{\s!link:#1:\s!list}
- {\expanded{\definetwopasslist{\s!link:#1}}% \expanded{\doloadtwopassdata{\s!link:#1}}%
- \getfirsttwopassdata{\s!link:#1}%
- \let\firstlink\twopassdata
- \getlasttwopassdata{\s!link:#1}%
- \let\lastlink\twopassdata
- \let\noflinks\noftwopassitems
- \gettwopassdata{\s!link:#1}%
- \let\currentlink\twopassdata
- \let\nextlink\twopassdata
- \setxvalue{\s!link:#1:}{\firstlink:\lastlink:\noflinks:\currentlink:\nextlink}}}
-
-\def\koppeling[#1]#2%
- {\bgroup
- \definieerkoppeling[#1]%
- \doglobal\increment\numberoflinks
- \gettwopassdata{\s!link:#1}%
- \def\next[##1:##2:##3:##4:##5]%
- {\edef\firstlink {0##1}%
- \edef\lastlink {0##2}%
- \edef\noflinks {0##3}%
- \edef\prevlink {0##4}%
- \edef\currentlink{0##5}}%
- \expanded{\next[\getvalue{\s!link:#1:}]}%
- \edef\nextlink{0\iftwopassdatafound\twopassdata\else\lastlink\fi}%
- \setxvalue{\s!link:#1:}{\firstlink:\lastlink:\noflinks:\currentlink:\nextlink}%
- \lazysavetwopassdata{\s!link:#1}{\numberoflinks}{\noexpand\realfolio}%
- \ifnum\noflinks<\plustwo
- \locationfalse
- \fi
- \iflocation
- \hbox
- {\setinteractionparameter\c!width\!!zeropoint
- #2\relax
- \hskip\@@lkdistance
- \dogotosomepage\??lk\gotobegincharacter\firstlink\hss
- \ifnum\noflinks>\plustwo
- \dogotosomepage\??lk\gobackwardcharacter\prevlink\hss
- \fi
- \ifnum\noflinks>\plustwo
- \dogotosomepage\??lk\goforwardcharacter\nextlink\hss
- \hskip\@@lkdistance
- \fi
- \dogotosomepage\??lk\gotoendcharacter\lastlink}%
- \else
- \hbox{#2}%
- \fi
- \egroup}
-
-\let\setupinteractionscreens\empty
-
-\def\docalculateinteractionscreen
- {\doifelse\@@scwidth\v!fit
- {\!!widtha\leftcombitotal
- \ifdim\backspace>\!!widtha\ifdim\backspace>\zeropoint\relax
- \advance\backspace -\!!widtha
- \fi\fi
- \advance\!!widtha\rightcombitotal
- \advance\!!widtha 2\dimexpr\@@scbackspace+\@@schoroffset\relax
- \advance\!!widtha \makeupwidth}
- {\doifelse\@@scwidth\v!max
- {\!!widtha\printpaperwidth}
- {\!!widtha\@@scwidth}}%
- \doifelse\@@scheight\v!fit
- {\!!heighta\dimexpr\topheight+\topdistance\relax
- \ifdim\topspace>\!!heighta\ifdim\topspace>\zeropoint\relax
- \advance\topspace -\!!heighta
- \fi\fi
- \advance\!!heighta \dimexpr\makeupheight+\bottomdistance+\bottomheight\relax
- \advance\!!heighta 2\dimexpr\@@sctopspace+\@@scveroffset\relax}
- {\doifelse\@@scheight\v!max
- {\!!heighta\printpaperheight}
- {\!!heighta\@@scheight}}%
- \doif\@@scdelay\v!none{\let\@@scdelay\zerocountervalue}}
-
-% The macro is not to be changed; only the \@@ia-variables
-% may be set! ConTeXt is the producer but we no longer
-% mention the pragma site, since we don't want to be bothered
-% with remarks about third party documents and/or associated
-% with documents produced outside our control.
-
-\def\doprepareidentity % beware, we need to construct
- {\let\!!stringa\@@iakeyword % an unexpanded space separated
- \let\@@iakeyword\empty % list of keywords from a comma
- \def\doprepareidentity##1% % separated one
- {\ifx\@@iakeyword\empty
- \appended\def\@@iakeyword{##1}%
- \else
- \appended\def\@@iakeyword{ ##1}%
- \fi}%
- \@EA\processcommalist\@EA[\!!stringa]\doprepareidentity
- \global\let\doprepareidentity\relax}
-
-%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
- {\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
-
-\def\initializepaper
- {\bgroup
- \ifx\@@ppleft \empty
- \ifx\@@ppright\empty
- \ifx\@@pptop \empty
- \ifx\@@ppbottom \empty
- \ifx\@@pcstate\v!start
- \locationfalse\fi\else
- \locationfalse\fi\else
- \locationfalse\fi\else
- \locationfalse\fi\else
- \locationfalse\fi
- \iflocation % without screen settings
- \egroup
- \dosetuppaper\papersize\paperwidth\paperheight
- \else
- \egroup
- \dosetuppaper\printpapersize\printpaperwidth\printpaperheight
- \fi}
-
-\appendtoks \initializepaper \to \everyshipout
-
-\def\doinitializepaper
- {\bgroup
- \docalculateinteractionscreen
- \ifdim\!!widtha>\paperwidth\ifdim\!!widtha>\zeropoint
- \paperwidth\!!widtha
- \fi\fi
- \ifdim\!!heighta>\paperheight\ifdim\!!heighta>\zeropoint
- \paperheight\!!heighta
- \fi\fi
- \dosetuppaper
- {\printpapersize}
- {\the\paperwidth}
- {\the\paperheight}%
- \egroup}
-
-\let\@@pcscreendata\empty
-
-\def\dosetupinteractionscreens % met a, b en \number
- {\doifnot\@@pcstate\v!start\dodosetupinteractionscreens}
-
-\setvalue{\??sc\c!option\v!max }{1} % tzt share with driver
-\setvalue{\??sc\c!option\v!bookmark }{2} % tzt share with driver
-\setvalue{\??sc\c!option\v!fit }{3} % tzt share with driver
-\setvalue{\??sc\c!option\v!doublesided}{4} % tzt share with driver
-
-\def\dodosetupinteractionscreens % met a, b en \number
- {\bgroup
- \docalculateinteractionscreen
- \!!counte=0\getvalue{\??sc\c!option\@@scoption}\relax
- % niet waterdicht
- \doifnot{\the\!!widtha\the\!!heighta}\@@pcscreendata
- {\xdef\@@pcscreendata{\the\!!widtha\the\!!heighta}%
- \showmessage\m!interactions1{\withoutpt\the\!!widtha,\withoutpt\the\!!heighta}}%
- % needs to be split: dimensions for each page
- % and mode per document and only once !
- \dosetupscreen \backoffset\topoffset\!!widtha\!!heighta{\the\!!counte}%
- \dosetupcropbox\backoffset\topoffset\!!widtha\!!heighta
- \egroup}
-
-\def\dosetupinteractionscreen[#1]%
- {\getparameters[\??sc][#1]%
- \ifproductionrun
- \let\initializepaper\doinitializepaper
- \let\setupinteractionscreens\dosetupinteractionscreens
- \fi}
-
-\appendtoks \setupinteractionscreens \to \everyfirstshipout % needed to get option=max etc working
-\appendtoks \setupinteractionscreens \to \everyshipout % needed for page/screen dimensions
-
-\def\setupinteractionscreen
- {\dosingleempty\dosetupinteractionscreen}
-
-%D Due to requests I finally decided to support bookmarks, a
-%D driver dependant way of showing tables of content. The most
-%D simple way of support is hooking bookmark generation into
-%D the existing list mechanisms. That way users can generate
-%D bookmarks automatically, although its entirely valid to add
-%D bookmarks by defining alternative ones. These will be added
-%D at the appropriate place in the list.
-
-% \hoofdstuk{het eerste hoofdstuk}
-%
-% \bookmark {de eerste bookmark} % optional overruled hoofdstuk
-%
-% .... text ....
-%
-% \placebookmarks [hoofdstuk,paragraaf,subparagraaf,subsubparagraaf,mylist]
-% [open list]
-%
-% \bookmark[mylist]{whatever}
-
-\def\@@bookmark {bm::}
-\def\@@booklevel{bl::}
-\def\@@bookcount{bc::}
-
-\definelist[\@@bookmark]
-
-\newtoks\postponedbookmarks
-
-\def\flushpostponedbookmark
- {\the\postponedbookmarks
- \global\postponedbookmarks\emptytoks}
-
-\def\simplebookmark#1%
- {\doglobal\prependtoks
- \writetolist[\@@bookmark]{}{#1}%
- \to\postponedbookmarks}
-
-\def\complexbookmark[#1]#2%
- {\doglobal\appendtoks\writetolist[#1]{}{#2}\to\postponedbookmarks}
-
-\definecomplexorsimple\bookmark
-
-\newif\iftracebookmarks \tracebookmarksfalse
-
-\let\tracebookmarks\tracebookmarkstrue
-
-\def\placebookmarks
- {\dodoubleempty\doplacebookmarks}
-
-\def\doplacebookmarks[#1][#2]%
- {\iflocation
- \iffirstargument
- \bgroup
- \ifsecondargument
- \doifelse{#2}\v!all
- {\edef\openbookmarklist{#1}}
- {\edef\openbookmarklist{#2}}%
- \else
- \let\openbookmarklist\empty
- \fi
- \xdef\doplacebookmarksindeed{\noexpand\dodoplacebookmarksindeed[#1][\openbookmarklist]}
- \egroup
- \else
- \expanded{\placebookmarks\@EA[\getvalue{\??ih\v!content\c!list}]}%
- \fi
- \fi}
-
-\def\dodoplacebookmarksindeed[#1][#2]%
- {\bgroup
- \edef\openbookmarklist{#2}%
- \global\let\bookmarklevellist\empty
- \def\bookmarklevelcount{0}%
- \doprocessbookmarks[#1]\dogetbookmarkelement
- \dolistelement{}{}{}{}{}{}% needed to finish the first pass
- \doprocessbookmarks[#1]\doputbookmarkelement
- \flushbookmark
- \egroup}
-
-\let\doplacebookmarksindeed\relax
-
-\prependtoks
- \doplacebookmarksindeed % new, now postponed so that halfway defined commands work out ok
-\to \everystoptext
-
-\def\doprocessbookmarks[#1]#2%
- {\let\dolistelement#2\relax
- \scratchcounter\zerocount
- \def\docommand##1%
- {\advance\scratchcounter \plusone
- \getlistlevel[##1]\listlevel{\the\scratchcounter}%
- \setxvalue{\@@bookcount\the\scratchcounter}{1}%
- \setxvalue{\@@booklevel##1}{\listlevel}}%
- \processcommalist[#1]\docommand
- \setxvalue{\@@bookcount0}{1}%
- \global\chardef\currentbookmarklevel\zerocount
- \global\chardef\previousbookmarklevel\zerocount
- \doutilities{listentries,#1,\@@bookmark}\jobname{#1}\relax\relax}
-
-\def\dodogetbookmarkelement#1#2#3#4#5#6%
- {\doifelsenothing{#1}
- {\global\chardef\currentbookmarklevel\zerocount}
- {\global\chardef\currentbookmarklevel\getvalue{\@@booklevel#1}\relax}%
- \ifnum\currentbookmarklevel>\previousbookmarklevel
- \setxvalue{\@@bookcount\the\currentbookmarklevel}{1}%
- \else\ifnum\currentbookmarklevel<\previousbookmarklevel
- \bgroup
- \!!counta\previousbookmarklevel
- \doloop
- {\let\bookmarktag\empty
- \!!countb\!!counta
- \advance\!!countb \minusone
- \dorecurse\!!countb
- {\edef\bookmarktag
- {\bookmarktag\getvalue{\@@bookcount\recurselevel}:}}%
- \edef\bookmarklevelcount
- {\getvalue{\@@bookcount\the\!!counta}}%
- \xdef\bookmarklevellist
- {\bookmarklevellist/\bookmarktag:\bookmarklevelcount/}%
- \advance\!!counta \minusone
- \ifnum\!!counta=\currentbookmarklevel
- \exitloop
- \fi}%
- \egroup
- \@EA\doglobal\@EA\increment\csname \@@bookcount\the\currentbookmarklevel\endcsname\relax
- \else
- \@EA\doglobal\@EA\increment\csname \@@bookcount\the\previousbookmarklevel\endcsname\relax
- \fi\fi
- \global\utilitydonetrue
- \global\chardef\previousbookmarklevel\currentbookmarklevel}
-
-\def\getbookmarklevelcount
- {\@EA\def\@EA\docommand\@EA[\@EA##\@EA1\@EA/\bookmarktag:##2/##3]%
- {\def\bookmarklevelcount{##2}}%
- \@EA\@EA\@EA\docommand\@EA\@EA\@EA[\@EA\bookmarklevellist\@EA/\bookmarktag:0/]}
-
-\def\dodoputbookmarkelement#1#2#3#4#5#6%
- {\doifelsenothing{#1}
- {\global\chardef\currentbookmarklevel\zerocount}
- {\global\chardef\currentbookmarklevel\getvalue{\@@booklevel#1}\relax}%
- \ifnum\currentbookmarklevel>\previousbookmarklevel
- \setxvalue{\@@bookcount\the\currentbookmarklevel}{1}%
- \else\ifnum\currentbookmarklevel<\previousbookmarklevel
- \@EA\doglobal\@EA\increment\csname \@@bookcount\the\currentbookmarklevel\endcsname\relax
- \else
- \@EA\doglobal\@EA\increment\csname \@@bookcount\the\previousbookmarklevel\endcsname\relax
- \fi\fi
- \let\bookmarktag\empty
- \!!countb\currentbookmarklevel
- \dorecurse\!!countb
- {\edef\bookmarktag
- {\bookmarktag\getvalue{\@@bookcount\recurselevel}:}}%
- \getbookmarklevelcount
- \iftracebookmarks
- \bgroup
- \par
- \bookmarktag\quad
- \dorecurse\currentbookmarklevel{\quad}\unskip#1\quad
- (\bookmarklevelcount)\quad
- \egroup
- \fi
- \global\chardef\previousbookmarklevel\currentbookmarklevel
- \global\utilitydonetrue
- \insertsomebookmark{#1}{\the\currentbookmarklevel}{\bookmarklevelcount}{#4}{#6}}
-
-\def\dogetbookmarkelement#1#2#3#4#5#6%
- {\doifnot{#1}\@@bookmark
- {\dodogetbookmarkelement{#1}{#2}{#3}{#4}{#5}{#6}}}
-
-\def\doputbookmarkelement#1#2#3#4#5#6%
- {\doifelse{#1}\@@bookmark
- {\localbookmark{#4}}
- {\flushbookmark
- \dodoputbookmarkelement{#1}{#2}{#3}{#4}{#5}{#6}}}
-
-\let\flushbookmark\relax
-\let\localbookmark\gobbleoneargument
-
-\def\insertsomebookmark#1#2#3#4#5%
- {\gdef\flushbookmark
- {\doinsertsomebookmark{#1}{#2}{#3}{#4}{#5}{g}}%
- \gdef\localbookmark##1%
- {\doinsertsomebookmark{#1}{#2}{#3}{##1}{#5}{l}}}
-
-\def\doinsertsomebookmark#1#2#3#4#5#6%
- {\global\utilitydonetrue
- \global\let\localbookmark\gobbleoneargument
- \global\let\flushbookmark\relax
- \doifinstringelse{#1}\openbookmarklist
- {\chardef\openbookmark\plusone}
- {\chardef\openbookmark\zerocount}%
- \iftracebookmarks(#6: #4)\quad(\the\openbookmark)\par\fi
- \doinsertbookmark{#2}{#3}{#4}{#5}{\openbookmark}}
-
-% \startinteractionmenu[rechts]
-% \but [eerste] eerste \\
-% \txt hello world \\
-% \but [tweede] tweede \\
-% \nop \\
-% \but [tweede] tweede \\
-% \rul whow \\
-% \but [tweede] tweede \\
-% \raw hello world \\
-% \but [tweede] tweede \\
-% \com \vfill \\
-% \but [derde] derde \\
-% \stopinteractionmenu
-
-\newif\iflocationmenupermitted
-
-\def\testinteractionmenu#1%
- {\iflocation
- \doifelse\@@iamenu\v!on
- {\doifelsevalue{\??am#1\c!state}\v!start
- {\global\locationmenupermittedtrue}
- {\global\locationmenupermittedfalse}}
- {\global\locationmenupermittedfalse}%
- \else
- \global\locationmenupermittedfalse
- \fi}
-
-\def\dodisableinteractionmenu[#1][#2][#3]%
- {\def\dododisableinteractionmenu##1%
- {\doifelse{#3}{}
- {\letvalue{\??am##1\c!obstruction}\empty}
- {\edef\interactieblokkade{\getvalue{\??am##1\c!obstruction}}
- \def\docommand####1{#1{####1}{\interactieblokkade}}% #1 = \remove or \add
- \processcommalist[#3]\docommand
- \setevalue{\??am##1\c!obstruction}{\interactieblokkade}}}%
- \processcommalist[#2]\dododisableinteractionmenu}
-
-\def\disableinteractionmenu
- {\dotripleempty\dodisableinteractionmenu[\addtocommalist]}
-
-\def\enableinteractionmenu
- {\dotripleempty\dodisableinteractionmenu[\removefromcommalist]}
-
-% ja : kader/achtergrond met tekst
-% leeg : kader/achtergrond maar geen tekst
-% nee : alleen ruimte reserveren
-% geen : helemaal weglaten
-
-\newif\iflocationdummy
-\newif\ifskippedmenuitem
-
-\newif\iflocationempty
-\newif\iflocationclick
-
-% ja : kader/achtergrond met tekst
-% leeg : kader/achtergrond maar geen tekst
-% nee : alleen ruimte reserveren
-% geen : helemaal weglaten
-%
-% \setupinteractionmenu[right][samepage=yes, unknownreference=yes]
-% \setupinteractionmenu[right][samepage=empty,unknownreference=empty]
-% \setupinteractionmenu[right][samepage=no, unknownreference=no]
-% \setupinteractionmenu[right][samepage=none, unknownreference=none]
-%
-% \startinteractionmenu[right]
-% \but [firstpage] first \\
-% \but [lastpage] last \\
-% \but [somepage] crap \\
-% \stopinteractionmenu
-
-\def\dosetlocationboxcontent#1[#2]#3[#4]%
- {\global\skippedmenuitemfalse
- \setbox\locationbox\hbox
- {\resetgoto % anders cyclische aanroep !
- \localframed[#1][#2]{\dolocationattributes{#1}\c!style\c!color{#3}}}%
- \iflocationclick
- \hbox{\gotolocation{#4}{\box\locationbox}}%
- \else
- \hbox{\box\locationbox}%
- \fi}
-
-\let\dosetlocationboxyes\dosetlocationboxcontent
-
-\def\dosetlocationboxempty#1[%
- {\dosetlocationboxcontent{#1}[\c!empty=\v!yes,}
-
-\def\dosetlocationboxno#1[%
- {\dosetlocationboxcontent{#1}[\c!empty=\v!yes,\c!frame=,\c!background=,}
-
-\def\dosetlocationboxnone#1[#2]#3[#4]%
- {\global\skippedmenuitemtrue}
-
-\def\setlocationboxyes#1[#2]#3[#4]%
- {\locationclicktrue
- \setbox\locationbox\hbox
- {\resetgoto % anders cyclische aanroep !
- \global\skippedmenuitemfalse
- \gotolocation
- {#4}% % needed
- {\ifrealreferencepage
- \ifcase\csname\??am\??am\csname#1\c!samepage\endcsname\endcsname\relax
- \copycsname#1\c!color\endcsname\csname#1\c!contrastcolor\endcsname
- \localframed[#1][#2]{\dolocationattributes{#1}\c!style\c!color{#3}}%
- \or
- \localframed[#1][\c!empty=\v!yes,#2]{\dolocationattributes{#1}\c!style\c!color{#3}}%
- \or
- \localframed[#1][\c!empty=\v!yes,\c!frame=,\c!background=,#2]{\dolocationattributes{#1}\c!style\c!color{#3}}%
- \or
- \global\skippedmenuitemtrue
- \fi
- \else
- \localframed[#1][#2]{\dolocationattributes{#1}\c!style\c!color{#3}}%
- \fi}}%
- \ifskippedmenuitem\else\box\locationbox\fi}
-
-\def\setlocationboxnop#1[#2]#3[#4]% inefficient as text can be outside box
- {\locationclickfalse
- \setbox\locationbox\hbox
- {\resetgoto % anders cyclische aanroep !
- \global\skippedmenuitemfalse
- \ifcase\csname\??am\??am\csname#1\c!unknownreference\endcsname\endcsname\relax
- \localframed[#1][#2]{\dolocationattributes{#1}\c!style\c!color{#3}}%
- \or
- \localframed[#1][\c!empty=\v!yes,#2]{\dolocationattributes{#1}\c!style\c!color{#3}}%
- \or
- \localframed[#1][\c!empty=\v!yes,\c!frame=,\c!background=,#2]{\dolocationattributes{#1}\c!style\c!color{#3}}%
- \or
- \global\skippedmenuitemtrue
- \fi}%
- \ifskippedmenuitem\else\box\locationbox\fi}
-
-\def\setlocationboxraw#1[#2]#3[#4]%
- {\localframed[#1][#2]{\dolocationattributes{#1}\c!style\c!color{#3}}}
-
-\def\setlocationbox#1[#2]#3[#4]%
- {\bgroup % really needed !
- \edef\permittedreferences{\csname#1\c!obstruction\endcsname}%
- \doifreferencepermittedelse{#4}%
- {\setlocationboxyes{#1}[#2]{#3}[#4]}%
- {\setlocationboxnop{#1}[#2]{#3}[#4]}%
- \egroup}
-
-\def\setlocationnop#1[#2]#3%
- {\localframed[#1][#2]{#3}}
-
-\def\executeamboxcommands#1#2#3#4#5%
- {%\processaction
- % [\getvalue{\??am#1\c!dummy}]
- % [ \v!yes=>\chardef\handleunknownmenuitem=0\relax,
- % \v!empty=>\chardef\handleunknownmenuitem=1\relax,
- % \v!no=>\chardef\handleunknownmenuitem=2\relax]%
- \getvalue{\??am#1#3}\relax
- \setamboxcommands{#1}{#4}%
- \ignorespaces#2\unskip
- \getvalue{\??am#1#5}}
-
-\newcounter\currentamposition
-
-\newtoks\everysetmenucommands
-
-\def\setamboxcommands#1#2%
- {\def\currentmenu{#1}% % kan nog eerder
- \def\currentsubmenu{#2}% % ? ?
- \doglobal\newcounter\currentamposition
- \the\everysetmenucommands}
-
-\def\menu@@amboxcommand#1\\%
- {\dontleavehmode
- \bgroup
- \ignorespaces#1\unskip\relax
- \ifskippedmenuitem \else
- \getvalue{\??am\currentmenu\currentsubmenu}%
- \fi
- \egroup
- \ignorespaces}
-
-\appendtoks
- \let\@@amboxcommand\menu@@amboxcommand
-\to \everysetmenucommands
-
-\def\menu@raw[#1]#2\\%
- {\@@amboxcommand\gotobox{\ignorespaces#2\unskip}[#1]\\}%
-
-\def\menu@but[#1]#2\\%
- {\@@amboxcommand\do@@amposition\currentmenu{#1}{\setlocationbox{\??am\currentmenu}[]{\ignorespaces#2\unskip}[#1]}\\}%
-
-\def\menu@got[#1]#2\\% pas op! offset
- {\@@amboxcommand\setlocationbox{\??am\currentmenu}[\c!frame=\v!off,\c!background=]{\ignorespaces#2\unskip}[#1]\\}%
-
-\def\menu@nop#1\\%
- {\@@amboxcommand\setlocationboxraw{\??am\currentmenu}[\c!frame=\v!off,\c!background=,\c!empty=\v!yes]{\ignorespaces#1\unskip}[]\\}%
-
-\def\menu@txt#1\\%
- {\@@amboxcommand\localframed[\??am\currentmenu][\c!frame=\v!off,\c!background=]{\ignorespaces#1\unskip}\\}%
-
-\def\menu@rul#1\\% ook \do@@amposition !
- {\@@amboxcommand\localframed[\??am\currentmenu][]{\ignorespaces#1\unskip}\\}%
-
-\def\menu@com#1\\%
- {\ignorespaces#1\unskip\ignorespaces}%
-
-\appendtoks
- \let\raw\menu@raw
- \let\but\menu@but
- \let\got\menu@got
- \let\nop\menu@nop
- \let\txt\menu@txt
- \let\rul\menu@rul
- \let\com\menu@com
-\to \everysetmenucommands
-
-\ifx\do@@amposition\undefined
- \let\do@@amposition\gobbletwoarguments % hook for positional thingies
-\fi
-
-\let\currentmenu\empty
-
-% beware : never change the concept of pbgoffset
-
-\def\menuparameter#1{\csname\??am\currentmenu#1\endcsname}
-
-\def\@@amhbox#1#2#3#4%
- {\def\currentmenu{#3}%
- \testinteractionmenu{#3}%
- \iflocationmenupermitted
- \bgroup
- \showcomposition
- \scratchdimen\dimexpr
- \makeupwidth
- +\pagebackgroundhoffset
- +\pagebackgroundhoffset
- -\menuparameter\c!leftoffset
- -\menuparameter\c!rightoffset
- \relax
- \setbox\scratchbox\hbox to \scratchdimen
- {\forgetall\executeamboxcommands{#3}{#4}\c!left\c!middle\c!right}%
- \setbox\scratchbox\hbox{\do@@ammenuposition{#3}{\box\scratchbox}}%
- \wd\scratchbox\makeupwidth % geen \ht=#2 setting (yet)
- \hskip\dimexpr-\pagebackgroundhoffset+\menuparameter\c!leftoffset\relax
- \box\scratchbox
- \egroup
- \else
- #1\relax
- \fi}
-
-\def\@@amvbox#1#2#3#4% don't change skipping, this one works!
- {\def\currentmenu{#3}%
- \testinteractionmenu{#3}%
- \iflocationmenupermitted
- \bgroup
- \showcomposition
- \scratchdimen\dimexpr
- \textheight
- +\pagebackgroundvoffset
- +\pagebackgroundvoffset
- +\pagebackgrounddepth
- -\menuparameter\c!topoffset
- -\menuparameter\c!bottomoffset
- \relax
- \setbox\scratchbox\vbox to \scratchdimen
- {\forgetall % Voor't geval de afstand
- %\setupblank[\v!standard]% % (tijdelijk) is aangepast.
- \restorestandardblank
- \hsize#2\relax
- \executeamboxcommands{#3}{#4}\c!before\c!inbetween\c!after}%
- \setbox\scratchbox\vbox{\hbox{\do@@ammenuposition{#3}{\box\scratchbox}}}%
- \setbox\scratchbox\vbox
- {\ht\scratchbox\zeropoint
- \vskip\dimexpr-\pagebackgroundvoffset+\menuparameter\c!topoffset\relax
- \box\scratchbox
- \vskip\pagebackgroundvoffset}% overbodig
- \ht\scratchbox\textheight
- \wd\scratchbox#2\relax
- \box\scratchbox
- \egroup
- \else
- #1\relax
- \fi}
-
-\ifx\do@@ammenuposition\undefined
- \let\do@@ammenuposition\gobbleoneargument % hook for positional thingies
-\fi
-
-\setvalue{\??am\s!do\v!right }{\@@amvbox{\dodummypageskip\v!right }\rightedgewidth}
-\setvalue{\??am\s!do\v!left }{\@@amvbox{\dodummypageskip\v!left }\leftedgewidth }
-\setvalue{\??am\s!do\v!top }{\@@amhbox{\dodummypageskip\v!top }\topheight }
-\setvalue{\??am\s!do\v!bottom}{\@@amhbox{\dodummypageskip\v!bottom}\bottomheight }
-
-\def\dointeractionmenu#1#2%
- {\getvalue{\??am\s!do\getvalue{\??am#1\c!location}}{#1}{#2}}
-
-\unexpanded\def\interactionmenu[#1]%
- {\getvalue{\??am\c!menu#1}}
-
-\def\horizontalinteractionmenu#1#2#3#4%
- {\ifdim#2>\zeropoint % new
- \scratchdimen\zeropoint
- \setbox\scratchbox\hbox
- {\def\docommand##1%
- {\doifnotvalue{\??am##1\c!state}\v!none
- {\hskip\scratchdimen
- \setbox2\hbox to #2
- {\getvalue{\??am##1#3}\interactionmenu[##1]\getvalue{\??am##1#4}}%
- \doifelsevalue{\??am##1\c!distance}\v!overlay
- {\scratchdimen\zeropoint
- \wd2\zeropoint}%
- {\scratchdimen\getvalue{\??am##1\c!distance}}%
- \box2}}%
- \startinteraction
- \processcommacommand[\getvalue{\??am#1}]\docommand
- \stopinteraction}%
- \wd\scratchbox#2\relax
- \box\scratchbox
- \fi}
-
-\def\verticalinteractionmenu#1#2#3#4%
- {\ifdim#2>\zeropoint % new
- \scratchdimen\zeropoint
- \setbox\scratchbox\vbox
- {\def\docommand##1%
- {\doifnotvalue{\??am##1\c!state}\v!none
- {\vskip\scratchdimen
- \setbox2\vbox to #2
- {\getvalue{\??am##1#3}\interactionmenu[##1]\getvalue{\??am##1#4}}%
- \doifelsevalue{\??am##1\c!distance}\v!overlay
- {\scratchdimen\zeropoint
- \offinterlineskip
- \dp2\zeropoint
- \ht2\zeropoint}%
- {\scratchdimen\getvalue{\??am##1\c!distance}}%
- \box2}}%
- \startinteraction
- \processcommacommand[\getvalue{\??am#1}]\docommand
- \stopinteraction}%
- \ht\scratchbox#2\relax
- \dp\scratchbox\zeropoint
- \box\scratchbox
- \fi}
-
-\letvalue{\??am\v!left }\empty
-\letvalue{\??am\v!right}\empty
-\letvalue{\??am\v!top }\empty
-\letvalue{\??am\v!bottom }\empty
-
-% todo : \defineinteractionmenuclass
-
-\def\interactionmenus[#1]%
- {\iflocation
- \getvalue{\??am\??am\c!menu#1}%
- \else
- \dodummypageskip{#1}%
- \fi}
-
-\setvalue{\??am\??am\c!menu\v!left }{\horizontalinteractionmenu\v!left \leftedgewidth \c!left \c!right}
-\setvalue{\??am\??am\c!menu\v!right }{\horizontalinteractionmenu\v!right \rightedgewidth\c!left \c!right}
-\setvalue{\??am\??am\c!menu\v!top }{\verticalinteractionmenu \v!top \topheight \c!before\c!after}
-\setvalue{\??am\??am\c!menu\v!bottom}{\verticalinteractionmenu \v!bottom\bottomheight \c!before\c!after}
-
-% this can be implemented with the following command (which
-% is new, undocumented, experimental, untested, etc etc)
-
-\def\defineinteractionmenuclass
- {\dodoubleargument\dodefineinteractionmenuclass}
-
-\def\dodefineinteractionmenuclass[#1][#2]% tag hori|veri
- {\doifelse{#2}\v!vertical
- {\setvalue{\??am\??am\c!menu#1}{\verticalinteractionmenu {#1}{\getvalue{\??am#1\c!width }}\c!before\c!after}}
- {\setvalue{\??am\??am\c!menu#1}{\horizontalinteractionmenu{#1}{\getvalue{\??am#1\c!height}}\c!left\c!right }}}
-
-% \setupinteraction[menu=on,state=start]
-%
-% \defineinteractionmenuclass[test] [vertical]
-% \defineinteractionmenuclass[another][horizontal]
-%
-% \defineinteractionmenu[test] [left][state=start,width=4cm]
-% \defineinteractionmenu[another][top] [state=start,height=1cm]
-%
-% \startinteractionmenu[test]
-% \but [firstpage] test-a \\
-% \but [nextpage] test-b \\
-% \stopinteractionmenu
-%
-% \startinteractionmenu[another]
-% \but [firstpage] test-a \\
-% \but [nextpage] test-b \\
-% \stopinteractionmenu
-%
-% \setupheadertexts[{\interactionmenu[another]}]
-%
-% \starttext
-%
-% test \interactionmenu[test] \page
-% test \interactionmenu[test] \page
-%
-% \stoptext
-
-%D This can save complicated menu macros when one want to
-%D keep control over parts of a menu (i.e.\ turn them on and
-%D off). We could have achieved something similar with modes.
-
-\def\local@@ambox#1#2#3#4% don't change skipping, this one works!
- {\bgroup
- \testinteractionmenu{#3}%
- \iflocationmenupermitted
- \executeamboxcommands{#3}{#4}\c!before\c!inbetween\c!after
- \else
- #1\relax
- \fi
- \egroup}
-
-\def\includemenu[#1]%
- {\doifvalue{\??am#1\c!state}\v!local
- {\bgroup
- \letvalue{\??am#1\c!state}\v!start
- \let\@@amvbox\local@@ambox
- \let\@@amhbox\local@@ambox
- \getvalue{\??am\c!menu#1}%
- \egroup}}
-
-%D We also need an explicit position control some day. I'll
-%D do that when I need it. [The stacking order.]
-
-\newif\ifextendedmenu
-
-% [name] [location]
-% [name] [location] [pars]
-
-\def\defineinteractionmenu
- {\dotripleempty\dodefineinteractionmenu}
-
-\def\dodefineinteractionmenu[#1][#2][#3]%
- {% main settings
- \letvalue{\??am\c!menu#1}\empty
- \setvalue{\@@dodolistelement#1}{\def\dosomelistelement{\dodomenulistelement{#1}}}%
- \presetlocalframed[\??am#1]%
- % register location
- \expanded{\addtocommalist{#1}\@EA\noexpand\csname\??am#2\endcsname}%
- % inherit settings
- \doifnot{#1}{#2}
- {\copyparameters[\??am#1][\??am#2]
- [\c!left,\c!middle,\c!right,\c!before,\c!after,\c!inbetween,%
- \c!width,\c!height,\c!distance,\c!offset,%
- \c!frame,\c!framecolor,\c!rulethickness,%
- \c!background,\c!backgroundcolor,\c!backgroundscreen,%
- \c!style,\c!color,\c!contrastcolor,\c!samepage,\c!unknownreference,%
- \c!leftoffset,\c!rightoffset,\c!topoffset,\c!bottomoffset]}%
- % additional settings
- \getparameters[\??am#1][\c!location=#2,\c!obstruction=,#3]}
-
-\def\setupinteractionmenu
- {\dodoubleargument\dosetupinteractionmenu}
-
-\def\dosetupinteractionmenu[#1][#2]%
- {\def\docommand##1{\getparameters[\??am##1][#2]}%
- \processcommalist[#1]\docommand}
-
-\expandafter\chardef\csname\??am\??am\v!yes \endcsname\zerocount
-\expandafter\chardef\csname\??am\??am\v!empty\endcsname\plusone
-\expandafter\chardef\csname\??am\??am\v!no \endcsname\plustwo
-\expandafter\chardef\csname\??am\??am\v!none \endcsname\plusthree
-\expandafter\chardef\csname\??am\??am \endcsname\plusone % default
-
-\processbetween{\v!interactionmenu}\dostartinteractionmenu
-
-\def\dostartinteractionmenu#1%
- {\dodostartinteractionmenu#1\dodostopinteractionmenu}
-
-\def\dodostartinteractionmenu[#1]#2\dodostopinteractionmenu
- {\setvalue{\??am\c!menu#1}{\extendedmenutrue\dointeractionmenu{#1}{#2}}}
-
-\def\resetinteractionmenu[#1]%
- {\letvalue{\??am\c!menu#1}\empty}
-
-\def\dodomenulistelement#1#2#3#4#5#6#7%
- {\setbox0=\hbox
- {\let\gotolocation\gobbleoneargument % hack to catch last []
- %\locationclickfalse % ipv ^
- \docheckrealreferencepage{#7}%
- \setlocationboxyes
- {\??am#1}% % needed !
- []% no settings
- {\limitatetext{#5}{\getvalue{\??li#2\c!maxwidth}}{\unknown}}% % needed !
- []}% normally the destination, catch by gobble
- \@@amboxcommand\do@@amposition{#1}{#7}% beware, we pass the pagenumber
- {\ignorespaces\linklisttoelement{#3}{#6}{#7}{\box0}\unskip}\\}
-
-% \scherm moet worden als \page
-
-\def\screen
- {\dosingleempty\doscreen}
-
-\def\doscreen[#1]%
- {\iflocation\page[#1]\fi}
-
-\unexpanded\def\menubutton
- {\dodoubleempty\domenubutton}
-
-\def\domenubutton[#1]%
- {\iffirstargument
- \ifsecondargument
- \@EAEAEA\domenubuttonB
- \else
- \doifassignmentelse{#1}
- {\@EAEAEA\domenubuttonC}
- {\@EAEAEA\domenubuttonD}%
- \fi
- \else
- \@EA\domenubuttonA
- \fi[#1]}
-
-\def\domenubuttonA[#1][#2]#3[#4]% normal button, no parameters
- {\bgroup
- %\locationdummytrue
- \setlocationbox\??bt[]{#3}[#4]%
- \egroup}
-
-\def\domenubuttonB[#1][#2]#3[#4]% menu button, with parameters
- {\bgroup
- %\locationdummytrue
- \setlocationbox{\??am#1}[#2]{#3}[#4]%
- \egroup}
-
-\def\domenubuttonC[#1][#2]#3[#4]% normal button, with parameters
- {\bgroup
- %\locationdummytrue
- \setlocationbox\??bt[#1]{#3}[#4]%
- \egroup}
-
-\def\domenubuttonD[#1][#2]#3[#4]% menu button, no parameters
- {\bgroup
- %\locationdummytrue
- \setlocationbox{\??am#1}[]{#3}[#4]%
- \egroup}
-
-\def\menubox
- {\dodoubleempty\domenubox}
-
-\def\domenubox[#1][#2]#3%
- {\bgroup
- \let\setlocationbox\setlocationboxraw
- \domenubutton[#1][#2]#3[]%
- \egroup}
-
-% Hier volgen de synchronisatiemacro's:
-
-\def\syncprefix{sync}
-
-%def\syncmarker{syncmark}
-%\definemarking[\syncmarker]
-%\setupmarking[\syncmarker][\c!expansie=\v!ja]
-
-\newmark\syncmarker
-
-\newcounter\synccounter
-
-\newif\ifsynchronisation
-
-\def\startsynchronization%
- {\iflocation\ifsynchronisation
- \doglobal\increment\synccounter
- \fi\fi}
-
-\def\stopsynchronization%
- {\iflocation\ifsynchronisation
- %\thisisdestination{\syncprefix:\synccounter}%
- \pagereference[\syncprefix:\synccounter]%
- \ifvmode
- \@EA\setmark\@EA\syncmarker\@EA{\synccounter} % \marking[\syncmarker]{\synccounter}%
- \else
- \showmessage\m!interactions4\synccounter
- \fi
- \fi\fi}
-
-\def\synchronize%
- {\startsynchronization
- \stopsynchronization}
-
-\def\dosetupsynchronization[#1]%
- {\getparameters[\??sy][#1]%
- \doifelse\@@systate\v!start
- \synchronisationtrue
- \synchronisationfalse}
-
-\def\setupsynchronization
- {\dosingleargument\dosetupsynchronization}
-
-\def\definesynchronization
- {\dosingleargument\dodefinesynchronization}
-
-\def\setupsynchronizationbar
- {\dodoubleargument\getparameters[\??ba]}
-
-\presetlocalframed[\??ba]
-
-\setvalue{synchronisatie\v!page}[#1]%
- {\bgroup
- %\setupinteraction[\c!width=\!!zeropoint]%
- \setinteractionparameter\c!width\!!zeropoint
- \setbox0\hbox
- {\localframed[\??ba][]{\dolocationattributes\??ba\c!style\c!color{\strut\@@batext}}}%
- \dontcomplain
- \def\atthebottom
- {\leaders\hrule\!!depth1ex\!!height-.5ex\hfil}%
- \def\atthetop##1##2##3%
- {\dimen0=\wd0
- \divide\dimen0 3
- \multiply\dimen0 ##2\relax
- \dimen2=.25em % brrr
- \advance\dimen0 -##3\dimen2
- %\gotodestination
- % {}{#1}{\syncprefix:##1}{}
- % {\hbox to \dimen0{\color[\locationcolor\@@bacolor]{\atthebottom}}}}%
- \gotobox
- {\hbox to \dimen0{\color[\locationcolor\@@bacolor]{\atthebottom}}}%
- [#1::\syncprefix:##1]}%
- \hbox
- {\def\check##1##2%
- {\edef##2{0##1\syncmarker}%
- \ifnum0##2=0 \def##2{1}\fi}%
- \check\gettopmark\top
- \check\getfirstmark\first
- \check\getbotmark\bot
- \setbox2\hbox to \wd0
- {\ifnum\top=\first\relax
- \ifnum\first=\bot\relax
- \atthetop\first30\relax
- \else
- \atthetop\first21\hss\atthetop\bot11\relax
- \fi
- \else
- \ifnum\first=\bot\relax
- \atthetop\top11\hss\atthetop\first21\relax
- \else
- \atthetop\top11\hss\atthetop\first11\hss\atthetop\bot11\relax
- \fi
- \fi}%
- \wd2=\zeropoint\box2
- \box0\relax}%
- \egroup}
-
-\setvalue{synchronisatie\v!local}[#1]%
- {\bgroup
- %\setupinteraction[\c!width=\!!zeropoint]%
- \setinteractionparameter\c!width\!!zeropoint
- \def\blackrule{\hbox{\vrule\!!height.5em\!!width.5em}}%
- %\gotodestination
- % {}{##1}{\syncprefix:#1}{0}
- % {\color[\locationcolor\@@bacolor]{\blackrule}}%
- \gotobox %
- {\color[\locationcolor\@@bacolor]{\blackrule}}%
- [#1::\syncprefix:\synccounter]%
- \egroup}
-
-\def\synchronizationbar[#1][#2]%
- {\iflocation\ifsynchronisation
- \bgroup
- \setupsynchronizationbar
- [\c!text=\getvalue{doc:des:#1},#2]%
- \getvalue{synchronisatie\@@baalternative}[#1]%
- \egroup
- \fi\fi}
-
-% A nice application of glue. All this code will be rewritten and
-% generalized.
-
-\newbox\interactionbarbox
-
-\newif\ifbarsymbol
-
-\def\dogotosomepage#1#2#3% nog checken !
- {\checkreferences % nodig ??
- \hbox
- {\iflocation
- \ifnum#3=\realpageno
- #2%
- \else
- \gotorealpage\empty\empty{#3}{\doifsomething{#1}{\dolocationattributes{#1}\c!style\c!color}{#2}}%
- \fi
- \else
- #2%
- \fi}}
-
-\def\dogotosomecontrastpage#1#2#3% nog checken, may replace previous
- {\checkreferences % nodig ??
- \hbox
- {\iflocation
- \ifnum#3=\realpageno
- \gotorealpage\empty\empty{#3}{\doifsomething{#1}{\dolocationattributes{#1}\c!style\c!contrastcolor}{#2}}%
- \else
- \gotorealpage\empty\empty{#3}{\doifsomething{#1}{\dolocationattributes{#1}\c!style\c!color}{#2}}%
- \fi
- \else
- #2%
- \fi}}
-
-\presetlocalframed[\??ib]
-
-\def\interactionbara % we need better control over contrastcolor
- {\iflocation % maybe just use gotopage and set colors
- \bgroup
- \setinteractionparameter\c!width\zeropoint
- \setupblackrules[\c!height=\v!max,\c!depth=\v!max]%
- \!!widthb\dimexpr\@@ibwidth-2.75\emwidth\relax
- \!!widtha\dimexpr\!!widthb/\lastpage\relax
- \bgroup
- \advance\realpageno\minusone
- \ifvoid\interactionbarbox
- \bgroup
- \processaction
- [\@@ibstep]
- [ \v!small=>\scratchdimen.25\emwidth,
- \v!medium=>\scratchdimen.5\emwidth,
- \v!big=>\scratchdimen\emwidth,
- \s!unknown=>\scratchdimen\!!widtha]%
- \ifdim\!!widtha<\scratchdimen\relax
- \!!counta\numexpr\scratchdimen/\!!widtha\relax
- \else
- \!!counta\@@ibstep\relax
- \fi
- \!!widtha\!!counta\!!widtha
- \setbox\scratchbox\hbox{\blackrule[\c!width=\!!widtha,\c!color=middlegray]}% color here, else no mkiv
- \global\setbox\interactionbarbox\hbox to \!!widthb
- {\hss
- \dostepwiserecurse\plusone\lastpage\!!counta
- {\gotorealpage\empty\empty\recurselevel{\copy\scratchbox}}%
- \hss}%
- \wd\interactionbarbox\zeropoint
- \egroup
- \fi
- \egroup
- \noindent
- \strut
- \hbox to \@@ibwidth
- {\dontcomplain
- \setupblackrules[\c!width=\emwidth]%
- \dogotosomecontrastpage\??ib\blackrule\firstpage
- \hss
- \copy\interactionbarbox
- \hbox to \!!widthb
- {\ifdim\!!widtha<\emwidth
- \!!widtha\emwidth
- \fi
- \setupblackrules[\c!width=\!!widtha]%
- \ifnum\realpageno>\plusone
- \!!counta\numexpr\realpageno-\plustwo\relax
- \hskip\zeropoint\!!plus\!!counta \s!sp\relax % cm gives overflow
- \dogotosomepage\??ib\blackrule\prevpage
- \fi
- \dogotosomecontrastpage\??ib{\blackrule[\c!width=.5em]}\realpageno
- \ifnum\realpageno<\lastpage\relax
- \dogotosomepage\??ib\blackrule\nextpage
- \!!counta\numexpr\lastpage-\realpageno-\plusone\relax
- \hskip\zeropoint\!!plus\!!counta \s!sp\relax % cm gives overflow
- \fi}%
- \hss
- \dogotosomecontrastpage\??ib\blackrule\lastpage}%
- \egroup
- \fi}
-
-\def\interactionbarb
- {\ifnum\lastpage>\firstpage\relax
- \interactionbuttons[\v!firstpage,\v!previouspage,\v!nextpage,\v!lastpage]%
- \fi}
-
-\def\interactionbarc
- {\iflocation
- \ifnum\lastpage>\plusone
- \hbox to \@@ibwidth
- {\setupblackrules[\c!height=\@@ibheight,\c!depth=\@@ibdepth]%
- \scratchdimen\dimexpr(\@@ibwidth-4\emwidth)/\numexpr\lastpage+\minusone\relax\relax
- \!!widtha\numexpr\realpageno+\minusone\relax\scratchdimen
- \!!widthb\numexpr\lastpage-\realpageno\relax\scratchdimen
- \startcolor[\locationcolor\@@ibcolor]%
- \dogotosomepage\empty{\blackrule[\c!width=\emwidth]}\firstpage
- \hss
- \dogotosomepage\empty{\blackrule[\c!width=\!!widtha]}\prevpage
- \color[\@@ibcontrastcolor]{\blackrule[\c!width=\emwidth]}%
- \dogotosomepage\empty{\blackrule[\c!width=\!!widthb]}\nextpage
- \hss
- \dogotosomepage\empty{\blackrule[\c!width=\emwidth]}\lastpage
- \stopcolor}%
- \fi
- \fi}
-
-\def\interactionbard
- {\iflocation\ifshowingsubpage
- \ifnum\nofsubpages>\plusone
- \hbox \bgroup
- \setinteractionparameter\c!width\!!zeropoint
- \ifbarsymbol
- \setupsymbolset[\@@iasymbolset]%
- \def\dogotox##1%
- {\hbox{\symbol[\ifcase##1 \v!previous\or\v!somewhere\or\v!next\fi]}}%
- \else
- \def\dogotox##1%
- {\hbox{\vrule\!!height\@@ibheight\!!depth \@@ibdepth\!!width \@@ibwidth}}%
- \fi
- \dostepwiserecurse\plusone\nofsubpages\plusone
- {\bgroup
- \scratchcounter\numexpr\recurselevel+\firstsubpage+\minusone\relax
- \ifnum\scratchcounter<\realpageno\relax
- \dogotosomecontrastpage\??ib{\dogotox0}\scratchcounter
- \else\ifnum\scratchcounter=\realpageno\relax
- \dogotosomecontrastpage\??ib{\dogotox1}\scratchcounter
- \else
- \dogotosomecontrastpage\??ib{\dogotox2}\scratchcounter
- \fi\fi
- \egroup
- \hskip\@@ibdistance}%
- \unskip % not needed
- \egroup
- \fi
- \fi\fi}
-
-\def\interactionbare% KAN WORDEN GECOMBINEERD MET D
- {\iflocation\ifshowingsubpage
- \ifnum\nofsubpages>\plusone
- \bgroup
- \!!widthb\dimexpr\nofsubpages\dimexpr\@@ibdistance\relax-\@@ibdistance\relax % (n-1)
- \!!widtha\dimexpr(\@@ibwidth-\!!widthb)/\nofsubpages\relax
- \ifdim\!!widtha<\@@ibdistance\relax
- \interactionbarf
- \else
- \setinteractionparameter\c!width\!!zeropoint
- \noindent
- \hbox to \@@ibwidth
- \bgroup
- \ifbarsymbol
- \setupsymbolset[\@@iasymbolset]%
- \def\dogotox##1%
- {\hbox{\symbol[\ifcase##1 \v!previous\or\v!somewhere\or\v!next\fi}}%
- \else
- \def\dogotox##1%
- {\hbox{\vrule\!!height\@@ibheight\!!depth\@@ibdepth\!!width\!!widtha}}%
- \fi
- \dostepwiserecurse\plusone\nofsubpages\plusone
- {\bgroup
- \scratchcounter\numexpr\recurselevel+\firstsubpage+\minusone\relax
- \ifnum\scratchcounter<\realpageno\relax
- \dogotosomecontrastpage\??ib{\dogotox0}\scratchcounter
- \else\ifnum\scratchcounter=\realpageno\relax
- \dogotosomecontrastpage\??ib{\dogotox1}\scratchcounter
- \else
- \dogotosomecontrastpage\??ib{\dogotox2}\scratchcounter
- \fi\fi
- \egroup
- \hss}%
- \unskip
- \egroup
- \fi
- \egroup
- \fi
- \fi\fi}
-
-\def\interactionbarf % !! KAN WORDEN GECOMBINEERD MET D !!
- {\iflocation\ifshowingsubpage
- \ifnum\nofsubpages>\plusone
- \setinteractionparameter\c!width\!!zeropoint
- \noindent
- \hbox to \@@ibwidth
- \bgroup
- \!!countb\zerocount
- \loop % todo: \doloop
- \advance\!!countb \plusone
- %\!!countc\nofsubpages \divide\!!countc \!!countb \advance\!!countc \plusone
- \!!countc\numexpr(\nofsubpages/\!!countb)+\plusone\relax % rounding
- \!!widthb\@@ibdistance
- \multiply\!!widthb \!!countc
- \advance\!!widthb -\@@ibdistance
- \!!widtha\@@ibwidth
- \advance\!!widtha -\!!widthb
- \divide\!!widtha \!!countc
- \ifdim\!!widtha<\@@ibdistance\relax
- \repeat
- \ifnum\!!countc>\plusone
- % this is not that well tested
- \advance\!!countc \minustwo
- \!!widtha-\@@ibdistance
- \!!widtha\!!countc\!!widtha
- \advance\!!widtha \@@ibwidth
- \advance\!!countc \plusone
- \divide\!!widtha \!!countc
- \fi
- \ifbarsymbol
- \setupsymbolset[\@@iasymbolset]%
- \def\dogotox##1%
- {\hbox{\symbol[\ifcase##1 \v!previous\or\v!somewhere\or\v!somewhere\or\v!somewhere\or\v!next\fi}}%
- \else
- \def\dogotox##1%
- {\hbox
- {\!!heighta\@@ibheight
- \!!deptha\@@ibdepth
- \ifcase##1\relax
- \vrule\!!height \!!heighta\!!depth \!!deptha\!!width\!!widtha
- \or
- \vrule\!!height.5\!!heighta\!!depth.5\!!deptha\!!width\!!widtha
- \or
- \vrule\!!height \!!heighta\!!depth \!!deptha\!!width\!!widtha
- \or
- \vrule\!!height.5\!!heighta\!!depth.5\!!deptha\!!width\!!widtha
- \or
- \vrule\!!height \!!heighta\!!depth \!!deptha\!!width\!!widtha
- \fi}}%
- \fi
- \!!countc\numexpr\realpageno-\plustwo\relax
- \!!countd\numexpr\realpageno+\plustwo\relax
- \ifnum\!!countc<\plusone \!!countc\plusone \fi
- \!!countf\zerocount
- \dostepwiserecurse\firstsubpage\lastsubpage\plusone
- {\!!doneafalse
- \advance\!!countf \plusone
- \ifnum\recurselevel=\firstsubpage\relax \!!doneatrue \fi
- \ifnum\recurselevel=\lastsubpage\relax \!!doneatrue \fi
- \if!!donea
- \ifnum\recurselevel<\realpageno
- \dogotosomecontrastpage\??ib{\dogotox0}\recurselevel
- \else\ifnum\recurselevel>\realpageno
- \dogotosomecontrastpage\??ib{\dogotox2}\recurselevel
- \else
- \dogotosomecontrastpage\??ib{\dogotox4}\recurselevel
- \fi\fi
- \hss
- \!!countf\zerocount
- \else\ifnum\!!countf=\!!countb
- \ifnum\recurselevel<\realpageno
- \dogotosomecontrastpage\??ib{\dogotox1}\recurselevel
- \else\ifnum\recurselevel>\realpageno
- \dogotosomecontrastpage\??ib{\dogotox3}\recurselevel
- \else
- \dogotosomecontrastpage\??ib{\dogotox2}\recurselevel
- \fi\fi
- \hss
- \!!countf\zerocount
- \fi\fi}%
- \unskip
- \egroup
- \fi
- \fi\fi}
-
-\def\interactionbarg
- {\ifnum\lastsubpage>\firstsubpage\relax
- \interactionbuttons[\v!firstsubpage,\v!previoussubpage,\v!nextsubpage,\v!lastsubpage]%
- \fi}
-
-\def\checkinteractionbar#1#2#3%
- {\ifdim\@@ibwidth=\zeropoint\def\@@ibwidth{#1}\fi
- \doifnothing\@@ibheight{\def\@@ibheight{#2}}%
- \doifnothing\@@ibdepth{\def\@@ibdepth{#3}}}
-
-\def\complexinteractionbar[#1]%
- {\doifelse{#1}\v!reset
- {\global\setbox\interactionbarbox\emptybox}%
- {\bgroup
- \iflocation
- \checksubpages % goes wrong / loads \numberofpages too
- \getparameters[\??ib][#1]%
- \doif\@@ibstate\v!start
- {\startinteraction
- \processaction % breedte defaults !
- [\@@ibalternative]
- [ c=>\checkinteractionbar{10em}\v!max \v!max,
- d=>\checkinteractionbar{.5em}{.5em} \!!zeropoint,
- e=>\checkinteractionbar{10em}{.5em} \!!zeropoint,
- f=>\checkinteractionbar{10em}{.5em} \!!zeropoint,
- \s!default=>\checkinteractionbar{10em}\v!broad\!!zeropoint,
- \s!unknown=>\checkinteractionbar{10em}\v!broad\!!zeropoint]%
- \doifelse\@@ibsymbol\v!yes
- \barsymboltrue\barsymbolfalse
- \getvalue{interactionbar\@@ibalternative}%
- \stopinteraction}%
- \fi
- \egroup}}
-
-\definecomplexorsimpleempty\interactionbar
-
-\def\setupinteractionbar
- {\dodoubleargument\getparameters[\??ib]}
-
-% Er wordt vooralsnog uitgegaan van een symmetrische
-% start-stop situatie.
-
-\def\c!profiel!! {profiel:} % brrr
-\def\c!versie!! {versie:}
-
-\def\dodefineprofile[#1][#2]%
- {\iflocation
- \def\dododefineprofile##1%
- {\def\dodododefineprofile####1%
- {\doifdefinedelse{\c!profiel!!####1}%
- {\edef\!!stringa{\getvalue{\c!profiel!!####1}}%
- \setevalue{\c!profiel!!####1}{\!!stringa,##1}}%
- {\setevalue{\c!profiel!!####1}{##1}}}%
- \processcommalist[#2]\dodododefineprofile}%
- \processcommalist[#1]\dododefineprofile
- \fi}
-
-\def\defineprofile%
- {\dodoubleargument\dodefineprofile}
-
-% Als met \getpar wordt gewerkt, dan moet \next worden toegepast.
-
-% TZT initialisatie!
-
-\def\profilepage{}
-
-\let\dosetprofilepage\relax
-\let\dogetprofilepage\relax
-
-\def\processprofile#1[#2]%
- {\iflocation
- \par % needed for pdftex
- \bgroup
- \dosetprofilepage
- \dogetprofilepage
- \def\processoneprofile##1##2%
- {\ExpandBothAfter\doifinsetelse{##2}{\processedprofiles}%
- {\doifsomething{##1}{(##1)}}%
- {\addtocommalist{##2}\processedprofiles
- ##1\relax
- \ifcase#1\relax
- \dobeginofprofile{##2}\paperwidth\paperheight\profilepage
- \else
- \doendofprofile
- \fi}}%
- \let\processedprofiles\empty
- \def\doprocessprofile##1%
- {\doifelse{\@@pfoption}{\v!test}%
- {\goodbreak\blank\nobreak\tt[\space
- \ifcase#1\v!start\else\v!stop\fi profiel\space ##1:\space
- \doifdefinedelse{\c!profiel!!##1}%
- {\def\dodoprocessprofile####1%
- {\processoneprofile
- {\goto{####1}[\c!profiel!!####1]}%
- {####1}%
- \space}%
- \processcommacommand
- [\getvalue{\c!profiel!!##1}]\dodoprocessprofile}%
- {- }%
- ]\nobreak\blank}%
- {\doifdefined{\c!profiel!!##1}%
- {\def\dodoprocessprofile####1%
- {\processoneprofile{}{####1}}%
- \processcommacommand
- [\getvalue{\c!profiel!!##1}]\dodoprocessprofile}}}%
- \processcommalist[#2]\doprocessprofile
- \egroup
- \par % needed for pdftex
- \fi}
-
-\def\startprofile[#1]%
- {\iflocation
- \bgroup
- \addtocommalist{#1}\actualprofile
- \def\stopprofile%
- {\processprofile1[#1]%
- \egroup}%
- \def\next{\processprofile0[#1]}% % \DoAfterFi \processprofile0[#1]%
- \else % ^^^^^^^^^^ will be obsolete
- \let\next\relax % since ugly and never used
- \fi
- \next}
-
-\let\stopprofile\relax
-
-\def\dofollowprofile#1[#2]%
- {\iflocation
- \hbox
- {\dohandlegoto
- {\dolocationattributes\??ia\c!style\c!color{#1\presetgoto}}%
- {\dostartgotoprofile\buttonwidth\buttonheight{#2}}%
- {\dostopgotoprofile}}%
- \else
- {#1}%
- \fi}
-
-\def\followprofile#1[#2]%
- {\iflocation
- \doif\@@pfoption\v!test{\pagereference[\c!profiel!!#2]}%
- \dofollowprofile{#1}[#2]%
- \fi}
-
-\def\setupprofiles%
- {\dodoubleargument\getparameters[\??pf]}
-
-% Als er nog geen tekst op de pagina staat, dan heeft het
-% profiel betrekking op het bovenstaande, dus soms een vorige
-% pagina! Vreemd, omdat PDF paginagewijs werkt. Gelukkig
-% biedt /page een oplossing. Echter: expansie van een
-% \special kan niet worden uitgesteld, zodat alleen een
-% two-pass een oplossing vormt. Het onderstaande kan komen
-% te vervallen als Acrobat dit ondervangt. Het scheelt een
-% pass en een lijst.
-%
-% Er kunnen eventueel twee lijsten worden gebruikt. Een voor
-% het begin (start) en een voor het eind (stop). Nu staat
-% alles in een lijst.
-
-\definetwopasslist\s!profile
-
-\newcounter\currentprofile
-
-\def\dosetprofilepage%
- {\doglobal\increment\currentprofile
- \lazysavetwopassdata{\s!profile}{\currentprofile}{\noexpand\realfolio}}
-
-\def\dogetprofilepage%
- {\gettwopassdata{\s!profile}%
- \let\profilepage=\twopassdata}
-
-% is this stuff used at all
-
-\newcounter\versionlevel
-\newcounter\versionorder
-
-\newif\ifrecentversion
-
-\let\oldatcharacter=@
-
-\def\minimumversion{0}
-\def\actualversion{0}
-
-\def\dosetupversions[#1]%
- {\getparameters[\??ve][#1]
- \stripcharacter.\from\@@venumber\to\minimumversion}
-
-\def\setupversions
- {\dosingleargument\dosetupversions}
-
-\definetwopasslist\s!versionbegin
-\definetwopasslist\s!versionend
-
-\let\actualprofile\empty
-
-\def\doresetpageversion
- {\lazysavetwopassdata{\s!versionend}{\versionorder}{\noexpand\realfolio}}
-
-\def\dosetpageversion#1%
- {\recentversiontrue
- \doglobal\increment\versionorder\relax
- \lazysavetwopassdata{\s!versionbegin}{\versionorder}{\noexpand\realfolio}%
- \let\resetpageversion\doresetpageversion}
-
-\def\recentcontributions{}
-
-\def\checkrecentcontributions%
- {\gettwopassdata{\s!versionbegin}%
- \iftwopassdatafound
- \!!counta\twopassdata\relax
- \gettwopassdata{\s!versionend}%
- \iftwopassdatafound
- \!!countb\twopassdata\relax
- \doglobal\increment\versionorder\relax
- \savetwopassdata{\s!versionbegin}{\versionorder}{\the\!!counta}%
- \savetwopassdata{\s!versionend }{\versionorder}{\the\!!countb}%
- \dostepwiserecurse\!!counta\!!countb\plusone
- {\@EA\doglobal\@EA\addtocommalist\@EA{\recurselevel}{\recentcontributions}}%
- \let\next\checkrecentcontributions
- \else
- \let\next\relax
- \fi
- \else
- \let\next\relax
- \fi
- \next}
-
-\def\docheckpageversion
- {\ExpandBothAfter\doifinsetelse{\realfolio}{\recentcontributions}
- {\pageselectedtrue}%
- {\pageselectedfalse}}
-
-\let\setpageversion \gobbleoneargument
-\let\resetpageversion \relax
-\let\checkpageversion \relax
-
-\def\complexstartversion[#1]%
- {\bgroup
- \doifelsenothing\actualprofile
- {\startprofile[#1]}%
- {\startprofile[#1,\actualprofile]}%
- \def\docomplexstartversie##1%
- {\stripcharacter.\from##1\to\actualversion
- \ifnum\versionlevel>\zerocount\relax
- \ifnum\actualversion=\zerocount
- \setpageversion\actualversion % unknown version
- \else
- \ifnum\actualversion<\minimumversion\relax
- \relax % old version
- \else
- \setpageversion\actualversion % new version
- \fi
- \fi
- \fi}%
- \doglobal\increment\versionlevel\relax
- \doifelsenothing{#1}
- {\docomplexstartversie{0}}%
- {\processcommalist[#1]\docomplexstartversie}}
-
-\definecomplexorsimpleempty\startversion
-
-\def\stopversion
- {\stopprofile
- \doglobal\decrement\versionlevel
- \ifnum\versionlevel<\zerocount
- \showmessage\m!versions1\empty
- \else
- \resetpageversion
- \egroup
- \fi}
-
-\def\markversion
- {\showmessage\m!versions2\empty
- \let\setpageversion\dosetpageversion
- \let\resetpageversion\relax
- \let\checkpageversion\relax}
-
-\def\selectversion
- {\checkrecentcontributions
- \showmessage\m!versions3\recentcontributions
- \let\setpageversio\gobbleoneargument
- \let\resetpageversion\relax
- \let\checkpageversion\docheckpageversion}
-
-\def\dodefineversion[#1][#2]%
- {\setvalue{\c!versie!!#1}{#2}%
- \defineprofile[#1][#2]}
-
-\def\defineversion
- {\dodoubleargument\dodefineversion}
-
-\def\followversion
- {\followprofile}
-
-\def\followprofileversion#1[#2][#3]%
- {\def\docommand##1%
- {\defineprofile[#2#3][##1]}%
- \processcommacommand[\getvalue{\c!versie!!#3}]\docommand
- \followprofile#1[#2#3]}
-
-\newcounter\currentpagetransition
-
-\newif\ifrandomtransitions
-
-\def\setuppagetransitions%
- {\dosingleempty\dosetuppagetransitions}
-
-\def\dosetuppagetransitions[#1]%
- {\doifelsenothing{#1}
- {\doifnot\@@scdelay\v!none
- {\let\setpagetransition\setsomepagedelay}}
- {\doifelse{#1}\v!start
- {\doifnot\@@scdelay\v!none
- {\let\setpagetransition\setsomepagedelay}}
- {\doglobal\newcounter\currentpagetransition
- \doifinsetelse{#1}{\v!reset,\v!stop}
- {\let\setpagetransition\relax}
- {\let\setpagetransition\setsomepagetransition
- \doifinsetelse\v!random{#1}
- {\randomtransitionstrue}{\randomtransitionsfalse}%
- \edef\userpagetransitions{#1}%
- \@EA\removefromcommalist\@EA{\v!random}\userpagetransitions
- \ifx\userpagetransitions\empty
- \let\userpagetransitions\pagetransitions
- \fi}}}}
-
-\def\setsomepagedelay
- {\expanded{\dosetpagetransition{0}{\@@scdelay}}}
-
-\def\setsomepagetransition
- {\iflocation
- \ifrandomtransitions
- \expanded{\getcommalistsize[\userpagetransitions]}%
- \getrandomnumber\currentpagetransition1\commalistsize
- \else
- \doglobal\increment\currentpagetransition
- \fi
- \expanded{\getfromcommalist[\userpagetransitions][\currentpagetransition]}%
- \doifnumberelse\commalistelement
- {\expanded{\getfromcommalist[\pagetransitions][\commalistelement]}}
- {}%
- \ifx\commalistelement\empty
- \doglobal\newcounter\currentpagetransition
- \setsomepagetransition
- \else
- \doifelse\@@scdelay\v!none
- {\expanded{\dosetpagetransition{\commalistelement}{0}}}
- {\expanded{\dosetpagetransition{\commalistelement}{\@@scdelay}}}%
- \fi
- \fi}
-
-\prependtoks \setpagetransition \to \everyshipout
-
-% temporary here
-
-%D \startbuffer
-%D \dorecurse{10}
-%D {\horizontalpositionbar
-%D \pos\recurselevel \min1 \max10
-%D \token\framed{\recurselevel}%
-%D \\}
-%D
-%D \hbox to 15em
-%D {\hss
-%D \dorecurse{10}
-%D {\verticalpositionbar\pos\recurselevel\min1\max10\token\blackrule\\
-%D \hss}}
-%D \stopbuffer
-
-\def\horizontalpositionbar\pos#1\min#2\max#3\token#4\\%
- {\hbox to \hsize
- {\hskip\zeropoint\!!plus #1\!!fill
- \hskip\zeropoint\!!plus-#2\!!fill
- #4\relax
- \hskip\zeropoint\!!plus #3\!!fill
- \hskip\zeropoint\!!plus-#1\!!fill}}
-
-\def\verticalpositionbar\pos#1\min#2\max#3\token#4\\%
- {\vbox to \vsize
- {\vskip\zeropoint\!!plus #1\!!fill
- \vskip\zeropoint\!!plus-#2\!!fill
- \hbox{#4}\relax
- \vskip\zeropoint\!!plus #3\!!fill
- \vskip\zeropoint\!!plus-#1\!!fill}}
-
-\def\horizontalgrowingbar\pos#1\min#2\max#3\height#4\depth#5\\%
- {\hbox to \hsize
- {\scratchcounter#1%
- \advance\scratchcounter -#2%
- \advance\scratchcounter \plusone
- \leaders\vrule\hskip\zeropoint\!!plus \scratchcounter\!!fill
- \vrule\!!width\zeropoint\!!height#4\!!depth#5%
- \hskip\zeropoint\!!plus #3\!!fill
- \hskip\zeropoint\!!plus-#1\!!fill}}
-
-\def\verticalgrowingbar\pos#1\min#2\max#3\width#4\\%
- {\vbox to \vsize
- {\scratchcounter#1%
- \advance\scratchcounter -#2%
- \advance\scratchcounter \plusone
- \leaders\hrule\vskip\zeropoint\!!plus\scratchcounter\!!fill
- \hrule\!!width#4\!!height\zeropoint\!!depth\zeropoint
- \vskip\zeropoint\!!plus #3\!!fill
- \vskip\zeropoint\!!plus-#1\!!fill}}
-
-\newbox\commentbox
-
-\def\doflushcommentanchors
- {\let\next\relax % new
- \processaction
- [\@@cclocation]
- [% \v!text=>\let\next\relax, % new
- \v!inmargin=>\let\next\inmargin, % brr not the same as inleft|rightmargin
- \v!leftedge=>\let\next\inleftedge,
- \v!rightedge=>\let\next\inrightedge,
- \v!leftmargin=>\let\next\inleftmargin,
- \v!rightmargin=>\let\next\inrightmargin]%
- \next{\hbox{\raise\strutht\box\commentbox}}}
-
-\def\flushcommentanchors % in everypar so indirect
- {\ifvoid\commentbox\else \doflushcommentanchors \fi}
-
-\def\setupcomment
- {\dodoubleargument\getparameters[\??cc]}
-
-\setvalue{\e!start\v!comment}% the dummy triple gobbles trailing spaces
- {\dotripleempty\dostartcommentaar}
-
-\def\comment
- {\dodoubleempty\docomment}
-
-\def\dodocomment#1%
- {\!!widtha\@@ccwidth
- \!!heighta\@@ccheight
- \doifelse\@@ccoption\v!max
- {\let\@@ccopen \!!plusone}{\let\@@ccopen \!!zerocount}%
- \doifelse\@@ccoption\v!buffer
- {\let\@@cccollect\!!plusone}{\let\@@cccollect\!!zerocount}%
- \preparecommentvariables
- \doinsertcomment
- \@@cctitle\!!widtha\!!heighta
- \@@cccolor\@@ccopen\@@ccsymbol
- \@@cccollect{#1}}
-
-\def\preparecommentvariables % more will move here as with fields
- {\let\@@DriverCommentLayer\@@cctextlayer}
-
-\def\dopreparecommentaar#1#2%
- {\doifassignmentelse{#1}
- {\getparameters[\??cc][#1]}
- {\getparameters[\??cc][\c!title=#1,#2]}%
- \obeylines
- \doif\@@ccspace\v!yes\obeyspaces}
-
-\def\dostartcommentaar[#1][#2][#3]%
- {\bgroup
- \doifelse\@@ccstate\v!start
- {\dopreparecommentaar{#1}{#2}%
- \long\def\docommand##1%
- {\global\setbox\commentbox\frozenhbox
- {\hbox to \zeropoint
- {\struttedbox{\tbox{\dodocomment{##1}}}\hss}%
- \hskip\ifvoid\commentbox\@@ccmargin\else\@@ccdistance\fi
- \box\commentbox}%
- \egroup}}%
- {\long\def\docommand##1%
- {\egroup}}%
- \grabuntil{\e!stop\v!comment}\docommand}
-
-\letvalue{\e!stop\v!comment}\relax % handy for \expanded{...}
-
-\def\docomment[#1][#2]#3%
- {\doif\@@ccstate\v!start
- {\hbox to \zeropoint
- {\dopreparecommentaar{#1}{#2}%
- \hskip-\@@ccmargin
- \struttedbox{\tbox{\dodocomment{#3}}\hss}}}%
- \ignorespaces}
-
-% \startcomment
-% hello beautiful\\world
-% \stopcomment
-%
-% \startcomment[hello]
-% hello << \'e\'erste >>
-% beautiful
-% world
-% \stopcomment
-%
-% \startcomment[hello][color=green,width=4cm,height=3cm]
-% hello \leftguillemot\ \'e\'erste \rightguillemot\
-% beautiful
-% world
-% \stopcommentaar
-%
-% \startcomment[hello][color=green,width=4cm,height=3cm]
-% hello \leftguillemot\ \'e\'erste \rightguillemot\ test
-%
-% beautiful
-%
-% world
-% \stopcomment
-%
-% \startcomment[symbol=Balloon]
-% Do we want this kind of rubish? And, why isn't this and
-% some more features related to text annotations so poorly
-% (actually not) documented? Anyhow, by providing this
-% functionality we demonstrate that \pdfTeX\ can do it. By
-% the way, it's funny that when in Acrobat we scale up the
-% text, the symbols scale down.
-% \stopcomment
-
-% \definesymbol [comment-normal][{\externalfigure[cow.pdf]}]
-% \definesymbol [comment-down] [{\externalfigure[cow.pdf]}]
-%
-% \def\CowSymbol#1#2%
-% {\scale
-% [\c!height=#1]
-% {\startMPcode
-% loadfigure "koe.mp" number 1 ;
-% refill currentpicture withcolor #2 ;
-% \stopMPcode}}
-%
-% \definesymbol [comment-normal]
-% [\CowSymbol{4ex}{red}]
-%
-% \definesymbol [comment-down]
-% [\CowSymbol{4ex}{green}]
-%
-% \setupcomment
-% [\c!symbol={comment-normal,comment-down},
-% \c!option=\v!buffer]
-%
-% \setupfootertexts[\placecomments]
-
-\def\placecomments
- {\doflushcomments}
-
-% \setupinteraction[state=start]
-%
-% \useattachment[test.tex]
-% \useattachment[whatever][test.tex]
-% \useattachment[whatever][newname][test.tex]
-% \useattachment[whatever][title][newname][test.tex]
-%
-% % \setupattachments[\c!symbol={symbol-normal,symbol-down}]
-%
-% \starttext \attachment[whatever] \stoptext
-
-
-\def\useattachment
- {\doquadrupleempty\douseattachment}
-
-\def\douseattachment[#1][#2][#3][#4]% tag title newname filename
- {\iffourthargument
- \setgvalue{\??at:#1}{{#2}{#3}{#4}}% tooltip kind of case
- \else\ifthirdargument
- \setgvalue{\??at:#1}{{#2}{#2}{#3}}% full path case
- \else\ifsecondargument
- \setgvalue{\??at:#1}{{#2}{#2}{#2}}% obvious case
- \else
- \setgvalue{\??at:#1}{{#1}{#1}{#1}}% worst case
- \fi\fi\fi}
-
-\let\attachmenttitle\empty
-\let\attachmentname \empty
-\let\attachmentfile \empty
-
-\def\getattachmentdata[#1]%
- {\edef\attachmenttitle{\filterfromvalue{\??at:#1}31}% description
- \edef\attachmentname {\filterfromvalue{\??at:#1}32}% new name
- \edef\attachmentfile {\filterfromvalue{\??at:#1}33}% original
- \expandafter\splitstring\attachmentname\at.\to\!!stringa\and\!!stringb
- \ifx\!!stringb\empty % no suffix, so we need to inherit it
- \expandafter\splitstring\attachmentfile\at.\to\!!stringc\and\!!stringd
- \edef\attachmentname{\attachmentname.\!!stringd}%
- \fi}
-
-\def\attachment
- {\dodoubleempty\doattachment}
-
-\def\doattachment[#1][#2]% currently title equals newname
- {\iflocation
- \ifsecondargument
- \doifundefined{\??at:#2}
- {\showmessage\m!interactions6{#2}%
- \useattachment[#2]}%
- \doif\@@atstate\v!start
- {\bgroup
- \getattachmentdata[#2]%
- \doiffileelse\attachmentfile
- {\setupattachments[#1]%
- \presetattachmentvariables
-\struttedbox{\tbox{%
- \doattachfile
- \attachmenttitle
- {1em}\strutheight\strutdepth\@@atcolor\@@atsymbol
- \attachmentname
- \attachmentfile}%
-}}%
- {\showmessage\m!interactions5\attachmentfile}%
- \egroup}%
- \else\iffirstargument
- \attachment[][#1]%
- \fi\fi
- \fi}
-
-\def\presetattachmentvariables
- {\let\@@DriverAttachmentLayer\@@attextlayer}
-
-\def\setupattachments
- {\dodoubleempty\getparameters[\??at]}
-
-\setupattachments
- [\c!state=\v!start,
- \c!color=\@@iacolor,
- \c!textlayer=,
- \c!symbol=]
-
-% jammer, tussen/midden had erin gemoeten; \c!commando toevoegen
-
-\def\registermenucommand#1%
- {{\textonly\noindent#1\space}} % no math switching
-
-\def\doregistermenubuttons[#1][#2]% [menu id] [register]
- {\bgroup
- \ifsecondargument
- \setupinteractionmenu
- [#1][\c!unknownreference=\v!yes,\c!samepage=\v!yes]%
- \def\docommand##1%
- {\registermenucommand{\menubutton[#1]{##1}[#2:##1]}}%
- \else
- \def\docommand##1%
- {\registermenucommand
- {\button
- [\c!unknownreference=\v!yes,\c!samepage=\v!yes]
- {##1}[#1:##1]}}%
- \fi
- \handletokens abcdefghijklmnopqrstuvwxyz\with\docommand % moet anders
- \egroup}
-
-\def\registermenubuttons
- {\dodoubleempty\doregistermenubuttons}
-
-% It took quite a while to figure this out (using the preliminary 1.5
-% spec). There are still a lot of things to be implemented. This is
-% the third alternative.
-
-% todo: multiple instances, dus indirect
-
-\let\currentrendering\empty
-
-\definereference[StartCurrentRendering] [\v!StartRendering {\currentrendering}]
-\definereference[StopCurrentRendering] [\v!StopRendering {\currentrendering}]
-\definereference[PauseCurrentRendering] [\v!PauseRendering {\currentrendering}]
-\definereference[ResumeCurrentRendering][\v!ResumeRendering{\currentrendering}]
-
-\newcounter\nofexternalrenderings
-
-\def\useexternalrendering{\doquadrupleempty\douseexternalrendering}
-\def\setinternalrendering{\dodoubleempty \dosetinternalrendering}
-
-\def\douseexternalrendering[#1][#2][#3][#4]% tag mime file options
- {\setgvalue{\??rd:#1}{\plusone{#1}{#2}{#3}{#4}}}
-
-\def\dosetinternalrendering[#1][#2]% tag options {content}
- {\bgroup
- \dowithnextbox
- {\setgvalue{\??rd:#1}{\plustwo{#1}{IRO}{#1}{#2}}%
- \let\objectoffset\zeropoint
- \setobject{IRO}{#1}\hbox{\box\nextbox}%
- \egroup}%
- \hbox}
-
-\def\checkrendering#1% let's hope that \next is not used
- {\iflocation
- \doifsomething{#1}%
- {\doifdefined{\??rd:#1}%
- {\expanded{\getvalue{\??rd::\number\renderingtype{#1}}%
- {\filterfromvalue{\??rd:#1}52}{\filterfromvalue{\??rd:#1}53}%
- {\filterfromvalue{\??rd:#1}54}{\filterfromvalue{\??rd:#1}55}}}}%
- \fi}
-
-\setvalue{\??rd::1}{\doinsertrendering}
-\setvalue{\??rd::2}{\doinsertrenderingobject}
-
-\def\renderingtype #1{\filterfromvalue{\??rd:#1}51}
-\def\renderingoptions#1{\filterfromvalue{\??rd:#1}55}
-
-\setexecutecommandcheck {startrendering} \checkrendering
-\setexecutecommandcheck {stoprendering} \checkrendering
-\setexecutecommandcheck {pauserendering} \checkrendering
-\setexecutecommandcheck {resumerendering} \checkrendering
-
-% by using a nice trick (used in other places of context as well) we
-% can easily overload the default size to match the opbject size
-
-\def\renderingwidth {8cm}
-\def\renderingheight{6cm}
-
-\def\definerenderingwindow
- {\dodoubleempty\dodefinerenderingwindow}
-
-\def\dodefinerenderingwindow[#1][#2]%
- {\presetlocalframed[\??rw#1]%
- \getparameters%
- [\??rw#1]%
- [\c!openpageaction=,\c!closepageaction=,%
- \c!width=\renderingwidth,\c!height=\renderingheight,%
- #2]}
-
-\def\setuprenderingwindow
- {\dodoubleargument\dosetuprenderingwindow}
-
-\def\dosetuprenderingwindow[#1]%
- {\getparameters[\??rw#1]}
-
-\def\placerenderingwindow
- {\dodoubleempty\doplacerenderingwindow}
-
-\def\doplacerenderingwindow[#1][#2]%
- {\bgroup
- \edef\currentrendering{\ifsecondargument#2\else#1\fi}%
- \ifcase\renderingtype\currentrendering\or
- % a file
- \or
- % an object
- \getobjectdimensions{IRO}\currentrendering
- \scratchdimen\objectheight
- \advance\scratchdimen\objectdepth
- \edef\renderingheight{\the\scratchdimen}%
- \edef\renderingwidth{\objectwidth}%
- \fi
- % create fall back if needed
- \doifdefinedelse{\??rw#1\c!width}
- {\def\currentrenderingwindow{#1}}
- {\let\currentrenderingwindow\s!default
- \definerenderingwindow[\currentrenderingwindow]}%
- \checkrendering\currentrendering
- \handlereferenceactions{\getvalue{\??rw\currentrenderingwindow\c!openpageaction }}\dosetuprenderingopenpageaction
- \handlereferenceactions{\getvalue{\??rw\currentrenderingwindow\c!closepageaction}}\dosetuprenderingclosepageaction
- \localframed
- [\??rw\currentrenderingwindow][\c!offset=\v!overlay]%
- {\expanded{\doinsertrenderingwindow
- \noexpand\currentrendering\hsize\vsize{\renderingoptions\currentrendering}}}%
- \egroup}
-
-% todo:
-%
-% \setinternalrendering[example-1][options]{}
-
-% test file:
-%
-% \definerenderingwindow
-% [example]
-% [width=320pt,height=150pt,frame=off,
-% background=color,backgroundcolor=gray,
-% openpageaction=StartCurrentRendering,
-% closepageaction=NextPage]% StopCurrentRendering]
-%
-% \useexternalrendering[example-1][audio/mpeg] [eldorado.mp3]
-% \useexternalrendering[example-2][audio/mpeg] [myst-12.mp3]
-% \useexternalrendering[example-3][application/x-shockwave-flash][http://localhost/mb.swf] [auto]
-% \useexternalrendering[example-4][application/x-shockwave-flash][celebration.swf]
-% \useexternalrendering[example-5][video/quicktime] [p1000726.mov]
-% \useexternalrendering[example-6][application/smil] [quadratic_map.smi]
-%
-% \def\renderingmenu[#1]%
-% {\hbox
-% {\setupbuttons[width=2.5em]%
-% \button{\symbol[StartRendering]} [StartRendering{#1}]\enspace
-% \button{\symbol[StopRendering]} [StopRendering{#1}]\enspace
-% \button{\symbol[PauseRendering]} [PauseRendering{#1}]\enspace
-% \button{\symbol[ResumeRendering]}[ResumeRendering{#1}]}}
-%
-% \renderingmenu[example-1]\blank
-% \renderingmenu[example-2]\blank
-% \renderingmenu[example-3]\blank
-% \renderingmenu[example-4] \placefigure{A ShockWave}{\placerenderingwindow[example][example-4]} \page
-% \renderingmenu[example-5] \placefigure{A Movie}{\placerenderingwindow[example][example-5]} \page
-% \renderingmenu[example-6] \placefigure{A Smile}{\placerenderingwindow[example][example-6]}
-
-\stelkoppelingenin
- [\c!distance=.25em,
- \c!width=\v!fit,
- \c!location=\v!low,
- \c!color=\@@iacolor,
- \c!frame=\v!off,
- \c!background=,
- \c!backgroundscreen=\@@rsscreen,
- \c!backgroundcolor=]
-
-\defineinteractionmenu
- [\v!right]
- [\v!right]
- [\c!before=,
- \c!after=\vfil,
- \c!inbetween=\blank,
- \c!distance=\bodyfontsize, % 12pt
- \c!left=\hss,
- \c!right=\hss,
- \c!width=\rightedgewidth,
- \c!height=\v!broad]
-
-\defineinteractionmenu
- [\v!left]
- [\v!left]
- [\c!before=,
- \c!after=\vfil,
- \c!inbetween=\blank,
- \c!distance=\bodyfontsize, % 12pt
- \c!left=\hss,
- \c!right=\hss,
- \c!width=\leftedgewidth,
- \c!height=\v!broad]
-
-\defineinteractionmenu
- [\v!bottom]
- [\v!bottom]
- [\c!before=\vss,
- \c!after=\vss,
- \c!middle=\hfil,
- \c!distance=\bodyfontsize, % 12pt
- \c!width=\v!fit,
- \c!height=\v!broad]
-
-\defineinteractionmenu
- [\v!top]
- [\v!top]
- [\c!before=\vss,
- \c!after=\vss,
- \c!middle=\hfil,
- \c!distance=\bodyfontsize, % 12pt
- \c!width=\v!fit,
- \c!height=\v!broad]
-
-\setupinteractionmenu
- [\v!left,\v!right,\v!top,\v!bottom]
- [\c!offset=.25em,
- \c!position=\v!no,
- \c!frame=\v!on,
- \c!background=,
- \c!backgroundcolor=,
- \c!backgroundscreen=\@@rsscreen,
- \c!style=\@@iastyle,
- \c!color=\@@iacolor,
- \c!contrastcolor=\@@iacontrastcolor,
- \c!state=\v!start,
- \c!samepage=\v!yes,
- \c!unknownreference=\v!empty,
- \c!topoffset=\!!zeropoint,
- \c!bottomoffset=\!!zeropoint,
- \c!leftoffset=\!!zeropoint,
- \c!rightoffset=\!!zeropoint]
-
-\def\placeleftedgetextblock % Is \hss/\hsize really needed here?
- {\hbox to \leftedgewidth % (check outer level and settings)
- {\hsize\leftedgewidth\hss\interactionmenus[\v!left]}}
-
-\def\placerightedgetextblock % Is \hss/\hsize really needed here?
- {\hbox to \rightedgewidth % (check outer level and settings)
- {\hsize\rightedgewidth\interactionmenus[\v!right]\hss}}
-
-\def\placetoptextblock
- {\vbox to \topheight
- {\vsize\topheight
- \csname\??tk\v!top\c!before\endcsname
- \interactionmenus[\v!top]%
- \csname\??tk\v!top\c!after\endcsname
- \kern\zeropoint}}
-
-\def\placebottomtextblock
- {\vbox to \bottomheight
- {\vsize\bottomheight
- \csname\??tk\v!bottom\c!before\endcsname
- \interactionmenus[\v!bottom]%
- \csname\??tk\v!bottom\c!after\endcsname
- \kern\zeropoint}}
-
-\ifx\leftedgetextcontent\undefined \else
-
- \appendtoks \placeleftedgetextblock \hskip-\leftedgewidth \to \leftedgetextcontent
- \appendtoks \placerightedgetextblock \hskip-\rightedgewidth \to \rightedgetextcontent
- \appendtoks \placetoptextblock \vskip-\topheight \to \toptextcontent
- \appendtoks \placebottomtextblock \vskip-\bottomheight \to \bottomtextcontent
-
-\fi
-
-\setupinteractionscreen
- [\c!width=\printpaperwidth,
- \c!height=\printpaperheight,
- \c!horoffset=\!!zeropoint,
- \c!veroffset=\!!zeropoint,
- \c!backspace=\backspace,
- \c!topspace=\topspace,
- \c!option=\v!min,
- \c!delay=\v!none]
-
-\setupbuttons
- [\c!state=\v!start,
- \c!width=\v!fit,
- \c!height=\v!broad,
- \c!offset=0.25em,
- \c!frame=\v!on,
- \c!background=,
- \c!backgroundscreen=\@@rsscreen,
- \c!backgroundcolor=,
- \c!style=\@@iastyle,
- \c!color=\@@iacolor,
- \c!contrastcolor=\@@iacontrastcolor,
- \c!samepage=\v!yes,
- \c!unknownreference=\v!yes]
-
-\setupinteractionbar
- [\c!state=\v!start,
- \c!alternative=a,
- \c!symbol=\v!no,
- \c!width=\rightedgewidth,
- \c!height=, % these are taken care
- \c!depth=, % of at calling time
- \c!distance=.5em, % beter relateren aan breedte
- \c!step=1,
- \c!color=\@@iacolor,
- \c!contrastcolor=\@@iacontrastcolor,
- \c!frame=\v!on,
- \c!background=,
- \c!backgroundscreen=\@@rsscreen,
- \c!backgroundcolor=,
- \c!samepage=\v!yes,
- \c!unknownreference=\v!yes]
-
-\setupsynchronizationbar
- [\c!alternative=\v!page,
- \c!width=\rightedgewidth,
- \c!style=\@@iastyle,
- \c!color=\@@iacolor,
- \c!background=,
- \c!backgroundscreen=\@@rsscreen,
- \c!backgroundcolor=]
-
-\setupsynchronization
- [\c!state=\v!stop]
-
-\setupprofiles
- [\c!option=]
-
-\setuppagetransitions
- [\v!reset]
-
-\setupcomment
- [\c!state=\v!start,
- \c!margin=2.5em,
- \c!distance=1em,
- \c!width=.3\textwidth,
- \c!height=.2\textheight,
- \c!color=\@@iacolor,
- \c!title=,
- \c!space=\v!no,
- \c!symbol=\v!normal,
- \c!location=\v!inmargin,
- \c!option=,
- \c!textlayer=]
-
-\setupversions % beware, @ is made active here,
- [\c!number=1, % therefore we set this one at the end
- \c!style=\ss,
- \c!color=]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/scrn-nav.mkii b/Master/texmf-dist/tex/context/base/mkii/scrn-nav.mkii
deleted file mode 100644
index 3bb56bacee7..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/scrn-nav.mkii
+++ /dev/null
@@ -1,379 +0,0 @@
-%D \module
-%D [ file=scrn-nav,
-%D version=1998.01.15,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Navigation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Screen Macros / Navigation}
-
-\unprotect
-
-%D Support for interactive document is very present in
-%D \CONTEXT\ and interwoven in many modules. This means that in
-%D this module, where we deal with some common navigational
-%D features, there will be quite some forward references.
-%D
-%D When I started implementing hypertext support, the macros
-%D were mostly dealing with things related to locations, that
-%D is click in this location and goto that one. The
-%D functionality of many macro depends on the output medium:
-%D paper or screen. The next boolean holds the state:
-
-\newif\iflocation \def\ifinteractief{\iflocation} % upw comp
-
-%D We also allocate a scratchbox:
-
-\newbox\locationbox
-
-%D There is no interaction at all unless enabled by saying:
-%D
-%D \starttyping
-%D \setupinteraction[state=start]
-%D \stoptyping
-%D
-%D The other settings are:
-%D
-%D \showsetup{setupinteraction}
-%D
-%D In the special driver modules we introduced a switch that
-%D forces page destinations (instead of named ones). We set
-%D this switch here.
-
-\def\setinteractionparameter#1#2% use with case, no checking done
- {\setvalue{\??ia#1}{#2}} % pass #2, can be \blabla
-
-\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]%
- \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:
-
-\def\dolocationstartup
- {\iflocation
- \dosetupinteraction
- \handlereferenceactions\@@iaopenaction \dosetupopenaction
- \handlereferenceactions\@@iacloseaction\dosetupcloseaction
- \setupinteractionscreens
- \global\let\dolocationstartup\relax
- \fi}
-
-\appendtoks \dolocationstartup \to \everyshipout
-
-\def\dolocationpagecheck % brr pdf dependent
- {\iflocation
- \handlereferenceactions\@@iaopenpageaction \dosetupopenpageaction
- \handlereferenceactions\@@iaclosepageaction\dosetupclosepageaction
- \fi}
-
-\appendtoks \dolocationpagecheck \to \everyshipout
-
-%D The next few macros are really horrible. For proper
-%D navigation a in||line hypertext fragment must have
-%D comfortable properties, so we must force some minimal
-%D dimensions. On the other hand button, and here I mean those
-%D pieces of text with fancy outlines and/or backgrounds, often
-%D have fixed, preset dimensions.
-%D
-%D To make things even worse, if we choose to let the optimal
-%D dimensions depend on the height and depth of a strut, a not
-%D too uncommon practice in \TEX, we have to deal with the fact
-%D that such a strut, set inside a box, is unknown too the
-%D outside world.
-%D
-%D The solution lays in passing the strut characteristics in
-%D a proper way, in our case by applying \type{\presetgoto}:
-%D
-%D \starttyping
-%D {some piece of text \presetgoto}
-%D \stoptyping
-%D
-%D This macro stores the current strut values.
-
-\newif\iflocationstrut
-\newif\iflocationsplit
-
-\def\resetgoto
- {\globallet\@@ia@@hoogte\!!zeropoint
- \globallet\@@ia@@diepte\!!zeropoint}
-
-\resetgoto
-
-\def\presetgoto
- {\iflocationstrut
- \setstrut
- %\xdef\@@ia@@hoogte{\the\strutht}%
- %\xdef\@@ia@@diepte{\the\strutdp}%
- \globallet\@@ia@@hoogte\strutheight
- \globallet\@@ia@@diepte\strutdepth
- \else
- \globallet\@@ia@@hoogte\@@iaheight
- \globallet\@@ia@@diepte\@@iadepth
- \fi}
-
-%D In the macros that deal with making areas into hyperlinks,
-%D we use:
-
-\newbox\driverresources
-
-\def\collectdriverresource#1%
- {\global\setbox\driverresources\hbox{\box\driverresources#1}}
-
-\def\flushdriverresources
- {\ifvoid\driverresources\else\box\driverresources\fi}
-
-\def\dohandlegoto#1#2#3%
- {\ifsecondaryreference
- \bgroup\setbox0\hbox{#2#3}\egroup
- \else
- \hbox
- {\setbox0\hbox{#1}%
- \ifdim\wd0<\@@iawidth\relax
- \buttonwidth\@@iawidth\relax
- \else
- \buttonwidth\wd0
- \fi
- \ifdim\ht0<\@@ia@@hoogte\relax
- \buttonheight\@@ia@@hoogte\relax
- \else
- \buttonheight\ht0
- \fi
- \ifdim\dp0<\@@ia@@diepte\relax
- \dimen0=\@@ia@@diepte\relax % = !
- \else
- \dimen0\dp0
- \fi
- \advance\buttonheight \dimen0
- \setbox2\hbox
- {\lower\dimen0\hbox
- {\dontcomplain
- \dimen0=.5\wd0 % direct skipping is faster of course
- \advance\dimen0 -.5\buttonwidth % buts this is nicer
- \hskip\dimen0#2#3}}% when visualizing things
- \naturalhbox % needed for omega / moved from plus-omg
- {\ifreversegoto
- \dimen0\wd0\box0\kern-\dimen0\smashbox2\box2\kern\dimen0
- \else
- \smashbox2\box2\box0
- \fi
- \flushdriverresources}%
- \resetgoto}%
- \fi}
-
-%D The secondary references are processed but not typeset. The
-%D special driver must collect the data needed.
-
-%D The width of the active area depends on the dimensions
-%D preset, the actual dimens and/or the height and depth of the
-%D strut.
-%D
-%D Normally the hyper active area is laid on top of the text.
-%D This enables stacking hyperlinks on top of each other. When,
-%D for some reason the opposite is prefered, one can use the
-%D next boolean to signal this wish.
-
-\newif\ifreversegoto \reversegotofalse
-
-%D As long as there a natural feeling of what can be considered
-%D hyper active or not, we have to tell users where they can
-%D possibly click. We've already seen a few macros that deal
-%D with this visualization, something we definitely do not let
-%D up to the viewer. One way of telling is using a distinctive
-%D typeface, another way is using color.
-%D
-%D There are two colors involved: one for normal hyperlinks,
-%D and one for those that point to the currentpage, the
-%D contrast color.
-
-\definecolor [interactioncolor] [r=0, g=.6, b=0]
-\definecolor [interactioncontrastcolor] [r=.8, g=0, b=0]
-
-\definecolor [interactiekleur] [interactioncolor]
-\definecolor [interactiecontrastkleur] [interactioncontrastcolor]
-
-%D The next few macros are responsible for highlighting hyper
-%D links. The first one, \type{\showlocation}, is used in those
-%D situations where the typeface is handled by the calling
-%D macro.
-
-\def\interactioncolor % todo \??ia as argument
- {\iflocation
- \ifrealreferencepage
- \@@iacontrastcolor
- \else
- \@@iacolor
- \fi
- \fi}
-
-%D CHECK WHERE USED / CONSISTENCY
-
-\def\showlocation#1%
- {\iflocation\color[\@@iacolor]{#1\presetgoto}\else#1\fi}
-
-%D When local color settings are to be used, we can use the
-%D next macro, where \type{#1} is a tag like \type{\??tg} and
-%D \type{#2} some text.
-
-\def\showcoloredlocation#1#2%
- {\iflocation
- \color[\getvalue{#1\c!color}]{#2\presetgoto}%
- \else
- #2%
- \fi}
-
-%D When we're dealing with pure page references, contrast
-%D colors are used when we are already at the page mentioned.
-
-\def\showcontrastlocation#1#2#3% the \@EA is needed
- {\iflocation
- \ifnum#2=\realpageno\relax
- \doifelsevaluenothing{#1\c!color}
- {#3\presetgoto}
- {\color[\getvalue{#1\c!contrastcolor}]{#3\presetgoto}}%
- \else
- \color[\getvalue{#1\c!color}]{#3\presetgoto}%
- \fi
- \else
- #3%
- \fi}
-
-%D The next simple macro can be used in color specifications,
-%D like \type{\color[\locationcolor{green}]}.
-
-\def\locationcolor#1%
- {\iflocation#1\fi}
-
-%D More tokens are spend when we want both typeface and color
-%D highlighting.
-
-\def\dolocationattributes#1#2#3#4%
- {\bgroup
- \let\fontattribute\empty
- \let\colorattribute\empty
- \doifdefined{#1#2}{\def\fontattribute{\getvalue{#1#2}}}%
- \iflocation
- \doifdefined{#1#3}{\def\colorattribute{\getvalue{#1#3}}}%
- \fi
- \startcolor[\colorattribute]%
- \@EA\doconvertfont\@EA{\fontattribute}{#4}% no \edef, but \@EA here
- \stopcolor
- \egroup}
-
-\def\navigating
- {\dolocationattributes\??ia\c!style\c!color}
-
-%D Although not decently supported in current viewers, a
-%D provisory hiding mechanims is implemented. Areas marked as
-%D such, are visible on screen, but invisible on paper. Don't
-%D trust this mechanism yet!
-
-\def\dostartinteraction
- {\bgroup
- \let\stopinteraction\egroup
- \dowithnextbox{\dostarthide\flushnextbox\dostophide\egroup}\hbox}
-
-\let\startinteraction = \relax
-\let\stopinteraction = \relax
-
-% in the future:
-%
-% eerst boolean invoeren bij menu, achtergrond, balk, button
-% enz; verder startinteractie een argument meegeven {#1} ->
-% \getvalue{#1\c!print}=={\v!ja} enz. Consequent menubutton
-% gebruiken!
-
-\def\@@iatimestamp
- {\the\normalyear
- \ifnum\normalmonth<10 0\fi\the\normalmonth
- \ifnum\normalday <10 0\fi\the\normalday}
-
-% happens in core-fld
-%
-% \definereference [AtOpenInitializeForm] [\v!geen]
-
-\setupinteraction % start fit page and reset form
- [\c!state=\v!stop,
- \c!page=\v!no,
- \c!click=\v!yes,
- \c!display=,
- %\c!openaction={\v!firstpage,AtOpenInitializeForm},
- %\c!openaction={\v!firstpage,\v!ResetForm},
- %\c!openaction=\v!ResetForm, % too buggy in reader 4.05
- \c!openaction=,
- \c!closeaction=,
- \c!openpageaction=,
- \c!closepageaction=,
- \c!display=\v!normal,
- \c!focus=\v!fit,
- \c!menu=\v!off,
- \c!style=\v!bold,
- \c!calculate=,
- \c!strut=\v!yes,
- \c!split=\v!yes,
- \c!color=interactioncolor,
- \c!contrastcolor=interactioncontrastcolor,
- \c!symbolset=,
- \c!width=1em,
- \c!height=\!!zeropoint,
- \c!depth=\!!zeropoint,
- \c!title=\jobname, % needed for fdf/x
- \c!subtitle=,
- \c!author=,
- \c!keyword=,
- \c!date=\@@iatimestamp]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/sort-def.mkii b/Master/texmf-dist/tex/context/base/mkii/sort-def.mkii
deleted file mode 100644
index 168f94e9e9a..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/sort-def.mkii
+++ /dev/null
@@ -1,450 +0,0 @@
-%D \module
-%D [ file=sort-def,
-%D version=2005.08.08,
-%D title=\CONTEXT\ Sort Macros,
-%D subtitle=Defaults,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module replaces existing sort key handling and is meant to be
-%D used with the new texutil functionality. Here we define the default
-%D mappings
-
-\exportsortexpansion{aeligature} {ae}
-\exportsortexpansion{AEligature} {AE}
-\exportsortexpansion{ijligature} {ij}
-\exportsortexpansion{IJligature} {IJ}
-\exportsortexpansion{oeligature} {oe}
-\exportsortexpansion{OEligature} {OE}
-
-\exportsortexpansion{ssharp} {ss}
-\exportsortexpansion{Ssharp} {SS}
-
-\exportsortexpansion{thorn} {}
-\exportsortexpansion{Thorn} {}
-
-\exportsortexpansion{eth} {}
-\exportsortexpansion{Eth} {}
-
-\exportsortexpansion{dj} {dstroke}
-\exportsortexpansion{Dj} {Dstroke}
-
-\exportsortexpansion{Acircumflex} {}
-\exportsortexpansion{acircumflex} {}
-\exportsortexpansion{Ccircumflex} {}
-\exportsortexpansion{ccircumflex} {}
-\exportsortexpansion{Ecircumflex} {}
-\exportsortexpansion{ecircumflex} {}
-\exportsortexpansion{Gcircumflex} {}
-\exportsortexpansion{gcircumflex} {}
-\exportsortexpansion{Hcircumflex} {}
-\exportsortexpansion{hcircumflex} {}
-\exportsortexpansion{Icircumflex} {}
-\exportsortexpansion{icircumflex} {}
-\exportsortexpansion{Jcircumflex} {}
-\exportsortexpansion{jcircumflex} {}
-\exportsortexpansion{Ocircumflex} {}
-\exportsortexpansion{ocircumflex} {}
-\exportsortexpansion{Scircumflex} {}
-\exportsortexpansion{scircumflex} {}
-\exportsortexpansion{Ucircumflex} {}
-\exportsortexpansion{ucircumflex} {}
-\exportsortexpansion{Wcircumflex} {}
-\exportsortexpansion{wcircumflex} {}
-\exportsortexpansion{Ycircumflex} {}
-\exportsortexpansion{ycircumflex} {}
-
-\exportsortexpansion{Agrave} {}
-\exportsortexpansion{agrave} {}
-\exportsortexpansion{Egrave} {}
-\exportsortexpansion{egrave} {}
-\exportsortexpansion{Igrave} {}
-\exportsortexpansion{igrave} {}
-\exportsortexpansion{Ograve} {}
-\exportsortexpansion{ograve} {}
-\exportsortexpansion{Ugrave} {}
-\exportsortexpansion{ugrave} {}
-\exportsortexpansion{Ygrave} {}
-\exportsortexpansion{ygrave} {}
-
-\exportsortexpansion{Atilde} {}
-\exportsortexpansion{atilde} {}
-\exportsortexpansion{Itilde} {}
-\exportsortexpansion{itilde} {}
-\exportsortexpansion{Ntilde} {}
-\exportsortexpansion{ntilde} {}
-\exportsortexpansion{Otilde} {}
-\exportsortexpansion{otilde} {}
-\exportsortexpansion{Utilde} {}
-\exportsortexpansion{utilde} {}
-\exportsortexpansion{Ytilde} {}
-\exportsortexpansion{ytilde} {}
-
-\exportsortexpansion{Adiaeresis} {}
-\exportsortexpansion{adiaeresis} {}
-\exportsortexpansion{Ediaeresis} {}
-\exportsortexpansion{ediaeresis} {}
-\exportsortexpansion{Idiaeresis} {}
-\exportsortexpansion{idiaeresis} {}
-\exportsortexpansion{Odiaeresis} {}
-\exportsortexpansion{odiaeresis} {}
-\exportsortexpansion{Udiaeresis} {}
-\exportsortexpansion{udiaeresis} {}
-\exportsortexpansion{Ydiaeresis} {}
-\exportsortexpansion{ydiaeresis} {}
-
-\exportsortexpansion{Aacute} {}
-\exportsortexpansion{aacute} {}
-\exportsortexpansion{Cacute} {}
-\exportsortexpansion{cacute} {}
-\exportsortexpansion{Eacute} {}
-\exportsortexpansion{eacute} {}
-\exportsortexpansion{Iacute} {}
-\exportsortexpansion{iacute} {}
-\exportsortexpansion{Lacute} {}
-\exportsortexpansion{lacute} {}
-\exportsortexpansion{Nacute} {}
-\exportsortexpansion{nacute} {}
-\exportsortexpansion{Oacute} {}
-\exportsortexpansion{oacute} {}
-\exportsortexpansion{Racute} {}
-\exportsortexpansion{racute} {}
-\exportsortexpansion{Sacute} {}
-\exportsortexpansion{sacute} {}
-\exportsortexpansion{Uacute} {}
-\exportsortexpansion{uacute} {}
-\exportsortexpansion{Yacute} {}
-\exportsortexpansion{yacute} {}
-\exportsortexpansion{Zacute} {}
-\exportsortexpansion{zacute} {}
-
-\exportsortexpansion{dstroke} {}
-\exportsortexpansion{Dstroke} {}
-\exportsortexpansion{Hstroke} {}
-\exportsortexpansion{hstroke} {}
-\exportsortexpansion{Tstroke} {}
-\exportsortexpansion{tstroke} {}
-
-\exportsortexpansion{Cdotaccent} {}
-\exportsortexpansion{cdotaccent} {}
-\exportsortexpansion{Edotaccent} {}
-\exportsortexpansion{edotaccent} {}
-\exportsortexpansion{Gdotaccent} {}
-\exportsortexpansion{gdotaccent} {}
-\exportsortexpansion{Idotaccent} {}
-\exportsortexpansion{idotaccent} {}
-\exportsortexpansion{Zdotaccent} {}
-\exportsortexpansion{zdotaccent} {}
-
-\exportsortexpansion{Amacron} {}
-\exportsortexpansion{amacron} {}
-\exportsortexpansion{Emacron} {}
-\exportsortexpansion{emacron} {}
-\exportsortexpansion{Imacron} {}
-\exportsortexpansion{imacron} {}
-\exportsortexpansion{Omacron} {}
-\exportsortexpansion{omacron} {}
-\exportsortexpansion{Umacron} {}
-\exportsortexpansion{umacron} {}
-
-\exportsortexpansion{Ccedilla} {}
-\exportsortexpansion{ccedilla} {}
-\exportsortexpansion{Kcedilla} {}
-\exportsortexpansion{kcedilla} {}
-\exportsortexpansion{Lcedilla} {}
-\exportsortexpansion{lcedilla} {}
-\exportsortexpansion{Ncedilla} {}
-\exportsortexpansion{ncedilla} {}
-\exportsortexpansion{Rcedilla} {}
-\exportsortexpansion{rcedilla} {}
-\exportsortexpansion{Scedilla} {}
-\exportsortexpansion{scedilla} {}
-\exportsortexpansion{Tcedilla} {}
-\exportsortexpansion{tcedilla} {}
-
-\exportsortexpansion{Ohungarumlaut} {}
-\exportsortexpansion{ohungarumlaut} {}
-\exportsortexpansion{Uhungarumlaut} {}
-\exportsortexpansion{uhungarumlaut} {}
-
-\exportsortexpansion{Aogonek} {}
-\exportsortexpansion{aogonek} {}
-\exportsortexpansion{Eogonek} {}
-\exportsortexpansion{eogonek} {}
-\exportsortexpansion{Iogonek} {}
-\exportsortexpansion{iogonek} {}
-\exportsortexpansion{Uogonek} {}
-\exportsortexpansion{uogonek} {}
-
-\exportsortexpansion{Aring} {}
-\exportsortexpansion{aring} {}
-\exportsortexpansion{Uring} {}
-\exportsortexpansion{uring} {}
-
-\exportsortexpansion{Abreve} {}
-\exportsortexpansion{abreve} {}
-\exportsortexpansion{Ebreve} {}
-\exportsortexpansion{ebreve} {}
-\exportsortexpansion{Gbreve} {}
-\exportsortexpansion{gbreve} {}
-\exportsortexpansion{Ibreve} {}
-\exportsortexpansion{ibreve} {}
-\exportsortexpansion{Obreve} {}
-\exportsortexpansion{obreve} {}
-\exportsortexpansion{Ubreve} {}
-\exportsortexpansion{ubreve} {}
-
-\exportsortexpansion{Ccaron} {}
-\exportsortexpansion{ccaron} {}
-\exportsortexpansion{Dcaron} {}
-\exportsortexpansion{dcaron} {}
-\exportsortexpansion{Ecaron} {}
-\exportsortexpansion{ecaron} {}
-\exportsortexpansion{Lcaron} {}
-\exportsortexpansion{lcaron} {}
-\exportsortexpansion{Ncaron} {}
-\exportsortexpansion{ncaron} {}
-\exportsortexpansion{Rcaron} {}
-\exportsortexpansion{rcaron} {}
-\exportsortexpansion{Scaron} {}
-\exportsortexpansion{scaron} {}
-\exportsortexpansion{Tcaron} {}
-\exportsortexpansion{tcaron} {}
-\exportsortexpansion{Ycaron} {}
-\exportsortexpansion{ycaron} {}
-\exportsortexpansion{Zcaron} {}
-\exportsortexpansion{zcaron} {}
-
-\exportsortexpansion{Lstroke} {}
-\exportsortexpansion{lstroke} {}
-\exportsortexpansion{Ostroke} {}
-\exportsortexpansion{ostroke} {}
-
-\exportsortexpansion{aumlaut} {}
-\exportsortexpansion{eumlaut} {}
-\exportsortexpansion{iumlaut} {}
-\exportsortexpansion{oumlaut} {}
-\exportsortexpansion{uumlaut} {}
-
-\exportsortexpansion{Aumlaut} {}
-\exportsortexpansion{Eumlaut} {}
-\exportsortexpansion{Iumlaut} {}
-\exportsortexpansion{Oumlaut} {}
-\exportsortexpansion{Uumlaut} {}
-
-\exportsortexpansion{scommaaccent} {}
-\exportsortexpansion{Scommaaccent} {}
-\exportsortexpansion{tcommaaccent} {}
-\exportsortexpansion{Tcommaaccent} {}
-
-\exportsortexpansion{Etilde} {}
-\exportsortexpansion{etilde} {}
-
-\exportsortexpansion{Ahook} {}
-\exportsortexpansion{ahook} {}
-\exportsortexpansion{Ehook} {}
-\exportsortexpansion{ehook} {}
-\exportsortexpansion{Ihook} {}
-\exportsortexpansion{ihook} {}
-\exportsortexpansion{Ohook} {}
-\exportsortexpansion{ohook} {}
-\exportsortexpansion{Uhook} {}
-\exportsortexpansion{uhook} {}
-\exportsortexpansion{Yhook} {}
-\exportsortexpansion{yhook} {}
-
-\exportsortexpansion{Acircumflexgrave} {}
-\exportsortexpansion{Acircumflexacute} {}
-\exportsortexpansion{Acircumflextilde} {}
-\exportsortexpansion{Acircumflexhook} {}
-\exportsortexpansion{acircumflexgrave} {}
-\exportsortexpansion{acircumflexacute} {}
-\exportsortexpansion{acircumflextilde} {}
-\exportsortexpansion{acircumflexhook} {}
-\exportsortexpansion{Ecircumflexgrave} {}
-\exportsortexpansion{Ecircumflexacute} {}
-\exportsortexpansion{Ecircumflextilde} {}
-\exportsortexpansion{Ecircumflexhook} {}
-\exportsortexpansion{ecircumflexgrave} {}
-\exportsortexpansion{ecircumflexacute} {}
-\exportsortexpansion{ecircumflextilde} {}
-\exportsortexpansion{ecircumflexhook} {}
-\exportsortexpansion{Ocircumflexgrave} {}
-\exportsortexpansion{Ocircumflexacute} {}
-\exportsortexpansion{Ocircumflextilde} {}
-\exportsortexpansion{Ocircumflexhook} {}
-\exportsortexpansion{ocircumflexgrave} {}
-\exportsortexpansion{ocircumflexacute} {}
-\exportsortexpansion{ocircumflextilde} {}
-\exportsortexpansion{ocircumflexhook} {}
-
-\exportsortexpansion{Abrevegrave} {}
-\exportsortexpansion{Abreveacute} {}
-\exportsortexpansion{Abrevetilde} {}
-\exportsortexpansion{Abrevehook} {}
-\exportsortexpansion{abrevegrave} {}
-\exportsortexpansion{abreveacute} {}
-\exportsortexpansion{abrevetilde} {}
-\exportsortexpansion{abrevehook} {}
-
-\exportsortexpansion{Adotbelow} {}
-\exportsortexpansion{adotbelow} {}
-\exportsortexpansion{Edotbelow} {}
-\exportsortexpansion{edotbelow} {}
-\exportsortexpansion{Idotbelow} {}
-\exportsortexpansion{idotbelow} {}
-\exportsortexpansion{Odotbelow} {}
-\exportsortexpansion{odotbelow} {}
-\exportsortexpansion{Udotbelow} {}
-\exportsortexpansion{udotbelow} {}
-\exportsortexpansion{Ydotbelow} {}
-\exportsortexpansion{ydotbelow} {}
-\exportsortexpansion{Ohorndotbelow} {}
-\exportsortexpansion{ohorndotbelow} {}
-\exportsortexpansion{Uhorndotbelow} {}
-\exportsortexpansion{uhorndotbelow} {}
-
-\exportsortexpansion{Acircumflexdotbelow} {}
-\exportsortexpansion{acircumflexdotbelow} {}
-\exportsortexpansion{Ecircumflexdotbelow} {}
-\exportsortexpansion{ecircumflexdotbelow} {}
-\exportsortexpansion{Ocircumflexdotbelow} {}
-\exportsortexpansion{ocircumflexdotbelow} {}
-\exportsortexpansion{Abrevedotbelow} {}
-\exportsortexpansion{abrevedotbelow} {}
-
-\exportsortexpansion{Ohorn} {}
-\exportsortexpansion{Ohorngrave} {}
-\exportsortexpansion{Ohornacute} {}
-\exportsortexpansion{Ohorntilde} {}
-\exportsortexpansion{Ohornhook } {}
-\exportsortexpansion{ohorn} {}
-\exportsortexpansion{ohorngrave} {}
-\exportsortexpansion{ohornacute} {}
-\exportsortexpansion{ohorntilde} {}
-\exportsortexpansion{ohornhook } {}
-\exportsortexpansion{Uhorn} {}
-\exportsortexpansion{Uhorngrave} {}
-\exportsortexpansion{Uhornacute} {}
-\exportsortexpansion{Uhorntilde} {}
-\exportsortexpansion{Uhornhook } {}
-\exportsortexpansion{uhorn} {}
-\exportsortexpansion{uhorngrave} {}
-\exportsortexpansion{uhornacute} {}
-\exportsortexpansion{uhorntilde} {}
-\exportsortexpansion{uhornhook} {}
-
-\exportsortexpansion{eszett} {ssharp}
-\exportsortexpansion{Eszett} {Ssharp}
-
-\exportsortexpansion{lslash} {lstroke}
-\exportsortexpansion{Lslash} {Lstroke}
-\exportsortexpansion{dslash} {dstroke}
-\exportsortexpansion{Dslash} {Dstroke}
-\exportsortexpansion{oslash} {ostroke}
-\exportsortexpansion{Oslash} {Ostroke}
-
-\exportsortexpansion{dcroat} {dstroke}
-\exportsortexpansion{Dcroat} {Dstroke}
-
-% more
-
-\exportsortshortcut{\^ A} {\Acircumflex} \exportsortshortcut{\^ a} {\acircumflex}
-\exportsortshortcut{\^ C} {\Ccircumflex} \exportsortshortcut{\^ c} {\ccircumflex}
-\exportsortshortcut{\^ E} {\Ecircumflex} \exportsortshortcut{\^ e} {\ecircumflex}
-\exportsortshortcut{\^ G} {\Gcircumflex} \exportsortshortcut{\^ g} {\gcircumflex}
-\exportsortshortcut{\^ H} {\Hcircumflex} \exportsortshortcut{\^ h} {\hcircumflex}
-\exportsortshortcut{\^ I} {\Icircumflex} \exportsortshortcut{\^ i} {\icircumflex} \exportsortshortcut{\^\i} {\icircumflex}
-\exportsortshortcut{\^ J} {\Jcircumflex} \exportsortshortcut{\^ j} {\jcircumflex} \exportsortshortcut{\^\j} {\jcircumflex}
-\exportsortshortcut{\^ O} {\Ocircumflex} \exportsortshortcut{\^ o} {\ocircumflex}
-\exportsortshortcut{\^ S} {\Scircumflex} \exportsortshortcut{\^ s} {\scircumflex}
-\exportsortshortcut{\^ U} {\Ucircumflex} \exportsortshortcut{\^ u} {\ucircumflex}
-\exportsortshortcut{\^ W} {\Wcircumflex} \exportsortshortcut{\^ w} {\wcircumflex}
-\exportsortshortcut{\^ Y} {\Ycircumflex} \exportsortshortcut{\^ y} {\ycircumflex}
-
-\exportsortshortcut{\` A} {\Agrave} \exportsortshortcut{\` a} {\agrave}
-\exportsortshortcut{\` E} {\Egrave} \exportsortshortcut{\` e} {\egrave}
-\exportsortshortcut{\` I} {\Igrave} \exportsortshortcut{\` i} {\igrave} \exportsortshortcut{\`\i} {\igrave}
-\exportsortshortcut{\` O} {\Ograve} \exportsortshortcut{\` o} {\ograve}
-\exportsortshortcut{\` U} {\Ugrave} \exportsortshortcut{\` u} {\ugrave}
-\exportsortshortcut{\` Y} {\Ygrave} \exportsortshortcut{\` y} {\ygrave}
-
-\exportsortshortcut{\~ A} {\Atilde} \exportsortshortcut{\~ a} {\atilde}
-\exportsortshortcut{\~ I} {\Itilde} \exportsortshortcut{\~ i} {\itilde} \exportsortshortcut{\~\i} {\itilde}
-\exportsortshortcut{\~ O} {\Otilde} \exportsortshortcut{\~ o} {\otilde}
-\exportsortshortcut{\~ U} {\Utilde} \exportsortshortcut{\~ u} {\utilde}
-
-\exportsortshortcut{\" A} {\Adiaeresis} \exportsortshortcut{\" a} {\adiaeresis}
-\exportsortshortcut{\" E} {\Ediaeresis} \exportsortshortcut{\" e} {\ediaeresis}
-\exportsortshortcut{\" I} {\Idiaeresis} \exportsortshortcut{\" i} {\idiaeresis} \exportsortshortcut{\"\i} {\idiaeresis}
-\exportsortshortcut{\" O} {\Odiaeresis} \exportsortshortcut{\" o} {\odiaeresis}
-\exportsortshortcut{\" U} {\Udiaeresis} \exportsortshortcut{\" u} {\udiaeresis}
-\exportsortshortcut{\" Y} {\Ydiaeresis} \exportsortshortcut{\" y} {\ydiaeresis}
-
-\exportsortshortcut{\' A} {\Aacute} \exportsortshortcut{\' a} {\aacute}
-\exportsortshortcut{\' C} {\Cacute} \exportsortshortcut{\' c} {\cacute}
-\exportsortshortcut{\' E} {\Eacute} \exportsortshortcut{\' e} {\eacute}
-\exportsortshortcut{\' I} {\Iacute} \exportsortshortcut{\' i} {\iacute} \exportsortshortcut{\'\i} {\iacute}
-\exportsortshortcut{\' L} {\Lacute} \exportsortshortcut{\' l} {\lacute}
-\exportsortshortcut{\' N} {\Nacute} \exportsortshortcut{\' n} {\nacute}
-\exportsortshortcut{\' O} {\Oacute} \exportsortshortcut{\' o} {\oacute}
-\exportsortshortcut{\' R} {\Racute} \exportsortshortcut{\' r} {\racute}
-\exportsortshortcut{\' S} {\Sacute} \exportsortshortcut{\' s} {\sacute}
-\exportsortshortcut{\' U} {\Uacute} \exportsortshortcut{\' u} {\uacute}
-\exportsortshortcut{\' Y} {\Yacute} \exportsortshortcut{\' y} {\yacute}
-\exportsortshortcut{\' Z} {\Zacute} \exportsortshortcut{\' z} {\zacute}
-
-\exportsortshortcut{\. C} {\Cdotaccent} \exportsortshortcut{\. c} {\cdotaccent}
-\exportsortshortcut{\. E} {\Edotaccent} \exportsortshortcut{\. e} {\edotaccent}
-\exportsortshortcut{\. G} {\Gdotaccent} \exportsortshortcut{\. g} {\gdotaccent}
-\exportsortshortcut{\. I} {\Idotaccent} \exportsortshortcut{\. i} {\idotaccent} \exportsortshortcut{\.\i} {\idotaccent}
-\exportsortshortcut{\. Z} {\Zdotaccent} \exportsortshortcut{\. z} {\zdotaccent}
-
-\exportsortshortcut{\= A} {\Amacron} \exportsortshortcut{\= a} {\amacron}
-\exportsortshortcut{\= E} {\Emacron} \exportsortshortcut{\= e} {\emacron}
-\exportsortshortcut{\= I} {\Imacron} \exportsortshortcut{\= i} {\imacron} \exportsortshortcut{\=\i} {\imacron}
-\exportsortshortcut{\= O} {\Omacron} \exportsortshortcut{\= o} {\omacron}
-\exportsortshortcut{\= U} {\Umacron} \exportsortshortcut{\= u} {\umacron}
-
-\exportsortshortcut{\c C} {\Ccedilla} \exportsortshortcut{\c c} {\ccedilla}
-\exportsortshortcut{\c K} {\Kcedilla} \exportsortshortcut{\c k} {\kcedilla}
-\exportsortshortcut{\c L} {\Lcedilla} \exportsortshortcut{\c l} {\lcedilla}
-\exportsortshortcut{\c N} {\Ncedilla} \exportsortshortcut{\c n} {\ncedilla}
-\exportsortshortcut{\c R} {\Rcedilla} \exportsortshortcut{\c r} {\rcedilla}
-\exportsortshortcut{\c S} {\Scedilla} \exportsortshortcut{\c s} {\scedilla}
-\exportsortshortcut{\c T} {\Tcedilla} \exportsortshortcut{\c t} {\tcedilla}
-
-\exportsortshortcut{\H O} {\Ohungarumlaut} \exportsortshortcut{\H o} {\ohungarumlaut}
-\exportsortshortcut{\H u} {\uhungarumlaut} \exportsortshortcut{\H U} {\Uhungarumlaut}
-
-\exportsortshortcut{\k A} {\Aogonek} \exportsortshortcut{\k a} {\aogonek}
-\exportsortshortcut{\k E} {\Eogonek} \exportsortshortcut{\k e} {\eogonek}
-\exportsortshortcut{\k I} {\Iogonek} \exportsortshortcut{\k i} {\iogonek}
-\exportsortshortcut{\k U} {\Uogonek} \exportsortshortcut{\k u} {\uogonek}
-
-\exportsortshortcut{\r A} {\Aring} \exportsortshortcut{\r a} {\aring}
-\exportsortshortcut{\r U} {\Uring} \exportsortshortcut{\r u} {\uring}
-
-\exportsortshortcut{\u A} {\Abreve} \exportsortshortcut{\u a} {\abreve}
-\exportsortshortcut{\u E} {\Ebreve} \exportsortshortcut{\u e} {\ebreve}
-\exportsortshortcut{\u G} {\Gbreve} \exportsortshortcut{\u g} {\gbreve}
-\exportsortshortcut{\u I} {\Ibreve} \exportsortshortcut{\u i} {\ibreve} \exportsortshortcut{\u\i} {\ibreve}
-\exportsortshortcut{\u O} {\Obreve} \exportsortshortcut{\u o} {\obreve}
-\exportsortshortcut{\u U} {\Ubreve} \exportsortshortcut{\u u} {\ubreve}
-
-\exportsortshortcut{\v C} {\Ccaron} \exportsortshortcut{\v c} {\ccaron}
-\exportsortshortcut{\v D} {\Dcaron} \exportsortshortcut{\v d} {\dcaron}
-\exportsortshortcut{\v E} {\Ecaron} \exportsortshortcut{\v e} {\ecaron}
-\exportsortshortcut{\v L} {\Lcaron} \exportsortshortcut{\v l} {\lcaron}
-\exportsortshortcut{\v N} {\Ncaron} \exportsortshortcut{\v n} {\ncaron}
-\exportsortshortcut{\v R} {\Rcaron} \exportsortshortcut{\v r} {\rcaron}
-\exportsortshortcut{\v S} {\Scaron} \exportsortshortcut{\v s} {\scaron}
-\exportsortshortcut{\v T} {\Tcaron} \exportsortshortcut{\v t} {\tcaron}
-\exportsortshortcut{\v Z} {\Zcaron} \exportsortshortcut{\v z} {\zcaron}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/sort-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/sort-ini.mkii
deleted file mode 100644
index 8114f82c8eb..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/sort-ini.mkii
+++ /dev/null
@@ -1,161 +0,0 @@
-%D \module
-%D [ file=sort-ini,
-%D version=2005.08.08,
-%D title=\CONTEXT\ Sorting Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% todo: 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.
-
-\writestatus{loading}{ConTeXt Sorting Macros / Initialization}
-
-%D This module replaces existing sort key handling and is meant to be
-%D used with the new texutil functionality. This module defines a few
-%D auxiliary macros.
-
-\ifx\exportsortaction\undefined \else \endinput \fi
-
-%D The sorting method is largely bases on the one used in the old version
-%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
-%D the rules. Currently we have multipass substitution and onepass sorting,
-%D but we may change this some day. Since there is a plugin mechanism, using
-%D an external sorter is also possible.
-
-% test file:
-%
-% \mainlanguage[sl] \readfile{sort-ini}{}{}
-%
-% \starttext
-% test \index {aa1} test \index {ab1} test \index {aa2}
-% test \index {ab2} test \index {aa10} test \index {aa8}
-% test \index {aa9} test \index {aa11} test \index {aa10}
-% test \index {cccc} test \index {\ccaron ccc} test \index {\cacute ccc}
-% test \index {caaa} test \index {\ccaron aaa} test \index {\cacute aaa}
-% \placeindex
-% \stoptext
-
-% definitions:
-%
-% \exportsortshortcut{\\\'\\i}{iacute}
-% \exportsortshortcut{\\\'i} {iacute}
-% \exportsortshortcut{\\\"e} {ediaeresis}
-% \exportsortshortcut{\\\'o} {oacute}
-%
-% \exportsortexpansion{aeligature}{ae}
-% \exportsortexpansion{ijligature}{y}
-% \exportsortexpansion{oacute} {oz}
-% \exportsortexpansion{eacute} {ezzz} % or e3
-% \exportsortexpansion{egrave} {ezz} % or e2
-% \exportsortexpansion{ediaeresis}{ez} % or e1
-% \exportsortexpansion{adiaeresis}{az}
-% \exportsortreduction{ch} {c}
-% \exportsortreduction{ij} {y}
-%
-% \exportsortexpansion{ccaron} {cz}
-% \exportsortexpansion{cacute} {czz}
-% \exportsortexpansion{dstroke} {dz}
-% \exportsortexpansion{scaron} {sz}
-% \exportsortexpansion{zcaron} {zz}
-%
-% \exportsortreduction{ch}{c}
-% \exportsortreduction{ij}{y}
-%
-% \exportsortexpansion {ccaron} {c+1}
-% \exportsortdivision {c+1} {ccaron}
-% ==
-% \exportsortrule {ccaron} {c+1}
-
-\unprotect
-
-\def\savesortkeys
- {\ifproductionrun
- \the\everysavesortkeys
- \global\everysavesortkeys\emptytoks
- \fi}
-
-\appendtoks \savesortkeys \to \everyshipout
-
-\let\currentexportclass\empty
-
-\def\exportsortaction#1#2#3%
- {\defconvertedargument\asciia{#2}%
- \defconvertedargument\asciib{#3}%
- \immediatewriteutility{x #1 {\currentexportclass} {\asciia} {\asciib}}}
-
-\def\exportsortshortcut {\exportsortaction s}
-\def\exportsortexpansion{\exportsortaction e}
-\def\exportsortreduction{\exportsortaction r}
-\def\exportsortdivision {\exportsortaction d}
-
-\def\exportsortrule#1#2%
- {\exportsortexpansion{#1}{#2}%
- \exportsortdivision {#2}{#1}}
-
-\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% mkii code !
- {\doifnumberelse{##1}
- {\expanded{\exportsortshortcut{\rawcharacter{##1}}}{##2}}%
- {\expanded{\exportsortshortcut{\rawcharacter{\number`##1}}}{##2}}}%
- \doifelsenothing\currentregime
- {\doifnot\characterencoding\nocharacterencoding % to be sure, autoregime
- {\dowalkregime\characterencoding}}%
- {\dowalkregime\characterencoding}}%
- \egroup
- \startnointerference
- \setcatcodetable\ctxcatcodes
- \readsysfile{\f!sortprefix def.mkii}\donothing\donothing % default
- \stopnointerference
- \global\let\savesortdefinitions\relax}
-
-\def\savesortlanguage#1% language specifics
- {\doifsomething{#1}
- {\doifundefined{\f!sortprefix::#1}%
- {\startnointerference
- \global\letvalue{\f!sortprefix::#1}\empty
- \def\currentexportclass{#1}%
- \enablemode[sortorder-#1]%
- \setcatcodetable\ctxcatcodes
- \readsysfile{\f!sortprefix lan.mkii}\donothing\donothing
- \stopnointerference}}}
-
-\prependtoks
- \savesortdefinitions
-\to \everysavesortkeys
-
-% \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
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/sort-lan.mkii b/Master/texmf-dist/tex/context/base/mkii/sort-lan.mkii
deleted file mode 100644
index c239623718f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/sort-lan.mkii
+++ /dev/null
@@ -1,217 +0,0 @@
-%D \module
-%D [ file=sort-lan,
-%D version=2005.08.08,
-%D title=\CONTEXT\ Sort Macros,
-%D subtitle=Language Definitions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% 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.
-
-% slovenian
-%
-% 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}
-% \exportsortexpansion {dstroke} {dz}
-% \exportsortexpansion {scaron} {sz}
-% \exportsortexpansion {zcaron} {zz}
-
-% \exportsortdivision {cz} {ccaron}
-% \exportsortdivision {czz} {cacute}
-% \exportsortdivision {dz} {dstroke}
-% \exportsortdivision {sz} {scaron}
-% \exportsortdivision {zz} {zcaron}
-% \stopmode
-%
-% \startmode[sortorder-sl]
-% \exportsortexpansion {ccaron} {c+1}
-% \exportsortexpansion {cacute} {c+2}
-% \exportsortexpansion {dstroke} {d+1}
-% \exportsortexpansion {scaron} {s+1}
-% \exportsortexpansion {zcaron} {z+1}
-%
-% \exportsortdivision {c+1} {ccaron}
-% \exportsortdivision {c+2} {cacute}
-% \exportsortdivision {d+1} {dstroke}
-% \exportsortdivision {s+1} {scaron}
-% \exportsortdivision {z+1} {zcaron}
-% \stopmode
-
-\startmode[sortorder-sl]
- \exportsortrule {ccaron} {c+1}
- \exportsortrule {cacute} {c+2}
- \exportsortrule {dstroke} {d+1}
- \exportsortrule {scaron} {s+1}
- \exportsortrule {zcaron} {z+1}
-\stopmode
-
-% finnish
-%
-% a-u, v+w sorted together, x-z, aring, adiaeresis, odiaeresis
-
-\startmode[sortorder-fi]
- \exportsortrule {v} {w}
- \exportsortrule {aring} {z+1}
- \exportsortrule {adiaeresis} {z+2}
- \exportsortrule {odiaeresis} {z+3}
-\stopmode
-
-% swedish
-%
-% 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}
- \exportsortrule {odiaeresis} {z+3}
-\stopmode
-
-% norwegian, danish
-%
-% a-z, aeligature, oslash, aring
-
-\startmode[sortorder-no,sortorder-da]
- \exportsortrule {aeligature} {z+1}
- \exportsortrule {oslash} {z+2}
- \exportsortrule {aring} {z+3}
-\stopmode
-
-% islandic
-%
-% a, aacute, b, c, d, eth, e, eacute, f-i, iacute, j-o, oacute, p-u, uacute, v, w (?), x, y, yacute, z, aeligature, oslash, thorn
-
-% estonian
-%
-% a-s, scaron, z, zcaron, t-w, otilde, adiaeresis, odiaeresis, udiaeresis, x, y
-
-% czech
-%
-% 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]
- \exportsortexpansion {aacute} {a}
- \exportsortexpansion {Aacute} {A}
- \exportsortexpansion {ccaron} {c+1}
- \exportsortexpansion {Ccaron} {C+1}
- \exportsortdivision {c+1} {ccaron}
- \exportsortexpansion {dcaron} {d}
- \exportsortexpansion {Dcaron} {D}
- %\exportsortdivision {d+1} {dcaron}
- \exportsortexpansion {eacute} {e}
- \exportsortexpansion {Eacute} {E}
- \exportsortexpansion {ecaron} {e}
- \exportsortexpansion {Ecaron} {E}
- \exportsortreduction {ch} {h+1}
- \exportsortexpansion {ch} {h+1}
- \exportsortreduction {Ch} {H+1}
- \exportsortexpansion {Ch} {H+1}
- \exportsortdivision {h+1} {czsortdivisionch}
- \exportsortexpansion {iacute} {i}
- \exportsortexpansion {Iacute} {I}
- \exportsortexpansion {ncaron} {n}
- \exportsortexpansion {Ncaron} {N}
- %\exportsortdivision {n+1} {ncaron}
- \exportsortexpansion {oacute} {o}
- \exportsortexpansion {Oacute} {O}
- \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}
- \exportsortexpansion {Tcaron} {T}
- %\exportsortdivision {t+1} {tcaron}
- \exportsortexpansion {uacute} {u}
- \exportsortexpansion {Uacute} {U}
- \exportsortexpansion {uring} {u}
- \exportsortexpansion {Uring} {U}
- \exportsortexpansion {yacute} {y}
- \exportsortexpansion {Yacute} {Y}
- \exportsortexpansion {zcaron} {z+1}
- \exportsortexpansion {Zcaron} {Z+1}
- \exportsortdivision {z+1} {zcaron}
-\stopmode
-
-% Polish:
-
-\startmode[sortorder-pl]
- \exportsortrule {aogonek} {a+1}
- \exportsortrule {cacute} {c+1}
- \exportsortrule {eogonek} {e+1}
- \exportsortrule {lstroke} {l+1}
- \exportsortrule {nacute} {n+1}
- \exportsortrule {oacute} {o+1}
- \exportsortrule {sacute} {s+1}
- \exportsortrule {zacute} {z+1}
- \exportsortrule {zdotaccent} {z+2}
-\stopmode
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spac-gen.mkii b/Master/texmf-dist/tex/context/base/mkii/spac-gen.mkii
deleted file mode 100644
index 91e37925041..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spac-gen.mkii
+++ /dev/null
@@ -1,4667 +0,0 @@
-%D \module
-%D [ file=core-spa,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Spacing,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / Spacing}
-
-% to be sorted out: dependencies, order of initialization / also some dutch code here
-
-\unprotect
-
-% some will move to core-var
-
-\newif \ifgridsnapping
-\newif \iffuzzyvskip
-\let \fuzzyvskip \gobbleoneargument
-\let \removelastfuzzyvskip \relax
-
-\let \startbaselinecorrection \relax
-\let \stopbaselinecorrection \relax
-\let \baselinecorrection \relax
-\let \offbaselinecorrection \relax
-
-\appendtoks \spacing 1\to \everybodyfont
-\appendtoks \presetnormallineheight \to \everybodyfont
-\appendtoks \setnormalbaselines \to \everybodyfont % check if redundant
-\appendtoks \setstrut \to \everybodyfont % check if redundant
-\appendtoks \settopskip \to \everybodyfont
-\appendtoks \setmaxdepth \to \everybodyfont
-%appendtoks \spacing 1\to \everybodyfont
-\appendtoks \simplesetupindenting \to \everybodyfont
-\appendtoks \simplesetupblank \to \everybodyfont
-\appendtoks \simplesetupwhitespace \to \everybodyfont
-%appendtoks \checknotes \to \everybodyfont % not
-\appendtoks \simplesetupspacing \to \everybodyfont % nieuw
-\appendtoks \setrelativeinterlinespace \to \everybodyfont
-
-\appendtoks \updateraggedskips \to \everyfontswitch % under test
-\prependtoks \let\par\endgraf \to \everypagebody % see \fillinline
-\appendtoks \simplesetupspacing \to \everydefinedfont
-
-% if you want to hyphenate the first word of a paragraph ... \appendtoks\hskip0pt\to\everypar
-
-\def\stelfactorenin
- {\simplesetupwhitespace
- \simplesetupblank
- \settopskip
- \setmaxdepth}
-
-\def\softbreak
- {\relax\ifhmode\hskip\parfillskip\break\fi}
-
-\let\poplastnode\relax
-
-\def\pushlastnode
- {\ifdim\lastskip=\zeropoint
- \ifnum\lastpenalty=\zerocount
- \ifnum\lastkern=\zerocount
- \let\poplastnode\relax
- \else
- \edef\poplastnode{\kern\the\lastkern\relax}\kern-\lastkern % untested
- \fi
- \else
- \edef\poplastnode{\penalty\the\lastpenalty\relax}\nobreak % untested
- \fi
- \else
- \edef\poplastnode{\vskip\the\lastskip\relax}\vskip-\lastskip % \removelastskip
- \fi}
-
-%D The dreadful sequence \type {\bgroup} \unknown\
-%D \type {\carryoverpar} \unknown\ \type {\egroup} is needed
-%D when for instance sidefloats are used in combination with
-%D something that starts with a group. This is because
-%D otherwise the indentation as set (by the output routine)
-%D inside the group are forgotten afterwards. (I must
-%D not forget its existence).
-
-\global\let\carriedoverpar\relax
-
-\def\carryoverpar#1%
- {\expanded % \scratchtoks{#1}%
- {\noexpand#1% \the\scratchtoks
- \hangindent\the\hangindent
- \hangafter \the\hangafter
- \parskip \the\parskip
- \leftskip \the\leftskip
- \rightskip \the\rightskip}}
-
-%D A quick way to determine left|/|middle|/|right states
-%D (experimental).
-
-\setvalue{\??as\v!left }{0}
-\setvalue{\??as\v!middle}{1}
-\setvalue{\??as\v!right }{2}
-
-\def\setalignmentswitch#1%
- {\chardef\alignmentswitch0\csname\??as#1\endcsname\relax}
-
-%D There are two ways to influence the interline spacing. The
-%D most general and often most consistent way is using
-%D
-%D \showsetup{setupinterlinespace}
-%D
-%D For instance
-%D
-%D \starttyping
-%D \setupinterlinespace[line=2.8ex]
-%D \stoptyping
-%D
-%D This setting adapts itself to the bodyfontsize, while for
-%D instance saying
-%D
-%D \starttyping
-%D \setupinterlinespace[line=12pt]
-%D \stoptyping
-%D
-%D sets things fixed for all sizes, which is definitely not
-%D what we want. Therefore one can also say:
-%D
-%D \starttyping
-%D \definebodyfontenvironment[9pt][interlinespace=11pt]
-%D \stoptyping
-%D
-%D One can still use \type{\setupinterlinespace} (without
-%D arguments) to set the interline space according to the
-%D current font, e.g. a \type{\bfa}.
-
-\newif\iflocalinterlinespace
-
-% font-ini
-
-\ifx\bodyfontinterlinespecs\undefined
-
- \let\bodyfontinterlinespecs\empty
- \let\bodyfontinterlinespace\empty
-
-\fi
-
-\def\presetnormallineheight
- {\edef\normallineheight{\@@itline}%
-% done elsewhere : \spacing\!!plusone % new per 10/08/2004, else problems in otr / !! needed
- \iflocalinterlinespace \else
- \doifdefined\bodyfontinterlinespecs
- {\doifsomething\bodyfontinterlinespace
- {\edef\normallineheight{\bodyfontinterlinespace}}}%
- \fi}
-
-\def\setupspecifiedinterlinespace[#1]%
- {\getparameters[\??it][#1]%
- \scratchdimen0\@@itheight\points
- \advance\scratchdimen 0\@@itdepth\points
- \ifdim\scratchdimen>\onepoint
- \showmessage\m!layouts{10}{\@@itheight,\@@itdepth}%
- \let\@@itheight\strutheightfactor
- \let\@@itdepth \strutdepthfactor
- \else
- \let\strutheightfactor\@@itheight
- \let\strutdepthfactor \@@itdepth
- \fi
- \let\minimumstrutheight \@@itminheight
- \let\minimumstrutdepth \@@itmindepth
- \let\minimumlinedistance\@@itdistance
- \let\normallineheight \@@itline % let ! ! ! ! ! ivm ex
- \doifelse\@@ittop\v!height % new, topskip does more bad than good
- {\let\topskipfactor \@@itheight}
- {\let\topskipfactor \@@ittop }%
- \let\maxdepthfactor \@@itbottom
- \let\baselinegluefactor \@@itstretch
- \setfontparameters % redundant, can be \setstrut, test first
- \updateraggedskips} % yes indeed
-
-% \let\currentrelativeinterlinespace\empty
-%
-% \def\setuprelativeinterlinespace[#1]%
-% {\processallactionsinset
-% [#1]
-% [ \v!on=>\oninterlineskip,
-% \v!off=>\offinterlineskip,
-% \v!reset=>\let\currentrelativeinterlinespace\empty
-% \setfontparameters,% just \setstrut, test first
-% \s!unknown=>\assignvalue{#1}\currentrelativeinterlinespace{1.00}{1.25}{1.50}%
-% \spacing\currentrelativeinterlinespace]}
-
-% \setupinterlinespace[big] \switchtobodyfont[11pt] -> forgotten
-% \setupinterlinespace[auto,big] \switchtobodyfont[11pt] -> remembered
-
-\let\currentrelativeinterlinespace\empty
-
-\def\setuprelativeinterlinespace[#1]%
- {\processallactionsinset
- [#1]
- [ \v!on=>\oninterlineskip,
- \v!off=>\offinterlineskip,
- \v!reset=>\let\currentrelativeinterlinespace\empty
- \let\setrelativeinterlinespace\relax
- \setfontparameters,
- \v!auto=>\let\setrelativeinterlinespace\dosetrelativeinterlinespace,
- \s!unknown=>\assignvalue\commalistelement\currentrelativeinterlinespace{1.00}{1.25}{1.50}%
- \spacing\currentrelativeinterlinespace]}
-
-\def\dosetrelativeinterlinespace
- {\ifx\currentrelativeinterlinespace\empty\else
- \spacing\currentrelativeinterlinespace
- \fi}
-
-\let\setrelativeinterlinespace\relax
-
-% \appendtoks \setrelativeinterlinespace \to \everybodyfont
-
-\def\complexsetupinterlinespace[#1]% \commalistelement ipv #1
- {\doifassignmentelse{#1}\setupspecifiedinterlinespace\setuprelativeinterlinespace[#1]}
-
-\def\setuplocalinterlinespace[#1]%
- {\localinterlinespacetrue
- \setupinterlinespace[#1]%
- \localinterlinespacefalse}
-
-\def\simplesetupinterlinespace
- {\localinterlinespacetrue
- \setfontparameters
- \updateraggedskips % funny one here
- \localinterlinespacefalse}
-
-\definecomplexorsimple\setupinterlinespace
-
-% In earlier versions \type{\bigskipamount} was
-% \type{\ht\strutbox} and the stretch was plus or minus
-% \type{.4\dp\strutbox}. Don't ask me why. The most recent
-% implementation is based on a user supplied distance, which
-% is by default \type{.75\normalskipamount} where
-% \type{\normalskipamount} equals the current baseline
-% distance.
-
-% \lineskiplimit = -\maxdimen -> freezes baselineskip
-
-% can be conditionals
-
-\newif\ifblanknowhite \blanknowhitefalse
-\newif\ifblankindeed \blankindeedfalse
-\newif\ifblankreset \blankresetfalse
-\newif\ifblankdisable \blankdisablefalse
-\newif\ifblankflexible \blankflexibletrue
-\newif\ifblankouter
-\newif\ifblankforce
-\newif\ifblankgoback
-
-\newskip\blankskip \blankskip=\bigskipamount
-\newskip\blankskipamount
-
-\def\skipfactor {.75}
-\def\skipgluefactor{.25}
-
-\def\normalskipamount
- {\openlineheight
- \ifgridsnapping \else \ifblankflexible
- \!!plus \skipgluefactor\openlineheight
- \!!minus\skipgluefactor\openlineheight
- \fi \fi
- \relax}
-
-\def\linedistance {\normalskipamount}
-\def\appliedblankskip{\skipfactor\linedistance}
-\def\lastblankskip {\blankskip}
-\def\currentblank {\v!big}
-\def\oldprevdepth {\prevdepth}
-\def\newprevdepth {-1001pt}
-\def\mindimen {1sp} % was: 0.00002pt
-
-\newif\iflocalblankfixed
-\newif\iflocalblankflexible
-
-\def\geenblanko{\removelastskip} % will become obsolete
-
-%%%% pas op, wordt ook in core-pos gebruikt
-
-\def\doassignsomeskip#1\to#2% ook nog \v!halfline+fuzzysnap
- {\doifelse{#1}\v!line
- {#2\openlineheight}
- {\ifgridsnapping
- \assigndimension{#1}{#2}{.25\openlineheight}{.5\openlineheight}\openlineheight
- \else
- \assigndimension{#1}{#2}\smallskipamount\medskipamount\bigskipamount
- \fi}%
- \relax}
-
-% \relax is really needed, else we may loose stretch due to lookahead; somehow
-% this bug was introduced a while ago but somehow went unnoticed; fixed 2/7/2008
-
-\def\addblankskip#1#2#3{\global\advance\blankskip#1\ifgridsnapping#3\else#2\fi\relax}
-
-\def\defineblankmethod[#1]#2{\setvalue{\??bo\??bo#1}{#2}}
-
-\defineblankmethod [\v!big] {\addblankskip+\bigskipamount \openlineheight}
-\defineblankmethod [-\v!big] {\addblankskip-\bigskipamount \openlineheight}
-\defineblankmethod [\v!medium] {\addblankskip+\medskipamount {.5\openlineheight}}
-\defineblankmethod [-\v!medium] {\addblankskip-\medskipamount {.5\openlineheight}}
-\defineblankmethod [\v!small] {\addblankskip+\smallskipamount{.25\openlineheight}}
-\defineblankmethod [-\v!small] {\addblankskip-\smallskipamount{.25\openlineheight}}
-\defineblankmethod [\v!white] {\addblankskip+\parskip \openlineheight}
-\defineblankmethod [-\v!white] {\addblankskip-\parskip \openlineheight}
-\defineblankmethod [\v!line] {\addblankskip+\openlineheight \openlineheight}
-\defineblankmethod [-\v!line] {\addblankskip-\openlineheight \openlineheight}
-
-\defineblankmethod [\v!formula] {\global\advance\blankskip\medskipamount}
-\defineblankmethod [\v!nowhite] {\global\blanknowhitetrue}
-\defineblankmethod [\v!disable] {\global\blankdisabletrue}
-\defineblankmethod [\v!force] {\global\blankforcetrue}
-\defineblankmethod [\v!outer] {\ifvmode\ifinner\blankoutertrue\fi\fi}
-\defineblankmethod [\v!reset] {\global\blankresettrue}
-\defineblankmethod [\v!flexible] {\global\localblankflexibletrue}
-\defineblankmethod [\v!fixed] {\global\localblankfixedtrue}
-\defineblankmethod [\v!back] {\global\blankgobacktrue} % {\geenblanko}
-\defineblankmethod [\v!halfline] {\ifgridsnapping\global\fuzzyvskiptrue\fi
- \global\advance\blankskip .5\lineheight}
-\defineblankmethod [\v!none] {\global\blankresettrue}
-\defineblankmethod [\v!joinedup] {\ifvmode\nointerlineskip\fi}
-\defineblankmethod[\v!synchronize] {\verticalstrut\vskip-2\lineheight\verticalstrut}
-
-% \vtop{\blank[synchronize]\blank[line]test}
-
-\defineblankmethod [\v!always] {\redowhitespace} % experimental
-
-% happens often, so we speed this up:
-%
-% \defineblankmethod [2*\v!line] {\addblankskip+{2\openlineheight}{2\openlineheight}}
-% \defineblankmethod [2*\v!big] {\addblankskip+{2\bigskipamount }{2\openlineheight}}
-%
-% no, with 2\whatever we loose the stretch and shrink! Taco's alternative:
-
-\defineblankmethod
- [2*\v!line]
- {\addblankskip+\openlineheight\openlineheight
- \addblankskip+\openlineheight\openlineheight}
-
-\defineblankmethod
- [2*\v!big]
- {\addblankskip+\bigskipamount\openlineheight
- \addblankskip+\bigskipamount\openlineheight}
-
-\def\doblank#1%
- {\edefconvertedargument\ascii{#1}%
- \ifx\ascii\empty\else
- \ifcsname\??bo\??bo\ascii\endcsname % internal def
- \csname\??bo\??bo\ascii\endcsname
- \else\ifcsname\??bo\ascii\endcsname % user def / slow
- \@EA\rawprocesscommalist\@EA[\csname\??bo\ascii\endcsname]\doblank\relax
- \else
- \dorepeatwithcommand[#1]\redoblank
- \fi\fi
- \fi
- \relax}
-
-\def\redoblank#1%
- {\edefconvertedargument\ascii{#1}%
- \ifx\ascii\empty\else
- \ifcsname\??bo\??bo\ascii\endcsname % internal def
- \csname\??bo\??bo\ascii\endcsname
- \else\ifcsname\??bo\ascii\endcsname % user def / slow
- \@EA\rawprocesscommalist\@EA[\csname\??bo\ascii\endcsname]\doblank\relax
- \else
- \global\advance\blankskip#1\relax
- \fi\fi
- \fi
- \relax}
-
-\unexpanded\def\blank % the \relax is definitely needed due to the many \if's
- {\relax\complexorsimple\doblank}
-
-\def\complexdoblank
- {\flushnotes
- \ifmmode
- \@EA\nocomplexdoblank
- \else
- \ifopelkaar
- \ifinpagebody
- \@EA\@EAEAEA\@EA\docomplexdoblank
- \else
- \@EA\@EAEAEA\@EA\nocomplexdoblank
- \fi
- \else
- \@EAEAEA\docomplexdoblank
- \fi
- \fi}
-
-\def\nocomplexdoblank[#1]%
- {% evt blokkeerfalse
- \ifmmode\else\par\fi}
-
-% Overloaded in cont-new!
-
-\newsignal\noblanksignal
-
-% \def\doinhibitblank
-% {\kern\noblanksignal}
-
-% \def\inhibitblank% the fast, local way
-% {\endgraf\ifvmode\prevdepth\newprevdepth\fi}
-
-% \def\docomplexdoblank[#1]% pas op \relax's zijn nodig ivm volgende \if
-% {\global\blankresetfalse
-% \global\blankdisablefalse
-% \global\blanknowhitefalse
-% \global\localblankflexiblefalse
-% \global\localblankfixedfalse
-% \global\blankskip\zeropoint
-% \global\blankforcefalse
-% \global\blankgobackfalse
-% \blankouterfalse
-% \expanded{\rawprocesscommalist[#1]}\doblank
-% \ifdim\blankskip=\zeropoint\relax
-% \iflocalblankflexible
-% \doglobal\advance\blankskip \currentblank
-% \else\iflocalblankfixed
-% \doglobal\advance\blankskip \currentblank
-% \fi\fi
-% \fi
-% \ifblankouter
-% \else
-% \par
-% \ifvmode
-% \ifblankgoback
-% \removelastskip
-% \fi
-% \ifblankforce
-% % dit gaat mis in pos fonts
-% % \ifdim\prevdepth>\zeropoint\else ...
-% % -1000pt signals top of page or column (\ejectcolumn)
-% \bgroup\forgeteverypar\verticalstrut\egroup\kern-\struttotal
-% \fi
-% \ifblankdisable
-% \global\blankindeedfalse
-% \ifgridsnapping
-% \ifdim\prevdepth<\zeropoint
-% % brrr
-% \else
-% % dirty trick: smaller blanks are ignored after
-% % a larger one, so 10 lines is probably safe; first make
-% % sure that we honor penalties
-% \scratchcounter\lastpenalty
-% % now comes the trick (cross our fingers that this works
-% % well in multi columns; maybe an ifinner test is needed
-% % \vskip-10\lineheight
-% % \ifnum\scratchcounter=\zerocount \else \penalty\lastpenalty \fi
-% % \vskip 10\lineheight
-% % allas, this leads to overfull pages, so we try this:
-% \kern-\noblanksignal
-% \ifnum\scratchcounter=\zerocount
-% \else
-% \penalty\lastpenalty
-% \fi
-% \kern\noblanksignal
-% % end-of-dirty-trick
-% \fi
-% \else
-% \ifdim\prevdepth<\zeropoint
-% % brrr
-% \else
-% % ensure at least a proper prevdepth, this should be
-% % an option
-% \vskip-\prevdepth
-% \vskip\strutdepth
-% \prevdepth\strutdepth
-% \fi
-% % the old crappy piece of code
-% \edef\oldprevdepth{\the\prevdepth}%
-% \prevdepth\newprevdepth
-% \fi
-% \else
-% \global\blankindeedtrue
-% \fi
-% \ifblankreset
-% \global\blankindeedtrue
-% \ifgridsnapping
-% % let's play safe and not fool around with the depth, if
-% % only because it took a lot of effort to sort out the grid
-% % stuff in the first place
-% \else
-% \ifdim\prevdepth=\newprevdepth
-% \prevdepth\oldprevdepth
-% \fi
-% \fi
-% \fi
-% \ifblankindeed
-% \ifdim1\lastskip<1\blankskip\relax
-% % else when \blanko[2*groot] + \blanko[3*groot] with parskip
-% % equaling 1*groot, gives a groot=\parskip so adding a small
-% % value makes it distinguishable; can also be done at parskip
-% % setting time (better)
-% \global\advance\blankskip \mindimen\relax % = skip
-% % test this on 2* + 3* and parskip groot
-% \ifblanknowhite
-% \global\advance\blankskip -\parskip
-% \else
-% \ifdim\lastskip=\parskip
-% \else % force this due to previous comment
-% \ifdim\parskip>\zeropoint\relax
-% \ifdim\blankskip<\parskip\relax
-% \global\blankskip\zeropoint
-% \else
-% \global\advance\blankskip -\parskip
-% \fi
-% \fi
-% \fi
-% \fi
-% \ifblankflexible \else
-% \blankskip1\blankskip
-% \fi
-% \iflocalblankfixed
-% \blankskip1\blankskip
-% \fi
-% \iflocalblankflexible
-% \blankskip1\blankskip
-% \!!plus\skipgluefactor\blankskip
-% \!!minus\skipgluefactor\blankskip
-% \fi
-% \ifdim\lastkern=\noblanksignal % controled and grid
-% \global\blankindeedfalse
-% \else\ifgridsnapping\else\ifdim\prevdepth=\newprevdepth
-% \global\blankindeedfalse
-% \fi\fi\fi
-% \ifblankindeed
-% \iffuzzyvskip
-% \removelastfuzzyvskip
-% \fuzzyvskip\blankskip\relax
-% \else
-% \removelastskip
-% \vskip\blankskip\relax
-% \fi
-% \fi
-% \else
-% \iffuzzyvskip
-% \removelastfuzzyvskip
-% \fuzzyvskip\blankskip\relax
-% \else
-% % new, test this on pascal
-% \ifdim\blankskip<\zeropoint
-% \advance\blankskip-\lastskip
-% \removelastskip
-% \ifdim\blankskip>\zeropoint
-% \vskip\blankskip
-% \else
-% \vskip\zeropoint
-% \fi
-% \else
-% % also new
-% \ifdim\blankskip=\zeropoint
-% \ifblanknowhite
-% \geenwitruimte
-% \fi
-% \fi
-% \fi
-% \fi
-% \fi
-% \fi
-% \fi
-% \fi
-% \global\fuzzyvskipfalse
-% \presetindentation}
-
-% goback was broken:
-
-% \def\doinhibitblank
-% {\kern\noblanksignal}
-
-% \def\inhibitblank% the fast, local way
-% {\endgraf\ifvmode\prevdepth\newprevdepth\fi}
-
-% problem: we cannot look back in the mvl so we need 3 kinds of signals
-
-\def\noblankpsignal{1010101}
-
-\def\inhibitgridblank % was doinhibitblank
- {\ifvmode\else\endgraf\fi
- \ifvmode
- \ifnum\lastpenalty<10000
- \kern-\noblanksignal % new
- \kern \noblanksignal
- \else
- \penalty\noblankpsignal
- \fi
- \fi}
-
-\def\inhibittextblank % was inhibitblank
- {\endgraf
- \ifvmode
- \prevdepth\newprevdepth
- \fi}
-
-% new macro
-%
-% \def\inhibitblank % need some work
-% {\endgraf
-% \ifvmode
-% \ifgridsnapping
-% \inhibitgridblank
-% \else
-% % this one spoils the grid
-% \inhibittextblank
-% \fi
-% \fi}
-
-\def\doinhibitblank{\inhibitgridblank}
-\def\inhibitblank {\inhibittextblank}
-
-% will become obsolete
-
-\ifx\undefined\savedlastskip \newskip \savedlastskip \fi
-\ifx\undefined\savedlastpenalty \newcount\savedlastpenalty \fi
-
-% beware, prevdepth can have funny values (e.g. mvl value when in box)
-
-\def\docomplexdoblank[#1]% pas op \relax's zijn nodig ivm volgende \if
- {\global\blankresetfalse
- \global\blankdisablefalse
- \global\blanknowhitefalse
- \global\localblankflexiblefalse
- \global\localblankfixedfalse
- \global\blankforcefalse
- \global\blankgobackfalse
- \blankouterfalse
- \global\blankskip\zeropoint
-%
-\edefconvertedargument\ascii{#1}% todo fast check for simple
-\ifcsname\??bo\??bo\ascii\endcsname % internal def
- \csname\??bo\??bo\ascii\endcsname
-\else\ifcsname\??bo\ascii\endcsname % user def / slow
- \@EA\rawprocesscommalist\@EA[\csname\??bo\ascii\endcsname]\doblank\relax
-\else
- \expanded{\rawprocesscommalist[#1]}\doblank
-\fi\fi
-%
- \relax % to be sure
- \ifdim\blankskip=\zeropoint\relax
- \iflocalblankflexible
- \doglobal\advance\blankskip \currentblank
- \else\iflocalblankfixed
- \doglobal\advance\blankskip \currentblank
- \fi\fi
- \fi
- \relax % to be sure
- \ifblankouter
- % do nothing
- \else
- \par
- \ifvmode
- \ifblankgoback
- \ifdim\lastskip>\zeropoint \vskip-\lastskip \fi
- \savedlastskip\zeropoint
- \else\ifdim\lastskip>\zeropoint
- \savedlastskip\lastskip
- \else % todo: lastnode, dan namelijk geen skip !
- \savedlastskip\zeropoint
- \fi\fi
- \ifblankforce
- % dit gaat mis in pos fonts
- % \ifdim\prevdepth>\zeropoint\else ...
- % -1000pt signals top of page or column (\ejectcolumn)
- \bgroup\forgeteverypar\verticalstrut\egroup\kern-\struttotal
- \savedlastskip\zeropoint
- \fi
- \savedlastpenalty\lastpenalty % hm, now it gets lost
- \ifblankdisable
- \global\blankindeedfalse % keep this, i.e. disable current too
- \ifgridsnapping
- \ifdim\prevdepth<\zeropoint
- % brrr
- \else
- % dirty trick: smaller blanks are ignored after a
- % larger one, so 10 lines is probably safe; we need
- % to make sure that we honor penalties; here comes the
- % trick (cross our fingers that this works well in
- % multi columns; maybe an ifinner test is needed
- % \scratchcounter\lastpenalty
- % \vskip-10\lineheight
- % \ifnum\scratchcounter=\zerocount \else \penalty\lastpenalty \fi
- % \vskip 10\lineheight
- % alas, this leads to overfull pages, so we try this:
- \inhibitgridblank
- \fi
- \else
- \ifdim\prevdepth<\zeropoint
- % brrr
- \else
- % ensure at least a proper prevdepth, this should be
- % an option
- \vskip-\prevdepth
- \vskip\strutdepth
- \prevdepth\strutdepth
- \fi
- % the old crappy piece of code
- \edef\oldprevdepth{\the\prevdepth}%
- \prevdepth\newprevdepth % == \inhibittextblank
- \fi
- \else
- \global\blankindeedtrue
- \fi
- \ifblankreset
- \global\blankindeedtrue
- \ifgridsnapping
- % let's play safe and not fool around with the depth, if
- % only because it took a lot of effort to sort out the grid
- % stuff in the first place
- \else
- \ifdim\prevdepth=\newprevdepth
- \prevdepth\oldprevdepth
- \fi
- \fi
- \fi
- \ifblankindeed
- \ifdim1\savedlastskip<1\blankskip\relax
- % else when \blank[2*groot] + \blank[3*groot] with parskip
- % equaling 1*groot, gives a groot=\parskip so adding a small
- % value makes it distinguishable; can also be done at parskip
- % setting time (better)
- \global\advance\blankskip \mindimen\relax % = skip
- % test this on 2* + 3* and parskip groot
- \ifblanknowhite
- \global\advance\blankskip -\parskip
- \else
- \ifdim\savedlastskip=\parskip
- \else % force this due to previous comment
- \ifdim\parskip>\zeropoint\relax
- \ifdim\blankskip<\parskip\relax
- \global\blankskip\zeropoint
- \else
- \global\advance\blankskip -\parskip
- \fi
- \fi
- \fi
- \fi
- \ifblankflexible \else
- \blankskip1\blankskip
- \fi
- \iflocalblankfixed
- \blankskip1\blankskip
- \fi
- \iflocalblankflexible
- \blankskip1\blankskip
- \!!plus \skipgluefactor\blankskip
- \!!minus\skipgluefactor\blankskip
- \fi
- \ifdim\lastkern=\noblanksignal\relax % controlled and grid
- \global\blankindeedfalse
- \else\ifnum\savedlastpenalty=\noblankpsignal\relax % controlled and grid
- \global\blankindeedfalse
- \else\ifgridsnapping\else\ifdim\prevdepth=\newprevdepth
- \global\blankindeedfalse
- \fi\fi\fi\fi
- \ifblankindeed
- \iffuzzyvskip
- \removelastfuzzyvskip
- \fuzzyvskip\blankskip\relax
- \else
- \relax\ifdim\savedlastskip=\zeropoint\else
- \vskip-\savedlastskip
- \fi
- \vskip\blankskip\relax
- \fi
- \fi
- \else
- \iffuzzyvskip
- \removelastfuzzyvskip
- \fuzzyvskip\blankskip\relax
- \else
- % new, test this on pascal
- \ifdim\blankskip<\zeropoint
- \relax\ifdim\savedlastskip=\zeropoint\else
- \advance\blankskip-\savedlastskip
- \vskip-\savedlastskip
- \fi
- \ifdim\blankskip>\zeropoint
- \vskip\blankskip
- \else
- \vskip\zeropoint
- \fi
- \else
- % also new
- \ifdim\blankskip=\zeropoint
- \ifblanknowhite
- \nowhitespace
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \global\fuzzyvskipfalse
- \presetindentation}
-
-%D For a long time we had:
-%D
-%D \starttyping
-%D \def\simpledoblank%
-%D {\doifelse{\currentwhitespace}{\v!geen}
-%D {\blank[\currentblank]}
-%D {\blank[\currentwhitespace]}}
-%D \stoptyping
-%D
-%D But Berend de Boer wanted more control, so now we have:
-
-\def\simpledoblank % ...
- {\doifelse\currentwhitespace\v!none
- {\blank[\currentblank]}
- {\blank[\s!default]}}
-
-%D Another useful definition would be:
-%D
-%D \starttyping
-%D \defineblank
-%D [\s!default]
-%D [\v!groot]
-%D \stoptyping
-
-\def\dosetupblank#1% amount are an plain inheritance
- {\bigskipamount#1\relax
- \ifblankflexible \else
- \bigskipamount1\bigskipamount
- \fi
- \medskipamount \bigskipamount \divide\medskipamount \plustwo
- \smallskipamount\bigskipamount \divide\smallskipamount\plusfour}%
-
-\def\complexsetupblank[#1]% more \let's -> this also wil become installable
- {\ifgridsnapping
- \blankflexiblefalse
- \else
- \ExpandFirstAfter\processallactionsinset
- [#1]
- [ \v!flexible=>\blankflexibletrue,
- \v!fixed=>\blankflexiblefalse]%
- \fi
- \ExpandFirstAfter\processallactionsinset
- [#1]
- [ \v!flexible=>\dosetupblank\appliedblankskip,
- \v!fixed=>\dosetupblank\appliedblankskip,
- \v!line=>\edef\appliedblankskip{\linedistance}%
- \dosetupblank\appliedblankskip,
- \v!halfline=>\scratchskip.5\linedistance
- \edef\appliedblankskip{\the\scratchskip}%
- \dosetupblank\appliedblankskip,
- \v!big=>\ifgridsnapping
- \edef\appliedblankskip{\linedistance}%
- \dosetupblank\appliedblankskip
- \fi
- \let\currentblank\v!big,
- \v!medium=>\let\currentblank\v!medium,
- \v!small=>\let\currentblank\v!small,
- \v!global=>\let\currentblank\v!global,
- \v!normal=>\dosetupblank\appliedblankskip,
- \v!standard=>\edef\appliedblankskip{\skipfactor\linedistance}%
- \dosetupblank\appliedblankskip,
- \s!default=>\dosetupblank\appliedblankskip,
- \s!unknown=>\let\appliedblankskip\commalistelement
- \dosetupblank\appliedblankskip]%
- \simplesetupwhitespace}
-
-% \definecomplexorsimpleempty\setupblank
-%
-% speed gain: 60 sec -> 30 sec
-
-\definecomplexorsimple\setupblank
-
-\def\simplesetupblank % == snelle \setupblank[\s!default]
- {\ifgridsnapping
- \blankflexiblefalse
- \fi
- \dosetupblank\appliedblankskip
- % \let\deblanko\v!big
- \simplesetupwhitespace}
-
-\def\restorestandardblank% \v!standard
- {\edef\appliedblankskip{\skipfactor\linedistance}%
- \dosetupblank\appliedblankskip
- }%\let\deblanko\v!big}
-
-\def\dodefineblank[#1][#2]%
- {\def\docommand##1{\setvalue{\??bo##1}{#2}}%
- \processcommalist[#1]\docommand}
-
-\def\defineblank
- {\dodoubleargument\dodefineblank}
-
-\def\savecurrentblank
- {\edef\restorecurrentblank
- {\bigskipamount\the\bigskipamount
- \medskipamount\the\medskipamount
- \smallskipamount\the\smallskipamount
- \noexpand\def\noexpand\currentblank{\currentblank}%
- \ifblankflexible
- \noexpand\blankflexibletrue
- \else
- \noexpand\blankflexiblefalse
- \fi}}
-
-%D Now.
-
-\defineblank [\s!default] [\v!white]
-\defineblank [\v!height] [\strutheight]
-\defineblank [\v!depth] [\strutdepth]
-
-% old implementation
-%
-% \let\currentindentation=\empty
-%
-% \newdimen\ctxparindent
-%
-% \newif\ifindentfirstparagraph % \indentfirstparagraphtrue
-%
-% \def\presetindentation
-% {\doifoutervmode{\ifindentfirstparagraph\else\noindentation\fi}}
-%
-% \definecomplexorsimple\setupindenting
-%
-% \def\complexsetupindenting[#1]%
-% {\processallactionsinset
-% [#1]
-% [ \v!first=>\indentfirstparagraphtrue,
-% \v!next=>\indentfirstparagraphfalse,
-% \s!default=>\simplesetupindenting,
-% \s!unknown=>\edef\currentindentation{\commalistelement}%
-% \simplesetupindenting]}
-%
-% \def\simplesetupindenting
-% {\assigndimension\currentindentation\ctxparindent{1em}{1.5em}{2em}%
-% \parindent\ctxparindent\relax}
-%
-% \def\indenting % watch out: \dodo and no \do
-% {\dosingleargument\dodoindenting}
-%
-% \def\dodoindenting[#1]% oeps, we needed a commalist handler here!
-% {\edef\currentindenting{#1}%
-% \processcommacommand[#1]\dododoindenting}
-%
-% \def\dododoindenting#1%
-% {\executeifdefined{\??in:#1}\donothing}
-%
-% \let\currentindenting\empty
-%
-% \def\defineindentingmethod[#1]#2%
-% {\setvalue{\??in:#1}{#2}}
-%
-% \defineindentingmethod [\v!no] {\parindent\ctxparindent\noindent}
-% \defineindentingmethod [\v!not] {\parindent\ctxparindent\noindent}
-%
-% \defineindentingmethod [\v!first] {\indentfirstparagraphtrue}
-% \defineindentingmethod [\v!next] {\indentfirstparagraphfalse}
-%
-% \defineindentingmethod [\v!yes] {\parindent\ctxparindent\relax} % no \indent !
-% \defineindentingmethod [\v!always] {\parindent\ctxparindent\relax} % no \indent !
-%
-% \defineindentingmethod [\v!never] {\parindent\zeropoint\relax} % no \indent !
-%
-% \def\noindenting{\indenting[\v!no,\v!next]} % was \nietinspringen
-% \def\doindenting{\indenting[\v!yes,\v!first]} % was \welinspringen
-%
-% \def\dochecknextindentation#1% internal one
-% {\checknextindentation[\getvalue{#1\c!indentnext}]}
-%
-% \def\checknextindentation[#1]%
-% {\processaction[#1][%\v!keep=>,
-% \v!yes=>\doindentation,
-% \v!no=>\noindentation,
-% \v!auto=>\autoindentation]}
-%
-% \def\doindentation% too simple
-% {\gdef\checkindentation{\global\indentationtrue}}
-%
-% \ifx\autoindentation\undefined
-% \let\autoindentation\relax
-% \fi
-%
-% \newif\ifindentation \indentationtrue % documenteren, naar buiten
-%
-% \let\checkindentation=\relax
-%
-% \def\donoindentation
-% {\ifdim\parindent=\zeropoint \else
-% \bgroup \setbox\scratchbox\lastbox \egroup
-% \fi}
-%
-% \def\noindentation % made global
-% {\ifinpagebody \else
-% \global\indentationfalse
-% \gdef\checkindentation
-% {\donoindentation
-% \gdef\checkindentation{\global\indentationtrue}}%
-% \fi}
-%
-% \def\nonoindentation % bv bij floats
-% {\ifinpagebody \else
-% \global\indentationtrue
-% \gdef\checkindentation{\global\indentationtrue}%
-% \fi}
-%
-% \def\indentation
-% {\ifvmode \ifdim\parindent=\zeropoint \else
-% % was : \hskip\parindent
-% % can be: \indent
-% % but we test:
-% \noindent\hskip\parindent
-% \fi \fi}
-
-\let\currentindentation\empty % amount/keyword
-% \let\normalindentation \empty % used for reinstating normal indentation
-\let\currentindenting \empty % method
-
-\newdimen\ctxparindent
-
-\newif\ifindentfirstparagraph % \indentfirstparagraphtrue
-
-\chardef\indentingtoggle\zerocount
-
-%D After a blank or comparable situation (left side floats) we
-%D need to check if the next paragraph has to be indented.
-
-\def\presetindentation
- {\doifoutervmode{\ifindentfirstparagraph\else\noindentation\fi}}
-
-%D This sets up the (normally) global indentation behavior as well
-%D as the amounts.
-
-\definecomplexorsimple\setupindenting
-
-% \def\complexsetupindenting[#1]%
-% {\edef\currentindenting{#1}%
-% \indentfirstparagraphtrue
-% \parindent\ctxparindent
-% \chardef\indentingtoggle\zerocount
-% \processcommalist[#1]\docomplexsetupindenting
-% \ifindentfirstparagraph\else\noindentation\fi % added
-% \toggleindentation}
-
-\indentfirstparagraphtrue
-\parindent\ctxparindent
-\chardef\indentingtoggle\zerocount
-
-% \newtoks\savedeverypar \savedeverypar\everypar
-% \def\restoreeverypar{\everypar\savedeverypar}
-
-% we need a better everypar model: for each option a switch, which we
-% set to false with \forgetall and can enable when needed (context 4);
-% that way we can control the order of execution of options
-
-\def\checkeverypar % currently a hack
- {\ifzeropt\parindent\else
- \doifsometokselse\everypar\donothing{\appendtoks\checkindentation\to\everypar}%
- \fi}
-
-\def\complexsetupindenting[#1]%
- {\edef\currentindenting{#1}%
- \doifsomething\currentindenting % handy when a parameter is passed
- {% not here: \indentfirstparagraphtrue
- % not here: \parindent\ctxparindent
- % not here: \chardef\indentingtoggle\zerocount
- % we use commacommand in order to catch #1 being a command (expanded parameter)
- \processcommacommand[\currentindenting]\docomplexsetupindentingA % catch small, medium, etc
- \processcommacommand[\currentindenting]\docomplexsetupindentingB % catch rest
- \checkeverypar % only when non-empty #1
- \ifindentfirstparagraph\else\noindentation\fi % added
- \toggleindentation}}
-
-\def\docomplexsetupindentingA#1%
- {\edefconvertedargument\!!stringa{#1}%
- \doifundefined{\??in:\!!stringa}%
- {\edef\currentindentation{#1}%
- \let\normalindentation\currentindentation
- \simplesetupindenting}}
-
-\def\docomplexsetupindentingB#1%
- {\edefconvertedargument\!!stringa{#1}% catch #1=\somedimen
- \executeifdefined{\??in:\!!stringa}\donothing}
-
-\def\simplesetupindenting % empty case, a it strange, needed this way?
- {\assigndimension\currentindentation\ctxparindent{1em}{1.5em}{2em}}
-
-\def\indenting % kind of obsolete
- {\dosingleargument\complexsetupindenting}
-
-% use \noindentation to suppress next indentation
-
-\def\defineindentingmethod[#1]#2%
- {\setvalue{\??in:#1}{#2}}
-
-\defineindentingmethod [\v!no] {\parindent\zeropoint}% was: \ctxparindent\noindent}
-\defineindentingmethod [\v!not] {\parindent\zeropoint}% was: \ctxparindent\noindent}
-
-\defineindentingmethod [\v!first] {\indentfirstparagraphtrue}
-\defineindentingmethod [\v!next] {\indentfirstparagraphfalse}
-
-\defineindentingmethod [\v!yes] {\parindent\ctxparindent\relax} % no \indent !
-\defineindentingmethod [\v!always] {\parindent\ctxparindent\relax} % no \indent !
-
-\defineindentingmethod [\v!never] {\parindent\zeropoint\relax % no \indent !
- \chardef\indentingtoggle\zerocount}
-
-\defineindentingmethod [\v!odd] {\chardef\indentingtoggle\plusone}
-\defineindentingmethod [\v!even] {\chardef\indentingtoggle\plustwo}
-
-\defineindentingmethod [\v!normal] {\ifx\normalindentation\empty\else
- \let\currentindentation\normalindentation
- \simplesetupindenting
- \fi}
-
-\defineindentingmethod [\v!reset] {\indentfirstparagraphtrue
- \parindent\zeropoint
- \chardef\indentingtoggle\zerocount}
-
-\def\noindenting{\indenting[\v!no, \v!next ]}
-\def\doindenting{\indenting[\v!yes,\v!first]}
-
-%D This one sets up the local indentation behaviour (i.e. either or not
-%D a next paragraph will be indented).
-
-\def\dochecknextindentation#1% internal one
- {\checknextindentation[\getvalue{#1\c!indentnext}]}
-
-\def\checknextindentation[#1]%
- {\processaction
- [#1]
- [%\v!keep=>,
- \v!yes=>\doindentation,
- \v!no=>\noindentation,
- \v!auto=>\autoindentation]}
-
-%D Here come the handlers.
-
-\newif\ifindentation \indentationtrue % documenteren, naar buiten
-
-\let\checkindentation\relax
-
-\ifx\autoindentation\undefined \let\autoindentation\relax \fi % hook
-
-\def\doindentation
- {\gdef\checkindentation{\global\indentationtrue}}
-
-\def\noindentation % made global
- {\ifinpagebody \else
- \global\indentationfalse
- \gdef\checkindentation
- {\donoindentation
- \gdef\checkindentation{\global\indentationtrue}}%
- \fi}
-
-\def\nonoindentation % bv bij floats
- {\ifinpagebody \else
- \global\indentationtrue
- \gdef\checkindentation{\global\indentationtrue}%
- \fi}
-
-\def\donoindentation
- {\ifdim\parindent=\zeropoint \else
- \bgroup \setbox\scratchbox\lastbox \egroup
- \fi}
-
-\def\indentation
- {\ifvmode \ifdim\parindent=\zeropoint \else
- % was : \hskip\parindent
- % can be: \indent
- % but we test:
- \noindent\hskip\parindent
- \fi \fi}
-
-\def\toggleindentation
- {\ifcase\indentingtoggle
- % nothing
- \or
- \notoggleindentation
- \or
- \dotoggleindentation
- \fi}
-
-\def\dokillindentation
- {\gdef\checkindentation{\global\indentationfalse\donoindentation}}
-
-\def\dotoggleindentation
- {\gdef\checkindentation{\global\indentationfalse\notoggleindentation\donoindentation}}
-
-\def\notoggleindentation
- {\gdef\checkindentation{\global\indentationtrue\dotoggleindentation}}
-
-\appendtoks
- \pushmacro\checkindentation
- \pushmacro\ifindentation
-\to \everypushsomestate
-
-\appendtoks
- \popmacro\ifindentation
- \popmacro\checkindentation
-\to \everypopsomestate
-
-% we need to save the state if we want to adapt behaviour to empty lines
-%
-% \def\setlasthvmode
-% {\global\chardef\savedhvmode\ifhmode\plusone\else\ifvmode\plustwo\else\zerocount\fi\fi}
-%
-% \def\resetlasthvmode
-% {\global\chardef\savedhvmode\zerocount}
-%
-% \chardef\savedhvmode\zerocount
-
-% This is a user requested hack (using the auto-hook).
-
-\chardef\recheckindentationmode\zerocount
-
-\def\dontrechecknextindentation
- {\global\chardef\recheckindentationmode\zerocount}
-
-\def\dorechecknextindentation
- {\ifcase\recheckindentationmode
- % nothing
- \or
- \dontrechecknextindentation
- \expandafter\doautoindentation
- \fi}
-
-\def\doautoindentation
- {\doifnextcharelse\par\donothing\noindentation}
-
-\def\autoindentation
- {\global\chardef\recheckindentationmode\plusone}
-
-%D An example of usage:
-%D
-%D \starttyping
-%D \setupindenting[small,yes]
-%D
-%D \setupitemize [indentnext=auto]
-%D \setuptyping [indentnext=auto]
-%D \setupformulas[indentnext=auto]
-%D
-%D \input tufte
-%D
-%D \startitemize
-%D \item itemize
-%D \stopitemize
-%D \input tufte
-%D
-%D \startitemize
-%D \item itemize
-%D \stopitemize
-%D
-%D \input tufte
-%D
-%D \startitemize
-%D \item itemize
-%D \stopitemize
-%D
-%D \page
-%D
-%D \input tufte
-%D
-%D \starttyping
-%D verbatim
-%D \stoptyping
-%D \input tufte
-%D
-%D \starttyping
-%D verbatim
-%D \stoptyping
-%D
-%D \input tufte
-%D
-%D \starttyping
-%D verbatim
-%D \stoptyping
-%D
-%D \page
-%D
-%D \input tufte
-%D
-%D \startformula
-%D a = b
-%D \stopformula
-%D \input tufte
-%D
-%D \startformula
-%D a = b
-%D \stopformula
-%D
-%D \input tufte
-%D
-%D \startformula
-%D a = b
-%D \stopformula
-
-
-%D \macros
-%D {frenchspacing,nonfrenchspacing}
-%D
-%D Smehow \type{\frenchspacing} can lead to hyphenation between
-%D dashes so we now have \type {\newfrenchspacing} (moved from
-%D \type {syst-chr}).
-
-%D Hm ... todo:
-
-\sfcode`\)=0
-\sfcode`\'=0
-\sfcode`\]=0
-
-\def\setfrenchspacing#1%
- {\sfcode`\.#1 \sfcode`\,#1\relax
- \sfcode`\?#1 \sfcode`\!#1\relax
- \sfcode`\:#1 \sfcode`\;#1\relax}
-
-\def\frenchspacing
- {\setfrenchspacing{1000}}
-
-\def\resetfrenchspacing
- {\sfcode`\.3000 \sfcode`\,1250
- \sfcode`\?3000 \sfcode`\!3000
- \sfcode`\:2000 \sfcode`\;1500 }
-
-\def\frenchspacing {\setfrenchspacing{1000}}
-\def\newfrenchspacing{\setfrenchspacing{1050}}
-\def\nonfrenchspacing{\resetfrenchspacing}
-
-\def\definespacingmethod[#1]#2{\setvalue{\??sg\??sg#1}{#2}}
-
-\definespacingmethod[\v!packed]{\newfrenchspacing}
-\definespacingmethod[\v!broad ]{\nonfrenchspacing}
-
-\def\complexsetupspacing[#1]%
- {\executeifdefined{\??sg\??sg#1}\relax
- \updateraggedskips}
-
-\def\simplesetupspacing
- {\updateraggedskips}
-
-\definecomplexorsimple\setupspacing
-
-\let\normalspaceprimitive=\ % space-comment is really needed else \<newline>
-
-\unexpanded\def\nonbreakablespace{\penalty\plustenthousand\normalspaceprimitive}
-
-\letcatcodecommand \ctxcatcodes `\~ \nonbreakablespace
-
-\def\space { }
-\def\removelastspace{\ifhmode\unskip\fi}
-\def\nospace {\removelastspace\ignorespaces}
-
-% in tables we need:
-%
-% \def\fixedspace {\hskip.5em\relax}
-%
-% but, since not all fonts have .5em digits:
-
-\unexpanded\def\fixedspace
- {\setbox\scratchbox\normalhbox{\mathortext{0}{0}}%
- \hskip\wd\scratchbox\relax}
-
-\def\fixedspaces
- {\letcatcodecommand \ctxcatcodes `\~ \fixedspace}
-
-\def\removeunwantedspaces
- {\ifhmode % we also need to unskip 0pt skips
- \unskip\unskip\unskip\unskip\unskip
- \unskip\unskip\unskip\unskip\unskip
- \fi}
-
-\appendtoks
- \let~\space
- \let\ \space
-\to\simplifiedcommands
-
-% still not fixed in aleph / luatex
-%
-% \def\removeunwantedspaces
-% {\ifhmode \ifnum\lastnodetype=\@@gluenode
-% \unskip \@EAEAEA\removeunwantedspaces
-% \fi \fi}
-
-%D For old time sake, will disappear soon.
-
-\let\hardespatie\fixedspace
-\let\geenspatie \nospace
-
-% \startbuffer
-% \startlines \tt \fixedspaces
-% 0~1~~2~~~3~~~~4~~~~~5
-% 0~~~~~~~~~~~~~~~~~~~5
-% $0~1~~2~~~3~~~~4~~~~~5$
-% $0~~~~~~~~~~~~~~~~~~~5$
-% \stoplines
-%
-% \starttabulate[|~|]
-% \NC 0~1~~2~~~3~~~~4~~~~~5 \NC \NR \NC 0~~~~~~~~~~~~~~~~~~~5 \NC \NR
-% \NC $0~1~~2~~~3~~~~4~~~~~5$ \NC \NR \NC $0~~~~~~~~~~~~~~~~~~~5$ \NC \NR
-% \stoptabulate
-%
-% \starttable[||]
-% \NC 0~1~~2~~~3~~~~4~~~~~5 \NC \AR \NC 0~~~~~~~~~~~~~~~~~~~5 \NC \AR
-% \NC $0~1~~2~~~3~~~~4~~~~~5$ \NC \AR \NC $0~~~~~~~~~~~~~~~~~~~5$ \NC \AR
-% \stoptable
-% \stopbuffer
-%
-% \setupbodyfont[cmr] \getbuffer
-% \setupbodyfont[lbr] \getbuffer
-
-\def\packed
- {\nointerlineskip}
-
-\def\godown[#1]%
- {\relax
- \ifhmode\endgraf\fi
- \ifvmode\nointerlineskip\vskip#1\relax\fi}
-
-%D A couple of plain macros:
-
-\ifx\thinspace\undefined
-
- \def\thinspace {\kern .16667em }
- \def\negthinspace{\kern-.16667em }
- \def\enspace {\kern .5em }
-
- \def\thinspace {\kern .16667\emwidth}
- \def\negthinspace{\kern-.16667\emwidth}
- \def\enspace {\kern .5\emwidth}
-
-\fi
-
-\ifx\quad\undefined
-
- \def\enskip{\hskip.5em\relax}
- \def\quad {\hskip 1em\relax}
- \def\qquad {\hskip 2em\relax}
-
- \def\enskip{\hskip.5\emwidth}
- \def\quad {\hskip \emwidth}
- \def\qquad {\hskip 2\emwidth}
-
-\fi
-
-\let\emspace\quad
-
-\ifx\smallskip\undefined
-
- \def\smallskip{\vskip\smallskipamount}
- \def\medskip {\vskip\medskipamount}
- \def\bigskip {\vskip\bigskipamount}
-
-\fi
-
-\ifx\allowbreak\undefined
-
- \def\break {\penalty\ifhmode-\plustenthousand\else\ejectpenalty\fi}
- \def\nobreak {\penalty \plustenthousand}
- \def\allowbreak{\penalty \zeropoint}
- \def\filbreak {\par\vfil\penalty-200\vfilneg}
- \def\goodbreak {\par\penalty-500 }
-
-\fi
-
-%D Made slightly more readable:
-
-\ifx\vglue\undefined
-
- \def\vglue {\afterassignment\dovglue\scratchskip=}
- \def\hglue {\afterassignment\dohglue\scratchskip=}
- \def\topglue{\nointerlineskip\vglue-\topskip\vglue}
-
- \def\dovglue
- {\par
- \scratchdimen\prevdepth
- \hrule\!!height\zeropoint
- \nobreak\vskip\scratchskip
- \prevdepth\scratchdimen}
-
- \def\dohglue
- {\dontleavehmode % \leavevmode
- \scratchcounter\spacefactor
- \vrule\!!width\zeropoint
- \nobreak\hskip\scratchskip
- \spacefactor\scratchcounter}
-
-\fi
-
-\unexpanded\def\textormathglue#1#2#3% cleaned up one
- {\begingroup
- \ifmmode
- \mskip#1#2%
- \else
- \scratchdimen#1\hspaceamount\empty{#3}%
- \scratchskip\scratchdimen\!!plus.5\scratchdimen\!!minus.3\scratchdimen
- \hskip\scratchskip
- \fi
- \endgroup}
-
-\def\thinglue {\textormathglue+\thinmuskip 1}
-\def\medglue {\textormathglue+\medmuskip 2}
-\def\thickglue{\textormathglue+\thickmuskip3}
-
-\ifx\eject\undefined
-
- \def\eject{\par\break}
-
-\fi
-
-\ifx\supereject\undefined
-
- \def\supereject{\par\penalty\superpenalty}
-
-\fi
-
-\ifx\dosupereject\undefined
-
- \def\dosupereject
- {\ifnum\insertpenalties>\zerocount % something is being held over
- \line{}
- \kern-\topskip
- \nobreak
- \vfill\supereject
- \fi}
-
-\fi
-
-%D We adapt plain's \type {\removelastskip} a bit:
-
-\ifx\removelastskip\undefined
-
- \def\removelastskip
- {\ifvmode \ifdim\lastskip=\zeropoint \else
- \vskip-\lastskip
- \fi \fi}
-
-\fi
-
-\ifx\smallbreak\undefined
-
-\def\smallbreak
- {\par
- \ifdim\lastskip<\smallskipamount
- \removelastskip
- \penalty-50
- \smallskip
- \fi}
-
-\def\medbreak
- {\par
- \ifdim\lastskip<\medskipamount
- \removelastskip
- \penalty-100
- \medskip
- \fi}
-
-\def\bigbreak
- {\par
- \ifdim\lastskip<\bigskipamount
- \removelastskip
- \penalty-200
- \bigskip
- \fi}
-
-\fi
-
-\newskip\ctxparskip \ctxparskip\zeropoint
-
-\newconditional \flexiblewhitespace \settrue\flexiblewhitespace
-
-\def\blankokleinmaat {\smallskipamount}
-\def\blankomiddelmaat {\medskipamount}
-\def\blankogrootmaat {\bigskipamount}
-\def\currentwhitespace {\zeropoint}
-
-\definecomplexorsimple\setupwhitespace
-
-% \def\simplesetupwhitespace
-% {\doifnot\currentwhitespace\v!none\dosetupwhitespace}
-%
-% \def\complexsetupwhitespace[#1]%
-% {\doifelsenothing{#1}
-% {\simplesetupwhitespace}
-% {\edef\currentwhitespace{#1}%
-% \dosetupwhitespace}}
-%
-% \def\dosetupwhitespace
-% {\processcommacommand[\currentwhitespace]\dowhitespacemethod
-% \dodosetupwhitespace}
-
-\def\simplesetupwhitespace
- {\doifnot\currentwhitespace\v!none\dosetupwhitespace}
-
-\def\complexsetupwhitespace[#1]%
- {\edef\nextcurrentwhitespace{#1}%
- \ifx\nextcurrentwhitespace\empty
- \simplesetupwhitespace
- \else
- \let\currentwhitespace\nextcurrentwhitespace
- \dosetupwhitespace
- \fi}
-
-\def\dosetupwhitespace % quick test for no list
- {\doifdefinedelse{\??ws\??ws\currentwhitespace}% no ifcsname due to nested \lineheight
- {\getvalue{\??ws\??ws\currentwhitespace}}%
- {\processcommacommand[\currentwhitespace]\dowhitespacemethod}%
- \ifgridsnapping
- \setfalse\flexiblewhitespace
- \ifdim\ctxparskip>\zeropoint
- \ctxparskip
- \ifcase\baselinegridmode
- \baselineskip % normal ! ! ! ! !!
- \or
- \ifdim\scratchdimen=\baselineskip % maybe range
- \baselineskip % normal ! ! ! ! !!
- \else
- \numexpr\ctxparskip/\dimexpr.5\lineheight\relax\relax\dimexpr.5\lineheight\relax
- \fi
- \else
- \baselineskip % normal ! ! ! ! !!
- \fi
- \fi
- \else
- \ifconditional\flexiblewhitespace \else \ctxparskip1\ctxparskip \fi
- \fi
- \parskip\ctxparskip}
-
-\chardef\baselinegridmode=0 % option in layout / 1=permit_half_lines
-
-\def\dodosetupwhitespace
- {\ifgridsnapping
- \setfalse\flexiblewhitespace
- \ctxparskip1\ctxparskip
- \ifdim\ctxparskip>\zeropoint
- \ifcase\baselinegridmode
- \ctxparskip\baselineskip % normal ! ! ! ! !!
- \or
- \ifdim\scratchdimen=\baselineskip % maybe range
- \ctxparskip\baselineskip % normal ! ! ! ! !!
- \else
- \ctxparskip\numexpr\ctxparskip/\dimexpr.5\lineheight\relax\relax\dimexpr.5\lineheight\relax
- \fi
- \else
- \ctxparskip\baselineskip % normal ! ! ! ! !!
- \fi
- \fi
- \else
- \ifconditional\flexiblewhitespace \else \ctxparskip1\ctxparskip \fi
- \fi
- \parskip\ctxparskip}
-
-\definesystemvariable {ws} % whitespace
-
-\def\definewhitespacemethod[#1]#2{\setvalue{\??ws\??ws#1}{#2}}
-
-\definewhitespacemethod [\v!fix] {}
-\definewhitespacemethod [\v!fixed] {\setfalse\flexiblewhitespace}
-\definewhitespacemethod [\v!flexible] {\settrue\flexiblewhitespace}
-\definewhitespacemethod [\v!line] {\ctxparskip \baselineskip}
-\definewhitespacemethod [\v!halfline] {\ctxparskip.5\baselineskip}
-\definewhitespacemethod [\v!none] {\ctxparskip \zeropoint}
-\definewhitespacemethod [\v!big] {\ctxparskip \bigskipamount}
-\definewhitespacemethod [\v!medium] {\ctxparskip \medskipamount}
-\definewhitespacemethod [\v!small] {\ctxparskip \smallskipamount}
-
-\definewhitespacemethod [\s!default] {\simplesetupwhitespace} % {\stelwitruimteopnieuwin}
-
-% \def\dowhitespacemethod#1%
-% {\executeifdefined{\??ws\??ws#1}{\ctxparskip#1}\relax}
-
-\def\dowhitespacemethod#1% \doifdefined because of \lineheight
- {\doifdefinedelse{\??ws\??ws#1}{\getvalue{\??ws\??ws#1}}{\ctxparskip#1}\relax}
-
-\def\nowhitespace
- {\ifdim\parskip>\zeropoint\relax
- \ifdim\lastskip=-\parskip
- \else
- \vskip-\parskip
- \fi
- \fi}
-
-\def\nowhitespaceunlessskip
- {\ifdim\lastskip>\zeropoint \else
- \nowhitespace
- \fi}
-
-\def\redowhitespace
- {\ifdim\lastskip>-\parskip \else
- \vskip\parskip
- \fi}
-
-\def\savecurrentwhitespace
- {\edef\restorecurrentwhitespace
- {\ctxparskip\the\ctxparskip
- \parskip\the\parskip
- \noexpand\def\noexpand\currentwhitespace{\currentwhitespace}%
- \ifconditional\flexiblewhitespace
- \noexpand\settrue\flexiblewhitespace
- \else
- \noexpand\setfalse\flexiblewhitespace
- \fi}}
-
-% deze variant is nodig binnen \startopelkaar
-% steeds testen:
-%
-% \hoofdstuk{..}
-% \plaatslijst[..]
-% \hoofdstuk{..}
-% \input tufte
-%
-% met/zonder witruimte
-
-\def\whitespace
- {\par
- \ifdim\parskip>\zeropoint\relax
- %\ifdim\lastskip>\parskip \else
- % \removelastskip interferes with blanko blokkeer en klein
- \vskip\parskip
- %\fi
- \fi}
-
-\def\nonoblanko[#1]%
- {\par}
-
-\def\noblanko
- {\dosingleempty\nonoblanko}
-
-% De onderstaande macro handelt ook de situatie dat er geen
-% tekst tussen \start ... \stop is geplaatst. Daartoe wordt de
-% laatste skip over de lege tekst heen gehaald. Dit komt goed
-% van pas bij het plaatsen van (mogelijk lege) lijsten.
-
-\newif\ifopelkaar
-
-\newsignal \noparskipsignal % \def\noparskipsignal {0.00001pt}
-\def\lastdoneparskip {0pt}
-
-\def\startpacked
- {\dosingleempty\dostartpacked}
-
-\def\dostartpacked[#1]% nesting afvangen
- {\par
- \ifvmode
- \edef\lastdoneparskip {\the\lastskip}%
- \edef\lastdoneprevdepth{\the\prevdepth}% zeer recent toegevoegd
- \ifdim\prevdepth=-\thousandpoint % toegevoegd omdat binnen
- \else % een vbox een extra skip
- \whitespace % ongewenst is; dit kan
- \baselinecorrection %% zie in \placeregister[n=1]
- \vskip\noparskipsignal % waarschijnlijk ook in
- \fi % blanko blokkeer
- \bgroup
- \doifelse{#1}\v!blank
- \opelkaarfalse
- \opelkaartrue
- \blank[\v!disable] % dit is nog niet ok, gaat fout
- \setupwhitespace[\v!none] % bovenin vtop (dwz, baseline)
- \fi}
-
-\def\stoppacked
- {\par
- \ifvmode
- \egroup
- \ifdim\lastskip=\noparskipsignal\relax
- \removelastskip
- \nowhitespace
- \vskip-\lastdoneparskip
- \vskip+\lastdoneparskip
- \prevdepth-\lastdoneprevdepth % zeer recent toegevoegd
- \fi
- \fi}
-
-\def\startunpacked
- {\blank
- \leavevmode
- \bgroup}
-
-\def\stopunpacked
- {\egroup
- \blank}
-
-% De onderstaande macro's moeten nog eens nader worden uitgewerkt.
-% Ze spelen een rol bij de spatiering rond omkaderde teksten
-% en/of boxen zonder diepte.
-
-\def\toonregelcorrectie{\showbaselinecorrection}
-\def\regelcorrectie {\baselinecorrection}
-
-% \prevdepth crosses pageboundaries!
-%
-% todo: a version that works ok inside a box
-
-\let\doaroundlinecorrection\relax
-
-\def\startlinecorrection
- {\dodoubleempty\dostartlinecorrection}
-
-\def\dostartlinecorrection[#1][#2]% #2 gobbles spaces
- {\bgroup
- \processaction
- [#1]
- [ \v!blank=>\let\doaroundlinecorrection\blank,
- \s!default=>\let\doaroundlinecorrection\relax,
- \s!unknown=>{\def\doaroundlinecorrection{\blank[#1]}}]%
- \doaroundlinecorrection
- \startbaselinecorrection
- \offbaselinecorrection
- \ignorespaces}
-
-\def\stoplinecorrection
- {\stopbaselinecorrection
- \doaroundlinecorrection
- \egroup}
-
-\def\correctwhitespace
- {\dowithnextbox
- {\startbaselinecorrection
- \flushnextbox
- \stopbaselinecorrection}%
- \vbox}
-
-\def\verticalstrut {\normalvbox{\hsize\zeropoint\forgetall\strut}}
-\def\horizontalstrut{\normalhbox {\strut}}
-
-% Hieronder volgen enkele instellingen en macro's ten behoeve
-% van de interlinie en \strut. De waarden 2.8, 0.07, 0.72 en
-% 0.28 zijn ooit eens ontleend aan INRS-TEX en moeten wellicht
-% nog eens instelbaar worden.
-%
-% \lineheight : de hoogte van een regel
-% \spacing{getal} : instellen interlinie
-% \normalbaselines : instellen regelafstend
-%
-% \setstrut : instellen \strut
-% \setnostrut : resetten \strut, \endstrut, \begstrut
-%
-% \setteststrut : instellen zichtbare struts
-% \resetteststrut : instellen onzichtbare struts
-%
-% \setfontparameters : instellen na fontset
-%
-% De hoogte van een regel (\lineheight) is gelijk aan de
-% som van de hoogte (\ht) en diepte (\dp) van \strutbox.
-%
-% \strut : denkbeeldig blokje met hoogte en diepte
-%
-% Een \hbox kan als deze aan het begin van een regel staat
-% een breedte \hsize krijgen. Dit is soms te voorkomen met het
-% commando \leavevmode. Binnen een \vbox geeft dit echter
-% niet altijd het gewenste resultaat, vandaar het commando
-%
-% \leaveoutervmode
-
-% Pas op: niet zomaar \topskip en \baselineskip aanpassen
-% en zeker niet \widowpenalty. Dit kan ernstige gevolgen
-% hebben voor kolommen.
-%
-% Enige glue kan op zich geen kwaad, echter als blanko=vast,
-% dan moet ook de rek 0 zijn. Binnen kolommen is rek ook
-% niet bepaald mooi. Een hele kleine waarde (0.025) voldoet,
-% omdat een positieve glue eindeloos rekbaar is.
-
-\newdimen\strutdimen
-\newdimen\lineheight
-\newdimen\openlineheight
-\newdimen\openstrutheight
-\newdimen\openstrutdepth
-\newdimen\topskipgap
-\newdimen\struttotal
-
-\def\strutheightfactor {.72}
-\def\strutdepthfactor {.28}
-
-\def\baselinefactor {2.8}
-\def\baselinegluefactor {0}
-
-\def\minimumstrutheight {0pt}
-\def\minimumstrutdepth {0pt}
-
-\def\normallineheight {\baselinefactor ex}
-\def\minimumlinedistance {\lineskip}
-
-\def\strutheight {0pt}
-\def\strutdepth {0pt}
-\def\strutwidth {0pt}
-
-\def\spacingfactor {1}
-
-\def\topskipfactor {1.0}
-\def\maxdepthfactor {0.5}
-
-\def\systemtopskipfactor {\topskipfactor}
-\def\systemmaxdepthfactor {\maxdepthfactor}
-
-% De onderstaande definitie wordt in de font-module overruled
-
-\ifdefined\globalbodyfontsize\else
- \newdimen\globalbodyfontsize
- \globalbodyfontsize=12pt
-\fi
-
-\ifx\normalizedbodyfontsize\undefined
- \def\normalizedbodyfontsize{12pt}
-\fi
-
-% door een \dimen. Dit is geen probleem omdat (1) de default
-% korpsgrootte 12pt is en (2) de fonts nog niet geladen zijn
-% en de instellingen bij het laden nogmaals plaatsvinden.
-
-% \def\topskipcorrection
-% {\ifdim\topskip>\openstrutheight
-% % == \vskip\topskipgap
-% \vskip\topskip
-% \vskip-\openstrutheight
-% \fi
-% \verticalstrut
-% \vskip-\struttotal}
-
-\def\topskipcorrection
- {\simpletopskipcorrection
- \vskip-\struttotal
- \verticalstrut}
-
-\def\simpletopskipcorrection
- {\ifdim\topskip>\openstrutheight
- % == \vskip\topskipgap
- \vskip\topskip
- \vskip-\openstrutheight
- \fi}
-
-% \def\settopskip % the extra test is needed for the lbr family
-% {\topskip\systemtopskipfactor\globalbodyfontsize
-% \ifgridsnapping \else
-% \ifr@ggedbottom\!!plus5\globalbodyfontsize\fi
-% \fi
-% \relax % the skip
-% \topskipgap\topskip
-% \advance\topskipgap -\openstrutheight\relax
-% \ifdim\topskip<\strutheightfactor\openlineheight
-% \topskip\strutheightfactor\openlineheight\relax
-% \fi}
-
-\def\settopskip % the extra test is needed for the lbr family
- {\topskip\systemtopskipfactor\globalbodyfontsize
- \ifgridsnapping \else
- \ifr@ggedbottom\!!plus5\globalbodyfontsize\fi
- \fi
- \relax % the skip
- \topskipgap\topskip
- \advance\topskipgap -\openstrutheight\relax
-\ifdim\minimumstrutheight>\zeropoint
- \ifdim\topskip<\minimumstrutheight
- \topskip\minimumstrutheight\relax
- \fi
-\else
- \ifdim\topskip<\strutheightfactor\openlineheight
- \topskip\strutheightfactor\openlineheight\relax
- \fi
-\fi}
-
-\def\setmaxdepth
- {\maxdepth\systemmaxdepthfactor\globalbodyfontsize}
-
-\def\normalbaselines
- {\baselineskip \normalbaselineskip
- \lineskip \normallineskip
- \lineskiplimit\normallineskiplimit}
-
-% \def\setnormalbaselines
-% {\ifdim\normallineheight>\zeropoint
-% \lineheight\normallineheight
-% \fi
-% \openlineheight\spacingfactor\lineheight
-% \openstrutheight\strutheightfactor\openlineheight
-% \openstrutdepth \strutdepthfactor \openlineheight
-% \normalbaselineskip\openlineheight
-% \!!plus\baselinegluefactor\openlineheight
-% \!!minus\baselinegluefactor\openlineheight
-% \normallineskip\minimumlinedistance\relax % \onepoint\relax
-% \normallineskiplimit\zeropoint\relax
-% \normalbaselines}
-
-\def\setnormalbaselines
- {\ifdim\normallineheight>\zeropoint
- \lineheight\normallineheight
- \fi
- \openlineheight\spacingfactor\lineheight
- \openstrutheight \ifdim\minimumstrutheight>\zeropoint
- \minimumstrutheight % new
- \else
- \strutheightfactor\openlineheight
- \fi
- \openstrutdepth \ifdim\minimumstrutdepth>\zeropoint
- \minimumstrutdepth % new
- \else
- \strutdepthfactor \openlineheight
- \fi
- \ifdim\dimexpr\minimumstrutdepth+\minimumstrutheight\relax>\zeropoint
- \openlineheight\dimexpr\openstrutheight+\openstrutdepth\relax % new
- \fi
- \normalbaselineskip\openlineheight
- \ifgridsnapping\else
- \!!plus \baselinegluefactor\openlineheight
- \!!minus\baselinegluefactor\openlineheight
- \fi
- \normallineskip\minimumlinedistance\relax % \onepoint\relax
- \normallineskiplimit\zeropoint\relax
- \normalbaselines}
-
-% \def\setspacingfactor#1\to#2\by#3\\%
-% {\strutdimen#2\points
-% \strutdimen#3\strutdimen
-% \edef#1{\withoutpt\the\strutdimen}}
-%
-% \def\spacing#1%
-% {\ifgridsnapping
-% %\doifnot{#1}{1}{\showmessage\m!layouts{11}{#1}}%
-% \ifdim#1\points=\onepoint\else\showmessage\m!layouts{11}{#1}\fi
-% \edef\spacingfactor{1}%
-% \else
-% \edef\spacingfactor{#1}%
-% \fi
-% \setspacingfactor\systemtopskipfactor \to\topskipfactor \by#1\\% why no \spacingfactor ?
-% \setspacingfactor\systemmaxdepthfactor\to\maxdepthfactor\by#1\\% why no \spacingfactor ?
-% \setnormalbaselines
-% \setstrut}
-%
-% \def\setspacingfactor#1#2#3%
-% {\edef#1{\withoutpt\the\dimexpr#2\points*#3\relax}}
-
-\def\spacing#1%
- {\ifgridsnapping
- \ifdim#1\points=\onepoint\else\showmessage\m!layouts{11}{#1}\fi
- \edef\spacingfactor{1}%
- \else
- \edef\spacingfactor{#1}%
- \fi
- %\setspacingfactor\systemtopskipfactor \topskipfactor {#1}% why no \spacingfactor ?
- %\setspacingfactor\systemmaxdepthfactor\maxdepthfactor{#1}% why no \spacingfactor ?
- \edef\systemtopskipfactor {\withoutpt\the\dimexpr#1\dimexpr\topskipfactor \points}%
- \edef\systemmaxdepthfactor{\withoutpt\the\dimexpr#1\dimexpr\maxdepthfactor\points}%
- \setnormalbaselines
- \setstrut}
-
-%D Sometimes one needs to freeze the interlinespacing
-%D
-%D \starttyping
-%D \rm \saveinterlinespace .... {\ss \restoreinterlinespace .... \endgraf}
-%D \stoptyping
-
-\let\restoreinterlinespace\relax
-
-\def\saveinterlinespace
- {\edef\restoreinterlinespace
- {\lineheight \the\lineheight
- \openstrutheight \the\openstrutheight
- \openstrutdepth \the\openstrutdepth
- \openlineheight \the\openlineheight
- \normalbaselineskip \the\normalbaselineskip
- \normallineskip \the\normallineskip
- \normallineskiplimit\the\normallineskiplimit
- \noexpand\def\noexpand\normallineheight{\the\dimexpr\normallineheight}%
- \noexpand\normalbaselines}}
-
-% plain definition:
-%
-% \def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
-%
-% could be:
-%
-% \def\strut{\relax\ifmmode\copy\else\unhcopy\fi\strutbox}
-
-\ifx\strutbox\undefined
-
- \newbox\strutbox
-
- \setbox\strutbox=\normalhbox{\vrule height8.5pt depth3.5pt width\zeropoint}
-
- %\def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
- \def\strut{\relax\ifmmode\copy\else\unhcopy\fi\strutbox}
-
-\fi
-
-\let\normalstrut\strut
-
-% The double \hbox construction enables us to \backtrack
-% boxes.
-
-% \def\setstrutdimen#1#2#3% % een strut is n.m maal ex
-% {\strutdimen\normallineheight % wat niet per se \lineheight
-% \strutdimen#2\strutdimen % is omdat een strut lokaal
-% \strutdimen#3\strutdimen % kan afwijken van de globale
-% \edef#1{\the\strutdimen}} % macro % strut
-
-% \def\setstrutdimen#1#2#3% % een strut is n.m maal ex
-% {\strutdimen\normallineheight % wat niet per se \lineheight
-% \strutdimen#2\strutdimen % is omdat een strut lokaal
-% \strutdimen#3\strutdimen % kan afwijken van de globale
-% \edef#1{\the\strutdimen}} % macro % strut
-
-% \def\setstrut
-% {\setstrutdimen\strutheight\strutheightfactor\spacingfactor
-% \setstrutdimen\strutdepth \strutdepthfactor \spacingfactor
-% \let\strut=\normalstrut
-% \setbox\strutbox=\normalhbox
-% {\normalhbox
-% {\vrule
-% \!!width \strutwidth
-% \!!height \strutheight
-% \!!depth \strutdepth
-% \normalkern-\strutwidth}}}
-
-% \def\setstrut
-% {\setstrutdimen\strutheight\strutheightfactor\spacingfactor
-% \setstrutdimen\strutdepth \strutdepthfactor \spacingfactor
-% \dosetstrut}
-
-% \def\setstrut
-% {\strutdimen\normallineheight
-% \strutdimen\strutheightfactor\strutdimen
-% \strutdimen\spacingfactor\strutdimen
-% \edef\strutheight{\the\strutdimen}%
-% \strutdimen\normallineheight
-% \ifgridsnapping
-% \advance\strutdimen-\strutheight
-% \else
-% \strutdimen\strutdepthfactor\strutdimen
-% \strutdimen\spacingfactor\strutdimen
-% \fi
-% \edef\strutdepth{\the\strutdimen}%
-% \dosetstrut}
-
-% interesting, strutdepth is 4.05064pt vs 4.05066pt depending on grid
-% nasty rounding problem
-
-% \def\setstrut
-% {% height
-% \strutdimen\normallineheight
-% \ifdim\minimumstrutheight>\zeropoint
-% \strutdimen\minimumstrutheight
-% \else
-% \strutdimen\strutheightfactor\strutdimen
-% \fi
-% \strutdimen\spacingfactor\strutdimen
-% \edef\strutheight{\the\strutdimen}%
-% % depth
-% \strutdimen\normallineheight
-% \ifgridsnapping
-% \ifdim\minimumstrutdepth>\zeropoint
-% \strutdimen\minimumstrutdepth
-% \else
-% \advance\strutdimen-\strutheight
-% \fi
-% \else
-% \ifdim\minimumstrutdepth>\zeropoint
-% \strutdimen\minimumstrutdepth
-% \else
-% \strutdimen\strutdepthfactor\strutdimen
-% \fi
-% \strutdimen\spacingfactor\strutdimen
-% \fi
-% \edef\strutdepth{\the\strutdimen}%
-% % finish
-% \dosetstrut}
-
-% \def\setstrut
-% {% height
-% \ifdim\minimumstrutheight>\zeropoint
-% \edef\strutheight{\the\dimexpr\spacingfactor\dimexpr\minimumstrutheight}%
-% \else
-% \edef\strutheight{\the\dimexpr\spacingfactor\dimexpr\strutheightfactor\dimexpr\normallineheight}%
-% \fi
-% % depth
-% \ifgridsnapping
-% \ifdim\minimumstrutdepth>\zeropoint
-% \edef\strutdepth{\the\dimexpr\minimumstrutdepth}%
-% \else
-% \edef\strutdepth{\the\dimexpr\normallineheight-\strutheight}%
-% \fi
-% \else
-% \ifdim\minimumstrutdepth>\zeropoint
-% \edef\strutdepth{\the\dimexpr\spacingfactor\dimexpr\minimumstrutdepth}%
-% \else
-% \edef\strutdepth{\the\dimexpr\spacingfactor\dimexpr\strutdepthfactor\dimexpr\normallineheight}%
-% \fi
-% \fi
-% % finish
-% \dosetstrut}
-
-\unexpanded\def\setstrut
- {% height
- \edef\strutheight
- {\the\dimexpr\spacingfactor\dimexpr
- \ifdim\minimumstrutheight>\zeropoint
- \minimumstrutheight
- \else
- \strutheightfactor\dimexpr\normallineheight
- \fi}%
- % depth
- \edef\strutdepth
- {\the\dimexpr
- \ifgridsnapping
- \ifdim\minimumstrutdepth>\zeropoint
- \minimumstrutdepth
- \else
- \normallineheight-\strutheight
- \fi
- \else
- \spacingfactor\dimexpr
- \ifdim\minimumstrutdepth>\zeropoint
- \minimumstrutdepth
- \else
- \strutdepthfactor\dimexpr\normallineheight
- \fi
- \fi}%
- % finish
- \dosetstrut}
-
-\unexpanded\def\setcharstrut#1%
- {\setbox\strutbox\normalhbox{#1}%
- \edef\strutheight{\the\strutht}%
- \edef\strutdepth {\the\strutdp}%
- \dosetstrut}
-
-% \def\setfontstrut
-% {\setcharstrut{(}}
-%
-% better, since some fonts have small (but descending Q etc)
-
-\unexpanded\def\setfontstrut
- {\setcharstrut{(gplQT}}
-
-\unexpanded\def\setcapstrut% could be M, but Q has descender
- {\setcharstrut{Q}}
-
-%D Handy for math (used in mathml):
-
-\def\charhtstrut
- {\begingroup
- \setcharstrut{GJY}%
- \vrule\!!width\zeropoint\!!depth\zeropoint\!!height\strutht
- \endgroup}
-
-\def\chardpstrut
- {\begingroup
- \setcharstrut{gjy}%
- \vrule\!!width\zeropoint\!!depth\strutdp\!!height\zeropoint
- \endgroup}
-
-%D Centered looks nicer:
-
-% \def\dosetstrut
-% {\let\strut\normalstrut
-% \setbox\strutbox\normalhbox
-% {\normalhbox to \zeropoint
-% {% \hss % new, will be option
-% \vrule
-% \!!width \strutwidth
-% \!!height\strutheight
-% \!!depth \strutdepth
-% \hss}}%
-% \struttotal\dimexpr\strutht+\strutdp\relax}
-%
-% because of all the callbacks in mkiv, we avoid unnecessary boxes ...
-% maybe use an attribute so that we can tag boxes that don't need a
-% treatment; tests with using an attribute so far have shown that
-% it's slower because testing the attribute takes time too
-
-\def\dosetstrut
- {\let\strut\normalstrut
- \ifdim\strutwidth=\zeropoint
- \setbox\strutbox\normalhbox
- {\vrule
- \!!width \zeropoint
- \!!height\strutheight
- \!!depth \strutdepth}%
- \else
- \setbox\strutbox\normalhbox
- {\normalhbox to \zeropoint
- {% \hss % new, will be option
- \vrule
- \!!width \strutwidth
- \!!height\strutheight
- \!!depth \strutdepth
- \hss}}%
- \fi
- \struttotal\dimexpr\strutht+\strutdp\relax}
-
-%D The dimen \type {\struttotal} holds the exact size of the
-%D strut; occasionally a one scaled point difference can show
-%D up with the lineheight.
-
-%D Sometimes a capstrut comes in handy
-%D
-%D \starttabulate[|Tl|l|l|]
-%D \NC yes \NC normal strut \NC {\showstruts\setupstrut[yes]\strut} \NC \NR
-%D \NC no \NC no strut \NC {\showstruts\setupstrut[no]\strut} \NC \NR
-%D \NC kap \NC a capital strut (i.e. Q) \NC {\showstruts\setupstrut[cap]\strut} \NC \NR
-%D \NC A B \unknown \NC a character strut (e.g. A) \NC {\showstruts\setupstrut[A]\strut} \NC \NR
-%D \NC \NC a normal strut \NC {\showstruts\setupstrut\strut} \NC \NR
-%D \stoptabulate
-
-\def\setupstrut
- {\dosingleempty\dosetupstrut}
-
-\def\dosetupstrut[#1]% yet undocumented, todo: fontstrut
- {\processaction
- [#1]
- [ \v!yes=>\setstrut,
- \v!auto=>\setautostrut,
- \v!no=>\setnostrut,
- \v!cap=>\setcapstrut,
- \v!fit=>\setfontstrut,
- \v!line=>\setstrut,
- \s!default=>\setstrut,
- \s!unknown=>\setcharstrut\commalistelement]}
-
-\def\setteststrut
- {\def\strutwidth{.8pt}%
- \setstrut}
-
-\def\autostrutfactor{1.1}
-
-\def\setautostrut
- {\begingroup
- \setbox\scratchbox\copy\strutbox
- \setstrut
- \ifdim\ht\strutbox>\autostrutfactor\ht\scratchbox
- \endgroup \setstrut
- \else\ifdim\dp\strutbox>\autostrutfactor\dp\scratchbox
- \endgroup \setstrut
- \else
- \endgroup
- \fi\fi}
-
-% simple version
-%
-% \def\begstrut
-% {\relax\ifcase\strutht\else
-% \strut
-% \normalpenalty\plustenthousand
-% \normalhskip\zeropoint
-% \ignorespaces
-% \fi}
-%
-% \def\endstrut
-% {\relax\ifhmode\ifcase\strutht\else
-% \removeunwantedspaces
-% \normalpenalty\plustenthousand
-% \normalhskip\zeropoint
-% \strut
-% \fi\fi}
-
-% when enabled, sigstruts will remove themselves if nothing
-% goes inbetween
-
-\newsignal\strutsignal \setfalse\sigstruts
-
-\def\begstrut
- {\relax\ifcase\strutht\else
- \ifconditional\sigstruts
- \noindent\horizontalstrut
- \normalpenalty\plustenthousand
- \normalhskip-\strutsignal
- \normalhskip\strutsignal
- \else
- \strut
- \normalpenalty\plustenthousand
- \normalhskip\zeropoint
- \fi
- \expandafter \ignorespaces
- \fi}
-
-\def\endstrut
- {\relax\ifhmode\ifcase\strutht\else
- \ifconditional\sigstruts
- \ifdim\lastskip=\strutsignal
- \unskip\unskip\unpenalty\setbox\scratchbox\lastbox
- \else
- \normalpenalty\plustenthousand
- \normalhskip\zeropoint
- \strut
- \fi
- \else
- \removeunwantedspaces
- \normalpenalty\plustenthousand
- \normalhskip\zeropoint
- \strut
- \fi
- \fi\fi}
-
-\newbox\nostrutbox \setbox\nostrutbox\normalhbox{} % {\normalhbox{}}
-
-\def\setnostrut
- {\setbox\strutbox\copy\nostrutbox
- \let\strut\empty
- \let\endstrut\empty
- \let\begstrut\empty
- \let\crlfplaceholder\empty}
-
-% unsave:
-%
-% \def\pseudostrut
-% {\bgroup
-% \setnostrut
-% \normalstrut
-% \egroup}
-%
-% try:
-%
-% \startchemie
-% \chemie[ONE,Z0,SB15,MOV1,SB15,Z0][C,C]
-% \stopchemie
-%
-% so:
-
-\def\pseudostrut
- {\noindent} % better: \dontleavehmode
-
-\let\pseudobegstrut\pseudostrut
-
-\let\pseudoendstrut\removeunwantedspaces
-
-\def\resetteststrut
- {\let\strutwidth\zeropoint
- \setstrut}
-
-\ifx\setfontparameters\undefined
- % problems ! ! ! !
- \def\setfontparameters{\the\everybodyfont}
-\fi
-
-%D Handy:
-
-\def\baselinedistance{\the\lineheight}
-
-%D We need \type{\normaloffinterlineskip} because the new
-%D definition contains an assignment, and |<|don't ask me
-%D why|>| this assignment gives troubles in for instance the
-%D visual debugger.
-
-%D The plain ones:
-
-\def\offinterlineskip
- {\baselineskip-\thousandpoint
- \lineskip\zeropoint
- \lineskiplimit\maxdimen}
-
-\def\nointerlineskip
- {\prevdepth-\thousandpoint}
-
-\let\normaloffinterlineskip=\offinterlineskip % knuth's original
-
-%D My own one:
-
-\def\offinterlineskip
- {\ifdim\baselineskip>\zeropoint
- \edef\oninterlineskip
- {\baselineskip\the\baselineskip
- \lineskip\the\lineskip
- \lineskiplimit\the\lineskiplimit
- \let\noexpand\offinterlineskip\noexpand\normaloffinterlineskip}%
- \else
- \let\oninterlineskip\setnormalbaselines
- \fi
- \normaloffinterlineskip}
-
-\let\oninterlineskip=\relax
-
-\def\leaveoutervmode
- {\ifvmode\ifinner\else
- \leavevmode
- \fi\fi}
-
-% We stellen enkele penalties anders in dan Plain TEX:
-
-% oud
-%
-% \widowpenalty=\defaultwidowpenalty\relax
-% \clubpenalty =\defaultclubpenalty \relax
-
-\def\resetpenalties#1%
- {\ifx#1\undefined\else
- #1\minusone
- \fi}
-
-\def\setpenalties#1#2#3%
- {\ifx#1\undefined\else % space before #3 prevents lookahead problems, needed when #3=text
- #1\numexpr#2+\plusone\relax\space\doexpandedrecurse{\the\numexpr#2\relax}{ #3}\zerocount\relax
- \fi}
-
-\def\doexpandedrecurse#1#2%
- {\ifnum#1>\zerocount#2\@EA\doexpandedrecurse\@EA{\the\numexpr#1-1\relax}{#2}\fi}
-
-%D \macros
-%D {keeplinestogether}
-%D
-%D Dirty hack, needed in margin content that can run of a page.
-
-\def\keeplinestogether#1%
- {\xdef\restoreinterlinepenalty{\global\resetpenalties\interlinepenalties}%
- \global\setpenalties\interlinepenalties{#1}\plustenthousand}
-
-\newif\ifgridsnapping % to be sure
-
-\def\defaultwidowpenalty {2000} % was: 1000
-\def\defaultclubpenalty {2000} % was: 800
-\def\defaultdisplaywidowpenalty {50}
-\def\defaultbrokenpenalty {100}
-
-\def\defaultgridwidowpenalty {0}
-\def\defaultgridclubpenalty {0}
-\def\defaultgriddisplaywidowpenalty {0}
-\def\defaultgridbrokenpenalty {0}
-
-% The original approach:
-%
-% \def\setdefaultpenalties
-% {\ifgridsnapping
-% \widowpenalty\defaultgridwidowpenalty
-% \clubpenalty \defaultgridclubpenalty
-% \else
-% \widowpenalty\defaultwidowpenalty
-% \clubpenalty \defaultclubpenalty
-% \fi}
-%
-% However, we will use setups:
-
-% to be documented
-
-\def\nopenalties
- {\widowpenalty \zerocount
- \clubpenalty \zerocount
- \brokenpenalty \zerocount
- \doublehyphendemerits\zerocount
- \finalhyphendemerits \zerocount
- \adjdemerits \zerocount}
-
-\def\setdefaultpenalties
- {\directsetup{\systemsetupsprefix\s!default}}
-
-\startsetups [\systemsetupsprefix\s!reset]
- \resetpenalties\widowpenalties
- \resetpenalties\clubpenalties
- \resetpenalties\interlinepenalties
-\stopsetups
-
-% we use \directsetup because it's faster and we know there is no csl
-
-\startsetups [\systemsetupsprefix\s!default]
-
- \directsetup{\systemsetupsprefix\s!reset}
-
- \widowpenalty \defaultwidowpenalty
- \clubpenalty \defaultclubpenalty
- \displaywidowpenalty\defaultdisplaywidowpenalty
- \brokenpenalty \defaultbrokenpenalty
-
-\stopsetups
-
-\startsetups [\v!grid] [\systemsetupsprefix\s!default]
-
- \directsetup{\systemsetupsprefix\s!reset}
-
- \widowpenalty \defaultgridwidowpenalty
- \clubpenalty \defaultgridclubpenalty
- \displaywidowpenalty\defaultgriddisplaywidowpenalty
- \brokenpenalty \defaultgridbrokenpenalty
-
-\stopsetups
-
-% as an illustration:
-
-\startsetups [\systemsetupsprefix\v!strict]
-
- \directsetup{\systemsetupsprefix\s!reset}
-
- \setpenalties\widowpenalties2\maxdimen
- \setpenalties\clubpenalties 2\maxdimen
- \brokenpenalty \maxdimen
-
-\stopsetups
-
-\setdefaultpenalties % will happen later in \setuplayout
-
-% Suggested by GB (not the name -):
-
-\def\rapfillskip{.5\hsize plus .092\hsize minus .5\hsize} % D.A.'s value
-
-% Bovendien definieren we enkele extra \fill's:
-
-\def\hfilll{\hskip\zeropoint\!!plus1filll\relax}
-\def\vfilll{\vskip\zeropoint\!!plus1filll\relax}
-
-% De onderstaande hulpmacro's moeten nog eens instelbaar worden
-% gemaakt.
-
-\def\tfskipsize{1em\relax}
-\def\tfkernsize{1ex\relax}
-
-\def\tfskip{\dotfskip\tfskipsize}
-\def\tfkern{\dotfkern\tfkernsize}
-
-\def\dotfskip#1{{\tf\hskip#1}}
-\def\dotfkern#1{{\tf\kern #1}}
-
-% needs a proper \definenarrower or installnarrower
-
-\newskip\ctxleftskip
-\newskip\ctxrightskip
-\newskip\ctxmidskip
-
-\def\dosinglenarrower#1%
- {\processaction
- [#1]
- [ \v!left=>\global\advance\ctxleftskip \@@slleft,
- \v!middle=>\global\advance\ctxmidskip \@@slmiddle,
- \v!right=>\global\advance\ctxrightskip \@@slright,
- -\v!left=>\global\advance\ctxleftskip -\@@slleft,
- -\v!middle=>\global\advance\ctxmidskip -\@@slmiddle,
- -\v!right=>\global\advance\ctxrightskip-\@@slright,
- \v!reset=>\global\ctxleftskip \zeropoint
- \global\ctxmidskip \zeropoint
- \global\ctxrightskip\zeropoint,
- \v!none=>,
- \s!unknown=>\global\advance\ctxmidskip \commalistelement]}
-
-% \def\donarrower[#1]% hm, can be dorepeat directly
-% {\processaction
-% [#1]
-% [ \v!left=>\global\advance\ctxleftskip \@@slleft,
-% \v!middle=>\global\advance\ctxmidskip \@@slmiddle,
-% \v!right=>\global\advance\ctxrightskip \@@slright,
-% \v!none=>,% handy for delimitedtexts
-% \s!unknown=>{\dorepeatwithcommand[#1]\dosinglenarrower}]}
-
-\def\donarrower[#1]% hm, can be dorepeat directly
- {\dorepeatwithcommand[#1]\dosinglenarrower}
-
-\def\complexstartnarrower[#1]%
- {\@@slbefore % was hard coded \par
- \bgroup
- \global\ctxleftskip \zeropoint
- \global\ctxrightskip\zeropoint
- \global\ctxmidskip \zeropoint
- \processcommalistwithparameters[#1]\donarrower
- \advance\leftskip \ctxleftskip
- \advance\rightskip \ctxrightskip
- \advance\leftskip \ctxmidskip
- \advance\rightskip \ctxmidskip
- \seteffectivehsize}
-
-% todo: definenarrower
-
-\def\simplestartnarrower
- {\startnarrower[\v!middle]}
-
-\definecomplexorsimple\startnarrower
-
-\def\stopnarrower
- {\@@slafter % was hard coded \par / needed, else skips forgotten
- \egroup}
-
-\def\setupnarrower
- {\dodoubleargument\getparameters[\??sl]}
-
-\newdimen\@@effectivehsize \def\effectivehsize {\hsize}
-\newdimen\@@effectiveleftskip \def\effectiveleftskip {\leftskip}
-\newdimen\@@effectiverightskip \def\effectiverightskip{\rightskip}
-
-\def\seteffectivehsize
- {\setlocalhsize
- \@@effectivehsize \localhsize
- \@@effectiveleftskip \leftskip
- \@@effectiverightskip \rightskip
- \let\effectivehsize \@@effectivehsize
- \let\effectiveleftskip \@@effectiveleftskip
- \let\effectiverightskip\@@effectiverightskip}
-
-\def\dodefinehbox[#1][#2]%
- {\setvalue{hbox#1}##1%
- {\hbox to #2{\begstrut##1\endstrut\hss}}}
-
-\def\definehbox
- {\dodoubleargument\dodefinehbox}
-
-\def\iobox#1#2#3#% here #3# is not really needed
- {\vbox\bgroup % we want to return a vbox like the others
- \hbox\bgroup% we need to pack the signal with the box
- \signalrightpage
- \dowithnextboxcontent
- {\let\\=\endgraf\forgetall\doifrightpageelse#1#2}
- {\box\nextbox\egroup\egroup}
- \vbox#3}
-
-\def\obox{\iobox\raggedleft \raggedright} % outerbox
-\def\ibox{\iobox\raggedright\raggedleft} % innerbox
-
-\def\dosetraggedvbox#1%
- {\let\raggedbox\vbox
- \processfirstactioninset
- [#1]
- [ \v!left=>\let\raggedbox\lbox,
- \v!right=>\let\raggedbox\rbox,
- \v!middle=>\let\raggedbox\cbox,
- \v!inner=>\let\raggedbox\ibox,
- \v!outer=>\let\raggedbox\obox,
- \v!flushleft=>\let\raggedbox\rbox,
- \v!flushright=>\let\raggedbox\lbox,
- \v!center=>\let\raggedbox\cbox,
- \v!no=>\def\raggedbox{\vbox\bgroup\raggedright\let\next=}]}
-
-\def\dosetraggedhbox#1%
- {\let\raggedbox\hbox
- \processaction % slow
- [#1]
- [ \v!left=>\def\raggedbox{\doalignedline\v!left },
- \v!right=>\def\raggedbox{\doalignedline\v!right },
- \v!middle=>\def\raggedbox{\doalignedline\v!middle},
- \v!inner=>\def\raggedbox{\doalignedline\v!inner },
- \v!outer=>\def\raggedbox{\doalignedline\v!outer },
- \v!flushleft=>\def\raggedbox{\doalignedline\v!right },
- \v!flushright=>\def\raggedbox{\doalignedline\v!left },
- \v!center=>\def\raggedbox{\doalignedline\v!middle}]}
-
-\def\dosetraggedcommand#1%
- {\expanded{\dodosetraggedcommand{#1}}}
-
-% \def\dodosetraggedcommand#1% beware: #1=empty is ignored, keep that!
-% {\let\raggedcommand \relax
-% \let\raggedtopcommand \empty
-% \let\raggedbottomcommand\empty
-% \chardef\raggedoneliner\zerocount
-% \doifsomething{#1}
-% {\doifinsetelse\v!broad{#1}\!!doneatrue\!!doneafalse
-% \doifinsetelse\v!wide {#1}\!!donebtrue\!!donebfalse
-% \!!donectrue
-% \rawprocesscommalist[#1]\dododosetraggedcommand}}
-
-\newtoks\everyraggedcommand
-
-\def\raggedcommand{\the\everyraggedcommand}
-
-\def\dodosetraggedcommand#1% beware: #1=empty is ignored, keep that!
- {\everyraggedcommand \emptytoks
- \let\raggedtopcommand \empty
- \let\raggedbottomcommand\empty
- \chardef\raggedoneliner\zerocount
- \doifsomething{#1}
- {\doifinsetelse\v!broad{#1}\!!doneatrue\!!doneafalse
- \doifinsetelse\v!wide {#1}\!!donebtrue\!!donebfalse
- \!!donectrue
- \rawprocesscommalist[#1]\dododosetraggedcommand}}
-
-\def\dododosetraggedcommand#1%
- {\executeifdefined{\@@ragged@@command\string#1}\relax}
-
-\def\@@ragged@@command{@@raggedcommand}
-
-\setvalue{\@@ragged@@command\v!hanging }{\appendtoks\enableprotruding \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!nothanging }{\appendtoks\disableprotruding \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!hz }{\appendtoks\enableadjusting \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!nohz }{\appendtoks\disableadjusting \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!spacing }{\appendtoks\enablespacehandling
- \enablekernhandling \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!nospacing }{\appendtoks\disablespacehandling
- \disablekernhandling \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!hyphenated }{\appendtoks\dohyphens \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!nothyphenated}{\appendtoks\nohyphens \to\everyraggedcommand}
-
-\setvalue{\@@ragged@@command\v!tolerant }{\appendtoks\tolerance3000\relax \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!verytolerant}{\appendtoks\tolerance4500\relax \to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!stretch }{\appendtoks\emergencystretch\bodyfontsize\to\everyraggedcommand}
-
-\setvalue{\@@ragged@@command\v!left}%
- {\if!!donea \appendtoks\veryraggedleft\to\everyraggedcommand
- \else \appendtoks\raggedleft \to\everyraggedcommand
- \fi
- \!!donecfalse}
-
-\setvalue{\@@ragged@@command\v!right}%
- {\if!!donea \appendtoks\veryraggedright\to\everyraggedcommand
- \else \appendtoks\raggedright \to\everyraggedcommand
- \fi
- \!!donecfalse}
-
-\setvalue{\@@ragged@@command\v!middle}%
- {\if!!donec
- \if!!doneb \appendtoks\raggedwidecenter\to\everyraggedcommand
- \else\if!!donea \appendtoks\veryraggedcenter\to\everyraggedcommand
- \else \appendtoks\raggedcenter \to\everyraggedcommand
- \fi\fi
- \!!donecfalse
- \else
- \let\raggedbottomcommand\vfilll % bonus, pretty strong
- \let\raggedtopcommand \vfilll % used with \framed for
- \fi} % instance in tables
-
-\setvalue{\@@ragged@@command\v!flushleft }{\getvalue{\@@ragged@@command\v!right }}
-\setvalue{\@@ragged@@command\v!flushright}{\getvalue{\@@ragged@@command\v!left }}
-\setvalue{\@@ragged@@command\v!center }{\getvalue{\@@ragged@@command\v!middle}}
-
-\setvalue{\@@ragged@@command\v!high}%
- {\let\raggedbottomcommand\vfilll} % and since we lack a
-
-\setvalue{\@@ragged@@command\v!low}%
- {\let\raggedtopcommand\vfilll} % proper keyword, but
-
-\setvalue{\@@ragged@@command\v!lohi}%
- {\let\raggedbottomcommand\vfilll % we do support the
- \let\raggedtopcommand\vfilll} % ugly laho (lohi)
-
-\setvalue{\@@ragged@@command\v!no}%
- {\appendtoks\raggedright\to\everyraggedcommand}
-
-\setvalue{\@@ragged@@command\v!yes}%
- {\appendtoks\notragged\to\everyraggedcommand}
-
-\setvalue{\@@ragged@@command\v!normal}%
- {\appendtoks\notragged\to\everyraggedcommand}
-
-\setvalue{\@@ragged@@command\v!inner}% not yet perfect
- {\signalrightpage % may interfere
- \doifrightpageelse
- {\getvalue{\@@ragged@@command\v!right}}
- {\getvalue{\@@ragged@@command\v!left}}}
-
-\setvalue{\@@ragged@@command\v!outer}% not yet perfect
- {\signalrightpage % may interfere
- \doifrightpageelse
- {\getvalue{\@@ragged@@command\v!left}}
- {\getvalue{\@@ragged@@command\v!right}}}
-
-\setvalue{\@@ragged@@command\v!lesshyphenation}%
- {\appendtoks\lesshyphens\to\everyraggedcommand}
-\setvalue{\@@ragged@@command\v!morehyphenation}%
- {\appendtoks\morehyphens\to\everyraggedcommand}
-
-% compare:
-%
-% \framed[width=4cm,align=no] {\hfil xxx}
-% \framed[width=4cm,align=disable]{\hfil xxx}
-
-\setvalue{\@@ragged@@command\v!disable}% for one liners
- {\appendtoks\raggedright\parfillskip\zeropoint\to\everyraggedcommand}
-
-\chardef\raggedoneliner\zerocount
-
-\setvalue{\@@ragged@@command\v!line}%
- {\chardef\raggedoneliner\plusone}
-
-%D Unofficial, may disappear. Now handled directly in the
-%D core-rul module.
-
-% \def\@@startraggedoneliner
-% {\ifcase\raggedoneliner\else
-% \dontleavehmode\hbox to \hsize \bgroup % hsize added, else useless
-% \ifcase\raggedstatus\or\hss\or\hss\fi
-% \ignorespaces
-% \bgroup
-% \aftergroup\removeunwantedspaces
-% \fi}
-
-% \def\@@stopraggedoneliner
-% {\ifcase\raggedoneliner\else
-% \egroup
-% \ifcase\raggedstatus\or\or\hss\or\hss\fi
-% \egroup
-% \ignorespaces % ? ? ?
-% \fi}
-
-% \def\@@handleoneliner
-% {\ifcase\raggedoneliner\else
-% \@@startraggedoneliner
-% \aftergroup\@@stopraggedoneliner
-% \fi}
-
-% Nog doen:
-%
-% \goodbreak -> \allowbreak en \dosomebreak{..} in koppen
-%
-% bij koppen zowieso: \blanko[reset]
-
-% Nog in commando verwerken:
-%
-% \voorkeur la \blanko
-%
-% Om ongewenste witruimte te voorkomen kan met \dosomebreak{\break}
-% een \penalty voor witruimte worden geplaatst.
-
-\def\removelastskip % a redefinition of plain
- {\ifvmode\ifdim\lastskip=\zeropoint\else\vskip-\lastskip\fi\fi}
-
-% first version:
-%
-% \def\dosomebreak#1%
-% {\scratchskip\lastskip
-% \removelastskip
-% %\type{#1}%
-% #1\relax
-% \ifdim\scratchskip=\zeropoint \else
-% \vskip\scratchskip
-% \fi}
-%
-% don't change the next improvement:
-
-% \def\dosomebreak#1%
-% {\endgraf % beware, this forces a newline
-% \ifvmode
-% \ifdim\lastskip=\zeropoint
-% #1\relax
-% \else
-% \scratchskip\lastskip
-% \removelastskip
-% #1\relax
-% \vskip\scratchskip
-% \fi
-% \fi}
-
-% beter, vooral in \vbox; nog in \pagina toepassen s!
-
-\def\doifoutervmode#1%
- {\ifvmode\ifinner\else#1\fi\fi}
-
-\ifx\dosomebreak\undefined % defined in mkiv
-
- \def\dosomebreak#1%
- {\doifoutervmode
- {\scratchskip\lastskip
- \removelastskip
- %\leavevmode\type{#1}%
- #1\relax
- \ifdim\scratchskip=\zeropoint % else interference with footnotes
- \else
- \vskip\scratchskip
- \fi}}
-
-\fi
-
-\def\forgeteverypar
- {\everypar{\the\neverypar}}
-
-%\def\forgetparindent
-% {\forgeteverypar
-% \indentfirstparagraphtrue % recently added
-% \setupindenting[\v!geen]}
-
-%\def\forgetparskip
-% {\setupwhitespace[\v!geen]}
-
-\def\forgetparindent
- {\forgeteverypar
- \indentfirstparagraphtrue % recently added
- \let\currentindentation\v!none
- \ctxparindent\zeropoint
- \parindent\zeropoint\relax}
-
-\def\forgetparskip
- {\let\currentwhitespace\v!none
- \ctxparskip\zeropoint
- \parskip\zeropoint\relax}
-
-\def\forgetbothskips
- {\tolerance1500
- \leftskip\zeropoint
- \rightskip\zeropoint\relax}
-
-\def\forgetspacing
- {\emergencystretch\zeropoint}
-
-\newif\ifforgotten % rather good signal for inner
-
-\appendtoks \forgottentrue \to \everyforgetall
-\appendtoks \forgetragged \to \everyforgetall
-\appendtoks \forgetparskip \to \everyforgetall
-\appendtoks \forgetparindent \to \everyforgetall
-\appendtoks \forgetbothskips \to \everyforgetall
-\appendtoks \forgetspacing \to \everyforgetall % i.v.m. funny spacing in pagebody
-\appendtoks \spacing\!!plusone \to \everyforgetall % new per 10/08/2004, else problems in otr / !! needed
-\appendtoks \everypar\emptytoks \to \everyforgetall % indeed!
-
-\def\localvbox#1#%
- {\vbox#1\bgroup
- \forgetparskip
- \setlocalhsize
- \hsize\localhsize
- \forgetparindent
- \forgetbothskips
- \forgeteverypar
- \let\next=}
-
-% ach ja, hoort niet hier
-
-% \unexpanded\def\dostartattributes#1#2#3%
-% {\begingroup % geen \bgroup, anders in mathmode lege \hbox
-% \doifdefinedelse{#1#2}
-% {\def\fontattribute{\getvalue{#1#2}}}
-% {\let\fontattribute=\empty}%
-% \doifdefinedelse{#1#3}
-% {\def\colorattribute{\getvalue{#1#3}}}
-% {\let\colorattribute=\empty}%
-% \startcolor[\colorattribute]%
-% \@EA\doconvertfont\@EA{\fontattribute}}
-%
-% \unexpanded\def\dostopattributes%
-% {\stopcolor
-% \endgroup}
-%
-% \unexpanded\def\doattributes#1#2#3#4%
-% {\dostartattributes{#1}{#2}{#3}{#4}\dostopattributes}
-
-%D A hardly faster implementation follows. We cannot use
-%D \type {csname} testing since the first argument can be
-%D anything, even a raw fontswitch. No a real improvement
-%D (some 5 seconds on 260 seconds for the maps bibliography).
-
-\let\dostopattributes\relax % in case these commands end up in an edef
-
-\unexpanded\def\dostartattributes#1#2#3%
- {\begingroup % geen \bgroup, anders in mathmode lege \hbox
- \ifcsname#1#3\endcsname
- \let\dostopattributes\@@dostopattributes
- \startcolor[\csname#1#3\endcsname]%
- \else
- \let\dostopattributes\@@nostopattributes
- \fi
- \ifcsname#1#2\endcsname
- \expandafter\doconvertfont
- \else
- \expandafter\gobbleoneargument
- \fi{\csname#1#2\endcsname}}
-
-\newconditional \parbasedattributes
-
-\def\finishparbasedattributes
- {\ifconditional\parbasedattributes
- \setfalse\parbasedattributes
- \par
- \fi}
-
-\def\dostopparbasedattributes
- {\settrue\parbasedattributes
- \dostopattributes}
-
-\unexpanded\def\@@dostopattributes
- {\stopcolor
- \finishparbasedattributes
- \endgroup}
-
-\unexpanded\def\@@nostopattributes
- {\finishparbasedattributes
- \endgroup}
-
-\unexpanded\def\doattributes#1#2#3#4%
- {\dostartattributes{#1}{#2}{#3}{#4}\dostopattributes}
-
-% An even faster \ETEX\ version:
-
-\unexpanded\def\dostartattributes#1#2#3%
- {\begingroup % geen \bgroup, anders in mathmode lege \hbox
- \ifincolor
- \ifcsname#1#3\endcsname
- \let\dostopattributes\@@dostopattributes
- \faststartcolor[\csname#1#3\endcsname]%
- \else
- \let\dostopattributes\@@nostopattributes
- \fi
- \else
- \let\dostopattributes\@@nostopattributes
- \fi
- \ifcsname#1#2\endcsname
- % \@EAEAEA\doconvertfont\@EA\@EA\csname#1#2\endcsname
- \@EA\doconvertfont\csname#1#2\@EA\endcsname
- \fi}
-
-\unexpanded\def\@@dostopattributes
- {\faststopcolor
- \finishparbasedattributes
- \endgroup}
-
-\unexpanded\def\@@nostopattributes
- {\finishparbasedattributes
- \endgroup}
-
-%D Bonus macro, see core-sec.tex
-
-\unexpanded\def\dosetfontattribute#1#2%
- {\ifcsname#1#2\endcsname
- \@EA\doconvertfont\csname#1#2\@EA\endcsname
- \fi\empty}
-
-%D Since this happens a lot, and sometimes large arguments
-%D are passed in \type {#4}, we just copy some code:
-
-\unexpanded\def\doattributes#1#2#3#4%
- {\begingroup % geen \bgroup, anders in mathmode lege \hbox
- \ifincolor
- \ifcsname#1#3\endcsname
- \let\dostopattributes\@@dostopattributes
- \faststartcolor[\csname#1#3\endcsname]%
- \else
- \let\dostopattributes\endgroup
- \fi
- \else
- \let\dostopattributes\endgroup
- \fi
- \ifcsname#1#2\endcsname
- % \@EAEAEA\doconvertfont\@EA\@EA\csname#1#2\endcsname
- \@EA\doconvertfont\csname#1#2\@EA\endcsname
- \fi
- {#4}%
- \dostopattributes}
-
-% Kan vaker worden toegepast en moet bovendien sneller!
-
-\newskip\leftskipadaption
-\newskip\rightskipadaption
-
-\def\doadaptleftskip#1%
- {\dosetleftskipadaption{#1}%
- \advance\leftskip \leftskipadaption}
-
-\def\doadaptrightskip#1%
- {\dosetrightskipadaption{#1}%
- \advance\rightskip \rightskipadaption}
-
-\setvalue{@lsa@\v!standard}{\ifdim\ctxparindent=\zeropoint\@@slleft\else\ctxparindent\fi}
-\setvalue{@lsa@\v!yes }{\ifdim\ctxparindent=\zeropoint\@@slleft\else\ctxparindent\fi}
-\letvalue{@lsa@\v!no }\zeropoint
-\letvalue{@lsa@\empty }\zeropoint
-\setvalue{@rsa@\v!standard}{\@@slright}
-\setvalue{@rsa@\v!yes }{\@@slright}
-\letvalue{@rsa@\v!no }\zeropoint
-\letvalue{@rsa@\empty }\zeropoint
-
-% not safe for 2\parindent
-%
-% \def\dosetleftskipadaption#1%
-% {\leftskipadaption
-% \ifcsname @lsa@#1\endcsname
-% \csname @lsa@#1\endcsname
-% \else
-% #1%
-% \fi
-% \relax}
-
-\def\dosetleftskipadaption#1%
- {\edefconvertedargument\ascii{@lsa@#1}%
- \leftskipadaption
- \ifcsname\ascii\endcsname
- \csname\ascii\endcsname
- \else
- #1%
- \fi
- \relax}
-
-\def\dosetrightskipadaption#1%
- {\edefconvertedargument\ascii{@rsa@#1}%
- \rightskipadaption
- \ifcsname\ascii\endcsname
- \csname\ascii\endcsname
- \else
- #1%
- \fi
- \relax}
-
-\newcount \noftrackedpagestates
-\newif \ifpagestatemismatch
-\newcount \realpagestateno
-\chardef \frozenpagestate \zerocount
-
-\def\dotrackpagestate#1#2%
- {\ifdoublesided \ifinpagebody \else
- \doforcedtrackpagestate{#1}{#2}%
- \fi \fi}
-
-\def\doforcedtrackpagestate#1#2%
- {\ifcase\frozenpagestate
- \global\advance\noftrackedpagestates\plusone
- \global\advance#2\plusone
- \lazysavetaggedtwopassdata{#1}{\number\noftrackedpagestates}{\number#2}{\noexpand\realfolio}%
- %\llap{\infofont\number\noftrackedpagestates/\number#2}% tracing
- \fi}
-
-\def\doifrightpagestateelse#1#2%
- {\ifcase\frozenpagestate
- \pagestatemismatchfalse
- \realpagestateno\realfolio
- \ifinpagebody
- \ifdoublesided
- \ifodd\realpageno\relax
- \twopassdatafoundtrue \else \twopassdatafoundfalse
- \fi
- \else
- \twopassdatafoundtrue
- \fi
- \else\ifdoublesided
- \findtwopassdata{#1}{\number#2}%
- \iftwopassdatafound
- \realpagestateno\twopassdata\relax
- \ifnum\twopassdata=\realpageno \else
- \pagestatemismatchtrue
- \fi
- \ifodd\twopassdata\relax
- \twopassdatafoundtrue \else \twopassdatafoundfalse
- \fi
- \else
- \ifodd\realpageno\relax
- \twopassdatafoundtrue \else \twopassdatafoundfalse
- \fi
- \fi
- \else
- \twopassdatafoundtrue
- \fi\fi
- \else
- \ifodd\realpagestateno\relax
- \twopassdatafoundtrue \else \twopassdatafoundfalse
- \fi
- \fi
- \iftwopassdatafound
- \@EA\firstoftwoarguments
- \else
- \@EA\secondoftwoarguments
- \fi}
-
-\def\doifforcedrightpagestateelse#1#2%
- {\ifcase\frozenpagestate
- \pagestatemismatchfalse
- \realpagestateno\realfolio
- \findtwopassdata{#1}{\number#2}%
- \iftwopassdatafound
- \realpagestateno\twopassdata\relax
- \ifnum\twopassdata=\realpageno \else
- \pagestatemismatchtrue
- \fi
- \ifodd\twopassdata\relax
- \twopassdatafoundtrue \else \twopassdatafoundfalse
- \fi
- \else
- \ifodd\realpageno\relax
- \twopassdatafoundtrue \else \twopassdatafoundfalse
- \fi
- \fi
- \else
- \ifodd\realpagestateno\relax
- \twopassdatafoundtrue \else \twopassdatafoundfalse
- \fi
- \fi
- \iftwopassdatafound
- \@EA\firstoftwoarguments
- \else
- \@EA\secondoftwoarguments
- \fi}
-
-\def\freezepagestate {\chardef\frozenpagestate\plusone }
-\def\defrostpagestate{\chardef\frozenpagestate\zerocount}
-
-% we can make more of these on top, but how to deal with mixed frozen states
-
-\definetwopasslist\s!paragraph \newcount \nofraggedparagraphs
-
-\def\signalrightpage {\dotrackpagestate \s!paragraph\nofraggedparagraphs}
-\def\doifrightpageelse{\doifrightpagestateelse\s!paragraph\nofraggedparagraphs}
-
-\newcount\pagesignallevel
-
-\def\startsignalrightpage % one may do a \postsignalrightplace
- {\advance\pagesignallevel\plusone
- \presignalrightpage
- \let\signalrightpage\relax
- \let\presignalrightpage\relax
- \let\startsignalrightpage\relax
- \doifrightpageelse\donothing\donothing
- \freezepagestate}
-
-\def\stopsignalrightpage
- {\ifcase\pagesignallevel\or\postsignalrightpage\fi
- \advance\pagesignallevel\minusone}
-
-\def\setraggedparagraphmode
- {\signalrightpage\doifrightpageelse} % move it there
-
-\ifx\swapmargins\undefined \let\swapmargins\undefined \fi % todo
-
-\def\doifswappedrightpageelse#1#2% alleen in box construction !
- {\doifrightpageelse
- {#1}
- {\scratchcounter\realpageno
- \realpageno\realpagestateno\relax
- \swapmargins
- \realpageno\scratchcounter
- #2}}
-
-\newbox\signaledrightpage % this way we can avoid interference, i.e. postpone placement
-
-\def\presignalrightpage {\global\setbox\signaledrightpage\hbox{\signalrightpage}}
-\def\postsignalrightpage{\ifvoid\signaledrightpage\else\box\signaledrightpage\fi}
-
-% The next feature is is used in:
-%
-% \definenumber[test][way=bypage]
-%
-% \def\Test
-% {\incrementnumber[test]\rawnumber[test]/%
-% \incrementnumber[test]\rawnumber[test]/%
-% \incrementnumber[test]\rawnumber[test]\space
-% \checkpagechange{oeps}\changedpage{oeps}\space
-% \ifpagechanged TRUE\else FALSE\fi}
-%
-% \Test\page \Test\par \Test\page \Test\par \Test\page \Test\page
-%
-% (adapted from cont-new.tex:)
-
-\newif\ifpagechanged \let\lastchangedpage\empty
-
-\def\docheckpagestatechange#1#2#3%
- {\pagechangedfalse
- \doforcedtrackpagestate{#2}{#3}%
- \findtwopassdata{#2}{\number#3}%
- \iftwopassdatafound
- \ifnum\twopassdata>0\getvalue{#2:p:#1}\relax
- \pagechangedtrue
- \fi
- \fi
- \ifpagechanged
- \letgvalue{#2:p:#1}\twopassdata
- \globallet\lastchangedpage\twopassdata
- \else
- \globallet\lastchangedpage\realfolio
- \fi}
-
-\def\changedpagestate#1#2%
- {\executeifdefined{#2:p:#1}{0}}
-
-\def\checkpagechange#1{\docheckpagestatechange{#1}\s!paragraph\nofraggedparagraphs}
-\def\changedpage #1{\changedpagestate{#1}\s!paragraph}
-
-% saved struts
-
-\ifx\savedstrutbox\undefined \newbox\savedstrutbox \fi
-
-\def\savestrut {\setbox\savedstrutbox\copy\strutbox}
-\def\savedstrut{\copy \savedstrutbox}
-
-% De onderstaande macro's zijn opgenomen in Plain TeX.
-%
-% \def\raggedright%
-% {\rightskip\zeropoint plus2em \spaceskip.3333em \xspaceskip.5em\relax}
-%
-% \def\ttraggedright%
-% {\tttf\rightskip\zeropoint plus2em\relax}
-%
-% \newif\ifr@ggedbottom
-%
-% \def\raggedbottom%
-% {\topskip 10\points plus60\points \r@ggedbottomtrue}
-%
-% \def\normalbottom%
-% {\topskip 10\points \r@ggedbottomfalse}
-%
-% en worden hieronder wat aangepast.
-
-% the three boolean will become obsolete some day in favour
-% of \bottomraggedness
-
-\chardef\bottomraggedness=0 % 0=ragged 1=normal/align 2=baseline
-
-\def\bottomalignlimit{3\lineheight}
-
-\newif\ifn@rmalbottom
-\newif\ifr@ggedbottom
-\newif\ifb@selinebottom
-
-\def\normalbottom
- {% \topskip 10pt
- \r@ggedbottomfalse}
-
-\def\raggedbottom
- {\chardef\bottomraggedness\zerocount
- \n@rmalbottomfalse
- \r@ggedbottomtrue
- \b@selinebottomfalse
- \settopskip}
-
-\def\alignbottom
- {\chardef\bottomraggedness\plusone
- \n@rmalbottomtrue
- \r@ggedbottomfalse
- \b@selinebottomfalse
- \settopskip}
-
-\def\baselinebottom
- {\chardef\bottomraggedness\plustwo
- \n@rmalbottomfalse
- \r@ggedbottomfalse
- \b@selinebottomtrue
- \settopskip}
-
-\let\normalbottom=\alignbottom % downward compatible
-
-% so, the new one will be
-%
-% \chardef\bottomraggedness=0 % 0=ragged 1=normal/align 2=baseline
-%
-% \def\bottomalignlimit{3\lineheight} % will be settable
-%
-% \def\raggedbottom {\chardef\bottomraggedness=0 \settopskip}
-% \def\alignbottom {\chardef\bottomraggedness=1 \settopskip}
-% \def\baselinebottom{\chardef\bottomraggedness=2 \settopskip}
-%
-% \let\normalbottom =\alignbottom
-
-% \hyphenpenalty = ( 2.5 * \hsize ) / \raggedness
-% \tolerance >= 1500 % was 200
-% \raggedness = 2 .. 6\bodyfontsize
-
-\chardef\raggedstatus=0 % normal left center right
-
-\def\leftraggedness {2\bodyfontsize}
-\def\rightraggedness {2\bodyfontsize}
-\def\middleraggedness {6\bodyfontsize}
-
-\def\middleraggedness {.5\hsize} % was: 6\bodyfontsize, fails on: \placefigure{x $x=x$ x}{}
-
-% oeps, hsize can be 0pt in which case we get a strange division
-
-\def\middleraggedness {\ifdim\hsize=\zeropoint6\bodyfontsize\else.5\hsize\fi} % was: 6\bodyfontsize, fails on: \placefigure{x $x=x$ x}{}
-
-%D More hyphenation control, will be combined with align
-%D setup.
-
-\def\nohyphens
- {\ifx\dohyphens\relax
- \edef\dohyphens
- {\hyphenpenalty\the\hyphenpenalty
- \exhyphenpenalty\the\exhyphenpenalty\relax}%
- \fi
- \hyphenpenalty\plustenthousand
- \exhyphenpenalty\plustenthousand}
-
-\let\dohyphens\relax
-
-%D To prevent unwanted side effects, we also have to check
-%D for hyphens here:
-
-% \def\setraggedness#1%
-% {\ifnum\tolerance<1500\relax % small values have
-% \tolerance1500\relax % unwanted side effects
-% \fi
-% \spaceskip2.5\hsize % we misuse these registers
-% \xspaceskip#1\relax % for temporary storage;
-% \divide\spaceskip \xspaceskip % they are changed anyway
-% \ifx\dohyphens\relax
-% \hyphenpenalty\spaceskip % \else no hyphens is active
-% \fi}
-
-\newskip\@@raggedskipa
-\newskip\@@raggedskipb
-
-\def\setraggedness#1%
- {\ifnum\tolerance<1500\relax % small values have
- \tolerance1500\relax % unwanted side effects
- \fi
- \ifx\dohyphens\relax
- % this code will be reconsidered / kind of fuzzy (and old)
- \@@raggedskipa 2.5\hsize
- \@@raggedskipb #1\relax
- \divide\@@raggedskipa \@@raggedskipb
- \hyphenpenalty\@@raggedskipa
- \fi}
-
-\let\updateraggedskips\relax
-
-\def\setraggedskips#1#2#3#4#5#6#7% never change this name
- {\def\updateraggedskips{\dosetraggedskips{#1}{#2}{#3}{#4}{#5}{#6}{#7}}%
- \updateraggedskips}
-
-\def\dosetraggedskips#1#2#3#4#5#6#7%
- {\chardef \raggedstatus#1\relax
- \leftskip 1\leftskip \!!plus#2\relax % zie: Tex By Topic 8.1.3
- \rightskip 1\rightskip\!!plus#3\relax % zie: Tex By Topic 8.1.3
- \spaceskip #4\relax
- \xspaceskip #5\relax
- \parfillskip\zeropoint\!!plus#6\relax
- \parindent #7\relax}
-
-% \def\notragged%
-% {\setraggedskips{0}{0em}{0em}{0em}{0em}{1fil}{\parindent}}
-
-% older (context) names:
-
-\let\spaceamount \interwordspace
-\let\emspaceamount\emwidth
-
-% tracing:
-
-\def\doshowpardata#1%
- {\ifx#1\relax\else
- \hbox{\string#1: \the#1}\endgraf
- \expandafter\doshowpardata
- \fi}
-
-\def\showpardata
- {\edef\thepardata
- {\hbox{font: \fontname\font}\endgraf
- \doshowpardata
- \interwordspace \interwordstretch \interwordshrink \emwidth \exheight \extraspace
- \hsize \vsize
- \leftskip \rightskip
- \spaceskip \xspaceskip
- \parindent \parfillskip
- \hyphenpenalty \exhyphenpenalty
- \displaywidowpenalty \widowpenalty \clubpenalty \brokenpenalty
- \doublehyphendemerits \finalhyphendemerits \adjdemerits
- \relax}%
- \begingroup
- \dontshowcomposition
- \inleftmargin{\vsmash
- {\switchtobodyfont[7pt,tt]%
- \framed[\c!align=\v!right]{\thepardata}}}%
- \endgroup}
-
-\def\startshowpardata
- {\begingroup
- \showcomposition
- \showstruts\tracepositionstrue \tracingparagraphs\maxdimen
- \appendtoksonce\showpardata\let\showpardata\relax\to\everypar}
-
-\def\stopshowpardata
- {\endgraf
- \endgroup}
-
-% \defineXMLenvironment[showpardata] \startshowpardata \stopshowpardata
-% \defineXMLsingular [showpardata] \showpardata
-
-% defaults
-
-\def\raggedfillamount {1fil}
-\def\raggedhalffillamount{.5fil}
-\def\raggedspaceamount {\interwordspace} % {.3333em}
-\def\raggedxspaceamount {.5em}
-
-\def\notragged
- {\chardef\raggedstatus\zerocount
- \leftskip 1\leftskip
- \rightskip 1\rightskip
- \spaceskip \zeropoint
- \xspaceskip \zeropoint
- \parfillskip\zeropoint\!!plus\raggedfillamount\relax
- \let\updateraggedskips\relax} % new
-
-\let\forgetragged\notragged
-
-\def\raggedleft
- {\setraggedness\leftraggedness
- \setraggedskips1\leftraggedness\zeropoint\raggedspaceamount
- \raggedxspaceamount\zeropoint\zeropoint}
-
-\def\raggedcenter
- {\setraggedness\middleraggedness
- \setraggedskips2\middleraggedness\middleraggedness\raggedspaceamount
- \raggedxspaceamount\zeropoint\zeropoint}
-
-%D We used to have:
-%D
-%D \starttyping
-%D \def\raggedright
-%D {\setraggedness\rightraggedness
-%D \setraggedskips{3}{0em}{\rightraggedness}{.3333em}{.5em}{0em}{\parindent}}
-%D \stoptyping
-%D
-%D However, the next alternative, suggested by Taco, is better.
-
-\def\raggedright
- {\setraggedness\rightraggedness
- \setraggedskips3\zeropoint\rightraggedness\raggedspaceamount
- \raggedxspaceamount\raggedfillamount\parindent}
-
-\def\veryraggedleft
- {\setraggedskips1\raggedfillamount\zeropoint\raggedspaceamount
- \raggedxspaceamount\zeropoint\zeropoint}
-
-%D When we want the last line to have a natural width:
-%D
-%D \starttyping
-%D \def\veryraggedleft%
-%D {\setraggedskips{1}{1fil}{0em}{.3333em}{.5em}{0em}{-1fil}}
-%D \stoptyping
-%D
-%D but this one is not accepted by the macros.
-
-\def\veryraggedcenter
- {\setraggedskips2\raggedfillamount\raggedfillamount\raggedspaceamount
- \raggedxspaceamount\zeropoint\zeropoint}
-
-\def\veryraggedright
- {\setraggedskips3\zeropoint\raggedfillamount\raggedspaceamount
- \raggedxspaceamount\zeropoint\parindent}
-
-\def\ttraggedright
- {\tttf
- \setraggedskips3\zeropoint\rightraggedness
- \zeropoint\zeropoint\zeropoint\parindent} % \ctxparindent
-
-%D A bonus one:
-
-\def\raggedwidecenter
- {\setraggedness\middleraggedness
- \setraggedskips2\raggedhalffillamount\raggedhalffillamount
- \raggedspaceamount\raggedxspaceamount\zeropoint\zeropoint}
-
-\newif\if@@asragged \@@asraggedtrue % old method
-
-% todo
-%
-% \setuplayout[grid=yes,lines=44] \showgrid
-% \starttext
-% test \vfill test \endgraf \strut \endgraf \vskip-\lineheight \removedepth \pagina test
-% \stoptext
-
-% \setupalign[reset,new,right,old]
-
-\def\@@align@@rl{\if!!donea\veryraggedleft \else\raggedleft \fi}
-\def\@@align@@rr{\if!!donea\veryraggedright \else\raggedright \fi}
-\def\@@align@@rc{\if!!donea\veryraggedcenter\else\raggedcenter\fi}
-
-\setvalue{@@ngila@@\v!broad }{\!!doneatrue}
-\setvalue{@@ngila@@\v!wide }{\!!donebtrue}
-
-\def\installalign#1#2{\setvalue{@@align@@#1}{#2}} % can be used for overloads
-
-\installalign \v!new {\@@asraggedfalse}
-\installalign \v!old {\@@asraggedtrue}
-\installalign \empty {}
-
-\installalign \v!line {\baselinebottom}
-\installalign \v!bottom {\raggedbottom}
-\installalign \v!height {\normalbottom}
-\installalign \v!width {\notragged}
-\installalign \v!normal {\notragged}
-\installalign \v!yes {\notragged}
-\installalign \v!no {\raggedright}
-\installalign \v!inner {\if@@asragged \setraggedparagraphmode\@@align@@rl\@@align@@rr \else
- \setraggedparagraphmode\@@align@@rr\@@align@@rl \fi}
-\installalign \v!outer {\if@@asragged \setraggedparagraphmode\@@align@@rr\@@align@@rl \else
- \setraggedparagraphmode\@@align@@rl\@@align@@rr \fi}
-\installalign \v!left {\if@@asragged\@@align@@rl\else\@@align@@rr\fi}
-\installalign \v!right {\if@@asragged\@@align@@rr\else\@@align@@rl\fi}
-\installalign \v!middle {\if!!doneb\raggedwidecenter\else\@@align@@rc\fi}
-\installalign \v!flushleft {\if!!donea\veryraggedright \else\raggedright\fi}
-\installalign \v!flushright {\if!!donea\veryraggedleft \else\raggedleft \fi}
-\installalign \v!flushouter {\setraggedparagraphmode\raggedleft\raggedright}
-\installalign \v!flushinner {\setraggedparagraphmode\raggedright\raggedleft}
-\installalign \v!center {\if!!doneb\raggedwidecenter\else\@@align@@rc\fi}
-\installalign \v!hanging {\enableprotruding}
-\installalign \v!nothanging {\disableprotruding}
-\installalign \v!hz {\enableadjusting}
-\installalign \v!nohz {\disableadjusting}
-\installalign \v!spacing {\enablespacehandling \enablekernhandling}
-\installalign \v!nospacing {\disablespacehandling\disablekernhandling}
-\installalign \v!hyphenated {\dohyphens}
-\installalign \v!nothyphenated {\nohyphens}
-\installalign \v!new {\@@asraggedfalse} % so new will give you consistency
-\installalign \v!reset {\notragged\normalbottom}
-
-\installalign \v!tolerant {\tolerance3000 \relax}
-\installalign \v!verytolerant {\tolerance4500 \relax}
-\installalign \v!stretch {\emergencystretch\bodyfontsize}
-
-\newcount\hyphenminoffset
-
-\ifx\sethyphenationvariables\undefined \let\sethyphenationvariables\relax \fi
-
-\def\lesshyphens
- {\advance\hyphenminoffset\plusone
- \sethyphenationvariables}
-
-\def\morehyphens
- {\ifcase\hyphenminoffset \else
- \advance\hyphenminoffset\minusone
- \fi
- \sethyphenationvariables}
-
-\installalign \v!lesshyphenation {\lesshyphens}
-\installalign \v!morehyphenation {\morehyphens}
-
-\def\dodosetupalign#1{\csname @@align@@#1\endcsname}
-\def\dodosetupngila#1{\csname @@ngila@@#1\endcsname}
-
-\def\setupalign
- {\dosingleargument\dosetupalign}
-
-\def\dosetupalign[#1]% can be made faster by checking for defined #1
- {\!!doneafalse
- \!!donebfalse
- \processcommacommand[#1]\dodosetupngila
- \processcommacommand[#1]\dodosetupalign}
-
-% \setupalign[flushleft] \input ward \par % lijnlinks
-% \setupalign[right] \input ward \par
-
-% \setupalign[flushright] \input ward \par % lijnrechts
-% \setupalign[left] \input ward \par
-
-% \setupalign[middle] \input ward \par % centreer
-% \setupalign[center] \input ward \par
-
-\def\startalignment
- {\bgroup
- \setupalign}
-
-\def\stopalignment
- {\par
- \egroup}
-
-\chardef\alignstrutmode=1
-
-% see later for the real definition, which in the simple case is:
-
-\newtoks \everyleftofalignedline
-\newtoks \everyrightofalignedline
-
-\def\shiftalignedline#1#2#3#4% left, right, inner, outer
- {\rightorleftpageaction
- {\everyleftofalignedline {\hskip\dimexpr#1+#3\relax}%
- \everyrightofalignedline{\hskip\dimexpr#2+#4\relax}}
- {\everyleftofalignedline {\hskip\dimexpr#1+#4\relax}%
- \everyrightofalignedline{\hskip\dimexpr#2+#3\relax}}}
-
-% \def\doalignline#1#2% \\ == newline
-% {\begingroup
-% \setlocalhsize % new
-% \def\\{\egroup\par\doalignline{#1}{#2}\bgroup}%
-% \dowithnextbox
-% {\noindentation % was \noindent
-% \dontleavehmode % added in marrakesch at TUG 2006
-% \hbox to \localhsize
-% {\ifcase\alignstrutmode\or\strut\fi
-% \the\everyleftofalignedline
-% #1\unhbox\nextbox#2\relax
-% \the\everyrightofalignedline}%
-% \endgroup}
-% \hbox}
-
-\def\doalignline#1#2% \\ == newline
- {\noindentation % was \noindent
- \dontleavehmode % added in marrakesch at TUG 2006\begingroup
- \begingroup
- \setlocalhsize % new
- \def\\{\egroup\par\doalignline{#1}{#2}\bgroup}%
- \dowithnextbox
- {\hbox to \localhsize
- {\ifcase\alignstrutmode\or\strut\fi
- \the\everyleftofalignedline
- #1\unhbox\nextbox#2\relax
- \the\everyrightofalignedline}%
- \endgroup}
- \hbox}
-
-% plain commands
-
-\ifx\undefined\line \def\line {\hbox to\hsize} \fi
-\ifx\undefined\leftline \def\leftline #1{\line{#1\hss}} \fi
-\ifx\undefined\rightline \def\rightline #1{\line{\hss#1}} \fi
-\ifx\undefined\centerline \def\centerline#1{\line{\hss#1\hss}} \fi
-
-% directe commando's
-
-\def\leftaligned {\doalignline \relax \hss }
-\def\midaligned {\doalignline \hss \hss }
-\def\rightaligned{\doalignline \hss \relax}
-
-\let\centeraligned\midaligned
-
-\def\regelbegrensd#1{\limitatetext{#1}{\hsize}{\unknown}} % to be translated
-
-% indirecte commando's
-
-\letvalue{\s!do\v!line\v!left }\leftaligned
-\letvalue{\s!do\v!line\v!right }\rightaligned
-\letvalue{\s!do\v!line\v!middle }\midaligned
-\letvalue{\s!do\v!line\v!flushleft }\rightaligned
-\letvalue{\s!do\v!line\v!flushright}\leftaligned
-\letvalue{\s!do\v!line\v!center }\midaligned
-
-\def\doalignedline#1{\csname\s!do\v!line#1\endcsname}
-
-%D Experimental:
-
-% simple version
-%
-% \def\doxalignline#1#2%
-% {\bgroup
-% \setlocalhsize
-% \def\\{\egroup\par\doxalignline{#1}{#2}\bgroup}% inefficient
-% \dowithnextbox
-% {\noindent\hbox to \localhsize
-% {\ifcase\alignstrutmode\or\strut\fi
-% \signalrightpage
-% \doifrightpageelse{#1\unhbox\nextbox#2}{#2\unhbox\nextbox#1}}%
-% \egroup}
-% \hbox}
-%
-% \setvalue{\s!do\v!regel\v!binnen}{\doxalignline\relax\hss}
-% \setvalue{\s!do\v!regel\v!buiten}{\doxalignline\hss\relax}
-%
-% more extensive:
-
-\def\doxalignline#1#2#3#4#5#6%
- {\noindentation % was \noindent
- \dontleavehmode % added in marrakesch at TUG 2006\begingroup
- \begingroup
- \setlocalhsize
- \def\\{\egroup\par\doxalignline#1#2#3#4#5#6\bgroup}% inefficient
- \dowithnextbox
- {%\noindent moved up
- \hbox to \localhsize
- {#1\hskip\ifdone#2\else#3\fi#4%
- \hbox to \localhsize
- {\the\everyleftofalignedline
- \ifcase\alignstrutmode\or\strut\fi
- \ifdone#5\unhbox\nextbox#6\else#6\unhbox\nextbox#5\fi
- \the\everyrightofalignedline}%
- \hss}%
- \endgroup}
- \hbox}
-
-\def\doxcheckline
- {\signalrightpage\doifrightpageelse\donetrue\donefalse}
-
-\setvalue{\s!do\v!line\v!inner }{\doxalignline\doxcheckline++\zeropoint \relax\hss }
-\setvalue{\s!do\v!line\v!outer }{\doxalignline\doxcheckline++\zeropoint \hss \relax}
-\setvalue{\s!do\v!line\v!innermargin}{\doxalignline\doxcheckline-+\innermargintotal\relax\hss }
-\setvalue{\s!do\v!line\v!outermargin}{\doxalignline\doxcheckline+-\outermargintotal\hss \relax}
-\setvalue{\s!do\v!line\v!inneredge }{\doxalignline\doxcheckline-+\inneredgetotal \relax\hss }
-\setvalue{\s!do\v!line\v!outeredge }{\doxalignline\doxcheckline+-\outeredgetotal \hss \relax}
-\setvalue{\s!do\v!line\v!backspace }{\doxalignline\doxcheckline-+\backspace \relax\hss }
-\setvalue{\s!do\v!line\v!cutspace }{\doxalignline\doxcheckline+-\cutspace \hss \relax}
-
-\setvalue{\s!do\v!line\v!leftmargin }{\doxalignline\donefalse --\leftmargintotal \hss \relax}
-\setvalue{\s!do\v!line\v!rightmargin}{\doxalignline\donefalse ++\rightmargintotal\relax\hss }
-\setvalue{\s!do\v!line\v!leftedge }{\doxalignline\donefalse --\leftedgetotal \hss \relax}
-\setvalue{\s!do\v!line\v!rightedge }{\doxalignline\donefalse ++\rightedgetotal \relax\hss }
-
-% ! ! ! beware, redefining \doalignline gives the wrong results ! ! !
-%
-% \def\doalignline{\doxalignline\donefalse++\zeropoint}
-
-%D Better:
-
-\def\doalignedline#1{\csname\s!do\v!line#1\endcsname}
-
-% \def\alignedline#1#2% setting default
-% {\csname
-% \s!do\v!line
-% \ifundefined{\s!do\v!line#1}#2\else#1\fi
-% \endcsname}
-
-\def\alignedline#1#2% setting default
- {\csname\s!do\v!line\ifcsname\s!do\v!line#1\endcsname#1\else#2\fi\endcsname}
-
-%D ...
-
-\def\dosetuptolerance[#1]%
- {\doifinsetelse\v!vertical{#1}%
- {\ExpandFirstAfter\processallactionsinset
- [#1]
- [ \v!verystrict=>\def\bottomtolerance{},
- \v!strict=>\def\bottomtolerance{.050},
- \v!tolerant=>\def\bottomtolerance{.075},
- \v!verytolerant=>\def\bottomtolerance{.100}]}%
- {\ExpandFirstAfter\processallactionsinset
- [#1]
- [ \v!stretch=>\emergencystretch\bodyfontsize,
- \v!space=>\spaceskip.5em\!!plus.25em\!!minus.25em\relax,
- \v!verystrict=>\tolerance 200,
- \v!strict=>\tolerance1500,
- \v!tolerant=>\tolerance3000,
- \v!verytolerant=>\tolerance4500]}}
-
-\def\setuptolerance
- {\dosingleargument\dosetuptolerance}
-
-% \def\woordrechts
-% {\groupedcommand{\hfill\hbox}{\parfillskip\zeropoint}}
-
-% beware: \wordright{whatever\kern-\rightskip} should work!
-% so, no funny boxing here
-
-\def\dowordright[#1]%
- {% don't change
- \groupedcommand
- {\removeunwantedspaces
- \hfill
- \allowbreak % changed back from \hskip\zeropoint
- \strut
- \hfill
- \quad % decent spacing
- \hbox}
- {\doifelse{#1}\v!right{\kern-\rightskip}{\doifsomething{#1}{\kern-#1}}%
- \parfillskip\zeropoint
- %\finalhyphendemerits\zerocount % yes or no
- \par}}
-
-\def\wordright
- {\dosingleempty\dowordright}
-
-% \dorecurse{5}{something } \wordright{--someone} \endgraf
-% \dorecurse{6}{something } \wordright{--someone} \endgraf
-% \dorecurse{7}{something } \wordright{--someone} \endgraf
-%
-% \dorecurse{5}{something } \wordright{--someone else entirely} \endgraf
-% \dorecurse{6}{something } \wordright{--someone else entirely} \endgraf
-% \dorecurse{7}{something } \wordright{--someone else entirely} \endgraf
-%
-% \wordright[\rightskip]{whatever}
-
-% \simplealignedbox{2cm}{right}{x}
-
-\setvalue{\s!simple\c!align\v!right }#1#2{\hbox to #1{#2\hss}}
-\setvalue{\s!simple\c!align\v!left }#1#2{\hbox to #1{\hss#2}}
-\setvalue{\s!simple\c!align\v!flushright }#1#2{\hbox to #1{\hss#2}}
-\setvalue{\s!simple\c!align\v!flushleft }#1#2{\hbox to #1{#2\hss}}
-\setvalue{\s!simple\c!align\v!middle }#1#2{\hbox to #1{\hss#2\hss}}
-
-\def\simplealignedbox#1{\executeifdefined{\s!simple\c!align#1}{\getvalue{\s!simple\c!align\v!right}}}
-
-%D \macros
-%D {pushindentation,popindentation}
-%D
-%D The pushing and popping is done by:
-
-\newbox\indentationboxA
-\newbox\indentationboxB
-
-\def\pushindentation
- {\bgroup
- \ifhmode
- \unskip
- \setbox\indentationboxA\lastbox % get \strut if present
- \unskip
- \setbox\indentationboxB\lastbox % get \indent generated box
- \unskip
- \else
- \hskip\zeropoint % switch to horizontal mode
- \unskip
- \setbox\indentationboxA\lastbox % get \indent generated box
- \setbox\indentationboxB\emptybox
- \fi}
-
-\def\popindentation
- {\box\indentationboxB\box\indentationboxA % put back the boxes
- \egroup}
-
-%D The only complication lays in \type{\strut}. In \PLAIN\
-%D \TEX\ a \type{\strut} is defined as:
-%D
-%D \starttyping
-%D \def\strut%
-%D {\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
-%D \stoptyping
-%D
-%D But what is a \type{\strut}? Normally it's a rule of width
-%D zero, but when made visual, it's a rule and a negative skip.
-%D The mechanism for putting things in the margins described
-%D here cannot handle this situation very well. One
-%D characteristic of \type{\strut} is that the \type{\unhcopy}
-%D results in entering horizontal mode, which in return leads
-%D to some indentation.
-%D
-%D To serve our purpose a bit better, the macro \type{\strut}
-%D can be redefined as:
-%D
-%D \starttyping
-%D \def\strut
-%D {\relax\ifmmode\else\hskip0pt\fi\copy\strutbox}
-%D \stoptyping
-%D
-%D Or more compatible:
-%D
-%D \starttyping
-%D \def\strut
-%D {\relax\ifmmode
-%D \copy\strutbox
-%D \else
-%D \bgroup\setbox\strutbox=\normalhbox{\box\strutbox}\unhcopy\strutbox\egroup
-%D \fi}
-%D \stoptyping
-%D
-%D In \CONTEXT\ however we save some processing time by putting
-%D an extra \type{\hbox} around the \type{\strutbox}.
-
-% moved from page-lin.tex to here (due to visualization added
-% in august 2003)
-%
-% \unexpanded \def\crlf
-% {\ifhmode\unskip\else\strut\fi\ifcase\raggedstatus\hfil\fi\break}
-
-\unexpanded \def\crlf
- {\ifhmode
- \unskip
- \prewordbreak\crlfplaceholder
- \ifcase\raggedstatus\hfil\or\or\or\hfil\fi
- \break
- \else
- \crlfplaceholder
- \endgraf
- \fi}
-
-\def\crlfplaceholder
- {\strut}
-
-\def\settestcrlf
- {\def\crlfplaceholder
- {\hbox to \zeropoint
- {\strut{\infofont\kern.25em}\lohi{\infofont CR}{\infofont LF}\hss}}}
-
-%D \starttyping
-%D % \setuplayout[gridgrid=yes] \showgrid
-%D
-%D \startbuffer
-%D test 1\crlf
-%D test 2\crlf
-%D
-%D \crlf test 3
-%D
-%D test 4\crlf
-%D test 5
-%D
-%D \crlf
-%D \crlf
-%D \crlf
-%D test 6
-%D \stopbuffer
-%D
-%D \hbox
-%D {\hsize5em
-%D \ruledvtop{\getbuffer}\enspace
-%D \ruledvtop{\showstruts\getbuffer}\enspace
-%D \hsize15em \setuptyping[before=,after=]%
-%D \ruledvtop{\typebuffer}}
-%D \stoptyping
-
-\def\opeenregel % to be used grouped
- {\def\crlf{\removelastspace\space}\let\\\crlf}
-
-\def\showstruts
- {\setteststrut
- \settestcrlf}
-
-\def\definehspace
- {\dotripleempty\dodefinehspace}
-
-\def\dodefinehspace[#1][#2][#3]% #1 = optional namespace
- {\ifthirdargument
- \setvalue{\??hs#1:#2}{#3}%
- \else
- \setvalue{\??hs:#1}{#2}%
- \fi}
-
-\unexpanded\def\hspace
- {\dodoubleempty\dohspace}
-
-%\def\dohspace[#1][#2]%
-% {\ifhmode
-% \removeunwantedspaces
-% \hskip
-% \ifsecondargument
-% \hspaceamount{#1}{#2}%
-% \else
-% \hspaceamount\empty{\iffirstargument#1\else\s!default\fi}%
-% \fi
-% \expandafter\ignorespaces
-% \fi}
-
-\def\dohspace[#1][#2]%
- {\ifsecondargument
- \dodohspace[#1][#2]%
- \else\iffirstargument
- \hspace[][#1]%
- \else
- \hspace[][\s!default]%
- \fi\fi}
-
-% \def\dodohspace[#1][#2#3]%
-% {\ifhmode
-% \removeunwantedspaces
-% \doifelse{#2}{-}
-% {{\scratchskip\hspaceamount{#1}{#3}\hskip-\scratchskip}}
-% {\hskip\hspaceamount{#1}{#2#3}}%
-% \expandafter\ignorespaces
-% \fi}
-%
-% not needed, tex handles -- as +
-
-\def\dodohspace[#1][#2]%
- {\ifhmode
- \removeunwantedspaces
- \hskip\hspaceamount{#1}{#2}%
- \expandafter\ignorespaces
- \fi}
-
-\def\hspaceamount#1#2%
- {\executeifdefined{\??hs#1:#2}{\executeifdefined{\??hs:#2}\zeropoint}}
-
-\definehspace [\v!small] [.25\emspaceamount]
-\definehspace [\v!medium] [.5\emspaceamount]
-\definehspace [\v!big] [1\emspaceamount]
-\definehspace [\v!normal] [1\spaceamount]
-\definehspace [\v!default] [\spaceamount]
-
-%D Taken from Taco's math module (cq. \AMS\ macros), but
-%D adapted to \type {\hspace}:
-
-\unexpanded\def\textormathspace#1#2#3%
- {\ifmmode\mskip#1#2\else\kern#1\hspaceamount\empty{#3}\fi\relax}
-
-\newmuskip\hairmuskip \hairmuskip=.15mu
-
-\def\hairspace {\textormathspace+\hairmuskip{.5}}
-\def\thinspace {\textormathspace+\thinmuskip 1}
-\def\medspace {\textormathspace+\medmuskip 2}
-\def\thickspace {\textormathspace+\thickmuskip3}
-\def\neghairspace {\textormathspace-\thinmuskip{.5}}
-\def\negthinspace {\textormathspace-\thinmuskip 1}
-\def\negmedspace {\textormathspace-\medmuskip 2}
-\def\negthickspace{\textormathspace-\thickmuskip3}
-
-% needed for unicode:
-
-\def\twoperemspace {\hskip\dimexpr\emwidth/2\relax} % == \enspace
-\def\threeperemspace {\hskip\dimexpr\emwidth/3\relax}
-\def\fourperemspace {\hskip\dimexpr\emwidth/4\relax}
-\def\fiveperemspace {\hskip\dimexpr\emwidth/5\relax} % goodie
-\def\sixperemspace {\hskip\dimexpr\emwidth/6\relax}
-\def\figurespace {\begingroup\setbox\scratchbox\hbox{0}\hskip\wd\scratchbox\endgroup} % there is a command for this
-\def\punctuationspace {\begingroup\setbox\scratchbox\hbox{.}\hskip\wd\scratchbox\endgroup}
-\def\ideographicspace {\hskip\dimexpr\emwidth/1\relax}
-\def\ideographichalffillspace{\hskip\dimexpr\emwidth/2\relax}
-%def\nobreakspace {\penalty\plustenthousand\space}
-\def\nobreakspace {\penalty\plustenthousand\kern\interwordspace}
-\def\narrownobreakspace {\penalty\plustenthousand\thinspace}
-%def\zerowidthnobreakspace {\penalty\plustenthousand\hskip\zeropoint}
-\def\zerowidthnobreakspace {\penalty\plustenthousand\kern\zeropoint}
-\def\zerowidthspace {\hskip\zeropoint}
-
-\definehspace[.5][.1250\emspaceamount] % could also be [.1250\spaceamount]
-\definehspace[1] [.1667\emspaceamount]
-\definehspace[2] [.2222\emspaceamount]
-\definehspace[3] [.2777\emspaceamount]
-
-\let \, \thinspace
-\let \: \medspace
-\let \; \thickspace
-\let \! \negthinspace
-
-% this will become an alternative bunch of \blank settings
-%
-% \startlines
-% \scratchskip=.23pt plus 10pt minus 4pt \relax \number\scratchskip \space \the\scratchskip
-% \setsimplifiedskip\scratchskip1 \number\scratchskip \space \the\scratchskip
-% \setsimplifiedskip\scratchskip2 \number\scratchskip \space \the\scratchskip
-% \getsimplifiedskip\scratchskip\scratchcounter \number\scratchcounter
-% \stoplines
-%
-% \hrule width10cm \endgraf
-% \discardedskip{10pt}
-% \retainedskip {4pt}
-% \discardedskip {5pt}
-% \hrule width10cm \endgraf
-% \blockedskip{0pt}
-% \discardedskip{10pt}
-% \retainedskip {4pt}
-% \discardedskip {5pt}
-% \hrule width10cm \endgraf
-% \frozenskip {4cm}
-% \hrule width10cm \endgraf
-% \vskip10pt
-% \hrule width10cm \endgraf
-
-% ! ! ! etex only, evt splitskip macro gebruiken (syst-new)
-
-\newskip\simplifiedskip
-\newskip\simplifiedcounter
-
-\chardef\@@discardedskip1
-\chardef\@@retainedskip 2
-\chardef\@@forcedskip 3
-\chardef\@@blockedskip 4
-\chardef\@@frozenskip 5 % after heads, no break
-
-\def\setsimplifiedskip#1#2%
- {#1\dimexpr(10\dimexpr(#1/10)) plus \gluestretch#1 minus \glueshrink#1\relax
- \advance#1\numexpr(#2)sp\relax}
-
-\def\getsimplifiedskip#1#2%
- {\simplifiedskip#1\relax
- \ifzeropt\simplifiedskip % \ifdim\simplifiedskip=\zeropoint
- #2\zerocount
- \else
- \simplifiedcounter\dimexpr10\dimexpr#1/10\relax\relax
- \advance\simplifiedskip-\simplifiedcounter
- #2\number\simplifiedskip\relax
- \fi}
-
-\def\conditionalskip#1#2%
- {\scratchskip#1\relax
- \setsimplifiedskip\scratchskip#2\relax
- \vskip\scratchskip\relax}
-
-\def\defrostskip
- {\scratchskip\lastskip\penalty50000\normalvskip-\scratchskip\penalty50000\relax}
-
-\def\frozenskip#1%
- {\endgraf
- \ifvmode
- \getsimplifiedskip\lastskip\scratchcounter
- \ifdim\lastskip>#1\else
- \defrostskip
- \conditionalskip{#1}\@@frozenskip
- \fi
- \fi}
-
-\def\discardedskip#1%
- {\endgraf
- \ifvmode
- \getsimplifiedskip\lastskip\scratchcounter
- \ifcase\scratchcounter
- \conditionalskip{#1}\@@discardedskip
- \or % discard
- \ifdim\lastskip>#1\else
- \normalvskip-\lastskip
- \conditionalskip{#1}\@@discardedskip
- \fi
- \or % retain
- \ifdim\lastskip>#1\else
- \normalvskip-\lastskip
- \conditionalskip{#1}\@@discardedskip
- \fi
- \or % forced
- \conditionalskip{#1}\@@discardedskip
- \or % ignored
- \or % frozen
- \ifdim\lastskip>#1\else
- \defrostskip
- \conditionalskip{#1}\@@frozenskip
- \fi
- \else\ifdim#1=\zeropoint\else
- \vskip#1\relax
- \fi\fi
- \fi}
-
-\def\retainedskip#1%
- {\endgraf
- \ifvmode
- \getsimplifiedskip\lastskip\scratchcounter
- \ifcase\scratchcounter
- \conditionalskip{#1}\@@retainedskip
- \or % discard
- \normalvskip-\lastskip
- \conditionalskip{#1}\@@retainedskip
- \or % retain
- \ifdim\lastskip>#1\else
- \normalvskip-\lastskip
- \conditionalskip{#1}\@@retainedskip
- \fi
- \or % forced
- \conditionalskip{#1}\@@retainedskip
- \or % ignored
- \or % frozen
- \ifdim\lastskip>#1\else
- \defrostskip
- \conditionalskip{#1}\@@frozenskip
- \fi
- \else\ifdim#1=\zeropoint\else
- \vskip#1\relax
- \fi\fi
- \fi}
-
-\def\forcedskip#1%
- {\endgraf
- \ifvmode
- \conditionalskip{#1}\@@forcedskip
- \fi}
-
-\def\blockedskip#1%
- {\endgraf
- \ifvmode
- \getsimplifiedskip\lastskip\scratchcounter
- \ifcase\scratchcounter
- \conditionalskip{#1}\@@blockedskip
- \or % discard
- \conditionalskip{#1}\@@blockedskip
- \or % retain
- \conditionalskip{#1}\@@blockedskip
- \or % forced
- \conditionalskip{#1}\@@blockedskip
- \or % ignored
- \or % frozen
- \ifdim\lastskip>#1\else
- \defrostskip
- \conditionalskip{#1}\@@frozenskip
- \fi
- \else\ifdim#1=\zeropoint\else
- \vskip#1\relax
- \fi\fi
- \fi}
-
-% beware, changing this will break some code (like pos/backgrounds)
-
-\newtoks\everyfirstparagraphintro
-\newtoks\everynextparagraphintro
-\newtoks\@@everyparagraphtoks
-
-\chardef\everyparagraphintro\zerocount
-
-\def\setupparagraphintro
- {\dodoubleempty\dosetupparagraphintro}
-
-\def\dosetupparagraphintro[#1][#2]%
- {\processallactionsinset
- [#1]
- [ \v!reset=>\global\chardef\everyparagraphintro\zerocount
- \global\everyfirstparagraphintro\emptytoks
- \global\everynextparagraphintro \emptytoks,
- \v!first=>\global\chardef\everyparagraphintro\plusone
- \doglobal\appendtoks#2\to\everyfirstparagraphintro,
- \v!next=>\ifcase\everyparagraphintro\global\chardef\everyparagraphintro\plusone\fi
- \doglobal\appendtoks#2\to\everynextparagraphintro,
- \v!each=>\ifcase\everyparagraphintro\global\chardef\everyparagraphintro\plustwo\fi
- \doglobal\appendtoks#2\to\everyfirstparagraphintro
- \doglobal\appendtoks#2\to\everynextparagraphintro]}
-
-%D We can say:
-%D
-%D \starttyping
-%D \setupparagraphintro[first][\index{Knuth}]
-%D \stoptyping
-%D
-%D Maybe more convenient is:
-%D
-%D \starttyping
-%D \flushatparagraph{\index{Zapf}}
-%D \stoptyping
-
-\def\flushatparagraph#1%
- {\global\chardef\everyparagraphintro\plusone
- \global\appendtoks{#1}\to\everyfirstparagraphintro}
-
-% \def\doinsertparagraphintro
-% {\ifcase\everyparagraphintro\relax
-% % no data
-% \@@everyparagraphtoks\emptytoks
-% \or
-% % first data
-% \global\chardef\everyparagraphintro\plustwo
-% \@@everyparagraphtoks\everyfirstparagraphintro
-% \global\everyfirstparagraphintro\emptytoks
-% \or
-% % next data
-% \@@everyparagraphtoks\everynextparagraphintro
-% \fi
-% \the\@@everyparagraphtoks}
-
-\def\doinsertparagraphintro
- {\begingroup
- \everypar\emptytoks
- \ifcase\everyparagraphintro\relax
- % no data
- \@@everyparagraphtoks\emptytoks
- \or
- % first data
- \global\chardef\everyparagraphintro\plustwo
- \@@everyparagraphtoks\everyfirstparagraphintro
- \global\everyfirstparagraphintro\emptytoks
- \or
- % next data
- \@@everyparagraphtoks\everynextparagraphintro
- \fi
- \the\@@everyparagraphtoks
- \endgroup}
-
-\def\insertparagraphintro
- {\ifcase\everyparagraphintro\else\@EA\doinsertparagraphintro\fi}
-
-% \appendtoksonce\insertparagraphintro\to\everypar % should come last
-
-%D \starttyping
-%D \setupparagraphintro[first][\hbox to 3.5em{\tt FIRST \hss}]
-%D \setupparagraphintro[first][\hbox to 3.5em{\tt TSRIF \hss}]
-%D \setupparagraphintro[next] [\hbox to 3.5em{\tt NEXT \hss}]
-%D \setupparagraphintro[next] [\hbox to 3.5em{\tt TXEN \hss}]
-%D \setupparagraphintro[each] [\hbox to 3.0em{\tt EACH \hss}]
-%D \setupparagraphintro[each] [\hbox to 3.0em{\tt HCEA \hss}]
-%D
-%D some paragraph \par
-%D some paragraph \par
-%D some paragraph \par
-%D
-%D \definelabel[parnumber]
-%D
-%D \setupparagraphintro[reset,each][\inleft{\slxx\parnumber}]
-%D
-%D some paragraph \par
-%D some paragraph \par
-%D some paragraph \par
-%D \stoptyping
-
-%D \macros
-%D {flushatnextpar}
-%D
-%D This macro collects data that will be flushed at the next paragraph.
-%D By using this macro you can avoid interfering nodes (writes, etc).
-
-\newbox \postponednodedata
-
-\def\flushatnextpar
- {\bgroup
- \dowithnextbox
- {\global\setbox\postponednodedata\hbox{\box\postponednodedata\box\nextbox}\egroup}%
- \hbox}
-
-\def\flushpostponednodedata
- {\ifvoid\postponednodedata\else
- \hbox{\smashedbox\postponednodedata}%
- \fi}
-
-% Very nasty but needed for margin stuff inside colored
-% paragraphs.
-
-\let\normalvadjust\vadjust
-
-% \def\graphicvadjust % bad, those low level color calls here
-% {\dowithnextbox
-% {\normalvadjust
-% {\dostartgraphicgroup
-% \localstarttextcolor
-% \unvbox\nextbox
-% \localstoptextcolor
-% \dostopgraphicgroup}}%
-% \vbox}
-
-% test this prikkels/pascal margin text before heads (mode
-% 1) as well as uitwerkingen (mode 2)
-
-%chardef\graphicvadjustmode=0 % fake
-%chardef\graphicvadjustmode=1 % normal
-\chardef\graphicvadjustmode=2 % normal + compensate (== default)
-
-\def\graphicvadjust % bad, those low level color calls here
- {\dowithnextboxcontent
- {\forgetall}
- {\ifcase\graphicvadjustmode \@EA \fakedvadjust \else \@EA\normalvadjust \fi
- {\dostartgraphicgroup % don't ask
- \localstarttextcolor
- \unvbox\nextbox
- \localstoptextcolor % don't ask
- \dostopgraphicgroup
- \ifcase\graphicvadjustmode \or \or
- % corrects for one line paragraphs
- \nointerlineskip
- \kern-\struttotal
- \nointerlineskip
- \verticalstrut
- \fi}}%
- \vbox}
-
-%D This works only in a properly strutted line, and is meant
-%D for deeply burried operations, like in heads.
-
-\def\fakedvadjust
- {\dowithnextbox
- {\setbox\nextbox\hbox{\llap{\lower\strutdepth\box\nextbox}}%
- \smashedbox\nextbox}%
- \vtop}
-
-\def\flexiblespaceamount#1#2#3%
- {#1\interwordspace
- \!!plus#2\interwordstretch
- \!!minus#3\interwordshrink}
-
-\def\fixedspaceamount#1%
- {#1\interwordspace}
-
-%D This is a dangerous feature because it makes the \TEX\ source
-%D less portable, i.e. any parser now needs to apply exactly the
-%D same algorithm when it wants to interpret the source. We
-%D strongly recommend not to mention this feature in manuals! It's
-%D provided for users who are hooked to such a mechanism.
-%D
-%D \starttyping
-%D \setupsorting[logo][next=\autoinsertnextspace] \logo[TEX]{\TeX}
-%D
-%D bla bla \TEX bla bla \TEX (bla) bla (\TEX)
-%D \stoptyping
-
-\def\autoinsertnextspace{\futurelet\nexttoken\doautoinsertnextspace}
-
-\def\doautoinsertnextspace % slightly extended version of a user supplied macro
- {\ifx\nexttoken \bgroup\else \ifx\nexttoken\begingroup\else
- \ifx\nexttoken \egroup\else \ifx\nexttoken \endgroup\else
- \ifx\nexttoken \/\else \ifx\nexttoken /\else \ifx\nexttoken ~\else
- \ifx\nexttoken \ \else \ifx\nexttoken \blankspace\else \ifx\nexttoken \space\else
- \ifx\nexttoken .\else \ifx\nexttoken ,\else
- \ifx\nexttoken !\else \ifx\nexttoken ?\else
- \ifx\nexttoken :\else \ifx\nexttoken ;\else
- \ifx\nexttoken '\else \ifx\nexttoken "\else
- \ifx\nexttoken )\else \ifx\nexttoken -\else \ifx\nexttoken |\else
- \ifx\nexttoken \%\else \ifx\nexttoken \&\else
- \space
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
-
-% moved from page-lin
-
-\def\installspacehandler#1#2% needs to set \obeyedspace
- {\setvalue{\??sr#1}{#2}}
-
-\installspacehandler \v!on
- {\obeyspaces
- \def\obeyedspace{\mathortext\normalspace{\dontleavehmode{\tt\controlspace}}}%
- \let\ =\obeyedspace}
-
-\installspacehandler \v!yes
- {\obeyspaces
- \def\obeyedspace{\mathortext\normalspace{\dontleavehmode \normalspace }}%
- \let\ =\obeyedspace}
-
-\installspacehandler \v!off % == default
- {\normalspaces
- \let\obeyedspace\normalspace
- \let\ =\normalspaceprimitive} % was \normalspace
-
-\installspacehandler \v!fixed
- {\obeyspaces
- \def\obeyedspace{\mathortext\normalspace{\dontleavehmode\fixedspace}}%
- \let\ =\obeyedspace}
-
-\def\activatespacehandler#1%
- {\executeifdefined{\??sr#1}{\activatespacehandler\v!off}}
-
-% moved from page-lin
-
-%D When spacing is active we need to handle commands in
-%D a special way:
-%D
-%D \starttyping
-%D \setuplines[space=on]
-%D
-%D \startlines
-%D Let's talk about this{\ttsl\gobbleoneargument or}that.
-%D \stoplines
-%D
-%D \startlines
-%D Let's talk about this{\getvalue{ttsl}or}that.
-%D \stoplines
-%D \stoptyping
-%D
-%D One can indent in several ways:
-%D
-%D \starttyping
-%D \setupindenting[medium] \setuplines[indenting=odd] % no yes odd even
-%D
-%D \startlines
-%D first
-%D second
-%D third
-%D fourth
-%D \stoplines
-%D \stoptyping
-
-\def\setuplines
- {\dodoubleargument\getparameters[\??rg]}
-
-\def\startlines
- {\@@rgbefore
- \pushmacro\checkindentation
- \whitespace
- %\page[\v!preference]} gaat mis na koppen, nieuw: later \nobreak
- \begingroup
- \setupindenting[\@@rgindenting]%
- \typesettinglinestrue
- \setupwhitespace[\v!none]%
- \obeylines
- \ignorespaces
- \gdef\afterfirstobeyedline % tzt two pass, net als opsomming
- {\gdef\afterfirstobeyedline
- {\nobreak
- \doifnot\@@rgoption\v!packed{\global\let\afterfirstobeyedline\relax}}}%
- \def\obeyedline
- {\par
- \futurelet\next\dobetweenthelines}%
- \activatespacehandler\@@rgspace
- \GotoPar}
-
-\def\stoplines
- {\endgroup
- \popmacro\checkindentation
- \@@rgafter}
-
-\def\dobetweenthelines
- {\doifmeaningelse\next\obeyedline
- {\@@rginbetween}
- {\afterfirstobeyedline}}
-
-\setuplines
- [\c!option=,
- \c!before=\blank,
- \c!after=\blank,
- \c!inbetween=\blank,
- \c!indenting=\v!no,
- \c!space=\v!default]
-
-\def\emptylines
- {\dosingleempty\doemptylines}
-
-\def\doemptylines[#1]%
- {\endgraf\dorecurse{\iffirstargument#1\else3\fi}\crlf}
-
-\setupwhitespace
- [\v!none]
-
-% still old-fashioned
-
-\indenting
- [\v!never]
-
-\setupindenting
- [\v!none]
-
-\setupblank
- [\v!standard,
- \v!big]
-
-\defineblank[\v!default] [\currentblank]
-\defineblank[\v!before] [\v!default]
-\defineblank[\v!inbetween][\v!default]
-\defineblank[\v!after] [\v!before]
-
-\setupinterlinespace
- [\c!minheight=0pt, % only special purpose
- \c!mindepth=0pt, % only special purpose
- \c!height=.72,
- \c!depth=.28,
- \c!top=1.0,
- \c!bottom=0.4,
- \c!distance=1pt,
- \c!line=2.8ex,
- \c!stretch=0]
-
-\setupnarrower
- [\c!before=\endgraf,
- \c!after=\endgraf,
- \c!left=1.5em,
- \c!right=1.5em,
- \c!middle=1.5em]
-
-\setuptolerance
- [\v!horizontal,\v!verystrict]
-
-\setuptolerance
- [\v!vertical,\v!strict]
-
-\setupalign
- [\v!bottom,
- \v!width]
-
-\setupspacing
- [\v!packed]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spac-grd.mkii b/Master/texmf-dist/tex/context/base/mkii/spac-grd.mkii
deleted file mode 100644
index 97699de51c4..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spac-grd.mkii
+++ /dev/null
@@ -1,1074 +0,0 @@
-%D \module
-%D [ file=core-grd,
-%D version=1998.03.10,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Grid Snapping (Experimental),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Core Macros / Grid Snapping}
-
-\unprotect
-
-%D Moved from supp-box:
-
-%D \macros
-%D {startbaselinecorrection,baselinecorrection,
-%D showbaselinecorrection,offbaselinecorrection}
-%D
-%D Spacing around ruled boxes can get pretty messed up. The
-%D next macro tries as good as possible to fix this.
-%D
-%D \startbuffer[1]
-%D \startbaselinecorrection
-%D \ruledhbox{Rule Brittanica}
-%D \stopbaselinecorrection
-%D \stopbuffer
-%D
-%D \typebuffer[1]
-%D
-%D The macros put some white space around the box:
-%D
-%D \getbuffer[1]
-%D
-%D A simple alternative is \type {\baselinecorrection}, which
-%D only looks at the previous line.
-%D
-%D \startbuffer[2]
-%D \baselinecorrection
-%D \ruledhbox{Rule Brittanica}
-%D \baselinecorrection
-%D \stopbuffer
-%D
-%D \typebuffer[2]
-%D
-%D This time the last preceding line gets a correction,%
-%D dependant on the depth.
-%D
-%D \getbuffer[2]
-%D
-%D One can make the correction visible by saying \type
-%D {\showbaselinecorrection}. Part of the correction is
-%D calculated from the dimensions of a~(. One can disble the
-%D correction by calling \type {\offbaselinecorrection}.
-%D
-%D When visualize the first example looks like:
-%D
-%D {\showbaselinecorrection\getbuffer[1]}
-%D
-%D and the second one comes out as:
-%D
-%D {\showbaselinecorrection\getbuffer[2]}
-
-% \definecolor[GridLineColor][red]
-% \definecolor[GridTextColor][blue]
-
-\definepalet
- [grid]
- [ one=red,
- two=green,
- three=blue,
- four=gray]
-
-\def\setbaselinecorrections
- {\setbox0\hbox{\setstrut\strut}%
- \setbox2\hbox{(}%
- \dimen0\ht0\advance\dimen0 -\ht2
- \ifdim\dimen0<\zeropoint\dimen0\zeropoint\fi
- \dimen2\dp0\advance\dimen2 -\dp2
- \ifdim\dimen2<\zeropoint\dimen2\zeropoint\fi
- \edef\thetopbaselinecorrection {\the\dimen0}\dimen0-\dimen0
- \edef\thebotbaselinecorrection {\the\dimen2}\dimen2-\dimen2
- \edef\thenegtopbaselinecorrection{\the\dimen0}%
- \edef\thenegbotbaselinecorrection{\the\dimen2}}
-
-\def\dotopbaselinecorrection {\kern\thetopbaselinecorrection}
-\def\dobotbaselinecorrection {\kern\thebotbaselinecorrection}
-\def\donegtopbaselinecorrection{\kern\thenegtopbaselinecorrection}
-\def\donegbotbaselinecorrection{\kern\thenegbotbaselinecorrection}
-
-\def\showbaselinecorrection
- {\def\dobaselinecorrection % visualization is not watertight!
- {\bgroup
-\ifdim\prevdepth>\zeropoint\kern-\prevdepth\fi
- \setbox0\null
- \wd0\hsize
- \dp0\strutdp
- \nointerlineskip
- \forgetall
- \ruledvbox{\box0}%
- \egroup
- \prevdepth\strutdp}%
- \def\dotopbaselinecorrection
- {\hrule\!!height\thetopbaselinecorrection}%
- \def\dobotbaselinecorrection
- {\hrule\!!height\thebotbaselinecorrection}}
-
-\def\dobaselinecorrection
- {\ifdim\prevdepth>\zeropoint\kern-\prevdepth\fi
- \kern\strutdp
- \prevdepth\strutdp}
-
-% \def\baselinecorrection
-% {\endgraf
-% \ifvmode
-% \ifdim\prevdepth<\maxdimen
-% \ifdim\prevdepth<\zeropoint \else
-% \ifdim\prevdepth<\strutdp
-% \dobaselinecorrection
-% \fi
-% \fi
-% \fi
-% \fi}
-
-\def\baselinecorrection
- {\endgraf
- \ifvmode
- \ifdim\prevdepth<\maxdimen
- \ifdim\prevdepth<\zeropoint \else
- \ifdim\prevdepth<\strutdepth \relax
- \pushlastnode
- \dobaselinecorrection
- \poplastnode
- \fi
- \fi
- \fi
- \fi}
-
-\def\pagebaselinecorrection
- {\ifdim\pagegoal<\maxdimen
- \ifdim\pagetotal>\lineheight % or \topskip
- \scratchdimen\pagetotal
- \advance\scratchdimen\lineheight
- \ifdim\scratchdimen<\pagegoal
- \baselinecorrection
- \fi
- \fi
- \fi}
-
-% Beware, keep this one as it is, see for instance module
-% m-steps.tex, where we apply a \localhsize to the \vbox, in
-% order to follow narrower and side floats !
-
-% \def\startbaselinecorrection
-% {\baselinecorrection
-% \ifvmode
-% \bgroup
-% \setbox\scratchbox\vbox\bgroup
-% \ignorespaces
-% \let\stopbaselinecorrection\dostopbaselinecorrection
-% \else
-% \let\stopbaselinecorrection\relax
-% \fi}
-
-% \def\dostopbaselinecorrection % I have to check columns yet.
-% {\endgraf
-% \egroup
-% \topbaselinecorrection
-% \box\scratchbox
-% \botbaselinecorrection
-% \egroup}
-
-% \let\stopbaselinecorrection=\relax
-
-\def\startbaselinecorrection
- {\bgroup
- \let\stopbaselinecorrection\egroup
- \ifcase\baselinecorrectionmode
- \or % normal
- \baselinecorrection
- \ifvmode
- \setbox\scratchbox\vbox\bgroup\ignorespaces
- \let\stopbaselinecorrection\donormalstopbaselinecorrection
- \fi
- \or % off
- \or % force
- \baselinecorrection
- \ifvmode
- \setbox\scratchbox\vbox\bgroup\ignorespaces
- \let\stopbaselinecorrection\doforcedstopbaselinecorrection
- \fi
- \fi}
-
-\let\stopbaselinecorrection\relax
-
-\def\donormalstopbaselinecorrection % I have to check columns yet.
- {\egroup
- \topbaselinecorrection
- \box\scratchbox
- \botbaselinecorrection
- \egroup}
-
-\def\doforcedstopbaselinecorrection % I have to check columns yet.
- {\egroup
- \forcedtopbaselinecorrection
- \box\scratchbox
- \forcedbotbaselinecorrection
- \egroup}
-
-%D We do a bit more checking than needed. The pageborder check
-%D is not needed, but I want to look the visualization as good
-%D as possible too.
-
-% \def\offbaselinecorrection % Can be used inside correction.
-% {\def\startbaselinecorrection{\bgroup\let\stopbaselinecorrection\egroup}}
-
-\chardef\baselinecorrectionmode\plusone
-
-\def\onbaselinecorrection {\chardef\baselinecorrectionmode\plusone }
-\def\offbaselinecorrection {\chardef\baselinecorrectionmode\plustwo }
-\def\forcebaselinecorrection{\chardef\baselinecorrectionmode\plusthree}
-
-%D \macros
-%D {topbaselinecorrection,botbaselinecorrection}
-%D
-%D The actual top and bottom corrections are implemented as:
-
-% \def\topbaselinecorrection
-% {\ifvmode \ifdim\pagegoal<\maxdimen
-% \bgroup
-% \setbaselinecorrections
-% \whitespace
-% \nointerlineskip
-% \dotopbaselinecorrection
-% \egroup
-% \fi \fi}
-
-
-\def\topbaselinecorrection
- {\ifvmode \ifdim\pagegoal<\maxdimen
- \forcedtopbaselinecorrection
- \fi \fi}
-
-\def\forcedtopbaselinecorrection
- {\ifvmode
- \bgroup
- \setbaselinecorrections
- \whitespace
- \nointerlineskip
- \dotopbaselinecorrection
- \egroup
- \fi}
-
-\def\botbaselinecorrection
- {\ifvmode
- \bgroup
- \setbaselinecorrections
- \dobotbaselinecorrection
- \allowbreak % new, otherwise problems when many in a row
- \prevdepth\strutdp
- \egroup
- \fi}
-
-\let\forcedbotbaselinecorrection\botbaselinecorrection
-
-%D Still very experimental and therefore undocumented.
-
-\newif\ifgridsnapping % UNDER DEVELOPMENT, USE WITH CARE
-\newif\ifforcepresnap \forcepresnaptrue % false in mixed single/double
-\newif\ifstrutsnapping \strutsnappingtrue % sometimes handy to be false
-
-\def\positiveextrasnap {\gdef\extrasnapsign{+}}
-\def\negativeextrasnap {\gdef\extrasnapsign{-}}
-
-\def\extrasnapreset {\global\chardef\@@extrasnap0
- \positiveextrasnap}
-\def\extrasnapbefore {\global\chardef\@@extrasnap1 }
-\def\extrasnaparound {\global\chardef\@@extrasnap2 }
-\def\extrasnapafter {\global\chardef\@@extrasnap3 }
-
-\def\enablepresnapcorrection {\global\chardef\@@presnap\zerocount}
-\def\disablepresnapcorrection {\global\chardef\@@presnap\plusone}
-
-\extrasnapreset \enablepresnapcorrection
-
-\newif\iftracegridsnapping
-\newif\ifshowgridboxes
-\newif\ifshowfuzzyskips
-
-\let\showgridboxes\showgridboxestrue
-
-\def\showgridsnapping
- {\tracegridsnappingtrue
- \showgridboxestrue}
-
-\chardef\@@alignsnap =0
-\chardef\@@alignsnapbox =0
-\chardef\@@alignsnapmethod=0
-
-\let\presnapskip \!!zeropoint \def\presnap {-}
-\let\postsnapskip\!!zeropoint \let\postsnap\presnap
-
-\newcount\currentgridsnap
-
-\def\tracedsnapping
- {\iftracegridsnapping
- \llap
- {\startlayoutcomponent{gridsnaps}{grid snaps}%
- \infofont
- \global\advance\currentgridsnap\plusone
- \color[grid:three]{\vl\presnapskip
- \vl\presnap
- \vl\postsnap
- \ifcase\@@alignsnapbox\relax
- \vl\ifcase\@@extrasnap
- 00\or
- \extrasnapsign0\or
- \extrasnapsign\extrasnapsign\or
- 0\extrasnapsign\fi
- \fi
- \vl\the\currentgridsnap\vl}%
- \stoplayoutcomponent}%
- \fi}
-
-\def\snaptogrid% [#1]#2 -> #2 == \hbox|\vbox
- {\dosingleempty\dosnaptogrid}
-
-% \def\dosnaptogrid[#1]%
-% {\ifgridsnapping
-% \iffirstargument\doifsomething{#1}{\verplaatsopgrid[#1]}\fi
-% \expandafter\dodosnaptogrid
-% \fi}
-
-% \def\dosnaptogrid[#1]%
-% {\resetlastlinewidth % maybe in more places, otherwise spacing gets messed up
-% \ifgridsnapping
-% \iffirstargument\doifsomething{#1}{\moveongrid[#1]}\fi
-% \expandafter\dodosnaptogrid
-% \fi}
-
-\def\dosnaptogrid[#1]%
- {\resetlastlinewidth % maybe in more places, otherwise spacing gets messed up
- \doifinsetelse\v!force{#1}%
- {\moveongrid[#1]%
- \dodosnaptogrid}
- {\ifgridsnapping
- \doifsomething{#1}{\moveongrid[#1]}%
- \expandafter\dodosnaptogrid
- \fi}}
-
-% \def\forcedpresnapcorrection % test this on 'details'
-% {\ifforcepresnap
-% \ifvmode \else \par \fi % new
-% % we don't want top of page space when 'top' option
-% %\verticalstrut\nobreak\vskip-\struttotal
-% %\verticalstrut\vskip-\struttotal
-% % nobreak really needed
-% \allowbreak\verticalstrut\nobreak\vskip-\struttotal
-% %\ifdim\pagetotal>\topskip \else
-% % eigenlijk signal
-% %\writestatus{grid}{removing dummy at top of page}%
-% %\bgroup
-% %\output{\setbox\scratchbox\box255}%
-% %\penalty\outputpenalty
-% %\egroup
-% %\fi
-% \fi}
-
-\def\forcedpresnapcorrection % test this on 'details'
- {\ifforcepresnap
- \ifvmode \else \par \fi % new
- % we don't want top of page space when 'top' option
- % \verticalstrut\nobreak\vskip-\struttotal
- % \verticalstrut\vskip-\struttotal
- % \nobreak really needed
- % \dosomebreak\allowbreak % no: spoils heads, so only under know situation, not in snapper
- \verticalstrut
- \nobreak
- \vskip-\struttotal
- %\ifdim\pagetotal>\topskip \else
- % eigenlijk signal
- %\writestatus{grid}{removing dummy at top of page}%
- %\bgroup
- %\output{\setbox\scratchbox\box255}%
- %\penalty\outputpenalty
- %\egroup
- %\fi
- \fi}
-
-\def\setgridtracebox#1[#2]% % maybe reverse the order
- {\setbox\nextbox#1%
- {\hbox
- {\hbox to \zeropoint
- {\startlayoutcomponent{gridsnaps}{grid snaps}%
- \color[grid:#2]{\ruledhbox{\fakebox\nextbox}}%
- \stoplayoutcomponent
- \hss}%
- \flushnextbox}}}
-
-\newif\ifboxedsnapping \boxedsnappingtrue
-
-\chardef\depthsnapmethod \plusone % downward compatible, minus one line
-\chardef\heightsnapmethod\plusone % downward compatible, minus one line
-
-\def\dodosnaptogrid
- {\dowithnextbox
- {\bgroup
- \ifcase\@@alignsnapmethod \or
- % we're dealing with text with a possible big depth/height
- \chardef\depthsnapmethod \plustwo
- \chardef\heightsnapmethod\plustwo
- \fi
- \ifdim\nextboxht<\textheight % handle special case (like page fig)
- \ifcase\@@alignsnapbox\relax
- \ifcase\@@alignsnap\else % 1=top 2=high 3=middle 4=low
- \ifshowgridboxes
- \setgridtracebox\hbox[two]%
- \fi
- %\getnoflines{\nextboxht}%
- \getnoflines\nextboxht
- \setbox\nextbox\vbox to \noflines\lineheight
- {\ifnum\@@alignsnap=1 \kern\lineheight\kern-\topskip\fi
- \ifnum\@@alignsnap>2 \vfill\fi
- \flushnextbox
- \ifnum\@@alignsnap<4 \vfill\fi}%
- \fi
- \ifshowgridboxes
- \setgridtracebox\hbox[three]%
- \fi
- \forgetall
- \par
- \ifvbox\nextbox
- \setbox\nextbox\hbox{\flushnextbox}% don't ask
- \fi
- \scratchskip\lastskip
- \edef\presnapskip{\the\lastskip}%
- % mixing single/double columns sometimes goes wrong,
- % check 'som' document
- \ifinsidecolumns
- \forcepresnaptrue
- \fi
- \forcedpresnapcorrection
- \ifdim\nextboxht>\strutht
- \scratchdimen\nextboxht
- \ifcase\@@presnap\relax
- \ifdim\scratchskip>\zeropoint\relax
- \scratchcounter\scratchskip
- \advance\scratchcounter -\openlineheight
- \ifnum\scratchcounter<0
- \scratchcounter-\scratchcounter
- \fi
- \ifnum\scratchcounter<10 % \lastkip is about \openlineheight
- \advance\scratchdimen -\openstrutdepth
- \edef\presnapskip{*\presnapskip}%
- \else\ifdim\scratchskip>\openlineheight
- %<\openlineheight \else
- \advance\scratchdimen -\openstrutdepth
- \edef\presnapskip{*\presnapskip}%
- \fi\fi
- \fi
- \fi
- % \getnoflines\scratchdimen % maybe raw ?
- % \advance\noflines -1
- \ifcase\heightsnapmethod
- % raw
- \or
- \advance\scratchdimen-\lineheight % tight (default)
- \or
- \advance\scratchdimen-\strutheight % fit (text)
- \or
- \advance\scratchdimen-\strutheight % tolerant
- \advance\scratchdimen-\roundingeps
- \fi
- \getnoflines\scratchdimen
- \ifnum\noflines>0
- \scratchdimen\noflines\lineheight
- \else
- \scratchdimen\zeropoint
- \fi
- \else
- \scratchdimen\zeropoint
- \fi
- \ifnum\@@extrasnap=1 \advance\scratchdimen \extrasnapsign \lineheight \fi
- \ifnum\@@extrasnap=2 \advance\scratchdimen \extrasnapsign.5\lineheight \fi
- \edef\presnap{\the\scratchdimen}%
- \ifstrutsnapping
- \ifboxedsnapping
- \getrawnoflines\scratchdimen
- \advance\scratchdimen-\noflines\lineheight
- \vskip\scratchdimen % disappears at top of page
- \dorecurse\noflines{\verticalstrut\nobreak}%
- \else \ifdim\scratchdimen=\zeropoint
- % nothing to skip
- \else % disappears at top of page
- \vskip\scratchdimen
- \fi \fi
- \fi
- \ifdim\nextboxdp>\strutdp
- % \getnoflines\nextboxdp
- % \advance\noflines \minusone
- \scratchdimen\nextboxdp\relax
- \ifcase\depthsnapmethod
- % raw
- \or
- \advance\scratchdimen-\lineheight % tight (default)
- \or
- \advance\scratchdimen-\strutdepth % fit (text)
- \or
- \advance\scratchdimen-\strutdepth % tolerant
- \advance\scratchdimen-\roundingeps
- \fi
- \getnoflines\scratchdimen
- \ifnum\noflines>0
- \scratchdimen\noflines\lineheight
- \else
- \scratchdimen\zeropoint
- \fi
- \else
- \scratchdimen\zeropoint
- \fi
- \ifnum\@@extrasnap=2 \advance\scratchdimen \extrasnapsign.5\lineheight \fi
- \ifnum\@@extrasnap=3 \advance\scratchdimen \extrasnapsign \lineheight \fi
- \edef\postsnap{\the\scratchdimen}%
- \ifstrutsnapping
- \nextboxht\strutht
- \nextboxdp\strutdp
- \else
- \scratchdimen\presnap
- \advance\scratchdimen \strutht
- \nextboxht\scratchdimen
- \scratchdimen\postsnap
- \advance\scratchdimen \strutdp
- \nextboxdp\scratchdimen
- \fi
- \hbox{\tracedsnapping\flushnextbox}%
- \ifstrutsnapping
- \ifdim\scratchdimen=\zeropoint\else\vskip\scratchdimen\fi
- \fi
- \else
- \scratchdimen\nextboxht\relax
- \ifcase\@@alignsnapbox
- % can't happen here
- \or
- \getrawnoflines\scratchdimen
- \else
- \getnoflines \scratchdimen
- \fi
- \scratchdimen\noflines\lineheight\relax
- \advance\scratchdimen-\strutdepth
- % spoils the whole game (fit/broad/line)
- % \ifnum\pagetotal>\zeropoint \else % disable this as option
- % \advance\scratchdimen-\strutheight
- % \advance\scratchdimen+\topskip
- % \fi
- \dimen0=\scratchdimen
- \dimen2=\strutdepth
- \ifshowgridboxes
- \setgridtracebox\hbox[two]%
- \fi
- \nextboxdp\strutdp
- \dimen4=\nextboxht
- \dimen6=\nextboxdp
- \iftracegridsnapping
- \setbox\scratchbox\hbox
- {\scratchdimen\@@alignsnapamount\relax
- \ifdim\scratchdimen<\zeropoint
- \tracedgridamount\zeropoint{-\scratchdimen}%
- \else
- \tracedgridamount\scratchdimen\zeropoint
- \fi}%
- \smashbox\scratchbox
- \setbox\nextbox\hbox{\box\scratchbox\flushnextbox}%
- \fi
- \setbox\nextbox\hbox
- {\scratchdimen\@@alignsnapamount\relax
- \ifcase\@@alignsnapdepth\or
- % don't change this ever !
- \ifdim\dimen0<\lineheight
- % otherwise it is ok, but ending up inside
- % the next paragraph is seldom what we want,
- % so we move one line up
- \advance\scratchdimen-\lineheight
- \advance\scratchdimen\strutheight
- \else
- % otherwise we can move down to the
- % baseline
- \advance\scratchdimen\dimen6 % == \strutdepth
- \fi
- \fi
- \lower\scratchdimen\flushnextbox}%
- \nextboxht\dimen4
- \nextboxdp\dimen6
- \ifnum\@@alignsnap<4 % 4 = regel
- \setbox\nextbox\vbox to \scratchdimen
- {\forgetall
- \ifnum\@@alignsnap>2 \vfill\fi % 3 4
- \flushnextbox
- \nointerlineskip % \offinterlineskip
- \ifnum\@@alignsnap<4 \vfill\fi % 2 3
- \kern\zeropoint}%
- \fi
- \ifshowgridboxes
- \setgridtracebox\vbox[three]%
- \fi
- \scratchdimen\@@alignsnapamount
- \edef\presnapskip{\the\scratchdimen}%
- \ifnum\@@alignsnap>2 \def\presnap {+}\fi
- \ifnum\@@alignsnap<4 \def\postsnap{+}\fi
- \setbox\nextbox\hbox{\tracedsnapping\flushnextbox}%
- \par
- \nextboxht\dimen0
- \nextboxdp\dimen2
- \forcedpresnapcorrection
- \nointerlineskip
- \flushnextbox
- \fi
- \else
- \setbox\nextbox\vbox to \textheight
- {\ifdim\nextboxdp=\zeropoint
- \hbox{\lower\strutdepth\flushnextbox}
- \else % this branch is yet untested
- \vss
- \hbox{\lower\nextboxdp\flushnextbox}
- \vskip-\strutdepth
- \fi}%
- \nextboxdp\strutdepth
- \flushnextbox
- \fi
- \extrasnapreset
- \enablepresnapcorrection
- \global\chardef\@@alignsnap\zerocount
- \global\chardef\@@alignsnapbox\zerocount
- \egroup}}
-
-\def\tracedgridamount#1#2%
- {\startlayoutcomponent{gridsnaps}{grid snaps}%
- \color[grid:four]{\vrule\!!width\nextboxwd\!!height#1\!!depth#2}%
- \stoplayoutcomponent}
-
-\def\snaptomathgrid % probably not working ok, also kind of obsolete
- {\ifgridsnapping
- \dowithnextbox
- {\blank[\v!line]\snaptogrid\vbox{\flushnextbox}\blank[\v!line]}
- \vbox\bgroup
- \forgetdisplayskips
- \@EA\let\@EA\next
- \fi}
-
-\def\topsnaptogrid
- {\ifgridsnapping
- \dowithnextbox
- {\scratchdimen\nextboxht
- \advance\scratchdimen -\strutht
- \advance\scratchdimen \topskip
- \nextboxht\scratchdimen
- \nextboxdp\zeropoint
- \flushnextbox
- \kern\lineheight
- \kern-\topskip
- \nointerlineskip}
- \hbox
- \fi}
-
-% \def\centertogrid % meant for special situations
-% {\ifgridsnapping
-% \dowithnextboxcontent
-% {\ignorespaces}
-% {\bgroup
-% \par
-% \scratchdimen\nextboxht
-% \advance\scratchdimen \nextboxdp
-% \getnoflines\scratchdimen
-% \setbox\nextbox\vbox to \noflines\lineheight
-% {\forgetall
-% \vskip\zeropoint \!!plus \nextboxht
-% \copy\nextbox
-% \kern.5\strutdp % VOORLOPIGE WAARDE
-% \vskip\zeropoint \!!plus \nextboxdp}%
-% \noindent\snaptogrid\vbox{\flushnextbox}%
-% \egroup}
-% \vbox % was \hbox
-% \fi}
-
-% The next implementation is sub-optimal
-%
-% \def\centertogrid % usage: see ie pascal / stepcharts
-% {\snaptogrid[\v!midden,.5\strutdp]\vbox}
-
-\def\centertogrid % meant for special situations
- {\ifgridsnapping
- \dowithnextboxcontent
- {\ignorespaces}
- {\bgroup
- \par
- \scratchdimen\nextboxht
- \advance\scratchdimen \nextboxdp
- \getnoflines\scratchdimen
- \setbox\nextbox\vbox to \noflines\lineheight
- {\forgetall
- \vss
- \topbaselinecorrection
- \copy\nextbox
- \botbaselinecorrection
- \vss}%
- \setbox\nextbox\hbox{\lower\strutdp\flushnextbox}%
- \forgeteverypar % new per 3/4/2008, prevents duplicate pos nodes resulting in extra whitespace
- \noindent\snaptogrid\vbox{\flushnextbox}%
- \egroup}
- \vbox % was \hbox
- \fi}
-
-% testbed for \centertogrid
-%
-% \strut Bruggetje
-% \startlinecorrection
-% \startcombination
-% {\framed{test}} {} {\framed{test}} {}
-% \stopcombination
-% \stoplinecorrection
-% \strut Bruggetje
-% \startlinecorrection
-% \startcombination[2*2]
-% {\framed{test}} {} {\framed{test}} {}
-% {\framed{test}} {} {\framed{test}} {}
-% \stopcombination
-% \stoplinecorrection
-% \strut Bruggetje
-% \startlinecorrection[blank]
-% \startcombination
-% {\framed{test}} {} {\framed{test}} {}
-% \stopcombination
-% \stoplinecorrection
-% \strut Bruggetje
-% \startlinecorrection[blank]
-% \startcombination[2*2]
-% {\framed{test}} {} {\framed{test}} {}
-% {\framed{test}} {} {\framed{test}} {}
-% \stopcombination
-% \stoplinecorrection
-% \strut Bruggetje
-% \startlinecorrection
-% \startcombination
-% {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {}
-% \stopcombination
-% \stoplinecorrection
-% \strut Bruggetje
-% \startlinecorrection
-% \startcombination[2*2]
-% {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {}
-% {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {}
-% \stopcombination
-% \stoplinecorrection
-% \strut Bruggetje
-% \startlinecorrection[blank]
-% \startcombination
-% {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {}
-% \stopcombination
-% \stoplinecorrection
-% \strut Bruggetje
-% \startlinecorrection[blank]
-% \startcombination[2*2]
-% {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {}
-% {\framed[lines=1]{test}} {} {\framed[lines=1]{test}} {}
-% \stopcombination
-% \stoplinecorrection
-
-\ifx\startbaselinecorrection\undefined \wait \fi % change order
-
-\let\normalstartbaselinecorrection=\startbaselinecorrection
-
-\def\startbaselinecorrection
- {\ifgridsnapping
- \centertogrid\bgroup
- \let\stopbaselinecorrection\egroup
- \else
- \normalstartbaselinecorrection
- \fi}
-
-\chardef\gridboxlinenomode\plusone
-\chardef\gridboxlinemode \plusone % 0:nothing 1:all 2:lines 3:frame
-
-\def\gridboxvbox {\ifcase\gridboxlinemode\vbox\or\ruledvbox\or\vbox\or\ruledvbox\else\ruledvbox\fi}
-\def\gridboxwidth{\ifcase\gridboxlinemode0\or.5\or.5\or0\else.5\fi\testrulewidth}
-
-\def\setgridbox#1#2#3%
- {\setbox#1\gridboxvbox to #3 % given size
- {\forgetall
- \resetteststrut
- \offinterlineskip
- \hsize#2%
- \baselinerulefalse
- \gridboxvbox % calculated size
- {\getrawnoflines{#3}% \getnoflines{#3}%
- \vskip\topskip
- \vskip-\strutht
- \scratchdimen#2\advance\scratchdimen \lineheight
- \dorecurse\noflines
- {\strut
- \hskip-.5\lineheight
- \ifcase\gridboxlinenomode\or
- \rlap
- {\hskip.2\bodyfontsize\hskip\scratchdimen
- \infofont\hbox to 1em{\hss\recurselevel}}%
- \or
- \llap
- {\infofont\hbox to 1em{\hss\recurselevel}%
- \hskip.2\bodyfontsize}%
- \fi
- \vrule
- \!!height \gridboxwidth
- \!!depth \gridboxwidth
- \!!width \scratchdimen
- \par}}
- \vfill}}
-
-%D Some intervention macros:
-
-\def\gridwarning#1{\message{[beware of #1 extra snap]}}
-
-\global\let\@@alignsnapamount\!!zeropoint
-\global\chardef\@@alignsnapdepth0
-
-\def\@@unknowngriddisplacement
- {\global\chardef\@@alignsnapbox\plusthree
- \global\let\@@alignsnapamount\commalistelement}
-
-\def\domoveongrid[#1]%
- {\ifgridsnapping\doifsomething{#1}{\dodomoveongrid[#1]}\fi}
-
-\def\dodomoveongrid[#1]% some day : speed up
- {\global\chardef\@@alignsnap\zerocount
- \global\chardef\@@alignsnapbox\zerocount
- \global\chardef\@@alignsnapdepth\zerocount
- \global\chardef\@@alignsnapmethod\zerocount
- \global\let\@@alignsnapamount\!!zeropoint
- \donefalse
- \expanded{\processallactionsinset[#1]}
- [\v!standard=>,
- \v!normal=>, % to be sure
- \v!yes=>, % to be sure
- \v!top=>\gridwarning+\positiveextrasnap\extrasnapbefore,
- \v!bottom=>\gridwarning+\positiveextrasnap\extrasnapafter,
- \v!both=>\positiveextrasnap\extrasnaparound,
- -\v!top=>\gridwarning-\negativeextrasnap\extrasnapbefore,
- -\v!bottom=>\gridwarning-\negativeextrasnap\extrasnapafter,
- -\v!both=>\negativeextrasnap\extrasnaparound,
- \v!text=>\global\chardef\@@alignsnapmethod\plusone, % accurate calculations
- \v!page=>\global\chardef\@@alignsnap\plusone, % topskip
- \v!high=>\global\chardef\@@alignsnap\plustwo,
- \v!middle=>\global\chardef\@@alignsnap\plusthree,
- \v!low=>\global\chardef\@@alignsnap\plusfour,
- \v!fit=>\global\chardef\@@alignsnapbox\plusone, % new
- \v!broad=>\global\chardef\@@alignsnapbox\plustwo, % new
- \v!depth=>\global\chardef\@@alignsnapdepth\plusone, % new
- \v!line=>\global\chardef\@@alignsnapbox\plusthree
-% \global\chardef\@@alignsnapdepth\plusone
- \global\chardef\@@alignsnap\plusfour,
- \v!reset=>\positiveextrasnap\extrasnapreset,
- \v!none=>\global\chardef\@@alignsnap\zerocount
- \global\chardef\@@alignsnapbox\zerocount,
- \v!force=>, % turns on grid snapping even when not on
- \s!default=>,
- \s!unknown=>\@@unknowngriddisplacement]}
-
-\def\moveongrid
- {\dosingleempty\domoveongrid}
-
-\def\doplaceongrid[#1]%
- {\domoveongrid[#1]\snaptogrid\vbox}
-
-\def\placeongrid
- {\dosingleempty\doplaceongrid}
-
-%D Snapping is rather robust as long as we use whole lines.
-%D Half lines of white space can however be handled when they
-%D come in pairs. The corrections needed when crossing page
-%D boundaries in the middle of such a pair, are handled by
-%D macros that are (named) sort of fuzzy. This fuzzy mechanism
-%D was written as an extension to the grid typesetting needed
-%D for typesetting (part of) the \MAPS.
-%D
-%D \starttyping
-%D \setuptyping
-%D [before={\blank[halfline]},
-%D after={\blank[halfline]}]
-%D \stoptyping
-
-\newif \iffuzzyvskip
-\newif \iffuzzysnapdone
-\newif \iffuzzysnapping
-\newif \iffuzzysnapped
-\chardef \fuzzysnappedleft=0 % ==1 when fuzzybegin still open
-\newpersistentmark\fuzzymark % (!)
-\newcount \fuzzymarker
-\newbox \fuzzysnapbox
-\newbox \fuzzysnapsplit
-
-\def\dosyncfuzzyvskip
- {\ifvmode\ifdim\lastskip<\lineheight\ifdim\lastskip>\zeropoint
- \bgroup % - added 28/2/2003: check this, there was no -
- \endgraf\forgetall\verticalstrut\nobreak\vskip-\struttotal
- \egroup
- \fi\fi\fi}
-
-\def\fuzzyvskip#1%
- {\iffuzzysnapdone
- \dosyncfuzzyvskip % NEWER
- \endfuzzysnapping
- \vskip#1\relax
- \global\fuzzysnapdonefalse
- \else
- \vskip#1\relax
- \beginfuzzysnapping
- \global\fuzzysnapdonetrue
- \fi}
-
-\def\setfuzzymark#1#2#3% #1/#2 => error recovery
- {\ifgridsnapping
- \global\fuzzysnappingtrue
- \global\advance\fuzzymarker \ifodd\fuzzymarker#1\else#2\fi
- \nobreak
- \ifshowfuzzyskips
- \hbox{\color[grid:three]
- {\llap{\infofont#3\vl\the\fuzzymarker}\nobreak
- \vrule\!!width\hsize\!!height.1\lineheight}}
- \nobreak
- \fi
- %[\the\fuzzymarker]
- %\expandafter\fuzzymark\expandafter{\the\fuzzymarker}%
- \expandafter\rawsetmark\expandafter\fuzzymark\expandafter{\the\fuzzymarker}%
- \nobreak
- \fi}
-
-\def\beginfuzzysnapping{\setfuzzymark21\v!start} % odd
-\def\endfuzzysnapping {\setfuzzymark12\v!stop } % even
-
-\def\removelastfuzzyvskip
- {\ifgridsnapping
- \iffuzzysnapping
- \ifdim\lastskip<\openlineheight
- \else
- \removelastskip
- \fi
- \else
- \removelastskip
- \fi
- \else
- \removelastskip
- \fi}
-
-\def\docheckfuzzysnap#1%
- {\bgroup
- \dontcomplain
- \setbox\fuzzysnapbox\copy#1\relax
- \setbox\fuzzysnapsplit\vsplit\fuzzysnapbox to 1\lineheight
- \let\topfuzzymark\empty % indeed here ... no real mark
- \getsplitmarks\fuzzymark
-% \ifcase0\topfuzzymark
- \ifcase0\rawgetsplittopmark\fuzzymark
- \global\chardef\fuzzysnappedleft\zerocount
- \global\fuzzysnappedfalse
-% \else\ifodd\topfuzzymark
- \else\ifodd\rawgetsplittopmark\fuzzymark
- \global\chardef\fuzzysnappedleft\plusone
- \global\fuzzysnappedtrue
- \else
- \global\chardef\fuzzysnappedleft=2
- \global\fuzzysnappedtrue
- \fi\fi
- \iffuzzysnapped \else
- \doloop
- {\ifvoid\fuzzysnapbox
- \exitloop
- \else
- \setbox\fuzzysnapsplit=\vsplit\fuzzysnapbox to \lineheight
- %\let\topfuzzymark=\empty % ... but not here
- \getsplitmarks\fuzzymark
-% \ifcase0\topfuzzymark
- \ifcase0\rawgetsplittopmark\fuzzymark
- % continue
-% \else\ifodd\topfuzzymark
- \else\ifodd\rawgetsplittopmark\fuzzymark
- \exitloop
- \else
- \global\chardef\fuzzysnappedleft\plusone
- \global\fuzzysnappedtrue
- \exitloop
- \fi\fi
- \fi}%
- \fi
- \egroup}
-
-\def\getfuzzysnapcorrection#1%
- {\global\let\presnapcorrection \relax
- \global\let\postsnapcorrection\relax
- \ifgridsnapping\iffuzzysnapping
- \docheckfuzzysnap{#1}%
- \iffuzzysnapped
- \iftracegridsnapping
- \gdef\presnapcorrection
- {\color[grid:four]{\hrule\!!height.5\openlineheight\!!width\hsize}}%
- \else
- \gdef\presnapcorrection{\kern.5\openlineheight}%
- \fi
- \gdef\postsnapcorrection{\kern-.5\openlineheight}% get the height ok
- \fi
- \fi\fi}
-
-\def\fuzzysnappedbox#1#2% \box<n> \unvbox<n>
- {\getfuzzysnapcorrection{#2}%
- \presnapcorrection
- #1#2%
- \postsnapcorrection}
-
-\def\adaptfuzzypagegoal
- {\ifgridsnapping\iffuzzysnapping\ifcase\fuzzysnappedleft\or % see dopagecontents
- \scratchdimen\pagegoal
- \advance\scratchdimen -.5\openlineheight
- \global\pagegoal\scratchdimen
- \global\advance\vsize -.5\openlineheight
- \global\chardef\fuzzysnappedleft0
- \fi\fi\fi}
-
-%D New, experimental, used in caption snapping:
-%D
-%D \starttyping
-%D \startcolumnset
-%D
-%D \setupcaption[figure][style=\tfx\setupinterlinespace,inbetween=,grid=top]
-%D
-%D \placefigure [lrtb] {\dorecurse{5}{green gras}}
-%D {\externalfigure[dummy][width=\textwidth,height=3cm,grid=height]}
-%D \placefigure [lrtb] {\dorecurse{15}{green gras}}
-%D {\externalfigure[dummy][width=\textwidth,height=3cm,grid=height]}
-%D
-%D \setupcaption[figure][style=\tfx\setupinterlinespace,inbetween=,grid=bottom]
-%D
-%D \placefigure [rltb] {\dorecurse{5}{green gras}}
-%D {\externalfigure[dummy][width=\textwidth,height=3cm,grid=height]}
-%D \placefigure [rltb] {\dorecurse{15}{green gras}}
-%D {\externalfigure[dummy][width=\textwidth,height=3cm,grid=height]}
-%D
-%D \input thuan
-%D
-%D \stopcolumnset
-%D \stoptyping
-
-\def\moveboxontogrid#1#2#3% box method firstlineht % experimental ! ! !
- {\doifsomething{#2}
- {\getnoflines{\ht#1}% no depth taken into account, depth preserved
- \scratchdimen\noflines\lineheight
- \advance\scratchdimen-\strutdp
- \bgroup
- \advance\scratchdimen-\onepoint % be a bit tolerant
- \ifdim\scratchdimen>\ht#1\relax
- \egroup
- \doif{#2}\v!top {\setbox#1\vbox to \scratchdimen{\vskip-#3\vskip\strutht\box#1\vfill}}%
- \doif{#2}\v!bottom{\setbox#1\vbox to \scratchdimen{\vfill\box#1\removedepth}}%
- \dp#1\strutdp
- \else
- \egroup
- \ht#1\scratchdimen
- \dp#1\strutdp
- \fi}}
-
-%D New:
-
-\let\checkgridsnapping\relax
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-def.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-def.mkii
deleted file mode 100644
index 60051579d04..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-def.mkii
+++ /dev/null
@@ -1,1016 +0,0 @@
-%D \module
-%D [ file=spec-def,
-%D version=1996.01.25,
-%D title=\CONTEXT\ Special Macros,
-%D subtitle=Definitions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module used to be integrated in \type {spec-ini},
-%D but testing optimization is more convenient this way.
-
-\writestatus{loading}{ConTeXt Special Macros / Definitions}
-
-\unprotect
-
-%D Ok, messy, but we need this because we load drivers before
-%D references.
-
-\newif\ifcollectreferenceactions
-
-%D The following libraries are defined. Two postscript
-%D drivers are supported, as well as two mechanisms for
-%D interactive texts.
-%D
-%D \startlinecorrection
-%D \starttable[|l|l|l|l|l|]
-%D \HL
-%D \NC \bf file \NC
-%D \bf name \NC
-%D \bf calls \NC
-%D \bf support \NC
-%D \bf program / driver \NC\SR
-%D \HL
-%D \NC \tttf spec-tex \NC
-%D \tttf tex \NC
-%D \NC
-%D Generic \TEX\ (\DVI) \NC
-%D (default) \NC\FR
-%D \NC \tttf spec-tpd \NC
-%D \tttf \PDF \NC
-%D \NC
-%D Han The Thanh \NC
-%D (pdftex) \NC\MR
-%D \NC \tttf spec-ps \NC
-%D \tttf postscript \NC
-%D \NC
-%D Adobe PostScript \NC
-%D (default) \NC\MR
-%D \NC \tttf spec-tr \NC
-%D \tttf rokicki \NC
-%D \tttf postscript \NC
-%D Thomas Rokicki \NC
-%D (dvips) \NC\MR
-%D \NC \tttf spec-yy \NC
-%D \tttf yandy \NC
-%D \tttf postscript \NC
-%D YandY \NC
-%D (dvipsone, dviwindo) \NC\MR
-%D \NC \tttf spec-pdf \NC
-%D \tttf pdf \NC
-%D \NC
-%D Adobe PDF \NC
-%D (Acrobat) \NC\MR
-%D \NC \tttf spec-win \NC
-%D \tttf dviwindo \NC
-%D YandY \NC
-%D (dviwindo) \NC\MR
-%D \NC \tttf spec-htm \NC
-%D \tttf html \NC
-%D \NC
-%D HTML V 2.0 \NC
-%D (dvips) \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-
-%D \macros
-%D {dostartgraymode,dostopgraymode,
-%D dostartrgbcolormode,dostartcmykcolormode,dostartgraycolormode,dostopcolormode}
-%D
-%D Switching to and from color can be done in two ways:
-%D
-%D \startitemize[packed,n]
-%D \item insert driver specific commands
-%D \item pass instructions to the output device
-%D \stopitemize
-%D
-%D The first approach is more general and lays the
-%D responsibility at the driver side. Probably due to the fact
-%D that \TEX\ does not directly support color, we have been
-%D confronted for the last few years with changing special
-%D definitions. The need for support depends on how a macro
-%D package handles colored text that crosses the page boundary.
-%D Again, there are two approaches.
-%D
-%D \startitemize[packed,n]
-%D \item let \TEX\ do the job
-%D \item let the driver handle things
-%D \stopitemize
-%D
-%D The first approach is as driver independant as possible and
-%D can easily be accomplished by using \TEX's mark mechanism.
-%D In \CONTEXT\ we follow this approach. More and more, drivers
-%D are starting to support color, including stacking them.
-%D
-%D Colors as well as grayscales can be represented in scales
-%D from~0 to~1. When drivers use values in the range 0..255,
-%D this value has to be adapted in the translation process.
-%D Technically it's possible to get a grayscale from combining
-%D colors. In the \cap{RGB} color system, a color with Red,
-%D Green and Blue components of 0.80 show the same gray as a
-%D Gray Scale specified 0.80. The \cap{CMYK} color system
-%D supports a Black component apart from Cyan, Magenta and
-%D Yellow.
-%D
-%D Depending on the target format, color support differs from
-%D gray support. PostScript for example offers different
-%D operators for setting gray and color. This is because
-%D printing something using three colors is someting else than
-%D printing with just black.
-%D
-%D In \CONTEXT\ we have implemented a color subsystem that
-%D supports the use of well defined colors that, when printed
-%D in black and white, still can be distinguished. This
-%D approach enables us to serve both printed and electronic
-%D versions, using colored text and illustrations. More on the
-%D fundamentals of this topic can be found in the \cap{MAPS} of
-%D the Dutch User Group, 14 (95.1).
-%D
-%D To satisfy all those needs, we define four specials which
-%D supply enough information for drivers to act upon. We
-%D could have used more general commands with the keywords
-%D 'rgb' and 'gray', but because these specials are used often,
-%D we prefer the more direct and shorter alternative.
-%D
-%D We start with the installation of color and grayscale
-%D specials. The values are in the range 0..1 (e.g. 0.25).
-%D
-%D \starttyping
-%D \dostartgraymode {gray} ... \dostopgraymode
-%D \dostartrgbcolormode {red} {green} {blue} ... \dostopcolormode
-%D \dostartcmykcolormode {cyan} {magenta} {yellow} {black} ... \dostopcolormode
-%D \dostartgraycolormode {gray} ... \dostopcolormode
-%D \stoptyping
-%D
-%D Because we can expect conflicts between drivers, we
-%D implement them as category \type{or}. In previous versions
-%D of \DVIPSONE\ the use of their color||specials did not
-%D interfere with the PostScript ones, but recent versions do.
-
-\installspecial [\dostartgraymode] [or] [1]
-\installspecial [\dostopgraymode] [or] [0]
-
-\installspecial [\dostartrgbcolormode] [or] [3]
-\installspecial [\dostartcmykcolormode] [or] [4]
-\installspecial [\dostartgraycolormode] [or] [1]
-\installspecial [\dostopcolormode] [or] [0]
-
-%D New and experimental:
-
-\installspecial [\dostartspotcolormode] [or] [2]
-
-\installspecial [\doregisterrgbspotcolor] [or] [7]
-\installspecial [\doregistercmykspotcolor] [or] [8]
-\installspecial [\doregistergrayspotcolor] [or] [5]
-
-\installspecial [\doregisterrgbindexcolor] [or] [7]
-\installspecial [\doregistercmykindexcolor] [or] [8]
-\installspecial [\doregistergrayindexcolor] [or] [5]
-
-\installspecial [\doregisterspotcolorname] [or] [2]
-
-\installspecial [\dostartnonecolormode] [or] [0]
-\installspecial [\doregisternonecolor] [or] [0]
-
-%D For some drivers, the stop special is of no use and can
-%D simply call the start one with zero arguments.
-
-%D \macros
-%D {dogetfiguresize,doinsertfile,doinsertMPfile}
-%D
-%D Probably the most problematic special is the following
-%D one. Because we want to be able to support different
-%D schemes, we pass a lot of data to it.
-%D
-%D The support of inserting files (like illustrations) comes in
-%D many flavors. Some drivers use scales, some take dimensions.
-%D Some need offsets and others act on stored characteristics.
-%D They need one thing in common: a filename. Although separate
-%D specials for different formats sometimes are more clear, we
-%D decided to combine them all in one:
-%D
-%D \starttyping
-%D \doinsertfile {type,method} {file,label}
-%D {xscale} {yscale} {x} {y} {w} {h}
-%D {options}
-%D \stoptyping
-%D
-%D The scale is given percents, the other values are base
-%D points.
-%D
-%D Per 2006 we have simplified this model. The amount of drivers
-%D is not growing and all support scaling. We pass variables via
-%D Driver specific macros.
-%D
-%D \starttyping
-%D \doinsertfile
-%D \stoptyping
-%D
-%D The special is implemented as \type{or}. Because \DVIPSONE\
-%D understands them all, a chain of alternatives would generate
-%D multiple occurrences of the same illustration.
-%D
-%D When option 1 is passed, the viewers is asked to present a
-%D preview, like the first frame of a movie.
-
-\installspecial [\dogetfiguresize][or] [0] % now a special
-\installspecial [\doinsertfile] [or] [0] % [9]
-\installspecial [\doinsertMPfile] [or] [1] % speed up
-
-%D No start||stop construction is needed here, because there in
-%D no further interference of \TEX. All dimensions are output
-%D in points and scales as a number, where 100 equal 100\%. (We
-%D used to pass scaled points).
-
-%D \macros
-%D {doinsertsoundtrack}
-%D
-%D Sounds are (for the moment) just files with
-%D associated options.
-%D
-%D \starttyping
-%D \doinsertsoundtrack {file} {label} {options}
-%D \stoptyping
-
-\installspecial [\doinsertsoundtrack] [or] [3]
-
-%D \macros
-%D {dogetnofinsertpages}
-%D
-%D Some file formats support more than one page, like \PDF,
-%D and for special applications, one may want to have access
-%D to the total number of pages.
-%D
-%D \starttyping
-%D \dogetnofinsertpages{filename}
-%D \stoptyping
-%D
-%D The number is also available after the insert is placed,
-%D since inclusion may take place immediate when an insert is
-%D called upon.
-
-\def\nofinsertpages{1} % one of the few 'talk backs'
-
-\installspecial [\dogetnofinsertpages] [or] [1]
-
-%D \macros
-%D {dostartrotation,
-%D dostoprotation}
-%D
-%D We support rotation with the special:
-%D
-%D \starttyping
-%D \dostartrotation {angle} ... \dostoprotation
-%D \stoptyping
-%D
-%D For the moment these specials are installed as
-%D category \type{or}.
-
-\installspecial [\dostartrotation] [or] [1]
-\installspecial [\dostoprotation] [or] [0]
-
-%D \macros
-%D {dostartscaling,
-%D dostopscaling}
-%D
-%D Scaling is also supported:
-%D
-%D \starttyping
-%D \dostartscaling {x} {y} ... \dostopscaling
-%D \stoptyping
-%D
-%D Like the previous one, these specials are of category
-%D \type{or}.
-
-\installspecial [\dostartscaling] [or] [2]
-\installspecial [\dostopscaling] [or] [0]
-
-%D \macros
-%D {dostartmirroring,
-%D dostopmirroring}
-%D
-%D And indeed, mirroring is there too:
-%D
-%D \starttyping
-%D \dostartmirroring {x} {y} ... \dostopmirroring
-%D \stoptyping
-%D
-%D Again these specials are installed as category \type{or}.
-
-\installspecial [\dostartmirroring] [or] [0]
-\installspecial [\dostopmirroring] [or] [0]
-
-%D \macros
-%D {dostartnegative,
-%D dostopnegative}
-%D
-%D When producing output for an image setter, negating the
-%D page comes into view. Here are the tools:
-
-\installspecial [\dostartnegative] [or] [0]
-\installspecial [\dostopnegative] [or] [0]
-
-%D \macros
-%D {dostartoverprint,
-%D dostopoverprint}
-%D
-%D Rudimentary overprint (knockout) control is implemented
-%D using:
-
-\installspecial [\dostartoverprint] [or] [0]
-\installspecial [\dostopoverprint] [or] [0]
-
-%D The following two specials are used in for instance \type
-%D {\vadjust}'d margin material inside colored paragraphs.
-
-\installspecial [\dostartgraphicgroup] [or] [0]
-\installspecial [\dostopgraphicgroup ] [or] [0]
-
-%D \macros
-%D {doselectfirstpaperbin,
-%D doselectsecondpaperbin}
-%D
-%D Here are some very printer||specific ones. No further
-%D comment.
-
-\installspecial [\doselectfirstpaperbin] [or] [0]
-\installspecial [\doselectsecondpaperbin] [or] [0]
-
-%D \macros
-%D {doovalbox}
-%D
-%D When we look at the implementation, this is a complicated
-%D one. There are seven arguments.
-%D
-%D \starttyping
-%D \doovalbox {w} {h} {d} {linewidth} {radius} {stroke} {fill} {variant}
-%D \stoptyping
-%D
-%D This command has to return a \type{\vbox} which can be used
-%D to lay over another one (with text). The radius is in
-%D degrees, the stroke and fill are~\type{1} (true) of~\type{0}
-%D (false).
-
-\installspecial [\doovalbox] [or] [8]
-
-%D \macros
-%D {dostartclipping,dostopclipping}
-%D
-%D Clipping is implemented in such a way that an arbitrary
-%D can be fed.
-%D
-%D \starttyping
-%D \dostartclipping {pathname}{width} {height}
-%D \dostopclipping
-%D \stoptyping
-%D
-%D
-
-\installspecial [\dostartclipping] [or] [3]
-\installspecial [\dostopclipping] [or] [0]
-
-%D \macros
-%D {dosetupidentity}
-%D
-%D We can declare some characteristics of the document with
-%D
-%D \starttyping
-%D \dosetupidentity {title} {subject} {author} {creator} {date} {keys}
-%D \stoptyping
-%D
-%D All data is in string format.
-
-\installspecial [\dosetupidentity] [and] [6]
-
-%D \macros
-%D {dosetuppaper}
-%D
-%D This special can be used to tell the driver what page size
-%D to use. The special takes three arguments.
-%D
-%D \starttyping
-%D \dosetuppaper {type} {width} {height}
-%D \stoptyping
-%D
-%D The type is one of the common identifiers, like A4, A5 or
-%D B2.
-
-\installspecial [\dosetuppaper] [and] [3]
-
-%D \macros
-%D {dosetupprinter}
-%D
-%D Some drivers enable the user to specify the paper type
-%D used and/or page dimensions to be taken into account.
-%D
-%D \starttyping
-%D \dosetupprinter {type} {hoffset} {voffset} {width} {height}
-%D \stoptyping
-%D
-%D The first argument is one of \type{letter}, \type{legal},
-%D \type{A4}, \type{A5} etc. The dimensions are in
-%D basepoints.
-
-\installspecial [\dosetupprinter] [and] [5]
-
-%D \macros
-%D {dosetupopenaction, dosetupclosaction,
-%D dosetupopenpageaction, dosetupclospageaction,
-%D dosetupinteraction,
-%D dosetupscreen,
-%D dosetupviewmode}
-%D
-%D Here come some obscure interactive commands. Probably the
-%D specs will change with the development of the macros that
-%D use them.
-%D
-%D The first ones can be used to set up the interaction.
-%D
-%D \starttyping
-%D \dosetupinteraction
-%D \stoptyping
-%D
-%D Normally this command does nothing but giving a message
-%D that some scheme is supported.
-%D
-%D \starttyping
-%D \dosetupstartaction
-%D \dosetupstopaction
-%D \stoptyping
-%D
-%D These two setup the actions to be executed when the document
-%D is opened and closed.
-%D
-%D The next commands sets up the page and screen. They are
-%D kind of related.
-%D
-%D \starttyping
-%D \dosetuppage {hoffset} {voffset} {width} {height} {options}
-%D \dosetupscreen {hoffset} {voffset} {width} {height} {options}
-%D \stoptyping
-%D
-%D The first four arguments are in points. Option~1 results in a
-%D full screen launch.
-%D
-%D \starttyping
-%D \dosetuppageview {keyword}
-%D \stoptyping
-%D
-%D For the moment we only support \type{fit}.
-
-\installspecial [\dosetupinteraction] [and] [0]
-
-\installspecial [\dosetupopenaction] [and] [0]
-\installspecial [\dosetupscreen] [and] [5]
-\installspecial [\dosetuppageview] [and] [1]
-
-\installspecial [\dosetupcloseaction] [and] [0]
-\installspecial [\dosetupopenpageaction] [and] [0]
-\installspecial [\dosetupclosepageaction] [and] [0]
-\installspecial [\dosetuprenderingopenpageaction] [and] [0]
-\installspecial [\dosetuprenderingclosepageaction] [and] [0]
-
-% new, yet undocumented, replaces \dosetupscreen
-
-\installspecial [\dosetupcropbox] [and] [4]
-\installspecial [\dosetuptrimbox] [and] [4]
-\installspecial [\dosetupartbox] [and] [4]
-\installspecial [\dosetupbleedbox] [and] [4]
-
-%D \macros
-%D {dostarthide,
-%D dostophide}
-%D
-%D Not every part of the screen is suitable for paper. Menus
-%D for instance have no meaning on an non||interactive medium.
-%D These elements are hidden by means of:
-%D
-%D \starttyping
-%D \dostarthide
-%D \dostophide
-%D \stoptyping
-
-\installspecial [\dostarthide] [or] [0]
-\installspecial [\dostophide] [or] [0]
-
-%D \macros
-%D {dostartgotolocation, dostopgotolocation,
-%D dostartgotorealpage, dostopgotorealpage}
-%D
-%D When we want to support hypertext buttons, again we have
-%D to deal with two concepts.
-%D
-%D \startitemize[packed,n]
-%D \item let \TEX\ highlight the text
-%D \item let the driver show us where to click
-%D \stopitemize
-%D
-%D The first approach is the most secure one. It gives us
-%D complete control over the visual appearance of hyper
-%D buttons. The second alternative lets the driver guess what
-%D part of the text needs highlighting. As long as we deal with
-%D not too complicated textual buttons, this is no problem.
-%D It's even a bit more efficient when we take long mid
-%D paragraph active regions into account. When we let \TEX\
-%D handle active sentences {\em for instance marked like this
-%D one}, we have to take care of line- and pagebreaks ourselve.
-%D However, it's no trivial matter to let a driver find out
-%D where things begin and end. Because most hyperlinks can be
-%D found in tables of contents and registers, the saving in
-%D terms of bytes can be neglected and the first approach is a
-%D clear winner.
-%D
-%D The most convenient way of cross||referencing is using named
-%D destinations. A more simple scheme is using page numbers as
-%D destinations. Because the latter alternative can often be
-%D implemented more efficient, and because we cannot be sure
-%D what scheme a driver supports, we always have to supply a
-%D pagenumber, even when we use named destinations.
-%D
-%D To enable a driver to find out what to make active, we have
-%D to provide begin and endpoints, so like with color, we use
-%D pairs of specials. The first scheme can be satisfied with
-%D proper dimensions of the areas to be made active.
-%D
-%D The interactive real work is done by the following four
-%D specials. The reason for providing the first one with both
-%D a label and a number, is a result of the quite poor
-%D implementation of \type{pdfmarks} in version 1.0 of
-%D Acrobat. Because only pagenumbers were supported as
-%D destination, we had to provide both labels (\DVIWINDO) and
-%D pagenumbers (\PDF). Some drivers use start stop pairs.
-%D
-%D \starttyping
-%D \dostartgotolocation {w} {h} {url} {file} {label} {page}
-%D \dostartgotorealpage {w} {h} {url} {file} {page}
-%D \stoptyping
-%D
-%D Their counterparts are:
-%D
-%D \starttyping
-%D \dostopgotolocation
-%D \dostopgotorealpage
-%D \stoptyping
-%D
-%D The internal alternative is used for system||generated
-%D links, the external one for user||generated links. The
-%D Uniform Resource Locator can be used to let the reader
-%D surf the net.
-
-\installspecial [\dostartgotolocation] [and] [6]
-\installspecial [\dostopgotolocation] [and] [0]
-\installspecial [\dostartgotorealpage] [and] [5]
-\installspecial [\dostopgotorealpage] [and] [0]
-
-%D One may wonder why jumps to page and location are not
-%D combined. By splitting them, we enable macro||packages to
-%D force the prefered alternative, while on the other hand
-%D drivers can pick up the alternative desired most.
-
-%D \macros
-%D {dostartgotoJS, doflushJSpreamble}
-%D
-%D Rather special is the option to include and execute
-%D JavaScript code. This is a typical \PDF\ option.
-%D
-%D \starttyping
-%D \dostartgotoJS {w} {h} {script}
-%D \stoptyping
-%D
-%D This not so standard \TEX\ feature should be used with
-%D care. Preamble scripts are flushed by
-%D
-%D \doflushJSpreamble {script}
-
-\installspecial [\dostartgotoJS] [and] [3]
-\installspecial [\dostopgotoJS] [and] [0]
-\installspecial [\doflushJSpreamble][and] [1]
-
-%D \macros
-%D {dostartthisislocation, dostopthisislocation,
-%D dostartthisisrealpage, dostopthisisrealpage}
-%D
-%D Before we can goto some location or page, we have to tell
-%D the system where it can be found. Because some drivers
-%D follow the \SGML\ approach of begin||end tags, we have to
-%D support pairs. A possible extension to this scheme is
-%D supplying coordinates for viewing the text.
-%D
-%D The opposite commands of \type{\dogotosomething} have only
-%D one argument:
-%D
-%D \starttyping
-%D \dostartthisislocation {label}
-%D \dostartthisisrealpage {page}
-%D \stoptyping
-%D
-%D These commands are accompanied by:
-%D
-%D \starttyping
-%D \dostopthisislocation
-%D \dostopthisisrealpage
-%D \stoptyping
-%D
-%D As with all interactive commands's they are installed as
-%D \type{and} category specials.
-
-\installspecial [\dostartthisislocation] [and] [1]
-\installspecial [\dostopthisislocation] [and] [0]
-\installspecial [\dostartthisisrealpage] [and] [1]
-\installspecial [\dostopthisisrealpage] [and] [0]
-
-%D In \CONTEXT\ we don't use the \type{\stopsomething}
-%D macros because we let \TEX\ take care of typographic
-%D issues.
-
-%D \macros
-%D {doresetgotowhereever}
-%D
-%D These and others need:
-
-\installspecial [\doresetgotowhereever] [and] [0]
-
-%D \macros
-%D {dostartexecutecommand, dostopexecutecommand}
-%D
-%D The actual behavior of the next pair of commands depends
-%D much on the viewing engine. Therefore one cannot depend
-%D too much on their support.
-%D
-%D \starttyping
-%D \dostartexecutecommand {w} {h} {command} {options}
-%D \stoptyping
-%D
-%D At least the next commands are supported (more examples
-%D can be found in \type {spec-fdf.tex}:
-%D
-%D \startlinecorrection\setupalign[middle]\leavevmode
-%D \starttable[|l|l|]
-%D \HL
-%D \NC \bf command \NC \bf action \NC\SR
-%D \HL
-%D \NC first \NC go to the first page \NC\FR
-%D \NC previous \NC go to the previous page \NC\MR
-%D \NC next \NC go to the next page \NC\MR
-%D \NC last \NC go to the last page \NC\MR
-%D \NC backward \NC go back to the link list \NC\MR
-%D \NC forward \NC go forward in the link list \NC\MR
-%D \NC print \NC enter print mode \NC\MR
-%D \NC exit \NC exit viewer \NC\MR
-%D \NC close \NC close document \NC\MR
-%D \NC enter \NC enter viewer \NC\MR
-%D \NC help \NC show help on the viewer \NC\LR
-%D \HL
-%D \stoptable
-%D \stoplinecorrection
-%D
-%D Options are to be passed as a comma separated list of
-%D assignments.
-
-\installspecial [\dostartexecutecommand] [and] [4]
-\installspecial [\dostopexecutecommand] [and] [0]
-
-%D \macros
-%D {dostartobject,
-%D dostopobject,
-%D doresetobjects,
-%D doinsertobject}
-%D
-%D Reuse of object can reduce the output filesize
-%D considerably. Reusable objects are implemented with:
-%D
-%D \starttyping
-%D \dostartobject{class}{name}{width}{height}{depth}
-%D some typeset material
-%D \dostopobject
-%D \stoptyping
-%D
-%D \starttyping
-%D \doinsertobject{class}{name}
-%D \stoptyping
-%D
-%D The savings can be huge in interactive texts. The next macro needs
-%D to be called after a graphic is inserted (in order to clean up
-%D global references).
-%D
-%D \starttyping
-%D \doresetobjects
-%D \stoptyping
-
-\installspecial [\dostartobject] [or] [5]
-\installspecial [\dostopobject] [or] [0]
-\installspecial [\doinsertobject] [or] [2]
-\installspecial [\doresetobjects] [or] [0]
-
-%D \macros
-%D {doregisterfigure, doregisterfigurecolor}
-%D
-%D Images can be objects as well and it's up to the driver to
-%D handle this. Alternative images are also up to the driver,
-%D and the next macro tells the driver that the previous image
-%D is somehow followed by another and that both have to be
-%D handled together. This is a rather fuzzy model, but for the
-%D moment it suits its purpose: low res screen versions combined
-%D with high res printable ones.
-
-\installspecial [\doregisterfigure] [or] [2]
-\installspecial [\doregisterfigurecolor][or] [1]
-
-% %D \macros
-% %D {dogetobjectreference}
-% %D
-% %D For very special purposes, one can ask for the internal
-% %D reference to the object. Beware!
-%
-% \installspecial [\dogetobjectreference] [or] [3]
-%
-% %D The first argument is the name, the second a macro that
-% %D gets the associated value.
-
-%D \macros
-%D {dostartrunprogram, dostoprunprogram,
-%D dostartgotoprofile, dostopgotoprofile,
-%D dobeginofprofile,
-%D doendofprofile}
-%D
-%D These specials are still experimental. They are not yet
-%D supported by the programs the way they should be.
-%D
-%D {\em --- still undocumented ---}
-
-\installspecial [\dostartrunprogram] [and] [4]
-\installspecial [\dostoprunprogram] [and] [0]
-\installspecial [\dostartgotoprofile] [and] [3]
-\installspecial [\dostopgotoprofile] [and] [0]
-\installspecial [\dobeginofprofile] [and] [4]
-\installspecial [\doendofprofile] [and] [0]
-
-%D \macros
-%D {doinsertbookmark}
-%D
-%D Bookmarks, that is viewer generated tables of contents, are
-%D a strange phenomena, mainly because \TEX\ can provide
-%D whatever kind of table in much better quality.
-
-\installspecial [\doinsertbookmark] [and] [5]
-
-%D This special is called as:
-%D
-%D \starttyping
-%D \doinstallbookmark {level} {nofsubentries} {text} {page} {open}
-%D \stoptyping
-%D
-%D This definition is very \PDF\ oriented, so for more
-%D information we kindly refer to the \PDF\ manuals.
-
-%D \macros
-%D {dosetpagetransition}
-%D
-%D In presentations, fancy page transitions can, at least for a
-%D short moment, let the audience focus at the screen. Like the
-%D previous one, this special is very \PDF.
-%D
-%D \starttyping
-%D \dosetpagetransition{dissolve}{0}
-%D \stoptyping
-%D
-%D Transitions have symbolic names, like dissolve, box, split,
-%D blinds, wipe and glitter. The second argument determines
-%D the wait time (unless zero).
-
-\installspecial [\dosetpagetransition] [or] [2]
-
-%D \macros
-%D {dopresettextfield,dopresetlinefield,
-%D dopresetchoicefield,dopresetpopupfield,dopresetcombofield,
-%D dopresetbuttonfield,dopresetcheckfield,
-%D dopresetradiofield,dopresetradiorecord}
-%D
-%D The special drivers are programmed independant from their
-%D calling macros are thereby use the standard \TEX\ way of
-%D passing parameters. Unfortunately fields often have more
-%D than nine characteristics, so we pack some arguments in one.
-%D
-%D \starttyping
-%D \dopresettextfield / \dopresetlinefield
-%D {name} {width} {height} {default} {length}
-%D {style,color} {options} {alignment} {actions}
-%D
-%D \dopresetchoicefield / \dopresetpopupfield / \dopresetcombofield
-%D {name} {width} {height} {default}
-%D {style,color} {options} {values} {actions}
-%D
-%D \dopresetpushfield
-%D {name} {width} {height} {default}
-%D {options} {values} {actions}
-%D
-%D \dopresetcheckfield
-%D {name} {width} {height} {default}
-%D {options} {values} {actions}
-%D
-%D \dopresetradiofield
-%D {name} {width} {height} {default}
-%D {options} {parent} {values} {actions}
-%D
-%D \dopresetradiorecord
-%D {name} {top} {options} {kids} {actions}
-%D \stoptyping
-
-\installspecial [\dopresetlinefield] [or] [9]
-\installspecial [\dopresettextfield] [or] [9]
-\installspecial [\dopresetchoicefield] [or] [8]
-\installspecial [\dopresetpopupfield] [or] [8]
-\installspecial [\dopresetcombofield] [or] [8]
-\installspecial [\dopresetpushfield] [or] [7]
-\installspecial [\dopresetcheckfield] [or] [7]
-\installspecial [\dopresetradiofield] [or] [8]
-\installspecial [\dopresetradiorecord] [or] [5]
-
-%D \macros
-%D {dodefinefieldset,dogetfieldset,doiffieldset}
-%D
-%D Field sets, used in resetting and submitting, are handled
-%D by:
-
-\installspecial [\dodefinefieldset] [or] [2]
-\installspecial [\dogetfieldset] [or] [1]
-\installspecial [\doiffieldset] [or] [2]
-
-%D \macros
-%D {dosetfieldstatus}
-%D
-%D For practical reasons we set some field characteristics
-%D using:
-%D
-%D \starttyping
-%D \dosetfieldstatus {mode} {parent} {kids} {root}
-%D \stoptyping
-
-\installspecial [\dosetfieldstatus] [or] [4]
-
-%D with:
-
-\def\fieldlonermode {0} % no \chardef here
-\def\fieldparentmode{1} % no \chardef here
-\def\fieldchildmode {2} % no \chardef here
-\def\fieldcopymode {3} % no \chardef here
-
-%D \macros
-%D {doregistercalculationset}
-%D
-%D We can define a calculation order list with:
-%D
-%D \starttyping
-%D \doregistercalculationset {set identifier}
-%D \stoptyping
-
-\installspecial [\doregistercalculationset] [or] [1]
-
-%D \macros
-%D {doinsertcomment, doflushcomments}
-%D
-%D Not so much out of need, but to be complete, we also
-%D implement text annotations, so called comment:
-%D
-%D \starttyping
-%D \doinsertcomment
-%D {title} {width} {height} {color} {open} {symbol} {collect} {data}
-%D \stoptyping
-%D
-%D When enables, comments can be collected and flushed:
-%D
-%D \starttyping
-%D \doflushcomments
-%D \stoptyping
-
-\installspecial[\doinsertcomment] [and] [8]
-\installspecial[\doflushcomments] [and] [0]
-
-%D \macros
-%D {dosetposition, dosetpositionwhd, dosetpositionplus,
-%D dosetpositionpapersize}
-%D
-%D Not natural to \TEX, but available in \PDFTEX, and by
-%D means of postprocessed \DVI, we can save and call upon
-%D positions.
-%D
-%D \starttyping
-%D \dosetposition {identifier}
-%D \dosetpositionwhd {identifier} {width} {height} {depth}
-%D \dosetpositionplus {identifier} {width} {height} {depth} {list}
-%D \dosetpositionpapersize {width} {height}
-%D \stoptyping
-%D
-%D This is one of the few specials where when using \PDFTEX\
-%D the driver directly deals with the utility file.
-
-%D Support is moved to spec-mis.tex. The whole idea originates
-%D and was implemented first in \PDFTEX. Later \DVIPDFMX\
-%D supported the \CONTEXT\ specific specials and nowadays
-%D \PDFTEX\ supports this feature in \DVI\ mode and \XETEX\
-%D implements it as well. This means that only \ALEPH\ is
-%D still dependent on specials, but that variant of \TEX\ has
-%D become obsolete anyway.
-
-% \installspecial [\dosetposition] [or] [1]
-% \installspecial [\dosetpositionwhd] [or] [4]
-% \installspecial [\dosetpositionplus] [or] [5]
-
-% \installspecial [\dosetpositionpapersize] [or] [2]
-
-%D \macros
-%D {dostarttransparency,dostoptransparency}
-%D
-%D \starttyping
-%D \dostarttransparency{fraction}{type}
-%D \dostoptransparency
-%D \stoptyping
-%D
-%D Although in \CONTEXT\ transparency is closely integrated
-%D in the color drivers, in the end it is an independent
-%D feature.
-
-\installspecial [\dostarttransparency] [or] [2]
-\installspecial [\dostoptransparency] [or] [0]
-
-%D \macros
-%D {doattachfile}
-%D
-%D \starttyping
-%D \doattachfile{title}{width}{height}{depth}{color}{symbol}{filename}{source}
-%D \stoptyping
-
-\installspecial [\doattachfile] [or] [8]
-
-%D Experimental (properties):
-
-\installspecial[\dostartviewerlayer] [or] [1]
-\installspecial[\dostopviewerlayer] [or] [0]
-\installspecial[\dodefineviewerlayer] [or] [5]
-%installspecial[\doflushviewertextlayers] [or] [0]
-%installspecial[\doflushviewerpagelayers] [or] [0]
-\installspecial[\domakeviewerlayerlist] [or] [1]
-
-\installspecial[\doinsertrenderingwindow] [or] [4]
-\installspecial[\doinsertrendering] [or] [4]
-\installspecial[\doinsertrenderingobject] [or] [4]
-\installspecial[\doinsertrenderingobject] [or] [4]
-
-\installspecial[\dostartfonteffect] [or] [3]
-\installspecial[\dostopfonteffect] [or] [0]
-
-%D From now on, mapfile loading is also a special; we assume the
-%D more or less standard dvips syntax.
-
-\installspecial[\doresetmapfilelist] [and] [0]
-\installspecial[\doloadmapfile] [and] [2] % + - = | filename
-\installspecial[\doloadmapline] [and] [2] % + - = | fileline
-
-%D We define a couple of backends:
-
-\defineoutput [dvipsone] [dvi,ps,yy]
-\defineoutput [dviwindo] [dvi,ps,yy,win]
-\defineoutput [dvips] [dvi,ps,tr]
-\defineoutput [dviview] [dvi,ps,tr,dv]
-\defineoutput [pdftex] [tpd]
-\defineoutput [pdf] [tpd]
-\defineoutput [dvipdfm] [dpm]
-\defineoutput [dpm] [dpm]
-\defineoutput [dvipdfmx] [dpx]
-\defineoutput [dpx] [dpx]
-\defineoutput [acrobat] [pdf,ps,tr]
-
-\defineoutput [xetex] [dpx,xet]
-\defineoutput [xtx] [dpx,xet]
-\defineoutput [xdv] [dvi,xtx,xet]
-\defineoutput [xdv2pdf] [dvi,xtx,xet]
-
-%D We don't enable \ACROBAT, because pure \POSTSCRIPT\ is not
-%D that strong on objects and \PDFTEX\ does a better job.
-%D Some reasonable alternatives are:
-%D
-%D \starttyping
-%D \setupoutput [dvipsone,acrobat]
-%D \setupoutput [dviwindo,acrobat]
-%D \stoptyping
-%D
-%D Although, better is:
-%D
-%D \starttyping
-%D \setupoutput [pdftex]
-%D \stoptyping
-
-%D Please let me know if we need more. From now on we default
-%D to:
-
-\appendtoks
- \setupoutput[dvips]%
-\to \everydump
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-dpm.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-dpm.mkii
deleted file mode 100644
index fe721405aee..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-dpm.mkii
+++ /dev/null
@@ -1,444 +0,0 @@
-%D \module
-%D [ file=spec-dpm,
-%D version=1998.11.24,
-%D title=\CONTEXT\ Special Macros,
-%D subtitle=DVIPDFM support,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This driver is build on top of the general \PDF\ macros,
-%D as defined in \type{spec-fdf}, so we inherit that one. Remark:
-%D this driver is no longer actively maintained, use the dpx one
-%D instead!
-
-\startspecials[dpm][reset,fdf]
-
-%D \macros
-%D {jobsuffix}
-%D
-%D Because no intermediate output format is used, we set the
-%D jobsuffix to \PDF.
-
-\setjobsuffix{pdf}
-
-%D Literal \PDF\ inclusion is implemented as:
-
-\def\PDFcode #1{\special{pdf: content #1}}
-\def\PDFcontentcode#1{\special{pdf: content #1}}
-\def\PDFdirectcode #1{\special{pdf: literal #1}}
-
-%D \macros
-%D {dosetuppaper}
-%D
-%D A simple one.
-
-\def\doDPMsetuppaper#1#2#3%
- {\bgroup
- \scratchdimen#2\edef\width {\the\scratchdimen\space}%
- \scratchdimen#3\edef\height{\the\scratchdimen\space}%
- \special{pdf: pagesize width \width height \height}%
- \global\let\doDPMsetuppaper\gobblethreearguments
- \egroup}
-
-\definespecial\dosetuppaper#1#2#3%
- {\doDPMsetuppaper{#1}{#2}{#3}}
-
-%D \macros
-%D {doinsertfile}
-%D
-%D Only \METAPOST, \JPG\ and \PDF\ inclusion are supported.
-
-\definespecial\doinsertfile
- {\dofileinsertion{dpm}\@@DriverImageType}
-
-\definefileinsertion{dpm}{mps}%
- {\PointsToWholeBigPoints\@@DriverImageWidth \width
- \PointsToWholeBigPoints\@@DriverImageHeight\height
- \special
- {PSfile="\@@DriverImageFile"\space
- llx=\EPSllx\space lly=\EPSlly\space
- urx=\EPSurx\space ury=\EPSury\space
- rwi=\width0\space rhi=\height0}}
-
-\definefileinsertion{dpm}{pdf}%
- {\special{pdf: epdf
- width \@@DriverImageWidth \space
- height \@@DriverImageHeight\space
- (\@@DriverImageFile)}}
-
-\definefileinsertion{dpm}{jpg}%
- {\special{pdf: image
- width \@@DriverImageWidth \space
- height \@@DriverImageHeight\space
- (\@@DriverImageFile)}}
-
-\definefileinsertion{dpm}{mov}{\doPDFinsertmov}
-\definefileinsertion{dpm}{avi}{\doPDFinsertmov}
-
-%D \macros
-%D {doinsertsoundtrack}
-%D
-%D Sounds are supported too.
-
-\definespecial\doinsertsoundtrack{\doPDFinsertsoundtrack}
-
-%D \macros
-%D {doovalbox}
-
-\definespecial\doovalbox{\doPDFovalbox}
-
-%D \macros
-%D {dostartgraymode,dostopgraymode,
-%D dostartrgbcolormode,dostartcmykcolormode,dostartgraycolormode,
-%D dostopcolormode,
-%D dostartrotation,dostoprotation,
-%D dostartscaling,dostopscaling,
-%D dostartmirroring,dostopmirroring,
-%D dostartnegative,dostopnegative}
-%D
-%D Unfortunately the direct \PDF\ inclusion is not suited
-%D for the next macros, which means that we cannot use the
-%D \type {\doPDF..} alternatives. Since \CONTEXT\ maintains
-%D its own colorstack, we use the \DVIPS\ alternatives.
-
-\definespecial\dostartgraymode #1{\special{color gray #1}}
-\definespecial\dostopgraymode {\special{color gray 0}}
-\definespecial\dostartrgbcolormode #1#2#3{\special{color rgb #1 #2 #3}}
-\definespecial\dostartcmykcolormode#1#2#3#4{\special{color cmyk #1 #2 #3 #4}}
-\definespecial\dostartgraycolormode #1{\special{color gray #1}}
-\definespecial\dostopcolormode {\special{color gray 0}}
-\definespecial\dostartrotation #1{\special{pdf: bt rotate #1}}
-\definespecial\dostoprotation {\special{pdf: et}}
-\definespecial\dostartscaling #1#2{\special{pdf: bt xscale #1 yscale #2}}
-\definespecial\dostopscaling {\special{pdf: et}}
-\definespecial\dostartmirroring {\special{pdf: bt xscale -1}} % ?
-\definespecial\dostopmirroring {\special{pdf: et}}
-
-%D Negation is not (yet) supported:
-
-% \definespecial\dostartnegative {}
-% \definespecial\dostopnegative {}
-% \definespecial\dostarttransparency {}
-% \definespecial\dostoptransparency {}
-
-
-%D \macros
-%D {dosetupinteraction,
-%D dosetupopenaction,dosetupcloseaction}
-
-\definespecial\dosetupinteraction%
- {\showmessage\m!interactions{21}{DVIPDFM}}
-
-\definespecial\dosetupopenaction {\doPDFsetupopenaction}
-\definespecial\dosetupcloseaction{\doPDFsetupcloseaction}
-
-%D \macros
-%D {doresetgotowhereever,
-%D dostartthisisrealpage,dostartthisislocation,
-%D dostartgotorealpage,dostartgotolocation,dostartgotoJS}
-
-\definespecial\doresetgotowhereever {\doPDFresetgotowhereever}
-\definespecial\dostartthisislocation{\doPDFstartthisislocation}
-
-\definespecial\dostartgotolocation{\doPDFstartgotolocation}
-\definespecial\dostartgotorealpage{\doPDFstartgotorealpage}
-\definespecial\dostartgotoJS {\doPDFstartgotoJS}
-
-%D \macros
-%D {doflushJSpreamble}
-
-\definespecial\doflushJSpreamble#1%
- {\bgroup
- \let\compositeJScode=\empty
- \def\docommand##1%
- {\edef\sanitizedJScode{\getJSpreamble{##1}}%
- \@EA\doPSsanitizeJScode\sanitizedJScode\to\sanitizedJScode
- \special{pdf: object @JS:#1 <</S /JavaScript /JS (\sanitizedJScode)>>}%
- \edef\compositeJScode{\compositeJScode\space (##1) @JS:#1}}%
- \processcommalist[#1]\docommand
- \special{pdf: object @JS:JS <</Names [\compositeJScode]>>}%
- \special{pdf: put @names <</JavaScript @JS:JS>>}%
- \egroup}
-
-%D \macros
-%D {dostarthide,dostophide}
-
-\definespecial\dostarthide{}
-\definespecial\dostophide {}
-
-%D \macros
-%D {dosetupscreen}
-
-\definespecial\dosetupscreen {\doPDFsetupscreen \printpaperheight}
-
-\definespecial\dosetupartbox {\doPDFsetupartbox \printpaperheight}
-\definespecial\dosetupcropbox {\doPDFsetupcropbox \printpaperheight}
-\definespecial\dosetupbleedbox{\doPDFsetupbleedbox\printpaperheight}
-\definespecial\dosetuptrimbox {\doPDFsetuptrimbox \printpaperheight}
-
-%D \macros
-%D {dostartexecutecommand}
-
-\definespecial\dostartexecutecommand{\doPDFstartexecutecommand}
-
-%D \macros
-%D {dosetupidentity}
-
-\definespecial\dosetupidentity{\doPDFsetupidentity}
-
-%D \macros
-%D {dostartrunprogam}
-
-\definespecial\dostartrunprogram{\doPDFstartrunprogram}
-
-%D \macros
-%D {dostartgotoprofile, dostopgotoprofile,
-%D dobeginofprofile, doendofprofile}
-
-\definespecial\dostartgotoprofile{\doPDFstartgotoprofile}
-
-\definespecial\dobeginofprofile#1#2#3#4%
- {\bgroup
- \setPDFdestination{#1}%
- \scratchdimen#2\edef\width {\the\scratchdimen\space}%
- \scratchdimen#3\edef\height{\the\scratchdimen\space}%
- \doifsomething{\PDFdestination}
- {\special
- {pdf: thread @ART::\PDFdestination\space
- width \width height \height
- <</Title (\PDFdestination)>>}}%
- \egroup}
-
-\definespecial\doendofprofile%
- {}
-
-%D \macros
-%D {doinsertbookmark}
-
-\definespecial\doinsertbookmark{\doPDFinsertbookmark}
-
-%D \macros
-%D {dostartobject,dostopobject,doinsertobject}
-
-% \definespecial\dostartobject#1#2#3#4#5%
-% {\bgroup
-% \setbox\nextbox=\hbox\bgroup
-% \dosetobjectreference{#1}{#2}{#1::#2}%
-% \scratchdimen#3\edef\width {\the\scratchdimen\space}%
-% \scratchdimen#4\edef\height{\the\scratchdimen\space}%
-% \special{pdf: bxobj @#1::#2 width \width height \height}}
-
-% \definespecial\dostopobject%
-% {\special{pdf: exobj}%
-% \egroup
-% \smashbox\nextbox
-% \flushatshipout{\box\nextbox}%
-% \egroup}
-
-\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}%
- \special{pdf: exobj}%
- \global\let\currentPDFresources\empty}%
- \smashbox\nextbox
- \flushatshipout{\box\nextbox}%
- \egroup}%
- \hbox\bgroup}
-
-\definespecial\dostopobject
- {\egroup}
-
-
-\definespecial\doinsertobject#1#2%
- {\hbox
- {\dogetobjectreference{#1}{#2}\PDFobjectreference
- \ifx\PDFobjectreference\empty \else
- \special{pdf: usexobj @#1::#2}%
- \fi}}
-
-%D \macros
-%D {dosetpagetransition}
-
-\definespecial\dosetpagetransition{\doPDFsetpagetransition}
-
-%D \macros
-%D {doinsertcomment, doflushcomments}
-
-\definespecial\doinsertcomment{\doPDFinsertcomment}
-\definespecial\doflushcomments{\doPDFflushcomments}
-
-%D \macros
-%D {dopresetlinefield,dopresettextfield,
-%D dopresetchoicefield,dopresetpopupfield,dopresetcombofield,
-%D dopresetpushfield,dopresetcheckfield,
-%D dopresetradiofield,dopresetradiorecord}
-
-\definespecial\dopresetlinefield {\doFDFpresetlinefield}
-\definespecial\dopresettextfield {\doFDFpresettextfield}
-\definespecial\dopresetchoicefield{\doFDFpresetchoicefield}
-\definespecial\dopresetpopupfield {\doFDFpresetpopupfield}
-\definespecial\dopresetcombofield {\doFDFpresetcombofield}
-\definespecial\dopresetpushfield {\doFDFpresetpushfield}
-\definespecial\dopresetcheckfield {\doFDFpresetcheckfield}
-\definespecial\dopresetradiofield {\doFDFpresetradiofield}
-\definespecial\dopresetradiorecord{\doFDFpresetradiorecord}
-
-%D \macros
-%D {dodefinefieldset,dogetfieldset,doiffieldset}
-
-\definespecial\dodefinefieldset{\doFDFdefinefieldset}
-\definespecial\dogetfieldset {\doFDFgetfieldset}
-\definespecial\doiffieldset {\doFDFiffieldset}
-
-%D \macros
-%D {doregistercalculationset}
-
-\definespecial\doregistercalculationset{\doFDFregistercalculationset}
-
-%D \macros
-%D {doPDFdestination}
-
-\def\doPDFdestination#1%
- {\special{pdf: dest (#1) [@thispage /View [/Fit]]}}
-
-%D \macros
-%D {doPDFaction,doPDFannotation,ifsharePDFactions}
-%D
-%D Sharing is not yet supported.
-
-\newif\ifsharePDFactions \sharePDFactionsfalse
-
-\def\dodoPDFaction#1#2#3#4%
- {\ifcollectreferenceactions
- \xdef\lastPDFaction{#4}%
- \else
- \bgroup
- % this is yet untested
- %\ifsharePDFactions
- % \ifcase\similarreference\relax
- % \xdef\lastPDFaction{<<#4>>}%
- % \or
- % \global\advance\nofPDFsimilar by 1
- % \special{pdf: object @PDF::sim:\the\nofPDFsimilar\space<<#4>>}%
- % \xdef\lastPDFaction{@PDF::sim:\the\nofPDFsimilar}%
- % \else
- % % leave \lastPDFaction untouched
- % \fi
- %\else
- \xdef\lastPDFaction{<<#4>>}%
- %\fi
- \scratchdimen#2\edef\width {\the\scratchdimen\space}%
- \scratchdimen#3\edef\height{\the\scratchdimen\space}%
- \special{pdf: ann #1 width \width height \height
- <</Subtype /Link /Border [0 0 0]
- \ifhighlighthyperlinks \else /H /N \fi
- /A \lastPDFaction\space>>}%
- \egroup
- \fi}
-
-\def\doPDFaction#1#2#3%
- {\dodoPDFaction\empty{#1}{#2}{#3}}
-
-\def\doPDFannotation#1#2#3%
- {\bgroup
- \scratchdimen#1\edef\width {\the\scratchdimen\space}%
- \scratchdimen#2\edef\height{\the\scratchdimen\space}%
- \special{pdf: ann width \width height \height
- <</Subtype /Link /Border [0 0 0] /A <<#3>>}%
- \egroup}
-
-%D \macros
-%D {doPDFannotationobject,doPDFactionobject}
-
-\def\doPDFannotationobject#1#2#3#4#5%
- {\bgroup
- \scratchdimen#3\edef\width {\the\scratchdimen\space}%
- \scratchdimen#4\edef\height{\the\scratchdimen\space}%
- \special{pdf: ann @#1::#2 width \width height \height <<#5>>}%
- \dosetobjectreference{#1}{#2}{@#1::#2}%
- \egroup}
-
-\def\doPDFactionobject#1#2#3#4#5%
- {\dodoPDFaction{@#1::#2}{#3}{#4}{#5}%
- \dosetobjectreference{#1}{#2}{#1::#2}}
-
-%D \macros
-%D {doPDFaddtocatalog,doPDFaddtoinfo,
-%D doPDFpageattribute,doPDFpagesattribute}
-
-\def\doPDFaddtocatalog#1%
- {\special{pdf: put @catalog <<#1>>}}
-
-\def\doPDFaddtoinfo#1% Is this auto appended? Not checked!
- {\special{pdf: docinfo <<#1>>}} % put @docinfo <<#1>>}}
-
-\def\doPDFpageattribute#1%
- {\special{pdf: put @thispage <<#1>>}}
-
-\def\doPDFpagesattribute#1%
- {\special{pdf: put @pages <<#1>>}}
-
-\def\doPDFpageresource#1%
- {\message{[skipping PDF resource]}}
-
-\let\doPDFresetpageresources \relax
-\let\doPDFresetpageattributes\relax
-
-%D \macros
-%D {doPDFbookmark}
-
-\def\doPDFbookmark#1#2#3#4#5%
- {\ifcase#2\else
- \scratchcounter#4\advance\scratchcounter\minusone
- \special{pdf: out \ifcase#5-\fi#2
- % <</Page \the\scratchcounter\space /View [/Fit] /Title (#3)>>}%
- % <</Title (#3) /A <</S /GoTo /D [@page\number#4\space\PDFpageviewwrd]>> >>}%
- <</Title \ifPDFunicode<#3>\else(#3)\fi\space /A <</S /GoTo /D [@page\number#4\space\PDFpageviewwrd]>> >>}%
- \fi}
-
-%D \macros
-%D {doPDFdictionaryobject,doPDFarrayobject}
-
-\def\doPDFdictionaryobject#1#2#3%
- {\special{pdf: object @#1::#2 <<#3>>}}
-
-\def\doPDFarrayobject#1#2#3%
- {\special{pdf: object @#1::#2 [#3]}}
-
-%D \macros
-%D {defaultobjectreference,doPDFgetobjectreference}
-
-\def\defaultobjectreference#1#2{#1::#2}
-
-\def\doPDFgetobjectreference#1#2#3%
- {\dogetobjectreference{#1}{#2}#3%
- \ifx#3\empty\else\edef#3{{#3}}\fi}
-
-% \def\doPDFgetobjectpage #1#2#3{..}
-% \def\doPDFgetobjectpagereference#1#2#3{..}
-
-\def\doPDFgetpagereference#1#2%
- {\edef#2{@page#1}}
-
-%D Done.
-
-\stopspecials
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-dpx.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-dpx.mkii
deleted file mode 100644
index 323152e0b3c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-dpx.mkii
+++ /dev/null
@@ -1,792 +0,0 @@
-%D \module
-%D [ file=spec-dpx,
-%D version=2005.08.12,
-%D title=\CONTEXT\ Special Macros,
-%D subtitle=DVIPDFMx support,
-%D author=Jin-Hwan Cho,
-%D date=\currentdate,
-%D copyright={Jin-Hwan Cho \& Hans Hagen}]
-%C
-%C DVIPDFMx is an eXtended version of the DVIPDFM, a DVI to PDF
-%C translator, still under construction by Jin-Hwan Cho and
-%C Shunsaku Hirata.
-%C
-%C It supports multi-byte character encodings and large character
-%C sets for East Asian languages by CID-keyed font technology,
-%C and many features including PDF encryption, PDF bookmarks and
-%C annotations with Chinese, Japanese, Korean characters, etc.
-%C
-%C DVIPDFMx (and information) can be downloaded from:
-%C
-%C http://project.ktug.or.kr/dvipdfmx/
-
-%D This driver is built on top of the general \PDF\ macros,
-%D as defined in \type{spec-fdf}, so we inherit that one.
-
-\startspecials[dpx][reset,fdf]
-
-%D 1. Modified codes from \type{spec-dpm}
-
-%D \macros
-%D {jobsuffix}
-%D
-%D Because no intermediate output format is used, we set the
-%D jobsuffix to \PDF.
-
-\setjobsuffix{pdf}
-
-%D Map files (experimental)
-
-\definespecial\doloadmapfile#1#2%
- {\flushatshipout{\special{pdf:mapfile +#2}}}
-
-%D DVIPDFMx supports the special command \type{pdf: literal ...}
-%D since the version \type{dvipdfmx-20021028}.
-%D
-%D 1. \type{pdf: literal #1} puts the given PDF commands \#1
-%D after changing the text matrix with \type{"1 0 0 1 x y cm"}
-%D to set the current DVI position $(x,y)$ to the origin.
-%D
-%D 2. \type{pdf: literal reverse #1} puts the given PDF commands \#1
-%D after changing the text matrix with \type{"1 0 0 1 -x -y cm"}.
-%D
-%D 3. \type{pdf: literal direct #1} puts directly the given PDF
-%D commands \#1 without changing the text matrix.
-%D
-%D Since the version \type{dvipdfmx-20050812}, the role of the special
-%D command \type{pdf:literal} is changed so that
-%D
-%D 1. \type{pdf:literal #1} puts the given PDF commands \#1
-%D after changing the text matrix with \type{"1 0 0 1 x y cm"}
-%D to set the current DVI position $(x,y)$ to the origin. After that
-%D it restores the previous setting by changing the text matrix with
-%D \type{"1 0 0 1 -x -y cm"}.
-%D
-%D 2. \type{pdf:literal direct #1} puts directly the given PDF commands
-%D \type {#1} without changing the text matrix.
-%D
-%D Literal \PDF\ inclusion is implemented as:
-
-\def\PDFcode #1{\special{pdf:literal #1}}
-\def\PDFcontentcode#1{\special{pdf:content #1}}
-\def\PDFdirectcode #1{\special{pdf:literal direct #1}}
-
-%D \type{\dosetuppaper} in \type{spec-dpm} did not work properly
-%D because DVIPDFM did not permit changing the page size.
-%D
-%D However, DVIPDFMx permits different page size in each page
-%D since the version \type{dvipdfmx-20021028}.
-%D
-%D \macros
-%D {dosetuppaper}
-%D
-%D A simple one.
-
-\let\PDFpagexyzspec\relax \def\PDFpagexyzspec{@xpos @ypos 0} % untested
-
-\definespecial\dosetuppaper#1#2#3%
- {\bgroup
- \scratchdimen#2\edef\width {\the\scratchdimen\space}%
- \scratchdimen#3\edef\height{\the\scratchdimen\space}%
- \special{pdf:pagesize width \width height \height}%
- \egroup}
-
-%D \macros
-%D {doinsertfile}
-%D
-%D Only \METAPOST, \BMP\ \JPG\ \PNG\ and \PDF\ inclusion are supported.
-
-\definespecial\doinsertfile
- {\dofileinsertion{dpx}\@@DriverImageType}
-
-%D Even though DVIPDFM supports \METAPOST directly, the funtionality
-%D is not good. It conflicts much with \CONTEXT.
-%D
-%D So, \METAPOST will be treated as the same way as PDFTeX using
-%D MPtoPDF in DVIPDFMx since the version \type{dvipdfmx-20021028}.
-
-%D DVIPDFM (and DVIPDFMx too) supports the image files with
-%D the extension, \PDF, \JPG, \PNG, \BMP, and \EPS.
-
-% \def\handleepsimage
-% {\PointsToWholeBigPoints\@@DriverImageWidth \width
-% \PointsToWholeBigPoints\@@DriverImageHeight\height
-% \special
-% {PSfile="\@@DriverImageFile"\space
-% llx=\EPSllx\space lly=\EPSlly\space
-% urx=\EPSurx\space ury=\EPSury\space
-% rwi=\width0\space rhi=\height0}}
-
-% \definefileinsertion{dpx}{mps}{\handleepsimage}
-
-\definefileinsertion{dpx}{mps}
- {\hbox
- {\convertMPtoPDF\@@DriverImageFile{1}{1}%
- \global\let\PDFimagereference\empty}}
-
-\def\handlebmpimage
- {\special{pdf: image
- width \@@DriverImageWidth \space
- height \@@DriverImageHeight\space
- (\@@DriverImageFile)}}
-
-\definefileinsertion{dpx}{pdf}{\handlebmpimage}
-\definefileinsertion{dpx}{jpg}{\handlebmpimage}
-\definefileinsertion{dpx}{png}{\handlebmpimage}
-\definefileinsertion{dpx}{bmp}{\handlebmpimage}
-
-\definefileinsertion{dpx}{mov}{\doPDFinsertmov}
-\definefileinsertion{dpx}{avi}{\doPDFinsertmov}
-
-%D \macros
-%D {doinsertsoundtrack}
-%D
-%D Sounds are supported too.
-
-\definespecial\doinsertsoundtrack{\doPDFinsertsoundtrack}
-
-%D \macros
-%D {doovalbox}
-
-\definespecial\doovalbox{\doPDFovalbox}
-
-%D \macros
-%D {dostartgraymode,dostopgraymode,
-%D dostartrgbcolormode,dostartcmykcolormode,dostartgraycolormode,
-%D dostopcolormode,
-%D dostartrotation,dostoprotation,
-%D dostartscaling,dostopscaling,
-%D dostartmirroring,dostopmirroring,
-%D dostartnegative,dostopnegative}
-%D
-%D Unfortunately the direct \PDF\ inclusion is not suited
-%D for the next macros, which means that we cannot use the
-%D \type {\doPDF..} alternatives. Since \CONTEXT\ maintains
-%D its own colorstack, we use the \DVIPS\ alternatives.
-
-\definespecial\dostartgraymode {\doPDFstartgraymode}
-\definespecial\dostopgraymode {\doPDFstopgraymode}
-\definespecial\dostartrgbcolormode {\doPDFstartrgbcolormode}
-\definespecial\dostartcmykcolormode{\doPDFstartcmykcolormode}
-\definespecial\dostartgraycolormode{\doPDFstartgraycolormode}
-\definespecial\dostartspotcolormode{\doPDFstartspotcolormode}
-\definespecial\dostopcolormode {\doPDFstopcolormode}
-
-\definespecial\doregistercmykspotcolor{\doPDFregistercmykspotcolor}
-\definespecial\doregisterrgbspotcolor {\doPDFregisterrgbspotcolor}
-\definespecial\doregistergrayspotcolor{\doPDFregistergrayspotcolor}
-
-\definespecial\doregistercmykindexcolor{\doPDFregistercmykindexcolor}
-\definespecial\doregisterrgbindexcolor {\doPDFregisterrgbindexcolor}
-\definespecial\doregistergrayindexcolor{\doPDFregistergrayindexcolor}
-
-\definespecial\doregisterfigurecolor{\doPDFregisterfigurecolor}
-
-\definespecial\dostartnonecolormode{\doPDFstartnonecolormode}
-\definespecial\doregisternonecolor {\doPDFregisternonecolor}
-
-\definespecial\dostartrotation #1{\special{pdf:btrans rotate #1}}
-\definespecial\dostoprotation {\special{pdf:etrans}}
-\definespecial\dostartscaling#1#2{\special{pdf:btrans xscale #1 yscale #2}}
-\definespecial\dostopscaling {\special{pdf:etrans}}
-\definespecial\dostartmirroring {\special{pdf:btrans xscale -1}}
-\definespecial\dostopmirroring {\special{pdf:etrans}}
-
-%D Negation is not (yet) supported:
-\definespecial\dostartnegative {\doPDFstartnegative}
-\definespecial\dostopnegative {\doPDFstopnegative}
-\definespecial\dostartoverprint {\doPDFstartoverprint}
-\definespecial\dostopoverprint {\doPDFstopoverprint}
-
-\definespecial\dostarttransparency{\doPDFstarttransparency}
-\definespecial\dostoptransparency {\doPDFstoptransparency}
-
-\PDFtransparencysupportedtrue
-
-\def\@@PDT{@PDT@}
-
-\ifx\PDFcurrenttransparency\undefined
- \newcount\PDFcurrenttransparency \PDFcurrenttransparency=0 % -1
-\fi
-
-\def\assignPDFtransparency#1#2%
- {\def\PDFtransparencyidentifier{/Tr#1}%
- \def\PDFtransparencyreference{@TR:#2}} % todo: \PDFobjref{TR:#2}
-
-\def\presetPDFtransparency#1#2%
- {\initializePDFtransparency
- \executeifdefined{\@@PDT#1:#2}{\dopresetPDFtransparency{#1}{#2}}}
-
-\def\dopresetPDFtransparency#1#2%
- {\global\advance\PDFcurrenttransparency \plusone
- \doPDFreserveDPXobject{TR:\the\PDFcurrenttransparency}{<< >>}% hack
- \special{pdf:\doPDFcheckedDPXobject{TR:\the\PDFcurrenttransparency}\PDFtransparancydictionary{#1}{#2}{}}%
- \edef\PDFtransparencyidentifier{/Tr\the\PDFcurrenttransparency}%
- \edef\PDFtransparencyreference {@TR:\the\PDFcurrenttransparency}%
- \setxvalue{\@@PDT#1:#2}%
- {\noexpand\assignPDFtransparency{\the\PDFcurrenttransparency}{\the\PDFcurrenttransparency}}%
- \appendtoPDFdocumentextgstates
- {\PDFtransparencyidentifier\space
- \PDFtransparencyreference\space}}
-
-\def\initializePDFtransparency
- {\doPDFreserveDPXobject{TR:0}{<< >>}% hack
- \special{pdf:\doPDFcheckedDPXobject{TR:0}\PDFtransparancydictionary{1}{1}{/AIS false}}%
- \xdef\PDFtransparencyresetidentifier{/Tr0}%
- \xdef\PDFtransparencyresetreference{@TR:0}%
- \setxvalue{\@@PDT0:0}%
- {\noexpand\assignPDFtransparency{0}{0}}%
- \appendtoPDFdocumentextgstates
- {\PDFtransparencyresetidentifier\space
- \PDFtransparencyresetreference\space}%
- \global\let\initializePDFtransparency\relax}
-
-%D \macros
-%D {dosetupinteraction,
-%D dosetupopenaction,dosetupcloseaction}
-
-\definespecial\dosetupinteraction
- {\showmessage\m!interactions{21}{DVIPDFMx}}
-
-\definespecial\dosetupopenaction {\doPDFsetupopenaction}
-\definespecial\dosetupcloseaction{\doPDFsetupcloseaction}
-
-%D \macros
-%D {doresetgotowhereever,
-%D dostartthisisrealpage,dostartthisislocation,
-%D dostartgotorealpage,dostartgotolocation,dostartgotoJS}
-
-\definespecial\doresetgotowhereever {\doPDFresetgotowhereever}
-\definespecial\dostartthisislocation{\doPDFstartthisislocation}
-
-\definespecial\dostartgotolocation{\doPDFstartgotolocation}
-\definespecial\dostartgotorealpage{\doPDFstartgotorealpage}
-\definespecial\dostartgotoJS {\doPDFstartgotoJS}
-
-%D \macros
-%D {doflushJSpreamble}
-
-\definespecial\doflushJSpreamble#1%
- {\bgroup
- \let\compositeJScode\empty
- \def\docommand##1%
- {\edef\sanitizedJScode{\getJSpreamble{##1}}%
- \@EA\doPSsanitizeJScode\sanitizedJScode\to\sanitizedJScode
- \special{pdf:object @JS:##1 <</S /JavaScript /JS (\sanitizedJScode)>>}%
- \edef\compositeJScode{\compositeJScode\space (##1) @JS:##1}}%
- \processcommalist[#1]\docommand
- \special{pdf:names /JavaScript [\compositeJScode]}%
- \egroup}
-
-%D \macros
-%D {dostarthide,dostophide}
-
-\definespecial\dostarthide{}
-\definespecial\dostophide {}
-
-%D \macros
-%D {dosetupscreen}
-
-\definespecial\dosetupscreen {\doPDFsetupscreen \printpaperheight}
-
-\definespecial\dosetupartbox {\doPDFsetupartbox \printpaperheight}
-\definespecial\dosetupcropbox {\doPDFsetupcropbox \printpaperheight}
-\definespecial\dosetupbleedbox{\doPDFsetupbleedbox\printpaperheight}
-\definespecial\dosetuptrimbox {\doPDFsetuptrimbox \printpaperheight}
-
-%D \macros
-%D {dostartexecutecommand}
-
-\definespecial\dostartexecutecommand{\doPDFstartexecutecommand}
-
-%D \macros
-%D {dosetupidentity}
-
-\definespecial\dosetupidentity{\doPDFsetupidentity}
-
-%D \macros
-%D {dostartrunprogam}
-
-\definespecial\dostartrunprogram{\doPDFstartrunprogram}
-
-%D \macros
-%D {dostartgotoprofile, dostopgotoprofile,
-%D dobeginofprofile, doendofprofile}
-
-\definespecial\dostartgotoprofile{\doPDFstartgotoprofile}
-
-\definespecial\dobeginofprofile#1#2#3#4%
- {\bgroup
- \setPDFdestination{#1}%
- \scratchdimen#2\edef\width {\the\scratchdimen\space}%
- \scratchdimen#3\edef\height{\the\scratchdimen\space}%
- \doifsomething{\PDFdestination}
- {\special
- {pdf:thread @ART::\PDFdestination\space
- width \width height \height
- <</Title (\PDFdestination)>>}}%
- \egroup}
-
-\definespecial\doendofprofile
- {}
-
-%D \macros
-%D {doinsertbookmark}
-
-\definespecial\doinsertbookmark{\doPDFinsertbookmark}
-
-%D \macros
-%D {dostartobject,dostopobject,doinsertobject}
-%D
-%D Modified to support the color shading feature since version
-%D \type{dvipdfmx-20021128}.
-
-% wd nextbox > #3 ivm offset
-
-% \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
- {\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 @#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>>}%
- \global\let\currentPDFresources\empty
- \fi
- \special{pdf:exobj}}%
- \finalizeobjectbox\nextbox
- \smashbox\nextbox
- \flushatshipout{\box\nextbox}%
- \egroup}%
- \hbox\bgroup}
-
-\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
- \ifx\PDFobjectreference\empty \else
- \special{pdf:uxobj @#1::#2}%
- \fi}}
-
-%D \macros
-%D {dosetpagetransition}
-
-\definespecial\dosetpagetransition{\doPDFsetpagetransition}
-
-%D \macros
-%D {doinsertcomment, doflushcomments}
-
-\definespecial\doinsertcomment{\doPDFinsertcomment}
-\definespecial\doflushcomments{\doPDFflushcomments}
-
-%D \macros
-%D {dopresetlinefield,dopresettextfield,
-%D dopresetchoicefield,dopresetpopupfield,dopresetcombofield,
-%D dopresetpushfield,dopresetcheckfield,
-%D dopresetradiofield,dopresetradiorecord}
-
-\definespecial\dopresetlinefield {\doFDFpresetlinefield}
-\definespecial\dopresettextfield {\doFDFpresettextfield}
-\definespecial\dopresetchoicefield{\doFDFpresetchoicefield}
-\definespecial\dopresetpopupfield {\doFDFpresetpopupfield}
-\definespecial\dopresetcombofield {\doFDFpresetcombofield}
-\definespecial\dopresetpushfield {\doFDFpresetpushfield}
-\definespecial\dopresetcheckfield {\doFDFpresetcheckfield}
-\definespecial\dopresetradiofield {\doFDFpresetradiofield}
-\definespecial\dopresetradiorecord{\doFDFpresetradiorecord}
-
-%D \macros
-%D {dodefinefieldset,dogetfieldset,doiffieldset}
-
-\definespecial\dodefinefieldset{\doFDFdefinefieldset}
-\definespecial\dogetfieldset {\doFDFgetfieldset}
-\definespecial\doiffieldset {\doFDFiffieldset}
-
-%D \macros
-%D {doregistercalculationset}
-
-\definespecial\doregistercalculationset{\doFDFregistercalculationset}
-
-%D \type{\doPDFdestination} in \type{spec-dpm} had a bug.
-%D
-%D \macros
-%D {doPDFdestination}
-
-\def\doPDFdestination#1%
- {\special{pdf:names /Dests (#1) [@thispage \PDFpageviewwrd]}}
-
-%D \macros
-%D {doPDFaction,doPDFannotation,ifsharePDFactions}
-%D
-%D Sharing is not yet supported.
-
-\newif\ifsharePDFactions \sharePDFactionsfalse
-
-\def\dodoPDFaction#1#2#3#4%
- {\ifcollectreferenceactions
- \xdef\lastPDFaction{#4}%
- \else
- \bgroup
- % this is yet untested
- %\ifsharePDFactions
- % \ifcase\similarreference\relax
- % \xdef\lastPDFaction{<<#4>>}%
- % \or
- % \global\advance\nofPDFsimilar by 1
- % \special{pdf: object @PDF::sim:\the\nofPDFsimilar\space<<#4>>}%
- % \xdef\lastPDFaction{@PDF::sim:\the\nofPDFsimilar}%
- % \else
- % % leave \lastPDFaction untouched
- % \fi
- %\else
- \xdef\lastPDFaction{<<#4>>}%
- %\fi
- \scratchdimen#2\edef\width {\the\scratchdimen\space}%
- \scratchdimen#3\edef\height{\the\scratchdimen\space}%
- \special{pdf:ann #1 width \width height \height
- <</Subtype /Link /Border [0 0 0]
- \ifhighlighthyperlinks \else /H /N \fi
- /A \lastPDFaction\space>>}%
- \egroup
- \fi}
-
-\def\doPDFaction#1#2#3%
- {\dodoPDFaction\empty{#1}{#2}{#3}}
-
-%D \type{\doPDFannotation} in \type{spec-dpm} had a bug.
-%D
-%D \type{\doPDFannotation} conflicts with \type{\doPDFinsertmov},
-%D since width and height also defined in \type{\doPDFinsertmov}.
-
-\def\doPDFannotation#1#2#3%
- {\bgroup
- \edef\data{#3}%
- \scratchdimen#1\edef\width {\the\scratchdimen\space}%
- \scratchdimen#2\edef\height{\the\scratchdimen\space}%
- \special{pdf:ann width \width height \height <<\data>>}%
- \egroup}
-
-%D \macros
-%D {doPDFannotationobject,doPDFactionobject}
-
-\def\doPDFannotationobject#1#2#3#4#5%
- {\bgroup
- \scratchdimen#3\edef\width {\the\scratchdimen\space}%
- \scratchdimen#4\edef\height{\the\scratchdimen\space}%
- \special{pdf:ann @#1::#2 width \width height \height <<#5>>}%
- \dosetobjectreference{#1}{#2}{@#1::#2}%
- \egroup}
-
-\def\doPDFactionobject#1#2#3#4#5%
- {\dodoPDFaction{@#1::#2}{#3}{#4}{#5}%
- \dosetobjectreference{#1}{#2}{@#1::#2}}
-
-%D \macros
-%D {doPDFaddtocatalog,doPDFaddtoinfo,
-%D doPDFpageattribute,doPDFpagesattribute}
-
-% we could move much more to spec-fdf
-
-% \ifx\pdfcatalog \undefined \newtoks\pdfcatalog \fi
-% \ifx\pdfinfo \undefined \newtoks\pdfinfo \fi
-% \ifx\pdfpageattr \undefined \newtoks\pdfpageattr \fi
-% \ifx\pdfpageresources\undefined \newtoks\pdfpageresources \fi
-% \ifx\pdfpagesattr \undefined \newtoks\pdfpagesattr \fi
-
-% \def\doPDFaddtocatalog #1{\expanded{\global\pdfcatalog {#1\the\pdfcatalog }}}
-% \def\doPDFaddtoinfo #1{\expanded{\global\pdfinfo {#1\the\pdfinfo }}}
-% \def\doPDFpageattribute #1{\expanded{\global\pdfpageattr {#1\the\pdfpageattr }}}
-% \def\doPDFpageresource #1{\expanded{\global\pdfpageresources{#1\the\pdfpageresources}}}
-% \def\doPDFpagesattribute#1{\expanded{\global\pdfpagesattr {#1\the\pdfpagesattr }}}
-
-% \def\doPDFresetpageattributes{\global\pdfpageattr\emptytoks}
-% \def\doPDFresetpageresources {\global\pdfpageresources\emptytoks}
-
-% \appendtoks
-% \special{pdf: put @catalog <<#1>>}%
-% \special{pdf: docinfo <<#1>>}%
-% \special{pdf: put @pages <<#1>>}%
-% \to \everylastshipout
-
-% \appendtoks
-% \special{pdf: put @thispage <<#1>>}%
-% \to\everyshipout
-
-\def\doPDFaddtocatalog#1%
- {\special{pdf:put @catalog <<#1>>}}
-
-\def\doPDFaddtoinfo#1%
- {\special{pdf:put @docinfo <<#1>>}}
-
-\def\doPDFpageattribute#1%
- {\special{pdf:put @thispage <<#1>>}}
-
-\def\doPDFpagesattribute#1%
- {\special{pdf:put @pages <<#1>>}}
-
-\def\doPDFpageresource#1%
- {\special{pdf:put @resources <<#1>>}}
-
-\let\doPDFresetpageresources \relax
-\let\doPDFresetpageattributes\relax
-
-%D \type{\doPDFbookmark} in \type{spec-dpm} had a bug.
-%D The openbookmark option \#5 is not supported yet.
-%D
-%D \macros
-%D {doPDFbookmark}
-
-\def\doPDFbookmark#1#2#3#4#5%
- {\ifcase#1\else
- %\scratchcounter#4\advance\scratchcounter\minusone
- \special{pdf:outline #1 %\ifcase#5 opened\fi
- % <</Title (#3) /A <</S /GoTo /D (page:\the\scratchcounter)>>>>}%
- % <</Title (#3) /A <</S /GoTo /D [@page\number#4\space\PDFpageviewwrd]>> >>}%
- <</Title \ifPDFunicode<#3>\else(#3)\fi\space /A <</S /GoTo /D [@page\number#4\space\PDFpageviewwrd]>> >>}%
- \fi}
-
-%D \macros
-%D {doPDFdictionaryobject,doPDFarrayobject}
-
-% Dvipdfmx can't handle
-%
-% \special{pdf:put @foo << /Bar @bar >>}
-% \special{pdf:put @bar << /Foo @foo >>}
-%
-% Objects must be defined before they are used.
-%
-% \special{pdf:obj @foo << >>}
-% \special{pdf:obj @bar << >>}
-% \special{pdf:put @foo << /Bar @bar >>}
-% \special{pdf:put @bar << /Foo @foo >>}
-%
-% However, this only works for dictionary and array.
-
-\def\doPDFreserveDPXobject#1#2%
- {\ifundefined{r:pdx:d:#1}%
- % we need a \flushatshipoutprep (prepended, normally appended)
- \flushatshipout{\special{pdf:object @#1 #2}}%
- \global\letvalue{r:pdx:d:#1}\empty
- \fi}
-
-\def\doPDFreserveDPXobjectfirst#1#2%
- {\ifundefined{r:pdx:d:#1}%
- \doglobal\prependtoks\special{pdf:object @#1 #2}\to\everyfirstshipout
- \global\letvalue{r:pdx:d:#1}\empty
- \fi}
-
-\def\doPDFcheckedDPXobject#1{\ifundefined{r:pdx:d:#1}object\else put\fi\space @#1\space}
-
-% new, experimental, can save a run, bugged, too many xforms now
-%
-% \def\doreservePDFobject#1#2%
-% {\dosetobjectreference{#1}{#2}{@#1::#2}}
-%
-% \def\doPDFreserveddictionaryobject#1#2#3%
-% {\flushatshipout{\special{pdf:object @#1::#2 << #3 >>}}}
-%
-% \def\doPDFreservedarrayobject#1#2#3%
-% {\flushatshipout{\special{pdf:object @#1::#2 [ #3 ]}}}
-%
-% \doreservePDFobject{FDF}{docuextgstates}
-% \doreservePDFobject{FDF}{colorspaces}
-% \doreservePDFobject{FDF}{docushades}
-
-% so this is to be checked
-
-\def\doPDFdictionaryobject#1#2#3%
- {\flushatshipout
- {\special{pdf:\doPDFcheckedDPXobject{#1::#2}<<#3>>}%
- \dosetobjectreference{#1}{#2}{@#1::#2}}}
-
-\def\doPDFarrayobject#1#2#3%
- {\flushatshipout
- {\special{pdf:\doPDFcheckedDPXobject{#1::#2}[#3]}%
- \dosetobjectreference{#1}{#2}{@#1::#2}}}
-
-%D \macros
-%D {defaultobjectreference,doPDFgetobjectreference}
-
-\def\defaultobjectreference#1#2{@#1::#2}
-
-%D \type{\doPDFgetobjectreference} in \type{spec-dpm} had a bug.
-
-\def\doPDFgetobjectreference#1#2#3%
- {\dogetobjectreference{#1}{#2}#3%
- \ifx#3\empty\else\edef#3{#3}\fi}
-
-\def\doPDFgetpagereference#1#2%
- {\edef#2{@page#1}}
-
-%D Done.
-
-% %D 2. Modified codes from \type{spec-fdf}
-%
-% \definespecial\dostartgraphicgroup{\special{pdf: literal direct q}}
-% \definespecial\dostopgraphicgroup {\special{pdf: literal direct Q}}
-
-%D 3. Copied codes from \type{spec-tpd}
-
-%D \macros
-%D {dostartclipping,dostopclipping}
-%D
-%D Clipping in \PDFTEX\ is rather trivial. We can even hook
-%D in \METAPOST\ without problems.
-
-\definespecial\dostartclipping#1#2#3%
- {\PointsToBigPoints{#2}\width
- \PointsToBigPoints{#3}\height
- \grabMPclippath{#1}{1}\width\height
- {0 0 m \width\space 0 l \width \height l 0 \height l}%
- \PDFcode
- {q 0 w \MPclippath\space W n}}
-
-\definespecial\dostopclipping
- {\PDFcode{Q n}}
-
-%D 4. Modified codes from \type{supp-pdf}
-
-\def\dosetMPsomePDFshade#1#2%
- {\global\advance\currentPDFshade \plusone
- \special{pdf:object @ftn:Sh:\currentPDFshade\space
- <</FunctionType 2
- /Domain [\gMPs1 \gMPs2]
- /C0 [\MPshadeA]
- /C1 [\MPshadeB]
- /N \gMPs3>>}%
- \special{pdf:object @obj:Sh:\currentPDFshade\space
- <</ShadingType #1
- /ColorSpace /\MPresolvedspace
- /Function @ftn:Sh:\currentPDFshade\space
- /Coords [\MPshadeC]
- /Extend [true true]>>}%
- \appendtoPDFdocumentshades{/Sh\the\currentPDFshade\space @obj:Sh:\currentPDFshade}%
- \setxvalue{\@@MPSK#2}{\noexpand\dohandleMPshade{\the\currentPDFshade}}}
-
-\def\handleMPfigurespecial#1#2#3#4#5#6#7% toto : combine with ext fig
- {\doiffileelse{#7}
- {\vbox to \zeropoint
- {\vss
- \hbox to \zeropoint
- {\special{pdf:btrans matrix #1 #2 #3 #4 #5 #6}%
- \rlap{\special{pdf:image width 1bp height 1bp (#7)}}
- \special{pdf:etrans}\hss}}}
- {\message{[unknown figure #7]}}}
-
-%D 5. Modified codes from \type{supp-pdf}
-
-\let\handleMPfshow\dohandleMPfshow
-
-\newcounter\MPPDFcounter
-
-\newcounter\MPPDFobjectcounter
-
-\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}}%
- \finalizeobjectbox#2%
- \box#2%
- \doDVIPDFMXstopobject}
-
-\let\getMPPDFobject\gobbletwoarguments
-
-\definespecial\doinsertMPfile#1%
- {\doiffileelse{./#1}{\includeMPasPDF{./#1}}{\message{[MP #1]}}}
-
-%D Experimental (untested):
-
-\definespecial\dostartfonteffect#1#2#3%
- {\ifdim#2>\zeropoint
- \PointsToBigPoints{#2}\ascii
- \PDFdirectcode{\ascii\space w}%
- \fi
- \ifdim#3\points=\onepoint\else
- \scratchdimen#3\points
- \PDFdirectcode{\withoutpt{\the\scratchdimen}\space Tc}%
- \fi
- \PDFdirectcode{\purenumber#1 Tr}}
-
-\definespecial\dostopfonteffect
- {\PDFdirectcode{1 w 0 Tc 0 Tr}}
-
-%D 6. Modified codes from \type{core-obj}
-%D
-%D In the viewpoint of TeX, the special command \type{pdf:uxobj @obj}
-%D generates a box with zero point width and zero point height so that
-%D it must be careful to place the box at the reference point.
-
-\def\dogetobject#1#2#3#4#5#6#7% don't change this, should work for dvi & pdf
- {\initializepaper
- \forgetall
- \dontshowcomposition
- \setbox\scratchbox\vbox
- {\doinsertobject{#1}{#2}}%
- \setbox\scratchbox#3%
- {\vbox to #5\scaledpoint
- {\ifdim\ht\scratchbox>#5\scaledpoint
- \vss\hbox to #4\scaledpoint{\hss\box\scratchbox\hss}\vss
- \else\ifdim\wd\scratchbox>#4\scaledpoint
- \vss\hbox to #4\scaledpoint{\hss\box\scratchbox\hss}\vss
- \else
- %\vss\box\scratchbox
- \vss\hbox to #4\scaledpoint{\box\scratchbox\hss}%
- \fi\fi}}%
- \box\scratchbox
- \elabelgroup}
-
-\stopspecials
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-dvi.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-dvi.mkii
deleted file mode 100644
index 89a1330a2e5..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-dvi.mkii
+++ /dev/null
@@ -1,116 +0,0 @@
-%D \module
-%D [ file=spec-dvi,
-%D version=1996.01.25,
-%D title=\CONTEXT\ Special Macros,
-%D subtitle=Generic \TEX\ Solutions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D \macros
-%D {dostartobject,
-%D dostopobject,
-%D doinsertobject}
-%D
-%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
-
-\definespecial\dostartobject#1#2#3#4#5%
- {\setbox\nextbox\vbox\bgroup
- \def\dodostopobject
- {\egroup
- \doglobal\increment\DVIobjectcounter
- \global\setbox\DVIobjects\vbox
- {\offinterlineskip
- \forgetall
- \unvbox\DVIobjects
- \setbox\nextbox\hbox{\box\nextbox}%
- \wd\nextbox\zeropoint
- \dp\nextbox\zeropoint
- \ht\nextbox\onepoint
- \allowbreak
- \box\nextbox}%
- \dosetobjectreference{#1}{#2}{\DVIobjectcounter}}}
-
-\definespecial\dostopobject
- {\dodostopobject}
-
-\definespecial\doinsertobject#1#2%
- {\bgroup
- \dogetobjectreference{#1}{#2}\DVIobjectreference
- \splittopskip\zeropoint
- \setbox0=\copy\DVIobjects
- \dimen0=\DVIobjectreference\onepoint
- \advance\dimen0 -\onepoint
- \setbox2\vsplit0 to \dimen0
- \ifdim\ht0>\onepoint
- \setbox0\vsplit0 to \onepoint
- \fi
- \unvbox0
- \setbox0\lastbox
- \hbox{\unhbox0}% the \hbox is really needed!
- \egroup}
-
-%D \macros
-%D {dosetposition,
-%D dosetpositionwhd,
-%D dosetpositionplus}
-%D
-%D The next specials only identify a position. It is up to
-%D a \DVI\ postprocessing utility to merge the right commands
-%D into the utility file. Since in \CONTEXT, we only deal
-%D with relative positions, the reference point is not so
-%D important.
-%D
-%D The postprocessor should translate the specials into
-%D commands and append these to \type {jobname.tuo} using the
-%D format:
-%D
-%D \starttyping
-%D \pospxy {identifier}{page}{x}{y}
-%D \pospxywhd {identifier}{page}{x}{y}{w}{h}{d}
-%D \pospxyplus{identifier}{page}{x}{y}{w}{h}{d}{list}
-%D \stoptyping
-%D
-%D The postprocessor should, of course, provide the \type
-%D {page}, \type {x}, and \type {y} values.
-
-%D Now in spec-mis.tex:
-
-% \definespecial\dosetposition#1%
-% {\special{pos:pxy "#1"}}
-%
-% \definespecial\dosetpositionwhd#1#2#3#4%
-% {\special{pos:pxywhd "#1" #2 #3 #4}}
-%
-% \definespecial\dosetpositionplus#1#2#3#4#5%
-% {\special{pos:pxyplus "#1" #2 #3 #4 #5}}
-
-%D The next special tells the position postprocessor what
-%D page dimensions were used.
-
-%D Also in spec-mis.tex:
-
-% \let\flushDVIpositionpapersize\relax
-%
-% \definespecial\dosetpositionpapersize#1#2%
-% {\xdef\flushDVIpositionpapersize%
-% {\special{pos:papersize \number#1 \number#2}%
-% \noexpand\installprogram{dvipos -o \jobname.tuo \jobname.dvi }%
-% \global\noexpand\let\noexpand\flushDVIpositionpapersize\relax}}
-%
-% \prependtoksonce \flushDVIpositionpapersize \to \everyshipout
-
-\stopspecials
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-fdf.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-fdf.mkii
deleted file mode 100644
index 0713fa80cd1..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-fdf.mkii
+++ /dev/null
@@ -1,3532 +0,0 @@
-%D \module
-%D [ file=spec-fdf,
-%D version=1998.05.18,
-%D title=\CONTEXT\ \PDF\ Macros,
-%D subtitle=Support Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D The name of this module is a bit strange but it started with fields
-%D so we keep the name.
-
-%D When dealing with resources, we share the resource dictionaries
-%D between all xforms. This is inefficent in the sense that when no
-%D resources are used, redundant entries take space, but on the other
-%D hand we save redundant dictionaries so it's a nice compromise. Maybe
-%D that in \LUATEX\ I will reimplement most of the code here anyway.
-
-%D We need to check if we can use \type {\driverreferenced}
-%D object in more places.
-
-%D Initialization of fields is tricky. If a field has no
-%D value, it is kind of not there. If ResetForm is used, the
-%D default is assigned, but pushbuttons are spoiled. Adding a
-%D \type {/MK} dictionary helps, but gives ugly down
-%D appearances (displaced with background). What a mess.
-%D Also, in order to get at least something, the \type {/AS}
-%D key should be provided.
-
-% to do : /IF << /SW /N >> == no scaling / clipping of widget
-
-\unprotect
-
-%D \macros
-%D {PDFobjref}
-%D
-%D Just a shortcut.
-
-% Watch out, \def\PDFobjref#1{\purenumber#1 0 R} also works, but not when
-% #1 == \the\whatever
-
-\def\PDFobjref#1{\purenumber{#1} 0 R}
-
-%D \macros
-%D {PDFswapdir}
-
-\let\PDFswapdir\empty \def\PDFswapdir{\ifcase\inlinedirection\or\or-\fi}
-
-% the pdf spec changed cq. viewers started behaving differently / 5+
-
-\chardef\overcomePDFpage\plusone % page numbers/ beware: optimizers remove this one
-\chardef\overcomePDFpage\plustwo % page:number
-%chardef\overcomePDFpage\plusthree % pdftex page ref feature
-
-\ifx\pdfpageref\undefined \else \chardef\overcomePDFpage\plusthree \fi
-
-%D \macros
-%D {setPDFdestination}
-%D
-%D \PDF\ destinations should obey the specifications laid down
-%D in the \PDF\ reference manual. The next macro strips illegal
-%D characters from the destination name.
-%D
-%D The \ACROBAT\ programs are not bug free. By setting the next
-%D switches, we will at least try to prevent problems.
-
-\newif\ifovercomePDFbugs \overcomePDFbugsfalse % dest sort problem / 3-
-\newif\ifovercomePDFspace \overcomePDFspacetrue % dest sort problem / 3-
-
-\let\setPDFdestination\gobbleoneargument % a MK specific definition
-
-%D \macros
-%D {sanitizePDFstring}
-%D
-%D This macro at least tries to convert a arbitrary string
-%D into a sequence of characters valid for \PDF\ bookmarks and
-%D alike.
-
-\def\sanitizePDFstring#1\to#2{}
-
-%D \macros
-%D {doPDFdestination,
-%D doPDFaction,
-%D doPDFannotation,
-%D doPDFannotationobject,
-%D doPDFdictionaryobject,
-%D doPDFarrayobject,
-%D doPDFaddtocatalog,
-%D doPDFaddtoinfo,
-%D doPDFpageattribute,
-%D doPDFpageresource,
-%D doPDFpagesattribute,
-%D doPDFbookmark,
-%D defaultobjectreference,
-%D doPDFgetobjectreference}
-%D
-%D This module deals with \PDF\ support, including fill||in
-%D forms. Before we present the largely unreadable bunch of
-%D macros, we introduce the here||not||defined low level
-%D interface macros. These must be provided by the special
-%D drivers \type{pdf} (\ACROBAT) and \type{tpd} (\PDFTEX).
-%D
-%D \starttyping
-%D \doPDFdestination #1 name
-%D \doPDFaction #1#2#3 width height action
-%D \doPDFannotation #1#2#3 width height data
-%D \doPDFannotationobject #1#2#3#4#5 class name width height data
-%D \doPDFdictionaryobject #1#2#3 class name data
-%D \doPDFarrayobject #1#2#3 class name data
-%D \doPDFaddtocatalog #1
-%D \doPDFaddtoinfo #1
-%D \doPDFpageattribute #1
-%D \doPDFpageresource #1
-%D \doPDFpagesattribute #1
-%D \doPDFbookmark #1#2#3#4#5 level n text page open
-%D
-%D \defaultobjectreference #1#2 class name
-%D \doPDFgetobjectreference #1#2#3 class name \PDFobjectreference
-%D \doPDFgetobjectpagereference #1#2#3 class name \PDFobjectreference
-%D \stoptyping
-%D
-%D The keywords reflect their use. For the moment we stick to
-%D keywords, because that way at we get an indication of what
-%D we're doing.
-
-\startspecials[fdf]
-
-%D Common:
-
-% \def\doPDFgetobjectreference#1#2#3%
-% {\def#3{..}}
-
-\def\doPDFgetobjectpage#1#2#3%
- {\dogetobjectreferencepage{#1}{#2}#3%
- \ifx#3\empty\def#3{\realfolio}\fi}
-
-\def\doPDFgetobjectpagereference#1#2#3%
- {\dogetobjectreferencepage{#1}{#2}#3%
- \ifx#3\empty
- \doPDFgetpagereference\realfolio#3%
- \else
- \doPDFgetpagereference#3#3% we assume that #3 gets expanded
- \fi}
-
-% \def\doPDFgetpagereference#1#2%%%%%%%%%%%%%%%
-% {\def#2{...}}
-
-%D Due to the fact that \PDFTEX\ has a different concept of
-%D page attributes, we need:
-
-\let\doPDFresetpageattributes\relax
-\let\doPDFresetpageresources \relax
-
-\appendtoksonce
- \doPDFresetpageattributes
- \doPDFresetpageresources
-\to \everyaftershipout
-
-\ifx\PDFcode\undefined
- \ifx\pdfliteral\undefined
- \def\PDFcode#1{\message{[ignored pdfliteral: #1]}}
- \else
- \let\PDFcode\pdfliteral
- \fi
-\fi
-
-%D For special (\METAPOST) effects, we need to build
-%D resource dictionaries. Here is the framework.
-
-\let\docuPDFextgstates\empty
-%let\pagePDFextgstates\empty
-
-\def\checkPDFextgstates
- {\ifx\docuPDFextgstates\empty \else
- \ifnum\realpageno=\lastpage\relax
- %\doPDFreserveddictionaryobject{FDF}{docuextgstates}{\docuPDFextgstates}%
- \doPDFdictionaryobject{FDF}{docuextgstates}{\docuPDFextgstates}%
- \fi
- \doPDFgetobjectreference{FDF}{docuextgstates}\PDFobjectreference
- \doPDFpageresource{/ExtGState \PDFobjectreference}%
- \fi}
-
-\appendtoksonce
- \checkPDFextgstates
-\to \everyshipout
-
-\def\appendtoPDFdocumentextgstates#1%
- {\xdef\docuPDFextgstates{\docuPDFextgstates\space#1}}
-
-%D Patterns (for tikz)
-
-\let\docuPDFpatterns\empty
-
-\def\checkPDFpatterns
- {\ifx\docuPDFpatterns\empty \else
- \ifnum\realpageno=\lastpage\relax
- \doPDFdictionaryobject{FDF}{docupatterns}{\docuPDFpatterns}%
- \fi
- \doPDFgetobjectreference{FDF}{docupatterns}\PDFobjectreference
- \doPDFpageresource{/Pattern \PDFobjectreference}%
- \fi}
-
-\appendtoksonce
- \checkPDFpatterns
-\to \everyshipout
-
-\def\appendtoPDFdocumentpatterns#1%
- {\xdef\docuPDFpatterns{\docuPDFpatterns\space#1}}
-
-%D Another special mechanism (needed for color separation):
-
-\let\docuPDFcolorspaces\empty
-
-\def\checkPDFcolorspaces
- {\ifx\docuPDFcolorspaces\empty \else
- \ifnum\realpageno=\lastpage\relax
- %\doPDFreserveddictionaryobject{FDF}{colorspaces}{\docuPDFcolorspaces}%
- \doPDFdictionaryobject{FDF}{colorspaces}{\docuPDFcolorspaces}%
- \fi
- \doPDFgetobjectreference{FDF}{colorspaces}\PDFobjectreference
- \doPDFpageresource{/ColorSpace \PDFobjectreference}%
- \fi}
-
-\appendtoksonce
- \checkPDFcolorspaces
-\to \everyshipout
-
-\def\appendtoPDFdocumentcolorspaces#1%
- {\xdef\docuPDFcolorspaces{\docuPDFcolorspaces\space#1}}
-
-%D And another one (used to be in spec-pdf)
-
-\let\docuPDFshades\empty
-
-\def\checkPDFshades
- {\ifx\docuPDFshades\empty \else
- \ifnum\realpageno=\lastpage\relax
- %\doPDFreserveddictionaryobject{FDF}{docushades}{\docuPDFshades}%
- \doPDFdictionaryobject{FDF}{docushades}{\docuPDFshades}%
- \fi
- \doPDFgetobjectreference{FDF}{docushades}\PDFobjectreference
- \doPDFpageresource{/Shading \PDFobjectreference}%
- \fi}
-
-\appendtoksonce
- \checkPDFshades
-\to \everyshipout
-
-\def\appendtoPDFdocumentshades#1%
- {\xdef\docuPDFshades{\docuPDFshades\space#1}}
-
-%D \macros
-%D {doPDFsetupscreen,doPDFsetupidentity}
-%D
-%D Opposite to \DVI\ drivers, \PDF\ ones must know which what
-%D page dimensions they are dealing. We also use the
-%D opportunity to launch full screen (1) or show bookmarks (2).
-
-\let\currentPDFpagemode \empty % document catalog
-\let\currentPDFviewerprefs\empty % document catalog
-
-\let\currentPDFcropbox \empty % page attributes
-\let\currentPDFbleedbox \empty % page attributes
-\let\currentPDFartbox \empty % page attributes
-\let\currentPDFtrimbox \empty % page attributes
-
-\def\doPDFsetupscreen#1#2#3#4#5#6% watch the extra argument
- {\bgroup
-% \!!widtha#4%
-% \advance\!!widtha#2%
-% \!!heighta-#5%
-% \!!heightb#1% extra argument
-% \advance\!!heightb -#3%
-% \advance\!!heighta \!!heightb
-% % sometimes whole values give better results
-% % \PointsToWholeBigPoints{#2}\left
-% % \PointsToWholeBigPoints\!!heighta\bottom
-% % \PointsToWholeBigPoints\!!widtha \width
-% % \PointsToWholeBigPoints\!!heightb\height
-% % but since pdf/x does not round when checking if
-% % the boxes fit inside the media box ...
-% \PointsToBigPoints{#2}\left
-% \PointsToBigPoints\!!heighta\bottom
-% \PointsToBigPoints\!!widtha \width
-% \PointsToBigPoints\!!heightb\height
-% \xdef\currentPDFcropboxspec
-% {[\left\space\bottom\space\width\space\height]}%
-% \global\let\currentPDFtrimboxspec\currentPDFcropboxspec
-%
-% \xdef\currentPDFpagemode
-% {/PageMode \ifcase#6
-% /UseNone\or/FullScreen\or/UseOutlines\else/UseNone\fi}%
-%
- \xdef\currentPDFpagemode
- {\ifnum#6=4
- /PageLayout /TwoColumnRight
- \else
- /PageMode \ifcase#6
- /UseNone\or/FullScreen\or/UseOutlines\else/UseNone\fi
- \fi}%
- \xdef\currentPDFviewerprefs % space after #6 needed, else \relax
- {\ifcase#6 \or\or\else /ViewerPreferences << /FitWindow true >>\fi}%
- \egroup}
-
-% not that good if we switch drivers
-
-\def\addPDFdocumentinfo
- {\doPDFaddtocatalog{\currentPDFpagemode\currentPDFviewerprefs}%
- \doPDFaddtocatalog{/Version /\PDFversion}%
- \doPDFaddtoinfo{/Trapped /False}%
- \doPDFaddtoinfo{/ConTeXt.Version (\contextversion)}%
- \doPDFaddtoinfo{/ConTeXt.Time (\number\normalyear.\twodigits\normalmonth.\twodigits\normalday\space \twodigits\currenthour:\twodigits\currentminute)}%
- \doPDFaddtoinfo{/ConTeXt.Jobname (\jobname)}%
- \doPDFaddtoinfo{/ConTeXt.Url (www.pragma-ade.com)}}
-
-\appendtoksonce % hack to prevent duplicates
- \addPDFdocumentinfo
-\to \everyfirstshipout
-
-\ifx\pdfminorversion\undefined
- \ifx\pdfoptionpdfminorversion\undefined
- \newcount\pdfminorversion
- \else
- \let\pdfminorversion\pdfoptionpdfminorversion
- \fi
-\fi
-
-\pdfminorversion=5
-
-\def\PDFversion{1.\number\pdfminorversion}
-
-\appendtoksonce
- \def\PDFversion{1.\the\pdfminorversion}%
- \let\addPDFdocumentinfo\relax
-\to \everyresetspecials
-
-\def\doPDFsetupwhateverbox#1#2#3#4#5#6% watch the extra arguments
- {\bgroup
- \!!widtha \dimexpr#5+#3\relax
- \!!heightb\dimexpr#2-#4\relax
- \!!heighta\dimexpr\!!heightb-#6\relax
- % sometimes whole values give better results
- % \PointsToWholeBigPoints{#3}\left
- % \PointsToWholeBigPoints\!!heighta\bottom
- % \PointsToWholeBigPoints\!!widtha \width
- % \PointsToWholeBigPoints\!!heightb\height
- % but since pdf/x does not round when checking if
- % the boxes fit inside the media box ...
- \PointsToBigPoints{#3}\left
- \PointsToBigPoints\!!heighta\bottom
- \PointsToBigPoints\!!widtha \width
- \PointsToBigPoints\!!heightb\height
- \xdef#1{[\left\space\bottom\space\width\space\height]}%
- \egroup}
-
-\def\doPDFsetupartbox {\doPDFsetupwhateverbox\currentPDFartbox }
-\def\doPDFsetupcropbox {\doPDFsetupwhateverbox\currentPDFcropbox }
-\def\doPDFsetupbleedbox{\doPDFsetupwhateverbox\currentPDFbleedbox}
-\def\doPDFsetuptrimbox {\doPDFsetupwhateverbox\currentPDFtrimbox }
-
-\gdef\currentPDFtrimbox{\currentPDFcropbox} % default, needed for pdf/x
-
-\def\flushPDFwhateverbox#1#2%
- {\doifsomething{#1}{\doPDFpageattribute{/#2Box #1}}}
-
-\def\flushPDFpageboxes
- {\flushPDFwhateverbox\currentPDFartbox {Art}%
- \flushPDFwhateverbox\currentPDFcropbox {Crop}%
- \flushPDFwhateverbox\currentPDFbleedbox{Bleed}%
- \flushPDFwhateverbox\currentPDFtrimbox {Trim}}
-
-\appendtoksonce
- \flushPDFpageboxes
-\to \everyshipout
-
-% \def\doPDFsetupidentity#1#2#3#4#5#6%
-% {\bgroup
-% \enablePDFdocencoding
-% \edef\!!stringa{#5}%
-% \ifx\!!stringa\empty \ifx\pdfdate\undefined\else
-% \edef\!!stringa{D:\pdfdate}%
-% \fi \fi
-% \expanded{\doPDFaddtoinfo
-% {/Title (#1)
-% /Subject (#2)
-% /Author (#3)
-% /Creator (#4)
-% /ModDate (\!!stringa)
-% /ID (\jobname.\!!stringa) % needed for pdf/x
-% /Keywords (#6)}}%
-% \egroup}
-
-\def\doPDFsetupidentity#1#2#3#4#5#6%
- {\bgroup
- \enablePDFdocencoding
- \sanitizePDFencoding#1\to\idtitle \stripstring\idtitle
- \sanitizePDFencoding#2\to\idsubject\stripstring\idsubject
- \sanitizePDFencoding#3\to\idauthor \stripstring\idauthor
- \sanitizePDFencoding#4\to\idcreator\stripstring\idcreator
- \sanitizePDFencoding#6\to\idkeyword\stripstring\idkeyword
- \expanded{\doPDFaddtoinfo
- {/Title \ifPDFunicode<\idtitle >\else(\idtitle )\fi
- /Subject \ifPDFunicode<\idsubject>\else(\idsubject)\fi
- /Author \ifPDFunicode<\idauthor >\else(\idauthor )\fi
- /Creator \ifPDFunicode<\idcreator>\else(\idcreator)\fi
- /ModDate (#4)
- /ID (\jobname.#5) % needed for pdf/x
- /Keywords \ifPDFunicode<\idkeyword>\else(\idkeyword)\fi}}%
- \egroup}
-
-%D \macros
-%D {doPDFsetupopenaction,doPDFsetupcloseaction,
-%D doPDFsetupopenpageaction,doPDFsetupclosepageaction}
-%D
-%D Setting the open and close actions is kind of fuzzy
-%D because action chains are derived from the reference
-%D mechanism.
-
-%D Starting with version~5 viewers, when the open actions
-%D started yto give problems, for testing purposes we
-%D decided use indirect actions.
-
-% \definespecial\dosetupopenaction {\doPDFsetupopenaction}
-% \definespecial\dosetupcloseaction {\doPDFsetupcloseaction}
-% \definespecial\dosetupopenpageaction {\doPDFsetupopenpageaction}
-% \definespecial\dosetupclosepageaction{\doPDFsetupclosepageaction}
-
-\let\lastPDFaction\empty
-
-%D We can safe a couple of references by moving this code
-%D to the specific drivers.
-%D
-%D The following code used to work okay, but as with any
-%D update of Acrobat Viewers, upward compatibility was
-%D just a dream.
-
-\definespecial\dosetupopenaction {\doPDFaddtocatalog{/OpenAction <<\lastPDFaction>>}}
-\definespecial\dosetupcloseaction{\doPDFaddtocatalog{/CloseAction <<\lastPDFaction>>}}
-
-% todo: /AA << dictionary in catalog >>
-
-% \globalletempty\PDFdocumentclose
-% \globalletempty\PDFwillsave
-% \globalletempty\PDFdidsave
-% \globalletempty\PDFwillprint
-% \globalletempty\PDFdidprint
-
-% \definespecial\dosetupdocumentcloseaction {\global\let\PDFdocumentclose\lastPDFaction}
-% \definespecial\dosetupwillsaveaction {\global\let\PDFwillsave \lastPDFaction}
-% \definespecial\dosetupdidsaveaction {\global\let\PDFdidsave \lastPDFaction}
-% \definespecial\dosetupwillprintaction {\global\let\PDFwillprint \lastPDFaction}
-% \definespecial\dosetupdidprintaction {\global\let\PDFdidprint \lastPDFaction}
-
-% \def\checkPDFdocumentactions
-% {\iflocation
-% \doPDFpageattribute
-% {/AA <<\ifx\PDFdocumentclose\empty \else /DC <<\PDFdocumentclose>> \fi
-% \ifx\PDFwillsave \empty \else /WS <<\PDFwillsave >> \fi
-% \ifx\PDFdidsave \empty \else /DS <<\PDFdidsave >> \fi
-% \ifx\PDFwillprint \empty \else /WP <<\PDFwillprint >> \fi
-% \ifx\PDFdidprint \empty \else /DP <<\PDFdidprint >> \fi>>}%
-% % \globalletempty\PDFdocumentclose
-% % \globalletempty\PDFwillsave
-% % \globalletempty\PDFdidsave
-% % \globalletempty\PDFwillprint
-% % \globalletempty\PDFdidprint
-% \global\let\checkPDFdocumentactions\relax
-% \fi}
-
-% \appendtoksonce
-% \checkPDFdocumentactions
-% \to \everylastshipout
-
-%\def\doPDFsetupopenaction%
-% {\doPDFdictionaryobject{FDF}{local:openaction}\lastPDFaction
-% \doPDFgetobjectreference{FDF}{local:openaction}\PDFobjectreference
-% \doPDFaddtocatalog{/OpenAction \PDFobjectreference}}
-%
-%\def\doPDFsetupcloseaction%
-% {\doPDFdictionaryobject{FDF}{local:closeaction}\lastPDFaction
-% \doPDFgetobjectreference{FDF}{local:closeaction}\PDFobjectreference
-% \doPDFaddtocatalog{/CloseAction \PDFobjectreference}}
-
-\let\PDFopenpageaction \empty
-\let\PDFclosepageaction\empty
-
-\definespecial\dosetupopenpageaction {\global\let\PDFopenpageaction \lastPDFaction}
-\definespecial\dosetupclosepageaction{\global\let\PDFclosepageaction\lastPDFaction}
-
-\def\checkPDFpageactions
- {\iflocation % important since direct -)
- \donefalse
- \ifx\PDFopenpageaction \empty\!!doneafalse\else\donetrue\!!doneatrue\fi
- \ifx\PDFclosepageaction\empty\!!donebfalse\else\donetrue\!!donebtrue\fi
- \ifdone
- \doPDFpageattribute
- {/AA <<\if!!donea/O <<\PDFopenpageaction >> \fi
- \if!!doneb/C <<\PDFclosepageaction>> \fi>>}%
- \fi
- \global\let\PDFopenpageaction \empty
- \global\let\PDFclosepageaction\empty
- \fi}
-
-\appendtoksonce
- \checkPDFpageactions
-\to \everyshipout
-
-%D \macros
-%D {doPDFstartthisislocation}
-%D
-%D Next we define the macros that deal with hyperreferencing,
-%D graphic inclusion and general document features. These are
-%D the olderst ones. I won't comment much because one needs
-%D knowledge of \PDF\ itself, and explaning \PDF\ is beyond
-%D this documentation.
-
-\def\doPDFstartthisislocation#1%
- {\bgroup
- \setPDFdestination{#1}%
- \ifx\PDFdestination\empty \else
- \doPDFdestination{\PDFdestination}%
- \fi
- \egroup}
-
-%D \macros
-%D {doPDFstartgotolocation,
-%D doPDFstartgotorealpage,
-%D doPDFstartgotoJS}
-%D
-%D The goto macros use the switch \type{\ifsecondaryreference}
-%D to determine if actions should be linked.
-
-\def\locationfilesuffix{pdf}
-
-% \def\preparePDFlocationfile#1#2%
-% {\setreferencefilename#1\to#2%
-% \expanded{\doifnotinstring{.\locationfilesuffix}{#2}}
-% {\edef#2{#2.\locationfilesuffix}}}
-%
-% \def\preparePDFlocationfile#1\to#2%
-% {\setreferencefilename#1\to#2%
-% \expanded{\doifnotinstring{.pdf}{#2}}{\edef#2{#2.pdf}}}
-
-\def\doPDFstartgotolocation#1#2#3#4#5#6%
- {\bgroup
- \doifelsenothing{#3}
- {\setPDFdestination{#5}%
- \doifelsenothing\PDFdestination
- {\let\action\empty}
- {\doifelsenothing{#4}
- {\let\PDFfile\empty}
- {\expanded{\beforesplitstring#4}\at.\to\PDFfile
- \doifparentfileelse\PDFfile % {#4}
- {\let\PDFfile\empty}
- %{\setreferencefilename#4.\locationfilesuffix\to\PDFfile
- {\@EA\setreferencefilename\PDFfile.\locationfilesuffix\to\PDFfile
- \edef\PDFfile
- {R /F (\PDFfile)\ifgotonewwindow\space/NewWindow true \fi}}}%
- \edef\action%
- {/S /GoTo\PDFfile\space /D (\PDFdestination)}}}
- {\doifelsenothing{#4}
- {\let\PDFfile\empty
- \let\PDFdestination\empty}
- {\setreferencefilename/#4\to\PDFfile
- \setPDFdestination{#5}%
- \doifsomething\PDFdestination
- {\edef\PDFdestination{\URLhash\PDFdestination}}}%
- \edef\action{/S /URI /URI (#3\PDFfile\PDFdestination)}}%
- \ifx\action\empty\else
- \ifsecondaryreference
- \savesecondaryPDFreference\action
- \else
- \getsecondaryPDFreferences
- \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
- \fi
- \fi
- \egroup}
-
-\def\PDFgotonewwindow{\ifgotonewwindow\space/NewWindow true \fi}
-
-% optimization in tpd driver
-%
-% \edef\PDFdestination{(page:\the\scratchcounter)}%
-%
-% ==>
-%
-% \advance\scratchcounter 1
-% \edef\PDFdestination{[\pdfpageref \PDFobjref\scratchcounter\PDFpageviewwrd]}%
-%
-% \doPDFgetpagedestination#1#2% pagenumber macro % % fuzzy hack
-
-\def\doPDFstartgotorealpage#1#2#3#4#5% watch the R append trick
- {\bgroup
- \doifelsenothing{#3}% #1 = url
- {\scratchcounter0#5\relax
- \ifnum\scratchcounter>0
- \doifelsenothing{#4}
- {\let\PDFfile\empty}
- {\expanded{\beforesplitstring#4}\at.\to\PDFfile
- \doifparentfileelse\PDFfile % {#4}
- {\let\PDFfile\empty}
- %{\setreferencefilename#4.\locationfilesuffix\to\PDFfile
- {\@EA\setreferencefilename\PDFfile.\locationfilesuffix\to\PDFfile
- \edef\PDFfile{R /F (\PDFfile)\PDFgotonewwindow}}}%
- \ifx\PDFfile\empty
- \ifcase\overcomePDFpage
- \or % pdf starts numbering at zero
- \advance\scratchcounter \minusone
- \edef\PDFdestination{[\the\scratchcounter\space\PDFpageviewwrd]}%
- \or % pdf starts numbering at zero
- \advance\scratchcounter \minusone
- \edef\PDFdestination{(page:\the\scratchcounter)}%
- \or % pdftex starts numbering at one
- \edef\PDFdestination{[\pdfpageref\scratchcounter\space0 R \PDFpageviewwrd]}%
- \fi
- \else % across files it's a page number / pdf starts numbering at zero
- \advance\scratchcounter \minusone
- \edef\PDFdestination{[\the\scratchcounter\space\PDFpageviewwrd]}%
- \fi
- \edef\action{/S /GoTo\PDFfile\space /D \PDFdestination}%
- \else
- \let\action\empty
- \fi}
- {\doifelsenothing{#4}
- {\let\PDFfile\empty}
- {\setreferencefilename/#4\to\PDFfile}%
- \edef\action{/S /URI /URI (#3\PDFfile)}}%
- \ifx\action\empty\else
- \ifsecondaryreference
- \savesecondaryPDFreference\action
- \else
- \getsecondaryPDFreferences
- \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
- \fi
- \fi
- \egroup}
-
-\let\lastfakedPDFpage\!!zerocount
-
-\def\fakePDFpagedestination % as in pdf, we start numbering at zero
- {\iflocation \ifarrangingpages \else \ifnum\overcomePDFpage=\plustwo
- \ifnum\lastfakedPDFpage<\realpageno
- \bgroup
- \xdef\lastfakedPDFpage{\realfolio}%
- \advance\realpageno \minusone % is \expanded needed ?
- \expanded{\doPDFdestination{page:\realfolio}}%
- \egroup
- \fi
- \fi \fi \fi}
-
-\appendtoksonce
- \fakePDFpagedestination
-\to \everyshipout
-
-\def\doPDFstartgotoJS#1#2#3%
- {\bgroup
- \doPSsanitizeJScode#3\to\sanitizedJScode
- \edef\action
- {/S /JavaScript /JS (\sanitizedJScode)}%
- \ifsecondaryreference
- \savesecondaryPDFreference\action
- \else
- \getsecondaryPDFreferences
- \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
- \fi
- \egroup}
-
-%D \macros
-%D {doPDFstartexecutecommand}
-%D
-%D At the cost of much auxiliary placeholders, we can pretty
-%D fast convert the command asked for. This is how the \PDF\
-%D code looks like.
-
-\def\PDFmoviecode#1#2#3%
- {/Movie
- /T (\ifcase#1movie \else sound \fi\ifx\argumentA\empty#2\else\argumentA\fi)
- /Operation /\ifcase#3Play\or Stop\or Pause\or Resume\fi\space}
-
-\def\PDFexecutestartmovie {\PDFmoviecode0\currentmovie0}
-\def\PDFexecutestopmovie {\PDFmoviecode0\currentmovie1}
-\def\PDFexecutepausemovie {\PDFmoviecode0\currentmovie2}
-\def\PDFexecuteresumemovie {\PDFmoviecode0\currentmovie3}
-
-\def\PDFexecutestartsound {\PDFmoviecode1\currentsound0}
-\def\PDFexecutestopsound {\PDFmoviecode1\currentsound1}
-\def\PDFexecutepausesound {\PDFmoviecode1\currentsound2}
-\def\PDFexecuteresumesound {\PDFmoviecode1\currentsound3}
-
-\def\PDFformcode#1%
- {\doFDFiffieldset{#1}{/Field [\doFDFgetfieldset{#1}]}}
-
-% bit 3 = html
-% bit 6 = xml
-% bit 4 = get
-
-\ifx\PDFsubmitfiller\undefined \let\PDFsubmitfiller\empty \fi
-
-\chardef\PDFformmethod=1 % 0=GET 1=POST
-
-\def\PDFformflag#1#2{\ifcase\PDFformmethod#1\else#2\fi}
-
-\def\PDFexecuteimportform {/Named /N /AcroForm:ImportFDF}
-\def\PDFexecuteexportform {/Named /N /AcroForm:ExportFDF}
-\def\PDFexecuteresetform {/ResetForm \PDFformcode\argumentA}
-\def\PDFexecutesubmitform {/SubmitForm \PDFformcode\argumentB
- /Flags \ifcase\submitoutputformat\space
- \PDFformflag{12} {4} % 0=unknown
- \or \PDFformflag{12} {4} % 1=HTML
- \or \PDFformflag {8} {0} % 2=FDF
- \or \PDFformflag{40}{32} % 3=XML
- \else \PDFformflag{12} {4} % ?=unknown
- \fi
- /F (\argumentA)\PDFsubmitfiller}
-
-% urifill permits url substitution
-
-\def\PDFexecutehide {/Hide /T (\argumentA) /H true}
-\def\PDFexecuteshow {/Hide /T (\argumentA) /H false}
-
-\def\PDFexecutefirst {/Named /N /FirstPage}
-\def\PDFexecuteprevious {/Named /N /PrevPage}
-\def\PDFexecutenext {/Named /N /NextPage}
-\def\PDFexecutelast {/Named /N /LastPage}
-\def\PDFexecutebackward {/Named /N /GoBack}
-\def\PDFexecuteforward {/Named /N /GoForward}
-\def\PDFexecuteprint {/Named /N /Print}
-\def\PDFexecuteexit {/Named /N /Quit}
-\def\PDFexecuteclose {/Named /N /Close}
-\def\PDFexecutesave {/Named /N /Save}
-\def\PDFexecutesavenamed {/Named /N /SaveAs}
-\def\PDFexecuteopennamed {/Named /N /Open}
-\def\PDFexecutehelp {/Named /N /HelpUserGuide}
-\def\PDFexecutetoggle {/Named /N /FullScreen}
-\def\PDFexecutesearch {/Named /N /Find}
-\def\PDFexecutesearchagain {/Named /N /FindAgain}
-\def\PDFexecutegotopage {/Named /N /GoToPage}
-\def\PDFexecutequery {/Named /N /AcroSrch:Query}
-\def\PDFexecutequeryagain {/Named /N /AcroSrch:NextHit}
-\def\PDFexecutefitwidth {/Named /N /FitWidth}
-\def\PDFexecutefitheight {/Named /N /FitHeight}
-
-\let\PDFobjectclass\empty
-\let\PDFobjectname \empty
-
-\def\doPDFstartexecutecommand#1#2#3#4%
- {\doifdefined{PDFexecute#3}
- {\bgroup
- \edef\argument{#4}%
- \ifx\argument\empty
- \let\argumentA\empty
- \let\argumentB\empty
- \else
- \@EA\dogetcommalistelement\@EA1\@EA\from#4\to\argumentA
- \@EA\dogetcommalistelement\@EA2\@EA\from#4\to\argumentB
- \fi
- \edef\action%
- {/S \getvalue{PDFexecute#3}}%
- \ifsecondaryreference
- \savesecondaryPDFreference\action
- \else
- \getsecondaryPDFreferences
-% \ifx\PDFobjectclass\empty
-% \let\next\doPDFaction
-% \else
-% \edef\next{\doPDFactionobject{\PDFobjectclass}{\PDFobjectname}}%
-% \globalletempty\PDFobjectclass
-% \globalletempty\PDFobjectname
-% \fi
-% \next
- \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
- \fi
- \egroup}}
-
-%D \macros
-%D {doPDFstartrunprogram}
-%D
-%D Running programs is possible, but is non that portable, and
-%D therefore dangerous.
-
-\def\doPDFstartrunprogram#1#2#3#4% new: #3 => #3#4
- {\bgroup
- %\edef\string{#3}%
- %\@EA\beforesplitstring\string\at{ }\to\program
- %\@EA\aftersplitstring \string\at{ }\to\parameters
- %\edef\action%
- % {/S /Launch /F (\program) /P (\parameters) /D (.)}%
- \edef\action
- {/S /Launch /F (#3) /P (#4) /D (.)}%
- \ifsecondaryreference
- \savesecondaryPDFreference\action
- \else
- \getsecondaryPDFreferences
- \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
- \fi
- \egroup}
-
-%D \macros
-%D {doPDFstartgotoprofile}
-%D
-%D Far from perfect, but nevertheless present, is the profile
-%D handler. We want to misuse article threads for reder
-%D profiles.
-
-\def\doPDFstartgotoprofile#1#2#3% to be done: file
- {\bgroup
- \setPDFdestination{#3}%
- \doifsomething\PDFdestination
- {\edef\action
- {/S /Thread /D (\PDFdestination)}%
- \ifsecondaryreference
- \savesecondaryPDFreference\action
- \else
- \getsecondaryPDFreferences
- \doPDFaction{\PDFswapdir#1}{#2}{\action \secondaryPDFreferences}%
- \fi}%
- \egroup}
-
-%D \macros
-%D {doPDFsetpagetransition}
-%D
-%D This array holds a reasonable selection of transitions
-%D (watch out: \type{replace} is not in this list). Most of
-%D the transitions look awful anyway. By the way, \CONTEXT\ is
-%D able to select transitions randomly.
-
-% some day, when 1.5 is on linux and apple, we will add:
-%
-% \def\pagetransitions
-% {{split,in,vertical},{split,in,horizontal},
-% {split,out,vertical},{split,out,horizontal},
-% {blinds,horizontal},{blinds,vertical},
-% {box,in},{box,out},
-% {wipe,east},{wipe,west},{wipe,north},{wipe,south},
-% dissolve,
-% {glitter,east},{glitter,south},
-% {fly,in,east},{fly,in,west},{fly,in,north},{fly,in,south},
-% {fly,out,east},{fly,out,west},{fly,out,north},{fly,out,south},
-% {push,east},{push,west},{push,north},{push,south},
-% {cover,east},{cover,west},{cover,north},{cover,south},
-% {uncover,east},{uncover,west},{uncover,north},{uncover,south},
-% fade}
-
-\def\pagetransitions
- {{split,in,vertical},{split,in,horizontal},
- {split,out,vertical},{split,out,horizontal},
- {blinds,horizontal},{blinds,vertical},
- {box,in},{box,out},
- {wipe,east},{wipe,west},{wipe,north},{wipe,south},
- dissolve,
- {glitter,east},{glitter,south}}
-
-%D Again, we use macros as placeholders for \PDF\ key||value
-%D pairs.
-
-\def\PDFpagesplit {/S /Split }
-\def\PDFpageblinds {/S /Blinds }
-\def\PDFpagebox {/S /Box }
-\def\PDFpagewipe {/S /Wipe }
-\def\PDFpagedissolve {/S /Dissolve }
-\def\PDFpageglitter {/S /Glitter }
-\def\PDFpagereplace {/S /R }
-
-\def\PDFpagefly {/S /Fly } % 1.5
-\def\PDFpagepush {/S /Push } % 1.5
-\def\PDFpagecover {/S /Cover } % 1.5
-\def\PDFpageuncover {/S /Uncover } % 1.5
-\def\PDFpagefade {/S /Fade } % 1.5
-
-\def\PDFpagehorizontal {/Dm /H }
-\def\PDFpagevertical {/Dm /V }
-\def\PDFpagein {/M /I }
-\def\PDFpageout {/M /O }
-\def\PDFpageeast {/Di 0 }
-\def\PDFpagenorth {/Di 90 }
-\def\PDFpagewest {/Di 180 }
-\def\PDFpagesouth {/Di 270 }
-
-\def\dodoPDFsetpagetransition#1%
- {\doifdefined{PDFpage#1}
- {\edef\PDFpagetransitions{\PDFpagetransitions\getvalue{PDFpage#1}}}}
-
-\def\doPDFsetpagetransition#1#2%
- {\let\PDFpagetransitions\empty
- \processcommalist[#1]\dodoPDFsetpagetransition
- \doPDFpageattribute
- %{\ifnum#2>0 /Dur #2 \fi
- {\ifnum0<0#2 /Dur #2 \fi
- \ifx\PDFpagetransitions\empty\else/Trans <<\PDFpagetransitions>>\fi}}
-% \ifx\PDFpagetransitions\empty\else/Trans <</Type /Trans \PDFpagetransitions>>\fi}}
-
-%D \macros
-%D {doPDFinsertmov}
-%D
-%D Most of the annotations we use here are of type {\em
-%D link}, but here is another one: the {\em movie} annotation.
-%D The driver module must implement \type {setcurrentmovie}.
-
-%D Great: this will become an obsolete pdf feature; why did we have to
-%D keep up with the bugs ... and by the time acrobat gets better in
-%D handling it have to drop it.
-
-\let\currentmovie\s!unknown
-
-\def\doPDFinsertmov
- {\bgroup
- \xdef\currentmovie{\@@DriverImageLabel}%
- \PointsToBigPoints\@@DriverImageWidth \width
- \PointsToBigPoints\@@DriverImageHeight\height
- \let\pdf@@options\empty
- \let\pdf@@actions\empty
- \donefalse
- \expanded{\processallactionsinset[\@@DriverImageOptions]}
- [\v!controls=>\donetrue,
- \v!repeat=>\edef\pdf@@actions{\pdf@@actions /Mode /Repeat },
- \v!preview=>\edef\pdf@@options{\pdf@@options /Poster true }]%
- \edef\pdf@@actions{\pdf@@actions /ShowControls \ifdone true\else false\fi}%
- \doPDFannotation\@@DriverImageWidth\@@DriverImageHeight
- {/Subtype /Movie
- /Border [0 0 0]
- /T (movie \currentmovie)
- /Movie << /F (\@@DriverImageFile) /Aspect [\width\space\height] \pdf@@options >>
- /A << \pdf@@actions >>}%
- \egroup}
-
-%D \macros
-%D {doPDFinsertsoundtrack}
-%D
-%D In \PDF\ sounds can be embedded like movies.
-
-\ifx\everygoto\undefined \newtoks\everygoto \fi
-
-\let\currentsound\s!unknown
-
-\def\doPDFinsertsoundtrack#1#2#3%
- {\bgroup
- \xdef\currentsound{#2}%
- \let\pdf@@actions\empty
- \@EA\processallactionsinset\@EA
- [#3]
- [\v!repeat=>\edef\pdf@@actions{\pdf@@actions /Mode /Repeat }]%
- \collectdriverresource
- %\flushatshipout % since it can be buried in a chained box
- {\doPDFannotation{0pt}{0pt}
- {/Subtype /Movie
- /Border [0 0 0]
- /T (sound \currentsound)
- /Movie <</F (#1)>>%
- \ifx\pdf@@actions\empty\else/A << \pdf@@actions >>\fi}}%
- \egroup}
-
-%D \macros
-%D {doPDFattachfile}
-
-\def\doPDFfilestreamobject#1#2#3#4%
- {}
-
-\def\doPDFfilestreamidentifier#1%
- {0}
-
-\def\doPDFgetfilestreamreference#1#2%
- {0 0 R}
-
-\def\doPDFattachfile#1#2#3#4#5#6#7#8%
- {\bgroup % title width height color symbol file
- \edefconvertedargument\PDFfile{#8}%
- % beware: the symbol may (indirectly) use the file
- % reference when typesetting the object number;
- \presetPDFsymbolappearance{#5}{#6}{#2}{#3}{#4}% sets width/height
- \startPDFsymbolappearance
- \doPDFembedfile\PDFfile{#7}{#8}%
- \doPDFgetembeddedfilereference\PDFfile\PDFobjectreference
- \setFDFlayer\@@DriverAttachmentLayer
- \doPDFannotation{\width}{\totalheight}
- {/Subtype /FileAttachment
- /FS \PDFobjectreference\space
- /Contents (#1)
- \PDFsymbol
- \FDFlayer
- \PDFattributes}%
- \stopPDFsymbolappearance
- \egroup}
-
-% semi-public
-
-\def\doPDFembedfile#1#2#3% symbolic name | filename | user name
- {\edefconvertedargument\PDFfile{#1}%
- \doifnotflagged{a:\PDFfile}%
- {\doPDFfilestreamobject{PDFEF}{\PDFfile}{#2}{#3}%
- \doglobal\setflag{a:\PDFfile}}}
-
-\def\doPDFgetembeddedfilereference#1#2%
- {\edefconvertedargument\PDFfile{#1}%
- \doPDFgetobjectreference{PDFEF}\PDFfile#2}
-
-\def\doPDFgetembeddedfilestreamreference#1#2%
- {\edefconvertedargument\PDFfile{#1}%
- \doPDFgetfilestreamreference\PDFfile#2} % == \doPDFgetobjectreference{PDFFS}\PDFfile#2
-
-\definespecial \doattachfile {\doPDFattachfile}
-
-% requested by Jens-Uwe Morawski: permits usage of pdftosrc
-% in viewers that don't support attachments:
-%
-% \definesymbol
-% [ObjectNumber]
-% % [object number {\PDFattachmentnumber[xx]}] % named
-% [object number \PDFattachmentnumber] % current
-%
-% \useattachment[test][xx][test.tex]
-% \setupattachments[symbol=ObjectNumber]
-% \attachment[test]
-
-\def\PDFattachmentnumber
- {\dosingleargument\doPDFattachmentnumber}
-
-\def\doPDFattachmentnumber[#1]%
- {\iffirstargument
- \doPDFfilestreamidentifier{#1}%
- \else
- \doPDFfilestreamidentifier\PDFfile
- \fi}
-
-%D \macros
-%D {...}
-%D
-%D Rather preliminary. We have to wait till the complete specs
-%D show up. As usual, we cannot really check it (Acrobat 6.0
-%D has a bug that inhibits us to make a test file). Half a day
-%D of testing made clear that trying to control the plugin fails
-%D in most cases (we need plugin specs -). We also miss a feature
-%D to let acrobat wait with proceeding (action processing) till
-%D the media clip is ready.
-
-% aiff audio/aiff
-% au audio/basic
-% avi video/avi
-% mid audio/midi
-% mov video/quicktime
-% mp3 audio/x-mp3 (mpeg)
-% mp4 audio/mp4
-% mp4 video/mp4
-% mpeg video/mpeg
-% smil application/smil
-% swf application/x-shockwave-flash
-
-% beware, this is preliminary code, should be improved
-
-\def\PDFrenderingspecs#1{\executeifdefined{PDFMR:#1}\empty}
-
-\def\PDFexecutestartrendering {/Rendition /OP 0 \PDFrenderingspecs\argumentA}
-\def\PDFexecutestoprendering {/Rendition /OP 1 \PDFrenderingspecs\argumentA}
-\def\PDFexecutepauserendering {/Rendition /OP 2 \PDFrenderingspecs\argumentA}
-\def\PDFexecuteresumerendering {/Rendition /OP 3 \PDFrenderingspecs\argumentA}
-
-% todo : sub files
-%
-% \doPDFembedfile{pier-39.png}{pier-39.png}{pier-39.png}%
-% \doPDFgetembeddedfilestreamreference{pier-39.png}\xPDFobjectreference
-% \edef\xxxx{/RF [(pier-39.png) \xPDFobjectreference]}%
-
-% todo: alternative renderings
-%
-% object_1 -> <</Type /Rendition /S /MR /C << /Type /MediaClip ... >> >>
-% object_2 -> <</Type /Rendition /S /MR /C << /Type /MediaClip ... >> >>
-%
-% rendering -> <</Type /Rendition /S /MS [objref_1 objref_2]>>
-
-% todo: embedded files (too buggy)
-%
-% \let\PDFattribute\empty
-% % /D \PDFobjectreference
-% % test one, no error, but ignored
-% \doifinset\v!file{#4}
-% {\doPDFembedfile{#3}{#3}{#3}%
-% \doPDFgetembeddedfilestreamreference{#3}\PDFobjectreference
-% \edef\PDFattribute{/EF \PDFobjectreference}}%
-% % official, does not work either
-% \doifinset\v!file{#4}
-% {\doPDFembedfile{#3}{#3}{#3}%
-% \doPDFgetembeddedfilereference{#3}\PDFobjectreference}
-% % do we play the game as follows
-
-\definespecial\doinsertrendering#1#2#3#4% tag mime file options
- {\ifundefined{PDFMR:#1}%
- \doifinstringelse{://}{#3}\donetrue\donefalse % evt url as keyword
- \doPDFdictionaryobject{PDFMF}{#1}
- {/Type /Rendition
- /S /MR
- % does not work: /SP << /Type /MediaScreenParam /BE << /B [1 0 0] /O 0.5 >> >>
- /C << /Type /MediaClip
- /S /MCD
- /N (#1)
- /Alt [() (file not found)] % language id + message
- /D << /Type /Filespec
- /F (#3)
- \ifdone/FS /URL\fi >>
- /CT (#2) >>}%
- % common code
- \doifobjectreferencefoundelse{PDFMS}{#1}
- {\doPDFgetobjectreference{PDFMS}{#1}\PDFobjectreferenceB}
- {\doPDFgetobjectreference{PDFMU}{#1}\PDFobjectreferenceB}%
- \doPDFgetobjectreference{PDFMF}{#1}\PDFobjectreferenceA
- \setxvalue{PDFMR:#1}% needed /AA actions in /Screen
- {/R \PDFobjectreferenceA
- /AN \PDFobjectreferenceB}%
- \doifobjectreferencefoundelse{PDFMS}{#1}\donothing
- {\dodoinsertrenderingwindow{PDFMU}{#1}\zeropoint\zeropoint{#4}}%
- \fi}
-
-\definespecial\doinsertrenderingobject#1#2#3#4% tag class objectname options
- {\ifundefined{PDFMR:#1}%
- \doPDFgetobjectreference{#2}{#3}\PDFobjectreference
- \doPDFdictionaryobject{PDFMF}{#1}
- {/Type /Rendition
- /S /MR
- /C << /Type /MediaClip
- /S /MCD
- /N (#1)
- /D \PDFobjectreference>>}%
- % common code
- \doifobjectreferencefoundelse{PDFMS}{#1}
- {\doPDFgetobjectreference{PDFMS}{#1}\PDFobjectreferenceB}
- {\doPDFgetobjectreference{PDFMU}{#1}\PDFobjectreferenceB}%
- \doPDFgetobjectreference{PDFMF}{#1}\PDFobjectreferenceA
- \setxvalue{PDFMR:#1}% needed /AA actions in /Screen
- {/R \PDFobjectreferenceA
- /AN \PDFobjectreferenceB}%
- \doifobjectreferencefoundelse{PDFMS}{#1}\donothing
- {\dodoinsertrenderingwindow{PDFMU}{#1}\zeropoint\zeropoint{#4}}%
- \fi}
-
-\definespecial\doinsertrenderingwindow
- {\dodoinsertrenderingwindow{PDFMS}}
-
-\def\dodoinsertrenderingwindow#1#2#3#4#5%
- {\vbox to #4 \bgroup
- \checkPDFscreenactions{#2}{#5}%
- \doPDFgetobjectpagereference{PDFMF}{#2}\PDFobjectreferenceA
- \doPDFgetobjectreference {PDFMF}{#2}\PDFobjectreferenceB
- \vss
- \hbox to #3 \bgroup
- \doPDFannotationobject{#1}{#2}{#3}{#4}
- {/Subtype /Screen
- /P \PDFobjectreferenceA
- /A \PDFobjectreferenceB
- \PDFattributes
- /Border [0 0 0]}%
- \hss
- \egroup
- \egroup}
-
-\global\let\PDFrenderingopenpageaction \empty
-\global\let\PDFrenderingclosepageaction\empty
-
-\def\checkPDFscreenactions#1#2%
- {\let\PDFattributes\empty
- \iflocation % important since direct -)
- % the action can either (already) be set by the window handler
- % or (normally when no window [i.e a zero dimensions one] is present) by keyword
- \doifinset\v!auto{#2}
- {% brrr, here instead of in navigation module, must move and become special
- % now two sided dependency
- \let\checkrendering\gobbleoneargument
- \ifx\PDFrenderingopenpageaction \empty
- \handlereferenceactions{\v!StartRendering{#1}}\dosetuprenderingopenpageaction
- \fi
- \ifx\PDFrenderingclosepageaction\empty
- \handlereferenceactions{\v!StopRendering {#1}}\dosetuprenderingclosepageaction
- \fi
- }%
- \donefalse
- \ifx\PDFrenderingopenpageaction \empty\!!doneafalse\else\donetrue\!!doneatrue\fi
- \ifx\PDFrenderingclosepageaction\empty\!!donebfalse\else\donetrue\!!donebtrue\fi
- \ifdone
- \edef\PDFattributes
- {/AA <<\if!!donea/PO <<\PDFrenderingopenpageaction >> \fi
- \if!!doneb/PC <<\PDFrenderingclosepageaction>> \fi>>}%
- \fi
- \global\let\PDFrenderingopenpageaction \empty
- \global\let\PDFrenderingclosepageaction\empty
- \fi}
-
-\definespecial\dosetuprenderingopenpageaction {\global\let\PDFrenderingopenpageaction \lastPDFaction}
-\definespecial\dosetuprenderingclosepageaction{\global\let\PDFrenderingclosepageaction\lastPDFaction}
-
-%D \macros
-%D {doPDFinsertbookmark}
-%D
-%D Well, here is the dreadfull bookmark, rather useless because
-%D only standard encoding is possible, no typography is done,
-%D and a maximum of 32~characters is advized.
-
-\def\doPDFinsertbookmark#1#2#3#4#5% level sublevels text page open=1
- {\bgroup
- \sanitizePDFencoding#3\to\bookmarktext % uses scratchcounter
- \stripstring\bookmarktext
- \doPDFbookmark{#1}{#2}{\bookmarktext}{#4}{#5}%
- \egroup}
-
-%D The next section of this module is dedicated to form
-%D support. These macros are complicated by the fact that
-%D cloning is possible.
-
-%D \macros
-%D {FDFflag...,FDFplus...}
-%D
-%D The \type{/FT} key determines the type of field: text,
-%D button or choice. The latter two come in several disguises,
-%D which are set by flipping bits in the \type{/Ff}. Other bits
-%D are used to set states. Personally I hate this bitty way of
-%D doing things. The next six bit determine the field sub type:
-
-\def\FDFflagMultiLine {4096} % 13
-\def\FDFflagNoToggleToOff {16384} % 15
-\def\FDFflagRadio {32768} % 16 (not used as such)
-\def\FDFflagPushButton {65536} % 17
-\def\FDFflagPopUp {131072} % 18
-\def\FDFflagEdit {262144} % 19
-
-% bugged anyway, so we need to drop it:
-
-\def\FDFflagRadiosInUnison {33554432} % 26
-
-%D A few more (pdf 1.4) flags, what the spell check one: for
-%D obscure reasons for Adobe downward compatibility means
-%D enabling features that harm old applications like testing.
-
-\def\FDFflagDoNotSpellCheck {4194304} % 23
-\def\FDFflagDoNotScroll {8388608} % 24
-
-%D The next bits (watch how strange the bits are organized)
-%D take care of the states:
-
-\def\FDFflagReadOnly {1} % 1
-\def\FDFflagRequired {2} % 2
-\def\FDFflagNoExport {4} % 3
-\def\FDFflagPassword {8192} % 14
-\def\FDFflagSort {524288} % 20
-\def\FDFflagFileSelect {1048576} % 21
-
-%D There is a second, again bitset oriented, \type{/F} flag:
-
-\def\FDFplusInvisible {1} % 1
-\def\FDFplusHidden {2} % 2
-\def\FDFplusPrintable {4} % 3
-
-%def\FDFplusNoView {32} % 6
-%def\FDFplusToggleNoView {256} % 9
-
-\def\FDFplusAutoView {256} % {288} % 6+9
-
-%D \macros
-%D {setFDFswitches}
-%D
-%D The non||type bits are mapped onto user||interface
-%D swithes, to be used later on:
-
-\def\@@FDFflag{FDFflag}
-\def\@@FDFplus{FDFplus}
-
-\letvalue {\@@FDFflag\v!readonly}=\FDFflagReadOnly
-\letvalue {\@@FDFflag\v!required}=\FDFflagRequired
-\letvalue {\@@FDFflag\v!protected}=\FDFflagPassword
-\letvalue {\@@FDFflag\v!sorted}=\FDFflagSort
-\letvalue {\@@FDFflag\v!unavailable}=\FDFflagNoExport
-\letvalue {\@@FDFflag\v!nocheck}=\FDFflagDoNotSpellCheck
-\letvalue {\@@FDFflag\v!fixed}=\FDFflagDoNotScroll
-\letvalue {\@@FDFflag\v!file}=\FDFflagFileSelect
-
-\letvalue {\@@FDFplus\v!hidden}=\FDFplusHidden
-\letvalue {\@@FDFplus\v!printable}=\FDFplusPrintable
-
-\letvalue {\@@FDFplus\v!auto}=\FDFplusAutoView
-
-%D A set of switches is collected into the flags we mentioned
-%D before by the next macro (we don't handle negations yet,
-%D but do take care of redundancy):
-
-\def\FDFflag{0}
-\def\FDFplus{0}
-
-\def\setFDFswitches[#1]%
- {\bgroup
- \!!counta\zerocount
- \!!countb\zerocount
- \def\docommand##1%
- {\doifsomething{##1}
- {\advance\!!counta 0\getvalue{\@@FDFflag##1}%
- \setvalue{\@@FDFflag##1}{0}%
- \advance\!!countb 0\getvalue{\@@FDFplus##1}%
- \setvalue{\@@FDFplus##1}{0}}}%
- \processcommacommand[#1]\docommand
- \xdef\FDFflag{\the\!!counta}%
- \xdef\FDFplus{\the\!!countb}%
- \egroup}
-
-%D \macros
-%D {setFDFvalues}
-%D
-%D Menu items are passed as an array of \type{(string)}'s and
-%D the content of this array is build with:
-
-\let\FDFvalues \empty
-\let\FDFfirstvalues \empty
-\let\FDFsecondvalues\empty
-\let\FDFkidlist \empty
-\let\FDFdefaultindex\!!zerocount
-\let\FDFdefaultvalue\empty
-
-% Why do we need to tweak this mechanism each time acrobat updates ...
-% it would make sense to have version specific sections in pdf files
-% since my guess is that it never will be done right since each year
-% new programmers have new ideas about what is supposed to happen with
-% kids. So .. best is not to trust this feature esp not for radio
-% widgets. (new flags, different interpretation of AS etc etc)
-
-\def\setFDFvalues[#1][#2]% #1 = list (item=>value) #2 = default
- {\let\FDFvalues \empty
- %when radio opt works ok
- %\let\FDFfirstvalues \empty
- %\let\FDFsecondvalues\empty
- \let\FDFkidlist \empty
- %\let\FDFdefaultindex\!!zerocount
- %\let\FDFdefaultvalue\empty
- %\scratchcounter\zerocount
- \def\dodocommand##1=>##2=>##3\end
- {\addtocommalist{##1}\FDFkidlist
- %\edef\FDFfirstvalues{\FDFfirstvalues(##1)}%
- %\doif{##1}{#2}{\edef\FDFdefaultindex{\the\scratchcounter}}%
- %\advance\scratchcounter\plusone
- \doifelsenothing{##2}
- {\doif{##1}{#2}{\edef\FDFdefaultvalue{##1}}%
- %\edef\FDFsecondvalues{\FDFsecondvalues(##1)}%
- \edef\FDFvalues{\FDFvalues [(##1)(##1)] }}
- {\doif{##1}{#2}{\edef\FDFdefaultvalue{##2}}%
- %\edef\FDFsecondvalues{\FDFsecondvalues(##2)}%
- \edef\FDFvalues{\FDFvalues [(##2)(##1)] }}}% ! ##1 is shown
- \def\docommand##1%
- {\dodocommand##1=>=>\end}%
- \expanded{\processcommalist[#1]}\docommand}
-
-%D This macro accepts comma separated \type{visual=>result}
-%D pairs.
-
-%D \macros
-%D {setFDFalignment}
-%D
-%D Text and line fields can be entered and showed in three
-%D alternative alingments, indicated by a digit:
-
-\def\FDFalign{0}
-
-\def\setFDFalignment[#1]%
- {\processaction
- [#1]
- [ \v!left=>\edef\FDFalign{2}, % raggedleft
- \v!middle=>\edef\FDFalign{1}, % raggedcenter
- \v!right=>\edef\FDFalign{0}]} % raggedright
-
-%D \macros
-%D {setFDFattributes}
-%D
-%D The weak part of (at least version 2.1 \PDF) is that only
-%D default fonts are handled well. Another restriction is that
-%D the encoding vector must be the standard \PDF\ document one.
-%D Although the \PDF\ reference explictly states that one could
-%D use the normal text operators, leading is not yet handled.
-%D
-%D For the moment the current \CONTEXT\ font is mapped onto
-%D one best suitable default font. The color attribute is
-%D less problematic and is directly derived from the \CONTEXT\
-%D color.
-
-\def\FDFattributes{/Helv 12 Tf 0 g 14.4 TL}
-
-\def\FDFrm {TiRo} \def\FDFss {Helv} \def\FDFtt {Cour}
-\def\FDFrmtf{TiRo} \def\FDFsstf{Helv} \def\FDFtttf{Cour}
-\def\FDFrmbf{TiBo} \def\FDFssbf{HeBo} \def\FDFttbf{CoBo}
-\def\FDFrmit{TiIt} \def\FDFssit{HeOb} \def\FDFttit{CoOb}
-\def\FDFrmsl{TiIt} \def\FDFsssl{HeOb} \def\FDFttsl{CoOb}
-\def\FDFrmbi{TiBI} \def\FDFssbi{HeBO} \def\FDFttbi{CoBO}
-\def\FDFrmbs{TiBI} \def\FDFssbs{HeBO} \def\FDFttbs{CoBO}
-
-\let\FDFusedfonts=\FDFsstf
-
-\def\setFDFattributes[#1,#2,#3,#4]% style, color, backgroundcolor, framecolor
- {\bgroup % nog interlinie: n TL
- \setbox\scratchbox\hbox
- \bgroup
- \doconvertfont{#1}{}%
- \PointsToBigPoints\bodyfontsize\size % x/xx, so better the actual size
- \doifdefinedelse{FDF\fontstyle\fontalternative}
- {\xdef\FDFattributes{\getvalue{FDF\fontstyle\fontalternative}}}
- {\doifdefinedelse{FDF\fontstyle}
- {\xdef\FDFattributes{\getvalue{FDF\fontstyle}}}
- {\xdef\FDFattributes{\FDFrm}}}%
- \doglobal\addtocommalist\FDFattributes\FDFusedfonts
- \xdef\FDFattributes% move up with "x.y Ts"
- {/\FDFattributes\space\size\space Tf\space\PDFcolor{#2}}%
- \doifelsenothing{#3}
- {\global\let\FDFsurroundings\empty}
- {\xdef\FDFsurroundings{/BG \FDFcolor{#3}}}%
- \doifsomething{#4}
- {\xdef\FDFsurroundings{\FDFsurroundings\space /BC \FDFcolor{#4}}}%
- \ifx\FDFsurroundings\empty \else
- \xdef\FDFsurroundings{/MK << \FDFsurroundings\space>>}%
- \fi
- \egroup
- \egroup}
-
-%D \macros
-%D {setFDFactions}
-%D
-%D Depending on the type of the field, one can assign
-%D \JAVASCRIPT\ code to a mouse event or keystroke. The next
-%D preparation macro shows what events are handled.
-
-\let\FDFactions\empty
-
-\def\setFDFactions[#1,#2,#3,#4,#5,#6,#7,#8,%
- {\global\let\FDFactions\empty
- \setFDFaction D#1\relax% mousedown
- \setFDFaction U#2\relax% mouseup
- \setFDFaction E#3\relax% enterregion
- \setFDFaction X#4\relax% exitregion
- \setFDFaction K#5\relax% afterkeystroke
- \setFDFaction F#6\relax% formatresult
- \setFDFaction V#7\relax% validateresult
- \setFDFaction C#8\relax% calculatewhatever
- \setFDFactionsmore}
-
-\def\setFDFactionsmore#1,#2]%
- {\setFDFaction{Fo}#1\relax% focusin
- \setFDFaction{Bl}#2\relax% focusout % was I (now pdf ref manual explicitly talks about lowercase l)
- \ifx\FDFactions\empty\else
- \xdef\FDFactions{/AA << \FDFactions >>}% since 1.3 no longer inherited
- \fi}
-
-% todo, when new var scheme is implemented
-%
-% \setFDFaction{PO}\@@DriverFieldPageOpen\relax
-% \setFDFaction{PC}\@@DriverFieldPageClose\relax
-% \setFDFaction{PV}\@@DriverFieldPageVisible\relax
-% \setFDFaction{PI}\@@DriverFieldPageInVisible\relax
-
-%D The event handler becomes something:
-%D
-%D \starttyping
-%D /AA << /D << /S ... >> ... /C << /S ... >>
-%D /A << /S /JavaScript /JS (...) >>
-%D \stoptyping
-
-% \def\setFDFaction#1#2\relax%
-% {\bgroup
-% \global\let\sanitizedJScode\empty
-% \def\setFDFaction##1%
-% {\doifreferencefoundelse{##1}
-% {\doifelse{\currentreferencespecial}{JS} % filter non-js
-% {\presetJScode
-% \currentreferenceoperation
-% \currentreferencearguments
-% \doPSsanitizeJScode\JScode\to\JScode
-% \xdef\sanitizedJScode{\sanitizedJScode\space\JScode}}
-% {\illegalreference{##1}}}
-% {\unknownreference{##1}}}%
-% \@EA\processcommalist\@EA[#2]\setFDFaction % one level expansion
-% \ifx\sanitizedJScode\empty \else
-% \xdef\FDFactions%
-% {\FDFactions /#1 << /S /JavaScript /JS (\sanitizedJScode) >> }%
-% \fi
-% \egroup}
-%
-% acrobat 5 supports other that JS actions too
-
-\def\setFDFaction#1#2\relax%
- {\bgroup
- \def\docommand{\xdef\FDFactions{\FDFactions /#1 << \lastPDFaction >> }}%
- \@EA\handlereferenceactions\@EA{#2}\docommand % one level expansion
- \egroup}
-
-%D \macros
-%D {testFDFactions}
-%D
-%D This rather confusion prone series of script can be tested
-%D with:
-%D
-%D \starttyping
-%D \testFDFactions
-%D \stoptyping
-%D
-%D which simply redefined the previous macro to one that prints
-%D a message to the console.
-
-\def\testFDFactions
- {\def\setFDFaction##1##2\relax%
- {\doPSsanitizeJScode console.show();console.println("executing:##1"); \to\sanitizedJScode
- \edef\FDFactions{\FDFactions /##1 << /S /JavaScript /JS (\sanitizedJScode) >> }}}
-
-%D \macros
-%D {doFDFregistercalculationset}
-%D
-%D There is at most one calculation order list, which defines
-%D the order in which fields are calculated.
-
-\let\PDFcalculationset\empty
-
-\def\doFDFregistercalculationset#1%
- {\def\PDFcalculationset{#1}}
-
-%D \macros
-%D {registerFDFobject,everylastshipout}
-%D
-%D Officially one needs to embed some general datastructures
-%D that tell the viewer what fields are present in the file, as
-%D well as what resources they use. The next mechanism does that
-%D job automatically when one registers the field.
-
-\def\flushFDFnames
- {\ifbuildFDFdictionary
- \ifx\FDFcollection\empty\else
- \ifbuildFDFencodingvector
- \doPDFdictionaryobject{FDF}{local:encodingvector}{\FDFencodingvector}%
- \fi
- \defineFDFfonts
- \doPDFarrayobject{FDF}{local:fields}{\FDFcollection}%
- \doPDFgetobjectreference{FDF}{local:fields}\PDFobjectreference
- % The /NeedAppearances is pretty important because
- % otherwise Acrobat 5 blows up on cloned radio widgets
- \doPDFdictionaryobject{FDF}{local:acroform}
- {/Fields \PDFobjectreference\space
- /NeedAppearances true
- \doFDFiffieldset\PDFcalculationset{/CO [\doFDFgetfieldset\PDFcalculationset]}
- /DR << /Font << \FDFfonts >> >>
- /DA (/Helv 10 Tf 0 g)}%
- \doPDFgetobjectreference{FDF}{local:acroform}\PDFobjectreference
- \doPDFaddtocatalog
- {/AcroForm \PDFobjectreference}%
- \global\let\FDFcollection\empty
- \global\let\flushFDFnames\relax
- \fi
- \fi}
-
-\let\FDFcollection\empty
-
-\def\registerFDFobject#1%
- {\ifbuildFDFdictionary
- \ifx\flushFDFnames\relax
- \writestatus{FDF}{second run needed for field list (#1)}%
- \fi
- \doPDFgetobjectreference{FDF}{#1}\PDFobjectreference
- \xdef\FDFcollection{\FDFcollection\space\PDFobjectreference}%
- \fi}
-
-\appendtoksonce \flushFDFnames \to \everylastshipout % test \everybye / was \prependtoksonce
-
-%D \macros
-%D {defineFDFfonts,
-%D ifbuildFDFdictionary,
-%D ifbuildFDFencodingvector}
-%D
-%D Another datastruture concerns the fonts used. We only
-%D define the fonts we use.
-
-\newif\ifbuildFDFdictionary \buildFDFdictionarytrue
-\newif\ifbuildFDFencodingvector \buildFDFencodingvectortrue
-
-\def\defineFDFfonts
- {\let\FDFfonts\empty
- \processcommacommand[\FDFusedfonts]\defineFDFfont}
-
-\def\defineFDFfont#1%
- {\ifbuildFDFencodingvector
- \doPDFgetobjectreference{FDF}{local:encodingvector}\PDFobjectreference
- \fi
- \doPDFdictionaryobject{FDF}{local:#1}
- {/Type /Font
- /Subtype /Type1
- /Name /#1
- \ifbuildFDFencodingvector /Encoding \PDFobjectreference\space\fi
- /BaseFont /\getvalue{FDFname#1}}%
- \doPDFgetobjectreference{FDF}{local:#1}\PDFobjectreference
- \edef\FDFfonts{\FDFfonts \space/#1 \PDFobjectreference}}
-
-%D Another list of constants:
-
-\def\FDFnameTiRo {Times-Roman}
-\def\FDFnameTiBo {Times-Bold}
-\def\FDFnameTiIt {Times-Italic}
-\def\FDFnameTiBI {Times-BoldItalic}
-\def\FDFnameHelv {Helvetica}
-\def\FDFnameHeBo {Helvetica-Bold}
-\def\FDFnameHeOb {Helvetica-Oblique}
-\def\FDFnameHeBO {Helvetica-BoldOblique}
-\def\FDFnameCour {Courier}
-\def\FDFnameCoBo {Courier-Bold}
-\def\FDFnameCoOb {Courier-Oblique}
-\def\FDFnameCoBO {Courier-BoldOblique}
-
-%D And a big one: (should be run time loaded (spec-run or
-%D so)).
-
-\def\FDFencodingvector
- {/Type /Encoding
- /Differences
- [ 24 /breve /caron /circumflex /dotaccent /hungarumlaut /ogonek
- /ring /tilde
- 39 /quotesingle
- 96 /grave
- 128 /bullet /dagger /daggerdbl /ellipsis /emdash /endash /florin
- /fraction /guilsinglleft /guilsinglright /minus /perthousand
- /quotedblbase /quotedblleft /quotedblright /quoteleft
- /quoteright /quotesinglbase /trademark /fi /fl /Lslash /OE
- /Scaron /Ydieresis /Zcaron /dotlessi /lslash /oe /scaron
- /zcaron
- 164 /currency
- 166 /brokenbar
- 168 /dieresis /copyright /ordfeminine
- 172 /logicalnot /.notdef /registered /macron /degree /plusminus
- /twosuperior /threesuperior /acute /mu
- 183 /periodcentered /cedilla /onesuperior /ordmasculine
- 188 /onequarter /onehalf /threequarters 192 /Agrave /Aacute
- /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave
- /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex
- /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde
- /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
- /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
- /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave
- /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex
- /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde
- /odieresis /divide /oslash /ugrave /uacute /ucircumflex
- /udieresis /yacute /thorn /ydieresis ]}
-
-%D \macros
-%D {currentFDFmode,currentFDFparent,currentFDFkids,currenrFDFroot}
-%D
-%D There are three more quasi global interfacing variables
-%D that need to be set.
-
-\let\currentFDFmode =\fieldlonermode
-\let\currentFDFkids =\empty
-\let\currentFDFparent=\empty
-\let\currentFDFroot =\empty
-
-%D \macros
-%D {dosetfieldstatus}
-%D
-%D And here comes the special that deals with them.
-
-\definespecial\dosetfieldstatus#1#2#3#4%
- {\chardef\currentFDFmode #1%
- \edef\currentFDFparent {#2}%
- \edef\currentFDFkids {#3}%
- \edef\currentFDFroot {#4}}
-
-%D \macros
-%D {dosetuppageview}
-%D
-%D Because this command will seldom be called, we can permit
-%D slow action processing. We need three settings, one for
-%D direct \PDF\ inclusion, the other as \PDFTEX\ keyword, an
-%D a last one for form. All determine in what way the
-%D screen is adapted when going to a destination. Watch the
-%D space.
-
-\def\PDFpageviewkey{fit}
-\def\PDFpageviewwrd{/Fit}
-\def\PDFpageview {/View [\PDFpageviewwrd] }
-\let\PDFpagexyzspec\relax % 0 0 0 hack, pdftex does handle this, for dvipdfmx we need height
-
-\def\dosetuppageview#1% watch the v-h swapping here
- {\processaction
- [#1]
- [ \v!fit=>\def\PDFpageviewkey {fit}\def\PDFpageviewwrd{/Fit},
- \v!width=>\def\PDFpageviewkey {fith}\def\PDFpageviewwrd{/FitH},
- \v!height=>\def\PDFpageviewkey {fitv}\def\PDFpageviewwrd{/FitV},
- \v!minwidth=>\def\PDFpageviewkey{fitbh}\def\PDFpageviewwrd{/FitBH},
- \v!minheight=>\def\PDFpageviewkey{fitbv}\def\PDFpageviewwrd{/FitBV},
- \v!standard=>\ifx\PDFpagexyzspec\relax
- % empty does not work too wel with dpx
- \def\PDFpageviewkey{fit}%
- \def\PDFpageviewwrd{/Fit}%
- \else
- \edef\PDFpageviewkey{xyz \PDFpagexyzspec}%
- \edef\PDFpageviewwrd{/XYZ \PDFpagexyzspec}%
- \fi,
- \s!unknown=>\def\PDFpageviewkey {fit}\def\PDFpageviewwrd{/Fit}]%
- \edef\PDFpageview{\ifx\PDFpageviewwrd\empty\else/View [\PDFpageviewwrd]\fi}}
-
-%D \macros
-%D {setFDFkids}
-%D
-%D Clones as well as radiofields (which themselves can have
-%D cloned components) need a list of kids. The next macro
-%D builds one.
-
-\def\setFDFkids[#1][#2]% tag commalist
- {\let\FDFkids\empty
- \def\docommand##1%
- {\doPDFgetobjectreference{FDF}{#1##1}\PDFobjectreference
- \edef\FDFkids{\FDFkids\PDFobjectreference\space}}%
- \@EA\processcommalist\@EA[#2]\docommand
- \ifx\FDFkids\empty\else\edef\FDFkids{/Kids [\FDFkids]}\fi
-% \edef\FDFkids{/Kids [\FDFkids]}%
- }
-
-%D \macros
-%D {doFDFpresetlinefield,doFDFpresettextfield,
-%D doFDFpresetchoicefield,doFDFpresetpopupfield,doFDFpresetcombofield,
-%D doFDFpresetpushfield,doFDFpresetcheckfield,
-%D doFDFpresetfield,doFDFpresetradiorecord}
-%D
-%D I would say: read the \PDF\ reference manual first and see
-%D what happens here next. Lucky us that they have so much in
-%D common.
-
-\def\doFDFpresetlinefield#1#2#3#4#5#6#7#8#9%
- {\bgroup
- \setFDFlayer\@@DriverFieldLayer
- \setFDFswitches[#7]%
- \setFDFattributes[#6]%
- \setFDFalignment[#8]%
- \setFDFactions[#9]%
- \expanded{\escapePSstring#4}\to\FDFtext
- \ifcase\currentFDFmode
- \doPDFannotationobject{FDF}{#1}{#2}{#3}
- {/Subtype /Widget /T (#1) /FT /Tx
- /MaxLen \ifcase0#5 1000 \else#5 \fi
- %/DV (#4) /V (#4) % value added
- /DV (\FDFtext) /V (\FDFtext) % value added
- /Ff \FDFflag\space
- /F \FDFplus\space
- /DA (\FDFattributes)
- \FDFlayer\space
- \FDFsurroundings\space
- /Q \FDFalign\space
- \FDFactions}%
- \registerFDFobject{#1}%
- \or
- \setFDFkids[kids:][\currentFDFkids]%
- \doPDFdictionaryobject{FDF}{#1}
- {/T (#1) /FT /Tx
- /MaxLen \ifcase0#5 1000 \else#5 \fi
- \FDFkids\space
- %/DV (#4) /V (#4) % value added
- /DV (\FDFtext) /V (\FDFtext) % value added
- /Ff \FDFflag\space
- /F \FDFplus\space
- /DA (\FDFattributes)
- \FDFlayer\space
- \FDFsurroundings\space
- /Q \FDFalign\space
- \FDFactions}%
- \registerFDFobject{#1}%
- \or
- \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
- %\global\objectreferencingtrue
- \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference
- /Ff \FDFflag\space
- /F \FDFplus\space
- /DA (\FDFattributes)
- \FDFlayer\space
- \FDFsurroundings\space
- /Q \FDFalign\space
- \FDFactions}%
- \or
- \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
- %\global\objectreferencingtrue
- \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference
- /F \FDFplus
- \FDFactions}%
- \fi
- \egroup}
-
-\def\doFDFpresettextfield#1#2#3#4#5#6#7#8#9%
- {\doFDFpresetlinefield{#1}{#2}{#3}{#4}{#5}{#6}{MultiLine,#7}{#8}{#9}}
-
-\def\doFDFpresetchoicefield#1#2#3#4#5#6#7#8%
- {\bgroup
- \setFDFlayer\@@DriverFieldLayer
- \setFDFswitches[#6]%
- \setFDFattributes[#5]%
- \setFDFvalues[#7][#4]%
- \setFDFactions[#8]%
- \ifcase\currentFDFmode
- \doPDFannotationobject{FDF}{#1}{#2}{#3}
- {/Subtype /Widget
- /T (#1) /FT /Ch
- /DV (#4) /V (#4)
- /Ff \FDFflag\space
- /F \FDFplus\space
- /DA (\FDFattributes)
- \FDFlayer\space
- \FDFsurroundings\space
- /Opt [\FDFvalues]
- \FDFactions}%
- \registerFDFobject{#1}%
- \or
- \setFDFkids[kids:][\currentFDFkids]%
- \doPDFdictionaryobject{FDF}{#1}
- {/T (#1) /FT /Ch
- \FDFkids\space
- /DV (#4) /V (#4)
- /Ff \FDFflag\space
- /F \FDFplus\space
- /DA (\FDFattributes)
- \FDFlayer\space
- \FDFsurroundings\space
- /Opt [\FDFvalues]
- \FDFactions}%
- \registerFDFobject{#1}%
- \or
- \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
- %\global\objectreferencingtrue
- \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference
- /Ff \FDFflag\space
- /F \FDFplus\space
- /DA (\FDFattributes)
- \FDFlayer\space
- \FDFsurroundings\space
- \FDFactions}%
- \or
- \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
- %\global\objectreferencingtrue
- \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference
- /F \FDFplus
- \FDFactions}%
- \fi
- \egroup}
-
-\def\doFDFpresetpopupfield#1#2#3#4#5#6#7#8%
- {\doFDFpresetchoicefield{#1}{#2}{#3}{#4}{#5}{PopUp,#6}{#7}{#8}}
-
-\def\doFDFpresetcombofield#1#2#3#4#5#6#7#8%
- {\doFDFpresetchoicefield{#1}{#2}{#3}{#4}{#5}{PopUp,Edit,#6}{#7}{#8}}
-
-\newif\ifFDFvalues
-
-\def\doFDFpresetpushcheckfield#1#2#3#4#5#6#7#8% in acro<5 (\FDFdefault)
- {\bgroup % in acro>5 /\FDFdefault
- \setFDFlayer\@@DriverFieldLayer
- \ifcase#8\relax\FDFvaluesfalse\else\FDFvaluestrue\fi
- \setFDFswitches[#5]%
- \setFDFactions[#7]%
- \doifelse{#4}{1}
- {\def\FDFdefault{On}}
- {\def\FDFdefault{Off}}%
- \ifcase\currentFDFmode
- \doFDFappearance{On}{#6}{#8}%
- \doPDFannotationobject{FDF}{#1}{#2}{#3}
- {/Subtype /Widget /T (#1) /FT /Btn
- \ifFDFvalues
- /DV /\FDFdefault\space
- /V /\FDFdefault\space
- /AS /\FDFdefault\space
- \fi
- \FDFlayer
- /Ff \FDFflag\space
- /F \FDFplus\space
- \FDFlayer\space
- \FDFappearance\space
-% /IF << /SW /N >> % strange, only works for stupid buttons
- \FDFactions}%
- \registerFDFobject{#1}%
- \or % no appearance and layer ?
- \setFDFkids[kids:][\currentFDFkids]%
- \doPDFdictionaryobject{FDF}{#1}
- {/T (#1) /FT /Btn
- \FDFkids\space
- \ifFDFvalues
- /DV /\FDFdefault\space
- /V /\FDFdefault\space
- /AS /\FDFdefault\space
- \fi
- /Ff \FDFflag\space
- /F \FDFplus\space
- \FDFactions}%
- \registerFDFobject{#1}%
- \or
- \doFDFappearance{On}{#6}{#8}%
- \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
- %\global\objectreferencingtrue
- \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference\space
- \ifFDFvalues
- /DV /\FDFdefault\space
- /V /\FDFdefault\space
- /AS /\FDFdefault\space
- \fi
- /Ff \FDFflag\space
- /F \FDFplus\space
- \FDFlayer\space
- \FDFappearance\space
- \FDFactions}%
- \or
- \doFDFappearance{On}{#6}{#8}%
- \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
- %\global\objectreferencingtrue
- \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference\space
- /F \FDFplus\space
- \ifFDFvalues
- /DV /\FDFdefault\space
- /V /\FDFdefault\space
- /AS /\FDFdefault\space
- \fi
- \FDFlayer\space
- \FDFappearance
- \FDFactions}%
- \fi
- \egroup}
-
-\def\doFDFpresetpushfield#1#2#3#4#5#6#7%
- {\doFDFpresetpushcheckfield{#1}{#2}{#3}{#4}{PushButton,#5}{#6}{#7}{0}}
-
-\def\doFDFpresetcheckfield#1#2#3#4#5#6#7%
- {\doFDFpresetpushcheckfield{#1}{#2}{#3}{#4}{#5}{#6}{#7}{1}}
-
-% As pdf widgets are rather consistently upward incompatible
-% especially with regards to inheritance, the following code is not
-% quite okay. I've decided no longer to bother about in it in MkII
-% and use a flat model in MkIV which somehow seems to work better.
-
-\def\doFDFpresetradiofield#1#2#3#4#5#6#7#8%
- {\bgroup
- \setFDFlayer\@@DriverFieldLayer
- \FDFvaluestrue
- \setFDFswitches[#5]%
- \setFDFactions[#8]%
- \doifelsenothing{#4}
- {\def\FDFdefault{Off}}
- {\def\FDFdefault{#4}}%
- \@EA\aftersplitstring\FDFdefault\at=>\to\FDFdefaultvalue
- \ifx\FDFdefaultvalue\empty\else\let\FDFdefault\FDFdefaultvalue\fi
- \ifcase\currentFDFmode
- \doFDFappearance{#1}{#7}{1}%
- \doPDFgetobjectreference{FDF}{#6}\PDFobjectreference
- \doPDFannotationobject{FDF}{#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference\space
- /F \FDFplus\space
- /AS /\FDFdefault\space
- \FDFlayer\space
- \FDFappearance\space
- \FDFactions}%
- \registerFDFobject{#1}%
- \or
- \setFDFkids[kids:][\currentFDFkids]%
- \doPDFgetobjectreference{FDF}{#6}\PDFobjectreference
- \doPDFdictionaryobject{FDF}{#1}
- {/Parent \PDFobjectreference\space
- \FDFkids\space
- /F \FDFplus\space
- \FDFactions}%
- \registerFDFobject{#1}%
- \or
- %\doFDFappearance{#1}{#7}{1}%
- \doFDFappearance{\currentFDFparent}{#7}{1}%
- \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
- %\global\objectreferencingtrue % nb
- \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference\space
- /AS /\FDFdefault\space
- /F \FDFplus\space
- \FDFlayer\space
- \FDFappearance\space
- \FDFactions}%
- \or
- %\doFDFappearance{#1}{#7}{1}%
- \doFDFappearance{\currentFDFparent}{#7}{1}%
- \doPDFgetobjectreference{FDF}\currentFDFparent\PDFobjectreference
- %\global\objectreferencingtrue
- \doPDFannotationobject{FDF}{kids:#1}{#2}{#3}
- {/Subtype /Widget
- /Parent \PDFobjectreference\space
- /AS /\FDFdefault\space
- /F \FDFplus\space
- \FDFlayer\space
- \FDFappearance\space
- \FDFactions}%
- \fi
- \egroup}
-
-%D \macros
-%D {setFDFstrings}
-%D
-%D This one creates a string array.
-
-%\def\setFDFstrings[#1]%
-% {\let\FDFstrings\empty
-% \def\docommand##1{\edef\FDFstrings{\FDFstrings(##1)}}%
-% \processcommacommand[#1]\docommand}
-
-% Beware, RadiosInUnison is really needed in the pre 1.5/6 time this
-% was the default but out of a sudden it's no longer the case. Also
-% the NoToggleToOff interferes with kids of kids and both it will
-% break older documents, i.e. so much for pdf as standard. With
-% features like widgets we can probably best wait till adobe tools
-% themselves support it because that's probably the moment that
-% functionality gets frozen/becomes definitive. Actually, acrobat
-% flattens the kids tree, so that's yet another situation. The
-% interesting thing is that it worked ok in acrobat 2/3 but got bugged
-% in later versions. [The rationale is in html compatibility, which
-% seems to be more important than compatibility of documents, which in
-% turn renders acrobat useless for forms.] Anyway, synchronization is
-% broken or not depending on the combination pdfversion/acrobatversion.
-%
-% Hm, nowadays Radio will overload RadiosInUnison so we need to use only one
-% of them.
-
-\def\doFDFpresetradiorecord#1#2#3#4#5%
- {\bgroup
- % < pdf 1.5 (1.5 was broken)
- % \setFDFswitches[Radio,NoToggleToOff,RadiosInUnison,#3]%
- % > pdf 1.5
- % \setFDFswitches[Radio,RadiosInUnison,#3]%
- % > pdf 1.6
- \setFDFswitches[RadiosInUnison,#3]%
- %setFDFswitches[PushButton,RadiosInUnison,#3]% this is what acrobat itself does
- % older, else fatal error
- % \setFDFkids[#4][]%
- % newer
- \setFDFvalues[#4][#2]% inits kidlist
- \expanded{\setFDFkids[][\FDFkidlist]}%
- %
- \setFDFactions[#5]%
- \doPDFdictionaryobject{FDF}{#1}
- {%/Subtype /Widget
- /FT /Btn /T (#1) /Rect [0 0 0 0]
- % used to be this
- % /V (#2)
- % then this
- % /DV (#2)
- % since this bomded in 5
- % /V (#2)
- % and now finally this works
- /H /N
- % /opt is buggy in 5.05, only works once, sigh
- %\ifx\FDFfirstvalues\FDFsecondvalues
- /V /#2
- %\else
- % /V /\FDFdefaultindex\space
- % /Opt [\FDFsecondvalues]
- %\fi
- /Ff \FDFflag\space
- /F \FDFplus\space
- \FDFkids\space
- \FDFactions}%
- \egroup}
-
-%D At the cost of some more references, we can save bytes,
-%D by sharing appearance dictionaries. This code needs more
-%D documentation. Surprise:
-
-\def\dodoFDFappearance#1#2%
- {\ifx#2\empty\else
- \dogetcommacommandelement1\from#2\to\commalistelement
- \ifx\commalistelement\empty\else
- \doPDFgetobjectreference{SYM}\commalistelement\PDFobjectreference
- \edef\N{\ifFDFvalues\N /#1 \fi\PDFobjectreference\space}%
- \fi
- \dogetcommacommandelement2\from#2\to\commalistelement
- \ifx\commalistelement\empty\else
- \doPDFgetobjectreference{SYM}\commalistelement\PDFobjectreference
- \edef\R{\ifFDFvalues\R /#1 \fi\PDFobjectreference\space}%
- \fi
- \dogetcommacommandelement3\from#2\to\commalistelement
- \ifx\commalistelement\empty\else
- \doPDFgetobjectreference{SYM}\commalistelement\PDFobjectreference
- \edef\D{\ifFDFvalues\D /#1 \fi\PDFobjectreference\space}%
- \def\FDFappearance{/H /P }%
- \fi
- \fi}
-
-\def\redoFDFappearance#1%
- {\ifx#1\empty\else
- \dogetcommacommandelement3\from#1\to\commalistelement
- \ifx\commalistelement\empty\else
- \def\FDFappearance{/H /P }%
- \fi
- \fi}
-
-\def\doFDFappearance#1#2#3%
- {\ifcase#3\relax % push only field
- \edef\yes{#2}%
- \let\no\empty
- \else % on / off field
- \dogetcommacommandelement1\from#2,\to\yes
- \dogetcommacommandelement2\from#2,\to\no
- \fi
- \def\FDFappearance{/H /N}%
- \doifobjectfoundelse{FDF}{ap:#1:\yes:\no}
- {\redoFDFappearance\yes
- \redoFDFappearance\no}
- {\presetobject{FDF}{ap:#1:\yes:\no}% funny hack
- \let\N\empty\let\R\empty\let\D\empty
- \dodoFDFappearance{#1}\yes
- \dodoFDFappearance{Off}\no
- \doPDFdictionaryobject{FDF}{ap:#1:\yes:\no}
- {\ifx\N\empty\else/N \ifFDFvalues<<\N>>\else\N\fi\fi
- \ifx\R\empty\else/R \ifFDFvalues<<\R>>\else\R\fi\fi
- \ifx\D\empty\else/D \ifFDFvalues<<\D>>\else\D\fi\fi}}%
- \doPDFgetobjectreference{FDF}{ap:#1:\yes:\no}\PDFobjectreference
- \edef\FDFappearance{\FDFappearance /AP \PDFobjectreference}}
-
-%\def\doFDFdefault#1#2%
-% {\dogetcommacommandelement1\from#1,\to\commalistelement
-% \dogetcommacommandelement1\from\commalistelement\to\commalistelement
-% \doifelse{\commalistelement}{#2} % kan ook met \ifx
-% {\def\FDFdefault{On}}{\def\FDFdefault{Off}}}
-
-\def\doFDFdefault#1#2%
- {\doifelse{#2}{1}{\def\FDFdefault{On}}{\def\FDFdefault{Off}}}
-
-%D Layer support:
-
-\def\setFDFlayer#1% todo : \ifx\PDFobjectreference\noPDFobjectreference ipv found
- {\letempty\FDFlayer
- \doifsomething{#1}%
- {\checkproperty[#1]% == \dodocheckproperty\@@DriverFieldLayer
- \doifobjectreferencefoundelse{PDLN}{#1}
- {\doPDFgetobjectreference{PDLN}{#1}\!!stringa % we need to avoid a clash with other macros
- \edef\FDFlayer{/OC \!!stringa}}%
- \donothing}}
-
-%D The three appearances {\em normal}, \type{roll over} and
-%D \type{push down} are passed as comma separated triplets,
-%D that is, the second argument can look like:
-%D
-%D \starttyping
-%D {yes,ok,fine},{no,rubish,awful}
-%D \stoptyping
-
-%D \macros
-%D {doFDFdefinefieldset,doFDFgetfieldset,doFDFiffieldset}
-%D
-%D Field sets, the ones we use in submitting and resetting
-%D fields, are implemented using the next low level specials:
-%D
-%D \starttyping
-%D \doFDFdefinefieldset{TAG}{name,name,...}
-%D \doFDFgetfieldset{TAG}
-%D \doFDFiffieldset{TAG}{sequence}
-%D \stoptyping
-
-\def\doFDFdefinefieldset#1#2% tag commalist
- {\let\FDFfieldset\empty
- \def\docommand##1%
- {\doPDFgetobjectreference{FDF}{##1}\PDFobjectreference
- \edef\FDFfieldset{\FDFfieldset\PDFobjectreference\space}}%
- \processcommacommand[#2]\docommand % nb: command
- \setevalue{FDF:set:#1}{\FDFfieldset}}
-
-\def\doFDFgetfieldset#1%
- {\getvalue{FDF:set:#1}}
-
-\def\doFDFiffieldset#1#2%
- {\ifundefined{FDF:set:#1}\else#2\fi}
-
-%D In the goto specials we took care of secondary references.
-%D Here we define the macros used.
-
-\def\doPDFresetgotowhereever
- {\global\let\secondaryPDFreferences\empty}
-
-\doPDFresetgotowhereever % just to be sure
-
-% we can (in etex) share more by testing on this
-
-\def\savesecondaryPDFreference#1%
- {\@EA\xdef\csname PDF-SR:\the\nofsecondaryreferences\endcsname{#1}}
-
-\def\savesecondaryPDFreference % #1 == \action
- {\global\@EA\let\csname PDF-SR:\the\nofsecondaryreferences\endcsname}
-
-%\def\getsecondaryPDFreferences%
-% {\ifcase\nofsecondaryreferences\else
-% %\doifdefined{PDF-SR:\the\nofsecondaryreferences}
-% \xdef\secondaryPDFreferences%
-% {/Next << \csname PDF-SR:\the\nofsecondaryreferences\endcsname\space
-% \secondaryPDFreferences >>}%
-% \global\advance\nofsecondaryreferences \minusone
-% \expandafter\getsecondaryPDFreferences
-% \fi}
-
-% test should happen in core-ref
-
-\def\getsecondaryPDFreferences
- {\ifcase\nofsecondaryreferences\else
- \ifcsname PDF-SR:\the\nofsecondaryreferences\endcsname
- \xdef\secondaryPDFreferences
- {/Next << \csname PDF-SR:\the\nofsecondaryreferences\endcsname\space
- \secondaryPDFreferences >>}%
- \fi
- \global\advance\nofsecondaryreferences \minusone
- \expandafter\getsecondaryPDFreferences
- \fi}
-
-%D \macros
-%D {loadFDFfields, showFDFfields,
-%D getFDFfield, setFDFfield}
-%D
-%D Once filled in, we can export or submit the field in the
-%D \FDF\ file format. Such a file can be loaded by
-%D
-%D \starttyping
-%D \loadFDFfields{fiel-ini}
-%D \stoptyping
-%D
-%D or inspected by
-%D
-%D \starttyping
-%D \showFDFfields{fiel-ini}
-%D \stoptyping
-%D
-%D After both commands, one can use
-%D
-%D \starttyping
-%D \getFDFfield{name}
-%D \setFDFfield{name}{value}
-%D \stoptyping
-%D
-%D to inspect and overrule the data.
-%D
-%D By default \CONTEXT\ calls the perl script \type{fdf2tex}.
-%D This script reads the \type{fdf} file and produces a file
-%D named \type{filename.fdt}. If one disables the call to this
-%D script, by saying:
-%D
-%D \starttyping
-%D \runFDFconverterfalse
-%D \stoptyping
-%D
-%D or when \CONTEXT\ cannot find the \type{fdt} file, it tries
-%D to interpret the \type{fdf} file directly. Both mechanisms
-%D are rather crude.
-
-\newif\ifrunFDFconverter \runFDFconvertertrue
-
-%D The \PERL\ script produces a file formatted as:
-%D
-%D \starttyping
-%D \beginFDFobject
-%D \beginFDFdata
-%D \beginFDFfields
-%D \FDFfield[name=,value=]
-%D \endFDFfields
-%D \endFDFdata
-%D \endFDFobject
-%D \stoptyping
-%D
-%D One reason for using key value pairs is that we cannot be
-%D sure or the order in which the name and value are given
-%D (actually the reverse).
-
-\def\PERLloadFDFfields#1% will become obsolete soon
- {\bgroup
- \global\let\allFDFfields\empty
- \ifrunFDFconverter
- \executesystemcommand{fdf2tex #1}%
- \let\beginFDFobject\relax \let\endFDFobject\relax
- \let\beginFDFdata \relax \let\endFDFdata \relax
- \let\beginFDFfields\relax \let\endFDFfields\relax
- \def\FDFfield[##1]%
- {\getparameters[FDF][##1]%
- \doglobal\addtocommalist\FDFname\allFDFfields
- \global\setFDFfield{\FDFname}{\FDFvalue}}%
- \ReadFile{#1.fdt}%
- \fi
- \egroup}
-
-%D The next macro does the same job, but now in the \TEX\ way
-%D of doing things. Easy eh? Will become obsolete!
-
-\bgroup
-
-\catcode`\/=\@@other
-\global\let\normalslash=/
-\catcode`\/=\@@escape
-
-\gdef\TEXloadFDFfields#1% will become obsolete due to XFDF
- {\bgroup
- \setbox0=\hbox
- {\global\let\allFDFfields\empty
- \scratchcounter=0
- \escapechar=-1
- \catcode`\/=\@@escape
- \catcode`\(=\@@begingroup
- \catcode`\)=\@@endgroup
- \catcode`\%=\@@letter
- \let/A =\relax \let/AS =\relax \let/Kids=\relax \let/Fields=\relax
- \let/F =\relax \let/ID =\relax \let/SetF=\relax \let/setFf =\relax
- \let/Ff=\relax \let/Opt=\relax \let/ClrF=\relax \let/ClrFf =\relax
- \let/AP=\relax \let/FDF=\relax \let/Root=\relax
- \def/T##1{\check\Title{##1}}
- \def/V{\bgroup\catcode`\/=\@@other\futurelet\next/doV}
- \def/doV{\ifx\next\normalslash\@EA/doVb\else\@EA/doVa\fi}
- \def/doVa##1{\egroup\check\Value{##1}}
- \def/doVb##1##2 {\egroup\check\Value{##2}} % watch the space
- \def\check##1##2%
- {\def##1{##2}
- \advance\scratchcounter\plusone\relax
- \ifodd\scratchcounter \else
- \defconvertedcommand\asciia\Title
- \global\setFDFfield{\asciia}{\Value}
- \doglobal\addtocommalist\Title\allFDFfields
- \fi}
- \ReadFile{#1.fdf}}%
- \egroup}
-
-\egroup
-
-%D Whatever mechanism is used, the next macros can be used to
-%D fetch the values.
-
-\def\getFDFfield #1{\getvalue {FDFfield::#1}}
-\def\setFDFfield#1#2{\setevalue{FDFfield::#1}{#2}}
-
-%D Of course the fields are only present when the file is
-%D loaded.
-
-\def\loadFDFfields#1%
- {\PERLloadFDFfields{#1}%
- \ifx\allFDFfields\empty
- \TEXloadFDFfields{#1}%
- \fi}
-
-\def\showFDFfields#1%
- {\bgroup
- \loadFDFfields{#1}
- \def\docommand##1{\par##1 = \getFDFfield{##1}\par}%
- \processcommacommand[\allFDFfields]\docommand
- \egroup}
-
-%D \macros
-%D {sanitizePDFencoding,sanitizePDFdocencoding}
-%D
-%D We already dealt with the encoding vector. Conversion from
-%D \TEX\ \ASCII\ encoding to the other one, is accomplished by
-%D the next few macros. Wach out: we don't group here.
-
-%D This will be reimplemented using the mapping mechanism.
-
-% \def\enablePDFdocencoding
-% {\reducetocoding[pdfdoc]\simplifycommands}
-
-\def\enablePDFdocencoding
- {\enablecoding[pdfdoc]%
- \enablelanguagespecifics[\currentlanguage]% redundant ?
- \simplifycommands}
-
-\long\def\sanitizePDFdocencoding#1\to#2%
- {\enablePDFcrlf
- \enablePDFdocencoding
- %\honorunexpanded % otherwise problems with "e etc in de
- \edef#2{#1}}
-
-\bgroup
-\catcode`\^^M=\@@active
-\gdef\enablePDFcrlf%
- {\def\\{\string\r}%
- \def\par{\\\\}%
- \def\endgraf{\\\\}%
- \catcode`\^^M=\@@active%
- \let^^M=\\}
-\egroup
-
-% \let\sanitizePDFencoding\sanitizePDFdocencoding
-
-%D The conversions comes down to (for the sake of speed the
-%D implementation combines steps):
-%D
-%D \startitemize
-%D \item we expand the \UTF\ sequences into \type {\unicodechar}'s
-%D \item spaces become character 255's (so that they are not
-%D gobbled in argument fetching
-%D \item normal \ASCII\ chars are unchanged
-%D \item \par's and alike are converted to \type {\unicodechar}'s
-%D \stopitemize
-%D
-%D This happens by expansion; next we convert the resulting
-%D sequence by interpreting the stream.
-
-\long\def\sanitizePDFuniencoding#1\to#2%
- {\enablePDFunicrlf
- \simplifycommands % added due to Dohyun Kim
- \let\unicodechar\relax % prevent further expansion
- \retainlccodes\lccode32=255 % slooow
- \lowercasestring\PDFunicodetrigger#1\to#2%
- \edef#2{\expandafter\doPDFuni#2\empty\empty}} % slooow
-
-%D Handling of empty lines:
-
-\bgroup
-\catcode`\^^M=\@@active
-\gdef\enablePDFunicrlf%
- {\def\\{\unicodechar{13}}%
- \def\par{\\\\}%
- \catcode`\^^M=\@@active%
- \let^^M=\\}
-\egroup
-
-%D Conversion to 16 bit \UNICODE:
-
-\def\PDFunicodechar#1%
- {\@EA\lchexnumbers\@EA{\number\utfdiv{#1}}%
- \@EA\lchexnumbers\@EA{\number\utfmod{#1}}}
-
-\def\PDFunicodetrigger
- {\unicodechar{65279}}
-
-%D The postprocessor:
-
-\def\doPDFuni#1%
- {\ifx#1\relax
- \@EA\dodoPDFuni
- \else\ifx#1\empty
- % quit
- \else
- \@EAEAEA\nodoPDFuni
- \fi\fi#1}
-
-\def\nodoPDFuni#1%
- {\PDFunicodechar{\ifnum`#1=255 32\else`#1\fi}\doPDFuni}
-
-\def\dodoPDFuni#1#2%
- {\PDFunicodechar{#2}\doPDFuni}
-
-\def\sanitizePDFencoding
- {\doifelse\currentregime{utf}{\PDFunicodetrue\sanitizePDFuniencoding}\sanitizePDFdocencoding}
-
-%D A bit out of place, but useful:
-
-\ifdefined\everysetfield \else \newtoks\everysetfield \fi
-
-\appendtoksonce
- \enablePDFdocencoding
- \enablePDFcrlf
-\to \everysetfield
-
-%D \macros
-%D {doPDFinsertcomment}
-%D
-%D An example its use is the next special, one that deals with
-%D text annotations.
-
-% starting point (keep this)
-%
-% \long\def\doPDFinsertcomment#1#2#3#4#5#6#7#8%
-% {\bgroup % title width height color open symbol collect data
-% \doifelsenothing{#1}
-% {\let\PDFidentifier\empty}
-% {\def\PDFidentifier{/T (#1)}}%
-% \doifelsenothing{#4}
-% {\let\PDFattributes\empty}
-% {\def\PDFattributes{/C \FDFcolor{#4}}}%
-% \doifundefinedelse{PDFsymbol#6}
-% {\let\PDFsymbol\empty}
-% {\def\PDFsymbol{/Name \getvalue{PDFsymbol#6} }}%
-% \sanitizePDFencoding#8\to\PDFdata
-% \setbox\scratchbox\vbox to #3
-% {\vfill
-% \doPDFannotation{#2}{#3}
-% {/Subtype /Text
-% \ifcase#5 \else/Open true\fi
-% /Contents \ifPDFunicode <\PDFdata> \else(\PDFdata) \fi
-% \PDFsymbol
-% \PDFidentifier
-% \PDFattributes}}%
-% \wd\scratchbox\zeropoint
-% \ht\scratchbox\zeropoint
-% \dp\scratchbox\zeropoint
-% \box\scratchbox
-% \egroup}
-
-\newcounter\nofFDFcomments
-
-\newif\ifPDFpopupcomments \PDFpopupcommentstrue
-
-\def\doPDFflushcomments
- {\box\PDFsymbolbox}
-
-\long\def\doPDFinsertcomment#1#2#3#4#5#6#7#8% % \@@DriverCommentLayer set otherwise
- {\bgroup % title width height color open symbol collect data
- \presetPDFsymbolappearance{#4}{#6}{#2}{#3}\!!zeropoint% sets width/height
-% \doifelsenothing{#1}
-% {\let\PDFidentifier\empty}
-% {\def\PDFidentifier{/T (#1)}}%
- \doifelsenothing{#1}
- {\let\PDFidentifier\empty}
- {\sanitizePDFencoding#1\to\PDFcommenttitle
- \def\PDFidentifier{/T \ifPDFunicode <\PDFcommenttitle>\else (\PDFcommenttitle)\fi}}%
- \sanitizePDFencoding#8\to\PDFdata
- \setFDFlayer\@@DriverCommentLayer
- \startPDFsymbolappearance
- \ifPDFpopupcomments
- \doglobal\increment\nofFDFcomments
- \doifobjectreferencefoundelse{FDF}{c:\nofFDFcomments}
- {\doPDFgetobjectreference{FDF}{c:\nofFDFcomments}\PDFobjectreference
- \donetrue}
- \donefalse
- \ifdone
- \setbox\scratchbox\hbox
- {\doPDFannotationobject{FDF}{c::\nofFDFcomments}{#2}{#3}% text window, size does not work
- {/Subtype /Popup
- /Parent \PDFobjectreference}}%
- \ifcase#7\relax
- \vbox to \height{\forgetall\vskip#3\box\scratchbox\vss}%
- \else % incredible trial and error hack
- % it's quite a mess, the annot width cannot be set, well, it can
- % but the appearance and text sizes get mixed up
-% \setbox\scratchbox\vbox to \height{\forgetall\vskip#3\box\scratchbox\vss}%
-% \global\setbox\PDFsymbolbox\vbox
-% {\hsize#2%
-% \forgetall
-% \vsmash{\box\PDFsymbolbox}
-% \box\scratchbox}%
- % this may change when acrobat gets less bugged
- \setbox\scratchbox\vbox to #3{\forgetall\vss\box\scratchbox}%
- \wd\scratchbox#2%
- \global\setbox\PDFsymbolbox\vbox
- {\startoverlay{\box\PDFsymbolbox}{\box\scratchbox}\stopoverlay}%
- \fi
- \fi
- % generic
- \doifobjectreferencefoundelse{FDF}{c::\nofFDFcomments}
- {\doPDFgetobjectreference{FDF}{c::\nofFDFcomments}\PDFobjectreference
- \donetrue}
- \donefalse
- \doPDFannotationobject{FDF}{c:\nofFDFcomments}{\width}{\height}
- {/Subtype /Text
- \ifcase#5 \else/Open true\fi
- % pdftex (efficient)
- % \ifdone /Popup \PDFobjref\pdflastannot\fi
- % generic (less efficient)
- \ifdone /Popup \PDFobjectreference\fi
- /Contents \ifPDFunicode <\PDFdata> \else(\PDFdata) \fi
- \PDFidentifier
- \FDFlayer
- \PDFsymbol
- \PDFattributes}%
- \else
- \doPDFannotation{#2}{#3}
- {/Subtype /Text
- \ifcase#5 \else/Open true\fi
- /Contents \ifPDFunicode <\PDFdata> \else(\PDFdata) \fi
- \FDFlayer
- \PDFsymbol
- \PDFidentifier
- \PDFattributes}%
- \fi
- \stopPDFsymbolappearance
- \egroup}
-
-% symbols with a reasonable default of 18/24 pt
-
-\newbox\PDFsymbolbox
-
-\def\PDFsymbolNew {/Insert}
-\def\PDFsymbolBalloon {/Comment}
-\def\PDFsymbolAddition {/NewParagraph}
-\def\PDFsymbolHelp {/Help}
-\def\PDFsymbolParagraph {/Paragraph}
-\def\PDFsymbolKey {/Key }
-
-\def\PDFsymbolGraph {/Graph}
-\def\PDFsymbolPaperclip {/Paperclip}
-\def\PDFsymbolAttachment{/Attachment}
-\def\PDFsymbolTag {/Tag}
-
-\def\startPDFsymbolappearance
- {\setbox\scratchbox\vbox to \totalheight \bgroup \vfill}
-
-\def\stopPDFsymbolappearance
- {\egroup
- \setbox\scratchbox\hbox{\lower\depth\box\scratchbox}%
- \wd\scratchbox\width
- \ht\scratchbox\height
- \dp\scratchbox\depth
- \box\scratchbox}
-
-\def\presetPDFsymbolappearance#1#2#3#4#5% symbol color width height depth
- {\doifelsenothing{#1}
- {\let\PDFattributes\empty}
- {\def\PDFattributes{/C \FDFcolor{#1}}}%
- \scratchdimen#3\edef\width {\the\scratchdimen}%
- \scratchdimen#4\edef\height{\the\scratchdimen}%
- \scratchdimen#5\edef\depth {\the\scratchdimen}%
- \advance\scratchdimen\height\edef\totalheight{\the\scratchdimen}%
- \doifelsenothing{#2}
- {\let\PDFsymbol\empty}
- {\ifundefined{PDFsymbol#2}%
- \getfromcommacommand[#2][1]\let\PDFsymbolnormalsymbol\commalistelement
- \getfromcommacommand[#2][2]\let\PDFsymboldownsymbol \commalistelement
- \doifsymboldefinedelse\PDFsymbolnormalsymbol
- {\doifsymboldefinedelse\PDFsymboldownsymbol
- {\dopresetPDFsymbolappearance
- \PDFsymbolnormalsymbol\PDFsymboldownsymbol}
- {\dopresetPDFsymbolappearance
- \PDFsymbolnormalsymbol\PDFsymbolnormalsymbol}}
- {\doifsymboldefinedelse\PDFsymboldownsymbol
- {\dopresetPDFsymbolappearance
- \PDFsymboldownsymbol\PDFsymboldownsymbol}
- {\let\PDFsymbol\empty}}%
- \else
- \def\PDFsymbol{/Name \getvalue{PDFsymbol#2} }%
- \fi}}
-
-\def\dopresetPDFsymbolappearance#1#2%
- {\dopresetfieldsymbol{#1}%
- \dopresetfieldsymbol{#2}%
- \setbox\scratchbox\hbox{\symbol[#1]}%
- \edef\width {\the\wd\scratchbox}%
- \edef\height{\the\ht\scratchbox}%
- \edef\depth {\the\dp\scratchbox}%
- \scratchdimen\height \advance\scratchdimen\depth
- \edef\totalheight{\the\scratchdimen}%
- \doPDFgetobjectreference{SYM}{#1}\FDFsymbolNappearance
- \doPDFgetobjectreference{SYM}{#2}\FDFsymbolDappearance
- \edef\PDFsymbol
- {/AP <</N \FDFsymbolNappearance /D \FDFsymbolDappearance>>}}
-
-%D Hooked into \CONTEXT, this special supports
-%D
-%D \starttyping
-%D \startcomment
-%D hello beautiful\\world
-%D \stopcomment
-%D
-%D \startcomment[hello]
-%D de \'e\'erste keer
-%D the f\'irst time
-%D \stopcommen
-%D
-%D \startcommentaar[hallo][color=green,width=4cm,height=3cm]
-%D first
-%D
-%D second
-%D \stopcommentaar
-%D \stoptyping
-%D
-%D So, special characters, forced linebreaks using \type{\\}
-%D and \type{\par} are handled in the appropriate way.
-
-%D \macros
-%D {doPDFovalbox}
-%D
-%D For drawing ovals we use quite raw \PDF\ code. The next
-%D implementation does not differ that much from the one
-%D implemented in the \POSTSCRIPT\ driver.
-
-\def\doPDFovalcalc#1#2#3%
- {\dimen2=#1%
- \advance\dimen2 #2\relax
- \PointsToBigPoints{\dimen2}#3}
-
-\def\doPDFovalbox#1#2#3#4#5#6#7#8% todo: \scratchdimen/\scatchbox
- {\forcecolorhack
- \bgroup
- \dimen0=#4\divide\dimen0 \plustwo
- \doPDFovalcalc{0pt}{+\dimen0}\xmin
- \doPDFovalcalc{#1}{-\dimen0}\xmax
- \doPDFovalcalc{#2}{-\dimen0}\ymax
- \doPDFovalcalc{-#3}{+\dimen0}\ymin
- \advance\dimen0 by #5%
- \doPDFovalcalc{0pt}{+\dimen0}\xxmin
- \doPDFovalcalc{#1}{-\dimen0}\xxmax
- \doPDFovalcalc{#2}{-\dimen0}\yymax
- \doPDFovalcalc{-#3}{+\dimen0}\yymin
- \doPDFovalcalc{#4}{\zeropoint}\stroke
- \doPDFovalcalc{#5}{\zeropoint}\radius
- \edef\dostroke{#6}%
- \edef\dofill{#7}%
- \edef\mode{\number#8 \space}%
- % no \ifcase, else \relax in pdfcode
- \setbox\scratchbox\hbox
- {\ifnum\dostroke\dofill>\zerocount
- \ifPDFstrokecolor\else\ifnum\dostroke=\plusone
- \writestatus\m!colors{pdf stroke color will fail}\wait
- \fi\fi
- \PDFcode
- {q
- \stroke\space w
- \ifcase\mode
- \xxmin\space \ymin \space m
- \xxmax\space \ymin \space l
- \xmax \space \ymin \space \xmax \space \yymin\space y
- \xmax \space \yymax\space l
- \xmax \space \ymax \space \xxmax\space \ymax \space y
- \xxmin\space \ymax \space l
- \xmin \space \ymax \space \xmin \space \yymax\space y
- \xmin \space \yymin\space l
- \xmin \space \ymin \space \xxmin\space \ymin \space y
- h
- \or % 1
- \xxmin\space \ymin \space m
- \xxmax\space \ymin \space l
- \xmax \space \ymin \space \xmax \space \yymin\space y
- \xmax \space \ymax \space l
- \xmin \space \ymax \space l
- \xmin \space \yymin\space l
- \xmin \space \ymin \space \xxmin\space \ymin \space y
- h
- \or % 2
- \xxmin\space \ymin \space m
- \xmax \space \ymin \space l
- \xmax \space \ymax \space l
- \xxmin\space \ymax \space l
- \xmin \space \ymax \space \xmin \space \yymax\space y
- \xmin \space \yymin\space l
- \xmin \space \ymin \space \xxmin\space \ymin \space y
- h
- \or % 3
- \xmin \space \ymin \space m
- \xmax \space \ymin \space l
- \xmax \space \yymax\space l
- \xmax \space \ymax \space \xxmax\space \ymax \space y
- \xxmin\space \ymax \space l
- \xmin \space \ymax \space \xmin \space \yymax\space y
- \xmin \space \ymin \space l
- h
- \or % 4
- \xmin \space \ymin \space m
- \xxmax\space \ymin \space l
- \xmax \space \ymin \space \xmax \space \yymin\space y
- \xmax \space \yymax\space l
- \xmax \space \ymax \space \xxmax\space \ymax \space y
- \xmin \space \ymax \space l
- \xmin \space \ymin\space l
- h
- \or % 5
- \xmin \space \ymin \space m
- \xmax \space \ymin \space l
- \xmax \space \yymax\space l
- \xmax \space \ymax \space \xxmax\space \ymax \space y
- \xmin \space \ymax \space l
- \xmin \space \ymin \space l
- h
- \or % 6
- \xmin \space \ymin \space m
- \xxmax\space \ymin \space l
- \xmax \space \ymin \space \xmax \space \yymin\space y
- \xmax \space \ymax \space l
- \xmin \space \ymax \space l
- \xmin \space \ymin \space l
- h
- \or
- \xxmin\space \ymin \space m
- \xmax \space \ymin \space l
- \xmax \space \ymax \space l
- \xmin \space \ymax \space l
- \xmin \space \yymin\space l
- \xmin \space \ymin \space \xxmin\space \ymin \space y
- h
- \or
- \xmin \space \ymin \space m
- \xmax \space \ymin \space l
- \xmax \space \ymax \space l
- \xxmin\space \ymax \space l
- \xmin \space \ymax \space \xmin \space \yymax\space y
- \xmin \space \ymin \space l
- h
- \or % 9 top open
- \xmin \space \ymax \space m
- \xmin \space \yymin\space l
- \xmin \space \ymin \space \xxmin\space \ymin \space y
- \xxmax\space \ymin \space l
- \xmax \space \ymin \space \xmax \space \yymin\space y
- \xmax \space \ymax \space l
- \or % 10 right open
- \xmax \space \ymax \space m
- \xxmin\space \ymax \space l
- \xmin \space \ymax \space \xmin \space \yymax\space y
- \xmin \space \yymin\space l
- \xmin \space \ymin \space \xxmin\space \ymin \space y
- \xmax\space \ymin \space l
- \or % 11 bottom open
- \xmax \space \ymin \space m
- \xmax \space \yymax\space l
- \xmax \space \ymax \space \xxmax \space \ymax\space y
- \xxmin\space \ymax \space l
- \xmin \space \ymax \space \xmin \space \yymax\space y
- \xmin \space \ymin \space l
- \or % 12 left open
- \xmin \space \ymax \space m
- \xxmax\space \ymax \space l
- \xmax \space \ymax \space \xmax \space \yymax\space y
- \xmax \space \yymin\space l
- \xmax \space \ymin \space \xxmax\space \ymin \space y
- \xmin \space \ymin \space l
- \or % 13
- \xmin \space \ymax \space m
- \xxmax\space \ymax \space l
- \xmax \space \ymax \space \xmax \space \yymax\space y
- \xmax\space \ymin \space l
- \or % 14
- \xmax \space \ymax \space m
- \xmax \space \yymin\space l
- \xmax \space \ymin \space \xxmax\space \ymin \space y
- \xmin \space \ymin \space l
- \or % 15
- \xmax \space \ymin \space m
- \xxmin\space \ymin \space l
- \xmin \space \ymin \space \xmin \space \yymin\space y
- \xmin \space \ymax \space l
- \or % 16
- \xmin \space \ymin \space m
- \xmin \space \yymax\space l
- \xmin \space \ymax \space \xxmin\space \ymax \space y
- \xmax \space \ymax \space l
- \or % 17
- \xxmax\space \ymax \space m
- \xmax \space \ymax \space \xmax \space \yymax\space y
- \or % 18
- \xmax \space \yymin\space m
- \xmax \space \ymin \space \xxmax\space \ymin \space y
- \or % 19
- \xxmin\space \ymin \space m
- \xmin \space \ymin \space \xmin \space \yymin\space y
- \or % 20
- \xmin \space \yymax\space m
- \xmin \space \ymax \space \xxmin\space \ymax \space y
- \or % 21
- \xxmax\space \ymax \space m
- \xmax \space \ymax \space \xmax \space \yymax\space y
- \xmin \space \yymax\space m
- \xmin \space \ymax \space \xxmin\space \ymax \space y
- \or % 22
- \xxmax\space \ymax \space m
- \xmax \space \ymax \space \xmax \space \yymax\space y
- \xmax \space \yymin\space m
- \xmax \space \ymin \space \xxmax\space \ymin \space y
- \or % 23
- \xmax \space \yymin\space m
- \xmax \space \ymin \space \xxmax\space \ymin \space y
- \xxmin\space \ymin \space m
- \xmin \space \ymin \space \xmin \space \yymin\space y
- \or % 24
- \xxmin\space \ymin \space m
- \xmin \space \ymin \space \xmin \space \yymin\space y
- \xmin \space \yymax\space m
- \xmin \space \ymax \space \xxmin\space \ymax \space y
- \or % 25
- \xxmax\space \ymax \space m
- \xmax \space \ymax \space \xmax \space \yymax\space y
- \xmax \space \yymin\space m
- \xmax \space \ymin \space \xxmax\space \ymin \space y
- \xxmin\space \ymin \space m
- \xmin \space \ymin \space \xmin \space \yymin\space y
- \xmin \space \yymax\space m
- \xmin \space \ymax \space \xxmin\space \ymax \space y
- \or % 26
- \xmax \space \yymin\space m
- \xmax \space \ymin \space \xxmax\space \ymin \space y
- \xmin \space \yymax\space m
- \xmin \space \ymax \space \xxmin\space \ymax \space y
- \or % 27
- \xxmax\space \ymax \space m
- \xmax \space \ymax \space \xmax \space \yymax\space y
- \xxmin\space \ymin \space m
- \xmin \space \ymin \space \xmin \space \yymin\space y
- \or % 28
- \fi
- \ifnum\mode>8
- S
- \else
- \ifnum\dostroke=\plusone S \fi
- \ifnum\dofill =\plusone f \fi
- \fi
- Q}%
- \fi}%
- \wd\scratchbox#1\ht\scratchbox#2\dp\scratchbox#3\box\scratchbox
- \egroup}
-
-%D \macros
-%D {doPDFstartgraymode,doPDFstopgraymode,
-%D doPDFstartrgbcolormode,doPDFstartcmykcolormode,doPDFstartgraycolormode,
-%D doPDFstopcolormode}
-%D
-%D In \PDF\ there are two color states, one for strokes and one
-%D for fills. This means that we have to set the color in a
-%D rather redundant looking way. Unfortunately this makes the
-%D \PDF\ file much larger than needed. We can save few bytes
-%D by not setting the stroke color. Due to zip compression we
-%D only save a few percent.
-
-% \newif\ifPDFstrokecolor \PDFstrokecolortrue
-
-\def\doPDFstartgraymode#1%
-% {\PDFdirectcode{#1 g\ifPDFstrokecolor\space#1 G\fi}}
- {\PDFcode{#1 g\ifPDFstrokecolor\space#1 G\fi}}
-
-\def\doPDFstopgraymode
-% {\PDFdirectcode{0 g\ifPDFstrokecolor\space0 G\fi}}
- {\PDFcode{0 g\ifPDFstrokecolor\space0 G\fi}}
-
-\def\doPDFstartrgbcolormode#1#2#3%
-% {\PDFdirectcode{#1 #2 #3 rg\ifPDFstrokecolor\space#1 #2 #3 RG\fi}}
- {\PDFcode{#1 #2 #3 rg\ifPDFstrokecolor\space#1 #2 #3 RG\fi}}
-
-\def\doPDFstartcmykcolormode#1#2#3#4%
-% {\PDFdirectcode{#1 #2 #3 #4 k\ifPDFstrokecolor\space#1 #2 #3 #4 K\fi}}
- {\PDFcode{#1 #2 #3 #4 k\ifPDFstrokecolor\space#1 #2 #3 #4 K\fi}}
-
-\def\doPDFstartgraycolormode#1%
-% {\PDFdirectcode{#1 g\ifPDFstrokecolor\space#1 G\fi}}
- {\PDFcode{#1 g\ifPDFstrokecolor\space#1 G\fi}}
-
-\def\doPDFstartspotcolormode#1#2% redefining spotcolors is not possible anyway
- {\ifundefined{pdf:scs:#2}%
- \bgroup
- \getcommacommandsize[#2]%
- \ifcase\commalistsize\or
- \setxvalue{pdf:scs:#2}{#2 SCN #2 scn}% \setxvalue{pdf:scs:#2}{#2 SC #2 sc}%
- \else
- \let\PDFspotcolorspecs\empty
- \def\dospotcolorcommand##1{\edef\PDFspotcolorspecs{\PDFspotcolorspecs##1\space}}%
- \processcommacommand[#2]\dospotcolorcommand
- \setxvalue{pdf:scs:#2}{\PDFspotcolorspecs SCN \PDFspotcolorspecs scn}%
- \fi
- \egroup
- \fi
-% \PDFdirectcode{/#1 cs /#1 CS \PDFgetspotcolorspec{#2}}}
- \PDFcode{/#1 cs /#1 CS \PDFgetspotcolorspec{#2}}}
-
-\def\PDFgetspotcolorspec#1%
- {\executeifdefined{pdf:scs:#1}\empty} % better no default than one with too less args
-
-\def\doPDFstartnonecolormode
-% {\PDFdirectcode{/None CS 1 SC /None cs 1 sc}}
- {\PDFcode{/None CS 1 SC /None cs 1 sc}}
-
-\def\doPDFstopcolormode
-% {\PDFdirectcode{0 g\ifPDFstrokecolor\space0 G\fi}}
- {\PDFcode{0 g\ifPDFstrokecolor\space0 G\fi}}
-
-%D We need to register the spot colors and their fallbacks.
-
-% we cannot use /DeviceN since GS <=7.21 breaks on it
-% and Jaws does not handle it at all {[/DeviceN [/All|/None]
-% /Device#2 \PDFobjref\pdflastobj]} so we use separation
-% colors that work and print ok
-
-\def\doPDFregistersomespotcolor#1#2#3#4% implemented in the driver
- {\writestatus\m!systems{missing spot color definition}\wait}
-
-\def\doPDFregisternonecolor % internal command
- {\doPDFregistergrayspotcolor{None}{1}%
- \globallet\doPDFregisternonecolor\relax}
-
-\def\doPDFregisterspotcolorname#1#2% implemented in the driver
- {}
-
-\definespecial\doregisterspotcolorname{\doPDFregisterspotcolorname}
-
-\def\dodoPDFregisterrgbspotcolor#1#2#3#4#5#6#7% name noffractions names p's r g b
- {\doPDFregistersomespotcolor{#1}{#2}{#3}{#4}{RGB}{0.0 1.0 0.0 1.0 0.0 1.0}%
- {\ifcase#2\or dup #5 mul exch dup #6 mul exch #7 mul\else#5 #6 #7\fi}}
-
-\def\dodoPDFregistercmykspotcolor#1#2#3#4#5#6#7#8% name noffractions names p's c m y k
- {\doPDFregistersomespotcolor{#1}{#2}{#3}{#4}{CMYK}{0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0}%
- {\ifcase#2\or dup #5 mul exch dup #6 mul exch dup #7 mul exch #8 mul\else #5 #6 #7 #8\fi}}
-
-\def\dodoPDFregistergrayspotcolor#1#2#3#4#5% name noffractions names p's s
- {\doPDFregistersomespotcolor{#1}{#2}{#3}{#4}{Gray}{0.0 1.0}%
- {\ifcase#2\or #5 mul\else #5\fi}}
-
-% \let\doPDFregisterrgbspotcolor \dodoPDFregisterrgbspotcolor
-% \let\doPDFregistercmykspotcolor\dodoPDFregistercmykspotcolor
-% \let\doPDFregistergrayspotcolor\dodoPDFregistergrayspotcolor
-
-\def\doPDFregisterrgbspotcolor#1#2#3#4#5#6#7% name noffractions names p's r g b
- {\ifRGBsupported
- \dodoPDFregisterrgbspotcolor{#1}{#2}{#3}{#4}{#5}{#6}{#7}%
- \else
- \edef\@@cl@@r{#5}\edef\@@cl@@g{#6}\edef\@@cl@@b{#7}%
- \ifCMYKsupported
- \convertRGBtoCMYK\@@cl@@r\@@cl@@g\@@cl@@b
- \dodoPDFregistercmykspotcolor{#1}{#2}{#3}{#4}\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k
- \else
- \convertRGBtoGRAY\@@cl@@r\@@cl@@g\@@cl@@b
- \dodoPDFregistergrayspotcolor{#1}{#2}{#3}{#4}\@@cl@@s
- \fi
- \fi}
-
-\def\doPDFregistercmykspotcolor#1#2#3#4#5#6#7#8% name noffractions names p's c m y k
- {\ifCMYKsupported
- \dodoPDFregistercmykspotcolor{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}%
- \else
- \edef\@@cl@@c{#5}\edef\@@cl@@m{#6}\edef\@@cl@@y{#7}\edef\@@cl@@k{#8}%
- \ifRGBsupported
- \convertCMYKtoRGB\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k
- \dodoPDFregisterrgbspotcolor{#1}{#2}{#3}{#4}\@@cl@@r\@@cl@@g\@@cl@@b
- \else
- \convertCMYKtoGRAY\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k
- \dodoPDFregistergrayspotcolor{#1}{#2}{#3}{#4}\@@cl@@s
- \fi
- \fi}
-
-\def\doPDFregistergrayspotcolor{\dodoPDFregistergrayspotcolor}
-
-%D New and very experimental.
-
-\def\doPDFregistercmykindexcolor#1#2#3#4#5#6#7#8% name noffractions names p's c m y k
- {\doPDFregistersomeindexcolor{#1}{#2}{#3}{#4}{CMYK}{0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0}%
- {dup #5 mul exch dup #6 mul exch dup #7 mul exch #8 mul}}
-
-\def\doPDFregisterrgbindexcolor#1#2#3#4#5#6#7% name noffractions names p's r g b
- {\doPDFregistersomeindexcolor{#1}{#2}{#3}{#4}{RGB}{0.0 1.0 0.0 1.0 0.0 1.0}%
- {dup #5 mul exch dup #6 mul exch #7 mul}}
-
-\def\doPDFregistergrayindexcolor#1#2#3#4#5% name noffractions names p's s
- {\doPDFregistersomeindexcolor{#1}{#2}{#3}{#4}{Gray}{0.0 1.0}%
- {pop}}
-
-\let\checkpredefinedcolor\predefineindexcolor % we need an index in order to negate bitmaps
-
-\def\doPDFregisterfigurecolor#1% always an index color
- {\dogetobjectreference
- {PDFIX}
- {\internalspotcolorname{#1}}
- \PDFimagecolorreference}
-
-%D \macros
-%D {doPDFstartrotation,doPDFstoprotation}
-%D
-%D Rotating some text can be accomplished by setting the first
-%D four elements of the transform matrix. We only support some
-%D fixed angles. The \type{q}'s take care of grouping.
-
-% The original:
-%
-% \def\doPDFstartrotation#1%
-% {\PDFcode{q}%
-% \processaction
-% [#1]
-% [ 90=>\PDFcode{ 0 1 -1 0 0 0 cm},
-% 180=>\PDFcode{-1 0 0 -1 0 0 cm},
-% 270=>\PDFcode{ 0 -1 1 0 0 0 cm},
-% 360=>\PDFcode{ 1 0 0 1 0 0 cm}]}
-%
-% We cannot directly pass an angle, but have to calculate
-% factors (rx and ry). As in the \METAPOST\ to \PDF\
-% converter module we need to compensate the deformation
-% by setting (sx and sy).
-%
-% Optimized but bigger:
-%
-% \def\doPDFstartrotation#1%
-% {\PDFcode{q}%
-% \processaction
-% [#1]
-% [ 0=>\PDFcode{ 1 0 0 1 0 0 cm},
-% 90=>\PDFcode{ 0 1 -1 0 0 0 cm},
-% 180=>\PDFcode{-1 0 0 -1 0 0 cm},
-% 270=>\PDFcode{ 0 -1 1 0 0 0 cm},
-% 360=>\PDFcode{ 1 0 0 1 0 0 cm},
-% #1=>\setcalculatedcos\cos{#1}%
-% \setcalculatedsin\sin{#1}%
-% \PDFcode{\cos \space % cos
-% \sin \space % sin
-% \negated\sin\space % -sin
-% \cos \space % cos
-% 0 0 cm}]}
-%
-% Since the sine and cosine values are preset and rounded we
-% can use the next alternative without running into inaccuracies.
-
-\def\doPDFstartrotation#1% grouped
- {\setcalculatedcos\cos{#1}%
- \setcalculatedsin\sin{#1}%
- \forcecolorhack
- \PDFcode{q \cos\space\sin\space\negated\sin\space\cos\space0 0 cm}}
-
-\def\doPDFstoprotation
- {\PDFcode{Q}}
-
-%D \macros
-%D {doPDFstartscaling,doPDFstopscaling}
-%D
-%D Scaling is rather straightforward:
-
-\def\@@PDFzeroscale{.0001}
-
-\def\doPDFstartscaling#1#2% the test is needed because acrobat is bugged!
- {\forcecolorhack
- \PDFcode{q \ifdim#1\points=\zeropoint\@@PDFzeroscale\else#1\fi\space 0 0
- \ifdim#2\points=\zeropoint\@@PDFzeroscale\else#2\fi\space 0 0 cm}}
-
-% \def\doPDFstartscaling#1#2% the test is needed because acrobat is bugged!
-% {\PDFcode{q\ifdim#1\points=\zeropoint\else\ifdim#2\points=\zeropoint\else
-% \space#1\space 0 0 #2\space 0 0 cm\fi\fi}}
-
-\def\doPDFstopscaling
- {\PDFcode{Q}}
-
-%D \macros
-%D {doPDFstartmirroring,doPDFstopmirroring}
-%D
-%D Mirroring is implemented in a similar way:
-
-\def\doPDFstartmirroring
- {\PDFcode{-1 0 0 1 0 0 cm}}
-
-\def\doPDFstopmirroring
- {\PDFcode{-1 0 0 1 0 0 cm}}
-
-%D \macros
-%D {doPDFstartnegative,doPDFstopnegative}
-%D
-%D When producing output for an image setter, sometimes negative
-%D output is needed.
-
-\def\doPDFstartnegative
- {\ifx\initializePDFnegative\undefined\else
- \initializePDFnegative
-% \PDFdirectcode{/GSnegative gs}%
- \PDFcode{/GSnegative gs}%
- \fi}
-
-\def\doPDFstopnegative
- {\ifx\initializePDFnegative\undefined\else
- \initializePDFnegative
-% \PDFdirectcode{/GSpositive gs}%
- \PDFcode{/GSpositive gs}%
- \fi}
-
-%D \macros
-%D {doPDFstartoverprint,doPDFstopoverprint}
-%D
-%D Some printers like overprint more than knockout.
-
-\def\doPDFstartoverprint
- {\ifx\initializePDFoverprint\undefined\else
- \initializePDFoverprint
-% \PDFdirectcode{/GSoverprint gs}%
- \PDFcode{/GSoverprint gs}%
- \fi}
-
-\def\doPDFstopoverprint
- {\ifx\initializePDFoverprint\undefined\else
- \initializePDFoverprint
-% \PDFdirectcode{/GSknockout gs}%
- \PDFcode{/GSknockout gs}% wrong
- \fi}
-
-%D Transparency support:
-
-\newif\ifPDFtransparencysupported
-
-\def\PDFtransparancydictionary#1#2#3% type fraction extras
- {<</Type /ExtGState
- /ca #2 /CA #2
- /BM /\ifcase#1 Normal\or Normal\or Multiply\or Screen\or
- Overlay\or SoftLight\or HardLight\or ColorDodge\or
- ColorBurn\or Darken\or Lighten\or Difference\or
- Exclusion\or Hue\or Saturation\or Color\or
- Luminosity\else Compatible\fi
- #3>>}
-
-\def\dodoPDFstarttransparency#1#2%
- {\presetPDFtransparency{#1}{#2}%
- \PDFcode{\PDFtransparencyidentifier\space gs }}
-
-\def\dodoPDFstoptransparency
- {\PDFcode{/Tr0 gs }}
-
-\def\doPDFstarttransparency
- {\ifPDFtransparencysupported
- \global\let\doPDFstarttransparency\dodoPDFstarttransparency
- \global\let\doPDFstoptransparency \dodoPDFstoptransparency
- \initializetransparency
- \expandafter\doPDFstarttransparency
- \else
- \expandafter\gobbletwoarguments
- \fi}
-
-% \let\doPDFstoptransparency\relax
-%
-% This is tricky: because a text stream is handled before
-% the page body is built, we can run into stops that will
-% match an outer start; however, the stop is needed in case
-% of a text color: [text color text] [other color text] on a
-% first page combined with color splitting will go wrong if
-% we stick to the relaxing method.
-
-\def\doPDFstoptransparency
- {\ifPDFtransparencysupported
- \initializetransparency
- \dodoPDFstoptransparency
- \fi}
-
-%D These use:
-
-\let\PDFtransparencyresetreference \empty
-\let\PDFtransparencyresetidentifier\empty
-
-\let\PDFtransparencyreference \empty
-\let\PDFtransparencyidentifier\empty
-
-\let\presetPDFtransparency \gobbletwoarguments
-\let\initializetransparency\relax
-
-%D New trickery:
-
-\definespecial\dostartgraphicgroup{\PDFcode{q}}
-\definespecial\dostopgraphicgroup {\PDFcode{Q}}
-
-%D Even newer trickery:
-
-\definespecial\dostartviewerlayer {\doPDFstartlayer}
-\definespecial\dostopviewerlayer {\doPDFstoplayer}
-\definespecial\dodefineviewerlayer{\doPDFdefinelayer}
-
-\let\PDFtextlayers\empty
-\let\PDFpagelayers\empty
-\let\PDFhidelayers\empty
-\let\PDFvidelayers\empty
-
-% \def\doPDFstartlayer#1{\PDFdirectcode{/OC /#1 BDC}}
-% \def\doPDFstoplayer {\PDFdirectcode {EMC}}
-
-\def\doPDFstartlayer#1{\PDFcode{/OC /#1 BDC}}
-\def\doPDFstoplayer {\PDFcode {EMC}}
-
-% resource -> prop -> mc's -> OCG|OCMD (nested)
-
-% ocg:
-
-% /Intent/Design
-
-% ocmd
-
-% /P /AllOn
-
-% kan zelf ocmd bevatten
-
-\def\doPDFdefinelayer#1#2#3#4#5% tag title visible type printable
- {\doPDFdictionaryobject{PDLN}{#1}
- {/Type /OCG
- \ifcase#4 \or
- /Intent /Design % disable layer hiding by user
- \fi
- \ifnum#5=\zerocount
- /Usage << /Print << /PrintState /OFF >> >> % printable or not
- \fi
- /Name (#2)}%
- \doPDFgetobjectreference{PDLN}{#1}\PDFobjectreference
- \xdef\PDFtextlayers{\PDFtextlayers\space\PDFobjectreference}%
- \doifelse{#3}\v!start
- {\xdef\PDFvidelayers{\PDFvidelayers\space\PDFobjectreference}}%
- {\xdef\PDFhidelayers{\PDFhidelayers\space\PDFobjectreference}}%
- \doPDFdictionaryobject{PDLD}{#1}
- {/Type /OCMD
- /OCGs [\PDFobjectreference]}%
- \doPDFgetobjectreference{PDLD}{#1}\PDFobjectreference
- \xdef\PDFpagelayers{\PDFpagelayers\space /#1 \PDFobjectreference}}
-
-\def\flushPDFtextlayers
- {\ifx\PDFtextlayers\empty \else
- \driverreferenced \doPDFarrayobject{PDF}{textlayers}{\PDFtextlayers}%
- \doPDFgetobjectreference{PDF}{textlayers}\!!stringa
- \ifx\PDFvidelayers\empty
- \def\!!stringb{[null]}%
- \else
- \driverreferenced \doPDFarrayobject{PDF}{videlayers}{\PDFvidelayers}%
- \doPDFgetobjectreference{PDF}{videlayers}\!!stringb
- \fi
- \ifx\PDFhidelayers\empty
- \def\!!stringc{[null]}%
- \else
- \driverreferenced \doPDFarrayobject{PDF}{hidelayers}{\PDFhidelayers}%
- \doPDFgetobjectreference{PDF}{hidelayers}\!!stringc
- \fi
- \doPDFaddtocatalog
- {/OCProperties
- << % display in menu
- /D << /Order \!!stringa
- /ON \!!stringb
- /OFF \!!stringc >>
- % used properties
- /OCGs \!!stringa >>}%
- \globallet\flushPDFtextlayers\relax
- \fi}
-
-\def\flushPDFpagelayers
- {\ifx\PDFpagelayers\empty \else
- \doPDFpageresource{/Properties <<\PDFpagelayers>>}%
- \fi}
-
-\prependtoksonce \flushPDFpagelayers \to \everyshipout
-\prependtoksonce \flushPDFtextlayers \to \everylastshipout
-
-\def\PDFlayeractionlist{null}
-
-\def\PDFexecutehidelayer {/SetOCGState /State [/OFF \PDFlayeractionlist]}
-\def\PDFexecutevidelayer {/SetOCGState /State [/ON \PDFlayeractionlist]}
-\def\PDFexecutetogglelayer {/SetOCGState /State [/Toggle \PDFlayeractionlist]}
-
-\def\domakeviewerlayerlist#1%
- {\bgroup
- \globallet\PDFlayeractionlist\empty
- \def\docommand##1%
- {\doPDFgetobjectreference{PDLN}{##1}\PDFobjectreference
- \xdef\PDFlayeractionlist{\PDFlayeractionlist\space\PDFobjectreference}}%
- \processcommalist[#1]\docommand
- \egroup}
-
-%D Something rather pdf dependent:
-
-% #1 => 1=fill 2=stroke 3=strokedfill 4=invisible
-% #2 => linewidth
-% #3 => spacing (beware, one needs to set the hsize as well)
-
-\def\doPDFstartfonteffect#1#2#3%
- {\ifdim#2>\zeropoint
- \PointsToBigPoints{#2}\ascii
-% \PDFdirectcode{\ascii\space w}%
- \PDFcode{\ascii\space w}%
- \fi
- \ifdim#3\points=\onepoint\else
- \scratchdimen#3\points
-% \PDFdirectcode{\withoutpt{\the\scratchdimen}\space Tc}%
- \PDFcode{\withoutpt{\the\scratchdimen}\space Tc}%
- \fi
-% \PDFdirectcode{\purenumber#1 Tr}}
- \PDFcode{\purenumber#1 Tr}}
-
-\def\doPDFstopfonteffect
-% {\PDFdirectcode{1 w 0 Tc 0 Tr}}
- {\PDFcode{1 w 0 Tc 0 Tr}}
-
-%D Handy for the \METAPOST\ to \PDF\ converter:
-
-\ifdefined\everyPDFximage \else \newtoks\everyPDFximage \fi
-\ifdefined\everyPDFxform \else \newtoks\everyPDFxform \fi
-
-\appendtoksonce
- \collectPDFresources
- \global\let\currentPDFresources\collectedPDFresources
-\to \everyPDFxform
-
-\let\collectedPDFresources\empty
-
-\def\collectPDFresources % suboptimal
- {\doifobjectreferencefoundelse{FDF}{docushades} % redundant, we have an reserved object now
- {\doPDFgetobjectreference{FDF}{docushades}\PDFobjectreference
- \xdef\collectedPDFresources{\collectedPDFresources/Shading \PDFobjectreference}}\donothing
- \doifobjectreferencefoundelse{FDF}{docuextgstates}
- {\doPDFgetobjectreference{FDF}{docuextgstates}\PDFobjectreference
- \xdef\collectedPDFresources{\collectedPDFresources/ExtGState \PDFobjectreference}}\donothing
- \doifobjectreferencefoundelse{FDF}{docupatterns}
- {\doPDFgetobjectreference{FDF}{docupatterns}\PDFobjectreference
- \xdef\collectedPDFresources{\collectedPDFresources/Pattern \PDFobjectreference}}\donothing
- \doifobjectreferencefoundelse{FDF}{colorspaces}
- {\doPDFgetobjectreference{FDF}{colorspaces}\PDFobjectreference
- \xdef\collectedPDFresources{\collectedPDFresources/ColorSpace \PDFobjectreference}}\donothing
- \global\let\collectPDFresources\relax}
-
-%D And that was about all.
-
-\stopspecials
-
-\ifx\fullytransparentcolor\undefined \else
-
- \def\fullytransparentcolor
- {\doPDFregisternonecolor
- \doPDFstartnonecolormode}
-
- \let\doPDFstarttransparency\gobbletwoarguments
- \let\doPDFstoptransparency\relax
-
-\fi
-
-%D Temporary hack:
-
-\def\TransparencyHack % png: /CS /DeviceRGB /I true
- {\appendtoks
- \doPDFpageattribute{/Group << /S /Transparency /I true /K true>>}%
- \to \everyPDFxform
- \appendtoks
- \doPDFpageattribute{/Group << /S /Transparency /I true /K true>>}%
- \to \everyshipout}
-
-%D We still need to implement a few helpers:
-
-\chardef\safePDFcode=`-
-
-\def\setPDFdestination#1%
- {\bgroup
- \retainlccodes
- \lccode`\/\safePDFcode \lccode`\#\safePDFcode
- \lccode`\<\safePDFcode \lccode`\>\safePDFcode
- \lccode`\[\safePDFcode \lccode`\]\safePDFcode
- \lccode`\(\safePDFcode \lccode`\)\safePDFcode
- \ifovercomePDFspace
- \lccode`\ \safePDFcode
- \fi
- \ifovercomePDFbugs
- \xdef\PDFdestination{'#1'}%
- \else
- \xdef\PDFdestination{#1}%
- \fi
- % nicer \xdef\PDFdestination{\ifovercomePDFbugs'\fi#1\ifovercomePDFbugs'\fi}%
- \lowercase\@EA{\@EA\xdef\@EA\PDFdestination\@EA{\PDFdestination}}%
- \egroup}
-
-%D This is much faster since we don't have to set the full
-%D range of lc-codes; about 5 sec on a 1000mhz PIII for
-%D 20K named destinations "x(x) x"). Of course when you use
-%D page destinations, the saving is nil.
-
-% \doifnotmode{atpragma}{\let\next\setPDFdestination} % experimental
-%
-% \catcode`\/=\@@active \catcode`\#=\@@active
-% \catcode`\<=\@@active \catcode`\>=\@@active
-% \catcode`\[=\@@active \catcode`\]=\@@active
-% \catcode`\(=\@@active \catcode`\)=\@@active
-%
-% \gdef\PDFrepchar{-}
-%
-% \gdef\setPDFdcharacters
-% {\catcode`\/=\@@active \let/\PDFrepchar
-% \catcode`\#=\@@active \let#\PDFrepchar
-% \catcode`\<=\@@active \let<\PDFrepchar
-% \catcode`\>=\@@active \let>\PDFrepchar
-% \catcode`\[=\@@active \let[\PDFrepchar
-% \catcode`\]=\@@active \let]\PDFrepchar
-% \catcode`\(=\@@active \let(\PDFrepchar
-% \catcode`\)=\@@active \let)\PDFrepchar}
-%
-% \egroup
-%
-% \def\setPDFdestination#1% expansion is needed, otherwise embedded
-% {\bgroup % macros will not expand under the new
-% \setPDFdcharacters % catcode regime
-% \ifovercomePDFspace
-% \catcode32=\@@ignore
-% \fi
-% \xdef\PDFdestination{\ifovercomePDFbugs'\fi#1\ifovercomePDFbugs'\fi}%
-% \scantokens\@EA{\@EA\xdef\@EA\PDFdestination\@EA{\PDFdestination}}%
-% \egroup}
-%
-% \doifnotmode{atpragma}{\let\setPDFdestination\next} % experimental
-
-%D This is a slow one, that uses \type{\lccode}'s to
-%D change the glyph as well as converts sensisitve ones into a
-%D \PDF\ command sequence, so \type{(} becomes \type{\(}. In
-%D fact we translate the string to lowercase inactive and non
-%D special characters, limit their number and finaly convert
-%D some of the characters to save ones.
-
-\chardef\maxPDFstringsize=60
-
-\def\sanitizePDFstring#1\to#2% bugged
- {\bgroup
- \retainlccodes
- \lccode`( \zerocount \lccode`) \zerocount
- \lccode`< \zerocount \lccode`> \zerocount
- \lccode`[ \zerocount \lccode`] \zerocount
- \lccode`\\\zerocount \lccode`/ \zerocount
- \lowercase{\defconvertedargument\ascii{#1}}%
- % by integrating the split in the loop below
- % \splitofftokens\maxPDFstringsize\from\ascii\to\ascii
- % we diminish the processing time considerably
- \scratchcounter\maxPDFstringsize
- \def\docommand##1%
- {\ifcase\scratchcounter\else
- \advance\scratchcounter \minusone
- \ifcase\lccode`##1\relax
- \xdef#2{#2\expandafter\string\csname##1\endcsname}%
- \else
- \xdef#2{#2##1}%
- \fi
- \fi}%
- %\global\let#2=\empty
- % or to permit #2 to be \ascii too:
- \global\@EA\let\@EA#2\@EA\empty
- \@EA\handletokens\ascii\with\docommand
- \egroup}
-
-% \doifnotmode{atpragma}{\let\next\sanitizePDFstring} % experimental
-%
-% \bgroup
-%
-% \catcode`\.=\@@escape
-%
-% .catcode`./=.@@active
-% .catcode`.<=.@@active .catcode`.>=.@@active
-% .catcode`.[=.@@active .catcode`.]=.@@active
-% .catcode`.(=.@@active .catcode`.)=.@@active
-%
-% .gdef.setPDFscharacters%
-% {.catcode`.\=.@@other
-% .catcode`./=.@@active .def/{.noexpand./}%
-% .catcode`.<=.@@active .def<{.noexpand.<}%
-% .catcode`.>=.@@active .def>{.noexpand.>}%
-% .catcode`.[=.@@active .def[{.noexpand.[}%
-% .catcode`.]=.@@active .def]{.noexpand.]}%
-% .catcode`.(=.@@active .def({.noexpand.(}%
-% .catcode`.)=.@@active .def){.noexpand.)}}
-%
-% .gdef.sanitizePDFstring#1.to#2%
-% {.bgroup
-% .setPDFscharacters
-% .catcode`=.@@escape
-% .edef.next{.strippedcsname#2}%
-% .scantokens{setxvalue{next}{#1}}%
-% .egroup}
-%
-% .egroup
-%
-% \doifnotmode{atpragma}{\let\sanitizePDFstring\next} % experimental
-%
-% There is an unicode variant in spec-tst!
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-ini.mkii
deleted file mode 100644
index 9361ed2225a..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-ini.mkii
+++ /dev/null
@@ -1,559 +0,0 @@
-%D \module
-%D [ file=spec-ini,
-%D version=1996.01.25,
-%D title=\CONTEXT\ Special Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% todo: make this one more plain so that i can use it in plain jobs
-% todo: no args, named vars instead
-% maybe also drop multiple drivers and make simplify the default, then simplier defs
-
-\newif\ifsimplifyspecials \simplifyspecialstrue % see later
-
-%D We will forbid loading specials after the first page is
-%D shipped out.
-
-\ifx\realpageno\undefined
- \countdef\realpageno=0 \realpageno=1
-\fi
-
-%D Specials are \TEX's channel to the outside world. They make
-%D \TEX\ even more platform independant and permit easy
-%D adaption to new developments. One major drawback of specials
-%D is that they have to be supported by printer drivers. We've
-%D tried to overcome this problem by implementing specials as
-%D a sort of drivers themselves.
-
-\writestatus{loading}{ConTeXt Special Macros / Initialization}
-
-\unprotect
-
-%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
-%D specifiers and arguments. The \DVI||format incorporates a
-%D channel to the outside world. This channel is activated by
-%D the \TEX\ primitive \type {\special}. The sequence
-%D
-%D \starttyping
-%D \special{Hello here I am.}
-%D \stoptyping
-%D
-%D results in \DVI||codes:
-%D
-%D \starttyping
-%D xxx1 16 Hello here I am.
-%D \stoptyping
-%D
-%D The \type {xxx1} is represented in byte code 239 and the
-%D number of following bytes in a~1, 2, 3 or~4 byte number. So
-%D here we get $1+1+16$ bytes of code.
-%D
-%D Translating these codes is upto the \DVI\ driver. It's
-%D common use to ignore specials that cannot be interpreted, so
-%D the example string should have no consequences for the
-%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.
-
-\newtoks \everyresetspecials
-
-\appendtoksonce
- \ifx\setjobsuffix\undefined\else\setjobsuffix{dvi}\fi
-\to \everyresetspecials
-
-%D A rather fundamental difference between special and direct
-%D settings is that the latter don't interfere with typesetting
-%D but must be set before the first shipout, while the specials
-%D must be packaged in the shipped out box in such a way that
-%D they don't interfere.
-
-\newif\ifspecialbasedsettings \specialbasedsettingstrue
-
-\appendtoksonce
- \specialbasedsettingstrue
-\to \everyresetspecials
-
-%D Because there is no standardization in the use of specials,
-%D more than one driver or program can be supported. The
-%D specials are grouped in libraries. Some of these are
-%D general, such as the \type{postscript} library, some are
-%D tuned to a special kind of program, like the \type{pdf}
-%D ones, and some support a specific driver, as we can see in
-%D the \type{yandy} library. A library is build with the
-%D commands:
-%D
-%D \starttyping
-%D \startspecials[name][inheritance]
-%D
-%D \definespecial\none{...}
-%D \definespecial\onlyone#1{...}
-%D \definespecial\alot#1#2#3#4{...}
-%D
-%D \stopspecials
-%D \stoptyping
-%D
-%D Because drivers can have overlap in low level macros, a
-%D mechanism of inheritance is implemented. The libraries
-%D defined as second argument are loaded first.
-%D
-%D Every special has to be predefined first. We do this with
-%D the command:
-%D
-%D \starttyping
-%D \installspecial [\none] [and] [0]
-%D \installspecial [\onlyone] [and] [1]
-%D \installspecial [\alot] [or] [4]
-%D \stoptyping
-%D
-%D This means as much as: there is a special names
-%D \type{\none} which has no arguments and has more than one
-%D appearance. The special \type{\alot} on the other hand has
-%D four arguments and is only defined once. Every instance in
-%D the libraries of a special of category \type{and} is
-%D executed when called upon, but only one special of
-%D category \type{or} can be active. Most of the
-%D \type{postscript}||specials are of category \type{or},
-%D because they tend to interfere with driver specific ones.
-%D The interactive specials of \type{dviwindo} and \type{pdf}
-%D are an example of specials that can be called both.
-%D
-%D A library is defined in a file with the name
-%D \type{spec-...}. We load a library with the command:
-%D
-%D \starttyping
-%D \usespecials [list]
-%D \stoptyping
-%D
-%D where the list can contain one or more file tags, the
-%D \type{...} in the filename. The keyword \type{reset}
-%D resets all loaded specials. This is equivalent to
-%D \type{\resetspecials}.
-
-%D Although a mechanism of nesting can be implemented, we
-%D prefer to use a inheritance mechanism as mentioned. Calls
-%D upon \type{\usespecials} within a \type{\startspecials}
-%D would lead to confusion and errors.
-
-\newif\ifinheritspecials
-
-%D We define some local constants and variables. They look a
-%D bit horrible but we don't want conflicts.
-
-\def\@@specfil@@{@@spcfil@@}
-\def\@@speclst@@{@@spclst@@}
-\def\@@speccat@@{@@spccat@@}
-\def\@@specarg@@{@@spcarg@@}
-\def\@@specexc@@{@@spcexc@@}
-
-% not faster
-%
-% \def\@@specfil@@{@sp@f@}
-% \def\@@speclst@@{@sp@l@}
-% \def\@@speccat@@{@sp@c@}
-% \def\@@specarg@@{@sp@a@}
-% \def\@@specexc@@{@sp@e@}
-
-\let\currentspecial \empty
-\let\currentspecialfile\empty
-
-%D \macros
-%D {startspecials}
-%D
-%D Every library has a unique name, which is given as the first
-%D argument to \type{\startspecials}. When another library is
-%D defined with the same name, previous specials can be
-%D overruled. The name may differ from the file||tag.
-%D
-%D The optional second argument can consist of a list of
-%D libraries that are to be loaded first.
-
-\def\dostartspecials[#1][#2]%
- {\doifsomething{#2}
- {\processcommalist[#2]\dousespecials}%
- \doifelsenothing{#1}
- {\let\currentspecial\s!unknown}
- {\def\currentspecial{#1}}%
- \unprotect}
-
-\def\startspecials
- {\localpushmacro\currentspecial
- \dodoubleempty\dostartspecials}
-
-\def\stopspecials
- {\localpopmacro\currentspecial
- \protect}
-
-%D \macros
-%D {installspecial,
-%D resetspecials}
-%D
-%D We have to install specials before we can define and use
-%D them. The command itself is defined as a call to another
-%D command that executes one or more user||defined specials,
-%D depending of it's category: \type{or} versus \type{and}.
-%D
-%D The command \type{\installspecial} takes three
-%D (non||optional) arguments: the name of the command, the
-%D category it belongs to and the number of arguments it
-%D takes.
-%D
-%D With \type{\resetspecials} we can unload the predefined
-%D specials. Special reset actions |<|look in \type{spec-mis}
-%D for an example|>| can be assigned to the token register
-%D \type{\everyresetspecials}.
-
-\let\@@allspecials=\empty
-
-\def\doinstallspecial[#1][#2][#3]%
- {\letvalue{\@@speclst@@\string#1}\empty
- \setvalue{\@@speccat@@\string#1}{#2}%
- \setvalue{\@@specarg@@\string#1}{#3}%
- \addtocommalist{\string#1}\@@allspecials
- \def#1{\executespecial#1}}
-
-\def\installspecial
- {\dotripleargument\doinstallspecial}
-
-\def\resetspecials
- {\the\everyresetspecials
- \def\docommand##1%
- {\letvalue{\@@speclst@@##1}\empty}%
- \processcommacommand[\@@allspecials]\docommand}
-
-%D \macros
-%D {definespecial}
-%D
-%D The command \type{\definespecial} take the place of
-%D \type{\def} in the definition of a special. Just to be
-%D sure, we first check if the command is permitted, i.e.
-%D installed. If not, we give a warning and gobble the
-%D illegal command in an quite elegant way.
-%D
-%D If the command can be combined (\type{and}) with others,
-%D we append it to a list, otherwise (\type{or}) it becomes
-%D the only item in the list.
-
-\def\definespecial#1%
- {\ifx#1\undefined
- \showmessage\m!specials4{\string#1}%
- \def\next
- {\def\@@illegalspecial@@}%
- \else
- \def\next
- {\doifelsevalue{\@@speccat@@\string#1}{or}
- {\edef\@@newspeclst@@{\currentspecial}}
- {\edef\@@newspeclst@@{\getvalue{\@@speclst@@\string#1}}%
- \addtocommalist\currentspecial\@@newspeclst@@}%
- \setevalue{\@@speclst@@\string#1}{\@@newspeclst@@}%
- \setvalue{\currentspecial\string#1}}%
- \fi
- \next}
-
-%D \macros
-%D {usespecials}
-%D
-%D We use \type{\usespecials} to load a specific library.
-%D This command is only permitted outside the definition part.
-
-\def\dousespecials#1%
- {\doifelse{#1}\v!reset
- {\resetspecials}
- {\doifdefinedelse{\@@specfil@@#1}
- {\edef\currentspecialfile{\getvalue{\@@specfil@@#1}}}
- {\edef\currentspecialfile{#1}}%
- \makeshortfilename[\truefilename{\f!specialprefix\currentspecialfile}]%
- \startreadingfile
- \readsysfile{\shortfilename.mkii}{\showmessage\m!specials5\currentspecialfile}\donothing
- \stopreadingfile}}
-
-\def\usespecials[#1]%
- {\ifnum\realpageno<2
- \doifelsenothing\currentspecial
- {\processcommalist[#1]\dousespecials}
- {\showmessage\m!specials6\empty}%
- \fi}
-
-%D \macros
-%D {executespecials}
-%D
-%D The command \type{\executespecials} is used to execute the
-%D defined specials. Once a special is installed, the special
-%D itself calls for this command, so it's not needed outside
-%D this module. One can use it if wanted.
-%D
-%D A former implementation grouped the execution. Recent
-%D additions however |<|like the specials that implement object
-%D handling|>| asked for non||grouped execution.
-
-%D \starttyping
-%D \def\executespecials#1#2%
-%D {\def\doonespecial##1%
-%D {\getvalue{##1\string#1}#2\relax}%
-%D \processcommacommand
-%D [\getvalue{\@@speclst@@\string#1}]\doonespecial}
-%D
-%D \def\executespecial#1%
-%D {\expandafter\ifcase\getvalue{\@@specarg@@\string#1}\relax
-%D \def\next%
-%D {\executespecials#1{}}%
-%D \or
-%D \def\next##1%
-%D {\executespecials#1{{##1}}}%
-%D \or
-%D \def\next##1##2%
-%D {\executespecials#1{{##1}{##2}}}%
-%D \or
-%D \def\next##1##2##3%
-%D {\executespecials#1{{##1}{##2}{##3}}}%
-%D \or
-%D \def\next##1##2##3##4%
-%D {\executespecials#1{{##1}{##2}{##3}{##4}}}%
-%D \or
-%D \def\next##1##2##3##4##5%
-%D {\executespecials#1{{##1}{##2}{##3}{##4}{##5}}}%
-%D \or
-%D \def\next##1##2##3##4##5##6%
-%D {\executespecials#1{{##1}{##2}{##3}{##4}{##5}{##6}}}%
-%D \or
-%D \def\next##1##2##3##4##5##6##7%
-%D {\executespecials#1{{##1}{##2}{##3}{##4}{##5}{##6}{##7}}}%
-%D \or
-%D \def\next##1##2##3##4##5##6##7##8%
-%D {\executespecials#1{{##1}{##2}{##3}{##4}{##5}{##6}{##7}{##8}}}%
-%D \or
-%D \def\next##1##2##3##4##5##6##7##8##9%
-%D {\executespecials#1{{##1}{##2}{##3}{##4}{##5}{##6}{##7}{##8}{##9}}}%
-%D \else
-%D \def\next%
-%D {\message{illegal special: \string#1}}%
-%D \fi
-%D \next}
-%D \stoptyping
-%D
-%D Because specials happen quite often, we will use a bit more
-%D brute force. Keep in mind that we have to collect the
-%D arguments because we want to support more drivers at once.
-%D
-%D I tested this on the next test. Where the previous alternative
-%D took about 32 seconds, the new alternative takes 25 seconds.
-%D
-%D \starttyping
-%D \testfeature{10000}{\setbox0=\hbox{test \color[red]{oeps} test}}
-%D \stoptyping
-
-\def\@@exsp{exsp}
-
-\setvalue{\@@exsp0}{{}}
-\setvalue{\@@exsp1}#1{{{#1}}}
-\setvalue{\@@exsp2}#1#2{{{#1}{#2}}}
-\setvalue{\@@exsp3}#1#2#3{{{#1}{#2}{#3}}}
-\setvalue{\@@exsp4}#1#2#3#4{{{#1}{#2}{#3}{#4}}}
-\setvalue{\@@exsp5}#1#2#3#4#5{{{#1}{#2}{#3}{#4}{#5}}}
-\setvalue{\@@exsp6}#1#2#3#4#5#6{{{#1}{#2}{#3}{#4}{#5}{#6}}}
-\setvalue{\@@exsp7}#1#2#3#4#5#6#7{{{#1}{#2}{#3}{#4}{#5}{#6}{#7}}}
-\setvalue{\@@exsp8}#1#2#3#4#5#6#7#8{{{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}}
-\setvalue{\@@exsp9}#1#2#3#4#5#6#7#8#9{{{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}{#9}}}
-
-%D \starttyping
-%D \def\executespecials#1%
-%D {\def\doonespecial##1%
-%D {\csname##1\xspecialcommand\endcsname#1\relax}%
-%D \@EA\rawprocesscommalist\@EA
-%D [\csname\@@speclst@@\xspecialcommand\endcsname]\doonespecial}
-%D
-%D \def\executespecial#1%
-%D {\def\xspecialcommand{\string#1}%
-%D \@EA\@EA\@EA\executespecials\csname\@@exsp\csname\@@specarg@@\xspecialcommand\endcsname\endcsname}
-%D \stoptyping
-
-%D Some more speed can be gained by using a dedicated string
-%D processing routine. Now we can bring down the execution
-%D time to 21 seconds, one third less than the original run time.
-
-\def\executespecials#1%
- {\@EA\let\@EA\speciallist\csname\@@speclst@@\xspecialcommand\endcsname
- \ifx\speciallist\empty\else
- \def\doonespecial##1%
- {\csname##1\xspecialcommand\endcsname#1\relax}%
- \@EA\dodoonespecial\speciallist,\end,%
- \fi}
-
-\def\executespecial#1%
- {\def\xspecialcommand{\string#1}%
- \@EA\@EA\@EA\executespecials\csname\@@exsp\csname\@@specarg@@\xspecialcommand\endcsname\endcsname}
-
-\def\dodoonespecial#1,%
- {\ifx\end#1\else
- \doonespecial{#1}\expandafter\dodoonespecial
- \fi}
-
-%D This kind of saving only shows up when making interative
-%D documents with lots of color switches. In such documents
-%D tens of thousands of special calls are rather normal.
-%D On a 650 Mhz Pentium, the previous test takes 15 seconds
-%D less (on about 65 seconds). When processing 2000 page
-%D interactive documents this saving can be neglected.
-
-%D In the previous macros, the \type{{{...}}} are needed
-%D because we pass all those arguments to the specials support
-%D macro.
-
-\let\openspecialfile \relax
-\let\closespecialfile \relax
-
-%D \macros
-%D {doifspecialavailableelse}
-%D
-%D For testing purposes (this was first needed when object
-%D support was implemented) we have:
-%D
-%D \starttyping
-%D \doifspecialavailableelse\specialcommand{true}{false}
-%D \stoptyping
-%D
-%D e.g:
-%D
-%D \starttyping
-%D \doifspecialavailableelse\doinsertobject{...}{...}
-%D \stoptyping
-
-\def\doifspecialavailableelse#1#2#3%
- {\doifelsevaluenothing{\@@speclst@@\string#1}{#3}{#2}}
-
-%D So far for the macros that deal with installing specials.
-%D In the file \type {spec-def} you will find the predefined
-%D specials.
-
-%D Now that we have seen the flexible way (permitting
-%D special chains) we will implement a faster and flat
-%D alternative. But only if flag si set.
-
-\ifsimplifyspecials
-
- \def\doinstallspecial[#1][#2][#3]%
- {\appendtoks\forgetspecial#1{#3}\to\everyresetspecials
- \@EA\chardef\csname\@@speclst@@\string#1\endcsname\zerocount
- \forgetspecial#1{#3}}
-
- \def\forgetspecial#1#2%
- {\ifcase#2\relax
- \let#1\relax \or
- \let#1\gobbleoneargument \or
- \let#1\gobbletwoarguments \or
- \let#1\gobblethreearguments \or
- \let#1\gobblefourarguments \or
- \let#1\gobblefivearguments \or
- \let#1\gobblesixarguments \or
- \let#1\gobblesevenarguments \or
- \let#1\gobbleeightarguments \or
- \let#1\gobbleninearguments \or
- \let#1\gobbletenarguments \fi}
-
- \def\resetspecials
- {\the\everyresetspecials}
-
- \def\definespecial#1%
- {\@EA\chardef\csname\@@speclst@@\string#1\endcsname=1
- \def#1}
-
- \def\doifspecialavailableelse#1%
- {\ifcase\csname\@@speclst@@\string#1\endcsname
- \expandafter\secondoftwoarguments
- \else
- \expandafter\firstoftwoarguments
- \fi}
-
-\fi
-
-%D For quite some time the \CONTEXT\ way of specifying the
-%D output format has been:
-%D
-%D \starttyping
-%D \usespecials[ps,yy,win,pdf]
-%D \stoptyping
-%D
-%D Because at \PRAGMA\ we use \DVIPSONE, this was a suitable
-%D setting, but with \CONTEXT\ going public, the next sequence
-%D is more suitable for \DVIPS\ users:
-%D
-%D \starttyping
-%D \usespecials[reset,ps,tr,pdf]
-%D \stoptyping
-%D
-%D On the other hand, for \PDFTEX\ we needed:
-%D
-%D \starttyping
-%D \usespecials[tpd]
-%D \stoptyping
-%D
-%D To simplify things, I decided to provide a higher level
-%D command.
-%D
-%D \starttyping
-%D \defineoutput[name][specials]
-%D \setupoutput[name,...]
-%D \stoptyping
-%D
-%D In a \type {spec-def} you can find some examples.
-
-\def\defineoutput
- {\dodoubleargument\dodefineoutput}
-
-\def\dodefineoutput[#1][#2]%
- {\setvalue{\??ui#1}{#2}}
-
-\def\dosetupoutput#1%
- {\doifdefinedelse{\??ui#1}
- {\processcommacommand[\getvalue{\??ui#1}]\dousespecials}
- {\doifdefinedelse{\@@specfil@@#1}
- {\dousespecials{#1}}
- {\showmessage\m!specials7{#1}}}}
-
-% Beware, from now on changing the (default) driver files demands
-% remaking the format (no big deal, since only i adapt the driver
-% and need delayed loading).
-
-\let\currentoutput\empty
-
-\def\setupoutput[#1]%
- {\doifnot{#1}{\currentoutput}
- {\ifnum\realpageno<\plustwo % new
- \resetspecials\processcommacommand[#1]\dosetupoutput
- \edef\currentoutput{#1}%
- \fi}}
-
-\def\preloadspecials % it's nicer to report this
- {\doifsomething\currentoutput
- {\showmessage\m!specials1\currentoutput}}
-
-\appendtoks
- \savecurrentvalue\usedoutputdriver\currentoutput
-\to \everyfirstshipout
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-mis.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-mis.mkii
deleted file mode 100644
index de0debd3cdf..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-mis.mkii
+++ /dev/null
@@ -1,288 +0,0 @@
-%D \module
-%D [ file=spec-mis,
-%D version=1997.04.01,
-%D title=\CONTEXT\ Special Macros,
-%D subtitle=Miscellaneous Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Quite some modules in this group are dedicated to supporting
-%D \PDF\ directly by means of \PDFTEX or indirectly by using
-%D Acrobat Distiller. This module implements some common
-%D features.
-
-\writestatus{loading}{ConTeXt Special Macros / Miscellaneous Macros}
-
-\unprotect
-
-%D \macros
-%D {URLhash}
-%D
-%D A rather trivial macro:
-
-\expandafter\def\expandafter\URLhash\expandafter{\string#}
-
-%D \macros
-%D {ifusepagedestinations}
-%D
-%D In \PDF\ version 1.0 only page references were supported,
-%D while in \DVIWINDO\ 1.N only named references were accepted.
-%D Therefore \CONTEXT\ supports both methods of referencing. In
-%D \PDF\ version 1.1 named destinations arrived. Lack of
-%D continuous support of version 1.1 viewers for \MSDOS\
-%D therefore sometimes forces us to prefer page references. As
-%D a bonus, they are faster too and have no limitations. How
-%D fortunate we were having both mechanisms available when the
-%D version 3.0 (\PDF\ version 1.2) viewers proved to be too
-%D bugged to support named destinations.
-
-\newif\ifusepagedestinations
-
-%D \macros
-%D {ifhighlighthyperlinks}
-%D
-%D The next switch can be used to make user hyperlinks are
-%D not highlighted when clicked on.
-
-\newif\ifhighlighthyperlinks
-
-%D \macros
-%D {ifgotonewwindow}
-%D
-%D To make the {\em goto previous jump} feature more
-%D convenient when using more than one file, it makes sense
-%D to force the viewer to open a new window for each file
-%D opened.
-
-\newif\ifgotonewwindow
-
-%D \macros
-%D {ifPDFstrokecolor}
-%D
-%D We can reduce the filesize a bit by setting the next switch
-%D to false. The amount of reduction depends on the use of
-%D color, but don't expect more than a few percent. Zip
-%D compression is already rather efficient in itself.
-
-\newif\ifPDFstrokecolor \PDFstrokecolortrue
-
-%D \macros
-%D {dofileinsertion,definefileinsertion,doiffileinsertionsupported}
-%D
-%D File insertion depend on the driver or \TEX\ variant used.
-%D All driver modules use the same scheme for file insertion,
-%D and therefore have the next macro in common (stupified
-%D per august 2006):
-
-\let\supportedfileinsertions\empty
-\let\supportedfilecheckers \empty
-
-\def\definefileinsertion#1#2#3%
- {\addtocommalist{#2}\supportedfileinsertions
- \setvalue{do#1insert#2}{#3}}
-
-\def\definefilechecker#1#2#3%
- {\addtocommalist{#2}\supportedfilecheckers
- \setvalue{do#1check#2}{#3}}
-
-\def\dofileinsertion#1#2{\executeifdefined{do#1insert#2}\donothing}
-\def\dofilechecker #1#2{\executeifdefined{do#1check#2} \donothing}
-
-\appendtoks \let\supportedfileinsertions\empty \to \everyresetspecials
-\appendtoks \let\supportedfilecheckers \empty \to \everyresetspecials
-
-% \def\doiffileinsertionsupportedelse#1%
-% {\expanded{\doifinstringelse{#1}{\c!tex,\c!tmp,\supportedfileinsertions}}}
-
-\def\doiffileinsertionsupportedelse#1% lowercasing happens at tex end
- {\expanded{\doifinstringelse{\truegraphictype{#1}}{\c!tex,\c!tmp,\supportedfileinsertions}}}
-
-%D This macro is called with 10 arguments, where the first
-%D one specifies the driver, like \type{yy} or \type{tr}. The
-%D second argument is a \type{{type,method}} pair and the
-%D third the filename.
-
-%D Just in case this one is undefined (which can happen if
-%D this module is used outside \CONTEXT):
-
-\ifx\setreferencefilename\undefined
-
- \def\setreferencefilename#1\to#2{\edef#2{#1}}
-
-\fi
-
-%D When submitting forms, we need to communicate the format.
-
-\chardef\submitoutputformat=0 % 0=unknown 1=HTML 2=FDF 3=XML
-
-\def\setsubmitoutputformat#1%
- {\doifinsetelse{#1}{FDF,fdf}
- {\chardef\submitoutputformat2}
- {\doifinsetelse{#1}{XML,xml}
- {\chardef\submitoutputformat3}
- {\chardef\submitoutputformat1}}%
- \relax}
-
-%D \macros
-%D {escapePSstring}
-%D
-%D \starttyping
-%D \escapePSstring(t\e\1st)))))\to\crap \crap
-%D \stoptyping
-
-% testcase: webschrift met lege regels en unbalanced ()
-
-\bgroup
-
-\catcode`\*=\@@escape
-\catcode`\\=\@@letter
-
-*long*gdef*escapedPSstring#1%
- {*aftergroup*string
- *ifnum`#1=12
- *aftergroup*n%
- *else*ifnum`#1=13
- *aftergroup*n%
- *else*if#1(%
- *aftergroup*(%
- *else*if#1)%
- *aftergroup*)%
- *else*if#1\%
- *aftergroup*\%
- *else
- *aftergroup#1%
- *fi*fi*fi*fi*fi}
-
-*egroup
-
-\long\def\escapePSstring#1\to#2%
- {\defconvertedargument#2{#1}%
- \bgroup
- \ifx#2\empty \else
- \setverbosecscharacters
- \aftergroup\edef
- \aftergroup#2%
- \aftergroup{%
- \expandafter\handletokens#2\with\escapedPSstring
- \aftergroup}%
- \fi
- \egroup}
-
-% \long\def\preservePSpar#1\to#2%
-% {\bgroup
-% \def\par{\rawcharacter{12}}%
-% \expanded{\egroup\noexpand\def\noexpand#2{#1}}}
-
-\long\def\preservePSpar#1\to#2%
- {\bgroup
- \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
-%D {ifPDFunicode}
-%D
-%D We can use this switch to signal that content streams has
-%D to be unicoded.
-
-\newif\ifPDFunicode
-
-%D \macros
-%D {makeMPintoPDFobject, handleMPfshow, setMPPDFobject, getMPPDFobject}
-%D
-%D \METAPOST\ support.
-
-\ifx\makeMPintoPDFobject\undefined \newcount\makeMPintoPDFobject \fi
-
-\appendtoks
- \makeMPintoPDFobject\zerocount
- \def\setMPPDFobject#1#2{\def\getMPPDFobject{\box#2}}%
-\to \everyresetspecials
-
-\appendtoks
- \let\handleMPfshow\dohandleMPfshow
-\to \everyresetspecials
-
-%D
-
-%D \macros
-%D {dosetposition, dosetpositionwdh, dosetpositionplus}
-%D
-%D Opposite to its \DVI\ counterpart, the \PDFTEX\ backend
-%D can provide positional information directly. Since
-%D \CONTEXT\ only uses relative positions, the origin is of
-%D less importance. Nowadays \XETEX\ also supports this
-%D feature.
-
-\ifx\pdfsavepos\undefined
-
- % only for ancient pdftex, less old xetex and current aleph
-
- \def\dosetposition #1{\special{pos:pxy "#1"}}
- \def\dosetpositionwhd #1#2#3#4{\special{pos:pxywhd "#1" #2 #3 #4}}
- \def\dosetpositionplus#1#2#3#4#5{\special{pos:pxyplus "#1" #2 #3 #4 #5}}
-
- \let\flushDVIpositionpapersize\relax
-
- \def\dosetpositionpapersize#1#2%
- {\xdef\flushDVIpositionpapersize
- {\special{pos:papersize \number#1 \number#2}%
- \noexpand\installprogram{dvipos -o \jobname.tuo \jobname.dvi }%
- \global\noexpand\let\noexpand\flushDVIpositionpapersize\relax}}
-
- % kind of obsolete since nowadays xetex supports \pdfsavepos as well
-
- \ifnum\texengine=\xetexengine
-
- \def\dosetpositionpapersize#1#2%
- {\xdef\flushDVIpositionpapersize
- {\special{pos:papersize \number#1 \number#2}%
- \noexpand\installprogram{dvipos -o \jobname.tuo \jobname.xdv }%
- \global\noexpand\let\noexpand\flushDVIpositionpapersize\relax}}
-
- \fi
-
- \prependtoksonce \flushDVIpositionpapersize \to \everyshipout
-
-\else
-
- \def\dosetposition#1%
- {\pdfsavepos
- \dolazysaveposition
- {#1}%
- {\noexpand\realfolio}%
- {\noexpand\the\dimexpr\pdflastxpos\scaledpoint\relax}%
- {\noexpand\the\dimexpr\pdflastypos\scaledpoint\relax}}%
-
- \def\dosetpositionwhd#1#2#3#4%
- {\pdfsavepos
- \dolazysavepositionwhd
- {#1}%
- {\noexpand\realfolio}%
- {\noexpand\the\dimexpr\pdflastxpos\scaledpoint\relax}%
- {\noexpand\the\dimexpr\pdflastypos\scaledpoint\relax}%
- {#2}{#3}{#4}}
-
- \def\dosetpositionplus#1#2#3#4#5%
- {\pdfsavepos
- \dolazysavepositionplus
- {#1}%
- {\noexpand\realfolio}%
- {\noexpand\the\dimexpr\pdflastxpos\scaledpoint\relax}%
- {\noexpand\the\dimexpr\pdflastypos\scaledpoint\relax}%
- {#2}{#3}{#4}{#5}}
-
- \let\dosetpositionpapersize\gobbletwoarguments
-
-\fi
-
-%D Handy to have this available asap:
-
-\ifdefined\everyPDFxform \newtoks\everyPDFxform \fi
-\ifdefined\everyPDFximage \newtoks\everyPDFximage \fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-pdf.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-pdf.mkii
deleted file mode 100644
index 33722f60345..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-pdf.mkii
+++ /dev/null
@@ -1,482 +0,0 @@
-%D \module
-%D [ file=spec-pdf,
-%D version=1997.09.20,
-%D title=\CONTEXT\ Special Macros,
-%D subtitle=Adobe \ACROBAT\ version 2.1,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% funny things: mail to yeny: "please geen auto-crlf in special"
-
-%D This driver is build on top of the general \PDF\ macros,
-%D as defined in \type{spec-fdf}, so we inherit that one.
-
-\startspecials[pdf][fdf]
-
-%D \macros
-%D {dosetupinteraction,
-%D doPDFsetopenaction,doPDFsetcloseaction}
-%D
-%D Instead of a prolog, we can put the code in the file
-%D ourselve.
-%D
-%D \starttyping
-%D \definespecial\dosetupinteraction%
-%D {\special
-%D {\@@insertpostscriptretain
-%D /pdfmark where
-%D {pop}
-%D {userdict /pdfmark /cleartomark load put}
-%D ifelse}}
-%D \stoptyping
-%D
-%D We decided to use a prolog file. The following code has to
-%D be put somewhere, e.g.\ in the startup directory of
-%D \DISTILLER. To overcome problems, we always embed the fonts,
-%D but copyrights force us always to make subsets.
-%D
-%D \starttyping
-%D /currentdistillerparams where
-%D { pop } { userdict /currentdistillerparams { 1 dict } put } ifelse
-%D
-%D /setdistillerparams where
-%D { pop } { userdict /setdistillerparams { pop } put } ifelse
-%D
-%D << /AntiAliasColorImages true
-%D /AntiAliasGrayImages true
-%D /AntiAliasMonoImages true
-%D /ConvertCMYKImagesToRGB true
-%D /MaxSubsetPct 99
-%D /EmbedAllFonts true
-%D /SubSetFonts true >> setdistillerparams
-%D \stoptyping
-%D
-%D Beware, this is the PostScript Level 2 way of doing things.
-
-\definespecial\dosetupinteraction
- {\showmessage\m!interactions{21}{acrobat}}
-
-\definespecial\dosetupopenaction {\doPDFsetupopenaction}
-\definespecial\dosetupcloseaction{\doPDFsetupcloseaction}
-
-%D \macros
-%D {dostartthisislocation}
-%D
-%D We share a lot of macros with the \PDFTEX\ driver. First
-%D the one that handles named destinations.
-
-\definespecial\dostartthisislocation {\doPDFstartthisislocation}
-
-%D \macros
-%D {doresetgotowhereever,
-%D dostartgotolocation,dostartgotorealpage,dostartgotoJS,
-%D dostartexecutecommand,dostartrunprogram,dostartgotoprofile}
-%D
-%D The next specials are responsible for handling references.
-%D Each goto handler can handle multiple references.
-
-\definespecial\doresetgotowhereever {\doPDFresetgotowhereever}
-\definespecial\dostartgotolocation {\doPDFstartgotolocation}
-\definespecial\dostartgotorealpage {\doPDFstartgotorealpage}
-\definespecial\dostartgotoJS {\doPDFstartgotoJS}
-\definespecial\dostartexecutecommand{\doPDFstartexecutecommand}
-\definespecial\dostartrunprogram {\doPDFstartrunprogram}
-\definespecial\dostartgotoprofile {\doPDFstartgotoprofile}
-
-%D \macros
-%D {doflushJSpreamble}
-%D
-%D Thanks to the fact that \DISTILLER\ cannot handle multiple
-%D names entries in the document catalog, for the moment we
-%D have to misuse the page attributes. Beware, the preambles
-%D must be packed.
-
-\definespecial\doflushJSpreamble#1%
- {\bgroup
- \ifoneJSpreamble
- \edef\sanitizedJScode{\getJSpreamble{#1}}%
- \expandafter\doPSsanitizeJScode\sanitizedJScode\to\sanitizedJScode
- \special % nota bene, the page starts at 1
- {\@@insertpostscriptretain
- [ /_objdef{JS:#1} /type /dict /OBJ pdfmark
- [ {JS:#1} << /S /JavaScript /JS (\sanitizedJScode) >> /PUT pdfmark
- [ {Page1} << /AA << /O {JS:#1} >> >> /PUT pdfmark}%
- \else % temporary message
- \writestatus{\m!specials}{Acrobat workaround needed: please pack JS preambles}%
- \fi
- \egroup}
-
-%D \macros
-%D {dostarthide,dostophide}
-%D
-%D Hopefully some day hiding navigational things when
-%D printing \PDF\ files will be supported properly.
-
-\definespecial\dostarthide%
- {\special
- {\@@insertpostscriptretain
- [ /DataSource (false \iftrue\string{\else}\fi)
- /PS
- pdfmark}}
-
-\definespecial\dostophide%
- {\special
- {\@@insertpostscriptretain
- [ /DataSource (\iffalse{\else\string}\fi if)
- /PS
- pdfmark}}
-
-%D \macros
-%D {dosetupscreen,
-%D dosetupidentity}
-%D
-%D We can set up the page dimensions, full screen start up
-%D mode and identify the file with:
-
-\definespecial\dosetupscreen {\doPDFsetupscreen \printpaperheight}
-
-\definespecial\dosetupartbox {\doPDFsetupartbox \printpaperheight}
-\definespecial\dosetupcropbox {\doPDFsetupcropbox \printpaperheight}
-\definespecial\dosetupbleedbox{\doPDFsetupbleedbox\printpaperheight}
-\definespecial\dosetuptrimbox {\doPDFsetuptrimbox \printpaperheight}
-
-\definespecial\dosetupidentity{\doPDFsetupidentity}
-
-%D \macros
-%D {dobeginofprofile,doendofprofile}
-%D
-%D Profile support is still far from perfect. This is
-%D especially due to the fact that the specification of
-%D threads are sort of fuzzy and depend on the viewer.
-
-\definespecial\dobeginofprofile#1#2#3#4% label width height page
- {\bgroup
- \setPDFdestination{#1}%
- \doifsomething{\PDFdestination}
- {\PointsToBigPoints{#2}\width
- \PointsToBigPoints{#3}\height
- \special
- {\@@insertpostscriptretain
- [ /Title (\PDFdestination)
- /Rect [0 0 \width\space\height]
- /ARTICLE
- pdfmark}}%
- \egroup}
-
-\definespecial\doendofprofile%
- {}
-
-%D Apart from movies, graphic inclusion is handled in the
-%D \POSTSCRIPT\ drivers. We just link the movie annotation
-%D handled to the file inclusion system.
-
-\definefileinsertion{yy}{mov}{\doPDFinsertmov}
-\definefileinsertion{tr}{mov}{\doPDFinsertmov}
-
-\definefileinsertion{yy}{avi}{\doPDFinsertmov}
-\definefileinsertion{tr}{avi}{\doPDFinsertmov}
-
-%D \macros
-%D {doinsertsoundtrack}
-%D
-%D Sounds look much like movies:
-
-\definespecial\doinsertsoundtrack{\doPDFinsertsoundtrack}
-
-%D \macros
-%D {dostartobject,dostopobject,
-%D doinsertobject}
-%D
-%D Objects, those nice reusable pieces of text and graphics,
-%D are handled by three specials:
-
-\definespecial\dostartobject#1#2#3#4#5%
- {\bgroup
- \setbox\nextbox=\hbox\bgroup
- \bgroup
- \PointsToBigPoints{#3}\width
- \PointsToBigPoints{#4}\height
- \PointsToBigPoints{#5}\depth
- \dosetobjectreference{#1}{#2}{#1::#2}%
- \special
- {\@@insertpostscriptretain
- [ /BBox [0 -\depth\space \width\space \height]
- /_objdef {#1::#2}
- /BP
- pdfmark}%
- \egroup}
-
-\definespecial\dostopobject%
- {\special
- {\@@insertpostscriptretain
- [ /EP
- pdfmark}%
- \egroup
- \smashbox\nextbox
- \flushatshipout{\box\nextbox}%
- \egroup}
-
-\definespecial\doinsertobject#1#2%
- {\hbox
- {\dogetobjectreference{#1}{#2}\PDFobjectreference
- \ifx\PDFobjectreference\empty \else
- \special
- {\@@insertpostscriptretain
- [ {\PDFobjectreference}
- /SP
- pdfmark}%
- \fi}}
-
-%D \macros
-%D {doinsertbookmark}
-%D
-%D Although personally I never use bookmarks, \CONTEXT\ does
-%D support them, due to user requests.
-
-\definespecial\doinsertbookmark {\doPDFinsertbookmark}
-
-%D \macros
-%D {dosetpagetransition}
-%D
-%D Page transitions, again a user wish, is taken care of by:
-
-\definespecial\dosetpagetransition{\doPDFsetpagetransition}
-
-%D \macros
-%D {doinsertcomment, doflushcomments}
-%D
-%D I never needed (and used) one until now, but here is the
-%D text annotation special:
-
-\definespecial\doinsertcomment{\doPDFinsertcomment}
-\definespecial\doflushcomments{\doPDFflushcomments}
-
-%D \macros
-%D {dopresetlinefield,dopresettextfield,
-%D dopresetchoicefield,dopresetpopupfield,dopresetcombofield,
-%D dopresetpushfield,dopresetcheckfield,
-%D dopresetradiofield,dopresetradiorecord}
-%D
-%D There is nothing enervating to the next few mappings.
-
-\definespecial\dopresetlinefield {\doFDFpresetlinefield}
-\definespecial\dopresettextfield {\doFDFpresettextfield}
-\definespecial\dopresetchoicefield{\doFDFpresetchoicefield}
-\definespecial\dopresetpopupfield {\doFDFpresetpopupfield}
-\definespecial\dopresetcombofield {\doFDFpresetcombofield}
-\definespecial\dopresetpushfield {\doFDFpresetpushfield}
-\definespecial\dopresetcheckfield {\doFDFpresetcheckfield}
-\definespecial\dopresetradiofield {\doFDFpresetradiofield}
-\definespecial\dopresetradiorecord{\doFDFpresetradiorecord}
-
-%D \macros
-%D {dodefinefieldset,dogetfieldset,doiffieldset}
-%D
-%D Field sets, used in resetting and submitting, are handled
-%D by:
-
-\definespecial\dodefinefieldset{\doFDFdefinefieldset}
-\definespecial\dogetfieldset {\doFDFgetfieldset}
-\definespecial\doiffieldset {\doFDFiffieldset}
-
-%D \macros
-%D {doregistercalculationset}
-%D
-%D The calculation order is defined using:
-
-\definespecial\doregistercalculationset{\doFDFregistercalculationset}
-
-%D \macros
-%D {doPDFdestination}
-%D
-%D Last we implement the low level pdfmark macros. The
-%D definitions are rather verbose. First the destination
-%D macro.
-
-\def\doPDFdestination#1%
- {\special
- {\@@insertpostscriptretain
- [ /Dest /#1\space
- \PDFpageview
- /DEST
- pdfmark}}
-
-%D \macros
-%D {doPDFaction,doPDFannotation,doPDFannotationobject,
-%D ifsharePDFactions}
-%D
-%D We have three alternative annotation macros. The first
-%D handles the goto ones, the second takes care of for instance
-%D movies and the third is used in fields.
-
-\newcount\nofPDFsimilar
-
-\newif\ifsharePDFactions \sharePDFactionstrue
-
-\def\dodoPDFaction#1#2#3#4%
- {\ifcollectreferenceactions
- \xdef\lastPDFaction{#4}%
- \else
- \bgroup
- % does not work well with distiller 4
- %\ifsharePDFactions
- % \ifcase\similarreference\relax
- % \xdef\lastPDFaction{<<#4>>}%
- % \or
- % \global\advance\nofPDFsimilar by 1
- % \special
- % {\@@insertpostscriptretain
- % [ /_objdef {PDF::sim:\the\nofPDFsimilar} /type /dict /OBJ pdfmark
- % [ {PDF::sim:\the\nofPDFsimilar} <<#4>>\space /PUT pdfmark}%
- % \xdef\lastPDFaction{{PDF::sim:\the\nofPDFsimilar}}%
- % \else
- % % leave \lastPDFaction untouched
- % \fi
- %\else
- \xdef\lastPDFaction{<<#4>>}%
- %\fi
- \PointsToBigPoints{#2}\width
- \PointsToBigPoints{#1}\height
- \special
- {\@@insertpostscriptretain
- [ #1
- /Action \lastPDFaction\space
- /Rect [0 0 \width\space \height]
- /Border [0 0 0]
- \ifhighlighthyperlinks \else /H /N \fi
- /Subtype /Link
- /ANN
- pdfmark}%
- \egroup
- \fi}
-
-\def\doPDFaction#1#2#3%
- {\dodoPDFaction\empty{#1}{#2}{#3}}
-
-\def\doPDFannotation#1#2#3%
- {\bgroup
- \PointsToBigPoints{#1}\width
- \PointsToBigPoints{#2}\height
- \special
- {\@@insertpostscriptretain
- [ /Rect [0 0 \width\space \height] #3
- /ANN
- pdfmark}%
- \egroup}
-
-\def\doPDFannotationobject#1#2#3#4#5%
- {\bgroup
- \PointsToBigPoints{#3}\width
- \PointsToBigPoints{#4}\height
- \special
- {\@@insertpostscriptretain
- [ /_objdef {#1::#2}
- /Rect [0 0 \width\space \height] #5
- /ANN
- pdfmark}%
- \egroup
- \dosetobjectreference{#1}{#2}{#1::#2}}
-
-\def\doPDFactionobject#1#2#3#4#5%
- {\dodoPDFaction{/_objdef {#1::#2}}{#3}{#4}{#5}%
- \dosetobjectreference{#1}{#2}{#1::#2}}
-
-%D \macros
-%D {doPDFdictionaryobject,doPDFarrayobject}
-%D
-%D These two macros are used to build low level objects.
-
-\def\doPDFdictionaryobject#1#2#3%
- {\special
- {\@@insertpostscriptretain
- [ /_objdef {#1::#2} /type /dict /OBJ pdfmark
- [ {#1::#2} << #3 >> /PUT pdfmark}%
- \dosetobjectreference{#1}{#2}{#1::#2}}
-
-\def\doPDFarrayobject#1#2#3%
- {\special
- {\@@insertpostscriptretain
- [ /_objdef {#1::#2} /type /array /OBJ pdfmark
- [ {#1::#2} 0 [#3] /PUTINTERVAL pdfmark}%
- \dosetobjectreference{#1}{#2}{#1::#2}}
-
-%D \macros
-%D {doPDFaddtocatalog,doPDFaddtoinfo,
-%D doPDFpageattribute,doPDFpagesattribute}
-%D
-%D Next come our housekeeping macros.
-
-\def\doPDFaddtocatalog#1%
- {\doifsomething{#1}
- {\special
- {\@@insertpostscriptretain
- [ {Catalog} << #1 >> /PUT pdfmark}}}
-
-\def\doPDFaddtoinfo#1% unchecked
- {\special
- {\@@insertpostscriptretain
- [ #1 /DOCINFO pdfmark}} % [ {DocInfo} << #1 >> /PUT pdfmark}}
-
-\def\doPDFpageattribute#1%
- {\doifsomething{#1}
- {\special
- {\@@insertpostscriptretain
- [ {ThisPage} << #1 >> /PUT pdfmark}}}
-
-\def\doPDFpageresource#1%
- {\message{[skipping PDF resource]}}
-
-\def\doPDFpagesattribute#1%
- {\doifsomething{#1}
- {\special
- {\@@insertpostscriptretain
- [ #1 /PAGES pdfmark}}}
-
-\let\doPDFresetpageresources \relax
-\let\doPDFresetpageattributes\relax
-
-%D \macros
-%D {doPDFbookmark}
-%D
-%D This is how we force bookmarks entries in the file.
-
-\def\doPDFbookmark#1#2#3#4#5%
- {\scratchcounter#4\advance\scratchcounter\minusone
- \special
- {\@@insertpostscriptretain
- [ /Page \the\scratchcounter\space
- \ifcase#2 \else/Count \ifcase#5-\fi#2 \fi
- \PDFpageview
- /Title (#3)
- /OUT
- pdfmark}}
-
-%D \macros
-%D {defaultobjectreference,doPDFgetobjectreference}
-%D
-%D The object references are \type{{named}}, that is, no hard
-%D coded numbers are needed (opposite to \PDFTEX).
-
-\def\defaultobjectreference#1#2{#1::#2}
-
-\def\doPDFgetobjectreference#1#2#3%
- {\dogetobjectreference{#1}{#2}#3%
- \ifx#3\empty\else\edef#3{{#3}}\fi}
- %\edef#3{\ifx#3\empty null\else{#3}\fi}}
-
-% \def\doPDFgetobjectpage #1#2#3{..}
-% \def\doPDFgetobjectpagereference#1#2#3{..}
-
-\def\doPDFgetpagereference#1#2%
- {\edef#2{{page#1}}}
-
-%D Done.
-
-\stopspecials
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-ps.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-ps.mkii
deleted file mode 100644
index 02ec16453cb..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-ps.mkii
+++ /dev/null
@@ -1,229 +0,0 @@
-%D \module
-%D [ file=spec-ps,
-%D version=1996.01.25,
-%D title=\CONTEXT\ Special Macros,
-%D subtitle=Adobe PostScript,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D \macros
-%D {dostartgraymode,dostopgraymode,
-%D dostartrgbcolormode,dostartcmykcolormode,dostartgraycolormode,dostopcolormode,
-%D dostartrotation,dostoprotation,
-%D dostartscaling,dostopscaling,
-%D dostartmirroring,dostopmirroring,
-%D dostartnegative,dostopnegative,
-%D dostartoverprint,dostopoverprint,
-%D doselectfirstpaperbin,
-%D doselectsecondpaperbin}
-%D
-%D This implementation is straightforward and can be used as
-%D a default with postscript||drivers. We use \type{ps:} as
-%D opening, because most drivers support this.
-
-\startspecials[postscript]
-
-\def\@@insertpostscriptliteral {ps: }
-\def\@@insertpostscriptretain {" }
-
-\definespecial\dostartgraymode#1%
- {\special
- {\@@insertpostscriptliteral
- #1\space setgray}}
-
-\definespecial\dostopgraymode
- {\special
- {\@@insertpostscriptliteral
- 0 setgray}}
-
-\definespecial\dostartrgbcolormode#1#2#3%
- {\special
- {\@@insertpostscriptliteral
- #1\space #2\space #3\space setrgbcolor}}
-
-\definespecial\dostartcmykcolormode#1#2#3#4%
- {\special
- {\@@insertpostscriptliteral
- #1\space #2\space #3\space #4\space setcmykcolor}}
-
-\definespecial\dostartgraycolormode#1%
- {\special
- {\@@insertpostscriptliteral
- #1\space setgray}}
-
-\definespecial\dostopcolormode
- {\special
- {\@@insertpostscriptliteral
- 0 setgray}}
-
-\definespecial\doselectfirstpaperbin
- {\special
- {\@@insertpostscriptliteral
- statusdict begin 1 setpapertray end}} % checken
-
-\definespecial\doselectsecondpaperbin
- {\special
- {\@@insertpostscriptliteral
- statusdict begin 0 setpapertray end}} % checken
-
-\definespecial\dostartrotation#1% straight from the YandY manual
- {\special
- {\@@insertpostscriptliteral
- gsave currentpoint currentpoint translate
- \number#1\space\space rotate neg exch neg exch translate}}
-
-\definespecial\dostoprotation
- {\special
- {\@@insertpostscriptliteral
- currentfont currentpoint grestore moveto setfont}}
-
-\definespecial\dostartscaling#1#2% conforming the YandY manual
- {\special
- {\@@insertpostscriptliteral
- gsave currentpoint currentpoint translate
- #1\space #2\space scale neg exch neg exch translate}}
-
-\definespecial\dostopscaling
- {\special
- {\@@insertpostscriptliteral
- currentfont currentpoint grestore moveto setfont}}
-
-\definespecial\dostartmirroring % some translate and exch stuff from YandY
- {\special
- {\@@insertpostscriptliteral
- gsave currentpoint currentpoint translate
- [-1 0 0 1 0 0] concat neg exch neg exch translate}}
-
-\definespecial\dostopmirroring
- {\special
- {\@@insertpostscriptliteral
- currentfont currentpoint grestore moveto setfont}}
-
-\definespecial\dostartnegative
- {\special{\@@insertpostscriptliteral gsave {1 exch sub} settransfer}}
-
-\definespecial\dostopnegative
- {\special{\@@insertpostscriptliteral grestore}}
-
-\definespecial\dostartoverprint
- {\special{\@@insertpostscriptliteral true setoverprint}}
-
-\definespecial\dostopoverprint
- {\special{\@@insertpostscriptliteral false setoverprint}}
-
-\definespecial\dostartgraphicgroup
- {\special{\@@insertpostscriptliteral gsave}}
-
-\definespecial\dostopgraphicgroup
- {\special{\@@insertpostscriptliteral grestore}}
-
-%D \macros
-%D {doovalbox}
-%D
-%D This implementation is a mixture of several possible
-%D implementations. We use some constants that may not be
-%D changed. It took some time to find them, but these values
-%D offer quite accurate results. The macro calls for
-%D \type{\forgetall}, which resets indentation, skips and
-%D \type{\everypar}.
-%D
-%D Because a stroke follows the line, we correct for half of
-%D the linewidth. Furthermore we use scaling to overcome some
-%D limitations in the precision ($<1$~sp) and to prevent
-%D rounding errors. We also do some correction for large
-%D values. We let PostScript compare some arguments with
-%D \type{a b eq {action} fi}.
-%D
-%D The path is based on a macro of J.~Hefferon cs. We also
-%D tried the D.~Salomon implementation, but this did not work
-%D well, just like some other alternatives.
-
-% #1 = width #2 = height #3 = depth
-% #4 = linewidth #5 = radius
-% #5 = stroke (ja,nee) #7 = fill (ja,nee)
-
-\def\@@insertpostscriptliteral {ps: }
-\def\@@insertpostscriptretain {postscript } % unknown
-
-\def\dosomeovalcalc#1#2#3%
- {\dimen2=#1%
- \advance\dimen2 #2%
- \PointsToBigPoints{\dimen2}#3}
-
-\def\dosomeovalbox#1#2#3#4#5#6#7#8% variant not yet supported
- {\bgroup
- \dimen0=#4\divide\dimen0 2
- \dosomeovalcalc{0pt}{+\dimen0}\xmin
- \dosomeovalcalc{#1}{-\dimen0}\xmax
- \dosomeovalcalc{#2}{-\dimen0}\ymax
- \dosomeovalcalc{-#3}{+\dimen0}\ymin
- \dosomeovalcalc{#4}{0pt}\stroke
- \dosomeovalcalc{#5}{0pt}\radius
- \edef\dostroke{#6}%
- \edef\dofill{#7}%
- \setbox\nextbox\hbox
- {\ifnum\dostroke\dofill>0
- \special
- {\@@insertpostscriptretain
- gsave
- newpath
- \xmin\space \radius\space add \ymin\space moveto
- \xmax\space \ymin\space \xmax\space \ymax\space \radius\space arcto
- \xmax\space \ymax\space \xmin\space \ymax\space \radius\space arcto
- \xmin\space \ymax\space \xmin\space \ymin\space \radius\space arcto
- \xmin\space \ymin\space \xmax\space \ymin\space \radius\space arcto
- \xmin\space \radius\space add \ymin\space moveto
- 16 {pop} repeat
- closepath
- (\dostroke) (1) eq
- {\stroke\space 0 ne
- {gsave
- \stroke\space setlinewidth
- stroke
- grestore} if} if
- (\dofill) (1) eq
- {fill} if
- grestore}%
- \fi}%
- \nextboxwd#1%
- \nextboxht#2%
- \nextboxdp#3%
- \flushnextbox
- \egroup}
-
-%D The indirect call permits a (rather) dirty hack, needed
-%D for \DVIPS\ support.
-
-\definespecial\doovalbox
- {\dosomeovalbox}
-
-%D \macros
-%D {dostartclipping,dostopclipping}
-%D
-%D These two specials are not yet working as expected.
-
-\definespecial\dostartclipping#1#2#3%
- {\PointsToBigPoints{#2}\width
- \PointsToBigPoints{#3}\height
- \grabMPclippath{#1}{0}{\width}{\height}
- {0 0 moveto \width 0 lineto \width \height lineto 0 \height\space lineto}%
- \special
- {\@@insertpostscriptliteral\space
- save newpath \MPclippath\space closepath clip}}
-
-\definespecial\dostopclipping
- {\special{\@@insertpostscriptliteral\space restore}}
-
-%D Some MP stuff:
-
-\definespecial\doinsertMPfile#1%
- {\doiffileelse{./#1}{\includeMPasEPS{./#1}}{\message{[MP #1]}}}
-
-\stopspecials
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-tpd.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-tpd.mkii
deleted file mode 100644
index 042d5cdfe36..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-tpd.mkii
+++ /dev/null
@@ -1,1334 +0,0 @@
-%D \module
-%D [ file=spec-tpd,
-%D version=1996.01.25,
-%D title=\CONTEXT\ Special Macros,
-%D subtitle=\PDFTEX,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% once we can be sure that the latest versions of pdftex are
-% available we can use:
-%
-% \pdfobj reserveobjnum \edef\one{\the\pdflastobj}
-% \pdfobj reserveobjnum \edef\two{\the\pdflastobj}
-%
-% \pdfobj useobjnum \one {x}
-% \pdfobj useobjnum \two {x}
-%
-% we then can rewrite part of spec-fdf because the other drivers
-% already support symbolic references
-
-% layers and links don't work while the spec says they should
-
-% method = auto
-%
-% \definefileinsertion{tpd}{auto}%
-% {\executesystemcommand{t:/ruby/pstopdf.rb #2}%
-% \dofileinsertion{tpd}{pdf}}
-
-% \let\PDFdestvoffset\zeropoint
-% \newbox\pdfdestbox
-%
-% \def\doPDFdestination#1%
-% {\ifdim\PDFdestvoffset=\zeropoint\relax
-% \pdfdest name {#1}\PDFpageviewkey
-% \else
-% \setbox\pdfdestbox\hbox to \zeropoint
-% {\raise\PDFdestvoffset\hbox{\pdfdest name {#1}\PDFpageviewkey}}%
-% \ht\pdfdestbox\zeropoint
-% \box\pdfdestbox
-% \fi}
-%
-% \def\PDFdestvoffset{2\lineheight} % {1.5\strutht}
-
-%D \macros
-%D {jobsuffix}
-%D
-%D Being one of the first typographical systems able to support
-%D advances \PDF\ support, \TEX\ is also one of the first
-%D systems to produce high quality \PDF\ code directly. Thanks
-%D to Han The Thanh c.s. the \TEX\ community can leap forward
-%D once again.
-%D
-%D One important characteristic of \PDFTEX\ is that is can
-%D produce standard \DVI\ code as well as \PDF\ code. This
-%D enables us to use one format file to support both output
-%D formats.
-
-%D All modules in this group use specials to tell drivers what
-%D non||\TEX\ actions to take. Because from the \TEX\ point of
-%D view, there is no difference between \DVI\ and \PDF, we
-%D therefore only have to bend the \DVI\ driver support into
-%D \PDF\ support. Technically spoken, specials no longer serve
-%D a purpose, except from ending up as comment in the \PDF\
-%D file.
-%D
-%D Before we continue we need to make sure if indeed those
-%D \PDFTEX\ primitives are permitted. If no primitives are
-%D available, we just stop reading any further.
-
-\unprotect
-
-\ifx\pdftexversion\undefined
- \writestatus\m!systems{you should use pdfTeX binaries}\wait
- \protect\expandafter\endinput
-\fi
-
-\ifnum\pdftexversion<13
- \writestatus\m!systems{your pdfTeX version is much too old}\wait
- \protect\expandafter\endinput
-\fi
-
-\ifnum\pdftexversion<14
- \writestatus\m!systems{please update your pdfTeX binaries}
-\fi
-
-\ifnum\pdftexversion>19
- \pdfhorigin=1 true in
- \pdfvorigin=1 true in
-\fi
-
-%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\pdfpkresolution \undefined \newcount\pdfpkresolution \fi
-
-\pdfimageresolution=300
-\pdfpkresolution =600
-
-%D Another downward compatible hack:
-
-\ifx\pdflastximagepages\undefined
- \newcount\pdflastximagepages \pdflastximagepages=1
-\fi
-
-%D And:
-
-\ifx\pdfpageresources\undefined
- \newtoks\pdfpageresources
-\fi
-
-%D In order to get high quality \METAPOST\ inclusion, we set
-%D the number of digits to~5 (prevents rounding errors).
-
-\ifx\pdfdecimaldigits\undefined
- \newcount\pdfdecimaldigits
-\fi
-
-\pdfdecimaldigits=10
-
-\ifx\pdfinclusionerrorlevel\undefined
- \ifx\pdfoptionpdfinclusionerrorlevel\undefined
- \newcount\pdfinclusionerrorlevel
- \else
- \let\pdfinclusionerrorlevel\pdfoptionpdfinclusionerrorlevel
- \fi
-\fi
-
-\pdfinclusionerrorlevel=0
-
-\ifx\pdfminorversion\undefined
- \ifx\pdfoptionpdfminorversion\undefined
- \newcount\pdfminorversion
- \else
- \let\pdfminorversion\pdfoptionpdfminorversion
- \fi
-\fi
-
-\pdfminorversion=5
-
-\def\PDFversion{1.\number\pdfminorversion}
-
-% %D Why are the Acrobat viewers so buggy? To prevent font cache
-% %D mismatches, we say:
-%
-% \ifx\pdfuniqueresname\undefined \else
-% \pdfuniqueresname=1
-% \fi
-
-%D Once we are sure that we're indeed supporting \PDFTEX, we
-%D force \PDF\ output at the highest compression. For debugging
-%D purposes one can set the compresslevel to~0. We also have to
-%D make sure no other specials are supported, else \PDFTEX\
-%D will keep on telling us that we're wrong. We also load the
-%D general \PDF\ macros that are shared between this driver and
-%D the \ACROBAT\ one.
-
-\startspecials[tpd][reset,fdf]
-
-%D This means that by saying
-%D
-%D \starttyping
-%D \usespecials[tpd]
-%D \stoptyping
-%D
-%D we get ourselves full \PDF\ output.
-
-%D For some internal testing we need to know the output
-%D suffix.
-
-\setjobsuffix{pdf}
-
-%D We don't use specials here, which means that we must flush
-%D settings before the page is shipped out.
-
-\specialbasedsettingsfalse
-
-%D Some more internal settings.
-
-\appendtoksonce
- \pdfoutput\zerocount
-\to \everyresetspecials
-
-\pdfoutput=1 % we reset that one with \everyresetspecials
-
-%D Just in case we mimmick specials, we have to make sure no
-%D default specials end up in the process.
-
-\let\defaultspecial=\gobbleoneargument
-
-\appendtoksonce
- \let\defaultspecial\normalspecial
-\to \everyresetspecials
-
-\let\PDFcode \pdfliteral
-\def\PDFcontentcode{\pdfliteral}
-\def\PDFdirectcode {\pdfliteral direct}
-
-%D \macros
-%D {everyPDFximage}
-%D
-%D This token register is flushed before an ximage is loaded.
-
-\ifdefined\everyPDFximage \else \newtoks\everyPDFximage \fi
-\ifdefined\everyPDFxform \else \newtoks\everyPDFxform \fi
-
-%D \macros
-%D {dosetuppaper}
-%D
-%D If we don't set the paper size, \PDFTEX\ will certainly do
-%D it in a way we don't want, therefore we need:
-
-\definespecial\dosetuppaper#1#2#3%
- {\global\pdfpagewidth #2\relax
- \global\pdfpageheight#3\relax}
-
-%D \macros
-%D {doloadmapfile,doloadmapline,doresetmapfilelist}
-
-\ifx\pdfmapfile\undefined \let\pdfmapfile\gobbletwoarguments \fi
-\ifx\pdfmapline\undefined \let\pdfmapline\gobbletwoarguments \fi
-
-\definespecial\doresetmapfilelist
- {\global\let\doresetmapfilelist\relax
- \pdfmapfile{original-empty.map}}
-
-\ifnum\pdftexversion<120
-
- \definespecial\doloadmapfile #1#2{\pdfmapfile{+#2}}
- \definespecial\doloadmapline #1#2{}
-
-\else
-
- \definespecial\doloadmapfile #1#2{\pdfmapfile{#1#2}}
- \definespecial\doloadmapline #1#2{\pdfmapline{#1#2}}
-
-\fi
-
-%D nasty but needed
-
-\appendtoksonce \loadallfontmapfiles \to \everyPDFximage
-\appendtoksonce \loadallfontmapfiles \to \everyPDFxform
-
-%D \macros
-%D {doinsertfile,dogetnofinsertpages}
-%D
-%D Graphics are not part of \TEX\ and therefore not part of the
-%D \DVI\ standard. \PDF\ on the other hand has several graphic
-%D primitives. During the multi||step process \TEX\
-%D $\rightarrow$ \DVI\ $\rightarrow$ \POSTSCRIPT\ $\rightarrow$
-%D \PDF\ one can insert graphics using specials. In \PDFTEX\
-%D however there is only one step! This means that \PDFTEX\
-%D itself has to do the inclusion.
-%D
-%D At the moment \PDFTEX\ supports inclusion of bitmap \PNG\
-%D graphics as well as not too complicated \PDF\ code. Using
-%D this last option, we are able to include both \METAPOST\ and
-%D \PDF\ output produced by \GHOSTSCRIPT.
-%D
-%D We fall back on the generic \CONTEXT\ module supp-pdf to
-%D accomplish \PDF\ inclusion. The methods implemented there
-%D are hooked into both the figure placement mechanisms of
-%D \CONTEXT\ and the specials inclusion mechanism.
-
-\definespecial\doinsertfile
- {\dofileinsertion{tpd}{\truegraphictype\@@DriverImageType}}
-
-%D The number of pages in (for instance an \PDF) insert
-%D file, can be asked for using:
-
-\definespecial\dogetnofinsertpages#1%
- {\xdef\nofinsertpages{1}% global
- \doifvalidpdfimagefileelse{#1}%
- {\pdfximage{#1}\xdef\nofinsertpages{\the\pdflastximagepages}}
- {}}
-
-%D Currently we support \type{pdf} for \PDF\ files, \type{mps}
-%D for \METAPOST\ graphics, \type{png} and \type{jpg} for
-%D bitmap graphics.
-
-\definefileinsertion{tpd}{mps}
- {\hbox
- {\convertMPtoPDF\@@DriverImageFile{1}{1}%
- \global\let\PDFimagereference\empty}}
-
-\definefileinsertion{tpd}{pdf}{\handlepdfimage}
-\definefileinsertion{tpd}{png}{\handlepdfimage}
-\definefileinsertion{tpd}{jpg}{\handlepdfimage}
-\definefileinsertion{tpd}{jb2}{\handlepdfimage}
-
-% \definefileinsertion{tpd}{jpeg} {\handlepdfimage}
-% \definefileinsertion{tpd}{jbig2}{\handlepdfimage}
-
-%D Experimental:
-
-%D The main file insertion macro is as follows. Because
-%D \PDFTEX\ does not support arbitrary suffixes, we double
-%D check on a user supplied filename, because \PDFTEX\ chokes
-%D on unknown suffixes.
-
-\def\doifvalidpdfimagefileelse#1% todo: greedy split
- {\doiffileelse{#1}
- {\edef\filesuffix{#1}%
- \doloop
- {\@EA\aftersplitstring\filesuffix\at.\to\temp
- \ifx\temp\empty
- \exitloop
- \else
- \lowercasestring\temp\to\filesuffix % insertion check also needs lowercase
- % a temporary hack
- \doif\filesuffix{pdf}{\pdfimageresolution72}%
- % because pdfTeX scales back
- \fi}}
- {\let\filesuffix\s!unknown}%
- \doiffileinsertionsupportedelse\filesuffix}
-
-\ifx\pdflastximagepages\undefined \chardef\pdflastximagepages=1 \fi
-
-\def\checkpdfimagepagenumber
- {\edef\pdfimagepagenumber
- {\ifx\@@DriverImagePage\empty\else\ifnum\@@DriverImagePage>\zerocount
- \space page\space\@@DriverImagePage\space
- \fi\fi}}
-
-\ifnum\pdftexversion>13
-
- \def\handlepdfimage
- {\bgroup
- \the\everyPDFximage
- \doifvalidpdfimagefileelse\@@DriverImageFile
- {\checkpdfimagepagenumber
- \ifx\pdfimagepagenumber\empty\@EA\pdfimmediateximage\else\@EA\pdfximage\fi
- \ifdim\@@DriverImageWidth >\zeropoint \!!width \@@DriverImageWidth \fi
- \ifdim\@@DriverImageHeight>\zeropoint \!!height\@@DriverImageHeight\fi
- \pdfimagepagenumber
- \@@DriverImageBox
- {\@@DriverImageFile}
- \xdef\PDFimagereference{\the\pdflastximage}%
- \xdef\nofinsertpages{\the\pdflastximagepages}%
- \pdfrefximage\pdflastximage}
- {\framed[\c!width=\@@DriverImageWidth,\c!height=\@@DriverImageHeight]{\@@DriverImageFile}}%
- \egroup}
-
-\else
-
- \def\handlepdfimage
- {\bgroup
- \doifvalidpdfimagefileelse\@@DriverImageFile
- {\pdfimage
- \ifdim\@@DriverImageWidth >\zeropoint \!!width \@@DriverImageWidth \fi
- \ifdim\@@DriverImageHeight>\zeropoint \!!height \@@DriverImageHeight\fi
- {\@@DriverImageFile}}%
- {\framed[\c!width=\@@DriverImageWidth,\c!height=\@@DriverImageHeight]{\@@DriverImageFile}}%
- \egroup}
-
-\fi
-
-%D As we will see now, \PDFTEX\ not only directly supports
-%D \type{mps}, \type{png}, \type{pdf}, \type{jpg} but also
-%D \type{mov}. In \CONTEXT\ we support movie inserts in a way
-%D similar to figure inclusion. The next macro calls the
-%D general \PDF\ one.
-
-\definefileinsertion{tpd}{mov}{\doPDFinsertmov}
-\definefileinsertion{tpd}{avi}{\doPDFinsertmov}
-
-%D \macros
-%D {doinsertsoundtrack}
-%D
-%D We use numbers instead of labels to keep track of sounds.
-
-\definespecial\doinsertsoundtrack{\doPDFinsertsoundtrack}
-
-%D For the moment we don't test for alternatives that
-%D themselves have alternatives, especially cylcic
-%D dependencies.
-
-% some day we will do a proper check on bitmap depth,
-%
-% \pdfobj reserveobjnum\relax
-% \pdfximage colorspace \pdflastobj {some file}
-% ... \pdflastximagecolordepth ...
-% \immediate\pdfobj useobjnum \pdflastobj {some spec}
-
-\ifx\@@DriverImageBox\undefined \def\@@DriverImageBox{artbox} \fi
-
-\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
- {\doifvalidpdfimagefileelse\@@DriverImageFile
- {\ifvoid\foundexternalfigure
- \donetrue
- \else\ifx\PDFfigurereference\empty
- \donetrue
- \else
- % hm, is this still needed
- \doifinstringelse\filesuffix{\c!png,\c!jpg}\donetrue\donefalse
- \fi\fi}
- {\donefalse}%
- \ifdone
- \the\everyPDFximage
- \checkpdfimageattributes
- \checkpdfimagecolorspecs
- \checkpdfimagepagenumber
- \global\setbox\foundexternalfigure\hbox
- {\ifx\pdfimagepagenumber\empty\@EA\pdfimmediateximage\else\@EA\pdfximage\fi
- \pdfimageattributes
- \pdfimagecolorspecs
- \pdfimagepagenumber
- \@@DriverImageBox
- {\@@DriverImageFile}%
- \xdef\PDFimagereference{\the\pdflastximage}%
- \xdef\nofinsertpages{\the\pdflastximagepages}%
- \pdfrefximage\pdflastximage}%
- \xdef\analyzedfigurewidth {\the\wd\foundexternalfigure}%
- \xdef\analyzedfigureheight{\the\ht\foundexternalfigure}%
- \global\let\PDFfigurereference\empty
- \global\let\PDFimageattributes\empty
- \else
- \global\let\analyzedfigurewidth \!!zeropoint
- \global\let\analyzedfigureheight\!!zeropoint
- \fi}
-
-\else
-
- \def\dogetTPDfiguresize
- {\doifvalidpdfimagefileelse\@@DriverImageFile
- {\global\setbox\foundexternalfigure\vbox{\pdfimage{\@@DriverImageFile}}%
- \xdef\analyzedfigurewidth {\the\wd\foundexternalfigure}%
- \xdef\analyzedfigureheight{\the\ht\foundexternalfigure}}
- {\global\let\analyzedfigurewidth \!!zeropoint
- \global\let\analyzedfigureheight\!!zeropoint}}
-
-\fi
-
-\definefilechecker{tpd}{pdf}{\dogetTPDfiguresize}
-\definefilechecker{tpd}{png}{\dogetTPDfiguresize}
-\definefilechecker{tpd}{jpg}{\dogetTPDfiguresize}
-\definefilechecker{tpd}{jb2}{\dogetTPDfiguresize}
-
-\definespecial\dogetfiguresize
- {\dofilechecker{tpd}{\truegraphictype\@@DriverImageType}}
-
-%D \macros
-%D {doregisterfigure}
-%D
-%D Here is the fuzzy, very special dependant figure
-%D registration special. We need to refer to the innermost
-%D object (ximage).
-
-\ifnum\pdftexversion>13
-
- \definespecial\doregisterfigure#1#2%
- {\doifundefined{IM::#1::#2}
- {\setxvalue{IM::#1::#2}{\the\pdflastximage}}%
- \xdef\PDFfigurereference{\getvalue{IM::#1::#2}}}
-
-\fi
-
-%D \macros
-%D {doovalbox}
-%D
-%D Drawing frames with round corners is inherited from the
-%D main module.
-
-\definespecial\doovalbox {\doPDFovalbox}
-
-%D \macros
-%D {dostartgraymode,dostopgraymode,
-%D dostartrgbcolormode,dostartcmykcolormode,dostartgraycolormode,
-%D dostopcolormode,
-%D dostartrotation,dostoprotation,
-%D dostartscaling,dostopscaling,
-%D dostartmirroring,dostopmirroring,
-%D dostartnegative,dostopnegative,
-%D dostartoverprint,dostopoverprint}
-%D
-%D These are implemented in the main \PDF\ module.
-
-\definespecial\dostartgraymode {\doPDFstartgraymode}
-\definespecial\dostopgraymode {\doPDFstopgraymode}
-\definespecial\dostartrgbcolormode {\doPDFstartrgbcolormode}
-\definespecial\dostartcmykcolormode{\doPDFstartcmykcolormode}
-\definespecial\dostartgraycolormode{\doPDFstartgraycolormode}
-\definespecial\dostartspotcolormode{\doPDFstartspotcolormode}
-\definespecial\dostopcolormode {\doPDFstopcolormode}
-\definespecial\dostartrotation {\doPDFstartrotation}
-\definespecial\dostoprotation {\doPDFstoprotation}
-\definespecial\dostartscaling {\doPDFstartscaling}
-\definespecial\dostopscaling {\doPDFstopscaling}
-\definespecial\dostartmirroring {\doPDFstartmirroring}
-\definespecial\dostopmirroring {\doPDFstopmirroring}
-\definespecial\dostartnegative {\doPDFstartnegative}
-\definespecial\dostopnegative {\doPDFstopnegative}
-\definespecial\dostartoverprint {\doPDFstartoverprint}
-\definespecial\dostopoverprint {\doPDFstopoverprint}
-
-\definespecial\doregistercmykspotcolor{\doPDFregistercmykspotcolor}
-\definespecial\doregisterrgbspotcolor {\doPDFregisterrgbspotcolor}
-\definespecial\doregistergrayspotcolor{\doPDFregistergrayspotcolor}
-
-\definespecial\doregistercmykindexcolor{\doPDFregistercmykindexcolor}
-\definespecial\doregisterrgbindexcolor {\doPDFregisterrgbindexcolor}
-\definespecial\doregistergrayindexcolor{\doPDFregistergrayindexcolor}
-
-\definespecial\doregisterfigurecolor{\doPDFregisterfigurecolor}
-
-\definespecial\dostartnonecolormode{\doPDFstartnonecolormode}
-\definespecial\doregisternonecolor {\doPDFregisternonecolor}
-
-\def\doPDFregisterspotcolorname#1#2% no need for escape in luatex
- {\bgroup
- \let\ascii\empty
- \def\docommand##1%
- {\edef\ascii{\ascii
- \ifx\nexthandledtoken\space
- \letterhash20%
- \else\ifx\nexthandledtoken\blankspace
- \letterhash20%
- \else
- ##1%
- \fi\fi}}%
- \expanded{\handletokens#2}\with\docommand
- \letgvalue{@@pdf@@scn@@#1}\ascii
- \egroup}
-
-\def\doPDFregistersomespotcolor#1#2#3#4#5#6#7% name fractions names p's space domain function
- {\bgroup
- \let\spotpops\empty
- \ifcase#2\or
- %def\PDFspotcolornames{/Separation /#1}%
- \edef\PDFspotcolornames{/Separation /\executeifdefined{@@pdf@@scn@@#1}{#1}}%
- \def\PDFspotcolordomain{0.0 1.0}%
- \else
- \dorecurse{#2}{\edef\spotpops{\spotpops pop }}%
- \let\PDFspotcolornames \empty
- \let\PDFspotcolordomain\empty
- \def\dospotcolorcommand##1%
- {\edef\PDFspotcolornames {\PDFspotcolornames/\executeifdefined{@@pdf@@scn@@##1}{##1}\space}%
- \edef\PDFspotcolordomain{\PDFspotcolordomain 0.0 1.0\space}}%
- \processcommacommand[#3]\dospotcolorcommand
- \edef\PDFspotcolornames{/DeviceN [\PDFspotcolornames]}%
- \fi
- \immediate \pdfobj stream attr
- {/FunctionType 4 /Domain [\PDFspotcolordomain] /Range [#6]}{{\spotpops#7}}%
- \immediate \pdfobj
- {[\PDFspotcolornames\space /Device#5 \PDFobjref\pdflastobj]}%
- \dosetobjectreference{PDFCS}{#1}{\the\pdflastobj}%
- \appendtoPDFdocumentcolorspaces{/#1 \PDFobjref\pdflastobj}%
- \egroup}
-
-%D New and very experimental.
-
-% \def\doPDFregistersomeindexcolor#1#2#3#4#5#6#7% name fractions names p's space domain function
-% {\bgroup
-% \let\spotpops\empty
-% \dorecurse{#2}{\edef\spotpops{\spotpops exch pop\space}}%
-% \let\PDFspotcolornames \empty
-% \let\PDFspotcolordomain\empty
-% \def\docommand##1%
-% {\edef\PDFspotcolornames{\PDFspotcolornames/\executeifdefined{@@pdf@@scn@@##1}{##1}\space}%
-% \edef\PDFspotcolordomain{\PDFspotcolordomain 0.0 1.0\space}}%
-% \processcommacommand[#3,None]\docommand
-% \let\PDFcolorindexvector\empty
-% \def\docommand##1%
-% {\scratchdimen##1\points
-% \scratchdimen\recurselevel\scratchdimen
-% \scratchcounter\scratchdimen
-% \divide\scratchcounter \maxcard
-% \edef\PDFcolorindexvector{\PDFcolorindexvector\uchexnumbers\scratchcounter}}%
-% \dostepwiserecurse\zerocount{255}\plusone
-% {\rawprocesscommacommand[#4,1]\docommand
-% \xdef\PDFcolorindexvector{\PDFcolorindexvector\space}}%
-% \immediate \pdfobj stream attr
-% {/FunctionType 4 /Domain [\PDFspotcolordomain] /Range [#6]}{{\spotpops#7}}%
-% \immediate \pdfobj
-% {[/Indexed
-% [/DeviceN [\PDFspotcolornames] /Device#5 \PDFobjref\pdflastobj] %
-% 255 <\PDFcolorindexvector>]}%
-% \dosetobjectreference{PDFIX}{#1}{\the\pdflastobj}%
-% \appendtoPDFdocumentcolorspaces{/#1_INDEXED \PDFobjref\pdflastobj}%
-% \egroup}
-
-% we reverse the index; an alternative is to negate the graphic itself (\start/stop negative)
-
-\def\doPDFregistersomeindexcolor#1#2#3#4#5#6#7% name fractions names p's space domain function
- {\bgroup
- \let\spotpops\empty
- \dorecurse{#2}{\edef\spotpops{\spotpops exch pop\space}}%
- \let\PDFspotcolornames \empty
- \let\PDFspotcolordomain\empty
- \def\docommand##1%
- {%\edef\PDFspotcolornames {\PDFspotcolornames/##1\space}%
- \edef\PDFspotcolornames{\PDFspotcolornames/\executeifdefined{@@pdf@@scn@@##1}{##1}\space}%
- \edef\PDFspotcolordomain{\PDFspotcolordomain 0.0 1.0\space}}%
- \processcommacommand[#3,None]\docommand
- \let\PDFcolorindexvector\empty
- \def\docommand##1%
- {\scratchdimen##1\points
- \scratchdimen\recurselevel\scratchdimen
- \scratchcounter\scratchdimen
- \divide\scratchcounter \maxcard
- \edef\PDFcolorindexvector{\PDFcolorindexvector\uchexnumbers\scratchcounter}}%
- %\dostepwiserecurse\zerocount{255}\plusone
- \dostepwiserecurse{255}\zerocount\minusone % we need to negate
- {\rawprocesscommacommand[#4,1]\docommand
- \xdef\PDFcolorindexvector{\PDFcolorindexvector\space}}%
- \immediate \pdfobj stream attr
- {/FunctionType 4 /Domain [\PDFspotcolordomain] /Range [#6]}{{\spotpops#7}}%
- \immediate \pdfobj
- {[/Indexed
- [/DeviceN [\PDFspotcolornames] /Device#5 \the\pdflastobj\space0 R] %
- 255 <\PDFcolorindexvector>]}%
- \dosetobjectreference{PDFIX}{#1}{\the\pdflastobj}%
- \appendtoPDFdocumentcolorspaces{/#1_INDEXED \the\pdflastobj\space0 R}%
- \egroup}
-
-%D \macros
-%D {dostarttransparency,dostoptransparency}
-%D
-%D For transparency, we need to implement a couple of
-%D auxiliary macros. If needed, we will generalize them later.
-
-\definespecial\dostarttransparency{\doPDFstarttransparency}
-\definespecial\dostoptransparency {\doPDFstoptransparency}
-
-\PDFtransparencysupportedtrue
-
-\def\@@PDT{@PDT@}
-
-\ifx\PDFcurrenttransparency\undefined
- \newcount\PDFcurrenttransparency \PDFcurrenttransparency=0 % -1
-\fi
-
-\def\assignPDFtransparency#1#2%
- {\edef\PDFtransparencyidentifier{/Tr#1}%
- \edef\PDFtransparencyreference{\PDFobjref{#2}}}
-
-\def\presetPDFtransparency#1#2%
- {\initializePDFtransparency
- \executeifdefined{\@@PDT#1:#2}{\dopresetPDFtransparency{#1}{#2}}}
-
-\def\dopresetPDFtransparency#1#2%
- {\global\advance\PDFcurrenttransparency \plusone
- \immediate\pdfobj{\PDFtransparancydictionary{#1}{#2}{}}%
- \edef\PDFtransparencyidentifier{/Tr\the\PDFcurrenttransparency}%
- \edef\PDFtransparencyreference {\PDFobjref\pdflastobj}%
- \setxvalue{\@@PDT#1:#2}%
- {\noexpand\assignPDFtransparency{\the\PDFcurrenttransparency}{\the\pdflastobj}}%
- \appendtoPDFdocumentextgstates
- {\PDFtransparencyidentifier\space
- \PDFtransparencyreference\space}}
-
-\def\initializePDFtransparency
- {\immediate\pdfobj{\PDFtransparancydictionary{1}{1}{/AIS false}}%
- \xdef\PDFtransparencyresetidentifier{/Tr0}%
- \xdef\PDFtransparencyresetreference{\PDFobjref\pdflastobj}%
- \setxvalue{\@@PDT0:0}%
- {\noexpand\assignPDFtransparency{0}{\the\pdflastobj}}%
- \appendtoPDFdocumentextgstates
- {\PDFtransparencyresetidentifier\space
- \PDFtransparencyresetreference\space}%
- \global\let\initializePDFtransparency\relax}
-
-%D \macros
-%D {dostartclipping,dostopclipping}
-%D
-%D Clipping in \PDFTEX\ is rather trivial. We can even hook
-%D in \METAPOST\ without problems.
-
-\definespecial\dostartclipping#1#2#3%
- {\PointsToBigPoints{#2}\width
- \PointsToBigPoints{#3}\height
- \grabMPclippath{#1}{1}\width\height
- {0 0 m \width\space 0 l \width \height l 0 \height l}%
- \pdfliteral % PDFcode ?
- {q 0 w \MPclippath\space W n}}
-
-\definespecial\dostopclipping
- {\pdfliteral{Q n}} % PDFcode
-
-%D \macros
-%D {dosetupinteraction}
-%D
-%D Nothing special is needed to enable \PDF\ commands and
-%D interaction. We stick with a message.
-
-\definespecial\dosetupinteraction
- {\showmessage\m!interactions{21}{pdftex}}
-
-%D \macros
-%D {doresetgotowhereever,
-%D dostartthisisrealpage,dostartthisislocation,
-%D dostartgotorealpage,dostartgotolocation,dostartgotoJS}
-%D
-%D The interactions macros are the core of this module. We
-%D support both page destinations and named ones. We don't
-%D need the \type{\stop}||alternatives. We also don't need
-%D to set the special that sets the real page number.
-
-\definespecial\doresetgotowhereever {\doPDFresetgotowhereever}
-\definespecial\dostartthisislocation{\doPDFstartthisislocation}
-
-%D When going to a location, we obey the time and space saving
-%D boolean \type{\ifusepagedestination}. Named destinations are
-%D stripped and made robust. This all happens in the macros
-%D called for.
-
-\definespecial\dostartgotolocation{\doPDFstartgotolocation}
-\definespecial\dostartgotorealpage{\doPDFstartgotorealpage}
-\definespecial\dostartgotoJS {\doPDFstartgotoJS}
-
-\let\PDFpagexyzspec\empty % pdftex does not accept spec
-
-%D \macros
-%D {doflushJSpreamble}
-%D
-%D It does not make sense to duplicate common \JAVASCRIPT\
-%D functions, and therefore they can be predefined and must be
-%D output separately. Currently this special is not shared
-%D with the \ACROBAT\ one, simply because \DISTILLER\ does not
-%D yet support something \type{\pdfnames}.
-
-% \oneJSpreamblefalse % buggy in acrobat
-
-\definespecial\doflushJSpreamble#1%
- {\bgroup
- \let\compositeJScode\empty
- \def\docommand##1%
- {\edef\sanitizedJScode{\getJSpreamble{##1}}%
- \@EA\doPSsanitizeJScode\sanitizedJScode\to\sanitizedJScode
- \immediate\pdfobj {<< /S /JavaScript /JS (\sanitizedJScode) >>}%
- \edef\compositeJScode
- {\compositeJScode\space (##1) \PDFobjref\pdflastobj}}%
- \processcommalist[#1]\docommand
- \immediate\pdfobj{<< /Names [ \compositeJScode ] >>}%
- \pdfnames{/JavaScript \PDFobjref\pdflastobj}%
- \egroup}
-
-%D \macros
-%D {dostarthide,dostophide}
-%D
-%D Hiding parts of the document for printing is not yet
-%D supported by \PDF\ and therefore \PDFTEX.
-
-\definespecial\dostarthide{}
-\definespecial\dostophide {}
-
-%D \macros
-%D {dosetupscreen}
-%D
-%D Setting of the screen boundingbox involves some
-%D calculations. Here we also take care of (non) full screen
-%D startup. The dimensions are rounded. Because \PDFTEX\ and
-%D \ACROBAT\ handle setting the page dimensions in a
-%D different way, we do not share this special.
-
-\definespecial\dosetupscreen {\doPDFsetupscreen \pdfpageheight}
-
-\definespecial\dosetupartbox {\doPDFsetupartbox \pdfpageheight}
-\definespecial\dosetupcropbox {\doPDFsetupcropbox \pdfpageheight}
-\definespecial\dosetupbleedbox{\doPDFsetupbleedbox\pdfpageheight}
-\definespecial\dosetuptrimbox {\doPDFsetuptrimbox \pdfpageheight}
-
-%D \macros
-%D {dostartexecutecommand}
-%D
-%D \PDF\ viewers enable us to navigate using menus and shortcut
-%D keys. These navigational tools can also be accessed by using
-%D annotations. The next special takes care of inserting them.
-
-\definespecial\dostartexecutecommand{\doPDFstartexecutecommand}
-
-%D \macros
-%D {dosetupidentity}
-%D
-%D Documents can be tagged with an application accessible title
-%D and subtitle, the authorname, a date, the creator, keywords
-%D etc. For the moment \PDFTEX\ only supports the first three
-%D of these.
-
-\definespecial\dosetupidentity{\doPDFsetupidentity}
-
-%D \macros
-%D {dostartrunprogam}
-%D
-%D We can run a program form within a document, although this
-%D feature is rather weak, due to path problems and buggy
-%D argument passing.
-
-\definespecial\dostartrunprogram{\doPDFstartrunprogram}
-
-%D \macros
-%D {dostartgotoprofile, dostopgotoprofile,
-%D dobeginofprofile, doendofprofile}
-%D
-%D \CONTEXT\ user profiles and version control fall back on
-%D \PDF\ article threads. Unfortunately one cannot influence
-%D the view yet in an (for me) acceptable way.
-
-\definespecial\dostartgotoprofile{\doPDFstartgotoprofile}
-
-%D Some day, I'll reimplement threading in a useful way.
-%D Currently the viewers handle threads rather diffuse.
-
-\ifnum\pdftexversion>13
-
-\definespecial\dobeginofprofile#1#2#3#4%
- {\setPDFdestination{#1}%
- \doifsomething\PDFdestination
- {\pdfthread
- width #2 height #3
- attr {/Title (\PDFdestination)} % can be omitted
- name {\PDFdestination}}}
-
-\definespecial\doendofprofile%
- {}
-
-\fi
-
-%D \macros
-%D {doinsertbookmark}
-%D
-%D In \PDF\ bookmarks are the building blocks of a viewer
-%D provided sort of table of contents. \TEX\ has to provide
-%D the entry as well as the number of child entries. Strings
-%D need to be sanatized as good as possible to suit the default
-%D encoding. In \CONTEXT\ users can overrule this string by
-%D supplying an alternative one. Look at the macro called for
-%D to see how funny these bookmarks are defined.
-
-\definespecial\doinsertbookmark{\doPDFinsertbookmark}
-
-%D \macros
-%D {dostartobject,dostopobject,doinsertobject}
-%D
-%D Due to \PDF's object oriented character, we can include and
-%D reuse objects. These can be compared with \TEX's boxes. The
-%D \TEX\ counterpart is defined in the module \type{spec-dvi}.
-%D We don't use the dimensions here.
-%D
-%D The next solution is not that beautiful. Because objects are
-%D containers for whatever kind of content, graphics can be
-%D part of this content, and a graphic object can be part of
-%D the more general type. In practice this means that an ximage
-%D would be embedded in an xform, which in itself is not that
-%D big a problem, apart from a few bytes overhead. However, for
-%D reasons unknown to me alternative images must be pure
-%D ximages |<|indeed, somehow one cannot use a vector graphic
-%D as alternative|>| that are not embedded into forms, so this
-%D is why the object handler treats them different. This
-%D implies knowledge of the calling routines, especially the
-%D \type{FIG} trigger, that signals that we just embedded an
-%D image. Alternatively I could have introduced a dual object
-%D system, but the overhead in duplicate specials is currently
-%D not what we want. I'd rather implement a more mature
-%D object support system from scratch.
-
-\let\currentPDFresources\empty
-\let\PDFimageattributes \empty
-\let\PDFfigurereference \empty
-\let\PDFimagereference \empty
-
-\ifnum\pdftexversion>13
-
- \definespecial\dostartobject#1#2#3#4#5%
- {\bgroup
- \setbox\nextbox\vbox\bgroup
- \def\dodostopobject
- {\egroup
- \ifx\PDFimagereference\empty
- % We also flush page resources, since shared
- % resources end up there; otherwise transparencies
- % won't work in xforms; some day I will optimize
- % this.
- \the\everyPDFxform
- \finalizeobjectbox\nextbox
- \immediate\pdfxform
- resources {\currentPDFresources\the\pdfpageresources}%
- \nextbox
- \global\let\currentPDFresources\empty
- \dosetobjectreference{#1}{#2}{\the\pdflastxform}%
- \else
- \dosetobjectreference{#1}{#2}{-\PDFimagereference}%
- \global\let\PDFimagereference\empty
- \fi}}
-
- \definespecial\dostopobject
- {\dodostopobject
- \egroup}
-
- \definespecial\doresetobjects
- {\global\let\PDFimagereference\empty}
-
- \definespecial\doinsertobject#1#2%
- {\bgroup
- \doifobjectreferencefoundelse{#1}{#2}
- {\dogetobjectreference{#1}{#2}\PDFobjectreference
- \ifnum\PDFobjectreference<0
- \@EA\@EA\@EA\pdfrefximage\@EA\gobbleoneargument\PDFobjectreference
- \else
- \pdfrefxform\PDFobjectreference
- \fi}%
- {}%
- \egroup}
-
-\else
-
- \definespecial\dostartobject#1#2#3#4#5%
- {\bgroup
- \setbox\nextbox\vbox\bgroup
- \def\dodostopobject
- {\egroup
- \the\everyPDFxform
- \pdfform\nextbox
- \dosetobjectreference{#1}{#2}{\the\pdflastform}}}
-
- \definespecial\dostopobject
- {\dodostopobject
- \egroup}
-
- \definespecial\doinsertobject#1#2%
- {\bgroup
- \dogetobjectreference{#1}{#2}\PDFobjectreference
- \pdfrefform\PDFobjectreference
- \egroup}
-
-\fi
-
-\appendtoksonce
- \collectPDFresources
- \global\let\currentPDFresources\collectedPDFresources
-\to \everyPDFxform
-
-%D \macros
-%D {dosetpagetransition}
-%D
-%D Page transitions only make sence in presentations. They are
-%D passed as raw \PDF\ code to the page object. Take a look
-%D at the implementation to get an impression of the rubish
-%D passed on.
-
-\definespecial\dosetpagetransition{\doPDFsetpagetransition}
-
-%D The expansion is needed because else the \type{\pdfpageattr}
-%D token list flushes an unexpanded \type{\csname}. The
-%D \type{\global} is needed because the assignment can take
-%D place deeply buried (for instance in the \type{\shipout}
-%D box.
-
-%D \macros
-%D {doinsertcomment, doflushcomments}
-%D
-%D Text annotation, or comments, are provided too:
-
-\definespecial\doinsertcomment{\doPDFinsertcomment}
-\definespecial\doflushcomments{\doPDFflushcomments}
-
-%D \macros
-%D {dopresetlinefield,dopresettextfield,
-%D dopresetchoicefield,dopresetpopupfield,dopresetcombofield,
-%D dopresetpushfield,dopresetcheckfield,
-%D dopresetradiofield,dopresetradiorecord}
-%D
-%D \PDF\ offers extensive field support. The next bunch of
-%D definitions map the specials.
-
-\definespecial\dopresetlinefield {\doFDFpresetlinefield}
-\definespecial\dopresettextfield {\doFDFpresettextfield}
-\definespecial\dopresetchoicefield{\doFDFpresetchoicefield}
-\definespecial\dopresetpopupfield {\doFDFpresetpopupfield}
-\definespecial\dopresetcombofield {\doFDFpresetcombofield}
-\definespecial\dopresetpushfield {\doFDFpresetpushfield}
-\definespecial\dopresetcheckfield {\doFDFpresetcheckfield}
-\definespecial\dopresetradiofield {\doFDFpresetradiofield}
-\definespecial\dopresetradiorecord{\doFDFpresetradiorecord}
-
-%D \macros
-%D {dodefinefieldset,dogetfieldset,doiffieldset}
-%D
-%D Field sets, needed for reset and submit handling, are
-%D taken care of by:
-
-\definespecial\dodefinefieldset{\doFDFdefinefieldset}
-\definespecial\dogetfieldset {\doFDFgetfieldset}
-\definespecial\doiffieldset {\doFDFiffieldset}
-
-%D \macros
-%D {doregistercalculationset}
-%D
-%D The calculation order is defined using:
-
-\definespecial\doregistercalculationset{\doFDFregistercalculationset}
-
-%D \macros
-%D {doPDFdestination}
-%D
-%D Finally we implement some low level macros to deal with
-%D flushing \PDF\ code. First we handle the named destinations.
-
-\def\doPDFdestination#1%
- {\pdfdest name {#1}\PDFpageviewkey}
-
-%D \macros
-%D {doPDFaction,doPDFannotation,ifsharePDFactions}
-%D
-%D Next we handle annotations. All link annotations are
-%D implemented using the action dictionary. This enables us to
-%D use multiple actions. The second macro is for instance
-%D used for movie inclusion.
-
-\newif\ifsharePDFactions \sharePDFactionstrue
-
-% hm, due to some stupid optimization this feature has been
-% disabled for some time, watch out \lastPDFaction is to be
-% persistent
-
-\ifnum\pdftexversion>13
-
- \def\doPDFaction#1#2#3%
- {\xdef\lastPDFcontent{#3}%
- \ifcollectreferenceactions
- \global\let\lastPDFaction\lastPDFcontent
- \else
- \ifsharePDFactions
- \ifcase\similarreference\relax
- \xdef\lastPDFaction{<<\lastPDFcontent>>}%
- \or
- \immediate\pdfobj{<<\lastPDFcontent>>}%
- \xdef\lastPDFaction{\PDFobjref\pdflastobj}%
- \else
- % leave \lastPDFaction untouched
- \fi
- \else
- \xdef\lastPDFaction{<<\lastPDFcontent>>}%
- \fi
- \pdfannot
- width #1 height #2 depth \zeropoint
- {/Subtype /Link
- /Border [0 0 0]
- \ifhighlighthyperlinks \else /H /N \fi
- /A \lastPDFaction}%
- \fi}
-
-\else
-
- \def\doPDFaction#1#2#3%
- {\ifcollectreferenceactions
- \xdef\lastPDFaction{#3}%
- \else
- \ifsharePDFactions
- \ifcase\similarreference\relax
- \xdef\lastPDFaction{<<#3>>}%
- \or
- \immediate\pdfobj{<<#3>>}%
- \xdef\lastPDFaction{\PDFobjref\pdflastobj}%
- \else
- % leave \lastPDFaction untouched
- \fi
- \else
- \xdef\lastPDFaction{<<#3>>}%
- \fi
- \pdfannotlink % could be \pdfannot if not the - problem was there
- width #1 height #2 depth \zeropoint
- user {/Subtype /Link
- /Border [0 0 0]
- \ifhighlighthyperlinks \else /H /N \fi
- /A \lastPDFaction}%
- \pdfendlink
- \fi}
-
-\fi
-
-% pdftex and viewers give problems with this one (printing forms)
-%
-%\def\doPDFannotation#1#2#3%
-% {\pdfannot width #1sp height -#2sp depth \zeropoint{#3}}
-%
-% This is corrected in version 14. When this version is wide
-% spread, this will be cleaned up.
-
-\ifnum\pdftexversion>13
-
- \def\doPDFannotation#1#2#3%
- {\pdfannot width #1 height #2 depth \zeropoint{#3}}
-
-\else
-
- \def\doPDFannotation#1#2#3%
- {\hbox{\raise#2\hbox{\pdfannot width #1 height #2 depth \zeropoint{#3}}}}
-
-\fi
-
-%D \macros
-%D {doPDFannotationobject,doPDFactionobject}
-%D
-%D For field support we need annotation objects. Although in
-%D many cases we can do without indirect references (and use
-%D the last annotation object number directly), we take the
-%D save route.
-
-\def\doPDFannotationobject#1#2#3#4#5%
- {\doPDFannotation{#3}{#4}{#5}%
- \dosetobjectreference{#1}{#2}{\the\pdflastannot}}
-
-\def\doPDFactionobject#1#2#3#4#5%
- {\doPDFaction{#3}{#4}{#5}%
- \dosetobjectreference{#1}{#2}{\the\pdflastannot}}
-
-%D \macros
-%D {doPDFaddtocatalog,doPDFaddtoinfo,
-%D doPDFpageattribute,doPDFpagesattribute}
-%D
-%D Next some simple ones. Watch the global directive and the
-%D expansion in the page attribute macro.
-
-\def\doPDFaddtocatalog
- {\pdfcatalog}
-
-\def\doPDFaddtoinfo
- {\pdfinfo}
-
-\def\doPDFpageattribute#1%
- {\expanded{\global\pdfpageattr{#1\the\pdfpageattr}}}
-
-\def\doPDFpageresource#1%
- {\expanded{\global\pdfpageresources{#1\the\pdfpageresources}}}
-
-\def\doPDFpagesattribute#1%
- {\expanded{\global\pdfpagesattr{#1\the\pdfpagesattr}}}
-
-\def\doPDFresetpageattributes
- {\global\pdfpageattr\emptytoks}
-
-\def\doPDFresetpageresources
- {\global\pdfpageresources\emptytoks}
-
-%D \macros
-%D {doPDFbookmark}
-%D
-%D Well, isn't the next one ugly? Thanks to the \PDF\
-%D standard.
-
-\def\doPDFbookmark#1#2#3#4#5%
- {\doPDFgetpagereference{#4}\PDFobjectreference
- \pdfoutline
- user {<</S /GoTo /D [\PDFobjectreference\space\PDFpageviewwrd]>>}%
- \ifcase#2 \else count \ifcase#5-\fi#2 \fi
- {\ifPDFunicode<#3>\else#3\fi}}
-
-%D \macros
-%D {doPDFdictionaryobject,doPDFarrayobject}
-%D
-%D Where \PDFTEX\ has only one object primitive, optionally a
-%D stream one, \ACROBAT\ has several operators.
-
-\def\doPDFdictionaryobject#1#2#3%
- {\flushatshipout
- {\immediate\pdfobj{<< #3 >>}%
- \dosetobjectreference{#1}{#2}{\the\pdflastobj}}}
-
-\def\doPDFarrayobject#1#2#3%
- {\flushatshipout
- {\immediate\pdfobj{[ #3 ]}%
- \dosetobjectreference{#1}{#2}{\the\pdflastobj}}}
-
-% tricky .. too many xforms now
-%
-% \def\doreservePDFobject#1#2%
-% {\pdfobj reserveobjnum{}%
-% \driverreferenced\dosetobjectreference{#1}{#2}{\the\pdflastobj}}
-%
-% \def\doPDFreserveddictionaryobject#1#2#3%
-% {\doPDFgetobjectnumber{#1}{#2}\PDFobjectnumber
-% \immediate\pdfobj useobjnum \PDFobjectnumber {<< #3 >>}}
-%
-% \def\doPDFreservedarrayobject#1#2#3%
-% {\doPDFgetobjectnumber{#1}{#2}\PDFobjectnumber
-% \immediate\pdfobj useobjnum \PDFobjectnumber {[ #3 ]}}
-
-% \doreservePDFobject{FDF}{docuextgstates}
-% \doreservePDFobject{FDF}{colorspaces}
-% \doreservePDFobject{FDF}{docushades}
-
-%D \macros
-%D {defaultobjectreference,doPDFgetobjectreference}
-%D
-%D Because in \PDFTEX\ we have to construct the object
-%D references \type{N 0 R}, we can default to the non existing
-%D zero object number.
-
-\def\defaultobjectreference#1#2%
- {0}
-
-\def\doPDFgetobjectreference#1#2#3%
- {\dogetobjectreference{#1}{#2}#3%
- \edef#3{\ifx#3\empty null\else\PDFobjref{#3}\fi}}
-
-\def\doPDFgetobjectnumber#1#2#3%
- {\dogetobjectreference{#1}{#2}#3%
- \edef#3{\ifx#3\empty 0\else#3\fi}}
-
-% \def\doPDFgetobjectpage #1#2#3{..}
-% \def\doPDFgetobjectpagereference#1#2#3{..}
-
-\ifx\pdfpageref\undefined
-
- \def\doPDFgetpagereference % number macro
- {\installprogram{texutil --filter \jobname}%
- \gdef\doPDFgetpagereference##1{\doPDFgetobjectreference{PDFP}{\number##1}}% {##2}
- \doPDFgetpagereference}
-
-\else
-
- \def\doPDFgetpagereference#1#2% number macro
- {\edef#2{\ifnum#1>\zerocount\PDFobjref{\pdfpageref#1}\else null\fi}}
-
-\fi
-
-%D \macros
-%D {initializePDFnegative,initializePDFoverprint}
-%D
-%D Here follow some rather obscure macros. They will only
-%D come into action when one wants negated output.
-
-%D Todo: move code to fdf module
-
-\def\initializePDFnegative
- {\immediate\pdfobj stream attr {/FunctionType 4 /Range [0 1] /Domain [0 1]} {{1 exch sub}}%
- \immediate\pdfobj{<</Type /ExtGState /TR \PDFobjref\pdflastobj>>}%
- \appendtoPDFdocumentextgstates{/GSnegative \PDFobjref\pdflastobj}%
- \immediate\pdfobj{<</Type /ExtGState /TR /Identity>>}%
- \appendtoPDFdocumentextgstates{/GSpositive \PDFobjref\pdflastobj}%
- \global\let\initializePDFnegative\relax}
-
-\def\initializePDFoverprint
- {\immediate\pdfobj{<</Type /ExtGState /OP false /OPM 0>>}% /op defaults to /OP
- \appendtoPDFdocumentextgstates{/GSknockout \PDFobjref\pdflastobj}%
- \immediate\pdfobj{<</Type /ExtGState /OP true /OPM 1>>}% /op defaults to /OP
- \edef\PDFobjectreferenceB{\the\pdflastobj}%
- \appendtoPDFdocumentextgstates{/GSoverprint \PDFobjref\pdflastobj}%
- \global\let\initializePDFoverprint\relax}
-
-%D File embedding. Storing the stream identifier is needed
-%D to get access to the number. When typeset, the user can
-%D feed this number to \type {pdftosrc} and filter the
-%D file from the \PDF\ file.
-
-\let\PDFlaststreamobject \s!unknown
-%def\PDFlaststreamreference{0 0 R}
-
-\def\doPDFfilestreamobject#1#2#3#4%
- {\immediate\pdfobj stream file{#4}%
- \edef\PDFlaststreamobject{\the\pdflastobj}%
- \dosetobjectreference{PDFFS}{#2}{\PDFlaststreamobject}%
- \doPDFdictionaryobject{#1}{#2}{/Type /Filespec /F (#3) /EF <</F \PDFobjref\PDFlaststreamobject>>}}
-
-\def\doPDFgetfilestreamreference#1#2%
- {\doPDFgetobjectreference{PDFFS}{#1}#2}
-
-\def\doPDFfilestreamidentifier#1%
- {\doifsomething{#1}
- {\doPDFgetfilestreamreference{#1}\PDFobjectreference
- \@EA\beforesplitstring\PDFobjectreference\at{ }\to\PDFlaststreamobject
- \PDFlaststreamobject}}
-
-% %D We can set \METAPOST\ prologues to~1:
-
-\def\MPprologues{1}
-
-%D Experimental:
-
-\definespecial\dostartfonteffect{\doPDFstartfonteffect}
-\definespecial\dostopfonteffect {\doPDFstopfonteffect}
-
-%D Some MP stuff:
-
-\let\handleMPfshow\dohandleMPfshow % default anyway
-
-\ifnum\pdftexversion<14
-
- \def\setMPPDFobject#1#2% resources boxnumber
- {\def\getMPPDFobject{\box#2}}
-
-\else
-
- \def\setMPPDFobject#1#2% resources boxnumber
- {\the\everyPDFxform
- \finalizeobjectbox{#2}%
- \immediate\pdfxform resources{#1}#2%
- \edef\getMPPDFobject{\noexpand\pdfrefxform\the\pdflastxform}}
-
-\fi
-
-\let\getMPPDFobject\relax
-
-\definespecial\doinsertMPfile#1%
- {\doiffileelse{./#1}{\includeMPasPDF{./#1}}{\message{[MP #1]}}}
-
-%D Now we can finish this module.
-
-\stopspecials
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-tr.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-tr.mkii
deleted file mode 100644
index 19ddb7495a3..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-tr.mkii
+++ /dev/null
@@ -1,107 +0,0 @@
-%D \module
-%D [ file=spec-tr,
-%D version=1996.01.25,
-%D title=\CONTEXT\ Special Macros,
-%D subtitle=Thomas Rokicki's \DVIPS,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Especially the rotation proved to be incompatible with
-%D the default \POSTSCRIPT\ special driver. Many thanks to
-%D Gilbert van den Dobbelsteen for testing and hacking the
-%D \DVIPS\ source and pinpointing the problem.
-
-%D \macros
-%D {doinsertfile}
-%D
-%D We overrule the figure||insertion special. Things should
-%D be more accurate, but maybe someday \unknown
-
-\startspecials[rokicki]
-
-\def\@@insertpostscriptliteral {ps: }
-\def\@@insertpostscriptretain {" }
-
-%D Ugly but useful:
-
-\definefileinsertion{tr}{eps}
- {\bgroup
- \PointsToWholeBigPoints\@@DriverImageWidth \width
- \PointsToWholeBigPoints\@@DriverImageHeight\height
- \special
- {PSfile="\@@DriverImageFile"\space
- llx=\EPSllx\space
- lly=\EPSlly\space
- urx=\EPSurx\space
- ury=\EPSury\space
- \ifdim\@@DriverImageWidth >\zeropoint rwi=\width 0\space\fi
- \ifdim\@@DriverImageHeight>\zeropoint rhi=\height0 \fi}%
- \egroup}
-
-\definefileinsertion{tr}{mps}
- {\hbox
- {\convertMPcolors\@@DriverImageFile
- \dofileinsertion{tr}{eps}}}
-
-\definespecial\doinsertfile
- {\dofileinsertion{tr}\@@DriverImageType}
-
-%D Some MP stuff:
-
-\definespecial\doinsertMPfile#1%
- {\doiffileelse{./#1}{\includeMPasEPS{./#1}}{\message{[MP #1]}}}
-
-%D \macros
-%D {dostartrotation}
-%D
-%D Because \DVIPS\ uses a reverse rotation scheme, we have
-%D to add an extra \type{neg} to the default \POSTSCRIPT\
-%D rotation definition:
-
-\definespecial\dostartrotation#1% straight from the YandY manual / 1st neg added
- {\special
- {\@@insertpostscriptliteral
- gsave currentpoint currentpoint translate
- \number#1\space\space neg rotate neg exch neg exch translate}}
-
-\definespecial\dostoprotation
- {\special
- {\@@insertpostscriptliteral
- currentfont currentpoint grestore moveto setfont}}
-
-%D Drawing ovals in \DVIPS\ is complicated by the fact that
-%D the colors get reset. Therefore we need a more literal
-%D approach and therefore scale to local units. By redefining
-%D the retain constant into a macro, we can use the already
-%D present \POSTSCRIPT\ definition (see \type{spec-ps}).
-
-\definespecial\doovalbox#1#2#3#4#5#6#7#8% variant not yet supported
- {\bgroup
- \edef\@@insertpostscriptretain gsave%
- {\@@insertpostscriptliteral
- gsave
- Resolution 72 div
- VResolution 72 div neg scale currentpoint translate}%
- \dosomeovalbox{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}%
- \egroup}
-
-%D \macros
-%D {dosetuppaper}
-%D
-%D Relatively new:
-
-\definespecial\dosetuppaper#1#2#3%
- {\begingroup
- \!!dimena#2%
- \!!dimenb#3%
- \special{papersize=\the\!!dimena,\the\!!dimenb}%
- \endgroup}
-
-\stopspecials
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-tst.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-tst.mkii
deleted file mode 100644
index 4f580e7b403..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-tst.mkii
+++ /dev/null
@@ -1,48 +0,0 @@
-%D \module
-%D [ file=spec-tst,
-%D version=2002.12.08,
-%D title=\CONTEXT\ \PDF\ Macros,
-%D subtitle=Special Test Macro,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D The code is now merged into spec-*.mkii
-
-\doifnotmode{demo}{\endinput}
-
-\mainlanguage[vn]
-\enableregime[utf]
-\usetypescript[all][computer-modern][t5]
-
-\setupinteraction
- [state=start,
- title={Thử tiếng Việt},
- author={Tác Văn Giả},
- keyword={Thử tiếng Việt}]
-
-\placebookmarks[chapter,section,subsection]
-
-\starttext
-
-\placelist[chapter,section,subsection][alternative=c]
-
-\chapter{Thử tiếng Việt}
-
-\section {Mục thứ nhất}
-\subsection{Mục nhỏ thứ nhất} Thử tiếng Việt
-\subsection{Mục nhỏ thứ hai} Thử tiếng Việt
-
-\section {Mục thứ hai}
-\subsection{Mục nhỏ thứ nhất} Thử tiếng Việt
-\subsection{Mục nhỏ thứ hai} Thử tiếng Việt
-
-\section {Mục thứ ba}
-\subsection{Mục nhỏ thứ nhất} Thử tiếng Việt
-\subsection{Mục nhỏ thứ hai} Thử tiếng Việt
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-var.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-var.mkii
deleted file mode 100644
index 3641ba9599e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-var.mkii
+++ /dev/null
@@ -1,83 +0,0 @@
-%D \module
-%D [ file=spec-var,
-%D version=2003.10.10,
-%D title=\CONTEXT\ Special Macros,
-%D subtitle=Variables,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module used to be integrated in \type {spec-ini},
-%D but testing optimization is more convenient this way.
-
-\writestatus{loading}{ConTeXt Special Macros / Variables}
-
-% new approach, 'global' variables, since we run out of
-% arguments
-
-\unprotect
-
-% This variable holds a comma separated list of (supported) figure
-% types. It may be changes by other modules.
-
-\let\figuretypes\empty
-
-\ifx\undefined\@@DriverFieldName
-
- \letempty \@@DriverFieldName
- \letempty \@@DriverFieldWidth
- \letempty \@@DriverFieldHeight
- \letempty \@@DriverFieldDefault
- \letempty \@@DriverFieldNumber
- \letempty \@@DriverFieldNumber
- \letempty \@@DriverFieldStyle
- \letempty \@@DriverFieldColor
- \letempty \@@DriverFieldBackgroundColor
- \letempty \@@DriverFieldFrameColor
- \letempty \@@DriverFieldLayer
- \letempty \@@DriverFieldOption
- \letempty \@@DriverFieldAlign
- \letempty \@@DriverFieldClickIn
- \letempty \@@DriverFieldClickOut
- \letempty \@@DriverFieldRegionIn
- \letempty \@@DriverFieldRegionOut
- \letempty \@@DriverFieldAfterKey
- \letempty \@@DriverFieldFormat
- \letempty \@@DriverFieldValidate
- \letempty \@@DriverFieldCalculate
- \letempty \@@DriverFieldFocusIn
- \letempty \@@DriverFieldFocusOut
-
-\fi
-
-\ifx\undefined\@@DriverCommentLayer
-
- \letempty \@@DriverCommentLayer
-
-\fi
-
-\ifx\undefined\@@DriverAttachmentLayer
-
- \letempty \@@DriverAttachmentLayer
-
-\fi
-
-\ifx\undefined\@@DriverImageBox
-
- \letempty \@@DriverImageBox
- \letempty \@@DriverImageOptions
- \letempty \@@DriverImageWidth
- \letempty \@@DriverImageHeight
- \letempty \@@DriverImageFile
- \letempty \@@DriverImageLabel
- \letempty \@@DriverImageType
- \letempty \@@DriverImageMethod
- \letempty \@@DriverImagePage
-
-\fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-win.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-win.mkii
deleted file mode 100644
index e16984a56e6..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-win.mkii
+++ /dev/null
@@ -1,97 +0,0 @@
-%D \module
-%D [ file=spec-win,
-%D version=1996.01.25,
-%D title=\CONTEXT\ Special Macros,
-%D subtitle=\YandY's \DVIWINDO,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Remark: chained references are not yet implemented.
-
-%D \macros
-%D {dosetupinteraction,
-%D dostartthisislocation,
-%D dostartthisisrealpage,
-%D dostartgotolocation,
-%D dostartgotorealpage,
-%D dostartrunprogram,
-%D usepagedestinations}
-%D {}
-%D
-%D As told before, these were the first interactive specials.
-%D In those days, these kind of specials were still elegant
-%D and straightforward.
-
-\startspecials[dviwindo]
-
-\definespecial\dosetupinteraction%
- {\showmessage\m!interactions{21}{dviwindo}}
-
-\definespecial\dostartgotolocation#1#2#3#4#5#6%
- {\bgroup
- \doifelsenothing{#3}
- {\doifelsenothing{#4}
- {\!!doneafalse}
- {\doifparentfileelse{#4}
- {\!!doneafalse}
- {\!!doneatrue}}%
- \setreferencefilename#4\to\DVIfile
- \scratchdimen#1\edef\width {\the\scratchdimen\space}%
- \scratchdimen#2\edef\height{\the\scratchdimen\space}%
- \special
- {button:
- \width \height
- \if!!donea
- file: \DVIfile,
- \fi
- "#5"}}
- {}% nog uri afhandelen
- \egroup}
-
-\definespecial\dostartgotorealpage#1#2#3#4#5%
- {\bgroup
- \doifelsenothing{#3}
- {\doifelsenothing{#4}
- {\!!doneafalse}
- {\doifparentfileelse{#4}
- {\!!doneafalse}
- {\!!doneatrue}}%
- \setreferencefilename#4\to\DVIfile
- \scratchdimen#1\edef\width {\the\scratchdimen\space}%
- \scratchdimen#2\edef\height{\the\scratchdimen\space}%
- \special
- {button:
- \width \height
- \if!!donea
- file: \DVIfile,
- \fi
- \ifnum0#5=0 \else
- page: #5
- \fi}}
- {}% nog uri afhandelen
- \egroup}
-
-\definespecial\dostartthisislocation#1%
- {\special{mark: "#1"}}
-
-\definespecial\dostartthisisrealpage#1%
- {}
-
-\definespecial\dostartrunprogram#1#2#3#4%
- {\bgroup
- \scratchdimen#1\edef\width {\the\scratchdimen\space}%
- \scratchdimen#2\edef\height{\the\scratchdimen\space}%
- \special{button: \width \height launch: #3 #4}%
- \egroup}
-
-\let\doyandyinsertmov = \docommoninsertmov
-\let\dotrinsertmov = \docommoninsertmov
-
-\stopspecials
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-xet.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-xet.mkii
deleted file mode 100644
index 0cbd55ba7fd..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-xet.mkii
+++ /dev/null
@@ -1,66 +0,0 @@
-%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
-
-\definespecial\doinsertfile
- {\dofileinsertion{xtx}\@@DriverImageType}
-
-\definefileinsertion{xtx}{jpg}{\xtxhandleotherimage}
-\definefileinsertion{xtx}{png}{\xtxhandleotherimage}
-\definefileinsertion{xtx}{gif}{\xtxhandleotherimage}
-\definefileinsertion{xtx}{tif}{\xtxhandleotherimage}
-\definefileinsertion{xtx}{pdf}{\xtxhandlepdfimage }
-
-\def\checkpdfimagepagenumber
- {\edef\pdfimagepagenumber
- {\ifx\@@DriverImagePage\empty\else\ifnum\@@DriverImagePage>\zerocount
- \space page\space\@@DriverImagePage\space
- \fi\fi}}
-
-\def\xtxhandleotherimage
- {\XeTeXpicfile "\@@DriverImageFile"
- \ifdim\@@DriverImageWidth >\zeropoint \!!width \@@DriverImageWidth \space\fi
- \ifdim\@@DriverImageHeight>\zeropoint \!!height \@@DriverImageHeight \fi
- \relax}
-
-\def\xtxhandlepdfimage
- {\checkpdfimagepagenumber
- \XeTeXpdffile "\@@DriverImageFile"
- \pdfimagepagenumber
- \ifdim\@@DriverImageWidth >\zeropoint \!!width \@@DriverImageWidth \space\fi
- \ifdim\@@DriverImageHeight>\zeropoint \!!height \@@DriverImageHeight \fi
- \relax}
-
-\def\dogetXTXfiguresize
- {\setbox\foundexternalfigure\vbox{\XeTeXpicfile "\@@DriverImageFile"\relax}%
- \xdef\analyzedfigurewidth {\the\wd\foundexternalfigure}%
- \xdef\analyzedfigureheight{\the\ht\foundexternalfigure}}
-
-\def\dogetXTXpdfsize
- {\checkpdfimagepagenumber
- \setbox\foundexternalfigure\vbox{\XeTeXpdffile "\@@DriverImageFile" \pdfimagepagenumber\relax}%
- \xdef\analyzedfigurewidth {\the\wd\foundexternalfigure}%
- \xdef\analyzedfigureheight{\the\ht\foundexternalfigure}}
-
-\definefilechecker{xtx}{png}{\dogetXTXfiguresize}
-\definefilechecker{xtx}{jpg}{\dogetXTXfiguresize}
-\definefilechecker{xtx}{gif}{\dogetXTXfiguresize}
-\definefilechecker{xtx}{tif}{\dogetXTXfiguresize}
-\definefilechecker{xtx}{pdf}{\dogetXTXpdfsize }
-
-\definespecial\dogetfiguresize
- {\dofilechecker{xtx}\@@DriverImageType}
-
-%D The figure object system caused no end of headaches. They all
-%D went away with this single line:
-
-\setupexternalfigures[\c!object=\v!no]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-xtx.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-xtx.mkii
deleted file mode 100644
index 81b83e66318..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-xtx.mkii
+++ /dev/null
@@ -1,85 +0,0 @@
-%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}]
-
-\startspecials[xetex][reset,dpx]
-
-%D Actually, there's an intermediate ``\type{xdv}''
-%D output format, but by default, it's tranparently
-%D converted to \PDF\ by \XETEX.
-
-\setjobsuffix{pdf}
-
-%D Rotation looks fine.
-
-\definespecial\dostartrotation#1%
- {\special{x:gsave}\special{x:rotate #1}}
-
-\definespecial\dostoprotation
- {\special{x:grestore}}
-
-%D Scaling and mirroring are also fine.
-
-\definespecial\dostartscaling#1#2%
- {\special{x:gsave}\special{x:scale #1 #2}}
-
-\definespecial\dostopscaling
- {\special{x:grestore}}
-
-\definespecial\dostartmirroring
- {\special{x:gsave}\special{x:scale -1 1}}
-
-\definespecial\dostopmirroring
- {\special{x:grestore}}
-
-%D Colors are done with the \DVIPDFMX\ color model, which are
-%D inherited.
-
-%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 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}
-%
-% \starttypen
-% \dostarttransparency{fraction}{type}
-% \dostoptransparency
-% \stoptypen
-%
-% Although in \CONTEXT\ transparency is closely integrated
-% in the color drivers, in the end it is an independent
-% feature.
-
-%\installspecial [\dostarttransparency] [or] [2]
-%\installspecial [\dostoptransparency] [or] [0]
-
-%D \macros
-%D {doloadmapfile,doloadmapline,doresetmapfilelist}
-%D
-%D \XETEX\ 0.91 allows map file additions, via a special.
-
-\definespecial\doresetmapfilelist{\special{x:fontmapfile original-empty.map}}
-\definespecial\doloadmapfile #1#2{\special{x:fontmapfile #1#2}}
-\definespecial\doloadmapline #1#2{\special{x:fontmapline #1#2}}
-
-%D \macros
-%D {dosetuppaper}
-
-\ifx\pdfpagewidth\undefined \else
- \definespecial\dosetuppaper#1#2#3%
- {\global\pdfpagewidth #2\relax
- \global\pdfpageheight#3\relax}
-\fi
-
-\stopspecials
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/spec-yy.mkii b/Master/texmf-dist/tex/context/base/mkii/spec-yy.mkii
deleted file mode 100644
index b5a1d590b08..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/spec-yy.mkii
+++ /dev/null
@@ -1,90 +0,0 @@
-%D \module
-%D [ file=spec-yy,
-%D version=1996.01.25,
-%D title=\CONTEXT\ Special Macros,
-%D subtitle=\YandY's \DVIPSONE\ and \DVIWINDO,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D \macros
-%D {dostartgraymode,dostopgraymode,
-%D dostartrgbcolormode,dostartcmykcolormode,dostartgraycolormode,dostopcolormode,
-%D doinsertfile}
-%D
-%D We implement a nice and simple figure||insertion special
-%D and make use of \YandY's color specials. Otherwise \DVIWINDO\
-%D would not show colors.
-
-\startspecials[yandy]
-
-\def\@@insertpostscriptliteral {ps: }
-\def\@@insertpostscriptretain {" } % this was: {postscript}
-
-\definespecial\dostartgraymode#1%
- {\special{color gray #1}}
-
-\definespecial\dostopgraymode%
- {\special{color gray 0}}
-
-\definespecial\dostartrgbcolormode#1#2#3%
- {\special{color rgb #1 #2 #3}}
-
-\definespecial\dostartcmykcolormode#1#2#3#4%
- {\special{color cmyk #1 #2 #3 #4}}
-
-\definespecial\dostartgraycolormode#1%
- {\special{color gray #1}}
-
-\definespecial\dostopcolormode%
- {\special{color gray 0}}
-
-% \definefileinsertion{yy}{eps}%
-% {\PointsToBigPoints\@@DriverImageWidth \width
-% \PointsToBigPoints\@@DriverImageHeight\height
-% \special
-% {psfile=\@@DriverImageFile\space
-% %hscale=100\space
-% %vscale=100\space
-% hoffset=\width\space
-% voffset=\height}}
-
-\definefileinsertion{tr}{eps}
- {\bgroup
- \PointsToWholeBigPoints\@@DriverImageWidth \width
- \PointsToWholeBigPoints\@@DriverImageHeight\height
- \special
- {PSfile="\@@DriverImageFile"\space
- llx=\EPSllx\space
- lly=\EPSlly\space
- urx=\EPSurx\space
- ury=\EPSury\space
- \ifdim\@@DriverImageWidth >\zeropoint rwi=\width 0\space\fi
- \ifdim\@@DriverImageHeight>\zeropoint rhi=\height0 \fi}%
- \egroup}
-
-\definefileinsertion{yy}{mps}
- {\hbox
- {\includeMPfonts \@@DriverImageFile
- \convertMPcolors\@@DriverImageFile
- \dofileinsertion{yy}{eps}}}
-
-\definefileinsertion{yy}{tif}
- {\special{insertimage:
- \@@DriverImageFile \space
- \@@DriverImageWidth\space
- \@@DriverImageHeight}}
-
-\definespecial\doinsertfile
- {\dofileinsertion{yy}\@@DriverImageType}
-
-\def\MPprologues{1}
-\def\MPOSTdriver{dvipsone}
-
-\stopspecials
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-blk.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-blk.mkii
deleted file mode 100644
index b6056769c87..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/strc-blk.mkii
+++ /dev/null
@@ -1,548 +0,0 @@
-%D \module
-%D [ file=strc-blk, % split off core-buf.tex
-%D version=2000.01.05,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Blockmoves,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% investigate etex's \readline and \scantokens
-
-\writestatus{loading}{ConTeXt Structure Macros / Blockmoves}
-
-\unprotect
-
-\def\blockversion {1996.03.10}
-
-\def\@@blockerrormessage
- {\showmessage\m!textblocks1\empty
- \global\let\@@blockerrormessage\relax}
-
-\def\thisisblockversion#1%
- {\doifnot\blockversion{#1}{\@@blockerrormessage\endinput}}
-
-\def\stopcopyingblocks
- {\ifcopyingblocks
- \immediate\closeout\outblocks
- \copyblockfile
- \global\copyingblocksfalse
- \fi}
-
-\def\dodosetblockcounters[#1]#2%
- {\expanded{\setvalue{\??se\s!old#2}{\@@filterheadpart[#1]}}%
- \doifnot{#2}\lastsection
- {\expanded{\dodosetblockcounters[\@@filtertailpart[#1]]}%
- {\getvalue{\??se#2\c!after}}}} % ????
-
-\def\dosetblockcounters[#1]%
- {\ifblockpermitted
- \expanded{\dodosetblockcounters[\@@filtersecondpart[#1]]}\firstsection
- \expanded{\setsectiontype[\@@filterfirstpart[#1]]}%
- \def\@@sectionvalue##1{\getvalue{\??se\s!old##1}}%
- \let\@@sectionconversion\secondoftwoarguments
- \fi}
-
-\let\blockstatus\empty
-
-\def\setblockcounters
- {\ifx\blockstatus\empty \else
- \@EA\dosetblockcounters\@EA[\blockstatus]%
- \fi}
-
-\def\getblockstatus#1%
- {\dosetfilterlevel{\@@bscriterium}\empty
- \expanded{\doifblklevelelse[#1\sectionseparator\sectionseparator0]}
- {\global\blockpermittedtrue}
- {\global\blockpermittedfalse}%
- \def\blockstatus{#1}}
-
-\def\setupblockparameters
- {\dodoubleargument\dosetupblockparameters}
-
-\def\dosetupblockparameters[#1][#2]%
- {\getparameters[\??tb#1][#2]}
-
-\def\blockparameter#1#2%
- {\@EA\csname\ifcsname\??tb#1#2\endcsname\??tb#1#2\else\s!empty\fi\endcsname}
-
-\ifx\outblocks\undefined \newwrite\outblocks \fi
-\ifx\inpblocks\undefined \newread \inpblocks \fi
-\ifx\tmpblocks\undefined \newwrite\tmpblocks \fi
-\ifx\blockbox \undefined \newbox \blockbox \fi
-
-\newif\ifcopyingblocks
-\newif\ifblockpermitted
-\newif\iftmpblockstarted
-\newif\ifoldinbijlagen
-\newif\ifdoingblocks
-
-\newcount\blocklevel
-
-\def\setblocklevel#1% sign
- {\global\advance\blocklevel #11
- \ifcase\blocklevel\doingblocksfalse\else\doingblockstrue\fi}
-
-\def\opentmpblock
- {\immediate\openout\tmpblocks\TEXbufferfile{\f!utilityfilename\the\blocklevel}}
-
-\def\closetmpblock
- {\immediate\write\tmpblocks{}% een lege regel is handig voor \par commando's
- \immediate\closeout\tmpblocks}
-
-\def\writetmpblock#1%
- {\iftmpblockstarted
- \immediate\write\tmpblocks{#1}%
- \else
- \doifsomething{#1}
- {\tmpblockstartedtrue
- \immediate\write\tmpblocks{\string#1}}%
- \fi}
-
-\def\startcopyingblocks
- {\global\copyingblocksfalse}
-
-\def\checkcopyingblocks
- {\ifcopyingblocks
- \else
- \immediate\openout\outblocks\f!utilityfilename.\f!blockextension%
- \immediate\write\outblocks{\string\thisisblockversion{\blockversion}}%
- \immediate\write\outblocks{\string\thisissectionseparator{\sectionseparator}}%
- \global\copyingblockstrue
- \fi}
-
-\def\stopcopyingblocks
- {\ifcopyingblocks
- \immediate\closeout\outblocks
- \copyblockfile
- \global\copyingblocksfalse
- \fi}
-
-\def\nomoreblocks
- {\stopcopyingblocks}
-
-\def\copyblockfile
- {\ifcopyingblocks
- \begingroup
- \showmessage\m!textblocks2{\jobname.\f!blockextension}%
- \openlocin\inpblocks{\f!utilityfilename.\f!blockextension}%
- \immediate\openout\outblocks\jobname.\f!blockextension
- \setupcopyblock
- \catcode`\^^M=\@@ignore\relax
- \def\copynextline
- {\read\inpblocks to \!!stringa
- \immediate\write\outblocks{\!!stringa}%
- \ifeof\inpblocks\else\expandafter\copynextline\fi}%
- \copynextline
- \immediate\closein\inpblocks
- \immediate\closeout\outblocks
- \immediate\openout\tmpblocks\f!utilityfilename.\f!blockextension
- \immediate\closeout\tmpblocks
- \endgroup
- \fi}
-
-\def\loadallblocks#1%
- {\beginrestorecatcodes
- \catcode`\^^M=\@@endofline\relax
- \readjobfile{#1.\f!blockextension}
- {\showmessage\m!textblocks3{#1.\f!blockextension}}
- {\showmessage\m!textblocks4\empty}%
- \endrestorecatcodes}
-
-\def\setupcopyblock
- {\setcatcodetable\vrbcatcodes
- \obeylines}
-
-\def\writeoutblocks
- {\immediate\write\outblocks}
-
-\long\def\processnextblocklineAB#1% #2#3%
- {\defconvertedargument\next{#1 }%
- \doifinstringelse\endofblockA\next
- \firstoftwoarguments
- {\doifinstringelse\endofblockB\next
- \firstoftwoarguments\secondoftwoarguments}}
-
-\bgroup
-\obeylines
-\long\gdef\copyblocklineAB#1
- {\processnextblocklineAB{#1}\closeblock{\writeoutblocks{#1}\writetmpblock{#1}\copyblocklineAB}}
-\long\gdef\skipblocklineAB#1
- {\processnextblocklineAB{#1}\closeblock\skipblocklineAB}
-\egroup
-
-\long\def\processnextblockline#1% #2#3%
- {\defconvertedargument\next{#1 }%
- \ifx\next\emptybufferline
- \expandafter\secondoftwoarguments% #3%
- \else
- \emptybufferlinefalse
- \doifinstringelse\endofblock\next
- {\expandafter\firstoftwoarguments }% #2}
- {\expandafter\secondoftwoarguments}% #3}%
- \fi}
-
-\bgroup
-\obeylines
-\long\gdef\copyblockline#1
- {\processnextblockline{#1}\closeblock{\writeoutblocks{#1}\writetmpblock{#1}\copyblockline}}
-\long\gdef\skipblockline#1
- {\processnextblockline{#1}\closeblock\skipblockline}
-\egroup
-
-\def\skipblock#1%
- {\checkcopyingblocks
- \defconvertedcommand\endofblock{\string\thiswasblock{#1}}% command expands once !
- \let\openblock\begingroup
- \let\closeblock\endgroup
- \openblock
- \setupcopyblock
- \skipblockline}
-
-\let\doafterblock \gobbletwoarguments
-\let\dobeforeblock\gobbletwoarguments
-
-\def\thisisblock#1%
- {\executeifdefined{\s!thisisblock#1}{\skipblock{#1}}}
-
-\def\thiswasblock#1%
- {\getvalue{\s!thiswasblock#1}}
-
-\def\saveblock#1#2%
- {\checkcopyingblocks
- \obeylines
- \@EA\defconvertedcommand\@EA\endofblockA\@EA{\@EA\string\csname\e!end#1\endcsname}%
- \defconvertedcommand\endofblockB{\string\endblock[#1]}% % MULTI LINGUAL MAKEN
- \def\openblock
- {\dobeforeblock{#1}{#2}%
- \opentmpblock
- \begingroup
- \makesectionformat
- \immediate\write\outblocks{}%
- \immediate\write\outblocks{\string\thisisblock{#1}{\sectionformat}[#2]}}%
- \def\closeblock
- {\immediate\write\outblocks{}% handig voor \par commando's
- \immediate\write\outblocks{\string\thiswasblock{#1}}%
- \endgroup
- \closetmpblock
- \doafterblock{#1}{#2}%
- \egroup}%
- \openblock
- \setupcopyblock
- \copyblocklineAB}
-
-\def\copyblock
- {\let\opentmpblock\empty
- \let\closetmpblock\empty
- \let\writetmpblock\gobbleoneargument
- \saveblock}
-
-\def\loadoneblock
- {\edef\blockfilename{\TEXbufferfile{\f!utilityfilename\the\blocklevel}}%
- \setblocklevel+%
- \readjobfile\blockfilename\donothing\donothing
- \setblocklevel-}%
-
-\def\dodefineblock[#1]%
- {\bypassblock[#1]%
- \keepblocks[#1]%
- \setupblock
- [#1]
- [\c!before=\blank,
- \c!after=\blank,
- \c!inner=,
- \c!style=,
- \c!file=\jobname]}
-
-% \def\defineblock
-% {\dosingleargumentwithset\dodefineblock}
-
-\def\defineblock
- {\dosingleargument\dodefineblock}
-
-\def\dosetupblock[#1][#2]%
- {\getparameters[\??tb#1][#2]}
-
-\def\setupblock
- {\dodoubleargumentwithset\dosetupblock}
-
-\def\bypassblock[#1]%
- {\setvalue{\s!thisisblock#1}##1[##2]{\skipblock{#1}}}
-
-\def\dohideblock[#1][#2][#3]%
- {\doifassignmentelse{#3}
- {\dodohideblock[#1][#2][][#3]}
- {\dodohideblock[#1][#2][#3][]}}
-
-\def\dodohideblock[#1][#2][#3][#4]%
- {\doifelsenothing{#2}
- {\global\blockpermittedfalse
- \edef\blocktitle{#1}}
- {\doifelsenothing{#3}
- {\global\blockpermittedtrue
- \edef\blocktitle{#1}}
- {\doifcommonelse{#2}{#3}
- {\global\blockpermittedfalse
- \edef\blocktitle{#1:#2}}
- {\global\blockpermittedtrue
- \edef\blocktitle{#1:#3}}}}%
- \ifblockpermitted
- \showwarning\m!textblocks5\blocktitle
- \def\next
- {\def\dobeforeblock####1####2%
- {\begingroup}%
- \def\doafterblock####1####2%
- {\endgroup
- \doexecuteloadedblock{#1}{#4}}%
- \saveblock{#1}{#3#4}}%
- \else
- \doifinsetelse{+}{#3}
- {\showwarning\m!textblocks6\blocktitle
- \def\next
- {\def\dobeforeblock####1####2%
- {\begingroup
- \visiblefalse}%
- \def\doafterblock####1####2%
- {{\setbox0\vbox
- {\catcode`\^^M=\@@endofline\relax
- \loadoneblock
- \par}}%
- \endgroup}%
- \saveblock{#1}{#3#4}}}%
- {\showwarning\m!textblocks7\blocktitle
- \def\next
- {\def\dobeforeblock####1####2%
- {\begingroup
- \globaldefs\minusone}%
- \def\doafterblock####1####2%
- {\endgroup}%
- \copyblock{#1}{#3#4}}}%
- \fi
- \next}
-
-\def\dohideblocks[#1][#2]%
- {\def\docommand##1%
- {\setvalue{\e!begin##1}%
- {\bgroup\obeylines\dotripleempty\dohideblock[##1][#2]}}%
- \processcommalist[#1]\docommand}
-
-\def\hideblocks
- {\dodoubleempty\dohideblocks}
-
-\def\doexecuteloadedblock#1#2%
- {\blockpermittedtrue % ?
- \bgroup % before \c!before (think of: \c!before=\startitemize)
- \dosetupblockparameters[#1][#2]% voor 'voor'?
- \getvalue{\??tb#1\c!before}%
- \dostartattributes{\??tb#1}\c!style\c!color\empty
- \visibletrue
- \catcode`\^^M=\@@endofline\relax
- \getvalue{\??tb#1\c!inner}%
- \ignorespaces
- \loadoneblock
- % \par moved
- \dostopattributes
- \getvalue{\??tb#1\c!after}%
- \par
- \egroup}
-
-\def\dokeepblock[#1][#2][#3]%
- {\doifassignmentelse{#3}
- {\dodokeepblock[#1][#2][][#3]}
- {\dodokeepblock[#1][#2][#3][]}}
-
-\def\dodokeepblock[#1][#2][#3][#4]%
- {\doifelsenothing{#2}
- {\global\blockpermittedtrue
- \edef\blocktitle{#1}}
- {\doifcommonelse{#2}{#3}
- {\global\blockpermittedtrue
- \edef\blocktitle{#1:#2}}
- {\doifinsetelse\v!all{#2}
- {\doifelsenothing{#3}
- {\global\blockpermittedtrue
- \edef\blocktitle{#1}}
- {\global\blockpermittedfalse
- \edef\blocktitle{#1:#3}}}
- {\global\blockpermittedfalse
- \doifelsenothing{#3}
- {\edef\blocktitle{#1}}
- {\edef\blocktitle{#1:#3}}}}}%
- \ifblockpermitted
- \showwarning\m!textblocks8\blocktitle
- \def\dobeforeblock##1##2%
- {\begingroup}%
- \def\doafterblock##1##2%
- {\endgroup
- \doexecuteloadedblock{#1}{#4}}%
- \else
- \showwarning\m!textblocks9\blocktitle
- \fi
- \saveblock{#1}{#3#4}}
-
-\def\dokeepblocks[#1][#2]%
- {\def\docommand##1%
- {\setvalue{\e!begin##1}%
- {\bgroup\obeylines\dotripleempty\dokeepblock[##1][#2]}}%
- \processcommalist[#1]\docommand}
-
-\def\keepblocks
- {\dodoubleempty\dokeepblocks}
-
-\newconditional\processblockstatus
-\newconditional\dummyblockstatus
-\newconditional\blockassignmentstatus
-
-\def\dodouseblock#1#2#3#4%
- {\getblockstatus{#2}%
- \ifblockpermitted
- \setfalse\dummyblockstatus
- \doifassignmentelse{#3}
- {\settrue \blockassignmentstatus}
- {\setfalse\blockassignmentstatus}%
- \doifelsenothing{#4}
- {\edef\blocktitle{#1}}
- {\ifconditional\blockassignmentstatus
- \edef\blocktitle{#1}%
- \else
- \doifnotcommon{#3}{#4}
- {\ifconditional\processblockstatus
- \settrue\dummyblockstatus
- \else
- \global\blockpermittedfalse
- \fi}%
- \edef\blocktitle{#1:#3}%
- \fi}%
- \else
- \edef\blocktitle{#1}%
- \fi
- \ifblockpermitted
- \setblocklevel+%
- \ifconditional\blockassignmentstatus \else
- \doifinset{-}{#3}{\settrue\dummyblockstatus}%
- \fi
- \ifconditional\dummyblockstatus
- \showwarning\m!textblocks{10}\blocktitle
- \setvalue{\s!thiswasblock#1}%
- {\removeunwantedspaces
- \par
- \egroup
- \setblocklevel-}%
- \def\next
- {\setbox0\vbox\bgroup
- \ifconditional\blockassignmentstatus
- \dosetupblockparameters[#1][#3]%
- \fi}%
- \else
- \showwarning\m!textblocks{11}\blocktitle
- \setvalue{\s!thiswasblock#1}%
- {\removeunwantedspaces
- % \par moved
- \dostopattributes
- \getvalue{\??tb#1\c!after}%
- \par
- \egroup
- \setblocklevel-}%
- \def\next
- {\bgroup
- \ifconditional\blockassignmentstatus
- \dosetupblockparameters[#1][#3]%
- \fi
- \getvalue{\??tb#1\c!before}%
- \dostartattributes{\??tb#1}\c!style\c!color\empty
- \visibletrue
- \getvalue{\??tb#1\c!inner}%
- \ignorespaces}%
- \fi
- \else
- \def\next
- {\showwarning\m!textblocks{12}\blocktitle
- \skipblock{#1}}%
- \fi
- \next}
-
-\def\douseblock[#1][#2]%
- {\setvalue{\s!thisisblock#1}##1[##2]{\dodouseblock{#1}{##1}{##2}{#2}}}
-
-\def\dodouseblocks[#1][#2]%
- {\def\docommand##1%
- {\douseblock[##1][#2]}%
- \processcommalist[#1]\docommand
- \dogetcommalistelement1\from#1\to\commalistelement
- \doifdefined{\??tb\commalistelement\c!file}
- {\loadallblocks{\getvalue{\??tb\commalistelement\c!file}}}%
- \endgroup}
-
-\def\douseblocks
- {\begingroup
- \doassign[\??bs][\c!criterium=\v!all]%
- \dodoubleempty\dodouseblocks}
-
-\def\useblocks
- {\setfalse\processblockstatus\douseblocks}
-
-\def\processblocks
- {\settrue \processblockstatus\douseblocks}
-
-\def\doselectblocks[#1][#2][#3]%
- {\begingroup
- \doifelsenothing{#3}
- {\getparameters[\??bs][\c!criterium=\v!all,#2]%
- \dodouseblocks[#1][]}
- {\getparameters[\??bs][\c!criterium=\v!all,#3]%
- \dodouseblocks[#1][#2]}}%
-
-\def\selectblocks
- {\dotripleempty\doselectblocks}
-
-\def\beginblock[#1]% % we also check \endblock[..]
- {\getvalue{\e!begin#1}}
-
-\def\forceblocks[#1]%
- {\def\docommand##1%
- {\setvalue{\e!begin##1}%
- {\setblocklevel+\bgroup
- \dodoubleempty\doforceblock[##1]}%
- \setvalue{\e!end##1}%
- {\dostopattributes
- \getvalue{\??tb##1\c!after}%
- \egroup\setblocklevel-}}%
- \processcommalist[#1]\docommand}
-
-\def\doforceblock[#1][#2]%
- {\doifassignmentelse{#2}
- {\settrue \blockassignmentstatus}
- {\setfalse\blockassignmentstatus}%
- \ifconditional\blockassignmentstatus
- \dosetupblockparameters[#1][#2]%
- \fi
- \getvalue{\??tb#1\c!before}%
- \dostartattributes{\??tb#1}\c!style\c!color\empty
- \getvalue{\??tb#1\c!inner}%
- \ignorespaces}
-
-\def\bypassblocks[#1]%
- {\def\docommand##1%
- {\setvalue{\e!begin##1}%
- {\setblocklevel+\bgroup
- \obeylines % here, since we look ahead
- \dodoubleempty\dobypassblock[##1]}%}%
- \setvalue{\e!end##1}%
- {}}%
- \processcommalist[#1]\docommand}
-
-\def\dobypassblock[#1][#2]%
- {\def\closeblock
- {\egroup\setblocklevel-}%
- \checkcopyingblocks
- \obeylines
- \@EA\defconvertedcommand\@EA\endofblockA\@EA{\@EA\string\csname\e!end#1\endcsname}%
- \defconvertedcommand\endofblockB{\string\endblock[#1]} % MULTI LINGUAL MAKEN
- \setupcopyblock
- \skipblocklineAB}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-des.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-des.mkii
deleted file mode 100644
index e699df9ea1d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/strc-des.mkii
+++ /dev/null
@@ -1,921 +0,0 @@
-%D \module
-%D [ file=strc-des,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Descriptions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Structure Macros / Descriptions}
-
-%D In order to be more flexible with theorems Aditya Mahajan added
-%D support for titles and endsymbols. At the same time we some more
-%D flexible support for inheriting numbers was added.
-
-%D \startbuffer
-%D \defineenumeration[one]
-%D \defineenumeration[two] [one]
-%D \defineenumeration[three] [number=one,style=slanted]
-%D \defineenumeration[four] [three]
-%D \defineenumeration[five] [three] [number=five]
-%D
-%D \startone test test 1 \stopone
-%D \starttwo test test 2 \stoptwo
-%D \startthree test test 3 \stopthree
-%D \startfour test test 4 \stopfour
-%D \startfive test test 1 \stopfive
-%D \stopbuffer
-%D
-%D \typebuffer \start \getbuffer \stop
-
-\unprotect
-
-% Dit kan en moet dus anders:
-%
-% \start... : \vbox\bgroup
-% \stop... : \egroup
-% llap enz.
-% geen indent!
-%
-% enz. enz.
-%
-% Op die manier is meer mogelijk en worden \par's geskipt.
-%
-% De macro \??dd#1\s!do\c!commando levert de koppeling tussen
-% \doornummeren en \doordefinieren. Deze constructie is nodig
-% omdat doornummeren geen argument heeft en omdat subnummers
-% niet worden genest binnen het hogere niveau.
-%
-% herimplementeren met \nextbox en \unhbox\unvbox
-
-% list and titles are experiental
-%
-% \definedescription[test] [location=left,hang=4,headalign={right},distance=1em,list=test]
-% \defineenumeration[lemma][title=yes,right=:,textdistance=1em, location=top, titlestyle=\bs,list=lemma]
-% \defineenumeration[ammel][title=yes,right=:,textdistance=.5em,location=left,titlestyle=\it,width=9em]
-%
-% \placelist[enumeration:lemma]
-% \placelist[description:test][width=0pt]
-%
-% \starttest {something something something} \input zapf \stoptest
-% \startlemma {with a title of a certain length} \input tufte \stoplemma
-% \startammel {with a title} \input zapf \stopammel
-%
-% \defineenumeration[lemma][...]
-% \defineenumeration[titledlemma][lemma][title=yes,right=:,text=lemma,list=lemma]
-
-\newbox\@@descriptionbox
-
-\def\descriptionparameter#1{\csname\??dd\currentdescription#1\endcsname}
-
-\def\@@descriptionhandler{\descriptionparameter{\s!do\c!command}}
-
-% \def\normal@@descriptionhandler[#1]#2#3%
-% {\doattributes
-% {\??dd\currentdescription}\c!headstyle\c!headcolor
-% {\descriptionparameter\c!command{#3}}% NAAR BUITENSTE NIVEAU !
-% \rawreference\s!def{#1}{#2}} % brrr moet in #4
-
-\def\normal@@descriptionhandler[#1]#2#3%
- {\doattributes
- {\??dd\currentdescription}\c!headstyle\c!headcolor
- {\descriptionparameter\c!command{#3}}% NAAR BUITENSTE NIVEAU !
- \doifsomething{\descriptionparameter\c!list}
- {\dowritetolist
- {\descriptionparameter\c!type:\descriptionparameter\c!list}
- {}{#2}{\currentdescription}}%
- % beware: with footnotes #2 can be something messy but then #1 is
- % empty anyway, so we have an extra safeguard
- \doifsomething{#1}{\rawreference\s!def{#1}{#2}}} % brrr moet in #4
-
-\setvalue{@@description\v!left}%
- {\@@descriptionhang\@@descriptionleftpure\@@descriptionlefthang}
-
-\setvalue{@@description\v!right}%
- {\@@descriptionhang\@@descriptionrightpure\@@descriptionrighthang}
-
-\def\@@descriptionhang#1#2%
- {\processaction
- [\descriptionparameter\c!hang]
- [ \v!none=>\let\next#1,%
- 0=>\let\next#1,%
- \s!unknown=>\let\next#2,%
- \s!default=>\let\next#1]%
- \next}
-
-\def\@@descriptionleftpure[#1]#2%
- {\@@dostartdescription[#1]{\def\\{\crlf}}{#2}%
- \noindent\ignorespaces
- \leftskip\@@leftdescriptionskip
- \rightskip\@@rightdescriptionskip
- \advance\leftskip \!!widtha
- \@@makedescriptionpurebox\raggedright
- \advance\leftskip \!!widthb
- \llap
- {\hbox to \leftskip
- {\hskip\@@leftdescriptionskip
- \copy\@@descriptionbox\hss}}%
- \@@dodescription}
-
-\def\@@descriptionrightpure[#1]#2%
- {\@@dostartdescription[#1]{\def\\{\crlf}}{#2}%
- \noindent\ignorespaces
- \leftskip\@@leftdescriptionskip
- \rightskip\@@rightdescriptionskip
- \advance\rightskip \!!widtha
- \@@makedescriptionpurebox\raggedleft
- \rlap
- {\hskip\hsize
- \hskip-\leftskip
- \hskip-\rightskip
- \copy\@@descriptionbox
- \hskip\@@rightdescriptionskip}%
- \advance\rightskip \!!widthb
- \@@dodescription}
-
-\def\@@makedescriptionpurebox#1%
- {\setbox\@@descriptionbox\vtop
- {\dontcomplain
- \hsize\!!widtha
- \leftskip\zeropoint
- \rightskip\zeropoint
- #1\setupalign[\descriptionparameter\c!align]%
- \ifhbox\@@descriptionbox\unhcopy\else\copy\fi\@@descriptionbox}%
- \ht\@@descriptionbox\strutht
- \dp\@@descriptionbox\strutdp}
-
-\def\@@descriptionlefthang[#1]#2%
- {\@@dostartdescription[#1]{\def\\{\crlf}}{#2}%
- \dontcomplain
- \advance\!!widtha \!!widthb
- \hangindent\!!widtha
- \@@makedescriptionhangbox\raggedright{\advance\rightskip \!!widthb}%
- \noindent\ignorespaces
- \llap
- {\dontshowcomposition
- \vtop to \zeropoint{\box\@@descriptionbox}}%
- \@@dodescription}
-
-\def\@@descriptionrighthang[#1]#2%
- {\@@dostartdescription[#1]{\def\\{\crlf}}{#2}%
- \dontcomplain
- \advance\!!widtha \!!widthb
- \hangindent-\!!widtha
- \@@makedescriptionhangbox\raggedleft{\advance\leftskip \!!widthb}%
- \noindent\ignorespaces
- \rlap
- {\dontcomplain
- \dontshowcomposition
- \scratchdimen\hsize
- \advance\scratchdimen -\leftskip
- \advance\scratchdimen -\rightskip
- \hbox to \scratchdimen
- {\hss\vtop to \zeropoint{\box\@@descriptionbox}}}%
- \@@dodescription}
-
-\def\@@makedescriptionhangbox#1#2%
- {\setbox\@@descriptionbox\vtop % \vbox gaat fout in hang
- {\forgetall
- \dontcomplain
- \hsize\!!widtha
- #1\setupalign[\descriptionparameter\c!align]#2%
- \ifhbox\@@descriptionbox\unhcopy\else\copy\fi\@@descriptionbox}%
- \ht\@@descriptionbox\strutht
- \dp\@@descriptionbox\strutdp
- \doifsomething{\descriptionparameter\c!hang}
- {\doifinsetelse{\descriptionparameter\c!hang}{\v!fit,\v!broad}
- {\scratchdimen\ht\@@descriptionbox
- \advance\scratchdimen \dp\@@descriptionbox
- \doif{\descriptionparameter\c!hang}\v!broad
- {\advance\scratchdimen .5\strutht}%
- \getnoflines\scratchdimen
- \hangafter-\noflines}
- {\hangafter-\descriptionparameter\c!hang}}}
-
-\setvalue{@@description\v!top}[#1]#2%
- {%\page[\v!preference]% % Weg ermee!
- %\dosomebreak{\goodbreak}% % Dit is beter en nodig!
- \dohandlepagebreakX\plusone % En dit moet het maar worden.
- \@@dostartdescription[#1]{\let\\=\space}{#2}%
- \noindent\ignorespaces
- \copy\@@descriptionbox\par
- \nobreak
- \descriptionparameter\c!inbetween
- \nobreak
- \@@dodescription}
-
-\def\do@@description#1[#2]#3%
- {\@@dostartdescription[#2]{\def\\{\crlf}}{#3}%
- \noindent\ignorespaces % not needed this ignore
- #1{\ifhbox\@@descriptionbox\unhcopy\else\copy\fi\@@descriptionbox}%
- \@@dodescription}
-
-\setvalue{@@description\v!inmargin }{\do@@description\inmargin}
-\setvalue{@@description\v!inleft }{\do@@description\inleft }
-\setvalue{@@description\v!inright }{\do@@description\inright }
-\setvalue{@@description\v!margin }{\do@@description\inmargin}
-\setvalue{@@description\v!leftmargin }{\do@@description\inleft }
-\setvalue{@@description\v!rightmargin }{\do@@description\inright }
-\setvalue{@@description\v!innermargin }{\do@@description\ininner }
-\setvalue{@@description\v!outermargin }{\do@@description\inouter }
-
-\setvalue{@@description\v!serried\v!fit}[#1]#2%
- {\@@dostartdescription[#1]{\def\\{\crlf}}{#2}%
- \noindent\ignorespaces
- \ifhbox\@@descriptionbox\unhcopy\else\copy\fi\@@descriptionbox
- \hskip\!!widthb % toegevoegd
- \@@dodescription}
-
-\setvalue{@@description\v!serried\v!broad}[#1]#2%
- {\@@dostartdescription[#1]{\def\\{\crlf}}{#2}%
- \noindent\ignorespaces
- \ifhbox\@@descriptionbox\unhcopy\else\copy\fi\@@descriptionbox
- \hskip\!!widthb \!!plus .5\!!widthb \!!minus .25\!!widthb
- \@@dodescription}
-
-\setvalue{@@description\v!serried\v!wide}[#1]#2%
- {\@@dostartdescription[#1]{\def\\{\crlf}}{#2}%
- \noindent\ignorespaces
- \hbox to \!!widtha
- {\ifhbox\@@descriptionbox\unhcopy\else\copy\fi\@@descriptionbox\hss}%
- \hskip\!!widthb
- \ignorespaces
- \@@dodescription}
-
-\setvalue{@@description\v!serried}[#1]#2%
- {\processaction
- [\descriptionparameter\c!width]
- [ \v!fit=>\let\next\v!fit,
- \v!broad=>\let\next\v!broad,
- \s!unknown=>\let\next\v!wide,
- \s!default=>\let\next\v!broad]%
- \getvalue{@@description\v!serried\next}[#1]{#2}}
-
-\setvalue{@@description\v!hanging}[#1]#2%
- {\@@dostartdescription[#1]{\def\\{\crlf}}{#2}% % adds \c!margin to \leftskip
- \noindent\ignorespaces
- \advance\leftskip -\leftskipadaption \relax
- \ifdim\leftskipadaption=\zeropoint
- \leftskipadaption1.5em % just some default
- \ifnum\nesteddescriptionstate=\plusone
- \ifdim\leftskip>\zeropoint \relax
- \leftskipadaption\leftskip
- \fi
- \fi
- \fi
- \ifnum\nesteddescriptionstate>\zerocount % was \ifnum\nesteddescriptionstate=\plusone
- \advance\leftskip \leftskipadaption % but we're already further on
- \fi
- \hskip-\leftskipadaption
- \ifhbox\@@descriptionbox\unhcopy\else\copy\fi\@@descriptionbox
- \kern\ifdim\!!widthb=\zeropoint .75em\else\!!widthb\fi
- \ignorespaces
- \@@dodescription}
-
-%D A bonus definition
-%D
-%D \starttyping
-%D \setupfootnotedefinition[location=command,headcommand=\llap]
-%D \stoptyping
-
-\setvalue{@@description\v!command}#1%
- {\do@@description{\executeifdefined{\??dd#1\c!headcommand}\framed}{#1}}
-
-%D A new key 'headalign' in definitions.
-
-\def\resetdescriptions % to be used in e.g. footnotes
- {\chardef\nesteddescriptionstate\zerocount}
-
-\resetdescriptions
-
-\let\@@leftdescriptionskip \!!zeropoint
-\let\@@rightdescriptionskip\!!zeropoint
-
-\def\@@dostartdescription[#1]#2#3%
- {\descriptionparameter\c!before
- \begingroup
- \doadaptleftskip{\descriptionparameter\c!margin}%
- \showcomposition
- \!!widthb\descriptionparameter\c!distance\relax
- \ifdim\!!widthb=\zeropoint\relax
- \doif{\descriptionparameter\c!width}\v!broad{\!!widthb=1em}%
- \fi
- % temp hack, we need to avoid this kind of preprocessing
- \setbox\@@descriptionbox\hbox % preroll
- {\forgetall
- \trialtypesettingtrue
- \dontcomplain
- #2% sets \\ to space or \crlf
- \@@descriptionhandler[#1]{#3}{\begstrut\descriptionparameter\c!text\ignorespaces#3\endstrut}}%
- % so far
- \assignwidth
- \!!widtha
- {\descriptionparameter\c!width}%
- {\doifelsenothing{\descriptionparameter\c!sample}%
- {% preroll can move here (test first)
- \ifhbox\@@descriptionbox\unhcopy\else\copy\fi \@@descriptionbox}%
- {\@@descriptionhandler[#1]{#3}{\descriptionparameter\c!text\descriptionparameter\c!sample}}}
- \!!widthb
- \setbox\@@descriptionbox\hbox
- {\forgetall
- \dontcomplain
- #2% sets \\ to space or \crlf
- \doifelse{\descriptionparameter\c!location}\v!serried
- {\@@descriptionhandler[#1]{#3}{\begstrut\descriptionparameter\c!text#3\endstrut}}
- {\@@descriptionhandler[#1]{#3}{\vtop{\hsize\!!widtha\advance\hsize-\!!widthb
- \begstrut\descriptionparameter\c!text\ignorespaces#3\endstrut}}}}%
- \doifelse{\descriptionparameter\c!aligntitle}\v!no
- {\edef\@@leftdescriptionskip {\the\leftskip }%
- \edef\@@rightdescriptionskip{\the\rightskip}}
- {\ifcase\nesteddescriptionstate
- \edef\@@leftdescriptionskip {\the\leftskip }%
- \edef\@@rightdescriptionskip{\the\rightskip}%
- \fi}%
- \expanded{\indenting[\descriptionparameter\c!indenting]}%
- % better a system mode
- \ifcase\nesteddescriptionstate
- \chardef\nesteddescriptionstate\plusone
- \or
- \chardef\nesteddescriptionstate\plustwo
- \fi% now happens elsewhere : \noindent\ignorespaces
- \@@resetdescriptionclosesymbol}
-
-\def\@@stopdescription#1%
- {\def\currentdescription{#1}%
- \@@placedescriptionclosesymbol
- % was \par \dostopattributes % here, else problems with interlinespace and font change
- \dostopparbasedattributes % == \settrue\parbasedattributes \dostopattributes
- \endgroup
- \descriptionparameter\c!after %hm, which currentdescription?
- \egroup % temporary hack
- \def\currentdescription{#1}%
- \dochecknextindentation{\??dd\currentdescription}%
- \dorechecknextindentation}
-
-\def\@@dodescription
- {\dostartattributes{\??dd\currentdescription}\c!style\c!color\empty
- \ignorespaces}
-
-% starters:
-
-\def\@@startdescription[#1][#2]%
- {\def\currentdescription{#1}%
- \doifelse{\descriptionparameter\c!title}\v!yes
- % {\dowithwargument{\@@startsomedescription{#1}[#2]}} % patched for theorems
- {\permitspacesbetweengroups
- \dodoublegroupempty{\@@startsomedescription{#1}[#2]}}
- {\@@startsomedescription{#1}[#2]{}}}
-
-\def\@@description[#1][#2]%
- {\def\currentdescription{#1}%
- \doifelse{\descriptionparameter\c!title}\v!yes
- % {\dowithwargument{\@@somedescription{#1}[#2]}} % patched for theorems
- {\permitspacesbetweengroups
- \dodoublegroupempty{\@@somedescription{#1}[#2]}}
- {\@@somedescription{#1}[#2]{}}}
-
-% these call:
-
-\def\@@somedescription#1[#2]#3%
- {\dowithpar
- {\bgroup\@@makedescription{#1}[#2]{#3}}%
- {\@@stopdescription{#1}}}
-
-\def\@@startsomedescription#1[#2]#3%
- {\bgroup % temporary hack
- \BeforePar{\@@makedescription{#1}[#2]{#3}}%
- \GotoPar}
-
-% which calls:
-
-\def\@@makedescription#1%
- {\postponenotes % new, assumes grouping
- \def\currentdescription{#1}%
- \executeifdefined
- {@@description\descriptionparameter\c!location}
- {\getvalue{@@description\v!left}}}
-
-% \def\@@makedescription#1%
-% {\def\currentdescription{#1}%
-% \ifundefined{@@description\descriptionparameter\c!location}%
-% \letvalue{\??dd#1\c!location}\v!left
-% \fi
-% \getvalue{@@description\descriptionparameter\c!location}}
-
-% definitions
-
-\def\setupdescriptions
- {\dodoubleempty\dosetupdescriptions}
-
-\def\dosetupdescriptions[#1][#2]% % beter: \iffirstargument
- {\ConvertToConstant\doifelse{#2}{}
- {\dodosetupdescriptions[][#1]}
- {\dodoubleargumentwithset\dodosetupdescriptions[#1][#2]}}
-
-\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!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,
- \c!titleleft,\c!titleright,\c!titlecommand,\c!closesymbol,\c!closecommand]%
- \getparameters[\??dd#1]
- [\c!title=\v!yes,\s!do\c!command=\normal@@descriptionhandler,
- \c!type=\v!description,\c!list=,\c!listtext=,
- \c!level=,#2]%AM?? Why do we have title=yes here?
- %\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]}}%
- \doifvaluesomething{\??dd#1\c!list}
- {\definelist[\getvalue{\??dd#1\c!type}:\getvalue{\??dd#1\c!list}]}% new
- \setvalue {#1}{\dodoubleempty\@@description[#1]}%
- \setvalue{\e!start#1}{\dodoubleempty\@@startdescription[#1]}%
- \setvalue{\e!stop #1}{\@@stopdescription{#1}}}
-
-\def\definedescription
- {\dodoubleemptywithset\dodefinedescription}
-
-\def\currentdescriptionnumber {\csname\??dd\currentdescription\??dd\c!number\endcsname}
-\def\directcurrentdescriptionnumber#1{\csname\??dd #1\??dd\c!number\endcsname}
-
-\ifx\preparednumber\undefined \let\preparednumber\empty \fi
-
-\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]%
- \prepareprefixnumber{\??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]%
- \prepareprefixnumber{\??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]%
- %\prepareprefixnumber{\??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
- \descriptionparameter\c!left
- \strut\doshowdnnumber
- \showdntitle{#2}%
- \descriptionparameter\c!stopper
- \descriptionparameter\c!right}}%
- \doifsomething{\descriptionparameter\c!list}
- {\dowritetolist
- {\descriptionparameter\c!type:\descriptionparameter\c!list}
- {\showdnlisttext\doshowdnnumber}{#2}{\currentdescription}}%
- \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}{#2}}}%
- \else
- \doattributes{\??dd\currentdescription}\c!headstyle\c!headcolor
- {\descriptionparameter\c!command
- {\showdnpuretext
- \descriptionparameter\c!left
- \showdntitle{#2}%
- \descriptionparameter\c!stopper
- \descriptionparameter\c!right}}%
- \doifnot{#1}{-}{\rawreference\s!num{#1}{{}{#2}}}%
- \fi}
-
-\def\showdntitle#1%
- {\doif{\descriptionparameter\c!title}\v!yes % new, for david antos
- {\doifsomething{#1}
- {\doattributes{\??dd\currentdescription}\c!titlestyle\c!titlecolor
- {\hskip\descriptionparameter\c!titledistance
- \descriptionparameter\c!titlecommand
- {\descriptionparameter\c!titleleft
- \begstrut#1\endstrut
- \descriptionparameter\c!titleright}}}}}
-
-
-\def\showdnpuretext
- {\strut\descriptionparameter\c!text} % geen spatie
-
-\def\showdnlisttext
- {\descriptionparameter\c!listtext} % space in default
-
-\def\showdntext
- {\doifelsenothing{\descriptionparameter\c!text}
- {\ignorespaces}
- {\strut
- \descriptionparameter\c!text
- \removeunwantedspaces\fixedspace}}
-
-\def\doshowdnnumber
- {\getvalue{showdn\descriptionparameter\c!level\c!number}}
-
-% maybe recursive until end condition undefined
-
-\setvalue{showdn\c!number}%
- {\preparednumber
- \convertednumber[\currentdescriptionnumber]}
-
-\setvalue{showdn\v!sub\c!number}%
- {\getvalue{showdn\c!number}%
- \spr{\descriptionparameter\c!separator}%
- \convertednumber[\v!sub\currentdescriptionnumber]}
-
-\setvalue{showdn\v!sub\v!sub\c!number}%
- {\getvalue{showdn\v!sub\c!number}%
- \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}%
- \spr{\descriptionparameter\c!separator}%
- \convertednumber[\v!sub\v!sub\v!sub\currentdescriptionnumber]}
-
-\def\domakednnumber
- {\descriptionparameter\c!left
- \strut\doshowdnnumber
- \descriptionparameter\c!stopper
- \descriptionparameter\c!right}
-
-\setvalue{\??dd\s!set\v!sub\s!sub\s!sub\c!number}#1%
- {\edef\@@descriptionnumber{\directcurrentdescriptionnumber{#1}}%
- \setnumber[\v!sub\v!sub\v!sub\@@descriptionnumber]}
-
-\setvalue{\??dd\s!set\v!sub\s!sub\c!number}#1%
- {\getvalue{\??dd\s!reset\v!sub\v!sub\v!sub\c!number}{#1}%
- \setnumber[\v!sub\v!sub\@@descriptionnumber]}
-
-\setvalue{\??dd\s!set\v!sub\c!number}#1%
- {\getvalue{\??dd\s!reset\v!sub\v!sub\c!number}{#1}%
- \setnumber[\v!sub\@@descriptionnumber]}
-
-\setvalue{\??dd\s!set\c!number}#1%
- {\getvalue{\??dd\s!reset\v!sub\c!number}{#1}%
- \setnumber[\@@descriptionnumber]}
-
-\setvalue{\??dd\s!reset\v!sub\v!sub\v!sub\c!number}#1%
- {\edef\@@descriptionnumber{\directcurrentdescriptionnumber{#1}}%
- \resetnumber[\v!sub\v!sub\v!sub\@@descriptionnumber]}
-
-\setvalue{\??dd\s!reset\v!sub\v!sub\c!number}#1%
- {\getvalue{\??dd\s!reset\v!sub\v!sub\v!sub\c!number}{#1}%
- \resetnumber[\v!sub\v!sub\@@descriptionnumber]}
-
-\setvalue{\??dd\s!reset\v!sub\c!number}#1%
- {\getvalue{\??dd\s!reset\v!sub\v!sub\c!number}{#1}%
- \resetnumber[\v!sub\@@descriptionnumber]}
-
-\setvalue{\??dd\s!reset\c!number}#1%
- {\getvalue{\??dd\s!reset\v!sub\c!number}{#1}%
- \resetnumber[\@@descriptionnumber]}
-
-\setvalue{\??dd\e!next\v!sub\v!sub\v!sub\c!number}#1#2%
- {\edef\@@descriptionnumber{\directcurrentdescriptionnumber{#1}}%
- \incrementnumber[\v!sub\v!sub\v!sub\@@descriptionnumber]%
- \rawreference\s!num{#2}{\getvalue{showdn\v!sub\v!sub\v!sub\c!number}}}%
-
-\setvalue{\??dd\e!next\v!sub\v!sub\c!number}#1#2%
- {\getvalue{\??dd\s!reset\v!sub\v!sub\v!sub\c!number}{#1}%
- \incrementnumber[\v!sub\v!sub\@@descriptionnumber]%
- \rawreference\s!num{#2}{\getvalue{showdn\v!sub\v!sub\c!number}}}%
-
-\setvalue{\??dd\e!next\v!sub\c!number}#1#2%
- {\getvalue{\??dd\s!reset\v!sub\v!sub\c!number}{#1}%
- \incrementnumber[\v!sub\@@descriptionnumber]%
- \rawreference\s!num{#2}{\getvalue{showdn\v!sub\c!number}}}%
-
-\setvalue{\??dd\e!next\c!number}#1#2%
- {\getvalue{\??dd\s!reset\v!sub\c!number}{#1}%
- \incrementnumber[\@@descriptionnumber]%
- \rawreference\s!num{#2}{\getvalue{showdn\c!number}}}%
-
-\def\dodosetupenumerations[#1][#2]%
- {\getparameters[\??dd#1][#2]%
- \doifdefined{\??dd#1\c!start}
- {\setupnumber[#1][\c!start=\getvalue{\??dd#1\c!start}]}%
- \setupnumber[#1][\c!conversion=\getvalue{\??dd#1\c!conversion}]}
-
-\def\dosetupenumerations[#1][#2]%
- {\ConvertToConstant\doifelse{#2}{}
- {\getparameters[\??dn][#1]}
- {\dodoubleargumentwithset\dodosetupenumerations[#1][#2]}}
-
-\def\setupenumerations
- {\dodoubleempty\dosetupenumerations}
-
-\def\docheckenumerationnumber#1#2#3%
- {\processaction
- [\getvalue{\??dd#2\c!number}]
- [ \v!yes=>\setvalue{\??dd#2\??dd\c!number}{#3},%
- \v!no=>\setvalue{\??dd#2\??dd\c!number}{#3},%
- \v!default=>\setvalue{\??dd#2\??dd\c!number}{#3},%
- \v!unknown=>\letvalue{\??dd#2\??dd\c!number}\commalistelement]}
-
-\def\dododefineenumeration#1#2#3[#4][#5]%
- {\makecounter{\??dd\c!coupling#1}% new: global cross linking
- \dodefinedescription[#3#1]%
- [\c!title=\v!no,\c!level=#3,\c!type=\v!enumeration,\c!list=,%
- \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!titledistance,\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!title,\c!titleleft,\c!titleright,\c!titlecommand,\c!closesymbol,\c!closecommand]%
- \doifassignmentelse{#4}
- {\getparameters[\??dd#3#1]%
- [\c!text=#1,\??dd\c!number=#1,\c!conversion=,\c!listtext=#1\space,
- \c!left=,\c!right=,\c!coupling=,\c!couplingway=\v!local,#4]%
- \docheckenumerationnumber{#1}{#3#1}{#1}}%
- {\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]%
- \docheckenumerationnumber{#1}{#3#1}{#1}}%
- {\copyparameters[\??dd#3#1][\??dd#3#4]
- [\c!location,\c!headstyle,\c!style,\c!color,\c!headcolor,
- \c!width,\c!number,\c!distance,\c!titledistance,\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,
- \c!title,\c!titleleft,\c!titleright,\c!titlecommand,\c!closesymbol,\c!closecommand]%
- \getparameters[\??dd#3#1]
- [\c!text=#1,\??dd\c!number=#4,\c!conversion=,#5]%
- %docheckenumerationnumber{#1}{#3#1}{#4}}}%
- \docheckenumerationnumber{#1}{#3#1}{\getvalue{\??dd#3#4\??dd\c!number}}}}%
- \doifvalue{\??dd#3#1\??dd\c!number}{#1}
- {\definenumber
- [#3#1]
- [\c!way=\descriptionparentparameter\c!way,
- \c!blockway=\descriptionparentparameter\c!blockway,
- \c!conversion=\descriptionparentparameter\c!conversion,
- \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
- \doifvaluesomething{\??dd#3#1\c!list}
- {\definelist[\getvalue{\??dd#3#1\c!type}:\getvalue{\??dd#3#1\c!list}]}% new
- % 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}
-
-\def\dodefineenumeration[#1][#2][#3]%
- {\dododefineenumeration{#1}{1}{}[#2][#3]%
- \dododefineenumeration{#1}{2}{\v!sub}[#2][#3]%
- \dododefineenumeration{#1}{3}{\v!sub\v!sub}[#2][#3]%
- \dododefineenumeration{#1}{4}{\v!sub\v!sub\v!sub}[#2][#3]}
-
-\def\defineenumeration
- {\dotripleemptywithset\dodefineenumeration}
-
-\def\doresetenumerationnumber[#1][#2]% name level
- {\getvalue{\??dd\s!reset#2\c!number}{#1}}%
-
-\def\dosetenumerationnumber[#1][#2]% name level
- {\getvalue{\??dd\s!set#2\c!number}{#1}}%
-
-\def\donextenumerationnumber[#1][#2][#3]% name level reference
- {\pluscounter{\??dd\c!coupling#1}% new: global crosslinking
- \getvalue{\??dd\e!next#2\c!number}{#1}{#3}}%
-
-\def\@@resetdescriptionclosesymbol
- {\global\@EA\settrue\csname\??dd\currentdescription:mrk\endcsname
- \let\placeclosesymbol\@@placedescriptionclosesymbol
- \let\qed \@@placedescriptionclosesymbol}
-
-\def\@@placedescriptionclosesymbol
- {\ifconditional\csname\??dd\currentdescription:mrk\endcsname
- \global\@EA\setfalse\csname\??dd\currentdescription:mrk\endcsname
- \doifsomething{\descriptionparameter\c!closesymbol}{\descriptionparameter\c!closecommand{\descriptionparameter\c!closesymbol}}%
- \fi}
-
-% Het default-mechanisme kan mooier: leegtest, enz.
-%
-% Werkprocedure buiten description
-
-\def\dodosetupindentations[#1][#2]%
- {\getparameters[\??ds#1][#2]}
-
-\def\dosetupindentations[#1][#2]%
- {\ConvertToConstant\doifelse{#2}{}
- {\dodosetupindentations[][#1]}
- {\dodoubleargumentwithset\dodosetupindentations[#1][#2]}}
-
-\def\setupindentations
- {\dodoubleempty\dosetupindentations}
-
-% what to do with this
-
-\def\startdoorspringen
- {\whitespace
- \@@dsbefore
- \dosomebreak\goodbreak % \page[\v!preference]
- \begingroup
- \parskip\zeropoint\relax}
-
-\def\stopdoorspringen
- {\endgroup
- \@@dsafter}
-
-%
-
-\def\dododefineindenting#1#2#3%
- {\par
- \getvalue{\??ds#1\c!before}%
- \begingroup
- \doifvaluenothing{\??ds#1\c!sample}
- {\setvalue{\??ds#1\c!sample}%
- {\getvalue{\??ds#1\c!text}}}%
- \assignwidth
- {\!!widtha}
- {\getvalue{\??ds#1\c!width}}
- {\doattributes
- {\??ds#1}\c!headstyle\c!headcolor
- {\getvalue{\??ds#1\c!sample}%
- \spr{\getvalue{\??ds#1\c!separator}}}}
- {\getvalue{\??ds#1\c!distance}}%
- \advance\!!widtha \getvalue{\??ds#1\c!distance}%
- \setbox2\hbox to \!!widtha
- {\doattributes
- {\??ds#1}\c!headstyle\c!headcolor
- {\strut
- \getvalue{\??ds#1\c!text}%
- \hss
- \spr{\getvalue{\??ds#1\c!separator}}%
- \hskip\getvalue{\??ds#1\c!distance}}}%
- \parindent\zeropoint
- \hskip#2\!!widtha\indent\box2%
- \hangindent#3\!!widtha
- \doattributes{\??ds#1}\c!style\c!color\empty
- \AfterPar{\endgroup\getvalue{\??ds#1\c!after}}% must be redone
- \GetPar}
-
-\def\dodefineindenting[#1][#2]%
- {\copyparameters[\??ds#1][\??ds]
- [\c!text,\c!separator,\c!width,\c!style,\c!color,
- \c!headstyle,\c!sample,\c!before,\c!after,\c!distance]%
- \getparameters[\??ds#1][#2]%
- \setvalue {#1}{\dododefineindenting{#1}{0}{1}}%
- \setvalue {\v!sub#1}{\dododefineindenting{#1}{1}{2}}%
- \setvalue{\v!sub\v!sub#1}{\dododefineindenting{#1}{2}{3}}}
-
-\def\defineindenting
- {\dodoubleargumentwithset\dodefineindenting}
-
-\def\definelabel
- {\dodoubleargumentwithset\dodefinelabel}
-
-\def\dodefinelabel[#1][#2]%
- {\definenumber
- [#1]
- [\c!command=,\c!location=,#2]%
- % downward compatible
- \processaction
- [\numberparameter{#1}\c!location]
- [ \v!inmargin=>{\setupnumber[#1][\c!command=\inmargin]},
- \v!inleft=>{\setupnumber[#1][\c!command=\inleft ]},
- \v!inright=>{\setupnumber[#1][\c!command=\inright ]},
- \v!margin=>{\setupnumber[#1][\c!command=\inmargin]}]%
- % generated commands (in addition to the number ones)
- \setvalue {#1}{\dodoubleempty\do@@label[#1]}%
- \setvalue{\s!reset #1}{\resetnumber[#1]}%
- \setvalue{\e!increment#1}{\incrementnumber[#1]}%
- \setvalue{\e!next #1}{\dodoubleempty\do@@nextlabel[#1]}%
- \setvalue{\c!current #1}{\currentnumber[#1]}}
-
-\def\do@@label[#1][#2]%
- {\numberparameter{#1}\c!before
- \numberparameter{#1}\c!command{\doattributes{\@@thenumber{#1}}\c!headstyle\c!headcolor{\getvalue{\e!next#1}[#2]}}%
- \numberparameter{#1}\c!after}%
-
-\def\do@@nextlabel[#1][#2]%
- {\nextnumber[#1][\s!lab][#2]}
-
-\def\currentnumber[#1]% kan tekst hier weg ?
- {\dotextprefix{\numberparameter{#1}\c!text}\sectionnumberonly[#1]}
-
-\def\nextnumber[#1][#2][#3]%
- {\incrementnumber[#1]%
- \currentnumber[#1]%
- \rawreference{#2}{#3}{\composedsectionnumber}}
-
-\setupdescriptions
- [\c!location=\v!left,
- \c!headstyle=\v!bold,
- \c!titlestyle=\v!bold,
- \c!style=\v!normal,
- \c!color=,
- \c!headcolor=,
- \c!titlecolor=,
- \c!width=8em,
- \c!distance=0pt,
- \c!titledistance=0.5em,
- \c!hang=,
- \c!sample=,
- \c!align=,
- \c!margin=\v!no,
- \c!before=\blank,
- \c!inbetween=\blank,
- \c!after=\blank,
- \c!indentnext=\v!yes,
- \c!indenting=\v!never,
- \c!titleleft=(,
- \c!titleright=),
- \c!closesymbol=,
- \c!closecommand=\wordright,
- \c!command=,
- \c!titlecommand=]
-
-\setupenumerations
- [\c!location=\v!top,
- \c!headstyle=\v!bold,
- \c!headcolor=,
- \c!titlestyle=\v!bold,
- \c!titlecolor=,
- \c!style=\v!normal,
- \c!color=,
- \c!width=8em,
- \c!distance=0pt,
- \c!titledistance=0.5em,
- \c!hang=,
- \c!sample=,
- \c!align=,
- \c!margin=\v!no,
- \c!before=\blank,
- \c!inbetween=\blank,
- \c!after=\blank,
- \c!indentnext=\v!yes,
- \c!indenting=\v!never,
- \c!text=,
- \c!levels=3, % to be upward compatible
- \c!conversion=, % to be upward compatible
- \c!way=\v!by\v!text,
- \c!sectionnumber=\v!yes,
- \c!separator=\@@koseparator, % per 2006.06.23, was .
- \c!stopper=,
- \c!titleleft=(,
- \c!titleright=),
- \c!closesymbol=,
- \c!closecommand=\wordright,
- \c!number=,
- \c!command=,
- \c!titlecommand=]
-
-\setupindentations
- [\c!style=\v!normal,
- \c!headstyle=\v!normal,
- \c!color=,
- \c!headcolor=,
- \c!width=\v!fit,
- \c!text=\unknown,
- \c!sample=,
- \c!before=\blank,
- \c!after=\blank,
- \c!distance=1em,
- \c!separator={ :}]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-flt.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-flt.mkii
deleted file mode 100644
index 26125c65f96..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/strc-flt.mkii
+++ /dev/null
@@ -1,2173 +0,0 @@
-%D \module
-%D [ file=strc-flt,
-%D version=2000.10.20,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Floating Bodies,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Structure Macros / Float Numbering}
-
-%D Some of the sidefloat settings should move to page-sid; now it's quite
-%D fuzzy the way the variables are set/reset.
-
-\unprotect
-
-\ifx\addlocalbackgroundtobox\undefined \def\addlocalbackgroundtobox{\resetglobal\gobbleoneargument} \fi
-
-\def\placefloats{\doflushfloats} % keep this one
-
-\def\floatparameter #1{\csname\??fl\currentfloat#1\endcsname}
-\def\floatcaptionparameter#1{\csname\??kj\currentfloat#1\endcsname}
-
-% \def\floatparameter #1{\csname \ifcsname\??fl\currentfloat#1\endcsname\??fl\currentfloat\else\??bk\fi#1\endcsname}
-% \def\floatcaptionparameter#1{\csname\??kj\ifcsname\??kj\currentfloat#1\endcsname \currentfloat \fi#1\endcsname}
-
-% for the moment we need to define the parameters anyway, first we need to implement a
-% proper parent chain (also for framed); no problem now that machines are fast (tests
-% show that this may save 20 k or more in the format)
-%
-% \def\floatparameter #1{\executeifdefined{\??fl\currentfloat#1}{\csname\??fl#1\endcsname}}
-% \def\floatcaptionparameter#1{\executeifdefined{\??kj\currentfloat#1}{\csname\??bk#1\endcsname}}
-
-\def\setupfloats
- {\dodoubleargument\getparameters[\??bk]} % funny, why not \??fl, must be a reason
-
-\def\setupcaptions
- {\dodoubleargument\getparameters[\??kj]}
-
-\def\dosetupfloat[#1][#2]%
- {\def\docommand##1{\getparameters[\??fl##1][#2]}%
- \processcommalist[#1]\docommand}
-
-\def\setupfloat
- {\dodoubleargument\dosetupfloat}
-
-\def\dosetupcaption[#1][#2]%
- {\def\docommand##1{\getparameters[\??kj##1][#2]}%
- \processcommalist[#1]\docommand}
-
-\def\setupcaption
- {\dodoubleargument\dosetupcaption}
-
-\def\doemptyblock#1%
- {\localframed
- [\??fl#1]
- [\c!frame=\v!on,
- \c!width=\@@bkwidth,
- \c!height=\@@bkheight,
- \c!location=\v!normal,
- \c!offset=\@@bkoffset]%
- {\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.
-% Therefore we may not trust on variable assignments before
-% we're realy dealing with the float. Some day I'll root out
-% the global settings.
-
-\def\docomplexplacefloat[#1][#2]% [#3]#4%
- {\edef\currentfloat{#1}%
- \doifelsenothing\currentfloat
- {\let\currentfloat\v!figure}
- {}% {\doifundefined{\??fl#1\c!default}{\let\currentfloat\v!figure}}%
- \doifelsenothing{#2}
- {\edef\floatlocation{\floatparameter\c!default}}
- {\edef\floatlocation{#2}}%
- \doifinsetelse\v!split{#2}
- {\expanded{\dodocomplexsplitfloat[\currentfloat][\floatlocation]}}
- {\expanded{\dodocomplexplacefloat[\currentfloat][\floatlocation]}}}
-
-\long\def\dodocomplexsplitfloat[#1][#2][#3]#4%
- {\splitfloat{\dodocomplexplacefloat[#1][#2][#3]{#4}}}
-
-\def\flushfloatslist
- {\v!left,\v!right,\v!inner,\v!outer,%
- \v!backspace,\v!cutspace,%
- \v!inleft,\v!inright,\v!inmargin,%
- \v!leftmargin,\v!rightmargin,\v!leftedge,\v!rightedge,%
- \v!innermargin,\v!outermargin,\v!inneredge,\v!outeredge,%
- \v!text,\v!opposite}% \v!page
-
-\long\def\dodocomplexplacefloat[#1][#2][#3]#4%
- {\flushnotes
- \flushsidefloats % here !
- \ifsomefloatwaiting
- % this was \checkwaitingfloats spread all over
- \doifinsetelse\v!always{#2}
- {\showmessage\m!floatblocks5\empty}
- {\expanded{\doifcommonelse{#2}{\flushfloatslist}}\doflushfloats\donothing}%
- % but which should be done before using box \floatbox
- \fi
- \ifmargeblokken
- \doifinset\v!margin{#2}\endgraf
- \fi
- \global\insidefloattrue
- \begingroup % **
- \ifmargeblokken
- \doifinset\v!margin{#2}{\hsize\@@mbwidth}%
- \fi
- \the\everyinsidefloat
- \let\@@extrafloat\empty
- \presetmorefloatvariables{#2}%
- \dowithnextboxcontent % better a \the\everyfloattoks
- {\setlocalfloathsize
- \floatparameter\c!inner
- \fuzzysnappingfalse
- \postponenotes} % new
- {\doifsomething{\floatparameter\c!criterium}
- {\ifdim\wd\nextbox>\floatparameter\c!criterium\relax
- \edef\forcedfloatmethod{\executeifdefined{\??fl\currentfloat\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
- \global\sidefloatextrashift\zeropoint
- \ifparfloat
- \doifinset\v!reset{#2}\forgetsidefloats
- \doinhibitblank
- \fi}% better move this to side floats
- \vbox}
-
-\def\xxdocompletefloat#1#2%
- {\rightorleftpageaction{\let\@@extrafloat#1}{\let\@@extrafloat#2}}
-
-\chardef\textfloatmethod=0 % 0=raw 1=safe (.99) 2=tight (-1pt)
-\chardef\sidefloatmethod=1 % 0=raw 1=safe (.99) 2=tight (-1pt)
-
-\let\floatrotation\!!zerocount
-
-\long\def\presetfloatvariables#1#2#3#4%
- {\doifcommonelse
- {#2}
- {\v!left,\v!right,\v!inner,\v!outer,%
- \v!inleft,\v!inright,\v!inmargin,%
- \v!backspace,\v!cutspace,%
- \v!innermargin,\v!outermargin,\v!inneredge,\v!outeredge,%
- \v!leftmargin,\v!leftedge,\v!rightmargin,\v!rightedge}
- {\global\parfloattrue}
- {\global\parfloatfalse}%
- \ifinsidecolumns
- \global\parfloatfalse
- \fi
- \global\sidefloatshift\zeropoint
- \global\sidefloatmaximum\zeropoint
- \global\chardef\sidefloatmethod\floatparameter\c!sidemethod
- \global\chardef\textfloatmethod\floatparameter\c!textmethod
- \global\chardef\sidefloatalign\zerocount
- \globallet\floatrotation\!!zerocount
- \calculatefloatskips
- \ifparfloat
- \processaction
- [\floatparameter\c!sidealign]
- [\v!height=>\global\chardef\sidefloatalign\plusone,%
- \v!line=>\global\chardef\sidefloatalign\plustwo,% (***)
- \v!depth=>\global\chardef\sidefloatalign\plusthree,%
- \v!grid=>\global\chardef\sidefloatalign4,%
- \v!halfline=>\global\chardef\sidefloatalign5]%
-% todo (test first): \doifinset\v!lokaal{#2}{\chardef\sidefloatalign\zerocount}%
- \ifcase\sidefloatalign\relax % todo: optie v!lokaal => \else
- \doifinset\v!height {#2}{\global\chardef\sidefloatalign\plusone}%
- \doifinset\v!line {#2}{\global\chardef\sidefloatalign\plustwo}%
- \doifinset\v!depth {#2}{\global\chardef\sidefloatalign\plusthree}%
- \doifinset\v!grid {#2}{\global\chardef\sidefloatalign4}%
- \doifinset\v!halfline{#2}{\global\chardef\sidefloatalign5}% meant for 'none'
- \fi
- \doifinset\v!high{#2}{\global\sidefloattopskip \zeropoint}%
- \doifinset\v!low {#2}{\global\sidefloatbottomskip\zeropoint}%
- \doifinset\v!fit {#2}
- {\global\sidefloattopskip \zeropoint
- \global\sidefloatbottomskip\zeropoint
- \global\floatsideskip \zeropoint}%
- \else
- \processallactionsinset
- [#2]
- [ 90=>\globallet\floatrotation\commalistelement,%
- 180=>\globallet\floatrotation\commalistelement,%
- 270=>\globallet\floatrotation\commalistelement]%
- \fi
- \doifinsetelse\v!nonumber{#2}
- {\global\nofloatnumbertrue}
- {\doifelse{\floatcaptionparameter\c!number}\v!yes
- {\global\nofloatnumberfalse}
- {\global\nofloatnumbertrue}}%
- \ConvertToConstant\doifelse{#4}{}
- {\global\emptyfloatcaptiontrue}
- {\global\emptyfloatcaptionfalse}%
- \doifinsetelse\v!none{#2}
- {\global\nofloatcaptiontrue}
- {\ConvertToConstant\doifelse{#4}\v!none
- {\global\nofloatcaptiontrue}
- {\global\nofloatcaptionfalse}}%
- \doif{\floatcaptionparameter\c!number}\v!none % new
- {\global\nofloatcaptiontrue}%
- \ifemptyfloatcaption \ifnofloatnumber
- \global\nofloatcaptiontrue
- \fi \fi}
-
-% documenteren in details
-
-\def\presetmorefloatvariables#1%
- {\doifelse\@@bklocal\v!yes % fout keyword
- \globalcenterfloatboxtrue
- \globalcenterfloatboxfalse
- \ifglobalcenterfloatbox
- \localcenterfloatboxtrue
- \else
- \doifinsetelse\v!local{#1}
- \localcenterfloatboxtrue
- \localcenterfloatboxfalse
- \fi
- \doifnotcommon{\v!always,\v!here,\v!force}{#1} % ! ! ! ! ! !
- {\globalcenterfloatboxfalse
- \localcenterfloatboxfalse}}
-
-\def\setlocalfloathsize
- {\iflocalcenterfloatbox
- \seteffectivehsize
- \hsize\localhsize
- \fi}
-
-\appendtoks
- \everyinsidefloat\emptytoks % in case it's called earlier
- \dogetfloatdata
-\to \everyinsidefloat
-
-%\appendtoks
-% \fuzzysnappingfalse
-%\to \everyinsidefloat
-
-\def\doifrightpagefloatelse
- {\ifdoublesided
- \ifsinglesided
- \@EAEAEA\firstoftwoarguments
- \else
- \@EAEAEA\doifoddfloatpageelse
- \fi
- \else
- \@EA\firstoftwoarguments
- \fi}
-
-\def\doifoddfloatpageelse
- {\ifodd\purenumber\twopassfloatdata\space
- \@EA\firstoftwoarguments
- \else
- \@EA\secondoftwoarguments
- \fi}
-
-\appendtoks
- \let\rightorleftpageaction\doifrightpagefloatelse
-\to \everyinsidefloat
-
-\newif\ifextrafloatactions \extrafloatactionstrue
-
-% \let\movesidefloat\gobbleoneargument
-
-% new : \place...[leftmargin,-2*line]; we need to catch fxtb:2*3
-% watch out: line alone aligns on the line ! ! !
-
-\def\movesidefloat[#1]% (-)n*line|x=,y=
- {\global\sidefloatdownshift \zeropoint
- \global\sidefloatextrashift\zeropoint
- \doifassignmentelse{#1}%
- {\bgroup
- \getparameters[\??fl][\c!x=\zeropoint,\c!y=\zeropoint,#1]%
- \ifgridsnapping
- \getnoflines\@@fly
- \global\sidefloatdownshift\noflines\lineheight
- \else
- \global\sidefloatdownshift\@@fly
- \fi
- \global\sidefloatextrashift\@@flx
- \egroup}
- {\movedownsidefloat[#1]}}
-
-\def\movedownsidefloat[#1]% already in core
- {\bgroup
- \cleanupfeatures
- \doifinstringelse{:}{#1}
- \donothing
- {\def\docommand##1%
- {\processaction
- [##1]%
- [ \v!line=>\dodocommand+,%
- +\v!line=>\dodocommand+,%
- -\v!line=>\dodocommand-]}%
- \def\dodocommand##1%
- {\ifdone\else\global\sidefloatdownshift\zeropoint\donetrue\fi
- \global\advance\sidefloatdownshift##1\lineheight}%
- \donefalse\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]%
- {\global\sidefloatsidelines#1\relax}
-
-\long\def\xdocompletefloat#1#2#3#4#5#6%
- {\ifextrafloatactions
- \doifinsetelse\v!text{#4}
- {% fuzzy, text overloads left, since then it's a directive
- \docompletefloat{#1}{#2}{#3}{#4}{#5}{#6}\nextbox}
- {\let\@@extrafloat\empty
- % \sidefloatdownshift will be reset afterwards, and can
- % 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!innermargin=>\xxdocompletefloat\v!leftmargin \v!rightmargin,
- \v!outermargin=>\xxdocompletefloat\v!rightmargin\v!leftmargin,
- \v!inneredge=>\xxdocompletefloat\v!leftedge \v!rightedge,
- \v!outeredge=>\xxdocompletefloat\v!rightedge \v!leftedge,
- \v!backspace=>\xxdocompletefloat\v!backspace \v!cutspace,
- \v!cutspace=>\xxdocompletefloat\v!cutspace \v!backspace,
-% \v!margin=>\xxdocompletefloat\v!cutspace \v!backspace,
- \v!left=>\xxdocompletefloat\v!left \v!left,
- \v!right=>\xxdocompletefloat\v!right \v!right,
- \v!line=>, % only -n*line is handled (see ***)
- \s!unknown=>{\movedownsidefloat[\commalistelement]}]%
- \ifx\@@extrafloat\empty
- \docompletefloat{#1}{#2}{#3}{#4}{#5}{#6}\nextbox
- \else
- \docompletefloat{#1}{#2}{#3}{\@@extrafloat,#4}{#5}{#6}\nextbox
- \fi}%
- \else % downward compatible
- \docompletefloat{#1}{#2}{#3}{#4}{#5}{#6}\nextbox
- \fi}
-
-% pas op, maxbreedte niet instellen als plaats=links/rechts
-
-\def\setlocalfloatdimensions#1%
- {\global\sidefloatshift \zeropoint % duplicate
- \global\sidefloatmaximum\zeropoint\relax % duplicate
- \ifextrafloatactions
- \ifdim\sidefloatdownshift=\zeropoint\else
- \global\setbox\floatbox\vbox
- {\vskip\sidefloatdownshift\nointerlineskip\box\floatbox}%
- \fi
- \doifsomething{\floatparameter\c!minwidth}
- {\scratchdimen\floatparameter\c!minwidth\relax
- \ifdim\wd\floatbox<\scratchdimen
- \global\setbox\floatbox\hbox to \scratchdimen
- {\doifnot{\floatparameter\c!location}\v!left \hss
- \box\floatbox%
- \doifnot{\floatparameter\c!location}\v!right\hss}%
- \fi}%
- % todo: rand / rug
- \doifinset\v!hanging{#1}
- {\doifcommonelse{\v!inleft,\v!leftmargin}{#1}
- {\letvalue{\??fl\currentfloat\c!maxwidth}\leftmarginwidth}%
- {\doifcommon{\v!inright,\v!rightmargin}{#1}
- {\letvalue{\??fl\currentfloat\c!maxwidth}\rightmarginwidth}}}%
- \doifsomething{\floatparameter\c!maxwidth}
- {\scratchdimen\floatparameter\c!maxwidth\relax
- \ifdim\wd\floatbox>\scratchdimen
- \doifcommonelse{\v!inright,\v!rightmargin,\v!rightedge
- \v!inleft,\v!leftmargin,\v!leftedge}{#1}
- {\global\sidefloatmaximum\scratchdimen}
- {\global\setbox\floatbox\hbox to \scratchdimen
- {\doifcommonelse{\v!right,\v!left}{#1}
- {\doifnotinset\v!right{#1}\hss
- \box\floatbox
- \doifnotinset\v!left{#1}\hss}%
- {\doifnot{\floatparameter\c!location}\v!left\hss
- \box\floatbox
- \doifnot{\floatparameter\c!location}\v!right\hss}}}%
- \fi}%
- \fi}
-
-\def\docomplexstarttextblock[#1][#2][#3]%
- {\flushnotes
- \flushsidefloats % hoort eigenlijk niet hier
- \docomplexplacefloat[#1][\v!text,#2,\v!left][#3]}
-
-\long\def\docomplexreserveblock[#1][#2][#3][#4]#5%
- {\getvalue{\e!place#1}[#3][#4]{#5}{\localframed[\??fl#1][#2]{#1}}}
-
-\def\docomplexstartreservetextblock[#1][#2][#3][#4]%
- {\flushsidefloats % hoort eigenlijk niet hier
- \docomplexreserveblock[#1][#2][\v!text,#3,\v!left][#4]}
-
-\def\definefloat
- {\dotripleempty\dodefinefloat}
-
-\def\dodefinefloat[#1][#2][#3]% #1=naam #2=meervoud #3=parent
- {\ifthirdargument
- \redodefinefloat[#1][#2][#3]%
- \else\ifsecondargument
- \dododefinefloat[#1][#2]%
- \else
- \dododefinefloat[#1][#1]%
- \fi\fi}
-
-% todo: \floatparameter + \currentfloat - saves many hash entries
-
-\def\dododefinefloat[#1][#2]% inherits from kj and not from parent
- {\def\currentfloat{#1}%
- \presetlocalframed[\??fl#1]%
- \setupfloat
- [#1]
- [%\c!width=8\lineheight, % 15\bodyfontsize,
- %\c!height=6\lineheight, % 10\bodyfontsize,
- \c!offset=\v!overlay,
- \c!width=\v!fit,
- \c!height=\v!fit,
- \c!minwidth=,
- \c!maxwidth=,
- \c!maxheight=,
- \c!criterium=,
- % inherited
- \c!sidespacebefore=\@@bksidespacebefore,
- \c!sidespaceafter=\@@bksidespaceafter,
- \c!sidealign=\@@bksidealign, % \v!line
- \c!margin=\@@bkmargin,
- \c!leftmargin=\@@bkleftmargin,
- \c!rightmargin=\@@bkrightmargin,
- \c!innermargin=\@@bkinnermargin,
- \c!outermargin=\@@bkoutermargin,
- \c!leftmargindistance=\@@bkleftmargindistance,
- \c!rightmargindistance=\@@bkrightmargindistance,
- \c!frame=\@@bkframe,
- \c!radius=\@@bkradius,
- \c!corner=\@@bkcorner,
- \c!location=\@@bklocation,
- \c!background=\@@bkbackground,
- \c!backgroundscreen=\@@bkbackgroundscreen,
- \c!backgroundcolor=\@@bkbackgroundcolor,
- \c!backgroundoffset=\@@bkbackgroundoffset,
- \c!topframe=\@@bktopframe,
- \c!bottomframe=\@@bkbottomframe,
- \c!leftframe=\@@bkleftframe,
- \c!rightframe=\@@bkrightframe,
- \c!frameoffset=\@@bkframeoffset,
- \c!framecolor=\@@bkframecolor,
- %\c!local=\@@bklocal,
- \c!textmethod=\@@bktextmethod,
- \c!sidemethod=\@@bksidemethod,
- \c!method=\@@bkmethod,
- \c!pageboundaries=,
- \c!default=]%
- \setupcaption
- [#1]
- [\c!headstyle=\@@kjheadstyle,
- \c!headcolor=\@@kjheadcolor,
- \c!textstyle=\@@kjtextstyle,
- \c!textcolor=\@@kjtextcolor,
- \c!style=\@@kjstyle,
- \c!color=\@@kjcolor,
- \c!location=\@@kjlocation,
- \c!grid=\@@kjgrid,
- %\c!before=\@@kjbefore,
- \c!inbetween=\@@kjinbetween,
- %\c!after=\@@kjafter,
- \c!spacebefore=\@@kjspacebefore,
- \c!spaceinbetween=\@@kjspaceinbetween,
- \c!spaceafter=\@@kjspaceafter,
- \c!width=\@@kjwidth,
- \c!minwidth=\@@kjminwidth,
- \c!align=\@@kjalign,
- \c!number=\@@kjnumber,
- \c!way=\@@kjway,
- \c!blockway=\@@kjblockway,
- \c!sectionnumber=\@@kjsectionnumber,
- \c!distance=\@@kjdistance,
- \c!separator=\@@kjseparator,
- \c!stopper=\@@kjstopper,
- \c!suffix=\@@kjsuffix, % hook
- \c!command=\@@kjcommand,
- \c!conversion=\@@kjconversion,
- \c!leftmargin=\@@kjleftmargin,
- \c!rightmargin=\@@kjrightmargin,
- \c!outermargin=\@@kjoutermargin,
- \c!innermargin=\@@kjinnermargin,
- \c!setups=\@@kjsetups,
- ]%
- \definenumber % \definelabel
- [#1]
- [\c!text=#1,
- \c!location=\v!intext,
- \c!way=\floatcaptionparameter\c!way,
- \c!blockway=\floatcaptionparameter\c!blockway,
- \c!sectionnumber=\floatcaptionparameter\c!sectionnumber,
- \c!conversion=\floatcaptionparameter\c!conversion]%
- \presetlabeltext[#1=\Word{#1}~]%
- \newnodelocation{\v!float\@@thenumber{#1}}%
- \dodefinefloatcommands[#1][#2]}
-
-\def\dodefinefloatcommands[#1][#2]%
- {\definelist[#1]%
- \presetheadtext[#2=\Word{#2}]%
- \setvalue {\e!place\e!listof#2}{\dodoubleempty\doplacelist[#1]}%
- \setvalue {\e!complete\e!listof#2}{\dotripleempty\dodocompletelist[#1][#2]}%
- \setvalue {\e!place#1}{\dotripleempty\docomplexplacefloat[#1]}%
- \setvalue {\e!reserve#1}{\doquadrupleempty\docomplexreserveblock[#1]}%
- \setvalue {\e!start#1\e!text}{\dotripleempty\docomplexstarttextblock[#1]}%
- \setvalue {\e!stop#1\e!text}{\dostoptextfloat}%
- \setvalue{\e!start\e!reserve#1\e!text}{\doquadrupleempty\docomplexstartreservetextblock[#1]}%
- \setvalue {\e!stop\e!reserve#1\e!text}{\dostoptextfloat}}
-
-% \setupfloat[...][leftmargindistance=1cm,default={left,none}]
-
-\def\redodefinefloat[#1][#2][#3]% same label/number
- {\presetlocalframed[\??fl#1]%
- \copylocalframed[\??fl#1][\??fl#3]%
- \copyparameters[\??fl#1][\??fl#3]
- [\c!width,\c!height,%\c!local,
- \c!maxwidth,\c!maxheight,\c!minwidth,
- \c!margin,\c!sidespacebefore,\c!sidespaceafter,\c!sidealign,
- \c!leftmargindistance,\c!rightmargindistance,\c!criterium,
- \c!leftmargin,\c!rightmargin,\c!innermargin,\c!outermargin,
- \c!frame,\c!radius,\c!corner,\c!location,\c!background,\c!framecolor,
- \c!backgroundscreen,\c!backgroundcolor,\c!backgroundoffset,
- \c!topframe,\c!bottomframe,\c!leftframe,\c!rightframe,
- \c!frameoffset,\c!pageboundaries,\c!default,
- \c!textmethod,\c!sidemethod,\c!method]%
- \copyparameters[\??kj#1][\??kj#3]
- [\c!location,\c!before,\c!inbetween,\c!after,
- \c!spacebefore,\c!spaceinbetween,\c!spaceafter,
- \c!width,\c!headstyle,\c!headcolor,\c!style,\c!color,
- \c!textstyle,\c!textcolor,\c!minwidth,
- \c!leftmargin,\c!rightmargin,\c!innermargin,\c!outermargin,
- \c!align,\c!number,\c!way,\c!blockway,\c!setups,
- \c!sectionnumber,\c!separator,\c!stopper,\c!suffix,\c!distance,\c!conversion]%
- \definenumber[#1][#3]%
- \presetlabeltext[#1=\labeltext{#3}]%
- \dodefinefloatcommands[#1][#2]}
-
-\def\placefloat
- {\dotripleempty\docomplexplacefloat}
-
-\installinsertion\topins
-\installinsertion\botins
-
-\newdimen\botinserted
-\newdimen\topinserted
-
-%D Extra float registers.
-
-\newif\ifsomefloatwaiting \somefloatwaitingfalse
-\newif\ifroomforfloat \roomforfloattrue
-\newif\ifnofloatpermitted \nofloatpermittedfalse
-
-\newcount\totalnoffloats \totalnoffloats =0
-\newcount\savednoffloats \savednoffloats =0
-\newcount\noffloatinserts \noffloatinserts=0
-
-\newbox\floatlist
-\newbox\savedfloatlist
-
-\newif\ifflushingfloats \flushingfloatsfalse
-
-\newbox\floattext
-
-\newdimen\floattextwidth
-\newdimen\floattextheight
-
-\newbox\floatbox
-\newbox\savedfloatbox
-
-\newdimen\floatwidth
-\newdimen\floatheight
-
-% the tricky part of getting float related two pass data is
-% that we should fetch is early but can only save it with
-% the composed float box; this determines the order: get it
-% before saving it
-
-\definetwopasslist{\s!float\s!data} \newcounter\noffloatdata
-
-\let\twopassfloatdata\realpageno
-
-\def\dosavefloatdata % \expanded
- {\doglobal\increment\noffloatdata
- \lazysavetaggedtwopassdata{\s!float\s!data}{\noffloatdata}{\noffloatpages}{\noexpand\realfolio}}% later {}{}{}{} and \getfirst...
-
-\def\dogetfloatdata % precedes save !
- {\doglobal\increment\noffloatpages
- \findtwopassdata{\s!float\s!data}{\noffloatpages}%
- \iftwopassdatafound
- \globallet\twopassfloatdata\twopassdata
- \else
- \globallet\twopassfloatdata\realpageno % \realfolio
- \fi}
-
-\def\tracefloatnumber#1%
- {\doifnot\@@bknumbering\v!nocheck{\tagnodelocation{\v!float\@@thenumber{#1}}}}
-
-\newconditional\retainfloatnumber
-
-\def\preparefloatnumber#1%
- {\xdef\floatcaptionnumber{#1}%
- \doifelsenodelocation{\v!float\@@thenumber{#1}}
- \donothing {\chardef\nodelocationmode\zerocount}%
- \doifelse\@@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
- \nextnodelocation{\v!float\@@thenumber{#1}}% better \nextfloatnumber
- \analyzenodelocation{\v!float\@@thenumber{#1}}%
- \scratchcounter\getnodelocationo{\v!float\@@thenumber{#1}}%
- \advance\scratchcounter\minusone
- % here we correct for 'per whatever handling'
- \advance\scratchcounter-\accumulatednumber[#1]%
- \setnumber[#1]\scratchcounter
- \incrementnumber[#1]%
- \makesectionnumber[#1]%
- \restorenumber[#1]%
- % now we're back to normal numbering
- \fi}}
-
-%D test case:
-%D
-%D \starttyping
-%D \setupfloat[figure][criterium=\marginwidth,fallback=bottom]
-%D \dorecurse{3}{
-%D \chapter{test}
-%D \placefigure[bottom]{1}{\framed{bottom}}
-%D test
-%D \placetable[bottom]{1}{\framed{table}}
-%D test
-%D \placetable{2}{\framed{table}}
-%D test
-%D \placefigure[left]{2}{\framed{left but way too wide}}
-%D \input tufte
-%D \placefigure[left]{3}{\framed{left but ok}}
-%D \input tufte }
-%D \stoptyping
-
-% In \dofloatinfomessage wordt {{ }} gebruikt omdat anders
-% binnen \startpostponing...\stoppostponing geen goede
-% melding in de marge volgt: \ifinner is dan namelijk true.
-
-\def\dofloatinfomessage#1#2#3%
- {\bgroup
- \showmessage\m!floatblocks{#2}{#3}%
- \setmessagetext\m!floatblocks{#2}%
- \@EA\floatinfo\@EA#1\@EA{\currentmessagetext}%
- \egroup}
-
-\def\dosavefloatinfo
- {\dofloatinfomessage>2{\the\totalnoffloats}}
-
-\def\dofloatflushedinfo
- {\bgroup
- \!!counta\totalnoffloats
- \advance\!!counta -\savednoffloats
- \dofloatinfomessage<3{\the\!!counta}%
- \egroup}
-
-\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 !
- % retain special alignments
- \ifinsidecolumns
- \ifdim\wd\floatbox>\makeupwidth
- \wd\floatbox\makeupwidth
- \fi
- \fi
- \fi
- \else
- \setbox\floatbox\box\globalscratchbox % local !
- \fi
- \global\advance\savednoffloats \minusone
- \ifcase\savednoffloats
- \global\somefloatwaitingfalse
- \fi
- \else
- \global\savednoffloats\zerocount
- \global\setbox\floatbox\emptybox
- \fi}
-
-\def\uncenteredfloatbox
- {\ifcenterfloatbox
- \ifhbox\floatbox\relax % remove centering
- \ifdim\wd\floatbox=\hsize
- \ifhbox\floatbox
- \setbox\scratchbox\hbox
- {\unhbox\floatbox
- \unskip\unskip
- \global\setbox\globalscratchbox\lastbox}%
- \box\globalscratchbox
- \else
- \box\floatbox
- \fi
- \else
- \box\floatbox
- \fi
- \else
- \box\floatbox
- \fi
- \else
- \box\floatbox
- \fi}
-
-\def\dosavefloat
- {\global\setbox\floatlist\vbox
- {\nointerlineskip
- \uncenteredfloatbox
- \unvbox\floatlist}%
- \global\advance\savednoffloats \plusone
- \global\somefloatwaitingtrue
- \dosavefloatinfo
- \nonoindentation}
-
-\def\doresavefloat
- {\global\setbox\floatlist\vbox
- {\nointerlineskip
- \unvbox\floatlist
- \uncenteredfloatbox}%
- \global\advance\savednoffloats \plusone
- \global\somefloatwaitingtrue}
-
-\def\doreversesavefloat
- {\global\setbox\floatlist\vbox
- {\nointerlineskip
- \unvbox\floatlist
- \uncenteredfloatbox}%
- \global\advance\savednoffloats \plusone
- \global\somefloatwaitingtrue
- \dosavefloatinfo}
-
-% better (todo): \savednofsavedfloats
-
-\def\dosavefloatstatus
- {\global\setbox\savedfloatlist\copy\floatlist
- \global\setbox\savedfloatbox \copy\floatbox
- \xdef\dorestorefloatstatus
- {\global\setbox\floatlist\box\savedfloatlist
- \global\setbox\floatbox \box\savedfloatbox
- \global\savednoffloats\the\savednoffloats}}
-
-\let\dorestorefloatstatus\relax
-
-\ifx\doflushfloats\undefined \let\doflushfloats\relax \fi
-\ifx\flushfloatbox\undefined \let\flushfloatbox\relax \fi
-
-% needed in the splitter:
-
-\newcount\savedsavednoffloats
-
-\let\dopopsavedfloats\relax
-
-\def\dopushsavedfloats
- {\global\setbox\savedfloatlist\box\floatlist
- \global\savedsavednoffloats\savednoffloats
- \global\savednoffloats\savednoffloats
- \global\somefloatwaitingfalse
- \gdef\dopopsavedfloats
- {\global\advance\savednoffloats\savedsavednoffloats
- \global\setbox\floatlist\vbox\bgroup
- \ifvoid\floatlist \else\unvbox\floatlist \fi
- \ifvoid\savedfloatlist\else\unvbox\savedfloatlist\fi
- \egroup
- \global\ifcase\savednoffloats
- \somefloatwaitingfalse\else\somefloatwaitingtrue\fi
- \globallet\dopopsavedfloats\relax}}
-
-\def\doflushsavedfloats % simplified \OTRONEdodoflushfloats
- {\doloop
- {\ifsomefloatwaiting
- \dogetfloat
- \dofloatflushedinfo
- \docheckiffloatfits
- \ifroomforfloat
- \doplacefloatbox
- \else
- \doreversesavefloat
- \exitloop
- \fi
- \else
- \exitloop
- \fi}}
-
-% top and bottom
-
-\newif\iftopofinsert
-\newif\iftestfloatbox
-\newif\ifcenterfloatbox \centerfloatboxtrue
-\newif\iflocalcenterfloatbox \localcenterfloatboxfalse
-\newif\ifglobalcenterfloatbox \globalcenterfloatboxfalse
-
-% beter de laatste skip buiten de \insert uitvoeren,
-% bovendien bij volle flush onder baseline.
-
-\def\betweenfloatblanko% assumes that \@@bkspaceafter is present
- {\bgroup
- \setbox0\vbox{\strut\blank[\@@bkspacebefore]\strut}%
- \setbox2\vbox{\strut\blank[\@@bkspaceafter ]\strut}%
- \ifdim\ht0>\ht2
- \blank[-\@@bkspaceafter,\@@bkspacebefore]%
- \fi
- \egroup}
-
-\def\doplacefloatbox
- {%\forgetall % NJET!
- \whitespace
- \blank[\@@bkspacebefore]
- \flushfloatbox
- \blank[\@@bkspaceafter]}
-
-\ifx\someherefloat\undefined \let\someherefloat\doplacefloatbox \fi
-\ifx\somefixdfloat\undefined \let\somefixdfloat\doplacefloatbox \fi
-\ifx\somepagefloat\undefined \let\somepagefloat\doplacefloatbox \fi
-\ifx\sometopsfloat\undefined \let\sometopsfloat\doplacefloatbox \fi
-\ifx\somebotsfloat\undefined \let\somebotsfloat\doplacefloatbox \fi
-
-\ifx\somesidefloat\undefined \let\somesidefloat\doplacefloatbox \fi
-\ifx\somefacefloat\undefined \let\somefacefloat\doplacefloatbox \fi
-\ifx\sometextfloat\undefined \let\sometextfloat\doplacefloatbox \fi
-
-% 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\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}%
- \gdef\dostoptextfloat{\dodostoptextfloat[#1]}% brr global
- \global\floattextwidth\hsize
- \global\floatwidth\wd\floatbox
- \global\floatheight\ht\floatbox % forget about the depth
- \global\advance\floattextwidth -\floatwidth
- \global\advance\floattextwidth -\@@bkmargin\relax % was \tfskipsize
- \doifinsetelse\v!tall{#1}
- {\floattextheight\pagegoal
- \advance\floattextheight -\pagetotal
- \advance\floattextheight -\bigskipamount % lelijk
- \ifdim\floattextheight>\textheight
- \floattextheight\textheight
- \fi
- \boxmaxdepth\zeropoint \relax % toegevoegd
- \ifdim\floattextheight<\floatheight
- \floattextheight\floatheight
- \fi
- \setbox\floattext\vbox to \floattextheight}
- {\setbox\floattext\vbox}%
- \bgroup
- \forgetall \setupblank \setupwhitespace % new, also needed for footnotes
- \blank[\v!disable]
- \hsize\floattextwidth
- \ignorespaces}
-
-\def\dodostoptextfloat[#1]% % de tekst kan beter in een soort
- {\egroup % kadertekst zonder kader, is flexibeler
- \doifnotinset\v!tall{#1}% en beter
- {\ifdim\ht\floattext<\floatheight
- \floattextheight\floatheight
- \else
- \floattextheight\ht\floattext
- \fi}%
- \setbox\floatbox\vbox to \floattextheight
- {\hsize\floatwidth
- \doifinsetelse\v!both{#1}%
- {\doifinsetelse\v!low{#1}
- {\vfill\box\floatbox}
- {\doifinsetelse\v!middle{#1}
- {\vfill\box\floatbox\vfill}
- {\box\floatbox\vfill}}}
- {\box\floatbox\vfill}}%
- \setbox\floattext\vbox to \floattextheight
- {\hsize\floattextwidth
- \doifinsetelse\v!low{#1}
- {\vfill
- \box\floattext
- \doifinset\c!offset{#1}{\whitespace\blank}}
- {\doifinsetelse\v!middle{#1}
- {\vfill
- \box\floattext
- \vfill}
- {\doifinset\v!offset{#1}{\whitespace\blank}%
- \box\floattext
- \vfill}}}%
- \doifinsetelse\v!right{#1}% \floatmethod
- {\setbox\floatbox\hbox to \hsize
- {\box\floattext
- \hfill
- \box\floatbox}}
- {\setbox\floatbox\hbox to \hsize
- {\box\floatbox
- \hfill
- \box\floattext}}%
- \baselinecorrection
- \whitespace
- \blank[\@@bkspacebefore]%
- \doifnotinset\v!tall{#1}%
- {\dp\floatbox\openstrutdepth}% dp\strutbox}% % toegevoegd
- \box\floatbox
- \blank[\@@bkspaceafter]%
- \endgroup % **
- \doinsertfloatinfo}
-
-\def\somefacefloat[#1]% links, rechts, midden, hoog, midden, laag
- {%\checkwaitingfloats{#1}%
- \startopposite\box\floatbox\stopopposite
- \doinsertfloatinfo}
-
-\def\someelsefloat[#1]%
- {\doifinsetelse\v!here{#1}
- {\doifinsetelse\v!always{#1}
- {\page[\v!preference]%
- \docheckiffloatfits
- \ifroomforfloat
- \placesomeherefloat[#1]%
- \else
- \showmessage\m!floatblocks9\empty
- \doreversesavefloat
- \fi}
- {\ifsomefloatwaiting
- \dosavefloat
- \else
- \page[\v!preference]%
- \docheckiffloatfits
- \ifroomforfloat
- \placesomeherefloat[#1]%
- \else
- \dosavefloat
- \fi
- \fi}}
- {\doifinsetelse\v!always{#1}
- {\docheckiffloatfits
- \ifroomforfloat
- \sometopbottomfloat[#1]
- \else
- \showmessage\m!floatblocks9\empty
- \doreversesavefloat
- \fi}
- {\docheckiffloatfits
- \ifroomforfloat
- \sometopbottomfloat[#1]
- \else
- \dosavefloat
- \fi}}}
-
-\def\floatautofactor{.5}
-
-\def\sometopbottomfloat[#1]%
- {\doifelse\floatmethod\v!auto
- {\ifdim\pagetotal<\floatautofactor\pagegoal % when empty page, maxdimen
- \placesometopsfloat[#1]%
- \else
- \placesomebotsfloat[#1]%
- \fi}
- {\doifelse\floatmethod\v!top
- {\placesometopsfloat[#1]}
- {\doifelse\floatmethod\v!bottom
- {\placesomebotsfloat[#1]}
- {\placesomeherefloat[#1]}}}}
-
-% De onderstaande macro wordt gebruikt bij de macros
-% voor het plaatsen van tabellen en figuren (klopt niet
-% meer).
-%
-% \dofloat {plaats} {label1} {label2}
-%
-% \docompletefloat {nummer} {referentie} {lijst}
-% {plaats} {label1} {label2} {inhoud}
-%
-% \box\floatbox inhoud+referentie
-%
-% \do???float#1 #1 = boxnummer
-
-\newdimen\floatsideskip \floatsideskip =12pt
-\newdimen\floattopskip \floattopskip =\floattopskip
-\newdimen\floatbottomskip \floatbottomskip=\floattopskip
-
-\newdimen\sidefloattopskip \sidefloattopskip =\floattopskip
-\newdimen\sidefloatbottomskip \sidefloatbottomskip=\floatbottomskip
-
-\newskip\sidefloatdownshift
-\newskip\sidefloatleftshift
-\newskip\sidefloatrightshift
-
-\def\sidefloattopoffset {\openstrutdepth} % {\strutdp}
-
-\newcount\noftopfloats \noftopfloats=2
-\newcount\nofbotfloats \nofbotfloats=0
-
-\newif\ifnofloatcaption
-\newif\ifnofloatnumber
-\newif\ifemptyfloatcaption
-
-\def\docalculatefloatskip#1#2%
- {\doifelsenothing{#2}
- {\global#1\zeropoint}
- {\doifelse{#2}\v!none
- {\global#1\zeropoint}
- {\setbox0\vbox{\whitespace\expanded{\blank[#2]}}%
- \global#1\ht0}}}
-
-\def\calculatefloatskips
- {{\docalculatefloatskip\floattopskip \@@bkspacebefore
- \docalculatefloatskip\floatbottomskip \@@bkspaceafter
- \docalculatefloatskip\sidefloattopskip {\floatparameter\c!sidespacebefore}%
- \docalculatefloatskip\sidefloatbottomskip{\floatparameter\c!sidespaceafter }%
- \gdef \sidefloattopoffset{\openstrutdepth}% was \def
- \global\floatsideskip \floatparameter\c!margin
- \global\sidefloatleftshift \floatparameter\c!leftmargindistance
- \global\sidefloatrightshift\floatparameter\c!rightmargindistance
- \global\noftopfloats \@@bkntop \relax
- \global\nofbotfloats \@@bknbottom\relax}}
-
-\let\floatcaptionsuffix\empty % an optional suffix
-\let\floatcaptionnumber\empty % a logical counter
-
-% Quite experimental !
-
-% the split is needed when for instance the float goes into
-% a multi page field and the list of figs becomes larger than
-% one page: cycle between 'only flush when object ref ok'
-% and 'one/many page fig list'; see "uguide finometer"
-%
-% potential sync bug with sectionblocks, see uguide.tex
-
-\def\placefloatcaption
- {\dodoubleempty\doplacefloatcaption}
-
-\long\def\doplacefloatcaption[#1][#2]#3%
- {\setfloatcaption[#1][#2]{#3}%
- \placefloatcaptiontext[#1]%
- \placefloatcaptionreference[#1]}
-
-\def\setfloatcaption % \dosetfloatcaption already in use
- {\dodoubleempty\dodosetfloatcaption} % beware, name clash
-
-\long\def\dodosetfloatcaption[#1][#2]#3% to do namespace for number/ascii
- {\ifnofloatnumber % also handle trialtypesetting
- \letgvalue{@fl@r@#1}\relax
- \letgvalue{@fl@t@#1}\relax
- \else
- \preparefloatnumber{#1}%
- \letgvalue{@fl@n@#1}\composedsectionnumber
- % indirect macro can be more efficient
- \setgvalue{@fl@r@#1}%
- {\tracefloatnumber{#1}%
-\ifconditional\retainfloatnumber\else
- \dowritetolist{#1}{\getvalue{@fl@n@#1}}{#3}{#1}%
- \gdefconvertedargument\flasciititle{#3}% \asciititle is global
- \doifsomething{#2}{\rawreference\s!flt{#2}{{\getvalue{@fl@n@#1}}{\flasciititle}}}%
-\fi
- \letgvalue{@fl@r@#1}\relax}% nils
- \setgvalue{@fl@t@#1}%
- {\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}}%
- \doattributes{\??kj#1}\c!textstyle\c!textcolor
- {\dotfskip{\floatcaptionparameter\c!distance}#3}}}%
- \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
-
-\let\placefloatlabel \placefloatcaption
-\let\placefloatlabeltext \placefloatcaptiontext
-\let\placefloatlabelreference \placefloatcaptionreference
-
-\def\borderedfloatbox
- {\localframed[\??fl\currentfloat][\c!location=\v!normal]{\box\floatbox}}
-
-\newbox\captionbox
-
-\long\def\putcompletecaption#1#2%
- {\doifsomething{\floatcaptionparameter\c!spacebefore}{\blank[\floatcaptionparameter\c!spacebefore]}%
-% \floatcaptionparameter\c!before % test for side effects first
- \noindent
- \xdef\lastcaptiontag{\strut#1}%
- \dostartattributes{\??kj\currentfloat}\c!style\c!color\empty
- \ifnofloatnumber
- \else
- \hbox{\doattributes{\??kj\currentfloat}\c!headstyle\c!headcolor{\strut#1}}%
- \ifnofloatcaption \else \ifemptyfloatcaption \else
- \doifelsenothing{\floatcaptionparameter\c!spaceinbetween}
- {\scratchskip\floatcaptionparameter\c!distance\relax
- \dotfskip\scratchskip\emergencystretch.5\scratchskip}
- {\blank[\floatcaptionparameter\c!spaceinbetween]}%
- \fi \fi
- \fi
- \ifnofloatcaption
- \globallet\lastcaptionht\!!zeropoint
- \globallet\lastcaptiondp\!!zeropoint
- \else
- \doattributes{\??kj\currentfloat}\c!textstyle\c!textcolor
- {\xdef\lastcaptionht{\strutheight}%
- \xdef\lastcaptiondp{\strutdepth}%
- \begstrut#2\endstrut\endgraf}%
- \fi
- \dostopattributes
-% \floatcaptionparameter\c!after % test for side effects first
- \doifsomething{\floatcaptionparameter\c!spaceafter}{\blank[\floatcaptionparameter\c!spaceafter]}}
-
-\let\lastcaptionht\!!zeropoint
-\let\lastcaptiondp\!!zeropoint
-
-% new
-
-\newbox\tempfloatbox
-\newbox\tempcaptionbox
-
-\newif\iftracecaptions
-
-\def\settracedcaptionbox
- {\iftracecaptions\setbox\tempcaptionbox\ruledhbox{\box\tempcaptionbox}\fi}
-
-%\stelblokkopjesin[\c!width=5cm]
-%\stelblokkopjesin[\c!align=\v!left]
-%\stelblokkopjesin[\c!align=\v!right]
-
-
-% \definefloat [figure-1] [figure]
-% \definefloat [figure-2] [figure]
-% \setupfloat [figure-1] [location=left,leftmargin=10mm]
-% \setupfloat [figure-2] [location=left,leftmargin=-5mm]
-% \setupcaption [figure-1] [align=flushleft]
-% \setupcaption [figure-2] [align=flushleft,leftmargin=15mm]
-%
-% \startsetups somefigure
-% \ifdim\wd\nextbox>\textwidth
-% \placefloat[figure-2][][]{}{\box\nextbox}
-% \else
-% \placefloat[figure-1][][]{}{\box\nextbox}
-% \fi
-% \stopsetups
-%
-% \def\setupswithbox[#1]{\dowithnextbox{\setups[#1]}\vbox}
-%
-% test \setupswithbox[somefigure]{\framed[width=3cm] {}} test
-% test \setupswithbox[somefigure]{\framed[width=\dimexpr\textwidth+3cm\relax]{}} test
-
-\def\dosetcaptionthings
- {\setups[\floatcaptionparameter\c!setups]% expanded ?
-% \advance\leftskip \floatcaptionparameter\c!leftmargin
-% \advance\rightskip\floatcaptionparameter\c!rightmargin
- \relax}
-
-\def\dofakecaptionthings
- {\hbox{\dosetcaptionthings\hskip\leftskip\hskip\rightskip}}
-
-\long\def\docheckcaptioncontent#1#2%
- {\ifnofloatcaption \else
- \setbox\tempcaptionbox\hbox
- {\trialtypesettingtrue
- \notesenabledfalse
- \putcompletecaption{#1}{#2}}%
- % new, \placefigure{\XMLflush{somecaption}}{} passes earlier empty check
- % so here we misuse the scratch box; actually this means that the previous
- % test can go away (some day, when i redo this module)
- \ifdim\wd\tempcaptionbox=\zeropoint
- \global\emptyfloatcaptiontrue
- \ifnofloatnumber
- \global\nofloatcaptiontrue
- \fi
- \else
- \setbox\tempcaptionbox\hbox{\dosetcaptionthings\hskip\leftskip\box\tempcaptionbox}% yet incomplete
- \fi
- \fi}
-
-% minwidth=fit,width=max : no overshoot, as wide as graphic
-
-\ifx\moveboxontogrid\undefined \let\movecaptionontogrid\gobblethreearguments \fi
-
-\def\locatefloatbox
- {\chardef\alignstrutmode\zerocount
- \shiftalignedline
- {\floatparameter\c!leftmargin }{\floatparameter\c!rightmargin}%
- {\floatparameter\c!innermargin}{\floatparameter\c!outermargin}%
- \alignedline{\floatparameter\c!location}\v!middle}
-
-\def\locatecaptionbox
- {\chardef\alignstrutmode\zerocount
- \shiftalignedline
- {\floatcaptionparameter\c!leftmargin }{\floatcaptionparameter\c!rightmargin}%
- {\floatcaptionparameter\c!innermargin}{\floatcaptionparameter\c!outermargin}%
- \alignedline{\floatparameter\c!location}\v!middle}
-
-\long\def\dosetpagfloat#1#2#3% \copy wegwerken
- {\bgroup
- \setlocalfloathsize
- \ifnum\floatrotation>0
- \swapdimens\hsize\vsize
- \fi
- \forgetall
- \postponenotes
- \dontcomplain
- \setbox\tempfloatbox\vbox{\borderedfloatbox}%
- \let\locatefloat \locatefloatbox
- \let\locatecaption\locatecaptionbox
- \docheckcaptioncontent{#2}{#3}%
- \ifcase\floatparameter\c!method
- \or % automatic
- \ifnofloatcaption
- \dopreparenocaption{#1}{#2}{#3}%
- \edef\width{\the\wd\floatbox}%
- \doglobal\addlocalbackgroundtobox\floatbox
- \else
- % todo: installable maken, variant/method=auto vs macro
- \dopreparedocaption{#1}{#2}{#3}%
- \settracedcaptionbox
- \edef\width{\the\wd\tempfloatbox}%
- \addlocalbackgroundtobox\tempfloatbox
- \setbox\tempcaptionbox\hbox
- {\dosetcaptionthings
- \floatcaptionparameter\c!command{\box\tempcaptionbox}}%
- \moveboxontogrid\tempcaptionbox{\floatcaptionparameter\c!grid}\lastcaptionht
- \addlocalbackgroundtobox\tempcaptionbox
- \buildfloatbox
- \fi
- \or % semi automatic
- \or % manual
- \fi
- \ifnum\floatrotation>0
- \global\setbox\floatbox\vbox
- {\rotate[\c!rotation=\floatrotation]{\box\floatbox}}%
- \edef\width{\the\wd\tempfloatbox}%
- \else
- \postcenterfloatbox\width
- \fi
- \egroup}
-
-\def\captionminwidth {15\bodyfontsize}
-\def\captionovershoot {2em}
-
-\def\dopreparenocaption#1#2#3%
- {\global\setbox\floatbox\vbox % pas op als wd groter dan hsize
- {\ifinsidecolumns\ifdim\wd\tempfloatbox>\hsize
- \let\locatefloat\relax
- \fi\fi
- \locatefloat{\copy\tempfloatbox}}}
-
-\def\dopreparedocaption#1#2#3%
- {\doifinsetelse{\floatcaptionparameter\c!location}{\v!top,\v!bottom}
- {\doifinsetelse{\floatcaptionparameter\c!width}{\v!fit,\v!max}
- {\doifelse{\floatcaptionparameter\c!minwidth}\v!fit
- {\doifelse{\floatcaptionparameter\c!width}\v!max
- {\dopreparestackcaptionmax{#1}{#2}{#3}}
- {\ifdim\wd\tempcaptionbox>\wd\tempfloatbox % wider caption
- \doifelse{\floatcaptionparameter\c!width}\v!fit
- {\dopreparestackcaptionaut{#1}{#2}{#3}}
- {\dopreparestackcaptionwid{#1}{#2}{#3}}%
- \else
- \dopreparestackcaptionmin{#1}{#2}{#3}%
- \fi}}
- {\dopreparestackcaptionfix{#1}{#2}{#3}}}%
- {\dopreparesidewidthcaption{#1}{#2}{#3}}}% new, special effects (see icare)
- {\doifinsetelse{\floatcaptionparameter\c!width}{\v!fit,\v!max}
- {\dopreparesideautocaption{#1}{#2}{#3}}
- {\dopreparesidewidthcaption{#1}{#2}{#3}}}}
-
-% \def\dosettempcaptionbox
-% {\dosetraggedvbox{\floatcaptionparameter\c!align}%
-% \setbox\tempcaptionbox\raggedbox}
-
-\def\dosettempcaptionbox
- {\setbox\tempcaptionbox\vbox\bgroup
- %expanded{\setupalign[\v!new,\v!reset,\floatcaptionparameter\c!align,\v!old]}% wrong! see icare
- \expanded{\setupalign[\v!reset,\floatcaptionparameter\c!align]}% i need to check what reset does
- \dosetcaptionthings
- \let\next}
-
-\def\dopreparesideautocaption#1#2#3%
- {\scratchdimen\dimexpr\hsize-\wd\tempfloatbox-\@@bkmargin\relax % was \tfskipsize\relax
- \ifdim\wd\tempcaptionbox>\scratchdimen
- \ifdim\wd\tempcaptionbox<1.3\scratchdimen
- \scratchdimen0.8\scratchdimen
- \fi
- \fi
- \dosettempcaptionbox
- {\hsize\scratchdimen
- \putcompletecaption{#2}{#3}}}
-
-\def\dopreparesidewidthcaption#1#2#3%
- {\dosettempcaptionbox
- {\hsize\floatcaptionparameter\c!width
- \putcompletecaption{#2}{#3}}}
-
-\def\dopreparestackcaptionfix#1#2#3%
- {\dosettempcaptionbox
- {\hsize\floatcaptionparameter\c!minwidth % special effects
- \putcompletecaption{#2}{#3}}}
-
-\def\dopreparestackcaptionmax#1#2#3%
- {\dosettempcaptionbox
- {\hsize\wd\tempfloatbox
- \putcompletecaption{#2}{#3}}}
-
-\def\dopreparestackcaptionwid#1#2#3%
- {\dosettempcaptionbox
- {\hsize\floatcaptionparameter\c!width
- \putcompletecaption{#2}{#3}}}
-
-\def\dopreparestackcaptionmin#1#2#3%
- {\dosettempcaptionbox
- {\hsize\wd\tempfloatbox
- \doifnothing{\floatcaptionparameter\c!align}\raggedcenter % on purpose overloads align !
- \putcompletecaption{#2}{#3}}}
-
-\def\dopreparestackcaptionaut#1#2#3%
- {\doifsomething{\floatcaptionparameter\c!align}
- {\doifnotinset{\v!middle}{\floatcaptionparameter\c!align}%
- {\let\captionovershoot\!!zeropoint}}%
- \edef\captionhsize{\the\wd\tempfloatbox}%
- \ifdim\captionhsize>\hsize
- % float is wider than \hsize
- \dosettempcaptionbox
- {\trialtypesettingtrue
- \hsize\captionhsize
- \notesenabledfalse
- \putcompletecaption{#2}{#3}}%
- \ifdim\ht\scratchbox>\lineheight % more lines
- \dosettempcaptionbox
- {\hsize\captionhsize
- \advance\hsize -\captionovershoot\relax
- \ifdim\hsize<\captionminwidth\relax
- \hsize\captionhsize
- \fi
- \putcompletecaption{#2}{#3}}%
- \else
- \dosettempcaptionbox
- {\hsize\captionhsize
- \putcompletecaption{#2}{#3}}%
- \fi
- \else
- % float is smaller of equal to \hsize
- \ifdim\captionhsize<\captionminwidth\relax
- \scratchdimen\captionminwidth % float smaller than min width
- \edef\captionhsize{\the\scratchdimen}%
- \fi
- \setbox\scratchbox\vbox % test with overshoot
- {\trialtypesettingtrue
- \scratchdimen\captionhsize
- \advance\scratchdimen \captionovershoot
- \advance\scratchdimen 3em % an average word length
- \ifdim\scratchdimen<\hsize \hsize\scratchdimen \fi
- \notesenabledfalse
- \putcompletecaption{#2}{#3}}%
- \ifdim\ht\scratchbox>\lineheight
- % at least an average word longer than a line
- \dosettempcaptionbox
- {\scratchdimen\captionhsize
- \advance\scratchdimen \captionovershoot
- \ifdim\scratchdimen<\hsize \hsize\scratchdimen \fi
- \putcompletecaption{#2}{#3}}%
- \else
- % just over a line, don't use an overshoot % % % todo: outer/inner and such
- \doifcommonelse{\floatcaptionparameter\c!align}{\v!left,\v!right,\v!flushleft,\v!flushright}
- {\dosettempcaptionbox
- {\hsize\captionhsize
- % strange : \raggedcenter
- \putcompletecaption{#2}{#3}}}
- {% nicer
- \dosettempcaptionbox
- {\hsize\captionhsize
- \doifnothing{\floatcaptionparameter\c!align}\raggedcenter% overloads
- \putcompletecaption{#2}{#3}}}%
- \fi
- \fi}
-
-\newdimen\tempfloatheight
-\newdimen\tempfloatwidth
-
-\def\dofloatboxbetweenstack
- {\endgraf\nointerlineskip\floatcaptionparameter\c!inbetween\endgraf}
-
-\def\dofloatboxdefaultbuilder % done
- {\locatefloat{\box\tempfloatbox}}
-
-\def\dofloatboxnextrightbuilder#1%
- {\ifparfloat \hbox \else \expandafter \locatefloat \fi
- {\tempfloatheight\ht\tempfloatbox
- \box\tempfloatbox
- \expanded{\doifnotinset{\v!hang}{\floatcaptionparameter\c!location}}{\dotfskip{\floatcaptionparameter\c!distance}}%
- \vbox to\tempfloatheight{#1}}}
-
-\def\dofloatboxnextleftbuilder#1%
- {\ifparfloat \hbox \else \expandafter \locatefloat \fi
- {\tempfloatheight\ht\tempfloatbox
- \vbox to\tempfloatheight{#1}%
- \expanded{\doifnotinset{\v!hang}{\floatcaptionparameter\c!location}}{\dotfskip{\floatcaptionparameter\c!distance}}%
- \box\tempfloatbox}}
-
-\def\dofloatboxnextouterbuilder
- {\doifrightpagefloatelse\dofloatboxnextrightbuilder\dofloatboxnextleftbuilder}
-\def\dofloatboxnextinnerbuilder
- {\doifrightpagefloatelse\dofloatboxnextleftbuilder\dofloatboxnextrightbuilder}
-
-\def\dofloatboxnextrighthangbuilder#1%
- {\ifparfloat \hbox \else \expandafter \locatefloat \fi
- {\tempfloatheight\ht\tempfloatbox
- \box\tempfloatbox
- \vbox to\tempfloatheight{#1}}}
-
-\def\dofloatboxnextlefthangbuilder#1%
- {\ifparfloat \hbox \else \expandafter \locatefloat \fi
- {\tempfloatheight\ht\tempfloatbox
- \vbox to\tempfloatheight{#1}%
- \box\tempfloatbox}}
-
-\def\dodofloatboxnextrightmarginbuilder#1#2%
- {\ifparfloat
- \hbox\bgroup
- \tempfloatheight\ht\tempfloatbox
- \box\tempfloatbox
- \hsmash{\hskip#1\vbox to\tempfloatheight{#2}}%
- \egroup
- \else
- \begingroup
- \tempfloatheight\ht\tempfloatbox
- \everyrightofalignedline{\hsmash{\hskip#1\vbox to\tempfloatheight{#2}}}%
- \locatefloat{\box\tempfloatbox}%
- \endgroup
- \fi}
-
-\def\dodofloatboxnextleftmarginbuilder#1#2%
- {\ifparfloat
- \hbox\bgroup
- \tempfloatheight\ht\tempfloatbox
- \hsmash{\hskip-\dimexpr#1+\wd\tempcaptionbox\relax\vbox to\tempfloatheight{#2}}%
- \box\tempfloatbox
- \egroup
- \else
- \begingroup
- \tempfloatheight\ht\tempfloatbox
- \everyleftofalignedline{\hsmash{\hskip-\dimexpr#1+\wd\tempcaptionbox\relax\vbox to\tempfloatheight{#2}}}%
- \locatefloat{\box\tempfloatbox}%
- \endgroup
- \fi}
-
-\def\dofloatboxnextrightmarginbuilder{\dodofloatboxnextrightmarginbuilder\rightmargindistance}
-\def\dofloatboxnextleftmarginbuilder {\dodofloatboxnextleftmarginbuilder \leftmargindistance }
-
-\def\dofloatboxnextoutermarginbuilder
- {\doifrightpagefloatelse
- {\dodofloatboxnextrightmarginbuilder\rightmargindistance}
- {\dodofloatboxnextleftmarginbuilder \rightmargindistance}}
-
-\def\dofloatboxnextinnermarginbuilder
- {\doifrightpagefloatelse
- {\dodofloatboxnextleftmarginbuilder \leftmargindistance}
- {\dodofloatboxnextrightmarginbuilder\leftmargindistance}}
-
-\def\dofloatboxnextbuilder % beware, we first check on left/rightmargin because there can be left/right also
- {\let\next\dofloatboxnextleftbuilder
- \expanded{\processallactionsinset[\floatcaptionparameter\c!location]}
- [ \v!outermargin=>\let\next\dofloatboxnextoutermarginbuilder,
- \v!innermargin=>\let\next\dofloatboxnextinnermarginbuilder,
- \v!leftmargin=>\let\next\dofloatboxnextleftmarginbuilder,
- \v!rightmargin=>\let\next\dofloatboxnextrightmarginbuilder,
- \v!lefthanging=>\let\next\dofloatboxnextlefthangbuilder,
- \v!righthanging=>\let\next\dofloatboxnextrighthangbuilder,
- \v!outer=>\let\next\dofloatboxnextouterbuilder,
- \v!inner=>\let\next\dofloatboxnextinnerbuilder,
- \v!left=>\let\next\dofloatboxnextleftbuilder,
- \v!right=>\let\next\dofloatboxnextrightbuilder]%
- \next}
-
-\def\dofloatboxsidebuilder
- {\ifparfloat
- \let\next\dofloatboxhighbuilder
- \else
- \let\next\dofloatboxmiddlebuilder
- \expanded{\processallactionsinset[\floatcaptionparameter\c!location]}
- [ \v!low=>\let\next\dofloatboxlowbuilder,
- \v!middle=>\let\next\dofloatboxmiddlebuilder,
- \v!high=>\let\next\dofloatboxhighbuilder]%
- \fi
- \next}
-
-\def\doflushfloatleftcaptionhang
- {\hsmash{\llap{\box\tempcaptionbox\dotfskip{\floatcaptionparameter\c!distance}}}}
-\def\doflushfloatrightcaptionhang
- {\hsmash{\rlap{\dotfskip{\floatcaptionparameter\c!distance}\box\tempcaptionbox}}}
-
-\def\doflushfloatcaptionhang
- {\expanded{\doifinsetelse{\v!righthanging}{\floatcaptionparameter\c!location}}
- {\doflushfloatrightcaptionhang}
- {\expanded{\doifinsetelse{\v!lefthanging}{\floatcaptionparameter\c!location}}
- {\doflushfloatleftcaptionhang}
- {\expanded{\doifinsetelse{\v!hang}{\floatcaptionparameter\c!location}}
- {\expanded{\doifinsetelse{\v!outer}{\floatcaptionparameter\c!location}}
- {\doifrightpagefloatelse{\doflushfloatrightcaptionhang}{\doflushfloatleftcaptionhang}}
- {\expanded{\doifinsetelse{\v!right}{\floatcaptiondirectives}}
- {\doflushfloatrightcaptionhang}
- {\doflushfloatleftcaptionhang}}}
- {\box\tempcaptionbox}}}}
-
-\def\dofloatboxhighbuilder
- {\dofloatboxnextbuilder{\dofloatboxbetweenstack\doflushfloatcaptionhang\vfill}}
-
-\def\dofloatboxlowbuilder
- {\dofloatboxnextbuilder{\vfill\doflushfloatcaptionhang\dofloatboxbetweenstack}}
-
-\def\dofloatboxmiddlebuilder
- {\dofloatboxnextbuilder{\vfill\box\tempcaptionbox\vfill}}
-
-% \definefloat
-% [lefty][lefties][figure]
-% \setupfloat
-% [lefty]
-% [default=left,
-% rightmargindistance=-2cm,
-% leftmargindistance=-2cm]
-% \setupcaption
-% [lefty]
-% [location={bottom,overlay}]
-%
-% \starttext
-% \placelefty{}{} \input tufte \input tufte
-% \placelefty{}{} \input tufte \input tufte
-% \stoptext
-
-\def\bothangfloat#1{\ruledvbox to \ht\tempfloatbox{#1\vss}}
-\def\tophangfloat#1{\ruledvbox to \ht\tempfloatbox{\vss#1}}
-
-\def\dofloatboxnormaltopstackbuilder
- {\expanded{\doifinset{\v!overlay}{\floatcaptionparameter\c!location}}\tophangfloat
- {\tempfloatwidth\wd\tempfloatbox
- \ifparfloat
- \hbox{\locatesidefloat{\box\tempcaptionbox}}%
- \dofloatboxbetweenstack
- \hbox{\hbox {\box\tempfloatbox }}%
- \else
- \hbox{\locatetextfloat{\box\tempcaptionbox}}
- \dofloatboxbetweenstack
- \hbox{\locatefloat {\box\tempfloatbox }}%
- \fi}}
-
-\def\dofloatboxnormalbotstackbuilder
- {\expanded{\doifinset{\v!overlay}{\floatcaptionparameter\c!location}}\bothangfloat
- {\tempfloatwidth\wd\tempfloatbox
- \ifparfloat
- \hbox{\hbox {\box\tempfloatbox }}%
- \dofloatboxbetweenstack
- \hbox{\locatesidefloat{\box\tempcaptionbox}}%
- \else
- \hbox{\locatefloat {\box\tempfloatbox }}%
- \dofloatboxbetweenstack
- \hbox{\locatetextfloat{\box\tempcaptionbox}}%
- \fi}}
-
-\def\dofloatboxgridtopstackbuilder
- {\dp\tempcaptionbox\strutdepth
- \setbox\scratchbox\vbox
- {\tempfloatwidth\wd\tempfloatbox
- \ifparfloat
- \locatesidefloat{\box\tempcaptionbox}%
- \vss\dofloatboxbetweenstack
- \hbox {\box\tempfloatbox }%
- \else
- \locatetextfloat{\box\tempcaptionbox}%
- \vss\dofloatboxbetweenstack
- \locatefloat {\box\tempfloatbox }%
- \fi}%
- \getnoflines{\dimexpr\htdp\scratchbox-10\scaledpoint\relax}% get rid of inaccuracy
- \vbox to \noflines\lineheight{\unvbox\scratchbox}}
-
-\def\dofloatboxgridbotstackbuilder
- {\dp\tempcaptionbox\strutdepth
- \setbox\scratchbox\vbox
- {\tempfloatwidth\wd\tempfloatbox
- \ifparfloat
- \hbox {\box\tempfloatbox }%
- \vss\dofloatboxbetweenstack
- \locatesidefloat{\box\tempcaptionbox}%
- \else
- \locatefloat {\box\tempfloatbox }%
- \vss\dofloatboxbetweenstack
- \locatetextfloat{\box\tempcaptionbox}%
- \fi}%
- \getnoflines{\dimexpr\htdp\scratchbox-10\scaledpoint\relax}% get rid of inaccuracy
- \vbox to \noflines\lineheight{\unvbox\scratchbox}}
-
-\def\dofloatboxstretchtopstackbuilder
- {\dp\tempcaptionbox\strutdepth
- \setbox\scratchbox\vbox
- {\locatecaption{\copy\tempcaptionbox}%
- \locatefloat {\copy\tempfloatbox }}%
- \getnoflines{\dimexpr\htdp\scratchbox-10\scaledpoint\relax}% get rid of inaccuracy
- \vbox to \noflines\lineheight
- {\tempfloatwidth\wd\tempfloatbox
- \ifparfloat
- \locatesidefloat{\box\tempcaptionbox}%
- \vss\dofloatboxbetweenstack\vss
- \hbox {\box\tempfloatbox }%
- \else
- \locatetextfloat{\box\tempcaptionbox}%
- \vss\dofloatboxbetweenstack\vss
- \locatefloat {\box\tempfloatbox }%
- \fi}}
-
-\def\dofloatboxstretchbotstackbuilder
- {\dp\tempcaptionbox\strutdepth
- \setbox\scratchbox\vbox
- {\locatefloat {\copy\tempfloatbox }%
- \locatecaption{\copy\tempcaptionbox}}%
- \getnoflines{\dimexpr\htdp\scratchbox-10\scaledpoint\relax}% get rid of inaccuracy
- \vbox to \noflines\lineheight
- {\tempfloatwidth\wd\tempfloatbox
- \ifparfloat
- \hbox {\box\tempfloatbox }%
- \vss\dofloatboxbetweenstack\vss
- \locatesidefloat{\box\tempcaptionbox}
- \else
- \locatefloat {\box\tempfloatbox }%
- \vss\dofloatboxbetweenstack\vss
- \locatetextfloat{\box\tempcaptionbox}%
- \fi}}
-
-\def\dofloatboxtopbuilder
- {\let\next\dofloatboxnormaltopstackbuilder
- \expanded{\processfirstactioninset[\floatcaptionparameter\c!location]}
- [ \v!grid=>\let\next\dofloatboxgridstackbuilder,
- \v!stretch=>\let\next\dofloatboxstretchstackbuilder]%
- \next}
-
-\def\dofloatboxbottombuilder
- {\let\next\dofloatboxnormalbotstackbuilder
- \expanded{\processfirstactioninset[\floatcaptionparameter\c!location]}
- [ \v!grid=>\let\next\dofloatboxgridstackbuilder,
- \v!stretch=>\let\next\dofloatboxstretchstackbuilder]%
- \next}
-
-\def\relocatecaptionright#1{\locatecaption{\hbox to \tempfloatwidth{\hss#1}}}
-\def\relocatecaptionleft #1{\locatecaption{\hbox to \tempfloatwidth{#1\hss}}}
-
-\long\def\installfloatboxbuilder#1#2{\setvalue{\??kj:#1}{#2}}
-
-\def\buildfloatbox
- {\global\setbox\floatbox\vbox
- {\setlocalfloathsize
- \forgetall
- \let\floatcaptionarrangement\s!default
- \def\docommand##1%
- {\doifdefined{\??kj:##1}{\def\floatcaptionarrangement{##1}\quitcommalist}}%
- \processcommacommand[\floatcaptionparameter\c!location]\docommand
- \executeifdefined{\??kj:\floatcaptionarrangement}{\getvalue{\??kj:\s!default}}}}
-
-\def\locatetextfloat
- {\let\next\locatecaption
- \expanded{\processallactionsinset[\floatcaptionparameter\c!location]}
- [ \v!left=>\let\next\relocatecaptionleft,
- \v!right=>\let\next\relocatecaptionright,
- \v!inner=>\doifrightpagefloatelse{\let\next\relocatecaptionleft }{\let\next\relocatecaptionright},
- \v!outer=>\doifrightpagefloatelse{\let\next\relocatecaptionright}{\let\next\relocatecaptionleft }]%
- \next}
-
-\installfloatboxbuilder \v!none \dofloatboxdefaultbuilder
-\installfloatboxbuilder \s!default \dofloatboxdefaultbuilder
-\installfloatboxbuilder \v!high \dofloatboxhighbuilder
-\installfloatboxbuilder \v!low \dofloatboxlowbuilder
-\installfloatboxbuilder \v!middle \dofloatboxmiddlebuilder
-
-\installfloatboxbuilder \v!left \dofloatboxsidebuilder
-\installfloatboxbuilder \v!right \dofloatboxsidebuilder
-
-\installfloatboxbuilder \v!top \dofloatboxtopbuilder
-\installfloatboxbuilder \v!bottom \dofloatboxbottombuilder
-
-% \setuplayout[grid=yes] \showgrid \setupcaptions[style=smallbodyfont,location=grid,inbetween=]
-%
-% \starttext
-% test \placefigure{} {\externalfigure[cow.pdf][frame=on,grid=yes]} test \page
-% test \placefigure{\input zapf\relax}{\externalfigure[cow.pdf][frame=on,grid=yes]} test \page
-% test \placefigure{} {\externalfigure[cow.pdf][frame=on,grid=depth]} test \page
-% test \placefigure{\input zapf\relax}{\externalfigure[cow.pdf][frame=on,grid=depth]} test \page
-% \stoptext
-
-\newif\ifpostponecolumnfloats \postponecolumnfloatsfalse % don't change
-
-\chardef\postcenterfloatmethod\plusone
-
-\def\postcenterfloatbox#1%
- {\scratchdimen
- \ifcase\postcenterfloatmethod
- #1% \wd\floatbox
- \or\ifinsidecolumns
- \ifpostponecolumnfloats\makeupwidth\else#1\fi
- \else\ifdim#1>\hsize
- \hsize
- \else
- \wd\floatbox
- \fi\fi\fi
- \global\setbox\floatbox\hbox to \scratchdimen
- % {\hfill\box\floatbox\hfill}} % geen \hss, gaat mis in kolommen !
- % {\hss \box\floatbox\hss }} % wel \hss, anders mis in colset
- {\ifglobalcenterfloatbox
- \donetrue
- \else\iflocalcenterfloatbox
- \donetrue
- \else
- \donefalse
- \fi\fi
- \ifdim\scratchdimen>\effectivehsize
- \donefalse
- \fi
- \hss\ifdone\hskip\effectiveleftskip\fi
- \box\floatbox
- \ifdone\hskip\effectiverightskip\fi\hss}}
-
-\long\def\dosetparfloat#1#2#3%
- {\bgroup
- \forgetall
- \postponenotes
- \dontcomplain
- %\showcomposition
- \setbox\tempfloatbox\vbox{\borderedfloatbox}%
- \addlocalbackgroundtobox\tempfloatbox % no \doglobal
- \docheckcaptioncontent{#2}{#3}%
- \ifnofloatcaption
- \global\setbox\floatbox\vbox{\box\tempfloatbox}%
- \else
- \dopreparedosidecaption{#1}{#2}{#3}%
- \settracedcaptionbox
- \setbox\tempcaptionbox\hbox{\floatcaptionparameter\c!command{\box\tempcaptionbox}}%
- \moveboxontogrid\tempcaptionbox{\floatcaptionparameter\c!grid}\lastcaptionht
- \addlocalbackgroundtobox\tempcaptionbox % no \doglobal
- \buildsidefloatbox
- \fi
- \egroup}
-
-\def\dopreparedosidecaption#1#2#3% will be enhanced
- {\doifelse{\floatcaptionparameter\c!width}\v!max
- {\dosettempcaptionbox
- {\hsize\wd\tempfloatbox
- \putcompletecaption{#2}{#3}}}%
- {\doifelse{\floatcaptionparameter\c!width}\v!fit
- {\ifdim\wd\tempcaptionbox>\wd\tempfloatbox\relax
- \setbox\tempcaptionbox\vbox
- {\forgetall % needed?
- \hsize\wd\tempfloatbox
- \dosetcaptionthings
- \putcompletecaption{#2}{#3}}%
- \else
- \setbox\tempcaptionbox\hbox to \wd\tempfloatbox
- {\hss\box\tempcaptionbox\hss}%
- \fi}
- {\dosettempcaptionbox
- {\hsize\floatcaptionparameter\c!width % \wd\tempfloatbox
- \putcompletecaption{#2}{#3}}}}}
-
-\def\buildsidefloatbox
- {\let\locatefloat \relax
- \let\locatecaption\relax
- \def\locatesidefloat##1%
- {\begingroup
- \chardef\alignstrutmode\zerocount
- \hsize\tempfloatwidth \forgetall
- \alignedline{\floatparameter\c!location}\v!middle{##1}%
- \endgroup}%
- \buildfloatbox}
-
-\newif\ifparfloat
-
-\long\def\dosetfloatbox#1#2#3% todo : \global\setbox
- {\ifvisible
- \par
- \edef\floatcaptiondirectives{\floatparameter\c!location,\floatcaptionparameter\c!location}%
- \ifparfloat\@EA\dosetparfloat\else\@EA\dosetpagfloat\fi{#1}{#2}{#3}%
- \setlocalfloatdimensions{#1}%
- \setbox\floatbox\hbox
- {\dosavefloatdata\restoretextcolor{\box\floatbox}}%
- \global\floatheight\ht\floatbox
- \global\advance\floatheight \dp\floatbox
- \global\floatwidth\wd\floatbox
- \global\advance\totalnoffloats \plusone
- \doifnotinset\v!margin{#1} % gaat namelijk nog fout
- {\setbox\floatbox\vbox
- {\parindent\zeropoint
- \doifconcepttracing{\inleftmargin{\framed{\infofont\the\totalnoffloats}}}%
- \box\floatbox}}%
- \wd\floatbox\floatwidth
- \dimen0=\floatheight
- \advance\dimen0 \lineheight
- \ifdim\dimen0<\textheight
- \else
- \global\floatheight\textheight
- \global\advance\floatheight -\lineheight
- \ht\floatbox\floatheight
- \dp\floatbox\zeropoint
- \showmessage\m!floatblocks{10}{\the\totalnoffloats}%
- \fi
- \fi}
-
-\newcounter\noxfloatlocations
-
-\long\def\dofloat#1#2#3%
- {\dosetfloatbox{#1}{#2}{#3}%
- \dogetfloatbox{#1}\empty}
-
-\let\naturalfloatheight\!!zeropoint
-\let\naturalfloatwidth \!!zeropoint
-\let\naturalfloatdepth \!!zeropoint
-
-\def\setnaturalfloatdimensions#1%
- {\xdef\naturalfloatheight{\the\ht#1}%
- \xdef\naturalfloatwidth {\the\wd#1}%
- \xdef\naturalfloatdepth {\the\dp#1}}
-
-\long\def\doifelsemainfloatbody#1#2%
- {\ifinsidesplitfloat\ifconditional\splitfloatfirstdone#2\else#1\fi\else#1\fi}
-
-
-\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
- \doifelsemainfloatbody{\rawpagereference\s!flt{#2}}\donothing
- \vss}% gets rid of the depth (unless tabulate)
- \egroup
- \dofloat{#4}{}{#6}%
- \else
- \gdefconvertedargument\asciititle{#6}% \asciititle is global
- \ifnofloatnumber
- \global\setbox\floatbox\vbox
- {\unvbox\floatbox % no \vss, keep the depth
- \doifelsemainfloatbody{\rawreference\s!flt{#2}{{}{\asciititle}}}\donothing}%
- \egroup
- \dofloat{#4}{}{#6}%
- \else
- \preparefloatnumber{#1}%
- \global\setbox\floatbox\vbox
- {\unvbox\floatbox % no \vss, keep the depth
- \doifelsemainfloatbody
- {\tracefloatnumber{#1}%
- \rawreference\s!flt{#2}{{\composedsectionnumber}{\asciititle}}%
- \dowritetolist{#3}{\composedsectionnumber}{#6}{#3}}
- \donothing
- }%
- \egroup
- \preparefullnumber{\??kj#1}\composedsectionnumber\preparednumber
- \dofloat{#4}{\labeltexts{#5}{\preparednumber}}{#6}%
- \fi
- \fi
- \global\insidefloatfalse}
-
-\def\dooutput{\sidefloatoutput} % redefinition of \dooutput
-
-\definefloat
- [\v!figure]
- [\v!figures]
-
-\definefloat
- [\v!table]
- [\v!tables]
-
-\setupfloat
- [\v!table]
- [\c!frame=\v!off]
-
-\definefloat
- [\v!intermezzo]
- [\v!intermezzi]
-
-\definefloat
- [\v!graphic]
- [\v!graphics]
-
-\setupcaptions
- [\c!location=\v!bottom,
- \c!grid=,
- \c!before=, % not used (yet)
- \c!inbetween={\blank[\v!medium]},
- \c!after=, % not used (yet)
- \c!spacebefore=,
- \c!spaceinbetween=, % replaces fuzzy inbetween dual usage
- \c!spaceafter=,
- \c!width=\v!fit,
- \c!minwidth=\v!fit, % id est: the width of the floatbox in some cases
- \c!headstyle=\v!bold,
- \c!headcolor=,
- \c!leftmargin=\zeropoint,
- \c!rightmargin=\zeropoint,
- \c!outermargin=\zeropoint,
- \c!innermargin=\zeropoint,
- \c!setups=,
- \c!style=\v!normal,
- \c!color=,
- \c!textstyle=,
- \c!textcolor=,
- \c!align=,
- \c!number=\v!yes,
- \c!way=\@@nrway,
- \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]
-
-\setupfloats
- [\c!location=\v!middle,
- \c!width=8\lineheight,
- \c!height=6\lineheight,
- \c!offset=\v!overlay,
- \c!frame=\v!off,
- \c!radius=.5\bodyfontsize,
- \c!corner=\v!rectangular,
- \c!background=,
- \c!backgroundscreen=\@@rsscreen,
- \c!backgroundcolor=,
- \c!backgroundoffset=\!!zeropoint,
- \c!topframe=,
- \c!bottomframe=,
- \c!leftframe=,
- \c!rightframe=,
- \c!framecolor=,
- \c!frameoffset=\!!zeropoint,
- \c!before=,
- \c!after=,
- \c!spacebefore=\v!big,
- \c!spaceafter=\v!big,
- \c!sidespacebefore=\@@bkspacebefore,
- \c!sidespaceafter=\@@bkspaceafter,
- \c!sidealign=\v!normal,
- \c!textmethod=\ifgridsnapping2\else0\fi, % 0=raw 1=safe (.99pg) 2=tight (-1pt)
- \c!sidemethod=\ifgridsnapping2\else1\fi, % 0=raw 1=safe (.99pg) 2=tight (-1pt)
- \c!indentnext=\v!no,
- \c!margin=1em,
- \c!method=1,
- \c!cache=\v!yes, % when no, then intermediate flush
- \c!leftmargin=\zeropoint, % displacement in 'normal floats'
- \c!rightmargin=\zeropoint, % idem
- \c!innermargin=\zeropoint, % idem
- \c!outermargin=\zeropoint, % idem
- \c!leftmargindistance=\zeropoint,
- \c!rightmargindistance=\@@bkleftmargindistance,
- \c!ntop=2,
- \c!nbottom=0,
- \c!nlines=4,
- \c!local=,
- \c!default=, % was \v!figure but this is the location
- \c!numbering=\v!yes]
-
-% float strategy, replaces some of the above macros
-
-\let\floatmethod \empty
-\let\floatcolumn \empty
-\let\floatrow \empty
-\let\forcedfloatmethod\empty
-
-\def\dogetfloatbox#1#2%
- {\ifvisible
- \doifelsenothing{#2}
- {\getfromcommalist[#1][1]%
- \@EA\beforesplitstring\commalistelement\at:\to\floatmethod
- \@EA\aftersplitstring \commalistelement\at:\to\floatcolumn
- \@EA\aftersplitstring \floatcolumn\at*\to\floatrow
- \@EA\beforesplitstring\floatcolumn\at*\to\floatcolumn
- % todo: nog algemeen otr
- \ifx\OTRSETsetpreferedcolumnslot\undefined\else
- \OTRSETsetpreferedcolumnslot\floatcolumn\floatrow
- \fi}
- {\let\floatcolumn\empty
- \let\floatrow\empty
- \edef\floatmethod{#2}}%
- \doifundefined{\string\floatmethod\floatmethod}
- {\let\floatmethod\v!here}%
- \doifsomething\forcedfloatmethod
- {\edef\floatmethod{\forcedfloatmethod}}%
- %\getvalue{\string\floatmethod\floatmethod}[#1]%
- \getvalue{\string\floatmethod\floatmethod}[\floatmethod,#1]%
- \fi}
-
-\def\installfloathandler#1#2% #1=keyword #2=handler
- {\setvalue{\string\floatmethod#1}{#2}}
-
-\installfloathandler \v!here \someherefloat
-\installfloathandler \v!force \somefixdfloat
-\installfloathandler \v!left \someleftsidefloat
-\installfloathandler \v!right \somerightsidefloat
-\installfloathandler \v!text \sometextfloat
-\installfloathandler \v!top \sometopfloat
-\installfloathandler \v!bottom \somebottomfloat
-\installfloathandler \v!auto \someautofloat
-\installfloathandler \v!margin \somemarginfloat
-\installfloathandler \v!opposite \somefacefloat
-\installfloathandler \v!page \somepagefloat
-\installfloathandler \v!leftpage \someleftpagefloat
-\installfloathandler \v!rightpage \somerightpagefloat
-\installfloathandler \v!inmargin \someinmarginfloat
-\installfloathandler \v!inleft \someinleftmarginfloat
-\installfloathandler \v!inright \someinrightmarginfloat
-\installfloathandler \v!leftmargin \someinleftmarginfloat
-\installfloathandler \v!rightmargin \someinrightmarginfloat
-\installfloathandler \v!leftedge \someinleftedgefloat
-\installfloathandler \v!rightedge \someinrightedgefloat
-
-\installfloathandler \v!backspace \somebackspacefloat
-\installfloathandler \v!cutspace \somecutspacefloat
-
-\installfloathandler {tblr} \someslotfloat
-\installfloathandler {lrtb} \someslotfloat
-\installfloathandler {tbrl} \someslotfloat
-\installfloathandler {rltb} \someslotfloat
-\installfloathandler {btlr} \someslotfloat
-\installfloathandler {lrbt} \someslotfloat
-\installfloathandler {btrl} \someslotfloat
-\installfloathandler {rlbt} \someslotfloat
-\installfloathandler {fxtb} \someslotfloat
-\installfloathandler {fxbt} \someslotfloat
-
-\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]}
-\def\someinleftedgefloat [#1]{\somesidefloat[#1]}
-\def\someinrightedgefloat [#1]{\somesidefloat[#1]}
-\def\someinmarginfloat [#1]{\somesidefloat[#1]}
-\def\someherefloat [#1]{\someelsefloat[\v!here,#1]}
-
-\def\somebackspacefloat [#1]{\somesidefloat[#1]}
-\def\somecutspacefloat [#1]{\somesidefloat[#1]}
-
-\def\somefixdfloat {\placesomefixdfloat}
-\def\somepagefloat {\placesomepagefloat}
-\def\someleftpagefloat {\placesomeleftpagefloat}
-\def\somerightpagefloat{\placesomerightpagefloat}
-\def\somefacefloat {\placesomefacefloat}
-\def\someslotfloat {\placesomeslotfloat}
-
-%D Local floats.
-
-\def\setuplocalfloats
- {\getparameters[\??lf]}
-
-\setuplocalfloats
- [%\c!before=\blank,
- %\c!after=\blank,
- \c!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}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-itm.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-itm.mkii
deleted file mode 100644
index 697618323bb..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/strc-itm.mkii
+++ /dev/null
@@ -1,1335 +0,0 @@
-%D \module
-%D [ file=strc-itm, % updated
-%D version=1997.03.31,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=itemgroups,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% new: text + lefttext=(,righttext=)
-% start=
-
-\writestatus{loading}{ConTeXt Structure Macros / Itemgroups}
-
-\unprotect
-
-% - instellingen in macro
-% - [0] voor start op 0
-% - start=2
-
-\newconditional\sublistitem \setfalse\sublistitem
-\newconditional\symbollistitem \setfalse\symbollistitem
-\newconditional\headlistitem \setfalse\headlistitem
-\newconditional\introlistitem \setfalse\introlistitem
-\newconditional\randomizeitems \setfalse\randomizeitems
-\newconditional\autointrolistitem \setfalse\autointrolistitem
-\newconditional\optimizelistitem \settrue \optimizelistitem
-\newconditional\packlistitem \setfalse\packlistitem
-\newconditional\paragraphlistitem \setfalse\paragraphlistitem
-\newconditional\textlistitem \setfalse\textlistitem
-\newconditional\firstlistitem \setfalse\firstlistitem
-\newconditional\beforelistitem \setfalse\beforelistitem
-\newconditional\afterlistitem \setfalse\afterlistitem
-\newconditional\nowhitelistitem \setfalse\nowhitelistitem
-\newconditional\joinedlistitem \setfalse\joinedwhitelistitem
-\newconditional\reverselistitem \setfalse\reverselistitem
-\newconditional\continuelistitems \setfalse\continuelistitems
-\newconditional\fittinglistitems \setfalse\fittinglistitems
-
-\newcount\noflists
-\newcount\currentnoflists
-\newcount\itemcolumndepth
-\newcount\itemdepth
-\newcount\maxitemdepth
-
-\definetwopasslist\s!list
-
-\let\currentitemlevel \!!zerocount
-\let\currentitemgroup \empty
-\let\currentnofitems \!!zerocount
-\let\currentmaxnofitems\!!zerocount
-\let\currentminnofitems\!!zerocount
-\let\currentitemoffset \!!zerocount
-\def\currentitemnumber{\countervalue{\@@itemcounter\currentitemlevel}}
-
-% tricky ... we cannot use trialtypesetting here because there can be
-% multiple itemizes in e.g. a table, so we need something more advanced
-% where counters etc are reset to pre-outertrial values
-
-\def\dolistreference
- {\ifconditional\continuelistitems
- \savetaggedtwopassdata\s!list{\number\currentnoflists}{\number\currentnoflists}%
- {\currentitemlevel:\noflistelements:c:\getitemparameter\currentitemlevel\c!maxwidth}%
- \else
- \savetaggedtwopassdata\s!list{\number\currentnoflists}{\number\currentnoflists}%
- {\currentitemlevel:\noflistelements:n:\getitemparameter\currentitemlevel\c!maxwidth}%
- \fi}
-
-\def\splititemtwopassdata#1%
- {\expanded{\findtwopassdata{\s!list}{\number#1}}%
- \expandafter\dosplititemtwopassdata\twopassdata:0:0:0:0:0\relax}
-
-\def\dosplititemtwopassdata#1:#2:#3:#4:#5\relax
- {\edef\itemdatal{#1}\edef\itemdatan{#2}\edef\itemdatat{#3}\edef\itemdataw{#4}}
-
-\def\checkcurrentnofitems
- {\splititemtwopassdata\currentnoflists
- \iftwopassdatafound
- \ifcase\itemdatan\relax % \scratchcounter
- \let\currentnofitems \!!zerocount
- \let\currentminnofitems\!!plusone
- \let\currentmaxnofitems\!!zerocount
- \else
- \scratchcounter\itemdatan\relax
- \edef\currentnofitems{\the\scratchcounter}%
- \let\currentitemtag\itemdatat
- \doloop
- {\splititemtwopassdata{\numexpr\currentnoflists+\recurselevel\relax}%
- \iftwopassdatafound
- \ifnum\itemdatal=\currentitemlevel\relax
- \doifelse{c}\itemdatat
- {\advance\scratchcounter\itemdatan\relax}
- {\exitloop}%
- \fi
- \else
- \exitloop
- \fi}%
- \edef\currentmaxnofitems{\the\scratchcounter}%
- \scratchcounter\zerocount
- \doif{c}\currentitemtag
- {\doloop
- {\splititemtwopassdata{\numexpr\currentnoflists-\recurselevel\relax}%
- \iftwopassdatafound
- \ifnum\itemdatal=\currentitemlevel\relax
- \doifelse{c}\itemdatat
- {\advance\scratchcounter\itemdatan\relax}
- {\advance\scratchcounter\itemdatan\exitloop}%
- \fi
- \else
- \exitloop
- \fi}}%
- \advance\scratchcounter\plusone
- \edef\currentminnofitems{\the\scratchcounter}%
- % [[\currentnofitems,\currentminnofitems,\currentmaxnofitems]]
- \fi
- \else % new, when no tuo yet
- \let\currentnofitems \!!zerocount
- \let\currentminnofitems\!!plusone
- \let\currentmaxnofitems\!!zerocount
- \fi} % [[\currentnofitems,\currentminnofitems,\currentmaxnofitems]]
-
-% \startitemize[n,packed]
-% \item test \item test \item test
-% \stopitemize
-%
-% \startitemize[n,packed,reverse]
-% \item test \item test \item test
-% \stopitemize
-%
-% \startitemize[n,packed,reverse] \item test \item test \stopitemize
-% \startitemize[continue]
-% \item test \startitemize[n,packed] \item test \item test \stopitemize
-% \item test
-% \item test
-% \stopitemize
-% \startitemize[continue] \item test \stopitemize
-%
-% \startitemize[n,packed] \item test \item test \stopitemize
-% \startitemize[continue] \item test \stopitemize
-% \startitemize[continue] \item test \stopitemize
-
-\def\unknownitemreference{0} \let\itemreferences\unknownitemreference
-
-% #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} % #3 -> {#3}
-\def\letitemparameter #1#2{\@EA\let\csname\??op\currentitemgroup#1#2\endcsname}
-
-% works ok but not needed (also possible compatibility problem)
-%
-% \def\getitemparameter#1#2%
-% {\executeifdefined{\??op\currentitemgroup#1#2}%
-% {\executeifdefined{\??op\currentitemgroup #2}%
-% {\executeifdefined{\??oo #2}%
-% {}}}}
-
-% test this: saves hash entries and is also faster
-%
-% \let\doinitializeitemgrouplevel\gobbleoneargument % todo ! ! !
-
-\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}
-\def\@@localitemsymbol #1{\??op\currentitemgroup\c!symbol\s!local #1}
-\def\@@currentitemsymbol#1{\??op\currentitemgroup\c!symbol #1}
-
-\def\@@itemcounter{\s!itemcount\currentitemgroup}
-
-% \def\doitembreak#1{\ifconditional\textlistitem\else\dosomebreak#1\fi}
-%
-% s-pre-61 / pre-dis, test extensively, 2004/5
-
-\def\doitembreak#1{\ifconditional\optimizelistitem\ifconditional\textlistitem\else\dosomebreak#1\fi\fi}
-
-\def\initializeitemgroupslevel#1%
- {\ifundefined{\@@globalitemsymbol{#1}}%
- \edef\itemreferences{\itemreferences,#1}%
- \makecounter{\@@itemcounter#1}%
- \setevalue{\@@globalitemsymbol{#1}}{#1}%
- \fi}
-
-\def\initializeitemgrouplevel#1% safeguard
- {\ifundefined{\??op\currentitemgroup#1\c!width}%
- \doinitializeitemgrouplevel{#1}%
- \fi}
-
-\def\doinitializeitemgrouplevel#1%
- {\copyparameters
- [\??op\currentitemgroup#1][\??oo]
- [\c!width,\c!factor,\c!distance,\c!align,\c!symalign,\c!option,%
- \c!style,\c!marstyle,\c!symstyle,\c!headstyle,%
- \c!color,\c!marcolor,\c!symcolor,\c!headcolor,%
- \c!beforehead,\c!afterhead,\c!before,\c!inbetween,\c!after,%
- \c!stopper,\c!placestopper,\c!indenting,%
- \c!n,\c!inner,\c!symbol,\c!margin,\c!items,%
- \c!leftmargin,\c!rightmargin,\c!indentnext,%
- \c!command,%
- \c!start,\c!lefttext,\c!righttext]}
-
-\def\setupitemgroups
- {\dosingleargument\dosetupitemgroups}
-
-\def\dosetupitemgroups[#1]% still undocumented
- {\getparameters[\??oo][\c!levels=4,#1]%
- % will change (remove)
- \ifnum\@@oolevels>\maxitemdepth
- \maxitemdepth\@@oolevels\relax
- \dorecurse\maxitemdepth{\initializeitemgroupslevel\recurselevel}%
- \fi}
-
-\def\doitemreference#1,#2,#3\\%
- {\ifnum\currentitemlevel>#1\relax
- \ifnum#1>\zerocount \tempsymbol \fi
- \getvalue{\@@currentitemsymbol{#2}}%
- \doitemreference#2,#3\\%
- \fi}
-
-\def\itemreference
- {\expandafter\doitemreference\itemreferences,,\\}
-
-\def\packitems
- {\ifcase\currentitemlevel \else \settrue\packlistitem \fi}
-
-\def\dosetupitemgroupvariable[#1]% [#2]% niveau instellingen
- {\doifelsenothing{#1}
- {\getparameters[\??op\currentitemgroup\currentitemlevel]}% [#2]}%
- {\getparameters[\??op\currentitemgroup#1]}}% [#2]}}
-
-\newconditional\inlinelistitem \setfalse\inlinelistitem
-
-\def\dododosetupitemgroupconstant[#1][#2#3#4]% * permits [2]
- {\global\setitemparameter\currentitemlevel\c!maxwidth{0}%
- \processaction
- [#2#3#4]
- [ \v!packed*=>\packitems,
- \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*=>\settrue\textlistitem
- \settrue\inlinelistitem
- \settrue\joinedlistitem % \dosetuppackeditemgroup{#1}%
- \packitems,
- \v!columns*=>\packitems,
- \v!before*=>\settrue\beforelistitem,
- \v!after*=>\settrue\afterlistitem,
- \v!nowhite*=>\settrue\nowhitelistitem, % \def\packeditemspacing{\nowhitespace},
- \v!margin*=>\setitemparameter{#1}\c!width{-2em}, % signal
- \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*=>\setfalse\optimizelistitem,
- \v!fit*=>\settrue\fittinglistitems,
- \v!nofit*=>\setfalse\fittinglistitems,
- \v!paragraph*=>\settrue\paragraphlistitem
- \packitems,
- \v!joinedup*=>\settrue\joinedlistitem % \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}, % keep {}
- \v!unpacked*=>\setfalse\packlistitem,
- \v!repeat*=>\settrue\repeatlistitem, % new
- \v!reverse*=>\settrue\reverselistitem,
- \v!standard*=>\dosetupstandarditemgroup{#1}]}
-
-\def\dosetupstandarditemgroup#1%
- {\getparameters
- [\??op\currentitemgroup#1]
- [\c!width=1.5em,
- \c!factor=0,
- \c!distance=.5em,
- \c!beforehead=,
- \c!afterhead=\blank,
- \c!before=\blank,
- \c!inbetween=\blank,
- \c!after=\blank,
- \c!inner=]}
-
-% \def\packeditemspacing{\empty}
-
-% \setupwhitespace[big]
-% \starttext
-% test \startitemize[joinedup] \item test \item test \stopitemize test \par
-% test \startitemize[joinedup,nowhite] \item test \item test \stopitemize test \par
-% test \startitemize[joinedup,nowhite,before] \item test \item test \stopitemize test \par
-% test \startitemize[joinedup,nowhite,after] \item test \item test \stopitemize test \par
-% \stoptext
-
-\def\itembeforecommand
- {\ifconditional\nowhitelistitem
- \ifconditional\beforelistitem
- \ifcase\currentitemlevel\or\getitemparameter\currentitemlevel\c!before\fi
- \else
- \nowhitespace
- \fi
- \else\ifconditional\joinedlistitem
- % \empty
- \else
- \getitemparameter\currentitemlevel\c!before
- \fi\fi}
-
-\def\itemaftercommand
- {\ifconditional\nowhitelistitem
- \ifconditional\afterlistitem
- \ifcase\currentitemlevel\or\getitemparameter\currentitemlevel\c!after\fi
- \else
- \nowhitespace
- \fi
- \else\ifconditional\joinedlistitem
- % \empty
- \else
- \getitemparameter\currentitemlevel\c!after
- \fi\fi}
-
-\def\iteminbetweencommand
- {\ifconditional\nowhitelistitem
- \nowhitespace
- \else\ifconditional\joinedlistitem
- % \empty
- \else
- \getitemparameter\currentitemlevel\c!inbetween
- \fi\fi}
-
-\def\itembeforeheadcommand
- {\ifconditional\nowhitelistitem
- \nowhitespace
- \else\ifconditional\joinedlistitem
- % \empty
- \else
- \getitemparameter\currentitemlevel\c!beforehead
- \fi\fi}
-
-\def\itemafterheadcommand
- {\ifconditional\nowhitelistitem
- \nowhitespace
- \else\ifconditional\joinedlistitem
- % \empty
- \else
- \getitemparameter\currentitemlevel\c!afterhead
- \fi\fi}
-
-% \def\dosetuppackeditemgroup#1%
-% {\setitemparameter{#1}\c!beforehead{\packeditemspacing}%
-% \setitemparameter{#1}\c!afterhead {\packeditemspacing}%
-% \setitemparameter{#1}\c!before {\packeditemspacing}%
-% \setitemparameter{#1}\c!after {\packeditemspacing}%
-% \setitemparameter{#1}\c!inbetween {\packeditemspacing}}
-
-\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}\c!option{#2}}}%
-
-\def\dodododosetupitemgroup[#1][#2]%
- {\ConvertToConstant\doifnot{#2}{}
- {\doifelse{#1}\v!each
- {\dorecurse\maxitemdepth{\ExpandFirstAfter\dododododosetupitemgroup[\recurselevel][#2]}}
- {\ExpandFirstAfter\dododododosetupitemgroup[#1][#2]}}}
-
-\def\dododosetupitemgroup[#1][#2]%
- {\ConvertToConstant\doifelse{#2}{}
- {\ifcase\currentitemlevel\relax
- \dodododosetupitemgroup[\v!each][#1]%
- \else
- \dodododosetupitemgroup[\currentitemlevel][#1]%
- \fi}
- {\doifelsenothing{#1}
- {\dodododosetupitemgroup[\currentitemlevel][#2]}
- {\dodododosetupitemgroup[#1][#2]}}}
-
-\def\dodosetupitemgroup[#1][#2][#3][#4]%
- {\pushmacro\currentitemgroup
- \def\currentitemgroup{#1}%
- \dododosetupitemgroup[#2][#3]%
- \ConvertToConstant\doifnot{#4}{} % anders wordt #2 overruled
- {\dododosetupitemgroup[#2][#4]}%
- \popmacro\currentitemgroup}
-
-\def\dosetupitemgroup[#1][#2][#3][#4]%
- {\def\docommand##1{\dodosetupitemgroup[##1][#2][#3][#4]}%
- \processcommalist[#1]\docommand}
-
-\def\setupitemgroup
- {\doquadrupleempty\dosetupitemgroup}
-
-\def\doadvanceitem
- {\ifconditional\sublistitem\else\ifconditional\symbollistitem\else
- \pluscounter{\@@itemcounter\currentitemlevel}%
- \fi\fi}
-
-\def\setitemlevel#1%
- {\ifnum\currentitemlevel>\zerocount
- \settrue\firstlistitem
- % \expanded{\setitemparameter{\currentitemlevel}{\c!start}{1}}% ***
- \doifinset{0}{#1}{\setitemparameter\currentitemlevel\c!start{0}}% ***
- \setcounter{\@@itemcounter\currentitemlevel}{\the\numexpr\getitemparameter\currentitemlevel\c!start-1\relax}% ***
- \doifelsenothing{\getitemparameter\currentitemlevel\c!start}
- {\def\currentitemoffset{1}}
- {\def\currentitemoffset{\getitemparameter\currentitemlevel\c!start}%
- \letitemparameter\currentitemlevel\c!start\empty}%
- \def\tempnumber
- {\countervalue{\@@itemcounter\currentitemlevel}}%
- \doifelse{\getitemparameter\currentitemlevel\c!placestopper}\v!yes
- {\def\tempsymbol{\getitemparameter\currentitemlevel\c!stopper}}
- {\let\tempsymbol\empty}%
- \fi}
-
-
-\def\actualitemnumber
- {\ifconditional\reverselistitem
- \convertnumber\currentitemsymbol{\numexpr\currentmaxnofitems+\currentitemoffset-\currentitemnumber+1\relax}%
- \else
- \convertnumber\currentitemsymbol{\numexpr\currentminnofitems+\currentitemoffset+\currentitemnumber-1\relax}%
- \fi}
-
-% PAS OP: ook 'opelkaar' en zo worden getest, nog eens afvangen!
-
-\def\unknownitemsymbol{?}
-
-\def\setitemmark#1% % en pas op: resets \docommand
- {\doifsymboldefinedelse{#1}
- {\edef\currentitemsymbol{#1}%
- \setxvalue{\@@globalitemsymbol\currentitemlevel}{\currentitemsymbol}%
- \setgvalue{\@@localitemsymbol \currentitemlevel}{\unknownitemsymbol}%
- \def\listitem{\symbol[\currentitemsymbol]}%
- \let\@@opsymbol\empty}% \let\docommand\gobbleoneargument}
- {\doifconversiondefinedelse{#1}
- {\edef\currentitemsymbol{#1}%
- \setxvalue{\@@globalitemsymbol\currentitemlevel}{\currentitemsymbol}%
- \setgvalue{\@@localitemsymbol\currentitemlevel }{\actualitemnumber }%
- \ifconditional\textlistitem
- \doifsomething{\getitemparameter\currentitemlevel\c!lefttext}
- {\let\tempsymbol\empty}%
- \fi
- \def\listitem
- {\getitemparameter\currentitemlevel
- {\ifconditional\textlistitem\c!lefttext\else\c!left\fi}%
- \getvalue{\@@localitemsymbol\currentitemlevel}\tempsymbol
- \getitemparameter\currentitemlevel
- {\ifconditional\textlistitem\c!righttext\else\c!right\fi}}%
- \let\@@opsymbol\empty}%\let\docommand\gobbleoneargument}
- {}}}
-
-\def\calculatelistwidth#1#2% distance deals with 'broad'
- {#2=\getitemparameter{#1}\c!distance\relax
- \ifnum\getitemparameter{#1}\c!factor>\zerocount
- \ifdim#2=\zeropoint #2=.5em\fi
- \fi
- \multiply#2 \getitemparameter{#1}\c!factor
- \advance #2 \getitemparameter{#1}\c!width\relax}
-
-% The next conditionals deal with \item \startitemgroup. It
-% looks like a hack to skip back, but that way we preserve
-% the indentation and bullet placement. It's a rather
-% untested feature.
-
-\newconditional\concatnextitem \setfalse\concatnextitem
-\newconditional\autoconcatnextitem \settrue \autoconcatnextitem
-\newsignal \itemsignal
-
-\def\startitemgroup
- {\dotripleempty\dostartitemgroup}
-
-% \def\dostartitemgroup[#1][#2][#3]%
-% {\bgroup
-% \def\currentitemgroup{#1}%
-% \ifthirdargument
-% \dodostartitemgroup[#2][#3]%
-% \else
-% \doifassignmentelse{#2}
-% {\dodostartitemgroup[][#2]}
-% {\dodostartitemgroup[#2][]}%
-% \fi}
-
-\def\dostartitemgroup[#1][#2][#3]%
- {\bgroup
- \ifnum\currentitemlevel=\zerocount
- \def\currentitemgroup{#1}% no nested mixing of itemgroups
- \fi
- \ifthirdargument
- \dodostartitemgroup[#2][#3]%
- \else
- \doifassignmentelse{#2}
- {\dodostartitemgroup[][#2]}
- {\dodostartitemgroup[#2][]}%
- \fi}
-
-\def\dodostartitemgroup[#1]% [#2]%
- {\relax % prevents lookahead
- \ifnum\currentitemlevel=\maxitemdepth\relax
- \showmessage\m!layouts9{\number\maxitemdepth}%
- \let\itemincrement\zerocount
- \else
- \let\itemincrement\plusone
- \fi
- \global\advance\itemdepth\itemincrement
- \xdef\currentitemlevel{\number\itemdepth}%
- \initializeitemgrouplevel\currentitemlevel % safeguard
- \edef\itemgroupoptions{\getitemparameter\currentitemlevel\c!option}%
- \ifx\itemgroupoptions\empty
- \edef\itemgroupoptions{#1}%
- \else
- \doifsomething{#1}{\edef\itemgroupoptions{\itemgroupoptions,#1}}%
- \fi
- \expanded{\redostartitemgroup[\itemgroupoptions]}}% [#2]
-
-\let\startcollectitems\relax
-\let\stopcollectitems \relax
-
-%D A nice example of a plugin:
-%D
-%D \startbuffer
-%D \startitemize[a,random,packed]
-%D \startitem first \stopitem \startitem second \stopitem
-%D \startitem third \stopitem \startitem fourth \stopitem
-%D \stopitemize
-%D
-%D \startitemize[a,random,packed]
-%D \startitem first \stopitem \startitem second \stopitem
-%D \startitem third \stopitem \startitem fourth \stopitem
-%D \stopitemize
-%D
-%D \startitemize[a,packed]
-%D \startitem first \stopitem \startitem second \stopitem
-%D \startitem third \stopitem \startitem fourth \stopitem
-%D \stopitemize
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-% better collectitems als conditional and a real plugin mechanism (some day)
-
-\@EA\long\@EA\def\@EA\collectitemgroupitem\@EA#\@EA1\csname\e!stop\v!item\endcsname
- {\increment\itemcollectcounter
- \long\setvalue{\v!item*\itemcollectcounter}{\item#1\par}}
-
-\def\flushcollecteditems
- {\ifconditional\randomizeitems
- \getrandomnumber\itemcollectcounternow\plusone\itemcollectcounter
- \else
- \increment\itemcollectcounternow
- \fi
- \doifdefined{\v!item*\itemcollectcounternow}
- {\getvalue{\v!item*\itemcollectcounternow}%
- \letbeundefined{\v!item*\itemcollectcounternow}%
- \increment\itemcollectcounterdone}%
- \ifnum\itemcollectcounterdone<\itemcollectcounter\relax
- \expandafter\flushcollecteditems
- \fi}
-
-\def\stopcollectitems
- {\ifconditional\randomizeitems
- \newcounter\itemcollectcounterdone
- \ifnum\itemcollectcounter>\zerocount
- \@EAEAEA\flushcollecteditems
- \fi
- \fi}
-
-\def\startcollectitems
- {\ifconditional\randomizeitems
- \newcounter\itemcollectcounter
- \letvalue{\e!start\v!item}\collectitemgroupitem
- \fi}
-
-%D End of plugin.
-
-\ifx\startcolumns\undefined \def\startcolumns[#1]{} \fi
-\ifx\stopcolumns \undefined \let\stopcolumns\relax \fi
-
-\def\dosetsymalign#1% hm, we should use one of the core-spa macros or make a helper
- {\processaction
- [#1]
- [ \v!flushleft=>\let\symalignleft\relax,
- \v!right=>\let\symalignleft\relax,
- \v!flushright=>\let\symalignleft\hfill,
- \v!left=>\let\symalignleft\hfill,
- \v!middle=>\let\symalignleft\hfil,
- \v!center=>\let\symalignleft\hfil]}
-
-\def\redostartitemgroup[#1][#2]%
- {\setfalse\inlinelistitem % new, no indent (leftskip)
- \setfalse\concatnextitem % new, concat
- \setfalse\txtlistitem
- \ifhmode
- \ifconditional\autoconcatnextitem % new, concat
- \ifdim\lastskip=\itemsignal % new, concat
- \settrue\concatnextitem % new, concat
- \fi % new, concat
- \fi % new, concat
- \ifconditional\textlistitem\else\doifnotinset\v!text{#1}\par\fi % suboptimal
- \fi
- \begingroup
- % new where, ok or not / we should integrate random, intro, continue here
- % beware, the following no longer inherit from the previous level, is this ok?
- \setfalse\reverselistitem
- \setfalse\introlistitem
- \setfalse\autointrolistitem
- \setfalse\beforelistitem
- \setfalse\afterlistitem
- \setfalse\nowhitelistitem
- \setfalse\randomizeitems
- %
- \doifinsetelse\v!intro {#1}{\settrue\introlistitem }{\setfalse\introlistitem }%
- \doifinsetelse\v!random {#1}{\settrue\randomizeitems }{\setfalse\randomizeitems }%
- \doifinsetelse\v!continue{#1}{\settrue\continuelistitems}{\setfalse\continuelistitems}%
- % == \doifinsetelse\v!intro{#1}\settrue\setfalse\introlistitem
- \global\advance\noflists\plusone
- \currentnoflists=\noflists
- \newcounter\noflistelements
- \setfalse\headlistitem
- \setfalse\sublistitem
- \setfalse\symbollistitem
- \let\marsymbol\relax
- \globallet\doitemdestination\empty
- \let\symsymbol\empty
- \let\symalignleft\relax
- \the\itemgroupcommands
-\checkcurrentnofitems
- % \getitemparameter\currentitemlevel\empty
- \let\listitem\empty % ** start value
- \doifelsenothing{#1} % iffirstargument
- {\edef\@@opsymbol{\getitemparameter\currentitemlevel\c!symbol}%
- \letgvalueempty{\@@globalitemsymbol\currentitemlevel}%
- \global\letitemparameter\currentitemlevel\v!continue\empty
- % \setitemmark\@@opsymbol % ** default value
- \dosetupitemgroupvariable[\currentitemlevel][#2]}
- {\dosetupitemgroupconstant[\currentitemlevel][#1]%
- \dosetupitemgroupvariable[\currentitemlevel][#2]%
- \doifinsetelse\v!continue{#1}% \noexpand, else problems in non-etex with chinese
- {\edef\@@opsymbol{\noexpand\getvalue{\@@globalitemsymbol\currentitemlevel}}%
- \getitemparameter\currentitemlevel\v!continue}
- {\edef\@@opsymbol{\noexpand\getitemparameter{\currentitemlevel}{\c!symbol}}%
- \global\setitemparameter\currentitemlevel\v!continue
- {\dosetupitemgroupconstant[\currentitemlevel][#1]%
- \dosetupitemgroupvariable[\currentitemlevel][#2]}}%
- \def\docommand##1% \setitemmark resets \docommand
- {\doifnot{##1}{0}{\setitemmark{##1}}}%
- % \processcommalist[#1,\@@opsymbol]\docommand
- \processcommalist[#1]\docommand}% ** preset sequence or provided sequence
- % moved to here, after settings
- \ifnum\currentitemlevel=\plusone % NIEUW
- \doadaptleftskip {\getitemparameter1\c!margin}%
- \doadaptleftskip {\getitemparameter1\c!leftmargin}%
- \doadaptrightskip{\getitemparameter1\c!rightmargin}%
- \fi
- \dosetraggedcommand{\getitemparameter\currentitemlevel\c!align}\raggedcommand
- \dosetsymalign{\getitemparameter\currentitemlevel\c!symalign}%
- \doifsomething{\getitemparameter\currentitemlevel\c!indenting}
- {% is \expanded needed?
- \expanded{\setupindenting[\getitemparameter\currentitemlevel\c!indenting]}}%
- %
- \setitemlevel{#1}% moved to here
- \ifx\listitem\empty
- \setitemmark\@@opsymbol % ** default value
- \ifx\listitem\empty
- \edef\currentitemsymbol{\currentitemlevel}% ** fall back
- \fi
- \fi
- \ifconditional\autointrolistitem\ifnum\prevgraf<3
- \settrue\introlistitem
- \fi\fi
- \ifconditional\paragraphlistitem
- \ifnum\currentitemlevel>\plusone
- \letitemparameter\currentitemlevel\c!inbetween\empty
- \fi
- \fi
- \ifconditional\packlistitem
- \letitemparameter\currentitemlevel\c!inbetween\empty
- \fi
- \doifinset\v!columns{#1}%
- {\ifinsidecolumns\else\ifcase\itemcolumndepth
- \global\itemcolumndepth\currentitemlevel\relax
- \itembeforecommand
- \processfirstactioninset
- [#1]
- [ \v!one=>\!!counta1\relax,
- \v!two=>\!!counta2\relax,
- \v!three=>\!!counta3\relax,
- \v!four=>\!!counta4\relax,
- \v!five=>\!!counta5\relax,
- \s!unknown=>\@EA\!!counta\getitemparameter\currentitemlevel\c!n]%
- \startcolumns
- [\c!n=\!!counta, % netter \??op\currentitemlevel\c!n
- \c!height=,
- \c!rule=\v!off,
- \c!balance=\v!yes,
- \c!align=\v!no]%
- \fi\fi}%
-\ifconditional\fittinglistitems
- \splititemtwopassdata\currentnoflists
- \ifdim\itemdataw sp>\zeropoint
- \expanded{\setitemparameter{\currentitemlevel}{\c!width}{\itemdataw sp}}%
- \fi
-\fi
- \calculatelistwidth\currentitemlevel{\dimen0}%
- \ifdim\dimen0>\zeropoint\relax
- \ifconditional\inlinelistitem\else
- \advance\leftskip \dimen0\relax
- \fi
- \fi
- \startcollectitems}
-
-% test / example
-%
-% \startnarrower[left] \startcolumns[n=3] \startitemize
-% \item \input ward \item \input ward \item \input ward
-% \stopitemize \stopcolumns\stopnarrower \blank
-%
-% \startnarrower[left] \startitemize[columns,three]
-% \item \input ward \item \input ward \item \input ward
-% \stopitemize \stopnarrower \blank
-%
-% \setupitemize[leftmargin=1.5em] \startitemize[columns,three]
-% \item \input ward \item \input ward \item \input ward
-% \stopitemize \blank
-
-\def\stopitemgroup
- {\stopcollectitems
- \ifconditional\textlistitem
- \removeunwantedspaces\space\ignorespaces
- \else
- \par
- \fi
- \dolistreference
- \ifconditional\firstlistitem \else \endgroup \fi % toegevoegd, eerste \som opent groep
- \ifnum\itemcolumndepth=\currentitemlevel\relax
- \stopcolumns
- \global\itemcolumndepth\zerocount
- \itemaftercommand
- \dontrechecknextindentation
- \else
- \ifnum\currentitemlevel=\plusone
- \doitembreak\allowbreak % toegevoegd
- \itemaftercommand % \getitemparameter\currentitemlevel\c!after
- % was: \dochecknextindentation\??oo, is now:
- \dochecknextindentation{\??op\currentitemgroup\currentitemlevel}%
- \else
- % nieuw, not yet nobreak handling
- \ifcase\autoitemgroupspacing
- \itemaftercommand
- \or
- \itemaftercommand
- \fi
- \dontrechecknextindentation
- \fi
- \fi
- % new test, needed in sidefloats (surfaced in volker's proceedings)
- \ifconditional\textlistitem % else forgotten
- \endgroup
- \global\advance\itemdepth-\itemincrement
- \xdef\currentitemlevel{\number\itemdepth}%
- \egroup
- \else
- \endgroup
- \global\advance\itemdepth-\itemincrement
- \xdef\currentitemlevel{\number\itemdepth}%
- \egroup
- \par
- \fi
- \dorechecknextindentation}
-
-\newtoks\itemgroupcommands
-
-\def\itemgroupitem
- {\doitemgroupitem}
-
-\def\itemgroupnoitem
- {\doitemgroupnoitem}
-
-\def\itemgroupbutton[#1]%
- {\gdef\doitemdestination{#1}%
- \itemgroupitem}
-
-\def\itemgroupdummy
- {\itemgroupsymbol{\strut}\strut}
-
-\def\itemgroupsubitem
- {\settrue\sublistitem
- \itemgroupitem}
-
-\def\itemgroupsymbol#1%
- {\def\symsymbol{\doitemattributes\currentitemlevel\c!symstyle\c!symcolor{#1}}%
- \settrue\symbollistitem
- \itemgroupitem}
-
-\def\itemgroupedge#1%
- {\itemgroupsymbol
- {\calculatelistwidth\currentitemlevel{\dimen0}%
- \hbox to \dimen0
- {#1\hskip\getitemparameter\currentitemlevel\c!distance}}}
-
-\def\itemgrouphead
- {\settrue\headlistitem\doitemgrouphead}
-
-\def\itemgroupitems
- {\dosingleempty\doitemgroupitems}
-
-\def\doitemgroupitems[#1]%
- {\itemgroupedge
- {\dorecurse{0\getitemparameter\currentitemlevel\c!items}{\listitem\hss}%
- \unskip}}
-
-\def\itemgroupmargin#1%
- {\def\marsymbol
- {\llap
- {\doitemattributes\currentitemlevel\c!marstyle\c!marcolor{#1}%
- \hskip\leftskip\hskip\leftmargindistance}}%
- \itemgroupitem}
-
-\appendtoks \let\item \itemgroupitem \to \itemgroupcommands
-\appendtoks \let\noitem \itemgroupnoitem \to \itemgroupcommands
-\appendtoks \letvalue\v!item \itemgroupitem \to \itemgroupcommands
-\appendtoks \let\itm \itemgroupitem \to \itemgroupcommands
-\appendtoks \let\but \itemgroupbutton \to \itemgroupcommands
-\appendtoks \let\nop \itemgroupdummy \to \itemgroupcommands
-\appendtoks \letvalue\v!sub \itemgroupsubitem \to \itemgroupcommands
-\appendtoks \letvalue\v!sym \itemgroupsymbol \to \itemgroupcommands
-\appendtoks \letvalue\v!ran \itemgroupedge \to \itemgroupcommands
-\appendtoks \letvalue\v!head \itemgrouphead \to \itemgroupcommands
-\appendtoks \letvalue\v!its \itemgroupitems \to \itemgroupcommands
-\appendtoks \letvalue\v!mar \itemgroupmargin \to \itemgroupcommands
-
-% todo : \startitem .. \stopitem
-
-\appendtoks
- \letvalue{\e!start\v!item}\itemgroupitem
- \letvalue{\e!stop \v!item}\endgraf
-\to \itemgroupcommands
-
-\appendtoks
- \setvalue{\e!start\v!head}#1{\itemgrouphead#1\par}%
- \letvalue{\e!stop \v!head}\endgraf
-\to \itemgroupcommands
-
-% \startitemize
-% \starthead {xx} test \stophead
-% \startitem test \stopitem
-% \startitem test \stopitem
-% \stopitemize
-
-% Sometimes the user demands get pretty weird:
-%
-% \startitemize
-% \item test
-% \item test
-% \headsym{xx} test \par test
-% \stopitemize
-
-% aligned items
-%
-% \startitemize[n,fit,broad][itemalign=flushright]
-% \dorecurse{100}{\item The first item.}
-% \stopitemize
-%
-% \setupitemgroup[itemize][each][fit]
-% \setupitemgroup[itemize][each][distance=.5em,factor=1,itemalign=flushright]
-%
-% \startitemize[n]
-% \dorecurse{100}{\item The first item.}
-% \stopitemize
-
-\appendtoks \let\headsym \itemgroupheadsym \to \itemgroupcommands
-
-\def\itemgroupheadsym#1%
- {\def\symsymbol{\doitemattributes\currentitemlevel\c!symstyle\c!symcolor{#1}}%
- \settrue\symbollistitem
- \settrue\headlistitem
- \doitemgrouphead}
-
-% \defineitemgroup[gbitemize]
-% \setupitemgroup[gbitemize][each][headstyle=bold]
-
-% \startgbitemize
-% \txt{italian} some italians like this kind of cross||breed between
-% an itemize and a description
-% \txt{sicilians} i wonder how many sicilian mathematicians do a thesis
-% on the math involved in predicting the next big bang of the vulcano
-% \stopgbitemize
-
-\appendtoks \letvalue\v!txt \itemgrouptext \to \itemgroupcommands
-
-\newconditional\txtlistitem \setfalse\txtlistitem
-
-\def\itemgrouptext#1%
- {\def\symsymbol{\doitemattributes\currentitemlevel\c!headstyle\c!headcolor{#1}}%
- \settrue\symbollistitem
- \settrue\txtlistitem
- \itemgroupitem}
-
-\def\itembreak % -10
- {\flushnotes\penalty-5\relax}
-
-\def\itemnobreak % +5
- {\flushnotes\penalty+5\ifinsidecolumns\else00\fi\relax}
-
-\def\dodotxtitem
- {\scratchdimen\wd8
- \advance \scratchdimen \getitemparameter\currentitemlevel\c!distance\relax
- \ifdim\scratchdimen>\dimen0
- \advance\scratchdimen -\dimen0
- \else
- \scratchdimen\zeropoint
- \fi
- \llap{\hbox to \dimen0{\ifconditional\sublistitem\llap{+}\fi\box8\hss}}% was: \hfill
- \hskip\scratchdimen}
-
-\def\optimizelistitemsbreak
- {\ifcase\itemcolumndepth \ifconditional\optimizelistitem
- \ifcase \currentnofitems \else
- \ifnum\currentnofitems=\plusthree
- \ifnum\noflistelements>\plusone
- \doitembreak\itemnobreak
- \fi
- \else\ifnum\currentnofitems>\plusthree
- \ifnum\noflistelements=\plustwo
- \ifconditional\introlistitem
- \doitembreak\nobreak
- \else
- \doitembreak\itemnobreak
- \fi
- \else\ifnum\currentnofitems=\noflistelements\relax
- \doitembreak\itemnobreak
- \else\ifnum\noflistelements>\plustwo
- \doitembreak\itembreak
- \else
- \ifconditional\introlistitem\else\doitembreak\itembreak\fi
- \fi\fi\fi
- \fi\fi
- \fi
- \fi\fi}
-
-\def\dolistitem % evt aantal items opslaan per niveau, scheelt zoeken
- {\ifconditional\textlistitem
- % begin of item
- \else
- \par
- \fi
-% \ignorespaces
- \increment\noflistelements
- \optimizelistitemsbreak
- \noindent
- \setbox8\hbox
- {\ifconditional\headlistitem
- \ifconditional\symbollistitem
- \symsymbol
- \else
- \doitemattributes\currentitemlevel\c!headstyle\c!headcolor{\listitem}%
- \fi
- \else
- \ifconditional\symbollistitem
- \symsymbol % no attributes, why?
- \else
- \doitemattributes\currentitemlevel\c!style\c!color{\listitem}%
- \fi
- \fi}%
-\ifconditional\fittinglistitems
- \ifdim\wd8>\getitemparameter\currentitemlevel\c!maxwidth sp\relax
- \expanded{\global\noexpand\setitemparameter{\currentitemlevel}{\c!maxwidth}{\number\wd8}}%
- \fi
- \splititemtwopassdata\currentnoflists
- \ifdim\itemdataw sp>\zeropoint
- \setbox8\simplealignedbox{\getitemparameter\currentitemlevel\c!itemalign}{\itemdataw sp}{\box8}%
- \fi
-\fi
- \doifsomething\doitemdestination
- {\setbox8\hbox{\goto{\box8}[\doitemdestination]}}%
- \globallet\doitemdestination\empty
- \dimen2=\getitemparameter\currentitemlevel\c!width\relax
- % new, prevents loops when symbol is (not yet found) graphic
- \ht8=\strutheight
- \dp8=\strutdepth
- % so that content differs per run (esp mp graphics afterwards)
- \checkforrepeatedlistitem
- \ifdim\dimen2<\zeropoint\relax
- \llap{\ifconditional\sublistitem\llap{+}\fi\box8\hskip\leftmargindistance}%
- \else
- \ifdim\dimen2=\zeropoint\relax
- \calculatelistwidth1{\dimen0}%
- \else
- \calculatelistwidth\currentitemlevel{\dimen0}%
- \fi
- \ifconditional\textlistitem
- \hbox{\ifconditional\sublistitem+\fi\box8\hskip\interwordspace}\nobreak
- \else\ifconditional\inlinelistitem
- \hbox to \dimen0{\ifconditional\sublistitem\llap{+}\fi\box8\hss}% was: \hfill
- \else\ifconditional\txtlistitem
- \dodotxtitem
- \else
- % todo: align+marge binnen de hbox
-% \llap{\hbox to \dimen0{\ifconditional\sublistitem\llap{+}\fi\box8\hfill}}%
- \llap{\hbox to \dimen0{\ifconditional\sublistitem\llap{+}\fi
- \symalignleft
- \box8\hfil
- \hskip\getitemparameter\currentitemlevel\c!distance% T h
- }}%
- \fi\fi\fi
- \fi
- \forceunexpanded % needed for m conversion (\os) / i need to look into this
- \setevalue{\@@currentitemsymbol\currentitemlevel}%
- {\getvalue{\@@localitemsymbol\currentitemlevel}}% still problems with \uchar ?
- %{\noexpand\getvalue{\@@localitemsymbol\currentitemlevel}}% no, spoils subrefs
- \resetunexpanded
- \setfalse\headlistitem
- \setfalse\sublistitem
- \setfalse\symbollistitem
- \EveryPar{\ignorespaces}% needed ?
- \ignorespaces}
-
-% For Wolfgang Schuster
-
-% \startitemize[n,repeat]
-% \noitem \startitemize[a] \item Item 1.a. \item Item 1.b. \stopitemize
-% \noitem \startitemize[a] \item Item 2.a. \item Item 2.b. \stopitemize
-% \stopitemize
-
-\def\donolistitem % reduced \dolistitem
- {\increment\noflistelements
- \setbox8\hbox
- {\doitemattributes\currentitemlevel\c!style\c!color{\listitem}}%
- \checkforrepeatedlistitem
- \ignorespaces}
-
-\def\doitemgroupnoitem
- {\doadvanceitem\donolistitem}
-
-% For Frank Grieshaber and Mojca Miklavec:
-
-\newconditional\repeatlistitem
-
-\def\checkforrepeatedlistitem
- {\ifnum\currentitemlevel=\plusone
- \initializeboxstack{item}%
- \fi
- \ifconditional\repeatlistitem
- \savebox{item}{\currentitemlevel}{\hbox{\copy8}}%
- \setbox8\hbox to \wd8
- {\setbox\scratchbox\hbox
- {\scratchcounter\currentitemlevel
- \advance\scratchcounter\minusone
- \dorecurse\scratchcounter{\foundbox{item}{\recurselevel}}}%
- \ifnum\currentitemlevel>\plusone
- \ifdim\wd\scratchbox>\zeropoint
- \hskip-\dimen2
- \box\scratchbox
- \fi
- \fi
- \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]%
- {\ifconditional\textlistitem
- % begin of item
- \else
- \par
- \fi
-% \ignorespaces
- \ifconditional\concatnextitem % new, concat
- \doitembreak\nobreak % new, concat
- \fi % new, concat
- \doadvanceitem
- \ifcase\itemcolumndepth \ifnum\noflistelements>0\relax
- % wrong, but why was this here in the first place, probably some
- % mistaken change when cleaning up: \doitembreak\nobreak
- \fi\fi
- \ifconditional\firstlistitem
- \setfalse\firstlistitem
- \begingroup
- \ifcase\currentitemlevel
- \or % 1
- \ifcase\itemcolumndepth
- \ifconditional\introlistitem\doitembreak\nobreak\fi
- \itembeforecommand % \getitemparameter\currentitemlevel\c!before
- \ifconditional\introlistitem\doitembreak\nobreak\fi
- \fi
- \else % 2 en hoger
- \ifconditional\paragraphlistitem \else
- \let\previtemlevel\currentitemlevel
- \decrement\previtemlevel
- \ifcase\autoitemgroupspacing\relax % nieuw
- \itembeforecommand
- \or
- \doifelsenothing{\itembeforecommand}
- {\itembeforecommand}
- {\getitemparameter\previtemlevel\c!inbetween}%
- \else
- \getitemparameter\previtemlevel\c!inbetween % == itemlevel-1
- \fi
- \fi
- \fi
- \else
-\ifconditional\textlistitem % was bugged: \inlinelistitem
-% \removeunwantedspaces\hskip\interwordspace\!!plus\emwidth\relax % new per 2006/10/20
- \removeunwantedspaces\hskip\emwidth\!!plus\interwordstretch\!!minus\interwordshrink\relax % new per 2006/10/20
-\else
- \iteminbetweencommand
-\fi
- \fi
- \ifconditional\concatnextitem % new, concat
- \vskip-\lastskip % new, concat
- \vskip-\lineheight % new, concat
- \nobreak % new, concat
- \fi % new, concat
-% \ignorespaces
- \dolistitem
- \relax
- \ifconditional\packlistitem
- \setupwhitespace[\v!none]%
- \fi
- \getitemparameter\currentitemlevel\c!inner
- \marsymbol
- \let\marsymbol\relax
- \doifsomething{#1}
- {\doifnot\itemreference\unknownitemreference
- {\bgroup
- \protectconversion
- \rawreference\s!lst{#1}\itemreference
- \egroup}}%
- \strut % added 11-08-99
- \setfalse\concatnextitem % new, concat
- \nobreak % else problems with intext items
- \hskip\itemsignal % new, concat
- \getitemparameter\currentitemlevel\c!command} % \defaultitemcommand
-
-\def\defaultitemcommand
- {\EveryPar{\ignorespaces}% needed ?
- \ignorespaces}
-
-% For Giuseppe "Oblomov" Bilotta, inspired on a suggestion by Taco
-% Hoekwater.
-%
-% \def\MyItemCommand#1{{\bf#1}\quad}
-% \setupitemgroup[itemize][command=\MyItemCommand]
-%
-% \startitemize
-% \item {test} is this okay?
-% \item {test} is this okay?
-% \item {test} is this okay?
-% \stopitemize
-
-\def\complexitem[#1]#2\par % todo: no two pass data
- {\startitemgroup[#1]%
- \complexdoitemgroupitem[]\begstrut#2\endstrut\par
- \stopitemgroup}
-
-\definecomplexorsimpleempty\item
-\definecomplexorsimpleempty\doitemgroupitem
-
-\def\complexhead[#1]#2\par#3\par
- {\startitemgroup[#1]%
- \complexdoitemgrouphead[]\begstrut#2\endstrut\par\begstrut#3\endstrut\par
- \stopitemgroup}
-
-% \def\complexdoitemgrouphead[#1]#2\par% % beter in \complexdosom hangen met een if
-% {\ifconditional\firstlistitem\else\doitembreak\allowbreak\fi
-% \ifconditional\packlistitem\else\itembeforeheadcommand\fi
-% \ifconditional\firstlistitem\ifconditional\introlistitem\else\ifcase\currentitemlevel % incr in \complexdosom
-% \doitembreak\allowbreak
-% \fi\fi\fi
-% \complexdoitemgroupitem[#1]{\doitemattributes\currentitemlevel\c!headstyle\c!headcolor
-% {\ignorespaces#2}}%
-% \ifconditional\textlistitem
-% \removeunwantedspaces\space\ignorespaces
-% \else
-% \par
-% \fi
-% \doitembreak\nobreak
-% \ifconditional\packlistitem\else\itemafterheadcommand\fi
-% \doitembreak\nobreak
-% \noindentation}
-%
-% the next solution accepts \head test \type{x{x}x} test ...
-
-\def\dostartitemattributes#1{\dostartattributes{\??op\currentitemgroup#1}}
-\def\dostopitemattributes {\dostopattributes}
-
-\def\complexdoitemgrouphead[#1]% beter in \complexdosom hangen met een if
- {\ifconditional\firstlistitem\else\doitembreak\allowbreak\fi
- \ifconditional\packlistitem\else\itembeforeheadcommand\fi
- \ifconditional\firstlistitem\ifconditional\introlistitem\else\ifcase\currentitemlevel % incr in \complexdosom
- \doitembreak\allowbreak
- \fi\fi\fi
- \complexdoitemgroupitem[#1]%
- \bgroup
- \dostartitemattributes\currentitemlevel\c!headstyle\c!headcolor\empty
- \ignorespaces
- \let\par\enditemhead} % brrrr but simple anyway
-
-\def\enditemhead
- {\removeunwantedspaces
- \dostopitemattributes
- \egroup
- \ifconditional\textlistitem
- \space\ignorespaces
- \else
- \par
- \fi
- \doitembreak\nobreak
- \ifconditional\packlistitem\else\itemafterheadcommand\fi
- \doitembreak\nobreak
- \noindentation}
-
-\definecomplexorsimpleempty\head
-\definecomplexorsimpleempty\doitemgrouphead
-
-% \def\sym#1%
-% {\noindent
-% \begingroup
-% \setbox\scratchbox\hbox{\trialtypesettingtrue#1}%
-% \setbox\scratchbox\hbox
-% \ifdim\wd\scratchbox<1em to 1.5\else spread 1\fi em{#1\hfil}%
-% \hangindent\wd\scratchbox
-% \box\scratchbox
-% \endgroup
-% \ignorespaces}
-
-\def\sym#1%
- {\noindent
- \begingroup
- \setbox\scratchbox\hbox{\trialtypesettingtrue#1}%
- \setbox\scratchbox\hbox
- \ifdim\wd\scratchbox<1em to 1.5\else spread 1\fi em{#1\hfil}%
- \expanded{\box\scratchbox\endgroup\hangindent\the\wd\scratchbox}%
- \ignorespaces}
-
-\setupitemgroups % undocumented
- [\c!levels=6,
- \c!margin=\zeropoint,
- \c!leftmargin=\zeropoint,
- \c!rightmargin=\zeropoint,
- \c!indentnext=\v!yes,
- \c!width=1.5em,
- \c!factor=0,
- \c!distance=.5em,
- %\c!align=\v!normal, % definitely not \v!normal, see mails and
- \c!align=, % debug reports of David A & Patrick G on context list
- \c!symalign=,
- \c!color=,
- \c!indenting=, % untouched if empty
- \c!color=,
- \c!style=, % kan tzt weg
- \c!marstyle=\c!type, % \c! ???
- \c!symstyle=,
- \c!headstyle=,
- \c!marcolor=,
- \c!symcolor=,
- \c!headcolor=,
- \c!beforehead=,
- \c!afterhead=\blank,
- \c!before=\blank,
- \c!inbetween=\blank,
- \c!after=\blank,
- \c!stopper=.,
- \c!placestopper=\v!yes,
- \c!inner=,
- \c!n=2,
- \c!items=4,
- \c!lefttext=(,
- \c!righttext=),
- \c!start=1,
- \c!option=,
- \c!command=\defaultitemcommand,
- \c!symbol=\currentitemlevel] % \v!niveau
-
-\def\defineitemgroup
- {\dodoubleempty\dodefineitemgroup}
-
-\def\dodefineitemgroup[#1][#2]%
- {\doifsomething{#1}
- {\pushmacro\currentitemgroup
- \def\currentitemgroup{#1}%
- \setvalue{\e!start#1}{\startitemgroup[#1]}%
- \setvalue{\e!stop#1}{\stopitemgroup}%
- \setvalue{\e!setup#1\e!endsetup}{\setupitemgroup[#1]}%
- \getparameters[\??ig#1][\c!levels=3,#2]%
- \ifnum\getvalue{\??ig#1\c!levels}<\maxitemdepth\relax
- \setevalue{\??ig#1\c!levels}{\number\maxitemdepth}%
- \fi
- \dorecurse{\getvalue{\??ig#1\c!levels}}{\initializeitemgrouplevel\recurselevel}%
- \popmacro\currentitemgroup}}
-
-% efficient default itemize as well as upward compatible
-% definition:
-
-\defineitemgroup [\v!itemize] [\c!levels=6]
-
-% keep these, needed for styles:
-
-% \def\startitemize {\startitemgroup[\v!itemize]}
-% \def\stopitemize {\stopitemgroup}
-% \def\setupitemize {\setupitemgroup[\v!itemize]}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-lnt.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-lnt.mkii
deleted file mode 100644
index 3c878a8d232..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/strc-lnt.mkii
+++ /dev/null
@@ -1,197 +0,0 @@
-%D \module
-%D [ file=strc-lnt,
-%D version=2002.05.10,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Line Notes,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Structure Macros / Line Notes}
-
-%D This module loads on top of the footnote and line numbering macros.
-
-\unprotect
-
-\newcounter\linenotecounter
-\newtoks \collectedlinenotes
-\newif \iftracelinenotes
-
-\appendtoks
- \the\collectedlinenotes
-\to \everylinenumber
-
-\appendtoks
- \global\collectedlinenotes\emptytoks
-\to \beforeeverylinenumbering
-
-\def\dohandlelinenote#1#2#3%
- {\bgroup
- \expanded{\beforesplitstring#2}\at--\to\linenotelinenumber
- \ifnum\linenotelinenumber=\linenumber\relax
- % todo: \onlyfootnote{#2}{#3}% == configurable
- % \setupnote[#1][\c!numbercommand=\gobbleoneargument]%
- % \setnotetext[#1]{\rawreference\s!fnt{\s!fnt:f:\number\internalnotereference}{}#2: #3}%
- \def\linenotelinenumber##1{#2}%
- \setupnote[#1][\c!numbercommand=\linenotelinenumber,\c!textcommand=\gobbleoneargument]%
- \setnote[#1]{#3}%
- \fi
- \egroup}
-
-\def\dotracedlinenote#1%
- {\iftracelinenotes
- \hbox to \zeropoint
- {\forgetall
- \localcolortrue
- \hsize\zeropoint
- \hss
- \vbox to \strutheight{\llap{\red\infofont\setstrut\linenotecounter}\vss}%
- {\color[blue]{\vl}}%
- \vbox to \strutheight{\rlap{\red\infofont\setstrut#1}\vss}%
- \hss}%
- \prewordbreak
- \fi}
-
-\def\dolinenote#1#2%
- {\doglobal\increment\linenotecounter
- \doifreferencefoundelse{\??rr:\linenotecounter}%
- {\expanded{\doglobal\noexpand\appendtoks\noexpand\dohandlelinenote
- {#1}{\currenttextreference}}{#2}\to\collectedlinenotes}
- \donothing
- \dotracedlinenote\empty
- \expanded{\someline[\??rr:\linenotecounter]}}
-
-\def\dostartlinenote#1[#2]#3%
- {\doifreferencefoundelse{\??rr:#2}%
- {\expanded{\doglobal\noexpand\appendtoks\noexpand\dohandlelinenote
- {#1}{\currenttextreference}}{#3}\to\collectedlinenotes}
- \donothing
- \dotracedlinenote{#2}%
- \startline[\??rr:#2]}
-
-\def\dostoplinenote#1[#2]%
- {\stopline[\??rr:#2]}
-
-% defining them
-
-\def\definelinenote
- {\dodoubleempty\dodefinelinenote}
-
-\def\dodefinelinenote[#1][#2]%
- {\definenote[#1][#2]%
- \setvalue {#1}{\dolinenote {#1}}%
- \setvalue{\e!start#1}{\dostartlinenote{#1}}%
- \setvalue{\e!stop #1}{\dostoplinenote {#1}}}
-
-\def\setuplinenote % convenient
- {\setupnote}
-
-% We predefine one, namely \type {\linenote} cum suis.
-
-\definelinenote[\v!linenote]
-
-% \startbuffer[test]
-% \startlinenumbering[100]
-% test \linenote {oeps} test test test test test test
-% test \startlinenote [well] {oeps} test test test test test test
-% test \linenote {oeps} test test test test test test
-% test \linenote {oeps} test test test test test test
-% test \linenote {oeps} test test test test test test
-% test \linenote {oeps} test test test test test test
-% test \stoplinenote [well] test test test test test test
-% \stoplinenumbering
-% \stopbuffer
-%
-% \setupnotedefinition[linenote] [location=serried,distance=.5em]
-%
-% {\typebuffer[test] \getbuffer[test]} \page
-%
-% \startbuffer[setup]
-% \setuplinenumbering
-% [align=left]
-% \stopbuffer
-%
-% {\typebuffer[setup] \getbuffer[setup,test]} \page
-%
-% \startbuffer[setup]
-% \setuplinenumbering
-% [width=1em,
-% align=left]
-% \stopbuffer
-%
-% {\typebuffer[setup] \getbuffer[setup,test]} \page
-%
-% \startbuffer[setup]
-% \setuplinenumbering
-% [width=2em,
-% distance=.5em,
-% align=left]
-% \stopbuffer
-%
-% {\typebuffer[setup] \getbuffer[setup,test]} \page
-%
-% \startbuffer[setup]
-% \setuplinenumbering
-% [width=2em,
-% align=middle]
-% \stopbuffer
-%
-% {\typebuffer[setup] \getbuffer[setup,test]} \page
-%
-% \startbuffer[setup]
-% \setuplinenumbering
-% [conversion=romannumerals,
-% start=1,
-% step=1,
-% location=text,
-% style=slanted,
-% color=blue,
-% width=1.5em]
-% \stopbuffer
-%
-% {\typebuffer[setup] \startnarrower\getbuffer[setup,test]\stopnarrower} \page
-%
-% \startbuffer[setup]
-% \setuplinenumbering
-% [width=4em,
-% left=--,
-% right=--,
-% align=middle]
-% \stopbuffer
-%
-% {\typebuffer[setup] \getbuffer[setup,test]} \page
-%
-% \startbuffer[setup-1]
-% \setuplinenumbering
-% [style=\bfxx,
-% command=\WatchThis]
-% \stopbuffer
-%
-% \startbuffer[setup-2]
-% \def\WatchThis#1%
-% {\ifodd\linenumber
-% \definecolor[linecolor][red]%
-% \else
-% \definecolor[linecolor][green]%
-% \fi
-% \inframed
-% [offset=1pt,frame=off,background=color,backgroundcolor=linecolor]
-% {#1}}
-% \stopbuffer
-%
-% {\typebuffer[setup-1,setup-2] \getbuffer[setup-1,setup-2,test]} \page
-%
-% \startbuffer[setup-1]
-% \setuplinenumbering
-% [location=inright,
-% style=\bfxx,
-% command=\WatchThis]
-% \stopbuffer
-%
-% {\typebuffer[setup-1] \getbuffer[setup-1,setup-2,test]} \page
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-lst.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-lst.mkii
deleted file mode 100644
index ffb1a4dbde4..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/strc-lst.mkii
+++ /dev/null
@@ -1,1150 +0,0 @@
-%D \module
-%D [ file=strc-lst,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Lists,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Structure Macros / Lists}
-
-\unprotect
-
-% \getlistlevel[hoofdstuk]\test{0} \test
-
-% can be made faster if needed
-
-\def\getlistlevel[#1]#2#3% [list] \variable \default
- {\doifdefinedelse{\??ko#1\c!section}
- {\edef#2{\getvalue{\??ko#1\c!section}}%
- \doifdefinedelse{\??se#2\c!level}
- {\edef#2{\getvalue{\??se#2\c!level}}}
- {\edef#2{#3}}}
- {\edef#2{#3}}}
-
-% Auto cross document links work by either using logical or
-% page references, depending on the general settings. The
-% locations are stored in global references where the auto tag
-% number uses the text container. We use reference mapping
-% (define reference) to keep track of the current ref.
-
-% \@@sectie == current level
-
-\def\dowritetolist#1%
- {\doifelsevalue{\??li#1\c!state}\v!start
- \dodowritetolist\gobblefourarguments{#1}}
-
-\long\def\dodowritetolist#1#2#3#4%
- {\begingroup
- \expanded{\everylistentry\emptytoks\the\everylistentry}% \emptytoks, else loop
- \def\currentlist{#1}% evt naar dowritetolist
- \defconvertexpanded\asciilistentry{\getvalue{\??li\currentlist\c!expansion}}{#3}%
- \makesectionformat
- \doifelse\@@nmstate\v!start
- {\def\dopagenummer{\noexpand\pagenumber}}
- {\let\dopagenummer\!!zerocount}%
- % niet waterdicht, wat te doen met figuren en zo
- % first hack: scheelt rommel, second hack: alleen koppen
- \doifelsevalue{\??rf\currentlist\c!state}\v!start
- {\doif{\@@sectionlevel\@@sectie}{0}\autocrossdocumentfalse}
- {\autocrossdocumentfalse}%
- % weak and inefficient
- \ifautocrossdocument
- \bgroup
- \thisisnextinternal\currentlist
- %\thisisdestination{\currentlist::\sectionformat}%
- \expanded{\setsectieenkoppeling{\currentlist}}%
- \edef\currentlevel{\@@sectionlevel\@@sectie}%
- \processcommacommand[\crossdocumentreferences]\dododowritetolist
- \egroup
- \else
- \thisisnextinternal\currentlist
- \fi
- \expanded
- {\writeutilitycommand % todo: also an immediate option
- {\noexpand\listentry
- {\currentlist}%
- {\nextinternalreference}%
- {#2}%
- {\asciilistentry}%
- {\sectionformat\sectionseparator\sectionseparator\dopagenummer}%
- {\noexpand\realfolio}}}%
- \endgroup}
-
-\def\dododowritetolist#1%
- {\def\docommand##1%
- {\doifvalue{\??rf##1\c!state}\v!start
- {\setsectieenkoppeling{##1}%
- \def\level{\@@sectionlevel\@@sectie}%
- \ifnum\level>\currentlevel
- \expanded{\definereference[#1::##1][\v!none]}%
- \else\ifnum\level=\currentlevel
- \expanded{\definereference[#1::##1][#1::{##1::\sectionformat}]}%
- \fi\fi}}%
- \processcommacommand[\crossdocumentelements]\docommand}
-
-% so far
-
-\def\dowritebetweenlist#1#2%
- {\doifvalue{\??li#1\c!state}\v!start
- {\begingroup
- \defconvertedargument\ascii{#2}%
- \makesectionformat
- \doifelse{\@@nmstate}\v!start
- {\def\dopagenummer{\noexpand\pagenumber}}
- {\let\dopagenummer\!!zerocount}%
- \expanded
- {\writeutilitycommand
- {\noexpand\listbetween
- {#1}%
- {\ascii}%
- {\sectionformat\sectionseparator\sectionseparator\dopagenummer}%
- {\noexpand\realfolio}}}%
- \endgroup}}
-
-% experimental (no nodes in mvl), needed for naw
-
-\def\immediatetolist[#1]#2#3#4%
- {\begingroup
- \defconvertexpanded\asciilistentry{\getvalue{\??li#1\c!expansion}}{#3}%
- \makesectionformat
- \immediatewriteutilitycommand
- {\listentry
- {#1}{}{#2}{\asciilistentry}%
- {\sectionformat\sectionseparator\sectionseparator\number#4}%
- {\realfolio}}%
- \endgroup}
-
-\def\immediatebetweenlist[#1]#2%
- {\begingroup
- \defconvertedargument\asciilistentry{#2}%
- \makesectionformat
- \immediatewriteutilitycommand
- {\listbetween
- {#1}{\asciilistentry}%
- {\sectionformat\sectionseparator\sectionseparator0}%
- {\realfolio}}%
- \endgroup}
-
-\def\setlistentries
- {\def\listentry ##1{\executeifdefined{##1\c!list }\gobblefivearguments }%
- \def\listbetween##1{\executeifdefined{##1\c!inbetween}\gobblethreearguments}}
-
-\def\resetlistentries
- {\let\listentry \gobblesixarguments
- \let\listbetween\gobblefourarguments}
-
-\resetlistentries
-
-\addutilityreset{listentries}
-
-% 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}
-
-\def\setlistparameter#1#2#3{\@EA\def\csname\??li#1#2\endcsname{#3}} % often
-\def\listparameter #1{\csname\??li\currentlist#1\endcsname}
-
-\def\dosetuplist[#1][#2]% slow -)
- {\def\docommand##1%
- {\getparameters[\??li##1][#2]%
- \preparepageprefix{\??li##1}}%
- \processcommalist[#1]\docommand}
-
-\def\setuplist
- {\dodoubleargument\dosetuplist}
-
-\def\dodosetlist#1%
- {\def\nolist{\splitsequence{\getvalue{\??li#1\c!limittext}}}%
- \setvalue{#1\c!inbetween}{\dobetweenlist{#1}}%
- \setvalue{#1\c!list }{\dolistelement{#1}}}
-
-% \def\dodoresetlist#1%
-% {\let\nolist\empty
-% \setvalue{#1\c!inbetween}{\gobblefourarguments{#1}}%
-% \setvalue{#1\c!list }{\gobblesixarguments {#1}}}
-
-\def\dodoresetlist#1%
- {\let\nolist\empty
- \letvalue{#1\c!inbetween}\gobblethreearguments
- \letvalue{#1\c!list }\gobblefivearguments}
-
-\let\nolist\empty
-
-\def\dodefinelist[#1][#2][#3]%
- {\presetlocalframed[\??li#1]%
- \getparameters
- [\??li#1]
- [\c!height=\v!broad,
- \c!depth=\v!broad,
- \c!offset=0.25em,
- \c!maxwidth=,
- \c!align=,
- \c!state=\v!start,
- \c!coupling=\v!off,
- \c!criterium=\v!local,
- \c!width=3em,
- \c!alternative=\c!b,
- \c!style=\v!normal,
- \c!textstyle=\listparameter\c!style,
- \c!numberstyle=\listparameter\c!style,
- \c!pagestyle=\listparameter\c!style,
- \c!color=,
- \c!textcolor=\listparameter\c!color,
- \c!numbercolor=\listparameter\c!color,
- \c!pagecolor=\listparameter\c!color,
- \c!numbercommand=\listnumbercommand,
- \c!textcommand=\listtextcommand,
- \c!pagecommand=\listpagecommand,
- \c!pagenumber=\v!yes,
- \c!headnumber=\v!yes,
- \c!pageboundaries=,
- \c!margin=\!!zeropoint,
- \c!aligntitle=,
- \c!before=,
- \c!after=,
- \c!inbetween=,
- \c!symbol=,
- \c!interaction=\v!sectionnumber,
- \v!part\v!number=\v!yes, % nodig ? % v
- %\c!prefix=\v!no, % we need to initialize it
- \c!label=\v!no,
- \c!distance=\!!zeropoint,
- \c!separator=\@@koseparator,
- \c!limittext=\@@kolimittext,
- \c!stopper=,
- \c!expansion=]%
- \doifassignmentelse{#2}
- {\getparameters[\??li#1][#2]}
- {\ConvertToConstant\doifnot{#2}{} % not \doifsomething ivm Convert...
- {\copyparameters % interactie ?
- [\??li#1][\??li#2]
- [\c!state,\c!width,\c!alternative,\c!style,\c!color,
- \c!textstyle,\c!textcolor,\c!textcommand,
- \c!pagestyle,\c!pagecommand,\c!pagecolor,
- \c!numberstyle,\c!numbercolor,\c!numbercommand,
- \c!headnumber,
- \c!pagenumber,\c!pageboundaries,\c!margin,\c!symbol,\c!limittext,
- \c!aligntitle,\c!before,\c!after,\c!inbetween,\v!part\c!number,\c!label]%
- \getparameters[\??li#1][#3]}}%
- \addutilityreset{#1}%
- \setvalue{\s!set #1}{\dodosetlist {#1}}%
- \setvalue{\s!reset#1}{\dodoresetlist{#1}}}
-
-\def\definelist
- {\dotripleempty\dodefinelist}
-
-\def\iflijstgeplaatst{\ifutilitydone} % obsolete, is now a mode
-
-\def\placelist
- {\dodoubleempty\doplacelist}
-
-\def\placerawlist
- {\dodoubleempty\doplacerawlist}
-
-\def\dobeginoflist
- {\begingroup
- \startpacked[\v!blank]}
-
-\def\doendoflist
- {\stoppacked
- \endgroup}
-
-\def\doplacelist[#1][#2]%
- {\dobeginoflist
- \doplacerawlist[#1][#2]%
- \doendoflist}
-
-\def\doplacerawlist[#1][#2]%
- {\begingroup
- \dogetcommalistelement1\from#1\to\firstlistelement
- \dosetuplist[#1][#2]%
- \doifvalue{\??li\firstlistelement\c!coupling}\v!on
- {\startlistreferences{#1}}%
- \dosettoclevel\??li\firstlistelement
- \honorlocalfilterlevel
- \doutilities{listentries,#1}\jobname{#1}\relax\par
- \stoplistreferences
- \dosetlistmode
- \endgroup}
-
-% the simple approach:
-%
-% \def\dosettoclevel#1#2%
-% {\dosetfilterlevel{\getvalue{#1#2\c!criterium}}\empty}
-%
-% but we want to to support selection by number:
-%
-% \starttypen
-% \placelist[section][criterium=chapter,number=1] \blank
-% \placelist[section][criterium=chapter,number=2] \blank
-% \placelist[section][criterium=chapter,number=3] \blank
-%
-% \chapter{first} \section{AA} \section{BB}
-% \chapter{second} \section{CC} \section{DD}
-% \chapter{third} \section{EE} \section{FF}
-% \stoptypen
-
-\def\dosettoclevel#1#2% todo: check if criterium is headid, else error
- {\ifundefined{#1#2\c!number}%
- \dosetfilterlevel{\getvalue{#1#2\c!criterium}}\empty
- \else
- % \doifnot{#2}\v!local ...
- \doifelsevaluenothing{#1#2\c!number}%
- {\dosetfilterlevel{\getvalue{#1#2\c!criterium}}\empty}
- {\setsectieenkoppeling{\getvalue{#1#2\c!criterium}}%
- \dosetfilterlevel
- {\previoussection\@@sectie}%
- {\getvalue{#1#2\c!number}}}%
- \fi}
-
-\def\dosetlistmode
- {\ifutilitydone
- \setsystemmode \v!list
- \else
- \resetsystemmode\v!list
- \fi}
-
-\def\dodocompletelist[#1][#2][#3]% enkelvoud, meervoud, instellingen
- {\expanded{\systemsuppliedtitle[#2]{\noexpand\headtext{#2}}}% expansion needed for v! vs french !
- \doplacelist[#1][#3]}
-
-\def\docompletelist[#1][#2]%
- {\dodocompletelist[#1][#1][#2]}
-
-\def\completelist
- {\dodoubleempty\docompletelist}
-
-\def\listelements {} % list of page breaks
-\def\listnumbercommand #1{#1} % no strut due to interactive version
-\def\listtextcommand #1{\begstrut#1\endstrut}
-\def\listpagecommand #1{\strut#1}
-
-\def\doassigndimen#1#2#3%
- {\doifinsetelse{#2}{\v!fit,\v!broad}{#1=#3}{#1=#2}\relax}
-
-% \let\dohandlelistnumber\firstofoneargument
-%
-% can be anything, so no \expanded{\separatednumber{#1}} !
-
-\def\dohandlelistnumber#1{\separatednumber{#1}}
-
-\def\listsymbol[#1]#2%
- {\begingroup
- \def\currentlist{#1}%
- \def\currentlistnumber{#2}%
- \currentlistsymbol
- \endgroup}
-
-% Beware, the list symbol macro gets an argument passed, i.e. when this
-% argument is not picked up, the symbol becomes a kind of prefix.
-
-% for historical reasons we're stuck to symbols, so in order to generalize,
-% we have to hook it into the symbol handler; we need a beter clean up later
-%
-% < 2005
-%
-% \def\dosetlistsymbol % #1
-% {\executeifdefined{listsymbol@\listparameter\c!symbol}\listsymbol@default} % {#1}
-%
-% >= 2005
-%
-% at this symbol level, we have access to the raw 'number' in
-% \currentlistnumber
-
-\definesymbol[\v!list][\v!none ][\listsymbol@none ]
-\definesymbol[\v!list][\v!one ][\listsymbol@one ]
-\definesymbol[\v!list][\v!two ][\listsymbol@two ]
-\definesymbol[\v!list][\v!three ][\listsymbol@three ]
-\definesymbol[\v!list][\s!default][\listsymbol@default]
-\definesymbol[\v!list][\s!unknown][\listsymbol@unknown]
-
-\def\currentlistsymbol
- {\doifinsymbolsetelse\v!list{\listparameter\c!symbol}
- {\directsymbol\v!list{\listparameter\c!symbol}}
- {\directsymbol\v!list\s!default}}
-
-\def\listsymbol@none
- {\doassigndimen\scratchdimen{\listparameter\c!width}{1.5em}%
- \hbox to \scratchdimen{}}
-
-\def\listsymbol@one
- {\strut$\bullet$}
-
-\def\listsymbol@two
- {\vrule\!!width1em\!!height1ex\!!depth\zeropoint}
-
-\def\listsymbol@three
- {\begingroup
- \doassigndimen{\dimen0}{\listparameter\c!width }{1.5em}%
- \doassigndimen{\dimen2}{\listparameter\c!height}{1ex}%
- \doassigndimen{\dimen4}{\listparameter\c!depth }\zeropoint
- \vrule\!!width\dimen0\!!height\dimen2\!!depth\dimen4%
- \endgroup}
-
-\def\listsymbol@default
- {\doifelse{\listparameter\c!prefix}\v!no % ook nog eerste
- {\edef\splitlistsymbol{\@EA\removefirstprefix\@EA{\currentlistnumber}}}% one level expansion
- {\doifelse{\listparameter\c!prefix}\v!none
- {\edef\splitlistsymbol{\@EA\removeallprefixes\@EA{\currentlistnumber}}}%
- {\let\splitlistsymbol\currentlistnumber}}% geen \edef ivm 8 bit enz
- \doif{\listparameter\c!label}\v!yes{\leftlabeltext\currentlist}%
- \strut
- \def\numberseparator{\listparameter\c!separator}% overloaded, todo
- \@EA\dohandlelistnumber\@EA{\splitlistsymbol}%
- \listparameter\c!stopper
- \doif{\listparameter\c!label}\v!yes{\rightlabeltext\currentlist}}
-
-\def\listsymbol@unknown
- {\listparameter\c!symbol}
-
-% so far for list symbols
-
-\def\@@dodolistelement{dodolistelement}
-
-\def\dosomelistelement#1#2#3{#1 #2 \translatednumber[#3]}
-
-\setvalue{\@@dodolistelement a}{\let\dosomelistelement\dodofixdlistelementABC}
-\setvalue{\@@dodolistelement b}{\let\dosomelistelement\dodofixdlistelementABC}
-\setvalue{\@@dodolistelement c}{\let\dosomelistelement\dodofixdlistelementABC}
-\setvalue{\@@dodolistelement d}{\let\dosomelistelement\dodofixdlistelementD}
-\setvalue{\@@dodolistelement e}{\let\dosomelistelement\dodofixdlistelementE}
-\setvalue{\@@dodolistelement f}{\let\dosomelistelement\dodofixdlistelementF}
-\setvalue{\@@dodolistelement g}{\let\dosomelistelement\dodofixdlistelementG}
-
-\setvalue{\@@dodolistelement\v!none }{\def\dosomelistelement{\dodofreevlistelement}}
-\setvalue{\@@dodolistelement\v!vertical }{\def\dosomelistelement{\dodofreevlistelement}}
-\setvalue{\@@dodolistelement\v!horizontal}{\def\dosomelistelement{\dodofreehlistelement}}
-\setvalue{\@@dodolistelement\v!command }{\let\dosomelistelement\dodocommandlistelement}
-
-% \setuplist
-% [section]
-% [alternative=MyListItem,
-% after=\blank,
-% before=\blank]
-%
-% \definelistplacement[MyListItem][none]#1#2#3%
-% {(#1) (#2) (#3)}
-
-\def\definelistplacement
- {\dodoubleempty\dodefinelistplacement}
-
-\def\dodefinelistplacement[#1][#2]%
- {\setvalue{\@@dodolistelement#1}%
- {\doifelsenothing{#2}
- {\getvalue{\@@dodolistelement\v!command}}%
- {\executeifdefined{\@@dodolistelement#2}
- {\getvalue{\@@dodolistelement\v!command}}}%
- \setvalue{\??li\currentlist\c!command}{\getvalue{\@@dodolistelement::#1}}}%
- \setvalue{\@@dodolistelement::#1}}
-
-% don't mess arround with endgraf/grouping else we loose leftskip
-
-% \strippedcsname\dodolistelement
-
-\def\newlineinlist{\space}
-
-\let\currentlist\s!unknown
-
-\def\dolistelement#1#2#3#4#5#6% pas op: wordt ook elders gedefinieerd
- {\doiftoclevelelse[#5]{\dodolistelement{#1}{#2}{#3}{#4}{#5}{#6}}{}}
-
-\def\dodolistelement#1#2#3#4#5#6%
- {\def\currentlist{#1}%
- \def\currentlistnumber{#3}%
- \getvalue{\@@dodolistelement\listparameter\c!alternative}%
- %\showcomposition
- \let\@@iawidth\!!zeropoint % moet boolean worden
- \bgroup
- \edef\listelements
- {\listparameter\c!pageboundaries}%
- \ExpandBothAfter\doifinset{#3}\listelements
- {\showmessage\m!systems{14}{#3}%
- \page}%
- \egroup
- \dontcomplain
- \setfullsectionnumber{\??li\currentlist}%
- \dosomelistelement{#1}{#2}{#3}{#4}{#5}{#6}%
- \global\utilitydonetrue}
-
-\def\donestedlistattributes#1#2%
- {\doifvaluesomething{\??li\currentlist#2} % color
- {\resetinteractionparameter\c!color
- \resetinteractionparameter\c!contrastcolor}%
- \dolistattributes{#1}{#2}}
-
-\def\dostartlistattributes{\dostartattributes{\??li\currentlist}}
-\def\dostoplistattributes {\dostopattributes}
-\def\dolistattributes {\doattributes{\??li\currentlist}}
-
-\def\dodocommandlistelement#1#2#3#4#5#6%
- {\doifdefinedelse{\??li#1\c!command}
- {\listparameter\c!command
- {#3}{#4}{\pageprefix\??li\currentlist[#5]\translatednumber[#5]}}
- {[\currentlist: #3 - #4 - \pageprefix\??li\currentlist[#5]\translatednumber[#5]]}}
-
-\def\dodofreelistelement#1#2#3#4#5#6#7#8%
- {\def\makelistelement##1##2%
- {\noindent % new and needed
- \hbox
- {\doifelse{\listparameter\c!interaction}{##1} % \??li ipv \??ia
- {\setbox0\hbox{\showcontrastlocation{\??li\currentlist}{#6}{##2}}%
- \linklisttoelement{#2}{#5}{#6}{\box0}}%{\copy0}}%
- {##2}}}%
- \listparameter\c!before% can be \hskip
- \doifdefinedelse{\??li#1\c!command}
- {\makelistelement{\listparameter\c!interaction}% this forces all
- {\listparameter\c!command
- {#3}% geen conversies etc
- {#4}% geen conversies etc
- {\pageprefix\??li\currentlist[#5]%
- \translatednumber[#5]}}}
- {#7%
- \vbox
- {\forgetall
- \makelistelement\v!all
- {%
-\doif{\listparameter\c!headnumber}\v!yes
- {\makelistelement\v!sectionnumber
- {\donestedlistattributes\c!numberstyle\c!numbercolor
- {\listparameter\c!numbercommand{\currentlistsymbol}}}%
-}%
- \makelistelement\v!text
- {\donestedlistattributes\c!textstyle\c!textcolor
- {\let\\=\newlineinlist
- \dontconvertfont
- \listparameter\c!textcommand{#4}}}%
- \doif{\listparameter\c!pagenumber}\v!yes
- {\doifsomething{#5}
- {\makelistelement\v!pagenumber
- {\donestedlistattributes\c!pagestyle\c!pagecolor
- {\listparameter\c!pagecommand
- {\pageprefix\??li\currentlist[#5]%
- \translatednumber[#5]}}}}}}}%
- #8}%
- \listparameter\c!after}
-
-\def\dodofreehlistelement#1#2#3#4#5#6%
- {\dodofreelistelement{#1}{#2}{#3}{#4}{#5}{#6}
- {\noindent}{}}
-
-\def\dodofreevlistelement#1#2#3#4#5#6% % \nointerlineskip needed,
- {\dodofreelistelement{#1}{#2}{#3}{#4}{#5}{#6} % otherwise wrong spacing
- {\ifvmode\nointerlineskip\fi} % at multi-line lists
- {\ifvmode\nointerlineskip\fi\endgraf\allowbreak}} % test is saveguard
-
-% to be documented: align, hang
-
-% now also in abc
-
-\def\limitatedlistentry#1%
- {\doifelsenothing{\listparameter\c!maxwidth}
- {\listparameter\c!textcommand{#1}}
- {\listparameter\c!textcommand
- {\limitatetext
- {#1}%
- {\listparameter\c!maxwidth}%
- {\splitsymbol{\listparameter\c!limittext}}}}}
-
-\def\dodofixdlistelementABC#1#2#3#4#5#6% weeden
- {\endgraf
- \leftskip\listparameter\c!margin% na de \endgraf !
- \listparameter\c!before
- \!!widthc\listparameter\c!distance
- \doifelse{\listparameter\c!width}\v!fit
- {\!!widtha\zeropoint}
- {\doifelsenothing{#3}
- {\doifelse{\listparameter\c!aligntitle}\v!yes
- {\!!widtha\zeropoint
- \!!widthc\zeropoint}
- {\!!widtha\listparameter\c!width}}
- {\!!widtha\listparameter\c!width}}%
- \getvalue{\??li\c!alternative\listparameter\c!alternative}%
- \endgraf
- \def\makelistelement##1##2%
- {\doifelse{\listparameter\c!interaction}{##1}
- {\setbox0\hbox{\showcontrastlocation\??ia{#6}{##2}}%
- \linklisttoelement{#2}{#5}{#6}{\box0}}%{\copy0}}%
- {\hbox{##2}}}%
- \doif{\listparameter\c!interaction}\v!text % not supported ! ! ! ! ! ! text == all
- {\setlistparameter\currentlist\c!interaction\v!all}%
- % \dontleavehmode % new, else no margin, but wrong, better (else \indent as well):
- \noindent
- \makelistelement\v!all
- {\setlocalhsize
- \hsize\localhsize
- \hbox to \hsize
- {\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{}}%
- \setbox4\hbox
- {\doif{\listparameter\c!pagenumber}\v!yes
- {\doifsomething{#5} % \listwidth is new ; temp hack
- {\hbox \ifdim\listwidth>\zeropoint to \listwidth\fi
- {\hfill
- \makelistelement\v!pagenumber
- {\donestedlistattributes\c!pagestyle\c!pagecolor
- {\listparameter\c!pagecommand
- {\pageprefix\??li\currentlist[#5]%
- \translatednumber[#5]}}}}}}}%
- \vbox
- {\hsize\!!widthb
- \setupalign[\listparameter\c!align]%
- \ifdim\!!widtha<\hsize
- \hangindent\wd2
- \dimen2=\!!widthc % \listparameter\c!distance
- \advance\hangindent \dimen2
- \hangafter\plusone
- \doif{\listparameter\c!hang}\v!no{\hangafter\zerocount}%
- \ifdim\wd4=\zeropoint % \ifvoid4
- % we kunnen gewoon afbreken aan het eind
- \else
- \ifdim\listskip>\zeropoint\relax
- \rightskip\listskip\!!plus\liststretch\relax
- \parfillskip-\rightskip
- \fi
- \fi
- \else
- \dimen2\zeropoint
- \fi
- \parindent\zeropoint\relax
- \leavevmode
- \box2\relax
- \hskip\dimen2
- \bgroup
- \donestedlistattributes\c!textstyle\c!textcolor
- {\let\\=\newlineinlist
- \dontconvertfont
- %\listparameter\c!textcommand{#4}}%
- \limitatedlistentry{#4}}%
- %\carryoverpar % new otherwise wrong linespacing
- \egroup
- \ifdim\wd4=\zeropoint\relax % \ifvoid4
- % \ifdim\!!widtha<\hsize \hfill\strut \fi % spoils align
- \else
- \nobreak\listfill
- \box4\relax
- \relax
- \fi}%
- \hss
- \dostoplistattributes}}% new
- \endgraf % new, else problems with nointerlinespace and prevdepth
- \nointerlineskip % anders verkeerde spatiering bij multi-line
- \endgraf
- \allowbreak
- \listparameter\c!after}
-
-% % example from the context list
-%
-% \setuphead [part] [page=right,placehead=yes]
-% \setuplist [chapter] [alternative=d,before=\blank,after=\blank]
-% \setuplist [part] [before=\blank,after=\blank]
-%
-% \starttext
-% \startnarrower[2*right] \placecontent \stopnarrower
-% \blank[4*big]
-% \startsetups chapter
-% \blank \startnarrower[3*middle] \placecontent[criterium=local] \stopnarrower
-% \stopsetups
-% \placelist[part][criterium=text,after=\setups{chapter}]
-%
-% \part{First part} \chapter{Chapter one} \chapter{Chapter two}
-% \chapter{Chapter three} \chapter{Chapter four} \chapter{Chapter five}
-% \part{Second part} \chapter{Chapter one} \chapter{Chapter two}
-% \chapter{Chapter three} \chapter{Chapter four} \chapter{Chapter five}
-% \part{Third part} \chapter{Chapter one} \chapter{Chapter two}
-% \chapter{Chapter three} \chapter{Chapter four} \chapter{Chapter five}
-% \stoptext
-
-% overrulen interactie kan sneller, bv door hulpconstanten
-% te gebruiken en die te letten
-
-\def\dodofixdlistelementD#1#2#3#4#5#6%
- {%\leftskip=\listparameter\c!margin
- \ifvmode
- \advance\leftskip\listparameter\c!margin% AANGEPAST
- \fi
- \bgroup
- \ifvmode
- \noindent\leavevmode % leavevmode ? ? ?
- \fi
- \doif{\listparameter\c!interaction}\v!text % not supported
- {\setlistparameter\currentlist\c!interaction\v!sectionnumber}%
- \doif{\listparameter\c!interaction}\v!all % not supported
- {\setlistparameter\currentlist\c!interaction\v!sectionnumber}%
- \def\makelistelement##1##2%
- {\doifelse{\listparameter\c!interaction}{##1}
- {\setbox0\hbox{\showcontrastlocation\??ia{#6}{##2}}%
- \linklisttoelement{#2}{#5}{#6}{\box0}}%{\copy0}}%
- {\hbox{##2}}}%
- \setbox4\hbox
- {\doif{\listparameter\c!pagenumber}\v!yes
- {\doifsomething{#5}
- {\makelistelement\v!pagenumber
- {\donestedlistattributes\c!pagestyle\c!pagecolor
- {\listparameter\c!pagecommand
- {\pageprefix\??li\currentlist[#5]%
- \translatednumber[#5]}}}}}}%
-\doif{\listparameter\c!headnumber}\v!yes{%
- \donetrue
- \doifnothing{#3}{\doifnothing{\listparameter\c!symbol}\donefalse}%
- % == \doifnothing{#3\listparameter\c!symbol}\donefalse
- \ifdone
- \hbox
- {\listparameter\c!left
- \makelistelement\v!sectionnumber
- {\donestedlistattributes\c!numberstyle\c!numbercolor
- {\listparameter\c!numbercommand{\currentlistsymbol}}}%
- \listparameter\c!right
- \hskip.5em}%
- \nobreak
- \fi
-}%
- \tolerance3500 % niet zomaar veranderen
- \donestedlistattributes\c!textstyle\c!textcolor
- {\let\\=\newlineinlist
- \dontconvertfont
- %\listparameter\c!textcommand{#4}}%
- \limitatedlistentry{#4}}%
- \ifvoid4\else
- \nobreak
- \hskip.75em\relax
- \nobreak
- \box4
- \fi
- \dimen0=\listparameter\c!distance\relax
- \ifdim\dimen0<1em\relax
- \hskip1em\!!plus1em\!!minus.25em\relax
- \else
- \hskip\dimen0\!!plus.5\dimen0\!!minus.25\dimen0\relax
- \fi
- \egroup}
-
-\def\dodofixdlistelementE#1%
- {\dodofixdlistelementEFG
- {\setupinteraction[\c!strut=\v!no]}
- {\localframed[\??li\currentlist][\c!depth=\!!zeropoint,\c!color=]}
- {}}
-
-\def\dodofixdlistelementF#1%
- {\dodofixdlistelementEFG
- {}
- {\dosetraggedhbox{\listparameter\c!align}\raggedbox}
- {}}
-
-\def\dodofixdlistelementG#1%
- {\dodofixdlistelementEFG
- {}
- \midaligned
- {}}
-
-\def\dodofixdlistelementEFG#1#2#3#4#5#6#7#8%
- {\noindent
- \bgroup
- \def\makelistelement##1##2% isolated by Wolfgang Schuster
- {\doifelse{\listparameter\c!interaction}{##1}
- {#2{##2}}
- {\setbox0\hbox{#2{\showcontrastlocation\??ia{#8}{##2}}}%
- \linklisttoelement{#4}{#7}{#8}{\box0}}}%
- \makelistelement\v!no
- {\let\\=\newlineinlist
- #1% in case E nils the strut (still needed?)
- \dostartlistattributes\c!style\c!color\empty
- \ignorespaces\dontconvertfont\setstrut
- \begstrut
- \limitatedlistentry{#6}%
- \endstrut
- \dostoplistattributes}%
- \egroup
- \par
- \listparameter\c!inbetween}
-
-% better:
-%
-% \def\linklisttoelement#1#2#3#4% % list location format page data
-% {\ifautocrossdocument
-% \gotodestination{}{}{\currentlist::\@@filterblocknumberpart[#2]}{#3}{#4}%
-% \else
-% \gotonextinternal\currentlist{#1}{#3}{#4}%
-% \fi}
-%
-% but for the moment:
-
-\def\linklisttoelement#1#2#3#4% % list location format page data
- {\gotonextinternal\currentlist{#1}{#3}{#4}}
-
-\def\writetolist[#1]#2#3%
- {\doifsomething{#1}
- {\defconvertedargument\firstlistelement{#2}%
- \@EA\dowritetolist\@EA{#1}{\firstlistelement}{#3}{\v!head}}}
-
-\def\dobetweenlist#1#2#3#4% pas op: wordt ook elders gedefinieerd
- {\doiftoclevelelse[#3]{#2}{}}
-
-\def\writebetweenlist[#1]#2%
- {\@EA\dowritebetweenlist\@EA{#1}{#2}} % #2 weg en \expanded
-
-% NOG ENGELS MAKEN
-
-\def\listlength{\utilitylistlength}
-\def\listwidth {\utilitylistwidth}
-\def\listheight{\utilitylistheight}
-
-\def\utilitylistlength {0}
-\def\utilitylistwidth {0pt}
-\def\utilitylistheight {0pt}
-
-\def\dolistelementX#1#2#3#4#5#6%
- {\doiftoclevelelse[#5]
- {\doglobal\increment\utilitylistlength
- \hbox
- {\dolistattributes\c!textstyle\c!textcolor
- {\let\\=\newlineinlist
- \dontconvertfont
- \listparameter\c!textcommand{#4}}}%
- \global\utilitydonetrue}
- {}}
-
-\def\dodeterminelistcharacteristics[#1][#2]%
- {\begingroup
- \doglobal\newcounter\utilitylistlength
- \let\dolistelement\dolistelementX
- \dosetuplist[#1][#2]%
- \dogetcommalistelement1\from#1\to\commalistelement
- \dosettoclevel\??li\commalistelement
- \setbox0\vbox{\doutilities{listentries,#1}\jobname{#1}\relax\par}%
- \xdef\utilitylistheight{\the\ht0}%
- \xdef\utilitylistwidth {\the\wd0}%
- \endgroup
- \dosetlistmode}
-
-\def\determinelistcharacteristics
- {\dodoubleempty\dodeterminelistcharacteristics}
-
-% \definerreferencelist
-% [externalfigure]
-% [command=\showbigfigure,
-% before=\page,
-% after=\page]
-%
-% \definereferencelist
-% [externaltable]
-% [command=\showbigtable,
-% before=\page,
-% after=\page]
-%
-% \def\showbigfigure#1%
-% {\externalfigure[#1][frame=on,factor=max]}
-%
-% \def\showbigtable#1%
-% {\switchtobodyfont[12pt]\getbuffer[#1]}
-%
-% \writetoreferencelist[externalfigure]{koe} {\externalfigure[koe] [width=3cm,frame=on]}
-% \writetoreferencelist[externalfigure]{paard}{\externalfigure[paard][width=3cm,frame=on]}
-%
-% \startbuffer[kanweg]
-% \starttable[|||]
-% \HL
-% \VL test \VL test \VL\SR
-% \HL
-% \VL test \VL test \VL\FR
-% \VL test \VL test \VL\MR
-% \VL test \VL test \VL\LR
-% \HL
-% \stoptable
-% \stopbuffer
-%
-% \writetoreferencelist[externaltable]{kanweg}{\switchtbodyfont[5pt]\getbuffer[kanweg]}
-%
-% \placereferencelist[externalfigure,externaltable]
-
-% algemeen
-
-\def\referencebutton#1[#2]%
- {\hbox\bgroup % the \hbox is needed to bypass
- \let\referenceprefix\empty % \dontleavehmode in \gotobox
- \setupinteraction[\c!color=,\c!contrastcolor=,\c!strut=]%
- \setupreferencing[\c!prefix=]%
- \gotobox{\hbox{\ignorespaces#1}}[#2]%
- \egroup}
-
-\newcounter\referencecounter
-
-\def\doreferencelistelement#1#2#3#4#5%
- {\doiftoclevelelse[#4]
- {\getvalue{\??rl#1\c!before}%
- \referencebutton
- {\getvalue{\??rl#1\c!command}{#3}\pagereference[\r!to#2]}%
- [\r!from#2]%
- \global\utilitydonetrue
- \getvalue{\??rl#1\c!after}}
- {}}
-
-\def\doplacereferencelist[#1][#2]%
- {\begingroup
- \setupreferencelist[#1][#2,\c!state=\v!stop]%
- \dogetcommalistelement1\from#1\to\commalistelement
- \dosettoclevel\??rl\commalistelement
- \doutilities{listentries,#1}\jobname{#1}\relax\par
- \endgroup}
-
-\def\placereferencelist
- {\dodoubleempty\doplacereferencelist}
-
-\def\dowritetoreferencelist#1#2#3%
- {\doifvalue{\??rl#1\c!state}\v!start
- {\begingroup
- \makesectionformat
- \doifelse{\@@nmstate}\v!start
- {\def\dopagenummer{\noexpand\pagenumber}}
- {\let\dopagenummer\!!zerocount}%
- \expanded
- {\writeutilitycommand%
- {\noexpand\referencelistentry%
- {#1}% tag
- {#2}% number
- {#3}% data
- {\sectionformat\sectionseparator\sectionseparator\dopagenummer}%
- {\noexpand\realfolio}}}%
- \endgroup}}
-
-\def\writetoreferencelist[#1]#2% #1=class #2=data #3=visualization
- {\dowithnextbox
- {\doifelsevalue{\??rl#1\c!state}\v!start
- {\doglobal\increment\referencecounter % must be resolved due to #2
- \referencebutton
- {\flushnextbox
- \pagereference[\r!from\referencecounter]%
- \dowritetoreferencelist{#1}{\referencecounter}{#2}}%
- [\r!to\referencecounter]}
- {\flushnextbox}}
- \hbox} % \vbox ?
-
-\def\referencelistentry#1%
- {\executeifdefined{#1\c!list}\gobblefourarguments}
-
-\def\dodosetreferencelist#1%
- {\setvalue{#1\c!list}{\doreferencelistelement{#1}}}
-
-\def\dodoresetreferencelist#1%
- {\setvalue{#1\c!list}{\gobblefourarguments}}
-
-\def\dodefinereferencelist[#1][#2]%
- {\setupreferencelist[#1]
- [\c!command=,
- \c!state=\v!start,
- \c!criterium=\v!all,
- \c!before=,
- \c!after=,
- #2]%
- \resetcounter{#1}%
- \addutilityreset{#1}%
- \setvalue{\s!set #1}{\dodosetreferencelist {#1}}%
- \setvalue{\s!reset#1}{\dodoresetreferencelist{#1}}}
-
-\def\definereferencelist
- {\dodoubleempty\dodefinereferencelist}
-
-\def\dosetupreferencelist[#1][#2]%
- {\getparameters[\??rl#1][#2]}
-
-\def\setupreferencelist
- {\dodoubleempty\dosetupreferencelist}
-
-\def\dosetupcombinedlist[#1][#2]%
- {\getparameters[\??ih#1][#2]%
- \expanded{\setuplist[\getvalue{\??ih#1\c!list}]}[#2]}
-
-\def\setupcombinedlist
- {\dodoubleargument\dosetupcombinedlist}
-
-\def\doplacecombinedlist[#1][#2]%
- {\begingroup
- \getparameters[\??ih#1][#2]%
- \dosettoclevel\??ih{#1}%
- \edef\combinedlist{\getvalue{\??ih#1\c!list}}%
- \doifelsevalue{\??ih#1\c!level}\v!current %
- {\!!counta=0\@@kolevel} % hm: \@@kolevel
- {\fullexpandoneargafter\doifnumberelse{\getvalue{\??ih#1\c!level}}% in verband
- {\!!counta\getvalue{\??ih#1\c!level}% met de vorige implementatie
- \advance\!!counta \plusone % accepteren we ook nummers (0==deel)
- \getfromcommacommand[\combinedlist][\!!counta]%
- \edef\maximumlist{\commalistelement}}%
- {\edef\maximumlist{\getvalue{\??ih#1\c!level}}}%
- \doifdefinedelse{\??ko\maximumlist\c!section}
- {\!!counta\getvalue{\??se\getvalue{\??ko\maximumlist\c!section}\c!level}}%
- {\!!counta\zerocount}}
- \let\!!stringa\combinedlist
- \let\combinedlist\empty
- \def\docommand##1%
- {\doifdefinedelse{\??ko##1\c!section}
- {\ifnum\getvalue{\??se\getvalue{\??ko##1\c!section}\c!level}>\!!counta\else
- \addtocommalist{##1}\combinedlist
- \fi}%
- {\addtocommalist{##1}\combinedlist}}%
- \processcommacommand[\!!stringa]\docommand
- \doifvalue{\??ih#1\c!coupling}\v!on
- {\startlistreferences{#1}}%
- \ExpandFirstAfter\dodoplacecombinedlist[\combinedlist][#2]%
- \stoplistreferences
- \endgroup
- \dosetlistmode}
-
-\def\dodoplacecombinedlist[#1][#2]%
- {\dobeginoflist
- \dosetuplist[#1][#2]%
- \doutilities{listentries,#1}\jobname{#1}\relax\par
- \doendoflist}
-
-\def\docompletecombinedlist[#1][#2]%
- {\expanded{\systemsuppliedtitle[#1]{\noexpand\headtext{#1}}}% expansion due to v! vs french !
- \doplacecombinedlist[#1][#2]}
-
-\def\dodefinecombinedlist[#1][#2][#3]%
- {\makerawcommalist[#2]\combinedlist % for fast processing
- \letvalue{\??ih#1\c!list}\combinedlist
- \getcommalistsize[#2]%
- \getfromcommalist[#2][\commalistsize]%
- \doeassign[\??ih#1][\c!level=\commalistelement]%
- \getparameters
- [\??ih#1]
- [\c!criterium=\v!local,#3]%
- \setvalue{\e!setup#1\e!endsetup}%
- {\dodoubleempty\dosetupcombinedlist[#1]}%
- \setvalue{\e!place#1}%
- {\dodoubleempty\doplacecombinedlist[#1]}%
- \setvalue{\e!complete#1}%
- {\dodoubleempty\docompletecombinedlist[#1]}}
-
-\def\definecombinedlist
- {\dotripleempty\dodefinecombinedlist}
-
-\def\placecombinedlist
- {\dodoubleempty\doplacecombinedlist}
-
-% new and yet undocumented (used in cocoa qa)
-%
-% \setupremaininglistlength
-% [left=\hss nog~,right=~ingangen]
-%
-% \resetremaininglistlength
-% [section][settings]
-%
-% \placelist
-% [section]
-% [before=\showremaininglistlength]
-%
-% \dorecurse{100}{\section{hans}}
-
-\definesystemvariable {ll} % ListLength
-
-\def\setupremaininglistlength[#1]%
- {\getparameters[\??ll][#1]%
- \globallet\listlengthcounter\!!zerocount}
-
-\setupremaininglistlength
- [\c!left=\hss,\c!right=,\c!number=\v!yes,
- \c!before=\blank,\c!after=\page,
- \c!style=\v!smallnormal,\c!color=]
-
-\def\resetremaininglistlength
- {\dodoubleempty\doresetremaininglistlength}
-
-\def\doresetremaininglistlength[#1][#2]%
- {\determinelistcharacteristics[#1][#2]% \determinelistcharacteristics[#1][#2]%
- \xdef\listlengthcounter{\number\utilitylistlength}}
-
-\def\showremaininglistlength
- {\bgroup
- \ifnum\listlengthcounter>\plusone
- \setbox\scratchbox\vbox
- {\@@llbefore\par\horizontalstrut\par\horizontalstrut\par\@@llafter}%
- \scratchdimen\pagetotal
- \advance\scratchdimen \ht\scratchbox
- \advance\scratchdimen \dp\scratchbox
- \ifdim\scratchdimen>\pagegoal
- \@@llbefore
- \nobreak\hbox to \hsize
- {\doifnot\@@llnumber\v!yes{\let\listlengthcounter\empty}%
- \doattributes\??ll\c!style\c!color{\@@llleft\listlengthcounter\@@llright}}
- \@@llafter
- \fi
- \fi
- \doglobal\decrement\listlengthcounter\relax
- \egroup}
-
-\setupreferencelist
- [\c!style=\v!normal]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-mar.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-mar.mkii
deleted file mode 100644
index 2ae81e47bb5..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/strc-mar.mkii
+++ /dev/null
@@ -1,318 +0,0 @@
-%D \module
-%D [ file=strc-mar,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Markings,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Structure Macros / Markings}
-
-\unprotect
-
-\prependtoks \getallmarks \to \everybeforepagebody
-\prependtoks \setallmarks \to \everyafterpagebody % currently \relax
-
-% voor 'interne' doeleinden zijn beschikbaar:
-%
-% \fetchmark[naam][plaats]
-
-\def\mainmarking#1%
- {\ifcsname\??mk#1\c!coupling\endcsname
- \csname\??mk#1\c!coupling\endcsname
- \fi}
-
-\def\fastresetmarker#1%
- {\ifcsname\??mk#1\c!coupling\endcsname
- \@EA\resetmark\csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname
- \fi}
-
-\def\fastresetmarkerlist[#1]%
- {\expanded{\rawprocesscommalist[#1]}\fastresetmarker}
-
-\def\doresetmarking[#1]%
- {\processcommalist[#1]\fastresetmarker}
-
-\def\resetmarking
- {\dosingleargument\doresetmarking}
-
-\def\dosetupmarking[#1][#2]%
- {\def\docommand##1{\getparameters[\??mk##1][#2]}%
- \processcommalist[#1]\docommand}
-
-\def\setupmarking
- {\dodoubleargument\dosetupmarking}
-
-% betere protectie
-
-\letvalue{\??mk\??mk\v!previous}\gettopmark
-\letvalue{\??mk\??mk\v!first }\getfirstmark
-\letvalue{\??mk\??mk\v!last }\getbotmark
-\letvalue{\??mk\??mk\v!current }\getcurrentmark
-
-% todo: make it work in balancing
-%
-% \definemarking[vers][]
-% \setupheadertexts
-% [\doiftext{\getmarking[vers][first]}
-% {\doiftextelse{\getmarking[vers][column:last]}
-% {\getmarking[vers][first] -- \getmarking[vers][column:last]}
-% {\getmarking[vers][first]}}]
-% \starttext
-% \startcolumns[n=2,balance=no]
-% \dorecurse{10}{\expanded{\marking[vers]{\recurselevel}} \recurselevel:\dorecurse{4}{\input ward } \endgraf}
-% \stopcolumns
-% \stoptext
-
-\letvalue{\??mk\??mk\v!column:\v!first}\getsplitfirstmark
-\letvalue{\??mk\??mk\v!column:\v!last }\getsplitbottommark
-
-\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={\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]}}
-
-\def\dodefinemarking[#1][#2]%
- {\doifelsenothing{#2}
- {\dododefinemarking[#1][#1]}
- {\dododefinemarking[#1][#2]}}
-
-\def\definemarking
- {\dodoubleempty\dodefinemarking}
-
-\def\definerawmarking[#1]% global ! ! ! !
- {\getgparameters[\??mk#1]
- [\c!expansion=\v!no, % saves a macro
- \c!separator={ --- }, % watch the spaces
- \c!limittext=,
- \c!state=\v!start]%
- \setxvalue{\??mk#1\c!coupling}{#1}%
- \expandafter\newmark\csname\??mk#1\endcsname
- \showmessage\m!systems{13}{#1}}
-
-\let\nomarking\empty
-
-\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]%
- {\dofetchtwomarks[#1][#1]}
-
-\def\fetchallmarks[#1]%
- {\dofetchallmarks[#1][#1]}
-
-\def\dofetchtwomarks[#1][#2]% class class:tag
- {\doifsomething{\fetchmark[#2][\v!first]}
- {\fetchmark[#2][\v!first]%
- \doifsomething{\fetchmark[#2][\v!last]}
- {\doifnot{\fetchmark[#2][\v!first]}{\fetchmark[#2][\v!last]}
- {\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][#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}%
- \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][#3]%
- {}
-
-\unexpanded\def\getmarking
- {\dotripleargument\dogetmarking}
-
-\let\setsomemark\setmark
-
-\def\domarking[#1]#2%
- {\ifcsname\??mk#1\c!coupling\endcsname
- \bgroup
- \doifelsevalue{\??mk#1\c!expansion}\v!yes
- \expandmarkstrue\expandmarksfalse
- \@EA\setsomemark\csname\??mk\csname\??mk#1\c!coupling\endcsname\endcsname{#2}%
- \egroup
- \fi}
-
-\def\marking
- {\dosingleargument\domarking}
-
-%D Used in placing text lines.
-
-\def\doifelsemarking#1%
- {\ifundefined{\??mk#1\c!coupling}%
- \expandafter\secondoftwoarguments
- \else
- \expandafter\firstoftwoarguments
- \fi}
-
-%D And then \unknown\ we had a chaptertitle packaged in a
-%D makeup environment. And we don't want to loose marks there!
-
-\newbox\collectedmarks
-
-\def\flushmarks % use with care to avoid empty pages
- {\ifvoid\collectedmarks\else\unhbox\collectedmarks\fi}
-
-\def\postponemarks
- {\let\setsomemark\postponemark}
-
-\def\postponemark#1#2%
- {%\writestatus{marks}{postponing \string#1 => #2}%
- \global\setbox\collectedmarks\hbox
- {\unhbox\collectedmarks\setmark{#1}{#2}}}
-
-\protect \endinput
-
-% Pseudo marks: (for Hraban)
-%
-% \def\RegisterPageMark#1#2%
-% {\iftrialtypesetting \else
-% \doglobal\increment\NameCounter
-% \textreference[#1:t:\NameCounter]{#2}%
-% \doifreferencefoundelse{#1:t:\NameCounter}
-% {\doifundefined{#1:f:\currentrealreference}%
-% {\setxvalue{#1:f:\currentrealreference}%
-% {\noexpand\in[#1:t:\NameCounter]}}%
-% \setxvalue{#1:l:\currentrealreference}%
-% {\noexpand\in[#1:t:\NameCounter]}}%
-% {}%
-% \fi}
-%
-% \def\GetFirstOnPage#1{\getvalue{#1:f:\realfolio}}
-% \def\GetLastOnPage #1{\getvalue{#1:l:\realfolio}}
-%
-% \setupheadertexts[\GetFirstOnPage{Name}][\GetLastOnPage{Name}]
-%
-% \starttext
-%
-% \def\Name#1{\RegisterPageMark{Name}{#1}#1}
-% \def\TestLine#1{\NC test \NC \Name {test: #1} \NC \NR}
-%
-% \starttabulate
-% \dorecurse{100}{\expanded{\TestLine{\recurselevel}}}
-% \stoptabulate
-%
-% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-mat.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-mat.mkii
deleted file mode 100644
index 34f716f3bdf..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/strc-mat.mkii
+++ /dev/null
@@ -1,2925 +0,0 @@
-%D \module
-%D [ file=strc-mat,
-%D version=2006.03.27, % 1998.12.07
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Math Fundamentals,
-%D author={Hans Hagen, Taco Hoekwater \& Aditya Mahajan},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% engels maken
-
-\writestatus{loading}{ConTeXt Structure Macros / Math Fundamentals}
-
-\unprotect
-
-% \startlines
-% $\mathopnolimits{\rm d}x$
-% $\mathopnolimits{\kern\zeropoint \rm d}x$
-% $\puremathcomm{nolop}{\rm d}x$
-% $\puremathcomm{nolop}{\kern\zeropoint\rm d}x$
-% \blank
-% $\puremathcomm{nolop}{\mr d}x$
-% $\puremathcomm{nolop}{\kern\zeropoint\mr d}x$
-% $\mathop{\kern\zeropoint\mr d}x$
-% $\mathopnolimits{\kern\zeropoint d}x$
-% \stoplines
-
-% \definemessageconstant{math}
-
-% % messages moved
-
-% \def\invalidmathcommand#1{\showmessage\m!math1{#1}}
-
-% \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
-
-\unexpanded\def\mathortext
- {\ifmmode
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-% \defineactivecharacter _ {\mathortext{_}{\_}} text_text $a^2$
-
-% force text mode, will be overloaded later
-
-\ifx\text\undefined \let\text\hbox \fi
-
-\newdimen\lastlinewidth
-
-% does not work at all
-%
-% \def\setlastlinewidth
-% {\resetlastlinewidth
-% \ifmmode\else\ifhmode\else\ifoptimizedisplayspacing
-% \bgroup
-% \forgetdisplayskips
-% $$\global\lastlinewidth\predisplaysize$$
-% \vskip-\baselineskip
-% \egroup
-% \fi\fi\fi}
-
-% test \par \dorecurse{10}{test } \moveformula \startformula test \stopformula test \endgraf
-% test \par \dorecurse{10}{test } \startformula test \stopformula test \endgraf
-% \dorecurse{30}{\bpar \dorecurse\recurselevel{test } \epar \startformula formula \stopformula}
-
-\def\setlastlinewidth
- {\resetlastlinewidth
- \ifoptimizedisplayspacing\ifmmode\else\ifhmode
- \bgroup
- \forgetdisplayskips
- \displaywidowpenalty\widowpenalty % brrr, else widowpenalty does not work
- \everymath \emptytoks
- \everydisplay\emptytoks
- $$\strut\global\lastlinewidth\predisplaysize$$
- \vskip-\lineheight
- \vskip\zeropoint
- \egroup
- \fi\fi\fi}
-
-\def\resetlastlinewidth
- {\global\lastlinewidth\zeropoint\relax}
-
-% not here: \appendtoks \setlastlinewidth \to \everyendofpar
-
-%D moved from main-001
-
-%\def\EveryMathPar{\EveryPar}
-%
-%\newevery \everymath \EveryMath
-
-\abovedisplayskip = \zeropoint
-\abovedisplayshortskip = \zeropoint % evt. 0pt minus 3pt
-\belowdisplayskip = \zeropoint
-\belowdisplayshortskip = \zeropoint % evt. 0pt minus 3pt
-
-\predisplaypenalty = \zerocount
-\postdisplaypenalty = \zerocount % -5000 gaat mis, zie penalty bij \paragraaf
-
-% we don't use the skip's
-
-\def\displayskipsize#1#2% obsolete
- {\ifdim\ctxparskip>\zeropoint
- #1\ctxparskip\!!plus#2\ctxparskip\!!minus#2\ctxparskip\relax
- \else
- #1\lineheight\!!plus#2\lineheight\!!minus#2\lineheight\relax
- \fi}
-
-\def\displayskipfactor {1.0} % obsolete
-\def\displayshortskipfactor {0.8} % obsolete
-\def\displayskipgluefactor {0.3} % obsolete
-\def\displayshortskipgluefactor {0.2} % obsolete
-
-\def\abovedisplayskipsize% obsolete
- {\displayskipsize\displayskipfactor\displayskipgluefactor}
-
-\def\belowdisplayskipsize% obsolete
- {\displayskipsize\displayskipfactor\displayskipgluefactor}
-
-\def\abovedisplayshortskipsize% obsolete
- {\displayskipsize\displayshortskipfactor\displayshortskipgluefactor}
-
-\def\belowdisplayshortskipsize% obsolete
- {\displayskipsize\displayshortskipfactor\displayshortskipgluefactor}
-
-\def\forgetdisplayskips % to do
- {\abovedisplayskip \zeropoint
- \belowdisplayskip \zeropoint
- \abovedisplayshortskip\zeropoint
- \belowdisplayshortskip\zeropoint}
-
-\definenumber % \definelabel
- [\v!formula]
- [\c!text=\v!formula,
- \c!way=\@@fmway,
- \c!blockway=\@@fmblockway,
- \c!location=\v!intext,
- \c!conversion=\@@fmconversion]
-
-\def\setupformulas
- {\dodoubleargument\getparameters[\??fm]}
-
-\newconditional\handleformulanumber
-\newconditional\incrementformulanumber
-
-\def\formuladistance{\formulaparameter\c!distance}
-
-\def\doformulareference#1#2%
- {\doifsomething{#1}{\doifnotinset{#1}{+,-}{\rawreference\s!for{#1}{#2}}}}
-
-\def\dododoformulanumber#1#2#3#4% (#1,#2)=outer(ref,sub) (#3,#4)=inner(ref,sub)
- {\hbox\bgroup
- \ifconditional\handleformulanumber
- \ifconditional\incrementformulanumber
- \incrementnumber[\v!formula]%
- \fi
- \makesectionnumber[\v!formula]%
- \setbox0\hbox{\ignorespaces#2\unskip}%
- \ifdim\wd0>\zeropoint
- \edef\hetsubnummer{\@@fnseparator#2}%AM: was \edef\hetsubnummer{#2}%
- \else
- \let\hetsubnummer\empty
- \fi
- \doformulareference{#1}{\composedsectionnumber\hetsubnummer}%
- \setbox0\hbox{\ignorespaces#4\unskip}%
- \ifdim\wd0>\zeropoint
- \edef\hetsubnummer{\@@fnseparator#4}%AM: was \edef\hetsubnummer{#4}%
- \fi
- \doformulareference{#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
- \preparefullnumber\??fm\composedsectionnumber\preparednumber
- \labeltexts\v!formula
- {\ignorespaces\preparednumber\ignorespaces\hetsubnummer\unskip}%
- \@@fmright
- \dostopattributes}%
- \doif{\formulaparameter\c!location}\v!left{\hskip\formuladistance}%
- \fi
- \egroup}
-
-\def\dodoformulanumber[#1][#2][#3]%
- {\doquadruplegroupempty\dododoformulanumber{#1}{#2}{#3}}
-
-\def\doformulanumber
- {\dotripleempty\dodoformulanumber}
-
-\setvalue{\e!start\v!formula}{\dostartformula{}}
-\setvalue{\e!stop \v!formula}{\dostopformula}
-
-\def\definieerformule
- {\dodoubleempty\dodefinieerformule}
-
-\def\dodefinieerformule[#1][#2]%
- {\doifsomething{#1}
- {\copyparameters
- [\??fm#1][\??fm]
- [\c!spacebefore,\c!spaceafter,\c!grid,
- \c!leftmargin,\c!rightmargin,\c!margin,
- \c!indentnext,\c!alternative,
- \c!strut,\c!align,\c!distance]%
- \setupformulas[#1][#2]%
- \setvalue{\e!start#1\v!formula}{\dostartformula{#1}}%
- \setvalue{\e!stop #1\v!formula}{\dostopformula}}}
-
-\newtoks \everysetupformulas \relax % we need a hook for extensions in modules
-
-\def\setupformulas
- {\dodoubleempty\dosetupformulas}
-
-\def\dosetupformulas[#1][#2]%
- {\ifsecondargument
- \getparameters[\??fm#1][#2]%
- \else
- \getparameters[\??fm][#1]%
- \fi
- \the\everysetupformulas}
-
-\def\formulaparameter#1%
- {\csname\??fm\currentformula#1\endcsname}
-
-\setupformulas
- [\c!way=\@@nrway,
- \c!blockway=,
- \c!sectionnumber=\@@nrsectionnumber,
- \c!conversion=\v!numbers,
- \c!location=\v!right,
- \c!left=(,
- \c!right=),
- \c!spacebefore=,
- \c!spaceafter=\@@fmspacebefore,
- \c!leftmargin=\!!zeropoint,
- \c!rightmargin=\!!zeropoint,
- \c!margin=,
- \c!indentnext=\v!no,
- \c!alternative=\s!default,
- \c!align=,
- \c!strut=\v!no,
- \c!separator=\@@koseparator,
- \c!distance=1em]
-
-\def\currentformula {}
-\def\predisplaysizethreshhold{2em} % was 3em
-
-\def\leftdisplayskip {\leftskip}
-\def\rightdisplayskip {\rightskip}
-\def\leftdisplaymargin {\formulaparameter\c!leftmargin}
-\def\rightdisplaymargin {\formulaparameter\c!rightmargin}
-\def\displaygridsnapping{\formulaparameter\c!grid}
-
-\def\beforedisplayspace
- {\doifnot{\formulaparameter\c!spacebefore}\v!none{\blank[\formulaparameter\c!spacebefore]}}
-
-\def\afterdisplayspace
- {\doifnot{\formulaparameter\c!spaceafter }\v!none{\blank[\formulaparameter\c!spaceafter ]}}
-
-\def\setpredisplaysize#1%
- {\predisplaysize#1\relax
- \ifdim\predisplaysize<\maxdimen
- \ifdim\predisplaysize>\zeropoint
- \advance\predisplaysize \predisplaysizethreshhold
- \fi
- \advance\predisplaysize \displayindent % needed ?
- \ifdim\predisplaysize>\hsize
- \predisplaysize\hsize
- \fi
- \else
- \predisplaysize\zeropoint
- \fi}
-
-\def\setdisplaydimensions
- {\displayindent\leftdisplayskip
- \advance\displayindent\leftdisplaymargin
- \displaywidth\hsize
-% \setlocalhsize
-% \displaywidth\localhsize
- \ifdim\hangindent>\zeropoint
- \advance\displayindent\hangindent
- \else
- \advance\displaywidth\hangindent
- \fi
- \advance\displaywidth-\displayindent
- \advance\displaywidth-\rightdisplayskip
- \advance\displaywidth-\rightdisplaymargin
- \hsize\displaywidth} % new, else overfull in itemize
-
-\newif\ifoptimizedisplayspacing
-
-\def\dostartformula#1%
- {\dodoubleempty\dodostartformula[#1]}
-
-\newskip\formulaparskip
-\newskip\formulastrutht
-\newskip\formulastrutdp
-
-% hm, invoke otr in hmode in order to move skips to mvl, could be an option
-
-%D \startbuffer
-%D \startformula[9pt] x = 1 \stopformula
-%D \startformula[7pt] x = 1 \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-\def\dodostartformula[#1][#2]% setting leftskip adaption is slow !
- {% todo: test first
- %
- % \ifdim\lastskip>\zeropoint
- % \resetlastlinewidth % else problems with in between stuff without \epar
- % \fi
- \bgroup % HERE
- \the\everybeforedisplayformula
- \formulaparskip\parskip
- \formulastrutdp\strutdepth
- \formulastrutht\strutheight
- \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
- \long\def\dostartformula##1{\bgroup\let\dostopformula\egroup}%
- \freezedimenmacro\leftdisplayskip
- \freezedimenmacro\rightdisplayskip
- \freezedimenmacro\leftdisplaymargin
- \freezedimenmacro\rightdisplaymargin
- \freezedimenmacro\predisplaysizethreshhold
- \forgetdisplayskips
- \ifoptimizedisplayspacing
- \ifdim\lastlinewidth>\zeropoint
- \abovedisplayshortskip-\strutht\relax
- \fi
- \else
- \resetlastlinewidth
- \fi
- \getvalue{\e!start\formulaparameter\c!alternative\v!formula}}
-
-\def\switchtoformulabodyfont{\switchtobodyfont}
-
-\setvalue{\v!formula}{\dosingleempty\doformula}
-
-\def\doformula[#1]#2%
- {\begingroup
- \switchtoformulabodyfont[#1]%
- % not : \def\doformula[##1]##2{\mathematics{##2}}%
- \mathematics{#2}%
- \endgroup}
-
-\let\doplaceformulanumber\empty
-
-\def\dostopformula
- {\doplaceformulanumber
- \getvalue{\e!stop\formulaparameter\c!alternative\v!formula}%
- \resetlastlinewidth
- \nonoindentation
- \dochecknextindentation{\??fm\currentformula}%
- \egroup
- \hangafter\minusone % added for side floats
- \hangindent\zeropoint % added for side floats
- \setfalse\handleformulanumber
- \dorechecknextindentation} % here ?
-
-\newif\ifinformula
-
-\def\startdisplaymath
- {\ifgridsnapping
- \beforedisplayspace
- \snapmathtogrid\vbox
- \bgroup
- \informulatrue
- %\forgetall % breaks side floats
- \else
- \bgroup
- \parskip\formulaparskip % ! !
- \informulatrue
- %\forgetall % otherwise backgrounds fail
- \ifdim\lastskip<\zeropoint\else
- \par
- \ifvmode \ifdim\parskip>\zeropoint\relax
- \whitespace \vskip-\parskip % kind of forces and cancels again
- \fi \fi
- \fi
- \doif\displaygridcorrection{-\v!top}{\kern-\strutht}% new, currently only option/default
- \beforedisplayspace
- \par
- \ifvmode
- \ifindentfirstparagraph % tricky, probably needs more testing
- \prevdepth-\maxdimen % texbook pagina 79-80
- % otherwise problems at the top of a page, don't remove:
- \verticalstrut
- \vskip-\struttotal
- \vskip-\baselineskip
- \fi
- \fi
- \fi
- $$\setdisplaydimensions
- \setpredisplaysize\lastlinewidth
- \startinnermath}
-
-\def\stopdisplaymath
- {\stopinnermath
- $$%
- \ifgridsnapping
- \egroup
- \afterdisplayspace
- \else
- \par\ifvmode\ifdim\parskip>\zeropoint\whitespace\vskip-\parskip\fi\fi
- \afterdisplayspace
- \egroup
- \fi
- \globallet\displaylinecorrection\empty
- \gdef\displaygridcorrection{\displaygridsnapping}}
-
-\newif\ifclipdisplaymath \clipdisplaymathtrue
-\def\displaymathclipfactor{1.1}
-
-\def\snapmathtogrid % to do \dp
- {\dowithnextbox
- {\bgroup
- \donefalse
- \ifclipdisplaymath
- \ifdim\nextboxht<\displaymathclipfactor\lineheight
- \donetrue
- \fi
- \fi
- \ifdone
- \nextboxht\lineheight
- \else
- \getnoflines\nextboxht
- \setbox\nextbox\vbox to \noflines\lineheight
- {\vfill\flushnextbox\vfill}%
- \setbox\nextbox\hbox{\lower\strutdepth\flushnextbox}%
- \fi
- \snaptogrid[\displaygridcorrection]\hbox{\flushnextbox}%
- \egroup}}
-
-\def\displaygridcorrection{\displaygridsnapping}
-\let\displaygridcorrection\empty
-
-\def\moveformula
- {\dosingleempty\domoveformula}
-
-\def\domoveformula[#1]% brr gaat mogelijk fout
- {\iffirstargument
- \xdef\displaygridcorrection{#1}%
- \else
- \gdef\displaygridcorrection{-\v!top}% handy with short preline
- \fi
- \globallet\displaylinecorrection\displaygridcorrection}
-
-\let\startinnermath\empty
-\let\stopinnermath \empty
-
-\def\defineformulaalternative
- {\dotripleargument\dodefineformulaalternative}
-
-\def\dodefineformulaalternative[#1][#2][#3]%
- {\setvalue{\e!start#1\v!formula}{#2}%
- \setvalue{\e!stop #1\v!formula}{#3}}
-
-\defineformulaalternative[\s!default][\startdisplaymath][\stopdisplaymath]
-
-% sp = single line paragraph sd = single line display
-% mp = multi line paragraph md = multy line display
-
-\defineformulaalternative[single][\startdisplaymath][\stopdisplaymath]
-\defineformulaalternative[multi] [\startdisplaymath][\stopdisplaymath]
-
-\definieerformule
- [sp]
- [\c!spacebefore=\v!none,\c!spaceafter=\v!none,
- \c!indentnext=\v!no,
- \c!alternative=single]
-
-\definieerformule
- [sd]
- [\c!spacebefore=\v!none,\c!spaceafter=\v!none,
- \c!indentnext=\v!yes,
- \c!alternative=single]
-
-\definieerformule
- [mp]
- [\c!indentnext=\v!no,
- \c!alternative=multi]
-
-\definieerformule
- [md]
- [\c!indentnext=\v!yes,
- \c!alternative=multi]
-
-% \defineformulaalternative[multi][\begindmath][\enddmath]
-%
-% \fakewords{20}{40}\epar
-% \placeformula {a} $$ \fakespacingformula $$
-% \fakewords{20}{40}\epar
-% \placeformula {b} \startformule \fakespacingformula \stopformule
-% \placeformula {b} \startformule \fakespacingformula \stopformule
-% \fakewords{20}{40}\epar
-% \placeformula {c} \startmdformule \fakespacingformula \stopmdformule
-% \placeformula {c} \startmdformule \fakespacingformula \stopmdformule
-% \fakewords{20}{40}\epar
-% \placeformula {d} \startmpformule \fakespacingformula \stopmpformule
-% \placeformula {d} \startmpformule \fakespacingformula \stopmpformule
-% \fakewords{20}{40}\epar
-% \placeformula {e} \startsdformule \fakespacingformula \stopsdformule
-% \placeformula {e} \startsdformule \fakespacingformula \stopsdformule
-% \fakewords{20}{40}\epar
-% \placeformula {f} \startspformule \fakespacingformula \stopspformule
-% \placeformula {f} \startspformule \fakespacingformula \stopspformule
-% \fakewords{20}{40}
-
-\def\placeformula
- {\settrue\incrementformulanumber
- \dodoubleempty\doplaceformula}
-
-\def\placesubformula
- {\setfalse\incrementformulanumber
- \dodoubleempty\doplaceformula}
-
-%D \macros
-%D {setupsubformulas, startsubformulas}
-%D
-%D New code (by Aditya Mahajan / cleaned up by HH, please check):
-
-% \setupsubformulas[conversion=romannumerals]
-%
-% \placeformula
-% \startsubformulas[Maxwell]
-% \startformulas
-% \startformula \startalign
-% \NC \nabla\cdot\bf E \NC = \frac{\rho}{\varepsilon_0} \NR[Maxwell 1]
-% \NC \nabla\times\bf E \NC = - \frac{\partial\bf B}{\partial t} \NR[Maxwell II]
-% \stopalign \stopformula
-% \startformula \startalign
-% \NC \nabla\cdot \bf B \NC = 0 \NR[Maxwell III]
-% \NC \nabla\times\bf B \NC = \mu_0{\bf j}+\varepsilon_0\mu_0\frac{\partial\bf E}{\partial t} \NR[Maxwell IV]
-% \stopalign \stopformula
-% \stopformulas
-% \stopsubformulas
-%
-% Maxwell : \in [Maxwell] and II : \in [Maxwell II]
-
-\def\setupsubformulas
- {\dodoubleargument\getparameters[\??fn]}
-
-\definenumber[\v!formula*]
-
-\def\subformulaconversion % #1
- {\getnumber[\v!formula*]\@@fnseparator\convertnumber\@@fnconversion} % #1
-
-\defineconversion[\v!subformula][\subformulaconversion]
-
-\def\startsubformulas
- {\dosingleempty\dostartsubformulas}
-
-\def\dostartsubformulas[#1]%
- {\incrementnumber[\v!formula]%
- \makesectionnumber[\v!formula]%
- \doflushformulalistentry{\composedsectionnumber}%
- \doformulareference{#1}\composedsectionnumber
- \expanded{\setupnumber
- [\v!formula*]
- [\c!start={\rawnumber[\v!formula]},
- \c!way=\@@fmway,
- \c!conversion=\@@fmconversion]}%
- \bgroup
- \savenumber[\v!formula]%
- \setupformulas
- [\c!conversion=\v!subformula,
- \c!way=\v!by\v!text]%
- \resetnumber
- [\v!formula]}
-
-\def\stopsubformulas
- {\restorenumber[\v!formula]%
- \egroup
- \resetlastlinewidth
- \nonoindentation
- \dochecknextindentation\??fn
- \dorechecknextindentation} % here ?
-
-%D Named subformulas
-
-\def\startnamedsubformulas
- {\dosingleempty\dostartnamedsubformulas}
-
-\def\dostartnamedsubformulas[#1]#2%
- {\setformulalistentry{#2}%
- \startsubformulas[#1]}
-
-\def\stopnamedsubformulas
- {\stopsubformulas}
-
-\setupsubformulas
- [\c!conversion=\v!character,
- %\c!separator=\@@fmseparator,
- \c!separator=,% AM: for compatibility with \placesubformula
- \c!indentnext=\@@fmindentnext]
-
-%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
- \ifx\next\bgroup
- \egroup \@EA\moreplaceformula % [ref]{}
- \else
- \let\nextnext$% no def
- \ifx\next\nextnext
- \egroup \@EAEAEA\dispplaceformula % [ref]$$
- \else
- \egroup \@EAEAEA\dodoplaceformula % [ref]\start
- \fi
- \fi[#1]{}}%
- \futurelet\next\redoplaceformula}
-
-\long\def\moreplaceformula[#1]#2#3#4% #2 dummy #4 gobbles spaces
- {\def\redoplaceformula
- {\bgroup
- \let\nextnext$% no def
- \ifx\next\nextnext
- \egroup \@EA\dispplaceformula % [ref]$$
- \else
- \egroup \@EA\dodoplaceformula % [ref]\start
- \fi
- [#1]{#3}}%
- \futurelet\next\redoplaceformula#4}
-
-\let\startplaceformula\placeformula
-\let\stopplaceformula \relax
-
-\def\startformulas#1\stopformulas % new / to be internationalized
- {\bgroup
- \forgetdisplayskips
- \startdisplaymath
- \setlocalhsize
- \long\def\startformula##1\stopformula
- {\advance\scratchcounter\plusone}%
- \scratchcounter\zerocount
- #1% preroll
- \ifcase\scratchcounter\else
- \divide \hsize \scratchcounter
- \fi
- \hbox to \localhsize \bgroup
- \hss
- \def\normalstartformula{\vskip-\strutdepth$$}% i hate this
- \def\normalstopformula {$$}%
- \def\startformula {$\vcenter\bgroup\normalstartformula}%
- \def\stopformula {\normalstopformula\egroup$\hss}%
- #1%
- \egroup
- \stopdisplaymath
- \egroup
- \hangafter\minusone % added for side floats
- \hangindent\zeropoint} % added for side floats
-
-\def\dispplaceformula[#1]#2$$#3$$%
- {\dodoplaceformula[#1]{#2}\dostartformula{}#3\dostopformula}
-
-\let\donestedformulanumber\gobbletwoarguments
-
-\def\dodoplaceformula[#1]#2% messy, needs a clean up
- {\doifelse{#1}{-}
- {\setfalse\handleformulanumber}
- {\doifelse{#2}{-}
- {\setfalse\handleformulanumber}
- {\settrue\handleformulanumber}}%
- \ifconditional\handleformulanumber
- \def\formulanumber
- {%\global\let\subformulanumber\doformulanumber % no, bug
- \doformulanumber[#1][#2]}%
- \def\donestedformulanumber##1##2%
- {\doifsomething{##1}
- {\doifelse{##1}{+}{\doformulanumber[#1]}{\doformulanumber[##1]}[##2][]{}}}%
- \def\subformulanumber
- {\setfalse\incrementformulanumber
- \formulanumber}%
- \gdef\doplaceformulanumber
- {\global\let\doplaceformulanumber\empty
- \doifelse\@@fmlocation\v!left
- {\normalleqno{\doformulanumber[#1][#2][]{}}}
- {\normalreqno{\doformulanumber[#1][#2][]{}}}}%
- \else
- \def\formulanumber{\doformulanumber[#1][#2]}%
- \let\donestedformulanumber\gobbletwoarguments
- \let\subformulanumber\doformulanumber % was \global
- \global\let\doplaceformulanumber\empty
- \fi}
-
-%D We need a hook into the plain math alignment macros
-%D
-%D \starttyping
-%D \displaylines
-%D \eqalignno
-%D \eqalignno
-%D \stoptyping
-%D
-%D Otherwise we get a missing \type {$$} error reported.
-
-\def\resetdisplaymatheq
- {\let\normalleqno\relax \let\leqno\relax
- \let\normalreqno\relax \let\eqno \relax
- \let\doplaceformulanumber\empty}
-
-%D The next code is derived from plain \TEX.
-
-\newcount\interdisplaylinepenalty \interdisplaylinepenalty=100
-
-\newif\ifdt@p
-
-\def\displ@y
- {\global\dt@ptrue
- \openup\displayopenupvalue % was \openup\jot
- \everycr
- {\noalign
- {\ifdt@p
- \global\dt@pfalse
- \ifdim\prevdepth>-\thousandpoint
- \vskip-\lineskiplimit
- \vskip\normallineskiplimit
- \fi
- \else
- \penalty\interdisplaylinepenalty
- \fi}}}
-
-\let\normaldispl@y\displ@y
-
-\def\displ@y{\resetdisplaymatheq\normaldispl@y}
-
-\def\m@th{\mathsurround\zeropoint} % obsolete
-
-%D Here we implement a basic math alignment mechanism. Numbers
-%D are also handled. The macros \type {\startinnermath} and
-%D \type {\stopinnermath} can be overloaded in specialized
-%D modules.
-
-\def\startinnermath
- {\getvalue{\e!start\??fm\formulaparameter\c!align}}
-
-\def\stopinnermath
- {\getvalue{\e!stop \??fm\formulaparameter\c!align}}
-
-\def\mathinnerstrut
- {\doif{\formulaparameter\c!strut}\v!yes\strut}
-
-\long\def\defineinnermathhandler#1#2#3%
- {\setvalue{\e!start\??fm#1}{#2}%
- \setvalue{\e!stop \??fm#1}{#3}}
-
-\newif\iftracemath
-
-\def\mathhbox
- {\iftracemath\ruledhbox\else\hbox\fi}
-
-\chardef\mathraggedstatus=0 % normal left center right
-\chardef\mathnumberstatus=0 % nothing normal shift_right
-\let\mathnumbercorrection\!!zeropoint
-
-\def\startmathbox#1%
- {\hsize\displaywidth
- \global\chardef\mathnumberstatus\plusone
- \chardef\mathraggedstatus#1\relax
- \let\mathnumbercorrection\!!zeropoint
- \global\let\@eqno \empty \def\eqno {\gdef\@eqno }%
- \global\let\@leqno\empty \def\leqno{\gdef\@leqno}%
- % added
- \let\normalreqno\eqno
- \let\normalleqno\leqno
- % added
- \doplaceformulanumber
- \setbox\scratchbox\mathhbox to \displaywidth\bgroup
- \mathinnerstrut
- $%
- \displaystyle
- \ifcase\mathraggedstatus\or\hfill\or\hfill\fi}
-
-\def\llappedmathno
- {\ifcase\mathraggedstatus\or
- \@eqno
- \or
- \llap{\@eqno}%
- \or
- \llap{\@eqno}%
- \fi}
-
-\def\rlappedmathno
- {\ifcase\mathraggedstatus\or
- \rlap{\@leqno}%
- \or
- \rlap{\@leqno}%
- \or
- \@leqno
- \fi}
-
-\def\stopmathbox
- {$%
- \ifcase\mathraggedstatus\or\or\hfill\or\hfill\fi
- \egroup
- \setbox0\hbox{\unhcopy\scratchbox}%
- \scratchdimen\wd0
- \ifdim\scratchdimen>\displaywidth
- \donetrue
- \else
- \donefalse
- \fi
- \hbox to \displaywidth\bgroup
- \ifcase\mathnumberstatus
- \box\scratchbox
- \or
- \ifx\@leqno\empty
- \ifx\@eqno\empty
- \box\scratchbox
- \else
- \ifdone
- \vbox{\box\scratchbox\hbox to \displaywidth{\hss\llappedmathno}}%
- \else
- \hss\box\scratchbox\llappedmathno % hss makes room for number
- \fi
- \fi
- \else
- \ifdone
- \vbox{\hbox to \displaywidth{\rlappedmathno\hss}\box\scratchbox}%
- \else
- \rlappedmathno\box\scratchbox\hss % hss makes room for number
- \fi
- \fi
- \or
- \hskip\mathnumbercorrection
- \box\scratchbox
- \hss
- \else
- \box\scratchbox
- \fi
- \egroup}
-
-\defineinnermathhandler\v!left {\startmathbox\plusone }{\stopmathbox}
-\defineinnermathhandler\v!middle {\startmathbox\plustwo }{\stopmathbox}
-\defineinnermathhandler\v!right {\startmathbox\plusthree}{\stopmathbox}
-\defineinnermathhandler\v!flushleft {\startmathbox\plusthree}{\stopmathbox}
-\defineinnermathhandler\v!center {\startmathbox\plustwo }{\stopmathbox}
-\defineinnermathhandler\v!flushright{\startmathbox\plusone }{\stopmathbox}
-
-%D [The examples below are in english and don't process in the
-%D documentation style, which will be english some day.]
-%D
-%D Normally a formula is centered, but in case you want to
-%D align it left or right, you can set up formulas to behave
-%D that way. Normally a formula will adapt is left indentation
-%D to the environment:
-%D
-%D \startbuffer
-%D \fakewords{20}{40}\epar
-%D \startitemize
-%D \item \fakewords{20}{40}\epar
-%D \placeformula \startformula \fakeformula \stopformula
-%D \item \fakewords{20}{40}\epar
-%D \stopitemize
-%D \fakewords{20}{40}\epar
-%D \stopbuffer
-%D
-%D % \getbuffer
-%D
-%D In the next examples we explicitly align formulas to the
-%D left (\type {\raggedleft}), center and right (\type
-%D {\raggedright}):
-%D
-%D \startbuffer
-%D \setupformulas[align=left]
-%D \startformula\fakeformula\stopformula
-%D \setupformulas[align=middle]
-%D \startformula\fakeformula\stopformula
-%D \setupformulas[align=right]
-%D \startformula\fakeformula\stopformula
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Or in print:
-%D
-%D % {\getbuffer}
-%D
-%D With formula numbers these formulas look as follows:
-%D
-%D \startbuffer
-%D \setupformulas[align=left]
-%D \placeformula \startformula\fakeformula\stopformula
-%D \setupformulas[align=middle]
-%D \placeformula \startformula\fakeformula\stopformula
-%D \setupformulas[align=right]
-%D \placeformula \startformula\fakeformula\stopformula
-%D \stopbuffer
-%D
-%D % {\getbuffer}
-%D
-%D This was keyed in as:
-%D
-%D \typebuffer
-%D
-%D When tracing is turned on (\type {\tracemathtrue}) you can
-%D visualize the bounding box of the formula,
-%D
-%D % {\tracemathtrue\getbuffer}
-%D
-%D As you can see, the dimensions are the natural ones, but if
-%D needed you can force a normalized line:
-%D
-%D \startbuffer
-%D \setupformulas[strut=yes]
-%D \placeformula \startformula \fakeformula \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D This time we get a more spacy result.
-%D
-%D % {\tracemathtrue\getbuffer}
-%D
-%D We will now show a couple of more settings and combinations
-%D of settings. In centered formulas, the number takes no space
-%D
-%D \startbuffer
-%D \setupformulas[align=middle]
-%D \startformula \fakeformula \stopformula
-%D \placeformula \startformula \fakeformula \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer % {\tracemathtrue\getbuffer}
-%D
-%D You can influence the placement of the whole box with the
-%D parameters \type {leftmargin} and \type {rightmargin}.
-%D
-%D \startbuffer
-%D \setupformulas[align=right,leftmargin=3em]
-%D \startformula \fakeformula \stopformula
-%D \placeformula \startformula \fakeformula \stopformula
-%D
-%D \setupformulas[align=left,rightmargin=1em]
-%D \startformula \fakeformula \stopformula
-%D \placeformula \startformula \fakeformula \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer % {\tracemathtrue\getbuffer}
-%D
-%D You can also inherit the margin from the environment.
-%D
-%D \startbuffer
-%D \setupformulas[align=right,margin=standard]
-%D \startformula \fakeformula \stopformula
-%D \placeformula \startformula \fakeformula \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer % {\tracemathtrue\getbuffer}
-%D
-%D The distance between the formula and the number is only
-%D applied when the formula is left or right aligned.
-%D
-%D \startbuffer
-%D \setupformulas[align=left,distance=2em]
-%D \startformula \fakeformula \stopformula
-%D \placeformula \startformula \fakeformula \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer % {\tracemathtrue\getbuffer}
-
-%D \macros
-%D {big..}
-%D
-%D Because they are related to the bodyfontsize, we redefine
-%D some \PLAIN\ macros.
-
-\def\@@dobig#1#2%
- {{\hbox{$\left#2\vbox\!!to#1\bodyfontsize{}\right.\nulldelimiterspace\zeropoint\relax\mathsurround\zeropoint$}}}
-
-\def\big {\@@dobig{0.85}}
-\def\Big {\@@dobig{1.15}}
-\def\bigg{\@@dobig{1.45}}
-\def\Bigg{\@@dobig{1.75}}
-
-%D \macros
-%D {bordermatrix}
-%D
-%D We already redefined \type {\bordermatrix} in \type
-%D {font-ini}.
-
-%D \macros
-%D {setuptextformulas}
-%D
-%D This command sets up in||line math. Most features deals
-%D with grid snapping and are experimental.
-
-\newevery \everysetuptextformulas \relax
-
-\def\setuptextformulas
- {\dosingleempty\dosetuptextformulas}
-
-\def\dosetuptextformulas[#1]%
- {\getparameters[\??mt][#1]%
- \the\everysetuptextformulas}
-
-%D \macros
-%D {super, sub}
-%D
-%D \TEX\ uses \type{^} and \type{_} for entering super- and
-%D subscript mode. We want however a bit more control than
-%D normally provided, and therefore provide \type {\super}
-%D and \type{sub}.
-
-\global\let\normalsuper=^
-\global\let\normalsuber=_
-
-\newcount\supersubmode
-
-\newevery\everysupersub \EverySuperSub
-
-\appendtoks \advance\supersubmode \plusone \to \everysupersub
-
-\appendtoks
- \gridsupsubstyle
-\to \everysupersub
-
-\appendtoks
- \doifelse\@@mtsize\v!small
- {\let\gridsupsubstyle \scriptscriptstyle
- \let\gridsupsubbodyfont \setsmallbodyfont}%
- {\let\gridsupsubstyle \scriptstyle
- \let\gridsupsubbodyfont \relax}%
-\to \everysetuptextformulas
-
-\setuptextformulas
- [\c!size=\v!normal]
-
-\def\dogridsupsub#1#2%
- {\begingroup
- \setbox\nextbox\iftracegridsnapping\ruledhbox\else\hbox\fi
- {\gridsupsubbodyfont
- $\strut^{\the\everysupersub#1}_{\the\everysupersub#2}$}%
- \nextboxht\strutheight
- \nextboxdp\strutdepth
- \flushnextbox
- \endgroup}
-
-\def\gridsupsub
- {\ifconditional\crazymathsnapping
- \ifgridsnapping
- \@EAEAEA\dogridsupsub
- \else
- \@EAEAEA\normalsupsub
- \fi
- \else
- \@EA\normalsupsub
- \fi}
-
-\def\normalsupsub#1#2%
- {^{\the\everysupersub#1}_{\the\everysupersub#2}}
-
-\appendtoks
- \let\gridsupsubstyle \relax
- \let\gridsupsubbodyfont\relax
- \let\gridsupsub \normalsupsub
-\to \everydisplay
-
-\def\super#1{^{\the\everysupersub#1}}
-\def\suber#1{_{\the\everysupersub#1}}
-\def\supsub#1#2{\super{#1}\suber{#2}}
-\def\subsup#1#2{\suber{#1}\super{#2}}
-
-%\def\super#1{\gridsupsub{#1}{}} %
-%\def\suber#1{\gridsupsub{}{#1}} %
-%
-%\def\supsub#1#2{\gridsupsub{#1}{#2}}
-%\def\subsup#1#2{\gridsupsub{#2}{#1}}
-
-\def\gridsuper#1{\gridsupsub{#1}{}}
-\def\gridsuber#1{\gridsupsub{}{#1}}
-
-% \let\sup\super % math char
-% \let\sub\suber
-
-% test set:
-%
-% \startbuffer
-% \sform{x\frac{1}{2}}
-% \sform{x\sup{\frac{1}{2}} + x\sup{2} + 2}
-% \sform{x\supsub{\frac{1}{2}}{\frac{1}{2}} + x\sup{2} + 2}
-% \stopbuffer
-%
-% \typebuffer
-%
-% \startlines
-% \getbuffer
-% \stoplines
-%
-% \startbuffer
-% $x\frac{1}{2}$
-% $x\sup{\frac{1}{2}} + x^2 + 2$
-% $x\supsub{\frac{1}{2}}{\frac{1}{2}} + x^2 + 2$
-% \stopbuffer
-%
-% \typebuffer
-%
-% \start
-% \enablesupersub
-% \enableautomath
-% \startlines
-% \getbuffer
-% \stoplines
-% \stop
-
-%D \macros
-%D {enablesupersub,enablesimplesupersub}
-%D
-%D We can let \type {^} and \type {_} act like \type {\super}
-%D and \type {\sub} by saying \type {\enablesupersub}.
-
-\bgroup
-\catcode`\^=\@@active
-\catcode`\_=\@@active
-\gdef\enablesupersub
- {\catcode`\^=\@@active
- \def^{\ifmmode\expandafter\super\else\expandafter\normalsuper\fi}%
- \catcode`\_=\@@active
- \def_{\ifmmode\expandafter\suber\else\expandafter\normalsuber\fi}}
-\egroup
-
-%D \macros
-%D {enableautomath}
-%D
-%D The next one can be dangerous, but handy in controlled
-%D situations.
-
-\bgroup \catcode`\$=\active
-
-\gdef\enableautomath
- {\catcode`\$=\active
- \def$##1${\snappedinlineformula{##1}}}
-
-% \gdef\enableautomath
-% {\catcode`\$=\active
-% \def${\doifnextcharelse$\doautodmath\doautoimath}%
-% \def\doautoimath##1${\snappedinlineformula{##1}}%
-% \def\doautodmath$##1$${\startformula##1\stopformula}}
-
-\egroup
-
-%D \macros
-%D {...}
-%D
-%D New and experimental: snapping big inline math!
-
-\newconditional\halfcrazymathlines % \settrue\halfcrazymathlines
-\newconditional\crazymathsnapping % \settrue\crazymathsnapping
-
-\appendtoks
- \doifelse\@@mtgrid\v!yes \settrue\setfalse\crazymathsnapping
- \doifelse\@@mtstep\v!halfline\settrue\setfalse\halfcrazymathlines
-\to \everysetuptextformulas
-
-\setuptextformulas
- [\c!grid=\v!yes,
- \c!step=\v!line]
-
-\newcount\crazymathhack
-
-\let\lastcrazymathline \!!zeropoint
-\let\lastcrazymathpage \!!zerocount
-\let\lastcrazymathprelines \!!zerocount
-\let\lastcrazymathpostlines\!!zerocount
-
-\def\crazymathtag{amh:\the\crazymathhack}
-\def\crazytexttag{\v!text:\lastcrazymathpage}
-
-\def\crazymathindent{\hskip\MPx\crazymathtag\hskip-\MPx\crazytexttag}
-
-\def\flushcrazymathbox
- {\nextboxht\strutheight
- \nextboxdp\strutdepth
- \hbox{\iftracegridsnapping\ruledhbox\fi{\flushnextbox}}}
-
-% possible pdftex bug:
-%
-% \dorecurse{100}{gest \vadjust {\strut} \par} \page
-% \dorecurse{100}{gest \vadjust pre {\strut} \par} \page
-%
-% duplicate depth compensation with pre
-
-\def\snappedinlineformula
- {\dosingleempty\dosnappedinlineformula}
-
-%D \starttabulate[|Tl|l|]
-%D \NC - \NC half lines \NC \NR
-%D \NC + \NC full lines \NC \NR
-%D \NC = \NC force \NC \NR
-%D \NC < \NC force, minus pre \NC \NR
-%D \NC > \NC force, minus post \NC \NR
-%D \stoptabulate
-
-\newif\if!!donee
-\newif\if!!donef
-
-\def\inlinemathmargin{1pt}
-
-\settrue\autocrazymathsnapping
-
-% FROM NOW ON, CHANGES AS OPTIONS
-
-% TODO: SKYLINE (PREV LINE POS SCAN)
-
-\def\dosnappedinlineformula[#1]#2%
- {\ifvmode\dontleavehmode\fi % tricky
- \strut % prevents funny space at line break
- \begingroup % interesting: \bgroup can make \vadjust disappear
- \ifconditional\crazymathsnapping
- \ifgridsnapping
- \ifx\pdftexversion\undefined
- \donefalse
- \else
- \checktextbackgrounds % we need pos tracking, to be made less redundant
- \donetrue
- \fi
- \else
- \donefalse
- \fi
- \else
- \donefalse
- \fi
- \!!doneafalse % forced or not auto
- \!!donebfalse % too heigh
- \!!donecfalse % too low
- \!!donedfalse % less before
- \!!doneefalse % less after
- \ifdone
- \setbox\nextbox\hbox{$#2$}%
- \iftracegridsnapping
- \setbox\nextbox\ruledhbox
- {\incolortrue\localcolortrue
- \backgroundline[gray]{\showstruts\strut\flushnextbox}}%
- \fi
- \def\docommand##1%
- {\doif{##1}-{\settrue \halfcrazymathlines}%
- \doif{##1}+{\setfalse\halfcrazymathlines}%
- \doif{##1}={\!!doneatrue}%
- \doif{##1}<{\!!donedtrue}%
- \doif{##1}>{\!!doneetrue}}%
- \processcommalist[#1]\docommand
-\if!!doneb
- \if!!donec \else
- \setfalse\halfcrazymathlines
- \fi
-\else
- \if!!donec
- \setfalse\halfcrazymathlines
- \fi
-\fi
- \donefalse
- \if!!donea
- \donetrue
-\scratchdimen \nextboxht
-\advance\scratchdimen .5\lineheight
-\nextboxht\scratchdimen
-\scratchdimen \nextboxdp
-\advance\scratchdimen .5\lineheight
-\nextboxdp\scratchdimen
- \else\ifdim\nextboxht>\strutht
- \donetrue
- \else\ifdim\nextboxdp>\strutdp
- \donetrue
- \fi\fi\fi
- \ifconditional\autocrazymathsnapping \else \if!!donea \else
- % don't compensate, just snap to strut
- \donefalse
- % signal for next else, snap line to strut
- \!!doneatrue
- \fi \fi
- \fi
- \ifdone
- % analyze height
- \scratchdimen\inlinemathmargin
- \advance\scratchdimen \strutht
- \ifdim\nextboxht<\scratchdimen \else \!!donebtrue \fi
- % analyze depth
- \scratchdimen\inlinemathmargin
- \advance\scratchdimen \strutdp
- \ifdim\nextboxdp<\scratchdimen \else \!!donectrue \fi
- % analyzed or forced
- \ifdone
- \global\advance\crazymathhack\plusone
- \donefalse
- \ifnum\MPp\crazymathtag=\lastcrazymathpage\relax
- \ifdim\MPy\crazymathtag=\lastcrazymathline\relax
- \donetrue
- \fi
- \fi
- \ifnum\MPp\crazymathtag=\zerocount \donefalse \fi
- \ifdim\MPy\crazymathtag=\zeropoint \donefalse \fi
- \ifdone
- % same page and same line
- \else
- \global\let\lastcrazymathprelines \!!zerocount
- \global\let\lastcrazymathpostlines\!!zerocount
- \xdef\lastcrazymathpage{\MPp\crazymathtag}%
- \xdef\lastcrazymathline{\MPy\crazymathtag}%
- \fi
- \if!!doneb
- % \getrawnoflines\nextboxht
- \scratchdimen\nextboxht
- \advance\scratchdimen-\strutht
- \getnoflines\scratchdimen
- \if!!doned \advance\noflines\minusone \fi
- \scratchcounter\noflines
- \advance\noflines-\lastcrazymathprelines\relax
- \ifnum\noflines>\zerocount
- \xdef\lastcrazymathprelines{\the\scratchcounter}%
- \scratchdimen\noflines\lineheight
- \ifconditional\halfcrazymathlines
- \advance\scratchdimen-.5\lineheight
- \fi
- \advance\scratchdimen-\strutdepth
- \setbox\scratchbox\null
- \wd\scratchbox2\bodyfontsize
- \ht\scratchbox\scratchdimen
- \dp\scratchbox\strutdepth
- %%% top correction code (see below)
- \normalvadjust pre
- {%\allowbreak % sometimes breaks spacing
- \forgetall
- \crazymathindent
- \iftracegridsnapping
- \setbox\scratchbox\hbox
- {\incolortrue\localcolortrue\green
- \ruledhbox{\box\scratchbox}}%
- \fi
- \box\scratchbox
- \endgraf
- \nobreak}%
- \else\ifnum\scratchcounter>\zerocount
- \normalvadjust pre
- {\nobreak}%
- \fi\fi
- \fi
- \if!!donec
- % \getrawnoflines\nextboxdp
- \scratchdimen\nextboxdp
- \advance\scratchdimen-\strutdp
- \getnoflines\scratchdimen
- \if!!donee \advance\noflines\minusone \fi
- \scratchcounter\noflines
- \advance\noflines-\lastcrazymathpostlines\relax
- \ifnum\noflines>\zerocount
- \donetrue
- \else\ifnum\lastcrazymathpostlines=\zerocount
- \donetrue
- \else
- \donefalse
- \fi\fi
- \else
- \donefalse
- \fi
- \ifdone
- \xdef\lastcrazymathpostlines{\the\scratchcounter}%
- \ifnum\lastcrazymathpostlines=\zerocount
- \global\let\lastcrazymathpostlines\!!plusone
- \fi
- \hbox{\setposition\crazymathtag\flushcrazymathbox}%
- \scratchdimen\noflines\lineheight
- \advance\scratchdimen-\lineheight
- \advance\scratchdimen+\strutheight
-\ifdim\scratchdimen>\zeropoint \else
- \scratchdimen=\strutheight % todo : test for half lines
-\fi
- \ifconditional\halfcrazymathlines
- \advance\scratchdimen-.5\lineheight
- \fi
- \setbox\scratchbox\null
- \wd\scratchbox2\bodyfontsize
- \ht\scratchbox\scratchdimen
- \dp\scratchbox\strutdepth
- \normalvadjust
- {\forgetall
- \crazymathindent
- \iftracegridsnapping
- \setbox\scratchbox\hbox
- {\incolortrue\localcolortrue\color[blue]{\ruledhbox{\box\scratchbox}}}%
- \fi
- \box\scratchbox
- \endgraf
- % precaution: else we stick below the text bottom
- \ifconditional\halfcrazymathlines
- \allowbreak
- \else
- \vskip-\lineheight
- \vskip \lineheight
- \fi}%
- \else
- \hbox{\setposition\crazymathtag\flushcrazymathbox}%
- \fi
- \else
- \flushcrazymathbox
- \fi
- \else\if!!donea
- \flushcrazymathbox
- \else
- \mathematics{#2}%
- \fi\fi
- \endgroup}
-
-
-%%% top correction code
-%%%
-%%% correct for fuzzy top of page situations
-%
-% \scratchdimen\lastcrazymathprelines\lineheight
-% \advance\scratchdimen\MPy\crazymathtag
-% \advance\scratchdimen\lineheight
-% \advance\scratchdimen\topskip
-% \advance\scratchdimen-\strutheight
-% \dimen0=\MPy\crazytexttag
-% \advance\dimen0 \MPh\crazytexttag
-% \advance\scratchdimen-\dimen0\relax
-% % do we need correction at all
-% \ifdim\scratchdimen>\strutdepth\relax
-% \donefalse
-% \else\ifdim\scratchdimen<\zeropoint
-% \donefalse
-% \else
-% \donetrue
-% \fi\fi
-% % analysis done
-% \donefalse
-% \ifdone
-% \edef\crazymathcorrection{\the\scratchdimen}%
-% \advance\scratchdimen-\dp\scratchbox
-% \dp\scratchbox-\scratchdimen
-% \else
-% \let\crazymathcorrection\zeropoint
-% \fi
-%
-%%%
-%%% keep the previous code
-%%%
-
-\let\tform\mathematics
-\let\gform\snappedinlineformula
-
-% test set:
-%
-% \startbuffer
-% Crazy math \gform {1+x} or \gform {\dorecurse {100} {1+} 1 =
-% 101} and even gore crazy \gform {2^{2^2}_{1_1}}
-% again\dorecurse {20} { and again} \gform {\sqrt {\frac
-% {x^{5^5}} {\frac {1} {2}}}} even gore\dorecurse {50} { and
-% gore} \tform {\dorecurse {12} {\gform {\sqrt {\frac
-% {x^{5^5}} {3}}}+\gform {\sqrt {\frac {x^{5^5}} {\frac {1}
-% {2}}}}+}x=10}\dorecurse{20} { super crazy math}: \tform
-% {\dorecurse {30} {\gform {\sqrt {\frac {x^{5^5}} {3}}}+
-% \gform {\sqrt {\frac {x^{5^5}} {\frac {1} {2}}}}+ }x = 10},
-% and we're\dorecurse {20} { done}!
-% \stopbuffer
-%
-% \setupcolors[state=start] \setuppapersize[S6][S6]
-%
-% \showgrid \tracegridsnappingtrue \showstruts
-%
-% \starttext
-% \setuplayout[grid=yes,lines=15]\getbuffer \page
-% \setuplayout[grid=yes,lines=16]\getbuffer \page
-% \setuplayout[grid=yes,lines=17]\getbuffer \page
-% \setuplayout[grid=yes,lines=18]\getbuffer \page
-% \setuplayout[grid=yes,lines=19]\getbuffer \page
-% \stoptext
-%
-% test
-%
-% \startregels
-% \gform[<]{35 \cdot p^{\frac{3}{4}} = 70}
-% \gform{12{,}4 \cdot d^3 = 200}
-% \gform{a \cdot x^b}.
-% \gform{12x^6 \cdot \negative 3x^4}
-% \gform{\frac{12x^6}{\negative 3x^4}}
-% \gform{(4x^2)^3}
-% \gform{4x \sqrt{x} \cdot 3x^2}
-% \gform{\frac{2x^4}{4x \sqrt{x}}}
-% \gform{y = a \cdot x^b}.
-% \gform{y_1 = \frac{15x^2}{x}}
-% \gform{y_2 = x \cdot \sqrt{x}}
-% \gform{y_3 = \frac{6x^3}{x^2}}
-% \gform[<]{y_4 = \left(2x^2\right)^{\frac{1}{2}}}
-% \gform{y_1 = \frac{4x^5}{x^2}}
-% \gform{y_2 = 4 \cdot \sqrt{x}}
-% \gform{y_3 = 4x^3}
-% \gform{y_4 = \frac{100x}{\sqrt{x}}}
-% \gform[<]{y_5 = 4 \cdot x^{\frac{1}{2}}}
-% \gform{y_6 = \frac{1}{2} x \cdot 4x^2}
-% \gform{y_7 = 2 \cdot x^3}
-% \gform{y_8 = 100 \cdot x^{\frac{1}{2}}}
-% \gform{4x^8 \cdot 8x^3}
-% \gform{\frac{4x^8}{8x^3}}
-% \gform{\left(\negative3x^4\right)^3}
-% \gform{x^3 \sqrt{x} \cdot 3x^2}
-% \gform{\frac{6x^3}{x^2 \sqrt{x}}}
-% \gform{\frac{6}{2x^4}}
-% \gform{\frac{1}{3x^6}}
-% \gform{\frac{12x^8}{4x^{10}}}
-% \gform{\frac{4}{\sqrt{x}}}
-% \gform{\frac{1}{2x \sqrt{x}}}
-% \gform{\frac{2{,}25}{p} = 0{,}35}
-% \gform{4{,}50 + \frac{300}{k} = 4{,}70}
-% \gform{\frac{1200}{k+12} - 42 = 6}
-% \stopregels
-
-%D \macros
-%D {restoremathstyle}
-%D
-%D We can pick up the current math style by calling \type
-%D {\restoremathstyle}.
-
-\def\restoremathstyle
- {\ifmmode
- \ifcase\supersubmode
- \textstyle
- \or
- \scriptstyle
- \else
- \scriptscriptstyle
- \fi
- \fi}
-
-%D \macros
-%D {mathstyle}
-%D
-%D If one want to be sure that something is typeset in the
-%D appropriate style, \type {\mathstyle} can be used:
-%D
-%D \starttyping
-%D \mathstyle{something}
-%D \stoptyping
-
-\def\mathstyle#1%
- {\mathchoice
- {\displaystyle #1}%
- {\textstyle #1}%
- {\scriptstyle #1}%
- {\scriptscriptstyle#1}}
-
-%D Something similar can be used in the (re|)|definition
-%D of \type {\text}. This version is a variation on the one
-%D in the math module (see \type{m-math} and|/|or \type
-%D {m-newmat}).
-
-\unexpanded\def\mathtext
- {\mathortext\domathtext\hbox}
-
-\def\domathtext#1%
- {\mathchoice
- {\dodomathtext\displaystyle \textface {#1}}%
- {\dodomathtext\textstyle \textface {#1}}%
- {\dodomathtext\scriptstyle \scriptface {#1}}%
- {\dodomathtext\scriptscriptstyle\scriptscriptface{#1}}}
-
-\def\dodomathtext#1#2#3% no \everymath !
- %{\hbox{\everymath{#1}\switchtobodyfont [#2]#3}} % 15 sec
- {\hbox{\everymath{#1}\setcurrentfontbody{#2}#3}} % 3 sec (no math)
-
-%D Because we may overload \type {\text} in other (structuring)
-%D macros, we say:
-
-\appendtoks \let\text\mathtext \to \everymathematics
-
-%D \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
- {\null\,\vcenter
- {\openup.25\bodyfontsize% was: \openup\jot
- \mathsurround\zeropoint
- \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##{}}$\hfil\crcr#1\crcr}%
- }\,}
-
-% preamble is scanned for tabskips so we need the span to prevent an error message
-
-\chardef\eqalignmode\plusone
-
-\def\preparereqalignno
- {\!!toksa{\strut\firstineqalign\hfil\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}%
- \!!toksb{&\nextineqalign\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}%
- \ifnum\mathraggedstatus=\plusone
- \!!toksc{\hfil&\span\textineqalign{##}\tabskip\zeropoint}%
- \else\ifnum\mathraggedstatus=\plusthree
- \!!toksc{\hfil\tabskip\zeropoint\!!plus 1\!!fill&\span\textineqalign{##}\tabskip\zeropoint}%
- \else
- \!!toksc{\hfil\tabskip\centering&\llap{\span\textineqalign{##}}\tabskip\zeropoint}%
- \fi\fi
- \global\chardef\mathnumberstatus\zerocount
- \buildeqalign
- \presetdisplaymath
- \tabskip\centering}
-
-\def\prepareleqalignno
- {\!!toksa{\strut\firstineqalign\hfil\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}%
- \!!toksb{&\nextineqalign\leftofeqalign\span\mathineqalign{##}\rightofeqalign\tabskip\zeropoint}%
- % problem: number is handled after rest and so ends up in the margin
- \ifnum\mathraggedstatus=\plusone
- \!!toksc{\hfil&\kern-\displaywidth\rlap{\span\textineqalign{##}}\tabskip\displaywidth}%
- \else\ifnum\mathraggedstatus=\plusthree
- \!!toksc{\hfil\tabskip\zeropoint\!!plus 1\!!fill&\kern-\displaywidth\span\mrlap{\span\textineqalign{##}}\tabskip\displaywidth}%
- \else
- \!!toksc{\hfil\tabskip\centering&\kern-\displaywidth\rlap{\span\textineqalign{##}}\tabskip\displaywidth}%
- \fi\fi
- \global\chardef\mathnumberstatus\zerocount
- \buildeqalign
- \presetdisplaymath
- \tabskip\centering}
-
-\def\dobotheqalignno#1#2%
- {\ifmmode
- \displ@y % \let\doplaceformulanumber\relax % strange hack
- \vcenter\bgroup
- \let\finishalignno\egroup
- \else
- \let\finishalignno\relax
- \fi
- #1%
- \halign \ifcase\eqalignmode \or to \displaywidth \fi \@EA {\the\scratchtoks\crcr#2\crcr}%
- \finishalignno}
-
-\def\dobothaligneqalignno#1%
- {\ifmmode
- \displ@y
- \global\chardef\mathnumberstatus\plusone
- \ifcase\mathraggedstatus
- \def\finishalignno{\crcr\egroup}%
- \else
- % we're in a mathbox
- \vcenter\bgroup
- \def\finishalignno{\crcr\egroup\egroup}%
- \fi
- \fi
- #1%
- \halign \ifcase\eqalignmode \or to \displaywidth \fi \@EA \bgroup\the\scratchtoks\crcr}
-
-\def\mrlap#1%
- {\setbox\scratchbox\hbox{#1}%
- \ifdim\wd\scratchbox>\mathnumbercorrection
- \xdef\mathnumbercorrection{\the\wd\scratchbox}%
- \fi
- \box\scratchbox
- \global\chardef\mathnumberstatus\plustwo}
-
-% \def\dobothaligneqalignno#1%
-% {\ifmmode
-% \displ@y
-% \global\chardef\mathnumberstatus\plusone
-% we're in a mathbox
-% \vcenter\bgroup
-% \def\finishalignno{\crcr\egroup\egroup}%
-% \else
-% \def\finishalignno{\crcr\egroup}%
-% \fi
-% #1%
-% \halign \ifcase\eqalignmode \or to \displaywidth \fi \@EA \bgroup\the\scratchtoks\crcr}
-
-\def\reqalignno {\dobotheqalignno \preparereqalignno}
-\def\leqalignno {\dobotheqalignno \prepareleqalignno}
-\def\alignreqalignno{\dobothaligneqalignno\preparereqalignno}
-\def\alignleqalignno{\dobothaligneqalignno\prepareleqalignno}
-\def\finishalignno {\crcr\egroup}
-
-\let \equalignno \reqalignno
-\let\aligneqalignno\alignreqalignno
-
-%D Here we implement the user interface part.
-
-\def\setupmathalignment
- {\dodoubleempty\dosetupmathalignment}
-
-\def\dosetupmathalignment[#1][#2]%
- {\ifsecondargument
- \getparameters[\??eq#1][#2]%
- \else
- \getparameters[\??eq][#1]%
- \fi}
-
-\let\currentmathalignment\empty
-
-\def\mathalignmentparameter#1%
- {\executeifdefined{\??eq\currentmathalignment#1}{\executeifdefined{\??eq#1}\empty}}
-
-\setupmathalignment
- [\c!n=2,
- \c!m=1,
- \c!distance=1em]
-
-\def\numberedeqalign
- {\doifelse\@@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]%
- {\donestedformulanumber{#1}{#2}\crcr}
-
-%D \starttyping
-%D \placeformula[eqn0]\startformula \startalign[n=1] a\NR \stopalign \stopformula See \in[eqn0]
-%D \placeformula[eqn1]\startformula \startalign[n=1] a\NR \stopalign \stopformula See \in[eqn1]
-%D \placeformula \startformula \startalign[n=1] a\NR[eqn2] \stopalign \stopformula See \in[eqn2]
-%D \placeformula[eqn3]\startformula \startalign[n=1] a\NR[+] \stopalign \stopformula See \in[eqn3]
-%D \stoptyping
-
-% todo: pop in cell
-
-\def\dostartmathalignment[#1][#2]%
- {% \begingroup not permitted ($$...assignments...\halign... )
- \pushmacro\doalignNC
- \edef\currentmathalignment{#1}%
- \doifassignmentelse{#2}{\setupmathalignment[#1][#2]}\donothing
- \def\NC{\doalignNC}%
- \global\let\doalignNC\dodoalignNC
- \def\EQ{&=}%
- \def\NR{&\global\let\doalignNC\dodoalignNC\doxxdoubleempty\doalignNR}%
- % amstex compatibility mode: (ugly, will disappear)
- \def\notag{\def\\{&\crcr}}%
- \doifelse{#2}{*}{\def\\{&\crcr}}{\def\\{&\doalignNR[+][]\crcr}}%
- % end of compatibility mode
- \eqaligncolumn\zerocount
- \processcommacommand
- [\mathalignmentparameter\c!align]
- {\advance\eqaligncolumn\plusone\doseteqaligncolumn}% takes argument
- % the real action
- \global\eqaligncolumn\plusone
- \numberedeqalign}
-
-\def\dostopmathalignment
- {\finishalignno
- \popmacro\doalignNC}
-
-\def\definemathalignment
- {\dodoubleempty\dodefinemathalignment}
-
-\def\dodefinemathalignment[#1]% [#2]%
- {\setvalue{\e!start#1}{\dodoubleempty\dostartmathalignment[#1]}%
- \setvalue{\e!stop #1}{\dostopmathalignment}%
- \setupmathalignment[#1]}% [#2]
-
-%D For the moment we only provide english commands.
-
-\definemathalignment[align] % default case (this is what amstex users expect)
-\definemathalignment[\v!mathalignment] % prefered case (this is cleaner, less clashing)
-
-%D \startbuffer
-%D \placeformula \startformula \eqalignno {
-%D a &= b & \formulanumber \cr
-%D c &= d \cr
-%D &= e \cr
-%D &= f & \formulanumber
-%D } \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula \startformula \startalign
-%D \NC a \EQ b \NR[+]
-%D \NC c \EQ d \NR
-%D \NC \EQ f \NR[for:demo-a-1]
-%D \NC \EQ g \NR[for:demo-a-2][a]
-%D \NC \EQ h \NR[for:demo-a-3][b]
-%D \NC \EQ i \NR
-%D \stopalign \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula \startformula \startalign
-%D \NC a \EQ b \NR[+]
-%D \NC c \EQ d \NR
-%D \NC \EQ f \NR
-%D \NC \EQ g \NR
-%D \NC \EQ h \NR
-%D \NC \EQ i \NR[+]
-%D \stopalign \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula \startformula \startalign
-%D a &= b \\
-%D c &= d \notag \\
-%D &= e \notag \\
-%D &= f \\
-%D \stopalign \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula \startformula \startalign
-%D \NC a \NC \eq b \NR[+]
-%D \NC c \NC \neq d \NR
-%D \NC \NC \neq f \NR[for:demo-b-1]
-%D \NC \NC \geq g \NR[for:demo-b-2][a]
-%D \NC \NC \leq h \NR[for:demo-b-3][b]
-%D \NC \NC \neq i \NR
-%D \stopalign \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula \startformula \startalign[*]
-%D a &= b \\
-%D c &= d \\
-%D &= e \\
-%D &= f \\
-%D \stopalign \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula \startformula \startalign
-%D x &= y \\
-%D a &= b \\
-%D \stopalign \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula \startformula \startalign[m=3]
-%D x &= y & x &= y & z &= t \\
-%D a &= b & p &= q & w &= s \\
-%D \stopalign \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula \startformula \startalign[m=3,distance=0pt]
-%D x &= y &= x &= y &= z &= t \\
-%D a &= b &= p &= q &= w &= s \\
-%D \stopalign \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula \startformula \startalign[n=5,distance=0pt]
-%D x &= yy &= xx &= yy &= zz \\
-%D a &= b &= p &= q &= w \\
-%D \stopalign \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula \startformula \startalign[n=3,align={left,middle,right}]
-%D \NC l \NC = \NC r \NR
-%D \NC left \NC = \NC right \NR
-%D \stopalign \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula \startformula \startalign[n=3,align={right,middle,left}]
-%D \NC l \NC = \NC r \NR
-%D \NC left \NC = \NC right \NR
-%D \stopalign \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula \startformula \startalign[n=3,align={middle,middle,middle}]
-%D \NC l \NC = \NC r \NR
-%D \NC left \NC = \NC right \NR
-%D \stopalign \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula
-%D \startformula
-%D \startalign[n=3,align={middle,middle,middle}]
-%D \NC a \NC = \NC b \NR[+]
-%D \NC 2a \NC = \NC 2b \NR
-%D \stopalign
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula
-%D \startformulas
-%D \setupmathalignment[n=3,align={middle,middle,middle}]%
-%D \startformula
-%D \startalign
-%D \NC a \NC = \NC b \NR[+]
-%D \NC 2a \NC = \NC 2b \NR
-%D \stopalign
-%D \stopformula
-%D \startformula
-%D \startalign
-%D \NC a \NC = \NC b \NR[+]
-%D \NC 2a \NC = \NC 2b \NR
-%D \stopalign
-%D \stopformula
-%D \stopformulas
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula
-%D \startformulas
-%D \dorecurse{5}{\startformula
-%D \startalign[n=3,align={middle,middle,middle}]
-%D \NC a \NC = \NC b \NR[+]
-%D \NC 2a \NC = \NC 2b \NR
-%D \stopalign
-%D \stopformula}
-%D \stopformulas
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-%D \macros
-%D {definemathcases, setupmathcases, startmathcases}
-%D
-%D Another wish \unknown
-
-\def\setupmathcases
- {\dodoubleempty\dosetupmathcases}
-
-\def\dosetupmathcases[#1][#2]%
- {\ifsecondargument
- \getparameters[\??ce#1][#2]%
- \else
- \getparameters[\??ce][#1]%
- \fi}
-
-\let\currentmathcases\empty
-
-\def\mathcasesparameter#1%
- {\executeifdefined{\??ce\currentmathcases#1}{\executeifdefined{\??ce#1}\empty}}
-
-\setupmathcases
- [\c!distance=1em,
- \c!numberdistance=2.5em,
- \c!left={\left\{\,},
- \c!right={\right.}]
-
-\def\dodocasesNC
- {\gdef\docasesNC{\endmath&}}
-
-\let\docasesNR\doalignNR
-
-\def\dostartmathcases[#1][#2]%
- {\begingroup
- \edef\currentmathcases{#1}%
- \doifassignmentelse{#2}{\setupmathcases[#1][#2]}\donothing
- \mathcasesparameter\c!left
- \vcenter\bgroup
- \pushmacro\docasesNC
- \let\endmath\relax
- \def\NC{\docasesNC}%
- \def\MC{\docasesNC\ifmmode\else$\def\endmath{$}\fi}%
- \global\let\docasesNC\dodocasesNC
- \def\NR{\unskip\endmath&\global\let\docasesNC\dodocasesNC\doxxdoubleempty\docasesNR}%
- \normalbaselines
- \mathsurround\zeropoint
- \everycr\emptytoks
- \tabskip\zeropoint
- \global\eqaligncolumn\plusone
- \halign\bgroup
- $\mathcasesparameter\c!style##$\hfil
- &\hskip\mathcasesparameter\c!distance\relax
- \popmacro\docasesNC##\hfil
- &\hskip\mathcasesparameter\c!numberdistance\relax
- \let\formuladistance\!!zeropoint
- \span\textineqalign{##}%
- \crcr} % todo: number
-
-\def\dostopmathcases
- {\crcr
- \egroup
- \popmacro\docasesNC
- \egroup
- \mathcasesparameter\c!right
- \endgroup}
-
-\def\definemathcases
- {\dodoubleempty\dodefinemathcases}
-
-\def\dodefinemathcases[#1]% [#2]%
- {\setvalue{\e!start#1}{\dodoubleempty\dostartmathcases[#1]}%
- \setvalue{\e!stop #1}{\dostopmathcases}%
- \setupmathcases[#1]}% [#2]
-
-\definemathcases[cases]
-\definemathcases[\v!mathcases]
-
-%D \startbuffer
-%D \placeformula \startformula \startcases
-%D \NC 2 \NC $ y > 0 $ \NR
-%D \NC 7 \NC $ x = 7 $ \NR[+]
-%D \NC 4 \NC otherwise \NR
-%D \stopcases \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula \startformula x \startcases
-%D \NC 2 \NC $ y > 0 $ \NR[+]
-%D \NC 7 \NC $ x = 7 $ \NR
-%D \NC 4 \NC otherwise \NR
-%D \stopcases \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula \startformula \startcases
-%D \NC 2 \NC $ y > 0 $ \NR
-%D \NC 7 \NC $ x = 7 $ \NR
-%D \NC 4 \NC otherwise \NR
-%D \stopcases \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \placeformula \startformula x \startcases
-%D \NC 2 \NC $ y > 0 $ \NR
-%D \NC 7 \NC $ x = 7 $ \NR
-%D \NC 4 \NC otherwise \NR
-%D \stopcases \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-%D \macros
-%D {definemathmatrix, setupmathmatrix, startmathmatrix}
-%D
-%D Yet another one \unknown
-
-\def\setupmathmatrix
- {\dodoubleempty\dosetupmathmatrix}
-
-\def\dosetupmathmatrix[#1][#2]%
- {\ifsecondargument
- \getparameters[\??mx#1][#2]%
- \else
- \getparameters[\??mx][#1]%
- \fi}
-
-\let\currentmathmatrix\empty
-
-\def\mathmatrixparameter#1%
- {\executeifdefined{\??mx\currentmathmatrix#1}{\executeifdefined{\??mx#1}\empty}}
-
-\setupmathmatrix
- [\c!distance=1em,
- \c!left=,
- \c!right=,
- \c!align=\v!middle]
-
-\def\dosetmatrixcolumn#1% hh: todo: \definematrixalign
- {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfil
- \letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfil
- \doif{#1}\v!left {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\relax
- \letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfil}%
- \doif{#1}\v!right {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfil
- \letvalue{\??eq:\v!right:\number\eqaligncolumn}\relax }%
- \doif{#1}\v!middle{\letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfil
- \letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfil}}
-
-\def\buildmathmatrix % beware: etex only
- {\scratchtoks\emptytoks
- \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\installmathmatrixhandler#1#2%
- {\setvalue{\??mx:#1}{#2}}
-
-% First alternative:
-%
-% \def\processlowhighmathmatrix#1%
-% {\def\mathmatrixleft
-% {\setbox\nextbox}
-% \def\mathmatrixright
-% {#1.5\dimexpr\nextboxdp-\nextboxht\relax
-% \hbox{$\mathmatrixparameter\c!left
-% \vcenter{\unvbox\nextbox}%
-% \mathmatrixparameter\c!right$}}%
-% \let\mathmatrixbox\vbox}
-%
-% \installmathmatrixhandler\v!high {\processlowhighmathmatrix\raise}
-% \installmathmatrixhandler\v!low {\processlowhighmathmatrix\lower}
-%
-% \installmathmatrixhandler\v!top {\processlowhighmathmatrix\raise}
-% \installmathmatrixhandler\v!bottom{\processlowhighmathmatrix\lower}
-%
-% \installmathmatrixhandler\v!lohi
-% {\def\mathmatrixleft {\mathmatrixparameter\c!left}%
-% \def\mathmatrixright{\mathmatrixparameter\c!right}%
-% \let\mathmatrixbox\vcenter}
-%
-% An alternative
-%
-% \let\mathmatrixleft \empty
-% \let\mathmatrixright\empty
-%
-% \def\processlowhighmathmatrix#1%
-% {\dowithnextbox
-% {#1.5\dimexpr\nextboxdp-\nextboxht\relax
-% \hbox{$\mathmatrixparameter\c!left
-% \vcenter{\unvbox\nextbox}%
-% \mathmatrixparameter\c!right$}}%
-% \vbox}
-%
-% \def\processlohimathmatrix
-% {\dowithnextbox
-% {\mathmatrixparameter\c!left
-% \vcenter{\unvbox\nextbox}%
-% \mathmatrixparameter\c!right}%
-% \vbox}
-%
-% \installmathmatrixhandler\v!high {\def\mathmatrixbox{\processlowhighmathmatrix\raise}}
-% \installmathmatrixhandler\v!low {\def\mathmatrixbox{\processlowhighmathmatrix\lower}}
-% \installmathmatrixhandler\v!top {\def\mathmatrixbox{\processlowhighmathmatrix\raise}}
-% \installmathmatrixhandler\v!bottom{\def\mathmatrixbox{\processlowhighmathmatrix\lower}}
-% \installmathmatrixhandler\v!lohi {\let\mathmatrixbox \processlohimathmatrix}
-%
-% Final version
-
-\let\mathmatrixleft \empty % experimental hook
-\let\mathmatrixright\empty % experimental hook
-
-\def\processlowhighmathmatrix#1#2%
- {\dowithnextbox
- {\scratchdimen\dimexpr(\nextboxdp-\nextboxht)/2 \ifcase#2\or+\mathaxisheight\textfont2\fi\relax
- \ifcase#1\relax\or\lower\scratchdimen\or\or\raise\scratchdimen\fi
- \hbox{$\mathmatrixparameter\c!left
- \vcenter{\unvbox\nextbox}%
- \mathmatrixparameter\c!right$}}%
- \vbox}
-
-\installmathmatrixhandler\v!top {\def\mathmatrixbox{\processlowhighmathmatrix\plusthree\plusone }}
-\installmathmatrixhandler\v!high {\def\mathmatrixbox{\processlowhighmathmatrix\plusthree\zerocount}}
-\installmathmatrixhandler\v!lohi {\def\mathmatrixbox{\processlowhighmathmatrix\plustwo \zerocount}}
-\installmathmatrixhandler\v!low {\def\mathmatrixbox{\processlowhighmathmatrix\plusone \zerocount}}
-\installmathmatrixhandler\v!bottom{\def\mathmatrixbox{\processlowhighmathmatrix\plusone \plusone }}
-
-\def\dostartmathmatrix[#1][#2]%
- {\begingroup
- \edef\currentmathmatrix{#1}%
- \doifassignmentelse{#2}{\setupmathmatrix[#1][#2]}\donothing
- \null
- \executeifdefined{\??mx:\mathmatrixparameter\c!location}{\getvalue{\??mx:\v!lohi}}%
- \mathmatrixleft
- \mathmatrixbox\bgroup
- \pushmacro\domatrixNC
- \let\endmath\relax
- \def\NC{\domatrixNC}%
- \def\MC{\domatrixNC\ifmmode\else$\def\endmath{$}\fi}%
- \global\let\domatrixNC\dodomatrixNC
- \def\NR{\endmath\global\let\domatrixNC\dodomatrixNC\crcr}%
- \normalbaselines
- \mathsurround\zeropoint
- \everycr\emptytoks
- \tabskip\zeropoint
- \eqaligncolumn\zerocount % could be \scratchcounter
- \processcommacommand[\mathmatrixparameter\c!align]{\advance\eqaligncolumn\plusone\dosetmatrixcolumn}%
- \scratchcounter=\ifnum\eqaligncolumn>\zerocount \eqaligncolumn \else \plusone \fi
- \global\eqaligncolumn\plusone
- \preparemathmatrix } % uses scratchcounter
-
-\def\dostopmathmatrix
- {\crcr
- \mathstrut\crcr
- \noalign{\kern-\baselineskip}%
- \egroup
- \popmacro\domatrixNC
- \egroup
- \mathmatrixright
- \endgroup}
-
-%D \startbuffer
-%D \placeformula \startformula[-] \startmatrix
-%D \NC 1 \NC x \NC a \NR
-%D \NC 2 \NC y \NC b \NR
-%D \NC 3 \NC z \NC c \NR
-%D \stopmatrix \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \definemathmatrix[bmatrix][left={\left[\,},right={\,\right]}]
-%D
-%D \startbuffer
-%D \placeformula \startformula[-] \startbmatrix
-%D \NC 1 \NC x \NC a \NR
-%D \NC 2 \NC y \NC b \NR
-%D \NC 3 \NC z \NC c \NR
-%D \stopbmatrix \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D Taco added some code (dedicated to Aditya Mahajan) that gives more
-%D control over aligments:
-
-%D \startbuffer
-%D \startformula
-%D \startmatrix
-%D \NC a + x \NC = \NC a + d \NR
-%D \NC y \NC = \NC d \NR
-%D \stopmatrix
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-%D \startbuffer
-%D \startformula
-%D \startmatrix [distance=3pt,align={right,left}]
-%D \NC a + x \NC = a + d \NR
-%D \NC y \NC = d \NR
-%D \stopmatrix
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-%D \startbuffer
-%D \startformula
-%D \startmatrix [left=\left(,right=\right)]
-%D \NC a + x \NR
-%D \NC y \NR
-%D \stopmatrix
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D A bit more complex code:
-%D
-%D \startbuffer
-%D \startformula
-%D \text{Let }{\cal R} = \bigcup_{P_{X_1},P_{X_2}}
-%D \left\{ (R_1, R_2) :
-%D \startmatrix[distance=1em,align={left,left,right}]
-%D \NC R_1 \NC < I(X_1 ; Y \mid X_2) \NC R_1 \NR
-%D \NC \hfill Q_2 \NC < I(X_2 ; Y \mid X_1) \NC R_2 \NR
-%D \NC R_1 + R_2 \NC < I(X_1 ; Y) \NC R_1 + R_2 \NR
-%D \stopmatrix
-%D \right\}
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-%D \macros
-%D {startmatrices}
-%D
-%D Just a handy keystroke safer:
-
-\def\startmatrices
- {\begingroup
- \setupmathmatrix}
-
-\def\stopmatrices
- {\endgroup}
-
-%D \startbuffer
-%D \startformula
-%D \startmatrix[left={\left(},right={\right)}]
-%D \NC A \NC B \NR \NC C \NC D \NR
-%D \stopmatrix
-%D =
-%D \startmatrix[left={\left(},right={\right)},location=low]
-%D \NC A \NC B \NR \NC C \NC D \NR
-%D \stopmatrix
-%D =
-%D \startmatrix[left={\left(},right={\right)},location=high]
-%D \NC A \NC B \NR \NC C \NC D \NR
-%D \stopmatrix
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \startformula
-%D \startmatrices[left={\left(},right={\right)}]
-%D \startmatrix
-%D \NC A \NC B \NR \NC C \NC D \NR
-%D \stopmatrix
-%D =
-%D \startmatrix[location=bottom]
-%D \NC A \NC B \NR \NC C \NC D \NR
-%D \stopmatrix
-%D =
-%D \startmatrix[location=top]
-%D \NC A \NC B \NR \NC C \NC D \NR
-%D \stopmatrix
-%D \stopmatrices
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-%D \macros
-%D {startintertext}
-%D
-%D Preliminary feature:
-%D
-%D {\em example code}
-
-\def\startintertext#1\stopintertext
- {\noalign{\dointertext{#1}}}
-
-\def\intertext#1%
- {\noalign{\dointertext{#1}}}
-
-\unexpanded\def\dointertext#1%
- {\penalty\postdisplaypenalty
- \afterdisplayspace
- \vbox{\forgetall\noindent#1\par}%
- \penalty\predisplaypenalty
- \beforedisplayspace}
-
-% %D \macros
-% %D {substack}
-% %D
-% %D Preliminary code:
-% %D
-% %D \starttyping
-% %D \startformula
-% %D \sum_{%
-% %D \startsubstack
-% %D i = 1 \NR
-% %D i \neq n \NR
-% %D i \neq m
-% %D \stopsubstack
-% %D }a_i
-% %D \stopformula
-% %D \stoptyping
-
-% \def\startsubstack
-% {\begingroup
-% \null
-% \vcenter\bgroup
-% \pushmacro\domatrixNC
-% \let\stopmathmode\relax
-% \def\NC{\domatrixNC}%
-% \def\MC{\domatrixNC\startmathmode}%
-% \global\let\domatrixNC\dodomatrixNC
-% \def\NR
-% {\stopmathmode
-% \global\let\domatrixNC\dodomatrixNC
-% \crcr\noalign{\nointerlineskip}}%
-% \mathsurround\zeropoint
-% \everycr\emptytoks
-% \halign\bgroup\hfil$\scriptstyle\mathstrut##$\hfil\crcr}
-
-% \def\stopsubstack
-% {\crcr
-% \egroup
-% \popmacro\domatrixNC
-% \egroup
-% \endgroup}
-
-%D \macros
-%D {substack}
-%D
-%D Preliminary code:
-%D
-%D \startbuffer
-%D \startformula
-%D \sum_{%
-%D \startsubstack
-%D i = 1 \NR
-%D i \neq n \NR
-%D i \neq m
-%D \stopsubstack
-%D }a_i
-%D \stopformula
-%D \stopbuffer
-%D
-%D \getbuffer which was typed as \typebuffer
-%D
-%D Notice that these macros give the correct spacing for
-%D subscripts. Compare for example
-%D
-%D \startbuffer
-%D \startformula
-%D \sum_{\startsubstack a \NR b \NR \stopsubstack}
-%D \text{ and }
-%D \sum_{\scriptstyle a \atop \scriptstyle}
-%D \stopformula
-%D \typebuffer which gives \getbuffer
-
-\def\startsubstack
- {\begingroup
- \vcenter\bgroup
- \baselineskip\mathstacktotal
- \lineskip\mathstackvgap
- \lineskiplimit\lineskip
- \let\stopmathmode\relax
- \def\NC{\domatrixNC}%
- \def\MC{\domatrixNC\startmathmode}%
- \global\let\domatrixNC\dodomatrixNC
- \def\NR
- {\stopmathmode
- \global\let\domatrixNC\dodomatrixNC
- \crcr}%
- \mathsurround\zeropoint
- \everycr\emptytoks
- \halign\bgroup\hfil$\scriptstyle##$\hfil\crcr}
-
-\def\stopsubstack
- {\crcr
- \egroup
- \egroup
- \endgroup}
-
-%D \macros
-%D {frac, xfrac, xxfrac}
-%D
-%D This is another one Tobias asked for. It replaces the
-%D primitive \type {\over}. We also take the opportunity to
-%D handle math style restoring, which makes sure units and
-%D chemicals come out ok.
-%D
-%D \starttyping
-%D \def\frac#1#2%
-%D {\relax
-%D \ifmmode
-%D {{\mathstyle{#1}}\over{\mathstyle{#2}}}%
-%D \else
-%D $\frac{#1}{#2}$%
-%D \fi}
-%D \stoptyping
-%D
-%D Better is:
-%D
-%D \starttyping
-%D \def\frac#1#2%
-%D {\relax\mathematics{{{\mathstyle{#1}}\over{\mathstyle{#2}}}}}
-%D \stoptyping
-%D
-%D The \type {\frac} macro kind of replaces the awkward \type
-%D {\over} primitive. Say that we have the following formulas:
-%D
-%D \startbuffer[sample]
-%D test $\frac {1}{2}$ test $$1 + \frac {1}{2} = 1.5$$
-%D test $\xfrac {1}{2}$ test $$1 + \xfrac {1}{2} = 1.5$$
-%D test $\xxfrac{1}{2}$ test $$1 + \xxfrac{1}{2} = 1.5$$
-%D \stopbuffer
-%D
-%D \typebuffer[sample]
-%D
-%D With the most straightforward definitions, we get:
-%D
-%D \startbuffer[code]
-%D \def\dofrac#1#2#3{\relax\mathematics{{{#1{#2}}\over{#1{#3}}}}}
-%D
-%D \def\frac {\dofrac\mathstyle}
-%D \def\xfrac {\dofrac\scriptstyle}
-%D \def\xxfrac{\dofrac\scriptscriptstyle}
-%D \stopbuffer
-%D
-%D \typebuffer[code] \getbuffer[code,sample]
-%D
-%D Since this does not work well, we can try:
-%D
-%D \startbuffer[code]
-%D \def\xfrac #1#2{\hbox{$\dofrac\scriptstyle {#1}{#2}$}}
-%D \def\xxfrac#1#2{\hbox{$\dofrac\scriptscriptstyle{#1}{#2}$}}
-%D \stopbuffer
-%D
-%D \typebuffer[code] \getbuffer[code,sample]
-%D
-%D This for sure looks better than:
-%D
-%D \startbuffer[code]
-%D \def\xfrac #1#2{{\scriptstyle \dofrac\relax{#1}{#2}}}
-%D \def\xxfrac#1#2{{\scriptscriptstyle\dofrac\relax{#1}{#2}}}
-%D \stopbuffer
-%D
-%D \typebuffer[code] \getbuffer[code,sample]
-%D
-%D So we stick to the next definitions (watch the local
-%D overloading of \type {\xfrac}).
-
-\def\dofrac#1#2#3{\relax\mathematics{{{#1{#2}}\over{#1{#3}}}}}
-
-% \unexpanded\def\frac
-% {\dofrac\mathstyle}
-%
-% \chardef\mathfracmode=0 $\frac{1}{2}$
-% \chardef\mathfracmode=1 $\frac{1}{2}$
-% \chardef\mathfracmode=2 $\frac{1}{2}$
-% \chardef\mathfracmode=3 $\frac{1}{2}$
-% \chardef\mathfracmode=4 $\frac{1}{2}$
-% \chardef\mathfracmode=5 $\frac{1}{2}$
-
-\chardef\mathfracmode=0 % 0=mathstyle, 1=displaystyle, 2=textstyle, 3=scriptstyle, 4=scriptscriptstyle
-
-\unexpanded\def\frac
- {\ifcase\mathfracmode
- \expandafter\dofrac\expandafter\mathstyle
- \or
- \expandafter\dofrac\expandafter\displaystyle
- \or
- \expandafter\dofrac\expandafter\textstyle
- \or
- \expandafter\dofrac\expandafter\scriptstyle
- \or
- \expandafter\dofrac\expandafter\scriptscriptstyle
- \else
- \expandafter\dofrac\expandafter\mathstyle
- \fi}
-
-\unexpanded\def\xfrac#1#2%
- {\begingroup
- \let\xfrac\xxfrac
- \dofrac\scriptstyle{#1}{#2}%
- \endgroup}
-
-\unexpanded\def\xxfrac#1#2%
- {\begingroup
- \dofrac\scriptscriptstyle{#1}{#2}%
- \endgroup}
-
-%D The \type {xx} variant looks still ugly, so maybe it's
-%D best to say:
-
-\unexpanded\def\xxfrac#1#2%
- {\begingroup
- \dofrac\scriptscriptstyle{#1}{\raise.25ex\hbox{$\scriptscriptstyle#2$}}%
- \endgroup}
-
-%D Something low level for scientific calculator notation:
-
-\unexpanded\def\scinot#1#2%
- {#1\times10^{#2}}
-
-%D The next macro, \type {\ch}, is \PPCHTEX\ aware. In
-%D formulas one can therefore best use \type {\ch} instead of
-%D \type {\chemical}, especially in fractions.
-
-\ifx\mathstyle\undefined
- \let\mathstyle\relax
-\fi
-
-\unexpanded\def\ch#1%
- {\ifx\@@chemicalletter\undefined
- \mathstyle{\rm#1}%
- \else
- \dosetsubscripts
- \mathstyle{\@@chemicalletter{#1}}%
- \doresetsubscripts
- \fi}
-
-%D \macros
-%D {/}
-%D
-%D Just to be sure, we restore the behavior of some typical
-%D math characters.
-
-\bgroup
-
-\catcode`\/=\@@other \global \let\normalforwardslash/
-\catcode`\/=\@@active \doglobal\appendtoks\let/\normalforwardslash\to\everymathematics
-
-\egroup
-
-%D These macros were first needed by Frits Spijker (also
-%D known as Gajes) for typesetting the minus sign that is
-%D keyed into scientific calculators.
-
-% This is the first alternative, which works okay for the
-% minus, but less for the plus.
-%
-% \def\dodoraisedmathord#1#2#3%
-% {\mathord{{#2\raise.#1ex\hbox{#2#3}}}}
-%
-% \def\doraisedmathord#1%
-% {\mathchoice
-% {\dodoraisedmathord5\tf #1}%
-% {\dodoraisedmathord5\tf #1}%
-% {\dodoraisedmathord4\tfx #1}%
-% {\dodoraisedmathord3\tfxx#1}}
-%
-% \def\negative{\doraisedmathord-}
-% \def\positive{\doraisedmathord+}
-%
-% So, now we use the monospaced signs, that we also
-% define as symbol, so that they can be overloaded.
-
-\def\dodoraisedmathord#1#2#3%
- {\mathord{{#2\raise.#1ex\hbox{#2\symbol[#3]}}}}
-
-\def\doraisedmathord#1%
- {\mathchoice
- {\dodoraisedmathord5\tf {#1}}%
- {\dodoraisedmathord5\tf {#1}}%
- {\dodoraisedmathord4\tx {#1}}%
- {\dodoraisedmathord3\txx{#1}}}
-
-\def\dodonumbermathord#1#2%
- {\setbox\scratchbox\hbox{0}%
- \mathord{\hbox to \wd\scratchbox{\hss#1\symbol[#2]\hss}}}
-
-\def\donumbermathord#1%
- {\mathchoice
- {\dodonumbermathord\tf {#1}}%
- {\dodonumbermathord\tf {#1}}%
- {\dodonumbermathord\tx {#1}}%
- {\dodonumbermathord\txx{#1}}}
-
-\definesymbol[positive] [\getglyph{Mono}{+}]
-\definesymbol[negative] [\getglyph{Mono}{-}]
-\definesymbol[zeroamount][\getglyph{Mono}{-}]
-
-\def\negative {\doraisedmathord{negative}}
-\def\positive {\doraisedmathord{positive}}
-\def\zeroamount{\donumbermathord{zeroamount}}
-
-%D The following macros are used in the MathML interpreter, so
-%D there is a good change of them never being documented for
-%D other usage.
-
-\let\normalordelimiter\secondoftwoarguments
-\let\normalorfiller \firstoftwoarguments
-
-\def\enabledelimiter {\let\normalordelimiter\secondoftwoarguments}
-\def\disabledelimiter{\let\normalordelimiter\firstoftwoarguments}
-
-\def\enablefiller {\let\normalorfiller\secondoftwoarguments}
-\def\disablefiller {\let\normalorfiller\firstoftwoarguments}
-
-\def\mathopnolimits#1{\mathop{\mr#1}\nolimits} % was \rm, which follows text fonts (used in mml parser)
-\def\mathopdolimits#1{\mathop{\mr#1}} % was \rm, which follows text fonts (used in mml parser)
-
-%D \macros{overset, underset}
-%D
-%D The macros \type{\overset} and \type{\underset} are provided by
-%D \AMS\ packages in \LATEX. These macro allows you to place a symbol
-%D above or below another symbol, irrespective of whether the other
-%D symbol is a relation or something else, and without influencing the
-%D spacing. For most cases there is a better way to do such things
-%D (declaring a math command with limop option, or using accents), but
-%D occasionally these macros can be useful, for example:
-%D
-%D \startbuffer
-%D \startformula
-%D \overset{*}{X} \underset{*}{X}
-%D \stopformula
-%D \stopbuffer
-%D \typebuffer \getbuffer
-%D
-%D Use these macros sparingly. Remember, \TEX\ was designed for
-%D mathematics, so there is usually a proper method for typesetting
-%D common math notation.
-
-%D These macros are a clearer version of \type{\binrel@} and
-%D \type{\binrel@@} macros in \AMSTEX\ packages.
-
-\def\preparebinrel#1%
- {\begingroup
- \setbox\scratchbox\hbox
- {\thinmuskip 0mu
- \medmuskip -1mu
- \thickmuskip -1mu
- \setbox\scratchbox\hbox{$#1\mathsurround\zeropoint$}%
- \kern-\wd\scratchbox
- ${}#1{}\mathsurround\zeropoint$}%
- \expanded
- {\endgroup
- \let\noexpand\currentbinrel
- \ifdim\wd\scratchbox<\zeropoint
- \mathbin
- \else\ifdim\wd\scratchbox>\zeropoint
- \mathrel
- \else
- \relax
- \fi\fi}}
-
-\unexpanded\def\overset#1#2%
- {\preparebinrel{#2}%
- \currentbinrel{\mathop{\kern\zeropoint#2}\limits^{#1}}}
-
-\unexpanded\def\underset#1#2%
- {\preparebinrel{#2}%
- \currentbinrel{\mathop{\kern\zeropoint#2}\limits_{#1}}}
-
-%D \macros
-%D {boldsymbol}
-%D
-%D The math definition is inspired by amsmath.
-%D
-%D \startbuffer
-%D \definetypeface [boldmath] [mm] [boldmath] [latin-modern] [modern] [encoding=texnansi]
-%D
-%D $a \times b$ $a \boldsymbol{\times} b$
-%D \stopbuffer
-%D
-%D \typebuffer \start \getbuffer \stop
-
-\def\mathboldsymbol#1%
- {\preparebinrel{#1}%
- \currentbinrel{\mathchoice
- {\hbox{\switchtoformulabodyfont [boldmath]$\mathsurround\zeropoint#1$}}
- {\hbox{\switchtoformulabodyfont [boldmath]$\mathsurround\zeropoint#1$}}
- {\hbox{\switchtoformulabodyfont [boldmath,script]$\mathsurround\zeropoint#1$}}
- {\hbox{\switchtoformulabodyfont[boldmath,scriptscript]$\mathsurround\zeropoint#1$}}}}
-
-\def\boldsymbol
- {\mathortext\mathboldsymbol\bold}
-
-%D Some encoding hackery (for Mojca. who else):
-%D
-%D \starttyping
-%D \startmathcollection[eul:texnansi]
-%D \definemathsymbol [breve] [accent] [tf] ["15]
-%D \stopmathcollection
-%D \startmathcollection[eul:ec]
-%D \definemathsymbol [breve] [accent] [tf] ["08]
-%D \stopmathcollection
-%D
-%D $\breve e$
-%D \stoptyping
-
-\let\outerencoding\empty
-
-\def\checkoutermathencoding
- {\ifx\outerencoding\empty
- \ifx\outerencoding\s!default\else
- \edef\outerencoding{\currentencoding}%
- \fi
- \fi}
-
-\prependtoks
- \checkoutermathencoding
-\to \everymathematics
-
-%D More. (A temp hack, else no proper default fall back (like \type
-%D {\textmultiply}); todo: sync encoding.
-
-\def\dealwithmathtextencoding
- {\expanded{\everyhbox{\the\everyhbox\noexpand\fastenableencoding{\currentencoding}}}%
- \expanded{\everyvbox{\the\everyvbox\noexpand\fastenableencoding{\currentencoding}}}%
- \def\dealwithmathtextencoding{\let\characterencoding\nocharacterencoding}%
- \dealwithmathtextencoding}
-
-\appendtoks
- \dealwithmathtextencoding
-\to \everymathematics
-
-%D How negative such a symbol looks is demonstrated in:
-%D $\negative 10^{\negative 10^{\negative 10}}$.
-
-\setupformulas
- [\c!way=\@@nrway,
- \c!blockway=,
- \c!sectionnumber=\@@nrsectionnumber,
- \c!location=\v!right,
- \c!left=(,
- \c!right=),
- \c!numberstyle=,
- \c!numbercolor=,
- \c!numbercommand=,
- \c!spacebefore=\v!big,
- \c!spaceafter=\@@fmspacebefore,
- \c!grid=]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-not.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-not.mkii
deleted file mode 100644
index bee21342ea7..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/strc-not.mkii
+++ /dev/null
@@ -1,1470 +0,0 @@
-%D \module
-%D [ file=strc-not,
-%D version=2002.05.10, % 1997.09.15
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Note Handling, % Footnote Handling
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Structure Macros / Note Handling}
-
-%D Unfortunately we cannot force an even number of lines in
-%D a two column footnote placement.
-
-%D There are some (still) dutch core commands used in this
-%D file.
-
-\unprotect
-
-% \dochecknote in processnotes
-
-% splitskips setten
-
-%D Footnotes are can be characterized by three components:
-%D
-%D \startitemize[packed]
-%D \item a small number \footnote {a footnote number} or
-%D symbol {\setupfootnotes [conversion=set 2]\footnote
-%D {a footnote}}
-%D \item and a similar mark at the bottom of the page
-%D \item followed by some additional text
-%D \stopitemize
-%D
-%D Because footnotes are declared at the location of their
-%D reference they can be seen as a special kind of
-%D floating bodies. Their placement is postponed but has to be
-%D taken into account in the pagebreak calculations. This kind
-%D of calculations are forced by using \type{\insert}.
-
-%D \macros
-%D {setupnote,setupnotedefinition}
-%D
-%D We can influence footnote typesetting with the setup
-%D command:
-%D
-%D \showsetup{setupfootnotes} % ! !
-%D
-%D It's sort of a custom to precede footnotes by a horizontal
-%D rule and although fancy rules like
-%D
-%D \starttyping
-%D \hbox to 10em{\hskip-3em\dotfill}
-%D \stoptyping
-%D
-%D Are quite ligitimate, we default to a simple one 20\% of the
-%D text width.
-%D
-%D When \type{n} exceeds~1, footnotes are typeset in
-%D multi||columns, using the algoritm presented on page~397
-%D of \TEX book. Footnotes can be places on a per page basis
-%D or whereever suitable. When we set~\type{n} to~0, we get a
-%D rearanged paragraph, typeset by the algoritms on pages 398
-%D and~389. We definitely did not reinvent that wheel.
-
-\newif\ifendnotes \endnotesfalse
-\newif\ifbottomnotes \bottomnotestrue
-
-\chardef\clevernotes=\zerocount % 0=page 1=firstcolumn 2=lastcolumn
-
-%D The next definitions indicate that we can frame the footnote
-%D area. The footnotes themselves are treated as definitions.
-%D
-%D \showsetup{setupfootnotes}
-
-\let\currentnote\v!footnote
-
-\def\noteparameter #1{\csname\??vn \currentnote#1\endcsname}
-\def\notedefparameter #1{\csname\??vn\??vn\currentnote#1\endcsname}
-\def\footnoteparameter #1{\csname\??vn \v!footnote#1\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}
-\def\currentsaveins {\csname\??vn-\currentnote\endcsname}
-\def\localpostponednotes {\csname\??vn+\currentnote\endcsname}
-
-\def\backupnoteins #1{\@EA\backupinsertion\csname\??vn:#1\endcsname}
-\def\currentbackupnoteins{\@EA\backupinsertion\csname\??vn:\currentnote\endcsname}
-
-%D The numbers that accompany a footnote are generated using
-%D the standard \CONTEXT\ numbering mechanism, and thereby can
-%D be assigned on a per whatever sectioning basis.
-
-\ifx\noteinsertions\undefined \let\noteinsertions\empty \fi % permits reload
-
-\def\doprocessnotes#1#2% #1 may be { ... }
- {\def\currentnote{#2}#1}
-
-\def\doprocessnotescs#1#2% #1 == \cs that takes arg
- {\def\currentnote{#2}\@EA#1\csname\??vn:\currentnote\endcsname}
-
-\def\processnotes #1{\processcommacommand[\noteinsertions]{\doprocessnotes {#1}}}
-\def\processnotescs#1{\processcommacommand[\noteinsertions]{\doprocessnotescs#1}}
-
-\def\savenotecontent {\processnotescs\saveinsertionbox }
-\def\erasenotebackup {\processnotescs\eraseinsertionbackup}
-\def\savenotedata {\processnotescs\saveinsertiondata }
-\def\restorenotecontent{\processnotescs\restoreinsertionbox }
-\def\restorenotedata {\processnotescs\restoreinsertiondata}
-
-%D ... due to invisibility of inserts ... maybe save them twice
-%D and split new part ... todo ...
-
-\def\doenablenotes % brrr
- {\global\count\currentnoteins\plusthousand
- \global\skip \currentnoteins1\baselineskip\relax}
-
-\def\dodisablenotes
- {\global\count\currentnoteins\zerocount
- \global\skip \currentnoteins\zeropoint}
-
-\def\enablenotes {\processnotes\doenablenotes }
-\def\disablenotes{\processnotes\dodisablenotes}
-
-\def\dosavenotes
- {\global\setbox\currentsaveins\vbox
- {\ifvoid\currentsaveins\else\unvbox\currentsaveins\fi
- \box\currentnoteins}}
-
-\def\doflushsavednotes
- {\ifvoid\currentsaveins\else
- \insert\currentnoteins{\unvbox\currentsaveins}%
- \fi}
-
-\def\savenotes {\processnotes\dosavenotes }
-\def\flushsavednotes{\processnotes\doflushsavednotes}
-
-%D Both these parameters are coupled to the setup command we
-%D will implement in a moment. This means that, given a
-%D suitable symbol set, symbols can be used instead of numbers,
-%D by saying:
-%D
-%D \starttyping
-%D \setupfootnotes[conversion=set 2]
-%D \stoptyping
-
-% experiment: (compare scope=text and scope=page)
-%
-% \definenote[mynote][way=bytext,location=text,width=\leftmarginwidth,scope=page,rule=,before=,after=,factor=0]
-% \setuptexttexts[margin][\vbox to \textheight{\placenotes[mynote]\vfill}][]
-
-\def\definenote
- {\dodoubleempty\dodefinenote}
-
-% maybe we should inherit (todo)
-
-\def\@@defaultnotedefloc{\v!inleft}
-\def\@@defaultnotedefdis{\!!zeropoint}
-
-\def\dodefinenote[#1][#2]%
- {\def\currentnote{#1}%
- \ifundefined{\??vn:\currentnote}%
- \@EA\installinsertion \csname\??vn:\currentnote\endcsname\relax
- \@EA\installbackupinsertion\csname\??vn:\currentnote\endcsname\relax
-% \@EA\newbox\csname\??vn::\currentnote\endcsname % scratch box % needed ?
- \@EA\newbox\csname\??vn+\currentnote\endcsname % local box
- \@EA\newbox\csname\??vn-\currentnote\endcsname % local box
- \doglobal\addtocommalist{#1}\noteinsertions
- \fi
- \definedescription
- [\??vn\??vn\currentnote]
- [\c!location=\@@defaultnotedefloc,
- \c!distance=\@@defaultnotedefdis,
- \c!width=\v!fit,
- \c!headstyle=\noteparameter\c!style,
- \c!headcolor=\noteparameter\c!color,
- \c!before=,
- \c!after=]%
- \presetlocalframed
- [\??vn\currentnote]%
- \getparameters
- [\??vn\currentnote]
- [\c!location=\v!page,
- \c!way=\v!by\v!part,
- \c!sectionnumber=\v!no,
- \c!conversion=,
- \c!rule=\v!on,
- \c!before=\blank,
- \c!bodyfont=\v!small,
- \c!style=,
- \c!color=,
- \c!after=,
- \c!rulecolor=,
- \c!rulethickness=\linewidth,
- \c!frame=\v!off,
- \c!margindistance=.5em,
- \c!columndistance=1em,
- \c!distance=.125em,
- \c!align=\v!normal,
- \c!tolerance=\v!tolerant,
- \c!split=\v!tolerant,
- %\c!width=\makeupwidth,
- %\c!width=\ifdim\hsize<\makeupwidth\hsize\else\makeupwidth\fi,
- \c!width=\defaultnotewidth,
- \c!height=\textheight,
- \c!numbercommand=\high,
- \c!command=\noteparameter\c!numbercommand, % downward compatible
- \c!separator=\@@koseparator,
- \c!textcommand=\high,
- \c!textstyle=\tx,
- \c!textcolor=,
- \c!interaction=\v!yes,
- \c!factor=,
- \c!scope=, % \v!text \v!page
- \c!next=\autoinsertnextspace, % new, experimental with startnotes
- \c!n=1]%
- \definenumber
- [\currentnote]
- [\c!way=\noteparameter\c!way,
- \c!sectionnumber=\noteparameter\c!way,
- \c!conversion=\noteparameter\c!conversion]%
- \letvalue{\??vn\c!rule:\currentnote}\normalnoterule
- \unexpanded\setvalue{\currentnote }{\setnote[#1]}%
- \unexpanded\setvalue{\currentnote\v!text }{\setnotetext[#1]}%
- \unexpanded\setvalue{\e!start\currentnote}{\dodoubleempty\dostartcurrentnote[#1]}%
- \unexpanded\setvalue{\e!stop\currentnote }{\dostopcurrentnote}%
- \setupnote[\currentnote][#2]}
-
-\def\dostartcurrentnote[#1][#2]{\setnote[#1][#2]\bgroup\ignorespaces}
-\def\dostopcurrentnote {\removeunwantedspaces\egroup\noteparameter\c!next}
-
-\def\setupnotedefinition[#1]%
- {\setupdescriptions[\??vn\??vn#1]}
-
-\def\setupnote
- {\dodoubleempty\dosetupnote}
-
-\def\dosetupnote[#1][#2]%
- {\edef\currentnote{#1}%
- \ifsecondargument
- \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,
- \v!off=>\letvalue{\??vn\c!rule:\currentnote}\relax,
- \s!default=>\letvalue{\??vn\c!rule:\currentnote}\relax,
- \s!unknown=>\setvalue{\??vn\c!rule:\currentnote}{\noteparameter\c!rule}]%
- \processaction % todo
- [\noteparameter\c!split]
- [ \v!tolerant=>\notepenalty\zeropoint,
- \v!strict=>\notepenalty9999,
- \v!verystrict=>\notepenalty\maxdimen,
- \s!default=>\notepenalty\zeropoint,
- \s!unknown=>\notepenalty\commalistelement]%
- \fi
- \dochecknote}
-
-\def\dolocalsetupnotes#1#2%
- {\ifsecondargument
- \edef\noteinsertions{#1}%
- \processnotes{\setupnote[\currentnote][#2]}%
- \else\iffirstargument
- \doifassignmentelse{#1}
- {\processnotes{\setupnote[\currentnote][#1]}}
- {\edef\noteinsertions{#1}}%
- \fi\fi}
-
-% redefined:
-
-% so that it matches:
-
-% todo: make sure less calls, is quite some code
-
-\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 (**)
- \setnotedistance
- \count\currentnoteins\plusthousand
- \expanded{\doifcommonelse{\v!columns,\v!lastcolumn}{\noteparameter\c!location}}% **
- {\chardef\clevernotes\plustwo}
- {\expanded{\doifinsetelse{\v!firstcolumn}{\noteparameter\c!location}}% **
- {\chardef\clevernotes\plusone}%
- {\chardef\clevernotes\zerocount}}%
- \ifcase\clevernotes\relax
- % notes not in column areas
- \ifnum\noteparameter\c!n=\zerocount % no ifcase
- \settextnotes
- \scratchcounter\plusone
- \else
- \setcolumnnotes
- \scratchcounter\noteparameter\c!n\relax
- \divide\count\currentnoteins \scratchcounter
- \fi
- \global\endnotesfalse
- \expanded{\doifinsetelse{\v!page}{\noteparameter\c!location}}% **
- {\expanded{\doifinsetelse{\v!high}{\noteparameter\c!location}}% **
- {\global\bottomnotesfalse}
- {\global\bottomnotestrue}}
- {\global\endnotestrue
- \global\bottomnotestrue}% not: \postponenotes, else global
- \else
- % notes in column areas
- \ifnum\@@kln=\zerocount % no ifcase / brrr dependency on \??kl
- \scratchcounter\plusone
- \else
- \scratchcounter\footnoteparameter\c!n\relax % **
- \fi
- \global\endnotesfalse
- \global\bottomnotestrue
- \setclevernotes
- \fi
- \doifsomething{\noteparameter\c!factor}
- {\ifnum\noteparameter\c!factor<\zerocount\else
- \count\currentnoteins\noteparameter\c!factor
- \fi}%
- \ifnotelimit
- \dimen\currentnoteins\noteparameter\c!height
- \multiply\dimen\currentnoteins \scratchcounter
- \fi
- \ifendnotes
- \dimen\currentnoteins\maxdimen
- \count\currentnoteins\zerocount
- \skip \currentnoteins\zeropoint
- \fi}
-
-\def\checknotes
- {\processnotes\dochecknote}
-
-% Example of using factor:
-%
-% \definenote[mynote][way=bypage,location=text,width=\marginwidth,rule=,before=,factor=0]
-% \setuplayout[backspace=5cm,margin=3cm,margindistance=.5cm,width=middle]
-% \setuptexttexts[margin][\vbox to \textheight{\placenotes[mynote]\vfill}][]
-% \starttext
-% \dorecurse{10}{test \mynote{one one one one one one} \input zapf \mynote{one one one one one one} }
-% \stoptext
-
-%D The noterule can be a graphic and therefore calling this
-%D setup macro at every skipswitch is tricky (many many MP
-%D runs). Let's just reserve a few points, that probably match
-%D those of the stretch component.
-
-\def\placenoterule
- {\getvalue{\??vn\c!rule:\currentnote}}
-
-\def\normalnoterule
- {\ifvmode
- \color
- [\noteparameter\c!rulecolor]
- {\hrule
- \!!width .2\hsize
- \!!height\noteparameter\c!rulethickness
- \!!depth \zeropoint}%
- \kern\strutdepth
- \fi}
-
-%D The following switch can be used to disable limiting the
-%D height of the footnote area, something that is needed in
-%D multi column balancing. Use this switch with care.
-
-\newif\ifnotelimit \notelimittrue
-
-\def\setnotedistance
- {\setbox\scratchbox\vbox
- {\forgetall
- \noteparameter\c!before
- \placenoterule
- \noteparameter\c!after}%
- \global\skip\currentnoteins\ht\scratchbox
- \setbox\scratchbox\emptybox} % scratchbox can be in use
-
-\ifx\setnotehsize\undefined
-
- \def\setnotehsize{\hsize\noteparameter\c!width} % can be overloaded
-
-\fi
-
-\def\setclevernotes
- {\def\startpushnote {\bgroup % wellicht ooit kopuitlijnen
- \setupinmargin[\c!align=\v!left]%
- \startnotedef}%
- \def\stoppushnote {\stopnotedef
- \egroup}%
- \let\startpopnotes \donothing
- \let\stoppopnotes \donothing}
-
-\def\setcolumnnotes
- {\def\startpushnote {\setnotehsize % possibly overloaded
- \setrigidcolumnhsize\hsize{\noteparameter\c!columndistance}{\noteparameter\c!n}%
- \bgroup
- \setupinmargin[\c!align=\v!left]%
- \startnotedef}%
- \def\stoppushnote {\stopnotedef
- \egroup}%
- \def\startpopnotes {\bgroup
- \setnotehsize
- \setrigidcolumnhsize\hsize{\noteparameter\c!columndistance}{\noteparameter\c!n}%
- \setbox0\vbox\bgroup}%
- \def\stoppopnotes {\egroup
- \setbox0\vbox
- {\unvbox0\setbox0\lastbox
- \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
- \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
- \doreshapebox{\box\shapebox}{}{}{}% get rid of penalties etc
- \innerflushshapebox
- \convertvboxtohbox
- \egroup}}
-
-%D The formatting depends on the width of the table, so we
-%D have to set \type {n} to zero.
-%D
-%D \starttyping
-%D \startbuffer
-%D \bTABLE
-%D \bTR \bTD one \footnote{\dorecurse{10}{abcd }} \eTD \bTD two \eTD \eTR
-%D \bTR \bTD three fout five six seven eight nine \eTD \bTD ten \eTD \eTR
-%D \eTABLE
-%D \stopbuffer
-%D
-%D \startlocalfootnotes[n=0,location={text,none}]
-%D \placelegend[n=2]{\getbuffer}{\placelocalfootnotes}
-%D \stoplocalfootnotes
-%D \stoptyping
-
-%D \macros
-%D {footnote}
-%D
-%D A footnote can have a reference as optional argument and
-%D therefore its formal specification looks like:
-%D
-%D \showsetup{footnote}
-%D
-%D This command has one optional command: the reference. By
-%D saying \type{[-]} the number is omitted. The footnote
-%D command is not that sensitive to spacing, so it's quite
-%D legal to say:
-%D
-%D \startbuffer
-%D Users of \CONTEXT\ must keep both feet \footnote{Given they
-%D have two.} on the ground and not get confused \footnote{Or
-%D even crazy.} by all those obscure \footnote{But fortunately
-%D readable.} parameters.
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D When setting the \type{conversion} to \type{set 2} we get
-%D something like:
-%D
-%D \bgroup
-%D \startnarrower
-%D \setupfootnotes[conversion=set 1]
-%D \getbuffer
-%D \stopnarrower
-%D \egroup
-%D
-%D Typesetting footnotes is, at least for the moment, disabled
-%D when reshaping boxes.
-%D
-%D The additional macro \type {\footnotetext} and the
-%D associated \type {\note} macro were implemented at
-%D request of users on the mailing list and a suggestion by
-%D taco to split of the symbol placement. I decided to
-%D merge this functionality with the existing \type {\note}
-%D functionality.
-
-\newif\ifnotesymbol
-
-\unexpanded\def\setnote {\dotripleempty\dosetnote[1]}
-\unexpanded\def\setnotetext{\dotripleempty\dosetnote[0]}
-
-\def\dosetnote[#1][#2][#3]%
- {\removeunwantedspaces
- \def\currentnote{#2}%
- \dochecknote % sometimes needed for local notes
- \ifcase#1\relax
- \global\notesymbolfalse
- \else
- \global\notesymboltrue
- \fi
- \ifvisible % misty feature, make it obsolete
- \ifreshapingbox
- \@EAEAEA\gobbletwoarguments
- \else
- \@EAEAEA\dodonote
- \fi
- \else % todo: \iftrialtypesetting
- \@EA\gobbletwoarguments
- \fi{#3}}
-
-%D \macros
-%D {notesenabled}
-%D
-%D Before we come to typesetting a footnote, we first check
-%D if we have to typeset a number. When a \type{-} is passed
-%D instead of a reference, no number is typeset. We can
-%D temporary disable footnotes by saying
-%D
-%D \starttyping
-%D \notesenabledfalse
-%D \stoptyping
-%D
-%D which can be handy while for instance typesetting tables
-%D of contents. The pagewise footnote numbering is dedicated
-%D to Han The Thanh, who needed it first.
-
-\newif\ifnotesenabled \notesenabledtrue
-
-\appendtoks \notesenabledfalse \to \everymarking
-
-\newconditional\pagewisenotes % saves two hash entries
-
-\def\lastnotepage{1}
-
-\def\domovednote#1#2%
- {\ifconditional\pagewisenotes
- \doifreferencefoundelse{\s!fnt:t:\number\internalnotereference}
- {\let\savedrealreference\currentrealreference
- \doifreferencefoundelse{\s!fnt:f:\number\internalnotereference}
- {\ifnum\savedrealreference<\currentrealreference\relax\symbol[#1]\else
- \ifnum\savedrealreference>\currentrealreference\relax\symbol[#2]\fi\fi}
- \donothing}
- \donothing
- \fi}
-
-% maybe some day
-%
-% \newconditional\tracemovednotes
-% \def\domovednote#1#2%
-% {\iflocation
-% \doshowmovednote{#1}{#2}%
-% \else\ifconditional\tracemovednotes
-% \doshowtracednote{#1}{#2}%
-% \fi\fi}
-% \def\doshowmovednote#1#2%
-% {\doifreferencefoundelse{\s!fnt:t:\number\internalnotereference}
-% {\let\savedrealreference\currentrealreference
-% \doifreferencefoundelse{\s!fnt:f:\number\internalnotereference}
-% {\ifnum\savedrealreference<\currentrealreference\relax
-% \symbol[#1]%
-% \else\ifnum\savedrealreference>\currentrealreference\relax
-% \symbol[#2]%
-% \fi\fi}
-% \donothing}
-% \donothing}
-% \def\doshowtracednote#1#2%
-% {\doifreferencefoundelse{\s!fnt:t:\number\internalnotereference}
-% {\let\savedrealreference\currentrealreference
-% \doifreferencefoundelse{\s!fnt:f:\number\internalnotereference}
-% {\ifnum\savedrealreference<\currentrealreference\relax
-% \writestatus{NOTE}{forward note reference on real page \currentrealreference}%
-% \else\ifnum\savedrealreference>\currentrealreference\relax
-% \writestatus{NOTE}{backward note reference on real page \currentrealreference}%
-% \fi\fi}
-% \donothing}
-% \donothing}
-
-\def\dodonote
- {\ifnotesenabled
- \iftrialtypesetting
- \@EAEAEA\nododonote
- \else
- \@EAEAEA\dododonote
- \fi
- \else
- \@EA\gobbletwoarguments
- \fi}
-
-% \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:\number\internalnotereference}
- {\ifnum\currentrealreference>\lastnotepage\relax
- \globallet\lastnotepage\currentrealreference
- \resetnumber[\currentnote]%
- \fi}
- {}%
- \fi
- \incrementnumber[\currentnote]%
- \makesectionnumber[\currentnote]%
- \let\lastnotenumber\composedsectionnumber
- \dolastnotesymbol
- \decrementnumber[\currentnote]}}
-
-\def\dododonote#1%
- {\global\advance\internalnotereference\plusone
- \doifelse{\noteparameter\c!way}{\v!by\v!page}
- {\settrue\pagewisenotes}
- {\setfalse\pagewisenotes}%
- \doifelse{#1}{-}
- {\let\lastnotenumber\empty}
- {\ifconditional\pagewisenotes
- \doifreferencefoundelse{\s!fnt:t:\number\internalnotereference}
- {\ifnum\currentrealreference>\lastnotepage\relax
- \globallet\lastnotepage\currentrealreference
- \resetnumber[\currentnote]%
- \fi}
- {}%
- \fi
- \incrementnumber[\currentnote]%
- \makesectionnumber[\currentnote]%
- \rawreference\s!fnt{#1}\composedsectionnumber
- \let\lastnotenumber\composedsectionnumber}%
- \dostartnote}
-
-%D The main typesetting routine is more or less the same as the
-%D \PLAIN\ \TEX\ one, except that we only handle one type while
-%D \PLAIN\ also has something \type{\v...}. In most cases
-%D footnotes can be handled by a straight insert, but we do so
-%D by using an indirect call to the \type{\insert} primitive.
-
-\def\dostartlocalnoteinsert
- {\dochecknote
- \ifendnotes
- \global\setbox\localpostponednotes\vbox\bgroup
- \ifvoid\localpostponednotes\else\unvbox\localpostponednotes\fi
- \else
- \insert\currentnoteins\bgroup
- \fi}
-
-\let\startlocalnoteinsert\dostartlocalnoteinsert
-\let\stoplocalnoteinsert \egroup
-
-%D Making footnote numbers active is not always that logical,
-%D Making footnote numbers active is not always that logical,
-%D especially when we keep the reference and text at one page.
-%D On the other hand we need interactivity when we refer to
-%D previous notes or use end notes. Therefore we support
-%D interactive footnote numbers in two ways \footnote{This
-%D feature was implemented years after we were able to do so,
-%D mainly because endnotes had to be supported.} that is,
-%D automatically (vise versa) and by user supplied reference.
-
-\newcount\internalnotereference
-
-\let\startpushnote=\relax
-\let\stoppushnote =\relax
-
-\newsignal\notesignal
-\newcount \notepenalty
-
-\notepenalty=0 % needed in order to split in otrset
-
-\newconditional\processingnote
-
-\def\footnotereferencefrom
- {\rawreference\s!fnt{\s!fnt:f:\number\internalnotereference}{}}
-
-\def\footnotereferenceto
- {\global\advance\crossreferencenumber\minusone\relax % else problem, needs further testing
- \rawreference\s!fnt{\s!fnt:t:\number\internalnotereference}{}}
-
-\def\dostartnote% nog gobble als in pagebody
- {\pushsomestates
- \bgroup
- \settrue\processingnote
- %\restorecatcodes % to be tested first
- \iftypesettinglines % otherwise problems with \type <crlf> {xxx}
- \ignorelines % makes footnotes work in \startlines ... \stoplines
- \fi
- \ifnotesymbol
- \dolastnotesymbol
- \else
- \unskip\unskip
- \globallet\lastnotesymbol\dolastnotesymbol
- \fi
- \startlocalnoteinsert
- \doif{\noteparameter\c!scope}\v!page{\floatingpenalty\maxdimen}% experiment
- \penalty\notepenalty
- \forgetall
- \setnotebodyfont
- \redoconvertfont % to undo \undo calls in in headings etc
- \splittopskip\strutht % not actually needed here
- \splitmaxdepth\strutdp % not actually needed here
- \leftmargindistance\noteparameter\c!margindistance
- \rightmargindistance\leftmargindistance
- \ifnum\noteparameter\c!n=\zerocount % no ifcase new 31-07-99 ; always ?
- \doifnotinset{\noteparameter\c!width}{\v!fit,\v!broad}\setnotehsize
- \fi
- \startpushnote
- {\ifx\lastnotenumber\empty \else
- \preparefullnumber{\??vn\currentnote}\lastnotenumber\preparednumber
- \doifelse{\noteparameter\c!interaction}\v!no
- {\noteparameter\c!numbercommand
- {\preparednumber\domovednote\v!nextpage\v!previouspage}}%
- {\gotobox{\noteparameter\c!command % was \c!numbercommand, but compatible
- {\preparednumber\domovednote\v!nextpage\v!previouspage}}%
- [\s!fnt:f:\number\internalnotereference]}%
- \fi
- \doifelse{\noteparameter\c!interaction}\v!no
- {\ifconditional\pagewisenotes
- \footnotereferenceto
- \fi}%
- {\footnotereferenceto}}%
- \bgroup
- \postponenotes
- \aftergroup\dostopnote
- \begstrut
- \let\next}
-
-\def\dostopnote
- {\endstrut
- \stoppushnote
- \egroup
- \stoplocalnoteinsert
- \kern\notesignal\relax % \relax is needed to honor spaces
- \popsomestates}
-
-\def\dolastnotesymbol
- {\removeunwantedspaces
- \doifitalicelse\/\donothing % Charles IV \footnote{the fourth}
- \ifdim\lastkern=\notesignal
- \dodonotesymbol{\kern\noteparameter\c!distance}% gets the font right, hack !
- \fi
- \nobreak
- \doifelse{\noteparameter\c!interaction}\v!no
- {\dodonotesymbol{\lastnotenumber\domovednote\v!previouspage\v!nextpage}%
- \ifconditional\pagewisenotes
- \footnotereferencefrom
- \fi}
- {\gotobox
- {\dodonotesymbol{\lastnotenumber\domovednote\v!previouspage\v!nextpage}}%
- [\s!fnt:t:\number\internalnotereference]%
- \footnotereferencefrom}%
- \globallet\lastnotesymbol\relax}
-
-\let\lastnotesymbol\relax
-
-%D \macros
-%D {note}
-%D
-%D Refering to a note is accomplished by the rather short
-%D command:
-%D
-%D \showsetup{note}
-%D
-%D This command is implemented rather straightforward as:
-
-\def\notesymbol
- {\dodoubleempty\donotesymbol}
-
-% \def\donotesymbol[#1][#2]%
-% {\bgroup
-% \ifnotesenabled
-% \def\currentnote{#1}%
-% \ifsecondargument
-% \ifx\lastnotesymbol\relax
-% \unskip
-% \naarbox{\high{\tx\currenttextreference}}[#2]%
-% \else
-% \lastnotesymbol
-% \fi
-% \else
-% \lastnotesymbol
-% \fi
-% \fi
-% \egroup}
-
-\def\dodonotesymbol#1%
- {\noteparameter\c!textcommand{\doattributes{\??vn\currentnote}\c!textstyle\c!textcolor{#1}}}
-
-% \def\donotesymbol[#1][#2]%
-% {\bgroup
-% \ifnotesenabled
-% \def\currentnote{#1}%
-% \ifsecondargument
-% \ifx\lastnotesymbol\relax % bugged
-% \unskip
-% \gotobox{\dodonotesymbol\currenttextreference}[#2]%
-% \else
-% \lastnotesymbol
-% \fi
-% \else
-% \lastnotesymbol
-% \fi
-% \fi
-% \egroup}
-
-\def\donotesymbol[#1][#2]%
- {\bgroup
- \ifnotesenabled
- \def\currentnote{#1}%
- \ifsecondargument
- \unskip
- \gotobox{\dodonotesymbol\currenttextreference}[#2]%
- \else
- \lastnotesymbol
- \fi
- \fi
- \egroup}
-
-%D Normally footnotes are saved as inserts that are called upon
-%D as soon as the pagebody is constructed. The footnote
-%D insertion routine looks just like the \PLAIN\ \TEX\ one,
-%D except that we check for the end note state.
-
-\let\startpopnotes = \relax
-\let\stoppopnotes = \relax
-
-\def\placenoteinserts
- {\processnotes\doplacenoteinserts}
-
-% testcase for split bottom alignment see (a) below
-%
-% \dorecurse{6}{\input tufte\footnote{\input ward \input tufte \relax}}
-
-\def\doplacenoteinserts
- {%\ifvoid\currentnoteins \else % unsafe, strange
- \relax\ifdim\ht\currentnoteins>\zeropoint\relax
- \dochecknote
- \ifendnotes \else
- \noteparameter\c!before
- \placenoterule % alleen in ..mode
- \bgroup
- \setnotebodyfont
- \setbox0\hbox
- {\startpopnotes
- \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\relax
-\iftrialtypesetting\unvcopy\else\unvbox\fi\currentnoteins
-% \unvbox\currentnoteins
- \or
-\iftrialtypesetting\copy\else\box\fi\currentnoteins
-% \box\currentnoteins
- \obeydepth % (a) added , since split footnotes will not align properly
- \else
-\iftrialtypesetting\unvcopy\else\unvbox\fi\currentnoteins
-% \unvbox\currentnoteins
- \fi
- % this is too ugly actually
- \stoppopnotes}%
- \setbox2\hbox
- {\localframed
- [\??vn\currentnote]
- [\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
- \box0
- \fi}}%
- \setbox2\hbox{\lower\strutdepth\box2}%
- \dp2=\strutdepth % so we know that it has the note bodyfont depth
- \box2
- \egroup
- \noteparameter\c!after
- \fi
- \fi}
-
-%D Supporting end notes is surprisingly easy. Even better, we
-%D can combine this feature with solving the common \TEX\
-%D problem of disappearing inserts when they're called for in
-%D deeply nested boxes. The general case looks like:
-%D
-%D \starttyping
-%D \postponenotes
-%D \.box{whatever we want with footnotes}
-%D \flushnotes
-%D \stoptyping
-%D
-%D This alternative can be used in headings, captions, tables
-%D etc. The latter one sometimes calls for notes local to
-%D the table, which can be realized by saying
-%D
-%D \starttyping
-%D \setlocalfootnotes
-%D some kind of table with local footnotes
-%D \placelocalfootnotes
-%D \stoptyping
-%D
-%D Postponing is accomplished by simply redefining the (local)
-%D insert operation. A not too robust method uses the
-%D \type{\insert} primitive when possible. This method fails in
-%D situations where it's not entirely clear in what mode \TEX\
-%D is. Therefore the auto method can is to be overruled when
-%D needed.
-
-\newconditional\postponednote
-
-\def\autopostponenotes
- {\def\startlocalnoteinsert % not global
- {\ifinner
- %\message{[postponed note]}%
- \global\setbox\localpostponednotes\vbox\bgroup
- \global\settrue\postponednote
- \ifvoid\localpostponednotes\else\unvbox\localpostponednotes\fi
- \else
- %\message{[inserted note]}%
- \expandafter\dostartlocalnoteinsert
- \fi}}
-
-\def\postponenotes
- {\let\autopostponenotes\postponenotes
- \let\postponenotes\relax % prevent loops
- \def\startlocalnoteinsert % not global
- {%\message{[postponed note]}%
- \global\setbox\localpostponednotes\vbox\bgroup
- \global\settrue\postponednote
-% \unvbox\localpostponednotes}}
- \ifvoid\localpostponednotes\else\unvbox\localpostponednotes\fi}}
-
-\def\dodoflushnotes % per class, todo: handle endnotes here
- {\ifdim\ht\localpostponednotes>\zeropoint
- \bgroup
- \dochecknote
- \ifendnotes \else
- % not that accurate when multiple notes
- \ifdim\dimexpr\pagegoal-\pagetotal\relax<\ht\localpostponednotes
- \message{[moved note \currentnote]}%
- \fi
- \insert\currentnoteins\bgroup\unvbox\localpostponednotes\egroup
- \fi
- \egroup
- \fi}
-
-\def\doflushnotes % also called directly, \ifvoid is needed !
- {\ifconditional\processingnote \else \ifconditional\postponednote
- \let\localnoteinsert\normalnoteinsert % not global
- \processnotes\dodoflushnotes
- \global\setfalse\postponednote
- \fi \fi}
-
-\def\flushnotes
- {\ifconditional\processingnote \else \ifconditional\postponednote
- \ifinner \else \ifinpagebody \else
- %\ifvmode % less interference, but also less secure
- \doflushnotes
- %\fi
- \fi \fi
- \fi \fi}
-
-%D For old times sake:
-
-\def\flushfootnotes {\flushnotes}
-\def\doflushfootnotes{\doflushnotes}
-
-%D This is a nasty and new secondary footnote flusher. It
-%D can be hooked into \type {\everypar} like:
-%D
-%D \starttyping
-%D \appendtoks \synchronizenotes \to \everypar
-%D \stoptyping
-
-\def\dosynchronizenotes
- {\ifvoid\currentnoteins\else\insert\currentnoteins{\unvbox\currentnoteins}\fi}
-
-\def\synchronizenotes
- {\processnotes\dosynchronizenotes}
-
-%D There are several placement alternatives.
-
-\def\placenotesintext#1%
- {\ifdim\ht#1>\zeropoint
- \endgraf
- \ifvmode
- \whitespace
- \noteparameter\c!before
- \fi
- \snaptogrid\hbox
- {\setnotebodyfont
- \setbox0\hbox
- {\startpopnotes
- \unvbox#1\endgraf\relax
- \stoppopnotes}%
- \doif{\noteparameter\c!width}\v!fit % new, auto width
- {\setbox0\hbox % uggly but ok.
- {\beginofshapebox
- \unhbox0\setbox0=\lastbox\unvbox0
- \endofshapebox
- \reshapebox{\hbox{\unhbox\shapebox}}%
- \vbox{\flushshapebox}}}%
- \localframed
- [\??vn\currentnote]
- [ \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
- \box0
- \fi}}%
- \ifvmode
- \noteparameter\c!after
- \fi
- \fi}
-
-%D A stupid alternative is also provided:
-%D
-%D \starttyping
-%D \setupfootnotes[location={text,none}]
-%D \stoptyping
-
-\def\placenotesasnone#1% is grouped already
- {\ifdim\ht#1>\zeropoint
- \noteparameter\c!before
- \setnotebodyfont
- \startpopnotes % make sure that fake height is killed
- \unvbox#1\endgraf
- \stoppopnotes
- % weird
- \ifhmode
- \setbox0=\lastbox \ifvbox0 \unvbox0\else\box0\fi % enable columns
- \fi
- \noteparameter\c!after
- \fi}
-
-%D \macros
-%D {startlocalfootnotes,placelocalfootnotes}
-%D
-%D The next two macros can be used in for instance tables, as
-%D we'll demonstrate later on.
-%D
-%D \showsetup{startlocalfootnotes}
-%D \showsetup{placelocalfootnotes}
-
-\def\defaultnotewidth{\makeupwidth}
-
-% \def\collectlocalnotes
-% {\def\localnoteinsert##1% was \gdef, but never reset!
-% {%\message{[local note]}%
-% \global\setbox\localpostponednotes\vbox\bgroup
-% \ifvoid\localpostponednotes \else
-% \unvbox\localpostponednotes
-% \fi
-% \let\next}}
-
-\def\collectlocalnotes
- {\def\startlocalnoteinsert% was \gdef, but never reset!
- {%\message{[local note]}%
- \global\setbox\localpostponednotes\vbox\bgroup
- \ifvoid\localpostponednotes\else\unvbox\localpostponednotes\fi}}
-
-\def\startlocalnotes
- {\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]}%
- \savenumber[\currentnote]%
- \resetnumber[\currentnote]}%
- \collectlocalnotes}
-
-\def\stoplocalnotes
- {\processnotes{\restorenumber[\currentnote]}%
- \egroup
- \checknotes} % really needed, else wrong main settings
-
-\def\placelocalnotes
- {\dodoubleempty\doplacelocalnotes}
-
-\def\doplacelocalnotes[#1][#2]%
- {\bgroup
- \chardef\localnodemode\plusone % new
- \dolocalsetupnotes{#1}{#2}%
- \processnotes\dodoplacelocalnotes
- \egroup
- \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
-%D \startbuffer
-%D \startlocalnotes[width=.3\hsize,n=0]
-%D \placetable
-%D {Some Table}
-%D \placeontopofeachother
-%D {\starttable[|l|r|]
-%D \HL
-%D \VL Nota\footnote{Bene} \VL Bene\footnote{Nota} \VL\SR
-%D \VL Bene\footnote{Nota} \VL Nota\footnote{Bene} \VL\SR
-%D \HL
-%D \stoptable}
-%D {\placelocalnotes}
-%D \stoplocalnotes
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Because this table placement macro expect box content, and
-%D thanks to the grouping of the local footnotes, we don't need
-%D additional braces.
-%D
-%D \getbuffer
-
-%D \macros
-%D {placefootnotes}
-%D
-%D We still have no decent command for placing footnotes
-%D somewhere else than at the bottom of the page (for which no
-%D user action is needed). Footnotes (endnotes) can be
-%D placed by using
-%D
-%D \showsetup{placefootnotes}
-
-\def\placebottomnotes
- {\processnotes\dodoplacenotes}
-
-% \definecomplexorsimple\placenotes
-
-% \def\simpleplacenotes
-% {\processnotes\dodoplacenotes}
-
-% \def\complexplacenotes[#1]%
-% {\bgroup
-% \edef\noteinsertions{#1}%
-% \simpleplacenotes
-% \egroup}
-
-\def\placenotes
- {\dodoubleempty\doplacenotes}
-
-\def\doplacenotes[#1][#2]%
- {\bgroup
- \dolocalsetupnotes{#1}{#2}%
- \processnotes\dodoplacenotes
- \egroup}
-
-\def\dodoplacenotes
- {\dochecknote
- \ifendnotes
- \ifinpagebody \else \ifdim\ht\localpostponednotes>\zeropoint
- \expanded{\doifinsetelse{\v!none}{\noteparameter\c!location}}
- \placenotesasnone\placenotesintext\localpostponednotes
- \fi \fi
- \else \ifdim\ht\currentnoteins>\zeropoint
- \placenoteinserts
- \fi \fi}
-
-%D \macros
-%D {fakenotes}
-
-\def\fakenotes
- {\ifhmode\endgraf\fi\ifvmode
- \calculatetotalclevernoteheight
- \ifdim\totalnoteheight>\zeropoint \kern\totalnoteheight \fi
- \fi}
-
-\def\fakepagenotes
- {\ifhmode\endgraf\fi\ifvmode
- \calculatetotalpagenoteheight
- \ifdim\totalnoteheight>\zeropoint \kern\totalnoteheight \fi
- \fi}
-
-\newdimen\totalnoteheight
-
-\def\doaddtototalnoteheight#1%
- {\ifdim\ht#1>\zeropoint
- \advance\totalnoteheight\ht #1%
- \advance\totalnoteheight\skip#1%
- \fi}
-
-\def\docalculatetotalnoteheight
- {\ifcase\clevernotes % tricky here ! ! ! to be sorted out ! ! !
- \doaddtototalnoteheight\currentnoteins
- \else
- \doaddtototalnoteheight\currentbackupnoteins
- \fi}
-
-\def\docalculatetotalclevernoteheight
- {\ifcase\clevernotes \else % tricky here ! ! ! to be sorted out ! ! !
- \doaddtototalnoteheight\currentnoteins
- \fi}
-
-\def\docalculatetotalpagenoteheight
- {\doaddtototalnoteheight\currentnoteins}
-
-\def\calculatetotalnoteheight {\totalnoteheight\zeropoint\processnotes\docalculatetotalnoteheight}
-\def\calculatetotalclevernoteheight{\totalnoteheight\zeropoint\processnotes\docalculatetotalclevernoteheight}
-\def\calculatetotalpagenoteheight {\totalnoteheight\zeropoint\processnotes\docalculatetotalpagenoteheight}
-
-\newif\ifnotespresent
-
-\def\dochecknotepresence
- {\ifdim\ht\currentnoteins>\zeropoint
- \notespresenttrue
- \fi}
-
-\def\checknotepresence
- {\notespresentfalse
- \processnotes\dochecknotepresence}
-
-%D Now how can this mechanism be hooked into \CONTEXT\ without
-%D explictly postponing footnotes? The solution turned out to
-%D be rather simple:
-%D
-%D \starttyping
-%D \everypar {...\flushnotes...}
-%D \neverypar {...\postponenotes}
-%D \stoptyping
-%D
-%D and
-%D
-%D \starttyping
-%D \def\ejectinsert%
-%D {...
-%D \flushnotes
-%D ...}
-%D \stoptyping
-%D
-%D We can use \type{\neverypar} because in most commands
-%D sensitive to footnote gobbling we disable \type{\everypar}
-%D in favor for \type{\neverypar}. In fact, this footnote
-%D implementation is the first to use this scheme.
-
-%D When typesetting footnotes, we have to return to the
-%D footnote specific bodyfont size, which is in most cases derived
-%D from the global document bodyfont size. In the previous macros
-%D we already used a footnote specific font setting macro.
-
-\def\setnotebodyfont
- {\let\setnotebodyfont\relax
- \restoreglobalbodyfont
- \switchtobodyfont[\noteparameter\c!bodyfont]%
- \setuptolerance[\noteparameter\c!tolerance]%
- \setupalign[\noteparameter\c!align]}
-
-%D The footnote mechanism defaults to a traditional one
-%D column way of showing them. By default we precede them by
-%D a small line.
-
-\ifx\v!endnote\undefined \def\v!endnote{endnote} \fi
-
-\definenote [\v!footnote ]
-\definenote [\v!endnote ] [\c!location=\v!none] % else no break
-
-% \definenote
-% [mynote]
-% [way=bypage,
-% location={page,high},
-% factor=0,
-% width=\leftmarginwidth,
-% scope=page,
-% rule=,
-% before=,
-% after=]
-%
-% \setuptexttexts
-% [margin]
-% [\vbox to \textheight{\placenotes[mynote]\vfill}]
-% []
-
-%D Compatibility macros:
-
- \def\setupfootnotedefinition{\setupnotedefinition [\v!footnote]}
- \def\setupfootnotes {\setupnote [\v!footnote]}
-\unexpanded \def\footnote {\setnote [\v!footnote]}
-\unexpanded \def\footnotetext {\setnotetext [\v!footnote]}
- \def\note {\dodoubleempty\notesymbol [\v!footnote]} % alleen footnote
- \def\placefootnotes {\dodoubleempty\doplacefootnotes [\v!footnote]}
- \def\placelocalfootnotes {\dodoubleempty\doplacelocalfootnotes[\v!footnote]}
- \def\startlocalfootnotes {\startlocalnotes}
- \def\stoplocalfootnotes {\stoplocalnotes }
-
-\def\doplacefootnotes [#1][#2]%
- {\ifsecondargument\placenotes [#1][#2,\c!height=\textheight]\else\placenotes [#1]\fi}
-
-\def\doplacelocalfootnotes[#1][#2]%
- {\ifsecondargument\placelocalnotes[#1][#2,\c!height=\textheight]\else\placelocalnotes[#1]\fi}
-
-%D Backward compatibility command:
-
-\def\footins {\noteinsertion\currentnote}
-\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
-% {\setgvalue{note:t:#1}%
-% {\setxvalue{note:l:#1}{\getvalue{note:n:#1}}%
-% \footnote[note:a:#1:\getvalue{note:l:#1}]{#2}}%
-% \setgvalue{note:n:#1}%
-% {1}%
-% \getvalue{note:t:#1}}%
-
-% \def\mynote[#1]%
-% {\removeunwantedspaces
-% \scratchcounter\getvalue{note:n:#1}\relax
-% \edef\NoteNumber{\the\scratchcounter}%
-% \doglobal\incrementvalue{note:n:#1}\relax
-% \doifreferencefoundelse{note:a:#1:1}
-% {\edef\NotePageA{\number\currentrealreference}%
-% \doifreferencefoundelse{note:a:#1:\getvalue{note:n:#1}}
-% {\edef\NotePageB{\number\currentrealreference}%
-% \doifreferencefoundelse{note:a:#1:\NoteNumber}
-% {\ifnum\currentrealreference=\NotePageB\relax
-% \pagereference[note:a:#1:\getvalue{note:n:#1}]%
-% \note[note:a:#1:\getvalue{note:l:#1}]%
-% \else\ifnum\NotePageA=\NotePageB\relax
-% \pagereference[note:a:#1:\getvalue{note:n:#1}]%
-% \note[note:a:#1:\getvalue{note:l:#1}]%
-% \else
-% \getvalue{note:t:#1}%
-% \fi\fi}
-% {\ifnum\NotePageA=\NotePageB\relax
-% \pagereference[note:a:#1:\getvalue{note:n:#1}]%
-% \note[note:a:#1:\getvalue{note:l:#1}]%
-% \else
-% \getvalue{note:t:#1}%
-% \fi}}
-% {\pagereference[note:a:#1:\getvalue{note:n:#1}]%
-% \note[note:a:#1:\getvalue{note:l:#1}]}}
-% {\pagereference[note:a:#1:\getvalue{note:n:#1}]%
-% \note[note:a:#1:\getvalue{note:l:#1}]}}
-
-% \starttext
-
-% funny \myfootnote[funny]{funny} funny \mynote[funny] \page
-
-% funny \mynote[funny] funny \mynote[funny] funny \mynote[funny] \page
-% funny \mynote[funny] funny \mynote[funny] \page
-% funny \mynote[funny] funny \mynote[funny] funny \mynote[funny] \page
-
-% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-num.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-num.mkii
deleted file mode 100644
index 99fb687c865..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/strc-num.mkii
+++ /dev/null
@@ -1,151 +0,0 @@
-%D \module
-%D [ file=strc-num,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Numbering,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Structure Macros / Numbering}
-
-\unprotect
-
-% Commando's ten behoeve van nummeren:
-%
-% \definenumber[name]
-% \setupnumber[name][wijze=,blok=,tekst=,plaats=,conversie=,start=]
-% \setnumber[name]{value}
-% \resetnumber[name]
-% \incrementnumber[name]
-% \decrementnumber[name]
-% \convertednumber[name] % getnumber
-% \savenumber[name]
-% \restorenumber[name]
-% \convertednumber[name]
-% \rawnumber[name]
-
-% private (defined in core-des.tex)
-%
-% \nextnumber[name][tag][reference]
-% \currentnumber[name]
-
-\def\@@thenumber#1{\s!number\csname\s!number#1\c!number\endcsname}
-
-% this will be the new (public) one: \let\numberparameterprefix\@@thenumber
-
-\def\numberparameter#1#2{\csname\@@thenumber{#1}#2\endcsname} % sort of public
-
-\def\dosetupnumber[#1][#2]%
- {\@EA\let\@EA\savedstartnumber\csname\@@thenumber{#1}\c!start\endcsname
- \getparameters[\@@thenumber{#1}][\c!start=,#2]%
- \doifelsenothing{\numberparameter{#1}\c!start}
- {\letvalue{\@@thenumber{#1}\c!start}\savedstartnumber}
- {\setcounter{\@@thenumber{#1}}{\numberparameter{#1}\c!start}}}
-
-\def\setupnumber
- {\dodoubleargument\dosetupnumber}
-
-\def\definenumber
- {\dodoubleempty\dodefinenumber}
-
-\def\dodefinenumber[#1][#2]% ook overal class als localframed
- {\doifassignmentelse{#2}
- {\dododefinenumber[#1][#2]}
- {\doifelsenothing{#2} % can break on not yet defined macros in #2
- {\dododefinenumber[#1][#2]}
- {\setvalue{\s!number#1\c!number}{#2}}}}
-
-\def\dododefinenumber[#1][#2]%
- {\getparameters
- [\s!number#1]
- [\c!number=#1,
- \s!check=,
- \c!way=\@@nrway,
- \c!way\c!local=\numberparameter{#1}\c!way,
- \c!sectionnumber=\v!yes,
- \c!text=, % no longer used here, will go away
- \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%
- {\setcounter{\@@thenumber{#1}}{#2}}
-
-\def\resetnumber[#1]%
- {\setcounter{\@@thenumber{#1}}{0\numberparameter{#1}\c!start}}
-
-\def\savenumber[#1]%
- {\savecounter{\@@thenumber{#1}}}
-
-\def\restorenumber[#1]%
- {\restorecounter{\@@thenumber{#1}}}
-
-%D Bonus macro (we need to keep this one for downward
-%D compatibility reasons).
-
-\def\doreset[#1]%
- {\processcommalist[#1]\dodoreset}
-
-\def\dodoreset#1%
- {\getvalue{\s!reset#1}}%
-
-\def\reset
- {\dosingleargument\doreset}
-
-\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
- {\doif{\numberparameter{#1}\c!state}\v!start{\pluscounter{\@@thenumber{#1}}}}
- {\setcounter{\@@thenumber{#1}}{0\numberparameter{#1}\c!start}}}
-
-% \defineenumeration [test] [way=bypage,text=\lastchangedpage]
-%
-% \starttext \dorecurse{10}{\test \input tufte \par} \stoptext
-
-\def\decrementnumber[#1]%
- {\minuscounter{\@@thenumber{#1}}}
-
-\def\convertednumber[#1]%
- {\convertnumber
- {\numberparameter{#1}\c!conversion}
- {\countervalue{\@@thenumber{#1}}}}
-
-\def\rawnumber[#1]%
- {\countervalue{\@@thenumber{#1}}}
-
-\def\accumulatednumber[#1]%
- {\getvalue{\@@thenumber{#1}\c!n}}
-
-\let\getnumber\convertednumber
-
-\def\doifdefinednumber #1{\doifdefined {\csname\s!number#1\c!number\endcsname}}
-\def\doifundefinednumber #1{\doifundefined {\csname\s!number#1\c!number\endcsname}}
-\def\doifdefinednumberelse#1{\doifdefinedelse{\csname\s!number#1\c!number\endcsname}}
-
-\ifx\checknumber\undefined \def\checknumber[#1]{} \fi
-
-% ook de pag nummers hierheen halen ivm \@@nrwijze
-
-\def\setupnumbering
- {\dodoubleempty\getparameters[\??nr]}
-
-\setupnumbering
- [\c!way=\v!by\v!chapter,
- \c!blockway=,
- \c!sectionnumber=\v!yes,
- \c!state=\v!start]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-pag.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-pag.mkii
deleted file mode 100644
index 40e69b849b3..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/strc-pag.mkii
+++ /dev/null
@@ -1,534 +0,0 @@
-%D \module
-%D [ file=strc-num, % moved here from main-001
-%D version=1997.03.31,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Numbering,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Structure Macros / Numbering}
-
-% todo: {}{}{} ipv ...--...-...-...--... in pag ref
-
-\unprotect
-
-% \gotonextsubpage : voor de pagebody
-% \subpaginanummer : alleen in de voet/kopregels
-% \aantalsubpaginas : alleen in de voet/kopregels
-
-% \firstsubpage : eerste \realpageno, voor interne doeleinden
-% \prevsubpage : vorige \realpageno, voor interne doeleinden
-% \nextsubpage : volgende \realpageno, voor interne doeleinden
-% \lastsubpage : laatste \realpageno, voor interne doeleinden
-% \nofsubpages : laatste subpage (in berekeningen)
-% \subpageno : huidige subpage (in berekeningen)
-
-\newif\ifsubpaging
-\newif\ifshowingsubpage
-
-\definenumber
- [\s!subpage]
-
-\setupnumber
- [\s!subpage]
- [\c!way=\@@snway]
-
-% hard to sync
-%
-% \def\resetsubpagenumber
-% {\resetnumber[\s!subpage]%
-% \global\subpageno=\rawnumber[\s!subpage]}
-%
-% better sync
-
-\newif\ifresettingsubpagenumber
-
-\def\resetsubpagenumber
- {\global\resettingsubpagenumbertrue}
-
-% so far for sync, see \gotonext...
-
-\def\dosetupsubpagenumber[#1]%
- {\doifelse{#1}\v!reset
- \resetsubpagenumber % \resetnumber[\s!subpage]
- {\getparameters[\??sn][#1]%
- \processaction
- [\@@snstate]
- [ \v!stop=>\ifsubpaging
- \resetsubpagenumber % new, see sync
- \else
- \subpagingfalse
- \fi
- \showingsubpagefalse,
- \v!start=>\subpagingtrue
- \showingsubpagetrue,
- \v!none=>\subpagingtrue
- \showingsubpagefalse]}}
-
-\def\numberofsubpages
- {\ifshowingsubpage\nofsubpages\else0\fi}
-
-\def\subpagenumber
- {\ifshowingsubpage\the\subpageno\else0\fi}
-
-\def\setupsubpagenumber
- {\dosingleargument\dosetupsubpagenumber}
-
-\def\newnofsubpages{0}
-\def\nofsubpages {0}
-\def\firstsubpage {1}
-\def\prevsubpage {1}
-\def\nextsubpage {1}
-\def\lastsubpage {1}
-
-\def\nextpage {1}
-\def\prevpage {1}
-
-\definetwopasslist\s!subpage
-
-\def\savenofsubpages
- {\ifsubpaging
- \showmessage\m!layouts6{\newnofsubpages,\the\subpageno}%
- \immediatesavetwopassdata{\s!subpage}{\newnofsubpages}{\the\subpageno}%
- \fi}
-
-\def\setsubpagenumbers
- {\iftwopassdatafound
- \bgroup
- \xdef \nofsubpages {\twopassdata}%
- \xdef \firstsubpage {\realfolio}%
- \advance\realpageno \nofsubpages
- \advance\realpageno \minusone
- \xdef \lastsubpage {\realfolio}%
- \egroup
- \else
- \xdef \nofsubpages{0}%
- \fi}
-
-\def\gotonextsubpage % overlapt behoorlijk met realpage macro
- {\global\let\checksubpages\relax
- \ifresettingsubpagenumber
- \resetnumber[\s!subpage]%
- \global\resettingsubpagenumberfalse
- \fi
- \ifsubpaging
- \xdef\oldsubpage{\the\subpageno}%
- \incrementnumber[\s!subpage]%
- \global\subpageno\rawnumber[\s!subpage]\relax
- \ifnum\subpageno=\plusone
- \gettwopassdata\s!subpage
- \setsubpagenumbers
- \ifnum\oldsubpage>\zerocount
- \showmessage\m!layouts6{\newnofsubpages,\oldsubpage}%
- \savetwopassdata{\s!subpage}{\newnofsubpages}{\oldsubpage}%
- \fi
- \doglobal\increment\newnofsubpages\relax
- \fi
- \setglobalsystemreference\rt!page\v!firstsubpage\firstsubpage
- \setglobalsystemreference\rt!page\v!lastsubpage\lastsubpage
- \bgroup
- \ifnum\realpageno=\firstsubpage\relax
- \global\let\prevsubpage\firstsubpage
- \setglobalsystemreference\rt!page\v!subbackward\lastsubpage
- \else
- \xdef\prevsubpage{\realfolio}%
- \doglobal\decrement\prevsubpage
- \setglobalsystemreference\rt!page\v!subbackward\prevsubpage
- \fi
- \setglobalsystemreference\rt!page\v!previoussubpage\prevsubpage
- \ifnum\realpageno=\lastsubpage\relax
- \global\let\nextsubpage\lastsubpage
- \setglobalsystemreference\rt!page\v!subforward\firstsubpage
- \else
- \xdef\nextsubpage{\realfolio}%
- \doglobal\increment\nextsubpage
- \setglobalsystemreference\rt!page\v!subforward\nextsubpage
- \fi
- \setglobalsystemreference\rt!page\v!nextsubpage\nextsubpage
- \egroup
- \fi}
-
-\def\checksubpages
- {\getfromtwopassdata\s!subpage1%
- \setsubpagenumbers
- \global\let\checksubpages\relax}
-
-% Omdat \gotonextrealpage gebruik maakt van de hulpfile,
-% moet het initialiseren van \realpageno plaatsvinden in
-% een later stadium, namelijk zodra referenties worden
-% gebruikt (anders gaat het mis op nog niet gedefinieerde
-% lijstcommando's e.d.). De eerst aanroep vindt dan ook
-% plaats vlak nadat de hulpfile voor de eerste maal is
-% ingelezen.
-
-\countdef\realpageno = 0 \realpageno = 1
-\countdef\userpageno = 1 \userpageno = 1
-\countdef\subpageno = 2 \subpageno = 0 % !!
-\countdef\arrangeno = 3 \arrangeno = 0 % !!
-
-\let\pageno\userpageno
-
-% we don't want conflicts when \pageno is used by other
-% packages, like CWEB, so we redefine \pageno
-
-\newcount\pageno \pageno = 1
-
-\def\setuserpageno#1%
- {\global\userpageno#1\relax
- \global\pageno\userpageno}
-
-\def\realfolio {\the\realpageno}
-\def\folio {\the\userpageno}
-\def\firstpage {1}
-\def\lastpage {1}
-\def\currentpage {\the\realpageno}
-\def\lastpagenumber{1}
-
-\def\gotonextrealpage
- {\global\advance\realpageno \plusone\relax
- \ifnum\realpageno>\lastpage
- \xdef\lastpage{\realfolio}%
- \fi
- \setglobalsystemreference\rt!page\v!firstpage \firstpage
- \setglobalsystemreference\rt!page\v!lastpage\lastpage
- \bgroup
- \ifnum\realpageno>\plusone
- \advance\realpageno \minusone
- \xdef\prevpage{\realfolio}%
- \setglobalsystemreference\rt!page\v!backward\prevpage
- \else
- \global\let\prevpage\firstpage
- \setglobalsystemreference\rt!page\v!backward\lastpage
- \fi
- \setglobalsystemreference\rt!page\v!previouspage\prevpage
- \egroup
- \bgroup
- \ifnum\realpageno<\lastpage\relax
- \advance\realpageno \plusone
- \xdef\nextpage{\realfolio}%
- \setglobalsystemreference\rt!page\v!page\nextpage
- \setglobalsystemreference\rt!page\v!forward\nextpage
- \bgroup
- \xdef\nextnextpage{\realfolio}%
- \ifodd\realpageno
- \setglobalsystemreference\rt!page\v!nextoddpage\nextnextpage
- \else
- \setglobalsystemreference\rt!page\v!nextevenpage\nextnextpage
- \fi
- \advance\realpageno \plusone
- \xdef\nextnextpage{\realfolio}%
- \ifnum\realpageno>\lastpage\relax
- %\ifodd\realpageno
- % \setglobalsystemreference\rt!page\v!nextoddpage\lastpage
- %\else
- % \setglobalsystemreference\rt!page\v!nextevenpage\lastpage
- %\fi
- \else
- \ifodd\realpageno
- \setglobalsystemreference\rt!page\v!nextoddpage\nextnextpage
- \else
- \setglobalsystemreference\rt!page\v!nextevenpage\nextnextpage
- \fi
- \fi
- \egroup
- \else
- \global\let\nextpage\lastpage
- \setglobalsystemreference\rt!page\v!page\firstpage
- \setglobalsystemreference\rt!page\v!forward\firstpage
- \setglobalsystemreference\rt!page\v!nextoddpage\lastpage
- \setglobalsystemreference\rt!page\v!nextevenpage\lastpage
- \fi
- \setglobalsystemreference\rt!page\v!nextpage\realfolio
- \egroup}
-
-\def\checkrealpage
- {\global\realpageno\zerocount
- \gotonextrealpage
- \global\let\checkrealpage\relax}
-
-\def\savenofpages
- {\bgroup
- \advance\realpageno \minusone
- \savecurrentvalue\lastpage\realfolio
- \advance\userpageno \minusone
- \savecurrentvalue\lastpagenumber\folio
- \egroup}
-
-\def\totalnumberofpages
- {\lastpage}
-
-\def\setpagecounters
- {\setuserpageno{\rawnumber[\s!page]}%
- \doifelse\@@snstate\v!stop
- {\global\subpageno\zerocount}
- {\global\subpageno\rawnumber[\s!subpage]}\relax}
-
-% Standaard is \count0 in Plain TeX de paginateller. Omwille
-% van de afhandeling van lokaal nummeren, definieren we
-% echter een eigen nummer.
-
-\definenumber
- [\s!page]
- [\c!conversion=\@@nmconversion,
- \c!way=\@@nmway,
- \c!state=\@@nmstate,
- \c!start=1]
-
-% \@@pnstatus global, but \@@nmstatus local and only start/stop
-
-\global\let\@@pnstate\@@pnstate % brrr
-
-\def\pushpagestate{\globalpushmacro\@@pnstate}
-\def\poppagestate {\globalpopmacro \@@pnstate}
-
-\def\dosetuppagenumber[#1]%
- {\getparameters[\??pn][\c!number=,#1]%
- \global\let\@@pnstate\@@pnstate
- \doifsomething\@@pnnumber
- {\setnumber[\s!page]{\@@pnnumber}%
- \setuserpageno{\rawnumber[\s!page]}}%
- % this makes starting at an even page possible
- \ifnum\realpageno=1 \ifodd\pageno \else
- \global\shiftedrealpagenotrue
- \fi \fi}
-
-\def\setuppagenumber
- {\dosingleargument\dosetuppagenumber}
-
-\def\dodecrementpagenumber
- {\decrementnumber[\s!page]\setuserpageno{\rawnumber[\s!page]}}
-
-\def\doincrementpagenumber
- {\incrementnumber[\s!page]\setuserpageno{\rawnumber[\s!page]}}
-
-\def\dosynchronizepagenumber
- {\global\let\@@pnstate\v!start}
-
-\def\decrementpagenumber{\getvalue{\??pn-\@@pnstate}}
-\def\incrementpagenumber{\getvalue{\??pn+\@@pnstate}}
-
-\letvalue{\??pn-\v!start}\dodecrementpagenumber
-\letvalue{\??pn-\v!none }\dodecrementpagenumber
-\letvalue{\??pn-\v!empty}\dodecrementpagenumber
-
-\letvalue{\??pn+\v!start}\doincrementpagenumber
-\letvalue{\??pn+\v!none }\doincrementpagenumber
-\setvalue{\??pn+\v!empty}{\doincrementpagenumber\dosynchronizepagenumber}
-\letvalue{\??pn+\v!keep }\dosynchronizepagenumber
-
-% so far
-
-\def\checkpagecounter
- {\checknumber[\s!page]}
-
-% \getpagestatus
-% \ifrightpage als odd/singlesided
-
-\newif\ifrightpage \rightpagetrue
-
-\newcounter \nofpagesets
-
-\definetwopasslist\s!page
-
-\def\dopagesetreference
- {\doglobal\increment\nofpagesets\relax
- \lazysavetwopassdata{\s!page}{\nofpagesets}{\noexpand\realfolio}}
-
-\def\getpagestatus % hierboven gebruiken
- {\ifdoublesided
- \gettwopassdata\s!page
- \iftwopassdatafound \else
- \let\twopassdata\realpageno
- \fi
- \ifodd\twopassdata
- \global\rightpagetrue
- \else
- \global\rightpagefalse
- \fi
- \dopagesetreference
- \else
- \global\rightpagetrue
- \fi}
-
-\def\@@nmin {} % kan vervallen (upward compatibility)
-\def\@@nmlocation {} % mag {plaats, in} zijn
-
-\newcounter\@@pagenumberlocation
-
-\def\do@@plaatspaginanummer#1%
- {\ifnum#1=\@@pagenumberlocation\@@plaatspaginanummer\fi}
-
-\def\dodosetpagenumberlocation#1% tricky because of ...texts
- {\increment\@@pagenumberlocation
- \ifx\@@nmlocation\empty\else
- \def\dododosetpagenumberlocation##1%
- {\donetrue
- \setevalue{\??tk#1##1}{\noexpand\do@@plaatspaginanummer{\@@pagenumberlocation}}}%
- \donefalse
- \ExpandFirstAfter\processallactionsinset
- [\@@nmlocation]
- [ \v!middle=>\dododosetpagenumberlocation{\v!text\c!middletext},
- \v!left=>\dododosetpagenumberlocation{\v!text\c!lefttext},
- \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\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
- \dododosetpagenumberlocation{\v!text\c!middletext}% default
- \fi
- \fi}
-
-\def\dosetpagenumberlocation
- {\ExpandBothAfter\doifinsetelse\v!header{\@@nmlocation,\@@nmin}
- {\dodosetpagenumberlocation\v!header}
- {\dodosetpagenumberlocation\v!footer }}
-
-\def\dosetuppagenumbering[#1]%
- {\getparameters[\??nm][#1]%
- \preparepageprefix\??nm
- \singlesidedfalse
- \doublesidedfalse
- \ExpandFirstAfter\processallactionsinset
- [\@@nmalternative]
- [ \v!singlesided=>\singlesidedtrue,
- \v!doublesided=>\doublesidedtrue]%
- \ifx\trackingmarginnotestrue\undefined\else
- \ifdoublesided
- \trackingmarginnotestrue
- \else
- \trackingmarginnotesfalse
- \fi
- \fi
- \dosetpagenumberlocation
- \recalculatebackgrounds
- \recalculatelogos}
-
-\def\setuppagenumbering
- {\dosingleempty\dosetuppagenumbering}
-
-\let\stelnummeringin\setuppagenumbering
-
-% wrong
-%
-% \def\preparepageprefix#1%
-% {\def\dopreparepageprefix##1%
-% {\doifvalue{#1##1\c!number}{\v!yes}
-% {\setvalue{#1\getvalue{\??by##1}\c!nummer}{\v!yes}}}%
-% \processcommacommand[\@@kolijst]\dopreparepageprefix}
-%
-% more wrong
-%
-% \def\preparepageprefix#1%
-% {\def\dopreparepageprefix##1%
-% {\doifelsevalue{#1##1\v!number}{\v!yes} % v
-% {\setvalue{#1\getvalue{\??by##1}\v!nummer}{\v!yes}} % v
-% {\setvalue{#1\getvalue{\??by##1}\v!nummer}{\v!no}}}% % v
-% \processcommacommand[\@@kolijst]\dopreparepageprefix}
-%
-% best, beware, chapter (yes) can be followed by title (no)
-
-\def\preparepageprefix#1%
- {\def\dopreparepageprefix##1%
- {\ifcsname\??by##1\endcsname\letvalue{#1\csname\??by##1\endcsname\v!number}\v!no\fi}% %v
- \rawprocesscommalist[\@@kolist]\dopreparepageprefix
- \def\dopreparepageprefix##1%
- {\doifvalue{#1##1\v!number}\v!yes %v
- {\ifcsname\??by##1\endcsname\letvalue{#1\csname\??by##1\endcsname\v!number}\v!yes\fi}}%
- \rawprocesscommalist[\@@kolist]\dopreparepageprefix}
-
-\def\dodopageprefix#1% uti seperator --
- {\let\normaluchar\uchar \let\uchar\relax % ugly but needed
- \doifelsevalue{\pageprefixtype#1\v!number}\v!yes % \v! and no \c!
- {\edef\preprefix {\@@filterheadpart[\postprefix]}%
- \edef\postprefix{\@@filtertailpart[\postprefix]}%
- \let\uchar\normaluchar % ugly but needed
- \ifx\preprefix\empty \else
- \ifx\preprefix\zerocountervalue\else
- \preprefix\@@nmnumberseparator
- \fi
- \fi}
- {\edef\postprefix{\@@filtertailpart[\postprefix]}%
- \let\uchar\normaluchar}} % ugly but needed
-
-\def\dopageprefix#1%
- {\dodopageprefix{#1}%
- \donexttracklevel{#1}}
-
-\chardef\pageprefixmode\plusone
-
-\def\pageprefix#1[#2]%
- {\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
-%D oldstyle numbers are about as high as strutheight. Rather
-%D interesting that it went unnoticed for so long.
-
-\unexpanded\def\@@plaatspaginanummer % called in empty tests
- {\doif{\@@nmstate\@@pnstate}{\v!start\v!start}
- {{\doif\@@nmstrut\v!yes\strut
- \@@nmcommand{\doattributes\??nm\c!style\c!color{\completepagenumber}}}}}
-
-\def\userfolio {\convertednumber[\s!page]} % naast realfolio
-\def\pagenumber{\userfolio}
-
-\def\pageprefixes
- {\let\donexttrackcommando\dopageprefixes
- \donexttrackcommando\firstsection}
-
-\def\dopageprefixes#1%
- {\doifvalue{\??nm#1\v!number}\v!yes % v
- {\ifnum\countervalue{\??se#1}>\zerocount
- \getvalue{#1\c!number}\@@nmnumberseparator
- \fi}%
- \doifsomething\@@nmtext{\@@nmtext\@@nmnumberseparator}% strange option, what was the purpose of text?
- \donexttracklevel{#1}}
-
-\unexpanded\def\completepagenumber
- {\doif{\@@nmstate\@@pnstate}{\v!start\v!start}
- {\@@nmleft\labeltexts\v!pagenumber{\pageprefixes\pagenumber}\@@nmright}}
-
-\unexpanded\def\placepagenumber
- {\doif{\@@nmstate\@@pnstate}{\v!start\v!start}
- {\labeltexts\v!pagenumber{\pagenumber}}}
-
-% Nog een variant; wat is een goeie naam?
-
-% \unexpanded\def\placexxpagenumber
-% {\@@plaatspaginanummer}
-
-% \def\translatednumber[#1::#2::#3]{#3}
-
-\def\translatednumber{\@@filterpagepart}
-
-\unexpanded\def\referencepagenumber[#1]%
- {\doifelsenothing{#1}{?}%
- {\preparepageprefix\??rf
- \pageprefix\??rf[#1]\translatednumber[#1]}}
-
-\setuppagenumber
- [\c!state=\v!start,
- \c!number=1]
-
-\setupsubpagenumber
- [\c!way=\v!by\v!part,
- \c!state=\v!stop]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-ref.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-ref.mkii
deleted file mode 100644
index 8a135eb043e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/strc-ref.mkii
+++ /dev/null
@@ -1,3025 +0,0 @@
-%D \module
-%D [ file=strc-ref,
-%D version=1998.01.15,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Cross Referencing,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% we will merge mkii code back in here
-
-\writestatus{loading}{ConTeXt Structure Macros / Cross Referencing}
-
-% todo : unknown/illegal reference no arg
-% todo : +n pages check on 'samepage' (contrastcolor)
-
-% Makes more sense to build action data first, especially now
-% openaction etc are supported.
-%
-% \definespecial\doexecuteactionchain w h
-% \definespecial\dosetgotolocation
-% \definespecial\dosetexecuteJScode
-% ...
-%
-% complication: what when direct? Two calls!
-
-% I considered to change / simplify
-%
-% rt!page -> \definereference
-% rt!list -> \definereference
-% rt!exec -> \definereference
-%
-% but for the moment will not do so, if only because
-% the current implementation permits us to determine
-% the page state and is also more efficient
-
-% the code is rather fuzzy (and will be redone some day); this is
-% due to the chaining (collect secondary and then hook that into
-% the primary etc
-
-\unprotect
-
-%D This module deals with referencing. In \CONTEXT\ referencing
-%D is one of the core features, although at a first glance
-%D probably nobody will notice. This is good, because
-%D referencing should be as hidden as possible.
-%D
-%D In paper documents, referencing comes down to cross
-%D referencing, but in their interactive counterparts, is also
-%D involves navigation. Many features implemented here are
-%D therefore closely related to navigation.
-%D
-%D Many \CONTEXT\ commands can optionally be fed with a
-%D reference. Such a reference, when called upon, returns the
-%D number of a figure, table, chapter etc, a piece of text, or
-%D a pagenumber.
-%D
-%D There are three ways of defining a reference:
-%D
-%D \starttyping
-%D \pagereference[here]
-%D \textreference[here]{some text}
-%D \stoptyping
-%D
-%D the third alternative combines them in:
-%D
-%D \starttyping
-%D \reference[here]{some text}
-%D \stoptyping
-
-\def\textreference {\dosingleargument\dotextreference}
-\def\pagereference {\dosingleargument\dopagereference}
-\def\reference {\dosingleargument\doreference }
-
-%D These are implemented in a low level form as:
-%D
-%D \starttyping
-%D \def\dotextreference[#1]{\rawtextreference\s!txt{#1}} % #2
-%D \def\dopagereference[#1]{\rawpagereference\s!pag{#1}}
-%D \def\doreference [#1]{\rawreference \s!ref{#1}} % #2
-%D \stoptyping
-%D
-%D or without expansion problems:
-
-\def\dotextreference[#1]#2%
- {\bgroup
- \def\asciia{#1}%
- \defconvertexpanded\asciib\@@rfexpansion{#2}%
- \@EA\rawtextreference\@EA\s!txt\@EA\asciia\@EA{\asciib}%
- \egroup}
-
-\def\dopagereference[#1]%
- {\rawpagereference\s!pag{#1}}
-
-\def\doreference[#1]#2%
- {\bgroup
- \def\asciia{#1}%
- \defconvertexpanded\asciib\@@rfexpansion{#2}%
- \@EA\rawreference\@EA\s!ref\@EA\asciia\@EA{\asciib}%
- \egroup}
-
-%D Actually there is not much difference between a text and a
-%D full reference, but it's the concept that counts. The low
-%D level implementation is:
-
-\def\rawreference#1#2#3%
- {\bgroup
- \the\everyreference
- \makesectionformat
- \writereference{#2}
- {\sectionformat\sectionseparator\sectionseparator\noexpand\pagenumber}%
- {\noexpand\realfolio}%
- {#3}%
- \egroup}
-
-\def\rawpagereference#1#2%
- {\bgroup
- \the\everyreference
- \makesectionformat
- \writereference{#2}
- {\sectionformat\sectionseparator\sectionseparator\noexpand\pagenumber}%
- {\noexpand\realfolio}%
- {}%
- \egroup}
-
-\def\rawtextreference#1#2#3%
- {\bgroup
- \the\everyreference
- \writereference{#2}
- {}%
- {\noexpand\realfolio}%
- {#3}%
- \egroup}
-
-%D The last reference is saved in a macro named \type
-%D {\lastreference} (indeed). To keep track of the order of
-%D references, later we will see for what purpose, we maintain
-%D a counter.
-
-\newcount\crossreferencenumber \crossreferencenumber\plusone
-
-\let\lastreference\empty
-
-\def\writereference#1#2#3#4%
- {\ifreferencing
- \edef\!!stringa{#1}%
- \ifx\!!stringa\empty \else
- \def\dowritereference##1%
- {\xdef\lastreference{##1}%
- \@EA\dodowritereference\lastreference\empty\empty\end{#2}{#3}{#4}}%
- \rawprocesscommalist[\!!stringa]\dowritereference
- \fi
- \fi}
-
-%D Beware: \type {#2} gobbles space in references so that
-%D \typ {a nice ref} becomes \typ {anice ref}.
-
-\def\dodowritereference#1#2#3\end#4#5#6%
- {\bgroup
- \global\advance\crossreferencenumber \plusone\relax
- \if#1-\if#2:%
- \let\referenceprefix\empty
- \xdef\lastreference{#3}%
- \else
- % \xdef\lastreference{#1#2#3}% here we loose the space
- \fi\else
- % \xdef\lastreference{#1#2#3}% here we loose the space
- \fi
- \ifx\lastreference\empty \else
- \doiffirstreferenceoccurance\lastreference
- {\thisisdestination{\referenceprefix\lastreference}}%
- \referenceinfo>\lastreference
- \expanded{\writeutilitycommand{\noexpand\mainreference{\referenceprefix}{\lastreference}{#4}{#5}{#6}}}%
- \fi
- \egroup}
-
-%D We will implement \type {\doiffirstreferenceoccurance}
-%D later on.
-
-%D These macros depend on three other ones,
-%D \type {\makesectionformat}, that generated \type
-%D {\sectionformat}, \type {\pagenumber}. The not yet used
-%D argument \type{#1} is a tag that specifies the type of
-%D reference.
-
-%D \macros
-%D {everyreference}
-%D
-%D For rather tricky purposes, one can assign sanitizing
-%D macros to \type{\everyreference}.
-
-\newevery \everyreference \relax
-
-%D This is really needed, since for instance Polish has a
-%D different alphabet and needs accented entries in registers.
-
-\appendtoks
- \cleanupfeatures
-\to \everyreference
-
-%D Why do we have to write down references? \TEX, and therefore
-%D \CONTEXT\ is a batch processing system. During the
-%D typesetting process, pages are shipped out, which means that
-%D especially forward references are not yet known when the
-%D page is typeset. That's why we always need a second (and
-%D sometimes even a third) pass to get the cross references
-%D right. The same goes for lists and other pagenumber
-%D dependant data.
-%D
-%D Therefore, during a pass, \CONTEXT\ writes the references to
-%D a the utility file. The next macro does the job and
-%D generates entries like: (for mkii)
-%D
-%D \starttyping
-%D \mainreference{prefix}{reference}{page}{realpage}{text}
-%D \stoptyping
-%D
-%D We did not yet discuss prefixing. Especially in interactive
-%D documents, it's not always easy to keep track of duplicate
-%D references. The prefix mechanism, which we will describe
-%D later on, solves this problem. By (automatically) adding a
-%D prefix one keeps references local, but the global ones in
-%D view. To enable this feature, we explictly split the prefix
-%D from the reference.
-%D
-%D A former implementation used \type{\removesubstring} to get
-%D rid of the don't||use||a||prefix signal (\type{-:}), but the
-%D next one proved to be more than twice as fast.
-
-\let\referenceprefix=\empty
-\let\lastreference =\empty
-
-%D When (during a second pass over the document) references are
-%D loaded, they are saved in a macro, one for each reference.
-%D In practice this comes to giving \type {\mainreference} a
-%D appropriate meaning and loading the utility file.
-
-%D For a long time the only way to access an external file was
-%D to use the file prefix (\type {somefile::}. However, when
-%D you split up a document, redefining the references may be
-%D such a pain, that another approach is feasible. By setting
-%D the \type {autofile} variable to \type {yes} or \type
-%D {page}, you can access the reference directly. The latter
-%D case nills the prefix method, thereby saving some memory.
-%D
-%D \starttabulate[||||]
-%D \NC filename::tag \NC page(filename::pnum) \NC tag \NC\NR
-%D \NC $\star$ \NC \NC \NC\NR
-%D \NC $\star$ \NC $\star$ \NC $\star$ \NC\NR
-%D \NC \NC $\star$ \NC \NC\NR
-%D \stoptabulate
-
-\chardef\autocrossfilereferences=0
-
-\def\setreferences% some day, filename will be stored in ref record
- {\the\everyreference % we're grouped anyway
- \def\mainreference##1##2##3##4##5% can be made faster by indirect calls
- {\ifcsname\r!cross\fileprefix##1##2\endcsname
- \ifcase0##4\else
- \showmessage\m!references2{[##1][##2],##4 (\currentutilityfilename)}%
- \fi
- \else
- \ifcase\autocrossfilereferences
- \setglobalcrossreference{##1##2}{##3}{##4}{##5}%
- \or
- \setglobalcrossreference{##1##2}{##3}{##4}{##5}%
- \ifcsname\r!cross##1##2\endcsname
- \showmessage\m!references2{[##1][##2],##4 (auto \currentutilityfilename)}%
- \else
- \expanded{\definereference[##1##2][\fileprefix##1##2]}%
- \fi
- \or
- \ifcsname\r!cross##1##2\endcsname
- \showmessage\m!references2{[##1][##2],##4 (auto \currentutilityfilename)}%
- \else
- \expanded{\definereference[##1##2][\noexpand\v!page(\fileprefix##4)]}%
- \fi
- \fi
- \fi}}
-
-\def\resetreferences
- {\let\mainreference\gobblefivearguments}
-
-\resetreferences
-
-%D Here we see another kind of prefix surface: \type
-%D {\fileprefix}. This prefix enables us to use references from
-%D different files in one document. This is no really useful in
-%D paper documents, but many interactive ones cannot do
-%D without.
-
-\let\fileprefix=\empty
-
-%D Loading references is done using the normal utility file
-%D handling macros. The \type{\hbox} trick prevents spaces
-%D creeping in (references are set globally anyway).
-
-\newtoks\everycheckreferences
-
-%D When we load references, the file name is stored in a
-%D list.
-
-\let\loadedreferences\empty
-
-%D We only load references ones.
-
-\newconditional\jobreferencesloaded
-
-%D This token list is expanded after the references are loaded.
-%D This hook can be used to initialize mechanisms that depend
-%D on the reference mechsnism. An example can be found in the
-%D field module.
-
-\def\checkreferences
- {\bgroup
- \let\fileprefix\empty
- \global\let\checkreferences\relax
- \usereferences[\jobname]%
- \checkrealpage
- \egroup
- \the\everycheckreferences}
-
-\def\usereferences[#1]%
- {\startnointerference
- \checkreferences
- \doifparentfileelse{#1}
- {\ifconditional\jobreferencesloaded\else
- \doutilities{references}{#1}\empty\relax\relax
- \global\settrue\jobreferencesloaded
- \fi}
- {\ExpandBothAfter\doifnotinset{#1}{\loadedreferences}
- {\doutilities{references}{#1}\empty\relax\relax
- \ifx\fileprefix\empty\else
- \doglobal\addtocommalist{#1}\loadedreferences
- \fi}}
- \stopnointerference}
-
-%D As mentioned we will also use the cross reference mechanism
-%D for navigational purposes. The main reason for this is that
-%D we want to treat both categories alike:
-%D
-%D \starttyping
-%D \goto{go back}[PreviousJump]
-%D \goto{colofon}[colofon page]
-%D \stoptyping
-%D
-%D Here \type{PreviousJump} is handled by the viewer, while the
-%D \type{colofon page} reference is, apart from hyperlinking, a
-%D rather normal reference.
-%D
-%D We already saw that cross refences are written to and read
-%D from a file. The pure navigational ones don't need to be
-%D written to file, but both for fast processing and
-%D transparant integration, they are saved internally as a sort
-%D of reference. We can easily distinguish such system
-%D references from real cross reference ones by their tag:
-
-\chardef\rt!cross=0 % even means possible page reference
-\chardef\rt!done =1
-\chardef\rt!page =2 % and is used in \checkrealreferencepage
-\chardef\rt!exec =3
-\chardef\rt!list =4 % to determine the page state
-
-%D We also use the odd/even characteristic to determine the
-%D page state.
-
-%D Here the \type{\rt!exec} tags a viewer specific navigational
-%D reference, while for instance \type{\rt!page} gives fast
-%D access to for instance the previous or next page. The
-%D counter serves a purpose to be explained later. We use a
-%D token register to prevent expansion of the text component,
-%D which can contain all kind of \TEX\ commands.
-
-\newcount\crossreferenceorder
-
-% these are used often so we sped them up
-
-\def\setlocalcrossreference#1#2#3#4%
- {\scratchtoks{#4}%
- \@EA\edef\csname\r!cross\fileprefix#1\endcsname
- {\rt!cross{#2}{#3}{\the\scratchtoks}{0}}}
-
-\def\setglobalcrossreference#1#2#3#4%
- {\scratchtoks{#4}%
- \global\advance\crossreferenceorder \plusone
- \@EA\xdef\csname\r!cross\fileprefix#1\endcsname
- {\rt!cross{#2}{#3}{\the\scratchtoks}{\the\crossreferenceorder}}}
-
-\def\setlocalsystemreference#1#2#3%
- {\@EA\edef\csname\r!cross\fileprefix#2\endcsname{#1{#3}}}
-
-\def\setglobalsystemreference#1#2#3%
- {\@EA\xdef\csname\r!cross\fileprefix#2\endcsname{#1{#3}}}
-
-\def\copycrossreference#1#2#3% file from to / slow
- {\bgroup
- \doifelse{#1}{}
- {\let\fileprefix\empty}
- {\def\fileprefix{#1::}}%
- \def\rt!cross##1##2##3##4%
- {\setxvalue{\r!cross\fileprefix#3}%
- {\noexpand\rt!cross{##1}{##2}{##3}{##4}}}%
- \getvalue{\r!cross\fileprefix#2}%
- \egroup}
-
-%D References from other files are defined globally without
-%D ordering data. The first definition, the one without
-%D \type{#1}, is used as a signal that references are defined.
-
-\def\setoutercrossreference#1#2#3#4%
- {\toks0={#4}%
- \@EA\xdef\csname\r!cross\fileprefix \endcsname{\rt!cross{}{}{1}{0}}%
- \@EA\xdef\csname\r!cross\fileprefix#1\endcsname{\rt!cross{#2}{#3}{\the\toks0}{0}}}
-
-%D In practice accessing a reference comes down to:
-%D
-%D \startitemize[packed]
-%D \item checking the validity
-%D \item determining the type
-%D \item filtering the content
-%D \stopitemize
-%D
-%D We'll deal with the last two steps first. References are
-%D saved in the general format:
-%D
-%D \starttyping
-%D {\referenceclass{realpage}{page}{text}}
-%D {\referenceclass{type}{data}}
-%D \stoptyping
-%D
-%D When we filter the content, next macros are set when we
-%D meet a normal cross reference:
-
-\let\currentrealreference =\empty
-\let\currentpagereference =\empty
-\let\currenttextreference =\empty
-\let\currentsubtextreference =\empty
-\let\currentsubsubtextreference=\empty
-
-%D System references only have one component:
-
-\let\currentdatareference=\empty
-
-%D Because internally a reference comes in two disguises, one
-%D with four arguments and one with only two, we need a two
-%D step filter.
-
-\def\getreferenceelements#1% only one level expansion permitted!
- {\@EA\@EA\@EA\dogetreferenceelements\csname\r!cross\referenceprefix#1\endcsname\empty\empty\empty\empty}
-
-%D In the following step, the \type{\ifx#1} test is needed
-%D because we can access this macro directly, and therefore
-%D \type{#1} can be an undefined reference (in fact, this hack
-%D was needed for the line numbering mechanism).
-%D
-%D We already introduced a few counters. Here we see why we
-%D need those. The discrepancy between the cross reference
-%D definition order (determined by the utility file) and the
-%D moment the reference is defined in the text, is a measure
-%D for it's forward character. This enables references like
-%D {\em as we will see later on}.
-
-\chardef\currentreferencetype=0
-
-\newif\ifforwardreference
-
-\newif\ifrealreferencepage
-
-\def\docheckrealreferencepage#1%
- {\doifnumberelse{#1}
- {\ifnum#1=\realpageno
- \realreferencepagetrue
- \else
- \realreferencepagefalse
- \fi}
- {\realreferencepagefalse}}
-
-\def\currentfolioreference{0}
-
-\let\currentlocationreference\empty
-
-\def\dogetreferenceelements#1#2#3#4#5%
- {\chardef\currentreferencetype=\ifx#1\relax0\else#1\fi\relax
- \ifnum\currentreferencetype<\plustwo
- \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}
-
-\ifx\referencepagenumber\undefined
-
- \def\referencepagenumber[#1]{?}
-
-\fi
-
-%D Text references can contain more than one entry and
-%D therefore we check for
-%D
-%D \starttyping
-%D {entry}
-%D \stoptyping
-%D
-%D or
-%D
-%D \starttyping
-%D {{entry}{entry}{entry}}
-%D \stoptyping
-%D
-%D and split accordingly.
-
-\def\settextreferences
- {\futurelet\next\dosettextreferences}
-
-\def\dosettextreferences
- {\ifx\next\bgroup
- \expandafter\dotriplegroupempty\expandafter\dodosettextreferences
- \else
- \expandafter\donosettextreferences
- \fi}
-
-\def\donosettextreferences#1\end
- {\def\currenttextreference{#1}%
- \let\currentsubtextreference\empty
- \let\currentsubsubtextreference\empty}
-
-\def\dodosettextreferences#1#2#3#4\end
- {\def\currenttextreference{#1}%
- \def\currentsubtextreference{#2}%
- \def\currentsubsubtextreference{#3}}
-
-%D When inside this testing macro we can savely use:
-
-\def\doifforwardreferenceelse#1#2%
- {\ifforwardreference#1\else#2\fi}
-
-%D Duplicate references are reported while loading the utility
-%D file. To prevent problems with document viewers cq.
-%D preprocessors, one can enable a (bit time consuming) check.
-
-\newif\ifcheckduplicatereferences
-
-%D The next rather dirty trick is needed to preserve the
-%D meaning of the original cross reference. In fact,
-%D \type{\rt!cross} is toggled to \type{\rt!done}.
-
-\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 % no let !
- {\csname\r!cross\referenceprefix#1\endcsname}%
- \egroup}
-
-\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
- \fi}
-
-\def\doiffirstreferenceoccurance
- {\ifcheckduplicatereferences
- \@EA\checkfirstreferenceoccurance
- \else
- \@EA\secondoftwoarguments
- \fi}
-
-%D We still have to test for the existence of a reference, but
-%D before we come to that, we first look into the way a
-%D reference can be accessed. It will be no surprise that
-%D references can come in several forms.
-%D
-%D Cross references appear as numbers (figure~1.1, chapter~2)
-%D or pagenumbers (page~2, page 3--2), and are called with
-%D \type{\in} and \type{\at}. In interactive documents we also
-%D have \type{\goto}, \type{\button} and alike. These are more
-%D versatile and look like:
-%D
-%D \starttyping
-%D \goto[reference]
-%D \goto[outer reference::]
-%D \goto[outer reference::inner reference]
-%D \goto[operation(argument)]
-%D \goto[operation(action{argument,argument})]
-%D \goto[action]
-%D \goto[action{argument}]
-%D \stoptyping
-%D
-%D The first one is a normal reference, the second and third
-%D are references to a file or \URL. The brace delimited
-%D references for instance refer to a \JAVASCRIPT. The last
-%D example shows that we can pass arguments to the actions.
-%D
-%D When we split off the components of such a reference, the
-%D results are available in:
-%D
-%D \starttyping
-%D \currentreferencespecial
-%D \currentreferenceoperation
-%D \currentreferencearguments
-%D \currentinnerreference
-%D \currentouterreference
-%D \currentfullreference
-%D \stoptyping
-%D
-%D Splitting a reference is done by:
-%D
-%D \starttyping
-%D \splitofffullreference {reference}
-%D \splitoffreference {reference}
-%D \stoptyping
-%D
-%D The second alternative can be used in a second stage
-%D splitoff and only handles \type{::}.
-
-\newif\ifreferencefound
-
-\let\currentfullreference \empty
-\let\currentreferencespecial \empty
-\let\currentreferenceoperation\empty
-\let\currentreferencearguments\empty
-\let\currentouterreference \empty
-\let\currentinnerreference \empty
-
-\def\setreferencevariables#1#2#3#4#5%
- {\def\currentreferencespecial {#1}%
- \def\currentreferenceoperation{#2}%
- \def\currentreferencearguments{#3}%
- \def\currentouterreference {#4}%
- \def\currentinnerreference {#5}}
-
-\def\splitofffullreference#1%
- {\edef\currentfullreference{#1}%
- \@EA\dosplitofffullreference\currentfullreference\empty(\relax)\empty\end}
-
-\def\dosplitofffullreference#1(#2#3)#4#5\end
- {\ifx#2)%
- \let\currentreferenceoperation\empty
- \let\currentreferencearguments\empty
- \let\currentinnerreference \empty
- \dodosplitofffullreferenceA#1::::\empty\end
- \currentouterreference\currentreferencespecial
- \else\ifx#2\relax
- \let\currentreferencespecial \empty
- \let\currentreferenceoperation\empty
- \let\currentreferencearguments\empty
- \dodosplitofffullreferenceA#1::::\empty\end
- \currentouterreference\currentinnerreference
- \else
- \dosplitoffreferenceoperation#2#3{}\end
- \let\currentinnerreference\empty
- \dodosplitofffullreferenceB#1::::\empty\end
- \currentouterreference\currentreferencespecial
- \fi\fi}
-
-\def\dosplitoffreferenceoperation#1#%
- {\def\currentreferenceoperation{#1}%
- \dodosplitoffreferenceoperation}
-
-\def\dodosplitoffreferenceoperation#1#2\end
- {\def\currentreferencearguments{#1}}
-
-\def\dodosplitofffullreferenceA#1::#2::#3#4\end#5#6%
- {\if#3:%
- \dosetfullreferenceA#5#1{}\edef#6{#2}%
- \else
- \dosetfullreferenceA#6#1{}\let#5\empty
- \fi}
-
-\def\dosetfullreferenceA#1#2#%
- {\edef#1{#2}%
- \def\currentreferencearguments}
-
-\def\dodosplitofffullreferenceB#1::#2::#3#4\end#5#6%
- {\if#3:%
- \edef#5{#1}\edef#6{#2}%
- \else
- \let#5\empty\edef#6{#1}%
- \fi}
-
-\def\splitoffreference#1%
- {\expandafter\dodosplitofffullreferenceB#1::::\empty\end
- \currentouterreference\currentinnerreference}
-
-%D Although the previous split macros have a multistep
-%D character, there performance is quite reasonable.
-%D
-%D For debugging purposes we provide a showcase macro:
-
-\long\def\dodoshowcurrentreference#1\from#2\with#3%
- {\defconvertedcommand\ascii{#2}%
- \edef\currentreferenceshow{\currentreferenceshow/#1/\ascii/#3/}}
-
-\long\def\doshowcurrentreference#1%
- {\edef\currentreferenceshow{/\ifreferencefound+\else-\fi/#1}%
- \dodoshowcurrentreference ful\from\currentfullreference \with#1%
- \dodoshowcurrentreference spe\from\currentreferencespecial \with#1%
- \dodoshowcurrentreference ope\from\currentreferenceoperation\with#1%
- \dodoshowcurrentreference arg\from\currentreferencearguments\with#1%
- \dodoshowcurrentreference out\from\currentouterreference \with#1%
- \dodoshowcurrentreference inn\from\currentinnerreference \with#1}
-
-\def\showcurrentreference%
- {\bgroup\tttf\doshowcurrentreference\par\currentreferenceshow\egroup}
-
-%D We use this visualizer to demonstrate the way references are
-%D split.
-%D
-%D \hbox{\splitofffullreference{rr}\showcurrentreference}
-%D \hbox{\splitofffullreference{pp{rr}}\showcurrentreference}
-%D \hbox{\splitofffullreference{pp(qq)}\showcurrentreference}
-%D \hbox{\splitofffullreference{pp(qq{aa,bb})}\showcurrentreference}
-%D \hbox{\splitofffullreference{ff::}\showcurrentreference}
-%D \hbox{\splitofffullreference{ff::rr}\showcurrentreference}
-%D \hbox{\splitofffullreference{ff::pp()}\showcurrentreference}
-%D \hbox{\splitofffullreference{ff::pp(qq)}\showcurrentreference}
-%D \hbox{\splitofffullreference{ff::pp(qq{aa})}\showcurrentreference}
-
-%D Now we've come to the promissed testing step. As we can
-%D see, this macro does bit more than testing: it also resolves
-%D the reference. This means that whenever we test for the
-%D existance of a reference at an outer level, we have all the
-%D relevant properties of that reference avaliable inside the
-%D true branche~(\type{#2}).
-%D
-%D The prefix has to do with localizing references. When a
-%D prefix is set, looking for a reference comes to looking for
-%D the prefixed one, and when not found, looking for the non
-%D prefixed one. Consider for instance the prefix set to
-%D \type{sidetrack}.
-%D
-%D \starttyping
-%D \pagereference[important]
-%D \pagereference[unimportant]
-%D \setupreferencing[prefix=sidetrack]
-%D \pagereference[important]
-%D \stoptyping
-%D
-%D results in saving (writing) the references
-%D
-%D \starttyping
-%D ...{}{important}
-%D ...{}{unimportant}
-%D ...{sidetrack}{important}...
-%D \stoptyping
-%D
-%D Now when we call for \type{unimportant}, we will indeed get
-%D the pagenumber associated to this reference. But when we
-%D call for \type{important}, while the prefix is still set, we
-%D will get the pagenumber bound to the prefixed one.
-%D
-%D {\em Some day, when processing time and memory are no longer
-%D performance factors, we will introduce multi||level
-%D prefixes.}
-%D
-%D Before we start analyzing, I introduce a general
-%D definition macro. Consider:
-%D
-%D \starttyping
-%D \goto{do}[JS(My_Script{"test",123}),titlepage]
-%D \stoptyping
-%D
-%D This can also be achieved by:
-%D
-%D \starttyping
-%D \definereference[startup][JS(My_Script{"test",123}),titlepage]
-%D \goto{do}[REF(startup)]
-%D \stoptyping
-%D
-%D Now is this is a handy feature or not?
-%D
-%D \showsetup{definereference}
-%D
-%D We can trace references by setting the next switch to
-%D true.
-
-\newif\iftracereferences
-
-\let\tracereferences\tracereferencestrue
-
-\def\specialREFidentifier{REF}
-
-\def\dodefinereference[#1][#2]%
- {\ifsecondargument
- \doifelsenothing{#2}
- {\resetreference[#1]}%
- {\@EA\gdef\csname\specialREFidentifier#1\endcsname{#2}}%
- \else\iffirstargument
- \resetreference[#1]%
- \fi\fi}
-
-\def\definereference%
- {\dodoubleempty\dodefinereference}
-
-\def\resetreference[#1]%
- {\global\letbeundefined{\specialREFidentifier#1}}
-
-\newcount\nofexpandedreferences
-
-\def\dodoexpandreferences#1REF(#2#3)#4\relax
- {\ifx#2\relax
- \ifcsname\specialREFidentifier#1\endcsname
- \edef\expandedreference{\csname\specialREFidentifier#1\endcsname,}%
- \else
- \global\advance\nofexpandedreferences \plusone
- \@EA\xdef\csname REF::\number\nofexpandedreferences\endcsname{#1}%
- \fi
- \else
- \ifcsname\specialREFidentifier#2#3\endcsname
- \edef\expandedreference{\csname\specialREFidentifier#2#3\endcsname,}%
- \else
- % not set
- \fi
- \fi}
-
-\def\doexpandreferences#1,%
- {\if]#1\else
- \let\expandedreference\empty
- \dodoexpandreferences#1REF(\relax)\relax
- \@EAEAEA\doexpandreferences\@EA\expandedreference
- \fi}
-
-\def\expandreferences#1%
- {\global\nofexpandedreferences\zerocount
- \doexpandreferences#1,],}
-
-\def\dodoifreferencefoundelse#1%
- {\@EA\splitofffullreference\@EA{#1}%
- \ifx\currentreferencespecial\empty
- \ifx\currentouterreference\empty
- \docheckinnerreference
- \ifreferencefound \else
- \checkglobalfilereferences
- \fi
- \else
- \docheckouterreference
- \fi
- \ifreferencefound
- \ifx\currentreferencearguments\empty
- \getreferenceelements\currentfullreference
- \else
- \getreferenceelements\currentinnerreference
- \fi
- \fi
- \else
- \docheckspecialreference
- \fi
- \iftracereferences
- \doshowcurrentreference\space
- \writestatus\m!references\currentreferenceshow
- \fi}
-
-%D Although this can be considered a hack, we provide the
-%D option to locate unknown references in other (loaded) files.
-%D This can be dangerous, since there can be conflicting
-%D definitions.
-
-\newconditional\autoglobalfilereferences
-
-\def\checkglobalfilereferences% sloooow
- {\ifconditional\autoglobalfilereferences
-% \processcommacommand[\loadedreferences]\docheckglobalfilereference
- \rawprocesscommalist[\loadedreferences]\docheckglobalfilereference
- \fi}
-
-\def\docheckglobalfilereference#1%
- {\ifcsname\r!cross#1::\currentinnerreference\endcsname
- \def\currentouterreference{#1}%
- \edef\currentfullreference%
- {\currentouterreference::\currentinnerreference}%
- \global\referencefoundtrue
- \quitcommalist
- \fi}
-
-%D For most situations, we could use:
-%D
-%D \starttyping
-%D \let\doifreferencefoundelse=\dodoifreferencefoundelse
-%D \stoptyping
-%D
-%D But when we also want to support chained references, we need
-%D some more. Such a chained reference is defined as:
-%D
-%D \starttyping
-%D \goto{somewhere}[JS(somescript),nextpage,JS(anotherscript)]
-%D \stoptyping
-%D
-%D Actually supporting chains is up to the special driver. Here
-%D we only provide the hooks.
-
-%D \macros
-%D {ifenablereferencechains}
-%D
-%D First we provide a switch to turn this mechanism off:
-
-\newif\ifenablereferencechains \enablereferencechainstrue
-
-%D We don't use the general commalist processing macros,
-%D because we don't want to pay a speed penalty.
-
-\newif\ifsecondaryreference
-\newcount\nofsecondaryreferences
-
-% Aanpassen: eerst alle refs scannen en componenten opslaan in
-% lijst, dan de chain doorlopen. Momenteel mag alleen laatste
-% laatste undefined zijn, eigenlijk moet dat overal kunnen met
-% 'geen' zonder melding. Is wel trager. Dus niet.
-
-\def\doifreferencefoundelse#1#2#3% REF \cs / never more than one group (else \aftergroup usage problems)
- {\checkreferences
- % first we collect the secondary ones
- \bgroup
- \the\everyreference
- \let\referenceprefix\empty
- \expandreferences{#1}%
- \egroup
- \doresetgotowhereever
- \global\nofsecondaryreferences \zerocount
- \ifcase\nofexpandedreferences\relax % #1 can be number -)
- % no ref
- \or
- % one ref
- \or
- % two refs
- \ifenablereferencechains \iflocation
- \global\secondaryreferencetrue
- \xdef\secondaryreference{\csname REF::2\endcsname}%
- % test: \global\letcscsname\secondaryreference\csname REF::2\endcsname
- \bgroup
- %%\let\doifreferencefoundelse\localdoifreferencefoundelse
- \let\unharmedreferenceprefix\referenceprefix
- \dodoifreferencefoundelse\secondaryreference
- \ifreferencefound
- \global\nofsecondaryreferences \plusone
- #2%
- \else
- \dohandlenoto{#3}%
- \fi
- \egroup
- \fi \fi
- \else
- % more than two refs
- \ifenablereferencechains \iflocation
- \global\secondaryreferencetrue
- \scratchcounter\plustwo
- \loop
- \xdef\secondaryreference{\csname REF::\number\scratchcounter\endcsname}%
- % test: \global\letcscsname\secondaryreference\csname REF::\number\scratchcounter\endcsname
- \bgroup
- %%\let\doifreferencefoundelse\localdoifreferencefoundelse
- \let\unharmedreferenceprefix\referenceprefix
- \dodoifreferencefoundelse\secondaryreference
- \ifreferencefound
- \global\advance\nofsecondaryreferences \plusone
- #2%
- \else
- \dohandlenoto{#3}%
- \fi
- \egroup
- \ifnum\scratchcounter<\nofexpandedreferences\relax
- \advance\scratchcounter \plusone
- \repeat
- \fi \fi
- \fi
- \global\secondaryreferencefalse
- \xdef\primaryreference{\csname REF::1\endcsname}%
- % test: \global\letcscsname\secondaryreference\csname REF::1\endcsname
- \bgroup
- % now we handle the primary one
- %%\let\doifreferencefoundelse\localdoifreferencefoundelse
- \let\unharmedreferenceprefix\referenceprefix
- \dodoifreferencefoundelse\primaryreference
- \ifreferencefound#2\else#3\fi
- \egroup
- \doresetgotowhereever} % to prevent problems with direct goto's
-
-%D The following local redefinition permits the usage of
-%D nested \type {\doifreferencefoundelse}; see for an
-%D example the local test for file|/|url references. This is
-%D a fuzzy part of this mechanism and a result of the choice
-%D to let speed prevail over beauty in resolving chained
-%D references with symbolic (defined) references.
-
-\def\localdoifreferencefoundelse#1%
- {\dodoifreferencefoundelse{#1}%
- \ifreferencefound\@EA\firstoftwoarguments\else\@EA\secondoftwoarguments\fi}
-
-%D Somewhere else we will properly define \type {\dohandlegoto};
-%D the noto alternative takes care of undefined references in
-%D a sequence
-
-\ifx\dohandlenoto\undefined
-
- \def\dohandlenoto#1%
- {\ifsecondaryreference\else{#1}\fi}
-
-\fi
-
-\ifx\dohandlegoto\undefined
-
- \def\dohandlegoto#1#2#3%
- {\ifsecondaryreference\else{#1}\fi}
-
-\fi
-
-%D As one can see, while processing the references, the first
-%D one is handled last. While scanning the second and following
-%D ones, we increment a counter and set a boolean to true.
-
-%D The next fast one permits rather raw references with
-%D \type{()}'s and is used in the object reference mechanism.
-
-\def\doifrawreferencefoundelse#1#2#3%
- {\checkreferences
- \bgroup
- \edef\currentfullreference{#1}%
- \ifcsname\r!cross\currentfullreference\endcsname
- \getreferenceelements\currentfullreference
- \global\referencefoundtrue#2%
- \else
- \global\referencefoundfalse#3%
- \fi
- \egroup}
-
-%D The inner case is simple. Only two cases have to be taken
-%D care of:
-%D
-%D \starttyping
-%D \goto{some text}[reference]
-%D \goto{some text}[prefix:reference]
-%D \stoptyping
-
-\def\docheckinnerreference
- {\global\let\predefinedreference\currentinnerreference
- \ifx\currentreferencearguments\empty
- \ifcsname\r!cross\referenceprefix\currentfullreference\endcsname
- \global\referencefoundtrue
- \else
- \let\referenceprefix\empty
- \ifcsname\r!cross\currentfullreference\endcsname
- \global\referencefoundtrue
- \else
- \global\referencefoundfalse
- \fi
- \fi
- \else % [SomeThing{with,me}]
- \let\referenceprefix\empty
- \ifcsname\r!cross\currentinnerreference\endcsname
- \global\referencefoundtrue
- \else
- \global\referencefoundfalse
- \fi
- \fi
- \doifpredefinedreferenceelse{\global\referencefoundfalse}\donothing}
-
-%D References to other files however are treated strict or
-%D tolerant, depending on their loading and availability:
-%D
-%D \starttyping
-%D \useexternaldocument[somefile][filename][a nice description]
-%D
-%D \goto{checked reference}[somefile::reference]
-%D \goto{unchecked reference}[somefile::]
-%D \goto{unchecked reference}[anotherfile::reference]
-%D \stoptyping
-%D
-%D Here we use the dummy reference \type{somefile::} set in
-%D \type{\setouterreference} as a signal that indeed references
-%D are defined for the outer file.
-
-\newif\ifstrictouterreferences \strictouterreferencesfalse
-
-\def\dodocheckouterreference
- {\ifcsname\specialREFidentifier\currentfullreference\endcsname
- \@EA\@EA\@EA\splitofffullreference\@EA\@EA\@EA % 1 level
- {\csname\specialREFidentifier\currentfullreference\endcsname}%
- \docheckouterreference
- \else\ifstrictouterreferences
- \global\referencefoundfalse
- \else
- % already \global\referencefoundtrue % no checking done
- \fi\fi}
-
-\def\docheckouterreference
- {\let\referenceprefix\empty
- \let\unharmedreferenceprefix\empty
- \xdef\predefinedreference
- {\currentouterreference::\currentinnerreference}%
- \ifx\innerreference\empty
- \global\referencefoundtrue % no checking done
- \else
- \ifcsname\r!cross\currentouterreference::\endcsname
- \ifcsname\r!cross\currentfullreference\endcsname
- \global\referencefoundtrue
- \else
- \dodocheckouterreference
- \fi
- \else
- \ifstrictouterreferences
- \global\referencefoundfalse
- \else
- \global\referencefoundtrue % no checking done
- \fi
- \fi
- \fi
- \doifpredefinedreferenceelse{\global\referencefoundfalse}\donothing}
-
-%D Special references are only tested when some test routine is
-%D defined.
-
-\def\docheckspecialreference
- {\let\referenceprefix\empty
- \let\unharmedreferenceprefix\empty
- \xdef\predefinedreference
- {\currentreferencespecial::\currentreferenceoperation}%
- \executeifdefined{\s!do:\v!test:\currentreferencespecial}%
- {\global\referencefoundtrue\gobbletwoarguments}%
- {\global\referencefoundtrue}{\global\referencefoundfalse}%
- \doifpredefinedreferenceelse{\global\referencefoundfalse}\donothing}
-
-%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\predefinedreference
- \showmessage\m!references{#1}{[\unharmedreferenceprefix][#2]}}%
- \egroup}
-
-\def\unknownreference{\reportreferenceerror1}
-\def\illegalreference{\reportreferenceerror4}
-
-%D Although not actually needed, we default the unharmed
-%D reference prefix to the normal one.
-
-\def\unharmedreferenceprefix{\referenceprefix}
-
-%D When a reference is not found, we typeset a placeholder
-%D (two glyphs are often enough to represent the reference
-%D text).
-
-\def\dummyreference{{\tttf ??}}
-
-%D To prevent repetitive messages concerning a reference
-%D being defined, we set such an unknown reference to an empty
-%D one after the first encounter.
-
-\let\predefinedreference\s!unknown
-
-% 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\dummypredefinedreference{\rt!done{}{}{}{}}
-
-%D Testing on existance then becomes:
-
-\def\doifpredefinedreferenceelse % \referenceprefix added
- {\@EA\ifx\csname\r!cross\referenceprefix\predefinedreference\endcsname\dummypredefinedreference
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-%D Sometimes we want to temporary put a reference out of
-%D order. An example can be found in the menu macros.
-%D
-%D \starttyping
-%D \doifreferencepermittedelse{reference}{set}{true}{false}
-%D \stoptyping
-%D
-%D The second argument can be a comma seperated list.
-
-\let\permittedreferences\empty
-
-\def\doifreferencepermittedelse#1#2#3% ref found notfound
- {\doifreferencefoundelse{#1}
- {\donetrue
- \ifx\permittedreferences\empty \else
- \docheckifreferencepermitted{#1}%
- \fi
- \ifdone#2\else#3\fi}
- {#3\unknownreference{#1}}}
-
-\def\docheckifreferencepermitted#1%
- {\ifx\currentinnerreference\empty
- \ifx\currentouterreference\empty \else
- \doifinstring{\currentouterreference::}\permittedreferences\donefalse
- \fi
- \else\ifx\currentouterreference\empty
- \doifinstring{\currentinnerreference}\permittedreferences\donefalse
- \else
- \doifinstring{\currentouterreference::\currentinnerreference}\permittedreferences\donefalse
- \fi\fi}
-
-%D Apart from cross references supplied by the user, \CONTEXT\
-%D generates cross references itself. Most of them are not
-%D saved as a reference, but stored with their source, for
-%D instance a list or an index entry. Such automatically
-%D generated, for the user invisible, references are called
-%D {\em internal references}. The user supplied ones are
-%D labeled as {\em external references}.
-%D
-%D A second important characteristic is that when we want to
-%D support different backends (viewers), we need to support
-%D named destinations as well as page numbers. I invite readers
-%D to take a glance at the special driver modules to understand
-%D the fine points of this. As a result we will deal with {\em
-%D locations} as well as {\em real page numbers}. We explictly
-%D call this pagenumber a real one, because it is independant
-%D of the page numbering scheme used in the document.
-%D
-%D One of the reasons for \CONTEXT\ being the first \TEX\ base
-%D macropackage to support sophisticated interactive \PDF\
-%D files, lays in the mere fact that real page numbers are
-%D available in most two pass data, like references, list data
-%D and index entries.
-%D
-%D We will speak of \type{thisis...} when we are marking a
-%D location, and \type{goto...} when we point to such a
-%D location. The latter one can be seen as a hyperlink to the
-%D former one. In the next macros one we use constructs like:
-%D
-%D \starttyping
-%D \dostart...
-%D \dostop...
-%D \stoptyping
-%D
-%D Such macros are used to invoke the relevant specials from
-%D the special driver modules (see \type{spec-ini}). The flag
-%D \type{\iflocation} signals if we're in interactive mode.
-
-\def\thisisdestination#1% destination
- {\iflocation \ifusepagedestinations \else
- \dostartthisislocation{#1}\dostopthisislocation
- \fi \fi}
-
-\def\thisisrealpage#1% pagenumber
- {\iflocation
- \dostartthisisrealpage{#1}\dostopthisisrealpage
- \fi}
-
-%D The previous tho macros were easy ones, opposite to their
-%D counterparts. A common component in these is:
-%D
-%D \starttyping
-%D \dohandlegoto{..}{..}{..}
-%D \stoptyping
-%D
-%D Here data can be whatever needs highlighting, e.g. {\em
-%D figure 2.4}, and the start and stop entries handle the
-%D specials. The two \DIMENSIONS\ \type{\buttonwidth} and
-%D \type{\buttonheight} have to be set when handling the
-%D data~(\type{#2}).
-
-\ifx\buttonheight\undefined \newdimen\buttonheight \fi
-\ifx\buttonwidth \undefined \newdimen\buttonwidth \fi
-
-\def\gotodestination#1#2#3#4#5% url file destination page data
- {\iflocation
- \ifusepagedestinations
- \gotorealpage{#1}{#2}{\number#4}{#5}%
- \else
- \dohandlegoto
- {#5}%
- {\the\everyreference\dostartgotolocation\buttonwidth\buttonheight{#1}{#2}{#3}{\number#4}}%
- {\dostopgotolocation}%
- \fi
- \else
- {#5}%
- \fi}
-
-\def\gotorealpage#1#2#3#4% url file page data
- {\iflocation
- \dohandlegoto
- {#4}%
- {\dostartgotorealpage\buttonwidth\buttonheight{#1}{#2}{\number#3}}%
- {\dostopgotorealpage}%
- \else
- {#4}%
- \fi}
-
-%D \macros
-%D {setreferencefilename}
-%D
-%D This command can be used in the special drivers to
-%D uppercase filenames. This is needed when one wants to
-%D produce \CDROM's conforming to ISO9660. We consider is the
-%D savest to enable this feature by default. We cannot handle
-%D uppercase here, since the suffix is handled in the special
-%D driver. Conversion is taken care of by:
-%D
-%D \starttyping
-%D \setreferencefilename somefilename\to\SomeFileName
-%D \stoptyping
-
-% \def\setreferencefilename#1\to#2%
-% {\doifelse{\@@converteerfile}{\v!ja} % boolean is sneller
-% {\uppercasestring#1\to#2}
-% {\edef#2{#1}}}
-
-\chardef\referencefilecase=0
-
-\def\setreferencefilename#1\to#2%
- {\ifcase\referencefilecase
- \edef#2{#1}%
- \or
- \uppercasestring#1\to#2%
- \or
- \lowercasestring#1\to#2%
- \else
- \edef#2{#1}%
- \fi}
-
-%D Internal references can best be set using the next few
-%D macros. Setting such references to unique values is
-%D completely up to the macros that call them.
-%D
-%D \starttyping
-%D \thisissomeinternal{tag}{identifier}
-%D \gotosomeinternal {tag}{identifier}{pagenumber}{text}
-%D \stoptyping
-
-\def\thisissomeinternal#1#2% tag reference
- {\doifsomething{#2}{\thisisdestination{#1:#2}}}
-
-\def\gotosomeinternal#1#2% #3#4
- {\gotodestination\empty\empty{#1:#2}}
-
-%D An automatic mechanism is provided too:
-%D
-%D \starttyping
-%D \thisisnextinternal{tag}
-%D \gotonextinternal {tag}{number}{pagenumber}{text}
-%D \stoptyping
-%D
-%D The first macro increments a counter. The value of this
-%D counter is available in the macro \type{\nextinternalreference}
-%D and should be saved somewhere (for instance in a file) for
-%D future reference. The second argument of
-%D \type {\gotonextinternal} takes such a saved number. One can
-%D turn on tracing these references, in which case the
-%D references are a bit more verbose.
-
-\newcount\locationcount
-
-\newif\iftraceinternalreferences
-\newif\ifinternalnamedreferences \internalnamedreferencestrue
-
-\def\nextinternalreference
- {\the\locationcount}
-
-\def\thisisnextinternal#1%
- {\global\advance\locationcount \plusone
- \ifinternalnamedreferences
- \thisisdestination{\s!aut\iftraceinternalreferences:#1\fi:\nextinternalreference}%
- \fi}
-
-% beter:
-%
-% \def\thisisnextinternal#1%
-% {\iftrialtypesetting\else
-% \global\advance\locationcount \plusone
-% \ifinternalnamedreferences
-% \thisisdestination{\s!aut\iftraceinternalreferences:#1\fi:\nextinternalreference}%
-% \fi
-% \fi}
-
-\def\gotonextinternal#1#2#3#4%
- {\ifinternalnamedreferences
- \gotodestination\empty\empty{\s!aut\iftraceinternalreferences:#1\fi:#2}{#3}{#4}%
- \else
- \gotorealpage\empty\empty{#3}{#4}%
- \fi}
-
-%D We already went through a lot of problems to sort out what
-%D kind of reference we're dealing with. Sorting out the user
-%D supplied cross references (show/goto this or that) as well
-%D as user supplied system references (invoke this or that) is
-%D already taken care of in the test routine, but we still have
-%D to direct the request to the right (first) routine.
-
-\def\gotolocation% #1#2%
- {\ifx\currentreferencespecial\empty
- \ifx\currentouterreference\empty
- \ifnum\currentreferencetype<2
- \@EA\@EAEAEA\@EA\gotoinnerlocation
- \else
- \@EA\@EAEAEA\@EA\gotosystemlocation
- \fi
- \else
- \@EAEAEA\gotoouterlocation
- \fi
- \else
- \@EA\gotospeciallocation
- \fi} % {#1}{#2}
-
-%D An inner reference refers to some place in the document
-%D itself.
-
-\def\gotoinnerlocation#1% #2%
- {\gotodestination\empty\empty
- {\referenceprefix\currentinnerreference}\currentrealreference} % {#2}
-
-%D The outer location refers to another document, specified as
-%D file or \URL.
-
-\def\gotoouterlocation#1#2% % page checken!
- {\bgroup
- \let\referenceprefix\empty
- \setouterlocation\currentouterreference
- \ifx\currentinnerreference\empty
- \gotorealpage
- \otherURL\otherfile1{#2}%
- \else
- \gotodestination
- \otherURL\otherfile\currentinnerreference\currentrealreference{#2}%
- \fi
- \egroup}
-
-%D Special locations are those that are accessed by saying
-%D things like:
-%D
-%D \starttyping
-%D \goto{calculate total}[JS(summarize{10,23,56}]
-%D \stoptyping
-%D
-%D After several intermediate steps this finally arrives at
-%D the next macro and expands into (simplified):
-%D
-%D \starttyping
-%D \gotoJSlocation{total{summarize{10,23,56}}}{calculate total}
-%D \stoptyping
-%D
-%D The first argument is the full reference, the second one
-%D is the text, in some kind of manipulated form. In practice
-%D we split references, so we get:
-%D
-%D \starttyping
-%D \gotoJSlocation{summarize{10,23,56}}{calculate}
-%D \gotoJSlocation{summarize{10,23,56}}{total}
-%D \stoptyping
-%D
-%D where \type{calculate} and \type{total} are colored, boxed
-%D or whatever \type{\goto} is told to do.
-%D
-%D The macro \type{\gotoJSlocation} can use \type
-%D {\currentreferenceoperation} (in our example
-%D \type{summarize}) and \type{\currentreference} (here
-%D being \type {10,23,56}) to perform its task.
-
-\def\gotospeciallocation
- {\executeifdefined{goto\currentreferencespecial location}\gobbleoneargument}
-
-%D Such special macros can be defined by:
-
-\def\definespeciallocation#1%
- {\setvalue{goto#1location}}
-
-%D The associated test is to be defined by:
-
-\def\definespecialtest#1%
- {\setvalue{\s!do:\v!test:#1}}
-
-%D This \type{\def} alike macro is to be used as:
-%D
-%D \starttyping
-%D \definespeciallocation{JS}#1#2{... #1 ... #2 ...}
-%D \stoptyping
-%D
-%D In module \type {java-ini} one can see that \type
-%D {\gotoJSlocation} looks much like the previous goto
-%D definitions.
-
-%D A system location is not always a location, but for the
-%D consistency we also consider actions as such.
-
-\def\gotosystemlocation
- {\csname\r!syst\the\currentreferencetype\endcsname}
-
-\def\definesystemreferencehandler#1#2%
- {\setgvalue{\r!syst\the#1}{#2}}
-
-%D In this module we define three system references: one for
-%D handling navigational, viewer specific, commands, another
-%D for jumping to special pages, like the first or last one,
-%D and a third reference for linking tree like lists, like
-%D tables of contents. The latter two adapt themselves to the
-%D current state.
-
-\definesystemreferencehandler \rt!exec \handleexecreference
-\definesystemreferencehandler \rt!page \handlepagereference
-\definesystemreferencehandler \rt!list \handlelistreference
-
-\def\handleexecreference#1%
- {\checkexecutecommand\currentdatareference\currentreferencearguments
- \executecommand\currentdatareference\currentreferencearguments}
-
-\def\handlepagereference#1%
- {\gotorealpage\empty\empty\currentdatareference}
-
-\def\handlelistreference#1% is deze nog echt nodig?
- {\gotodestination\empty\empty\currentdatareference{\getvalue{\currentdatareference}}}
-
-%D \macros
-%D {setexecutecommandcheck}
-%D
-%D In case a command action needs to do some checking in
-%D advance, one can assign an check function by:
-%D
-%D \starttyping
-%D \setexecutecommandcheck{startsound}\checksoundtrack
-%D \stoptyping
-
-\def\setexecutecommandcheck#1#2% #2 permits \first \second
- {\setvalue{\s!do:\s!do:#1}{#2}}
-
-\def\checkexecutecommand#1#2% evt geen #1 en #2
- {\ifx#2\empty \else \ifcsname\s!do:\s!do:#1\endcsname
- \@EA\let\@EA\docheckexecutecommand\csname\s!do:\s!do:#1\endcsname
- \rawprocesscommalist[#2]\docheckexecutecommand
- \fi \fi }
-
-%D Command references (in dutch, english, german of
-%D whatever interface language) are translated into a bit
-%D shorter reference (\type{close}) and passed to the
-%D special driver (using \type{\executecommand}).
-
-% better: [action(name)] and \definereference[name][action(name)]
-
-\setglobalsystemreference \rt!exec \v!CloseDocument {close}
-\setglobalsystemreference \rt!exec \v!ExitViewer {exit}
-\setglobalsystemreference \rt!exec \v!FirstPage {first}
-\setglobalsystemreference \rt!exec \v!LastPage {last}
-\setglobalsystemreference \rt!exec \v!NextJump {forward}
-\setglobalsystemreference \rt!exec \v!NextPage {next}
-\setglobalsystemreference \rt!exec \v!PauseMovie {pausemovie}
-\setglobalsystemreference \rt!exec \v!PauseSound {pausesound}
-\setglobalsystemreference \rt!exec \v!PauseRendering {pauserendering}
-\setglobalsystemreference \rt!exec \v!PreviousJump {backward}
-\setglobalsystemreference \rt!exec \v!PreviousPage {previous}
-\setglobalsystemreference \rt!exec \v!PrintDocument {print}
-\setglobalsystemreference \rt!exec \v!SaveForm {exportform}
-\setglobalsystemreference \rt!exec \v!LoadForm {importform}
-\setglobalsystemreference \rt!exec \v!ResetForm {resetform}
-\setglobalsystemreference \rt!exec \v!ResumeMovie {resumemovie}
-\setglobalsystemreference \rt!exec \v!ResumeSound {resumesound}
-\setglobalsystemreference \rt!exec \v!ResumeRendering {resumerendering}
-\setglobalsystemreference \rt!exec \v!SaveDocument {save}
-\setglobalsystemreference \rt!exec \v!SaveNamedDocument{savenamed}
-\setglobalsystemreference \rt!exec \v!OpenNamedDocument{opennamed}
-\setglobalsystemreference \rt!exec \v!SearchDocument {search}
-\setglobalsystemreference \rt!exec \v!SearchAgain {searchagain}
-\setglobalsystemreference \rt!exec \v!StartMovie {startmovie}
-\setglobalsystemreference \rt!exec \v!StartSound {startsound}
-\setglobalsystemreference \rt!exec \v!StartRendering {startrendering}
-\setglobalsystemreference \rt!exec \v!StopMovie {stopmovie}
-\setglobalsystemreference \rt!exec \v!StopSound {stopsound}
-\setglobalsystemreference \rt!exec \v!StopRendering {stoprendering}
-\setglobalsystemreference \rt!exec \v!SubmitForm {submitform}
-\setglobalsystemreference \rt!exec \v!ToggleViewer {toggle}
-\setglobalsystemreference \rt!exec \v!ViewerHelp {help}
-\setglobalsystemreference \rt!exec \v!HideField {hide}
-\setglobalsystemreference \rt!exec \v!ShowField {show}
-\setglobalsystemreference \rt!exec \v!GotoPage {gotopage}
-\setglobalsystemreference \rt!exec \v!GotoPage {gotopage}
-\setglobalsystemreference \rt!exec \v!Query {query}
-\setglobalsystemreference \rt!exec \v!QueryAgain {queryagain}
-\setglobalsystemreference \rt!exec \v!FitWidth {fitwidth}
-\setglobalsystemreference \rt!exec \v!FitHeight {fitheight}
-
-\setglobalsystemreference \rt!exec \v!ShowThumbs {thumbnails}
-\setglobalsystemreference \rt!exec \v!ShowBookmarks {bookmarks}
-
-%D Executing the command looks alike the previous goto macros.
-
-\def\executecommand#1#2#3%
- {\iflocation
- \dohandlegoto
- {#3}%
- {\dostartexecutecommand\buttonwidth\buttonheight{#1}{#2}}%
- {\dostopexecutecommand}%
- \else
- {#3}%
- \fi}
-
-%D We could have done without the short tags and thereby saving
-%D some tokens, but the current approach leaves room for future
-%D extensions.
-
-%D It is possible to disable the writing of references to the
-%D utility file by setting:
-
-\newif\ifreferencing \referencingtrue
-
-%D One can also activate an automatic prefix mechanism. By
-%D setting the \type{\prefix} variable to \type{+}, the prefix
-%D is incremented, when set to \type{-} or empty, the prefix is
-%D reset. Other values become the prefix.
-
-\newcount\prefixcounter
-
-%D These settings are accomplished by:
-%D
-%D \showsetup{setupreferencing}
-%D
-%D In interactive documents verbose references don't always
-%D make sense (what is a page number in an unnumbered
-%D document). By setting the \type{interaction} variable, one
-%D can influences the way interactive references are set.
-
-% \newif\ifreferencestrut % some day an option
-
-\def\setupreferencing
- {\dosingleargument\dosetupreferencing}
-
-\def\dosetupreferencing[#1]%
- {\getparameters
- [\??rf]
- [\c!prefix=\s!unknown,#1]%
- \processaction
- [\@@rfstate]
- [ \v!stop=>\referencingfalse,
- \v!start=>\referencingtrue]%
- \processaction
- [\@@rfinteraction]
- [ \v!all=>\let\dowantedreference\docompletereference,
- \v!label=>\let\dowantedreference\dolabelonlyreference,
- \v!text=>\let\dowantedreference\dotextonlyreference,
- \v!symbol=>\let\dowantedreference\dosymbolreference]%
- \chardef\autocrossfilereferences\zerocount
- \processaction
- [\@@rfautofile]
- [ \v!yes=>\chardef\autocrossfilereferences\plusone,
- \v!page=>\chardef\autocrossfilereferences\plustwo]%
- \chardef\referencefilecase\zerocount
- \processaction[\@@rfconvertfile]
- [ \v!yes=>\chardef\referencefilecase\plusone,
- \v!big=>\chardef\referencefilecase\plusone,
- \v!small=>\chardef\referencefilecase\plustwo]%
- %\doifelse\@@rfstrut\v!yes % some day an option
- % \referencetruttrue\referencestrutfalse
- \setupreferenceprefix[\@@rfprefix]%
- \doifelse\@@rfglobal\v!yes
- {\settrue \autoglobalfilereferences}
- {\setfalse\autoglobalfilereferences}}
-
-\def\incrementreferenceprefix{+}
-\def\decrementreferenceprefix{-}
-
-\def\setupreferenceprefix[#1]%
- {\edef\@@rfprefix{#1}%
- \ifx\@@rfprefix\empty
- \let\referenceprefix\empty
- \else\ifx\@@rfprefix\incrementreferenceprefix
- \advance\prefixcounter \plusone % should be global
- \edef\referenceprefix{\the\prefixcounter:}%
- \let\@@rfprefix\s!unknown
- \else\ifx\@@rfprefix\decrementreferenceprefix
- \let\referenceprefix\empty
- \let\@@rfprefix\s!unknown
- \else\ifx\@@rfprefix\s!unknown
- % forget about it
- \else
- \edef\referenceprefix{\@@rfprefix:}%
- \fi\fi\fi\fi}
-
-%D \macros
-%D {handlereferenceactions,
-%D collectreferenceactions}
-%D
-%D Sometimes we need to pass the actions connected to
-%D references to variables instead of rectangular areas on
-%D which one can click. The next macro collects the actions
-%D and passes them to a handle. This is a rather dreadfull
-%D hack!
-%D
-%D \starttyping
-%D \handlereferenceactions{references}\handle
-%D \stoptyping
-%D
-%D So, \type {\handle} does the final job, which in for
-%D instance the \PDF\ drivers comes down to doing something
-%D with \type {\lastPDFaction}.
-
-\newif\ifcollectreferenceactions
-
-\def\handlereferenceactions#1#2%
- {\doifsomething{#1}
- {\bgroup
- \collectreferenceactionstrue
- \@EA\doifreferencefoundelse\@EA{#1}
- {\gotolocation{#1}{}\ifsecondaryreference\else#2\fi}
- {\unknownreference{#1}}%
- \egroup}}
-
-%D The most straightforward way of retrieving references is
-%D using \type{\ref}. Consider the reference:
-%D
-%D \startbuffer
-%D \reference[my ref]{{Look}{Here}{I am}}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-%D
-%D We can ask for upto five reference components:
-%D
-%D \startbuffer
-%D user page reference: \ref[p][my ref]
-%D text reference: \ref[t][my ref]
-%D real page reference: \ref[r][my ref]
-%D sub text reference: \ref[s][my ref]
-%D extra text reference: \ref[e][my ref]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D And get back:
-%D
-%D \startlines
-%D \getbuffer
-%D \stoplines
-
-\def\ref{\dodoubleargument\doref}
-
-\def\reftypep{\currentpagereference}
-\def\reftypet{\currenttextreference}
-\def\reftyper{\currentrealreference}
-\def\reftypes{\currentsubtextreference}
-\def\reftypee{\currentsubsubtextreference}
-
-\def\doref[#1][#2]%
- {\ifsecondargument
- \doifreferencefoundelse{#2}
- {\executeifdefined{reftype#1}\reftypep}
- {\unknownreference{#2}\dummyreference}%
- \else
- \dummyreference
- \fi}
-
-%D We can typeset a reference using \type{\in}, \type{\at} and
-%D \type{\about} and goto specific locations using
-%D \type{\goto}. The last one does not make that much sense in
-%D a paper document. To complicate things, \PLAIN\ \TEX\ also
-%D implements an \type {\in} but fortunately that one only
-%D makes sense in math mode.
-
-%D --- VANAF HIER NOG VERENGELSEN ---
-
-%\let\donormalin =\in
-%\let\donormalover=\over % about/oppassen beter nederlands dan engels!
-%
-%\def\in%
-% {\ifmmode
-% \expandafter\donormalin
-% \else
-% \expandafter\doinatreference\expandafter\currenttextreference
-% \fi}
-
-% we need to bypass math tokens
-
-% \let\normalover \over
-
-\definecommand in {\dospecialin}
-\definecommand at {\dospecialat}
-\definecommand about {\dospecialabout}
-\definecommand from {\dospecialfrom}
-\definecommand over {\dospecialabout} % needed here, else math problems
-
-\unexpanded\def\dospecialin{\doinatreference\currenttextreference}
-\unexpanded\def\dospecialat{\doinatreference\currentpagereference}
-
-\unexpanded\def\dospecialabout[#1]%
- {\dontleavehmode
- \bgroup
- \def\thecurrentsubtextreference
- {\limitatetext\currentsubtextreference\@@rfwidth\unknown}%
- %\leaveoutervmode % no
- \@@rfleft
- \doifreferencefoundelse{#1}
- {\let\crlf\space
- \let\\\space
- \let\dogotofixed\dogotospace
- \dogotospace{\thecurrentsubtextreference}[#1]}
- {\unknownreference{#1}\dummyreference}%
- \@@rfright
- \referenceinfo{<}{#1}%
- \egroup}
-
-%D Typesetting the reference is a bit more complicated than one
-%D would at first sight expect. This is due to the fact that we
-%D distinguish three (five) alternative calls:
-%D
-%D \placefigure
-%D [here][three calls]
-%D {Three alternatives reference calls.}
-%D {\startcombination[1*3]
-%D {\framed{\type{ \in }}} {a}
-%D {\framed{\type{ \at }}} {b}
-%D {\framed{\type{\goto}}} {c}
-%D \stopcombination}
-%D
-%D \startbuffer
-%D \in figure[fig:three calls]
-%D \in{figure}[fig:three calls]
-%D \in figure a[fig:three calls]
-%D \in{figure}{a}[fig:three calls]
-%D figure~\in[fig:three calls]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D This turns up as:
-%D
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D
-%D The dual \type{{}} results in a split reference. In a
-%D document meant for paper, one is tempted to use the last
-%D (most straightforward) alternative. When a document is also
-%D meant voor electronic distribution, the former alternatives
-%D have preference, because everything between the \type{\in}
-%D and~\type{[} becomes active (and when asked for, typeset
-%D in a different color and typeface).
-
-\def\doinatreference#1%
- {\doifnextoptionalelse{\dodoinatreference{#1}{}}{\dodoinatreference{#1}}}
-
-\def\dodoinatreference#1%
- {\def\dododoinatreference{\dodododoinatreference{#1}}%
- \futurelet\next\dododoinatreference}
-
-% overloaded
-%
-% \def\dodododoinatreference#1#2#3[#4]%
-% {\ifx\next\bgroup
-% \dododododoinatreference{#1\ignorespaces#3}{#2}[#4]%
-% \else
-% \dododododoinatreference{#1}{#2#3}[#4]%
-% \fi}
-
-%D We arrived at the last step. Before we do the typesetting,
-%D we forget all previous (paragraph bound) settings and make
-%D sure that we remain in horizontal mode. Next we choose
-%D among the several representations.
-
-% overloaded
-%
-% \def\dododododoinatreference#1#2[#3]%
-% {\dontleavehmode
-% \bgroup
-% \forgetall
-% %\leaveoutervmode
-% \doifreferencefoundelse{#3}
-% {\bgroup
-% \let\ignorespaces\empty % rather dirty but ok
-% \doifelsenothing{#1}
-% {\egroup\dosymbolreference{#1}{#2}[#3]}
-% {\egroup\dowantedreference{#1}{#2}[#3]}}
-% {\dounknownreference{#1}{#2}[#3]}%
-% \referenceinfo{<}{#3}%
-% \egroup}
-
-%D The previously discussed setup macro lets us specify the
-%D representation of references. A symbol reference does not
-%D show the specific data, like the number of a figure, but
-%D shows one of: \hbox {$^\goforwardcharacter$
-%D $^\gobackwardcharacter$ $^\gonowherecharacter$}, depending
-%D on the direction to go.
-
-\def\dosymbolreference#1#2[#3]%
- {\bgroup
- \setupsymbolset[\@@iasymbolset]%
- \removelastskip
- \ifx\currentreferencespecial\empty
- \ifx\currentouterreference\empty
- \ifnum0\currentrealreference=\zerocount
- \ifhmode\strut\high{\symbol[\v!nowhere]}\fi
- \else\ifnum0\currentrealreference>\realpageno
- \dodosymbolreference{#2}{\high{\symbol[\v!next]}}%
- \else\ifnum0\currentrealreference<\realpageno
- \dodosymbolreference{#2}{\high{\symbol[\v!previous]}}%
- \else
- \ifhmode\strut\high{\symbol[\v!nowhere]}\fi
- \fi\fi\fi
- \else
- \gotoouterlocation{#3}{\showlocation{\high{\symbol[\v!somewhere]}}}%
- \fi
- \else
- \gotospeciallocation{#3}{\showlocation{\high{\symbol[\v!somewhere]}}}%
- \fi
- \egroup}
-
-\def\dodosymbolreference#1#2%
- {#1\hbox{\gotorealpage\empty\empty\currentrealreference
- {\dolocationattributes\??ia\c!style\c!color{#2}}}}
-
-%D The other alternatives just conform their names: only the
-%D label, only the text, or the label and the text.
-
-\def\dounknownreference#1#2[#3]%
- {\unknownreference{#3}\dotextprefix{#2}\dummyreference}%
-
-\def\docompletereference#1#2[#3]%
- {\iflocationsplit
- \doifsomespaceelse{#2}\dogotospace\dogotofixed{\dotextprefix{#2}#1}[#3]%
- \else
- \dogotofixed{\dotextprefix{#2}#1}[#3]%
- \fi}
-
-\def\dolabelonlyreference#1#2[#3]%
- {\doifsomespaceelse{#2}
- {\doifsomething{#2}{\dogotospace{#2}[#3]}}
- {\dogotofixed{\dotextprefix{#2}}[#3]}}
-
-\def\dotextonlyreference#1#2[#3]%
- {\dotextprefix{#2}\dogotofixed{#1}[#3]}
-
-\let\dowantedreference=\docompletereference
-
-%D \macros
-%D {definereferenceformat}
-%D
-%D The next few macros were made for for David Arnold and Taco
-%D Hoekwater. They can be used for predefining reference
-%D texts, and thereby stimulate efficiency.
-%D
-%D [more documentation will be added]
-%D
-%D \starttyping
-%D \definereferenceformat[informula] [left=(,right=),text=formula]
-%D \definereferenceformat[informulas] [left=(,right=),text=formulas]
-%D \definereferenceformat[andformula] [left=(,right=),text=and]
-%D \definereferenceformat[andformulas][left=(,right=),text=and]
-%D
-%D \informula [b] and \informula [for:c]
-%D the \informula {formulas}[b] \informula {and} [for:c]
-%D the \informulas {formulas}[b] \informula {and} [for:c]
-%D the \informulas [b] \informula {en} [for:c]
-%D the \informulas [b] \andformula [for:c]
-%D \stoptyping
-%D
-%D Instead of a text, one can specify a label, which should
-%D be defined with \type {\setuplabeltext}.
-
-\def\definereferenceformat%
- {\dodoubleargument\dodefinereferenceformat}
-
-\def\dodefinereferenceformat[#1][#2]%
- {\iffirstargument
- \getparameters[\??rf#1]
- [\c!left=, % of the number
- \c!right=, % of the number
- \c!text=, % before the number
- \c!label=, % can be {left}{right}
- \c!command=\in,
- #2]%
- \unexpanded\setvalue{#1}%
- {\dontleavehmode\doexecutereferenceformat{#1}}%
- \fi}
-
-\def\noexecutelabelreferenceformat#1%
- {\doifvaluesomething{\??rf#1\c!text}
- {\gdef\textofreference{\csname\??rf#1\c!text\endcsname}}%
- \csname\??rf#1\c!command\endcsname}
-
-\def\doexecutelabelreferenceformat#1%
- {\csname\??rf#1\c!command\endcsname
- {\leftlabeltext {\csname\??rf#1\c!label\endcsname}}%
- {\rightlabeltext{\csname\??rf#1\c!label\endcsname}}}
-
-\def\doexecutereferenceformat#1%
- {\gdef\leftofreference {\csname\??rf#1\c!left \endcsname}%
- \gdef\rightofreference{\csname\??rf#1\c!right\endcsname}%
- \global\let\textofreference\empty % otherwise ~ added
- \doifelsevaluenothing{\??rf#1\c!label}
- \noexecutelabelreferenceformat\doexecutelabelreferenceformat{#1}}
-
-\let\leftofreference \relax
-\let\rightofreference\relax
-\let\textofreference \relax
-
-\def\dodododoinatreference#1#2#3[#4]% \removeunwantedspaces added june 2004
- {\ifx\next\bgroup % but removed later, fails on metafun
- \dododododoinatreference
- % fails on metafun {\leftofreference#1\ignorespaces#3\removeunwantedspaces\rightofreference}{#2}[#4]%
- {\leftofreference#1\ignorespaces#3\rightofreference}{#2}[#4]%
- \else
- \dododododoinatreference
- {\leftofreference#1\rightofreference}{#2#3}[#4]%
- \fi}
-
-\def\dododododoinatreference#1#2[#3]%
- {\dontleavehmode % replaces \leaveoutervmode
- \bgroup
- \forgetall
- \postponenotes
- %\leaveoutervmode % replaced by \dontleavehmode
- \doifreferencefoundelse{#3}
- {\bgroup
- \let\ignorespaces \empty % rather dirty trick, but ok
- \let\leftofreference \empty % the same, again ok
- \let\rightofreference\empty % and once more
- \def\textofreference {#2}% % temporary value
- \ifx\textofreference\empty % simple expansion
- %\doifelsenothing{#1}
- % {\egroup\dosymbolreference{#1}{\textofreference}[#3]}
- % {\egroup\dowantedreference{#1}{\textofreference}[#3]}%
- \doifelsenothing{#1}%
- {\egroup\dosymbolreference}%
- {\egroup\dowantedreference}%
- {#1}{\textofreference}[#3]%
- \else
- %\doifelsenothing{#1}
- % {\egroup\dosymbolreference{#1}{#2}[#3]}
- % {\egroup\dowantedreference{#1}{#2}[#3]}%
- \doifelsenothing{#1}%
- {\egroup\dosymbolreference}%
- {\egroup\dowantedreference}%
- {#1}{#2}[#3]%
- \fi}
- {\dounknownreference{#1}{#2}[#3]}%
- \referenceinfo<{#3}%
- \global\let\leftofreference \empty
- \global\let\rightofreference\empty
- \global\let\textofreference \empty
- \egroup}
-
-%D In interactive documents going to a specific location is not
-%D bound to cross references. The \type{\goto} commands can be
-%D used to let users access another part of the document. In
-%D this respect, interactive tables of contents and registers
-%D can be considered goto's. Because in fact a \type{\goto} is
-%D just a reference without reference specific data, the
-%D previous macros are implemented using the goto
-%D functionality.
-%D
-%D \showsetup{goto}
-%D
-%D One important chaacteristic is that the first argument of
-%D \type{\goto} (and therefore \type{\at} and \type{\in} is
-%D split at spaces. This means that, although hyphenation is
-%D prevented, long references can cross line endings.
-
-
-\def\dogoto#1[#2]%
- {\dontleavehmode
- \bgroup
- \postponenotes
- \doifreferencefoundelse{#2}
- {\doifelsenothing{#1}
- {\dosymbolreference{}{}[#2]}
- {\dogotospace{#1}[#2]}}
- {\unknownreference{#2}#1\relax}% \relax catches lookahead
- \egroup
- \referenceinfo{<}{#2}}
-
-\unexpanded\def\goto#1#2%
- {\dogoto{#1}#2}
-
-\newif\ifsharesimilarreferences \sharesimilarreferencestrue
-\newcount\similarreference % 0=noppes 1=create/refer 2,3,..=refer
-
-\def\dogotospace#1[#2]%
- {\iflocationsplit
- \ifsecondaryreference\setbox0\hbox\fi % due to space insertion
- {\let\dogotospace\dogotofixed
- \iflocation
- \def\processisolatedword##1%
- {\ifisolatedwords\ifsharesimilarreferences
- \global\advance\similarreference \plusone
- \fi\fi
- \hbox{\gotolocation{#2}{##1\presetgoto}}}%
- \doattributes\??ia\c!style\c!color
- {\processisolatedwords{#1}\processisolatedword}%
- \else
- #1\relax % \relax prevents #1's next macros from gobbling \fi
- \fi}%
- \else
- \iflocation
- \doattributes\??ia\c!style\c!color
- {\gotolocation{#2}{#1\presetgoto}}%
- \else
- #1\relax % \relax prevents #1's next macros from gobbling \fi
- \fi
- \fi
- \global\similarreference\zerocount}
-
-\def\dogotofixed#1[#2]%
- {{\iflocation
- \hbox{\gotolocation{#2}{\doattributes\??ia\c!style\c!color
- {#1\presetgoto}}}%
- \else
- #1%
- \fi}}
-
-%D In case the auto split feature is not needed or even not
-%D even wanted, \type{\gotobox} can be used.
-
-%D --- NOG IN HANDLEIDING ---
-
-\unexpanded\def\gotobox#1[#2]%
- {\dontleavehmode
- \bgroup
- \locationstrutfalse
- %\leaveoutervmode
- \doifreferencefoundelse{#2}
- {\dogotofixed{#1}[#2]}
- {\hbox{\unknownreference{#2}#1}}%
- \referenceinfo{<}{#2}%
- \egroup}
-
-%D An reference to another document can be specified as a file
-%D or as an \URL. Both are handled by the same mechanism and
-%D can be issued by saying something like:
-%D
-%D \starttyping
-%D \goto[dictionary::the letter a]
-%D \stoptyping
-%D
-%D The macros that are responsible for handling these
-%D references, use the next six variables:
-
-\let\otherlabel = \empty
-\let\fileprefix = \empty
-\def\otherfile {\jobname}
-\let\otherURL = \empty
-\let\otherprefix = \empty
-\let\dowithdocdes = \empty
-
-%D One can imagine that many references to such a dictionary
-%D are made, so in most cases such a document reference in an
-%D indirect one.
-%D
-%D \showsetup{useexternaldocument}
-%D
-%D For example:
-%D
-%D \starttyping
-%D \useexternaldocument
-%D [dictionary][engldict]
-%D [The Famous English Dictionary]
-%D \stoptyping
-%D
-%D The next macro implements these relations, and also take
-%D care of loading the document specific references.
-
-\def\useexternaldocument%
- {\dotripleargument\douseexternaldocument}
-
-\def\douseexternaldocument[#1][#2][#3]%
- {\bgroup
- \ifsecondargument
- \doifelsenothing{#1}
- {\douseexternaldocument[#2][#2][#3]}
- {\doifelsenothing{#3}
- {\douseexternaldocument[#1][#2][#2]}
- {\doifsomething{#2}
- {\setgvalue{\v!file:::#1}{\doexternaldocument{}{#2}{#3}}% just \do
- \doif\@@rfstate\v!start
- {\doifparentfileelse{#2}
- {\showmessage\m!references{21}{#2}}
- {\dodouseexternaldocument{#1}{#2}}}}}}%
- \else
- \dodouseexternaldocument{#1}{#1}%
- \fi
- \egroup}
-
-\def\dodouseexternaldocument#1#2%
- {\bgroup % prevents wrong loading of \jobname
- \def\fileprefix{#1::}%
- \let\setglobalcrossreference\setoutercrossreference
- \usereferences[#2]%
- \egroup % when called nested
- \showmessage\m!references{21}{#2}}
-
-%D The \URL\ alternative takes four arguments:
-%D
-%D \showsetup{useURL}
-%D
-%D like:
-%D
-%D \starttyping
-%D \useURL
-%D [dictionary][http://www.publisher.com/public][engldict]
-%D [The Famous English Dictionary]
-%D \stoptyping
-%D
-%D Several specifications are possible:
-%D
-%D \starttyping
-%D \useURL [id] [url] [file] [description]
-%D \useURL [id] [url] [file]
-%D \useURL [id] [url]
-%D \stoptyping
-%D
-%D This time we don't load the references when no file is
-%D specified. This is logical when one keeps in mind that a
-%D valid \URL\ can also be a mail address.
-
-\def\useURL
- {\bgroup
- \protectlabels
- \catcode`\#=\@@other\catcode`\%=\@@other\catcode`\/=\@@other
- \catcode`\_=\@@other\catcode`\~=\@@other\catcode`\:=\@@other
- \dodoubleempty\douseURL}
-
-\def\douseURL[#1][#2]%
- {\egroup\doquadrupleempty\dodouseURL[#1][#2]}
-
-\let\useurl\useURL
-
-\def\dodouseURL[#1][#2][#3][#4]% to be redone: not too tricky redefs ad reuse
- {\iffirstargument
- \iffourthargument\setgvalue{\v!file:::#1}{\doexternaldocument{#2}{#3}{#4}}\else
- \ifthirdargument \setgvalue{\v!file:::#1}{\doexternalurl {#2}{#3}{#1}}\else
- \ifsecondargument\setgvalue{\v!file:::#1}{\doexternalurl {#2}{} {#1}}\fi\fi\fi
- \fi}
-
-\def\doexternalurl#1#2#3%
- {\bgroup
- \doifsomething\@@urstyle{\let\@@iastyle\@@urstyle\let\@@urstyle\empty}%
- \doifsomething\@@urcolor{\let\@@iacolor\@@urcolor\let\@@urcolor\empty}%
- \doexternaldocument{#1}{#2}{\url[#3]}%
- \egroup}
-
-\def\doifurldefinedelse #1{\doifdefinedelse{\v!file:::#1}}
-\def\doiffiledefinedelse#1{\doifdefinedelse{\v!file:::#1}}
-
-%D \macros
-%D {url,setupurl}
-%D
-%D We also have: \type{\url} for directly calling the
-%D description. So we can say:
-%D
-%D \starttyping
-%D \useURL [one] [http://www.test.nl]
-%D \useURL [two] [http://www.test.nl] [] [Some Site]
-%D
-%D \url[one] or \from[two] or \goto{Whatever Site}[URL(two)]
-%D \stoptyping
-%D
-%D An \URL\ can be set up with
-%D
-%D \showsetup{setupurl}
-
-\def\setupurl
- {\dodoubleargument\getparameters[\??ur]}
-
-\unexpanded\def\url[#1]% slow
- {\bgroup
- \processaction
- [\@@uralternative]
- [ \v!none=>\chardef\urlsplitmode\zerocount,
- \v!both=>\chardef\urlsplitmode\plusone,
- \v!after=>\chardef\urlsplitmode\plustwo,
- \v!before=>\chardef\urlsplitmode\plusthree]%
- \doifelse\@@urspace\v!yes
- {\setbetweenisolatedwords{\scratchskip\currentspaceskip\hskip\zeropoint\!!plus.2\scratchskip}}
- {\setbetweenisolatedwords\allowbreak}%
- \def\doexternaldocument##1##2##3{\hyphenatedurl{##1}}% awful hack
- \dostartattributes\??ur\c!style\c!color{}%
- \getvalue{\v!file:::#1}%
- \dostopattributes
- \egroup}
-
-%D This macro is hooked into a support macro, and thereby
-%D \URL's break ok, according to the setting of a switch,
-%D
-%D \startbuffer
-%D \useURL
-%D [test]
-%D [sentence_sentence%sentence#sentence~sentence/sentence//sentence:sentence.sentence]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Such an \URL\ is, depending on the settings, hyphenated as:
-%D
-%D \getbuffer
-%D
-%D \startlinecorrection
-%D \hbox to \hsize
-%D {\hss\en
-%D \setupreferencing[urlalternative=both]%
-%D \vbox{\hsize.25cm\hbox{\bf both}\prewordbreak\url[test]}%
-%D \hss
-%D \setupreferencing[urlalternative=before]%
-%D \vbox{\hsize.25cm\hbox{\bf before}\prewordbreak\url[test]}%
-%D \hss
-%D \setupreferencing[urlalternative=after]%
-%D \vbox{\hsize.25cm\hbox{\bf after}\prewordbreak\url[test]}%
-%D \hss}
-%D \stoplinecorrection
-%D
-%D By setting \type{urlspace=yes} one can get slightly better
-%D spacing when using very long \URL's.
-
-%D Many macro definitions ago we called for the auxiliary macro
-%D \type {\setouterlocation} and now is the time to define this
-%D one.
-
-\newconditional\forceURLlocation
-
-\def\setouterfilelocation#1#2#3%
- {\edef\otherURL{#1}%
- \edef\otherfile{#2}}%
-
-\def\setouterlocation#1%
- {\ifcsname\v!file:::#1\endcsname
- \let\doexternaldocument\setouterfilelocation % will change
- \let\doexternalurl \setouterfilelocation % will change
- \csname\v!file:::#1\endcsname
- \else
- \ifconditional\forceURLlocation
- \edef\otherURL{#1}%
- \let\otherfile\empty
- \else
- \let\otherURL\empty
- \edef\otherfile{#1}%
- \fi
- \fi
- \setfalse\forceURLlocation
- \doifparentfileelse\otherfile
- {\let\otherURL\empty
- \let\otherfile\empty
- \global\let\otherlabel\empty
- \let\otherprefix\empty}
- {\xdef\otherlabel{#1}%
- \edef\otherprefix{#1::}}}
-
-%D When defining the external source of information, one can
-%D also specify a suitable name (the last argument). This name
-%D can be called upon with:
-%D
-%D \showsetup{from}
-%D
-%D As can be expected, this macro used \type{\goto} to
-%D perform its task.
-
-\def\dospecialfrom % retest this one !
- {\dosingleempty\dodospecialfrom}
-
-\def\dodospecialfrom[#1]%
- {\dontleavehmode % added, but probably not needed
- \bgroup
- \protectlabels % needed for active french :'s
- \iffirstargument
- \edef\!!stringa{#1}%
- \doifincsnameelse{::}\!!stringa\donothing{\edef\!!stringa{#1::}}%
- \expanded{\redospecialfrom[\!!stringa]}%
- \else
- \expanded{\nodospecialfrom[\otherlabel]}%
- \fi
- \egroup}
-
-\def\redospecialfrom[#1::#2]%
- {\ifcsname\v!file:::#1\endcsname
- \def\doexternaldocument##1##2##3{\goto{##3}[#1::#2]}%
- \csname\v!file:::#1\endcsname
- \else
- \tttf[#1]%
- \fi}
-
-\def\nodospecialfrom[#1]%
- {\ifcsname\v!file:::#1\endcsname
- \def\doexternaldocument##1##2##3{##3}% different than ^
- \csname\v!file:::#1\endcsname
- \else
- \tttf[#1]%
- \fi}
-
-%D We also support:
-%D
-%D \starttyping
-%D \goto{some text}[file(identifier{location}]
-%D \stoptyping
-%D
-%D which is completely equivalent with
-%D
-%D \starttyping
-%D \goto{some text}[identifier::location]
-%D \stoptyping
-%D
-%D The fastest implementation would be:
-
-\definespecialtest\v!file {\setfalse\forceURLlocation\handlespecialFILEandURL}
-\definespecialtest\v!URL {\settrue \forceURLlocation\handlespecialFILEandURL}
-\definespecialtest\v!url {\settrue \forceURLlocation\handlespecialFILEandURL}
-
-\definespeciallocation\v!file{\setfalse\forceURLlocation\handlespecialallocationFILEandURL}
-\definespeciallocation\v!URL {\settrue \forceURLlocation\handlespecialallocationFILEandURL}
-\definespeciallocation\v!url {\settrue \forceURLlocation\handlespecialallocationFILEandURL}
-
-\def\handlespecialFILEandURL
- {\localdoifreferencefoundelse
- {\currentreferenceoperation::\currentreferencearguments}}
-
-\def\handlespecialallocationFILEandURL
- {\let\currentouterreference\currentreferenceoperation
- \let\currentinnerreference\currentreferencearguments
- \let\currentreferenceoperation\empty
- \let\currentreferencearguments\empty
- \gotoouterlocation}
-
-%D Now we have file references as special ones, it's rather
-%D logical to have the viewer specific ones available in a dual
-%D way too. At first glance we could do with:
-%D
-%D \starttyping
-%D \definespeciallocation\v!action
-%D {\getreferenceelements\currentreferenceoperation
-%D \handleexecreference}
-%D \stoptyping
-%D
-%D An better alternative, slower but error aware, is
-
-% \definespecialtest\v!actie
-% {\localdoifreferencefoundelse\currentreferenceoperation}
-
-\definespecialtest\v!action % rather ugly action(whatever{argument})
- {\expanded{\localdoifreferencefoundelse{\currentreferenceoperation
- \ifx\currentreferencearguments\empty\else{\currentreferencearguments}\fi}}}
-
-\definespeciallocation\v!action
- {\handleexecreference}
-
-%D So now we can say:
-%D
-%D \starttyping
-%D \goto{some action}[PreviousJump]
-%D \stoptyping
-%D
-%D as well as:
-%D
-%D \starttyping
-%D \goto{some text}[action(PreviousJump]
-%D \stoptyping
-
-%D A special case of references are those to programs. These,
-%D very system dependant references are implemented by abusing
-%D some of the previous macros.
-%D
-%D \showsetup{setupprograms}
-%D \showsetup{defineprogram}
-%D \showsetup{program}
-%D
-%D The latter gives access to the description of the program,
-%D being the last argument to the definition command.
-
-\def\setupprograms
- {\dodoubleargument\getparameters[\??pr]}
-
-\def\dodefineprogram[#1][#2][#3]%
- {\setgvalue{\v!program:::#1}{\doprogram{#2}{#3}}}
-
-\def\defineprogram
- {\dotripleargument\dodefineprogram}
-
-\def\program#1[#2]%
- {\bgroup
- \ifcsname\v!program:::#2\endcsname
- \def\doprogram##1##2{\goto{\doifelsenothing{#1}{##2}{#1}}[\v!program(#2)]}%
- \csname\v!program:::#2\endcsname
- \else
- {\tttf[#2]}%
- \fi
- \egroup}
-
-% needs an update: program(abc{arg})
-
-\definespeciallocation\v!program#1#2%
- {\bgroup
- \iflocation
- \ifcsname\v!program:::\currentreferenceoperation\endcsname
- \def\doprogram##1##2{\def\@@programfile{##1}}%
- \getvalue{\v!program:::\currentreferenceoperation}%
- \else
- \let\@@programfile\currentreferenceoperation
- \fi
- \defconvertedcommand\ascii\@@programfile
- \dohandlegoto
- {#2}%
- {\dostartrunprogram\buttonwidth\buttonheight{\@@prdirectory\ascii}\currentreferencearguments}%
- {\dostoprunprogram}%
- \else
- {#2}%
- \fi
- \egroup}
-
-%D As we can see, we directly use the special reference
-%D mechanism, which means that
-%D
-%D \starttyping
-%D \goto{some text}[program(name{args})]
-%D \stoptyping
-%D
-%D is valid.
-
-%D The next macro provides access to the actual pagenumbers.
-%D When documenting and sanitizing the original reference
-%D macros, I decided to keep the present meaning as well as to
-%D make this meaning available as a special reference method.
-%D So now one can use:
-%D
-%D \starttyping
-%D \gotopage{some text}[location]
-%D \gotopage{some text}[number]
-%D \gotopage{some text}[file::number]
-%D \stoptyping
-%D
-%D as well as:
-%D
-%D \starttyping
-%D \goto{some text}[page(location)]
-%D \goto{some text}[page(number)]
-%D \goto{some text}[file::page(number)]
-%D \stoptyping
-%D
-%D Here location is a keyword like \type{nextpage}.
-%D
-%D \showsetup{gotopage}
-
-\def\dodefinepage[#1][#2]%
- {\setvalue{\v!page:::#1}{#2}}
-
-\def\definepage
- {\dodoubleargument\dodefinepage}
-
-\definepage [\v!firstpage] [\firstpage]
-\definepage [\v!previouspage] [\prevpage]
-\definepage [\v!nextpage] [\nextpage]
-\definepage [\v!lastpage] [\lastpage]
-\definepage [\v!firstsubpage] [\firstsubpage]
-\definepage [\v!previoussubpage] [\prevsubpage]
-\definepage [\v!nextsubpage] [\nextsubpage]
-\definepage [\v!lastsubpage] [\lastsubpage]
-\definepage [\v!first] [\firstpage]
-\definepage [\v!previous] [\prevpage]
-\definepage [\v!next] [\nextpage]
-\definepage [\v!last] [\lastpage]
-\definepage [\v!first\v!sub] [\firstsubpage]
-\definepage [\v!previous\v!sub] [\prevsubpage]
-\definepage [\v!next\v!sub] [\nextsubpage]
-\definepage [\v!last\v!sub] [\lastsubpage]
-
-%D Because we combine both methods, we have to take care of
-%D the \type{file::page(n)} as well as \type{page(file::n)}.
-
-\definespeciallocation\v!page#1#2% page(n) page(+n) page(-n)
- {\iflocation
- \ifx\currentouterreference\empty
- \splitoffreference\currentreferenceoperation
- \else
- \let\currentinnerreference\currentreferenceoperation
- \fi
- \ifx\currentouterreference\empty
- \doifinstringelse+\currentinnerreference{\edef\currentinnerreference{\the\numexpr\realpageno\currentinnerreference}}
- {\doifinstring -\currentinnerreference{\edef\currentinnerreference{\the\numexpr\realpageno\currentinnerreference}}}%
- \doifnonzeropositiveelse\currentinnerreference\donothing{\edef\currentinnerreference{1}}%
- \docheckrealreferencepage\currentinnerreference % new
- \let\currentrealreference\currentinnerreference % handy to have this available
- \gotorealpage\empty\empty\currentinnerreference{#2}%
- \else
- \setouterlocation\currentouterreference
- \doifnonzeropositiveelse\currentinnerreference\donothing{\edef\currentinnerreference{\executeifdefined{\v!page:::\currentinnerreference}1}}%
- \gotorealpage\otherURL\otherfile\currentinnerreference{#2}%
- \fi
- \else
- {#2}%
- \fi}
-
-\def\gotopage#1[#2]%
- {\goto{#1}[\v!page(#2)]}
-
-%D A still very rudimentary|/|experimental forward|/|backward
-%D reference mechanism is provided by the macro \type{\atpage}:
-%D
-%D \starttyping
-%D ... \somewhere{backward text}{forward text}[someref] ...
-%D ... \atpage[someref] ...
-%D \stoptyping
-%D
-%D In future versions there will be more sophisticated
-
-%D support, also suitable for references to floating bodies.
-
-\unexpanded\def\somewhere#1#2#3[#4]% #3 gobbles space around #2
- {\dontleavehmode
- %\leaveoutervmode
- \doifreferencefoundelse{#4}
- {\ifforwardreference
- \doifelsenothing{#1}
- {\dosymbolreference{}{}[#4]}
- {\dogotospace{#1}[#4]}%
- \else
- \doifelsenothing{#2}
- {\dosymbolreference{}{}[#4]}
- {\dogotospace{#2}[#4]}%
- \fi}
- {\unknownreference{#4}#1/#2}%
- \referenceinfo{<}{#4}}
-
-\unexpanded\def\atpage[#1]%
- {\dontleavehmode
- %\leaveoutervmode
- \doifreferencefoundelse{#1}
- {\ifrealreferencepage
- \ifforwardreference
- \dogotofixed{\labeltext\v!hencefore}[#1]%
- \else
- \dogotofixed{\labeltext\v!hereafter}[#1]%
- \fi
- \else
- \dogotofixed{\labeltexts\v!atpage\currentpagereference}[#1]%
- \fi}
- {\unknownreference{#1}%
- \labeltexts\v!page\dummyreference}%
- \referenceinfo{<}{#1}}
-
-%D We can cross link documents by using:
-%D
-%D \showsetup{coupledocument}
-%D
-%D like:
-%D
-%D \starttyping
-%D \coupledocument[print][somefile][chapter,section]
-%D \stoptyping
-%D
-%D After which when applicable, we have available the
-%D references:
-%D
-%D \starttyping
-%D \goto{print version}[print::chapter]
-%D \stoptyping
-%D
-%D and alike. The title placement definition macros have a
-%D key \type{file}, which is interpreted as the file to jump
-%D to, that is, when one clicks on the title.
-
-\let\crossdocumentreferences\empty
-\let\crossdocumentelements\empty
-
-\newif\ifautocrossdocument
-
-\def\docoupledocument[#1][#2][#3][#4]% is this :/- safe ?
- {\ifthirdargument
- \begingroup
- \def\dolistelement##1##2##3##4##5##6% 2=aut 6=pag / 2 goes into text ref slot
- {\global\utilitydonetrue %{Watch the braces here below!}
- \setglobalcrossreference{{##1::\@@filterblocknumberpart[##5]}}{}{##6}{##2}}%
- \def\usereferences[##1]%
- %{\setbox0\vbox{\doutilities{#3}{##1}{#3}\relax\relax}}%
- {\startnointerference
- \doutilities{#3}{##1}{#3}\relax\relax
- \stopnointerference}%
- \douseexternaldocument[#1][#2][#4]%
- \doglobal\addtocommalist{#1}\crossdocumentreferences
- \def\docommand##1%
- {\letgvalue{\??rf##1\c!state}\v!start % for fast checking
- \doglobal\addtocommalist{##1}\crossdocumentelements}%
- \processcommalist[#3]\docommand
- \ifutilitydone
- \global\autocrossdocumenttrue
- \fi
- \endgroup
- \fi}
-
-\def\coupledocument
- {\doquadrupleempty\docoupledocument}
-
-%D --- STRANGE HERE, BETTER IN CORE-NAV ---
-
-\def\checkcontrastreference#1%
- {\ifnum\currentreferencetype=\rt!page\ifnum\currentdatareference=\realpageno
- \doifdefined{#1\c!contrastcolor}{\setevalue{#1\c!color}{\getvalue{#1\c!contrastcolor}}}%
- \fi\fi}
-
-\def\checkcontrastreference#1%
- {\ifnum\currentreferencetype=\rt!page\relax\ifnum\currentdatareference=\realpageno
- \copycsname#1\c!color\endcsname\csname#1\c!contrastcolor\endcsname
- \fi\fi}
-
-%D Buttons are just what their names says: things that can be
-%D clicked (pushed) on. They are similar to \type{\goto},
-%D except that the text argument is not interpreted.
-%D Furthermore one can apply anything to them that can be done
-%D with \type{\framed}.
-%D
-%D \startbuffer
-%D \button[width=3cm,height=1.5cm]{Exit}[ExitViewer]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D gives
-%D
-%D \getbuffer
-%D
-%D This command is formally specified as:
-%D
-%D \showsetup{button}
-%D
-%D The characteristics can be set with:
-%D
-%D \showsetup{setupbuttons}
-
-\def\setupbuttons
- {\dodoubleargument\getparameters[\??bt]}
-
-\definecomplexorsimpleempty\button
-
-\def\complexbutton
- {\docomplexbutton\??bt}
-
-\presetlocalframed[\??bt]
-
-\long\def\docomplexbutton#1[#2]#3#4% get rid of possible space before [#4]
- {\dodocomplexbutton#1[#2]{#3}#4} % #4 == [
-
-\def\buttonframed{\dodoubleempty\localframed[\??bt]} % goodie
-
-\long\def\dodocomplexbutton#1[#2]#3[#4]% #3 can contain [] -> {#3} later
- {\bgroup
- \doifvalue{#1\c!state}\v!stop\locationfalse
- \iflocation
- \resetgoto
- \ConvertConstantAfter\doifelse{#3}\v!none\hphantom\hbox
- {\doifelsenothing{#4}
- {\setlocationboxnop#1[#2]{#3}[#4]}
- {\doifreferencefoundelse{#4}
- {\setlocationboxyes#1[#2]{#3}[#4]}
- {\unknownreference{#4}%
- \setlocationboxnop#1[#2]{#3}[#4]}}}%
- \fi
- \egroup}
-
-%D Interaction buttons, in fact a row of tiny buttons, are
-%D typically only used for navigational purposed. The next
-%D macro builds such a row based on a specification list.
-%D
-%D \startbuffer
-%D \interactionbuttons
-%D [width=\hsize][page,PreviousJump,ExitViewer]
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D gives
-%D
-%D \getbuffer
-%D
-%D Apart from individual entries, one can use \type{page} and
-%D \type {subpage} as shortcuts to their four associated buttons.
-%D The symbols are derived from the symbols linked to the
-%D entries.
-
-% does not work well with for instance SomeRef{whatever}
-
-\def\interactionbuttons
- {\dodoubleempty\dointeractionbuttons}
-
-\def\dointeractionbuttons[#1][#2]% er is een verdeel macro \horizontalfractions
- {\iflocation
- % BUG: fails when frame=off; best is to rewrite this macro
- \bgroup
- \doif\@@ibstate\v!stop\locationfalse
- \iflocation
- \ifsecondargument
- \setupinteractionbar[#1]%
- \checkinteractionbar{1.5em}\v!broad\!!zeropoint % brrrrr
- \setbox2\hbox
- {\localframed[\??ib][\c!background=]{\symbol[\@@iasymbolset][\v!previouspage]}}%
- \!!heighta\ht2 % needed because we default to nothing
- \setupinteractionbar[\c!strut=\v!no]%
- \setinteractionparameter\c!width\!!zeropoint
- \!!counta\zerocount % new, was 1
- \processallactionsinset
- [#2]
- [ \v!page=>\advance\!!counta 4,
- \v!subpage=>\advance\!!counta 4,
- \s!unknown=>\advance\!!counta 1]%
- \ifdim\@@ibwidth=\zeropoint
- \!!widtha2em
- \advance\!!widtha \@@ibdistance % new
- \!!widthb\!!counta\!!widtha
- \advance\!!widthb -\@@ibdistance % new
- \else
- \!!widtha\@@ibwidth
- \!!widthb\@@ibdistance % new
- \multiply\!!widthb \!!counta % new
- \advance\!!widthb -\@@ibdistance % new
- \advance\!!widtha -\!!widthb % new
- \divide\!!widtha \!!counta
- \!!widthb\@@ibwidth
- \fi
- \def\goto##1% clash ?
- {\setnostrut
- \edef\localreference{##1}%
- \expanded{\dodocomplexbutton\??ib[\c!height=\the\!!heighta,\c!width=\the\!!widtha]}%
- {\dontleavehmode\symbol[\@@iasymbolset][\localreference]}%
- [\localreference]%
- \hss}%
- \hbox to \!!widthb
- {\processallactionsinset
- [#2]
- [ \v!page=>\goto\v!firstpage
- \goto\v!nextpage
- \goto\v!previouspage
- \goto\v!lastpage,
- \v!subpage=>\goto\v!firstsubpage
- \goto\v!nextsubpage
- \goto\v!previoussubpage
- \goto\v!lastsubpage,
- \s!unknown=>\goto\commalistelement]%
- \unskip}%
- \else
- \interactionbuttons[][#1]%
- \fi
- \fi
- \egroup
- \fi}
-
-%D \macros
-%D {overlaybutton}
-%D
-%D For converience we provide:
-%D
-%D \starttyping
-%D \overlaybutton[reference]
-%D \stoptyping
-%D
-%D This command can be used to define overlays an/or can be
-%D used in the whatevertext areas, like:
-%D
-%D \starttyping
-%D \defineoverlay[PrevPage][\overlaybutton{PrevPage}]
-%D \setupbackgrounds[page][background=PrevPage]
-%D \setuptexttexts[\overlaybutton{NextPage}]
-%D \stoptyping
-%D
-%D For practical reasons, this macro accepts square brackets
-%D as well as braces.
-
-\definecomplexorsimple\overlaybutton
-
-\def\simpleoverlaybutton#1%
- {\complexoverlaybutton[#1]}
-
-\def\complexoverlaybutton[#1]%
- {\iflocation
- \doifreferencefoundelse{#1}
- {\overlayfakebox {#1}}
- {\unknownreference{#1}}%
- \fi}
-
-\def\overlayfakebox#1%
- {\hbox
- {\setbox\scratchbox\null
- \wd\scratchbox\overlaywidth
- \ht\scratchbox\overlayheight
- \locationstrutfalse
- \gotolocation{#1}{\box\scratchbox\presetgoto}}}
-
-%D \macros
-%D {dotextprefix}
-%D
-%D In previous macros we used \type {\dotextprefix} to
-%D generate a space between a label and a number.
-%D
-%D \starttyping
-%D \dotextprefix{text}
-%D \stoptyping
-%D
-%D Only when \type {text} is not empty, a space is inserted.
-
-\def\dotextprefix#1%
- {\bgroup
- \global\labeltextdonefalse % this is an ugly dependancy,
- \setbox\scratchbox\hbox{#1}% to be solved some day
- \ifdim\wd\scratchbox>\zeropoint
- \unhbox\scratchbox
- \iflabeltextdone\else\@@rfseparator\fi
- \else
- \unhbox\scratchbox
- \fi
- \egroup}
-
-%D Plugin code:
-
-%D In the next settings we see some variables that were not
-%D used here and that concern the way the pagenumbers refered
-%D to are typeset.
-
-\setupreferencing
- [\c!state=\v!start,
- \c!autofile=\v!no,
- \v!part\c!number=\v!yes,
- \v!chapter\c!number=\v!no,
- \c!interaction=\v!all,
- %\c!urlalternative=\v!both,
- %\c!urlspace=\v!no,
- %\c!urlletter=,
- %\c!urlkleur=,
- \c!convertfile=\v!no,
- %\c!strut=\v!no, % some day an option
- \c!prefix=,
- \c!width=.75\makeupwidth,
- \c!left=\quotation\bgroup,
- \c!right=\egroup,
- \c!global=\v!no,
- \c!expansion=\v!no,
- \c!separator=\nonbreakablespace]
-
-\setupurl
- [\c!alternative=\v!both,
- \c!space=\v!no,
- \c!style=\v!type,
- \c!color=]
-
-\setupprograms
- [\c!directory=]
-
-%D We cannot set up buttons (not yet, this one calls a menu macro):
-
-% under consideration:
-%
-% \setupinteraction[state=start]
-%
-% \unprotect
-%
-% \chardef\rt!extern=5
-%
-% \definesystemreferencehandler \rt!extern \handleexecreference
-%
-% \definespecialtest\v!extern
-% {\expanded{\localdoifreferencefoundelse{\currentreferenceoperation
-% \ifx\currentreferencearguments\empty\else{\currentreferencearguments}\fi}}}
-%
-% \definespeciallocation\v!extern
-% {\handleexecreference}
-%
-% \def\defineexternalreference[#1]%
-% {\setglobalsystemreference\rt!extern{#1}{#1}}
-%
-% \protect
-%
-% \defineexternalreference[NewOne]
-%
-% \def\PDFexecuteNewOne{/SomeNewAction /SomeParameter (\argumentA)}
-%
-% \starttext
-%
-% \goto{test}[AVDP{../../nach-dateipfad.pdf}]
-% \blank
-% \goto{test}[external(AVDP{../../nach-dateipfad.pdf})]
-% \blank
-% \goto{test}[AVDP{../../nach-dateipfad.pdf}]
-% \blank
-% \goto{test}[external(AVDP{../../nach-dateipfad.pdf})]
-% \blank
-% \goto{test}[CloseDocument]
-% \blank
-% \goto{test}[action(CloseDocument)]
-%
-% \stoptext
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-reg.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-reg.mkii
deleted file mode 100644
index a8d05fb7862..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/strc-reg.mkii
+++ /dev/null
@@ -1,1243 +0,0 @@
-%D \module
-%D [ file=strc-reg,
-%D version=1999.12.27,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Register Management,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Structure Macros / Register Management}
-
-\newif \ifautoregisterhack % for the moment a private hack
-
-% new: eigennummer=ja => eerste {} ipv pag nummer
-
-\unprotect
-
-%D Isolated but still indocumented.
-
-% Formaat tex-utility-input-file <jobname.tui>:
-%
-% i e {tag} {loc} {pure} {entry+..} {p:c:p:sp:ssp=>page} {realpage}
-% i s {tag} {loc} {pure} {entry+..} {other entry}
-%
-% In plaats van + kan een & worden gebruikt. Ook kan als
-% eerste karakter worden opgegeven wat de scheider is.
-%
-% \index {entry}
-% \index[key] {entry}
-% \index[pageclass::] {entry}
-% \index[pageclass::key]{entry}
-% \index {textclass::entry}
-% \index[key] {textclass::entry}
-% \index[pageclass::] {textclass::entry}
-% \index[pageclass::key]{textclass::entry}
-%
-% Deze file wordt met het Perl script TeXUtil omgezet in
-% een in te lezen file met de commando's:
-%
-% \registerentrya {tag} {ingang}
-% \registerentryb {tag} {subingang}
-% \registerentryc {tag} {subsubingang}
-%
-% \registerpage {tag} {pag,txt} {volgnummer} {paginanummer} {volgnummer}
-%
-% \registersee {tag} {pag,txt} {andere ingang}
-%
-% \registerentry {tag} {letter}
-
-\def\dosetupregister[#1][#2][#3]%
- {\ifthirdargument
- \def\dodosetupregister##1%
- {\getparameters[\??id##1#2][#3]%
- \preparepageprefix{\??id##1}}%
- \else
- \def\dodosetupregister##1%
- {\getparameters[\??id##1][#2]%
- \doifvalue{\??id##1\c!coupling}\v!yes
- {\appendtoks\coupleregister[##1][#2]\to\everystarttext}%
- \preparepageprefix{\??id##1}}%
- \fi
- \processcommalist[#1]\dodosetupregister}
-
-\def\setupregister
- {\dotripleempty\dosetupregister}
-
-\def\getlastregisterentry#1%
- {\def\docommand##1{\def\!!stringa{##1}}%
- \processseparatedlist[#1][+]\docommand
- \!!stringa}
-
-\def\registerparameter#1{\csname\??id\currentregister#1\endcsname}
-
-% \enableregime[windows] \setupregister[index][keyexpansion=strict]
-%
-% \index[tsch]{tsch} test \index{Qtsch} test \index[ratsch]{Rtsch} test
-
-\newif\ifwritetoregister \writetoregistertrue
-
-\chardef\registerpagestatus\zerocount
-
-\def\doprocesspageregister[#1]#2#3% key altnum entry
- {\ifwritetoregister
- \begingroup
- \thisisnextinternal\s!ind
- \ifduplicate\getlastregisterentry{#3}\fi
- \defconvertexpanded\asciiregisterentryA{\registerparameter\c!keyexpansion}{#1}%
- \defconvertexpanded\asciiregisterentryB{\registerparameter\c!expansion }{#3}%
- \doifsomething{\registerparameter\c!keyexpansion}
- {\ifx\asciiregisterentryA\empty
- \defconvertexpanded\asciiregisterentryA{\registerparameter\c!keyexpansion}{#3}%
- \fi}%
- \makesectionformat
- \doifelse{\registerparameter\c!ownnumber}\v!yes
- \donetrue\donefalse
- \expanded{\writeutility{r % spaces are essential
- \ifcase\registerpagestatus\space\or e\or f\or t\fi\space
- {\currentregister} %
- {\nextinternalreference} %
- {\asciiregisterentryA} %
- {\asciiregisterentryB} %
- {\sectionformat\sectionseparator\sectionseparator\ifdone#2\else\noexpand\pagenumber\fi} %
- {\noexpand\realfolio}}}%
- \getfirstcharacter\currentregister
- \registerinfo{> \firstcharacter}{#3}%
- \endgroup
- \fi}
-
-\def\doregister#1%
- {\chardef\registerpagestatus\plusone
- \def\currentregister{#1}%
- \doifelse{\registerparameter\c!ownnumber}\v!yes
- {\dosingleempty\dodoregister}
- {\dosingleempty\donoregister}}
-
-\def\donoregister[#1]%
- {\dodoregister[#1]{}}
-
-% \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%
- {\doflushatpar{\doprocesspageregister[#1]{#2}{#3}}}
-
-\def\writetoregister[#1]% to be documented
- {\doregister{#1}}
-
-% \def\startregister
-% {\dotripleempty\dostartregister}
-
-% \def\dostartregister[#1][#2][#3]#4%
-% {\chardef\registerpagestatus\plustwo
-% \def\currentregister{#1}%
-% \setgvalue{\??id#1\??id#2}{\dodostopregister[#1][#3]{#4}}%
-% \dodoregister[#3]{}{#4}}
-
-\def\startregister
- {\doquadrupleempty\dostartregister}
-
-\def\dostartregister[#1][#2][#3][#4]#5% % 3 args: #3 is sortkey
- {\chardef\registerpagestatus\plustwo % 4 args: #3 is type, #4 is sortkey
- \def\currentregister{#1}%
- \iffourthargument
- \setgvalue{\??id#1\??id#2}{\dodostopregister[#1][#4]{#5}}%
- \dodoregister[#4]{#3}{#5}%
- \else
- \setgvalue{\??id#1\??id#2}{\dodostopregister[#1][#3]{#5}}%
- \dodoregister[#3]{}{#5}%
- \fi}
-
-\def\stopregister
- {\dodoubleargument\dostopregister}
-
-\def\dostopregister[#1][#2]%
- {\getvalue{\??id#1\??id#2}\letgvalue{\??id#1\??id#2}\relax}
-
-\def\dodostopregister[#1][#2]#3%
- {\chardef\registerpagestatus\plusthree
- \def\currentregister{#1}%
- \dodoregister[#2]{}{#3}} % key altnum entry
-
-\def\doprocessseeregister[#1]#2#3%
- {\ifwritetoregister
- \begingroup
- \thisisnextinternal\s!ind
- \ifduplicate\getlastregisterentry{#2}\fi
- \defconvertexpanded\asciiregisterentryA{\registerparameter\c!keyexpansion}{#1}%
- \defconvertexpanded\asciiregisterentryB{\registerparameter\c!expansion }{#2}%
- \defconvertexpanded\asciiregisterentryC{\registerparameter\c!expansion }{#3}%
- \doifsomething{\registerparameter\c!keyexpansion}
- {\ifx\asciiregisterentryA\empty
- \defconvertexpanded\asciiregisterentryA{\registerparameter\c!keyexpansion}{#2}%
- \fi}%
- \makesectionformat
- \expanded{\writeutility{r s %
- {\currentregister} %
- {\nextinternalreference} %
- {\asciiregisterentryA} %
- {\asciiregisterentryB} %
- {\asciiregisterentryC} %
- {\sectionformat}}}%
- \endgroup
- \registerinfo{> see}{#2}%
- \fi}
-
-\def\complexdoseeregister[#1]#2#3%
- {\doflushatpar{\doprocessseeregister[#1]{#2}{#3}}}
-
-\def\doseeregister#1%
- {\def\currentregister{#1}%
- \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\writetoregister
- {\dodoubleempty\dowritetoregister}
-
-\def\ifregistergeplaatst{\ifutilitydone}
-
-\newif\iffirstregisterpage
-\newif\iffirstregisterentry
-
-\let\c!entrya\empty
-\let\c!entryb\empty
-\let\c!entryc\empty
-\let\c!entryd\empty
-
-\def\nextregisterpage
- {\iffirstregisterpage
- \doglobal\newcounter\registerpagenumber
- \fi
- \doglobal\increment\registerpagenumber}
-
-\def\doregisterpagelocation#1#2%
- {\nextregisterpage
- \hbox to 1em{\hss\doregisterpagehowto{#1}{#2}\hss}}
-
-% todo: \installregisterpagehandler
-
-\def\setregisterpage#1% todo: currentregister gebruiken
- {\let\registerpageseparator\empty
- \processaction
- [\getvalue{\??id#1\c!symbol}]
- [ \c!n=>{\def\doregisterpage##1[##2]%
- {\doregisterpagelocation{#1}{\registerpagenumber}\/}},
- \c!a=>{\def\doregisterpage##1[##2]%
- {\doregisterpagelocation{#1}{\character{\registerpagenumber}\/}}},
- 1=>{\def\doregisterpage##1[##2]%
- {\doregisterpagelocation{#1}{$\bullet$}}},
- 2=>{\def\doregisterpage##1[##2]%
- {\doregisterpagelocation{#1}{\vrule\!!width1em\!!height1ex\!!depth\zeropoint}}},
- \v!none=>{\def\doregisterpage##1[##2]{}},%
- \s!unknown=>{\def\registerpagesymbol{\getvalue{\??id#1\c!symbol}}%
- \def\doregisterpage##1[##2]%
- {\doregisterpagelocation{#1}{\registerpagesymbol}}},
- \s!default=>{\def\registerpageseparator{,}%
- \let\doregisterpage\doregisterpagedefault}]}
-
-\def\doregisterpagedefault#1[#2]%
- {\doregisterpagehowto{#1}{\strut\pageprefix{\??id#1}[#2]\translatednumber[#2]}}
-
-% test case
-%
-% \starttext
-% \placelist[section][criterium=all] \blank[2*big]
-% \placeregister[index][compress=no] \blank[2*big]
-% \placeregister[index][compress=no,sectionnumber=yes] \blank[2*big]
-% \placeregister[index][compress=yes] \page
-% test text \index{test index}
-% \section{heading}
-% more test text \index{test index}
-% \section{heading}
-% more test text \index{test index}
-% \page
-% \section{heading text \index{test index}}
-% more test text \index{test index}
-% \page
-% test text \index{test index}
-% \section{heading text \index{test index}}
-% more test text \index{test index}
-% \stoptext
-
-\let\registerpagehowto\empty
-\let\registertexthowto\empty
-
-\def\setregisterhowto[#1,#2]%
- {\def\registerpagehowto{#1}%
- \def\registertexthowto{#2}}%
-
-\def\doregistertexthowto#1#2%
- {\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\empty
- \getvalue{\??id#1\c!pagecommand}{#2}%
- \dostopattributes}
-
-\def\registerentry #1{\executeifdefined{#1\s!entry }\gobbleoneargument }
-\def\registerentrya#1{\executeifdefined{#1\s!entrya}\gobbleoneargument }
-\def\registerentryb#1{\executeifdefined{#1\s!entryb}\gobbleoneargument }
-\def\registerentryc#1{\executeifdefined{#1\s!entryc}\gobbleoneargument }
-\def\registerentryd#1{\executeifdefined{#1\s!entryd}\gobbleoneargument }
-\def\registersee #1{\executeifdefined{#1\s!see }\gobblethreearguments}
-\def\registerpage #1{\executeifdefined{#1\s!page }\gobblefourarguments }
-\def\registerfrom #1{\executeifdefined{#1\s!from }\gobblefourarguments }
-\def\registerto #1{\executeifdefined{#1\s!to }\gobblefourarguments }
-
-\def\doresetregister#1%
- {\letvalue{#1\s!entrya}\gobbleoneargument
- \letvalue{#1\s!entryb}\gobbleoneargument
- \letvalue{#1\s!entryc}\gobbleoneargument
- \letvalue{#1\s!entryd}\gobbleoneargument
- \letvalue{#1\s!see }\gobblethreearguments
- \letvalue{#1\s!page }\gobblefourarguments
- \letvalue{#1\s!from }\gobblefourarguments
- \letvalue{#1\s!to }\gobblefourarguments
- \letvalue{#1\s!entry }\gobbleoneargument}
-
-\newif\iffirstsubentry
-\newif\iffirstsubsubentry
-
-\newcounter\currententrylevel
-
-\let\c!entryletter =\empty
-\let\c!entryreference=\empty
-\let\c!entrya =\relax
-\let\c!entryb =\relax
-\let\c!entryc =\relax
-\let\c!entryd =\relax
-
-\def\limitedregisterentry#1#2%
- {\getvalue{\??id#1\c!textcommand}%
- {\doifelsenothing{\??id#1\c!maxwidth}
- {#2}
- {\limitatetext{#2}{\getvalue{\??id#1\c!maxwidth}}{\unknown}}}}
-
-\def\dosetpageregisterpage#1#2#3#4#5#6%
- {\doifreglevelelse[#5]{\dodosetpageregisterpage{#1}{#2}{#3}{#4}{#5}{#6}}{}}
-
-\def\dodosetpageregisterpageA#1#2#3#4#5#6%
- {\global\utilitydonetrue
- \c!entryletter
- \setregisterhowto[#3]%
- \def\dohandleregisterentry##1%
- {\bgroup
- \if!!donea % \strut nieuw
- \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\c!entryd \or
- \c!entrya\!!doneatrue\c!entryb\c!entryc\c!entryd \or
- \c!entrya\c!entryb\!!doneatrue\c!entryc\c!entryd \or
- \c!entrya\c!entryb\c!entryc\!!doneatrue\c!entryd \fi}
- {\c!entrya\c!entryb\c!entryc\c!entryd}%
- \global\let\c!entrya\relax
- \global\let\c!entryb\relax
- \global\let\c!entryc\relax
- \global\let\c!entryd\relax
- \global\let\c!entryletter\relax
- \global\let\c!entryreference\relax}
-
-% \def\dodosetpageregisterpageB#1#2#3#4#5#6%
-% {\iffirstregisterpage
-% \expandafter\hskip\getvalue{\??id#2\c!distance}\relax
-% \else\ifnum#1=3
-% \strut|--|\relax % -- !
-% \else
-% % \relax after space needed because | looks ahead
-% \strut\registerpageseparator|\space|\relax
-% \fi\fi
-% \iftrue % \iftrue ...\fi to preserve indentation, can be folded out
-% \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
-% \relax
-% \fi
-% \global\firstregisterpagefalse}
-
-\def\dodosetpageregisterpageB#1#2#3#4#5#6%
- {\iffirstregisterpage
- \expandafter\hskip\getvalue{\??id#2\c!distance}\relax
- \else\ifnum#1=3
- \strut|--|\relax % -- !
- \else
- % \relax after space needed because | looks ahead
-% TH: next line replaced
-% \strut\registerpageseparator|\space|\relax
- \strut \registerpageseparator{ }%
-% /TH
- \fi\fi
- \iftrue % \iftrue ...\fi to preserve indentation, can be folded out
- \begingroup
- %
- \doifelsevalue{\??id#2\c!prefix}\v!none % default v!both
- {\chardef\pageprefixmode\zerocount}%
- {\doifvalue{\??id#2\c!prefix}\v!first %
- {\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
- \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}%
- \ifx\firstseenregisterreal\relax
- % no range yet
- \global\let\firstseenregisterreal\currentseenregisterreal
- \global\let\firstseenregisterpage\currentseenregisterpage
- \global\let\lastseenregisterreal \currentseenregisterreal
- \global\let\lastseenregisterpage \currentseenregisterpage
- \else\ifnum\lastseenregisterreal=\currentseenregisterreal\relax
- % same page (catch error)
- \else\ifnum\numexpr\lastseenregisterreal+\plusone\relax=\currentseenregisterreal\relax
- \global\let\lastseenregisterreal \currentseenregisterreal
- \global\let\lastseenregisterpage \currentseenregisterpage
- \else
- \global\let\savedcurrentseenregisterreal\currentseenregisterreal
- \global\let\savedcurrentseenregisterpage\currentseenregisterpage
- \flushseenregisterpage
- \global\let\firstseenregisterreal\savedcurrentseenregisterreal
- \global\let\firstseenregisterpage\savedcurrentseenregisterpage
- \global\let\lastseenregisterreal \savedcurrentseenregisterreal
- \global\let\lastseenregisterpage \savedcurrentseenregisterpage
- \fi\fi\fi
- \gdef\flushseenregisterpage{\doflushseenregisterpage{#1}{#2}{#3}{#4}}}
-
-% \def\dodosetpageregisterpageC#1#2#3#4#5#6%
-% {\xdef\currentseenregisterpage{#5}%
-% \xdef\currentseenregisterreal{#6}%
-% \firstregisterpagefalse
-% \gdef\flushseenregisterpage{\doflushseenregisterpage{#1}{#2}{#3}{#4}}%
-% \ifx\firstseenregisterreal\relax
-% % no range yet
-% \global\let\firstseenregisterreal\currentseenregisterreal
-% \global\let\firstseenregisterpage\currentseenregisterpage
-% \global\let\lastseenregisterreal \currentseenregisterreal
-% \global\let\lastseenregisterpage \currentseenregisterpage
-% \else\ifnum\firstseenregisterreal=\currentseenregisterreal\relax
-% \global\let\firstseenregisterreal\currentseenregisterreal
-% \global\let\firstseenregisterpage\currentseenregisterpage
-% \global\let\lastseenregisterreal \currentseenregisterreal
-% \global\let\lastseenregisterpage \currentseenregisterpage
-% \else\ifnum\lastseenregisterreal=\currentseenregisterreal\relax
-% \global\let\lastseenregisterpage \currentseenregisterpage
-% \else\ifnum\numexpr\lastseenregisterreal+\plusone\relax=\currentseenregisterreal\relax
-% \global\let\lastseenregisterreal \currentseenregisterreal
-% \global\let\lastseenregisterpage \currentseenregisterpage
-% \else
-% % back up, flush, go on
-% \global\let\savedcurrentseenregisterreal\currentseenregisterreal
-% \global\let\savedcurrentseenregisterpage\currentseenregisterpage
-% \let\currentseenregisterpage\lastseenregisterpage
-% \let\currentseenregisterreal\lastseenregisterreal
-% \flushseenregisterpage
-% \global\let\firstseenregisterreal\savedcurrentseenregisterreal
-% \global\let\firstseenregisterpage\savedcurrentseenregisterpage
-% \global\let\lastseenregisterreal \savedcurrentseenregisterreal
-% \global\let\lastseenregisterpage \savedcurrentseenregisterpage
-% \fi\fi\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}}
-
-\def\dodosetpageregisterpagecollapsed#1#2#3#4#5#6%
- {\ifx\firstseenregisterreal\relax\flushseenregisterpage\fi
- \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
- {\flushseenregisterpage
- \expanded{\doifreglevelelse[#4\sectionseparator\sectionseparator0]}%
- {{\global\utilitydonetrue
- \setregisterhowto[#2]%
- \def\dohandleregisterentry##1% dubbelop | \strut nieuw
- {\doregistertexthowto{#1}{\strut\limitedregisterentry{#1}{##1}}}%
- \getvalue
- {#1\ifcase\currententrylevel\s!entrya\or\s!entryb\or\s!entryc\else\s!entryd\fi}%
- {\doregisterpagehowto{#1}{\labeltexts\v!see{#3}}}%
- \c!entryletter\c!entrya\c!entryb\c!entryc\c!entryd
- \global\let\c!entrya\relax
- \global\let\c!entryb\relax
- \global\let\c!entryc\relax
- \global\let\c!entryd\relax
- \global\let\c!entryletter\relax
- \global\let\c!entryreference\relax
- % \global\firstregisterentrytrue
- \global\firstregisterpagetrue}}
- {}}
-
-%D Extended with variant:
-
-\def\doregistercharacter[#1]#2%
- {\global\firstregisterentrytrue
- \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}%
- \goodbreak}
-
-% a = <before> <goodbreak> <character> <par> <after> <nobreak>
-
-\def\doregistercharactera[#1]#2%
- {\getvalue{\??id#1\c!before}%
- \vskip\lineheight\goodbreak\vskip-\lineheight
- \ifhmode\unskip\else\noindent\fi % brrr
- \getvalue{\??id#1\c!command}{\doattributes{\??id#1}\c!style\c!color{\strut\ignorespaces#2}}%
- \getvalue{\??id#1\c!after}%
- \par\nobreak}
-
-% b = <goodbreak> <before> <character> <after> <nobreak>
-
-\def\doregistercharacterb[#1]#2% here no lineheight hackery ! ! !
- {\getvalue{\??id#1\c!before}%
- \ifhmode\unskip\else\noindent\fi % brrr
- \getvalue{\??id#1\c!command}%
- {\doattributes{\??id#1}\c!style\c!color{\strut\ignorespaces#2}}%
- \getvalue{\??id#1\c!after}%
- \nobreak}
-
-\def\doregistercharacterA[#1]#2{\doregistercharactera[#1]{\WORD{#2}}}
-\def\doregistercharacterB[#1]#2{\doregistercharacterb[#1]{\WORD{#2}}}
-
-%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%
- {\doifsomething{#2}
- {\doifvalue{\??id#1\c!referencing}\v!on
- {\pagereference[#1:\strippedcsname#2]}}}
-
-\def\dosetpageregisterletter#1#2%
- {\flushseenregisterpage
- \gdef\c!entryreference
- {\global\let\c!entryreference\relax
- \doregisterreference[#1]{#2}}%
- \gdef\c!entryletter
- {\global\utilitydonetrue
- \global\let\c!entryletter\relax
- \doregistercharacter[#1]{#2}}}
-
-% \def\HowUgly #1{\doHowUgly#1\relax}
-% \def\doHowUgly#1#2\relax{\iffirstregisterentry{\bf#1}\else#1\fi#2} % unchecked
-%
-% \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%
- {\flushseenregisterpage
- \edef\currententrylevel{1}%
- \global\let\c!entryb\relax
- \global\let\c!entryc\relax
- \global\let\c!entryd\relax
- \gdef\c!entrya
- {\iffirstregisterentry\else\endgraf\fi % new
- \global\firstregisterpagetrue
- \hangindent1em\noindent\c!entryreference
- \dohandlepageregisterentry{#1}{#2}%
- \global\firstregisterentryfalse
- \global\firstsubentrytrue
- \global\firstsubsubentrytrue}}
-
-\def\dosetpageregisterentryb#1#2%
- {\flushseenregisterpage % redundant
- \edef\currententrylevel{2}%
- \global\let\c!entryd\relax
- \global\let\c!entryc\relax
- \global\def\c!entryb
- {\iffirstregisterentry\else\endgraf\fi % new
- \global\firstregisterpagetrue
- \global\let\c!entrya\relax
- \iffirstsubentry\nobreak\fi
- \hangindent2em\noindent\c!entryreference\hskip1em\relax
- \dohandlepageregisterentry{#1}{#2}%
- \global\firstregisterentryfalse
- \global\firstsubentryfalse
- \global\firstsubsubentrytrue}}
-
-\def\dosetpageregisterentryc#1#2%
- {\flushseenregisterpage % redundant
- \edef\currententrylevel{3}%
- \gdef\c!entryc
- {\iffirstregisterentry\else\endgraf\fi % new
- \global\firstregisterpagetrue
- \global\let\c!entrya\relax
- \global\let\c!entryb\relax
- \iffirstsubsubentry\nobreak\fi
- \hangindent3em\noindent\c!entryreference\hskip2em\relax
- \dohandlepageregisterentry{#1}{#2}%
- \global\firstregisterentryfalse
- \global\firstsubsubentryfalse}}
-
-\def\dosetpageregisterentryd#1#2%
- {\flushseenregisterpage % redundant
- \edef\currententrylevel{4}%
- \gdef\c!entryd
- {\iffirstregisterentry\else\endgraf\fi % new
- \global\firstregisterpagetrue
- \global\let\c!entrya\relax
- \global\let\c!entryb\relax
- \global\let\c!entryc\relax
- \iffirstsubsubentry\nobreak\fi
- \hangindent4em\noindent\c!entryreference\hskip3em\relax
- \dohandlepageregisterentry{#1}{#2}%
- \global\firstregisterentryfalse
- \global\firstsubsubentryfalse}}
-
-\def\dosetpageregister#1% \currentregister gebruiken
- {\dosetreglevel{#1}%
- \global\let\currentregisterentry\empty
- \global\firstsubentrytrue
- \global\firstsubsubentrytrue
- \setregisterpage{#1}%
- \setvalue{#1\s!entrya}{\dosetpageregisterentrya {#1}}%
- \setvalue{#1\s!entryb}{\dosetpageregisterentryb {#1}}%
- \setvalue{#1\s!entryc}{\dosetpageregisterentryc {#1}}%
- \setvalue{#1\s!entryd}{\dosetpageregisterentryd {#1}}%
- \setvalue{#1\s!page }{\dosetpageregisterpage{1}{#1}}%
- \setvalue{#1\s!from }{\dosetpageregisterpage{2}{#1}}%
- \setvalue{#1\s!to }{\dosetpageregisterpage{3}{#1}}%
- \setvalue{#1\s!see }{\dosetpageregistersee {#1}}%
- \setvalue{#1\s!entry }{\dosetpageregisterletter {#1}}}
-
-\def\dosetreglevel#1%
- {\dosetfilterlevel{\getvalue{\??id#1\c!criterium}}\empty}
-
-\def\getalllistreferences#1#2%
- {\gdefconvertexpanded\currentregisterentry{\getvalue{\??id#1\c!expansion}}{#2}%
- \doifdefinedelse{\??id#1\??id\currentregisterentry}
- {\edef\alllistreferences%
- {\getvalue{\??id#1\??id\currentregisterentry}}%
- \beforesplitstring\alllistreferences\at::\to\internallistreference
- \aftersplitstring \alllistreferences\at::\to\alllistreferences}
- {\let\alllistreferences\empty
- \def\internallistreference{0}}}
-
-\def\dosetlinkregister#1% is die page reference echt nodig?
- {\dosetreglevel{#1}%
- \setregisterpage{#1}%
- \global\let\currentregisterentry\empty
- \global\firstsubentrytrue % not needed
- \global\firstsubsubentrytrue % not needed too
- \setvalue{#1\s!entrya}##1{\dosetlinkregisterentrya{#1}{##1}}%
- \setvalue{#1\s!entry }##1{\dosetpageregisterletter{#1}{##1}}}
-
-\def\dosetlinkregisterentrya#1#2%
- {\global\utilitydonetrue
- \c!entryletter
- \iflocation
- \getalllistreferences{#1}{#2}%
- % no \endgraf
- \hangindent1em\noindent\c!entryreference
- %
- %\thisissomeinternal{\s!lin}{\internallistreference}%
- %
- \pagereference[-:\s!lin:\internallistreference]% -: added
- %
- \getcommacommandsize[\alllistreferences]%
- \getfromcommacommand[\alllistreferences][1]%
- \ifnum\commalistsize=1
- \let\firstlistreference\empty
- \let\midlistreference\commalistelement
- \let\lastlistreference\empty
- \else
- \let\firstlistreference\commalistelement
- \getfromcommacommand[\alllistreferences][\commalistsize]%
- \let\lastlistreference\commalistelement
- \ifnum\commalistsize=2
- \let\midlistreference\empty
- \else
- \!!counta\commalistsize
- \divide\!!counta 2
- \getfromcommacommand[\alllistreferences][\!!counta]%
- \let\midlistreference\commalistelement
- \fi
- \fi
- % aangepast
- \def\dodocommand[##1-##2]%
- {\gotonextinternal{\s!ind}{##1}{##2}{\box0}}%
- \doifelsevalue{\??id#1\c!interaction}\v!pagenumber
- {\limitedregisterentry{#1}{#2}} % paginanummer
- {{\setbox0\hbox{\limitedregisterentry{#1}{\begstrut#2}}%
- \ifx\firstlistreference\empty % tekst,alles
- \ifx\midlistreference\empty
- \box0
- \else
- \expandafter\dodocommand\expandafter[\midlistreference]%
- \fi
- \else
- \expandafter\dodocommand\expandafter[\firstlistreference]%
- \fi}}%
- \doifvalue{\??id#1\c!number}\v!yes
- {\hskip\getvalue{\??id#1\c!distance}(\commalistsize)}%
- \doifnotvalue{\??id#1\c!interaction}\v!text % paginanummer,alles
- {\def\docommand##1##2%
- {{\setbox0\hbox{\showlocation{\hbox to 1em{\hss\symbol[##2]\hss}}}%
- \ifx##1\empty
- % \hskip\wd0 % (optioneel maken)
- \else
- \expandafter\dodocommand\expandafter[##1]%
- \fi}}%
- \hskip\getvalue{\??id#1\c!distance}%
- \docommand\firstlistreference\v!previous
- \docommand\midlistreference\v!somewhere
- \docommand\lastlistreference\v!next}%
- % tot hier
- \else
- % no \endgraf
- \noindent\c!entryreference
- \limitedregisterentry{#1}{#2}%
- \fi
-\endgraf}
-
-\def\dosetregister#1%
- {\doifelsevalue{\??id#1\c!coupling}\v!yes
- {\ifautoregisterhack
- \dosetautoregister{#1}%
- \else
- \dosetlinkregister{#1}%
- \fi}
- {\dosetpageregister{#1}}}
-
-\newcounter\internallistreference
-
-\def\doloadregisterlinks#1%
- {\dosetreglevel{#1}%
- \setregisterpage{#1}%
- \global\let\currentregisterentry\empty
- \global\firstregisterpagetrue
- \setvalue{#1\s!entrya}##1%
- {\global\firstregisterpagetrue
- \gdefconvertedargument\currentregisterentry{##1}% global nodig?
- \doglobal\increment\internallistreference}%
- \setvalue{#1\s!from}%
- {\getvalue{#1\s!page}}%
- \ifautoregisterhack
- \setvalue{#1\s!page}##1##2##3##4%
- {\doifreglevelelse[##3]
- {\global\utilitydonetrue
- \iffirstregisterpage
- \@EA\xdef\csname\??id#1\??id\currentregisterentry\endcsname
- {\internallistreference::##4}%
- \else % catches errors in index
- \ifcsname\??id#1\??id\currentregisterentry\endcsname
- \@EA\xdef\csname\??id#1\??id\currentregisterentry\endcsname
- {\csname\??id#1\??id\currentregisterentry\endcsname,##4}%
- \fi
- \fi}
- {}}%
- \else
- \setvalue{#1\s!page}##1##2##3##4%
- {\doifreglevelelse[##3]
- {\global\utilitydonetrue
- \iffirstregisterpage
- \global\firstregisterpagefalse
- \@EA\xdef\csname\??id#1\??id\currentregisterentry\endcsname
- {\internallistreference::##2-##4}%
- \else % catches errors in index
- \ifcsname\??id#1\??id\currentregisterentry\endcsname
- \@EA\xdef\csname\??id#1\??id\currentregisterentry\endcsname
- {\csname\??id#1\??id\currentregisterentry\endcsname,##2-##4}%
- \fi
- \fi}
- {}}%
- \fi}
-
-\def\docoupleregister[#1][#2]%
- {\iflocation
- \ifcase0\countervalue{autolink:#1}\relax % only once
- \begingroup
- \let\dosetregister\doloadregisterlinks
- \def\currentregister{#1}%
- \setupregister[#1][#2]%
- \doutilities\currentregister{\registerparameter\c!file}\currentregister\dobeforeplaceregister\doafterplaceregister
- \endgroup
- \ifautoregisterhack
- \doinitializeautoregister{#1}%
- \else
- \doinitializelinkregister{#1}%
- \fi
- \fi
- \fi}
-
-\def\coupleregister
- {\dodoubleempty\docoupleregister}
-
-\def\dodocommandprolinrefAA[#1-#2]%
- {\def\lastlistreference{#1-#2}}
-
-\def\dodocommandprolinrefA[#1-#2]%
- {\def\lastlistreference{#1-#2}%
- \ifx\firstlistreference\empty
- \let\firstlistreference\lastlistreference
- \fi
- \ifnum#1<\nextinternalreference\relax
- \let\prevlistreference\lastlistreference
- \else\ifnum#1>\nextinternalreference\relax
- \let\nextlistreference\lastlistreference
- \let\dodocommandprolinrefA\dodocommandprolinrefAA
- \else
- \let\selflistreference\lastlistreference
- \fi\fi}
-
-\def\docommandprolinrefA#1%
- {\dodocommandprolinrefA[#1]}
-
-\def\dodocommandprolinrefB[#1-#2]%
- {\gotonextinternal{\s!ind}{#1}{#2}{\box0}}
-
-\def\docommandprolinrefB#1#2#3%
- {\bgroup
- \ifx#2\empty
- \doifvalue{\??id#1\c!unknownreference}\v!empty{\hskip1em}%
- \else
- \setbox0\hbox to 1em{\hss\showlocation{\symbol[#3]}\hss}%
- \expandafter\dodocommandprolinrefB\expandafter[#2]%
- \fi
- \egroup}
-
-\def\doprocesslinkregister[#1][#2]#3%
- {\hbox
- {\doprocesspageregister[#2]{}{#3}%
- \let\firstlistreference\empty
- \let\lastlistreference\empty
- \let\selflistreference\empty
- \let\prevlistreference\empty
- \let\nextlistreference\empty
- \getalllistreferences{#1}{#3}%
- \ifx\alllistreferences\empty \else
- \expanded{\rawprocesscommalist[\alllistreferences]}\docommandprolinrefA
- \fi
- \ifx\prevlistreference\empty
- \let\prevlistreference\lastlistreference
- \fi
- \ifx\nextlistreference\empty
- \let\nextlistreference\firstlistreference
- \fi
- \ifx\prevlistreference\selflistreference
- \let\prevlistreference\empty
- \let\nextlistreference\empty
- \fi
- \setalignmentswitch{\getvalue{\??id#1\c!location}}%
- \ifcase\alignmentswitch
- % links
- \docommandprolinrefB{#1}\prevlistreference\v!previous
- \docommandprolinrefB{#1}\nextlistreference\v!next
- \or
- % midden
- \docommandprolinrefB{#1}\prevlistreference\v!previous
- \or
- % rechts
- \fi
- \doifreferencefoundelse{\s!lin:\internallistreference}
- {\gotosomeinternal
- \s!lin \internallistreference \currentrealreference
- {\showlocation{\limitedregisterentry{#1}{#3}}}}
- {\hbox{\limitedregisterentry{#1}{#3}}}%
- \ifcase\alignmentswitch
- % links
- \or
- % midden
- \docommandprolinrefB{#1}\nextlistreference\v!next
- \or
- % rechts
- \docommandprolinrefB{#1}\prevlistreference\v!previous
- \docommandprolinrefB{#1}\nextlistreference\v!next
- \fi}}
-
-\def\doprocesslinkedregister[#1][#2]#3% page auto link
- {\bgroup
- \chardef\registerpagestatus\plusone
- \def\currentregister{#1}%
- \iflocation % \next is not needed
- \ifautoregisterhack
- \def\next{\doprocessautoregister[#1][#2]}%
- \else
- \def\next{\doprocesslinkregister[#1][#2]}%
- \fi
- \else
- \def\next{\doprocesspageregister[#2]{}}%
- \fi
- \next{#3}%
- \egroup}
-
-\def\dodolinkedregister[#1][#2]#3% page auto link
- {\doflushatpar{\doprocesslinkedregister[#1][#2]{#3}}}
-
-\def\dolinkedregister#1%
- {\dodoubleempty\dodolinkedregister[#1]}
-
-\def\dosetautoregister#1%
- {\makecounter{autolink:#1}%
- \dosetreglevel{#1}%
- \setregisterpage{#1}%
- \global\let\currentregisterentry\empty
- \global\firstsubentrytrue % not needed
- \global\firstsubsubentrytrue % not needed too
- \setvalue{#1\s!entrya}##1{\dosetautoregisterentrya{#1}{##1}}%
- \setvalue{#1\s!entry }##1{\dosetpageregisterletter{#1}{##1}}}
-
-\def\dosetautoregisterentrya#1#2%
- {\global\utilitydonetrue
- \c!entryletter
- \iflocation
- \getalllistreferences{#1}{#2}%
- \endgraf\hangindent1em\noindent\c!entryreference
- \pagereference[-:\s!lin:\internallistreference]%
- \pluscounter{autolink:#1}%
- \bgroup
- %\setupinteraction[\c!color=,\c!contrastcolor=,\c!style=]% kan sneller
- \resetinteractionparameter\c!color
- \resetinteractionparameter\c!contrastcolor
- \resetinteractionparameter\c!style
- \gotobox
- {\limitedregisterentry{#1}{\begstrut#2}}%
- [JS(SetRegisterEntry{\v!register,\countervalue{autolink:#1},#2,{\alllistreferences}})]%
- \egroup
- \else
- \endgraf\noindent\c!entryreference
- \limitedregisterentry{#1}{#2}%
- \fi}
-
-\def\doprocessautoregister[#1][#2]#3%
- {\hbox
- {\doprocesspageregister[#2]{}{#3}%
- \doifreferencefoundelse{\s!lin:\internallistreference}
- {\gotosomeinternal \s!lin
- {\internallistreference}{\currentrealreference}
- {\showlocation{\limitedregisterentry{#1}{#3}}}}
- {\hbox{\limitedregisterentry{#1}{#3}}}}}
-
-% \appendmacro aan openpaginaactie (in shipout)
-
-%D The first implementation used one main field with clones.
-%D In a 2500 page document this resulted in a rather (anoying)
-%D long start||up time. This \quote {every page its own field}
-%D solution, combined with a \quote {page open action}, works
-%D much faster, but is conceptually pretty weak.
-
-\def\complexregisterfield[#1]%
- {\definefield[#1:\realfolio][line][\v!register]%
- \field[#1:\realfolio]}
-
-\def\simpleregisterfield
- {\complexregisterfield[\v!register]}
-
-\definecomplexorsimple\registerfield
-
-\setupfield
- [\v!register]
- [\c!width=10em,
- \c!height=3ex,
- \c!align=\v!middle,
- \c!option=\v!readonly,
- \c!location=\v!low]
-
-\def\doinitializeautoregister#1%
- {\useJSscripts[reg]%
- \useJSpreamblenow{LinkedRegisters}%
- \setupinteraction[\c!openpageaction=JS(UpdateRegisterField{\v!register})]%
- \definereference[\v!reset\v!register][JS(ResetRegisterEntry{\v!register})]%
- \definereference[\v!first\v!register][JS(GotoFirstRegisterEntry{\v!register})]%
- \definereference[\v!previous\v!register][JS(GotoPreviousRegisterEntry{\v!register})]%
- \definereference[\v!next\v!register][JS(GotoNextRegisterEntry{\v!register})]%
- \definereference[\v!last\v!register][JS(GotoLastRegisterEntry{\v!register})]}
-
-\def\doinitializelinkregister#1%
- {}
-
-% todo ruwe register
-
-\def\placeregister
- {\dodoubleempty\doplaceregister}
-
-\def\doplaceregister[#1][#2]%
- {\iffirstargument
- \begingroup
- \edef\currentregister{#1}%
- \setupregister[\currentregister][#2]%
- \doifelse{\registerparameter\c!compress}\v!yes % new
- {\chardef\collapseregisterpages\plusone}
- {\chardef\collapseregisterpages\zerocount}%
-% TH: disable next line
-% \raggedright
-% /TH
- \startcolumns
- [\c!n=\registerparameter\c!n,
- \c!balance=\registerparameter\c!balance,
- \c!align=\registerparameter\c!align,
- tolerance=stretch]%
- \dontcomplain
- \startpacked[\v!blank]%
- \doutilities\currentregister{\registerparameter\c!file}\currentregister\dobeforeplaceregister\doafterplaceregister
- \stoppacked
- \stopcolumns
- \endgroup
- \fi}
-\def\dobeforeplaceregister
- {\resetseenregisterpage
- \relax}
-
-\def\doafterplaceregister
- {\flushseenregisterpage
- \par}
-
-\def\completeregister
- {\dodoubleempty\docompleteregister}
-
-\def\docompleteregister[#1][#2]%
- {\iffirstargument
- \begingroup
- \edef\currentregister{#1}%
- % the expansion is needed because we don't want \v!'s in the tuo file (french)
- \expanded{\systemsuppliedchapter[\currentregister]{\noexpand\headtext{\currentregister}}}%
- \placeregister[\currentregister][#2]%
- \page[\v!yes]%
- \endgroup
- \fi}
-
-\def\doregisterregisterlanguage#1%
- {\savesortlanguage{\getvalue{\??id#1\s!language}}%
- \expanded{\immediatewriteutility{r l {#1} {\getvalue{\??id#1\s!language}}}}}
-
-\def\dodefineregister[#1][#2]%
- {\setupregister[#1]%
- [\c!n=2,
- \c!balance=\v!yes, % \v!no komt niet zo vaak voor
- \c!align=\v!flushleft,
- \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,
- \c!style=\v!bold,
- \c!pagestyle=\v!slanted,
- \c!indicator=\v!yes,
- \v!part\v!number=\v!yes, % v
- \v!chapter\c!number=\v!no,
- \c!criterium=\v!all,
- \c!command=,
- \c!referencing=\v!on,
- \c!location=\v!middle,
- \c!maxwidth=,
- \c!number=\v!no,
- \c!unknownreference=\v!empty,
- \c!prefix=\v!both,
- \c!expansion=,
- \c!keyexpansion=,
- \c!file=\jobname,
- %\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}{\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]}}
-
-\def\defineregister
- {\dodoubleargument\dodefineregister}
-
-\def\registerlengte{\utilityregisterlength}
-
-\def\utilityregisterlength{0}
-
-\def\dodetermineregistercharacteristics[#1][#2]%
- {\begingroup
- \def\currentregister{#1}%
- \setupregister[#1][#2]%
- \dosetreglevel{#1}%
- \setvalue{#1\s!from}%
- {\getvalue{#1\s!page}}%
- \setvalue{#1\s!page}##1##2##3##4%
- {\doifreglevelelse[##3]
- {\doglobal\increment\utilitylistlength
- \global\utilitydonetrue}
- {}}%
- \doglobal\newcounter\utilityregisterlength
- \setbox0\vbox{\doutilities\currentregister{\registerparameter\c!file}\currentregister\dobeforeplaceregister\doafterplaceregister}%
- \endgroup
- \ifregistergeplaatst
- \setsystemmode \v!register
- \else
- \resetsystemmode\v!register
- \fi}
-
-\def\determineregistercharacteristics
- {\dodoubleempty\dodetermineregistercharacteristics}
-
-%D Default index:
-
-\defineregister
- [\v!index]
- [\v!indices]
-
-% \setupregister[index][koppeling=ja]
-%
-% \stelveldenin
-% [register][achtergrond=raster,kader=uit]
-%
-% \stelvoettekstenin
-% [{\field[index]}]
-%
-% \stelhoofdtekstenin
-% [{\naar {first}[eersteindex]\quad
-% \naar{previous}[vorigeindex]\quad
-% \naar {next}[volgendeindex]\quad
-% \naar {last}[laatsteindex]\quad\quad
-% \naar {index}[index]}]
-%
-% \starttekst
-%
-% oeps~~~\gekoppeldeindex{oeps} \blanko
-% flop~~~\gekoppeldeindex{flop} \blanko
-% test~~~\gekoppeldeindex{test} \pagina
-% flop~~~\gekoppeldeindex{flop} \blanko
-% test~~~\gekoppeldeindex{test} \pagina
-% oeps~~~\gekoppeldeindex{oeps} \blanko
-% test~~~\gekoppeldeindex{test} \pagina
-% flop~~~\gekoppeldeindex{flop} \blanko
-% oeps~~~\gekoppeldeindex{oeps} \pagina
-%
-% \volledigeindex
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-sec.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-sec.mkii
deleted file mode 100644
index 01ca71eadbc..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/strc-sec.mkii
+++ /dev/null
@@ -1,2591 +0,0 @@
-%D \module
-%D [ file=strc-sec,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Sectioning,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% start-stop per section en dan combineren met sectieblok; in dat geval
-% eenvoudiger per-* acties
-
-% nummeren per sectieblok implementeren
-
-% this module needs a clean up, currently some manipulations
-% take place multiple times; also, some clever recursive level
-% thing makes more sense
-
-% in manual (zie prikkels) : tussen=\blanko is enige hook om
-% met kop-in-hoofd een spatiering af te dwingen
-
-\writestatus{loading}{ConTeXt Structure Macros / Sectioning}
-
-\unprotect
-
-% new and to be tested
-
-\unexpanded\def\separatorlist#1%
- {\ifx\sepnumber\undefined\def\sepnumber{0}\fi
- \increment\sepnumber
- \getfromcommacommand[#1][\sepnumber]%
- \ifx\commalistelement\empty
- \getcommalistsize[#1]%
- \def\sepnumber{\number\commalistsize}%
- \getfromcommacommand[#1][\sepnumber]%
- \fi
- \commalistelement}
-
-% \setuphead[section] [separator=\separatorlist{?,!,*}]
-% \setuphead[subsection][separator=\separatorlist{??,!!,**}]
-%
-% \let\spr\separatorlist % this will enable this feature
-%
-% \setuphead[section] [separator={?,!,*}]
-% \setuphead[subsection][separator={??,!!,**}]
-%
-% \setupheads[separator={A,B,C,D,E,F}]
-% \chapter{test}
-% \section{test} \subsection{test} \subsection{test}
-% \section{test} \subsection{test} \subsection{test}
-
-% from now on, internaly numbers are separated by a period
-% and postprocessed on demand; this will change to {} {} {}
-
-\def\numberseparator {.} % reasonable default
-\def\sectionseparator{-} % was : but is now -
-
-\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\@@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\@@filterlevelpart[#1--#2--#3]{\@@dofilterlevelpart[#2-0-0-0-0]}
-
-\def\@@dofilterlevelpart[#1-0-0-0-#2]{#1}
-
-\def\gobbleuntilrelax#1\relax{}
-
-\def\separatednumber #1{\doseparatednumber #1.\empty\relax}
-\def\removefirstprefix#1{\doremovefirstprefix#1.\empty\relax}
-\def\removeallprefixes#1{\doremoveallprefixes#1.\empty\relax}
-
-\def\doseparatednumber#1.#2%
- {#1%
- \ifx#2\empty
- \@EA\gobbleuntilrelax
- \else \numberseparator
- \@EA\doseparatednumber
- \fi#2}
-
-\def\doremoveallprefixes#1.#2%
- {\ifx#2\empty
- #1\@EA\gobbleuntilrelax
- \else
- \@EA\doremoveallprefixes
- \fi#2}
-
-\def\doremovefirstprefix#1.#2%
- {\ifx#2\empty
- #1\@EA\gobbleuntilrelax
- \else
- \@EA\noremovefirstprefix
- \fi#2}
-
-\def\noremovefirstprefix#1.\empty\relax
- {#1}
-
-% we need to expand in order to get something separatable
-
-\def\dohandleheadnumber#1%
- {\expanded{\separatednumber{#1}}}
-
-\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
- \dochecknumber{#1}}} % tricky and ugly
- {\doifnotvalue{\@@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\dochecknumber#1%
- {\edef\currentsection{\csname\??by\csname\@@thenumber{#1}\c!way\endcsname\endcsname}%
- \ifx\currentsection\empty\else
- \dodochecknumber
- {#1}%
- {\csname\currentsection\c!number\endcsname}%
- {\v!by\previoussection\currentsection}%
- \fi}
-
-\def\checknumber[#1]%
- {\bgroup
- %\ifcase\blocklevel\else
- \ifdoingblocks
- \doifnotvalue{\@@thenumber{#1}\c!blockway}\v!no\setblockcounters
- \fi
- \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
- \ifsectionnumber
- \doifvalue{\??sb\@@sectionblock\c!number}\v!yes % added
- {\doifelsevalue{\@@thenumber{#1}\c!sectionnumber}\v!yes
- \donetrue\donefalse
- \doifvalue{\@@thenumber{#1}\c!sectionnumber}\v!number
- {\donetrue\let\@@sectionconversion\gobbleoneargument}%
- \ifdone
- \edef\currentsection
- {\getvalue{\??by\getvalue{\@@thenumber{#1}\c!way\c!local}}}%
- \doifnot\currentsection\zerosection
- {\doifnot{\@@sectionvalue\currentsection}{0}
- {\xdef\precedingsectionnumber
- {\getvalue{\currentsection\c!number}%
- \spr{\precedingseparator}}}}%
- \fi}%
- \fi
- \egroup}
-
-\def\makeprecedingsectionnumber[#1]%
- {\bgroup
- %\ifnum\blocklevel>0
- %\ifcase\blocklevel\else
- \ifdoingblocks
- \doifnotvalue{\@@thenumber{#1}\c!blockway}\v!no\setblockcounters
- \fi
- \domakeprecedingsectionnumber[#1]%
- \egroup}
-
-% \def\makesectionnumber[#1]%
-% {\makeprecedingsectionnumber[#1]%
-% \xdef\composedsectionnumber%
-% {\precedingsectionnumber\convertednumber[#1]}}%
-%
-% hack needed for chinese and oldstyle in normal tex, will change
-
-\def\makesectionnumber[#1]%
- {\bgroup
- \forceunexpanded % i don't like this hack
- \makeprecedingsectionnumber[#1]%
- \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{\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\sectionnumberonly[#1]%
- {\makesectionnumber[#1]%
- \composedsectionnumber}
-
-% sectioning
-
-\newcount\nofsections
-
-\let\zerosection \v!text
-\let\firstsection\empty
-\let\lastsection \empty
-\let\@@sectie \empty
-\let\@@koppeling \empty
-
-\makecounter{\??se\v!text}
-
-\letvalueempty{\??se\v!text\c!before}
-\letvalueempty{\??se\v!text\c!after }
-
-\setvalue {\v!text\c!number}{0}
-\letvalueempty{\v!text\s!format}
-
-\letvalueempty{\??sk\v!text}
-\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!by\v!all }\v!text
-\letvalue{\??by\v!by\v!page}\v!text % see footnotes
-
-\def\sectionofhead#1{\executeifdefined{\??ko#1\c!section}\s!unknown}
-
-\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}
- {\docouplemarking[#1][\getvalue{\??ko#2\c!section}]}
- {\def\donexttrackcommando##1%
- {\edef\coupledmarkings{\getvalue{\??se##1\c!marking}}%
- \doifelse{##1}{#2}
- {\addtocommalist{#1}\coupledmarkings}
- {\removefromcommalist{#1}\coupledmarkings}%
- \setevalue{\??se##1\c!marking}{\coupledmarkings}%
- \donexttracklevel{##1}}%
- \donexttracklevel{\zerosection}}} % \firstsection
-
-\def\couplemarking
- {\dodoubleargument\docouplemarking}
-
-\def\decouplemarking[#1]%
- {\couplemarking[#1][]}
-
-\def\definesection[#1]%
- {\doifundefined{\??se#1}
- {\doifelsenothing\firstsection
- {\def\firstsection{#1}%
- \setevalue{\??se#1\c!before}{\v!text}%
- \setevalue{\??se\v!text\c!after}{#1}}
- {\setevalue{\??se\commalistelement\c!after}{#1}% commalistelement ?
- \setevalue{\??se#1\c!before}{\lastsection}%
- \setevalue{\??se\lastsection\c!after}{#1}}%
- \advance\nofsections \plusone
- \setevalue{\??se#1\c!level}{\the\nofsections}%
- \letvalue{\??se#1\c!after}\empty
- \setvalue{\e!next#1}{\@@nextsectionnumber{#1}}%
- \setvalue{#1\c!number}{\@@longsectionnumber{#1}}%
- \setvalue{#1\s!format}{\@@longformatnumber{#1}}%
- \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
- \setupsection[#1][\c!previousnumber=\v!yes]}}%
-
-\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}%
- \checkpreservevalueafter{#1}% GB
- \resetsectioncounters{#1}%
- \checkpagecounter}
-
-\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}%
- \checkpreservevalueafter{#1}%
- \resetsectioncounters{#1}%
- \checkpagecounter}
-
-\def\@@sectionvalue#1% % nog niet overal doorgevoerd
- {\countervalue{\??se#1}} % zoeken op \??se
-
-% 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
- \convertnumber{\getvalue{\??se#1\c!conversion}}{#2}%
- \fi
- \else
- \convertnumber{\getvalue{\??se#1\@@sectionblock\c!conversion}}{#2}%
- \fi
- \fi}
-
-% \def\@@sectionlevel#1%
-% {\ifundefined{\??se#1\c!level}0\else\getvalue{\??se#1\c!level}\fi}
-
-\def\@@sectionlevel#1%
- {\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% can invoke a break
- {\ifundefined{\??se#1}%
- \fastresetmarker[\mainmarking{#1}]% % redundant \mainmarking
- \else
- \let\donexttrackcommando\doresetsectionmarks
- \donexttracklevel{#1}%
- \fi}
-
-\def\doresetsectionmarks#1%
- {\ifundefined{\??se#1\c!marking}\else % skip zero level
- \fastresetmarkerlist[\csname\??se#1\c!marking\endcsname]%
- \fi
- \donexttracklevel{#1}}
-
-% I'm not sure if the next one is better:
-%
-% \def\doresetsectionmarks#1%
-% {\ifundefined{\??se#1\c!markering}% skip zero level
-% \donexttracklevel{#1}%
-% \else
-% \fastresetmarkerlist[\csname\??se#1\c!markering\endcsname]%
-% \fi}
-%
-% and indeed, it isn't, actually, it does not work at all, so let's drop it.
-
-% packaged:
-%
-% \def\resetsectioncounters#1%
-% {\def\donexttrackcommando##1%
-% {\resetcounter{\??se##1}%
-% \donexttracklevel{##1}}%
-% \donexttracklevel{#1}}
-%
-% nicer
-%
-% \def\doresetsectioncounters#1%
-% {\resetcounter{\??se#1}%
-% \donexttracklevel{#1}}
-%
-% obey eigennummer
-
-\def\doresetsectioncounters#1%
- {\resetcounter{\??se#1}%
- \letgvalue{\??se#1\c!ownnumber}\relax
- \donexttracklevel{#1}}
-
-\def\resetsectioncounters % #1
- {\let\donexttrackcommando\doresetsectioncounters
- \donexttracklevel} % #1
-
-% bij checken kan geen prefix worden bekeken, anders vallen
-% er titels buiten de inhoudsopgave
-
-% evt ook level gaan opslaan tbv snelle selectie
-
-% \def\makesectionformat
-% {\edef\sectionformat
-% {\@@sectiontype\sectionseparator
-% \csname\lastsection\s!format\endcsname}}
-
-\unprotected \def\makesectionformat % we don't want eigennummers here
- {\pushmacro\@@shortsectionnumber
- \let\@@shortsectionnumber\@@sectionvalue
- \edef\sectionformat
- {\@@sectiontype\sectionseparator
- \csname\lastsection\s!format\endcsname}%
- \popmacro\@@shortsectionnumber}
-
-\def\dobacktracklevel#1%
- {\doifnot{\previoussection{#1}}\zerosection
- {\dobacktrackcommando{\previoussection{#1}}}}
-
-\def\donexttracklevel#1%
- {\doifnot{#1}\lastsection
- {\donexttrackcommando{\nextsection{#1}}}}
-
-\chardef\alltoclevels\zerocount
-
-\let\currentlevel\empty
-
-\def\dosetcurrentlevel#1%
- {\global\chardef\alltoclevels\zerocount
- \xdef\currentlevel{\getvalue{\lastsection\s!format}}}
-
-\def\dosetpreviouslevel#1%
- {\global\chardef\alltoclevels\plusone
- \globallet\currentlevel\empty
- \def\dobacktrackcommando##1%
- {\ifnum\countervalue{\??se##1}>\zerocount
- \global\chardef\alltoclevels\zerocount
- \xdef\currentlevel{\getvalue{\previoussection{##1}\s!format}}%
- \else
- \dobacktracklevel{##1}%
- \fi}%
- \dobacktrackcommando\lastsection}
-
-\def\dosettextlevel#1%
- {\global\chardef\alltoclevels\plusone
- \globallet\currentlevel\empty}
-
-\def\dosetotherlevel#1%
- {\doifdefinedelse{\??ko#1\c!section} % beter alteratief: ook
- {\edef\@@sectie{\getvalue{\??ko#1\c!section}}} % hoofdstuk\c!format
- {\edef\@@sectie{#1}}%
- \doifdefinedelse{\??se\@@sectie}
- {\global\chardef\alltoclevels\zerocount
- \xdef\currentlevel{\getvalue{\@@sectie\s!format}}}
- {\global\chardef\alltoclevels\plusone
- \globallet\currentlevel\empty
- \def\dobacktrackcommando##1%
- {\@EA\ifx\csname\??se##1\c!start\endcsname\relax
- \dobacktracklevel{##1}%
- \else
- \ifnum\countervalue{\??se##1}>\zerocount
- \global\chardef\alltoclevels\zerocount
- \xdef\currentlevel{\getvalue{##1\s!format}}%
- \else
- \dobacktracklevel{##1}%
- \fi
- \fi}%
- \dobacktrackcommando\lastsection}}
-
-% \def\ignoresectionconversion % brrr
-% {\let\@@sectionconversion\secondoftwoarguments}
-
-% todo: criterium=appendix|frontmatter|....
-
-\def\dosetfilterlevel#1#2% beware: this one is \let
- {\bgroup
- \let\@@shortsectionnumber\@@sectionvalue
-% \ignoresectionconversion
- \edef\askedlevel{#1}%
- \edef\askedfilter{#2}%
- \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}
-
-% \def\dontsetfilterlevel#1#2%
-% {\let\currentlevel\somesavedlevel
-% \chardef\alltoclevels\zerocount}
-
-\def\dontsetfilterlevel#1#2%
- {\let\currentlevel\somesavedlevel
- \let\@@sectiontype\@@tocsectiontype
- \chardef\alltoclevels\zerocount}
-
-\def\honorlocalfilterlevel % local lists will be real local
- {\let\dosetfilterlevel\dontsetfilterlevel}
-
-% cleaner
-%
-% \def\doifnextlevelelse[#1::#2]#3#4%
-% {\ifcase\alltoclevels
-% \doifelse{\@@sectiontype}{#1}
-% {\doifinstringelse{=\currentlevel:}{=:#2:}
-% {\doifinstringelse{=\currentlevel:0}{=:#2:}{#4}{#3}}
-% {#4}}
-% {#4}%
-% \else
-% #3%
-% \fi}
-%
-% \def\doifprevlevelelse[#1::#2]#3#4%
-% {\ifcase\alltoclevels
-% \doifelse{\@@sectiontype}{#1}
-% {\doifinstringelse{=\currentlevel:}{=:#2:}{#3}{#4}}
-% {#4}%
-% \else
-% #3%
-% \fi}
-%
-% faster
-%
-% \def\doifnextlevelelse[#1::#2]%
-% {\ifcase\alltoclevels
-% \doifelse{\@@sectiontype}{#1}
-% {\doifinstringelse{=\currentlevel:}{=:#2:}
-% {\doifinstringelse{=\currentlevel:0}{=:#2:}\donefalse\donetrue}
-% \donefalse}
-% \donefalse
-% \else
-% \donetrue
-% \fi
-% \ifdone
-% \expandafter\firstoftwoarguments
-% \else
-% \expandafter\secondoftwoarguments
-% \fi}
-%
-% \def\doifprevlevelelse[#1::#2]%
-% {\ifcase\alltoclevels
-% \doifelse{\@@sectiontype}{#1}
-% {\doifinstringelse{=\currentlevel:}{=:#2:}\donetrue\donefalse}
-% \donefalse
-% \else
-% \donetrue
-% \fi
-% \ifdone
-% \expandafter\firstoftwoarguments
-% \else
-% \expandafter\secondoftwoarguments
-% \fi}
-%
-% meaner
-%
-% \setuplist
-% [chapter]
-% [after={\startcolumns\placelist[section]\stopcolumns}]
-
-\def\somesavedlevel{0}
-
-% \def\dosavesomelevel[#1:0:0:0:#2]%
-% {\def\somesavedlevel{:#1}}
-
-% \def\doifnextlevelelse[#1::#2]%
-% {\dosavesomelevel[#2:0:0:0:0]%
-% \ifcase\alltoclevels
-% \doifelse{\@@sectiontype}{#1}
-% {\doifinstringelse{=\currentlevel:}{=:#2:}
-% {\doifinstringelse{=\currentlevel:0}{=:#2:}\donefalse\donetrue}
-% \donefalse}
-% \donefalse
-% \else
-% \donetrue
-% \fi
-% \ifdone
-% \expandafter\firstoftwoarguments
-% \else
-% \expandafter\secondoftwoarguments
-% \fi}
-%
-% \def\doifprevlevelelse[#1::#2]%
-% {\dosavesomelevel[#2:0:0:0:0]%
-% \ifcase\alltoclevels
-% \doifelse{\@@sectiontype}{#1}
-% {\doifinstringelse{=\currentlevel:}{=:#2:}\donetrue\donefalse}
-% \donefalse
-% \else
-% \donetrue
-% \fi
-% \ifdone
-% \expandafter\firstoftwoarguments
-% \else
-% \expandafter\secondoftwoarguments
-% \fi}
-%
-% again faster:
-
-% \def\doifnextlevelelse[#1::#2]% beware: this one is \let
-% {\dosavesomelevel[#2:0:0:0:0]%
-% \ifcase\alltoclevels
-% \ifnum\@@sectiontype=#1
-% \def\levelstring{=:#2:}%
-% \doifincsnameelse{=\currentlevel:}\levelstring
-% {\doifincsnameelse{=\currentlevel:0}\levelstring\donefalse\donetrue}
-% \donefalse
-% \else
-% \donefalse
-% \fi
-% \else
-% \donetrue
-% \fi
-% \ifdone
-% \expandafter\firstoftwoarguments
-% \else
-% \expandafter\secondoftwoarguments
-% \fi}
-%
-%\def\doifprevlevelelse[#1::#2]% beware: this one is \let
-% {\dosavesomelevel[#2:0:0:0:0]%
-% \ifcase\alltoclevels
-% \ifnum\@@sectiontype=#1
-% \doifinstringelse{=\currentlevel:}{=:#2:}\donetrue\donefalse
-% \else
-% \donefalse
-% \fi
-% \else
-% \donetrue
-% \fi
-% \ifdone
-% \expandafter\firstoftwoarguments
-% \else
-% \expandafter\secondoftwoarguments
-% \fi}
-%
-% \let\doiftoclevelelse\doifnextlevelelse
-% \let\doifreglevelelse\doifprevlevelelse
-% \let\doifblklevelelse\doifprevlevelelse
-%
-% we want to be able to overload them globally
-
-% This will be reimplemented some day soon
-%
-% {nn}{xx}{yy}
-%
-% -> \scan{..}{..}{0} met 0 als sentinel
-
-% still not perfect
-%
-% \def\doifnextlevelelse[#1]% !! this one is \let / uti seperator --
-% {\edef\somesavedlevel{\sectionseparator\@@filterlevelpart[#1]}%
-% \ifcase\alltoclevels
-% \ifnum\@@sectiontype=\@@filterblockpart[#1]\relax
-% \edef\levelstring{=\sectionseparator\@@filternumberpart[#1]\sectionseparator}%
-% \doifincsnameelse{=\currentlevel\sectionseparator}\levelstring
-% {\doifincsnameelse{=\currentlevel\sectionseparator0}\levelstring
-% \donefalse
-% \donetrue}
-% \donefalse
-% \else
-% \donefalse
-% \fi
-% \else
-% \donetrue
-% \fi
-% \ifdone
-% \expandafter\firstoftwoarguments
-% \else
-% \expandafter\secondoftwoarguments
-% \fi}
-%
-% \def\doifprevlevelelse[#1]% !! this one is \let / uti seperator --
-% {\edef\somesavedlevel{\sectionseparator\@@filterlevelpart[#1]}%
-% \ifcase\alltoclevels
-% \ifnum\@@sectiontype=\@@filterblockpart[#1]\relax
-% \doifinstringelse
-% {=\currentlevel\sectionseparator}
-% {=\sectionseparator\@@filternumberpart[#1]\sectionseparator}
-% \donetrue\donefalse
-% \else
-% \donefalse
-% \fi
-% \else
-% \donetrue
-% \fi
-% \ifdone
-% \expandafter\firstoftwoarguments
-% \else
-% \expandafter\secondoftwoarguments
-% \fi}
-
-\def\doifnextlevelelse[#1]% !! this one is \let / uti seperator --
- {\edef\somesavedlevel{\sectionseparator\@@filterlevelpart[#1]}%
- \edef\@@tocsectiontype{\@@filterblockpart[#1]}% needed for nested tocs
- \ifcase\alltoclevels
- \ifnum\@@sectiontype=\@@tocsectiontype\relax
- \edef\levelstring{=\sectionseparator\@@filternumberpart[#1]\sectionseparator}%
- \doifincsnameelse{=\currentlevel\sectionseparator}\levelstring
- {\doifincsnameelse{=\currentlevel\sectionseparator0}\levelstring
- \donefalse
- \donetrue}
- \donefalse
- \else
- \donefalse
- \fi
- \else
- \donetrue
- \fi
- \ifdone
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\def\doifprevlevelelse[#1]% !! this one is \let / uti seperator --
- {\edef\somesavedlevel{\sectionseparator\@@filterlevelpart[#1]}%
- \edef\@@tocsectiontype{\@@filterblockpart[#1]}% needed for nested tocs
- \ifcase\alltoclevels
- \ifnum\@@sectiontype=\@@tocsectiontype\relax
- \doifinstringelse
- {=\currentlevel\sectionseparator}
- {=\sectionseparator\@@filternumberpart[#1]\sectionseparator}
- \donetrue\donefalse
- \else
- \donefalse
- \fi
- \else
- \donetrue
- \fi
- \ifdone
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-% we need to cover the special case of nested lists in section blocks
-%
-% \starttext
-%
-% \def\ChapterEntry#1#2#3%
-% {chapter : \hbox to \hsize{\strut\bf#2\hss#3}\endgraf\placelist[section]}
-%
-% \startfrontmatter % optional
-% \placelist[chapter][alternative=command,command=\ChapterEntry,criterium=text] \page
-% \stopfrontmatter % optional
-%
-% \startbodymatter % optional
-% \chapter{first} \section{one} test \section{two} test \page
-% \chapter{second} \section{alpha} test \section{beta} test \page
-% \stopbodymatter % optional
-%
-% \stoptext
-
-\def\doiftoclevelelse{\doifnextlevelelse}
-\def\doifreglevelelse{\doifprevlevelelse}
-\def\doifblklevelelse{\doifprevlevelelse}
-
-\def\@@longformatnumber#1%
- {\csname\previoussection{#1}\s!format\endcsname
- \sectionseparator
- \@@shortsectionnumber{#1}}
-
-% \def\@@longsectionnumber#1%
-% {\ifnum\countervalue{\??se\previoussection{#1}}>\zerocount
-% \csname\previoussection{#1}\c!nummer\endcsname.%
-% \fi
-% \@@shortsectionnumber{#1}}
-
-\def\@@longsectionnumber#1%
- {\ifreversesectionnumbers
- \@@shortsectionnumber{#1}%
- \ifnum\countervalue{\??se\previoussection{#1}}>\zerocount
- .\csname\previoussection{#1}\c!number\endcsname
- \fi
- \else
- \ifnum\countervalue{\??se\previoussection{#1}}>\zerocount
- \csname\previoussection{#1}\c!number\endcsname.%
- \fi
- \@@shortsectionnumber{#1}%
- \fi}
-
-% suited for chinese too:
-%
-% \def\@@shortsectionnumber#1%
-% {\@EA\ifx\csname\??se#1\@@sectionblock\c!conversie\endcsname\relax
-% \@@sectionvalue{#1}%
-% \else
-% \@@sectionconversion{#1}{\@@sectionvalue{#1}}%
-% \fi}
-%
-% obey eigennummer
-%
-% \def\@@shortsectionnumber#1%
-% {\@EA\ifx\csname\??se#1\c!eigennummer\endcsname\relax
-% \@EA\ifx\csname\??se#1\@@sectionblock\c!conversie\endcsname\relax
-% \@EA\ifx\csname\??se#1\c!conversie\endcsname\relax
-% \@@sectionvalue{#1}%
-% \else
-% \@@sectionconversion{#1}{\@@sectionvalue{#1}}%
-% \fi
-% \else
-% \@@sectionconversion{#1}{\@@sectionvalue{#1}}%
-% \fi
-% \else
-% \csname\??se#1\c!eigennummer\endcsname
-% \fi}
-
-\def\@@shortsectionnumber#1%
- {\@EA\ifx\csname\??se#1\c!ownnumber\endcsname\relax
- \@EA\ifx\csname\??se#1\@@sectionblock\c!conversion\endcsname\relax
- \@EA\ifx\csname\??se#1\c!conversion\endcsname\relax
- \@@sectionvalue{#1}%
- \else
- \@@sectionconversion{#1}{\@@sectionvalue{#1}}%
- \fi
- \else
- \@@sectionconversion{#1}{\@@sectionvalue{#1}}%
- \fi
- \else
- \csname\??se#1\c!ownnumber\endcsname
- \fi}
-
-\def\dosetlocalsectionblock#1#2#3% new \edef's
- {\edef\@@sectiontype {#1}%
- \edef\@@sectionblock {#2}%
- \edef\@@sectionblocks{#3}}
-
-% beware, the \resetsectionmarks generates some nodes that
-% will result in an additional last page, which needs to be
-% captured at the end
-
-% \def\doaroundsectionblock#1%
-% {\doifvaluesomething{\??sb#1\c!page}
-% {\ExpandFirstAfter\page[\getvalue{\??sb#1\c!page}]}%
-% \resetsectioncounters\zerosection % was firstsection
-% \resetsectionmarks\zerosection}
-
-% \def\dostartsectionblock#1#2%
-% {\begingroup
-% \doaroundsectionblock{#1}% % going to a new page or so
-% \getvalue{\??sb#1}% % set name of section block
-% \getsectionblockenvironment{#1}% % special settings, grouped
-% %\expandafter\csname#2true\endcsname % obsolete
-% \setsystemmode{#1}% % can be used in conditionals
-% \getvalue{\??sb\@@sectionblock\c!before}% this one is not to be moved!
-% \showmessage\m!structures1\@@sectionblocks}
-
-% \def\dostopsectionblock
-% {\showmessage\m!structures2\@@sectionblocks
-% \getvalue{\??sb\@@sectionblock\c!after}% don't move
-% \doaroundsectionblock\@@sectionblock
-% \endgroup}
-
-\def\doaroundsectionblock
- {\doifvaluesomething{\??sb\@@sectionblock\c!page}
- {\page[\getvalue{\??sb\@@sectionblock\c!page}]}%
- \resetsectioncounters\zerosection % was firstsection
- \resetsectionmarks\zerosection}
-
-\def\dostartsectionblock#1#2%
- {\begingroup
- \getvalue{\??sb#1}%
- \doaroundsectionblock
-% \doifvaluesomething{\??sb\@@sectionblock\c!page}{\page[\getvalue{\??sb\@@sectionblock\c!page}]}%
-% \resetsectioncounters\zerosection % was firstsection
-% \resetsectionmarks\zerosection
- \getsectionblockenvironment\@@sectionblock
- \setsystemmode\@@sectionblock
- \getvalue{\??sb\@@sectionblock\c!before}%
- \showmessage\m!structures1\@@sectionblocks}
-
-\def\dostopsectionblock
- {\showmessage\m!structures2\@@sectionblocks
- \getvalue{\??sb\@@sectionblock\c!after}% don't move
- \doaroundsectionblock
-% \doifvaluesomething{\??sb\@@sectionblock\c!page}{\page[\getvalue{\??sb\@@sectionblock\c!page}]}%
-% \resetsectioncounters\zerosection % was firstsection
-% \resetsectionmarks\zerosection
- \endgroup}
-
-\def\dosetupsectionblock[#1]% [#2]
- {\getparameters[\??sb#1]}
-
-\def\setupsectionblock
- {\dodoubleargument\dosetupsectionblock}
-
-\long\def\setsectionblockenvironment#1#2%
- {\long\setvalue{\??sb\s!do#1}{\do{#2}}}
-
-\def\getsectionblockenvironment#1%
- {\let\do\firstofoneargument\getvalue{\??sb\s!do#1}}
-
-\setvalue{\e!start\v!sectionblockenvironment}%
- {\dosingleargument\dostartsectionblockenvironment}
-
-\def\dostartsectionblockenvironment[#1]% evt \pushendofline \popendofline
- {\long\def\do##1##2{\setsectionblockenvironment{#1}{##1##2}}%
- \grabuntil{\e!stop\v!sectionblockenvironment}{\getvalue{\??sb\s!do#1}}}
-
-%D \starttyping
-%D \startsectionblockenvironment[frontpart]
-%D \setuppagenumbering[conversion=romannumerals]
-%D \stopsectionblockenvironment
-%D
-%D \startsectionblockenvironment[bodypart]
-%D \setuppagenumber[number=1]
-%D \stopsectionblockenvironment
-%D
-%D \startsectionblockenvironment[frontpart]
-%D \setuppagenumbering[conversion=character]
-%D \stopsectionblockenvironment
-%D
-%D \starttext
-%D \startfrontmatter \chapter{test} \stopfrontmatter
-%D \startbodymatter \chapter{test} \stopbodymatter
-%D \startappendices \chapter{test} \stopappendices
-%D \stoptext
-%D \stoptyping
-
-% We used to use the first char as id, but a counter is
-% better, because in english we get a name clash.
-
-\newcounter\currentsectionblock
-
-\def\currentsection{\@@sectionblock}
-
-\def\dodefinesectionblock[#1][#2][#3]%
- {\getparameters
- [\??sb#1]
- [\c!number=\v!yes,
- \c!page=\v!right, % anders worden marks te vroeg gereset !
- %\c!before=,
- %\c!after=,
- #3]%
- \expandafter\newif\csname if#2\endcsname % better a mode
- \doglobal\increment\currentsectionblock
- \setsectionblockenvironment{#1}{}%
- \setevalue{\??sb #1}{\noexpand\dosetlocalsectionblock{\currentsectionblock}{#1}{#2}}%
- \setvalue {\e!start#2}{\dostartsectionblock{#1}{#2}}%
- \setvalue {\e!stop #2}{\dostopsectionblock}}
-
-\def\definesectionblock
- {\dotripleargument\dodefinesectionblock}
-
-\def\sectionblocklabel#1#2%
- {\@EA\ifx\csname\??ko#1\@@sectionblock\c!label\endcsname\relax
- \labeltexts{#1}{#2}%
- \else
- \labeltexts{\getvalue{\??ko#1\@@sectionblock\c!label}}{#2}%
- \fi}
-
-\dosetlocalsectionblock{2}{\v!bodypart}{\v!bodymatter} % hm, dirty
-
-\def\setsectiontype[#1]%
- {\getvalue{\??sb#1}}
-
-\def\writesection#1#2#3% #3 -> \asciititle
- {\bgroup
- \edef\!!stringa{#1}%
- \@EA\writestatus\@EA
- {\!!stringa}
- {\ifsectionnumber#2\else(#2)\fi\normalspace\asciititle}%
- \egroup}
-
-\def\@@kolevel{1} \def\headlevel{\@@kolevel}
-
-\def\dohandlepagebreakAA#1%
- {\ifnum\lastpenalty>0
- \global\pagebreakdisabledtrue
- \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)
-% {\doifnotvalue{\??ko#1\c!aligntitle}\v!float\flushsidefloats
-% \getvalue{\??ko#1\c!before}%
-% % \whitespace vervangen door \noindent elders
-% \relax
-% \ifpagebreakdisabled
-% \global\pagebreakdisabledfalse
-% \else
-% \!!countb\getvalue{\??se\@@sectie\c!level}\relax
-% \ifnum\!!countb>\@@kolevel\relax
-% \!!counta20000
-% \multiply\!!countb 500
-% \advance\!!counta \!!countb
-% \dosomebreak{\penalty\!!counta}%
-% \else
-% \dosomebreak\allowbreak
-% \fi
-% \fi
-% \doifvalue{\??ko#1\c!aligntitle}\v!float\indent
-% \xdef\@@kolevel{\getvalue{\??se\@@sectie\c!level}}}
-
-\chardef\somebreakmethod\plusone
-
-\def\dohandlepagebreakAB#1% will be replaced by a more clever (signaling) mechanism (in beta)
- {\doifnotvalue{\??ko#1\c!aligntitle}\v!float\flushsidefloats
- \getvalue{\??ko#1\c!before}%
- % \whitespace vervangen door \noindent elders
- \relax
- \ifpagebreakdisabled
- \global\pagebreakdisabledfalse
- \else
- \ifcase\somebreakmethod
- % 0 = nothing
- \or
- % 1 = old weighted version
- \!!countb\getvalue{\??se\@@sectie\c!level}\relax
- \ifnum\!!countb>\@@kolevel\relax
- \!!counta20000
- \multiply\!!countb 500
- \advance\!!counta \!!countb
- \dosomebreak{\penalty\!!counta}%
- \else
- \dosomebreak\allowbreak % brr
- \fi
- \or
- % 2 = strict version
- \dosomebreak{\penalty\maxdimen}%
- \else
- % nothing
- \fi
- \fi
- \doifvalue{\??ko#1\c!aligntitle}\v!float\indent
- \xdef\@@kolevel{\getvalue{\??se\@@sectie\c!level}}}
-
-\def\dohandlepagebreakBB#1#2#3%
- {%\doifinsetelse{\getvalue{\??tk#2\c!state}}{\v!normal,\v!start}
- \doifelselayouttextline{#2}
- {\doifvaluesomething{\??ko#1#3}
- {\setuplayouttext[#2][\c!state=\getvalue{\??ko#1#3}]}}
- \donothing}
-
-\def\dohandlepagebreakB#1%
- {\doifvaluesomething{\??ko#1\c!page}
- {\def\resetcurrentsectionmarks% toegevoegd, zie \page
- {\resetsectionmarks{\previoussection\@@sectie}}%
- \page[\getvalue{\??ko#1\c!page}]%
- \dohandlepagebreakBB{#1}\v!header\c!header
- \dohandlepagebreakBB{#1}\v!text \c!text
- \dohandlepagebreakBB{#1}\v!footer\c!footer}}
-
-\def\dohandlepagebreakX#1% zie doordefinieren / boven
- {\bgroup
- \!!countb\@@kolevel
- \advance\!!countb #1
- \multiply\!!countb 500
- \!!counta20000
- \advance\!!counta \!!countb
- \dosomebreak{\penalty\!!counta}%
- \egroup}
-
-\newconditional\ignorehandlepagebreak
-
-\def\handlepagebreak#1%
- {\ifconditional\ignorehandlepagebreak
- \setfalse\ignorehandlepagebreak
- \else
- \dohandlepagebreakAA{#1}%
- \ifnum\countervalue{\??se\previoussection\@@sectie}>\zerocount\relax
- \ifnum\countervalue{\??se\@@sectie}>\zerocount
- \dohandlepagebreakB{#1}%
- \else
- \doifnotvalue{\??ko#1\c!continue}\v!yes{\dohandlepagebreakB{#1}}%
- \fi
- \else
- \dohandlepagebreakB{#1}%
- \fi
- \dohandlepagebreakAB{#1}%
- \fi}
-
-\def\handlenopagebreak#1%
- {\ifconditional\ignorehandlepagebreak
- \setfalse\ignorehandlepagebreak
- \else
- \xdef\@@kolevel{\getvalue{\??se\@@sectie\c!level}}%
- \nobreak
- \fi}
-
-\def\localheadheight {\strutht}
-\def\localheaddepth {\strutdp}
-\def\localheadlineheight{\lineheight}
-
-\def\dolocalheadsetup#1% koppeling met standaard kopcommando / engels
- {\forgetall % traag dus ...
- \doifvaluesomething{\??ko#1\c!align} % wordt al expanded in spa
- {\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
-
-% todo: make them conditionals:
-
-\newif\ifincrementnumber
-\newif\ifreversesectionnumbers % todo: key/val
-\newif\ifsectionnumber \sectionnumbertrue
-\newif\ifdisplaysectionhead \displaysectionheadtrue
-\newif\ifplacehead
-\newif\ifemptyhead
-\newif\ifwritetolist
-\newif\ifheadnumber
-\newif\ifheadnumbercontent % niet meer wijzigen / wordt mode
-\newif\ifheadprefix
-\newif\ifsomeheadconversion
-
-% new
-
-\newconditional\@@resetsubheadnumbers
-
-\def\setsectieenkoppeling#1%
- {\edef\@@koppeling{\getvalue{\??ko#1\c!coupling}}%
- \edef\@@sectie{\getvalue{\??ko#1\c!section}}%
- \doifnothing\@@koppeling
- {\edef\@@koppeling{#1}}%
- \doifnothing\@@sectie
- {\edef\@@sectie{\getvalue{\??ko\@@koppeling\c!section}}}}
-
-% \handlepagebreak komt het eerst omdat eventueel
-% subpaginanummers moeten worden afgehandeld. Vervolgens
-% worden de nummers opgehoogd en referenties geset, dan
-% volgt de kop en tot slot de worden de marks en de prefix
-% geset.
-
-% \hoofdstuk {tekst}
-% \hoofdstuk tekst
-% \hoofdstuk <niets>
-
-\let\finalsectionnumber\empty
-
-\def\dofinalsectionnumber
- {\ifundefined{\@@sectie\c!number}\else
- \ifsomeheadconversion
- \@@shortsectionnumber\@@sectie
- \else
- \getvalue{\@@sectie\c!number}%
- \fi
- \fi}
-
-\def\findsectionnumber#1#2#3% class file title / uti seperator --
- {\begingroup
- \setsectieenkoppeling{#1}%
- \xdef\foundsectionnumber{1}%
- \def\dolistelement##1##2##3##4##5##6%
- {\doif{##1}{#1}
- {\ConvertConstantAfter\doif{##4}{#3}
- {\global\utilitydonetrue
- \scratchcounter=0\getvalue{\??se\@@sectie\c!level}%
- %
- %\advance\scratchcounter 2
- %\@EA\def\@EA\do\@EA####\@EA1\sectionseparator####2]%
- % {\advance\scratchcounter -1
- % \ifcase\scratchcounter
- % \xdef\foundsectionnumber{####1}%
- % \else
- % \do####2]%
- % \fi}%
- %\do##5]}}}%
- %
- \def\do####1\relax % :/- clean
- {\advance\scratchcounter \minusone
- \ifcase\scratchcounter
- \xdef\foundsectionnumber{\@@filterheadpart[####1]}%
- \else
- \@EAEAEA\do\@@filtertailpart[####1]\relax
- \fi}%
- \@EA\do\@@filternumberpart[##5]\relax}}}%
- \setbox0\vbox
- {\doutilities{#1}{#2}{#1}\relax\relax}%
- \endgroup
- \doifnumberelse\foundsectionnumber
- {\doif\foundsectionnumber\!!zerocount
- {\globallet\foundsectionnumber\!!plusone}}
- {\globallet\foundsectionnumber\!!plusone}% an appendix or so
- \setupheadnumber[#1][\foundsectionnumber]%
- \setupheadnumber[#1][-1]}
-
-% deal with eigennummer
-
-\def\setsomeheadconversion#1#2%
- {\someheadconversionfalse
- \doifelsevalue{\??ko#1\c!ownnumber}\v!yes
- {\setgvalue{\??se\@@sectie\c!ownnumber}{#2}%
- \def\someheadconversion{#2}}
- {\letgvalue{\??se\@@sectie\c!ownnumber}\relax
- \determineheadnumber[#1]%
- \@EA\ifx\csname\??se\@@sectie\@@sectionblock\c!headconversion\endcsname\relax
- \@EA\ifx\csname\??se\@@sectie\c!headconversion\endcsname\relax
- \def\someheadconversion{#2}%
- \else
- \@EA\ifx\csname\??se\@@sectie\c!headconversion\endcsname\empty
- \def\someheadconversion{#2}%
- \else
- \someheadconversiontrue
- \def\someheadconversion%
- {\fullsectionnumber{#1}{\getvalue{\??se\@@sectie\c!headconversion}}{#2}}%
- \fi
- \fi
- \else
- \@EA\ifx\csname\??se\@@sectie\@@sectionblock\c!headconversion\endcsname\empty
- \def\someheadconversion{#2}%
- \else
- \someheadconversiontrue
- \def\someheadconversion%
- {\fullsectionnumber{#1}{\getvalue{\??se\@@sectie\@@sectionblock\c!headconversion}}{#2}}%
- \fi
- \fi}}
-
-\def\writtenfullsectionnumber
- {\string\fullsectionnumber}
-
-\def\ignoredfullsectionnumber#1#2#3%
- {#3}
-
-\let\storedfullsectionnumber\relax
-
-\def\expandablefullsectionnumber#1#2#3%
- {\convertnumber{#2}{#3}}
-
-\unexpanded\def\naturalfullsectionnumber#1#2#3%
- {\sectionblocklabel{#1}{\convertnumber{#2}{#3}}}
-
-\unexpanded\def\limitedfullsectionnumber#1#2#3%
- {\convertnumber{#2}{#3}}
-
-\def\setfullsectionnumber#1%
- {\doifelsevalue{#1\c!headconversion}\v!yes
- {\doifelsevalue{#1\c!headlabel}\v!yes
- {\let\fullsectionnumber\naturalfullsectionnumber}
- {\let\fullsectionnumber\limitedfullsectionnumber}}
- {\let\fullsectionnumber\ignoredfullsectionnumber}}
-
-\let\fullsectionnumber\limitedfullsectionnumber
-
-% from cont-new:
-
-\def\expandifnonempty#1%
- {\@EA\ifx\csname#1\endcsname\empty
- \expandafter\secondoftwoarguments
- \else
- \expandafter\firstoftwoarguments
- \fi
- {\csname#1\endcsname}}
-
-\def\@@sectiekoppeling#1%
- {\expandifnonempty{\??ko#1\c!coupling}{#1}}
-
-\def\@@sectiesectie#1%
- {\expandifnonempty{\??ko#1\c!section}{\@@sectiekoppeling{#1}}}
-
-\def\sectioncountervalue#1%
- {\@@sectionvalue{\@@sectiesectie{#1}}}
-
-% \dodododoconstructhead IS NON GROUPED, SO WE NEED TO RESTORE !!!!
-%
-% dit kan dus beter \everyaroundhead zijn
-
-\let\currentheadnumber\empty
-\let\currentheadtext \empty
-
-\def\dodoconstructhead#1[#2]#3% [ref] {title}
- {\doifelsevalue{\??ko#1\c!ownnumber}\v!yes
- {\doquadruplegroupempty\dododoconstructhead{#1}{#2}{#3}}
- {\fourthargumentfalse \dododoconstructhead{#1}{#2}{#3}{}}}
-
-\def\dododoconstructhead#1#2#3#4% [ref] {own} {title}
- {\iffourthargument
- \def\next{\dodododoconstructhead{#1}[#2]{#3}{#4}}%
- \else
- \def\next{\dodododoconstructhead{#1}[#2]{\finalsectionnumber}{#3}}%
- \fi
- \next}
-
-% pas met \ExpandFirstAfter op bij twee||taligheid
-
-\ifx\dohandleheadnumber\undefined
- \let\dohandleheadnumber\firstofoneargument
-\fi
-
-\unexpanded\def\\{\space}
-
-\def\emptyheadcorrection % experimental, should work
- {\ifemptyhead % well with na=\blank
- \vskip-\lineheight
- \dosomebreak\nobreak
- \kern\zeropoint
- \prevdepth\strutdepth
- \fi}
-
-\let\localkopprefix\empty
-
-\def\headparameter#1% to do: everywhere in core-sec
- {\executeifdefined{\??ko\currenthead#1}\empty}
-
-% todo: write to list etc in both args or in enclosing h/vbox else it gets
-% lost when no #1 or #2 is typeset
-
-% we will use variables here
-
-\def\dodododoconstructhead#1[#2]#3#4% [ref] {number} {title}
- {\def\currenthead{#1}% dus #1 overal vervangen
- \let\finalsectionnumber\dofinalsectionnumber % overloaded ungrouped -)
- \unexpanded\def\\{\space}%
- \edef\numberseparator{\spr{\getvalue{\??ko\currenthead\c!separator}}}%
- \flushingcolumnfloatsfalse % {number} can be \finalsectionnumber
- \someheadconversionfalse
- \let\fullsectionnumber\limitedfullsectionnumber
- \setsectieenkoppeling{#1}%
- \doifelsevaluenothing{\??ko#1\c!prefix}
- \headprefixfalse\headprefixtrue
- \ifheadprefix
- \doifelsevalue{\??ko#1\c!prefix}{+}
- {\doifelsenothing{#2}
- {\def\localkopprefix{+}}
- {\def\localkopprefix{#2}}} % eigenlijk alleen eerste
- {\edef\localkoprefix{\getvalue{\??ko#1\c!prefix}}}%
- \else
- \let\localkoprefix\empty
- \fi
- \placeheadtrue
- \processaction
- [\getvalue{\??ko#1\c!placehead}]
- [ \v!yes=>\emptyheadfalse,
- \v!empty=>\emptyheadtrue,
- \v!no=>\emptyheadtrue\placeheadfalse]%
- \doifelsevalue{\??ko#1\c!resetnumber}\v!no
- {\setfalse\@@resetsubheadnumbers}%
- {\settrue \@@resetsubheadnumbers}%
- \writetolistfalse
- \processaction
- [\getvalue{\??ko#1\c!incrementnumber}]
- [ \v!yes=>\incrementnumbertrue,
- \v!no=>\incrementnumberfalse,
- \v!list=>\incrementnumberfalse
- % beware, since no numbers are used, no nested lists are
- % possible here
- \writetolisttrue,
- \s!unknown=>{\ifx\currentproduct\empty
- \findsectionnumber{#1}\commalistelement{#4}%
- \fi
- \incrementnumbertrue}]%
- \edef\numberheaddistance {\getvalue{\??ko#1\c!distance}}%
- \edef\numberheadalternative{\getvalue{\??ko#1\c!alternative}}%
- \doifelsevalue{\??ko:\numberheadalternative}\v!horizontal
- \displaysectionheadfalse
- \displaysectionheadtrue
- \ifsectionnumber
- \doifelsevalue{\??sb\@@sectionblock\c!number}\v!yes
- {\doifelsevalue{\??ko#1\c!number}\v!yes
- \headnumbertrue
- \headnumberfalse}
- {\headnumberfalse}%
- \else
- \headnumberfalse
- \fi
- \defconvertexpanded\asciititle{\getvalue{\??ko#1\c!expansion}}{#4}%
- %
- \gdef\currentheadtext{#4}% scheelt args
- \globallet\currentheadnumber\empty
- %
- \ifincrementnumber
- \ifplacehead
- \checknexthead\handlepagebreak{#1}%
- \setsectieenkoppeling{#1}% can be changed when [voor=\somehead{..}...]
- \ifheadprefix
- %\setupreferencing[\c!prefix=-]%
- \setupreferenceprefix[-]%
- \fi
- \getvalue{\e!next\@@sectie}%
- \ifheadnumber
- \setsomeheadconversion{#1}{#3}%
- \let\fullsectionnumber\expandablefullsectionnumber
- \xdef\currentheadnumber{\someheadconversion}%
- \getvalue{\??ko#1\c!inbetween}%
- \ifsomeheadconversion
- \let\fullsectionnumber\naturalfullsectionnumber
- \doplaceheadnumbertext
- {#1}
- {\setsectionlistreference{\@@sectie}{#1}%
- \pagetype[\@@koppeling]%
- \let\fullsectionnumber\writtenfullsectionnumber
- \rawreference\s!sec{#2}{{\someheadconversion}{\asciititle}}%
- \resetsectionmarks\@@sectie
- \setlistparameter\@@koppeling\c!expansion{\getvalue{\??ko#1\c!expansion}}%
- \let\fullsectionnumber\writtenfullsectionnumber
- \dowritetolist\@@koppeling\someheadconversion{#4}\v!head}%
- {\dohandleheadnumber\someheadconversion}% handle is new
- {#4}
- {\marking[#1]{#4}%
- \let\fullsectionnumber\storedfullsectionnumber
- \expanded{\marking[#1\v!number]{\someheadconversion}}}%
- \let\fullsectionnumber\ignoredfullsectionnumber
- \writesection{#1}{\someheadconversion}{#4}%
- \else
- \doplaceheadnumbertext
- {#1}
- {\setsectionlistreference{\@@sectie}{#1}%
- \pagetype[\@@koppeling]%
- \rawreference\s!sec{#2}{{#3}{\asciititle}}%
- \resetsectionmarks\@@sectie
- \setlistparameter\@@koppeling\c!expansion{\getvalue{\??ko#1\c!expansion}}%
- \dowritetolist\@@koppeling{#3}{#4}\v!head}
- {\sectionblocklabel{#1}{\dohandleheadnumber{#3}}}% handle is new
- {#4}
- {\marking[#1]{#4}%
- \doifelsevalue{\??ko#1\c!ownnumber}\v!yes % rommelig omdat
- {\edef\finalsectionnumber{#3}} % #3 al is toegekend
- {\determineheadnumber[#1]}% migreert naar 3e argument
- \expanded{\marking[#1\v!number]{\finalsectionnumber}}}%
- \writesection{#1}{#3}{#4}%
- \fi
- \else
- \getvalue{\??ko#1\c!inbetween}%
- \doplaceheadtext
- {#1}
- {\setsectionlistreference{\@@sectie}{#1}%
- \pagetype[\@@koppeling]%
- \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}
- {#4}
- {\marking[#1]{#4}%
- \doifelsevalue{\??ko#1\c!ownnumber}\v!yes % brrr
- {\edef\finalsectionnumber{#3}}
- {\determineheadnumber[#1]}%
- % todo : geen markering (leeg maken)
- \expanded{\marking[#1\v!number]{\finalsectionnumber}}}%
- \writesection{#1}{-}{#4}%
- \fi
- \ifheadprefix
- \setupreferenceprefix[\localkopprefix]%
- \fi
- \ifdisplaysectionhead
- \dosomebreak\nobreak
- \emptyheadcorrection
- \getvalue{\??ko#1\c!after}%
- \fi
- \else
- % Whatever future tex's will do with nodes,
- % we assume a node here, because other \c!after=\blank
- % will fail! See 'prikkels'
- %
- % so, maybe we need an explicit \kern
- %
- % do nothing / should be vbox to 0pt
- %
- \checknexthead\dohandlepagebreakB{#1}% toegevoegd ivm subpaginanr / tug sheets
- \setsectieenkoppeling{#1}% can be changed when [voor=\somehead{..}...]
- \ifheadprefix
- \setupreferenceprefix[-]%
- \fi
- \getvalue{\e!next\@@sectie}%
- \ifheadnumber
- \setsomeheadconversion{#1}{#3}%
- \let\fullsectionnumber\expandablefullsectionnumber
- \xdef\currentheadnumber{\someheadconversion}%
- \fi
- \getvalue{\??ko#1\c!inbetween}% documenteren, is enige hook
- \bgroup
- \setsectionlistreference{\@@sectie}{#1}%
- \resetsectionmarks\@@sectie
- \marking[#1]{#4}%
- \doifelsevalue{\??ko#1\c!ownnumber}\v!yes
- {\edef\finalsectionnumber{#3}}
- {\determineheadnumber[#1]}%
- \expanded{\marking[#1\v!number]{\finalsectionnumber}}%
- \pagetype[\@@koppeling]%
-% \bgroup
- \setlistparameter\@@koppeling\c!expansion{\getvalue{\??ko#1\c!expansion}}%
- \ifheadnumber
- \rawreference\s!sec{#2}{{#3}{\asciititle}}%
- \dowritetolist\@@koppeling{#3}{#4}\v!head
- \writesection{#1}{#3}{#4}%
- \else % hm, also no own number
- \rawreference\s!sec{#2}{{#3}{\asciititle}}%
- \dowritetolist\@@koppeling{}{#4}\v!head
- \writesection{#1}{-}{#4}%
- \fi
- \egroup
- \ifheadprefix
- \setupreferenceprefix[\localkopprefix]%
- \fi
- \fi
- \else
- % todo : ref prefix
- \ifplacehead
- \checknexthead\handlepagebreak{#1}%
- \setsectieenkoppeling{#1}% can be changed when [voor=\somehead{..}...]
- \getvalue{\??ko#1\c!inbetween}%
- \doplaceheadtext
- {#1}
- {\forcesectiontolist{#1}{#4}%
- \rawreference\s!sec{#2}{{#3}{\asciititle}}} % #3 ?
- {#4}
- %{}% new:
- {\marking[#1]{#4}%
- \marking[#1\v!number]{}}%
- \writesection{#1}{-}{#4}%
- \ifdisplaysectionhead
- \dosomebreak\nobreak
- \emptyheadcorrection
- \getvalue{\??ko#1\c!after}%
- \fi
- \else
- % do nothing / should be vbox to 0pt
- \checknexthead\handlepagebreak{#1}%
- \setsectieenkoppeling{#1}% can be changed when [voor=\somehead{..}...]
- \getvalue{\??ko#1\c!inbetween}%
- \forcesectiontolist{#1}{#4}%
- \rawreference\s!sec{#2}{{#3}{\asciititle}}% #3 ?
- \marking[#1]{#4}%
- \marking[#1\v!number]{}%
- \writesection{#1}{-}{#4}%
- \fi
- \fi
- \flushingcolumnfloatstrue
- \someheadconversionfalse
- \setfalse\ignorehandlepagebreak
- \let\fullsectionnumber\limitedfullsectionnumber
- % ignorespaces prevents spaces creeping in when after=\dontleavehmode
- \ifdisplaysectionhead\ignorespaces\else\expandafter\GotoPar\fi}
-
-\def\forcesectiontolist#1#2%
- {\ifwritetolist
- % we need to make sure that there is a number set (non
- % zero) else the list mechanism cannot determine the
- % level
- \bgroup
- \setupheadnumber[#1][+1]% traag, wordt \getvalue{\c!next...}
- \setlistparameter\@@koppeling\c!expansion{\getvalue{\??ko#1\c!expansion}}%
- \dowritetolist\@@koppeling{}{#2}\v!head
- \setupheadnumber[#1][-1]% traag, wordt \getvalue{\c!previous...}
- \egroup
- \fi}
-
-\let\previoussectionformat\empty
-\let\currentsectionformat \empty
-
-\let\updatelistreferences \relax
-\let\updatedlistreferences\empty
-
-\def\setsectionlistreference#1#2%
- {\ifnum\countervalue{\??se\previoussection{#1}}>0\relax
- \xdef\previoussectionformat{\@@longformatnumber{\previoussection{#1}}}%
- \else
- \globallet\previoussectionformat\empty
- \fi
- \xdef\currentsectionformat{\@@longformatnumber{#1}}}
-
-\def\startlistreferences#1%
- {\thisissomeinternal{\s!lst}{#1\currentsectionformat}%
- \setxvalue{\s!lst:#1}{\realfolio}% to be sure
- \setxvalue{\s!lst:#1\currentsectionformat}{\realfolio}%
- \setxvalue{\e!previouslocal#1}{\s!lst:#1\previoussectionformat}%
- \setxvalue{\e!currentlocal#1}{\s!lst:#1\currentsectionformat}%
- \doifelse{\currentsectionformat}{}
- {\setglobalcrossreference
- {\e!previous#1}{}{\realfolio}{}}
- {\setglobalsystemreference\rt!list
- {\e!previous#1}{\getvalue{\e!previouslocal#1}}}%
- \def\stoplistreferences{\dostoplistreferences{#1}}}
-
-\def\dostoplistreferences#1%
- {\ifutilitydone
- \addtocommalist{#1}\updatedlistreferences % nog global (\doglobal)
- \globallet\updatedlistreferences\updatedlistreferences % een noodverbandje
- \gdef\updatelistreferences%
- {\def\docommand####1%
- {\setglobalsystemreference\rt!list
- {\e!previous####1}{\getvalue{\e!currentlocal####1}}}%
- \processcommacommand[\updatedlistreferences]\docommand
- \globallet\updatelistreferences\relax
- \globallet\updatedlistreferences\empty}%
- \fi}
-
-\let\stoplistreferences\relax
-
-\appendtoks
- \updatelistreferences
-\to\aftereverypage
-
-% \prevdepth\strutdp % is belangrijk, vergelijk naast elkaar:
-%
-% \subject{test} \input tufte
-% \subject{test} \strut \input tufte
-% \subject{test} \placelist[...]
-
-% todo: kap
-
-% to be documented: \placeheadtext \placeheadnumber
-
-\unexpanded\def\placeheadtext
- {\doquintupleempty\doplaceheadtextornumber
- [\c!textstyle][\c!textcolor][\empty]}
-
-\unexpanded\def\placeheadnumber
- {\doquintupleempty\doplaceheadtextornumber
- [\c!numberstyle][\c!numbercolor][\v!number]}
-
-\def\doplaceheadtextornumber[#1][#2][#3][#4][#5]%
- {\bgroup
- \edef\@@sectie{\??ko\iffifthargument#5\else#4\fi}%
- \dostartattributes\@@sectie\c!style\c!color\empty
- \dontconvertfont
- \dostartattributes\@@sectie{#1}{#2}\empty
- \setupinterlinespace
- \begstrut\getmarking[\mainmarking{#4#3}]\endstrut
- \endgraf
- \dostopattributes
- \dostopattributes
- \egroup}
-
-\chardef\headtimingmode=0
-
-% \chardef\headtimingmode=1 % 0 also works ok now too
-%
-% Martin Kolarik's problem:
-%
-% \setuphead[section][command=\doTitle]
-%
-% \def\doTitle#1#2%
-% {\ruledvbox{\forgetall \hsize=4cm
-% \ruledhbox{\ruledvtop{#1}\ruledvtop{#2}}}}
-%
-% \section{test test test test test test test test test test
-% test test test test test test test}
-
-\newevery \everyheadstart \relax
-
-\def\placeheadmargintexts#1%
- {\the\everyheadstart
- \doifvalue{\??ko#1\c!margintext}\v!yes\placemargincontent}
-
-\def\doplaceheadtext#1#2#3#4%
- {\beginheadplacement{#1}%
- \ifemptyhead % = needed
- \setbox0=\ifvertical\vbox\else\hbox\fi to \zeropoint
- {\headnumbercontentfalse
- \resetsystemmode\v!sectionnumber
- #2}%
- \makestrutofbox0
- \else % = needed
- \setbox0=\ifvertical\vbox\else\hbox\fi % \vhbox
- {\headnumbercontentfalse
- \resetsystemmode\v!sectionnumber
- % less interfering
- \ifcase\headtimingmode\or#2\fi
- % 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
- \getvalue{\??ko#1\c!command}
- {} % no number
- {\dostartattributes{\??ko#1}\c!style\c!color\empty
- \dostartattributes{\??ko#1}\c!textstyle\c!textcolor\empty
- \dontconvertfont
- \ifdisplaysectionhead
- \setupinterlinespace
- \else
- \setupspacing
- \fi
- % \ifcase\headtimingmode#2\fi % can introduce cr
- \getvalue{\??ko#1\c!commandbefore}%
- \placeheadmargintexts{#1}% binnen #3?
- \ifdisplaysectionhead
- \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
- \else
- \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
- \dostopattributes
- \dostopattributes}}%
- \fi
- \endheadplacement{#1}{#4}}
-
-\def\doplaceheadnumbertext#1#2#3#4#5% maybe move modes outside box
- {\beginheadplacement{#1}%
- \ifemptyhead % = needed
- \setbox0=\ifvertical\vbox\else\hbox\fi to \zeropoint
- {\doiftextelse{#3}
- {\setsystemmode \v!sectionnumber\headnumbercontenttrue }
- {\resetsystemmode\v!sectionnumber\headnumbercontentfalse}%
- #2}%
- \makestrutofbox0
- \else % = needed
- \setbox0=\ifvertical\vbox\else\hbox\fi % \vhbox
- {\doiftextelse{#3}
- {\setsystemmode \v!sectionnumber\headnumbercontenttrue }
- {\resetsystemmode\v!sectionnumber\headnumbercontentfalse}%
- % less interfering
- \ifcase\headtimingmode\or#2\fi
- % outerside font determines distance
- \dosetfontattribute{\??ko#1}\c!style
- % but we don't want color to influence user commands
- \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}% strange, why here? moved 21/11/2005
- \placeheadmargintexts{#1}% binnen #3?
- \ifdisplaysectionhead
- % can be nilled with \setnostrut
- \getvalue{\??ko#1\c!numbercommand}%
- {\setstrut
- \begstrut
- \executeifdefined{\??ko#1\c!deepnumbercommand}\firstofoneargument{#3}%
- \endstrut}%
- \else
- \getvalue{\??ko#1\c!numbercommand}%
- {\executeifdefined{\??ko#1\c!deepnumbercommand}\firstofoneargument{#3}}%
- \fi
- \dostopattributes
- \dostopattributes}
- {\dostartattributes{\??ko#1}\c!style\c!color\empty
- \dostartattributes{\??ko#1}\c!textstyle\c!textcolor\empty
- \dontconvertfont
- \ifdisplaysectionhead
- \setupinterlinespace
- \else
- \setupspacing
- \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}% 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
- \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
- \dostopattributes
- \dostopattributes}}%
- \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][subject]
-%D \setuphead [MySubject][deeptextcommand=\StretchedBox]
-%D
-%D \MySubject{feeling stretched feeling stretched feeling stretched feeling stretched}
-%D \stoptyping
-
-\newsignal\headsignal
-\let\headlastlinewidth\!!zeropoint
-
-\def\beginheadplacement#1%
- {\bgroup
- \setsystemmode{#1}% to be documented
- \ifgridsnapping\iftracegridsnapping\showstruts\fi\fi
- \xdef\localheadheight {\the\strutht}%
- \xdef\localheaddepth {\the\strutdp}%
- \xdef\localheadlineheight{\the\lineheight}%
- % == \globallet\localheaddepth\strutdp
- \everypar\emptytoks % needed indeed
- \noindent % ipv \whitespace elders, na \forgetall !
- \bgroup
- \doifinsetelse{\getvalue{\??ko#1\c!aligntitle}}{\v!yes,\v!float}% new
- {\skip0 1\leftskip
- \skip2 1\rightskip
- \xdef\localheadskip{\the\skip0}%
- \forgetall
- \leftskip\skip0
- \rightskip\skip2
- \setlocalhsize\hsize\localhsize
- \forgetbothskips}
- {\globallet\localheadskip\!!zeropoint
- \forgetall}%
- \dontcomplain
- \postponenotes
- \iflocation\ifdisplaysectionhead\else\noninterferingmarks\fi\fi
- \resetinteractionparameter\c!style
- \resetinteractionparameter\c!color
- \resetinteractionparameter\c!contrastcolor
- \strictouterreferencestrue % tzt instelling
- \def\localheadsetup{\dolocalheadsetup{#1}}%
- \startsynchronization}
-
-% \setuphead[chapter] [style=\bfd,after=,hang=line] % fit broad 2
-% \setuphead[section] [style=\bfc,after=,hang=line]
-% \setuphead[subsection] [style=\bfb,after=,hang=line]
-% \setuphead[subsubsection] [style=\bfa,after=,hang=line]
-% \setuphead[subsubsubsection][style=\bf ,after=,hang=line]
-%
-% \chapter {Test} \input tufte \page
-% \section {Test} \input tufte \page
-% \subsection {Test} \input tufte \page
-% \subsubsection {Test} \input tufte \page
-% \subsubsubsection{Test} \input tufte \page
-%
-% \chapter {Test\\Test} \input tufte \page
-% \section {Test\\Test} \input tufte \page
-% \subsection {Test\\Test} \input tufte \page
-% \subsubsection {Test\\Test} \input tufte \page
-% \subsubsubsection{Test\\Test} \input tufte \page
-
-\def\hangheadplacement
- {\scratchdimen\localheadlineheight
- \bgroup
- \openlineheight\scratchdimen
- \scratchdimen\ht0
- \advance\scratchdimen\dp0
- \getnoflines\scratchdimen
- \advance\noflines\minusone
- \expanded{\egroup\noflines\the\noflines}% brrr
- \setbox0\hbox{\lower\noflines\scratchdimen\box0}%
- \scratchdimen\ht0
- \advance\scratchdimen\dp0
- \advance\scratchdimen-\localheadheight
- \advance\scratchdimen+\strutdp
- \ht0 \strutht
- \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
- \ifdisplaysectionhead
- % new (tod tight == one following line up)
- \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
- \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
- \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=\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}%
- \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}
-
-\def\checknexthead#1#2% nog optioneel
- {\ifhmode
- \scratchcounter=\lastpenalty\unpenalty % no beauty in this
- \ifdim\lastskip=\headsignal
- \handlenopagebreak{#1}%
- \global\settrue\continuoussectionhead
- \else
- \penalty\scratchcounter
- \global\setfalse\continuoussectionhead
- #1{#2}%
- \fi
- \else
- \global\setfalse\continuoussectionhead
- #1{#2}%
- \fi}
-
-\def\dosetupheadnumber[#1][#2#3]% todo: = (don't reset)
- {\bgroup
- \setsectieenkoppeling{#1}%
- \doifinstringelse{#2}{+-}
- {\doifelsenothing{#3}
- {\@@nextsectionnumber\@@sectie}
- {\!!counta=#2#3\relax
- \advance\!!counta \@@sectionvalue\@@sectie
- \@@setsectionnumber\@@sectie\!!counta}}
- {\@@setsectionnumber\@@sectie{#2#3}}%
- \egroup}
-
-\def\setupheadnumber
- {\dodoubleargument\dosetupheadnumber}
-
-\def\currentheadnumber{0}
-
-\def\determineheadnumber[#1]%
- {\bgroup
- \setsectieenkoppeling{#1}%
- \xdef\currentheadnumber{\@@sectionvalue{\@@sectie}}%
- \egroup}
-
-\def\complexheadnumber[#1]%
- {\bgroup
- \edef\currentheadnumber{#1}%
- \doifinsetelse{-}{#1} % br undocumented
- {\removefromcommalist{-}\currentheadnumber % br
- \setsectieenkoppeling\currentheadnumber
- \setupsection[\@@sectie][\c!previousnumber=\v!no]}%
- {\setsectieenkoppeling\currentheadnumber}%
- \xdef\currentheadnumber{\@@sectionvalue{\@@sectie}}%
- \doifnot{\currentheadnumber}{0}{\finalsectionnumber}%
- \egroup}
-
-\def\simpleheadnumber
- {\currentheadnumber}
-
-\definecomplexorsimple\headnumber
-
-\def\alinea
- {\par}
-
-% nice testcase
-%
-% \setupheads[aligntitle=yes]
-%
-% \startnarrower
-% \subject{\dorecurse{100}{x }}
-% \section{\dorecurse{100}{x }}
-% \input tufte \par
-% \setupheads[alternative=inmargin]
-% \subject{\dorecurse{100}{x }}
-% \section{\dorecurse{100}{x }}
-% \input tufte \par
-% \stopnarrower
-
-\let\numberheadalternative\v!normal
-
-\def\defineheadplacement
- {\dodoubleargument\dodefineheadplacement}
-
-\def\dodefineheadplacement[#1][#2]% #3#4
- {\setvalue{\??ko:#1}{#2}%
- \setvalue{\??ko::#1}}
-
-\def\normalplacehead
- {\executeifdefined
- {\??ko::\numberheadalternative}
- {\getvalue{\??ko::\v!normal}}}
-
-\defineheadplacement[\v!paragraph][\v!vertical]#1#2%
- {\vbox
- {\localheadsetup
- \begstrut\ifheadnumbercontent#1\hskip\numberheaddistance\fi#2}}
-
-% \defineheadplacement[\v!normal][\v!vertical]#1#2%
-% {\ifheadnumbercontent
-% \setbox0\hbox{{#1}\hskip\numberheaddistance}%
-% \vbox
-% {\localheadsetup
-% \hangindent 1\wd0
-% \hangafter 1
-% \noindent
-% \unhbox0 % don't use \strut's here!
-% #2}%
-% \else
-% \vbox
-% {\localheadsetup\noindent#2}%
-% \fi}
-%
-% enhanced version:
-
-% \setuphead
-% [chapter]
-% [numberwidth=2cm,hang=line,after={\blank[3*line]}]
-%
-% \chapter{Oeps oeps oeps} \input tufte \section{Oeps}
-% \chapter{Oeps oeps oeps} \section{Oeps} \input tufte
-
-\defineheadplacement[\v!normal][\v!vertical]#1#2%
- {\vbox
- {\localheadsetup
- \edef\headwidth {\headparameter\c!width }%
- \edef\headnumberwidth{\headparameter\c!numberwidth}%
- \edef\headtextwidth {\headparameter\c!textwidth }%
- \ifheadnumbercontent
- \ifx\headwidth\empty
- \else
- \ifx\headnumberwidth\empty
- \ifx\headtextwidth\empty\else
- \edef\headnumberwidth{\the\dimexpr\headwidth-\headtextwidth\relax}%
- \fi
- \else
- \ifx\headtextwidth\empty
- \edef\headtextwidth{\the\dimexpr\headwidth-\headnumberwidth\relax}%
- \fi
- \fi
- \hsize\headwidth
- \fi
- \ifx\headnumberwidth\empty\else
- \let\numberheaddistance\!!zeropoint
- \fi
- \setbox\scratchbox\hbox \ifx\headnumberwidth\empty\else to \headnumberwidth\fi{{#1}}%
- \scratchdimen\dimexpr\wd\scratchbox+\numberheaddistance\relax
- \ifx\headtextwidth\empty\else
- \hsize\dimexpr\scratchdimen+\headparameter\c!textwidth\relax
- \fi
- \hangindent\scratchdimen
- \hangafter \plusone
- \noindent
- \box\scratchbox\hskip\numberheaddistance
- \else
- \ifx\headtextwidth\empty
- \ifx\headwidth\empty
- \else
- \hsize\headwidth
- \fi
- \else
- \hsize\headtextwidth
- \fi
- \noindent
- \fi
- #2}}
-
-\def\placeheadmargin#1#2%
- {\vbox
- {\localheadsetup
- \begstrut % use one \strut here!
- \dontleavehmode % in case there is no strut, else side effects with llap
- \ifheadnumbercontent
- \llap{\hbox to 5em{\hfill{#1}\hskip\localheadskip\hskip\leftmargindistance}}% introduces whitespace
- % maybe better:
- % \inleftmargin{\hbox{\hss{#1}\hskip\localheadskip}}%
- \fi
- {#2}}}
-
-\defineheadplacement[\v!inmargin][\v!vertical]#1#2{\placeheadmargin{#1}{#2}}
-\defineheadplacement[\v!margin] [\v!vertical]#1#2{\placeheadmargin{#1}{#2}}
-
-\defineheadplacement[\v!middle][\v!vertical]#1#2%
- {\vbox
- {\localheadsetup
- \veryraggedcenter
- \let\\\endgraf
- \let\crlf\endgraf
- \ifheadnumbercontent\strut#1\par\fi\begstrut#2}}
-
-\defineheadplacement[\v!text][\v!horizontal]#1#2%
- {\bgroup
- \localheadsetup % no stretch in distance
- \ifheadnumbercontent{#1}\kern\numberheaddistance\fi{\begstrut#2}%
- \egroup}
-
-\def\placeheadlohi#1#2#3%
- {\ifheadnumbercontent
- \setbox0\hbox{#2}
- \setbox2=#1{\localheadsetup\advance\hsize-\wd0\relax#3}%
- \hbox{\box0\hskip\numberheaddistance\box2}%
- \else
- #1{\localheadsetup\noindent#3}%
- \fi}
-
-% onder/boven lijnt het nummer op de onderste/bovenste regel
-% uit van een meerregelige kop
-
-\defineheadplacement[\v!bottom][\v!vertical]#1#2{\placeheadlohi\vbox{#1}{#2}}
-\defineheadplacement[\v!top] [\v!vertical]#1#2{\placeheadlohi\vtop{#1}{#2}}
-
-% default == instellingen
-% koppeling == koppen, breaks, marks, enz.
-% sectie == nummering
-
-\let\@@kolist=\empty
-
-\def\dododefinehead#1#2% % don't preset prefix to much
- {\presetlabeltext[#1=]%
- \getparameters
- [\??ko#1]
- [\c!numberstyle=\getvalue{\??ko#1\c!style},
- \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]
- [\c!section=\getvalue{\??ko\getvalue{\??ko#1\c!coupling}\c!section},
- \c!default=,
- \c!coupling=,
- \c!prefix=,
- \c!before=,
- \c!after=,
- \c!distance=\!!zeropoint,
- \c!page=,
- \c!header=,
- \c!text=,
- \c!footer=,
- \c!style=,
- \c!numbercommand=,
- \c!textcommand=,
- \c!ownnumber=\v!no,
- \c!number=\v!yes,
- \c!color=,
- \c!continue=\v!yes,
- \c!placehead=\v!yes,
- \c!resetnumber=\v!yes,
- \c!incrementnumber=\v!yes,
- \c!alternative=\@@koalternative,
- \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=,
- \c!grid=,
- \c!margintext=,
- \c!margin=\@@komargin,
- #2]%
- \ConvertToConstant\doifnot{#1}{\getvalue{\??ko#1\c!default}}
- {\doifsomething{\getvalue{\??ko#1\c!default}}
- {\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!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!strut,
- \c!numbercommand,\c!textcommand,\c!margintext,\c!margin]}}%
- \getparameters[\??ko#1][#2]%
- \doifsomething{\getvalue{\??ko#1\c!section}}
- {\doifelsemarking{#1}% \doifundefined{\??mk#1}
- {}% marking #1 already defined
- {\definemarking[#1]%
- \couplemarking[#1][\getvalue{\??ko#1\c!section}]%
- \definemarking[#1\v!number]%
- \couplemarking[#1\v!number][\getvalue{\??ko#1\c!section}]}}%
- \doifundefined{\??li#1}{\definelist[#1]}}
- {\ConvertToConstant\doifelse{#1}{#2}
- {\doifundefined{\??li#1}{\definelist[#1]}}
- {\copyparameters
- [\??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!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!strut,
- \c!numbercommand,\c!textcommand,\c!margintext,\c!margin]%
- \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]}}}%
- \addtocommalist{#1}\@@kolist
- \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\doconstructhead[#1]}}
-
-\def\dodefinehead[#1][#2]%
- {\doifelsenothing{#2}
- {% todo: message that it's an invalid definition
- \setvalue{#1}{\endgraf[#1]\kern.5em}}
- {\doifassignmentelse{#2}
- {\dododefinehead{#1}{#2}}
- {\doifdefined{\??ko#2\c!section}
- {\dododefinehead{#1}{#2}}}}}
-
-\def\definehead
- {\dodoubleemptywithset\dodefinehead}
-
-\def\doconstructhead[#1][#2]%
- {\dowithpargument{\dodoconstructhead{#1}[#2]}}
-
-\def\dosetuphead[#1][#2]%
- {\getparameters[\??ko#1][#2]%
- % The next check prevents hard to trace problems. I once
- % set \c!command to nothing and (quite natural) got the
- % wrong references etc. The whole bunch should be boxed!
- \expandafter\defconvertedcommand\expandafter\ascii\csname\??ko#1\c!command\endcsname
- \doifnothing\ascii{\setvalue{\??ko#1\c!command}{\normalplacehead}}}
-
-\def\setuphead
- {\dodoubleargumentwithset\dosetuphead}
-
-\def\dosetupheads[#1]%
- {\getparameters[\??ko][#1]%
- \doifelse{\@@kosectionnumber}\v!yes\sectionnumbertrue\sectionnumberfalse}
-
-\def\setupheads
- {\dosingleargument\dosetupheads}
-
-\def\systemsuppliedchapter {\getvalue{\v!chapter}}
-\def\systemsuppliedtitle {\getvalue{\v!title}}
-
-% a left over
-
-\def\complexbijlage[#1]#2%
- {\page[\v!right]
- \setuppagenumbering[\c!state=\v!stop]
- \systemsuppliedchapter[#1]{#2}
- \page[\v!right]
- \setuppagenumbering[\c!state=\v!start]
- \setuppagenumbering[\c!number=1]}
-
-\setvalue{\v!appendix}%
- {\complexorsimpleempty\bijlage}
-
-\setupheads
- [\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,
- \c!command=]
-
-\definesectionblock [\v!frontpart] [\v!frontmatter] [\c!number=\v!no]
-\definesectionblock [\v!bodypart] [\v!bodymatter] [\c!number=\v!yes]
-\definesectionblock [\v!appendix] [\v!appendices] [\c!number=\v!yes]
-\definesectionblock [\v!backpart] [\v!backmatter] [\c!number=\v!no]
-
-\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=\s!section-1,
- \c!ownnumber=\v!no]
-
-\definehead
- [\v!chapter]
- [\c!section=\s!section-2,
- \c!ownnumber=\v!no]
-
-\definehead
- [\v!section]
- [\c!section=\s!section-3,
- \c!ownnumber=\v!no]
-
-\definehead
- [\v!subsection]
- [\c!section=\s!section-4,
- \c!default=\v!section,
- \c!ownnumber=\v!no]
-
-\definehead
- [\v!subsubsection]
- [\c!section=\s!section-5,
- \c!default=\v!subsection,
- \c!ownnumber=\v!no]
-
-\definehead
- [\v!subsubsubsection]
- [\c!section=\s!section-6,
- \c!default=\v!subsubsection,
- \c!ownnumber=\v!no]
-
-\definehead
- [\v!subsubsubsubsection]
- [\c!section=\s!section-7,
- \c!default=\v!subsubsubsection,
- \c!ownnumber=\v!no]
-
-\definehead
- [\v!title]
- [\c!coupling=\v!chapter,
- \c!default=\v!chapter,
- \c!incrementnumber=\v!no]
-
-\definehead
- [\v!subject]
- [\c!coupling=\v!section,
- \c!default=\v!section,
- \c!incrementnumber=\v!no]
-
-\definehead
- [\v!subsubject]
- [\c!coupling=\v!subsection,
- \c!default=\v!subsection,
- \c!incrementnumber=\v!no]
-
-\definehead
- [\v!subsubsubject]
- [\c!coupling=\v!subsubsection,
- \c!default=\v!subsubsection,
- \c!incrementnumber=\v!no]
-
-\definehead
- [\v!subsubsubsubject]
- [\c!coupling=\v!subsubsubsection,
- \c!default=\v!subsubsubsection,
- \c!incrementnumber=\v!no]
-
-\definehead
- [\v!subsubsubsubsubject]
- [\c!coupling=\v!subsubsubsubsection,
- \c!default=\v!subsubsubsubsection,
- \c!incrementnumber=\v!no]
-
-\setupsection
- [\s!section-2]
- [\v!appendix\c!conversion=\v!Character,
- \c!previousnumber=\v!no]
-
-\setuphead
- [\v!part]
- [\c!placehead=\v!no]
-
-\setuphead
- [\v!chapter]
- [\v!appendix\c!label=\v!appendix,
- \v!bodypart\c!label=\v!chapter] % bijlageconversie=\Character
-
-\setuphead
- [\v!section]
- [\v!appendix\c!label=\v!section,
- \v!bodypart\c!label=\v!section] % bijlageconversie=\Character
-
-\setuphead
- [\v!subsection]
- [\v!appendix\c!label=\v!subsection,
- \v!bodypart\c!label=\v!subsection] % bijlageconversie=\Character
-
-\setuphead
- [\v!subsubsection]
- [\v!appendix\c!label=\v!subsubsection,
- \v!bodypart\c!label=\v!subsubsection] % bijlageconversie=\Character
-
-\setuphead
- [\v!part,\v!chapter]
- [%\c!align=,
- %\c!indentnext=\v!no,
- \c!continue=\v!no,
- \c!page=\v!right,
- \c!header=,
- \c!style=\tfc,
- \c!distance=.75em,
- \c!before={\blank[2*\v!big]},
- \c!after={\blank[2*\v!big]}]
-
-\setuphead
- [\v!section]
- [%\c!align=,
- %\c!indentnext=\v!no,
- \c!style=\tfa,
- \c!distance=.75em,
- \c!before={\blank[2*\v!big]},
- \c!after=\blank]
-
-\setuphead % nieuw
- [\v!subsection]
- [\c!page=]
-
-\definecombinedlist
- [\v!content]
- [\v!part,
- \v!chapter,
- \v!section,
- \v!subsection,
- \v!subsubsection,
- \v!subsubsubsection,
- \v!subsubsubsubsection]
- [\c!level=\v!subsubsubsubsection,
- \c!criterium=\v!local]
-
-\setuplist
- [\v!part]
- [\c!before={\blank\page[\v!preference]},
- \c!after=\blank,
- \c!label=\v!yes,
- \c!separator=:,
- \c!distance=1em]
-
-\setuplist
- [\v!chapter]
- [\c!before={\blank\page[\v!preference]},
- \c!after=]
-
-\setuplist [\v!part] [\c!width=0em]
-\setuplist [\v!chapter] [\c!width=2em]
-\setuplist [\v!section] [\c!width=3em]
-\setuplist [\v!subsection] [\c!width=4em]
-\setuplist [\v!subsubsection] [\c!width=5em]
-\setuplist [\v!subsubsubsection] [\c!width=6em]
-\setuplist [\v!subsubsubsubsection] [\c!width=7em]
-
-% hm
-
-\setuppagenumbering % na instellen hoofdteksten !
- [\c!alternative=\v!singlesided,
- \c!location={\v!header,\v!middle},
- \c!conversion=\v!numbers,
- \c!width=, % in geval van \v!marginedge
- \c!left=,
- \c!right=,
- \c!way=\v!by\v!part,
- \c!text=,
- \v!chapter\v!number=\v!no, % v
- \v!part\v!number=\v!yes, % v
- \c!numberseparator=--,
- \c!textseparator=\tfskip,
- \c!state=\v!start,
- \c!command=,
- \c!strut=\v!yes, % nieuw
- \c!style=, % \v!normal, % empty, otherwise conflict
- \c!color=]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-swd.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-swd.mkii
deleted file mode 100644
index 1525ab597a1..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/strc-swd.mkii
+++ /dev/null
@@ -1,127 +0,0 @@
-%D \module
-%D [ file=strc-swd,
-%D version=2007.08.14,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Section Worlds,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This is a prelude to a rewrite of sectioning.
-
-% options : before after setups page text number label bookmark
-% dodo : listtext
-%
-% \startsectionworld[chapter][text={Test}]
-% \stopsectionworld
-
-\writestatus{loading}{ConTeXt Structure Macros / Sectionworlds}
-
-\unprotect
-
-\ifx\pushvalue\undefined
-
- \def\pushvalue#1{\expandafter\pushmacro\csname#1\endcsname}
- \def\popvalue #1{\expandafter\popmacro \csname#1\endcsname}
-
-\fi
-
-% brrr
-
-\def\csnameexpanded#1#2%
- {\@EA\@EA\@EA\@EA\@EA\@EA\@EA#1\@EA\@EA\@EA\@EA\@EA\@EA\@EA#2\@EA\@EA\@EA\@EA\@EA\@EA\@EA}
-
-\def\csnameexpandedoneargument#1#2%
- {\csnameexpanded\def\csexpandeda{#2}%
- \@EA#1\@EA{\csexpandeda}}
-
-\def\csnameexpandedtwoarguments#1#2#3%
- {\csnameexpanded\def\csexpandeda{#2}%
- \csnameexpanded\def\csexpandedb{#3}%
- \@EA\@EA\@EA#1\@EA\@EA\@EA{\@EA\csexpandeda\@EA}\@EA{\csexpandedb}}
-
-\def\csnameexpandedthreearguments#1#2#3#4%
- {\csnameexpanded\def\csexpandeda{#2}%
- \csnameexpanded\def\csexpandedb{#3}%
- \csnameexpanded\def\csexpandedc{#4}%
- \@EA\@EA\@EA\@EA\@EA\@EA\@EA#1\@EA\@EA\@EA\@EA\@EA\@EA\@EA{\@EA\@EA\@EA\csexpandeda\@EA\@EA\@EA}\@EA\@EA\@EA{\@EA\csexpandedb\@EA}\@EA{\csexpandedc}}
-
-% \def\xx{XX}\setvalue{xx:yy}{abc \xx def}\def\param#1{\csname xx:#1\endcsname}
-% \def\testa #1{\defconvertedargument\ascii{#1}{\tttf\ascii}}
-% \def\testb #1#2{\defconvertedargument\ascii{#1 #2}{\tttf\ascii}}
-% \def\testc#1#2#3{\defconvertedargument\ascii{#1 #2 #3}{\tttf\ascii}}
-% \noindent 1 \csnameexpandedoneargument \testa{\param{yy}}
-% \noindent 2 \csnameexpandedtwoarguments \testb{\param{yy}}{\param{yy}}
-% \noindent 3 \csnameexpandedthreearguments\testc{\param{yy}}{\param{yy}}{\param{yy}}
-
-% rewrite the sectioning to use the variables, a bit tricky because then
-% we need a special expansion trick
-
-\def\sectionworldparameter #1{\csname\??sw\currentsectionworldname#1\endcsname}
-\def\pushsectionworldparameter#1{\expandafter\pushmacro\csname\??sw\currentsectionworldname#1\endcsname}
-\def\popsectionworldparameter #1{\expandafter\popmacro \csname\??sw\currentsectionworldname#1\endcsname}
-
-\def\setupsectionworld
- {\dodoubleargument\dosetupsectionworld}
-
-\def\dosetupsectionworld[#1][#2]%
- {\getparameters[\??sw#1][#2]} % maybe some extra things
-
-\def\dochecksectionworld#1%
- {\ifcsname\??sw\currentsectionworldname\endcsname\else
- \getparameters
- [\??sw\currentsectionworldname]
- [\c!before=,
- \c!after=,
- \c!setups=,
- \c!page=]%
- \fi}
-
-\def\startsectionworld
- {\dodoubleargument\dostartsectionworld}
-
-\def\dostartsectionworld[#1][#2]%
- {\pushmacro\currentsectionworldname
- \def\currentsectionworldname{#1}%
- \dochecksectionworld\currentsectionworldname
- \pushsectionworldparameter\c!before
- \pushsectionworldparameter\c!after
- \pushsectionworldparameter\c!setups
- \getparameters
- [\??sw\currentsectionworldname]
- [\c!text=,\c!number=\finalsectionnumber,\c!label=,\c!bookmark=,#2]%
- \doifsomething{\sectionworldparameter\c!page}
- {\setsectieenkoppeling\currentsectionworldname
- %\handlepagebreak\currentsectionworldname
- \checknexthead\handlepagebreak\currentsectionworldname}%
- \sectionworldparameter\c!before
- \begingroup
- \doifsomething{\sectionworldparameter\c!page}
- {\settrue\ignorehandlepagebreak}%
- \doifsomething{\sectionworldparameter\c!setups}
- {\setups[\sectionworldparameter\c!setups]}%
- \csnameexpandedthreearguments \doconstructheadwithvars
- {\sectionworldparameter\c!label }%
- {\sectionworldparameter\c!number}%
- {\sectionworldparameter\c!text }%
- \doifsomething{\sectionworldparameter\c!bookmark}
- {\expanded{\bookmark[\sectionworldparameter\c!bookmark]}}%
- \ignorespaces} % for inline heads
-
-\def\doconstructheadwithvars#1%#2#3%
- {\dodododoconstructhead\currentsectionworldname[#1]}% {#2}{#3}}
-
-\def\stopsectionworld
- {\endgraf
- \endgroup
- \sectionworldparameter\c!after
- \popsectionworldparameter\c!setups
- \popsectionworldparameter\c!after
- \popsectionworldparameter\c!before
- \popmacro\currentsectionworldname}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/strc-syn.mkii b/Master/texmf-dist/tex/context/base/mkii/strc-syn.mkii
deleted file mode 100644
index 2ba5c94679e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/strc-syn.mkii
+++ /dev/null
@@ -1,438 +0,0 @@
-%D \module
-%D [ file=strc-syn,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Synonyms and Sorts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Structure Macros / Synonyms and Sorts}
-
-\unprotect
-
-% \checkdefined kan hierheen
-
-% Formaat tex-utility-input-file <jobname.tui>:
-%
-% synonym entry {tag} {pure} {text} {synonym}
-%
-% Deze file wordt met het programma TeXUtil omgezet in een
-% in te lezen TeXFile met de commando's:
-%
-% \synonymentry {tag} {pure} {text} {synonym}
-
-\newif\ifsynonymmeaning
-
-% todo: \def\synonymparameter#1{\csname\??sm\currentsynonym#1\endcsname}
-
-\def\dosetupsynonyms[#1][#2]%
- {\getparameters[\??sm#1][#2]}
-
-\def\setupsynonyms
- {\dodoubleargument\dosetupsynonyms}
-
-\def\doresetsynonym#1%
- {\letvalue{#1\s!entry}\gobblethreearguments}
-
-\def\dohandlesynonymentry#1#2#3#4%
- {\bgroup
- \global\utilitydonetrue
- \syndef
- {\doattributes{\??sm#1}\c!textstyle\c!textcolor{#3}}
- \ConvertToConstant\doifelse{#4}{}{\unknown}{#4}\par
- \egroup}
-
-\def\synonymentry#1%
- {\executeifdefined{#1\s!entry}\gobblethreearguments}
-
-\def\dosetsynonym#1%
- {\doifdefinedelse{\??sm#1\c!command}
- {\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
- \def\currentsynonym{#1}%
- \definedescription % nog eens een class van maken, net als framed
- [syndef]
- [\c!location=\synonymparameter\c!location,
- \c!width=\synonymparameter\c!width,
- \c!distance=\synonymparameter\c!distance,
- \c!sample=\synonymparameter\c!sample,
- \c!hang=\synonymparameter\c!hang,
- \c!align=\synonymparameter\c!align,
- \c!before=\synonymparameter\c!before,
- \c!inbetween=\synonymparameter\c!inbetween,
- \c!after=\synonymparameter\c!after,
- \c!indentnext=\synonymparameter\c!indentnext,
- \c!headstyle=\synonymparameter\c!headstyle,
- \c!headcolor=\synonymparameter\c!headcolor,
- \c!style=,
- \c!color=]%
- \setupwhitespace[\v!none]%
- %doutilities{#1}\jobname{#2}\relax\par % no longer \par
- \doutilities{#1}\jobname{#1}\relax\relax
- \endgroup
- \ifutilitydone\else\nowhitespace\fi}
-
-\def\docompletelistofsynonyms#1#2% expansion needed to avoid v! (due to french active !)
- {\expanded{\systemsuppliedchapter[#1]{\noexpand\headtext{#2}}}%
- \doplacelistofsynonyms{#1}{#2}%
- \page[\v!yes]}
-
-\def\processsynonym#1#2#3%
- {\begingroup % anders in mathmode lege \hbox, zie eenheden
- \ifsynonymmeaning
- \synonymmeaningfalse
- \doattributes{\??sm#1}\c!synonymstyle\c!synonymcolor{#3}%
- \else
- \dontleavehmode
- \doattributes{\??sm#1}\c!textstyle\c!textcolor{#2}%
- \fi
- \endgroup}
-
-\def\getsynonymmeaning#1#2#3%
- {\bgroup
- \doifundefined{#2#3}
- {\setgvalue{#2#3}{{\tt[#3]}}%
- \showmessage\m!systems{18}{#1,#3}}%
- \synonymmeaningtrue
- \getvalue{#2#3}%
- \egroup}
-
-\def\dowritesynonym#1#2#3#4%
- {\begingroup % anders in mathmode lege \hbox
- \defconvertexpanded\asciisynonym{\getvalue{\??sm#1\c!expansion}}{#3}%
- \defconvertexpanded\asciimeaning{\getvalue{\??sm#1\c!expansion}}{#4}%
- \immediatewriteutility{s e {#1} {#2} {\asciisynonym} {\asciimeaning}}%
- \endgroup}
-
-\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}{\reprocesssynonym{#1}{#3}{#4}}%
- \fi}
-
-\def\executesynonym#1#2#3#4%
- {\preexecutesynonym{#1}{#2}{#3}{#4}%
- \processsynonym{#1}{#3}{#4}%
- \getvalue{\??sm#1\c!next}} % not formally documented
-
-\def\expandsynonym#1#2#3#4%
- {{\synonymmeaningtrue
- \processsynonym{#1}{#3}{#4}}}
-
-\def\dodoloadsynonym#1#2#3#4%
- {\setgvalue{#2}{\executesynonym{#1}{#2}{#3}{#4}}}
-
-\def\doloadsynonym#1%
- {\setvalue{#1\s!entry}##1##2##3%
- {\doifelsenothing{##1}
- {\dodoloadsynonym{#1}{##2}{##2}{##3}}
- {\dodoloadsynonym{#1}{##1}{##2}{##3}}%
- \global\utilitydonetrue}}
-
-\def\doloadsynonyms#1#2%
- {\bgroup
- \let\dosetsynonym\doloadsynonym
- \showmessage\m!systems{19}{#2}%
- \doutilities{#1}\jobname{#1}\relax\relax
- \egroup
- \setvalue{\s!check#1}##1{}}
-
-\def\dodocomplexsynonym[#1][#2]#3#4%
- {\doifsomething{#2}
- {\getvalue{\s!check#1}{#2}%
- \doglobal\appendtoks\setvalue{#2}{#2}\to\simplifiedcommands
- \doifelsevalue{\??sm#1\c!conversion}\v!yes
- {\unexpanded\setgvalue{#2}{\expandsynonym{#1}{#2}{#3}{#4}}}
- {\doifelsevalue{\??sm#1\c!state}\v!start
- {\doifelsevalue{\??sm#1\c!criterium}\v!all
- {\preexecutesynonym{#1}{#2}{#3}{#4}}
- {\unexpanded\setgvalue{#2}{\executesynonym{#1}{#2}{#3}{#4}}}}
- {\unexpanded\setgvalue{#2}{\processsynonym{#1}{#3}{#4}}}}}}
-
-\def\docomplexsynonym[#1][#2][#3]#4#5%
- {\ifthirdargument
- \dodocomplexsynonym[#2][#1#3]{#4}{#5}%
- \else
- \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}}%
- \ifthirdargument
- \unexpanded\def#3##1{\getvalue{\??sm:#1:##1}}%
- \fi
- \setvalue{#1}{\dotripleempty\docomplexsynonym[\??sm:#1:][#1]}%
- \else
- \ifthirdargument
- \unexpanded\def#3##1{\getsynonymmeaning{#1}{}{##1}}%
- \fi
- \setvalue{#1}{\dotripleempty\docomplexsynonym[][#1]}%
- \fi
- \dosetupsynonyms
- [#1]%
- [\c!synonymstyle=,\c!textstyle=,
- \c!headstyle=,\c!headcolor=,
- \c!state=\v!start,\c!criterium=,
- \c!location=\v!left,\c!width=5em,\c!distance=0pt,
- \c!sample=,\c!hang=,\c!align=,
- \c!before=,\c!inbetween=,\c!after=,
- \c!indentnext=\v!no,
- \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
- \setvalue{\s!set #1}{\dosetsynonym{#1}}%
- \setvalue{\s!reset #1}{\doresetsynonym{#1}}%
- \setvalue{\s!check #1}##1{\checkdefined{synonym}{#1}{##1}}%
- \setvalue{\e!load #2}{\doloadsynonyms{#1}{#2}}%
- \setvalue{\e!place\e!listof #2}{\doplacelistofsynonyms{#1}{#2}}%
- \setvalue{\e!complete\e!listof#2}{\docompletelistofsynonyms{#1}{#2}}}
-
-\def\definesynonyms
- {\doquadrupleempty\dodefinesynonyms}
-
-% Formaat tex-utility-input-file <jobname.tui>:
-%
-% synonym entry {tag} {pure} {text} {}
-%
-% Deze file wordt met het programma TeXUtil omgezet in een
-% in te lezen TeXFile met de commando's:
-%
-% \synonymentry {tag} {pure} {text} {}
-
-\def\dosetupsorting[#1][#2]%
- {\getparameters[\??so#1][#2]}
-
-\def\setupsorting
- {\dodoubleargument\dosetupsorting}
-
-\def\doresetsort#1%
- {\letvalue{#1\s!entry}\gobblethreearguments}
-
-\def\dosetsort#1%
- {\setvalue{#1\s!entry}##1##2##3%
- {\let\dowritesort\gobblethreearguments
- \global\utilitydonetrue
- \bgroup
- \doifdefinedelse{\??so#1\c!command}
- {\getvalue{\??so#1\c!command}{##2}} % 1 argument
- {\getvalue{\??so#1\c!before}%
- \doattributes{\??so#1}\c!style\c!color{##2}%
- \getvalue{\??so#1\c!after}}%
- \egroup}}
-
-\def\doplacelistofsorts#1% NOG EEN RUWE VERSIE MAKEN
- {\whitespace % ZONDER WITRUIMTE ETC ETC
- \begingroup
- \setupwhitespace[\v!none]%
- \doutilities{#1}\jobname{#1}\relax\relax
- \endgroup
- \ifutilitydone\else\nowhitespace\fi}
-
-% to be tested
-%
-% \def\doplacelistofsorts#1% NOG EEN RUWE VERSIE MAKEN
-% {\startpacked
-% %doutilities{#1}\jobname{#1}\relax\par
-% \doutilities{#1}\jobname{#1}\relax\relax
-% \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%
- {\dontleavehmode
- \begingroup % was \bgroup
- \doattributes{\??so#1}\c!style\c!color{#2}%
- \endgroup} % was \egroup
-
-\def\dowritesort#1#2#3%
- {\bgroup
- \defconvertexpanded\asciisynonym{\getvalue{\??so#1\c!expansion}}{#3}%
- \immediatewriteutility{s e {#1} {#2} {\asciisynonym} {}}%
- \egroup}
-
-\def\synonymentry#1%
- {\executeifdefined{#1\s!entry}\gobblethreearguments}
-
-\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}{\reprocesssort{#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
- \getvalue{\??so#1\c!next}} % not formally documented
-
-\def\doloadsort#1%
- {\setvalue{#1\s!entry}##1##2##3%
- {\setgvalue{##1}{##2}%
- \global\utilitydonetrue}}
-
-\def\doloadsort#1#2%
- {\bgroup
- \let\dosetsort\doloadsort
- \showmessage\m!systems{20}{#2}%
- \doutilities{#1}\jobname{#1}\relax\relax
- \egroup
- \setvalue{\s!check#1}##1{}}
-
-\def\dodocomplexsort[#1][#2]#3%
- {\doifsomething{#2}
- {\getvalue{\s!check#1}{#2}%
- \doglobal\appendtoks\setvalue{#2}{#2}\to\simplifiedcommands
- \doifelsevalue{\??so#1\c!state}\v!start
- {\doifelsevalue{\??so#1\c!criterium}\v!all
- {\preexecutesort{#1}{#2}{#3}}
- {\unexpanded\setgvalue{#2}{\executesort{#1}{#2}{#3}}}}
- {\unexpanded\setgvalue{#2}{\processsort{#1}{#3}{#2}}}}}
-
-\def\docomplexsort[#1][#2][#3]#4%
- {\ifthirdargument
- \dodocomplexsort[#2][#1#3]{#4}%
- \else
- \dowritesort{#2}{#4}{#4}%
- \fi}
-
-% 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 !
- \c!state=\v!start,
- \c!criterium=,
- \c!style=,
- \c!before=,
- \c!after=\endgraf,
- \c!expansion=,
- \s!language=\currentmainlanguage]%
- \doglobal\appendtoksonce
- \doregistersortinglanguage{#1}%
- \to \everysavesortkeys
- \ifthirdargument
- \ConvertConstantAfter\doifnot{#3}\v!none
- {\ifx#3\relax \else
- \def#3##1{\getvalue{\??so:#1:##1}}
- \fi}%
- \setvalue{#1}{\dotripleempty\docomplexsort[\??so:#1:][#1]}%
- \else
- \setvalue{#1}{\dotripleempty\docomplexsort[][#1]}%
- \fi
- \addutilityreset{#1}%
- \presetheadtext[#2=\Word{#2}]% after \ifthirdargument -)
- \setvalue{\e!setup#2\e!endsetup}[##1]{\getparameters[\??so#1][##1]}% to be obsolete
- \setvalue{\s!set#1}{\dosetsort{#1}}%
- \setvalue{\s!reset#1}{\doresetsort{#1}}%
- \setvalue{\e!load#2}{\doloadsort{#1}{#2}}%
- \setvalue{\s!check#1}##1{\checkdefined{sort}{#1}{##1}}%
- \setvalue{\e!place\e!listof#2}{\doplacelistofsorts{#1}}%
- \setvalue{\e!complete\e!listof#2}{\docompletelistofsorts{#1}{#2}}}
-
-\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}\relax\relax}
-
-\newcounter\nofsortedalphalists
-
-\def\sortalphacommacommand#1%
- {\begingroup
- \doglobal\increment\nofsortedalphalists
- \edef\currentsortedalphalist{alpha:\nofsortedalphalists}%
- \definesorting[\currentsortedalphalist][\currentsortedalphalist]%
- \processcommacommand[#1]{\getvalue\currentsortedalphalist}%
- \global\let\sortedcommalist\empty
- \def\makesortedlist##1{\doglobal\appendtocommalist{##1}\sortedcommalist}%
- \setupsorting[\currentsortedalphalist][\c!criterium=\v!all,\c!command=\makesortedlist]%
- \processlistofsorts[\currentsortedalphalist]%
- \endgroup
- \dodoglobal\let#1\sortedcommalist}
-
-% \starttext
-% \def\whatever{a,b,q,d,r,f} \sortalphacommacommand\whatever \whatever \endgraf
-% \def\whatever{ax,bx,qx,dx,rx,fx} \sortalphacommacommand\whatever \whatever \endgraf
-% \stoptext
-
-%D Presets.
-
-\definesynonyms
- [\v!abbreviation]
- [\v!abbreviations]
- [\infull]
-
-\setupsynonyms
- [\v!abbreviation]
- [\c!textstyle=\v!capital,
- \c!textcolor=,
- \c!synonymstyle=,
- \c!synonymcolor=,
- \c!headstyle=,
- \c!headcolor=,
- \c!location=\v!left,
- \c!width=5em,
- \c!state=\v!start]
-
-\definesorting
- [\v!logo]
- [\v!logos]
-% no [\logogram]
-
-\definesynonyms
- [\v!unit]
- [\v!units]
- [\unitmeaning]
-
-\setupsynonyms
- [\v!unit]
- [\c!textstyle=\dimension]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-ali.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-ali.mkii
deleted file mode 100644
index c4a1aadc526..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-ali.mkii
+++ /dev/null
@@ -1,173 +0,0 @@
-%D \module
-%D [ file=supp-ali,
-%D version=2000.04.17,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=Alignment,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Yet undocumented.
-
-% 0 = centered
-% 1 = left in before
-% 2 = right in before
-% 3 = left in after
-% 4 = right in after
-
-\unprotect
-
-% \starttabulate[|cg{.}|cg{,}|cg{,}|]
-% \NC period \NC comma \NC comma \NC\NR
-% \NG 100.000,00 \NG 100.000,00 \NG 100,00 \NC\NR
-% \NG 10.000,00 \NG 10.000,00 \NG 1000,00 \NC\NR
-% \NG 100,00 \NG 100,00 \NG 10,00 \NC\NR
-% \NG 100,00 \NG 100,00 \NG 10,00 \NC\NR
-% \NG 10\\ \NG 10\\ \NG 0,00 \NC\NR
-% \NG 10 \NG 10 \NG 0,00 \NC\NR
-% \NG 10 \NG 10 \NG 0,00 \NC\NR
-% \stoptabulate
-
-\chardef\characteralignmentmode=4
-\chardef\characteralignmentslot=1
-
-\newtoks\@@characteralignlst
-
-\let\afterassignwidth \!!zeropoint
-\let\beforeassignwidth\!!zeropoint
-
-\def\alignmentcharacter{.}
-
-\let\alignmentclass\s!default % can be used to handle multiple mixed ones
-
-\def\setfirstpasscharacteralign
- {\popcharacteralign
- \expanded{\dosetfirstpasscharacteralign{\alignmentcharacter}}}
-
-\def\dosetfirstpasscharacteralign#1%
- {\def\checkalignment##1%
- {\popcharacteralign
- \let\\\empty
- \setbox\scratchbox\hbox{#1}%
- \edef\characterassignwidth{\the\wd\scratchbox}%
- \setbox\scratchbox\null
- \docheckalignment##1#1\relax\relax
- \scratchdimen-\wd\scratchbox
- \setbox\scratchbox\hbox{\ignorespaces##1\unskip}%
- \advance\scratchdimen \wd\scratchbox
- \ifdim\scratchdimen>\beforeassignwidth\relax
- \edef\beforeassignwidth{\the\scratchdimen}%
- \fi
- \ifdim\scratchdimen=\zeropoint
- \setbox\scratchbox\hbox{\ignorespaces##1\unskip}%
- \scratchdimen\wd\scratchbox
- \ifcase\characteralignmentmode
- % do nothing
- \else\ifnum\characteralignmentmode<\plusthree
- \advance\scratchdimen \characterassignwidth
- \ifdim\scratchdimen>\beforeassignwidth\relax
- \edef\beforeassignwidth{\the\scratchdimen}%
- \fi
- \else
- \ifdim\scratchdimen>\afterassignwidth\relax
- \edef\afterassignwidth{\the\scratchdimen}%
- \fi
- \fi\fi
- \fi
- \pushcharacteralign}%
- \def\docheckalignment##1#1##2##3\relax
- {\ifx##2\relax
- \setbox\scratchbox\hbox{\ignorespaces##1\unskip}%
- \ifdim\wd\scratchbox>\afterassignwidth
- \edef\afterassignwidth{\the\wd\scratchbox}%
- \fi
- \else
- \docheckalignment##2##3\relax\relax
- \fi}}
-
-\def\setsecondpasscharacteralign
- {\popcharacteralign
- \expanded{\dosetsecondpasscharacteralign{\alignmentcharacter}}}
-
-\def\dosetsecondpasscharacteralign#1%
- {\def\checkalignment##1%
- {\popcharacteralign
- \let\\\empty % beware, no grouping
- \setbox\scratchbox\hbox{#1}%
- \edef\characterassignwidth{\the\wd\scratchbox}%
- \setbox\scratchbox\null
- % new 12,34 vs 10\\ where 10 aligns on 12 if #1 = ,
- \ifcase\characteralignmentslot
- \docheckalignment##1#1\relax\relax
- \scratchdimen\wd\scratchbox
- \setbox\scratchbox\hbox{\ignorespaces##1\unskip}%
- \else
- \def\\{#1}%
- \expanded{\docheckalignment##1#1\relax\relax}%
- \scratchdimen\wd\scratchbox
- \setbox\scratchbox\hbox{\def\\{\hphantom{#1}}\ignorespaces##1\unskip}%
- \fi
- \noindent
- \ifdim\scratchdimen=\wd\scratchbox
- \ifcase\characteralignmentmode
- \box\scratchbox
- \else
- \hbox
- {\dontcomplain
- \hbox to \beforeassignwidth
- {\ifcase\characteralignmentmode\or
- \box\scratchbox\hss
- \or
- \hss\box\scratchbox\hskip\characterassignwidth
- \or
- \hss\rlap{\box\scratchbox}%
- \or
- \hss\rlap{\hbox to \afterassignwidth{\hss\box\scratchbox}}%
- \fi}%
- \hskip\afterassignwidth}%
- \fi
- \else
- \hbox
- {\hbox to \beforeassignwidth
- {\hss\box\scratchbox\hskip-\scratchdimen}%
- \hskip\afterassignwidth}%
- \fi}%
- \def\docheckalignment##1#1##2##3\relax
- {\ifx##2\relax
- \setbox\scratchbox\hbox{\ignorespaces##1\unskip}%
- \else
- \docheckalignment##2##3\relax\relax
- \fi}}
-
-% provide a means to use multiple alignments mixed
-
-\def\pushcharacteralign
- {\ifundefined{@cac@\alignmentclass}%
- \doglobal\appendetoks\noexpand\do{\alignmentclass}\to\@@characteralignlst
- \fi
- \setxvalue{@cac@\alignmentclass}{\noexpand\do
- {\afterassignwidth}{\beforeassignwidth}{\alignmentcharacter}}}
-
-\def\popcharacteralign
- {\def\do##1##2##3%
- {\def\afterassignwidth {##1}%
- \def\beforeassignwidth {##2}%
- \def\alignmentcharacter{##3}}%
- \executeifdefined{@cac@\alignmentclass}\donothing}
-
-\def\resetcharacteralign % does not work well nested
- {\def\do##1{\global\letbeundefined{@cac@##1}}% global !
- \the\@@characteralignlst
- \global\@@characteralignlst\emptytoks}
-
-\long\def\startcharacteralign#1\stopcharacteralign
- {\bgroup
- \setfirstpasscharacteralign #1%
- \setsecondpasscharacteralign#1%
- \egroup}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-box.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-box.mkii
deleted file mode 100644
index 55641fd6336..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-box.mkii
+++ /dev/null
@@ -1,3126 +0,0 @@
-%D \module
-%D [ file=supp-box,
-%D version=1995.10.10,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=Boxes,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module implements some box manipulation macros. Some
-%D are quite simple, some are more advanced and when understood
-%D well, all can be of use.
-
-%D No longer generic, why bother.
-
-\writestatus{loading}{ConTeXt Support Macros / Boxes}
-
-\unprotect
-
-%D \macros
-%D {strutdp,strutht,strutwd}
-%D
-%D The next shortcuts save memory and keying. The width is
-%D normally zero points (if not, you're in trouble). These
-%D shortcuts can be used like a dimension, opposite to the
-%D core macros \type {\strutdepth} and alike, which are
-%D values.
-
-\def\strutdp{\dp\strutbox}
-\def\strutht{\ht\strutbox}
-\def\strutwd{\wd\strutbox}
-
-%D \macros
-%D {resetbox, emptybox}
-%D
-%D Let's start with an easy one. The next macro hides the
-%D ugly \type {@} in \type {\voidb@x}.
-
-\ifx\voidbox\undefined \newbox\voidbox \fi
-\ifx\voidb@x\undefined \let\voidb@x\voidbox \fi
-
-\def\emptybox {\box \voidbox}
-\def\unvoidbox {\unhbox\voidbox}
-\def\resetbox#1{\setbox#1\box\voidbox}
-
-%D \macros
-%D {nextdepth}
-%D
-%D Let's start with a rather simple declaration. Sometimes we
-%D need to save the \TEX\ \DIMENSION\ \type{\prevdepth} and
-%D append it later on. The name \type{\nextdepth} suits
-%D this purpose well.
-
-\newdimen\nextdepth
-
-%D \macros
-%D {smashbox, smashedbox}
-%D
-%D Smashing is introduced in \PLAIN\ \TEX, and stands for
-%D reducing the dimensions of a box to zero. The most resolute
-%D one is presented first.
-
-\def\smashbox#1%
- {\wd#1\zeropoint
- \ht#1\zeropoint
- \dp#1\zeropoint}
-
-\def\smashboxed#1%
- {\smashbox{#1}%
- \box#1\relax}
-
-%D \macros
-%D {hsmashbox,vsmashbox}
-%D
-%D Smashing can be used for overlaying boxes. Depending on
-%D the mode, horizontal or vertical, one can use:
-
-\def\hsmashbox#1%
- {\wd#1\zeropoint}
-
-\def\vsmashbox#1%
- {\ht#1\zeropoint
- \dp#1\zeropoint}
-
-%D The next implementation is less sensitive for spurious
-%D spaces.
-
-\newcount\registercount
-
-\def\smashbox
- {\afterassignment\dosmashbox\registercount}
-
-\def\dosmashbox
- {\wd\registercount\zeropoint
- \ht\registercount\zeropoint
- \dp\registercount\zeropoint}
-
-\def\smashedbox
- {\afterassignment\thesmashedbox\registercount}
-
-\def\thesmashedbox
- {\dosmashbox
- \box\registercount}
-
-\def\hsmashbox
- {\afterassignment\dohsmashbox\registercount}
-
-\def\dohsmashbox
- {\wd\registercount\zeropoint}
-
-\def\vsmashbox
- {\afterassignment\dovsmashbox\registercount}
-
-\def\dovsmashbox
- {\ht\registercount\zeropoint
- \dp\registercount\zeropoint}
-
-%D \macros
-%D {hsmash,vsmash,
-%D hsmashed,vsmashed}
-%D
-%D While the previous macros expected a \BOX, the next act on a
-%D content. They are some subtle differences betreen the smash
-%D and smashed alternatives. The later ones reduce all
-%D dimensions to zero.
-
-% Ok, but inefficient and/or catcode unsafe:
-%
-% \def\hsmash #1{\bgroup\setbox0=\normalhbox{#1}\hsmashbox0\box0\egroup}
-% \def\vsmash #1{\bgroup\setbox0=\normalvbox{#1}\vsmashbox0\box0\egroup}
-% \def\hsmashed#1{\bgroup\setbox0=\normalhbox{#1}\smashbox 0\box0\egroup}
-% \def\vsmashed#1{\bgroup\setbox0=\normalvbox{#1}\smashbox 0\box0\egroup}
-%
-% Better, but a waste of tokens:
-%
-% \def\hsmash {\bgroup\dowithnextbox{\hsmashbox\nextbox\flushnextbox\egroup}\normalhbox}
-% \def\vsmash {\bgroup\dowithnextbox{\vsmashbox\nextbox\flushnextbox\nextbox\egroup}\normalvbox}
-% \def\hsmashed{\bgroup\dowithnextbox{\smashbox \nextbox\flushnextbox\nextbox\egroup}\normalhbox}
-% \def\vsmashed{\bgroup\dowithnextbox{\smashbox \nextbox\flushnextbox\nextbox\egroup}\normalvbox}
-%
-% The best:
-
-\def\dosomesmash#1% (begin|end)group ipv (b|e)group ?
- {\bgroup\dowithnextbox{#1\nextbox\flushnextbox\egroup}}
-
-\def\hsmash {\dosomesmash\hsmashbox\normalhbox}
-\def\vsmash {\dosomesmash\vsmashbox\normalvbox}
-\def\hsmashed{\dosomesmash\smashbox \normalhbox}
-\def\vsmashed{\dosomesmash\smashbox \normalvbox}
-
-%D \macros
-%D {smashedhbox,smashedvbox}
-%D
-%D Also handy (all dimensions zeroed):
-%D
-%D \starttyping
-%D \smashedhbox to ... {...}
-%D \smashedvbox to ... {...}
-%D \stoptyping
-
-\def\dosmashedbox#1%
- %{#1\bgroup\dowithnextbox{\smashbox\nextbox\flushnextbox\egroup}#1}
- {#1\bgroup\dowithnextbox{\smashedbox\nextbox\egroup}#1}
-
-\def\smashedhbox{\dosmashedbox\hbox}
-\def\smashedvbox{\dosmashedbox\vbox}
-
-%D \macros
-%D {smash}
-%D
-%D This smash alternative takes an optional arg [whdtb] as
-%D well as is potentially catcode safer. It is needed by the
-%D math module (although the \type {\leavevmode} is not added
-%D here).
-
-\def\smash
- {\futurelet\nexttoken\dosmash}
-
-\def\dosmash
- {\ifx\nexttoken[\@EA\dodosmash\else\@EA\donosmash\fi}
-
-\def\donosmash
- {\dodosmash[hd]}
-
-\def\dodosmash[#1]%
- {\edef\@@smash{#1}\futurelet\nexttoken\dododosmash}
-
-\def\dododosmash % if needed we can avoid the \next
- {\ifmmode
- \def\next##1{\mathpalette\mathsm@sh{##1}}%
- \else\ifx\nexttoken\bgroup
- \let\next\finsm@sh
- \else
- \def\next##1{\finsm@sh{##1}}%
- \fi\fi
- \next}
-
-\def\mathsm@sh#1#2% redefined plain macro
- {\finsm@sh{$\mathsurround\zeropoint#1{#2}$}}
-
-\def\makesm@sh#1% redefined plain macro (handles t b h d w)
- {\if#1w\nextboxwd\zeropoint\else
- \if#1h\nextboxht\zeropoint\else
- \if#1d\nextboxdp\zeropoint\else
- \if#1t\nextboxht\zeropoint\else
- \if#1b\nextboxdp\zeropoint\fi\fi\fi\fi\fi}
-
-\def\finsm@sh % redefined plain macro
- {\dowithnextbox{\@EA\handletokens\@@smash\with\makesm@sh\flushnextbox}\normalhbox}
-
-%D \starttabulate[|l|l|]
-%D \NC w \NC \ruledhbox{\smash [w]{This is some great smashing, isn't it?}} \NC \NR
-%D \NC h \NC \ruledhbox{\smash [h]{This is some great smashing, isn't it?}} \NC \NR
-%D \NC d \NC \ruledhbox{\smash [d]{This is some great smashing, isn't it?}} \NC \NR
-%D \NC tb \NC \ruledhbox{\smash [tb]{This is some great smashing, isn't it?}} \NC \NR
-%D \NC whd \NC \ruledhbox{\smash[whd]{This is some great smashing, isn't it?}} \NC \NR
-%D \stoptabulate
-
-%D \macros
-%D {phantom, hphantom, vphantom, mathstrut}
-%D
-%D The next implementation of \type {\phantom} cum suis does
-%D not grab an argument in the non||math case, which is better.
-
-\unexpanded\def\phantom {\ph@nt\nextbox\nextbox\nextbox}
-\unexpanded\def\vphantom{\ph@nt\nextbox\nextbox\voidbox}
-\unexpanded\def\hphantom{\ph@nt\voidbox\voidbox\nextbox}
-
-%D Due to a complicated call to \type {\mathpallete} and
-%D thereby \type {\mathchoice}, the next macro looks ugly.
-%D We also take care of non||braced arguments.
-
-\def\ph@nt#1#2#3%
- {\def\doph@nt
- {\ifmmode
- \def\mathph@nt####1####2{\makeph@nt#1#2#3{$\mathsurround\zeropoint####1{####2}$}}%
- \def\nextph@nt{\mathpalette\mathph@nt}%
- \else\ifx\nextph@nt\bgroup
- \def\nextph@nt{\makeph@nt#1#2#3}%
- \else
- \def\nextph@nt####1{\makeph@nt#1#2#3{####1}}%
- \fi\fi
- \nextph@nt}%
- \futurelet\nextph@nt\doph@nt}
-
-\def\makeph@nt#1#2#3%
- {\begingroup
- \dowithnextbox
- {\setbox\scratchbox\null
- \ht\scratchbox\ht#1%
- \dp\scratchbox\dp#2%
- \wd\scratchbox\wd#3%
- \box\scratchbox
- \endgroup}
- \normalhbox}
-
-\let\finph@nt\undefined
-
-%D We also define plain's \type {\mathstrut}.
-
-\unexpanded\def\mathstrut{\vphantom{(}}
-
-%D \macros
-%D {getboxheight}
-%D
-%D Although often needed, \TEX\ does not support arithmics
-%D like:
-%D
-%D \starttyping
-%D \dimen0 = \ht0 + \dp0
-%D \stoptyping
-%D
-%D so we implemented:
-%D
-%D \starttyping
-%D \getboxheight ... \of \box...
-%D \stoptyping
-%D
-%D For instance,
-%D
-%D \starttyping
-%D \getboxheight \dimen0 \of \box0
-%D \getboxheight \someheight \of \box \tempbox
-%D \stoptyping
-%D
-%D The implementation is rather stupid:
-%D
-%D \starttyping
-%D \def\getboxheight#1\of#2\box#3%
-%D {#1\ht#3\advance#1\dp#3\relax}
-%D \stoptyping
-%D
-%D The next alternative is slightly more clever, since
-%D it accepts \type {{12}} as well as \type {12} as box
-%D number.
-
-\def\getboxheight#1\of#2\box#3%
- {\def\next{#1\dimexpr\ht\registercount+\dp\registercount\relax}%
- \afterassignment\next\registercount=#3}
-
-%D For a long time the following three macros were part of
-%D the grid snapping core module, but it makes more sense to
-%D have them here so that users can see them.
-%D
-%D \macros
-%D {getnoflines, getroundednoflines, getrawnoflines}
-%D
-%D Het commando \type{\getnoflines} converteert een hoogte
-%D (dimensie) in een aantal regels en kent dit toe aan
-%D \type{\noflines}.
-%D
-%D \starttyping
-%D \getnoflines{dimensie}
-%D \stoptyping
-%D
-%D Er wordt gedeeld door \type{\openlineheight} en een hoogte
-%D van~0pt komt overeen met 0~regels. The raw alternative
-%D does not round.
-
-%D For a long time we had:
-%D
-%D \starttyping
-%D \newcount\noflines
-%D \newdimen\noflinesheight
-%D
-%D \def\dogetnoflines#1#2%
-%D {\noflinesheight#2\relax
-%D \ifzeropt\noflinesheight % \ifdim\noflinesheight=\zeropoint
-%D \noflines\zerocount
-%D \else
-%D \divide\noflinesheight \openlineheight
-%D \noflines\noflinesheight
-%D #1\ifdim\noflines\openlineheight=#2\relax \else
-%D \advance\noflines\ifdim#2>\zeropoint\plusone\else\minusone\fi
-%D \fi\fi
-%D \fi}
-%D
-%D \def\getnoflines {\dogetnoflines\iftrue } % compensated
-%D \def\getrawnoflines{\dogetnoflines\iffalse} % no compensation
-%D \stoptyping
-%D
-%D A more recent variant is:
-
-\ifx\roundingeps\undefined \newdimen\roundingeps \roundingeps=10sp \fi
-
-\newcount\noflines
-\newdimen\noflinesheight
-
-% \def\getnoflines {\xdogetnoflines\plusone } % compensated
-% \def\getroundednoflines{\xdogetnoflines\plustwo } % rounded
-% \def\getrawnoflines {\xdogetnoflines\plusthree} % truncated
-%
-% \def\xdogetnoflines#1#2%
-% {\noflinesheight#2\relax
-% \ifzeropt\noflinesheight
-% \noflines\zerocount
-% \else\ifdim\noflinesheight>\zeropoint
-% \ifcase#1\or
-% \advance\noflinesheight-\roundingeps
-% \divide\noflinesheight\openlineheight
-% \noflines\noflinesheight
-% \advance\noflines\plusone
-% \or
-% \advance\noflinesheight\roundingeps
-% \divide\noflinesheight\openlineheight
-% \noflines\noflinesheight
-% \or
-% \advance\noflinesheight\roundingeps
-% \advance\noflinesheight.5\openlineheight
-% \divide\noflinesheight\openlineheight
-% \noflines\noflinesheight
-% \fi
-% \else
-% \ifcase#1\or
-% \advance\noflinesheight\roundingeps
-% \divide\noflinesheight\openlineheight
-% \noflines\noflinesheight
-% \advance\noflines\minusone
-% \or
-% \advance\noflinesheight-\roundingeps
-% \divide\noflinesheight\openlineheight
-% \noflines\noflinesheight
-% \or
-% \advance\noflinesheight-\roundingeps
-% \advance\noflinesheight-.5\openlineheight
-% \divide\noflinesheight\openlineheight
-% \noflines\noflinesheight
-% \fi
-% \fi\fi}
-
-\def\getnoflines#1%
- {\noflinesheight#1\relax
- \ifzeropt\noflinesheight
- \noflines\zerocount
- \else\ifdim\noflinesheight>\zeropoint
- \advance\noflinesheight-\roundingeps
- \divide\noflinesheight\openlineheight
- \noflines\noflinesheight
- \advance\noflines\plusone
- \else
- \advance\noflinesheight\roundingeps
- \divide\noflinesheight\openlineheight
- \noflines\noflinesheight
- \advance\noflines\minusone
- \fi\fi}
-
-\def\getroundednoflines#1%
- {\noflinesheight#1\relax
- \ifzeropt\noflinesheight
- \noflines\zerocount
- \else\ifdim\noflinesheight>\zeropoint
- \advance\noflinesheight\roundingeps
- \divide\noflinesheight\openlineheight
- \noflines\noflinesheight
- \else
- \advance\noflinesheight-\roundingeps
- \divide\noflinesheight\openlineheight
- \noflines\noflinesheight
- \fi\fi}
-
-\def\getrawnoflines#1%
- {\noflinesheight#1\relax
- \ifzeropt\noflinesheight
- \noflines\zerocount
- \else\ifdim\noflinesheight>\zeropoint
- \advance\noflinesheight\roundingeps
- \advance\noflinesheight.5\openlineheight
- \divide\noflinesheight\openlineheight
- \noflines\noflinesheight
- \else
- \advance\noflinesheight-\roundingeps
- \advance\noflinesheight-.5\openlineheight
- \divide\noflinesheight\openlineheight
- \noflines\noflinesheight
- \fi\fi}
-
-%D Let's proof that it works:
-%D
-%D \startbuffer
-%D \scratchdimen\dimexpr(3pt) \getnoflines\scratchdimen 1=\the\noflines \endgraf
-%D \scratchdimen\dimexpr(10\lineheight) \getnoflines\scratchdimen 10=\the\noflines \endgraf
-%D \scratchdimen\dimexpr(10.1\lineheight) \getnoflines\scratchdimen 11=\the\noflines \endgraf
-%D \scratchdimen\dimexpr(10.5\lineheight) \getnoflines\scratchdimen 11=\the\noflines \endgraf
-%D \scratchdimen\dimexpr(10.9\lineheight) \getnoflines\scratchdimen 11=\the\noflines \endgraf
-%D \scratchdimen\dimexpr(10\lineheight+3pt) \getnoflines\scratchdimen 11=\the\noflines \endgraf
-%D \scratchdimen\dimexpr(10\lineheight+3sp) \getnoflines\scratchdimen 10=\the\noflines \endgraf
-%D \scratchdimen\dimexpr(10\lineheight-3sp) \getnoflines\scratchdimen 10=\the\noflines \endgraf
-%D
-%D \scratchdimen\dimexpr(3pt) \getrawnoflines\scratchdimen 0=\the\noflines \endgraf
-%D \scratchdimen\dimexpr(10\lineheight) \getrawnoflines\scratchdimen 10=\the\noflines \endgraf
-%D \scratchdimen\dimexpr(10.1\lineheight) \getrawnoflines\scratchdimen 10=\the\noflines \endgraf
-%D \scratchdimen\dimexpr(10.5\lineheight) \getrawnoflines\scratchdimen 11=\the\noflines \endgraf
-%D \scratchdimen\dimexpr(10.9\lineheight) \getrawnoflines\scratchdimen 11=\the\noflines \endgraf
-%D \scratchdimen\dimexpr(10\lineheight+3pt) \getrawnoflines\scratchdimen 10=\the\noflines \endgraf
-%D \scratchdimen\dimexpr(10\lineheight+3sp) \getrawnoflines\scratchdimen 10=\the\noflines \endgraf
-%D \scratchdimen\dimexpr(10\lineheight-3sp) \getrawnoflines\scratchdimen 10=\the\noflines \endgraf
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-%D \macros
-%D {determinenoflines}
-%D
-%D The next macro determines the number of lines and
-%D returns it it \type {\noflines}. The macro works
-%D reasonable well as long as the content can be unboxed.
-%D
-%D \starttyping
-%D \determinenoflines{test\\test}
-%D \determinenoflines{\bfd test\\test}
-%D \determinenoflines{\definedfont[Sans at 40pt]test\\test}
-%D \stoptyping
-
-\def\determinenoflines % can be mkiv'd
- {\bgroup
- \forgetall
- \let\crlf\endgraf
- \let\\\endgraf
- \dowithnextbox
- {\beginofshapebox
- \unvbox\nextbox
- \endofshapebox
- % \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}
-%D
-%D When \type {\doifelse} cum suis hopelessly fail, for
-%D instance because we pass data, we can fall back on the next
-%D macro:
-%D
-%D \starttyping
-%D \doiftextelse {data} {then branch} {else branch}
-%D \doiftext {data} {then branch}
-%D \stoptyping
-
-\newif\iftrialtypesetting
-
-\def\doiftextelse#1%
- {\bgroup
- \setbox\scratchbox\normalhbox
- {\trialtypesettingtrue
- \ignorespaces#1\removeunwantedspaces}%
- \ifzeropt\wd\scratchbox
- \egroup\@EA\secondoftwoarguments
- \else
- \egroup\@EA\firstoftwoarguments
- \fi}
-
-\def\doiftext#1#2%
- {\doiftextelse{#1}{#2}\donothing}
-
-%D \macros
-%D {dowithnextbox,nextbox}
-%D
-%D Sometimes we want a macro to grab a box and do something
-%D on the content. One could pass an argument to a box, but
-%D this can violate the specific \CATCODES\ of its content and
-%D leads to unexpected results. The next macro treats the
-%D following braced text as the content of a box and
-%D manipulates it afterwards in a predefined way.
-%D
-%D The first argument specifies what to do with the content.
-%D This content is available in \type{\nextbox}. The second
-%D argument is one of \type{\hbox}, \type{\vbox} or
-%D \type{\vtop}. The third argument must be grouped with
-%D \type{\bgroup} and \type{\egroup}, \type{{...}} or can be
-%D a \type{\box} specification.
-%D
-%D In \CONTEXT\ this macro is used for picking up a box and
-%D treating it according to earlier specifications. We use for
-%D instance something like:
-%D
-%D \starttyping
-%D \def\getfloat%
-%D {\def\handlefloat{...\flushnextbox...}
-%D \dowithnextbox\handlefloat\normalvbox}
-%D \stoptyping
-%D
-%D instead of:
-%D
-%D \starttyping
-%D \def\getfloat#1%
-%D {...#1...}
-%D \stoptyping
-%D
-%D In this implementation the \type{\aftergroup} construction
-%D is needed because \type{\afterassignment} is executed inside
-%D the box.
-
-\ifx\nextbox\undefined \newbox\nextbox \fi
-
-\long\def\dowithnextbox#1%
- {\long\def\dodowithnextbox{#1}%
- \afterassignment\dododowithnextbox
- \setbox\nextbox}
-
-\def\dododowithnextbox
- {\aftergroup\dodowithnextbox}
-
-\long\def\dowithnextboxcs#1%
- {\let\dodowithnextbox#1%
- \afterassignment\dododowithnextbox
- \setbox\nextbox}
-
-\def\dododowithnextbox
- {\aftergroup\dodowithnextbox}
-
-%D So in fact we get:
-%D
-%D \starttyping
-%D \setbox\nextbox { \aftergroup\dodowithnextbox ... }
-%D \stoptyping
-%D
-%D or
-%D
-%D \starttyping
-%D \setbox\nextbox { ... } \dodowithnextbox
-%D \stoptyping
-%D
-%D A slower but more versatile implementation is:
-%D
-%D \starttyping
-%D \long\def\dowithnextbox#1#2%
-%D {\long\def\dodowithnextbox{#1}%
-%D \ifx#2\normalhbox
-%D \afterassignment\dododowithnextbox
-%D \else\ifx#2\normalvbox
-%D \afterassignment\dododowithnextbox
-%D \else\ifx#2\normalvtop
-%D \afterassignment\dododowithnextbox
-%D \else\ifx#2\normalvcenter
-%D \afterassignment\dododowithnextbox
-%D \else
-%D \afterassignment\dodowithnextbox
-%D \fi\fi\fi\fi
-%D \setbox\nextbox#2}
-%D \stoptyping
-%D
-%D This alternative also accepts \type{\box0} and alike, but
-%D we don't really need this functionality now.
-
-%D \macros
-%D {nextboxht,nextboxwd,nextboxdp,flushnextbox}
-%D
-%D The next couple of shortcuts saves us memory as well as
-%D \type {{}}'s in passing parameters.
-
-\def\nextboxht{\ht\nextbox}
-\def\nextboxwd{\wd\nextbox}
-\def\nextboxdp{\dp\nextbox}
-
-\def\flushnextbox{\box\nextbox}
-
-%D \macros
-%D {dowithnextboxcontent}
-%D
-%D But, occasionally we do need to pass some local settings
-%D without wanting to use additional grouping. Therefore we
-%D provide:
-%D
-%D \starttyping
-%D \dowithnextboxcontent{inside}{after}{box content}
-%D \stoptyping
-%D
-%D {\em todo: Search source for potential usage!}
-
-\long\def\dowithnextboxcontent#1#2% inside, after
- {\long\def\dodowithnextbox{#2}%
- \def\dododowithnextbox{#1\aftergroup\dodowithnextbox}%
- \afterassignment\dododowithnextbox
- \setbox\nextbox}
-
-%D Now we can redefine \type {\dowithnextbox} as follows:
-%D
-%D \starttyping
-%D \def\dowithnextbox{\dowithnextboxcontent\empty}
-%D \stoptyping
-%D
-%D But since this macro is used often and since this implementation
-%D is slower, we will not use that definition.
-
-% maybe:
-%
-% depending on the size of the action, about 10% faster
-%
-% \newtoks\nextboxtoks
-%
-% \def\dowithnextbox {\afterassignment\redowithnextbox\nextboxtoks}
-% \def\redowithnextbox {\afterassignment\dododowithnextbox\setbox\nextbox}
-% \def\dododowithnextbox{\aftergroup\dodowithnextbox}
-% \def\dodowithnextbox {\the\nextboxtoks}
-%
-% \long\def\dowithnextboxcontent#1% #2% inside, after
-% {\def\dododowithnextbox{#1\aftergroup\dodowithnextbox}%
-% \afterassignment\redowithnextboxcontent\nextboxtoks}
-%
-% \def\redowithnextboxcontent
-% {\afterassignment\dododowithnextbox\setbox\nextbox}
-
-%D \macros
-%D {llap, rlap, tlap, blap, clap}
-%D
-%D Some well known friends, but we implement them our own
-%D way. We want the macros to work in both math and text mode.
-
-\def\dodorlap{\normalhbox to \zeropoint{\flushnextbox\normalhss}\endgroup}
-\def\dodollap{\normalhbox to \zeropoint{\normalhss\flushnextbox}\endgroup}
-\def\dodoclap{\normalhbox to \zeropoint{\normalhss\flushnextbox\normalhss}\endgroup}
-
-\def\dorlap{\begingroup\dowithnextboxcs\dodorlap\normalhbox}
-\def\dollap{\begingroup\dowithnextboxcs\dodollap\normalhbox}
-\def\doclap{\begingroup\dowithnextboxcs\dodoclap\normalhbox}
-
-\def\domathclap{\mathpalette\dodomathclap} \def\dodomathclap#1#2{\doclap{$\mathsurround\zeropoint#1#2$}}
-\def\domathllap{\mathpalette\dodomathllap} \def\dodomathllap#1#2{\dollap{$\mathsurround\zeropoint#1#2$}}
-\def\domathrlap{\mathpalette\dodomathrlap} \def\dodomathrlap#1#2{\dorlap{$\mathsurround\zeropoint#1#2$}}
-
-\unexpanded\def\rlap{\mathortext\domathrlap\dorlap}
-\unexpanded\def\llap{\mathortext\domathllap\dollap}
-\unexpanded\def\clap{\mathortext\domathclap\doclap}
-
-\def\dodotlap{\normalvbox to \zeropoint{\normalvss\flushnextbox}\endgroup}
-\def\dodoblap{\normalvbox to \zeropoint{\flushnextbox\normalvss}\endgroup}
-
-\def\tlap{\begingroup\dowithnextboxcs\dodotlap\normalvbox}
-\def\blap{\begingroup\dowithnextboxcs\dodoblap\normalvbox}
-
-%D \macros
-%D {beginofshapebox,
-%D reshapebox, doreshapebox,
-%D flushshapebox,
-%D innerflushshapebox,
-%D shapebox,
-%D ifreshapingbox}
-%D
-%D The next utility macro originates from some linenumbering
-%D mechanism. Due to \TEX's advanced way of typesetting
-%D paragraphs, it's not easy to do things on a line||by||line
-%D basis. This macro is able to reprocess a given box and can
-%D act upon its vertical boxed components, such as lines. The
-%D unwinding sequence in this macro is inspired by a \NTG\
-%D workshop of David Salomon in June 1992.
-%D
-%D First we have to grab the piece of text we want to act
-%D upon. This is done by means of the duo macros:
-%D
-%D \starttyping
-%D \beginofshapebox
-%D a piece of text
-%D \endofshapebox
-%D \stoptyping
-%D
-%D When all texts is collected, we can call \type{\reshapebox}
-%D and do something with it's vertical components. We can make
-%D as much passes as needed. When we're done, the box can be
-%D unloaded with \type{\flushshapebox}. The only condition in
-%D this scheme is that \type{\reshapebox} must somehow unload
-%D the \BOX\ \type{\shapebox}.
-%D
-%D An important aspect is that the content is unrolled
-%D bottom||up. The next example illustrates this maybe
-%D unexpected characteristic.
-%D
-%D \startbuffer
-%D \beginofshapebox
-%D \em \input tufte
-%D \endofshapebox
-%D
-%D \newcounter\LineNumber
-%D
-%D \reshapebox
-%D {\doglobal\increment\LineNumber
-%D \normalhbox{\llap{\LineNumber\hskip2em}\box\shapebox}}
-%D
-%D \flushshapebox
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-%D
-%D As we can see, when some kind of numbering is done, we have
-%D to add a second pass.
-%D
-%D \startbuffer
-%D \newcounter\LineNumber
-%D \newcounter\NumberOfLines
-%D
-%D \reshapebox
-%D {\doglobal\increment\NumberOfLines
-%D \box\shapebox}
-%D
-%D \reshapebox
-%D {\doglobal\increment\LineNumber
-%D \normalhbox
-%D {\llap{\LineNumber\ (\NumberOfLines)\hskip2em}%
-%D \box\shapebox}%
-%D \doglobal\decrement\NumberOfLines}
-%D
-%D \flushshapebox
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-%D
-%D This example shows that the content of the box is still
-%D available after flushing. Another feature is that only the
-%D last reshaping counts. Multiple reshaping can be done by:
-%D
-%D \startbuffer
-%D \beginofshapebox
-%D \flushshapebox
-%D \endofshapebox
-%D
-%D \reshapebox
-%D {\doglobal\increment\LineNumber
-%D \normalhbox{\llap{$\star$\hskip1em}\box\shapebox}%
-%D \doglobal\decrement\NumberOfLines}
-%D
-%D \flushshapebox
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer
-%D
-%D The macros are surprisingly easy to follow and in fact
-%D introduce no new concepts. Nearly all books on \TEX\ show
-%D similar solutions for unwinding \BOXES.
-%D
-%D Some macros, like footnote ones, can be sensitive for
-%D reshaping, which can result in an endless loop. We
-%D therefore offer:
-%D
-%D \starttyping
-%D \ifreshapingbox
-%D \stoptyping
-%D
-%D Some \CONTEXT\ commands are protected this way. Anyhow,
-%D reshaping is aborted after 100 dead cycles.
-%D
-%D By the way, changing the height and depth of \BOX\
-%D \type{\shapebox} results in bad spacing. This means that
-%D for instance linenumbers etc. should be given zero height
-%D and depth before being lapped into the margin. The
-%D previous examples ignore this side effect, but beware!
-
-\newif \ifsomeshapeleft
-\newif \ifreshapingbox
-
-\newbox \shapebox
-\newcount \shapepenalty
-\newdimen \shapekern
-\newskip \shapeskip
-
-\newbox \newshapebox
-\newbox \oldshapebox
-
-\newcount \shapecounter
-
-\newevery \everyshapebox \relax
-
-\def\shapesignal{.12345678pt} % or 12345sp
-
-% todo: in etex lastnode
-
-\def\reshapebox#1%
- {\doreshapebox
- {#1}%
- {\penalty\shapepenalty}%
- {\kern \shapekern }%
- {\vskip \shapeskip }}
-
-\newbox\tmpshapebox
-
-\newif\ifreshapingfailed % may save redundant runs
-
-\def\doreshapebox#1#2#3#4% \shapebox, \shapepenalty, \shapekern, \shapeskip
- {\global\reshapingfailedfalse
- \ifzeropt\ht\oldshapebox % \ifdim\ht\oldshapebox=\zeropoint
- \setbox\newshapebox\normalvbox{}%
- \else
- \setbox\newshapebox\normalvbox
- {\unvcopy\oldshapebox
- \resetbox\newshapebox
- \shapecounter\zerocount
- \doloop{\dodoreshapebox{#1}{#2}{#3}{#4}}}%
- \setbox\newshapebox\box\tmpshapebox
- \fi}
-
-\ifx\originalshapebox\undefined \let\originalshapebox\oldshapebox \fi
-
-% %D The old traditional tex variant:
-%
-% \def\insertshapesignal
-% {\normalhbox to \shapesignal{\strut\hss}% plus \strut
-% \prevdepth\strutdp} % never \nointerlineskip
-%
-% \def\restoreshapebox % compensates for the signal
-% {\global\setbox\tmpshapebox\vbox{\vskip-\lineheight\unvcopy\oldshapebox}}
-%
-% \def\shapeboxstrut % put this in front if needed !
-% {\vrule\!!width\zeropoint\!!height\ht\shapebox\!!depth\dp\shapebox}
-%
-% \def\dodoreshapebox#1#2#3#4% \shapebox, \shapepenalty, \shapekern, \shapeskip
-% {\ifzeropt\lastskip % \ifdim\lastskip=\zeropoint\relax
-% \ifzeropt\lastkern % \ifdim\lastkern=\zeropoint\relax
-% \ifcase\lastpenalty % \ifnum\lastpenalty=\zerocount
-% \setbox\shapebox\lastbox
-% \ifvoid\shapebox
-% \unskip\unpenalty\unkern
-% \else
-% \ifdim\wd\shapebox=\shapesignal\relax
-% \exitloop
-% \else
-% \shapecounter\zerocount
-% \global\setbox\tmpshapebox\normalvbox{#1\unvbox\tmpshapebox}%
-% \fi
-% \fi
-% \else
-% \shapepenalty\lastpenalty
-% \global\setbox\tmpshapebox\normalvbox{#2\unvbox\tmpshapebox}%
-% \unpenalty
-% \fi
-% \else
-% \shapekern\lastkern
-% \global\setbox\tmpshapebox\normalvbox{#3\unvbox\tmpshapebox}%
-% \unkern
-% \fi
-% \else
-% \shapeskip\lastskip
-% \global\setbox\tmpshapebox\normalvbox{#4\unvbox\tmpshapebox}%
-% \unskip
-% \fi
-% \ifnum\shapecounter>100 % can be less
-% \global\reshapingfailedtrue
-% \message{!!forced exit from shapebox!!}%
-% \restoreshapebox
-% \exitloop
-% \else
-% \advance\shapecounter \plusone
-% \fi}
-%
-% But now that the lastnode bugfixes are wide spread we can use:
-%
-% We will turn this into a \MKIV\ variant.
-
-\def\insertshapesignal
- {\normalhbox to \shapesignal{\strut\hss}% plus \strut
- \prevdepth\strutdp} % never \nointerlineskip
-
-\def\restoreshapebox % compensates for the signal
- {\global\setbox\tmpshapebox\vbox{\vskip-\lineheight\unvcopy\oldshapebox}}
-
-\def\dodoreshapebox#1#2#3#4% \shapebox, \shapepenalty, \shapekern, \shapeskip
- {\ifnum\lastnodetype=\@@gluenode
- \shapeskip\lastskip
- \global\setbox\tmpshapebox\normalvbox{#4\unvbox\tmpshapebox}%
- \unskip
- \else\ifnum\lastnodetype=\@@kernnode
- \shapekern\lastkern
- \global\setbox\tmpshapebox\normalvbox{#3\unvbox\tmpshapebox}%
- \unkern
- \else\ifnum\lastnodetype=\@@penaltynode
- \shapepenalty\lastpenalty
- \global\setbox\tmpshapebox\normalvbox{#2\unvbox\tmpshapebox}%
- \unpenalty
- \else\ifnum\lastnodetype<\zeropoint
- \exitloop
- \else
- \setbox\shapebox\lastbox
- \ifvoid\shapebox
- \else\ifdim\wd\shapebox=\shapesignal\relax
- \exitloop
- \else
- \shapecounter\zerocount
- \global\setbox\tmpshapebox\normalvbox{#1\unvbox\tmpshapebox}%
- \fi\fi
- \fi\fi\fi\fi
- \ifnum\shapecounter>100 % can be less
- \global\reshapingfailedtrue
- \message{!!forced exit from shapebox \the\lastnodetype !!}%
- \restoreshapebox
- \exitloop
- \else
- \advance\shapecounter \plusone
- \fi}
-
-\def\beginofshapebox
- {\setbox\oldshapebox\normalvbox
- \bgroup
- \reshapingboxtrue
- \the\everyshapebox
- \insertshapesignal}
-
-\def\endofshapebox
- {\endgraf
- \egroup}
-
-\let\beginshapebox\beginofshapebox
-\let\endshapebox \endofshapebox
-
-\def\flushshapebox
- {\bgroup
- \ifzeropt\ht\newshapebox % \ifdim\ht\newshapebox=\zeropoint
- \else
- % make \prevdepth legal
- % \par before the next \vskip gives far worse results
- \ifdim\parskip>\zeropoint\vskip\parskip\else\par\fi
- % and take a look
- \ifdim\prevdepth=-\thousandpoint
- \prevdepth\zeropoint
- \fi
- \ifdim\prevdepth<\zeropoint\relax
- % something like a line or a signal or ...
- \donetrue
- \else\ifinner
- % not watertight and not ok
- \donefalse
- \else\ifdim\pagegoal=\maxdimen
- \donetrue
- \else
- % give the previous line a normal depth
- \donetrue
- {\forgeteverypar\verticalstrut}\nobreak
- \kern-\struttotal % geen \vskip
- \kern-\parskip
- % \vskip-\strutdp
- \fi\fi\fi
- \scratchdimen\dp\newshapebox
- \unvbox\newshapebox
- % \prevdepth=0pt and \dp\newshapebox depend on last line
- \kern-\scratchdimen % ??
- % now \prevdepth=0pt
- \ifdone
- \kern\strutdp
- \prevdepth\strutdp
- \fi
- \fi
- \egroup}
-
-%D In real inner situations we can use:
-%D
-%D \starttyping
-%D \flushinnershapebox
-%D \stoptyping
-%D
-%D This one is used in \type{\framed}.
-
-% The kern fails on for instance:
-%
-% \omlijnd[offset=0pt,hoogte=8mm,uitlijnen={rechts,laho}]{\bfa test}
-
-\def\innerflushshapebox
- {\ifzeropt\ht\newshapebox \else
- \unvcopy\newshapebox\relax % unvcopy ! else spacing problem
- % \kern-\dp\newshapebox\relax
- \fi}
-
-%D For absolute control, one can use \type{\doreshapebox}
-%D directly. This macro takes four arguments, that take care
-%D of:
-%D
-%D \startitemize[n,packed]
-%D \item \type{\shapebox}
-%D \item \type{\shapepenalty}
-%D \item \type{\shapekern}
-%D \item \type{\shapeskip}
-%D \stopitemize
-
-%D \macros
-%D {shapedhbox}
-%D
-%D When constructing a new box, using the content of \type
-%D {\shapebox}, one can best use \type {\shapedhbox} instead
-%D of \type {\normalhbox}, since it manages the height and depth of
-%D the line.
-
-% \def\shapedhbox
-% {\dowithnextbox
-% {\nextboxht\zeropoint
-% \nextboxdp\zeropoint
-% \flushnextbox}
-% \normalhbox}
-
-\def\shapedhbox % lines with non strutted dimensions have
- {\expanded{\dowithnextbox % interlineskip so if we want the original
- {\nextboxht\the\ht\shapebox % spacing, we need to preserve the original
- \nextboxdp\the\dp\shapebox % height and depth which is definitely
- \noexpand\flushnextbox}} % needed if we apply struts to the 'new'
- \normalhbox} % box or do something that changed ist size
-
-%D \macros
-%D {hyphenatedword,
-%D hyphenatedpar,
-%D hyphenatedfile,
-%D dohyphenateword}
-%D
-%D The next one is a tricky one. \PLAIN\ \TEX\ provides
-%D \type{\showhyphens} for showing macros on the terminal. When
-%D preparing a long list of words we decided to show the
-%D hyphens, but had to find out that the \PLAIN\ alternative
-%D can hardly be used and|/|or adapted to typesetting. The next
-%D two macros do the job and a little more. First we define the
-%D (slightly adapted) plain variant:
-
-\def\showhyphens#1%
- {\begingroup
- \setbox\scratchbox\vbox
- {\parfillskip\zerocount
- \hsize\maxdimen
- %\tenrm
- \pretolerance\minusone
- \tolerance\minusone
- \hbadness\zerocount
- \showboxdepth\zerocount
- \ #1}%
- \endgroup}
-
-%D The simple command \type{\hyphenatedword} accepts one
-%D argument and gives the hyphenated word. This macro calls for
-%D
-%D \starttyping
-%D \dohyphenateword {n} {pre} {word}
-%D \stoptyping
-%D
-%D The next examples tell more than lots of words:
-%D
-%D \startbuffer
-%D \dohyphenateword{0} {} {dohyphenatedword}
-%D \dohyphenateword{1} {...} {dohyphenatedword}
-%D \dohyphenateword{2} {...} {dohyphenatedword}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Here, \type{\hyphenatedword{dohyphenatedword}} is the
-%D shorter alternative for the first line.
-%D
-%D \startvoorbeeld
-%D \getbuffer
-%D \stopvoorbeeld
-%D
-%D These macros are slow but effective and not that hard to
-%D program at all.
-
-\ifx\scantokens\undefined \let\scantokens\firstofoneargument \fi
-
-\def\dohyphenateword#1#2#3%
- {\bgroup
- \setbox\scratchbox\normalhbox
- {\dontcomplain
- \nopenalties % \widowpenalty \clubpenalty \brokenpenalty \doublehyphendemerits \finalhyphendemerits \adjdemerits
- \hyphenpenalty \zerocount
- \exhyphenpenalty\zerocount
- \setbox0\normalvbox
- {\hsize\zeropoint
- \hskip\zeropoint\relax % really needed
- \ifnum#1<\zeropoint
- \obeyspaces
- \obeylines
- \def\obeyedspace{\hskip\zeropoint\hbox to \onepoint{}\hskip\zeropoint}%
- \let\obeyedline \obeyedspace
- \ifcase-#1\or
- \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
- #3%
- \fi
- \else
- #3%
- \fi}%
- \ifnum#1>\zerocount
- \dorecurse{#1}
- {\setbox2\normalhbox
- {\splittopskip\openstrutheight
- \vsplit0 to \baselineskip}}%
- #2%
- \fi
- \doloop
- {\setbox2\normalhbox
- {\splittopskip\openstrutheight
- \vsplit0 to \baselineskip}%
- \setbox2\normalhbox
- {\unhbox2
- \setbox2\lastbox
- \normalvbox
- {\unvbox2
- \setbox2\lastbox
- \normalhbox{\unhbox2}}}%
- \ifnum#1<\zeropoint\ifdim\wd2=\onepoint\space\else\box2\allowbreak\fi\else\box2\fi
- \ifzeropt\ht0 \exitloop\fi}% % \ifdim\ht0=\zeropoint\exitloop\fi}%
- \removeunwantedspaces}%
- \ifnum#1>\zerocount
- \ht\scratchbox\strutht
- \dp\scratchbox\strutdp
- \box\scratchbox
- \else
- \unhbox\scratchbox
- \fi
- \egroup}
-
-\def\hyphenatedword{\dohyphenateword\zerocount\empty}
-\def\hyphenatedpar {\dohyphenateword\minusone \empty}
-\def\hyphenatedfile{\dohyphenateword{-2}\empty}
-
-%D You may want to give the following call a try:
-%D
-%D \starttyping
-%D \hyphenatedpar{\readfile{zapf}{}{}}\endgraf
-%D \stoptyping
-
-%D \macros
-%D {processtokens}
-%D
-%D We fully agree with (most) typographers that inter||letter
-%D spacing is only permitted in fancy titles, we provide a
-%D macro that can be used to do so. Because this is
-%D (definitely and fortunately) no feature of \TEX, we have to
-%D step through the token list ourselves.
-%D
-%D \starttyping
-%D \processtokens {before} {between} {after} {space} {tokens}
-%D \stoptyping
-%D
-%D An example of a call is:
-%D
-%D \startbuffer
-%D \processtokens {[} {+} {]} {\space} {hello world}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D This results in:
-%D
-%D \getbuffer
-%D
-%D The list of tokens may contain spaces, while \type{\\},
-%D \type{{}} and \type{\ } are handled as space too.
-
-\def\dodoprocesstokens
- {\ifx\nextprocessedtoken\lastcharacter
- \after
- \let\nextprocessedtoken\relax
- \else\ifx\nextprocessedtoken\bgroup
- \def\nextprocessedtoken
- {\dowithnextbox
- {\before{\copy\nextbox}% \before can use nextbox several times
- \let\before\between
- \doprocesstokens}
- \hbox\bgroup}%
- \else
- \expandafter\if\space\nextprocessedtoken
- \after\white
- \let\before\savedbefore
- \else
- \before\nextprocessedtoken
- \let\before\between
- \fi
- \let\nextprocessedtoken\doprocesstokens
- \fi\fi
- \nextprocessedtoken}
-
-\def\doprocesstokens% the space after = is essential
- {\afterassignment\dodoprocesstokens\let\nextprocessedtoken= }
-
-\def\processtokens#1#2#3#4#5%
- {\begingroup
- \def\lastcharacter{\lastcharacter}%
- \def\space{ }%
- \let\\=\space
- \def\before {#1}%
- \def\between{#2}%
- \def\after {#3}%
- \def\white {#4}%
- \let\savedbefore\before
- \doprocesstokens#5\lastcharacter
- \endgroup}
-
-%D \macros
-%D {doboundtext}
-%D
-%D Sometimes there is not enough room to show the complete
-%D (line of) text. In such a situation we can strip of some
-%D characters by using \type{\doboundtext}. When the text is
-%D wider than the given width, it's split and the third
-%D argument is appended. When the text to be checked is packed
-%D in a command, we'll have to use \type{\expandafter}.
-%D
-%D \starttyping
-%D \doboundtext{a very, probably to long, text}{3cm}{...}
-%D \stoptyping
-%D
-%D When calculating the room needed, we take the width of the
-%D third argument into account, which leads to a bit more
-%D complex macro than needed at first sight.
-
-% \def\dodoboundtext#1%
-% {\setbox0=\normalhbox{\unhcopy0 #1}%
-% \ifdim\wd0>\dimen0
-% \let\dodoboundtext=\gobbleoneargument
-% \else
-% #1\relax
-% \fi}
-%
-% \def\doboundtext#1#2#3%
-% {\normalhbox
-% {\setbox0=\normalhbox{#1}%
-% \dimen0=#2\relax
-% \ifdim\wd0>\dimen0
-% \setbox2=\normalhbox{#3}%
-% \advance\dimen0 by -\wd2
-% \setbox0=\normalhbox{}%
-% \processtokens
-% {\dodoboundtext}
-% {\dodoboundtext}
-% {}
-% {\space}
-% {#1}%
-% \box2
-% \else
-% \box0
-% \fi}}
-
-\def\dodoboundtext#1%
- {\setbox0\normalhbox{#1}%
- \advance\scratchdimen -\wd0
- \ifdim\scratchdimen>\zeropoint\relax#1\fi}%
-
-\def\doboundtext#1#2#3%
- {\normalhbox
- {\setbox\scratchbox\normalhbox{#1}%
- \scratchdimen#2\relax
- \ifdim\wd\scratchbox>\scratchdimen
- \setbox\scratchbox\normalhbox{#3}%
- \advance\scratchdimen -\wd\scratchbox
- \handletokens#1\with\dodoboundtext
- \fi
- \box\scratchbox}}
-
-%D \macros
-%D {limitatetext}
-%D
-%D A bit more beautiful alternative for the previous command is
-%D the next one. This command is more robust because we let
-%D \TEX\ do most of the job. The previous command works better
-%D on text that cannot be hyphenated.
-%D
-%D \starttyping
-%D \limitatetext {text} {width} {sentinel}
-%D \limitatetext {text} {-width} {prelude}
-%D \stoptyping
-%D
-%D When no width is given, the whole text comes available. The
-%D sentinel is optional. This is about the third version.
-
-\ifx\fakecompoundhyphen\undefined \let\fakecompoundhyphen\relax \fi
-\ifx\veryraggedright \undefined \def\veryraggedright{\raggedright} \fi
-
-%D The simple alternative is as follows:
-%D
-%D \starttyping
-%D \unexpanded\def\limitatetext%
-%D {\bgroup % evt \setstrut
-%D \forgetall
-%D \fakecompoundhyphen % dangerous ! ! ! ! ! ! ! ! !
-%D \dowithnextbox\dolimitatetext\normalhbox}
-%D
-%D \def\dolimitatetext#1#2%
-%D {\doifelsenothing{#1}
-%D {\unhbox\nextbox}
-%D {\widowpenalty=0
-%D \clubpenalty=0
-%D \scratchdimen=#1\relax
-%D \ifdim\nextboxwd>\scratchdimen
-%D \setbox\scratchbox=\normalhbox{ #2}%
-%D \advance\scratchdimen by -\wd\scratchbox
-%D \setbox\nextbox=\normalvbox
-%D {\hsize=\scratchdimen
-%D \hfuzz\maxdimen
-%D \veryraggedright
-%D \strut\unhcopy\nextbox}%
-%D \ifdim\nextboxht>\strutht \else
-%D \setbox\scratchbox\null % overfull and not split
-%D \fi
-%D \setbox\nextbox=\normalvbox % if omitted: missing brace reported
-%D {\splittopskip=\openstrutheight
-%D \setbox\nextbox=\vsplit\nextbox to \strutht
-%D \unvbox\nextbox
-%D \setbox\nextbox=\lastbox
-%D \global\setbox1=\normalhbox
-%D {\unhbox\nextbox\unskip\kern\zeropoint\box\scratchbox\unskip}}%
-%D \unhbox1
-%D \else
-%D \unhbox\nextbox
-%D \fi}%
-%D \egroup}
-%D \stoptyping
-%D
-%D The next alternative accepts a negative width. A negative
-%D value crops the beginning. The macro thereby becomes less
-%D readable, which is why we kept the original here too.
-
-\unexpanded\def\limitatetext
- {\bgroup % evt \setstrut
- \forgetall % otherwise indentation and so
- %\def\limitatetext##1##2##3{##1}% \def !
- \let\limitatetext\firstofthreearguments
- \fakecompoundhyphen % dangerous ! ! ! ! ! ! ! ! !
- \dowithnextboxcs\dolimitatetext\normalhbox}
-
-\def\dolimitatetext#1#2%
- {\doifelsenothing{#1}
- {\unhbox\nextbox}
- {\nopenalties
- \scratchdimen#1\relax
- \ifdim\scratchdimen<\zeropoint\relax % we'll take the last line
- \donefalse
- \scratchdimen-\scratchdimen
- \else
- \donetrue
- \fi
- \ifdim\nextboxwd>\scratchdimen
- \setbox\scratchbox\normalhbox{\ifdone\space#2\else#2\space\fi}%
- \advance\scratchdimen -\wd\scratchbox
- \setbox0\flushnextbox
- \setbox\nextbox\normalvbox
- {\hsize\scratchdimen
- \hfuzz\maxdimen
- \veryraggedright
- \strut
- \ifdone \else
- \parfillskip\zeropoint
- \rightskip\zeropoint
- \hskip\zeropoint \!!plus 1\!!fill % \hsize
- \fi
- \unhcopy0}%
- \ifdim\nextboxht>\strutht
- \setbox\nextbox\normalvbox % if omitted: missing brace reported
- {\splittopskip\openstrutheight
- \ifdone
- \setbox\nextbox\vsplit\nextbox to \strutht
- \else
- \doloop
- {\setbox0\vsplit\nextbox to \strutht
- \ifdim\nextboxht>\strutht \else \exitloop \fi}%
- \fi
- \unvbox\nextbox
- \setbox\nextbox\lastbox
- \global\setbox1\normalhbox
- {\ifdone
- \unhbox\nextbox\unskip\kern\zeropoint\box\scratchbox
- \else
- \box\scratchbox\unhbox\nextbox
- \fi
- \unskip}}%
- \unhbox1
- \else
- \unhbox0
- \fi
- \else
- \unhbox\nextbox
- \fi}%
- \egroup}
-
-%D We can also limit a text with more control:
-%D
-%D \startbuffer
-%D \limitatetext {\input tufte } {2cm,5mm} {\unknown}
-%D \limitatetext {ton en hans} {2cm,5mm} {\unknown}
-%D \limitatetext {ton en hans zijn eikels} {2cm,5mm} {\unknown}
-%D \limitatetext {ton} {2cm,5mm} {\unknown}
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D We build this feature on top of the previous macro.
-
-\let\normallimitatetext\limitatetext
-
-\def\speciallimitatetext#1#2#3#4% text left right placeholder
- {%\dontleavehmode
- \bgroup
- %\def\speciallimitatetext##1##2##3##4{##1}% \def !
- \let\speciallimitatetext\firstoffourarguments
- \setbox0\normalhbox
- {\nohyphens
- \normallimitatetext{#1}{+#2}{}#4%
- \normallimitatetext{#1}{-#3}{}}%
- \setbox2\normalhbox
- {#1}%
- \ifdim\wd2<\wd0 #1\else\unhbox0\fi
- \egroup}
-
-\def\limitatetext#1#2#3% \expanded added 2003/01/16
- {\expanded{\beforesplitstring#2}\at,\to\leftlimit
- \expanded{\aftersplitstring #2}\at,\to\rightlimit
- \ifx\rightlimit\empty
- \normallimitatetext {#1}\leftlimit {#3}%
- \else
- \speciallimitatetext{#1}\leftlimit\rightlimit{#3}%
- \fi}
-
-%D Undocumented bonus (see wiki):
-%D
-%D \starttyping
-%D \limitatefirstline{\input tufte\relax}{10cm}{\unknown}
-%D \stoptyping
-
-\def\limitatefirstline#1#2#3%
- {\hbox\bgroup\strut
- \setbox\scratchbox\hbox{\begstrut#1\endstrut}%
- \ifdim\wd\scratchbox>#2\relax
- \setbox\scratchbox\hbox{#3}%
- \hsize#2\relax
- \advance\hsize-\wd\scratchbox
- \setbox\scratchbox\vbox{\forgetall\veryraggedright#1}%
- \setbox\scratchbox\vsplit\scratchbox to \lineheight
- \vbox
- {\unvbox\scratchbox
- \global\setbox\plusone\lastbox
- \global\setbox\plusone\hbox{\strut\unhbox\plusone}%
- \hbox % to #2
- {\ifx\clip\undefined
- \box\plusone
- \else\ifdim\wd\plusone>\hsize
- \lower\strutdepth\hbox{\clip[\c!width=\hsize,\c!height=\lineheight]{\hbox{\raise\strutdepth\box\plusone}}}%
- \else
- \box\plusone
- \fi\fi
- \removeunwantedspaces#3}}% \removeunwantedspaces\hss#3}}%
- \else
- #1%
- \fi
- \egroup}
-
-%D \macros
-%D {processisolatedwords,
-%D betweenisolatedwords,nothingbetweenisolatedwords}
-%D
-%D References are often made up of one word or a combination
-%D of tightly connected words. The typeset text {\bf
-%D chapter~5} is for instance the results of the character
-%D sequence:
-%D
-%D \starttyping
-%D The typeset text \in{chapter}[texniques] is for instance
-%D \stoptyping
-%D
-%D When such words are made active in interactive texts, the
-%D combination cannot longer be hyphenated. Normally this is no
-%D problem, because \TEX\ tries to prevent hyphenation as best
-%D as can.
-%D
-%D Sometimes however we need a few more words to make things
-%D clear, like when we want to refer to {\bf \TEX\ by Topic}.
-%D The macros that are responsible for typesetting hyperlinks,
-%D take care of such sub||sentences by breaking them up in
-%D words. Long ago we processed words using the space as a
-%D separator, but the more advanced our interactive text became,
-%D the more we needed a robust solution. Well, here it is and
-%D it called as:
-%D
-%D \starttyping
-%D \processisolatedwords{some words}\someaction
-%D \stoptyping
-%D
-%D The second argument \type{someactions} handles the
-%D individual words, like in:
-%D
-%D \startbuffer
-%D \processisolatedwords{some more words} \ruledhbox \par
-%D \processisolatedwords{and some $x + y = z$ math} \ruledhbox \par
-%D \processisolatedwords{and a \normalhbox{$x + y = z$}} \ruledhbox \par
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D which let the words turn up as:
-%D
-%D \startvoorbeeld
-%D \getbuffer
-%D \stopvoorbeeld
-%D
-%D The macro has been made a bit more clever than needed at
-%D first sight. This is due to the fact that we don't want to
-%D generate more overhead in terms of interactive commands than
-%D needed.
-%D
-%D \startbuffer
-%D \processisolatedwords{see this \ruledhskip1em} \ruledhbox
-%D \processisolatedwords{and \ruledhskip1em this one} \ruledhbox
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D becomes:
-%D
-%D \startvoorbeeld
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D \stopvoorbeeld
-%D
-%D Single word arguments are treated without further
-%D processing. This was needed because this command is used in
-%D the \type{\goto} command, to which we sometimes pass very
-%D strange and|/|or complicated arguments or simply boxes
-%D whose dimensions are to be left intact.
-%D
-%D First we build a \type{\normalhbox}. This enables us to save the
-%D last skip. Next we fill a \type{\normalvbox} without hyphenating
-%D words. After we've tested if there is more than one word, we
-%D start processing the individual lines (words). We need some
-%D splitting, packing and unpacking to get the spacing and
-%D dimensions right.
-%D
-%D Normally the isolated words are separated by space, but
-%D one can overrule this separator by changing the next macros.
-%D
-%D When needed, spacing can be suppressed by \type
-%D {\nothingbetweenisolatedwords}.
-
-\newif\ifisolatedwords % public, e.g. used in core-ref
-
-\def\betweenisolatedwords
- {\hskip\currentspaceskip}
-
-%D In order to prevent problems with nested isolated words, we
-%D do process them, but only split at the outermost level.
-
-\newskip\isolatedlastskip
-
-\chardef\isolatedwordsmode=0 % no nesting
-
-\def\processisolatedwords#1#2% todo: vbox ipv hbox ivm afbreken!
- {\bgroup % todo: doloop
- \fakecompoundhyphen
- \dontcomplain
- \forgetall
- \nopenalties
- \ifcase\isolatedwordsmode
- \def\processisolatedwords##1##2{##2{##1}}% we split only once
- \fi
- \global\let\localbetweenisolatedwords\betweenisolatedwords
- \setbox0\normalhbox % we default to spaces, but from inside out
- {\normallanguage\minusone % needed for mkiv
- \ignorespaces#1% \localbetweenisolatedwords can be overruled
- \global\isolatedlastskip\lastskip}%
- \setbox2\normalvbox
- {%\hyphenpenalty10000 % this one fails in \url breaking,
- \lefthyphenmin\maxcard % but this trick works ok, due to them
- \righthyphenmin\maxcard % total>63, when no hyphenation is done
- \hsize\zeropoint
- \unhcopy0}% == #1
- \ifdim\ht0=\ht2
- \isolatedwordsfalse
- #2{\unhbox0}% == #2{#1} % was \unhcopy0
- \else
- \isolatedwordstrue
- \setbox0\normalhbox
- {\ignorespaces
- \loop
- \setbox4\normalhbox
- {\splittopskip\openstrutheight
- \vsplit2 to \baselineskip}%
- \normalhbox
- {\unhbox4\unskip % recently added
- \setbox4\lastbox
- \normalvbox % outer \normalhbox needed
- {\unvbox4 % for nested use
- \setbox4\lastbox
- \normalhbox{#2{\normalhbox
- {\unhbox4
- \unskip\unpenalty % remove end of line stuff
- \global\dimen1\lastkern}}}}}%
- \ifdim\ht2>\zeropoint\relax
- \ifdim\dimen1=\compoundbreakpoint
- \allowbreak
- \else
- \localbetweenisolatedwords
- \fi
- \repeat
- \unskip}%
- \unhbox0\unskip
- \ifzeropt\isolatedlastskip\else % added % \ifdim\isolatedlastskip=\zeropoint\else % added
- \hskip\isolatedlastskip
- \fi
- \fi
- \egroup}
-
-%D One can use the next macro to change the intersplit
-%D material. An example can be found in the \type {\url}
-%D macro. The innermost setting is used. In the url case, it
-%D means that either very small spaces are used or no spaces
-%D at all. So, the innermost settings are used, while the
-%D outermost split takes place.
-
-\def\setbetweenisolatedwords#1%
- {\gdef\localbetweenisolatedwords{#1}}
-
-%D \macros
-%D {sbox}
-%D
-%D This is a rather strange command. It grabs some box content
-%D and and limits the size to the height and depth of a
-%D \type{\strut}. The resulting bottom||alligned box can be used
-%D aside other ones, without disturbing the normal baseline
-%D distance.
-%D
-%D \startbuffer
-%D \ruledhbox to .5\hsize{\sbox{eerste\par tweede \par derde}}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Shows up as:
-%D
-%D \startvoorbeeld
-%D \vskip3\baselineskip
-%D \getbuffer
-%D \stopvoorbeeld
-%D
-%D Before displaying the result we added some skip, otherwise
-%D the first two lines would have ended up in the text. This
-%D macro can be useful when building complicated menus, headers
-%D and footers and|/|or margin material.
-
-\def\sbox% in handleiding, voorbeeld \inleft{xx} \extern..
- {\normalvbox\bgroup % new ! ! !
- \dowithnextbox
- {\setbox\scratchbox\normalhbox
- {\strut
- \nextboxdp\zeropoint
- \lower\strutdepth\flushnextbox}%
- \dp\scratchbox\strutdepth
- \ht\scratchbox\strutheight
- \box\scratchbox
- \egroup}%
- \normalvbox}
-
-%D \macros
-%D {struttedbox}
-%D
-%D This boxing macro limits the height and depth to those of
-%D a strut.
-
-\def\struttedbox
- {\normalhbox\bgroup % new ! ! !
- \dowithnextbox
- {\nextboxdp\strutdepth
- \nextboxht\strutheight
- \flushnextbox
- \egroup}%
- \normalhbox}
-
-%D \macros
-%D {topskippedbox}
-%D
-%D This macro compensates the difference between the topskip
-%D and strutheight. Watch how we preserve the depth when it
-%D equals strutdepth.
-
-\def\topskippedbox
- {\normalhbox\bgroup
- \dowithnextbox
- {\edef\next
- {\ifdim\strutdepth=\nextboxdp\nextboxdp\the\nextboxdp\fi}%
- \lower\topskip\normalhbox{\raise\strutheight\flushnextbox}%
- \next
- \egroup}%
- \normalhbox}
-
-%D \macros
-%D {centeredbox, centerednextbox}
-%D
-%D Here is another strange one. This one offers a sort of overlay
-%D with positive or negative offsets. This command can be used
-%D in well defined areas where no offset options are available.
-%D We first used it when building a button inside the margin
-%D footer, where the button should have a horizontal offset and
-%D should be centered with respect to the surrounding box. The
-%D last of the three examples we show below says:
-%D
-%D \starttyping
-%D \vsize=3cm
-%D \hsize=3cm
-%D \ruledvbox to \vsize
-%D {\centeredbox height .5cm width -1cm
-%D {\vrule width \hsize height \vsize}}}
-%D \stoptyping
-%D
-%D Here the \type{\ruledvbox} just shows the surrounding box
-%D and \type{\vrule} is used to show the centered box.
-%D
-%D \def\AnExample#1#2%
-%D {\vsize=3cm
-%D \hsize=3cm
-%D \ruledvbox to \vsize
-%D {\centeredbox height #1 width #2
-%D {\color[green]{\vrule width \hsize height \vsize}}}}
-%D
-%D \startlinecorrection
-%D \startcombination[3*1]
-%D {\AnExample {-1cm} {.5cm}} {}
-%D {\AnExample {.5cm} {-1cm}} {}
-%D {\AnExample {-1cm} {-.5cm}} {}
-%D \stopcombination
-%D \stoplinecorrection
-%D
-%D This command takes two optional arguments: \type{width} and
-%D \type{height}. Observing readers can see that we use \TEX's
-%D own scanner for grabbing these arguments: \type{#1#} reads
-%D everyting till the next brace and passes it to both rules.
-%D The setting of the box dimensions at the end is needed for
-%D special cases. The dimensions of the surrounding box are kept
-%D intact. This commands handles positive and negative
-%D dimensions (which is why we need two boxes with rules).
-
-\def\centeredbox#1#% height +/-dimen width +/-dimen
- {\bgroup
- \setbox0\normalvbox to \vsize
- \bgroup
- \dontcomplain
- \forgetall
- \setbox0\normalhbox{\vrule\!!width \zeropoint#1}%
- \setbox2\normalvbox{\hrule\!!height\zeropoint#1}%
- \advance\vsize \ht2
- \advance\hsize \wd0
- \normalvbox to \vsize
- \bgroup
- \vskip-\ht2
- \vss
- \normalhbox to \hsize
- \bgroup
- \dowithnextbox
- {\hskip-\wd0
- \hss
- \flushnextbox
- \hss
- \egroup
- \vss
- \egroup
- \egroup
- \wd0\hsize
- \ht0\vsize
- \box0
- \egroup}
- \normalhbox}
-
-%D For those who don't want to deal with \type {\hsize}
-%D and \type {\vsize}, we have:
-%D
-%D \starttyping
-%D \centerednextbox width 2bp height 2bp
-%D {\framed[width=100bp,height=100bp]{}}
-%D \stoptyping
-%D
-%D Do you see what we call this one \type {next}?
-
-\def\centerednextbox#1#%
- {\bgroup
- \dowithnextbox
- {\hsize\nextboxwd
- \vsize\nextboxht
- \centeredbox#1{\flushnextbox}%
- \egroup}
- \normalhbox}
-
-%D \macros
-%D {centerbox}
-%D
-%D Centering on the available space is done by:
-%D
-%D \starttyping
-%D \centerbox <optional specs> {content}
-%D \stoptyping
-%D
-%D When omitted, the current \type {\hsize} and \type
-%D {\vsize} are used. Local dimensions are supported.
-
-\long\def\centerbox#1#% optional height +/-dimen width +/-dimen
- {\bgroup
- \dowithnextbox
- {\setlocalhsize
- \setbox0\normalhbox{\vrule\!!width \zeropoint#1}%
- \setbox2\normalvbox{\hrule\!!height\zeropoint#1}%
- \ifzeropt\wd0\else\hsize\wd0\fi % \hsize\ifdim\wd0=\zeropoint\hsize\else\wd0\fi
- \ifzeropt\ht2\else\vsize\ht2\fi % \vsize\ifdim\ht2=\zeropoint\vsize\else\ht2\fi
- \normalvbox to \vsize{\vss\normalhbox to \hsize{\hss\flushnextbox\hss}\vss}%
- \egroup}%
- \normalhbox}
-
-%D \macros
-%D {setrigidcolumnhsize,rigidcolumnbalance,rigidcolumnlines}
-%D
-%D These macros are copied from the \TEX book, page~397, and
-%D extended by a macro that sets the \type{\hsize}.
-%D
-%D \starttyping
-%D \setrigidcolumnhsize {total width} {distance} {n}
-%D \rigidcolumnbalance {box}
-%D \stoptyping
-%D
-%D Both these macros are for instance used in typesetting
-%D footnotes.
-%D
-%D Men kan het proces van breken enigzins beinvloeden met de
-%D volgende twee switches:
-
-\newif\ifalignrigidcolumns
-\newif\ifstretchrigidcolumns
-\newif\iftightrigidcolumns % if true: just a vbox, no depth/noflines/gridsnap corrrections
-
-%D De eerste switch bepaald het uitlijnen, de tweede rekt de
-%D individuele kolommen op naar \type{\vsize}.
-
-\def\setrigidcolumnhsize#1#2#3% todo: \dimexpr
- {\xdef\savedrigidhsize{\the\hsize}%
- \hsize#1\relax
- \global\chardef\rigidcolumns#3\relax
- \scratchdimen -#2\relax
- \multiply\scratchdimen #3\relax
- \advance\scratchdimen #2\relax
- \advance\hsize \scratchdimen
- \divide\hsize #3\relax}
-
-% ==
-%
-% \def\setrigidcolumnhsize#1#2#3%
-% {\xdef\savedrigidhsize{\the\hsize}%
-% \global\chardef\rigidcolumns#3\relax
-% \hsize=\dimexpr(#1-\numexpr#3-1\relax\dimexpr#2\relax)/#3\relax}
-
-\newbox\rigidcolumnbox
-
-\let\rigidcolumnlines\!!zerocount
-
-\def\rigidcolumnbalance#1%
- {\ifnum\rigidcolumns=1 % tzt ook h/d correctie
- \ifinner\ifhmode\box\else\unvbox\fi\else\unvbox\fi#1\relax
- \else
- \normalvbox
- {\forgetall
- \nopenalties
- \dontcomplain
- \setbox\rigidcolumnbox\normalvbox
- {\line{}\goodbreak\unvbox#1\removebottomthings}%
- \splittopskip\openstrutheight
- \setbox\scratchbox\vsplit\rigidcolumnbox to \zeropoint
- \ifcase\rigidcolumnlines\relax
- % \iffalse
- % % maybe some day an option
- % \scratchskip\ht\rigidcolumnbox
- % \advance\scratchskip\dp\rigidcolumnbox
- % \getnoflines\scratchskip
- % \ifodd\noflines
- % \advance\noflines\plusone
- % \fi
- % \divide\noflines\rigidcolumns
- %\else
- \scratchdimen\ht\rigidcolumnbox
- \divide\scratchdimen \rigidcolumns
- \getnoflines\scratchdimen
- %\fi
- \else
- \noflines\rigidcolumnlines % to be sure
- \fi
- \scratchdimen\noflines\lineheight
- % new: we now loop so that we don't loose content
- % since in practice we also use this macro for
- % funny lineheights and border cases
- \setbox0=\box\rigidcolumnbox
- \doloop
- {\setbox\rigidcolumnbox=\copy0
- \setbox\scratchbox\normalhbox to \savedrigidhsize
- {\dorecurse\rigidcolumns
- {\setbox\scratchbox\vsplit\rigidcolumnbox to \scratchdimen
- \dp\scratchbox\openstrutdepth
- \setbox\scratchbox\normalvtop
- \ifalignrigidcolumns to
- \ifstretchrigidcolumns\vsize\else\scratchdimen\fi
- \fi
- {\unvbox\scratchbox}%
- \wd\scratchbox\hsize
- \box\scratchbox
- \hfill}%
- \hfillneg}%
- \ifvoid\rigidcolumnbox\exitloop\else\advance\scratchdimen\lineheight\fi}%
- \iftightrigidcolumns
- \setbox\scratchbox\normalhbox{\raise\dp\scratchbox\box\scratchbox}%
- \else
- \advance\scratchdimen -\openstrutdepth
- \setbox\scratchbox\normalhbox{\raise\scratchdimen\box\scratchbox}%
- \dp\scratchbox\openstrutdepth
- \ht\scratchbox\scratchdimen
- \fi
- \box\scratchbox}%
- \fi}
-
-%D \macros
-%D {startvboxtohbox,stopvboxtohbox,convertvboxtohbox}
-%D
-%D Here is another of Knuth's dirty tricks, as presented on
-%D pages 398 and 399 of the \TEX book. These macros can be used
-%D like:
-%D
-%D \starttyping
-%D \normalvbox
-%D \bgroup
-%D \startvboxtohbox ... \stopvboxtohbox
-%D \startvboxtohbox ... \stopvboxtohbox
-%D \startvboxtohbox ... \stopvboxtohbox
-%D \egroup
-%D
-%D \normalvbox
-%D \bgroup
-%D \convertvboxtohbox
-%D \egroup
-%D \stoptyping
-%D
-%D These macros are used in reformatting footnotes, so they do
-%D what they're meant for.
-
-\def\setvboxtohbox
- {\bgroup
- \ifdim\baselineskip<16pt \relax
- \scratchdimen\baselineskip
- \multiply\scratchdimen 1024
- \else
- \message{cropping \baselineskip to 16pt}%
- \scratchdimen\maxdimen
- \fi
- \divide\scratchdimen \hsize
- \multiply\scratchdimen 64
- \xdef\normalvboxtohboxfactor{\withoutpt\the\scratchdimen}%
- \egroup}
-
-\def\startvboxtohbox
- {\bgroup
- \setvboxtohbox
- \setbox\scratchbox\normalhbox\bgroup}
-
-\def\stopvboxtohbox
- {\egroup
- \dp\scratchbox\zeropoint
- \ht\scratchbox\normalvboxtohboxfactor\wd\scratchbox
- \box\scratchbox
- \egroup}
-
-% % to be done: start halfway a line combined with one line
-% % extra to start with (skip) and one line less than counted.
-%
-% \def\stopvboxtohbox%
-% {\egroup
-% \setbox2=\normalvbox
-% {\forgetall\unhcopy0\par\xdef\globalvhlines{\the\prevgraf}}%
-% \setbox2=\normalvbox
-% {\unvbox2
-% \setbox2=\lastbox
-% \setbox2=\normalhbox{\unhbox2}%
-% \xdef\globalvhwidth{\the\wd2}}%
-% \decrement\globalvhlines
-% \dimen0=\globalvhwidth
-% \dimen0=\normalvboxtohboxfactor\dimen0
-% \advance\dimen0 by \globalvhlines\lineheight
-% \dp0=\zeropoint
-% \ht0=\dimen0
-% %\writestatus{guessed size}
-% % {w:\the\wd0\space\space
-% % b:\the\baselineskip\space
-% % l:\globalvhlines\space
-% % e:\globalvhwidth\space
-% % h:\the\dimen0}%
-% \box0
-% \egroup}
-
-% todo: \scratchbox
-
-\def\convertvboxtohbox
- {\setvboxtohbox
- \makehboxofhboxes
- \setbox0\normalhbox{\unhbox0 \removehboxes}%
- \noindent\unhbox0\par}
-
-\def\makehboxofhboxes
- {\setbox0\normalhbox{}%
- \loop % \doloop { .. \exitloop .. }
- \setbox2\lastbox
- \ifhbox2
- \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
- {\removehboxes}\unhbox0
- \fi}
-
-%D \macros
-%D {unhhbox}
-%D
-%D The next macro is used in typesetting inline headings.
-%D Let's first look at the macro and then show an example.
-
-\newbox \unhhedbox
-\newbox \hhbox
-\newdimen \lasthhboxwidth
-\newskip \hhboxindent
-
-\def\unhhbox#1\with#2%
- {\bgroup
- \nopenalties
- \dontcomplain
- \forgetall
- \setbox\unhhedbox\normalvbox{\hskip\hhboxindent\strut\unhbox#1}% => \hsize
- \doloop
- {\setbox\hhbox\vsplit\unhhedbox to \lineheight
- \ifvoid\unhhedbox
- \setbox\hhbox\normalhbox{\strut\normalhboxofvbox\hhbox}%
- \fi
- \ht\hhbox\strutht
- \dp\hhbox\strutdp
- \ifzeropt\hhboxindent\else % \ifdim\hhboxindent=\zeropoint\else
- \setbox\hhbox\normalhbox{\hskip-\hhboxindent\box\hhbox}%
- \hhboxindent\zeropoint
- \fi
- \global\lasthhboxwidth\wd\hhbox
- #2\relax
- \ifvoid\unhhedbox
- \exitloop
- \else
- \hskip\zeropoint \!!plus \zeropoint
- \fi}%
- \egroup}
-
-\def\dohboxofvbox
- {\setbox0\normalvbox{\unvbox\scratchcounter\global\setbox1\lastbox}%
- \unhbox1
- \egroup}
-
-\def\normalhboxofvbox
- {\bgroup
- \afterassignment\dohboxofvbox
- \scratchcounter=}
-
-%D This macro can be used to break a paragraph apart and treat
-%D each line seperately, for instance, making it clickable. The
-%D main complication is that we want to be able to continue the
-%D paragraph, something that's needed in the in line section
-%D headers.
-%D
-%D \startbuffer
-%D \setbox0=\normalhbox{\input tufte \relax}
-%D \setbox2=\normalhbox{\input knuth \relax}
-%D \unhhbox0\with{\ruledhbox{\box\hhbox}}
-%D \hskip1em plus 1em minus 1em
-%D \hhboxindent=\lasthhboxwidth
-%D \advance\hhboxindent by \lastskip
-%D \unhhbox2\with{\ruledhbox{\box\hhbox}}
-%D \stopbuffer
-%D
-%D \getbuffer
-%D
-%D This piece of text was typeset by saying:
-%D
-%D \typebuffer
-%D
-%D Not that nice a definition, but effective. Note the stretch
-%D we've build in the line that connects the two paragraphs.
-
-%D \macros
-%D {doifcontent}
-%D
-%D When processing depends on the availability of content, one
-%D can give the next macro a try.
-%D
-%D \starttyping
-%D \doifcontent{pre content}{post content}{no content}\somebox
-%D \stoptyping
-%D
-%D Where \type{\somebox} is either a \type{\normalhbox} or
-%D \type{\normalvbox}. If the dimension of this box suggest some
-%D content, the resulting box is unboxed and surrounded by the
-%D first two arguments, else the third arguments is executed.
-
-\unexpanded\def\doifcontent#1#2#3%
- {\dowithnextbox
- {\ifhbox\nextbox
- \ifdim\nextboxwd>\zeropoint
- #1\unhbox\nextbox#2\relax
- \else
- #3\relax
- \fi
- \else
- \ifdim\nextboxht>\zeropoint
- #1\unvbox\nextbox#2\relax
- \else
- #3\relax
- \fi
- \fi}}
-
-%D So when we say:
-%D
-%D \startbuffer
-%D \doifcontent{[}{]}{}\normalhbox{content sensitive typesetting}
-%D
-%D \doifcontent{}{\page}{}\normalvbox{content sensitive typesetting}
-%D
-%D \doifcontent{}{}{\message{Didn't you forget something?}}\normalhbox{}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D We get:
-%D
-%D \getbuffer
-%D
-%D Where the last call of course does not show up in this
-%D document, but definitely generates a confusing message.
-
-%D \macros
-%D {processboxes}
-%D
-%D The next macro gobble boxes and is for instance used for
-%D overlays. First we show the general handler.
-
-\newbox\processbox
-
-\def\processboxes#1%
- {\bgroup
- \def\doprocessbox{#1}% #1 can be redefined halfway
- \resetbox\processbox
- \afterassignment\dogetprocessbox\let\next=}
-
-\def\endprocessboxes
- {\ifhmode\unskip\fi
- \box\processbox
- \next
- \egroup}
-
-\def\dogetprocessbox
- {\ifx\next\bgroup
- \expandafter\dodogetprocessbox
- \else
- \expandafter\endprocessboxes
- \fi}
-
-\def\dodogetprocessbox
- {\dowithnextbox
- {\ifhmode\unskip\fi\doprocessbox % takes \nextbox makes \processbox
- \afterassignment\dogetprocessbox\let\next=}
- \normalhbox\bgroup}
-
-%D \macros
-%D {startoverlay}
-%D
-%D We can overlay boxes by saying:
-%D
-%D \startbuffer
-%D \startoverlay
-%D {\framed{hans}}
-%D {\framed[width=3cm]{ton}}
-%D {\framed[height=2cm]{oeps}}
-%D \stopoverlay
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D shows up as:
-%D
-%D \leavevmode\getbuffer
-
-% \def\dooverlaybox%
-% {\ifhmode\unskip\fi
-% \ifdim\nextboxht>\ht\processbox
-% \setbox\processbox\normalvbox to \nextboxht
-% {\vss\box\processbox\vss}%
-% \else
-% \setbox\nextbox\normalvbox to \ht\processbox
-% {\vss\flushnextbox\vss}%
-% \fi
-% \scratchdimen=\wd
-% \ifdim\nextboxwd>\wd\processbox
-% \nextbox
-% \else
-% \processbox
-% \fi
-% \setbox\processbox=\normalhbox to \scratchdimen
-% {\normalhbox to \scratchdimen{\hss\box\processbox\hss}%
-% \hskip-\scratchdimen
-% \normalhbox to \scratchdimen{\hss\flushnextbox\hss}}}
-%
-% \def\startoverlay%
-% {\bgroup
-% \let\stopoverlay\egroup
-% \processboxes\dooverlaybox}
-
-\def\dooverlaybox
- {\ifhmode\unskip\fi
- \scratchdimen\dp
- \ifdim\nextboxdp>\dp\processbox
- \nextbox
- \else
- \processbox
- \fi
- \ifdim\nextboxht>\ht\processbox
- \setbox\processbox\normalvbox to \nextboxht
- {\dp\processbox\zeropoint\vss\box\processbox\vss}%
- \else
- \setbox\nextbox\normalvbox to \ht\processbox
- {\nextboxdp\zeropoint\vss\flushnextbox\vss}%
- \fi
- \nextboxdp\scratchdimen
- \dp\processbox\scratchdimen
- \scratchdimen\wd
- \ifdim\nextboxwd>\wd\processbox
- \nextbox
- \else
- \processbox
- \fi
- \setbox\processbox\normalhbox to \scratchdimen
- {\normalhbox to \scratchdimen{\hss\box\processbox\hss}%
- \hskip-\scratchdimen
- \normalhbox to \scratchdimen{\hss\flushnextbox\hss}}}
-
-\unexpanded\def\startoverlay
- {\bgroup
- \let\stopoverlay\egroup
- \processboxes\dooverlaybox}
-
-\let\stopoverlay\relax
-
-% %D \macros
-% %D {starthspread}
-% %D
-% %D In a similar way we can build a horizontal box, spread
-% %D over the available width.
-% %D
-% %D \startbuffer
-% %D \starthspread
-% %D {hans}
-% %D {ton}
-% %D {oeps}
-% %D \stophspread
-% %D
-% %D \stopbuffer
-% %D
-% %D \typebuffer
-% %D
-% %D shows up as:
-% %D
-% %D \leavevmode\getbuffer
-%
-% \def\dohspread
-% {\flushnextbox
-% \def\dohspread{\hfil\flushnextbox}}
-%
-% \def\starthspread
-% {\normalhbox to \hsize \bgroup
-% \let\stophspread\egroup
-% \processboxes\dohspread}
-
-%D \macros
-%D {fakebox}
-%D
-%D The next macro is a rather silly one, but saves space.
-%D
-%D \starttyping
-%D \normalhbox{\fakebox0}
-%D \stoptyping
-%D
-%D returns an empty box with the dimensions of the box
-%D specified, here being zero.
-
-\def\dofakebox
- {\setbox\scratchbox\null
- \wd\scratchbox\wd\scratchcounter
- \ht\scratchbox\ht\scratchcounter
- \dp\scratchbox\dp\scratchcounter
- \ifhbox\scratchcounter\normalhbox\else\normalvbox\fi{\box\scratchbox}%
- \egroup}
-
-\def\fakebox
- {\bgroup
- \afterassignment\dofakebox\scratchcounter}
-
-%D \macros
-%D {lbox,rbox,cbox,tbox,bbox}
-%D
-%D Here are some convenient alternative box types:
-%D
-%D \starttyping
-%D \lbox{text ...}
-%D \cbox{text ...}
-%D \rbox{text ...}
-%D \stoptyping
-%D
-%D Are similar to \type {\normalvbox}, which means that they also
-%D accept something like \type{to 3cm}, but align to the left,
-%D middle and right. These box types can be used to typeset
-%D paragraphs.
-
-\def\lbox{\makelrcbox\normalvbox\raggedleft}
-\def\cbox{\makelrcbox\normalvbox\raggedcenter}
-\def\rbox{\makelrcbox\normalvbox\raggedright}
-
-\def\ltop{\makelrcbox\normalvtop\raggedleft}
-\def\ctop{\makelrcbox\normalvtop\raggedcenter}
-\def\rtop{\makelrcbox\normalvtop\raggedright}
-
-\def\makelrcbox#1#2#3#%
- {#1#3\bgroup \forgetall \let\\=\endgraf #2\let\next=}
-
-%D The alternatives \type {\tbox} and \type {\bbox} can be used
-%D to properly align boxes, like in:
-%D
-%D \setupexternalfigures[directory={../sample}]
-%D \startbuffer
-%D \starttable[|||]
-%D \HL
-%D \VL \tbox{\externalfigure[cow][height=3cm,frame=on]} \VL top aligned \VL\SR
-%D \HL
-%D \VL \bbox{\externalfigure[cow][height=3cm,frame=on]} \VL bottom aligned \VL\SR
-%D \HL
-%D \stoptable
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D The positioning depends on the strut settings:
-%D
-%D \getbuffer
-
-\def\tbox{\tbbox\ht\dp}
-\def\bbox{\tbbox\dp\ht}
-
-\def\tbbox#1#2%
- {\normalhbox\bgroup
- \dowithnextbox
- {\scratchdimen\nextboxht
- \advance\scratchdimen\nextboxdp
- \advance\scratchdimen-#1\strutbox
- #1\nextbox#1\strutbox
- #2\nextbox\scratchdimen
- \setbox\nextbox\normalhbox
- {\lower\nextboxdp\flushnextbox}%
- #1\nextbox#1\strutbox
- #2\nextbox\scratchdimen
- \flushnextbox
- \egroup}
- \normalhbox}
-
-%D \macros
-%D {lhbox,mhbox,rhbox}
-%D
-%D A few more boxes.
-
-\def\dodolhbox{\normalhbox to \hsize{\flushnextbox\hss }}
-\def\dodomhbox{\normalhbox to \hsize{\hss\flushnextbox\hss}}
-\def\dodorhbox{\normalhbox to \hsize{\hss\flushnextbox }}
-
-\def\lhbox{\dowithnextboxcs\dodolhbox\normalhbox}
-\def\mhbox{\dowithnextboxcs\dodomhbox\normalhbox}
-\def\rhbox{\dowithnextboxcs\dodorhbox\normalhbox}
-
-\let\lefthbox \lhbox
-\let\midhbox \mhbox
-\let\righthbox\rhbox
-
-%D \macros
-%D {boxofsize}
-%D
-%D Sometimes we need to construct a box with a height or
-%D width made up of several dimensions. Instead of cumbersome
-%D additions, we can use:
-%D
-%D \starttyping
-%D \boxofsize \normalvbox 10cm 3cm -5cm {the text to be typeset}
-%D \stoptyping
-%D
-%D This example demonstrates that one can use positive and
-%D negative values. Dimension registers are also accepted.
-
-\newdimen\sizeofbox
-
-\def\boxofsize#1%
- {\bgroup
- \sizeofbox\zeropoint
- \scratchdimen\zeropoint
- \def\docommand
- {\advance\sizeofbox\scratchdimen
- \futurelet\next\dodocommand}%
- \def\dodocommand
- {\ifx\next\bgroup
- \expanded{\egroup#1 to \the\sizeofbox}%
- \else
- \@EA\afterassignment\@EA\docommand\@EA\scratchdimen
- \fi}%
- \docommand}
-
-%D Some new, still undocumented features:
-
-% limitatetext -> beter {text} als laatste !!
-%
-% \limitvbox
-% \limithbox
-
-\def\limitatelines#1#2% size sentinel
- {\dowithnextbox
- {\dimen0=#1\hsize
- \ifdim\nextboxwd>\dimen0
- \setbox\nextbox\normalhbox
- {\advance\dimen0 -.1\hsize
- \limitatetext{\unhbox\nextbox}{\dimen0}{\nobreak#2}}%
- \fi
- \unhbox\nextbox}
- \normalhbox}
-
-\def\fittoptobaselinegrid % weg hier
- {\dowithnextbox
- {\bgroup
- \par
- \dimen0\nextboxht
- \nextboxht\strutht
- \nextboxdp\strutdp
- \normalhbox{\flushnextbox}
- \prevdepth\strutdp
- \doloop
- {\advance\dimen0 -\lineheight
- \ifdim\dimen0<\zeropoint
- \exitloop
- \else
- \nobreak
- \normalhbox{\strut}
- \fi}
- \egroup}
- \normalvbox}
-
-%D Some more undocumented macros (used in m-chart).
-
-\newif\iftraceboxplacement % \traceboxplacementtrue
-
-\newbox\fakedboxcursor
-
-\setbox\fakedboxcursor\normalhbox
- {\vrule\!!width\zeropoint\!!height\zeropoint\!!depth\zeropoint}
-
-\def\boxcursor % overloaded in core-vis
- {\iftraceboxplacement
- \bgroup
- \scratchdimen2pt
- \setbox\scratchbox\normalhbox to \zeropoint
- {\hss
- \vrule
- \!!width \scratchdimen
- \!!height\scratchdimen
- \!!depth \scratchdimen
- \hss}%
- \smashedbox\scratchbox
- \egroup
- \else
- \copy\fakedboxcursor
- \fi}
-
-\def\placedbox
- {\iftraceboxplacement\ruledhbox\else\normalhbox\fi}
-
-\newdimen\boxoffset
-\newdimen\boxhdisplacement
-\newdimen\boxvdisplacement
-
-%\def\rightbox#1%
-% {\normalhbox
-% {\setbox0=\placedbox{#1}%
-% \dimen0=.5\ht0\advance\dimen0 -.5\dp0
-% \boxcursor\hskip\boxoffset\lower\dimen0\box0}}
-
-\def\rightbox#1%
- {\normalhbox
- {\setbox0\placedbox{#1}%
- \global\boxhdisplacement\boxoffset
- \global\boxvdisplacement.5\ht0
- \global\advance\boxvdisplacement-.5\dp0
- \boxcursor\hskip\boxhdisplacement\lower\boxvdisplacement\box0}}
-
-%\def\leftbox#1%
-% {\normalhbox
-% {\setbox0=\placedbox{#1}%
-% \dimen0=.5\ht0\advance\dimen0 -.5\dp0
-% \boxcursor\hskip-\wd0\hskip-\boxoffset\lower\dimen0\box0}}
-
-\def\leftbox#1%
- {\normalhbox
- {\setbox0\placedbox{#1}%
- \global\boxhdisplacement-\wd0
- \global\advance\boxhdisplacement-\boxoffset
- \global\boxvdisplacement.5\ht0
- \global\advance\boxvdisplacement-.5\dp0
- \boxcursor\hskip\boxhdisplacement\lower\boxvdisplacement\box0}}
-
-%\def\topbox#1%
-% {\normalhbox
-% {\setbox0=\placedbox{#1}%
-% \dimen0=\boxoffset\advance\dimen0 \dp0
-% \boxcursor\hskip-.5\wd0\raise\dimen0\box0}}
-
-\def\topbox#1%
- {\normalhbox
- {\setbox0\placedbox{#1}%
- \global\boxhdisplacement-.5\wd0
- \global\boxvdisplacement-\dp0
- \global\advance\boxvdisplacement-\boxoffset
- \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
-
-%\def\bottombox#1%
-% {\normalhbox
-% {\setbox0=\placedbox{#1}%
-% \dimen0=\boxoffset\advance\dimen0 \ht0
-% \boxcursor\hskip-.5\wd0\lower\dimen0\box0}}
-
-\def\bottombox#1%
- {\normalhbox
- {\setbox0\placedbox{#1}%
- \global\boxhdisplacement-.5\wd0
- \global\boxvdisplacement\ht0
- \global\advance\boxvdisplacement\boxoffset
- \boxcursor\hskip\boxhdisplacement\lower\boxvdisplacement\box0}}
-
-%\def\lefttopbox#1%
-% {\normalhbox
-% {\setbox0=\placedbox{#1}%
-% \dimen0=\boxoffset\advance\dimen0 \dp0
-% \advance\boxoffset\wd0
-% \boxcursor\hskip-\boxoffset\raise\dimen0\box0}}
-
-\def\lefttopbox#1%
- {\normalhbox
- {\setbox0\placedbox{#1}%
- \global\boxhdisplacement-\wd0
- \global\advance\boxhdisplacement-\boxoffset
- \global\boxvdisplacement-\dp0
- \global\advance\boxvdisplacement-\boxoffset
- \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
-
-%\def\righttopbox#1%
-% {\normalhbox
-% {\setbox0=\placedbox{#1}%
-% \dimen0=\boxoffset\advance\dimen0 \dp0
-% \boxcursor\hskip\boxoffset\raise\dimen0\box0}}
-
-\def\righttopbox#1%
- {\normalhbox
- {\setbox0\placedbox{#1}%
- \global\boxhdisplacement\boxoffset
- \global\boxvdisplacement-\dp0
- \global\advance\boxvdisplacement-\boxoffset
- \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
-
-%\def\leftbottombox#1%
-% {\normalhbox
-% {\setbox0=\placedbox{#1}%
-% \dimen0=\boxoffset\advance\dimen0 \ht0
-% \advance\boxoffset\wd0
-% \boxcursor\hskip-\boxoffset\lower\dimen0\box0}}
-
-\def\leftbottombox#1%
- {\normalhbox
- {\setbox0\placedbox{#1}%
- \global\boxhdisplacement-\wd0
- \global\advance\boxhdisplacement-\boxoffset
- \global\boxvdisplacement\ht0
- \global\advance\boxvdisplacement\boxoffset
- \boxcursor\hskip\boxhdisplacement\lower\boxvdisplacement\box0}}
-
-%\def\rightbottombox#1%
-% {\normalhbox
-% {\setbox0=\placedbox{#1}%
-% \dimen0=\boxoffset\advance\dimen0 \ht0
-% \boxcursor\hskip\boxoffset\lower\dimen0\box0}}
-
-\def\rightbottombox#1%
- {\normalhbox
- {\setbox0\placedbox{#1}%
- \global\boxhdisplacement\boxoffset
- \global\boxvdisplacement\ht0
- \global\advance\boxvdisplacement\boxoffset
- \boxcursor\hskip\boxhdisplacement\lower\boxvdisplacement\box0}}
-
-\let\topleftbox \lefttopbox
-\let\toprightbox \righttopbox
-\let\bottomleftbox \leftbottombox
-\let\bottomrightbox\rightbottombox
-
-\def\middlebox#1%
- {\normalhbox{\setbox0\placedbox{#1}\boxoffset=-.5\wd0\rightbox{\box0}}}
-
-\def\baselinemiddlebox#1%
- {\normalhbox
- {\setbox0\placedbox{#1}%
- \global\boxhdisplacement-.5\wd0
- \global\advance\boxhdisplacement-\boxoffset
- \global\boxvdisplacement-\boxoffset
- \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
-
-\def\baselineleftbox#1%
- {\normalhbox
- {\setbox0\placedbox{#1}%
- \global\boxhdisplacement-\wd0
- \global\advance\boxhdisplacement-\boxoffset
- \global\boxvdisplacement-\boxoffset
- \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
-
-\def\baselinerightbox#1%
- {\normalhbox
- {\setbox0\placedbox{#1}%
- \global\boxhdisplacement\boxoffset
- \global\boxvdisplacement-\boxoffset
- \boxcursor\hskip\boxhdisplacement\raise-\boxvdisplacement\box0}}
-
-%D \macros
-%D {obox}
-%D
-%D Experimental, not yet frozen:
-
-\def\lrtbbox#1#2#3#4% l r t b
- {\bgroup
- \dowithnextboxcontent
- {\advance\hsize-#1\advance\hsize-#2\advance\vsize-#3\advance\vsize-#4\relax}
- {\forgetall\vbox to \vsize{\vskip#3\hbox to \hsize{\hskip#1\box\nextbox\hss}\vss}\egroup}
- \vbox}
-
-%D \macros
-%D {toplinebox}
-%D
-%D See core-tbl.tex for an example of its usage:
-
-\def\toplinebox
- {\dowithnextbox
- {\ifdim\nextboxdp>\strutdepth
- \scratchdimen\nextboxdp
- \advance\scratchdimen-\strutdepth
- \getnoflines\scratchdimen
- \struttedbox{\flushnextbox}%
- \dorecurse\noflines\verticalstrut
- \else
- \flushnextbox
- \fi}%
- \tbox}
-
-%D \macros
-%D {initializeboxstack,savebox,foundbox}
-%D
-%D At the cost of some memory, but saving box registers, we
-%D have implemented a box repository.
-%D
-%D \starttyping
-%D \initializeboxstack{one}
-%D
-%D \savebox{one}{a}{test a}
-%D \savebox{one}{p}{test p}
-%D \savebox{one}{q}{test q}
-%D
-%D \normalhbox{a:\foundbox{one}{a}} \par
-%D \normalhbox{q:\foundbox{one}{q}} \par
-%D \normalhbox{p:\foundbox{one}{p}} \par
-%D \normalhbox{x:\foundbox{one}{x}} \par
-%D \normalhbox{y:\foundbox{two}{a}} \par
-%D \stoptyping
-
-% we keep it around as a demonstration of good old tex code:
-%
-% \def\@@stackbox{boxstack:b:}
-% \def\@@stackmax{boxstack:m:}
-% \def\@@stacktag{boxstack:t:}
-% \def\@@stacklst{boxstack:l:}
-%
-% \def\initializeboxstack#1%
-% {\ifundefined{\@@stackbox#1}%
-% \@EA\newbox\csname\@@stackbox#1\endcsname
-% \else
-% \global\setbox\csname\@@stackbox#1\endcsname\normalvbox{}%
-% \def\docommand##1{\global\letbeundefined{\@@stacktag#1:##1}}%
-% \processcommacommand[\getvalue{\@@stacklst#1}]\docommand
-% \fi
-% \global\letvalue{\@@stacklst#1}\empty
-% \global\letvalue{\@@stackmax#1}\!!zeropoint}
-%
-% \def\savebox#1#2% stack name
-% {\dowithnextbox
-% {\doifdefined{\@@stackbox#1}
-% {\@EA\doglobal\@EA\increment\csname\@@stackmax#1\endcsname
-% \setxvalue{\@@stacktag#1:#2}{\csname\@@stackmax#1\endcsname}%
-% \setxvalue{\@@stacklst#1}{\getvalue{\@@stacklst#1},#2}%
-% \global\setbox\csname\@@stackbox#1\endcsname\normalvbox
-% {\forgetall
-% \setbox\scratchbox\normalvbox{\flushnextbox}
-% \ht\scratchbox\onepoint
-% \dp\scratchbox\zeropoint
-% \unvbox\csname\@@stackbox#1\endcsname
-% \offinterlineskip
-% \allowbreak
-% \box\scratchbox}}}%
-% \normalvbox}
-%
-% \def\foundbox#1#2%
-% {\normalvbox
-% {\doifdefined{\@@stackbox#1}
-% {\doifdefined{\@@stacktag#1:#2}
-% {\setbox\scratchbox\normalvbox
-% {\splittopskip\zeropoint
-% \setbox0\copy\csname\@@stackbox#1\endcsname
-% \dimen0=\getvalue{\@@stacktag#1:#2}\points
-% \advance\dimen0 -\onepoint
-% \setbox2\vsplit0 to \dimen0
-% \ifdim\ht0>\onepoint
-% \setbox0\vsplit0 to \onepoint
-% \fi
-% \unvbox0\setbox0\lastbox\unvbox0}%
-% \unvbox\scratchbox}}}}
-%
-% \def\doifboxelse#1#2%
-% {\doifdefinedelse{\@@stacktag#1:#2}}
-
-\def\@@stackbox{@box@}
-\def\@@stacklst{@xob@}
-
-\def\setstackbox#1#2%
- {\ifcsname\@@stackbox:#1:#2\endcsname\else
- \expandafter\newbox\csname\@@stackbox:#1:#2\endcsname
- \fi
- \global\setbox\csname\@@stackbox:#1:#2\endcsname\normalvbox}
-
-\def\initializeboxstack#1%
- {\def\docommand##1{\setstackbox{#1}{##1}{}}%
- \ifcsname\@@stacklst#1\endcsname
- \processcommacommand[\getvalue{\@@stacklst#1}]\docommand
- \fi
- \global\letvalue{\@@stacklst#1}\empty}
-
-\def\savebox#1#2% stack name
- {% beware, \setxvalue defines the cs beforehand so we cannot use the
- % test inside the { }
- \ifcsname\@@stacklst#1\endcsname
- \setxvalue{\@@stacklst#1}{\csname\@@stacklst#1\endcsname,#2}%
- \else
- \setxvalue{\@@stacklst#1}{#2}%
- \fi
- \setstackbox{#1}{#2}}
-
-\def\foundbox#1#2%
- {\normalvbox
- {\ifcsname\@@stackbox:#1:#2\endcsname
- \copy\csname\@@stackbox:#1:#2\endcsname
- \fi}}
-
-\long\def\doifboxelse#1#2#3#4%
- {\ifcsname\@@stackbox:#1:#2\endcsname
- \ifvoid\csname\@@stackbox:#1:#2\endcsname#4\else#3\fi
- \else
- #4%
- \fi}
-
-%D \macros
-%D {removedepth, obeydepth}
-%D
-%D While \type {\removedepth} removes the preceding depth,
-%D \type {\obeydepth} makes sure we have depth. Both macros
-%D leave the \type {\prevdepth} untouched.
-
-\def\removedepth
- {\ifvmode \ifdim\prevdepth>\zeropoint \kern-\prevdepth \fi \fi}
-
-\def\obeydepth
- {\par \removedepth \ifvmode \kern\strutdp \fi}
-
-\def\undepthed
- {\dowithnextbox{\nextboxdp\zeropoint\flushnextbox}\hbox}
-
-%D \macros
-%D {removebottomthings, removelastskip}
-%D
-%D A funny (but rather stupid) one, plus a redefinition.
-
-\def\removebottomthings
- {\dorecurse5{\unskip\unkern\unpenalty}}
-
-\def\removelastskip % \ifvmode the plain tex one \fi
-% {\ifvmode\ifdim\lastskip=\zeropoint\else\vskip-\lastskip\fi\fi}
- {\ifvmode\ifzeropt\lastskip\else\vskip-\lastskip\fi\fi}
-
-%D \macros
-%D {makestrutofbox}
-%D
-%D This macro sets the dimensions of a box to those of a
-%D strut.
-
-\def\domakestrutofbox
- {\ht\registercount\strutht
- \dp\registercount\strutdp
- \wd\registercount\zeropoint}
-
-\def\makestrutofbox
- {\afterassignment\domakestrutofbox\registercount}
-
-%D \macros
-%D {raisebox,lowerbox}
-%D
-%D Some more box stuff, related to positioning (under
-%D construction). Nice stuff for a tips and tricks maps
-%D article.
-%D
-%D \starttyping
-%D \raisebox{100pt}\normalhbox{test}
-%D \raisebox50pt\normalhbox{test}
-%D \hsmash{\raisebox{100pt}\normalhbox{test}}
-%D \stoptyping
-
-\def\doraiselowerbox#1#2% a nice trick us used to accept
- {\def\next % both direct and {} dimensions
- {\dowithnextbox
- {\setbox\nextbox\normalhbox{#1\scratchdimen\flushnextbox}%
- \nextboxht\strutht
- \nextboxdp\strutdp
- \flushnextbox}}%
- \afterassignment\next\scratchdimen=#2}
-
-\def\raisebox{\doraiselowerbox\raise}
-\def\lowerbox{\doraiselowerbox\lower}
-
-% maybe some day we need this
-%
-% \def\appendvbox#1% % uses \box8
-% {\bgroup
-% \ifdim\prevdepth<\zeropoint
-% \ifdim\pagetotal=\zeropoint
-% \setbox8=\normalvtop{\unvcopy#1}%
-% \hrule\c!!height\zeropoint
-% \kern-\ht8
-% \box#1\relax
-% \else
-% \box#1\relax
-% \fi
-% \else
-% \dimen0=\prevdepth
-% \hrule\c!!height\zeropoint
-% \setbox8=\normalvtop{\unvcopy#1}%
-% \dimen2=\baselineskip
-% \advance\dimen2 by -\dimen0
-% \advance\dimen2 by -\ht8
-% \kern\dimen2
-% \box#1\relax
-% \fi
-% \egroup}
-
-% %D Also new:
-% %D
-% %D \startbuffer
-% %D \normbox[1cm][bba]{m} % b(efore) a(fter) v(box) s(trut) f(rame)
-% %D \normbox[1cm][bba]{m}
-% %D \normbox[1cm][bba]{m}
-% %D \stopbuffer
-% %D
-% %D \typebuffer
-% %D \getbuffer
-%
-% \def\dodonormbox#1#2#3#4#5#6#7%
-% {\doifnumberelse{#1}
-% {\dimen0=#1}{\setbox0=#3{#1}\dimen0=#50}%
-% \doifinstringelse{f}{#2}
-% {\let\next#4}{\let\next#3}%
-% \next to \dimen0
-% {\counttoken b\in#2\to\!!counta\dorecurse{\!!counta}{#6}#6%
-% #7\nextbox
-% \counttoken a\in#2\to\!!counta\dorecurse{\!!counta}{#6}#6}}
-%
-% \def\donormbox[#1][#2]%
-% {\bgroup
-% \doifinstringelse{v}{#2}
-% {\let\next\normalvbox}
-% {\let\next\normalhbox}%
-% \dowithnextbox
-% {\ifvbox\nextbox
-% \let\\=\par
-% \dodonormbox{#1}{#2}\normalvbox\ruledvbox\ht\vfil\unvbox
-% \else
-% \let\\=\space
-% \dodonormbox{#1}{#2}\normalhbox\ruledhbox\wd\hfil\unhbox
-% \fi
-% \egroup}%
-% \next}
-%
-% \def\normbox
-% {\dodoubleempty\donormbox}
-
-% vcenter in text, we kunnen vcenter overloaden
-
-\def\halfwaybox
- {\dowithnextbox
- {\nextboxdp\zeropoint
- \setbox\nextbox\normalhbox{\lower.5\nextboxht\flushnextbox}%
- \flushnextbox}
- \normalhbox}
-
-%D New:
-
-\def\setdimentoatleast#1#2%
- {\ifdim#1>\zeropoint\else#1=#2\fi}
-
-%D And even rawer:
-
-\let\naturalhbox \normalhbox
-\let\naturalvbox \normalvbox
-\let\naturalvtop \normalvtop
-\let\naturalvcenter \normalvtop
-
-\ifdefined\textdir
-
- \def\naturalhbox{\normalhbox dir TLT}
- \def\naturalvbox{\normalvbox dir TLT}
- %def\naturalvtop{\normalvtop dir TLT}
-
-\fi
-
-%D \macros
-%D {vcenter}
-%D
-%D Also new: tex mode \type {\vcenter}.
-
-\let\verynormalvcenter \vcenter % since \vcenter can be visualized
-
-\def\vcenter
- {\normalvbox\bgroup
- \dowithnextbox{\normalhbox{$\verynormalvcenter{\flushnextbox}$}\egroup}
- \normalvbox}
-
-% could be \everymathematics
-
-\prependtoks \let\vcenter\normalvcenter \to \everymath
-\prependtoks \let\vcenter\normalvcenter \to \everydisplay
-
-%D \macros
-%D {frozenhbox}
-%D
-%D A not so well unhboxable bxo can be made with:
-
-\def\frozenhbox
- {\hbox\bgroup\dowithnextbox{\hbox{\hbox{\flushnextbox}}\egroup}\hbox}
-
-%D \macros
-%D {setboxllx,setboxlly,gsetboxllx,gsetboxlly,getboxllx,getboxlly}
-%D
-%D A prelude to an extended \TEX:
-
-% \def\setboxllx #1#2{\bgroup\scratchdimen#2\expanded{\egroup\noexpand\setevalue{b@@x\number#1}{\the\scratchdimen}}}
-% \def\setboxlly #1#2{\bgroup\scratchdimen#2\expanded{\egroup\noexpand\setevalue{b@@y\number#1}{\the\scratchdimen}}}
-%
-% \def\gsetboxllx#1#2{\bgroup\scratchdimen#2\setxvalue{b@@x\number#1}{\the\scratchdimen}\egroup}
-% \def\gsetboxlly#1#2{\bgroup\scratchdimen#2\setxvalue{b@@y\number#1}{\the\scratchdimen}\egroup}
-
-\def\setboxllx#1#2{\setevalue{b@@x\number#1}{\the\dimexpr#2\relax}}
-\def\setboxlly#1#2{\setevalue{b@@y\number#1}{\the\dimexpr#2\relax}}
-
-\def\gsetboxllx{\global\setboxllx}
-\def\gsetboxlly{\global\setboxlly}
-
-\def\getboxllx#1{\executeifdefined{b@@x\number#1}\zeropoint}
-\def\getboxlly#1{\executeifdefined{b@@y\number#1}\zeropoint}
-
-%D \macros
-%D {shownextbox}
-%D
-%D Handy for tracing
-%D
-%D \starttyping
-%D \shownextbox\vbox{test}
-%D \shownextbox\vbox{test\endgraf}
-%D \shownextbox\vbox{test\endgraf\strut\endgraf}
-%D \shownextbox\vbox{test\endgraf\thinrule}
-%D \shownextbox\vbox{\setupwhitespace[big]test\endgraf\thinrule}
-%D \stoptyping
-
-\def\shownextbox
- {\dowithnextbox
- {\bgroup
- \showboxbreadth\maxdimen
- \showboxdepth \maxdimen
- \scratchcounter\interactionmode
- \batchmode
- \showbox\nextbox
- \box\nextbox
- \interactionmode\scratchcounter
- \egroup}}
-
-\def\spreadhbox#1% rebuilds \hbox{<box><hss><box><hss><box>}
- {\bgroup
- \ifhbox#1\relax
- \setbox2\emptybox
- \unhbox#1%
- \doloop
- {\unpenalty\unskip\unpenalty\unskip\unpenalty\unskip
- \setbox0\lastbox
- \ifvoid0
- \exitloop
- \else
- \setbox2\hbox
- {\ifhbox0 \spreadhbox0\else\box0\fi
- \ifvoid2 \else\hss\unhbox2\fi}%
- \fi}%
- \ifvoid2\else\unhbox2\fi
- \else
- \box#1%
- \fi
- \egroup}
-
-% makes sense but too much log for overfull boxes:
-%
-% \showboxbreadth\maxdimen
-% \showboxdepth \maxdimen
-
-\protect \endinput
-
-% a bit of test code:
-
-\hbox \bgroup
- \ruledvbox {\hbox{\strut gans}}
- \ruledvbox to \lineheight {\hbox{\strut gans}}
- \ruledvbox to \lineheight {\hbox {gans}}
- \ruledvbox to \strutheight{\hbox {gans}}
- \ruledvbox to \strutheight{\hbox{\strut gans}}
- \ruledvbox to \strutheight{\vss\hbox{gans}}
-\egroup
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-dir.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-dir.mkii
deleted file mode 100644
index f4f2949035b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-dir.mkii
+++ /dev/null
@@ -1,41 +0,0 @@
-%D \module
-%D [ file=supp-dir,
-%D version=2004.11.11,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=Directional Things,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Inspired by and needed for Adam Lindsay's \XETEX\ efforts:
-%D
-%D \starttyping
-%D \starttext
-%D \input tufte \par
-%D \pardir TRT \input tufte \par \input tufte \par
-%D \pardir TLT \input tufte \par
-%D \stoptext
-%D \stoptyping
-
-\unprotect
-
-\chardef\inlinedirection\zerocount % 0==notset 1==LR 2==RL
-
-\def\pardir#1#2#3% messages end up in a higher level command
- {\global\TeXXeTstate\plusone
- \if#2L\chardef\inlinedirection\plusone\else
- \if#2R\chardef\inlinedirection\plustwo\fi\fi
- \checkinlinedirection} % needed / added
-
-\def\checkinlinedirection
- {\ifcase\inlinedirection\or\beginL\or\beginR\fi}
-
-% see core-ini.tex
-%
-% \appendtoks \checkinlinedirection \to \everypar
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-emp.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-emp.mkii
deleted file mode 100644
index ba9e09e3a4c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-emp.mkii
+++ /dev/null
@@ -1,398 +0,0 @@
-%D \module
-%D [ file=supp-emp,
-%D version=2000.08.09,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=\EMTEX\ specials to \PDF\ conversion,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%M \input supp-emp
-
-%D When \THANH, the author of \PDFTEX, and I were exchanging
-%D some emails on \PDFTEX\ functionality, positional
-%D information popped up as potential extension. Actually, it
-%D did not take that much time to cook up the basic
-%D functionality and the author had implemented it before I
-%D could even start to think about real advanced applications.
-%D
-%D I'm sure that \TEX\ programmers can spend many days on how
-%D and what kind of information is needed if you want to have
-%D access to positions, but since high level macros will
-%D probably be used anyway, even things like multiple reference
-%D points have proved to be rather unimportant at the system
-%D level.
-%D
-%D Therefore, \PDFTEX\ provides just these three primitives:
-%D
-%D \starttabulate[|l|l|]
-%D \NC \type {\pdfsavepos} \NC marks the current position \NC \NR
-%D \NC \type {\pdflastxpos} \NC the last marked horizontal position \NC \NR
-%D \NC \type {\pdflastypos} \NC the last marked vertical position \NC \NR
-%D \stoptabulate
-%D
-%D Based on these three primitives, very advanced systems can
-%D be build, and for some time now, \CONTEXT\ has such a
-%D system in its core. However, not everyone uses \CONTEXT, so
-%D we will demonstrate position tracking in generic applications.
-%D
-%D Because \PDFTEX\ produces its output directly, many of those
-%D nice tricks provided by back||ends by means of \type
-%D {\special} fail when producing \PDF\ code directly. Take for
-%D instance \EMTEX\ specials. When someone sent me a mail
-%D asking if \PDFTEX\ did support those specials, the original
-%D answer was \quotation {no}, but in the last few years I have learned
-%D that you must never underestimate \TEX's capabilities.
-%D
-%D I must admit that I never use those specials myself, but
-%D from the way they were used in the macros I was sent, I
-%D learned that they depend on the back||end's capability to
-%D access the current position. For those who know \TEX\ this
-%D may be bad news, since pure \TEX\ does not provide any
-%D positional information. So in order to use those specials,
-%D you must be sure that they are supported by every driver you
-%D use. However, the good news is that \PDFTEX\ does support
-%D position tracking, so here is our generic example.
-%D
-%D The two \EMTEX\ specials we need to implement are packaged
-%D into the macros \type {\EMmoveto} and \type {\EMlineto},
-%D like:
-%D
-%D \starttyping
-%D \def\EMmoveto{\special{em:moveto}}
-%D \def\EMlineto{\special{em:lineto}}
-%D \stoptyping
-%D
-%D They are used in macro packages to draw lines, and the
-%D results are often boxes with content like the following:
-%D
-%D \startbuffer
-%D \vbox to 2cm
-%D {\offinterlineskip \EMmoveto
-%D \hskip 7cm \EMlineto
-%D \vskip 2cm \EMlineto
-%D \vskip-2cm \EMlineto}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D This box will contain a triangle, and when typeset, it should
-%D look like:
-%D
-%D \startlinecorrection[blank]
-%D \getbuffer
-%D \stoplinecorrection
-
-\def\EMlinewd{.4}
-
-\ifx\dosetpositionpt\undefined % non context part
-
-%D These two macros can be implemented as follows. When moving
-%D to a position, we only have to register the new coordinates.
-%D Once they are known, we use them to draw a line and
-%D afterwards we save these end coordinates as starting point
-%D for the next line segment. So, at each point specified by
-%D \type {\EMlineto} we need to know the coordinates.
-
-\def\EMmoveto
- {\EMgetposition\EMlastmovex\EMlastmovey}
-
-%D The primitives \type {\pdflastxpos} and \type
-%D {\pdflastypos} return a number, representing the $x$ and
-%D $y$ coordinate in scaled points, \TEX's smallest unit of
-%D length. We need to convert this number into base points as
-%D used by \POSTSCRIPT\ and \PDF. When done, we insert some
-%D literal \PDF\ code into the text using \type {\pdfliteral}.
-%D Here, the \type {m} means \quote {moveto}, the \type {l}
-%D means \quote {lineto} and the \type {S} operator \quote
-%D {strokes} (draws) the line. The macro \type {\EMlinewd}
-%D holds the linewidth in basepoints.
-
-\def\EMlineto
- {\bgroup
- \EMgetposition\EMlastlinex\EMlastliney
- \count0=\EMlastmovex \advance\count0 -\EMlastlinex
- \count2=\EMlastmovey \advance\count2 -\EMlastliney
- \divide\count0 65536
- \divide\count2 65536
- \PDFcode{\EMlinewd\space w 0 0 m \the\count0 \space\the\count2 \space l S}%
- \global\let\EMlastmovex\EMlastlinex
- \global\let\EMlastmovey\EMlastliney
- \egroup}
-
-%D We need a fresh start, so we first set the current position
-%D to zero.
-
-\def\resetEMspecials
- {\gdef\EMlastmovex{0}\gdef\EMlastmovey{0}}
-
-%D Next comes the macro that keeps track of the position. The
-%D current position is marked with \type {\pdfsavepos} and its
-%D coordinates are written to a file whenever the page is
-%D shipped out, since \type {\write} postpones its action
-%D until that moment. The file has entries like:
-%D
-%D \starttyping
-%D \EMsetpos 1 4661756 46651918
-%D \EMsetpos 2 5000359 46990521
-%D \EMsetpos 3 4661756 46313315
-%D \EMsetpos 4 5338962 46990521
-%D \EMsetpos 5 4661756 45974712
-%D \stoptyping
-%D
-%D These lines are written with the command:
-%D
-%D \starttyping
-%D \write\EMfile
-%D {\EMsetpos\number\EMcounter
-%D \space\number\pdflastxpos\space\number\pdflastypos}%
-%D \stoptyping
-%D
-%D In reality the argument to \type {\write} looks slightly
-%D more complicated, because we have to make sure that the
-%D number of the current position is frozen and \type
-%D {\EMsetpos} is not expanded. We do so by explicitly
-%D expanding the number beforehand and preventing expansion of
-%D \type {\EMsetpos}.
-
-\def\EMgetposition#1#2%
- {\bgroup
- \pdfsavepos
- \global\advance\EMcounter 1
- \expandafter\write\expandafter\EMfile\expandafter
- {\expandafter\noexpand\expandafter\EMsetpos\number\EMcounter
- \space\number\pdflastxpos\space\number\pdflastypos}%
- \EMsetcounters
- \xdef#1{\the\count0}%
- \xdef#2{\the\count2}%
- \egroup}
-
-%D The counter mentioned a few lines ago needs to be
-%D declared before it can be used.
-
-\newcount\EMcounter
-
-%D We also need a dedicated file slot.
-
-\newwrite\EMfile
-
-%D Before we open the file for writing, we read in the data
-%D written in the previous pass, but only if the file is
-%D present.
-
-\def\EMfilename{\jobname.emp}
-
-\def\startEMspecials%
- {\resetEMspecials
- \openin\scratchread=\EMfilename \relax
- \ifeof\scratchread\else \input \EMfilename \relax \fi
- \closein\scratchread
- \immediate\openout\EMfile=\EMfilename\relax}
-
-\def\stopEMspecials
- {\closeout\EMfile}
-
-%D Just to be sure, we test if \type {\scratchread} is defined,
-%D and if not, we allocate a slot.
-
-\ifx\undefined\scratchread \newread\scratchread \fi
-
-%D This leaves us two commands. The \type {\EMsetpos} command
-%D that ends up in the file stores each position in a macro.
-%D When this macro is expanded, it assigns the coordinates to
-%D two scratch counters.
-
-\def\EMsetpos#1 #2 #3 % number x y
- {\expandafter\xdef\csname EM:#1\endcsname{\count0=#2 \count2=#3}}
-
-%D This position is recalled with its companion macro. First we
-%D set the counters to zero. When the position is unknown,
-%D nothing happens since the \type {\csname...} will expand to
-%D \type {\relax}.
-
-\def\EMsetcounters
- {\count0=0 \count2=0
- \csname EM:\the\EMcounter\endcsname}
-
-%D These macros are rather independent of the macro package you
-%D use. For instance, in \CONTEXT\ the following works well:
-%D
-%D \startbuffer[pos-en]
-%D \setuppositioning[unit=ex]
-%D \startpositioning
-%D \dostepwiserecurse{-10}{10}{1}
-%D {\position(0,\recurselevel){\EMmoveto}
-%D \position(\recurselevel,0){\EMlineto}}
-%D \stoppositioning
-%D \stopbuffer
-%D
-%D \startbuffer[pos-nl]
-%D \setuppositioning[uniteenheid=ex]
-%D \startpositioning
-%D \dostepwiserecurse{-10}{10}{1}
-%D {\position(0,\recurselevel){\EMmoveto}
-%D \position(\recurselevel,0){\EMlineto}}
-%D \stoppositioning
-%D \stopbuffer
-%D
-%D \typebuffer[pos-en]
-%D
-%D Here, we hook the \EMTEX\ macros into an existing text
-%D positioning mechanism, which positions the commands
-%D using \TEX's skips and kerns.
-%D
-%D \startlinecorrection[blank]
-%D \getbuffer[pos-nl]
-%D \stoplinecorrection
-%D
-%D Of course one should start and end the file with:
-%D
-%D \starttyping
-%D \startEMspecials
-%D \stopEMspecials
-%D \stoptyping
-%D
-%D and, if needed, reset the begin position at each page using:
-%D
-%D \starttyping
-%D \resetEMspecials
-%D \stoptyping
-
-\fi % end of non context part
-
-\ifx\dosetpositionpt\undefined \else % context part
-
-% \edef\EMlinewd{\withoutpt\the\linewidth}
-
-%D A few pages ago, we mentioned that \CONTEXT\ has built||in
-%D position tracking. This means that when we want to implement
-%D this kind of trickery in this macro package, we can fall
-%D back on existing functionality. In the following alternative
-%D we will also use a few skips. This keeps the source readable
-%D and \CONTEXT\ has plenty of unused registers to accomodate
-%D this strategy.
-
-\newcount\EMcounter \def\EMvariable{EM:\the\EMcounter}
-
-\newskip \EMlastmovex \newskip \EMlastmovey
-\newskip \EMlastlinex \newskip \EMlastliney
-
-\def\resetEMspecials
- {\global\EMlastmovex=0pt \global\EMlastmovey=\EMlastmovex}
-
-\resetEMspecials \appendtoks\resetEMspecials\to\everyshipout
-
-%D Watch how we reset the specials after a page is flushed. We
-%D don't have to bother about files here, because saving and
-%D recalling is already implemented. Although not needed, we
-%D define the start||stop macros, so that \CONTEXT\ users who
-%D key them in are not confronted with error messages.
-
-\let\startEMspecials\relax \let\stopEMspecials\relax
-
-\def\EMgetposition#1#2%
- {\global\advance\EMcounter 1
- \setposition\EMvariable
- \global#1=\POSx\EMvariable
- \global#2=\POSy\EMvariable}
-
-\def\EMmoveto
- {\EMgetposition\EMlastmovex\EMlastmovey}
-
-\def\EMlineto
- {\EMgetposition\EMlastlinex\EMlastliney
- \global\advance\EMlastmovex -\EMlastlinex
- \global\advance\EMlastmovey -\EMlastliney
- \ScaledPointsToBigPoints{\number\EMlastmovex}\EMx
- \ScaledPointsToBigPoints{\number\EMlastmovey}\EMy
- \PDFcode{\EMlinewd\space w 0 0 m \EMx \space \EMy \space l S}%
- \global\EMlastmovex\EMlastlinex
- \global\EMlastmovey\EMlastliney}
-
-%D The command \type {\setposition} registers a position by
-%D name (here \type {\EMvariable}), while \type {\POSx} and
-%D \type {\POSy} give you access to the coordinates.
-%D
-%D These three commands are containes in a suite of low level
-%D commands that can be used to register and get access to
-%D positional information. The current mechanism is not yet
-%D complete, but already provides enough hooks for advanced
-%D embedded graphics. Its functionality is a natural extension
-%D to the \METAPOST\ support already present in \CONTEXT.
-%D Therefore, more advanced examples can be found in the
-%D \METAFUN\ manual, since they fall beyond the scope of this
-%D module.
-
-\fi % end of context part
-
-%D As a bonus, I will now provide a few macros that will make
-%D this mechanism transparant to \DVI\ as well as \PDF\
-%D output. We will use \type {\pdfiteral} as trigger.
-
-\ifx\PDFcode\undefined
- \ifx\pdfliteral\undefined
- \def\PDFcode#1{\special{PDF: #1}}
- \else
- \let\PDFcode\pdfliteral
- \fi
-\fi
-
-\ifx\PDFcode\undefined
- \def\EMpdfordvi#1#2{#2}
-\else\ifx\pdfoutput\undefined
- \def\EMpdfordvi#1#2{#2}
-\else
- \def\EMpdfordvi#1#2{\ifcase\pdfoutput#2\else#1\fi}
-\fi\fi
-
-
-%D We save some of the macros we defined previously:
-
-\let\pdfEMmoveto\EMmoveto \let\pdfstartEMspecials\startEMspecials
-\let\pdfEMlineto\EMlineto \let\pdfstopEMspecials \stopEMspecials
-
-%D We now redefine them to support \DVI\ and \PDF.
-
-\def\EMmoveto{\EMpdfordvi\pdfEMmoveto{\special{em:moveto}}}
-\def\EMlineto{\EMpdfordvi\pdfEMlineto{\special{em:lineto}}}
-
-\def\startEMspecials{\EMpdfordvi\pdfstartEMspecials\relax}
-\def\stopEMspecials {\EMpdfordvi\pdfstopEMspecials \relax}
-
-%D If there is any real demand for this in \CONTEXT, I will
-%D hook these macros in the special drivers, so that their
-%D support becomes more natural.
-
-%D You may want to change the default linewidth. The following
-%D macro does the job. Beware of the fact that \type
-%D {\special}'s may interfere with the typesetting process.
-%D
-%D \starttyping
-%D \setEMlinewidth{1pt}
-%D \stoptyping
-
-\def\setEMlinewidth#1% this could be done more efficient for
- {\bgroup % context alone, but it's a hack anyway
- \dimen0=#1\relax
- \count0=\dimen0
- \divide\count0 65536
- \pdfordvi\relax{\special{em:linewidth \the\dimen0}}%
- \xdef\EMlinewd{\the\count0}%
- \egroup}
-
-%D You may wonder to what extent positional tracking is
-%D \PDFTEX\ specific. In \CONTEXT, we also support position
-%D tracking in \DVI\ by using specials and analyzing the \DVI\
-%D file afterwards using \DVIPOS. Since many of the advanced
-%D \TEX\ features depend on some kind of back||end, we don't
-%D consider it to be a disadvantage. Of course, the \PDFTEX\
-%D way is not only cleaner, but also faster. It was more out
-%D of curiosity than out of need that we provided the \DVI\
-%D methods as well. Also, it is always good to have more roads
-%D to reach the same goal.
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-eps.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-eps.mkii
deleted file mode 100644
index fb99469c5d6..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-eps.mkii
+++ /dev/null
@@ -1,202 +0,0 @@
-%D \module
-%D [ file=supp-eps,
-%D version=1998.05.06,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=\EPS\ tools,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\ifx \undefined \writestatus \input supp-mis.tex \relax \fi
-
-%D The macros in this module are rather old and were originally
-%D part of the figure inclusion macros. When \PDFTEX\ started
-%D to support \PDF\ inclusion, where some accompanying macros
-%D were put in \type{supp-pdf}, I considered it more suitable
-%D to give the \EPS\ macros their own module.
-
-\writestatus{loading}{ConTeXt Support Macros / EPS}
-
-%D \macros
-%D {dogetEPSboundingbox}
-%D
-%D The predecessors of the following macro's are derived from
-%D Thomas Rockicky's macro's. They are rewritten to a more
-%D compact form, made a bit more robust and also handle the
-%D \type{HiResBoundingBox} and \type{ExactBoundingBox} that
-%D are sometimes present.
-%D
-%D A bounding box has the form:
-%D
-%D \starttyping
-%D %%BoundingBox: llx lly urx ury
-%D \stoptyping
-%D
-%D Before we scan the file, we have to reset special
-%D characters and set some others. The percentage symbol also
-%D needs special treatment. When a bounding box is
-%D encountered, we keep on scanning until no more directives
-%D are found, i.e. a line is found that does not start with a
-%D percentage symbol. We also abort scanning after finding a
-%D high resolution bounding box.
-%D
-%D This method also works inside verbatim mode (like when we
-%D are typesetting sources and putting eps coded logos into
-%D a heading. Temporary restoring the \CATCODES\ is done in
-%D the calling routine.
-%D
-%D The creator as well as external support for specials are
-%D analyzed as well and their status is available in \type
-%D {\EPScreator} and \type {\EPSshading}. The boundingbox
-%D components are available in \type {\EPSllx} etc.
-
-\unprotect
-
-\def\EPSllx{0} \let\MPllx\EPSllx % just in case these
-\def\EPSlly{0} \let\MPlly\EPSlly % are used while running
-\def\EPSurx{0} \let\MPurx\EPSurx % in fast mode we set
-\def\EPSury{0} \let\MPury\EPSury % them to 0.
-
-\chardef\EPSfound =0
-\chardef\EPScreator=0
-\chardef\EPSspecial=0
-\chardef\EPSstatus =0
-
-\let\EPScreatorstring\empty
-
-\newtoks\extraEPSpreambleresets
-\newtoks\extraEPSpreambleparsers
-
-\def\dofinishEPSfile{\dofinishfile} % no \let, can be overloaded
-
-\def\dogetEPSboundingbox#1#2#3#4#5%
- {\bgroup
- \global\chardef\EPSfound \zerocount
- \global\chardef\EPScreator\zerocount
- \global\chardef\EPSspecial\zerocount
- \global\chardef\EPSstatus \zerocount
- \global\let\EPScreatorstring\empty
- \the\extraEPSpreambleresets
- \uncatcodespecials
- \catcode`\^^M=\@@ignore
- \def\doprocessEPSline
- {\advance\scratchcounter\plusone
- \expandafter\checkEPSboundingbox\fileline\empty\empty:.:.\end}%
- \scratchcounter\zerocount
- \doprocessfile\scratchread{#1}\doprocessEPSline
- \egroup
- % Using \EPSllx bp instead of \dimen0=1bp and \EPSllx\dimen0 is more accurate (.005pt).
- \ifnum\EPSfound>\zerocount
- #2\dimexpr\EPSllx\onebasepoint \relax
- #3\dimexpr\EPSlly\onebasepoint \relax
- #4\dimexpr\EPSurx\onebasepoint-#2\relax
- #5\dimexpr\EPSury\onebasepoint-#3\relax
- \else
- #2\zeropoint
- #3\zeropoint
- #4\zeropoint
- #5\zeropoint
- \fi
- %\message{[bbox #1: \EPSllx\space\EPSurx\space\EPSlly\space\EPSury]}\wait
- \global\let\MPllx\EPSllx \global\let\MPlly\EPSlly
- \global\let\MPurx\EPSurx \global\let\MPury\EPSury}
-
-\bgroup \catcode`\%=\@@other \xdef\letterpercent{\string%} \egroup
-
-\def\EPSboundingboxtag {BoundingBox}
-\def\EPShiresboundingboxtag{HiResBoundingBox}
-\def\EPSexactboundingboxtag{ExactBoundingBox}
-\def\EPScreatortag {Creator}
-\def\EPSmetaposttag {MetaPost}
-\def\EPSmetapostspecialtag {MetaPostSpecial}
-\def\EPSmetapostspecialstag{MetaPostSpecials}
-\def\EPSpagetag {Page}
-
-\let\EPSspecialstring \empty
-\let\EPSspecialcontent\empty
-
-% new metapost construct (hires bb followed by creator + version)
-%
-%!PS
-%%BoundingBox: -71 -1 651 496
-%%HiResBoundingBox: -70.9945 -0.5 650.5 495.24907
-%%Creator: MetaPost 0.901
-%%CreationDate: 2005.06.02:1633
-%%Pages: 1
-
-\long\def\checkEPSboundingbox#1#2#3:#4:.#5\end
- {\if\string#1\letterpercent
- \if\string#2\letterpercent
- \edef\EPSspecialstring{#3}%
- \edef\EPSspecialcontent{#4}%
- \ifx\EPSspecialstring\EPScreatortag
- \getEPScreatorspec
- \else\ifx\EPSspecialstring\EPSboundingboxtag
- \getEPSboundingboxspec
- \global\chardef\EPSfound\plusone
- \else\ifx\EPSspecialstring\EPShiresboundingboxtag
- \getEPSboundingboxspec
- \global\chardef\EPSfound\plustwo
- \scratchcounter\zerocount
- \else\ifx\EPSspecialstring\EPSexactboundingboxtag
- \getEPSboundingboxspec
- \global\chardef\EPSfound\plustwo
- \scratchcounter\zerocount
- \else\ifx\EPSspecialstring\EPSmetapostspecialtag % only before finish!
- \global\chardef\EPSspecial\plusone % ah, we've met some MP extensions
- \else\ifx\EPSspecialstring\EPSmetapostspecialstag % only before finish!
- \global\chardef\EPSspecial\plusone % ah, we've met some MP extensions
- \else\ifx\EPSspecialstring\EPSpagetag
- \global\chardef\EPSstatus \plusone % we passed MP font defs
- \else
- \the\extraEPSpreambleparsers
- \fi\fi\fi\fi\fi\fi\fi
- \fi
- \else\ifnum\EPSfound>\zerocount
- % bb found
- \ifnum\EPScreator=\plusone % that is, we are dealing with MP output
- \ifcase\EPSstatus
- % we've run into MP fontdefs
- \or
- \dofinishEPSfile
- \fi
- \else\ifnum\scratchcounter>\plusthree
- % too late for mps creator (we don't want to run into crap data)
- \dofinishEPSfile
- \else
- \fi\fi
- \fi\fi}
-
-\def\getEPSboundingboxspec
- {\edef\EPSspecialstring{\EPSspecialcontent\space . . . . }%
- \expandafter\dogetEPSboundingboxspec\EPSspecialstring\end}
-
-\def\dogetEPSboundingboxspec#1 #2 #3 #4 #5\end
- {\gdef\EPSllx{#1}%
- \ifx\EPSllx\empty
- \dogetEPSboundingboxspec#2 #3 #4 #5\end
- \else
- \gdef\EPSlly{#2}%
- \gdef\EPSurx{#3}%
- \gdef\EPSury{#4}%
- \fi}
-
-\def\getEPScreatorspec
- {\edef\EPSspecialstring{\EPSspecialcontent\space . .}%
- \expandafter\dogetEPScreatorspec\EPSspecialstring\end}
-
-\def\dogetEPScreatorspec#1#2 #3\end
- {\edef\EPScreatorstring{#1#2}%
- \global\chardef\EPScreator\ifx\EPScreatorstring\EPSmetaposttag\plusone\else\zerocount\fi\relax}
-
-\def\dogetEPSpreambledata#1% can be combined with \extraEPSpreambleparsers
- {\bgroup
- \let\dofinishEPSfile\relax % dirty trick, read past all bboxes
- \dogetEPSboundingbox{#1}\!!widtha\!!heighta\!!widthb\!!heightb
- \egroup}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-fil.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-fil.mkii
deleted file mode 100644
index 9a981797e05..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-fil.mkii
+++ /dev/null
@@ -1,722 +0,0 @@
-%D \module
-%D [ file=supp-fil,
-%D version=1995.10.10,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=Files,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D \TEX\ operates on files, so one wouldn't wonder that there
-%D is a separate module for file support. In \CONTEXT\ files
-%D are used for several purposes:
-%D
-%D \startitemize[packed]
-%D \item general textual input
-%D \item logging status information
-%D \item saving registers, lists and references
-%D \item buffering defered textual input
-%D \stopitemize
-%D
-%D When dealing with files we can load them as a whole, using
-%D the \type{\input} primitive or load them on a line||by||line
-%D basis, using \type{\read}. Writing is always done line by
-%D line, using \type{\write}.
-
-\writestatus{loading}{ConTeXt Support Macros / Files}
-
-\unprotect
-
-\ifx\undefined\f!pathseparator
- \def\f!pathseparator{/}
- \def\f!currentpath {.}
- \def\f!parentpath {..}
-\fi
-
-\ifnum\texengine=\luatexengine
- \def\openinputfile #1#2{\openin #1{#2}\relax}
- \def\openoutputfile#1#2{\immediate\openout#1{#2}\relax}
-\else
- \def\openinputfile #1#2{\openin #1 "#2"\relax}
- \def\openoutputfile#1#2{\immediate\openout#1 "#2"\relax}
-\fi
-
-\def\closeinputfile #1{\immediate\closein #1}
-\def\closeoutputfile#1{\immediate\closeout#1}
-
-%D \macros
-%D {pushendofline,popendofline}
-%D
-%D When we are loading files in the middle of the typesetting
-%D process, for instance when we load references, we have to be
-%D sure that the reading process does not generate so called
-%D 'spurious spaces'. This can be prevented by assigning the
-%D line ending character the \CATCODE\ comment. This is
-%D accomplished by
-%D
-%D \starttyping
-%D \pushendofline
-%D ... reading ...
-%D \popendofline
-%D \stoptyping
-%D
-%D Just to be sure, we save the current meaning of \type{^^M}
-%D in \type{\poppedendofline}.
-
-% \chardef\poppedendofline\catcode`\^^M
-%
-% \def\pushendofline
-% {\chardef\poppedendofline\catcode`\^^M\relax
-% \catcode`\^^M\@@comment\relax}
-%
-% \def\popendofline
-% {\catcode`\^^M\poppedendofline}
-%
-% support for nested usage:
-
-\newcount \endoflinelevel
-
-\ifx\newlinecode\undefined \chardef\newlinecode=`\^^M \fi
-
-\def\pushendofline
- {\advance\endoflinelevel\plusone
- \expandafter\chardef\csname :eol:\number\endoflinelevel\endcsname\catcode\newlinecode
- \catcode\newlinecode\@@comment\relax}
-
-\def\popendofline
- {\catcode\newlinecode\csname :eol:\number\endoflinelevel\endcsname
- \advance\endoflinelevel\minusone}
-
-\def\restoreendofline
- {\catcode\newlinecode\@@endofline}
-
-%D \macros
-%D {scratchread, scratchwrite}
-%D
-%D We define a scratch file for reading. Keep in mind that
-%D the number of files is limited to~16, so use this one when
-%D possible. We also define a scratch output file.
-
-\ifx\undefined\scratchread \newread \scratchread \fi
-\ifx\undefined\scratchwrite \newwrite\scratchwrite \fi
-
-%D \macros
-%D {unlinkfile}
-%D
-%D Sometimes we want to make sure a file is deleted, so here
-%D is a macro that does the job. It's named after the \PERL\
-%D one.
-
-\def\unlinkfile#1%
- {\openoutputfile \scratchwrite{#1}%
- \closeoutputfile\scratchwrite}
-
-%D \macros
-%D {writeln}
-%D
-%D This saves a few tokens:
-
-\def\writeln#1{\write#1{}}
-
-\def\doiffileexistselse#1%
- {\doifelsenothing{#1}
- {\secondoftwoarguments}
- {\openinputfile\scratchread{#1}%
- \ifeof\scratchread
- \closeinputfile\scratchread
- \expandafter\secondoftwoarguments
- \else
- \closeinputfile\scratchread
- \expandafter\firstoftwoarguments
- \fi}}
-
-%D \macros
-%D {doprocessfile,fileline,fileprocessedtrue,dofinishfile}
-%D
-%D The next macro offers a framework for processing files on a
-%D line by line basis.
-%D
-%D \starttyping
-%D \doprocessfile \identifier {name} \action
-%D \stoptyping
-%D
-%D The first argument can for instance be \type{\scratchread}.
-%D The action must do something with \type{\fileline}, which
-%D holds the current line. One can halfway step out using
-%D \type{\dofinishfile} and ise \type{\iffileprocessed} to
-%D see if indeed some content was found.
-
-\newif\iffileprocessed
-
-\let\fileline\empty
-
-\def\doprocessfile#1#2#3%
- {\openinputfile{#1}{#2}%
- \ifeof#1%
- \fileprocessedfalse
- \closeinputfile#1%
- \else
- \fileprocessedtrue
- \gdef\dofinishfile
- {\closeinputfile#1%
- \global\let\doprocessline\relax}%
- \gdef\doprocessline
- {\ifeof#1%
- \expandafter\dofinishfile
- \else
- \global\read#1 to \fileline
- #3\relax
- \expandafter\doprocessline
- \fi}%
- \expandafter\doprocessline
- \fi}
-
-%D \macros
-%D {pathplusfile,assignfullfilename,sanitizefilename}
-%D
-%D Use \type{\pathplusfile} to compose a full file name, like
-%D in:
-%D
-%D \starttyping
-%D \pathplusfile{path}{file}
-%D \stoptyping
-%D
-%D By default, this expands into {\tt \pathplusfile{path}{file}}.
-
-\def\pathplusfile#1#2{#1\f!pathseparator#2}
-
-%D This one constructs a filename from a (possible empty)
-%D path and filename.
-
-\def\assignfullfilename#1#2\to#3%
- {\doifelsenothing{#1}
- {\edef#3{#2}}
- {\edef#3{#1\f!pathseparator#2}}}
-
-%D For the moment, we limit sanitizing to taking care of
-%D active \type {/}.
-
-\bgroup % todo: _ cleanup
-
-\catcode`\/=\@@active
-\catcode`\:=\@@active
-\catcode`\~=\@@active
-\catcode`\_=\@@active
-
-\gdef\sanitizefilename#1\to#2%
- {\bgroup
- \edef/{\string/}%
- \edef:{\string:}%
- \edef~{\string~}%
- \edef_{\string_}%
- \retainlccodes
- \lccode`\\=`\/
- \lowercase{\expanded{\xdef\noexpand\sanitizedfilename{#1}}}%
- \egroup
- \let#2\sanitizedfilename}
-
-\egroup
-
-%D NEW:
-
-\chardef\kindoffile=0 % 0=normal 1=full path spec (or http)
-
-\def\checkfilename#1%
- {\doifinstringelse{@@/}{@@#1}% unix: /full/path
- {\chardef\kindoffile\plusone}
- {\doifinstringelse{:/}{#1}% windows: e:/full/path or http://
- {\chardef\kindoffile\plusone}
- {\chardef\kindoffile\zerocount}}}
-
-%D \macros
-%D {input, normalinput}
-%D
-%D Sometimes we run into troubles when \type {\input} wants to get
-%D expanded, e.g. in a \type {\write} (which happens in the metafun
-%D manual when we permit long MP lines). So, instead of fixing that,
-%D we go for a redefinition of \type {\input}. Of course it's better
-%D to use \type {\readfile} or \type {\processfile}.
-
-\unexpanded\def\input{\normalinput}
-
-\ifnum\texengine=\luatexengine
- \def\inputgivenfile#1{\normalinput{#1}\relax}
-\else
- \def\inputgivenfile#1{\normalinput"#1"\relax}
-\fi
-
-%D \macros
-%D {readfile,ReadFile,maxreadlevel}
-%D
-%D One cannot be sure if a file exists. When no file can be
-%D found, the \type{\input} primitive gives an error message
-%D and switches to interactive mode. The macro \type{\readfile}
-%D takes care of non||existing files. This macro has two faces.
-%D
-%D \starttyping
-%D \ReadFile {filename}
-%D \readfile {filename} {before loading} {not found}
-%D \stoptyping
-%D
-%D Many \TEX\ implementations have laid out some strategy for
-%D locating files. This can lead to unexpected results,
-%D especially when one loads files that are not found in the
-%D current directory. Let's give an example of this. In
-%D \CONTEXT\ illustrations can be defined in an external file.
-%D The resizing macro first looks if an illustration is defined
-%D in the local definitions file. When no such file is found,
-%D it searches for a global file and when this file is not
-%D found either, the illustration itself is scanned for
-%D dimensions. One can imagine what happens if an adapted,
-%D localy stored illustration, is scaled according to
-%D dimensions stored somewhere else.
-%D
-%D When some \TEX\ implementation starts looking for a file, it
-%D normally first looks in the current directory. When no file
-%D is found, \TEX\ starts searching on the path where format
-%D and|/|or style files are stored. Depending on the implementation
-%D this can considerably slow down processing speed.
-%D
-%D In \CONTEXT, we support a project||wise ordening of files.
-%D In such an approach it seems feasible to store common files
-%D in a lower directory. When for instance searching for a
-%D general layout file, we therefore have to backtrack.
-%D
-%D These three considerations have lead to a more advanced
-%D approach for loading files.
-%D
-%D We first present an earlier implementation of
-%D \type{\readfile}. This command backtracks parent
-%D directories, upto a predefined level. Users can change this
-%D level, but we default to~3.
-%D
-%D \starttyping
-%D \def\maxreadlevel {3}
-%D \stoptyping
-%D
-%D This is a pseudo \COUNTER.
-%D
-%D We use \type{\normalinput} instead of \type{\input}
-%D because we want to be able to redefine the original
-%D \type{\input} when needed, for instance when loading third
-%D party libraries.
-
-\newevery \everybeforereadfile \EveryBeforeReadFile
-\newevery \everyafterreadfile \EveryAfterReadFile
-
-\let \everyreadfile \everybeforereadfile
-
-\newif\iftracefiles
-
-\newcount\readlevel
-
-\def\maxreadlevel{3}
-
-\newconditional\trackfilenames
-\let\trackedfilename\empty
-
-% We need to postpone loading, else we got frozen type-* files and so when
-% a format is generated on a source path.
-
-\def\doreadfile#1#2#3#4%
- {\sanitizefilename#2\to\readfilename
- \ifx\readfilename\empty
- % silently ignore
- \else
- \let\trackedfilename\readfilename
- \ifconditional\trackfilenames
- \doifundefinedelse{fn..\trackedfilename}\donetrue\donefalse
- \else
- \donetrue
- \fi
- \ifdone
- \checkfilename\readfilename
- \ifcase\kindoffile
- \iftracefiles\writestatus\m!systems{searching for \readfilename\space on #1}\fi
- % not a full path or url, check for existence
- \doifelsenothing{#1}
- {\def\next{\redoreadfile\readfilename{#3}{#4}}}%
- {\def\next{\redoreadfile{\pathplusfile{#1}{\readfilename}}{#3}{#4}}}%
- \else
- % a full path or url, no further checking done
- \doiffileexistselse\readfilename
- {\iftracefiles\writestatus\m!systems{located \readfilename}\fi
- \def\next{#3\dodoreadfile}}%
- {\iftracefiles\writestatus\m!systems{not found \readfilename}\fi
- \def\next{#4}}%
- \fi
- \else
- \edef\readfilename{\getvalue{fn..\readfilename}}%
- \iftracefiles\writestatus\m!systems{already located \readfilename}\fi
- \def\next{#3\dodoreadfile}%
- \fi
- \expandafter\next
- \fi}
-
-\def\redoreadfile#1#2#3%
- {\doiffileexistselse{#1}%
- {\edef\readfilename{#1}%
- \iftracefiles\writestatus\m!systems{#1 located}\fi
- \def\next{#2\dodoreadfile}}%
- {\iftracefiles\writestatus\m!systems{cannot locate #1}\fi
- \advance\readlevel\minusone
- \ifnum\readlevel>\zerocount
- \edef\readfilename{\pathplusfile{\f!parentpath}{\readfilename}}%
- \def\next{\redoreadfile\readfilename{#2}{#3}}%
- \else
- \def\next{#3}%
- \fi}%
- \next}
-
-\def\dodoreadfile % we provide hooks, for instance for \enableXML
- {\ifconditional\trackfilenames
- \setxvalue{fn..\trackedfilename}{\readfilename}%
- \fi
- \the\everybeforereadfile
-% \normalinput\readfilename\relax
- \relax\inputgivenfile\readfilename\relax
- \the\everyafterreadfile}
-
-% too less:
-%
-% \unexpanded\def\readfile% #1%
-% {\readlevel\maxreadlevel
-% \doreadfile\empty} % {#1}
-%
-% too much:
-%
-% \unexpanded\def\readfile#1#2#3%
-% {\readlocfile{#1}{#2}
-% {\readjobfile{#1}{#2}
-% {\readsysfile{#1}{#2}{#3}}}}
-%
-% just ok:
-
-\unexpanded\def\readfile#1#2#3%
- {\readlocfile{#1}{#2}{\readsysfile{#1}{#2}{#3}}}
-
-\def\readtexfile#1#2#3%
- {\pushcatcodetable \catcodetable \ctxcatcodes
- \readfile{#1}{#2}{#3}%
- \popcatcodetable}
-
-\ifdefined\xmlcatcodes \else \let\xmlcatcodes\xmlcatcodesn \fi
-
-\def\readxmlfile#1#2#3%
- {\pushcatcodetable \catcodetable \xmlcatcodes
- \readfile{#1}{#2}{#3}%
- \popcatcodetable}
-
-\unexpanded\def\ReadFile#1%
- {\readfile{#1}\donothing\donothing}
-
-%D \macros
-%D {readjobfile,readlocfile,readsysfile,
-%D readfixfile,readsetfile}
-%D
-%D This implementation honnors the third situation, but we
-%D still can get unwanted files loaded and/or can get involved
-%D in extensive searching.
-%D
-%D Due to different needs, we decided to offer four alternative
-%D loading commands. With \type{\readjobfile} we load a local
-%D file and do no backtracking, while \type{\readlocfile}
-%D backtracks~\number\readlevel\ directories, including the current
-%D one.
-
-\unexpanded\def\readjobfile % #1% current path, no backtracking
- {\readlevel\zerocount
- \doreadfile\f!currentpath} % {#1}}
-
-\unexpanded\def\readlocfile % #1% current path, backtracking
- {\readlevel\maxreadlevel
- \doreadfile\f!currentpath} % {#1}}
-
-%D System files can be anywhere and therefore
-%D \type{\readsysfile} is not bound to the current directory
-%D and obeys the \TEX\ implementation.
-
-\unexpanded\def\readsysfile % #1% current path, obeys tex search
- {\readlevel\zerocount
- \doreadfile\empty} % {#1}}
-
-%D Of the last two, \type{\readfixfile} searches on the
-%D directory specified and backtracks too, while
-%D \type{\readsetfile} does only search on the specified path.
-
-\unexpanded\def\readfixfile % #1#2% specified path, backtracking
- {\readlevel\maxreadlevel
- \doreadfile} % {#1}{#2}}
-
-\unexpanded\def\readsetfile % #1#2% specified path, no backtracking
- {\readlevel\zerocount
- \doreadfile} % {#1}{#2}}
-
-%D After having defined this commands, we reconsidered the
-%D previously defined \type{\readfile}. This time we more or
-%D less impose the search order.
-
-\unexpanded\def\readfile#1#2#3%
- {\readlocfile{#1}{#2}
- {\readjobfile{#1}{#2}
- {\readsysfile{#1}{#2}{#3}}}}
-
-%D So now we've got ourselves five file loading commands:
-%D
-%D \starttyping
-%D \readfile {filename} {before loading} {not found}
-%D
-%D \readjobfile {filename} {before loading} {not found}
-%D \readlocfile {filename} {before loading} {not found}
-%D \readfixfile {filename} {before loading} {not found}
-%D \readsysfile {directory} {filename} {before loading} {not found}
-%D \stoptyping
-
-%D \macros
-%D {readjobfile,readlocfile,readsysfile,readfixfile}
-%D
-%D The next four alternatives can be used for opening files
-%D for reading on a line||by||line basis. These commands get
-%D an extra argument, the filetag. Explicit closing is done
-%D in the normal way by \type{\closein}.
-
-\def\doopenin#1#2%
- {\sanitizefilename#2\to\readfilename
- \checkfilename\readfilename
- \ifcase\kindoffile
- \advance\readlevel\plusone
- \openinputfile{#1}\readfilename
- \ifeof#1% \relax
- \ifnum\readlevel>\maxreadlevel % \relax
- \else
- \closeinputfile#1% \relax
- \doopenin{#1}{\pathplusfile\f!parentpath{#2}}%
- \fi
- \fi
- \fi}
-
-\def\openjobin#1#2%
- {\readlevel\zerocount
- \doopenin{#1}{\pathplusfile\f!currentpath{#2}}}
-
-\def\opensysin % #1#2%
- {\readlevel\maxreadlevel
- \doopenin} % {#1}{#2}}
-
-\def\openlocin#1#2%
- {\readlevel\maxreadlevel
- \doopenin{#1}{\pathplusfile\f!currentpath{#2}}}
-
-\def\openfixin#1#2#3%
- {\readlevel\maxreadlevel
- \doopenin{#1}{\pathplusfile{#2}{#3}}}
-
-%D \macros
-%D {doiffileelse,doiflocfileelse}
-%D
-%D The next alternative only looks if a file is present. No
-%D loading is done. This one obeys the standard \TEX\
-%D implementation method.
-%D
-%D \starttyping
-%D \doiffileelse {filename} {found} {not found}
-%D \stoptyping
-%D
-%D \starttyping
-%D \doiflocfileelse {filename} {before loading} {not found}
-%D \stoptyping
-
-\def\doiffileelse {\doiffileexistselse}
-\def\doiffile #1{\doiffileexistselse{#1}\firstofoneargument\gobbleoneargument}
-\def\doifnotfile #1{\doiffileexistselse{#1}\gobbleoneargument\firstofoneargument}
-
-\def\doiflocfileelse#1%
- {\makelocreadfilename{#1}%
- \doiffileelse\readfilename}
-
-\def\makelocreadfilename#1%
- {\sanitizefilename#1\to\readfilename
- \checkfilename\readfilename
- \ifcase\kindoffile
- \edef\readfilename{\pathplusfile\f!currentpath{#1}}%
- \fi}
-
-%D \macros
-%D {doonlyonce, doinputonce, doendinputonce}
-%D
-%D Especially macropackages need only be loaded once.
-%D Repetitive loading not only costs time, relocating registers
-%D often leads to abortion of the processing because \TEX's
-%D capacity is limited. One can prevent multiple execution and
-%D loading by using one of both:
-%D
-%D \starttyping
-%D \doonlyonce{actions}
-%D \doinputonce{filename}
-%D \doendinputonce{filename}
-%D \stoptyping
-%D
-%D This command obeys the standard method for locating files.
-
-\long\def\doonlyonce#1%
- {\doifundefinedelse{@@@#1@@@}
- {\letgvalue{@@@#1@@@}\empty
- \firstofoneargument}
- {\gobbleoneargument}}
-
-\def\doinputonce#1%
-% {\doonlyonce{#1}{\doiffileelse{#1}{\normalinput#1\relax}\donothing}}
- {\doonlyonce{#1}{\doiffileelse{#1}{\inputgivenfile{#1}}\donothing}}
-
-\def\doendinputonce#1%
- {\doifdefined{@@@#1@@@}\endinput}
-
-\def\forgetdoingonce#1%
- {\global\letbeundefined{@@@#1@@@}}
-
-%D \macros
-%D {doifparentfileelse}
-%D
-%D The test \type{\doifelse{\jobname}{filename}} does not give
-%D the desired result, simply because \type{\jobname} expands
-%D to characters with \CATCODE~12, while the characters in
-%D \type{filename} have \CATCODE~11. So we can better use:
-%D
-%D \starttyping
-%D \doifparentfileelse{filename}{yes}{no}
-%D \stoptyping
-%D
-%D Since \TEXEXEC\ (and thereby \CONTEXT) supports renaming of
-%D the outputfile, we also need to check on that alternative
-%D name.
-
-\ifx\outputfilename\undefined \def\outputfilename{\jobname} \fi
-
-\def\doifparentfileelse#1%
- {\doifsamestringelse{#1}{\jobname }\firstoftwoarguments
- {\doifsamestringelse{#1}{\jobname.\c!tex}\firstoftwoarguments
- {\doifsamestringelse{#1}{\outputfilename}\firstoftwoarguments\secondoftwoarguments}}}
-
-\def\normalless {<} % geen \let !
-\def\normalmore {>} % geen \let !
-\def\normalequal {=} % geen \let !
-\def\normaldblquote{"} % geen \let !
-
-\newcount\readingfilelevel
-
-\def\popfilecharacter#1#2%
- {\ifnum\catcode`#1=\@@other \ifnum#2=\@@other \else
- %\message{[popping catcode #1 to #2]}%
- \catcode`#1=#2\relax
- \fi \fi}
-
-\ifx\\\undefined \let\\\relax \fi
-
-%D This changing catcodes is a direct result from the fact
-%D that we support some long standing conventions with
-%D regards to active characters (german ", polish /,
-%D french : and ;).
-
-%D We need to redo this: catcode sets and such
-
-\newtoks \everystartreadingfile
-\newtoks \everystopreadingfile
-
-\def\startreadingfile% beter een every en \setnormalcatcodes
- {\global\advance\readingfilelevel\plusone
- \the\everystartreadingfile
- \beginrestorecatcodes
- \setcatcodetable\prtcatcodes}
-
-\def\stopreadingfile
- {\endrestorecatcodes
- \the\everystopreadingfile
- \global\advance\readingfilelevel\minusone}
-
-\let\normalstartreadingfile\startreadingfile
-\let\normalstopreadingfile \stopreadingfile
-
-%D \macros
-%D {splitfilename}
-%D
-%D I should have made this one sooner. This macro was first needed when
-%D ran into graphic with a period in the pathpart.
-%D
-%D \startbuffer
-%D \def\showfilesplit
-%D {\bgroup \tttf
-%D \hbox{(full: \splitofffull)}\space
-%D \hbox{(path: \splitoffpath)}\space
-%D \hbox{(base: \splitoffbase)}\space
-%D \hbox{(name: \splitoffname)}\space
-%D \hbox{(type: \splitofftype)}\space
-%D \egroup}
-%D
-%D \splitfilename{c:/aa/bb/cc/dd.ee.ff} \showfilesplit \endgraf
-%D \splitfilename{c:/aa/bb/cc/dd.ee} \showfilesplit \endgraf
-%D \splitfilename{c:/aa/bb/cc/dd} \showfilesplit \endgraf
-%D
-%D \splitfilename{dd.ee.ff} \showfilesplit \endgraf
-%D \splitfilename{dd.ee} \showfilesplit \endgraf
-%D \splitfilename{dd} \showfilesplit \endgraf
-%D \stopbuffer
-%D
-%D \start \typebuffer \getbuffer \stop
-
-\def\splitoffroot{.} \chardef\splitoffkind\zerocount
-
-\let\splitofffull\empty
-\let\splitoffpath\empty
-\let\splitoffbase\empty
-\let\splitoffname\empty
-\let\splitofftype\empty
-
-% \def\splitfilename#1%
-% {\edef\splitofffull{#1}% normally outside this call: \sanitizefilename#1\to\sanitizedfilename
-% \greedysplitstring\splitofffull\at/\to\splitoffpath\and\splitoffbase
-% \ifx\splitoffbase\empty
-% \let\splitoffpath\empty
-% \let\splitoffbase\splitofffull
-% \fi
-% \greedysplitstring\splitoffbase\at.\to\splitoffname\and\splitofftype
-% \chardef\splitoffkind % can be used to test if pathpart was empty
-% \ifx\splitoffpath\empty \zerocount \else
-% \ifx\splitoffpath\splitoffroot \plusone \else
-% \plustwo \fi\fi
-% \ifx\splitoffname\empty\let\splitoffname\splitoffbase\fi
-% \ifx\splitoffpath\empty\let\splitoffpath\splitoffroot\fi}
-%
-% better, since it also handles leading /'s
-%
-% \splitfilename{oeps/test.pdf} [\splitoffpath\quad\splitoffname\quad\splitofftype]
-% \splitfilename{/oeps/test.pdf} [\splitoffpath\quad\splitoffname\quad\splitofftype]
-% \splitfilename{/test.pdf} [\splitoffpath\quad\splitoffname\quad\splitofftype]
-
-\def\splitfilename#1%
- {\edef\splitofffull{#1}% normally outside this call: \sanitizefilename#1\to\sanitizedfilename
- \greedysplitstring\splitofffull\at/\to\splitoffpath\and\splitoffbase
- \ifx\splitoffpath\splitofffull
- \let\splitoffpath\empty
- \fi
- \ifx\splitoffbase\empty
- \let\splitoffpath\empty
- \let\splitoffbase\splitofffull
- \fi
- \greedysplitstring\splitoffbase\at.\to\splitoffname\and\splitofftype
- \chardef\splitoffkind % can be used to test if pathpart was empty
- \ifx\splitoffpath\empty \zerocount \else
- \ifx\splitoffpath\splitoffroot \plusone \else
- \plustwo \fi\fi
- \ifx\splitoffname\empty\let\splitoffname\splitoffbase\fi
- \ifx\splitoffpath\empty\let\splitoffpath\splitoffroot\fi}
-
-\def\splitfiletype#1%
- {\edef\splitofffull{#1}% normally outside this call: \sanitizefilename#1\to\sanitizedfilename
- \let\splitoffpath\empty
- \greedysplitstring\splitofffull\at.\to\splitoffname\and\splitofftype}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-fun.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-fun.mkii
deleted file mode 100644
index 9bba4f5a85f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-fun.mkii
+++ /dev/null
@@ -1,746 +0,0 @@
-%D \module
-%D [ file=supp-fun,
-%D version=1995.10.10,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=Fun Stuff,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-%D This module implements some typographics tricks that can
-%D be fun when designing document layouts. The examples use
-%D macros that are typical to \CONTEXT, but non \CONTEXT\
-%D users can use the drop caps and first line treatment
-%D macros without problems. This module will be extended
-%D when the need for more of such tricks arises.
-
-\ifx \undefined \writestatus \input supp-mis.tex \relax \fi
-
-\writestatus{loading}{ConTeXt Support Macros / Fun Stuff}
-
-\ifx\definefont\undefined
- \def\definedfont[#1]{\font\temp#1\relax\temp}
-\fi
-
-%D \macros
-%D {DroppedCaps, DroppedString, DroppedIndent, DroppedLines}
-%D
-%D \startbuffer
-%D \DroppedCaps
-%D {\color[green]} {cmbx12}
-%D {2.2\baselineskip} {2pt} {\baselineskip} {2}
-%D Let's start
-%D \stopbuffer
-%D
-%D \getbuffer with dropped caps, those blown up first
-%D characters of a paragraph. It's hard to implement a general
-%D mechanism that suits all situations, but dropped caps are so
-%D seldomly used that we can permit ourselves a rather user
-%D unfriendly implementation.
-%D
-%D \typebuffer
-%D
-%D As we will see, there are 7 different settings involved. The
-%D first argument takes a command that is used to do whatever
-%D fancy things we want to do, but normally this one will be
-%D empty. The second argument takes the font. Because we're
-%D dealing with something very typographic, there is no real
-%D reason to adopt complicated font switching schemes, a mere
-%D name will do. Font encodings can bring no harm, because the
-%D alphanumeric characters are nearly always located at their
-%D natural position in the encoding vector.
-%D
-%D \startbuffer
-%D \DroppedCaps
-%D {\color[red]} {cmbx12}
-%D {\baselineskip} {0pt} {0pt} {1}
-%D This simple
-%D \stopbuffer
-%D
-%D \getbuffer case shows us what happens when we apply minimal
-%D values. Here we used:
-%D
-%D \typebuffer
-%D
-%D \startbuffer
-%D \DroppedCaps
-%D {\color[red]} {cmbx12}
-%D {2\baselineskip} {0pt} {\baselineskip} {2}
-%D Is this ugly
-%D \stopbuffer
-%D
-%D \getbuffer example the third argument tells
-%D this macro that we want a dropped capital scaled to the
-%D baseline distance. The two zero point arguments are the
-%D horizontal and vertical offsets and the last arguments
-%D determines the hanging indentation. In this paragraph we
-%D set the height to two times the baselinedistance and use
-%D two hanging lines:
-%D
-%D \typebuffer
-%D
-%D Here, the first character is moved down one baseline. Here
-%D we also see why the horizontal offset is important. The
-%D first example (showing the~L) sets this to a few points and
-%D also used a slightly larger height.
-%D
-%D Of course common users (typist) are not supposed to see this
-%D kind of fuzzy definitions, but fortunately \TEX\ permits us
-%D to hide them in macros. Using a macro also enables us to
-%D garantee consistency throughout the document:
-%D
-%D \startbuffer
-%D \def\MyDroppedCaps%
-%D {\DroppedCaps
-%D {\color[green]} {cmbx12}
-%D {5\baselineskip} {3pt} {3\baselineskip} {4}}
-%D
-%D \MyDroppedCaps The implementation
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \getbuffer of the general macro is rather simple and only
-%D depends on the arguments given and the dimensions of the
-%D strut box. We explicitly load the font, which is no problem
-%D because \TEX\ does not load a font twice. We could have
-%D combined some arguments, like the height, vertical offset
-%D and the number of lines, but the current implementation
-%D proved to be the most flexible. One should be aware of the
-%D fact that the offsets depend on the design of the glyphs
-%D used.
-
-\let\DroppedIndent\!!zeropoint \def\DroppedLines{0}
-
-\def\DroppedString{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
-
-\let\globaldropcaps\global % will be an option, but on by default
-
-\def\localdropcaps{\let\globaldropcaps\relax}
-
-\chardef\DroppedStatus = 0 % 0=done 1=starting 2=doing 3=error
-\chardef\DropMode = 0 % 1 == marginhang
-
-\ifx\keeplinestogether\undefined
- \let\keeplinestogether\gobbleoneargument
-\fi
-
-\def\DroppedCaps#1#2#3#4#5#6#7% does not yet handle accented chars
- {\defconvertedargument\asciia{#7}%
- \defconvertedcommand \asciib{\DroppedString}%
- \ExpandBothAfter\doifinstringelse\asciia\asciib
- {\noindentation
- \dontleavehmode
- \checkindentation % redo this one
- %\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
- \setbox2\hbox{\raise\dp0\hbox{\lower\strutdp\copy0}}%
- \ht2\ht0
- \dp0\strutdp
- \setbox0\box2
- \fi
- \setbox0\hbox
- {\ifnum\DropMode=\plusone
- \hskip-\wd0\wd0\zeropoint
- \fi
- \lower#5\box0}%
- \ht0\strutht
- \dp0\strutdp
- \ifnum\DropMode=\plusone
- \globaldropcaps\let\DroppedIndent\!!zeropoint
- \globaldropcaps\edef\DroppedLines{\number\maxdimen}%
- \globaldropcaps\chardef\DroppedStatus\plusthree
- \else
- \globaldropcaps\edef\DroppedIndent{\the\wd0}%
- \globaldropcaps\edef\DroppedLines {\number#6}%
- \globaldropcaps\chardef\DroppedStatus\plustwo
- \globaldropcaps\hangindent\DroppedIndent
- \globaldropcaps\hangafter-\DroppedLines
-% \noindent
- \noindentation
- \checkindentation % redo this one
- \hskip-\DroppedIndent
- \fi
- \vbox{\forgetall\box0}%
- \nobreak
- \let\next\ignorespaces} % Could be a one character word !
- {\globaldropcaps\let\DroppedIndent\!!zeropoint
- \globaldropcaps\edef\DroppedLines{\number\maxdimen}%
- \globaldropcaps\chardef\DroppedStatus\plusthree
- \def\next{#7}}%
- \let\globaldropcaps\global
- \next}
-
-%D Before we go to the next topic, we summarize this command:
-%D
-%D \starttyping
-%D \DroppedCaps
-%D {command} {font}
-%D {height} {hoffset} {voffset} {lines}
-%D \stoptyping
-%D
-%D Sometimes you need to make sure that the global settings are
-%D kept local, as in:
-%D
-% %D \startbuffer
-% %D \defineparagraphs[SomePar][n=2,rule=on]
-% %D \setupparagraphs [SomePar][1][width=.5\textwidth]
-% %D \setupparagraphs [SomePar][2][width=.5\textwidth]
-%D \startbuffer
-%D \defineparagraphs[SomePar][n=2,rule=on]
-%D \setupparagraphs [SomePar][1][width=.5\textwidth]
-%D \setupparagraphs [SomePar][2][width=.5\textwidth]
-%D
-%D \startSomePar
-%D \localdropcaps\NiceDroppedCaps{}{cmr12}{0pt}{2}Here we need
-%D to explicitly keep the hanging indentation local, like it or
-%D not.
-%D \SomePar
-%D \localdropcaps\NiceDroppedCaps{}{cmr12}{0pt}{2}Here we need
-%D to explicitly keep the hanging indentation local, like it or
-%D not.
-%D \stopSomePar
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-%D \macros
-%D {AutoDroppedCaps, CheckDroppedCaps}
-%D
-%D {\em To be documented.}
-
-% example usage
-%
-% \def\bpar{\ifvmode\CheckDroppedCaps\fi}
-% \def\epar{\ifhmode\par\fi\CheckDroppedCaps}
-
-\newcount\lastprevgraf
-\newcount\droppedlines
-
-\def\CheckDroppedCaps
- {\global\lastprevgraf\prevgraf}
-
-\def\AutoDroppedCaps % will be proper core stuff since it
- {\globaldropcaps\chardef\DroppedStatus\plusone
- \global\lastprevgraf\zerocount
- \global\droppedlines\zerocount
- \EveryPar{\doAutoDroppedCaps}}
-
-\let\AutoDroppedNext\relax
-
-\ifx\AutoDroppedCapsCommand\undefined
- \def\AutoDroppedCapsCommand{\NiceDroppedCaps{}{SerifBold}{.125em}{3}}
-\fi
-
-\def\doAutoDroppedCaps
- {\ifcase\DroppedStatus % done
- \let\next\relax
- \or % starting
- % \ifnum\lastprevgraf>0 % tricky, probably a wrong par
- % \globaldropcaps\chardef\DroppedStatus=3 % and inhibits dropped
- % \let\next\relax % caps after titles and more than once
- % \else % so let's nill this rubishly code fragment
- \let\next\AutoDroppedCapsCommand
- % \fi % and hope for the best
- \or % doing
- \global\advance\droppedlines \lastprevgraf
- \ifnum\droppedlines=\zerocount
- \globaldropcaps\chardef\DroppedStatus\zerocount
- \let\next\relax
- \else\ifnum\droppedlines>\zerocount
- \ifnum\droppedlines<\DroppedLines\relax
- \globaldropcaps\hangindent\DroppedIndent
- \globaldropcaps\hangafter-\DroppedLines
- \globaldropcaps\advance\hangafter \droppedlines
- \hskip-\parindent % brrr
- \let\next\AutoDroppedNext
- \else
- \globaldropcaps\chardef\DroppedStatus\zerocount
- \let\next\relax
- \fi
- \else
- \globaldropcaps\chardef\DroppedStatus\zerocount
- \let\next\relax
- \fi\fi
- \or % error
- \globaldropcaps\chardef\DroppedStatus\zerocount
- \let\next\relax
- \fi
- \next}
-
-%D \macros
-%D {LineDroppedCaps, NiceDroppedCaps}
-%D
-%D To save definitions, we also provide:
-%D
-%D \starttyping
-%D \LineDroppedCaps {command} {font} {hoffset} {lines}
-%D \NiceDroppedCaps {command} {font} {hoffset} {lines}
-%D \stoptyping
-%D
-%D The first command scales the font to the exact height, while
-%D the second command scales the font to a nice 2.5 times the
-%D line height, a value that gives a pleasant grayness.
-
-\def\DoLineDroppedCaps#1#2#3#4#5% compensation command font offset lines
- {\scratchcounter#5%
- \advance\scratchcounter \minusone
- \scratchdimen\scratchcounter\baselineskip
- \advance\scratchdimen #1%
- \NormalizeFontHeight\DummyFont{W}\scratchdimen{#3}%
- \DroppedCaps{#2}{#3}\TheNormalizedFontSize{#4}
- {\scratchcounter\baselineskip}{#5}}
-
-\def\LineDroppedCaps% command font offset lines
- {\DoLineDroppedCaps{\strutht}}
-
-\def\NiceDroppedCaps% command font offset lines
- {\DoLineDroppedCaps{.5\baselineskip}}
-
-%D \macros
-%D {TreatFirstLine}
-%D
-%D \startbuffer
-%D \TreatFirstLine {\sc} {} {} {}
-%D Instead of limiting its action to one token, the next macro
-%D treats the whole first line. This paragraph was typeset by
-%D saying:
-%D \stopbuffer
-%D
-%D \getbuffer
-%D
-%D \typebuffer
-%D
-%D \startbuffer
-%D \TreatFirstLine {\startcolor[red]\bf} {\stopcolor} {} {}
-%D The combined color and font effect is also possible,
-%D although one must be careful in using macros that accumulate
-%D grouping, but the commands used here are pretty save in that
-%D respect.
-%D \stopbuffer
-%D
-%D \getbuffer
-%D
-%D \typebuffer
-%D
-%D Before we explain the third and fourth argument, we show the
-%D implementation. Those who know a bit about the way \TEX\
-%D treats tokens, will probably see in one glance that this
-%D alternative works all right for most text||only situations
-%D in which there is enough text available for the first line,
-%D but that more complicated things will blow. One has to live
-%D with that. A workaround is rather trivial but obscures the
-%D principles used.
-
-\def\TreatFirstLine#1#2#3#4% before, after, first, next
- {\leavevmode
- \bgroup
- \forgetall
- \bgroup
- #1%
- \setbox0\emptybox
- \setbox2\emptybox
- \def\grabfirstline##1 %
- {\setbox2\hbox
- {\ifvoid0
- {#3{\ignorespaces##1}}%
- \else
- \unhcopy0\ {#4{##1}}%
- \fi}%
- \ifdim\wd2=\zeropoint
- \setbox0\emptybox
- \setbox2\emptybox
- \@EA\grabfirstline
- \else\ifdim\wd2>\hsize
- \hbox to \hsize{\strut\unhbox0}#2\egroup
- \break##1\
- \egroup
- \else
- \setbox0\box2
- \@EAEAEA\grabfirstline
- \fi\fi}%
- \grabfirstline}
-
-%D \startbuffer
-%D \gdef\FunnyCommand
-%D {\getrandomfloat\FunnyR{0}{1}%
-%D \getrandomfloat\FunnyG{0}{1}%
-%D \getrandomfloat\FunnyB{0}{1}%
-%D \definecolor[FunnyColor][r=\FunnyR,g=\FunnyG,b=\FunnyB]%
-%D \color[FunnyColor]}
-%D
-%D %\TreatFirstLine {\bf} {} {\FunnyCommand} {\FunnyCommand}
-%D The third and fourth argument can be used to gain special
-%D effects on the individual words. Of course one needs ...
-%D \stopbuffer
-%D
-%D \getbuffer
-%D to know a bit more about the macro package used to get real
-%D nice effects, but this example probably demonstrates the
-%D principles well.
-%D
-%D \typebuffer
-%D
-%D Like in dropped caps case, one can hide such treatments in a
-%D macro, like:
-%D
-%D \starttyping
-%D \def\MyTreatFirstLine%
-%D {\TreatFirstLine{\bf}{}{\FunnyCommand}{\FunnyCommand}}
-%D \stoptyping
-
-%D \macros
-%D {reshapebox}
-%D
-%D \startbuffer
-%D \beginofshapebox
-%D When using \CONTEXT, one can also apply this funny command
-%D to whole lines by using the reshape mechanism. Describing
-%D this interesting mechanism falls outside the scope of this
-%D module, so we only show the trick. This is an example of
-%D low level \CONTEXT\ functionality: it's all there, and it's
-%D stable, but not entirely meant for novice users.
-%D \endofshapebox
-%D
-%D \reshapebox{\FunnyCommand{\box\shapebox}} \flushshapebox
-%D \stopbuffer
-%D
-%D \getbuffer
-%D
-%D \typebuffer
-%D
-%D This mechanism permits hyphenation and therefore gives
-%D better results than the previously discussed macro
-%D \type{\TreatFirstLine}.
-
-%D \macros
-%D {TreatFirstCharacter}
-%D
-%D \startbuffer
-%D \TreatFirstCharacter{\bf\color[green]} Just to be
-%D \stopbuffer
-%D
-%D \getbuffer complete we also offer a very simple one
-%D character alternative, that is not that hard to understand:
-
-\def\TreatFirstCharacter#1#2% command, character
- {{#1{#2}}}
-
-%D A previous paragraph started with:
-%D
-%D \typebuffer
-
-%D \macros
-%D {StackCharacters}
-%D
-%D The next hack deals with vertical stacking.
-
-\def\StackCharacters#1#2#3#4% sequence vsize vskip command
- {\vbox #2
- {\forgetall
- \baselineskip\zeropoint
- \def\StackCharacter##1{#4{##1}\cr\noalign{#3}}%
- \halign
- {\hss##\hss&##\cr
- \handletokens#1\with\StackCharacter\cr}}}
-
-%D \startbuffer
-%D \StackCharacters{CONTEXT}{}{\vskip.2ex}{\FunnyCommand}
-%D \stopbuffer
-%D
-%D Such a stack looks like:
-%D
-%D \startlinecorrection
-%D \hbox to \hsize
-%D {$\hss\bfd
-%D \vcenter{\StackCharacters{TEX} {}{\vskip.2ex}{\FunnyCommand}}%
-%D \hss
-%D \vcenter{\StackCharacters{CON} {}{\vskip.2ex}{\FunnyCommand}}
-%D \hss
-%D \vcenter{\StackCharacters{TEXT} {}{\vskip.2ex}{\FunnyCommand}}
-%D \hss
-%D \vcenter{\StackCharacters{CONTEXT}{}{\vskip.2ex}{\FunnyCommand}}
-%D \hss$}
-%D \stoplinecorrection
-%D
-%D and is typeset by saying:
-%D
-%D \typebuffer
-%D
-%D An alternative would have been
-%D
-%D \starttyping
-%D \StackCharacters {CONTEXT} {to 5cm} {\vfill} {\FunnyCommand}
-%D \stoptyping
-
-%D \macros
-%D {processtokens}
-%D
-%D At a lower level horizontal and vertical manipulations are
-%D already supported by:
-%D
-%D \starttyping
-%D \processtokens {begin} {between} {end} {space} {text}
-%D \stoptyping
-%D
-%D \startbuffer[a]
-%D \processtokens
-%D {\hbox to .5\hsize\bgroup} {\hfill}
-%D {\egroup} {\space} {LET'S HAVE}
-%D \stopbuffer
-%D
-%D \startbuffer[b]
-%D \processtokens
-%D {\vbox\bgroup\raggedcenter\hsize1em}
-%D {\vskip.25ex} {\egroup} {\strut} {FUN}
-%D \stopbuffer
-%D
-%D This macro is able to typeset:
-%D
-%D \leavevmode\hbox to \hsize
-%D {$\hfil\hfil
-%D \vcenter{\bf\getbuffer[a]}%
-%D \hfil
-%D \vcenter{\bfd\getbuffer[b]}%
-%D \hfil\hfil$}
-%D
-%D which was specified as:
-%D
-%D \typebuffer[a]
-%D \typebuffer[b]
-
-%D \macros
-%D {NormalizeFontHeight, NormalizeFontWidth,
-%D TheNormalizedFontSize}
-%D
-%D Next we introduce some font manipulation macros. When we
-%D want to typeset some text spread in a well defined area, it
-%D can be considered bad practice to manipulate character and
-%D word spacing. In such situations the next few macros can be
-%D of help:
-%D
-%D \starttyping
-%D \NormalizeFontHeight \name {sample text} {height} {font}
-%D \NormalizeFontWidth \name {sample text} {width} {font}
-%D \stoptyping
-%D
-%D These are implemented using an auxilliary macro:
-
-\def\NormalizeFontHeight{\NormalizeFontSize\ht}
-\def\NormalizeFontWidth {\NormalizeFontSize\wd}
-
-% \def\NormalizeFontSize#1#2#3#4#5%
-% {\bgroup
-% \dimen0=#4% #4 can be \ht0 or so
-% \setbox0\hbox{\definedfont[#5 at 10pt]#3}%
-% \ifdim\wd0>\zeropoint
-% \dimen2=#10 % #1 is \wd or \ht
-% \dimen4=10000pt
-% \divide\dimen4 \dimen2
-% \divide\dimen0 \plusthousand
-% \dimen0=\number\dimen4\dimen0
-% \xdef\TheNormalizedFontSize{\the\dimen0}%
-% \else
-% \dimen0\bodyfontsize
-% \fi
-% \definedfont[#5 at \the\dimen0]%
-% \expandafter
-% \egroup
-% \expandafter\font\expandafter#2\fontname\font\relax}
-%
-% the familiar struggle with accuracy forces us to use:
-
-\def\NormalizeFontSize#1#2#3#4#5%
- {\bgroup
- \dimen0=#4% #4 can be \ht0 or so
- \setbox0\hbox{\definedfont[#5 at 5pt]#3}% 10pt
- \ifdim\wd0>\zeropoint
- \dimen2=#10 % #1 is \wd or \ht
- \dimen4=\maxdimen % 10000pt
- \divide\dimen4 \dimen2
- \divide\dimen0 1638 % 1000
- \dimen0=\number\dimen4\dimen0
- \divide \dimen0 \plustwo % ...
- \xdef\TheNormalizedFontSize{\the\dimen0}%
- \else
- \dimen0\bodyfontsize
- \fi
- % mkii
- % \definedfont[#5 at \the\dimen0]%
- % \expandafter
- % \egroup
- % \expandafter\font\expandafter#2\fontname\font\relax}
- % mkiv safe (file: prefix etc)
- \expanded{\egroup\def\noexpand#2{\definedfont[#5 at \the\dimen0]}}}
-
-%D Afterwards, we have access to the calculated size by:
-
-\let\TheNormalizedFontSize\!!zeropoint
-
-%D Extra:
-
-\def\WidthSpanningText#1#2#3% text width font
- {\hbox{\NormalizeFontWidth\temp{#1}{#2}{#3}\temp\the\everydefinedfont#1}}
-
-%D Consider for instance:
-%D
-%D \startbuffer
-%D \NormalizeFontHeight \tmp {X} {2\baselineskip} {cmr10}
-%D
-%D {\tmp To Be Or Not To Be}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D This shows up as (we also show the baselines):
-%D
-%D {\showbaselines\getbuffer}
-%D
-%D The horizontal counterpart is:
-%D
-%D \startbuffer
-%D \NormalizeFontWidth \tmp {This Line Fits} {\hsize} {cmr10}
-%D
-%D \hbox{\tmp This Line Fits}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D The calculated font scale is avaliable in the macro
-%D \type{\NormalizedFontSize}.
-%D
-%D \startlinecorrection
-%D \ruledhbox{\getbuffer}
-%D \stoplinecorrection
-%D
-%D One can of course combine these macros with the ones
-%D described earlier, like in:
-%D
-%D \starttyping
-%D \NormalizeFontHeight {text} \DroppedFont {2\baselineskip} {cmbx12}
-%D
-%D \def\NicelyDroppedCaps
-%D {\DroppedCaps
-%D {\color[green]}
-%D {\DroppedFont}
-%D {2pt}
-%D {\baselineskip}
-%D {2}}
-%D \stoptyping
-%D
-%D It's up to the reader to test this one.
-
-\unexpanded\def\FirstNCharacters#1#2% \FirstNCharacters{3}{fr{\"o}beln}
- {\bgroup
- \scratchcounter\zerocount
- \def\docommand##1%
- {\ifnum\scratchcounter=#1\else
- ##1\relax % catches ##1 = \"e and alike
- \advance\scratchcounter\plusone
- \fi}
- \handletokens#2\with\docommand
- \egroup}
-
-%D \macros
-%D {FittingText}
-%D
-%D First used in Pascal (demo-bbv):
-%D
-%D \startbuffer
-%D \ruledvbox{\FittingText{3cm}{1cm}{Serif}{24pt}{1pt}{1}
-%D {\veryraggedright
-%D \hangindent1em\hangafter1\relax
-%D \begstrut \dorecurse{8}{Bram Marta }\unskip \endstrut}}
-%D
-%D \ruledvbox{\FittingText{3cm}{1cm}{Serif}{24pt}{1pt}{1}
-%D {\raggedleft\begstrut Bram\\Marta \unskip\endstrut}}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \startlinecorrection
-%D \getbuffer
-%D \stoplinecorrection
-
-% #1 width #2 height #3 font #4 size #5 step #6 interlinie #7 text
-
-\long\def\FittingText#1#2#3#4#5#6#7%
- {\bgroup
- \forgetall
- \dontcomplain
- \setuptolerance[\v!verytolerant]% == \tolerance4500
- \hsize#1%
- \def\\{\softbreak}%
- \!!heighta#4%
- \!!heightb#2%
- \doloop
- {\ifdim\!!heighta>\onepoint
- \expanded{\definefont[\s!dummy][#3 at \the\!!heighta][\c!interlinespace=#6]}%
- \getvalue\s!dummy
- \setbox\scratchbox\vbox{#7\endgraf}%
- \ifdim\ht\scratchbox>\!!heightb
- \advance\!!heighta-#5%
- \else
- \beginshapebox
- \unvcopy\scratchbox
- \endshapebox
- \global\dimen1\hsize
- \reshapebox
- {\setbox\shapebox\hbox{\unhbox\shapebox}%
- \ifdim\wd\shapebox>\dimen1
- \global\dimen1\wd\shapebox
- \fi}%
- \ifdim\dimen1>\hsize
- \advance\!!heighta-#5%
- \else
- \exitloop
- \fi
- \fi
- \else
- \exitloop
- \fi}%
- %\writestatus{\strippedcsname\FittingText}{height: \the\!!heighta}%
- \unvbox\scratchbox
- \egroup}
-
-%D New:
-
-% \font width gap font spec text
-
-\def\NormalizeFontWidthSpread#1#2#3#4#5#6%
- {\global\setfalse\NFSpread
- \scratchdimen#3%
- \scratchdimen-.5\scratchdimen
- \advance\scratchdimen#2\relax
- \NormalizeFontWidth
- #1%
- {\def\+{\global\settrue\NFSpread\gobbleuntil\relax}%
- \def\\{\gobbleuntil\relax}% newline
- \setupspacing
- #6\relax}%
- {\scratchdimen}%
- {#4}%
- \ifconditional\NFSpread
- % de gap valt in de binding
- \else
- \definefont[\strippedcsname#1][#4 #5]%
- \fi}
-
-\def\SpreadGapText#1#2%
- {{\def\+{\kern#1}#2}}
-
-\def\GapText#1#2#3#4#5% width distance font spec title
- {\bgroup
- \NormalizeFontWidthSpread\DummyFont{#1}{#2}{#3}{#4}{#5}%
- \DummyFont\setupspacing\SpreadGapText{#2}{#5}\endgraf
- \egroup}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-lat.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-lat.mkii
deleted file mode 100644
index 343a7674c27..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-lat.mkii
+++ /dev/null
@@ -1,59 +0,0 @@
-%D \module
-%D [ file=syst-ltx,
-%D version=2009.10.13,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=General,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D The bib module assumes that sometimes this command is used but
-%D in \MKIV\ we no longer assume that.
-%D
-%D \macros
-%D {newcommand}
-%D
-%D This module replaces \type {t-bibltx} and implements the
-%D \LATEX\ newcommand (sort of). This command is not to be
-%D used directly but only is there for the occasional
-%D \BIBTEX\ file that uses it.
-%D
-%D \starttyping
-%D \newcommand\oeps {oeps}
-%D \newcommand\oeps[6] {oeps[#1]#6}
-%D \newcommand\oeps[6][whatever]{oeps[#1]#6}
-%D \stoptyping
-
-\unprotect
-
-\def\newcommand#1%
- {\dotripleempty\donewcommand[#1]}
-
-\def\donewcommand
- {\ifthirdargument
- \expandafter\donewcommandtwo
- \else\ifsecondargument
- \expandafter\expandafter\expandafter\donewcommandone
- \else
- \expandafter\expandafter\expandafter\donewcommandzero
- \fi\fi}
-
-\def\donewcommandzero[#1][#2][#3]%
- {\long\def#1}
-
-\def\donewcommandone[#1][#2][#3]%
- {\scratchtoks{\long\def#1}%
- \dorecurse{#2}{\scratchtoks\expandafter{\the\scratchtoks######1}}%
- \the\scratchtoks}
-
-\def\donewcommandtwo[#1][#2][#3]%
- {\long\def#1{\doifnextcharelse[{\getvalue{>>\string#1>>}}{\getvalue{>>\string#1>>}[#3]}}%
- \scratchtoks{\long\setvalue{>>\string#1>>}[##1]}%
- \dostepwiserecurse{2}{#2}{1}{\scratchtoks\expandafter{\the\scratchtoks######1}}%
- \the\scratchtoks}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-mat.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-mat.mkii
deleted file mode 100644
index e8a34fc90ee..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-mat.mkii
+++ /dev/null
@@ -1,293 +0,0 @@
-%D \module
-%D [ file=supp-mat,
-%D version=1998.09.10,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=Math,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D For practical reasons, I decided to move some math things to
-%D a support module. There is nothing spectacular here. It may move
-%D back to math-ini.
-
-\writestatus{loading}{ConTeXt Support Macros / Math}
-
-\unprotect
-
-%D \macros
-%D {mathematics, math, nomathematics, startmathmode}
-%D
-%D The \type{$} can be both an begin and end math character.
-%D This can lead to confusing and errorprone situations when
-%D macros insert \type{$}. When for instance we have defined:
-%D
-%D \starttyping
-%D \def\MyPlus{$\,+\,$}
-%D \stoptyping
-%D
-%D the sequence \type{$x^2 \MyPlus y^2 = r^2$} will expand to:
-%D
-%D \starttyping
-%D $x^2 $\,+\,$ y^2 = r^2$
-%D \stoptyping
-%D
-%D Here the \type{\,} are given outside math mode and \TEX\ will
-%D definitely complain about this. A more save definition would
-%D have been:
-%D
-%D \starttyping
-%D \def\MyPlus{\mathematics{\,+\,}}
-%D \stoptyping
-%D
-%D Which is implemented as:
-
-\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{\dontleavehmode\relax\ifmmode#1\else $#1$\fi}
-
-\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%
- {\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}
- \def\inlinemathematics {\dontleavehmode\mathematics}
- \def\automathematics {\relax\ifhmode\@EA\inlinemathematics\else\@EA\displaymathematics\fi}
-
-% better, esp when used in bTABLE ... eTABLE
-
-\def\automathematics
- {\relax
- \ifhmode
- \expandafter\inlinemathematics
- \else\ifintable
- \expandafter\expandafter\expandafter\inlinemathematics
- \else
- \expandafter\expandafter\expandafter\displaymathematics
- \fi\fi}
-
-%D \macros
-%D {dimension, nodimension}
-%D
-%D The next few macros are used for typesetting dimensions in
-%D such a way that spacing is acceptable. I won't spend much
-%D words on these macros, because they will be overloaded in
-%D the units module.
-
-\newsignal\dimensionsignal
-
-\def\dimensiontypeface {\tf}
-\def\dimensionhalfspace {\,}
-
-\unexpanded\def\dimension#1%
- {\def\dodimensionsignal{\kern\dimensionsignal}%
- \ifdim\lastskip=\zeropoint\relax
- \ifdim\lastkern=\zeropoint\relax
- \ifmmode
- \mathematics{\dimensionhalfspace\dimensionhalfspace\dimensiontypeface#1}%
- \else
- \mathematics{\dimensiontypeface#1}%
- \fi
- \else\ifdim\lastkern=\dimensionsignal
- \mathematics{\dimensionhalfspace\dimensiontypeface#1}%
- \else
- \unkern\mathematics{\dimensionhalfspace\dimensionhalfspace\dimensiontypeface#1}%
- \fi\fi
- \else
- \unskip\mathematics{\dimensionhalfspace\dimensionhalfspace\dimensiontypeface#1}%
- \fi
- \dodimensionsignal}
-
-\unexpanded\def\nodimension#1%
- {\unskip#1\global\let\dodimensionsignal\relax}
-
-%D \macros
-%D {super, suber}
-%D
-%D \TEX\ uses \type{^} and \type{_} for entering super- and
-%D subscript mode. We want however a bit more control than
-%D normally provided, and therefore provide \type {\super}
-%D and \type{\suber} (\type {\sub} is already taken).
-
-\global\let\normalsuper=^
-\global\let\normalsuber=_
-
-\newcount\supersubmode
-
-\newevery\everysupersub \EverySuperSub
-
-\appendtoks \advance\supersubmode 1\relax \to \everysupersub
-
-% \def\dodosuper#1{\normalsuper{\the\everysupersub#1}}
-% \def\dodosuber#1{\normalsuber{\the\everysupersub#1}}
-%
-% \def\dosuper{\ifx\next\bgroup\expandafter\dodosuper\else\normalsuper\fi}
-% \def\dosuber{\ifx\next\bgroup\expandafter\dodosuber\else\normalsuber\fi}
-%
-% \def\super{\futurelet\next\dosuper}
-% \def\suber{\futurelet\next\dosuber}
-
-\def\super#1{\normalsuper{\the\everysupersub#1}}
-\def\suber#1{\normalsuber{\the\everysupersub#1}}
-
-%D \macros
-%D {enablesupsub}
-%D
-%D We can let \type {^} and \type {_} act like \type {\super}
-%D and \type {\suber} by saying \type {\enablesupsub}.
-
-\bgroup
-\catcode`\^=\@@active
-\catcode`\_=\@@active
-\gdef\enablesupsub
- {\catcode`\^=\@@active
- \def^{\ifmmode\expandafter\super\else\expandafter\normalsuper\fi}%
- \catcode`\_=\@@active
- \def_{\ifmmode\expandafter\suber\else\expandafter\normalsuber\fi}}
-\egroup
-
-%D \macros
-%D {restoremathstyle}
-%D
-%D We can pick up the current math style by calling \type
-%D {\restoremathstyle}.
-
-\def\restoremathstyle
- {\ifmmode
- \ifcase\supsubmode
- \textstyle
- \or
- \scriptstyle
- \else
- \scriptscriptstyle
- \fi
- \fi}
-
-%D \macros
-%D {cramped}
-%D
-%D \TEX provides no primitive to force in cramped math mode. Here is
-%D a macro that does so. It is based on a solution by Don Knuth (\useurl
-%D {http://www.ctan.org/tex-archive/digests/tex-implementors/042}).
-%D
-%D \startbuffer
-%D \ruledhbox{$\left\{{x^2\over y^2}\right\}$}
-%D \ruledhbox{$\cramped{\left\{ {x^2\over y^2}\right\}}$}
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-\def\cramped
- {\mathpalette\docramped}
-
-%D We force a cramped style by issuing a non||existing radical (box).
-%D After that we make sure the height is correct. (Comment taken from
-%D Morten Høgholm's mathtools package.) Macro suggested by AM and
-%D cleaned up a bit by HH.
-
-% original
-%
-% \def\docramped#1#2%
-% {\setbox\scratchbox\hbox
-% {\nulldelimiterspace\zeropoint
-% $\mathsurround\zeropoint#1\radical\zerocount{#2}$}%
-% \ifx#1\displaystyle
-% \scratchdimen\fontdimen8\textfont3
-% \advance\scratchdimen .25\fontdimen5\textfont2
-% \else
-% \scratchdimen1.25\fontdimen8
-% \ifx#1\textstyle\textfont
-% \else
-% \ifx#1\scriptstyle\scriptfont\else\scriptscriptfont\fi
-% \fi
-% 3
-% \fi
-% \advance\scratchdimen-\ht\scratchbox
-% \ht\scratchbox-\scratchdimen
-% \box\scratchbox}
-
-\def\docramped#1#2%
- {\begingroup % added HH, made even more cramped
- \setbox\scratchbox\hbox
- {\nulldelimiterspace\zeropoint
- $\mathsurround\zeropoint#1\radical\zerocount{#2}$}%
- \ht\scratchbox-\dimexpr
- \ifx#1\displaystyle
- \fontdimen8\textfont3
- +.25\fontdimen5\textfont2
- \else
- 1.25\fontdimen8
- \ifx#1\textstyle
- \textfont
- \else\ifx#1\scriptstyle
- \scriptfont
- \else
- \scriptscriptfont
- \fi \fi
- \plusthree
- \fi
- -\ht\scratchbox
- \relax
- \box\scratchbox
- \endgroup}
-
-%D \macros
-%D {cramedllap, crampedrlap, crampedclap}
-%D
-%D In many cases, one wants to use the \tex {clap} macro in
-%D math mode while using subscripts. Normally, subscripts are
-%D in cramped mode, and these macros allow you to go to
-%D cramped mode. For example:
-%D
-%D \startbuffer
-%D \startformula
-%D \sum_{a^2 < b^2 < c^2} \quad
-%D \sum_{\clap{a^2 < b^2 < c^2}} \quad
-%D \sum_{\crampedclap{a^2 < b^2 < c^2}}
-%D \stopformula
-%D \stopbuffer
-%D
-%D \start
-%D \typebuffer
-%D \switchtobodyfont[24pt]
-%D \getbuffer
-%D \stop
-%D
-%D Notice that \type {\clap{\cramped ... }} would also work,
-%D but it requires \TEX\ to typeset it arguments 16 times.
-
-\def\docrampedllap#1#2{{}\dollap{\docramped #1{#2}}}
-\def\docrampedrlap#1#2{{}\dorlap{\docramped #1{#2}}}
-\def\docrampedclap#1#2{{}\doclap{\docramped #1{#2}}}
-
-\def\crampedllap{\mathpalette\docrampedllap}
-\def\crampedrlap{\mathpalette\docrampedrlap}
-\def\crampedclap{\mathpalette\docrampedclap}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-mis.tex b/Master/texmf-dist/tex/context/base/mkii/supp-mis.tex
deleted file mode 100644
index bda8d4f6fda..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-mis.tex
+++ /dev/null
@@ -1,4 +0,0 @@
-% This file is not needed, for instance supp-pdf has the relevant code
-% built in and ppchtex is adapted.
-
-\input supp-mis.mkii
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-mpe.tex b/Master/texmf-dist/tex/context/base/mkii/supp-mpe.tex
deleted file mode 100644
index f4438133a2a..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-mpe.tex
+++ /dev/null
@@ -1,4 +0,0 @@
-% This file is not needed as I don't expect other macro packages
-% to support the metafun extensions.
-
-\input supp-mpe.mkii
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-mps.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-mps.mkii
deleted file mode 100644
index 3991280e6d4..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-mps.mkii
+++ /dev/null
@@ -1,2134 +0,0 @@
-%D \module
-%D [ file=supp-mps,
-%D version=1997.07.05,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=\METAPOST\ Inclusion,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Forget about generic modules \unknown\ ...
-
-\ifx \undefined \contextversion \endinput \fi
-
-%D \METAPOST\ is John Hobbys alternative for \METAFONT\ and
-%D produces superior \POSTSCRIPT\ code. In this module we
-%D integrate \METAPOST\ support int \CONTEXT. We offer two
-%D tracks:
-%D
-%D \startitemize
-%D \item generating \METAPOST\ code, running this program from
-%D within \TEX\ using \type{\write18}, and importing the
-%D result
-%D \item generating \METAPOST\ code, processing the code
-%D afterward, and importing the result in a second pass
-%D \stopitemize
-%D
-%D The first approach uses a non standard \TEX\ feature,
-%D implemented in Web2c. I'm not going to discuss the pros and
-%D cons of running programs from within others, but all
-%D arguments against this can be overcome by implementing a
-%D \TEX\ worthy primitive:
-%D
-%D \starttyping
-%D \excuteMetaPost filename
-%D \stoptyping
-%D
-%D Ok then, let's start:
-
-\writestatus{loading}{ConTeXt Support Macros / MetaPost Inclusion}
-
-\unprotect
-
-\def\@@MPG{@MPG@}
-
-%D First we define a handy constant:
-
-\bgroup \catcode`\%=\@@other \xdef\letterpercent{\string%} \egroup
-
-% todo : sort out ^^M, \par and ; mess
-
-%D \macros
-%D {everyMPgraphic}
-%D
-%D Because some graphics interact with \TEX\ (i.e.\ \CONTEXT), we
-%D provide a hook for additional actions: \type {\everyMPgraphic}.
-
-\newtoks\everyMPgraphic \everyMPgraphic{\everyMPgraphic\emptytoks}
-
-%D \macros
-%D {startMPgraphic}
-%D
-%D From within \TEX\ one can execute \METAPOST\ code by putting
-%D it between the two commands
-%D
-%D \starttyping
-%D \startMPgraphic
-%D \stopMPgraphic
-%D \stoptyping
-%D
-%D This is implemented as:
-
-\let\stopMPgraphic\relax
-
-\long\def\startMPgraphic#1\stopMPgraphic
- {\startwritingMPgraphic
- \writecheckedMPgraphic{#1}% % potential speedup: pass #1 as macro
- \stopwritingMPgraphic}
-
-%D \macros
-%D {startMPrun}
-%D
-%D If we just want to run \METAPOST\ code, that is, not to
-%D explictly generate a figure in terms of \type{beginfig} and
-%D \type{endfig}, we can use:
-%D
-%D \starttyping
-%D \startMPgraphic
-%D \stopMPgraphic
-%D \stoptyping
-%D
-%D \starttyping
-%D \startMPrun
-%D \stopMPrun
-%D \stoptyping
-%D
-%D The next booleans are for internal purposes only.
-
-% some day a bit more more clear:
-%
-% run directly/run afterwards/run external defined
-% insert directly/insert whenever
-% use object/don't use objects
-
-\newif\ifMPgraphics \MPgraphicstrue
-\newif\ifMPrun \MPrunfalse
-\newif\ifMPwrapper \MPwrappertrue
-
-\let\stopMPrun\relax
-
-\ifCONTEXT
-
- \long\def\dostartMPrun#1#2\stopMPrun
- {\bgroup
- \MPruntrue
- \doifsomething{#1}{\def\MPgraphicfile{#1}}%
- \startwritingMPgraphic
- \writecheckedMPgraphic{#2}%
- \stopwritingMPgraphic
- \egroup}
-
- \def\startMPrun
- {\dosinglegroupempty\dostartMPrun}
-
-\else
-
- \long\def\startMPrun#1\stopMPrun
- {\MPruntrue
- \startwritingMPgraphic
- \writecheckedMPgraphic{#1}%
- \stopwritingMPgraphic
- \MPrunfalse}
-
-\fi
-
-%D \macros
-%D {startwritingMPgraphic,
-%D writeMPgraphic,
-%D stopwritingMPgraphic}
-%D
-%D If the writing process is divided into more steps, one can
-%D use the components of this macro directly.
-%D
-%D \starttyping
-%D \startwritingMPgraphic
-%D ...
-%D \writeMPgraphic{...}
-%D ...
-%D \writeMPgraphic{...}
-%D ...
-%D \stopwritingMPgraphic
-%D \stoptyping
-
-%D \macros
-%D {ifrunMPgraphics,ifrunMPTEXgraphics,ifinsertMPgraphics}
-%D
-%D These macros look a bit more complicated that one would
-%D expect at first sight. This is due to the two ways of
-%D processing these graphics, mentioned in a previous
-%D paragraph. Which method is used, the direct or indirect
-%D one, depends on a boolean.
-
-\newif\ifrunMPgraphics \runMPgraphicsfalse
-\newif\ifrunMPTEXgraphics \runMPTEXgraphicsfalse
-\newif\ifinsertMPgraphics \insertMPgraphicstrue
-
-%D If set to true, one can do with a single pass, else one must
-%D process the \METAPOST\ file \type{mpgraph} between two
-%D succesive \TEX\ runs.
-
-\ifx\MPgraphicfile\undefined
-
-\def\MPgraphicfile{mp\ifMPrun run\else graph\fi}
-\def\MPruntimefile{mprun}
-
-\fi
-
-%D \macros
-%D {MPgraphic}
-%D
-%D When we run \METAPOST\ from within \TEX, each graphic is
-%D processed at once, which means that we reuse this file many
-%D times. When however the execution is delayed, all graphics
-%D are saved in a separate figure. The current graphic is
-%D characterized bij a \COUNTER. This counter is available
-%D in \type{\MPgraphic}.
-
-\newcount\nofMPgraphics
-\newcount\currentMPgraphic
-
-\def\MPgraphic{0}
-
-% %D \macros
-% %D {ifreuseMPgraphics}
-% %D
-% %D If one want to reuse grapics, one can save much redundant
-% %D run time by setting the next switch to true.
-%
-% \newif\ifreuseMPgraphics \reuseMPgraphicstrue
-
-%D The three macros responsible for writing the graphic
-%D implement both schemes.
-
-%D \macros
-%D {MPinclusions, startMPinclusions, MPinitializations}
-%D
-%D One can include for instance common input commands by
-%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.
-
-%D The next hack prevents too long lines:
-
-\long\def\runtimeobeyMPlines
- {\catcode35=11\relax % goodie
- \ifx\rawcharacter\undefined
- \let\obeyedline\space
- \else
- \obeylines
- \ifx\outputnewlinechar\undefined
- \edef\obeyedline{\rawcharacter{\endlinechar}}%
- \else
- \let\obeyedline\outputnewlinechar
- \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}}
-
-\def\startMPinitializations % no text checking done here !
- {\begingroup
- \obeyMPlines
- \dostartMPinitializations}
-
-\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
-
-%D \macros
-%D {iflongMPlines}
-%D
-%D When grabbing a graphic deifnition, newlines are turned
-%D into spaces. By default we split the graphic definition
-%D at the colon, but long lines are still possible by
-%D setting the next boolean to true.
-
-\newwrite\MPwrite
-\newwrite\MPstaticwrite
-
-\newif\iflongMPlines \longMPlinestrue % we now have \obeyMPlines
-
-\ifx \overlaywidth \undefined \def \overlaywidth {4cm} \fi
-\ifx \overlayheight \undefined \def \overlayheight {3cm} \fi
-\ifx \overlaylinewidth \undefined \def \overlaylinewidth {0pt} \fi
-
-\def\presetMPdefinitions
- {\edef\overlaywidth {\overlaywidth \space}%
- \edef\overlayheight {\overlayheight \space}%
- \edef\overlaylinewidth {\overlaylinewidth\space}%
- \edef\currentwidth {\the\hsize \space}%
- \edef\currentheight {\the\vsize \space}}
-
-%D The \type {;} aware method (the \type {\else} branch) also
-%D takes care of \type {btex}||\type {etex}, \type
-%D {verbatimtex}||\type {etex}. The space after \type {tex}
-%D is essential, since it protects \type {text}.
-
-\newif\ifMPTEXgraphic
-
-\let\bufferedMPgraphicsline\empty
-
-\appendtoks
- \globallet\bufferedMPgraphicsline\empty
-\to \everyMPgraphic
-
-\chardef\MPgraphicsscanmode\plustwo % 0=no scanning, 1=simple scanning, 2=less simple, 3=even less
-
-% the next fails with \chardef\MPgraphicsscanmode\plusone
-%
-% \startMPextensions
-% gp_num_points_with_tex := 3 ;
-% \stopMPextensions
-
-\def\writeMPgraphic % no big #1 passing here
- {\iflongMPlines
- \ifMPTEXgraphic
- \ifcase\MPgraphicsscanmode
- \let\next\writeMPgraphiclongR
- \else
- \let\next\writeMPgraphiclongT
- \fi
- \else
- \let\next\writeMPgraphiclongN
- \fi
- \else
- \ifMPTEXgraphic
- \ifcase\MPgraphicsscanmode
- \let\next\writeMPgraphicshortN % we could \let \writeMPgraphicshortR\writeMPgraphicshortN
- \else
- \let\next\writeMPgraphicshortT
- \fi
- \else
- \let\next\writeMPgraphicshortN
- \fi
- \fi
- \next}
-
-\appendtoks \obeyMPlines \to \everyMPgraphic % more efficient than in each following grouped write
-
-\long\def\writeMPgraphiclongR#1% fast, no scanning
- {\bgroup
- \let\par\space
- \immediate\write\MPwrite{#1}%
- \egroup}
-
-\long\def\writeMPgraphiclongT#1%
- {\bgroup
- \let\par\space
- \longMPflushT#1\empty\par\relax\par
- \egroup}
-
-\long\def\writeMPgraphicshortT#1%
- {\bgroup
- \let\par\space
- \shortMPflushT#1\empty;\relax;%
- \egroup}
-
-\long\def\longMPflushT#1#2\par
- {\ifx#1\relax \else
- \dowriteMPgraphicline#1#2tex \relax etex\MPend
- \expandafter\longMPflushT
- \fi}
-
-\long\def\shortMPflushT#1#2;%
- {\ifx#1\relax \else
- \dowriteMPgraphicline#1#2tex \relax etex\MPend
- \expandafter\shortMPflushT
- \fi}
-
-\long\def\writeMPgraphiclongN#1%
- {\bgroup
- \let\par\space
- \longMPflushN#1\empty\par\relax\par
- \egroup}
-
-\long\def\writeMPgraphicshortN#1%
- {\bgroup
- \let\par\space
- \shortMPflushN#1\empty;\relax;%
- \egroup}
-
-\long\def\longMPflushN#1#2\par
- {\ifx#1\relax \else
- \nowriteMPgraphicline#1#2\MPend
- \expandafter\longMPflushN
- \fi}
-
-\long\def\shortMPflushN#1#2;%
- {\ifx#1\relax \else
- \nowriteMPgraphicline#1#2\MPend
- \expandafter\shortMPflushN
- \fi}
-
-\def\dowriteMPgraphicline{\futurelet\next\dodowriteMPgraphicline}
-\def\nowriteMPgraphicline{\futurelet\next\nonowriteMPgraphicline}
-
-%D Will move (check if next is needed):
-
-\long\def\nonowriteMPgraphicline#1\MPend
- {\ifx\next\empty\else\ifx\next\relax\else
- \bgroup
- \let\par\space
- \iflongMPlines
- %\immediate\write\MPwrite{#1;}% oeps, ; invalid
- \immediate\write\MPwrite{#1}%
- \else
- \long\edef\ascii{#1}%
- \expandafter\flushMPgraphicline\ascii\empty;\relax;%
- \fi
- \egroup
- \fi\fi}
-
-%D A first version:
-%D
-%D \starttyping
-%D \long\def\dodowriteMPgraphicline#1tex #2#3etex#4\MPend%
-%D {\ifx\next\empty\else\ifx\next\relax\else
-%D \bgroup
-%D \let\par=\space
-%D \ifx#2\relax
-%D \immediate\write\MPwrite{#1;}%
-%D \egroup
-%D \else
-%D \global\MPTEXgraphictrue
-%D \convertargument#2#3\to\ascii
-%D \immediate\write\MPwrite{#1tex \ascii etex}%
-%D \egroup
-%D \dowriteMPgraphicline#4tex \relax etex\MPend
-%D \fi
-%D \fi\fi}
-%D \stoptyping
-
-%D The next alternative also handles inclusions well.
-
-\newtoks \everyMPTEXgraphic
-
-\newif\ifforceMPTEXgraphic
-
-%D Before we supported the graph module, we had:
-%D
-%D \starttyping
-%D \convertargument etex\to\MPasciiB
-%D \convertargument textext\to\MPasciiC % geen "text"
-%D \convertargument graphictext\to\MPasciiD % geen "text"
-%D
-%D \long\def\checkMPTEXgraphic#1%
-%D {\ifforceMPTEXgraphic
-%D \global\MPTEXgraphictrue
-%D \else
-%D \expandafter\convertargument#1\to\MPasciia
-%D \doifstringinstringelse\MPasciiB\MPasciia{\global\MPTEXgraphictrue}
-%D {\doifstringinstringelse\MPasciiC\MPasciia{\global\MPTEXgraphictrue}
-%D {\doifstringinstringelse\MPasciiD\MPasciia{\global\MPTEXgraphictrue}
-%D {\global\MPTEXgraphicfalse}}}%
-%D \fi}
-%D \stoptyping
-%D
-%D The next alternative permits extensions in other modules
-%D without the need to know the details of testing.
-
-\newtoks\MPTEXgraphicchecks
-
-\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
- \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
-%D as efficient alternative. (The uglyness comes from
-%D expanding after the string \type {#1}).
-
-\let\MPTEXchecklist\empty
-
-\def\forceMPTEXcheck#1%
- {\addtocommalist{#1}\MPTEXchecklist
- \expanded{\convertargument#1\noexpand\to
- \@EA\noexpand\csname MPascii#1\endcsname}%
- \@EA\appendtoks
- \@EA\doifincsnameelse\csname MPascii#1\endcsname\MPascii
- {\global\MPTEXgraphictrue\gobbleuntil\relax}\donothing
- \to \MPTEXgraphicchecks}
-
-\forceMPTEXcheck{etex}
-\forceMPTEXcheck{textext}
-\forceMPTEXcheck{graphictext}
-
-%D \starttyping
-%D \forceMPTEXgraphictrue
-%D
-%D \forceMPTEXcheck{lintext}
-%D \forceMPTEXcheck{logtext}
-%D
-%D \startMPcode
-%D draw hlintext.lft(0, 20, 5, 20cm, "@3e") ;
-%D draw vlogtext.bot(0, 10, 9, 10cm, "@3e") ;
-%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;}%
- \fi}
-
-\long\def\flushMPgraphicline#1#2;%
- {\ifx#1\relax \else
- \immediate\write\MPwrite{#1#2;}%
- \expandafter\flushMPgraphicline
- \fi}
-
-% the next one fails on btex \vbox {\hbox .. leading to \vbox \hbox
-%
-% \long\def\dodowriteMPgraphicline#1tex #2#3etex#4\MPend
-% {\ifx\next\empty\else\ifx\next\relax\else
-% \bgroup
-% \let\par\space
-% \ifx#2\relax
-% \iflongMPlines
-% \immediate\write\MPwrite{#1;}%
-% \else
-% \edef\ascii{#1}%
-% \expandafter\flushMPgraphicline\ascii\empty;\relax;%
-% \fi
-% \egroup
-% \else
-% \convertargument#2#3\to\ascii
-% \immediate\write\MPwrite{#1tex \ascii etex}%
-% \egroup
-% \dowriteMPgraphicline#4tex \relax etex\MPend
-% \fi
-% \fi\fi}
-%
-% so we need a two step approach
-
-% \long\def\dodowriteMPgraphicline#1tex %
-% {\doifnextcharelse\relax
-% {\nododowriteMPgraphicline{#1}}
-% {\redodowriteMPgraphicline{#1}}}
-%
-% better and faster
-
-% \long\def\dodowriteMPgraphicline#1tex #2%
-% {\ifx#2\relax
-% \expandafter\nododowriteMPgraphicline
-% \else
-% \expandafter\redodowriteMPgraphicline
-% \fi{#1} #2}
-%
-% \long\def\redodowriteMPgraphicline#1#2etex#3\MPend
-% {\ifx\next\empty\else\ifx\next\relax\else
-% \bgroup
-% \let\par\space
-% \convertargument#2\to\ascii
-% \immediate\write\MPwrite{#1tex \ascii etex}%
-% \egroup
-% \dowriteMPgraphicline#3tex \relax etex\MPend
-% \fi\fi}
-%
-% \long\def\nododowriteMPgraphicline#1#2\MPend
-% {\ifx\next\empty\else\ifx\next\relax\else
-% \bgroup
-% \let\par\space
-% \iflongMPlines
-% \immediate\write\MPwrite{#1;}%
-% \else
-% \long\edef\ascii{#1}%
-% \expandafter\flushMPgraphicline\ascii\empty;\relax;%
-% \fi
-% \egroup
-% \fi\fi}
-
-% extra scanning
-
-\long\def\dodowriteMPgraphicline#1tex #2% kind of ok
- {\ifx#2\relax
- \expandafter\nododowriteMPgraphicline
- \else
- \ifcase\MPgraphicsscanmode
- % can't happen
- \or
- \@EAEAEA\redodowriteMPgraphicline
- \or
- \doifinstringelse{b$} {#1$}{\@EAEAEA\redodowriteMPgraphicline}%
- {\doifinstringelse{verbatim$}{#1$}{\@EAEAEA\redodowriteMPgraphicline}%
- {\@EAEAEA\dododowriteMPgraphicline}}%
- \else
- \doifinstringelse { b$}{#1$}{\@EAEAEA\redodowriteMPgraphicline}%
- {\doifinstringelse {(b$}{#1$}{\@EAEAEA\redodowriteMPgraphicline}%
- {\doifinstringelse {=b$}{#1$}{\@EAEAEA\redodowriteMPgraphicline}%
- {\doifinstringelse{verbatim$}{#1$}{\@EAEAEA\redodowriteMPgraphicline}%
- {\@EAEAEA\dododowriteMPgraphicline}}}}%
- \fi
- \fi{#1} #2}
-
-\def\dododowriteMPgraphicline#1#2\MPend
- {\doifsomething{#1}{\xdef\bufferedMPgraphicsline{\bufferedMPgraphicsline#1tex }}%
- \dowriteMPgraphicline#2tex \relax etex\MPend}
-
-\long\def\redodowriteMPgraphicline#1#2etex#3\MPend
- {\ifx\next\empty
- \else\ifx\next\relax
- \else
- \bgroup
- \let\par\space
- \convertargument#2\to\ascii
- \immediate\write\MPwrite{\bufferedMPgraphicsline#1tex \ascii etex}%
- \globallet\bufferedMPgraphicsline\empty
- \egroup
- \dowriteMPgraphicline#3tex \relax etex\MPend
- \fi\fi}
-
-\long\def\nododowriteMPgraphicline#1#2\MPend
- {\ifx\next\empty
- \else\ifx\next\relax
- \else
- \bgroup
- \let\par\space
- \iflongMPlines
- \immediate\write\MPwrite{\bufferedMPgraphicsline#1;}%
- \globallet\bufferedMPgraphicsline\empty
- \else
- \long\edef\ascii{\bufferedMPgraphicsline#1}%
- \expandafter\flushMPgraphicline\ascii\empty;\relax;%
- \fi
- \egroup
- \fi\fi}
-
-%D This stripper is suboptimal in the sense that more
-%D \type{;}'s are output than feasible. Anyhow, \METAPOST\
-%D can handle this and users may consider it being a sort
-%D of error prevention bonus.
-
-\ifx\blabelgroup\undefined
-
- \let\blabelgroup\bgroup
- \let\elabelgroup\egroup
-
-\fi
-
-\newconditional\firstMPgraphic \settrue\firstMPgraphic
-
-\appendtoks
- \let \# \letterhash
- \let \_ \letterunderscore
- \let \& \letterampersand
- \let \{ \letteropenbrace
- \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;}}
-
-\def\startwritingMPgraphic
- {\blabelgroup
- \global\advance\nofMPgraphics \plusone
- \ifMPrun \else
- \allocateMPslot\currentMPgraphic
- \fi
- \enableincludeMPgraphics
- \xdef\MPgraphic{\the\currentMPgraphic}%
- \the\everyMPgraphic
- \presetMPdefinitions % moved to here from \writeMPgraphic
- \ifrunMPgraphics
- \openMPgraphicfile1{runtime}%
- % no reset here !
- \theMPextensions
- \theMPinclusions
- \else
- \openMPgraphicfile0{collected}%
- % reset here ! global added (due to adding \blabelgroup)
- \theMPextensions
- \theMPinclusions
- \global\let\theMPextensions\relax
- \global\let\theMPinclusions\relax
- \fi
- \theMPinitializations % always
- \ifMPrun
- \else
- \ifMPwrapper
- \immediate\write\MPwrite{let mprunend = end ;}%
- \immediate\write\MPwrite{beginfig(\the\currentMPgraphic);}%
- \fi
- \fi
- \globallet\flushMPgraphics\closeMPgraphicfiles % \dodostopwritingMPgraphic
- \globallet\stopwritingMPgraphic\dostopwritingMPgraphic}
-
-\let\MPgraphicfiles\empty
-
-\let\MPinputtranslation\empty
-
-\def\openMPgraphicfile#1#2% #1=alwaysopen #2=message
- {\@EA\ifx\csname\@@MPG\@@MPG\MPgraphicfile\endcsname\relax
- \donetrue
- % \@EA\newwrite\csname\@@MPG\@@MPG\MPgraphicfile\endcsname
- % for the sake of plain usage
- \@EA\@EA\csname newwrite\endcsname\csname\@@MPG\@@MPG\MPgraphicfile\endcsname
- \doglobal\addtocommalist\MPgraphicfile\MPgraphicfiles
- \else
- \ifcase#1\relax\donefalse\else\donetrue\fi
- \fi
- \@EA\let\@EA\MPwrite\csname\@@MPG\@@MPG\MPgraphicfile\endcsname
- \ifdone
- \immediate\openout\MPwrite\MPgraphicfile.mp\relax
- \ifx\MPinputtranslation\empty\else
- \immediate\write\MPwrite{\MPinputtranslation}%
- \immediate\write\MPwrite{verbatimtex \MPinputtranslation etex ;}%
- \fi
- \immediate\write\MPwrite{\letterpercent\space #2 graphics of job "\jobname"}%
- \writeMPgraph
- \setMPrandomseed
- \fi}
-
-\def\dostopwritingMPgraphic
- {\ifMPrun \else
- \ifMPwrapper
- \immediate\write\MPwrite{endfig;}%
- \immediate\write\MPwrite{let end=mprunend;}%
- \fi
- \fi
- \ifrunMPgraphics
- \dodostopwritingMPgraphic
- \fi
- \elabelgroup}
-
-\def\dodostopwritingMPgraphic
- {\ifnum\currentMPgraphic>\zerocount
- \donetrue
- \else\ifMPrun
- \donetrue
- \else
- \donefalse
- \fi\fi
- \ifdone
- \finishwritingMPgraphics
- \runMPgraphic\MPgraphicfile
- \fi
- \globallet\flushMPgraphics\relax}
-
-\def\finishwritingMPgraphics
- {\ifMPwrapper\immediate\write\MPwrite{end.}\fi
- \immediate\closeout\MPwrite}
-
-\def\closeMPgraphicfiles
- {\ifrunMPgraphics \else \ifx\MPgraphicsfiles\empty\else
- \def\docommand##1%
- {\message{[flush and process ##1.mp afterwards]}%
- \@EA\let\@EA\MPwrite\csname\@@MPG\@@MPG##1\endcsname
- \finishwritingMPgraphics}%
- \processcommacommand[\MPgraphicfiles]\docommand
- \fi \fi}
-
-\let\stopwritingMPgraphic\relax
-\let\flushMPgraphics \relax
-
-%D By default each graphic gets its own slot (number). Later
-%D on we will define a recycle bin.
-
-\def \allocateMPslot#1{\global\advance#1\plusone}
-\def\deallocateMPslot#1{}
-
-%D \macros
-%D {translateMPinput}
-%D
-%D For my polish friends:
-%D
-%D \starttyping
-%D % translate=il2-pl
-%D
-%D \translateMPinput{il2-pl}
-%D
-%D \startMPenvironment[global]
-%D \setupbodyfont[plr]
-%D \stopMPenvironment
-%D
-%D \TeX: ± ¶
-%D
-%D \startMPcode
-%D draw btex MetaPost: ± ¶ etex scaled 5 ;
-%D \stopMPcode
-%D \stoptyping
-
-\def\translateMPinput#1%
-% {\xdef\MPinputtranslation{\letterpercent -translate-file=#1\space}} % at some point
-% {\xdef\MPinputtranslation{\letterpercent --8bit}} % some time later
- {\globallet\MPinputtranslation\empty} % the new mpost is 8 bit clean
-
-%D \macros
-%D {setMPrandomseed}
-%D
-%D Did you notice the random seed initialization? This is
-%D needed because \METAPOST\ has a rather poor initialization,
-%D which in some implementations depends on the time in
-%D minutes. So, in quick successive runs, random is not that
-%D random.
-
-\newif\ifsetMPrandomseed \setMPrandomseedtrue % false by default
-
-\def\setMPrandomseed
- {\ifsetMPrandomseed \ifx\getrandomnumber\undefined \else
- \getrandomnumber\localMPseed\zerocount{4095}%
- \writeMPgraphic{randomseed:=\localMPseed;}%
- \fi\fi}
-
-%D This feature has become optional. Thanks to Fabrice Popineau,
-%D \METAPOST\ can now do a far better job!
-
-%D \macros
-%D {flushMPgraphics}
-%D
-%D When we use the indirect method, all graphics are saved in
-%D one file. This means that we cannot close this file after
-%D every \type{\stopMPgraphic}. Therefore we need to say:
-%D
-%D \starttyping
-%D \flushMPgraphics
-%D \stoptyping
-%D
-%D else the file is closed without writing the \METAPOST\ end
-%D command. One will notice this fast enough when in indirect
-%D mode. When using the direct mode this command is not
-%D implicitly needed, but ommiting it makes files less
-%D portable.
-
-%D \macros
-%D {loadcurrentMPgraphic,
-%D placeMPgraphic}
-%D
-%D Once defined, we can call for this graphic by saying:
-%D
-%D \starttyping
-%D \loadcurrentMPgraphic{setups}
-%D \placeMPgraphic
-%D \stoptyping
-%D
-%D This two stage insert permits some intermediate manipulations
-%D of the graphic, which temporary saved in:
-
-\newbox\MPgraphicbox
-
-\def\doloadcurrentMPgraphic#1%
- {\loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{#1}%
- \deallocateMPslot\currentMPgraphic} % added
-
-\ifCONTEXT
- \def\loadcurrentMPgraphic{\dosinglegroupempty\doloadcurrentMPgraphic}
-\else
- \let\loadcurrentMPgraphic\doloadcurrentMPgraphic
-\fi
-
-\def\loadMPgraphic#1#2%
- {\setbox\MPgraphicbox\hbox{\ifinsertMPgraphics\insertMPfile{#1}{#2}\fi}}
-
-\def\MPllx{0}
-\def\MPlly{0}
-
-% \def\placeMPgraphic%
-% {\ifMPshiftdrawing
-% \hbox{\hskip\MPllx\onebasepoint\raise\MPlly\onebasepoint\box\MPgraphicbox}%
-% \else
-% \box\MPgraphicbox
-% \fi}
-%
-% experimental:
-
-\def\placeMPgraphic
- {\ifMPshiftdrawing
- \edef\next
- {\wd\MPgraphicbox\the\wd\MPgraphicbox
- \ht\MPgraphicbox\the\ht\MPgraphicbox
- \dp\MPgraphicbox\the\dp\MPgraphicbox}%
- \setbox\MPgraphicbox\hbox
- {\hskip\MPllx\onebasepoint\raise\MPlly\onebasepoint\box\MPgraphicbox}%
- \next
- \fi
- \box\MPgraphicbox}
-
-%D \macros
-%D {startreusableMPgraphic, reuseMPgraphic, useMPbox}
-%D
-%D One can use the next macro for defining graphics that are
-%D to be reused. When the next switch is set, graphics are
-%D cached.
-
-\newif\ifuseMPbox \useMPboxtrue
-
-%D We assume that one can set objects:
-%D
-%D \starttyping
-%D \def\douseMPbox#1%
-%D {\setobject{MP}{#1}\vbox
-%D {\forgetall
-%D \loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{}%
-%D \deallocateMPslot\currentMPgraphic
-%D \placeMPgraphic}%
-%D \setgvalue{#1}{\getobject{MP}{#1}}}
-%D \stoptyping
-%D
-%D More safe is to use a number for \type {{MP}{#1}} which permits
-%D redefinition. We also saves the boundingbox. This helps positioning
-%D reused graphics in layers.
-
-\newcount\MPobjectcounter
-
-\ifx\getobject\undefined \def\setobject#1#2{\setbox\scratchbox} \fi % makes dep check happy
-\ifx\getobject\undefined \def\getobject#1#2{\box \scratchbox} \fi % makes dep check happy
-
-\def\douseMPbox#1%
- {\global\advance\MPobjectcounter\plusone
- \setobject{MP}{\number\MPobjectcounter}\vbox
- {\forgetall
- \loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{}%
- \deallocateMPslot\currentMPgraphic
- \placeMPgraphic}%
- \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}%
- {\noexpand\forgetall
- \noexpand\loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{}%
- \noexpand\deallocateMPslot{\currentMPgraphic}%
- \noexpand\placeMPgraphic}}
-
-\ifCONTEXT \else \let\douseMPbox\nouseMPbox \fi
-\ifCONTEXT \else \let\doifobjectssupportedelse\relax \fi
-
-\long\def\handlereusableMPgraphic#1#2%
- {\blabelgroup
- \enableincludeMPgraphics
- \startMPgraphic#2\stopMPgraphic
- \doifobjectssupportedelse\donothing\useMPboxfalse
- \ifuseMPbox
- \expandafter \douseMPbox
- \else
- \expandafter \nouseMPbox
- \fi {\@@MPG#1}%
- \getvalue{\@@MPG#1}%
- \elabelgroup}
-
-% \long\def\startreusableMPgraphic#1#2\stopreusableMPgraphic
-% {\ifundefined{\@@MPG#1}%
-% \long\setgvalue{\@@MPG#1}{\handlereusableMPgraphic{#1}{#2}}%
-% \fi}
-
-\long\def\dostartreusableMPgraphic#1#2\stopreusableMPgraphic
- {\blabelgroup
- \long\setgvalue{\@@MPG#1}{\handlereusableMPgraphic{#1}{#2}}%
- \elabelgroup}
-
-\def\reuseMPgraphic#1%
- {\blabelgroup
- \getvalue{\@@MPG#1}%
- \elabelgroup}
-
-\let\stopreusableMPgraphic \relax % so that we can use it in \expanded
-
-%D \macros
-%D {startuseMPgraphic,useMPgraphic}
-%D
-%D The every||time||it's||used original one is defined below.
-%D This one makes sense when the graphic uses random numbers.
-%D
-%D We can run (process graphic) without including them at that
-%D particular place. Therefore we explicitly disable
-%D inclusions (resulting in an dummy figure) when we are in MP
-%D run mode (see mfun-004 for an example, we process an
-%D example buffer which produced graphics).
-
-\long\def\handleuseMPgraphic#1#2%
- {\bgroup
- \enableincludeMPgraphics
- \startMPgraphic#2\stopMPgraphic
- \ifMPrun \else
- \loadMPgraphic{\MPgraphicfile.\the\currentMPgraphic}{}%
- \placeMPgraphic
- \fi
- \deallocateMPslot\currentMPgraphic
- \egroup}
-
-\long\def\startuseMPgraphic
- {\blabelgroup
- \obeyMPlines
- \dostartuseMPgraphic}
-
-\long\def\dostartuseMPgraphic#1#2\stopuseMPgraphic
- {\long\setgvalue{\@@MPG#1}{\handleuseMPgraphic{#1}{#2}}%
- \elabelgroup}
-
-\long\def\startusableMPgraphic
- {\blabelgroup
- \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
-%D For (mainly internal) purposes we provide a test macro.
-
-% \def\doifMPgraphicelse#1%
-% {\doifdefinedelse{\@@MPG#1}}
-
-\def\doifMPgraphicelse#1%
- {\blabelgroup
- \doifdefinedelse{\@@MPG#1}%
- {\elabelgroup\firstoftwoarguments}
- {\elabelgroup\secondoftwoarguments}}
-
-%D \macros
-%D {includeMPgraphic}
-%D
-%D In a graphic one can call up another (predefined one)
-%D like:
-%D
-%D \starttyping
-%D \startuseMPgraphic{a}
-%D fill fullcircle scaled 100 ;
-%D \stopuseMPgraphic
-%D
-%D \startuseMPgraphic{b}
-%D \includeMPgraphic{a}
-%D fill fullsquare rotated 45 scaled 50 withcolor red ;
-%D \stopuseMPgraphic
-%D
-%D \useMPgraphic{b}
-%D \stoptyping
-
-\def\includeMPgraphic#1%
- {\executeifdefined{\@@MPG#1};} % ; if not found
-
-\def\enableincludeMPgraphics
- {\let\handleuseMPgraphic \secondoftwoarguments
- \let\handlereusableMPgraphic\secondoftwoarguments}
-
-%D We didn't yet define the macro responsible for processing
-%D the graphic from within \TEX.
-
-\def\runMPgraphic#1%
- {\ifrunMPgraphics
- \executeMETAPOST{#1}%
- \else
- % \message{[flush and process \MPgraphicfile.mp afterwards]}%
- \fi}
-
-%D \macros
-%D {useMETAFUNformat}
-%D
-%D For faster running, one can generate a format, saying
-%D
-%D \starttyping
-%D mpost -ini context
-%D \stoptyping
-%D
-%D (The resulting \type {mem} file should be moved to the
-%D right location. Watch out for misatching \type {progname}
-%D directives, since they can clutter memory.
-
-\newif\ifuseMETAFUNformat
-
-%D \macros
-%D {executeMetaPost, executeMETAPOST, executesystemcommand}
-%D
-%D With \type{\executeMETAPOST} being defined as:
-
-\ifx\undefined\executeMETAPOST
- \def\executeMETAPOST#1{\executesystemcommand{\executeMetaPost{#1}}}
-\fi
-
-%D There are two system dependant definitions:
-
-\ifx\undefined\executesystemcommand
- \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 {-interaction=batchmode} % was -int, but newer mpost does not support partial flags
- \def\MPOSTnonstopswitch {-interaction=nonstopmode} % was -int, but newer mpost does not support partial flags
- \def\MPOSTformatswitch {-progname=metafun -mem=}
- \def\MPOSTdriver {dvips}
-
- \def\executeMPOST#1% direct call
- {mpost
- \ifcase\interactionmode\MPOSTbatchswitch\or\MPOSTnonstopswitch\fi
- \space\ifuseMETAFUNformat \MPOSTformatswitch metafun \fi #1}
-
- \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}
-
- \def\executeMetaPost
- {\ifrunMPTEXgraphics
- \ifMPTEXgraphic
- \@EAEAEA\executeMPTEX
- \else
- \@EAEAEA\executeMPOST
- \fi
- \else
- \@EA\executeMPOST
- \fi}
-
-\fi
-
-%D The batchmode and nonstopmode (introduced in 2003 for
-%D Patrick Gundlach) switches may differ per binary and are
-%D supported by \TEXEXEC.
-
-%D \macros
-%D {insertMPfile}
-%D
-%D One can define this command in advance or redefine it after
-%D loading this module. The same goes for the forward
-%D reference to the figure loading macro:
-
-\ifx\undefined\insertMPfile
-
- \def\insertMPfile#1#2%
- {\ifx\undefined\externalfigure
- \message{[insert file #1 here]}%
- \else
- \externalfigure
- [#1]
- [\c!type=\c!mps,\c!object=\v!no,
- \c!symbol=\v!yes,\c!reset=\v!yes,
- \c!maxwidth=,\c!maxheight=,
- \c!frame=\v!off,\c!background=,
- #2]%
- \fi}
-
-\fi
-
-%D This macro takes {\em two} arguments, the second one can be
-%D used to pass info to the inclusion macro. Some examples
-%D of its use can be found in the modules \type{supp-tpi} and
-%D \type{prag-log}.
-
-%D This module can be used in \PLAIN\ \TEX too. When using
-%D \DVIPS, just try to process:
-%D
-%D \starttyping
-%D \input supp-mps
-%D
-%D \runMPgraphicstrue
-%D
-%D \def\insertMPfile#1#2%
-%D {\special{psfile=#1}}
-%D
-%D \startuseMPgraphic{1}
-%D prologues := 1;
-%D draw (0,0) withpen pencircle scaled 100;
-%D \stopuseMPgraphic
-%D
-%D \useMPgraphic{1}
-%D \stoptyping
-%D
-%D Don't forget to enable \type{\write18}. When does not say
-%D \type{\runMPgraphicstrue}, the \METAPOST\ scratch file
-%D must be closed by saying
-%D
-%D \starttyping
-%D \flushMPgraphics
-%D \stoptyping
-%D
-%D When using the indirect method, one has to process the file
-%D \type{mpgraph.mp} between two successive \TEX\ runs.
-%D
-%D \METAPOST\ needs the public domain \DVI\ to \POSTSCRIPT\
-%D converter \DVIPS. This symbiosis originates in the need to
-%D include the fonts (glyphs) that \METAPOST\ uses in the
-%D \POSTSCRIPT\ file. Driver independancy was one of my
-%D prerequisites for using \METAPOST, so I decided to build
-%D this kind of support myself. Personally I consider driver
-%D dependancy a drawback for the dissemination of such a
-%D package. The second part of this module more or less
-%D decouples \METAPOST\ and \DVIPS.
-%D
-%D The macros hereafter are copied from the module
-%D \type{m-metapost}. After writing module \type{supp-pdf} I
-%D added this method to the module named and after a while
-%D decided to hook it into module \type{spec-yy}. Therefore
-%D they made it into a support module, but in a slightly
-%D different way.
-
-%D \macros
-%D {includeMPfonts, ifincludeMPfonts}
-%D
-%D The method we use is both robust and simple: one can do
-%D with calling the next macro with the filename as argument:
-%D
-%D \starttyping
-%D \includeMPfonts{filename}
-%D \stoptyping
-%D
-%D We can turn of this mechanism with:
-%D
-%D \starttyping
-%D \includeMPfontsfalse
-%D \stoptyping
-%D
-%D {\em Currently this method fails for situations where the
-%D font definition is not on one line, which is he case when
-%D unkerned fonts are used along with long lines. One solution
-%D for this is to increase the value of \type {max_print_line}
-%D in \type {texmf.cnf}.}}
-
-\newif\ifincludeMPfonts \includeMPfontstrue
-
-\def\includeMPfonts#1%
- {\ifincludeMPfonts
- \bgroup
- \message{[MP fonts #1]}%
- %\uncatcodespecials
- \endlinechar\minusone
- \setMPspecials
- \obeyMPspecials
- \setbox\scratchbox\hbox
- {\hskip-\maxdimen
- \doprocessfile\scratchread{#1}\handleMPfont}%
- \smashbox\scratchbox
- \box\scratchbox
- \egroup
- \fi}
-
-\def\UseMetaPostGraphic {\includeMPfonts} % upward compatible
-\def\DontUseMetaPostGraphics {\includeMPfontsfalse} % upward compatible
-
-%D The characters are collected in a box and moved as far as
-%D possible into the left margin. The resulting box has no
-%D dimensions and can be prepended (appended) to the special
-%D that handles the inclusion. The characters are in the file
-%D but made invisible.
-%D
-%D In \CONTEXT\ font handling is intergrated in the figure
-%D inclusion macros. A decent plain \TEX\ alternative is:
-%D
-%D \starttyping
-%D \def\includeMPgraphic#1%
-%D {\hbox\bgroup
-%D \includeMPfonts{#1}%
-%D \dogetEPSboundingbox{#1}{\dimen2}{\dimen4}{\dimen6}{\dimen8}%
-%D \advance\dimen6 by -\dimen2
-%D \advance\dimen8 by -\dimen4
-%D \vbox to \dimen8
-%D {\forgetall
-%D \vfill
-%D \hsize\dimen6
-%D \special
-%D {PSfile="#1"\space
-%D llx=\EPSllx\space
-%D lly=\EPSlly\space
-%D urx=\EPSurx\space
-%D ury=\EPSury\space}}%
-%D \egroup}
-%D \stoptyping
-%D
-%D This macro needs \type {supp-eps.tex} and provided no
-%D scaling. For \LATEX\ users the next one will do:
-%D
-%D \starttyping
-%D \def\includeMPgraphic#1#%
-%D {\hbox\bgroup
-%D \def\includeMPgraphics##1%
-%D {\includeMPfonts{##1}%
-%D \includegraphics[typetype=mps,#1]{##1}% or whatever type they use
-%D \egroup}%
-%D \includeMPgraphics}
-%D \stoptyping
-
-%D We scan the graphics file for the \type{fshow} operator,
-%D that is, lines that start with \type{(}. If found it
-%D interprets the line, which looks like:
-%D
-%D \starttyping
-%D (string ... string) font size fshow
-%D \stoptyping
-%D
-%D Font definitions specified in the preamble are simply
-%D ignored. Only lines starting with \type{(} are interpreted.
-
-\def\dohandleMPfont#1#2\relax
- {\if#1(\expandafter\includeMPcharacters\fileline\relax\fi}
-
-\def\handleMPfont
- {\expandafter\dohandleMPfont\fileline\relax}
-
-%D Before we start scanning for data, we first change some
-%D \CATCODES. The first set of macro's is copied from module
-%D \type{supp-pdf}. This scheme is a bit overdone for this
-%D module, but using the same macros saves us some memory.
-
-\def\octalMPcharacter#1#2#3%
- {\char'#1#2#3\relax}
-
-\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 The lines starting with \type{(} are interpreted and
-%D handled by
-%D
-%D \starttyping
-%D \def\includeMPcharacters(#1) #2 #3 #4\relax%
-%D {\font\temp=#2 at #3bp\temp#1}
-%D \stoptyping
-%D
-%D While processing some \TUG~98 proceedings, I also had to
-%D deal with:
-%D
-%D \starttyping
-%D /nfont {10 div dup scale 10} def
-%D (T) ANTTB 7.13086 nfont fshow
-%D \stoptyping
-%D
-%D which comes to rounding sizes. This is something
-%D experimental. (The macro in supp-pdf.tex is more
-%D advanced.)
-
-\def\PSnfont{nfont}
-
-\def\includeMPcharacters(#1) #2 #3 #4#5#6#7#8#9\relax
- {\edef\temp{#4#5#6#7#8}%
- \ifx\temp\PSnfont % round font size (to pt)
- \scratchdimen#3\onepoint
- \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{#3bp}%
- \fi
- \font\temp=#2 at \size
- \temp\if#1 \char32\else#1\fi}
-
-%D This method is both robust and reasonable fast. The only
-%D disadvantage is that when not embedded properly in the
-%D graphics inclusion macros, one has to load all graphics by
-%D hand.
-
-%D Now let's see if things work all right and show the example
-%D files that are part of the \METAPOST\ distribution:
-%D
-%D \setupexternalfigures[directory={../sample}]
-%D \startlinecorrection
-%D \setupalign[middle]
-%D \leavevmode
-%D \startcombination[3*3]
-%D {\externalfigure[mp-exa-1][frame=on,width=.2\hsize]} {}
-%D {\externalfigure[mp-exa-2][frame=on,width=.2\hsize]} {}
-%D {\externalfigure[mp-exa-3][frame=on,width=.2\hsize]} {}
-%D {\externalfigure[mp-exa-4][frame=on,width=.2\hsize]} {}
-%D {\externalfigure[mp-exa-5][frame=on,width=.2\hsize]} {}
-%D {\externalfigure[mp-exa-6][frame=on,width=.2\hsize]} {}
-%D {\externalfigure[mp-exa-7][frame=on,width=.2\hsize]} {}
-%D {\externalfigure[mp-exa-8][frame=on,width=.2\hsize]} {}
-%D {\externalfigure[mp-exa-9][frame=on,width=.2\hsize]} {}
-%D \stopcombination
-%D \stoplinecorrection
-%D
-%D Here we used calls like:
-%D
-%D \starttyping
-%D \externalfigure[mp-exa-1][methode-mps,frame=on,width=.2\hsize]
-%D \stoptyping
-
-%D \macros
-%D {convertMPcolors,
-%D ifconvertMPcolors,ifreduceMPcolors,ifforceMPcolors}
-%D
-%D When I told the editors that I wanted to use colored
-%D \METAPOST\ graphics in the color issue of the \MAPS, I was
-%D asked to use the \cap{CMYK} colorspace instead of \cap{RGB}
-%D one. However, \METAPOST\ only supports \cap{RGB} colors. I
-%D decided to write a utility to convert the \type
-%D {setrgbcolor} operators into \type {setcmykcolor} ones, and
-%D some experiments showed me that I could best let \TEX\ do it
-%D itself. Here it is:
-%D
-%D There are two booleans that control the conversion process.
-%D These are false by default.
-
-\newif\ifconvertMPcolors
-\newif\ifreduceMPcolors
-\newif\ifforcegrayMPcolors
-
-%D The main macro is called as:
-%D
-%D \starttyping
-%D \convertMPcolors{filename}
-%D \stoptyping
-%D
-%D When active, this macro returns a message saying if indeed
-%D conversion took place. The old file is overwritten! This
-%D saves time in a succesive passes and can't harm, simply
-%D because MP can generate them anew.
-
-\def\convertMPcolorpath{}
-\def\convertMPcolorfile{metacmyk.tmp}
-
-\def\convertMPcolors#1% todo: open on local path, no copy
- {\bgroup
- \ifforcegrayMPcolors
- \donetrue
- \else\ifconvertMPcolors
- \donetrue
- \else
- \donefalse
- \fi\fi
- \ifdone
- \message{[MP color conversion #1}%
- \endlinechar\minusone
- \uncatcodespecials
- \donefalse
- \immediate\openout\scratchwrite\convertMPcolorpath\convertMPcolorfile\relax
- \doprocessfile\scratchread{#1}\handleMPcolor
- \immediate\closeout\scratchwrite
- \ifdone
- \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\closeout\scratchwrite
- \fi
- \egroup}
-
-%D The process is rather simple: read a line, look for the
-%D \type {setrgbcolor} operator, recalculate the components and
-%D check for gray reduction or black removal, write the result
-%D to a temporary file, and go on. Afterwards, the file is
-%D copied back. We don't have to reduce to gray scales;
-%D \METAPOST\ already takes care of that.
-
-%D The next macro is needed for forced conversion. This macro
-%D is copied from \type{colo-ini}, just in case one uses this
-%D module outside \CONTEXT.
-
-\ifx\@@cl@@s \undefined \def\@@cl@@s{0} \fi
-
-\ifx\convertRGBtoGRAY\undefined
-
-\def\convertRGBtoGRAY#1#2#3%
- {\scratchdimen#1\onepoint
- \scratchdimen300\scratchdimen
- \scratchcounter\scratchdimen
- \scratchdimen#2\onepoint
- \scratchdimen590\scratchdimen
- \advance\scratchcounter \scratchdimen
- \scratchdimen#3\onepoint
- \scratchdimen110\scratchdimen
- \advance\scratchcounter \scratchdimen
- \advance\scratchcounter \!!medcard
- \divide\scratchcounter \!!maxcard
- \edef\@@cl@@s{\realcolorvalue\scratchcounter}}
-
-\fi
-
-%D BTW, this code is quite old, and not as complete as the
-%D \PDF\ converter, which also handles spot colors and so.
-
-\def\handleMPcolor
- {\expandafter\dohandleMPcolor\fileline setrgbcolor*\\}
-
-\def\dohandleMPcolor#1setrgbcolor#2#3\\%
- {\if#2*%
- \immediate\write\scratchwrite{#1}%
- \else
- \dodohandleMPcolor#1setrgbcolor#2#3\\%
- \fi}
-
-\def\dodohandleMPcolor#1 #2 #3setrgbcolor#4setrgbcolor*\\% old and maybe broke
- {\bgroup
- \ifdim#1pt=.123pt
- \immediate\write\scratchwrite{#1 #2 #3 setrgbcolor}%
- \else
- \ifforcegrayMPcolors
- \convertRGBtoGRAY{#1}{#2}{#3}%
- \immediate\write\scratchwrite
- {\@@cl@@s \space setgray #4}%
- \else
- \dimen0=\onepoint \advance\dimen0 -#1\points
- \dimen2=\onepoint \advance\dimen2 -#2\points
- \dimen4=\onepoint \advance\dimen4 -#3\points
- \ifreduceMPcolors
- \dimen6\dimen0
- \ifdim\dimen2<\dimen6 \dimen6\dimen2 \fi
- \ifdim\dimen4<\dimen6 \dimen6\dimen4 \fi
- \advance\dimen0 -\dimen6
- \advance\dimen2 -\dimen6
- \advance\dimen4 -\dimen6
- \else
- \dimen6\zeropoint
- \fi
- \immediate\write\scratchwrite
- {\withoutpt\the\dimen0 \space
- \withoutpt\the\dimen2 \space
- \withoutpt\the\dimen4 \space
- \withoutpt\the\dimen6 \space setcmykcolor #4}%
- \fi
- \fi
- \egroup
- \donetrue} % needed for message
-
-\def\handleMPcopy
- {\immediate\write\scratchwrite{\fileline}}
-
-%D The next examples show the color conversion macros in
-%D action. These examples also demonstrate in||text \METAPOST\
-%D handling. As we will see, the conversion is hooked into the
-%D \CONTEXT\ color mechanism.
-%D
-%D By setting both \type{rgb} and \type{cmyk} to off, we force
-%D conversion to gray scales using:
-%D
-%D \placeformula[-]
-%D \startformula
-%D G = .30r + .59g + .11b
-%D \stopformula
-%D
-%D By using buffers, we keep the \ASCII\ layout clean:
-%D
-%D \startbuffer
-%D \startbuffer[rgb]
-%D \setupcolors[rgb=ja,cmyk=nee,reduction=no,conversion=no]
-%D \useMPgraphic{hans}
-%D \stopbuffer
-%D
-%D \startbuffer[cmyk]
-%D \setupcolors[rgb=nee,cmyk=ja,reduction=no,conversion=no]
-%D \useMPgraphic{hans}
-%D \stopbuffer
-%D
-%D \startbuffer[cmy]
-%D \setupcolors[rgb=nee,cmyk=ja,reduction=yes,conversion=no]
-%D \useMPgraphic{hans}
-%D \stopbuffer
-%D
-%D \startbuffer[gray]
-%D \setupcolors[rgb=nee,cmyk=nee,reduction=no,conversion=no]
-%D \useMPgraphic{hans}
-%D \stopbuffer
-%D \stopbuffer
-%D
-%D \typebuffer
-%D \getbuffer
-%D
-%D The graphic is rather simple and is generated each time
-%D it's called:
-%D
-%D \global\runMPgraphicstrue
-%D
-%D \startbuffer
-%D \startbuffer[graphic]
-%D \startuseMPgraphic{hans}
-%D width :=\the\textwidth/5;
-%D height := width/4;
-%D fill fullcircle
-%D xscaled width
-%D yscaled height
-%D withcolor (\RedGreenBlue);
-%D \stopuseMPgraphic
-%D \stopbuffer
-%D \stopbuffer
-%D
-%D \typebuffer
-%D \getbuffer
-%D
-%D Next we combine the four alternative interpretations in a
-%D combination:
-%D
-%D \startbuffer
-%D \startbuffer[result]
-%D \startcombination[4]
-%D {\getbuffer[rgb]} {\tfxx original}
-%D {\getbuffer[cmyk]} {\ttxx\string\convertMPcolorstrue}
-%D {\getbuffer[cmy]} {\ttxx\string\reduceMPcolorstrue}
-%D {\getbuffer[gray]} {\ttxx\string\forcegrayMPcolorstrue}
-%D \stopcombination
-%D \stopbuffer
-%D \stopbuffer
-%D
-%D \typebuffer
-%D \getbuffer
-%D
-%D Finally we call the buffers, using different setting:
-%D
-%D \startbuffer
-%D \placefigure
-%D {\METAPOST\ color conversions}
-%D {\def\RedGreenBlue{.1,.4,.6}\getbuffer[graphic]\getbuffer[result]\vskip6pt
-%D \def\RedGreenBlue{.1,.6,.4}\getbuffer[graphic]\getbuffer[result]\vskip6pt
-%D \def\RedGreenBlue{.4,.1,.6}\getbuffer[graphic]\getbuffer[result]\vskip6pt
-%D \def\RedGreenBlue{.4,.6,.1}\getbuffer[graphic]\getbuffer[result]\vskip6pt
-%D \def\RedGreenBlue{.6,.1,.4}\getbuffer[graphic]\getbuffer[result]\vskip6pt
-%D \def\RedGreenBlue{.6,.4,.1}\getbuffer[graphic]\getbuffer[result]}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D \getbuffer
-%D
-%D By the way, when the \POSTSCRIPT\ file resulting from
-%D this input is converted into \PDF\ and viewed in Acrobat
-%D Reader, one can quite different colors from those
-%D displayed in \GHOSTSCRIPT, which view equals the
-%D \POSTSCRIPT\ originals.
-
-%D \macros
-%D {experimental}
-%D
-%D Some experimental macros:
-%D
-%D \starttyping
-%D \startMPdrawing
-%D \stopMPdrawing
-%D \pushMPdrawing
-%D \popMPdrawing
-%D \resetMPdrawing
-%D \ifMPdrawingdone
-%D \getMPdrawing
-%D \MPdivten[number]
-%D \stoptyping
-%D
-%D These macros are used in \PPCHTEX.
-
-\let\MPdrawingdata\empty
-
-\newif\ifMPdrawingdone \MPdrawingdonefalse
-\newif\ifMPshiftdrawing \MPshiftdrawingfalse
-
-\def\resetMPdrawing
- {\globallet\MPdrawingdata\empty
- \global\MPdrawingdonefalse}
-
-% why global push/pop here?
-
-\def\pushMPdrawing
- {\globalpushmacro\MPdrawingdata
- \globallet\MPdrawingdata\empty}
-
-\def\popMPdrawing
- {\globalpopmacro\MPdrawingdata}
-
-\def\getMPdrawing
- {\ifMPdrawingdone
- \expandafter\startMPgraphic\MPdrawingdata\stopMPgraphic
- \loadcurrentMPgraphic{}%
- \deallocateMPslot\currentMPgraphic
- \placeMPgraphic
- \fi}
-
-\def\startMPdrawing
- {\dosingleempty\dostartMPdrawing}
-
-\long\def\dostartMPdrawing[#1]#2\stopMPdrawing
- {\relax
- \bgroup
- \enableincludeMPgraphics
- \presetMPdefinitions % in case #2 has measures
- \doifelse{#1}{-}{\convertargument#2\to\asciia}{\long\def\asciia{#2}}%
- \long\xdef\MPdrawingdata{\MPdrawingdata\asciia}%
- \egroup}
-
-\let\stopMPdrawing\relax
-
-\def\MPdivten[#1]%
- {\@EA\@EA\@EA\doMPdivten\@EA\@EA\@EA[\@EA#1]}
-
-\def\doMPdivten[#1]%
- {\ifnum#1> 9999 \dodoMPdivtenB#1\else
- \ifnum#1> 999 \dodoMPdivtenC#1\else
- \ifnum#1> 99 \dodoMPdivtenD#1\else
- \ifnum#1> 9 \dodoMPdivtenE#1\else
- \ifnum#1> 0 \dodoMPdivtenF#1\else
- \ifnum#1<-9999 \dodoMPdivtenA#1\else
- \ifnum#1< -999 \dodoMPdivtenB#1\else
- \ifnum#1< -99 \dodoMPdivtenC#1\else
- \ifnum#1< -9 \dodoMPdivtenD#1\else
- \ifnum#1< 0 \dodoMPdivtenE#1\else
- 0 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
-
-\def\dodoMPdivtenA#1#2#3#4#5#6{#1#2#3#4#5.#6}
-\def\dodoMPdivtenB #1#2#3#4#5{#1#2#3#4.#5}
-\def\dodoMPdivtenC #1#2#3#4{#1#2#3.#4}
-\def\dodoMPdivtenD #1#2#3{#1#2.#3}
-\def\dodoMPdivtenE #1#2{#1.#2}
-\def\dodoMPdivtenF #1{.#1}
-
-% if we assume etex ... \def\MPdivten[#1]{\withoutpt\the\dimexpr#1pt/10\relax}
-
-%D \macros
-%D {startMPclip,grabMPclippath}
-%D
-%D We can use \METAPOST\ to calculate arbitrary clipping
-%D paths. Such a path is defined by (for instance):
-%D
-%D \starttyping
-%D \startMPclip{window}
-%D clip currentpicture to fullcircle xscaled \width yscaled \height ;
-%D \stopMPclip
-%D \stoptyping
-%D
-%D Such a path can be extracted (processed) by:
-%D
-%D \starttyping
-%D \grabMPclippath{window}{method}{width}{height}{default path}
-%D \stoptyping
-%D
-%D Currently only method 1 makes sense; it produces \PDF\
-%D code. This macro only makes sense when hooked into a
-%D special routine.
-
-\let\MPclippath\empty
-
-\long\def\startMPclip#1#2\stopMPclip
- {\blabelgroup
- \long\setgvalue{MPC:#1}{\startMPgraphic#2\stopMPgraphic\dograbMPclippath}%
- \elabelgroup}
-
-\let\stopMPclip\relax
-
-\def\grabMPclippath#1#2#3#4#5%
- {\blabelgroup
- \edef\width {#3\space}\let\overlaywidth \width
- \edef\height{#4\space}\let\overlayheight\height
- \doifdefinedelse{MPC:#1}
- {\getvalue{MPC:#1}%
- \setxvalue{MPC:#1}{\noexpand\xdef\noexpand\MPclippath{\MPclippath}}}%
- {\xdef\MPclippath{#5}}%
- \ifcase#2\else % method 1 :
- \doglobal\stripcharacter urveto\from\MPclippath\to\MPclippath
- \doglobal\stripcharacter oveto\from\MPclippath\to\MPclippath
- \doglobal\stripcharacter ineto\from\MPclippath\to\MPclippath
- \fi
- \elabelgroup}
-
-%D We pose some restrictions to the \METAPOST\ code and pickup
-%D the clip path from the file.
-%D
-%D We turn the slash into a comment. The \type {\hbox} grabs spaces
-%D and the \type {%} triggers the grabber. Next we filter the
-%D clipping path, or actually, the first path.
-
-% \bgroup
-% \catcode`\%=\@@active
-% \catcode`\/=\@@comment
-% \gdef\dograbMPclippath/
-% {\setbox\scratchbox=\hbox\bgroup/
-% \catcode`\%=\@@active
-% \obeylines\let\obeyedline\space
-% \def\do##1newpath##2closepath##3\od/
-% {\xdef\MPclippath{##2}\endinput}/
-% \def%##1%%EOF/
-% {\do##1newpathclosepath\od\endinput}/
-% \readfile{\MPgraphicfile.\the\currentMPgraphic}{}{}/
-% \deallocateMPslot\currentMPgraphic / new
-% \egroup}
-% \egroup
-
-\bgroup
-\catcode`\%=\@@active
-\catcode`\/=\@@comment
-\gdef\dograbMPclippath/
- {\setbox\scratchbox=\hbox\bgroup/
- \catcode`\%=\@@active
- \obeylines\let\obeyedline\space
- \def\do##1q n##2p W##3\od/
- {\xdef\MPclippath{##2}\endinput}/
- \def%##1%%EOF/
- {\do##1q np W\od\endinput}/
- \readfile{\MPgraphicfile.\the\currentMPgraphic}{}{}/
- \ifx\MPclippath\empty
- \def\do##1newpath##2closepath##3\od/
- {\xdef\MPclippath{##2}\endinput}/
- \def%##1%%EOF/
- {\do##1newpathclosepath\od\endinput}/
- \readfile{\MPgraphicfile.\the\currentMPgraphic}{}{}/
- \fi
- \deallocateMPslot\currentMPgraphic / new
- \egroup}
-\egroup
-
-%D \macros
-%D {recycleMPslots}
-%D
-%D When coding and embedding many \METAPOST\ figures in a
-%D document, one can save quite some disk space by using
-%D \PDFTEX\ and setting the next switch:
-
-\newif\ifrecycleMPslots \recycleMPslotstrue
-
-%D When a graphic takes space in the text flow, we can run
-%D into deadlock typesetting. In the first pass, the graphic
-%D is not available, but in the second pass it is. The
-%D placeholder that was put there in the first pass in now
-%D replace by the real graphic and as a result the document
-%D shrinks or grows and pages are removed or added. This in
-%D turn can trigger generation of other graphics, like those
-%D in the background. Graphics start swapping place and again
-%D page breaks change. You can imagine the mess we en dup
-%D with.
-%D
-%D This is why we provide was to use a dedicate range if
-%D numbers for fixed graphcs. Such graphics will not en dup
-%D in the text flow (at least their dimensions don't
-%D contribute to the main vertical list, and thereby they
-%D cannot interfere. We use a rather safe maximum of 4000
-%D graphics here and 8000 in \type {meta-ini}.
-
-\newcount \maxnofMPgraphics \maxnofMPgraphics = 4000 % 8000
-\newcount \minnofMPgraphics \minnofMPgraphics = 1
-
-\newif \ifMPstaticgraphic \MPstaticgraphicfalse % determines slot allocation
-
-\def\locateMPslot#1% slightly faster on one slot, much faster on multiple slots
- {\ifundefined{\number#1MP}% no \ifcsname
- \letgvalueempty{\number#1MP}%
- \expandafter\gobbletwoarguments
- \else
- \global\advance#1\plusone
- \fi
- \locateMPslot#1}
-
-\def\allocateMPslot#1%
- {\ifrunMPgraphics
- \ifx\pdfliteral\undefined
- \recycleMPslotsfalse % quite certainly not pdftex
- \else\ifcase\pdfoutput
- \recycleMPslotsfalse % dvi mode or not pdftex (we need to handle dvipdfmx)
- \fi\fi
- \else
- \recycleMPslotsfalse
- \fi
- \ifrecycleMPslots
- % \doloop % slow but used seldom
- % {\doifundefined{\recurselevel MP}
- % {\letgvalueempty{\recurselevel MP}%
- % \global#1\recurselevel
- % \exitloop}}%
- \global#1\plusone
- \locateMPslot#1%
- % \message{[MP slot + \number#1]%
- \else\ifMPstaticgraphic % beware not the same as static graphics
- \global#1\maxnofMPgraphics
- \global\advance\maxnofMPgraphics \minusone
- \else
- \global#1\minnofMPgraphics
- \global\advance\minnofMPgraphics \plusone
- \fi\fi
- \ifnum\minnofMPgraphics<\maxnofMPgraphics \else
- \writestatus\m!systems{increase \string\maxnofMPgraphics}%
- \fi}
-
-\def\deallocateMPslot#1%
- {\ifrunMPgraphics
- \ifcase\pdfoutput \recycleMPslotsfalse \fi
- \else
- \recycleMPslotsfalse
- \fi
- \ifrecycleMPslots
- \global\letbeundefined{\number#1MP}%
- %\message{[MP slot - \number#1]}%
- \fi}
-
-%D Experimental and overloaded later, since we need to be
-%D more clever due to \METAPOST's limit of 4~open files.
-
-\def\MPdatafile
- {mp-\the\currentMPgraphic.mpd}
-
-\def\getMPdata
- {\input \MPdatafile\relax}
-
-%D \macros
-%D {MPtoks, MPbox}
-%D
-%D For convenience, we provide some scratch registers:
-
-\ifx\undefined\MPtoks \newtoks\MPtoks \fi
-\ifx\undefined\MPbox \newbox \MPbox \fi
-
-%D \macros
-%D {startMPcode}
-%D
-%D We can save some typing with:
-%D
-%D \starttyping
-%D \startMPcode whatever \stopMPcode
-%D \stoptyping
-%D
-%D this automatically places the graphic
-
-\long\def\startMPcode
- {\begingroup
- \obeyMPlines
- \dostartMPcode}
-
-\long\def\dostartMPcode#1\stopMPcode
- {\startuseMPgraphic{@@}#1\stopuseMPgraphic
- \useMPgraphic{@@}%
- \endgroup}
-
-\let\stopMPcode\relax
-
-%D \macros
-%D {startstaticMPgraphic}
-%D
-%D Dedicated to Aditya Mahajan. See meta-ini for usage.
-
-% \long\def\startstaticMPgraphic#1#2\stopstaticMPgraphic
-% {\bgroup
-% \MPstaticgraphictrue
-% \setMPrandomseedfalse
-% \def\MPgraphicfile{#1}% no \jobname here
-% \let\allocateMPslot \gobbleoneargument
-% \let\deallocateMPslot\gobbleoneargument
-% \let\runMPgraphic \gobbleoneargument
-% \MPextensions\emptytoks
-% \MPinitializations\emptytoks
-% \runMPgraphicstrue
-% \MPwrapperfalse
-% \enableincludeMPgraphics
-% \def\sometxt##1{\string\sometxt{##1}}%
-% \currentMPgraphic\plusone % hack, else no close
-% \startMPgraphic#2\stopMPgraphic
-% \executeMPgraphicfile
-% \egroup}
-
-% different version, less messy hooked into the rest
-
-\long\def\startstaticMPgraphic#1#2\stopstaticMPgraphic
- {\blabelgroup
- \def\MPgraphicfile{#1}% no \jobname here
- \let\MPwrite\MPstaticwrite
- \immediate\openout\MPwrite=\MPgraphicfile.mp
- \setMPrandomseedfalse
- \enableincludeMPgraphics
- \def\sometxt##1{\string\sometxt{##1}}%
- \the\everyMPgraphic
- \presetMPdefinitions
- \theMPinclusions % brrr
- \writeMPgraphic{\letterpercent mpenvironment: \the\everyMPTEXgraphic}%
- \writeMPgraphic{beginfig(1);}%
- \writeMPgraphic{#2}%
- \writeMPgraphic{endfig; end.}%
- \immediate\closeout\MPwrite
- \executeMPgraphicfile
- \elabelgroup}
-
-% this will go to meta-ini
-
-\def\delaysystemcommand
- {\ifx\installprogram\undefined
- \expandafter\executesystemcommand
- \else
- \expandafter\installprogram
- \fi}
-
-\def\MPgraphicfilerunner
- {texmfstart --ifchanged=\MPgraphicfile.mp texexec --mpstatic \MPgraphicfile.mp}
-
-\ifx\doifmode\undefined
- \def\executeMPgraphicfile
- {\ifrunMPgraphics\@EA\executesystemcommand\else\@EA\delaysystemcommand\fi{\MPgraphicfilerunner}}
-\else
- \def\executeMPgraphicfile{\doifmode{*\v!first}
- {\ifrunMPgraphics\@EA\executesystemcommand\else\@EA\delaysystemcommand\fi{\MPgraphicfilerunner}}}
-\fi
-
-%D Special for \XETEX\ (problem with newlines). This will go
-%D away once the version supporting \type {--8bit} is
-%D widespread.
-
-\ifnum\texengine=\xetexengine
- \let\obeyMPlines\relax
- \longMPlinesfalse % alas
-\fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-mrk.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-mrk.mkii
deleted file mode 100644
index b9d476c2a7c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-mrk.mkii
+++ /dev/null
@@ -1,591 +0,0 @@
-%D \module
-%D [ file=supp-mrk,
-%D version=1995.10.10,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=Marks,
-%D author=Jim Fox / Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Remark: due to the lack of \type {\clearmark}, the \ETEX\
-%D dedicated mechanism is not yet operational.
-
-%D This module has deverted so much from the original that I
-%D can probably rewrite it to a more efficient one now and
-%D I will do so.
-
-%D There are 256 \COUNTERS, \DIMENSIONS, \SKIPS, \MUSKIPS\ and
-%D \BOXES, 16~in- and output buffers, but there is only one
-%D \MARK. In TugBoat~8 (1987, no~1) Jim Fox presents a set of
-%D macros that can be used to mimmick multiple marks. We
-%D gladly adopt them here. I may rewrite this module from
-%D scratch some day, since some low level \CONTEXT\ commands
-%D can be used.
-%D
-%D This module was changed on behalf of \ETEX. The main
-%D extension is that \type{\get..} and alike is used instead of
-%D direct calls. The \TEX\ based multiple marks needs to store
-%D the mark data but \ETEX\ uses a different approach.
-
-\writestatus{loading}{ConTeXt Support Macros / Marks}
-
-\unprotect
-
-%D We start with the presetting the interface macros.
-%D
-%D \starttabulate[|||]
-%D \NC \type{\getmarks} \NC sets the marks to their values \NC \NR
-%D \NC \type{\getallmarks} \NC sets all marks to their values \NC \NR
-%D \NC \type{\getsplitmarks} \NC sets the splitmarks to their values\NC \NR
-%D \NC \type{\getallsplitmarks} \NC sets all splitmarks to their values\NC \NR
-%D \NC \type{\setmarks} \NC synchronizes topmarks (\ETEX) \NC \NR
-%D \stoptabulate
-%D
-%D Later we will overload these, dependent of the brand of
-%D \TEX\ that we use.
-
-\let \getmarks \gobbleoneargument
-\let \getallmarks \relax
-\let \getsplitmarks \gobbleoneargument
-\let \getallsplitmarks \relax
-\let \setallmarks \relax
-
-\let \newmark \gobbleoneargument
-\let \newpersistentmark \gobbleoneargument
-\let \resetmark \gobbleoneargument
-\let \setmark \gobbletwoargument
-
-%D \macros
-%D {expandmarks}
-%D
-%D We can force expansion of marks with the following switch.
-
-\newif\ifexpandmarks \expandmarkstrue % hm, true indeed ?
-
-\beginTEX
-
-%D This implementation is more or less compatible with the
-%D other \type {\new} macros in \PLAIN\ \TEX. A mark is
-%D defined by:
-%D
-%D \starttyping
-%D \newmark\name
-%D \stoptyping
-%D
-%D and can be called upon with:
-%D
-%D \starttyping
-%D \gettopmark \name % or \topname
-%D \getbotmark \name % or \botname
-%D \getfirstmark\name % or \firstname
-%D \stoptyping
-%D
-%D The only drawback of his approach is that the marks must be
-%D preloaded in the output routine. This is accomplished by
-%D means of:
-%D
-%D \starttyping
-%D \getmarks\name
-%D \stoptyping
-%D
-%D The macros presented here are in most aspects copies of
-%D those presented by Jim Fox. We've taken the freedom to
-%D change a few things for more or less obvious reasons:
-%D
-%D \startitemize
-%D \item Because the original macros look quite complicated,
-%D which is mainly due to extensive use of
-%D \type{\expandafter}'s and \type{\csname}'s, we changed
-%D those in favor of \type{\getvalue}.
-%D \item To be more in line with the rest of \CONTEXT, we've
-%D changed some of the names of macros.
-%D \item Because we are already short on \COUNTERS\ we use
-%D macros when possible.
-%D \item We maintain a list of defined marks and use one
-%D call for getting them all at once.
-%D \item We have extended the mechanism to splitmarks (not
-%D perfected yet).
-%D \item We've introduced optional expansion of the contents
-%D of marks.
-%D \stopitemize
-%D
-%D Whatever changes we've made, the credits still go to Jim,
-%D whatever goes wrong is due to me. The method is described
-%D in the TugBoat mentioned before, so we won't go into
-%D details. All marks belonging to a group are packed in a
-%D list. In this list they are preceded by a macro that can
-%D be defined at will and a number concerning the position at
-%D which it was defined.
-%D
-%D \starttyping
-%D \def\somelist{... \domark5{this} ... \domark31{that} ...}
-%D \stoptyping
-%D
-%D The original \type{\mark} keeps track of the number and
-%D \type{\topmark} and \type{\botmark} are used to extract the
-%D actual marks from the list. The counting is done by
-%D
-%D \starttyping
-%D \currentmarker
-%D \stoptyping
-%D
-%D In \CONTEXT\ we use the mark mechanism to keep track of
-%D colors. In a complicated documents with many colors per
-%D page, \type{\currentmarker} can therefore get pretty high.
-%D (Well, this is not completely true, because we don't
-%D always have to use marks.)
-
-\newcount\currentmarker
-
-%D The original implementation used a few more \COUNTERS. Two
-%D have been substituted by macros, one has been replaced by
-%D our scratch counter.
-%D
-%D \starttyping
-%D \newcount\topmarker
-%D \newcount\botmarker
-%D \newcount\foundmarker
-%D \stoptyping
-%D
-%D We've also introduced some constants, one for the lists and
-%D three for composing the mark commands.
-
-\def\@@marklist@@ {*m*} % {marklist}
-\def\@@marktop@@ {*t*} % {top}
-\def\@@markbot@@ {*b*} % {bot}
-\def\@@markfirst@@ {*f*} % {first}
-\def\@@markcurrent@@ {*c*} % {current}
-
-%D The next one is new too. All defined marks are packed in a
-%D comma seperated list. This could of course have been a token
-%D list but \CONTEXT\ has some preference for comma lists.
-
-\let\allmarks=\empty
-
-%D The next macro replaces the multiple step expansion and
-%D command name constructors of Jim. This alternative leads to
-%D a more readable source (we hope).
-
-\def\makemarknames#1% kan genest werken
- {\bgroup
- \escapechar=-1
- \xdef\markname{\string#1}%
- \xdef\marklist{\@@marklist@@\markname}%
- \egroup}
-
-%D \macros
-%D {newmark,resetmark}
-%D
-%D A mark is defined by \type{\newmark}. At the same time,
-%D the name of the mark is added to a commalist. The
-%D three initializations were not in the original design, but
-%D make calls from outside the output routine a bit more
-%D robust.
-
-\let\domark\relax % saves a restore on the stack
-
-\def\definenewmark#1#2%
- {\bgroup
- \makemarknames{#1}%
- #2%
- \letgvalueempty{\@@markcurrent@@\markname}%
- \letgvalueempty{\@@marktop@@ \markname}%
- \letgvalueempty{\@@markfirst@@ \markname}%
- \letgvalueempty{\@@markbot@@ \markname}%
- \setgvalue{\marklist}{\domark0{}}% beware of halfway definitions
- \long\gdef#1{\addmarker#1}%
- \egroup}
-
-\def\newmark#1%
- {\definenewmark#1{\doglobal\addtocommalist\markname\allmarks}}
-
-%D Don't ask me, but sometimes we need more control over
-%D updating the marks, thereby we have:
-
-\def\newpersistentmark#1% for an example see core-grd.tex
- {\definenewmark#1\relax}
-
-\let\setmark \empty
-\let\resetmark\newmark
-
-%D Some more natural interfacing macros:
-
-\def\getcurrentmark #1{\getvalue{\@@markcurrent@@\strippedcsname#1}}
-\def\gettopmark #1{\getvalue{\@@marktop@@ \strippedcsname#1}}
-\def\getbottommark #1{\getvalue{\@@markbot@@ \strippedcsname#1}}
-\def\getfirstmark #1{\getvalue{\@@markfirst@@ \strippedcsname#1}}
-\def\getsplitbottommark#1{\getvalue{\@@markbot@@ \strippedcsname#1}}
-\def\getsplitfirstmark #1{\getvalue{\@@markfirst@@ \strippedcsname#1}}
-
-%D \macros
-%D {setmark}
-%D
-%D Setting a new mark and adding a mark to the designated
-%D list is done by \type{\addmarker}. This is an internal
-%D command, the user set a marks bij calling it's name:
-%D
-%D \starttyping
-%D \setmark\mymark{some text} % or \mymark{some text}
-%D \stoptyping
-%D
-%D Where \type{\mymark} is previously defined by
-%D \type{\newmark}.
-
-\long\def\addmarker#1#2%
- {\bgroup
- \makemarknames{#1}%
- \setgvalue{\@@markcurrent@@\markname}{#2}%
- \global\advance\currentmarker \plusone
- \normalmark{\the\currentmarker}%
- \!!toksa\@EA\@EA\@EA{\csname\marklist\endcsname}%
- \ifexpandmarks
- \setxvalue\marklist
- {\the\!!toksa
- \noexpand\domark
- \the\currentmarker{#2}}%
- \else
- \!!toksb\@EA{#2}% one level, why ? handy for cs
- \setxvalue\marklist
- {\the\!!toksa
- \noexpand\domark
- \the\currentmarker{\the\!!toksb}}%
- \fi
- \egroup}
-
-%D \macros
-%D {getmarks,getallmarks,
-%D getsplitmarks,getallsplitmarks}
-%D
-%D In fact, marks make only sense in the output routine. Marks
-%D are derived from their list by means of \type{\getmarks}.
-%D Only one call per mark is permitted in the output routine.
-%D Therefore, it's far more easy to get them all at once, by
-%D means of \type{\getallmarks}, which is not part of the
-%D original design.
-%D
-%D This grabbing is done by processing the list using the
-%D embedded \type{\domark} macros. When a relevant mark is
-%D found, this macro is reassigned and from then on serves
-%D in building the new list.
-
-% Hm, resetting \!!toksa got lost and took me a half a day to
-% trace down ([] showed up in the pagebody); I really have
-% to clean up this messy module (write it from scratch).
-
-\newif\ifnofirstmarker % an auxiliary switch
-
-\def\getmarks#1%
- {\bgroup
- \makemarknames{#1}%
- \edef\topmarker{0\normaltopmark}%
- \edef\botmarker{0\normalbotmark}%
- \!!toksa\emptytoks
- \!!toksb\emptytoks
- \nofirstmarkertrue
- % does more worse than good
- \let\fi\relax
- \let\or\relax
- \let\else\relax
- %
- \let\domark\doscanmarks
- \getvalue\marklist\lastmark
- %\message{markstatus : [\the\!!toksa\the\!!toksb\the\!!toksc]}%
- \long\setxvalue\marklist{\the\!!toksa\the\!!toksb\the\!!toksc}%
- \egroup}
-
-\def\getsplitmarks#1%
- {\bgroup
- \makemarknames{#1}%
- % \@EA\let\@EA\savedmarklist\@EA\csname\marklist\endcsname
- \edef\topmarker{0\normalsplitfirstmark}%
- \edef\botmarker{0\normalsplitbotmark}%
- \!!toksa\emptytoks
- \!!toksb\emptytoks
- \nofirstmarkertrue
- % does more worse than good
- \let\fi\relax
- \let\or\relax
- \let\else\relax
- %
- \let\domark\doscanmarks
- \getvalue\marklist\lastmark
- % \global\@EA\let\csname\marklist\endcsname\savedmarklist
- \egroup}
-
-\def\getallmarks {\processcommacommand[\allmarks]\getmarks}
-\def\getallsplitmarks{\processcommacommand[\allmarks]\getsplitmarks}
-
-\def\getallmarks {\@EA\processcommalist\@EA[\allmarks]\getmarks}
-\def\getallsplitmarks{\@EA\processcommalist\@EA[\allmarks]\getsplitmarks}
-
-\long\def\dodoscanmarks#1%
- {\ifnum\scratchcounter>\topmarker\relax
- \normalelse
- \long\setgvalue{\@@marktop@@\markname}{#1}%
- \normalfi
- \ifnum\scratchcounter>\botmarker\relax
- \let\domark\dorecovermarks
- \!!toksb\@EA{\@EA\domark\the\scratchcounter{#1}}%
- \normalelse
- \ifnofirstmarker
- \long\setgvalue{\@@markfirst@@\markname}{#1}%
- \ifnum\scratchcounter>\topmarker\relax
- \nofirstmarkerfalse
- \normalfi
- \normalfi
- \long\setgvalue{\@@markbot@@\markname}{#1}%
- \!!toksa\@EA{\@EA\domark\the\scratchcounter{#1}}%
- \normalfi}
-
-\def\doscanmarks
- {\afterassignment\dodoscanmarks\scratchcounter=}
-
-\long\def\dorecovermarks#1\lastmark% nice trick
- {\!!toksc{\domark#1}}
-
-\def\lastmark% rest of trick
- {\!!toksc\emptytoks}
-
-\endTEX
-
-%D The \ETEX\ way of doing things \unknown
-
-\beginETEX \marks cum suis
-
-\newtoks \listofmarks
-
-\def\@@prk{prk:}
-\def\@@mrk{mrk:}
-\def\@@trk{trk:}
-\def\@@frk{frk:}
-\def\@@brk{brk:}
-\def\@@crk{crk:}
-
-%D We will use two state variables per mark, one to signal
-%D that a new mark value is set, and one to trigger (on the
-%D next page) the setting of the top mark.
-
-\def\checkedtopmarks #1{\csname\@@trk\string#1\endcsname}
-\def\checkedfirstmarks#1{\csname\@@frk\string#1\endcsname}
-\def\checkedbotmarks #1{\csname\@@brk\string#1\endcsname}
-\def\thecurrentmarks #1{\csname\@@crk\string#1\endcsname}
-
-\long\def\setmark#1%
- {%\writestatus{marks}{setting \string#1}\wait
- \global\@EA\chardef\csname\@@mrk\string#1\endcsname\plusone
- %\@EA\normalmarks\csname\@@prk\string#1\endcsname{1}%
- \@EA\normalmarks\csname\@@prk\string#1\endcsname{\realfolio}%
- \ifexpandmarks\@EA\setexpandedmark\else\@EA\setnormalmark\fi#1}
-
-\def\setexpandedmark#1#2% % marks expand anyway
- {\@EA\xdef\csname\@@crk\string#1\endcsname{#2}%
- \normalmarks#1{#2}}
-
-\def\setnormalmark#1#2% using a tok prevents unwanted expansion in mark
- {\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
- \endgroup}
-
-\def\checktopmark#1%
- {%\writestatus{marks}{checking \string#1}\wait
- \ifcase\csname\@@mrk\string#1\endcsname\else\dochecktopmark#1\fi}
-
-%\def\dochecktopmark#1%
-% {\ifcase0\@EA\normalfirstmarks\csname\@@prk\string#1\endcsname\else
-% \@EA\ifx\csname\@@frk\string#1\endcsname\empty
-% \@EA\gdef\csname\@@frk\string#1\endcsname{\normalfirstmarks#1}%
-% \@EA\gdef\csname\@@brk\string#1\endcsname{\normalbotmarks #1}%
-% \else
-% \@EA\gdef\csname\@@trk\string#1\endcsname{\normaltopmarks #1}%
-% \global\@EA\chardef\csname\@@mrk\string#1\endcsname\zerocount
-% \fi
-% \fi}
-
-\def\dochecktopmark#1%
- {\ifx*\@EA\normalfirstmarks\csname\@@prk\string#1\endcsname*\else
- \@EA\ifx\csname\@@frk\string#1\endcsname\empty
- \@EA\gdef\csname\@@frk\string#1\endcsname{\normalfirstmarks#1}%
- \@EA\gdef\csname\@@brk\string#1\endcsname{\normalbotmarks #1}%
- \else
- \@EA\gdef\csname\@@trk\string#1\endcsname{\normaltopmarks #1}%
- \global\@EA\chardef\csname\@@mrk\string#1\endcsname\zerocount
- \fi
- \fi}
-
-%\def\resetmark#1% we cannot use \normalmarks#1{}
-% {\global\@EA\chardef\csname\@@mrk\string#1\endcsname\zerocount
-% \@EA\normalmarks\csname\@@prk\string#1\endcsname{0}%
-% \global\@EA\let\csname\@@trk\string#1\endcsname\empty
-% \global\@EA\let\csname\@@frk\string#1\endcsname\empty
-% \global\@EA\let\csname\@@brk\string#1\endcsname\empty
-% \global\@EA\let\csname\@@crk\string#1\endcsname\empty}
-
-\def\resetmark#1% we cannot use \normalmarks#1{}
- {\global\@EA\chardef\csname\@@mrk\string#1\endcsname\zerocount
- \@EA\normalmarks\csname\@@prk\string#1\endcsname{}% {0}%
- \global\@EA\let\csname\@@trk\string#1\endcsname\empty
- \global\@EA\let\csname\@@frk\string#1\endcsname\empty
- \global\@EA\let\csname\@@brk\string#1\endcsname\empty
- \global\@EA\let\csname\@@crk\string#1\endcsname\empty}
-
-\def\definenewmark#1%
- {\ifcsname\@@prk\string#1\endcsname\else % this is etex -)
- \newmarks#1\doglobal\appendtoks\checktopmark#1\to\listofmarks
- \@EA\newmarks\csname\@@prk\string#1\endcsname % status mark
- \fi
- \global\@EA\mathchardef\csname\@@mrk\string#1\endcsname\zerocount
- \global\@EA\let\csname\@@crk\string#1\endcsname\empty
- \@EA\gdef\csname\@@trk\string#1\endcsname{\normaltopmarks #1}%
- \@EA\gdef\csname\@@frk\string#1\endcsname{\normalfirstmarks#1}%
- \@EA\gdef\csname\@@brk\string#1\endcsname{\normalbotmarks #1}}
-
-\let \newmark \definenewmark
-\let \newpersistentmark \newmarks % \definenewmark
-\let \normalsetmark \setmark
-
-\def\getallmarks{\the\listofmarks} % \def\setallmarks{\the\listofmarks}
-
-%D In \type {page-ini} or \type {core-mar} we should say:
-%D
-%D \starttyping
-%D \appendtoks \getallmarks \to \everybeforepagebody
-%D \appendtoks \setallmarks \to \everyafterpagebody
-%D \stoptyping
-
-\let\getcurrentmark \thecurrentmarks
-\let\gettopmark \checkedtopmarks
-\let\getbottommark \checkedbotmarks % \normalbotmarks
-\let\getfirstmark \checkedfirstmarks % \normalfirstmarks
-\let\getsplitbottommark \normalsplitbotmarks
-\let\getsplitfirstmark \normalsplitfirstmarks
-
-\let\getbotmark \getbottommark
-\let\getsplitbotmark \normalsplitbotmarks
-\let\getsplittopmark \normalsplitfirstmarks
-
-\endETEX
-
-%D A couple of goodies:
-
-\let\getbotmark \getbottommark
-\let\getsplitbotmark\getsplitbottommark
-\let\getsplittopmark\getsplitfirstmark
-
-%D \macros
-%D {noninterferingmarks}
-%D
-%D Marks can interfere badly with for instance postprocessing
-%D paragraphs, for instance when we want to grab the last box
-%D using \type {\lastbox}, when at the same time using colors.
-
-\let\normalsetmark\setmark
-
-\def\noninterferingsetmark#1#2%
- {\ifhmode\prewordbreak\hbox\fi{\normalsetmark{#1}{#2}}}
-
-\def\noninterferingmarks
- {\let\noninterferingmarks\relax
- \let\setmark\noninterferingsetmark}
-
-%D This macro is for instance used in the inline headings
-%D postprocessing, as needed when we want to make those
-%D clickable.
-
-%D Right from the beginning, \CONTEXT\ supported more than one
-%D mark, using an extended version of Jim Fox multiple mark
-%D mechanism. In \ETEX\ we can however directly access more
-%D marks than we will ever need.
-
-%D Resetting marks in not compatible with the old method.
-%D Here a node is inserted, which can interfere badly. In
-%D fact, a real \type {\clearmarks\name} is needed.
-%D
-%D \starttyping
-%D \def\resetmark#1{\marks#1{}}
-%D \stoptyping
-%D
-%D A possible macro solution is presented here. When discussing
-%D \type {\clearmarks} on the \ETEX\ discussion list, Chris
-%D Rowley suggested to use a reset flag. Unfortunately this
-%D is not enough since we need to keep track of both set and
-%D reset state then. This means that we must postpone resetting
-%D to the page following the set, and as a result we need
-%D another auxiliary macro. The current solution is the best
-%D I could come up with so far, especially given that we
-%D need a fast mechanism.
-
-%D For those who want to know the story behind resetting
-%D marks, here are some examples of interference
-%D
-%D \startbuffer
-%D \setbox0=\vbox{test}
-%D \unvbox0\setbox0=\lastbox
-%D \ruledhbox{\unhbox0}
-%D \stopbuffer
-%D
-%D \typebuffer\blank\getbuffer\blank
-%D
-%D \startbuffer
-%D \setbox0=\vbox{test\normalmark{}}
-%D \unvbox0\setbox0=\lastbox
-%D \ruledhbox{\unhbox0}
-%D \stopbuffer
-%D
-%D \typebuffer\blank\getbuffer\blank
-%D
-%D \startbuffer
-%D \setbox0=\vbox{test\hbox{\normalmark{}}}
-%D \unvbox0\setbox0=\lastbox
-%D \ruledhbox{\unhbox0}
-%D \stopbuffer
-%D
-%D \typebuffer\blank\getbuffer\blank
-%D
-%D \startbuffer
-%D \setbox0=\vbox{test\vbox{\normalmark{}}}
-%D \unvbox0\setbox0=\lastbox
-%D \ruledhbox{\unhbox0}
-%D \stopbuffer
-%D
-%D \typebuffer\blank\getbuffer\blank
-
-%D One final advice. Use marks with care. When used in globally
-%D assigned boxes, the list can grow quite big, and processing
-%D can slow down considerably. This drawback is removed in
-%D \ETEX\ mode.
-
-\beginTEX
-
-\let\rawnewmark \newmark
-\let\rawdefinemark \newmark
-\let\rawsetmark \setmark
-\let\rawgettopmark \gettopmark
-\let\rawgetfirstmark \getfirstmark
-\let\rawgetbotmark \getbotmark
-\let\rawgetsplitbotmark \normalsplitbotmark
-\let\rawgetsplitfirstmark\normalsplitfirstmark
-\let\rawgetsplittopmark \normalsplitfirstmark
-
-\endTEX
-
-\beginETEX
-
-\let\rawnewmark \newmarks
-\let\rawdefinemark \newmarks
-\let\rawsetmark \normalmarks
-\let\rawgettopmark \normaltopmarks
-\let\rawgetfirstmark \normalfirstmarks
-\let\rawgetbotmark \normalbotmarks
-\let\rawgetsplitbotmark \normalsplitbotmarks
-\let\rawgetsplitfirstmark\normalsplitfirstmarks
-\let\rawgetsplittopmark \normalsplitfirstmarks
-
-\endETEX
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-num.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-num.mkii
deleted file mode 100644
index 5e35a20b07d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-num.mkii
+++ /dev/null
@@ -1,422 +0,0 @@
-%D \module
-%D [ file=supp-num,
-%D version=1998.05.15,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=Numbers,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Support Macros / Numbers}
-
-\unprotect
-
-%D \macros
-%D {digits, setdigitmode, setdigitsign}
-%D
-%D Depending on the digit mode the command \type {\digits}
-%D normalizes number patterns depending on the language set.
-%D
-%D \starttyping
-%D This will never be a \digits{1.000.000} seller.
-%D \stoptyping
-%D
-%D or
-%D
-%D \starttyping
-%D I will never grow longer than \digits 1.86 \Meter.
-%D \stoptyping
-%D
-%D The different modes are shown in:
-%D
-%D \startbuffer
-%D \setdigitmode 1 \digits 12.345,90 \digits 12.345.000 \digits 1,23
-%D \setdigitmode 2 \digits 12.345,90 \digits 12.345.000 \digits 1,23
-%D \setdigitmode 3 \digits 12.345,90 \digits 12.345.000 \digits 1,23
-%D \setdigitmode 4 \digits 12.345,90 \digits 12.345.000 \digits 1,23
-%D \setdigitmode 5 \digits 12.345,90 \digits 12.345.000 \digits 1,23
-%D \setdigitmode 6 \digits 12.345,90 \digits 12.345.000 \digits 1,23
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D This is typset as:
-%D
-%D \startlines
-%D \getbuffer
-%D \stoplines
-%D
-%D The sign can be typeset as is or within the space of a
-%D digit.
-%D
-%D \startbuffer
-%D \setdigitsign 0 \digits +12.345,90
-%D \setdigitmode 1 \digits +12.345,90
-%D \setdigitmode 2 \digits +12.345,90
-%D \setdigitmode 3 \digits +12.345,90
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D This is typset as:
-%D
-%D \startlines
-%D \getbuffer
-%D \stoplines
-
-\chardef\digitoutputmode=1 % 0..6
-\chardef\digitsignmode =0 % 0..3
-
-\def\setdigitmode{\chardef\digitoutputmode}
-\def\setdigitsign{\chardef\digitsignmode}
-
-%D The digit modes are:
-%D
-%D \startitemize[packed]
-%D \item periods \& comma
-%D \item commas \& period
-%D \item thinmuskips \& comma
-%D \item thinmuskips \& period
-%D \item thickmuskips \& comma
-%D \item thickmuskips \& period
-%D \stopitemize
-
-\let\collecteddigits \empty \chardef\digitinputmode =1
-\let\saveddigits \empty \chardef\skipdigit =0
-\let\savedpowerdigits\empty \chardef\powerdigits =0
-
-%D The first stage of the \type {\digit} macro takes care of
-%D the grouped call, the other branch handles the fuzzy
-%D delimited calls.
-
-\ifx\mbox\undefined \let\mbox\normalhbox \fi
-
-% \unexpanded\def\digits
-% {\bgroup\let~@\doifnextbgroupelse\dodigits\grabdigit}
-
-\unexpanded\def\digits
- {\bgroup
- \let~@%
- \doifnextbgroupelse\dodigits{\doifnextcharelse\normalmathshift\domathdigits\grabdigit}}
-
-\def\dodigits#1%
- {\grabdigit#1\relax}
-
-\def\domathdigits$#1$%
- {\mbox{\grabdigit#1\relax}} % adding $ $ goes wrong in tabulate
-
-\def\grabdigit
- {\futurelet\next\scandigit}
-
-%D Watch the test for \type {\nextobeyedline}, because the
-%D endofline token can be \type {\def'd}, not \type {\let}'d,
-%D we need to do an indirect test (see \type {verb-ini.tex})
-%D for details.
-%D
-%D \starttyping
-%D \def ^^M{\obeyedline}
-%D \def\nextbeyedline{\obeyedline}
-%D \stoptyping
-
-\ifx\normalmathshift\undefined \let\normalmathshift=$ \fi
-
-\def\scandigit
- {\ifx\next\blankspace
- \let\next\handledigits
- \else\ifx\next\nextobeyedline % the indirect one
- \let\next\handledigits
- \else\ifx\next\bgroup
- \let\next\handledigits
- \else\ifx\next\egroup
- \let\next\handledigits
- \else\ifx\next\normalmathshift
- \let\next\handledigits
- \else
- \let\next\collectdigit
- \fi\fi\fi\fi\fi
- \next}
-
-%D We store the power||of||ten (to be signaled by \type {^},
-%D \type {e} or~\type {E}) in a seperate macro so that we can
-%D typeset it in superscript. The space placeholders are
-%D replaced by a \type {@}.
-
-\def\savedigit#1#2%
- {\edef#1{#1\saveddigits#2}\let\saveddigits\empty}
-
-\long\def\collectdigit#1%
- {\ifx#1~%
- \savedigit\collecteddigits @%
- \else\if#1_%
- \savedigit\collecteddigits @%
- \else\if\noexpand#1\relax
- \let\grabdigit\handledigits
- \else\ifcase\powerdigits
- \if#1E%
- \chardef\powerdigits\plusone
- \else\if#1e%
- \chardef\powerdigits\plusone
- \else\if#1^%
- \chardef\powerdigits\plusone
- \else
- \savedigit\collecteddigits#1%
- %\doifnumberelse{#1}
- % {\savedigit\collecteddigits#1}
- % {\def\saveddigits{#1}}%
- \fi\fi\fi
- \else
- \savedigit\savedpowerdigits#1%
- %\doifnumberelse{#1}
- % {\savedigit\savedpowerdigits#1}
- % {\def\saveddigits{#1}}%
- \fi\fi\fi\fi
- \grabdigit}
-
-\let\handlemathdigits\firstofoneargument
-\let\handletextdigits\mathematics
-
-\def\handledigits
- {%\ifcase\powerdigits
- % \edef\collecteddigits{\collecteddigits\saveddigits}%
- %\else
- % \edef\savedpowerdigits{\savedpowerdigits\saveddigits}%
- %\fi
- \ifmmode
- \handlemathdigits{\dohandledigits}%
- \else
- \dontleavehmode\hbox{\handletextdigits{\dohandledigits}}%
- \fi
- \egroup}
-
-%D Although we could do with one pass, a second pass for
-%D handling the stored sequence is more readable.
-
-\ifnum\texengine=\luatexengine
-
- \def\dohandledigits
- {\mathcode`\,="002C \mathcode`\.="002E % pretty hard coded
- \expandafter\handletokens\collecteddigits\with\scandigits
- \ifcase\powerdigits\else\digitpowerseparator^{\savedpowerdigits}\fi}
-
- \chardef\mathaxisfontid\zerocount
-
-\else
-
- \def\dohandledigits
- {\mathcode`\,="013B \mathcode`\.="013A % pretty hard coded
- \expandafter\handletokens\collecteddigits\with\scandigits
- \ifcase\powerdigits\else\digitpowerseparator^{\savedpowerdigits}\fi}
-
- \chardef\mathaxisfontid\plustwo
-
-\fi
-
-\def\doscandigit#1%
- {\ifcase\skipdigit\@EA\hbox\else\@EA\hphantom\fi\bgroup
- \mathematics % brr, needed because of stored punctuation
- {\ifnum\digitinputmode=#1\relax
- \ifcase\digitoutputmode
- \or .%
- \or ,%
- \or \mskip\thinmuskip
- \or \mskip\thinmuskip
- \or \mskip\thickmuskip
- \or \mskip\thickmuskip
- \fi
- \else
- \ifodd\digitoutputmode,\else.\fi
- \fi}%
- \egroup}
-
-%D The signs can be made smaller and sqeezed into the width
-%D of a digit. Watch the \type {\mathaxisheight} trickery (this
-%D font related register stored the math axis).
-
-% 0,=
-% 0,== second = results in delta(00,=)
-% 0,- is invalid, should be =
-% 0,-- is invalid, should be ==
-
-\def\digitzeroamount
- {\digitsgn\zeroamount
- \def\digitzeroamount
- {\hphantom
- {00\setbox\scratchbox\hbox{$\zeroamount$}%
- \hskip-\wd\scratchbox}%
- \let\digitzeroamount\empty}}
-
-\def\scandigits#1%
- {\if#1.\digitsep1\else
- \if#1,\digitsep2\else
- \if#1@\digitnop \else
- \if#1_\digitnop \else
- \if#1/\digitsgn{\hphantom{+}}\chardef\skipdigit0\else
- \if#1-\ifcase\skipdigit\digitsgn-\else
- \box\digitsepbox\digitzeroamount \fi\chardef\skipdigit0\else
- \if#1+\digitsgn+\chardef\skipdigit0\else
- \if#1=\box\digitsepbox\digitzeroamount \chardef\skipdigit0\else
- \if#1s\digitsgn{\hphantom{\positive}}\chardef\skipdigit0\else
- \if#1p\digitsgn\positive\chardef\skipdigit0\else
- \if#1m\digitsgn\negative\chardef\skipdigit0\else
- \if#1n\digitsgn\negative\chardef\skipdigit0\else
- \box\digitsepbox #1\chardef\skipdigit0\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
-
-\newbox\digitsepbox \chardef\autodigitmode=1
-
-\def\digitsep#1%
- {\ifcase\autodigitmode
- \doscandigit#1%
- \else
- \setbox\digitsepbox\hbox{\doscandigit#1}%
- \fi
- \chardef\skipdigit0\relax}
-
-% strange, does not work
-%
-% \def\digitnop
-% {\hphantom{\box\digitsepbox}%
-% \hphantom{0}\chardef\skipdigit1\relax}
-%
-% while this works
-
-\def\digitnop
- {\hbox{\hphantom{\box\digitsepbox}}%
- \hphantom{0}\chardef\skipdigit1\relax}
-
-% but this doesn't
-%
-% \def\digitnop
-% {\hphantom{\box\digitsepbox0}%
-% \chardef\skipdigit1\relax}
-
-\def\digitsgn#1%
- {\ifcase\digitsignmode#1\else
- \hbox
- {\setbox\scratchbox\hbox{0}%
- \scratchdimen\mathaxisheight\textfont\mathaxisfontid
- \def\digitsgn##1##2%
- {\advance\scratchdimen-\mathaxisheight##1\mathaxisfontid
- \raise\scratchdimen
- \hbox to \wd\scratchbox{\hss$##2#1$\hss}}%
- \ifcase\digitsignmode\or
- \digitsgn\textfont \textstyle \or
- \digitsgn\scriptfont \scriptstyle \or
- \digitsgn\scriptscriptfont\scriptscriptstyle\fi}%
- \fi}
-
-\ifx\undefined\zeroamount \def\zeroamount{-} \fi
-\ifx\undefined\positive \def\positive {+} \fi
-\ifx\undefined\negative \def\negative {-} \fi
-
-%D The digit parser handles a bunch of special characters as
-%D well as different formats. We strongly suggest you to use
-%D the grouped call.
-%D
-%D \starttabulate[|l|l|l|]
-%D \NC \type{.} \NC , . \NC comma or period \NC \NR
-%D \NC \type{,} \NC , . \NC comma or period \NC \NR
-%D \NC \type{@} \NC \NC invisible space \NC \NR
-%D \NC \type{_} \NC \NC invisible space \NC \NR
-%D \NC \type{/} \NC \NC invisible sign \NC \NR
-%D \NC \type{-} \NC $-$ \NC minus sign \NC \NR
-%D \NC \type{+} \NC $+$ \NC plus sign \NC \NR
-%D \NC \type{s} \NC \NC invisible high sign \NC \NR
-%D \NC \type{p} \NC $\positive$ \NC high plus sign \NC \NR
-%D \NC \type{m} \NC $\negative$ \NC high minus sign \NC \NR
-%D \NC \type{n} \NC $\negative$ \NC high minus (negative) sign \NC \NR
-%D \NC \type{=} \NC $\zeroamount$ \NC zero padding \NC \NR
-%D \stoptabulate
-%D
-%D These triggers are used in the following examples.
-%D
-%D \startbuffer
-%D \digits 12
-%D \digits{~~~.~~~.~~~.68.712,34}
-%D \digits ~~~.~~~.~~~.68.712,34
-%D \digits ___.___.111.68.712,34
-%D \digits 111.111.111.68.712,34
-%D \digits 12.345,90
-%D \digits 12.345.000
-%D \digits 12,34
-%D \digits{392.857.230.68.712,34}
-%D {\digits1234}
-%D \digits{1234}
-%D \digits 1234\relax
-%D $\digits 123.222,00$
-%D \digits 123.222,00
-%D \digits 123.222,==
-%D \digits 123.222,00^10
-%D \digits 123.222,00e10
-%D \digits /123.222,00e-12
-%D \digits -123.222,00e-12
-%D \digits +123.222,00e-12
-%D \digits n123.222,00e-12
-%D \digits s123.222,00e-12
-%D \digits p123.222,00e-12
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \startlines
-%D \getbuffer
-%D \stoplines
-
-%D \macros
-%D {Digits}
-%D
-%D We also permit:
-
-\let\Digits\digits
-
-%D These macros are complicated by the fact that we also
-%D have to support cases like:
-%D
-%D \starttyping
-%D {\digits1234}
-%D \digits{1234}
-%D \digits 1234\whatever
-%D $\digits 123.222,00$
-%D \digits 123.222,00.
-%D \stoptyping
-%D
-%D The latter case shows us that trailing non digits are to
-%D be passed untreated.
-%D
-%D Another interesting case is:
-%D
-%D \starttyping
-%D \digits 123.222,00^10
-%D \stoptyping
-%D
-%D The separator is defined as:
-
-% \def\digitpowerseparator%
-% {\cdot10} % {\times10}
-
-\def\digitpowerseparator
- {\ifx\collecteddigits\empty\else\cdot\fi10}
-
-%D \macros
-%D {digittemplate}
-%D
-%D Users can specify the way they enter those digits by saying
-%D something like:
-%D
-%D \starttyping
-%D \digittemplate 12.000.000,00 % \digittemplate .,
-%D \stoptyping
-
-\def\digittemplate #1 %
- {\chardef\digitinputmode\zerocount
- \handletokens#1\with\scandigittemplate}
-
-\def\scandigittemplate#1%
- {\if #1.\ifcase\digitinputmode\chardef\digitinputmode\plusone \fi% period
- \else\if#1,\ifcase\digitinputmode\chardef\digitinputmode\plustwo \fi% comma
- \fi\fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-pat.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-pat.mkii
deleted file mode 100644
index 425eae215f6..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-pat.mkii
+++ /dev/null
@@ -1,175 +0,0 @@
-%D \module
-%D [ file=supp-pat,
-%D version=2005.02.12,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=Patterns,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D We support:
-%D
-%D \starttyping
-%D \patterns {
-%D ...[namedglyphs]...
-%D }
-%D \stoptyping
-%D
-%D as well as:
-%D
-%D \starttyping
-%D <patterns>
-%D ...&namedglyphs;...
-%D </patterns>
-%D \stoptyping
-%D
-%D The \XML\ variant has very limited \XML\ parsing capabilities and
-%D is meant as an experiment.
-
-\ifx\writestatus\undefined \else
- \writestatus{loading}{ConTeXt Support Macros / Patterns}
-\fi
-
-%D \CONTEXT:
-
-\ifx\startmapping\undefined \else \ifx\startencoding\undefined \else
- \def\fetchpatterntoken#1{\csname#1\endcsname}
-\fi \fi
-
-%D First we define the \ETEX\ variant. We cannot do that inside
-%D the if statement because normal \TEX\ gets confused over the
-%D csname test (which it does not see as if but it does see the
-%D else's and fi's).
-
-\def\etexfetchpatterntoken#1%
- {\csname
- \ifcsname @pattok@#1\endcsname
- @pattok@#1%
- \else\ifcsname#1\endcsname
- #1%
- \else
- @pattok@default%
- \fi\fi
- \endcsname}
-
-\ifx \fetchpatterntoken \undefined
-
- \ifx \eTeXversion \undefined
-
- \def\fetchpatterntoken#1%
- {\csname
- \expandafter\ifx\csname @pattok@#1\endcsname\relax
- \expandafter\ifx\csname#1\endcsname\relax
- @pattok@default%
- \else
- #1%
- \fi
- \else
- @pattok@#1%
- \fi
- \endcsname}
-
- \else
-
- \let\fetchpatterntoken\etexfetchpatterntoken
-
- \fi
-
-\fi
-
-\def\definepatterntoken #1 #2 %
- {\expandafter\def\csname @pattok@#1\endcsname{#2}}
-
-%D \TEX\ based:
-
-\bgroup \catcode`\[=\active
-
- \gdef\enablepatterntokens
- {\catcode`\[=\active \let[\handlepatterntoken}
-
-\egroup
-
-\def\handlepatterntoken#1]%
- {\fetchpatterntoken{#1}}
-
-%D \XML\ based:
-
-\bgroup \catcode`\<=\active \catcode`\&=\active
-
- \gdef\enablepatternxml
- {\catcode`\<=\active
- \catcode`\&=\active
- \let&\handlepatternentity
- \let<\handlepatternxml}
-
-\egroup
-
-\def\handlepatternentity#1;%
- {\fetchpatterntoken{#1}}
-
-%D We use a very simple \XML\ parser, and we only trigger on the first
-%D two characters of the tag name. Consider this feature a playground
-%D (and a bit of a joke).
-
-\def\handlepatternxml#1#2% we only distinguish the first two chars
- {\csname @patxml@\ifcsname @patxml@#1#2\endcsname#1#2\else de\fi\endcsname}
-
-\def\definepatternxml #1#2#3 #4%
- {\expandafter\def\csname @patxml@#1#2\endcsname{#4}}
-
-\def\fetchpatternxml#1#2>%
- {\bgroup
- \long\def\next##1>{\egroup}%
- \catcode`\<=2 % \@@endgroup
- \afterassignment\next
- #1\bgroup}
-
-\def\gobblepatternxml
- {\bgroup
- \catcode`\%=11
- \dogobblepatternxml}
-
-\long\def\dogobblepatternxml#1>%
- {\egroup}
-
-%D Here are the default definitions. We don't catch empty elements.
-
-\definepatternxml patterns {\fetchpatternxml\patterns}
-\definepatternxml hyphenations {\fetchpatternxml\hyphenation}
-\definepatternxml pattern {\fetchpatternxml\patterns}
-\definepatternxml hyphenation {\fetchpatternxml\hyphenation}
-\definepatternxml default {\gobblepatternxml}
-
-\definepatterntoken default x
-
-\ifx\pattern \undefined \let\pattern \patterns \fi
-\ifx\hyphenations\undefined \let\hyphenations\hyphenation \fi
-
-%D An example of usage in another format than \CONTEXT:
-%D
-%D \starttyping
-%D \bgroup
-%D
-%D \lccode"E4="E4 \definepatterntoken adiaeresis ^^e4
-%D \lccode"F6="F6 \definepatterntoken odiaeresis ^^f6
-%D \lccode"FC="FC \definepatterntoken ediaeresis ^^fc
-%D \lccode"FF="FF \definepatterntoken ssharp ^^ff
-%D
-%D \enablepatterntokens
-%D \enablepatternxml
-%D
-%D \input lang-de.pat
-%D \input lang-de.hyp
-%D
-%D \egroup
-%D \stoptyping
-%D
-%D This is a minimal example for EC encoding, and of course
-%D a couple of more language related settings need to take
-%D place (like uc mappings).
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-pdf.tex b/Master/texmf-dist/tex/context/base/mkii/supp-pdf.tex
deleted file mode 100644
index 2ae87806782..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-pdf.tex
+++ /dev/null
@@ -1 +0,0 @@
-\input supp-pdf.mkii
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-ran.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-ran.mkii
deleted file mode 100644
index 0a39026bfd3..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-ran.mkii
+++ /dev/null
@@ -1,122 +0,0 @@
-%D \module
-%D [ file=supp-ran,
-%D version=1998.01.21,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=Random Number Generation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Support Macros / Random Number Generation}
-
-%D \macros
-%D {getrandomcount, getrandomdimen,
-%D getrandomfloat, getrandomnumber,
-%D setrandomseed, getrandomseed}
-%D
-%D This module load Donald Arseneau's generic file
-%D \type{random.tex}. A small shell is needed because we
-%D redefine some \TEX\ primitives. We also use different names
-%D for the two generators and add an extra one.
-%D
-%D \starttyping
-%D \getrandomcount \countregister {minimum} {maximum}
-%D \getrandomdimen \dimenregister {minimum} {maximum}
-%D \getrandomnumber \macroname {minimum} {maximum}
-%D \getrandomfloat \macroname {minimum} {maximum}
-%D \stoptyping
-%D
-%D Of course the file \type{random.tex} needs to be present.
-%D To prevent name clashes, the \CONTEXT\ distribution
-%D contains a copy in \type {thrd-ran.tex}.
-%D
-%D The randomseed can be set by:
-%D
-%D \starttyping
-%d \setrandomseed{number>0}
-%D \stoptyping
-%D
-%D and get by:
-%D
-%D \starttyping
-%D \getrandomseed\randomseed
-%D \stoptyping
-
-\input thrd-ran.mkii
-
-\ifx\uniformdeviate\undefined
-
- \let\verynormalnextrandom\nextrandom
-
- \def\normalnextrandom
- {\bgroup
- \let\time \normaltime
- \let\day \normalday
- \let\month\normalmonth
- \let\year \normalyear
- \verynormalnextrandom
- \egroup}
-
-\else
-
- \writestatus{loading}{using TeX's built in randomizer (overloading macro)}
-
- % For the meaning of the magic number, see \type {thrd-ran.tex}.
- %
- % Taco suggested to use the following alternative because \type
- % {\uniformdeviate} can return a zero (as expected) while
- % Donalds Arseneau's alternative has a minimum of~1.
-
- \def\nextrandom
- {\normalsetrandomseed\randomi\relax
- \global\randomi\numexpr\normaluniformdeviate2147483646+1\relax}
-
- \let\normalnextrandom\nextrandom
-
-\fi
-
-\def\nextrandom
- {\bgroup
- \normalnextrandom
- \gdef\nextrandom{\ifcase\randomseedfrozen\normalnextrandom\fi}%
- \egroup}
-
-\chardef\randomseedfrozen\zerocount
-
-\def\freezerandomseed
- {\ifcase\randomseedfrozen
- \nextrandom \global\chardef\randomseedfrozen\plusone
- \fi}
-
-\def\defrostrandomseed
- {\ifcase\randomseedfrozen\else
- \global\chardef\randomseedfrozen\zerocount \nextrandom
- \fi}
-
-\let\getrandomcount\setrannum
-\let\getrandomdimen\setrandim
-
-\def\getrandomnumber#1#2#3%
- {\getrandomcount\scratchcounter{#2}{#3}%
- \edef#1{\the\scratchcounter}}
-
-\def\getrandomfloat#1#2#3%
- {\getrandomdimen\scratchdimen{#2\points}{#3\points}%
- \edef#1{\withoutpt\the\scratchdimen}}
-
-\unexpanded \def\setrandomseed#1%
- {\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/mkii/supp-spe.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-spe.mkii
deleted file mode 100644
index 4625695c7a2..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-spe.mkii
+++ /dev/null
@@ -1,164 +0,0 @@
-%D \module
-%D [ file=supp-spe,
-%D version=1997.07.05,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=Specials,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module implements some \type{\special} manipulation
-%D macros. I needed these when I implemented the code that
-%D handles the conversion of \TPIC\ specials to \PDF\ code.
-
-\ifx \undefined \writestatus \input supp-mis.tex \relax \fi
-\ifx \undefined \redefinespecial \else \expandafter \endinput \fi
-
-\writestatus{loading}{ConTeXt Support Macros / Specials}
-
-\unprotect
-
-%D When interpreting specials we need to do some basic scanning.
-%D For the moment we distinguish between three cases. We need
-%D
-%D \starttyping
-%D \special{tag: arguments}
-%D \special{tag arguments}
-%D \special{tag}
-%D \stoptyping
-%D
-%D We cannot be sure that the first case isn't
-%D
-%D \starttyping
-%D \special{tag:arguments}
-%D \stoptyping
-%D
-%D So we have to take care of that one too.
-
-%D \macros
-%D {redefinespecial}
-%D
-%D Specials that are to be interpreted are defined with
-%D commands like:
-%D
-%D \startbuffer[tmp-1]
-%D \redefinespecial a: \using#1\endspecial%
-%D {let's execute special 'a:' using '#1'}
-%D
-%D \redefinespecial a \using#1\endspecial%
-%D {let's execute special 'a' using '#1'}
-%D
-%D \redefinespecial a \using#1\endspecial%
-%D {let's execute special 'a' using nothing}
-%D \stopbuffer
-%D
-%D \typebuffer[tmp-1]
-%D
-%D The first two always take an argument, the last one not.
-%D The definition of this redefinition macro is not that
-%D complex. The names are internally tagged with \type{\@rds@}
-%D which saves both time and space.
-
-\def\@rds@{@rds@}
-
-\def\redefinespecial #1 {\setvalue{\@rds@#1}}
-
-%D \macros
-%D {mimmickspecials}
-%D
-%D Mimmicking specials is activated by saying:
-%D
-%D \starttyping
-%D \mimmickspecials
-%D \stoptyping
-%D
-%D This commands redefines the \PLAIN\ \TEX\ primitive
-%D \type{\special}.
-
-\def\mimmickspecials
- {\let\special\domimmickspecial}
-
-%D The special mimmicking macro first looks if it can find an
-%D colon terminated tag, next it searches for a tag that end
-%D with a space. If both cannot find, the tag itself is treated
-%D without argument.
-
-\def\domimmickspecial#1%
- {\domimmickcolonspecial#1:\relax/:\relax/\end}
-
-\def\domimmickcolonspecial#1:#2#3:\relax/#4\end
- {\ifx#2\relax
- \domimmickspacespecial#1 \relax/ \relax/\end
- \else
- \dodomimmickspecial#1:\using#2#3\endspecial
- \fi}
-
-\def\domimmickspacespecial#1 #2#3 \relax/#4\end
- {\ifx#2\relax
- \dodomimmickspecial#1\using\endspecial
- \else
- \dodomimmickspecial#1\using#2#3\endspecial
- \fi}
-
-\def\dodomimmickspecial#1\using#2\endspecial
- {\expandafter\ifx\csname\@rds@#1\endcsname\relax % \doifdefinedelse
- \defaultspecial{#1 #2}%
- \else
- %\message{[mimmick special #1 with #2]}%
- \getvalue{\@rds@#1}\using#2\endspecial
- \fi}
-
-%D Now let's show that things work the way we want, using the
-%D previous definitions of tag~a.
-%D
-%D \startbuffer[tmp-2]
-%D \mimmickspecials
-%D \special{a: 1 2 3 4 5}
-%D \special{a: 1 2 3 4 5}
-%D \special{a}
-%D \stopbuffer
-%D
-%D \typebuffer[tmp-2]
-%D
-%D Which results in:
-%D
-%D \startlines
-%D \getbuffer[tmp-1]
-%D \getbuffer[tmp-2]
-%D \stoplines
-
-%D \macros
-%D {mimmickspecial}
-%D
-%D When needed, one can call a mimmicked special directly by
-%D saying for instance:
-%D
-%D \starttyping
-%D \mimmickspecial a: \using...\endspecial
-%D \stoptyping
-%D
-%D This can be handy when specials have much in common.
-
-\def\mimmickspecial #1 {\getvalue{\@rds@#1}}
-
-%D \macros
-%D {normalspecial,defaultspecial}
-%D
-%D Unknown specials are passed to the default special handler.
-%D One can for instance ignore all further specials by saying
-%D \type{\normalspecial}:
-%D
-%D \starttyping
-%D \def\defaultspecial#1{}
-%D \stoptyping
-%D
-%D But here we default to idle.
-
-\let\normalspecial \special
-\let\defaultspecial\special
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-tpi.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-tpi.mkii
deleted file mode 100644
index 2c3e282e390..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-tpi.mkii
+++ /dev/null
@@ -1,353 +0,0 @@
-%D \module
-%D [ file=supp-tpi,
-%D version=1997.07.05,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=\TPIC\ Conversion,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This modules implements the conversion of graphic \TPIC\
-%D specials using \METAPOST.
-%D
-%D We reimplement the \TPIC\ specials using the special
-%D mimmicking mechanism implemented in the support module
-%D \type{supp-spe} as well as the \METAPOST\ run||time support
-%D implemented in \type{supp-mps}.
-
-\ifnum\texengine=\luatexengine
- \expandafter \endinput
-\fi
-
-\ifx\undefined\writestatus \input supp-mis.mkii \relax \fi
-\ifx\undefined\mimmickspecials \input supp-spe.mkii \relax \fi
-\ifx\undefined\MPgraphicbox \input supp-mps.mkii \relax \fi
-\ifx\undefined\dogetEPSboundingbox \input supp-eps.mkii \relax \fi
-
-\writestatus{loading}{ConTeXt Support Macros / TPIC Conversion}
-
-%D Beware: we haven't activated both mechanism yet. This is
-%D to be done in the calling module.
-
-\unprotect
-
-%D When we want to mimmick \TPIC\ specials in \PDFTEX, we need
-%D to map its graphic primitives into \PDF\ ones. The main
-%D problem in doing so is that \PDF\ does not support b-splines
-%D directly and also does not offer us something to draw arcs.
-%D Of course all this scan be implemented in \TEX, and the
-%D first implementation of this module did so, but the results
-%D were not that satisfying. Not having used these specials
-%D before, I had for instance to find out that the \TPIC\
-%D specials were not that unambiguesly defined.
-%D
-%D Then, while discussing something else, Sebastian Ratz told
-%D me that the Web2c implementation that \PDFTEX\ is base upon,
-%D offers some rather discutable, but nevertheless handy
-%D feature:
-%D
-%D \starttyping
-%D \write18{execute program with arguments}
-%D \stoptyping
-%D
-%D Knowing this, I immediatelly decided to throw away the old
-%D conversion macros and use the marvelous \METAPOST, \TEX\
-%D related, drawing program to do the conversion in as high a
-%D quality as possible.
-%D
-%D implementation we're going to present here, not only uses
-%D for drawing purposes, but also uses the more efficient
-%D \METAPOST\ features to store the path.
-%D
-%D \in{Table}[tab:TPIC specials] lists the \TPIC\ specials as
-%D mentioned in the \LATEX\ Graphics Companion and the
-%D relevant part of the \DVIPS\ source. This list shows us
-%D that we have to store the path before we can use it, simply
-%D because we don't know in advance what actions to apply on
-%D it.
-%D
-%D \placetable[here][tab:TPIC specials]{The \TPIC\ special syntax.}
-%D \starttable[|||l|]
-%D \HL
-%D \NC \bf tag \NC \bf arguments \NC \bf meaning \NC\SR
-%D \HL
-%D \NC pn \NC $w$ \NC set linewidth \NC\FR
-%D \NC pa \NC $x$ $y$ \NC add point to path \NC\MR
-%D \NC fp \NC \NC draw/fill path \NC\MR
-%D \NC ip \NC \NC fill path \NC\MR
-%D \NC da \NC $l$ \NC draw dashed path \NC\MR
-%D \NC dt \NC $l$ \NC draw doted path \NC\MR
-%D \NC sp \NC $d$ \NC draw spline \NC\MR
-%D \NC ar \NC $x$ $y$ $r_x$ $r_y$ $b$ $e$ \NC draw (partial) arc \NC\MR
-%D \NC ia \NC $x$ $y$ $r_x$ $r_y$ $b$ $e$ \NC fill (partial) arc \NC\MR
-%D \NC sh \NC $s$ \NC fill next path \NC\LR
-%D \HL
-%D \stoptable
-
-%D The first problem we have to take care of is the fact that
-%D there is no decent begin or end of the drawing process
-%D defined. We can however be quite sure that writers of
-%D packages using these specials will put them into a box,
-%D simply because else this is the most common used way to
-%D treat something \TEX\ as as a whole, like:
-%D
-%D \starttyping
-%D \hbox{\special{}\special{}...}
-%D \stoptyping
-%D
-%D We just start a picture as soon as the first special is
-%D encountered, so this becomes:
-%D
-%D \starttyping
-%D \hbox{\openpicture\newspecial{}\newspecial{}...
-%D \stoptyping
-
-%D The first step in opening the picture is to start a group.
-%D Now we can savely use the egroup that closes the box to also
-%D end the picture.
-
-% BETER: check for context and include mp-tool.mp
-
-\def\startTPICspecials
- {\bgroup
- \let\startTPICspecials\relax
- \aftergroup\stopTPICspecials
- \resetMPdrawing
- \startMPdrawing
- input mp-tool.mpii ;
- pair p[];
- \stopMPdrawing}
-
-%D As soon as we begin a picture, we inhibit nesting by
-%D relaxing the start macro. The first \METAPOST\ action we
-%D take is declaring an array of pairs named $p$.
-
-%D Ending the picture is invoked by closing the current group.
-%D Because the \TPIC\ picture comes out mirrored, we have to
-%D reflect the current \METAPOST\ picture, stored in the system
-%D variable {\it currentpicture}, around the $x$-axis.
-
-\def\stopTPICspecials
- {\startMPdrawing
- currentpicture:=currentpicture reflectedabout ((0,0),(4095,0));
- \stopMPdrawing
- \MPdrawingdonetrue
- \setbox\MPgraphicbox\hbox
- {\getMPdrawing}%
- \setbox\MPgraphicbox\hbox to \zeropoint
- {\kern-\wd\MPgraphicbox
- \vbox to \zeropoint{\box\MPgraphicbox\vss}\hss}%
- \ht\MPgraphicbox\zeropoint
- \wd\MPgraphicbox\zeropoint
- \dp\MPgraphicbox\zeropoint
- \box\MPgraphicbox
- \egroup}
-
-%D Here the macro \type{\stopwritingMPgraphic} has to take care
-%D of executing and including the \METAPOST\ code.
-
-%D We need to keep track of the number of elements that form
-%D the path. This is needed because we don't know in advance
-%D how the points are to be connected.
-
-\newcount\TPICcounter
-
-%D When a path is draw, we can connect the points using a
-%D smooth curve of drawing straight lines. A closed path can be
-%D drawn or filled.
-
-\newif\ifTPICdraw
-\newif\ifTPICfill
-\newif\ifTPICcurve
-
-%D The \TPIC\ specials permit specifying the line and fill
-%D color as well as the linetype, which can be solid, dashed or
-%D dotted. We'll save those specifications as a \METAPOST\
-%D string, using:
-
-\let\TPIClinetype =\empty
-\let\TPICgrayscale=\empty
-
-%D The magic reduction factor $.07227$ is needed to map the
-%D \TPIC\ $1/1000$ of an inch to \POSTSCRIPT\ points. We cannot
-%D delegate this task to \METAPOST\ because this program does
-%D not accept values greater than 4095.
-
-%D I won't discuss all the specifics used in implementing
-%D the specials. The \METAPOST\ part is rather trivial. Many
-%D specials have much in common, so the amout of code is not
-%D that large.
-
-\redefinespecial pa \using#1 #2\endspecial
- {\startTPICspecials
- \bgroup
- \global\advance\TPICcounter 1
- \dimen0=#1pt \dimen0=.07227\dimen0
- \dimen2=#2pt \dimen2=.07227\dimen2
- \startMPdrawing
- p[\the\TPICcounter]:=(\the\dimen0,\the\dimen2);
- \stopMPdrawing
- \egroup}
-
-\redefinespecial pn \using#1\endspecial
- {\startTPICspecials
- \bgroup
- \dimen0=#1pt \dimen0=.07227\dimen0
- \startMPdrawing
- pickup pencircle scaled \the\dimen0;
- \stopMPdrawing
- \egroup}
-
-\redefinespecial sh \using#1\endspecial
- {\startTPICspecials
- \bgroup
- \edef\g{#1}%
- \edef\g{\ifx\g\empty.5\else#1\fi}%
- \xdef\TPICgrayscale{withcolor (\g,\g,\g)}%
- \egroup}
-
-\redefinespecial wh \using#1\endspecial
- {\mimmickspecial sh \using0\endspecial}
-
-\redefinespecial bk \using#1\endspecial
- {\mimmickspecial sh \using1\endspecial}
-
-\redefinespecial da \using#1\endspecial
- {\startTPICspecials
- \bgroup
- \edef\l{#1}%
- \ifx\l\empty
- \gdef\TPIClinetype{dashed evenly}%
- \else
- \dimen0=#1in
- \ifdim\dimen0<\!!zeropoint \dimen0=-\dimen0\fi
- \edef\f{\the\dimen0 \space}%
- \dimen0=.5\dimen0
- \edef\h{\the\dimen0 \space}%
- \xdef\TPIClinetype{dashed dashpattern (on \h off \f on \h)}%
- \fi
- \egroup
- \TPICcurvefalse\TPICdrawtrue
- \drawTPICpath\using#1\endspecial}
-
-\redefinespecial dt \using#1\endspecial
- {\startTPICspecials
- \bgroup
- \edef\l{#1}%
- \xdef\TPIClinetype{dashed withdots \ifx\l\empty\else scaled #1in\fi}%
- \egroup
- \TPICcurvefalse\TPICdrawtrue
- \drawTPICpath\using#1\endspecial}
-
-\redefinespecial fp \using#1\endspecial
- {\startTPICspecials
- \TPICcurvefalse\TPICdrawtrue
- \ifdim0#1pt=\!!zeropoint
- \drawTPICpath\using#1\endspecial
- \else\ifdim0#1pt<\!!zeropoint
- \mimmickspecial dt\using#1\endspecial
- \else
- \mimmickspecial da\using#1\endspecial
- \fi\fi}
-
-\redefinespecial sp
- {\startTPICspecials\TPICdrawtrue\TPICcurvetrue\drawTPICpath}
-
-\redefinespecial ip
- {\startTPICspecials\TPICfilltrue\drawTPICpath}
-
-\redefinespecial ar
- {\startTPICspecials\TPICdrawtrue\drawTPICarc}
-
-\redefinespecial ia
- {\startTPICspecials\TPICfilltrue\drawTPICarc}
-
-%D These substitutes use two auxiliary macros that take care of
-%D actually drawing the shape or arc. Here we use the stored
-%D linetype (solid, dashed, dotted) and color (grayscale).
-
-\def\drawTPICpath\using#1\endspecial
- {\bgroup
- \ifTPICdraw
- \def\TPICgrayscale{}%
- \fi
- \startMPdrawing
- \ifTPICfill fill\fi\ifTPICdraw draw\fi\space
- for i:=1 upto \the\TPICcounter-1:
- p[i]\ifTPICcurve..\else--\fi
- endfor
- p[\the\TPICcounter]
- \ifTPICfill\ifTPICcurve..\else--\fi cycle \fi
- \TPIClinetype\space\TPICgrayscale;
- \stopMPdrawing
- \resetTPICvariables
- \egroup}
-
-%D I have to admit that at the moment I wrote this macro, I
-%D could not write this piece of \METAPOST. Fortunately
-%D Thortsen Ohl promptly answered the question I posted to the
-%D \METAFONT\ discussion list.
-
-\def\drawTPICarc\using#1 #2 #3 #4 #5 #6\endspecial
- {\bgroup
- \ifTPICdraw
- \def\TPICgrayscale{}%
- \fi
- \dimen 0=#1pt\dimen 0=.07227\dimen 0
- \dimen 2=#2pt\dimen 2=.07227\dimen 2
- \dimen10=#3pt\dimen10=.14454\dimen10
- \dimen12=#4pt\dimen12=.14454\dimen12
- \dimen20=#5pt
- \dimen22=#6pt
- \startMPdrawing
- \ifTPICfill fill\fi\ifTPICdraw draw\fi \space
- \ifTPICfill\else subpath 4/3.14159*(\the\dimen20,\the\dimen22) of \fi
- fullcircle xscaled \the\dimen10 \space yscaled \the\dimen12 \space
- shifted (\the\dimen0,\the\dimen2)
- \TPIClinetype \space \TPICgrayscale;
- \stopMPdrawing
- \resetTPICvariables
- \egroup}
-
-%D Resetting the variables need to be done globally because we
-%D cannot be sure if any further grouping is used by the
-%D envelopping macros.
-
-\def\resetTPICvariables
- {\global\TPICcounter\zerocount
- \global\TPICfillfalse
- \global\TPICdrawfalse
- \global\let\TPIClinetype\empty
- \global\let\TPICgrayscale\empty}
-
-%D I have to admit that by using the \METAPOST\ B‚zier cubics
-%D routines these implementation does produce better curves
-%D then most \DVI\ drivers do using the \TPIC\ prescribed
-%D b-splines. Take for instance the sequence:
-%D
-%D \starttyping
-%D \special{pa 2000 1000}
-%D \special{pa 1000 2000}
-%D \special{pa 0000 1000}
-%D \special{pa 1000 0000}
-%D \special{pa 2000 1000}
-%D \special{sp}
-%D \stoptyping
-%D
-%D One would expect that this code produced a closed circle,
-%D but the curve that comes out using b-splines is far from
-%D round. We can however savely asume that the arc producing
-%D specials will be used for drawing circle fragments, while
-%D the path specials will be used for arbitraty curves. And for
-%D b-splines to produce nice curves, one will often use many
-%D points to get the desired results. Therefore, using the
-%D \METAPOST\ B‚zier curves will certainly produce similar and
-%D even better graphics, except in those rare cases where one
-%D uses delinberately the not that accurate features of
-%D b-splines. Hereby the user is warned.
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/supp-vis.mkii b/Master/texmf-dist/tex/context/base/mkii/supp-vis.mkii
deleted file mode 100644
index 22a745b1308..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/supp-vis.mkii
+++ /dev/null
@@ -1,1907 +0,0 @@
-%D \module
-%D [ file=supp-vis,
-%D version=1996.10.21,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=Visualization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% no longer generic, who cares ...
-
-%D \gdef\ShowBufferedExample% private typeseting macro
-%D {\startlinecorrection
-%D \bgroup
-%D \setuptyping[margin=0pt,option=color]
-%D \showmakeup
-%D \centeredvcuetrue
-%D \dontinterfere
-%D \baselinerulefalse
-%D \normalvbox
-%D {\normalhbox to \hsize
-%D {$\hsize=.5\hsize
-%D \advance\hsize by -.5em
-%D \normalvcenter{\vbox{\getbuffer}}\normalhss
-%D \normalvcenter{\vbox{\dontshowcomposition\typebuffer}}$}}
-%D \egroup
-%D \stoplinecorrection}
-%D
-%D \gdef\ShowBufferedExampleBox% private typeseting macro
-%D {\startlinecorrection
-%D \bgroup
-%D \setuptyping[margin=0pt,option=color]
-%D \showmakeup
-%D \centeredvcuetrue
-%D \dontinterfere
-%D \baselinerulefalse
-%D \normalvbox
-%D {\normalhbox to \hsize
-%D {$\hsize=.5\hsize
-%D \advance\hsize by -.5em
-%D \normalvcenter{\baselineruletrue\vbox{\getbuffer}}\normalhss
-%D \normalvcenter{\vbox{\dontshowcomposition\typebuffer}}$}}
-%D \egroup
-%D \stoplinecorrection}
-
-%D Although an integral part of \CONTEXT, this module is one
-%D of the support modules. Its stand alone character permits
-%D use in \PLAIN\ \TEX\ or \TEX\ based macropackages.
-%D \ifCONTEXT \else If in some examples the verbatim listings
-%D don't show up nice, this is due to processing by a system
-%D that does not support buffering. In \CONTEXT\ we show the
-%D commands in the margin, use bit more advanced way of
-%D numbering, and typeset the source in \TEX nicolored
-%D verbatim. Sorry for this inconvenience.\fi
-%D
-%D Depending on my personal needs and those of whoever uses it,
-%D the macros will be improved in terms of visualization,
-%D efficiency and compatibility. These rather low level
-%D visualization macros are supplemented by ones that can
-%D visualize baselines, the page layout and whatever deserves
-%D attention. Most of those macros can be found in \type
-%D {core-vis} and other core modules. Their integration in
-%D \CONTEXT\ prohibits generic applications.
-
-\ifx \undefined \writestatus \input supp-mis.tex \fi
-
-%D One of the strong points of \TEX\ is abstraction of textual
-%D input. When macros are defined well and do what we
-%D want them to do, we will seldom need the tools present in
-%D What You See Is What You Get systems. For instance, when
-%D entering text we don't need rulers, because no manual
-%D shifting and/or alignment of text is needed. On the other
-%D hand, when we are designing macros or specifying layout
-%D elements, some insight in \TEX's advanced spacing, kerning,
-%D filling, boxing and punishment abilities will be handy.
-%D That's why we've implemented a mechanism that shows some of
-%D the inner secrets of \TEX.
-
-\writestatus{loading}{ConTeXt Support Macros / Visualization}
-
-%D In this module we are going to redefine some \TEX\
-%D primitives and \PLAIN\ macro's. Their original meaning is
-%D saved in macros with corresponding names, preceded by
-%D \type{normal}. These original macros are (1)~used to
-%D temporary restore the old values when needed and
-%D (2)~used to prevent recursive calls in the macros that
-%D replace them.
-
-\unprotect
-
-\let\visualvrule\vrule
-\let\visualhrule\hrule
-
-%D \macros
-%D {dontinterfere}
-%D
-%D Indentation, left and/or right skips, redefinition of
-%D \type{\par} and assignments to \type{\everypar} can lead to
-%D unwanted results. We can therefore turn all those things
-%D off with \type{\dontinterfere}.
-
-\def\dontinterfere
- {\everypar \emptytoks
- \let\par \endgraf
- \parindent\zeropoint
- \parskip \zeropoint
- \leftskip \zeropoint
- \rightskip\zeropoint
- \relax}
-
-%D \macros
-%D {dontcomplain}
-%D
-%D In this module we do a lot of box manipulations. Because we
-%D don't want to be confronted with to many over- and underfull
-%D messages we introduce \type{\dontcomplain}.
-
-\def\dontcomplain
- {\hbadness\!!tenthousand \vbadness\hbadness
- \hfuzz \maxdimen \vfuzz \hfuzz}
-
-% This obsolete dutch name is sometimes uses in manual styles; when
-% cleaning up the codebase I decided to move this definition here.
-
-\let\mindermeldingen\dontcomplain
-
-%D \macros
-%D {normaloffinterlineskip}
-%D
-%D The next hack is needed because in \CONTEXT\ we redefine
-%D \type{\offinterlineskip}.
-
-\ifx\undefined\normaloffinterlineskip
- \let\normaloffinterlineskip\offinterlineskip
-\fi
-
-%D \macros
-%D {normalhbox,
-%D normalvbox,normalvtop}
-%D
-%D There are three types of boxes, one horizontal and two
-%D vertical in nature. As we will see later on, all three types
-%D are to be handled according to their orientation and
-%D baseline behavior. Especially \type{\vtop}'s need our
-%D special attention.
-
-% already saved
-
-%D \macros
-%D {normalhskip,
-%D normalvskip}
-%D
-%D Next come the flexible skips, which come in two flavors
-%D too. Like boxes these are handled with \TEX\ primitives.
-
-% already saved
-
-%D \macros
-%D {normalpenalty,
-%D normalkern}
-%D
-%D Both penalties and kerns are taken care of by mode sensitive
-%D primitives. This means that when making them visible, we
-%D have to take the current mode into account.
-
-% already saved
-
-%D \macros
-%D {normalhglue,
-%D normalvglue}
-%D
-%D Glues on the other hand are macro's defined in \PLAIN\ \TEX.
-%D As we will see, their definitions make the implementation of
-%D their visible counterparts a bit more \TeX{}nical.
-
-\let\normalhglue = \hglue
-\let\normalvglue = \vglue
-
-%D \macros
-%D {normalmkern,
-%D normalmskip}
-%D
-%D Math mode has its own spacing primitives, preceded by
-%D \type{m}. Due to the relation with the current font and the
-%D way math is typeset, their unit \type{mu} is not compatible
-%D with other dimensions. As a result, the visual appearance
-%D of these primitives is kept primitive too.
-
-% already saved
-
-%D \macros
-%D {hfilneg,
-%D vfilneg}
-%D
-%D Fills can be made visible quite easy. We only need some
-%D additional negation macros. Because \PLAIN\ \TEX\ only
-%D offers \type{\hfilneg} and \type{\vfilneg}, we define our
-%D own alternative double \type{ll}'ed ones.
-
-\def\hfilneg {\normalhskip\zeropoint \!!plus-1fil\relax}
-\def\vfilneg {\normalvskip\zeropoint \!!plus-1fil\relax}
-\def\hfillneg {\normalhskip\zeropoint \!!plus-1fill\relax}
-\def\vfillneg {\normalvskip\zeropoint \!!plus-1fill\relax}
-\def\hfilllneg{\normalhskip\zeropoint \!!plus-1filll\relax}
-\def\vfilllneg{\normalvskip\zeropoint \!!plus-1filll\relax}
-
-%D \macros
-%D {normalhss,normalhfil,normalhfill,
-%D normalvss,normalvfil,normalvfill}
-%D
-%D The positive stretch primitives are used independant and in
-%D combination with \type{\leaders}.
-
-% already saved
-
-%D \macros
-%D {normalhfilneg,normalhfillneg,
-%D normalvfilneg,normalvfillneg}
-%D
-%D Keep in mind that both \type{\hfillneg} and \type{\vfillneg}
-%D are not part of \PLAIN\ \TEX\ and therefore not documented
-%D in standard \TEX\ documentation. They can nevertheless be
-%D used at will.
-
-\let\normalhfillneg = \hfillneg
-\let\normalvfillneg = \vfillneg
-
-%D Visualization is not always wanted. Instead of turning this
-%D option off in those (unpredictable) situations, we just
-%D redefine a few \PLAIN\ macros.
-
-\ifx\tlap\undefined
-
- \def\rlap#1{\normalhbox to \zeropoint{#1\normalhss}}
- \def\llap#1{\normalhbox to \zeropoint{\normalhss#1}}
- \def\blap#1{\normalvbox to \zeropoint{#1\normalvss}}
- \def\tlap#1{\normalvbox to \zeropoint{\normalvss#1}}
-
-\fi
-
-\ifx\contextversion\undefined \def~{\normalpenalty\!!tenthousand\ } \fi
-
-%D \macros
-%D {makeruledbox}
-%D
-%D Ruled boxes can be typeset is many ways. Here we present
-%D just one alternative. This implementation may be a little
-%D complicated, but it supports all three kind of boxes. The
-%D next command expects a \BOX\ specification, like:
-%D
-%D \starttyping
-%D \makeruledbox0
-%D \stoptyping
-
-%D \macros
-%D {baselinerule,baselinefill}
-%D
-%D We can make the baseline of a box visible, both dashed and
-%D as a rule. The line is drawn on top of the baseline. All
-%D we have to say is:
-%D
-%D \starttyping
-%D \baselineruletrue
-%D \baselinefilltrue
-%D \stoptyping
-%D
-%D At the cost of some overhead these alternatives are
-%D implemented using \type{\if}'s:
-
-\newif\ifbaselinerule \baselineruletrue
-\newif\ifbaselinefill \baselinefillfalse
-
-%D \macros
-%D {iftoprule,ifbottomrule,ifleftrule,ifrightrule}
-%D
-%D Rules can be turned on and off, but by default we have:
-%D
-%D \starttyping
-%D \topruletrue
-%D \bottomruletrue
-%D \leftruletrue
-%D \rightruletrue
-%D \stoptyping
-%D
-%D As we see below:
-
-\newif\iftoprule \topruletrue
-\newif\ifbottomrule \bottomruletrue
-\newif\ifleftrule \leftruletrue
-\newif\ifrightrule \rightruletrue
-
-%D \macros
-%D {boxrulewidth}
-%D
-%D The width in the surrounding rules can be specified by
-%D assigning an apropriate value to the dimension used. This
-%D module defaults the width to:
-%D
-%D \starttyping
-%D \boxrulewidth=.2pt
-%D \stoptyping
-%D
-%D Although we are already low on \DIMENSIONS\ it's best to
-%D spend one here, mainly because it enables easy manipulation,
-%D like multiplication by a given factor.
-
-\newdimen\boxrulewidth \boxrulewidth=.2pt
-
-%D The core macro \type{\makeruledbox} looks a bit hefty. The
-%D manipulation at the end is needed because we want to
-%D preserve both the mode and the baseline. This means that
-%D \type{\vtop}'s and \type{\vbox}'es behave the way we expect
-%D them to do.
-%D
-%D \startlinecorrection
-%D \hbox
-%D {\ruledhbox to 5em{\strut test\normalhss}\hskip1em
-%D \ruledvbox{\hsize 5em\strut test \par test\strut}\hskip1em
-%D \ruledvtop{\hsize 5em\strut test \par test\strut}}
-%D \stoplinecorrection
-%D
-%D The \type{\cleaders} part of the macro is responsible for
-%D the visual baseline. The \type{\normalhfill} belongs to this
-%D primitive too. By storing and restoring the height and depth
-%D of box \type{#1}, we preserve the mode.
-
-\let\dowithruledbox\relax
-
-\let\ruledheight\!!zeropoint
-\let\ruleddepth \!!zeropoint
-\let\ruledwidth \!!zeropoint
-
-\def\makeruledbox#1%
- {\edef\ruledheight{\the\ht#1}%
- \edef\ruleddepth {\the\dp#1}%
- \edef\ruledwidth {\the\wd#1}%
- \setbox\scratchbox\normalvbox
- {\dontcomplain
- \normaloffinterlineskip
- \visualhrule
- \!!height\boxrulewidth
- \iftoprule\else\!!width\zeropoint\fi
- \normalvskip-\boxrulewidth
- \normalhbox to \ruledwidth
- {\visualvrule
- \!!height\ruledheight
- \!!depth\ruleddepth
- \!!width\ifleftrule\else0\fi\boxrulewidth
- \ifdim\ruledheight>\zeropoint \else \baselinerulefalse \fi
- \ifdim\ruleddepth>\zeropoint \else \baselinerulefalse \fi
- \ifbaselinerule
- \ifdim\ruledwidth<20\boxrulewidth
- \baselinefilltrue
- \fi
- \cleaders
- \ifbaselinefill
- \visualhrule
- \!!height\boxrulewidth
- \else
- \normalhbox
- {\normalhskip2.5\boxrulewidth
- \visualvrule
- \!!height\boxrulewidth
- \!!width5\boxrulewidth
- \normalhskip2.5\boxrulewidth}%
- \fi
- \fi
- \normalhfill
- \visualvrule
- \!!width\ifrightrule\else0\fi\boxrulewidth}%
- \normalvskip-\boxrulewidth
- \visualhrule
- \!!height\boxrulewidth
- \ifbottomrule\else\!!width\zeropoint\fi}%
- \wd#1\zeropoint
- \setbox#1=\ifhbox#1\normalhbox\else\normalvbox\fi
- {\normalhbox
- {\box#1%
- \lower\ruleddepth\normalhbox{\dowithruledbox{\box\scratchbox}}}}%
- \ht#1=\ruledheight
- \wd#1=\ruledwidth
- \dp#1=\ruleddepth}
-
-%D Just in case one didn't notice: the rules are in fact layed
-%D over the box. This way the contents of a box cannot
-%D visually interfere with the rules around (upon) it. A more
-%D advanced version of ruled boxes can be found in one of the
-%D core modules of \CONTEXT. There we take offsets, color,
-%D rounded corners, backgrounds and alignment into account too.
-
-%D \macros
-%D {ruledhbox,
-%D ruledvbox,ruledvtop,
-%D ruledvcenter}
-%D
-%D These macro's can be used instead of \type{\hbox},
-%D \type{\vbox}, \type{\vtop} and, when in math mode,
-%D \type{\vcenter}. They just do what their names state. Using
-%D an auxiliary macro would save us a few words of memory, but
-%D it would make their appearance even more obscure.
-%D
-%D \startbuffer
-%D \hbox
-%D {\strut
-%D one
-%D two
-%D \hbox{three}
-%D four
-%D five}
-%D \stopbuffer
-%D
-%D \ShowBufferedExampleBox
-
-\unexpanded\def\ruledhbox
- {\normalhbox\bgroup
- \dowithnextbox{\makeruledbox\nextbox\box\nextbox\egroup}%
- \normalhbox}
-
-%D \startbuffer
-%D \vbox
-%D {\strut
-%D first line \par
-%D second line \par
-%D third line \par
-%D fourth line \par
-%D fifth line
-%D \strut }
-%D \stopbuffer
-%D
-%D \ShowBufferedExampleBox
-
-\unexpanded\def\ruledvbox
- {\normalvbox\bgroup
- \dowithnextbox{\makeruledbox\nextbox\box\nextbox\egroup}%
- \normalvbox}
-
-%D \startbuffer
-%D \vtop
-%D {\strut
-%D first line \par
-%D second line \par
-%D third line \par
-%D fourth line \par
-%D fifth line
-%D \strut }
-%D \stopbuffer
-%D
-%D \ShowBufferedExampleBox
-
-\unexpanded\def\ruledvtop
- {\normalvtop\bgroup
- \dowithnextbox{\makeruledbox\nextbox\box\nextbox\egroup}%
- \normalvtop}
-
-%D \startbuffer
-%D \hbox
-%D {$\vcenter{\hsize.2\hsize
-%D alfa \par beta}$
-%D $\vcenter to 3cm{\hsize.2\hsize
-%D alfa \par beta \par gamma}$
-%D $\vcenter{\hsize.2\hsize
-%D alfa \par beta}$}
-%D \stopbuffer
-%D
-%D \ShowBufferedExampleBox
-
-\unexpanded\def\ruledvcenter
- {\normalvbox\bgroup
- \dontinterfere
- \dowithnextbox
- {\scratchdimen.5\ht\nextbox
- \advance\scratchdimen .5\dp\nextbox
- \ht\nextbox\scratchdimen
- \dp\nextbox\scratchdimen
- \ruledhbox{\box\nextbox}%
- \egroup}%
- \normalvbox}
-
-%D \macros
-%D {ruledbox,
-%D setruledbox}
-%D
-%D Of the next two macros the first can be used to precede a
-%D box of ones own choice. One can for instance prefix boxes
-%D with \type{\ruledbox} and afterwards --- when the macro
-%D satisfy the needs --- let it to \type{\relax}.
-%D
-%D \starttyping
-%D \ruledbox\hbox{What rules do you mean?}
-%D \stoptyping
-%D
-%D The macro \type{\setruledbox} can be used to directly
-%D rule a box.
-%D
-%D \starttyping
-%D \setruledbox12=\hbox{Who's talking about rules here?}
-%D \stoptyping
-%D
-%D At the cost of some extra macros we can implement a
-%D variant that does not need the~\type{=}, but we stick to:
-
-\unexpanded\def\ruledbox
- {\dowithnextbox{\makeruledbox\nextbox\box\nextbox}}
-
-\def\setruledbox#1=%
- {\dowithnextbox{\makeruledbox\nextbox\setbox#1\nextbox}}
-
-%D \macros
-%D {investigateskip,
-%D investigatecount,
-%D investigatemuskip}
-%D
-%D Before we meet the visualizing macro's, we first implement
-%D ourselves some handy utility ones. Just for the sake of
-%D efficiency and readability, we introduce some status
-%D variables, that tell us a bit more about the registers we
-%D use:
-%D
-%D \starttyping
-%D \ifflexible
-%D \ifzero
-%D \ifnegative
-%D \ifpositive
-%D \stoptyping
-%D
-%D These status variables are set when we call for one of the
-%D investigation macros, e.g.
-%D
-%D \starttyping
-%D \investigateskip\scratchskip
-%D \stoptyping
-%D
-%D We use some dirty trick to check stretchability of \SKIPS.
-%D Users of these macros are invited to study their exact
-%D behavior first. The positive and negative states both
-%D include zero and are in fact non-negative ($\geq0$) and
-%D non-positive ($\leq0$) .
-
-\newif\ifflexible
-\newif\ifzero
-\newif\ifnegative
-\newif\ifpositive
-
-\def\investigateskip#1%
- {\relax
- \scratchdimen#1\relax
- \edef\!!stringa{\the\scratchdimen}%
- \edef\!!stringb{\the#1}%
- \ifx\!!stringa\!!stringb \flexiblefalse \else \flexibletrue \fi
- \ifdim#1=\zeropoint\relax
- \zerotrue \else
- \zerofalse \fi
- \ifdim#1<\zeropoint\relax
- \positivefalse \else
- \positivetrue \fi
- \ifdim#1>\zeropoint\relax
- \negativefalse \else
- \negativetrue \fi}
-
-% etex
-%
-% \def\investigateskip#1%
-% {\relax
-% \ifdim\scratchskip=\zeropoint
-% \ifdim\gluestretch\scratchskip=\zeropoint
-% \ifdim\glueshrink\scratchskip=\zeropoint
-% \flexiblefalse
-% \else
-% \flexibletrue
-% \fi
-% \else
-% \flexibletrue
-% \fi
-% \else
-% \flexibletrue
-% \fi
-% \ifdim#1=\zeropoint\relax
-% \zerotrue \else
-% \zerofalse \fi
-% \ifdim#1<\zeropoint\relax
-% \positivefalse \else
-% \positivetrue \fi
-% \ifdim#1>\zeropoint\relax
-% \negativefalse \else
-% \negativetrue \fi}
-
-\def\investigatecount#1%
- {\relax
- \flexiblefalse
- \ifnum#1=\zerocount
- \zerotrue \else
- \zerofalse \fi
- \ifnum#1<\zerocount
- \positivefalse \else
- \positivetrue \fi
- \ifnum#1>\zerocount
- \negativefalse \else
- \negativetrue \fi}
-
-\def\investigatemuskip#1%
- {\relax
- \edef\!!stringa{\the\scratchmuskip}%
- \edef\!!stringb{0mu}%
- \def\!!stringc##1##2\\{##1}%
- \expandafter\edef\expandafter\!!stringc\expandafter
- {\expandafter\!!stringc\!!stringa\\}%
- \edef\!!stringd{-}%
- \flexiblefalse
- \ifx\!!stringa\!!stringb
- \zerotrue
- \negativefalse
- \positivefalse
- \else
- \zerofalse
- \ifx\!!stringc\!!stringd
- \positivefalse
- \negativetrue
- \else
- \positivetrue
- \negativefalse
- \fi
- \fi}
-
-%D Now the neccessary utility macros are defined, we can make a
-%D start with the visualizing ones. The implementation of these
-%D macros is a compromise between readability, efficiency of
-%D coding and processing speed. Sometimes we do in steps what
-%D could have been done in combination, sometimes we use a few
-%D boxes more or less then actually needed, and more than once
-%D one can find the same piece of rule drawing code twice.
-
-%D \macros
-%D {ifcenteredvcue,normalvcue}
-%D
-%D Depending on the context, one can force visual vertical cues
-%D being centered along \type{\hsize} or being put at the
-%D current position. Although centering often looks better,
-%D we've chosen the second alternative as default. The main
-%D reason for doing so is that often when we don't set the
-%D \type{\hsize} ourselves, \TEX\ takes the value of the
-%D surrounding box. As a result the visual cues can migrate
-%D outside the current context.
-%D
-%D This behavior is accomplished by a small but effective
-%D auxiliary macro, which behavior can be influenced by the
-%D boolean \type{\centeredvcue}. By saying
-%D
-%D \starttyping
-%D \centeredvcuetrue
-%D \stoptyping
-%D
-%D one turns centering on. As said, we turn it off.
-
-\newif\ifcenteredvcue \centeredvcuefalse
-
-\def\normalvcue#1%
- {\normalhbox \ifcenteredvcue to \hsize \fi {\normalhss#1\normalhss}}
-
-%D We could have used the more robust version
-%D
-%D \starttyping
-%D \def\normalvcue%
-%D {\normalhbox \ifcenteredvcue to \hsize \fi
-%D \bgroup\bgroup\normalhss
-%D \aftergroup\normalhss\aftergroup\egroup
-%D \let\next=}
-%D \stoptyping
-%D
-%D or the probably best one:
-%D
-%D \starttyping
-%D \def\normalvcue%
-%D {\hbox \ifcenteredvcue to \hsize
-%D \bgroup\bgroup\normalhss
-%D \aftergroup\normalhss\aftergroup\egroup
-%D \else
-%D \bgroup
-%D \fi
-%D \let\next=}
-%D \stoptyping
-%D
-%D Because we don't have to preserve \CATCODES\ and only use
-%D small arguments, we stick to the first alternative.
-
-%D \macros
-%D {testrulewidth}
-%D
-%D We build our visual cues out of rules. At the cost of a much
-%D bigger \DVI\ file, this is to be prefered over using
-%D characters (1)~because we cannot be sure of their
-%D availability and (2)~because their dimensions are fixed.
-%D
-%D As with ruled boxes, we use a \DIMENSION\ to specify the
-%D width of the ruled elements. This dimension defaults to:
-%D
-%D \starttyping
-%D \testrulewidth=\boxrulewidth
-%D \stoptyping
-%D
-%D Because we prefer whole numbers for specifying the
-%D dimensions, we often use even multiples of
-%D \type{\testrulewidth}.
-
-%D \macros
-%D {visiblestretch}
-%D
-%D A second variable is introduced because of the stretch
-%D components of \SKIPS. At the cost of some accuracy we can
-%D make this stretch visible.
-%D
-%D \starttyping
-%D \visiblestretchtrue
-%D \stoptyping
-
-\newdimen\testrulewidth \testrulewidth=\boxrulewidth
-\newif\ifvisiblestretch \visiblestretchfalse
-
-%D \macros
-%D {ruledhss,
-%D ruledhfil,ruledhfilneg,
-%D ruledhfill,ruledhfillneg}
-%D
-%D We start with the easiest part, the fills. The scheme we
-%D follow is {\em visual filling -- going back -- normal
-%D filling}. Visualizing is implemented using \type{\cleaders}.
-%D Because the \BOX\ that follows this command is constructed
-%D only once, the \type{\copy} is not really a prerequisite. We
-%D prefer using a \type{\normalhbox} here instead of a
-%D \type{\hbox}.
-
-\def\setvisiblehfilbox#1\to#2#3#4%
- {\setbox#1\normalhbox
- {\visualvrule
- \!!width #2\testrulewidth
- \!!height#3\testrulewidth
- \!!depth #4\testrulewidth}%
- \smashbox#1}
-
-\def\doruledhfiller#1#2#3#4%
- {#1#2%
- \bgroup
- \dontinterfere
- \dontcomplain
- \setvisiblehfilbox0\to{4}{#3}{#4}%
- \setvisiblehfilbox2\to422%
- \copy0\copy2
- \bgroup
- \setvisiblehfilbox0\to422%
- \cleaders
- \normalhbox to 12\testrulewidth
- {\normalhss\copy0\normalhss}%
- #1%
- \egroup
- \setbox0\normalhbox
- {\normalhskip-4\testrulewidth\copy0\copy2}%
- \smashbox0%
- \box0
- \egroup}
-
-%D The horizontal fillers differ in their boundary
-%D visualization. Watch the small dots. Fillers can be
-%D combined within reasonable margins.
-%D
-%D \startlinecorrection
-%D \baselinerulefalse
-%D \ruledhbox to \hsize
-%D {\strut\type{\hss}\ruledhss test}
-%D \stoplinecorrection
-%D
-%D \startlinecorrection
-%D \baselinerulefalse
-%D \ruledhbox to \hsize
-%D {\strut\type{\hfil}\ruledhfil test}
-%D \stoplinecorrection
-%D
-%D \startlinecorrection
-%D \baselinerulefalse
-%D \ruledhbox to \hsize
-%D {\strut\type{\hfill}\ruledhfill test}
-%D \stoplinecorrection
-%D
-%D \startlinecorrection
-%D \baselinerulefalse
-%D \ruledhbox to \hsize
-%D {\strut
-%D \type{\hfil}\type{\hfil}\ruledhfil\ruledhfil
-%D test%
-%D \ruledhfil\type{\hfil}}
-%D \stoplinecorrection
-%D
-%D The negative counterparts are visualizes, but seldom
-%D become visible, apart from their boundaries.
-%D
-%D \startlinecorrection
-%D \baselinerulefalse
-%D \ruledhbox to \hsize
-%D {\strut\type{\hfilneg}\ruledhfilneg test}
-%D \stoplinecorrection
-%D
-%D \startlinecorrection
-%D \baselinerulefalse
-%D \ruledhbox to \hsize
-%D {\strut\type{\hfillneg}\ruledhfillneg test}
-%D \stoplinecorrection
-%D
-%D Although leaders are used for visualizing, they are
-%D visualized themselves correctly as the next example shows.
-%D
-%D \startlinecorrection
-%D \baselinerulefalse
-%D \ruledhbox to \hsize
-%D {\strut\cleaders\normalhbox to 2em{\normalhss$\circ$\normalhss}\ruledhfill}
-%D \stoplinecorrection
-%D
-%D All five substitutions use the same auxiliary macro. Watch
-%D the positive first -- negative next approach.
-
-\unexpanded\def\ruledhss
- {\doruledhfiller\normalhss\normalhfilneg{0}{0}}
-
-\unexpanded\def\ruledhfil
- {\doruledhfiller\normalhfil\normalhfilneg{10}{-6}}
-
-\unexpanded\def\ruledhfill
- {\doruledhfiller\normalhfill\normalhfillneg{18}{-14}}
-
-\unexpanded\def\ruledhfilneg
- {\doruledhfiller\normalhfilneg\normalhfil{-6}{10}}
-
-\unexpanded\def\ruledhfillneg
- {\doruledhfiller\normalhfillneg\normalhfill{-14}{18}}
-
-%D \macros
-%D {ruledvss,
-%D ruledvfil,ruledvfilneg,
-%D ruledvfill,ruledvfillneg}
-%D
-%D The vertical mode commands adopt the same visualization
-%D scheme, but are implemented in a slightly different way.
-
-\def\setvisiblevfilbox#1\to#2#3#4%
- {\setbox#1\normalhbox
- {\visualvrule
- \!!width #2\testrulewidth
- \!!height#3\testrulewidth
- \!!depth #4\testrulewidth}%
- \smashbox#1}%
-
-\def\doruledvfiller#1#2#3%
- {#1#2%
- \bgroup
- \dontinterfere
- \dontcomplain
- \normaloffinterlineskip
- \setvisiblevfilbox0\to422%
- \setbox2\normalvcue
- {\normalhskip -#3\testrulewidth\copy0}%
- \smashbox2%
- \copy2
- \bgroup
- \setbox2\normalvcue
- {\normalhskip -2\testrulewidth\copy0}%
- \smashbox2%
- \copy2
- \cleaders
- \normalvbox to 12\testrulewidth
- {\normalvss\copy2\normalvss}%
- #1%
- \setbox2\normalvbox
- {\normalvskip-2\testrulewidth\copy2}%
- \smashbox2%
- \box2
- \egroup
- \box2
- \egroup}
-
-%D Because they act the same as their horizontal counterparts
-%D we only show a few examples.
-%D
-%D \startlinecorrection
-%D \hbox to \hsize
-%D {\dontinterfere
-%D \baselinerulefalse
-%D \centeredvcuetrue
-%D \ruledvbox to 10ex
-%D {\hsize.18\hsize
-%D \type{\vss}\ruledvss last line}\normalhss
-%D \ruledvbox to 10ex
-%D {\hsize.18\hsize
-%D \type{\vfil}\ruledvfil last line}\normalhss
-%D \ruledvbox to 10ex
-%D {\hsize.18\hsize
-%D \type{\vfill}\ruledvfill last line}\normalhss
-%D \ruledvbox to 10ex
-%D {\hsize.18\hsize
-%D \type{\vfilneg}\ruledvfilneg last line}\normalhss
-%D \ruledvbox to 10ex
-%D {\hsize.18\hsize
-%D \type{\vfillneg}\ruledvfillneg last line}}
-%D \stoplinecorrection
-%D
-%D Keep in mind that \type{\vfillneg} is not part of \PLAIN\
-%D \TEX, but are mimmicked by a macro.
-
-\unexpanded\def\ruledvss {\doruledvfiller\normalvss \normalvfilneg {2}}
-\unexpanded\def\ruledvfil {\doruledvfiller\normalvfil \normalvfilneg {-4}}
-\unexpanded\def\ruledvfill {\doruledvfiller\normalvfill \normalvfillneg{-12}}
-\unexpanded\def\ruledvfilneg {\doruledvfiller\normalvfilneg \normalvfil {8}}
-\unexpanded\def\ruledvfillneg{\doruledvfiller\normalvfillneg\normalvfill {16}}
-
-%D \macros
-%D {ruledhskip}
-%D
-%D Skips differ from kerns in two important aspects:
-%D
-%D \startitemize[packed]
-%D \item line and pagebreaks are allowed at a skip
-%D \item skips can have a positive and/or negative
-%D stretchcomponent
-%D \stopitemize
-%D
-%D Stated a bit different: kerns are fixed skips at which no
-%D line or pagebreak can occur. Because skips have a more open
-%D character, they are visualized in a open way.
-%D
-%D \startbuffer
-%D one
-%D \hskip +30pt plus 5pt
-%D two
-%D \hskip +30pt
-%D \hskip -10pt plus 5pt
-%D three
-%D \hskip 0pt
-%D four
-%D \hskip +30pt
-%D five
-%D \stopbuffer
-%D
-%D \ShowBufferedExample
-%D
-%D When skips have a stretch component, this is visualized by
-%D means of a dashed line. Positive skips are on top of the
-%D baseline, negative ones are below it. This way we can show
-%D the combined results. An alternative visualization of
-%D stretch could be drawing the mid line over a length of the
-%D stretch, in positive or negative direction.
-
-\def\doruledhskip
- {\relax
- \dontinterfere
- \dontcomplain
- \investigateskip\scratchskip
- \ifzero
- \setbox0\normalhbox
- {\normalhskip-\testrulewidth
- \visualvrule
- \!!width4\testrulewidth
- \!!height16\testrulewidth
- \!!depth16\testrulewidth}%
- \else
- \setbox0\normalhbox to \ifnegative-\fi\scratchskip
- {\visualvrule
- \!!width2\testrulewidth
- \ifnegative\!!depth\else\!!height\fi16\testrulewidth
- \cleaders
- \visualhrule
- \ifnegative
- \!!depth2\testrulewidth
- \!!height\zeropoint
- \else
- \!!height2\testrulewidth
- \!!depth\zeropoint
- \fi
- \normalhfill
- \ifflexible
- \normalhskip\ifnegative\else-\fi\scratchskip
- \normalhskip2\testrulewidth
- \cleaders
- \normalhbox
- {\normalhskip 2\testrulewidth
- \visualvrule
- \!!width2\testrulewidth
- \!!height\ifnegative-7\else9\fi\testrulewidth
- \!!depth\ifnegative9\else-7\fi\testrulewidth
- \normalhskip 2\testrulewidth}%
- \normalhfill
- \fi
- \visualvrule
- \!!width2\testrulewidth
- \ifnegative\!!depth\else\!!height\fi16\testrulewidth}%
- \setbox0\normalhbox
- {\ifnegative\else\normalhskip-\scratchskip\fi
- \box0}%
- \fi
- \smashbox0%
- \ifvisiblestretch \else
- \flexiblefalse
- \fi
- \ifflexible
- % breaks ok but small displacements can occur
- \skip2\scratchskip
- \advance\skip2 -1\scratchskip
- \divide\skip2 2
- \advance\scratchskip -\skip2
- \normalhskip\scratchskip
- \normalpenalty\!!tenthousand
- \box0
- \normalhskip\skip2
- \else
- \normalhskip\scratchskip
- \box0
- \fi
- \egroup}
-
-\unexpanded\def\ruledhskip
- {\bgroup
- \afterassignment\doruledhskip
- \scratchskip=}
-
-%D The visual skip is located at a feasible point. Normally
-%D this does not interfere with the normaltypesetting process.
-%D The next examples show (1)~the default behavior, (2)~the
-%D (not entirely correct) distributed stretch and (3)~the way
-%D the text is typeset without cues.
-%D
-%D \startbuffer
-%D \dorecurse
-%D {15}
-%D {test\hskip1em plus .5em minus .5em
-%D test\hskip2em
-%D test}
-%D \stopbuffer
-%D
-%D \startlinecorrection
-%D \showmakeup
-%D \getbuffer
-%D \stoplinecorrection
-%D
-%D \startlinecorrection
-%D \showmakeup
-%D \visiblestretchtrue
-%D \getbuffer
-%D \stoplinecorrection
-%D
-%D \startlinecorrection
-%D \getbuffer
-%D \stoplinecorrection
-
-%D \macros
-%D {ruledvskip}
-%D
-%D We are less fortunate when implementing the vertical skips.
-%D This is a direct result of interference between the boxes that
-%D visualize the skip and skip removal at a pagebreak. Normally
-%D skips disappear at the top of a page, but not of course when
-%D visualized in a \type{\vbox}. A quite perfect simulation
-%D could have been built if we would have had available two
-%D more primitives: \type{\hnop} and \type{\vnop}. These new
-%D primitives could stand for boxes that are visible but are
-%D not taken into account in any way. They are there for us,
-%D but not for \TEX.
-%D
-%D \startbuffer
-%D first line
-%D \vskip +30pt plus 5pt
-%D second line
-%D \vskip +30pt
-%D \vskip -10pt plus 5pt
-%D third line
-%D \par
-%D fourth line
-%D \vskip +30pt
-%D fifth line
-%D \vskip 0pt
-%D sixth line
-%D \stopbuffer
-%D
-%D \ShowBufferedExample
-%D
-%D We have to postpone \type{\prevdepth}. Although this
-%D precaution probably is not completely waterproof, it works
-%D quite well.
-
-\def\dodoruledvskip
- {\nextdepth\prevdepth
- \dontinterfere
- \dontcomplain
- \normaloffinterlineskip
- \investigateskip\scratchskip
- \ifzero
- \setbox0\normalvcue
- {\visualvrule
- \!!width32\testrulewidth
- \!!height2\testrulewidth
- \!!depth2\testrulewidth}%
- \else
- \setbox0\normalvbox to \ifnegative-\fi\scratchskip
- {\visualhrule
- \!!width16\testrulewidth
- \!!height2\testrulewidth
- \ifflexible
- \cleaders
- \normalhbox to 16\testrulewidth
- {\normalhss
- \normalvbox
- {\normalvskip 2\testrulewidth
- \visualhrule
- \!!width2\testrulewidth
- \!!height2\testrulewidth
- \normalvskip 2\testrulewidth}%
- \normalhss}%
- \normalvfill
- \else
- \normalvfill
- \fi
- \visualhrule
- \!!width16\testrulewidth
- \!!height2\testrulewidth}%
- \setbox2\normalvbox to \ht0
- {\visualhrule
- \!!width2\testrulewidth
- \!!height\ht0}%
- \ifnegative
- \ht0\zeropoint
- \setbox0\normalhbox
- {\normalhskip2\testrulewidth % will be improved
- \normalhskip-\wd0\box0}%
- \fi
- \smashbox0%
- \smashbox2%
- \setbox0\normalvcue
- {\box2\box0}%
- \setbox0\normalvbox
- {\ifnegative\normalvskip\scratchskip\fi\box0}%
- \smashbox0%
- \fi
- \ifvisiblestretch
- \ifflexible
- \skip2\scratchskip
- \advance\skip2 -1\scratchskip
- \divide\skip2 2
- \advance\scratchskip -\skip2
- \normalvskip\skip2
- \fi
- \fi
- \normalpenalty\!!tenthousand
- \box0
- \prevdepth\nextdepth % not \dp0=\nextdepth
- \normalvskip\scratchskip}
-
-%D We try to avoid interfering at the top of a page. Of course
-%D we only do so when we are in the main vertical list.
-
-\def\doruledvskip
- {\endgraf % \par
- \ifdim\pagegoal=\maxdimen
- \ifinner
- \dodoruledvskip
- \fi
- \else
- \dodoruledvskip
- \fi
- \egroup}
-
-\unexpanded\def\ruledvskip
- {\bgroup
- \afterassignment\doruledvskip
- \scratchskip=}
-
-%D \macros
-%D {ruledkern}
-%D
-%D The macros that implement the kerns are a bit more
-%D complicated than needed, because they also serve the
-%D visualization of glue, our \PLAIN\ defined kerns with
-%D stretch or shrink. We've implemented both horizontal and
-%D vertical kerns as ruled boxes.
-%D
-%D \startbuffer
-%D one
-%D \kern +30pt
-%D two
-%D \kern +30pt
-%D \kern -10pt
-%D three
-%D \kern 0pt
-%D four
-%D \kern +30pt
-%D five
-%D \stopbuffer
-%D
-%D \ShowBufferedExample
-%D
-%D Positive and negative kerns are placed on top or below the
-%D baseline, so we are able to track their added result. We
-%D didn't mention spacings of 0~pt yet. Zero values are
-%D visualized a bit different, because we want to see them
-%D anyhow.
-
-\def\doruledhkern
- {\dontinterfere
- \dontcomplain
- \baselinerulefalse
- \investigateskip\scratchskip
- \boxrulewidth2\testrulewidth
- \ifzero
- \setbox0\ruledhbox to 8\testrulewidth
- {\visualvrule
- \!!width\zeropoint
- \!!height16\testrulewidth
- \!!depth16\testrulewidth}%
- \setbox0\normalhbox
- {\normalhskip-4\testrulewidth\box0}%
- \else
- \setbox0\ruledhbox to \ifnegative-\fi\scratchskip
- {\visualvrule
- \!!width\zeropoint
- \ifnegative\!!depth\else\!!height\fi16\testrulewidth
- \ifflexible
- \normalhskip2\testrulewidth
- \cleaders
- \normalhbox
- {\normalhskip 2\testrulewidth
- \visualvrule
- \!!width2\testrulewidth
- \!!height\ifnegative-7\else9\fi\testrulewidth
- \!!depth\ifnegative9\else-7\fi\testrulewidth
- \normalhskip 2\testrulewidth}%
- \normalhfill
- \else
- \normalhfill
- \fi}%
- \testrulewidth2\testrulewidth
- \setbox0\ruledhbox{\box0}% \make...
- \fi
- \smashbox0%
- \normalpenalty\!!tenthousand
- \normalhbox to \zeropoint
- {\ifnegative\normalhskip1\scratchskip\fi
- \box0}%
- \afterwards\scratchskip
- \egroup}
-
-\unexpanded\def\ruledhkern#1%
- {\bgroup
- \let\afterwards#1%
- \afterassignment\doruledhkern
- \scratchskip=}
-
-%D After having seen the horizontal ones, the vertical kerns
-%D will not surprise us. In this example we use \type{\par} to
-%D switch to vertical mode.
-%D
-%D \startbuffer
-%D first line
-%D \par \kern +30pt
-%D second line
-%D \par \kern +30pt
-%D \par \kern -10pt
-%D third line
-%D \par
-%D fourth line
-%D \par \kern +30pt
-%D fifth line
-%D \par \kern 0pt
-%D sixth line
-%D \stopbuffer
-%D
-%D \ShowBufferedExample
-%D
-%D Like before, we have to postpone \type{\prevdepth}. If we
-%D leave out this trick, we got ourselves some wrong spacing.
-
-\def\dodoruledvkern
- {\nextdepth\prevdepth
- \dontinterfere
- \dontcomplain
- \baselinerulefalse
- \normaloffinterlineskip
- \investigateskip\scratchskip
- \boxrulewidth2\testrulewidth
- \ifzero
- \setbox0\ruledhbox to 32\testrulewidth
- {\visualvrule
- \!!width\zeropoint
- \!!height4\testrulewidth
- \!!depth4\testrulewidth}%
- \else
- \setbox0\ruledvbox to \ifnegative-\fi\scratchskip
- {\hsize16\testrulewidth
- \ifflexible
- \cleaders
- \normalhbox to 16\testrulewidth
- {\normalhss
- \normalvbox
- {\normalvskip 2\testrulewidth
- \visualhrule
- \!!width2\testrulewidth
- \!!height2\testrulewidth
- \normalvskip 2\testrulewidth}%
- \normalhss}%
- \normalvfill
- \else
- \visualvrule
- \!!width\zeropoint
- \!!height\ifnegative-\fi\scratchskip
- \normalhfill
- \fi}
- \fi
- \testrulewidth2\testrulewidth
- \setbox0\ruledvbox{\box0}% \make...
- \smashbox0%
- \setbox0\normalvbox
- {\ifnegative\normalvskip\scratchskip\fi
- \normalvcue
- {\ifnegative\normalhskip-16\testrulewidth\fi\box0}}%
- \smashbox0%
- \normalpenalty\!!tenthousand
- \box0
- \prevdepth\nextdepth} % not \dp0=\nextdepth
-
-\def\doruledvkern
- {\ifdim\pagegoal=\maxdimen
- \ifinner
- \dodoruledvkern
- \fi
- \else
- \dodoruledvkern
- \fi
- \afterwards\scratchskip
- \egroup}
-
-\unexpanded\def\ruledvkern#1%
- {\bgroup
- \let\afterwards#1\relax
- \afterassignment\doruledvkern
- \scratchskip=}
-
-\unexpanded\def\ruledkern
- {\ifvmode
- \expandafter\ruledvkern
- \else
- \expandafter\ruledhkern
- \fi
- \normalkern}
-
-%D A a bit more \TEX nice solution is:
-%D
-%D \starttyping
-%D \unexpanded\def\ruledkern%
-%D {\csname ruled\ifvmode v\else h\fi kern\endcsname\normalkern}
-%D \stoptyping
-
-%D \macros
-%D {ruledhglue,ruledvglue}
-%D
-%D The non-primitive glue commands are treated as kerns with
-%D stretch. This stretch is presented as a dashed line. I
-%D have to admit that until now, I've never used these glue
-%D commands.
-%D
-%D \startbuffer
-%D one
-%D \hglue +30pt plus 5pt
-%D two
-%D \hglue +30pt
-%D \hglue -10pt plus 5pt
-%D three
-%D \hglue 0pt
-%D four
-%D \hglue +30pt
-%D five
-%D \stopbuffer
-%D
-%D \ShowBufferedExample
-
-\def\doruledhglue
- {\leavevmode
- \scratchcounter\spacefactor
- \visualvrule\!!width\zeropoint
- \normalpenalty\!!tenthousand
- \ruledhkern\normalhskip\scratchskip
- \spacefactor\scratchcounter
- \egroup}
-
-\unexpanded\def\ruledhglue
- {\bgroup
- \afterassignment\doruledhglue\scratchskip=}
-
-%D \startbuffer
-%D first line
-%D \vglue +30pt plus 5pt
-%D second line
-%D \vglue +30pt
-%D \vglue -10pt plus 5pt
-%D third line
-%D \par
-%D fourth line
-%D \vglue +30pt
-%D fifth line
-%D \vglue 0pt
-%D sixth line
-%D \stopbuffer
-%D
-%D \ShowBufferedExample
-
-\def\doruledvglue
- {\endgraf % \par
- \nextdepth\prevdepth
- \visualhrule\!!height\zeropoint
- \normalpenalty\!!tenthousand
- \ruledvkern\normalvskip\scratchskip
- \prevdepth\nextdepth
- \egroup}
-
-\unexpanded\def\ruledvglue
- {\bgroup
- \afterassignment\doruledvglue\scratchskip=}
-
-%D \macros
-%D {ruledmkern,ruledmskip}
-%D
-%D Mathematical kerns and skips are specified in mu. This
-%D font related unit is incompatible with those of \DIMENSIONS\
-%D and \SKIPS. Because in math mode spacing is often a very
-%D subtle matter, we've used a very simple, not overloaded way
-%D to show them.
-
-\def\dodoruledmkern#1%
- {\dontinterfere
- \dontcomplain
- \setbox0\normalhbox
- {$\normalmkern\ifnegative-\fi\scratchmuskip$}%
- \setbox0\normalhbox to \wd0
- {\visualvrule
- \!!height16\testrulewidth
- \!!depth16\testrulewidth
- \!!width\testrulewidth
- \leaders
- \visualhrule
- \!!height\ifpositive16\else-14\fi\testrulewidth
- \!!depth\ifpositive-14\else16\fi\testrulewidth
- \normalhfill
- \ifflexible
- \normalhskip-\wd0
- \leaders
- \visualhrule
- \!!height\testrulewidth
- \!!depth\testrulewidth
- \normalhfill
- \fi
- \visualvrule
- \!!height16\testrulewidth
- \!!depth16\testrulewidth
- \!!width\testrulewidth}%
- \smashbox0%
- \ifnegative
- #1\scratchmuskip
- \box0
- \else
- \box0
- #1\scratchmuskip
- \fi
- \egroup}
-
-%D \startbuffer
-%D $a \mkern3mu = \mkern3mu
-%D b \quad
-%D \mkern-2mu + \mkern-2mu
-%D \quad c$
-%D \stopbuffer
-%D
-%D \ShowBufferedExample
-
-\def\doruledmkern
- {\investigatemuskip\scratchmuskip
- \flexiblefalse
- \dodoruledmkern\normalmkern}
-
-\unexpanded\def\ruledmkern
- {\bgroup
- \afterassignment\doruledmkern\scratchmuskip=}
-
-%D \startbuffer
-%D $a \mskip3mu = \mskip3mu
-%D b \quad
-%D \mskip-2mu + \mskip-2mu
-%D \quad c$
-%D \stopbuffer
-%D
-%D \ShowBufferedExample
-
-\def\doruledmskip
- {\investigatemuskip\scratchmuskip
- \flexibletrue
- \dodoruledmkern\normalmskip}
-
-\unexpanded\def\ruledmskip
- {\bgroup
- \afterassignment\doruledmskip\scratchmuskip=}
-
-%D \macros
-%D {penalty}
-%D
-%D After presenting fills, skip, kerns and glue we've come to
-%D see penalties. In the first implementation --- most of the
-%D time needed to develop this set of macros went into testing
-%D different types of visualization --- penalties were mere
-%D small blocks with one black half, depending on the sign.
-%D This most recent version also gives an indication of the
-%D amount of penalty. Penalties can go from less than $-10000$
-%D to over $+10000$, and their behavior is somewhat
-%D non-lineair, with some values having special meanings. We
-%D therefore decided not to use its value for a lineair
-%D indicator.
-%D
-%D \startbuffer
-%D one
-%D \penalty +100
-%D two
-%D \penalty +100
-%D \penalty -100
-%D three
-%D \penalty 0
-%D four
-%D \penalty +100
-%D five
-%D \stopbuffer
-%D
-%D \ShowBufferedExample
-%D
-%D The small sticks at the side of the penalty indicate it
-%D size. The next example shows the positive and negative
-%D penalties of 0, 1, 10, 100, 1000 and 10000.
-%D
-%D \startlinecorrection
-%D \hbox
-%D {test \ruledhpenalty0
-%D test \ruledhpenalty1
-%D test \ruledhpenalty10
-%D test \ruledhpenalty100
-%D test \ruledhpenalty1000
-%D test \ruledhpenalty10000
-%D test}
-%D \stoplinecorrection
-%D
-%D \blank
-%D
-%D \startlinecorrection
-%D \hbox
-%D {test \ruledhpenalty0
-%D test \ruledhpenalty-1
-%D test \ruledhpenalty-10
-%D test \ruledhpenalty-100
-%D test \ruledhpenalty-1000
-%D test \ruledhpenalty-10000
-%D test}
-%D \stoplinecorrection
-%D
-%D \blank
-%D
-%D This way stacked penalties of different severance can be
-%D shown in combination.
-%D
-%D test \ruledhpenalty10 \ruledhpenalty100
-%D test
-%D test \ruledhpenalty1000 \ruledhpenalty-1000
-%D test
-
-\def\setruledpenaltybox#1#2#3#4#5#6%
- {\setbox#1\normalhbox
- {\ifnum#2=0 \else
- \edef\sign
- {\ifnum#2>0 +\else-\fi}%
- \dimen0=\ifnum\sign#2>9999
- 28\else
- \ifnum\sign#2>999
- 22\else
- \ifnum\sign#2>99
- 16\else
- \ifnum\sign#2>9
- 10\else
- 4
- \fi\fi\fi\fi \testrulewidth
- \ifnum#2<0
- \normalhskip-\dimen0
- \normalhskip-2\testrulewidth
- \visualvrule
- \!!width2\testrulewidth
- \!!height#3\testrulewidth
- \!!depth#4\testrulewidth
- \fi
- \visualvrule
- \!!width\dimen0
- \!!height#5\testrulewidth
- \!!depth#6\testrulewidth
- \ifnum#2>0
- \visualvrule
- \!!width2\testrulewidth
- \!!height#3\testrulewidth
- \!!depth#4\testrulewidth
- \fi
- \fi}%
- \smashbox#1}
-
-\def\doruledhpenalty
- {\dontinterfere
- \dontcomplain
- \investigatecount\scratchcounter
- \testrulewidth2\testrulewidth
- \boxrulewidth\testrulewidth
- \setbox0\ruledhbox to 8\testrulewidth
- {\ifnegative\else\normalhss\fi
- \visualvrule
- \!!depth8\testrulewidth
- \!!width\ifzero0\else4\fi\testrulewidth
- \ifpositive\else\normalhss\fi}%
- \setruledpenaltybox{2}{\scratchcounter}{0}{8}{-3.5}{4.5}%
- \normalpenalty\!!tenthousand
- \setbox0\normalhbox
- {\normalhskip-4\testrulewidth
- \ifnegative
- \box2\box0
- \else
- \box0\box2
- \fi}%
- \smashbox0%
- \box0
- \normalpenalty\scratchcounter
- \egroup}
-
-\unexpanded\def\ruledhpenalty
- {\bgroup
- \afterassignment\doruledhpenalty
- \scratchcounter=}
-
-%D The size of a vertical penalty is also shown on the
-%D horizontal axis. This way there is less interference with
-%D the often preceding or following skips and kerns.
-%D
-%D \startbuffer
-%D first line
-%D \par \penalty +100
-%D second line
-%D \par \penalty +100
-%D \par \penalty -100
-%D third line
-%D \par \penalty 0
-%D fourth line
-%D \par \penalty +100
-%D fifth line
-%D \stopbuffer
-%D
-%D \ShowBufferedExample
-
-\def\doruledvpenalty
- {\ifdim\pagegoal=\maxdimen
- \else
- \nextdepth\prevdepth
- \dontinterfere
- \dontcomplain
- \investigatecount\scratchcounter
- \testrulewidth2\testrulewidth
- \boxrulewidth\testrulewidth
- \setbox0\ruledhbox
- {\visualvrule
- \!!height4\testrulewidth
- \!!depth4\testrulewidth
- \!!width\zeropoint
- \visualvrule
- \!!height\ifnegative.5\else4\fi\testrulewidth
- \!!depth\ifpositive.5\else4\fi\testrulewidth
- \!!width8\testrulewidth}%
- \setruledpenaltybox{2}{\scratchcounter}{4}{4}{.5}{.5}%
- \setbox0\normalhbox
- {\normalhskip-4\testrulewidth
- \ifnegative
- \box2\box0
- \else
- \box0\box2
- \fi
- \normalhss}%
- \smashbox0%
- \normalpenalty\!!tenthousand
- \nointerlineskip
- \dp0\nextdepth % not \prevdepth=\nextdepth
- \normalvbox
- {\normalvcue{\box0}}%
- \fi
- \normalpenalty\scratchcounter
- \egroup}
-
-\unexpanded\def\ruledvpenalty
- {\bgroup
- \afterassignment\doruledvpenalty
- \scratchcounter=}
-
-\unexpanded\def\ruledpenalty
- {\ifvmode
- \expandafter\ruledvpenalty
- \else
- \expandafter\ruledhpenalty
- \fi}
-
-%D At the cost of some more tokens, a bit more clever
-%D implementation would be:
-%D
-%D \starttyping
-%D \unexpanded\def\ruledpenalty%
-%D {\csname ruled\ifvmode v\else h\fi penalty\endcsname}
-%D \stoptyping
-
-%D \macros
-%D {showfils,dontshowfils,
-%D showboxes,dontshowboxes,
-%D showskips,dontshowskips,
-%D showpenalties,dontshowpenalties}
-%D
-%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
- {\showingcompositiontrue
- \let\hss \ruledhss
- \let\hfil \ruledhfil
- \let\hfill \ruledhfill
- \let\hfilneg \ruledhfilneg
- \let\hfillneg \ruledhfillneg
- \let\vss \ruledvss
- \let\vfil \ruledvfil
- \let\vfill \ruledvfill
- \let\vfilneg \ruledvfilneg
- \let\vfillneg \ruledvfillneg}
-
-\def\dontshowfils
- {\let\hss \normalhss
- \let\hfil \normalhfil
- \let\hfill \normalhfill
- \let\hfilneg \normalhfilneg
- \let\hfillneg \normalhfillneg
- \let\vss \normalvss
- \let\vfil \normalvfil
- \let\vfill \normalvfill
- \let\vfilneg \normalvfilneg
- \let\vfillneg \normalvfillneg}
-
-\def\showboxes
- {\showingcompositiontrue
- \baselineruletrue
- \let\hbox \ruledhbox
- \let\vbox \ruledvbox
- \let\vtop \ruledvtop
- \let\vcenter \ruledvcenter}
-
-\def\dontshowboxes
- {\let\hbox \normalhbox
- \let\vbox \normalvbox
- \let\vtop \normalvtop
- \let\vcenter \normalvcenter}
-
-\def\showskips
- {\showingcompositiontrue
- \let\hskip \ruledhskip
- \let\vskip \ruledvskip
- \let\kern \ruledkern
- \let\mskip \ruledmskip
- \let\mkern \ruledmkern
- \let\hglue \ruledhglue
- \let\vglue \ruledvglue}
-
-\def\dontshowskips
- {\let\hskip \normalhskip
- \let\vskip \normalvskip
- \let\kern \normalkern
- \let\mskip \normalmskip
- \let\mkern \normalmkern
- \let\hglue \normalhglue
- \let\vglue \normalvglue}
-
-\def\showpenalties
- {\showingcompositiontrue
- \let\penalty \ruledpenalty}
-
-\def\dontshowpenalties
- {\let\penalty \normalpenalty}
-
-%D \macros
-%D {showcomposition,dontshowcomposition,
-%D showingcomposition}
-%D
-%D All these nice options come together in three macros. One
-%D for turning the options on, one for turning them off, and a
-%D boolean for enabling the mechanism outside the scope of the
-%D user. The first two macros only do their job when we are
-%D actually showing the composition.
-%D
-%D \starttyping
-%D \showingcompositiontrue
-%D \showcomposition
-%D \stoptyping
-%D
-%D Because the output routine can do tricky things, like
-%D multiple column typesetting and manipulation of the
-%D pagebody, shifting things around and so on, the macro
-%D \type{\dontshowcomposition} best can be called when we enter
-%D this routine. Too much visual cues just don't make sense. In
-%D \CONTEXT\ this has been taken care of.
-
-\newif\ifshowingcomposition
-
-\def\showcomposition
- {\ifshowingcomposition
- \showfils
- \showboxes
- \showskips
- \showpenalties
- \fi}
-
-\def\dontshowcomposition
- {\ifshowingcomposition
- \dontshowfils
- \dontshowboxes
- \dontshowskips
- \dontshowpenalties
- \fi}
-
-%D \macros
-%D {showmakeup,
-%D defaulttestrulewidth}
-%D
-%D Just to make things even more easy, we have defined:
-%D
-%D \starttyping
-%D \showmakeup
-%D \stoptyping
-%D
-%D For the sake of those who don't (yet) use \CONTEXT\ we
-%D preset \type{\defaulttestrulewidth} to the already set
-%D value. Otherwise we default to a bodyfontsize related value.
-%D
-%D \starttyping
-%D \def\defaulttestrulewidth{.2pt}
-%D \stoptyping
-%D
-%D Beware, it's a macro not a \DIMENSION.
-
-\ifx\bodyfontsize\undefined
- \edef\defaulttestrulewidth{\the\testrulewidth}
-\else
- \def\defaulttestrulewidth{.02\bodyfontsize}
-\fi
-
-\def\showmakeup
- {\testrulewidth\defaulttestrulewidth
- \showingcompositiontrue
- \showcomposition}
-
-\protect
-
-%D \ifCONTEXT \let\next=\relax \else \let\next=\endinput
-%D The documented source you have been reading was processed
-%D using some surrogate makeup. When this file is processed
-%D in \CONTEXT, a few more examples show up here, like a local
-%D table of contents and a local register.
-%D \fi \next
-
-%D Lets end with some more advanced examples.
-%D Definitions and enumerations come in many flavors. The
-%D next one for instance is defined as:
-%D
-%D \starttyping
-%D \definedescription[test][place=left,hang=3,width=6em]
-%D \stoptyping
-%D
-%D When applied to some text, this would look like:
-%D
-%D \bgroup
-%D \showmakeup
-%D \definedescription[test][location=left,hang=3,width=6em]
-%D
-%D \test{visual\\debugger} I would be very pleased if \TEX\
-%D had two more primitives: \type{\vnop} and \type{\hnop}. Both
-%D should act and show up as normal boxes, but stay invisible
-%D for \TEX\ when it's doing calculations. The \type{\vnop}
-%D for instance should not interact with the internal mechanism
-%D responsible for the disappearing skips, kerns and penalties
-%D at a pagebreak. As long as we don't have these two boxtypes,
-%D visual debugging will never be perfect.
-%D
-%D \egroup
-%D
-%D The index to this section looks like:
-%D
-%D {\setupreferencing[prefixprefix=dummy]\showmakeup\placeindex[criterium=local]}
-%D
-%D Although not impressive examples or typesetting, both
-%D show us how and where things happen. When somehow the last
-%D lines in this two column index don't allign, then this is
-%D due to some still unknown interference.
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/symb-cow.mkii b/Master/texmf-dist/tex/context/base/mkii/symb-cow.mkii
deleted file mode 100644
index 933a00c45e7..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/symb-cow.mkii
+++ /dev/null
@@ -1,132 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\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}}
-\def\CowContourLogo#1{\getglyph{CowsLogoContour}{\char#1\relax}}
-
-\chardef\CowPragmaNormal= 1
-\chardef\CowPragmaShaded=20
-
-\startsymbolset[cownormal]
-
- \definesymbol[CowPragmaADE] [\CowLogo{0}]
- \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[CowTEXComplete] [\CowLogo{18}]
- \definesymbol[CowWikiComplete] [\CowLogo{19}]
- \definesymbol[CowPragmaADEComplete][\CowLogo{20}]
- \definesymbol[CowPragmaComplete] [\CowLogo{21}]
- \definesymbol[CowExample] [\CowLogo{22}]
- \definesymbol[CowFoxet] [\CowLogo{23}]
- \definesymbol[CowTEX] [\CowLogo{24}]
- \definesymbol[CowWiki] [\CowLogo{25}]
- \definesymbol[CowCowTeXtComplete] [\CowLogo{26}]
- \definesymbol[CowCowTeXt] [\CowLogo{27}]
-
-\stopsymbolset
-
-\startsymbolset[cowcontour]
-
- \definesymbol[CowPragmaADE] [\CowContourLogo{0}]
- \definesymbol[CowPragma] [\CowContourLogo{1}]
- \definesymbol[CowConTeXt] [\CowContourLogo{2}]
- \definesymbol[CowConTeXtComplete] [\CowContourLogo{3}]
- \definesymbol[CowConTeXtShadow] [\CowContourLogo{4}]
- \definesymbol[CowConTeXtContour] [\CowContourLogo{5}]
- \definesymbol[CowConTeXtOutline] [\CowContourLogo{6}]
- \definesymbol[CowConTeXtDots] [\CowContourLogo{7}]
- \definesymbol[CowMP] [\CowContourLogo{8}]
- \definesymbol[CowMPComplete] [\CowContourLogo{9}]
- \definesymbol[CowTeX] [\CowContourLogo{10}]
- \definesymbol[CowTeXComplete] [\CowContourLogo{11}]
- \definesymbol[CowBoo] [\CowContourLogo{12}]
- \definesymbol[CowCow] [\CowContourLogo{13}]
- \definesymbol[CowExampleComplete] [\CowContourLogo{14}]
- \definesymbol[CowFoxetComplete] [\CowContourLogo{15}]
- \definesymbol[CowMetafun] [\CowContourLogo{16}]
- \definesymbol[CowMetafunComplete] [\CowContourLogo{17}]
- \definesymbol[CowTEXComplete] [\CowContourLogo{18}]
- \definesymbol[CowWikiComplete] [\CowContourLogo{19}]
- \definesymbol[CowPragmaADEComplete][\CowContourLogo{20}]
- \definesymbol[CowPragmaComplete] [\CowContourLogo{21}]
- \definesymbol[CowExample] [\CowContourLogo{22}]
- \definesymbol[CowFoxet] [\CowContourLogo{23}]
- \definesymbol[CowTEX] [\CowContourLogo{24}]
- \definesymbol[CowWiki] [\CowContourLogo{25}]
- \definesymbol[CowCowTeXtComplete] [\CowContourLogo{26}]
- \definesymbol[CowCowTeXt] [\CowContourLogo{27}]
-
-\stopsymbolset
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/symb-eur.mkii b/Master/texmf-dist/tex/context/base/mkii/symb-eur.mkii
deleted file mode 100644
index 67023ec91c0..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/symb-eur.mkii
+++ /dev/null
@@ -1,64 +0,0 @@
-%D \module
-%D [ file=symb-eur,
-%D version=2000.06.22,
-%D title=\CONTEXT\ Symbol Libraries,
-%D subtitle=Adobe Euro Symbols,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\loadmapfile [original-adobe-euro.map]
-
-\definefontsynonym [EuroSerif] [eurose]
-\definefontsynonym [EuroSerifBold] [euroseb]
-\definefontsynonym [EuroSerifItalic] [eurosei]
-\definefontsynonym [EuroSerifSlanted] [eurosei]
-\definefontsynonym [EuroSerifBoldItalic] [eurosebi]
-\definefontsynonym [EuroSerifBoldSlanted] [eurosebi]
-
-\definefontsynonym [EuroSans] [eurosa]
-\definefontsynonym [EuroSansBold] [eurosab]
-\definefontsynonym [EuroSansItalic] [eurosai]
-\definefontsynonym [EuroSansSlanted] [eurosai]
-\definefontsynonym [EuroSansBoldItalic] [eurosabi]
-\definefontsynonym [EuroSansBoldSlanted] [eurosabi]
-
-\definefontsynonym [EuroMono] [euromo]
-\definefontsynonym [EuroMonoBold] [euromob]
-\definefontsynonym [EuroMonoSlanted] [euromoi]
-\definefontsynonym [EuroMonoItalic] [euromoi]
-\definefontsynonym [EuroMonoBoldItalic] [euromobi]
-\definefontsynonym [EuroMonoBoldSlanted] [euromobi]
-
-\definesymbol [euro] [\getglyph{Euro}{\char160}]
-
-\startencoding[default]
- \definecharacter texteuro {\symbol[euro]}
-\stopencoding
-
-\unexpanded\def\euro{\doiftextelse\texteuro\texteuro{\symbol[euro]}}
-
-% ok for one font series, but not for mixed sets
-%
-% \unexpanded\def\euro
-% {\doiftextelse \texteuro \texteuro
-% {\unexpanded\def\euro{\symbol[euro]}\euro}
-
-%D The next table shows the complete set of symbols:
-%D
-%D \starttabulate[|l|c|c|c|c|c|c|]
-%D \NC \NC \tex{tf} \NC \tex{bf} \NC \tex{sl}
-%D \NC \tex{it} \NC \tex{bs} \NC \tex{bi} \NC\NR
-%D \NC \rm Serif \NC \rm\tf\euro \NC \rm\bf\euro \NC \rm\sl\euro
-%D \NC \rm\it\euro \NC \rm\bs\euro \NC \rm\bi\euro \NC\NR
-%D \NC \ss Sans \NC \ss\tf\euro \NC \ss\bf\euro \NC \ss\sl\euro
-%D \NC \ss\it\euro \NC \ss\bs\euro \NC \ss\bi\euro \NC\NR
-%D \NC \tt Mono \NC \tt\tf\euro \NC \tt\bf\euro \NC \tt\sl\euro
-%D \NC \tt\it\euro \NC \tt\bs\euro \NC \tt\bi\euro \NC\NR
-%D \stoptabulate
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/symb-glm.mkii b/Master/texmf-dist/tex/context/base/mkii/symb-glm.mkii
deleted file mode 100644
index ff94bfe7fc7..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/symb-glm.mkii
+++ /dev/null
@@ -1,79 +0,0 @@
-%D \module
-%D [ file=symb-glm,
-%D version=2002.05.07,
-%D title=\CONTEXT\ Symbol Libraries,
-%D subtitle=Guillemots,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Watch the \type {x} before the local symbols.
-
-% \loadmapfile [ec-public-lm.map]
-% \loadmapfile [ec-lm.map]
-\loadmapfile [lm-ec.map]
-
-% this used to be:
-%
-% \definefontsynonym [GuilSerif] [plr10] [encoding=ec]
-% \definefontsynonym [GuilSerifBold] [plbx10] [encoding=ec]
-% \definefontsynonym [GuilSerifItalic] [plti10] [encoding=ec]
-% \definefontsynonym [GuilSerifSlanted] [plsl10] [encoding=ec]
-% \definefontsynonym [GuilSerifBoldItalic] [plbxti10] [encoding=ec]
-% \definefontsynonym [GuilSerifBoldSlanted] [plbxsl10] [encoding=ec]
-%
-% \definefontsynonym [GuilSans] [plss10] [encoding=ec]
-% \definefontsynonym [GuilSansBold] [plssbx10] [encoding=ec]
-% \definefontsynonym [GuilSansItalic] [plssi10] [encoding=ec]
-% \definefontsynonym [GuilSansSlanted] [plssi10] [encoding=ec]
-% \definefontsynonym [GuilSansBoldItalic] [plssbi10] [encoding=ec]
-% \definefontsynonym [GuilSansBoldSlanted] [plssbi10] [encoding=ec]
-%
-% \definefontsynonym [GuilMono] [pltt10] [encoding=ec]
-%
-% but was also one of the reasons for triggering the lm project, so:
-
-\definefontsynonym [GuilSerif] [ec-lmr10] [encoding=ec]
-\definefontsynonym [GuilSerifBold] [ec-lmbx10] [encoding=ec]
-\definefontsynonym [GuilSerifItalic] [ec-lmti10] [encoding=ec]
-\definefontsynonym [GuilSerifSlanted] [ec-lmsl10] [encoding=ec]
-\definefontsynonym [GuilSerifBoldItalic] [ec-lmbxti10] [encoding=ec]
-\definefontsynonym [GuilSerifBoldSlanted] [ec-lmbxsl10] [encoding=ec]
-
-\definefontsynonym [GuilSans] [ec-lmss10] [encoding=ec]
-\definefontsynonym [GuilSansBold] [ec-lmssbx10] [encoding=ec]
-\definefontsynonym [GuilSansItalic] [ec-lmssi10] [encoding=ec]
-\definefontsynonym [GuilSansSlanted] [ec-lmssi10] [encoding=ec]
-\definefontsynonym [GuilSansBoldItalic] [ec-lmssbi10] [encoding=ec]
-\definefontsynonym [GuilSansBoldSlanted] [ec-lmssbi10] [encoding=ec]
-
-\definefontsynonym [GuilMono] [ec-lmtt10] [encoding=ec]
-%definefontsynonym [GuilMonoBold] [ec-lmtt10] [encoding=ec]
-%definefontsynonym [GuilMonoSlanted] [ec-lmtt10] [encoding=ec]
-%definefontsynonym [GuilMonoItalic] [ec-lmtt10] [encoding=ec]
-%definefontsynonym [GuilMonoBoldItalic] [ec-lmtt10] [encoding=ec]
-%definefontsynonym [GuilMonoBoldSlanted] [ec-lmtt10] [encoding=ec]
-
-\definesymbol [xleftguillemot] [\getglyph{Guil}{\char19}]
-\definesymbol [xrightguillemot] [\getglyph{Guil}{\char20}]
-
-\definesymbol [xguilsingleleft] [\getglyph{Guil}{\char14}]
-\definesymbol [xguilsingleright] [\getglyph{Guil}{\char15}]
-
-%D A strange place, but okay (the \type {\relax} prevents space gobbling)
-
-\startencoding [default]
-
- \definecharacter leftguillemot {\symbol[xleftguillemot]\relax}
- \definecharacter rightguillemot {\symbol[xrightguillemot]\relax}
-
- \definecharacter guilsingleleft {\symbol[xguilsingleleft]\relax}
- \definecharacter guilsingleright {\symbol[xguilsingleright]\relax}
-
-\stopencoding
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/symb-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/symb-ini.mkii
deleted file mode 100644
index 3154c8a04c4..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/symb-ini.mkii
+++ /dev/null
@@ -1,282 +0,0 @@
-%D \module
-%D [ file=symb-ini,
-%D version=1998.07.20,
-%D title=\CONTEXT\ Symbol Libraries,
-%D subtitle=Basic Symbols Commands,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D The macros described here used to be part of the \type
-%D {core-con} module. I decided to move them here when
-%D symbolsets saw the light. Let their light shine.
-
-\writestatus{loading}{ConTeXt Symbol Libraries / Initialization}
-
-\unprotect
-
-%D \macros
-%D {definesymbol, symbol}
-%D
-%D Converting numbers or levels into a character, romannumeral,
-%D symbol or something else, is supported by many \CONTEXT\
-%D commands. Therefore we need a mechanism for linking such
-%D numbers to their counterparts.
-%D
-%D First we take care of symbols. These are for instance used
-%D in enumerations and itemizations. We have:
-%D
-%D \showsetup{definesymbol}
-%D \showsetup{symbol}
-%D
-%D Symbols are simply linked to a tag. Such tags can be numbers
-%D or strings.
-%D
-%D \starttyping
-%D \definesymbol [1] [$\bullet$]
-%D \definesymbol [level 5] [$\star$]
-%D \stoptyping
-
-% ss:tag -> symbol
-% ss:set:tag -> symbol out of set
-% sstag -> list of symbols in set
-
-\def\definesymbol
- {\dotripleempty\dodefinesymbol}
-
-% \def\dodefinesymbol[#1][#2][#3]% class name meaning
-% {\ifthirdargument
-% \setvalue{\??ss:#1:#2}{#3}%
-% \doifsomething{#1}{\addvalue{\??ss*#1}{#2}}%
-% \else
-% \setvalue{\??ss:\currentsymboldef:#1}{#2}%
-% \fi}
-
-\def\dodefinesymbol[#1][#2][#3]% class name meaning
- {\ifthirdargument
- \setvalue{\??ss:#1:#2}{#3}%
- \doifsomething{#1}{\addvalue{\??ss*#1}{#2}}%
- \else
- \setvalue{\??ss:\currentsymboldef:#1}{#2}%
- \addvalue{\??ss*\currentsymboldef}{#1}%
- \fi}
-
-\def\doifinsymbolsetelse#1#2{\doifdefinedelse{\??ss:#1:#2}}
-\def\doifinsymbolset #1#2{\doifdefined {\??ss:#1:#2}}
-\def\doifsymbolsetelse #1{\doifdefinedelse{\??ss*#1}}
-
-\def\symbolset#1{\executeifdefined{\??ss*#1}\empty} % no [#1], to be used in commalists etc
-
-%D Since symbols are used frequently in interactive
-%D documents, we speed up this one. Well, that was history,
-%D since now we simplified things a bit, because the low
-%D level macros have been sped up now and then.
-
-\unexpanded\def\symbol % This one always gobbles spaces,
- {\dodoubleempty\dosymbol} % so never change it again!
-
-\newif\ifnosymbol \newtoks\everysymbol
-
-\def\dodosymbol#1#2% \relax's prevent lookahead problems
- {\nosymbolfalse{\the\everysymbol\csname\??ss:#1:#2\endcsname\relax}\relax}
-
-\def\directsymbol#1#2% no \relax, there can be an argument, see lists
- {\executeifdefined{\??ss:#1:#2}\firstofoneargument}
-
-% We support both:
-%
-% Test test \symbol[whatever]\ test \symbol[whatever].
-% Test test \symbol{whatever} test \symbol{whatever}.
-
-\def\dosymbol % so we also handle \symbol{name}
- {\iffirstargument % which is nicer with following spaces
- \expandafter\donormalsymbol
- \else
- \expandafter\dospecialsymbol
- \fi}
-
-\def\dospecialsymbol[#1][#2]#3%
- {\firstargumenttrue
- \secondargumentfalse
- \donormalsymbol[#3][]}
-
-\def\donormalsymbol[#1][#2]%
- {\nosymboltrue
- \ifsecondargument
- \edef\currentsymbol{#2}%
- \doifinsymbolset{#1}{#2}{\dodosymbol{#1}{#2}}%
- \else
- \edef\currentsymbol{#1}%
- \fi
- \ifnosymbol
- \the\symbolsetups
- \ifnosymbol
- \redosymbol\currentsymbol
- \fi
- \fi}
-
-\def\fetchsymbol#1%
- {\ifnosymbol
- \doifinsymbolset{#1}\currentsymbol{\dodosymbol{#1}\currentsymbol}%
- \fi}
-
-\def\redosymbol#1%
-% {\doifinsymbolsetelse\empty{#1}{\dodosymbol\empty{#1}}{#1}} % more efficient:
- {\doifinsymbolsetelse\empty{#1}{\dodosymbol\empty}\firstofoneargument{#1}}
-
-% % % % %
-% this should go in symb-fig, to be loaded after core-fig
-
-%D \macros
-%D {definefiguresymbol}
-%D
-%D To simplify defining figure symbols, we offer:
-%D
-%D \showsetup{definefiguresymbol}
-%D
-%D By default, such symbols scale along the current bodyfont
-%D size or running font size (which is better).
-
-\def\defaultsymbolfactor{10}
-\def\defaultsymbolheight{1.25ex}
-
-\def\figuresymbol
- {\dodoubleempty\dofiguresymbol}
-
-\ifx\externalfigure \undefined \def\externalfigure[#1][#2]{#1} \fi
-\ifx\resetexternalfigures\undefined \let\resetexternalfigures\relax \fi
-
-\def\dofiguresymbol[#1][% #2]%
- {\externalfigure[#1][\c!reset=\v!yes,\c!symbol=\v!yes,\c!height=\defaultsymbolheight,}% #2]}
-
-\appendtoks \resetexternalfigures \to \everysymbol
-
-\def\definefiguresymbol
- {\dotripleempty\dodefinefiguresymbol}
-
-\def\dodefinefiguresymbol[#1][#2][#3]%
- {\ifsecondargument
- \definesymbol[#1][{\dofiguresymbol[#2][#3]}]%
- \fi}
-
-% but for the moment we keep it here
-% % % % % %
-
-%\def\objectsymbol[#1]%
-% {\dopresetfieldsymbol{#1}\dogetfieldsymbol{#1}}
-
-%D \macros
-%D {doifsymboldefinedelse}
-%D
-%D A handy private one:
-
-% a bit messy
-
-\def\xfetchsymbol#1%
- {\ifnosymbol
- \doifinsymbolset{#1}\currentsymbol\nosymbolfalse
- \fi}
-
-\def\xredosymbol#1%
- {\doifinsymbolset\empty\currentsymbol\nosymbolfalse}
-
-\def\doifsymboldefinedelse#1%
- {\bgroup
- \edef\currentsymbol{#1}%
- \let\fetchsymbol\xfetchsymbol
- \nosymboltrue
- \the\symbolsetups
- \ifnosymbol
- \xredosymbol\currentsymbol
- \ifnosymbol
- \egroup\@EAEAEA\secondoftwoarguments
- \else
- \egroup\@EAEAEA\firstoftwoarguments
- \fi
- \else
- \egroup\@EA\firstoftwoarguments
- \fi}
-
-%D \macros
-%D {setupsymbolset,startsymbolset}
-%D
-%D From these macro definitions one can deduce that symbols can
-%D be grouped in symbol sets:
-%D
-%D \starttyping
-%D \startsymbolset [navigation 1]
-%D \definefiguresymbol [Next] [mp-symb.1]
-%D \definefiguresymbol [Prev] [mp-symb.2]
-%D \stopsymbolset
-%D \stoptyping
-%D
-%D Such a symbol can be typeset with:
-%D
-%D \starttyping
-%D \setupsymbolset[navigation 1]\symbol[Next]
-%D \stoptyping
-%D
-%D or simply:
-%D
-%D \starttyping
-%D \symbol[navigation 1][Next]
-%D \stoptyping
-%D
-%D Formally:
-%D
-%D \showsetup{setupsymbolset}
-%D \showsetup{startsymbolset}
-
-\let\currentsymboldef\empty
-
-\def\startsymbolset[#1]%
- {\def\currentsymboldef{#1}}
-
-\def\stopsymbolset
- {\let\currentsymboldef\empty}
-
-\newtoks\symbolsetups
-
-\def\setupsymbolset[#1]%
- {\prependtoksonce\fetchsymbol{#1}\to\symbolsetups}
-
-\def\resetsymbolset
- {\symbolsetups\emptytoks}
-
-\def\forcesymbolset[#1]%
- {\symbolsetups{\fetchsymbol{#1}}}
-
-%D \macros
-%D {showsymbolset}
-%D
-%D \showsetup{showsymbolset}
-
-\fetchruntimecommand \showsymbolset {\f!symbolprefix\s!run}
-
-%D \macros
-%D {usesymbols}
-%D
-%D \showsetup{usesymbols}
-
-\def\dousesymbols#1%
- {\startreadingfile
- \readsysfile{\truefilename{\f!symbolprefix#1}.\mksuffix}
- {\showmessage\m!symbols1{#1}}
- {\readsysfile{\truefilename{\f!symbolprefix#1}}
- {\showmessage\m!symbols1{#1}}
- \donothing}%
- \stopreadingfile}
-
-\def\usesymbols[#1]%
- {\processcommalist[#1]\dousesymbols}
-
-%D As longs as symbols are linked to levels or numbers, we can
-%D also use the conversion mechanism, but in for instance the
-%D itemization macros, we prefer symbols because they can more
-%D easier be (partially) redefined.
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/symb-jmn.mkii b/Master/texmf-dist/tex/context/base/mkii/symb-jmn.mkii
deleted file mode 100644
index aea2dce7b0b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/symb-jmn.mkii
+++ /dev/null
@@ -1,199 +0,0 @@
-%D \module
-%D [ file=symb-jmn,
-%D version=2004.08.02,
-%D title=\CONTEXT\ Symbol Libraries,
-%D subtitle=Special Navigational Symbols,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This file defines a few navigational symbol vectors. The font used
-%D here is designed by Janusz M.~Nowacki, one of the Polish Font
-%D Gurus who made this font specially for me, hence the name. If you
-%D you want to meet its designer, come to Bachotek! In case you're
-%D not familiar with his work, take a look at the Antikwa, Iwona and
-%D Kurier fonts!
-%D
-%D \usesymbols[jmn]
-%D
-%D \showsymbolset[navigation 1]
-%D \showsymbolset[navigation 3]
-%D \showsymbolset[navigation 2]
-%D \showsymbolset[navigation 4]
-%D
-%D \page
-%D \showfont[NavigationNormal]
-%D \page
-%D \showfont[NavigationShadowed]
-%D \page
-
-% needed:
-%
-% - inverted crossed
-% - curved diamond
-
-\unprotect
-
-\loadmapfile[original-base.map] % \loadmapfile [original-context-symbol.map]
-
-\definefontsynonym[NavigationNormal] [hans]
-\definefontsynonym[NavigationShadowed] [hans-sh]
-
-\definefontsynonym[NavigationFont] [NavigationNormal]
-%definefontsynonym[NavigationFont] [NavigationShadowed]
-
-\def\NavigationGlyph#1{\getglyph{NavigationFont}{\char#1}}
-
-\unprotect
-
-\startsymbolset [navigation 1]
-
- \definesymbol [\v!previouspage] [\NavigationGlyph {65}]
- \definesymbol [\v!PreviousJump] [\NavigationGlyph{128}]
- \definesymbol [\v!firstpage] [\NavigationGlyph{129}]
-
- \definesymbol [\v!nextpage] [\NavigationGlyph {66}]
- \definesymbol [\v!NextJump] [\NavigationGlyph{130}]
- \definesymbol [\v!lastpage] [\NavigationGlyph{131}]
-
- \definesymbol [\v!CloseDocument] [\NavigationGlyph{160}]
-
- \definesymbol [\v!firstsubpage] [\NavigationGlyph{178}]
- \definesymbol [\v!previoussubpage] [\NavigationGlyph{208}]
- \definesymbol [\v!nextsubpage] [\NavigationGlyph{209}]
- \definesymbol [\v!lastsubpage] [\NavigationGlyph{178}]
-
- \definesymbol [\v!StartSound] [\NavigationGlyph {66}]
- \definesymbol [\v!PauseSound] [\NavigationGlyph{168}]
- \definesymbol [\v!StopSound] [\NavigationGlyph{170}]
-
- \definesymbol [\v!StartMovie] [\NavigationGlyph {66}]
- \definesymbol [\v!PauseMovie] [\NavigationGlyph{168}]
- \definesymbol [\v!StopMovie] [\NavigationGlyph{170}]
-
- \definesymbol [\v!StartRendering] [\NavigationGlyph {66}]
- \definesymbol [\v!PauseRendering] [\NavigationGlyph{168}]
- \definesymbol [\v!StopRendering] [\NavigationGlyph{170}]
- \definesymbol [\v!ResumeRendering] [\NavigationGlyph {66}]
-
-\stopsymbolset
-
-\startsymbolset [navigation 2]
-
- \definesymbol [\v!previouspage] [\NavigationGlyph {67}]
- \definesymbol [\v!PreviousJump] [\NavigationGlyph{132}]
- \definesymbol [\v!firstpage] [\NavigationGlyph{133}]
-
- \definesymbol [\v!nextpage] [\NavigationGlyph {68}]
- \definesymbol [\v!NextJump] [\NavigationGlyph{134}]
- \definesymbol [\v!lastpage] [\NavigationGlyph{135}]
-
- \definesymbol [\v!CloseDocument] [\NavigationGlyph{160}]
-
- \definesymbol [\v!firstsubpage] [\NavigationGlyph{176}]
- \definesymbol [\v!previoussubpage] [\NavigationGlyph{210}]
- \definesymbol [\v!nextsubpage] [\NavigationGlyph{211}]
- \definesymbol [\v!lastsubpage] [\NavigationGlyph{176}]
-
- \definesymbol [\v!StartSound] [\NavigationGlyph {68}]
- \definesymbol [\v!PauseSound] [\NavigationGlyph{170}]
- \definesymbol [\v!StopSound] [\NavigationGlyph{168}]
-
- \definesymbol [\v!StartMovie] [\NavigationGlyph {68}]
- \definesymbol [\v!PauseMovie] [\NavigationGlyph{170}]
- \definesymbol [\v!StopMovie] [\NavigationGlyph{168}]
-
- \definesymbol [\v!StartRendering] [\NavigationGlyph {68}]
- \definesymbol [\v!PauseRendering] [\NavigationGlyph{170}]
- \definesymbol [\v!StopRendering] [\NavigationGlyph{168}]
- \definesymbol [\v!ResumeRendering] [\NavigationGlyph {68}]
-
-\stopsymbolset
-
-\startsymbolset [navigation 3]
-
- \definesymbol [\v!previouspage] [\NavigationGlyph {73}]
- \definesymbol [\v!PreviousJump] [\NavigationGlyph{144}]
- \definesymbol [\v!firstpage] [\NavigationGlyph{145}]
-
- \definesymbol [\v!nextpage] [\NavigationGlyph {74}]
- \definesymbol [\v!NextJump] [\NavigationGlyph{146}]
- \definesymbol [\v!lastpage] [\NavigationGlyph{147}]
-
- \definesymbol [\v!CloseDocument] [\NavigationGlyph{160}]
-
- \definesymbol [\v!firstsubpage] [\NavigationGlyph{178}]
- \definesymbol [\v!previoussubpage] [\NavigationGlyph{212}]
- \definesymbol [\v!nextsubpage] [\NavigationGlyph{213}]
- \definesymbol [\v!lastsubpage] [\NavigationGlyph{178}]
-
- \definesymbol [\v!StartSound] [\NavigationGlyph {73}]
- \definesymbol [\v!PauseSound] [\NavigationGlyph{168}]
- \definesymbol [\v!StopSound] [\NavigationGlyph{170}]
-
- \definesymbol [\v!StartMovie] [\NavigationGlyph {73}]
- \definesymbol [\v!PauseMovie] [\NavigationGlyph{168}]
- \definesymbol [\v!StopMovie] [\NavigationGlyph{170}]
-
- \definesymbol [\v!StartRendering] [\NavigationGlyph {73}]
- \definesymbol [\v!PauseRendering] [\NavigationGlyph{168}]
- \definesymbol [\v!StopRendering] [\NavigationGlyph{170}]
- \definesymbol [\v!ResumeRendering] [\NavigationGlyph {73}]
-
-\stopsymbolset
-
-% 1 left : 065 067 073 075
-% 2 left : 128 132 144 148
-% 3 left : 129 133 145 149
-
-% 1 right : 066 068 074 076
-% 2 right : 130 134 146 150
-% 3 right : 131 135 147 151
-
-% crossed : 160 160 160 160
-% opened : 152 152 156 156
-% closed : 154 154 158 158
-
-% larrow : 208 210 212 214
-% rarrow : 209 211 213 215
-% barrow : 178 178 178 178
-% ocircle : 168 168 168 168
-% ccircle : 170 170 170 170
-
-\startsymbolset [navigation 4]
-
- \definesymbol [\v!previouspage] [\NavigationGlyph {75}]
- \definesymbol [\v!PreviousJump] [\NavigationGlyph{148}]
- \definesymbol [\v!firstpage] [\NavigationGlyph{149}]
-
- \definesymbol [\v!nextpage] [\NavigationGlyph {76}]
- \definesymbol [\v!NextJump] [\NavigationGlyph{150}]
- \definesymbol [\v!lastpage] [\NavigationGlyph{151}]
-
- \definesymbol [\v!CloseDocument] [\NavigationGlyph{160}]
-
- \definesymbol [\v!firstsubpage] [\NavigationGlyph{176}]
- \definesymbol [\v!previoussubpage] [\NavigationGlyph{214}]
- \definesymbol [\v!nextsubpage] [\NavigationGlyph{215}]
- \definesymbol [\v!lastsubpage] [\NavigationGlyph{176}]
-
- \definesymbol [\v!StartSound] [\NavigationGlyph {75}]
- \definesymbol [\v!PauseSound] [\NavigationGlyph{170}]
- \definesymbol [\v!StopSound] [\NavigationGlyph{168}]
-
- \definesymbol [\v!StartMovie] [\NavigationGlyph {75}]
- \definesymbol [\v!PauseMovie] [\NavigationGlyph{170}]
- \definesymbol [\v!StopMovie] [\NavigationGlyph{168}]
-
- \definesymbol [\v!StartRendering] [\NavigationGlyph {75}]
- \definesymbol [\v!PauseRendering] [\NavigationGlyph{170}]
- \definesymbol [\v!StopRendering] [\NavigationGlyph{168}]
- \definesymbol [\v!ResumeRendering] [\NavigationGlyph {75}]
-
-\stopsymbolset
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/symb-mis.mkii b/Master/texmf-dist/tex/context/base/mkii/symb-mis.mkii
deleted file mode 100644
index dacb816b411..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/symb-mis.mkii
+++ /dev/null
@@ -1,139 +0,0 @@
-%D \module
-%D [ file=symb-mis,
-%D version=2002.05.07,
-%D title=\CONTEXT\ Symbol Libraries,
-%D subtitle=Miscelaneous,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-%D We predefine some common symbols and conversions that will
-%D be understood by many commands.
-
-% \mathematics no longer needed, although only math fonts might have these
-
-\definesymbol [\v!none] []
-\definesymbol [bullet] [\mathematics{\bullet}]
-\definesymbol [dash] [\mathematics{-}]
-\definesymbol [star] [\mathematics{\star}]
-\definesymbol [triangle] [\mathematics{\triangleright}]
-\definesymbol [circle] [\mathematics{\circ}]
-\definesymbol [square] [\mathematics{\square}]
-\definesymbol [diamond] [\mathematics{\diamond}]
-
-\definesymbol [smallcircle] [\hbox{\raise.1ex\hbox{\mathematics{\scriptscriptstyle\bigcirc}}}]
-\definesymbol [medcircle] [\hbox{\raise.1ex\hbox{\mathematics{\scriptstyle \bigcirc}}}]
-\definesymbol [bigcircle] [\mathematics{\bigcirc}]
-
-\definesymbol [1] [\symbol{bullet}]
-\definesymbol [2] [\symbol{dash}]
-\definesymbol [3] [\symbol{star}]
-\definesymbol [4] [\symbol{triangle}]
-\definesymbol [5] [\symbol{circle}]
-\definesymbol [6] [\symbol{medcircle}]
-\definesymbol [7] [\symbol{bigcircle}]
-\definesymbol [8] [\symbol{square}]
-
-%D Special hyperlinks, namely those to pages or navigational
-%D properties, are associated with symbols.
-
-\definesymbol [\v!firstpage] [\gotobegincharacter]
-\definesymbol [\v!previouspage] [\gobackwardcharacter]
-\definesymbol [\v!nextpage] [\goforwardcharacter]
-\definesymbol [\v!lastpage] [\gotoendcharacter]
-\definesymbol [\v!firstsubpage] [\gotobegincharacter]
-\definesymbol [\v!previoussubpage] [\gobackwardcharacter]
-\definesymbol [\v!nextsubpage] [\goforwardcharacter]
-\definesymbol [\v!lastsubpage] [\gotoendcharacter]
-\definesymbol [\v!PreviousJump] [\gobackjumpcharacter]
-\definesymbol [\v!NextJump] [\goforjumpcharacter]
-\definesymbol [\v!CloseDocument] [\closecharacter]
-
-\definesymbol [\v!first] [\symbol{\v!firstpage}]
-\definesymbol [\v!previous] [\symbol{\v!previouspage}]
-\definesymbol [\v!next] [\symbol{\v!nextpage}]
-\definesymbol [\v!last] [\symbol{\v!lastpage}]
-\definesymbol [\v!somewhere] [\gotosomewherecharacter]
-\definesymbol [\v!nowhere] [\gonowherecharacter]
-
-\definesymbol [\v!backward] [\symbol{\v!previouspage}]
-\definesymbol [\v!forward] [\symbol{\v!nextpage}]
-
-%D The next two symbols (\symbol[P] and \symbol[S]) are
-%D variations in their math counterparts. The following ones
-%D {\em do} scale.
-
-% todo : hook this into \textsection
-
-\definesymbol [S] [\getglyph{MathSymbol}{\char"78}]
-\definesymbol [P] [\getglyph{MathSymbol}{\char"7B}]
-
-%D These symbols are taken from the Computer Moders Roman
-%D symbol set or, when present, from the additional symbols of
-%D the American Mathematical Society. Of course one can use
-%D his or her own symbols by redefining them.
-
-\def\dogotocharacter#1#2#3%
- {\ifx#1\undefined#2\else#3\fi}
-
-\def\gotobegincharacter
- {\hbox
- {\dogotocharacter\blacktriangleleft
- {\setbox0\hbox{\mathematics{\triangleleft}}%
- \vrule\!!width.085ex\!!height1.075\ht0\!!depth\dp0
- \kern-.11ex\box0}
- {\setbox0\hbox{\mathematics{\blacktriangleleft}}%
- \setbox2\hbox{\vrule\!!height\ht0\!!depth\dp0\!!width.25ex}%
- \hbox{\lower.03ex\box2\kern-.35ex\box0}}}}
-
-\def\gotoendcharacter
- {\hbox
- {\dogotocharacter\blacktriangleright
- {\setbox0\hbox{\mathematics{\triangleright}}%
- \copy0\kern-.11ex
- \vrule\!!width.085ex\!!height1.075\ht0\!!depth\dp0}
- {\setbox0\hbox{\mathematics{\blacktriangleright}}%
- \setbox2\hbox{\vrule\!!height\ht0\!!depth\dp0\!!width.25ex}%
- \hbox{\box0\kern-.35ex\lower.03ex\box2}}}}
-
-\def\gobackwardcharacter
- {\mathematics{\dogotocharacter\blacktriangleright\triangleleft\blacktriangleleft}}
-
-\def\goforwardcharacter
- {\mathematics{\dogotocharacter\blacktriangleright\triangleright\blacktriangleright}}
-
-\def\gonowherecharacter
- {\mathematics{\bullet}}
-
-\def\gotosomewherecharacter
- {{\hbox{\hsmash{\symbol[\v!previous]}\symbol[\v!next]}}}
-
-\unexpanded\def\closecharacter
- {\dogotocharacter\boxtimes
- {\ruledhbox{\mathematics{\times}}}
- {\mathematics{\boxtimes}}}
-
-\def\goforjumpcharacter
- {\hbox{\goforwardcharacter \kern-.5em\goforwardcharacter}}
-
-\def\gobackjumpcharacter
- {\hbox{\gobackwardcharacter\kern-.5em\gobackwardcharacter}}
-
-%D The next two symbols are for Daniel Flipo:
-
-\ifx\high \undefined \let\high \firstofoneargument \fi % todo
-\ifx\notsmallcapped\undefined \let\notsmallcapped\firstofoneargument \fi % todo
-
-\definesymbol [Numero] [N\high{\notsmallcapped{o}\kern.2em}]
-\definesymbol [numero] [n\high{\notsmallcapped{o}\kern.2em}]
-
-\def\Numero{\symbol[Numero]}
-\def\numero{\symbol[numero]}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/symb-mvs.mkii b/Master/texmf-dist/tex/context/base/mkii/symb-mvs.mkii
deleted file mode 100644
index aae4e92d66c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/symb-mvs.mkii
+++ /dev/null
@@ -1,217 +0,0 @@
-%D \module
-%D [ file=symb-mvs,
-%D version=2000.03.30,
-%D title=\CONTEXT\ Symbol Libraries,
-%D subtitle=Martin Vogels Symbole,
-%D author=Tobias Burnus \& Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module implements the Martin Vogel Symbole font
-%D (marvosym). The names are derived from the \LATEX\ package
-%D \type {marvosym} of Thomas Henlich. The symbols are
-%D available as Type~1 font and are included in \TETEX\ and
-%D \FPTEX\ distributions.
-%D
-%D This symbol font offers the signs of the zodiac, four
-%D alternative the euro signs, some general office signs and
-%D some more.
-%D
-%D The font was designed by Martin Vogel who can be reached at
-%D \hyphenatedurl {martin.vogel@fh-bochum.de}. More information
-%D can be found at \hyphenatedurl
-%D {http://www.fh-bochum.de/fb1/vogel/marvosym.html}. The
-%D conversion to Type~1 font was done by Thomas Henlich, who
-%D can be reached at \hyphenatedurl
-%D {thenlich@rcs.urz.tu-dresden.de}.
-%D
-%D This module is based on the current \CTAN\ version (as of
-%D March 30, 2000) and is older than the TrueType version at
-%D Martin Vogel's Homepage. The definitions in this module
-%D reflect the \CTAN\ version. The font conversion was done by
-%D Thomas Henlich using \type {ttf2pt1}, a program that can be
-%D found at \hyphenatedurl
-%D {http://www.netspace.net.au/~mheath/ttf2pt1/}.
-%D
-%D Using the new version of \type {marvosymb}, the MVzero will
-%D has a slash and the FHBOLOGO, (wo)manface, and (wo)manfront
-%D are replaced by other symbols.
-
-\loadmapfile[original-base.map] % \loadmapfile[original-vogel-symbol]
-
-\definefontsynonym [MartinVogel] [umvs]
-
-\def\MartinVogelSymbol#1{\getglyph{MartinVogel}{\char#1}}
-
-% Astro signs and signs of the zodiac
-
-\startsymbolset [astronomic]
-
- \definesymbol [Sun] [\MartinVogelSymbol{192}]
- \definesymbol [Moon] [\MartinVogelSymbol{193}]
- \definesymbol [Mercury] [\MartinVogelSymbol{194}]
- \definesymbol [Venus] [\MartinVogelSymbol{195}]
- \definesymbol [Mars] [\MartinVogelSymbol{196}]
- \definesymbol [Jupiter] [\MartinVogelSymbol{197}]
- \definesymbol [Saturn] [\MartinVogelSymbol{198}]
- \definesymbol [Uranus] [\MartinVogelSymbol{199}]
- \definesymbol [Neptune] [\MartinVogelSymbol{200}]
- \definesymbol [Pluto] [\MartinVogelSymbol{201}]
-
-\stopsymbolset
-
-\startsymbolset [zodiac]
-
- \definesymbol [Aries] [\MartinVogelSymbol{224}]
- \definesymbol [Taurus] [\MartinVogelSymbol{225}]
- \definesymbol [Gemini] [\MartinVogelSymbol{226}]
- \definesymbol [Cancer] [\MartinVogelSymbol{227}]
- \definesymbol [Leo] [\MartinVogelSymbol{228}]
- \definesymbol [Virgo] [\MartinVogelSymbol{229}]
- \definesymbol [Libra] [\MartinVogelSymbol{230}]
- \definesymbol [Scorpio] [\MartinVogelSymbol{231}]
- \definesymbol [Sagittarius] [\MartinVogelSymbol{232}]
- \definesymbol [Capricorn] [\MartinVogelSymbol{233}]
- \definesymbol [Aquarius] [\MartinVogelSymbol{234}]
- \definesymbol [Pisces] [\MartinVogelSymbol{235}]
-
-\stopsymbolset
-
-% Euro signs and CE
-
-\startsymbolset [europe]
-
- \definesymbol [EUR] [\MartinVogelSymbol{164}]
- \definesymbol [EURhv] [\MartinVogelSymbol {99}]
- \definesymbol [EURcr] [\MartinVogelSymbol{100}]
- \definesymbol [EURtm] [\MartinVogelSymbol{101}]
- \definesymbol [CEsign] [\MartinVogelSymbol {67}]
-
-\stopsymbolset
-
-\startencoding[default]
-
- \definecharacter texteuro {\symbol[europe][EUR]}
-
-\stopencoding
-
-\unexpanded\def\euro{\doiftextelse{\texteuro}{\texteuro}{\symbol[europe][EUR]}}
-
-% Numbers 0 to 9, @, A and p
-
-% taco: are these more general, like also in zapf dingbats?
-
-\startsymbolset [martinvogel 1]
-
- \definesymbol [MVZero] [\MartinVogelSymbol {48}]
- \definesymbol [MVOne] [\MartinVogelSymbol {49}]
- \definesymbol [MVTwo] [\MartinVogelSymbol {50}]
- \definesymbol [MVThree] [\MartinVogelSymbol {51}]
- \definesymbol [MVFour] [\MartinVogelSymbol {52}]
- \definesymbol [MVFive] [\MartinVogelSymbol {53}]
- \definesymbol [MVSix] [\MartinVogelSymbol {54}]
- \definesymbol [MVSeven] [\MartinVogelSymbol {55}]
- \definesymbol [MVEight] [\MartinVogelSymbol {56}]
- \definesymbol [MVNine] [\MartinVogelSymbol {57}]
- \definesymbol [MVAt] [\MartinVogelSymbol {64}]
- \definesymbol [MVA] [\MartinVogelSymbol{240}]
- \definesymbol [MVp] [\MartinVogelSymbol{241}]
-
-\stopsymbolset
-
-% Office signs, crosses, circles, arrows
-
-\startsymbolset [martinvogel 2]
-
- \definesymbol [CheckedBox] [\MartinVogelSymbol {86}]
- \definesymbol [CrossedBox] [\MartinVogelSymbol {88}]
- \definesymbol [PointingHand] [\MartinVogelSymbol {90}]
- \definesymbol [WritingHand] [\MartinVogelSymbol {98}]
- \definesymbol [Heart] [\MartinVogelSymbol{140}]
- \definesymbol [FlatSteel] [\MartinVogelSymbol{150}]
- \definesymbol [Squarepipe] [\MartinVogelSymbol{151}]
- \definesymbol [Rectpipe] [\MartinVogelSymbol{152}]
- \definesymbol [Lsteel] [\MartinVogelSymbol{153}]
- \definesymbol [TTsteel] [\MartinVogelSymbol{154}]
- \definesymbol [Circpipe] [\MartinVogelSymbol{155}]
- \definesymbol [Tsteel] [\MartinVogelSymbol{156}]
-
- \definesymbol [Stopsign] [\MartinVogelSymbol {33}]
- \definesymbol [Beam] [\MartinVogelSymbol {34}]
- \definesymbol [Bearing] [\MartinVogelSymbol {35}]
- \definesymbol [Loosebearing] [\MartinVogelSymbol {36}]
- \definesymbol [Fixedbearing] [\MartinVogelSymbol {37}]
- \definesymbol [Lefttorque] [\MartinVogelSymbol {38}]
- \definesymbol [Righttorque] [\MartinVogelSymbol {39}]
- \definesymbol [Force] [\MartinVogelSymbol {40}]
- \definesymbol [Lineload] [\MartinVogelSymbol {41}]
- \definesymbol [Circles] [\MartinVogelSymbol {46}]
- \definesymbol [Squaredot] [\MartinVogelSymbol{247}]
-
- \definesymbol [Correspondes] [\MartinVogelSymbol {61}]
- \definesymbol [Vectorarrowhigh] [\MartinVogelSymbol {80}]
- \definesymbol [Vectorarrow] [\MartinVogelSymbol{112}]
- \definesymbol [Rightarrow] [\MartinVogelSymbol {62}]
- \definesymbol [Lightning] [\MartinVogelSymbol {69}]
-
- \definesymbol [Snowflake] [\MartinVogelSymbol {42}]
- \definesymbol [Kross] [\MartinVogelSymbol {43}]
- \definesymbol [Cross] [\MartinVogelSymbol{134}]
- \definesymbol [Celtcross] [\MartinVogelSymbol{135}]
- \definesymbol [Ankh] [\MartinVogelSymbol{136}]
- \definesymbol [Yingyang] [\MartinVogelSymbol {77}]
-
- \definesymbol [Pickup] [\MartinVogelSymbol {0}] % ?
- \definesymbol [Letter] [\MartinVogelSymbol {66}] % ?
- \definesymbol [Mobilephone] [\MartinVogelSymbol {72}]
- \definesymbol [Telephone] [\MartinVogelSymbol {84}]
- \definesymbol [fax] [\MartinVogelSymbol{116}]
- \definesymbol [FAX] [\MartinVogelSymbol{117}]
- \definesymbol [Faxmachine] [\MartinVogelSymbol{118}]
-
- \definesymbol [Clocklogo] [\MartinVogelSymbol {85}]
- \definesymbol [Industry] [\MartinVogelSymbol {73}]
- \definesymbol [Coffeecup] [\MartinVogelSymbol {75}]
- \definesymbol [Info] [\MartinVogelSymbol{105}]
- \definesymbol [Football] [\MartinVogelSymbol{111}]
- \definesymbol [Frowny] [\MartinVogelSymbol{167}]
- \definesymbol [Smiley] [\MartinVogelSymbol{169}]
- \definesymbol [Bicycle] [\MartinVogelSymbol{174}]
-
- \definesymbol [Rightscissors] [\MartinVogelSymbol {81}]
- \definesymbol [Leftscissors] [\MartinVogelSymbol {83}]
- \definesymbol [Cutright] [\MartinVogelSymbol{113}]
- \definesymbol [Cutleft] [\MartinVogelSymbol{115}]
- \definesymbol [Kutline] [\MartinVogelSymbol {82}] % K ?
- \definesymbol [Cutline] [\MartinVogelSymbol{114}]
-
-\stopsymbolset
-
-% FHBO (Fachhochschule Bochum), face, humans, bat
-
-\startsymbolset [martinvogel 3]
-
- \definesymbol [FHBOlogo] [\MartinVogelSymbol {70}]
- \definesymbol [FHBOLOGO] [\MartinVogelSymbol{102}]
- \definesymbol [Womanside] [\MartinVogelSymbol{204}]
- \definesymbol [Manside] [\MartinVogelSymbol{205}]
- \definesymbol [Womanfront] [\MartinVogelSymbol{206}]
- \definesymbol [Manfront] [\MartinVogelSymbol{207}]
- \definesymbol [Bat] [\MartinVogelSymbol{253}]
- \definesymbol [Womanface] [\MartinVogelSymbol{254}]
- \definesymbol [MartinVogel] [\MartinVogelSymbol{255}]
-
-\stopsymbolset
-
-%D \showsymbolset[astronomic]
-%D \showsymbolset[zodiac]
-%D \showsymbolset[europe]
-%D \showsymbolset[martinvogel 1]
-%D \showsymbolset[martinvogel 2]
-%D \showsymbolset[martinvogel 3]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/symb-nav.mkii b/Master/texmf-dist/tex/context/base/mkii/symb-nav.mkii
deleted file mode 100644
index c9d1aae1d73..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/symb-nav.mkii
+++ /dev/null
@@ -1,122 +0,0 @@
-%D \module
-%D [ file=symb-nav,
-%D version=1998.07.20,
-%D title=\CONTEXT\ Symbol Libraries,
-%D subtitle=Navigational Symbols,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\loadmapfile[original-base.map] % \loadmapfile [original-context-symbol.map]
-
-\definefontsynonym [ContextNavigation] [contnav]
-
-\def\ContextNavigationGlyph#1{\getglyph{ContextNavigation}{\char#1}}
-
-\startsymbolset [navigation 1]
-
- \definesymbol [\v!firstpage] [\ContextNavigationGlyph{3}]
- \definesymbol [\v!previouspage] [\ContextNavigationGlyph{1}]
- \definesymbol [\v!nextpage] [\ContextNavigationGlyph{2}]
- \definesymbol [\v!lastpage] [\ContextNavigationGlyph{4}]
-
- \definesymbol [\v!PreviousJump] [\ContextNavigationGlyph{5}]
- \definesymbol [\v!NextJump] [\ContextNavigationGlyph{6}]
-
- \definesymbol [\v!CloseDocument] [\ContextNavigationGlyph{7}]
-
- \definesymbol [\v!firstsubpage] [\ContextNavigationGlyph{3}]
- \definesymbol [\v!previoussubpage] [\ContextNavigationGlyph{1}]
- \definesymbol [\v!nextsubpage] [\ContextNavigationGlyph{2}]
- \definesymbol [\v!lastsubpage] [\ContextNavigationGlyph{4}]
-
- \definesymbol [\v!StartSound] [\ContextNavigationGlyph{2}]
- \definesymbol [\v!PauseSound] [\ContextNavigationGlyph{8}]
- \definesymbol [\v!StopSound] [\ContextNavigationGlyph{7}]
-
- \definesymbol [\v!StartMovie] [\ContextNavigationGlyph{2}]
- \definesymbol [\v!PauseMovie] [\ContextNavigationGlyph{8}]
- \definesymbol [\v!StopMovie] [\ContextNavigationGlyph{7}]
-
- \definesymbol [\v!StartRendering] [\ContextNavigationGlyph{2}]
- \definesymbol [\v!PauseRendering] [\ContextNavigationGlyph{8}]
- \definesymbol [\v!StopRendering] [\ContextNavigationGlyph{7}]
- \definesymbol [\v!ResumeRendering] [\ContextNavigationGlyph{2}]
-
-\stopsymbolset
-
-\startsymbolset [navigation 2]
-
- \definesymbol [\v!firstpage] [\ContextNavigationGlyph{103}]
- \definesymbol [\v!previouspage] [\ContextNavigationGlyph{101}]
- \definesymbol [\v!nextpage] [\ContextNavigationGlyph{102}]
- \definesymbol [\v!lastpage] [\ContextNavigationGlyph{104}]
-
- \definesymbol [\v!PreviousJump] [\ContextNavigationGlyph{105}]
- \definesymbol [\v!NextJump] [\ContextNavigationGlyph{106}]
-
- \definesymbol [\v!CloseDocument] [\ContextNavigationGlyph{107}]
-
- \definesymbol [\v!firstsubpage] [\ContextNavigationGlyph{103}]
- \definesymbol [\v!previoussubpage] [\ContextNavigationGlyph{101}]
- \definesymbol [\v!nextsubpage] [\ContextNavigationGlyph{102}]
- \definesymbol [\v!lastsubpage] [\ContextNavigationGlyph{104}]
-
- \definesymbol [\v!StartSound] [\ContextNavigationGlyph{102}]
- \definesymbol [\v!PauseSound] [\ContextNavigationGlyph{108}]
- \definesymbol [\v!StopSound] [\ContextNavigationGlyph{107}]
-
- \definesymbol [\v!StartMovie] [\ContextNavigationGlyph{102}]
- \definesymbol [\v!PauseMovie] [\ContextNavigationGlyph{108}]
- \definesymbol [\v!StopMovie] [\ContextNavigationGlyph{107}]
-
- \definesymbol [\v!StartRendering] [\ContextNavigationGlyph{102}]
- \definesymbol [\v!PauseRendering] [\ContextNavigationGlyph{108}]
- \definesymbol [\v!StopRendering] [\ContextNavigationGlyph{107}]
- \definesymbol [\v!ResumeRendering] [\ContextNavigationGlyph{102}]
-
-\stopsymbolset
-
-\startsymbolset [navigation 3]
-
- \definesymbol [\v!firstpage] [\ContextNavigationGlyph{203}]
- \definesymbol [\v!previouspage] [\ContextNavigationGlyph{201}]
- \definesymbol [\v!nextpage] [\ContextNavigationGlyph{202}]
- \definesymbol [\v!lastpage] [\ContextNavigationGlyph{204}]
-
- \definesymbol [\v!PreviousJump] [\ContextNavigationGlyph{205}]
- \definesymbol [\v!NextJump] [\ContextNavigationGlyph{206}]
-
- \definesymbol [\v!CloseDocument] [\ContextNavigationGlyph{207}]
-
- \definesymbol [\v!firstsubpage] [\ContextNavigationGlyph{203}]
- \definesymbol [\v!previoussubpage] [\ContextNavigationGlyph{201}]
- \definesymbol [\v!nextsubpage] [\ContextNavigationGlyph{202}]
- \definesymbol [\v!lastsubpage] [\ContextNavigationGlyph{204}]
-
- \definesymbol [\v!StartSound] [\ContextNavigationGlyph{202}]
- \definesymbol [\v!PauseSound] [\ContextNavigationGlyph{208}]
- \definesymbol [\v!StopSound] [\ContextNavigationGlyph{207}]
-
- \definesymbol [\v!StartMovie] [\ContextNavigationGlyph{202}]
- \definesymbol [\v!PauseMovie] [\ContextNavigationGlyph{208}]
- \definesymbol [\v!StopMovie] [\ContextNavigationGlyph{207}]
-
- \definesymbol [\v!StartRendering] [\ContextNavigationGlyph{202}]
- \definesymbol [\v!PauseRendering] [\ContextNavigationGlyph{208}]
- \definesymbol [\v!StopRendering] [\ContextNavigationGlyph{207}]
- \definesymbol [\v!ResumeRendering] [\ContextNavigationGlyph{202}]
-
-\stopsymbolset
-
-%D \showsymbolset[navigation 1]
-%D \showsymbolset[navigation 2]
-%D \showsymbolset[navigation 3]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/symb-run.mkii b/Master/texmf-dist/tex/context/base/mkii/symb-run.mkii
deleted file mode 100644
index 8b8c62d8b55..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/symb-run.mkii
+++ /dev/null
@@ -1,54 +0,0 @@
-%D \module
-%D [ file=symb-run, % code moved from symb-ini
-%D version=1998.07.20,
-%D title=\CONTEXT\ Symbol Libraries,
-%D subtitle=Runtime Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\gdef\doshowsymbolset[#1][#2]% todo: make nicer, use legend or so
- {\vbox\bgroup
- \blank
- \getparameters[\??ss][\c!n=5,#2]%
- \forcesymbolset[#1]%
- \doifsymbolsetelse{#1}
- {\global\let\allfigures\empty
- \doglobal\newcounter\figurecounter
- \setupcolors[\c!state=\v!start]% to prevent mps color conversion
- \dontcomplain
- \def\doshowsymbols% global needed due to grouping in alignment
- {\expanded{\globalprocesscommalist[\symbolset{#1}]}\docommand}%
- \def\docommand##1%
- {\vbox
- {\forgetall
- \tttf
- \halign
- {\hss\quad####\strut\quad\hss\cr
- \symbol[##1]\quad{\red\ruledhbox{\black\symbol[##1]}}\cr
- \tfx##1\cr}}%
- \doglobal\increment\figurecounter
- \ifnum\figurecounter=\@@ssn
- \doglobal\newcounter\figurecounter
- \def\next{\crcr\noalign{\vskip1ex}}%
- \else
- \def\next{&}%
- \fi
- \next}%
- \tabskip\zeropoint \!!plus 1fill
- \halign to \hsize
- {&\hss##\hss\cr\doshowsymbols\crcr}}%
- {}%
- \blank
- \egroup}
-
-\gdef\showsymbolset
- {\dodoubleempty\doshowsymbolset}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/symb-uni.mkii b/Master/texmf-dist/tex/context/base/mkii/symb-uni.mkii
deleted file mode 100644
index f5435810f15..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/symb-uni.mkii
+++ /dev/null
@@ -1,1123 +0,0 @@
-%D \module
-%D [ file=symb-uni,
-%D version=2004.11.15,
-%D title=\CONTEXT\ Symbol Libraries,
-%D subtitle=Unicode Symbols,
-%D author=Adam T. Lindsay,
-%D date=\currentdate,
-%D copyright={Adam Lindsay \& Hans Hagen}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C prepared by Adam T. Lindsay.
-
-%D The content of this file originates from the Unicode standard, via some
-%D original XSLT scripts and some hand-editing. This file is open for use
-%D with the ConTeXt typesetting system.
-%D
-%D Adam considers the symbol names and categories to be stable, as they're
-%D directly derived from the Unicode standard.
-%D
-%D \startitemize[packed]
-%D \item Originated 2004-01-05 by Adam T. Lindsay
-%D \item Updated 2004-01-16 with Unicode vector 0x27xx and some in
-%D 215x and 246x
-%D \item Updated 2004-11-15 to include default fonts for MacOSX and
-%D \XETEX.
-%D \stopitemize
-%D
-%D The following macros adapt to default fonts (that contain the characters)
-%D in MacOSX. The font selection mechanism is likely to change once \XETEX\
-%D correctly supports \type{\doiffontcharelse}.
-
-\doifundefinedelse{XeTeXversion}
- {\let\USymbChar \uchar
- \let\USymbCharTwo \uchar
- \let\USymbCharZapf\uchar}
- {\def\USymbChar #1#2{\bgroup\UnicodeSymbolFont \uchar{#1}{#2}\relax\egroup}
- \def\USymbCharTwo #1#2{\bgroup\UnicodeSymbolFontTwo \uchar{#1}{#2}\relax\egroup}
- \def\USymbCharZapf#1#2{\bgroup\UnicodeSymbolFontZapf\uchar{#1}{#2}\relax\egroup}
- \doifundefined{UnicodeSymbolFont} {\definefont[UnicodeSymbolFont] ["Apple Symbols" sa *]}
- \doifundefined{UnicodeSymbolFontTwo} {\definefont[UnicodeSymbolFontTwo] ["Lucida Grande" sa *]}
- \doifundefined{UnicodeSymbolFontZapf}{\definefont[UnicodeSymbolFontZapf]["Zapf Dingbats" sa *]}}
-
-\startsymbolset[Unicode Additional Punctuation] % 0x2000: Requires UnicodeRegular20
-
- \definesymbol[Caret][\USymbChar{32}{56}] % CARET
- \definesymbol[ReferenceMark][\USymbChar{32}{59}] % REFERENCE MARK
- \definesymbol[DoubleExclamationMark][\USymbChar{32}{60}] % DOUBLE EXCLAMATION MARK
- \definesymbol[Interrobang][\USymbChar{32}{61}] % INTERROBANG
- \definesymbol[Overline][\USymbChar{32}{62}] % OVERLINE
- \definesymbol[Undertie][\USymbChar{32}{63}] % UNDERTIE
- \definesymbol[CharacterTie][\USymbChar{32}{64}] % CHARACTER TIE
- \definesymbol[CaretInsertionPoint][\USymbChar{32}{65}] % CARET INSERTION POINT
- \definesymbol[Asterism][\USymbChar{32}{66}] % ASTERISM
- \definesymbol[HyphenBullet][\USymbChar{32}{67}] % HYPHEN BULLET
- \definesymbol[FractionSlash][\USymbChar{32}{68}] % FRACTION SLASH
- \definesymbol[LeftSquareBracketWithQuill][\USymbChar{32}{69}] % LEFT SQUARE BRACKET WITH QUILL
- \definesymbol[RightSquareBracketWithQuill][\USymbChar{32}{70}] % RIGHT SQUARE BRACKET WITH QUILL
- \definesymbol[QuestionExclamationMark][\USymbChar{32}{72}] % QUESTION EXCLAMATION MARK
- \definesymbol[ExclamationQuestionMark][\USymbChar{32}{73}] % EXCLAMATION QUESTION MARK
- \definesymbol[TironianSignEt][\USymbChar{32}{74}] % TIRONIAN SIGN ET
- \definesymbol[ReversedPilcrowSign][\USymbChar{32}{75}] % REVERSED PILCROW SIGN
- \definesymbol[BlackLeftwardsBullet][\USymbChar{32}{76}] % BLACK LEFTWARDS BULLET
- \definesymbol[BlackRightwardsBullet][\USymbChar{32}{77}] % BLACK RIGHTWARDS BULLET
-
-\stopsymbolset
-
-\startsymbolset[Unicode Currency] % 0x20A0: Requires UnicodeRegular20
-
- \definesymbol[Euro-currencySign][\USymbChar{32}{160}] % EURO-CURRENCY SIGN
- \definesymbol[ColonSign][\USymbChar{32}{161}] % COLON SIGN
- \definesymbol[CruzeiroSign][\USymbChar{32}{162}] % CRUZEIRO SIGN
- \definesymbol[FrenchFrancSign][\USymbChar{32}{163}] % FRENCH FRANC SIGN
- \definesymbol[LiraSign][\USymbChar{32}{164}] % LIRA SIGN
- \definesymbol[MillSign][\USymbChar{32}{165}] % MILL SIGN
- \definesymbol[NairaSign][\USymbChar{32}{166}] % NAIRA SIGN
- \definesymbol[PesetaSign][\USymbChar{32}{167}] % PESETA SIGN
- \definesymbol[RupeeSign][\USymbChar{32}{168}] % RUPEE SIGN
- \definesymbol[WonSign][\USymbChar{32}{169}] % WON SIGN
- \definesymbol[NewSheqelSign][\USymbChar{32}{170}] % NEW SHEQEL SIGN
- \definesymbol[DongSign][\USymbChar{32}{171}] % DONG SIGN
- \definesymbol[EuroSign][\USymbChar{32}{172}] % EURO SIGN
- \definesymbol[KipSign][\USymbChar{32}{173}] % KIP SIGN
- \definesymbol[TugrikSign][\USymbChar{32}{174}] % TUGRIK SIGN
- \definesymbol[DrachmaSign][\USymbChar{32}{175}] % DRACHMA SIGN
- \definesymbol[GermanPennySign][\USymbChar{32}{176}] % [Unassigned U+20B0]
- \definesymbol[PfennigSign][\USymbChar{32}{176}] % Unofficial duplicate
- \definesymbol[PesoSign][\USymbChar{32}{177}] % [Unassigned U+20B1]
-
-\stopsymbolset
-
-
-\startsymbolset[Unicode Letterlike] % 0x2100: Requires UnicodeRegular21
-
- \definesymbol[DegreeCelsius][\USymbChar{33}{3}] % DEGREE CELSIUS
- \definesymbol[EulerConstant][\USymbChar{33}{7}] % EULER CONSTANT
- \definesymbol[Scruple][\USymbChar{33}{8}] % SCRUPLE
- \definesymbol[DegreeFahrenheit][\USymbChar{33}{9}] % DEGREE FAHRENHEIT
- \definesymbol[PlanckConstant][\USymbChar{33}{14}] % PLANCK CONSTANT
- \definesymbol[PlanckConstantOverTwoPi][\USymbChar{33}{15}] % PLANCK CONSTANT OVER TWO PI
- \definesymbol[LBBarSymbol][\USymbChar{33}{20}] % L B BAR SYMBOL
- \definesymbol[Versicle][\USymbChar{33}{35}] % VERSICLE
- \definesymbol[OunceSign][\USymbChar{33}{37}] % OUNCE SIGN
- \definesymbol[OhmSign][\USymbChar{33}{38}] % OHM SIGN
- \definesymbol[InvertedOhmSign][\USymbChar{33}{39}] % INVERTED OHM SIGN
- \definesymbol[KelvinSign][\USymbChar{33}{42}] % KELVIN SIGN
- \definesymbol[AngstromSign][\USymbChar{33}{43}] % ANGSTROM SIGN
- \definesymbol[EstimatedSymbol][\USymbChar{33}{46}] % ESTIMATED SYMBOL
-
-\stopsymbolset
-
-\startsymbolset[Unicode Letterlike Additional] % 0x2100: Requires UnicodeRegular21
-
- \definesymbol[AccountOf][\USymbChar{33}{0}] % ACCOUNT OF
- \definesymbol[AddressedToTheSubject][\USymbChar{33}{1}] % ADDRESSED TO THE SUBJECT
- \definesymbol[CareOf][\USymbChar{33}{5}] % CARE OF
- \definesymbol[CadaUna][\USymbChar{33}{6}] % CADA UNA
- \definesymbol[CentreLineSymbol][\USymbChar{33}{4}] % CENTRE LINE SYMBOL
- \definesymbol[NumeroSign][\USymbChar{33}{22}] % NUMERO SIGN
- \definesymbol[SoundRecordingCopyright][\USymbChar{33}{23}] % SOUND RECORDING COPYRIGHT
- \definesymbol[PrescriptionTake][\USymbChar{33}{30}] % PRESCRIPTION TAKE
- \definesymbol[Response][\USymbChar{33}{31}] % RESPONSE
- \definesymbol[ServiceMark][\USymbChar{33}{32}] % SERVICE MARK
- \definesymbol[TelephoneSign][\USymbChar{33}{33}] % TELEPHONE SIGN
- \definesymbol[TradeMarkSign][\USymbChar{33}{34}] % TRADE MARK SIGN
- \definesymbol[InformationSource][\USymbChar{33}{57}] % INFORMATION SOURCE
- \definesymbol[PropertyLine][\USymbChar{33}{74}] % [Unassigned U+214A]
-
-\stopsymbolset
-
-\startsymbolset[Unicode Script Letterlike] % 0x2100: Requires UnicodeRegular21
-
- \definesymbol[ScriptSmallG][\USymbChar{33}{10}] % SCRIPT SMALL G
- \definesymbol[ScriptCapitalH][\USymbChar{33}{11}] % SCRIPT CAPITAL H
- \definesymbol[ScriptCapitalI][\USymbChar{33}{16}] % SCRIPT CAPITAL I
- \definesymbol[ScriptCapitalL][\USymbChar{33}{18}] % SCRIPT CAPITAL L
- \definesymbol[ScriptSmallL][\USymbChar{33}{19}] % SCRIPT SMALL L
- \definesymbol[ScriptCapitalP][\USymbChar{33}{24}] % SCRIPT CAPITAL P
- \definesymbol[ScriptCapitalR][\USymbChar{33}{27}] % SCRIPT CAPITAL R
- \definesymbol[ScriptSmallE][\USymbChar{33}{47}] % SCRIPT SMALL E
- \definesymbol[ScriptCapitalE][\USymbChar{33}{48}] % SCRIPT CAPITAL E
- \definesymbol[ScriptCapitalF][\USymbChar{33}{49}] % SCRIPT CAPITAL F
- \definesymbol[ScriptCapitalB][\USymbChar{33}{44}] % SCRIPT CAPITAL B
- \definesymbol[ScriptCapitalM][\USymbChar{33}{51}] % SCRIPT CAPITAL M
- \definesymbol[ScriptSmallO][\USymbChar{33}{52}] % SCRIPT SMALL O
-
-\stopsymbolset
-
-\startsymbolset[Unicode Hebrew Letterlike] % 0x2100: Requires UnicodeRegular21
-
- \definesymbol[AlefSymbol][\USymbChar{33}{53}] % ALEF SYMBOL
- \definesymbol[BetSymbol][\USymbChar{33}{54}] % BET SYMBOL
- \definesymbol[GimelSymbol][\USymbChar{33}{55}] % GIMEL SYMBOL
- \definesymbol[DaletSymbol][\USymbChar{33}{56}] % DALET SYMBOL
-
-\stopsymbolset
-
-\startsymbolset[Unicode Turned Letterlike] % 0x2100: Requires UnicodeRegular21
-
- \definesymbol[RotatedCapitalQ][\USymbChar{33}{58}] % ROTATED CAPITAL Q
- \definesymbol[TurnedSansSerifCapitalG][\USymbChar{33}{65}] % [Unassigned U+2141]
- \definesymbol[TurnedSansSerifCapitalL][\USymbChar{33}{66}] % [Unassigned U+2142]
- \definesymbol[ReversedSansSerifCapitalL][\USymbChar{33}{67}] % [Unassigned U+2143]
- \definesymbol[TurnedSansSerifCapitalY][\USymbChar{33}{68}] % [Unassigned U+2144]
- \definesymbol[TurnedAmpersand][\USymbChar{33}{75}] % [Unassigned U+214B]
- \definesymbol[TurnedGreekSmallLetterIota][\USymbChar{33}{41}] % TURNED GREEK SMALL LETTER IOTA
- \definesymbol[TurnedCapitalF][\USymbChar{33}{50}] % TURNED CAPITAL F
-
-\stopsymbolset
-
-\startsymbolset[Unicode Black-letter Letterlike] % 0x2100: Requires UnicodeRegular21
-
- \definesymbol[BlackLetterCapitalH][\USymbChar{33}{12}] % BLACK-LETTER CAPITAL H
- \definesymbol[BlackLetterCapitalI][\USymbChar{33}{17}] % BLACK-LETTER CAPITAL I
- \definesymbol[BlackLetterCapitalR][\USymbChar{33}{28}] % BLACK-LETTER CAPITAL R
- \definesymbol[BlackLetterCapitalZ][\USymbChar{33}{40}] % BLACK-LETTER CAPITAL Z
- \definesymbol[BlackLetterCapitalC][\USymbChar{33}{45}] % BLACK-LETTER CAPITAL C
-
-\stopsymbolset
-
-\startsymbolset[Unicode Double-struck Letterlike Math] % 0x2100: Requires UnicodeRegular21
-
- \definesymbol[DoubleStruckCapitalC][\USymbChar{33}{2}] % DOUBLE-STRUCK CAPITAL C
- \definesymbol[DoubleStruckCapitalH][\USymbChar{33}{13}] % DOUBLE-STRUCK CAPITAL H
- \definesymbol[DoubleStruckCapitalN][\USymbChar{33}{21}] % DOUBLE-STRUCK CAPITAL N
- \definesymbol[DoubleStruckCapitalP][\USymbChar{33}{25}] % DOUBLE-STRUCK CAPITAL P
- \definesymbol[DoubleStruckCapitalQ][\USymbChar{33}{26}] % DOUBLE-STRUCK CAPITAL Q
- \definesymbol[DoubleStruckCapitalR][\USymbChar{33}{29}] % DOUBLE-STRUCK CAPITAL R
- \definesymbol[DoubleStruckCapitalZ][\USymbChar{33}{36}] % DOUBLE-STRUCK CAPITAL Z
- \definesymbol[DoubleStruckSmallGamma][\USymbChar{33}{61}] % [Unassigned U+213D]
- \definesymbol[DoubleStruckCapitalGamma][\USymbChar{33}{62}] % [Unassigned U+213E]
- \definesymbol[DoubleStruckCapitalPi][\USymbChar{33}{63}] % [Unassigned U+213F]
- \definesymbol[DoubleStruckNArySummation][\USymbChar{33}{64}] % [Unassigned U+2140]
- \definesymbol[DoubleStruckItalicCapitalD][\USymbChar{33}{69}] % [Unassigned U+2145]
- \definesymbol[DoubleStruckItalicSmallD][\USymbChar{33}{70}] % [Unassigned U+2146]
- \definesymbol[DoubleStruckItalicSmallE][\USymbChar{33}{71}] % [Unassigned U+2147]
- \definesymbol[DoubleStruckItalicSmallI][\USymbChar{33}{72}] % [Unassigned U+2148]
- \definesymbol[DoubleStruckItalicSmallJ][\USymbChar{33}{73}] % [Unassigned U+2149]
-
-\stopsymbolset
-
-\startsymbolset[Unicode Roman Numerals] % 0x2150: Requires UnicodeRegular21
-
- \definesymbol[RomanNumeralOne][\USymbCharTwo{33}{96}] % ROMAN NUMERAL ONE
- \definesymbol[RomanNumeralTwo][\USymbCharTwo{33}{97}] % ROMAN NUMERAL TWO
- \definesymbol[RomanNumeralThree][\USymbCharTwo{33}{98}] % ROMAN NUMERAL THREE
- \definesymbol[RomanNumeralFour][\USymbCharTwo{33}{99}] % ROMAN NUMERAL FOUR
- \definesymbol[RomanNumeralFive][\USymbCharTwo{33}{100}] % ROMAN NUMERAL FIVE
- \definesymbol[RomanNumeralSix][\USymbCharTwo{33}{101}] % ROMAN NUMERAL SIX
- \definesymbol[RomanNumeralSeven][\USymbCharTwo{33}{102}] % ROMAN NUMERAL SEVEN
- \definesymbol[RomanNumeralEight][\USymbCharTwo{33}{103}] % ROMAN NUMERAL EIGHT
- \definesymbol[RomanNumeralNine][\USymbCharTwo{33}{104}] % ROMAN NUMERAL NINE
- \definesymbol[RomanNumeralTen][\USymbCharTwo{33}{105}] % ROMAN NUMERAL TEN
- \definesymbol[RomanNumeralEleven][\USymbCharTwo{33}{106}] % ROMAN NUMERAL ELEVEN
- \definesymbol[RomanNumeralTwelve][\USymbCharTwo{33}{107}] % ROMAN NUMERAL TWELVE
- \definesymbol[RomanNumeralFifty][\USymbCharTwo{33}{108}] % ROMAN NUMERAL FIFTY
- \definesymbol[RomanNumeralOneHundred][\USymbCharTwo{33}{109}] % ROMAN NUMERAL ONE HUNDRED
- \definesymbol[RomanNumeralFiveHundred][\USymbCharTwo{33}{110}] % ROMAN NUMERAL FIVE HUNDRED
- \definesymbol[RomanNumeralOneThousand][\USymbCharTwo{33}{111}] % ROMAN NUMERAL ONE THOUSAND
- \definesymbol[RomanNumeralOneThousandCD][\USymbCharTwo{33}{128}] % ROMAN NUMERAL ONE THOUSAND C D
- \definesymbol[RomanNumeralFiveThousand][\USymbCharTwo{33}{129}] % ROMAN NUMERAL FIVE THOUSAND
- \definesymbol[RomanNumeralTenThousand][\USymbCharTwo{33}{130}] % ROMAN NUMERAL TEN THOUSAND
- \definesymbol[RomanNumeralReversedOneHundred][\USymbCharTwo{33}{131}] % ROMAN NUMERAL REVERSED ONE HUNDRED
-
-\stopsymbolset
-
-\startsymbolset[Unicode Small Roman Numerals] % 0x2150: Requires UnicodeRegular21
-
- \definesymbol[SmallRomanNumeralOne][\USymbCharTwo{33}{112}] % SMALL ROMAN NUMERAL ONE
- \definesymbol[SmallRomanNumeralTwo][\USymbCharTwo{33}{113}] % SMALL ROMAN NUMERAL TWO
- \definesymbol[SmallRomanNumeralThree][\USymbCharTwo{33}{114}] % SMALL ROMAN NUMERAL THREE
- \definesymbol[SmallRomanNumeralFour][\USymbCharTwo{33}{115}] % SMALL ROMAN NUMERAL FOUR
- \definesymbol[SmallRomanNumeralFive][\USymbCharTwo{33}{116}] % SMALL ROMAN NUMERAL FIVE
- \definesymbol[SmallRomanNumeralSix][\USymbCharTwo{33}{117}] % SMALL ROMAN NUMERAL SIX
- \definesymbol[SmallRomanNumeralSeven][\USymbCharTwo{33}{118}] % SMALL ROMAN NUMERAL SEVEN
- \definesymbol[SmallRomanNumeralEight][\USymbCharTwo{33}{119}] % SMALL ROMAN NUMERAL EIGHT
- \definesymbol[SmallRomanNumeralNine][\USymbCharTwo{33}{120}] % SMALL ROMAN NUMERAL NINE
- \definesymbol[SmallRomanNumeralTen][\USymbCharTwo{33}{121}] % SMALL ROMAN NUMERAL TEN
- \definesymbol[SmallRomanNumeralEleven][\USymbCharTwo{33}{122}] % SMALL ROMAN NUMERAL ELEVEN
- \definesymbol[SmallRomanNumeralTwelve][\USymbCharTwo{33}{123}] % SMALL ROMAN NUMERAL TWELVE
- \definesymbol[SmallRomanNumeralFifty][\USymbCharTwo{33}{124}] % SMALL ROMAN NUMERAL FIFTY
- \definesymbol[SmallRomanNumeralOneHundred][\USymbCharTwo{33}{125}] % SMALL ROMAN NUMERAL ONE HUNDRED
- \definesymbol[SmallRomanNumeralFiveHundred][\USymbCharTwo{33}{126}] % SMALL ROMAN NUMERAL FIVE HUNDRED
- \definesymbol[SmallRomanNumeralOneThousand][\USymbCharTwo{33}{127}] % SMALL ROMAN NUMERAL ONE THOUSAND
-
-\stopsymbolset
-
-\startsymbolset[Unicode Arrows] % 0x2190: Requires UnicodeRegular21
-
- \definesymbol[LeftwardsArrow][\USymbChar{33}{144}] % LEFTWARDS ARROW
- \definesymbol[UpwardsArrow][\USymbChar{33}{145}] % UPWARDS ARROW
- \definesymbol[RightwardsArrow][\USymbChar{33}{146}] % RIGHTWARDS ARROW
- \definesymbol[DownwardsArrow][\USymbChar{33}{147}] % DOWNWARDS ARROW
- \definesymbol[LeftRightArrow][\USymbChar{33}{148}] % LEFT RIGHT ARROW
- \definesymbol[UpDownArrow][\USymbChar{33}{149}] % UP DOWN ARROW
- \definesymbol[NorthWestArrow][\USymbChar{33}{150}] % NORTH WEST ARROW
- \definesymbol[NorthEastArrow][\USymbChar{33}{151}] % NORTH EAST ARROW
- \definesymbol[SouthEastArrow][\USymbChar{33}{152}] % SOUTH EAST ARROW
- \definesymbol[SouthWestArrow][\USymbChar{33}{153}] % SOUTH WEST ARROW
- \definesymbol[LeftwardsArrowWithStroke][\USymbChar{33}{154}] % LEFTWARDS ARROW WITH STROKE
- \definesymbol[RightwardsArrowWithStroke][\USymbChar{33}{155}] % RIGHTWARDS ARROW WITH STROKE
- \definesymbol[LeftwardsWaveArrow][\USymbChar{33}{156}] % LEFTWARDS WAVE ARROW
- \definesymbol[RightwardsWaveArrow][\USymbChar{33}{157}] % RIGHTWARDS WAVE ARROW
- \definesymbol[LeftwardsTwoHeadedArrow][\USymbChar{33}{158}] % LEFTWARDS TWO HEADED ARROW
- \definesymbol[UpwardsTwoHeadedArrow][\USymbChar{33}{159}] % UPWARDS TWO HEADED ARROW
- \definesymbol[RightwardsTwoHeadedArrow][\USymbChar{33}{160}] % RIGHTWARDS TWO HEADED ARROW
- \definesymbol[DownwardsTwoHeadedArrow][\USymbChar{33}{161}] % DOWNWARDS TWO HEADED ARROW
- \definesymbol[LeftwardsArrowWithTail][\USymbChar{33}{162}] % LEFTWARDS ARROW WITH TAIL
- \definesymbol[RightwardsArrowWithTail][\USymbChar{33}{163}] % RIGHTWARDS ARROW WITH TAIL
- \definesymbol[LeftwardsArrowFromBar][\USymbChar{33}{164}] % LEFTWARDS ARROW FROM BAR
- \definesymbol[UpwardsArrowFromBar][\USymbChar{33}{165}] % UPWARDS ARROW FROM BAR
- \definesymbol[RightwardsArrowFromBar][\USymbChar{33}{166}] % RIGHTWARDS ARROW FROM BAR
- \definesymbol[DownwardsArrowFromBar][\USymbChar{33}{167}] % DOWNWARDS ARROW FROM BAR
- \definesymbol[UpDownArrowWithBase][\USymbChar{33}{168}] % UP DOWN ARROW WITH BASE
- \definesymbol[LeftwardsArrowWithHook][\USymbChar{33}{169}] % LEFTWARDS ARROW WITH HOOK
- \definesymbol[RightwardsArrowWithHook][\USymbChar{33}{170}] % RIGHTWARDS ARROW WITH HOOK
- \definesymbol[LeftwardsArrowWithLoop][\USymbChar{33}{171}] % LEFTWARDS ARROW WITH LOOP
- \definesymbol[RightwardsArrowWithLoop][\USymbChar{33}{172}] % RIGHTWARDS ARROW WITH LOOP
- \definesymbol[LeftRightWaveArrow][\USymbChar{33}{173}] % LEFT RIGHT WAVE ARROW
- \definesymbol[LeftRightArrowWithStroke][\USymbChar{33}{174}] % LEFT RIGHT ARROW WITH STROKE
- \definesymbol[DownwardsZigzagArrow][\USymbChar{33}{175}] % DOWNWARDS ZIGZAG ARROW
- \definesymbol[UpwardsArrowWithTipLeftwards][\USymbChar{33}{176}] % UPWARDS ARROW WITH TIP LEFTWARDS
- \definesymbol[UpwardsArrowWithTipRightwards][\USymbChar{33}{177}] % UPWARDS ARROW WITH TIP RIGHTWARDS
- \definesymbol[DownwardsArrowWithTipLeftwards][\USymbChar{33}{178}] % DOWNWARDS ARROW WITH TIP LEFTWARDS
- \definesymbol[DownwardsArrowWithTipRightwards][\USymbChar{33}{179}] % DOWNWARDS ARROW WITH TIP RIGHTWARDS
- \definesymbol[RightwardsArrowWithCornerDownwards][\USymbChar{33}{180}] % RIGHTWARDS ARROW WITH CORNER DOWNWARDS
- \definesymbol[DownwardsArrowWithCornerLeftwards][\USymbChar{33}{181}] % DOWNWARDS ARROW WITH CORNER LEFTWARDS
- \definesymbol[AnticlockwiseTopSemicircleArrow][\USymbChar{33}{182}] % ANTICLOCKWISE TOP SEMICIRCLE ARROW
- \definesymbol[ClockwiseTopSemicircleArrow][\USymbChar{33}{183}] % CLOCKWISE TOP SEMICIRCLE ARROW
- \definesymbol[NorthWestArrowToLongBar][\USymbChar{33}{184}] % NORTH WEST ARROW TO LONG BAR
- \definesymbol[AnticlockwiseOpenCircleArrow][\USymbChar{33}{186}] % ANTICLOCKWISE OPEN CIRCLE ARROW
- \definesymbol[ClockwiseOpenCircleArrow][\USymbChar{33}{187}] % CLOCKWISE OPEN CIRCLE ARROW
- \definesymbol[LeftwardsHarpoonWithBarbUpwards][\USymbChar{33}{188}] % LEFTWARDS HARPOON WITH BARB UPWARDS
- \definesymbol[LeftwardsHarpoonWithBarbDownwards][\USymbChar{33}{189}] % LEFTWARDS HARPOON WITH BARB DOWNWARDS
- \definesymbol[UpwardsHarpoonWithBarbRightwards][\USymbChar{33}{190}] % UPWARDS HARPOON WITH BARB RIGHTWARDS
- \definesymbol[UpwardsHarpoonWithBarbLeftwards][\USymbChar{33}{191}] % UPWARDS HARPOON WITH BARB LEFTWARDS
- \definesymbol[RightwardsHarpoonWithBarbUpwards][\USymbChar{33}{192}] % RIGHTWARDS HARPOON WITH BARB UPWARDS
- \definesymbol[RightwardsHarpoonWithBarbDownwards][\USymbChar{33}{193}] % RIGHTWARDS HARPOON WITH BARB DOWNWARDS
- \definesymbol[DownwardsHarpoonWithBarbRightwards][\USymbChar{33}{194}] % DOWNWARDS HARPOON WITH BARB RIGHTWARDS
- \definesymbol[DownwardsHarpoonWithBarbLeftwards][\USymbChar{33}{195}] % DOWNWARDS HARPOON WITH BARB LEFTWARDS
- \definesymbol[LeftwardsSquiggleArrow][\USymbChar{33}{220}] % LEFTWARDS SQUIGGLE ARROW
- \definesymbol[RightwardsSquiggleArrow][\USymbChar{33}{221}] % RIGHTWARDS SQUIGGLE ARROW
- \definesymbol[UpwardsArrowWithDoubleStroke][\USymbChar{33}{222}] % UPWARDS ARROW WITH DOUBLE STROKE
- \definesymbol[DownwardsArrowWithDoubleStroke][\USymbChar{33}{223}] % DOWNWARDS ARROW WITH DOUBLE STROKE
- \definesymbol[LeftwardsDashedArrow][\USymbChar{33}{224}] % LEFTWARDS DASHED ARROW
- \definesymbol[UpwardsDashedArrow][\USymbChar{33}{225}] % UPWARDS DASHED ARROW
- \definesymbol[RightwardsDashedArrow][\USymbChar{33}{226}] % RIGHTWARDS DASHED ARROW
- \definesymbol[DownwardsDashedArrow][\USymbChar{33}{227}] % DOWNWARDS DASHED ARROW
- \definesymbol[LeftwardsArrowToBar][\USymbChar{33}{228}] % LEFTWARDS ARROW TO BAR
- \definesymbol[RightwardsArrowToBar][\USymbChar{33}{229}] % RIGHTWARDS ARROW TO BAR
- \definesymbol[LeftwardsWhiteArrow][\USymbChar{33}{230}] % LEFTWARDS WHITE ARROW
- \definesymbol[UpwardsWhiteArrow][\USymbChar{33}{231}] % UPWARDS WHITE ARROW
- \definesymbol[RightwardsWhiteArrow][\USymbChar{33}{232}] % RIGHTWARDS WHITE ARROW
- \definesymbol[DownwardsWhiteArrow][\USymbChar{33}{233}] % DOWNWARDS WHITE ARROW
- \definesymbol[UpwardsWhiteArrowFromBar][\USymbChar{33}{234}] % UPWARDS WHITE ARROW FROM BAR
- \definesymbol[UpwardsWhiteArrowOnPedestal][\USymbChar{33}{235}] % UPWARDS WHITE ARROW ON PEDESTAL
- \definesymbol[UpwardsWhiteArrowOnPedestalWithHorizontalBar][\USymbChar{33}{236}] % UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
- \definesymbol[UpwardsWhiteArrowOnPedestalWithVerticalBar][\USymbChar{33}{237}] % UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
- \definesymbol[RightwardsWhiteArrowFromWall][\USymbChar{33}{240}] % RIGHTWARDS WHITE ARROW FROM WALL
- \definesymbol[NorthWestArrowToCorner][\USymbChar{33}{241}] % NORTH WEST ARROW TO CORNER
- \definesymbol[SouthEastArrowToCorner][\USymbChar{33}{242}] % SOUTH EAST ARROW TO CORNER
- \definesymbol[UpDownWhiteArrow][\USymbChar{33}{243}] % UP DOWN WHITE ARROW
-
-\stopsymbolset
-
-\startsymbolset[Unicode Multi Arrows] % 0x2190: Requires UnicodeRegular21
-
- \definesymbol[LeftwardsArrowToBarOverRightwardsArrowToBar][\USymbChar{33}{185}] % LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
- \definesymbol[RightwardsArrowOverLeftwardsArrow][\USymbChar{33}{196}] % RIGHTWARDS ARROW OVER LEFTWARDS ARROW
- \definesymbol[UpwardsArrowLeftwardsOfDownwardsArrow][\USymbChar{33}{197}] % UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
- \definesymbol[LeftwardsArrowOverRightwardsArrow][\USymbChar{33}{198}] % LEFTWARDS ARROW OVER RIGHTWARDS ARROW
- \definesymbol[LeftwardsPairedArrows][\USymbChar{33}{199}] % LEFTWARDS PAIRED ARROWS
- \definesymbol[UpwardsPairedArrows][\USymbChar{33}{200}] % UPWARDS PAIRED ARROWS
- \definesymbol[RightwardsPairedArrows][\USymbChar{33}{201}] % RIGHTWARDS PAIRED ARROWS
- \definesymbol[DownwardsPairedArrows][\USymbChar{33}{202}] % DOWNWARDS PAIRED ARROWS
- \definesymbol[LeftwardsHarpoonOverRightwardsHarpoon][\USymbChar{33}{203}] % LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
- \definesymbol[RightwardsHarpoonOverLeftwardsHarpoon][\USymbChar{33}{204}] % RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
- \definesymbol[LeftwardsDoubleArrowWithStroke][\USymbChar{33}{205}] % LEFTWARDS DOUBLE ARROW WITH STROKE
- \definesymbol[LeftRightDoubleArrowWithStroke][\USymbChar{33}{206}] % LEFT RIGHT DOUBLE ARROW WITH STROKE
- \definesymbol[RightwardsDoubleArrowWithStroke][\USymbChar{33}{207}] % RIGHTWARDS DOUBLE ARROW WITH STROKE
- \definesymbol[LeftwardsDoubleArrow][\USymbChar{33}{208}] % LEFTWARDS DOUBLE ARROW
- \definesymbol[UpwardsDoubleArrow][\USymbChar{33}{209}] % UPWARDS DOUBLE ARROW
- \definesymbol[RightwardsDoubleArrow][\USymbChar{33}{210}] % RIGHTWARDS DOUBLE ARROW
- \definesymbol[DownwardsDoubleArrow][\USymbChar{33}{211}] % DOWNWARDS DOUBLE ARROW
- \definesymbol[LeftRightDoubleArrow][\USymbChar{33}{212}] % LEFT RIGHT DOUBLE ARROW
- \definesymbol[UpDownDoubleArrow][\USymbChar{33}{213}] % UP DOWN DOUBLE ARROW
- \definesymbol[NorthWestDoubleArrow][\USymbChar{33}{214}] % NORTH WEST DOUBLE ARROW
- \definesymbol[NorthEastDoubleArrow][\USymbChar{33}{215}] % NORTH EAST DOUBLE ARROW
- \definesymbol[SouthEastDoubleArrow][\USymbChar{33}{216}] % SOUTH EAST DOUBLE ARROW
- \definesymbol[SouthWestDoubleArrow][\USymbChar{33}{217}] % SOUTH WEST DOUBLE ARROW
- \definesymbol[LeftwardsTripleArrow][\USymbChar{33}{218}] % LEFTWARDS TRIPLE ARROW
- \definesymbol[RightwardsTripleArrow][\USymbChar{33}{219}] % RIGHTWARDS TRIPLE ARROW
- \definesymbol[UpwardsWhiteDoubleArrow][\USymbChar{33}{238}] % UPWARDS WHITE DOUBLE ARROW
- \definesymbol[UpwardsWhiteDoubleArrowOnPedestal][\USymbChar{33}{239}] % UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
-
-\stopsymbolset
-
-
-\startsymbolset[Unicode Optical Character Recognition] % 0x2440: Requires UnicodeRegular24
-
- \definesymbol[OcrHook][\USymbChar{36}{64}] % OCR HOOK
- \definesymbol[OcrChair][\USymbChar{36}{65}] % OCR CHAIR
- \definesymbol[OcrFork][\USymbChar{36}{66}] % OCR FORK
- \definesymbol[OcrInvertedFork][\USymbChar{36}{67}] % OCR INVERTED FORK
- \definesymbol[OcrBeltBuckle][\USymbChar{36}{68}] % OCR BELT BUCKLE
- \definesymbol[OcrBowTie][\USymbChar{36}{69}] % OCR BOW TIE
- \definesymbol[OcrBranchBankIdentification][\USymbChar{36}{70}] % OCR BRANCH BANK IDENTIFICATION
- \definesymbol[OcrAmountOfCheck][\USymbChar{36}{71}] % OCR AMOUNT OF CHECK
- \definesymbol[OcrDash][\USymbChar{36}{72}] % OCR DASH
- \definesymbol[OcrCustomerAccountNumber][\USymbChar{36}{73}] % OCR CUSTOMER ACCOUNT NUMBER
- \definesymbol[OcrDoubleBackslash][\USymbChar{36}{74}] % OCR DOUBLE BACKSLASH
-
-\stopsymbolset
-
-
-\startsymbolset[Unicode Box Drawing] % 0x2500: Requires UnicodeRegular25
-
- \definesymbol[LightHorizontal][\USymbChar{37}{0}] % BOX DRAWINGS LIGHT HORIZONTAL
- \definesymbol[HeavyHorizontal][\USymbChar{37}{1}] % BOX DRAWINGS HEAVY HORIZONTAL
- \definesymbol[LightVertical][\USymbChar{37}{2}] % BOX DRAWINGS LIGHT VERTICAL
- \definesymbol[HeavyVertical][\USymbChar{37}{3}] % BOX DRAWINGS HEAVY VERTICAL
- \definesymbol[LightTripleDashHorizontal][\USymbChar{37}{4}] % BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
- \definesymbol[HeavyTripleDashHorizontal][\USymbChar{37}{5}] % BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
- \definesymbol[LightTripleDashVertical][\USymbChar{37}{6}] % BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
- \definesymbol[HeavyTripleDashVertical][\USymbChar{37}{7}] % BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
- \definesymbol[LightQuadrupleDashHorizontal][\USymbChar{37}{8}] % BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
- \definesymbol[HeavyQuadrupleDashHorizontal][\USymbChar{37}{9}] % BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
- \definesymbol[LightQuadrupleDashVertical][\USymbChar{37}{10}] % BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
- \definesymbol[HeavyQuadrupleDashVertical][\USymbChar{37}{11}] % BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
- \definesymbol[LightDownAndRight][\USymbChar{37}{12}] % BOX DRAWINGS LIGHT DOWN AND RIGHT
- \definesymbol[DownLightAndRightHeavy][\USymbChar{37}{13}] % BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
- \definesymbol[DownHeavyAndRightLight][\USymbChar{37}{14}] % BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
- \definesymbol[HeavyDownAndRight][\USymbChar{37}{15}] % BOX DRAWINGS HEAVY DOWN AND RIGHT
- \definesymbol[LightDownAndLeft][\USymbChar{37}{16}] % BOX DRAWINGS LIGHT DOWN AND LEFT
- \definesymbol[DownLightAndLeftHeavy][\USymbChar{37}{17}] % BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
- \definesymbol[DownHeavyAndLeftLight][\USymbChar{37}{18}] % BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
- \definesymbol[HeavyDownAndLeft][\USymbChar{37}{19}] % BOX DRAWINGS HEAVY DOWN AND LEFT
- \definesymbol[LightUpAndRight][\USymbChar{37}{20}] % BOX DRAWINGS LIGHT UP AND RIGHT
- \definesymbol[UpLightAndRightHeavy][\USymbChar{37}{21}] % BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
- \definesymbol[UpHeavyAndRightLight][\USymbChar{37}{22}] % BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
- \definesymbol[HeavyUpAndRight][\USymbChar{37}{23}] % BOX DRAWINGS HEAVY UP AND RIGHT
- \definesymbol[LightUpAndLeft][\USymbChar{37}{24}] % BOX DRAWINGS LIGHT UP AND LEFT
- \definesymbol[UpLightAndLeftHeavy][\USymbChar{37}{25}] % BOX DRAWINGS UP LIGHT AND LEFT HEAVY
- \definesymbol[UpHeavyAndLeftLight][\USymbChar{37}{26}] % BOX DRAWINGS UP HEAVY AND LEFT LIGHT
- \definesymbol[HeavyUpAndLeft][\USymbChar{37}{27}] % BOX DRAWINGS HEAVY UP AND LEFT
- \definesymbol[LightVerticalAndRight][\USymbChar{37}{28}] % BOX DRAWINGS LIGHT VERTICAL AND RIGHT
- \definesymbol[VerticalLightAndRightHeavy][\USymbChar{37}{29}] % BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
- \definesymbol[UpHeavyAndRightDownLight][\USymbChar{37}{30}] % BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
- \definesymbol[DownHeavyAndRightUpLight][\USymbChar{37}{31}] % BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
- \definesymbol[VerticalHeavyAndRightLight][\USymbChar{37}{32}] % BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
- \definesymbol[DownLightAndRightUpHeavy][\USymbChar{37}{33}] % BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
- \definesymbol[UpLightAndRightDownHeavy][\USymbChar{37}{34}] % BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
- \definesymbol[HeavyVerticalAndRight][\USymbChar{37}{35}] % BOX DRAWINGS HEAVY VERTICAL AND RIGHT
- \definesymbol[LightVerticalAndLeft][\USymbChar{37}{36}] % BOX DRAWINGS LIGHT VERTICAL AND LEFT
- \definesymbol[VerticalLightAndLeftHeavy][\USymbChar{37}{37}] % BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
- \definesymbol[UpHeavyAndLeftDownLight][\USymbChar{37}{38}] % BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
- \definesymbol[DownHeavyAndLeftUpLight][\USymbChar{37}{39}] % BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
- \definesymbol[VerticalHeavyAndLeftLight][\USymbChar{37}{40}] % BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
- \definesymbol[DownLightAndLeftUpHeavy][\USymbChar{37}{41}] % BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
- \definesymbol[UpLightAndLeftDownHeavy][\USymbChar{37}{42}] % BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
- \definesymbol[HeavyVerticalAndLeft][\USymbChar{37}{43}] % BOX DRAWINGS HEAVY VERTICAL AND LEFT
- \definesymbol[LightDownAndHorizontal][\USymbChar{37}{44}] % BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
- \definesymbol[LeftHeavyAndRightDownLight][\USymbChar{37}{45}] % BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
- \definesymbol[RightHeavyAndLeftDownLight][\USymbChar{37}{46}] % BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
- \definesymbol[DownLightAndHorizontalHeavy][\USymbChar{37}{47}] % BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
- \definesymbol[DownHeavyAndHorizontalLight][\USymbChar{37}{48}] % BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
- \definesymbol[RightLightAndLeftDownHeavy][\USymbChar{37}{49}] % BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
- \definesymbol[LeftLightAndRightDownHeavy][\USymbChar{37}{50}] % BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
- \definesymbol[HeavyDownAndHorizontal][\USymbChar{37}{51}] % BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
- \definesymbol[LightUpAndHorizontal][\USymbChar{37}{52}] % BOX DRAWINGS LIGHT UP AND HORIZONTAL
- \definesymbol[LeftHeavyAndRightUpLight][\USymbChar{37}{53}] % BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
- \definesymbol[RightHeavyAndLeftUpLight][\USymbChar{37}{54}] % BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
- \definesymbol[UpLightAndHorizontalHeavy][\USymbChar{37}{55}] % BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
- \definesymbol[UpHeavyAndHorizontalLight][\USymbChar{37}{56}] % BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
- \definesymbol[RightLightAndLeftUpHeavy][\USymbChar{37}{57}] % BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
- \definesymbol[LeftLightAndRightUpHeavy][\USymbChar{37}{58}] % BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
- \definesymbol[HeavyUpAndHorizontal][\USymbChar{37}{59}] % BOX DRAWINGS HEAVY UP AND HORIZONTAL
- \definesymbol[LightVerticalAndHorizontal][\USymbChar{37}{60}] % BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
- \definesymbol[LeftHeavyAndRightVerticalLight][\USymbChar{37}{61}] % BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
- \definesymbol[RightHeavyAndLeftVerticalLight][\USymbChar{37}{62}] % BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
- \definesymbol[VerticalLightAndHorizontalHeavy][\USymbChar{37}{63}] % BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
- \definesymbol[UpHeavyAndDownHorizontalLight][\USymbChar{37}{64}] % BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
- \definesymbol[DownHeavyAndUpHorizontalLight][\USymbChar{37}{65}] % BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
- \definesymbol[VerticalHeavyAndHorizontalLight][\USymbChar{37}{66}] % BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
- \definesymbol[LeftUpHeavyAndRightDownLight][\USymbChar{37}{67}] % BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
- \definesymbol[RightUpHeavyAndLeftDownLight][\USymbChar{37}{68}] % BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
- \definesymbol[LeftDownHeavyAndRightUpLight][\USymbChar{37}{69}] % BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
- \definesymbol[RightDownHeavyAndLeftUpLight][\USymbChar{37}{70}] % BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
- \definesymbol[DownLightAndUpHorizontalHeavy][\USymbChar{37}{71}] % BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
- \definesymbol[UpLightAndDownHorizontalHeavy][\USymbChar{37}{72}] % BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
- \definesymbol[RightLightAndLeftVerticalHeavy][\USymbChar{37}{73}] % BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
- \definesymbol[LeftLightAndRightVerticalHeavy][\USymbChar{37}{74}] % BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
- \definesymbol[HeavyVerticalAndHorizontal][\USymbChar{37}{75}] % BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
- \definesymbol[LightArcDownAndRight][\USymbChar{37}{109}] % BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
- \definesymbol[LightArcDownAndLeft][\USymbChar{37}{110}] % BOX DRAWINGS LIGHT ARC DOWN AND LEFT
- \definesymbol[LightArcUpAndLeft][\USymbChar{37}{111}] % BOX DRAWINGS LIGHT ARC UP AND LEFT
- \definesymbol[LightArcUpAndRight][\USymbChar{37}{112}] % BOX DRAWINGS LIGHT ARC UP AND RIGHT
- \definesymbol[LightDiagonalUpperRightToLowerLeft][\USymbChar{37}{113}] % BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
- \definesymbol[LightDiagonalUpperLeftToLowerRight][\USymbChar{37}{114}] % BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
- \definesymbol[LightDiagonalCross][\USymbChar{37}{115}] % BOX DRAWINGS LIGHT DIAGONAL CROSS
- \definesymbol[LightLeft][\USymbChar{37}{116}] % BOX DRAWINGS LIGHT LEFT
- \definesymbol[LightUp][\USymbChar{37}{117}] % BOX DRAWINGS LIGHT UP
- \definesymbol[LightRight][\USymbChar{37}{118}] % BOX DRAWINGS LIGHT RIGHT
- \definesymbol[LightDown][\USymbChar{37}{119}] % BOX DRAWINGS LIGHT DOWN
- \definesymbol[HeavyLeft][\USymbChar{37}{120}] % BOX DRAWINGS HEAVY LEFT
- \definesymbol[HeavyUp][\USymbChar{37}{121}] % BOX DRAWINGS HEAVY UP
- \definesymbol[HeavyRight][\USymbChar{37}{122}] % BOX DRAWINGS HEAVY RIGHT
- \definesymbol[HeavyDown][\USymbChar{37}{123}] % BOX DRAWINGS HEAVY DOWN
- \definesymbol[LightLeftAndHeavyRight][\USymbChar{37}{124}] % BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT
- \definesymbol[LightUpAndHeavyDown][\USymbChar{37}{125}] % BOX DRAWINGS LIGHT UP AND HEAVY DOWN
- \definesymbol[HeavyLeftAndLightRight][\USymbChar{37}{126}] % BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT
- \definesymbol[HeavyUpAndLightDown][\USymbChar{37}{127}] % BOX DRAWINGS HEAVY UP AND LIGHT DOWN
-
-\stopsymbolset
-
-\startsymbolset[Unicode Circled Digits] % 0x2460: Requires UnicodeRegular24
-
- \definesymbol[CircledOne][\USymbCharZapf{36}{96}] % CIRCLED DIGIT ONE
- \definesymbol[CircledTwo][\USymbCharZapf{36}{97}] % CIRCLED DIGIT TWO
- \definesymbol[CircledThree][\USymbCharZapf{36}{98}] % CIRCLED DIGIT THREE
- \definesymbol[CircledFour][\USymbCharZapf{36}{99}] % CIRCLED DIGIT FOUR
- \definesymbol[CircledFive][\USymbCharZapf{36}{100}] % CIRCLED DIGIT FIVE
- \definesymbol[CircledSix][\USymbCharZapf{36}{101}] % CIRCLED DIGIT SIX
- \definesymbol[CircledSeven][\USymbCharZapf{36}{102}] % CIRCLED DIGIT SEVEN
- \definesymbol[CircledEight][\USymbCharZapf{36}{103}] % CIRCLED DIGIT EIGHT
- \definesymbol[CircledNine][\USymbCharZapf{36}{104}] % CIRCLED DIGIT NINE
- \definesymbol[CircledTen][\USymbCharZapf{36}{105}] % CIRCLED NUMBER TEN
-
-\stopsymbolset
-
-\startsymbolset[Unicode Double Box Drawing] % 0x2500: Requires UnicodeRegular25
-
- \definesymbol[LightDoubleDashHorizontal][\USymbChar{37}{76}] % BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL
- \definesymbol[HeavyDoubleDashHorizontal][\USymbChar{37}{77}] % BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL
- \definesymbol[LightDoubleDashVertical][\USymbChar{37}{78}] % BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL
- \definesymbol[HeavyDoubleDashVertical][\USymbChar{37}{79}] % BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
- \definesymbol[DoubleHorizontal][\USymbChar{37}{80}] % BOX DRAWINGS DOUBLE HORIZONTAL
- \definesymbol[DoubleVertical][\USymbChar{37}{81}] % BOX DRAWINGS DOUBLE VERTICAL
- \definesymbol[DownSingleAndRightDouble][\USymbChar{37}{82}] % BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
- \definesymbol[DownDoubleAndRightSingle][\USymbChar{37}{83}] % BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
- \definesymbol[DoubleDownAndRight][\USymbChar{37}{84}] % BOX DRAWINGS DOUBLE DOWN AND RIGHT
- \definesymbol[DownSingleAndLeftDouble][\USymbChar{37}{85}] % BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
- \definesymbol[DownDoubleAndLeftSingle][\USymbChar{37}{86}] % BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
- \definesymbol[DoubleDownAndLeft][\USymbChar{37}{87}] % BOX DRAWINGS DOUBLE DOWN AND LEFT
- \definesymbol[UpSingleAndRightDouble][\USymbChar{37}{88}] % BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
- \definesymbol[UpDoubleAndRightSingle][\USymbChar{37}{89}] % BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
- \definesymbol[DoubleUpAndRight][\USymbChar{37}{90}] % BOX DRAWINGS DOUBLE UP AND RIGHT
- \definesymbol[UpSingleAndLeftDouble][\USymbChar{37}{91}] % BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
- \definesymbol[UpDoubleAndLeftSingle][\USymbChar{37}{92}] % BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
- \definesymbol[DoubleUpAndLeft][\USymbChar{37}{93}] % BOX DRAWINGS DOUBLE UP AND LEFT
- \definesymbol[VerticalSingleAndRightDouble][\USymbChar{37}{94}] % BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
- \definesymbol[VerticalDoubleAndRightSingle][\USymbChar{37}{95}] % BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
- \definesymbol[DoubleVerticalAndRight][\USymbChar{37}{96}] % BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
- \definesymbol[VerticalSingleAndLeftDouble][\USymbChar{37}{97}] % BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
- \definesymbol[VerticalDoubleAndLeftSingle][\USymbChar{37}{98}] % BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
- \definesymbol[DoubleVerticalAndLeft][\USymbChar{37}{99}] % BOX DRAWINGS DOUBLE VERTICAL AND LEFT
- \definesymbol[DownSingleAndHorizontalDouble][\USymbChar{37}{100}] % BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
- \definesymbol[DownDoubleAndHorizontalSingle][\USymbChar{37}{101}] % BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
- \definesymbol[DoubleDownAndHorizontal][\USymbChar{37}{102}] % BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
- \definesymbol[UpSingleAndHorizontalDouble][\USymbChar{37}{103}] % BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
- \definesymbol[UpDoubleAndHorizontalSingle][\USymbChar{37}{104}] % BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
- \definesymbol[DoubleUpAndHorizontal][\USymbChar{37}{105}] % BOX DRAWINGS DOUBLE UP AND HORIZONTAL
- \definesymbol[VerticalSingleAndHorizontalDouble][\USymbChar{37}{106}] % BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
- \definesymbol[VerticalDoubleAndHorizontalSingle][\USymbChar{37}{107}] % BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
- \definesymbol[DoubleVerticalAndHorizontal][\USymbChar{37}{108}] % BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-
-\stopsymbolset
-
-\startsymbolset[Unicode Block Elements] % 0x2580: Requires UnicodeRegular25
-
- \definesymbol[UpperHalfBlock][\USymbChar{37}{128}] % UPPER HALF BLOCK
- \definesymbol[LowerOneEighthBlock][\USymbChar{37}{129}] % LOWER ONE EIGHTH BLOCK
- \definesymbol[LowerOneQuarterBlock][\USymbChar{37}{130}] % LOWER ONE QUARTER BLOCK
- \definesymbol[LowerThreeEighthsBlock][\USymbChar{37}{131}] % LOWER THREE EIGHTHS BLOCK
- \definesymbol[LowerHalfBlock][\USymbChar{37}{132}] % LOWER HALF BLOCK
- \definesymbol[LowerFiveEighthsBlock][\USymbChar{37}{133}] % LOWER FIVE EIGHTHS BLOCK
- \definesymbol[LowerThreeQuartersBlock][\USymbChar{37}{134}] % LOWER THREE QUARTERS BLOCK
- \definesymbol[LowerSevenEighthsBlock][\USymbChar{37}{135}] % LOWER SEVEN EIGHTHS BLOCK
- \definesymbol[FullBlock][\USymbChar{37}{136}] % FULL BLOCK
- \definesymbol[LeftSevenEighthsBlock][\USymbChar{37}{137}] % LEFT SEVEN EIGHTHS BLOCK
- \definesymbol[LeftThreeQuartersBlock][\USymbChar{37}{138}] % LEFT THREE QUARTERS BLOCK
- \definesymbol[LeftFiveEighthsBlock][\USymbChar{37}{139}] % LEFT FIVE EIGHTHS BLOCK
- \definesymbol[LeftHalfBlock][\USymbChar{37}{140}] % LEFT HALF BLOCK
- \definesymbol[LeftThreeEighthsBlock][\USymbChar{37}{141}] % LEFT THREE EIGHTHS BLOCK
- \definesymbol[LeftOneQuarterBlock][\USymbChar{37}{142}] % LEFT ONE QUARTER BLOCK
- \definesymbol[LeftOneEighthBlock][\USymbChar{37}{143}] % LEFT ONE EIGHTH BLOCK
- \definesymbol[RightHalfBlock][\USymbChar{37}{144}] % RIGHT HALF BLOCK
- \definesymbol[UpperOneEighthBlock][\USymbChar{37}{148}] % UPPER ONE EIGHTH BLOCK
- \definesymbol[RightOneEighthBlock][\USymbChar{37}{149}] % RIGHT ONE EIGHTH BLOCK
-
-\stopsymbolset
-
-\startsymbolset[Unicode Shade Characters] % 0x2580: Requires UnicodeRegular25
-
- \definesymbol[LightShade][\USymbChar{37}{145}] % LIGHT SHADE
- \definesymbol[MediumShade][\USymbChar{37}{146}] % MEDIUM SHADE
- \definesymbol[DarkShade][\USymbChar{37}{147}] % DARK SHADE
-
-\stopsymbolset
-
-\startsymbolset[Unicode Terminal Graphics] % 0x2580: Requires UnicodeRegular25
-
- \definesymbol[QuadrantLowerLeft][\USymbChar{37}{150}] % [Unassigned U+2596]
- \definesymbol[QuadrantLowerRight][\USymbChar{37}{151}] % [Unassigned U+2597]
- \definesymbol[QuadrantUpperLeft][\USymbChar{37}{152}] % [Unassigned U+2598]
- \definesymbol[QuadrantUpperLeftAndLowerLeftAndLowerRight][\USymbChar{37}{153}] % [Unassigned U+2599]
- \definesymbol[QuadrantUpperLeftAndLowerRight][\USymbChar{37}{154}] % [Unassigned U+259A]
- \definesymbol[QuadrantUpperLeftAndUpperRightandLowerLeft][\USymbChar{37}{155}] % [Unassigned U+259B]
- \definesymbol[QuadrantUpperLeftAndUpperRightAndLowerRight][\USymbChar{37}{156}] % [Unassigned U+259C]
- \definesymbol[QuadrantUpperRight][\USymbChar{37}{157}] % [Unassigned U+259D]
- \definesymbol[QuadrantUpperRightAndLowerLeft][\USymbChar{37}{158}] % [Unassigned U+259E]
- \definesymbol[QuadrantUpperRightAndLowerLeftAndLowerRight][\USymbChar{37}{159}] % [Unassigned U+259F]
-
-\stopsymbolset
-
-\startsymbolset[Unicode Geometric Shapes] % 0x25A0: Requires UnicodeRegular25
-
- \definesymbol[BlackSquare][\USymbChar{37}{160}] % BLACK SQUARE
- \definesymbol[WhiteSquare][\USymbChar{37}{161}] % WHITE SQUARE
- \definesymbol[WhiteSquareWithRoundedCorners][\USymbChar{37}{162}] % WHITE SQUARE WITH ROUNDED CORNERS
- \definesymbol[WhiteSquareContainingBlackSmallSquare][\USymbChar{37}{163}] % WHITE SQUARE CONTAINING BLACK SMALL SQUARE
- \definesymbol[SquareWithHorizontalFill][\USymbChar{37}{164}] % SQUARE WITH HORIZONTAL FILL
- \definesymbol[SquareWithVerticalFill][\USymbChar{37}{165}] % SQUARE WITH VERTICAL FILL
- \definesymbol[SquareWithOrthogonalCrosshatchFill][\USymbChar{37}{166}] % SQUARE WITH ORTHOGONAL CROSSHATCH FILL
- \definesymbol[SquareWithUpperLeftToLowerRightFill][\USymbChar{37}{167}] % SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
- \definesymbol[SquareWithUpperRightToLowerLeftFill][\USymbChar{37}{168}] % SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
- \definesymbol[SquareWithDiagonalCrosshatchFill][\USymbChar{37}{169}] % SQUARE WITH DIAGONAL CROSSHATCH FILL
- \definesymbol[BlackSmallSquare][\USymbChar{37}{170}] % BLACK SMALL SQUARE
- \definesymbol[WhiteSmallSquare][\USymbChar{37}{171}] % WHITE SMALL SQUARE
- \definesymbol[BlackRectangle][\USymbChar{37}{172}] % BLACK RECTANGLE
- \definesymbol[WhiteRectangle][\USymbChar{37}{173}] % WHITE RECTANGLE
- \definesymbol[BlackVerticalRectangle][\USymbChar{37}{174}] % BLACK VERTICAL RECTANGLE
- \definesymbol[WhiteVerticalRectangle][\USymbChar{37}{175}] % WHITE VERTICAL RECTANGLE
- \definesymbol[BlackParallelogram][\USymbChar{37}{176}] % BLACK PARALLELOGRAM
- \definesymbol[WhiteParallelogram][\USymbChar{37}{177}] % WHITE PARALLELOGRAM
- \definesymbol[BlackUpPointingTriangle][\USymbChar{37}{178}] % BLACK UP-POINTING TRIANGLE
- \definesymbol[WhiteUpPointingTriangle][\USymbChar{37}{179}] % WHITE UP-POINTING TRIANGLE
- \definesymbol[BlackUpPointingSmallTriangle][\USymbChar{37}{180}] % BLACK UP-POINTING SMALL TRIANGLE
- \definesymbol[WhiteUpPointingSmallTriangle][\USymbChar{37}{181}] % WHITE UP-POINTING SMALL TRIANGLE
- \definesymbol[BlackRightPointingTriangle][\USymbChar{37}{182}] % BLACK RIGHT-POINTING TRIANGLE
- \definesymbol[WhiteRightPointingTriangle][\USymbChar{37}{183}] % WHITE RIGHT-POINTING TRIANGLE
- \definesymbol[BlackRightPointingSmallTriangle][\USymbChar{37}{184}] % BLACK RIGHT-POINTING SMALL TRIANGLE
- \definesymbol[WhiteRightPointingSmallTriangle][\USymbChar{37}{185}] % WHITE RIGHT-POINTING SMALL TRIANGLE
- \definesymbol[BlackRightPointingPointer][\USymbChar{37}{186}] % BLACK RIGHT-POINTING POINTER
- \definesymbol[WhiteRightPointingPointer][\USymbChar{37}{187}] % WHITE RIGHT-POINTING POINTER
- \definesymbol[BlackDownPointingTriangle][\USymbChar{37}{188}] % BLACK DOWN-POINTING TRIANGLE
- \definesymbol[WhiteDownPointingTriangle][\USymbChar{37}{189}] % WHITE DOWN-POINTING TRIANGLE
- \definesymbol[BlackDownPointingSmallTriangle][\USymbChar{37}{190}] % BLACK DOWN-POINTING SMALL TRIANGLE
- \definesymbol[WhiteDownPointingSmallTriangle][\USymbChar{37}{191}] % WHITE DOWN-POINTING SMALL TRIANGLE
- \definesymbol[BlackLeftPointingTriangle][\USymbChar{37}{192}] % BLACK LEFT-POINTING TRIANGLE
- \definesymbol[WhiteLeftPointingTriangle][\USymbChar{37}{193}] % WHITE LEFT-POINTING TRIANGLE
- \definesymbol[BlackLeftPointingSmallTriangle][\USymbChar{37}{194}] % BLACK LEFT-POINTING SMALL TRIANGLE
- \definesymbol[WhiteLeftPointingSmallTriangle][\USymbChar{37}{195}] % WHITE LEFT-POINTING SMALL TRIANGLE
- \definesymbol[BlackLeftPointingPointer][\USymbChar{37}{196}] % BLACK LEFT-POINTING POINTER
- \definesymbol[WhiteLeftPointingPointer][\USymbChar{37}{197}] % WHITE LEFT-POINTING POINTER
- \definesymbol[BlackDiamond][\USymbChar{37}{198}] % BLACK DIAMOND
- \definesymbol[WhiteDiamond][\USymbChar{37}{199}] % WHITE DIAMOND
- \definesymbol[WhiteDiamondContainingBlackSmallDiamond][\USymbChar{37}{200}] % WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
- \definesymbol[Fisheye][\USymbChar{37}{201}] % FISHEYE
- \definesymbol[Lozenge][\USymbChar{37}{202}] % LOZENGE
- \definesymbol[WhiteCircle][\USymbChar{37}{203}] % WHITE CIRCLE
- \definesymbol[DottedCircle][\USymbChar{37}{204}] % DOTTED CIRCLE
- \definesymbol[CircleWithVerticalFill][\USymbChar{37}{205}] % CIRCLE WITH VERTICAL FILL
- \definesymbol[Bullseye][\USymbChar{37}{206}] % BULLSEYE
- \definesymbol[BlackCircle][\USymbChar{37}{207}] % BLACK CIRCLE
- \definesymbol[CircleWithLeftHalfBlack][\USymbChar{37}{208}] % CIRCLE WITH LEFT HALF BLACK
- \definesymbol[CircleWithRightHalfBlack][\USymbChar{37}{209}] % CIRCLE WITH RIGHT HALF BLACK
- \definesymbol[CircleWithLowerHalfBlack][\USymbChar{37}{210}] % CIRCLE WITH LOWER HALF BLACK
- \definesymbol[CircleWithUpperHalfBlack][\USymbChar{37}{211}] % CIRCLE WITH UPPER HALF BLACK
- \definesymbol[CircleWithUpperRightQuadrantBlack][\USymbChar{37}{212}] % CIRCLE WITH UPPER RIGHT QUADRANT BLACK
- \definesymbol[CircleWithAllButUpperLeftQuadrantBlack][\USymbChar{37}{213}] % CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK
- \definesymbol[LeftHalfBlackCircle][\USymbChar{37}{214}] % LEFT HALF BLACK CIRCLE
- \definesymbol[RightHalfBlackCircle][\USymbChar{37}{215}] % RIGHT HALF BLACK CIRCLE
- \definesymbol[InverseBullet][\USymbChar{37}{216}] % INVERSE BULLET
- \definesymbol[InverseWhiteCircle][\USymbChar{37}{217}] % INVERSE WHITE CIRCLE
- \definesymbol[UpperHalfInverseWhiteCircle][\USymbChar{37}{218}] % UPPER HALF INVERSE WHITE CIRCLE
- \definesymbol[LowerHalfInverseWhiteCircle][\USymbChar{37}{219}] % LOWER HALF INVERSE WHITE CIRCLE
- \definesymbol[UpperLeftQuadrantCircularArc][\USymbChar{37}{220}] % UPPER LEFT QUADRANT CIRCULAR ARC
- \definesymbol[UpperRightQuadrantCircularArc][\USymbChar{37}{221}] % UPPER RIGHT QUADRANT CIRCULAR ARC
- \definesymbol[LowerRightQuadrantCircularArc][\USymbChar{37}{222}] % LOWER RIGHT QUADRANT CIRCULAR ARC
- \definesymbol[LowerLeftQuadrantCircularArc][\USymbChar{37}{223}] % LOWER LEFT QUADRANT CIRCULAR ARC
- \definesymbol[LowerHalfCircle][\USymbChar{37}{225}] % LOWER HALF CIRCLE
- \definesymbol[BlackLowerRightTriangle][\USymbChar{37}{226}] % BLACK LOWER RIGHT TRIANGLE
- \definesymbol[BlackLowerLeftTriangle][\USymbChar{37}{227}] % BLACK LOWER LEFT TRIANGLE
- \definesymbol[BlackUpperLeftTriangle][\USymbChar{37}{228}] % BLACK UPPER LEFT TRIANGLE
- \definesymbol[BlackUpperRightTriangle][\USymbChar{37}{229}] % BLACK UPPER RIGHT TRIANGLE
- \definesymbol[WhiteBullet][\USymbChar{37}{230}] % WHITE BULLET
- \definesymbol[SquareWithLeftHalfBlack][\USymbChar{37}{231}] % SQUARE WITH LEFT HALF BLACK
- \definesymbol[SquareWithRightHalfBlack][\USymbChar{37}{232}] % SQUARE WITH RIGHT HALF BLACK
- \definesymbol[SquareWithUpperLeftDiagonalHalfBlack][\USymbChar{37}{233}] % SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK
- \definesymbol[SquareWithLowerRightDiagonalHalfBlack][\USymbChar{37}{234}] % SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK
- \definesymbol[WhiteSquareWithVerticalBisectingLine][\USymbChar{37}{235}] % WHITE SQUARE WITH VERTICAL BISECTING LINE
- \definesymbol[WhiteUpPointingTriangleWithDot][\USymbChar{37}{236}] % WHITE UP-POINTING TRIANGLE WITH DOT
- \definesymbol[UpPointingTriangleWithLeftHalfBlack][\USymbChar{37}{237}] % UP-POINTING TRIANGLE WITH LEFT HALF BLACK
- \definesymbol[UpPointingTriangleWithRightHalfBlack][\USymbChar{37}{238}] % UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
- \definesymbol[LargeCircle][\USymbChar{37}{239}] % LARGE CIRCLE
- \definesymbol[UpperLeftTriangle][\USymbChar{37}{248}] % [Unassigned U+25F8]
- \definesymbol[UpperRightTriangle][\USymbChar{37}{249}] % [Unassigned U+25F9]
- \definesymbol[LowerLeftTriangle][\USymbChar{37}{250}] % [Unassigned U+25FA]
- \definesymbol[WhiteMediumSquare][\USymbChar{37}{251}] % [Unassigned U+25FB]
- \definesymbol[BlackMediumSquare][\USymbChar{37}{252}] % [Unassigned U+25FC]
- \definesymbol[WhiteMediumSmallSquare][\USymbChar{37}{253}] % [Unassigned U+25FD]
- \definesymbol[BlackMediumSmallSquare][\USymbChar{37}{254}] % [Unassigned U+25FE]
- \definesymbol[LowerRightTriangle][\USymbChar{37}{255}] % [Unassigned U+25FF]
-
-\stopsymbolset
-
-\startsymbolset[Unicode Control Code Graphics] % 0x25A0: Requires UnicodeRegular25
-
- \definesymbol[WhiteSquareWithUpperLeftQuadrant][\USymbChar{37}{240}] % WHITE SQUARE WITH UPPER LEFT QUADRANT
- \definesymbol[WhiteSquareWithLowerLeftQuadrant][\USymbChar{37}{241}] % WHITE SQUARE WITH LOWER LEFT QUADRANT
- \definesymbol[WhiteSquareWithLowerRightQuadrant][\USymbChar{37}{242}] % WHITE SQUARE WITH LOWER RIGHT QUADRANT
- \definesymbol[WhiteSquareWithUpperRightQuadrant][\USymbChar{37}{243}] % WHITE SQUARE WITH UPPER RIGHT QUADRANT
- \definesymbol[WhiteCircleWithUpperLeftQuadrant][\USymbChar{37}{244}] % WHITE CIRCLE WITH UPPER LEFT QUADRANT
- \definesymbol[WhiteCircleWithLowerLeftQuadrant][\USymbChar{37}{245}] % WHITE CIRCLE WITH LOWER LEFT QUADRANT
- \definesymbol[WhiteCircleWithLowerRightQuadrant][\USymbChar{37}{246}] % WHITE CIRCLE WITH LOWER RIGHT QUADRANT
- \definesymbol[WhiteCircleWithUpperRightQuadrant][\USymbChar{37}{247}] % WHITE CIRCLE WITH UPPER RIGHT QUADRANT
-
-\stopsymbolset
-
-\startsymbolset[Unicode Weather and Astrological] % 0x2600: Requires UnicodeRegular26
-
- \definesymbol[BlackSunWithRays][\USymbChar{38}{0}] % BLACK SUN WITH RAYS
- \definesymbol[Cloud][\USymbChar{38}{1}] % CLOUD
- \definesymbol[Umbrella][\USymbChar{38}{2}] % UMBRELLA
- \definesymbol[Snowman][\USymbChar{38}{3}] % SNOWMAN
- \definesymbol[Comet][\USymbChar{38}{4}] % COMET
- \definesymbol[BlackStar][\USymbChar{38}{5}] % BLACK STAR
- \definesymbol[WhiteStar][\USymbChar{38}{6}] % WHITE STAR
- \definesymbol[Lightning][\USymbChar{38}{7}] % LIGHTNING
- \definesymbol[Thunderstorm][\USymbChar{38}{8}] % THUNDERSTORM
- \definesymbol[Sun][\USymbChar{38}{9}] % SUN
- \definesymbol[AscendingNode][\USymbChar{38}{10}] % ASCENDING NODE
- \definesymbol[DescendingNode][\USymbChar{38}{11}] % DESCENDING NODE
- \definesymbol[Conjunction][\USymbChar{38}{12}] % CONJUNCTION
- \definesymbol[Opposition][\USymbChar{38}{13}] % OPPOSITION
- \definesymbol[FirstQuarterMoon][\USymbChar{38}{61}] % FIRST QUARTER MOON
- \definesymbol[LastQuarterMoon][\USymbChar{38}{62}] % LAST QUARTER MOON
- \definesymbol[Mercury][\USymbChar{38}{63}] % MERCURY
- \definesymbol[FemaleSign][\USymbChar{38}{64}] % FEMALE SIGN
- \definesymbol[Earth][\USymbChar{38}{65}] % EARTH
- \definesymbol[MaleSign][\USymbChar{38}{66}] % MALE SIGN
- \definesymbol[Jupiter][\USymbChar{38}{67}] % JUPITER
- \definesymbol[Saturn][\USymbChar{38}{68}] % SATURN
- \definesymbol[Uranus][\USymbChar{38}{69}] % URANUS
- \definesymbol[Neptune][\USymbChar{38}{70}] % NEPTUNE
- \definesymbol[Pluto][\USymbChar{38}{71}] % PLUTO
-
-\stopsymbolset
-
-\startsymbolset[Unicode Miscellaneous] % 0x2600: Requires UnicodeRegular26
-
- \definesymbol[BlackTelephone][\USymbChar{38}{14}] % BLACK TELEPHONE
- \definesymbol[WhiteTelephone][\USymbChar{38}{15}] % WHITE TELEPHONE
- \definesymbol[BallotBox][\USymbChar{38}{16}] % BALLOT BOX
- \definesymbol[BallotBoxWithCheck][\USymbChar{38}{17}] % BALLOT BOX WITH CHECK
- \definesymbol[BallotBoxWithX][\USymbChar{38}{18}] % BALLOT BOX WITH X
- \definesymbol[Saltire][\USymbChar{38}{19}] % SALTIRE
- \definesymbol[ReversedRotatedFloralHeartBullet][\USymbChar{38}{25}] % REVERSED ROTATED FLORAL HEART BULLET
- \definesymbol[WheelOfDharma][\USymbChar{38}{56}] % WHEEL OF DHARMA
- \definesymbol[WhiteFrowningFace][\USymbChar{38}{57}] % WHITE FROWNING FACE
- \definesymbol[WhiteSmilingFace][\USymbChar{38}{58}] % WHITE SMILING FACE
- \definesymbol[BlackSmilingFace][\USymbChar{38}{59}] % BLACK SMILING FACE
- \definesymbol[WhiteSunWithRays][\USymbChar{38}{60}] % WHITE SUN WITH RAYS
- \definesymbol[HotSprings][\USymbChar{38}{104}] % HOT SPRINGS
-
-\stopsymbolset
-
-\startsymbolset[Unicode Japanese Chess] % 0x2600: Requires UnicodeRegular26
-
- \definesymbol[WhiteShogiPiece][\USymbChar{38}{22}] % [Unassigned U+2616]
- \definesymbol[BlackShogiPiece][\USymbChar{38}{23}] % [Unassigned U+2617]
-
-\stopsymbolset
-
-\startsymbolset[Unicode Pointing Hand] % 0x2600: Requires UnicodeRegular26
-
- \definesymbol[BlackLeftPointingIndex][\USymbChar{38}{26}] % BLACK LEFT POINTING INDEX
- \definesymbol[BlackRightPointingIndex][\USymbChar{38}{27}] % BLACK RIGHT POINTING INDEX
- \definesymbol[WhiteLeftPointingIndex][\USymbChar{38}{28}] % WHITE LEFT POINTING INDEX
- \definesymbol[WhiteUpPointingIndex][\USymbChar{38}{29}] % WHITE UP POINTING INDEX
- \definesymbol[WhiteRightPointingIndex][\USymbChar{38}{30}] % WHITE RIGHT POINTING INDEX
- \definesymbol[WhiteDownPointingIndex][\USymbChar{38}{31}] % WHITE DOWN POINTING INDEX
-
-\stopsymbolset
-
-\startsymbolset[Unicode Warning Signs] % 0x2600: Requires UnicodeRegular26
-
- \definesymbol[SkullAndCrossbones][\USymbChar{38}{32}] % SKULL AND CROSSBONES
- \definesymbol[CautionSign][\USymbChar{38}{33}] % CAUTION SIGN
- \definesymbol[RadioactiveSign][\USymbChar{38}{34}] % RADIOACTIVE SIGN
- \definesymbol[BiohazardSign][\USymbChar{38}{35}] % BIOHAZARD SIGN
-
-\stopsymbolset
-
-\startsymbolset[Unicode Healing Signs] % 0x2600: Requires UnicodeRegular26
- \definesymbol[Caduceus][\USymbChar{38}{36}] % CADUCEUS
- \definesymbol[Ankh][\USymbChar{38}{37}] % ANKH
-\stopsymbolset
-
-\startsymbolset[Unicode Religious and Political] % 0x2600: Requires UnicodeRegular26 and 27
-
- \definesymbol[OrthodoxCross][\USymbChar{38}{38}] % ORTHODOX CROSS
- \definesymbol[ChiRho][\USymbChar{38}{39}] % CHI RHO
- \definesymbol[CrossOfLorraine][\USymbChar{38}{40}] % CROSS OF LORRAINE
- \definesymbol[CrossOfJerusalem][\USymbChar{38}{41}] % CROSS OF JERUSALEM
- \definesymbol[StarAndCrescent][\USymbChar{38}{42}] % STAR AND CRESCENT
- \definesymbol[FarsiSymbol][\USymbChar{38}{43}] % FARSI SYMBOL
- \definesymbol[AdiShakti][\USymbChar{38}{44}] % ADI SHAKTI
- \definesymbol[HammerAndSickle][\USymbChar{38}{45}] % HAMMER AND SICKLE
- \definesymbol[PeaceSymbol][\USymbChar{38}{46}] % PEACE SYMBOL
- \definesymbol[YinYang][\USymbChar{38}{47}] % YIN YANG
- \definesymbol[WestSyriacCross][\USymbChar{38}{112}] % WEST SYRIAC CROSS
- \definesymbol[EastSyriacCross][\USymbChar{38}{113}] % EAST SYRIAC CROSS
-% 27xx starts here
- \definesymbol[OutlinedGreekCross][\USymbCharZapf{39}{25}] % OUTLINED GREEK CROSS
- \definesymbol[HeavyGreekCross][\USymbCharZapf{39}{26}] % HEAVY GREEK CROSS
- \definesymbol[OpenCentreCross][\USymbCharZapf{39}{27}] % OPEN CENTRE CROSS
- \definesymbol[HeavyOpenCentreCross][\USymbCharZapf{39}{28}] % HEAVY OPEN CENTRE CROSS
- \definesymbol[LatinCross][\USymbCharZapf{39}{29}] % LATIN CROSS
- \definesymbol[ShadowedWhiteLatinCross][\USymbCharZapf{39}{30}] % SHADOWED WHITE LATIN CROSS
- \definesymbol[OutlinedLatinCross][\USymbCharZapf{39}{31}] % OUTLINED LATIN CROSS
- \definesymbol[MalteseCross][\USymbCharZapf{39}{32}] % MALTESE CROSS
- \definesymbol[StarOfDavid][\USymbCharZapf{39}{33}] % STAR OF DAVID
-
-
-\stopsymbolset
-
-\startsymbolset[Unicode Trigram] % 0x2600: Requires UnicodeRegular26
-
- \definesymbol[TrigramForHeaven][\USymbChar{38}{48}] % TRIGRAM FOR HEAVEN
- \definesymbol[TrigramForLake][\USymbChar{38}{49}] % TRIGRAM FOR LAKE
- \definesymbol[TrigramForFire][\USymbChar{38}{50}] % TRIGRAM FOR FIRE
- \definesymbol[TrigramForThunder][\USymbChar{38}{51}] % TRIGRAM FOR THUNDER
- \definesymbol[TrigramForWind][\USymbChar{38}{52}] % TRIGRAM FOR WIND
- \definesymbol[TrigramForWater][\USymbChar{38}{53}] % TRIGRAM FOR WATER
- \definesymbol[TrigramForMountain][\USymbChar{38}{54}] % TRIGRAM FOR MOUNTAIN
- \definesymbol[TrigramForEarth][\USymbChar{38}{55}] % TRIGRAM FOR EARTH
-
-\stopsymbolset
-
-\startsymbolset[Unicode Zodiac] % 0x2600: Requires UnicodeRegular26
-
- \definesymbol[Aries][\USymbChar{38}{72}] % ARIES
- \definesymbol[Taurus][\USymbChar{38}{73}] % TAURUS
- \definesymbol[Gemini][\USymbChar{38}{74}] % GEMINI
- \definesymbol[Cancer][\USymbChar{38}{75}] % CANCER
- \definesymbol[Leo][\USymbChar{38}{76}] % LEO
- \definesymbol[Virgo][\USymbChar{38}{77}] % VIRGO
- \definesymbol[Libra][\USymbChar{38}{78}] % LIBRA
- \definesymbol[Scorpius][\USymbChar{38}{79}] % SCORPIUS
- \definesymbol[Sagittarius][\USymbChar{38}{80}] % SAGITTARIUS
- \definesymbol[Capricorn][\USymbChar{38}{81}] % CAPRICORN
- \definesymbol[Aquarius][\USymbChar{38}{82}] % AQUARIUS
- \definesymbol[Pisces][\USymbChar{38}{83}] % PISCES
-
-\stopsymbolset
-
-\startsymbolset[Unicode Chess] % 0x2600: Requires UnicodeRegular26
-
- \definesymbol[WhiteChessKing][\USymbChar{38}{84}] % WHITE CHESS KING
- \definesymbol[WhiteChessQueen][\USymbChar{38}{85}] % WHITE CHESS QUEEN
- \definesymbol[WhiteChessRook][\USymbChar{38}{86}] % WHITE CHESS ROOK
- \definesymbol[WhiteChessBishop][\USymbChar{38}{87}] % WHITE CHESS BISHOP
- \definesymbol[WhiteChessKnight][\USymbChar{38}{88}] % WHITE CHESS KNIGHT
- \definesymbol[WhiteChessPawn][\USymbChar{38}{89}] % WHITE CHESS PAWN
- \definesymbol[BlackChessKing][\USymbChar{38}{90}] % BLACK CHESS KING
- \definesymbol[BlackChessQueen][\USymbChar{38}{91}] % BLACK CHESS QUEEN
- \definesymbol[BlackChessRook][\USymbChar{38}{92}] % BLACK CHESS ROOK
- \definesymbol[BlackChessBishop][\USymbChar{38}{93}] % BLACK CHESS BISHOP
- \definesymbol[BlackChessKnight][\USymbChar{38}{94}] % BLACK CHESS KNIGHT
- \definesymbol[BlackChessPawn][\USymbChar{38}{95}] % BLACK CHESS PAWN
-
-\stopsymbolset
-
-\startsymbolset[Unicode Playing Card] % 0x2600: Requires UnicodeRegular26
-
- \definesymbol[BlackSpadeSuit][\USymbChar{38}{96}] % BLACK SPADE SUIT
- \definesymbol[WhiteHeartSuit][\USymbChar{38}{97}] % WHITE HEART SUIT
- \definesymbol[WhiteDiamondSuit][\USymbChar{38}{98}] % WHITE DIAMOND SUIT
- \definesymbol[BlackClubSuit][\USymbChar{38}{99}] % BLACK CLUB SUIT
- \definesymbol[WhiteSpadeSuit][\USymbChar{38}{100}] % WHITE SPADE SUIT
- \definesymbol[BlackHeartSuit][\USymbChar{38}{101}] % BLACK HEART SUIT
- \definesymbol[BlackDiamondSuit][\USymbChar{38}{102}] % BLACK DIAMOND SUIT
- \definesymbol[WhiteClubSuit][\USymbChar{38}{103}] % WHITE CLUB SUIT
-
-\stopsymbolset
-
-\startsymbolset[Unicode Musical] % 0x2600: Requires UnicodeRegular26
-
- \definesymbol[QuarterNote][\USymbChar{38}{105}] % QUARTER NOTE
- \definesymbol[EighthNote][\USymbChar{38}{106}] % EIGHTH NOTE
- \definesymbol[BeamedEighthNotes][\USymbChar{38}{107}] % BEAMED EIGHTH NOTES
- \definesymbol[BeamedSixteenthNotes][\USymbChar{38}{108}] % BEAMED SIXTEENTH NOTES
- \definesymbol[MusicFlatSign][\USymbChar{38}{109}] % MUSIC FLAT SIGN
- \definesymbol[MusicNaturalSign][\USymbChar{38}{110}] % MUSIC NATURAL SIGN
- \definesymbol[MusicSharpSign][\USymbChar{38}{111}] % MUSIC SHARP SIGN
-
-\stopsymbolset
-
-\startsymbolset[Unicode Recycling] % 0x2600: Requires UnicodeRegular26
-
- \definesymbol[UniversalRecycling][\USymbChar{38}{114}] % [Unassigned U+2672]
- \definesymbol[Type1Plastics][\USymbChar{38}{115}] % [Unassigned U+2673]
- \definesymbol[Type2Plastics][\USymbChar{38}{116}] % [Unassigned U+2674]
- \definesymbol[Type3Plastics][\USymbChar{38}{117}] % [Unassigned U+2675]
- \definesymbol[Type4Plastics][\USymbChar{38}{118}] % [Unassigned U+2676]
- \definesymbol[Type5Plastics][\USymbChar{38}{119}] % [Unassigned U+2677]
- \definesymbol[Type6Plastics][\USymbChar{38}{120}] % [Unassigned U+2678]
- \definesymbol[Type7Plastics][\USymbChar{38}{121}] % [Unassigned U+2679]
- \definesymbol[GenericMaterials][\USymbChar{38}{122}] % [Unassigned U+267A]
- \definesymbol[BlackUniversalRecycling][\USymbChar{38}{123}] % [Unassigned U+267B]
- \definesymbol[RecycledPaper][\USymbChar{38}{124}] % [Unassigned U+267C]
- \definesymbol[PartiallyRecycledPaper][\USymbChar{38}{125}] % [Unassigned U+267D]
-
-\stopsymbolset
-
-\startsymbolset[Unicode Dice] % 0x2600: Requires UnicodeRegular26
-
- \definesymbol[DieFace1][\USymbChar{38}{128}] % [Unassigned U+2680]
- \definesymbol[DieFace2][\USymbChar{38}{129}] % [Unassigned U+2681]
- \definesymbol[DieFace3][\USymbChar{38}{130}] % [Unassigned U+2682]
- \definesymbol[DieFace4][\USymbChar{38}{131}] % [Unassigned U+2683]
- \definesymbol[DieFace5][\USymbChar{38}{132}] % [Unassigned U+2684]
- \definesymbol[DieFace6][\USymbChar{38}{133}] % [Unassigned U+2685]
-
-\stopsymbolset
-
-\startsymbolset[Unicode Go Markers] % 0x2600: Requires UnicodeRegular26
-
- \definesymbol[WhiteCircleWithDotRight][\USymbChar{38}{134}] % [Unassigned U+2686]
- \definesymbol[WhiteCircleWithTwoDots][\USymbChar{38}{135}] % [Unassigned U+2687]
- \definesymbol[BlackCircleWithWhiteDotRight][\USymbChar{38}{136}] % [Unassigned U+2688]
- \definesymbol[BlackCircleWithTwoWhiteDots][\USymbChar{38}{137}] % [Unassigned U+2689]
-
-\stopsymbolset
-
-\startsymbolset[Unicode Scissors] % 0x2700: Requires UnicodeRegular27
-
- \definesymbol[UpperBladeScissors][\USymbCharZapf{39}{1}] % UPPER BLADE SCISSORS
- \definesymbol[BlackScissors][\USymbCharZapf{39}{2}] % BLACK SCISSORS
- \definesymbol[LowerBladeScissors][\USymbCharZapf{39}{3}] % LOWER BLADE SCISSORS
- \definesymbol[WhiteScissors][\USymbCharZapf{39}{4}] % WHITE SCISSORS
-
-\stopsymbolset
-
-\startsymbolset[Unicode Dingbats] % 0x2700: Requires UnicodeRegular27
-
- \definesymbol[TelephoneLocationSign][\USymbCharZapf{39}{6}] % TELEPHONE LOCATION SIGN
- \definesymbol[TapeDrive][\USymbCharZapf{39}{7}] % TAPE DRIVE
- \definesymbol[Airplane][\USymbCharZapf{39}{8}] % AIRPLANE
- \definesymbol[Envelope][\USymbCharZapf{39}{9}] % ENVELOPE
- \definesymbol[VictoryHand][\USymbCharZapf{39}{12}] % VICTORY HAND
- \definesymbol[WritingHand][\USymbCharZapf{39}{13}] % WRITING HAND
- \definesymbol[LowerRightPencil][\USymbCharZapf{39}{14}] % LOWER RIGHT PENCIL
- \definesymbol[Pencil][\USymbCharZapf{39}{15}] % PENCIL
- \definesymbol[UpperRightPencil][\USymbCharZapf{39}{16}] % UPPER RIGHT PENCIL
- \definesymbol[WhiteNib][\USymbCharZapf{39}{17}] % WHITE NIB
- \definesymbol[BlackNib][\USymbCharZapf{39}{18}] % BLACK NIB
- \definesymbol[BlackDiamondMinusWhiteX][\USymbCharZapf{39}{86}] % BLACK DIAMOND MINUS WHITE X
-
-\stopsymbolset
-
-\startsymbolset[Unicode Checks and Xs] % 0x2700: Requires UnicodeRegular27
-
- \definesymbol[CheckMark][\USymbCharZapf{39}{19}] % CHECK MARK
- \definesymbol[HeavyCheckMark][\USymbCharZapf{39}{20}] % HEAVY CHECK MARK
- \definesymbol[MultiplicationX][\USymbCharZapf{39}{21}] % MULTIPLICATION X
- \definesymbol[HeavyMultiplicationX][\USymbCharZapf{39}{22}] % HEAVY MULTIPLICATION X
- \definesymbol[BallotX][\USymbCharZapf{39}{23}] % BALLOT X
- \definesymbol[HeavyBallotX][\USymbCharZapf{39}{24}] % HEAVY BALLOT X
-
-\stopsymbolset
-
-\startsymbolset[Unicode Stars] % 0x2700: Requires UnicodeRegular27
-
- \definesymbol[FourTeardropSpokedAsterisk][\USymbCharZapf{39}{34}] % FOUR TEARDROP-SPOKED ASTERISK
- \definesymbol[FourBalloonSpokedAsterisk][\USymbCharZapf{39}{35}] % FOUR BALLOON-SPOKED ASTERISK
- \definesymbol[HeavyFourBalloonSpokedAsterisk][\USymbCharZapf{39}{36}] % HEAVY FOUR BALLOON-SPOKED ASTERISK
- \definesymbol[FourClubSpokedAsterisk][\USymbCharZapf{39}{37}] % FOUR CLUB-SPOKED ASTERISK
- \definesymbol[BlackFourPointedStar][\USymbCharZapf{39}{38}] % BLACK FOUR POINTED STAR
- \definesymbol[WhiteFourPointedStar][\USymbCharZapf{39}{39}] % WHITE FOUR POINTED STAR
- \definesymbol[StressOutlinedWhiteStar][\USymbCharZapf{39}{41}] % STRESS OUTLINED WHITE STAR
- \definesymbol[CircledWhiteStar][\USymbCharZapf{39}{42}] % CIRCLED WHITE STAR
- \definesymbol[OpenCentreBlackStar][\USymbCharZapf{39}{43}] % OPEN CENTRE BLACK STAR
- \definesymbol[BlackCentreWhiteStar][\USymbCharZapf{39}{44}] % BLACK CENTRE WHITE STAR
- \definesymbol[OutlinedBlackStar][\USymbCharZapf{39}{45}] % OUTLINED BLACK STAR
- \definesymbol[HeavyOutlinedBlackStar][\USymbCharZapf{39}{46}] % HEAVY OUTLINED BLACK STAR
- \definesymbol[PinwheelStar][\USymbCharZapf{39}{47}] % PINWHEEL STAR
- \definesymbol[ShadowedWhiteStar][\USymbCharZapf{39}{48}] % SHADOWED WHITE STAR
- \definesymbol[HeavyAsterisk][\USymbCharZapf{39}{49}] % HEAVY ASTERISK
- \definesymbol[OpenCentreAsterisk][\USymbCharZapf{39}{50}] % OPEN CENTRE ASTERISK
- \definesymbol[EightSpokedAsterisk][\USymbCharZapf{39}{51}] % EIGHT SPOKED ASTERISK
- \definesymbol[EightPointedBlackStar][\USymbCharZapf{39}{52}] % EIGHT POINTED BLACK STAR
- \definesymbol[EightPointedPinwheelStar][\USymbCharZapf{39}{53}] % EIGHT POINTED PINWHEEL STAR
- \definesymbol[SixPointedBlackStar][\USymbCharZapf{39}{54}] % SIX POINTED BLACK STAR
- \definesymbol[EightPointedRectilinearBlackStar][\USymbCharZapf{39}{55}] % EIGHT POINTED RECTILINEAR BLACK STAR
- \definesymbol[HeavyEightPointedRectilinearBlackStar][\USymbCharZapf{39}{56}] % HEAVY EIGHT POINTED RECTILINEAR BLACK STAR
- \definesymbol[TwelvePointedBlackStar][\USymbCharZapf{39}{57}] % TWELVE POINTED BLACK STAR
- \definesymbol[SixteenPointedAsterisk][\USymbCharZapf{39}{58}] % SIXTEEN POINTED ASTERISK
- \definesymbol[TeardropSpokedAsterisk][\USymbCharZapf{39}{59}] % TEARDROP-SPOKED ASTERISK
- \definesymbol[OpenCentreTeardropSpokedAsterisk][\USymbCharZapf{39}{60}] % OPEN CENTRE TEARDROP-SPOKED ASTERISK
- \definesymbol[HeavyTeardropSpokedAsterisk][\USymbCharZapf{39}{61}] % HEAVY TEARDROP-SPOKED ASTERISK
- \definesymbol[SixPetalledBlackAndWhiteFlorette][\USymbCharZapf{39}{62}] % SIX PETALLED BLACK AND WHITE FLORETTE
- \definesymbol[BlackFlorette][\USymbCharZapf{39}{63}] % BLACK FLORETTE
- \definesymbol[WhiteFlorette][\USymbCharZapf{39}{64}] % WHITE FLORETTE
- \definesymbol[EightPetalledOutlinedBlackFlorette][\USymbCharZapf{39}{65}] % EIGHT PETALLED OUTLINED BLACK FLORETTE
- \definesymbol[CircledOpenCentreEightPointedStar][\USymbCharZapf{39}{66}] % CIRCLED OPEN CENTRE EIGHT POINTED STAR
- \definesymbol[HeavyTeardropSpokedPinwheelAsterisk][\USymbCharZapf{39}{67}] % HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK
- \definesymbol[Sparkle][\USymbCharZapf{39}{71}] % SPARKLE
- \definesymbol[HeavySparkle][\USymbCharZapf{39}{72}] % HEAVY SPARKLE
- \definesymbol[Balloon-spokedAsterisk][\USymbCharZapf{39}{73}] % BALLOON-SPOKED ASTERISK
- \definesymbol[EightTeardrop-spokedPropellerAsterisk][\USymbCharZapf{39}{74}] % EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
- \definesymbol[HeavyEightTeardrop-spokedPropellerAsterisk][\USymbCharZapf{39}{75}] % HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-
-\stopsymbolset
-
-\startsymbolset[Unicode Snowflakes] % 0x2700: Requires UnicodeRegular27
-
- \definesymbol[Snowflake][\USymbCharZapf{39}{68}] % SNOWFLAKE
- \definesymbol[TightTrifoliateSnowflake][\USymbCharZapf{39}{69}] % TIGHT TRIFOLIATE SNOWFLAKE
- \definesymbol[HeavyChevronSnowflake][\USymbCharZapf{39}{70}] % HEAVY CHEVRON SNOWFLAKE
-
-\stopsymbolset
-
-\startsymbolset[Unicode Shadowed Shapes] % 0x2700: Requires UnicodeRegular27
-
- \definesymbol[ShadowedWhiteCircle][\USymbCharZapf{39}{77}] % SHADOWED WHITE CIRCLE
- \definesymbol[LowerRightDrop-shadowedWhiteSquare][\USymbCharZapf{39}{79}] % LOWER RIGHT DROP-SHADOWED WHITE SQUARE
- \definesymbol[UpperRightDrop-shadowedWhiteSquare][\USymbCharZapf{39}{80}] % UPPER RIGHT DROP-SHADOWED WHITE SQUARE
- \definesymbol[LowerRightShadowedWhiteSquare][\USymbCharZapf{39}{81}] % LOWER RIGHT SHADOWED WHITE SQUARE
- \definesymbol[UpperRightShadowedWhiteSquare][\USymbCharZapf{39}{82}] % UPPER RIGHT SHADOWED WHITE SQUARE
-
-\stopsymbolset
-
-\startsymbolset[Unicode Bars] % 0x2700: Requires UnicodeRegular27
-
- \definesymbol[LightVerticalBar][\USymbCharZapf{39}{88}] % LIGHT VERTICAL BAR
- \definesymbol[MediumVerticalBar][\USymbCharZapf{39}{89}] % MEDIUM VERTICAL BAR
- \definesymbol[HeavyVerticalBar][\USymbCharZapf{39}{90}] % HEAVY VERTICAL BAR
-
-\stopsymbolset
-
-\startsymbolset[Unicode Dingbat Punctuation] % 0x2700: Requires UnicodeRegular27
-
- \definesymbol[HeavySingleTurnedCommaQuotationMark][\USymbCharZapf{39}{91}] % HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT
- \definesymbol[HeavySingleCommaQuotationMark][\USymbCharZapf{39}{92}] % HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
- \definesymbol[HeavyDoubleTurnedCommaQuotationMark][\USymbCharZapf{39}{93}] % HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
- \definesymbol[HeavyDoubleCommaQuotationMark][\USymbCharZapf{39}{94}] % HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
- \definesymbol[CurvedStemParagraphSign][\USymbCharZapf{39}{97}] % CURVED STEM PARAGRAPH SIGN ORNAMENT
- \definesymbol[HeavyExclamationMark][\USymbCharZapf{39}{98}] % HEAVY EXCLAMATION MARK ORNAMENT
- \definesymbol[HeavyHeartExclamationMark][\USymbCharZapf{39}{99}] % HEAVY HEART EXCLAMATION MARK ORNAMENT
-
-\stopsymbolset
-
-\startsymbolset[Unicode Hearts] % 0x2700: Requires UnicodeRegular27
-
- \definesymbol[HeavyBlackHeart][\USymbCharZapf{39}{100}] % HEAVY BLACK HEART
- \definesymbol[RotatedHeavyBlackHeartBullet][\USymbCharZapf{39}{101}] % ROTATED HEAVY BLACK HEART BULLET
- \definesymbol[FloralHeart][\USymbCharZapf{39}{102}] % FLORAL HEART
- \definesymbol[RotatedFloralHeartBullet][\USymbCharZapf{39}{103}] % ROTATED FLORAL HEART BULLET
-
-\stopsymbolset
-
-\startsymbolset[Unicode Negative Circled Digits] % 0x2700: Requires UnicodeRegular27
-
- \definesymbol[CircledOne][\USymbCharZapf{39}{118}] % DINGBAT NEGATIVE CIRCLED DIGIT ONE
- \definesymbol[CircledTwo][\USymbCharZapf{39}{119}] % DINGBAT NEGATIVE CIRCLED DIGIT TWO
- \definesymbol[CircledThree][\USymbCharZapf{39}{120}] % DINGBAT NEGATIVE CIRCLED DIGIT THREE
- \definesymbol[CircledFour][\USymbCharZapf{39}{121}] % DINGBAT NEGATIVE CIRCLED DIGIT FOUR
- \definesymbol[CircledFive][\USymbCharZapf{39}{122}] % DINGBAT NEGATIVE CIRCLED DIGIT FIVE
- \definesymbol[CircledSix][\USymbCharZapf{39}{123}] % DINGBAT NEGATIVE CIRCLED DIGIT SIX
- \definesymbol[CircledSeven][\USymbCharZapf{39}{124}] % DINGBAT NEGATIVE CIRCLED DIGIT SEVEN
- \definesymbol[CircledEight][\USymbCharZapf{39}{125}] % DINGBAT NEGATIVE CIRCLED DIGIT EIGHT
- \definesymbol[CircledNine][\USymbCharZapf{39}{126}] % DINGBAT NEGATIVE CIRCLED DIGIT NINE
- \definesymbol[CircledTen][\USymbCharZapf{39}{127}] % DINGBAT NEGATIVE CIRCLED NUMBER TEN
-
-\stopsymbolset
-
-\startsymbolset[Unicode Circled Sans-serif Digits] % 0x2700: Requires UnicodeRegular27
-
- \definesymbol[CircledOne][\USymbCharZapf{39}{128}] % DINGBAT CIRCLED SANS-SERIF DIGIT ONE
- \definesymbol[CircledTwo][\USymbCharZapf{39}{129}] % DINGBAT CIRCLED SANS-SERIF DIGIT TWO
- \definesymbol[CircledThree][\USymbCharZapf{39}{130}] % DINGBAT CIRCLED SANS-SERIF DIGIT THREE
- \definesymbol[CircledFour][\USymbCharZapf{39}{131}] % DINGBAT CIRCLED SANS-SERIF DIGIT FOUR
- \definesymbol[CircledFive][\USymbCharZapf{39}{132}] % DINGBAT CIRCLED SANS-SERIF DIGIT FIVE
- \definesymbol[CircledSix][\USymbCharZapf{39}{133}] % DINGBAT CIRCLED SANS-SERIF DIGIT SIX
- \definesymbol[CircledSeven][\USymbCharZapf{39}{134}] % DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN
- \definesymbol[CircledEight][\USymbCharZapf{39}{135}] % DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT
- \definesymbol[CircledNine][\USymbCharZapf{39}{136}] % DINGBAT CIRCLED SANS-SERIF DIGIT NINE
- \definesymbol[CircledTen][\USymbCharZapf{39}{137}] % DINGBAT CIRCLED SANS-SERIF NUMBER TEN
-
-\stopsymbolset
-
-\startsymbolset[Unicode Negative Circled Sans-serif Digits] % 0x2700: Requires UnicodeRegular27
-
- \definesymbol[CircledOne][\USymbCharZapf{39}{138}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE
- \definesymbol[CircledTwo][\USymbCharZapf{39}{139}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO
- \definesymbol[CircledThree][\USymbCharZapf{39}{140}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE
- \definesymbol[CircledFour][\USymbCharZapf{39}{141}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR
- \definesymbol[CircledFive][\USymbCharZapf{39}{142}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE
- \definesymbol[CircledSix][\USymbCharZapf{39}{143}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX
- \definesymbol[CircledSeven][\USymbCharZapf{39}{144}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN
- \definesymbol[CircledEight][\USymbCharZapf{39}{145}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT
- \definesymbol[CircledNine][\USymbCharZapf{39}{146}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
- \definesymbol[CircledTen][\USymbCharZapf{39}{147}] % DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
-
-\stopsymbolset
-
-\startsymbolset[Unicode Dingbat Arrows] % 0x2700: Requires UnicodeRegular27
-
- \definesymbol[HeavyWideHeadedRightwardsArrow][\USymbCharZapf{39}{148}] % HEAVY WIDE-HEADED RIGHTWARDS ARROW
- \definesymbol[HeavySouthEastArrow][\USymbCharZapf{39}{152}] % HEAVY SOUTH EAST ARROW
- \definesymbol[HeavyRightwardsArrow][\USymbCharZapf{39}{153}] % HEAVY RIGHTWARDS ARROW
- \definesymbol[HeavyNorthEastArrow][\USymbCharZapf{39}{154}] % HEAVY NORTH EAST ARROW
- \definesymbol[DraftingPointRightwardsArrow][\USymbCharZapf{39}{155}] % DRAFTING POINT RIGHTWARDS ARROW
- \definesymbol[HeavyRoundTippedRightwardsArrow][\USymbCharZapf{39}{156}] % HEAVY ROUND-TIPPED RIGHTWARDS ARROW
- \definesymbol[TriangleHeadedRightwardsArrow][\USymbCharZapf{39}{157}] % TRIANGLE-HEADED RIGHTWARDS ARROW
- \definesymbol[HeavyTriangleHeadedRightwardsArrow][\USymbCharZapf{39}{158}] % HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW
- \definesymbol[DashedTriangleHeadedRightwardsArrow][\USymbCharZapf{39}{159}] % DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
- \definesymbol[HeavyDashedTriangleHeadedRightwardsArrow][\USymbCharZapf{39}{160}] % HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW
- \definesymbol[BlackRightwardsArrow][\USymbCharZapf{39}{161}] % BLACK RIGHTWARDS ARROW
- \definesymbol[3DTopLightedRightwardsArrowhead][\USymbCharZapf{39}{162}] % THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD
- \definesymbol[3DBottomLightedRightwardsArrowhead][\USymbCharZapf{39}{163}] % THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD
- \definesymbol[BlackRightwardsArrowhead][\USymbCharZapf{39}{164}] % BLACK RIGHTWARDS ARROWHEAD
- \definesymbol[HeavyBlackCurvedDownwardsAndRightwardsArrow][\USymbCharZapf{39}{165}] % HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
- \definesymbol[HeavyBlackCurvedUpwardsAndRightwardsArrow][\USymbCharZapf{39}{166}] % HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
- \definesymbol[SquatBlackRightwardsArrow][\USymbCharZapf{39}{167}] % SQUAT BLACK RIGHTWARDS ARROW
- \definesymbol[HeavyConcavePointedBlackRightwardsArrow][\USymbCharZapf{39}{168}] % HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW
- \definesymbol[CircledHeavyWhiteRightwardsArrow][\USymbCharZapf{39}{178}] % CIRCLED HEAVY WHITE RIGHTWARDS ARROW
- \definesymbol[OpenOutlinedRightwardsArrow][\USymbCharZapf{39}{190}] % OPEN-OUTLINED RIGHTWARDS ARROW
-
-\stopsymbolset
-
-\startsymbolset[Unicode Shadowed Arrows] % 0x2700: Requires UnicodeRegular27
-
- \definesymbol[RightShadedWhiteRightwardsArrow][\USymbCharZapf{39}{169}] % RIGHT-SHADED WHITE RIGHTWARDS ARROW
- \definesymbol[LeftShadedWhiteRightwardsArrow][\USymbCharZapf{39}{170}] % LEFT-SHADED WHITE RIGHTWARDS ARROW
- \definesymbol[BackTiltedShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{171}] % BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW
- \definesymbol[FrontTiltedShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{172}] % FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW
- \definesymbol[HeavyLowerRightShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{173}] % HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
- \definesymbol[HeavyUpperRightShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{174}] % HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
- \definesymbol[NotchedLowerRightShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{175}] % NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
- \definesymbol[NotchedUpperRightShadowedWhiteRightwardsArrow][\USymbCharZapf{39}{177}] % NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-
-\stopsymbolset
-
-\startsymbolset[Unicode Tailed Arrows] % 0x2700: Requires UnicodeRegular27
-
- \definesymbol[WhiteFeatheredRightwardsArrow][\USymbCharZapf{39}{179}] % WHITE-FEATHERED RIGHTWARDS ARROW
- \definesymbol[BlackFeatheredSouthEastArrow][\USymbCharZapf{39}{180}] % BLACK-FEATHERED SOUTH EAST ARROW
- \definesymbol[BlackFeatheredRightwardsArrow][\USymbCharZapf{39}{181}] % BLACK-FEATHERED RIGHTWARDS ARROW
- \definesymbol[BlackFeatheredNorthEastArrow][\USymbCharZapf{39}{182}] % BLACK-FEATHERED NORTH EAST ARROW
- \definesymbol[HeavyBlack-featheredSouthEastArrow][\USymbCharZapf{39}{183}] % HEAVY BLACK-FEATHERED SOUTH EAST ARROW
- \definesymbol[HeavyBlackFeatheredRightwardsArrow][\USymbCharZapf{39}{184}] % HEAVY BLACK-FEATHERED RIGHTWARDS ARROW
- \definesymbol[HeavyBlackFeatheredNorthEastArrow][\USymbCharZapf{39}{185}] % HEAVY BLACK-FEATHERED NORTH EAST ARROW
- \definesymbol[TeardropBarbedRightwardsArrow][\USymbCharZapf{39}{186}] % TEARDROP-BARBED RIGHTWARDS ARROW
- \definesymbol[HeavyTeardropShankedRightwardsArrow][\USymbCharZapf{39}{187}] % HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW
- \definesymbol[WedgeTailedRightwardsArrow][\USymbCharZapf{39}{188}] % WEDGE-TAILED RIGHTWARDS ARROW
- \definesymbol[HeavyWedgeTailedRightwardsArrow][\USymbCharZapf{39}{189}] % HEAVY WEDGE-TAILED RIGHTWARDS ARROW
-
-\stopsymbolset
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/symb-was.mkii b/Master/texmf-dist/tex/context/base/mkii/symb-was.mkii
deleted file mode 100644
index e131cf04dae..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/symb-was.mkii
+++ /dev/null
@@ -1,207 +0,0 @@
-%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]
-
-\unprotect
-
-% 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 {50}]
- \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]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/syst-con.mkii b/Master/texmf-dist/tex/context/base/mkii/syst-con.mkii
deleted file mode 100644
index c1ad788cfe5..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/syst-con.mkii
+++ /dev/null
@@ -1,243 +0,0 @@
-%D \module
-%D [ file=syst-con,
-%D version=2000.12.10, % actually very old -)
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Conversions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt System Macros / Conversions}
-
-\unprotect
-
-%D When the number of conversions grew, it did no longer make
-%D sense to spread them over multiple files. So, instead of
-%D defining these in \type {font-ini}, we now have a dedicated
-%D module.
-
-\catcode127=12 % other, just to be sure
-
-%D \macros
-%D {lchexnumber,uchexnumber,lchexnumbers,uchexnumbers}
-%D
-%D In addition to the uppercase hex conversion, as needed in
-%D math families, we occasionally need a lowercase one, for
-%D instance when we want to compose gbsong fontnames.
-%D
-%D The ugly indirectness is needed to get rid of \TEX\
-%D induced spaces and \type {\relax}'s.
-%D
-%D \starttyping
-%D [\uchexnumber{0}]
-%D [\uchexnumber\scratchcounter]
-%D [\uchexnumber\zerocount]
-%D [\uchexnumber{\number0}]
-%D [\uchexnumber{\number\scratchcounter}]
-%D [\uchexnumber{\number\zerocount}]
-%D [\uchexnumber{\the\scratchcounter}]
-%D [\uchexnumber{\the\zerocount}]
-%D [\expandafter\uchexnumber\expandafter{\number0}]
-%D [\expandafter\uchexnumber\expandafter{\number\scratchcounter}]
-%D [\expandafter\uchexnumber\expandafter{\number\zerocount}]
-%D [\expandafter\uchexnumber\expandafter{\the\scratchcounter}]
-%D [\expandafter\uchexnumber\expandafter{\the\zerocount}]
-%D \stoptyping
-%D
-%D These macros may look slow but are actually rather fast due to
-%D the fact that \TEX\ handles conditional pretty fast. We need
-%D a two step approach in order to stay relax clean in fully
-%D expandable macros.
-
-\def\dolchexnumber#1\relax
- {\ifcase#1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or
- 8\or 9\or a\or b\or c\or d\or e\or f\else 0\fi}
-
-\def\douchexnumber#1\relax
- {\ifcase#1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or
- 8\or 9\or A\or B\or C\or D\or E\or F\else 0\fi}
-
-\def\dolchexnumbers#1\relax
- {\ifcase#1
- 00\or 01\or 02\or 03\or 04\or 05\or 06\or 07\or 08\or 09\or 0a\or 0b\or 0c\or 0d\or 0e\or 0f\or
- 10\or 11\or 12\or 13\or 14\or 15\or 16\or 17\or 18\or 19\or 1a\or 1b\or 1c\or 1d\or 1e\or 1f\or
- 20\or 21\or 22\or 23\or 24\or 25\or 26\or 27\or 28\or 29\or 2a\or 2b\or 2c\or 2d\or 2e\or 2f\or
- 30\or 31\or 32\or 33\or 34\or 35\or 36\or 37\or 38\or 39\or 3a\or 3b\or 3c\or 3d\or 3e\or 3f\or
- 40\or 41\or 42\or 43\or 44\or 45\or 46\or 47\or 48\or 49\or 4a\or 4b\or 4c\or 4d\or 4e\or 4f\or
- 50\or 51\or 52\or 53\or 54\or 55\or 56\or 57\or 58\or 59\or 5a\or 5b\or 5c\or 5d\or 5e\or 5f\or
- 60\or 61\or 62\or 63\or 64\or 65\or 66\or 67\or 68\or 69\or 6a\or 6b\or 6c\or 6d\or 6e\or 6f\or
- 70\or 71\or 72\or 73\or 74\or 75\or 76\or 77\or 78\or 79\or 7a\or 7b\or 7c\or 7d\or 7e\or 7f\or
- 80\or 81\or 82\or 83\or 84\or 85\or 86\or 87\or 88\or 89\or 8a\or 8b\or 8c\or 8d\or 8e\or 8f\or
- 90\or 91\or 92\or 93\or 94\or 95\or 96\or 97\or 98\or 99\or 9a\or 9b\or 9c\or 9d\or 9e\or 9f\or
- a0\or a1\or a2\or a3\or a4\or a5\or a6\or a7\or a8\or a9\or aa\or ab\or ac\or ad\or ae\or af\or
- b0\or b1\or b2\or b3\or b4\or b5\or b6\or b7\or b8\or b9\or ba\or bb\or bc\or bd\or be\or bf\or
- c0\or c1\or c2\or c3\or c4\or c5\or c6\or c7\or c8\or c9\or ca\or cb\or cc\or cd\or ce\or cf\or
- d0\or d1\or d2\or d3\or d4\or d5\or d6\or d7\or d8\or d9\or da\or db\or dc\or dd\or de\or df\or
- e0\or e1\or e2\or e3\or e4\or e5\or e6\or e7\or e8\or e9\or ea\or eb\or ec\or ed\or ee\or ef\or
- f0\or f1\or f2\or f3\or f4\or f5\or f6\or f7\or f8\or f9\or fa\or fb\or fc\or fd\or fe\or ff\fi}
-
-\def\douchexnumbers#1\relax
- {\ifcase#1
- 00\or 01\or 02\or 03\or 04\or 05\or 06\or 07\or 08\or 09\or 0A\or 0B\or 0C\or 0D\or 0E\or 0F\or
- 10\or 11\or 12\or 13\or 14\or 15\or 16\or 17\or 18\or 19\or 1A\or 1B\or 1C\or 1D\or 1E\or 1F\or
- 20\or 21\or 22\or 23\or 24\or 25\or 26\or 27\or 28\or 29\or 2A\or 2B\or 2C\or 2D\or 2E\or 2F\or
- 30\or 31\or 32\or 33\or 34\or 35\or 36\or 37\or 38\or 39\or 3A\or 3B\or 3C\or 3D\or 3E\or 3F\or
- 40\or 41\or 42\or 43\or 44\or 45\or 46\or 47\or 48\or 49\or 4A\or 4B\or 4C\or 4D\or 4E\or 4F\or
- 50\or 51\or 52\or 53\or 54\or 55\or 56\or 57\or 58\or 59\or 5A\or 5B\or 5C\or 5D\or 5E\or 5F\or
- 60\or 61\or 62\or 63\or 64\or 65\or 66\or 67\or 68\or 69\or 6A\or 6B\or 6C\or 6D\or 6E\or 6F\or
- 70\or 71\or 72\or 73\or 74\or 75\or 76\or 77\or 78\or 79\or 7A\or 7B\or 7C\or 7D\or 7E\or 7F\or
- 80\or 81\or 82\or 83\or 84\or 85\or 86\or 87\or 88\or 89\or 8A\or 8B\or 8C\or 8D\or 8E\or 8F\or
- 90\or 91\or 92\or 93\or 94\or 95\or 96\or 97\or 98\or 99\or 9A\or 9B\or 9C\or 9D\or 9E\or 9F\or
- A0\or A1\or A2\or A3\or A4\or A5\or A6\or A7\or A8\or A9\or AA\or AB\or AC\or AD\or AE\or AF\or
- B0\or B1\or B2\or B3\or B4\or B5\or B6\or B7\or B8\or B9\or BA\or BB\or BC\or BD\or BE\or BF\or
- C0\or C1\or C2\or C3\or C4\or C5\or C6\or C7\or C8\or C9\or CA\or CB\or CC\or CD\or CE\or CF\or
- D0\or D1\or D2\or D3\or D4\or D5\or D6\or D7\or D8\or D9\or DA\or DB\or DC\or DD\or DE\or DF\or
- E0\or E1\or E2\or E3\or E4\or E5\or E6\or E7\or E8\or E9\or EA\or EB\or EC\or ED\or EE\or EF\or
- F0\or F1\or F2\or F3\or F4\or F5\or F6\or F7\or F8\or F9\or FA\or FB\or FC\or FD\or FE\or FF\fi}
-
-\def\lchexnumber #1{\@EA\dolchexnumber \number#1\relax}
-\def\uchexnumber #1{\@EA\douchexnumber \number#1\relax}
-\def\lchexnumbers#1{\@EA\dolchexnumbers\number#1\relax}
-\def\uchexnumbers#1{\@EA\douchexnumbers\number#1\relax}
-
-\let\hexnumber\uchexnumber
-
-%D \macros
-%D {octnumber}
-%D
-%D For unicode remapping purposes, we need octal numbers.
-
-\def\dooctnumber#1\relax
- {\ifcase#1
- 000\or 001\or 002\or 003\or 004\or 005\or 006\or 007\or
- 010\or 011\or 012\or 013\or 014\or 015\or 016\or 017\or
- 020\or 021\or 022\or 023\or 024\or 025\or 026\or 027\or
- 030\or 031\or 032\or 033\or 034\or 035\or 036\or 037\or
- 040\or 041\or 042\or 043\or 044\or 045\or 046\or 047\or
- 050\or 051\or 052\or 053\or 054\or 055\or 056\or 057\or
- 060\or 061\or 062\or 063\or 064\or 065\or 066\or 067\or
- 070\or 071\or 072\or 073\or 074\or 075\or 076\or 077\or
- 100\or 101\or 102\or 103\or 104\or 105\or 106\or 107\or
- 110\or 111\or 112\or 113\or 114\or 115\or 116\or 117\or
- 120\or 121\or 122\or 123\or 124\or 125\or 126\or 127\or
- 130\or 131\or 132\or 133\or 134\or 135\or 136\or 137\or
- 140\or 141\or 142\or 143\or 144\or 145\or 146\or 147\or
- 150\or 151\or 152\or 153\or 154\or 155\or 156\or 157\or
- 160\or 161\or 162\or 163\or 164\or 165\or 166\or 167\or
- 170\or 171\or 172\or 173\or 174\or 175\or 176\or 177\or
- 200\or 201\or 202\or 203\or 204\or 205\or 206\or 207\or
- 210\or 211\or 212\or 213\or 214\or 215\or 216\or 217\or
- 220\or 221\or 222\or 223\or 224\or 225\or 226\or 227\or
- 230\or 231\or 232\or 233\or 234\or 235\or 236\or 237\or
- 240\or 241\or 242\or 243\or 244\or 245\or 246\or 247\or
- 250\or 251\or 252\or 253\or 254\or 255\or 256\or 257\or
- 260\or 261\or 262\or 263\or 264\or 265\or 266\or 267\or
- 270\or 271\or 272\or 273\or 274\or 275\or 276\or 277\or
- 300\or 301\or 302\or 303\or 304\or 305\or 306\or 307\or
- 310\or 311\or 312\or 313\or 314\or 315\or 316\or 317\or
- 320\or 321\or 322\or 323\or 324\or 325\or 326\or 327\or
- 330\or 331\or 332\or 333\or 334\or 335\or 336\or 337\or
- 340\or 341\or 342\or 343\or 344\or 345\or 346\or 347\or
- 350\or 351\or 352\or 353\or 354\or 355\or 356\or 357\or
- 360\or 361\or 362\or 363\or 364\or 365\or 366\or 367\or
- 370\or 371\or 372\or 373\or 374\or 375\or 376\or 377\fi}
-
-\def\octnumber#1{\@EA\dooctnumber\number#1\relax}
-
-%D \macros
-%D {twodigits, threedigits}
-%D
-%D These macros provides two or three digits always:
-
-\def\twodigits #1{\ifnum #1<10 0\fi\number#1}
-\def\threedigits#1{\ifnum#1<100 \ifnum#1<10 0\fi0\fi\number#1}
-
-%D \macros{modulonumber}
-%D
-%D In the conversion macros described in \type {core-con} we
-%D need a wrap||around method. The following solution is
-%D provided by Taco.
-%D
-%D The \type {modulonumber} macro expands to the mathematical
-%D modulo of a positive integer. It is crucial for it's
-%D application that this macro is fully exandable.
-%D
-%D The expression inside the \type {\numexpr} itself is
-%D somewhat bizarre because \ETEX\ uses a rounding
-%D division instead of truncation. If \ETEX's division
-%D would have behaved like \TEX's normal\type{\divide}, then
-%D the expression could have been somewhat simpler, like
-%D \type {#2-(#2/#1)*#1}. This works just as well, but a bit
-%D more complex.
-
-\def\modulonumber#1#2%
- {\the\numexpr#2-((((#2+(#1/2))/#1)-1)*#1)\relax}
-
-%D \macros{modulatednumber}
-%D
-%D Modulo numbers run from zero to one less than the limit,
-%D but for conversion sets, we need a value between 1 and the
-%D limit. The \type{\modulatednumber} arranges that. This
-%D macro also needs to be fully expandable, resulting in
-%D two \type{\numexpr}s.
-
-\def\modulatednumber#1#2%
- {\ifnum\the\numexpr\modulonumber{#1}{#2}\relax=0 #1%
- \else \the\numexpr\modulonumber{#1}{#2}\relax \fi}
-
-%D \macros
-%D {hexstringtonumber}
-%D
-%D This macro converts a two character hexadecimal number into
-%D a decimal number, thereby taking care of lowercase characters
-%D as well.
-
-\dostepwiserecurse{0}{9}{1}{\setevalue{@@uc@@\recurselevel}{\recurselevel}}
-
-\setvalue{@@uc@@a}{A} \setvalue{@@uc@@A}{A}
-\setvalue{@@uc@@b}{B} \setvalue{@@uc@@B}{B}
-\setvalue{@@uc@@c}{C} \setvalue{@@uc@@C}{C}
-\setvalue{@@uc@@d}{D} \setvalue{@@uc@@D}{D}
-\setvalue{@@uc@@e}{E} \setvalue{@@uc@@E}{E}
-\setvalue{@@uc@@f}{F} \setvalue{@@uc@@F}{F}
-
-\def\hexstringtonumber#1% {FF}
- {\dohexstringtonumber#1}
-
-\def\dohexstringtonumber#1#2% FF
- {"\csname @@uc@@#1\endcsname\csname @@uc@@#2\endcsname}
-
-%D \macros
-%D {rawcharacter}
-%D
-%D The next conversion macro produces raw characters. We have to
-%D construct the macro in a special way to avoid problems with
-%D characters with special meanings. So, we revert to the
-%D lowercase conversion trick to bypass \TEX's input parser.
-%D
-%D This macro can be used to produce proper 8 bit characters
-%D that we sometimes need in backends and round||trips.
-
-\bgroup
-
-\catcode`\^^@=12 % ascii null == ignored in plain
-\catcode`\^^?=12 % ascii delete == invalid in plain
-
-\let\or\relax
-
-\xdef\rawcharacter{ ^^00\or}
-
-\dorecurse{255}
- {\lccode`a=\recurselevel
- \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}
-
-\egroup
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/syst-ext.mkii b/Master/texmf-dist/tex/context/base/mkii/syst-ext.mkii
deleted file mode 100644
index 39f4145f278..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/syst-ext.mkii
+++ /dev/null
@@ -1,5025 +0,0 @@
-%D \module
-%D [ file=syst-ext,
-%D version=1995.10.10,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Extras,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt System Macros / Extras}
-
-%D In this second system module, we continue the definition of
-%D some handy commands.
-
-\unprotect
-
-%D \macros
-%D {rawgetparameters}
-%D
-%D A raw and dirty alternative for \type {\getparameters}; no
-%D checking is done!
-
-% \def\rawgetparameters[#1][#2]% scheelt 5\%
-% {\def\rawparameterprefix{#1}%
-% \expandafter\rawsetparameter#2,]=,}
-
-\def\rawsetparameter#1=#2,%
- {\if]#1\else
- \expandafter\def\csname\rawparameterprefix#1\endcsname{#2}%
- \expandafter\rawsetparameter
- \fi}
-
-% the next one handles empty #1 okay:
-
-\def\rawgetparameters[#1][#2% some 5-10% faster
- {\ifx#2]% test is needed, else bomb on [#1][]
- \expandafter\gobbleoneargument
- \else
- \def\rawparameterprefix{#1}%
- \expandafter\dorawgetparameters
- \fi#2}
-
-\def\dorawgetparameters#1]%
- {\expandafter\rawsetparameter#1,]=,}
-
-%D \macros
-%D {doglobal,
-%D redoglobal,dodoglobal,resetglobal}
-%D
-%D The two macros \type {\redoglobal} and \type{\dodoglobal} are
-%D used in this and some other modules to enforce a user
-%D specified \type {\doglobal} action. The last and often only
-%D global assignment in a macro is done with
-%D \type {\dodoglobal}, but all preceding ones with
-%D \type {\redoglobal}. When using only alternatives, one can
-%D reset this mechanism with \type {\resetglobal}.
-
-\def\doglobal
- {\let\redoglobal\global
- \def\dodoglobal{\resetglobal\global}}
-
-\def\resetglobal
- {\let\redoglobal\relax
- \let\dodoglobal\relax}
-
-\resetglobal
-
-%D New:
-
-\def\doglobal
- {\ifx\redoglobal\relax
- \let\redoglobal\global
- \let\dodoglobal\@@dodoglobal
- %\else
- % \writestatus{system}{global not reset, warn me!}%
- \fi}
-
-\def\@@dodoglobal
- {\resetglobal\global}
-
-\def\saveglobal
- {\let\@@dodoglobal\dodoglobal
- \let\@@redoglobal\redoglobal}
-
-\def\restoreglobal
- {\let\redoglobal\@@redoglobal
- \let\dodoglobal\@@dodoglobal}
-
-%D A very useful application of this macro is \type {\newif},
-%D \TEX's fake boolean type. Not being a primitive,
-%D \type {\global} hopelessly fails here. But a slight
-%D adaption of Knuth's original macro permits:
-%D
-%D \starttyping
-%D \doglobal\newif\iftest
-%D \stoptyping
-%D
-%D Of course one can still say:
-%D
-%D \starttyping
-%D \global\testtrue
-%D \global\testfalse
-%D \stoptyping
-%D
-%D Apart from the prefixes, a few more \type{\expandafters}
-%D are needed:
-
-\def\newif#1%
- {\scratchcounter\escapechar
- \escapechar\minusone
- \expandafter\expandafter\expandafter
- \redoglobal\expandafter\expandafter\expandafter
- \edef\@if#1{true}{\let\noexpand#1\noexpand\iftrue}%
- \expandafter\expandafter\expandafter
- \redoglobal\expandafter\expandafter\expandafter
- \edef\@if#1{false}{\let\noexpand#1\noexpand\iffalse}%
- \dodoglobal\@if#1{false}%
- \escapechar\scratchcounter}
-
-%D Also:
-
-\def\define#1%
- {\ifx#1\undefined
- \expandafter\long\expandafter\def
- \else
- \message{[\noexpand#1is already defined]}%
- \expandafter\long\expandafter\def\expandafter\gobbleddefinition
- \fi#1}
-
-\def\redefine#1%
- {\ifx#1\undefined\else
- \message{[\noexpand#1is redefined]}%
- \fi
- \long\def#1}
-
-% \define\hans{hans}
-% \redefine\hans{hans}
-% \define\hans#1[]#2#3{hans}
-
-%D The next variant fits nicely in the setups syntax:
-%D
-%D \starttyping
-%D \starttexdefinition bagger [#1] #2
-%D oeps
-%D #1
-%D oeps
-%D \stoptexdefinition
-%D
-%D \bagger [a] {b}
-%D \stoptyping
-
-\bgroup \obeylines
-
-\gdef\starttexdefinition%
- {\bgroup%
- \obeylines%
- \dostarttexdefinition}
-
-\gdef\dostarttexdefinition #1
- {\catcode13=\@@ignore%
- \doifinstringelse\letterhash{\detokenize{#1}}\dodostarttexdefinition\nonostarttexdefinition#1
- }
-
-\long\gdef\dodostarttexdefinition#1 #2
- {\dododostarttexdefinition{#1}{#2}}
-
-\long\gdef\dododostarttexdefinition#1#2#3\stoptexdefinition%
- {\egroup%
- \long\setvalue{#1}#2{#3}}
-
-\long\gdef\nonostarttexdefinition#1
- {\nononostarttexdefinition{#1}{}}
-
-\long\gdef\nononostarttexdefinition#1#2#3\stoptexdefinition%
- {\egroup%
- \long\setvalue{#1}{#3}}
-
-\egroup
-
-%D \macros
-%D {newcounter,
-%D increment,decrement}
-%D
-%D Unfortunately the number of \COUNTERS\ in \TEX\ is limited,
-%D but fortunately we can store numbers in a macro. We can
-%D increment such pseudo \COUNTERS\ with \type{\increment}.
-%D
-%D \starttyping
-%D \increment(\counter,20)
-%D \increment(\counter,-4)
-%D \increment(\counter)
-%D \increment\counter
-%D \stoptyping
-%D
-%D After this sequence of commands, the value of
-%D \type{\counter} is 20, 16, 17 and~18. Of course there is
-%D also the complementary command \type{\decrement}.
-%D
-%D Global assignments are possible too, using \type{\doglobal}:
-%D
-%D \starttyping
-%D \doglobal\increment\counter
-%D \stoptyping
-%D
-%D When \type{\counter} is undefined, it's value is initialized
-%D at~0. It is nevertheless better to define a \COUNTER\
-%D explicitly. One reason could be that the \COUNTER\ can be
-%D part of a test with \type{\ifnum} and this conditional does
-%D not accept undefined macro's. The \COUNTER\ in our example
-%D can for instance be defined with:
-%D
-%D \starttyping
-%D \newcounter\counter
-%D \stoptyping
-%D
-%D The command \type{\newcounter} must not be confused with
-%D \type{\newcount}! Of course this mechanism is much slower
-%D than using \TEX's \COUNTERS\ directly. In practice
-%D \COUNTERS\ (and therefore our pseudo counters too) are
-%D seldom the bottleneck in the processing of a text. Apart
-%D from some other incompatilities we want to mention a pitfal
-%D when using \type{\ifnum}.
-%D
-%D \starttyping
-%D \ifnum\normalcounter=\pseudocounter \doif \else \doelse \fi
-%D \ifnum\pseudocounter=\normalcounter \doif \else \doelse \fi
-%D \stoptyping
-%D
-%D In the first test, \TEX\ continues it's search for the
-%D second number after reading \type{\pseudocounter}, while
-%D in the second test, it stops reading after having
-%D encountered a real one. Tests like the first one therefore
-%D can give unexpected results, for instance execution
-%D of \type{\doif} even if both numbers are unequal.
-
-\def\zerocountervalue{0}
-
-\def\newcounter#1%
- {\dodoglobal\let#1\zerocountervalue}
-
-% This is the original implementation:
-%
-% \def\dodododoincrement(#1,#2)%
-% {\ifx#1\undefined
-% \redoglobal\let#1\zerocountervalue
-% \else\ifx#1\relax % \csname...\endcsname
-% \redoglobal\let#1\zerocountervalue
-% \fi\fi
-% \scratchcounter=#2\relax
-% \scratchcounter=\incrementsign\scratchcounter
-% \advance\scratchcounter #1\relax
-% \dodoglobal\edef#1{\the\scratchcounter}}
-%
-% \def\dododoincrement#1%
-% {\dodododoincrement(#1,1)}
-%
-% \def\dodoincrement(#1%
-% {\doifnextcharelse,%
-% {\dodododoincrement(#1}{\dodododoincrement(#1,1}}
-%
-% \def\doincrement#1%
-% {\def\incrementsign{#1}%
-% \doifnextcharelse(\dodoincrement\dododoincrement}
-%
-% \def\increment{\doincrement+}
-% \def\decrement{\doincrement-}
-%
-% And this is the one optimized for speed:
-
-% maxcounter = 2\maxdimen=1
-
-\def\!!zerocount {0} % alongside \zerocount
-\def\!!minusone {-1} % alongside \minusone
-\def\!!plusone {1} % alongside \plusone
-
-\beginTEX
-
-\def\dodoindecrement#1(#2,#3)%
- {\ifx#2\undefined
- \redoglobal\let#2\zerocountervalue
- \else\ifx#2\relax % \csname...\endcsname
- \redoglobal\let#2\zerocountervalue
- \fi\fi
- \scratchcounter#3\relax
- \scratchcounter#1\scratchcounter
- \advance\scratchcounter#2\relax
- \dodoglobal\edef#2{\the\scratchcounter}}
-
-\def\dodoincrement(#1%
- {\doifnextcharelse,{\dodoindecrement+(#1}{\dodoindecrement+(#1,1}}
-
-\def\dododecrement(#1%
- {\doifnextcharelse,{\dodoindecrement-(#1}{\dodoindecrement-(#1,1}}
-
-\def\doincrement#1% 10% faster alternative
- {\ifx#1\undefined
- \dodoglobal\let#1\!!plusone
- \else\ifx#1\relax % \csname...\endcsname
- \dodoglobal\let#1\!!plusone
- \else
- \fastincrement#1%
- \fi\fi}
-
-\def\dodecrement#1% 10% faster alternative
- {\ifx#1\undefined
- \dodoglobal\let#1\!!minusone
- \else\ifx#1\relax % \csname...\endcsname
- \dodoglobal\let#1\!!minusone
- \else
- \fastdecrement#1%
- \fi\fi}
-
-\def\fastdecrement#1% 50% faster alternative
- {\scratchcounter#1\advance\scratchcounter\minusone
- \dodoglobal\edef#1{\the\scratchcounter}}
-
-\def\fastincrement#1% 50% faster alternative
- {\scratchcounter#1\advance\scratchcounter\plusone
- \dodoglobal\edef#1{\the\scratchcounter}}
-
-\endTEX
-
-\beginETEX \numexpr
-
-% \def\doindecrement#1#2%
-% {\dodoglobal\edef#2%
-% {\the\numexpr(\ifx#2\undefined\else\ifx#2\relax\else#2\fi\fi#11)}}
-%
-% \def\doincrement{\doindecrement+}
-% \def\dodecrement{\doindecrement-}
-%
-% some 3\% faster:
-
-\def\doindecrement#1#2%
- {\dodoglobal\edef#2%
- {\the\numexpr\ifx#2\undefined\else\ifx#2\relax\else#2\fi\fi+#1\relax}}
-
-\def\doincrement{\doindecrement\plusone }
-\def\dodecrement{\doindecrement\minusone}
-
-\def\dodoindecrement#1#2,#3)%
- {\dodoglobal\edef#2%
- {\the\numexpr\ifx#2\undefined\else\ifx#2\relax\else#2\fi\fi#1#3\relax}}
-
-\def\dodoincrement(#1%
- {\doifnextcharelse,{\dodoindecrement+#1}{\dodoindecrement+#1,\plusone}}
-
-\def\dododecrement(#1%
- {\doifnextcharelse,{\dodoindecrement-#1}{\dodoindecrement-#1,\plusone}}
-
-\def\fastincrement#1{\dodoglobal\edef#1{\the\numexpr#1+\plusone \relax}}
-\def\fastdecrement#1{\dodoglobal\edef#1{\the\numexpr#1+\minusone\relax}}
-
-\endETEX
-
-\def\increment{\doifnextcharelse(\dodoincrement\doincrement}
-\def\decrement{\doifnextcharelse(\dododecrement\dodecrement}
-
-\def\incrementvalue#1{\expandafter\increment\csname#1\endcsname}
-\def\decrementvalue#1{\expandafter\decrement\csname#1\endcsname}
-
-%D \macros
-%D {newsignal}
-%D
-%D When writing advanced macros, we cannot do without
-%D signaling. A signal is a small (invisible) kern or penalty
-%D that signals the next macro that something just happened.
-%D This macro can take any action depending on the previous
-%D signal. Signals must be unique and the next macro takes care
-%D of that.
-%D
-%D \starttyping
-%D \newsignal\somesignal
-%D \stoptyping
-%D
-%D Signals old dimensions and can be used in skips, kerns and
-%D tests like \type{\ifdim}.
-
-\newdimen\maximumsignal % step is about 0.00025pt
-
-\def\newsignal#1%
- {\ifx#1\undefined
- \advance\maximumsignal 2sp % to be save in rounding
- \edef#1{\the\maximumsignal}%
- \fi}
-
-%D \macros
-%D {newskimen}
-%D
-%D \TEX\ offers 256 \DIMENSIONS\ and \SKIPS. Unfortunately this
-%D amount is too small to suit certain packages. Therefore when
-%D possible one should use:
-%D
-%D \starttyping
-%D \newskimen\tempskimen
-%D \stoptyping
-%D
-%D This commands allocates a \DIMENSION\ or a \SKIP, depending
-%D on the availability. One should be aware of the difference
-%D between both. When searching for some glue \TEX\ goes on
-%D searching till it's sure that no other glue component if
-%D found. This search can be canceled by using \type{\relax}
-%D when possible and needed.
-%D
-%D \starttyping
-%D \def\newskimen#1%
-%D {\ifx#1\undefined
-%D \ifnum\count11>\count12
-%D \newskip#1\relax
-%D \else
-%D \newdimen#1\relax
-%D \fi
-%D \fi}
-%D \stoptyping
-%D
-%D In order to make this macro work in plain \TEX\ too, we
-%D use the following alternative, which fools \TEX\ about
-%D the new commands being \type {\outer} ones.
-
-% \def\newskimen#1%
-% {\ifx#1\undefined
-% \csname new\ifnum\count11>\count12 skip\else dimen\fi\endcsname#1%
-% \fi}
-
-\let\newskimen\newdimen % it's all etex or later now
-
-%D \macros
-%D {strippedcsname}
-%D
-%D The next macro can be very useful when using \type{\csname}
-%D like in:
-%D
-%D \starttyping
-%D \csname if\strippedcsname\something\endcsname
-%D \stoptyping
-%D
-%D This expands to \type{\ifsomething}.
-%D
-%D \starttyping
-%D \def\strippedcsname
-%D {\expandafter\gobbleoneargument\string}
-%D \stoptyping
-%D
-%D Slower but better:
-
-\ifx\letterbackslash\undefined
- {\catcode`.=0 .catcode`.\ 12 .xdef.letterbackslash{.string\}} % hack
-\fi
-
-\def\strippedcsname#1% this permits \strippedcsname{\xxx} and \strippedcsname{xxx}
- {\expandafter\dostrippedcsname\string#1}
-
-\def\dostrippedcsname#1%
- {\if\noexpand#1\letterbackslash\else#1\fi}
-
-%D \macros
-%D {savenormalmeaning}
-%D
-%D We will use this one in:
-
-\def\savenormalmeaning#1%
- {\ifundefined{normal\strippedcsname#1}%
- \letvalue{normal\strippedcsname#1}#1%
- \fi}
-
-%D \macros
-%D {newconditional,
-%D settrue, setfalse,
-%D ifconditional,then}
-%D
-%D \TEX's lacks boolean variables, although the \PLAIN\ format
-%D implements \type{\newif}. The main disadvantage of this
-%D scheme is that it takes three hash table entries. A more
-%D memory saving alternative is presented here. A conditional
-%D is defined by:
-%D
-%D \starttyping
-%D \newconditional\doublesided
-%D \setfalse
-%D \stoptyping
-%D Setting a conditional is done by \type{\settrue} and
-%D \type{\setfalse}:
-%D
-%D \starttyping
-%D \settrue\doublesided
-%D \setfalse
-%D \stoptyping
-%D while testing is accomplished by:
-%D
-%D \starttyping
-%D \ifconditional\doublesided ... \else ... \fi
-%D \setfalse
-%D \stoptyping
-%D We cannot use the simple scheme:
-%D
-%D \starttyping
-%D \def\settrue #1{\let#1=\iftrue}
-%D \def\setfalse#1{\let#1=\iffalse}
-%D \stoptyping
-%D
-%D Such an implementation gives problems with nested
-%D conditionals. The next implementation is abaou as fast
-%D and just as straightforward:
-
-\def\settrue #1{\chardef#1\zerocount}
-\def\setfalse#1{\chardef#1\plusone}
-
-\let\newconditional = \setfalse
-\let\ifconditional = \ifcase
-
-\let\then\relax % so that we can say \ifnum1>2\then -)
-
-%D \macros
-%D {ifzeropt}
-%D
-%D The next macro is both cosmetic and byte saving. It is
-%D pretty \type{\if}||safe too. It can be used in cases
-%D like:
-%D
-%D \starttyping
-%D \ifzeropt \somedimen ... \else ... \fi
-%D \stoptyping
-
-\let\ifzeropt\ifcase
-
-%D \macros
-%D {dorecurse,recurselevel,recursedepth,
-%D dostepwiserecurse,
-%D for}
-%D
-%D \TEX\ does not offer us powerfull for||loop mechanisms. On
-%D the other hand its recursion engine is quite unique. We
-%D therefore identify the for||looping macros by this method.
-%D The most simple alternative is the one that only needs a
-%D number.
-%D
-%D \starttyping
-%D \dorecurse {n} {whatever we want}
-%D \stoptyping
-%D
-%D This macro can be nested without problems and therefore be
-%D used in situations where \PLAIN\ \TEX's \type{\loop} macro
-%D ungracefully fails. The current value of the counter is
-%D available in \type{\recurselevel}, before as well as after
-%D the \typ{whatever we wat} stuff.
-%D
-%D \starttyping
-%D \dorecurse % inner loop
-%D {10}
-%D {\recurselevel: % outer value
-%D \dorecurse % inner loop
-%D {\recurselevel} % outer value
-%D {\recurselevel} % inner value
-%D \dorecurse % inner loop
-%D {\recurselevel} % outer value
-%D {\recurselevel} % inner value
-%D \endgraf}
-%D \stoptyping
-%D
-%D In this example the first, second and fourth
-%D \type{\recurselevel} concern the outer loop, while the third
-%D and fifth one concern the inner loop. The depth of the
-%D nesting is available for inspection in \type{\recursedepth}.
-%D
-%D Both \type{\recurselevel} and \type{\recursedepth} are
-%D macros. The real \COUNTERS\ are hidden from the user because
-%D we don't want any interference.
-
-\newcount\outerrecurse
-\newcount\innerrecurse
-
-\def\recursedepth{\the\outerrecurse}
-\def\recurselevel{0}
-
-\let\nextrecurse\relax
-
-%D Acceptable:
-%D
-%D \starttyping
-%D \long\def\dostepwiserecurse#1#2#3%
-%D {\let\nextrecurse\gobblefourarguments
-%D \ifnum#3>0\relax\ifnum#2<#1\relax\else
-%D \def\nextrecurse{\dosetstepwiserecurse>}%
-%D \fi\fi
-%D \ifnum#3<0\relax\ifnum#1<#2\relax\else
-%D \def\nextrecurse{\dosetstepwiserecurse<}%
-%D \fi\fi
-%D \nextrecurse{#1}{#2}{#3}}
-%D \stoptyping
-%D
-%D Better:
-%D
-%D \starttyping
-%D \long\def\dostepwiserecurse#1#2#3%
-%D {\let\nextrecurse\gobblefourarguments
-%D \ifnum#3>0\relax \ifnum#2<#1\relax \else
-%D \def\nextrecurse{\dosetstepwiserecurse>}%
-%D \fi \else \ifnum#3<0\relax \ifnum#1<#2\relax \else
-%D \def\nextrecurse{\dosetstepwiserecurse<}%
-%D \fi \fi \fi
-%D \nextrecurse{#1}{#2}{#3}}
-%D
-%D \def\@@irecurse{@@irecurse} % stepper
-%D \def\@@nrecurse{@@nrecurse} % number of steps
-%D \def\@@srecurse{@@srecurse} % step
-%D \def\@@drecurse{@@drecurse} % direction, < or >
-%D \def\@@arecurse{@@arecurse} % action
-%D
-%D \long\def\dosetstepwiserecurse#1#2#3#4#5%
-%D {\global\advance\outerrecurse 1
-%D \setevalue{\@@drecurse\recursedepth}{#1}%
-%D \setevalue{\@@irecurse\recursedepth}{\number#2}%
-%D \setevalue{\@@nrecurse\recursedepth}{\number#3}%
-%D \setevalue{\@@srecurse\recursedepth}{\number#4}%
-%D \long\setvalue{\@@arecurse\recursedepth}{#5}%
-%D \dodorecurse}
-%D
-%D \def\donorecurse
-%D {}
-%D
-%D \def\dododorecurse
-%D {\edef\recurselevel{\csname\@@irecurse\recursedepth\endcsname}%
-%D \getvalue{\@@arecurse\recursedepth}%
-%D \edef\recurselevel{\csname\@@irecurse\recursedepth\endcsname}%
-%D \innerrecurse\recurselevel
-%D \advance\innerrecurse \csname\@@srecurse\recursedepth\endcsname
-%D \setevalue{\@@irecurse\recursedepth}{\the\innerrecurse}%
-%D \dodorecurse}
-%D
-%D \def\dodorecurse
-%D {\ifnum\csname\@@irecurse\recursedepth\endcsname
-%D \csname\@@drecurse\recursedepth\endcsname
-%D \csname\@@nrecurse\recursedepth\endcsname\relax
-%D \expandafter\nododorecurse
-%D \else
-%D \expandafter\dododorecurse
-%D \fi}
-%D
-%D \def\nododorecurse
-%D {\global\advance\outerrecurse -1
-%D \edef\recurselevel{\csname\@@irecurse\recursedepth\endcsname}}
-%D \stoptyping
-%D
-%D Cleaner and much faster:
-
-\def\@@irecurse{@@ir@@} % ecurse} % stepper
-\def\@@arecurse{@@ar@@} % ecurse} % action
-
-% \mathchardef
-
-\long\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
- {\global\advance\outerrecurse \plusone
- \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname{#4}%
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
- \ifnum#3>0\relax
- \ifnum#2<#1\relax
- \let\nextrecurse\exitstepwiserecurse
- \else
- \let\nextrecurse\dodostepwiserecurse
- \fi
- \else
- \ifnum#3<0\relax
- \ifnum#1<#2\relax
- \let\nextrecurse\exitstepwiserecurse
- \else
- \let\nextrecurse\dodostepwisereverse
- \fi
- \else
- \let\nextrecurse\exitstepwiserecurse
- \fi
- \fi\expanded{\nextrecurse{\number#1}{\number#2}{\number#3}}}
-
-\beginETEX \numexpr
-
-\long\def\dodostepwiserecurse#1#2#3% from to step
- {\ifnum#1>#2\relax
- \@EA\nodostepwiserecurse
- \else
- \def\recurselevel{#1}%
- \@EAEAEA\redostepwiserecurse\@EA
- \fi\@EA{\the\numexpr\recurselevel+#3\relax}{#2}{#3}}
-
-\endETEX
-
-\beginTEX
-
-\long\def\dodostepwiserecurse#1#2#3% from to step
- {\ifnum#1>#2\relax
- \@EA\nodostepwiserecurse
- \else
- \def\recurselevel{#1}%
- \innerrecurse#1\advance\innerrecurse#3\relax
- \@EAEAEA\redostepwiserecurse\@EA
- \fi\@EA{\the\innerrecurse}{#2}{#3}}
-
-\endTEX
-
-\def\expandrecursecontent
- {\csname\@@arecurse\recursedepth\endcsname}
-
-\def\redostepwiserecurse
- {\expandrecursecontent\dodostepwiserecurse}
-
-\beginETEX \numexpr
-
-\long\def\dodostepwisereverse#1#2#3% from to step
- {\ifnum#1<#2\relax
- \@EA\nodostepwiserecurse
- \else
- \def\recurselevel{#1}%
- \@EAEAEA\redostepwisereverse\@EA
- \fi\@EA{\the\numexpr\recurselevel#3\relax}{#2}{#3}}
-
-\endETEX
-
-\beginTEX
-
-\long\def\dodostepwisereverse#1#2#3% from to step
- {\ifnum#1<#2\relax
- \@EA\nodostepwiserecurse
- \else
- \def\recurselevel{#1}%
- \innerrecurse#1\relax
- \advance\innerrecurse#3\relax
- \@EAEAEA\redostepwisereverse\@EA
- \fi\@EA{\the\innerrecurse}{#2}{#3}}
-
-\endTEX
-
-\def\redostepwisereverse
- {\expandrecursecontent\dodostepwisereverse}
-
-\def\exitstepwiserecurse
- {\nodostepwiserecurse\relax}
-
-\def\nodostepwiserecurse#1#2#3#4%
- {\@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
- \global\advance\outerrecurse \minusone}
-
-\def\nonostepwiserecurse#1#2#3%
- {\@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
- \global\advance\outerrecurse \minusone}
-
-\def\dorecurse#1%
- {\dostepwiserecurse1{#1}1}
-
-%D As we can see here, the simple command \type{\dorecurse} is
-%D a special case of the more general:
-%D
-%D \starttyping
-%D \dostepwiserecurse {from} {to} {step} {action}
-%D \stoptyping
-%D
-%D This commands accepts positive and negative steps. Illegal
-%D values are handles as good as possible and the macro accepts
-%D numbers and \COUNTERS.
-%D
-%D \starttyping
-%D \dostepwiserecurse {1} {10} {2} {...}
-%D \dostepwiserecurse {10} {1} {-2} {...}
-%D \stoptyping
-%D
-%D Because the simple case is used often, we implement it
-%D more efficiently:
-
-\long\def\dorecurse#1%
- {\ifcase#1\relax
- \expandafter\gobbletwoarguments
- \or
- \expandafter\ydorecurse
- \else
- \expandafter\xdorecurse
- \fi{#1}}
-
-\long\def\xdorecurse#1#2%
- {\global\advance\outerrecurse \plusone
- \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname{#2}%
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
- \@EA\dodorecurse\@EA1\@EA{\number#1}}
-
-\long\def\ydorecurse#1#2%
- {\global\advance\outerrecurse \plusone
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
- \let\recurselevel\!!plusone
- #2%
- \@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
- \global\advance\outerrecurse \minusone}
-
-\beginETEX \numexpr
-
-\long\def\dodorecurse#1#2% from to
- {\ifnum#1>#2\relax
- \@EA\nodorecurse
- \else
- \def\recurselevel{#1}%
- \@EAEAEA\redorecurse
- \fi\@EA{\the\numexpr\recurselevel+\plusone\relax}{#2}}
-
-\endETEX
-
-\beginTEX
-
-\long\def\dodorecurse#1#2% from to
- {\ifnum#1>#2\relax
- \@EA\nodorecurse
- \else
- \def\recurselevel{#1}%
- \innerrecurse#1\advance\innerrecurse\plusone
- \@EAEAEA\redorecurse
- \fi\@EA{\the\innerrecurse}{#2}}
-
-\endTEX
-
-\def\redorecurse
- {\expandrecursecontent\dodorecurse}
-
-\def\nodorecurse#1#2#3%
- {\@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
- \global\advance\outerrecurse \minusone }
-
-%D \macros
-%D {doloop,exitloop}
-%D
-%D Sometimes loops are not determined by counters, but by
-%D (a combinations of) conditions. We therefore implement a
-%D straightforward loop, which can only be left when we
-%D explictly exit it. Nesting is supported. First we present
-%D a more extensive alternative.
-%D
-%D \starttyping
-%D \doloop
-%D {Some kind of typesetting punishment \par
-%D \ifnum\pageno>100 \exitloop \fi}
-%D \stoptyping
-%D
-%D When needed, one can call for \type{\looplevel} and
-%D \type{\loopdepth}.
-%D
-%D If we write this macros from scratch, we end up with
-%D something like the ones described above:
-%D
-%D \starttyping
-%D \def\@@eloop{@@eloop} % exit
-%D \def\@@iloop{@@iloop} % stepper
-%D \def\@@aloop{@@aloop} % action
-%D
-%D \newcount\outerloop
-%D
-%D \def\loopdepth%
-%D {\the\outerloop}
-%D
-%D \def\exitloop%
-%D {\setevalue{\@@eloop\loopdepth}{0}}
-%D
-%D \long\def\doloop#1%
-%D {\global\advance\outerloop by 1
-%D \setevalue{\@@iloop\loopdepth}{1}%
-%D \setevalue{\@@eloop\loopdepth}{1}%
-%D \long\setvalue{\@@aloop\loopdepth}{#1}%
-%D \dodoloop}
-%D
-%D \def\dodonoloop%
-%D {\global\advance\outerloop by -1\relax}
-%D
-%D \def\dododoloop%
-%D {\edef\looplevel{\getvalue{\@@iloop\loopdepth}}%
-%D \innerrecurse=\looplevel
-%D \advance\innerrecurse by 1
-%D \setevalue{\@@iloop\loopdepth}{\the\innerrecurse}%
-%D \getvalue{\@@aloop\loopdepth}%
-%D \edef\looplevel{\getvalue{\@@iloop\loopdepth}}%
-%D \dodoloop}
-%D
-%D \def\dodoloop%
-%D {\ifnum\getvalue{\@@eloop\loopdepth}=0
-%D \expandafter\dodonoloop
-%D \else
-%D \expandafter\dododoloop
-%D \fi}
-%D
-%D \def\doloop%
-%D {\dostepwiserecurse{1}{\maxdimen}{1}}
-%D
-%D \def\exitloop
-%D {\setvalue{\@@irecurse\recursedepth}{\maxdimen}}
-%D
-%D \def\looplevel{\recurselevel}
-%D \def\loopdepth{\recursedepth}
-%D \stoptyping
-%D
-%D We don't have to declare new counters for \type{\looplevel}
-%D and \type{\loopdepth} because we can use \type{\recurselevel}
-%D and \type{\recursedepth}.
-%D
-%D We prefer however a more byte saving implementation, that
-%D executes of course a bit slower.
-%D
-%D \starttyping
-%D \def\doloop%
-%D {\dostepwiserecurse1\maxdimen1}
-%D
-%D \def\exitloop%
-%D {\letvalue{\@@irecurse\recursedepth}\maxdimen}
-%D \stoptyping
-%D
-%D Although, the next version is faster because it used the
-%D simple loop.
-
-\let\endofloop\donothing
-
-\long\def\doloop#1%
- {\global\advance\outerrecurse \plusone
- \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname{#1}%
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
- \let\endofloop\dodoloop
- \dodoloop1} % no \plusone else \recurselevel wrong
-
-\beginETEX \numexpr
-
-\long\def\dodoloop#1%
- {\def\recurselevel{#1}%
- \@EA\redoloop\@EA{\the\numexpr\recurselevel+\plusone\relax}}
-
-\endETEX
-
-\beginTEX
-
-\long\def\dodoloop#1%
- {\def\recurselevel{#1}%
- \innerrecurse#1\advance\innerrecurse\plusone
- \@EA\redoloop\@EA{\the\innerrecurse}}
-
-\endTEX
-
-\def\redoloop
- {\expandrecursecontent\endofloop}
-
-\def\nodoloop#1%
- {\let\endofloop\dodoloop % new, permits nested \doloop's
- \@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
- \global\advance\outerrecurse\minusone}
-
-\def\exitloop % \exitloop quits at end
- {\let\endofloop\nodoloop}
-
-\long\def\exitloopnow#1\endofloop % \exitloopnow quits directly
- {\nodoloop}
-
-%D The loop is executed at least once, so beware of situations
-%D like:
-%D
-%D \starttyping
-%D \doloop {\exitloop some commands}
-%D \stoptyping
-%D
-%D It's just a matter of putting the text into the \type{\if}
-%D statement that should be there anyway, like in:
-%D
-%D \starttyping
-%D \doloop {\ifwhatever \exitloop \else some commands\fi}
-%D \stoptyping
-%D
-%D You can also quit a loop immediately, by using \type
-%D {\exitloopnow} instead. Beware, this is more sensitive
-%D for conditional errors.
-
-%D Krzysztof Leszczynski suggested to provide access to the level by
-%D means of a \type {#1}. I decided to pass the more frequently used
-%D level as \type {#1} and the less favoured depth as \type {#2}. The
-%D intended usage is:
-%D
-%D \starttyping
-%D \dorecurse{3}{\definesymbol[test-#1][xx-#1]}
-%D
-%D \def\test{\dorecurse{3}{\definesymbol[test-##1][xx-##1]}} \test
-%D
-%D \symbol[test-1]\quad\symbol[test-2]\quad\symbol[test-3]
-%D \stoptyping
-%D
-%D Since the hashed arguments are expanded, we don't need tricky
-%D expansion here.
-%D
-%D \starttyping
-%D \dorecurse{3}{\expanded{\definesymbol[test-\recurselevel][xx-\recurselevel]}}
-%D \stoptyping
-
-\def\expandrecursecontent
- {\csname\@@arecurse\recursedepth\@EA\@EA\@EA\endcsname\@EA\@EA\@EA{\@EA\recurselevel\@EA}\@EA{\recursedepth}}
-
-\long\def\xdorecurse#1#2%
- {\global\advance\outerrecurse \plusone
- \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#2}%
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
- \@EA\dodorecurse\@EA1\@EA{\number#1}}
-
-\long\def\ydorecurse#1#2%
- {\global\advance\outerrecurse \plusone
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
- \let\recurselevel\!!plusone
- \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#2}%
- \expandrecursecontent
- \@EA\let\@EA\recurselevel\csname\@@irecurse\recursedepth\endcsname
- \global\advance\outerrecurse \minusone}
-
-\long\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
- {\global\advance\outerrecurse \plusone
- \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#4}%
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
- \ifnum#3>0\relax
- \ifnum#2<#1\relax
- \let\nextrecurse\exitstepwiserecurse
- \else
- \let\nextrecurse\dodostepwiserecurse
- \fi
- \else
- \ifnum#3<0\relax
- \ifnum#1<#2\relax
- \let\nextrecurse\exitstepwiserecurse
- \else
- \let\nextrecurse\dodostepwisereverse
- \fi
- \else
- \let\nextrecurse\exitstepwiserecurse
- \fi
- \fi\expanded{\nextrecurse{\number#1}{\number#2}{\number#3}}}
-
-\long\def\doloop#1%
- {\global\advance\outerrecurse \plusone
- \long\global\@EA\def\csname\@@arecurse\recursedepth\endcsname##1##2{#1}%
- \global\@EA\let\csname\@@irecurse\recursedepth\endcsname\recurselevel
- \let\endofloop\dodoloop
- \dodoloop1} % no \plusone else \recurselevel wrong
-
-%D For special purposes:
-
-\newcount\fastrecursecounter
-\newcount\lastrecursecounter
-\newcount\steprecursecounter
-
-\def\dofastrecurse#1#2#3#4%
- {\def\fastrecursebody{#4}%
- \fastrecursecounter#1\relax
- \lastrecursecounter#2\relax
- \steprecursecounter#3\relax
- \def\recurselevel{\number\fastrecursecounter}%
- \dodofastrecurse}
-
-\def\resetrecurselevel{\let\recurselevel\!!zerocount}
-
-\def\dodofastrecurse
- {\ifnum\fastrecursecounter>\lastrecursecounter
- % \resetrecurselevel % slows down
- \else
- \fastrecursebody
- \advance\fastrecursecounter\steprecursecounter
- \expandafter\dodofastrecurse
- \fi}
-
-% \appendtoks \resetrecurselevel \to \everydump
-
-\everydump\expandafter{\the\everydump\resetrecurselevel}
-
-%D This alternative looks a bit different and uses a
-%D pseudo counter. When this macro is nested, we have to use
-%D different counters. This time we use keywords.
-%D
-%D \starttyping
-%D \def\alfa{2} \def\beta{100} \def\gamma{3}
-%D
-%D \for \n=55 \to 100 \step 1 \do {... \n ...}
-%D \for \n=\alfa \to \beta \step \gamma \do {... \n ...}
-%D \for \n=\n \to 120 \step 1 \do {... \n ...}
-%D \for \n=120 \to 100 \step -3 \do {... \n ...}
-%D \for \n=55 \to 100 \step 2 \do {... \n ...}
-%D \stoptyping
-%D
-%D Only in the third example we need to predefine \type{\n}.
-%D The use of \type{\od} as a dilimiter would have made nested
-%D use more problematic.
-
-%D Don't use this one, it's kind of obsolete.
-
-\def\for#1=#2\to#3\step#4\do#5%
- {\dostepwiserecurse{#2}{#3}{#4}
- {\let#1\recurselevel#5\let#1\recurselevel}}
-
-%D \macros
-%D {newevery,everyline,EveryLine,EveryPar}
-%D
-%D Lets skip to something quite different. It's common use
-%D to use \type{\everypar} for special purposes. In \CONTEXT\
-%D we use this primitive for locating sidefloats. This means
-%D that when user assignments to \type{\everypar} can interfere
-%D with those of the package. We therefore introduce
-%D \type{\EveryPar}.
-%D
-%D The same goes for \type{\EveryLine}. Because \TEX\ offers
-%D no \type{\everyline} primitive, we have to call for
-%D \type{\everyline} when we are working on a line by line
-%D basis. Just by calling \type{\EveryPar{}} and
-%D \type{\EveryLine{}} we restore the old situation.
-%D
-%D The definition command \type{\DoWithEvery} will be quite
-%D unreadable, so let's first show an implementation that
-%D shows how things are done:
-%D
-%D \starttyping
-%D \newtoks \everyline
-%D \newtoks \oldeveryline
-%D \newif \ifeveryline
-%D
-%D \def\DoWithEvery#1#2#3#4%
-%D {#3\else\edef\next{\noexpand#2={\the#1}}\next\fi
-%D \edef\next{\noexpand#1={\the#2\the\scratchtoks}}\next
-%D #4}
-%D
-%D \def\doEveryLine%
-%D {\DoWithEvery\everyline\oldeveryline\ifeveryline\everylinetrue}
-%D
-%D \def\EveryLine%
-%D {\afterassignment\doEveryLine\scratchtoks}
-%D \stoptyping
-%D
-%D The real implementation is a bit more complicated but we
-%D prefer something more versatile.
-
-% the old one
-%
-% \def\DoWithEvery#1%
-% {\csname if\strippedcsname#1\endcsname \else
-% \edef\next%
-% {\@EA\noexpand\csname old\strippedcsname#1\endcsname=
-% {\the#1}}%
-% \next
-% \fi
-% \edef\next%
-% {\noexpand#1=
-% {\@EA\the\csname old\strippedcsname#1\endcsname\the\scratchtoks}}%
-% \next
-% \csname\strippedcsname#1true\endcsname}
-%
-% \def\dowithevery#1%
-% {\@EA\afterassignment\csname do\strippedcsname#1\endcsname\scratchtoks}
-%
-% \def\newevery#1#2%
-% {\ifx#1\undefined\newtoks#1\fi
-% \ifx#2\relax\else\ifx#2\undefined
-% \@EA\newtoks\csname old\strippedcsname#1\endcsname
-% \@EA\newif \csname if\strippedcsname#1\endcsname
-% \@EA\def \csname do\strippedcsname#2\endcsname{\DoWithEvery#1}%
-% \def#2{\dowithevery#2}%
-% \fi\fi}
-%
-% cleaner and more efficient
-
-%\def\dowithevery#1%
-% {\def\dodowithevery%
-% {\ifcase\csname c\strippedcsname#1\endcsname \expandafter\chardef
-% \csname c\strippedcsname#1\endcsname=1
-% \csname t\strippedcsname#1\endcsname=#1%
-% \fi
-% \edef\next%
-% {#1={\the\csname t\strippedcsname#1\endcsname\the\scratchtoks}}%
-% \next}%
-% \afterassignment\dodowithevery\scratchtoks}
-%
-% more efficient:
-
-\def\dodowithevery#1%
- {\ifcase\csname c\strippedcsname#1\endcsname \expandafter\chardef
- \csname c\strippedcsname#1\endcsname1
- \csname t\strippedcsname#1\endcsname#1%
- \fi
- \edef\next%
- {#1{\the\csname t\strippedcsname#1\endcsname\the\scratchtoks}}%
- \next}
-
-\def\dowithevery#1%
- {\def\next{\dodowithevery#1}%
- \afterassignment\next\scratchtoks}
-
-\bgroup \let\newtoks\relax % plain safe (\outer)
-
-\gdef\newevery#1#2%
- {\ifx#1\undefined\csname newtoks\endcsname#1\fi % plain safe (\outer)
- \ifx#2\relax\else\ifx#2\undefined
- \expandafter\newtoks\csname t\strippedcsname#1\endcsname
- \expandafter\chardef\csname c\strippedcsname#1\endcsname\zerocount
- \def#2{\dowithevery#1}%
- \fi\fi}
-
-\egroup
-
-%D The first \type {\outer} hack is needed to trick \TEX\
-%D into thinking that \type {\newtoks} is no outer macro,
-%D the second hack is needed due to some funny interaction
-%D between outer macros and \type {\if} at expansion time.
-
-%D This one permits definitions like:
-
-\newevery \everypar \EveryPar
-\newevery \everyline \EveryLine
-
-%D and how about:
-
-\newevery \neverypar \NeveryPar
-
-%D Which we're going to use indeed! When the second argument
-%D equals \type {\relax}, the first token list is created
-%D unless it is already defined.
-
-%D Technically spoken we could have used the method we are
-%D going to present in the visual debugger. First we save
-%D the primitive \type{\everypar}:
-%D
-%D \starttyping
-%D \let\normaleverypar=\everypar
-%D \stoptyping
-%D
-%D Next we allocate a \TOKENLIST\ named \type{\everypar},
-%D which means that \type{\everypar} is no longer a primitive
-%D but something like \type{\toks44}.
-%D
-%D \starttyping
-%D \newtoks\everypar
-%D \stoptyping
-%D
-%D Because \TEX\ now executes \type{\normaleverypar} instead
-%D of \type{\everypar}, we are ready to assign some tokens to
-%D this internally known and used \TOKENLIST.
-%D
-%D \starttyping
-%D \normaleverypar={all the things the system wants to do \the\everypar}
-%D \stoptyping
-%D
-%D Where the user can provide his own tokens to be expanded
-%D every time he expects them to expand.
-%D
-%D \starttyping
-%D \everypar={something the user wants to do}
-%D \stoptyping
-%D
-%D We don't use this method because it undoubtly leads to
-%D confusing situations, especially when other packages are
-%D used, but it's this kind of tricks that make \TEX\ so
-%D powerful.
-
-%D \macros
-%D {convertargument,convertcommand,convertvalue}
-%D
-%D Some persistent experimenting led us to the next macro. This
-%D macro converts a parameter or an expanded macro to it's
-%D textual meaning.
-%D
-%D \starttyping
-%D \convertargument ... \to \command
-%D \stoptyping
-%D
-%D For example,
-%D
-%D \starttyping
-%D \convertargument{one \two \three{four}}\to\ascii
-%D \stoptyping
-%D
-%D The resulting macro \type{\ascii} can be written to a file
-%D or the terminal without problems. In \CONTEXT\ we use this
-%D macro for generating registers and tables of contents.
-%D
-%D The second conversion alternative accepts a command:
-%D
-%D \starttyping
-%D \convertcommand\command\to\ascii
-%D \stoptyping
-%D
-%D Both commands accept the prefix \type{\doglobal} for global
-%D assignments.
-
-\beginTEX
-
-\def\doconvertargument#1>{}
-
-\def\convertedcommand
- {\expandafter\doconvertargument\meaning}
-
-\long\def\convertargument#1\to#2%
- {\long\def#2{#1}% saves a restore
- \dodoglobal\edef#2{\convertedcommand#2}}
-
-\long\def\convertcommand#1\to#2%
- {\dodoglobal\edef#2{\convertedcommand#1}}
-
-% no dodoglobal !
-
-\long\def\defconvertedargument#1#2% less sensitive for \to
- {\long\def#1{#2}% saves a restore
- \edef#1{\convertedcommand#1}}
-
-\long\def\defconvertedcommand#1#2% less sensitive for \to
- {\edef#1{\convertedcommand#2}}
-
-\long\def\gdefconvertedargument#1#2% less sensitive for \to
- {\long\gdef#1{#2}% saves a restore
- \xdef#1{\convertedcommand#1}}
-
-\long\def\gdefconvertedcommand#1#2% less sensitive for \to
- {\xdef#1{\convertedcommand#2}}
-
-\endTEX
-
-\def\convertvalue#1\to
- {\expandafter\convertcommand\csname#1\endcsname\to}
-
-\def\defconvertedvalue#1#2% less sensitive for \to
- {\@EA\defconvertedcommand\@EA#1\csname#2\endcsname}
-
-%D \macros
-%D {doifassignmentelse}
-%D
-%D A lot of \CONTEXT\ commands take optional arguments, for
-%D instance:
-%D
-%D \starttyping
-%D \dothisorthat[alfa,beta]
-%D \dothisorthat[first=foo,second=bar]
-%D \dothisorthat[alfa,beta][first=foo,second=bar]
-%D \stoptyping
-%D
-%D Although a combined solution is possible, we prefer a
-%D seperation. The next command takes care of propper
-%D handling of such multi||faced commands.
-%D
-%D \starttyping
-%D \doifassignmentelse {...} {then ...} {else ...}
-%D \stoptyping
-
-% not robust
-%
-% \def\doifassignmentelse%
-% {\doifinstringelse{=}}
-%
-% readable
-%
-% \def\doifassignmentelse#1%
-% {\convertargument#1\to\ascii
-% \doifinstringelse{=}{\ascii}}
-
-\def\doifassignmentelse#1%
- {\convertargument#1\to\ascii
- \doifinstringelse=\ascii}
-
-%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}.
-%D This macro is more robust than the pure \TEX\ one,
-%D something I found out when primitives like \type
-%D {\jobname} were fed (or something undefined).
-
-% command variant: one level expansion !
-
-\beginETEX \detokenize
-
-\long\def\convertargument#1\to#2{\dodoglobal\edef#2{\detokenize{#1}}}
-\long\def\convertcommand #1\to#2{\dodoglobal\edef#2{\@EA\detokenize\@EA{#1}}} % hm, only second is also ok
-
-\long\def\defconvertedargument #1#2{\edef#1{\detokenize {#2}}}
-\long\def\defconvertedcommand #1#2{\edef#1{\detokenize\@EA{#2}}}
-\long\def\edefconvertedargument#1#2{\edef#1{#2}%
- \edef#1{\detokenize\@EA{#1}}}
-\long\def\gdefconvertedargument#1#2{\xdef#1{\detokenize {#2}}}
-\long\def\gdefconvertedcommand #1#2{\xdef#1{\detokenize\@EA{#2}}}
-\long\def\xdefconvertedargument#1#2{\xdef#1{#2}%
- \xdef#1{\detokenize\@EA{#1}}}
-
-\endETEX
-
-%D When you try to convert a primitive command, you'll find
-%D out that the \ETEX\ method fails on for instance \type
-%D {\jobname} in the sense that it returns the filename
-%D instead of just \type {\jobname}. So far this does not
-%D give real problems.
-
-%D This is typically a macro that one comes to after reading
-%D the \TEX book carefully. Even then, the definite solution
-%D was found after rereading the \TEX book. The first
-%D implementation was:
-%D
-%D \starttyping
-%D \def\doconvertargument#1->#2\\\\{#2}
-%D \stoptyping
-%D
-%D The \type{-}, the delimiter \type{\\\\} and the the second
-%D argument are completely redundant.
-
-%D \macros
-%D {showvalue,showargument}
-%D
-%D Two handy macros for testing purposes only:
-
-\def\showvalue#1%
- {\expandafter\show\csname#1\endcsname}
-
-\beginETEX
-
-\def\showvalue#1%
- {\ifcsname#1\endcsname
- \expandafter\show\csname#1\endcsname
- \else
- \show\undefined
- \fi}
-
-\endETEX
-
-\long\def\showargument#1%
- {\defconvertedargument\ascii{#1}\ascii}
-
-%D \macros
-%D {doifmeaningelse}
-%D
-%D We can use both commands in testing, but alas, not all
-%D meanings expand to something \type {->}. This is no problem
-%D in the \ETEX\ implementation, but since we want
-%D compatibility, we need:
-%D
-%D \starttyping
-%D \doifmeaningelse {\next} {\something} {true} {false}
-%D \stoptyping
-%D
-%D Watch the one level expansion of the second argument.
-
-\def\doifmeaningelse#1#2%
- {\edef\!!stringa{\meaning#1}%
- \def\!!stringb{#2}\edef\!!stringb{\meaning\!!stringb}%
- \ifx\!!stringa\!!stringb
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-%D \macros
-%D {doifsamestringselse,doifsamestring,doifnotsamestring}
-%D
-%D The next comparison macro converts the arguments into
-%D expanded strings. This command can be used to compare for
-%D instance \type {\jobname} with a name stored in a macro.
-
-\def\@@doifsamestringelse#1#2%
- {\edef\!!stringa{#1}%
- \edef\!!stringb{#2}%
- \convertcommand\!!stringa\to\!!stringa
- \convertcommand\!!stringb\to\!!stringb
- \ifx\!!stringa\!!stringb}
-
-\def\doifsamestringelse#1#2%
- {\@@doifsamestringelse{#1}{#2}%
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\def\doifsamestring#1#2%
- {\@@doifsamestringelse{#1}{#2}%
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\def\doifnotsamestring#1#2%
- {\@@doifsamestringelse{#1}{#2}%
- \expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
-%D \macros
-%D {ExpandFirstAfter,ExpandSecondAfter,ExpandBothAfter}
-%D
-%D These three commands support expansion of arguments before
-%D executing the commands that uses them. We can best
-%D illustrate this with an example.
-%D
-%D \starttyping
-%D \def\first {alfa,beta,gamma}
-%D \def\second {alfa,epsilon,zeta}
-%D
-%D \ExpandFirstAfter \doifcommon {\first} {alfa} {\message{OK}}
-%D \ExpandSecondAfter \doifcommon {alfa} {\second} {\message{OK}}
-%D \ExpandBothAfter \doifcommon {\first} {\second} {\message{OK}}
-%D
-%D \ExpandFirstAfter\processcommalist[\first]\message
-%D
-%D \ExpandAfter \doifcommon {\first} {alfa} {\message{OK}}
-%D \stoptyping
-%D
-%D The first three calls result in the threefold message
-%D \type{OK}, the fourth one shows the three elements of
-%D \type{\first}. The command \type{\ExpandFirstAfter} takes
-%D care of (first) arguments that are delimited by \type{[ ]},
-%D but the faster \type{\ExpandAfter} does not.
-
-\def\simpleExpandFirstAfter#1%
- {\long\xdef\@@expanded{\noexpand\ExpandCommand{#1}}\@@expanded}
-
-\def\complexExpandFirstAfter[#1]%
- {\long\xdef\@@expanded{\noexpand\ExpandCommand[#1]}\@@expanded}
-
-\def\ExpandFirstAfter#1%
- {\let\ExpandCommand#1%
- \doifnextoptionalelse\complexExpandFirstAfter\simpleExpandFirstAfter}
-
-\def\ExpandSecondAfter#1#2#3%
- {\scratchtoks{#2}%
- \long\xdef\@@expanded{\noexpand#1{\the\scratchtoks}{#3}}\@@expanded}
-
-\def\ExpandBothAfter#1#2#3%
- {\long\xdef\@@expanded{\noexpand#1{#2}{#3}}\@@expanded}
-
-\def\ExpandAfter#1#2%
- {\long\xdef\@@expanded{\noexpand#1{#2}}\@@expanded}
-
-%D Now we can for instance define \type{\ifinstringelse} as:
-
-\def\ifinstringelse
- {\ExpandBothAfter\p!doifinstringelse}
-
-%D \macros
-%D {ConvertToConstant,ConvertConstantAfter}
-%D
-%D When comparing arguments with a constant, we can get into
-%D trouble when this argument consists of tricky expandable
-%D commands. One solution for this is converting the
-%D argument to a string of unexpandable characters. To make
-%D comparison possible, we have to convert the constant too
-%D
-%D \starttyping
-%D \ConvertToConstant\doifelse {...} {...} {then ...} {else ...}
-%D \stoptyping
-%D
-%D This construction is only needed when the first argument
-%D can give troubles. Misuse can slow down processing.
-%D
-%D \starttyping
-%D \ConvertToConstant\doifelse{\c!alfa} {\c!alfa}{...}{...}
-%D \ConvertToConstant\doifelse{alfa} {\c!alfa}{...}{...}
-%D \ConvertToConstant\doifelse{alfa} {alfa} {...}{...}
-%D \ConvertToConstant\doifelse{alfa \alfa test}{\c!alfa}{...}{...}
-%D \stoptyping
-%D
-%D In examples~2 and~3 both arguments equal, in~1 and~4
-%D they differ.
-
-\beginTEX
-
-\long\def\ConvertToConstant#1#2#3%
- {\expandafter\defconvertedargument\expandafter\!!stringa\expandafter{#2}%
- \expandafter\defconvertedargument\expandafter\!!stringb\expandafter{#3}%
- #1{\!!stringa}{\!!stringb}}
-
-\endTEX
-
-\beginETEX \detokenize
-
-\long\def\ConvertToConstant#1#2#3%
- {\edef\!!stringa{\expandafter\detokenize\expandafter{#2}}%
- \edef\!!stringb{\expandafter\detokenize\expandafter{#3}}%
- #1{\!!stringa}{\!!stringb}}
-
-\endETEX
-
-%D When the argument \type{#1} consists of commands, we had
-%D better use
-%D
-%D \starttyping
-%D \ConvertConstantAfter\processaction[#1][...]
-%D \ConvertConstantAfter\doifelse{#1}{\v!something}{}{}
-%D \stoptyping
-%D
-%D This commands accepts things like:
-%D
-%D \starttyping
-%D \v!constant
-%D constant
-%D \hbox to \hsize{\rubish}
-%D \stoptyping
-%D
-%D As we will see in the core modules, this macro permits
-%D constructions like:
-%D
-%D \starttyping
-%D \setupfootertexts[...][...]
-%D \setupfootertexts[margin][...][...]
-%D \setupfootertexts[\v!margin][...][...]
-%D \stoptyping
-%D
-%D where \type{...} can be anything legally \TEX.
-
-\def\CheckConstantAfter#1#2%
- {\@EA\convertargument\v!prefix!\to\ascii
- \convertargument#1\to#2\relax
- \doifinstringelse\ascii{#2}
- {\expandafter\convertargument#1\to#2}
- {}}
-
-\def\ConvertConstantAfter#1#2#3%
- {\CheckConstantAfter{#2}\asciia
- \CheckConstantAfter{#3}\asciib
- #1{\asciia}{\asciib}}
-
-%D \macros
-%D {assignifempty}
-%D
-%D We can assign a default value to an empty macro using:
-%D
-%D \starttyping
-%D \assignifempty \macros {default value}
-%D \stoptyping
-%D
-%D We don't explicitly test if the macro is defined.
-
-\def\assignifempty#1#2% can be sped up
- {\doifsomething{#1}{\def#1{#2}}} % {\doifnot{#1}{}{\def#1{#2}}}
-
-%D \macros
-%D {gobbleuntil,grabuntil,gobbleuntilrelax,
-%D processbetween,processuntil}
-%D
-%D In \TEX\ gobbling usually stand for skipping arguments, so
-%D here are our gobbling macros.
-%D
-%D In \CONTEXT\ we use a lot of \type{\start}||\type{\stop}
-%D like constructions. Sometimes, the \type{\stop} is used as a
-%D hard coded delimiter like in:
-%D
-%D \starttyping
-%D \def\startcommand#1\stopcommand%
-%D {... #1 ...}
-%D \stoptyping
-%D
-%D In many cases the \type{\start}||\type{\stop} pair is
-%D defined at format generation time or during a job. This
-%D means that we cannot hardcode the \type{\stop} criterium.
-%D Only after completely understanding \type{\csname} and
-%D \type{\expandafter} I was able to to implement a solution,
-%D starting with:
-%D
-%D \starttyping
-%D \grabuntil{stop}\command
-%D \stoptyping
-%D
-%D This commands executes, after having encountered
-%D \type {\stop} the command \type {\command}. This command
-%D receives as argument the text preceding the \type {\stop}.
-%D This means that:
-%D
-%D \starttyping
-%D \def\starthello%
-%D {\grabuntil{stophello}\message}
-%D
-%D \starthello Hello world!\stophello
-%D \stoptyping
-%D
-%D results in: \type{\message{Hello world!}}.
-
-\def\dograbuntil#1#2%
- {\long\def\next##1#1{#2{##1}}\next}
-
-\def\grabuntil#1%
- {\expandafter\dograbuntil\expandafter{\csname#1\endcsname}}
-
-%D The next command build on this mechanism:
-%D
-%D \starttyping
-%D \processbetween{string}\command
-%D \stoptyping
-%D
-%D Here:
-%D
-%D \starttyping
-%D \processbetween{hello}\message
-%D \starthello Hello again!\stophello
-%D \stoptyping
-%D
-%D leads to: \type{\message{Hello again!}}. The command
-%D
-%D \starttyping
-%D \gobbleuntil{sequence}
-%D \stoptyping
-%D
-%D is related to these commands. This one simply throws away
-%D everything preceding \type{\command}.
-
-\long\def\processbetween#1#2%
- {\setvalue{\s!start#1}{\grabuntil{\s!stop#1}{#2}}}
-
-\def\gobbleuntil#1%
- {\long\def\next##1#1{}\next}
-
-\def\gobbleuntilrelax#1\relax
- {}
-
-%D The next one simply expands the pickup up tokens.
-%D
-%D \starttyping
-%D \processuntil{sequence}
-%D \stoptyping
-
-\def\processuntil#1%
- {\long\def\next##1#1{##1}\next}
-
-%D \macros
-%D {groupedcommand}
-%D
-%D Commands often manipulate argument as in:
-%D
-%D \starttyping
-%D \def\doezomaarwat#1{....#1....}
-%D \stoptyping
-%D
-%D A disadvantage of this approach is that the tokens that
-%D form \type{#1} are fixed the the moment the argument is read
-%D in. Normally this is no problem, but for instance verbatim
-%D environments adapt the \CATCODES\ of characters and therefore
-%D are not always happy with already fixed tokens.
-%D
-%D Another problem arises when the argument is grouped not by
-%D \type{{}} but by \type{\bgroup} and \type{\egroup}. Such an
-%D argument fails, because the \type{\bgroup} is een as the
-%D argument (which is quite normal).
-%D
-%D The next macro offers a solution for both unwanted
-%D situations:
-%D
-%D \starttyping
-%D \groupedcommand {before} {after}
-%D \stoptyping
-%D
-%D Which can be used like:
-%D
-%D \starttyping
-%D \def\cite%
-%D {\groupedcommand{\rightquote\rightquote}{\leftquote\leftquote}}
-%D \stoptyping
-%D
-%D This command is equivalent to, but more 'robust' than:
-%D
-%D \starttyping
-%D \def\cite#1%
-%D {\rightquote\rightquote#1\leftquote\leftquote}
-%D \stoptyping
-%D
-%D One should say that the next implementation would suffice:
-%D
-%D \starttyping
-%D \def\groupedcommand#1#2%
-%D {\def\BeforeGroup{#1\ignorespaces}%
-%D \def\AfterGroup{\unskip#2\egroup}%
-%D \bgroup\bgroup
-%D \aftergroup\AfterGroup
-%D \afterassignment\BeforeGroup
-%D \let\next=}
-%D \stoptyping
-%D
-%D It did indeed, but one day we decided to support the
-%D processing of boxes too:
-%D
-%D \starttyping
-%D \def\rightword%
-%D {\groupedcommand{\hfill\hbox}{\parfillskip\!!zeropoint}}
-%D
-%D .......... \rightword{the right way}
-%D \stoptyping
-%D
-%D Here \TEX\ typesets \type{\bf the right way} unbreakable
-%D at the end of the line. The solution mentioned before does
-%D not work here.
-%D
-%D \starttyping
-%D \long\unexpanded\def\groupedcommand#1#2%
-%D {\bgroup
-%D \long\def\BeforeGroup%
-%D {\bgroup#1\bgroup\aftergroup\AfterGroup}%
-%D \long\def\AfterGroup%
-%D {#2\egroup\egroup}%
-%D \afterassignment\BeforeGroup
-%D \let\next=}
-%D \stoptyping
-%D
-%D We used this method some time until the next alternative
-%D was needed. From now on we support both
-%D
-%D \starttyping
-%D to be \bold{bold} or not, that's the question
-%D \stoptyping
-%D
-%D and
-%D
-%D \starttyping
-%D to be {\bold bold} or not, that's the question
-%D \stoptyping
-%D
-%D This alternative checks for a \type{\bgroup} token first.
-%D The internal alternative does not accept the box handling
-%D mentioned before, but further nesting works all right. The
-%D extra \type{\bgroup}||\type{\egroup} is needed to keep
-%D \type{\AfterGroup} both into sight and local.
-
-\long\def\HandleGroup#1#2%
- {\bgroup
- \long\def\BeforeGroup{\bgroup#1\bgroup\aftergroup\AfterGroup}%
- \long\def\AfterGroup {#2\egroup\egroup}%
- \afterassignment\BeforeGroup
- \let\next=}
-
-\long\def\HandleSimpleGroup#1#2% no inner group (so no kerning interference)
- {\bgroup
- %long\def\BeforeGroup{\bgroup#1\aftergroup\AfterGroup}% interferes
- \long\def\BeforeGroup{\bgroup\aftergroup\AfterGroup#1}%
- \long\def\AfterGroup {#2\egroup}%
- \afterassignment\BeforeGroup
- \let\next=}
-
-\long\def\HandleNoGroup#1#2%
- {\long\def\AfterGroup{#2\egroup}%
- \bgroup\aftergroup\AfterGroup#1}
-
-%D These macros come together in:
-%D
-%D \starttyping
-%D \long\unexpanded\def\groupedcommand#1#2%
-%D {\def\dogroupedcommand%
-%D {\ifx\next\bgroup
-%D \let\next=\HandleGroup
-%D \else
-%D \let\next=\HandleNoGroup
-%D \fi
-%D \next{#1}{#2}}%
-%D \futurelet\next\dogroupedcommand}
-%D \stoptyping
-%D
-%D From the missing paragraph number one can deduce that the
-%D last macro is not the real one yet. I considered it a
-%D nuisance that
-%D
-%D \starttyping
-%D \color[green]
-%D {as grass}
-%D \stoptyping
-%D
-%D was not interpreted as one would expect. This is due to the
-%D fact that \type{\futurelet} obeys blank spaces, and a
-%D line||ending token is treated as a blank space. So the final
-%D implementation became:
-
-%\long\unexpanded\def\groupedcommand#1#2%
-% {\bgroup
-% \def\dogroupedcommand%
-% {\ifx\next\bgroup
-% \def\\{\egroup\HandleGroup{#1}{#2}}%
-% \else\ifx\next\blankspace
-% \def\\ {\egroup\groupedcommand{#1}{#2}}%
-% \else
-% \def\\{\egroup\HandleNoGroup{#1}{#2}}%
-% \fi\fi
-% \\}%
-% \futurelet\next\dogroupedcommand}
-%
-% compatible ?
-
-\long\unexpanded\def\groupedcommand#1#2%
- {\doifnextbgroupelse{\HandleGroup{#1}{#2}}{\HandleNoGroup{#1}{#2}}}
-
-\long\unexpanded\def\simplegroupedcommand#1#2%
- {\doifnextbgroupelse{\HandleSimpleGroup{#1}{#2}}{\HandleNoGroup{#1}{#2}}}
-
-%D Users should be aware of the fact that grouping can
-%D interfere with ones paragraph settings that are executed
-%D after the paragraph is closed. One should therefore
-%D explictly close the paragraph with \type{\par}, else the
-%D settings will be forgotten and not applied. So it's:
-%D
-%D \starttyping
-%D \def\BoldRaggedCenter%
-%D {\groupedcommand{\raggedcenter\bf}{\par}}
-%D \stoptyping
-
-%D \macros
-%D {checkdefined}
-%D
-%D The bigger the system, the greater the change that
-%D user defined commands collide with those that are part of
-%D the system. The next macro gives a warning when a command is
-%D already defined. We considered blocking the definition, but
-%D this is not always what we want.
-%D
-%D \starttyping
-%D \checkdefined {category} {class} {command}
-%D \stoptyping
-%D
-%D The user is warned with the suggestion to use
-%D \type{CAPITALS}. This suggestion is feasible, because
-%D \CONTEXT only defines lowcased macros.
-
-\def\showdefinederror#1#2%
- {\writestatus\m!systems{#1 #2 replaces a macro, use CAPITALS!}}
-
-\def\checkdefined#1#2#3%
- {\doifdefined{#3}{\showdefinederror{#2}{#3}}}
-
-%D \macros
-%D {GotoPar,GetPar}
-%D
-%D Typesetting a paragraph in a special way can be done by
-%D first grabbing the contents of the paragraph and processing
-%D this contents grouped. The next macro for instance typesets
-%D a paragraph in boldface.
-%D
-%D \starttyping
-%D \def\remark#1\par%
-%D {\bgroup\bf#1\egroup}
-%D \stoptyping
-%D
-%D This macro has to be called like
-%D
-%D \starttyping
-%D \remark some text ... ending with \par
-%D \stoptyping
-%D
-%D Instead of \type{\par} we can of course use an empty line.
-%D When we started typesetting with \TEX, we already had
-%D produced lots of text in plain \ASCII. In producing such
-%D simple formatted texts, we adopted an open layout, and when
-%D switching to \TEX, we continued this open habit. Although
-%D \TEX\ permits a cramped and badly formatted source, it adds
-%D to confusion and sometimes introduces errors. So we prefer:
-%D
-%D \starttyping
-%D \remark
-%D
-%D some text ... ending with an empty line
-%D \stoptyping
-%D
-%D We are going to implement a mechanism that allows such open
-%D specifications. The definition of the macro handling
-%D \type{\remark} becomes:
-%D
-%D \starttyping
-%D \def\remark%
-%D {\BeforePar{\bgroup\bf}%
-%D \AfterPar{\egroup}%
-%D \GetPar}
-%D \stoptyping
-%D
-%D A macro like \type{\GetPar} can be defined in several
-%D ways. The recent version, the fourth one in a row,
-%D originally was far more complicated, but some functionality
-%D has been moved to other macros.
-%D
-%D We start with the more simple but in some cases more
-%D appropriate alternative is \type{\GotoPar}. This one leaves
-%D \type{\par} unchanged and is therefore more robust. On the
-%D other hand, \type{\AfterPar} is not supported.
-
-\newtoks\BeforePar
-\newtoks\AfterPar
-
-\let\endoflinetoken=^^M
-
-%D The original definition was:
-%D
-%D \starttyping
-%D \def\doGotoPar
-%D {\ifx\nextchar\blankspace
-%D \@EA\GotoPar
-%D \else\ifx\nextchar\endoflinetoken
-%D \@EAEAEA\GotoPar
-%D \else
-%D \@EAEAEA\dodoGotoPar
-%D \fi\fi}
-%D
-%D \def\dodoGotoPar
-%D {\the\BeforePar
-%D \BeforePar\emptytoks
-%D \nextchar}
-%D
-%D \def\GotoPar
-%D {\afterassignment\doGotoPar\let\nextchar=}
-%D \stoptyping
-
-%D Its big brother \type{\GetPar} redefines the \type{\par}
-%D primitive, which can lead to unexpected results, depending
-%D in the context.
-%D
-%D \starttyping
-%D \def\GetPar
-%D {\expanded
-%D {\BeforePar
-%D {\the\BeforePar
-%D \BeforePar\emptytoks
-%D \bgroup
-%D \def\par
-%D {\egroup
-%D \par
-%D \the\AfterPar
-%D \BeforePar\emptytoks
-%D \AfterPar\emptytoks}}}%
-%D \GotoPar}
-%D \stoptyping
-
-%D However, we can implement a better alternative by using:
-%D
-%D \starttyping
-%D \def\dowithpar#1#2%
-%D {\def\handlepar##1\par{#1##1#2}%
-%D \def\gobblepar\par{\dowithpar{#1}{#2}}%
-%D \doifnextcharelse\par\gobblepar\handlepar}
-%D \stoptyping
-%D
-%D Or, nicer
-
-\def\redowithpar\par
- {\doifnextcharelse\par\redowithpar\dodowithpar}%
-
-\def\dowithpar#1#2%
- {\def\dodowithpar##1\par{#1##1#2}%
- \redowithpar\par}
-
-\def\redogotopar\par
- {\doifnextcharelse\par\redogotopar\dodogotopar}%
-
-\def\dogotopar#1%
- {\def\dodogotopar{#1}%
- \redogotopar\par}
-
-%D The previosuly defined macros now become:
-
-\def\GetPar
- {\expanded
- {\dowithpar
- {\the\BeforePar
- \BeforePar\emptytoks}
- {\the\AfterPar
- \BeforePar\emptytoks
- \AfterPar\emptytoks}}}
-
-\def\GotoPar
- {\expanded
- {\dogotopar
- {\the\BeforePar
- \BeforePar\emptytoks}}}
-
-%D \macros
-%D {dowithpargument,dowithwargument}
-%D
-%D The next macros are a variation on \type{\GetPar}. When
-%D macros expect an argument, it interprets a grouped sequence
-%D of characters a one token. While this adds to robustness and
-%D less ambiguous situations, we sometimes want to be a bit
-%D more flexible, or at least want to be a bit more tolerant
-%D to user input.
-%D
-%D We start with a commands that acts on paragraphs. This
-%D command is called as:
-%D
-%D \starttyping
-%D \dowithpargument\command
-%D \dowithpargument{\command ... }
-%D \stoptyping
-%D
-%D In \CONTEXT\ we use this one to read in the titles of
-%D chapters, sections etc. The commands responsible for these
-%D activities accept several alternative ways of argument
-%D passing. In these examples, the \type{\par} can be omitted
-%D when an empty line is present.
-%D
-%D \starttyping
-%D \command{...}
-%D \command ... \par
-%D \command
-%D {...}
-%D \command
-%D ... \par
-%D \stoptyping
-%D
-%D We show two implementations, of which for the moment the
-%D we prefier to use the second one:
-%D
-%D \starttyping
-%D \def\dowithpargument#1%
-%D {\def\dodowithpargument%
-%D {\ifx\next\bgroup
-%D \def\next{#1}%
-%D \else
-%D \def\next####1 \par{#1{####1}}%
-%D \fi
-%D \next}%
-%D \futurelet\next\dodowithpargument}
-%D \stoptyping
-%D
-%D A second and better implementation was:
-%D
-%D \starttyping
-%D \def\dowithpargument#1%
-%D {\def\nextpar##1 \par{#1{##1}}%
-%D \def\nextarg##1{#1{##1}}%
-%D \doifnextcharelse\bgroup
-%D {\nextarg}
-%D {\nextpar}}
-%D \stoptyping
-%D
-%D We ended up with an alternative that also accepts en empty
-%D argument. This command permits for instance chapters to
-%D have no title.
-
-%\def\dowithpargument#1%
-% {\def\nextpar##1 \par{#1{##1}}%
-% \def\nextarg##1{#1{##1}}%
-% \doifnextcharelse\bgroup
-% {\nextarg}
-% {\doifnextcharelse{\par}
-% {#1{}}
-% {\nextpar}}}
-
-\def\dowithpargument#1%
- {\def\nextpar##1 \par{#1{##1}}%
- \def\nextarg##1{#1{##1}}%
- \doifnextbgroupelse\nextarg{\doifnextcharelse\par{#1{}}\nextpar}}
-
-%D The \type{p} in the previous command stands for paragraph.
-%D When we want to act upon words we can use the \type{w}
-%D alternative.
-%D
-%D \starttyping
-%D \dowithwargument\command
-%D \dowithwargument{... \command ...}
-%D \stoptyping
-%D
-%D The main difference bwteen two alternatives is in the
-%D handling of \type{\par}'s. This time the space token acts
-%D as a delimiter.
-%D
-%D \starttyping
-%D \command{...}
-%D \command ...
-%D \command
-%D {...}
-%D \command
-%D ...
-%D \stoptyping
-%D
-%D Again there are two implementations possible:
-%D
-%D \starttyping
-%D \def\dowithwargument#1%
-%D {\def\dodowithwargument%
-%D {\ifx\next\bgroup
-%D \def\next{#1}%
-%D \else
-%D \def\next####1 {#1{####1}}%
-%D \fi
-%D \next}%
-%D \futurelet\next\dodowithwargument}
-%D \stoptyping
-%D
-%D We've chosen:
-
-%\def\dowithwargument#1%
-% {\def\nextwar##1 {#1{##1}}%
-% \def\nextarg##1{#1{##1}}%
-% \doifnextcharelse\bgroup
-% {\nextarg}
-% {\nextwar}}
-
-\def\dowithwargument#1%
- {\def\nextwar##1 {#1{##1}}%
- \def\nextarg##1{#1{##1}}%
- \doifnextbgroupelse\nextarg\nextwar}
-
-%D \macros
-%D {dorepeat,dorepeatwithcommand}
-%D
-%D When doing repetitive tasks, we stromgly advice to use
-%D \type{\dorecurse}. The next alternative however, suits
-%D better some of the \CONTEXT\ interface commands.
-%D
-%D \starttyping
-%D \dorepeat[n*\command]
-%D \stoptyping
-%D
-%D The value of the used \COUNTER\ can be called within
-%D \type{\command} by \type{\repeater}.
-%D
-%D A slightly different alternative is:
-%D
-%D \starttyping
-%D \dorepeatwithcommand[n*{...}]\command
-%D \stoptyping
-%D
-%D When we call for something like:
-%D
-%D \starttyping
-%D \dorepeatwithcommand[3*{Hello}]\message
-%D \stoptyping
-%D
-%D we get ourselves three \type{\message{Hello}} messages in
-%D a row. In both commands, the \type{n*} is optional. When this
-%D specification is missing, the command executes once.
-
-% this one is obsolete:
-
-\def\dorepeat[#1]%
- {\dodorepeat#1*\empty*\relax}
-
-\long\def\dodorepeat#1*#2#3*#4\relax
- {\ifx#2\empty#1\else\dorecurse{#1}{#2#3}\fi}
-
-\def\repeater
- {\recurselevel}
-
-% this one will be kept
-
-\def\dorepeatwithcommand[#1]%
- {\dodorepeatwithcommand#1*\empty*\relax}
-
-% \long\def\dodorepeatwithcommand#1*#2#3*#4\relax#5%
-% {\ifx#2\empty
-% #5{#1}%
-% \else
-% \dorecurse{#1}{#5{#2#3}}%
-% \fi}
-%
-% more complex but better:
-
-% \long\def\dodorepeatwithcommand#1*#2#3*#4\relax#5%
-% {\ifx#2\empty
-% #5{#1}%
-% \else\ifnum#1<\zerocount
-% % a la etex
-% % \dorecurse{-\numexpr(#1)}{#5{-#2#3}}%
-% % indirect
-% %\innerrecurse#1%
-% %\expanded{\dorecurse{\number-\innerrecurse}}{#5{-#2#3}}%
-% % safer:
-% \bgroup\scratchcounter#1%
-% \expanded{\egroup\noexpand\dorecurse{\number-\scratchcounter}}{#5{-#2#3}}%
-% \else\ifx#2+%
-% \dorecurse{#1}{#5{#3}}%
-% \else
-% \dorecurse{#1}{#5{#2#3}}%
-% \fi\fi\fi}
-
-\def\dorepeatwithcommand[#1]%
- {\dodorepeatwithcommand#1*\empty*\relax}
-
-\long\def\dodorepeatwithcommand#1*#2#3*#4\relax#5%
- {\ifx#2\empty\redorepeatwithcommand[#1]#5\else\dododorepeatwithcommand{#1}{#2}{#3}#5\fi}
-
-\long\def\dododorepeatwithcommand#1#2#3#4%
- {\ifx#2\empty % redundant but gives cleaner extensions
- #4{#1}%
- \else\ifnum#1<\zerocount
- \bgroup\scratchcounter#1%
- \expanded{\egroup\noexpand\dorecurse{\number-\scratchcounter}}{#4{-#2#3}}%
- \else\ifx#2+%
- \dorecurse{#1}{#4{#3}}%
- \else
- \dorecurse{#1}{#4{#2#3}}%
- \fi\fi\fi}
-
-\def\redorepeatwithcommand[#1]#2%
- {#2{#1}}
-
-%D The extension hook permits something like:
-%D
-%D \starttyping
-%D \bgroup
-%D
-%D \catcode`\*=\@@superscript
-%D
-%D \gdef\redorepeatwithcommand[#1]%
-%D {\redodorepeatwithcommand#1*\empty*\relax}
-%D
-%D \long\gdef\redodorepeatwithcommand#1*#2#3*#4\relax#5%
-%D {\dododorepeatwithcommand{#1}{#2}{#3}#5}
-%D
-%D \egroup
-%D \stoptyping
-%D
-%D although one may wonder if changing the catcode of \type {*} is wise.
-
-%D \macros
-%D {normalbgroup,normalgroup}
-%D
-%D No comment.
-
-\let\normalbgroup\bgroup
-\let\normalegroup\egroup
-
-%D \macros
-%D {doifstringinstringelse}
-%D
-%D The next macro is meant for situations where both strings
-%D are macros. This save some unneeded expansion.
-%D
-%D \starttyping
-%D \long\def\doifstringinstringelse#1#2%
-%D {\p!doifinstringelse#1#2%
-%D \@EA\firstoftwoarguments
-%D \else
-%D \@EA\secondoftwoarguments
-%D \fi}
-%D \stoptyping
-%D
-%D A bit faster is:
-
-\def\pp!doifstringinstringelse#1%
- {\if#1@%
- \@EA\secondoftwoarguments
- \else
- \@EA\firstoftwoarguments
- \fi}
-
-\long\def\doifstringinstringelse#1#2%
- {\long\@EA\def\@EA\p!doifstringinstringelse\@EA##\@EA1#1##2##3\war
- {\pp!doifstringinstringelse##2}%
- \@EA\@EA\@EA\p!doifstringinstringelse\@EA#2#1@@\war}
-
-%D \macros
-%D {appendtoks,prependtoks,appendtoksonce,prependtoksonce,
-%D doifintokselse,flushtoks,dotoks}
-%D
-%D We use \TOKENLISTS\ sparsely within \CONTEXT, because the
-%D comma separated lists are more suitable for the user
-%D interface. Nevertheless we have:
-%D
-%D \starttyping
-%D (\doglobal) \appendtoks ... \to\tokenlist
-%D (\doglobal) \prependtoks ... \to\tokenlist
-%D (\doglobal) \flushtoks\tokenlist
-%D \dotoks\tokenlist
-%D \stoptyping
-%D
-%D Er worden eerst enkele klad||registers gedefinieerd. These
-%D macros are clones of the ones implemented in page~378 of
-%D Knuth's \TeX book.
-%D
-%D A simple implementation, one that does not handle braces
-%D at the outer level, is:
-%D
-%D \starttyping
-%D \def\appendtoks#1\to#2%
-%D {\scratchtoks={#1}%
-%D \expanded{\dodoglobal\noexpand#2{\the#2\the\scratchtoks}}}
-%D
-%D \def\prependtoks#1\to#2%
-%D {\scratchtoks={#1}%
-%D \expanded{\dodoglobal\noexpand#2{\the\scratchtoks\the#2}}}
-%D \stoptyping
-%D
-%D But here we prefer:
-
-\newtoks\@@scratchtoks
-
-% before we had the once only alternatives, we had:
-%
-% \def\appendtoks {\doappendtoks \relax}
-% \def\prependtoks{\doprependtoks\relax}
-%
-% \long\def\doappendtoks#1\to#2%
-% {\@@scratchtoks\@EA{\gobbleoneargument#1}%
-% \expanded{\dodoglobal\noexpand#2{\the#2\the\@@scratchtoks}}}
-%
-% \long\def\doprependtoks#1\to#2%
-% {\@@scratchtoks\@EA{\gobbleoneargument#1}%
-% \expanded{\dodoglobal\noexpand#2{\the\@@scratchtoks\the#2}}}
-
-\def\appendtoks {\doappendtoks \relax}
-\def\prependtoks {\doprependtoks \relax}
-\def\appendtoksonce {\doappendtoksonce \relax}
-\def\prependtoksonce{\doprependtoksonce\relax}
-
-% \def\dodoappendtoks#1%
-% {\expanded{\dodoglobal\noexpand#1{\the#1\the\@@scratchtoks}}}
-%
-% \def\dodoprependtoks#1%
-% {\expanded{\dodoglobal\noexpand#1{\the\@@scratchtoks\the#1}}}
-%
-% \long\def\doappendtoks#1\to%
-% {\@@scratchtoks\@EA{\gobbleoneargument#1}\dodoappendtoks}
-%
-% \long\def\doprependtoks#1\to%
-% {\@@scratchtoks\@EA{\gobbleoneargument#1}\dodoprependtoks}
-%
-% \long\def\doappendtoksonce#1\to#2%
-% {\@@scratchtoks\@EA{\gobbleoneargument#1}%
-% \doifintokselse\@@scratchtoks{#2}{}{\dodoappendtoks{#2}}}
-%
-% \long\def\doprependtoksonce#1\to#2%
-% {\@@scratchtoks\@EA{\gobbleoneargument#1}%
-% \doifintokselse\@@scratchtoks{#2}{}{\dodoprependtoks{#2}}}
-%
-% A slightly (but in the case of large arguments
-% significantly) faster alternative is given below:
-
-\newtoks\@@toks
-
-\def\dodoappendtoks
- {\dodoglobal\@@toks\@EAEAEA{\@EA\the\@EA\@@toks\the\@@scratchtoks}}
-
-\def\dodoprependtoks
- {\dodoglobal\@@toks\@EAEAEA{\@EA\the\@EA\@@scratchtoks\the\@@toks}}
-
-\long\def\doappendtoks#1\to#2%
- {\def\@@toks{#2}%
- \@@scratchtoks\@EA{\gobbleoneargument#1}\dodoappendtoks}
-
-\long\def\doprependtoks#1\to#2%
- {\def\@@toks{#2}%
- \@@scratchtoks\@EA{\gobbleoneargument#1}\dodoprependtoks}
-
-\long\def\doappendtoksonce#1\to#2%
- {\def\@@toks{#2}%
- \@@scratchtoks\@EA{\gobbleoneargument#1}%
- \doifintokselse\@@scratchtoks\@@toks\donothing\dodoappendtoks}
-
-\long\def\doprependtoksonce#1\to#2%
- {\def\@@toks{#2}%
- \@@scratchtoks\@EA{\gobbleoneargument#1}%
- \doifintokselse\@@scratchtoks\@@toks\donothing\dodoprependtoks}
-
-%D The test macro:
-%D
-%D \starttyping
-%D \def\doifintokselse#1#2% #1 en #2 zijn toks
-%D {\edef\!!stringa{\the#1}\convertcommand\!!stringa\to\asciia
-%D \edef\!!stringb{\the#2}\convertcommand\!!stringb\to\asciib
-%D \doifinstringelse\asciia\asciib}
-%D \stoptyping
-%D
-%D Better:
-%D
-%D \starttyping
-%D \def\doifintokselse#1#2% #1 en #2 zijn toks
-%D {\edef\!!stringa{\the#1}\convertcommand\!!stringa\to\asciia
-%D \edef\!!stringb{\the#2}\convertcommand\!!stringb\to\asciib
-%D \doifstringinstringelse\asciia\asciib}
-%D \stoptyping
-%D
-%D Even better:
-
-\beginETEX
-
- \def\doifintokselse#1#2% #1 en #2 zijn toks
- {\@EA\convertargument\the#1\to\asciia
- \@EA\convertargument\the#2\to\asciib
- \doifstringinstringelse\asciia\asciib}
-
-\endETEX
-
-\beginTEX
-
- \def\doifintokselse#1#2% #1 en #2 zijn toks
- {\edef\asciia{\the#1}\convertcommand\asciia\to\asciia
- \edef\asciib{\the#2}\convertcommand\asciib\to\asciib
- \doifstringinstringelse\asciia\asciib}
-
-\endTEX
-
-%D Also:
-
-\def\appendetoks #1\to{\expanded{\appendtoks #1}\to}
-\def\prependetoks#1\to{\expanded{\prependtoks#1}\to}
-
-%D Hm.
-
-\def\flushtoks#1% nb: can reassing to #1 again, hence the indirectness
- {\@@scratchtoks#1\relax
- \dodoglobal#1\emptytoks
- \the\@@scratchtoks\relax}
-
-\let\dotoks\the
-
-%D \macros
-%D {makecounter,pluscounter,minuscounter,
-%D resetcounter,setcounter,countervalue}
-%D
-%D Declaring, setting and resetting \COUNTERS\ can be doen
-%D with the next set of commands.
-%D
-%D \starttyping
-%D \makecounter {name}
-%D \pluscounter {name}
-%D \minuscounter {name}
-%D \resetcounter {name}
-%D \setcounter {name} {value}
-%D \countervalue {name}
-%D \stoptyping
-%D
-%D We prefer the use of global counters. This means that we
-%D have to load \PLAIN\ \TEX\ in a bit different way:
-%D
-%D \starttyping
-%D \let\oldouter=\outer
-%D \let\outer=\relax
-%D \input plain.tex
-%D \let\outer=\oldouter
-%D
-%D \def\newcount%
-%D {\alloc@0\count\countdef\insc@unt}
-%D \stoptyping
-%D
-%D First we show a solution in which we use real \COUNTERS.
-%D Apart from some expansion, nothing special is done.
-%D
-%D \starttyping
-%D \def\makecounter#1%
-%D {\expandafter\newcount\csname#1\endcsname}
-%D
-%D \def\pluscounter#1%
-%D {\global\advance\csname#1\endcsname by 1 }
-%D
-%D \def\minuscounter#1%
-%D {\global\advance\csname#1\endcsname by -1 }
-%D
-%D \def\resetcounter#1%
-%D {\expandafter\global\csname#1\endcsname=0 }
-%D
-%D \def\setcounter#1#2%
-%D {\expandafter\global\csname#1\endcsname=#2 }
-%D
-%D \def\countervalue#1%
-%D {\the\getvalue{#1}}
-%D \stoptyping
-%D
-%D Because these macros are already an indirect way of working
-%D with counters, there is no harm in using pseudo \COUNTERS\
-%D here:
-
-\def\makecounter#1%
- {\letgvalue{#1}\zerocountervalue} % see earlier
-
-% \def\countervalue#1%
-% {\getvalue{#1}}
-
-\let\countervalue\getvalue
-
-\def\pluscounter#1%
- {\scratchcounter\getvalue{#1}%
- \advance\scratchcounter \plusone
- \setxvalue{#1}{\the\scratchcounter}}
-
-\def\minuscounter#1%
- {\scratchcounter\getvalue{#1}%
- \advance\scratchcounter \minusone
- \setxvalue{#1}{\the\scratchcounter}}
-
-\def\resetcounter#1%
- {\letgvalue{#1}\zerocountervalue}
-
-\def\setcounter#1#2% or: \setxvalue{#1}{\number#2}
- {\scratchcounter#2%
- \setxvalue{#1}{\the\scratchcounter}}
-
-\def\incrementcounter#1#2% #1 name #2 value
- {\setxvalue{#1}{\the\numexpr\csname#1\endcsname+#2\relax}}
-
-\def\decrementcounter#1#2% #1 name #2 value
- {\setxvalue{#1}{\the\numexpr\csname#1\endcsname-#2\relax}}
-
-%D \macros
-%D {savecounter,restorecounter}
-%D
-%D These two commands can be used to save and restore counter
-%D values. Only one level is saved.
-
-\def\savecounter#1%
- {{\scratchcounter\getvalue {#1}\setxvalue{!#1}{\the\scratchcounter}}}
-
-\def\restorecounter#1%
- {{\scratchcounter\getvalue{!#1}\setxvalue {#1}{\the\scratchcounter}}}
-
-% == {\setxvalue{#1}{\getvalue{!#1}}}
-
-%D The next \ETEX\ based solution is some 15\% faster, which
-%D goes unnoticed in any normal run, simply because these
-%D macros are not used milions of times.
-
-\beginETEX \numexpr
-
-\def\makecounter#1%
- {\global\@EA\let\csname#1\endcsname\zerocountervalue} % see earlier
-
-\def\countervalue#1%
- {\ifcsname#1\endcsname\csname#1\endcsname\fi}
-
-\def\pluscounter#1%
- {\@EA\xdef\csname#1\endcsname{\the\numexpr\csname#1\endcsname+\plusone\relax}}
-
-\def\minuscounter#1%
- {\@EA\xdef\csname#1\endcsname{\the\numexpr\csname#1\endcsname-\plusone\relax}}
-
-\def\resetcounter#1%
- {\global\@EA\let\csname#1\endcsname\zerocountervalue}
-
-\def\setcounter#1#2%
- {\@EA\xdef\csname#1\endcsname{\the\numexpr#2\relax}}
-
-\def\savecounter#1%
- {\@EA\xdef\csname !#1\endcsname{\the\numexpr\csname#1\endcsname\relax}}
-
-\def\restorecounter#1%
- {\@EA\xdef\csname#1\endcsname{\the\numexpr\csname !#1\endcsname\relax}}
-
-\endETEX
-
-%D \macros
-%D {beforesplitstring,aftersplitstring}
-%D
-%D These both commands split a string at a given point in two
-%D parts, so \type{x.y} becomes \type{x} or \type{y}.
-%D
-%D \starttyping
-%D \beforesplitstring test.tex\at.\to\filename
-%D \aftersplitstring test.tex\at.\to\extension
-%D \stoptyping
-%D
-%D The first routine looks (and is indeed) a bit simpler than
-%D the second one. The alternative looking more or less like
-%D the first one did not always give the results we needed.
-%D Both implementations show some insight in the manipulation
-%D of arguments.
-
-\def\beforesplitstring#1\at#2\to#3%
- {\def\dosplitstring##1#2##2#2##3\\%
- {\def#3{##1}}%
- \@EA\dosplitstring#1#2#2\\}
-
-\def\aftersplitstring#1\at#2\to#3%
- {\def\dosplitstring##1#2##2@@@##3\\%
- {\def#3{##2}}%
- \@EA\dosplitstring#1@@@#2@@@\\}
-
-%D \macros
-%D {splitstring,greedysplitstring}
-%D
-%D A bonus macro.
-
-\def\splitstring#1\at#2\to#3\and#4%
- {\def\dosplitstring##1#2##2\empty\empty\empty##3\\%
- {\def#3{##1}%
- \def\dosplitstring{##3}%
- \ifx\dosplitstring\empty
- \let#4\empty
- \else
- \def#4{##2}%
- \fi}%
- \@EA\dosplitstring#1\empty\empty\empty#2\empty\empty\empty\\}
-
-% Ok, but not for all cases:
-%
-% \def\greedysplitstring#1\at#2\to#3\and#4%
-% {\edef\asciib{#1}%
-% \let\asciic\asciib
-% \let#3\empty
-% \let#4\empty
-% \doloop
-% {\expandafter\splitstring\asciib\at#2\to\asciia\and\asciib
-% \ifx\asciib\empty
-% \exitloop
-% \else
-% \edef#3{\ifx#3\empty\else#3#2\fi\asciia}%
-% \let#4\asciib
-% \fi}%
-% \ifx#3\empty\let#3\asciic\fi}
-%
-% The next one is some 25\% faster, but it hardly matters because
-% we seldom use this macro.
-%
-% \def\greedysplitstring#1\at#2\to#3\and#4%
-% {\edef\asciib{#1}%
-% \let\asciic\asciib
-% \let#3\empty
-% \let#4\empty
-% \def\dogreedysplitstring
-% {\expandafter\splitstring\asciib\at#2\to\asciia\and\asciib
-% \ifx\asciib\empty
-% \expandafter\dogreedysplitstring
-% \else
-% \edef#3{\ifx#3\empty\else#3#2\fi\asciia}%
-% \let#4\asciib
-% \fi}%
-% \dogreedysplitstring
-% \ifx#3\empty\let#3\asciic\fi}
-%
-% The better alternative:
-
-\def\greedysplitstring#1\at#2\to#3\and#4%
- {\edef\asciib{#1}%
- \let\asciic\asciib
- \let#3\empty
- \let#4\empty
- \doloop
- {\expandafter\splitstring\asciib\at#2\to\asciia\and\asciib
- \ifx\asciib\empty
- \exitloop
- \else
- % not \edef#3{\ifx#3\empty\else#3#2\fi\asciia} else
- % /root/path fails because then #3==empty
- \edef#3{\ifcase\recurselevel\or\else#3#2\fi\asciia}%
- \let#4\asciib
- \fi}%
- \ifx#3\empty\let#3\asciic\fi}
-
-%D \macros
-%D {beforetestandsplitstring,
-%D aftertestandsplitstring,
-%D testandsplitstring}
-%D
-%D The next alternatives are for Simon Pepping. This time
-%D the result is empty when no split is done.
-
-% \def\beforetestandsplitstring#1\at#2\to#3%
-% {\def\dosplitstring##1#2##2#2##3\\{\doifelsenothing
-% {##3}{\let#3\empty}{\def#3{##1}}}%
-% \@EA\dosplitstring#1#2#2\\}
-%
-% \def\aftertestandsplitstring#1\at#2\to#3%
-% {\def\dosplitstring ##1#2##2@@@##3\\{\doifelsenothing
-% {##3}{\let#3\empty}{\def#3{##2}}}%
-% \@EA\dosplitstring #1@@@#2@@@\\}
-%
-% \def\testandsplitstring#1\at#2\to#3\and#4%
-% {\def\dosplitstring##1#2##2#2##3\\{\doifelsenothing
-% {##3}{\let#3\empty\let#4\empty}{\def#3{##1}\def#4{##2}}}%
-% \@EA\dosplitstring#1#2#2\\}
-%
-% faster:
-
-\def\beforetestandsplitstring#1\at#2\to#3%
- {\def\dosplitstring##1#2##2#2##3##4\\%
- {\ifx##3\empty\let#3\empty\else\def#3{##1}\fi}%
- \@EA\dosplitstring#1#2#2\empty\\}
-
-\def\aftertestandsplitstring#1\at#2\to#3%
- {\def\dosplitstring ##1#2##2@@@##3##4\\%
- {\ifx##3\empty\let#3\empty\else\def#3{##2}\fi}%
- \@EA\dosplitstring #1@@@#2@@@\empty\\}
-
-\def\testandsplitstring#1\at#2\to#3\and#4%
- {\def\dosplitstring##1#2##2#2##3##4\\%
- {\ifx##3\empty\let#3\empty\let#4\empty\else\def#3{##1}\def#4{##2}\fi}%
- \@EA\dosplitstring#1#2#2\empty\\}
-
-%D \macros
-%D {removesubstring}
-%D
-%D A first application of the two routines defined above is:
-%D
-%D \starttyping
-%D \removesubstring-\from first-last\to\nothyphenated
-%D \stoptyping
-%D
-%D Which in terms of \TEX\ looks like:
-
-%\def\removesubstring#1\from#2\to#3%
-% {\doifinstringelse{#1}{#2}
-% {\beforesplitstring#2\at#1\to\!!stringa
-% \aftersplitstring #2\at#1\to\!!stringb
-% \edef#3{\!!stringa\!!stringb}%
-% \removesubstring#1\from#3\to#3}
-% {}}
-
-\def\removesubstring#1\from#2\to#3%
- {\splitstring#2\to\!!stringa\and\!!stringb
- \dodoglobal#3{\!!stringa\!!stringb}}
-
-%D \macros
-%D {appendtocommalist,prependtocommalist,
-%D addtocommalist,removefromcommalist}
-%D
-%D When working with comma separated lists, one sooner or
-%D later want the tools to append or remove items from such a
-%D list. When we add an item, we first check if it's already
-%D there. This means that every item in the list is unique.
-%D
-%D \starttyping
-%D \addtocommalist {alfa} \name
-%D \addtocommalist {beta} \name
-%D \addtocommalist {gamma} \name
-%D \removefromcommalist {beta} \name
-%D \stoptyping
-%D
-%D These commands can be prefixed with \type{\doglobal}. The
-%D implementation of the second command is more complecated,
-%D because we have to take leading spaces into account. Keep in
-%D mind that users may provide lists with spaces after the
-%D commas. When one item is left, we also have to get rid of
-%D trailing spaces.
-%D
-%D \starttyping
-%D \def\words{alfa, beta, gamma, delta}
-%D \def\words{alfa,beta,gamma,delta}
-%D \stoptyping
-%D
-%D Removing an item takes more time than adding one.
-%D
-%D A fast appending alternative, without any testing, is
-%D also provided:
-%D
-%D \starttyping
-%D \appendtocommalist {something} \name
-%D \prependtocommalist {something} \name
-%D \stoptyping
-%D
-%D This can be implemented as follows:
-%D
-%D \starttyping
-%D \def\appendtocommalist#1#2%
-%D {\ifx#2\empty
-%D \dodoglobal\edef#2{#1}%
-%D \else % no test on empty
-%D \dodoglobal\edef#2{#2,#1}%
-%D \fi}
-%D
-%D \def\prependtocommalist#1#2%
-%D {\ifx#2\empty
-%D \dodoglobal\edef#2{#1}%
-%D \else % no test on empty
-%D \dodoglobal\edef#2{#1,#2}%
-%D \fi}
-%D \stoptyping
-%D
-%D The faster alternatives are:
-
-\def\appendtocommalist#1#2%
- {\dodoglobal\edef#2{\ifx#2\empty\else#2,\fi#1}}
-
-\def\prependtocommalist#1#2%
- {\dodoglobal\edef#2{#1\ifx#2\empty\else,#2\fi}}
-
-%D The old ones are:
-%D
-%D \starttyping
-%D \def\addtocommalist#1#2%
-%D {\ifx#2\empty
-%D \dodoglobal\edef#2{#1}%
-%D \else
-%D \edef\!!stringa{#2,,}%
-%D \beforesplitstring#2\at,,\to#2\relax
-%D \ExpandBothAfter\doifinsetelse{#1}{#2}
-%D {\resetglobal}
-%D {\dodoglobal\edef#2{#2,#1}}%
-%D \fi}
-%D
-%D \def\pretocommalist#1#2%
-%D {\ifx#2\empty
-%D \dodoglobal\edef#2{#1}%
-%D \else
-%D \edef\!!stringa{#2,,}%
-%D \beforesplitstring#2\at,,\to#2\relax
-%D \ExpandBothAfter\doifinsetelse{#1}{#2}
-%D {\resetglobal}
-%D {\dodoglobal\edef#2{#1,#2}}%
-%D \fi}
-%D
-%D \def\doremovefromcommalist#1#2#3% nog \doglobal
-%D {\edef\!!stringa{,,#3,,}%
-%D \beforesplitstring\!!stringa\at,#1#2,\to\!!stringb
-%D \aftersplitstring\!!stringa\at,#1#2,\to\!!stringc
-%D \edef#3{\!!stringb,\!!stringc}%
-%D \aftersplitstring#3\at,,\to#3\relax
-%D \beforesplitstring#3\at,,\to#3}
-%D
-%D \def\removefromcommalist#1#2%
-%D {\doremovefromcommalist{ }{#1}{#2}%
-%D \doremovefromcommalist{}{#1}{#2}%
-%D \dofrontstrip#2%
-%D \dodoglobal\edef#2{#2}}
-%D \stoptyping
-%D
-%D Significantly faster (especially for longer lists):
-
-\def\addtocommalist#1#2% {item} \cs
- {\rawdoifinsetelse{#1}#2\resetglobal
- {\dodoglobal\edef#2{\ifx#2\empty\else#2,\fi#1}}}
-
-\def\pretocommalist#1#2% {item} \cs
- {\rawdoifinsetelse{#1}#2\resetglobal
- {\dodoglobal\edef#2{#1\ifx#2\empty\else,#2\fi}}}
-
-\def\robustdoifinsetelse#1#2%
- {\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}%
- \edef\!!stringb{\acleanedupcommalist##2,,\relax}}%
- \@EA\dosplitstring\@EA,#1,,#2,,#2,\\}
-
-\def\bcleanedupcommalist#1#2#3\relax{\if#1,\else#1\fi\if#2,\else#2\fi#3}
-\def\bcleanedupcommalist#1#2\relax{\if#1,\else#1\fi#2}
-\def\acleanedupcommalist#1,,#2\relax{#1}
-
-% \def\removefromcommalist#1#2%
-% {\expanded{\xsplitstring\noexpand#2{#1}}%
-% \dodoglobal\edef#2%
-% {\ifx\!!stringa\empty
-% \!!stringb
-% \else
-% \@EA\acleanedupcommalist\!!stringa,,\relax
-% \ifx\!!stringb\empty\else,\!!stringb\fi
-% \fi}}
-
-\def\removefromcommalist#1#2%
- {\rawdoifinsetelse{#1}#2%
- {\expanded{\xsplitstring\noexpand#2{#1}}%
- \dodoglobal\edef#2%
- {\ifx\!!stringa\empty
- \!!stringb
- \else
- \!!stringa\ifx\!!stringb\empty\else,\!!stringb\fi
- \fi}}
- \resetglobal}
-
-%D \macros
-%D {substituteincommalist}
-%D
-%D Slow but seldom used, so for the moment we stick to this
-%D implementation.
-%D
-%D \starttyping
-%D \substituteincommalist{old}{new}{list}
-%D \stoptyping
-
-\def\substituteincommalist#1#2#3% old, new, list (slooow)
- {\edef\!!stringb{#1}%
- \edef\!!stringd{#2}%
- \let\!!stringa#3%
- \let#3\empty
- \def\dosubstituteincommalist##1%
- {\edef\!!stringc{##1}%
- \ifx\!!stringb\!!stringc
- \ifx\!!stringd\empty\else
- \edef#3{#3\ifx#3\empty\else,\fi\!!stringd}%
- \fi
- \def\docommand####1{\edef#3{#3,####1}}%
- \else
- \edef#3{#3\ifx#3\empty\else,\fi##1}%
- \fi}%
- \@EA\rawprocesscommacommand\@EA[\!!stringa]\dosubstituteincommalist}
-
-%D A not so useful macro:
-
-\def\dodofrontstrip[#1#2]#3%
- {\ifx#1\space
- \def#3{#2}%
- \else
- \def#3{#1#2}%
- \fi}
-
-\def\dofrontstrip#1%
- {\edef\!!stringa{#1}%
- \ifx\!!stringa\empty \else
- \@EA\dodofrontstrip\@EA[#1]#1%
- \fi}
-
-%D \macros
-%D {replaceincommalist}
-%D
-%D The next macro can be used to replace an indexed element
-%D in a commalist:
-%D
-%D \starttyping
-%D \replaceincommalist\MyList{2}
-%D \stoptyping
-%D
-%D Element~2 will be replaced by the current meaning of the macro
-%D \type {\newcommalistelement}. The old meaning is saved in
-%D \type {\commalistelement}. The replacement honors grouped items,
-%D like in:
-%D
-%D \starttyping
-%D \def\MyList{a,b,c,d,e,f} \replaceincommalist\MyList{3}
-%D \def\MyList{a,b,c,d,e,f} \replaceincommalist\MyList{3}
-%D \def\MyList{a,{b,c},d,e,f} \replaceincommalist\MyList{3}
-%D \def\MyList{a,b,c,{d,e,f}} \replaceincommalist\MyList{3}
-%D \stoptyping
-
-\let\newcommalistelement\empty
-
-\def\replaceincommalist#1#2% #1 = commalistelement #2 = position starts at 1
- {\def\doreplaceincommalist##1%
- {\ifnum\commalistcounter=#2\relax
- \ifx\newcommalistelement\empty\else
- \ifx\newcommalist\empty
- \let\newcommalist\newcommalistelement
- \else
- \@EA\@EA\@EA\def\@EA\@EA\@EA\newcommalist\@EA\@EA\@EA
- {\@EA\newcommalist\@EA,\newcommalistelement}%
- \fi
- \fi
- \def\commalistelement{##1}%
- \else
- \ifx\newcommalist\empty
- \ifx\nexttoken\bgroup % is known -)
- \def\newcommalist{{##1}}%
- \else
- \def\newcommalist{##1}%
- \fi
- \else
- \ifx\nexttoken\bgroup % is known -)
- \@EA\def\@EA\newcommalist\@EA{\newcommalist,{##1}}%
- \else
- \@EA\def\@EA\newcommalist\@EA{\newcommalist,##1}%
- \fi
- \fi
- \fi
- \advance\commalistcounter\plusone}%
- \let\commalistelement\empty
- \let\newcommalist\empty
- \commalistcounter\plusone
- \@EA\processcommalist\@EA[#1]\doreplaceincommalist
- \dodoglobal\let#1\newcommalist}
-
-%D \macros
-%D {globalprocesscommalist}
-%D
-%D The commalist processing commands are characterized by the
-%D fact that the way they handle expansion as well as the fact
-%D that they can be nested. This makes them kind of useless for
-%D handling comma lists in alignments. In these situations the
-%D next macro can be of use.
-
-\def\globalprocesscommaitem#1,%
- {\if]#1\else
- \globalcommacommand{#1}%
- \expandafter\globalprocesscommaitem
- \fi}
-
-\def\globalprocesscommalist[#1]#2%
- {\global\let\globalcommacommand#2%
- \expandafter\globalprocesscommaitem#1,],}
-
-%D \macros
-%D {startprocesscommalist,startprocesscommacommand}
-%D
-%D Two more:
-
-\long\def\startprocesscommalist[#1]#2\stopprocesscommalist
- {\long\def\currentcommalistcommand##1{\def\currentcommalistitem{##1}#2}%
- \processcommalist[#1]\currentcommalistcommand}
-
-\long\def\startprocesscommacommand[#1]#2\stopprocesscommacommand
- {\long\def\currentcommalistcommand##1{\def\currentcommalistitem{##1}#2}%
- \processcommacommand[#1]\currentcommalistcommand}
-
-%D \macros
-%D {withoutpt,PtToCm,
-%D numberofpoints,dimensiontocount}
-%D
-%D We can convert point into centimeters with:
-%D
-%D \starttyping
-%D \PtToCm{dimension}
-%D \stoptyping
-
-{\catcode`\.=\@@other
- \catcode`\p=\@@other
- \catcode`\t=\@@other
- \gdef\WITHOUTPT#1pt{#1}}
-
-\def\withoutpt#1%
- {\expandafter\WITHOUTPT#1}
-
-%D The capitals are needed because \type{p} and \type{t} have
-%D \CATCODE~12, while macronames only permit tokens with the
-%D \CATCODE~11. As a result we cannot use the \type{.group}
-%D primitives. Those who want to know more about this kind of
-%D manipulations, we advice to study the \TEX book in detail.
-%D Because this macro does not do any assignment, we can use it
-%D in the following way too.
-
-\def\PtToCm#1%
- {\begingroup
- \scratchdimen#1\relax
- \scratchdimen0.0351459804\scratchdimen % 2.54/72.27
- \withoutpt\the\scratchdimen cm%
- \endgroup}
-
-%D We also support:
-%D
-%D \starttyping
-%D \numberofpoints {dimension}
-%D \dimensiontocount {dimension} {\count}
-%D \stoptyping
-%D
-%D Both macros return a rounded number.
-
-% \dimensiontocount{10.49pt}\scratchcounter \the\scratchcounter / \numberofpoints{10.49pt}
-% \dimensiontocount{10.51pt}\scratchcounter \the\scratchcounter / \numberofpoints{10.51pt}
-
-\def\dimensiontocount#1#2{#2\numexpr\dimexpr#1\relax/\maxcard\relax}
-\def\numberofpoints #1{\the\numexpr\dimexpr#1\relax/\maxcard\relax}
-
-%D \macros
-%D {swapdimens,swapmacros}
-%D
-%D Simple but effective are the next two macros. There name
-%D exactly states their purpose. The \type{\scratchdimen} and
-%D \type{\!!stringa} can only be swapped when being the first
-%D argument.
-
-\def\swapdimens#1#2%
- {\scratchdimen #1\redoglobal #1#2\dodoglobal #2\scratchdimen}
-
-\def\swapmacros#1#2%
- {\let\!!stringa#1\redoglobal\let#1#2\dodoglobal\let#2\!!stringa}
-
-%D \macros
-%D {pushmacro,popmacro}
-%D
-%D Premature and a bit of beta, we offer:
-%D
-%D \starttyping
-%D \pushmacro\macro
-%D \popmacro\macro
-%D \stoptyping
-%D
-%D Beware: global!
-
-% \def\@s@{@s@}
-%
-% \beginTEX
-%
-% \def\globalpushmacro#1% we can use a faster incement here
-% {\@EA\doglobal\@EA\increment\csname\@s@*\string#1\endcsname
-% \global\@EA\let\csname\csname\@s@*\string#1\endcsname*\string#1\endcsname#1}
-%
-% \def\globalpopmacro#1% \global\let
-% {\global\@EA\let\@EA#1\csname\csname\@s@*\string#1\endcsname*\string#1\endcsname
-% \@EA\doglobal\@EA\decrement\csname\@s@*\string#1\endcsname}
-%
-% \def\localpushmacro#1% this one can be used to push a value over an \egroup
-% {\@EA\doglobal\@EA\increment\csname\@s@**\string#1\endcsname
-% \global\@EA\let\csname\csname\@s@**\string#1\endcsname**\string#1\endcsname#1}
-%
-% \def\localpopmacro#1% \local\let
-% {\@EA\let\@EA#1\csname\csname\@s@**\string#1\endcsname**\string#1\endcsname
-% \global\@EA\decrement\csname\@s@**\string#1\endcsname}
-%
-% \endTEX
-%
-% \beginETEX \newcount
-%
-% \def\globalpushmacro#1%
-% {\ifcsname\@s@*\string#1\endcsname \else
-% \@EA\newcount\csname\@s@*\string#1\endcsname
-% \fi
-% \global\advance\csname\@s@*\string#1\endcsname \plusone
-% \global\@EA\let\csname\the\csname\@s@*\string#1\endcsname*\string#1\endcsname#1}
-%
-% \def\globalpopmacro#1% \global\let
-% {\global\@EA\let\@EA#1\csname\the\csname\@s@*\string#1\endcsname*\string#1\endcsname
-% \global\advance\csname\@s@*\string#1\endcsname \minusone}
-%
-% \def\localpushmacro#1% this one can be used to push a value over an \egroup
-% {\ifcsname\@s@**\string#1\endcsname \else
-% \@EA\newcount\csname\@s@**\string#1\endcsname
-% \fi
-% \global\advance\csname\@s@**\string#1\endcsname \plusone
-% \global\@EA\let\csname\the\csname\@s@**\string#1\endcsname**\string#1\endcsname#1}
-%
-% \def\localpopmacro#1% \local\let
-% {\@EA\let\@EA#1\csname\the\csname\@s@**\string#1\endcsname**\string#1\endcsname
-% \global\advance\csname\@s@**\string#1\endcsname \minusone }
-%
-% \endETEX
-%
-% some 5% faster (used a lot in typescripts, so ...)
-
-\def\@sl@{@sl@}
-\def\@sg@{@sg@}
-
-\let\@@pushedmacro\empty
-
-\beginTEX
-
-\def\globalpushmacro#1% we can use a faster incement here
- {\xdef\@@pushedmacro{\string#1}%
- \@EA\doglobal\@EA\increment\csname\@sg@\@@pushedmacro\endcsname
- \global\@EA\let\csname\csname\@sg@\@@pushedmacro\endcsname\@@pushedmacro\endcsname#1}
-
-\def\globalpopmacro#1%
- {\xdef\@@pushedmacro{\string#1}%
- \global\@EA\let\@EA#1\csname\csname\@sg@\@@pushedmacro\endcsname\@@pushedmacro\endcsname
- \@EA\doglobal\@EA\decrement\csname\@sg@\@@pushedmacro\endcsname}
-
-\def\localpushmacro#1% this one can be used to push a value over an \egroup
- {\xdef\@@pushedmacro{\string#1}%
- \@EA\doglobal\@EA\increment\csname\@sl@\@@pushedmacro\endcsname
- \global\@EA\let\csname\csname\@sl@\@@pushedmacro\endcsname\@@pushedmacro\endcsname#1}
-
-\def\localpopmacro#1%
- {\xdef\@@pushedmacro{\string#1}%
- \@EA\let\@EA#1\csname\csname\@sl@\@@pushedmacro\endcsname\@@pushedmacro\endcsname
- \global\@EA\decrement\csname\@sl@\@@pushedmacro\endcsname}
-
-\endTEX
-
-\beginETEX
-
-\def\globalpushmacro#1%
- {\xdef\@@pushedmacro{\string#1}%
- \ifcsname\@sg@\@@pushedmacro\endcsname \else
- \@EA\newcount\csname\@sg@\@@pushedmacro\endcsname
- \fi
- \global\advance\csname\@sg@\@@pushedmacro\endcsname \plusone
- \global\@EA\let\csname\the\csname\@sg@\@@pushedmacro\endcsname\@@pushedmacro\endcsname#1}
-
-\def\globalpopmacro#1%
- {\xdef\@@pushedmacro{\string#1}%
- \global\@EA\let\@EA#1\csname\the\csname\@sg@\@@pushedmacro\endcsname\@@pushedmacro\endcsname
- \global\advance\csname\@sg@\@@pushedmacro\endcsname \minusone}
-
-\def\localpushmacro#1% this one can be used to push a value over an \egroup
- {\xdef\@@pushedmacro{\string#1}%
- \ifcsname\@sl@\@@pushedmacro\endcsname \else
- \@EA\newcount\csname\@sl@\@@pushedmacro\endcsname
- \fi
- \global\advance\csname\@sl@\@@pushedmacro\endcsname \plusone
- \global\@EA\let\csname\the\csname\@sl@\@@pushedmacro\endcsname\@@pushedmacro\endcsname#1}
-
-\def\localpopmacro#1%
- {\xdef\@@pushedmacro{\string#1}%
- \@EA\let\@EA#1\csname\the\csname\@sl@\@@pushedmacro\endcsname\@@pushedmacro\endcsname
- \global\advance\csname\@sl@\@@pushedmacro\endcsname \minusone }
-
-\endETEX
-
-% \let\pushmacro\globalpushmacro
-% \let\popmacro \globalpopmacro
-
-\let\pushmacro\localpushmacro
-\let\popmacro \localpopmacro
-
-%D \macros
-%D {setlocalhsize}
-%D
-%D Sometimes we need to work with the \type{\hsize} that is
-%D corrected for indentation and left and right skips. The
-%D corrected value is available in \type{\localhsize}, which
-%D needs to be calculated with \type{\setlocalhsize} first.
-%D
-%D \starttyping
-%D \setlocalhsize \hbox to \localhsize{...}
-%D \setlocalhsize[-1em] \hbox to \localhsize{...}
-%D \setlocalhsize[.5ex] \hbox to \localhsize{...}
-%D \stoptyping
-%D
-%D These examples show us that an optional can be used. The
-%D value provided is added to \type{\localhsize}.
-
-\newdimen\localhsize
-
-\def\complexsetlocalhsize[#1]% don't change !
- {\localhsize\hsize
- \ifnum\hangafter<\zerocount
- \advance\localhsize\ifdim\hangindent>\zeropoint-\fi\hangindent
- \fi
- \advance\localhsize -\leftskip
- \advance\localhsize -\rightskip
- \advance\localhsize #1\relax}
-
-\def\simplesetlocalhsize
- {\complexsetlocalhsize[\zeropoint]}
-
-\definecomplexorsimple\setlocalhsize
-
-%D \macros
-%D {doifvalue,doifnotvalue,doifelsevalue,
-%D doifnothing,doifsomething,doifelsenothing,
-%D doifvaluenothing,doifvaluesomething,doifelsevaluenothing}
-%D
-%D These long named \type{\if} commands can be used to access
-%D macros (or variables) that are normally accessed by using
-%D \type{\getvalue}. Using these alternatives safes us three
-%D tokens per call. Anyone familiar with the not||values
-%D ones, can derive their meaning from the definitions.
-
- \def\doifvalue#1{\doif {\csname#1\endcsname}}
- \def\doifnotvalue#1{\doifnot {\csname#1\endcsname}}
- \def\doifelsevalue#1{\doifelse{\csname#1\endcsname}}
-
- \def\doifnothing#1{\doif {#1}{}}
- \def\doifsomething#1{\doifnot {#1}{}}
- \def\doifelsenothing#1{\doifelse{#1}{}}
-
- \def\doifvaluenothing#1{\doif {\csname#1\endcsname}{}}
- \def\doifvaluesomething#1{\doifnot {\csname#1\endcsname}{}}
-\def\doifelsevaluenothing#1{\doifelse{\csname#1\endcsname}{}}
-
-%D Faster but spoiling inheritance (copying parameters):
-%D
-%D \starttyping
-%D \def\doifelsevaluesomething#1#2#3%
-%D {\expandafter\ifx\csname#1\endcsname\empty#3\else#2\fi}
-%D
-%D \def\doifvaluesomething#1#2%
-%D {\expandafter\ifx\csname#1\endcsname\empty\else#2\fi}
-%D
-%D \def\doifvaluenothing#1#2%
-%D {\expandafter\ifx\csname#1\endcsname\empty#2\fi}
-%D \stoptyping
-%D
-%D Slightly more efficient:
-
- \def\doifnothing{\doif \empty}
- \def\doifsomething{\doifnot \empty}
-\def\doifelsenothing{\doifelse\empty}
-
-%D The somewhat faster alternatives are:
-
-\long\def\doifvalue#1#2%
- {\edef\!!stringa{\csname#1\endcsname}\edef\!!stringb{#2}%
- \ifx\!!stringa\!!stringb
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\long\def\doifnotvalue#1#2%
- {\edef\!!stringa{\csname#1\endcsname}\edef\!!stringb{#2}%
- \ifx\!!stringa\!!stringb
- \expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
-\long\def\doifelsevalue#1#2%
- {\edef\!!stringa{\csname#1\endcsname}\edef\!!stringb{#2}%
- \ifx\!!stringa\!!stringb
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\long\def\doifnothing#1%
- {\edef\!!stringa{#1}%
- \ifx\!!stringa\empty
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\long\def\doifsomething#1%
- {\edef\!!stringa{#1}%
- \ifx\!!stringa\empty
- \expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
-\long\def\doifelsenothing#1%
- {\edef\!!stringa{#1}%
- \ifx\!!stringa\empty
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\long\def\doifsomethingelse#1%
- {\edef\!!stringa{#1}%
- \ifx\!!stringa\empty
- \expandafter\secondoftwoarguments
- \else
- \expandafter\firstoftwoarguments
- \fi}
-
-\long\def\doifvaluenothing#1%
- {\edef\!!stringa{\csname#1\endcsname}%
- \ifx\!!stringa\empty
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\long\def\doifvaluesomething#1%
- {\edef\!!stringa{\csname#1\endcsname}%
- \ifx\!!stringa\empty
- \expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
-\long\def\doifelsevaluenothing#1%
- {\edef\!!stringa{\csname#1\endcsname}%
- \ifx\!!stringa\empty
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-%D \macros
-%D {doifemptyelsevalue, doifemptyvalue, doifnotemptyvalue}
-%D
-%D Also handy:
-
-\def\doifemptyelsevalue#1%
- {\@EA\ifx\csname#1\endcsname\empty
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\def\doifemptyvalue#1%
- {\@EA\ifx\csname#1\endcsname\empty
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\def\doifnotemptyvalue#1%
- {\@EA\ifx\csname#1\endcsname\empty
- \expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
-%D \macros
-%D {doifallcommonelse}
-%D
-%D A complete match of two sets can be tested with
-%D \type {\doifallcommonelse}, where the first two
-%D arguments are sets.
-
-%\def\doifallcommonelse#1#2#3#4%
-% {\def\p!docommoncheck##1%
-% {\doifnotinset{##1}{#2}{\donefalse}%
-% \ifdone\else\quitcommalist\fi}%
-% \donetrue
-% \processcommalist[#1]\p!docommoncheck
-% \ifdone#3\else#4\fi}
-
-\def\@@doifallcommonelse#1#2#3#4% slow
- {\def\p!docommoncheck##1%
- {\doifnotinset{##1}{#4}\donefalse
- \ifdone\else\expandafter\quitcommalist\fi}%
- \donetrue
- \processcommalist[#3]\p!docommoncheck
- \ifdone\expandafter#1\else\expandafter#2\fi}
-
-\def\doifallcommonelse
- {\@@doifallcommonelse\firstoftwoarguments\secondoftwoarguments}
-
-\def\doifallcommon
- {\@@doifallcommonelse\firstofonearguments\gobbleoneargument}
-
-\def\doifnotallcommon
- {\@@doifallcommonelse\gobbleoneargument\firstofonearguments}
-
-%D \macros
-%D {DOIF,DOIFELSE,DOIFNOT}
-%D
-%D \TEX\ is case sensitive. When comparing arguments, this
-%D feature sometimes is less desirable, for instance when we
-%D compare filenames. The next three alternatives upcase their
-%D arguments before comparing them.
-%D
-%D \starttyping
-%D \DOIF {string1} {string2} {...}
-%D \DOIFNOT {string1} {string2} {...}
-%D \DOIFELSE {string1} {string2} {then ...}{else ...}
-%D \stoptyping
-%D
-%D We have to use a two||step implementation, because the
-%D expansion has to take place outside \type{\uppercase}.
-
-\def\p!DOIF#1#2%
- {\uppercase{\ifinstringelse{$#1$}{$#2$}}%
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\def\p!DOIFNOT#1#2%
- {\uppercase{\ifinstringelse{$#1$}{$#2$}}%
- \expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
-\def\p!DOIFELSE#1#2%
- {\uppercase{\ifinstringelse{$#1$}{$#2$}}%
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\def\p!DOIFINSTRINGELSE#1#2%
- {\uppercase{\ifinstringelse{#1}{#2}}%
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\def\DOIF {\ExpandBothAfter\p!DOIF}
-\def\DOIFNOT {\ExpandBothAfter\p!DOIFNOT}
-\def\DOIFELSE {\ExpandBothAfter\p!DOIFELSE}
-\def\DOIFINSTRINGELSE {\ExpandBothAfter\p!DOIFINSTRINGELSE}
-
-%D \macros
-%D {dosingleargumentwithset,
-%D dodoubleargumentwithset,dodoubleemptywithset,
-%D dotripleargumentwithset,dotripleemptywithset}
-%D
-%D These maybe too mysterious macros enable us to handle more
-%D than one setup at once.
-%D
-%D \starttyping
-%D \dosingleargumentwithset \command[#1]
-%D \dodoubleargumentwithset \command[#1][#2]
-%D \dotripleargumentwithset \command[#1][#2][#3]
-%D \dodoubleemptywithset \command[#1][#2]
-%D \dotripleemptywithset \command[#1][#2][#3]
-%D \stoptyping
-%D
-%D The first macro calls \type{\command[##1]} for each string
-%D in the set~\type{#1}. The second one calls for
-%D \type{\commando[##1][#2]} and the third, well one may guess.
-%D These commands support constructions like:
-%D
-%D \starttyping
-%D \def\dodefinesomething[#1][#2]%
-%D {\getparameters[\??xx#1][#2]}
-%D
-%D \def\definesomething%
-%D {\dodoubleargumentwithset\dodefinesomething}
-%D \stoptyping
-%D
-%D Which accepts calls like:
-%D
-%D \starttyping
-%D \definesomething[alfa,beta,...][variable=...,...]
-%D \stoptyping
-%D
-%D Now a whole bunch of variables like \type{\@@xxalfavariable}
-%D and \type{\@@xxbetavariable} is defined.
-
-\def\dodoublewithset#1#2%
- {\def\dododoublewithset[##1][##2]%
- {\doifsomething{##1}
- {\def\dodododoublewithset####1{#2[####1][##2]}%
- \processcommalist[##1]\dodododoublewithset}}%
- #1\dododoublewithset}
-
-\def\dodoubleemptywithset {\dodoublewithset\dodoubleempty}
-\def\dodoubleargumentwithset{\dodoublewithset\dodoubleargument}
-
-\def\dotriplewithset#1#2%
- {\def\dodotriplewithset[##1][##2][##3]%
- {\doifsomething{##1}
- {\def\dododotriplewithset####1{#2[####1][##2][##3]}%
- \processcommalist[##1]\dododotriplewithset}}%
- #1\dodotriplewithset}
-
-\def\dotripleemptywithset {\dotriplewithset\dotripleempty}
-\def\dotripleargumentwithset{\dotriplewithset\dotripleargument}
-
-%D \macros
-%D {stripcharacters,stripspaces}
-%D
-%D The next command was needed first when we implemented
-%D the \CONTEXT\ interactivity macros. When we use labeled
-%D destinations, we often cannot use all the characters we
-%D want. We therefore strip some of the troublemakers, like
-%D spaces, from the labels before we write them to the
-%D \DVI||file, which passes them to for instance a PostScript
-%D file.
-%D
-%D \starttyping
-%D \stripspaces\from\one\to\two
-%D \stoptyping
-%D
-%D Both the old string \type{\one} and the new one \type{\two}
-%D are expanded. This command is a special case of:
-%D
-%D \starttyping
-%D \stripcharacter\char\from\one\to\two
-%D \stoptyping
-%D
-%D As we can see below, spaces following a control sequence are
-%D to enclosed in \type{{}}.
-
-% 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}%
- \doifnotempty{##2}{\dostripcharacter##2\end}}%
- \let\!!strippedstring\empty
- \edef\!!stringa{#2}%
- \@EA\dostripcharacter\!!stringa#1\end
- \dodoglobal\let#3\!!strippedstring}
-
-\def\stripspaces\from#1\to#2% will become \unspacestring#1\from#2
- {\stripcharacter{ }\from#1\to#2}
-
-%D \macros
-%D {unspacestring}
-%D
-%D The next macro does the same but is more compatible with other macros,
-%D like \type {\convert...}.
-
-\def\unspacestring#1\to#2%
- {\stripcharacter{ }\from#1\to#2}
-
-%D \macros
-%D {executeifdefined}
-%D
-%D \CONTEXT\ uses one auxiliary file for all data concerning
-%D tables of contents, references, two||pass optimizations,
-%D sorted lists etc. This file is loaded as many times as
-%D needed. During such a pass we skip the commands thate are of
-%D no use at that moment. Because we don't want to come into
-%D trouble with undefined auxiliary commands, we call the
-%D macros in a way similar to \type{\getvalue}. The next macro
-%D take care of such executions and when not defined, gobbles
-%D the unwanted arguments.
-%D
-%D \starttyping
-%D \executeifdefined{name}\gobbleoneargument
-%D \stoptyping
-%D
-%D We can of course gobble more arguments using the
-%D appropriate gobbling command.
-
-\newif\ifexecuted % general purpose
-
-\def\executeifdefined#1#2%
- {\ifundefined{#1}%
- \def\next{#2}%
- \else
- \def\next{\getvalue{#1}}%
- \fi
- \next}
-
-%D Just for fun I times the next alternative: it was roughly
-%D timed about 15\% faster than the default (10+ sec to 9 sec)!
-
-\beginTEX
-
-\def\executeifdefined#1% #2 / never change this one again
- {\ifundefined{#1}%
- \expandafter\secondoftwoarguments
- \else
- \expandafter\firstoftwoarguments
- \fi
- {\csname#1\endcsname}}
-
-\endTEX
-
-\beginETEX
-
-% \def\executeifdefined#1% #2 / never change this one again
-% {\ifcsname#1\endcsname
-% \expandafter\firstoftwoarguments
-% \else
-% \expandafter\secondoftwoarguments
-% \fi
-% {\csname#1\endcsname}}
-
-\def\executeifdefined#1% #2 / never change this one again
- {\ifcsname#1\endcsname
- \csname#1\expandafter\expandafter\expandafter\endcsname\expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
-\endETEX
-
-% \letvalue{f }\firstofoneargument \def\executeifdefined#1{\csname\ifcsname#1\endcsname#1\else f \fi\endcsname}
-
-%D This one also has the advantage that it is fully
-%D expandable and that it can be used after an assignment.
-
-%D \macros
-%D {executeifdefinedcs}
-%D
-%D An also fully expandable variant is the following:
-%D
-%D \starttyping
-%D \executeifdefinedcs{a}{b}
-%D \stoptyping
-%D
-%D In dit geval zijn beide argumenten csnames.
-
-\def\executeifdefinedcs#1#2%
- {\csname\ifundefined{#1}#2\else#1\fi\endcsname}
-
-%D We considered an alternative implementation accepting
-%D commands directly, like:
-%D
-%D \starttyping
-%D \executeifdefined\name\gobblefivearguments
-%D \stoptyping
-%D
-%D For the moment we don't need this one, so we stick to the
-%D faster one.
-
-%D \macros
-%D {executeandforget}
-%D
-%D The following macros were requested by Simon. Watch the
-%D global variant.
-%D
-%D \starttyping
-%D \executeandforget\SomeCommand
-%D \doglobal\executeandforget\AnotherCommand
-%D \stoptyping
-
-\def\executeandforget#1%
- {\global\let\@@expanded#1%
- \dodoglobal\let#1\relax
- \@@expanded}
-
-%D \macros
-%D {doifsomespaceelse}
-%D
-%D The next command checks a string on the presence of a space
-%D and executed a command accordingly.
-%D
-%D \starttyping
-%D \doifsomespaceelse {tekst} {then ...} {else ...}
-%D \stoptyping
-%D
-%D We use this command in \CONTEXT\ for determing if an
-%D argument must be broken into words when made interactive.
-%D Watch the use of \type{\noexpand}.
-
-%D Is this one still needed?
-
-% \long\def\doifsomespaceelse#1#2#3%
-% {\def\p!doifsomespaceelse##1 ##2##3\war%
-% {\if\noexpand##2@#3\else#2\fi}%
-% \p!doifsomespaceelse#1 @ @\war}
-
-\def\p!doifsomespaceelse#1 #2#3\war{\if\noexpand#2@}
-
-\long\def\doifsomespaceelse#1% % #2#3%
- {\p!doifsomespaceelse#1 @ @\war % #3\else#2\fi}
- \expandafter\secondoftwoarguments
- \else
- \expandafter\firstoftwoarguments
- \fi}
-
-%D \macros
-%D {adaptdimension,balancedimensions}
-%D
-%D Again we introduce some macros that are closely related to
-%D an interface aspect of \CONTEXT. The first command can be
-%D used to adapt a \DIMENSION.
-%D
-%D \starttyping
-%D \adaptdimension {dimension} {value}
-%D \stoptyping
-%D
-%D When the value is preceed by a \type{+} or minus, the
-%D dimension is advanced accordingly, otherwise it gets the
-%D value.
-
-% \def\doadaptdimension#1#2\\#3\\%
-% {\if#1+%
-% \dodoglobal\advance#3 #1#2\relax
-% \else\if#1-%
-% \dodoglobal\advance#3 #1#2\relax
-% \else
-% \dodoglobal#3=#1#2\relax
-% \fi\fi}
-%
-% more fuzzy but also more efficient
-
-\def\doadaptdimension#1#2\\#3\\%
- {\if#1+%
- \dodoglobal\advance
- \else\if#1-%
- \dodoglobal\advance
- \else
- \dodoglobal
- \fi\fi
- #3 #1#2\relax}
-
-\def\adaptdimension#1#2%
- {\expandafter\doadaptdimension#2\\#1\\}
-
-%D A second command takes two \DIMENSIONS. Both are adapted,
-%D depending on the sign of the given value.
-%D maat. This time we take the value as it is, and don't look
-%D explicitly at the preceding sign.
-%D
-%D \starttyping
-%D \balancedimensions {dimension 1} {dimension 2} {value}
-%D \stoptyping
-%D
-%D When a positive value is given, the first dimension is
-%D incremented, the second ond is decremented. A negative value
-%D has the opposite result.
-
-\def\balancedimensions#1#2#3%
- {\scratchdimen#3\relax
- \redoglobal\advance#1 \scratchdimen
- \dodoglobal\advance#2 -\scratchdimen}
-
-%D Both commands can be preceded by \type{\doglobal}. Here we
-%D use \type{\redo} first, because \type{\dodo} resets the
-%D global character.
-
-%D \macros
-%D {processseparatedlist}
-%D
-%D Maybe a bit late, but here is a more general version of the
-%D \type{\processcommalist} command. This time we don't handle
-%D nesting but accept arbitrary seperators.
-%D
-%D \starttyping
-%D \processseparatedlist[list][separator]\command
-%D \stoptyping
-%D
-%D One can think of things like:
-%D
-%D \starttyping
-%D \processseparatedlist[alfa+beta+gamma][+]\message
-%D \stoptyping
-
-%D First we show the simple alternative:
-%D
-%D \starttyping
-%D \def\processseparatedlist[#1][#2]#3%
-%D {\def\doprocessseparatedlist##1##2#2%
-%D {\if]##1%
-%D \let\next=\relax
-%D \else\if]##2%
-%D \let\next=\relax
-%D \else\ifx\blankspace##2%
-%D #3{##1}%
-%D \let\next=\doprocessseparatedlist
-%D \else
-%D #3{##1##2}%
-%D \let\next=\doprocessseparatedlist
-%D \fi\fi\fi
-%D \next}%
-%D \doprocessseparatedlist#1#2]#2}
-%D \stoptyping
-%D
-%D However, we want to handle all situations, like:
-%D
-%D \startbuffer
-%D \processseparatedlist[{aap noot}] [ ]{\def\xxx} \convertcommand\xxx\to\ascii {\tttf\ascii}
-%D \processseparatedlist[{aap} {noot}][ ]{\def\xxx} \convertcommand\xxx\to\ascii {\tttf\ascii}
-%D \processseparatedlist[aap {noot}] [ ]{\def\xxx} \convertcommand\xxx\to\ascii {\tttf\ascii}
-%D \processseparatedlist[aap noot] [ ]{\def\xxx} \convertcommand\xxx\to\ascii {\tttf\ascii}
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D Therefore we smuggle a \type {\relax} in front of the
-%D argument, which we remove afterwards.
-
-% \def\doprocessseparatedlist#1]#2[#3]#4%
-% {\def\dodoprocessseparatedlist##1##2#3%
-% {\if]##1%
-% \let\dodoprocessseparatedlist\relax
-% \else\if]##2%
-% \let\dodoprocessseparatedlist\relax
-% \else\ifx\blankspace##2%
-% #4{##1}%
-% \else
-% #4{##1##2}%
-% \fi\fi\fi
-% \dodoprocessseparatedlist}%
-% \@EA\dodoprocessseparatedlist\gobbleoneargument#1#3]#3}
-
-% testcase Vit Zyka:
-%
-% \def\Do#1{(#1)}
-% 1\processseparatedlist[{aap noot}] [ ]\Do \par
-% 2\processseparatedlist[{aap} {noot}][ ]\Do \par
-% 3\processseparatedlist[aap {noot}] [ ]\Do \par
-% 4\processseparatedlist[aap noot] [ ]\Do \par
-% 5\processseparatedlist[aap;noot;a noot;noot a; noot a noot][;]\Do \par
-% 6\processseparatedlist[][;]\Do \par
-% 7\processseparatedlist[;][;]\Do \par
-
-\def\doprocessseparatedlist#1]#2[#3]#4%
- {\def\dodoprocessseparatedlist##1##2#3%
- {\def\!!stringa{##2}% suggested by VZ
- \if]##1%
- \let\dodoprocessseparatedlist\relax
- \else\ifx\blankspace\!!stringa
- #4{##1}%
- \else\if]##2%
- \let\dodoprocessseparatedlist\relax
- \else
- #4{##1##2}%
- \fi\fi\fi
- \dodoprocessseparatedlist}%
- \@EA\dodoprocessseparatedlist\gobbleoneargument#1#3]#3}
-
-\def\processseparatedlist[%
- {\doprocessseparatedlist\relax}
-
-%D \macros
-%D {processlist}
-%D
-%D An even more general list processing macro is the
-%D following one:
-%D
-%D \starttyping
-%D \processlist{beginsym}{endsym}{separator}\docommand list
-%D \stoptyping
-%D
-%D This one supports arbitrary open and close symbols as well
-%D as user defined separators.
-%D
-%D \starttyping
-%D \processlist(){=>}\docommand(a=>b=>c=>d)
-%D \stoptyping
-
-\long\def\processlist#1#2#3#4% no blank skipping !
- {\def\doprocesslist##1#2%
- {\def\dodoprocesslist####1####2#3%
- {\ifx#2####1%
- \let\dodoprocesslist\relax
- \else\ifx#2####2%
- \let\dodoprocesslist\relax
- \else
- #4{####1####2}%
- \fi\fi
- \dodoprocesslist}%
- \expandafter\dodoprocesslist\gobbleoneargument##1#3#2#3}%
- \def\dodoprocesslist#1%
- {\doprocesslist\relax}%
- \dodoprocesslist}
-
-% %D \macros
-% %D {dohonorgroupedargument}
-% %D
-% %D The previous macro uses yet another auxiliary macro to
-% %D handle the special case.
-%
-% \def\dohonorgroupedargument#1[%
-% {\doifnextbgroupelse{\dodohonorgroupedargument#1}{#1[}}
-%
-% \def\dodohonorgroupedargument#1#2%
-% {#1[{{#2}}}
-
-%D \macros
-%D {processassignlist}
-%D
-%D Is possible to combine an assignment list with one
-%D containing keywords. Assignments are treated accordingly,
-%D keywords are treated by \type{\command}.
-%D
-%D \starttyping
-%D \processassignlist[...=...,...=...,...]\commando
-%D \stoptyping
-%D
-%D This command can be integrated in \type{\getparameters}, but
-%D we decided best not to do so.
-
-\def\processassignlist#1[#2]#3%
- {\def\p!dodogetparameter[##1=##2=##3]%
- {\doifnot{##3}\relax{#3{##1}}}%
- \def\p!dogetparameter##1%
- {\p!dodogetparameter[##1==\relax]}%
- \processcommalist[#2]\p!dogetparameter}
-
-% too ugly
-%
-% %D \macros
-% %D {DoAfterFi,DoAfterFiFi}
-% %D
-% %D Sometimes \type{\fi}'s can get into the way. We can reach
-% %D over such a troublemaker with:
-% %D
-% %D \starttyping
-% %D \DoAfterFi{some commands}
-% %D \DoAfterFiFi{some commands}
-% %D \stoptyping
-% %D
-% %D It saves us a \type{\next} construction. Skipping
-% %D \type{\else...\fi} is more tricky, so this one is not
-% %D provided.
-%
-% \def\DoAfterFi#1\fi{\fi#1}
-% \def\DoAfterFiFi#1\fi#2\fi{\fi\fi#1}
-
-%D \macros
-%D {untextargument
-%D untexcommand}
-%D
-%D When manipulating data(bases) and for instance generating
-%D index entries, the next three macros can be of help:
-%D
-%D \starttyping
-%D \untextargument{...}\to\name
-%D \untexcommand {...}\to\name
-%D \stoptyping
-%D
-%D They remove braces and backslashes and give us something to
-%D sort.
-
-\def\untexsomething
- {\begingroup
- \catcode`\{=\@@ignore
- \catcode`\}=\@@ignore
- \escapechar\minusone
- \dountexsomething}
-
-\long\def\dountexsomething#1#2\to#3%
- {\doglobal#1#2\to\untexedargument
- \endgroup
- \let#3\untexedargument}
-
-\def\untexargument{\untexsomething\convertargument}
-\def\untexcommand {\untexsomething\convertcommand}
-
-%D \macros
-%D {ScaledPointsToBigPoints,ScaledPointsToWholeBigPoints}
-%D
-%D One characteristic of \POSTSCRIPT\ and \PDF\ is that both
-%D used big points (\TEX's bp). The next macros convert points
-%D and scaled points into big points.
-%D
-%D \starttyping
-%D \ScaledPointsToBigPoints {number} \target
-%D \ScaledPointsToWholeBigPoints {number} \target
-%D \stoptyping
-%D
-%D The magic factor $72/72.27$ can be found in most \TEX\
-%D related books.
-
-% \def\ScaledPointsToBigPoints #1{\PointsToBigPoints {#1sp}}
-% \def\ScaledPointsToWholeBigPoints#1{\PointsToWholeBigPoints{#1sp}}
-%
-% \def\PointsToBigPoints#1#2%
-% {\scratchdimen#1%
-% \scratchdimen.996264\scratchdimen
-% \edef#2{\withoutpt\the\scratchdimen}}
-%
-% \def\PointsToWholeBigPoints#1#2%
-% {\scratchdimen#1%
-% \scratchdimen.996264\scratchdimen
-% \scratchcounter\scratchdimen
-% \advance\scratchcounter \medcard
-% \divide\scratchcounter \maxcard
-% \edef#2{\the\scratchcounter}}
-
-% \PointsToBigPoints{10.53940pt}\test \test
-% \PointsToBigPoints{10.53941pt}\test \test
-% \PointsToBigPoints{10.53942pt}\test \test
-
-% \PointsToWholeBigPoints{10.53940pt}\test \test
-% \PointsToWholeBigPoints{10.53941pt}\test \test
-% \PointsToWholeBigPoints{10.53942pt}\test \test
-
-\beginTEX
-
- \def\PointsToBigPoints#1#2%
- {\scratchdimen#1%
- \scratchdimen.996264\scratchdimen
- \edef#2{\withoutpt\the\scratchdimen}}
-
- \def\PointsToWholeBigPoints#1#2%
- {\scratchdimen#1%
- \scratchdimen.996264\scratchdimen
- \scratchcounter\scratchdimen
- \advance\scratchcounter \medcard
- \divide\scratchcounter \maxcard
- \edef#2{\the\scratchcounter}}
-
-\endTEX
-
-\beginETEX \dimexpr \numexpr
-
-% \def\PointsToBigPoints#1#2%
-% {\edef#2{\withoutpt\the\dimexpr(.996264\dimexpr(#1))}}
-
-% \def\PointsToWholeBigPoints#1#2%
-% {\edef#2{\the\numexpr(\numexpr(\dimexpr(.996264\dimexpr(#1)))/\maxcard)}}
-
- \def\PointsToBigPoints#1#2%
- {\edef#2{\withoutpt\the\dimexpr.996264\dimexpr#1\relax\relax}}
-
- \def\PointsToWholeBigPoints#1#2%
- {\edef#2{\the\numexpr\dimexpr.996264\dimexpr#1\relax\relax/\maxcard\relax}}
-
-\endETEX
-
-\def\ScaledPointsToBigPoints #1{\PointsToBigPoints {\number#1\scaledpoint}}
-\def\ScaledPointsToWholeBigPoints#1{\PointsToWholeBigPoints{\number#1\scaledpoint}}
-
-%D \macros
-%D {PointsToReal}
-%D
-%D Points can be stripped from their suffix by using
-%D \type{\withoutpt}. The next macro enveloppes this macro.
-%D
-%D \starttyping
-%D \PointsToReal {dimension} \target
-%D \stoptyping
-
-\def\PointsToReal#1#2%
- {\scratchdimen#1%
- \edef#2{\withoutpt\the\scratchdimen}}
-
-%D \macros
-%D {dontleavehmode}
-%D
-%D Sometimes when we enter a paragraph with some command, the
-%D first token gets the whole first line. We can prevent this
-%D by saying:
-%D
-%D \starttyping
-%D \dontleavehmode
-%D \stoptyping
-%D
-%D This command is used in for instance the language module
-%D \type{lang-ini}. The first version was:
-%D
-%D \starttyping
-%D \def\dontleavehmode{\ifhmode\else\ifmmode\else$ $\fi\fi}
-%D \stoptyping
-%D
-%D Next, Taco came with a better alternative (using mathsurround):
-%D
-%D \starttyping
-%D \def\dontleavehmode
-%D {\ifhmode\else \ifmmode\else
-%D {\mathsurround\zeropoint\everymath\emptytoks$ $}%
-%D \fi \fi}
-%D \stoptyping
-%D
-%D And finaly we got the following alternative, one that avoids
-%D interfering grouping at the cost of a box.
-
-\newbox\@@dlhbox
-
-\unexpanded \def\dontleavehmode
- {\ifhmode\else \ifmmode\else
- \setbox\@@dlhbox\hbox{\mathsurround\zeropoint\everymath\emptytoks$ $}\unhbox\@@dlhbox
- \fi \fi}
-
-% 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:
-
-\ifx\normalquitvmode\undefined \else \let\dontleavehmode\normalquitvmode \fi
-
-%D \macros
-%D {uppercasestring,lowercasestring}
-%D
-%D The names tell what they do:
-%D
-%D \starttyping
-%D \uppercasestring somestring\to\somestring
-%D \lowercasestring somestring\to\somestring
-%D \stoptyping
-%D
-%D the first argument may be a \type{\macro}.
-
-\def\uppercasestring#1\to#2% first @EA redundant
- {\edef#2{#1}\@EA\uppercase\@EA{\@EA\dodoglobal\@EA\edef\@EA#2\@EA{#2}}}
-
-\def\lowercasestring#1\to#2% first @EA redundant
- {\edef#2{#1}\@EA\lowercase\@EA{\@EA\dodoglobal\@EA\edef\@EA#2\@EA{#2}}}
-
-%D \macros
-%D {handletokens}
-%D
-%D With the next macro we enter a critical area of macro
-%D expansion. What we want is a macro that looks like:
-%D
-%D \starttyping
-%D \handletokens some tokens\with \somemacro
-%D \stoptyping
-%D
-%D At first sight the next implementation will suffice, but
-%D running this one shows that we loose the spaces. This is no
-%D surprise because we grab arguments and spaces preceding those
-%D are just ignored.
-%D
-%D \starttyping
-%D \def\nohandletokens#1\end%
-%D {}
-%D
-%D \def\dohandletokens#1#2\end%
-%D {\ifx#1\endoftoken
-%D \expandafter\nohandletokens
-%D \else
-%D \docommand{#1}%
-%D \expandafter\dohandletokens
-%D \fi
-%D #2\end}
-%D
-%D \long\def\handletokens#1\with#2%
-%D {\let\docommand=#2\relax
-%D \dohandletokens#1\endoftoken\end}
-%D \stoptyping
-%D
-%D A second approach therefore grabs the individual characters
-%D by using \type{\afterassignment}, in which case the space is
-%D read in as space.
-%D
-%D \starttyping
-%D \def\dodohandletokens%
-%D {\ifx\next\end \else
-%D \docommand{\next}%
-%D \expandafter\dohandletokens
-%D \fi}
-%D
-%D \def\dohandletokens
-%D {\afterassignment\dodohandletokens\let\next= }
-%D
-%D \long\def\handletokens#1\with#2%
-%D {\let\docommand=#2%
-%D \dohandletokens#1\end}
-%D \stoptyping
-
-%D A bonus example:
-%D
-%D \starttyping
-%D \hbox{\handletokens tekst en meer tekst\with\ruledhbox}
-%D
-%D \def\weetikveel#1{\if#1\blankspace\space\else\ruledhbox{#1}\fi}
-%D
-%D \hbox{\handletokens tekst en meer tekst\with\weetikveel}
-%D \stoptyping
-
-%D \macros
-%D {counttoken,counttokens}
-%D
-%D For the few occasions that we want to know the number of
-%D specific tokens in a string, we can use:
-%D
-%D \starttyping
-%D \counttoken token\in string\to \count
-%D \counttokens string\to \count
-%D \stoptyping
-%D
-%D This macro, that for instance is used in \type{cont-tab},
-%D takes a real counter. The macro can be preceded by \type
-%D {\doglobal}.
-
-\def\counttoken#1\in#2\to#3%
- {\redoglobal#3\zerocount
- \def\!!stringa{#1}%
- \def\!!stringb{\end}%
- \def\docounttoken##1% obeys {}
- {\def\!!stringc{##1}%
- \ifx\!!stringb\!!stringc \else
- \ifx\!!stringa\!!stringc
- \dodoglobal\advance#3 \plusone
- \fi
- \expandafter\docounttoken
- \fi}%
- \docounttoken#2\end
- \resetglobal}
-
-% \def\counttoken#1\in#2\to#3%
-% {\redoglobal#3\zerocount
-% \def\!!stringa{#1}%
-% \def\docounttoken##1% obeys {}
-% {\def\!!stringb{##1}%
-% \ifx\!!stringa\!!stringb
-% \dodoglobal\advance#3\plusone
-% \fi}%
-% \handletokens#1\with\docounttoken
-% \resetglobal}
-
-\def\counttokens#1\to#2%
- {\redoglobal#2\zerocount
- \def\docounttoken##1{\dodoglobal\advance#2\plusone}%
- \handletokens#1\with\docounttoken
- \resetglobal}
-
-%D \macros
-%D {splitofftokens}
-%D
-%D Running this one not always gives the expected results.
-%D Consider for instance the macro for which I originally
-%D wrote this token handler.
-
-\long\def\splitofftokens#1\from#2\to#3%
- {\ifnum#1>\zerocount
- \scratchcounter#1\relax
- \def\dosplitofftokens##1%
- {\ifnum\scratchcounter>\zerocount
- \advance\scratchcounter \minusone
- \edef#3{#3##1}%
- \fi}%
- % \let#3\empty % #3 can be #2, so:
- \@EA\let\@EA#3\@EA\empty
- \@EA\handletokens#2\with\dosplitofftokens
- \else
- \edef#3{#2}%
- \fi}
-
-%D This macro can be called like:
-%D
-%D \startbuffer[example]
-%D \splitofftokens10\from01234567 890123456789\to\test [\test]
-%D \stopbuffer
-%D
-%D However, the characters that we expect to find in
-%D \type{\test} just don;t show up there. The reason for this
-%D is not that logical but follows from \TEX's sometimes
-%D mysterious way of expanding. Look at this:
-%D
-%D \startbuffer[next]
-%D \def\next{a} \edef\test{\next} [\test]
-%D \let\next=b \edef\test{\test\next} [\test]
-%D \let\next=c \edef\test{\next} [\test]
-%D \let\next=d \edef\test{\test\next} [\test]
-%D \let\next=e \@EA\edef\@EA\test\@EA{\test\next} [\test]
-%D \stopbuffer
-%D
-%D \typebuffer[next]
-%D
-%D Careful reading shows that inside an \type{\edef} macro's
-%D that are \type{\let} are not expanded!
-%D
-%D \unprotect\getbuffer[next]\protect
-%D
-%D That's why we finally end up with a macro that looks
-%D ahead by using an assignment, this time by using \type
-%D {\futurelet}, and grabbing an argument as well. That
-%D way we can handle the sentinal, a blank space and grouped
-%D tokens.
-
-\def\dohandletokens % \nexthandledtoken is part of interface
- {\futurelet\nexthandledtoken\dodohandletokens}
-
-\long\def\handletokens#1\with#2%
- {\gdef\dododohandletokens{#2}% permits more complex #2's
- \dohandletokens#1\end}
-
-%D A previous version said \type{\docommand=#2}, but to enable
-%D use in alignments, I decided to use another placeholder, one
-%D that is not sensitive to the global assignment.
-
-%D This alternatives does not handle grouped tokens well, so
-%D next we had (for a short moment):
-%D
-%D \starttyping
-%D \def\dodohandletokens#1%
-%D {\ifx\nexthandledtoken\blankspace
-%D \dododohandletokens{ }%
-%D \fi
-%D \ifx#1\end \else
-%D \dododohandletokens{#1}%
-%D \expandafter\dohandletokens
-%D \fi}
-%D \stoptyping
-%D
-%D This one failed on a trailing space, something we
-%D encounter in \JAVASCRIPT\ cleaning.
-%D
-%D \starttyping
-%D \def\dodohandletokens#1%
-%D {\ifx\nexthandledtoken\blankspace
-%D \dododohandletokens{ }%
-%D \fi
-%D \ifx\nexthandledtoken\end \else
-%D \dododohandletokens{#1}%
-%D \expandafter\dohandletokens
-%D \fi}
-%D \stoptyping
-%D
-%D So, now we have:
-
-\def\dodohandletokens % can be sped up
- {\ifx\nexthandledtoken\blankspace
- \def\next * {\dododohandletokens{ }\dohandletokens}%
- \else\ifx\nexthandledtoken\end
- \let\next\gobbletwoarguments
- \else
- \long\def\next *##1{\dododohandletokens{##1}\dohandletokens}%
- \fi\fi
- \next *}
-
-%D This macro is tested on:
-%D
-%D \def\xxx#1{[#1]}
-%D
-%D \startlines
-%D \handletokens abc\with\xxx
-%D \handletokens a b c\with\xxx
-%D \handletokens a b c\with\xxx
-%D \handletokens a{bc}d\with\xxx
-%D \handletokens a\space bc \with\xxx
-%D \stoplines
-%D
-%D And our previous example shows up as:
-%D
-%D \getbuffer[example]
-
-%D \macros
-%D {iftrialtypesetting, ifvisible}
-%D
-%D The next boolean is at first sight a strange one. Sometimes
-%D one does a trial typesetting run, for instance to determine
-%D dimensions. Some mechanisms, like object inclusion, can fail
-%D on such trials. Temporary setting the next boolean to true,
-%D helps a lot. The second boolena can be used to inhibit
-%D processing completely.
-
-\newif\iftrialtypesetting \trialtypesettingfalse
-\newif\ifvisible \visibletrue
-
-%D \macros
-%D {startlocal, startglobal}
-%D
-%D The next four macros are rather self explaining:
-%D
-%D \starttyping
-%D \startlocal
-%D whatever assignments
-%D \stoplocal
-%D
-%D \startglobal
-%D whatever assignments
-%D \stopglobal
-%D \stoptyping
-%D
-%D These macros are meant for those who know the difference
-%D between local and global assignments and are aware of the
-%D possible unwanted side effect
-
-\def\dostartglobaldefs#1#2%
- {\edef\!!stringa{\the\globaldefs}%
- \ifnum\globaldefs#10
- \globaldefs-\globaldefs
- \fi
- \advance\globaldefs#21
- \letvalue{@gd@\the\globaldefs}\!!stringa}
-
-\def\dostopglobaldefs%
- {\doifdefinedelse{@gd@\the\globaldefs}
- {\globaldefs\getvalue{@gd@\the\globaldefs}\relax}
- {\globaldefs\zerocount}}
-
-\def\startlocal {\dostartglobaldefs>-}
-\def\stoplocal {\dostopglobaldefs}
-\def\startglobal {\dostartglobaldefs<+}
-\def\stopglobal {\dostopglobaldefs}
-
-%D \macros
-%D {twodigitrounding}
-%D
-%D When using \type {\special}s or \type {\pdfliteral}s, it
-%D sometimes makes sense to limit the precission. The next
-%D macro rounds a real number to two digits. It takes one
-%D argument and only works in \ETEX.
-
-\beginTEX
-
- \let\integerrounding \firstofoneargument
- \let\onedigitrounding \firstofoneargument
- \let\twodigitrounding \firstofoneargument
- \let\threedigitrounding\firstofoneargument
-
-\endTEX
-
-\beginETEX \dimexpr
-
- \def\dointegerrounding #1.#2\relax {#1}
- \def\doonedigitrounding #1.#2#3\relax {\ifx#2*#1\else#1.#2\fi}
- \def\dotwodigitrounding #1.#2#3#4\relax {\ifx#2*#1\else#1.#2#3\fi}
- \def\dothreedigitrounding#1.#2#3#4#5\relax{\ifx#2*#1\else#1.#2#3#4\fi}
-
- \def\integerrounding#1%
- {\@EA\@EA\@EA\dointegerrounding \@EA\WITHOUTPT\the\dimexpr#1\points+.5\points \relax .\relax}
- \def\onedigitrounding#1%
- {\@EA\@EA\@EA\doonedigitrounding \@EA\WITHOUTPT\the\dimexpr#1\points+.05\points \relax 00.*0\relax}
- \def\twodigitrounding#1%
- {\@EA\@EA\@EA\dotwodigitrounding \@EA\WITHOUTPT\the\dimexpr#1\points+.005\points \relax 000.*00\relax}
- \def\threedigitrounding#1%
- {\@EA\@EA\@EA\dothreedigitrounding\@EA\WITHOUTPT\the\dimexpr#1\points+.0005\points\relax0000.*00\relax}
-
-% \def\dointegerrounding #1.#2\relax {#1}
-% \def\doonedigitrounding #1.#2#3\relax {#1.#2}
-% \def\dotwodigitrounding #1.#2#3#4\relax {#1.#2#3}
-% \def\dothreedigitrounding#1.#2#3#4#5\relax{#1.#2#3#4}
-
-% \def\integerrounding #1{\@EA\@EA\@EA\dointegerrounding \@EA\WITHOUTPT\the\dimexpr #1\points+.5\points\relax \relax}
-% \def\onedigitrounding #1{\@EA\@EA\@EA\doonedigitrounding \@EA\WITHOUTPT\the\dimexpr #1\points+.05\points\relax 0\relax}
-% \def\twodigitrounding #1{\@EA\@EA\@EA\dotwodigitrounding \@EA\WITHOUTPT\the\dimexpr #1\points+.005\points\relax 00\relax}
-% \def\threedigitrounding#1{\@EA\@EA\@EA\dothreedigitrounding\@EA\WITHOUTPT\the\dimexpr#1\points+.0005\points\relax000\relax}
-
-% \def\integerroundeddimen #1{\@EA\@EA\@EA\dointegerrounding \@EA\WITHOUTPT\the\dimexpr #1+.5\points\relax \relax}
-% \def\onedigitroundeddimen #1{\@EA\@EA\@EA\doonedigitrounding \@EA\WITHOUTPT\the\dimexpr #1+.05\points\relax 0\relax}
-% \def\twodigitroundeddimen #1{\@EA\@EA\@EA\dotwodigitrounding \@EA\WITHOUTPT\the\dimexpr #1+.005\points\relax 00\relax}
-% \def\threedigitroundeddimen#1{\@EA\@EA\@EA\dothreedigitrounding\@EA\WITHOUTPT\the\dimexpr#1+.0005\points\relax000\relax}
-
-\endETEX
-
-%D \macros
-%D {processcontent}
-%D
-%D This is the first occasion where \TEX\ and \ETEX\ are no
-%D longer compatible, although in many cases things go ok.
-%D Beware of verbatim, i.e. catcode changes.
-%D
-%D \starttyping
-%D \def\starthans%
-%D {\processcontent{stophans}\test{\message{\test}\wait}}
-%D \stoptyping
-%D
-%D This macro is first used in the tabulation macros.
-
-\def\processcontent#1%
- {\begingroup\@EA\doprocesscontent\csname#1\endcsname}
-
-%\beginTEX
-
-\def\doprocesscontent#1#2#3%
- {\long\def\doprocesscontent##1#1%
- {\endgroup\long\def#2{##1}#3}%
- \doprocesscontent}
-
-%\endTEX
-
-% Hm. Side effect, spaces after \type{\test} in verbatim.
-% must set eof token
-
-%\beginETEX \scantokens
-%
-%\def\doprocesscontent#1#2#3%
-% {\long\def\doprocesscontent##1#1%
-% {\egroup\long\def#2{\scantokens{##1}}#3}%
-% \doprocesscontent}
-%
-%\endETEX
-
-%D \macros
-%D {dogobblesingleempty, dogobbledoubleempty}
-%D
-%D These two macros savely grab and dispose two arguments.
-
-\def\dogobblesingleempty{\dosingleempty\dodogobblesingleempty}
-\def\dogobbledoubleempty{\dodoubleempty\dodogobbledoubleempty}
-
-\def\dodogobblesingleempty [#1]{}
-\def\dodogobbledoubleempty[#1][#2]{}
-
-\let\gobblesingleempty\dogobblesingleempty % also used
-\let\gobbledoubleempty\dogobbledoubleempty % also used
-
-%D \macros
-%D {sortcommalist,sortcommacommand,
-%D donumericcompare,comparedresult}
-%D
-%D Sometimes we need to sort a commalist, so here is Taco's
-%D solution. This will in many cases be a list that is stored
-%D in a \type{\csname}, so both commalist and commacommands are
-%D supported. The sorting algorithm is very simple, so the list
-%D should not be too long or sorting will be very slow.
-%D
-%D \starttyping
-%D \sortcommalist[10,2,4,5,6,1,2,3,4,10,20]\donumericcompare
-%D
-%D \def\test{10,2,4,5,6,1,2,3,4,10,20}
-%D
-%D \sortcommacommand[\test]\donumericcompare
-%D \stoptyping
-%D
-%D In both cases, the result is available in the macro \type
-%D {\sortedcommalist}.
-%D
-%D Parameter \type{#2} is a macro that should accept two
-%D parameters, and it has to decide which one is larger, by
-%D setting the counter \type{\comparedresult} to~0 (for equal),
-%D 1~(if it's first argument is larger), or~2 (if it's second
-%D argument is larger).
-%D
-%D As said, these macro are largely written by Taco, and are
-%D (maybe therefore) also the first application of \type
-%D {\replaceincommalist}.
-
-\newcount\comparedresult
-
-\def\sortcommacommand[#1]%
- {\@EA\sortcommalist\@EA[#1]}
-
-\def\sortcommalist[#1]#2%
- {\getcommalistsize[#1]%
- \ifnum\commalistsize>1
- \let\sortedcommalist\empty
- \let\comparecommand#2%
- \processcommalist[#1]\dosortcommacommand
- \else
- \def\sortedcommalist{#1}%
- \fi}
-
-\def\dosortcommacommand#1%
- {\ifx\sortedcommalist\empty
- \def\sortedcommalist{#1}%
- \else
- \def\!!tempa{#1}%
- \ifx\!!tempa\empty\else
- \scratchcounter\plusone
- \@EA\getcommalistsize\@EA[\sortedcommalist]%
- \@EA\processcommalist\@EA[\sortedcommalist]\docompareitems
- \fi
- \fi}
-
-%D All those \type{\expandafter}'s are there because I do not
-%D want to use \type{\edef}.
-
-\def\docompareitems#1%
- {\doifnotempty{#1}
- {\@EA\comparecommand\@EA{\!!tempa}{#1}\relax
- %\ifcase\compareresult % equal
- \ifnum\comparedresult<2
- \ifnum\scratchcounter=\commalistsize
- \@EA\@EA\@EA\def\@EA\@EA\@EA\sortedcommalist
- \@EA\@EA\@EA{\@EA\sortedcommalist\@EA,\!!tempa}%
- \fi
- %\or % new element larger
- % \ifnum\scratchcounter=\commalistsize
- % \@EA\@EA\@EA\def\@EA\@EA\@EA\sortedcommalist
- % \@EA\@EA\@EA{\@EA\sortedcommalist\@EA,\!!tempa}%
- % \fi
- \else % old element larger
- \@EA\def\@EA\newcommalistelement\@EA{\!!tempa,#1}%
- \replaceincommalist\sortedcommalist\scratchcounter
- \expandafter\quitcommalist
- \fi}%
- \advance\scratchcounter \plusone} % bug, was \minusone
-
-%D The macro \type{\donumericcompare} considers everything
-%D that is not a number to be larger than any number.
-
-\def\donumericcompare#1#2%
- {\doifnumberelse{#1}
- {\doifnumberelse{#2}
- {\ifnum#1>#2\relax
- \comparedresult\plusone % #1 is larger
- \else\ifnum#1<#2\relax
- \comparedresult\plustwo % #2 is larger
- \else
- \comparedresult\zerocount % both are equal
- \fi\fi}
- {\comparedresult\plustwo}}
- {\comparedresult\plusone}}
-
-%D \macros
-%D {@True, @False, @Not, @And}
-%D
-%D Some predicate logic functions, used in for instance the
-%D math module.
-
-\def\@True {00}
-\def\@False {01}
-\def\@Not #1{0\ifcase#11 \or\@EA 1\else \@EA 0\fi}
-\def\@And #1#2{0\ifcase#1#2 \@EA 0\else \@EA 1\fi}
-
-%D \macros
-%D {setdimensionwithunit, freezedimensionwithunit}
-%D
-%D The next assignments are all valid:
-%D
-%D \starttyping
-%D \setdimensionwithunit\scratchdimen{10} {cm}
-%D \setdimensionwithunit\scratchdimen{10cm}{cm}
-%D \setdimensionwithunit\scratchdimen{10cm}{}
-%D \freezedimensionwithunit\SomeWidth{\textwidth}
-%D \freezedimensionwithunit\SomeDepth{\dp\strutbox}
-%D \stoptyping
-%D
-%D As an alternative for the next macro we can use a global
-%D assignment inside a box. The \type{\empty}'s permits
-%D gobbling while preventing spurious \type{\relax}'s.
-
-\def\setdimensionwithunit#1#2#3% number unit dimension / nice trick
- {\afterassignment\gobblefourarguments#1=#2#3pt\relax\empty\empty\empty\empty}
-
-\def\freezedimensionwithunit#1#2%
- {\setdimensionwithunit\scratchdimen#1{#2}\edef#1{\the\scratchdimen}}
-
-%D \macros
-%D {doifsometokselse}
-%D
-%D Not that fast I guess, but here's a way to test for token
-%D registers being empty.
-
-\def\doifsometokselse#1% % #2#3%
- {\edef\!!stringa{\the#1}%
- \ifx\!!stringa\empty % #3\else#2\fi}
- \expandafter\secondoftwoarguments
- \else
- \expandafter\firstoftwoarguments
- \fi}
-
-%D \macros
-%D {startstrictinspectnextcharacter}
-%D
-%D This one if for Taco's bibliography module:
-
-\let\normalinspectnextcharacter\inspectnextcharacter
-
-\def\strictinspectnextcharacter% no user macro !
- {\ifx\nexttoken\charactertoken
- \expandafter\!!stringa
- \else
- \expandafter\!!stringb
- \fi}
-
-% better: push/pop
-
-\def\startstrictinspectnextcharacter
- {\let\inspectnextcharacter\strictinspectnextcharacter}
-
-\def\stopstrictinspectnextcharacter
- {\let\inspectnextcharacter\normalinspectnextcharacter}
-
-\def\strictdoifnextoptionalelse#1#2%
- {\startstrictinspectnextcharacter
- \doifnextcharelse[{\stopstrictinspectnextcharacter#1}{\stopstrictinspectnextcharacter#2}}
-
-%D \macros
-%D {gobblespacetokens}
-%D
-%D This macro needs a speed-up!
-
-%\def\gobblespacetokens
-% {\doifnextcharelse\empty\donothing\donothing} % no {}\do\do !
-
-\def\gobblespacetokens
- {\afterassignment\nexttoken\let\nexttoken=}
-
-%D \macros
-%D {verbatimargument}
-%D
-%D As the name says, this macro converts its argument to a
-%D (rather safe) string.
-
-\def\verbatimstring#1%
- {\convertargument#1\to\ascii\ascii}
-
-%D These are needed in ordinal number conversions:
-
-\def\lastdigit#1%
- {\@EA\thelastdigit\number#1\relax}
-
-\def\thelastdigit#1#2%
- {\ifx#2\relax#1\else\@EA\thelastdigit\@EA#2\fi}
-
-\def\lasttwodigits#1%
- {\@EA\thelasttwodigits\@EA0\number#1\relax}
-
-\def\thelasttwodigits#1#2#3% 0 dig ... \relax
- {\ifx#3\relax#1#2\else\@EA\thelasttwodigits\@EA#2\@EA#3\fi}
-
-%D \macros
-%D {serializecommalist}
-%D
-%D Concatenate commalists:
-
-\def\serializecommalist[#1]%
- {\let\serializedcommalist\empty
- \def\docommand##1{\edef\serializedcommalist{\serializedcommalist##1}}%
- \processcommacommand[#1]\docommand}
-
-%D \macros
-%D {purenumber}
-%D
-%D Sometimes we need control over when \TEX\ stops reading a
-%D number, especially in full expandable macros where using
-%D \type {\relax} would lead to disasters.
-%D
-%D \starttyping
-%D \ifodd\purenumber{...}\space ... \else ... \fi
-%D \stoptyping
-%D
-%D Here we use a space as number delimiter in combination
-%D with a space- and relax-less \type {\purenumber}. This
-%D macro works ok with \type {\the}, \type {\number} as well
-%D as \ETEX's \type {\numexpr}.
-
-\def\purenumber#1{\@EA\firstofoneargument\@EA{\number#1}}
-
-%D \macros
-%D {filterfromvalue}
-%D
-%D \starttyping
-%D \setvalue{xx}{{A}{B}{C}}
-%D
-%D \filterfromvalue{xx}{3}{3}
-%D \filterfromvalue{xx}{3}{2}
-%D \filterfromvalue{xx}{3}{1}
-%D \stoptyping
-%D
-%D An alternative is to store 'max' in the list, say:
-%D
-%D \starttyping
-%D \setvalue{xx}{3{A}{B}{C}}
-%D
-%D \filterfromvalues{3}{xx}{3}
-%D \filterfromvalues{3}{xx}{2}
-%D \filterfromvalues{3}{xx}{1}
-%D \stoptyping
-%D
-%D I'll implement this when I'm in \quotation {writing dirty
-%D macros mood}.
-
-\def\dofilterfromstr#1#2% max n
- {\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
- \dofilterfromstr{#2}{#3}%
- \fi
- \endcsname\csname#1\endcsname}
-
-\def\filterfromnext#1#2% max n {..}{..}{..}{..}
- {\csname\dofilterfromstr{#1}{#2}\endcsname}
-
-%D \macros
-%D {definemeasure}
-%D
-%D \starttyping
-%D \definemeasure[mywidth][\dimexpr(\textwidth-1cm)]
-%D
-%D ... \measure{mywidth} ...
-%D \stoptyping
-
-\def\??dm{@@dm} % brrr
-
-\def\definemeasure
- {\dodoubleargument\dodefinemeasure}
-
-\def\dodefinemeasure[#1][#2]%
- {\setvalue{\??dm#1}{#2}}
-
-% #2 could be omitted, but we want to support spaces
-%
-% \setmeasure {x} {1cm}
-% \setmeasure {xx} {1cm}
-% \setmeasure {xxx}{1cm}
-
-\def\setmeasure #1#2{\setvalue{\??dm#1}{#2}} % quick way
-\def\setemeasure#1#2{\setevalue{\??dm#1}{#2}} % quick way
-\def\setgmeasure#1#2{\setgvalue{\??dm#1}{#2}} % quick way
-\def\setxmeasure#1#2{\setxvalue{\??dm#1}{#2}} % quick way
-
-\def\measure#1%
- {\ifcsname\??dm#1\endcsname\csname\??dm#1\endcsname\else\zeropoint\fi}
-
-%D \macros
-%D {doifdimensionelse}
-%D
-%D This is a dirty one: we simply append a unit and discard it when needed.
-
-\def\doifdimensionelse#1%
- {\afterassignment\dodoifdimensionelse\scratchdimen#1pt\relax}
-
-\def\dodoifdimensionelse#1%
- {\ifx#1\relax
- \expandafter\secondoftwoarguments
- \else % #1=p ... t\relax
- \expandafter\thirdoffourarguments
- \fi}
-
-%D \macros
-%D {comparedimension,comparedimensioneps}
-%D
-%D This is a dirty one: we simply append a unit and discard it when needed.
-
-\newdimen\roundingeps \roundingeps=10sp
-
-\def\comparedimension#1#2%
- {\chardef\compresult
- \ifdim#1<#2%
- \zerocount
- \else\ifdim#1<#2%
- \plusone
- \else
- \plustwo
- \fi\fi}
-
-\beginETEX
-
-\def\comparedimensioneps#1#2%
- {\chardef\compresult
- \ifdim\dimexpr#1-#2\relax<\roudingeps
- \zerocount
- \else\ifdim\dimexpr#2-#1\relax<\roudingeps
- \zerocount
- \else\ifdim#1<#2%
- \plusone
- \else
- \plustwo
- \fi\fi\fi}
-
-\endETEX
-
-\beginTEX
-
-\newdimen\comparedimen
-
-\def\comparedimensioneps#1#2%
- {\comparedimen#1\advance\comparedimen-#2\relax
- \chardef\compresult
- \ifdim\comparedimen<\roudingeps
- \zerocount
- \else\ifdim-\comparedimen<\roudingeps
- \zerocount
- \else\ifdim#1<#2%
- \plusone
- \else
- \plustwo
- \fi\fi\fi}
-
-\endTEX
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/syst-fnt.mkii b/Master/texmf-dist/tex/context/base/mkii/syst-fnt.mkii
deleted file mode 100644
index 5669475a634..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/syst-fnt.mkii
+++ /dev/null
@@ -1,46 +0,0 @@
-%D \module
-%D [ file=syst-fnt,
-%D version=2006.08.11,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Font Things,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% formal names cf the tb \& tbt
-
-\unprotect
-
-\def\fontslantperpoint {\fontdimen\plusone }
-\def\fontinterwordspace {\fontdimen\plustwo }
-\def\fontinterwordstretch{\fontdimen\plusthree}
-\def\fontinterwordshrink {\fontdimen\plusfour }
-\def\fontexheight {\fontdimen\plusfive }
-\def\fontemwidth {\fontdimen\plussix }
-\def\fontextraspace {\fontdimen\plusseven}
-
-\def\slantperpoint {\fontdimen\plusone \font}
-\def\interwordspace {\fontdimen\plustwo \font}
-\def\interwordstretch {\fontdimen\plusthree\font}
-\def\interwordshrink {\fontdimen\plusfour \font}
-\def\exheight {\fontdimen\plusfive \font}
-\def\emwidth {\fontdimen\plussix \font}
-\def\extraspace {\fontdimen\plusseven\font}
-
-\def\mathsupdisplay {\fontdimen13 }
-\def\mathsupnormal {\fontdimen14 }
-\def\mathsupcramped {\fontdimen15 }
-\def\mathsubnormal {\fontdimen16 }
-\def\mathsubcombined {\fontdimen17 }
-\def\mathaxisheight {\fontdimen22 }
-
-\def\currentspaceskip {\interwordspace\!!plus\interwordstretch\!!minus\interwordshrink\relax}
-
-\def\mathstacktotal {\dimexpr\fontdimen10\scriptfont\plustwo+\fontdimen12\scriptfont\plustwo\relax}
-\def\mathstackvgap {\plusthree\fontdimen8\scriptfont\plusthree}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/syst-gen.mkii b/Master/texmf-dist/tex/context/base/mkii/syst-gen.mkii
deleted file mode 100644
index 8b71b77d5fc..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/syst-gen.mkii
+++ /dev/null
@@ -1,4459 +0,0 @@
-%D \module
-%D [ file=syst-gen,
-%D version=1996.03.20,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=General,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% 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
-%D macros are optimized as far as possible within of course,
-%D the know how of the author.
-%D
-%D In this module we also show some of the optimizations,
-%D mainly because we don't want to forget them and start doing
-%D things over and over again. If showing them has a learing
-%D effect for others too, we've surved another purpose too.
-
-%D \macros
-%D {abortinputifdefined}
-%D
-%D Because this module can be used in a different context, we
-%D want to prevent it being loaded more than once. This can be
-%D done using:
-%D
-%D \starttyping
-%D \abortinputifdefined\command
-%D \stoptyping
-%D
-%D where \type{\command} is a command defined in the module
-%D to be loaded only once.
-%D
-%D \starttyping
-%D \def\abortinputifdefined#1%
-%D {\ifx#1\undefined
-%D \let\next=\relax
-%D \else
-%D \let\next=\endinput
-%D \fi
-%D \next}
-%D \stoptyping
-%D
-%D This macro can be speed up in terms of speed as well as
-%D memory. Because this is a nice example of a bit strange
-%D command (\type{\endinput}), we spend some more lines on this.
-%D
-%D If we perform such actions directly, we can say:
-%D
-%D \starttyping
-%D \ifx\somecommand\undefined
-%D \let\next=\relax
-%D \else
-%D \let\next=\endinput
-%D \fi
-%D \next
-%D \stoptyping
-%D
-%D We need the \type{\next} because we need to end the
-%D \type{\fi}. The efficient one is:
-%D
-%D \starttyping
-%D \ifx\somecommand\undefined
-%D \else
-%D \expandafter\endinput
-%D \fi
-%D \stoptyping
-%D
-%D Because \type{\endinput} comes into action after the current
-%D line, we can also say:
-%D
-%D \starttyping
-%D \ifx\somecommand\undefined \else \endinput \fi
-%D \stoptyping
-%D
-%D When we define a macro, we tend to use a format which
-%D shows as besat as can how things are done. \TEX\ however
-%D stores the definitions as a sequence of tokens, so in fact
-%D we can use a formatted definition:
-
-\def\abortinputifdefined#1%
- {\ifx#1\undefined \else
- \endinput
- \fi}
-
-%D which also works. Keep in mind that this is entirely due to
-%D the fact that \type{\endinput} after the line, i.e. at the
-%D end of the macro. We therefore can burry this primitive quite
-%D deep in code.
-
-%D And because this module implements \type{\writestatus}, we
-%D just say:
-
-% \abortinputifdefined\writestatus
-
-%D \macros
-%D {overloaded, superseded, forwarded, predefined}
-%D
-%D This prefix is used as signal for the \CONTEXT\ dependency
-%D checking features. The first four prefixes don't do anything
-%D useful, apart from signaling parsers.
-
-\def\overloaded{} % local change at the macro level
-\def\superseded{} % global change at the module level, replaces previous definitions
-\def\predefined{} % defined (first) here, but may be redefined anytime (no need for \overloaded)
-\def\forwarded {} % definition at the module level, only done when undefined
-
-\def\forwarded#1#2{\ifx#2\undefined\else\expandafter\gobbleforwarded\fi#1#2}
-
-\def\gobbleforwarded#1
- {}
-
-%D Normally we tell the users what module is being loaded.
-%D However, the command that is needed for this is not yet
-%D defined.
-%D
-%D \starttyping
-%D \writestatus{laden}{Context Systeem Macros (a)}
-%D \stoptyping
-
-%D The next few macros are needed in case this module is
-%D used outside \CONTEXT.
-
-\ifx\beginTEX\undefined
- \let\beginTEX\relax\let\endTEX\relax
- \long\def\beginETEX #1\endETEX {}
-\fi
-
-%D \macros
-%D [protecting]
-%D {protect,unprotect}
-%D
-%D We can shield macros from users by using some special
-%D characters in their names. Some characters that are normally
-%D no letters and therefore often used are: \type{@}, \type{!}
-%D and \type{?}. Before and after the definition of protected
-%D macros, we have to change the \CATCODE\ of these characters.
-%D This is done by \type{\unprotect} and \type{\protect}, for
-%D instance:
-%D
-%D \starttyping
-%D \unprotect
-%D \def\!test{test}
-%D \protect
-%D \stoptyping
-%D
-%D The defined command \type{\!test} can of course only be
-%D called upon when we are in the \type{\unprotect}'ed state,
-%D otherwise \TEX\ reads \type{\!} and probably complains
-%D loudly about not being in math mode.
-%D
-%D Both commands can be used nested, but only the \CATCODE\
-%D of the outermost level is saved. We make use of
-%D an auxilary macro \type{\doprotect} to prevent us from
-%D conflicts with existing macro's \type{\protect}. When
-%D nesting deeper than one level, the system shows the
-%D protection level.
-
-\ifx\protectionlevel\undefined \newcount\protectionlevel \fi
-
-\ifx\protect\undefined
- \def\protect{\writestatus{protection}{too much protection}}
-\else
- % a simple version is already defined
-\fi
-
-\let\normalprotect\protect % only for latex
-
-%D Although we don't need the \type{%} after commands that
-%D don't take arguments, unless lines are obeyed, I decided
-%D to put it there as a reminder. I only mention this once.
-
-\ifx\unprotect\undefined
-
- \chardef\protectionthreshold=10
-
- \def\saveprotectedcharacters
- {\edef\doprotectcharacters
- {\catcode`\noexpand @\the\catcode`@
- \catcode`\noexpand !\the\catcode`!
- \catcode`\noexpand ?\the\catcode`? }}
-
- \def\setprotectedcharacters
- {\catcode`@=11
- \catcode`!=11
- \catcode`?=11 }
-
- \def\unprotect
- {\ifcase\protectionlevel
- \saveprotectedcharacters
- \let\protect\doprotect
- \fi
- \setprotectedcharacters
- \advance\protectionlevel 1
- \ifnum\protectionlevel>\protectionthreshold
- \reportunprotection
- \fi}
-
- \def\doprotect
- {\ifcase\protectionlevel\or
- \doprotectcharacters
- \let\doprotectcharacters\relax
- \let\protect\normalprotect
- \fi
- \ifnum\protectionlevel>\protectionthreshold
- \reportprotection
- \fi
- \advance\protectionlevel -1 }
-
- \def\reportunprotection {\writestatus{protection}{unprotect \protectionstate}}
- \def\reportprotection {\writestatus{protection}{protect \protectionstate}}
- \def\reportprotectionstate{\writestatus{protection}{state \protectionstate}}
-
- \def\protectionstate
- {\the\protectionlevel
- \ifcase\protectionthreshold
- :\space
- @=\the\catcode`@\space\space
- !=\the\catcode`!\space\space
- ?=\the\catcode`?%
- \fi}
-
- \ifx\everyeof\undefined
- \let\checkprotection\relax
- \else
- \def\checkprotection{\everyeof{\writestatus{protection}{state: \protectionstate}}}
- \fi
-
-\else
-
- \let\reportprotectionstate\relax
-
-\fi
-
-%D Now it is defined, we can make use of this very useful
-%D macro.
-
-\unprotect
-
-%D \macros
-%D {@@escape,@@begingroup,@@endgroup,@@mathshift,@@alignment,
-%D @@endofline,@@parameter,@@superscript,@@subscript,
-%D @@ignore,@@space,@@letter,@@other,@@active,@@comment}
-%D
-%D In \CONTEXT\ we sometimes manipulate the \CATCODES\ of
-%D certain characters. Because we are not that good at numbers,
-%D we introduce some symbolic names.
-
-\chardef\@@escape = 0
-\chardef\@@begingroup = 1
-\chardef\@@endgroup = 2
-\chardef\@@mathshift = 3
-\chardef\@@alignment = 4
-\chardef\@@endofline = 5
-\chardef\@@parameter = 6
-\chardef\@@superscript = 7
-\chardef\@@subscript = 8
-\chardef\@@ignore = 9
-\chardef\@@space = 10
-\chardef\@@letter = 11
-\chardef\@@other = 12 \chardef\other = 12
-\chardef\@@active = 13 \chardef\active = 13
-\chardef\@@comment = 14
-
-%D \macros
-%D {normalspace}
-%D
-%D We often need a space as defined in \PLAIN\ \TEX. Because
-%D we cannot be sure of \type{\space} is redefined, we define:
-
-\def\normalspace{ }
-
-%D \macros
-%D {scratchcounter,
-%D scratchdimen,scratchskip,scratchmuskip,
-%D scratchbox,
-%D scratchtoks}
-%D
-%D Because we often need counters on a temporary basis, we
-%D define the \COUNTER\ \type{\scratchcounter}. This is a
-%D real \COUNTER, and not a pseudo one, as we will meet
-%D further on. We also define some other scratch registers.
-
-\chardef\newabovelimit=20
-
-\def\stripnewabove#1%
- {\ifnum10<9#1 #1\else\expandafter\stripnewabove\fi}%
-
-\def\newabove#1#2% \dimen \name
- {#1#2%
- \ifnum\expandafter\stripnewabove\meaning#2>\newabovelimit\else
- \expandafter\newabove\expandafter#1\expandafter#2%
- \fi}
-
-\newabove \newcount \scratchcounter \newabove \newcount \globalscratchcounter
-\newabove \newdimen \scratchdimen \newabove \newdimen \globalscratchdimen
-\newabove \newskip \scratchskip \newabove \newskip \globalscratchskip
-\newabove \newmuskip \scratchmuskip \newabove \newmuskip \globalscratchmuskip
-\newabove \newtoks \scratchtoks \newabove \newtoks \globalscratchtoks
- \newbox \scratchbox \newbox \globalscratchbox
-
-\newdimen\scratchdimenone \newbox\scratchboxone \newcount\scratchcounterone
-\newdimen\scratchdimentwo \newbox\scratchboxtwo \newcount\scratchcountertwo
-
-%D \macros
-%D {ifdone}
-
-\newif\ifdone
-
-%D \macros
-%D {ifCONTEXT}
-%D
-%D In the system and support modules we sometimes show examples
-%D that make use of core commands. We can skip those parts of
-%D the documentation when we use another macropackage. Of
-%D course we default to false.
-
-\newif \ifCONTEXT
-
-%D \macros
-%D {!!count, !!toks, !!dimen, !!box,
-%D !!width, !!height, !!depth, !!string, !!done}
-%D
-%D We define some more \COUNTERS\ and \DIMENSIONS. We also
-%D define some shortcuts to the local scatchregisters~0, 2, 4,
-%D 6 and~8.
-
-\newcount\!!counta \toksdef\!!toksa=0 \dimendef\!!dimena= 0 \chardef\!!boxa =0
-\newcount\!!countb \toksdef\!!toksb=2 \dimendef\!!dimenb= 2 \chardef\!!boxb =2
-\newcount\!!countc \toksdef\!!toksc=4 \dimendef\!!dimenc= 4 \chardef\!!boxc =4
-\newcount\!!countd \toksdef\!!toksd=6 \dimendef\!!dimend= 6 \chardef\!!boxd =6
-\newcount\!!counte \toksdef\!!tokse=8 \dimendef\!!dimene= 8 \chardef\!!boxe =8
-\newcount\!!countf \dimendef\!!dimenf=10 %skipdef\!!skipa=0
- \dimendef\!!dimeng=12 %skipdef\!!skipb=2
- \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
-
-\newdimen\!!widtha \newdimen\!!heighta \newdimen\!!deptha
-\newdimen\!!widthb \newdimen\!!heightb \newdimen\!!depthb
-\newdimen\!!widthc \newdimen\!!heightc \newdimen\!!depthc
-
-\newif\if!!donea \newif\if!!doneb \newif\if!!donec
-\newif\if!!doned \newif\if!!donee \newif\if!!donef
-
-\ifx\data\undefined \else \let\data \relax \fi % dep checker
-
-%D Beware: we don't reuse plain counters, too dangerous
-%D when <= 20 (e.g. in supp-pdf this messed up things).
-
-\ifx\undefined\zeroskip \newskip \zeroskip \fi
-\ifx\undefined\zeropoint \newdimen \zeropoint \fi
-\ifx\undefined\zerocount \newcount \zerocount \fi
-\ifx\undefined\minusone \newcount \minusone \fi \minusone = -1
-\ifx\undefined\minustwo \newcount \minustwo \fi \minustwo = -2
-\ifx\undefined\plusone \chardef \plusone = 1 \fi
-\ifx\undefined\plustwo \chardef \plustwo = 2 \fi
-\ifx\undefined\plusthree \chardef \plusthree = 3 \fi
-\ifx\undefined\plusfour \chardef \plusfour = 4 \fi
-\ifx\undefined\plusfive \chardef \plusfive = 5 \fi
-\ifx\undefined\plusten \mathchardef \plusten = 10 \fi
-\ifx\undefined\plushundred \mathchardef \plushundred = 100 \fi
-\ifx\undefined\plusthousand \mathchardef \plusthousand = 1000 \fi
-\ifx\undefined\plustenthousand \mathchardef \plustenthousand = 10000 \fi
-\ifx\undefined\plustwentythousand \mathchardef \plustwentythousand = 20000 \fi
-
-%D \macros
-%D {s!,c!,e!,p!,v!,@@,??}
-%D
-%D To save memory, we use constants (sometimes called
-%D variables). Redefining these constants can have desastrous
-%D results.
-
-\def\v!prefix! {v!} \def\c!prefix! {c!}
-\def\s!prefix! {s!} \def\p!prefix! {p!}
-
-\def\s!next {next} \def\s!default {default}
-\def\s!dummy {dummy} \def\s!unknown {unknown}
-
-\def\s!do {do} \def\s!dodo {dodo}
-
-\def\s!complex {complex} \def\s!start {start}
-\def\s!simple {simple} \def\s!stop {stop}
-
-\def\s!empty {empty}
-
-%D \macros
-%D {@EA,@EAEA,@EAEAEA,@EAEAEAEAEAEA,expanded,startexpanded}
-%D
-%D When in unprotected mode, to be entered with
-%D \type{\unprotect}, one can use \type{\@EA} as equivalent
-%D of \type{\expandafter}.
-
-\let\@NX\noexpand
-\let\@EA\expandafter
-
-\def\@EAEA {\expandafter\expandafter}
-\def\@EAEAEA{\expandafter\expandafter\expandafter}
-
-\def\@EAEAEAEAEAEA{\expandafter\@EAEAEA\expandafter}
-
-%D Sometimes we pass macros as arguments to commands that
-%D don't expand them before interpretation. Such commands can
-%D be enclosed with \type{\expanded}, like:
-%D
-%D \starttyping
-%D \expanded{\setupsomething[\alfa]}
-%D \stoptyping
-%D
-%D Such situations occur for instance when \type{\alfa} is a
-%D commalist or when data stored in macros is fed to index of
-%D list commands. If needed, one should use \type{\noexpand}
-%D inside the argument. Later on we will meet some more clever
-%D alternatives to this command.
-
-\long\def\@@expanded{} % always long; global (less restores)
-
-\long\def\expanded#1%
- {\long\xdef\@@expanded{\noexpand#1}\@@expanded}
-
-%D Beware, the next one has no \type {\noexpand} before its
-%D argument.
-
-\long\def\startexpanded#1\stopexpanded % see x-fo for example
- {\long\xdef\@@expanded{#1}\@@expanded}
-
-%D \macros
-%D {safeexpanded,everysafeexpanded}
-%D
-%D In addition we provide:
-
-\newtoks\everysafeexpanded
-
-\long\def\safeexpanded#1% why the \noexpand
- {\begingroup
- \the\everysafeexpanded\long\xdef\@@expanded{\noexpand#1}%
- \endgroup
- \@@expanded}
-
-\def\safeedef#1#2%
- {\begingroup
- \the\everysafeexpanded\long\xdef\@@expanded{\noexpand#2}%
- \endgroup
- \let#1\@@expanded}
-
-\def\safexdef#1#2%
- {\begingroup
- \the\everysafeexpanded\long\xdef\@@expanded{\noexpand#2}%
- \endgroup
- \global\let#1\@@expanded}
-
-%D You can append protective measures to the token register if
-%D needed, as we will do later.
-
-%D \macros
-%D {expandoneargafter,expandtwoargsafter}
-%D
-%D These two commands make macros more readable by hiding a
-%D lot of \type {\expandafter}'s. They expand the arguments
-%D after the first command.
-%D
-%D \starttyping
-%D \expandoneargafter \command{\abc}
-%D \expandtwoargsafter\command{\abc}{\def}
-%D \stoptyping
-%D
-%D These commands expect the arguments to be macros.
-
-\def\expandoneargafter #1{\@EA#1\@EA}
-\def\expandtwoargsafter#1#2{\@EA\@EA\@EA#1\@EA\@EA\@EA{\@EA#2\@EA}\@EA}
-
-%D These two do a full expansion:
-
-\def\fullexpandoneargafter #1#2{\long\xdef\@@expanded{\noexpand#1{#2}}\@@expanded}
-\def\fullexpandtwoargsafter#1#2#3{\long\xdef\@@expanded{\noexpand#1{#2}{#3}}\@@expanded}
-
-%D \macros
-%D {gobbleoneargument,gobble...arguments}
-%D
-%D The next set of macros just do nothing, except that they
-%D get rid of a number of arguments.
-
-\long\def\gobbleoneargument #1{}
-\long\def\gobbletwoarguments #1#2{}
-\long\def\gobblethreearguments #1#2#3{}
-\long\def\gobblefourarguments #1#2#3#4{}
-\long\def\gobblefivearguments #1#2#3#4#5{}
-\long\def\gobblesixarguments #1#2#3#4#5#6{}
-\long\def\gobblesevenarguments #1#2#3#4#5#6#7{}
-\long\def\gobbleeightarguments #1#2#3#4#5#6#7#8{}
-\long\def\gobbleninearguments #1#2#3#4#5#6#7#8#9{}
-\long\def\gobbletenarguments #1{\gobbleninearguments}
-
-%D \macros
-%D {doifnextcharelse}
-%D
-%D When we started using \TEX\ in the late eighties, our
-%D first experiences with programming concerned a simple shell
-%D around \LATEX. The commands probably use most at \PRAGMA,
-%D are the itemizing ones. One of those few shell commands took
-%D care of an optional argument, that enabled us to specify
-%D what kind of item symbol we wanted. Without understanding
-%D anything we were able to locate a \LATEX\ macro that could
-%D be used to inspect the next character.
-%D
-%D It's this macro that the ancester of the next one presented
-%D here. It executes one of two actions, dependant of the next
-%D character. Disturbing spaces and line endings, which are
-%D normally interpreted as spaces too, are skipped.
-%D
-%D \starttyping
-%D \doifnextcharelse {karakter} {then ...} {else ...}
-%D \stoptyping
-%D
-%D This macro differs from the original in the use of \type
-%D {\localnext} because we don't want clashes with \type
-%D {\next}.
-
-\long\def\doifnextcharelse#1#2#3% #1 should not be {} !
- {\let\charactertoken=#1% = needed here
- \def\!!stringa{#2}%
- \def\!!stringb{#3}%
- \futurelet\nexttoken\inspectnextcharacter}
-
-\def\inspectnextcharacter
- {\ifx\nexttoken\blankspace
- \@EA\reinspectnextcharacter
- \else\ifx\nexttoken\charactertoken
- \@EAEAEA\!!stringa
- \else
- \@EAEAEA\!!stringb
- \fi\fi}
-
-%D Because we will mostly use this macro for testing if the next
-%D character is \type {[}, we also make a slightly faster variant
-%D as it is not uncommon to have tens of thousands of calls to this
-%D test in a run. Of course it also is more convenient to read a
-%D trace then.
-
-\let\nextoptionalcharactertoken=[
-
-\long\def\doifnextoptionalelse#1#2%
- {\def\nextoptionalcommandyes{#1}%
- \def\nextoptionalcommandnop{#2}%
- \futurelet\nexttoken\inspectnextoptionalcharacter}
-
-\def\inspectnextoptionalcharacter
- {\ifx\nexttoken\blankspace
- \@EA\reinspectnextoptionalcharacter
- \else\ifx\nexttoken\nextoptionalcharactertoken
- \@EAEAEA\nextoptionalcommandyes
- \else
- \@EAEAEA\nextoptionalcommandnop
- \fi\fi}
-
-\let\nextbgroupcharactertoken\bgroup
-
-\long\def\doifnextbgroupelse#1#2%
- {\def\nextbgroupcommandyes{#1}%
- \def\nextbgroupcommandnop{#2}%
- \futurelet\nexttoken\inspectnextbgroupcharacter}
-
-\def\inspectnextbgroupcharacter
- {\ifx\nexttoken\blankspace
- \@EA\reinspectnextbgroupcharacter
- \else\ifx\nexttoken\nextbgroupcharactertoken
- \@EAEAEA\nextbgroupcommandyes
- \else
- \@EAEAEA\nextbgroupcommandnop
- \fi\fi}
-
-%D This macro uses some auxiliary macros. Although we were able
-%D to program quite complicated things, I only understood these
-%D after rereading the \TEX book. The trick is in using a
-%D command with a one character name. Such commands differ from
-%D the longer ones in the fact that trailing spaces are {\em
-%D not} skipped. This enables us to indirectly define a long
-%D named macro that gobbles a space.
-%D
-%D In the first line we define \type{\blankspace}. Next we
-%D make \type{\:} equivalent to \type{\reinspect...}. This
-%D one||character command is expanded before the next
-%D \type{\def} comes into action. This way the space after
-%D \type{\:} becomes a delimiter of the longer named
-%D \type{\reinspectnextcharacter}. The chain reaction is
-%D visually compatible with the next sequence:
-%D
-%D \starttyping
-%D \expandafter\def\reinspectnextcharacter %
-%D {\futurelet\nexttoken\inspectnextcharacter}
-%D \stoptyping
-%D
-%D However complicated it may look, I'm still glad I stumbled
-%D into this construction. Saving and restoring \type {\:} is
-%D needed when we use \PPCHTEX\ in \LATEX.
-
-\let\next\:
-
-\def\:{\let\blankspace= } \:
-
-\def\:{\reinspectnextcharacter}
-\expandafter\def\: {\futurelet\nexttoken\inspectnextcharacter}
-
-\def\:{\reinspectnextoptionalcharacter}
-\expandafter\def\: {\futurelet\nexttoken\inspectnextoptionalcharacter}
-
-\def\:{\reinspectnextbgroupcharacter}
-\expandafter\def\: {\futurelet\nexttoken\inspectnextbgroupcharacter}
-
-\let\:\next
-
-%D \macros
-%D {setvalue,setgvalue,setevalue,setxvalue,
-%D letvalue,
-%D getvalue,
-%D resetvalue}
-%D
-%D \TEX's primitive \type{\csname} can be used to construct
-%D all kind of commands that cannot be defined with
-%D \type{\def} and \type{\let}. Every macro programmer sooner
-%D or later wants macros like these.
-%D
-%D \starttyping
-%D \setvalue {name}{...} = \def\name{...}
-%D \setgvalue {name}{...} = \gdef\name{...}
-%D \setevalue {name}{...} = \edef\name{...}
-%D \setxvalue {name}{...} = \xdef\name{...}
-%D \letvalue {name}=\... = \let\name=\...
-%D \letgvalue {name}=\... = \global\let\name=\...
-%D \getvalue {name} = \name
-%D \resetvalue {name} = \def\name{}
-%D \stoptyping
-%D
-%D As we will see, \CONTEXT\ uses these commands many times,
-%D which is mainly due to its object oriented and parameter
-%D driven character.
-
-\def\setvalue #1{\expandafter \def\csname#1\endcsname}
-\def\setgvalue #1{\expandafter\gdef\csname#1\endcsname}
-\def\setevalue #1{\expandafter\edef\csname#1\endcsname}
-\def\setxvalue #1{\expandafter\xdef\csname#1\endcsname}
-\def\getvalue #1{\csname#1\endcsname}
-\def\letvalue #1{\expandafter\let\csname#1\endcsname}
-\def\letgvalue #1{\global\expandafter\let\csname#1\endcsname}
-\def\resetvalue #1{\expandafter\let\csname#1\endcsname\empty}
-\def\ignorevalue#1#2{\expandafter\let\csname#1\endcsname\empty}
-
-\def\setuvalue #1{\normalprotected\expandafter \def\csname#1\endcsname}
-\def\setuevalue #1{\normalprotected\expandafter\edef\csname#1\endcsname}
-\def\setugvalue #1{\normalprotected\expandafter\gdef\csname#1\endcsname}
-\def\setuxvalue #1{\normalprotected\expandafter\xdef\csname#1\endcsname}
-
-%D \macros
-%D {globallet,glet}
-%D
-%D In \CONTEXT\ of May 2000 using \type {\globallet}
-%D instead of the two tokens will save us some
-%D $300\times4=1200$ bytes of format file on a 32~bit
-%D system. So:
-
-\def\globallet{\global\let} \let\glet\globallet
-
-%D \macros
-%D {donottest,unexpanded}
-%D
-%D When expansion of a macro gives problems, we can precede it
-%D by \type{\donottest}. It seems that protection is one of the
-%D burdens of developers of packages, so maybe that's why in
-%D \ETEX\ protection is solved in a more robust way.
-%D
-%D Sometimes prefixing the macro with \type{\donottest} leads
-%D to defining an auxiliary macro, like
-%D
-%D \starttyping
-%D \def\dosomecommand {... ... ...}
-%D \def\somecommand {\donottest\dosomecommand}
-%D \stoptyping
-%D
-%D This double definition can be made transparant by using
-%D \type{\unexpanded}, as in:
-%D
-%D \starttyping
-%D \unexpanded\def\somecommand{... ... ...}
-%D \stoptyping
-%D
-%D The protection mechanism uses:
-
-\beginTEX
-
-\def\dontprocesstest#1{==}
-\def\doprocesstest #1{#1}
-
-\let\donottest=\doprocesstest
-
-\endTEX
-
-\beginETEX \detokenize
-
-\def\donottest#1{#1} % {\detokenize{#1}}
-
-\endETEX
-
-%D By the way, we use a placeholder because we don't want
-%D interference when testing on empty strings. Using a
-%D placeholder of 8~characters increases the processing time
-%D of simple \type{\doifelse} tests by about 10 \%. When we
-%D process the test, we have to remove the braces and
-%D therefore explictly gobble \type{#1}.
-
-%D \macros
-%D {honorunexpanded,forceunexpanded}
-%D
-%D The fact that many macros have the same prefix, could have
-%D a negative impact on searching in the hash table. Because
-%D some simple testing does not show differences, we just use:
-%D
-%D \starttyping
-%D \def\unexpanded#1#2%
-%D {\@EA#1\@EA#2\@EA{\@EA\donottest\csname\s!do\string#2\endcsname}%
-%D \@EA#1\csname\s!do\string#2\endcsname}
-%D \stoptyping
-%D
-%D Well, in fact we use the bit more versatile alternative. The
-%D \type {\honorunexpanded} can be used to \type {\string}
-%D the protected command, which by the way is seldom needed
-%D in \CONTEXT.
-
-\beginTEX
-
-\def\dosetunexpanded#1#2%
- {\@EA#1\@EA{\@EA#2\@EA}%
- \@EA{\@EA\donottest\csname\s!do\@EA\string\csname#2\endcsname\endcsname}%
- \@EA#1\@EA{\@EA\s!do\@EA\string\csname#2\endcsname}}
-
-\def\docomunexpanded#1#2%
- {\@EA#1\@EA#2\@EA{\@EA\donottest\csname\s!do\string#2\endcsname}%
- \@EA#1\csname\s!do\string#2\endcsname}
-
-\def\unexpanded#1%
- {\def\dounexpanded
- {\ifx\next\bgroup
- \@EA\dosetunexpanded
- \else
- \@EA\docomunexpanded
- \fi#1}%
- \futurelet\next\dounexpanded}
-
-\def\honorunexpanded% for writing to a file or message
- {\def\donottest##1{\expandafter\gobblethreearguments\string##1}}
-
-\def\forceunexpanded% for preventing expansion in \xdef
- {\def\donottest##1%
- {\expandafter\noexpand\csname\expandafter\gobblefourarguments\string##1\endcsname}}
-
-\def\resetunexpanded%
- {\let\donottest\doprocesstest}
-
-\endTEX
-
-\beginETEX \protected
-
-\let \unexpanded \normalprotected
-\let \honorunexpanded \empty % \relax
-\let \forceunexpanded \empty % \relax
-\let \resetunexpanded \empty % \relax
-
-\endETEX
-
-%D This one accepts the more direct \type{\def} and cousins
-%D as well as the \CONTEXT\ specific \type{\setvalue} ones.
-%D
-%D And so the definition in our example turns out to be:
-%D
-%D \starttyping
-%D \def\csname do\somecommand\endcsname{... ... ...}
-%D \def\somecommand{\donottest\csname do\somecommand\endcsname}
-%D \stoptyping
-%D
-%D In which \type{do\somecommand} is hidden from the user and
-%D cannot lead to confusion. It's still permitted to define
-%D auxiliary macros like \type{\dosomecommand}.
-%D
-%D When we are going to use e-\TEX, we'll probably end up
-%D redefining some commands, but we can probably keep the
-%D \type{\unexpanded} ones unchanged.
-
-%D \macros
-%D {doifundefined,doifdefined,
-%D doifundefinedelse,doifdefinedelse,
-%D doifalldefinedelse}
-%D
-%D The standard way of testing if a macro is defined is
-%D comparing its meaning with another undefined one, usually
-%D \type{\undefined}. To garantee correct working of the next
-%D set of macros, \type{\undefined} may never be defined!
-%D
-%D \starttyping
-%D \doifundefined {string} {...}
-%D \doifdefined {string} {...}
-%D \doifundefinedelse {string} {then ...} {else ...}
-%D \doifdefinedelse {string} {then ...} {else ...}
-%D \doifalldefinedelse {commalist} {then ...} {else ...}
-%D \stoptyping
-%D
-%D Every macroname that \TEX\ builds gets an entry in the hash
-%D table, which is of limited size. It is expected that e-\TeX\
-%D will offer a less memory||consuming alternative.
-
-%D Although it will probably never be a big problem, it is good
-%D to be aware of the difference between testing on a macro
-%D name to be build by using \type{\csname} and
-%D \type{\endcsname} and testing the \type{\name} directly.
-%D
-%D \starttyping
-%D \expandafter\ifx\csname NameA\endcsname\relax ... \else ... \fi
-%D
-%D \ifx\NameB\undefined ... \else ... \fi
-%D \stoptyping
-%D
-%D I became aware of this when I mistakenly testen the first
-%D one against \type{\undefined}. When \TEX\ build a name using
-%D \type{\csname} it automatically sets it to \type{\relax},
-%D which is definitely not the same as \type{\undefined}. The
-%D quickest way to check these things is asking \TEX\ to show
-%D the meaning of the names:
-%D
-%D \starttyping
-%D \expandafter\show\csname NameA\endcsname
-%D
-%D \show\NameB
-%D \stoptyping
-%D
-%D The main reason why this never will be a big problem is that
-%D when one uses the \type{\csname} way, one probably has to do
-%D with some macroname that always is dealt with that way.
-%D Confusion can however arise when one applies both testing
-%D methods to the same macroname. By the way, the assignment
-%D of \type{\relax} obeys grouping.
-
-%D The first one gets rid of \type{#1}, but still expands to
-%D something and the second one expands to \type{#1}. Because
-%D we accept arguments between \type{{}}, we have to get rid
-%D of one level of braces.
-%D
-%D Our first implementation of \type{\ifundefined} was
-%D straightforward and readable:
-%D
-%D \starttyping
-%D \def\ifundefined#1%
-%D {\expandafter\ifx\csname#1\endcsname\relax}%
-%D
-%D \def\doifundefinedelse#1#2#3%
-%D {\let\donottest=\dontprocesstest
-%D \ifundefined{#1}%
-%D \let\donottest=\doprocesstest#2%
-%D \else
-%D \let\donottest=\doprocesstest#3%
-%D \fi}
-%D
-%D \def\doifdefinedelse#1#2#3%
-%D {\doifundefinedelse{#1}{#3}{#2}}
-%D
-%D \def\doifundefined#1#2%
-%D {\doifundefinedelse{#1}{#2}{}}
-%D
-%D \def\doifdefined#1#2%
-%D {\doifundefinedelse{#1}{}{#2}}
-%D
-%D \def\doifalldefinedelse#1#2#3%
-%D {\begingroup
-%D \donetrue
-%D \def\checkcommand##1%
-%D {\doifundefined{##1}{\donefalse}}%
-%D \processcommalist[#1]\checkcommand
-%D \ifdone
-%D \endgroup#2%
-%D \else
-%D \endgroup#3%
-%D \fi}
-%D \stoptyping
-%D
-%D When this module was optimized, timing showed that the
-%D next alternative can be upto twice as fast, especially when
-%D longer arguments are used. Watch how we reach over the
-%D \type {\else} and \type {\fi}: this way they cannot get
-%D into the way (and we can avoid those \type {\next}
-%D hacks); I started using this method after I did some
-%D speed optimization tests in the xtag modules; the
-%D efficiency of such hacks depends on the length of the
-%D argument etc. etc.)
-
-\beginTEX
-
-\def\ifundefined#1%
- {\expandafter\ifx\csname#1\endcsname\relax}
-
-\def\p!doifundefined#1%
- {\let\donottest\dontprocesstest
- \expandafter\ifx\csname#1\endcsname\relax}
-
-\def\doifundefinedelse#1%
- {\p!doifundefined{#1}%
- \let\donottest\doprocesstest\@EA\firstoftwoarguments
- \else
- \let\donottest\doprocesstest\@EA\secondoftwoarguments
- \fi}
-
-\def\doifdefinedelse#1%
- {\p!doifundefined{#1}%
- \let\donottest\doprocesstest\@EA\secondoftwoarguments
- \else
- \let\donottest\doprocesstest\@EA\firstoftwoarguments
- \fi}
-
-\def\doifundefined#1%
- {\p!doifundefined{#1}%
- \let\donottest\doprocesstest\@EA\firstofoneargument
- \else
- \let\donottest\doprocesstest\@EA\gobbleoneargument
- \fi}
-
-\def\doifdefined#1%
- {\p!doifundefined{#1}%
- \let\donottest\doprocesstest\@EA\gobbleoneargument
- \else
- \let\donottest\doprocesstest\@EA\firstofoneargument
- \fi}
-
-\endTEX
-
-\beginETEX \ifcsname
-
-\def\ifundefined#1% ongelukkige naam
- {\unless\ifcsname#1\endcsname}
-
-\def\p!doifundefined#1%
- {\edef\p!defined{#1}%
- \unless\ifcsname\detokenize\@EA{\p!defined}\endcsname}
-
-\def\doifundefinedelse#1%
- {\edef\p!defined{#1}%
- \ifcsname\detokenize\@EA{\p!defined}\endcsname
- \expandafter\secondoftwoarguments
- \else
- \expandafter\firstoftwoarguments
- \fi}
-
-\def\doifdefinedelse#1%
- {\edef\p!defined{#1}%
- \ifcsname\detokenize\@EA{\p!defined}\endcsname
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\def\doifundefined#1%
- {\edef\p!defined{#1}%
- \ifcsname\detokenize\@EA{\p!defined}\endcsname
- \expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
-\def\doifdefined#1%
- {\edef\p!defined{#1}%
- \ifcsname\detokenize\@EA{\p!defined}\endcsname
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\endETEX
-
-%D \macros
-%D {letbeundefined}
-%D
-%D Testing for being undefined comes down to testing on \type
-%D {\relax} when we use \type {\csname}, but when using \type
-%D {\ifx}, we test on being \type {\undefined}! In \ETEX\ we
-%D have \type {\ifcsname} and that way of testing on existance
-%D is not the same as the one described here. Therefore we
-%D introduce:
-
-\beginTEX
-
-\def\letbeundefined#1%
- {\expandafter\let\csname#1\endcsname\relax}
-
-\endTEX
-
-\beginETEX \undefined
-
-\def\letbeundefined#1% potential stack buildup when used \global
- {\expandafter\let\csname#1\endcsname\undefined}
-
-\def\localundefine#1% conditional
- {\ifcsname#1\endcsname\expandafter\let\csname#1\endcsname\undefined\fi}
-\def\globalundefine#1% conditional
- {\ifcsname#1\endcsname\expandafter\global\let\csname#1\endcsname\undefined\fi}
-
-\endETEX
-
-%D Beware, being \type {\undefined} in \ETEX\ means that the macro
-%D {\em is} defined!
-
-%D Before we start using this variant, we used another one,
-%D which is even a bit faster. This one looked like:
-%D
-%D \starttyping
-%D \def\p!doifundefined%
-%D {\begingroup
-%D \let\donottest=\dontprocesstest
-%D \ifundefined}
-%D
-%D \def\doifundefinedelse#1#2#3%
-%D {\p!doifundefined{#1}%
-%D \endgroup#2%
-%D \else
-%D \endgroup#3%
-%D \fi}
-%D \stoptyping
-%D
-%D A even more previous version used \type{\bgroup} and
-%D \type {\egroup}. In math mode however, \type{$1{x}2$} differs
-%D from \type{$1x2$}. This can been seen when one compares the
-%D output of:
-%D
-%D \starttyping
-%D $\kern10pt\showthe\lastkern$
-%D $\kern10pt{\showthe\lastkern}$
-%D $\kern10pt\begingroup\showthe\lastkern\endgroup$
-%D \stoptyping
-%D
-%D Also in math mode, one can better use \type {\begingroup}
-%D and companion instead of \type {\bgroup}.
-%D
-%D When we were developing the scientific units module, we
-%D encountered different behavior in text and math mode, which
-%D was due to this grouping subtilities. We therefore decided
-%D to use \type{\begingroup} instead of \type{\bgroup}.
-%D Later, when we had optimized some macro's the grouped
-%D solution turned out to be unsafe when typesetting this
-%D documentation, especially when using \type{\globaldefs}.
-%D
-%D We still have to define \type{\doifalldefinedelse}. Watch
-%D the use of grouping, which garantees local use of the
-%D boolean \type{\ifdone}.
-
-\beginTEX
-
-\def\docheckonedefined#1%
- {\ifundefined{#1}%
- \donefalse
- \fi}
-
-\def\doifalldefinedelse#1%
- {\begingroup
- \let\donottest\dontprocesstest
- \donetrue
- \processcommalist[#1]\docheckonedefined
- \ifdone
- \endgroup\let\donottest\doprocesstest
- \expandafter\firstoftwoarguments
- \else
- \endgroup\let\donottest\doprocesstest
- \expandafter\secondoftwoarguments
- \fi}
-
-\endTEX
-
-\beginETEX \ifcsname
-
-\def\docheckonedefined#1%
- {\unless\ifcsname#1\endcsname
- \donefalse
- \fi}
-
-\def\doifalldefinedelse#1%
- {\begingroup
- \donetrue \processcommalist[#1]\docheckonedefined
- \ifdone
- \endgroup\expandafter\firstoftwoarguments
- \else
- \endgroup\expandafter\secondoftwoarguments
- \fi}
-
-\endETEX
-
-%D \macros
-%D {doif,doifelse,doifnot,
-%D donottest}
-%D
-%D Programming in \TEX\ differs from programming in procedural
-%D languages like \MODULA. This means that one --- well, let me
-%D speek for myself --- tries to do the things in the well
-%D known way. Therefore the next set of \type{\ifthenelse}
-%D commands were between the first ones we needed. A few years
-%D later, the opposite became true: when programming in
-%D \MODULA, I sometimes miss handy things like grouping,
-%D runtime redefinition, expansion etc. While \MODULA\ taught
-%D me to structure, \TEX\ taught me to think recursive.
-%D
-%D \starttyping
-%D \doif {string1} {string2} {...}
-%D \doifnot {string1} {string2} {...}
-%D \doifelse {string1} {string2} {then ...}{else ...}
-%D \stoptyping
-%D
-%D When expansion gives problems, we can precede the
-%D troublemaker with \type{\donottest}.
-%D
-%D This implementatie does not use the construction which is
-%D more robust for nested conditionals.
-%D
-%D \starttyping
-%D \ifx\!!stringa\!!stringb
-%D \def\next{#3}%
-%D \else
-%D \def\next{#4}%
-%D \fi
-%D \next
-%D \stoptyping
-%D
-%D In practice, this alternative is at least 20\% slower than
-%D the alternative used here. The few cases in which we
-%D really need the \type{\next} construction, often need some
-%D other precautions and or adaptions too.
-
-\beginTEX
-
-% \long\def\doif#1#2#3%
-% {\let\donottest\dontprocesstest
-% \edef\!!stringa{#1}%
-% \edef\!!stringb{#2}%
-% \let\donottest\doprocesstest
-% \ifx\!!stringa\!!stringb
-% #3%
-% \fi}
-%
-% \long\def\doifnot#1#2#3%
-% {\let\donottest\dontprocesstest
-% \edef\!!stringa{#1}%
-% \edef\!!stringb{#2}%
-% \let\donottest\doprocesstest
-% \ifx\!!stringa\!!stringb
-% \else
-% #3%
-% \fi}
-%
-% \long\def\doifelse#1#2#3#4%
-% {\let\donottest\dontprocesstest
-% \edef\!!stringa{#1}%
-% \edef\!!stringb{#2}%
-% \let\donottest\doprocesstest
-% \ifx\!!stringa\!!stringb
-% #3%
-% \else
-% #4%
-% \fi}
-
-%D Slightly faster on big arguments, as well as \type
-%D {\next} avoiding:
-
-\long\def\doif#1#2%
- {\let\donottest\dontprocesstest
- \edef\!!stringa{#1}%
- \edef\!!stringb{#2}%
- \let\donottest\doprocesstest
- \ifx\!!stringa\!!stringb
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\long\def\doifnot#1#2%
- {\let\donottest\dontprocesstest
- \edef\!!stringa{#1}%
- \edef\!!stringb{#2}%
- \let\donottest\doprocesstest
- \ifx\!!stringa\!!stringb
- \expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
-
-\long\def\doifelse#1#2%
- {\let\donottest\dontprocesstest
- \edef\!!stringa{#1}%
- \edef\!!stringb{#2}%
- \let\donottest\doprocesstest
- \ifx\!!stringa\!!stringb
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\endTEX
-
-\beginETEX \protected
-
-% \long\def\doif#1#2#3%
-% {\edef\!!stringa{#1}\edef\!!stringb{#2}%
-% \ifx\!!stringa\!!stringb#3\fi}
-%
-% \long\def\doifnot#1#2#3%
-% {\edef\!!stringa{#1}\edef\!!stringb{#2}%
-% \unless\ifx\!!stringa\!!stringb#3\fi}
-%
-% \long\def\doifelse#1#2#3#4%
-% {\edef\!!stringa{#1}\edef\!!stringb{#2}%
-% \ifx\!!stringa\!!stringb#3\else#4\fi}
-
-%D Slightly faster on big arguments, as well as \type
-%D {\next} avoiding:
-
-\long\def\doif#1#2%
- {\edef\!!stringa{#1}\edef\!!stringb{#2}%
- \ifx\!!stringa\!!stringb
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\long\def\doifnot#1#2%
- {\edef\!!stringa{#1}\edef\!!stringb{#2}%
- \ifx\!!stringa\!!stringb
- \expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
-\long\def\doifelse#1#2%
- {\edef\!!stringa{#1}\edef\!!stringb{#2}%
- \ifx\!!stringa\!!stringb
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\endETEX
-
-%D One could wonder why we don't follow the the same approach
-%D as in \type{\doifdefined} c.s.\ and use \type{\begingroup}
-%D and \type{\endgroup}. In this case, this alternative is
-%D slower, which is probably due to the fact that more meanings
-%D need to be restored.
-%D
-%D The in terms of memory more efficient alternative using a
-%D auxiliary macro also proved to be slower, so we definitely
-%D did not choose for:
-%D
-%D \starttyping
-%D \def\p!doifelse#1#2%
-%D {\let\donottest=\dontprocesstest
-%D \edef\!!stringa{#1}%
-%D \edef\!!stringb{#2}%
-%D \let\donottest=\doprocesstest
-%D \ifx\!!stringa\!!stringb}
-%D
-%D \long\def\doif#1#2#3%
-%D {\p!doifelse{#1}{#2}#3\fi}
-%D
-%D \long\def\doifnot#1#2#3%
-%D {\p!doifelse{#1}{#2}\else#3\fi}
-%D
-%D \long\def\doifelse#1#2#3#4%
-%D {\p!doifelse{#1}{#2}#3\else#4\fi}
-%D \stoptyping
-%D
-%D Optimizations like this are related of course to the
-%D bottlenecks in \TEX. It seems that restoring saved meanings
-%D and passing arguments takes some time.
-
-%D \macros
-%D {doifempty,doifemptyelse,doifnotempty}
-%D
-%D We complete our set of conditionals with:
-%D
-%D \starttyping
-%D \doifempty {string} {...}
-%D \doifnotempty {string} {...}
-%D \doifemptyelse {string} {then ...} {else ...}
-%D \stoptyping
-%D
-%D This time, the string is not expanded.
-
-\long\def\doifemptyelse#1%
- {\def\!!stringa{#1}%
- \ifx\!!stringa\empty
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\long\def\doifempty#1%
- {\def\!!stringa{#1}%
- \ifx\!!stringa\empty
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\long\def\doifnotempty#1%
- {\def\!!stringa{#1}%
- \ifx\!!stringa\empty
- \expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
-%D \macros
-%D {doifinset,doifnotinset,doifinsetelse}
-%D
-%D We can check if a string is present in a comma separated
-%D set of strings. Depending on the result, some action is
-%D taken.
-%D
-%D \starttyping
-%D \doifinset {string} {string,...} {...}
-%D \doifnotinset {string} {string,...} {...}
-%D \doifinsetelse {string} {string,...} {then ...} {else ...}
-%D \stoptyping
-%D
-%D The second argument is the comma separated set of strings.
-%D
-%D \starttyping
-%D \long\def\doifinsetelse#1#2#3#4%
-%D {\doifelse{#1}{}
-%D {#4}
-%D {\donefalse
-%D \def\p!checkiteminset##1%
-%D {\doif{#1}{##1}
-%D {\donetrue
-%D \let\p!checkiteminset=\gobbleoneargument}}%
-%D \processcommalist[#2]\p!checkiteminset
-%D \ifdone
-%D #3%
-%D \else
-%D #4%
-%D \fi}}
-%D
-%D \long\def\doifinset#1#2#3%
-%D {\doifinsetelse{#1}{#2}{#3}{}}
-%D
-%D \long\def\doifnotinset#1#2#3%
-%D {\doifinsetelse{#1}{#2}{}{#3}}
-%D \stoptyping
-%D
-%D Because this macro is called quite often we've spent some
-%D time optimizing it. This time, the gain in speed is due to
-%D (1)~defining an external auxiliary macro, (2)~not calling
-%D any other macros and (3)~minimizing the passing of
-%D arguments. The gain in speed is impressive.
-
-% \def\p!dodocheckiteminset#1%
-% {\edef\!!stringb{#1}%
-% \ifx\!!stringa\!!stringb
-% \donetrue
-% \let\p!docheckiteminset\gobbleoneargument
-% \fi}
-%
-% \beginTEX
-%
-% \def\p!doifinsetelse#1#2%
-% {\let\donottest\dontprocesstest
-% \donefalse
-% \edef\!!stringa{#1}%
-% \ifx\!!stringa\empty
-% \else
-% \let\p!docheckiteminset\p!dodocheckiteminset
-% \processcommalist[#2]\p!docheckiteminset
-% \fi
-% \let\donottest\doprocesstest
-% \ifdone}
-%
-% \endTEX
-%
-% \beginETEX \protected
-%
-% \def\p!doifinsetelse#1#2%
-% {\donefalse
-% \edef\!!stringa{#1}%
-% \ifx\!!stringa\empty
-% \else
-% \let\p!docheckiteminset\p!dodocheckiteminset
-% \processcommalist[#2]\p!docheckiteminset
-% \fi
-% \ifdone}
-%
-% \endETEX
-
-% then we had:
-%
-% \def\p!docheckiteminset#1%
-% {\edef\!!stringb{#1}%
-% \ifx\!!stringa\!!stringb
-% \donetrue
-% \expandafter\quitcommalist
-% \fi}
-%
-% \beginTEX
-%
-% \def\p!doifinsetelse#1#2%
-% {\let\donottest\dontprocesstest
-% \donefalse
-% \edef\!!stringa{#1}%
-% \ifx\!!stringa\empty
-% \else
-% \processcommalist[#2]\p!docheckiteminset
-% \fi
-% \let\donottest\doprocesstest
-% \ifdone}
-%
-% \endTEX
-%
-% % can be sped up with processnext...
-%
-% \beginETEX \protected
-%
-% \def\p!doifinsetelse#1#2%
-% {\donefalse
-% \edef\!!stringa{#1}%
-% \ifx\!!stringa\empty
-% \else
-% \processcommalist[#2]\p!docheckiteminset
-% \fi
-% \ifdone}
-%
-% \endETEX
-%
-% \long\def\doifinsetelse#1#2%
-% {\p!doifinsetelse{#1}{#2}%
-% \expandafter\firstoftwoarguments
-% \else
-% \expandafter\secondoftwoarguments
-% \fi}
-%
-% \long\def\doifinset#1#2%
-% {\p!doifinsetelse{#1}{#2}%
-% \expandafter\firstofoneargument
-% \else
-% \expandafter\gobbleoneargument
-% \fi}
-%
-% \long\def\doifnotinset#1#2%
-% {\p!doifinsetelse{#1}{#2}%
-% \expandafter\gobbleoneargument
-% \else
-% \expandafter\firstofoneargument
-% \fi}
-%
-% now we have
-
-\def\p!docheckiteminset#1%
- {\edef\!!stringb{#1}%
- \ifx\!!stringa\!!stringb
- \donetrue
- \expandafter\quitcommalist
- \fi}
-
-\beginTEX
-
-\def\p!doifinsetelse#1#2#3#4%
- {\let\donottest\dontprocesstest
- \donefalse
- \edef\!!stringa{#3}%
- \ifx\!!stringa\empty
- \else
- \processcommalist[#4]\p!docheckiteminset
- \fi
- \let\donottest\doprocesstest
- \ifdone\expandafter#1\else\expandafter#2\fi}
-
-\endTEX
-
-\beginETEX \protected
-
-\def\p!doifinsetelse#1#2#3#4%
- {\donefalse
- \edef\!!stringa{#3}%
- \ifx\!!stringa\empty
- \else
- \processcommalist[#4]\p!docheckiteminset
- \fi
- \ifdone\expandafter#1\else\expandafter#2\fi}
-
-\endETEX
-
-\long\def\doifinsetelse
- {\p!doifinsetelse\firstoftwoarguments\secondoftwoarguments}
-
-\long\def\doifinset
- {\p!doifinsetelse\firstofoneargument\gobbleoneargument}
-
-\long\def\doifnotinset
- {\p!doifinsetelse\gobbleoneargument\firstofoneargument}
-
-%D \macros
-%D {doifcommon,doifnotcommon,doifcommonelse}
-%D
-%D Probably the most time consuming tests are those that test
-%D for overlap in sets of strings.
-%D
-%D \starttyping
-%D \doifcommon {string,...} {string,...} {...}
-%D \doifnotcommon {string,...} {string,...} {...}
-%D \doifcommonelse {string,...} {string,...} {then ...} {else ...}
-%D \stoptyping
-%D
-%D We show the slower alternative first, because it shows us
-%D how things are done.
-%D
-%D \starttyping
-%D \long\def\doifcommonelse#1#2#3#4%
-%D {\donefalse
-%D \def\p!docommoncheck##1%
-%D {\def\p!dodocommoncheck####1%
-%D {\doif{####1}{##1}
-%D {\donetrue
-%D \def\commalistelement{##1}%
-%D \let\p!docommoncheck=\gobbleoneargument
-%D \let\p!dodocommoncheck=\gobbleoneargument}}%
-%D \processcommalist[#2]\p!dodocommoncheck}%
-%D \processcommalist[#1]\p!docommoncheck
-%D \ifdone
-%D #3%
-%D \else
-%D #4%
-%D \fi}
-%D
-%D \long\def\doifcommon#1#2#3%
-%D {\doifcommonelse{#1}{#2}{#3}{}}
-%D
-%D \long\def\doifnotcommon#1#2#3%
-%D {\doifcommonelse{#1}{#2}{}{#3}}
-%D \stoptyping
-%D
-%D The processing time is shortened by getting the auxiliary
-%D macro to the outermost level and using less \type{\edef}'s.
-%D Sometimes it makes more sence to define local macro's not
-%D only because this way we can be sure that they are not
-%D redefined, but also because it shows the dependance. In
-%D compiled languages, this is no problem at all. It can even
-%D save us bytes and processing time. In interpreted languages
-%D like \TEX\ it nearly always slows down processing.
-
-% \def\p!dododocommoncheck#1%
-% {\edef\!!stringb{#1}%
-% \ifx\!!stringa\!!stringb
-% \donetrue
-% \let\p!docommoncheck\gobbleoneargument
-% \let\p!dodocommoncheck\gobbleoneargument
-% \fi}
-%
-% \beginTEX
-%
-% \def\p!doifcommonelse#1#2%
-% {\donefalse
-% \let\donottest\dontprocesstest
-% \let\p!dodocommoncheck\p!dododocommoncheck
-% \def\p!docommoncheck##1%
-% {\edef\!!stringa{##1}%
-% \def\commalistelement{##1}%
-% \processcommalist[#2]\p!dodocommoncheck}%
-% \processcommalist[#1]\p!docommoncheck
-% \let\donottest\doprocesstest
-% \ifdone}
-%
-% \endTEX
-%
-% \beginETEX \protected
-%
-% \def\p!doifcommonelse#1#2%
-% {\donefalse
-% \let\p!dodocommoncheck\p!dododocommoncheck
-% \def\p!docommoncheck##1%
-% {\edef\!!stringa{##1}%
-% \def\commalistelement{##1}%
-% \processcommalist[#2]\p!dodocommoncheck}%
-% \processcommalist[#1]\p!docommoncheck
-% \ifdone}
-%
-% \endETEX
-
-% \def\p!dodocommoncheck#1%
-% {\edef\!!stringb{#1}%
-% \ifx\!!stringa\!!stringb
-% \donetrue
-% \expandafter\quitprevcommalist
-% \fi}
-%
-% \beginTEX
-%
-% \def\p!doifcommonelse#1#2%
-% {\donefalse
-% \let\donottest\dontprocesstest
-% \def\p!docommoncheck##1%
-% {\edef\!!stringa{##1}%
-% \def\commalistelement{##1}% no let to stringa
-% \processcommalist[#2]\p!dodocommoncheck}%
-% \processcommalist[#1]\p!docommoncheck
-% \let\donottest\doprocesstest
-% \ifdone}
-%
-% \endTEX
-%
-% \beginETEX \protected
-%
-% \def\p!doifcommonelse#1#2%
-% {\donefalse
-% \def\p!docommoncheck##1%
-% {\edef\!!stringa{##1}%
-% \def\commalistelement{##1}%
-% \processcommalist[#2]\p!dodocommoncheck}%
-% \processcommalist[#1]\p!docommoncheck
-% \ifdone}
-%
-% \endETEX
-%
-% \long\def\doifcommonelse#1#2% % #3#4%
-% {\p!doifcommonelse{#1}{#2}% % #3\else#4\fi}
-% \expandafter\firstoftwoarguments
-% \else
-% \expandafter\secondoftwoarguments
-% \fi}
-%
-% \long\def\doifcommon#1#2%
-% {\p!doifcommonelse{#1}{#2}%
-% \expandafter\firstofoneargument
-% \else
-% \expandafter\gobbleoneargument
-% \fi}
-%
-% \long\def\doifnotcommon#1#2%
-% {\p!doifcommonelse{#1}{#2}%
-% \expandafter\gobbleoneargument
-% \else
-% \expandafter\firstofoneargument
-% \fi}
-
-% todo: use dedicated done
-
-\def\p!dodocommoncheck#1%
- {\edef\!!stringb{#1}%
- \ifx\!!stringa\!!stringb
- \donetrue
- \expandafter\quitprevcommalist
- \fi}
-
-\beginTEX
-
-\def\p!doifcommonelse#1#2#3#4%
- {\donefalse
- \let\donottest\dontprocesstest
- \def\p!docommoncheck##1%
- {\edef\!!stringa{##1}%
- \def\commalistelement{##1}% no let to stringa
- \processcommalist[#4]\p!dodocommoncheck}%
- \processcommalist[#3]\p!docommoncheck
- \let\donottest\doprocesstest
- \ifdone\expandafter#1\else\expandafter#2\fi}
-
-\endTEX
-
-\beginETEX \protected
-
-\def\p!doifcommonelse#1#2#3#4%
- {\donefalse
- \def\p!docommoncheck##1%
- {\edef\!!stringa{##1}%
- \def\commalistelement{##1}%
- \processcommalist[#4]\p!dodocommoncheck}%
- \processcommalist[#3]\p!docommoncheck
- \ifdone\expandafter#1\else\expandafter#2\fi}
-
-\endETEX
-
-\def\doifcommonelse
- {\p!doifcommonelse\firstoftwoarguments\secondoftwoarguments}
-
-\def\doifcommon
- {\p!doifcommonelse\firstofoneargument \gobbleoneargument}
-
-\def\doifnotcommon
- {\p!doifcommonelse\gobbleoneargument \firstofoneargument}
-
-%D \macros
-%D {processcommalist,processcommacommand,quitcommalist,
-%D processcommalistwithparameters}
-%D
-%D We've already seen some macros that take care of comma
-%D separated lists. Such list can be processed with
-%D
-%D \starttyping
-%D \processcommalist[string,string,...]\commando
-%D \stoptyping
-%D
-%D The user supplied command \type{\commando} receives one
-%D argument: the string. This command permits nesting and
-%D spaces after commas are skipped. Empty sets are no problem.
-%D
-%D \startbuffer
-%D \def\dosomething#1{(#1)}
-%D
-%D 1: \processcommalist [\hbox{$a,b,c,d,e,f$}] \dosomething \par
-%D 2: \processcommalist [{a,b,c,d,e,f}] \dosomething \par
-%D 3: \processcommalist [{a,b,c},d,e,f] \dosomething \par
-%D 4: \processcommalist [a,b,{c,d,e},f] \dosomething \par
-%D 5: \processcommalist [a{b,c},d,e,f] \dosomething \par
-%D 6: \processcommalist [{a,b}c,d,e,f] \dosomething \par
-%D 7: \processcommalist [] \dosomething \par
-%D 8: \processcommalist [{[}] \dosomething \par
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Before we show the result, we present the macro's:
-
-\newcount\commalevel
-
-\def\dododoprocesscommaitem
- {\csname\s!next\the\commalevel\endcsname}
-
-%\def\dodoprocesscommaitem%
-% {\ifx\nexttoken\blankspace
-% \let\nextcommaitem\redoprocesscommaitem
-% \else\ifx\nexttoken]%
-% \let\nextcommaitem\gobbleoneargument
-% \else
-% \let\nextcommaitem\dododoprocesscommaitem
-% \fi\fi
-% \nextcommaitem}
-%
-% faster ?
-
-\def\dodoprocesscommaitem
- {\ifx\nexttoken\blankspace
- \@EA\redoprocesscommaitem
- \else\ifx\nexttoken]%
- \@EAEAEA\gobbleoneargument
- \else
- \@EAEAEA\dododoprocesscommaitem
- \fi\fi}
-
-\def\doprocesscommaitem
- {\futurelet\nexttoken\dodoprocesscommaitem}
-
-%D Empty arguments are not processed. Empty items (\type{,,})
-%D however are treated. We have to check for the special case
-%D \type{[{a,b,c}]}.
-%D
-%D \starttyping
-%D \def\processcommalist[%
-%D {\futurelet\nexttoken\docheckcommaitem}
-%D
-%D \def\docheckcommaitem%
-%D {\ifx\nexttoken]%
-%D \let\nextcommaitem\gobbletwoarguments
-%D \else\ifx\nexttoken\bgroup
-%D \let\nextcommaitem\doprocesscommalistA
-%D \else
-%D \let\nextcommaitem\doprocesscommalistB
-%D \fi\fi
-%D \nextcommaitem}
-%D
-%D \def\doprocesscommalistA#1#2]#3%
-%D {\global\advance\commalevel 1
-%D \long\expandafter\def\csname\s!next\the\commalevel\endcsname##1,%
-%D {#3{##1}\doprocesscommaitem}%
-%D \doprocesscommaitem{#1}#2,]\relax
-%D \global\advance\commalevel -1 }
-%D
-%D \def\doprocesscommalistB#1]#2%
-%D {\global\advance\commalevel 1
-%D \long\expandafter\def\csname\s!next\the\commalevel\endcsname##1,%
-%D {#2{##1}\doprocesscommaitem}%
-%D \doprocesscommaitem#1,]\relax
-%D \global\advance\commalevel -1 }
-%D \stoptyping
-%D
-%D However, this is not a the most straightforward solution!
-%D We can misuse one of \TEX's hidden features, and prepend
-%D and remove a \type {\relax}. By the way, although it
-%D involves less testing, this cleaner alternative is not
-%D faster.
-
-\def\processcommalist[%
- {\futurelet\nexttoken\docheckcommaitem}
-
-\def\docheckcommaitem
- {\ifx\nexttoken]%
- \expandafter\gobblethreearguments
- \else
- \expandafter\doprocesscommalist
- \fi
- \relax} % this one preserved the next {}
-
-\def\doprocesscommalist#1]#2%
- {\global\advance\commalevel \plusone
- \long\expandafter\def\csname\s!next\the\commalevel\endcsname##1,%
- {#2{##1}\doprocesscommaitem}%
- \@EA\dodoprocesscommaitem\gobbleoneargument#1,]\relax
- \global\advance\commalevel \minusone }
-
-%D One way of quitting a commalist halfway is:
-
-\def\quitcommalist
- {\begingroup\let\doprocesscommaitem\doquitcommalist}
-
-\def\doquitcommalist#1]%
- {\endgroup}
-
-\def\quitprevcommalist
- {\begingroup\let\doprocesscommaitem\doquitprevcommalist}
-
-\def\doquitprevcommalist#1]%
- {\let\doprocesscommaitem\doquitcommalist}
-
-%D The hack we used for checking the next character
-%D \type {\doifnextcharelse} is also used here.
-
-\def\:{\redoprocesscommaitem}
-
-\expandafter\def\: {\futurelet\nexttoken\dodoprocesscommaitem}
-
-%D The previous examples lead to:
-%D
-%D \getbuffer
-
-%D When a list is saved in a macro, we can use a construction
-%D like:
-%D
-%D \starttyping
-%D \expandafter\processcommalist\expandafter[\list]\command
-%D \stoptyping
-%D
-%D Such solutions suit most situations, but we wanted a bit
-%D more.
-%D
-%D \starttyping
-%D \processcommacommand[string,\stringset,string]\commando
-%D \stoptyping
-%D
-%D where \type{\stringset} is a predefined set, like:
-%D
-%D \starttyping
-%D \def\first{aap,noot,mies}
-%D \def\second{laatste}
-%D
-%D \processcommacommand[\first]\message
-%D \processcommacommand[\first,second,third]\message
-%D \processcommacommand[\first,between,\second]\message
-%D \stoptyping
-%D
-%D Commands that are part of the list are expanded, so the
-%D use of this macro has its limits.
-
-\def\processcommacommand[#1]%
- {\expanded{\processcommalist[#1]}}
-
-%D The argument to \type{\command} is not delimited. Because
-%D we often use \type{[]} as delimiters, we also have:
-%D
-%D \starttyping
-%D \processcommalistwithparameters[string,string,...]\command
-%D \stoptyping
-%D
-%D where \type{\command} looks like:
-%D
-%D \starttyping
-%D \def\command[#1]{... #1 ...}
-%D \stoptyping
-
-\def\processcommalistwithparameters[#1]#2%
- {\def\docommand##1{#2[##1]}%
- \processcommalist[#1]\docommand}
-
-%D \macros
-%D {processaction,
-%D processfirstactioninset,
-%D processallactionsinset}
-%D
-%D \CONTEXT\ makes extensive use of a sort of case or switch
-%D command. Depending of the presence of one or more provided
-%D items, some actions is taken. These macros can be nested
-%D without problems.
-%D
-%D \starttyping
-%D \processaction [x] [a=>\a,b=>\b,c=>\c]
-%D \processfirstactioninset [x,y,z] [a=>\a,b=>\b,c=>\c]
-%D \processallactionsinset [x,y,z] [a=>\a,b=>\b,c=>\c]
-%D \stoptyping
-%D
-%D We can supply both a \type{default} action and an action
-%D to be undertaken when an \type{unknown} value is met:
-%D
-%D \starttyping
-%D \processallactionsinset
-%D [x,y,z]
-%D [ a=>\a,
-%D b=>\b,
-%D c=>\c,
-%D default=>\default,
-%D unknown=>\unknown{... \commalistelement ...}]
-%D \stoptyping
-%D
-%D When \type{#1} is empty, this macro scans list \type{#2} for
-%D the keyword \type{default} and executed the related action
-%D if present. When \type{#1} is non empty and not in the list,
-%D the action related to \type{unknown} is executed. Both
-%D keywords must be at the end of list \type{#2}. Afterwards,
-%D the actually found keyword is available in
-%D \type{\commalistelement}. An advanced example of the use of
-%D this macro can be found in \PPCHTEX, where we completely
-%D rely on \TEX\ for interpreting user supplied keywords like
-%D \type{SB}, \type{SB1..6}, \type{SB125} etc.
-%D
-%D Even a quick glance at the macros below show some overlap,
-%D which means that more efficient alternatives are possible.
-%D Because these macro's are very sensitive to subtle changes,
-%D we've decided to present the readable originals first
-%D Maybe these these macros look complicated, but this is a
-%D direct result of the support of nesting. Protection is only
-%D applied in \type{\processaction}.
-%D
-%D \starttyping
-%D \newcount\processlevel
-%D
-%D \def\processaction[#1]#2[#3]%
-%D {\doifelse{#1}{}
-%D {\def\p!compareprocessaction[##1=>##2]%
-%D {\edef\!!stringa{##1}%
-%D \ifx\!!stringa\s!default
-%D \def\commalistelement{#1}%
-%D ##2%
-%D \fi}}
-%D {\let\donottest=\dontprocesstest
-%D \edef\!!stringb{#1}%
-%D \let\donottest=\doprocesstest
-%D \def\p!compareprocessaction[##1=>##2]%
-%D {\edef\!!stringa{##1}%
-%D \ifx\!!stringa\!!stringb
-%D \def\commalistelement{#1}%
-%D ##2%
-%D \let\p!doprocessaction=\gobbleoneargument
-%D \else\ifx\!!stringa\s!unknown
-%D \def\commalistelement{#1}%
-%D ##2%
-%D \fi\fi}}%
-%D \def\p!doprocessaction##1%
-%D {\p!compareprocessaction[##1]}%
-%D \processcommalist[#3]\p!doprocessaction}
-%D
-%D \def\processfirstactioninset[#1]#2[#3]%
-%D {\doifelse{#1}{}
-%D {\processaction[][#3]}
-%D {\def\p!compareprocessaction[##1=>##2][##3]%
-%D {\edef\!!stringa{##1}%
-%D \edef\!!stringb{##3}%
-%D \ifx\!!stringa\!!stringb
-%D \def\commalistelement{##3}%
-%D ##2%
-%D \let\p!doprocessaction=\gobbleoneargument
-%D \let\p!dodoprocessaction=\gobbleoneargument
-%D \else\ifx\!!stringa\s!unknown
-%D \def\commalistelement{##3}%
-%D ##2%
-%D \fi\fi}%
-%D \def\p!doprocessaction##1%
-%D {\def\p!dodoprocessaction####1%
-%D {\p!compareprocessaction[####1][##1]}%
-%D \processcommalist[#3]\p!dodoprocessaction}%
-%D \processcommalist[#1]\p!doprocessaction}}
-%D
-%D \def\processallactionsinset[#1]#2[#3]%
-%D {\doifelse{#1}{}
-%D {\processaction[][#3]}
-%D {\advance\processlevel by 1
-%D \def\p!compareprocessaction[##1=>##2][##3]%
-%D {\edef\!!stringa{##1}%
-%D \edef\!!stringb{##3}%
-%D \ifx\!!stringa\!!stringb
-%D \def\commalistelement{##3}%
-%D ##2%
-%D \let\p!dodoprocessaction=\gobbleoneargument
-%D \else\ifx\!!stringa\s!unknown
-%D \def\commalistelement{##3}%
-%D ##2%
-%D \fi\fi}%
-%D \setvalue{\s!do\the\processlevel}##1%
-%D {\def\p!dodoprocessaction####1%
-%D {\p!compareprocessaction[####1][##1]}%
-%D \processcommalist[#3]\p!dodoprocessaction}%
-%D \processcommalist[#1]{\getvalue{\s!do\the\processlevel}}%
-%D \advance\processlevel by -1 }}
-%D \stoptyping
-%D
-%D The gain of speed in the (again) next implementation is
-%D around 20\%, depending on the application.
-
-\newcount\processlevel
-
-\def\p!compareprocessactionA[#1=>#2][#3]%
- {\edef\!!stringb{#1}%
- \ifx\!!stringb\s!default
- \let\commalistelement\empty
- #2%
- \fi}
-
-% \def\p!compareprocessactionB[#1=>#2][#3]%
-% {\expandedaction\!!stringb{#1}%
-% \ifx\!!stringa\!!stringb
-% \def\commalistelement{#3}%
-% #2%
-% \let\p!doprocessaction\gobbleoneargument
-% \else
-% \edef\!!stringb{#1}%
-% \ifx\!!stringb\s!unknown
-% \def\commalistelement{#3}% beware of loops
-% #2%
-% \fi
-% \fi}
-
-% met \quitcommalist tot meer dan 25\% sneller
-
-\def\p!compareprocessactionB[#1=>#2][#3]%
- {\expandedaction\!!stringb{#1}%
- \ifx\!!stringa\!!stringb
- \def\commalistelement{#3}%
- #2%
- \expandafter\quitcommalist
- \else
- \edef\!!stringb{#1}%
- \ifx\!!stringb\s!unknown
- \def\commalistelement{#3}% beware of loops
- #2%
- \fi
- \fi}
-
-\beginTEX
-
-\def\processaction[#1]#2[#3]%
- {\let\donottest\dontprocesstest
- \expandedaction\!!stringa{#1}%
- \let\donottest\doprocesstest
- \ifx\!!stringa\empty
- \let\p!compareprocessaction\p!compareprocessactionA
- \else
- \let\p!compareprocessaction\p!compareprocessactionB
- \fi
- \def\p!doprocessaction##1%
- {\p!compareprocessaction[##1][#1]}%
- \processcommalist[#3]\p!doprocessaction
- \expandactions}
-
-\endTEX
-
-\beginETEX \protected
-
-\def\processaction[#1]#2[#3]% faster version follows
- {\expandedaction\!!stringa{#1}%
- \ifx\!!stringa\empty
- \let\p!compareprocessaction\p!compareprocessactionA
- \else
- \let\p!compareprocessaction\p!compareprocessactionB
- \fi
- \def\p!doprocessaction##1%
- {\p!compareprocessaction[##1][#1]}%
- \processcommalist[#3]\p!doprocessaction
- \expandactions}
-
-\endETEX
-
-% \def\p!compareprocessactionC[#1=>#2][#3]%
-% {\expandedaction\!!stringa{#1}%
-% \expandedaction\!!stringb{#3}%
-% \ifx\!!stringa\!!stringb
-% \def\commalistelement{#3}%
-% #2%
-% \let\p!doprocessaction\gobbleoneargument
-% \let\p!dodoprocessaction\gobbleoneargument
-% \else
-% \edef\!!stringa{#1}%
-% \ifx\!!stringa\s!unknown
-% \def\commalistelement{#3}%
-% #2%
-% \fi
-% \fi}
-
-\def\p!compareprocessactionC[#1=>#2][#3]%
- {\expandedaction\!!stringa{#1}%
- \expandedaction\!!stringb{#3}%
- \ifx\!!stringa\!!stringb
- \def\commalistelement{#3}%
- #2%
- \expandafter\quitprevcommalist
- \else
- \edef\!!stringa{#1}%
- \ifx\!!stringa\s!unknown
- \def\commalistelement{#3}%
- #2%
- \fi
- \fi}
-
-\def\processfirstactioninset[#1]#2[#3]% faster version follows
- {\expandedaction\!!stringa{#1}%
- \ifx\!!stringa\empty
- \processaction[][#3]%
- \else
- \def\p!doprocessaction##1%
- {\def\p!dodoprocessaction####1%
- {\p!compareprocessactionC[####1][##1]}%
- \processcommalist[#3]\p!dodoprocessaction}%
- \processcommalist[#1]\p!doprocessaction
- \fi
- \expandactions}
-
-% \def\p!compareprocessactionD[#1=>#2][#3]%
-% {\expandedaction\!!stringa{#1}%
-% \expandedaction\!!stringb{#3}%
-% \ifx\!!stringa\!!stringb
-% \def\commalistelement{#3}%
-% #2%
-% \let\p!dodoprocessaction\gobbleoneargument
-% \else
-% \edef\!!stringa{#1}%
-% \ifx\!!stringa\s!unknown
-% \def\commalistelement{#3}%
-% #2%
-% \fi
-% \fi}
-
-\def\p!compareprocessactionD[#1=>#2][#3]%
- {\expandedaction\!!stringa{#1}%
- \expandedaction\!!stringb{#3}%
- \ifx\!!stringa\!!stringb
- \def\commalistelement{#3}%
- #2%
- \expandafter\quitcommalist
- \else
- \edef\!!stringa{#1}%
- \ifx\!!stringa\s!unknown
- \def\commalistelement{#3}%
- #2%
- \fi
- \fi}
-
-\def\doprocessallactionsinset
- {\csname\s!do\the\processlevel\endcsname}
-
-\def\processallactionsinset[#1]#2[#3]% faster version follows
- {\expandedaction\!!stringa{#1}%
- \ifx\!!stringa\empty
- \processaction[][#3]%
- \else
- \advance\processlevel \plusone
- \expandafter\def\csname\s!do\the\processlevel\endcsname##1%
- {\def\p!dodoprocessaction####1%
- {\p!compareprocessactionD[####1][##1]}%
- \processcommalist[#3]\p!dodoprocessaction}%
- \processcommalist[#1]\doprocessallactionsinset
- \advance\processlevel \minusone
- \fi
- \expandactions}
-
-%D We can speed up these macros a bit when we use a dedicated
-%D commalist processor, one that avoids passing the (often)
-%D big action list.
-
-\beginTEX
-
-\def\processaction[#1]#2[%
- {\let\donottest\dontprocesstest
- \expandedaction\!!stringa{#1}%
- \let\donottest\doprocesstest
- \ifx\!!stringa\empty
- \let\p!compareprocessaction\p!compareprocessactionA
- \else
- \let\p!compareprocessaction\p!compareprocessactionB
- \fi
- \def\p!doprocessaction##1%
- {\p!compareprocessaction[##1][#1]}%
- \processnextcommalist\relax\expandactions\p!doprocessaction[}
-
-\endTEX
-
-\beginETEX
-
-\def\processaction[#1]#2[%
- {\expandedaction\!!stringa{#1}%
- \ifx\!!stringa\empty
- \let\p!compareprocessaction\p!compareprocessactionA
- \else
- \let\p!compareprocessaction\p!compareprocessactionB
- \fi
- \def\p!doprocessaction##1%
- {\p!compareprocessaction[##1][#1]}%
- \processnextcommalist\relax\expandactions\p!doprocessaction[}
-
-\endETEX
-
-\def\processfirstactionsinset[#1]%
- {\expandedaction\!!stringa{#1}%
- \ifx\!!stringa\empty
- \expandafter\processaction
- \else
- \expandafter\processfirstactionsinsetindeed
- \fi
- [#1]}
-
-\def\processfirstactioninsetindeed[#1]#2[#3]%
- {\def\p!doprocessaction##1%
- {\def\p!dodoprocessaction####1%
- {\p!compareprocessactionC[####1][##1]}%
- \processcommalist[#3]\p!dodoprocessaction}%
- \processcommalist[#1]\p!doprocessaction
- \expandactions}
-
-\def\processallactionsinset[#1]%
- {\expandedaction\!!stringa{#1}%
- \ifx\!!stringa\empty
- \expandafter\processaction
- \else
- \expandafter\processallactionsinsetindeed
- \fi
- [#1]}
-
-\def\processallactionsinsetindeed[#1]#2[#3]%
- {\advance\processlevel \plusone
- \expandafter\def\csname\s!do\the\processlevel\endcsname##1%
- {\def\p!dodoprocessaction####1%
- {\p!compareprocessactionD[####1][##1]}%
- \processcommalist[#3]\p!dodoprocessaction}%
- \processcommalist[#1]\doprocessallactionsinset
- \advance\processlevel \minusone
- \expandactions}
-
-\def\processnextcommalist#1#2#3[#4#5]%
- {#1%
- \let\nexttoken#4%
- \global\advance\commalevel \plusone
- \long\expandafter\def\csname\s!next\the\commalevel\endcsname##1,%
- {#3{##1}\doprocesscommaitem}%
- \dodoprocesscommaitem#4#5,]\relax
- \global\advance\commalevel \minusone
- #2}
-
-%D I do have an even faster version (saving 3 sec on a 13
-%D sec run for 50K invocations, but normally we don't have
-%D that many calls and that alternative uses more macros and is
-%D even less readable. What we did add, was \type {\@EA}, so
-%D that we can pass a command.
-
-%D \macros
-%D {unexpandedprocessaction,
-%D unexpandedprocessfirstactioninset,
-%D unexpandedprocessallactionsinset}
-%D
-%D Now what are those expansion commands doing there. Well,
-%D sometimes we want to compare actions that may consist off
-%D commands (i.e. are no constants). In such occasions we can
-%D use the a bit slower alternatives:
-
-\def\unexpandedprocessfirstactioninset{\dontexpandactions\processfirstactioninset}
-\def\unexpandedprocessaction {\dontexpandactions\processaction}
-\def\unexpandedprocessallactionsinset {\dontexpandactions\processallactionsinset}
-
-%D By default we expand actions:
-
-\def\expandactions{\let\expandedaction\edef} \expandactions
-
-%D But when needed we convert the strings to meaningful
-%D sequences of characters.
-
-\def\unexpandedaction#1>{}
-
-\def\noexpandedaction#1#2%
- {\def\@@convertedargument{#2}%
- \@EA\edef\@EA#1\@EA{\@EA\unexpandedaction\meaning\@@convertedargument}}
-
-\def\dontexpandactions%
- {\let\expandedaction\noexpandedaction}
-
-%D \macros
-%D {getfirstcharacter, firstcharacter, remainingcharacters, doiffirstcharacter}
-%D
-%D Sometimes the action to be undertaken depends on the
-%D next character. This macro get this character and puts it in
-%D \type{\firstcharacter}.
-%D
-%D \starttyping
-%D \getfirstcharacter {string}
-%D \stoptyping
-%D
-%D A two step expansion is used to prevent problems with
-%D complicated arguments, for instance arguments that
-%D consist of two or more expandable tokens.
-
-\def\dogetfirstcharacter#1#2\relax
- {\def\firstcharacter{#1}%
- \def\remainingcharacters{#2}}
-
-\def\getfirstcharacter#1%
- {\edef\!!stringa{#1}%
- \expandafter\dogetfirstcharacter\!!stringa\relax}
-
-\def\doiffirstcharelse#1#2% char string
-% kort (maar onleesbaar)
-% {\expanded{\dogetfirstcharacter#2}\\\doifelse{#1}\firstcharacter}
-% korter (en begrijpelijk))
- {\getfirstcharacter{#2}\doifelse{#1}\firstcharacter}
-% snel (maar zelden gebruikt, dus niet zo belangrijk)
-% {\getfirstcharacter{#2}%
-% \edef\!!stringa{#1}%
-% \ifx\!!stringa\firstcharacter
-% \expandafter\firstoftwoarguments
-% \else
-% \expandafter\secondoftwoarguments
-% \fi}
-
-%D \macros
-%D {doifinstringelse, doifincsnameelse}
-%D
-%D We can check for the presence of a substring in a given
-%D sequence of characters.
-%D
-%D \starttyping
-%D \doifinsetelse {substring} {string} {then ...} {else ...}
-%D \stoptyping
-%D
-%D An application of this command can be found further on.
-%D Like before, we first show some alternatives, like the one
-%D we started with:
-%D
-%D \starttyping
-%D \long\def\p!doifinstringelse#1#2#3#4%
-%D {\def\pp!doifinstringelse##1#1##2##3\war%
-%D {\if##2@%
-%D #4%
-%D \else
-%D #3%
-%D \fi}%
-%D \pp!doifinstringelse#2#1@@\war}
-%D
-%D \def\doifinstringelse%
-%D {\ExpandBothAfter\p!doifinstringelse}
-%D \stoptyping
-%D
-%D After this we came to:
-%D
-%D \starttyping
-%D \def\p!doifinstringelse#1#2%
-%D {\def\pp!doifinstringelse##1#1##2##3\war%
-%D {\if##2@}%
-%D \pp!doifinstringelse#2#1@@\war}
-%D
-%D \def\doifinstringelse#1#2#3#4%
-%D {\ExpandBothAfter\p!doifinstringelse{#1}{#2}%
-%D #4%
-%D \else
-%D #3%
-%D \fi}
-%D \stoptyping
-%D
-%D Sometimes the second argument is passed as a macro. By
-%D postponing the expansion of this macro, we gain quite some
-%D run time, simply because the less tokens we pass, the faster
-%D \TEX\ runs. So finally the definition became:
-
-% \long\def\rawdoifinstringelse#1#2% ##2 can be {abc}
-% {\long\def\pp!doifinstringelse##1#1##2##3\war{\if##2@}%
-% \pp!doifinstringelse#2#1@@\war
-% \expandafter\secondoftwoarguments
-% \else
-% \expandafter\firstoftwoarguments
-% \fi}
-
-\long\def\doifinstringelse#1%
- {\edef\@@@instring{#1}% expand #1 here
- \ifx\@@@instring\empty
- \@EA\thirdofthreearguments
- \else
- \@EA\dodoifinstringelse
- \fi}
-
-\long\def\dodoifinstringelse#1%
- {\p!doifinstringelse\@@@instring{#1}%
- \@EA\firstoftwoarguments
- \else
- \@EA\secondoftwoarguments
- \fi}
-
-\long\def\doifinstring#1%%
- {\edef\@@@instring{#1}% expand #1 here
- \ifx\@@@instring\empty
- \@EA\gobbletwoarguments
- \else
- \@EA\dodoifinstring
- \fi}
-
-\long\def\dodoifinstring#1%
- {\p!doifinstringelse\@@@instring{#1}%
- \@EA\firstofoneargument
- \else
- \@EA\gobbleoneargument
- \fi}
-
-\long\def\doifnotinstring#1%%
- {\edef\@@@instring{#1}% expand #1 here
- \ifx\@@@instring\empty
- \@EA\gobbletwoarguments
- \else
- \@EA\dodoifnotinstring
- \fi}
-
-\long\def\dodoifnotinstring#1%
- {\p!doifinstringelse\@@@instring{#1}%
- \@EA\gobbleoneargument
- \else
- \@EA\firstofoneargument
- \fi}
-
-%D \starttyping
-%D \beginTEX
-%D
-%D \long\def\p!doifinstringelse#1#2%
-%D {\long\def\pp!doifinstringelse##1#1##2##3\war%
-%D {\csname if\if##2@fals\else tru\fi e\endcsname}%
-%D \expanded{\pp!doifinstringelse#2#1@@\noexpand\war}} % expand #2 here
-%D
-%D \endTEX
-%D
-%D \beginETEX \unless
-%D
-%D \long\def\p!doifinstringelse#1#2%
-%D {\long\def\pp!doifinstringelse##1#1##2##3\war%
-%D {\unless\if##2@}%
-%D \expanded{\pp!doifinstringelse#2#1@@\noexpand\war}} % expand #2 here
-%D
-%D \endETEX
-%D \stoptyping
-%D
-%D And then \unknown\ after a couple of years, we ran into a
-%D situation where \type {##2} was something \type {{bla}}. So
-%D finally we need to use an auxiliary macro, otherwise we get
-%D funny strings in the output.
-
-% \long\def\p!doifinstringelse#1#2% ##2 can be {abc}
-% {\long\@EA\def\@EA\pp!doifinstringelse\@EA##\@EA1#1##2##3\war % expand #1 here
-% {\ppp!doifinstringelse##2\war}%
-% \expanded{\pp!doifinstringelse#2#1@@\noexpand\war}} % expand #2 here
-%
-% \beginTEX
-%
-% \def\ppp!doifinstringelse#1#2\war%
-% {\csname if\ifx#1@fals\else tru\fi e\endcsname}%
-%
-% \endTEX
-%
-% \beginETEX \unless
-%
-% \def\ppp!doifinstringelse#1#2\war%
-% {\unless\ifx#1@}
-%
-% \endETEX
-
-\beginETEX
-
-\long\def\p!doifinstringelse#1#2% ##2 can be {abc}
- {\long\@EA\def\@EA\pp!doifinstringelse\@EA##\@EA1#1##2##3\war % expand #1 here
- {\unless\if##2@}%
-% \expanded{\pp!doifinstringelse#2#1@@\noexpand\war}} % expand #2 here
- \expanded{\pp!doifinstringelse#2#1}@@\war} % expand #2 here
-
-\endETEX
-
-\beginTEX
-
-\long\def\p!doifinstringelse#1#2% ##2 can be {abc}
- {\long\@EA\def\@EA\pp!doifinstringelse\@EA##\@EA1#1##2##3\war % expand #1 here
- {\csname if\if##2@fals\else tru\fi e\endcsname}%
- %\expanded{\pp!doifinstringelse#2#1@@\noexpand\war}} % expand #2 here
- \expanded{\pp!doifinstringelse#2#1}@@\war} % expand #2 here
-
-\endTEX
-
-%D The next alternative proved to be upto twice as fast on
-%D tasks like checking reserved words in pretty verbatim
-%D typesetting! This is mainly due to the fact that passing
-%D (expanded) strings is much slower that passing a macro.
-%D
-%D \starttyping
-%D \doifincsnameelse {substring} {\string} {then ...} {else ...}
-%D \stoptyping
-%D
-%D Where \type{\doifinstringelse} does as much expansion as
-%D possible, the latter alternative does minimal (one level)
-%D expansion.
-
-\beginTEX
-
-\long\def\p!doifincsnameelse#1#2%
- {\long\def\pp!doifincsnameelse##1#1##2##3\war
- {\csname if\if##2@fals\else tru\fi e\endcsname}%
- \@EA\pp!doifincsnameelse#2#1@@\war}
-
-\endTEX
-
-\beginETEX \unless
-
-\long\def\p!doifincsnameelse#1#2%
- {\long\def\pp!doifincsnameelse##1#1##2##3\war
- {\unless\if##2@}%
- \@EA\pp!doifincsnameelse#2#1@@\war}
-
-\endETEX
-
-\long\def\doifincsnameelse#1#2% % #3#4%
- {\edef\@@@instring{#1}%
- \@EA\p!doifincsnameelse\@EA{\@@@instring}{#2}% % #3\else#4\fi}
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-%D \macros
-%D {doifnumberelse}
-%D
-%D The next macro executes a command depending of the outcome
-%D of a test on numerals. This is probably one of the fastest
-%D test possible, exept from a less robust 10||step
-%D \type{\if}||ladder or some tricky \type{\lcode} checking.
-%D
-%D \starttyping
-%D \doifnumberelse {string} {then ...} {else ...}
-%D \stoptyping
-%D
-%D The macro accepts \type{123}, \type{abc}, \type{{}},
-%D \type{\getal} and \type{\the\count...}. This macro is a
-%D rather dirty one.
-%D
-%D \starttyping
-%D \long\def\doifnumberelse#1#2#3%
-%D {\begingroup\donefalse
-%D \ifcase1#1\or\or\or\or\or\or\or\or\or\else\donetrue\fi
-%D \ifdone\endgroup#2\else\endgroup#3\fi}
-%D \stoptyping
-%D
-%D Or better:
-%D
-%D \starttyping
-%D \long\def\doifnumberelse#1%
-%D {\begingroup\donefalse
-%D \ifcase1#1\or\or\or\or\or\or\or\or\or\else\donetrue\fi
-%D \ifdone
-%D \endgroup\expandafter\firstoftwoarguments
-%D \else
-%D \endgroup\expandafter\secondoftwoarguments
-%D \fi}
-%D \stoptyping
-%D
-%D A previous implementation was:
-%D
-%D \starttyping
-%D \long\def\doifnumberelse#1#2#3%
-%D {\getfirstcharacter{#1}%
-%D \@EA\p!doifinstringelse\@EA{\firstcharacter}{1234567890}%
-%D #2%
-%D \else
-%D #3%
-%D \fi}
-%D \stoptyping
-%D
-%D And before we had \type{\p!doifinstringelse} available, we
-%D used:
-%D
-%D \starttyping
-%D \def\doifnumberelse#1%
-%D {\getfirstcharacter{#1}%
-%D \rawdoifinsetelse{\firstcharacter}{1,2,3,4,5,6,7,8,9,0}}
-%D \stoptyping
-%D
-%D The implementation using \type {\ifcase} is much faster, but
-%D the next one is not, not even when testing milion calls.
-%D
-%D \starttyping
-%D \newif\ifitsanumber
-%D
-%D \long\def\isitanumber#1%
-%D {\itsanumberfalse
-%D \ifcase1#1\or\or\or\or\or\or\or\or\or\else\itsanumbertrue\fi}
-%D
-%D \long\def\doifnumberelse#1#2#3%
-%D {\isitanumber{#1}\ifitsanumber#2\else#3\fi}
-%D \stoptyping
-%D
-%D After a while the next evolved and this one is the one we
-%D will use. This one is some 5\% faster than the group/done
-%D one (partly because it does not have to pass arguments).
-%D Even more important is that this alternative is fully
-%D expandable!
-
-\long\def\doifnumberelse#1% does not accept counters
- {\ifcase0\ifcase1#1\or\or\or\or\or\or\or\or\or\else1\fi\space
- \expandafter\secondoftwoarguments
- \else
- \expandafter\firstoftwoarguments
- \fi}
-
-%D \macros
-%D {makerawcommalist,
-%D rawdoinsetelse,
-%D rawprocesscommalist,
-%D rawprocessaction}
-%D
-%D Some of the commands mentioned earlier are effective but
-%D slow. When one is desperately in need of faster alternatives
-%D and when the conditions are predictable safe, the \type{\raw}
-%D alternatives come into focus. A major drawback is that
-%D they do not take \type{\c!constants} into account, simply
-%D because no expansion is done. This is no problem with
-%D \type{\rawprocesscommalist}, because this macro does not
-%D compare anything. Expandable macros are permitted as search
-%D string.
-%D
-%D \starttyping
-%D \makerawcommalist[string,string,...]\stringlist
-%D \rawdoifinsetelse{string}{string,...}{...}{...}
-%D \rawprocesscommalist[string,string,...]\commando
-%D \rawprocessaction[x][a=>\a,b=>\b,c=>\c]
-%D \stoptyping
-%D
-%D Spaces embedded in the list, for instance after commas,
-%D spoil the search process. The gain in speed depends on the
-%D length of the argument (the longer the argument, the less
-%D we gain).
-%D
-%D The slow alternative looks like:
-%D
-%D \starttyping
-%D \def\makerawcommalist[#1]#2%
-%D {\def\appendtocommalist##1%
-%D {\doifelse{#2}{}
-%D {\edef#2{##1}}
-%D {\edef#2{#2,##1}}}%
-%D \def#2{}%
-%D \processcommalist[#1]\appendtocommalist}
-%D \stoptyping
-%D
-%D But we prefer:
-
-% \appendtocommalist is defined in syst-ext
-
-\def\makerawcommalist[#1]#2% use \processnext ... here
- {\def\domakerawcommalist##1% we don't expand ##1
- {\ifx#2\empty
- \def#2{##1}%
- \else
- \@EA\def\@EA#2\@EA{#2,##1}%
- \fi}%
- \let#2\empty
- \processcommalist[#1]\domakerawcommalist}
-
-\def\rawprocesscommaitem#1,#2% #2 eats up preceding space
- {\if]#1\else
- \csname\s!next\the\commalevel\endcsname{#1}%
- \expandafter\rawprocesscommaitem
- \fi#2}
-
-\def\rawprocesscommalist[#1]#2% accepteert ook [\cs]
- {\global\advance\commalevel \plusone
- \expandafter\let\csname\s!next\the\commalevel\endcsname#2%
- \expandafter\rawprocesscommaitem#1,],% \relax
- \global\advance\commalevel \minusone }
-
-\def\rawprocesscommacommand[#1]% not really needed
- {\expanded{\rawprocesscommalist[#1]}}
-
-% \def\rawdoifinsetelse#1#2{\doifinstringelse{,#1,}{,#2,}}
-% \def\rawdoifinset #1#2{\doifinstring {,#1,}{,#2,}}
-
-\def\@@rawempty{,,}
-
-\long\def\rawdoifinsetelse#1%
- {\edef\@@@instring{,#1,}% expand #1 here
- \ifx\@@@instring\@@rawempty
- \@EA\thirdofthreearguments
- \else
- \@EA\rawdodoifinsetelse
- \fi}
-
-\long\def\rawdodoifinsetelse#1%
- {\p!doifinstringelse\@@@instring{,#1,}%
- \@EA\firstoftwoarguments
- \else
- \@EA\secondoftwoarguments
- \fi}
-
-\long\def\rawdoifinset#1%
- {\edef\@@@instring{,#1,}% expand #1 here
- \ifx\@@@instring\@@rawempty
- \@EA\gobbletwoarguments
- \else
- \@EA\rawdodoifinset
- \fi}
-
-\long\def\rawdodoifinset#1%%
- {\p!doifinstringelse\@@@instring{,#1,}%
- \@EA\firstofoneargument
- \else
- \@EA\gobbleoneargument
- \fi}
-
-%D Some more raw material:
-
-\def\p!rawprocessaction[#1][#2]%
- {\def\pp!rawprocessaction##1,#1=>##2,##3\war%
- {\if##3@\else
- \def\!!processaction{##2}%
- \fi}%
- \pp!rawprocessaction,#2,#1=>,@\war}
-
-\def\rawprocessaction[#1]#2[#3]%
- {\edef\!!stringa{#1}%
- \edef\!!stringb{undefined}% better \!!undefined
- \let\!!processaction\!!stringb
- \ifx\!!stringa\empty
- \@EA\p!rawprocessaction\@EA[\s!default][#3]%
- \else
- \expandafter\p!rawprocessaction\expandafter[\!!stringa][#3]%
- \ifx\!!processaction\!!stringb
- \@EA\p!rawprocessaction\@EA[\s!unknown][#3]%
- \fi
- \fi
- \ifx\!!processaction\!!stringb
- \else
- \!!processaction
- \fi}
-
-% not needed
-%
-% \def\rawprocessallactionsinset[#1]#2[#3]%
-% {\def\docommand##1%
-% {\rawprocessaction[##1][#3]}%
-% \processcommalist[#1]\docommand}
-
-%D When we process the list \type{a,b,c,d,e}, the raw routine
-%D takes over 30\% less time, when we feed $20+$ character
-%D strings we gain about 20\%. Alternatives which use
-%D \type{\futurelet} perform worse. Part of the speedup is
-%D due to the \type{\let} and \type{\expandafter} in the test.
-
-% %D \macros
-% %D {processunexpandedcommalist}
-% %D
-% %D When processing commalists, the arguments are expanded. The
-% %D main reason for doing so lays in the fact that these
-% %D macros are used for interfacing. The next alternative can be used
-% %D for
-% %D
-% %D \starttyping
-% %D \processunexpandedcommalist
-% %D [\alfa\beta,\gamma,\delta\epsilon]
-% %D \handleitem
-% %D \stoptyping
-% %D
-% %D This time nesting is not supported.
-%
-% %\def\processunexpandedcommaitem#1,%
-% % {\if]\noexpand#1%
-% % \let\nextcommaitem\relax
-% % \else
-% % \handleunexpandedcommaitem{#1}%
-% % \let\nextcommaitem\processunexpandedcommaitem
-% \fi
-% \nextcommaitem}
-%
-% faster:
-%
-% \def\processunexpandedcommaitem#1,%
-% {\if]\noexpand#1\else
-% \handleunexpandedcommaitem{#1}%
-% \expandafter\processunexpandedcommaitem
-% \fi}
-%
-% \def\processunexpandedcommalist[#1]#2%
-% {\def\handleunexpandedcommaitem{#2}%
-% \processunexpandedcommaitem#1,],}% \relax}
-%
-% %D Or faster:
-%
-% \def\processunexpandedcommaitem#1,%
-% {\if]\noexpand#1\else
-% \handleunexpandedcommaitem{#1}%
-% \expandafter\processunexpandedcommaitem
-% \fi}
-
-%D \macros
-%D {dosetvalue,dosetevalue,dosetgvalue,docopyvalue,doresetvalue,
-%D dogetvalue}
-%D
-%D When we are going to do assignments, we have to take
-%D multi||linguality into account. For the moment we keep
-%D things simple and single||lingual.
-%D
-%D \starttyping
-%D \dosetvalue {label} {variable} {value}
-%D \dosetevalue {label} {variable} {value}
-%D \dosetgvalue {label} {variable} {value}
-%D \docopyvalue {to label} {from label} {variable}
-%D \doresetvalue {label} {variable}
-%D \stoptyping
-%D
-%D These macros are in fact auxiliary ones and are not meant
-%D for use outside the assignment macros.
-
-\def\dosetvalue#1#2% #3
- {\@EA\def\csname#1#2\endcsname} % {#3}}
-
-\def\dosetevalue#1#2% #3
- {\@EA\edef\csname#1#2\endcsname} % {#3}}
-
-\def\dosetgvalue#1#2% #3
- {\@EA\gdef\csname#1#2\endcsname} % {#3}}
-
-\def\doresetvalue#1#2%
- {\@EA\let\csname#1#2\endcsname\empty}
-
-\def\doignorevalue#1#2#3%
- {\@EA\let\csname#1#2\endcsname\empty}
-
-\def\docopyvalue#1#2#3%
- {\@EA\def\csname#1#3\endcsname{\csname#2#3\endcsname}}
-
-%D \macros
-%D {doassign,undoassign,doassignempty}
-%D
-%D Assignments are the backbone of \CONTEXT. Abhorred by the
-%D concept of style file hacking, we took a considerable effort
-%D in building a parameterized system. Unfortunately there is a
-%D price to pay in terms of speed. Compared to other packages
-%D and taking the functionality of \CONTEXT\ into account, the
-%D total size of the format file is still very acceptable. Now
-%D how are these assignments done.
-%D
-%D Assignments can be realized with:
-%D
-%D \starttyping
-%D \doassign[label][variable=value]
-%D \undoassign[label][variable=value]
-%D \stoptyping
-%D
-%D and:
-%D
-%D \starttyping
-%D \doassignempty[label][variable=value]
-%D \stoptyping
-%D
-%D Assignments like \type{\doassign} are compatible with:
-%D
-%D \starttyping
-%D \def\labelvariable{value}
-%D \stoptyping
-%D
-%D We do check for the presence of an \type{=} and loudly
-%D complain of it's missed. We will redefine this macro later
-%D on, when a more advanced message mechanism is implemented.
-
-\newif\iferrorisfatal
-
-\def\waitonfatalerror
- {\iferrorisfatal\wait\fi}
-
-\def\showassignerror#1#2%
- {\writestatus{setup}{missing or ungrouped '=' after '#1' in line #2}%
- \waitonfatalerror}
-
-%\def\p!doassign#1[#2][#3=#4=#5]%
-% {\let\donottest\dontprocesstest
-% \edef\!!stringa{#5}%
-% \let\!!stringb\relax
-% \let\donottest\doprocesstest
-% \ifx\!!stringa\!!stringb
-% \showassignerror{#3}%
-% \else
-% #1{#2}{#3}{#4}%
-% \fi}
-
-\def\p!doassign#1[#2][#3=#4=#5]%
- {\ifx\empty#3\else % and definitely not \ifx#3\empty
- \ifx\relax#5%
- \showassignerror{#3}{\the\inputlineno\space(#2)}%
- \else
- #1{#2}{#3}{#4}%
- \fi
- \fi}
-
-\def\doassign [#1][#2]{\p!doassign\dosetvalue [#1][#2==\relax]}
-\def\doeassign [#1][#2]{\p!doassign\dosetevalue [#1][#2==\relax]}
-\def\undoassign[#1][#2]{\p!doassign\doresetvalue[#1][#2==\relax]}
-
-\def\doassignempty[#1][#2=#3]%
- {\ifundefined{#1#2}\dosetvalue{#1}{#2}{#3}\fi}
-
-%D \macros
-%D {processassignmentlist,processassignmentcommand,
-%D startprocessassignmentlist,startprocessassignmentcommand}
-%D
-%D For Wolfgang:
-%D
-%D \starttyping
-%D \def\showpair#1#2{key:#1, value:#2\par}
-%D \processassignmentlist[a=1,b=2]\showpair
-%D \stoptyping
-
-\def\processassignmentlist[#1]#2% #2 == \command{key}{value]
- {\def\doprocessassignmententry##1{#2}% {##2}{##3} % namespace is ignored
- \dogetparameters\doprocessassignmententry[][#1]}
-
-\def\processassignmentcommand[#1]%
- {\normalexpanded{\noexpand\processassignmentlist[#1]}}
-
-\long\def\startprocessassignmentlist[#1]#2\stopprocessassignmentlist
- {\long\def\currentassignmentlistcommand##1##2{\def\currentassignmentlistkey{##1}\def\currentassignmentlistvalue{##2}#2}%
- \processassignmentlist[#1]\currentassignmentlistcommand}
-
-\long\def\startprocessassignmentcommand[#1]#2\stopprocessassignmentcommand
- {\long\def\currentassignmentlistcommand##1##2{\def\currentassignmentlistkey{##1}\def\currentassignmentlistvalue{##2}#2}%
- \normalexpanded{\noexpand\processassignmentlist[#1]}\currentassignmentlistcommand}
-
-%D \macros
-%D {getparameters,geteparameters,getgparameters,
-%D forgetparameters}
-%D
-%D Using the assignment commands directly is not our
-%D ideal of user friendly interfacing, so we take some further
-%D steps.
-%D
-%D \starttyping
-%D \getparameters [label] [...=...,...=...]
-% %D \forgetparameters [label] [...=...,...=...]
-%D \stoptyping
-%D
-%D Again, the label identifies the category a variable
-%D belongs to. The second argument can be a comma separated
-%D list of assignments.
-%D
-%D \starttyping
-%D \getparameters
-%D [demo]
-%D [alfa=1,
-%D beta=2]
-%D \stoptyping
-%D
-%D is equivalent to
-%D
-%D \starttyping
-%D \def\demoalfa{1}
-%D \def\demobeta{2}
-%D \stoptyping
-%D
-%D
-%D In the pre||multi||lingual stadium \CONTEXT\ took the next
-%D approach. With
-%D
-%D \starttyping
-%D \def\??demo {@@demo}
-%D \def\!!alfa {alfa}
-%D \def\!!beta {beta}
-%D \stoptyping
-%D
-%D calling
-%D
-%D \starttyping
-%D \getparameters
-%D [\??demo]
-%D [\!!alfa=1,
-%D \!!beta=2]
-%D \stoptyping
-%D
-%D lead to:
-%D
-%D \starttyping
-%D \def\@@demoalfa{1}
-%D \def\@@demobeta{2}
-%D \stoptyping
-%D
-%D Because we want to be able to distinguish the \type{!!}
-%D pre||tagged user supplied variables from internal
-%D counterparts, we will introduce a slightly different tag in
-%D the multi||lingual modules. There we will use \type{c!} or
-%D \type{v!}, depending on the context.
-%D
-%D By calling \type{\p!doassign} directly, we save ourselves
-%D some argument passing and gain some speed. Whatever
-%D optimizations we do, this command will always be one of the
-%D bigger bottlenecks.
-%D
-%D The alternative \type{\geteparameters} --- it's funny to
-%D see that this alternative saw the light so lately --- can be
-%D used to do expanded assigments.
-
-\def\dogetparameters#1[#2]#3[#4]%
- {\def\p!dogetparameter##1%
- {\p!doassign#1[#2][##1==\relax]}%
- \processcommalist[#4]\p!dogetparameter}
-
-\def\getparameters {\dogetparameters\dosetvalue}
-\def\geteparameters {\dogetparameters\dosetevalue}
-\def\getgparameters {\dogetparameters\dosetgvalue}
-\def\forgetparameters{\dogetparameters\doignorevalue}
-
-\let\getexpandedparameters=\geteparameters
-
-%D This one is slightly faster:
-
-\def\dogetparameters#1[#2]#3[#4%
- {\if\noexpand#4]%
- \expandafter\gobbleoneargument
- \else
- \def\p!dogetparameter##1{\p!doassign#1[#2][##1==\relax]}%
- \expandafter\xdogetparameters
- \fi#4}
-
-\def\xdogetparameters#1]%
- {\processcommalist[#1]\p!dogetparameter}
-
-%D The next alternative is much faster but also uglier. Because
-%D in \XML\ processing we will probably set much more parameters
-%D than normally we need this faster one.
-
-\def\dogetparameters#1[#2]#3[#4%
- {\if\noexpand#4]%
- \expandafter\gobbleoneargument
- \else
- \def\p!dogetparameter{\p!doassign#1#2}%
- \expandafter\xdogetparameters
- \fi#4}
-
-\def\xdogetparameters#1]%
- {\xprocesscommaitem#1,],\@relax@}
-
-% \long\def\xprocesscommaitem#1,#2% #2 takes space before ,
-% {\if]#1%
-% \expandafter\gobbleoneargument
-% \else
-% \p!dogetparameter\@relax@#1==\@relax@
-% \expandafter\xprocesscommaitem
-% \fi#2}
-
-\long\def\xprocesscommaitem#1,#2% #2 takes space before ,
- {\if,#1,% dirty trick for testing #1=empty
- \@EA\xprocesscommaitem
- \else\if]#1%
- \@EAEAEA\gobbleoneargument
- \else
- \p!dogetparameter\@relax@#1==\empty\@relax@
- \@EAEAEA\xprocesscommaitem
- \fi\fi#2}
-
-%D Here we use a slightly different assignment macro:
-
-% \def\p!doassign#1#2\@relax@#3=#4=#5\@relax@
-% {\ifx\@relax@#5\@EA\xshowassignerror\else\@EA#1\fi{#2}{#3}{#4}}
-
-% \def\p!doassign#1#2\@relax@#3=#4=#5\@relax@
-% {\ifx#5\empty\@EA\xshowassignerror\else\@EA#1\fi{#2}{#3}{#4}}
-
-\def\p!doassign#1#2\@relax@#3=#4=#5#6\@relax@
- {\ifx#5\empty
- \@EA\xshowassignerror
- \else\ifx#5=%
- \@EAEAEA#1%
- \else
- \@EAEAEA\xshowassignerror
- \fi\fi
- {#2}{#3}{#4}}
-
-\def\xshowassignerror#1#2#3%
- {\showassignerror{#2}{\the\inputlineno\space(#1)}}
-
-%D Now we also have to change the other macros that depend
-%D on this low level one.
-
-% \def\doassign [#1][#2]{\p!doassign\dosetvalue #1\@relax@#2==\@relax@}
-% \def\doeassign [#1][#2]{\p!doassign\dosetevalue #1\@relax@#2==\@relax@}
-% \def\undoassign[#1][#2]{\p!doassign\doresetvalue#1\@relax@#2==\@relax@}
-
-\def\doassign [#1][#2]{\p!doassign\dosetvalue #1\@relax@#2==\empty\@relax@}
-\def\doeassign [#1][#2]{\p!doassign\dosetevalue #1\@relax@#2==\empty\@relax@}
-\def\undoassign[#1][#2]{\p!doassign\doresetvalue#1\@relax@#2==\empty\@relax@}
-
-%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}}
-
-\def\p!n!doassign#1#2\@relax@#3=#4=#5#6\@relax@
- {\ifx\empty#3\empty
- \@EA\xshowassignerror
- \else\ifx#5\empty
- \@EAEAEA\xshowassignerror
- \else
- \@EAEAEA#1%
- \fi\fi
- {#2}{#3}{#4}}
-
-\beginTEX
-
-% \def\p!e!doassign#1#2\@relax@#3=#4=#5#6\@relax@
-% {\ifx#5\empty
-% \@EA\xshowassignerror
-% \else\ifx#5=%
-% \@EA\ifx\csname#2#3\endcsname\relax
-% \let\currentvalue\empty
-% \else
-% \@EA\let\@EA\currentvalue\csname#2#3\endcsname
-% \fi
-% \@EAEAEA#1%
-% \else
-% \@EAEAEA\xshowassignerror
-% \fi\fi
-% {#2}{#3}{#4}}
-
-\def\p!e!doassign#1#2\@relax@#3=#4=#5#6\@relax@
- {\ifx\empty#3\empty
- \@EA\xshowassignerror
- \else\ifx#5\empty
- \@EAEAEA\xshowassignerror
- \else
- \@EA\ifx\csname#2#3\endcsname\relax
- \let\currentvalue\empty
- \else
- \@EA\let\@EA\currentvalue\csname#2#3\endcsname
- \fi
- \@EAEAEA#1%
- \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}}
-
-\def\p!e!doassign#1#2\@relax@#3=#4=#5#6\@relax@
- {\ifx\empty#3\empty
- \@EA\xshowassignerror
- \else\ifx#5\empty
- \@EAEAEA\xshowassignerror
- \else
- \ifcsname#2#3\endcsname
- \@EA\let\@EA\currentvalue\csname#2#3\endcsname
- \else
- \let\currentvalue\empty
- \fi
- \@EAEAEA#1%
- \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
-%D Sometimes we explicitly want variables to default to an
-%D empty string, so we welcome:
-%D
-%D \starttyping
-%D \getemptyparameters [label] [...=...,...=...]
-%D \stoptyping
-
-\def\getemptyparameters[#1]#2[#3]%
- {\def\p!dogetemptyparameter##1%
- {\doassignempty[#1][##1]}%
- \processcommalist[#3]\p!dogetemptyparameter}
-
-%D \macros
-%D {copyparameters}
-%D
-%D Some \CONTEXT\ commands take their default setups from
-%D others. All commands that are able to provide backgounds
-%D or rules around some content, for instance default to the
-%D standard command for ruled boxes. Is situations like this
-%D we can use:
-%D
-%D \starttyping
-%D \copyparameters [to-label] [from-label] [name1,name2,...]
-%D \stoptyping
-%D
-%D For instance
-%D
-%D \starttyping
-%D \copyparameters
-%D [internal][external]
-%D [alfa,beta]
-%D \stoptyping
-%D
-%D Leads to:
-%D
-%D \starttyping
-%D \def\internalalfa {\externalalfa}
-%D \def\internalbeta {\externalbeta}
-%D \stoptyping
-%D
-%D By using \type{\docopyvalue} we've prepared this command
-%D for use in a multi||lingual environment.
-
-\def\copyparameters[#1]#2[#3]#4[#5]%
- {\doifnot{#1}{#3}
- {\def\docopyparameter{\docopyvalue{#1}{#3}}%
- %\def\docopyparameter##1{\docopyvalue{#1}{#3}{##1}}%
- \processcommalist[#5]\docopyparameter}}
-
-%D \macros
-%D {ifparameters,checkparameters}
-%D
-%D A slightly different one is \type{\checkparameters}, which
-%D also checks on the presence of a~\type{=}.
-%D
-%D The boolean \type{\ifparameters} can be used afterwards.
-%D Combining both in one \type{\if}||macro would lead to
-%D problems with nested \type{\if}'s.
-%D
-%D \starttyping
-%D \checkparameters[argument]
-%D \stoptyping
-
-\newif\ifparameters
-
-\def\p!checkparameters#1=#2#3\war%
- {\if#2@\parametersfalse\else\parameterstrue\fi}
-
-\def\checkparameters[#1]%
- {\p!checkparameters#1=@@\war}
-
-%D \macros
-%D {getfromcommalist,getfromcommacommand,
-%D commalistelement,
-%D getcommalistsize,getcommacommandsize}
-%D
-%D It's possible to get an element from a commalist or a
-%D command representing a commalist.
-%D
-%D \starttyping
-%D \getfromcommalist [string] [n]
-%D \getfromcommacommand [string,\strings,string,...] [n]
-%D \stoptyping
-%D
-%D The difference betwee the two of them is the same as the
-%D difference between \type{\processcomma...}. The found string
-%D is stored in \type{\commalistelement}.
-%D
-%D We can calculate the size of a comma separated list by
-%D using:
-%D
-%D \starttyping
-%D \getcommalistsize [string,string,...]
-%D \getcommacommandsize [string,\strings,string,...]
-%D \stoptyping
-%D
-%D Afterwards, the length is available in the macro
-%D \type{\commalistsize} (not a \COUNTER).
-
-\newcount\commalistcounter
-
-\def\commalistsize{0}
-
-\def\p!dogetcommalistsize#1%
- {\advance\commalistcounter\plusone}
-
-\def\getcommalistsize#1]% don't loose [{#1}]
- {\commalistcounter\zerocount
- \processcommalist#1]\p!dogetcommalistsize % was [{#1}]
- \edef\commalistsize{\the\commalistcounter}}
-
-\def\getcommacommandsize[#1]%
- {\edef\commacommand{#1}%
- \scratchtoks\expandafter{\expandafter[\commacommand]}%
- \expandafter\getcommalistsize\the\scratchtoks }
-
-% to be tested first
-%
-% \def\getcommacommandsize[#1]%
-% {\expanded{\getcommalistsize[#1]}}
-
-% \def\p!dogetfromcommalist#1%
-% {\advance\commalistcounter \minusone
-% \ifcase\commalistcounter
-% \def\commalistelement{#1}%
-% \begingroup\def\doprocesscommaitem##1]{\endgroup}%
-% \fi}
-
-\def\p!dogetfromcommalist#1%
- {\advance\commalistcounter \minusone
- \ifcase\commalistcounter
- \def\commalistelement{#1}%
- \expandafter\quitcommalist
- \fi}
-
-\def\getfromcommalist[#1]#2[#3]%
- {\let\commalistelement\empty
- \commalistcounter#3\relax
- \processcommalist[#1]\p!dogetfromcommalist}
-
-% \def\getfromcommacommand[#1]% why so complicated, still needed?
-% {\edef\commacommand{#1}%
-% \toks0=\expandafter{\expandafter[\commacommand]}%
-% \expandafter\getfromcommalist\the\toks0 }
-
-\def\getfromcommacommand[#1]%
- {\expanded{\getfromcommalist[#1]}}
-
-%D Because 0, 1 and~2 are often asked for, we optimize this
-%D macro for those cases. The indirect call however slows
-%D down the other cases.
-%D
-%D \starttyping
-%D \def\p!dogetfirstfromcommalist [#1,#2]{\def\commalistelement{#1}}
-%D \def\p!dogetsecondfromcommalist[#1,#2,#3]{\def\commalistelement{#2}}
-%D \let\p!dogetotherfromcommalist=\getfromcommalist
-%D
-%D \def\getfromcommalist[#1]#2[#3]% optimized for 0,1,2
-%D {\ifcase#3\relax
-%D \let\commalistelement\empty
-%D \or
-%D \p!dogetfirstfromcommalist[#1,]%
-%D \or
-%D \p!dogetsecondfromcommalist[#1,,]%
-%D \else
-%D \p!dogetotherfromcommalist[#1][#3]%
-%D \fi}
-%D \stoptyping
-%D
-%D Even worse, this alternative does not strip preceding
-%D spaces, which is what we want. So, we stick to the slow
-%D alternative.
-
-%D Watertight (and efficient) solutions are hard to find, due
-%D to the handling of braces during parameters passing and
-%D scanning. Nevertheless:
-%D
-%D \startbuffer
-%D \def\dosomething#1{(#1=\commalistsize) }
-%D
-%D \getcommalistsize [\hbox{$a,b,c,d,e,f$}] \dosomething 1
-%D \getcommalistsize [{a,b,c,d,e,f}] \dosomething 1
-%D \getcommalistsize [{a,b,c},d,e,f] \dosomething 4
-%D \getcommalistsize [a,b,{c,d,e},f] \dosomething 4
-%D \getcommalistsize [a{b,c},d,e,f] \dosomething 4
-%D \getcommalistsize [{a,b}c,d,e,f] \dosomething 4
-%D \getcommalistsize [] \dosomething 0
-%D \getcommalistsize [{[}] \dosomething 1
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D reports:
-%D
-%D \getbuffer
-
-%D \macros
-%D {dogetcommalistelement,dogetcommacommandelement}
-%D
-%D For low level (fast) purposes, we can also use the next
-%D alternative, which can handle 8~elements at most.
-%D
-%D \starttyping
-%D \dogetcommalistelement1\from a,b,c\to\commalistelement
-%D \stoptyping
-
-\def\dodogetcommalistelement#1\from#2,#3,#4,#5,#6,#7,#8\to#9%
- {\edef#9{\ifcase#1\relax\or#2\or#3\or#4\or#5\or#6\or#7\or#8\fi}}
-
-% maybe better:
-%
-% {\@EA\edef\@EA#9\@EA{\ifcase#1\relax\or#2\or#3\or#4\or#5\or#6\or#7\or#8\fi}}
-
-\def\dogetcommalistelement#1\from#2\to%
- {\dodogetcommalistelement#1\from#2,,,,,,\to}
-
-% check sources
-
-\def\dogetcommacommandelement#1\from#2\to%
- {\@EA\dodogetcommalistelement\@EA#1\@EA\from#2,,,,,,\to}
-
-%D \macros
-%D {dosingleargument,dodoubleargument,dotripleargument,
-%D doquadrupleargument,doquintupleargument,dosixtupleargument,
-%D doseventupleargument}
-%D
-%D When working with delimited arguments, spaces and
-%D lineendings can interfere. The next set of macros uses
-%D \TEX' internal scanner for grabbing everything between
-%D arguments. Forgive me the funny names.
-%D
-%D \starttyping
-%D \dosingleargument\commando = \commando[#1]
-%D \dodoubleargument\commando = \commando[#1][#2]
-%D \dotripleargument\commando = \commando[#1][#2][#3]
-%D \doquadrupleargument\commando = \commando[#1][#2][#3][#4]
-%D \doquintupleargument\commando = \commando[#1][#2][#3][#4][#5]
-%D \dosixtupleargument\commando = \commando[#1][#2][#3][#4][#5][#6]
-%D \doseventupleargument\command= \commando[#1][#2][#3][#4][#5][#6][#7]
-%D \stoptyping
-%D
-%D These macros are used in the following way:
-%D
-%D \starttyping
-%D \def\dosetupsomething[#1][#2]%
-%D {... #1 ... #2 ...}
-%D
-%D \def\setupsomething%
-%D {\dodoubleargument\dosetupsomething}
-%D \stoptyping
-%D
-%D The implementation can be surprisingly simple and needs no
-%D further explanation, like:
-%D
-%D \starttyping
-%D \def\dosingleargument#1[#2]%
-%D {#1[#2]}
-%D \def\dotripleargument#1[#2]#3[#4]#5[#6]%
-%D {#1[#2][#4][#6]}
-%D \def\doquintupleargument#1%
-%D {\def\dodoquintupleargument[##1]##2[##3]##4[##5]##6[##7]##8[##9]%
-%D {#1[##1][##3][##5][##7][##9]}%
-%D \dodoquintupleargument}
-%D \stoptyping
-%D
-%D Because \TEX\ accepts 9~arguments at most, we have to use
-%D two||step solution when getting five or more arguments.
-%D
-%D When developing more and more of the real \CONTEXT, we
-%D started using some alternatives that provided empty
-%D arguments (in fact optional ones) whenever the user failed
-%D to supply them. Because this more complicated macros enable
-%D us to do some checking, we reimplemented the non||empty
-%D ones.
-
-\def\dosingleargument {\chardef\expectedarguments 1 \dosingleempty }
-\def\dodoubleargument {\chardef\expectedarguments 2 \dodoubleempty }
-\def\dotripleargument {\chardef\expectedarguments 3 \dotripleempty }
-\def\doquadrupleargument {\chardef\expectedarguments 4 \doquadrupleempty }
-\def\doquintupleargument {\chardef\expectedarguments 5 \doquintupleempty }
-\def\dosixtupleargument {\chardef\expectedarguments 6 \dosixtupleempty }
-\def\doseventupleargument{\chardef\expectedarguments 7 \doseventupleempty}
-
-%D \macros
-%D {iffirstagument,ifsecondargument,ifthirdargument,
-%D iffourthargument,iffifthargument,ifsixthargument,
-%D ifseventhargument}
-%D
-%D We use some signals for telling the calling macros if all
-%D wanted arguments are indeed supplied by the user.
-
-\newif\iffirstargument
-\newif\ifsecondargument
-\newif\ifthirdargument
-\newif\iffourthargument
-\newif\iffifthargument
-\newif\ifsixthargument
-\newif\ifseventhargument
-
-%D \macros
-%D {dosingleempty,dodoubleempty,dotripleempty,
-%D doquadrupleempty,doquintupleempty,dosixtupeempty,
-%D doseventupleempty}
-%D
-%D The empty argument supplying macros mentioned before, look
-%D like:
-%D
-%D \starttyping
-%D \dosingleempty \command
-%D \dodoubleempty \command
-%D \dotripleempty \command
-%D \doquadrupleempty \command
-%D \doquintupleempty \command
-%D \dosixtupleempty \command
-%D \doseventupleempty\command
-%D \stoptyping
-%D
-%D So \type{\dodoubleempty} leades to:
-%D
-%D \starttyping
-%D \command[#1][#2]
-%D \command[#1][]
-%D \command[][]
-%D \stoptyping
-%D
-%D Depending of the generousity of the user. Afterwards one can
-%D use the \type{\if...argument} boolean. For novice: watch
-%D the stepwise doubling of \type{#}'s
-
-% idea: \ignorespaces afterwards
-
-\chardef\noexpectedarguments=0
-\chardef\expectedarguments =0
-
-\def\showargumenterror#1#2%
- {\writestatus{systems}{#1 argument(s) expected in line #2}}
-
-% \long\def\dogetargument#1#2#3#4% redefined in mult-ini
-% {\doifnextcharelse{#1}
-% {\let\expectedarguments\noexpectedarguments
-% #3\dodogetargument}
-% {\ifnum\expectedarguments>\noexpectedarguments
-% \showargumenterror{\expectedarguments}
-% \fi
-% \let\expectedarguments\noexpectedarguments
-% #4\dodogetargument#1#2}}
-%
-% less to pass
-
-\def\doshowargumenterror
- {\ifnum\expectedarguments>\noexpectedarguments
- \showargumenterror{\number\expectedarguments}{\number\inputlineno}%
- \fi
- \noshowargumenterror}
-
-\def\noshowargumenterror
- {\let\expectedarguments\noexpectedarguments}
-
-% \long\def\dogetargument#1#2#3#4%
-% {\doifnextcharelse#1%
-% {\noshowargumenterror#3\dodogetargument}
-% {\doshowargumenterror#4\dodogetargument#1#2}}
-%
-% faster ?
-
-\long\def\dogetargument#1#2#3#4%
- {\let\charactertoken=#1%
- \def\!!stringa{\noshowargumenterror#3\dodogetargument}%
- \def\!!stringb{\doshowargumenterror#4\dodogetargument#1#2}%
- \futurelet\nexttoken\inspectnextcharacter}
-
-\def\getsingleempty#1#2#3%
- {\def\dodogetargument%
- {#3}%
- \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
-
-\def\getdoubleempty#1#2#3%
- {\def\dodogetargument#1##1#2%
- {\def\dodogetargument%
- {#3#1{##1}#2}%
- \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
- \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
-
-\def\gettripleempty#1#2#3%
- {\def\dodogetargument#1##1#2%
- {\def\dodogetargument#1####1#2%
- {\def\dodogetargument%
- {#3#1{##1}#2%
- #1{####1}#2}%
- \dogetargument#1#2\thirdargumenttrue\thirdargumentfalse}%
- \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
- \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
-
-\def\getquadrupleempty#1#2#3%
- {\def\dodogetargument#1##1#2%
- {\def\dodogetargument#1####1#2%
- {\def\dodogetargument#1########1#2%
- {\def\dodogetargument%
- {#3#1{##1}#2%
- #1{####1}#2%
- #1{########1}#2}%
- \dogetargument#1#2\fourthargumenttrue\fourthargumentfalse}%
- \dogetargument#1#2\thirdargumenttrue\thirdargumentfalse}%
- \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
- \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
-
-\def\getquintupleempty#1#2#3%
- {\def\dodogetargument#1##1#2%
- {\def\dodogetargument#1####1#2%
- {\def\dodogetargument#1########1#2%
- {\def\dodogetargument#1################1#2%
- {\def\dodogetargument%
- {#3#1{##1}#2%
- #1{####1}#2%
- #1{########1}#2%
- #1{################1}#2}%
- \dogetargument#1#2\fifthargumenttrue\fifthargumentfalse}%
- \dogetargument#1#2\fourthargumenttrue\fourthargumentfalse}%
- \dogetargument#1#2\thirdargumenttrue\thirdargumentfalse}%
- \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
- \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
-
-\def\getsixtupleempty#1#2#3%
- {\def\dodogetargument#1##1#2%
- {\def\dodogetargument#1####1#2%
- {\def\dodogetargument#1########1#2%
- {\def\dodogetargument#1################1#2%
- {\def\dodogetargument#1################################1#2%
- {\def\dodogetargument%
- {#3#1{##1}#2%
- #1{####1}#2%
- #1{########1}#2%
- #1{################1}#2%
- #1{################################1}#2}%
- \dogetargument#1#2\sixthargumenttrue\sixthargumentfalse}%
- \dogetargument#1#2\fifthargumenttrue\fifthargumentfalse}%
- \dogetargument#1#2\fourthargumenttrue\fourthargumentfalse}%
- \dogetargument#1#2\thirdargumenttrue\thirdargumentfalse}%
- \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
- \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
-
-\def\getseventupleempty#1#2#3%
- {\def\dodogetargument#1##1#2%
- {\def\dodogetargument#1####1#2%
- {\def\dodogetargument#1########1#2%
- {\def\dodogetargument#1################1#2%
- {\def\dodogetargument#1################################1#2%
- {\def\dodogetargument#1################################%
- ################################1#2%
- {\def\dodogetargument%
- {#3#1{##1}#2%
- #1{####1}#2%
- #1{########1}#2%
- #1{################1}#2%
- #1{################################1}#2%
- #1{################################%
- ################################1}#2}%
- \dogetargument#1#2\seventhargumenttrue\seventhargumentfalse}%
- \dogetargument#1#2\sixthargumenttrue\sixthargumentfalse}%
- \dogetargument#1#2\fifthargumenttrue\fifthargumentfalse}%
- \dogetargument#1#2\fourthargumenttrue\fourthargumentfalse}%
- \dogetargument#1#2\thirdargumenttrue\thirdargumentfalse}%
- \dogetargument#1#2\secondargumenttrue\secondargumentfalse}%
- \dogetargument#1#2\firstargumenttrue\firstargumentfalse}
-
-\def\dosingleempty {\getsingleempty []}
-\def\dodoubleempty {\getdoubleempty []}
-\def\dotripleempty {\gettripleempty []}
-\def\doquadrupleempty {\getquadrupleempty []}
-\def\doquintupleempty {\getquintupleempty []}
-\def\dosixtupleempty {\getsixtupleempty []}
-\def\doseventupleempty{\getseventupleempty[]}
-
-%D Because some of these are called quite often, we will now
-%D replace the more general version by alternatives tuned for
-%D speed.
-
-\def\dosingleempty#1%
- {\noshowargumenterror % \relax % prevents lookahead, brr
- \doifnextoptionalelse
- {\firstargumenttrue#1}
- {\dosinglefakeempty#1}}
-
-\def\dodoubleempty#1%
- {\noshowargumenterror % \relax % prevents lookahead, brr
- \doifnextoptionalelse
- {\dodoubletestempty#1}
- {\dodoublefakeempty#1}}
-
-\def\dotripleempty#1%
- {\noshowargumenterror % \relax % prevents lookahead, brr
- \doifnextoptionalelse
- {\dotripletestempty#1}
- {\dotriplefakeempty#1}}
-
-\def\dosinglefakeempty#1%
- {\firstargumentfalse#1[]}
-
-\def\dodoublefakeempty#1%
- {\firstargumentfalse\secondargumentfalse#1[][]}
-
-\def\dotriplefakeempty#1%
- {\firstargumentfalse\secondargumentfalse\thirdargumentfalse#1[][][]}
-
-\long\def\dodoubletestempty#1[#2]%
- {\firstargumenttrue
- \doifnextoptionalelse
- {\secondargumenttrue #1[{#2}]}
- {\secondargumentfalse#1[{#2}][]}}
-
-\long\def\dotripletestempty#1[#2]%
- {\firstargumenttrue
- \doifnextoptionalelse
- {\dotripletestemptyx #1[{#2}]}
- {\secondargumentfalse
- \thirdargumentfalse #1[{#2}][][]}}
-
-\long\def\dotripletestemptyx#1[#2][#3]%
- {\secondargumenttrue
- \doifnextoptionalelse
- {\thirdargumenttrue #1[{#2}][{#3}]}
- {\thirdargumentfalse#1[{#2}][{#3}][]}}
-
-%D \macros
-%D {strippedcsname}
-%D
-%D The next macro can be very useful when using \type{\csname}
-%D like in:
-%D
-%D \starttyping
-%D \csname if\strippedcsname\something\endcsname
-%D \stoptyping
-%D
-%D This expands to \type{\ifsomething}.
-
-\def\strippedcsname%
- {\expandafter\gobbleoneargument\string}
-
-%D \macros
-%D {complexorsimple,complexorsimpleempty}
-%D
-%D Setups can be optional. A command expecting a setup is
-%D prefixed by \type{\complex}, a command without one gets the
-%D prefix \type{\simple}. Commands like this can be defined by:
-%D
-%D \starttyping
-%D \complexorsimple\command
-%D \stoptyping
-%D
-%D When \type{\command} is followed by a \type{[setup]}, then
-%D
-%D \starttyping
-%D \complexcommand [setup]
-%D \stoptyping
-%D
-%D executes, else we get
-%D
-%D \starttyping
-%D \simplecommand
-%D \stoptyping
-%D
-%D An alternative for \type{\complexorsimple} is:
-%D
-%D \starttyping
-%D \complexorsimpleempty {command}
-%D \stoptyping
-%D
-%D Depending on the presence of \type{[setup]}, this one
-%D leads to one of:
-%D
-%D \starttyping
-%D \complexcommando [setup]
-%D \complexcommando []
-%D \stoptyping
-%D
-%D Many \CONTEXT\ commands started as complex or simple ones,
-%D but changed into more versatile (more object oriented) ones
-%D using the \type{\get..argument} commands.
-
-% This method is needed when traditional tex is used with
-% the efficient definition (marked **) below.
-
-% an old one:
-%
-% \def\setnameofcommand#1% handles {abc} as well as \abc
-% {\begingroup
-% \escapechar=-1
-% \globaldefs=0 % pretty important!
-% \xdef\nameofcommand{\string#1}%
-% \endgroup}
-%
-% \def\complexorsimple#1%
-% {\setnameofcommand{#1}%
-% \doifnextcharelse{[}
-% {\firstargumenttrue \getvalue{\s!complex\nameofcommand}}
-% {\firstargumentfalse\getvalue{\s!simple \nameofcommand}}}
-%
-% \def\complexorsimpleempty#1%
-% {\setnameofcommand{#1}%
-% \doifnextcharelse{[}
-% {\firstargumenttrue \getvalue{\s!complex\nameofcommand}}
-% {\firstargumentfalse\getvalue{\s!complex\nameofcommand}[]}}
-%
-% a newer one:
-
-\def\complexorsimple#1%
- {% \relax % prevents lookahead, brrr
- \doifnextoptionalelse
- {\firstargumenttrue \csname\s!complex\strippedcsname#1\endcsname}
- {\firstargumentfalse\csname\s!simple \strippedcsname#1\endcsname}}
-
-\def\complexorsimpleempty#1%
- {% \relax % prevents lookahead, brrr
- \doifnextoptionalelse
- {\firstargumenttrue \csname\s!complex\strippedcsname#1\endcsname}
- {\firstargumentfalse\csname\s!complex\strippedcsname#1\endcsname[]}}
-
-%D \macros
-%D {definecomplexorsimple,definecomplexorsimpleempty}
-%D
-%D The previous commands are used that often that we found it
-%D worthwile to offer two more alternatives. Watch the build
-%D in protection.
-
-% See earlier. Because we don't want \type {\simple..} and
-% \type {\complex..} commands to show up in expansions, we need
-% to pass them as \type {simple..} and \type {complex..}.
-
-% \beginTEX
-%
-% \def\definewithnameofcommand#1#2%
-% {\setnameofcommand{#2}%
-% \@EA\def\@EA#2\@EA{\@EA\donottest\@EA#1\@EA{\nameofcommand}}}
-%
-% \def\definecomplexorsimple%
-% {\definewithnameofcommand\complexorsimple}
-%
-% \def\definecomplexorsimpleempty%
-% {\definewithnameofcommand\complexorsimpleempty}
-%
-% \endTEX
-%
-% \beginETEX \protected
-%
-% \def\definecomplexorsimple#1%
-% {\normalprotected\def#1{\complexorsimple#1}}
-%
-% \def\definecomplexorsimpleempty#1%
-% {\normalprotected\def#1{\complexorsimpleempty#1}}
-%
-% \endETEX
-
-% However, since this one uses an idirect method, things go
-% okay (at the cost of extra macros).
-
-% \def\definecomplexorsimple#1%
-% {\unexpanded\def#1{\complexorsimple#1}}
-%
-% \def\definecomplexorsimpleempty#1%
-% {\unexpanded\def#1{\complexorsimpleempty#1}}
-%
-% faster, since no \strippedcsname needed in call, but more spacy
-
-\def\docomplexorsimple#1#2%
- {\doifnextoptionalelse{\firstargumenttrue#1}{\firstargumentfalse#2}}
-
-\def\docomplexorsimpleempty#1%
- {\doifnextoptionalelse{\firstargumenttrue#1}{\firstargumentfalse#1[]}}
-
-\def\definecomplexorsimple#1%
- {\unexpanded\edef#1%
- {\noexpand\docomplexorsimple
- \@EA\noexpand\csname\s!complex\strippedcsname#1\endcsname
- \@EA\noexpand\csname\s!simple \strippedcsname#1\endcsname}}
-
-\def\definecomplexorsimpleempty#1%
- {\unexpanded\edef#1%
- {\noexpand\docomplexorsimpleempty
- \@EA\noexpand\csname\s!complex\strippedcsname#1\endcsname}}
-
-%D These commands are called as:
-%D
-%D \starttyping
-%D \definecomplexorsimple\command
-%D \stoptyping
-%D
-%D Of course, we must have available
-%D
-%D \starttyping
-%D \def\complexcommand[#1]{...}
-%D \def\simplecommand {...}
-%D \stoptyping
-%D
-%D Using this construction saves a few string now and then.
-
-%D \macros
-%D {definestartstopcommand}
-%D
-%D Those who get the creeps of expansion may skip the next
-%D one. It's one of the most recent additions and concerns
-%D \type{\start}||\type{\stop} pairs with complicated
-%D arguments.
-%D
-%D We won't go into details here, but the general form of
-%D this using this command is:
-%D
-%D \starttyping
-%D \definestartstopcommand\somecommand\e!specifier{arg}{arg}%
-%D {do something with arg}
-%D \stoptyping
-%D
-%D This expands to something like:
-%D
-%D \starttyping
-%D \def\somecommand arg \startspecifier arg \stopspecifier%
-%D {do something with arg}
-%D \stoptyping
-%D
-%D The arguments can be anything reasonable, but double
-%D \type{#}'s are needed in the specification part, like:
-%D
-%D \starttyping
-%D \definestartstopcommand\somecommand\e!specifier{[##1][##2]}{##3}%
-%D {do #1 something #2 with #3 arg}
-%D \stoptyping
-%D
-%D which becomes:
-%D
-%D \starttyping
-%D \def\somecommand[#1][#2]\startspecifier#3\stopspecifier%
-%D {do #1 something #2 with #3 arg}
-%D \stoptyping
-%D
-%D We will see some real applications of this command in the
-%D core modules.
-
-\def\definestartstopcommand#1#2#3#4% can be done with \expanded ot better, toks
- {\def\!stringa{#3}% % but let's keep this unused one crappy
- \def\!stringb{\e!start#2}%
- \def\!stringc{#4}%
- \def\!stringd{\e!stop#2}%
- \@EA\@EA\@EA\@EA\@EA\@EA\@EA\@EA\@EA\@EA\@EA\@EA\@EA\@EA\@EA
- \def\@EA\@EA\@EA\@EA\@EA\@EA\@EA\@EA\@EA\@EA\@EA\@EA\@EA\@EA\@EA
- #1\@EA\@EA\@EA\@EA\@EA\@EA\@EA
- \!stringa\@EA\@EA\@EA
- \csname\@EA\@EA\@EA\!stringb\@EA\@EA\@EA\endcsname\@EA
- \!stringc
- \csname\!stringd\endcsname}
-
-%D \macros
-%D {dosinglegroupempty,dodoublegroupempty,dotriplegroupempty,
-%D doquadruplegroupempty, doquintuplegroupempty}
-%D
-%D We've already seen some commands that take care of
-%D optional arguments between \type{[]}. The next two commands
-%D handle the ones with \type{{}}. They are called as:
-%D
-%D \starttyping
-%D \dosinglegroupempty \ineedONEargument
-%D \dodoublegroupempty \ineedTWOarguments
-%D \dotriplegroupempty \ineedTHREEarguments
-%D \doquadruplegroupempty \ineedFOURarguments
-%D \doquintuplegroupempty \ineedFIVEarguments
-%D \stoptyping
-%D
-%D where \type{\ineedONEargument} takes one and the others
-%D two and three arguments. These macro's were first needed in
-%D \PPCHTEX.
-%D
-%D \starttyping
-%D \def\dogetgroupargument#1#2% redefined in mult-ini
-%D {\def\nextnextargument%
-%D {\ifx\nextargument\bgroup
-%D \let\expectedarguments\noexpectedarguments
-%D \def\nextargument{#1\dodogetargument}%
-%D %\else\ifx\nextargument\lineending % this can be an option
-%D % \def\nextargument{\begingroup\def\\ {\endgroup\dogetgroupargument#1#2}\\}%
-%D %\else\ifx\nextargument\blankspace % but it may never be default
-%D % \def\nextargument{\begingroup\def\\ {\endgroup\dogetgroupargument#1#2}\\}%
-%D \else
-%D \ifnum\expectedarguments>\noexpectedarguments
-%D \writestatus
-%D {setup}
-%D {\the\expectedarguments\space argument(s) expected
-%D in line \the\inputlineno\space}%
-%D \fi
-%D \let\expectedarguments\noexpectedarguments
-%D \def\nextargument{#2\dodogetargument{}}%
-%D \fi%\fi\fi % so let's get rid of it
-%D \nextargument}%
-%D \futurelet\nextargument\nextnextargument}
-%D \stoptyping
-%D
-%D In order to catch \type {\nextargument}'s that expand to
-%D \type {\if} and friends, in practice we will use a
-%D slightly more complicated macro.
-
-\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
- \the\everyrobusttest}
-
-\let\endrobusttest\endgroup
-
-%D We can add additional definitions later when we have defined
-%D \type {\appendtoks}.
-
-\def \permitspacesbetweengroups{\chardef\@@permitspacesbetweengroups=0 }
-\def\dontpermitspacesbetweengroups{\chardef\@@permitspacesbetweengroups=1 }
-
-\dontpermitspacesbetweengroups
-
-% \def\dogetgroupargument#1#2%
-% {\def\nextnextargument%
-% {\normalifx\nextargument\bgroup
-% \endrobusttest
-% \noshowargumenterror
-% \def\nextargument{#1\dodogetargument}%
-% \normalelse
-% \normalifcase\@@permitspacesbetweengroups
-% \normalifx\nextargument\lineending
-% \endrobusttest
-% \def\nextargument{\begingroup\def\\ {\endgroup\dogetgroupargument#1#2}\\}%
-% \normalelse\normalifx\nextargument\blankspace
-% \endrobusttest
-% \def\nextargument{\begingroup\def\\ {\endgroup\dogetgroupargument#1#2}\\}%
-% \normalelse
-% \endrobusttest
-% \doshowargumenterror
-% \def\nextargument{#2\dodogetargument{}}%
-% \normalfi\normalfi
-% \normalelse
-% \endrobusttest
-% \doshowargumenterror
-% \def\nextargument{#2\dodogetargument{}}%
-% \normalfi
-% \normalfi
-% \nextargument}%
-% \beginrobusttest
-% \futurelet\nextargument\nextnextargument}
-
-\def\dodogetgroupargument
- {\normalifx\nextargument\bgroup
- \endrobusttest
- \noshowargumenterror
- \def\nextargument{\dogroupargumentyes\dodogetargument}%
- \normalelse
- \normalifcase\@@permitspacesbetweengroups
- \normalifx\nextargument\lineending
- \endrobusttest
- \def\nextargument{\begingroup\def\\ {\endgroup\dogetgroupargument\dogroupargumentyes\dogroupargumentnop}\\}%
- \normalelse\normalifx\nextargument\blankspace
- \endrobusttest
- \def\nextargument{\begingroup\def\\ {\endgroup\dogetgroupargument\dogroupargumentyes\dogroupargumentnop}\\}%
- \normalelse
- \endrobusttest
- \doshowargumenterror
- \def\nextargument{\dogroupargumentnop\dodogetargument{}}%
- \normalfi\normalfi
- \normalelse
- \endrobusttest
- \doshowargumenterror
- \def\nextargument{\dogroupargumentnop\dodogetargument{}}%
- \normalfi
- \normalfi
- \nextargument}%
-
-\def\dogetgroupargument#1#2%
- {\let\dogroupargumentyes#1%
- \let\dogroupargumentnop#2%
- \beginrobusttest\futurelet\nextargument\dodogetgroupargument}
-
-\def\dosinglegroupempty#1%
- {\def\dodogetargument%
- {\dontpermitspacesbetweengroups
- #1}%
- \dogetgroupargument\firstargumenttrue\firstargumentfalse}
-
-\def\dodoublegroupempty#1%
- {\def\dodogetargument##1%
- {\def\dodogetargument%
- {\dontpermitspacesbetweengroups
- #1{##1}}%
- \dogetgroupargument\secondargumenttrue\secondargumentfalse}%
- \dogetgroupargument\firstargumenttrue\firstargumentfalse}
-
-\def\dotriplegroupempty#1%
- {\def\dodogetargument##1%
- {\def\dodogetargument####1%
- {\def\dodogetargument%
- {\dontpermitspacesbetweengroups
- #1{##1}{####1}}%
- \dogetgroupargument\thirdargumenttrue\thirdargumentfalse}%
- \dogetgroupargument\secondargumenttrue\secondargumentfalse}%
- \dogetgroupargument\firstargumenttrue\firstargumentfalse}
-
-\def\doquadruplegroupempty#1%
- {\def\dodogetargument##1%
- {\def\dodogetargument####1%
- {\def\dodogetargument########1%
- {\def\dodogetargument%
- {\dontpermitspacesbetweengroups
- #1{##1}{####1}{########1}}%
- \dogetgroupargument\fourthargumenttrue\fourthargumentfalse}%
- \dogetgroupargument\thirdargumenttrue\thirdargumentfalse}%
- \dogetgroupargument\secondargumenttrue\secondargumentfalse}%
- \dogetgroupargument\firstargumenttrue\firstargumentfalse}
-
-\def\doquintuplegroupempty#1%
- {\def\dodogetargument##1%
- {\def\dodogetargument####1%
- {\def\dodogetargument########1%
- {\def\dodogetargument################1%
- {\def\dodogetargument%
- {\dontpermitspacesbetweengroups
- #1{##1}{####1}{########1}{################1}}%
- \dogetgroupargument\fifthargumenttrue\fifthargumentfalse}%
- \dogetgroupargument\fourthargumenttrue\fourthargumentfalse}%
- \dogetgroupargument\thirdargumenttrue\thirdargumentfalse}%
- \dogetgroupargument\secondargumenttrue\secondargumentfalse}%
- \dogetgroupargument\firstargumenttrue\firstargumentfalse}
-
-%D These macros can explictly take care of spaces, which means
-%D that the next definition and calls are valid:
-%D
-%D \starttyping
-%D \def\test#1#2#3{[#1#2#3]}
-%D
-%D \dotriplegroupempty\test {a}{b}{c}
-%D \dotriplegroupempty\test {a}{b}
-%D \dotriplegroupempty\test {a}
-%D \dotriplegroupempty\test
-%D \dotriplegroupempty\test {a} {b} {c}
-%D \dotriplegroupempty\test {a} {b}
-%D \dotriplegroupempty\test
-%D {a}
-%D {b}
-%D \stoptyping
-%D
-%D And alike.
-
-%D \macros
-%D {firstofoneargument, firstoftwoarguments, firstofthreearguments
-%D secondoftwoarguments, secondofthreearguments,
-%D thirdofthreearguments}
-%D
-%D The next six macros (dedicated to Taco) can conveniently
-%D used to select arguments. Their names explain their
-%D functionality.
-
-\long\def\firstofoneargument#1{#1}
-
-\long\def\firstoftwoarguments #1#2{#1}
-\long\def\secondoftwoarguments#1#2{#2}
-
-\long\def\firstofthreearguments #1#2#3{#1}
-\long\def\secondofthreearguments#1#2#3{#2}
-\long\def\thirdofthreearguments #1#2#3{#3}
-
-\long\def\firstoffourarguments #1#2#3#4{#1}
-\long\def\secondoffourarguments#1#2#3#4{#2}
-\long\def\thirdoffourarguments #1#2#3#4{#3}
-\long\def\fourthoffourarguments#1#2#3#4{#4}
-
-\long\def\firstoffivearguments #1#2#3#4#5{#1}
-\long\def\secondoffivearguments#1#2#3#4#5{#2}
-\long\def\thirdoffivearguments #1#2#3#4#5{#3}
-\long\def\fourthoffivearguments#1#2#3#4#5{#4}
-\long\def\fifthoffivearguments #1#2#3#4#5{#5}
-
-\long\def\firstofsixarguments #1#2#3#4#5#6{#1}
-\long\def\secondofsixarguments#1#2#3#4#5#6{#2}
-\long\def\thirdofsixarguments #1#2#3#4#5#6{#3}
-\long\def\fourthofsixarguments#1#2#3#4#5#6{#4}
-\long\def\fifthofsixarguments #1#2#3#4#5#6{#5}
-\long\def\sixthofsixarguments #1#2#3#4#5#6{#6}
-
-%D \macros
-%D {globalletempty,letempty,letvalueempty,letgvalueempty}
-%D
-%D Trivial:
-
-\def\letempty #1{\let#1\empty}
-\def\globalletempty#1{\global\let#1\empty}
-
-\def\letvalueempty #1{\expandafter\let\csname#1\endcsname\empty}
-\def\letgvalueempty#1{\global\expandafter\let\csname#1\endcsname\empty}
-
-%D \macros
-%D {wait}
-%D
-%D The next macro hardly needs explanation. Because no
-%D nesting is to be expected, we can reuse \type{\wait} within
-%D \type{\wait} itself.
-
-\def\wait
- {\begingroup
- \read16 to \wait
- \endgroup}
-
-%D \macros
-%D {writestring,writeline,writebanner,
-%D writestatus,statuswidth,normalwritestatus}
-%D
-%D Maybe one didn't notice, but we've already introduced a
-%D macro for showing messages. In the multi||lingual modules,
-%D we will also introduce a mechanism for message passing. For
-%D the moment we stick to the core macros:
-%D
-%D \starttyping
-%D \writestring {string}
-%D \writeline
-%D \writestatus {category} {message}
-%D \stoptyping
-%D
-%D Messages are formatted. One can provide the maximum with
-%D of the identification string with the macro \type
-%D {\statuswidth}.
-
-\chardef\statuswidth=15
-\chardef\statuswrite=16
-
-\ifx\writestring\undefined
-
- \newtoks\everywritestring
-
- \def\writedirect {\immediate\write\statuswrite}
- \def\writeline {\writedirect{}}
- \def\writestring#1{\begingroup\the\everywritestring\writedirect{#1}\endgroup}
-
-\fi
-
-%D First we present the normal \TEX\ variant, later we will
-%D show the \ETEX-way.
-
-
-\beginTEX
-
- \newcount\statuscounter
-
- \def\dosplitstatus#1%
- {\advance\statuscounter \minusone
- \ifcase\statuscounter
- \expandafter\nosplitstatus
- \else
- \scratchtoks\@EA{\the\scratchtoks#1}%
- \expandafter\dosplitstatus
- \fi}
-
- \def\nosplitstatus#1\end
- {}
-
- \def\writestatus#1#2%
- {\begingroup
- \scratchtoks\emptytoks
- \statuscounter\statuswidth
- \expandafter\dosplitstatus#1%
- \space\space\space\space\space\space\space
- \space\space\space\space\space\space\space
- \space\space\space\space\space\space\end
- \@EA\writestring\@EA{\the\scratchtoks\space:\space#2}%
- \endgroup}
-
-\endTEX
-
-%D Because we're grouped, we could have initialized at forehand:
-%D
-%D \starttyping
-%D \statuscounter\statuswidth
-%D \stoptyping
-%D
-%D The next implementation saves only some 10 words of format
-%D memory, but we hardly gain any speed.
-%D
-%D \starttyping
-%D \def\dosplitstatus#1#2#3#4#5#6#7#8#9%
-%D {#1#2#3#4#5#6#7#8#9\dodosplitstatus}
-%D
-%D \def\dodosplitstatus#1#2#3#4#5#6\end
-%D {#1#2#3#4#5}
-%D
-%D \def\writestatus#1#2%
-%D {\writestring
-%D {\expandafter\dosplitstatus#1%
-%D \space\space\space\space\space
-%D \space\space\space\space\space
-%D \space\space\space\space\space\end
-%D \space:\space#2}}
-%D \stoptyping
-
-%D Okay then, more obscure but slightly faster: no split grabs
-%D the do split part and skipping the else branch has to happen
-%D anyway, so:
-
-\beginTEX
-
- \def\dosplitstatus#1%
- {\advance\statuscounter \minusone
- \ifcase\statuscounter
- \expandafter\nosplitstatus
- \fi
- \scratchtoks\@EA{\the\scratchtoks#1}%
- \dosplitstatus}
-
-\endTEX
-
-%D The next (\ETEX\ specific) variant is twice as fast in 5/40
-%D situations, only gains some speed when multiple runs of large docs
-%D are done; fully expandable, no statuscounter needed, no restore (due
-%D to grouping) needed etc.
-
-\beginETEX \numexpr
-
- \def\normalwritestatus#1#2%
- {\writestring{\expandafter\dosplitstatus\expandafter\statuswidth#1%
- \space\space\space\space\space\space\space
- \space\space\space\space\space\space\space
- \space\space\space\space\space\space\end
- \space:\space#2}}
-
- \def\dosplitstatus#1#2%
- {\ifcase#1 \expandafter\nosplitstatus\fi#2%
- \expandafter\dosplitstatus\expandafter{\the\numexpr#1+\minusone\relax}}
-
- \def\nosplitstatus#1\end
- {}
-
-\endETEX
-
-%D \macros
-%D {emptytoks}
-%D
-%D For this we need an empty token register, analogous
-%D to \type {\empty}.
-
-\newtoks\emptytoks
-
-%D \macros
-%D {debuggerinfo}
-%D
-%D For debugging purposes we can enhance macros with the
-%D next alternative. Here \type{debuggerinfo} stands for both
-%D a macro accepting two arguments and a boolean (in fact a
-%D few macro's too).
-
-\newif\ifdebuggerinfo
-
-\def\debuggerinfo#1#2%
- {\ifdebuggerinfo
- \writestatus{debugger}{#1:: #2}%
- \fi}
-
-%D Finally we do what from now on will be done at the top of
-%D the files: we tell the user what we are loading.
-
-% \ifx\writestatus\undefined \let\writestatus\normalwritestatus \fi
-% \ifx\writebanner\undefined \def\writebanner{\writestring} \fi
-
-\ifx\normalwritestatus\undefined
- % for use within latex
- \ifx\writestatus\undefined
- \def\writestatus#1#2{\immediate\write16{#1 : #2}}
- \fi
-\else
- \let\writestatus\normalwritestatus
-\fi
-
-\def\writebanner{\writestring}
-
-\writestatus{loading}{ConTeXt System Macros / General}
-
-%D Well, the real final command is the one that resets the
-%D unprotected characters \type{@}, \type{?} and \type{!}.
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/syst-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/syst-ini.mkii
deleted file mode 100644
index f3c357941bb..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/syst-ini.mkii
+++ /dev/null
@@ -1,1067 +0,0 @@
-%D \module
-%D [ file=syst-ini,
-%D version=2008.11.04, % 2001.11.16, % 1999.03.17, % an oldie: 1995.10.10
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Bootstrapping \TEX,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D We used to load plain \TEX\ in a special way, but redefining
-%D a couple of primitives so that for instance font loading was
-%D ignored. For those interested, this loader is found in
-%D \type {syst-tex.tex}. Some of the comment's are Don Knuth's
-%D and more of it can be found in the plain \TEX\ format.
-
-%D Characters can have special states, that can be triggered
-%D by setting their category coded. Some are preset, others
-%D are to be set as soon as possible, otherwise we cannot
-%D define any useful macros.
-
-%catcode`\^^@ = 9 % ascii null is ignored
-%catcode`\\ = 0 % backslash is TeX escape character
-
-\catcode`\{ = 1 % left brace is begin-group character
-\catcode`\} = 2 % right brace is end-group character
-\catcode`\$ = 3 % dollar sign is math shift
-\catcode`\& = 4 % ampersand is alignment tab
-\catcode`\# = 6 % hash mark is macro parameter character
-\catcode`\^ = 7 % circumflex and uparrow are for superscripts
-\catcode`\_ = 8 % underline and downarrow are for subscripts
-\catcode`\^^I = 10 % ascii tab is a blank space
-
-%catcode`\^^M = 5 % ascii return is end-line
-%catcode`\% = 14 % percent sign is comment character
-%catcode`\ = 10 % ascii space is blank space
-%catcode`\^^? = 15 % ascii delete is invalid
-
-\catcode`\~ = 13 % tilde is active
-\catcode`\^^L = 13 % ascii form-feed
-
-%catcode`\A = 11
-%.......
-%catcode`\Z = 11
-
-%catcode`\a = 11
-%.......
-%catcode`\z = 11
-
-\chardef\activecatcode = 13 % later this will become a counter
-
-\def ^^L{\par}
-\def\^^M{\ } % control <return> = control <space>
-\def\^^I{\ } % same for <tab>
-
-%D In \CONTEXT, we simply ignore end||of||file tokens:
-
-\catcode`\^^Z=9
-
-%D It makes sense to know what engine we're running so let's
-%D try to deduce it.
-
-\chardef\unknownengine = 0
-\chardef\pdftexengine = 1
-\chardef\xetexengine = 2
-\chardef\luatexengine = 3
-
-\ifx\directlua\undefined
- \ifx\XeTeXversion\undefined
- \ifx\pdftexversion\undefined
- \let\texengine\unknownengine
- \else
- \let\texengine\pdftexengine
- \fi
- \else
- \let\texengine\xetexengine
- \fi
-\else
- \let\texengine\luatexengine
-\fi
-
-\ifnum\texengine=\unknownengine
- \immediate\write16{>>>}
- \immediate\write16{>>> only pdftex, xetex and luatex are supported}
- \immediate\write16{>>>}
- \let\dump\relax
- \expandafter\end
-\fi
-
-\ifnum\texengine=\luatexengine
- \directlua 0 { % this info is stored in the format
- % kpse.set_program_name("context")
- lua.name[0] = "main ctx instance"
- local extraprimitives = tex.extraprimitives
- local enableprimitives = tex.enableprimitives
- local core = extraprimitives('core')
- local btex = extraprimitives('tex')
- local etex = extraprimitives('etex')
- local pdftex = extraprimitives('pdftex')
- local luatex = extraprimitives('luatex')
- local omega = {
- "textdir", "pagedir", "mathdir", "pardir", "bodydir",
- "leftghost", "rightghost", "localleftbox", "localrightbox",
- "localinterlinepenalty", "localbrokenpenalty",
- }
- local aleph = {
- "boxdir", "pagebottomoffset", "pagerightoffset",
- }
- for _, subset in next, { etex, pdftex, luatex, omega, aleph } do
- enableprimitives('',subset)
- end
- for _, subset in next, { core, btex, etex, pdftex, luatex, omega, aleph } do
- enableprimitives('normal',subset)
- end
- }
-\fi
-
-\ifdefined\pdfextension
-
- % promoted
-
- \let\pdfpagewidth \pagewidth
- \let\pdfpageheight \pageheight
-
- \let\pdfadjustspacing \adjustspacing
- \let\pdfprotrudechars \protrudechars
- \let\pdfnoligatures \ignoreligaturesinfont
- \let\pdffontexpand \expandglyphsinfont
- \let\pdfcopyfont \copyfont
-
- \let\pdfxform \saveboxresource
- \let\pdflastxform \lastsavedboxresourceindex
- \let\pdfrefxform \useboxresource
-
- \let\pdfximage \saveimageresource
- \let\pdflastximage \lastsavedimageresourceindex
- \let\pdflastximagepages\lastsavedimageresourcepages
- \let\pdfrefximage \useimageresource
-
- \let\pdfsavepos \savepos
- \let\pdflastxpos \lastxpos
- \let\pdflastypos \lastypos
-
- % \let\pdftexversion \luatexversion
- % \let\pdftexrevision \luatexrevision
- \let\pdftexbanner \luatexbanner
-
- \let\pdfoutput \outputmode
- \let\pdfdraftmode \draftmode
-
- \let\pdfpxdimen \pxdimen
-
- \let\pdfinsertht \insertht
-
- % also promoted
-
- % \let\pdfnormaldeviate \normaldeviate
- % \let\pdfuniformdeviate \uniformdeviate
- % \let\pdfsetrandomseed \setrandomseed
- % \let\pdfrandomseed \randomseed
- %
- % \let\pdfprimitive \primitive
- %
- % \let\expandafter\csname ifpdfabsnum\expandafter\endcsname\csname ifabsnum\endcsname
- % \let\expandafter\csname ifpdfabsdim\expandafter\endcsname\csname ifabsdim\endcsname
- % \let\expandafter\csname ifpdfprimitive\expandafter\endcsname\csname ifprimitive\endcsname
-
- % removed (also some others but already long ago)
-
- \newdimen\pdfeachlineheight
- \newdimen\pdfeachlinedepth
- \newdimen\pdflastlinedepth
- \newdimen\pdffirstlineheight
- \newdimen\pdfignoreddimen
-
- % grouped
-
- \protected\def\pdfliteral {\pdfextension literal}
- \protected\def\pdfcolorstack {\pdfextension colorstack}
- \protected\def\pdfsetmatrix {\pdfextension setmatrix}
- \protected\def\pdfsave {\pdfextension save\relax}
- \protected\def\pdfrestore {\pdfextension restore\relax}
- \protected\def\pdfobj {\pdfextension obj }
- \protected\def\pdfrefobj {\pdfextension refobj }
- \protected\def\pdfannot {\pdfextension annot }
- \protected\def\pdfstartlink {\pdfextension startlink }
- \protected\def\pdfendlink {\pdfextension endlink\relax}
- \protected\def\pdfoutline {\pdfextension outline }
- \protected\def\pdfdest {\pdfextension dest }
- \protected\def\pdfthread {\pdfextension thread }
- \protected\def\pdfstartthread {\pdfextension startthread }
- \protected\def\pdfendthread {\pdfextension endthread\relax}
- \protected\def\pdfinfo {\pdfextension info }
- \protected\def\pdfcatalog {\pdfextension catalog }
- \protected\def\pdfnames {\pdfextension names }
- \protected\def\pdfincludechars {\pdfextension includechars }
- \protected\def\pdffontattr {\pdfextension fontattr }
- \protected\def\pdfmapfile {\pdfextension mapfile }
- \protected\def\pdfmapline {\pdfextension mapline }
- \protected\def\pdftrailer {\pdfextension trailer }
- \protected\def\pdfglyphtounicode {\pdfextension glyphtounicode }
-
- % grouped
-
- \def\pdftexversion {\numexpr\pdffeedback version}
- \def\pdftexrevision {\pdffeedback revision}
- \def\pdflastlink {\numexpr\pdffeedback lastlink}
- \def\pdfretval {\numexpr\pdffeedback retval}
- \def\pdflastobj {\numexpr\pdffeedback lastobj}
- \def\pdflastannot {\numexpr\pdffeedback lastannot}
- \def\pdfxformname {\numexpr\pdffeedback xformname}
- \def\pdfcreationdate {\pdffeedback creationdate}
- \def\pdffontname {\numexpr\pdffeedback fontname}
- \def\pdffontobjnum {\numexpr\pdffeedback fontobjnum}
- \def\pdffontsize {\dimexpr\pdffeedback fontsize}
- \def\pdfpageref {\numexpr\pdffeedback pageref}
- \def\pdfcolorstackinit {\pdffeedback colorstackinit}
-
- % used when defined
-
- \edef\pdfcompresslevel {\pdfvariable compresslevel} \pdfcompresslevel 9
- \edef\pdfobjcompresslevel {\pdfvariable objcompresslevel} \pdfobjcompresslevel 1
- \edef\pdfdecimaldigits {\pdfvariable decimaldigits} \pdfdecimaldigits 3
- \edef\pdfgamma {\pdfvariable gamma} \pdfgamma 1000
- \edef\pdfimageresolution {\pdfvariable imageresolution} \pdfimageresolution 71
- \edef\pdfimageapplygamma {\pdfvariable imageapplygamma} \pdfimageapplygamma 0
- \edef\pdfimagegamma {\pdfvariable imagegamma} \pdfimagegamma 2200
- \edef\pdfimagehicolor {\pdfvariable imagehicolor} \pdfimagehicolor 1
- \edef\pdfimageaddfilename {\pdfvariable imageaddfilename} \pdfimageaddfilename 1
- \edef\pdfpkresolution {\pdfvariable pkresolution} \pdfpkresolution 72
- \edef\pdfinclusioncopyfonts {\pdfvariable inclusioncopyfonts} \pdfinclusioncopyfonts 0
- \edef\pdfinclusionerrorlevel {\pdfvariable inclusionerrorlevel} \pdfinclusionerrorlevel 0
- \edef\pdfgentounicode {\pdfvariable gentounicode} \pdfgentounicode 0
- \edef\pdfpagebox {\pdfvariable pagebox} \pdfpagebox 0
- \edef\pdfminorversion {\pdfvariable minorversion} \pdfminorversion 4
- \edef\pdfuniqueresname {\pdfvariable uniqueresname} \pdfuniqueresname 0
-
- \edef\pdfhorigin {\pdfvariable horigin} \pdfhorigin 1in
- \edef\pdfvorigin {\pdfvariable vorigin} \pdfvorigin 1in
- \edef\pdflinkmargin {\pdfvariable linkmargin} \pdflinkmargin 0pt
- \edef\pdfdestmargin {\pdfvariable destmargin} \pdfdestmargin 0pt
- \edef\pdfthreadmargin {\pdfvariable threadmargin} \pdfthreadmargin 0pt
-
- \edef\pdfpagesattr {\pdfvariable pagesattr}
- \edef\pdfpageattr {\pdfvariable pageattr}
- \edef\pdfpageresources {\pdfvariable pageresources}
- \edef\pdfxformattr {\pdfvariable xformattr}
- \edef\pdfxformresources {\pdfvariable xformresources}
- \edef\pdfpkmode {\pdfvariable pkmode}
-
-\fi
-
-%D \ETEX\ has a not so handy way of telling you the version number,
-%D i.e. the revision number has a period in it:
-
-\long\def\gobbleoneargument#1{} % will be defined later on anyway
-
-\mathchardef\etexversion =
- \numexpr\eTeXversion*100+\expandafter\gobbleoneargument\eTeXrevision\relax
-
-%D First we define a simplified version of the \CONTEXT\
-%D protection mechanism.
-
-\def\unprotect{\catcode`@=11 }
-\def\protect {\catcode`@=12 }
-
-\unprotect
-
-%D Some pretty important definitions:
-
-\let\bgroup={
-\let\egroup=}
-
-%D Allocation of registers is done slightly different than in plain
-%D \TEX. First of all we use different reserved counters. We also
-%D don't implement a family handler because users are not supposed
-%D to implement their own math. We reserve the lowest 31 registers
-%D for scratch purposes. Keep in mind that in the core engine
-%D some registers are reserved: counters 0 upto 9, and counter 255.
-%D
-%D As with plain \TEX\ we recommend that macro designers always use
-%D \type {\global} assignments with respect to registers numbered 1,
-%D 3, 5 \unknown\ 31, and always non||\type {\global} assignments
-%D with respect to registers 0, 2, 4, \unknown\ 30. This will prevent
-%D \quote {save stack buildup} that might otherwise occur.
-%D
-%D We reserve some registers for special (management) purposes:
-
-% 0 - 20 : scratch
-% 21 - 127 : internal
-% 128 - 254 : inserts
-% 255 : page
-% 256 - : user
-
-\countdef \minallocatedregister = 52 \minallocatedregister = 256
-\countdef \maxallocatedregister = 53 \maxallocatedregister = 32767
-\countdef \minallocatediochannel = 54 \minallocatediochannel = -1
-\countdef \maxallocatediochannel = 55 \maxallocatediochannel = 16
-\countdef \minallocatedlanguage = 56 \minallocatedlanguage = 0
-\countdef \maxallocatedlanguage = 57 \maxallocatedlanguage = 255
-\countdef \maxallocatedinsert = 58 \maxallocatedinsert = 254
-\countdef \minallocatedinsert = 59 \minallocatedinsert = 128
-\countdef \minallocatedfamily = 60 \minallocatedfamily = 128
-\countdef \maxallocatedfamily = 61 \maxallocatedfamily = 255
-
-\countdef \lastallocatedcount = 32 \lastallocatedcount = \minallocatedregister
-\countdef \lastallocateddimen = 33 \lastallocateddimen = \minallocatedregister
-\countdef \lastallocatedskip = 34 \lastallocatedskip = \minallocatedregister
-\countdef \lastallocatedmuskip = 35 \lastallocatedmuskip = \minallocatedregister
-\countdef \lastallocatedbox = 36 \lastallocatedbox = \minallocatedregister
-\countdef \lastallocatedtoks = 37 \lastallocatedtoks = \minallocatedregister
-\countdef \lastallocatedread = 38 \lastallocatedread = \minallocatediochannel
-\countdef \lastallocatedwrite = 39 \lastallocatedwrite = \minallocatediochannel
-\countdef \lastallocatedmarks = 40 \lastallocatedmarks = \minallocatedregister
-\countdef \lastallocatedlanguage = 41 \lastallocatedlanguage = \minallocatedlanguage % not used in context
-\countdef \lastallocatedinsertion = 42 \lastallocatedinsertion = \minallocatedinsert
-\countdef \lastallocatedfamily = 43 \lastallocatedfamily = \minallocatedfamily % not used in context
-\countdef \lastallocatedattribute = 44 \lastallocatedattribute = \minallocatedregister
-
-\countdef \mincountervalue = 125 \mincountervalue = -"7FFFFFFF % beware, we use index 125 at the lua end
-\countdef \maxcountervalue = 126 \maxcountervalue = "7FFFFFFF % beware, we use index 126 at the lua end
-
-%countdef \minusone = 127 \minusone = -1
-%chardef \zerocount = 0
-%chardef \plusone = 1
-
-\countdef \zerocount = 120 \zerocount = 0
-\countdef \plusone = 121 \plusone = 1
-\countdef \minusone = 122 \minusone = -1
-
-%chardef \normalpagebox = 255
-\countdef \normalpagebox = 127 \normalpagebox = 255 % hardcoded in pdftex/xetex
-
-% A few traditional allocations:
-
-\countdef \count@ = 255 % hm, used in \newif .. todo: replace it there
-\dimendef \dimen@ = 0
-\dimendef \dimen@i = 1 % global only
-\dimendef \dimen@ii = 2
-
-%D So, effectively we start allocating from 256 and upwards. The
-%D inserts sit in the range 128 upto 254. Page numbers use the
-%D counters 0 upto 9 and the pagebox is 255. Users can use the
-%D scratch registers upto 31 without problem but all others are
-%D reserved.
-
-\def\wlog#1{} % \def\wlog{\immediate\write\minusone} % write on log file (only)
-
-%D The allocators share a common helper macro.
-
-\def\newcount {\allocateregister\lastallocatedcount \count \countdef \maxallocatedregister}
-\def\newdimen {\allocateregister\lastallocateddimen \dimen \dimendef \maxallocatedregister}
-\def\newskip {\allocateregister\lastallocatedskip \skip \skipdef \maxallocatedregister}
-\def\newmuskip {\allocateregister\lastallocatedmuskip \muskip \muskipdef \maxallocatedregister}
-\def\newbox {\allocateregister\lastallocatedbox \box \mathchardef\maxallocatedregister}
-\def\newtoks {\allocateregister\lastallocatedtoks \toks \toksdef \maxallocatedregister}
-\def\newread {\allocateregister\lastallocatedread \read \chardef \maxallocatediochannel}
-\def\newwrite {\allocateregister\lastallocatedwrite \write \chardef \maxallocatediochannel}
-\def\newmarks {\allocateregister\lastallocatedmarks \marks \mathchardef\maxallocatedregister}
-\def\newinsert {\allocateregister\lastallocatedinsertion\insert \chardef \maxallocatedinsert}
-
-%D We don't need these in \CONTEXT:
-
-\def\newlanguage{\allocateregister\lastallocatedlanguage \language\chardef \maxallocatedlanguage}
-\def\newfamily {\allocateregister\lastallocatedfamily \fam \chardef \maxallocatedfamily}
-
-\let\newfam\newfamily
-
-% Watch out, for the moment we disable the check for already being defined
-% later we will revert this but first all chardefs must be replaced.
-
-\def\newconstant #1{\ifdefined#1\let#1\undefined\fi\newcount#1}
-\def\setnewconstant#1{\ifdefined#1\let#1\undefined\fi\newcount#1#1} % just a number
-
-% maybe setconstant with check
-
-% %D The next definitions are really needed (in \CONTEXT):
-
-%newlinechar=10 \def\outputnewlinechar{\rawcharacter{10}}
-\newlinechar=10 \edef\outputnewlinechar{^^J}
-
-%D One reason to start high with allocation is that it permits us to
-%D allocate consecutive ranges more easily, for instance in \MPLIB\
-%D we want to allocate a continuous range of boxes. It also permits us
-%D to do a proper upward allocation for inserts. The current code
-%D evolved from code that dealt with older engines but as all engines
-%D now provide many registers we removed all traces.
-
-\def\writestatus#1#2{\immediate\write16{#1: #2}} \def\space { }
-
-\def\allocateregisteryes#1#2#3#4#5% last class method max name
- {\ifnum#1<#4\relax
- \global\advance#1\plusone
- \global#3#5=#1\relax
- \else
- \writestatus{warning}{no room for \string#2\space \string#5\space (max: \number#4)}%
- \fi}
-
-\def\allocateregisternop#1#2#3#4#5% last class method max name
- {\writestatus{warning}{\string#2 \string#5 is already defined (\string\relax\space it first)}}
-
-\def\allocateregister#1#2#3#4#5% last class method max name
- {\ifx#5\undefined
- \expandafter\allocateregisteryes
- \else\ifx#5\relax
- \expandafter\expandafter\expandafter\allocateregisteryes
- \else
- \expandafter\expandafter\expandafter\allocateregisternop
- \fi\fi
- #1#2#3#4#5}
-
-%D Goodie:
-
-\ifnum\texengine=\luatexengine
- \input luatex-pdf \relax
-\fi
-
-%D Since the number of chars exceed 256 now, we can use \type
-%D {\chardef} instead of the more limited \type {\mathchardef}.
-
-\ifnum\texengine>\pdftexengine
- \def\newbox {\allocateregister\lastallocatedbox \box \chardef\maxallocatedregister}
- \def\newmarks{\allocateregister\lastallocatedmarks\marks\chardef\maxallocatedregister}
-\fi
-
-%D Attributes are something very \LUATEX. In \CONTEXT\ you are not
-%D supposed to use the attributes directly but always allocate then
-%D first. For instance attribute~0 is reserved for special purposes
-%D (this might change).
-
-\ifnum\texengine=\luatexengine
- \let\attributeunsetvalue\mincountervalue % used to be \minusone
- \def\newattribute{\allocateregister\lastallocatedattribute\attribute\attributedef\maxallocatedregister}
-\fi
-
-%D Not used by \CONTEXT\ but for instance \PICTEX\ needs it. It's a
-%D trick to force strings instead of tokens that take more memory.
-%D It's a trick to trick to force strings.
-
-\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}}
-
-%D \macros
-%D {scratchcounter,
-%D scratchdimen,scratchskip,scratchmuskip,
-%D scratchbox,
-%D scratchtoks}
-%D
-%D We now define a few scratch registers, so that successive
-%D loads at least have some available.
-
-\newcount \scratchcounter \newcount \globalscratchcounter
-\newdimen \scratchdimen \newdimen \globalscratchdimen
-\newskip \scratchskip \newskip \globalscratchskip
-\newmuskip \scratchmuskip \newmuskip \globalscratchmuskip
-\newtoks \scratchtoks \newtoks \globalscratchtoks
-\newbox \scratchbox \newbox \globalscratchbox
-
-\newcount\scratchcounterone \newcount\scratchcountertwo \newcount\scratchcounterthree
-\newdimen \scratchdimenone \newdimen \scratchdimentwo \newdimen \scratchdimenthree
-\newdimen \scratchskipone \newdimen \scratchskiptwo \newdimen \scratchskipthree
-\newbox \scratchmuskipone \newbox \scratchmuskiptwo \newbox \scratchmuskipthree
-\newtoks \scratchtoksone \newtoks \scratchtokstwo \newtoks \scratchtoksthree
-\newbox \scratchboxone \newbox \scratchboxtwo \newbox \scratchboxthree
-
-%D More allocations:
-
-\newskip \zeroskip \zeroskip = 0pt plus 0pt minus 0pt
-\newdimen\zeropoint \zeropoint = 0pt
-\newdimen\onepoint \onepoint = 1pt
-\newdimen\maxdimen \maxdimen = 16383.99999pt
-\newdimen\onebasepoint \onebasepoint = 1bp
-\newdimen\scaledpoint \scaledpoint = 1sp
-\newdimen\thousandpoint\thousandpoint= 1000pt
-
-\let\points\onepoint
-
-\newtoks \emptytoks
-
-%D And even more: (todo: countdefs 60+)
-
-%newcount \minusone \minusone = -1
-\newcount \minustwo \minustwo = -2
-%chardef \zerocount = 0
-%chardef \plusone = 1
-\chardef \plustwo = 2
-\chardef \plusthree = 3
-\chardef \plusfour = 4
-\chardef \plusfive = 5
-\chardef \plussix = 6
-\chardef \plusseven = 7
-\chardef \pluseight = 8
-\chardef \plusnine = 9
-\chardef \plusten = 10
-\chardef \plussixteen = 16
-\chardef \plushundred = 100
-\chardef \pluscxxvii = 127
-\chardef \pluscxxviii = 128
-\chardef \pluscclv = 255
-
-\ifnum\texengine=\luatexengine
- \chardef \pluscclvi = 256
- \chardef \plusthousand = 1000
- \chardef \plustenthousand = 10000
- \chardef \plustwentythousand = 20000
- \chardef \medcard = 32768
- \chardef \maxcard = 65536 % pdftex has less mathchars
-\else
- \mathchardef\pluscclvi = 256
- \mathchardef\plusthousand = 1000
- \mathchardef\plustenthousand = 10000
- \mathchardef\plustwentythousand = 20000
- \newcount \medcard \medcard = 32768 % pdftex has less mathchars
- \newcount \maxcard \maxcard = 65536 % pdftex has less mathchars
-\fi
-
-%D We prefer the more readable variant than in plain
-%D \TEX. User should only use \type {\emptybox}:
-
-\newbox\voidbox % public
-
-\let\normalhbox\hbox
-\let\normalvbox\vbox
-
-\def\unvoidbox{\unhbox\voidbox}
-\def\emptybox {\box \voidbox} % used in initializations so no attributes
-\def\emptyvbox{\normalvbox{}} % no copy as we need to set attributes
-\def\emptyhbox{\normalhbox{}} % no copy as we need to set attributes
-
-\let\leavevmode\unvoidbox % we prefer to use \dontleavehmode
-
-%D Some expected plain variants follow. We don't reuse registers
-%D because we don't want clashes.
-
-\newdimen\p@ \p@ \onepoint
-\newcount\m@ne \m@ne \minusone
-\newdimen\z@ \z@ \zeropoint
-\let \@ne \plusone
-\let \tw@ \plustwo
-\let \thr@@ \plusthree
-\let \sixt@@n \sixteen
-\let \@cclv \pluscclv
-\let \@cclvi \pluscclvi
-\newbox \voidb@x
-\newtoks \toks@
-
-%D We define \type {\newif} a la plain \TEX, but will
-%D redefine it later. As Knuth says:
-%D
-%D \startnarrower
-%D And here's a different sort of allocation: for example,
-%D
-%D \starttyping
-%D \newif\iffoo
-%D \stoptyping
-%D
-%D creates \type {\footrue}, \type {\foofalse} to go
-%D with \type {\iffoo}.
-%D \stopnarrower
-
-\def\newif#1%
- {\count@\escapechar
- \escapechar\minusone
- \expandafter\expandafter\expandafter\def\@if #1{true}{\let#1\iftrue }%
- \expandafter\expandafter\expandafter\def\@if#1{false}{\let#1\iffalse}%
- \@if#1{false}% the condition starts out false
- \escapechar\count@}
-
-\def\@if#1#2%
- {\csname\expandafter\if@\string#1#2\endcsname}
-
-\bgroup % `if' is required
-
- \uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}
-
-\egroup
-
-%D Let's test this one:
-
-\newif\ifdone
-
-%D Potential primitive in \LUATEX:
-
-\ifdefined\htdp \else \def\htdp#1{\dimexpr\ht#1+\dp#1\relax} \fi
-
-%D \macros
-%D {@@escape,@@begingroup,@@endgroup,@@mathshift,@@alignment,
-%D @@endofline,@@parameter,@@superscript,@@subscript,
-%D @@ignore,@@space,@@letter,@@other,@@active,@@comment}
-%D
-%D In \CONTEXT\ we sometimes manipulate the \CATCODES\ of certain
-%D characters. Because we are not that good at remembering numbers,
-%D we introduce some symbolic names.
-
-%D As we now have catc-* files, we also have more readable names but
-%D We will keep the following around for a while.
-
-\chardef\@@escape = 0
-\chardef\@@begingroup = 1
-\chardef\@@endgroup = 2
-\chardef\@@mathshift = 3
-\chardef\@@alignment = 4
-\chardef\@@endofline = 5
-\chardef\@@parameter = 6
-\chardef\@@superscript = 7
-\chardef\@@subscript = 8
-\chardef\@@ignore = 9
-\chardef\@@space = 10
-\chardef\@@letter = 11
-\chardef\@@other = 12
-\chardef\@@active = 13
-\chardef\@@comment = 14
-
-%D Constants to be used with \type {\currentgrouptype}.
-
-\chardef\@@bottomlevelgroup = 0
-\chardef\@@simplegroup = 1
-\chardef\@@hboxgroup = 2
-\chardef\@@adjustedhboxgroup = 3
-\chardef\@@vboxgroup = 4
-\chardef\@@vtopgroup = 5
-\chardef\@@aligngroup = 6
-\chardef\@@noaligngroup = 7
-\chardef\@@outputgroup = 8
-\chardef\@@mathgroup = 9
-\chardef\@@discretionarygroup = 10
-\chardef\@@insertgroup = 11
-\chardef\@@vcentergroup = 12
-\chardef\@@mathchoicegroup = 13
-\chardef\@@semisimplegroup = 14
-\chardef\@@mathshiftgroup = 15
-\chardef\@@mathleftgroup = 16
-
-\chardef\@@vadjustgroup = \@@insertgroup
-
-%D Constants to be used with \type {\interactionmode}.
-
-\chardef\@@batchmode = 0
-\chardef\@@nonstopmode = 1
-\chardef\@@scrollmode = 2
-\chardef\@@errorstopmode = 3
-
-%D Constants to be used with \type {\lastnodetype}. The \type
-%D {\lastnodetype} primitive is \ETEX\ compliant. The valid range is
-%D still -1 .. 15 and glyph nodes have number 0 (used to be char
-%D node) and ligature nodes are mapped to 7. That way macro packages
-%D can use the same symbolic names as in traditional \ETEX. Keep in
-%D mind that the internal node numbers are different and that there
-%D are more node types that 15.
-
-\chardef\@@charnode = 0
-\chardef\@@hlistnode = 1
-\chardef\@@vlistnode = 2
-\chardef\@@rulenode = 3
-\chardef\@@insertnode = 4
-\chardef\@@marknode = 5
-\chardef\@@adjustnode = 6
-\chardef\@@ligaturenode = 7
-\chardef\@@discretionarynode = 8
-\chardef\@@whatsitnode = 9
-\chardef\@@mathnode = 10
-\chardef\@@gluenode = 11
-\chardef\@@kernnode = 12
-\chardef\@@penaltynode = 13
-\chardef\@@unsetnode = 14
-\chardef\@@mathsnode = 15
-
-%D Constants to be used with \type {\currentiftype}.
-
-\chardef\@@charif = 1
-\chardef\@@catif = 2
-\chardef\@@numif = 3
-\chardef\@@dimif = 4
-\chardef\@@oddif = 5
-\chardef\@@vmodeif = 6
-\chardef\@@hmodeif = 7
-\chardef\@@mmodeif = 8
-\chardef\@@innerif = 9
-\chardef\@@voidif = 10
-\chardef\@@hboxif = 11
-\chardef\@@vboxif = 12
-\chardef\@@xif = 13
-\chardef\@@eofif = 14
-\chardef\@@trueif = 15
-\chardef\@@falseif = 16
-\chardef\@@caseif = 17
-\chardef\@@definedif = 18
-\chardef\@@csnameif = 19
-\chardef\@@fontcharif = 20
-
-%D Of course we want even bigger log files, so we copied this
-%D from the \ETEX\ source files.
-%D
-%D When watching such logs, beware of nasty side effects of
-%D \type {\scantokens}, as in:
-%D
-%D \starttyping
-%D \bgroup
-%D \lccode`a=12\lowercase{\xdef\whatever{a}}\egroup
-%D \def\whatever{test \whatever test}
-%D \scantokens\expandafter{\whatever}
-%D \egroup
-%D \stoptyping
-%D
-%D In \LUATEX\ we have ways around this.
-
-\def\tracingall
- {\tracingonline \plusone
- \tracingcommands \plusthree
- \tracingstats \plustwo
- \tracingpages \plusone
- \tracingoutput \plusone
- \tracinglostchars \plustwo
- \tracingmacros \plustwo
- \tracingparagraphs\plusone
- \tracingrestores \plusone
- \showboxbreadth \maxdimen
- \showboxdepth \maxdimen
- \tracinggroups \plusone
- \tracingifs \plusone
- \tracingscantokens\plusone
- \tracingnesting \plusone
- \tracingassigns \plustwo
- \errorstopmode}
-
-\def\loggingall
- {\tracingall
- \tracingonline \zerocount}
-
-\def\tracingnone
- {\tracingassigns \zerocount
- \tracingnesting \zerocount
- \tracingscantokens\zerocount
- \tracingifs \zerocount
- \tracinggroups \zerocount
- \showboxdepth \plusthree
- \showboxbreadth \plusfive
- \tracingrestores \zerocount
- \tracingparagraphs\zerocount
- \tracingmacros \zerocount
- \tracinglostchars \plusone
- \tracingoutput \zerocount
- \tracingpages \zerocount
- \tracingstats \zerocount
- \tracingcommands \zerocount
- \tracingonline \zerocount}
-
-%D Just for tracing purposes we set:
-
-\tracingstats\plusone
-
-%D Here we also save \type {\input}, more will be saved later.
-
-\ifdefined\normalinput \else \let\normalinput\input \fi
-
-%D We don't like outer commands, and we always want access
-%D to the original \type {\input} primitive.
-
-\let\normalouter\outer \def\outer{} % no longer \relax
-
-%D To circumvent dependencies, we can postpone certain
-%D initializations to dumping time, by appending them to the
-%D \type {\everydump} token register.
-
-\ifdefined\normaldump \else \let\normaldump\dump \fi
-
-\newtoks\everydump
-
-\def\dump{\the\everydump\normaldump}
-
-%D The same applies for the startup actions.
-
-\ifdefined\normaleveryjob \else \let\normaleveryjob\everyjob \fi
-
-\let\everyjob\relax \newtoks\everyjob
-
-\normaleveryjob{\the\everyjob}
-
-\def\appendtotoks #1{\def\temp{#1}\afterassignment\doappendtotoks \scratchtoks=}
-\def\prependtotoks#1{\def\temp{#1}\afterassignment\doprependtotoks\scratchtoks=}
-
-\def\doappendtotoks {\expandafter\expandafter\expandafter{\expandafter\the\expandafter\temp\the\scratchtoks}}
-\def\doprependtotoks{\expandafter\expandafter\expandafter{\expandafter\the\expandafter\scratchtoks\the\temp}}
-
-%D \macros
-%D {begcsname}
-%D
-%D Handy for \ETEX-only usage (avoids making \type {\relax}'s:
-
-\def\begcsname#1\endcsname{\ifcsname#1\endcsname\csname#1\endcsname\fi}
-
-%D Now come a few macros that might be needed in successive loading:
-
-\let\endgraf\par
-\let\endline\cr
-
-\def\space{ }
-\def\empty{}
-\def\null {\hbox{}}
-
-%D The following two might be overloaded later on but some modules need
-%D then earlier. These functionality is reflected in the name and will not
-%D change.
-
-\bgroup
- \catcode`\^^M=\activecatcode%
- \gdef\obeylines{\catcode`\^^M\activecatcode \let^^M\par}%
- \global\let^^M\par%
-\egroup
-
-\bgroup
- \gdef\obeyspaces{\catcode`\ \activecatcode}%
- \obeyspaces\global\let =\space%
-\egroup
-
-%D A constant:
-
-\let\endoflinetoken=^^M
-
-%D Also needed might be a simple loop structure and we borrow
-%D plain \TEX's one as it is often expected to be present and
-%D it is about the fastest you can get. Beware: this macro
-%D does not support nested loops. We use a namespace prefix
-%D \type {@@pln}.
-
-\long\def\loop#1\repeat{\long\def\@@plnbody{#1}\@@plniterate}
-
-%D The following makes \type {\loop} \unknown\ \type {\if}
-%D \unknown\ \type {\repeat} skippable (clever trick):
-
-\let\repeat\fi % so both \loop and \repeat are reserved words!
-
-%D The original (no \type {@@pln} there):
-%D
-%D \starttyping
-%D \def\@@plniterate{\@@plnbody\let\next\@@plniterate\else\let\next\relax\fi\next}
-%D \stoptyping
-%D
-%D A more efficient alternative:
-%D
-%D \starttyping
-%D \def\@@plniterate{\@@plnbody\expandafter\@@plniterate\else\expandafter\relax\fi}
-%D \stoptyping
-%D
-%D An even more efficient one:
-
-\def\@@plniterate{\@@plnbody\expandafter\@@plniterate\else\fi}
-
-%D We don't define a real output routine yet but at least get rid
-%D of pages:
-
-\output{\shipout\box\normalpagebox}
-
-%D Although we don't add pagenumbers yet we alias the default
-%D register used for counting pages:
-
-\countdef\pageno=0 \pageno=1 % first page is number 1
-
-%D Beside the raw counter \type {\pageno} the \type {\folio}
-%D macro provides the value.
-
-\def\folio{\the\pageno} % kind of expected and therefore reserved
-
-%D The following registers are kind of standard and (for the moment)
-%D we define them here. This might change.
-
-\newskip \bigskipamount \bigskipamount = 12pt plus 4pt minus 4pt
-\newskip \medskipamount \medskipamount = 6pt plus 2pt minus 2pt
-\newskip \smallskipamount \smallskipamount = 3pt plus 1pt minus 1pt
-
-\baselineskip = 12pt
-\lineskip = 1pt
-\lineskiplimit = 0pt
-
-%D Again a few kind-of-extensions the core:
-
-\newskip \hideskip \hideskip = -1000pt plus 1fill
-\newskip \centering \centering = 0pt plus 1000pt minus 1000pt
-
-\def\hidewidth % for alignment entries that can stick out
- {\hskip\hideskip}
-
-\def\ialign % initialized \halign
- {\everycr{}%
- \tabskip\zeroskip
- \halign}
-
-\newcount \mscount
-
-\def\spanomit{\span\omit} % bypass error message
-
-\def\multispan#1%
- {\omit
- \mscount#1\relax
- \loop
- \ifnum\mscount>\plusone
- \spanomit \advance\mscount\minusone
- \repeat}
-
-%D The next section deals with selective definitions in
-%D later modules. One can of course use the \type {\texengine}
-%D number that we defined earlier instead.
-
-\bgroup \obeylines
- \gdef\pickupSOMETEX#1%
- {\expandafter\gdef\csname begin#1\endcsname{\bgroup\obeylines\dopickupSOMETEX{#1}}}
- \gdef\dopickupSOMETEX#1#2
- % {\egroup\immediate\write16{special code for #1 -> [line \the\inputlineno] \detokenize{#2}}}
- {\egroup}
-\egroup
-
-\let\endTEX \relax \long\def\beginTEX #1\endTEX {}
-\let\endETEX \relax \long\def\beginETEX #1\endETEX {}
-\let\endXETEX \relax \long\def\beginXETEX #1\endXETEX {}
-\let\endLUATEX\relax \long\def\beginLUATEX#1\endLUATEX{}
-\let\endOLDTEX\relax \long\def\beginOLDTEX#1\endOLDTEX{}
-\let\endNEWTEX\relax \long\def\beginNEWTEX#1\endNEWTEX{}
-
-\pickupSOMETEX{ETEX}
-
-\ifnum\texengine=\xetexengine
- \pickupSOMETEX{XETEX}
-\fi
-\ifnum\texengine=\luatexengine
- \pickupSOMETEX{LUATEX}
-\fi
-\ifnum\texengine<\xetexengine
- \pickupSOMETEX{OLDTEX}
-\else
- \pickupSOMETEX{NEWTEX}
-\fi
-
-%D \macros
-%D {bindprimitive}
-%D
-%D We can remap primitives (which is needed because of changes in
-%D for instance \PDFTEX).
-
-\def\bindprimitive#1 #2 % new old
- {\ifcsname#1\endcsname \else \ifcsname#2\endcsname
- \expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname
- \fi \fi}
-
-%D Because \XETEX\ also implements some \PDFTEX\ functionality, we take
-%D care of this here instead of a dedicated module. Later modules need
-%D to handle the undefined cases.
-
-%D These messy checks will disappear.
-
-% new after 1.10, watch the change in prefix
-
-\bindprimitive quitvmode ptexquitvmode
-\bindprimitive noligatures ptexnoligatures
-\bindprimitive setrandomseed ptexsetrandomseed
-\bindprimitive uniformdeviate ptexuniformdeviate
-
-\bindprimitive quitvmode pdfquitvmode
-\bindprimitive noligatures pdfnoligatures
-\bindprimitive setrandomseed pdfsetrandomseed
-\bindprimitive uniformdeviate pdfuniformdeviate
-
-\bindprimitive resettimer pdfresettimer
-\bindprimitive elapsedtime pdfelapsedtime
-
-% new per 1.40
-
-\bindprimitive ifprimitive ifpdfprimitive
-\bindprimitive primitive pdfprimitive
-\bindprimitive ifabsdim ifpdfabsdim
-\bindprimitive ifabsnum ifpdfabsnum
-
-\ifnum\texengine=\xetexengine
-
- \let\normalsetrandomseed \setrandomseed
- \let\normaluniformdeviate\uniformdeviate
-\else
-
- \pdfminorversion \plusfive
-
- \ifdefined\pdfcompresslevel \else \newcount\pdfcompresslevel \fi
- \ifdefined\pdfobjcompresslevel \else \newcount\pdfobjcompresslevel \fi
- \ifdefined\pdfgentounicode \else \newcount\pdfgentounicode \fi \pdfgentounicode \plusone
- \ifdefined\pdfinclusioncopyfonts\else \newcount\pdfinclusioncopyfonts \fi \pdfinclusioncopyfonts\plusone
-
- \def\nopdfcompression {\pdfobjcompresslevel\zerocount \pdfcompresslevel\zerocount}
- \def\maximumpdfcompression{\pdfobjcompresslevel\plusnine \pdfcompresslevel\plusnine }
- \def\normalpdfcompression {\pdfobjcompresslevel\plusthree \pdfcompresslevel\plusthree}
-
- \normalpdfcompression
-
- \let\normalsetrandomseed \setrandomseed
- \let\normaluniformdeviate\uniformdeviate
-
-\fi
-
-%D Handy.
-
-\ifnum\texengine=\luatexengine
- \ifdefined\suppresslongerror % for the moment test
- \suppresslongerror\plusone
- \fi
-\fi
-
-%D Basic status stuff.
-
-\newif\ifproductionrun
-
-%D We need to make sure that we start up in \DVI\ mode, so,
-%D after testing for running \PDFTEX, we default to \DVI.
-
-\ifx\pdftexversion\undefined \newcount\pdfoutput \fi \pdfoutput=0
-
-%D For those who expect this \unknown
-
-\ifx\fmtname \undefined \def\fmtname {ConTeXt Minimized Plain TeX} \fi
-\ifx\fmtversion\undefined \def\fmtversion{3.1415926} \fi
-
-\let\normalfmtversion\fmtversion
-
-%D A few bonus macros:
-
-\def\modulonumber#1#2{\the\numexpr#2-((((#2+(#1/2))/#1)-1)*#1)\relax}
-\def\dividonumber#1#2{\the\numexpr(#2-(#1/2))/#1\relax}
-
-\ifnum\texengine=\xetexengine
- \edef\xetexversion {\numexpr\XeTeXversion*100+(\expandafter\gobbleoneargument\XeTeXrevision-5)/10\relax}
- \edef\xetexrevision {\the\numexpr(\expandafter\gobbleoneargument\XeTeXrevision-50)/100\relax}
-\fi
-
-\ifcase\texengine
- \def\texenginename {impossible}
- \edef\texengineversion{0}
-\or
- \def\texenginename {pdfTeX}
- \edef\texengineversion{\dividonumber{100}\pdftexversion.\modulonumber{100}\pdftexversion.\pdftexrevision}
-\or
- \def\texenginename {XeTeX}
- \edef\texengineversion{\dividonumber{100}\xetexversion .\modulonumber{100}\xetexversion .\xetexrevision}
-\or
- \def\texenginename {LuaTeX}
- \edef\texengineversion{\dividonumber{100}\luatexversion.\modulonumber{100}\luatexversion.\luatexrevision}
-\else
- \def\texenginename {impossible}
- \edef\texengineversion{0}
-\fi
-
-%D While cleaning this code up a bit I was listening to Heather
-%D Nova's \CD\ Redbird. The first song on that \CD\ ends with
-%D a few lines suitable for ending this initialization module:
-%D
-%D \startlines
-%D And there's so much I can do for you
-%D Given time I know that I can prove
-%D Now my world is opened up to you
-%D Come inside
-%D
-%D Welcome to my life
-%D Welcome to my world
-%D Come inside
-%D \stoplines
-%D
-%D So let's see what \TEX\ can do now that we've opened up
-%D the basic machinery.
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/syst-new.mkii b/Master/texmf-dist/tex/context/base/mkii/syst-new.mkii
deleted file mode 100644
index 5a515dbab0e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/syst-new.mkii
+++ /dev/null
@@ -1,886 +0,0 @@
-%D \module
-%D [ file=syst-new,
-%D version=1997.01.03,
-%D title=\CONTEXT\ Support Macros,
-%D subtitle=New Ones,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Code from this module will move. For instance to
-%D syst-dat.tex (datastructures).
-
-\unprotect
-
-% pretty ugly but fast
-
-% \copycsname xxx\endcsname\csname ..\endcsname
-
-\def\copycsname{\@EA\@EA\@EA\let\@EA\@EA\csname}
-
-% \letcscsname \crap \csname ..\endcsname
-% \letcsnamecs \csname ..\endcsname\crap
-% \letcsnamecsname\csname ..\endcsname\csname ..\endcsname
-
-\def\letcscsname {\@EA\let\@EA}
-\def\letcsnamecs {\@EA\let}
-\def\letcsnamecsname{\@EA\@EA\@EA\let\@EA\@EA}
-
-% another one, add an item to a commalist
-
-\def\addvalue#1#2% cs item
- {\ifundefined{#1}\@EA\let\csname#1\endcsname\empty\fi
- \expanded{\addtocommalist{#2}\@EA\noexpand\csname#1\endcsname}}
-
-% faster, and looks okay
-
-\def\unspaced#1%
- {\dounspaced#1\end}
-
-\def\dounspaced#1%
- {\ifx#1\end
- \@EA\gobbleoneargument
- \else
- \ifx#1\blankspace\else#1\fi
- \fi
- \dounspaced}
-
-\def\unspaceargument#1\to#2%
- {\defconvertedargument#2{#1}%
- \@EA\edef\@EA#2\@EA{\@EA\unspaced\@EA{#2}}}
-
-\def\unspaceafter#1#2%
- {\edef\ascii{\dounspaced#2\end}\@EA#1\@EA{\ascii}}
-
-% etex, much faster
-%
-% \def\unspaceargument#1\to#2%
-% {\scratchcounter\catcode'32\catcode32=\@@ignore
-% \scantokens{\edef#2{#1}}%
-% \catcode32=\scratchcounter}
-
-\def\unspaceafter#1#2%
- {\edef\ascii{\dounspaced#2\end}\@EA#1\@EA{\ascii}}
-
-% sometimes handy:
-
-\def\doifhasspaceelse#1%
- {\edef\!!stringa{#1}%
- \expanded{\dodoifhasspaceelse#1\space}\empty\relax}
-
-\def\dodoifhasspaceelse#1 #2#3\relax % \space\empty\relax
- {\ifx\!!stringa\space
- \@EA\firstoftwoarguments
- \else\ifx#2\empty
- \@EAEAEA\secondoftwoarguments
- \else
- \@EAEAEA\firstoftwoarguments
- \fi\fi}
-
-% this will replace loadfile once and alike !!! todo
-
-\def\@flg@{@flg@}
-
-\def\setflag#1%
- {\@EA\dodoglobal\@EA\chardef\csname\@flg@#1\endcsname\zerocount}
-
-\def\resetflag#1%
- {\@EA\dodoglobal\@EA\chardef\csname\@flg@#1\endcsname\plusone}
-
-\let\ifflagged\ifcase
-
-\def\flag#1{\csname\@flg@#1\endcsname}
-
-\def\doifelseflagged#1%
- {\@EA\ifx\csname\@flg@#1\endcsname\relax
- \@EA\secondoftwoarguments
- \else\ifcase\csname\@flg@#1\endcsname
- \@EAEAEA\firstoftwoarguments
- \else
- \@EAEAEA\secondoftwoarguments
- \fi\fi}
-
-\def\doifnotflagged#1%
- {\@EA\ifx\csname\@flg@#1\endcsname\relax
- \@EA\firstofoneargument
- \else\ifcase\csname\@flg@#1\endcsname
- \@EAEAEA\gobbleoneargument
- \else
- \@EAEAEA\firstofoneargument
- \fi\fi}
-
-\def\inheritparameter[#1]#2[#3]#4[#5]% tag tokey fromkey % [bypasses k!prefix]
- {\@EAEAEA\def\@EA\csname\@EA#1\@EA#3\@EA\endcsname\@EA
- {\csname#1#5\endcsname}}
-
-% \buildarray[test][aa,bb,cc,dd,ee,ff]
-% \setarrayelement{test}{1}{qq}
-% \arrayelement{test}{1}
-% \arraylength{test}
-%
-% \def\buildarray[#1][#2]%
-% {\scratchcounter=0
-% \def\docommand##1%
-% {\advance\scratchcounter by 1
-% \setvalue{@@aa#1\the\scratchcounter}{##1}}%
-% \processcommalist[#2]\docommand
-% \setevalue{@@aa#1}{\the\scratchcounter}}%
-%
-% \def\setarrayelement#1#2{\setvalue{@@aa#1#2}}
-% \def\arrayelement #1#2{\getvalue{@@aa#1#2}}
-% \def\arraylength #1{\getvalue{@@aa#1}}
-
-% \newsignal\junksignal
-%
-% \def\setjunksignal%
-% {\ifhmode
-% \hskip\junksignal
-% \let\removejunkspaces\doremovejunkspaces
-% \else
-% \let\removejunkspaces\relax
-% \fi}
-%
-% \def\doremovejunkspaces%
-% {\doloop{\ifdim\lastskip=\junksignal\unskip\else\exitloop\fi}}
-
-% \def\doifnonzeropositiveelse#1#2#3%
-% {\bgroup
-% \setbox\scratchbox=\hbox{\scratchcounter=0#1}%
-% \ifdim\wd\scratchbox=\!!zeropoint\egroup#2\else\egroup#3\fi}
-%
-% \def\dodoifnonzeropositiveelse#1#2\end#3#4%
-% {\egroup
-% \ifx#1\relax#3\else#4\fi}
-%
-% \def\doifnonzeropositiveelse#1%
-% {\bgroup
-% \afterassignment\dodoifnonzeropositiveelse\scratchcounter=0#1\relax\empty\end}
-
-\def\dodoifnonzeropositiveelse#1#2\end % #3#4%
- {\ifx#1\relax
- \ifcase\scratchcounter
- \endgroup
- \@EAEAEA\secondoftwoarguments
- \else
- \endgroup
- \@EAEAEA\firstoftwoarguments
- \fi
- \else
- \endgroup
- \@EA\secondoftwoarguments
- \fi}
-
-\def\doifnonzeropositiveelse#1%
- {\begingroup\afterassignment\dodoifnonzeropositiveelse\scratchcounter=0#1\relax\empty\end}
-
-% here ?
-
-\def\dosetrawvalue #1#2#3{\@EA \def\csname#1#2\endcsname{#3}}
-\def\dosetrawevalue#1#2#3{\@EA\edef\csname#1#2\endcsname{#3}}
-\def\dosetrawgvalue#1#2#3{\@EA\gdef\csname#1#2\endcsname{#3}}
-\def\dosetrawxvalue#1#2#3{\@EA\xdef\csname#1#2\endcsname{#3}}
-
-\def\getrawparameters {\dogetparameters\dosetrawvalue }
-\def\getraweparameters {\dogetparameters\dosetrawevalue}
-\def\getrawgparameters {\dogetparameters\dosetrawgvalue}
-\def\getrawxparameters {\dogetparameters\dosetrawxvalue}
-
-\def\globalgetrawparameters{\dogetparameters\dosetrawgvalue} % obsolete
-
-\def\splitskip#1%
- {\scratchskip\zeropoint \!!plus \onepoint \!!minus \onepoint
- \advance\scratchskip#1\relax % \relax is realy needed here
- \expandafter\SPLITSKIP\the\scratchskip}
-
-{\catcode`\.=\@@other
- \catcode`\p=\@@other
- \catcode`\l=\@@other
- \catcode`\u=\@@other
- \catcode`\s=\@@other
- \catcode`\m=\@@other
- \catcode`\i=\@@other
- \catcode`\n=\@@other
- \catcode`\t=\@@other
- \gdef\SPLITSKIP#1pt plus #2pt minus #3pt%
- {\DOSPLITSKIP#1 #2 #3 }}
-
-% \def\DOSPLITSKIP#1 #2 #3
-% {\dimen0=#1pt\dimen2=#2pt\dimen4=#3pt
-% \advance\dimen2 -\onepoint
-% \advance\dimen4 -\onepoint}
-
-\def\DOSPLITSKIP#1 #2 #3
- {\dimen0=#1\onepoint
- \dimen2=\dimexpr#2\onepoint-\onepoint\relax
- \dimen4=\dimexpr#3\onepoint-\onepoint\relax}
-
-% \def\minimaxskip#1#2%
-% {\splitskip#2\relax
-% \scratchdimen=#2\relax
-% #2=\scratchdimen
-% \advance#2 by #1\relax}
-%
-% \def\maximizeskip%
-% {\minimaxskip{-\dimen4}}
-%
-% \def\maximizeskip%
-% {\minimaxskip{\dimen2}}
-%
-% \def\maximizespacing%
-% {\maximizeskip\blankskipamount
-% \maximizeskip\parskip
-% \maximizeskip\ctxparskip
-% \maximizeskip\baselineskip
-% \maximizeskip\bigskipamount
-% \maximizeskip\medskipamount
-% \maximizeskip\smallskipamount}
-
-\newcount\modcounter
-
-%\def\DoMod #1by#2to#3%
-% {\modcounter#1\divide\modcounter#2\multiply\modcounter#2%
-% #3#1\advance#3 -\modcounter}
-%
-%\def\DoDiv #1by#2to#3%
-% {#3#1\divide#3 #2\relax}
-
-\def\dosetmodulo#1#2#3%
- {\modcounter#1\divide\modcounter#2\multiply\modcounter#2%
- #3#1\advance#3-\modcounter}
-
-\def\dosetdivision#1#2#3%
- {#3#1\divide#3 #2\relax}
-
-\def\DoMod#1by#2to#3{\dosetmodulo {#1}{#2}{#3}}
-\def\DoDiv#1by#2to#3{\dosetdivision{#1}{#2}{#3}}
-
-\def\dounprotected#1\par
- {#1\protect}
-
-\def\unprotected
- {\unprotect\dounprotected}
-
-%D Standaard kan een spatie (zoals ~) uitrekken. Dit is in
-%D overzichten niet altijd de bedoeling, vandaar:
-
-% \def\fixedspace{\hskip\interwordspace\relax}
-
-%\def\ExpandSecondAfter#1#2#3%
-% {\!!toksa={#2}%
-% \edef\!!stringa{#3}%
-% \edef\expanded%
-% {\noexpand#1{\the\!!toksa}{\!!stringa}}%
-% \expanded}
-%
-%\def\ExpandThirdAfter#1#2#3#4%
-% {\!!toksa={#2}%
-% \!!toksb={#3}%
-% \edef\!!stringa{#4}%
-% \edef\expanded%
-% {\noexpand#1{\the\!!toksa}{\the\!!toksb}{\!!stringa}}%
-% \expanded}
-
-%\def\indirect#1#2#3%
-% {\@EA#1\@EA#2\@EA{\@EA#3\csname\s!do\string#2\endcsname}%
-% \@EA#1\csname\s!do\string#2\endcsname}
-%
-%\def\doubleemptied#1#2#3%
-% {\indirect#1#2\dodoublempty}
-%
-%\indirect\def\stelietsin\dodoubleempty[#1][#2]%
-% {...}
-%
-%\doubleemptied\def\stelietsin[#1][#2]%
-% {...}
-
-% in mult-set
-%
-%\def\defaultsetup{def}
-%
-%\def\selectdefaultsetup#1#2%
-% {\writestatus{setup}{choose #1 setupfile}%
-% \bgroup
-% \endlinechar=-1
-% \global\read16 to \usersetup
-% \egroup
-% \ifx\usersetup\empty
-% \let\usersetup=\defaultsetup
-% \fi
-% \readfile{#2\usersetup}{}{}%
-% \writestatus{setup}{loading #1 setupfile #2\usersetup}}
-
-% awaiting the definitive implementation
-
-\let\normalelapsedtime\elapsedtime
-
-\ifx\resettimer\undefined
- \let\resettimer \relax
- \newcount\elapsedtime
-\fi
-
-\newcount\featuretest
-\newcount\noffeaturetest
-\newcount\featuretesttime
-
-\def\testfeature#1#2% brought in sync with mkiv
- {\noffeaturetest#1\relax
- \def\dotestfeature
- {\advance\featuretest\plusone
- \ifnum\featuretest>\noffeaturetest\else#2\expandafter\dotestfeature\fi}%
- \def\notestfeature
- {\advance\featuretest\plusone
- \ifnum\featuretest>\noffeaturetest\else\expandafter\notestfeature\fi}%
- \retestfeature}
-
-\def\retestfeature % timer support is new per 10/5/2005
- {\bgroup
- \ifcase\interactionmode\let\wait\relax\fi
- \writestatus\m!systems{starting feature test}\wait
- \resettimer
- \bgroup
- \featuretest\zerocount \notestfeature
- \global\featuretesttime\normalelapsedtime
- \egroup
- \resettimer
- \bgroup
- \featuretest\zerocount \dotestfeature
- \egroup
- \global\featuretesttime\numexpr\normalelapsedtime-\featuretesttime\relax
- \writestatus\m!systems{feature test done (used: \elapsedseconds s)}%
- \wait
- \egroup}
-
-\def\elapsedseconds{\expandafter\withoutpt\the\dimexpr\featuretesttime sp\relax}
-
-\let\elapsedtime\elapsedseconds
-
-\def\showtimer#1%
- {\writestatus{runtime}{\elapsedseconds\space s / #1}}
-
-% \edef\elapsedtime{\expandafter\withoutpt\the\dimexpr\elapsedtime\relax s}%
-% \writestatus\m!systems{feature test done (\elapsedtime)}%
-
-\def\testfeatureonce#1#2%
- {\let\wait\relax\testfeature{#1}{#2}\end}
-
-%D \macros
-%D {adddimenregister,adddimenmacro}
-%D
-%D Instead of using numerous \type {\advance}'s, one can use
-%D the next macros to add|/|subtract a series of dimensions
-%D to a register or macro.
-%D
-%D \starttyping
-%D \adddimenregister 10pt 5pt \paperwidth \to \somedimen
-%D \adddimenmacro 10pt 5pt \paperwidth \to \bagger
-%D \stoptyping
-
-% \newdimen\dimentoaddto
-
-% \def\adddimenregister#1\to#2% will be obsolete once full etex
-% {\begingroup
-% #2=\zeropoint
-% \dimentoaddto\zeropoint
-% \def\docommand%
-% {\advance#2 \dimentoaddto
-% \futurelet\next\dodocommand}%
-% \def\dodocommand%
-% {\ifx\next\relax
-% \expanded{\endgroup#2=\the#2}%
-% \else
-% \@EA\afterassignment\@EA\docommand\@EA\dimentoaddto
-% \fi}%
-% \docommand#1\relax}
-
-% \def\adddimenmacro#1\to#2%
-% {\adddimenregister#1\to\scratchdimen
-% \edef#2{\the\scratchdimen}}
-
-%D \macros
-%D {freezedimenmacro}
-%D
-%D This macro is use as:
-%D
-%D \starttyping
-%D \freezedimenmacro\leftmargindistance
-%D \stoptyping
-
-% \def\freezedimenmacro#1%
-% {\scratchdimen#1\edef#1{\the\scratchdimen}}
-
-\def\freezedimenmacro#1%
- {\edef#1{\the\dimexpr#1}}
-
-%D The next one is slower:
-%D
-%D \starttyping
-%D \def\freezedimenmacro#1{\edef#1{\the\dimexpr(#1)}}
-%D \stoptyping
-
-% \newcount\rawrecursecounter
-%
-% \def\rawrecurselevel{\the\rawrecursecounter}%
-%
-% \def\dorawrecurse#1#2%
-% {\rawrecursecounter\plusone
-% \let\oldrecurselevel\recurselevel
-% \let\recurselevel\rawrecurselevel
-% \def\dodorawrecurse
-% {\ifnum\rawrecursecounter>#1\relax
-% \let\recurselevel\oldrecurselevel
-% \else
-% #2\advance\rawrecursecounter \plusone
-% \expandafter\dodorawrecurse
-% \fi}%
-% \dodorawrecurse}
-
-%D The next macro negates a macro (dimension or number, or actually, whatever.
-%D It's a typical example of \type {\if} usage:
-%D
-%D \starttyping
-%D \if-\whatever \else-\whatever\fi => else => -whatever
-%D \if--\whatever\else-\whatever\fi => then => whatever
-%D \stoptyping
-
-\def\negated#1{\if-#1\else-#1\fi} % does only work in macros or text
-
-% This permits things like ^\index{hans}^, where hans is
-% duplicated in the text.
-
-\newif\ifduplicate
-
-\bgroup
-
-\gdef\checkduplication % in line with Knuth
- {\ifmmode\expandafter^\else\expandafter\startduplication\fi}
-
-\gdef\insideduplication
- {\ifmmode\expandafter^\else\expandafter\egroup\fi}
-
-\catcode`\^=\@@active
-
-\gdef\enableduplication
- {\catcode`\^=\@@active \let^\checkduplication}
-
-\gdef\disableduplication
- {\catcode`\^=\@@superscript}
-
-\gdef\startduplication
- {\bgroup \duplicatetrue \let^\insideduplication}
-
-\egroup
-
-\def\gobbleassigndimen#1\\{}
-
-\def\assigndimen#1#2%
- {\afterassignment\gobbleassigndimen#1=#2\!!zeropoint\\}
-
-\def\setusage#1%
- {\@EA\let\csname#1\endcsname\iftrue}
-
-\def\resetusage#1%
- {\@EA\let\csname#1\endcsname\iffalse}
-
-\beginTEX
-
-\def\ifusage#1%
- {\@EA\ifx\csname#1\endcsname\relax
- \resetusage{#1}%
- \fi
- \csname#1\endcsname}
-
-\endTEX
-
-\beginETEX \ifcsname
-
-\def\ifusage#1%
- {\ifcsname#1\endcsname\else
- \resetusage{#1}%
- \fi
- \csname#1\endcsname}
-
-\endETEX
-
-%D Very handy, more efficient than \type{{}}, and more readable
-%D than \type {\empty}.
-
-\let\donothing\empty
-
-% The following macros are used in XML handling.
-
-% \long\def\dowithstringed#1#2#3#4% " ' space
-% {\if#4"\@EA#1\else\if#4'\@EAEAEA#2\else\@EAEAEA#3\fi\fi#4}
-%
-% \def\unstringed
-% {\dowithstringed\unstringdouble\unstringsingle\unstringspaced}
-%
-% \long\def\unstringdouble"#1"{#1}
-% \long\def\unstringsingle'#1'{#1}
-% \long\def\unstringspaced #1 {#1}
-%
-% \def\grabstring
-% {\dowithstringed\grabstringdouble\grabstringsingle\grabstringspaced}
-%
-% \def\dowithgrabbedstring#1%
-% {\def\@@dowithgrabbedstring{#1}%
-% \afterassignment\@@dowithgrabbedstring\grabstring}
-%
-% \long\def\grabstringdouble"#1"{\scratchtoks{#1}}
-% \long\def\grabstringsingle'#1'{\scratchtoks{#1}}
-% \long\def\grabstringspaced #1 {\scratchtoks{#1}}
-
-\long\setvalue{@u@s@"}#1#2"{#2} \long\setvalue{@g@s@"}#1#2"{\scratchtoks{#2}}
-\long\setvalue{@u@s@'}#1#2'{#2} \long\setvalue{@g@s@'}#1#2'{\scratchtoks{#2}}
-\long\setvalue{@u@s@ }#1#2 {#2} \long\setvalue{@g@s@ }#1#2 {\scratchtoks{#2}}
-
-\long\def\unstringed#1{\csname\ifcsname @u@s@#1\endcsname @u@s@#1\else\s!empty\fi\endcsname#1}
-\long\def\grabstring#1{\csname\ifcsname @g@s@#1\endcsname @g@s@#1\else\s!empty\fi\endcsname#1}
-
-\def\dowithgrabbedstring#1%
- {\def\@@dowithgrabbedstring{#1}%
- \afterassignment\@@dowithgrabbedstring\grabstring}
-
-\def\expifequalelse#1#2%
- {\@@ifequal#1\relax\relax\@@and#2\relax\relax\@@then}
-
-\def\@@ifequal#1#2\@@and#3%
- {\ifx#1\relax
- \ifx#3\relax
- \@EAEAEA\@@if@@equal@@true
- \else
- \@EAEAEA\@@if@@equal@@false
- \fi
- \else
- \ifx#3\relax
- \@EAEAEAEAEAEA\@@if@@equal@@false
- \else\ifx#1#3%
- % go on
- \else
- \@EAEAEAEAEAEA\@@if@@equal@@false
- \fi\fi
- \fi
- \@@ifequal#2\@@and}
-
-\long\def\@@if@@equal@@true #1\@@then#2#3{#2}
-\long\def\@@if@@equal@@false#1\@@then#2#3{#3}
-
-%D new stuff :
-
-\def\partialexpanded#1%
- {\let\@@notexpanded\noexpand
- \long\xdef\@@expanded{\noexpand#1}%
- \let\@@notexpanded\empty
- \@@expanded}
-
-% for Simon ; watch how we make them fully expandable (i.e.
-% no \type {\relax}es) popping up
-
-\def\@do@the@number@#1\relax#2\end{#1}
-
-\def\@the@number@#1{\@EA\@do@the@number@\number#1\relax\end}
-
-\def\doifnum#1#2%
- {\ifnum#1=\@the@number@{#2} % space needed
- \expandafter\firstofoneargument
- \else
- \expandafter\gobbleoneargument
- \fi}
-
-\def\doifnotnum#1#2%
- {\ifnum#1=\@the@number@{#2} % space needed
- \expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
-\def\doifelsenum#1#2%
- {\ifnum#1=\@the@number@{#2} % space needed
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-% \edef\xxxx{\doifnum{1}{2}{no}} \show \xxxx
-% \edef\xxxx{\doifnum{2}{2}{yes}} \show \xxxx
-% \scratchcounter0 \edef\xxxx{\doifnum{1}{\scratchcounter}{no}} \show \xxxx
-% \scratchcounter1 \edef\xxxx{\doifnum{1}{\scratchcounter}{yes}} \show \xxxx
-
-\def\appended#1#2#3{\@EA#1\@EA#2\@EA{#2#3}}
-\def\appendvalue #1{\@EA\appended\@EA \def\csname#1\endcsname}
-\def\appendgvalue#1{\@EA\appended\@EA\gdef\csname#1\endcsname}
-
-\def\prepended#1#2#3{\scratchtoks{#3}\@EA\@EA\@EA#1\@EA\@EA\@EA#2\@EA\@EA\@EA{\@EA\the\@EA\scratchtoks#2}}
-\def\prependvalue #1{\@EA\prepended\@EA \def\csname#1\endcsname}
-\def\prependgvalue#1{\@EA\prepended\@EA\gdef\csname#1\endcsname}
-
-%D \macros
-%D {compresscommacommandnrs,compresscommalistnrs,compressedcommalistnrs,
-%D compresscommacommand,compresscommalist,compressedcommalist,
-%D reversecommacommand,reversecommalist,reversedcommalist}
-%D
-%D The following two list processing macros are needed by Taco's
-%D bibliography module. The numbers compressor converts the
-%D list in a list of ranges. The normal compressor remove duplicate
-%D and empty entries.
-
-\def\compresscommalistnrs[#1]%
- {\let\compressedlist\empty
- \!!counta\maxdimen
- \!!countb\maxdimen
- \processcommalist[#1]\docompresslistnrs
- \ifnum\!!counta=\maxdimen\else\dodocompresslistnrs\fi}
-
-\def\compresscommacommandnrs[#1]%
- {\expanded{\compresscommalistnrs[#1]}}
-
-\def\docompresslistnrs#1%
- {\edef\commalistelement{#1}%
- \ifx\commalistelement\empty\else
- \ifnum\!!counta=\maxdimen
- \!!counta\commalistelement\relax
- \!!countb\!!counta
- \else
- \advance\!!countb\plusone
- \ifnum\commalistelement>\!!countb
- \advance\!!countb\minusone
- \dodocompresslistnrs
- \!!counta\commalistelement\relax
- \!!countb\!!counta
- \fi
- \fi
- \fi}
-
-\def\dodocompresslistnrs
- {\edef\compressedlist
- {\ifx\compressedlist\empty\else\compressedlist,\fi
- {\the\!!counta}{\ifnum\!!countb>\!!counta\the\!!countb\fi}}}
-
-%D \def\test#1{{\tttf#1->\compresscommalistnrs[#1]\defconvertedcommand\ascii\compressedlist\ascii}}
-%D \startlines
-%D \test{}
-%D \test{1}
-%D \test{1,3}
-%D \test{1,3,4}
-%D \test{1,3,3,4,5}
-%D \test{1,3,3,4,5,8}
-%D \test{1,3,3,4,5,5,8,10}
-%D \test{1,3,4,5,8,10,11}
-%D \test{1,,3,,4,,5,,8,,10,,11,}
-%D \stoplines
-
-\def\compresscommalist[#1]%
- {\let\compressedlist\empty
- \let\!!stringa\empty
- \processcommalist[#1]\docompresslist}
-
-\def\compresscommacommand[#1]%
- {\expanded{\compresscommalist[#1]}}
-
-\def\docompresslist#1%
- {\edef\commalistelement{#1}%
- \ifx\commalistelement\empty \else
- \ifx\!!stringa\commalistelement \else
- \ifx\compressedlist\empty
- \def\compressedlist{#1}%
- \else
- \appended\def\compressedlist{,#1}%
- \fi
- \let\!!stringa\commalistelement
- \fi
- \fi}
-
-%D \def\test#1{{\tttf#1->\compresscommalist[#1]\defconvertedcommand\ascii\compressedlist\ascii}}
-%D \startlines
-%D \test{}
-%D \test{1}
-%D \test{1,3}
-%D \test{1,3,4}
-%D \test{1,3,3,4,5}
-%D \test{1,3,3,4,5,8}
-%D \test{1,3,3,4,5,5,8,10}
-%D \test{1,3,4,5,8,10,11}
-%D \test{1,,3,,4,,5,,8,,10,,11,}
-%D \stoplines
-
-\def\reversecommalist[#1]%
- {\let\reversedlist\empty
- \processcommalist[#1]\doreverselist}
-
-\def\doreverselist#1%
- {\ifx\reversedlist\empty
- \def\reversedlist{#1}%
- \else
- \prepended\def\reversedlist{#1,}%
- \fi}
-
-\def\reversecommacommand[#1]%
- {\expanded{\reversecommalist[#1]}}
-
-%D \def\test#1{{\tttf#1->\reversecommalist[#1]\defconvertedcommand\ascii\reversedlist\ascii}}
-%D \startlines
-%D \test{}
-%D \test{1}
-%D \test{1,3}
-%D \test{1,3,4}
-%D \test{1,3,3,4,5}
-%D \test{1,3,3,4,5,8}
-%D \test{1,3,3,4,5,5,8,10}
-%D \test{1,3,4,5,8,10,11}
-%D \test{1,,3,,4,,5,,8,,10,,11,}
-%D \stoplines
-
-%D \macros
-%D {stripstring}
-%D
-%D Needed in bookmarks:
-%D
-%D \starttyping
-%D {\sanitizePDFdocencoding test \CONTEXT\ test \to\oeps\stripstring\oeps\tttf[\oeps]}
-%D \stoptyping
-
-\def\stripstring#1% #1 is \cs
- {\bgroup
- \defconvertedcommand\ascii{#1}%
- \global\let\globalascii\empty
- \donefalse
- \expandafter\handletokens\ascii\with\dostripstring
- \egroup
- \let#1\globalascii}
-
-\def\dostripstring#1%
- {\ifx#1\blankspace
- \donetrue
- \else
- \ifdone\ifx\globalascii\empty\else
- \xdef\globalascii{\globalascii\space}%
- \donefalse
- \fi\fi
- \xdef\globalascii{\globalascii#1}%
- \fi}
-
-%D \macros
-%D {dowithrange}
-%D
-%D This one is for Mojca Miklavec, who made me aware of the fact that
-%D \type {page-imp.tex} was not the best place to hide it.
-
-\def\dowithrange#1#2% #2 takes number
- {\splitstring#1\at:\to\fromrange\and\torange
- \ifx\torange\empty\let\torange\fromrange\fi
- \dostepwiserecurse\fromrange\torange1{#2{\recurselevel}}}
-
-%D \macros {uncompresslist}
-%D
-%D When given a list like \type{1,4-7,9} as argument, this macro
-%D will store the expanded commalist in \type{\uncompressedlist}.
-%D
-%D \startbuffer
-%D \def\MojcaHasToDoTheTasks[#1]#2%
-%D {{\uncompresslist[#1]%
-%D \def\processitem##1{I have to do ##1 #2\par}%
-%D \processcommacommand[\uncompressedlist]\processitem}}
-%D
-%D \MojcaHasToDoTheTasks [1-4,7,9-11] {until tomorrow}
-%D \stopbuffer
-%D
-%D Here is an example of how to use \type {\uncompresslist}:
-%D \typebuffer
-%D
-%D The output of this is:
-%D
-%D \getbuffer
-
-\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}
-
-% new
-%
-% \startnointerference
-% all kind of code
-% \stopnointerference
-
-\newbox\nointerferencebox
-
-\def\startnointerference
- {\setbox\nointerferencebox\vbox
- \bgroup}
-
-\def\stopnointerference
- {\egroup
- \setbox\nointerferencebox\emptybox}
-
-\protect \endinput
-
-
-% \def\appendtovaluelist#1#2%
-% {\ifcsname#1\endcsname
-% \expandafter\ifx\csname#1\endcsname\empty
-% \expandafter\def\csname#1\endcsname{#2}%
-% \else
-% \expandafter\def\csname#1\expandafter\expandafter\expandafter\endcsname
-% \expandafter\expandafter\expandafter{\csname#1\endcsname,#2}%
-% \fi
-% \else
-% \expandafter\def\csname#1\endcsname{#2}%
-% \fi}
-%
-% or
-%
-% \def\appendtovaluelist#1%
-% {\ifcsname#1\endcsname
-% \expandafter\ifx\csname#1\endcsname\empty
-% \expandafter\noappendtovaluelist\csname#1\expandafter\expandafter\expandafter\endcsname
-% \else
-% \expandafter\doappendtovaluelist\csname#1\expandafter\expandafter\expandafter\endcsname
-% \fi
-% \else
-% \expandafter\noappendtovaluelist\csname#1\expandafter\endcsname
-% \fi}
-
-% \def\doappendtovaluelist#1#2{\expandafter\def\expandafter#1\expandafter{#1,#2}}
-% \def\noappendtovaluelist#1#2{\def#1{#2}}
-
-% \appendtovaluelist{mylist}{aap}
-% \appendtovaluelist{mylist}{noot}
-% \appendtovaluelist{mylist}{mies}
-
-% \showvalue{mylist}
diff --git a/Master/texmf-dist/tex/context/base/mkii/syst-pln.mkii b/Master/texmf-dist/tex/context/base/mkii/syst-pln.mkii
deleted file mode 100644
index 1032b40b595..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/syst-pln.mkii
+++ /dev/null
@@ -1,118 +0,0 @@
-%D \module
-%D [ file=syst-pln,
-%D version=2001.11.16, % 1999.03.17, % an oldie: 1995.10.10
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Efficient \PLAIN\ \TEX\ loading,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-%D This module set a couple of variables to the plain \TEX\
-%D values. Later they might be overloaded.
-
-%D Build||in numeric variables.
-
-\adjdemerits = 10000
-\binoppenalty = 700
-\brokenpenalty = 100
-\clubpenalty = 150
-%day = 0
-\defaulthyphenchar = `\-
-\defaultskewchar = -1
-\delimiterfactor = 901
-\displaywidowpenalty = 50
-\doublehyphendemerits = 10000
-%endlinechar = `\^^M
-\errorcontextlines = 5
-%escapechar = `\\
-\exhyphenpenalty = 50
-%fam = 0
-\finalhyphendemerits = 5000
-%floatingpenalty = 0
-%globaldefs = 0
-%hangafter = 1
-\hbadness = 1000
-%holdinginserts = 0
-\hyphenpenalty = 50
-%interlinepenalty = 0
-%language = 0
-\lefthyphenmin = 2
-\linepenalty = 10
-%looseness = 0
-%mag = 1000
-%maxdeadcycles = 25
-%month = 0
-%newlinechar = -1 % commented i.e. no plain value
-%outputpenalty = 0
-%pausing = 0
-%postdisplaypenalty = 0
-\predisplaypenalty = 10000
-\pretolerance = 100
-\relpenalty = 500
-\righthyphenmin = 3
-\showboxbreadth = 5
-\showboxdepth = 3
-%time = 0
-\tolerance = 200
-%tracingcommands = 0
-\tracinglostchars = 1
-%tracingmacros = 0
-%tracingonline = 0
-%tracingoutput = 0
-%tracingpages = 0
-%tracingparagraphs = 0
-%tracingrestores = 0
-%tracingstats = 0
-\uchyph = 1
-\vbadness = 1000
-\widowpenalty = 150
-%year = 0
-
-%D Build in dimension variables.
-
-\abovedisplayshortskip = 0pt plus 3pt
-\abovedisplayskip = 12pt plus 3pt minus 9pt
-%baselineskip = 0pt
-\belowdisplayshortskip = 7pt plus 3pt minus 4pt
-\belowdisplayskip = 12pt plus 3pt minus 9pt
-\boxmaxdepth = \maxdimen
-\delimitershortfall = 5pt
-%displayindent = 0pt
-%displaywidth = 0pt
-%hangindent = 0pt
-\hfuzz = 0.1pt
-%hoffset = 0pt
-\hsize = 6.5in
-%leftskip = 0pt
-%lineskip = 0pt
-%lineskiplimit = 0pt
-%mathsurround = 0pt
-\maxdepth = 4pt
-\medmuskip = 4mu plus 2mu minus 4mu
-\nulldelimiterspace = 1.2pt
-\overfullrule = 5pt
-\parfillskip = 0pt plus 1fil
-\parindent = 20pt
-\parskip = 0pt plus 1pt
-%predisplaysize = 0pt
-%rightskip = 0pt
-\scriptspace = 0.5pt
-%spaceskip = 0pt
-\splitmaxdepth = \maxdimen
-\splittopskip = 10pt
-%tabskip = 0pt
-\thickmuskip = 5mu plus 5mu
-\thinmuskip = 3mu
-\topskip = 10pt
-\vfuzz = 0.1pt
-%voffset = 0pt
-\vsize = 8.9in
-%xspaceskip = 0pt
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/syst-rtp.mkii b/Master/texmf-dist/tex/context/base/mkii/syst-rtp.mkii
deleted file mode 100644
index fc0f503b062..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/syst-rtp.mkii
+++ /dev/null
@@ -1,18 +0,0 @@
-%D \module
-%D [ file=syst-rtp, % copied from core-job
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=Run Time Processes,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\def\executesystemcommand{\immediate\write18}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/syst-str.mkii b/Master/texmf-dist/tex/context/base/mkii/syst-str.mkii
deleted file mode 100644
index aacb70ec742..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/syst-str.mkii
+++ /dev/null
@@ -1,124 +0,0 @@
-%D \module
-%D [ file=syst-str,
-%D version=2006.09.18,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=String Processing,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-%D We need a convenient way to change lccode vectors.
-
-\dostepwiserecurse{0}{255}{1}
- {\@EA\chardef\csname-\recurselevel\endcsname\recurselevel}
-
-\newtoks\withminorcharacters
-\newtoks\withlowercharacters
-\newtoks\withuppercharacters
-
-\dostepwiserecurse{0}{31}{1}
- {\expanded
- {\appendtoks\noexpand\withcharacter\csname-\recurselevel\endcsname
- \noexpand\to\withminorcharacters}}
-
-\dostepwiserecurse{32}{127}{1}
- {\expanded
- {\appendtoks\noexpand\withcharacter\csname-\recurselevel\endcsname
- \noexpand\to\withlowercharacters}}
-
-\dostepwiserecurse{128}{255}{1}
- {\expanded
- {\appendtoks\noexpand\withcharacter\csname-\recurselevel\endcsname
- \noexpand\to\withuppercharacters}}
-
-\chardef\obeyedlccode=`. % so <32 and >127 chars become .
-
-%D \macros
-%D {retainlccodes}
-%D
-%D One way of manipulating characters is changing the their
-%D \type{\lccode} and applying \type{\lowcase}. An example of
-%D this can be found in \type{spec-mis}.
-
-\def\setownlccode #1{\lccode#1#1}
-\def\setobeyedlccode#1{\lccode#1\obeyedlccode}
-
-\def\obeylccodes
- {\let\withcharacter\setownlccode
- \the\withlowercharacters
- \let\withcharacter\setobeyedlccode
- \the\withminorcharacters
- \the\withuppercharacters
- \relax}
-
-\def\retainlccodes
- {\let\withcharacter\setownlccode
- \the\withlowercharacters
- \the\withminorcharacters
- \the\withuppercharacters
- \relax}
-
-%D I got tired of making dedicated clean up macros using the
-%D same mechanism again and again, so now we have:
-%D
-%D \starttyping
-%D \def\xxxx{abc.d} \replacecharacters\xxxx{a.}{-} \xxxx
-%D \stoptyping
-
-\def\replacecharacters#1#2#3% macro characters replacement
- {\bgroup
- \edef\ascii{#1}%
- \retainlccodes
- \def\docommand##1{\lccode\expandafter`\csname##1\endcsname=\expandafter`\csname#3\endcsname}%
- \handletokens#2\with\docommand
- \lowercase\@EA{\@EA\xdef\@EA\globalascii\@EA{\ascii}}%
- \egroup
- \dodoglobal\let#1\globalascii}
-
-% \bgroup
-% \catcode`\ =\@@other % needed in order to get it visible
-% \lccode`\ =`\-
-% \lowercase{\xdef\globalascii{aap noot}}%
-% \egroup
-%
-% [\globalascii] {\tttf [\globalascii]}
-%
-% interesting:
-%
-% \setvalue{xxx}{oeps}
-% \setvalue{test-test}{\getvalue{xxx}oeps}
-% \bgroup\lccode`\ =`\-\lowercase{\egroup\csname test test\endcsname}
-%
-% \setvalue{test\string~test}{\getvalue{xxx}oeps}
-% \bgroup\lccode`\ =`\~\lowercase{\egroup\csname test test\endcsname}
-%
-% \bgroup\catcode`\~=\@@letter\lowercase{\egroup\csname test~test\endcsname}
-
-\def\separatestring#1\to#2%
- {\bgroup
- \retainlccodes
- \lccode `\ =`\,%
- % when typesetting: \catcode`\ =\@@other
- \edef\ascii{#1}%
- \lowercase\@EA{\@EA\xdef\@EA\globalascii\@EA{\ascii}}%
- \egroup
- \let#2\globalascii}
-
-\def\unspacefilename#1\to#2%
- {\bgroup
- \def\obeyedspace{-}%
- \sanitizefilename#1\to\ascii
- \retainlccodes
- \lccode `\ =`\-%
- % when typesetting: \catcode`\ =\@@other
- \lowercase\@EA{\@EA\xdef\@EA\globalascii\@EA{\ascii}}%
- \egroup
- \let#2\globalascii}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/tabl-ltb.mkii b/Master/texmf-dist/tex/context/base/mkii/tabl-ltb.mkii
deleted file mode 100644
index bac2b589376..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/tabl-ltb.mkii
+++ /dev/null
@@ -1,866 +0,0 @@
-%D \module
-%D [ file=tabl-ltb,
-%D version=2002.10.31,
-%D title=\CONTEXT\ Table Macros,
-%D subtitle=Line Tables,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% testfile: tfmetrics.tex
-
-% todo: als nx>1, dan in geval van rek tussenruimte berekenen en optellen
-% bij breedte, dus: nx nog niet gebruiken in combinatie met rek ! ! ! ! !
-
-% This module is experimental, undocumented, and currently only set up
-% eTeX. It provides a mechanism for typesetting very large tables,
-% spanning many pages horizontally and vertically, with repeated
-% header lines and (entry) columns, tab tracking, color, etc. In does
-% two passes over a table, which is why the table goes into a
-% buffer or file. As said, tables can be real huge.
-
-% \BH \BC .. \EC \BC .. \EC \EH % append
-% \BR \BC .. \EC \BC .. \EC \ER
-%
-% or
-%
-% \NC .. \NC .. \NC \NR (todo: optional last \NC)
-
-% alternative:
-%
-% (1) direct run, save content in macro, but only if needed
-%
-% todo
-%
-% (2) buffered table content
-%
-% \startbuffer
-% \startlinetablehead
-% \stoplinetablehead
-% \startlinetablebody
-% \stoplinetablebody
-% \stopbuffer
-%
-% \processlinetablebuffer[buffer]
-%
-% in buffer : head and body
-%
-% (3) unbuffered run, multipass
-%
-% - run with starting width zero / prev run
-% - clip on prev run
-% - flush real widths
-
-\writestatus{loading}{ConTeXt Table Macros / Line Tables}
-
-\unprotect
-
-\chardef\linetablesplitstate\zerocount
-\chardef\linetableheadstate \zerocount
-
-\edef\??ler{\??le:r:}
-\edef\??lec{\??le:c:}
-\edef\??lew{\??le:w:}
-\edef\??leh{\??le:h:}
-\edef\??led{\??le:d:}
-
-\newif\iflinetablepreroll
-\newif\ifinlinetable
-
-\newcount\linetablecolumn
-\newcount\linetablesubcol
-\newdimen\linetablewidth
-\newdimen\linetableheight
-\newbox \linetablecell
-
-\let\noflinetablecolumns\!!zerocount
-\let\noflinetablerows \!!zerocount
-\let\noflinetablelines \!!zerocount
-\let\noflinetableparts \!!zerocount
-\let\linetablepart \!!plusone
-\let\linetablestep \!!plusone
-\let\linetableline \!!zerocount
-\let\linetablerow \!!zerocount
-\let\linetablerows \!!zerocount
-
-\initializetablebox \zerocount % holds repeater
-
-\chardef\linetablehmode \zerocount
-\chardef\linetablepage \zerocount
-\chardef\linetablerepeat\zerocount
-
-\def\setuplinetable
- {\dotripleempty\dosetuplinetable}
-
-\def\dosetuplinetable[#1][#2][#3]%
- {\ifthirdargument
- \getparameters[\??le:#1:#2][#3]%
- \else\ifsecondargument
- \getparameters[\??lec#1][#2]%
- \else
- \getparameters[\??le][#1]%
- \fi\fi}
-
-\setuplinetable
- [\c!n=\!!maxcard,
- \c!lines=\!!maxcard,
- \c!nx=\plusone,
- \c!nleft=0,
- \c!repeat=\v!yes, % when \c!nleft>0, repeat on both pages
- \c!before=,
- \c!after=,
- \c!inbetween=\page,
- \c!distance=\zeropoint,
- \c!stretch=\v!no,
- \c!align=\c!right,
- \c!leftoffset=.25ex,
- \c!rightoffset=\linetableparameter\c!leftoffset,
- \c!maxwidth=\zeropoint,
- \c!width=5em,
- \c!height=\v!fit, % \v!line = faster
- \c!background=,
- \c!backgroundcolor=]
-
-\def\linetableparameter#1%
- {\csname\??le#1\endcsname}
-
-\def\doifelselinetablecparameter#1%
- {\ifcsname\??lec\number\linetablecolumn#1\endcsname
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\def\linetablecparameter#1%
- {\csname
- \ifcsname\??lec\number\linetablecolumn#1\endcsname
- \??lec\number\linetablecolumn
- \else
- \??le
- \fi
- #1\endcsname}
-
-\def\linetablerparameter#1% faster, leaner and meaner
- {\csname
- \ifnum\linetablerow=\zerocount % geen ifcase
- \ifcsname\??ler\v!header#1\endcsname
- \??ler\v!header#1%
- \else\ifcsname\??ler0#1\endcsname
- \??ler0#1%
- \else
- \s!empty
- \fi\fi
- \else
- \ifcsname\??ler\number\linetablerow#1\endcsname
- \??ler\number\linetablerow#1%
- \else\ifcsname\??ler\v!oddeven\linetablerow#1\endcsname
- \??ler\v!oddeven\linetablerow#1%
- \else
- \s!empty
- \fi\fi
- \fi
- \endcsname}
-
-\def\setnoftableslines
- {\doifelse{\linetableparameter\c!lines}\v!fit
- {% whitespace already added by vertical strut
- \ifdim\pagegoal<\maxdimen
- \scratchdimen\pagegoal
- \advance\scratchdimen -\pagetotal
- \else
- \scratchdimen\textheight
- \fi
- \getrawnoflines\scratchdimen
- \xdef\noflinetablelines{\the\noflines}
-\iflinetablepreroll \else \ifnum\noflinetablelines<\plustwo
- \page \setnoftableslines
-\fi \fi
-}
- {\xdef\noflinetablelines{\linetableparameter\c!lines}}}
-
-\def\startlinetablecell
- {\dosingleempty\dostartlinetablecell}
-
-\def\dostartlinetablecell[#1]%
- {\global\setbox\linetablecell\hbox\bgroup
- \iffirstargument
- \getparameters[\??lec\number\linetablecolumn][#1]%
- \fi
- \xdef\linetablestep{\linetablecparameter\c!nx}%
- \ifcase\linetablestep\or
- \scratchdimen\linetablecparameter\c!width
- \scratchskip \linetablecparameter\c!distance
- \else
- \scratchdimen \zeropoint
- \scratchskip \zeropoint
- \scratchcounter\linetablecolumn
- \dorecurse\linetablestep
- {\advance\scratchdimen\linetablecparameter\c!width
- %\advance\scratchskip \linetablecparameter\c!distance
- \global\advance \linetablecolumn\plusone
- \advance\scratchskip \linetablecparameter\c!distance
- }%
- \global\linetablecolumn\scratchcounter
- \fi
- \chardef\linetablemode
- \iflinetablepreroll
- \ifdim\scratchdimen>\zeropoint \zerocount \else \plustwo \fi
- \else
- \zerocount
- \fi
- \ifcase\linetablemode
- \ifcase\linetablehmode
- % nothing
- \or
- % fit, keep it simple
- \or
- \chardef\linetablemode\plusone % line
- \else
- % some already calculated height
- \fi
- \fi
- \setbox\scratchbox\hbox
- \bgroup
- \dontcomplain
- \hskip\linetablecparameter\c!leftoffset\relax
- % 0 = width, unknown height
- % 1 = width, fixed height
- % 2 = no width, auto hsize
- \ifnum\linetablemode<\plustwo
- \advance\scratchdimen-\linetablecparameter\c!leftoffset
- \advance\scratchdimen-\linetablecparameter\c!rightoffset
- \fi
- \ifcase\linetablemode
- \dosetraggedcommand{\linetablecparameter\c!align}%
- \vtop \ifdim\linetableheight>\zeropoint to\linetableheight \fi \bgroup
- \hsize\scratchdimen
- \raggedcommand
- \else
- \setalignmentswitch{\linetablecparameter\c!align}%
- \hbox \ifcase\linetablemode \or to\scratchdimen \fi \bgroup
- \ifcase\alignmentswitch\hss\or\hss\fi
- \fi
- \dostartattributes{\??lec\number\linetablecolumn}\c!style\c!color\empty
- \begstrut \ignorespaces}
-
-% \def\stoplinetablecell
-% {\unskip \endstrut
-% \dostopattributes
-% \ifcase\linetablemode
-% \endgraf
-% \else
-% \ifcase\alignmentswitch\else\hss\fi
-% \fi
-% \egroup
-% \hskip\linetablecparameter\c!rightoffset
-% \egroup
-% \iflinetablepreroll
-% \box\scratchbox
-% \else
-% \doif{\linetablecparameter\c!background}\v!color
-% {\backgroundline[\linetablecparameter\c!backgroundcolor]}%
-% {\box\scratchbox}%
-% \fi
-% \egroup}
-
-\newconditional\linetableautoheight \settrue\linetableautoheight
-
-\def\stoplinetablecell
- {\unskip \endstrut
- \dostopattributes
- \ifcase\linetablemode
- \endgraf
- \else
- \ifcase\alignmentswitch\else\hss\fi
- \fi
- \egroup
- \hskip\linetablecparameter\c!rightoffset
- \egroup
- \iflinetablepreroll
- \box\scratchbox
- \else
- \doifelse{\linetablecparameter\c!background}\v!color
- {\ifconditional\linetableautoheight
- \hbox{\blackrule
- [ \c!color=\linetablecparameter\c!backgroundcolor,
- \c!height=\linetablerparameter{x\c!height},
- \c!depth=\linetablerparameter{x\c!depth},
- \c!width=\wd\scratchbox]%
- \hskip-\wd\scratchbox\box\scratchbox}%
- \else
- \backgroundline[\linetablecparameter\c!backgroundcolor]{\box\scratchbox}%
- \fi}%
- {\box\scratchbox}%
- \fi
- \egroup}
-
-% \def\stoplinetablecell
-% {\unskip \endstrut
-% \dostopattributes
-% \ifcase\linetablemode
-% \endgraf
-% \else
-% \ifcase\alignmentswitch\else\hss\fi
-% \fi
-% \egroup
-% \hskip\linetablecparameter\c!rightoffset
-% \egroup
-% \iflinetablepreroll
-% \box\scratchbox
-% \else
-% \doifelse{\linetablecparameter\c!background}\v!color
-% {\ifconditional\linetableautoheight
-% % \hbox{\blackrule
-% % [ \c!color=\linetablecparameter\c!backgroundcolor,
-% % \c!height=\linetablerparameter{x\c!height},
-% % \c!depth=\linetablerparameter{x\c!depth},
-% % \c!width=\wd\scratchbox]%
-% % \hskip-\wd\scratchbox\box\scratchbox}%
-% \dp\scratchbox\linetablerparameter{x\c!depth}%
-% \ht\scratchbox\linetablerparameter{x\c!height}%
-% \framed
-% [\c!offset=\v!overlay,
-% \c!frameoffset=.5\linewidth,
-% \c!leftframe=\v!off,\c!rightframe=\v!off,
-% \c!background=\v!color,
-% \c!backgroundcolor=\linetablecparameter\c!backgroundcolor%
-% ]{\box\scratchbox}%
-% \else
-% \backgroundline[\linetablecparameter\c!backgroundcolor]{\box\scratchbox}%
-% \fi}%
-% {\box\scratchbox}%
-% \fi
-% \egroup}
-
-\def\savelinetablepart
- {\global\setbox\tablebox\linetablepart
- \ifnum\linetablepart=\zerocount
- \box\scratchbox % just storing
- \else
- \vbox
- {\ifvoid\tablebox\linetablepart\else\unvbox\tablebox\linetablepart\fi
- \doif{\linetablerparameter\c!background}\v!color
- {\backgroundline[\linetablerparameter\c!backgroundcolor]}%
- {\box\scratchbox}% is also arg to \backgroundline
- \endgraf
- \linetablerparameter\c!after}%
- \fi}
-
-\def\flushlinetableparts
- {\doglobal\increment\linetableline
- \ifnum\linetableline<\noflinetablelines
- % keep collecting
- \else
- \iflinetablepreroll
- % forget about them
- \else
- \dorecurse\noflinetableparts
- {\let\linetablepart\recurselevel
- \dp\tablebox\linetablepart\strutdepth
- % noindent en endgraf needed else whitespace mess-up!
- \whitespace % here not after verticalstrut
- \ifdim\topskipgap=\zeropoint\else
- \verticalstrut\nobreak\kern-\struttotal\kern-\parskip\nobreak\nointerlineskip % fix topskip
- \fi
- \noindent\strut\hbox to \hsize{\box\tablebox\linetablepart\hss}\endgraf
- \ifnum\linetablepart<\noflinetableparts\relax
- \linetableparameter\c!inbetween
- \fi}%
- \ifnum\linetablerows<\noflinetablerows\relax
- \linetableparameter\c!inbetween
- \else
- % after, later
- \fi
- \chardef\linetableheadstate\plusthree
- \global\setbox\tablebox\zerocount\emptybox % here
- \fi
- % reset \linetablerow will be an option, currently
- % starts at zero after split
- \globallet\linetablerow\!!zerocount
- \globallet\linetableline\!!zerocount
- \global\chardef\linetablepage\zerocount
- \global\linetablewidth\zeropoint
- \setnoftableslines
- \fi}
-
-\def\startlinetablepart
- {\global\linetablesubcol\zerocount
- \setbox\scratchbox\hbox\bgroup
- \doconvertfont{\linetablerparameter\c!style}%
- \startcolor[\linetablerparameter\c!color]%
- \ignorespaces}
-
-\def\stoplinetablepart
- {\ifnum\linetablepart>\zerocount
- \unskip \unskip % remove last intercolumn skip (distance+fill)
- \fi
- \stopcolor
- \egroup
- \iflinetablepreroll \else
- \ifcase\linetablepart
- % we're collecting the repeater
- \else
- \scratchdimen\hsize \advance\scratchdimen-\wd\scratchbox\relax
- \ifdim\scratchdimen>\linetableparameter\c!stretch\else
- \setbox\scratchbox\hbox to \hsize{\unhbox\scratchbox}%
- \fi
- \fi
- \fi}
-
-\def\checklinetablepart
- {\global\advance\linetablewidth\wd\linetablecell
- \global\advance\linetablecolumn\linetablestep
- \global\advance\linetablesubcol\linetablestep
- \relax
- %\message{\the\linetablecolumn,\the\linetablesubcol}\wait
- % from now on the column counter is already incremented
- \ifcase\linetablesplitstate
- \iflinetablepreroll \else
- \box\linetablecell
- % the columncounter is one ahead !
-% \hskip\linetablecparameter\c!afstand
- \hskip\scratchskip
- \fi
- %%%
- \donefalse
- \ifcase\linetablerepeat\else
- % van te voren berekenen
- \scratchcounter\linetablecolumn\advance\scratchcounter-\plustwo
- \ifnum\linetablerepeat=\scratchcounter
- \donetrue % collecting repeater
- \fi
- \fi
- %%%%
- \ifdone
- % collecting repeater
- \else
- \ifnum\linetablecolumn>\getvalue{\??le::\linetablepart}\relax
- \donetrue
- \fi
- \fi
- \ifdone
- \stoplinetablepart
- \iflinetablepreroll \else
- \savelinetablepart
- \fi
- \ifcase\linetablepage \or
- \global\chardef\linetablepage \plustwo
- \else
- \global\chardef\linetablepage \plusone
- \fi
- \doglobal\increment\linetablepart
- \global\linetablewidth\wd\tablebox\zerocount
- \startlinetablepart
- \fi
- \else
- \donefalse
- \!!doneafalse
- \ifcase\linetablerepeat\else
- % van te voren berekenen
- \scratchcounter\linetablecolumn \advance\scratchcounter-\plustwo
- \ifnum\linetablerepeat=\scratchcounter
- \donetrue % collecting repeater
- \fi
- \fi
- \ifdone
- \!!doneatrue
- % collecting repeater
- \else\ifdim\linetablewidth>\hsize
- \donetrue
- \else
-% \global\advance\linetablewidth\linetablecparameter\c!afstand\relax
- \global\advance\linetablewidth\scratchskip
- \ifdim\linetablewidth>\hsize % ?
- \donetrue
- \fi
- \fi\fi
- \ifdone
- \stoplinetablepart
- \savelinetablepart
- \ifcase\linetablepage \or
- \global\chardef\linetablepage \plustwo
- \else
- \global\chardef\linetablepage \plusone
- \fi
- \doglobal\increment\linetablepart
- \ifnum\linetablepart>\noflinetableparts
- \globallet\noflinetableparts\linetablepart
- \initializetablebox\linetablepart
- \fi
- \global\linetablewidth\wd\linetablecell
- \startlinetablepart
- \if!!doneb \else \ifcase\linetablerepeat \else
- % check for left/right page
- \ifcase\linetablepage\donetrue\or\donetrue\or\donefalse\fi\ifdone
- % insert repeater
- \global\advance\linetablewidth\wd\tablebox\zerocount
- \iflinetablepreroll\kern\wd\else\unhcopy\fi\tablebox\zerocount
- \fi
- \fi \fi
- \fi
- \iflinetablepreroll \else
- \box\linetablecell
- % the columncounter is one ahead !
-% \hskip\linetablecparameter\c!afstand
-% \hskip\scratchskip
-\dorecurse\linetablestep{\strut\hfil}%
- \hskip\scratchskip
- \fi
- \fi}
-
-% \linetableparameter\c!var -> \@@levar (when no classes)
-
-\def\startlinetablerun % to do: quit when nested
- {\bgroup
- \inlinetabletrue
- % autowidth
- \doif{\linetableparameter\c!maxwidth}\v!fit
- {\setuplinetable[\c!maxwidth=\zeropoint]}%
- \processaction
- [\linetableparameter\c!stretch]
- [ \v!no=>{\setuplinetable[\c!stretch=\maxdimen]},% no stretch
- \v!yes=>{\setuplinetable[\c!stretch=\zeropoint]}]% max stretch
- \chardef\linetablerepeat\linetableparameter\c!nleft
- \chardef\linetablesplitstate % =
- \ifdim\linetableparameter\c!maxwidth>\zeropoint
- \zerocount \else \plusone
- \fi
- % optional prevdepth correction
- \iflinetablepreroll
- \globallet\noflinetablerows\!!zerocount
- \else
- \linetableparameter\c!before
- \fi
- \globallet\linetablerows\!!zerocount
- \globallet\noflinetablecolumns\!!zerocount
- \globallet\noflinetableparts\!!zerocount
- \!!counta\zerocount
- \def\docommand##1%
- {\doglobal\increment\noflinetableparts
- \advance\!!counta##1%
- \setxvalue{\??le::\noflinetableparts}{\the\!!counta}}%
- \processcommacommand[\linetableparameter\c!n]\docommand
- \initializetableboxes\noflinetableparts
- \ifcase\linetablerepeat
- \globallet\linetablepart\!!plusone
- \else
- \globallet\linetablepart\!!zerocount % repeater
- \fi
- \globallet\linetablestep\!!plusone
- \globallet\linetableline\!!zerocount
- \globallet\linetablerow \!!zerocount
- \global\linetablecolumn \zerocount
- \global\linetablesubcol \zerocount
- \global\linetablewidth \zeropoint
-\iflinetablepreroll \else \ifdim\pagetotal>\zeropoint
- \verticalstrut\kern-\struttotal
-\fi \fi
- \setnoftableslines
- \checklinetablepage
- \let\BR\linetableBR
- \let\ER\linetableER
- \let\BH\linetableBR
- \let\EH\linetableER
- \let\BC\linetableBC
- \let\EC\linetableEC
- \let\NC\linetableNC
- \let\NR\linetableNR
- \flushlinetablehead}
-
-\def\stoplinetablerun
- {\globallet\linetableline\!!maxcard
- \chardef\linetableheadstate\zerocount % blocked
- \flushlinetableparts
- \iflinetablepreroll \else
- \linetableparameter\c!after
- \fi
- \globallet\linetablepart \!!zerocount
- \globallet\noflinetableparts\!!zerocount
- \egroup}
-
-% \def\checklinecolumnwidth
-% {\ifundefined{\??lew\number\linetablecolumn}%
-% \donetrue
-% \else\ifdim\getvalue{\??lew\number\linetablecolumn}<\wd\linetablecell
-% \donetrue
-% \else
-% \donefalse
-% \fi\fi
-% \ifdone
-% \setxvalue{\??lew\number\linetablecolumn}{\the\wd\linetablecell}%
-% \fi}
-%
-% \def\checklinecolumnwidth
-% {\ifcsname\??lew\number\linetablecolumn\endcsname
-% \ifdim\csname\??lew\number\linetablecolumn\endcsname<\wd\linetablecell
-% \donetrue
-% \else
-% \donefalse
-% \fi
-% \else
-% \donetrue
-% \fi
-% \ifdone
-% \setxvalue{\??lew\number\linetablecolumn}{\the\wd\linetablecell}%
-% \fi}
-
-% \def\checklinecolumnwidth
-% {\expandafter\xdef\csname\??lew\number\linetablecolumn\endcsname
-% {\expandafter\ifx\csname\??lew\number\linetablecolumn\endcsname\relax
-% \the\wd\linetablecell
-% \else\ifdim\csname\??lew\number\linetablecolumn\endcsname<\wd\linetablecell
-% \the\wd\linetablecell
-% \else
-% \csname\??lew\number\linetablecolumn\endcsname
-% \fi\fi}}
-
-\def\checklinecolumndimension#1#2#3%
- {\expandafter\xdef\csname#1\number#3\endcsname
- {\expandafter\ifx\csname#1\number#3\endcsname\relax
- \the#2\linetablecell
- \else\ifdim\csname#1\number#3\endcsname<#2\linetablecell
- \the#2\linetablecell
- \else
- \csname#1\number#3\endcsname
- \fi\fi}}
-
-\def\checklinecolumnwidth {\checklinecolumndimension\??lew\wd\linetablecolumn}
-\def\checklinecolumnheight{\checklinecolumndimension\??leh\ht\linetablerow}
-\def\checklinecolumndepth {\checklinecolumndimension\??led\dp\linetablerow}
-
-\def\linetableBR
- {\dosingleempty\dolinetableBR}
-
-\def\dolinetableBR[#1]% #1 not yet implemented
- {\ifnum\linetableheadstate=1\else
- \doglobal\increment\linetablerow
- \doglobal\increment\linetablerows
- \fi
- \global\linetablecolumn\plusone
- \global\linetablesubcol\plusone
-% \linetableheight\linetablerparameter\c!height
-%
-% \ifx\linetableheight\empty
-% % nothing
-% \else\ifx\linetableheight\v!fit
-% % keep it simple
-% \else\ifx\linetableheight\v!line
-% \chardef\linetablemode\plusone
-% \else
-% \!!heighta\linetableheight
-% \advance\!!heighta-\strutdepth
-% \fi\fi\fi
-%
- \linetableheight\zeropoint
- \edef\!!stringa{\linetablerparameter\c!height}%
- \ifx\!!stringa\empty
- \chardef\linetablehmode\zerocount
- \else\ifx\!!stringa\v!fit
- \chardef\linetablehmode\plusone
- \else\ifx\!!stringa\v!line
- \chardef\linetablehmode\plustwo
- \else
- \linetableheight\!!stringa
- \advance\linetableheight-\strutdepth
- \fi\fi\fi
-%
- \startlinetablepart}
-
-\def\linetableBC
- {\startlinetablecell}
-
-\def\linetableEC
- {\stoplinetablecell
- \iflinetablepreroll
- \checklinecolumnwidth
- \checklinecolumnheight
- \checklinecolumndepth
- \fi
- \checklinetablepart}
-
-\def\linetableER
- {% \stoplinetablecell
- % no \box\linetablecell, i.e. dummy columnn, last \NC \NR
- \stoplinetablepart
- \savelinetablepart
- \advance\linetablecolumn \minusone
- \ifnum\linetablecolumn>\noflinetablecolumns
- \xdef\noflinetablecolumns{\number\linetablecolumn}%
- \fi
- \flushlinetableparts
- \global\linetablecolumn\zerocount
- \global\linetablewidth \zeropoint
- \ifcase\linetablerepeat
- \globallet\linetablepart\!!plusone
- \else
- \globallet\linetablepart\!!zerocount % repeater
- \fi
- \checklinetablepage
- \flushlinetablehead}
-
-\def\checklinetablepage
- {\global\chardef\linetablepage\zerocount
- \ifcase\linetablerepeat \else \ifcase\linetablepage
- \doif{\linetableparameter\c!repeat}\v!no
- {\global\chardef\linetablepage\doifoddpageelse\plusone\plustwo}%
- \fi \fi}
-
-\def\flushlinetablehead
- {\ifcase\linetableheadstate
- % 0 blocked
- \or
- % 1 doing head
- \or
- % 2 head done
- \or
- % 3 trigger flush
- \chardef\linetableheadstate\plusone
- \the\@@linetablehead\relax
- \chardef\linetableheadstate\plustwo
- \fi}
-
-\def\linetableNC % first time special treatment
- {\relax
- \ifcase\linetablecolumn
- \linetableBR
- \else
- \linetableEC
- \fi
- \linetableBC} % beware, this will result in BR BC EC BC NR
-
-\def\linetableNR
- {\stoplinetablecell % dummy
- \linetableER}
-
-\def\startlinetable
- {\startlinetablerun}
-
-\def\stoplinetable
- {\stoplinetablerun}
-
-\def\startlinetableanalysis
- {\bgroup
- \linetableprerolltrue
- \trialtypesettingtrue
- \startlinetablerun}
-
-\def\stoplinetableanalysis
- {\stoplinetablerun
- \egroup
- \globallet\noflinetablerows\linetablerows
- \dorecurse\noflinetablerows % global, from last run {\linetableparameter\c!n}
- {%\writestatus{linetable}{\recurselevel->\getvalue{\??lew\recurselevel}}%
- \setevalue{\??ler\recurselevel x\c!height}{\getvalue{\??leh\recurselevel}}%
- \setevalue{\??ler\recurselevel x\c!depth }{\getvalue{\??led\recurselevel}}%
- \letgvalue{\??leh\recurselevel}\!!zeropoint
- \letgvalue{\??led\recurselevel}\!!zeropoint}
- \dorecurse\noflinetablecolumns % global, from last run {\linetableparameter\c!n}
- {%\writestatus{linetable}{\recurselevel->\getvalue{\??lew\recurselevel}}%
- \setevalue{\??lec\recurselevel\c!width}{\getvalue{\??lew\recurselevel}}%
- \letgvalue{\??lew\recurselevel}\!!zeropoint}} % init next table
-
-% todo: store in box instead of macro
-
-\newtoks \@@linetablehead
-
-\long\def\startlinetablehead#1\stoplinetablehead
- {\ifinlinetable
- \@@linetablehead\emptytoks
- \fi
- \chardef\linetableheadstate3 % full
- \@@linetablehead{#1}%
- \ifinlinetable
- \flushlinetablehead
- \fi}
-
-\def\linetableBH
- {\ifx\EC\relax
- % signal, grabbing lines
- \else
- \@@linetablehead\emptytoks
- \fi
- \pushmacro\BC
- \pushmacro\EC
- \def\BC##1\EC{\appendtoks##1\to\@@linetablehead}%
- \let\EC\relax} % signal
-
-\def\linetableEH
- {\popmacro\EC
- \popmacro\BC
- \@EA\startlinetablehead\the\@@linetablehead\stoplinetablehead}
-
-\let\startlinetablebody\donothing
-\let\stoplinetablebody \donothing
-
-\def\processlinetablebuffer
- {\dosingleempty\doprocesslinetablebuffer}
-
-\def\doprocesslinetablebuffer[#1]%
- {\bgroup
- \let\startlinetable\donothing
- \let\stoplinetable \donothing
- \startlinetableanalysis\getbuffer[#1]\stoplinetableanalysis
- \startlinetablerun \getbuffer[#1]\stoplinetablerun
- \egroup}
-
-\def\processlinetablefile#1%
- {\bgroup
- \let\startlinetable\donothing
- \let\stoplinetable \donothing
- \startlinetableanalysis\readfile{#1}\donothing\donothing\stoplinetableanalysis
- \startlinetablerun \readfile{#1}\donothing\donothing\stoplinetablerun
- \egroup}
-
-% will go away:
-
-\def\processlinetableXMLfile#1%
- {\bgroup
- \let\startlinetable\donothing
- \let\stoplinetable \donothing
- \startlinetableanalysis\processXMLfile{#1}\stoplinetableanalysis
- \startlinetablerun \processXMLfile{#1}\stoplinetablerun
- \egroup}
-
-\protect \endinput
-
-\doifnotmode{demo}{\endinput}
-
-\setuplinetable[n=6,m={2,2,2},lines=25] % m ?
-
-\setuplinetable[c][1] [width=2cm,background=color,backgroundcolor=red]
-\setuplinetable[c][4] [width=3cm,background=color,backgroundcolor=yellow]
-\setuplinetable[c][6] [width=3cm,background=color,backgroundcolor=magenta]
-\setuplinetable[r][odd] [background=color,backgroundcolor=gray]
-\setuplinetable[r][even][background=color,backgroundcolor=green]
-
-\starttext
-
-\showframe \showstruts
-
-\setupcolors[state=start]
-
-\setuppagenumbering[alternative=doublesided]\page[left]
-
-\startlinetable
-\NC aaa\crlf aaa \NC bb \NC c \NC ddddd \NC eeee \NC ff \NC \NR
-\dorecurse{100}{\NC aaa \NC bb \NC c \NC ddddd \NC eeee \NC ff \NC \NR}
-\stoplinetable
-
-\startlinetable
-\NC[style=slanted,color=green,background=color,backgroundcolor=darkred,nx=2,uitlijnen=middle] xxx
- \NC yy \NC ddddd \NC eeee \NC ff \NC \NR
-\dorecurse{100}{\NC aaa \NC bb \NC c \NC ddddd \NC eeee \NC ff \NC \NR}
-\stoplinetable
-
-% \startbuffer[lt]
-% \NC aaa\crlf aaa \NC bb \NC c \NC ddddd \NC ee \NC ff \NC \NR
-% \NC aaa\crlf aaa \NC b \NC cc \NC ddd \NC eeee \NC f \NC \NR
-% \stopbuffer
-%
-% \processlinetablebuffer[lt]
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkii/tabl-ntb.mkii b/Master/texmf-dist/tex/context/base/mkii/tabl-ntb.mkii
deleted file mode 100644
index fbf43eb1edc..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/tabl-ntb.mkii
+++ /dev/null
@@ -1,1611 +0,0 @@
-%D \module
-%D [ file=core-ntb,
-%D version=2000.04.18,
-%D title=\CONTEXT\ Table Macros,
-%D subtitle=Natural Tables,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This is an unfinished, preliminary module. At least two
-%D runs are needed to get the table fixed. Ugly code.
-
-% todo: special parsetb for argless variant
-% todo: protect \tbl...
-% todo: tblnx also count
-% todo: get rid of recurse
-% todo: fast if
-% todo: avoid halign (just do it manual) and thereby globals
-
-% optie=rek beschrijven
-
-\writestatus{loading}{ConTeXt Table Macros / Natural Tables}
-
-%D As always, this is the nth version. Much time went in
-%D trying to speed up the many cell calculations, some
-%D optimizations were rejected in order not to complicate this
-%D module too much (and in order to prevail extensibility).
-
-% shapebox fails here in mkii
-%
-% \setupcolors[state=start]
-% \bTABLE
-% \bTR [align=middle]\bTH Range\eTH{}\bTH Value\eTH{}\eTR
-% \bTR \bTD \type{<} 12\eTD{}\bTD 3\eTD{}\eTR
-% \bTR \bTD 12--16\eTD{}\bTD 2\eTD{}\eTR
-% \bTR \bTD \type{>}16\eTD{}\bTD 1\eTD{}\eTR
-% \eTABLE
-
-% \starttext
-% \placefigure[left]{}{}
-% \startlinecorrection \dontleavehmode \bTABLE
-% \bTR \bTD oeps \eTD \eTR
-% \eTABLE
-% \stoplinecorrection
-% \placefigure[right]{}{}
-% \startlinecorrection \dontleavehmode \bTABLE
-% \bTR \bTD oeps \eTD \eTR
-% \eTABLE
-% \stoplinecorrection
-% \stoptext
-
-%D To Do:
-%D
-%D \starttyping
-%D splitsen = ja | herhaal => als nofTH>1 then ja als herhaal
-%D \stoptyping
-
-%D To Do:
-%D
-%D \starttyping
-%D break over pagina
-%D kop herhalen
-%D reset settings
-%D
-%D \setupTABLE [c|column|x] [nx|odd|even|first|last][a=b]
-%D \setupTABLE [r|row |y] [nx|odd|even|first|last][a=b]
-%D \setupTABLE [nx|odd|even|first|last][ny|odd|even|first|last][a=b]
-%D \setupTABLE [nx|odd|even|first|last] [a=b]
-%D \setupTABLE [a=b]
-%D
-%D \bTH \eTH
-%D \stoptyping
-
-% the section setup does not work yet, data needs to be stored,
-% i.e.each row should know if it's a head/body/foot, and there
-% should be \setupTABLE[head]... and alike
-
-\unprotect
-
-%D A simple way to force equal line spacing is to say:
-%D
-%D \starttyping
-%D \def\bTBLCELL{\begstrut}
-%D \def\eTBLCELL{\endstrut}
-%D \stoptyping
-
-%D 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 \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-\def\bTBLCELL % why not \doinhibitblank
- {\inhibitblank
- \doconvertfont\tbltblstyle\empty
- \everypar{\tbltblleft\delayedbegstrut}}
-
-\def\eTBLCELL
- {\ifhmode
- \delayedendstrut
- \tbltblright
- \par % added 13/4/2006
- \else
- % not sure yet:\tbltblright
- \par
- \ifdim\prevdepth<\zeropoint % =-1000pt ?
- \vskip-\strutdp
- \else
- \removebottomthings
- \fi
- \fi}
-
-\newcount\currenttbl
-
-\def\@@tbl{tbl} \def\tblcell{1} \def\tblnone{2}
-
-\def\@@tblprefix{tbl:} \let\@@rawtblprefix\@@tblprefix
-
-%D This should be done more efficient: soon
-
-% \let as well as \expandafter\edef's
-
-\newcounter\TBLlevel
-
-\def\@@tblprefix{\@@tbl:\ifnum\TBLlevel>1 :\TBLlevel:\fi}
-
-% \def\tblsetprefix % not yet used, figure out when .. may interfere with setup
-% {\edef\@@tblprefix{\@@tbl:\ifnum\TBLlevel>1 :\TBLlevel:\fi}}
-
-\def\settblnob#1{\expandafter\let\csname\@@tblprefix\number#1:b\endcsname\plusone}
-\def\gettblnob#1{\ifcsname\@@tblprefix\number#1:b\endcsname\plusone\else\zerocount\fi}
-
-\def\settbltag#1#2{\expandafter\edef\csname\@@tblprefix\number#1:\number#2:s\endcsname}
-\def\settblcol#1#2{\expandafter\edef\csname\@@tblprefix\number#1:\number#2:c\endcsname}
-\def\settblrow#1#2{\expandafter\edef\csname\@@tblprefix\number#1:\number#2:r\endcsname}
-
-\def\lettbltag#1#2{\expandafter\let\csname\@@tblprefix\number#1:\number#2:s\endcsname}
-\def\lettblcol#1#2{\expandafter\let\csname\@@tblprefix\number#1:\number#2:c\endcsname}
-\def\lettblrow#1#2{\expandafter\let\csname\@@tblprefix\number#1:\number#2:r\endcsname}
-
-\def\settblwd#1#2{\expandafter\xdef\csname\@@tblprefix\number#1:\number#2:wd\endcsname} % global !
-\def\settblht#1#2{\expandafter\xdef\csname\@@tblprefix\number#1:\number#2:ht\endcsname} % global !
-\def\lettblwd#1#2{\global\expandafter\let\csname\@@tblprefix\number#1:\number#2:wd\endcsname} % global !
-\def\lettblht#1#2{\global\expandafter\let\csname\@@tblprefix\number#1:\number#2:ht\endcsname} % global !
-
-\def\gettbltag#1#2{\csname\@@tblprefix\number#1:\number#2:s\endcsname}
-\def\gettblcol#1#2{\csname\@@tblprefix\number#1:\number#2:c\endcsname}
-\def\gettblrow#1#2{\csname\@@tblprefix\number#1:\number#2:r\endcsname}
-
-\def\gettblwd #1#2{\csname\@@tblprefix\number#1:\number#2:wd\endcsname}
-\def\gettblht #1#2{\csname\@@tblprefix\number#1:\number#2:ht\endcsname}
-
-\def\settblwid#1{\expandafter\xdef\csname\@@tblprefix\number#1:w\endcsname} % {#2} global !
-\def\settblhei#1{\expandafter\xdef\csname\@@tblprefix\number#1:h\endcsname} % {#2} global !
-\def\settbldis#1{\expandafter\xdef\csname\@@tblprefix\number#1:d\endcsname} % {#2} global !
-\def\settblaut#1{\expandafter\xdef\csname\@@tblprefix\number#1:a\endcsname} % {#2} global !
-
-\def\lettblwid#1{\global\expandafter\let\csname\@@tblprefix\number#1:w\endcsname} % {#2} global !
-\def\lettblhei#1{\global\expandafter\let\csname\@@tblprefix\number#1:h\endcsname} % {#2} global !
-\def\lettbldis#1{\global\expandafter\let\csname\@@tblprefix\number#1:d\endcsname} % {#2} global !
-\def\lettblaut#1{\global\expandafter\let\csname\@@tblprefix\number#1:a\endcsname} % {#2} global !
-
-\def\gettblwid#1{\ifcsname\@@tblprefix\number#1:w\endcsname\csname\@@tblprefix\number#1:w\endcsname\else\zeropoint\fi}
-\def\gettblhei#1{\ifcsname\@@tblprefix\number#1:h\endcsname\csname\@@tblprefix\number#1:h\endcsname\else\zeropoint\fi}
-\def\gettbldis#1{\ifcsname\@@tblprefix\number#1:d\endcsname\csname\@@tblprefix\number#1:d\endcsname\else\zeropoint\fi}
-\def\gettblaut#1{\csname \@@tblprefix\number#1:a\endcsname}
-
-\def\doiftbltag #1#2{\ifcsname\@@tblprefix\number#1:\number#2:s\endcsname\@EA\firstofoneargument \else\@EA\gobbleoneargument \fi}
-\def\doifnottbltag #1#2{\ifcsname\@@tblprefix\number#1:\number#2:s\endcsname\@EA\gobbleoneargument \else\@EA\firstofoneargument \fi}
-\def\doifelsetbltag#1#2{\ifcsname\@@tblprefix\number#1:\number#2:s\endcsname\@EA\firstoftwoarguments\else\@EA\secondoftwoarguments\fi}
-\def\doiftblrow #1#2{\ifcsname\@@tblprefix\number#1:\number#2:r\endcsname\@EA\firstofoneargument \else\@EA\gobbleoneargument \fi}
-\def\doiftblcol #1#2{\ifcsname\@@tblprefix\number#1:\number#2:c\endcsname\@EA\firstofoneargument \else\@EA\gobbleoneargument \fi}
-\def\doifnottblcol #1#2{\ifcsname\@@tblprefix\number#1:\number#2:c\endcsname\@EA\gobbleoneargument \else\@EA\firstofoneargument \fi}
-
-\def\tbltagstate#1#2{\ifcsname\@@tblprefix\number#1:\number#2:s\endcsname\zerocount\else\plusone\fi}
-\def\tblrowstate#1#2{\ifcsname\@@tblprefix\number#1:\number#2:r\endcsname\zerocount\else\plusone\fi}
-\def\tblcolstate#1#2{\ifcsname\@@tblprefix\number#1:\number#2:c\endcsname\zerocount\else\plusone\fi}
-
-\def\settblspn #1{\expandafter\let\csname\@@tblprefix\number#1:s\endcsname \!!plusone}
-\def\doifelsetblspn#1{\doifelse {\csname\@@tblprefix\number#1:s\endcsname}\!!plusone}
-% \def\doifelsetblspn#1{\@EA\ifx\csname\@@tblprefix\number#1:s\endcsname\plusone\@EA\firstoftwoarguments\else\@EA\secondoftwoarguments\fi}
-
-\def\settblspn #1{\setvalue {\@@tblprefix\number#1:s}{1}}
-\def\doifelsetblspn#1{\doifelsevalue{\@@tblprefix\number#1:s}{1}}
-
-% \long\def\settbltxt#1#2#3%
-% {\setxvalue{\@@tblprefix#1:#2:l}{\TBLlevel}%
-% \long\setvalue{\@@tblprefix#1:#2:t}%
-% {\doifdefined{\@@tblprefix#1:#2:l}
-% {\edef\TBLlevel{\getvalue{\@@tblprefix#1:#2:l}}}%
-% #3}}
-
-\long\def\settbltxt#1#2#3%
- {\long\@EA\def\csname\@@tblprefix\number#1:\number#2:t\@EA\endcsname\@EA{\@EA\def\@EA\TBLlevel\@EA{\TBLlevel}#3}}
-
-\def\gettbltxt#1#2%
- {\csname\@@tblprefix\number#1:\number#2:t\endcsname}
-
-\newtoks\tbltoks
-\newtoks\tblrowtoks
-
-\let\pushTBLparameters\relax
-\let\popTBLparameters \relax
-
-\newif\ifsqueezeTBLspan \squeezeTBLspantrue % spans one column cell over multi column par cells
-\newif\ifautosqueezeTBLspan \autosqueezeTBLspantrue % unless explicit widths are given
-\newif\ifautoTBLspread \autoTBLspreadfalse
-\newif\ifautoTBLhsize \autoTBLhsizetrue
-\newif\ifautoTBLrowspan \autoTBLrowspantrue
-\newif\ifautoTBLemptycell \autoTBLemptycelltrue
-\newif\ifautoTBLcheckwidth \autoTBLcheckwidthtrue
-\newif\ifappendTBLsetups \appendTBLsetupstrue
-\newif\ifenableTBLbreak \enableTBLbreakfalse
-\newif\ifmultipleTBLheads \multipleTBLheadsfalse
-
-\newif\iftraceTABLE \traceTABLEfalse
-
-\def\noftblheadlines{0}
-\def\noftblnextlines{0}
-\def\noftblhdnxlines{0}
-
-\presetlocalframed[\@@tbl\@@tbl]
-
-\long\def\handleTBLcell#1#2[#3]{}
-
-\long\def\bTC#1\eTC{\bTD#1\eTD}
-\long\def\bTX#1\eTX{\bTD#1\eTD}
-\long\def\bTY#1\eTY{\bTR#1\eTR}
-
-\let\getTABLEparameters\getparameters
-
-\unexpanded\def\setupTABLE
- {\dotripleempty\dosetupTABLE}
-
-\def\dosetupTABLE[#1][#2][#3]%
- {\ifthirdargument
- \processaction
- [#1]
- [ \v!row=>{\dosetupTABLExy[\c!y][#2][#3]},%
- \v!column=>{\dosetupTABLExy[\c!x][#2][#3]},%
- r=>{\dosetupTABLExy[\c!y][#2][#3]},%
- c=>{\dosetupTABLExy[\c!x][#2][#3]},%
- y=>{\dosetupTABLExy[\c!y][#2][#3]},%
- x=>{\dosetupTABLExy[\c!x][#2][#3]},%
- \v!start=>{\dosetupTABLExy[#1][#2][#3]},%
- \v!header=>{\dosetupTABLExy[#1][#2][#3]},%
- \s!unknown=>{\dosetupTABLEzz[#1][#2][#3]}]%
- \else\ifsecondargument
- \processaction
- [#1]
- [ \v!row=>{\dosetupTABLExy[\c!y][\v!each][#2]},%
- \v!column=>{\dosetupTABLExy[\c!x][\v!each][#2]},%
- r=>{\dosetupTABLExy[\c!y][\v!each][#2]},%
- c=>{\dosetupTABLExy[\c!x][\v!each][#2]},%
- y=>{\dosetupTABLExy[\c!y][\v!each][#2]},%
- x=>{\dosetupTABLExy[\c!x][\v!each][#2]},%
- \v!start=>{\dosetupTABLExy[#1][\v!each][#2]},%
- \v!header=>{\dosetupTABLExy[#1][\v!each][#2]},%
- \s!unknown=>{\dosetupTABLEzz[\c!x][#1][#2]}]%
- \else
- \getparameters[\@@tbl\@@tbl][#1]%
- \fi\fi}
-
-\def\dosetupTABLExy[#1][#2][#3]%
- {\def\dodosetupTABLE##1{\setTABLEparameters[#1##1][#3]}%
- \processcommalist[#2]\dodosetupTABLE}
-
-\def\dosetupTABLEzz[#1][#2][#3]%
- {\def\dodosetupTABLE##1%
- {\def\dododosetupTABLE####1{\setTABLEparameters[\c!x##1\c!y####1][#3]}%
- \processcommalist[#2]\dododosetupTABLE}%
- \processcommalist[#1]\dodosetupTABLE}
-
-\def\nopTABLEparameters[#1][#2]%
- {\letvalue{\@@tblprefix#1}\empty}
-
-\def\setTABLEparameters[#1][#2]%
- {\pushTBLparameters
- \ifappendTBLsetups
- \doifdefinedelse{\@@tblprefix#1}
- {\def\getTABLEparameters[##1][##2]%
- {\setvalue{\@@tblprefix#1}{\getTABLEparameters[\@@tbl\@@tbl][##2,#2]}}%
- \getvalue{\@@tblprefix#1}%
- \let\getTABLEparameters\getparameters}
- {\setvalue{\@@tblprefix#1}{\getTABLEparameters[\@@tbl\@@tbl][#2]}}%
- \else
- \setvalue{\@@tblprefix#1}{\getTABLEparameters[\@@tbl\@@tbl][#2]}%
- \fi
- \popTBLparameters}
-
-\let\setupTBLsection\relax
-
-% % \setupTABLE [y] [first][background=color,backgroundcolor=blue,frame=off,bottomframe=on,topframe=on,framecolor=white]
-% \setupTABLE [first][first][backgroundcorner=2,corner=10,frame=on]
-% \setupTABLE [last] [first][backgroundcorner=4,corner=12,frame=on]
-%
-% \setupTABLE [row] [each] [background=color,backgroundcolor=blue,frame=on,framecolor=white]
-% \setupTABLE [first][2] [corner=8]
-% \setupTABLE [last] [2] [corner=5]
-% \setupTABLE [first][last] [corner=7]
-% \setupTABLE [last] [last] [corner=6]
-%
-% \startTEXpage
-% \bTABLE[frame=off,align=middle]
-% \bTR \bTD one \eTD \bTD two \eTD \bTD three \eTD \eTR
-% \bTR \bTD first \eTD \bTD second \eTD \bTD third \eTD \eTR
-% \bTR \bTD alpha \eTD \bTD beta \eTD \bTD gamma \eTD \eTR
-% \eTABLE
-% \stopTEXpage
-%
-% \setupTABLE [first] [two][corner=2] % special case
-% \setupTABLE [last] [two][corner=4] % special case
-%
-% % % \setupTABLE [one] [first] ... special case of span
-%
-% \startTEXpage
-% \bTABLE[frame=off,align=middle]
-% \bTR \bTD one \eTD \bTD two \eTD \bTD three \eTD \eTR
-% \bTR \bTD first \eTD \bTD second \eTD \bTD third \eTD \eTR
-% \eTABLE
-% \stopTEXpage
-
-\def\setupTBLcell#1#2% cell over col over row
- {\setupTBLsection % already forgotten
- \edef\positiverow{\number#1}%
- \edef\positivecol{\number#2}%
- \edef\negativerow{\the\numexpr-\maximumrow+#1+\minusone\relax}%
- \edef\negativecol{\the\numexpr-\maximumcol+#2+\minusone\relax}%
- % each each
- \csname\@@tblprefix\c!x\v!each\c!y\v!each\endcsname
- \csname\@@tblprefix\c!y\v!each\endcsname
- \csname\@@tblprefix\c!x\v!each\endcsname
- % odd even
- \csname\@@tblprefix\c!y\v!oddeven\positiverow\endcsname
- \csname\@@tblprefix\c!x\v!oddeven\positivecol\endcsname
- \csname\@@tblprefix\c!x\v!oddeven\positivecol\c!y\v!oddeven\positiverow\endcsname
- % row/col number combinations
- \ifcsname\@@tblprefix\c!y\positiverow\endcsname\csname\@@tblprefix\c!y\positiverow\endcsname\fi
- \ifcsname\@@tblprefix\c!y\negativerow\endcsname\csname\@@tblprefix\c!y\negativerow\endcsname\fi
- \csname\@@tbl\@@tbl\c!extras\endcsname
- \@EA\let\csname\@@tbl\@@tbl\c!extras\endcsname\relax % new, see x-fo
- \ifcsname\@@tblprefix\c!x\positivecol\endcsname\csname\@@tblprefix\c!x\positivecol\endcsname\fi
- \ifcsname\@@tblprefix\c!x\negativecol\endcsname\csname\@@tblprefix\c!x\negativecol\endcsname\fi
- \csname\@@tbl\@@tbl\c!extras\endcsname
- \@EA\let\csname\@@tbl\@@tbl\c!extras\endcsname\relax % new, see x-fo
- % first/last combinations
- \ifnum\positiverow=\plusone
- \csname\@@tblprefix\c!y\v!first\endcsname
- \ifcsname\@@tblprefix\c!x\positivecol\c!y\v!first\endcsname\csname\@@tblprefix\c!x\positivecol\c!y\v!first\endcsname\fi
- \fi
- \ifnum\positivecol=\plusone
- \csname\@@tblprefix\c!x\v!first\endcsname
- \ifcsname\@@tblprefix\c!x\v!first\c!y\positiverow\endcsname\csname\@@tblprefix\c!x\v!first\c!y\positiverow\endcsname\fi
- \fi
- \ifnum\positiverow=\maximumrow\relax
- \csname\@@tblprefix\c!y\v!last\endcsname
- \ifcsname\@@tblprefix\c!x\positivecol\c!y\v!last\endcsname\csname\@@tblprefix\c!x\positivecol\c!y\v!last\endcsname\fi
- \fi
- \ifnum\positivecol=\maximumcol\relax
- \csname\@@tblprefix\c!x\v!last\endcsname
- \ifcsname\@@tblprefix\c!x\v!last\c!y\positiverow\endcsname\csname\@@tblprefix\c!x\v!last\c!y\positiverow\endcsname\fi
- \fi
- \ifnum\positiverow=\maximumrow\relax \ifnum\positivecol=\maximumcol\relax
- \csname\@@tblprefix\c!x\v!last\c!y\v!last\endcsname
- \fi\fi
- \ifnum\positiverow=\plusone \ifnum\positivecol=\plusone
- \csname\@@tblprefix\c!x\v!first\c!y\v!first\endcsname
- \fi\fi
- \ifnum\positiverow=\plusone \ifnum\positivecol=\maximumcol\relax
- \csname\@@tblprefix\c!x\v!last\c!y\v!first\endcsname
- \fi\fi
- \ifnum\positiverow=\maximumrow\relax \ifnum\positivecol=\plusone
- \csname\@@tblprefix\c!x\v!first\c!y\v!last\endcsname
- \fi\fi
- % special case: two rows and last row : two&first and two&last (round corners)
- \ifnum\maximumrow=\plustwo\relax
- \ifnum\positiverow=\maximumrow\relax \ifnum\positivecol=\plusone
- \csname\@@tblprefix\c!x\v!first\c!y\v!two\endcsname
- \fi\fi
- \ifnum\positiverow=\maximumrow\relax \ifnum\positivecol=\maximumcol\relax
- \csname\@@tblprefix\c!x\v!last\c!y\v!two\endcsname
- \fi\fi
- \fi
- \ifnum\gettblcol\positiverow\positivecol=\maximumcol\relax % top span over whole width
- \ifnum\positiverow=\plusone
- \csname\@@tblprefix\c!x\v!one\c!y\v!first\endcsname
- \fi
- \ifnum\positiverow=\maximumrow\relax
- \csname\@@tblprefix\c!x\v!one\c!y\v!last\endcsname
- \fi
- \fi
- % header things
- \ifnum#1>\noftblhdnxlines\else
- \ifcsname\@@tblprefix\v!header\v!each \endcsname\csname\@@tblprefix\v!header\v!each \endcsname\fi
- \ifcsname\@@tblprefix\v!header\positivecol\endcsname\csname\@@tblprefix\v!header\positivecol\endcsname\fi
- \fi
- % explicit cells
- \ifcsname\@@tblprefix\c!x\positivecol\c!y\positiverow\endcsname\csname\@@tblprefix\c!x\positivecol\c!y\positiverow\endcsname\fi
- \ifcsname\@@tblprefix\c!x\negativecol\c!y\negativerow\endcsname\csname\@@tblprefix\c!x\negativecol\c!y\negativerow\endcsname\fi
- % done
- \global\letcscsname\@@tblsplitafter \csname\@@tbl\@@tbl\c!after \endcsname
- \global\letcscsname\@@tblsplitbefore \csname\@@tbl\@@tbl\c!before \endcsname
- \global\letcscsname\@@tblsplitsamepage\csname\@@tbl\@@tbl\c!samepage\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
-\globallet\@@tblsplitbefore \relax
-\globallet\@@tblsplitsamepage\relax
-
-% split + page:
-%
-% \bTABLE[split=yes]
-% \bTR \bTD left \eTD\bTD right \eTD\eTR
-% \bTR[after=\page] \bTD left \eTD\bTD right \eTD\eTR
-% \bTR \bTD left \eTD\bTD right \eTD\eTR
-% \eTABLE
-
-% todo: protect counters
-
-\newcount\row \newcount\col
-\newcount\xrow \newcount\xcol
-\newcount\xxrow \newcount\xxcol
-\newcount\maximumrow \newcount\maximumcol \newcount\maximumrowspan
- \newcount\currentcol
-\newcount\tblspn
-
-\def\parseTR[#1][#2]% [#2] is dummy that kills spaces / no #3 argument
- {\currentcol\zerocount
- \advance\maximumrow\plusone
- \iffirstargument\setTABLEparameters[\c!y\number\maximumrow][#1]\fi}
-
-\def\settblref#1#2{\expandafter\xdef\csname\@@tblprefix\number#1:\number#2:x\endcsname}
-\def\gettblref#1#2{\ifcsname\@@tblprefix\number#1:\number#2:x\endcsname\csname\@@tblprefix\number#1:\number#2:x\endcsname\fi}
-
-\long\def\parseTD[#1][#2]#3\eTD % [#2] is dummy that kills spaces
- {\def\tblny{\tblnr}%
- \def\tblnx{\tblnc}%
- \let\tblnc\plusone
- \let\tblnr\plusone
- \let\tbln\currentcol
- \let\tblm\empty
- \iffirstargument
- \getparameters[\@@tbl][#1]%
- \fi
- % goto first cell % NEW, n/m=cellnumber
- \edef\@@tblnindeed{\csname\@@tbl\c!n\endcsname}%
- \ifx\@@tblnindeed\empty
- \global\advance\tblspn\tblnx\relax
- \else\ifnum\@@tblnindeed=\currentcol\else
- \scratchcounter\numexpr\@@tblnindeed-\currentcol+\minusone-\tblspn\relax
- \ifnum\scratchcounter>\zerocount
- \expanded{\parseTD[\c!nx=\the\scratchcounter,\c!n=,\c!m=,*sq=\v!no][]}\eTD
- \fi
- % can also be made faster
- \getparameters[\@@tbl][\c!ny=\tblnr,\c!nx=\tblnc,nc=1,nr=1,#1,\c!n=,\c!m=]%
- \fi\fi
- \edef\@@tblmindeed{\csname\@@tbl\c!m\endcsname}%
- \ifx\@@tblmindeed\empty \else
- \ifnum\@@tblmindeed=\currentcol \else
- \scratchcounter\numexpr\@@tblmindeed-\currentcol+\minusone-\tblspn\relax
- \dorecurse\scratchcounter{\expanded{\parseTD[\c!n=,\c!m=][]}\eTD}%
- % can be sped up
- \getparameters[\@@tbl][\c!ny=\tblnr,\c!nx=\tblnc,nc=1,nr=1,#1,\c!n=,\c!m=]%
- \fi
- \fi
- \doloop % skip over columns that result from earlier span
- {\advance\currentcol\plusone
- \doifnottbltag\maximumrow\currentcol\exitloop}%
- % == \def\next{\advance\currentcol\plusone\doiftbltag\maximumrow\currentcol\next}\next
- % fill r*c cells and set span
- \ifnum\tblnx=\plusone
- \ifnum\tblny=\plusone
- \ifnum\currentcol>\maximumcol\relax
- \maximumcol\currentcol
- \fi
- \else
- \presetTBLcell
- \fi
- \else
- \presetTBLcell
- \fi
- % set values
- \lettbltag\maximumrow\currentcol\tblcell
- \settblcol\maximumrow\currentcol{\number\tblnx}%
- \settblrow\maximumrow\currentcol{\number\tblny}%
- \settblref\maximumrow\currentcol{\ifcsname\@@tbl\c!action\endcsname\csname\@@tbl\c!action\endcsname\fi}%
- % save text
- \edef\celltag{{\number\maximumrow}{\number\currentcol}}%
- \@EA\settbltxt\@EA\maximumrow\@EA\currentcol\@EA{\@EA\handleTBLcell\celltag[#1]{#3}}}
-
-\def\presetTBLcell
- {\row\maximumrow
- \col\currentcol
- \dorecurse\tblny
- {\col\currentcol
- \settblcol\row\col{\number\tblnx}%
- \ifnum\tblnx>\maximumrowspan\relax
- \maximumrowspan\tblnx
- \fi
- \dorecurse\tblnx
- {\lettbltag\row\col\tblnone
- \advance\col\plusone}%
- \advance\row\plusone}%
- % check max column
- \advance\col\minusone
- \ifnum\col>\maximumcol\relax
- \maximumcol\col
- \fi}
-
-%D The usage of n and m:
-%D
-%D \startbuffer
-%D \bTABLE[width=3em]
-%D \bTR\bTD d1 \eTD\bTD[n=2] d2 \eTD\bTD[n=5] d5 \eTD\bTD[n=7] d7 \eTD\eTR
-%D \bTR\bTD f1 \eTD\bTD[n=4] f4 \eTD\bTD[n=5] f5 \eTD\bTD[n=7] f7 \eTD\eTR
-%D \eTABLE
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \bTABLE[width=3em]
-%D \bTR\bTD d1 \eTD\bTD[m=2] d2 \eTD\bTD[m=5] d5 \eTD\bTD[m=7] d7 \eTD\eTR
-%D \bTR\bTD f1 \eTD\bTD[m=4] f4 \eTD\bTD[m=5] f5 \eTD\bTD[m=7] f7 \eTD\eTR
-%D \eTABLE
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D \startbuffer
-%D \bTABLE[frame=on]
-%D \bTR \bTH[nc=3] One \eTH \bTH[m=4] Four \eTH\eTR
-%D \bTR \bTD a \eTD\bTD b \eTD\bTD c \eTD\bTD d \eTD\eTR
-%D \eTABLE
-%D
-%D \bTABLE[frame=on]
-%D \bTR \bTH[nr=2] One \eTH \bTH[m=3] Three \eTH\eTR
-%D \bTR \bTD[m=3] a \eTD\bTD b \eTD\bTD c \eTD\bTD d \eTD\eTR
-%D \bTR \bTD[m=3] a \eTD\bTD b \eTD\bTD c \eTD\bTD d \eTD\eTR
-%D \eTABLE
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-\long\def\parseTH[#1]#2\eTH
- {\parseTD[#1,\c!color=\tbltblheadcolor,\c!style=\tbltblheadstyle,\c!aligncharacter=\v!no]#2\eTD}
-
-%D new
-
-\long\def\parseTN[#1]#2\eTN
- {\parseTD[#1]\digits#2\relax\eTD}
-
-%D Vit Zyka needed the option to create a distance between columns, so I
-%D added support for individual column distances.
-%D
-%D \startbuffer
-%D % \setupTABLE[c][each][distance=2em]
-%D \setupTABLE[c][1][distance=2em]
-%D \setupTABLE[c][2][distance=3em]
-%D
-%D \bTABLE
-%D \bTR \bTD test \eTD \bTD test \eTD \bTD test \eTD \eTR
-%D \bTR \bTD[nx=2] test \eTD \bTD test \eTD \eTR
-%D \bTR \bTD test \eTD \bTD[nx=2] test \eTD \eTR
-%D \eTABLE
-%D
-%D \bTABLE[option=stretch]
-%D \bTR \bTD test \eTD \bTD test \eTD \bTD test \eTD \eTR
-%D \bTR \bTD[nx=2] test \eTD \bTD test \eTD \eTR
-%D \bTR \bTD test \eTD \bTD[nx=2] test \eTD \eTR
-%D \eTABLE
-%D \stopbuffer
-%D
-%D \typebuffer \startlinecorrection \getbuffer \stoplinecorrection
-%D
-%D and he provided patches for the global left and right margin distances
-%D as well as the columndistance (although i changed the names -). Here
-%D is his testcase:
-%D
-%D \startbuffer
-%D \framed[offset=overlay]\bgroup
-%D \setupTABLE[column][2][align=left]%
-%D \setupTABLE[column][3][align=right]%
-%D \bTABLE[columndistance=2cm,leftmargindistance=.3cm,rightmargindistance=.5cm]
-%D \bTR \bTH[nc=3] Table head\eTH \eTR
-%D \bTR \bTD[nc=2] AB\eTD \bTD C\eTD \eTR
-%D \bTR \bTD[nc=2,align=left] AB\eTD \bTD C\eTD \eTR
-%D \bTR \bTD[nc=2,align=middle] AB\eTD \bTD C\eTD \eTR
-%D \bTR \bTD A\eTD \bTD B\eTD \bTD C\eTD \eTR
-%D \bTR \bTD Aa\eTD \bTD Bb\eTD \bTD Cccc\eTD \eTR
-%D \bTR \bTD[nc=3,align=middle] ABC\eTD \eTR
-%D \eTABLE
-%D \egroup
-%D \stopbuffer
-%D
-%D \typebuffer \startlinecorrection \getbuffer \stoplinecorrection
-
-\newtoks\TBLhead
-\newtoks\TBLnext
-\newtoks\TBLbody
-\newtoks\TBLfoot
-
-% to be done: head <raw> foot, dus state var
-
-\unexpanded\def\bTABLEhead{\dosingleempty\doTABLEhead} \let\eTABLEhead\relax
-\unexpanded\def\bTABLEnext{\dosingleempty\doTABLEnext} \let\eTABLEnext\relax
-\unexpanded\def\bTABLEbody{\dosingleempty\doTABLEbody} \let\eTABLEbody\relax
-\unexpanded\def\bTABLEfoot{\dosingleempty\doTABLEfoot} \let\eTABLEfoot\relax
-
-\long\def\doTABLEhead[#1]#2\eTABLEhead{\appendtoks\doTABLEsection[#1]{#2}\to\TBLhead}
-\long\def\doTABLEnext[#1]#2\eTABLEnext{\appendtoks\doTABLEsection[#1]{#2}\to\TBLnext}
-\long\def\doTABLEbody[#1]#2\eTABLEbody{\appendtoks\doTABLEsection[#1]{#2}\to\TBLbody}
-\long\def\doTABLEfoot[#1]#2\eTABLEfoot{\appendtoks\doTABLEsection[#1]{#2}\to\TBLfoot}
-
-
-\long\def\doTABLEsection[#1]#2%
- {\def\setupTBLsection{\getparameters[\@@tbl\@@tbl][#1]}%
- #2%
- \let\setupTBLsection\relax}
-
-\let\pushTBL\relax
-\let\popTBL \relax
-
-\chardef\tblpass=0
-
-\def\presetallTABLEparameters% each odd|even level / can be sped up but only once per table
- {\executeifdefined{\@@rawtblprefix\v!start\v!each}\relax
- \executeifdefined{\@@rawtblprefix\v!start\v!oddeven\TBLlevel}\relax
- \executeifdefined{\@@rawtblprefix\v!start\number\TBLlevel}\relax}
-
-\def\bTABLE
- {\dosingleempty\dobTABLE}
-
-\def\dobTABLE[#1]%
- {\pushTBL
- % box not here
- \bgroup
- \TBLhead\emptytoks
- \TBLnext\emptytoks
- \TBLbody\emptytoks
- \TBLfoot\emptytoks
- \ifhmode\kern\zeropoint\fi % blocks \removeunwantedspaces: check this on icare handelingsschema
- \resetcharacteralign % new
- \getparameters
- [\@@tbl\@@tbl]
- [\c!align={\v!right,\v!broad,\v!high},#1]%
- \hsize\tbltbltextwidth
- \processaction
- [\tbltblsplit]
- [ \v!yes=>\enableTBLbreaktrue,
- \v!repeat=>\enableTBLbreaktrue\multipleTBLheadstrue,
- \v!auto=>\ifinsidesplitfloat\enableTBLbreaktrue\fi]
- \processaction
- [\tbltblheader]
- [\v!repeat=>\multipleTBLheadstrue]%
- \localcolortrue
- \presetallTABLEparameters
- \ExpandFirstAfter\processallactionsinset
- [\tbltbloption]
- [\v!stretch=>\autoTBLspreadtrue]%
- \linewidth\tbltblrulethickness % needs to be frozen
- \dontcomplain
- \currentcol\zerocount
- \maximumrowspan\plusone
- \maximumcol\zerocount
- \maximumrow\zerocount
- \let\bTR\dobTR
- \let\bTD\dobTD
- \let\bTH\dobTH
- \let\bTN\dobTN}
-
-\unexpanded\def\dobTR{\dodoubleempty\parseTR}
-\unexpanded\def\dobTD{\dodoubleempty\parseTD}
-\unexpanded\def\dobTH{\dodoubleempty\parseTH}
-\unexpanded\def\dobTN{\dodoubleempty\parseTN}
-
-% permits \expanded{\bTD ... \eTD}
-
-\unexpanded\def\eTR{\ignorespaces}
-\unexpanded\def\eTD{\ignorespaces}
-\unexpanded\def\eTH{\ignorespaces}
-\unexpanded\def\eTN{\ignorespaces}
-
-\def\eTABLE % beware, we need to get rid of spurious spaces when in hmode
- {% tricky and dirty order -)
- \doifsometokselse\TBLhead % slow, better a flag
- {\the\TBLhead
- \edef\noftblheadlines{\number\maximumrow}%
- \doifsometokselse\TBLnext
- {\the\TBLnext
- \edef\noftblnextlines{\number\numexpr\maximumrow-\noftblheadlines\relax}}%
- {\let\noftblnextlines\zerocount}% was 1
- \edef\noftblhdnxlines{\number\maximumrow}}
- {\let\noftblheadlines\zerocount % was 1
- \let\noftblnextlines\zerocount
- \let\noftblhdnxlines\zerocount}%
- \the\TBLbody
- \the\TBLfoot
- \removeunwantedspaces % only if hmode
- % finish cells
- \dorecurse\maximumrow
- {\row\recurselevel\relax
- \dorecurse\maximumcol
- {\col\recurselevel\relax
- \doifnottbltag\row\col
- {\xxcol\col
- \xxrow\row
- \xrow\row
- \doloop
- {\xcol\col
- \doloop
- {\doifelsetbltag\xrow\xcol \exitloop
- {\advance\xcol\plusone
- \ifnum\xcol>\maximumcol\relax \exitloop \fi}}%
- \doifelsetbltag\xrow\xcol \exitloop
- {\xxrow\xrow \xxcol\xcol \advance\xrow\plusone
- \ifnum\xrow>\maximumrow \exitloop \fi}}%
- \ifnum\xxrow>\maximumrow\xxrow\maximumrow\fi
- \ifnum\xxcol>\maximumcol\xxcol\maximumcol\fi
- \xxrow\numexpr\xxrow-\row+\plusone\relax
- \xxcol\numexpr\xxcol-\col+\plusone\relax
- \xrow\row
- \dorecurse\xxrow
- {\xcol\col \settblcol\xrow\xcol{\number\xxcol}%
- \dorecurse\xxcol
- {\lettbltag\xrow\xcol\tblnone \advance\xcol\plusone}%
- \advance\xrow\plusone}%
- \lettbltag\row\col\tblcell
- \settblcol\row\col{\the\xxcol}%
- \settblrow\row\col{\the\xxrow}%
- \ifautoTBLemptycell
- \edef\celltag{{\number\row}{\number\col}}%
- \@EA\settbltxt\@EA\row\@EA\col\@EA{\@EA\handleTBLcell\celltag[]{\strut}}%
- \fi}}}%
- % to be sure
- \dorecurse\maximumrow
- {\row\recurselevel\relax
- \dorecurse\maximumcol
- {\col\recurselevel\relax
- \doiftblrow\row\col
- {\scratchcounter\numexpr\maximumrow-\row+\plusone\relax
- \ifnum\gettblrow\row\col>\scratchcounter
- \settblrow\row\col{\the\scratchcounter}%
- \fi}%
- \lettblht\row\col\zeropoint
- \lettblwd\row\col\zeropoint
- \doifnottblcol\row\col{\lettblcol\row\col\zerocount}%
- \doifnottbltag\row\col{\lettbltag\row\col\tblnone}}}%
- % check and do
- \ifcase\maximumcol\else
- \startTBLprocessing
- \begTBL
- \dorecurse\maximumrow
- {\bTBL
- \row\recurselevel\relax
- \dorecurse\maximumcol
- {\col\recurselevel\relax
- \expanded{\doTBL{\number\row}{\number\col}}}%
- \eTBL}%
- \removeunwantedspaces % only if hmode
- \endTBL
- \stopTBLprocessing
- % wrong ! ! ! better to have an auto-offset-overlay
- % \ifnum\TBLlevel>1
- % \vskip-\strutdp
- % \fi
- \fi
- \egroup
- \popTBL}
-
-\let\startTBLprocessing\relax
-\let\stopTBLprocessing \relax
-
-\newcount\prelocatedTBLrows % \prelocateTBLrows{1000} may speed up large tables
-
-\def\bTBL{\tblrowtoks\emptytoks}
-\def\eTBL{\tbltoks\@EA\@EA\@EA{\@EA\the\@EA\tbltoks\@EA\begintblrow\the\tblrowtoks\endtblrow}}%
-
-\def\prelocateTBLerror
- {\writestatus\m!systems{fatal error: use \string\prelocateTBLrows\space to increase table memory (now: \number\prelocatedTBLrows)}}
-
-\def\prelocateTBLrows#1% we start at zero so we have one to much, better play safe anyway
- {\dostepwiserecurse\prelocatedTBLrows{#1}\plusone{\expandafter\newtoks\csname tbl:\recurselevel\endcsname}%
- \def\bTBL
- {\ifnum\tblrow<\prelocatedTBLrows\relax
- \@EA\let\@EA\tblrowtoks\csname tbl:\the\tblrow\endcsname\tblrowtoks\emptytoks
- \else
- \prelocateTBLerror
- \fi}%
- \def\eTBL
- {\tbltoks\@EA\@EA\@EA{\@EA\the\@EA\tbltoks\@EA\begintblrow\@EA\the\csname tbl:\the\tblrow\endcsname\endtblrow}}%
- \global\prelocatedTBLrows#1\relax}
-
-% \prelocateTBLrows{1000} % may speed up large tables
-
-% We use aligments to handle the empty (skipped) columns, so
-% that we don't have to (re|)|calculate these.
-
-\def\skiptblcol
- {\global\advance\tblcol\plusone}
-
-\def\nexttblcol
- {\global\advance\tblcol\plusone
- \kern\tbltblcolumndistance
- &}
-
-\def\spantblcol
- {\span}
-
-\newcount\tblrow
-\newcount\tblcol
-
-\let\savedtblrow\!!zerocount
-\let\savedtblcol\!!zerocount
-
-\def\begintblrow
- {\noalign
- {\global\advance\tblrow\plusone
- \global\tblcol\zerocount
- \global\tblspn\zerocount
- \bgroup % protect local vars
- \@@tblsplitbefore
- \egroup
- \ifx\@@tblsplitsamepage\v!before
- \unpenalty
- \nobreak
- \else\ifx\@@tblsplitsamepage\v!both
- \unpenalty
- \nobreak
- \fi\fi}%
- \nexttblcol
- \kern\dimexpr\tbltblleftmargindistance-\tbltblcolumndistance\relax}
-
-\def\endtblrow
- {\kern\dimexpr\tbltblrightmargindistance-\tbltblcolumndistance\relax
- \crcr
- \noalign
- {\nointerlineskip
- \ifnum\tblrow>\noftblheadlines
- \ifnum\gettblnob\tblrow=\zerocount
- \unpenalty
- \ifx\@@tblsplitsamepage\v!after
- \nobreak
- \else\ifx\@@tblsplitsamepage\v!both
- \nobreak
- \else
- \allowbreak
- \fi\fi
- \fi
- \else
- \allowbreak % else no proper head split off
- \fi
- \bgroup % protect local vars
- \@@tblsplitafter
- \egroup
- \bgroup % protect local vars
- \scratchcounter\numexpr\tblrow+\plusone\relax
- \ifnum\scratchcounter>\noftblhdnxlines\relax
- \ifnum\scratchcounter<\maximumrow\relax
- \doifsomething\tbltblspaceinbetween{\blank[\tbltblspaceinbetween]}%
- \fi
- \fi
- \egroup}}
-
-\def\begintbl
- {\global\tblspn\zerocount
- \global\tblcol\zerocount
- \global\tblrow\zerocount
- \global\advance\tblrow\minusone
- \tabskip\zeropoint
- \halign\bgroup
- \registerparoptions % new
- \ignorespaces##\unskip&&\ignorespaces##\unskip\cr}
-
-\def\endtbl
- {\egroup}
-
-\setvalue{\tblnone TBL}#1#2%
- {\spanTBL{#1}{#2}}
-
-\setvalue{\tblcell TBL}#1#2%
- {\tblrowtoks\expandafter{\the\tblrowtoks\makeTBL #1 #2 }% space delimited -> less tokens
- \spanTBL{#1}{#2}}
-
-\def\spanTBL#1#2%
- {\scratchcounter\gettblcol{#1}{#2}\relax
- \ifnum\scratchcounter>\zerocount
- \advance\scratchcounter \minusone
- \dorecurse\scratchcounter{\tblrowtoks\expandafter{\the\tblrowtoks\spantblcol}}%
- \dorecurse\scratchcounter{\tblrowtoks\expandafter{\the\tblrowtoks\skiptblcol}}%
- \tblrowtoks\expandafter{\the\tblrowtoks\nexttblcol}%
- \fi}
-
-\def\doTBL#1#2%
- {\csname\gettbltag{#1}{#2}TBL\endcsname{#1}{#2}}
-
-\def\begTBL
- {\global\tblspn\zerocount
- \global\tblrow\zerocount
- \global\tblcol\zerocount
- \chardef\tblpass\zerocount
- \tbltoks\emptytoks}
-
-\def\flushtbltoks{\begintbl\the\tbltoks\endtbl}
-
-\def\domakeTBLone#1 #2 %
- {\gettbltxt{#1}{#2}}%
-
-\def\domakeTBLtwo#1 #2 % meer in cellD
- {\scratchdimen\zeropoint
- \scratchcounter\tblcol
- \!!counta\gettblcol{#1}{#2}\relax
- \dorecurse\!!counta
- {\advance\scratchdimen\dimexpr\gettblwid\scratchcounter+\tbltblcolumndistance\relax
- \ifnum\recurselevel<\!!counta \advance\scratchdimen \gettbldis\scratchcounter\fi
- \advance\scratchcounter\plusone}%
- \edef\widthTBL{\the\dimexpr\scratchdimen-\tbltblcolumndistance\relax}%
- \setbox\scratchbox\hbox{\gettbltxt{#1}{#2}}%
- \settblht{#1}{#2}{\the\ht\scratchbox}%
- \settblwd{#1}{#2}{\the\wd\scratchbox}%
- \ifdim\ht\scratchbox>\gettblhei{#1}\relax
- \settblhei{#1}{\the\ht\scratchbox}%
- \fi}%
-
-\def\domakeTBLthree#1 #2 %
- {% height
- \!!counta \gettblcol{#1}{#2}\relax
- \!!countb \gettblrow{#1}{#2}\relax
- \!!heighta\gettblht {#1}{#2}\relax
- \scratchdimen\zeropoint
- \ifnum\!!counta=\maximumcol\relax
- % case: nc=maxcolumns
- \else
- \scratchcounter#1\relax
- \dorecurse\!!countb
- {\advance\scratchdimen
- \gettblhei\scratchcounter
- \advance\scratchcounter\plusone}%
- \ifdim\scratchdimen<\!!heighta\relax
- \scratchdimen\!!heighta
- \fi
- \fi
- \edef\heightTBL{\the\scratchdimen}%
- % width
- \scratchdimen\zeropoint
- \scratchcounter\tblcol
- \dorecurse\!!counta
- {\advance\scratchdimen\dimexpr\gettblwid\scratchcounter+\tbltblcolumndistance\relax
- \ifnum\recurselevel<\!!counta \advance\scratchdimen \gettbldis\scratchcounter\fi
- \advance\scratchcounter\plusone}%
- \edef\widthTBL{\the\dimexpr\scratchdimen-\tbltblcolumndistance\relax}%
- % cell
- \setbox\scratchbox\hbox{\gettbltxt{#1}{#2}}%
- \ifnum\!!counta=\maximumcol\relax
- % case: nc=maxcolumns
- \else
- \scratchdimen\gettblhei{#1}%
- \setbox\scratchbox\hbox
- {\lower\ht\scratchbox\hbox{\raise\scratchdimen\box\scratchbox}}%
- \ht\scratchbox\scratchdimen
- \fi
- \dp\scratchbox\zeropoint
- \edef\!!stringa{\gettblref{#1}{#2}}%
- \ifx\!!stringa\empty
- \box\scratchbox
- \else
- \expanded{\gotobox{\box\scratchbox}[\!!stringa]}%
- \fi
- \box\scratchbox}
-
-\def\inTBLcell#1#2% hm, do we need #1 #2 ? we use tblcol anyway
- {\ExpandBothAfter\doifinsetelse\localwidth{\v!fit,\v!broad} % user set
- {}
- {\scratchdimen\gettblaut\tblcol\relax
- \ifdim\localwidth>\scratchdimen
- \settblaut\tblcol{\the\dimexpr\localwidth\relax}%
- \fi}}%
-
-\def\endTBL
- {\setbox\scratchbox\hbox
- {\localframed
- [\@@tbl\@@tbl]
- [\c!frame=\v!off,\c!background=,\c!align=\v!no]
- {\strut}}%
- \edef\minimalcellheight{\the\ht\scratchbox}%
- \dorecurse\maximumcol
- {\lettblaut\recurselevel\zeropoint
- % new
- \xcol\recurselevel\relax
- \dorecurse\maximumrow
- {\lettblwd\recurselevel\xcol\zeropoint
- \lettblht\recurselevel\xcol\zeropoint}%
- % till here
- \lettblwid\recurselevel\zeropoint
- \lettbldis\recurselevel\zeropoint}%
- \dorecurse\maximumrow
- {\lettblhei\recurselevel\maxdimen}%
- \chardef\tblpass\plusone
- \let\makeTBL\domakeTBLone
- \let\handleTBLcell\dohandleTBLcellA
- \setbox0\vbox{\trialtypesettingtrue \flushtbltoks}%
-% \setbox\scratchbox\vbox{\trialtypesettingtrue \flushtbltoks}%
- \lettbldis\maximumcol\zeropoint
- \ifautoTBLspread
- % experimental, stretch non fixed cells to \hsize
- \checktblwidthsone % trial run
- \checktblwidthstwo % real run
- \stretchtblwidths
- \let\handleTBLcell\dohandleTBLcellB
- \setbox\scratchbox\vbox{\trialtypesettingtrue \flushtbltoks}%
- \else\ifdim\wd0>\hsize
- \ifautoTBLhsize
- \checktblwidthsone % trial run
- \checktblwidthstwo % real run
- \let\handleTBLcell\dohandleTBLcellB
- \setbox\scratchbox\vbox{\trialtypesettingtrue \flushtbltoks}%
- \fi
- \else\ifautoTBLrowspan\ifnum\maximumrowspan>1 % max ?
- % added jan 2002 because nx=* did no longer work
- \edef\savedhsize{\the\hsize}%
- \hsize\wd0\relax % new per 17/04/2006
- \checktblwidthsone % trial run
- \checktblwidthstwo % real run
- \hsize\savedhsize
- %
- \let\handleTBLcell\dohandleTBLcellC
- \setbox\scratchbox\vbox{\trialtypesettingtrue \flushtbltoks}%
- \fi\fi\fi\fi
- \let\handleTBLcell\dohandleTBLcellD
- \chardef\tblpass\plustwo
- \let\makeTBL\domakeTBLtwo
- \setbox\scratchbox\vbox{\trialtypesettingtrue \flushtbltoks}%
- \checktblheightsone
- \checktblheightstwo
- \let\handleTBLcell\dohandleTBLcellE
- \chardef\tblpass\plusthree
- \let\makeTBL\domakeTBLthree
- \ifnum\TBLlevel>\plusone
- \@EA\notsplittblbox
- \else\ifenableTBLbreak
- \@EAEAEA\splittblbox
- \else
- \@EAEAEA\notsplittblbox
- \fi\fi{\flushtbltoks}}
-
-\def\stretchtblwidths % more variants, e.g. a max to \dimend
- {\ifcase\maximumcol\else % else division by zero
- \!!dimend\zeropoint
- \!!dimene\hsize
- \dorecurse\maximumcol
- {\advance\!!dimend\dimexpr\gettblwid\recurselevel+\tbltblcolumndistance\relax
- \advance\!!dimene-\gettbldis\recurselevel}%
- \advance\!!dimend\dimexpr-\tbltblcolumndistance+\tbltblleftmargindistance+\tbltblrightmargindistance\relax
- % distribute width (stretch)
- \ifdim\!!dimend<\!!dimene
- \advance\!!dimend-\!!dimene
- \!!dimend-\!!dimend
- \divide\!!dimend\maximumcol
- \dorecurse\maximumcol
- {\settblwid\recurselevel{\the\dimexpr\gettblwid\recurselevel+\!!dimend\relax}}%
- \fi
- \fi}
-
-\newbox\finaltblbox
-
-\def\notsplittblbox#1%
- {\setbox\finaltblbox\vbox{#1}%
- \postprocessTABLEbox\finaltblbox
- \beforeTABLEbox
- \box\finaltblbox
- \afterTABLEbox}
-
-\def\splittblbox#1%
- {\ifinsidesplitfloat
- \donetrue
- \else\ifinsidefloat
- \donefalse
- \else
- \donetrue
- \fi\fi
- \ifdone
- \executeifdefined{dosplittblbox\tbltblsplitmethod}\dosplittblbox{#1}%
- \else
- \notsplittblbox{#1}%
- \fi}
-
-\newbox\TABLEsplitbox % public, don't change
-
-\let\extratblsplitheight\zeropoint % additional space taken by before/afterTABLEsplitbox
-
-\def\dosplittblbox#1%
- {\resettsplit
- \def\tsplitminimumfreelines{2}%
- \def\tsplitminimumfreespace{\dimexpr\extratblsplitheight+\tbltblsplitoffset\relax}%
- \def\tsplitbeforeresult {\beforeTABLEsplitbox}%
- \def\tsplitafterresult {\afterTABLEsplitbox}%
- \def\tsplitafter {\@@tblsplitafter}%
- \setbox\tsplitcontent\vbox{#1}%
- \ifmultipleTBLheads
- \dorecurse\noftblheadlines
- {\setbox\scratchbox\vsplit\tsplitcontent to \lineheight
- \setbox\tsplithead\vbox{\unvcopy\tsplithead\unvcopy\scratchbox}}%
- \dorecurse\noftblnextlines
- {\setbox\scratchbox\vsplit\tsplitcontent to \lineheight
- \setbox\tsplitnext\vbox{\unvcopy\tsplitnext\unvcopy\scratchbox}}%
- \fi
- \doifsomething\tbltblspaceinbetween
- {\def\tsplitinbetween{\blank[\tbltblspaceinbetween]}}%
- \def\postprocesstsplit{\postprocessTABLEsplitbox{\box\tsplitresult}}%
- \handletsplit}
-
-% ! ! ! ! TODO: naast \postprocessTABLEsplitbox ook evt \postprocessTABLEbox voor niet split
-
-\let\postprocessTABLEsplitbox\gobbleoneargument
-\let\postprocessTABLEbox \gobbleoneargument
-
-\let\beforeTABLEsplitbox\relax
-\let\afterTABLEsplitbox \relax
-\let\beforeTABLEbox \relax
-\let\afterTABLEbox \relax
-
-\def\checktblwidthsone{\dochecktblwidths0} % 0 = trial run
-\def\checktblwidthstwo{\dochecktblwidths1} % 1 = real run
-
-\def\dochecktblwidths#1%
- {\iftraceTABLE\showtblwids{B#1}\fi
- \!!counta\zerocount
- \!!dimena\dimexpr\hsize-\tbltblleftmargindistance-\tbltblrightmargindistance-\tbltblcolumndistance\relax
- \dorecurse\maximumcol
- {\scratchdimen\gettblaut\recurselevel\relax
- \advance\!!dimena-\gettbldis\recurselevel\relax
- \ifdim\scratchdimen>\zeropoint\relax
- \advance\!!dimena -\scratchdimen
- \else
- \scratchdimen\gettblwid\recurselevel\relax
- \ifdim\scratchdimen>\tbltblmaxwidth\relax
- \ifcase#1\else\lettblwid\recurselevel\zeropoint\fi
- \advance\!!counta \plusone
- \else
- \ifdim\scratchdimen>\zeropoint\relax
- \advance\!!dimena -\scratchdimen
- \else
- % eigenlijk moet dit alleen als de kolom wordt overspannen door een
- % vorige, maw extra dubbele loop en status var
- \advance\!!counta \plusone
- \fi
- \fi
- \fi}%
- \ifcase\!!counta \else \divide\!!dimena \!!counta \fi
- \dorecurse\maximumcol
- {\scratchdimen\gettblwid\recurselevel\relax
- \ifcase#1\relax
- \ifdim\scratchdimen<\!!dimena % take natural width
- \settblaut\recurselevel{\the\scratchdimen}%
- \fi
- \else
- \ifdim\scratchdimen=\zeropoint % auto set width
- \settblwid\recurselevel{\the\!!dimena}%
- \fi
- \fi}%
- \iftraceTABLE\showtblwids{E#1}\fi}
-
-\newcount\xrowTBL
-\newcount\xcolTBL
-\newcount\xxrowTBL
-
-% dikke arg naar recurse wegwerken
-
-\def\dochecktblheightsone
- {\!!countb\gettblrow\xrowTBL\xcolTBL\relax
- % check row span
- \ifnum\!!countb>\plusone
- % current height in row
- \dimen0=\gettblht\xrowTBL\xcolTBL
- % find nearest height in row
- \dimen2=\zeropoint
- \dorecurse\maximumcol
- {\ifnum\recurselevel=\xcolTBL\else
- \doiftblrow\xrowTBL\recurselevel
- {\!!countc=\gettblrow\xrowTBL\recurselevel\relax
- \ifnum\!!countc=\plusone
- \dimen4=\gettblht\xrowTBL\recurselevel\relax
- \ifdim\dimen2<\dimen4
- \dimen2=\dimen4
- \fi
- \fi}%
- \fi}%
- \xxrowTBL\xrowTBL
- % calculate cummulative height
- \dimen4=\dimen2
- \!!countc\xrowTBL
- \advance\!!countc\minusone
- \dorecurse\!!countb
- {\ifnum\xxrowTBL=\xrowTBL\else
- \advance\dimen4 \gettblhei\xxrowTBL
- \fi
- \ifnum\recurselevel=\!!countb\else
- \settblnob\!!countc
- \advance\!!countc\plusone
- \fi
- \advance\xxrowTBL\plusone}%
- % distribute overshoot equally
-\ifdim\dimen2>\zeropoint % see natural-003
- \ifdim\dimen4<\dimen0
- \advance\dimen0 -\dimen4
- \divide\dimen0 \!!countb
- \xxrowTBL\xrowTBL
- \settblhei\xrowTBL{\the\dimen2}%
- \dorecurse\!!countb
- {\dorecurse\maximumcol
- {\ifnum\recurselevel=\xcolTBL\else
- \scratchdimen\dimexpr\gettblht\xxrowTBL\recurselevel+\dimen0\relax
- \settblht\xxrowTBL\recurselevel{\the\scratchdimen}%
- \ifdim\gettblhei\xxrowTBL<\scratchdimen
- \settblhei\xxrowTBL{\the\scratchdimen}%
- \fi
- \fi}%
- \advance\xxrowTBL\plusone}%
- \else\ifdim\dimen4>\dimen0
- \settblhei\xrowTBL{\the\dimen2}%
- \fi\fi
-\fi
- \fi}
-
-\def\checktblheightsone
- {\dorecurse\maximumrow
- {\xrowTBL\recurselevel\relax
- \dorecurse\maximumcol
- {\xcolTBL\recurselevel\relax
- \doiftblrow\xrowTBL\xcolTBL\dochecktblheightsone}}}
-
-\def\checktblheightstwo
- {}
-
-\def\showtblwids#1%
- {\vbox
- {\forgetall\tttf[#1]\dorecurse\maximumcol
- {\scratchdimen\gettblwid\recurselevel\relax
- [\recurselevel:\the\scratchdimen]}}}
-
-\def\TBLcharalign
- {\doifelse\tbltblaligncharacter\v!yes
- \doTBLcharalign\gobbleoneargument}
-
-\long\def\doTBLcharalign#1#2% column data
- {\edef\alignmentclass{#1}%
- \edef\alignmentcharacter{\tbltblalignmentcharacter}%
- \ifcase\tblpass\or
- \setfirstpasscharacteralign\checkalignment{#2}% {\strut#2\unskip}%
- \fi % force hsize, so always a second
- \setsecondpasscharacteralign \checkalignment{#2}% {\strut#2\unskip}%
- \ignorespaces}
-
-% new, needed for icare first col of 'doeltabel', experimental
-
-\long\def\dohandleTBLcellA#1#2[#3]#4% grouping added ! ! !
- {\bgroup
- \setupTBLcell{#1}{#2}%
- \setbox\scratchbox\hbox
- {\scratchdimen\tbltbldistance\relax
- \ifdim\scratchdimen>\gettbldis{#2}\relax
- \settbldis{#2}{\the\scratchdimen}%
- \fi
- \localframed
- [\@@tbl\@@tbl]
- [#3,\c!background=,\c!frame=\v!off]% 25% faster
- {\bTBLCELL\TBLcharalign{#2}{#4}\eTBLCELL\inTBLcell{#1}{#2}}}%
- \scratchdimen\gettblwid\tblcol\relax
- \ifdim\wd\scratchbox>\scratchdimen
- \ifsqueezeTBLspan
- \ifautosqueezeTBLspan
- \doifinsetelse\tbltblwidth{\v!fit,\v!fixed,\v!broad,\v!local}
- \donetrue \donefalse
- \else
- \donetrue
- \fi
- \ifdone % brr, 0
- \ifnum\number\gettblcol{#1}{#2}>\plusone \settblspn\tblcol\fi
- \fi
- \fi
- \doifelsetblspn\tblcol
- \donothing
- {\ifdim\gettblwid\tblcol<\wd\scratchbox
- \settblwid\tblcol{\the\wd\scratchbox}%
- \fi}% auto set
- \fi
- \scratchcounter\numexpr\tblrow+\plusone\relax
- \scratchdimen\gettblhei\scratchcounter\relax
- \ifdim\ht\scratchbox<\scratchdimen
- \settblhei\scratchcounter{\the\ht\scratchbox}% auto set
- \fi
- \settblht{#1}{#2}{\the\ht\scratchbox}%
- \settblwd{#1}{#2}{\the\wd\scratchbox}%
- \ifautoTBLcheckwidth
- \ifdim\wd\scratchbox<.75\hsize
- \ifdim\ht\scratchbox>2\openlineheight % honor width since this
- \scratchdimen\gettblaut\tblcol\relax % can be a figure or so
- \ifdim\scratchdimen=\zeropoint
- % side effect: when width is set to 0pt,
- % we can force a span that fits the sum of spans widths
- \settblaut\tblcol{\the\scratchdimen}%
- \else\ifdim\wd\scratchbox>\scratchdimen
- % unless span
- \settblaut\tblcol{\the\wd\scratchbox}%
- % to be translated
- \writestatus\m!TABLE
- {no auto width in (\number#1,\number#2)\space\the\wd\scratchbox/\the\hsize}%
- \fi\fi
- \fi
- \fi
- \fi
- \setbox2\null
- \wd2\wd\scratchbox \ht2\ht\scratchbox \dp2\dp\scratchbox
- \box2
- \egroup}
-
-\long\def\dohandleTBLcellBC#1#2#3[#4]#5%
- {\setbox\scratchbox\hbox
- {\setupTBLcell{#2}{#3}%
- \localframed
- [\@@tbl\@@tbl]
- [#4,#1,\c!frame=\v!off,\c!background=]
- {\bTBLCELL#5\eTBLCELL}}%
- \setbox2\null
- \wd2\wd\scratchbox \ht2\ht\scratchbox \dp2\dp\scratchbox
- \ifautoTBLrowspan
- \scratchcounter\numexpr\tblrow+\plusone\relax
- \doiftblrow\scratchcounter\tblcol
- {\scratchdimen\gettblhei\scratchcounter\relax % moved inside test
- \ifnum\gettblrow\scratchcounter\tblcol>\plusone \ifdim\ht\scratchbox>\scratchdimen
- \scratchdimen-\scratchdimen \advance\scratchdimen -\ht\scratchbox
- \ht2\scratchdimen
- \fi \fi}%
- \fi
- \box2 }
-
-\long\def\dohandleTBLcellB#1#2[#3]#4%
- {\scratchdimen\gettblaut\tblcol\relax
- \ifdim\scratchdimen>\zeropoint\relax
- \let\tblwidthkey\c!width
- \edef\tblwidth{\the\scratchdimen}%
- \else
- \scratchdimen\gettblwid\tblcol\relax
- \ifdim\scratchdimen>\zeropoint\relax
- \ifnum\gettblcol{#1}{#2}=\maximumcol\relax
- \scratchdimen\hsize
- \fi
- \let\tblwidthkey\c!width
- \edef\tblwidth{\the\scratchdimen}%
- \else
- \let\tblwidthkey\s!unknown
- \let\tblwidth\zeropoint
- \fi
- \fi
- \dohandleTBLcellBC{\tblwidthkey=\tblwidth}{#1}{#2}[#3]{\TBLcharalign{#2}{#4}}}
-
-\long\def\dohandleTBLcellC
- {\dohandleTBLcellBC{}}
-
-\long\def\dohandleTBLcellD#1#2[#3]#4%
- {\setupTBLcell{#1}{#2}%
- \bgroup
- \localframed
- [\@@tbl\@@tbl]
- [#3,\c!width=\widthTBL,\c!background=,\c!frame=\v!off]% 25% faster
- {\bTBLCELL\TBLcharalign{#2}{#4}\eTBLCELL}%
- \egroup}
-
-\long\def\dohandleTBLcellE#1#2[#3]#4%
- {\setupTBLcell{#1}{#2}%
- \getparameters[\@@tbl\@@tbl][#3]% to get the color right, the way we
- \color % handle color here prevents interference due to whatsit nodes
- [\tbltblcolor] % as well as permits local colors to take precedence
- {\ifdim\heightTBL=\zeropoint\relax % case: nc=maxcolumns
- \localframed
- [\@@tbl\@@tbl]
- [\c!color=,\c!width=\widthTBL]
- {\bTBLCELL\TBLcharalign{#2}{#4}\eTBLCELL}%
- \else
- \localframed
- [\@@tbl\@@tbl]
- [\c!color=,\c!width=\widthTBL,\c!height=\heightTBL]
- {\bTBLCELL\TBLcharalign{#2}{#4}\eTBLCELL}%
- \fi}%
- \hskip\gettbldis{#2}}
-
-\setupTABLE
- [\c!frameoffset=.5\linewidth,
- \c!backgroundoffset=\v!frame,
- \c!framecolor=\s!black,
- \c!color=,
- \c!style=,
- \c!headstyle=\v!bold,
- \c!headcolor=,
- \c!strut=\v!yes,
- \c!autostrut=\v!no,
- \c!aligncharacter=\v!no,
- \c!alignmentcharacter={,},
- \c!option=, % \v!stretch
- \c!header=,
- \c!spaceinbetween=,
- \c!maxwidth=8em,
- \c!textwidth=\hsize,
- \c!split=\v!auto,
- \c!splitoffset=0pt,
- \c!distance=\zeropoint, % individual column
- \c!columndistance=\zeropoint, % each column (whole table)
- \c!leftmargindistance=\zeropoint, % whole table
- \c!rightmargindistance=\zeropoint,% whole table
- \c!left=,
- \c!right=,
- \c!splitmethod=a]
-
-%D We have already prepared the previous macros for nesting,
-%D so we only have to pop in the right ones:
-
-%D New:
-
-\def\pushTBLparameters
- {\globalpushmacro\TBLlevel
- \ifcase\tblpass
- % we're just after \bTABLE
- \else\ifnum\TBLlevel>\zerocount
- \doglobal\increment\TBLlevel\relax
- \fi\fi}
-
-\def\popTBLparameters
- {\globalpopmacro\TBLlevel}
-
-\def\pushTBL
- {\ifnum\TBLlevel=\zerocount
- \global\advance\currenttbl\plusone
- \fi
- \doglobal\increment\TBLlevel\relax
- \ifnum\TBLlevel>\plusone
- \resetallTABLEparameters
- % we need a proper count push/pop
- \xdef\savedtblrow{\the\tblrow}\globalpushmacro\savedtblrow
- \xdef\savedtblcol{\the\tblcol}\globalpushmacro\savedtblcol
- \else
- \global\intabletrue
- \fi}
-
-\def\popTBL
- {\ifnum\TBLlevel>\plusone
- \globalpopmacro\savedtblrow\global\tblrow\savedtblrow
- \globalpopmacro\savedtblcol\global\tblcol\savedtblcol
- \else
- \global\intablefalse
- \fi
- \doglobal\decrement\TBLlevel\relax}
-
-% \bgroup
-% \setupTABLE[column][1][aligncharacter=yes, alignmentcharacter={,}]
-% \bTABLE
-% \bTR \bTD 1,2 \eTD \bTD 2 \eTD \eTR
-% \bTR \bTD 11,2 \eTD \bTD
-% {\setupTABLE[column][1][aligncharacter=yes, alignmentcharacter={,}]
-% \bTABLE
-% \bTR \bTD 1,2 \eTD \bTD 2 \eTD \eTR
-% \bTR \bTD 11,22 \eTD \bTD 2 \eTD \eTR
-% \bTR \bTD 11,2 \eTD \bTD 2 \eTD \eTR \eTABLE} \eTD \eTR
-% \bTR \bTD 11,22 \eTD \bTD 2 \eTD \eTR
-% \eTABLE
-% \egroup
-
-\newconditional\resetTABLEmode \settrue\resetTABLEmode
-
-\def\resetallTABLEparameters% moet genest wel werken
- {\ifnum\TBLlevel>\plusone % in ieder geval
- \ifconditional\resetTABLEmode
- \presetlocalframed % breedte hoogte diepte offset
- [\@@tbl\@@tbl]% % achtergrond, achtergrondraster, achtergrondkleur
- % not ok yet
- \setupTABLE [%
- \c!frameoffset=.5\linewidth,
- \c!backgroundoffset=\v!frame,
- \c!framecolor=\s!black,
- \c!width=fit,
- \c!height=fit,
-\c!autowidth=\v!yes,
-% \c!rulethickness=\linewidth,
-% \c!strut=\v!no,
-\c!strut=\v!yes, % needed for mathml, but ... maybe we need another resetTABLEmode
-\c!autostrut=\v!no,
- \c!color=,
- \c!style=,
- \c!headstyle=,
- \c!headcolor=,
- \c!aligncharacter=\v!no,
- \c!alignmentcharacter={,},
- \c!maxwidth=8em]%
- \else
- \setupTABLE
- [\c!width=\v!fit,
- \c!height=\v!fit]%
- \fi
- \fi}
-
-%D Spacing:
-%
-% \starttabulate
-% \NC text \NC text \NC \NR
-% \TB[small]
-% \NC text \NC text \NC \NR
-% \TB[4*big]
-% \NC text \NC text \NC \NR
-% \stoptabulate
-%
-% \starttable[|||]
-% \VL text \VL text \VL \AR
-% \TB[small]
-% \VL text \VL text \VL \AR
-% \TB[4*big]
-% \VL text \VL text \VL \AR
-% \stoptable
-
-\def\complexTableTB[#1]{\TABLEnoalign{\blank[#1]}}
-\def\simpleTableTB {\TABLEnoalign{\blank}}
-
-\def\TabulateTB
- {\complexorsimpleTable{TB}}
-
-\def\doTableinterline% #1
- {\ifnum\currentTABLEcolumn>\maxTABLEcolumn
- \chuckTABLEautorow
- \else\ifnum\currentTABLEcolumn=\zerocount
- \TABLEnoalign
- {\globalletempty\checkTABLEautorow
- \globalletempty\chuckTABLEautorow}%
- \else
- \setTABLEerror\TABLEmissingcolumn
- \handleTABLEerror
- \fi\fi
- \complexorsimpleTable} % {#1}
-
-\def\TableHL{\doTableinterline{HL}}
-\def\TableTB{\doTableinterline{TB}}
-
-\appendtoks\let\TB\TableTB \to\everytable
-\appendtoks\let\TB\TabulateTB\to\everytabulate % strange place
-
-\appendtoks \chardef\recodeverbatimmode\plustwo \to \everytable
-
-% new (for Olivier Turlier)
-%
-% \defineTABLEsetup [xx] [foregroundcolor=red]
-%
-% \bTABLE
-% \bTR \bTD oeps \eTD \bTD oeps \eTD \eTR
-% \bTR \bTDs[xx] oeps \eTDs \bTD oeps \eTD \eTR
-% \bTRs[xx] \bTD oeps \eTD \bTD oeps \eTD \eTRs
-% \eTABLE
-
-\def\defineTABLEsetup
- {\dodoubleargument\dodefineTABLEsetup}
-
-\def\dodefineTABLEsetup[#1][#2]%
- {\setvalue{\@@tbl:set:#1}{#2}}
-
-\long\def\bTDs[#1]#2\eTDs
- {\doifdefinedelse{\@@tbl:set:#1}
- {\@EA\@EA\@EA\bTD\@EA\@EA\@EA[\csname\@@tbl:set:#1\endcsname]#2\eTD}
- {\bTD[]#2\eTD}}
-
-\long\def\bTRs[#1]#2\eTRs
- {\doifdefinedelse{\@@tbl:set:#1}
- {\@EA\@EA\@EA\bTR\@EA\@EA\@EA[\csname\@@tbl:set:#1\endcsname]#2\eTR}
- {\bTR[]#2\eTR}}
-
-\protect \endinput
-
-% todo: mode: first|next (of niets)
diff --git a/Master/texmf-dist/tex/context/base/mkii/tabl-nte.mkii b/Master/texmf-dist/tex/context/base/mkii/tabl-nte.mkii
deleted file mode 100644
index 6a5391f243b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/tabl-nte.mkii
+++ /dev/null
@@ -1,107 +0,0 @@
-%D \module
-%D [ file=core-nte,
-%D version=2009.03.08,
-%D title=\CONTEXT\ Table Macros,
-%D subtitle=Natural Tables Extensions,
-%D author=Hans Hagen \& Wolfgang Schuster,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Table Module / Natural Tables Extensions}
-
-\unprotect
-
-%D This module is suggested by Wolfgang Schuster who also prototyped
-%D it and came up with the rationale:
-%D
-%D This module provides an easy way to use natural in a similiar
-%D way as the older table module (based on the \TABLE\ macros) and
-%D the newer tabulate module.
-%D
-%D You can see the advantage in the following table, once created
-%D with the new macros and once with the normal macros provided
-%D with the natural table module.
-%D
-%D Let us start with the original macros:
-%D
-%D \starttyping
-%D \bTABLE
-%D \bTR
-%D \bTD Text 1 \eTD
-%D \bTD Text 2 \eTD
-%D \eTR
-%D \bTR
-%D \bTD Text 3 \eTD
-%D \bTD Text 4 \eTD
-%D \eTR
-%D \eTABLE
-%D \stoptyping
-%D
-%D Watch how the new macros use less code:
-%D
-%D \starttyping
-%D \startTABLE
-%D \NC Text 1 \NC Text 2 \NC\NR
-%D \NC Text 3 \NC Text 4 \NC\NR
-%D \stopTABLE
-%D \stoptyping
-%D
-%D The actual code differs from the prototype that it does not need
-%D to collect whole rows and parse them but looks ahead instead.
-
-\def\startTABLE
- {\dosingleempty\dostartTABLE}
-
-\def\dostartTABLE[#1]%
- {\bgroup
- \bTABLE[#1]%
- \let\NC\doTABLENC
- \let\NR\doTABLENR
- \let\bTR\relax
- \let\bTD\relax
- \let\bTH\relax
- \let\bTN\relax}
-
-\def\stopTABLE
- {\eTABLE
- \egroup}
-
-\newconditional\inTABLEnc
-
-\unexpanded\def\doTABLENR
- {\eTR
- \setfalse\inTABLEnc}
-
-\unexpanded\def\doTABLENC
- {\futurelet\next\dodoTABLENC}
-
-\def\dodoTABLENC
- {\ifx\next\doTABLENR \else
- \expandafter\dododoTABLENC
- \fi}
-
-% \long\def\dododoTABLENC#1\NC
-% {\ifconditional\inTABLEnc\else\settrue\inTABLEnc\parseTR[][]\fi
-% \parseTD[][]#1\eTD\NC}
-
-\long\def\dododoTABLENC#1\NC
- {\ifconditional\inTABLEnc\else\settrue\inTABLEnc\parseTR[][]\fi
- \dodoubleempty\parseTD#1\eTD\NC}
-
-%D The related structure commands are also available:
-
-\unexpanded\def\startTABLEhead{\dosingleempty\dostartTABLEhead} \let\stopTABLEhead\relax
-\unexpanded\def\startTABLEnext{\dosingleempty\dostartTABLEnext} \let\stopTABLEnext\relax
-\unexpanded\def\startTABLEbody{\dosingleempty\dostartTABLEbody} \let\stopTABLEbody\relax
-\unexpanded\def\startTABLEfoot{\dosingleempty\dostartTABLEfoot} \let\stopTABLEfoot\relax
-
-\long\def\dostartTABLEhead[#1]#2\stopTABLEhead{\appendtoks\doTABLEsection[#1]{#2}\to\TBLhead}
-\long\def\dostartTABLEnext[#1]#2\stopTABLEnext{\appendtoks\doTABLEsection[#1]{#2}\to\TBLnext}
-\long\def\dostartTABLEbody[#1]#2\stopTABLEbody{\appendtoks\doTABLEsection[#1]{#2}\to\TBLbody}
-\long\def\dostartTABLEfoot[#1]#2\stopTABLEfoot{\appendtoks\doTABLEsection[#1]{#2}\to\TBLfoot}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/tabl-pln.mkii b/Master/texmf-dist/tex/context/base/mkii/tabl-pln.mkii
deleted file mode 100644
index 39bb50f2329..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/tabl-pln.mkii
+++ /dev/null
@@ -1,91 +0,0 @@
-%D The following bunch of macros come from plain \TEX\ by
-%D Don Knuth and deal with basic alignment. We just include
-%D them here so that they can be used if needed. Normally,
-%D \CONTEXT\ users will fall back on one of the three table
-%D environments.
-%D
-%D The hidden names are somewhat adapted and we use other
-%D local variables.
-
-\writestatus{loading}{ConTeXt Table Macros / Plain Tabular}
-
-\unprotect
-
-\newif \if@@plnusetab
-\newif \if@@plncr
-\newbox \@@plntabs
-\newbox \@@plntabsyet
-\newbox \@@plntabsdone
-\newdimen \@@plntabdimen
-
-\def\cleartabs % visible
- {\global\setbox\@@plntabsyet\null
- \setbox\@@plntabs\null}
-
-\def\settabs % visible
- {\setbox\@@plntabs\null
- \futurelet\next\@@plnsettabs}
-
-\def\tabalign % visible
- {\@@plnusetabtrue\@@plnmaketabbox}
-
-\let\+\tabalign % no outer here (can be overloaded)
-
-\def\@@plnsettabs
- {\ifx\next\+%
- \def\nxt{\afterassignment\@@plnsettab\let\nxt}%
- \else
- \let\nxt\@@plnsetcols
- \fi
- \let\next\relax
- \nxt}
-
-\def\@@plnsettab
- {\let\nxt\relax
- \@@plnusetabfalse\@@plnmaketabbox}
-
-\def\@@plnsetcols#1\columns
- {\scratchcounter#1%
- \@@plntabdimen\hsize
- \loop
- \ifnum\scratchcounter>\zerocount \@nother
- \repeat}
-
-\def\@nother
- {\scratchdimen\@@plntabdimen
- \divide\scratchdimen\scratchcounter
- \setbox\@@plntabs\hbox{\hbox to\scratchdimen{}\unhbox\@@plntabs}%
- \advance\@@plntabdimen-\scratchdimen
- \advance\scratchcounter\minusone}
-
-\def\@@plnmaketabbox
- {\begingroup
- \global\setbox\@@plntabsyet\copy\@@plntabs
- \global\setbox\@@plntabsdone\null
- \def\cr
- {\@@plncrtrue\crcr\egroup\egroup
- \if@@plnusetab\unvbox\zerocount\lastbox\fi\endgroup
- \setbox\@@plntabs\hbox{\unhbox\@@plntabsyet\unhbox\@@plntabsdone}}%
- \setbox\zerocount\vbox\bgroup\@@plncrfalse
- \ialign\bgroup&\@@plnbegintabbox##\@@plnendtabbox\crcr}
-
-\def\@@plnbegintabbox
- {\setbox\zerocount\hbox\bgroup}
-
-\def\@@plnendtabbox
- {\if@@plncr
- \egroup % now \box\zerocount holds the column
- \else
- \hss\egroup
- \global\setbox\@@plntabsyet\hbox
- {\unhbox\@@plntabsyet\global\setbox\plusone\lastbox}% now \box\plusone holds its size
- \ifvoid\plusone
- \global\setbox\plusone\hbox to\wd\zerocount{}%
- \else
- \setbox\zerocount\hbox to\wd\plusone{\unhbox\zerocount}%
- \fi
- \global\setbox\@@plntabsdone\hbox{\box\plusone\unhbox\@@plntabsdone}%
- \fi
- \box\zerocount}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/tabl-tab.mkii b/Master/texmf-dist/tex/context/base/mkii/tabl-tab.mkii
deleted file mode 100644
index 7909e509284..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/tabl-tab.mkii
+++ /dev/null
@@ -1,2515 +0,0 @@
-%D \module
-%D [ file=core-tab,
-%D version=1997.10.10,
-%D title=\CONTEXT\ Table Macros,
-%D subtitle=\TABLE\ Embedding,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Table Macros / TaBlE Embedding}
-
-% By now it makes more sense to merge the patches into the original
-% and clean that one up too.
-
-% \starttable[|||]
-% \HL
-% \VL test \VS test \VL \FR
-% \VL test \VD test \VL \MR
-% \VL test \VT test \VL \LR
-% \HL
-% \stoptable
-
-% Don't change the splitter:
-%
-% ... \NR
-% \TABLEnoalign{\page}\TABLEhead
-% \NC ...
-
-% e-tex: reverse rows or vadjust or ... in tables
-% \ifalign
-% \xhrule : calls for 'special' with width
-% BUG:
-%
-% \starttable[|l|l|]
-% \HL
-% \RL\FR \VL Head 1 \VL Head 2 \VL\FR
-% \RL\LR \VL Head A \VL Head B \VL\LR % niet grijs ??
-% \HL
-% \VL 1 \VL 2 \VL\FR
-% \VL a \VL b \VL\LR
-% \HL
-% \stoptable
-
-% melden als in kleur conflict, uitgestelde test op \SR\SR
-
-% verengelsen
-% interface
-
-% footnotes flushen
-% \......TABLE........ namen
-% kolommen testen
-% unbreakable kop definieren
-% voetnoten
-% meldingen
-% als direct \use{max} dan fout
-% \BREAKPOINT
-% breedte lijn telt
-% errors: ook gray in handle
-
-% \AR -> als in DL dan \DR
-
-% nieuw:
-%
-% \NL / \NL[blanko] is skip, nog default?
-% geen \HL in a row
-% \HL[n]
-% \VL[n] + remembers
-% c{colorspec} key
-% \HC[color][width]
-% \VC[color]
-% meldingen row, column, use, advise
-% \AR: UITSTELLEN / EXPERIMENTEEL
-
-% WAARDELOZE ERROR HANDLER
-% THIS RENEWED MODULE WORKS OK BUT STILL LOOKS BAD
-
-%D We felt no need to write our own table building macros,
-%D simply because Michael Wichura made a terrific one. This
-%D package is quite complete and well documented. In \CONTEXT\
-%D we provide a shell for consistent spacing as well as color
-%D support. Implementing these features without adapting the
-%D original macros is not trivial. One easilly gets conflicts
-%D with \type{\omit}, \type{\span} and \type{\noalign}, which
-%D means that we end up postponing and overloading macros,
-%D mostly global. Now, let's start with loading the main
-%D macros:
-
-\doifundefined{BeginTable}{\doinputonce{table.tex}}
-
-\unprotect
-
-%D \macros
-%D {inintable, ifsplittables}
-%D
-%D First we declare some variables. These show a bit what we
-%D are dealing with. First we introdoce some booleans that
-%D enable us, inside as well as outside this module, to
-%D determine in what mode we are.
-
-\newif\ifintable
-\newif\ifsplittables
-
-%D \macros
-%D {tracetablestrue}
-%D
-%D When I documented this module, I felt the need for tracing
-%D options. After implementing this feature, I also added
-%D warnings, error recovery and automatic spacing.
-
-\newif\iftracetables
-
-%D We show this feature in an eample that also shows some of
-%D the basic table typesetting commands.
-%D
-%D \startbuffer
-%D \starttable[|||]
-%D \HL
-%D \VL first \VL second \VL\AR
-%D \HL
-%D \VL alfa \VL 1 \VL\AR
-%D \VL beta \VL 2 \VL\AR
-%D \VL gamma \VL 3 \VL\AR
-%D \HL
-%D \stoptable
-%D \stopbuffer
-%D
-%D \startcombination
-%D {\tracetablesfalse\getbuffer} {\type{\tracetablesfalse}}
-%D {\tracetablestrue\getbuffer} {\type{\tracetablestrue}}
-%D \stopcombination
-%D
-%D This table is specified as:
-%D
-%D \typebuffer
-%D
-%D This examples shows about the minimum of commands needed to
-%D typeset such a table. In this table, the \type {\AR} is
-%D automatically translated into the more primitive (but more
-%D verbose) commands \type {\SR}, \type {\FR}, \type {\MR} and
-%D \type {\LR} commands.
-%D
-%D \startbuffer
-%D \starttables[|||]
-%D \HL
-%D \VL first \VL second \VL\AR
-%D \HL
-%D \VL alfa \VL 1 \VL\AR
-%D \VL beta \VL 2 \VL\AR
-%D \VL gamma \VL 3 \VL\AR
-%D \HL
-%D \stoptable
-%D \stopbuffer
-%D
-%D When we use the split table feature, we get a bit more
-%D information.
-%D
-%D {\tracetablesfalse\getbuffer}
-%D
-%D Sometimes in tables information shows up that is not typed
-%D in by the user. These messages give a cue in what aspect a
-%D table definition is wrong.
-%D
-%D \startbuffer
-%D \starttable[||||]
-%D \HL
-%D \VL first second \VL third \VL\AR
-%D \HL
-%D \VL alfa \VL 1 \VL a \VL\AR
-%D \VL beta \VL 2 \VL b \VL
-%D \VL gamma \VL \THREE{3} c \VL\AR
-%D \HL
-%D \stoptable
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Those terrible table has three errors, which all show up in
-%D typeset messages. Errors cannot always recovered 100\% and
-%D therefore can result in two or more succesive messages, like
-%D in the last row.
-%D
-%D \getbuffer
-
-%D Bringing color into tables is complicated by the mere fact
-%D that color is not part of \TEX. The main complication is
-%D that we don't know in advance how wide a column will be. I
-%D implemented color support in tables in the early 90's
-%D because I needed it for some articles on color. I have to
-%D admit that I seldom use the mechanism.
-%D
-%D Most color support in \CONTEXT\ makes use of colored rules.
-%D At first sight, one is tempted to implement colors in tables
-%D in a similar way, but as said, we don't know the dimensions
-%D in advance. It turns out however that we don't have to,
-%D simply because alignments take care of stretching rules to
-%D the appropritate dimensions. This means that we can provide
-%D backgrounds by coloring rules with the height of a row,
-%D skipping upwards and finally drawing the content, like in:
-%D
-%D \gdef\ShowExample
-%D {\startfiguretext
-%D {none}
-%D {\getbuffer}
-%D \typebuffer
-%D \stopfiguretext}
-%D
-%D \startbuffer
-%D \starttable[|c|c|]
-%D \HL
-%D \BL[2] \SR
-%D \VL test \VL test \VL\SR
-%D \HL
-%D \VL test \VL test \VL\FR
-%D \VL test \VL test \VL\MR
-%D \VL test \VL test \VL\LR
-%D \HL
-%D \stoptable
-%D \stopbuffer
-%D
-%D \ShowExample
-%D
-%D Just to be complete we show how the other columns can be
-%D given a background. Later we will provide more details over
-%D the commands used.
-%D
-%D \startbuffer
-%D \starttable[|c|c|c|]
-%D \HL
-%D \BL[3] \SR
-%D \VL test \VL test \VL test \VL\SR
-%D \HL
-%D \stoptable
-%D \stopbuffer
-%D
-%D \ShowExample
-%D
-%D \startbuffer
-%D \starttable[|c|c|c|]
-%D \HL
-%D \BC \BL[2] \SR
-%D \VL test \VL test \VL test \VL\SR
-%D \HL
-%D \stoptable
-%D \stopbuffer
-%D
-%D \ShowExample
-%D
-%D \startbuffer
-%D \starttable[|c|c|c|]
-%D \HL
-%D \BC \BC \BL \SR
-%D \VL test \VL test \VL test \VL\SR
-%D \HL
-%D \stoptable
-%D \stopbuffer
-%D
-%D \ShowExample
-%D
-%D \startbuffer
-%D \starttable[|c|c|c|]
-%D \HL
-%D \BC \BL \SR
-%D \VL test \VL test \VL test \VL\SR
-%D \HL
-%D \stoptable
-%D \stopbuffer
-%D
-%D \ShowExample
-%D
-%D \startbuffer
-%D \starttable[|c|c|c|]
-%D \BL \BL \SR
-%D \HL
-%D \VL test \VL test \VL test \VL\SR
-%D \HL
-%D \stoptable
-%D \stopbuffer
-%D
-%D \ShowExample
-
-%D In these examples we can clearly see that for being a real
-%D background, the color or gray specification has to precede
-%D the content. Just to keep things simple, we can recall this
-%D specification later on:
-%D
-%D \startbuffer
-%D \starttable[|c|c|c|]
-%D \BC \BL \SR
-%D \HL
-%D \VL test \VL test \VL test \VL\SR
-%D \HL
-%D \BR\FR
-%D \VL test \VL test \VL test \VL\FR
-%D \BR\MR
-%D \VL test \VL test \VL test \VL\MR
-%D \BR\LR
-%D \VL test \VL test \VL test \VL\LR
-%D \HL
-%D \stoptable
-%D \stopbuffer
-%D
-%D \ShowExample
-%D
-%D Close study learns that we can put the specification
-%D before or after the \type{\HL}, whatever suits best. Keeping
-%D track of these specifications is taken care of by the next
-%D variables:
-
-\newif \ifTABLEgrayline % executing gray line
-\newif \ifTABLEgraydone % gray line executed
-\newtoks \TABLEgraytoks % gray line specification
-
-\newif\ifTABLEinbreak
-
-%D Nog vervangen:
-
-\def\c!Table{Table}
-\def\m!TABLE{TABLE}
-
-%D We already saw that the table macros report errors and
-%D provide automatic spacing. These features can only be
-%D implemented by keeping track of the state, often the last
-%D command on a row.
-
-\chardef\TABLEunknown = 0
-
-\chardef\TABLEseparaterow = 1
-\chardef\TABLEfirstrow = 2
-\chardef\TABLEmidrow = 3
-\chardef\TABLElastrow = 4
-\chardef\TABLErule = 5
-\chardef\TABLEskip = 6
-\chardef\TABLEautorow = 7
-
-\chardef\TABLEforcefirstrow = 1
-\chardef\TABLEforcelastrow = 2
-
-\chardef\TABLEmissingrow = 1
-\chardef\TABLEmissingcolumn = 2
-\chardef\TABLEspanoverflow = 3
-\chardef\TABLEdivisionoverflow = 4
-
-%D We store these states using efficient \type {\chardef}'s.
-%D Like most variables, these are global ones. When needed,
-%D especially when we flush the backgrounds, we can temporary
-%D disable the assignment.
-
-\newif\ifsetTABLEaction
-
-\def\setTABLEaction#1%
- {\ifsetTABLEaction\global\chardef\TABLEaction#1\fi}
-
-\def\setTABLEforce#1%
- {\ifsetTABLEaction\global\chardef\TABLEforce#1\fi}
-
-\def\setTABLEerror#1%
- {\global\chardef\TABLEerror#1}
-
-%D Before we come to using these variables, we redefine and/or
-%D adapt some \TABLE\ macros. Within \TABLE's the \type{|} and
-%D \type{"} have special meanings in templates and are active
-%D during. Their meaning can therefore conflict with those
-%D elsewhere defined. To be compatible with traditional \TABLE\
-%D as well as \CONTEXT's \type{||} and the active \type{"}
-%D extensions for my german friends, we do some catcode magic.
-
-\newif\ifForgetTableBarAndQuote \ForgetTableBarAndQuotetrue
-
-% \bgroup
-
-% \catcode`\|=\@@active
-% \catcode`\"=\@@active
-%
-% \gdef\pushouterbarandquote
-% {\ifForgetTableBarAndQuote
-% \ifnum\catcode`\|=\@@active \let\outertablebar |\else\let\outertablebar \relax\fi
-% \ifnum\catcode`\"=\@@active \let\outertablequote"\else\let\outertablequote\relax\fi
-% \let|\letterbar
-% \let"\letterdoublequote
-% \fi}
-%
-% \gdef\popouterbarandquote
-% {\ifForgetTableBarAndQuote
-% \ifx\outertablebar \relax\else\let|\outertablebar \fi
-% \ifx\outertablequote\relax\else\let"\outertablequote\fi
-% \else
-% \redefinetablebarandquote
-% \fi}
-%
-% \egroup
-%
-% \def\ObeyTableBarAndQuote
-% {\ForgetTableBarAndQuotefalse
-% \ifintable
-% \redefinetablebarandquote
-% \fi}
-
-\let\ActivateBarAndQuote \relax
-\let\ObeyTableBarAndQuote\relax
-\let\pushouterbarandquote\relax
-\let\popouterbarandquote \relax
-
-%D \macros
-%D {ObeyTableBarAndQuote}
-%D
-%D As said, the \type{|} and \type{"} active characters are
-%D often used for other purposes. By default, the outside
-%D meanings are therefore preserved and available inside
-%D tables. If for some reason one wants to use the \TABLE\
-%D primitives, one can say:
-%D
-%D \starttyping
-%D \ObeyTableBarAndQuote
-%D \stoptyping
-%D
-%D To keep things verbose, as well as to show what \TABLE\
-%D commands we affect, we show some meanings.
-
-\def\normalTABLEshortrule {\!ttShortHrule} % \-
-\def\normalTABLElongrule {\!ttLongHrule} % \=
-\def\normalTABLEfullrule {\!ttFullHrule} % \_
-\def\normalTABLEendofrow {\!ttEndOfRow} % \\
-\def\normalTABLEsimplebar {\unskip\!ttRightGlue&&} % |
-\def\normalTABLEcomplexbar {\unskip\!ttRightGlue&\omit\!ttAlternateVrule} % \|
-\def\normalTABLEquote {\unskip\!ttRightGlue&\omit&} % "
-\def\normalTABLElineformat {\normalTABLEendofrow+}
-\def\normalTABLElineending {\normalTABLEendofrow0 }
-\def\normalTABLEsinglerule {&\normalTABLElongrule&}
-\def\normalTABLEmultirule#1{&\use{#1}\normalTABLElongrule&}
-
-%D The next hack is dedicated to Tobias, who found out that
-%D paragraph entries don't break well.
-
-\def\TABLEhack{\hskip\zeropoint}
-
-%D The first attemp to solve this problem was:
-%D
-%D \starttyping
-%D \def\normalTABLEquote%
-%D {\unskip\TABLEhack\!ttRightGlue&\omit&\TABLEhack}
-%D \stoptyping
-%D
-%D But, as usual, this interfered with \type {\omit}.
-%D
-%D The next attempt is redefining some core \TABLE\ macro:.
-%D This works ok, but breaks for instance the~\type{b}
-%D key handling.
-%D
-%D \starttyping
-%D \def\!tfAdjoinPriorColumn%
-%D {\ifnum\!taColumnNumber=0
-%D \!taPreamble=\!taRuleColumnTemplate
-%D ...
-%D \if!taOnceOnlyTabskip
-%D \!thToksEdef\!taDataColumnTemplate=
-%D {\TABLEhack####\TABLEhack\tabskip\the\!taLastRegularTabskip}
-%D \else
-%D \!taDataColumnTemplate{\TABLEhack##\TABLEhack}%
-%D \fi
-%D ...
-%D \ReadFormatKeys}
-%D \stoptyping
-
-% \newdimen\TABLEparheight
-
-\def\BeginTableParBox#1%
- {\setbox\scratchbox\vtop\bgroup % \setbox added
- \hsize#1\relax
- \dontcomplain
- \restoretablelineskips
- \normalbaselines
- \let~\!ttTie
- \let\-\!ttDH
- \blank[\v!disable]% % added
- \the\EveryTableParBox}
-
-\def\EndTableParBox
- {\removelastskip % itemize or so
- \endgraf
- \ifnum\prevgraf>\zerocount % we want at least
- \verticalstrut \nowhitespace \vskip-\struttotal % one line of text
- \egroup
- \ifdim\dp\scratchbox>\lineheight % see (*) for an
- \getnoflines{\dp\scratchbox}% % example of where
- \dp\scratchbox\zeropoint % saving can go
- \setbox\scratchbox % terrible wrong
- \vtop to \noflines\lineheight{\box\scratchbox}%
- \fi % esp between rows
- \else % of paragraphs
- \egroup
- \fi
-% \getboxheight\scratchdimen\of\box\scratchbox\relax% compensate for
-% \ifdim\scratchdimen>\TABLEparheight % funny depth of
-% \global\TABLEparheight\scratchdimen % multi-line box
-% \fi % i.e. vtop
- \box\scratchbox}
-
-% We also need to patch away the interfering math switch:
-
-% \mathpunctuationtrue
-
-% test, test
-% \starttable[|c|]
-% \NC1,,10\NC\AR
-% \stoptable
-% test, test
-
-\def\!ttBeginTableA[#1]{%
- \if #1u% % "unboxed" table
- \ifmmode
- \def\!ttEndTable{% % user had better be in display math mode
- \relax}% % and have only one table at the outer level
- \else % user had better be in vertical mode
- \bgroup
- \def\!ttEndTable{%
- \egroup}%
- \fi
- \else
- %\hbox\bgroup $
- %\def\!ttEndTable{%
- % \egroup % for the \vtop, \vbox, or \vcenter, yet to come
- % $% for math mode
- % \egroup}% for the \hbox
- %\if #1t%
- % \vtop
- %\else
- % \if #1b%
- % \vbox
- % \else
- % \vcenter % math mode was essential for this
- % \fi
- %\fi
- %
- \hbox\bgroup
- \def\!ttEndTable{\egroup\egroup}%
- \if#1t%
- \vtop
- \else\if#1b%
- \vbox
- \else
- \def\!ttEndTable{\egroup$\egroup}%
- %$\vcenter
- \scratchtoks\everymath\everymath\emptytoks$\everymath\scratchtoks\vcenter
- \fi\fi
- %
- \bgroup % for the \vtop, \vbox, or \vcenter
- \fi
- \advance\!taRecursionLevel 1 % RecursionLevel governs initialization
- \let\!ttRightGlue=\relax % This may be changed by \JustCenter, etc
- \everycr\emptytoks % ={}
- \ifnum \!taRecursionLevel=1
- \!ttInitializeTable
- \fi}
-
-%D The next redefinition is more robust than the original:
-
-\def\SetTableToWidth#1%
- {\doifelsenothing{#1}{\!taTableSpread\emptytoks}{\!taTableSpread{to #1}}}
-
-% (*) Try this one with \type {direction} and {girection};
-% the \PPCHTEX\ manual is a nice testcase.
-%
-% \startoverlay
-% {\starttable[ | l w(2cm) | w(8cm) | ]
-% \HL
-% \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \FR
-% \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \MR
-% \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \LR
-% \HL
-% \stoptable}
-% {\starttable[ | l w(2cm) | p(8cm) | ]
-% \HL
-% \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \FR
-% \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \MR
-% \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \LR
-% \HL
-% \stoptable}
-% \stopoverlay
-% \vskip2cm
-% \starttable[ | l w(2cm) | p(8cm) | ]
-% \HL
-% \VL direction \VL \showbaselines \dorecurse{3}{direction }\VL \FR
-% \VL direction \VL \showbaselines \dorecurse{8}{direction }\VL \LR
-% \HL
-% \stoptable
-% \vskip2cm
-% \starttable[ | l w(2cm) | p(8cm) | ]
-% \HL
-% \VL direction \VL \showbaselines \dorecurse{8}{direction }\VL \FR
-% \VL direction \VL \showbaselines \dorecurse{8}{direction }\VL \LR
-% \HL
-% \stoptable
-
-%D To give an impression of what the (well documented) source
-%D of \TABLE\ looks like, we first implement an alternative for
-%D the numeric keys. The quantity keys (\type{q} and \type{Q})
-%D support the more european way of writing numbers:
-%D
-%D \startnarrower
-%D 100.000.000,00 instead of 100,000,000.00
-%D \stopnarrower
-%D
-%D The next table shows how to use these keys. We use braces
-%D instead of brackets because we need brackets to specify the
-%D format.
-%D
-%D \startbuffer
-%D \starttable{|q[00,000]|Q[00,00]|}
-%D \HL
-%D \VL -1,2 \VL 12,35 \VL\FR
-%D \VL 11,203 \VL 2,4 \VL\LR
-%D \HL
-%D \stoptable
-%D \stopbuffer
-%D
-%D \ShowExample
-%D
-%D Although a more efficient implementation is possible |<|we
-%D can for instance share common macros|>| we just adapt a copy
-%D of the numeric ones. To permit double loading of this
-%D module, we check for the existence of one of the macros.
-
-\letvalue{!tk<\string q>}=\undefined
-\letvalue{!tk<\string Q>}=\undefined
-
-%D We just copy the original {\em comments}.
-%D
-%D \em Key \type{q}: quantity item, non||math mode.
-
-\NewFormatKey q%
- {\letempty\!tqStyle
- \futurelet\!tnext\!tqTestForBracket}
-
-%D \em Key \type{Q}: quantity item, math mode.
-
-\NewFormatKey Q%
- {\def\!tqStyle{$}%
- \futurelet\!tnext\!tqTestForBracket}
-
-%D \em Note: the space between a quantity entry and the
-%D following \type{|}, \type{"}, or \type{\|} is mandatory.
-%D empty quantity entries are not allowed: use \type{{}} or
-%D \type{\omit} instead.
-%D
-%D \em Test for bracket: invoked by the keys \type{q} and
-%D \type{Q}.
-
-\def\!tqTestForBracket
- {\ifx[\!tnext
- \!thx\!tqGetArgument
- \else
- \!thx\!tqGetCode
- \fi}
-
-%D \em Get code: e.g. \type{4}, or \type{4,0}, \type{0,4}, or
-%D \type{10,2}.
-
-\def\!tqGetCode#1 % note the blank
- {\!tqConvertCode #1,,!}
-
-%D \em Convert code: e.g. converts above to \type{[0000]},
-%D \type{[0000,]}, \type{[,0000]}, \type{[0000000000,00]}.
-
-\def\!tqConvertCode #1,#2,#3!%
- {\begingroup
- \aftergroup\edef
- \aftergroup\!ttemp
- \aftergroup{%
- \aftergroup[%
- \!taCountA #1
- \!thLoop
- \ifnum \!taCountA>\zerocount
- \advance\!taCountA \minusone
- \aftergroup0
- \repeat
- \def\!ttemp{#3}%
- \ifx\!ttemp\empty
- \else
- \aftergroup,
- \!taCountA #2
- \!thLoop
- \ifnum\!taCountA>\zerocount
- \advance\!taCountA \minusone
- \aftergroup0
- \repeat
- \fi
- \aftergroup]\aftergroup}%
- \endgroup\relax
- \!thx\!tqGetArgument\!ttemp}
-
-%D \em Get argument:
-%D
-%D \starttyping
-%D <sample left field> <optional, sample right field>
-%D \stoptyping
-
-\def\!tqGetArgument[#1]%
- {\!tqMakeQuantityTemplate\!tqStyle#1,,!}
-
-%D \em Make quantity template.
-
-\def\!tqMakeQuantityTemplate#1#2,#3,#4!% #1=<empty> or $
- {\def\!ttemp{#4}%
- \ifx\!ttemp\empty
- \!taDimenC\zeropoint
- \else
- \setbox0\hbox{\mathsurround\zeropoint #1,#3#1}%
- \!taDimenC\wd0
- \fi
- \setbox0\hbox{\mathsurround\zeropoint #1#2#1}%
- \!thToksEdef\!taDataColumnTemplate
- ={\noexpand\!tqSetQuantityItem{\the\wd0 }{\the\!taDimenC}{#1}%
- \the\!taDataColumnTemplate}%
- \ReadFormatKeys}
-
-%D \em Set numeric item.
-
-\def\!tqSetQuantityItem #1#2#3#4 %
- {\!tqSetQuantityItemA{#1}{#2}{#3}#4,,!}
-
-\def\!tqSetQuantityItemA #1#2#3#4,#5,#6!%
- {\def\!ttemp{#6}%
- \hbox to #1{\hss\mathsurround\zeropoint#3#4#3}%
- \hbox to #2{\ifx\!ttemp\empty\else\mathsurround\zeropoint#3,#5#3\fi\hss}}
-
-%D Here ends the Q||extension. Did you watch the clever use
-%D of aftergroup in \type{\!tqConvertCode}.
-
-% %D We also (have to) define a key for \type{\cap}:
-%
-% \letvalue{!tk<\string K>}=\undefined
-%
-% \NewFormatKey K%
-% {\ReadFormatKeys b\smallcapped}
-
-%D A few pages back we saw backgrounds, further on we will see
-%D colored rules, and here we provide a means to color the
-%D entries in a column. (We can of course always use the normal
-%D color commands for individual entries.) We could not use the
-%D lowercase~\type{c}, because that one is used to force {\em
-%D centering}.
-%D
-%D \startbuffer
-%D \starttable[|C{red}|C{green}|C{blue}|]
-%D \VL R(ed) \VL G(reen) \VL B(lue) \VL\SR
-%D \stoptable
-%D \stopbuffer
-%D
-%D \ShowExample
-
-\letvalue{!tk<\string C>}=\undefined
-
-\NewFormatKey C#1%
- {\ReadFormatKeys b{\localstartcolor[#1]} a{\localstopcolor}}
-
-%D So now we have three new keys:
-%D
-%D \starttable[|||]
-%D \HL
-%D \NC \bf key \NC \bf meaning \NC\AR
-%D \HL
-%D \NC Q[x,y] \NC math mode formatted numbers \NC\AR
-%D \NC q[x,y] \NC text mode formatted numbers \NC\AR
-%D \NC C{identifier} \NC column entry color \NC\AR
-%D \HL
-%D \stoptable
-
-%D To be compatible with the tabulate environment, we also
-%D support the \type {l}, \type {c} and \type {r} keys for
-%D paragraph entries.
-
-\letvalue{!tk<\string l>}=\undefined
-\letvalue{!tk<\string c>}=\undefined
-\letvalue{!tk<\string r>}=\undefined
-\letvalue{!tk<\string x>}=\undefined % not that needed
-
-\NewFormatKey c%
- {\prependtoks\raggedcenter\to\!taDataColumnTemplate
- \ReadFormatKeys \LeftGlue\hfil \RightGlue\hfil}
-
-\NewFormatKey l%
- {\prependtoks\raggedright\to\!taDataColumnTemplate
- \ReadFormatKeys \LeftGlue\empty \RightGlue\hfil}
-
-\NewFormatKey r%
- {\prependtoks\raggedleft\to\!taDataColumnTemplate
- \ReadFormatKeys \LeftGlue\hfil \RightGlue\empty}
-
-\NewFormatKey x%
- {\prependtoks\notragged\to\!taDataColumnTemplate
- \ReadFormatKeys \LeftGlue\hfil \RightGlue\empty}
-
-\appendtoks \TABLEparalignment \to \EveryTableParBox
-
-\def\!tfReFormat#1%
- {\the \!taLeftGlue
- \vbox{\forgetall\ialign{\span\the\!taDataColumnTemplate\cr#1\cr}}%
- \the \!taRightGlue
- \kern\zeropoint} % prevents \unskip / really needed
-
-%D Later on, we're going to implement multiple page table
-%D support, therefore the next \TABLE\ macro needs to be
-%D slightly adapted, i.c. the penalty is removed. We also
-%D add basic color support.
-
-\def\!ttFullHruleA
- {\!ttGetHalfRuleThickness
- \startglobalTABLEcolor % added
- \hrule\!thHeight\dimen0\!thDepth\dimen0
- \stopglobalTABLEcolor % added
- %\penalty0 % removed
- \egroup}
-
-%D We'll see that when we want to give a vertical rule a color,
-%D we have to set and reset states. After heavy testing it
-%D proved most useful to extend a \TABLE\ primitive with some
-%D hooks. One thing to keep in mind is that \type{&} keeps
-%D assignments local. Again, we add basic color support.
-
-\let\TABLEbeforebar\empty
-\let\TABLEafterbar \empty
-
-\def\@VLn{1}
-\def\@VLd{.125em}
-
-\def\do!ttInsertVrule % will be merged in 2005
- {\vrule \!thWidth
- \ifnum\!tgCode=\plusone
- \ifx\!tgValue\empty
- \LineThicknessFactor
- \else
- \!tgValue
- \fi
- \LineThicknessUnit
- \else
- \!tgValue
- \fi
- \hskip\@VLd}
-
-\def\!ttInsertVrule
- {\hfil
- \TABLEbeforebar % added
- \startglobalTABLEcolor % added
- % we could do without this speedup, some day merge 'm
- \ifcase\@VLn\or
- \do!ttInsertVrule
- \unskip
- \else
- \dorecurse\@VLn\do!ttInsertVrule
- \gdef\@VLn{1}%
- \unskip
- \fi
- \stopglobalTABLEcolor % added
- \TABLEafterbar % added
- \hfil
- &}
-
-%D The next two macros are only adapted to basis rule
-%D color support.
-
-\def\!tfSetVrule
- {\!thToksEdef\!taRuleColumnTemplate=
- {\noexpand\hfil
- \noexpand\startglobalTABLEcolor % added
- \noexpand\vrule
- \noexpand\!thWidth
- \ifnum\!tgCode=\plusone
- \ifx\!tgValue\empty
- \the\LineThicknessFactor
- \else
- \!tgValue
- \fi
- \!taLTU
- \else
- \!tgValue
- \fi
- ####%
- \noexpand\hfil
- \noexpand\stopglobalTABLEcolor % added
- \the\!taRuleColumnTemplate}%
- \!tfAdjoinPriorColumn}
-
-\def\!ttShortHruleA
- {\!ttGetHalfRuleThickness
- \startglobalTABLEcolor % added
- \leaders\hrule\!thHeight\dimen0\!thDepth\dimen0\hfill
- \stopglobalTABLEcolor % added
- \null
- \ignorespaces}
-
-%D We already showed the next one, but here we slightly adapt
-%D the macro by adding an \type{\expandafter}. The space after
-%D \type{#1} is crucial!
-
-\def\normalTABLEcomplexbar#1%
- {\unskip\!ttRightGlue&\omit\expandafter\!ttAlternateVrule#1 }
-
-%D To get rid of interfering \type{\omit}'s when we are
-%D checking the number of columns and reporting problems. The
-%D extensions concern the second level check, the first
-%D subbranch and advancing the column.
-
-\ifx\mscount\undefined \newcount\mscount \fi
-
-\def\!ttuse#1%
- {\ifnum#1>\plusone
- \omit
- \global\TABLEdivisionfalse
- \scratchcounter\currentTABLEcolumn % added
- \advance\scratchcounter #1% % added
- \advance\scratchcounter \minusone % added
- \ifnum\scratchcounter>\maxTABLEcolumn % added
- \def\next % added
- {\setTABLEerror\TABLEspanoverflow % added
- \handleTABLEerror}% % added
- \else % added
- \def\next % added
- {\global\advance\currentTABLEcolumn #1% % added
- \global\advance\currentTABLEcolumn \minusone % added
- \mscount#1% \mscount is in Plain
- \advance\mscount \minusone
- \advance\mscount \mscount
- \!thLoop
- \ifnum\mscount>\plusone
- \spanomit \advance\mscount\minusone
- \repeat
- \span}%
- \fi % added
- \else % added
- \def\next % conflicts with possible next \omit % added
- {\global\advance\currentTABLEcolumn \plusone}% % added
- \fi
- \next} % added
-
-% \starttable[|c|c|c|c|]
-% \HL
-% \VL {test} \VL \TWO{} \VL test \VL\FR
-% \DL \DC \DL\DR
-% \VL {test} \VL \TWO{} \VL test \VL\LR
-% \HL
-% \stoptable
-
-%D All commands that are executed between rows are to be put in
-%D \type {\noalign}. We can however not verify if we (that is
-%D \TABLE) does or did not enter this mode. A moderate dirty
-%D but useful trick is using our own alternative:\footnote{Once
-%D one has entered the stage of redefining \TEX\ primitives,
-%D such hacks become a second nature. However, redefining \type
-%D {\omit} and \type{\span} is not that easy.}
-
-\def\TABLEnoalign
- {\noalign\bgroup\let\noalign\relax\let\next=}
-
-%D \macros
-%D {starttable}
-%D
-%D The rest of this module is not easy to comprehend, mainly
-%D because we have to take care of:
-%D
-%D \startitemize[packed]
-%D \item \type{\startitemize[template]}
-%D \item \type{\startitemize{template}}
-%D \item \type{\startitemize[predefined]}
-%D \stopitemize
-%D
-%D as well as:
-%D
-%D \startitemize[continue]
-%D \item restart after table break
-%D \stopitemize
-%D
-%D The official specification of the start command is:
-%D
-%D \showsetup{starttable}
-
-\newconditional\tablerepeathead
-\newconditional\tablerepeattail
-
-\def\starttable
- {\bgroup
- \doif\@@tisplit\v!auto
- {\ifinsidesplitfloat\let\@@tisplit\v!yes\fi}%
- \doifinsetelse\@@tisplit{\v!yes,\v!repeat}
- {\def\stoptable{\stoptables\egroup}%
- \starttables}
- {\doifelsenothing\@@tiframe
- {\ifinsidefloat\else\startbaselinecorrection\fi}
- {\startframedcontent[\@@tiframe]}%
- \postponenotes
- \firststagestartTABLE}}
-
-\def\stoptable
- {\chuckTABLEautorow % before the tail, else noalign problem
- \insertTABLEtail
- \TABLEnoalign{\globalletempty\@@TABLEhead}%
- \TABLEnoalign{\globalletempty\@@TABLEtail}%
- \finishTABLE
- \doifelsenothing\@@tiframe
- {\ifinsidefloat\else
- \stopbaselinecorrection
- \goodbreak % compensates all the nobreaks
- \fi}
- \stopframedcontent
- \egroup}
-
-%D Before we can grab the argument, we have to make sure that
-%D the \CATCODES\ are set. The first stage takes care of that.
-
-\def\firststagestartTABLE
- {\bgroup % kan-ie weg?
- \global\intabletrue
- \pushouterbarandquote
- %catcode`\|=\@@other
- \complexorsimple\secondstagestartTABLE}
-
-\def\simplesecondstagestartTABLE#1%
- {\complexsecondstagestartTABLE[{#1}]}
-
-%D \macros
-%D {definetabletemplate}
-%D
-%D The complex (and main) start macro first takes care of the
-%D predefined case. Such a predefined setup looks like:
-%D
-%D \starttyping
-%D \definetabletemplate[test][|||]
-%D
-%D \starttable[test]
-%D \VL test \VL test \VL\AR
-%D \VL test \VL test \VL\AR
-%D \VL test \VL test \VL\AR
-%D \stoptable
-%D \stoptyping
-%D
-%D The implementation of the definition macro is not that
-%D complicated:
-
-\def\definetabletemplate % to be redone
- {\bgroup
- \catcode`\|=\@@other
- \doquadrupleempty\dodefinetabletemplate}
-
-\def\dodefinetabletemplate[#1][#2][#3][#4]%
- {\ifsecondargument
- \setgvalue{\c!Table#1}{\douseTABLEtemplate{#2}{#3}{#4}}%
- \fi
- \egroup}
-
-\def\douseTABLEtemplate#1#2#3%
- {\gdef\TABLEhead{\getvalue{@@TABLEhead#2}}%
- \gdef\TABLEtail{\getvalue{@@TABLEtail#3}}%
- \complexsecondstagestartTABLE[#1]}
-
-%D The optional third and fourth arguments define which table
-%D head and tail to use.
-%D
-%D \starttyping
-%D \definetabletemplate[test][|||][before][after]
-%D \stoptyping
-%D
-%D This also means that one can define table heads and tails
-%D by name!
-%D
-%D \starttyping
-%D \starttablehead[before]
-%D \HL \VL first \VL second \VL \SR \HL
-%D \stoptablehead
-%D \stoptyping
-%D
-%D Templates defined this way get protected names, that cannot
-%D conflict with existing commands.
-%D
-%D \showsetup{definetabletemplate}
-%D
-%D The second half of the next macro prepares table
-%D splitting.
-
-\def\insertTABLEhead
- {\TABLEnoalign{\global\settrue \preventTABLEbreak \global\setfalse\someTABLEhead}%
- \TABLEhead
- \TABLEnoalign{\global\setfalse\preventTABLEbreak}}
-
-\def\insertTABLEtail
- {\TABLEnoalign{\global\settrue \preventTABLEbreak \global\setfalse\someTABLEtail}%
- \TABLEtail
- \TABLEnoalign{\global\setfalse\preventTABLEbreak}}
-
-% \def\dorestartTABLE#1%
-% {\gdef\restartTABLE{#1}%
-% \restartTABLE
-% \insertTABLEhead
-% \ifsplittables \ifconditional \tablerepeattail
-% \TABLEnoalign{\goodbreak}%
-% \insertTABLEtail
-% \TABLEnoalign{\goodbreak}%
-% \fi \fi}
-
-\def\verysimpleTableHL
- {\TABLEnoalign{\expandafter\normalTABLEfullrule\@@tiHLheight}}
-
-\def\dorestartTABLE#1%
- {\gdef\restartTABLE{#1}%
- \restartTABLE
- \TABLEnoalign{\globalpushmacro\simpleTableHL\global\let\simpleTableHL\verysimpleTableHL}%
- \insertTABLEhead
- \ifsplittables \ifconditional \tablerepeattail
- \TABLEnoalign{\goodbreak}%
- \insertTABLEtail
- \TABLEnoalign{\goodbreak}%
- \fi \fi
- \TABLEnoalign{\globalpopmacro\simpleTableHL}}
-
-\bgroup \catcode`|=\@@other \catcode`"=\@@other
-
-\gdef\complexsecondstagestartTABLE#1[#2]% brr nested mess
- {\bgroup
- \@@useotherbar
- \@@useotherquote
- \global\setfalse\someTABLEhead
- \global\setfalse\someTABLEtail
- \expanded{\doifinstringelse{|}{#2}}
- {\xdef\restartTABLE{\noexpand\dorestartTABLE{\noexpand\thirdstagestartTABLE{#2}}}}
- {\doifdefinedelse{\c!Table#2}
- {\gdef\restartTABLE{\getvalue{\c!Table#2}}}
- {\gdef\restartTABLE{\dorestartTABLE{\getvalue{#2}}}}}%
- \egroup
- \restartTABLE}
-
-\egroup
-
-%D The third stage involves a lot of (re)sets, which we will
-%D explain later.
-
-%D The next definition is convenient and more in tune with
-%D \CONTEXT.
-
-\let \everytable \EveryTable
-
-%D We immediately use this register:
-
-\appendtoks
- \fixedspaces
- \let\_\normalunderscore
-\to \everytable
-
-%D Now we can start the table.
-
-\def\thirdstagestartTABLE#1%
- {\global\setTABLEactiontrue
- \setTABLEaction\TABLEunknown
- \setTABLEforce\TABLEunknown
- \setTABLEerror\TABLEunknown
- \global\TABLEgraylinefalse
- \global\TABLEgraydonefalse
- \globalletempty\TABLEgrayline
- \globalletempty\nextTABLEgrayline
- \globalletempty\TABLEgraylineerror
- \globalletempty\TABLEgraylinestatus
- \resetVLvalues
- \appendtoks\popouterbarandquote\to\EveryTable
- \appendtoks\localTABLEsetup\to\EveryTable
- \BeginTable[\ifsplittables u\else b\fi]%
- \defineTABLEunits
- \defineTABLEsteps
- \defineTABLErules
- \defineTABLEdivisions
- \defineTABLEshorthands
- \defineTABLEbackgrounds
- \defineTABLEendings
- \forgetall % added
- \doifsomething{#1}
- {\def\TABLEformat{#1}%
- \getTABLEnofcolumns\TABLEformat
- % more modern is to use catcode tables
- \expandafter\BeginFormat\TABLEformat\EndFormat}}
-
-\def\finishTABLE
- {\chuckTABLEautorow
- \unskip\crcr
- \EndTable
- \global\intablefalse
- \egroup}
-
-%D \macros
-%D {starttables}
-%D
-%D Split tables are specified using the plural form of the
-%D start and stop commands.
-%D
-%D \showsetup{starttables}
-%D
-%D For example:
-%D
-%D \starttyping
-%D \starttables[|||]
-%D \HL
-%D \VL element \VL atom weight \VL\AR
-%D \HL
-%D \VL ....... \VL ........... \VL\AR
-%D \VL ....... \VL ........... \VL\AR
-%D \HL
-%D \stoptables
-%D \stoptyping
-
-\newbox\tablecontentbox
-
-\def\starttables
- {\bgroup
- \splittablestrue
- \doifelse\@@tisplit\v!repeat
- {\settrue \tablerepeathead\settrue \tablerepeattail}
- {\setfalse\tablerepeathead\setfalse\tablerepeattail}%
- \flushnotes
- \setbox\tablecontentbox\vbox\bgroup
- \forgetall
- \global\TABLEinbreakfalse
- \firststagestartTABLE}
-
-% \def\stoptables
-% {\ifconditional\tablerepeattail\else\insertTABLEtail\fi
-% \finishTABLE
-% \egroup
-% \dosplittablebox\tablecontentbox
-% \flushnotes
-% \egroup}
-
-\def\stoptables
- {\chuckTABLEautorow % AM: before the tail, else noalign problem
- \ifconditional\tablerepeattail\else\insertTABLEtail\fi
- \finishTABLE
- \egroup
-\dontcomplain
- \dosplittablebox\tablecontentbox
- \flushnotes
- \egroup}
-
-\newdimen\TABLEcaptionheight % obsolete
-
-\def\dosplittablebox#1%
- {\resettsplit
- \def\tsplitminimumfreelines{2}%
- \def\tsplitminimumfreespace{\TABLEcaptionheight}%
- \setbox\tsplitcontent\box#1%
- \ifconditional\tablerepeathead \ifconditional\someTABLEhead
- \setbox\tsplithead\vsplit\tsplitcontent to \lineheight
- \setbox\tsplithead\vbox{\unvbox\tsplithead}%
- \fi \fi
- \ifconditional\tablerepeattail \ifconditional\someTABLEtail
- \setbox\tsplittail\vsplit\tsplitcontent to \lineheight
- \setbox\tsplittail\vbox{\unvbox\tsplittail}%
- \fi \fi
- \ifinsidefloat\else
- \def\tsplitbeforeresult{\startbaselinecorrection}%
- \def\tsplitafterresult {\stopbaselinecorrection}%
- \fi
- \handletsplit}
-
-%D When the table in the previous example is split across
-%D pages, only the first gets a head. We could have said
-%D something like:
-%D
-%D \starttyping
-%D \starttablekop
-%D \HL
-%D \VL element \VL atom weight \VL\AR
-%D \HL
-%D \stoptablekop
-%D
-%D \starttablestaart
-%D \HL
-%D \stoptablestaart
-%D
-%D \starttables[|||]
-%D \VL ....... \VL ........... \VL\AR
-%D \VL ....... \VL ........... \VL\AR
-%D \stoptables
-%D \stoptyping
-%D
-%D This time each split table gets a head line and ends with
-%D a rule. Keep in mind that such heads also apply to the
-%D unbroken ones and should be defined local (grouped) if
-%D needed. The rather complicated definition below is due to
-%D the fact that the stopcondition is interface language
-%D dependant.
-
-\let\@@TABLEhead\empty \def\TABLEhead{\@@TABLEhead}
-\let\@@TABLEtail\empty \def\TABLEtail{\@@TABLEtail}
-
-\letvalue{\e!start\v!tablehead}=\undefined
-\letvalue{\e!stop \v!tablehead}=\undefined
-\letvalue{\e!start\v!tabletail}=\undefined
-\letvalue{\e!stop \v!tabletail}=\undefined
-
-\expanded
- {\def\csname\e!start\v!tablehead\endcsname##1\csname\e!stop\v!tablehead\endcsname%
- {\noexpand\setTABLEhead##1\noexpand\end}}
-
-\expanded
- {\def\csname\e!start\v!tabletail\endcsname##1\csname\e!stop\v!tabletail\endcsname%
- {\noexpand\setTABLEtail##1\noexpand\end}}
-
-%D The second argument is a dummy one, by scanning for it, we
-%D get rid of interfering spaces.
-
-\def\setTABLEhead{\dodoubleempty\dosetTABLEhead}
-\def\setTABLEtail{\dodoubleempty\dosetTABLEtail}
-
-\newconditional\preventTABLEbreak
-\newconditional\someTABLEhead
-
-\def\dosetTABLEhead[#1][#2]#3\end{\setvalue{@@TABLEhead#1}{\TABLEnoalign{\global\settrue\someTABLEhead}#3}}
-\def\dosetTABLEtail[#1][#2]#3\end{\setvalue{@@TABLEtail#1}{\TABLEnoalign{\global\settrue\someTABLEtail}#3}}
-
-%D Redudant \type{\HL}'s are removed automatically, so
-%D mid||lines can be used without problems.
-
-%D We need an alternative for the normal complex or simple
-%D commands, because assignments in these system commands
-%D conflict with \type{\noalign}. This alternative is about
-%D as efficient as possible.
-
-\def\complexorsimpleTable#1#2%
- {\csname\if[\noexpand#2\s!complex\else\s!simple\fi\c!Table#1\endcsname#2}
-
-%D The next one is used in \type{\VL} cum suis and honours
-%D the next grouping.
-
-\def\docomplexorsimpleTable#1#2%
- {\ifx\next\bgroup\@EA#2\else\@EA\dodocomplexorsimpleTable\@EA#1\@EA#2\fi}
-
-\def\dodocomplexorsimpleTable#1#2#3%
- {\if[\noexpand#3\@EA#1\else\@EA#2\fi#3}
-
-%D The order of the next macros is more or less random. First
-%D we implement error recovery. Errors are reported to the
-%D screen and log file as well as visualized in the table in
-%D teletype.
-
-\def\handleTABLEerror
- {\ifTABLEgrayline \else
- \ifnum\TABLEerror=\TABLEunknown \else
- \setTABLEaction\TABLEunknown
- \globalletempty\checkTABLEautorow
- \globalletempty\chuckTABLEautorow
- \fi
- \ifcase\TABLEerror
- % no error
- \or
- % \TABLEmissingrow
- \tttf [missing row]%
- \writestatus\m!TABLE{missing row}%
- \SR
- \or
- % \TABLEmissingcolumn
- \fillTABLEcolumns
- \tttf [missing column]%
- \writestatus\m!TABLE{missing column}%
- \SR
- \or
- % \TABLEspanoverflow
- \fillTABLEcolumns
- \tttf [columnspan too large]%
- \writestatus\m!TABLE{columnspan too large}%
- \SR
- \or
- % \TABLEdivisionoverflow
- \fillTABLEcolumns
- \tttf [division line too long]%
- \writestatus\m!TABLE{division line too long}%
- \SR
- \fi
- \fi
- \ifnum\TABLEerror=\TABLEunknown \else
- \finishTABLErow
- \fi}
-
-\def\finishTABLErow
- {\crcr
- \TABLEnoalign
- {\nobreak
- \setTABLEaction\TABLEunknown
- \setTABLEerror\TABLEunknown
- \globalletempty\checkTABLEautorow
- \globalletempty\chuckTABLEautorow
- \global\currentTABLEcolumn\zerocount}}
-
-\def\fillTABLEcolumns
- {\ifnum\currentTABLEcolumn>\maxTABLEcolumn \else
- \global\advance\currentTABLEcolumn \plusone
- \normalTABLEquote
- \expandafter\fillTABLEcolumns
- \fi}
-
-%D Next we enter the more complicated area of column and row
-%D switching. I won't go into much detail from now on, but just
-%D mention the general principles.
-%D
-%D \startitemize[3*ruim]
-%D \sym{\type{\SR}} end a separate row (between rules)
-%D \sym{\type{\FR}} end a first row (after a rule)
-%D \sym{\type{\MR}} end a mid row (between text lines)
-%D \sym{\type{\LR}} end a last row (before a rule)
-%D \stopitemize
-%D
-%D and best of all:
-%D
-%D \startitemize[continue]
-%D \sym{\type{\AR}} end a row with automatic spacing
-%D \stopitemize
-%D
-%D As far as possible, we report confusing situations. In
-%D most cases one can use \type{\AR}, which transfigurates
-%D itself into one of the other types.
-%D
-%D \starttyping
-%D \starttable[||]
-%D \HL
-%D \VL a separate row \VL\SR
-%D \HL
-%D \VL a first row \VL\FR
-%D \VL a mid row \VL\MR
-%D \VL a last row \VL\LR
-%D \HL
-%D \stoptable
-%D \stoptyping
-%D
-%D In this example we could have used \type{\AR} without
-%D problems.
-%D
-%D Color or gray scale backgrounds precede the content. They
-%D are passed over horizontal (division) lines when needed.
-%D Errors in the color template are traced elsewhere. Here we
-%D only check for inconsistent spacing. Due to the way \TEX\
-%D handles alignments, we cannot automate spacing for colored
-%D rows and columns.
-
-\chardef\TABLErowzero=0
-
-\def\checkTABLErow#1% pure for message purposes
- {\unskip % added
- \ifTABLEgraydone
- \defconvertedargument\asciia{#1}%
- \defconvertedcommand \asciib\TABLEendBCL
- \ifx\asciia\asciib \else
- \writestatus\m!TABLE{confusing \asciia\space and \asciib}%
- \gdef\TABLEgraylineerror%
- {\globalletempty\TABLEgraylineerror
- [\asciia\unskip<->\asciib\unskip]}%
- \fi
- \global\TABLEgraydonefalse
- \fi}
-
-\def\defineTABLEendings
- {\let\SR\TableSR
- \let\FR\TableFR
- \let\MR\TableMR
- \let\LR\TableLR
- \let\AR\TableAR}
-
-\def\TableSR
- {\ifTABLEgrayline \else
- \ifnum\TABLEaction=\TABLEfirstrow
- \writestatus\m!TABLE{change \string\SR\space into \string\MR/\string\LR}%
- \else\ifnum\TABLEaction=\TABLEmidrow
- \writestatus\m!TABLE{change \string\SR\space into \string\MR/\string\LR}%
- \else\ifnum\TABLEaction=\TABLEmidrow
- \writestatus\m!TABLE{change \string\SR\space into \string\MR/\string\LR}%
- \fi\fi\fi
- \fi
- \checkTABLErow\SR
- \endTABLErow\TABLEseparaterow\TABLErowfactor\TABLErowfactor}
-
-\def\TableFR
- {\ifTABLEgrayline \else
- \ifnum\TABLEaction=\TABLEmidrow
- \writestatus\m!TABLE{change \string\FR\space into \string\MR/\string\LR}%
- \else\ifnum\TABLEaction=\TABLElastrow
- \writestatus\m!TABLE{change \string\FR\space into \string\MR/\string\LR}%
- \fi\fi
- \fi
- \checkTABLErow\FR
- \endTABLErow\TABLEfirstrow\TABLErowfactor\TABLErowzero}
-
-\def\TableMR
- {\ifTABLEgrayline \else
- \ifnum\TABLEaction=\TABLErule
- \writestatus\m!TABLE{change \string\MR\space into \string\FR/\string\SR}%
- \else\ifnum\TABLEaction=\TABLElastrow
- \writestatus\m!TABLE{change \string\MR\space into \string\FR}%
- \fi\fi
- \fi
- \checkTABLErow\MR
- \endTABLErow\TABLEmidrow00}
-
-\def\TableLR
- {\ifTABLEgrayline \else
- \ifnum\TABLEaction=\TABLErule
- \writestatus\m!TABLE{change \string\LR\space into \string\FR/\string\SR}%
- \fi
- \fi
- \checkTABLErow\LR
- \endTABLErow\TABLElastrow\TABLErowzero\TABLErowfactor}
-
-%D \macros
-%D {ifcheckTABLEcolums}
-%D
-%D
-%D The next macros handle the actual row ending. This macro
-%D also take care of space corrections due to table splitting
-%D when \type{\MR} and collegues are used. When tracing is
-%D enabled, the corrections as well as the values used to
-%D determine the available space are shown (in color). By default
-%D checking is off.
-
-\newif\ifcheckTABLEcolumns
-
-\let\beforeTABLEline\empty
-\let\afterTABLEline \empty
-
-\def\doendTABLErow#1#2#3%
- {\handleTABLEbreak#2#3%
- \beforeTABLEline
- \ifcase#1\relax
- % unknown
- \or
- \endofTABLEline[blue][\SR->\SR]\TABLErowfactor\TABLErowfactor
- \or
- \endofTABLEline[red][\FR->\FR]\TABLErowfactor\TABLErowzero
- \or
- \ifnum\TABLEforce=\TABLEforcelastrow
- \endofTABLEline[red][\MR->\LR]\TABLErowzero\TABLErowfactor
- \else\ifnum\TABLEforce=\TABLEforcefirstrow
- \endofTABLEline[red][\MR->\FR]\TABLErowfactor\TABLErowzero
- \else
- \endofTABLEline[green][\MR->\MR]\TABLErowzero\TABLErowzero
- \fi\fi
- \or
- \endofTABLEline[red][\LR->\LR]\TABLErowzero\TABLErowfactor
- \fi
- \TABLEnoalign
- {\setTABLEforce\TABLEunknown
- \global\currentTABLEcolumn\zerocount}%
- \afterTABLEline}
-
-\def\endTABLErow#1#2#3%
- {\setTABLEaction#1%
- \ifTABLEgrayline
- \finishTABLErow
- \else
- \ifnum\currentTABLEcolumn>\maxTABLEcolumn
- \doendTABLErow{#1}{#2}{#3}%
- \else\ifcheckTABLEcolumns
- \setTABLEerror\TABLEmissingcolumn
- \handleTABLEerror
- \else
- \doendTABLErow{#1}{#2}{#3}%
- \fi\fi
- \fi}
-
-%D Handling \type{\AR} is postponed till the next row. The
-%D check takes care of the first and mid rows, the chuck macro
-%D |<|how about that name|>| handles the last row.
-
-\def\TableAR
- {\ifTABLEgraydone
- \globalletempty\checkTABLEautorow
- \globalletempty\chuckTABLEautorow
- \global\TABLEgraydonefalse
- \TABLEendBCL
- \else
- \globallet\checkTABLEautorow\docheckTABLEautorow
- \globallet\chuckTABLEautorow\dochuckTABLEautorow
- \fi}
-
-\let\checkTABLEautorow\empty
-\let\chuckTABLEautorow\empty
-
-\def\docheckTABLEautorow
- {\globallet\checkTABLEautorow\empty
- \ifnum\TABLEaction=\TABLErule \FR
- \else\ifnum\TABLEaction=\TABLEunknown \FR
- \else \MR
- \fi\fi}
-
-\def\dochuckTABLEautorow
- {\globalletempty\checkTABLEautorow
- \globalletempty\chuckTABLEautorow
- \ifnum\TABLEaction=\TABLErule \SR
- \else\ifnum\TABLEaction=\TABLEunknown \SR
- \else \LR
- \fi\fi}
-
-%D When a table is split, we also add a tail and when present
-%D we repeat the table head.
-
-\def\handleTABLEbreak#1#2%
- {\globalletempty\beforeTABLEline
- \gdef\afterTABLEline{\TABLEnoalign{\ifconditional\preventTABLEbreak\nobreak\else\goodbreak\fi}}}
-
-%D When tables are split, the spacing before and after a
-%D horizontal rule is corrected according to what we expect.
-
-\def\endofTABLEline[#1][#2->#3]#4#5%
- {\ifx#2#3\else
- \writestatus\m!TABLE{\string#2\space changed into \string#3}%
- \fi
- \iftracetables
- \bgroup
- \tttf\space
- \ifnum\TABLEerror=\TABLEunknown
- \ifx#2#3\else\string#2->\fi
- \else
- ->%
- \fi
- \color[#1]{\string#3}%
- \ifx\TABLEgraylineerror\empty
- \space\TABLEgraylinestatus
- \else
- \space\TABLEgraylineerror
- \fi
- \egroup
- \else\ifx\TABLEgraylineerror\empty \else
- % \bgroup
- % \tttf\space\TABLEgraylineerror
- % \egroup
- \fi\fi
- \globalletempty\TABLEgraylinestatus
- \globalletempty\TABLEgraylineerror
- \expandafter\normalTABLElineformat#4#5\crcr % \crcr nodig ?
- \TABLEnoalign{\nobreak\global\setTABLEactiontrue}}
-
-%D In order to prevent (as good as possible) alignment overflow
-%D and therefore \TEX\ error messages, we check the maximum
-%D number of columns. We keep track of the current column and
-%D maximum column by means of two \COUNTERS. Keep in mind that
-%D the number of \type{|}'s and \type{\VL}'s or alike is always
-%D one more than the number of columns.
-
-\newcount\currentTABLEcolumn
-\newcount\maxTABLEcolumn
-
-%D While defining this macro we change the \CATCODE\ of
-%D \type{|}. When counting the bars, we use a non active
-%D representation of the bar, simply because we cannot be sure
-%D if the bar is active or not.\footnote{Normally it is, but
-%D \TABLE\ changes the catcode when needed.}
-
-\bgroup
- \catcode`\|=\@@other \gdef\@@otherbar {|}
- \catcode`\"=\@@other \gdef\@@otherquote {"}
- \catcode`\|=\@@active \gdef\@@useotherbar {\let|\@@otherbar}
- \catcode`\"=\@@active \gdef\@@useotherquote{\let"\@@otherquote}
-\egroup
-
-\bgroup \catcode`\|=\@@other
-
-\gdef\getTABLEnofcolumns#1%
- {\bgroup
- \cleanupfeatures % needed !
- \@@useotherbar
- \@@useotherquote
- \expanded{\defconvertedargument\noexpand\ascii{#1}}%
- \@EA\doglobal\@EA\counttoken\@EA|\@EA\in\ascii\to\maxTABLEcolumn
- \global\advance\maxTABLEcolumn \minusone
- % in case of & counting, divide by 2
- \egroup}
-
-\egroup
-
-\def\!ttDoHalign
- {\edef\restoretablelineskips
- {\baselineskip \the\baselineskip
- \lineskiplimit\the\lineskiplimit
- \lineskip \the\lineskip
- \tabskip \the\tabskip}%
- \baselineskip \zeropoint
- \lineskiplimit\zeropoint
- \lineskip \zeropoint
- \tabskip \zeropoint
- % does not work in normal tex
- % \expanded{\getTABLEnofcolumns{\the\!taPreamble}}% added
- \halign \the\!taTableSpread \bgroup
- \span\the\!taPreamble
- \ifx \!tfRowOfWidths \empty \else \!tfRowOfWidths \cr \fi}
-
-%D \startitemize[3*ruim]
-%D \sym{\type{\VL}} a vertical line
-%D \sym{\type{\VC}} a vertical colored line
-%D \sym{\type{\HL}} a horizontal line
-%D \sym{\type{\HC}} a horizontal colored line
-%D \stopitemize
-
-% \def\defineTABLErules
-% {\let\VL\TableVL
-% \let\VC\TableVC
-% \let\HL\TableHL
-% \let\HC\TableHC}
-
-\def\defineTABLErules
- {\let\VL\TableVL
- \let\VC\TableVC
- \let\HL\TableHL
- \let\HC\TableHC
- \let\VS\TableVS
- \let\VD\TableVD
- \let\VT\TableVT
- \let\VN\TableVN}
-
-\def\TableVL
- {\checkTABLEautorow
- \nextTABLEgrayline
- \ifnum\currentTABLEcolumn>\maxTABLEcolumn
- \setTABLEerror\TABLEmissingrow
- \handleTABLEerror
- \else
- \global\advance\currentTABLEcolumn \plusone
- \expandafter\doTableVL
- \fi}
-
-\def\doTableVL
- {\futurelet\next\dodoTableVL}
-
-\def\dodoTableVL
- {\docomplexorsimpleTable\complexTableVL\simpleTableVL}
-
-\def\complexTableVL[#1]%
- {\scratchcounter=0#1%
- \multiply\scratchcounter \@@tiVLwidth
- \setxvalue{wVL\the\currentTABLEcolumn}{\the\scratchcounter}%
- \simpleTableVL}
-
-\def\simpleTableVL
- {\doifundefined{wVL\the\currentTABLEcolumn}%
- {\setgvalue{wVL\the\currentTABLEcolumn}{\@@tiVLwidth}}%
- \gdef\TABLEbeforebar
- {\getvalue{bVL\the\currentTABLEcolumn}%
- \letgvalueempty{bVL\the\currentTABLEcolumn}}%
- \gdef\TABLEafterbar
- {\getvalue{eVL\the\currentTABLEcolumn}%
- \letgvalueempty{eVL\the\currentTABLEcolumn}}%
- \edef\@@tiVLwidth{\getvalue{wVL\the\currentTABLEcolumn}}%
- \expanded{\normalTABLEcomplexbar\@@tiVLwidth\space}}% \relax breaks \use
-
-% \starttable[|||]
-% \HL
-% \VL test \VS test \VL \FR
-% \VL test \VD test \VL \MR
-% \VL test \VT test \VL \LR
-% \HL
-% \stoptable
-
-\def\TableVS {\VN1}
-\def\TableVD {\VN2}
-\def\TableVT {\VN3}
-\def\TableVN#1{\gdef\@VLn{#1}\VL}
-
-\def\resetVLvalues
- {\dostepwiserecurse\zerocount\maxTABLEcolumn\plusone
- {\setgvalue{wVL\recurselevel}{\@@tiVLwidth}%
- \letgvalueempty{bVL\recurselevel}%
- \letgvalueempty{eVL\recurselevel}}%
- \global\currentTABLEcolumn\zerocount}
-
-\def\TableVC
- {\checkTABLEautorow
- \nextTABLEgrayline
- \ifnum\currentTABLEcolumn>\maxTABLEcolumn
- \setTABLEerror\TABLEmissingrow
- \handleTABLEerror
- \else
- \global\advance\currentTABLEcolumn \plusone
- \expandafter\doTableVC
- \fi}
-
-\def\doTableVC
- {\futurelet\next\dodoTableVC}
-
-\def\dodoTableVC
- {\docomplexorsimpleTable\complexTableVC\simpleTableVC}
-
-\def\complexTableVC[#1]%
- {\global\setvalue{bVC\the\currentTABLEcolumn}{\localstartcolor[#1]}%
- \global\setvalue{eVC\the\currentTABLEcolumn}{\localstopcolor}%
- \simpleTableVC}
-
-\def\simpleTableVC
- {\global\setvalue{bVL\the\currentTABLEcolumn}%
- {\getvalue{bVC\the\currentTABLEcolumn}}%
- \global\setvalue{eVL\the\currentTABLEcolumn}%
- {\getvalue{eVC\the\currentTABLEcolumn}}%
- \doTableVL}
-
-\def\TableHL
- {\ifnum\currentTABLEcolumn>\maxTABLEcolumn
- \chuckTABLEautorow
- \else\ifnum\currentTABLEcolumn=\zerocount
- %\chuckTABLEautorow
- \TABLEnoalign
- {\globalletempty\checkTABLEautorow
- \globalletempty\chuckTABLEautorow}%
- \else
- \setTABLEerror\TABLEmissingcolumn
- \handleTABLEerror
- \fi\fi
- \complexorsimpleTable{HL}}
-
-\def\complexTableHL[#1]%
- {\TABLEnoalign
- {\scratchcounter0#1%
- \multiply\scratchcounter \@@tiHLheight
- \edef\@@tiHLheight{\the\scratchcounter}%
- \simpleTableHL}}
-
-\def\simpleTableHL
- {\TABLEnoalign
- {\nobreak
- \ifnum\TABLEaction=\TABLErule
- \writestatus\m!TABLE{skipping \string\HL}% \statusmessage
- \else
- \ifnum\TABLEaction=\TABLEmidrow
- \writestatus\m!TABLE{change \string\MR\space into \string\LR/\string\SR}%
- \else\ifnum\TABLEaction=\TABLEfirstrow
- \writestatus\m!TABLE{change \string\MR\space into \string\SR}%
- \fi\fi
- \startHLcommand
- \expandafter\normalTABLEfullrule\@@tiHLheight
- \stopHLcommand
- \globalletempty\startHLcommand
- \globalletempty\stopHLcommand
- \accountTABLElinewidth
- \fi
- \setTABLEaction\TABLErule
- \nobreak}}
-
-\let\startHLcommand\empty
-\let\stopHLcommand \empty
-
-\def\TableHC
- {\complexorsimpleTable{HC}}
-
-\def\complexTableHC[#1]%
- {\TABLEnoalign
- {\gdef\startHCcommand{\localstartcolor[#1]}%
- \gdef\stopHCcommand {\localstopcolor}}%
- \simpleTableHC}
-
-\def\simpleTableHC
- {\TABLEnoalign
- {\globallet\startHLcommand\startHCcommand
- \globallet\stopHLcommand \stopHCcommand}%
- \HL}
-
-%D \startitemize[3*ruim]
-%D \sym{\type{\NL}} a vertical skip
-%D \sym{\type{\NR}} goto the next row
-%D \sym{\type{\NC}} goto the next column
-%D \sym{\type{\FC}} a first column
-%D \sym{\type{\MC}} a mid column
-%D \sym{\type{\LC}} a last column
-%D \stopitemize
-
-% n+1 uitleggen
-
-\def\defineTABLEsteps
- {\let\NL\TableNL
- \let\NR\TableNR
- \let\NC\TableNC
- \let\FC\TableNC
- \let\MC\TableNC
- \let\LC\TableNC}
-
-\def\TableNL
- {\complexorsimpleTable{NL}}
-
-\def\complexTableNL[#1]%
- {\TABLEnoalign
- {\edef\@@tiNL{#1}%
- \simpleTableNL}}%
-
-\def\simpleTableNL
- {\TABLEnoalign
- {\nobreak
- \setbox0\vbox{\blank[\@@tiNL]}%
- \vskip\ht0
- \nobreak}}
-
-\def\TableNR
- {\ifnum\currentTABLEcolumn>\maxTABLEcolumn
- \global\currentTABLEcolumn\zerocount
- \normalTABLElineending
- \else
- \setTABLEerror\TABLEmissingcolumn
- \handleTABLEerror
- \fi
- \TABLEnoalign
- {\nobreak
- \setTABLEaction\TABLEunknown}}
-
-\def\TableNC
- {\checkTABLEautorow
- \nextTABLEgrayline
- \ifnum\currentTABLEcolumn>\maxTABLEcolumn
- \setTABLEerror\TABLEmissingrow
- \handleTABLEerror
- \else
- \global\advance\currentTABLEcolumn \plusone
- \normalTABLEquote
- \fi}
-
-% \bgroup
-% \catcode`\|=\@@active
-% \catcode`\"=\@@active
-% \gdef\redefinetablebarandquote
-% {\def|{\VL}% % \normalTABLEsimplebar
-% \def\|##1{\VL[##1]}% % \normalTABLEcomplexbar
-% \def"{\NC}} % \normalTABLEquote
-% \egroup
-
-\let\redefinetablebarandquote\relax
-
-%D \startitemize[3*ruim]
-%D \sym{\type{\DL}}
-%D \sym{\type{\DV}} (\type{\VD})
-%D \sym{\type{\DC}}
-%D \sym{\type{\DR}}
-%D \stopitemize
-
-\newif\ifTABLEdivision
-
-% \def\defineTABLEdivisions
-% {\global\TABLEdivisionfalse % in start
-% \let\DL\TableDL
-% \let\DC\TableDC
-% \let\DV\TableDV
-% \let\VD\TableDV
-% \let\DR\TableDR}
-
-\def\defineTABLEdivisions
- {\global\TABLEdivisionfalse % in start
- \let\DL\TableDL
- \let\DC\TableDC
- \let\DV\TableDV
- \let\DR\TableDR}
-
-\def\checkTABLEdivision
- {\ifTABLEdivision \else
- \chuckTABLEautorow
- \global\currentTABLEcolumn\zerocount
- \global\TABLEdivisiontrue
- \fi}
-
-\def\TableDL
- {\checkTABLEdivision
- \complexorsimpleTable{DL}}
-
-\def\simpleTableDL
- {\complexTableDL[1]}
-
-\def\complexTableDL[#1]%
- {\ifnum\TABLEaction=\TABLErule
- \writestatus\m!TABLE{skipping \string\DL}%
- \else
- \ifnum\TABLEaction=\TABLEmidrow
- \writestatus\m!TABLE{change \string\MR\space into \string\LR/\string\SR}%
- \else\ifnum\TABLEaction=\TABLEfirstrow
- \writestatus\m!TABLE{change \string\MR\space into \string\SR}%
- \fi\fi
- \setTABLEaction=\TABLEunknown
- \ifnum\currentTABLEcolumn>\maxTABLEcolumn
- \setTABLEerror\TABLEmissingrow
- \handleTABLEerror
- \fi
- %\startHLcommand
- \ifnum#1=\plusone
- \global\advance\currentTABLEcolumn \plustwo
- \let\next\normalTABLEsinglerule
- \else
- \ifnum#1<\maxTABLEcolumn
- \global\advance\currentTABLEcolumn \plusone
- \def\next{\normalTABLEmultirule{#1}}%
- \else
- \setTABLEerror\TABLEdivisionoverflow
- \let\next\handleTABLEerror
- \fi
- \fi
- \next
- %\stopHLcommand
- %\globalletempty\startHLcommand
- %\globalletempty\stopHLcommand
- \fi}
-
-\def\TableDV
- {\TableDCV\normalTABLEsimplebar}
-
-\def\TableDC
- {\TableDCV\normalTABLEquote}
-
-\def\TableDCV#1%
- {\checkTABLEdivision
- \checkTABLEautorow
- \ifnum\currentTABLEcolumn>\maxTABLEcolumn
- \setTABLEerror\TABLEmissingrow
- \handleTABLEerror
- \else
- \global\advance\currentTABLEcolumn \plusone
- #1%
- \fi}
-
-\def\TableDR
- {\ifnum\currentTABLEcolumn<\maxTABLEcolumn % silent recovery
- %\setTABLEerror\TABLEmissingcolumn % some day warning
- %\handleTABLEerror
- \finishTABLErow
- \else
- \global\currentTABLEcolumn\zerocount % nog check
- \normalTABLElineending
- \fi
- \TABLEnoalign
- {\nobreak
- \global\TABLEdivisionfalse
- \accountTABLElinewidth % temporary solution
- \setTABLEaction\TABLErule}}
-
-\def\accountTABLElinewidth
- {\scratchdimen\LineThicknessUnit}
-
-%D \startitemize[3*ruim]
-%D \sym{\type{\BC}}
-%D \sym{\type{\BR}}
-%D \sym{\type{\BACKGROUND}}
-%D \sym{\type{\CL}}
-%D \sym{\type{\RL}}
-%D \sym{\type{\BL}}
-%D \sym{\type{\RASTER}}
-%D \sym{\type{\COLOR}}
-%D \stopitemize
-
-% definieer: \BC \BL
-% herhaal: \BR
-% definieer: \CL \RL (eerste \CL[green] = hele row! / \CL[1,green])
-% dus: \CL en \RL mix tussen \HL en \BL
-
-\def\defineTABLEbackgrounds
- {\let\BC \TableBC
- \let\BL \TableBL
- \let\BR \TableBR
- \let\BACKGROUND\TableBR
- \let\CL \TableCL
- \let\RL \TableRL
- \let\COLOR \TableCOLOR
- \let\RASTER \TableRASTER
- \globallet\lastTABLEc\@@tibackgroundcolor
- \globallet\lastTABLEr\@@tibackgroundscreen
- \doifinsetelse\@@tibackground{c,color} % \v!color
- {\global\chardef\TABLEcr\plusone}
- {\global\chardef\TABLEcr\plustwo}}
-
-\def\TableBC
- {\ifTABLEgrayline
- \normalTABLEquote
- \else
- \TABLEnoalign\bgroup
- \globallet\nextTABLEgrayline\executeTABLEgrayline
- \globalletempty\TABLEgrayline % new
- \let\BL\doTableBL
- \let\BC\doTableBC
- \expandafter\doTableBC
- \fi}
-
-\def\doTableBC
- {\addtoTABLEgrayline{\BC}%
- \gobbleTableBCL}
-
-\def\TableBL
- {\TABLEnoalign\bgroup
- \globallet\nextTABLEgrayline\executeTABLEgrayline
- \globalletempty\TABLEgrayline % new
- \let\BL\doTableBL
- \let\CL\doTableCL
- \let\RL\doTableRL
- \let\BC\doTableBC
- \doTableBL}
-
-\def\doTableBL
- {\complexorsimpleTable{BL}}
-
-\def\simpleTableBL
- {\complexTableBL[,]}
-
-\def\complexTableBL[#1]%
- {\analyzeTABLEcr[#1]%
- \handleTABLEcr}
-
-\def\TableBR#1%
- {\TABLEnoalign
- {\globallet\nextTABLEgrayline\executeTABLEgrayline
- \checkTABLEgrayline#1\BR
- \global\TABLEgraylinetrue}}
-
-\def\analyzeTABLEcr[#1]%
- {\doanalyzeTABLEcr[#1,,]}
-
-\def\doanalyzeTABLEcr[#1,#2,#3]%
- {\doifnumberelse{#1x} % Is the x still needed here?
- {\dodoanalyzeTABLEcr[#1,#2,#3]}
- {\dodoanalyzeTABLEcr[1,#1,#2]}}
-
-\def\dodoanalyzeTABLEcr[#1,#2,#3]%
- {\global\chardef\TABLEn#1\relax
- \processaction
- [#2]
- [ c=>\global\chardef\TABLEcr1,%
- color=>\global\chardef\TABLEcr1,%
- r=>\global\chardef\TABLEcr2,%
- raster=>\global\chardef\TABLEcr2]%
- \ifcase\TABLEcr \or
- \doifsomething{#3}{\xdef\lastTABLEc{#3}}%
- \or
- \doifsomething{#3}{\xdef\lastTABLEr{#3}}%
- \fi}
-
-\def\handleTABLEcr
- {\relax % else funny side effect
- \ifcase\TABLEcr
- % Can't happen!
- \or
- \addtoTABLEgrayline{\complexTableCOLOR[\the\TABLEn,\lastTABLEc]}%
- \else
- \addtoTABLEgrayline{\complexTableRASTER[\the\TABLEn,\lastTABLEr]}%
- \fi
- \gobbleTableBCL}
-
-\def\analyzeTABLEcrl#1[#2]%
- {\doanalyzeTABLEcrl#1[#2,,]}
-
-\def\doanalyzeTABLEcrl#1[#2,#3,#4]%
- {\doifnumberelse{#2x} % x ????????????????????
- {\dodoanalyzeTABLEcr[#2,#1,#3]}
- {\dodoanalyzeTABLEcr[\ifTABLEgrayline1\else\maxTABLEcolumn\fi,#1,#2]}}
-
-\def\TableCL
- {\TABLEnoalign\bgroup
- \globallet\nextTABLEgrayline\executeTABLEgrayline
- \globalletempty\TABLEgrayline % new
- \let\BL\doTableBL
- \let\CL\doTableCL
- \let\RL\doTableRL
- \let\BC\doTableBC
- \doTableCL}
-
-\def\doTableCL
- {\complexorsimpleTable{CL}}
-
-\def\simpleTableCL% nog eens \'e\'en lijn van maken
- {\BL[\the\maxTABLEcolumn,c,\lastTABLEc]}
-
-\def\complexTableCL[#1]%
- {\analyzeTABLEcrl{c}[#1]%
- \handleTABLEcr}
-
-\def\TableRL
- {\TABLEnoalign\bgroup
- \globallet\nextTABLEgrayline\executeTABLEgrayline
- \globalletempty\TABLEgrayline % new
- \let\BL\doTableBL
- \let\CL\doTableCL
- \let\RL\doTableRL
- \let\BC\doTableBC
- \doTableRL}
-
-\def\doTableRL
- {\complexorsimpleTable{RL}}
-
-\def\simpleTableRL
- {\BL[\the\maxTABLEcolumn,r,\lastTABLEr]}
-
-\def\complexTableRL[#1]%
- {\analyzeTABLEcrl{r}[#1]%
- \handleTABLEcr}
-
-\def\checkTABLEgrayline#1#2%
- {\!!doneatrue
- \ifx#1\AR
- \!!doneafalse
- \else\ifx#1\SR\else\ifx#1\FR\else\ifx#1\MR\else\ifx#1\LR\else
- \!!doneafalse
- \fi\fi\fi\fi\fi
- \if!!donea
- \gdef\TABLEgraylinestatus
- {[\string#1]}%
- \gdef\TABLEendBCL
- {#1}%
- \else
- \gdef\TABLEgraylineerror
- {[\string#2\string#1->\string#2\string\SR]}%
- \gdef\TABLEendBCL
- {\SR}%
- \fi}
-
-\def\endTABLErowGL#1#2#3%
- {\ifcase#1\relax
- % unknown
- \or
- \doPreTableGL\TABLErowfactor\TABLErowfactor
- \or
- \doPreTableGL\TABLErowfactor\TABLErowzero
- \or
- \ifnum\TABLEforce=\TABLEforcelastrow
- \doPreTableGL\TABLErowzero\TABLErowfactor
- \else\ifnum\TABLEforce=\TABLEforcefirstrow
- \doPreTableGL\TABLErowfactor\TABLErowzero
- \else
- \doPreTableGL\TABLErowzero\TABLErowzero
- \fi\fi
- \or
- \doPreTableGL\TABLErowzero\TABLErowfactor
- \fi}
-
-\def\doPreTableGL#1#2% betere namen
- {\xdef\OldLineThicknessFactor{\the\LineThicknessFactor}%
- \xdef\OldLineThicknessUnit{\the\LineThicknessUnit}%
- \global\LineThicknessFactor\plusone
- \setbox0\hbox{\AugmentedTableStrut{#1}{#2}}%
- \getboxheight\dimen0\of\box0\relax
- \xdef\TABLEgraylineHeight{\the\dimen0}%
- \global\LineThicknessUnit\TABLEgraylineHeight}
-
-\def\doPostTableGL
- {\global\LineThicknessFactor\OldLineThicknessFactor
- \global\LineThicknessUnit \OldLineThicknessUnit}
-
-% kan simpeler
-
-\def\docomplexTableCOLOR[#1]%
- {\dodocomplexTableGL\localstartcolor \localstopcolor [#1,\lastTABLEc,,]}
-
-\gdef\docomplexTableRASTER[#1]%
- {\dodocomplexTableGL\localstartraster\localstopraster[#1,\lastTABLEr,,]}
-
-\def\dodocomplexTableGL#1#2[#3,#4,#5,#6]%
- {\doifelsenothing{#4}{#1[#5]}{#1[#4]}%
- \doPreTableGL\TABLEendofrowheight\TABLEendofrowdepth
- \ifnum#3=\plusone % else conflict with \omit in \=
- \let\next\normalTABLEsinglerule
- \else
- \def\next{\normalTABLEmultirule{#3}}%
- \fi
- \next
- \doPostTableGL
- #2}
-
-\def\TableBACKGROUND
- {\TableBR}
-
-\def\simpleTableRASTER #1{\docomplexTableRASTER[1]#1}
-\def\complexTableRASTER[#1]{\docomplexTableRASTER[#1]}
-\def\simpleTableCOLOR {\docomplexTableCOLOR [1]}
-\def\complexTableCOLOR [#1]{\docomplexTableCOLOR [#1]}
-
-\def\TableRASTER{\complexorsimpleTable{RASTER}}
-\def\TableCOLOR {\complexorsimpleTable{COLOR}}
-
-\def\addtoTABLEgrayline#1%
- {\TABLEgraytoks\expandafter{\TABLEgrayline}%
- \xdef\TABLEgrayline{\the\TABLEgraytoks\noexpand#1}}
-
-\def\setTableBCL#1#2%
- {\ifx#1#2%
- \gdef\TABLEgraylinestatus{[\string#1]}%
- \gdef\TABLEendBCL{#1}%
- \addtoTABLEgrayline{#1}%
- \else
- \gdef\TABLEgraylineerror{[\string#1->\string#2]}%
- \gdef\TABLEendBCL{#2}%
- \addtoTABLEgrayline{#2}%
- \fi}
-
-\def\gobbleTableBCL#1%
- {\ifx#1\BC \let\next\doTableBC \else
- \ifx#1\BL \let\next\doTableBL \else
- \ifx#1\SR \setTableBCL\SR\SR \let\next\egroup \else
- \ifx#1\FR \setTableBCL\FR\FR \let\next\egroup \else
- \ifx#1\MR \setTableBCL\MR\MR \let\next\egroup \else
- \ifx#1\LR \setTableBCL\LR\LR \let\next\egroup \else
- \setTableBCL #1\SR \let\next\egroup
- \fi\fi\fi\fi\fi\fi
- \next}
-
-\def\executeTABLEgrayline
- {\TABLEnoalign
- {\def\BC
- {\advance\currentTABLEcolumn \plusone}%
- \def\dodocomplexTableGL##1##2[##3,##4,##5,##6]%
- {\BC\advance\currentTABLEcolumn ##3 }%
- \let\endTABLErow\endTABLEgrayrow
- \currentTABLEcolumn\zerocount
- \TABLEgrayline\TABLEendBCL % determine n of columns and height
- \advance\currentTABLEcolumn \minusone
- \ifnum\currentTABLEcolumn>\maxTABLEcolumn
- % error message too long line
- \globalletempty\TABLEgrayline
- \else
- % \message{n of color columns: \the\currentTABLEcolumn}\wait
- \global\TABLEgraylinetrue % vanaf hier nog checken
- \fi
- \global\currentTABLEcolumn\zerocount}%
- \unskip\TABLEgrayline\TABLEendBCL
- \TABLEnoalign
- {\nobreak
- \vskip-\TABLEgraylineHeight
- \nobreak
- \global\setTABLEactiontrue
- \global\currentTABLEcolumn\zerocount
- \globalletempty\nextTABLEgrayline
- \global\TABLEgraydonetrue
- \global\TABLEgraylinefalse}}
-
-\def\endTABLEgrayrow#1#2#3%
- {\ifcase#1\relax
- \global\chardef\TABLEendofrowheight\TABLErowfactor
- \global\chardef\TABLEendofrowdepth \TABLErowfactor
- \or
- \global\chardef\TABLEendofrowheight\TABLErowfactor
- \global\chardef\TABLEendofrowdepth \TABLErowfactor
- \or
- \global\chardef\TABLEendofrowheight\TABLErowfactor
- \global\chardef\TABLEendofrowdepth \TABLErowzero
- \or
- \ifnum\TABLEforce=\TABLEforcelastrow
- \global\chardef\TABLEendofrowheight\TABLErowzero
- \global\chardef\TABLEendofrowdepth \TABLErowfactor
- \else\ifnum\TABLEforce=\TABLEforcefirstrow
- \global\chardef\TABLEendofrowheight\TABLErowfactor
- \global\chardef\TABLEendofrowdepth \TABLErowzero
- \else
- \global\chardef\TABLEendofrowheight\TABLErowzero
- \global\chardef\TABLEendofrowdepth \TABLErowzero
- \fi\fi
- \or
- \global\chardef\TABLEendofrowheight\TABLErowzero
- \global\chardef\TABLEendofrowdepth \TABLErowfactor
- \fi}
-
-\def\defineTABLEshorthands%
- {\def\SPAN##1{\use{##1}}%
- \def\TWO {\use2}%
- \def\THREE {\use3}%
- \def\FOUR {\use4}%
- \def\FIVE {\use5}%
- \def\SIX {\use6}%
- \def\REF {\ReFormat}}
-
-\def\defineTABLEunits
- {\processaction
- [\@@tidistance]
- [ \v!none=>\OpenUp00\def\LOW{\Lower6 },
- \v!small=>\OpenUp00\def\LOW{\Lower6 }, % == baseline
- \v!medium=>\OpenUp11\def\LOW{\Lower7 },
- \v!big=>\OpenUp22\def\LOW{\Lower8 }]%
- \doifelse\@@tidistance\v!none
- {\chardef\TABLErowfactor\zerocount}
- {\chardef\TABLErowfactor\plustwo }}
-
-\def\dohandlebar % here ?
- {\ifmmode
- \@EA\domathmodebar
- \else\ifintable
- \@EAEAEA\domathmodebar
- \else
- \@EAEAEA\dotextmodebar
- \fi\fi}
-
-% De macro's t.b.v. instellingen.
-
-\def\setuptables
- {\dosingleargument\dosetuptables}
-
-\def\dosetuptables[#1]%
- {\getparameters[\??ti][#1]%
- \processaction
- [\@@tialign]
- [ \v!right=>\def\TABLEparalignment{\raggedright},
- \v!left=>\def\TABLEparalignment{\raggedleft},
- \v!middle=>\def\TABLEparalignment{\raggedcenter},
- \s!default=>\def\TABLEparalignment{\notragged},
- \s!unknown=>\def\TABLEparalignment{\notragged}]%
- \assignalfadimension\@@tiVL\@@tiVLwidth 246%
- \assignalfadimension\@@tiHL\@@tiHLheight246}
-
-\def\localTABLEsetup
- {\@@ticommands\relax
- \expanded{\switchtobodyfont[\@@tibodyfont]}%
- \StrutHeightFactor 8
- \StrutDepthFactor 4
- \LineThicknessFactor4
- \NormalTLTU {.1pt}%
- \NormalTSU {\normalbaselineskip\divide\StrutUnit 12 }%
- \NormalTableUnits}
-
-%D And then I wrote the tabulate environment. That
-%D alternative supports setting the rule thickness and color,
-%D so here is the table alternative.
-
-\let\startglobalTABLEcolor\empty
-\let\stopglobalTABLEcolor \empty
-
-\def\localTABLEsetup
- {\@@ticommands\relax
- % bodyfont
- \expanded{\switchtobodyfont[\@@tibodyfont]}%
- % linecolor
- \doifsomething\@@tirulecolor
- {\def\startglobalTABLEcolor{\localstartcolor[\@@tirulecolor]}%
- \def\stopglobalTABLEcolor {\localstopcolor}}%
- % linethickness
- \LineThicknessFactor4
- \scratchdimen\@@tirulethickness
- \divide\scratchdimen \LineThicknessFactor
- \expanded{\NormalTLTU{\the\scratchdimen}}%
- % spacing, was depth=4 height=8 (counters, sigh, now macros)
- \doifelse\@@tiheight\v!strut
- {\let\StrutHeightFactor\@@itheight}
- {\let\StrutHeightFactor\@@tiheight}%
- \doifelse\@@tidepth\v!strut
- {\let\StrutDepthFactor\@@itdepth}
- {\let\StrutDepthFactor\@@tidepth}%
- \scratchdimen\StrutHeightFactor\points \multiply\scratchdimen 10%
- \edef\StrutHeightFactor{\withoutpt\the\scratchdimen}%
- \scratchdimen\StrutDepthFactor \points \multiply\scratchdimen 10%
- \edef\StrutDepthFactor{\withoutpt\the\scratchdimen}%
- % units
- \NormalTSU{\normalbaselineskip\divide\StrutUnit 12 }%
- \NormalTableUnits}
-
-\def\OpenUp#1#2%
- {\scratchdimen\StrutHeightFactor \points \advance\scratchdimen #1\points
- \edef\StrutHeightFactor{\withoutpt\the\scratchdimen}%
- \scratchdimen\StrutDepthFactor \points \advance\scratchdimen #2\points
- \edef\StrutDepthFactor{\withoutpt\the\scratchdimen}}
-
-%D As one can see, we didn't only add color, but also more
-%D control over spacing.
-%D
-%D \startbuffer[a]
-%D \starttable[|c|]
-%D \HL
-%D \VL \strut test \VL \FR
-%D \VL \strut test \VL \MR
-%D \VL \strut test \VL \MR
-%D \VL \strut test \VL \LR
-%D \HL
-%D \stoptable
-%D \stopbuffer
-%D
-%D \startbuffer[b]
-%D \starttabulate[|c|]
-%D \HL
-%D \NC test \NC \NR
-%D \NC test \NC \NR
-%D \NC test \NC \NR
-%D \NC test \NC \NR
-%D \HL
-%D \stoptabulate
-%D \stopbuffer
-%D
-%D In the next example, the first table is defined as:
-%D
-%D \typebuffer[a]
-%D
-%D and the second one as:
-%D
-%D \typebuffer[b]
-%D
-%D The first table is typeset using the default height and
-%D depth factors .8 and .4. The second table has both factors
-%D set to \type {strut}, and the third table shows what
-%D happens when we set the values to zero. The rightmost table
-%D is typeset using the tabulate environment.
-%D
-%D \startcombination[4*1]
-%D {$\vcenter{\getbuffer[a]}$}
-%D {\hbox{h=.8 d=.4}}
-%D {\setuptables[height=strut,depth=strut]$\vcenter{\getbuffer[a]}$}
-%D {\hbox{h=d=\type{strut}}}
-%D {\setuptables[height=0,depth=0]$\vcenter{\getbuffer[a]}$}
-%D {\hbox{h=d=0}}
-%D {$\vcenter{\getbuffer[b]}$}
-%D {\hbox{tabulate}}
-%D \stopcombination
-
-\setuptables
- [HL=\v!medium,
- VL=\v!medium,
- NL=\v!small,
- \c!frame=,
- \c!align=\v!right,
- \c!depth=.40, % \v!strut
- \c!height=.80, % \v!strut
- \c!rulethickness=\linewidth,
- \c!rulecolor=,
- \c!distance=\v!medium,
- \c!bodyfont=\the\bodyfontsize,
- \c!commands=,
- \c!background=\v!screen,
- \c!backgroundscreen=\@@rsscreen,
- \c!backgroundcolor=,
- \c!split=\v!auto]
-
-\def\ifintabel{\ifintable} % upward compatible
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/tabl-tbl.mkii b/Master/texmf-dist/tex/context/base/mkii/tabl-tbl.mkii
deleted file mode 100644
index 9f2d7df475c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/tabl-tbl.mkii
+++ /dev/null
@@ -1,1440 +0,0 @@
-%D \module
-%D [ file=core-tbl,
-%D version=1998.11.03,
-%D title=\CONTEXT\ Table Macros,
-%D subtitle=Text Flow Tabulation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Table Macros / Tabulation}
-
-% \processbetween gebruiken in head/tail macros
-
-\unprotect
-
-% WATCH OUT: don't change this model else trialtypesetting
-% compatibility problems
-
-% watch out, cells expand pretty late on a per row basis
-
-% |p2|p3| 2:3
-% spanning
-
-% Be careful with changing the hsize calculation in p mode;
-% the following code works quite well:
-%
-% \setupfield [line][location=low,height=1.2\lineheight,width=\hsize]
-% \definefield [test] [line] [line] []
-%
-% \starttabulate[|l|p|]
-% \NC test \NC \field [test] \NC \NR
-% \stoptabulate
-
-% In-text tabbing environment
-%
-% \starttabulate[| separated template] % eg [|l|p|] or [|l|p|p|]
-% \NC ... \NC ... \NC\NR
-% \stoptabulate
-%
-% with: two pass auto width calculation when no p-width
-% specified, even with multiple p's, see examples.
-
-% TaBlE compatible specifications:
-%
-% l align column/paragraph left
-% r align column/paragraph right
-% c align column/paragraph center
-% p p(dimen) of automatisch als alleen p
-% w column width
-% f font#1
-% B bold
-% I italic
-% S slanted
-% T type
-% R roman
-% m math
-% M display math
-% h hook (inner level or par lines)
-% b before (may be command#1)
-% a after
-% i i<n> skip left of column
-% j i<n> skip right of column
-% k i<n> skip around column
-
-% s setups
-
-% g g{char} align at char
-% . align at .
-% , align at ,
-
-% Still to be done
-
-% N math numbers (best hook into existing digits mechanism)
-% n numbers (best hook into existing digits mechanism)
-% Q math numbers (best hook into existing digits mechanism)
-% q numbers (best hook into existing digits mechanism)
-% ~ \hskip.5em
-% | check
-
-% nesting
-
-% 10 evt auto stack; dan wel andere signal dan void nodig
-
-% present but not yet 100% ok
-%
-% \FL top hrule
-% \ML mid hrule (with auto split)
-% \LL bottom hrule
-% \HL
-
-% \VL as soon as needed
-% color as soon as needed
-
-% \EQ \RQ \HQ equal (raw, hook)
-% \NC \RC \HC normal (raw, hook)
-%
-% \NR
-
-% \HR : rule with lineheight
-
-% \autotabulaterule : with lineheight, not first/last
-% \autotabulateline : spaced, not first/last
-% \tabulaterule : with lineheight
-% \tabulateline : spaced
-
-% tricky: align scans ahead, over # and expands ones before
-% while doing
-
-% new:
-%
-% \starttabulate[|cg{.}|cg{,}|cg{,}|]
-% \NC period \NC comma \NC comma \NC\NR
-% \NG 100.000,00 \NG 100.000,00 \NG 100,00 \NC\NR
-% \NG 10.000,00 \NG 10.000,00 \NG 1000,00 \NC\NR
-% \NG 100,00 \NG 100,00 \NG 10,00 \NC\NR
-% \NG 10 \NG 10 \NG 0,00 \NC\NR
-% \stoptabulate
-%
-% \starttabulate[|c.|c,|c,|]
-% \NC period \NC comma \NC comma \NC\NR
-% \NG 100.000,00 \NG 100.000,00 \NG 100,00 \NC\NR
-% \NG 10.000,00 \NG 10.000,00 \NG 1000,00 \NC\NR
-% \NG 100,00 \NG 100,00 \NG 10,00 \NC\NR
-% \NG 10 \NG 10 \NG 0,00 \NC\NR
-% \stoptabulate
-
-% nice demo (for BG)
-%
-% \starttabulate[|r|b{$\star$}|ra{\percent}|b{=}|r|]
-% \NC 500 \NC \NC 60 \NC \NC 300 \NC \NR
-% \NC 500 \NC \NC 55 \NC \NC 275 \NC \NR
-% \NC 500 \NC \NC 50 \NC \NC 250 \NC \NR
-% \NC 500 \NC \NC 45 \NC \NC 225 \NC \NR
-% \NC 500 \NC \NC 40 \NC \NC 200 \NC \NR
-% \NC 500 \NC \NC 35 \NC \NC 175 \NC \NR
-% \NC 500 \NC \NC 30 \NC \NC 150 \NC \NR
-% \NC 500 \NC \NC 25 \NC \NC 125 \NC \NR
-% \NC 500 \NC \NC 20 \NC \NC 100 \NC \NR
-% \stoptabulate
-
-\newtoks \tabulatepreamble
-\newtoks \tabulatebefore
-\newtoks \tabulateafter
-\newtoks \tabulatebmath
-\newtoks \tabulateemath
-\newtoks \tabulatefont
-\newtoks \tabulatesettings
-\newtoks \tabulatedummy
-
-\newcount \nofautotabulate
-\newcount \tabulatecolumns
-\newcount \tabulatecolumn
-
-\newcount \tabulateminplines
-\newcount \tabulatemaxplines
-
-\newif \ifautotabulate
-\newif \ifsplittabulate \splittabulatetrue
-
-\newif \ifhandletabulatepbreak \handletabulatepbreaktrue
-\newif \iftabulatenopbreak \tabulatenopbreakfalse
-
-\newif \iftabulateequal
-\newif \iftracetabulate
-\newif \ifframedtabulate
-
-\newdimen \tabulatepwidth
-\newdimen \tabulatewidth
-\newdimen \tabulateunit
-\newdimen \tabulatemaxpheight
-
-\newbox \tabulatebox
-
-% [|lg{.}|] => \NG 12.34 \NC
-
-\gdef\handletabulatecharalign#1 % space delimited !
- {\edef\alignmentclass{\the\tabulatecolumn}%
- \edef\alignmentcharacter{\getvalue{\@@tabalign@@\the\tabulatecolumn}}%
- \ifcase\tabulatepass\or
- \setfirstpasscharacteralign\checkalignment{#1}%
- \fi % force hsize
- \setsecondpasscharacteralign\checkalignment{#1}}
-
-\def\noftabcolumns{16}
-
-\def\@@tabbox@@ {@@tabbox@}
-\def\@@tabhook@@ {@@tabhook@}
-\def\@@tabalign@@ {@@tabalign@}
-\def\@@tabsetups@@{@@tabsetups@}
-
-% \dorecurse\noftabcolumns % quick and dirty stack
-% {\@EA\newbox\csname\@@tabbox@@\recurselevel\endcsname}
-
-\def\tablebox#1%
- {\csname\@@tabbox@@\number#1\endcsname}
-
-% \def\checktablebox#1%
-% {\ifundefinedelse{\@@tabbox@@\number#1}%
-% \expandafter\newbox\csname\@@tabbox@@\number#1\endcsname
-% \fi}
-
-\def\initializetablebox#1% also used elsewhere
- {\ifcsname\@@tabbox@@\number#1\endcsname
- \global\setbox\csname\@@tabbox@@\number#1\endcsname\emptybox
- \else
- \expandafter\newbox\csname\@@tabbox@@\number#1\endcsname
- \fi}
-
-% \def\initializetableboxes#1% hm, not that efficient, best make a simple dedicated tail recurser
-% {\dorecurse#1{\initializetablebox\recurselevel}}
-
-\def\initializetableboxes#1%
- {\scratchcounter#1\relax
- \doinitializetableboxes}
-
-\def\doinitializetableboxes
- {\ifnum\scratchcounter>\zerocount
- \initializetablebox\scratchcounter
- \advance\scratchcounter\minusone
- \expandafter\doinitializetableboxes
- \fi}
-
-\initializetableboxes\noftabcolumns
-
-\def\dotabulatenobreak
- {\noalign
- {\nobreak
- \iftracetabulate
- \red\hrule\!!height.5\linewidth\!!depth.5\linewidth
- \par
- \kern-\linewidth
- \nobreak
- \fi}}
-
-\let\notabulatehook\empty
-
-\def\checktabulatehook
- {\ifnum\tabulatetype<\plustwo
- \global\let\tabulatehook\notabulatehook
- \else
- \global\let\tabulatehook\dotabulatehook
- \fi}
-
-\def\checktabulatesetups
- {\getvalue{\@@tabsetups@@\the\tabulatecolumn}}
-
-\let\pretabrule \donothing
-\let\posttabrule\donothing
-
-\def\dodosettabulatepreamble#1#2%
- {\ifzeropt\tabulatewidth
- \ifcase\tabulatemodus\relax
- \let\preamblebox\empty
- \else
- \def\preamblebox{\autotabulatetrue}%
- \fi
- \else
- \ifcase\tabulatemodus\relax
- \edef\preamblebox{\hbox to \the\tabulatewidth}%
- \else
- \edef\preamblebox{\hsize\the\tabulatewidth}%
- \fi
- \fi
- %
- % less bytes
- %
- %\edef\preamblebox%
- % {\ifcase\tabulatewidth
- % \ifcase\tabulatemodus\relax\else\noexpand\autotabulatetrue\fi
- % \els
- % \ifcase\tabulatemodus\relax\hbox to\else\hsize\fi\the\tabulatewidth
- % \fi}%
- %
- % 0 = NC column next EQ equal column
- % 1 = RC column raw RQ equal column raw
- % 2 = HC column hook HQ equal column hook
- % some entries can be left out if we test for them being set
- \@EA\appendtoks \@EA&\@EA\hskip\pretabskip\pretabrule##&\to\!!toksa
- \appendtoks \ignorespaces\to\!!toksa
- \@EA\appendtoks\@EA\global\@EA\tabulatecolumn\the\tabulatecolumns\relax\to\!!toksa
- \appendtoks \checktabulatesetups\to\!!toksa
- \appendtoks \checktabulatehook\to\!!toksa
- \@EA\appendtoks \preamblebox\to\!!toksa
- \appendtoks \bgroup\bbskip\bgroup#1\to\!!toksa
- \appendtoks\ifnum\tabulatetype=\plusone \else \to\!!toksa
- \@EA\appendtoks \the\tabulatebmath\to\!!toksa
- \@EA\appendtoks \the\tabulatefont\to\!!toksa
- \@EA\appendtoks \the\tabulatesettings\to\!!toksa
- \@EA\appendtoks \the\tabulatebefore\to\!!toksa
- \appendtoks\fi \to\!!toksa
- \appendtoks \bgroup\ignorespaces\to\!!toksa
- %
- \appendtoks \tabulatehook##\to\!!toksa
- %
- %%\doifdefinedelse{\@@tabalign@@\tabulatecolumns}
- %\doifdefinedelse{\@@tabalign@@\the\tabulatecolumns}
- % {\appendtoks\handletabulatecharalign## \to\!!toksa}
- % {\appendtoks\tabulatehook ##\to \!!toksa}%
- % waarom kan ik hier geen \xx{##} geven, om een of
- % andere reden passeert dan tex de hele regel (incl \NC's)
- % als argument; elke delimiter <> space gaat trouwens fout
- \appendtoks \unskip\unskip\ifmmode\else\endgraf\fi\egroup\to\!!toksa
- \appendtoks\ifnum\tabulatetype=1 \else \to\!!toksa
- \@EA\appendtoks \the\tabulateafter\to\!!toksa
- \@EA\appendtoks \the\tabulateemath\to\!!toksa
- \appendtoks\fi \to\!!toksa
- \appendtoks #2\egroup\egroup\to\!!toksa
- \@EA\appendtoks \@EA&\@EA\posttabrule\@EA\hskip\postabskip##\to\!!toksa
- \appendtoks\NC\to\tabulatedummy
- \let\bbskip\empty
- \def\pretabskip{.5\tabulateunit}%
- \let\postabskip\pretabskip
- \let\gettabulateexit\dogettabulateexit
- \tabulatewidth\zeropoint}
-
-% todo: we can speed up this module a bit
-%
-% \expanded{\!!toksa{\the\!!toksa
-% &\hskip\pretabskip\noexpand\pretabrule####&
-% \ignorespaces
-% \global\tabulatecolumn\the\tabulatecolumns
-% \noexpand\checktabulatesetups
-% \noexpand\checktabulatehook
-% \preamblebox
-% \bgroup\noexpand\bbskip\bgroup\normalunexpanded{#1}%
-% \noexpand\ifnum\tabulatetype=\plusone \noexpand\else
-% \the\tabulatebmath
-% \the\tabulatefont
-% \the\tabulatesettings
-% \the\tabulatebefore
-% \noexpand\fi
-% \bgroup\ignorespaces
-% \noexpand\tabulatehook####%
-% \unskip\unskip\noexpand\ifmmode\noexpand\else\endgraf\noexpand\fi\egroup
-% \noexpand\ifnum\noexpand\tabulatetype=1 \noexpand\else
-% \the\tabulateafter
-% \the\tabulateemath
-% \noexpand\fi
-% \normalunexpanded{#2}\egroup\egroup
-% &\noexpand\posttabrule\hskip\noexpand\postabskip####}}%
-
-\def\dosettabulatepreamble
- {\ifx\next\relax
- \let\nextnext\relax % == \expandafter\gobbleoneargument
- \else
- \let\nextnext\settabulatepreamble
- \ifx x\next \let\tabulatealign\zerocount % internal
- \else\ifx l\next \let\tabulatealign\plusone
- \else\ifx r\next \let\tabulatealign\plustwo
- \else\ifx c\next \let\tabulatealign\plusthree
- \else\ifx p\next \let\nextnext\gettabulateparagraph
- \else\ifx s\next \let\nextnext\gettabulatesetups
- \else\ifx w\next \let\nextnext\gettabulatewidth
- \else\ifx f\next \let\nextnext\gettabulatefont
- \else\ifx B\next \tabulatefont{\bf}%
- \else\ifx I\next \tabulatefont{\it}%
- \else\ifx S\next \tabulatefont{\sl}%
- \else\ifx T\next \tabulatefont{\tt}%
- \else\ifx R\next \tabulatefont{\rm}%
- \else\ifx m\next \tabulatebmath{$}\tabulateemath{$}%
- \else\ifx M\next \tabulatebmath{$\displaystyle}\tabulateemath{$}%
- \else\ifx h\next \let\nextnext\gettabulatehook
- \else\ifx b\next \let\nextnext\gettabulatebefore
- \else\ifx a\next \let\nextnext\gettabulateafter
- \else\ifx i\next \let\nextnext\gettabulatepreskip
- \else\ifx j\next \let\nextnext\gettabulateposskip
- \else\ifx k\next \let\nextnext\gettabulatepreposskip
- \else\ifx X\next \let\nextnext\gettabulateexit % internal
- \else\ifx e\next \appendtoks\global\tabulateequaltrue\to\tabulatesettings
- \else\ifx ~\next \appendtoks\fixedspaces\to\tabulatesettings
- \else\ifx g\next \let\nextnext\gettabulatealign
- \else\ifx .\next \def\nextnext{\gettabulatealign.}%
- \else\ifx ,\next \def\nextnext{\gettabulatealign,}%
- \else \message{unknown preamble key [\meaning\next]}%
- \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
- \nextnext}
-
-\def\dogettabulateexit
- {\let\postabskip\!!zeropoint
- \settabulatepreamble}
-
-\let\gettabulateexit\dogettabulateexit
-
-\def\gettabulatepreskip#1%
- {\doifnumberelse{#1}
- {\scratchdimen#1\tabulateunit\let\next\empty}
- {\scratchdimen.5\tabulateunit\def\next{#1}}%
- \edef\pretabskip{\the\scratchdimen}%
- \@EA\settabulatepreamble\next}
-
-\def\gettabulateposskip#1%
- {\doifnumberelse{#1}
- {\scratchdimen#1\tabulateunit\let\next\empty}
- {\scratchdimen.5\tabulateunit\def\next{#1}}%
- \edef\postabskip{\the\scratchdimen}%
- \let\gettabulateexit\settabulatepreamble
- \@EA\settabulatepreamble\next}
-
-\def\gettabulatepreposskip#1%
- {\doifnumberelse{#1}
- {\scratchdimen#1\tabulateunit\let\next\empty}
- {\scratchdimen.5\tabulateunit\def\next{#1}}%
- \edef\pretabskip{\the\scratchdimen}%
- \let\postabskip\pretabskip
- \let\gettabulateexit\settabulatepreamble
- \@EA\settabulatepreamble\next}
-
-\def\gettabulatesetups#1%
- {\setvalue{\@@tabsetups@@\the\tabulatecolumns}{\setups[#1]}%
- \settabulatepreamble}
-
-\def\gettabulatehook#1%
- {\setvalue{\@@tabhook@@\the\tabulatecolumns}{#1}%
- \settabulatepreamble}
-
-\def\gettabulatealign#1%
- {\setvalue{\@@tabalign@@\the\tabulatecolumns}{#1}%
- \settabulatepreamble}
-
-\def\gettabulatebefore#1%
- {\tabulatebefore{#1}%
- \settabulatepreamble}
-
-\def\gettabulateafter#1%
- {\tabulateafter{#1}%
- \settabulatepreamble}
-
-\def\gettabulatefont#1%
- {\tabulatefont{#1}%
- \settabulatepreamble}
-
-\def\gettabulatewidth
- {\let\tabulatemodus\zerocount
- \let\tabulatedimen\zerocount
- \doifnextcharelse(\dogettabulatewidth\settabulatepreamble}
-
-\def\gettabulateparagraph
- {\doifnextcharelse{(}
- {\let\tabulatemodus\plusone
- \let\tabulatedimen\plusone
- \dogettabulatewidth}
- {\let\tabulatemodus\plustwo
- \let\tabulatedimen\zerocount
- \settabulatepreamble}}
-
-% \def\dogettabulatewidth(#1)%
-% {\tabulatewidth#1\relax
-% \ifnum\tabulatedimen=\plusone
-% \global\advance\tabulatepwidth\tabulatewidth
-% \fi
-% \settabulatepreamble}
-
-% \def\dogettabulatewidth(#1)%
-% {\doifelse{#1}\v!passend
-% {\let\tabulatemodus\plusthree}
-% {\tabulatewidth#1\relax}%
-% \ifnum\tabulatedimen=\plusone
-% \global\advance\tabulatepwidth\tabulatewidth
-% \fi
-% \settabulatepreamble}
-
-% \startbuffer
-% \toplinebox{\framed[width=3cm,height=2cm]{tufte}}
-% \stopbuffer
-% \starttabulate[|p(fixed)|p|]
-% \dorecurse{100}{\NC \getbuffer \NC test \par test \par \NC \NR}
-% \stoptabulate
-% \starttabulate[|p(fit)|p|]
-% \dorecurse{100}{\NC \getbuffer \NC test \par test \par \NC \NR}
-% \stoptabulate
-
-\def\dogettabulatewidth(#1)%
- {\processallactionsinset
- [#1]%
- [ \v!fit=>\let\tabulatemodus\plusthree,
- \v!fixed=>\let\tabulatemodus\plusthree
- \tabulatenopbreaktrue,
- \s!unknown=>\tabulatewidth#1\relax]%
- \ifnum\tabulatedimen=\plusone
- \global\advance\tabulatepwidth\tabulatewidth
- \fi
- \settabulatepreamble}
-
-\def\settabulatepreamble
- {\afterassignment\dosettabulatepreamble\let\next=}
-
-\def\tabulateraggedright {\ifnum\tabulatetype=\plusone \else\raggedright \fi}
-\def\tabulateraggedcenter{\ifnum\tabulatetype=\plusone \else\raggedcenter\fi}
-\def\tabulateraggedleft {\ifnum\tabulatetype=\plusone \else\raggedleft \fi}
-\def\tabulatenotragged {\ifnum\tabulatetype=\plusone \else\notragged \fi}
-\def\tabulatehss {\ifnum\tabulatetype=\plusone \else\hss \fi} % never change this to a fill
-
-\bgroup \catcode`\|=\@@other
-
-\gdef\nexttabulate#1|%
- {\let\tabulatealign\@@tabulatealign
- \let\tabulatemodus\zerocount
- \let\tabulatedimen\zerocount
- \tabulatebefore \emptytoks
- \tabulateafter \emptytoks
- \tabulatebmath \emptytoks
- \tabulateemath \emptytoks
- \tabulatefont \emptytoks
- \tabulatesettings\emptytoks
- \global\advance\tabulatecolumns\plusone
- \letvalue{\@@tabsetups@@\the\tabulatecolumns}\donothing
- \settabulatepreamble#1\relax\relax % permits i without n
- \ifcase\tabulatemodus\relax
- \ifcase\tabulatealign\relax
- \dodosettabulatepreamble\empty \tabulatehss \or
- \dodosettabulatepreamble\empty \tabulatehss \or
- \dodosettabulatepreamble\tabulatehss\empty \or
- \dodosettabulatepreamble\tabulatehss\tabulatehss \fi
- \or % fixed width
- \ifcase\tabulatealign\relax
- \dodosettabulatepreamble \bskip \eskip \or
- \dodosettabulatepreamble{\bskip\tabulateraggedright }\eskip \or
- \dodosettabulatepreamble{\bskip\tabulateraggedleft }\eskip \or
- \dodosettabulatepreamble{\bskip\tabulateraggedcenter}\eskip \fi
- \or % auto width
- \global\advance\nofautotabulate\plusone
- \ifcase\tabulatealign\relax
- \dodosettabulatepreamble \bskip \eskip \or
- \dodosettabulatepreamble{\bskip\tabulateraggedright }\eskip \or
- \dodosettabulatepreamble{\bskip\tabulateraggedleft }\eskip \or
- \dodosettabulatepreamble{\bskip\tabulateraggedcenter}\eskip \fi
- \or % simple
- \dodosettabulatepreamble \xbskip \xeskip
- \fi
- \futurelet\next\donexttabulate}
-
-\egroup
-
-\def\donexttabulate
- {\ifx\next\relax\else
- \expandafter\nexttabulate
- \fi}
-
-\def\splitofftabulatebox % overloaded in anch-pgr
- {\dontcomplain
- \global\setbox\tabulatebox % % % global ? % % %
- \vsplit\tablebox\tabulatecolumn to \lineheight
- \setbox\tabulatebox\normalvbox
- {\unvbox\tabulatebox}%
- \setbox\tabulatebox\hbox to \wd\tabulatebox
- {\hss\dotabulatehook{\box\tabulatebox}\hss}%
- \ht\tabulatebox\strutht
- \dp\tabulatebox\strutdp
- \box\tabulatebox}
-
-\def\dotabulatehook {\getvalue{\@@tabhook@@ \the\tabulatecolumn}}
-\def\dotabulatealign {\getvalue{\@@tabalign@@ \the\tabulatecolumn}}
-
-\def\resettabulatepheight
- {\global\tabulateminplines\plusone
- \getnoflines\tabulatemaxpheight
- \global\tabulatemaxplines\noflines
- \global\tabulatemaxpheight\zeropoint}
-
-\def\settabulatepheight
- {\scratchdimen\ht\tablebox\tabulatecolumn\relax
- \ifdim\scratchdimen>\tabulatemaxpheight
- \global\tabulatemaxpheight\scratchdimen
- \fi}
-
-\def\handletabulatepbreak
- {\TABLEnoalign
- {\ifhandletabulatepbreak
- \iftabulatenopbreak
- \dotabulatenobreak
- \else\ifnum\tabulatemaxplines>\plusone
- \ifnum\tabulateminplines=\plusone
- \dotabulatenobreak
- \fi
- \global\advance\tabulateminplines\plusone
- \ifnum\tabulateminplines=\tabulatemaxplines\relax
- \dotabulatenobreak
- \fi
- \fi \fi
- \fi}}
-
-%D \startbuffer
-%D \starttabulate[|c|p|p|]
-%D \NC \bf Alpha \NC \bf Beta \NC \bf Gamma \NC\NR
-%D \NC 1 \NC right indeed \NC definitely wrong \NC\NR
-%D \NC 2 \NC \thinrules[n=3] \NC \thinrules[n=3] \NC\NR
-%D \NC 3 \NC oh yes \NC simply no \NC\NR
-%D \NC 4 \NC very true \NC as false as can be \NC\NR
-%D \NC 5 \NC \thinrules[n=5] \NC \thinrules[n=5] \NC\NR
-%D \NC 6 \NC \thinrules[n=3] \NC \thinrules[n=4] \NC\NR
-%D \stoptabulate
-%D \stopbuffer
-%D
-%D \typebuffer {\tracetabulatetrue\getbuffer}
-%D
-%D \startbuffer
-%D \starttabulate[|c|p|p|]
-%D \NC \bf Alpha \NC \bf Beta \NC \bf Gamma \NC\NR
-%D \NC 1 \NC right indeed \NC definitely wrong \NC\NR
-%D \NC 2 \NC oh yes \NC simply no \NC\NR
-%D \NC 3 \NC very true \NC as false as can be \NC\NR
-%D \NC 4 \NC the whole truth \NC but the truth \NC\NR
-%D \stoptabulate
-%D \stopbuffer
-%D
-%D \typebuffer {\tracetabulatetrue\getbuffer}
-
-% \definetabulate
-% \redefinetabulate
-% \starttabulate[preamble]
-% \starttabulate -> \starttabulate[|l|p|]
-
-\bgroup \catcode`\|=\@@other
-
-\gdef\definetabulate
- {\dotripleempty\dodefinetabulate}
-
-\gdef\dodefinetabulate[#1][#2][#3]%
- {\ifthirdargument
- \doifundefined{\??tt#1::\c!unit}
- {\copyparameters
- [\??tt#1::][\??tt\v!tabulate::]%
- [\c!frame,\c!distance,\c!unit,\c!before,\c!bodyfont,\c!after,
- \c!inner,\c!indenting,\c!margin,\c!align,\c!header,\c!title,
- \c!rulecolor,\c!rulethickness,\c!split,EQ]}%
- \copyparameters
- [\??tt#1::#2][\??tt#1::]%
- [\c!unit,\c!distance,\c!before,\c!bodyfont,\c!after,
- \c!inner,\c!indenting,\c!frame,\c!split,\c!header,\c!title,
- \c!margin,\c!align,\c!rulecolor,\c!rulethickness,EQ]%
- \setvalue{\e!start#1::#2}{\dofinalstarttabulate[#1][#2][#3]}%
- \setvalue{\e!start#1}{\bgroup\dosubstarttabulate[#1]}%
- \letvalue{\??tt#1-\v!header}\empty
- \letvalue{\??tt#1-\v!footer }\empty
- \else\ifsecondargument
- \definetabulate[#1][][#2]%
- \else
- \definetabulate[#1][][|l|p|]%
- \fi\fi}
-
-\egroup
-
-\let\tabulateheadcontent\empty
-\let\tabulatetailcontent\empty
-
-\newconditional\tabulatesomeamble
-
-\def\checkfulltabulatecontent % - needed, else confusion with \c!header
- {\ifundefined{\??tt\currenttabulate-\v!header}%
- \let\tabulateheadcontent\empty
- \else
- \def\tabulateheadcontent
- {\TABLEnoalign{\global\settrue\tabulatesomeamble}%
- \csname\??tt\currenttabulate-\v!header\endcsname
- \TABLEnoalign{\global\setfalse\tabulatesomeamble}}%
- \fi
- \ifundefined{\??tt\currenttabulate-\v!footer}%
- \let\tabulatetailcontent\empty
- \else
- \def\tabulatetailcontent
- {\TABLEnoalign{\global\settrue\tabulatesomeamble}%
- \csname\??tt\currenttabulate-\v!footer\endcsname
- \TABLEnoalign{\global\setfalse\tabulatesomeamble}}%
- \fi}
-
-% \def\fulltabulatecontent
-% {\tabulateheadcontent
-% \tabulatecontent
-% \tabulatetailcontent}
-
-\def\fulltabulatecontent
- {\tabulateheadcontent
- \tabulatecontent
- \tabulatetailcontent
- \removefunnytabulateline}
-
-\def\removefunnytabulateline
- {\ifhmode
- \strut\crcr
- \TABLEnoalign{\kern-\lineheight}%
- \fi}
-
-\setvalue{\e!start\v!tabulatehead}%
- {\dosingleempty\dostartstarttabulatehead}
-
-\def\dostartstarttabulatehead[#1]%
- {\processcontent{\e!stop\v!tabulatehead}\next
- {\letvalue{\??tt\iffirstargument#1\else\v!tabulate\fi::-\v!header}\next}}
-
-\setvalue{\e!start\v!tabulatetail}%
- {\dosingleempty\dostartstarttabulatetail}
-
-\def\dostartstarttabulatetail[#1]%
- {\processcontent{\e!stop\v!tabulatetail}\next
- {\letvalue{\??tt\iffirstargument#1\else\v!tabulate\fi::-\v!footer}\next}}
-
-\def\dosubstarttabulate
- {\dodoubleempty\dodosubstarttabulate}
-
-\def\dodosubstarttabulate[#1][#2]%
- {\getvalue{\e!start#1::\ifundefined{\e!start#1::#2}\else#2\fi}}
-
-\setvalue{\e!start\v!tabulate}%
- {\bgroup\dodoubleempty\donormalstarttabulate}
-
-\bgroup
-
-\gdef\donormalstarttabulate[#1][#2]%
- {\ifsecondargument
- \getparameters[\??tt\v!tabulate::][#2]%
- \fi
- \iffirstargument
- \def\next{\dofinalstarttabulate[\v!tabulate][][#1]}%
- \else
- \def\next{\dofinalstarttabulate[\v!tabulate][][|l|p|]}%
- \fi
- \next}
-
-\egroup
-
-% The much neede hook:
-
-\newtoks\everytabulate
-
-% An example of its usage:
-
-\appendtoks \optimizeverbatimfalse \to \everytabulate
-\appendtoks \let\recodeverbatimmode\plustwo \to \everytabulate
-
-% A status variable:
-
-\chardef\tabulatepass=0
-
-\def\tabulateparameter#1{\csname\??tt\currenttabulate#1\endcsname}
-
-\bgroup
- \catcode`\|=\@@other \gdef\@@otherbar{|}
- \catcode`\|=\@@active \gdef\@@useotherbar{\let|\@@otherbar}
-\egroup
-
-\def\dofinalstarttabulate[#1][#2][#3]% identifier sub preamble
- {\edef\currenttabulate{#1::#2}%
- \ifinsidefloat \else
- \whitespace
- \tabulateparameter\c!before
- \fi
- \bgroup
- \resetcharacteralign
- % todo: spacing around tabulate when bodyfont is set
- % expansion en test needed ?
- \splittabulatetrue
- \processaction
- [\tabulateparameter\c!split]
- [% \v!yes=>\splittabulatetrue,
- % \v!repeat=>\splittabulatetrue, % todo, default yes
- \v!no=>\splittabulatefalse,
- \v!auto=>\ifinsidefloat\ifinsidesplitfloat\else\splittabulatefalse\fi\fi]%
- \doifvaluesomething{\??tt\currenttabulate\c!bodyfont}
- {\expanded{\switchtobodyfont[\tabulateparameter\c!bodyfont]}}%
- \postponenotes % new, to be tested / will be configurable
- \let\tabulatepass\plusone
- \widowpenalty\zerocount % otherwise lines are not broken
- \clubpenalty \zerocount % but overlap in funny ways
- \the\everytabulate
- \tabulateparameter\c!inner
- \scratchdimen\leftskip
- \advance\scratchdimen \hangindent
- \doifvalue{\??tt\currenttabulate\c!indenting}\v!yes
- {\advance\scratchdimen \parindent}% \ctxparindent
- \edef\tabulateindent{\the\scratchdimen}%
- \!!toksb\emptytoks
- \def\dorepeat*##1##2%
- {\dorecurse{##1}{\appendtoks##2\to\!!toksb}\do}%
- \def\do
- {\futurelet\next\dodo}%
- \def\dodo % \@EAEAEA gebruiken
- {\ifx\next\relax
- % exit
- \else\ifx*\next
- \let\next\dorepeat
- \else\ifx\bgroup\next
- \let\next\dododo
- \else
- \let\next\dodododo
- \fi\fi\fi
- \next}%
- \def\dododo##1%
- {\appendtoks{##1}\to\!!toksb\do}%
- \def\dodododo##1%
- {\appendtoks##1\to\!!toksb\do}%
- \global\tabulatecolumn\zerocount
-% \do#3\relax
-\bgroup\@@useotherbar\expanded{\egroup\noexpand\do#3\relax}%
- \processcontent
- {\e!stop#1}% \currenttabulate}
- \tabulatecontent
- {\@EA\processtabulate\@EA[\the\!!toksb]}}
-
-\chardef\tabulatetype=0
-
-% 0 = NC column next EQ equal column
-% 1 = RC column raw RQ equal column raw
-% 2 = HC column hook HQ equal column hook
-
-\newif\iftabulatefirstflushed
-
-\def\tabulateEQ
- {\iftabulatefirstflushed\else\tabulateparameter{EQ}\fi
- \global\tabulateequalfalse}
-
-% \def\tabulatenormalcolumn#1%
-% {&\iftabulateequal\tabulateEQ\fi&\global\chardef\tabulatetype#1&}
-%
-% \def\tabulateequalcolumn#1%
-% {&\tabulateEQ&\global\chardef\tabulatetype#1&}
-%
-% however, \unskip en \ignorespaces permit usage in complex XML/\starttabulate
-
-\def\tabulatenormalcolumn#1%
- {\unskip&\iftabulateequal\tabulateEQ\fi&\global\chardef\tabulatetype#1&%
- \ignorespaces}
-
-\def\tabulateequalcolumn#1%
- {\unskip&\tabulateEQ&\global\chardef\tabulatetype#1&%
- \ignorespaces}
-
-\def\tabulateautocolumn
- {\tabulatenormalcolumn\zerocount
- \ifnum\tabulatecolumn>\tabulatecolumns\relax
- \expandafter\NR
- \else
- \expandafter\ignorespaces % interferes with the more tricky hooks
- \fi}
-
-\def\setquicktabulate#1% see \startlegend \startgiven
- {\let#1\tabulateautocolumn
- \let\\\tabulateautocolumn}
-
-%\def\dotabulateruleseperator
-% {\vskip\strutdp}
-
-\def\dotabulateruleseperator % can be sped up
- {\bgroup
- \let\factor\!!plusone
- \scratchskip\strutdp
- \ExpandFirstAfter\processallactionsinset
- [\tabulateparameter\c!distance]
- [ \v!blank=>\scratchskip\bigskipamount,
- \v!depth=>\scratchskip\strutdp,
- \v!small=>\def\factor{.25},
- \v!medium=>\def\factor{.5},
- \v!big=>,
- \v!none=>\scratchskip\zeropoint\def\factor{0},
- \v!grid=>\scratchskip\zeropoint\def\factor{0},
- \s!unknown=>\scratchskip\commalistelement]%
- \scratchdimen\factor\scratchskip
- \ifconditional\tabulatesomeamble\kern\else\vskip\fi\scratchdimen % new
- \egroup}
-
-\def\dodotabulaterule#1%
- {\color
- [\tabulateparameter\c!rulecolor]
- {\scratchdimen\tabulateparameter\c!rulethickness#1}}
-
-\def\dotabulaterule
- {\dodotabulaterule
- {\hrule\!!height.5\scratchdimen\!!depth.5\scratchdimen\relax
- \doifvalue{\??tt\currenttabulate\c!distance}\v!grid
- {\kern-\scratchdimen}}} % experimental tm-prikkels
-
-\def\dotabulatelinerule
- {\multispan\totaltabulatecolumns % \multispan is a plain macro
- % for the moment this one
- \strut\hskip\tabulateparameter\c!margin
- % neg values are ok !
- \hskip\tabulateindent % new august 2003
- \dodotabulaterule
- {\!!heighta.5\lineheight
- \advance\!!heighta-\strutdepth
- \!!deptha-\!!heighta
- \advance\!!deptha\scratchdimen
- \leaders\hrule\!!height\!!heighta\!!depth\!!deptha\hfill}%
- \cr}
-
-%D When set to true, no (less) break optimization is done.
-
-\newif\iftolerantTABLEbreak
-
-%D The main processing macro is large but splitting it up
-%D would make things less clear.
-
-\def\doregistertabulateparoptions
- {\iftrialtypesetting \else
- \registerparoptions
- \ifinsidefloat
- % that is, an unbreakable one
- \global\let\registertabulateparoptions\empty
- \else
- % unsafe in crossing pages, at each b...
- % \global\let\registertabulateparoptions\empty
- \fi
- \fi}
-
-\appendtoks
- \global\let\registertabulateparoptions\doregistertabulateparoptions
-\to \everytabulate
-
-\newtoks\everytabulaterow
-
-\appendtoks
- \registertabulateparoptions
-\to \everytabulaterow
-
-\def\flushtabulateindent
- {\ifnum\tabulatecolumn=\zerocount
- \hbox to \tabulateindent
- {% we now have a local hsize, and since we want to
- % register positional info (i.e. real hsizes) we
- % need to reconstitute the original hsize
- \advance\hsize\tabulateindent
- % this is indeed rather messy and took a few hours
- % to dis/uncover
- \the\everytabulaterow
- \hss}%
- \fi}
-
-\def\totaltabulatecolumns{0}
-
-\def\handletabulatedigits{\digits}
-
-%D Beware, we cannot use \type {\unexpanded} on \type {\HL}
-%D cum suis, since \TEX's hard coded noalign lookahead fails
-%D on it! I mistakenly added this for a while.
-
-\chardef\tabulaterepeathead\zerocount
-
-\newcount\noftabulatelines
-\newcount\totalnoftabulatelines
-\newcount\minusnoftabulatelines
-
-\setvalue{\??tt:\c!align:\v!normal}{0}
-\setvalue{\??tt:\c!align:\v!right }{1}
-\setvalue{\??tt:\c!align:\v!left }{2}
-\setvalue{\??tt:\c!align:\v!middle}{3}
-
-\setvalue{\??tt:\c!header:\v!repeat}{\plusone}
-\setvalue{\??tt:\c!header:\v!text }{\plustwo}
-
-\bgroup \catcode`\|=\@@other
-
-\newtoks\everyaftertabulaterow
-
-\gdef\processtabulate[|#1|]% in the process of optimizing
- {\tabulateunit\tabulateparameter\c!unit
- \checkfulltabulatecontent
- \globallet\tabulateruledepth \!!zeropoint
- \globallet\tabulateruleheight\!!zeropoint
- \edef\@@tabulatealign{\executeifdefined{\??tt:\c!align:\tabulateparameter\c!align}0}%
-% \ExpandFirstAfter\processaction % use \setalignmentswitch instead
-% [\tabulateparameter\c!align]
-% [ \v!normal=>\def\@@tabulatealign{0},% = default value
-% \v!right=>\def\@@tabulatealign{1},% chardefs gebruiken
-% \v!left=>\def\@@tabulatealign{2},%
-% \v!middle=>\def\@@tabulatealign{3},%
-% \s!default=>\def\@@tabulatealign{0},%
-% \s!unknown=>\def\@@tabulatealign{0}]%
- \let\pretabskip\!!zeropoint
- \def\postabskip{.5\tabulateunit}%
- \global\tabulatecolumns\zerocount
- \global\nofautotabulate\zerocount
- \global\noftabulatelines\zerocount
- \totalnoftabulatelines\noftabulatelines
- \minusnoftabulatelines\noftabulatelines
- \global\tabulatepwidth\zeropoint
- \global\tabulateequalfalse
- \resettabulatepheight
- \ifinsidesplitfloat
- \donetrue
- \else\ifinsidefloat
- \donefalse
- \else
- \donetrue
- \fi\fi
- \ifdone
- \chardef\tabulaterepeathead\executeifdefined{\??tt:\c!header:\tabulateparameter\c!header}\zerocount
-% \processaction
-% [\tabulateparameter\c!header]
-% [\v!repeat=>\let\tabulaterepeathead\plusone,
-% \v!text=>\let\tabulaterepeathead\plustwo]%
- \fi
- \unexpanded \def\NC{\tabulatenormalcolumn0}%
- \unexpanded \def\RC{\tabulatenormalcolumn1}%
- \unexpanded \def\HC{\tabulatenormalcolumn2}%
- \unexpanded \def\EQ{\tabulateequalcolumn 0}%
- \unexpanded \def\RQ{\tabulateequalcolumn 1}%
- \unexpanded \def\HQ{\tabulateequalcolumn 2}%
- \unexpanded \def\NG{\NC\handletabulatecharalign}%
- \unexpanded \def\NN{\NC\handletabulatedigits}% new, undocumented, test first
- \unexpanded \def\ND{\NC\handletabulatedigits}% same, for old times sake
- \def\tabulaterule{\HR}% a rule with lineheight
- \def\tabulateline{\HL}% just a spaced rule
- \def\tabulateautorule{\doHR\plusone}%
- \def\tabulateautoline{\doHL\plusone}%
- \def\HR{\doHR\zerocount}
- \def\HL{\doHL\zerocount}
- \unexpanded \def\NR % next row
- {\global\advance\noftabulatelines\plusone
- \global\tabulatefirstflushedfalse
- \global\tabulateequalfalse
- \global\tabulatecolumn\zerocount
- \resettabulatepheight
- \unskip\unskip\crcr\flushtabulated
-\TABLEnoalign
- {\the\everyaftertabulaterow}%
- \TABLEnoalign
- {\iftolerantTABLEbreak\else
- \ifconditional\tabulatesomeamble \ifcase\tabulaterepeathead \else
- \allowbreak
- \fi \fi
- \ifnum\noftabulatelines=\plusone
- \dotabulatenobreak
- \else\ifnum\noftabulatelines=\minusnoftabulatelines
- \ifnum\tabulatemaxplines<\plustwo
- \dotabulatenobreak
- \else
- \allowbreak % needed with pbreak prevention
- \fi
- \else
- \allowbreak % needed with pbreak prevention
- \fi\fi
- \fi
- \global\tabulatefirstflushedfalse}}%
- \let\HL\empty % not needed
- \let\SR\NR \let\AR\NR
- \let\FL\empty \let\FR\NR
- \let\ML\empty \let\MR\NR
- \let\LL\empty \let\LR\NR
- \let\doHR\gobbleoneargument
- \let\doHL\gobbleoneargument
- \global\let\flushtabulated\empty
-% \let\savedbar|\let|\nexttabulate
- \tabskip\zeropoint
- \ifdim\tabulateparameter\c!margin>\zeropoint
- \!!toksa{&\flushtabulateindent\strut##%
- \tabskip\tabulateparameter\c!margin\strut
- &##\tabskip\zeropoint}%
- \else
- \!!toksa{&\flushtabulateindent\strut##%
- &##\tabskip\zeropoint}%
- \fi
- \tabulatewidth\zeropoint
- % |#1X|\relax
- \nexttabulate #1X|\relax
- \scratchcounter\tabulatecolumns
- \multiply\scratchcounter3%
- \advance\scratchcounter4%
- \edef\totaltabulatecolumns{\the\scratchcounter}%
- \tabulatewidth\zeropoint
- % \dorecurse\tabulatecolumns % can be made faster
- % {\doifundefinedelse{\@@tabbox@@\recurselevel}
- % {\expandafter\newbox\csname\@@tabbox@@\recurselevel\endcsname}%
- % {\global\setbox\csname\@@tabbox@@\recurselevel\endcsname\emptybox}}%
- \initializetableboxes\tabulatecolumns
- \appendtoks&##\to\!!toksa
- \appendtoks\global\advance\tabulatecolumn\plusone\to\!!toksa
- \appendtoks\NC\unskip\unskip\crcr\flushtabulated\to\tabulatedummy % no count
- \global\tabulatecolumn\zerocount
- \resettabulatepheight
- \def\bskip
- {\setbox\tabulatebox\vbox\bgroup
- \global\let\tabulatehook\notabulatehook}%
- \def\eskip
- {\par\egroup
- \global\let\tabulatehook\dotabulatehook}%
- \def\xbskip
- {\hbox\bgroup\vbox\bgroup
- \global\let\tabulatehook\notabulatehook}%
- \def\xeskip
- {\par\egroup\egroup
- \global\let\tabulatehook\dotabulatehook}%
- % \let|\savedbar
- \global\let\tabulatehook\dotabulatehook
- \doifvalue{\??tt\currenttabulate\c!indenting}\v!no\forgetparindent
- \ifinsidefloat
- \let\tabulateindent\!!zeropoint
- \else
- \setlocalhsize \hsize\localhsize
- \fi
- \dontcomplain
- \forgetall % hm, interference with \forgetparindent ^^^ probably bug, to be solved
- \setbox0\vbox % outside \if because of line counting
- {\notesenabledfalse
- \let\tabulateindent\!!zeropoint
- \trialtypesettingtrue % very important
- \@EA\halign\@EA{\the\!!toksa\crcr\fulltabulatecontent\crcr}}%
- \ifnum\nofautotabulate>\zerocount
- % so, even if the natural size is larger, in the final
- % run, we force the calculated width
- \tabulatewidth\hsize
- \advance\tabulatewidth -\wd0
- \advance\tabulatewidth -\tabulatepwidth
- \ifnum\nofautotabulate>\zerocount
- \divide\tabulatewidth \nofautotabulate\relax
- \fi
- \fi
- \def\xbskip{\bskip}%
- \def\xeskip{\eskip}%
- \ifsplittabulate
- \splittopskip\strutht
- \global\let\flushtabulatedindeed\empty
- \long\def\bbskip
- {\ifvoid\tablebox\tabulatecolumn
- \ifx\flushtabulatedindeed\empty\else
- \setbox0\hbox
- \fi
- \fi}%
- \def\bskip
- {\ifvoid\tablebox\tabulatecolumn
- \global\setbox\tablebox\tabulatecolumn\vbox
- \bgroup
- \global\let\tabulatehook\notabulatehook
- \ifautotabulate\hsize\tabulatewidth\fi
- % \begstrut % interferes with pre-\pars
- % evt: \appendtoks\begstrut\to\everypar
- \ignorespaces
- \def\eskip
- {\par\egroup
- \settabulatepheight
- \global\let\tabulatehook\dotabulatehook
- \splitofftabulatebox}%
- \else
- \let\eskip\empty
- \dontcomplain
- \global\let\tabulatehook\dotabulatehook
- \expandafter\splitofftabulatebox
- \fi}%
- \gdef\flushtabulated
- {\TABLEnoalign % noalign % no interference !
- {\global\let\flushtabulatedindeed\empty
- \global\tabulatecolumn\zerocount
- \handletabulatepbreak
- \dorecurse\tabulatecolumns % was: \noftabcolumns
- {\ifvoid\tablebox\recurselevel\else
- \gdef\flushtabulatedindeed{\the\tabulatedummy}%
- \fi}%
- \global\tabulatefirstflushedtrue}%
- \flushtabulatedindeed}%
- \else
- % tabhook op alles ?
- \def\bskip
- {\vtop\bgroup
- \ifautotabulate\hsize\tabulatewidth\fi
- % \begstrut % interferes with pre-\pars
- % evt: \appendtoks\begstrut\to\everypar
- \ignorespaces}%
- \def\eskip % vertical strut added august 2003
- {\par\verticalstrut\vskip-\struttotal\egroup}%
- \fi
- \totalnoftabulatelines\noftabulatelines
- \minusnoftabulatelines\numexpr\noftabulatelines+\minusone\relax
- \global\noftabulatelines\zerocount
- \def\doHL##1% ##1 ignored
- {\TABLEnoalign
- {\csname
- \ifnum\noftabulatelines=\zerocount F\else
- \ifnum\noftabulatelines=\totalnoftabulatelines L\else
- M\fi\fi
- L\endcsname}}%
- \def\doHR##1% horizontal rule line (break untested)
- {\TABLEnoalign
- {\globallet\TABLEautoline\dotabulatelinerule
- \ifcase##1\or
- \ifnum\noftabulatelines=\zerocount
- \gdef\TABLEautoline{\TABLEnoalign{}}%
- \else\ifnum\noftabulatelines=\totalnoftabulatelines
- \gdef\TABLEautoline{\TABLEnoalign{}}%
- \fi\fi
- \fi
- \dotabulatenobreak}%
- \TABLEautoline
- \TABLEnoalign
- {\nobreak
- \ifx\TABLEautoline\dotabulatelinerule\kern-\lineheight\fi
- \ifnum\noftabulatelines=\totalnoftabulatelines
- \@EA\dotabulatenobreak
- \else
- \@EA\allowbreak
- \fi}%
- \TABLEautoline
- \TABLEnoalign
- {\dotabulatenobreak}}%
- \doifelsevalue{\??tt\currenttabulate\c!rule}\v!line
- {\let\HL \HR
- \let\tabulateautoline\tabulateautorule
- \let\tabulateline \tabulaterule}%
- {\def\HL{\doHL\zerocount}}%
- \def\tablebaselinecorrection
- {\def\dobaselinecorrection
- {\vskip-\prevdepth
- \vskip\strutdp
- \vskip\strutdp}%
- \baselinecorrection}%
- \def\FL{\TABLEnoalign
- {\ifinsidefloat\else
- \doifemptyvalue{\??tt\currenttabulate\c!before} % no expansion
- {\tablebaselinecorrection}%
- \fi
- \dotabulaterule
- \dotabulatenobreak
- \dotabulateruleseperator
- \prevdepth\strutdp
- \dotabulatenobreak}}%
- \def\ML{\TABLEnoalign
- {\dotabulateruleseperator
- \dotabulaterule
- \ifnum\noftabulatelines>\plusone
- \ifnum\noftabulatelines<\minusnoftabulatelines
- % \vskip \topskip\allowbreak \vskip-\topskip
- \vskip1\topskip\allowbreak\vskip-1\topskip
- \vskip-\tabulateparameter\c!rulethickness
- \dotabulaterule
- \fi
- \fi
- \dotabulateruleseperator}}%
- \def\LL{\TABLEnoalign
- {\dotabulatenobreak
- \dotabulateruleseperator
- \dotabulatenobreak
- \dotabulaterule
- \ifinsidefloat\else
- \doifemptyvalue{\??tt\currenttabulate\c!after} % no expansion
- {\vskip\strutdp
- \verticalstrut
- \vskip-\struttotal}%
- \fi}}%
- \let\tabulatepass\plustwo
- %
- \ifcase\tabulaterepeathead
- \ifinsidesplitfloat
- \setbox\tabulatebox\vbox \bgroup
- \else
- \startframedcontent[\tabulateparameter\c!frame]%
- \fi
- \else
- \setbox\tabulatebox\vbox \bgroup
- \fi
- %
- \@EA\halign\@EA{\the\!!toksa\crcr\fulltabulatecontent\crcr}%
- \prevdepth\strutdp % nog eens beter, temporary hack
- \doifvalue{\??tt\currenttabulate\c!distance}\v!grid
- {\vskip-\strutdp}% experimental tm-prikkels
- %
- \ifcase\tabulaterepeathead
- \ifinsidesplitfloat
- \egroup \splittabulatebox\tabulatebox
- \else
- \stopframedcontent
- \fi
- \else
- \egroup \splittabulatebox\tabulatebox
- \fi
- %
- \egroup
- \ifinsidefloat \else
- \tabulateparameter\c!after
- \fi
- \egroup}
-
-\egroup
-
-% \setuptabulate[split=yes,header=text,title=Vervolg van Tabel]
-%
-% % \starttabulatehead
-% % \NC test \NC hans\NC \NR
-% % \stoptabulatehead
-%
-% \starttabulate
-% \NC test \NC \input tufte \relax \NC \NR
-% \NC test \NC \input knuth \relax \NC \NR
-% \NC test \NC \input knuth \relax \NC \NR
-% \NC test \NC \input tufte \relax \NC \NR
-% \NC test \NC \input tufte \relax \NC \NR
-% \NC test \NC \input tufte \relax \NC \NR
-% \stoptabulate
-
-% \def\splittabulatebox#1% #1 <> 0/2 / derived from the one in core-ntb.tex
-% {\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
- {\ifinsidesplitfloat
- \dosplittabulatebox#1%
- \else\ifinsidefloat
- \unvbox#1%
- \else
- \dosplittabulatebox#1%
- \fi\fi}
-
-\def\dosplittabulatebox#1%
- {\resettsplit
- \def\tsplitminimumfreelines{2}%
- \def\tsplitminimumfreespace{0pt}%
- \setbox\tsplitcontent\box#1%
- \ifcase\tabulaterepeathead\or
- \setbox\tsplithead\vsplit\tsplitcontent to \lineheight
- \setbox\tsplithead\vbox{\unvbox\tsplithead}%
- \or
- \setbox\tsplithead\vbox{\hbox{\strut\tabulateparameter\c!title}}%
- \fi
- \handletsplit}
-
-%D \starttyping
-%D \setuptabulate[split=no,rule=line]
-%D
-%D \starttabulate
-%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
-%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
-%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
-%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
-%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
-%D \NC tufte \NC \input tufte \NC \NR \tabulateautorule
-%D \stoptabulate
-%D \stoptyping
-
-% \starttabulatie[|mc|]
-% \NC \digits{100.000,00} \NC\NR
-% \NC \digits{@10.000,00} \NC\NR
-% \NC \digits{@@@.100,00} \NC\NR
-% \NC \digits{@@@.@10,@@} \NC\NR
-% \NC \digits{@@@.@@1,@@} \NC\NR
-% \stoptabulatie
-%
-% \starttabulatie[|mc|]
-% \ND 100.000,00 \NC\NR
-% \ND @10.000,00 \NC\NR
-% \ND @@@.100,00 \NC\NR
-% \ND @@@.@10,@@ \NC\NR
-% \ND @@@.@@1,@@ \NC\NR
-% \stoptabulatie
-%
-% \starttabulatie[|c|]
-% \ND $100.000,00$ \NC\NR
-% \ND $@10.000,00$ \NC\NR
-% \ND $@@@.100,00$ \NC\NR
-% \ND $@@@.@10,@@$ \NC\NR
-% \ND $@@@.@@1,@@$ \NC\NR
-% \stoptabulatie
-%
-% \starttabulatie[|c|]
-% \NC $\digits 100.000,00 $ \NC\NR
-% \NC $\digits @10.000,00 $ \NC\NR
-% \NC $\digits @@@.100,00 $ \NC\NR
-% \NC $\digits @@@.@10,@@ $ \NC\NR
-% \NC $\digits @@@.@@1,@@ $ \NC\NR
-% \stoptabulatie
-%
-% \starttabulatie[|c|]
-% \NC \digits $100.000,00$ \NC\NR
-% \NC \digits $@10.000,00$ \NC\NR
-% \NC \digits $@@@.100,00$ \NC\NR
-% \NC \digits $@@@.@10,@@$ \NC\NR
-% \NC \digits $@@@.@@1,@@$ \NC\NR
-% \stoptabulatie
-
-\def\setuptabulate
- {\dotripleempty\dosetuptabulate}
-
-\def\dosetuptabulate[#1][#2][#3]%
- {\ifthirdargument
- \getparameters[\??tt#1::#2][#3]%
- \else\ifsecondargument
- \getparameters[\??tt#1::][#2]%
- \else
- \getparameters[\??tt\v!tabulate::][#1]%
- \fi\fi}
-
-\setuptabulate
- [\c!unit=1em,
- EQ={:},
- \c!frame=\v!off,
- \c!bodyfont=,
- \c!rule=\v!normal,
- \c!rulecolor=,
- \c!rulethickness=\linewidth,
- \c!inner=,
- \c!before=\blank,
- \c!after=\blank,
- \c!distance={\v!depth,\v!medium},
- \c!align=\v!normal,
- \c!margin=\!!zeropoint,
- \c!split=\v!auto,
- \c!header=\v!yes,
- \c!title=,
- \c!indenting=\v!no]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/tabl-tsp.mkii b/Master/texmf-dist/tex/context/base/mkii/tabl-tsp.mkii
deleted file mode 100644
index 59e9185e81d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/tabl-tsp.mkii
+++ /dev/null
@@ -1,427 +0,0 @@
-%D \module
-%D [ file=tabl-tsp,
-%D version=2000.10.20,
-%D title=\CONTEXT\ Table Macros,
-%D subtitle=Splitting,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Table Macros / Splitting}
-
-%D The code in this file is move here from other places.
-
-\unprotect
-
-% only to be used with single tokens (will be prim)
-
-\ifx\htdp\undefined \def\htdp#1{\dimexpr\ht#1+\dp#1\relax} \fi
-
-%D Although the name resembles floats, and therefore this should be
-%D a page module, we decided to make it core functionality because the
-%D table code depends on it. Othrwise there would be too much
-%D overloading afterwards involved. Actually, the float part is rather
-%D generic and not that related to floats.
-
-% \splitfloat [settings] {\placetable[optional args]{test}} {content}
-
-\definenumber
- [\??si]
- [\c!way=\v!by\v!text,
- \c!conversion=\@@siconversion]
-
-\def\setupfloatsplitting
- {\dodoubleargument\getparameters[\??si]}
-
-\newif\ifinsidesplitfloat % will become chardef
-
-\newtoks \everysplitfloatsetup
-
-\def\splitfloat
- {\dosingleempty\dosplitfloat}
-
-\ifx\floatcaptionsuffix\undefined \else
- \let\floatcaptionsuffix\empty % will become \splitfloatcaptionsuffix
-\fi
-
-\def\extrasplitfloatlines{0}
-
-\def\dosplitfloat[#1]#2% nog dubbele refs
- {\bgroup
- \global\setfalse\splitfloatdone
- \aftergroup\checksplitfloat
- \insidefloattrue
- \insidesplitfloattrue
- \getparameters[\??si][#1]%
- \resetnumber[\??si]%
- \def\floatcaptionsuffix{\convertednumber[\??si]}%
- \let\extrasplitfloatlines\@@silines
- \the\everysplitfloatsetup
- \def\splitfloatcommand{#2}%
- \global\settrue \onlyonesplitofffloat
- \global\setfalse\somenextplitofffloat
- \dopushsavedfloats
- \@@sibefore
- \let\next} % \bgroup
-
-\def\checksplitfloat
- {\ifconditional\splitfloatdone\else
- \blank{\tttf \getmessage\m!floatblocks{13}\empty}\blank
- \showmessage\m!floatblocks{13}\empty
- \fi}
-
-\settrue \onlyonesplitofffloat
-\setfalse\somenextplitofffloat
-
-%D When \type {inbetween} is made empty instead of the
-%D default \type {\page}, we will get delayed flushing
-%D and text may continue below the graphic.
-%D
-%D \starttyping
-%D \dorecurse{2}{\input tufte }
-%D
-%D \splitfloat[lines=auto,inbetween=]
-%D {\placetable{\dorecurse{5}{test\recurselevel\endgraf}}}
-%D {\bTABLE[split=yes]
-%D \bTR \bTD 11 \eTD \bTD \input tufte \eTD \eTR
-%D \bTR \bTD 12 \eTD \bTD \input zapf \eTD \eTR
-%D \bTR \bTD 13 \eTD \bTD \input bryson \eTD \eTR
-%D \bTR \bTD 14 \eTD \bTD test \eTD \eTR
-%D \bTR \bTD 21 \eTD \bTD \input tufte \eTD \eTR
-%D \bTR \bTD 22 \eTD \bTD \input zapf \eTD \eTR
-%D \bTR \bTD 23 \eTD \bTD \input bryson \eTD \eTR
-%D \bTR \bTD 24 \eTD \bTD test \eTD \eTR
-%D \bTR \bTD 31 \eTD \bTD \input tufte \eTD \eTR
-%D \bTR \bTD 32 \eTD \bTD \input zapf \eTD \eTR
-%D \bTR \bTD 33 \eTD \bTD \input bryson \eTD \eTR
-%D \bTR \bTD 34 \eTD \bTD test \eTD \eTR
-%D \eTABLE}
-%D
-%D \dorecurse{10}{\input tufte }
-%D \stoptyping
-
-\newconditional\splitfloatdone
-
-\def\dodowithsplitofffloat
- {\dowithnextbox
- {\forgetall
- \dontcomplain
- \global\settrue\splitfloatdone
- \chardef\nodelocationmode\zerocount % bypass auto-renumbering
- \incrementnumber[\??si]%
- \ifcase\rawnumber[\??si]\or \ifconditional\onlyonesplitofffloat
- \let\floatcaptionsuffix\empty
- \fi \fi
- \bgroup
- \ifconditional\somenextplitofffloat
- \settrue\retainfloatnumber
-\notesenabledfalse % best here, experimental, brrr; test with note in caption
- \else
- \setfalse\retainfloatnumber
- \fi
- \splitfloatcommand{\box\nextbox}%
- \egroup
- \ifconditional\somenextplitofffloat
- \doifelsenothing\@@siinbetween
- {\ifconditional\splitfloatfirstdone\else\page\fi}
- \@@siinbetween
- \else
- \@@siafter
- \dopopsavedfloats
- \doflushsavedfloats
- \fi
- \global\settrue\splitfloatfirstdone}%
- \vbox}
-
-\def\nodowithsplitofffloat
- {\dowithnextbox
- {\forgetall
- \dontcomplain
- \box\nextbox % maybe an option to unvbox
- \global\settrue\splitfloatfirstdone}%
- \vbox}
-
-\def\dochecksplitofffloat#1% box
- {\ifinsidesplitfloat
- \ifdim\ht#1=\zeropoint
- \global\setfalse\somenextplitofffloat
- \else
- \global\settrue \somenextplitofffloat
- \global\setfalse\onlyonesplitofffloat
- \fi
- \fi}
-
-\def\analyzesplitfloatcaption#1% depends on page-flt
- {\doif\extrasplitfloatlines\v!auto
- {\bgroup
- \settrue\retainfloatnumber
- \chardef\nodelocationmode\zerocount
- \forcelocalfloats
- \setuplocalfloats[\c!before=,\c!after=,\c!inbetween=]%
- \splitfloatcommand{\hbox to \wd#1{\strut}}% dummy line
- \setbox\scratchbox\vbox{\flushlocalfloats}%
- \getnoflines{\ht\scratchbox}%
- \resetlocalfloats
- \advance\noflines\minusone % compensate dummy line
- \expanded{\egroup\noexpand\edef\noexpand\extrasplitfloatlines{\the\noflines}}}}
-
-% \def\analyzesplitfloatcaption#1%
-% {\edef\extrasplitfloatlines{11}}
-
-\def\dowithsplitofffloat % nextbox
- {\ifinsidesplitfloat
- \expandafter\dodowithsplitofffloat
- \else
- \expandafter\nodowithsplitofffloat
- \fi}
-
-\def\doifnotinsidesplitfloat
- {\ifinsidesplitfloat\expandafter\gobbleoneargument\fi}
-
-%D Some defaults:
-
-\setupfloatsplitting
- [\c!conversion=\v!character, % \v!romannumerals
- \c!lines=3,
- \c!before=,
- \c!inbetween=\page,
- \c!after=]
-
-%D Table splitter, on top of previous code:
-
-\newbox\tsplitcontent
-\newbox\tsplitresult
-\newbox\tsplithead
-\newbox\tsplitnext
-\newbox\tsplittail
-
-\def\resettsplit{% only \def's starting a a new line are seen by the dep checker
- \def\tsplitminimumfreelines{0}%
- \def\tsplitminimumfreespace{0pt}%
- \setbox\tsplitcontent \vbox{}%
- \setbox\tsplitresult \vbox{}%
- \setbox\tsplithead \vbox{}%
- \setbox\tsplitnext \vbox{}%
- \setbox\tsplittail \vbox{}%
- \let\tsplitbeforeresult\donothing
- \let\tsplitafterresult \donothing
- \let\tsplitinbetween \donothing
- \let\tsplitbefore \donothing
- \let\tsplitafter \donothing
- \let\postprocesstsplit \donothing
-}
-
-\resettsplit
-
-% todo: keep tail to rest, so we need a lookahead
-
-\newconditional\splitfloatfirstdone
-
-\def\handletsplit
- {\analyzesplitfloatcaption\tsplitcontent
- \global\setfalse\splitfloatfirstdone
- \testpagesync % new, sync, but still tricky
- [\tsplitminimumfreelines]
- [\dimexpr\tsplitminimumfreespace+\extrasplitfloatlines\lineheight\relax]%
- \setbox\scratchbox\vbox{\tsplitinbetween}%
- \edef\tsplitinbetweenheight{\the\htdp\scratchbox}% etex
- \!!doneafalse
- \doloop
- {\ifinsidecolumns
- % brrr, assumes empty columns
- \global\setfalse\splitfloatfirstdone
- \scratchdimen\textheight
- \!!donectrue
- \else
- \ifconditional\splitfloatfirstdone
- \scratchdimen\textheight
- \!!donectrue
- \else\ifdim\pagegoal<\maxdimen
- \scratchdimen\dimexpr\pagegoal-\pagetotal\relax
- \!!donecfalse
- \else
- \scratchdimen\textheight
- \!!donectrue
- \fi\fi
- \fi
- \scratchdimen\dimexpr\scratchdimen-\tsplitinbetweenheight-\tsplitminimumfreespace-\extrasplitfloatlines\lineheight\relax
- \ifdim\htdp\tsplittail>\zeropoint
- \advance\scratchdimen-\htdp\tsplittail
- \fi
- \setbox\tsplitresult\vbox
- {\ifdim\ht\tsplithead>\zeropoint
- \unvcopy\tsplithead
- \tsplitinbetween
- \fi}%
- \if!!donea\else\ifdim\ht\tsplitnext>\zeropoint
- \setbox\tsplithead\box\tsplitnext
- \fi\fi
- \!!doneatrue
- \ifdim\ht\tsplitresult>\zeropoint
- \!!donedtrue % table head
- \else
- \!!donedfalse % no tablehead
- \fi
- \splittopskip\zeropoint
- \doloop
- {\setbox\scratchbox\vsplit\tsplitcontent to \onepoint % \lineheight
- \setbox\scratchbox\vbox{\unvbox\scratchbox}%
- \ifdim\dimexpr\scratchdimen-\htdp\scratchbox-\htdp\tsplitresult\relax>\zeropoint
- \setbox\tsplitresult\vbox
- {\unvbox\tsplitresult
- \tsplitinbetween
- \unvbox\scratchbox}%
- \ifvoid\tsplitcontent \exitloop \fi
- \else\if!!doned
- % we only have a tablehead so far
- \setbox\tsplitresult\vbox{\unvbox\tsplitresult\unvbox\scratchbox}%
- \exitloop
- \else\if!!donec
- % we have text height available, but the (one) cell is too
- % large to fit, so, in order to avoid loops/deadcycles we do:
- \setbox\tsplitresult\vbox
- {\unvbox\tsplitresult
- \tsplitinbetween
- \unvbox\scratchbox}%
- \exitloop
- \else
- \setbox\tsplitcontent\vbox
- {\unvbox\scratchbox
- \tsplitinbetween
- \ifvoid\tsplitcontent\else\unvbox\tsplitcontent\fi}%
- \exitloop
- \fi\fi\fi
- \!!donedfalse
- \!!donecfalse}%
- \postprocesstsplit
- \dochecksplitofffloat\tsplitcontent
- \ifvoid\tsplitcontent
- \setbox\tsplitresult\vbox
- {\unvbox\tsplitresult
- \tsplitinbetween
- \unvcopy\tsplittail}%
- \dowithsplitofffloat{\tsplitbeforeresult\box\tsplitresult\tsplitafterresult}%
- \doifnotinsidesplitfloat\tsplitafter
- \endgraf
- \exitloop
- \else
- % hack
- \ifdim\pagegoal<\maxdimen
- \global\pagegoal\dimexpr\pagegoal+\lineheight\relax % etex
- \fi
- % brrr
- \ifdim\ht\tsplitresult>\zeropoint
- \setbox\tsplitresult\vbox
- {\unvbox\tsplitresult
- \tsplitinbetween
- \unvcopy\tsplittail}%
- \dowithsplitofffloat{\tsplitbeforeresult\box\tsplitresult\tsplitafterresult}%
- \doifnotinsidesplitfloat\tsplitafter
- \endgraf
- \fi
- \ifinsidecolumns
- \doifnotinsidesplitfloat\goodbreak
- \else
- \doifnotinsidesplitfloat\page
- \fi
- \fi}%
- \global\setfalse\splitfloatfirstdone} % we can use this one for tests
-
-\protect \endinput
-
-% test cases
-
-% \setupTABLE[split=repeat]
-%
-% \input tufte \endgraf
-% \splitfloat[lines=11]
-% {\placetable{\dorecurse{10}{test\recurselevel\endgraf}}}
-% {\bTABLE\dorecurse{100}{\bTR \bTD test \eTD \eTR}\eTABLE}
-% \input tufte \page
-%
-% \input tufte \endgraf
-% \splitfloat[lines=0]
-% {}
-% {\bTABLE\dorecurse{100}{\bTR \bTD test \eTD \eTR}\eTABLE}
-% \input tufte \endgraf \page
-%
-% \input tufte \endgraf
-% \bTABLE\dorecurse{100}{\bTR \bTD test \eTD \eTR}\eTABLE
-% \input tufte \page
-
-% \setuptabulate[split=yes]
-%
-% \input tufte \endgraf
-% \splitfloat[lines=11]
-% {\placetable{\dorecurse{10}{test\recurselevel\endgraf}}}
-% {\starttabulate\dorecurse{200}{\NC test \NC test \NC \NR}\stoptabulate}
-% \input tufte \page
-%
-% \input tufte \endgraf
-% \splitfloat[lines=0]
-% {}
-% {\starttabulate\dorecurse{200}{\NC test \NC test \NC \NR}\stoptabulate}
-% \input tufte \page
-%
-% \input tufte \endgraf
-% \starttabulate\dorecurse{200}{\NC test \NC test \NC \NR}\stoptabulate
-% \input tufte \page
-
-% \setuptables[split=yes]
-%
-% \newtoks\TestToks
-%
-% \TestToks\emptytoks
-% \appendtoks\starttablehead\to\TestToks
-% \dorecurse{3}{\appendtoks\VL head \VL head \VL \SR\to\TestToks}
-% \appendtoks\stoptablehead\to\TestToks
-% \appendtoks\starttabletail\to\TestToks
-% \dorecurse{3}{\appendtoks\VL tail \VL tail \VL \SR\to\TestToks}
-% \appendtoks\stoptabletail\to\TestToks
-% \appendtoks\starttables[|c|c|]\to\TestToks
-% \dorecurse{100}{\appendtoks\VL test \VL test \VL \SR\to\TestToks}
-% \appendtoks\stoptables\to\TestToks
-%
-% \input tufte \endgraf
-% \splitfloat[lines=auto] % [lines=11]
-% {\placetable{\dorecurse{10}{test\recurselevel\endgraf}}}
-% {\the\TestToks}
-% \input tufte \page
-%
-% \input tufte \endgraf
-% \splitfloat[lines=0]
-% {}
-% {\the\TestToks}
-% \input tufte \page
-%
-% \input tufte \endgraf
-% \the\TestToks
-% \input tufte \page
-%
-% multiple floats
-%
-% \starttext
-% \dorecurse{3}{\input tufte } \endgraf
-% \dorecurse{5}{\placefigure{}{\framed[height=.5\textheight]{}}}
-% \splitfloat[lines=auto,inbetween=]
-% {\placetable{\dorecurse{5}{test\recurselevel\endgraf}}}
-% {\bTABLE[split=yes]
-% \bTR \bTD 11 \eTD \bTD \input tufte \eTD \eTR
-% \bTR \bTD 12 \eTD \bTD \input zapf \eTD \eTR
-% \bTR \bTD 13 \eTD \bTD \input bryson \eTD \eTR
-% \bTR \bTD 14 \eTD \bTD test \eTD \eTR
-% \bTR \bTD 21 \eTD \bTD \input tufte \eTD \eTR
-% \bTR \bTD 22 \eTD \bTD \input zapf \eTD \eTR
-% \bTR \bTD 23 \eTD \bTD \input bryson \eTD \eTR
-% \bTR \bTD 24 \eTD \bTD test \eTD \eTR
-% \bTR \bTD 31 \eTD \bTD \input tufte \eTD \eTR
-% \bTR \bTD 32 \eTD \bTD \input zapf \eTD \eTR
-% \bTR \bTD 33 \eTD \bTD \input bryson \eTD \eTR
-% \bTR \bTD 34 \eTD \bTD test \eTD \eTR
-% \eTABLE}
-% \dorecurse{10}{\input tufte }
-% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkii/thrd-pic.mkii b/Master/texmf-dist/tex/context/base/mkii/thrd-pic.mkii
deleted file mode 100644
index 3c25d8a81d1..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/thrd-pic.mkii
+++ /dev/null
@@ -1,3694 +0,0 @@
-% Since this file is not available in every distribution, we
-% have copied the original in this file. The manuals to
-% Wichura's PiCTeX and TaBlE packages are not available on
-% line and are distributed by respectively the TeX Users Group
-% and Personal TeX Inc.
-
-% We've patched this file for catcode ! because in luatex we use
-% catcode tables and using unprotect/protect is cleaner.
-
-% This is PiCTeX, Version 1.1 9/21/87
-
-% CAVEAT: The PiCTeX manual often has a more lucid explanation
-% of any given topic than you will find in the internal documentation
-% of the macros.
-
-% PiCTeX's commands can be classified into two groups: (1) public (or
-% external), and (2) private (or internal). The public macros are
-% discussed at length in the manual. The only discussion of the private
-% macros is the internal documentation. The private macros all have
-% names beginning with an exclamation point (!) of category code 11.
-% Since in normal usage "!" has category code 12, these macros can't
-% be accessed or modified by the general user.
-
-% The macros are organized into thematically related groups. For example,
-% the macros dealing with dots & dashes are all in the DASHPATTERN group.
-% The table below shows which macros are in which groups. The table
-% covers all public macros, and many (but not all) of PiCTeX's upper level
-% private macros. Following the table, the various groups are listed
-% in the order in which they appear in the table.
-
-% *********************** TABLE OF GROUPS OF MACROS **********************
-
-% HACKS: Utility macros
-% \PiC
-% \PiCTeX
-% \placevalueinpts
-% \!!loop
-% \!cfor
-% \!copylist
-% \!ecfor
-% \!etfor
-% \!getnext
-% \!getnextvalueof
-% \!ifempty
-% \!ifnextchar
-% \!leftappend
-% \!listaddon
-% \!loop
-% \!lop
-% \!mlap
-% \!not
-% \!removept
-% \!rightappend
-% \!tfor
-% \!vmlap
-% \!wlet
-
-% ALLOCATION: Allocates registers
-
-% AREAS: Deals with plot areas
-% \axis
-% \grid
-% \invisibleaxes
-% \normalgraphs
-% \plotheading
-% \setplotarea
-% \visibleaxes
-
-% ARROWS: Draws arrows
-% \arrow
-% \betweenarrows
-
-% BARS: Draws bars
-% \putbar
-% \setbars
-
-% BOXES: Draws rectangles
-% \frame
-% \putrectangle
-% \rectangle
-% \shaderectangleson
-% \shaderectanglesoff
-
-% CURVES: Upper level plot commands
-% \hshade
-% \plot
-% \sethistograms
-% \setlinear
-% \setquadratic
-% \vshade
-
-% DASHPATTERNS: Sets up dash patterns
-% \findlength
-% \setdashes
-% \setdashesnear
-% \setdashpattern
-% \setdots
-% \setdotsnear
-% \setsolid
-% \!dashingoff
-% \!dashingon
-
-% DIVISION: Does long division of dimension registers
-% \Divide
-% \!divide
-
-% ELLIPSES: Draws ellipses and circles
-% \circulararc
-% \ellipticalarc
-
-% RULES: Draws rules, i.e., horizontal & vertical lines
-% \putrule
-% \!putdashedhline
-% \!putdashedvline
-% \!puthline
-% \!putsolidhline
-% \!putsolidvline
-% \!putvline
-
-% LINEAR ARC: Draws straight lines -- solid and dashed
-% \inboundscheckoff
-% \inboundscheckon
-% \!advancedashing
-% \!drawlinearsegment
-% \!initinboundscheck
-% \!linearsolid
-% \!lineardashed
-% \!ljoin
-% \!plotifinbounds
-% \!start
-
-% LOGTEN: Log_10 function
-% \!logten
-
-% PICTURES: Basic setups for PiCtures; \put commands
-% \accountingoff
-% \accountingon
-% \beginpicture
-% \endpicture
-% \endpicturesave
-% \lines
-% \multiput
-% \put
-% \setcoordinatemode
-% \setcoordinatesystem
-% \setdimensionmode
-% \stack
-% \Lines
-% \Xdistance
-% \Ydistance
-% \!dimenput
-% \!ifcoordmode
-% \!ifdimenmode
-% \!setcoordmode
-% \!setdimenmode
-% \!setputobject
-
-% PLOTTING: Things to do with plotting
-% \dontsavelinesandcurves
-% \replot
-% \savelinesandcurves
-% \setplotsymbol
-% \writesavefile
-% \!plot
-
-% PYTHAGORAS: Euclidean distance function
-% \placehypotenuse
-% \!Pythag
-
-% QUADRATIC ARC: Draws a quadratic arc
-% \!qjoin
-
-% ROTATIONS: Handles rotations
-% \startrotation
-% \stoprotation
-% \!rotateaboutpivot
-% \!rotateonly
-
-% SHADING: Handles shading
-% \setshadegrid
-% \setshadesymbol
-% \!lshade
-% \!qshade
-% \!starthshade
-% \!startvshade
-
-% TICKS: Draws ticks on graphs
-% \gridlines
-% \loggedticks
-% \nogridlines
-% \ticksin
-% \ticksout
-% \unloggesticks
-
-% ***************** END OF TABLE OF GROUPS OF MACROS ********************
-
-
-% \catcode`!=11 % ***** THIS MUST NEVER BE OMITTED
-
-\unprotect
-
-% *******************************
-% *** HACKS (Utility macros) ***
-% *******************************
-
-% ** User commands
-% ** \PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC}
-% ** \PiCTeX{\PiC\kern-.11em\TeX}
-% ** \placevalueinpts of <DIMENSION REGISTER> in {CONTROL SEQUENCE}
-
-% ** Internal commands
-% ** \!ifnextchar{CHARACTER}{TRUE ACTION}{FALSE ACTION}
-% ** \!tfor NAME := LIST \do {BODY}
-% ** \!etfor NAME:= LIST \do {BODY}
-% ** \!cfor NAME := LIST \do {BODY}
-% ** \!ecfor NAME:= LIST \do {BODY}
-% ** \!ifempty{MACRO}{TRUE ACTION}{FALSE ACTION}
-% ** \!getnext\\ITEMfrom\LIST
-% ** \!getnextvalueof\DIMEN\from\LIST
-% ** \!copylist\LISTMACRO_A\to\LISTMACRO_B
-% ** \!wlet\CONTROL_SEQUENCE_A=\CONTROL_SEQUENCE_B
-% ** \!listaddon ITEM LIST
-% ** \!rightappendITEM\withCS\to\LISTMACRO
-% ** \!leftappendITEM\withCS\to\LISTMACRO
-% ** \!lop\LISTMACRO\to\ITEM
-% ** \!loop ... repeat
-% ** \!!loop ... repeat
-% ** \!removept{DIMENSION REGISTER}{CONTROL SEQUENCE}
-% ** \!mlap{...}
-% ** \!vmlap{...}
-% ** \!not{TEK if-CONDITION}
-
-% ** First, here are the the PiCTeX logo, and the syllable PiC:
-\def\PiC{P\kern-.12em\lower.5ex\hbox{I}\kern-.075emC}
-\def\PiCTeX{\PiC\kern-.11em\TeX}
-
-% ** The following macro expands to parameter #2 or parameter #3 according to
-% ** whether the next non-blank character following the macro is or is not #1.
-% ** Blanks following the macro are gobbled.
-\def\!ifnextchar#1#2#3{%
- \let\!testchar=#1%
- \def\!first{#2}%
- \def\!second{#3}%
- \futurelet\!nextchar\!testnext}
-\def\!testnext{%
- \ifx \!nextchar \!spacetoken
- \let\!next=\!skipspacetestagain
- \else
- \ifx \!nextchar \!testchar
- \let\!next=\!first
- \else
- \let\!next=\!second
- \fi
- \fi
- \!next}
-\def\\{\!skipspacetestagain}
- \expandafter\def\\ {\futurelet\!nextchar\!testnext}
-\def\\{\let\!spacetoken= } \\ % ** set \spacetoken to a space token
-
-
-% ** Borrow the "tfor" macro from Latex:
-% ** \!tfor NAME := LIST \do {BODY}
-% ** if, before expansion, LIST = T1 ... Tn, where each Ti is a token
-% ** or {...}, then executes BODY n times, with NAME = Ti on the
-% ** i-th iteration. Works for n=0.
-\def\!tfor#1:=#2\do#3{%
- \edef\!fortemp{#2}%
- \ifx\!fortemp\!empty
- \else
- \!tforloop#2\!nil\!nil\!!#1{#3}%
- \fi}
-\def\!tforloop#1#2\!!#3#4{%
- \def#3{#1}%
- \ifx #3\!nnil
- \let\!nextwhile=\!fornoop
- \else
- #4\relax
- \let\!nextwhile=\!tforloop
- \fi
- \!nextwhile#2\!!#3{#4}}
-
-
-% ** \!etfor NAME:= LIST\do {BODY}
-% ** This is like \!cfor, but LIST is any balanced token list whose complete
-% ** expansion has the form T1 ... Tn
-\def\!etfor#1:=#2\do#3{%
- \def\!!tfor{\!tfor#1:=}%
- \edef\!!!tfor{#2}%
- \expandafter\!!tfor\!!!tfor\do{#3}}
-
-
-% ** modify the Latex \tfor (token-for) loop to a \cfor (comma-for) loop.
-% ** \!cfor NAME := LIST \do {BODY}
-% ** if, before expansion, LIST = a1,a2,...an, then executes BODY n times,
-% ** with NAME = ai on the i-th iteration. Works for n=0.
-\def\!cfor#1:=#2\do#3{%
- \edef\!fortemp{#2}%
- \ifx\!fortemp\!empty
- \else
- \!cforloop#2,\!nil,\!nil\!!#1{#3}%
- \fi}
-\def\!cforloop#1,#2\!!#3#4{%
- \def#3{#1}%
- \ifx #3\!nnil
- \let\!nextwhile=\!fornoop
- \else
- #4\relax
- \let\!nextwhile=\!cforloop
- \fi
- \!nextwhile#2\!!#3{#4}}
-
-
-% ** \!ecfor NAME:= LIST\do {BODY}
-% ** This is like \!cfor, but LIST is any balanced token list whose complete
-% ** expansion has the form a1,a2,...,an.
-\def\!ecfor#1:=#2\do#3{%
- \def\!!cfor{\!cfor#1:=}%
- \edef\!!!cfor{#2}%
- \expandafter\!!cfor\!!!cfor\do{#3}}
-
-
-\def\!empty{}
-\def\!nnil{\!nil}
-\def\!fornoop#1\!!#2#3{}
-
-
-% ** \!ifempty{ARG}{TRUE ACTION}{FALSE ACTION}
-\def\!ifempty#1#2#3{%
- \edef\!emptyarg{#1}%
- \ifx\!emptyarg\!empty
- #2%
- \else
- #3%
- \fi}
-
-% ** \!getnext\\ITEMfrom\LIST
-% ** \LIST has the form \\{item1}\\{item2}\\{item3}...\\{itemk}
-% ** This routine sets \ITEM to item1, and cycles \LIST to
-% ** \\{item2}\\{item3}...\\{itemk}\\{item1}
-\def\!getnext#1\from#2{%
- \expandafter\!gnext#2\!#1#2}%
-\def\!gnext\\#1#2\!#3#4{%
- \def#3{#1}%
- \def#4{#2\\{#1}}%
- \ignorespaces}
-
-
-% ** \!getnextvalueof\DIMEN\from\LIST
-% ** Similar to !getnext.
-% ** \LIST has the form \\{dimen1}\\{dimen2}\\{dimen3} ...
-% ** \DIMEN is a dimension register
-% ** Works also for counts
-%
-\def\!getnextvalueof#1\from#2{%
- \expandafter\!gnextv#2\!#1#2}%
-\def\!gnextv\\#1#2\!#3#4{%
- #3=#1%
- \def#4{#2\\{#1}}%
- \ignorespaces}
-
-
-% ** \!copylist\LISTMACROA\to\LISTMACROB
-% ** makes the replacement text of LISTMACRO B identical to that of
-% ** list macro A.
-\def\!copylist#1\to#2{%
- \expandafter\!!copylist#1\!#2}
-\def\!!copylist#1\!#2{%
- \def#2{#1}\ignorespaces}
-
-
-% ** \!wlet\CSA=\CSB
-% ** lets control sequence \CSB = control sequence \CSA, and writes a
-% ** message to that effect in the log file using plain TEK's \wlog
-\def\!wlet#1=#2{%
- \let#1=#2
- \wlog{\string#1=\string#2}}
-
-% ** \!listaddon ITEM LIST
-% ** LIST <-- LIST \\ ITEM
-\def\!listaddon#1#2{%
- \expandafter\!!listaddon#2\!{#1}#2}
-\def\!!listaddon#1\!#2#3{%
- \def#3{#1\\#2}}
-
-% ** \!rightappendITEM\to\LISTMACRO
-% ** \LISTMACRO --> \LISTMACRO\\{ITEM}
-%\def\!rightappend#1\to#2{\expandafter\!!rightappend#2\!{#1}#2}
-%\def\!!rightappend#1\!#2#3{\def#3{#1\\{#2}}}
-
-
-% ** \!rightappendITEM\withCS\to\LISTMACRO
-% ** \LISTMACRO --> \LISTMACRO||CS||{ITEM}
-\def\!rightappend#1\withCS#2\to#3{\expandafter\!!rightappend#3\!#2{#1}#3}
-\def\!!rightappend#1\!#2#3#4{\def#4{#1#2{#3}}}
-
-
-% ** \!leftappendITEM\withCS\to\LISTMACRO
-% ** \LISTMACRO --> CS||{ITEM}||\LISTMACRO
-\def\!leftappend#1\withCS#2\to#3{\expandafter\!!leftappend#3\!#2{#1}#3}
-\def\!!leftappend#1\!#2#3#4{\def#4{#2{#3}#1}}
-
-
-% ** \!lop\LISTMACRO\to\ITEM
-% ** \\{item1}\\{item2}\\{item3} ... --> \\{item2}\\{item3} ...
-% ** item1 --> \ITEM
-\def\!lop#1\to#2{\expandafter\!!lop#1\!#1#2}
-\def\!!lop\\#1#2\!#3#4{\def#4{#1}\def#3{#2}}
-
-
-% ** \!placeNUMBER\of\LISTMACRO\in\ITEM
-% ** the NUMBERth item of \LISTMACRO --> replacement text of \ITEM
-%\def\!place#1\of#2\in#3{\def#3{\outofrange}%
-%{\count0=#1\def\\##1{\advance\count0-1 \ifnum\count0=0 \gdef#3{##1}\fi}#2}}
-
-
-% ** Following code converts a commalist to a list macro, with all items
-% ** fully expanded.
-%\!ecfor\item:=\commalist\do{\expandafter\!rightappend\item\to\list}
-
-
-% ** \!loop ... repeat
-% ** This is exactly like TEX's \loop ... repeat. It can be used in nesting
-% ** two loops, without puting the inner one inside a group.
-\def\!loop#1\repeat{\def\!body{#1}\!iterate}
-\def\!iterate{\!body\let\!next=\!iterate\else\let\!next=\relax\fi\!next}
-
-% ** \!!loop ... repeat
-% ** This is exactly like TEX's \loop ... repeat. It can be used in nesting
-% ** two loops, without puting the inner one inside a group.
-\def\!!loop#1\repeat{\def\!!body{#1}\!!iterate}
-\def\!!iterate{\!!body\let\!!next=\!!iterate\else\let\!!next=\relax\fi\!!next}
-% (\multiput uses \!!loop)
-
-% ** \!removept{DIMENREG}{\CS}
-% ** Defines the control sequence CS to be the value (in points) in the
-% ** dimension register DIMENREG (but without the "pt" TEK usually adds)
-% ** E.g., after \dimen0=12.3pt \!removept\dimen0\A, \A expands to 12.3
-\def\!removept#1#2{\edef#2{\expandafter\!!removePT\the#1}}
-{\catcode`p=12 \catcode`t=12 \gdef\!!removePT#1pt{#1}}
-
-% ** \pladevalueinpts of <DIMENSION REGISTER> in {CONTROL SEQUENCE}
-\def\placevalueinpts of <#1> in #2 {%
- \!removept{#1}{#2}}
-
-% ** \!mlap{...} \!vmlap{...}
-% ** Center ... in a box of width 0.
-\def\!mlap#1{\hbox to 0pt{\hss#1\hss}}
-\def\!vmlap#1{\vbox to 0pt{\vss#1\vss}}
-
-% ** \!not{TEK if-CONDITION}
-% ** By a TEK if-CONDITION is meant something like
-% ** \ifnum\N<0, or \ifdim\A>\B
-% ** \!not produces an if-condition which is false if the original condition
-% ** is true, and true if the original condition is false.
-\def\!not#1{%
- #1\relax
- \!switchfalse
- \else
- \!switchtrue
- \fi
- \if!switch
- \ignorespaces}
-
-
-% *******************
-% *** ALLOCATIONS ***
-% *******************
-
-% This section allocates all the registers PiCTeX uses. Following
-% each allocation is a string of the form ....N.D...L......... ;
-% the various letters show which sections of PiCTeX make explicit
-% reference to that register, according to the following code:
-
-% H Hacks
-% A Areas
-% W arroWs
-% B Bars
-% X boXes
-% C Curves
-% D Dashpattterns
-% V diVision
-% E Ellipses
-% U rUles
-% L Linear arc
-% G loGten
-% P Pictures
-% O plOtting
-% Y pYthagoras
-% Q Quadratic arc
-% R Rotations
-% S Shading
-% T Ticks
-
-% Turn off messages from TeX's allocation macros
-\let\!!!wlog=\wlog % "\wlog" is defined in plain TeX
-\def\wlog#1{}
-
-\newdimen\headingtoplotskip %.A.................
-\newdimen\linethickness %.A..X....U........T
-\newdimen\longticklength %.A................T
-\newdimen\plotsymbolspacing %......D...L....Q...
-\newdimen\shortticklength %.A................T
-\newdimen\stackleading %.A..........P......
-\newdimen\tickstovaluesleading %.A................T
-\newdimen\totalarclength %......D...L....Q...
-\newdimen\valuestolabelleading %.A.................
-
-\newbox\!boxA %.AW...............T
-\newbox\!boxB %..W................
-\newbox\!picbox %............P......
-\newbox\!plotsymbol %..........L..O.....
-\newbox\!putobject %............PO...S.
-\newbox\!shadesymbol %.................S.
-
-\newcount\!countA %.A....D..UL....Q.ST
-\newcount\!countB %......D..U.....Q.ST
-\newcount\!countC %...............Q..T
-\newcount\!countD %...................
-\newcount\!countE %.............O....T
-\newcount\!countF %.............O....T
-\newcount\!countG %..................T
-\newcount\!fiftypt %.........U.........
-\newcount\!intervalno %..........L....Q...
-\newcount\!npoints %..........L........
-\newcount\!nsegments %.........U.........
-\newcount\!ntemp %............P......
-\newcount\!parity %.................S.
-\newcount\!scalefactor %..................T
-\newcount\!tfs %.......V...........
-\newcount\!tickcase %..................T
-
-\newdimen\!Xleft %............P......
-\newdimen\!Xright %............P......
-\newdimen\!Xsave %.A................T
-\newdimen\!Ybot %............P......
-\newdimen\!Ysave %.A................T
-\newdimen\!Ytop %............P......
-\newdimen\!angle %........E..........
-\newdimen\!arclength %..W......UL....Q...
-\newdimen\!areabloc %.A........L........
-\newdimen\!arealloc %.A........L........
-\newdimen\!arearloc %.A........L........
-\newdimen\!areatloc %.A........L........
-\newdimen\!bshrinkage %.................S.
-\newdimen\!checkbot %..........L........
-\newdimen\!checkleft %..........L........
-\newdimen\!checkright %..........L........
-\newdimen\!checktop %..........L........
-\newdimen\!dimenA %.AW.X.DVEUL..OYQRST
-\newdimen\!dimenB %....X.DVEU...O.QRS.
-\newdimen\!dimenC %..W.X.DVEU......RS.
-\newdimen\!dimenD %..W.X.DVEU....Y.RS.
-\newdimen\!dimenE %..W........G..YQ.S.
-\newdimen\!dimenF %...........G..YQ.S.
-\newdimen\!dimenG %...........G..YQ.S.
-\newdimen\!dimenH %...........G..Y..S.
-\newdimen\!dimenI %...BX.........Y....
-\newdimen\!distacross %..........L....Q...
-\newdimen\!downlength %..........L........
-\newdimen\!dp %.A..X.......P....S.
-\newdimen\!dshade %.................S.
-\newdimen\!dxpos %..W......U..P....S.
-\newdimen\!dxprime %...............Q...
-\newdimen\!dypos %..WB.....U..P......
-\newdimen\!dyprime %...............Q...
-\newdimen\!ht %.A..X.......P....S.
-\newdimen\!leaderlength %......D..U.........
-\newdimen\!lshrinkage %.................S.
-\newdimen\!midarclength %...............Q...
-\newdimen\!offset %.A................T
-\newdimen\!plotheadingoffset %.A.................
-\newdimen\!plotsymbolxshift %..........L..O.....
-\newdimen\!plotsymbolyshift %..........L..O.....
-\newdimen\!plotxorigin %..........L..O.....
-\newdimen\!plotyorigin %..........L..O.....
-\newdimen\!rootten %...........G.......
-\newdimen\!rshrinkage %.................S.
-\newdimen\!shadesymbolxshift %.................S.
-\newdimen\!shadesymbolyshift %.................S.
-\newdimen\!tenAa %...........G.......
-\newdimen\!tenAc %...........G.......
-\newdimen\!tenAe %...........G.......
-\newdimen\!tshrinkage %.................S.
-\newdimen\!uplength %..........L........
-\newdimen\!wd %....X.......P....S.
-\newdimen\!wmax %...............Q...
-\newdimen\!wmin %...............Q...
-\newdimen\!xB %...............Q...
-\newdimen\!xC %...............Q...
-\newdimen\!xE %..W.....E.L....Q.S.
-\newdimen\!xM %..W.....E......Q.S.
-\newdimen\!xS %..W.....E.L....Q.S.
-\newdimen\!xaxislength %.A................T
-\newdimen\!xdiff %..........L........
-\newdimen\!xleft %............P......
-\newdimen\!xloc %..WB.....U.......S.
-\newdimen\!xorigin %.A........L.P....S.
-\newdimen\!xpivot %................R..
-\newdimen\!xpos %..........L.P..Q.ST
-\newdimen\!xprime %...............Q...
-\newdimen\!xright %............P......
-\newdimen\!xshade %.................S.
-\newdimen\!xshift %..W.........PO...S.
-\newdimen\!xtemp %............P......
-\newdimen\!xunit %.AWBX...EUL.P..QRS.
-\newdimen\!xxE %........E..........
-\newdimen\!xxM %........E..........
-\newdimen\!xxS %........E..........
-\newdimen\!xxloc %..WB....EU.........
-\newdimen\!yB %...............Q...
-\newdimen\!yC %...............Q...
-\newdimen\!yE %..W.....E.L....Q...
-\newdimen\!yM %..W.....E......Q...
-\newdimen\!yS %..W.....E.L....Q...
-\newdimen\!yaxislength %.A................T
-\newdimen\!ybot %............P......
-\newdimen\!ydiff %..........L........
-\newdimen\!yloc %..WB.....U.......S.
-\newdimen\!yorigin %.A........L.P....S.
-\newdimen\!ypivot %................R..
-\newdimen\!ypos %..........L.P..Q.ST
-\newdimen\!yprime %...............Q...
-\newdimen\!yshade %.................S.
-\newdimen\!yshift %..W.........PO...S.
-\newdimen\!ytemp %............P......
-\newdimen\!ytop %............P......
-\newdimen\!yunit %.AWBX...EUL.P..QRS.
-\newdimen\!yyE %........E..........
-\newdimen\!yyM %........E..........
-\newdimen\!yyS %........E..........
-\newdimen\!yyloc %..WB....EU.........
-\newdimen\!zpt %.AWBX.DVEULGP.YQ.ST
-
-\newif\if!axisvisible %.A.................
-\newif\if!gridlinestoo %..................T
-\newif\if!keepPO %...................
-\newif\if!placeaxislabel %.A.................
-\newif\if!switch %H..................
-\newif\if!xswitch %.A................T
-
-\newtoks\!axisLaBeL %.A.................
-\newtoks\!keywordtoks %.A.................
-
-\newwrite\!replotfile %.............O.....
-
-\newhelp\!keywordhelp{The keyword mentioned in the error message in unknown.
-Replace NEW KEYWORD in the indicated response by the keyword that
-should have been specified.} %.A.................
-
-% The following commands assign alternate names to some of the
-% above registers. "\!wlet" is defined in Hacks.
-\!wlet\!!origin=\!xM %.A................T
-\!wlet\!!unit=\!uplength %.A................T
-\!wlet\!Lresiduallength=\!dimenG %.........U.........
-\!wlet\!Rresiduallength=\!dimenF %.........U.........
-\!wlet\!axisLength=\!distacross %.A................T
-\!wlet\!axisend=\!ydiff %.A................T
-\!wlet\!axisstart=\!xdiff %.A................T
-\!wlet\!axisxlevel=\!arclength %.A................T
-\!wlet\!axisylevel=\!downlength %.A................T
-\!wlet\!beta=\!dimenE %...............Q...
-\!wlet\!gamma=\!dimenF %...............Q...
-\!wlet\!shadexorigin=\!plotxorigin %.................S.
-\!wlet\!shadeyorigin=\!plotyorigin %.................S.
-\!wlet\!ticklength=\!xS %..................T
-\!wlet\!ticklocation=\!xE %..................T
-\!wlet\!ticklocationincr=\!yE %..................T
-\!wlet\!tickwidth=\!yS %..................T
-\!wlet\!totalleaderlength=\!dimenE %.........U.........
-\!wlet\!xone=\!xprime %....X..............
-\!wlet\!xtwo=\!dxprime %....X..............
-\!wlet\!ySsave=\!yM %...................
-\!wlet\!ybB=\!yB %.................S.
-\!wlet\!ybC=\!yC %.................S.
-\!wlet\!ybE=\!yE %.................S.
-\!wlet\!ybM=\!yM %.................S.
-\!wlet\!ybS=\!yS %.................S.
-\!wlet\!ybpos=\!yyloc %.................S.
-\!wlet\!yone=\!yprime %....X..............
-\!wlet\!ytB=\!xB %.................S.
-\!wlet\!ytC=\!xC %.................S.
-\!wlet\!ytE=\!downlength %.................S.
-\!wlet\!ytM=\!arclength %.................S.
-\!wlet\!ytS=\!distacross %.................S.
-\!wlet\!ytpos=\!xxloc %.................S.
-\!wlet\!ytwo=\!dyprime %....X..............
-
-
-% Initial values for registers
-\!zpt=0pt % static
-\!xunit=1pt
-\!yunit=1pt
-\!arearloc=\!xunit
-\!areatloc=\!yunit
-\!dshade=5pt
-\!leaderlength=24in
-\!tfs=256 % static
-\!wmax=5.3pt % static
-\!wmin=2.7pt % static
-\!xaxislength=\!xunit
-\!xpivot=\!zpt
-\!yaxislength=\!yunit
-\!ypivot=\!zpt
-\plotsymbolspacing=.4pt
- \!dimenA=50pt \!fiftypt=\!dimenA % static
-
-\!rootten=3.162278pt % static
-\!tenAa=8.690286pt % static (A5)
-\!tenAc=2.773839pt % static (A3)
-\!tenAe=2.543275pt % static (A1)
-
-% Initial values for control sequences
-\def\!cosrotationangle{1} %................R..
-\def\!sinrotationangle{0} %................R..
-\def\!xpivotcoord{0} %................R..
-\def\!xref{0} %............P......
-\def\!xshadesave{0} %.................S.
-\def\!ypivotcoord{0} %................R..
-\def\!yref{0} %............P......
-\def\!yshadesave{0} %.................S.
-\def\!zero{0} %..................T
-
-% Reset TeX to report allocations
-\let\wlog=\!!!wlog
-% *************************************
-% *** AREAS: Deals with plot areas ***
-% *************************************
-%
-% ** User commands
-% ** \setplotarea x from LEFT XCOORD to RIGTH XCOORD, y from BOTTOM YCOORD
-% ** to TOP YCOORD
-% ** \axis BOTTOM-LEFT-TOP-RIGHT [SHIFTEDTO xy=COORD] [VISIBLE-INVISIBLE]
-% ** [LABEL {label}] [TICKS] /
-% ** \visibleaxes
-% ** \invisibleaxes
-% ** \plotheading {HEADING}
-% ** \grid {# of columns} {# of rows}
-% ** \normalgraphs
-
-% ** \normalgraphs
-% ** Sets defaults for graph setup. See Subsection 3.4 of manual.
-\def\normalgraphs{%
- \longticklength=.4\baselineskip
- \shortticklength=.25\baselineskip
- \tickstovaluesleading=.25\baselineskip
- \valuestolabelleading=.8\baselineskip
- \linethickness=.4pt
- \stackleading=.17\baselineskip
- \headingtoplotskip=1.5\baselineskip
- \visibleaxes
- \ticksout
- \nogridlines
- \unloggedticks}
-%
-% ** \setplotarea x from LEFT XCOORD to RIGTH XCOORD, y from BOTTOM YCOORD
-% ** to TOP YCOORD
-% ** Reserves space in PICBOX for a rectangular box with the indicated
-% ** coordinates. Must be specified before calls to \axis,
-% ** \grid, \plotheading.
-% ** See Subsection 3.1 of the manual.
-\def\setplotarea x from #1 to #2, y from #3 to #4 {%
- \!arealloc=\!M{#1}\!xunit \advance \!arealloc -\!xorigin
- \!areabloc=\!M{#3}\!yunit \advance \!areabloc -\!yorigin
- \!arearloc=\!M{#2}\!xunit \advance \!arearloc -\!xorigin
- \!areatloc=\!M{#4}\!yunit \advance \!areatloc -\!yorigin
- \!initinboundscheck
- \!xaxislength=\!arearloc \advance\!xaxislength -\!arealloc
- \!yaxislength=\!areatloc \advance\!yaxislength -\!areabloc
- \!plotheadingoffset=\!zpt
- \!dimenput {{\setbox0=\hbox{}\wd0=\!xaxislength\ht0=\!yaxislength\box0}}
- [bl] (\!arealloc,\!areabloc)}
-%
-% ** \visibleaxes, \invisibleaxes
-% ** Switches for setting visibility of subsequent axes.
-% ** See Subsection 3.2 of the manual.
-\def\visibleaxes{%
- \def\!axisvisibility{\!axisvisibletrue}}
-\def\invisibleaxes{%
- \def\!axisvisibility{\!axisvisiblefalse}}
-%
-% ** The next few macros enable the user to fix up an erroneous keyword
-% ** in the \axis command.
-% \newhelp is in ALLOCATIONS
-% \newhelp\!keywordhelp{The keyword mentioned in the error message in unknown.
-% Replace NEW KEYWORD in the indicated response by the keyword that
-% should have been specified.}
-
-\def\!fixkeyword#1{%
- \errhelp=\!keywordhelp
- \errmessage{Unrecognized keyword `#1': \the\!keywordtoks{NEW KEYWORD}'}}
-
-% \newtoks\!keywordtoks In ALLOCATIONS.
-\!keywordtoks={enter `i\fixkeyword}
-
-\def\fixkeyword#1{%
- \!nextkeyword#1 }
-
-% ** \axis BOTTOM-LEFT-TOP-RIGHT [SHIFTEDTO xy=COORD] [VISIBLE-INVISIBLE]
-% ** [LABEL {label}] [TICKS] /
-% ** Exactly one of the keywords BOTTOM, LEFT, TOP, RIGHT must be
-% ** specified. Axis is drawn along the indicated edge of the current
-% ** plot area, shifted if the SHIFTEDTO option is used, visible or
-% ** invisible according the selected option, with an optional LABEL,
-% ** and optional TICKS (see ticks.tex for the options avialabel with
-% ** TICKS). The TICKS option must be the last one specified. The \axis
-% ** MUST be terminated with a / followed by a space.
-% ** See Subsection 3.2 of the manual for more information.
-
-% ** The various options of the \axis command are processed by the
-% ** \!nextkeyword macro defined below. For example,
-% ** `\!nextkeyword shiftedto ' expands to `\!axisshiftedto'.
-\def\axis {%
- \def\!nextkeyword##1 {%
- \expandafter\ifx\csname !axis##1\endcsname \relax
- \def\!next{\!fixkeyword{##1}}%
- \else
- \def\!next{\csname !axis##1\endcsname}%
- \fi
- \!next}%
- \!offset=\!zpt
- \!axisvisibility
- \!placeaxislabelfalse
- \!nextkeyword}
-
-% ** This and the various macros that follow handle the keyword
-% ** specifications on the \axis command
-% ** See Subsection 3.2 of the manual.
-\def\!axisbottom{%
- \!axisylevel=\!areabloc
- \def\!tickxsign{0}%
- \def\!tickysign{-}%
- \def\!axissetup{\!axisxsetup}%
- \def\!axislabeltbrl{t}%
- \!nextkeyword}
-
-\def\!axistop{%
- \!axisylevel=\!areatloc
- \def\!tickxsign{0}%
- \def\!tickysign{+}%
- \def\!axissetup{\!axisxsetup}%
- \def\!axislabeltbrl{b}%
- \!nextkeyword}
-
-\def\!axisleft{%
- \!axisxlevel=\!arealloc
- \def\!tickxsign{-}%
- \def\!tickysign{0}%
- \def\!axissetup{\!axisysetup}%
- \def\!axislabeltbrl{r}%
- \!nextkeyword}
-
-\def\!axisright{%
- \!axisxlevel=\!arearloc
- \def\!tickxsign{+}%
- \def\!tickysign{0}%
- \def\!axissetup{\!axisysetup}%
- \def\!axislabeltbrl{l}%
- \!nextkeyword}
-
-\def\!axisshiftedto#1=#2 {%
- \if 0\!tickxsign
- \!axisylevel=\!M{#2}\!yunit
- \advance\!axisylevel -\!yorigin
- \else
- \!axisxlevel=\!M{#2}\!xunit
- \advance\!axisxlevel -\!xorigin
- \fi
- \!nextkeyword}
-
-\def\!axisvisible{%
- \!axisvisibletrue
- \!nextkeyword}
-
-\def\!axisinvisible{%
- \!axisvisiblefalse
- \!nextkeyword}
-
-\def\!axislabel#1 {%
- \!axisLaBeL={#1}%
- \!placeaxislabeltrue
- \!nextkeyword}
-
-\expandafter\def\csname !axis/\endcsname{%
- \!axissetup % This could done already by "ticks"; if so, now \relax
- \if!placeaxislabel
- \!placeaxislabel
- \fi
- \if +\!tickysign % ** (A "top" axis)
- \!dimenA=\!axisylevel
- \advance\!dimenA \!offset % ** dimA = top of the axis structure
- \advance\!dimenA -\!areatloc % ** dimA = excess over the plot area
- \ifdim \!dimenA>\!plotheadingoffset
- \!plotheadingoffset=\!dimenA % ** Greatest excess over the plot area
- \fi
- \fi}
-
-% ** \grid {c} {r}
-% ** Partitions the plot area into c columns and r rows; see Subsection 3.3
-% ** of the manual.
-% ** (Other grid patterns can be drawn with the TICKS option of the \axis
-% ** command.
-\def\grid #1 #2 {%
- \!countA=#1\advance\!countA 1
- \axis bottom invisible ticks length <\!zpt> andacross quantity {\!countA} /
- \!countA=#2\advance\!countA 1
- \axis left invisible ticks length <\!zpt> andacross quantity {\!countA} / }
-
-% ** \plotheading{HEADING}
-% ** Places HEADING centered above the top of the plotarea (and above
-% ** any top axis ticks marks, tick labels, and axis label); see
-% ** Subsection 3.3 of the manual.
-\def\plotheading#1 {%
- \advance\!plotheadingoffset \headingtoplotskip
- \!dimenput {#1} [B] <.5\!xaxislength,\!plotheadingoffset>
- (\!arealloc,\!areatloc)}
-
-% ** From here on, the routines are internal.
-\def\!axisxsetup{%
- \!axisxlevel=\!arealloc
- \!axisstart=\!arealloc
- \!axisend=\!arearloc
- \!axisLength=\!xaxislength
- \!!origin=\!xorigin
- \!!unit=\!xunit
- \!xswitchtrue
- \if!axisvisible
- \!makeaxis
- \fi}
-
-\def\!axisysetup{%
- \!axisylevel=\!areabloc
- \!axisstart=\!areabloc
- \!axisend=\!areatloc
- \!axisLength=\!yaxislength
- \!!origin=\!yorigin
- \!!unit=\!yunit
- \!xswitchfalse
- \if!axisvisible
- \!makeaxis
- \fi}
-
-\def\!makeaxis{%
- \setbox\!boxA=\hbox{% (Make a pseudo-y[x] tick for an x[y]-axis)
- \beginpicture
- \!setdimenmode
- \setcoordinatesystem point at {\!zpt} {\!zpt}
- \putrule from {\!zpt} {\!zpt} to
- {\!tickysign\!tickysign\!axisLength}
- {\!tickxsign\!tickxsign\!axisLength}
- \endpicturesave <\!Xsave,\!Ysave>}%
- \wd\!boxA=\!zpt
- \!placetick\!axisstart}
-
-\def\!placeaxislabel{%
- \advance\!offset \valuestolabelleading
- \if!xswitch
- \!dimenput {\the\!axisLaBeL} [\!axislabeltbrl]
- <.5\!axisLength,\!tickysign\!offset> (\!axisxlevel,\!axisylevel)
- \advance\!offset \!dp % ** advance offset by the "tallness"
- \advance\!offset \!ht % ** of the label
- \else
- \!dimenput {\the\!axisLaBeL} [\!axislabeltbrl]
- <\!tickxsign\!offset,.5\!axisLength> (\!axisxlevel,\!axisylevel)
- \fi
- \!axisLaBeL={}}
-
-
-% *******************************
-% *** ARROWS (Draws arrows) ***
-% *******************************
-%
-% ** User commands
-% ** \arrow <ARROW HEAD LENGTH> [MID FRACTION, BASE FRACTION]
-% ** [<XSHIFT,YSHIFT>] from XFROM YFROM to XTO YTO
-% ** \betweenarrows {TEXT} [orientation & shift] from XFROM YFROM to XTO YTO
-
-% ** \arrow <ARROW HEAD LENGTH> [MID FRACTION, BASE FRACTION]
-% ** [<XSHIFT,YSHIFT>] from XFROM YFROM to XTO YTO
-% ** Draws an arrow from (XFROM,YFROM) to (XTO,YTO). The arrow head
-% ** is constructed two quadratic arcs, which extend back a distance
-% ** ARROW HEAD LENGTH (a dimension) on both sides of the arrow shaft.
-% ** All the way back the arcs are a distance BASE FRACTION*ARROW HEAD
-% ** LENGTH apart, while half-way back they are a distance MID FRACTION*
-% ** ARROW HEAD LENGTH apart. <XSHIFT,YSHIFT> is optional, and has
-% ** its usual interpreation. See Subsection 5.4 of the manual.
-
-\def\arrow <#1> [#2,#3]{%
- \!ifnextchar<{\!arrow{#1}{#2}{#3}}{\!arrow{#1}{#2}{#3}<\!zpt,\!zpt> }}
-
-\def\!arrow#1#2#3<#4,#5> from #6 #7 to #8 #9 {%
-%
-% ** convert to dimensions
- \!xloc=\!M{#8}\!xunit
- \!yloc=\!M{#9}\!yunit
- \!dxpos=\!xloc \!dimenA=\!M{#6}\!xunit \advance \!dxpos -\!dimenA
- \!dypos=\!yloc \!dimenA=\!M{#7}\!yunit \advance \!dypos -\!dimenA
- \let\!MAH=\!M% ** save current c/d mode
- \!setdimenmode% ** go into dimension mode
-%
- \!xshift=#4\relax \!yshift=#5\relax% ** pick up shift
- \!reverserotateonly\!xshift\!yshift% ** back rotate shift
- \advance\!xshift\!xloc \advance\!yshift\!yloc
-%
-% ** draw shaft of arrow
- \!xS=-\!dxpos \advance\!xS\!xshift
- \!yS=-\!dypos \advance\!yS\!yshift
- \!start (\!xS,\!yS)
- \!ljoin (\!xshift,\!yshift)
-%
-% ** find 32*cosine and 32*sine of angle of rotation
- \!Pythag\!dxpos\!dypos\!arclength
- \!divide\!dxpos\!arclength\!dxpos
- \!dxpos=32\!dxpos \!removept\!dxpos\!!cos
- \!divide\!dypos\!arclength\!dypos
- \!dypos=32\!dypos \!removept\!dypos\!!sin
-%
-% ** construct arrowhead
- \!halfhead{#1}{#2}{#3}% ** draw half of arrow head
- \!halfhead{#1}{-#2}{-#3}% ** draw other half
-%
- \let\!M=\!MAH% ** restore old c/d mode
- \ignorespaces}
-%
-% ** draw half of arrow head
- \def\!halfhead#1#2#3{%
- \!dimenC=-#1%
- \divide \!dimenC 2 % ** half way back
- \!dimenD=#2\!dimenC% ** half the mid width
- \!rotate(\!dimenC,\!dimenD)by(\!!cos,\!!sin)to(\!xM,\!yM)
- \!dimenC=-#1% ** all the way back
- \!dimenD=#3\!dimenC
- \!dimenD=.5\!dimenD% ** half the full width
- \!rotate(\!dimenC,\!dimenD)by(\!!cos,\!!sin)to(\!xE,\!yE)
- \!start (\!xshift,\!yshift)
- \advance\!xM\!xshift \advance\!yM\!yshift
- \advance\!xE\!xshift \advance\!yE\!yshift
- \!qjoin (\!xM,\!yM) (\!xE,\!yE)
- \ignorespaces}
-
-
-% ** \betweenarrows {TEXT} [orientation & shift] from XFROM YFROM to XTO YTO
-% ** Makes things like <--- text --->, using arrow heads from TeX's fonts.
-% ** See Subsection 5.4 of the manual.
-\def\betweenarrows #1#2 from #3 #4 to #5 #6 {%
- \!xloc=\!M{#3}\!xunit \!xxloc=\!M{#5}\!xunit%
- \!yloc=\!M{#4}\!yunit \!yyloc=\!M{#6}\!yunit%
- \!dxpos=\!xxloc \advance\!dxpos by -\!xloc
- \!dypos=\!yyloc \advance\!dypos by -\!yloc
- \advance\!xloc .5\!dxpos
- \advance\!yloc .5\!dypos
-%
- \let\!MBA=\!M% ** save current coord\dimen mode
- \!setdimenmode% ** express locations in dimens
- \ifdim\!dypos=\!zpt
- \ifdim\!dxpos<\!zpt \!dxpos=-\!dxpos \fi
- \put {\!lrarrows{\!dxpos}{#1}}#2{} at {\!xloc} {\!yloc}
- \else
- \ifdim\!dxpos=\!zpt
- \ifdim\!dypos<\!zpt \!dypos=-\!zpt \fi
- \put {\!udarrows{\!dypos}{#1}}#2{} at {\!xloc} {\!yloc}
- \fi
- \fi
- \let\!M=\!MBA% ** restore previous c/d mode
- \ignorespaces}
-
-% ** Subroutine for left-right between arrows
-\def\!lrarrows#1#2{% #1=width, #2=text
- {\setbox\!boxA=\hbox{$\mkern-2mu\mathord-\mkern-2mu$}%
- \setbox\!boxB=\hbox{$\leftarrow$}\!dimenE=\ht\!boxB
- \setbox\!boxB=\hbox{}\ht\!boxB=2\!dimenE
- \hbox to #1{$\mathord\leftarrow\mkern-6mu
- \cleaders\copy\!boxA\hfil
- \mkern-6mu\mathord-$%
- \kern.4em $\vcenter{\box\!boxB}$$\vcenter{\hbox{#2}}$\kern.4em
- $\mathord-\mkern-6mu
- \cleaders\copy\!boxA\hfil
- \mkern-6mu\mathord\rightarrow$}}}
-
-% ** Subroutine for up-down between arrows
-\def\!udarrows#1#2{% #1=width, #2=text
- {\setbox\!boxB=\hbox{#2}%
- \setbox\!boxA=\hbox to \wd\!boxB{\hss$\vert$\hss}%
- \!dimenE=\ht\!boxA \advance\!dimenE \dp\!boxA \divide\!dimenE 2
- \vbox to #1{\offinterlineskip
- \vskip .05556\!dimenE
- \hbox to \wd\!boxB{\hss$\mkern.4mu\uparrow$\hss}\vskip-\!dimenE
- \cleaders\copy\!boxA\vfil
- \vskip-\!dimenE\copy\!boxA
- \vskip\!dimenE\copy\!boxB\vskip.4em
- \copy\!boxA\vskip-\!dimenE
- \cleaders\copy\!boxA\vfil
- \vskip-\!dimenE \hbox to \wd\!boxB{\hss$\mkern.4mu\downarrow$\hss}
- \vskip .05556\!dimenE}}}
-
-
-% ***************************
-% *** BARS (Draws bars) ***
-% ***************************
-%
-% ** User commands:
-% ** \putbar [<XSHIFT,YSHIFT>] breadth <BREADTH> from XSTART YSTART
-% ** to XEND YEND
-% ** \setbars [<XSHIFT,YSHIFT>] breadth <BREADTH> baseline at XY = COORD
-% ** [baselabels ([B_ORIENTATION_x,B_ORIENTATION_y] <B_XSHIFT,B_YSHIFT>)]
-% ** [endlabels ([E_ORIENTATION_x,E_ORIENTATION_y] <E_XSHIFT,E_YSHIFT>)]
-
-
-% ** \putbar [<XSHIFT,YSHIFT>] breadth <BREADTH> from XSTART YSTART
-% ** to XEND YEND
-% ** Either XSTART=XEND or YSTART=YEND. Draws a rectangle between
-% ** (XSTART,YSTART) & (XEND,YEND). The "depth" of the rectangle
-% ** is determined by those two plot positions; its other
-% ** dimension "breadth" is specified by the dimension BREADTH.
-% ** See Subsection 4.2 of the manual.
-\def\putbar#1breadth <#2> from #3 #4 to #5 #6 {%
- \!xloc=\!M{#3}\!xunit \!xxloc=\!M{#5}\!xunit%
- \!yloc=\!M{#4}\!yunit \!yyloc=\!M{#6}\!yunit%
- \!dypos=\!yyloc \advance\!dypos by -\!yloc
- \!dimenI=#2
-%
- \ifdim \!dimenI=\!zpt % ** If 0 breadth
- \putrule#1from {#3} {#4} to {#5} {#6} % ** Then draw line
- \else % ** Else, put in a rectangle
- \let\!MBar=\!M% ** save current c/d mode
- \!setdimenmode % ** go into dimension mode
- \divide\!dimenI 2
- \ifdim \!dypos=\!zpt
- \advance \!yloc -\!dimenI % ** Equal y coordinates
- \advance \!yyloc \!dimenI
- \else
- \advance \!xloc -\!dimenI % ** Equal x coordinates
- \advance \!xxloc \!dimenI
- \fi
- \putrectangle#1corners at {\!xloc} {\!yloc} and {\!xxloc} {\!yyloc}
- \let\!M=\!MBar % ** restore c/d mode
- \fi
- \ignorespaces}
-
-
-% ** \setbars [<XSHIFT,YSHIFT>] breadth <BREADTH> baseline at XY = COORD
-% ** [baselabels ([B_ORIENTATION_x,B_ORIENTATION_y] <B_XSHIFT,B_YSHIFT>)]
-% ** [endlabels ([E_ORIENTATION_x,E_ORIENTATION_y] <E_XSHIFT,E_YSHIFT>)]
-% ** This command puts PiCTeX into the bar graph drawing mode described
-% ** in Subsection 4.4 of the manual.
-\def\setbars#1breadth <#2> baseline at #3 = #4 {%
- \edef\!barshift{#1}%
- \edef\!barbreadth{#2}%
- \edef\!barorientation{#3}%
- \edef\!barbaseline{#4}%
- \def\!bardobaselabel{\!bardoendlabel}%
- \def\!bardoendlabel{\!barfinish}%
- \let\!drawcurve=\!barcurve
- \!setbars}
-\def\!setbars{%
- \futurelet\!nextchar\!!setbars}
-\def\!!setbars{%
- \if b\!nextchar
- \def\!!!setbars{\!setbarsbget}%
- \else
- \if e\!nextchar
- \def\!!!setbars{\!setbarseget}%
- \else
- \def\!!!setbars{\relax}%
- \fi
- \fi
- \!!!setbars}
-\def\!setbarsbget baselabels (#1) {%
- \def\!barbaselabelorientation{#1}%
- \def\!bardobaselabel{\!!bardobaselabel}%
- \!setbars}
-\def\!setbarseget endlabels (#1) {%
- \edef\!barendlabelorientation{#1}%
- \def\!bardoendlabel{\!!bardoendlabel}%
- \!setbars}
-
-% ** \!barcurve
-% ** Draws a bargraph with preset values of barshift, barbreadth,
-% ** barorientation (x or y) and barbaseline (coordinate)
-\def\!barcurve #1 #2 {%
- \if y\!barorientation
- \def\!basexarg{#1}%
- \def\!baseyarg{\!barbaseline}%
- \else
- \def\!basexarg{\!barbaseline}%
- \def\!baseyarg{#2}%
- \fi
- \expandafter\putbar\!barshift breadth <\!barbreadth> from {\!basexarg}
- {\!baseyarg} to {#1} {#2}
- \def\!endxarg{#1}%
- \def\!endyarg{#2}%
- \!bardobaselabel}
-
-\def\!!bardobaselabel "#1" {%
- \put {#1}\!barbaselabelorientation{} at {\!basexarg} {\!baseyarg}
- \!bardoendlabel}
-
-\def\!!bardoendlabel "#1" {%
- \put {#1}\!barendlabelorientation{} at {\!endxarg} {\!endyarg}
- \!barfinish}
-
-\def\!barfinish{%
- \!ifnextchar/{\!finish}{\!barcurve}}
-
-
-% ********************************
-% *** BOXES (Draws rectangles) ***
-% ********************************
-%
-% ** User commands:
-% ** \putrectangle [<XSHIFT,YSHIFT>] corners at XCOORD1 YCOORD1
-% ** and XCOORD2 YCOORD2
-% ** \shaderectangleson
-% ** \shaderectanglesoff
-% ** \frame [<SEPARATION>] {TEXT}
-% ** \rectangle <WIDTH> <HEIGHT>
-%
-%
-% ** \putrectangle [<XSHIFT,YSHIFT>] corners at XCOORD1 YCOORD1
-% ** and XCOORD2 YCOORD2
-% ** Draws a rectangle with corners at (X1,Y1), (X2,Y1), (X1,Y2), (X2,Y2)
-% ** Lines have thickness \linethickness, and overlap at the corners.
-% ** The optional field <XSHIFT,YSHIFT> functions as with a \put command.
-% ** See Subsection 4.2 of the manual.
-\def\putrectangle{%
- \!ifnextchar<{\!putrectangle}{\!putrectangle<\!zpt,\!zpt> }}
-\def\!putrectangle<#1,#2> corners at #3 #4 and #5 #6 {%
-%
-% ** get locations
- \!xone=\!M{#3}\!xunit \!xtwo=\!M{#5}\!xunit%
- \!yone=\!M{#4}\!yunit \!ytwo=\!M{#6}\!yunit%
- \ifdim \!xtwo<\!xone
- \!dimenI=\!xone \!xone=\!xtwo \!xtwo=\!dimenI
- \fi
- \ifdim \!ytwo<\!yone
- \!dimenI=\!yone \!yone=\!ytwo \!ytwo=\!dimenI
- \fi
- \!dimenI=#1\relax \advance\!xone\!dimenI \advance\!xtwo\!dimenI
- \!dimenI=#2\relax \advance\!yone\!dimenI \advance\!ytwo\!dimenI
- \let\!MRect=\!M% ** save current coord/dimen mode
- \!setdimenmode
-%
-% ** shade rectangle if appropriate
- \!shaderectangle
-%
-% ** draw horizontal edges
- \!dimenI=.5\linethickness
- \advance \!xone -\!dimenI% ** adjust x-location to overlap corners
- \advance \!xtwo \!dimenI% ** ditto
- \putrule from {\!xone} {\!yone} to {\!xtwo} {\!yone}
- \putrule from {\!xone} {\!ytwo} to {\!xtwo} {\!ytwo}
-%
-% ** draw vertical edges
- \advance \!xone \!dimenI% ** restore original x-values
- \advance \!xtwo -\!dimenI%
- \advance \!yone -\!dimenI% ** adjust y-location to overlap corners
- \advance \!ytwo \!dimenI% ** ditto
- \putrule from {\!xone} {\!yone} to {\!xone} {\!ytwo}
- \putrule from {\!xtwo} {\!yone} to {\!xtwo} {\!ytwo}
-%
- \let\!M=\!MRect% ** restore coord/dimen mode
- \ignorespaces}
-
-% ** \shaderectangleson
-% ** Subsequent rectangles will be shaded according to
-% ** the current shading pattern. Affects \putrectangle, \putbar,
-% ** \frame, \sethistograms, and \setbars. See Subsection 7.5 of the manual.
-\def\shaderectangleson{%
- \def\!shaderectangle{\!!shaderectangle}%
- \ignorespaces}
-% ** \shaderectanglesoff
-% ** Suppresses \shaderectangleson. The default.
-\def\shaderectanglesoff{%
- \def\!shaderectangle{}%
- \ignorespaces}
-
-\shaderectanglesoff
-
-% ** The following internal routine shades the current rectangle, when
-% ** \!shaderectangle = \!!shaderectangle .
-\def\!!shaderectangle{%
- \!dimenA=\!xtwo \advance \!dimenA -\!xone
- \!dimenB=\!ytwo \advance \!dimenB -\!yone
- \ifdim \!dimenA<\!dimenB
- \!startvshade (\!xone,\!yone,\!ytwo)
- \!lshade (\!xtwo,\!yone,\!ytwo)
- \else
- \!starthshade (\!yone,\!xone,\!xtwo)
- \!lshade (\!ytwo,\!xone,\!xtwo)
- \fi
- \ignorespaces}
-
-% ** \frame [<SEPARATION>] {TEXT}
-% ** Draws a frame of thickness linethickness about the box enclosing
-% ** TEXT; the frame is separated from the box by a distance of
-% ** SEPARATION. The result is an hbox with the same baseline as TEXT.
-% ** If <SEPARATION> is omitted, you get the effect of <0pt>.
-% ** See Subsection 4.2 of the manual.
-\def\frame{%
- \!ifnextchar<{\!frame}{\!frame<\!zpt> }}
-\long\def\!frame<#1> #2{%
- \beginpicture
- \setcoordinatesystem units <1pt,1pt> point at 0 0
- \put {#2} [Bl] at 0 0
- \!dimenA=#1\relax
- \!dimenB=\!wd \advance \!dimenB \!dimenA
- \!dimenC=\!ht \advance \!dimenC \!dimenA
- \!dimenD=\!dp \advance \!dimenD \!dimenA
- \let\!MFr=\!M
- \!setdimenmode
- \putrectangle corners at {-\!dimenA} {-\!dimenD} and {\!dimenB} {\!dimenC}
- \!setcoordmode
- \let\!M=\!MFr
- \endpicture
- \ignorespaces}
-
-% ** \rectangle <WIDTH> <HEIGHT>
-% ** Constructs a rectangle of width WIDTH and heigth HEIGHT.
-% ** See Subsection 4.2 of the manual.
-\def\rectangle <#1> <#2> {%
- \setbox0=\hbox{}\wd0=#1\ht0=#2\frame {\box0}}
-
-
-% *********************************************
-% *** CURVES (Upper level \plot commands) ***
-% *********************************************
-%
-% ** User commands
-% ** \plot DATA /
-% ** \plot "FILE NAME"
-% ** \setquadratic
-% ** \setlinear
-% ** \sethistograms
-% ** \vshade ...
-% ** \hshade ...
-
-% \plot: multi-purpose command. Draws histograms, bar graphs, piecewise-linear
-% or piecewise quadratic curves, depending on the setting of \!drawcurve.
-% See Subsections 4.3-4.5, 5.1, 5.2 of the manual.
-\def\plot{%
- \!ifnextchar"{\!plotfromfile}{\!drawcurve}}
-\def\!plotfromfile"#1"{%
- \expandafter\!drawcurve \normalinput #1 /}
-
-% Command to set piecewise quadratic mode
-% See Subsections 5.1, 7.3, and 7.4 of the manual.
-\def\setquadratic{%
- \let\!drawcurve=\!qcurve
- \let\!!Shade=\!!qShade
- \let\!!!Shade=\!!!qShade}
-
-% Command to set piecewise linear mode
-% See Subsections 5.1, 7.3, and 7.4 of the manual.
-\def\setlinear{%
- \let\!drawcurve=\!lcurve
- \let\!!Shade=\!!lShade
- \let\!!!Shade=\!!!lShade}
-
-% Command to set histogram mode
-% See Subsection 4.3 of the manual.
-\def\sethistograms{%
- \let\!drawcurve=\!hcurve}
-
-% Commands to cycle through list of coordinates in piecewise quadratic
-% interpolation mode
-\def\!qcurve #1 #2 {%
- \!start (#1,#2)
- \!Qjoin}
-\def\!Qjoin#1 #2 #3 #4 {%
- \!qjoin (#1,#2) (#3,#4) % \!qjoin is defined in QUADRATIC
- \!ifnextchar/{\!finish}{\!Qjoin}}
-
-% Commands to cycle through list of coordinates in piecewise linear
-% interpolation mode
-\def\!lcurve #1 #2 {%
- \!start (#1,#2)
- \!Ljoin}
-\def\!Ljoin#1 #2 {%
- \!ljoin (#1,#2) % \!ljoin is defined in LINEAR
- \!ifnextchar/{\!finish}{\!Ljoin}}
-
-\def\!finish/{\ignorespaces}
-
-% Command to cycle through list of coordinates in histogram mode
-\def\!hcurve #1 #2 {%
- \edef\!hxS{#1}%
- \edef\!hyS{#2}%
- \!hjoin}
-\def\!hjoin#1 #2 {%
- \putrectangle corners at {\!hxS} {\!hyS} and {#1} {#2}
- \edef\!hxS{#1}%
- \!ifnextchar/{\!finish}{\!hjoin}}
-
-
-% \vshade: See Subsection 7.3 of the manual.
-\def\vshade #1 #2 #3 {%
- \!startvshade (#1,#2,#3)
- \!Shadewhat}
-
-% \hshade: See Subsection 7.4 of the manual.
-\def\hshade #1 #2 #3 {%
- \!starthshade (#1,#2,#3)
- \!Shadewhat}
-
-% Commands to cycle through coordinates and optional "edge effect"
-% fields while shading.
-\def\!Shadewhat{%
- \futurelet\!nextchar\!Shade}
-\def\!Shade{%
- \if <\!nextchar
- \def\!nextShade{\!!Shade}%
- \else
- \if /\!nextchar
- \def\!nextShade{\!finish}%
- \else
- \def\!nextShade{\!!!Shade}%
- \fi
- \fi
- \!nextShade}
-\def\!!lShade<#1> #2 #3 #4 {%
- \!lshade <#1> (#2,#3,#4) % \!lshade is defined in SHADING
- \!Shadewhat}
-\def\!!!lShade#1 #2 #3 {%
- \!lshade (#1,#2,#3)
- \!Shadewhat}
-\def\!!qShade<#1> #2 #3 #4 #5 #6 #7 {%
- \!qshade <#1> (#2,#3,#4) (#5,#6,#7) % \!qshade is defined in SHADING
- \!Shadewhat}
-\def\!!!qShade#1 #2 #3 #4 #5 #6 {%
- \!qshade (#1,#2,#3) (#4,#5,#6)
- \!Shadewhat}
-
-% ** Set default interpolation mode
-\setlinear
-
-
-% ********************************************
-% *** DASHPATTERNS (Sets up dash patterns) ***
-% ********************************************
-
-% ** User commands:
-% ** \setdashpattern <DIMEN1,DIMEN2,DIMEN3,...>
-% ** \setdots <INTRADOT_DISTANCE>
-% ** \setdotsnear <INTRADOT_DISTANCE> for <ARC LENGTH>
-% ** \setdashes <DASH/SKIP_DISTANCE>
-% ** \setdashesnear <DASH/SKIP_DISTANCE> for <ARC LENGTH>
-% ** \setsolid
-% ** \findlength {CURVE CMDS}
-
-% ** Internal commands:
-% ** \!dashingon
-% ** \!dashingoff
-
-% ** Dash patterns are specified by a balanced token list whose complete
-% ** expansion has the form: DIMEN1,DIMEN2,DIMEN3,DIMEN4,... ; this produces
-% ** an arc of length DIMEN1, a skip of length DIMEN2, an arc of length
-% ** DIMEN3, a skip of length DIMEN4, ... . Any number of DIMEN values may
-% ** be given. The pattern is repeated as many times (perhaps fractional)
-% ** as necessary to draw the curve.
-% ** A dash pattern remains in effect until it is overridden by a call to
-% ** \setdashpattern, or to \setdots, \setdotsnear ... , \setdashes,
-% ** \setdashesnear ... , or \setsolid.
-% ** Solid lines are the default.
-
-
-% ** \def\setdashpattern <DIMEN1,DIMEN2,DIMEN3,...>
-% ** The following routine converts a balanced list of tokens whose
-% ** complete expansion has the form DIMEN1,DIMEN2, ... , DIMENk into
-% ** three list macros that are used in drawing dashed rules and curves:
-% ** !Flist: \!Rule{DIMEN1}\!Skip{DIMEN2}\!Rule{DIMEN3}\!Skip{DIMEN4} ...
-% ** !Blist: ...\!Skip{DIMEN4}\!Rule{DIMEN3}\!Skip{DIMEN2}\!Rule{DIMEN1}
-% ** !UDlist: \\{DIMEN1}\\{DIMEN2}\\{DIMEN3}\\{DIMEN4} ...;
-% ** calculates \!leaderlength := DIMEN1 + ... + DIMENk; and
-% ** sets the curve drawing routines to dash mode.
-% ** Those lists are used by the curve drawing routines.
-% ** Dimenj ... may be given as an explicit dimension (e.g., 5pt), or
-% ** as an expression involving a dimension register (e.g., -2.5\dimen0).
-% ** See Subsection 6.2 of the manual
-\def\setdashpattern <#1>{%
- \def\!Flist{}\def\!Blist{}\def\!UDlist{}%
- \!countA=0
- \!ecfor\!item:=#1\do{%
- \!dimenA=\!item\relax
- \expandafter\!rightappend\the\!dimenA\withCS{\\}\to\!UDlist%
- \advance\!countA 1
- \ifodd\!countA
- \expandafter\!rightappend\the\!dimenA\withCS{\!Rule}\to\!Flist%
- \expandafter\!leftappend\the\!dimenA\withCS{\!Rule}\to\!Blist%
- \else
- \expandafter\!rightappend\the\!dimenA\withCS{\!Skip}\to\!Flist%
- \expandafter\!leftappend\the\!dimenA\withCS{\!Skip}\to\!Blist%
- \fi}%
- \!leaderlength=\!zpt
- \def\!Rule##1{\advance\!leaderlength ##1}%
- \def\!Skip##1{\advance\!leaderlength ##1}%
- \!Flist%
- \ifdim\!leaderlength>\!zpt
- \else
- \def\!Flist{\!Skip{24in}}\def\!Blist{\!Skip{24in}}\ignorespaces
- \def\!UDlist{\\{\!zpt}\\{24in}}\ignorespaces
- \!leaderlength=24in
- \fi
- \!dashingon}
-
-
-% ** \!dashingon -- puts the curve drawing routines into dash mode
-% ** \!dashingoff -- puts the curve drawing routines into solid mode
-% ** These are internal commands, invoked by \setdashpattern and \setsolid
-\def\!dashingon{%
- \def\!advancedashing{\!!advancedashing}%
- \def\!drawlinearsegment{\!lineardashed}%
- \def\!puthline{\!putdashedhline}%
- \def\!putvline{\!putdashedvline}%
-% \def\!putsline{\!putdashedsline}%
- \ignorespaces}%
-\def\!dashingoff{%
- \def\!advancedashing{\relax}%
- \def\!drawlinearsegment{\!linearsolid}%
- \def\!puthline{\!putsolidhline}%
- \def\!putvline{\!putsolidvline}%
-% \def\!putsline{\!putsolidsline}%
- \ignorespaces}
-
-
-% ** \setdots <LENGTH> -- sets up a dot/skip pattern where dot (actually
-% ** the current plotsymbol) is plunked down once for every LENGTH
-% ** traveled along the curve. LENGTH defaults to 5pt.
-% ** See Subsection 6.1 of the manual.
-\def\setdots{%
- \!ifnextchar<{\!setdots}{\!setdots<5pt>}}
-\def\!setdots<#1>{%
- \!dimenB=#1\advance\!dimenB -\plotsymbolspacing
- \ifdim\!dimenB<\!zpt
- \!dimenB=\!zpt
- \fi
-\setdashpattern <\plotsymbolspacing,\!dimenB>}
-
-% ** \setdotsnear <LENGTH> for <ARC LENGTH>
-% ** sets up a dot pattern where the dots are approximately LENGTH apart,
-% ** the total length of the pattern is ARC LENGTH, and the pattern
-% ** begins and ends with a dot. See Subsection 6.3 of the manual.
-\def\setdotsnear <#1> for <#2>{%
- \!dimenB=#2\relax \advance\!dimenB -.05pt
- \!dimenC=#1\relax \!countA=\!dimenC
- \!dimenD=\!dimenB \advance\!dimenD .5\!dimenC \!countB=\!dimenD
- \divide \!countB \!countA
- \ifnum 1>\!countB
- \!countB=1
- \fi
- \divide\!dimenB \!countB
- \setdots <\!dimenB>}
-
-% ** \setdashes <LENGTH> -- sets up a dash/skip pattern where the dash
-% ** and the skip are each of length LENGTH (the dash is formed by
-% ** plunking down the current plotsymbol over an arc of length LENGTH
-% ** and so may actually be longer than LENGTH. LENGTH defaults to 5pt.
-% ** See Subsection 6.1 of the manual.
-\def\setdashes{%
- \!ifnextchar<{\!setdashes}{\!setdashes<5pt>}}
-\def\!setdashes<#1>{\setdashpattern <#1,#1>}
-
-% ** \setdashesnear ...
-% ** Like \setdotsnear; the pattern begins and ends with a dash.
-% ** See Subsection 6.3 of the manual.
-\def\setdashesnear <#1> for <#2>{%
- \!dimenB=#2\relax
- \!dimenC=#1\relax \!countA=\!dimenC
- \!dimenD=\!dimenB \advance\!dimenD .5\!dimenC \!countB=\!dimenD
- \divide \!countB \!countA
- \ifodd \!countB
- \else
- \advance \!countB 1
- \fi
- \divide\!dimenB \!countB
- \setdashes <\!dimenB>}
-
-% ** \setsolid -- puts the curve drawing routines in "solid line" mode,
-% ** the default mode. See Subsection 6.1 of the manual.
-\def\setsolid{%
- \def\!Flist{\!Rule{24in}}\def\!Blist{\!Rule{24in}}%
- \def\!UDlist{\\{24in}\\{\!zpt}}%
- \!dashingoff}
-\setsolid
-
-% ** \findlength {CURVE CMDS}
-% ** PiCTeX executes the \start, \ljoin, and \qjoin cmds comprising
-% ** CURVE CMDS without plotting anything, but stashes the length
-% ** of the phantom curve away in \totalarclength.
-% ** See Subsection 6.3 of the manual.
-\def\findlength#1{%
- \begingroup
- \setdashpattern <0pt, \maxdimen>
- \setplotsymbol ({})
- \dontsavelinesandcurves
- #1%
- \endgroup
- \ignorespaces}
-
-
-% *************************************************************
-% *** DIVISION (Does long division of dimension registers) ***
-% *************************************************************
-
-% ** User command:
-% ** \Divide {DIVIDEND} by {DIVISOR} forming {RESULT}
-
-% ** Internal command
-% ** \!divide{DIVIDEND}{DIVISOR}{RESULT}
-
-% ** \!divide DIVIDEND [by] DIVISOR [to get] ANSWER
-% ** Divides the dimension DIVIDEND by the dimension DIVISOR, placing the
-% ** quotient in the dimension register ANSWER. Values are understood to
-% ** be in points. E.g. 12.5pt/1.4pt=8.92857pt.
-% ** Quotient is accurate to 1/65536pt=2**[-16]pt
-% ** |DIVISOR| should be < 2048pt (about 28 inches).
-\def\!divide#1#2#3{%
- \!dimenB=#1% ** dimB holds current remainder (r)
- \!dimenC=#2% ** dimC holds divisor (d)
- \!dimenD=\!dimenB% ** dimD holds quotient q=r/d for this
- \divide \!dimenD \!dimenC% ** step, in units of scaled pts
- \!dimenA=\!dimenD% ** dimA eventually holds answer (a)
- \multiply\!dimenD \!dimenC% ** r <-- r - dq
- \advance\!dimenB -\!dimenD% ** First step complete. Have integer part
-% ** of a, and corresponding remainder.
- \!dimenD=\!dimenC% ** Temporarily use dimD to hold |d|
- \ifdim\!dimenD<\!zpt \!dimenD=-\!dimenD
- \fi
- \ifdim\!dimenD<64pt% ** Branch on the magnitude of |d|
- \!divstep[\!tfs]\!divstep[\!tfs]%
- \else
- \!!divide
- \fi
- #3=\!dimenA\ignorespaces}
-
-% ** The following code handles divisors d with
-% ** (1) .88in = 64pt <= d < 256pt = 3.54in
-% ** (2) 3.54in = 256pt <= d < 2048pt = 28.34in
-% ** Anything bigger than that may result in an overflow condition.
-% ** For our purposes, we should never even see case (2).
-\def\!!divide{%
- \ifdim\!dimenD<256pt
- \!divstep[64]\!divstep[32]\!divstep[32]%
- \else
- \!divstep[8]\!divstep[8]\!divstep[8]\!divstep[8]\!divstep[8]%
- \!dimenA=2\!dimenA
- \fi}
-
-
-% ** The following macro does the real long division work.
-\def\!divstep[#1]{% ** #1 = "B"
- \!dimenB=#1\!dimenB% ** r <-- B*r
- \!dimenD=\!dimenB% ** dimD holds quotient q=r/d for this
- \divide \!dimenD by \!dimenC% ** step, in units of scaled pts
- \!dimenA=#1\!dimenA% ** a <-- B*a + q
- \advance\!dimenA by \!dimenD%
- \multiply\!dimenD by \!dimenC% ** r <-- r - dq
- \advance\!dimenB by -\!dimenD}
-
-% ** \Divide: See Subsection 9.3 of the manual.
-\def\Divide <#1> by <#2> forming <#3> {%
- \!divide{#1}{#2}{#3}}
-
-
-% *********************************************
-% *** ELLIPSES (Draws ellipses and circles) ***
-% *********************************************
-
-% ** User commands
-% ** \ellipticalarc axes ratio A:B DEGREES degrees from XSTART YSTART
-% ** center at XCENTER YCENTER
-% ** \circulararc DEGREES degrees from XSTART YSTART
-% ** center at XCENTER YCENTER
-
-% ** Internal command
-% ** \!sinandcos{32*ANGLE in radians}{32*SIN}{32*COS}
-
-
-% ** \ellipticalarc axes ratio A:B DEGREES degrees from XSTART YSTART
-% ** center at XCENTER YCENTER
-% ** Draws a elliptical arc starting at the coordinate point (XSTART,YSTART).
-% ** The center of the ellipse of which the arc is a segment is at
-% ** (XCENTER,YCENTER).
-% ** The arc extends through an angle of DEGREES degrees (may be + or -).
-% ** A:B is the ratio of the length of the xaxis to the length of
-% ** the yaxis of the ellipse
-% ** Sqrt{[(XSTART-XCENTER)/A]**2 + [(YSTART-YCENTER)/B]**2}
-% ** must be < 512pt (about 7in).
-% ** Doesn't modify the dimensions (ht, dp, wd) of the PiCture under
-% ** construction.
-
-% ** \circulararc -- See Subsection 5.3 of the manual.
-\def\circulararc{%
- \ellipticalarc axes ratio 1:1 }
-
-% ** \ellipticalarc -- See Subsection 5.3 of the manual.
-\def\ellipticalarc axes ratio #1:#2 #3 degrees from #4 #5 center at #6 #7 {%
- \!angle=#3pt\relax% ** get angle
- \ifdim\!angle>\!zpt
- \def\!sign{}% ** counterclockwise
- \else
- \def\!sign{-}\!angle=-\!angle% ** clockwise
- \fi
- \!xxloc=\!M{#6}\!xunit% ** convert CENTER to dimension
- \!yyloc=\!M{#7}\!yunit
- \!xxS=\!M{#4}\!xunit% ** get STARTing point on rim of ellipse
- \!yyS=\!M{#5}\!yunit
- \advance\!xxS -\!xxloc% ** make center of ellipse (0,0)
- \advance\!yyS -\!yyloc
- \!divide\!xxS{#1pt}\!xxS % ** scale point on ellipse to point on
- \!divide\!yyS{#2pt}\!yyS % corresponding circle
-%
- \let\!MC=\!M% ** save current c/d mode
- \!setdimenmode% ** go into dimension mode
-%
- \!xS=#1\!xxS \advance\!xS\!xxloc
- \!yS=#2\!yyS \advance\!yS\!yyloc
- \!start (\!xS,\!yS)%
- \!loop\ifdim\!angle>14.9999pt% ** draw in major portion of ellipse
- \!rotate(\!xxS,\!yyS)by(\!cos,\!sign\!sin)to(\!xxM,\!yyM)
- \!rotate(\!xxM,\!yyM)by(\!cos,\!sign\!sin)to(\!xxE,\!yyE)
- \!xM=#1\!xxM \advance\!xM\!xxloc \!yM=#2\!yyM \advance\!yM\!yyloc
- \!xE=#1\!xxE \advance\!xE\!xxloc \!yE=#2\!yyE \advance\!yE\!yyloc
- \!qjoin (\!xM,\!yM) (\!xE,\!yE)
- \!xxS=\!xxE \!yyS=\!yyE
- \advance \!angle -15pt
- \repeat
- \ifdim\!angle>\!zpt% ** complete remaining arc, if any
- \!angle=100.53096\!angle% ** convert angle to radians, divide
- \divide \!angle 360 % ** by 2, and multiply by 32
- \!sinandcos\!angle\!!sin\!!cos% ** get 32*sin & 32*cos
- \!rotate(\!xxS,\!yyS)by(\!!cos,\!sign\!!sin)to(\!xxM,\!yyM)
- \!rotate(\!xxM,\!yyM)by(\!!cos,\!sign\!!sin)to(\!xxE,\!yyE)
- \!xM=#1\!xxM \advance\!xM\!xxloc \!yM=#2\!yyM \advance\!yM\!yyloc
- \!xE=#1\!xxE \advance\!xE\!xxloc \!yE=#2\!yyE \advance\!yE\!yyloc
- \!qjoin (\!xM,\!yM) (\!xE,\!yE)
- \fi
-%
- \let\!M=\!MC% ** restore c/d mode
- \ignorespaces}% ** if appropriate
-
-
-% ** \!rotate(XREG,YREG)by(32cos,32sin)to(XXREG,YYREG)
-% ** rotates (XREG,YREG) by angle with specfied scaled cos & sin to
-% ** (XXREG,YYREG). Uses \!dimenA & \!dimenB as scratch registers.
-\def\!rotate(#1,#2)by(#3,#4)to(#5,#6){%
- \!dimenA=#3#1\advance \!dimenA -#4#2% ** Rcos(x+t)=Rcosx*cost - Rsinx*sint
- \!dimenB=#3#2\advance \!dimenB #4#1% ** Rsin(x+t)=Rsinx*cost + Rcosx*sint
- \divide \!dimenA 32 \divide \!dimenB 32
- #5=\!dimenA #6=\!dimenB
- \ignorespaces}
-\def\!sin{4.17684}% ** 32*sin(pi/24) (pi/24=7.5deg)
-\def\!cos{31.72624}% ** 32*cos(pi/24)
-
-
-% ** \!sinandcos{32*ANGLE in radians}{\SINCS}{\COSCS}
-% ** Computes the 32*sine and 32*cosine of a small ANGLE expressed in
-% ** radians/32 and puts these values in the replacement texts of
-% ** \SINCS and \COSCS
-\def\!sinandcos#1#2#3{%
- \!dimenD=#1% ** angle is expressed in radians/32: 1pt = 1/32rad
- \!dimenA=\!dimenD% ** dimA will eventually contain 32sin(angle)in pts
- \!dimenB=32pt% ** dimB will eventually contain 32cos(angle)in pts
- \!removept\!dimenD\!value% ** get value of 32*angle, without "pt"
- \!dimenC=\!dimenD% ** holds 32*angle**i/i! in pts
- \!dimenC=\!value\!dimenC \divide\!dimenC by 64 % ** now 32*angle**2/2
- \advance\!dimenB by -\!dimenC% ** 32-32*angle**2/2
- \!dimenC=\!value\!dimenC \divide\!dimenC by 96 % ** now 32*angle**3/3!
- \advance\!dimenA by -\!dimenC% ** now 32*(angle-angle**3/6)
- \!dimenC=\!value\!dimenC \divide\!dimenC by 128 % ** now 32*angle**4/4!
- \advance\!dimenB by \!dimenC%
- \!removept\!dimenA#2% ** set 32*sin(angle)
- \!removept\!dimenB#3% ** set 32*cos(angle)
- \ignorespaces}
-
-
-% *****************************************************************
-% *** RULES (Draws rules, i.e., horizontal & vertical lines) ***
-% *****************************************************************
-
-% ** User command:
-% ** \putrule [<XDIMEN,YDIMEN>] from XCOORD1 YCOORD1
-% ** to XCOORD2 YCOORD2
-
-% ** Internal commands:
-% ** \!puthline [<XDIMEN,YDIMEN>] (h = horizontal)
-% ** Set by dashpat to either: \!putsolidhline or \!putdashedhline
-% ** \!putvline [<XDIMEN,YDIMEN>] (v = vertical)
-% ** Either: \!putsolidvline or \!putdashedvline
-
-
-% ** \putrule [<XDIMEN,YDIMEN>] from XCOORD1 YCOORD1
-% ** to XCOORD2 YCOORD2
-% ** Draws a rule -- dashed or solid depending on the current dash pattern --
-% ** from (X1,Y1) to (X2,Y2). Uses TEK's \hrule & \vrule & \leaders
-% ** constructions to handle horizontal & vertical lines efficiently both
-% ** in terms of execution time and space in the DVI file.
-% ** See Subsection 4.1 of the manual.
-\def\putrule#1from #2 #3 to #4 #5 {%
- \!xloc=\!M{#2}\!xunit \!xxloc=\!M{#4}\!xunit%
- \!yloc=\!M{#3}\!yunit \!yyloc=\!M{#5}\!yunit%
- \!dxpos=\!xxloc \advance\!dxpos by -\!xloc
- \!dypos=\!yyloc \advance\!dypos by -\!yloc
-%
- \ifdim\!dypos=\!zpt
- \def\!!Line{\!puthline{#1}}\ignorespaces
- \else
- \ifdim\!dxpos=\!zpt
- \def\!!Line{\!putvline{#1}}\ignorespaces
- \else
- \def\!!Line{}
- \fi
- \fi
- \let\!ML=\!M% ** save current coord\dimen mode
- \!setdimenmode% ** express locations in dimens
- \!!Line%
- \let\!M=\!ML% ** restore previous c/d mode
- \ignorespaces}
-
-
-% ** \!putsolidhline [<XDIMEN,YDIMEN>]
-% ** Place horizontal solid line
-\def\!putsolidhline#1{%
- \ifdim\!dxpos>\!zpt
- \put{\!hline\!dxpos}#1[l] at {\!xloc} {\!yloc}
- \else
- \put{\!hline{-\!dxpos}}#1[l] at {\!xxloc} {\!yyloc}
- \fi
- \ignorespaces}
-
-% ** \!putsolidvline [shifted <XDIMEN,YDIMEN>]
-% ** Place vertical solid line
-\def\!putsolidvline#1{%
- \ifdim\!dypos>\!zpt
- \put{\!vline\!dypos}#1[b] at {\!xloc} {\!yloc}
- \else
- \put{\!vline{-\!dypos}}#1[b] at {\!xxloc} {\!yyloc}
- \fi
- \ignorespaces}
-
-\def\!hline#1{\hbox to #1{\leaders \hrule height\linethickness\hfill}}
-\def\!vline#1{\vbox to #1{\leaders \vrule width\linethickness\vfill}}
-
-
-% ** \!putdashedhline [<XDIMEN,YDIMEN>]
-% ** Place dashed horizontal line
-\def\!putdashedhline#1{%
- \ifdim\!dxpos>\!zpt
- \!DLsetup\!Flist\!dxpos
- \put{\hbox to \!totalleaderlength{\!hleaders}\!hpartialpattern\!Rtrunc}
- #1[l] at {\!xloc} {\!yloc}
- \else
- \!DLsetup\!Blist{-\!dxpos}
- \put{\!hpartialpattern\!Ltrunc\hbox to \!totalleaderlength{\!hleaders}}
- #1[r] at {\!xloc} {\!yloc}
- \fi
- \ignorespaces}
-
-% ** \!putdashedhline [<XDIMEN,YDIMEN>]
-% ** Place dashed vertical line
-\def\!putdashedvline#1{%
- \!dypos=-\!dypos% ** vertical leaders go from top to bottom
- \ifdim\!dypos>\!zpt
- \!DLsetup\!Flist\!dypos
- \put{\vbox{\vbox to \!totalleaderlength{\!vleaders}
- \!vpartialpattern\!Rtrunc}}#1[t] at {\!xloc} {\!yloc}
- \else
- \!DLsetup\!Blist{-\!dypos}
- \put{\vbox{\!vpartialpattern\!Ltrunc
- \vbox to \!totalleaderlength{\!vleaders}}}#1[b] at {\!xloc} {\!yloc}
- \fi
- \ignorespaces}
-
-
-% ** The rest of the macros in this section are subroutines used by
-% ** \!putdashedhline and \!putdashedvline.
-\def\!DLsetup#1#2{% ** Dashed-Line set up
- \let\!RSlist=#1% ** set !Rule-Skip list
- \!countB=#2% ** convert rule length to integer (number of sps)
- \!countA=\!leaderlength% ** ditto, leaderlength
- \divide\!countB by \!countA% ** number of complete leader units
- \!totalleaderlength=\!countB\!leaderlength
- \!Rresiduallength=#2%
- \advance \!Rresiduallength by -\!totalleaderlength% \** excess length
- \!Lresiduallength=\!leaderlength
- \advance \!Lresiduallength by -\!Rresiduallength
- \ignorespaces}
-
-\def\!hleaders{%
- \def\!Rule##1{\vrule height\linethickness width##1}%
- \def\!Skip##1{\hskip##1}%
- \leaders\hbox{\!RSlist}\hfill}
-
-\def\!hpartialpattern#1{%
- \!dimenA=\!zpt \!dimenB=\!zpt
- \def\!Rule##1{#1{##1}\vrule height\linethickness width\!dimenD}%
- \def\!Skip##1{#1{##1}\hskip\!dimenD}%
- \!RSlist}
-
-\def\!vleaders{%
- \def\!Rule##1{\hrule width\linethickness height##1}%
- \def\!Skip##1{\vskip##1}%
- \leaders\vbox{\!RSlist}\vfill}
-
-\def\!vpartialpattern#1{%
- \!dimenA=\!zpt \!dimenB=\!zpt
- \def\!Rule##1{#1{##1}\hrule width\linethickness height\!dimenD}%
- \def\!Skip##1{#1{##1}\vskip\!dimenD}%
- \!RSlist}
-
-\def\!Rtrunc#1{\!trunc{#1}>\!Rresiduallength}
-\def\!Ltrunc#1{\!trunc{#1}<\!Lresiduallength}
-
-\def\!trunc#1#2#3{%
- \!dimenA=\!dimenB
- \advance\!dimenB by #1%
- \!dimenD=\!dimenB \ifdim\!dimenD#2#3\!dimenD=#3\fi
- \!dimenC=\!dimenA \ifdim\!dimenC#2#3\!dimenC=#3\fi
- \advance \!dimenD by -\!dimenC}
-
-
-% ****************************************************************
-% *** LINEAR ARC (Draws straight lines -- solid and dashed) ***
-% ****************************************************************
-
-% ** User commands
-% ** \inboundscheckoff
-% ** \inboundscheckon
-
-% ** Internal commands
-% ** \!start (XCOORD,YCOORD)
-% ** \!ljoin (XCOORD,YCOORD)
-% ** \!drawlinearsegment -- set by \dashpat to either
-% ** \!linearsolid or \!lineardashed
-% ** \!advancedashing -- set by \dashpat to either
-% ** \relax or \!!advancedashing
-% ** \!plotifinbounds -- set by \inboundscheck off/on to either
-% ** \!plot or \!!plotifinbounds
-% ** \!initinboundscheck -- set by \inboundscheck off/on to either
-% ** \relax or \!!initinboundscheck
-
-
-% \plotsymbolspacing ** distance between consecutive plot positions
-% \!xS ** starting x
-% \!yS ** starting y
-% \!xE ** ending x
-% \!yE ** ending y
-% \!xdiff ** x_end - x_start
-% \!ydiff ** y_end - y_start
-% \!distacross ** how far along curve next point to be plotted is
-% \!arclength ** approximate length of arc for current interval
-% \!downlength ** remaining length for "pen" to be down
-% \!uplength ** length for "pen" to be down
-% \!intervalno ** counts segments to curve
-% \totalarclength ** cumulative distance along curve
-% \!npoints ** approximately (arc length / plotsymbolspacing)
-
-% ** Calls -- \!Pythag, \!divide, \!plot
-
-
-% ** \!start (XCOORD,YCOORD)
-% ** Sets initial point for linearly (or quadratically) interpolated curve
-\def\!start (#1,#2){%
- \!plotxorigin=\!xorigin \advance \!plotxorigin by \!plotsymbolxshift
- \!plotyorigin=\!yorigin \advance \!plotyorigin by \!plotsymbolyshift
- \!xS=\!M{#1}\!xunit \!yS=\!M{#2}\!yunit
- \!rotateaboutpivot\!xS\!yS
- \!copylist\!UDlist\to\!!UDlist% **\!UDlist has the form \\{dimen1}\\{dimen2}..
-% ** Routine will draw dashed line with pen
-% ** down for dimen1, up for dimen2, ...
- \!getnextvalueof\!downlength\from\!!UDlist
- \!distacross=\!zpt% ** 1st point goes at start of curve
- \!intervalno=0 % ** initialize interval counter
- \global\totalarclength=\!zpt% ** initialize distance traveled along curve
- \ignorespaces}
-
-
-% ** \!ljoin (XCOORD,YCOORD)
-% ** Draws a straight line starting at the last point specified
-% ** by the most recent \!start, \!ljoin, or \!qjoin, and
-% ** ending at (XCOORD,YCOORD).
-\def\!ljoin (#1,#2){%
- \advance\!intervalno by 1
- \!xE=\!M{#1}\!xunit \!yE=\!M{#2}\!yunit
- \!rotateaboutpivot\!xE\!yE
- \!xdiff=\!xE \advance \!xdiff by -\!xS%** xdiff = xE - xS
- \!ydiff=\!yE \advance \!ydiff by -\!yS%** ydiff = yE - yS
- \!Pythag\!xdiff\!ydiff\!arclength% ** arclength = sqrt(xdiff**2+ydiff**2)
- \global\advance \totalarclength by \!arclength%
- \!drawlinearsegment% ** set by dashpat to \!linearsolid or \!lineardashed
- \!xS=\!xE \!yS=\!yE% ** shift ending points to starting points
- \ignorespaces}
-
-
-% ** The following routine is used to draw a "solid" line between (xS,yS)
-% ** and (xE,yE). Points are spaced nearly every \plotsymbolspacing length
-% ** along the line.
-\def\!linearsolid{%
- \!npoints=\!arclength
- \!countA=\plotsymbolspacing
- \divide\!npoints by \!countA% ** now #pts =. arclength/plotsymbolspacing
- \ifnum \!npoints<1
- \!npoints=1
- \fi
- \divide\!xdiff by \!npoints
- \divide\!ydiff by \!npoints
- \!xpos=\!xS \!ypos=\!yS
-%
- \loop\ifnum\!npoints>-1
- \!plotifinbounds
- \advance \!xpos by \!xdiff
- \advance \!ypos by \!ydiff
- \advance \!npoints by -1
- \repeat
- \ignorespaces}
-
-
-% ** The following routine is used to draw a dashed line between (xS,yS)
-% ** and (xE,yE). The dash pattern continues from the previous segment.
-\def\!lineardashed{%
-% **
- \ifdim\!distacross>\!arclength
- \advance \!distacross by -\!arclength %nothing to plot in this interval
-%
- \else
-%
- \loop\ifdim\!distacross<\!arclength
-% ** plot point, interpolating linearly in x and y
- \!divide\!distacross\!arclength\!dimenA% ** dimA = across/arclength
- \!removept\!dimenA\!t% ** \!t holds value in dimA, without the "pt"
- \!xpos=\!t\!xdiff \advance \!xpos by \!xS
- \!ypos=\!t\!ydiff \advance \!ypos by \!yS
- \!plotifinbounds
- \advance\!distacross by \plotsymbolspacing
- \!advancedashing
- \repeat
-%
- \advance \!distacross by -\!arclength% ** prepare for next interval
- \fi
- \ignorespaces}
-
-
-\def\!!advancedashing{%
- \advance\!downlength by -\plotsymbolspacing
- \ifdim \!downlength>\!zpt
- \else
- \advance\!distacross by \!downlength
- \!getnextvalueof\!uplength\from\!!UDlist
- \advance\!distacross by \!uplength
- \!getnextvalueof\!downlength\from\!!UDlist
- \fi}
-
-
-% ** \inboundscheckoff & \inboundscheckon: See Subsection 5.5 of the manual.
-\def\inboundscheckoff{%
- \def\!plotifinbounds{\!plot(\!xpos,\!ypos)}%
- \def\!initinboundscheck{\relax}\ignorespaces}
-\def\inboundscheckon{%
- \def\!plotifinbounds{\!!plotifinbounds}%
- \def\!initinboundscheck{\!!initinboundscheck}%
- \!initinboundscheck\ignorespaces}
-\inboundscheckoff
-
-% ** The following code plots the current point only if it falls in the
-% ** current plotarea. It doesn't matter if the coordinate system has
-% ** changed since the plotarea was set up. However, shifts of the plot
-% ** are ignored (how the plotsymbol stands relative to its plot position is
-% ** unknown anyway).
-\def\!!plotifinbounds{%
- \ifdim \!xpos<\!checkleft
- \else
- \ifdim \!xpos>\!checkright
- \else
- \ifdim \!ypos<\!checkbot
- \else
- \ifdim \!ypos>\!checktop
- \else
- \!plot(\!xpos,\!ypos)
- \fi
- \fi
- \fi
- \fi}
-
-
-\def\!!initinboundscheck{%
- \!checkleft=\!arealloc \advance\!checkleft by \!xorigin
- \!checkright=\!arearloc \advance\!checkright by \!xorigin
- \!checkbot=\!areabloc \advance\!checkbot by \!yorigin
- \!checktop=\!areatloc \advance\!checktop by \!yorigin}
-
-
-% *********************************
-% *** LOGTEN (Log_10 function) ***
-% *********************************
-%
-% ** \!logten{X}
-% ** Calculates log_10 of X. X and LOG10(X) are in fixed point notation.
-% ** X must be positive; it may have an optional `+' sign; any number
-% ** of digits may be specified for X. The absolute error in LOG10(X) is
-% ** less than .0001 (probably < .00006). That's about as good as you
-% ** hope for, since TEX only operates to 5 figures after the decimal
-% ** point anyway.
-
-% \!rootten=3.162278pt **** These are values are set in ALLOCATIONS
-% \!tenAe=2.543275pt (=A5)
-% \!tenAc=2.773839pt (=A3)
-% \!tenAa=8.690286pt (=A1)
-
-\def\!logten#1#2{%
- \expandafter\!!logten#1\!nil
- \!removept\!dimenF#2%
- \ignorespaces}
-
-\def\!!logten#1#2\!nil{%
- \if -#1%
- \!dimenF=\!zpt
- \def\!next{\ignorespaces}%
- \else
- \if +#1%
- \def\!next{\!!logten#2\!nil}%
- \else
- \if .#1%
- \def\!next{\!!logten0.#2\!nil}%
- \else
- \def\!next{\!!!logten#1#2..\!nil}%
- \fi
- \fi
- \fi
- \!next}
-
-\def\!!!logten#1#2.#3.#4\!nil{%
- \!dimenF=1pt % ** DimF holds log10 original argument
- \if 0#1%
- \!!logshift#3pt % ** Argument < 1
- \else % ** Argument >= 1
- \!logshift#2/% ** Shift decimal pt as many places
- \!dimenE=#1.#2#3pt % ** as there are figures in #2
- \fi % ** Now dimE holds revised X want log10 of
- \ifdim \!dimenE<\!rootten% ** Transform X to XX between sqrt(10)
- \multiply \!dimenE 10 % ** and 10*sqrt(10)
- \advance \!dimenF -1pt
- \fi
- \!dimenG=\!dimenE% ** dimG <- (XX + 10)
- \advance\!dimenG 10pt
- \advance\!dimenE -10pt % ** dimE <- (XX - 10)
- \multiply\!dimenE 10 % ** dimE = 10*(XX-10)
- \!divide\!dimenE\!dimenG\!dimenE% ** Now dimE=10t==10*(XX-10)/(XX+10)
- \!removept\!dimenE\!t% ** !t=10t, with "pt" removed
- \!dimenG=\!t\!dimenE% ** dimG=100t**2
- \!removept\!dimenG\!tt% ** !tt=100t**2, with "pt" removed
- \!dimenH=\!tt\!tenAe% ** dimH=10*a5*(10t)**2 /100
- \divide\!dimenH 100
- \advance\!dimenH \!tenAc% ** ditto + 10*a3
- \!dimenH=\!tt\!dimenH% ** ditto * (10t)**2 /100
- \divide\!dimenH 100
- \advance\!dimenH \!tenAa% ** ditto + 10*a1
- \!dimenH=\!t\!dimenH% ** ditto * 10t / 100
- \divide\!dimenH 100 % ** Now dimH = log10(XX) - 1
- \advance\!dimenF \!dimenH}% ** dimF = log10(X)
-
-\def\!logshift#1{%
- \if #1/%
- \def\!next{\ignorespaces}%
- \else
- \advance\!dimenF 1pt
- \def\!next{\!logshift}%
- \fi
- \!next}
-
- \def\!!logshift#1{%
- \advance\!dimenF -1pt
- \if 0#1%
- \def\!next{\!!logshift}%
- \else
- \if p#1%
- \!dimenF=1pt
- \def\!next{\!dimenE=1p}%
- \else
- \def\!next{\!dimenE=#1.}%
- \fi
- \fi
- \!next}
-
-
-% ***********************************************************
-% *** PICTURES (Basic setups for PiCtures; \put commands) ***
-% ***********************************************************
-
-% ** User Commands:
-% ** \beginpicture
-% ** \endpicture
-% ** \endpicturesave <XREG,YREG>
-% ** \setcoordinatesystem units <XUNIT,YUNIT> point at XREF YREF
-% ** \put {OBJECT} [ORIENTATION] <XSHIFT,YSHIFT> at XCOORD YCOORD
-% ** \multiput {OJBECT} [ORIENTATION] <XSHIFT,YSHIFT>) at
-% ** XCOORD YCOORD
-% ** *NUMBER_OF_TIMES DXCOORD DYCOORD /
-% ** \accountingon
-% ** \accountingoff
-% ** \stack [ORIENTATION] <LEADING> {LIST OF ITEMS}
-% ** \lines [ORIENTATION] {LINES}
-% ** \Lines [ORIENTATION] {LINES}
-% ** \setdimensionmode
-% ** \setcoordinatemode
-% ** \Xdistance
-% ** \Ydistance
-
-% ** Internal commands:
-% ** \!setputobject{OBJECT}{[ORIENTATION]<XSHIFT,YSHIFT>}
-% ** \!dimenput{OBJECT}[ORIENTATION]<XSHIFT,YSHIFT>(XDIMEN,YDIMEN)
-% ** \!setdimenmode
-% ** \!setcoordmode
-% ** \!ifdimenmode
-% ** \!ifcoordmode
-
-
-% ** \beginpicture
-% ** \endpicture
-% ** \endpicturesave <XREG,YREG>
-% ** \beginpicture ... \endpicture creates an hbox. Objects are
-% ** placed in this box using the \put command and the like (see below).
-% ** The location of an object is specified in terms of coordinate system(s)
-% ** established by \setcoordinatesystem. Each coordinate system (there
-% ** might be just one) specifies the length of 1 horizontal unit, the length
-% ** of 1 vertical unit, and the coordinates of a "reference point". The
-% ** reference points of various coordinate systems will be in the same
-% ** physical location. The macros keep track of the size of the objects
-% ** and their locations. The resulting hbox is the smallest hbox which
-% ** encloses all the objects, and whose TEK reference point is the point
-% ** on the left edge of the box closest vertically to the PICTEX reference
-% ** point. Using \endpicturesave, you can (globally) save the distance TEK's
-% ** reference point is to the right (respectively, up from) PICTEX's
-% ** reference point in the dimension register \XREG (respectively \YREG).
-% ** You can then \put the picture OBJECT into a larger picture so that its
-% ** reference point is at (XCOORD,YCOORD) with the command
-% ** \put {picture OBJECT} [Bl] <\XREG, \YREG> at XCOORD YCOORD
-
-% ** \beginpicture : See Subsection 1.1 of the manual.
-\def\beginpicture{%
- \setbox\!picbox=\hbox\bgroup%
- \!xleft=\maxdimen
- \!xright=-\maxdimen
- \!ybot=\maxdimen
- \!ytop=-\maxdimen}
-
-% ** \endpicture : See Subsection 1.1 of the manual.
-\def\endpicture{%
- \ifdim\!xleft=\maxdimen% ** check if nothing was put in picbox
- \!xleft=\!zpt \!xright=\!zpt \!ybot=\!zpt \!ytop=\!zpt
- \fi
- \global\!Xleft=\!xleft \global\!Xright=\!xright
- \global\!Ybot=\!ybot \global\!Ytop=\!ytop
- \egroup%
- \ht\!picbox=\!Ytop \dp\!picbox=-\!Ybot
- \ifdim\!Ybot>\!zpt
- \else
- \ifdim\!Ytop<\!zpt
- \!Ybot=\!Ytop
- \else
- \!Ybot=\!zpt
- \fi
- \fi
- \hbox{\kern-\!Xleft\lower\!Ybot\box\!picbox\kern\!Xright}}
-
-% ** \endpicturesave : See Subsection 8.4 of the manual.
-\def\endpicturesave <#1,#2>{%
- \endpicture \global #1=\!Xleft \global #2=\!Ybot \ignorespaces}
-
-
-% ** \setcoordinatesystem units <XUNIT,YUNIT>
-% ** point at XREF YREF
-% ** Each of `units <XUNIT,YUNIT>' and `point at XREF YREF'
-% ** are optional.
-% ** Unit lengths must be given in dimensions (e.g., <10pt,1in>).
-% ** Default unit lengths are 1pt, 1pt, or previous unit lengths.
-% ** Reference point is specified in current units (e.g., 3 5 ).
-% ** Default reference point is 0 0 , or previous reference point.
-% ** Unit lengths and reference points obey TEX's scoping rules.
-% ** See Subsection 1.2 of the manual.
-\def\setcoordinatesystem{%
- \!ifnextchar{u}{\!getlengths }
- {\!getlengths units <\!xunit,\!yunit>}}
-\def\!getlengths units <#1,#2>{%
- \!xunit=#1\relax
- \!yunit=#2\relax
- \!ifcoordmode
- \let\!SCnext=\!SCccheckforRP
- \else
- \let\!SCnext=\!SCdcheckforRP
- \fi
- \!SCnext}
-\def\!SCccheckforRP{%
- \!ifnextchar{p}{\!cgetreference }
- {\!cgetreference point at {\!xref} {\!yref} }}
-\def\!cgetreference point at #1 #2 {%
- \edef\!xref{#1}\edef\!yref{#2}%
- \!xorigin=\!xref\!xunit \!yorigin=\!yref\!yunit
- \!initinboundscheck % ** See linear.tex
- \ignorespaces}
-\def\!SCdcheckforRP{%
- \!ifnextchar{p}{\!dgetreference}%
- {\ignorespaces}}
-\def\!dgetreference point at #1 #2 {%
- \!xorigin=#1\relax \!yorigin=#2\relax
- \ignorespaces}
-
-
-% ** \put {OBJECT} [XY] <XDIMEN,YDIMEN> at (XCOORD,YCOORD)
-% ** `[XY]' and `<XDIMEN,YDIMEN>' are optional.
-% ** First OBJECT is placed in an hbox (the "objectbox") and then a
-% ** "reference point" is assigned to the objectbox as follows:
-% ** [1] first, the reference point is taken to be the center of the box;
-% ** [2] next, centering is overridden by the specifications
-% ** X=l -- reference point along the left edge of the objectbox
-% ** X=r -- reference point along the right edge of the objectbox
-% ** Y=b -- reference point along the bottom edge of the objectbox
-% ** Y=B -- reference point along the Baseline of the objectbox
-% ** Y=t -- reference point along the top edge of the objectbox;
-% ** [3] finally the reference point is shifted left by XDIMEN, down
-% ** by YDIMEN (both default to 0pt).
-% ** The objectbox is placed within PICBOX with its reference point at
-% ** (XCOORD,YCOORD).
-% ** If OBJECT is a saved box, say box0, you have to write
-% ** \put{\box0}... or \put{\copy0}...
-% ** The objectbox is void after the put.
-% ** See Subsection 2.1 of the manual.
-\long\def\put#1#2 at #3 #4 {%
- \!setputobject{#1}{#2}%
- \!xpos=\!M{#3}\!xunit \!ypos=\!M{#4}\!yunit
- \!rotateaboutpivot\!xpos\!ypos%
- \advance\!xpos -\!xorigin \advance\!xpos -\!xshift
- \advance\!ypos -\!yorigin \advance\!ypos -\!yshift
- \kern\!xpos\raise\!ypos\box\!putobject\kern-\!xpos%
- \!doaccounting\ignorespaces}
-
-% ** \multiput etc. Like \put. The objectbox is not voided until the
-% ** termininating /, and is placed repeatedly with:
-% ** XCOORD YCOORD -- the objectbox is put down with its reference point
-% ** at (XCOORD,YCOORD);
-% ** *N DXCOORD DYCOORD -- each of N times the current
-% ** (xcoord,ycoord) is incremented by (DXCOORD,DYCOORD), and the
-% ** objectbox is put down with its reference point at (xcoord,ycoord)
-% ** (This specification has to follow an XCOORD YCOORD pair)
-% ** See Subsection 2.2 of the manual.
-\long\def\multiput #1#2 at {%
- \!setputobject{#1}{#2}%
- \!ifnextchar"{\!putfromfile}{\!multiput}}
-\def\!putfromfile"#1"{%
- \expandafter\!multiput \normalinput #1 /}
-\def\!multiput{%
- \futurelet\!nextchar\!!multiput}
-\def\!!multiput{%
- \if *\!nextchar
- \def\!nextput{\!alsoby}%
- \else
- \if /\!nextchar
- \def\!nextput{\!finishmultiput}%
- \else
- \def\!nextput{\!alsoat}%
- \fi
- \fi
- \!nextput}
-\def\!finishmultiput/{%
- \setbox\!putobject=\hbox{}%
- \ignorespaces}
-
-% ** \!alsoat XCOORD YCOORD
-% ** The objectbox is put down with reference point at XCOORD,YCOORD
-\def\!alsoat#1 #2 {%
- \!xpos=\!M{#1}\!xunit \!ypos=\!M{#2}\!yunit
- \!rotateaboutpivot\!xpos\!ypos%
- \advance\!xpos -\!xorigin \advance\!xpos -\!xshift
- \advance\!ypos -\!yorigin \advance\!ypos -\!yshift
- \kern\!xpos\raise\!ypos\copy\!putobject\kern-\!xpos%
- \!doaccounting
- \!multiput}
-
-% ** \!alsoby*N DXCOORD DYCOORD
-% ** N times, the current (XCOORD,YCOORD) is advanced by (DXCOORD,DYCOORD),
-% ** and the current (shifted, oriented) OBJECT is put down.
-\def\!alsoby*#1 #2 #3 {%
- \!dxpos=\!M{#2}\!xunit \!dypos=\!M{#3}\!yunit
- \!rotateonly\!dxpos\!dypos
- \!ntemp=#1%
- \!!loop\ifnum\!ntemp>0
- \advance\!xpos by \!dxpos \advance\!ypos by \!dypos
- \kern\!xpos\raise\!ypos\copy\!putobject\kern-\!xpos%
- \advance\!ntemp by -1
- \repeat
- \!doaccounting
- \!multiput}
-
-% ** \accountingoff : Suspends PiCTeX's accounting of the aggregate
-% ** size of the picture box.
-% ** \accounting on : Reinstates accounting.
-% ** See Subsection 8.2 of the manual.
-\def\accountingon{\def\!doaccounting{\!!doaccounting}\ignorespaces}
-\def\accountingoff{\def\!doaccounting{}\ignorespaces}
-\accountingon
-\def\!!doaccounting{%
- \!xtemp=\!xpos
- \!ytemp=\!ypos
- \ifdim\!xtemp<\!xleft
- \!xleft=\!xtemp
- \fi
- \advance\!xtemp by \!wd
- \ifdim\!xright<\!xtemp
- \!xright=\!xtemp
- \fi
- \advance\!ytemp by -\!dp
- \ifdim\!ytemp<\!ybot
- \!ybot=\!ytemp
- \fi
- \advance\!ytemp by \!dp
- \advance\!ytemp by \!ht
- \ifdim\!ytemp>\!ytop
- \!ytop=\!ytemp
- \fi}
-
-\long\def\!setputobject#1#2{%
- \setbox\!putobject=\hbox{#1}%
- \!ht=\ht\!putobject \!dp=\dp\!putobject \!wd=\wd\!putobject
- \wd\!putobject=\!zpt
- \!xshift=.5\!wd \!yshift=.5\!ht \advance\!yshift by -.5\!dp
- \edef\!putorientation{#2}%
- \expandafter\!SPOreadA\!putorientation[]\!nil%
- \expandafter\!SPOreadB\!putorientation<\!zpt,\!zpt>\!nil\ignorespaces}
-
-\def\!SPOreadA#1[#2]#3\!nil{\!etfor\!orientation:=#2\do\!SPOreviseshift}
-
-\def\!SPOreadB#1<#2,#3>#4\!nil{\advance\!xshift by -#2\advance\!yshift by -#3}
-
-\def\!SPOreviseshift{%
- \if l\!orientation
- \!xshift=\!zpt
- \else
- \if r\!orientation
- \!xshift=\!wd
- \else
- \if b\!orientation
- \!yshift=-\!dp
- \else
- \if B\!orientation
- \!yshift=\!zpt
- \else
- \if t\!orientation
- \!yshift=\!ht
- \fi
- \fi
- \fi
- \fi
- \fi}
-
-
-% ** \!dimenput{OBJECT} <XDIMEN,YDIMEN> [XY] (XLOC,YLOC)
-% ** This is an internal put routine, similar to \put, except that
-% ** XLOC=distance right from reference point, YLOC=distance up from
-% ** reference point. XLOC and YLOC are dimensions, so this routine
-% ** is completely independent of the current coordinate system.
-% ** This routine does NOT do ROTATIONS.
-\long\def\!dimenput#1#2(#3,#4){%
- \!setputobject{#1}{#2}%
- \!xpos=#3\advance\!xpos by -\!xshift
- \!ypos=#4\advance\!ypos by -\!yshift
- \kern\!xpos\raise\!ypos\box\!putobject\kern-\!xpos%
- \!doaccounting\ignorespaces}
-
-
-% ** The following macros permit the picture drawing routines to be used
-% ** either in the default "coordinate mode", or in "dimension mode".
-% ** In coordinate mode \!M(1.5,\!xunit) expands to 1.5\!xunit
-% ** In dimension mode \!M(1.5pt,\!xunit) expands to 1.5pt
-% ** Dimension mode is useful in coding macros.
-% ** Any special purpose picture macro that sets dimension mode should
-% ** reset coordinate mode before completion.
-% ** See Subsection 9.2 of the manual.
-\def\!setdimenmode{%
- \let\!M=\!M!!\ignorespaces}
-\def\!setcoordmode{%
- \let\!M=\!M!\ignorespaces}
-\def\!ifcoordmode{%
- \ifx \!M \!M!}
-\def\!ifdimenmode{%
- \ifx \!M \!M!!}
-\def\!M!#1#2{#1#2}
-\def\!M!!#1#2{#1}
-\!setcoordmode
-\let\setdimensionmode=\!setdimenmode
-\let\setcoordinatemode=\!setcoordmode
-
-% ** \Xdistance{XCOORD}, \Ydistance{YCOORD} are the horizontal and
-% ** vertical distances from the origin (0,0) to the point
-% ** (XCOORD,YCOORD) in the current coordinate system.
-% ** See Subsection 9.2 of the manual.
-\def\Xdistance#1{%
- \!M{#1}\!xunit
- \ignorespaces}
-\def\Ydistance#1{%
- \!M{#1}\!yunit
- \ignorespaces}
-
-% ** The following macros -- \stack, \line, and \Lines -- are useful for
-% ** annotating PiCtures. They can be used outside the \beginpicture ...
-% ** \endpicture environment.
-
-% ** \stack [POSITIONING] <LEADING> {VALUESLIST}
-% ** Builds a vertical stack of the values in VALUESLIST. Values in
-% ** VALUESLIST are separated by commas. In the resulting stack, values are
-% ** centered by default, and positioned flush left (right) if
-% ** POSITIONING = l (r). Values are separated vertically by LEADING,
-% ** which defaults to \stackleading.
-% ** See Subsection 2.3 of the manual.
-\def\stack{%
- \!ifnextchar[{\!stack}{\!stack[c]}}
-\def\!stack[#1]{%
- \let\!lglue=\hfill \let\!rglue=\hfill
- \expandafter\let\csname !#1glue\endcsname=\relax
- \!ifnextchar<{\!!stack}{\!!stack<\stackleading>}}
-\def\!!stack<#1>#2{%
- \vbox{\def\!valueslist{}\!ecfor\!value:=#2\do{%
- \expandafter\!rightappend\!value\withCS{\\}\to\!valueslist}%
- \!lop\!valueslist\to\!value
- \let\\=\cr\lineskiplimit=\maxdimen\lineskip=#1%
- \baselineskip=-1000pt\halign{\!lglue##\!rglue\cr \!value\!valueslist\cr}}%
- \ignorespaces}
-
-% ** \lines [POSITIONING] {LINES}
-% ** Builds a vertical array of the lines in LINES. Each line in LINES
-% ** is terminated by a \cr. In the resulting array, lines are
-% ** centered by default, and positioned flush left (right) if
-% ** POSITIONING = l (r). The lines in the array are subject to TeX's
-% ** usual spacing rules: in particular the baselines are ordinarily an equal
-% ** distance apart. The baseline of the array is the baseline of the
-% ** the bottom line.
-% ** See Subsection 2.3 of the manual.
-\def\lines{%
- \!ifnextchar[{\!lines}{\!lines[c]}}
-\def\!lines[#1]#2{%
- \let\!lglue=\hfill \let\!rglue=\hfill
- \expandafter\let\csname !#1glue\endcsname=\relax
- \vbox{\halign{\!lglue##\!rglue\cr #2\crcr}}%
- \ignorespaces}
-
-% ** \Lines [POSITIONING] {LINES}
-% ** Like \lines, but the baseline of the array is the baseline of the
-% ** top line. See Subsection 2.3 of the manual.
-\def\Lines{%
- \!ifnextchar[{\!Lines}{\!Lines[c]}}
-\def\!Lines[#1]#2{%
- \let\!lglue=\hfill \let\!rglue=\hfill
- \expandafter\let\csname !#1glue\endcsname=\relax
- \vtop{\halign{\!lglue##\!rglue\cr #2\crcr}}%
- \ignorespaces}
-
-
-% *********************************************
-% *** PLOTTING (Things to do with plotting) ***
-% *********************************************
-
-% ** User commands
-% ** \setplotsymbol ({PLOTSYMBOL} [ORIENTATION] <XSHIFT,YSHIFT>)
-% ** \savelinesandcurves on "FILE_NAME"
-% ** \dontsavelinesandcurves
-% ** \writesavefile {MESSAGE}
-% ** \replot {FILE_NAME}
-
-% ** Internal command
-% ** \!plot(XDIMEN,YDIMEN)
-
-% ** \setplotsymbol ({PLOTSYMBOL} [ ] < , >)
-% ** Save PLOTSYMBOL away in an hbox for use with curve plotting routines
-% ** See Subsection 5.2 of the manual.
-\def\setplotsymbol(#1#2){%
- \!setputobject{#1}{#2}
- \setbox\!plotsymbol=\box\!putobject%
- \!plotsymbolxshift=\!xshift
- \!plotsymbolyshift=\!yshift
- \ignorespaces}
-
-\setplotsymbol({\fiverm .})% ** initialize plotsymbol
-
-
-% ** \!plot is either \!!plot (when no lines and curves are being saved) or
-% ** \!!!plot (when lines and curves are being saved)
-
-% ** \!!plot(XDIMEN,YDIMEN)
-% ** Places the current plotsymbol a horizontal distance=XDIMEN-xorigin
-% ** and a vertical distance=YDIMEN-yorigin from the current
-% ** reference point.
-\def\!!plot(#1,#2){%
- \!dimenA=-\!plotxorigin \advance \!dimenA by #1% ** over
- \!dimenB=-\!plotyorigin \advance \!dimenB by #2% ** up
- \kern\!dimenA\raise\!dimenB\copy\!plotsymbol\kern-\!dimenA%
- \ignorespaces}
-
-% ** \!!!plot(XDIMEN,YDIMEN)
-% ** Like \!!plot, but also saves the plot location in units of
-% ** scaled point, on file `replotfile'
-\def\!!!plot(#1,#2){%
- \!dimenA=-\!plotxorigin \advance \!dimenA by #1% ** over
- \!dimenB=-\!plotyorigin \advance \!dimenB by #2% ** up
- \kern\!dimenA\raise\!dimenB\copy\!plotsymbol\kern-\!dimenA%
- \!countE=\!dimenA
- \!countF=\!dimenB
- \immediate\write\!replotfile{\the\!countE,\the\!countF.}%
- \ignorespaces}
-
-
-% ** \savelinesandcurves on "FILE_NAME"
-% ** Switch to save locations used for plotting lines and curves
-% ** (No advantage in saving locations for solid lines; however
-% ** replotting curve locations speeds things up by a factor of about 4.
-% ** \dontsavelinesandcurves
-% ** Terminates \savelinesandcurves. The default.
-% ** See Subsection 5.6 of the manual.
-\def\savelinesandcurves on "#1" {%
- \immediate\closeout\!replotfile
- \immediate\openout\!replotfile=#1%
- \let\!plot=\!!!plot}
-
-\def\dontsavelinesandcurves {%
- \let\!plot=\!!plot}
-\dontsavelinesandcurves
-
-% ** \writesavefile {MESSAGE}
-% ** The message is preceded by a "%", so that it won't interfere
-% ** with replotting.
-% ** See Subsection 5.6 of the manual.
-{\catcode`\%=11\xdef\!Commentsignal{%}}
-\def\writesavefile#1 {%
- \immediate\write\!replotfile{\!Commentsignal #1}%
- \ignorespaces}
-
-% ** \replot "FILE_NAME"
-% ** Replots the locations saved earlier under \savelinesandcurves
-% ** on "FILE_NAME"
-% ** See Subsection 5.6 of the manual.
-\def\replot"#1" {%
- \expandafter\!replot\normalinput #1 /}
-\def\!replot#1,#2. {%
- \!dimenA=#1sp
- \kern\!dimenA\raise#2sp\copy\!plotsymbol\kern-\!dimenA
- \futurelet\!nextchar\!!replot}
-\def\!!replot{%
- \if /\!nextchar
- \def\!next{\!finish}%
- \else
- \def\!next{\!replot}%
- \fi
- \!next}
-% **************************************************
-% *** PYTHAGORAS (Euclidean distance function) ***
-% **************************************************
-
-% ** User command:
-% ** \placehypotenuse for <dimension1> and <dimension2> in <register>
-
-% ** Internal command:
-% ** \!Pythag{X}{Y}{Z}
-% ** Input X,Y are dimensions, or dimension registers.
-% ** Output Z == sqrt(X**2+Y**2) must be a dimension register.
-% ** Assumes that |X|+|Y| < 2048pt (about 28in).
-
-% ** Without loss of generality, suppose x>0, y>0. Put s = x+y,
-% ** z = sqrt(x**2+y**2). Then z = s*f, where f = sqrt(t**2 + (1-t)**2)
-% ** = sqrt((1+tau**2)/2), where t = x/s and tau = 2(t-1/2) .
-
-% ** Uses the \!divide macro (which uses registers \!dimenA--\!dimenD.
-% ** Uses the \!removept macro (e.g., 123.45pt --> 123.45)
-% ** Uses registers \!dimenE--\!dimenI.
-\def\!Pythag#1#2#3{%
- \!dimenE=#1\relax
- \ifdim\!dimenE<\!zpt
- \!dimenE=-\!dimenE
- \fi% ** dimE = |x|
- \!dimenF=#2\relax
- \ifdim\!dimenF<\!zpt
- \!dimenF=-\!dimenF
- \fi% ** dimF = |y|
- \advance \!dimenF by \!dimenE% ** dimF = s = |x|+|y|
- \ifdim\!dimenF=\!zpt
- \!dimenG=\!zpt% ** dimG = z = sqrt(x**2+y**2)
- \else
- \!divide{8\!dimenE}\!dimenF\!dimenE% ** now dimE = 8t = (8|x|)/s
- \advance\!dimenE by -4pt% ** 8tau = (8t-4)*2
- \!dimenE=2\!dimenE% ** (tau = 2*t - 1)
- \!removept\!dimenE\!!t% ** 8tau, without "pt"
- \!dimenE=\!!t\!dimenE% ** (8tau)**2, in pts
- \advance\!dimenE by 64pt% ** u = [64 + (8tau)**2]/2
- \divide \!dimenE by 2% ** [u = (8f)**2]
- \!dimenH=7pt% ** initial guess g at sqrt(u)
- \!!Pythag\!!Pythag\!!Pythag% ** 3 iterations give sqrt(u)
- \!removept\!dimenH\!!t% ** 8f=sqrt(u), without "pt"
- \!dimenG=\!!t\!dimenF% ** z = (8f)*s/8
- \divide\!dimenG by 8
- \fi
- #3=\!dimenG
- \ignorespaces}
-
-\def\!!Pythag{% ** Newton-Raphson for sqrt
- \!divide\!dimenE\!dimenH\!dimenI% ** v = u/g
- \advance\!dimenH by \!dimenI% ** g <-- (g + u/g)/2
- \divide\!dimenH by 2}
-
-% ** \placehypotenuse for <XI> and <ETA> in <ZETA>
-% ** See Subsection 9.3 of the manual.
-\def\placehypotenuse for <#1> and <#2> in <#3> {%
- \!Pythag{#1}{#2}{#3}}
-
-
-% **********************************************
-% *** QUADRATIC ARC (Draws a quadratic arc) ***
-% **********************************************
-
-% ** Internal command
-% ** \!qjoin (XCOORD1,YCOORD1) (XCOORD2,YCOORD2)
-
-% ** \!qjoin (XCOORD1,YCOORD1) (XCOORD2,YCOORD2)
-% ** Draws an arc starting at the (last) point specified by the most recent
-% ** \!qjoin, or \!ljoin, or \!start and passing through (X_1,Y_1), (X_2,Y_2).
-% ** Uses quadratic interpolation in both x and y:
-% ** x(t), 0 <= t <= 1, interpolates x_0, x_1, x_2 at t=0, .5, 1
-% ** y(t), 0 <= t <= 1, interpolates y_0, y_1, y_2 at t=0, .5, 1
-
-\def\!qjoin (#1,#2) (#3,#4){%
- \advance\!intervalno by 1
- \!ifcoordmode
- \edef\!xmidpt{#1}\edef\!ymidpt{#2}%
- \else
- \!dimenA=#1\relax \edef\!xmidpt{\the\!dimenA}%
- \!dimenA=#2\relax \edef\!xmidpt{\the\!dimenA}%
- \fi
- \!xM=\!M{#1}\!xunit \!yM=\!M{#2}\!yunit \!rotateaboutpivot\!xM\!yM
- \!xE=\!M{#3}\!xunit \!yE=\!M{#4}\!yunit \!rotateaboutpivot\!xE\!yE
-%
-% ** Find coefficients for x(t)=a_x + b_x*t + c_x*t**2
- \!dimenA=\!xM \advance \!dimenA by -\!xS% ** dimA = I = xM - xS
- \!dimenB=\!xE \advance \!dimenB by -\!xM% ** dimB = II = xE-xM
- \!xB=3\!dimenA \advance \!xB by -\!dimenB% ** b=3I-II
- \!xC=2\!dimenB \advance \!xC by -2\!dimenA% ** c=2(II-I)
-%
-% ** Find coefficients for y(t)=y_x + b_y*t + c_y*t**2
- \!dimenA=\!yM \advance \!dimenA by -\!yS%
- \!dimenB=\!yE \advance \!dimenB by -\!yM%
- \!yB=3\!dimenA \advance \!yB by -\!dimenB%
- \!yC=2\!dimenB \advance \!yC by -2\!dimenA%
-%
-% ** Use Simpson's rule to calculate arc length over [0,1/2]:
-% ** arc length = 1/2[1/6 f(0) + 4/6 f(1/4) + 1/6 f(1/2)]
-% ** with f(t) = sqrt(x'(t)**2 + y'(t)**2).
- \!xprime=\!xB \!yprime=\!yB% ** x'(t) = b + 2ct
- \!dxprime=.5\!xC \!dyprime=.5\!yC% ** dt=1/4 ==> dx'(t) = c/2
- \!getf \!midarclength=\!dimenA
- \!getf \advance \!midarclength by 4\!dimenA
- \!getf \advance \!midarclength by \!dimenA
- \divide \!midarclength by 12
-%
-% ** Get arc length over [0,1].
- \!arclength=\!dimenA
- \!getf \advance \!arclength by 4\!dimenA
- \!getf \advance \!arclength by \!dimenA
- \divide \!arclength by 12% ** Now have arc length over [1/2,1]
- \advance \!arclength by \!midarclength
- \global\advance \totalarclength by \!arclength
-%
-%
-% ** Check to see if there's anything to plot in this interval
- \ifdim\!distacross>\!arclength
- \advance \!distacross by -\!arclength% ** nothing
-%
- \else
- \!initinverseinterp% ** initialize for inverse interpolation on arc length
- \loop\ifdim\!distacross<\!arclength% ** loop over points on arc
- \!inverseinterp% ** find t such that arc length[0,t] = distacross,
-% ** using inverse quadratic interpolation
-% ** now evaluate x(t)=(c*t + b)*t + a
- \!xpos=\!t\!xC \advance\!xpos by \!xB
- \!xpos=\!t\!xpos \advance \!xpos by \!xS
-% ** evaluate y(t)
- \!ypos=\!t\!yC \advance\!ypos by \!yB
- \!ypos=\!t\!ypos \advance \!ypos by \!yS
- \!plotifinbounds% ** plot point if in bounds
- \advance\!distacross \plotsymbolspacing%** advance arc length for next pt
- \!advancedashing% ** see "linear"
- \repeat
-%
- \advance \!distacross by -\!arclength% ** prepare for next interval
- \fi
-%
- \!xS=\!xE% ** shift ending points to starting points
- \!yS=\!yE
- \ignorespaces}
-
-
-% ** \!getf -- Calculates sqrt(x'(t)**2 + y'(t)**2) and advances
-% ** x'(t) and y'(t)
-\def\!getf{\!Pythag\!xprime\!yprime\!dimenA%
- \advance\!xprime by \!dxprime
- \advance\!yprime by \!dyprime}
-
-
-% ** \!initinverseinterp -- initializes for inverse quadratic interpolation
-% ** of arc length provided 1/3 < midarclength/arclength < 2/3; otherwise
-% ** initializes for inverse linear interpolation.
-\def\!initinverseinterp{%
- \ifdim\!arclength>\!zpt
- \!divide{8\!midarclength}\!arclength\!dimenE% ** dimE=8w=8r/s, where r
-% ** = midarclength, s=arclength
-% ** Test for w out of range: w<1/3 or w>2/3
- \ifdim\!dimenE<\!wmin \!setinverselinear
- \else
- \ifdim\!dimenE>\!wmax \!setinverselinear
- \else% ** w in range: initialize
- \def\!inverseinterp{\!inversequad}\ignorespaces
-%
-% ** Calculate the coefficients \!beta and \!gamma of the quadratic
-% ** t = \!beta*v + \!gamma*v**2
-% ** taking the values t=0, 1/2, 1 at v=0, w==r/s, 1 respectively:
-% ** \!beta = (1/2 - w**2)/[w(1-w)]
-% ** \!gamma = 1 - beta.
-%
- \!removept\!dimenE\!Ew% ** 8w, without "pt"
- \!dimenF=-\!Ew\!dimenE% ** -(8w)**2
- \advance\!dimenF by 32pt% ** 32 - (8w)**2
- \!dimenG=8pt
- \advance\!dimenG by -\!dimenE% ** 8 - 8w
- \!dimenG=\!Ew\!dimenG% ** (8w)*(8-8w)
- \!divide\!dimenF\!dimenG\!beta% ** beta = (32-(8w)**2)/(8w(8-8w))
-% ** = (1/2 - w**2)/(w(1-w))
- \!gamma=1pt
- \advance \!gamma by -\!beta% ** gamma = 1-beta
- \fi% ** end of the \ifdim\!dimenE>\!wmax
- \fi% ** end of the \ifdim\!dimenE<\!wmin
- \fi% ** end of the \ifdim\!arclength>\!zpt
- \ignorespaces}
-
-
-% ** For 0 <= t <= 1, let AL(t) = arclength[0,t]/arclength[0,1]; note
-% ** AL(0)=0, AL(1/2)=midarclength/arclength, AL(1)=1. This routine
-% ** calculates an approximation to AL^{-1}(distance across/arclength),
-% ** using the assumption that AL^{-1} is quadratic. Specifically,
-% ** it finds t such that
-% ** AL^{-1}(v) =. t = v*(\!beta + \!gamma*v)
-% ** where \!beta and \!gamma are set by \!initinv, and where
-% ** v=distance across/arclength
-\def\!inversequad{%
- \!divide\!distacross\!arclength\!dimenG% ** dimG = v = distacross/arclength
- \!removept\!dimenG\!v% ** v, without "pt"
- \!dimenG=\!v\!gamma% ** gamma*v
- \advance\!dimenG by \!beta% ** beta + gamma*v
- \!dimenG=\!v\!dimenG% ** t = v*(beta + gamma*v)
- \!removept\!dimenG\!t}% ** t, without "pt"
-
-
-% ** When w <= 1/3 or w >= 2/3, the following routine writes (using
-% ** plain TEK's \wlog command) a warning message on the user's log file,
-% ** and initializes for inverse linear interpolation on arc length.
-\def\!setinverselinear{%
- \def\!inverseinterp{\!inverselinear}%
- \divide\!dimenE by 8 \!removept\!dimenE\!t
- \!countC=\!intervalno \multiply \!countC 2
- \!countB=\!countC \advance \!countB -1
- \!countA=\!countB \advance \!countA -1
- \wlog{\the\!countB th point (\!xmidpt,\!ymidpt) being plotted
- doesn't lie in the}%
- \wlog{ middle third of the arc between the \the\!countA th
- and \the\!countC th points:}%
- \wlog{ [arc length \the\!countA\space to \the\!countB]/[arc length
- \the \!countA\space to \the\!countC]=\!t.}%
- \ignorespaces}
-
-% ** Inverse linear interpolation
-\def\!inverselinear{%
- \!divide\!distacross\!arclength\!dimenG
- \!removept\!dimenG\!t}
-
-
-% **************************************
-% ** ROTATIONS (Handles rotations) ***
-% **************************************
-
-% ** User commands
-% ** \startrotation [by COS_OF_ANGLE SIN_OF_ANGLE] [about XPIVOT YPIVOT]
-% ** \stoprotation
-
-% ** \startrotation [by COS_OF_ANGLE SIN_OF_ANGLE] [about XPIVOT YPIVOT]
-% ** Future (XCOORD,YCOORD)'s will be rotated about (XPIVOT,YPIVOT)
-% ** by the angle with the give COS and SIN. Both fields are optional.
-% ** [COS,SIN] defaults to previous value, or (1,0).
-% ** (XPIVOT,YPIVOT) defaults to previous value, or (0,0)
-% ** You can't change the coordinate system in the scope of a rotation.
-% ** See Subsection 9.1 of the manual.
-\def\startrotation{%
- \let\!rotateaboutpivot=\!!rotateaboutpivot
- \let\!rotateonly=\!!rotateonly
- \!ifnextchar{b}{\!getsincos }%
- {\!getsincos by {\!cosrotationangle} {\!sinrotationangle} }}
-\def\!getsincos by #1 #2 {%
- \edef\!cosrotationangle{#1}%
- \edef\!sinrotationangle{#2}%
- \!ifcoordmode
- \let\!ROnext=\!ccheckforpivot
- \else
- \let\!ROnext=\!dcheckforpivot
- \fi
- \!ROnext}
-\def\!ccheckforpivot{%
- \!ifnextchar{a}{\!cgetpivot}%
- {\!cgetpivot about {\!xpivotcoord} {\!ypivotcoord} }}
-\def\!cgetpivot about #1 #2 {%
- \edef\!xpivotcoord{#1}%
- \edef\!ypivotcoord{#2}%
- \!xpivot=#1\!xunit \!ypivot=#2\!yunit
- \ignorespaces}
-\def\!dcheckforpivot{%
- \!ifnextchar{a}{\!dgetpivot}{\ignorespaces}}
-\def\!dgetpivot about #1 #2 {%
- \!xpivot=#1\relax \!ypivot=#2\relax
- \ignorespaces}
-
-
-% ** Following terminates rotation.
-% ** See Subsection 9.1 of the manual.
-\def\stoprotation{%
- \let\!rotateaboutpivot=\!!!rotateaboutpivot
- \let\!rotateonly=\!!!rotateonly
- \ignorespaces}
-
-% ** !!rotateaboutpivot{XREG}{YREG}
-% ** XREG <-- xpvt + cos(angle)*(XREG-xpvt) - sin(angle)*(YREG-ypvt)
-% ** YREG <-- ypvt + cos(angle)*(YREG-ypvt) + sin(angle)*(XREG-xpvt)
-% ** XREG,YREG are dimension registers. Can't be \!dimenA to \!dimenD
-\def\!!rotateaboutpivot#1#2{%
- \!dimenA=#1\relax \advance\!dimenA -\!xpivot
- \!dimenB=#2\relax \advance\!dimenB -\!ypivot
- \!dimenC=\!cosrotationangle\!dimenA
- \advance \!dimenC -\!sinrotationangle\!dimenB
- \!dimenD=\!cosrotationangle\!dimenB
- \advance \!dimenD \!sinrotationangle\!dimenA
- \advance\!dimenC \!xpivot \advance\!dimenD \!ypivot
- #1=\!dimenC #2=\!dimenD
- \ignorespaces}
-
-% ** \!!rotateonly{XREG}{YREG}
-% ** Like \!!rotateaboutpivot, but with a pivot of (0,0)
-\def\!!rotateonly#1#2{%
- \!dimenA=#1\relax \!dimenB=#2\relax
- \!dimenC=\!cosrotationangle\!dimenA
- \advance \!dimenC -\!rotsign\!sinrotationangle\!dimenB
- \!dimenD=\!cosrotationangle\!dimenB
- \advance \!dimenD \!rotsign\!sinrotationangle\!dimenA
- #1=\!dimenC #2=\!dimenD
- \ignorespaces}
-\def\!rotsign{}
-\def\!!!rotateaboutpivot#1#2{\relax}
-\def\!!!rotateonly#1#2{\relax}
-\stoprotation
-
-\def\!reverserotateonly#1#2{%
- \def\!rotsign{-}%
- \!rotateonly{#1}{#2}%
- \def\!rotsign{}%
- \ignorespaces}
-
-
-% **********************************
-% *** SHADING (Handles shading) ***
-% **********************************
-
-% ** User commands
-% ** \setshadegrid [span <SPAN>] [point at XSHADE YSHADE]
-% ** \setshadesymbol [<LS, RS, BS, TS>] ({SHADESYMBOL}
-% ** <XDIMEN,YDIMEN> [ORIENTATION])
-
-% ** Internal commands:
-% ** \!startvshade (xS,ybS,ytS)
-% ** \!starthshade (yS,xlS,xrS)
-% ** \!lshade [<LS,RS,BS,TS>]
-% ** ** when shading vertically:
-% ** [the region from (xS,ybS,ytS) to] (xE,ybE,ytE)
-% ** ** when shading horizontally:
-% ** [the region from (yS,xlS,xrS) to] (yE,xlE,xrE)
-% ** \!qshade [<LS,RS,BS,TS>]
-% ** ** when shading vertically:
-% ** [the region from (xS,ybS,ytS) to] (xM,ybM,ytM) (xE,ybE,ytE)
-% ** ** when shading horizontally:
-% ** [the region from (yS,xlS,xrS) to] (yM,xlM,xrM) (yE,xlE,xrE)
-% ** \!lattice{ANCHOR}{SPAN}{LOCATION}{INDEX}{LATTICE LOCATION}
-% ** \!override{NOMINAL DIMEN}{REPLACEMENT DIMEN}{DIMEN}
-
-
-% ** The shading routine can operate either in a "vertical mode" or a
-% ** "horizontal mode". In vertical mode, the region to be shaded is specified
-% ** in the form
-% ** {(x,y): xl <= x <= xr & yb(x) <= y <= yt(x)}
-% ** where yb and yt are functions of x. In horizontal mode, the region
-% ** is specified in the form
-% ** {(x,y): yb <= y <= yt & xl(y) <= x <= xr(y)}.
-% ** The functions yb and yt may be either both linear or both quadratic;
-% ** similarly for xl and xr. A region with say, piecewise quadratic bottom
-% ** and top boundaries, can be shaded by consecutive (vertical) \!qshades,
-% ** proceeding from left to right. Similarly, a region with piecewise
-% ** quadratic left and right boundaries can be shaded by consecutive
-% ** (horizontal) \!qshades, proceeding from bottom to top. More complex
-% ** regions can be shaded by partitioning them into appropriate subregions,
-% ** and shading those.
-
-% ** Shading is accomplished by placing a user-selected shading symbol at
-% ** those points of a regular grid which fall within the region to be
-% ** shaded. This region can be "shrunk" so that a largish shading symbol
-% ** will not extend outside it. Shrinking is accomplished by specifying
-% ** shrinkages for the left, right, bottom, and top boundaries, in a manner
-% ** discussed further below.
-
-% ** \shades and \!joins MUST NOT be intermingled. Finish drawing a curve
-% ** before starting to shade a region, and finish shading a region before
-% ** starting to draw a curve.
-
-
-% ** \setshadegrid [span <SPAN>] [point at XSHADE YSHADE]
-% ** The shading symbol is placed down on the points of a grid centered
-% ** at the coordinate point (XSHADE,YSHADE). The grid points are of the
-% ** form (j*SPAN,k*SPAN), with j+k even. SPAN is specified
-% ** as a dimension.
-% ** (XSHADE,YSHADE) defaults to previous (XSHADE,YSHADE) (or (0,0) if none)
-% ** SPAN defaults to previous span (or 5pt if none)
-% ** See Subsection 7.2 of the manual.
-\def\setshadegrid{%
- \!ifnextchar{s}{\!getspan }
- {\!getspan span <\!dshade>}}
-\def\!getspan span <#1>{%
- \!dshade=#1\relax
- \!ifcoordmode
- \let\!GRnext=\!GRccheckforAP
- \else
- \let\!GRnext=\!GRdcheckforAP
- \fi
- \!GRnext}
-\def\!GRccheckforAP{%
- \!ifnextchar{p}{\!cgetanchor }
- {\!cgetanchor point at {\!xshadesave} {\!yshadesave} }}
-\def\!cgetanchor point at #1 #2 {%
- \edef\!xshadesave{#1}\edef\!yshadesave{#2}%
- \!xshade=\!xshadesave\!xunit \!yshade=\!yshadesave\!yunit
- \ignorespaces}
-\def\!GRdcheckforAP{%
- \!ifnextchar{p}{\!dgetanchor}%
- {\ignorespaces}}
-\def\!dgetanchor point at #1 #2 {%
- \!xshade=#1\relax \!yshade=#2\relax
- \ignorespaces}
-
-% ** \setshadesymbol [<LS, RS, BS, TS>] ({SHADESYMBOL}
-% ** <XDIMEN,YDIMEN> [ORIENTATION])
-% ** Saves SHADESYMBOL away in an hbox for use with shading routines.
-% ** A shade symbol will not be plotted if its plot position comes within
-% ** distance LS of the left boundary, RS of the right boundary, TS of the
-% ** top boundary, BS of the bottom boundary. These parameters have
-% ** default values that should work in most cases (see below).
-% ** To override a default value, specify the replacement value
-% ** in the appropriate subfield of the shrinkages field.
-% ** 0pt may be coded as "z" (without the quotes). To accept a
-% ** default value, leave the field empty. Thus
-% ** [,z,,5pt] sets LS=default, RS=0pt, BS=default, TS=5pt .
-% ** Skipping the shrinkages field accepts all the defaults.
-% ** See Subsection 7.1 of the manual.
-\def\setshadesymbol{%
- \!ifnextchar<{\!setshadesymbol}{\!setshadesymbol<,,,> }}
-
-\def\!setshadesymbol <#1,#2,#3,#4> (#5#6){%
-% ** set the shadesymbol
- \!setputobject{#5}{#6}%
- \setbox\!shadesymbol=\box\!putobject%
- \!shadesymbolxshift=\!xshift \!shadesymbolyshift=\!yshift
-%
-% ** set the shrinkages
- \!dimenA=\!xshift \advance\!dimenA \!smidge% ** default LS = xshift - smidge
- \!override\!dimenA{#1}\!lshrinkage%
- \!dimenA=\!wd \advance \!dimenA -\!xshift% ** default RS = width - xshift
- \advance\!dimenA \!smidge% - smidge
- \!override\!dimenA{#2}\!rshrinkage
- \!dimenA=\!dp \advance \!dimenA \!yshift% ** default BS = depth + yshift
- \advance\!dimenA \!smidge% - smidge
- \!override\!dimenA{#3}\!bshrinkage
- \!dimenA=\!ht \advance \!dimenA -\!yshift% ** default TS = height - yshift
- \advance\!dimenA \!smidge% - smidge
- \!override\!dimenA{#4}\!tshrinkage
- \ignorespaces}
-\def\!smidge{-.2pt}%
-
-% ** \!override{NOMINAL DIMEN}{REPLACEMENT DIMEN}{DIMEN}
-% ** Overrides the NOMINAL DIMEN by the REPLACEMENT DIMEN to produce DIMEN,
-% ** according to the following rules:
-% ** REPLACEMENT DIMEN empty: DIMEN <-- NOMINAL DIMEN
-% ** REPLACEMENT DIMEN z: DIMEN <-- 0pt
-% ** otherwise: DIMEN <-- REPLACEMENT DIMEN
-% ** DIMEN must be a dimension register
-\def\!override#1#2#3{%
- \edef\!!override{#2}%
- \ifx \!!override\empty
- #3=#1\relax
- \else
- \if z\!!override
- #3=\!zpt
- \else
- \ifx \!!override\!blankz
- #3=\!zpt
- \else
- #3=#2\relax
- \fi
- \fi
- \fi
- \ignorespaces}
-\def\!blankz{ z}
-
-\setshadesymbol ({\fiverm .})% ** initialize plotsymbol
-% ** \fivesy ^^B is a small cross
-
-
-% ** \!startvshade [at] (xS,ybS,ytS)
-% ** Initiates vertical shading mode
-\def\!startvshade#1(#2,#3,#4){%
- \let\!!xunit=\!xunit%
- \let\!!yunit=\!yunit%
- \let\!!xshade=\!xshade%
- \let\!!yshade=\!yshade%
- \def\!getshrinkages{\!vgetshrinkages}%
- \let\!setshadelocation=\!vsetshadelocation%
- \!xS=\!M{#2}\!!xunit
- \!ybS=\!M{#3}\!!yunit
- \!ytS=\!M{#4}\!!yunit
- \!shadexorigin=\!xorigin \advance \!shadexorigin \!shadesymbolxshift
- \!shadeyorigin=\!yorigin \advance \!shadeyorigin \!shadesymbolyshift
- \ignorespaces}
-
-% ** \!starthshade [at] (yS,xlS,xrS)
-% ** Initiates horizontal shading mode
-\def\!starthshade#1(#2,#3,#4){%
- \let\!!xunit=\!yunit%
- \let\!!yunit=\!xunit%
- \let\!!xshade=\!yshade%
- \let\!!yshade=\!xshade%
- \def\!getshrinkages{\!hgetshrinkages}%
- \let\!setshadelocation=\!hsetshadelocation%
- \!xS=\!M{#2}\!!xunit
- \!ybS=\!M{#3}\!!yunit
- \!ytS=\!M{#4}\!!yunit
- \!shadexorigin=\!xorigin \advance \!shadexorigin \!shadesymbolxshift
- \!shadeyorigin=\!yorigin \advance \!shadeyorigin \!shadesymbolyshift
- \ignorespaces}
-
-
-% ** \!lattice{ANCHOR}{SPAN}{LOCATION}{INDEX}{LATTICE LOCATION}
-% ** Consider the lattice with points ANCHOR + j*SPAN. This routine determines
-% ** the index k of the smallest lattice point >= LOCATION, and sets
-% ** LATTICE LOCATION = ANCHOR + k*SPAN.
-% ** INDEX is assumed to be a count register, LATTICE LOCATION a dimen reg.
-\def\!lattice#1#2#3#4#5{%
- \!dimenA=#1% ** dimA = ANCHOR
- \!dimenB=#2% ** dimB = SPAN (assumed > 0pt)
- \!countB=\!dimenB% ** ctB = SPAN, as a count
-%
-% ** Determine index of smallest lattice point >= LOCATION
- \!dimenC=#3% ** dimC = LOCATION
- \advance\!dimenC -\!dimenA% ** now dimC = LOCATION-ANCHOR
- \!countA=\!dimenC% ** ctA = above, as a count
- \divide\!countA \!countB% ** now ctA = desired index, if dimC <= 0
- \ifdim\!dimenC>\!zpt
- \!dimenD=\!countA\!dimenB% ** (tentative k)*span
- \ifdim\!dimenD<\!dimenC% ** if this is false, ctA = desired index
- \advance\!countA 1 % ** if true, have to add 1
- \fi
- \fi
-%
- \!dimenC=\!countA\!dimenB% ** lattice location = anchor + ctA*span
- \advance\!dimenC \!dimenA
- #4=\!countA% ** the desired index
- #5=\!dimenC% ** corresponding lattice location
- \ignorespaces}
-
-
-% ** \!qshade [with shrinkages] [[LS,RS,BS,TS]]
-% ***** during vertical shading:
-% ** [the region from (xS,ybS,ytS) to] (xM,ybM,ytM) [and] (xE,ybE,ytE)
-% ** Shades the region {(x,y): xS <= x <= xE, yb(x) <= y <= yt(x)}, where
-% ** yb is the quadratic thru (xS,ybS) & (xM,ybM) & (xE,ybE)
-% ** yt is the quadratic thru (xS,ytS) & (xM,ybM) & (xE,ytE)
-% ** xS,ybS,ytS are either given by \!startvshade or carried over
-% ** as the ending values of the immediately preceding \!qshade.
-% ** For the interpretation of LS, RS, BS, & TS, see \setshadesymbol. The
-% ** values set there can be overridden, for the course of this \!qshade
-% ** only, in the same manner as overrides are specified for
-% ** \setshadesymbol.
-% ***** during horizontal shading:
-% ** [the region from (yS,xlS,xrS) to] (yM,xlM,xrM) [and] (yE,xlE,xrE)
-\def\!qshade#1(#2,#3,#4)#5(#6,#7,#8){%
- \!xM=\!M{#2}\!!xunit
- \!ybM=\!M{#3}\!!yunit
- \!ytM=\!M{#4}\!!yunit
- \!xE=\!M{#6}\!!xunit
- \!ybE=\!M{#7}\!!yunit
- \!ytE=\!M{#8}\!!yunit
- \!getcoeffs\!xS\!ybS\!xM\!ybM\!xE\!ybE\!ybB\!ybC%**Get coefficients B & C for
- \!getcoeffs\!xS\!ytS\!xM\!ytM\!xE\!ytE\!ytB\!ytC%**y=y0 + B(x-X0) + C(x-X0)**2
- \def\!getylimits{\!qgetylimits}%
- \!shade{#1}\ignorespaces}
-
-% ** \!lshade ... (xE,ybE,ytE)
-% ** This is like \!qshade, but the top and bottom boundaries are linear,
-% ** rather than quadratic.
-\def\!lshade#1(#2,#3,#4){%
- \!xE=\!M{#2}\!!xunit
- \!ybE=\!M{#3}\!!yunit
- \!ytE=\!M{#4}\!!yunit
- \!dimenE=\!xE \advance \!dimenE -\!xS% ** xE-xS
- \!dimenC=\!ytE \advance \!dimenC -\!ytS% ** ytE-ytS
- \!divide\!dimenC\!dimenE\!ytB% ** ytB = (ytE-ytS)/(xE-xS)
- \!dimenC=\!ybE \advance \!dimenC -\!ybS% ** ybE-ybS
- \!divide\!dimenC\!dimenE\!ybB% ** ybB = (ybE-ybS)/(xE-xS)
- \def\!getylimits{\!lgetylimits}%
- \!shade{#1}\ignorespaces}
-
-% ** \!getcoeffs{X0}{Y0}{X1}{Y1}{X2}{Y2}{B}{C}
-% ** Finds B and C such that the quadratic y = Y0 + B(x-X0) + C(x-X0)**2
-% ** passes through (X1,Y1) and (X2,Y2): when X0=0=Y0, the formulas are:
-% ** B = S1 - X1*C, C = (S2-S1)/X2
-% ** with
-% ** S1 = Y1/X1, S2 = (Y2-Y1)/(X2-X1).
-\def\!getcoeffs#1#2#3#4#5#6#7#8{%
- \!dimenC=#4\advance \!dimenC -#2% ** dimC=Y1-Y0
- \!dimenE=#3\advance \!dimenE -#1% ** dimE=X1-X0
- \!divide\!dimenC\!dimenE\!dimenF% ** dimF=S1
- \!dimenC=#6\advance \!dimenC -#4% ** dimC=Y2-Y1
- \!dimenH=#5\advance \!dimenH -#3% ** dimH=X2-X1
- \!divide\!dimenC\!dimenH\!dimenG% ** dimG=S2
- \advance\!dimenG -\!dimenF% ** dimG=S2-S1
- \advance \!dimenH \!dimenE% ** dimH=X2-X0
- \!divide\!dimenG\!dimenH#8% ** C=(S2-S1)/(X2-X0)
- \!removept#8\!t% ** C, without "pt"
- #7=-\!t\!dimenE% ** -C*(X1-X0)
- \advance #7\!dimenF% ** B=S1-C*(X1-X0)
- \ignorespaces}
-
-
-\def\!shade#1{%
-% ** Get LS,RS,BS,TS for this panel
- \!getshrinkages#1<,,,>\!nil% % ** now effective LS=dimE, RS=dimF,
-% ** BS=dimG, TS=dimH
- \advance \!dimenE \!xS% ** now dimE=xS+LS
- \!lattice\!!xshade\!dshade\!dimenE% ** set parity=index of left-mst x-lattice
- \!parity\!xpos% ** point >= xS+LS, xpos=its location
- \!dimenF=-\!dimenF% ** set dimF=xE-RS
- \advance\!dimenF \!xE
-%
- \!loop\!not{\ifdim\!xpos>\!dimenF}% ** loop over x-lattice points <= xE-RS
- \!shadecolumn%
- \advance\!xpos \!dshade% ** move over to next column
- \advance\!parity 1% ** increase index of x-point
- \repeat
-%
- \!xS=\!xE% ** shift ending values to starting values
- \!ybS=\!ybE
- \!ytS=\!ytE
- \ignorespaces}
-
-
-\def\!vgetshrinkages#1<#2,#3,#4,#5>#6\!nil{%
- \!override\!lshrinkage{#2}\!dimenE
- \!override\!rshrinkage{#3}\!dimenF
- \!override\!bshrinkage{#4}\!dimenG
- \!override\!tshrinkage{#5}\!dimenH
- \ignorespaces}
-\def\!hgetshrinkages#1<#2,#3,#4,#5>#6\!nil{%
- \!override\!lshrinkage{#2}\!dimenG
- \!override\!rshrinkage{#3}\!dimenH
- \!override\!bshrinkage{#4}\!dimenE
- \!override\!tshrinkage{#5}\!dimenF
- \ignorespaces}
-
-
-\def\!shadecolumn{%
- \!dxpos=\!xpos
- \advance\!dxpos -\!xS% ** dx = x - xS
- \!removept\!dxpos\!dx% ** ditto, without "pt"
- \!getylimits% ** get top and bottom y-values
- \advance\!ytpos -\!dimenH% ** less TS
- \advance\!ybpos \!dimenG% ** plus BS
- \!yloc=\!!yshade% ** get anchor point for this column
- \ifodd\!parity
- \advance\!yloc \!dshade
- \fi
- \!lattice\!yloc{2\!dshade}\!ybpos%
- \!countA\!ypos% ** ypos=smallest y point for this column
- \!dimenA=-\!shadexorigin \advance \!dimenA \!xpos% ** over
- \loop\!not{\ifdim\!ypos>\!ytpos}% ** loop over ypos <= yt(t)
- \!setshadelocation% ** vmode: xloc=xpos, yloc=ypos
-% ** hmode: xloc=ypos, yloc=xpos
- \!rotateaboutpivot\!xloc\!yloc%
- \!dimenA=-\!shadexorigin \advance \!dimenA \!xloc% ** over
- \!dimenB=-\!shadeyorigin \advance \!dimenB \!yloc% ** up
- \kern\!dimenA \raise\!dimenB\copy\!shadesymbol \kern-\!dimenA
- \advance\!ypos 2\!dshade
- \repeat
- \ignorespaces}
-
-\def\!qgetylimits{%
- \!dimenA=\!dx\!ytC
- \advance\!dimenA \!ytB% ** yt(t)=ytS + dx*(Bt + dx*Ct)
- \!ytpos=\!dx\!dimenA
- \advance\!ytpos \!ytS
- \!dimenA=\!dx\!ybC
- \advance\!dimenA \!ybB% ** yb(t)=ybS + dx*(Bb + dx*Cb)
- \!ybpos=\!dx\!dimenA
- \advance\!ybpos \!ybS}
-
-\def\!lgetylimits{%
- \!ytpos=\!dx\!ytB% ** yt(t)=ytS + dx*Bt
- \advance\!ytpos \!ytS
- \!ybpos=\!dx\!ybB% ** yb(t)=ybS + dx*Bb
- \advance\!ybpos \!ybS}
-
-\def\!vsetshadelocation{% ** vmode: xloc=xpos, yloc=ypos
- \!xloc=\!xpos
- \!yloc=\!ypos}
-\def\!hsetshadelocation{% ** hmode: xloc=ypos, yloc=xpos
- \!xloc=\!ypos
- \!yloc=\!xpos}
-
-
-% **************************************
-% *** TICKS (Draws ticks on graphs) ***
-% **************************************
-
-% ** User commands
-% ** \ticksout
-% ** \ticksin
-% ** \gridlines
-% ** \nogridlines
-% ** \loggedticks
-% ** \unloggesticks
-% ** See Subsection 3.4 of the manual
-
-% ** The following is an option of the \axis command
-% ** ticks
-% ** [in] [out]
-% ** [long] [short] [length <LENGTH>]
-% ** [width <WIDTH>]
-% ** [andacross] [butnotacross]
-% ** [logged] [unlogged]
-% ** [unlabeled] [numbered] [withvalues VALUE1 VALUE2 ... VALUEk / ]
-% ** [quantity Q] [at LOC1 LOC2 ... LOCk / ] [from LOC1 to LOC2 by
-% ** LOC_INCREMENT]
-% ** See Subsection 3.2 of the manual for the rules.
-
-% ** The various options of the tick field are processed by the
-% ** \!nextkeyword command defined below.
-% ** For example, `\!nextkeyword short ' expands to `\!ticksshort',
-% ** while `\!nextkeyword withvalues' expands to `\!tickswithvalues'.
-
-\def\!axisticks {%
- \def\!nextkeyword##1 {%
- \expandafter\ifx\csname !ticks##1\endcsname \relax
- \def\!next{\!fixkeyword{##1}}%
- \else
- \def\!next{\csname !ticks##1\endcsname}%
- \fi
- \!next}%
- \!axissetup
- \def\!axissetup{\relax}%
- \edef\!ticksinoutsign{\!ticksinoutSign}%
- \!ticklength=\longticklength
- \!tickwidth=\linethickness
- \!gridlinestatus
- \!setticktransform
- \!maketick
- \!tickcase=0
- \def\!LTlist{}%
- \!nextkeyword}
-
-\def\ticksout{%
- \def\!ticksinoutSign{+}}
-\def\ticksin{%
- \def\!ticksinoutSign{-}}
-\ticksout
-
-\def\gridlines{%
- \def\!gridlinestatus{\!gridlinestootrue}}
-\def\nogridlines{%
- \def\!gridlinestatus{\!gridlinestoofalse}}
-\nogridlines
-
-\def\loggedticks{%
- \def\!setticktransform{\let\!ticktransform=\!logten}}
-\def\unloggedticks{%
- \def\!setticktransform{\let\!ticktransform=\!donothing}}
-\def\!donothing#1#2{\def#2{#1}}
-\unloggedticks
-
-% ** \!ticks/ : terminates read of tick options
-\expandafter\def\csname !ticks/\endcsname{%
- \!not {\ifx \!LTlist\empty}
- \!placetickvalues
- \fi
- \def\!tickvalueslist{}%
- \def\!LTlist{}%
- \expandafter\csname !axis/\endcsname}
-
-\def\!maketick{%
- \setbox\!boxA=\hbox{%
- \beginpicture
- \!setdimenmode
- \setcoordinatesystem point at {\!zpt} {\!zpt}
- \linethickness=\!tickwidth
- \ifdim\!ticklength>\!zpt
- \putrule from {\!zpt} {\!zpt} to
- {\!ticksinoutsign\!tickxsign\!ticklength}
- {\!ticksinoutsign\!tickysign\!ticklength}
- \fi
- \if!gridlinestoo
- \putrule from {\!zpt} {\!zpt} to
- {-\!tickxsign\!xaxislength} {-\!tickysign\!yaxislength}
- \fi
- \endpicturesave <\!Xsave,\!Ysave>}%
- \wd\!boxA=\!zpt}
-
-\def\!ticksin{%
- \def\!ticksinoutsign{-}%
- \!maketick
- \!nextkeyword}
-
-\def\!ticksout{%
- \def\!ticksinoutsign{+}%
- \!maketick
- \!nextkeyword}
-
-\def\!tickslength<#1> {%
- \!ticklength=#1\relax
- \!maketick
- \!nextkeyword}
-
-\def\!tickslong{%
- \!tickslength<\longticklength> }
-
-\def\!ticksshort{%
- \!tickslength<\shortticklength> }
-
-\def\!tickswidth<#1> {%
- \!tickwidth=#1\relax
- \!maketick
- \!nextkeyword}
-
-\def\!ticksandacross{%
- \!gridlinestootrue
- \!maketick
- \!nextkeyword}
-
-\def\!ticksbutnotacross{%
- \!gridlinestoofalse
- \!maketick
- \!nextkeyword}
-
-\def\!tickslogged{%
- \let\!ticktransform=\!logten
- \!nextkeyword}
-
-\def\!ticksunlogged{%
- \let\!ticktransform=\!donothing
- \!nextkeyword}
-
-\def\!ticksunlabeled{%
- \!tickcase=0
- \!nextkeyword}
-
-\def\!ticksnumbered{%
- \!tickcase=1
- \!nextkeyword}
-
-\def\!tickswithvalues#1/ {%
- \edef\!tickvalueslist{#1! /}%
- \!tickcase=2
- \!nextkeyword}
-
-\def\!ticksquantity#1 {%
- \ifnum #1>1
- \!updatetickoffset
- \!countA=#1\relax
- \advance \!countA -1
- \!ticklocationincr=\!axisLength
- \divide \!ticklocationincr \!countA
- \!ticklocation=\!axisstart
- \loop \!not{\ifdim \!ticklocation>\!axisend}
- \!placetick\!ticklocation
- \ifcase\!tickcase
- \relax % Case 0: no labels
- \or
- \relax % Case 1: numbered -- not available here
- \or
- \expandafter\!gettickvaluefrom\!tickvalueslist
- \edef\!tickfield{{\the\!ticklocation}{\!value}}%
- \expandafter\!listaddon\expandafter{\!tickfield}\!LTlist%
- \fi
- \advance \!ticklocation \!ticklocationincr
- \repeat
- \fi
- \!nextkeyword}
-
-\def\!ticksat#1 {%
- \!updatetickoffset
- \edef\!Loc{#1}%
- \if /\!Loc
- \def\next{\!nextkeyword}%
- \else
- \!ticksincommon
- \def\next{\!ticksat}%
- \fi
- \next}
-
-\def\!ticksfrom#1 to #2 by #3 {%
- \!updatetickoffset
- \edef\!arg{#3}%
- \expandafter\!separate\!arg\!nil
- \!scalefactor=1
- \expandafter\!countfigures\!arg/
- \edef\!arg{#1}%
- \!scaleup\!arg by\!scalefactor to\!countE
- \edef\!arg{#2}%
- \!scaleup\!arg by\!scalefactor to\!countF
- \edef\!arg{#3}%
- \!scaleup\!arg by\!scalefactor to\!countG
- \loop \!not{\ifnum\!countE>\!countF}
- \ifnum\!scalefactor=1
- \edef\!Loc{\the\!countE}%
- \else
- \!scaledown\!countE by\!scalefactor to\!Loc
- \fi
- \!ticksincommon
- \advance \!countE \!countG
- \repeat
- \!nextkeyword}
-
-\def\!updatetickoffset{%
- \!dimenA=\!ticksinoutsign\!ticklength
- \ifdim \!dimenA>\!offset
- \!offset=\!dimenA
- \fi}
-
-\def\!placetick#1{%
- \if!xswitch
- \!xpos=#1\relax
- \!ypos=\!axisylevel
- \else
- \!xpos=\!axisxlevel
- \!ypos=#1\relax
- \fi
- \advance\!xpos \!Xsave
- \advance\!ypos \!Ysave
- \kern\!xpos\raise\!ypos\copy\!boxA\kern-\!xpos
- \ignorespaces}
-
-\def\!gettickvaluefrom#1 #2 /{%
- \edef\!value{#1}%
- \edef\!tickvalueslist{#2 /}%
- \ifx \!tickvalueslist\!endtickvaluelist
- \!tickcase=0
- \fi}
-\def\!endtickvaluelist{! /}
-
-\def\!ticksincommon{%
- \!ticktransform\!Loc\!t
- \!ticklocation=\!t\!!unit
- \advance\!ticklocation -\!!origin
- \!placetick\!ticklocation
- \ifcase\!tickcase
- \relax % Case 0: no labels
- \or % Case 1: numbered
- \ifdim\!ticklocation<-\!!origin
- \edef\!Loc{$\!Loc$}%
- \fi
- \edef\!tickfield{{\the\!ticklocation}{\!Loc}}%
- \expandafter\!listaddon\expandafter{\!tickfield}\!LTlist%
- \or % Case 2: labeled
- \expandafter\!gettickvaluefrom\!tickvalueslist
- \edef\!tickfield{{\the\!ticklocation}{\!value}}%
- \expandafter\!listaddon\expandafter{\!tickfield}\!LTlist%
- \fi}
-
-\def\!separate#1\!nil{%
- \!ifnextchar{-}{\!!separate}{\!!!separate}#1\!nil}
-\def\!!separate-#1\!nil{%
- \def\!sign{-}%
- \!!!!separate#1..\!nil}
-\def\!!!separate#1\!nil{%
- \def\!sign{+}%
- \!!!!separate#1..\!nil}
-\def\!!!!separate#1.#2.#3\!nil{%
- \def\!arg{#1}%
- \ifx\!arg\!empty
- \!countA=0
- \else
- \!countA=\!arg
- \fi
- \def\!arg{#2}%
- \ifx\!arg\!empty
- \!countB=0
- \else
- \!countB=\!arg
- \fi}
-
-\def\!countfigures#1{%
- \if #1/%
- \def\!next{\ignorespaces}%
- \else
- \multiply\!scalefactor 10
- \def\!next{\!countfigures}%
- \fi
- \!next}
-
-\def\!scaleup#1by#2to#3{%
- \expandafter\!separate#1\!nil
- \multiply\!countA #2\relax
- \advance\!countA \!countB
- \if -\!sign
- \!countA=-\!countA
- \fi
- #3=\!countA
- \ignorespaces}
-
-\def\!scaledown#1by#2to#3{%
- \!countA=#1\relax% ** get original #
- \ifnum \!countA<0 % ** take abs value,
- \def\!sign{-}% ** remember sign
- \!countA=-\!countA
- \else
- \def\!sign{}%
- \fi
- \!countB=\!countA% ** copy |#|
- \divide\!countB #2\relax% ** integer part (|#|/sf)
- \!countC=\!countB% ** get sf * (|#|/sf)
- \multiply\!countC #2\relax
- \advance \!countA -\!countC% ** ctA is now remainder
- \edef#3{\!sign\the\!countB.}% ** +- integerpart.
- \!countC=\!countA % ** Tack on proper number
- \ifnum\!countC=0 % ** of zeros after .
- \!countC=1
- \fi
- \multiply\!countC 10
- \!loop \ifnum #2>\!countC
- \edef#3{#3\!zero}%
- \multiply\!countC 10
- \repeat
- \edef#3{#3\the\!countA}% ** Add on rest of remainder
- \ignorespaces}
-
-\def\!placetickvalues{%
- \advance\!offset \tickstovaluesleading
- \if!xswitch
- \setbox\!boxA=\hbox{%
- \def\\##1##2{%
- \!dimenput {##2} [B] (##1,\!axisylevel)}%
- \beginpicture
- \!LTlist
- \endpicturesave <\!Xsave,\!Ysave>}%
- \!dimenA=\!axisylevel
- \advance\!dimenA -\!Ysave
- \advance\!dimenA \!tickysign\!offset
- \if -\!tickysign
- \advance\!dimenA -\ht\!boxA
- \else
- \advance\!dimenA \dp\!boxA
- \fi
- \advance\!offset \ht\!boxA
- \advance\!offset \dp\!boxA
- \!dimenput {\box\!boxA} [Bl] <\!Xsave,\!Ysave> (\!zpt,\!dimenA)
- \else
- \setbox\!boxA=\hbox{%
- \def\\##1##2{%
- \!dimenput {##2} [r] (\!axisxlevel,##1)}%
- \beginpicture
- \!LTlist
- \endpicturesave <\!Xsave,\!Ysave>}%
- \!dimenA=\!axisxlevel
- \advance\!dimenA -\!Xsave
- \advance\!dimenA \!tickxsign\!offset
- \if -\!tickxsign
- \advance\!dimenA -\wd\!boxA
- \fi
- \advance\!offset \wd\!boxA
- \!dimenput {\box\!boxA} [Bl] <\!Xsave,\!Ysave> (\!dimenA,\!zpt)
- \fi}
-
-
-\normalgraphs
-
-% \catcode`!=12 % ***** THIS MUST NEVER BE OMITTED
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/thrd-ran.mkii b/Master/texmf-dist/tex/context/base/mkii/thrd-ran.mkii
deleted file mode 100644
index 276a4f6249f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/thrd-ran.mkii
+++ /dev/null
@@ -1,168 +0,0 @@
-% Since we cannot be sure that this file is available at any
-% system, we have copied the original in this file. These
-% macros are encapsulates and extended in supp-ran.tex.
-%
-% This module is slightly recoded to bring it more in tune
-% with \CONTEXT's scratch registers and protection mechanisms.
-
-% RANDOM.TEX v.1 (Donald Arseneau)
-% Generating "random" numbers in TeX.
-%
-% Random integers are generated in the range 1 to 2147483646 by the
-% macro \nextrandom. The result is returned in the counter \randomi.
-% Do not change \randomi except, perhaps, to initialize it at some
-% random value. If you do not initialize it, it will be initialized
-% using the time and date. (This is a sparse initialization, giving
-% fewer than a million different starting values, but you should use
-% other sources of numbers if they are available--just remember that
-% most of the numbers available to TeX are not at all random.)
-%
-% The \nextrandom command is not very useful by itself, unless you
-% have exactly 2147483646 things to choose from. Much more useful
-% is the \setrannum command which sets a given counter to a random
-% value within a specified range. There are three parameters:
-% \setrannum {<counter>} {<minimum>} {<maximum>}. For example, to
-% simulate a die-roll: \setrannum{\die}{1}{6} \ifcase\die... .
-%
-% If you need random numbers that are not integers, you will have to
-% use dimen registers and \setrandimen. For example, to set a random
-% page width: \setrandimen \hsize{3in}{6.5in}. The "\pointless" macro
-% will remove the "pt" that TeX gives so you can use the dimensions
-% as pure `real' numbers. In that case, specify the range in pt units.
-% For example,
-%
-% \setrandimen\answer{2.71828pt}{3.14159pt}
-% The answer is \pointless\answer.
-%
-% The random number generator is the one by Lewis, Goodman, and Miller
-% (1969) and used as "ran0" in "Numerical Recipies" using Schrage's
-% method for avoiding overflows. The multiplier is 16807 (7^5), the
-% added constant is 0, and the modulus is 2147483647 (2^{31}-1). The
-% range of integers generated is 1 - 2147483646. A smaller range would
-% reduce the complexity of the macros a bit, but not much--most of the
-% code deals with initialization and type-conversion. On the other hand,
-% the large range may be wasted due to the sparse seed initialization.
-
-% original code
-%
-% \newcount\randomi % the random number seed (while executing)
-% \global\randomi\catcode`\@ % scratch variable during definitions
-% \catcode`\@=11
-%
-% \def\nextrandom{\begingroup
-% \ifnum\randomi<\plusone % then initialize with time
-% \global\randomi\time
-% \global\multiply\randomi388 \global\advance\randomi\year
-% \global\multiply\randomi31 \global\advance\randomi\day
-% \global\multiply\randomi97 \global\advance\randomi\month
-% \message{Randomizer initialized to \the\randomi.}%
-% \nextrandom \nextrandom \nextrandom
-% \fi
-% \count@ii\randomi
-% \divide\count@ii 127773 % modulus = multiplier * 127773 + 2836
-% \count@\count@ii
-% \multiply\count@ii 127773
-% \global\advance\randomi-\count@ii % random mod 127773
-% \global\multiply\randomi 16807
-% \multiply\count@ 2836
-% \global\advance\randomi-\count@
-% \ifnum\randomi<\z@ \global\advance\randomi 2147483647\relax\fi
-% \endgroup
-% }
-%
-% \countdef\count@ii=2 % use only in boxes!
-% \ifx\@tempcnta\undefined \csname newcount\endcsname \@tempcnta \fi
-% \ifx\@tempcntb\undefined \csname newcount\endcsname \@tempcntb \fi
-%
-% \def\setrannum#1#2#3{% count register, minimum, maximum
-% \@tempcnta#3\advance\@tempcnta-#2\advance\@tempcnta\@ne
-% \@tempcntb 2147483645 % = m - 2 = 2^{31} - 3
-% \divide\@tempcntb\@tempcnta
-% \getr@nval
-% \advance\ranval#2\relax
-% #1\ranval
-% }
-%
-% \def\setrandim#1#2#3{% dimen register, minimum length, maximum length
-% \dimen@#2\dimen@ii#3\relax
-% \setrannum\ranval\dimen@\dimen@ii
-% #1\ranval sp\relax
-% }
-%
-% \def\getr@nval{% The values in \@tempcnta and \@tempcntb are parameters
-% \nextrandom
-% \ranval\randomi \advance\ranval\m@ne \divide\ranval\@tempcntb
-% \ifnum\ranval<\@tempcnta\else \expandafter\getr@nval \fi
-% }
-%
-% %D The next macro is not needed in \CONTEXT, which provides
-% %D the \type {\withoutpt} macro.
-% %D
-% %D \starttyping
-% %D \def\pointless{\expandafter\PoinTless\the}
-% %D {\catcode`p=12 \catcode`t=12 \gdef\PoinTless#1pt{#1}}
-% %D \stoptyping
-%
-% \catcode`\@=\randomi
-% \global\randomi=0
-% \newcount\ranval
-
-% the recoded version, using \CONTEXT\ methods and variables;
-% the magic is kept untouched
-
-\unprotect
-
-\newcount\randomi % the random number seed (while executing)
-\newcount\ranval
-
-\ifx\m!systems\undefined \def\m!systems{systems} \fi
-
-\def\nextrandom
- {\begingroup
- \ifnum\randomi<\plusone % then initialize with time
- \global\randomi\time
- \global\multiply\randomi388 \global\advance\randomi\year
- \global\multiply\randomi 31 \global\advance\randomi\day
- \global\multiply\randomi 97 \global\advance\randomi\month
- \writestatus\m!systems{randomizer starts with \the\randomi}%
- \nextrandom \nextrandom \nextrandom
- \fi
- \!!countd\randomi
- \divide\!!countd 127773 % modulus = multiplier * 127773 + 2836
- \!!countc\!!countd
- \multiply\!!countd 127773
- \global\advance\randomi-\!!countd % random mod 127773
- \global\multiply\randomi 16807
- \multiply\!!countc 2836
- \global\advance\randomi-\!!countc\relax
- \ifnum\randomi<\zerocount
- \global\advance\randomi 2147483647
- \fi
- \endgroup}
-
-\def\setrannum#1#2#3% count register, minimum, maximum
- {\!!counta#3%
- \advance\!!counta-#2%
- \advance\!!counta\plusone
- \!!countb 2147483645 % = m - 2 = 2^{31} - 3
- \divide\!!countb\!!counta
- \getr@nval
- \advance\ranval#2%
- #1\ranval}
-
-\def\setrandim#1#2#3% dimen register, minimum length, maximum length
- {\!!dimenc#2%
- \!!dimend#3%
- \setrannum\ranval\!!dimenc\!!dimend
- #1\ranval\s!sp\relax} % \s!sp not needed
-
-\def\getr@nval % The values in \!!counta and \!!countb are parameters
- {\nextrandom
- \ranval\randomi
- \advance\ranval\minusone
- \divide\ranval\!!countb
- \ifnum\ranval<\!!counta \else
- \expandafter\getr@nval
- \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/thrd-tab.mkii b/Master/texmf-dist/tex/context/base/mkii/thrd-tab.mkii
deleted file mode 100644
index dd3838ce2d4..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/thrd-tab.mkii
+++ /dev/null
@@ -1,2006 +0,0 @@
-% Since this file is not available in every distribution, we
-% have copied the original in this file. The manuals to
-% Wichura's PiCTeX and TaBlE packages are not available on
-% line and are distributed by respectively the TeX Users Group
-% and Personal TeX Inc. Many macros of TaBlE are overloaded
-% and/or extended in core-tab.tex. The extensions concern
-% splitting over pages, color and consistent spacing.
-
-% We've patched this file for catcode ! because in luatex we use
-% catcode tables and using unprotect/protect is cleaner. Late
-% 2007 we also decided no longer to treat quotes and bars the
-% TaBLe way and instead of messy pushing and popping of catcodes
-% we commented a couple of lines here. We just assume that the
-% template has no active bar and quote. Inside tables we now
-% have the regular meaning of active bars in ConTeXt. More
-% drastic extensions and patched can be found in core-tab.tex.
-
-% TABLE 1.0
-% Copyright Michael J. Wichura August 1988 (patched by Hans Hagen)
-
-% The TABLE macros are divided into sections, roughly according to
-% function:
-
-% Section Name Function
-% a Allocation Allocates storage registers for parameters.
-% f Format Reads format section; builds preamble for \halign;
-% processes \ReFormat command.
-% g Get Value Converts "spec"'s (as in spec_{LT}) to
-% corresponding "values"'s (as in value_{LT}).
-% h Hacks Utility macros; error messages; miscellaneous commands.
-% k Keys Definition and scanning of format keys.
-% n Numeric Macros for TABLE's numeric format.
-% s Struts Macros for struts.
-% t Tables Sets up \halign for table; end-of-row processing;
-% alternate vertical rules; spanning; horizontal
-% lines; stretching and shrinking; repositioning
-% commands.
-
-% The name of each internal macro begins with the prefix "\!t", the
-% "!" having category code 11, followed by the letter of the section
-% in which the macro is defined. For example, a macro beginning "\!th"
-% is defined in Section h (Hacks). There a few exceptions:
-% the general purpose macros "\!ttemp", "\!ttempa", "\!ttempb", and
-% "\!tnext" are repeatedly defined on the spot as the need arises.
-
-% External macros (and active characters) are defined in the following
-% sections:
-% Macro Section
-% " t
-% \- t
-% \= t
-% \ActivateBarAndQuote h
-% \AugmentedTableStrut s
-% \BackSpace h
-% \BeginFormat f
-% \BeginTable t
-% \BeginTableParBox a
-% \Center t
-% \ColumnWidthFactor a
-% \ColumnWidthUnit a
-% \DQuote h
-% \EndFormat k (\EndFormat is actually a key)
-% \EndTable t
-% \EndTableParBox a
-% \Enlarge s
-% \enlarge s
-% \EveryTable a
-% \EveryTableParBox a
-% \Expand t
-% \InterColumnSpaceFactor a
-% \InterColumnSpaceUnit a
-% \JustCenter t
-% \JustLeft t
-% \JustRight t
-% \KernFactor a
-% \KernUnit a
-% \Left t
-% \LeftTabskip a
-% \LineThicknessFactor a
-% \LineThicknessUnit a
-% \LongLines t
-% \Lower h
-% \MakeStrut s
-% \NewFormatKey k
-% \NormalCWU a
-% \NormalICSU a
-% \NormalKU a
-% \NormalLTU a
-% \NormalSU a
-% \NormalTableUnits a
-% \OpenUp s
-% \PseudoVrule t
-% \Raise h
-% \ReadFormatKeys k
-% \ReFormat f
-% \Right t
-% \RightTabskip a
-% \SetTableToWidth t
-% \Smash h
-% \StandardTableStrut s
-% \StrutDepthFactor a
-% \StrutHeightFactor a
-% \StrutUnit a
-% \TaBlE h
-% \TracingFormats a
-% \TracingKeys a
-% \Use t
-% \use t
-% \VBar h
-% \Vspace h
-% \VspaceFactor a
-% \WidenTableBy t
-% \\ t
-% \_ t
-% \| t
-% | t
-% ~ t
-
-\unprotect
-
-% \catcode `\!=11
-% \catcode `\@=11
-
-\newif\ifh@ % normally in plain tex
-\newif\ifv@ % normally in plain tex
-
-% Don't try to read the TABLE macros until after you've read the
-% TABLE manual. The internal documentation of the macros is
-% sketchy; you need the manual to understand what's going on.
-% You should also review the material on \halign s in the TeXbook,
-% since TABLE uses an \halign to perform its alignments.
-
-% In studying the TABLE macros, you should start by skimming the
-% macros in the "miscellaneous hacks", "error messages", and "loops"
-% subsections of Section h, as well as the "\GetValue" macro in
-% Section g; these macros are called many times by the other macros.
-% To continue with a "bottom-up" approach, read next Sections k,
-% f, and t. (Top-downers should reverse the order.) The other
-% Sections can be looked at as the need arises.
-
-% *********************************************************************
-% SECTION A: ALLOCATION
-% *********************************************************************
-
-\let\!tacr=\\ % Save meaning of \\ (Needed if TABLE is used with LaTeX
-
-% *********************************************************************
-% TABLE PARAMETERS: Units
-% *********************************************************************
-
-\newdimen\LineThicknessUnit
-\newdimen\StrutUnit
-\newskip \InterColumnSpaceUnit
-\newdimen\ColumnWidthUnit
-\newdimen\KernUnit
-
-\let\!taLTU=\LineThicknessUnit % Used in preamble
-\let\!taCWU=\ColumnWidthUnit % Used in preamble
-\let\!taKU =\KernUnit % Used in preamble
-
-\newtoks\NormalTLTU
-\newtoks\NormalTSU
-\newtoks\NormalTICSU
-\newtoks\NormalTCWU
-\newtoks\NormalTKU
-
-% NOTE: The user should modify the following DEFAULTS to suit his/her
-% taste, and output device:
-%\def\PixelsPerInch{300}
-\NormalTLTU={1in \divide \LineThicknessUnit by 300 }
-\NormalTSU ={\normalbaselineskip
- \divide \StrutUnit by 11 } % 11 = 8+3 = NormalT Height+Depth Factors
-\NormalTICSU={.5em plus 1fil minus .25em} % .5em = width of a digit
-\NormalTCWU ={.5em}
-\NormalTKU ={.5em}
-
-\def\NormalTableUnits{%
- \LineThicknessUnit =\the\NormalTLTU
- \StrutUnit =\the\NormalTSU
- \InterColumnSpaceUnit=\the\NormalTICSU
- \ColumnWidthUnit =\the\NormalTCWU
- \KernUnit =\the\NormalTKU}
-
-\NormalTableUnits
-
-% The user should issue \NormalTableUnits when setting a table
-% in a different point size, since the Table...Units themselves
-% are static while the Normal...Units vary with the point size.
-
-
-% *********************************************************************
-% TABLE PARAMETERS: Factors
-% *********************************************************************
-
-\newcount\LineThicknessFactor
-\newcount\StrutHeightFactor
-\newcount\StrutDepthFactor
-\newcount\InterColumnSpaceFactor
-\newcount\ColumnWidthFactor
-\newcount\KernFactor
-\newcount\VspaceFactor
-
-% DEFAULTS:
-\LineThicknessFactor =2
-\StrutHeightFactor =8
-\StrutDepthFactor =3
-\InterColumnSpaceFactor =3
-\ColumnWidthFactor =10
-\KernFactor =1
-\VspaceFactor =2
-
-
-% *********************************************************************
-% DIAGNOSTIC PARAMETERS
-% *********************************************************************
-
-\newcount\TracingKeys % >=1 reports new keys, >=2 reports key usage
-\newcount\TracingFormats % >=1 reports templates for columns
- % >=2 reports \halign preamble
-
-
-% *********************************************************************
-% PARBLOCK PARAMETERS
-% *********************************************************************
-
-\def\BeginTableParBox#1{%
- \vtop\bgroup
- \hsize=#1
- \normalbaselines
- \let~=\!ttTie
- \let\-=\!ttDH
- \the\EveryTableParBox}
-
-\def\EndTableParBox{%
- \MakeStrut{0pt}{\StrutDepthFactor\StrutUnit}
- \egroup} % finishes the \vtop begun by \BeginTableParbox
-
-\newtoks\EveryTableParBox
-\EveryTableParBox={%
- \parindent=0pt
- \raggedright
- \rightskip=0pt plus 4em % Provide more stretch
- \relax}
-
-
-% *********************************************************************
-% EVERY TABLE TOKENS
-% *********************************************************************
-
-\newtoks\EveryTable
-\newtoks\!taTableSpread
-
-
-% *********************************************************************
-% Extreme left- and right- tabskips
-% *********************************************************************
-
-\newskip\LeftTabskip
-\newskip\RightTabskip
-
-
-% *********************************************************************
-% INTERNAL VARIABLES
-% *********************************************************************
-
-\newcount\!taCountA
-\newcount\!taColumnNumber
-\newcount\!taRecursionLevel % (Initially 0)
-
-\newdimen\!taDimenA % used by \Enlarge
-\newdimen\!taDimenB % used by \Enlarge
-\newdimen\!taDimenC % used by numeric.tex
-\newdimen\!taMinimumColumnWidth
-
-\newtoks\!taToksA
-
-\newtoks\!taPreamble
-\newtoks\!taDataColumnTemplate
-\newtoks\!taRuleColumnTemplate
-\newtoks\!taOldRuleColumnTemplate
-\newtoks\!taLeftGlue
-\newtoks\!taRightGlue
-
-\newskip\!taLastRegularTabskip
-
-\newif\if!taDigit
-\newif\if!taBeginFormat
-\newif\if!taOnceOnlyTabskip
-
-
-
-% *********************************************************************
-% SECTION H: HACKS
-% *********************************************************************
-
-% ****************************************************************
-% TABLE LOGO
-% ****************************************************************
-\def\TaBlE{%
- T\kern-.27em\lower.5ex\hbox{A}\kern-.18em B\kern-.1em
- \lower.5ex\hbox{L}\kern-.075em E}
-
-
-% ****************************************************************
-% ACTIVE CHARACTERS
-% ****************************************************************
-
-% ACTIVATE BAR AND QUOTE: Makes | and " active if they aren't
-% already active (in which case the user will probably have given
-% them special meanings); definitions are provided which effectively
-% undoes the activeness outside a Table.
-
-{\catcode`\|=13 \catcode`\"=13
- \gdef\ActivateBarAndQuote{%
- \ifnum \catcode`\|=13
- \else
- \catcode`\|=13
- \def|{%
- \ifmmode
- \vert
- \else
- \char`\|
- \fi}%
- \fi
- \ifnum \catcode`\"=13
- \else
- \catcode`\"=13
- \def"{\char`\"}%
- \fi}}
-
-% ****************************************************************
-% Macros for | and " having category code 12.
-% ****************************************************************
-{\catcode `\|=12 \catcode `\"=12
-\gdef\VBar{|}
-\gdef\DQuote{"}}
-
-
-% ****************************************************************
-% MISCELANEOUS HACKS
-% ****************************************************************
-
-% MESSAGE <Message>: Writes out <Message> to terminal and log file.
-\def\!thMessage#1{\immediate\write16{#1}\ignorespaces}
-
-% X: Abbreviation for expandafter
-\let\!thx=\expandafter
-
-% GOBBLE: Eats next token
-\def\!thGobble#1{}
-
-% SPACE TOKEN
-\def\\{\let\!thSpaceToken= }\\
-
-% HEIGHT, DEPTH, AND WIDTH
-\def\!thHeight{height}
-\def\!thDepth{depth}
-\def\!thWidth{width}
-
-% TOKSEDEF <token register>=<replacement text>: Places <replacement
-% text>, fully expanded a la \edef, in the specified <token register>.
-\def\!thToksEdef#1=#2{%
- \edef\!ttemp{#2}%
- #1\!thx{\!ttemp}%
- \ignorespaces}
-
-
-% ****************************************************************
-% ERROR MESSAGES
-% ****************************************************************
-
-% STORE ERROR MSG <Control Sequence> <Message>
-% Replacement text of <Control Sequence> is a macro with Message
-% as its name. E.g., after \StoreErrorMsg\Help{Type <CR>},
-% \Help expands to "\Type <CR>"
-\def\!thStoreErrorMsg#1#2{%
- \toks0 =\!thx{\csname #2\endcsname}%
- \edef#1{\the\toks0 }}
-
-% READ ERROR MSG <Control sequence>
-% Continuing the above example, \ReadErrorMsg\Help produces "Type <CR>"
-\def\!thReadErrorMsg#1{%
- \!thx\!thx\!thx\!thGobble\!thx\string #1}
-
-% ERROR <Error Message> <Error Help>
-\def\!thError#1#2{%
- \begingroup
- \newlinechar=`\^^J%
- \edef\!ttemp{#2}%
- \errhelp=\!thx{\!ttemp}%
- \!thMessage{%
- ^^J\!thReadErrorMsg\!thErrorMsgA
- ^^J\!thReadErrorMsg\!thErrorMsgB}%
- \errmessage{#1}%
- \endgroup}
-
-% TEXT FOR ERROR MESSAGE
-\!thStoreErrorMsg\!thErrorMsgA{%
- TABLE error; see manual for explanation.}
-\!thStoreErrorMsg\!thErrorMsgB{%
- Type \space H <return> \space for immediate help.}
-
-% GET REPLACEMENT <Prompt Message> <Replacement Value>
-% <Replacement Vale> must be a control sequence
-\def\!thGetReplacement#1#2{%
- \begingroup
- \!thMessage{#1}
- \endlinechar=-1
- \global\read16 to#2%
- \endgroup}
-
-
-% ****************************************************************
-% LOOP MACRO
-% ****************************************************************
-
-% LOOP ... REPEAT macro from TUGboat Vol 8 #2: 1987
-% Syntax is like that of plain TeX's \loop ... \repeat macro
-\def\!thLoop#1\repeat{%
- \def\!thIterate{%
- #1%
- \!thx \!thIterate
- \fi}%
- \!thIterate
- \let\!thIterate\relax}
-
-
-% ***************************************************************
-% VERTICALLY-CENTERED SMASH
-% ***************************************************************
-
-% SMASH: Like TeX's \smash, only the argument
-% is centered vertically before its height and depth are smashed to 0pt.
-\def\Smash{%
- \relax
- \ifmmode
- \expandafter\mathpalette
- \expandafter\!thDoMathVCS
- \else
- \expandafter\!thDoVCS
- \fi}
-
-% DO VCS
-\def\!thDoVCS#1{%
- \setbox\zerocount\hbox{#1}%
- \!thFinishVCS}
-
-% DO MATH VCS
-\def\!thDoMathVCS#1#2{%
- \setbox\zerocount\hbox{$\mathsurround\zeropoint#1{#2}$}%
- \!thFinishVCS}
-
-% FINISH VCS
-\def\!thFinishVCS{%
- \vbox to\zeropoint{\vss\box\zerocount\vss}}
-
-
-% ***************************************************************
-% RAISE AND LOWER
-% ***************************************************************
-
-% Like TeX's \raise and \lower, except: (1) The first argument
-% to these commands is a dimension expressed in TABLE's usual conventions;
-% the default is (StrutHeightFactor+StrutDepthFactor)*StrutUnit/2
-% (2) like \smash, these commands function in math mode as well
-% as horizontal mode; (3) again like \smash, the result is declared
-% to have height and depth 0pt
-
-% Examples \Raise2{Stuff}: "Stuff" is raised 2*StrutUnit
-% \Raise {Stuff}: "Stuff" is raised a half-line
-% $\Lower(10pt){\alpha}$: "$\alpha$" is lowered 10 points
-
-% RAISE
-\def\Raise{%
- \def\!thSign{+}%
- \!tgGetValue\!thSetDimen}
-
-% LOWER
-\def\Lower{%
- \def\!thSign{-}%
- \!tgGetValue\!thSetDimen}
-
-% SET DIMEN
-\def\!thSetDimen{%
- \ifnum \!tgCode=1
- \ifx \!tgValue\empty
- \!taDimenA \StrutHeightFactor\StrutUnit
- \advance \!taDimenA \StrutDepthFactor\StrutUnit
- \divide \!taDimenA 2
- \else
- \!taDimenA \!tgValue\StrutUnit
- \fi
- \else
- \!taDimenA \!tgValue
- \fi
- \!taDimenA=\!thSign\!taDimenA\relax
- %
- % BRANCH ON MODE
- \ifmmode
- \expandafter\mathpalette
- \expandafter\!thDoMathRaise
- \else
- \expandafter\!thDoSimpleRaise
- \fi}
-
-% DO SIMPLE RAISE
-\def\!thDoSimpleRaise#1{%
- \setbox\zerocount\hbox{\raise \!taDimenA\hbox{#1}}%
- \!thFinishRaise} % From Plain TeX: \ht0=0pt \dp0=0pt \box0
-
-% DO MATH RAISE
-\def\!thDoMathRaise#1#2{%
- \setbox\zerocount\hbox{\raise \!taDimenA\hbox{$\mathsurround\zeropoint#1{#2}$}}%
- \!thFinishRaise}
-
-% FINISH RAISE. This is the same as Plain's \finsm@sh; some macro
-% packages redefine \finsm@sh.
-\def\!thFinishRaise{%
- \ht\zerocount\zeropoint
- \dp\zerocount\zeropoint
- \box\zerocount}
-
-
-% ***************************************************************
-% BACK SPACE
-% ***************************************************************
-\def\BackSpace{%
- \!tgGetValue\!thKernBack}
-
-\def\!thKernBack{%
- \kern -
- \ifnum \!tgCode=1
- \ifx \!tgValue\empty
- \the\KernFactor
- \else
- \!tgValue % user-specified integer
- \fi
- \KernUnit
- \else
- \!tgValue % user-specified dimension
- \fi
- \ignorespaces}%
-
-
-% ***************************************************************
-% Vspace
-% ***************************************************************
-\def\Vspace{%
- \noalign
- \bgroup
- \!tgGetValue\!thVspace}
-
-\def\!thVspace{%
- \vskip
- \ifnum \!tgCode=1
- \ifx \!tgValue\empty
- \the\VspaceFactor
- \else
- \!tgValue % user-specified integer
- \fi
- \StrutUnit
- \else
- \!tgValue % user-specified skip
- \fi
- \egroup} % Ends the \noalign
-
-% *********************************************************************
-% SECTION F: FORMAT
-% *********************************************************************
-
-% As explained in Section 3.3 of the manual, TABLE alternates each
-% of the user's "data" columns with a "rule" column; moreover, TABLE
-% places a "dummy data" column at the left and right of a table.
-% A table with n nominal data columns therefore actually has a
-% total of
-% n (nominal data columns)
-% +(n+1) (rule columns)
-% + 2 (dummy data columns)
-% ____
-% 2n+3
-% columns.
-
-% FORMATs job is to create an \halign preamble for the alignment
-% of these (2n+3) columns. The preamble consists of templates
-% for the various columns, strung together with &'s and interlaced
-% with \tabskip glue specifications.
-
-% FORMAT constructs the template for a nomimal data column according
-% to the user-specified format keys. As the keys are read from left
-% to right, the template is built up "from the inside out" (as
-% illustrated in Section 3.1.9 of the manual), the inner-most part
-% being the "#" sign. A "|" in the format terminates template
-% building; the completed template is adjoined to preamble along
-% with the template for the following rule column.
-
-% Minimum column widths, if specified, are implemented by creating
-% an "artificial row" with data entries of the form
-% \hskip <minimum column width>.
-% This row has zero height and depth and is completely invisible.
-
-
-% BEGIN FORMAT
-\def\BeginFormat{%
- %catcode`\|=12 % Inhibit expansion if | immediately follows a <number>
- %catcode`\"=12 % read by \getvalue.
- \!taPreamble={}%
- \!taColumnNumber=0
- \skip0 =\InterColumnSpaceUnit
- \multiply\skip0 \InterColumnSpaceFactor
- \divide\skip0 2
- \!taRuleColumnTemplate=\!thx{%
- \!thx\tabskip\the\skip0 }%
- \!taLastRegularTabskip=\skip0
- \!taOnceOnlyTabskipfalse
- \!taBeginFormattrue % Used to intercept key "]"
- \def\!tfRowOfWidths{}% Artificial Table Row with horizontal struts
- % to enforce specified minimum column widths
- \ReadFormatKeys}
-
-% SET (MINIMUM COLUMN) WIDTH: Invoked by the key "w".
-\def\!tfSetWidth{%
- \ifx \!tfRowOfWidths \empty % true if no prior "w" keys
- \ifnum \!taColumnNumber>0 % true if "w" key is to right of first "|"
- \begingroup % RowOfWidths={&\omit || n copies of
- % &\omit&\omit}, where n = number of columns
- \!taCountA=1 % to the left of this one
- \aftergroup \edef \aftergroup \!tfRowOfWidths \aftergroup {%
- \aftergroup &\aftergroup \omit
- \!thLoop
- \ifnum \!taCountA<\!taColumnNumber
- \advance\!taCountA 1
- \aftergroup \!tfAOAO
- \repeat
- \aftergroup }%
- \endgroup
- \fi
- \fi
- \ifx [\!ttemp % \!tgGetValue sets \!ttemp = token after w
- \!thx\!tfSetWidthText
- \else
- \!thx\!tfSetWidthValue
- \fi}
-
-% AOAO = (Apersand Omit Ampersand Omit)
-\def\!tfAOAO{%
- &\omit&\omit}
-
-% SET WIDTH TEXT
-\def\!tfSetWidthText [#1]{% #1 = specified text
- \def\!tfWidthText{#1}%
- \ReadFormatKeys}
-
-% SET WIDTH VALUE
-\def\!tfSetWidthValue{%
- \!taMinimumColumnWidth =
- \ifnum \!tgCode=1
- \ifx\!tgValue\empty % Use default multiplier if user didn't specify one
- \ColumnWidthFactor
- \else
- \!tgValue
- \fi
- \ColumnWidthUnit
- \else
- \!tgValue
- \fi
- \def\!tfWidthText{}% Override possible prior `w[sample entry]'
- \ReadFormatKeys}
-
-
-% SET TABSKIP: Invoked by the tabskip keys "t" and "o"
-\def\!tfSetTabskip{%
- \ifnum \!tgCode=1
- \skip0 =\InterColumnSpaceUnit
- \multiply\skip0
- \ifx \!tgValue\empty
- \InterColumnSpaceFactor % Default integer
- \else
- \!tgValue % User-specified integer
- \fi
- \else
- \skip0 =\!tgValue % User-specified <skip>
- \fi
- \divide\skip0 by 2
- \ifnum\!taColumnNumber=0
- \!thToksEdef\!taRuleColumnTemplate={%
- \the\!taRuleColumnTemplate
- \tabskip \the\skip0 }
- \else
- \!thToksEdef\!taDataColumnTemplate={%
- \the\!taDataColumnTemplate
- \tabskip \the\skip0 }
- \fi
- \if!taOnceOnlyTabskip
- % % Tabskip used at right of this col only
- \else
- \!taLastRegularTabskip=\skip0 % Remember this Tabskip, for possible
- \fi % restoration after a subsequent"OnceOnly"
- \ReadFormatKeys}
-
-
-% SET VRULE: Invoked by the key "|"
-\def\!tfSetVrule{%
- \!thToksEdef\!taRuleColumnTemplate={%
- \noexpand\hfil
- \noexpand\vrule
- \noexpand\!thWidth
- \ifnum \!tgCode=1
- \ifx \!tgValue\empty
- \the\LineThicknessFactor % Default integer
- \else
- \!tgValue % User-specified integer
- \fi
- \!taLTU % \LineThicknessUnit
- \else
- \!tgValue % User-specified dimension
- \fi
- ####%
- \noexpand\hfil
- \the\!taRuleColumnTemplate} % has \tabskips, when column number=0
- \!tfAdjoinPriorColumn}
-
-% SET ALTERNATE VRULE: Invoked by the key "\|", in the form
-% \|{<template for (rule) column>}. The "{" and "}" are mandatory,
-% and the <template for column> must contain a "#". The key system
-% CAN'T be used to set up this template. The <template> can have the
-% form "\span\macro".
-\def\!tfSetAlternateVrule{%
- \afterassignment\!tfSetAlternateA
- \toks0 =} % Put template into \toks0
-
-\def\!tfSetAlternateA{%
- \!thToksEdef\!taRuleColumnTemplate={%
- \the\toks0 \the\!taRuleColumnTemplate} % RCT may have \tabskips
- \!tfAdjoinPriorColumn}
-
-% ADJOIN PRIOR COLUMN
-\def\!tfAdjoinPriorColumn{%
- \ifnum \!taColumnNumber=0
- \!taPreamble=\!taRuleColumnTemplate % New \tabskip may have been added
- \ifnum \TracingFormats>0
- \!tfShowRuleTemplate
- \fi
- \else
- \ifx\!tfRowOfWidths\empty % no "w" keys specified yet, not even this col
- \else
- \!tfUpdateRowOfWidths
- \fi
- % Adjoin positioning glues to left and right of template
- \!thToksEdef\!taDataColumnTemplate={%
- \the \!taLeftGlue
- \the \!taDataColumnTemplate
- \the \!taRightGlue}
- \ifnum \TracingFormats>0
- \!tfShowTemplates
- \fi
- % Adjoin data- and rule-column templates to preamble
- \!thToksEdef\!taPreamble={%
- \the\!taPreamble
- &
- \the\!taDataColumnTemplate
- &
- \the\!taRuleColumnTemplate}
- \fi
-%
-% START NEW COLUMN
- \advance \!taColumnNumber 1
- % Initialize data-column template, restoring last "regular" tabskip
- % after a "once only" tabskip
- \if!taOnceOnlyTabskip
- \!thToksEdef\!taDataColumnTemplate={%
- ####\tabskip \the\!taLastRegularTabskip}
- \else
- \!taDataColumnTemplate{##}%
- \fi
- % Remaining initializations
- \!taRuleColumnTemplate{}% # is inserted by \SetVrule, or \SetAlternateVrule
- \!taLeftGlue{\hfil}% % Default positioning is "center"
- \!taRightGlue{\hfil}%
- \!taMinimumColumnWidth=0pt
- \def\!tfWidthText{}%
- \!taOnceOnlyTabskipfalse % Set true by key "o"
- \ReadFormatKeys}
-
-% UPDATE ROW OF WIDTHS
-\def\!tfUpdateRowOfWidths{%
- % If user had a "w[<Text>]" key, set <Text> according to the
- % template for this column, and find the width of the result
- \ifx \!tfWidthText\empty
- \else % set specified text according to current template & find width
- \!tfComputeMinColWidth
- \fi
- \edef\!tfRowOfWidths{%
- \!tfRowOfWidths
- &%
- \omit % Data Column
- \ifdim \!taMinimumColumnWidth>0pt
- \hskip \the\!taMinimumColumnWidth
- \fi
- &
- \omit}} % Rule Column
-
-% COMPUTE MINIMUM COLUMN WIDTH (from specified WidthText)
-\def\!tfComputeMinColWidth{%
- \setbox0 =\vbox{%
- \ialign{% Plain's initialized \halign; \tabskip=0pt \everycr={}
- \span\the\!taDataColumnTemplate\cr
- \!tfWidthText\cr}}%
- \!taMinimumColumnWidth=\wd0 }
-
-% SHOW (INITIAL) RULE TEMPLATE
-\def\!tfShowRuleTemplate{%
- \!thMessage{}
- \!thMessage{TABLE FORMAT}
- \!thMessage{Column: Template}
- \!thMessage{%
- \space *c: ##\tabskip \the\LeftTabskip}
- \!taOldRuleColumnTemplate=\!taRuleColumnTemplate}
-
-% SHOW TEMPLATES
-\def\!tfShowTemplates{%
- \!thMessage{%
- \space \space r: \the\!taOldRuleColumnTemplate}
- \!taOldRuleColumnTemplate=\!taRuleColumnTemplate
- \!thMessage{%
- \ifnum \!taColumnNumber<10
- \space
- \fi
- \the\!taColumnNumber c: \the\!taDataColumnTemplate}
- \ifdim\!taMinimumColumnWidth>0pt
- \!thMessage{%
- \space \space w: \the\!taMinimumColumnWidth}
- \fi}
-
-
-% FINISH UP: Invoked by the keys "." and \EndFormat
-\def\!tfFinishFormat{%
- \ifnum \TracingFormats>0
- \!thMessage{%
- \space \space r: \the\!taOldRuleColumnTemplate
- \tabskip \the\RightTabskip}%
- \!thMessage{%
- \space *c: ##\tabskip 0pt}
- \fi
- \ifnum \!taColumnNumber<2
- \!thError{%
- \ifnum \!taColumnNumber=0
- No
- \else
- Only 1
- \fi
- "|"}%
- {\!thReadErrorMsg\!tfTooFewBarsA
- ^^J\!thReadErrorMsg\!tfTooFewBarsB
- ^^J\!thReadErrorMsg\!tkFixIt}%
- \fi
- \!thToksEdef\!taPreamble={%
- ####\tabskip\LeftTabskip
- &
- \the\!taPreamble \tabskip\RightTabskip
- &
- ####\tabskip 0pt \cr}
- \ifnum \TracingFormats>1
- \!thMessage{Preamble=\the\!taPreamble}
- \fi
- \ifnum \TracingFormats>2
- \!thMessage{Row Of Widths="\!tfRowOfWidths"}
- \fi
- \!taBeginFormatfalse % Intercepts "|", tabskips, and "."
- %\catcode`\|=13
- %\catcode`\"=13
- \!ttDoHalign}
-
-% ERROR MESSAGE FOR NOT ENOUGH "|"'s
-\!thStoreErrorMsg\!tfTooFewBarsA{%
- There must be at least 2 "\string|"'s (and/or "\string \|"'s)}
-\!thStoreErrorMsg\!tfTooFewBarsB{%
- between \string\BeginFormat\space and \string\EndFormat\space (or ".").}
-
-
-% REFORMAT [<key letters>]{<text>}: Formats <text> according to
-% <key letters>. Used to override the template for a column,
-% or columns when used after \use.
-\def\ReFormat[#1]{%
- \omit
- \!taDataColumnTemplate{##}%
- \!taLeftGlue{}%
- \!taRightGlue{}%
- %\catcode`\|=12 % Inhibit expansion if | immediately follows a <number>
- %\catcode`\"=12 % read by \getvalue. Actually, '|' and '"' shouldn't
- \begingroup
- \@@useotherbar
- \@@useotherquote
- \expanded{\endgroup\noexpand\ReadFormatKeys#1]}}% appear in a \ReFormat cmd; this is here as a safeguard.
-
-% END REFORMAT: Invoked by the key "]"
-\def\!tfEndReFormat{%
- \ifnum \TracingFormats>0
- \!thMessage{ReF:
- \the\!taLeftGlue
- \hbox{\the\!taDataColumnTemplate}% White lie
- \the\!taRightGlue}
- \fi
- %\catcode`\|=13
- %\catcode`\"=13
- \!tfReFormat}
-
-\def\!tfReFormat#1{%
- \the \!taLeftGlue
- \vbox{%
- \ialign{%
- \span\the\!taDataColumnTemplate\cr
- #1\cr}}%
- \the \!taRightGlue}
-
-
-
-% *********************************************************************
-% SECTION G: GET VALUE
-% *********************************************************************
-
-% GET_VALUE{<return macro>}<tokens> functions as follows:
-
-% If <tokens> has the form <(stuff)>, then
-% code=2 and value=<stuff>
-
-% Otherwise <tokens> has the form <DDDXYZ> where <DDD> denotes (a possibly
-% empty) string of consecutive digits (0,1,2,...,9) terminated by the first
-% character <X> (possibly a blank) that is not a digit. In this case
-% code=1 and value=<DDD> (= <null>, if <DDD> is non-empty).
-
-% Examples: Code Value
-% "\GetValue{\macro} 3" 1 null
-% "\GetValue{\macro}A " 1 null
-% "\GetValue{\macro}1 " 1 1
-% "\GetValue{\macro}25A" 1 25
-% "\GetValue{\macro}25012 " 1 25012
-% "\GetValue{\macro}(10pt)" 2 10pt
-% "\GetValue{\macro}(1in)" 2 1in
-% "\GetValue{\macro} (1in)" 1 null
-
-
-% GET_VALUE{<macro to execute after value is found>}
-\def\!tgGetValue#1{%
- \def\!tgReturn{#1}% Set return
- \futurelet\!ttemp\!tgCheckForParen}% Now \!ttemp is the token
- % immediately after {}
-
-% CHECK_PAREN: See if \!ttemp is a (
-\def\!tgCheckForParen{%
- \ifx\!ttemp (%
- \!thx \!tgDoParen
- \else
- \!thx \!tgCheckForSpace
- \fi}
-
-% DO_PAREN: Set code to 2, value to stuff inside ( )'s
-\def\!tgDoParen(#1){%
- \def\!tgCode{2}%
- \def\!tgValue{#1}% NOTE #1 MUST BE A LEGITIMATE VALUE
- \!tgReturn}
-
-% CHECK_SPACE: See if \!ttemp is a <blank space>
-\def\!tgCheckForSpace{%
- \def\!tgCode{1}%
- \def\!tgValue{}% Initialize value to <null>
- \ifx\!ttemp\!thSpaceToken
- \!thx \!tgReturn % <blank space> means no value was specified
- \else
- \!thx \!tgCheckForDigit
- \fi}
-
-% CHECK_DIGIT: \!ttemp is not a <blank space>; if its a digit (0,1,...,9)
-% get the <number> starting with that digit.
-\def\!tgCheckForDigit{%
- \!taDigitfalse
- \ifx 0\!ttemp
- \!taDigittrue
- \else
- \ifx 1\!ttemp
- \!taDigittrue
- \else
- \ifx 2\!ttemp
- \!taDigittrue
- \else
- \ifx 3\!ttemp
- \!taDigittrue
- \else
- \ifx 4\!ttemp
- \!taDigittrue
- \else
- \ifx 5\!ttemp
- \!taDigittrue
- \else
- \ifx 6\!ttemp
- \!taDigittrue
- \else
- \ifx 7\!ttemp
- \!taDigittrue
- \else
- \ifx 8\!ttemp
- \!taDigittrue
- \else
- \ifx 9\!ttemp
- \!taDigittrue
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \if!taDigit
- \!thx \!tgGetNumber
- \else
- \!thx \!tgReturn
- \fi}
-
-% GET_NUMBER
-\def\!tgGetNumber{%
- \afterassignment\!tgGetNumberA
- \!taCountA=}
-\def\!tgGetNumberA{%
- \edef\!tgValue{\the\!taCountA}%
- \!tgReturn}
-
-
-% ********************************************************************
-% MISCELANEOUS "RETURNS" FROM \getvalue
-% ********************************************************************
-
-% SET UP PAR BOX: Puts \BeginTableParBox{<user-specified \hsize>}
-% to the left of "#" and \EndTableParBox to the right of "#".
-\def\!tgSetUpParBox{%
- \edef\!ttemp{%
- \noexpand \ReadFormatKeys
- b{\noexpand \BeginTableParBox{%
- \ifnum \!tgCode=1
- \ifx \!tgValue\empty
- \the\ColumnWidthFactor
- \else
- \!tgValue % user-specified integer
- \fi
- \!taCWU % \ColumnWidthUnit
- \else
- \!tgValue % user-specified dimension
- \fi}}}%
- \!ttemp
- a{\EndTableParBox}}
-
-% SET KERNS
-\def\!tgInsertKern{%
- \edef\!ttemp{%
- \kern
- \ifnum \!tgCode=1
- \ifx \!tgValue\empty
- \the\KernFactor
- \else
- \!tgValue % user-specified integer
- \fi
- \!taKU % \KernUnit
- \else
- \!tgValue % user-specified dimension
- \fi}%
- \edef\!ttemp{%
- \noexpand\ReadFormatKeys
- \ifh@ % true if kern goes to left of "#"
- b{\!ttemp}
- \fi
- \ifv@ % true if kern goes to right of "#"
- a{\!ttemp}
- \fi}%
- \!ttemp}
-
-% *********************************************************************
-% SECTION K: KEYS
-% *********************************************************************
-
-% ****************************************************************
-% DEFINING NEW KEYS
-% ****************************************************************
-
-% NEW FORMAT KEY <Key Letter>: Must be followed by
-% <Parameter Text> <Replacement Text>
-% Sets up a new key letter command by expanding (essentially) to
-% \expandafter \def \csname !tk<Key Letter>\endcsname
-% <Parameter Text>{<Replacement Text>}
-% A warning message is issued if <Key Letter> is already in use.
-\def\NewFormatKey#1{%
- \!thx\def\!thx\!ttempa\!thx{\string #1}%
- \!thx\def\!thx\!ttempb\!thx{\csname !tk<\!ttempa>\endcsname}%
- \ifnum \TracingKeys>0
- \!tkReportNewKey
- \fi
- \!thx\ifx \!ttempb \relax
- \!thx\!tkDefineKey
- \else
- \!thx\!tkRejectKey
- \fi}
-
-% REPORT NEW KEY
-\def\!tkReportNewKey{%
- \!taToksA\!thx{\!ttempa}%
- \!thMessage{NEW KEY: "\the\!taToksA"}}
-
-% DEFINE KEY
-\def\!tkDefineKey{%
- \!thx\def\!ttempb}%
-
-% DUPLICATE KEY
-\def\!tkRejectKey{%
- \!taToksA\!thx{\!ttempa}%
- \!thError{Key letter "\the\!taToksA" already used}
- {\!thReadErrorMsg\!tkFixIt}
- \def\!tkGarbage}%
-
-% ERROR MESSAGE FOR DUPLICATE KEY
-\!thStoreErrorMsg\!tkFixIt{%
- You'd better type \space 'E' \space and fix your file.}
-
-
-% ****************************************************************
-% READING FORMAT KEYS
-% ****************************************************************
-
-% READ FORMAT KEYS
-\def\ReadFormatKeys#1{%
- \!thx\def\!thx\!ttempa\!thx{\string #1}%
- \!thx\def\!thx\!ttempb\!thx{\csname !tk<\!ttempa>\endcsname}%
- \ifnum \TracingKeys>1
- \!tkReportKey
- \fi
- \!thx\ifx \!ttempb\relax
- \!thx\!tkReplaceKey
- \else
- \!thx\!ttempb
- \fi}
-
-% REPORT KEY
-\def\!tkReportKey{%
- \!taToksA\!thx{\!ttempa}%
- \!thMessage{KEY: "\the\!taToksA"}}
-
-% REPLACE KEY
-\def\!tkReplaceKey{%
- \!taToksA\!thx{\!ttempa}%
- \!thError {Undefined format key "\the\!taToksA"}
- {\!thReadErrorMsg\!tkUndefined ^^J\!thReadErrorMsg\!tkBadKey}
- \!tkReplaceKeyA}
-
-\def\!tkReplaceKeyA{%
- \!thGetReplacement{\!thReadErrorMsg\!tkReplace}\!tkReplacement
- \!thx\ReadFormatKeys\!tkReplacement}
-
-% ERROR MESSAGES FOR KEY RELACEMENT
-\!thStoreErrorMsg\!tkUndefined{%
- The format key in " "'s on the next to top line is undefined.}
-\!thStoreErrorMsg\!tkBadKey{%
- Type \space E \space to quit now, or
- \space<CR> \space and respond to next prompt.}
-\!thStoreErrorMsg\!tkReplace{%
- Type \space<replacement key><CR> \space,
- or simply \space<CR> \space to skip offending key:}
-
-
-% ****************************************************************
-% PRIMITIVE KEYS
-% ****************************************************************
-
-% Key "b": b{TOKENS} adds TOKENS to the left of (before) the template
-\NewFormatKey b#1{%
- \!thx\!tkJoin\!thx{\the\!taDataColumnTemplate}{#1}%
- \ReadFormatKeys}
-
-\def\!tkJoin#1#2{%
- \!taDataColumnTemplate{#2#1}}%
-
-% Key "a": a{TOKENS} adds TOKENS to the right of (after) the template
-\NewFormatKey a#1{%
- \!taDataColumnTemplate\!thx{\the\!taDataColumnTemplate #1}%
- \ReadFormatKeys}
-
-% Key "\{": Enclose template in braces.
-\NewFormatKey \{{%
- \!taDataColumnTemplate=\!thx{\!thx{\the\!taDataColumnTemplate}}%
- \ReadFormatKeys}
-
-% Key "*": "*{N}{KEY LETTERS}" is equivalent to specifying
-% <KEY LETTERS> N times.
-% KEY LETTERS may contain further * specifications
-\NewFormatKey *#1#2{%
- \!taCountA=#1\relax
- \!taToksA={}%
- \!thLoop
- \ifnum \!taCountA > 0
- \!taToksA\!thx{\the\!taToksA #2}%
- \advance\!taCountA -1
- \repeat
- \!thx\ReadFormatKeys\the\!taToksA}
-
-
-% ****************************************************************
-% POSITIONING KEYS
-% ****************************************************************
-
-% Key "\LeftGlue": Specifies the glue (usually \hfil, or nothing) to be
-% added to extreme left of the template to position a column
-\NewFormatKey \LeftGlue#1{%
- \!taLeftGlue{#1}%
- \ReadFormatKeys}
-
-% Key "\RightGlue": Specifies the glue (usually \hfil, or nothing) to be
-% added to the extreme right of the template to position a column
-\NewFormatKey \RightGlue#1{%
- \!taRightGlue{#1}%
- \ReadFormatKeys}
-
-% Key "c": Centered column.
-\NewFormatKey c{%
- \ReadFormatKeys
- \LeftGlue\hfil
- \RightGlue\hfil}
-
-% Key "l": Left-adjusted column.
-\NewFormatKey l{%
- \ReadFormatKeys
- \LeftGlue{} % In case more than one positioning key is specified.
- \RightGlue\hfil}
-
-% Key "r": Right-adjusted column.
-\NewFormatKey r{%
- \ReadFormatKeys
- \LeftGlue\hfil
- \RightGlue{}}
-
-% Key "k": Adds kerns to left and right of "#"
-% This key and the two below use Plain TeX's \if@h as if it were \if@left,
-% and \if@v as if it were \if@right. Table making goes on in a group,
-% so even in the unlikely circumstance that a \phantom is currently under
-% construction, there's no problem.
-\NewFormatKey k{%
- \h@true
- \v@true
- \!tgGetValue{\!tgInsertKern}}
-
-% Key "i": Adds a kern to the left of "#"
-\NewFormatKey i{%
- \h@true
- \v@false
- \!tgGetValue{\!tgInsertKern}}
-
-% Key "j": Adds a kern to the right of "#"
-\NewFormatKey j{%
- \h@false
- \v@true
- \!tgGetValue{\!tgInsertKern}}
-
-
-% ****************************************************************
-% NUMERIC ITEM KEYS
-% ****************************************************************
-
-% Key "n": numeric item , non-math mode.
-\NewFormatKey n{%
- \def\!tnStyle{}%
- \futurelet\!tnext\!tnTestForBracket}
-
-% Key "N": numeric item, math mode.
-\NewFormatKey N{%
- \def\!tnStyle{$}%
- \futurelet\!tnext\!tnTestForBracket}
-
-
-% ****************************************************************
-% ATTRIBUTE KEYS
-% ****************************************************************
-
-% Key "m": Math mode.
-\NewFormatKey m{%
- \ReadFormatKeys b$ a$}
-
-% Key "M": Displaymath mode.
-\NewFormatKey M{%
- \ReadFormatKeys \{ b{$\displaystyle} a$}
-
-% Key "\m": Template ${}#\hfil$
-\NewFormatKey \m{%
- \ReadFormatKeys l b{{}} m}
-
-% Key "\M": Template $\displaystyle{{}#\hfil}$
-\NewFormatKey \M{%
- \ReadFormatKeys l b{{}} M}
-
-% Key "f": Set font (E.g., f\it sets up italic font (assuming \it
-% has its usual meaning)
-\NewFormatKey f#1{%
- \ReadFormatKeys b{#1}}
-
-% Key "B": abbreviation for f\bf
-\NewFormatKey B{%
- \ReadFormatKeys f\bf}
-
-% Key "I": abbreviation for f\it
-\NewFormatKey I{%
- \ReadFormatKeys f\it}
-
-% Key "S": abbreviation for f\sl
-\NewFormatKey S{%
- \ReadFormatKeys f\sl}
-
-% Key "R": abbreviation for f\rm
-\NewFormatKey R{%
- \ReadFormatKeys f\rm}
-
-% Key "T": abbreviation for f\tt
-\NewFormatKey T{%
- \ReadFormatKeys f\tt}
-
-% Key "p": ParBox
-\NewFormatKey p{%
- \!tgGetValue{\!tgSetUpParBox}}
-
-
-% ****************************************************************
-% MINIMUM COLUMN WIDTH KEY
-% ****************************************************************
-
-% Key "w": minimum column width
-\NewFormatKey w{%
- \!tkTestForBeginFormat w{\!tgGetValue{\!tfSetWidth}}}
-
-
-% ****************************************************************
-% TABSKIP KEYS
-% ****************************************************************
-
-% Key "s": Set tabskip for the inter-column space to the right
-% of the current column, and all subsequent spaces, until overriden
-% by a new "s" or "o" key.
-\NewFormatKey s{%
- \!taOnceOnlyTabskipfalse % in case same column has a prior "o" key
- \!tkTestForBeginFormat t{\!tgGetValue{\!tfSetTabskip}}}
-
-% Key "o": Apply the \tabskip stated for this column ONLY to the
-% inter-column space just to the right of this column; restore the
-% the previous \tabskip for subsequent columns.
-\NewFormatKey o{%
- \!taOnceOnlyTabskiptrue
- \!tkTestForBeginFormat o{\!tgGetValue{\!tfSetTabskip}}}
-
-
-% ****************************************************************
-% RULE KEYS
-% ****************************************************************
-
-% Key "|": Standard rule column designator
-\NewFormatKey |{%
- \!tkTestForBeginFormat |{\!tgGetValue{\!tfSetVrule}}}
-
-% Key "\|": Non-standard rule column designator
-\NewFormatKey \|{%
- \!tkTestForBeginFormat \|{\!tfSetAlternateVrule}}
-
-
-% ****************************************************************
-% END-OF-FORMAT KEYS
-% ****************************************************************
-
-% Key ".": PERIOD -- end of \BeginFormat section.
-\NewFormatKey .{%
- \!tkTestForBeginFormat.{\!tfFinishFormat}}
-
-% Key "\EndFormat": Equivalent to "."
-\NewFormatKey \EndFormat{%
- \!tkTestForBeginFormat\EndFormat{\!tfFinishFormat}}
-
-% Key "]": End of \ReFormat section
-\NewFormatKey ]{%
- \!tkTestForReFormat ] \!tfEndReFormat}
-
-
-% ****************************************************************
-% VALIDITY CHECKS
-% ****************************************************************
-
-% TEST FOR BEGIN FORMAT{<Key>}{Intended Action}: This test is run
-% on keys that can only be used by \BeginFormat --- "s", "o",
-% "|", "\|", "w", ".", and "\EndFormat".
-\def\!tkTestForBeginFormat#1#2{%
- \if!taBeginFormat
- \def\!ttemp{#2}%
- \!thx \!ttemp
- \else
- \toks0={#1}%
- \toks2=\!thx{\string\ReFormat}%
- \!thx \!tkImproperUse
- \fi}
-
-% TEST FOR RE FORMAT{<Key>}{Intended Action}: This test is run
-% on the key "]", which can only be used by \ReFormat.
-\def\!tkTestForReFormat#1#2{%
- \if!taBeginFormat
- \toks0={#1}%
- \toks2=\!thx{\string\BeginFormat}%
- \!thx \!tkImproperUse
- \else
- \def\!ttemp{#2}%
- \!thx \!ttemp
- \fi}
-
-% IMPROPER USE OF KEY
-\def\!tkImproperUse{%
- \!thError{\!thReadErrorMsg\!tkBadUseA "\the\toks0 "}%
- {\!thReadErrorMsg\!tkBadUseB \the\toks2 \space command.
- ^^J\!thReadErrorMsg\!tkBadKey}%
- \!tkReplaceKeyA}
-
-% ERROR MESSAGES FOR IMPROPER USE OF KEY
-\!thStoreErrorMsg\!tkBadUseA{Improper use of key }
-\!thStoreErrorMsg\!tkBadUseB{%
- The key mentioned above can't be used in a }
-
-
-
-% *********************************************************************
-% SECTION n: NUMERIC
-% *********************************************************************
-
-% NOTE: THE SPACE BETWEEN A NUMERIC ENTRY AND THE FOLLOWING '|', '"',
-% OR '\|' IS MANDATORY.
-% EMPTY NUMERIC ENTRIES ARE NOT ALLOWED: USE '{}' OR '\omit' INSTEAD.
-
-% TEST FOR BRACKET: Invoked by the keys "n" and "N".
-\def\!tnTestForBracket{%
- \ifx [\!tnext
- \!thx\!tnGetArgument
- \else
- \!thx\!tnGetCode
- \fi}
-
-% GET CODE: E.g. "4", or "4.0", "0.4", or "10.2"
-\def\!tnGetCode#1 {% NOTE THE BLANK
- \!tnConvertCode #1..!}
-
-% CONVERT CODE: E.g. converts above to [0000], [0000.], [.0000],
-% [0000000000.00]
-\def\!tnConvertCode #1.#2.#3!{%
- \begingroup
- \aftergroup\edef \aftergroup\!ttemp \aftergroup{%
- \aftergroup[%
- \!taCountA #1
- \!thLoop
- \ifnum \!taCountA>0
- \advance\!taCountA -1
- \aftergroup0
- \repeat
- \def\!ttemp{#3}%
- \ifx\!ttemp \empty
- \else
- \aftergroup.
- \!taCountA #2
- \!thLoop
- \ifnum \!taCountA>0
- \advance\!taCountA -1
- \aftergroup0
- \repeat
- \fi
- \aftergroup]\aftergroup}%
- \endgroup\relax
- \!thx\!tnGetArgument\!ttemp}
-
-% GET ARGUMENT: [<sample left field> <optional .<sample right field>>
-\def\!tnGetArgument[#1]{%
- \!tnMakeNumericTemplate\!tnStyle#1..!}
-
-% MAKE NUMERIC TEMPLATE
-\def\!tnMakeNumericTemplate#1#2.#3.#4!{% #1=<empty> or $
- \def\!ttemp{#4}%
- \ifx\!ttemp\empty
- \!taDimenC=0pt
- \else
- \setbox0=\hbox{\mathsurround\zeropoint #1.#3#1}%
- \!taDimenC=\wd0
- \fi
- \setbox0 =\hbox{\mathsurround\zeropoint #1#2#1}%
- \!thToksEdef\!taDataColumnTemplate={%
- \noexpand\!tnSetNumericItem
- {\the\wd0 }%
- {\the\!taDimenC}%
- {#1}%
- \the\!taDataColumnTemplate} % Might have tabskip glue in here
- \ReadFormatKeys}
-
-% SET NUMERIC ITEM
-\def\!tnSetNumericItem #1#2#3#4 {% NOTE THE BLANK
- \!tnSetNumericItemA {#1}{#2}{#3}#4..!}
-
-\def\!tnSetNumericItemA #1#2#3#4.#5.#6!{%
- \def\!ttemp{#6}%
- \hbox to #1{\hss \mathsurround\zeropoint #3#4#3}%
- \hbox to #2{%
- \ifx\!ttemp\empty
- \else
- \mathsurround\zeropoint #3.#5#3%
- \fi
- \hss}}
-
-
-
-% *********************************************************************
-% SECTION S: STRUTS
-% *********************************************************************
-
-% The following are in ALLOCATIONS
- %\newdimen\StrutUnit (normal value \normalbaselineskip / 11)
- %\newcount\StrutHeightFactor (normal value 8)
- %\newcount\StrutDepthFactor (normal value 3)
-
-% MAKE STRUT OF SPECIFIED HEIGHT AND DIMENSION
-% \MakeStrut <height><depth>; height and depth are <dimen>'s
-\def\MakeStrut#1#2{%
- \vrule width0pt height #1 depth #2}
-
-% STANDARD VERTICAL STRUT
-% Makes a strut of height=StrutHeightFactor*StrutUnit
-% depth =StrutDepthFactor *StrutUnit
-\def\StandardTableStrut{%
- \MakeStrut{\StrutHeightFactor\StrutUnit}
- {\StrutDepthFactor\StrutUnit}}
-
-
-% STANDARD VERTICAL STRUT, WITH EXTRA HEIGHT/DEPTH
-% \AugmentedTableStrut<multiple for extra height><multiple for extra depth>
-% makes a strut of height=(StrutHeightFactor+#1)*StrutUnit
-% depth =(StrutDepthFactor+#2)*StrutUnit
-\def\AugmentedTableStrut#1#2{%
- \dimen@=\StrutHeightFactor\StrutUnit
- \advance\dimen@ #1\StrutUnit
- \dimen@ii=\StrutDepthFactor\StrutUnit
- \advance\dimen@ii #2\StrutUnit
- \MakeStrut{\dimen@}{\dimen@ii}}
-
-
-% ENLARGE<extra height><extra depth><original>
-% Enlarges "original" by extra height and extra depth.
-% Extra height and extra depth are <dimen>'s.
-% Works for various math styles, and takes into account
-% \spacefactor in horizontal mode
-\def\Enlarge#1#2{% 3rd argument is picked up later
- % #1=extra height
- % #2=extra depth
- \!taDimenA=#1\relax
- \!taDimenB=#2\relax
- \let\!TsSpaceFactor=\empty
- \ifmmode
- \!thx \mathpalette
- \!thx \!TsEnlargeMath
- \else
- \!thx \!TsEnlargeOther
- \fi}
-
-\def\!TsEnlargeOther#1{%
- \ifhmode
- \setbox\zerocount\hbox{#1%
- \xdef\!TsSpaceFactor{\spacefactor=\the\spacefactor}}%
- \else
- \setbox\zerocount\hbox{#1}%
- \fi
- \!TsFinishEnlarge}
-
-\def\!TsEnlargeMath#1#2{%
- \setbox\zerocount\hbox{$\mathsurround\zeropoint#1{#2}$}%
- \!TsFinishEnlarge}
-
-\def\!TsFinishEnlarge{%
- \dimen@\ht\zerocount
- \advance \dimen@ \!taDimenA
- \ht\zerocount\dimen@
- \dimen@\dp\zerocount
- \advance \dimen@ \!taDimenB
- \dp\zerocount\dimen@
- \box\zerocount \!TsSpaceFactor{}}
-
-
-% ENLARGE BY MULTIPLES OF StrutUnit
-% \enlarge<multiple for extra height><multiple for extra depth><original>
-% Enlarges by (multiple for extra height)*StrutUnit
-% and (multiple for extra depth) *StrutUnit
-\def\enlarge#1#2{% 3rd argument is picked up later
- \Enlarge{#1\StrutUnit}{#2\StrutUnit}}
-
-
-% OPENUP#1#2: increases strut height and depth factors by #1 and #2.
-\def\OpenUp#1#2{%
- \advance \StrutHeightFactor #1\relax
- \advance \StrutDepthFactor #2\relax}
-
-
-
-% *********************************************************************
-% SECTION T: TABLES
-% *********************************************************************
-
-% Table-making is initiated by \BeginTable. After processing that
-% command, TeX absorbs the instructions in the prologue to the table
-% until it gets to \BeginFormat. \BeginFormat sets up the preamble
-% for the \halign that will be used to create the table. \EndFormat
-% initiates the \halign-ment, which is terminated by \EndTable.
-
-
-% *********************************************************************
-% BEGIN TABLE, (DO HALIGN), END TABLE
-% *********************************************************************
-% BEGIN TABLE
-\def\BeginTable{%
- \futurelet\!tnext\!ttBeginTable}
-
-\def\!ttBeginTable{%
- \ifx [\!tnext
- \def\!tnext{\!ttBeginTableA}%
- \else
- \def\!tnext{\!ttBeginTableA[c]}%
- \fi
- \!tnext}
-
-\def\!ttBeginTableA[#1]{%
- \if #1u% % "unboxed" table
- \ifmmode
- \def\!ttEndTable{% % user had better be in display math mode
- \relax}% % and have only one table at the outer level
- \else % user had better be in vertical mode
- \bgroup
- \def\!ttEndTable{%
- \egroup}%
- \fi
- \else
- \hbox\bgroup $
- \def\!ttEndTable{%
- \egroup % for the \vtop, \vbox, or \vcenter, yet to come
- $% for math mode
- \egroup}% for the \hbox
- \if #1t%
- \vtop
- \else
- \if #1b%
- \vbox
- \else
- \vcenter % math mode was essential for this
- \fi
- \fi
- \bgroup % for the \vtop, \vbox, or \vcenter
- \fi
- \advance\!taRecursionLevel 1 % RecursionLevel governs initialization
- \let\!ttRightGlue=\relax % This may be changed by \JustCenter, etc
- \everycr={}
- \ifnum \!taRecursionLevel=1
- \!ttInitializeTable
- \fi}
-
-% INITIALIZE TABLE
-% \bgroup
-% \catcode`\|=13
-% \catcode`\"=13
-% \catcode`\~=13
-% \gdef\!ttInitializeTable{%
-% \let\!ttTie=~ % Meanings of ~ and \- are
-% \let\!ttDH=\- % restored by \BeginTableParBox
-% \catcode`\|=\active
-% \catcode`\"=\active
-% \catcode`\~=\active
-% \def |{\unskip\!ttRightGlue&&}% Use rule-column template
-% \def\|{\unskip\!ttRightGlue&\omit\!ttAlternateVrule}%
-% % Override rule-column template
-% \def"{\unskip\!ttRightGlue&\omit&}% Omit rule-column template
-% \def~{\kern .5em}% ~ now has the width of a digit
-% \def\\{\!ttEndOfRow}%
-% \def\-{\!ttShortHrule}%
-% \def\={\!ttLongHrule}%
-% \def\_{\!ttFullHrule}%
-% \def\Left##1{##1\hfill\null}% \null prevents \unskip from
-% \def\Center##1{\hfill##1\hfill\null}% killing the \hfill
-% \def\Right##1{\hfill##1}%
-% \def\use{\!ttuse}%
-% \def\Use{\!ttUse}%
-% \the\EveryTable}
-% \egroup
-
-\bgroup
- %catcode`\|=13
- %catcode`\"=13
- \catcode`\~=13
- \gdef\!ttInitializeTable{%
- \let\!ttTie=~ %
- \let\!ttDH=\- %
- %catcode`\|=\active
- %catcode`\"=\active
- \catcode`\~=\active
- %def |{\unskip\!ttRightGlue&&}%
- %def\|{\unskip\!ttRightGlue&\omit\!ttAlternateVrule}%
- %def"{\unskip\!ttRightGlue&\omit&}%
- \def~{\kern .5em}%
- %def\\{\!ttEndOfRow}%
- \def\\{\par}
- %def\-{\!ttShortHrule}%
- %def\={\!ttLongHrule}%
- %def\_{\!ttFullHrule}%
- \def\Left ##1{##1\hfill\null}% % \null prevents \unskip from
- \def\Center##1{\hfill##1\hfill\null}% % killing the \hfill
- \def\Right ##1{\hfill##1}%
- \def\use{\!ttuse}%
- \def\Use{\!ttUse}%
- \the\EveryTable}% comes too soon
-\egroup
-
-\let\!ttRightGlue=\relax % This may be changed, in a group, by
- % \JustCenter, etc
-
-% DO HALIGN: Invoked by END FORMAT (or the key ".")
-\def\!ttDoHalign{%
- \baselineskip=0pt \lineskiplimit=0pt \lineskip=0pt %
- \tabskip=0pt
- \halign \the\!taTableSpread \bgroup
- \span\the\!taPreamble
- \ifx \!tfRowOfWidths \empty
- \else
- \!tfRowOfWidths \cr %
- \fi}
-
-% END TABLE
-\def\EndTable{%
- \egroup % finishes the \halign
- \!ttEndTable}% closes off the table envirnoment set up by \BeginTable
-
-
-% *********************************************************************
-% END OF ROW PROCESSING
-% *********************************************************************
-
-% END OF ROW: When followed by
-% 0, inserts no strut
-% +, inserts an AugmentedTableStrut (with <x-height> and <x-depth>
-% as arguments
-% anything else, inserts a StandardTableStrut,
-% and finished off the row with a \cr.
-\def\!ttEndOfRow{%
- \futurelet\!tnext\!ttTestForBlank}
-
-% TEST FOR BLANK
-\def\!ttTestForBlank{%
-% \!thMessage{At Test For Blank: \meaning\!tnext}
- \ifx \!tnext\!thSpaceToken % the "usual" case
- \!thx\!ttDoStandard
- \else
- \!thx\!ttTestForZero
- \fi}
-
-% TEST FOR ZERO
-\def\!ttTestForZero{%
- \ifx 0\!tnext
- \!thx \!ttDoZero
- \else
- \!thx \!ttTestForPlus
- \fi}
-
-% TEST FOR PLUS
-\def\!ttTestForPlus{%
- \ifx +\!tnext
- \!thx \!ttDoPlus
- \else
- \!thx \!ttDoStandard
- \fi}
-
-% DO ZERO: No strut
-\def\!ttDoZero#1{% #1 eats the 0
- \cr}
-
-% DO PLUS: Insert "Extra" strut; #2=extra height, #3=extra depth, both
-% as integers (units of \StrutUnit)
-\def\!ttDoPlus#1#2#3{% #1 eats the +
- \AugmentedTableStrut{#2}{#3}%
- \cr}
-
-% DO STANDARD: Insert standard table strut
-\def\!ttDoStandard{%
- \StandardTableStrut
- \cr}
-
-
-% *********************************************************************
-% ALTERNATE VRULES
-% *********************************************************************
-
-% A '\|' can appear in a rule-column in place of a '|', '"', or '&'.
-
-% If '\|' is immediately followed by a blank, a string of digits, or
-% (...) [... had better be a <dimen>], a \vrule is placed in the
-% rule column; the thickness of the \vrule follows TABLE's usual
-% conventions. Be sure to put a blank after a string of digits.
-
-% If '\|' is immediately followed by a '*', a user-specified default
-% "pseudo"-rule is placed in the rule column. This P.R. is specified
-% by the parameterless macro \PseudoVrule. For example,
-% to place a "double rule" into a rule column, you could make the definition
-% \def\PseudoVrule{\hfil\vrule \hskip1pt \vrule\hfil}
-
-% If none of the above cases applies, a non-space token follows '\|':
-% that token is placed in the rule-column. To put a '*' in a
-% rule-column, enter '\|{*}'. '\|\PseudoVrule' has the same effect
-% as '\|*'.
-
-% ALTERNATE VRULE
-\def\!ttAlternateVrule{%
- \!tgGetValue{\!ttAVTestForCode}} % AV == Alternate Vrule
-
-% TEST FOR CODE (2)
-\def\!ttAVTestForCode{%
- \ifnum \!tgCode=2 % (...) follows "\|"
- \!thx\!ttInsertVrule % \InsertVrule ends with "&"
- \else
- \!thx\!ttAVTestForEmpty
- \fi}
-
-% TEST FOR EMPTY (VALUE)
-\def\!ttAVTestForEmpty{%
- \ifx \!tgValue\empty % non-digit after "\|"
- \!thx\!ttAVTestForBlank
- \else
- \!thx\!ttInsertVrule % integer after "\|"
- \fi}
-
-% TEST FOR BLANK
-\def\!ttAVTestForBlank{%
- \ifx \!ttemp\!thSpaceToken % blank after "\|"
- \!thx\!ttInsertVrule
- \else
- \!thx\!ttAVTestForStar
- \fi}
-
-% TEST FOR STAR
-\def\!ttAVTestForStar{%
- \ifx *\!ttemp % "*" after "\|"
- \!thx\!ttInsertDefaultPR % PR == pseudo-rule
- \else
- \!thx\!ttGetPseudoVrule % "Anything else" after "\|"
- \fi}
-
-% INSERT VRULE
-\def\!ttInsertVrule{%
- \hfil
- \vrule \!thWidth
- \ifnum \!tgCode=1
- \ifx \!tgValue\empty
- \LineThicknessFactor
- \else
- \!tgValue
- \fi
- \LineThicknessUnit
- \else
- \!tgValue
- \fi
- \hfil
- &}
-
-% INSERT DEFAULT PSEUDO-RULE
-\def\!ttInsertDefaultPR*{%
- \PseudoVrule % User-specified default pseudo-rule
- &}
-
-% GET PSEUDO-RULE
-\def\!ttGetPseudoVrule#1{%
- \toks0={#1}%
- #1&}
-
-% DEFAULT PSEUDO-RULE
-\def\PseudoVrule{}
-
-
-% *********************************************************************
-% USE: Version of \multispan for rule-&-column tables
-% *********************************************************************
-
-% USE
-% \use <number> spans the next <number> data columns.
-
-\def\!ttuse#1{%
- \ifnum #1>\plusone
- \omit
- \mscount=#1 % \mscount is in Plain
- \advance\mscount by \minusone
- \advance\mscount by \mscount
- \!thLoop
- \ifnum\mscount>\plusone
- % \sp@n: from plain
- \spanomit \advance\mscount\minusone
- \repeat
- \span
- \fi}
-
-\def\!ttUse#1[{%
- \!ttuse{#1}%
- \ReFormat[}
-
-
-% *********************************************************************
-% HRULES
-% *********************************************************************
-
-% FULL HORIZONTAL RULE: Draws a rule across the table,
-% using \noalign{\hrule}
-\def\!ttFullHrule{%
- \noalign
- \bgroup
- \!tgGetValue{\!ttFullHruleA}}
-
-\def\!ttFullHruleA{%
- \!ttGetHalfRuleThickness % Sets \dimen0 to half of specified thickness
- \hrule \!thHeight \dimen0 \!thDepth \dimen0
- \penalty0 % so can break an ``unboxed'' table after a horizontal rule.
- \egroup} % ends the \noalign
-
-% SHORT HORIZONTAL RULE: Draws a rule across 1 (or more) columns,
-% using \leaders; this rule doesn't extend across the neighboring
-% tabskip glues to join up with adjacent rule columns. By contrast
-% the LONG HORIZONTAL RULE below does just that.
-\def\!ttShortHrule{%
- \omit
- \!tgGetValue{\!ttShortHruleA}}
-
-\def\!ttShortHruleA{%
- \!ttGetHalfRuleThickness % Sets \dimen0 to half of specified thickness
- \leaders \hrule \!thHeight \dimen0 \!thDepth \dimen0 \hfill
- \null % prevents an \unskip from annihilating the \leaders
- \ignorespaces}
-
-% LONG HORIZONTAL RULE: This rule requires special coding.
-% It must be preceded and followed by '&', instead of the usual
-% '|' or '"'. However, '\_' can follow '\use' in the usual manner.
-% And in fact, to insert long-rules in two or more contiguous columns,
-% '\use' MUST be used with an argument = total number of columns involved.
-\def\!ttLongHrule{%
- \omit\span\omit\span \!ttShortHrule}
-
-% GET RULE THICKNESS
-\def\!ttGetHalfRuleThickness{%
- \dimen0 =
- \ifnum \!tgCode=1
- \ifx \!tgValue\empty
- \LineThicknessFactor
- \else
- \!tgValue % user-specified integer
- \fi
- \LineThicknessUnit
- \else
- \!tgValue % user-specified dimension
- \fi
- \divide\dimen0 2 }
-
-
-% *********************************************************************
-% STRETCHING AND SHRINKING A TABLE
-% *********************************************************************
-
-% SET TABLE TO WIDTH <dimen>
-\def\SetTableToWidth#1{%
- \!taTableSpread={to #1}}
-
-% WIDEN TABLE BY <dimen>
-\def\WidenTableBy#1{%
- \ifdim #1=0pt
- \!taTableSpread={}%
- \else
- \!taTableSpread={spread #1}%
- \fi}
-
-\def\Expand{%
- \SetTableToWidth{\hsize}}%
-
-\def\LongLines{%
- \LeftTabskip =0pt plus 1fill
- \RightTabskip=\LeftTabskip
- \Expand}
-
-
-% *********************************************************************
-% REPOSITIONING COMMANDS (\JUSTLEFT, etc.)
-% *********************************************************************
-
-\def\JustLeft{%
- \omit \let\!ttRightGlue=\hfill}
-\def\JustCenter{%
- \omit \hfill\null \let\!ttRightGlue=\hfill}
-\def\JustRight{%
- \omit \hfill\null}
-
-
-% *********************************************************************
-% Restore meaning of \\, and reset category codes
-% *********************************************************************
-\let\\=\!tacr
-
-% \catcode`\!=12
-% \catcode`\@=12
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/thrd-trg.mkii b/Master/texmf-dist/tex/context/base/mkii/thrd-trg.mkii
deleted file mode 100644
index c0106f5a3f1..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/thrd-trg.mkii
+++ /dev/null
@@ -1,127 +0,0 @@
-%D In order to support rotation over arbitrary angles, we need a sine
-%D and cosine calculator. For this purpose we borrow a few macros by
-%D David Carlisle (his trig package). Because local variables are
-%D used, I patched the macros a bit. Also, I used a few different names
-%D for variabels and macros and use existing auxiliary macros.
-
-\unprotect
-
-% compare: \number 0.5 \number -0.5 \number 1.5 \number -1.5
-%
-% so we need:
-
-\def\realnumber#1{\withoutpt\the\dimexpr#1\points\relax} % brrr
-
-\chardef \@iv = 4
-\chardef \@xc = 90 % was \nin@ty
-\chardef \@clxx = 180
-\chardef \@lxxi = 71
-\mathchardef \@mmmmlxviii = 4068
-\mathchardef \@xvi@k = 16384
-
-\chardef \tr@coeffz = 72
-\chardef \tr@coefb = 42
-\mathchardef \tr@coefc = 840
-\mathchardef \tr@coefd = 5040
-
-\def\tg@series
- {\!!dimena\@lxxi\!!dimena
- \divide\!!dimena\@mmmmlxviii
- \edef\!!stringa{\withoutpt\the\!!dimena}%
- \!!dimena\!!stringa\!!dimena
- \edef\!!stringb{\withoutpt\the\!!dimena}%
- \divide\!!dimena\tr@coeffz
- \advance\!!dimena\minusone\onepoint
- \!!dimena\!!stringb\!!dimena
- \advance\!!dimena \tr@coefb\onepoint
- \!!dimena\!!stringb\!!dimena
- \advance\!!dimena -\tr@coefc\onepoint
- \!!dimena\!!stringb\!!dimena
- \advance\!!dimena \tr@coefd\onepoint
- \!!dimena\!!stringa\!!dimena
- \divide\!!dimena \tr@coefd}
-
-\def\tg@reduce#1#2%
- {\!!dimena#1#2\@xc\onepoint
- \advance\!!dimena#2-\@clxx\onepoint
- \!!dimena-\!!dimena
- \tg@@sin}
-
-\def\tg@@sin
- {\ifdim\tg@reduce>+\else\ifdim\tg@reduce<-\else
- \tg@series
- \fi\fi}
-
-%D Calculating a sine is a two step process: first a value is
-%D calculated, and afterwards it can be used. This saves redundant
-%D calculations.
-
-\def\calculatesin#1%
- {{\expandafter\ifx\csname sin \realnumber{#1}\endcsname\relax
- \!!dimena#1\onepoint
- \tg@@sin
- \expandafter\xdef\csname sin \realnumber{#1}\endcsname{\withoutpt\the\!!dimena}%
- \fi}}
-
-\def\calculatecos#1%
- {{\expandafter\ifx\csname cos \realnumber{#1}\endcsname\relax
- \!!dimena\@xc\onepoint
- \advance\!!dimena-#1\onepoint
- \tg@@sin
- \expandafter\xdef\csname cos \realnumber{#1}\endcsname{\withoutpt\the\!!dimena}%
- \fi}}
-
-\def\calculatetan#1%
- {{\expandafter\ifx\csname tan \realnumber{#1}\endcsname\relax
- \calculatesin{#1}%
- \calculatecos{#1}%
- \!!dimena\calculatedcos{#1}\onepoint
- \divide\!!dimena\@iv
- \!!dimenb\calculatedsin{#1}\onepoint
- \!!dimenb\@xvi@k\!!dimenb
- \divide\!!dimenb\!!dimena
- \expandafter\xdef\csname tan \realnumber{#1}\endcsname{\withoutpt\the\!!dimenb}%
- \fi}}
-
-%D The results are accessed with:
-
-\def\calculatedsin#1{\csname sin \realnumber{#1}\endcsname}
-\def\calculatedcos#1{\csname cos \realnumber{#1}\endcsname}
-\def\calculatedtan#1{\csname tan \realnumber{#1}\endcsname}
-
-%D A more save implementation would be:
-
-\def\calculatedsin#1{\executeifdefined{sin \realnumber{#1}}\!!zerocount}
-\def\calculatedcos#1{\executeifdefined{cos \realnumber{#1}}\!!plusone }
-\def\calculatedtan#1{\executeifdefined{tan \realnumber{#1}}\!!zerocount}
-
-%D The following permits cleaner overloading (\MKIV\ will only have
-%D these):
-
-\def\setcalculatedsin#1#2{\calculatesin{#2}\edef#1{\calculatedsin{#2}}}
-\def\setcalculatedcos#1#2{\calculatecos{#2}\edef#1{\calculatedcos{#2}}}
-\def\setcalculatedtan#1#2{\calculatetan{#2}\edef#1{\calculatedtan{#2}}}
-
-%D A few values are predefined, although, on todays systems there
-%D is no real reason for that. I've added the 270 ones and changed
-%D the -90 tan. Also, I prefer text (\type {\!!..} instead of
-%D counters \type {\..}.
-
-\expandafter\let\csname sin \realnumber{ 0}\endcsname\!!zerocount
-\expandafter\let\csname cos \realnumber{ 0}\endcsname\!!plusone
-\expandafter\let\csname sin \realnumber{ 90}\endcsname\!!plusone
-\expandafter\let\csname cos \realnumber{ 90}\endcsname\!!zerocount
-\expandafter\let\csname sin \realnumber{180}\endcsname\!!zerocount
-\expandafter\let\csname cos \realnumber{180}\endcsname\!!minusone
-\expandafter\let\csname sin \realnumber{270}\endcsname\!!minusone
-\expandafter\let\csname cos \realnumber{270}\endcsname\!!zerocount
-
-\expandafter\let\csname sin \realnumber{-90}\endcsname\!!minusone
-\expandafter\let\csname cos \realnumber{-90}\endcsname\!!zerocount
-
-\expandafter\def\csname tan \realnumber{ 90}\endcsname{\writestatus\m!systems{infinite tan +90}}
-\expandafter\def\csname tan \realnumber{-90}\endcsname{\writestatus\m!systems{infinite tan -90}}
-
-%D Usage: \type {\calculatesin{10}} and \type {\calculatedsin{10}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/trac-vis.mkii b/Master/texmf-dist/tex/context/base/mkii/trac-vis.mkii
deleted file mode 100644
index be7a204ec1d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/trac-vis.mkii
+++ /dev/null
@@ -1,748 +0,0 @@
-%D \module
-%D [ file=trac-vis, % was core-vis,
-%D version=1996.06.01,
-%D title=\CONTEXT\ Tracking Macros,
-%D subtitle=Visualization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module adds some more visualization cues to the ones
-%D supplied in the support module.
-%D
-%D %\everypar dual character, \the\everypar and \everypar=
-%D %\hrule cannot be grabbed in advance, switches mode
-%D %\vrule cannot be grabbed in advance, switches mode
-%D %
-%D %\indent only explicit ones
-%D %\noindent only explicit ones
-%D %\par only explicit ones
-%D
-%D %\leftskip only if explicit one
-%D %\rightskip only if explicit one
-
-\writestatus{loading}{ConTeXt Tracking Macros / Visualization}
-
-\unprotect
-
-%D \macros
-%D {indent, noindent, par}
-%D
-%D \TeX\ acts upon paragraphs. In mosts documents paragraphs
-%D are separated by empty lines, which internally are handled as
-%D \type{\par}. Paragraphs can be indented or not, depending on
-%D the setting of \type{\parindent}, the first token of a
-%D paragraph and/or user suppressed or forced indentation.
-%D
-%D Because the actual typesetting is based on both explicit
-%D user and implicit system actions, visualization is only
-%D possible for the user supplied \type{\indent},
-%D \type{\noindent}, and \type{\par}. Other
-%D 'clever' tricks will quite certainly lead to more failures
-%D than successes, so we only support these three explicit
-%D primitives and one macro:
-
-\def\showparagraphcue#1#2#3#4#5%
- {\bgroup
- \scratchdimen#1\relax
- \dontinterfere
- \dontcomplain
- \boxrulewidth5\testrulewidth
- #3#4\relax
- \setbox\scratchbox\normalhbox to \scratchdimen
- {#2{\ruledhbox to \scratchdimen
- {\vrule #5 20\testrulewidth \!!width \zeropoint
- \normalhss}}}%
- \smashbox\scratchbox
- \normalpenalty\!!tenthousand
- \box\scratchbox
- \egroup}
-
-\def\ruledhanging
- {\ifdim\hangindent>\zeropoint
- \ifnum\hangafter<\zerocount
- \normalhbox
- {\boxrulewidth5\testrulewidth
- \setbox\scratchbox\ruledhbox to \hangindent
- {\scratchdimen\strutht
- \advance\scratchdimen \strutdp
- \vrule
- \!!width \zeropoint
- \!!height \zeropoint
- \!!depth -\hangafter\scratchdimen}%
- \normalhskip-\hangindent
- \smashbox\scratchbox
- \raise\strutht\box\scratchbox}%
- \fi
- \fi}
-
-\def\ruledparagraphcues
- {\bgroup
- \dontcomplain
- \normalhbox to \zeropoint
- {\ifdim\leftskip>\zeropoint\relax
- \showparagraphcue\leftskip\llap\relax\relax\!!depth
- \normalhskip-\leftskip
- \fi
- \ruledhanging
- \normalhskip\hsize
- \ifdim\rightskip>\zeropoint\relax
- \normalhskip-\rightskip
- \showparagraphcue\rightskip\relax\relax\relax\!!depth
- \fi}%
- \egroup}
-
-\def\ruledpar
- {\relax
- \ifhmode
- \showparagraphcue{40\testrulewidth}\relax\rightrulefalse\relax\!!height
- \fi
- \normalpar}
-
-\def\rulednoindent
- {\relax
- \normalnoindent
- \ruledparagraphcues
- \showparagraphcue{40\testrulewidth}\llap\leftrulefalse\relax\!!height}
-
-\def\ruledindent
- {\relax
- \normalnoindent
- \ruledparagraphcues
- \ifdim\parindent>\zeropoint
- \showparagraphcue\parindent\relax\relax\relax\!!height
- \else
- \showparagraphcue{40\testrulewidth}\llap\relax\relax\!!height
- \fi
- \normalhskip\parindent}
-
-\def\dontshowimplicits
- {\let\noindent \normalnoindent
- \let\indent \normalindent
- \let\par \normalpar}
-
-\def\showimplicits
- {\testrulewidth \defaulttestrulewidth
- \let\noindent \rulednoindent
- \let\indent \ruledindent
- \let\par \ruledpar}
-
-%D The next few||line examples show the four cues. Keep in
-%D mind that we only see them when we explicitly open or close
-%D a paragraph.
-%D
-%D \bgroup
-%D \def\voorbeeld#1%
-%D {#1Visualizing some \TeX\ primitives and Plain \TeX\
-%D macros can be very instructive, at least it is to me.
-%D Here we see {\tt\string#1} and {\tt\string\ruledpar} in
-%D action, while {\tt\string\parindent} equals
-%D {\tt\the\parindent}.\ruledpar}
-%D
-%D \showimplicits
-%D
-%D \voorbeeld \indent
-%D \voorbeeld \noindent
-%D
-%D \parindent=60pt
-%D
-%D \voorbeeld \indent
-%D \voorbeeld \noindent
-%D
-%D \startnarrower
-%D \voorbeeld \indent
-%D \voorbeeld \noindent
-%D \stopnarrower
-%D \egroup
-%D
-%D These examples also demonstrate the visualization of
-%D \type {\leftskip} and \type {\rightskip}. The macro
-%D \type {\nofruledbaselines} determines the number of lines
-%D shown.
-
-\newcounter\ruledbaselines
-
-\def\nofruledbaselines{3}
-
-\def\debuggertext#1%
- {\ifx\ttxx\undefined
- $\scriptscriptstyle#1$%
- \else
- {\ttxx#1}%
- \fi}
-
-\def\ruledbaseline
- {\vrule \!!width \zeropoint
- \bgroup
- \dontinterfere
- \doglobal\increment\ruledbaselines
- \scratchdimen\nofruledbaselines\baselineskip
- \setbox\scratchbox\normalvbox to 2\scratchdimen
- {\leaders
- \normalhbox
- {\strut
- \vrule
- \!!height \testrulewidth
- \!!depth \testrulewidth
- \!!width 120\points}
- \normalvfill}%
- \smashbox\scratchbox
- \advance\scratchdimen \strutheightfactor\baselineskip
- \setbox\scratchbox\normalhbox
- {\normalhskip -48\points
- \normalhbox to 24\points
- {\normalhss\debuggertext\ruledbaselines\normalhskip6\points}%
- \raise\scratchdimen\box\scratchbox}%
- \smashbox\scratchbox
- \box\scratchbox
- \egroup}
-
-\def\showbaselines
- {\testrulewidth\defaulttestrulewidth
- \EveryPar{\ruledbaseline}}
-
-%D \macros
-%D {showpagebuilder}
-%D
-%D The next tracing option probaly is only of use to me and a
-%D few \CONTEXT\ hackers.
-
-\def\showpagebuilder
- {\EveryPar{\doshowpagebuilder}}
-
-\def\doshowpagebuilder
- {\strut\llap
- {\startcolor[blue]\vl
- \high{\infofont v:\the\vsize }\vl
- \high{\infofont g:\the\pagegoal }\vl
- \high{\infofont t:\the\pagetotal}\vl
- \stopcolor}}
-
-%D \macros
-%D {makecutbox, cuthbox, cutvbox, cutvtop}
-%D
-%D Although mainly used for marking the page, these macros can
-%D also serve local use.
-%D
-%D \startbuffer
-%D \setbox0=\vbox{a real \crlf vertical box} \makecutbox0
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D This marked \type{\vbox} shows up as:
-%D
-%D \startlinecorrection
-%D \getbuffer
-%D \stoplinecorrection
-%D
-%D The alternative macros are used as:
-%D
-%D \startbuffer
-%D \cuthbox{a made cut box}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D This is typeset as:
-%D
-%D \startlinecorrection
-%D \getbuffer
-%D \stoplinecorrection
-%D
-%D By setting the next macros one can influence the length of
-%D the marks as well as the horizontal and vertical divisions.
-
-\def\cutmarklength {2\bodyfontsize}
-\chardef\horizontalcutmarks = 2
-\chardef\verticalcutmarks = 2
-\chardef\cutmarkoffset = 1
-\let\cutmarksymbol = \relax
-\let\cutmarktoptext = \empty
-\let\cutmarkbottomtext = \empty
-
-\def\horizontalcuts
- {\normalhbox to \ruledwidth
- {\dorecurse\horizontalcutmarks
- {\vrule\!!width\boxrulewidth\!!height\cutmarklength\normalhfill}%
- \unskip}}
-
-\def\verticalcuts
- {\scratchdimen\ruledheight
- \advance\scratchdimen \ruleddepth
- \normalvbox to \scratchdimen
- {\hsize\cutmarklength
- \dorecurse\verticalcutmarks
- {\vrule\!!height\boxrulewidth\!!width\hsize\normalvfill}%
- \unskip}}
-
-\def\baselinecuts
- {\ifdim\ruleddepth>\zeropoint
- \scratchdimen\ruledheight
- \advance\scratchdimen \ruleddepth
- \normalvbox to \scratchdimen
- {\scratchdimen\cutmarklength
- \divide\scratchdimen 2
- \hsize\scratchdimen
- \normalvskip\zeropoint\!!plus\ruledheight
- \vrule\!!height\boxrulewidth\!!width\hsize
- \normalvskip\zeropoint\!!plus\ruleddepth}%
- \fi}
-
-\def\cutmarksymbols#1%
- {\normalhbox to \ruledwidth
- {\setbox\scratchbox\normalhbox to \cutmarklength
- {\normalhss\infofont\cutmarksymbol\normalhss}%
- \normalhss
- \normalvbox to \cutmarklength
- {\scratchdimen\cutmarklength
- \divide\scratchdimen \plustwo
- \normalvss
- \hbox to \ruledwidth
- {\llap{\copy\scratchbox\normalhskip\cutmarkoffset\scratchdimen}%
- \normalhskip\scratchdimen\hss\infofont#1\hss\normalhskip\scratchdimen
- \rlap{\normalhskip\cutmarkoffset\scratchdimen\copy\scratchbox}}%
- \normalvss}%
- \normalhss}}
-
-\def\makecutbox#1% simplier with layers, todo
- {\edef\ruledheight{\the\ht#1}%
- \edef\ruleddepth {\the\dp#1}%
- \edef\ruledwidth {\the\wd#1}%
- \setbox#1\normalhbox
- {\dontcomplain
- \forgetall
- \boxmaxdepth\maxdimen
- \offinterlineskip
- \scratchdimen\cutmarklength
- \divide\scratchdimen \plustwo
- \hsize\ruledwidth
- \setbox\scratchbox\normalvbox
- {\setbox\scratchbox\normalhbox{\horizontalcuts}%
- \normalvskip-\cutmarkoffset\scratchdimen
- \normalvskip-2\scratchdimen
- \copy\scratchbox
- \normalvskip\cutmarkoffset\scratchdimen
- \hbox to \ruledwidth
- {\setbox\scratchbox\normalhbox{\verticalcuts}%
- \llap{\copy\scratchbox\normalhskip\cutmarkoffset\scratchdimen}%
- \bgroup
- \setbox\scratchbox\normalhbox{\baselinecuts}%
- \llap{\copy\scratchbox\normalhskip\cutmarkoffset\scratchdimen}%
- \normalhfill
- \rlap{\normalhskip\cutmarkoffset\scratchdimen\copy\scratchbox}%
- \egroup
- \rlap{\normalhskip\cutmarkoffset\scratchdimen\copy\scratchbox}}%
- \normalvskip\cutmarkoffset\scratchdimen
- \copy\scratchbox}%
- \ht\scratchbox\ruledheight
- \dp\scratchbox\ruleddepth
- \wd\scratchbox\zeropoint
- \resetcolorseparation
- \localstartcolor[\defaulttextcolor]%
- \box\scratchbox
- \ifx\cutmarksymbol\relax \else
- \setbox\scratchbox\normalvbox
- {\vskip-\cutmarkoffset\scratchdimen
- \vskip-\cutmarklength
- \normalhbox{\cutmarksymbols\cutmarktoptext}%
- \vskip\cutmarkoffset\scratchdimen
- \vskip\ruledheight
- \vskip\ruleddepth
- \vskip\cutmarkoffset\scratchdimen
- \normalhbox{\cutmarksymbols\cutmarkbottomtext}}%
- \ht\scratchbox\ruledheight
- \dp\scratchbox\ruleddepth
- \wd\scratchbox\zeropoint
- \box\scratchbox
- \fi
- \localstopcolor
- \box#1}%
- \wd#1=\ruledwidth
- \ht#1=\ruledheight
- \dp#1=\ruleddepth}
-
-\def\cuthbox
- {\normalhbox\bgroup
- \dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\normalhbox}
-
-\def\cutvbox
- {\normalvbox\bgroup
- \dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\normalvbox}
-
-\def\cutvtop
- {\normalvtop\bgroup
- \dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\normalvtop}
-
-%D \macros
-%D {colormarkbox,rastermarkbox}
-%D
-%D This macro is used in the pagebody routine. No other use
-%D is advocated here.
-%D
-%D \starttyping
-%D \colormarkbox0
-%D \stoptyping
-
-\def\colormarkoffset{\cutmarkoffset}
-\def\colormarklength{\cutmarklength}
-
-\def\colorrangeA#1#2#3#4%
- {\vbox
- {\scratchdimen-\colormarklength
- \multiply\scratchdimen 4
- \advance\scratchdimen \ruledheight
- \advance\scratchdimen \ruleddepth
- \divide\scratchdimen 21
- \def\docommand##1%
- {\vbox
- {\hsize3em % \scratchdimen
- \definecolor
- [\s!dummy]
- [\c!c=#2##1\else0\fi,
- \c!m=#3##1\else0\fi,
- \c!y=#4##1\else0\fi,
- \c!k=0]%
- \localstartcolor[\s!dummy]%
- \hrule
- \!!width 3em
- \!!height \scratchdimen
- \!!depth \zeropoint
- \localstopcolor
- \ifdim\scratchdimen>1ex
- \vskip-\scratchdimen
- \vbox to \scratchdimen
- {\vss
- \hbox to 3em
- {\hss
- \localstartcolor[\s!white]%
- \ifdim##1\points=\zeropoint#1\else##1\fi
- \localstopcolor
- \hss}%
- \vss}%
- \fi}}%
- \offinterlineskip
- \processcommalist[1.00,0.95,0.75,0.50,0.25,0.05,0.00]\docommand}}
-
-\def\colorrangeB
- {\hbox
- {\scratchdimen-\colormarklength
- \multiply\scratchdimen \plustwo
- \advance\scratchdimen \ruledwidth
- \divide\scratchdimen 11
- \def\docommand ##1 ##2 ##3##4##5##6%
- {\definecolor
- [\s!dummy]
- [\c!c=##3##2\else0\fi,
- \c!m=##4##2\else0\fi,
- \c!y=##5##2\else0\fi,
- \c!k=##6##2\else0\fi]%
- \localstartcolor[\s!dummy]%
- \vrule
- \!!width \scratchdimen
- \!!height \colormarklength
- \!!depth \zeropoint
- \localstopcolor
- \ifdim\scratchdimen>2em
- \hskip-\scratchdimen
- \vbox to \colormarklength
- {\vss
- \hbox to \scratchdimen
- {\hss
- \localstartcolor[\s!white]%
- \ifdim##2\points=.5\points##2~\fi##1%
- \localstopcolor
- \hss}
- \vss}%
- \fi}%
- \docommand C .5 \iftrue \iffalse\iffalse\iffalse
- \docommand M .5 \iffalse\iftrue \iffalse\iffalse
- \docommand Y .5 \iffalse\iffalse\iftrue \iffalse
- \docommand K .5 \iffalse\iffalse\iffalse\iftrue
- \docommand C 1 \iftrue \iffalse\iffalse\iffalse
- \docommand G 1 \iftrue \iffalse\iftrue \iffalse
- \docommand Y 1 \iffalse\iffalse\iftrue \iffalse
- \docommand R 1 \iffalse\iftrue \iftrue \iffalse
- \docommand M 1 \iffalse\iftrue \iffalse\iffalse
- \docommand B 1 \iftrue \iftrue \iffalse\iffalse
- \docommand K 1 \iffalse\iffalse\iffalse\iftrue}}
-
-\def\colorrangeC
- {\hbox
- {\resetcolorseparation
- \scratchdimen-\colormarklength
- \multiply\scratchdimen 2
- \advance\scratchdimen \ruledwidth
- \divide\scratchdimen 14
- \def\docommand##1%
- {\definecolor[\s!dummy][\c!s=##1]%
- \localstartcolor[\s!dummy]%
- \vrule
- \!!width \scratchdimen
- \!!height \colormarklength
- \!!depth \zeropoint
- \localstopcolor
- \ifdim\scratchdimen>2em
- \hskip-\scratchdimen
- \vbox to \colormarklength
- {\vss
- \localstartcolor[\s!white]%
- \hbox to \scratchdimen{\hss##1\hss}
- \localstopcolor
- \vss}%
- \fi}%
- \processcommalist[1,.95,.9,.85,.8,.75,.7,.6,.5,.4,.3,.2,.1,0]\docommand}}
-
-\def\docolormarkbox#1#2%
- {\edef\ruledheight{\the\ht#2}%
- \edef\ruleddepth {\the\dp#2}%
- \edef\ruledwidth {\the\wd#2}%
- \setbox#2\hbox
- {\scratchdimen\colormarklength
- \divide\scratchdimen \plustwo
- \forgetall
- \ssxx
- \setbox\scratchbox\vbox
- {\offinterlineskip
- \vskip-\colormarkoffset\scratchdimen
- \vskip-2\scratchdimen\relax % relax needed
- % beware: no \ifcase, due to nested \iftrue/\iffalse
- % and lacking \fi's
- \doifelse{#1}{0}%
- {\vskip\colormarklength
- \vskip\colormarkoffset\scratchdimen
- \vskip\ruledheight}
- {\hbox to \ruledwidth{\hss\hbox{\colorrangeB}\hss}%
- \vskip\colormarkoffset\scratchdimen
- \vbox to \ruledheight
- {\vss
- \hbox to \ruledwidth
- {\llap{\colorrangeA C\iftrue\iffalse\iffalse\hskip\colormarkoffset\scratchdimen}%
- \hfill
- \rlap{\hskip\colormarkoffset\scratchdimen\colorrangeA R\iffalse\iftrue\iftrue}}%
- \vss
- \hbox to \ruledwidth
- {\llap{\colorrangeA M\iffalse\iftrue\iffalse\hskip\colormarkoffset\scratchdimen}%
- \hfill
- \rlap{\hskip\colormarkoffset\scratchdimen\colorrangeA G\iftrue\iffalse\iftrue}}%
- \vss
- \hbox to \ruledwidth
- {\llap{\colorrangeA Y\iffalse\iffalse\iftrue\hskip\colormarkoffset\scratchdimen}%
- \hfill
- \rlap{\hskip\colormarkoffset\scratchdimen\colorrangeA B\iftrue\iftrue\iffalse}}%
- \vss}}%
- \vskip\colormarkoffset\scratchdimen
- \hbox to \ruledwidth
- {\hss\lower\ruleddepth\hbox{\colorrangeC}\hss}}%
- \ht\scratchbox\ruledheight
- \dp\scratchbox\ruleddepth
- \wd\scratchbox\zeropoint
- \box\scratchbox
- \box#2}%
- \wd#2=\ruledwidth
- \ht#2=\ruledheight
- \dp#2=\ruleddepth}
-
-\def\colormarkbox % #1
- {\ifincolor\@EA\docolormarkbox\else\@EA\gobbletwoarguments\fi1}
-
-\def\rastermarkbox % #1
- {\ifincolor\@EA\docolormarkbox\else\@EA\gobbletwoarguments\fi0}
-
-%D \macros
-%D {showwhatsits, dontshowwhatsits}
-%D
-%D \TEX\ has three so called whatsits: \type {\mark}, \type
-%D {\write} and \type {\special}. The first one keeps track of
-%D the current state at page boundaries, the last two are used
-%D to communicate to the outside world. Due to fact that
-%D especially \type {\write} is often used in conjunction with
-%D \type {\edef}, we can only savely support that one in \ETEX.
-%D
-%D \bgroup \showwhatsits \setupcolors[state=start]
-%D
-%D Whatsits show up \color[blue]{in color} and are
-%D characterized bij their first character.\footnote [some note]
-%D {So we may encounter \type {w}, \type {m} and \type{s}.}
-%D They are \writestatus{dummy}{demo}\color[yellow]{stacked}.
-%D
-%D \egroup
-
-\newif\ifimmediatewrite
-
-\ifx\eTeXversion\undefined
-
- \let\showwhatsits \relax
- \let\dontshowwhatsits\relax
-
-\else
-
- \let\supernormalmark \normalmark % mark may already been superseded
- \let\supernormalmarks \normalmarks % mark may already been superseded
-
- \def\showwhatsits
- {\protected\def\normalmark {\visualwhatsit100+m\supernormalmark }%
- \protected\def\normalmarks{\visualwhatsit100+m\supernormalmarks}%
- \protected\def\special {\visualwhatsit0100s\normalspecial }%
- \protected\def\write {\visualwhatsit001-w\normalwrite }%
- \let\immediate\immediatewhatsit
- \appendtoks\dontshowwhatsits\to\everystoptext}
-
- \def\immediatewhatsit
- {\bgroup\futurelet\next\doimmediatewhatsit}
-
- \def\doimmediatewhatsit
- {\ifx\next\write
- \egroup\immediatewritetrue
- \else
- \egroup\expandafter\normalimmediate
- \fi}
-
- \def\dontshowwhatsits
- {\let\immediate \normalimmediate
- \let\normalmark\supernormalmark
- \let\special \normalspecial
- \let\write \normalwrite}
-
- \def\visualwhatsit#1#2#3#4#5%
- {\bgroup
- \pushwhatsit
- \dontinterfere
- \dontcomplain
- \dontshowcomposition
- \dontshowwhatsits
- \ttx
- \ifvmode\donetrue\else\donefalse\fi
- \setbox\scratchbox\hbox
- {\ifdone\dostartgraycolormode0\else\dostartrgbcolormode#1#2#3\fi
- #5\dostopcolormode}%
- \setbox\scratchbox\hbox
- {\ifdone\dostartrgbcolormode#1#2#3\else\dostartgraycolormode0\fi
- \vrule\!!width\wd\scratchbox\dostopcolormode
- \hskip-\wd\scratchbox\box\scratchbox}%
- \scratchdimen1ex
- \setbox\scratchbox\hbox
- {\ifdone\hskip\else\raise#4\fi\scratchdimen\box\scratchbox}%
- \smashbox\scratchbox
- \ifdone\nointerlineskip\fi
- \box\scratchbox
- \ifvmode\nointerlineskip\fi
- \popwhatsit
- \egroup
- \ifimmediatewrite
- \immediatewritefalse
- \expandafter\normalimmediate
- \fi}
-
- \def\pushwhatsit
- {\ifzeropt\lastskip
- \ifcase\lastpenalty
- \ifzeropt\lastkern
- \ifhmode
- \let\popwhatsit\relax
- \else
- \edef\popwhatsit{\prevdepth\the\prevdepth}%
- \fi
- \else
- \ifhmode
- \edef\popwhatsit{\kern\the\lastkern}\unkern
- \else
- \edef\popwhatsit{\kern\the\lastkern\prevdepth\the\prevdepth}%
- \kern-\lastkern
- \fi
- \fi
- \else
- \ifhmode
- \edef\popwhatsit{\the\lastpenalty}%
- \unpenalty
- \else
- \edef\popwhatsit{\penalty\the\lastpenalty\prevdepth\the\prevdepth}%
- %\nobreak
- \fi
- \fi
- \else
- \ifhmode
- \edef\popwhatsit{\hskip\the\lastskip}\unskip
- \else
- \edef\popwhatsit{\vskip\the\lastskip\prevdepth\the\prevdepth}%
- \vskip-\lastskip
- \fi
- \fi}
-
-\fi
-
-%D The next macro can be used to keep track of classes of
-%D boxes (handy for development cq.\ tracing).
-
-\def\dodotagbox#1#2#3% can be reimplemented
- {\def\next##1##2##3##4%
- {\vbox to \ht#2{##3\hbox to \wd#2{##1#3##2}##4}}%
- \processaction
- [#1]
- [ l=>\next\relax\hfill\vfill\vfill,
- r=>\next\hfill\relax\vfill\vfill,
- t=>\next\hfill\hfill\relax\vfill,
- b=>\next\hfill\hfill\vfill\relax,
- lt=>\next\relax\hfill\relax\vfill,
- lb=>\next\relax\hfill\vfill\relax,
- rt=>\next\hfill\relax\relax\vfill,
- rb=>\next\hfill\relax\vfill\relax,
- tl=>\next\relax\hfill\relax\vfill,
- bl=>\next\relax\hfill\vfill\relax,
- tr=>\next\hfill\relax\relax\vfill,
- br=>\next\hfill\relax\vfill\relax,
- \s!default=>\next\hfill\hfill\vfill\vfill,
- \s!unknown=>\next\hfill\hfill\vfill\vfill]}
-
-\def\dotagbox[#1]#2%
- {\bgroup
- \dowithnextbox
- {\setbox\scratchbox\flushnextbox
- \setbox\nextbox\ifhbox\nextbox\hbox\else\vbox\fi
- \bgroup
- \startoverlay
- {\copy\scratchbox}
- {\dodotagbox{#1}\scratchbox{\framed
- [\c!background=\v!screen,\c!backgroundscreen=1]{#2}}}
- \stopoverlay
- \egroup
- \nextboxwd\the\wd\scratchbox
- \nextboxht\the\ht\scratchbox
- \nextboxdp\the\dp\scratchbox
- \flushnextbox
- \egroup}}
-
-\def\tagbox
- {\dosingleempty\dotagbox}
-
-%D \macros
-%D {coloredhbox,coloredvbox,coloredvtop,
-%D coloredstrut}
-%D
-%D The following visualizations are used in some of the manuals:
-
-\definecolor[boxcolor:ht][r=.5,g=.75,b=.5]
-\definecolor[boxcolor:dp][r=.5,g=.5,b=.75]
-\definecolor[boxcolor:wd][r=.75,g=.5,b=.5]
-\definecolor[strutcolor] [r=.5,g=.25,b=.25]
-
-\def\coloredbox#1%
- {\dowithnextbox{#1{\hbox
- {\blackrule[\c!width=\nextboxwd,\c!height=\nextboxht,\c!depth=\zeropoint,\c!color=boxcolor:ht]%
- \hskip-\nextboxwd
- \blackrule[\c!width=\nextboxwd,\c!height=\zeropoint,\c!depth=\nextboxdp,\c!color=boxcolor:dp]%
- \hskip-\nextboxwd
- \box\nextbox}}}#1}
-
-\def\coloredhbox{\coloredbox\hbox}
-\def\coloredvbox{\coloredbox\vbox}
-\def\coloredvtop{\coloredbox\vtop}
-
-\def\coloredstrut
- {\color[strutcolor]{\def\strutwidth{2\points}\setstrut\strut}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/type-def.mkii b/Master/texmf-dist/tex/context/base/mkii/type-def.mkii
deleted file mode 100644
index 0ff1e0b7d8f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/type-def.mkii
+++ /dev/null
@@ -1,86 +0,0 @@
-%D \module
-%D [ file=type-def,
-%D version=2005.02.04,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Default Definitions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\starttypescriptcollection[simplification]
-
-\starttypescript [serif] [simple] [name]
- \definefontsynonym [Serif] [Simple]
- \definefontsynonym [SerifBold] [Serif]
- \definefontsynonym [SerifItalic] [Serif]
- \definefontsynonym [SerifSlanted] [Serif]
- \definefontsynonym [SerifBoldItalic] [Serif]
- \definefontsynonym [SerifBoldSlanted] [Serif]
- \definefontsynonym [SerifCaps] [Serif]
-\stoptypescript
-
-\starttypescript [sans] [simple] [name]
- \definefontsynonym [Sans] [Simple]
- \definefontsynonym [SansBold] [Sans]
- \definefontsynonym [SansItalic] [Sans]
- \definefontsynonym [SansSlanted] [Sans]
- \definefontsynonym [SansBoldItalic] [Sans]
- \definefontsynonym [SansBoldSlanted] [Sans]
- \definefontsynonym [SansCaps] [Sans]
-\stoptypescript
-
-\starttypescript [mono] [simple] [name]
- \definefontsynonym [Mono] [Simple]
- \definefontsynonym [MonoBold] [Mono]
- \definefontsynonym [MonoItalic] [Mono]
- \definefontsynonym [MonoSlanted] [Mono]
- \definefontsynonym [MonoBoldItalic] [Mono]
- \definefontsynonym [MonoBoldSlanted] [Mono]
- \definefontsynonym [MonoCaps] [Mono]
-\stoptypescript
-
-\stoptypescriptcollection
-
-% handy
-
-% \starttypescript [serif] [simple] [name]
-% \definefontsynonym [Simple] [cmvtt10]
-% \setupfontsynonym [Simple] [handling=pure]
-% \stoptypescript
-
-\starttypescriptcollection[handling-and-hz]
-
-\starttypescript [serif,sans,mono] [handling,hanging] [pure,normal]
- \setupfontsynonym [\typescriptprefix\typescriptone ] [handling=\typescriptthree]
- \setupfontsynonym [\typescriptprefix\typescriptone Bold] [handling=\typescriptthree bold]
- \setupfontsynonym [\typescriptprefix\typescriptone Slanted] [handling=\typescriptthree slanted]
- \setupfontsynonym [\typescriptprefix\typescriptone Italic] [handling=\typescriptthree italic]
- \setupfontsynonym [\typescriptprefix\typescriptone BoldSlanted] [handling=\typescriptthree boldslanted]
- \setupfontsynonym [\typescriptprefix\typescriptone BoldItalic] [handling=\typescriptthree bolditalic]
-\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
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/type-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/type-ini.mkii
deleted file mode 100644
index c6b0a8931d9..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/type-ini.mkii
+++ /dev/null
@@ -1,726 +0,0 @@
-%D \module
-%D [ file=type-ini,
-%D version=2001.03.05,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Typescript Macros / Initialization}
-
-%D The default fontclass is empty. We could demand always using fontclasses,
-%D and then make the calling macros simplier (always assume fontclass) but
-%D apart from downward compatibility issues, it would make global, class
-%D spanning definitions a pain. Some day we will introduce a default class.
-
-% torture test : proper typefaces (and namespace)
-%
-% \starttext
-% \usetypescript[modern][default] default: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave
-% \usetypescript[modern][texnansi] texnansi: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave
-% \usetypescript[modern][ec] ec: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave
-% \usetypescript[modern][qx] qx: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave
-% \usetypescript[modern][t5] t5: \setupbodyfont[modern] \eacute \eogonek \zcaron \acircumflexgrave
-% \stoptext
-%
-% torture test : no typeface, just definitions
-%
-% \starttext
-% {\setupbodyfont[reset] \setupbodyfont[cmr] cmr: \eacute \eogonek \zcaron \acircumflexgrave \endgraf}
-% {\setupbodyfont[reset] \setupbodyfont[plr] plr: \eacute \eogonek \zcaron \acircumflexgrave \endgraf}
-% {\setupbodyfont[reset] \setupbodyfont[csr] csr: \eacute \eogonek \zcaron \acircumflexgrave \endgraf}
-% {\setupbodyfont[reset] \setupbodyfont[vnr] vnr: \eacute \eogonek \zcaron \acircumflexgrave \endgraf}
-% {\setupbodyfont[reset] \setupbodyfont[aer] aer: \eacute \eogonek \zcaron \acircumflexgrave \endgraf}
-% \stoptext
-
-% \usetypescript [modern] [texnansi]
-%
-% normal : 1450 ms
-% exa quit : 1300 ms (150 ms)
-% preload : 825 ms (635 ms) (40-50%)
-%
-% \usetypescript [modern] [texnansi]
-% \usetypescript [palatino][texnansi]
-% \usetypescript [times] [texnansi]
-%
-% normal : 3200 ms
-% exa quit : 2700 ms ( 500 ms)
-% preload : 1300 ms (1900 ms) (60-70%)
-
-% \usetypescript [modern][\defaultencoding]
-% \usetypescript [map] [latin-modern-os] [\defaultencoding]
-% \setupbodyfont[modern]
-% test 1234 test
-
-\unprotect
-
-\def\starttypescriptcollection
- {\dosingleempty\dostarttypescriptcollection}
-
-\def\dostarttypescriptcollection[#1]%
- {}
-
-\def\stoptypescriptcollection
- {}
-
-\let\typescriptfiles\empty
-
-\unexpanded\def\usetypescriptfile[#1]%
- {\doifelse{#1}\v!reset
- {\let\typescriptfiles\empty}
- {\splitfiletype{#1}%
- \addtocommalist\splitoffname\typescriptfiles}}
-
-% SO FAR
-
-\let\currenttypescripts\empty
-
-\newif\iftypescriptfound
-
-\let\@@typescriptone \empty \let\typescriptone \empty
-\let\@@typescripttwo \empty \let\typescripttwo \empty
-\let\@@typescriptthree\empty \let\typescriptthree\empty
-
-% method 2 is for Hans van der Meer
-
-\newtoks\documenttypescripts
-
-\chardef\typescriptmethod\plusone % 1: empty==all==true 2: empty==false
-\chardef\typescriptstate \plustwo % 1: process 2: store
-
-\unexpanded\def\usetypescript {\chardef\typescriptmethod\plusone\dotripleempty\dousetypescript}
-\unexpanded\def\usetypescriptexact{\chardef\typescriptmethod\plustwo\dotripleempty\dousetypescript}
-
-\def\dousetypescript[#1][#2][#3]%
- {\expanded{\dodousetypescript[#1][#2][#3]}}
-
-\def\dodousetypescript[#1][#2][#3]% also loads type-loc, a user file
- {\pushmacro\@@typescriptone \edef\@@typescriptone {\truetypescript{#1}}%
- \pushmacro\@@typescripttwo \edef\@@typescripttwo {\truetypescript{#2}}%
- \pushmacro\@@typescriptthree\edef\@@typescriptthree{\truetypescript{#3}}%
- \pushmacro\typescriptone
- \pushmacro\typescripttwo
- \pushmacro\typescriptthree
- \pushmacro\typescriptmethod
- \pushmacro\typescriptstate \chardef\typescriptstate\plusone % process
- \pushmacro\stoptypescript
- \typescriptfoundfalse
- \iftracetypescripts\writestatus\m!fonts{request: [\@@typescriptone] [\@@typescripttwo] [\@@typescriptthree]}\fi
- \processcommacommand[\typescriptfiles]\dododousetypescript
- \the\documenttypescripts
- \firsttypescriptpassfalse % testen
- \popmacro\stoptypescript
- \popmacro\typescriptstate
- \popmacro\typescriptmethod
- \popmacro\typescriptthree
- \popmacro\typescripttwo
- \popmacro\typescriptone
- \popmacro\@@typescriptthree
- \popmacro\@@typescripttwo
- \popmacro\@@typescriptone}
-
-% simple version:
-%
-% \def\dododousetypescript#1%
-% {\startreadingfile
-% \pushmacro\currenttypefile
-% \def\currenttypefile{#1}%
-% \def\currenttypefile{#1}%
-% \readfile\currenttypefile\donothing\donothing
-% \popmacro\currenttypefile
-% \stopreadingfile}
-%
-% tricky version:
-
-\newconditional\preloadingtypescripts
-
-\def\preloadtypescripts{\ifproductionrun\settrue\preloadingtypescripts\fi}
-
-\def\dododousetypescript#1%
- {\setfalse\quittingtypescript
- \pushmacro\currenttypefile
- \def\currenttypefile{#1}%
- \ifconditional\preloadingtypescripts
- % load files once, and use saved data
- \def\loadedtypescripts{\csname\??ts:\c!file:#1\endcsname}%
- \@EAEAEA\ifx\loadedtypescripts\relax
- \@EAEAEA\newtoks\loadedtypescripts
- \bgroup
- \long\def\starttypescript##1\stoptypescript
- {\global\loadedtypescripts\@EA{\the\loadedtypescripts\starttypescript##1\stoptypescript}}%
- \long\def\starttypescriptcollection##1\stoptypescriptcollection
- {\global\loadedtypescripts\@EA{\the\loadedtypescripts\starttypescriptcollection##1\stoptypescriptcollection}}%
- \startreadingfile
- \pushendofline
- \unprotect
- \readfile{\currenttypefile.\mksuffix}\donothing{\readfile\currenttypefile\donothing\donothing}%
- \protect
- \popendofline
- \stopreadingfile
- \egroup
- \fi
- %\message{[\space\currenttypefile}%
- \the\loadedtypescripts
- %\message{\ifconditional\quittingtypescript quit\space\fi]}%
- \else
- % process files each time
- \startreadingfile
- \pushendofline
- \unprotect
- \readfile{\currenttypefile.\mksuffix}\donothing{\readfile\currenttypefile\donothing\donothing}%
- \protect
- \popendofline
- \stopreadingfile
- \fi
- \popmacro\currenttypefile
- \ifconditional\quittingtypescript
- \quitcommalist
- \setfalse\quittingtypescript
- \fi}
-
-% % not faster, unless maybe toks
-%
-% \newcount\nofloadedtypescripts
-%
-% \def\startloadedtypescript
-% {\dotripleempty\dostartloadedtypescript}
-%
-% \let\stoploadedtypescript\relax
-%
-% \long\def\dostartloadedtypescript[#1][#2][#3]#4\stoptypescript
-% {\global\advance\nofloadedtypescripts\plusone
-% \long\setgvalue{\??ts=>\the\nofloadedtypescripts}{#4}%
-% \edef\temp%
-% {\iffirstargument [#1]\fi
-% \ifsecondargument[#2]\fi
-% \ifthirdargument [#3]\fi
-% \noexpand\csname\??ts=>\the\nofloadedtypescripts\noexpand\endcsname}%
-% \global\loadedtypescripts\@EA\@EA\@EA{\@EA\the\@EA\loadedtypescripts\@EA\starttypescript\temp\stoptypescript}}
-%
-% \def\startloadedtypescriptcollection
-% {\dosingleempty\dostartloadedtypescriptcollection}
-%
-% \def\dostartloadedtypescriptcollection[#1]{}
-% \def\stoploadedtypescriptcollection {}
-%
-% \def\dododousetypescript#1%
-% {\setfalse\quittingtypescript
-% \pushmacro\currenttypefile
-% \def\currenttypefile{#1}%
-% \ifconditional\preloadingtypescripts
-% % load files once, and use saved data
-% \def\loadedtypescripts{\csname\??ts:\c!file:#1\endcsname}%
-% \@EAEAEA\ifx\loadedtypescripts\relax
-% \@EAEAEA\newtoks\loadedtypescripts
-% \bgroup
-% %
-% \let\starttypescript \startloadedtypescript
-% \let\stoptypescript \stoploadedtypescript
-% \let\starttypescriptcollection\startloadedtypescriptcollection
-% \let\stoptypescriptcollection \stoploadedtypescriptcollection
-% %
-% \startreadingfile
-% \pushendofline
-% \unprotect
-% \readfile\currenttypefile\donothing\donothing
-% \protect
-% \popendofline
-% \stopreadingfile
-% \egroup
-% \fi
-% %\message{[\space\currenttypefile}%
-% \the\loadedtypescripts
-% %\message{\ifconditional\quittingtypescript quit\space\fi]}%
-% \else
-% % process files each time
-% \startreadingfile
-% \pushendofline
-% \unprotect
-% \readfile\currenttypefile\donothing\donothing
-% \protect
-% \popendofline
-% \stopreadingfile
-% \fi
-% \popmacro\currenttypefile
-% \ifconditional\quittingtypescript
-% \quitcommalist
-% \setfalse\quittingtypescript
-% \fi}
-
-\def\usetypescriptonce
- {\dotripleempty\dousetypescriptonce}
-
-\def\dousetypescriptonce[#1][#2][#3]%
- {\doifelseflagged{ts:#1:#2:#3}%
- {\writestatus\m!fonts{once (#1) (#2) (#3)}}
- {\setflag{ts:#1:#2:#3}%
- \expanded{\dodousetypescript[#1][#2][#3]}}}
-
-% \definetypescriptsynonym[lbr][cmr]
-
-\def\definetypescriptsynonym
- {\dodoubleempty\dodefinetypescriptsynonym}
-
-\def\dodefinetypescriptsynonym[#1][#2]%
- {\ifsecondargument\setevalue{\??tm#1}{#2}\fi}
-
-\def\truetypescript#1%
- {\ifcsname\??tm#1\endcsname
- \@EA\truetypescript\csname\??tm#1\endcsname\else#1%
- \fi}
-
-% script [serif] [default] [size]
-% script [serif] [computer-modern] [size]
-% script [serif] [computer-modern] [ec]
-% script [serif] [computer-modern] [name]
-% script [serif] [computer-modern] [special]
-
-% todo, make firsttypescriptpass conditional
-
-\newif\iffirsttypescriptpass \firsttypescriptpasstrue
-
-\prependtoks\firsttypescriptpasstrue\to\everyjob
-
-\def\typescript@@all{all}
-
-\newif\iftracetypescripts
-
-\def\starttypescript
- {\ifcase\typescriptstate
- % 0 = skip
- \@EA\gobbleuntil\@EA\stoptypescript
- \or
- % 1 = process
- \expandafter\dostarttypescript
- \or
- % 2 = store
- \expandafter\nostarttypescript
- \else
- % ? = skip
- \@EA\gobbleuntil\@EA\stoptypescript
- \fi}
-
-\long\def\nostarttypescript#1\stoptypescript
- {\appendtoks\starttypescript#1\stoptypescript\to\documenttypescripts}
-
-\def\dostarttypescript
- {\let\typescriptone \@@typescriptone
- \let\typescripttwo \@@typescripttwo
- \let\typescriptthree\@@typescriptthree
- \let\typescriptmatch\empty
- \doifnextoptionalelse\dostarttypescriptone\dostarttypescriptall}
-
-\long\def\dostarttypescriptall
- {\iffirsttypescriptpass
- \expandafter\doprocesstypescript
- \else
- % skip this since it may do unwanted resets, like
- % setting symbolic font names to unknown, especially
- % in run time user type scripts
- \expandafter\noprocesstypescript
- \fi}
-
-\long\def\dostarttypescriptyes
- {\ifdone
- \typescriptfoundtrue
- \iftracetypescripts\writestatus\m!fonts{match:\ifx\currenttypefile\relax\space *\fi \typescriptmatch}\fi
- \expandafter\doprocesstypescript
- \else
- \expandafter\noprocesstypescript
- \fi}
-
-\long\def\dostarttypescriptone
- {\dochecktypescript\@@typescriptone\typescriptone\redostarttypescriptone}
-
-\long\def\dostarttypescripttwo
- {\dochecktypescript\@@typescripttwo\typescripttwo\redostarttypescripttwo}
-
-\long\def\dostarttypescriptthree
- {\dochecktypescript\@@typescriptthree\typescriptthree\redostarttypescriptthree}
-
-\long\def\redostarttypescriptone
- {\doifnextoptionalelse\dostarttypescripttwo\dostarttypescriptyes}
-
-\long\def\redostarttypescripttwo
- {\doifnextoptionalelse\dostarttypescriptthree\dostarttypescriptyes}
-
-\long\def\redostarttypescriptthree
- {\dostarttypescriptyes}
-
-\def\doprocesstypescript
- {\pushmacro\fontclass}
-
-\def\stoptypescript
- {\popmacro\fontclass}
-
-\long\def\noprocesstypescript#1\stoptypescript
- {}
-
-\let\typescriptmatch\empty
-
-\def\dochecktypescript#1#2#3[#4]% script use value next
- {\donefalse
- \def\@@typescriptcheck{#4}%
- \ifx\@@typescriptcheck\empty % no longer needed / met
- \ifcase\typescriptmethod\or\donetrue\else\donefalse\fi
- \else\ifx#1\typescript@@all
- \donetrue
- \else\ifx\@@typescriptcheck\typescript@@all
- \donetrue
- \else\expanded{\doifcommonelse{\@@typescriptcheck}{#1}}\donetrue\donefalse\ifdone
- \let#2\commalistelement
- \fi\fi\fi\fi
- \ifdone
- \edef\typescriptmatch{\typescriptmatch\space[#4]}%
- \expandafter#3%
- \else
- \expandafter\noprocesstypescript
- \fi}
-
-%D Yet another speed up: when issued inside typescript, the call
-%D
-%D \starttyping
-%D \quittypescriptscanning
-%D \stoptyping
-%D
-%D quits further loading. For an example, see type-exa:
-
-\newconditional\quittingtypescript \setfalse\quittingtypescript
-
-\def\quittypescriptscanning{\settrue\quittingtypescript}
-
-% status
-%
-% 1 loaded
-% 2 reported
-% 3 preloaded
-
-% flags ipv \c!state, more flag values
-
-\def\dopreloadmapfile#1%
- {\splitfiletype{#1}%
- \writestatus\m!fonts{assuming map file: \splitoffname}%
- \setxvalue{\splitoffname \c!state}{3}%
- \doglobal\removefromcommalist\splitoffname\allfontmapsfiles}
-
-\def\preloadmapfile[#1]{\expanded{\processcommalist[#1]}\dopreloadmapfile}
-\def\loadmapfile [#1]{\expanded{\processcommalist[#1]}\loadthemapfile}
-\def\unloadmapfile [#1]{\expanded{\processcommalist[#1]}\unloadthemapfile}
-
-% too soon, no driver known, \ifproductionrun \loadallfontmapfiles \fi
-
-% temp hack, will become just \addto
-
-\ifx\pdftexversion\undefined
-
- \def\loadthemapfile#1%
- {\splitfiletype{#1}%
- \doglobal\addtocommalist\splitoffname\allfontmapsfiles}
-
-\else\ifnum\pdftexversion<120 % no overloading
-
- \def\loadthemapfile#1%
- {\splitfiletype{#1}%
- \doglobal\pretocommalist\splitoffname\allfontmapsfiles}
-
-\else
-
- \def\loadthemapfile#1%
- {\splitfiletype{#1}%
- \doglobal\addtocommalist\splitoffname\allfontmapsfiles}
-
-\fi \fi
-
-\def\unloadthemapfile#1%
- {\splitfiletype{#1}%
- \doglobal\removefromcommalist\splitoffname\allfontmapsfiles}
-
-\let\usedmapfile\gobbletwoarguments
-\let\usedmapline\gobbletwoarguments
-
-\def\doregisterloadedmapfile#1%
- {\immediatewriteutilitycommand{\usedmapfile{=}{#1}}}
-
-\def\doloadfontmapfile#1%
- {\ifundefined{#1\c!state}%
- \writestatus\m!fonts{using map file: #1}%
- \doregisterloadedmapfile{#1}%
- \doloadmapfile{=}{#1.\f!fontmapextension}% +/add =/replace -/remove
- \setxvalue{#1\c!state}{1}%
- \fi}
-
-\def\doreportfontmapfile#1%
- {\ifundefined{#1\c!state}%
- \writestatus\m!fonts{needs map file: #1}%
- \setxvalue{#1\c!state}{2}%
- \fi}
-
-\def\loadallfontmapfiles
- {%\message{[\allfontmapsfiles]}%
- \ifconditional\resettingmapfile
- \writestatus\m!fonts{resetting map file list}%
- \doresetmapfilelist
- \global\setfalse\resettingmapfile
- \fi
- \ifx\allfontmapsfiles\empty \else
- \ifautoloadmapfiles
- \processcommacommand[\allfontmapsfiles]\doloadfontmapfile
- \else
- \processcommacommand[\allfontmapsfiles]\doreportfontmapfile
- \fi
- \forgetmapfiles
- \fi}
-
-\def\loadmapline
- {\dodoubleempty\dodoloadmapline}
-
-\def\dodoloadmapline[#1][#2]%
- {\loadallfontmapfiles % ! ! !
- \ifsecondargument
- \immediatewriteutilitycommand{\usedmapline{#1}{#2}}%
- \doloadmapline{#1}{#2}% special
- \else
- \loadmapline[=][#1]%
- %\immediatewriteutilitycommand{\usedmapline{=}{#2}}%
- %\doloadmapline{=}{#1}% special
- \fi}
-
-% since this is driver dependent, and since we may set map files
-% before an output format is defined, we need to postpone it; we
-% cannot use starttext as hook because an output switch can be part
-% of a style; an alternative is to no longer permit driver switching
-% after the first \starttext, but that will break compatibility
-% because \startcomponent ... \environment ... is pretty legal.
-
-% the map directives need to end up in the right place in the stream
-
-% hm, the timing of when pdftex needs the map file info keeps changing;
-% it's really time to move to map line support
-
-% \appendtoks \loadallfontmapfiles \to \everyPDFximage
-% \appendtoks \loadallfontmapfiles \to \everystarttext
-% \appendtoks \loadallfontmapfiles \to \everybeforepagebody
-
-\everybeforeshipout \expandafter
- {\expandafter\appendtoks
- \expandafter\loadallfontmapfiles
- \expandafter\to
- \expandafter\pageboundsettings
- \the\everybeforeshipout}
-
-\newif\ifautoloadmapfiles
-
-\let\allfontmapsfiles\empty
-
-\def\forgetmapfiles
- {\globallet\allfontmapsfiles\empty}
-
-\newconditional\resettingmapfile
-
-\def\resetmapfiles
- {\global\settrue\resettingmapfile}
-
-\def\disablemapfiles
- {\resetmapfiles
- \forgetmapfiles}
-
-%D A handy shortcut:
-
-% \definetypescriptprefix[serif][Serif]
-% \definetypescriptprefix[sans] [Sans]
-% \definetypescriptprefix[mono] [Mono]
-%
-%\starttypescript [serif,sans,mono] [handling,hanging,hz] [pure,normal,hz,quality]
-% \setupfontsynonym [\typescriptprefix\typescriptone] [handling=\typescriptthree]
-% \stoptypescript
-
-\def\definetypescriptprefix
- {\dodoubleargument\dodefinetypescriptprefix}
-
-\def\dodefinetypescriptprefix[#1][#2]%
- {\setgvalue{\??ts::#1}{#2}} % made global
-
-% without testing:
-%
-% \def\typescriptprefix#1%
-% {\csname\??ts::#1\endcsname}
-%
-% with testing:
-
-\def\typescriptprefix#1%
- {\executeifdefined{\??ts::#1}{#1}}
-
-% defining typefaces:
-%
-% \definetypeface [#1:joke] [#2:rm]
-% \definetypeface [#1:joke] [#2:rm] [#3:...]
-% \definetypeface [#1:joke] [#2:rm] [#3:serif] [#4:lucida] [#5:size] [#6:...]
-
-\def\definetypeface
- {\dosixtupleargument\dodefinetypeface}
-
-\def\tsvar#1#2% \executeifdefined{\??ts#1}{#2}
- {\@EA\ifx\csname\??ts#1\endcsname\empty
- #2%
- \else
- \csname\??ts#1\endcsname
- \fi}
-
-% #1=main #2=rm #3=serif #4=fontname #5=size #6=settings
-
-\def\typefaceencoding{\defaultencoding}
-
-% 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,\s!features=,\s!fallbacks=,\s!text=,#6]}% \geteparameters
- \expanded{\getparameters[\??ts][\s!rscale=\plusone,\s!encoding=\defaultencoding,\s!features=,\s!text=,#6]}% \geteparameters
- \pushmacro\relativefontsize
- \pushmacro\typefaceencoding
- \pushmacro\fontclass
- \let\relativefontsize\@@tsrscale
- \let\typefaceencoding\@@tsencoding
- \setcurrentfontclass{#1}%
-% \letvalue{\fontclass\s!features }\@@tsfeatures % new per 16/6/2007
-% \letvalue{\fontclass\s!fallbacks}\@@tsfallbacks % new per 12/10/2008
- \saverelativefontsize{#2}\relativefontsize % fall back
- \savemathtextstyle\@@tstext % math text style (new per 28/4/2006)
- \iftracetypescripts\writestatus\m!fonts{define: [#1] [#2] [#3] [#4] / \typefaceencoding}\fi
- \usetypescript[#3,\t!map][#4][\t!name,\t!default,\typefaceencoding,\t!special]% map is needed for backward cmp
- \usetypescript[#3][#5][\t!size]%
- \popmacro\fontclass
- \popmacro\typefaceencoding
- \popmacro\relativefontsize
- \else\iffourthargument
- \definetypeface[#1][#2][#3][#4][\s!default]%
- \else\ifthirdargument
- \getparameters[\??tf#1#2][#3]%
- \fi\fi\fi}
-
-\def\dododefinetypeface[#1][#2]% saveguard against redefinition
- {\doifsomething{#1}
- {\ifcsname\??tf#1\s!default\endcsname \else
- \registerfontclass{#1}%
- \setgvalue{\??tf#1\s!default}{#2}%
- \fi
- \ifcsname#1\endcsname \else
- \unexpanded\setgvalue{#1}{\switchtotypeface[#1][#2]}%
- \fi}}
-
-\def\setuptypeface% [class] [settings]
- {\doquadrupleempty\doswitchtotypeface[\setupbodyfont][\fontclass]}
-
-\unexpanded\def\switchtotypeface% [class] [settings]
- {\doquadrupleempty\doswitchtotypeface[\switchtobodyfont][\globalfontclass]}
-
-\def\doswitchtotypeface[#1][#2][#3][#4]%
- {%\doifinsetelse{\s!default,\v!reset}{#3}
- % {\setcurrentfontclass\empty}
- % {\setcurrentfontclass{#3}}%
- \setcurrentfontclass{#3}%
- \let\globalfontclass#2%
- \iffourthargument
- #1[#4]%
- \else\ifx\fontclass\empty
- #1[\c!rm]%
- \else
- \doifdefinedelse{\??tf\fontclass\s!default}
- {#1[\getvalue{\??tf\fontclass\s!default}]}
- {#1[\c!rm]}%
- \fi \fi
- \ifmmode\mr\else\tf\fi} % needed ?
-
-\def\usetypefile[#1]% recurses on path ! ?
- {\readfile{\f!typeprefix#1}\donothing\donothing}
-
-%D For Taco:
-%D
-%D \starttyping
-%D \inherittypeface[palatino][rm][postscript]
-%D \inherittypeface[palatino][rm][\fontclass]
-%D \inherittypeface[palatino][rm] % == \fontclass
-%D \inherittypeface[palatino] % == [rm,ss,tt,mm]
-%D \stoptyping
-
-\def\inherittypeface
- {\dotripleempty\doinherittypeface}
-
-\def\doinherittypeface[#1][#2][#3]%
- {\doifelsenothing{#2}
- {\doinherittypeface[#1][\c!rm,\c!ss,\c!tt,\c!mm][\fontclass]}
- {\doifnot{#1}{#3}
- {\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.
-
-\ifx\normaldoreadfontdefinitionfile\undefined
- \let\normaldoreadfontdefinitionfile\doreadfontdefinitionfile
-\fi
-
-% old and obsolete
-%
-% \def\doreadfontdefinitionfile#1#2% #1 = set/switch state
-% {\ifundefined{\??tf#2\c!default}%
-% \pushmacro\fontclass
-% \setcurrentfontclass\empty
-% \pushmacro\@@typescriptone \edef\@@typescriptone {\truetypescript{#2}}%
-% \pushmacro\@@typescripttwo \let\@@typescripttwo \empty
-% \pushmacro\@@typescriptthree\let\@@typescriptthree\empty
-% \typescriptfoundfalse
-% \dododousetypescript{\f!typeprefix pre}%
-% \popmacro\@@typescriptthree
-% \popmacro\@@typescripttwo
-% \popmacro\@@typescriptone
-% \iftypescriptfound \else
-% \normaldoreadfontdefinitionfile{#1}{#2}%
-% \fi
-% \setcurrentfontclass\empty
-% \popmacro\fontclass
-% \else\ifcase#1\relax
-% \switchtotypeface[#2]%
-% \else
-% \setuptypeface[#2]%
-% \fi\fi}
-%
-% new and obeying fontclasses (but still obsolete)
-
-\def\doreadfontdefinitionfile#1#2% #1 = set/switch state
- {\ifcsname\??tf#2\c!default\endcsname
- \ifcase#1\relax
- \switchtotypeface[#2]%
- \else
- \setuptypeface[#2]%
- \fi
- \else
- \pushmacro\starttypescript
- \scratchtoks\emptytoks
- % locate downward compatibility definitions, one argument !
- \long\def\starttypescript[##1]##2\stoptypescript
- {\doif{##1}{#2}{\scratchtoks{##2}}}
- \startreadingfile
- \readfile{\f!typeprefix pre}\donothing\donothing
- \stopreadingfile
- \popmacro\starttypescript
- \the\scratchtoks
- \fi}
-
-\fetchruntimecommand \typetypescript {\f!typeprefix\s!run}
-
-% \usetypescript [berry] [ec]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/type-one.mkii b/Master/texmf-dist/tex/context/base/mkii/type-one.mkii
deleted file mode 100644
index 4f6e437457c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/type-one.mkii
+++ /dev/null
@@ -1,2917 +0,0 @@
-%D \module
-%D [ file=type-one,
-%D version=2007.07.30,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Type One Definitions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This file merges the traditional enc, syn and map files into one. If
-%D you think that it looks messy you're right. It shows some history of
-%D \TEX\ fonts and the development towards latin modern.
-
-% texfont --ven=public --col=antt --enc=ec --sou=auto
-% texfont --ven=public --col=antp --enc=ec --sou=auto
-% texfont --ven=urw --col=palatino --enc=ec --sou=auto
-% texfont --ven-lucas --col=sun --enc=ec --sou=.
-
-% \usetypescript [all] [modern] [texnansi]
-% \setupbodyfont[reset] \setupbodyfont[cmr]
-% \starttext \showfont[Serif] \stoptext
-
-\starttypescriptcollection[latinmodern]
-
- \starttypescript [map] [all]
- \loadmapfile[original-base.map]
- \loadmapfile[original-ams-base.map]
- \stoptypescript
-
- \starttypescript[all][modern,latin-modern][all]
- % fallbacks, no math in latin modern
- \definefontsynonym[lmdunh10][cmdunh10]
- \definefontsynonym[lmff10] [cmff10]
- \definefontsynonym[lmfi10] [cmfi10]
- \definefontsynonym[lmfib8] [cmfib8]
- \definefontsynonym[lmtex10] [cmtex10]
- \definefontsynonym[lmtex8] [cmtex8]
- \definefontsynonym[lmtex9] [cmtex9]
- \loadmapfile[original-public-lm.map]
- \stoptypescript
-
- \starttypescript [serif] [modern,latin-modern] [texnansi,ec,qx,t5]
- \definefontsynonym [LMRoman5-Regular] [\typescriptthree-lmr5] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman6-Regular] [\typescriptthree-lmr6] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman7-Regular] [\typescriptthree-lmr7] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman8-Regular] [\typescriptthree-lmr8] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman9-Regular] [\typescriptthree-lmr9] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-Regular] [\typescriptthree-lmr10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman12-Regular] [\typescriptthree-lmr12] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman17-Regular] [\typescriptthree-lmr17] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman5-Bold] [\typescriptthree-lmbx5] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman6-Bold] [\typescriptthree-lmbx6] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman7-Bold] [\typescriptthree-lmbx7] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman8-Bold] [\typescriptthree-lmbx8] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman9-Bold] [\typescriptthree-lmbx9] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-Bold] [\typescriptthree-lmbx10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman12-Bold] [\typescriptthree-lmbx12] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman7-Italic] [\typescriptthree-lmri7] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman8-Italic] [\typescriptthree-lmri8] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman9-Italic] [\typescriptthree-lmri9] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-Italic] [\typescriptthree-lmri10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman12-Italic] [\typescriptthree-lmri12] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-BoldItalic] [\typescriptthree-lmbxi10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman8-Oblique] [\typescriptthree-lmro8] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman9-Oblique] [\typescriptthree-lmro9] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-Oblique] [\typescriptthree-lmro10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman12-Oblique] [\typescriptthree-lmro12] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman17-Oblique] [\typescriptthree-lmro17] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-BoldOblique] [\typescriptthree-lmbxo10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-Demi] [\typescriptthree-lmb10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-DemiOblique] [\typescriptthree-lmbo10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-CapsRegular] [\typescriptthree-lmcsc10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-CapsOblique] [\typescriptthree-lmcsco10] [encoding=\typescriptthree]
-
- \definefontsynonym [LMRoman10-Dunhill] [\typescriptthree-lmdunh10] [encoding=\typescriptthree]
- \definefontsynonym [LMRoman10-DunhillOblique] [\typescriptthree-lmduno10] [encoding=\typescriptthree]
- \loadmapfile[lm-\typescriptthree.map]
- \stoptypescript
-
- \starttypescript [sans] [modern,latin-modern] [texnansi,ec,qx,t5]
- \definefontsynonym [LMSans8-Regular] [\typescriptthree-lmss8] [encoding=\typescriptthree]
- \definefontsynonym [LMSans9-Regular] [\typescriptthree-lmss9] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-Regular] [\typescriptthree-lmss10] [encoding=\typescriptthree]
- \definefontsynonym [LMSans12-Regular] [\typescriptthree-lmss12] [encoding=\typescriptthree]
- \definefontsynonym [LMSans17-Regular] [\typescriptthree-lmss17] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-Bold] [\typescriptthree-lmssbx10] [encoding=\typescriptthree]
- \definefontsynonym [LMSans8-Oblique] [\typescriptthree-lmsso8] [encoding=\typescriptthree]
- \definefontsynonym [LMSans9-Oblique] [\typescriptthree-lmsso9] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-Oblique] [\typescriptthree-lmsso10] [encoding=\typescriptthree]
- \definefontsynonym [LMSans12-Oblique] [\typescriptthree-lmsso12] [encoding=\typescriptthree]
- \definefontsynonym [LMSans17-Oblique] [\typescriptthree-lmsso17] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-BoldOblique] [\typescriptthree-lmssbo10] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-DemiCondensed] [\typescriptthree-lmssdc10] [encoding=\typescriptthree]
- \definefontsynonym [LMSans10-DemiCondensedOblique] [\typescriptthree-lmssdo10] [encoding=\typescriptthree]
- \definefontsynonym [LMSansQuotation8-Regular] [\typescriptthree-lmssq8] [encoding=\typescriptthree]
- \definefontsynonym [LMSansQuotation8-Bold] [\typescriptthree-lmssqbx8] [encoding=\typescriptthree]
- \definefontsynonym [LMSansQuotation8-Oblique] [\typescriptthree-lmssqo8] [encoding=\typescriptthree]
- \definefontsynonym [LMSansQuotation8-BoldOblique] [\typescriptthree-lmssqbo8] [encoding=\typescriptthree]
- \loadmapfile[lm-\typescriptthree.map]
- \stoptypescript
-
- \starttypescript [mono] [modern,latin-modern,modern-vari,latin-modern-vari,modern-cond,latin-modern-cond] [texnansi,ec,qx,t5]
- \definefontsynonym [LMTypewriter8-Regular] [\typescriptthree-lmtt8] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter9-Regular] [\typescriptthree-lmtt9] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-Regular] [\typescriptthree-lmtt10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter12-Regular] [\typescriptthree-lmtt12] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-Italic] [\typescriptthree-lmtti10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-Oblique] [\typescriptthree-lmtto10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-CapsRegular] [\typescriptthree-lmtcsc10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-CapsOblique] [\typescriptthree-lmtcso10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-Light] [\typescriptthree-lmtl10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-LightOblique] [\typescriptthree-lmtlo10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-LightCondensed] [\typescriptthree-lmtlc10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-LightCondensedOblique] [\typescriptthree-lmtlco10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-Dark] [\typescriptthree-lmtk10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-DarkOblique] [\typescriptthree-lmtko10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriter10-Unslanted] [\typescriptthree-lmu10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd10-Regular] [\typescriptthree-lmvtt10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd10-Oblique] [\typescriptthree-lmvtto10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd10-Light] [\typescriptthree-lmvtl10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd10-LightOblique] [\typescriptthree-lmvtlo10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd10-Dark] [\typescriptthree-lmvtk10] [encoding=\typescriptthree]
- \definefontsynonym [LMTypewriterVarWd10-DarkOblique] [\typescriptthree-lmvtko10] [encoding=\typescriptthree]
- \loadmapfile[lm-\typescriptthree.map]
- \stoptypescript
-
- \starttypescript [math] [modern,latin-modern]
- \definefontsynonym [LMMathRoman5-Regular] [rm-lmr5]
- \definefontsynonym [LMMathRoman6-Regular] [rm-lmr6]
- \definefontsynonym [LMMathRoman7-Regular] [rm-lmr7]
- \definefontsynonym [LMMathRoman8-Regular] [rm-lmr8]
- \definefontsynonym [LMMathRoman9-Regular] [rm-lmr9]
- \definefontsynonym [LMMathRoman10-Regular] [rm-lmr10]
- \definefontsynonym [LMMathRoman12-Regular] [rm-lmr12]
- \definefontsynonym [LMMathRoman17-Regular] [rm-lmr17]
- \definefontsynonym [LMMathRoman5-Bold] [rm-lmbx5]
- \definefontsynonym [LMMathRoman6-Bold] [rm-lmbx6]
- \definefontsynonym [LMMathRoman7-Bold] [rm-lmbx7]
- \definefontsynonym [LMMathRoman8-Bold] [rm-lmbx8]
- \definefontsynonym [LMMathRoman9-Bold] [rm-lmbx9]
- \definefontsynonym [LMMathRoman10-Bold] [rm-lmbx10]
- \definefontsynonym [LMMathRoman12-Bold] [rm-lmbx12]
- \definefontsynonym [LMMathSymbols5-BoldItalic] [lmbsy5]
- \definefontsynonym [LMMathSymbols7-BoldItalic] [lmbsy7]
- \definefontsynonym [LMMathSymbols10-BoldItalic][lmbsy10]
- \definefontsynonym [LMMathSymbols5-Italic] [lmsy5]
- \definefontsynonym [LMMathSymbols6-Italic] [lmsy6]
- \definefontsynonym [LMMathSymbols7-Italic] [lmsy7]
- \definefontsynonym [LMMathSymbols8-Italic] [lmsy8]
- \definefontsynonym [LMMathSymbols9-Italic] [lmsy9]
- \definefontsynonym [LMMathSymbols10-Italic] [lmsy10]
- \definefontsynonym [LMMathExtension10-Regular] [lmex10]
- \definefontsynonym [LMMathItalic5-Italic] [lmmi5]
- \definefontsynonym [LMMathItalic6-Italic] [lmmi6]
- \definefontsynonym [LMMathItalic7-Italic] [lmmi7]
- \definefontsynonym [LMMathItalic8-Italic] [lmmi8]
- \definefontsynonym [LMMathItalic9-Italic] [lmmi9]
- \definefontsynonym [LMMathItalic10-Italic] [lmmi10]
- \definefontsynonym [LMMathItalic12-Italic] [lmmi12]
- \definefontsynonym [LMMathItalic5-BoldItalic] [lmmib5]
- \definefontsynonym [LMMathItalic7-BoldItalic] [lmmib7]
- \definefontsynonym [LMMathItalic10-BoldItalic] [lmmib10]
- \usemathcollection[default]
- \loadmapfile[lm-math.map]
- \loadmapfile[lm-rm.map]
- \stoptypescript
-
- %D {\em Comments by Victor Figurnov:} the wcmb10, wcmbx10,
- %D \unknown\ fonts below are taken from the Paradissa
- %D collection by Basil Malyshev. These fonts don't conform t2a
- %D encoding but are in MS Windows Cyrillic codepage 1251
- %D encoding. These fonts contain only 33 russian letters in
- %D upper and lower case, the number sign, and guillemots. But
- %D even among these characters only the basic 32 russian
- %D letters (in upper and lower case) will be typeset correctly
- %D with this definition. The letters cyrillicYO and
- %D cyrillicyo, as well as number sign (textnumero) and
- %D guillemots won't be typeset properly, because these symbols
- %D have different positions in t2a and MS CP1251 encodings.
- %D
- %D I think that the russian lh fonts and|/|or cm-super provide
- %D better alternatives (type1). Therefore, the names below
- %D match those of cm-super (\type {0NNN} instead of \type
- %D {NNN}, i.e.\ four digit numbers).
-
- \starttypescript [serif] [computer-modern] [cyr]
- \definefontsynonym [cmb10] [wcmb10] [encoding=t2a]
- \definefontsynonym [cmbsy10] [wcmbsy10] [encoding=t2a]
- \definefontsynonym [cmbx10] [wcmbx10] [encoding=t2a]
- \definefontsynonym [cmbx12] [wcmbx12] [encoding=t2a]
- \definefontsynonym [cmbx5] [wcmbx5] [encoding=t2a]
- \definefontsynonym [cmbx6] [wcmbx6] [encoding=t2a]
- \definefontsynonym [cmbx7] [wcmbx7] [encoding=t2a]
- \definefontsynonym [cmbx8] [wcmbx8] [encoding=t2a]
- \definefontsynonym [cmbx9] [wcmbx9] [encoding=t2a]
- \definefontsynonym [cmbxsl10] [wcmbxsl10] [encoding=t2a]
- \definefontsynonym [cmbxti10] [wcmbxti10] [encoding=t2a]
- \definefontsynonym [cmcsc10] [wcmcsc10] [encoding=t2a]
- %definefontsynonym [cmdunh10] [wcmdunh10] [encoding=t2a]
- \definefontsynonym [cminch] [wcminch] [encoding=t2a]
- \definefontsynonym [cmr10] [wcmr10] [encoding=t2a]
- \definefontsynonym [cmr12] [wcmr12] [encoding=t2a]
- \definefontsynonym [cmr17] [wcmr17] [encoding=t2a]
- \definefontsynonym [cmr5] [wcmr5] [encoding=t2a]
- \definefontsynonym [cmr6] [wcmr6] [encoding=t2a]
- \definefontsynonym [cmr7] [wcmr7] [encoding=t2a]
- \definefontsynonym [cmr8] [wcmr8] [encoding=t2a]
- \definefontsynonym [cmr9] [wcmr9] [encoding=t2a]
- \definefontsynonym [cmsl10] [wcmsl10] [encoding=t2a]
- \definefontsynonym [cmsl12] [wcmsl12] [encoding=t2a]
- \definefontsynonym [cmsl8] [wcmsl8] [encoding=t2a]
- \definefontsynonym [cmsl9] [wcmsl9] [encoding=t2a]
- \definefontsynonym [cmti10] [wcmti10] [encoding=t2a]
- \definefontsynonym [cmti12] [wcmti12] [encoding=t2a]
- \definefontsynonym [cmti7] [wcmti7] [encoding=t2a]
- \definefontsynonym [cmti8] [wcmti8] [encoding=t2a]
- \definefontsynonym [cmti9] [wcmti9] [encoding=t2a]
- \definefontsynonym [cmu10] [wcmu10] [encoding=t2a]
- \stoptypescript
-
- \starttypescript [sans] [computer-modern] [cyr]
- \definefontsynonym [cmss10] [wcmss10] [encoding=t2a]
- \definefontsynonym [cmss12] [wcmss12] [encoding=t2a]
- \definefontsynonym [cmss17] [wcmss17] [encoding=t2a]
- \definefontsynonym [cmss8] [wcmss8] [encoding=t2a]
- \definefontsynonym [cmss9] [wcmss9] [encoding=t2a]
- %definefontsynonym [cmssbi10] [wcmssbi10] [encoding=t2a]
- \definefontsynonym [cmssbx10] [wcmssbx10] [encoding=t2a]
- \definefontsynonym [cmssdc10] [wcmssdc10] [encoding=t2a]
- \definefontsynonym [cmssi10] [wcmssi10] [encoding=t2a]
- \definefontsynonym [cmssi12] [wcmssi12] [encoding=t2a]
- \definefontsynonym [cmssi17] [wcmssi17] [encoding=t2a]
- \definefontsynonym [cmssi8] [wcmssi8] [encoding=t2a]
- \definefontsynonym [cmssi9] [wcmssi9] [encoding=t2a]
- \definefontsynonym [cmssq8] [wcmssq8] [encoding=t2a]
- \definefontsynonym [cmssqi8] [wcmssqi8] [encoding=t2a]
- \stoptypescript
-
- \starttypescript [mono] [computer-modern] [cyr]
- \definefontsynonym [cmitt10] [wcmitt10] [encoding=t2a]
- \definefontsynonym [cmsltt10] [wcmsltt10] [encoding=t2a]
- \definefontsynonym [cmtt10] [wcmtt10] [encoding=t2a]
- \definefontsynonym [cmtt12] [wcmtt12] [encoding=t2a]
- \definefontsynonym [cmtt8] [wcmtt8] [encoding=t2a]
- \definefontsynonym [cmtt9] [wcmtt9] [encoding=t2a]
- %definefontsynonym [cmvtt10] [wcmvtt10] [encoding=t2a]
- \stoptypescript
-
- \definetypescriptprefix [c:t2a] [la]
- \definetypescriptprefix [c:t2b] [lb]
- \definetypescriptprefix [c:t2c] [lc]
- \definetypescriptprefix [c:x2] [rx]
-
- \starttypescript [all] [computer-modern] [t2a,t2b,t2c,x2]
- \loadmapfile[subset-cmsuper-\typescriptthree.map]
- \loadmapfile[subset-cmsuper-\typescriptthree.map]
- \loadmapfile[cm-super-\typescriptthree.map]
- \stoptypescript
-
- \starttypescript [serif] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [cmb10] [\typescriptprefix{c:\typescriptthree}rb1000] [encoding=\typescriptthree]
- \definefontsynonym [cmbx10] [\typescriptprefix{c:\typescriptthree}bx1000] [encoding=\typescriptthree]
- \definefontsynonym [cmbx12] [\typescriptprefix{c:\typescriptthree}bx1200] [encoding=\typescriptthree]
- \definefontsynonym [cmbx5] [\typescriptprefix{c:\typescriptthree}bx0500] [encoding=\typescriptthree]
- \definefontsynonym [cmbx6] [\typescriptprefix{c:\typescriptthree}bx0600] [encoding=\typescriptthree]
- \definefontsynonym [cmbx7] [\typescriptprefix{c:\typescriptthree}bx0700] [encoding=\typescriptthree]
- \definefontsynonym [cmbx8] [\typescriptprefix{c:\typescriptthree}bx0800] [encoding=\typescriptthree]
- \definefontsynonym [cmbx9] [\typescriptprefix{c:\typescriptthree}bx0900] [encoding=\typescriptthree]
- \definefontsynonym [cmbxsl10] [\typescriptprefix{c:\typescriptthree}bl1000] [encoding=\typescriptthree]
- \definefontsynonym [cmbxti10] [\typescriptprefix{c:\typescriptthree}bi1000] [encoding=\typescriptthree]
- \definefontsynonym [cmcsc10] [\typescriptprefix{c:\typescriptthree}cc1000] [encoding=\typescriptthree]
- \definefontsynonym [cmdunh10] [\typescriptprefix{c:\typescriptthree}dh1000] [encoding=\typescriptthree]
- \definefontsynonym [cmff10] [\typescriptprefix{c:\typescriptthree}ff1000] [encoding=\typescriptthree]
- \definefontsynonym [cmfi10] [\typescriptprefix{c:\typescriptthree}fi1000] [encoding=\typescriptthree]
- \definefontsynonym [cmfib8] [\typescriptprefix{c:\typescriptthree}fb0800] [encoding=\typescriptthree]
- %\definefontsynonym [cminch] [\typescriptprefix{c:\typescriptthree}inch00] [encoding=\typescriptthree]
- \definefontsynonym [cmr10] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
- \definefontsynonym [cmr12] [\typescriptprefix{c:\typescriptthree}rm1200] [encoding=\typescriptthree]
- \definefontsynonym [cmr17] [\typescriptprefix{c:\typescriptthree}rm1700] [encoding=\typescriptthree]
- \definefontsynonym [cmr5] [\typescriptprefix{c:\typescriptthree}rm0500] [encoding=\typescriptthree]
- \definefontsynonym [cmr6] [\typescriptprefix{c:\typescriptthree}rm0600] [encoding=\typescriptthree]
- \definefontsynonym [cmr7] [\typescriptprefix{c:\typescriptthree}rm0700] [encoding=\typescriptthree]
- \definefontsynonym [cmr8] [\typescriptprefix{c:\typescriptthree}rm0800] [encoding=\typescriptthree]
- \definefontsynonym [cmr9] [\typescriptprefix{c:\typescriptthree}rm0900] [encoding=\typescriptthree]
- \definefontsynonym [cmsl10] [\typescriptprefix{c:\typescriptthree}sl1000] [encoding=\typescriptthree]
- \definefontsynonym [cmsl12] [\typescriptprefix{c:\typescriptthree}sl1200] [encoding=\typescriptthree]
- \definefontsynonym [cmsl8] [\typescriptprefix{c:\typescriptthree}sl0800] [encoding=\typescriptthree]
- \definefontsynonym [cmsl9] [\typescriptprefix{c:\typescriptthree}sl0900] [encoding=\typescriptthree]
- \definefontsynonym [cmtcsc10] [\typescriptprefix{c:\typescriptthree}tc1000] [encoding=\typescriptthree]
- \definefontsynonym [cmti10] [\typescriptprefix{c:\typescriptthree}ti1000] [encoding=\typescriptthree]
- \definefontsynonym [cmti12] [\typescriptprefix{c:\typescriptthree}ti1200] [encoding=\typescriptthree]
- \definefontsynonym [cmti7] [\typescriptprefix{c:\typescriptthree}ti0700] [encoding=\typescriptthree]
- \definefontsynonym [cmti8] [\typescriptprefix{c:\typescriptthree}ti0800] [encoding=\typescriptthree]
- \definefontsynonym [cmti9] [\typescriptprefix{c:\typescriptthree}ti0900] [encoding=\typescriptthree]
- \definefontsynonym [cmu10] [\typescriptprefix{c:\typescriptthree}ui1000] [encoding=\typescriptthree]
- \stoptypescript
-
- \starttypescript [sans] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [cmss10] [\typescriptprefix{c:\typescriptthree}ss1000] [encoding=\typescriptthree]
- \definefontsynonym [cmss12] [\typescriptprefix{c:\typescriptthree}ss1200] [encoding=\typescriptthree]
- \definefontsynonym [cmss17] [\typescriptprefix{c:\typescriptthree}ss1700] [encoding=\typescriptthree]
- \definefontsynonym [cmss8] [\typescriptprefix{c:\typescriptthree}ss0800] [encoding=\typescriptthree]
- \definefontsynonym [cmss9] [\typescriptprefix{c:\typescriptthree}ss0900] [encoding=\typescriptthree]
- \definefontsynonym [cmssbx10] [\typescriptprefix{c:\typescriptthree}sx1000] [encoding=\typescriptthree]
- %\definefontsynonym [cmssdc10] [\typescriptprefix{c:\typescriptthree}ssdc1000] [encoding=\typescriptthree]
- \definefontsynonym [cmssi10] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree]
- \definefontsynonym [cmssi12] [\typescriptprefix{c:\typescriptthree}si1200] [encoding=\typescriptthree]
- \definefontsynonym [cmssi17] [\typescriptprefix{c:\typescriptthree}si1700] [encoding=\typescriptthree]
- \definefontsynonym [cmssi8] [\typescriptprefix{c:\typescriptthree}si0800] [encoding=\typescriptthree]
- \definefontsynonym [cmssi9] [\typescriptprefix{c:\typescriptthree}si0900] [encoding=\typescriptthree]
- \definefontsynonym [cmssq8] [\typescriptprefix{c:\typescriptthree}ss0800] [encoding=\typescriptthree]
- \definefontsynonym [cmssqi8] [\typescriptprefix{c:\typescriptthree}si0800] [encoding=\typescriptthree]
- \stoptypescript
-
- \starttypescript [mono] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [cmitt10] [\typescriptprefix{c:\typescriptthree}it1000] [encoding=\typescriptthree]
- \definefontsynonym [cmsltt10] [\typescriptprefix{c:\typescriptthree}st1000] [encoding=\typescriptthree]
- \definefontsynonym [cmtt10] [\typescriptprefix{c:\typescriptthree}tt1000] [encoding=\typescriptthree]
- \definefontsynonym [cmtt12] [\typescriptprefix{c:\typescriptthree}tt1200] [encoding=\typescriptthree]
- \definefontsynonym [cmtt8] [\typescriptprefix{c:\typescriptthree}tt0800] [encoding=\typescriptthree]
- \definefontsynonym [cmtt9] [\typescriptprefix{c:\typescriptthree}tt0900] [encoding=\typescriptthree]
- \definefontsynonym [cmvtt10] [\typescriptprefix{c:\typescriptthree}vt1000] [encoding=\typescriptthree]
- \stoptypescript
-
- \starttypescript [serif] [computer-modern] [lcy]
- \definefontsynonym [cmb10] [lhb10] [encoding=lcy]
- \definefontsynonym [cmbx10] [lhbx10] [encoding=lcy]
- \definefontsynonym [cmbx12] [lhbx12] [encoding=lcy]
- \definefontsynonym [cmbx5] [lhbx5] [encoding=lcy]
- \definefontsynonym [cmbx6] [lhbx6] [encoding=lcy]
- \definefontsynonym [cmbx7] [lhbx7] [encoding=lcy]
- \definefontsynonym [cmbx8] [lhbx8] [encoding=lcy]
- \definefontsynonym [cmbx9] [lhbx9] [encoding=lcy]
- \definefontsynonym [cmbxsl10] [lhbxsl10] [encoding=lcy]
- \definefontsynonym [cmbxti10] [lhbxti10] [encoding=lcy]
- \definefontsynonym [cmcsc10] [lhcsc10] [encoding=lcy]
- \definefontsynonym [cmdunh10] [lhdunh10] [encoding=lcy]
- \definefontsynonym [cmff10] [lhff10] [encoding=lcy]
- \definefontsynonym [cmfi10] [lhfi10] [encoding=lcy]
- \definefontsynonym [cmfib8] [lhfib8] [encoding=lcy]
- \definefontsynonym [cminch] [lhinch] [encoding=lcy]
- \definefontsynonym [cmr10] [lhr10] [encoding=lcy]
- \definefontsynonym [cmr12] [lhr12] [encoding=lcy]
- \definefontsynonym [cmr17] [lhr17] [encoding=lcy]
- \definefontsynonym [cmr5] [lhr5] [encoding=lcy]
- \definefontsynonym [cmr6] [lhr6] [encoding=lcy]
- \definefontsynonym [cmr7] [lhr7] [encoding=lcy]
- \definefontsynonym [cmr8] [lhr8] [encoding=lcy]
- \definefontsynonym [cmr9] [lhr9] [encoding=lcy]
- \definefontsynonym [cmsl10] [lhsl10] [encoding=lcy]
- \definefontsynonym [cmsl12] [lhsl12] [encoding=lcy]
- \definefontsynonym [cmsl8] [lhsl8] [encoding=lcy]
- \definefontsynonym [cmsl9] [lhsl9] [encoding=lcy]
- \definefontsynonym [cmtcsc10] [lhtcsc10] [encoding=lcy]
- \definefontsynonym [cmtex10] [lhtex10] [encoding=lcy]
- \definefontsynonym [cmtex8] [lhtex8] [encoding=lcy]
- \definefontsynonym [cmtex9] [lhtex9] [encoding=lcy]
- \definefontsynonym [cmti10] [lhti10] [encoding=lcy]
- \definefontsynonym [cmti12] [lhti12] [encoding=lcy]
- \definefontsynonym [cmti7] [lhti7] [encoding=lcy]
- \definefontsynonym [cmti8] [lhti8] [encoding=lcy]
- \definefontsynonym [cmti9] [lhti9] [encoding=lcy]
- \definefontsynonym [cmu10] [lhu10] [encoding=lcy]
- \stoptypescript
-
- \starttypescript [sans] [computer-modern] [lcy]
- \definefontsynonym [cmss10] [lhss10] [encoding=lcy]
- \definefontsynonym [cmss12] [lhss12] [encoding=lcy]
- \definefontsynonym [cmss17] [lhss17] [encoding=lcy]
- \definefontsynonym [cmss8] [lhss8] [encoding=lcy]
- \definefontsynonym [cmss9] [lhss9] [encoding=lcy]
- \definefontsynonym [cmssbi10] [lhssbi10] [encoding=lcy]
- \definefontsynonym [cmssbx10] [lhssbx10] [encoding=lcy]
- \definefontsynonym [cmssdc10] [lhssdc10] [encoding=lcy]
- \definefontsynonym [cmssi10] [lhssi10] [encoding=lcy]
- \definefontsynonym [cmssi12] [lhssi12] [encoding=lcy]
- \definefontsynonym [cmssi17] [lhssi17] [encoding=lcy]
- \definefontsynonym [cmssi8] [lhssi8] [encoding=lcy]
- \definefontsynonym [cmssi9] [lhssi9] [encoding=lcy]
- \definefontsynonym [cmssq8] [lhssq8] [encoding=lcy]
- \definefontsynonym [cmssqi8] [lhssqi8] [encoding=lcy]
- \stoptypescript
-
- \starttypescript [mono] [computer-modern] [lcy]
- \definefontsynonym [cmitt10] [lhitt10] [encoding=lcy]
- \definefontsynonym [cmsltt10] [lhsltt10] [encoding=lcy]
- \definefontsynonym [cmtt10] [lhtt10] [encoding=lcy]
- \definefontsynonym [cmtt12] [lhtt12] [encoding=lcy]
- \definefontsynonym [cmtt8] [lhtt8] [encoding=lcy]
- \definefontsynonym [cmtt9] [lhtt9] [encoding=lcy]
- \definefontsynonym [cmvtt10] [lhvtt10] [encoding=lcy]
- \stoptypescript
-
- %
-
- \starttypescript [math] [modern,computer-modern,latin-modern] % [default]
- % watch the space, it prevents remapping
- \definefontsynonym [ComputerModernMath-Roman] [rm-lmr10]% [lmr10 ]
- \definefontsynonym [ComputerModernMath-Extension] [lmex10]
- \definefontsynonym [ComputerModernMath-Italic] [lmmi10]
- \definefontsynonym [ComputerModernMath-Symbol] [lmsy10]
- \stoptypescript
-
- \starttypescript [boldmath,bfmath] [modern,computer-modern,latin-modern] % [default]
- % watch the space, it prevents remapping
- \definefontsynonym [ComputerModernMath-Roman-Bold] [rm-lmb10] % [lmb10 ]
- \definefontsynonym [ComputerModernMath-Extension] [lmex10]
- \definefontsynonym [ComputerModernMath-Italic-Bold] [lmmib10]
- \definefontsynonym [ComputerModernMath-Symbol-Bold] [lmbsy10]
- \stoptypescript
-
- % Till we have cyrilic in lm:
-
- % \usetypescript[modern-base][t2a]
- % \setupbodyfont[modern,10pt]
-
- \starttypescript [serif] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [Serif] [\typescriptprefix{c:\typescriptthree}rm1000] [encoding=\typescriptthree]
- \definefontsynonym [SerifItalic] [\typescriptprefix{c:\typescriptthree}ti1000] [encoding=\typescriptthree]
- \definefontsynonym [SerifSlanted] [\typescriptprefix{c:\typescriptthree}sl1000] [encoding=\typescriptthree]
- \definefontsynonym [SerifBold] [\typescriptprefix{c:\typescriptthree}bx1000] [encoding=\typescriptthree]
- \definefontsynonym [SerifBoldItalic] [\typescriptprefix{c:\typescriptthree}bi1000] [encoding=\typescriptthree]
- \definefontsynonym [SerifBoldSlanted] [\typescriptprefix{c:\typescriptthree}bl1000] [encoding=\typescriptthree]
- \definefontsynonym [SerifCaps] [\typescriptprefix{c:\typescriptthree}cc1000] [encoding=\typescriptthree]
- \definefontsynonym [SerifCapsSlanted] [\typescriptprefix{c:\typescriptthree}sc1000] [encoding=\typescriptthree]
- \stoptypescript
-
- \starttypescript [sans] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [Sans] [\typescriptprefix{c:\typescriptthree}ss1000] [encoding=\typescriptthree]
- \definefontsynonym [SansItalic] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree]
- \definefontsynonym [SansSlanted] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree]
- \definefontsynonym [SansBold] [\typescriptprefix{c:\typescriptthree}sx1000] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldItalic] [\typescriptprefix{c:\typescriptthree}so1000] [encoding=\typescriptthree]
- \definefontsynonym [SansBoldSlanted] [\typescriptprefix{c:\typescriptthree}so1000] [encoding=\typescriptthree]
- \definefontsynonym [SansCaps] [\typescriptprefix{c:\typescriptthree}ss1000] [encoding=\typescriptthree]
- \definefontsynonym [SansCapsSlanted] [\typescriptprefix{c:\typescriptthree}si1000] [encoding=\typescriptthree]
- \stoptypescript
-
- \starttypescript [mono] [computer-modern] [t2a,t2b,t2c,x2]
- \definefontsynonym [Mono] [\typescriptprefix{c:\typescriptthree}tt1000] [encoding=\typescriptthree]
- \definefontsynonym [MonoItalic] [\typescriptprefix{c:\typescriptthree}it1000] [encoding=\typescriptthree]
- \definefontsynonym [MonoSlanted] [\typescriptprefix{c:\typescriptthree}st1000] [encoding=\typescriptthree]
- \definefontsynonym [MonoBold] [\typescriptprefix{c:\typescriptthree}tt1000] [encoding=\typescriptthree]
- \definefontsynonym [MonoBoldItalic] [\typescriptprefix{c:\typescriptthree}it1000] [encoding=\typescriptthree]
- \definefontsynonym [MonoBoldSlanted] [\typescriptprefix{c:\typescriptthree}st1000] [encoding=\typescriptthree]
- \definefontsynonym [MonoCaps] [\typescriptprefix{c:\typescriptthree}tc1000] [encoding=\typescriptthree]
- \definefontsynonym [MonoCapsSlanted] [\typescriptprefix{c:\typescriptthree}tc1000] [encoding=\typescriptthree]
- \stoptypescript
-
- % Computer Concrete (AMS)
-
- \starttypescript [serif] [concrete] [default]
- \definefontsynonym [ComputerConcrete] [ccr10]
- \definefontsynonym [ComputerConcrete-Italic] [ccti10]
- \definefontsynonym [ComputerConcrete-Slanted] [ccsl10]
- \definefontsynonym [ComputerConcrete-Bold] [ComputerConcrete]
- \definefontsynonym [ComputerConcrete-BoldItalic] [ComputerConcrete-Italic]
- \definefontsynonym [ComputerConcrete-BoldSlanted] [ComputerConcrete-Slanted]
- \definefontsynonym [ComputerConcrete-Caps] [cccsc10]
- \stoptypescript
-
- \starttypescript [serif] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [Serif] [LMRoman-Regular]
- \definefontsynonym [SerifBold] [LMRoman-Bold]
- \definefontsynonym [SerifItalic] [LMRoman-Italic]
- \definefontsynonym [SerifSlanted] [LMRoman-Oblique]
- \definefontsynonym [SerifBoldItalic] [LMRoman-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [LMRoman-BoldOblique]
- \definefontsynonym [SerifCaps] [LMRoman-CapsRegular]
- \definefontsynonym [SerifCapsSlanted] [LMRoman-CapsOblique]
- \stoptypescript
-
- \starttypescript [sans] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [Sans] [LMSans-Regular]
- \definefontsynonym [SansBold] [LMSans-Bold]
- \definefontsynonym [SansItalic] [LMSans-Oblique]
- \definefontsynonym [SansSlanted] [LMSans-Oblique]
- \definefontsynonym [SansBoldItalic] [LMSans-BoldOblique]
- \definefontsynonym [SansBoldSlanted] [LMSans-BoldOblique]
- \definefontsynonym [SansCaps] [LMSans-Regular]
- \definefontsynonym [SansCapsSlanted] [LMSans-Oblique]
- \stoptypescript
-
- \starttypescript [mono] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [Mono] [LMTypewriter-Regular]
- \definefontsynonym [MonoBold] [LMTypewriter-Dark]
- \definefontsynonym [MonoItalic] [LMTypewriter-Italic]
- \definefontsynonym [MonoSlanted] [LMTypewriter-Oblique]
- \definefontsynonym [MonoBoldItalic] [LMTypewriter-DarkOblique]
- \definefontsynonym [MonoBoldSlanted] [LMTypewriter-DarkOblique]
- \definefontsynonym [MonoCaps] [LMTypewriter-CapsRegular]
- \definefontsynonym [MonoCapsSlanted] [LMTypewriter-CapsOblique]
- \definefontsynonym [MonoVariable] [LMTypewriterVarWd-Regular]
- \stoptypescript
-
- \starttypescript [math] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [MathRoman] [LMMathRoman-Regular]
- \definefontsynonym [MathExtension] [LMMathExtension-Regular]
- \definefontsynonym [MathItalic] [LMMathItalic-Italic]
- \definefontsynonym [MathSymbol] [LMMathSymbols-Italic]
- \stoptypescript
-
- \starttypescript [boldmath] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [MathRoman] [LMMathRoman-Bold]
- \definefontsynonym [MathExtension] [LMMathExtension-Regular]
- \definefontsynonym [MathItalic] [LMMathItalic-BoldItalic]
- \definefontsynonym [MathSymbol] [LMMathSymbols-BoldItalic]
- \stoptypescript
-
- \starttypescript [bfmath] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [MathRomanBold] [LMMathRoman-Bold]
- \definefontsynonym [MathExtension] [LMMathExtension-Regular]
- \definefontsynonym [MathItalicBold] [LMMathItalic-BoldItalic]
- \definefontsynonym [MathSymbolBold] [LMMathSymbols-BoldItalic]
- \stoptypescript
-
- \starttypescript [math,boldmath,bfmath] [modern,computer-modern,latin-modern] [name]
- \usemathcollection[default]
- \stoptypescript
-
- \starttypescript [serif] [modern-vari,computer-modern-vari,latin-modern-vari] [name]
- \definefontsynonym [Serif] [LMTypewriterVarWd-Regular]
- \definefontsynonym [SerifBold] [LMTypewriterVarWd-Oblique]
- \definefontsynonym [SerifItalic] [LMTypewriterVarWd-Oblique]
- \definefontsynonym [SerifSlanted] [LMTypewriterVarWd-Dark]
- \definefontsynonym [SerifBoldItalic] [LMTypewriterVarWd-DarkOblique]
- \definefontsynonym [SerifBoldSlanted] [LMTypewriterVarWd-DarkOblique]
- \definefontsynonym [SerifCaps] [LMTypewriterVarWd-Regular]
- \definefontsynonym [SerifCapsSlanted] [LMTypewriterVarWd-Oblique]
- \stoptypescript
-
- \starttypescript [mono] [modern-cond,computer-modern-cond,latin-modern-cond,modern-lightcond,computer-modern-lightcond,latin-modern-lightcond] [name]
- \definefontsynonym [Mono] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoBold] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoItalic] [LMTypewriter-LightCondensedOblique]
- \definefontsynonym [MonoSlanted] [LMTypewriter-LightCondensedOblique]
- \definefontsynonym [MonoBoldItalic] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoBoldSlanted] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoCaps] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoCapsSlanted] [LMTypewriter-LightCondensed]
- \stoptypescript
-
- \starttypescript [mono] [modern-light,computer-modern-light,latin-modern-light] [name]
- \definefontsynonym [Mono] [LMTypewriter-Light]
- \definefontsynonym [MonoBold] [LMTypewriter-Light]
- \definefontsynonym [MonoItalic] [LMTypewriter-LightOblique]
- \definefontsynonym [MonoSlanted] [LMTypewriter-LightOblique]
- \definefontsynonym [MonoBoldItalic] [LMTypewriter-Light]
- \definefontsynonym [MonoBoldSlanted] [LMTypewriter-Light]
- \definefontsynonym [MonoCaps] [LMTypewriter-Light]
- \definefontsynonym [MonoCapsSlanted] [LMTypewriter-Light]
- \stoptypescript
-
- % Later we will map the real fonts, here we just map synonyms.
-
- \starttypescript [serif] [modern,latin-modern]
- \definefontsynonym [LMRoman-DemiOblique] [LMRoman10-DemiOblique]
- \definefontsynonym [LMRoman-Bold] [LMRoman10-Bold]
- \definefontsynonym [LMRoman-BoldItalic] [LMRoman10-BoldItalic]
- \definefontsynonym [LMRoman-BoldOblique] [LMRoman10-BoldOblique]
- \definefontsynonym [LMRoman-CapsRegular] [LMRoman10-CapsRegular]
- \definefontsynonym [LMRoman-CapsOblique] [LMRoman10-CapsOblique]
- \definefontsynonym [LMRoman-Regular] [LMRoman10-Regular]
- \definefontsynonym [LMRoman-Italic] [LMRoman10-Italic]
- \definefontsynonym [LMRoman-Oblique] [LMRoman10-Oblique]
- \stoptypescript
-
- \starttypescript [sans] [modern,latin-modern]
- \definefontsynonym [LMSans-Regular] [LMSans10-Regular]
- \definefontsynonym [LMSans-BoldOblique] [LMSans10-BoldOblique]
- \definefontsynonym [LMSans-Bold] [LMSans10-Bold]
- \definefontsynonym [LMSans-DemiCondensed] [LMSans10-DemiCondensed]
- \definefontsynonym [LMSans-DemiCondensedOblique] [LMSans10-DemiCondensedOblique]
- \definefontsynonym [LMSans-Oblique] [LMSans10-Oblique]
- \stoptypescript
-
- \starttypescript [mono] [modern,latin-modern,modern-vari,latin-modern-vari,modern-cond,latin-modern-cond]
- \definefontsynonym [LMTypewriter-CapsRegular] [LMTypewriter10-CapsRegular]
- \definefontsynonym [LMTypewriter-CapsOblique] [LMTypewriter10-CapsOblique]
- \definefontsynonym [LMTypewriter-Light] [LMTypewriter10-Light]
- \definefontsynonym [LMTypewriter-LightOblique] [LMTypewriter10-LightOblique]
- \definefontsynonym [LMTypewriter-LightCondensed] [LMTypewriter10-LightCondensed]
- \definefontsynonym [LMTypewriter-LightCondensedOblique] [LMTypewriter10-LightCondensedOblique]
- \definefontsynonym [LMTypewriter-Dark] [LMTypewriter10-Dark]
- \definefontsynonym [LMTypewriter-DarkOblique] [LMTypewriter10-DarkOblique]
- \definefontsynonym [LMTypewriter-Regular] [LMTypewriter10-Regular]
- \definefontsynonym [LMTypewriter-Italic] [LMTypewriter10-Italic]
- \definefontsynonym [LMTypewriter-Oblique] [LMTypewriter10-Oblique]
- \definefontsynonym [LMTypewriterVarWd-Regular] [LMTypewriterVarWd10-Regular]
- \definefontsynonym [LMTypewriterVarWd-Oblique] [LMTypewriterVarWd10-Oblique]
- \definefontsynonym [LMTypewriterVarWd-Light] [LMTypewriterVarWd10-Light]
- \definefontsynonym [LMTypewriterVarWd-LightOblique] [LMTypewriterVarWd10-LightOblique]
- \definefontsynonym [LMTypewriterVarWd-Dark] [LMTypewriterVarWd10-Dark]
- \definefontsynonym [LMTypewriterVarWd-DarkOblique] [LMTypewriterVarWd10-DarkOblique]
- \stoptypescript
-
- \starttypescript [serif] [modern,computer-modern,latin-modern]
- \definefontsynonym [ComputerModern] [LMRoman-Regular]
- \definefontsynonym [ComputerModern-Italic] [LMRoman-Italic]
- \definefontsynonym [ComputerModern-Slanted] [LMRoman-Oblique]
- \definefontsynonym [ComputerModern-Bold] [LMRoman-Bold]
- \definefontsynonym [ComputerModern-BoldItalic] [LMRoman-BoldItalic]
- \definefontsynonym [ComputerModern-BoldSlanted] [LMRoman-BoldOblique]
- \definefontsynonym [ComputerModern-Caps] [LMRoman-CapsRegular]
- \definefontsynonym [ComputerModern-CapsSlanted] [LMRoman-CapsOblique]
- \stoptypescript
-
- \starttypescript [sans] [modern,computer-modern,latin-modern]
- \definefontsynonym [ComputerModernSans] [LMSans-Regular]
- \definefontsynonym [ComputerModernSans-Italic] [LMSans-Oblique]
- \definefontsynonym [ComputerModernSans-Slanted] [LMSans-Oblique]
- \definefontsynonym [ComputerModernSans-Bold] [LMSans-Bold]
- \definefontsynonym [ComputerModernSans-BoldItalic] [LMSans-BoldOblique]
- \definefontsynonym [ComputerModernSans-BoldSlanted] [LMSans-BoldOblique]
- \definefontsynonym [ComputerModernSans-Caps] [LMSans-Regular] % [LMSans-CapsRegular]
- \definefontsynonym [ComputerModernSans-CapsSlanted] [LMSans-Oblique] % [LMSans-CapsOblique]
- \stoptypescript
-
- \starttypescript [mono] [modern,computer-modern,latin-modern]
- \definefontsynonym [ComputerModernMono] [LMTypewriter-Regular]
- \definefontsynonym [ComputerModernMono-Italic] [LMTypewriter-Italic]
- \definefontsynonym [ComputerModernMono-Slanted] [LMTypewriter-Oblique]
- \definefontsynonym [ComputerModernMono-Bold] [LMTypewriter-Dark]
- \definefontsynonym [ComputerModernMono-BoldItalic] [LMTypewriter-DarkOblique] % !
- \definefontsynonym [ComputerModernMono-BoldSlanted] [LMTypewriter-DarkOblique]
- \definefontsynonym [ComputerModernMono-Caps] [LMTypewriter-CapsRegular]
- \definefontsynonym [ComputerModernMono-CapsSlanted] [LMTypewriter-CapsOblique]
- \definefontsynonym [ComputerModernMono-Variable] [LMTypewriterVarWd-Regular]
- \stoptypescript
-
- \starttypescript [serif] [modern-vari,computer-modern-vari,latin-modern-vari]
- \definefontsynonym [ComputerModernVariable] [LMTypewriterVarWd-Regular]
- \definefontsynonym [ComputerModernVariable-Italic] [LMTypewriterVarWd-Oblique]
- \definefontsynonym [ComputerModernVariable-Slanted] [LMTypewriterVarWd-Oblique]
- \definefontsynonym [ComputerModernVariable-Bold] [LMTypewriterVarWd-Dark]
- \definefontsynonym [ComputerModernVariable-BoldItalic] [LMTypewriterVarWd-DarkOblique]
- \definefontsynonym [ComputerModernVariable-BoldSlanted] [LMTypewriterVarWd-DarkOblique]
- \definefontsynonym [ComputerModernVariable-Caps] [LMTypewriterVarWd-Regular]
- \definefontsynonym [ComputerModernVariable-CapsSlanted] [LMTypewriterVarWd-Oblique]
- \stoptypescript
-
- \starttypescript [math] [modern,latin-modern]
- \definefontsynonym [LMMathRoman-Regular] [LMMathRoman10-Regular]
- \definefontsynonym [LMMathRoman-Bold] [LMMathRoman10-Bold]
- \definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic]
- \definefontsynonym [LMMathSymbols-Italic] [LMMathSymbols10-Italic]
- \definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular]
- \definefontsynonym [LMMathItalic-Italic] [LMMathItalic10-Italic]
- \definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic]
- \stoptypescript
-
- % can boldmath and bfmath be joined?
- \starttypescript [boldmath] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [LMMathRoman-Bold] [LMMathRoman10-Bold]
- \definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular]
- \definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic]
- \definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic]
- \stoptypescript
-
- \starttypescript [bfmath] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [LMMathRoman-Bold] [LMMathRoman10-Bold]
- \definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular]
- \definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic]
- \definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic]
- \stoptypescript
-
- \starttypescript [serif] [modern,latin-modern,computer-modern]
- \definefontsynonym [cmr5] [LMRoman5-Regular]
- \definefontsynonym [cmr6] [LMRoman6-Regular]
- \definefontsynonym [cmr7] [LMRoman7-Regular]
- \definefontsynonym [cmr8] [LMRoman8-Regular]
- \definefontsynonym [cmr9] [LMRoman9-Regular]
- \definefontsynonym [cmr10] [LMRoman10-Regular]
- \definefontsynonym [cmr12] [LMRoman12-Regular]
- \definefontsynonym [cmr17] [LMRoman17-Regular]
- \definefontsynonym [cmbx5] [LMRoman5-Bold]
- \definefontsynonym [cmbx6] [LMRoman6-Bold]
- \definefontsynonym [cmbx7] [LMRoman7-Bold]
- \definefontsynonym [cmbx8] [LMRoman8-Bold]
- \definefontsynonym [cmbx9] [LMRoman9-Bold]
- \definefontsynonym [cmbx10] [LMRoman10-Bold]
- \definefontsynonym [cmbx12] [LMRoman12-Bold]
- \definefontsynonym [cmsl10] [LMRoman10-Oblique]
- \definefontsynonym [cmsl12] [LMRoman12-Oblique]
- \definefontsynonym [cmsl17] [LMRoman17-Oblique]
- \definefontsynonym [cmsl8] [LMRoman8-Oblique]
- \definefontsynonym [cmsl9] [LMRoman9-Oblique]
- \definefontsynonym [cmti7] [LMRoman7-Italic]
- \definefontsynonym [cmti8] [LMRoman8-Italic]
- \definefontsynonym [cmti9] [LMRoman9-Italic]
- \definefontsynonym [cmti10] [LMRoman10-Italic]
- \definefontsynonym [cmti12] [LMRoman12-Italic]
- \definefontsynonym [cmbsl10] [LMRoman10-DemiOblique]
- \definefontsynonym [cmbxsl10] [LMRoman10-BoldOblique]
- \definefontsynonym [cmbxti10] [LMRoman10-BoldItalic]
- \definefontsynonym [cmcsc10] [LMRoman10-CapsRegular]
- \definefontsynonym [cmcscsl10][LMRoman10-CapsOblique]
-
- %definefontsynonym [cmb10]
- \stoptypescript
-
- \starttypescript [sans] [modern,latin-modern,computer-modern]
- \definefontsynonym [cmss8] [LMSans8-Regular]
- \definefontsynonym [cmss9] [LMSans9-Regular]
- \definefontsynonym [cmss10] [LMSans10-Regular]
- \definefontsynonym [cmss12] [LMSans12-Regular]
- \definefontsynonym [cmss17] [LMSans17-Regular]
- \definefontsynonym [cmssi10] [LMSans10-Oblique]
- \definefontsynonym [cmssi12] [LMSans12-Oblique]
- \definefontsynonym [cmssi17] [LMSans17-Oblique]
- \definefontsynonym [cmssi8] [LMSans8-Oblique]
- \definefontsynonym [cmssi9] [LMSans9-Oblique]
- \definefontsynonym [cmssq8] [LMSansQuotation8-Regular]
- \definefontsynonym [cmssqb8] [LMSansQuotation8-Bold]
- \definefontsynonym [cmssqbi8] [LMSansQuotation8-BoldOblique]
- \definefontsynonym [cmssqi8] [LMSansQuotation8-Oblique]
- \definefontsynonym [cmssbx10] [LMSans10-Bold]
- \definefontsynonym [cmssdc10] [LMSans10-DemiCondensed]
- \definefontsynonym [cmssbi10] [LMSans10-BoldOblique]
- \definefontsynonym [cmssdi10] [LMSans10-DemiCondensedOblique]
- \stoptypescript
-
- \starttypescript [mono] [modern,latin-modern,computer-modern]
- \definefontsynonym [cmtt8] [LMTypewriter8-Regular]
- \definefontsynonym [cmtt9] [LMTypewriter9-Regular]
- \definefontsynonym [cmtt10] [LMTypewriter10-Regular]
- \definefontsynonym [cmtt12] [LMTypewriter12-Regular]
- \definefontsynonym [cmitt10] [LMTypewriter10-Italic]
- \definefontsynonym [cmsltt10] [LMTypewriter10-Oblique]
- \definefontsynonym [cmvtt10] [LMTypewriterVarWd10-Regular]
- \definefontsynonym [cmvtti10] [LMTypewriterVarWd10-Oblique]
- \definefontsynonym [cmtcsc10] [LMTypewriter10-CapsRegular]
- \stoptypescript
-
- \starttypescript [math] [modern,latin-modern,computer-modern]
- \definefontsynonym [cmbsy5] [LMMathSymbols5-BoldItalic]
- \definefontsynonym [cmbsy7] [LMMathSymbols7-BoldItalic]
- \definefontsynonym [cmbsy10] [LMMathSymbols10-BoldItalic]
- \definefontsynonym [cmsy5] [LMMathSymbols5-Italic]
- \definefontsynonym [cmsy6] [LMMathSymbols6-Italic]
- \definefontsynonym [cmsy7] [LMMathSymbols7-Italic]
- \definefontsynonym [cmsy8] [LMMathSymbols8-Italic]
- \definefontsynonym [cmsy9] [LMMathSymbols9-Italic]
- \definefontsynonym [cmsy10] [LMMathSymbols10-Italic]
- \definefontsynonym [cmex10] [LMMathExtension10-Regular]
- \definefontsynonym [cmmi5] [LMMathItalic5-Italic]
- \definefontsynonym [cmmi6] [LMMathItalic6-Italic]
- \definefontsynonym [cmmi7] [LMMathItalic7-Italic]
- \definefontsynonym [cmmi8] [LMMathItalic8-Italic]
- \definefontsynonym [cmmi9] [LMMathItalic9-Italic]
- \definefontsynonym [cmmi10] [LMMathItalic10-Italic]
- \definefontsynonym [cmmi12] [LMMathItalic12-Italic]
- \definefontsynonym [cmmib5] [LMMathItalic5-BoldItalic]
- \definefontsynonym [cmmib7] [LMMathItalic7-BoldItalic]
- \definefontsynonym [cmmib10] [LMMathItalic10-BoldItalic]
- \stoptypescript
-
- % This will change some day.
-
- \starttypescript [math] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [eufm10]
- \definefontsynonym [Blackboard] [msbm10]
- \definefontsynonym [Gothic] [eufm10]
- \definefontsynonym [Calligraphic] [cmsy10]
- \stoptypescript
-
- \starttypescript [fallback] [texnansi,ec,qx,t5,default]
- \definetypeface [] [rm] [serif] [modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [] [ss] [sans] [modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [] [tt] [mono] [modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [] [mm] [math] [modern] [computer-modern] [encoding=\typescripttwo]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [modern] [texnansi,ec,qx,t5,default]
- \definetypeface [modern] [rm] [serif] [modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [modern] [ss] [sans] [modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [modern] [tt] [mono] [modern] [computer-modern] [encoding=\typescripttwo]
- \definetypeface [modern] [mm] [math] [modern] [computer-modern] [encoding=\typescripttwo]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [modern-base] [texnansi,ec,qx,t5,default]
- \definetypeface [modern] [rm] [serif] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [modern] [ss] [sans] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [modern] [tt] [mono] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [modern] [mm] [math] [modern] [default] [encoding=\typescripttwo]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [modern-base] [t2a,t2b,t2c,x2]
- \definetypeface [modern] [rm] [serif] [computer-modern] [default] [encoding=\typescripttwo]
- \definetypeface [modern] [ss] [sans] [computer-modern] [default] [encoding=\typescripttwo]
- \definetypeface [modern] [tt] [mono] [computer-modern] [default] [encoding=\typescripttwo]
- \definetypeface [modern] [mm] [math] [computer-modern] [default] [encoding=\typescripttwo]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [modernvariable] [texnansi,ec,qx,8r,t5]
- \definetypeface [modernvariable] [rm] [serif] [simple] [default] [encoding=\typescripttwo]
- \definetypeface [modernvariable] [ss] [sans] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [modernvariable] [tt] [mono] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [modernvariable] [mm] [math] [modern] [default]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [serif] [simple] [name] % bad, will be changed but in sycn with manuals that use it
- \definefontsynonym [Simple] [cmvtt10]
- \setupfontsynonym [Simple] [handling=pure]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[concrete]
-
- \starttypescript [serif] [concrete] [name]
- \definefontsynonym [Serif] [ComputerConcrete]
- \definefontsynonym [SerifBold] [ComputerConcrete]
- \definefontsynonym [SerifItalic] [ComputerConcrete-Italic]
- \definefontsynonym [SerifSlanted] [ComputerConcrete-Slanted]
- \definefontsynonym [SerifBoldItalic] [ComputerConcrete-Italic]
- \definefontsynonym [SerifBoldSlanted] [ComputerConcrete-Slanted]
- \definefontsynonym [SerifCaps] [ComputerConcrete-Caps]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[euler]
-
- \starttypescript [math] [euler] [default]
- \definefontsynonym [Euler-Roman] [zeurm10]
- \definefontsynonym [Euler-Extension] [zeuex10]
- \definefontsynonym [Euler-Symbol] [zeusm10]
- \definefontsynonym [Euler-Fraktur] [eufm10]
- \usemathcollection[eul]
- \loadmapfile[original-ams-euler.map]
- \stoptypescript
-
- \starttypescript [boldmath,bfmath] [euler] [default]
- \definefontsynonym [Euler-Roman-Bold] [zeurb10]
- \definefontsynonym [Euler-Extension] [zeuex10]
- \definefontsynonym [Euler-Symbol-Bold] [zeusb10]
- \definefontsynonym [Euler-Fraktur-Bold] [eufb10]
- \usemathcollection[eul]
- \loadmapfile[original-ams-euler.map]
- \stoptypescript
-
- \starttypescript [math] [euler] [name]
- \definefontsynonym [MathRoman] [Euler-Roman] % mr
- \definefontsynonym [MathItalic] [Euler-Fraktur] % mi
- \definefontsynonym [MathExtension] [Euler-Extension] % ex
- \definefontsynonym [MathSymbol] [Euler-Symbol] % sy
- \stoptypescript
-
- \starttypescript [boldmath] [euler] [name]
- \definefontsynonym [MathRoman] [Euler-Roman-Bold] % mr
- \definefontsynonym [MathItalic] [Euler-Fraktur-Bold] % mi
- \definefontsynonym [MathExtension] [Euler-Extension] % ex
- \definefontsynonym [MathSymbol] [Euler-Symbol-Bold] % sy
- \stoptypescript
-
- \starttypescript [bfmath] [euler] [name]
- \definefontsynonym [MathRomanBold] [Euler-Roman-Bold] % mr
- \definefontsynonym [MathItalicBold] [Euler-Fraktur-Bold] % mi
- \definefontsynonym [MathExtension] [Euler-Extension] % ex
- \definefontsynonym [MathSymbolBold] [Euler-Symbol-Bold] % sy
- \stoptypescript
-
- \starttypescript [math] [euler] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [MathItalic]
- \definefontsynonym [Gothic] [MathItalic]
- \definefontsynonym [Calligraphic] [MathSymbol]
- \stoptypescript
-
- \starttypescript [boldmath] [euler] [name]
- \definefontsynonym [OldStyle] [MathItalicBold]
- \definefontsynonym [Fraktur] [MathItalicBold]
- \definefontsynonym [Gothic] [MathItalicBold]
- \definefontsynonym [Calligraphic] [MathSymbolBold]
- \stoptypescript
-
- \starttypescript [math,boldmath,bfmath] [euler] [name]
- \usemathcollection[eul]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[amssymbols]
-
- \starttypescript [math] [modern,computer-modern,latin-modern,ams] [default]
- \definefontsynonym [AMS-SymbolA] [msam10]
- \definefontsynonym [AMS-SymbolB] [msbm10]
- \usemathcollection[default]
- \stoptypescript
-
- \starttypescript [math] [modern,computer-modern,latin-modern,ams] [name]
- \definefontsynonym [MathAlpha] [AMS-SymbolA]
- \definefontsynonym [MathBeta] [AMS-SymbolB]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[utopia]
-
- \starttypescript [math] [fourier] [default,ec]
- \definefontsynonym [Fourier-Math-Letters] [futr8t] [encoding=ec]
- %definefontsynonym [Fourier-Math-Letters] [futmi]
- \definefontsynonym [Fourier-Math-Letters-Italic] [futmii]
- \definefontsynonym [Fourier-Math-Symbols] [futsy]
- \definefontsynonym [Fourier-Math-Extension] [fourier-mex]
- \usemathcollection[fou]
- \loadmapfile[fourier.map]
- \stoptypescript
-
- \starttypescript [serif] [utopia] [name]
- \definefontsynonym [Serif] [Utopia-Regular]
- \definefontsynonym [SerifItalic] [Utopia-Italic]
- \definefontsynonym [SerifBold] [Utopia-Bold]
- \definefontsynonym [SerifBoldItalic] [Utopia-BoldItalic]
- \definefontsynonym [SerifSlanted] [Utopia-Slanted]
- \definefontsynonym [SerifBoldSlanted] [Utopia-BoldSlanted]
- \definefontsynonym [SerifCaps] [Utopia-Regular-Caps]
- \stoptypescript
-
- \starttypescript [serif] [fourier] [ec]
- \definefontsynonym [Fourier-Regular] [futr8t] [encoding=ec]
- \definefontsynonym [Fourier-Slanted] [futro8t] [encoding=ec]
- \definefontsynonym [Fourier-Italic] [futri8t] [encoding=ec]
- \definefontsynonym [Fourier-RegularCaps] [futrc8t] [encoding=ec]
- \definefontsynonym [Fourier-Bold] [futb8t] [encoding=ec]
- \definefontsynonym [Fourier-BoldSlanted] [futbo8t] [encoding=ec]
- \definefontsynonym [Fourier-BoldItalic] [futbi8t] [encoding=ec]
- \definefontsynonym [Fourier-BoldCaps] [futbc8t] [encoding=ec]
- \definefontsynonym [Fourier-Regular-Expert] [futr9e] [encoding=ec]
- \definefontsynonym [Fourier-Slanted-Expert] [futro9e] [encoding=ec]
- \definefontsynonym [Fourier-Italic-Expert] [futri9e] [encoding=ec]
- \definefontsynonym [Fourier-RegularCaps-Expert] [futrc9e] [encoding=ec]
- \definefontsynonym [Fourier-Semi-Expert] [futs9e] [encoding=ec]
- \definefontsynonym [Fourier-SemiSlanted-Expert] [futso9e] [encoding=ec]
- \definefontsynonym [Fourier-SemiItalic-Expert] [futsi9e] [encoding=ec]
- \definefontsynonym [Fourier-SemiCaps-Expert] [futsc9e] [encoding=ec]
- \definefontsynonym [Fourier-Bold-Expert] [futb9e] [encoding=ec]
- \definefontsynonym [Fourier-BoldSlanted-Expert] [futbo9e] [encoding=ec]
- \definefontsynonym [Fourier-BoldItalic-Expert] [futbi9e] [encoding=ec]
- \definefontsynonym [Fourier-Black-Expert] [futc9e] [encoding=ec]
- \definefontsynonym [Fourier-Regular-OldStyle] [futr9d] [encoding=ec]
- \definefontsynonym [Fourier-Slanted-OldStyle] [futro9d] [encoding=ec]
- \definefontsynonym [Fourier-Italic-OldStyle] [futri9d] [encoding=ec]
- \definefontsynonym [Fourier-RegularCaps-OldStyle] [futrc9d] [encoding=ec]
- \definefontsynonym [Fourier-Semi-OldStyle] [futs9d] [encoding=ec]
- \definefontsynonym [Fourier-SemiSlanted-OldStyle] [futso9d] [encoding=ec]
- \definefontsynonym [Fourier-SemiItalic-OldStyle] [futsi9d] [encoding=ec]
- \definefontsynonym [Fourier-SemiCaps-OldStyle] [futsc9d] [encoding=ec]
- \definefontsynonym [Fourier-Bold-OldStyle] [futb9d] [encoding=ec]
- \definefontsynonym [Fourier-BoldSlanted-OldStyle] [futbo9d] [encoding=ec]
- \definefontsynonym [Fourier-BoldItalic-OldStyle] [futbi9d] [encoding=ec]
- \definefontsynonym [Fourier-Black-OldStyle] [futc9d] [encoding=ec]
- \loadmapfile[fourier.map]
- \loadmapfile[fourier-utopia-expert.map]
- \stoptypescript
-
- \starttypescript [serif] [fourier] [name]
- \definefontsynonym [Serif] [Fourier-Regular]
- \definefontsynonym [SerifSlanted] [Fourier-Slanted]
- \definefontsynonym [SerifItalic] [Fourier-Italic]
- \definefontsynonym [SerifCaps] [Fourier-RegularCaps]
- \definefontsynonym [SerifBold] [Fourier-Bold]
- \definefontsynonym [SerifBoldSlanted] [Fourier-BoldSlanted]
- \definefontsynonym [SerifBoldItalic] [Fourier-BoldItalic]
- \definefontsynonym [SerifBoldCaps] [Fourier-BoldCaps]
-
- \definefontsynonym [Serif-Expert] [Fourier-Regular-Expert]
- \definefontsynonym [SerifSlanted-Expert] [Fourier-Slanted-Expert]
- \definefontsynonym [SerifItalic-Expert] [Fourier-Italic-Expert]
- \definefontsynonym [SerifCaps-Expert] [Fourier-RegularCaps-Expert]
- \definefontsynonym [SerifSemiBold-Expert] [Fourier-Semi-Expert]
- \definefontsynonym [SerifSemiSlanted-Expert] [Fourier-SemiSlanted-Expert]
- \definefontsynonym [SerifSemiItalic-Expert] [Fourier-SemiItalic-Expert]
- \definefontsynonym [SerifSemiCaps-Expert] [Fourier-SemiCaps-Expert]
- \definefontsynonym [SerifBold-Expert] [Fourier-Bold-Expert]
- \definefontsynonym [SerifBoldSlanted-Expert] [Fourier-BoldSlanted-Expert]
- \definefontsynonym [SerifBoldItalic-Expert] [Fourier-BoldItalic-Expert]
- \definefontsynonym [SerifBlack-Expert] [Fourier-Black-Expert]
-
- \definefontsynonym [Serif-OldStyle] [Fourier-Regular-OldStyle]
- \definefontsynonym [SerifSlanted-OldStyle] [Fourier-Slanted-OldStyle]
- \definefontsynonym [SerifItalic-OldStyle] [Fourier-Italic-OldStyle]
- \definefontsynonym [SerifCaps-OldStyle] [Fourier-RegularCaps-OldStyle]
- \definefontsynonym [SerifSemiBold-OldStyle] [Fourier-Semi-OldStyle]
- \definefontsynonym [SerifSemiSlanted-OldStyle] [Fourier-SemiSlanted-OldStyle]
- \definefontsynonym [SerifSemiItalic-OldStyle] [Fourier-SemiItalic-OldStyle]
- \definefontsynonym [SerifSemiCaps-OldStyle] [Fourier-SemiCaps-OldStyle]
- \definefontsynonym [SerifBold-OldStyle] [Fourier-Bold-OldStyle]
- \definefontsynonym [SerifBoldSlanted-OldStyle] [Fourier-BoldSlanted-OldStyle]
- \definefontsynonym [SerifBoldItalic-OldStyle] [Fourier-BoldItalic-OldStyle]
- \definefontsynonym [SerifBlack-OldStyle] [Fourier-Black-OldStyle]
- \definefontsynonym [SerifBlackSlanted-OldStyle] [Fourier-BlackSlanted-OldStyle]
- \stoptypescript
-
- \starttypescript [math] [fourier] [name]
- \definefontsynonym [MathRoman] [Fourier-Math-Letters]
- \definefontsynonym [MathItalic] [Fourier-Math-Letters-Italic]
- \definefontsynonym [MathSymbol] [Fourier-Math-Symbols]
- \definefontsynonym [MathExtension] [Fourier-Math-Extension]
- \stoptypescript
-
- \starttypescript [math] [fourier] [name] % todo
- \definefontsynonym [OldStyle] [Serif-OldStyle] % strange, no oldstyles
- \definefontsynonym [Fraktur] [eufm10]
- \definefontsynonym [Blackboard] [msbm10]
- \definefontsynonym [Gothic] [eufm10]
- \definefontsynonym [Calligraphic] [eusm10]
- \stoptypescript
-
- \starttypescript [serif] [utopia] [ec,texnansi]
- \definefontsynonym [Utopia-Regular] [\typescriptthree-putr8a] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-Italic] [\typescriptthree-putri8a] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-Bold] [\typescriptthree-putb8a] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-BoldItalic] [\typescriptthree-putbi8a] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-Slanted] [\typescriptthree-putr8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-BoldSlanted] [\typescriptthree-putb8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Utopia-Regular-Caps][\typescriptthree-putr8a-capitalized-800] [encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-adobe-utopia.map]
- \stoptypescript
-
- \starttypescript [fourier] [ec]
- \definetypeface [fourier] [rm] [serif] [fourier] [default] [encoding=ec]
- \definetypeface [fourier] [ss] [sans] [modern] [default] [encoding=ec,rscale=1.07]
- \definetypeface [fourier] [tt] [mono] [modern] [default] [encoding=ec,rscale=1.07]
- \definetypeface [fourier] [mm] [math] [fourier] [default] [encoding=default]
- \quittypescriptscanning
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[antykwa]
-
- % Antykwa Torunska (GUST)
-
- % \starttypescript [serif] [antykwa-torunska] [texnansi,ec,8r]
- % \definefontsynonym [AntykwaTorunska-Regular] [\typescriptthree-anttr] [encoding=\typescriptthree]
- % \definefontsynonym [AntykwaTorunska-Bold] [\typescriptthree-anttb] [encoding=\typescriptthree]
- % \definefontsynonym [AntykwaTorunska-Italic] [\typescriptthree-anttri] [encoding=\typescriptthree]
- % \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [texnansi,qx,t5,ec,t2a,t2b,t2c,greek]
- \definefontsynonym [AntykwaTorunska-Regular] [\typescriptthree-anttr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Italic] [\typescriptthree-anttri] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Bold] [\typescriptthree-anttb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-BoldItalic] [\typescriptthree-anttbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Light] [\typescriptthree-anttl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightItalic] [\typescriptthree-anttli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Medium] [\typescriptthree-anttm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MedItalic] [\typescriptthree-anttmi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondRegular] [\typescriptthree-anttcr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondItalic] [\typescriptthree-anttcri] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBold] [\typescriptthree-anttcb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldItalic] [\typescriptthree-anttcbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLight] [\typescriptthree-anttcl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightItalic][\typescriptthree-anttcli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedium] [\typescriptthree-anttcm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedItalic] [\typescriptthree-anttcmi] [encoding=\typescriptthree]
- \loadmapfile[antt-\typescriptthree.map]
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [texnansi,qx,t5,ec]
- \definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttrcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttricap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-BoldCap] [\typescriptthree-anttbcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttlcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttlicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttmcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcrcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcricap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldCap] [\typescriptthree-anttcbcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttclcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttclicap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcmcap] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmicap] [encoding=\typescriptthree]
- \loadmapfile[antt-\typescriptthree.map]
- \stoptypescript
-
- % duplicates ? ?
- % atl: no: fallbacks for the named variants
-
- \starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [t2a,t2b,t2c,greek]
- \definefontsynonym [AntykwaTorunska-BoldCap] [\typescriptthree-anttb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttri] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldCap] [\typescriptthree-anttcb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttcl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttcli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcri] [encoding=\typescriptthree]
- \loadmapfile[antt-\typescriptthree.map]
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [t2a,t2b,t2c]
- \definefontsynonym [AntykwaTorunska-BoldCap] [\typescriptthree-anttb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-BoldItalicCap] [\typescriptthree-anttbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightCap] [\typescriptthree-anttl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-LightItalicCap] [\typescriptthree-anttli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MediumCap] [\typescriptthree-anttm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-MedItalicCap] [\typescriptthree-anttmi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-Cap] [\typescriptthree-anttr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-ItalicCap] [\typescriptthree-anttri] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldCap] [\typescriptthree-anttcb] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\typescriptthree-anttcbi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightCap] [\typescriptthree-anttcl] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondLightItalicCap][\typescriptthree-anttcli] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMediumCap] [\typescriptthree-anttcm] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\typescriptthree-anttcmi] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondCap] [\typescriptthree-anttcr] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaTorunska-CondItalicCap] [\typescriptthree-anttcri] [encoding=\typescriptthree]
- \loadmapfile[antt-\typescriptthree.map]
- \stoptypescript
-
- % mabye no -Regular etc
- % dunny reverse of condlight lightcond
-
- \starttypescript [math] [antykwa-torunska] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-Regular] [rm-anttr]
- \definefontsynonym [AntykwaTorunska-Math-Letters-Italic] [mi-anttri]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-Regular] [sy-anttrz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-Regular] [ex-anttr]
- \stoptypescript
-
- \starttypescript [math] [antykwa-torunska-light] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-Light] [rm-anttl]
- \definefontsynonym [AntykwaTorunska-Math-Letters-LightItalic] [mi-anttli]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-Light] [sy-anttlz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-Light] [ex-anttl]
- \stoptypescript
-
- \starttypescript [math] [antykwa-torunska-cond] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondRegular] [rm-anttcr]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondItalic] [mi-anttcri]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-CondRegular] [sy-anttcrz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-CondRegular] [ex-anttcr]
- \stoptypescript
-
- \starttypescript [math] [antykwa-torunska-lightcond] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondLight] [rm-anttcl]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondLightItalic] [mi-anttcli]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-CondLight] [sy-anttclz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-CondLight] [ex-anttcl]
- \stoptypescript
-
- \starttypescript [math] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond] [default]
- \usemathcollection[default]
- \loadmapfile[antt-rm.map]
- \loadmapfile[antt-mi.map]
- \loadmapfile[antt-sy.map]
- \loadmapfile[antt-ex.map]
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska] [name]
- \definefontsynonym [Serif] [AntykwaTorunska-Regular]
- \definefontsynonym [SerifBold] [AntykwaTorunska-Bold]
- \definefontsynonym [SerifItalic] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifSlanted] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifCaps] [AntykwaTorunska-Cap]
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska-light] [name]
- \definefontsynonym [Serif] [AntykwaTorunska-Light]
- \definefontsynonym [SerifBold] [AntykwaTorunska-Medium]
- \definefontsynonym [SerifItalic] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifSlanted] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifCaps] [AntykwaTorunska-LightCap]
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska-cond] [name]
- \definefontsynonym [Serif] [AntykwaTorunska-CondRegular]
- \definefontsynonym [SerifBold] [AntykwaTorunska-CondBold]
- \definefontsynonym [SerifItalic] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifSlanted] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifCaps] [AntykwaTorunska-CondCap]
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska-lightcond] [name]
- \definefontsynonym [Serif] [AntykwaTorunska-CondLight]
- \definefontsynonym [SerifBold] [AntykwaTorunska-CondMedium]
- \definefontsynonym [SerifItalic] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifSlanted] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifCaps] [AntykwaTorunska-CondLightCap]
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-Cap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-BoldCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-ItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-ItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-BoldItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-BoldItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-Cap]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegularLight] [AntykwaTorunska-Light]
- \definefontsynonym [SerifBoldLight] [AntykwaTorunska-Medium]
- \definefontsynonym [SerifItalicLight] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifSlantedLight] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifBoldItalicLight] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifBoldSlantedLight] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifCapsLight] [AntykwaTorunska-LightCap]
-
- \definefontvariant [Serif][lt][Light]
-
- \definefontsynonym [SerifRegularCond] [AntykwaTorunska-CondRegular]
- \definefontsynonym [SerifBoldCond] [AntykwaTorunska-CondBold]
- \definefontsynonym [SerifItalicCond] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifSlantedCond] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifBoldItalicCond] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifBoldSlantedCond] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifCapsCond] [AntykwaTorunska-CondCap]
-
- \definefontvariant [Serif][cond][Cond]
-
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska-light] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-LightCap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-MediumCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-LightItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-LightItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-MedItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-MedItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-LightCap]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegularDark] [AntykwaTorunska-Regular]
- \definefontsynonym [SerifBoldDark] [AntykwaTorunska-Bold]
- \definefontsynonym [SerifItalicDark] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifSlantedDark] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifBoldItalicDark] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifBoldSlantedDark] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifCapsDark] [AntykwaTorunska-Cap]
-
- \definefontvariant [Serif][dk][Dark]
-
- \definefontsynonym [SerifRegularCond] [AntykwaTorunska-CondLight]
- \definefontsynonym [SerifBoldCond] [AntykwaTorunska-CondMedium]
- \definefontsynonym [SerifItalicCond] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifSlantedCond] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifBoldItalicCond] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifBoldSlantedCond] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifCapsCond] [AntykwaTorunska-CondLightCap]
-
- \definefontvariant [Serif][cond][Cond]
-
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska-cond] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-CondCap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-CondBoldCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-CondItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-CondItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-CondBoldItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-CondBoldItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-CondCap]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegularLight] [AntykwaTorunska-CondLight]
- \definefontsynonym [SerifBoldLight] [AntykwaTorunska-CondMedium]
- \definefontsynonym [SerifItalicLight] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifSlantedLight] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifBoldItalicLight] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifBoldSlantedLight] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifCapsLight] [AntykwaTorunska-CondLightCap]
-
- \definefontvariant [Serif][lt][Light]
-
- \definefontsynonym [SerifRegularExp] [AntykwaTorunska-Regular]
- \definefontsynonym [SerifBoldExp] [AntykwaTorunska-Bold]
- \definefontsynonym [SerifItalicExp] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifSlantedExp] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifBoldItalicExp] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifBoldSlantedExp] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifCapsExp] [AntykwaTorunska-Cap]
-
- \definefontvariant [Serif][exp][Exp]
-
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska-lightcond] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-CondLightCap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-CondMediumCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-CondLightItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-CondLightItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-CondMedItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-CondMedItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-CondLightCap]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegularDark] [AntykwaTorunska-CondRegular]
- \definefontsynonym [SerifBoldDark] [AntykwaTorunska-CondBold]
- \definefontsynonym [SerifItalicDark] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifSlantedDark] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifBoldItalicDark] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifBoldSlantedDark] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifCapsDark] [AntykwaTorunska-CondCap]
-
- \definefontvariant [Serif][dk][Dark]
-
- \definefontsynonym [SerifRegularExp] [AntykwaTorunska-Light]
- \definefontsynonym [SerifBoldExp] [AntykwaTorunska-Medium]
- \definefontsynonym [SerifItalicExp] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifSlantedExp] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifBoldItalicExp] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifBoldSlantedExp] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifCapsExp] [AntykwaTorunska-LightCap]
-
- \definefontvariant [Serif][exp][Exp]
-
- \stoptypescript
-
- % maybe no -Regular etc
-
- \starttypescript [math] [antykwa-torunska-light] [name]
- \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-Light]
- \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-LightItalic]
- \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-Light]
- \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-Light]
- \stoptypescript
-
- \starttypescript [math] [antykwa-torunska] [name]
- \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-Regular]
- \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-Italic]
- \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-Regular]
- \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-Regular]
- \stoptypescript
-
- \starttypescript [math] [antykwa-torunska-cond] [name]
- \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-CondRegular]
- \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-CondItalic]
- \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-CondRegular]
- \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-CondRegular]
- \stoptypescript
-
- \starttypescript [math] [antykwa-torunska-lightcond] [name]
- \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-CondLight]
- \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-CondLightItalic]
- \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-CondLight]
- \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-CondLight]
- \stoptypescript
-
- \starttypescript [antykwa-torunska] [texnansi,ec,8r,uc,t5,t2a]
- \definetypeface[antykwa][rm][serif][antykwa-torunska] [default][encoding=\typescripttwo]
- \definetypeface[antykwa][ss][sans] [modern] [default][encoding=\typescripttwo,rscale=1.05]
- \definetypeface[antykwa][tt][mono] [modern] [default][encoding=\typescripttwo,rscale=1.1]
- \definetypeface[antykwa][mm][math] [antykwa-torunska] [default][encoding=\typescripttwo]
- \quittypescriptscanning
- \stoptypescript
-
- % Antykwa Poltawskiego (GUST)
-
- \starttypescript [serif] [antykwa-poltawskiego,antykwa-poltawskiego-light] [ec,texnansi,qx,t5]
-
- \definefontsynonym [AntykwaPoltawskiego-Condensed-Light] [\typescriptthree-antpl17] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-LightItalic] [\typescriptthree-antpli17] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-Regular] [\typescriptthree-antpr17] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-Italic] [\typescriptthree-antpri17] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-Medium] [\typescriptthree-antpm17] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-MediumItalic] [\typescriptthree-antpmi17] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-Bold] [\typescriptthree-antpb17] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-BoldItalic] [\typescriptthree-antpbi17] [encoding=\typescriptthree]
-
- \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsLight] [\typescriptthree-antpl17-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsLightItalic] [\typescriptthree-antpli17-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsRegular] [\typescriptthree-antpr17-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsItalic] [\typescriptthree-antpri17-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsMedium] [\typescriptthree-antpm17-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsMediumItalic] [\typescriptthree-antpmi17-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsBold] [\typescriptthree-antpb17-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsBoldItalic] [\typescriptthree-antpbi17-sc] [encoding=\typescriptthree]
-
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Regular] [\typescriptthree-antpl12] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Italic] [\typescriptthree-antpli12] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Regular] [\typescriptthree-antpr12] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Italic] [\typescriptthree-antpri12] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Medium] [\typescriptthree-antpm12] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-MediumItalic] [\typescriptthree-antpmi12] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Bold] [\typescriptthree-antpb12] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-BoldItalic] [\typescriptthree-antpbi12] [encoding=\typescriptthree]
-
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsRegular] [\typescriptthree-antpl12-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsItalic] [\typescriptthree-antpli12-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsRegular] [\typescriptthree-antpr12-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsItalic] [\typescriptthree-antpri12-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsMedium] [\typescriptthree-antpm12-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsMediumItalic] [\typescriptthree-antpmi12-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsBold] [\typescriptthree-antpb12-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsBoldItalic] [\typescriptthree-antpbi12-sc] [encoding=\typescriptthree]
-
- \definefontsynonym [AntykwaPoltawskiego-Light] [\typescriptthree-antpl10] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-LightItalic] [\typescriptthree-antpli10] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Regular] [\typescriptthree-antpr10] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Italic] [\typescriptthree-antpri10] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Medium] [\typescriptthree-antpm10] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-MediumItalic] [\typescriptthree-antpmi10] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Bold] [\typescriptthree-antpb10] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [\typescriptthree-antpbi10] [encoding=\typescriptthree]
-
- \definefontsynonym [AntykwaPoltawskiego-CapsLight] [\typescriptthree-antpl10-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-CapsLightItalic] [\typescriptthree-antpli10-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-CapsRegular] [\typescriptthree-antpr10-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-CapsItalic] [\typescriptthree-antpri10-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-CapsMedium] [\typescriptthree-antpm10-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-CapsMediumItalic] [\typescriptthree-antpmi10-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-CapsBold] [\typescriptthree-antpb10-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-CapsBoldItalic] [\typescriptthree-antpbi10-sc] [encoding=\typescriptthree]
-
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-Light] [\typescriptthree-antpl8] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-LightItalic] [\typescriptthree-antpli8] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-Regular] [\typescriptthree-antpr8] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-Italic] [\typescriptthree-antpri8] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-Medium] [\typescriptthree-antpm8] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-MediumItalic] [\typescriptthree-antpmi8] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-Bold] [\typescriptthree-antpb8] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-BoldItalic] [\typescriptthree-antpbi8] [encoding=\typescriptthree]
-
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsLight] [\typescriptthree-antpl8-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsLightItalic] [\typescriptthree-antpli8-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsRegular] [\typescriptthree-antpr8-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsItalic] [\typescriptthree-antpri8-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsMedium] [\typescriptthree-antpm8-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsMediumItalic] [\typescriptthree-antpmi8-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsBold] [\typescriptthree-antpb8-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsBoldItalic] [\typescriptthree-antpbi8-sc] [encoding=\typescriptthree]
-
- \definefontsynonym [AntykwaPoltawskiego-Expanded-Light] [\typescriptthree-antpl6] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-LightItalic] [\typescriptthree-antpli6] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-Regular] [\typescriptthree-antpr6] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-Italic] [\typescriptthree-antpri6] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-Medium] [\typescriptthree-antpm6] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-MediumItalic] [\typescriptthree-antpmi6] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-Bold] [\typescriptthree-antpb6] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-BoldItalic] [\typescriptthree-antpbi6] [encoding=\typescriptthree]
-
- \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsLight] [\typescriptthree-antpl6-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsLightItalic] [\typescriptthree-antpli6-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsRegular] [\typescriptthree-antpr6-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsItalic] [\typescriptthree-antpri6-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsMedium] [\typescriptthree-antpm6-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsMediumItalic] [\typescriptthree-antpmi6-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsBold] [\typescriptthree-antpb6-sc] [encoding=\typescriptthree]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsBoldItalic] [\typescriptthree-antpbi6-sc] [encoding=\typescriptthree]
-
- % \loadmapfile[poltawski-\typescriptthree.map]
- \loadmapfile[ap-\typescriptthree.map]
- \stoptypescript
-
- \starttypescript [serif] [antykwa-poltawskiego] [name]
- \definefontsynonym [Serif] [AntykwaPoltawskiego-Regular]
- \definefontsynonym [SerifBold] [AntykwaPoltawskiego-Bold]
- \definefontsynonym [SerifItalic] [AntykwaPoltawskiego-Italic]
- \definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-Italic]
- \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-BoldItalic]
- \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-CapsRegular]
- \stoptypescript
-
- \starttypescript [serif] [antykwa-poltawskiego-light] [name]
- \definefontsynonym [Serif] [AntykwaPoltawskiego-Light]
- \definefontsynonym [SerifBold] [AntykwaPoltawskiego-Medium]
- \definefontsynonym [SerifItalic] [AntykwaPoltawskiego-LightItalic]
- \definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-LightItalic]
- \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-MediumItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-MediumItalic]
- \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-CapsLight]
- \stoptypescript
-
- % condensed and extended variants are still missing
-
- \starttypescript [antykwa-poltawskiego,antykwa-poltawskiego-light] [ec,texnansi,qx,t5]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo,rscale=1.05] % scaling?
- \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.05] % scaling?
- \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=\typescripttwo,rscale=1.05] % scaling?
- \quittypescriptscanning
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[iwona]
-
- % maybe this will change in Iwona-Math-Letters and Iwona-Math-Letters-Italic
-
- \starttypescript [sans] [iwona-light,iwona,iwona-medium,iwona-heavy,iwona-light-cond,iwona-cond,iwona-medium-cond,iwona-heavy-cond] [texnansi,ec,el,qx,t5]
- \definefontsynonym[Iwona-Regular] [\typescriptthree-iwonar] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Italic] [\typescriptthree-iwonari] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Bold] [\typescriptthree-iwonab] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-BoldItalic] [\typescriptthree-iwonabi] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Light-Regular] [\typescriptthree-iwonal] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Light-Italic] [\typescriptthree-iwonali] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Medium-Regular] [\typescriptthree-iwonam] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Medium-Italic] [\typescriptthree-iwonami] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Heavy-Regular] [\typescriptthree-iwonah] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-Heavy-Italic] [\typescriptthree-iwonahi] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsRegular] [\typescriptthree-iwonar-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsItalic] [\typescriptthree-iwonari-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsBold] [\typescriptthree-iwonab-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsBoldItalic] [\typescriptthree-iwonabi-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsLight-Regular] [\typescriptthree-iwonal-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsLight-Italic] [\typescriptthree-iwonali-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsMedium-Regular] [\typescriptthree-iwonam-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsMedium-Italic] [\typescriptthree-iwonami-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsHeavy-Regular] [\typescriptthree-iwonah-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsHeavy-Italic] [\typescriptthree-iwonahi-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondRegular] [\typescriptthree-iwonacr] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondItalic] [\typescriptthree-iwonacri] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondBold] [\typescriptthree-iwonacb] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondBoldItalic] [\typescriptthree-iwonacbi] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondLight-Regular] [\typescriptthree-iwonacl] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondLight-Italic] [\typescriptthree-iwonacli] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondMedium-Regular] [\typescriptthree-iwonacm] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondMedium-Italic] [\typescriptthree-iwonacmi] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondHeavy-Regular] [\typescriptthree-iwonach] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CondHeavy-Italic] [\typescriptthree-iwonachi] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondRegular] [\typescriptthree-iwonacr-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondItalic] [\typescriptthree-iwonacri-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondBold] [\typescriptthree-iwonacb-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondBoldItalic] [\typescriptthree-iwonacbi-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondLight-Regular] [\typescriptthree-iwonacl-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondLight-Italic] [\typescriptthree-iwonacli-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondMedium-Regular][\typescriptthree-iwonacm-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondMedium-Italic] [\typescriptthree-iwonacmi-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondHeavy-Regular] [\typescriptthree-iwonach-sc] [encoding=\typescriptthree]
- \definefontsynonym[Iwona-CapsCondHeavy-Italic] [\typescriptthree-iwonachi-sc] [encoding=\typescriptthree]
- \loadmapfile[iwona-\typescriptthree.map]
- \stoptypescript
-
- \starttypescript [math] [iwona] [default]
- \definefontsynonym [Iwona-Math-Letters-Regular] [rm-iwonar]
- \definefontsynonym [Iwona-Math-Letters-Italic] [mi-iwonari]
- \definefontsynonym [Iwona-Math-Symbols-Regular] [sy-iwonarz]
- \definefontsynonym [Iwona-Math-Extension-Regular] [ex-iwonar]
- \stoptypescript
-
- \starttypescript [math] [iwona-light] [default]
- \definefontsynonym [Iwona-Math-Letters-Light-Regular] [rm-iwonal]
- \definefontsynonym [Iwona-Math-Letters-Light-Italic] [mi-iwonali]
- \definefontsynonym [Iwona-Math-Symbols-Light] [sy-iwonalz]
- \definefontsynonym [Iwona-Math-Extension-Light] [ex-iwonal]
- \stoptypescript
-
- \starttypescript [math] [iwona-medium] [default]
- \definefontsynonym [Iwona-Math-Letters-Medium-Regular][rm-iwonam]
- \definefontsynonym [Iwona-Math-Letters-Medium-Italic] [mi-iwonami]
- \definefontsynonym [Iwona-Math-Symbols-Medium] [sy-iwonamz]
- \definefontsynonym [Iwona-Math-Extension-Medium] [ex-iwonam]
- \stoptypescript
-
- \starttypescript [math] [iwona-heavy] [default]
- \definefontsynonym [Iwona-Math-Letters-Heavy-Regular] [rm-iwonah]
- \definefontsynonym [Iwona-Math-Letters-Heavy-Italic] [mi-iwonahi]
- \definefontsynonym [Iwona-Math-Symbols-Heavy] [sy-iwonahz]
- \definefontsynonym [Iwona-Math-Extension-Heavy] [ex-iwonah]
- \stoptypescript
-
- \starttypescript [math] [iwona,iwona-light,iwona-medium,iwona-heavy] [default]
- \usemathcollection[default]
- \loadmapfile[iwona-rm.map]
- \loadmapfile[iwona-mi.map]
- \loadmapfile[iwona-sy.map]
- \loadmapfile[iwona-ex.map]
- \stoptypescript
-
- \starttypescript [sans] [iwona-light] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Light-Regular]
- \definefontsynonym [SansItalic] [Iwona-Light-Italic]
- \definefontsynonym [SansBold] [Iwona-Medium-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-Medium-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsLight]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsLightItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsMedium]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsMediumItalic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-light-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsLight-Regular]
- \definefontsynonym [SansItalic] [Iwona-CapsLight-Italic]
- \definefontsynonym [SansBold] [Iwona-CapsMedium-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsMedium-Italic]
- \stoptypescript
-
- \starttypescript [sans] [iwona] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Regular]
- \definefontsynonym [SansItalic] [Iwona-Italic]
- \definefontsynonym [SansBold] [Iwona-Bold]
- \definefontsynonym [SansBoldItalic] [Iwona-BoldItalic]
- \definefontsynonym [SansCaps] [Iwona-CapsRegular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsBold]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsBoldItalic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsRegular]
- \definefontsynonym [SansItalic] [Iwona-CapsItalic]
- \definefontsynonym [SansBold] [Iwona-CapsBold]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsBoldItalic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-medium] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Medium-Regular]
- \definefontsynonym [SansItalic] [Iwona-Medium-Italic]
- \definefontsynonym [SansBold] [Iwona-Heavy-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-Heavy-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsMedium-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-medium-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansItalic] [Iwona-CapsMedium-Italic]
- \definefontsynonym [SansBold] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsHeavy-Italic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-heavy] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Heavy-Regular]
- \definefontsynonym [SansItalic] [Iwona-Heavy-Italic]
- \definefontsynonym [SansBold] [Iwona-Heavy-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-Heavy-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavy-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-heavy-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavy-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-light-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondLight-Regular]
- \definefontsynonym [SansItalic] [Iwona-CondLight-Italic]
- \definefontsynonym [SansBold] [Iwona-CondMedium-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CondMedium-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsCondLight-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsCondLight-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsCondMedium-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondMedium-Italic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-light-cond-caps,iwona-light-caps-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsCondLight-Regular]
- \definefontsynonym [SansItalic] [Iwona-CapsCondLight-Italic]
- \definefontsynonym [SansBold] [Iwona-CapsCondMedium-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsCondMedium-Italic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondRegular]
- \definefontsynonym [SansItalic] [Iwona-CondItalic]
- \definefontsynonym [SansBold] [Iwona-CondBold]
- \definefontsynonym [SansBoldItalic] [Iwona-CondBoldItalic]
- \definefontsynonym [SansCaps] [Iwona-CapsCondRegular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsCondItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsCondBold]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondBoldItalic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-cond-caps,iwona-caps-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsCondRegular]
- \definefontsynonym [SansItalic] [Iwona-CapsCondItalic]
- \definefontsynonym [SansBold] [Iwona-CapsCondBold]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsCondBoldItalic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-medium-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondMedium-Regular]
- \definefontsynonym [SansItalic] [Iwona-CondMedium-Italic]
- \definefontsynonym [SansBold] [Iwona-CondHeavy-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CondHeavy-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsCondHeavy-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsCondMedium-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsCondHeavy-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondHeavy-Italic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-medium-cond-caps,iwona-medium-caps-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsCondHeavy-Regular]
- \definefontsynonym [SansItalic] [Iwona-CapsCondMedium-Italic]
- \definefontsynonym [SansBold] [Iwona-CapsCondHeavy-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsCondHeavy-Italic]
- \stoptypescript
-
- \starttypescript [math] [iwona-light] [name]
- \definefontsynonym [MathRoman] [Iwona-Math-Letters-Light-Regular]
- \definefontsynonym [MathItalic] [Iwona-Math-Letters-Light-Italic]
- \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Light]
- \definefontsynonym [MathExtension] [Iwona-Math-Extension-Light]
- \stoptypescript
-
- \starttypescript [math] [iwona] [name]
- \definefontsynonym [MathRoman] [Iwona-Math-Letters-Regular]
- \definefontsynonym [MathItalic] [Iwona-Math-Letters-Italic]
- \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Regular]
- \definefontsynonym [MathExtension] [Iwona-Math-Extension-Regular]
- \stoptypescript
-
- \starttypescript [math] [iwona-medium] [name]
- \definefontsynonym [MathRoman] [Iwona-Math-Letters-Medium-Regular]
- \definefontsynonym [MathItalic] [Iwona-Math-Letters-Medium-Italic]
- \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Medium]
- \definefontsynonym [MathExtension] [Iwona-Math-Extension-Medium]
- \stoptypescript
-
- \starttypescript [math] [iwona-heavy] [name]
- \definefontsynonym [MathRoman] [Iwona-Math-Letters-Heavy-Regular]
- \definefontsynonym [MathItalic] [Iwona-Math-Letters-Heavy-Italic]
- \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Heavy]
- \definefontsynonym [MathExtension] [Iwona-Math-Extension-Heavy]
- \stoptypescript
-
- \starttypescript [iwona,iwona-light,iwona-heavy,iwona-medium] [texnansi,ec,8r,uc,t2a]
- \definetypeface[\typescriptone][ss][sans] [\typescriptone] [default][encoding=\typescripttwo]
- \definetypeface[\typescriptone][rm][serif][modern] [default][encoding=\typescripttwo]
- \definetypeface[\typescriptone][tt][mono] [modern] [default][encoding=\typescripttwo]
- \definetypeface[\typescriptone][mm][math] [\typescriptone] [default][encoding=\typescripttwo,text=ss]
- \quittypescriptscanning
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[kurier]
-
- \starttypescript [sans] [kurier-light,kurier,kurier-medium] [texnansi,ec,qx,t5]
- \definefontsynonym[Kurier-Regular] [\typescriptthree-kurierr] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Italic] [\typescriptthree-kurierri] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-RegularItalic] [Kurier-Italic]
- \definefontsynonym[Kurier-Bold] [\typescriptthree-kurierb] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-BoldItalic] [\typescriptthree-kurierbi] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Light] [\typescriptthree-kurierl] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-LightItalic] [\typescriptthree-kurierli] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Medium] [\typescriptthree-kurierm] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-MediumItalic] [\typescriptthree-kuriermi] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-Heavy] [\typescriptthree-kurierh] [encoding=\typescriptthree]
- \definefontsynonym[Kurier-HeavyItalic] [\typescriptthree-kurierhi] [encoding=\typescriptthree]
- \loadmapfile[kurier-\typescriptthree.map]
- \stoptypescript
-
- \starttypescript [math] [kurier] [default]
- \definefontsynonym [Kurier-Math-Letters-Regular] [rm-kurierr]
- \definefontsynonym [Kurier-Math-Letters-Italic] [mi-kurierri]
- \definefontsynonym [Kurier-Math-Symbols-Regular] [sy-kurierrz]
- \definefontsynonym [Kurier-Math-Extension-Regular] [ex-kurierr]
- \stoptypescript
-
- \starttypescript [math] [kurier-light] [default]
- \definefontsynonym [Kurier-Math-Letters-Light-Regular] [rm-kurierl]
- \definefontsynonym [Kurier-Math-Letters-Light-Italic] [mi-kurierli]
- \definefontsynonym [Kurier-Math-Symbols-Light] [sy-kurierlz]
- \definefontsynonym [Kurier-Math-Extension-Light] [ex-kurierl]
- \stoptypescript
-
- \starttypescript [math] [kurier-medium] [default]
- \definefontsynonym [Kurier-Math-Letters-Medium-Regular][rm-kurierm]
- \definefontsynonym [Kurier-Math-Letters-Medium-Italic] [mi-kuriermi]
- \definefontsynonym [Kurier-Math-Symbols-Medium] [sy-kuriermz]
- \definefontsynonym [Kurier-Math-Extension-medium] [ex-kurierm]
- \stoptypescript
-
- \starttypescript [math] [kurier,kurier-light,kurier-medium] [default]
- \usemathcollection[default]
- \loadmapfile[kurier-rm.map]
- \loadmapfile[kurier-mi.map]
- \loadmapfile[kurier-sy.map]
- \loadmapfile[kurier-ex.map]
- \stoptypescript
-
- \starttypescript [sans] [kurier-light] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Kurier-Light-Regular]
- \definefontsynonym [SansItalic] [Kurier-Light-Italic]
- \definefontsynonym [SansBold] [Kurier-Medium-Regular]
- \definefontsynonym [SansBoldItalic] [Kurier-Medium-Italic]
- \stoptypescript
-
- \starttypescript [sans] [kurier] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Kurier-Regular]
- \definefontsynonym [SansItalic] [Kurier-Italic]
- \definefontsynonym [SansBold] [Kurier-Bold]
- \definefontsynonym [SansBoldItalic] [Kurier-BoldItalic]
- \stoptypescript
-
- \starttypescript [sans] [kurier-medium] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Kurier-Medium-Regular]
- \definefontsynonym [SansItalic] [Kurier-Medium-Italic]
- \definefontsynonym [SansBold] [Kurier-Heavy-Regular]
- \definefontsynonym [SansBoldItalic] [Kurier-Heavy-Italic]
- \stoptypescript
-
- \starttypescript [math] [kurier-light] [name]
- \definefontsynonym [MathRoman] [Kurier-Math-Letters-Light-Regular]
- \definefontsynonym [MathItalic] [Kurier-Math-Letters-Light-Italic]
- \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Light]
- \definefontsynonym [MathExtension] [Kurier-Math-Extension-Light]
- \stoptypescript
-
- \starttypescript [math] [kurier] [name]
- \definefontsynonym [MathRoman] [Kurier-Math-Letters-Regular]
- \definefontsynonym [MathItalic] [Kurier-Math-Letters-Italic]
- \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Regular]
- \definefontsynonym [MathExtension] [Kurier-Math-Extension-Regular]
- \stoptypescript
-
- \starttypescript [math] [kurier-medium] [name]
- \definefontsynonym [MathRoman] [Kurier-Math-Letters-Medium-Regular]
- \definefontsynonym [MathItalic] [Kurier-Math-Letters-Medium-Italic]
- \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Medium]
- \definefontsynonym [MathExtension] [Kurier-Math-Extension-Medium]
- \stoptypescript
-
- \starttypescript [kurier-light,kurier,kurier-medium] [texnansi,ec,qx,t5]
- \definetypeface[\typescriptone][ss][sans] [\typescriptone] [default][encoding=\typescripttwo]
- \definetypeface[\typescriptone][rm][serif][modern] [default][encoding=\typescripttwo]
- \definetypeface[\typescriptone][tt][mono] [modern] [default][encoding=\typescripttwo,rscale=1.05]
- \definetypeface[\typescriptone][mm][math] [\typescriptone] [default][encoding=\typescripttwo,text=ss]
- \quittypescriptscanning
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[charter]
-
- \starttypescript [serif] [charter] [ec,texnansi,8r]
- \definefontsynonym [Charter-Roman] [\typescriptthree-bchr8a] [encoding=\typescriptthree]
- \definefontsynonym [Charter-Italic] [\typescriptthree-bchri8a] [encoding=\typescriptthree]
- \definefontsynonym [Charter-Bold] [\typescriptthree-bchb8a] [encoding=\typescriptthree]
- \definefontsynonym [Charter-BoldItalic] [\typescriptthree-bchbi8a] [encoding=\typescriptthree]
- \definefontsynonym [Charter-Slanted] [\typescriptthree-bchr8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Charter-BoldSlanted][\typescriptthree-bchb8a-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Charter-Roman-Caps] [\typescriptthree-bchr8a-capitalized-800] [encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-bitstrea-charter.map]
- \stoptypescript
-
- \starttypescript [serif] [charter] [name]
- \definefontsynonym [Serif] [Charter-Roman]
- \definefontsynonym [SerifItalic] [Charter-Italic]
- \definefontsynonym [SerifBold] [Charter-Bold]
- \definefontsynonym [SerifBoldItalic] [Charter-BoldItalic]
- \definefontsynonym [SerifSlanted] [Charter-Slanted]
- \definefontsynonym [SerifBoldSlanted] [Charter-BoldSlanted]
- \definefontsynonym [SerifCaps] [Charter-Roman-Caps]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[symbols]
-
- \starttypescript
- \definefontsynonym [ZapfDingbats] [uzdr]
- \definefontsynonym [RalfSmithFormalScript] [rsfs10]
- \definefontsynonym [MartinVogel] [umvs]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[texgyre]
-
- \definetypescriptprefix [f:pagella] [pl] \definetypescriptprefix [f:palatino] [pl]
- \definetypescriptprefix [f:termes] [tm] \definetypescriptprefix [f:times] [tm]
- \definetypescriptprefix [f:heros] [hv] \definetypescriptprefix [f:helvetica] [hv]
- \definetypescriptprefix [f:bonum] [bk] \definetypescriptprefix [f:bookman] [bk]
- \definetypescriptprefix [f:schola] [cs] \definetypescriptprefix [f:schoolbook] [cs]
- \definetypescriptprefix [f:adventor][ag] %definetypescriptprefix [f:adventor] [ag]
- \definetypescriptprefix [f:cursor] [cr] \definetypescriptprefix [f:courier] [cr]
- \definetypescriptprefix [f:chorus] [zc] \definetypescriptprefix [f:chancery] [zc] % not the full set
-
- \starttypescript [serif,sans,mono] [pagella,palatino,termes,times,adventor,bonum,bookman,cursor,courier,heros,helvetica,schola,schoolbook] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}r] [encoding=\typescriptthree]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Italic] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}ri] [encoding=\typescriptthree]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Bold] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}b] [encoding=\typescriptthree]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalic] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}bi] [encoding=\typescriptthree]
- \loadmapfile[q\typescriptprefix{f:\typescripttwo}-\typescriptthree.map]
- \stoptypescript
-
- \starttypescript [serif,sans,mono] [pagella,palatino,termes,times,adventor,bonum,bookman,cursor,courier,heros,helvetica,schola,schoolbook] [ec,texnansi,cs,qx,rm,t5,l7x]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Caps] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}r-sc] [encoding=\typescriptthree]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-ItalicCaps] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}ri-sc] [encoding=\typescriptthree]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldCaps] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}b-sc] [encoding=\typescriptthree]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps] [\typescriptthree-q\typescriptprefix{f:\typescripttwo}bi-sc] [encoding=\typescriptthree]
- \loadmapfile[q\typescriptprefix{f:\typescripttwo}-\typescriptthree.map]
- \stoptypescript
-
- \starttypescript [serif,calligraphy] [chorus,chancery] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definefontsynonym [TeXGyreChorus-MediumItalic] [\typescriptthree-qzcmi] [encoding=\typescriptthree]
- \loadmapfile[qzc-\typescriptthree.map]
- \stoptypescript
-
- \definetypescriptprefix [n:pagella] [TeXGyrePagella] \definetypescriptprefix [n:palatino] [TeXGyrePagella]
- \definetypescriptprefix [n:termes] [TeXGyreTermes] \definetypescriptprefix [n:times] [TeXGyreTermes]
- \definetypescriptprefix [n:heros] [TeXGyreHeros] \definetypescriptprefix [n:helvetica] [TeXGyreHeros]
- \definetypescriptprefix [n:bonum] [TeXGyreBonum] \definetypescriptprefix [n:bookman] [TeXGyreBonum]
- \definetypescriptprefix [n:schola] [TeXGyreSchola] \definetypescriptprefix [n:schoolbook] [TeXGyreSchola]
- \definetypescriptprefix [n:adventor] [TeXGyreAdventor] %definetypescriptprefix [n:adventor] [TeXGyreAdventor]
- \definetypescriptprefix [n:cursor] [TeXGyreCursor] \definetypescriptprefix [n:courier] [TeXGyreCursor]
- \definetypescriptprefix [n:chorus] [TeXGyreChorus] \definetypescriptprefix [n:chancery] [TeXGyreChorus] % not the full set
-
- \starttypescript [serif] [pagella,palatino,termes,times,bonum,bookman,schola,schoolbook] [name]
- \definefontsynonym [Serif] [\typescriptprefix{n:\typescripttwo}-Regular]
- \definefontsynonym [SerifItalic] [\typescriptprefix{n:\typescripttwo}-Italic]
- \definefontsynonym [SerifBold] [\typescriptprefix{n:\typescripttwo}-Bold]
- \definefontsynonym [SerifBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic]
- \definefontsynonym [SerifSlanted] [SerifItalic]
- \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
- \definefontsynonym [SerifCaps] [\typescriptprefix{n:\typescripttwo}-Caps]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [SerifCaps]
- \definefontsynonym [SerifItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps]
- \definefontsynonym [SerifBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps]
- \definefontsynonym [SerifBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps]
- \definefontsynonym [SerifSlantedCaps] [SerifItalicCaps]
- \definefontsynonym [SerifBoldSlantedCaps] [SerifBoldItalicCaps]
- \definefontsynonym [SerifCapsCaps] [SerifCaps]
- \stoptypescript
-
- \starttypescript [serif] [chorus,chancery] [name]
- \definefontsynonym [SerifMediumItalic] [TeXGyreChorus-MediumItalic]
- \definefontsynonym [Serif] [SerifMediumItalic]
- \definefontsynonym [SerifItalic] [SerifMediumItalic]
- \definefontsynonym [SerifBold] [SerifMediumItalic]
- \definefontsynonym [SerifBoldItalic] [SerifMediumItalic]
- \definefontsynonym [SerifSlanted] [SerifMediumItalic]
- \definefontsynonym [SerifBoldSlanted] [SerifMediumItalic]
- \definefontsynonym [SerifCaps] [SerifMediumItalic]
- \stoptypescript
-
- \starttypescript [calligraphy] [chorus,chancery] [name]
- \definefontsynonym [Calligraphy] [TeXGyreChorus-MediumItalic]
- \stoptypescript
-
- \starttypescript [sans] [heros,helvetica,adventor] [name]
- \definefontsynonym [Sans] [\typescriptprefix{n:\typescripttwo}-Regular]
- \definefontsynonym [SansItalic] [\typescriptprefix{n:\typescripttwo}-Italic]
- \definefontsynonym [SansBold] [\typescriptprefix{n:\typescripttwo}-Bold]
- \definefontsynonym [SansBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic]
- \definefontsynonym [SansSlanted] [SansItalic]
- \definefontsynonym [SansBoldSlanted] [SansBoldItalic]
- \definefontsynonym [SansCaps] [\typescriptprefix{n:\typescripttwo}-Caps]
-
- \definefontvariant [Sans][osf][Caps]
- \definefontvariant [Sans][sc] [Caps]
-
- \definefontsynonym [SansRegular] [Sans]
- \definefontsynonym [SansRegularCaps] [SansCaps]
- \definefontsynonym [SansItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps]
- \definefontsynonym [SansBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps]
- \definefontsynonym [SansBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps]
- \definefontsynonym [SansSlantedCaps] [SansItalicCaps]
- \definefontsynonym [SansBoldSlantedCaps] [SansBoldItalicCaps]
- \definefontsynonym [SansCapsCaps] [SansCaps]
- \stoptypescript
-
- \starttypescript [mono] [cursor,courier] [name]
- \definefontsynonym [Mono] [\typescriptprefix{n:\typescripttwo}-Regular]
- \definefontsynonym [MonoItalic] [\typescriptprefix{n:\typescripttwo}-Italic]
- \definefontsynonym [MonoBold] [\typescriptprefix{n:\typescripttwo}-Bold]
- \definefontsynonym [MonoBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic]
- \definefontsynonym [MonoSlanted] [MonoItalic]
- \definefontsynonym [MonoBoldSlanted] [MonoBoldItalic]
-
- \definefontvariant [Mono][osf][Caps]
- \definefontvariant [Mono][sc] [Caps]
-
- \definefontsynonym [MonoRegular] [Mono]
- \definefontsynonym [MonoRegularCaps] [MonoCaps]
- \definefontsynonym [MonoItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps]
- \definefontsynonym [MonoBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps]
- \definefontsynonym [MonoBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps]
- \definefontsynonym [MonoSlantedCaps] [MonoItalicCaps]
- \definefontsynonym [MonoBoldSlantedCaps] [MonoBoldItalicCaps]
- \definefontsynonym [MonoCapsCaps] [MonoCaps]
- \stoptypescript
-
- % bonus definitions
-
- % when these fonts are in tex live ...
- %
- % \definefontsynonym [Palatino-Caps] [TeXPalladioL-SC] [encoding=\typescriptthree]
- %
- % \starttypescript [serif] [palatino] [ec,texnansi]
- % \definefontsynonym[TeXPalladioL-BoldItalicOsF][\typescriptthree-fplbij8a][encoding=\typescriptthree]
- % \definefontsynonym[TeXPalladioL-BoldOsF] [\typescriptthree-fplbj8a] [encoding=\typescriptthree]
- % \definefontsynonym[TeXPalladioL-SC] [\typescriptthree-fplrc8a] [encoding=\typescriptthree]
- % \definefontsynonym[TeXPalladioL-ItalicOsF] [\typescriptthree-fplrij8a][encoding=\typescriptthree]
- % \loadmapfile[\typescriptthree-urw-palatino.map]
- % \stoptypescript
-
- % Faces:
-
- \starttypescript [times,termes] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [ss] [sans] [helvetica] [default] [encoding=\typescripttwo,rscale=0.9]
- \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.05]
- \definetypeface [\typescriptone] [mm] [math] [times] [default] [encoding=\typescripttwo]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [palatino,pagella] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo,rscale=1.075]
- \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.075]
- \definetypeface [\typescriptone] [mm] [math] [palatino] [default] [encoding=default]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [schoolbook,schola] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [bookman,bonum] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [chancery,chorus] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [helvetica,heros] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [rm] [serif] [modern] [default] [encoding=\typescripttwo,rscale=1.15]
- \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.15]
- \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default,rscale=1.15]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [avantgarde,adventor] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definetypeface [\typescriptone] [ss] [sans] [adventor] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [rm] [serif] [modern] [default] [encoding=\typescripttwo,rscale=1.15]
- \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [encoding=\typescripttwo,rscale=1.15]
- \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [courier,cursor] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definetypeface [\typescriptone] [tt] [mono] [\typescriptone] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [rm] [serif] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [encoding=\typescripttwo]
- \definetypeface [\typescriptone] [mm] [math] [modern] [default] [encoding=default]
- \quittypescriptscanning
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[xmath]
-
- \starttypescript [math] [palatino] [all]
- \definefontsynonym [Palatino-Roman-Upright] [pxr]
- \definefontsynonym [Palatino-Roman-Italic] [pxi]
- \definefontsynonym [Palatino-Roman-Slanted] [pxsl]
- \definefontsynonym [Palatino-Roman-Caps] [pxsc]
- \definefontsynonym [Palatino-Companion-Upright] [pcxr]
- \definefontsynonym [Palatino-Companion-Italic] [pcxi]
- \definefontsynonym [Palatino-Companion-Slanted] [pcxsl]
- \definefontsynonym [Palatino-Math-Italic] [pxmi]
- \definefontsynonym [Palatino-Math-Symbols] [pxsy]
- \definefontsynonym [Palatino-Math-Extension] [pxex]
- \definefontsynonym [Palatino-Math-SymbolsA] [pxsya]
- \definefontsynonym [Palatino-Math-SymbolsB] [pxsyb]
- \definefontsynonym [Palatino-Math-SymbolsC] [pxsyc]
- \definefontsynonym [Palatino-Math-Italic-A] [pxmia]
- \definefontsynonym [Palatino-Math-Extension-A] [pxexa]
- \usemathcollection[default]
- \loadmapfile[original-youngryu-px.map]
- \stoptypescript
-
- \starttypescript [math] [times] [all]
- \definefontsynonym [Times-Roman-Upright] [txr]
- \definefontsynonym [Times-Roman-Italic] [txi]
- \definefontsynonym [Times-Roman-Slanted] [txsl]
- \definefontsynonym [Times-Roman-Caps] [txsc]
- \definefontsynonym [Times-Companion-Upright] [tcxr]
- \definefontsynonym [Times-Companion-Italic] [tcxi]
- \definefontsynonym [Times-Companion-Slanted] [tcxsl]
- \definefontsynonym [Times-Math-Italic] [txmi]
- \definefontsynonym [Times-Math-Symbols] [txsy]
- \definefontsynonym [Times-Math-Extension] [txex]
- \definefontsynonym [Times-Math-SymbolsA] [txsya]
- \definefontsynonym [Times-Math-SymbolsB] [txsyb]
- \definefontsynonym [Times-Math-SymbolsC] [txsyc]
- \definefontsynonym [Times-Math-Italic-A] [txmia]
- \definefontsynonym [Times-Math-Extension-A] [txexa]
- \usemathcollection[default]
- \loadmapfile[original-youngryu-tx.map]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[pregyre]
-
- %D These are just fallbacks in case anyone stil uses the
- %D old names (might also be removed?).
-
- % TeXGyrePagella
-
- \starttypescript [serif] [palatino]
- \definefontsynonym [Palatino] [TeXGyrePagella-Regular]
- \definefontsynonym [Palatino-Italic] [TeXGyrePagella-Italic]
- \definefontsynonym [Palatino-Bold] [TeXGyrePagella-Bold]
- \definefontsynonym [Palatino-BoldItalic] [TeXGyrePagella-BoldItalic]
- \definefontsynonym [Palatino-Slanted] [TeXGyrePagella-Italic]
- \definefontsynonym [Palatino-BoldSlanted] [TeXGyrePagella-BoldItalic]
- \definefontsynonym [Palatino-Caps] [TeXGyrePagella-Caps]
- \stoptypescript
-
- \starttypescript [serif] [palatino] [name]
- \definefontsynonym [Serif] [Palatino]
- \definefontsynonym [SerifBold] [Palatino-Bold]
- \definefontsynonym [SerifItalic] [Palatino-Italic]
- \definefontsynonym [SerifSlanted] [Palatino-Slanted]
- \definefontsynonym [SerifBoldItalic] [Palatino-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [Palatino-BoldSlanted]
- \definefontsynonym [SerifCaps] [Palatino-Caps]
- \stoptypescript
-
- \starttypescript [math] [palatino] [name]
- \definefontsynonym [MathRoman] [Palatino-Roman-Upright]
- \definefontsynonym [MathExtension] [Palatino-Math-Extension]
- \definefontsynonym [MathItalic] [Palatino-Math-Italic]
- \definefontsynonym [MathSymbol] [Palatino-Math-Symbols]
- \definefontsynonym [MathAlpha] [Palatino-Math-SymbolsA]
- \definefontsynonym [MathBeta] [Palatino-Math-SymbolsB]
- \stoptypescript
-
- \starttypescript [math] [palatino] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [eufm10]
- \definefontsynonym [Blackboard] [MathBeta]
- \definefontsynonym [Gothic] [eufm10]
- \definefontsynonym [Calligraphic] [eusm10]
- \stoptypescript
-
- % TeXGyreTermes
-
- \starttypescript [serif] [times]
- \definefontsynonym [Times-Roman] [TeXGyreTermes-Regular]
- \definefontsynonym [Times-Italic] [TeXGyreTermes-Italic]
- \definefontsynonym [Times-Bold] [TeXGyreTermes-Bold]
- \definefontsynonym [Times-BoldItalic] [TeXGyreTermes-BoldItalic]
- \definefontsynonym [Times-Slanted] [TeXGyreTermes-Italic]
- \definefontsynonym [Times-BoldSlanted] [TeXGyreTermes-BoldItalic]
- \definefontsynonym [Times-Caps] [TeXGyreTermes-Caps]
- \stoptypescript
-
- \starttypescript [serif] [times] [name]
- \definefontsynonym [Serif] [Times-Roman]
- \definefontsynonym [SerifBold] [Times-Bold]
- \definefontsynonym [SerifItalic] [Times-Italic]
- \definefontsynonym [SerifSlanted] [Times-Italic]
- \definefontsynonym [SerifBoldItalic] [Times-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [Times-BoldItalic]
- \definefontsynonym [SerifCaps] [Times-Caps]
- \stoptypescript
-
- \starttypescript [math] [times] [name]
- \definefontsynonym [MathRoman] [Times-Roman-Upright]
- \definefontsynonym [MathExtension] [Times-Math-Extension]
- \definefontsynonym [MathItalic] [Times-Math-Italic]
- \definefontsynonym [MathSymbol] [Times-Math-Symbols]
- \definefontsynonym [MathAlpha] [Times-Math-SymbolsA]
- \definefontsynonym [MathBeta] [Times-Math-SymbolsB]
- \stoptypescript
-
- \starttypescript [math] [times] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [eufm10]
- \definefontsynonym [Blackboard] [MathBeta]
- \definefontsynonym [Gothic] [eufm10]
- \definefontsynonym [Calligraphic] [eusm10]
- \stoptypescript
-
- % TeXGyreHeros
-
- \starttypescript [sans] [helvetica]
- \definefontsynonym [Helvetica] [TeXGyreHeros-Regular]
- \definefontsynonym [Helvetica-Oblique] [TeXGyreHeros-Italic]
- \definefontsynonym [Helvetica-Bold] [TeXGyreHeros-Bold]
- \definefontsynonym [Helvetica-BoldOblique] [TeXGyreHeros-BoldItalic]
- \definefontsynonym [Helvetica-Caps] [TeXGyreHeros-Caps]
- \stoptypescript
-
- \starttypescript [sans] [helvetica] [name]
- \definefontsynonym [Sans] [Helvetica]
- \definefontsynonym [SansBold] [Helvetica-Bold]
- \definefontsynonym [SansItalic] [Helvetica-Oblique]
- \definefontsynonym [SansSlanted] [Helvetica-Oblique]
- \definefontsynonym [SansBoldItalic] [Helvetica-BoldOblique]
- \definefontsynonym [SansBoldSlanted] [Helvetica-BoldOblique]
- \definefontsynonym [SansCaps] [Helvetica-Caps]
- \stoptypescript
-
- \starttypescript [math] [helvetica] [name]
- \definefontsynonym [MathRoman] [Helvetica-MathRoman]
- \definefontsynonym [MathExtension] [Helvetica-MathExtendedSymbols]
- \definefontsynonym [MathItalic] [Helvetica-MathItalics]
- \definefontsynonym [MathSymbol] [Helvetica-MathSymbols]
- \stoptypescript
-
- % TeXGyreBonum
-
- \starttypescript [serif] [bookman]
- \definefontsynonym [Bookman-Light] [TeXGyreBonum-Regular]
- \definefontsynonym [Bookman-LightItalic] [TeXGyreBonum-Italic]
- \definefontsynonym [Bookman-DemiBold] [TeXGyreBonum-Bold]
- \definefontsynonym [Bookman-DemiBoldItalic] [TeXGyreBonum-BoldItalic]
- \definefontsynonym [Bookman-LightSlanted] [TeXGyreBonum-Italic]
- \definefontsynonym [Bookman-DemiBoldSlanted] [TeXGyreBonum-BoldItalic]
- \definefontsynonym [Bookman-Light-Caps] [TeXGyreBonum-Caps]
- \stoptypescript
-
- \starttypescript [serif] [bookman] [name]
- \definefontsynonym [Serif] [Bookman-Light]
- \definefontsynonym [SerifItalic] [Bookman-LightItalic]
- \definefontsynonym [SerifBold] [Bookman-DemiBold]
- \definefontsynonym [SerifBoldItalic] [Bookman-DemiBoldItalic]
- \definefontsynonym [SerifSlanted] [Bookman-LightSlanted]
- \definefontsynonym [SerifBoldSlanted] [Bookman-DemiBoldSlanted]
- \definefontsynonym [SerifCaps] [Bookman-Light-Caps]
- \stoptypescript
-
- % TeXGyreScola
-
- \starttypescript [serif] [schoolbook]
- \definefontsynonym [Schoolbook-Roman] [TeXGyreScola-Regular]
- \definefontsynonym [Schoolbook-Italic] [TeXGyreScola-Italic]
- \definefontsynonym [Schoolbook-Bold] [TeXGyreScola-Bold]
- \definefontsynonym [Schoolbook-BoldItalic] [TeXGyreScola-BoldItalic]
- \definefontsynonym [Schoolbook-Slanted] [TeXGyreScola-Italic]
- \definefontsynonym [Schoolbook-BoldSlanted] [TeXGyreScola-BoldItalic]
- \definefontsynonym [Schoolbook-Roman-Caps] [TeXGyreScola-Caps]
- \stoptypescript
-
- \starttypescript [serif] [schoolbook] [name]
- \definefontsynonym [Serif] [Schoolbook-Roman]
- \definefontsynonym [SerifItalic] [Schoolbook-Italic]
- \definefontsynonym [SerifBold] [Schoolbook-Bold]
- \definefontsynonym [SerifBoldItalic] [Schoolbook-BoldItalic]
- \definefontsynonym [SerifSlanted] [Schoolbook-RomanSlanted]
- \definefontsynonym [SerifBoldSlanted] [Schoolbook-BoldSlanted]
- \definefontsynonym [SerifCaps] [Schoolbook-Roman-Caps]
- \stoptypescript
-
- % TeXGyreAdventor
-
- % TeXGyreCursor
-
- \starttypescript [mono] [courier]
- \definefontsynonym [Courier] [TeXGyreCursor-Regular]
- \definefontsynonym [Courier-Bold] [TeXGyreCursor-Bold]
- \definefontsynonym [Courier-Oblique] [TeXGyreCursor-Italic]
- \definefontsynonym [Courier-BoldOblique] [TeXGyreCursor-BoldItalic]
- \fakecontrolspace
- \stoptypescript
-
- \starttypescript [mono] [courier] [name]
- \definefontsynonym [Mono] [Courier]
- \definefontsynonym [MonoBold] [Courier-Bold]
- \definefontsynonym [MonoItalic] [Courier-Oblique]
- \definefontsynonym [MonoSlanted] [Courier-Oblique]
- \definefontsynonym [MonoBoldItalic] [Courier-BoldOblique]
- \definefontsynonym [MonoBoldSlanted] [Courier-BoldOblique]
- \definefontsynonym [MonoCaps] [Courier]
- \stoptypescript
-
- % TeXGyreChorus
-
- \starttypescript [calligraphy] [chancery]
- \definefontsynonym [Chancery] [TeXGyreChorus-MediumItalic]
- \stoptypescript
-
- \starttypescript [calligraphy] [chancery] [name]
- \definefontsynonym [Calligraphy] [Chancery]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[Lucida]
-
- % We can remove the intermediate names as no one will use them.
-
- \definetypescriptprefix [e:ec] [8t]
- \definetypescriptprefix [e:texnansi] [8y]
- \definetypescriptprefix [e:8r] [8r]
-
- % Lucida Bright
-
- \starttypescript [serif] [lucida] [ec,texnansi,8r]
- \definefontsynonym [\typescriptthree-lbr] [hlhr\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaBright
- \definefontsynonym [\typescriptthree-lbd] [hlhb\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaBright-Demi
- \definefontsynonym [\typescriptthree-lbi] [hlhri\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaBright-Italic
- \definefontsynonym [\typescriptthree-lbdi] [hlhbi\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaBright-DemiItalic
- \definefontsynonym [\typescriptthree-lbsl] [hlhro\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaBright-Oblique
- \definefontsynonym [\typescriptthree-lbrsc] [hlhrc\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaBrightSmallcaps
- \definefontsynonym [\typescriptthree-lbdsc] [hlhbc\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaBrightSmallcaps-Demi
-
- \definefontsynonym [LucidaBright] [\typescriptthree-lbr] [encoding=\typescriptthree]
- \definefontsynonym [LucidaBright-Demi] [\typescriptthree-lbd] [encoding=\typescriptthree]
- \definefontsynonym [LucidaBright-Italic] [\typescriptthree-lbi] [encoding=\typescriptthree]
- \definefontsynonym [LucidaBright-DemiItalic] [\typescriptthree-lbdi] [encoding=\typescriptthree]
- \definefontsynonym [LucidaBright-Oblique] [\typescriptthree-lbsl] [encoding=\typescriptthree]
- \definefontsynonym [LucidaBrightSmallcaps] [\typescriptthree-lbrsc] [encoding=\typescriptthree]
- \definefontsynonym [LucidaBrightSmallcaps-Demi] [\typescriptthree-lbdsc] [encoding=\typescriptthree]
-
- \loadmapfile[lucida.map]
- \stoptypescript
-
- % Lucida Bright Sans
-
- \starttypescript [sans] [lucida] [ec,texnansi,8r]
- \definefontsynonym [\typescriptthree-lsr] [hlsr\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans
- \definefontsynonym [\typescriptthree-lsd] [hlsb\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-Demi
- \definefontsynonym [\typescriptthree-lsb] [hlsu\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-Bold
- \definefontsynonym [\typescriptthree-lsi] [hlsri\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-Italic
- \definefontsynonym [\typescriptthree-lsdi] [hlsbi\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-DemiItalic
- \definefontsynonym [\typescriptthree-lsbi] [hlsui\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-BoldItalic
-
- \definefontsynonym [LucidaSans] [\typescriptthree-lsr] [encoding=\typescriptthree]
- \definefontsynonym [LucidaSans-Demi] [\typescriptthree-lsd] [encoding=\typescriptthree]
- \definefontsynonym [LucidaSans-Bold] [\typescriptthree-lsb] [encoding=\typescriptthree]
- \definefontsynonym [LucidaSans-Italic] [\typescriptthree-lsi] [encoding=\typescriptthree]
- \definefontsynonym [LucidaSans-DemiItalic] [\typescriptthree-lsdi] [encoding=\typescriptthree]
- \definefontsynonym [LucidaSans-BoldItalic] [\typescriptthree-lsbi] [encoding=\typescriptthree]
-
- \loadmapfile[lucida.map]
- \stoptypescript
-
- % Lucida Bright Typewriter
-
- \starttypescript [mono] [lucida] [ec,texnansi,8r]
- \definefontsynonym [\typescriptthree-lbtr] [hlcrt\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaTypewriter
- \definefontsynonym [\typescriptthree-lbtb] [hlcbt\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaTypewriterBold
- \definefontsynonym [\typescriptthree-lbto] [hlcrot\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaTypewriterOblique
- \definefontsynonym [\typescriptthree-lbtbo] [hlcbot\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaTypewriterBoldOblique
-
- \definefontsynonym [LucidaTypewriter] [\typescriptthree-lbtr] [encoding=\typescriptthree]
- \definefontsynonym [LucidaTypewriterBold] [\typescriptthree-lbtb] [encoding=\typescriptthree]
- \definefontsynonym [LucidaTypewriterOblique] [\typescriptthree-lbto] [encoding=\typescriptthree]
- \definefontsynonym [LucidaTypewriterBoldOblique] [\typescriptthree-lbtbo] [encoding=\typescriptthree]
-
- \loadmapfile[lucida.map]
- \stoptypescript
-
- % Lucida Bright Sans Typewriter
-
- \starttypescript [mono] [lucida] [ec,texnansi,8r]
- \definefontsynonym [\typescriptthree-lstr] [hlsrt\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-Typewriter
- \definefontsynonym [\typescriptthree-lstb] [hlsbt\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-TypewriterBold
- \definefontsynonym [\typescriptthree-lsto] [hlsrot\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-TypewriterOblique
- \definefontsynonym [\typescriptthree-lstbo] [hlsbot\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaSans-TypewriterBoldOblique
-
- \definefontsynonym [LucidaSans-Typewriter] [\typescriptthree-lstr] [encoding=\typescriptthree]
- \definefontsynonym [LucidaSans-TypewriterBold] [\typescriptthree-lstb] [encoding=\typescriptthree]
- \definefontsynonym [LucidaSans-TypewriterOblique] [\typescriptthree-lsto] [encoding=\typescriptthree]
- \definefontsynonym [LucidaSans-TypewriterBoldOblique] [\typescriptthree-lstbo] [encoding=\typescriptthree]
-
- \loadmapfile[lucida.map]
- \stoptypescript
-
- % Lucida Calligraphy
-
- \starttypescript [calligraphy] [lucida] [texnansi,ec,8r]
- \definefontsynonym [\typescriptthree-lbc] [hlcrie\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaCalligraphy-Italic
-
- \definefontsynonym [LucidaCalligraphy-Italic] [\typescriptthree-lbc] [encoding=\typescriptthree]
-
- \loadmapfile[lucida.map]
- \stoptypescript
-
- % Lucida Casual
-
- \starttypescript [casual] [lucida] [texnansi,ec,8r]
- \definefontsynonym [\typescriptthree-lbkr] [hlcrn\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaCasual
- \definefontsynonym [\typescriptthree-lbki] [hlcrin\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaCasual-Italic
-
- \definefontsynonym [LucidaCasual] [\typescriptthree-lbkr] [encoding=\typescriptthree]
- \definefontsynonym [LucidaCasual-Italic] [\typescriptthree-lbki] [encoding=\typescriptthree]
-
- \loadmapfile[lucida.map]
- \stoptypescript
-
- % Lucida Handwriting
-
- \starttypescript [handwriting] [lucida] [texnansi,ec,8r]
- \definefontsynonym [\typescriptthree-lbh] [hlcriw\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaHandwriting-Italic
-
- \definefontsynonym [LucidaHandwriting-Italic] [\typescriptthree-lbh] [encoding=\typescriptthree]
-
- \loadmapfile[lucida.map]
- \stoptypescript
-
- % Lucida Fax
-
- \starttypescript [fax] [lucida] [texnansi,ec,8r]
- \definefontsynonym [\typescriptthree-lfr] [hlxr\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaFax
- \definefontsynonym [\typescriptthree-lfd] [hlxb\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaFax-Demi
- \definefontsynonym [\typescriptthree-lfi] [hlxri\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaFax-Italic
- \definefontsynonym [\typescriptthree-lfdi] [hlxbi\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaFax-DemiItalic
-
- \definefontsynonym [LucidaFax] [\typescriptthree-lfr] [encoding=\typescriptthree] % LucidaFax
- \definefontsynonym [LucidaFax-Demi] [\typescriptthree-lfd] [encoding=\typescriptthree] % LucidaFax-Demi
- \definefontsynonym [LucidaFax-Italic] [\typescriptthree-lfi] [encoding=\typescriptthree] % LucidaFax-Italic
- \definefontsynonym [LucidaFax-DemiItalic] [\typescriptthree-lfdi] [encoding=\typescriptthree] % LucidaFax-DemiItalic
-
- \loadmapfile[lucida.map]
- \stoptypescript
-
- \starttypescript [blackletter] [lucida] [texnansi,ec,8r]
- \definefontsynonym [\typescriptthree-lbl] [hlcrf\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree] % LucidaBlackletter
-
- \definefontsynonym [LucidaBlackletter] [\typescriptthree-lbl] [encoding=\typescriptthree]
-
- \loadmapfile[lucida.map]
- \stoptypescript
-
- \starttypescript [lucida,lucidabfm,lucidaboldmath] [texnansi,ec,8r]
- \definetypeface [lucida] [rm] [serif] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucida] [ss] [sans] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucida] [tt] [mono] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucida] [hw] [handwriting] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucida] [cg] [calligraphy] [lucida] [default] [encoding=\typescripttwo]
-
- \loadmapfile[lucida.map]
- \stoptypescript
-
- \starttypescript [math] [lucida] [default]
- \definefontsynonym [LucidaNewMath-AltItalic] [hlcrima]
- \definefontsynonym [LucidaNewMath-Arrows] [hlcra]
- \definefontsynonym [LucidaNewMath-Extension] [hlcrv]
- \definefontsynonym [LucidaNewMath-Roman] [hlcrm]
- \definefontsynonym [LucidaNewMath-Italic] [hlcrim]
- \definefontsynonym [LucidaNewMath-Symbol] [hlcry]
- \definefontsynonym [LucidaBlackletter] [hlcrf8y] % what a mess
- \usemathcollection[lbr]
- \loadmapfile [lucida.map]
- \stoptypescript
-
- \starttypescript [boldmath,bfmath] [lucida] [default]
- \definefontsynonym [LucidaNewMath-AltDemiItalic] [hlcdima]
- \definefontsynonym [LucidaNewMath-Arrows-Demi] [hlcda]
- \definefontsynonym [LucidaNewMath-Extension] [hlcrv]
- \definefontsynonym [LucidaNewMath-Demi] [hlcdm]
- \definefontsynonym [LucidaNewMath-DemiItalic] [hlcdim]
- \definefontsynonym [LucidaNewMath-Symbol-Demi] [hlcdy]
- \loadmapfile [lucida.map]
- \stoptypescript
-
- % Lucida Bright
-
- \starttypescript [serif] [lucida] [name]
- \definefontsynonym [Serif] [LucidaBright]
- \definefontsynonym [SerifBold] [LucidaBright-Demi]
- \definefontsynonym [SerifItalic] [LucidaBright-Italic]
- \definefontsynonym [SerifBoldItalic] [LucidaBright-DemiItalic]
- \definefontsynonym [SerifSlanted] [LucidaBright-Oblique]
- \definefontsynonym [SerifBoldSlanted] [LucidaBright-DemiItalic]
- \definefontsynonym [SerifCaps] [LucidaBrightSmallcaps]
- \definefontsynonym [SerifBoldCaps] [LucidaBrightSmallcaps-Demi]
- \stoptypescript
-
- % Lucida Bright Sans
-
- \starttypescript [sans] [lucida] [name]
- \definefontsynonym [Sans] [LucidaSans]
- \definefontsynonym [SansBold] [LucidaSans-Demi]
- \definefontsynonym [SansItalic] [LucidaSans-Italic]
- \definefontsynonym [SansBoldItalic] [LucidaSans-DemiItalic]
- \definefontsynonym [SansSlanted] [LucidaSans-Italic]
- \definefontsynonym [SansBoldSlanted] [LucidaSans-DemiItalic]
- \definefontsynonym [SansCaps] [LucidaSans]
- \stoptypescript
-
- % Lucida Bright Typewriter
-
- % only one family may be used as mono; sans used to be that since the beginning,
- % so we keep using that as default
-
- % \starttypescript [mono] [lucida] [name]
- % \definefontsynonym [Mono] [LucidaTypewriter]
- % \definefontsynonym [MonoBold] [LucidaTypewriterBold]
- % \definefontsynonym [MonoItalic] [LucidaTypewriterOblique]
- % \definefontsynonym [MonoBoldItalic] [LucidaTypewriterBoldOblique]
- % \definefontsynonym [MonoSlanted] [LucidaTypewriterOblique]
- % \definefontsynonym [MonoBoldSlanted] [LucidaTypewriterBoldOblique]
- % \definefontsynonym [MonoCaps] [LucidaTypewriter]
- % \stoptypescript
-
- % Lucida Bright Sans Typewriter
-
- \starttypescript [mono] [lucida] [name]
- \definefontsynonym [Mono] [LucidaSans-Typewriter]
- \definefontsynonym [MonoBold] [LucidaSans-TypewriterBold]
- \definefontsynonym [MonoItalic] [LucidaSans-TypewriterOblique]
- \definefontsynonym [MonoBoldItalic] [LucidaSans-TypewriterBoldOblique]
- \definefontsynonym [MonoSlanted] [LucidaSans-TypewriterOblique]
- \definefontsynonym [MonoBoldSlanted] [LucidaSans-TypewriterBoldOblique]
- \definefontsynonym [MonoCaps] [LucidaSans-Typewriter]
- \stoptypescript
-
- % Lucida Calligraphy
-
- \starttypescript [calligraphy] [lucida] [name]
- \definefontsynonym [Calligraphy] [LucidaCalligraphy-Italic]
- \stoptypescript
-
- % Lucida Casual
-
- % \starttypescript [casual] [lucida] [name]
- % % LucidaCasual
- % % LucidaCasual-Italic
- % \stoptypescript
-
- % Lucida Handwriting
-
- \starttypescript [handwriting] [lucida] [name]
- \definefontsynonym [Handwriting] [LucidaHandwriting-Italic]
- \stoptypescript
-
- % Lucida Fax
- %
- % \starttypescript [fax] [lucida] [name]
- % \definefontsynonym [FaksRegular] [LucidaFax]
- % \definefontsynonym [FaksBold] [LucidaFax-Demi]
- % \definefontsynonym [FaksItalic] [LucidaFax-Italic]
- % \definefontsynonym [FaksBoldItalic] [LucidaFax-DemiItalic]
- % \stoptypescript
-
- % Lucida Black Letter
- %
- % \starttypescript [blackletter] [lucida] [name]
- % \definefontsynonym [Blackletter] [LucidaBlackletter]
- % \stoptypescript
-
- % Lucida Math
-
- \starttypescript [math] [lucida] [name]
- % \definefontsynonym [MathRoman] [LucidaBright]
- \definefontsynonym [MathRoman] [LucidaNewMath-Roman]
- \definefontsynonym [MathExtension] [LucidaNewMath-Extension]
- \definefontsynonym [MathItalic] [LucidaNewMath-AltItalic]
- \definefontsynonym [MathSymbol] [LucidaNewMath-Symbol]
- \definefontsynonym [MathAlpha] [LucidaNewMath-Arrows]
- \definefontsynonym [MathBeta] [LucidaNewMath-Roman]
- \stoptypescript
-
- \starttypescript [math] [lucida] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [eufm10]
- \definefontsynonym [Blackboard] [MathAlpha]
- \definefontsynonym [Gothic] [eufm10]
- \definefontsynonym [Calligraphic] [MathSymbol] % math caligraphic !
- \stoptypescript
-
- \starttypescript [boldmath] [lucida] [name]
- \definefontsynonym [MathRoman] [LucidaBright-Demi]
- \definefontsynonym [MathExtension] [LucidaNewMath-Extension]
- \definefontsynonym [MathItalic] [LucidaNewMath-AltDemiItalic]
- \definefontsynonym [MathSymbol] [LucidaNewMath-Symbol-Demi]
- \definefontsynonym [MathAlpha] [LucidaNewMath-Arrows-Demi]
- \definefontsynonym [MathBeta] [LucidaNewMath-Demi]
- \stoptypescript
-
- \starttypescript [bfmath] [lucida] [name]
- \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-Demi]
- \stoptypescript
-
- \starttypescript [lucida,lucidabfm,lucidaboldmath] [texnansi,ec,8r,uc]
- \definetypeface [lucida] [rm] [serif] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucida] [ss] [sans] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucida] [tt] [mono] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucida] [hw] [handwriting] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucida] [cg] [calligraphy] [lucida] [default] [encoding=\typescripttwo]
- \loadmapfile [lucida.map]
- \stoptypescript
-
- \starttypescript [lucida] [texnansi,ec,8r]
- \definetypeface [lucida] [mm] [math] [lucida] [default] [encoding=\typescripttwo]
- \stoptypescript
-
- \starttypescript [lucidabfm] [texnansi,ec,8r]
- \definetypeface [lucida] [mm] [bfmath] [lucida] [default] [encoding=\typescripttwo]
- \stoptypescript
-
- \starttypescript [lucidaboldmath] [texnansi,ec,8r]
- \definetypeface [lucida] [mm] [boldmath] [lucida] [default] [encoding=\typescripttwo]
- \stoptypescript
-
- \starttypescript [lucidabfm] [texnansi,ec,8r,uc]
- \definetypeface [lucidabfm] [rm] [serif] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucidabfm] [ss] [sans] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucidabfm] [tt] [mono] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucidabfm] [hw] [handwriting] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucidabfm] [cg] [calligraphy] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucidabfm] [mm] [bfmath] [lucida] [default] [encoding=\typescripttwo]
- \loadmapfile [lucida.map]
- \stoptypescript
-
- \starttypescript [lucidaboldmath] [texnansi,ec,8r,uc]
- \definetypeface [lucidaboldmath] [rm] [serif] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucidaboldmath] [ss] [sans] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucidaboldmath] [tt] [mono] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucidaboldmath] [hw] [handwriting] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucidaboldmath] [cg] [calligraphy] [lucida] [default] [encoding=\typescripttwo]
- \definetypeface [lucidaboldmath] [mm] [boldmath] [lucida] [default] [encoding=\typescripttwo]
- \loadmapfile [bh-lucida.map]
- \stoptypescript
-
- \starttypescript [lucida,lucidabfm,lucidaboldmath] [texnansi,ec,8r]
- \usemathcollection[lbr]
- \quittypescriptscanning % last in the row
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[postscript]
-
- \starttypescript [postscript] [ec,texnansi,cs,qx,rm,t5,t2a,t2b,t2c,l7x]
- \definetypeface [postscript] [rm] [serif] [times] [default] [encoding=\typescripttwo]
- \definetypeface [postscript] [ss] [sans] [helvetica] [default] [encoding=\typescripttwo,rscale=0.9]
- \definetypeface [postscript] [tt] [mono] [courier] [default] [encoding=\typescripttwo,rscale=1.1]
- \definetypeface [postscript] [mm] [math] [times] [default] [encoding=\typescripttwo]
- \quittypescriptscanning
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[libertine]
-
- \starttypescript [serif] [libertine] [ec]
- \definefontsynonym [Libertine-Regular] [fxlr-t1] [encoding=ec]
- \definefontsynonym [Libertine-Italic] [fxlri-t1] [encoding=ec]
- \definefontsynonym [Libertine-Bold] [fxlb-t1] [encoding=ec]
- \definefontsynonym [Libertine-BoldItalic] [fxlbi-t1] [encoding=ec]
- \definefontsynonym [Libertine-SmallCaps] [fxlrc-t1] %[encoding=ec]
- \loadmapfile [libertine.map]
- \stoptypescript
-
- \starttypescript [serif] [libertine] [name]
- \definefontsynonym [Serif] [Libertine-Regular]
- \definefontsynonym [SerifItalic] [Libertine-Italic]
- \definefontsynonym [SerifSlanted] [Libertine-Italic]
- \definefontsynonym [SerifBold] [Libertine-Bold]
- \definefontsynonym [SerifBoldItalic] [Libertine-BoldItalic]
- \definefontsynonym [SerifBoldSlanted][Libertine-BoldItalic]
- \definefontsynonym [SerifCaps] [Libertine-SmallCaps]
- \stoptypescript
-
- \starttypescript [libertine] [ec]
- \definetypeface [libertine] [tt] [mono] [default] [default] [encoding=ec]
- \definetypeface [libertine] [ss] [sans] [default] [default] [encoding=ec]
- \definetypeface [libertine] [rm] [serif] [libertine] [default] [encoding=ec]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[inconsolata]
-
- \starttypescript [mono] [inconsolata] [ec]
- \definefontsynonym [Inconsolata] [ec-inconsolata] [encoding=ec]
- \pdfmapline{ec-inconsolata Inconsolata "fi4ECEncoding ReEncodeFont" <[fi4-ec.enc <Inconsolata.pfb}
- \stoptypescript
-
- \starttypescript [mono] [inconsolata] [name]
- \definefontsynonym [Mono] [Inconsolata]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[dejavu]
-
- \definetypescriptprefix [e:ec] [t1]
- \definetypescriptprefix [e:qx] [qx]
- \definetypescriptprefix [e:t2a] [t2a]
-
- \starttypescript [serif] [dejavu] [ec,qx,t2a]
- \definefontsynonym [DejaVuSerif] [DejaVuSerif-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
- \definefontsynonym [DejaVuSerif-Italic] [DejaVuSerif-Italic-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
- \definefontsynonym [DejaVuSerif-Bold] [DejaVuSerif-Bold-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
- \definefontsynonym [DejaVuSerif-BoldItalic] [DejaVuSerif-BoldItalic-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
-
- \loadmapfile[dejavu-truetype.map]
- \stoptypescript
-
- \starttypescript [serif] [dejavu-condensed] [ec,qx,t2a]
- \definefontsynonym [DejaVuSerifCondensed] [DejaVuSerifCondensed-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
- \definefontsynonym [DejaVuSerifCondensed-Italic] [DejaVuSerifCondensed-Italic-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
- \definefontsynonym [DejaVuSerifCondensed-Bold] [DejaVuSerifCondensed-Bold-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
- \definefontsynonym [DejaVuSerifCondensed-BoldItalic] [DejaVuSerifCondensed-BoldItalic-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
-
- \loadmapfile[dejavu-truetype.map]
- \stoptypescript
-
- \starttypescript [sans] [dejavu] [ec,qx,t2a]
- \definefontsynonym [DejaVuSans] [DejaVuSans-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
- \definefontsynonym [DejaVuSans-Italic] [DejaVuSans-Italic-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
- \definefontsynonym [DejaVuSans-Bold] [DejaVuSans-Bold-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
- \definefontsynonym [DejaVuSans-BoldItalic] [DejaVuSans-BoldItalic-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
-
- \loadmapfile[dejavu-truetype.map]
- \stoptypescript
-
- \starttypescript [sans] [dejavu-condensed] [ec,qx,t2a]
- \definefontsynonym [DejaVuSansCondensed] [DejaVuSansCondensed-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
- \definefontsynonym [DejaVuSansCondensed-Italic] [DejaVuSansCondensed-Italic-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
- \definefontsynonym [DejaVuSansCondensed-Bold] [DejaVuSansCondensed-Bold-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
- \definefontsynonym [DejaVuSansCondensed-BoldItalic] [DejaVuSansCondensed-BoldItalic-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
-
- \loadmapfile[dejavu-truetype.map]
- \stoptypescript
-
- \starttypescript [mono] [dejavu,dejavu-condensed] [ec,qx,t2a]
- \definefontsynonym [DejaVuSansMono] [DejaVuSansMono-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
- \definefontsynonym [DejaVuSansMono-Italic] [DejaVuSansMono-Italic-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
- \definefontsynonym [DejaVuSansMono-Bold] [DejaVuSansMono-Bold-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
- \definefontsynonym [DejaVuSansMono-BoldItalic] [DejaVuSansMono-BoldItalic-tlf-\typescriptprefix{e:\typescriptthree}] [encoding=\typescriptthree]
-
- \loadmapfile[dejavu-truetype.map]
- \stoptypescript
-
- \starttypescript [serif] [dejavu] [name]
- \definefontsynonym [Serif] [DejaVuSerif]
- \definefontsynonym [SerifItalic] [DejaVuSerif-Italic]
- \definefontsynonym [SerifBold] [DejaVuSerif-Bold]
- \definefontsynonym [SerifBoldItalic] [DejaVuSerif-BoldItalic]
-
- \definefontsynonym [SerifSlanted] [SerifItalic]
- \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
- \definefontsynonym [SerifCaps] [Serif]
- \stoptypescript
-
- \starttypescript [serif] [dejavu-condensed] [name]
- \definefontsynonym [Serif] [DejaVuSerifCondensed]
- \definefontsynonym [SerifItalic] [DejaVuSerifCondensed-Italic]
- \definefontsynonym [SerifBold] [DejaVuSerifCondensed-Bold]
- \definefontsynonym [SerifBoldItalic] [DejaVuSerifCondensed-BoldItalic]
-
- \definefontsynonym [SerifSlanted] [SerifItalic]
- \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
- \definefontsynonym [SerifCaps] [Serif]
- \stoptypescript
-
- \starttypescript [sans] [dejavu] [name]
- \definefontsynonym [Sans] [DejaVuSans]
- \definefontsynonym [SansItalic] [DejaVuSans-Italic]
- \definefontsynonym [SansBold] [DejaVuSans-Bold]
- \definefontsynonym [SansBoldItalic] [DejaVuSans-BoldItalic]
-
- \definefontsynonym [SansSlanted] [SansItalic]
- \definefontsynonym [SansBoldSlanted] [SansBoldItalic]
- \definefontsynonym [SansCaps] [Sans]
- \stoptypescript
-
- \starttypescript [sans] [dejavu-condensed] [name]
- \definefontsynonym [Sans] [DejaVuSansCondensed]
- \definefontsynonym [SansItalic] [DejaVuSansCondensed-Italic]
- \definefontsynonym [SansBold] [DejaVuSansCondensed-Bold]
- \definefontsynonym [SansBoldItalic] [DejaVuSansCondensed-BoldItalic]
-
- \definefontsynonym [SansSlanted] [SansItalic]
- \definefontsynonym [SansBoldSlanted] [SansBoldItalic]
- \definefontsynonym [SansCaps] [Sans]
- \stoptypescript
-
- \starttypescript [mono] [dejavu,dejavu-condensed] [name]
- \definefontsynonym [Mono] [DejaVuSansMono]
- \definefontsynonym [MonoItalic] [DejaVuSansMono-Italic]
- \definefontsynonym [MonoBold] [DejaVuSansMono-Bold]
- \definefontsynonym [MonoBoldItalic] [DejaVuSansMono-BoldItalic]
-
- \definefontsynonym [MonoSlanted] [MonoItalic]
- \definefontsynonym [MonoBoldSlanted] [MonoBoldItalic]
- \definefontsynonym [MonoCaps] [Mono]
- \stoptypescript
-
- \starttypescript [dejavu] [ec,qx,t2a]
- \definetypeface [dejavu] [rm] [serif] [dejavu] [default] [encoding=\typescripttwo]
- \definetypeface [dejavu] [ss] [sans] [dejavu] [default] [encoding=\typescripttwo]
- \definetypeface [dejavu] [tt] [mono] [dejavu] [default] [encoding=\typescripttwo]
- \definetypeface [dejavu] [mm] [math] [xits] [default] [rscale=auto]
- \loadmapfile [dejavu-truetype.map]
- \stoptypescript
-
- \starttypescript [dejavu-condensed] [ec,qx,t2a]
- \definetypeface [dejavu-condensed] [rm] [serif] [dejavu-condensed] [default] [encoding=\typescripttwo]
- \definetypeface [dejavu-condensed] [ss] [sans] [dejavu-condensed] [default] [encoding=\typescripttwo]
- \definetypeface [dejavu-condensed] [tt] [mono] [dejavu-condensed] [default] [encoding=\typescripttwo]
- \definetypeface [dejavu-condensed] [mm] [math] [xits] [default] [rscale=auto]
- \loadmapfile [dejavu-truetype.map]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[gentium]
-
- \starttypescript [serif] [gentium] [ec,texnansi,qx,t5,l7x]
- \definefontsynonym [Gentium-Roman] [\typescriptthree-gentiumplus-regular] [encoding=\typescriptthree]
- \definefontsynonym [Gentium-Italic] [\typescriptthree-gentiumplus-italic] [encoding=\typescriptthree]
- \definefontsynonym [Gentium-Bold] [\typescriptthree-gentiumbasic-bold] [encoding=\typescriptthree]
- \definefontsynonym [Gentium-BoldItalic] [\typescriptthree-gentiumbasic-bolditalic] [encoding=\typescriptthree]
- \definefontsynonym [Gentium-RomanCaps] [\typescriptthree-gentiumplus-regular-sc] [encoding=\typescriptthree]
- \definefontsynonym [Gentium-Slanted] [Gentium-Italic]
- \definefontsynonym [Gentium-BoldSlanted] [Gentium-BoldItalic]
- \loadmapfile[gentium-\typescriptthree.map]
- \stoptypescript
-
- \starttypescript [serif] [gentium] [agr,t2a]
- \definefontsynonym [Gentium-Roman] [\typescriptthree-gentiumplus-regular] [encoding=\typescriptthree]
- \definefontsynonym [Gentium-Italic] [\typescriptthree-gentiumplus-italic] [encoding=\typescriptthree]
- \definefontsynonym [Gentium-RomanCaps] [\typescriptthree-gentiumplus-regular-sc] [encoding=\typescriptthree]
- \definefontsynonym [Gentium-Bold] [Gentium-Roman]
- \definefontsynonym [Gentium-BoldItalic] [Gentium-Italic]
- \definefontsynonym [Gentium-Slanted] [Gentium-Italic]
- \definefontsynonym [Gentium-BoldSlanted] [Gentium-Italic]
- \loadmapfile[gentium-\typescriptthree.map]
- \stoptypescript
-
- \starttypescript [serif] [gentium] [name]
- \usetypescript[serif][fallback]
- \definefontsynonym [Serif] [Gentium-Roman]
- \definefontsynonym [SerifItalic] [Gentium-Italic]
- \definefontsynonym [SerifBold] [Gentium-Bold]
- \definefontsynonym [SerifBoldItalic] [Gentium-BoldItalic]
- \definefontsynonym [SerifSlanted] [Gentium-Slanted]
- \definefontsynonym [SerifBoldSlanted] [Gentium-BoldSlanted]
- \definefontsynonym [SerifCaps] [Gentium-RomanCaps]
- \definefontsynonym [OldStyle] [Serif]
- \stoptypescript
-
- \starttypescript [gentium] [ec,texnansi,qx,t5,t2a,agr,l7x]
- \definetypeface [gentium] [rm] [serif] [gentium] [default] [encoding=\typescripttwo]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/type-otf.mkii b/Master/texmf-dist/tex/context/base/mkii/type-otf.mkii
deleted file mode 100644
index d15994f6aed..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/type-otf.mkii
+++ /dev/null
@@ -1,1734 +0,0 @@
-%D \module
-%D [ file=type-otf,
-%D version=2007.07.30,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Opentype Definitions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Actually, \LUATEX\ does not need all these definitions since it can
-%D consult its database. However, here we use the names that we used
-%D in good old \TEX, and these may differ a bit. Here we also see
-%D some oldstyle definitions which normally are done with features.
-
-\starttypescriptcollection[fallback]
-
-\starttypescript [fallback]
- \definetypeface [] [rm] [serif] [modern] [computer-modern] [features=default]
- \definetypeface [] [ss] [sans] [modern] [computer-modern] [features=default]
- \definetypeface [] [tt] [mono] [modern] [computer-modern] [features=default]
- \definetypeface [] [mm] [math] [modern] [computer-modern]
- \quittypescriptscanning
-\stoptypescript
-
-% faster
-%
-% \starttypescript [fallback]
-% \definetypeface [] [rm] [serif] [modern] [default] [features=default]
-% \definetypeface [] [ss] [sans] [modern] [default] [features=default]
-% \definetypeface [] [tt] [mono] [modern] [default] [features=default]
-% \definetypeface [] [mm] [math] [modern] [default]
-% \quittypescriptscanning
-% \stoptypescript
-
-\stoptypescriptcollection
-
-% if a fontname equals the filename, then use
-%
-% \setupfontsynonym [LMRoman10-DemiOblique] [features=default] % file is lowercase, so fails
-% \definefontsynonym [LMRoman10-DemiOblique] [name:LMRoman10-DemiOblique] [features=default]
-% \definefontsynonym [LMRoman10-DemiOblique] [lmroman10-demioblique] [features=default]
-
-\starttypescriptcollection[latinmodern]
-
- %D The names have changed (again) ... but I will not change the symbolic names
- %D any more. Filename changes will be catched in luatex (fallbacks) but not in
- %D other tex's.
-
- \starttypescript [serif] [modern,latin-modern]
- \definefontsynonym [LMRoman5-Regular] [file:lmroman5-regular] [features=default]
- \definefontsynonym [LMRoman6-Regular] [file:lmroman6-regular] [features=default]
- \definefontsynonym [LMRoman7-Regular] [file:lmroman7-regular] [features=default]
- \definefontsynonym [LMRoman8-Regular] [file:lmroman8-regular] [features=default]
- \definefontsynonym [LMRoman9-Regular] [file:lmroman9-regular] [features=default]
- \definefontsynonym [LMRoman10-Regular] [file:lmroman10-regular] [features=default]
- \definefontsynonym [LMRoman12-Regular] [file:lmroman12-regular] [features=default]
- \definefontsynonym [LMRoman17-Regular] [file:lmroman17-regular] [features=default]
- \definefontsynonym [LMRoman5-Bold] [file:lmroman5-bold] [features=default]
- \definefontsynonym [LMRoman6-Bold] [file:lmroman6-bold] [features=default]
- \definefontsynonym [LMRoman7-Bold] [file:lmroman7-bold] [features=default]
- \definefontsynonym [LMRoman8-Bold] [file:lmroman8-bold] [features=default]
- \definefontsynonym [LMRoman9-Bold] [file:lmroman9-bold] [features=default]
- \definefontsynonym [LMRoman10-Bold] [file:lmroman10-bold] [features=default]
- \definefontsynonym [LMRoman12-Bold] [file:lmroman12-bold] [features=default]
- \definefontsynonym [LMRoman7-Italic] [file:lmroman7-italic] [features=default]
- \definefontsynonym [LMRoman8-Italic] [file:lmroman8-italic] [features=default]
- \definefontsynonym [LMRoman9-Italic] [file:lmroman9-italic] [features=default]
- \definefontsynonym [LMRoman10-Italic] [file:lmroman10-italic] [features=default]
- \definefontsynonym [LMRoman12-Italic] [file:lmroman12-italic] [features=default]
- \definefontsynonym [LMRoman10-BoldItalic] [file:lmroman10-bolditalic] [features=default]
- \definefontsynonym [LMRoman8-Oblique] [file:lmromanslant8-regular] [features=default]
- \definefontsynonym [LMRoman9-Oblique] [file:lmromanslant9-regular] [features=default]
- \definefontsynonym [LMRoman10-Oblique] [file:lmromanslant10-regular][features=default]
- \definefontsynonym [LMRoman12-Oblique] [file:lmromanslant12-regular][features=default]
- \definefontsynonym [LMRoman17-Oblique] [file:lmromanslant17-regular][features=default]
- \definefontsynonym [LMRoman10-BoldOblique] [file:lmromanslant10-bold] [features=default]
- \definefontsynonym [LMRoman10-Demi] [file:lmromandemi10-regular] [features=default]
- \definefontsynonym [LMRoman10-DemiOblique] [file:lmromandemi10-oblique] [features=default]
- \definefontsynonym [LMRoman10-CapsRegular] [file:lmromancaps10-regular] [features=default] % features=smallcaps?
- \definefontsynonym [LMRoman10-CapsOblique] [file:lmromancaps10-oblique] [features=default]
-
- \definefontsynonym [LMRoman10-Dunhill] [file:lmromandunh10-regular] [features=default]
- \definefontsynonym [LMRoman10-DunhillOblique] [file:lmromandunh10-oblique] [features=default]
- \definefontsynonym [LMRoman10-Unslanted] [file:lmromanunsl10-regular] [features=default]
- \stoptypescript
-
- \starttypescript [sans] [modern,latin-modern]
- \definefontsynonym [LMSans8-Regular] [file:lmsans8-regular] [features=default]
- \definefontsynonym [LMSans9-Regular] [file:lmsans9-regular] [features=default]
- \definefontsynonym [LMSans10-Regular] [file:lmsans10-regular] [features=default]
- \definefontsynonym [LMSans12-Regular] [file:lmsans12-regular] [features=default]
- \definefontsynonym [LMSans17-Regular] [file:lmsans17-regular] [features=default]
- \definefontsynonym [LMSans10-Bold] [file:lmsans10-bold] [features=default]
- \definefontsynonym [LMSans8-Oblique] [file:lmsans8-oblique] [features=default]
- \definefontsynonym [LMSans9-Oblique] [file:lmsans9-oblique] [features=default]
- \definefontsynonym [LMSans10-Oblique] [file:lmsans10-oblique] [features=default]
- \definefontsynonym [LMSans12-Oblique] [file:lmsans12-oblique] [features=default]
- \definefontsynonym [LMSans17-Oblique] [file:lmsans17-oblique] [features=default]
- \definefontsynonym [LMSans10-BoldOblique] [file:lmsans10-boldoblique] [features=default]
-
- \definefontsynonym [LMSans10-DemiCondensed] [file:lmsansdemicond10-regular] [features=default]
- \definefontsynonym [LMSans10-DemiCondensedOblique] [file:lmsansdemicond10-oblique] [features=default]
-
- \definefontsynonym [LMSansQuotation8-Regular] [file:lmsansquot8-regular] [features=default]
- \definefontsynonym [LMSansQuotation8-Bold] [file:lmsansquot8-bold] [features=default]
- \definefontsynonym [LMSansQuotation8-Oblique] [file:lmsansquot8-oblique] [features=default]
- \definefontsynonym [LMSansQuotation8-BoldOblique] [file:lmsansquot8-boldoblique] [features=default]
- \stoptypescript
-
- \starttypescript [mono] [modern,latin-modern,modern-vari,latin-modern-vari,modern-cond,latin-modern-cond]
- \definefontsynonym [LMTypewriter8-Regular] [file:lmmono8-regular] [features=none]
- \definefontsynonym [LMTypewriter9-Regular] [file:lmmono9-regular] [features=none]
- \definefontsynonym [LMTypewriter10-Regular] [file:lmmono10-regular] [features=none]
- \definefontsynonym [LMTypewriter12-Regular] [file:lmmono12-regular] [features=none]
- \definefontsynonym [LMTypewriter10-Italic] [file:lmmono10-italic] [features=none]
- \definefontsynonym [LMTypewriter10-Oblique] [file:lmmonoslant10-regular] [features=none]
- \definefontsynonym [LMTypewriter10-CapsRegular] [file:lmmonocaps10-regular] [features=none] % features=smallcaps?
- \definefontsynonym [LMTypewriter10-CapsOblique] [file:lmmonocaps10-oblique] [features=none]
-
- \definefontsynonym [LMTypewriter10-Light] [file:lmmonolt10-regular] [features=none]
- \definefontsynonym [LMTypewriter10-LightOblique] [file:lmmonolt10-oblique] [features=none]
- \definefontsynonym [LMTypewriter10-LightCondensed] [file:lmmonoltcond10-regular] [features=none]
- \definefontsynonym [LMTypewriter10-LightCondensedOblique] [file:lmmonoltcond10-oblique] [features=none]
-
- \definefontsynonym [LMTypewriter10-Dark] [file:lmmonolt10-bold] [features=none]
- \definefontsynonym [LMTypewriter10-DarkOblique] [file:lmmonolt10-boldoblique] [features=none]
-
- \definefontsynonym [LMTypewriterVarWd10-Regular] [file:lmmonoproplt10-regular] [features=default]
- \definefontsynonym [LMTypewriterVarWd10-Oblique] [file:lmmonoproplt10-oblique] [features=default]
- \definefontsynonym [LMTypewriterVarWd10-Light] [file:lmmonoprop10-regular] [features=default]
- \definefontsynonym [LMTypewriterVarWd10-LightOblique] [file:lmmonoprop10-oblique] [features=default]
- \definefontsynonym [LMTypewriterVarWd10-Dark] [file:lmmonoproplt10-bold] [features=default]
- \definefontsynonym [LMTypewriterVarWd10-DarkOblique] [file:lmmonoproplt10-boldoblique] [features=default]
- \stoptypescript
-
- \starttypescript [math] [modern,latin-modern]
- \definefontsynonym [LMMathRoman5-Regular] [rm-lmr5]
- \definefontsynonym [LMMathRoman6-Regular] [rm-lmr6]
- \definefontsynonym [LMMathRoman7-Regular] [rm-lmr7]
- \definefontsynonym [LMMathRoman8-Regular] [rm-lmr8]
- \definefontsynonym [LMMathRoman9-Regular] [rm-lmr9]
- \definefontsynonym [LMMathRoman10-Regular] [rm-lmr10]
- \definefontsynonym [LMMathRoman12-Regular] [rm-lmr12]
- \definefontsynonym [LMMathRoman17-Regular] [rm-lmr17]
- \definefontsynonym [LMMathRoman5-Bold] [rm-lmbx5]
- \definefontsynonym [LMMathRoman6-Bold] [rm-lmbx6]
- \definefontsynonym [LMMathRoman7-Bold] [rm-lmbx7]
- \definefontsynonym [LMMathRoman8-Bold] [rm-lmbx8]
- \definefontsynonym [LMMathRoman9-Bold] [rm-lmbx9]
- \definefontsynonym [LMMathRoman10-Bold] [rm-lmbx10]
- \definefontsynonym [LMMathRoman12-Bold] [rm-lmbx12]
- \definefontsynonym [LMMathSymbols5-BoldItalic] [lmbsy5]
- \definefontsynonym [LMMathSymbols7-BoldItalic] [lmbsy7]
- \definefontsynonym [LMMathSymbols10-BoldItalic][lmbsy10]
- \definefontsynonym [LMMathSymbols5-Italic] [lmsy5]
- \definefontsynonym [LMMathSymbols6-Italic] [lmsy6]
- \definefontsynonym [LMMathSymbols7-Italic] [lmsy7]
- \definefontsynonym [LMMathSymbols8-Italic] [lmsy8]
- \definefontsynonym [LMMathSymbols9-Italic] [lmsy9]
- \definefontsynonym [LMMathSymbols10-Italic] [lmsy10]
- \definefontsynonym [LMMathExtension10-Regular] [lmex10]
- \definefontsynonym [LMMathItalic5-Italic] [lmmi5]
- \definefontsynonym [LMMathItalic6-Italic] [lmmi6]
- \definefontsynonym [LMMathItalic7-Italic] [lmmi7]
- \definefontsynonym [LMMathItalic8-Italic] [lmmi8]
- \definefontsynonym [LMMathItalic9-Italic] [lmmi9]
- \definefontsynonym [LMMathItalic10-Italic] [lmmi10]
- \definefontsynonym [LMMathItalic12-Italic] [lmmi12]
- \definefontsynonym [LMMathItalic5-BoldItalic] [lmmib5]
- \definefontsynonym [LMMathItalic7-BoldItalic] [lmmib7]
- \definefontsynonym [LMMathItalic10-BoldItalic] [lmmib10]
-
- \loadmapfile[lm-math.map]
- \loadmapfile[lm-rm.map]
- \stoptypescript
-
- \starttypescript [serif] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [Serif] [LMRoman-Regular]
- \definefontsynonym [SerifBold] [LMRoman-Bold]
- \definefontsynonym [SerifItalic] [LMRoman-Italic]
- \definefontsynonym [SerifSlanted] [LMRoman-Oblique]
- \definefontsynonym [SerifBoldItalic] [LMRoman-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [LMRoman-BoldOblique]
- \definefontsynonym [SerifCaps] [LMRoman-CapsRegular]
- \definefontsynonym [SerifCapsSlanted] [LMRoman-CapsOblique]
- \stoptypescript
-
- \starttypescript [sans] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [Sans] [LMSans-Regular]
- \definefontsynonym [SansBold] [LMSans-Bold]
- \definefontsynonym [SansItalic] [LMSans-Oblique]
- \definefontsynonym [SansSlanted] [LMSans-Oblique]
- \definefontsynonym [SansBoldItalic] [LMSans-BoldOblique]
- \definefontsynonym [SansBoldSlanted] [LMSans-BoldOblique]
- \definefontsynonym [SansCaps] [LMSans-Regular]
- \definefontsynonym [SansCapsSlanted] [LMSans-Oblique]
- \stoptypescript
-
- \starttypescript [mono] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [Mono] [LMTypewriter-Regular]
- \definefontsynonym [MonoBold] [LMTypewriter-Dark]
- \definefontsynonym [MonoItalic] [LMTypewriter-Italic]
- \definefontsynonym [MonoSlanted] [LMTypewriter-Oblique]
- \definefontsynonym [MonoBoldItalic] [LMTypewriter-DarkOblique]
- \definefontsynonym [MonoBoldSlanted] [LMTypewriter-DarkOblique]
- \definefontsynonym [MonoCaps] [LMTypewriter-CapsRegular]
- \definefontsynonym [MonoCapsSlanted] [LMTypewriter-CapsOblique]
- \definefontsynonym [MonoVariable] [LMTypewriterVarWd-Regular]
- \stoptypescript
-
- \starttypescript [math] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [MathRoman] [LMMathRoman-Regular]
- \definefontsynonym [MathExtension] [LMMathExtension-Regular]
- \definefontsynonym [MathItalic] [LMMathItalic-Italic]
- \definefontsynonym [MathSymbol] [LMMathSymbols-Italic]
- \stoptypescript
-
- \starttypescript [boldmath] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [MathRoman] [LMMathRoman-Bold]
- \definefontsynonym [MathExtension] [LMMathExtension-Regular]
- \definefontsynonym [MathItalic] [LMMathItalic-BoldItalic]
- \definefontsynonym [MathSymbol] [LMMathSymbols-BoldItalic]
- \stoptypescript
-
- \starttypescript [bfmath] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [MathRomanBold] [LMMathRoman-Bold]
- \definefontsynonym [MathExtension] [LMMathExtension-Regular]
- \definefontsynonym [MathItalicBold] [LMMathItalic-BoldItalic]
- \definefontsynonym [MathSymbolBold] [LMMathSymbols-BoldItalic]
- \stoptypescript
-
- \starttypescript [math,boldmath,bfmath] [modern,computer-modern,latin-modern] [name]
- \usemathcollection[default]
- \stoptypescript
-
- \starttypescript [serif] [modern-vari,computer-modern-vari,latin-modern-vari] [name]
- \definefontsynonym [Serif] [LMTypewriterVarWd-Regular]
- \definefontsynonym [SerifBold] [LMTypewriterVarWd-Oblique]
- \definefontsynonym [SerifItalic] [LMTypewriterVarWd-Oblique]
- \definefontsynonym [SerifSlanted] [LMTypewriterVarWd-Dark]
- \definefontsynonym [SerifBoldItalic] [LMTypewriterVarWd-DarkOblique]
- \definefontsynonym [SerifBoldSlanted] [LMTypewriterVarWd-DarkOblique]
- \definefontsynonym [SerifCaps] [LMTypewriterVarWd-Regular]
- \definefontsynonym [SerifCapsSlanted] [LMTypewriterVarWd-Oblique]
- \stoptypescript
-
- \starttypescript [mono] [modern-cond,computer-modern-cond,latin-modern-cond,modern-lightcond,computer-modern-lightcond,latin-modern-lightcond] [name]
- \definefontsynonym [Mono] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoBold] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoItalic] [LMTypewriter-LightCondensedOblique]
- \definefontsynonym [MonoSlanted] [LMTypewriter-LightCondensedOblique]
- \definefontsynonym [MonoBoldItalic] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoBoldSlanted] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoCaps] [LMTypewriter-LightCondensed]
- \definefontsynonym [MonoCapsSlanted] [LMTypewriter-LightCondensed]
- \stoptypescript
-
- \starttypescript [mono] [modern-light,computer-modern-light,latin-modern-light] [name]
- \definefontsynonym [Mono] [LMTypewriter-Light]
- \definefontsynonym [MonoBold] [LMTypewriter-Light]
- \definefontsynonym [MonoItalic] [LMTypewriter-LightOblique]
- \definefontsynonym [MonoSlanted] [LMTypewriter-LightOblique]
- \definefontsynonym [MonoBoldItalic] [LMTypewriter-Light]
- \definefontsynonym [MonoBoldSlanted] [LMTypewriter-Light]
- \definefontsynonym [MonoCaps] [LMTypewriter-Light]
- \definefontsynonym [MonoCapsSlanted] [LMTypewriter-Light]
- \stoptypescript
-
- % Later we will map the real fonts, here we just map synonyms.
-
- \starttypescript [serif] [modern,latin-modern]
- \definefontsynonym [LMRoman-DemiOblique] [LMRoman10-DemiOblique]
- \definefontsynonym [LMRoman-Bold] [LMRoman10-Bold]
- \definefontsynonym [LMRoman-BoldItalic] [LMRoman10-BoldItalic]
- \definefontsynonym [LMRoman-BoldOblique] [LMRoman10-BoldOblique]
- \definefontsynonym [LMRoman-CapsRegular] [LMRoman10-CapsRegular]
- \definefontsynonym [LMRoman-CapsOblique] [LMRoman10-CapsOblique]
- \definefontsynonym [LMRoman-Regular] [LMRoman10-Regular]
- \definefontsynonym [LMRoman-Italic] [LMRoman10-Italic]
- \definefontsynonym [LMRoman-Oblique] [LMRoman10-Oblique]
- \stoptypescript
-
- \starttypescript [sans] [modern,latin-modern]
- \definefontsynonym [LMSans-Regular] [LMSans10-Regular]
- \definefontsynonym [LMSans-BoldOblique] [LMSans10-BoldOblique]
- \definefontsynonym [LMSans-Bold] [LMSans10-Bold]
- \definefontsynonym [LMSans-DemiCondensed] [LMSans10-DemiCondensed]
- \definefontsynonym [LMSans-DemiCondensedOblique] [LMSans10-DemiCondensedOblique]
- \definefontsynonym [LMSans-Oblique] [LMSans10-Oblique]
- \stoptypescript
-
- \starttypescript [mono] [modern,latin-modern,modern-vari,latin-modern-vari,modern-cond,latin-modern-cond]
- \definefontsynonym [LMTypewriter-CapsRegular] [LMTypewriter10-CapsRegular]
- \definefontsynonym [LMTypewriter-CapsOblique] [LMTypewriter10-CapsOblique]
- \definefontsynonym [LMTypewriter-Light] [LMTypewriter10-Light]
- \definefontsynonym [LMTypewriter-LightOblique] [LMTypewriter10-LightOblique]
- \definefontsynonym [LMTypewriter-LightCondensed] [LMTypewriter10-LightCondensed]
- \definefontsynonym [LMTypewriter-LightCondensedOblique] [LMTypewriter10-LightCondensedOblique]
- \definefontsynonym [LMTypewriter-Dark] [LMTypewriter10-Dark]
- \definefontsynonym [LMTypewriter-DarkOblique] [LMTypewriter10-DarkOblique]
- \definefontsynonym [LMTypewriter-Regular] [LMTypewriter10-Regular]
- \definefontsynonym [LMTypewriter-Italic] [LMTypewriter10-Italic]
- \definefontsynonym [LMTypewriter-Oblique] [LMTypewriter10-Oblique]
- \definefontsynonym [LMTypewriterVarWd-Regular] [LMTypewriterVarWd10-Regular]
- \definefontsynonym [LMTypewriterVarWd-Oblique] [LMTypewriterVarWd10-Oblique]
- \definefontsynonym [LMTypewriterVarWd-Light] [LMTypewriterVarWd10-Light]
- \definefontsynonym [LMTypewriterVarWd-LightOblique] [LMTypewriterVarWd10-LightOblique]
- \definefontsynonym [LMTypewriterVarWd-Dark] [LMTypewriterVarWd10-Dark]
- \definefontsynonym [LMTypewriterVarWd-DarkOblique] [LMTypewriterVarWd10-DarkOblique]
- \stoptypescript
-
- \starttypescript [serif] [modern,computer-modern,latin-modern]
- \definefontsynonym [ComputerModern] [LMRoman-Regular]
- \definefontsynonym [ComputerModern-Italic] [LMRoman-Italic]
- \definefontsynonym [ComputerModern-Slanted] [LMRoman-Oblique]
- \definefontsynonym [ComputerModern-Bold] [LMRoman-Bold]
- \definefontsynonym [ComputerModern-BoldItalic] [LMRoman-BoldItalic]
- \definefontsynonym [ComputerModern-BoldSlanted] [LMRoman-BoldOblique]
- \definefontsynonym [ComputerModern-Caps] [LMRoman-CapsRegular]
- \definefontsynonym [ComputerModern-CapsSlanted] [LMRoman-CapsOblique]
- \stoptypescript
-
- \starttypescript [sans] [modern,computer-modern,latin-modern]
- \definefontsynonym [ComputerModernSans] [LMSans-Regular]
- \definefontsynonym [ComputerModernSans-Italic] [LMSans-Oblique]
- \definefontsynonym [ComputerModernSans-Slanted] [LMSans-Oblique]
- \definefontsynonym [ComputerModernSans-Bold] [LMSans-Bold]
- \definefontsynonym [ComputerModernSans-BoldItalic] [LMSans-BoldOblique]
- \definefontsynonym [ComputerModernSans-BoldSlanted] [LMSans-BoldOblique]
- \definefontsynonym [ComputerModernSans-Caps] [LMSans-Regular] % [LMSans-CapsRegular]
- \definefontsynonym [ComputerModernSans-CapsSlanted] [LMSans-Oblique] % [LMSans-CapsOblique]
- \stoptypescript
-
- \starttypescript [mono] [modern,computer-modern,latin-modern]
- \definefontsynonym [ComputerModernMono] [LMTypewriter-Regular]
- \definefontsynonym [ComputerModernMono-Italic] [LMTypewriter-Italic]
- \definefontsynonym [ComputerModernMono-Slanted] [LMTypewriter-Oblique]
- \definefontsynonym [ComputerModernMono-Bold] [LMTypewriter-Dark]
- \definefontsynonym [ComputerModernMono-BoldItalic] [LMTypewriter-DarkOblique] % !
- \definefontsynonym [ComputerModernMono-BoldSlanted] [LMTypewriter-DarkOblique]
- \definefontsynonym [ComputerModernMono-Caps] [LMTypewriter-CapsRegular]
- \definefontsynonym [ComputerModernMono-CapsSlanted] [LMTypewriter-CapsOblique]
- \definefontsynonym [ComputerModernMono-Variable] [LMTypewriterVarWd-Regular]
- \stoptypescript
-
- \starttypescript [serif] [modern-vari,computer-modern-vari,latin-modern-vari]
- \definefontsynonym [ComputerModernVariable] [LMTypewriterVarWd-Regular]
- \definefontsynonym [ComputerModernVariable-Italic] [LMTypewriterVarWd-Oblique]
- \definefontsynonym [ComputerModernVariable-Slanted] [LMTypewriterVarWd-Oblique]
- \definefontsynonym [ComputerModernVariable-Bold] [LMTypewriterVarWd-Dark]
- \definefontsynonym [ComputerModernVariable-BoldItalic] [LMTypewriterVarWd-DarkOblique]
- \definefontsynonym [ComputerModernVariable-BoldSlanted] [LMTypewriterVarWd-DarkOblique]
- \definefontsynonym [ComputerModernVariable-Caps] [LMTypewriterVarWd-Regular]
- \definefontsynonym [ComputerModernVariable-CapsSlanted] [LMTypewriterVarWd-Oblique]
- \stoptypescript
-
- \starttypescript [math] [modern,latin-modern]
- \definefontsynonym [LMMathRoman-Regular] [LMMathRoman10-Regular]
- \definefontsynonym [LMMathRoman-Bold] [LMMathRoman10-Bold]
- \definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic]
- \definefontsynonym [LMMathSymbols-Italic] [LMMathSymbols10-Italic]
- \definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular]
- \definefontsynonym [LMMathItalic-Italic] [LMMathItalic10-Italic]
- \definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic]
- \stoptypescript
-
- % can boldmath and bfmath be joined?
- \starttypescript [boldmath] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [LMMathRoman-Bold] [LMMathRoman10-Bold]
- \definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular]
- \definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic]
- \definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic]
- \stoptypescript
-
- \starttypescript [bfmath] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [LMMathRoman-Bold] [LMMathRoman10-Bold]
- \definefontsynonym [LMMathExtension-Regular] [LMMathExtension10-Regular]
- \definefontsynonym [LMMathItalic-BoldItalic] [LMMathItalic10-BoldItalic]
- \definefontsynonym [LMMathSymbols-BoldItalic] [LMMathSymbols10-BoldItalic]
- \stoptypescript
-
- \starttypescript [serif] [modern,latin-modern,computer-modern]
- \definefontsynonym [cmr5] [LMRoman5-Regular]
- \definefontsynonym [cmr6] [LMRoman6-Regular]
- \definefontsynonym [cmr7] [LMRoman7-Regular]
- \definefontsynonym [cmr8] [LMRoman8-Regular]
- \definefontsynonym [cmr9] [LMRoman9-Regular]
- \definefontsynonym [cmr10] [LMRoman10-Regular]
- \definefontsynonym [cmr12] [LMRoman12-Regular]
- \definefontsynonym [cmr17] [LMRoman17-Regular]
- \definefontsynonym [cmbx5] [LMRoman5-Bold]
- \definefontsynonym [cmbx6] [LMRoman6-Bold]
- \definefontsynonym [cmbx7] [LMRoman7-Bold]
- \definefontsynonym [cmbx8] [LMRoman8-Bold]
- \definefontsynonym [cmbx9] [LMRoman9-Bold]
- \definefontsynonym [cmbx10] [LMRoman10-Bold]
- \definefontsynonym [cmbx12] [LMRoman12-Bold]
- \definefontsynonym [cmsl10] [LMRoman10-Oblique]
- \definefontsynonym [cmsl12] [LMRoman12-Oblique]
- \definefontsynonym [cmsl17] [LMRoman17-Oblique]
- \definefontsynonym [cmsl8] [LMRoman8-Oblique]
- \definefontsynonym [cmsl9] [LMRoman9-Oblique]
- \definefontsynonym [cmti7] [LMRoman7-Italic]
- \definefontsynonym [cmti8] [LMRoman8-Italic]
- \definefontsynonym [cmti9] [LMRoman9-Italic]
- \definefontsynonym [cmti10] [LMRoman10-Italic]
- \definefontsynonym [cmti12] [LMRoman12-Italic]
- \definefontsynonym [cmbsl10] [LMRoman10-DemiOblique]
- \definefontsynonym [cmbxsl10] [LMRoman10-BoldOblique]
- \definefontsynonym [cmbxti10] [LMRoman10-BoldItalic]
- \definefontsynonym [cmcsc10] [LMRoman10-CapsRegular]
- \definefontsynonym [cmcscsl10][LMRoman10-CapsOblique]
-
- %definefontsynonym [cmb10]
- \stoptypescript
-
- \starttypescript [sans] [modern,latin-modern,computer-modern]
- \definefontsynonym [cmss8] [LMSans8-Regular]
- \definefontsynonym [cmss9] [LMSans9-Regular]
- \definefontsynonym [cmss10] [LMSans10-Regular]
- \definefontsynonym [cmss12] [LMSans12-Regular]
- \definefontsynonym [cmss17] [LMSans17-Regular]
- \definefontsynonym [cmssi10] [LMSans10-Oblique]
- \definefontsynonym [cmssi12] [LMSans12-Oblique]
- \definefontsynonym [cmssi17] [LMSans17-Oblique]
- \definefontsynonym [cmssi8] [LMSans8-Oblique]
- \definefontsynonym [cmssi9] [LMSans9-Oblique]
- \definefontsynonym [cmssq8] [LMSansQuotation8-Regular]
- \definefontsynonym [cmssqb8] [LMSansQuotation8-Bold]
- \definefontsynonym [cmssqbi8] [LMSansQuotation8-BoldOblique]
- \definefontsynonym [cmssqi8] [LMSansQuotation8-Oblique]
- \definefontsynonym [cmssbx10] [LMSans10-Bold]
- \definefontsynonym [cmssdc10] [LMSans10-DemiCondensed]
- \definefontsynonym [cmssbi10] [LMSans10-BoldOblique]
- \definefontsynonym [cmssdi10] [LMSans10-DemiCondensedOblique]
- \stoptypescript
-
- \starttypescript [mono] [modern,latin-modern,computer-modern]
- \definefontsynonym [cmtt8] [LMTypewriter8-Regular]
- \definefontsynonym [cmtt9] [LMTypewriter9-Regular]
- \definefontsynonym [cmtt10] [LMTypewriter10-Regular]
- \definefontsynonym [cmtt12] [LMTypewriter12-Regular]
- \definefontsynonym [cmitt10] [LMTypewriter10-Italic]
- \definefontsynonym [cmsltt10] [LMTypewriter10-Oblique]
- \definefontsynonym [cmvtt10] [LMTypewriterVarWd10-Regular]
- \definefontsynonym [cmvtti10] [LMTypewriterVarWd10-Oblique]
- \definefontsynonym [cmtcsc10] [LMTypewriter10-CapsRegular]
- \stoptypescript
-
- \starttypescript [math] [modern,latin-modern,computer-modern]
- \definefontsynonym [cmbsy5] [LMMathSymbols5-BoldItalic]
- \definefontsynonym [cmbsy7] [LMMathSymbols7-BoldItalic]
- \definefontsynonym [cmbsy10] [LMMathSymbols10-BoldItalic]
- \definefontsynonym [cmsy5] [LMMathSymbols5-Italic]
- \definefontsynonym [cmsy6] [LMMathSymbols6-Italic]
- \definefontsynonym [cmsy7] [LMMathSymbols7-Italic]
- \definefontsynonym [cmsy8] [LMMathSymbols8-Italic]
- \definefontsynonym [cmsy9] [LMMathSymbols9-Italic]
- \definefontsynonym [cmsy10] [LMMathSymbols10-Italic]
- \definefontsynonym [cmex10] [LMMathExtension10-Regular]
- \definefontsynonym [cmmi5] [LMMathItalic5-Italic]
- \definefontsynonym [cmmi6] [LMMathItalic6-Italic]
- \definefontsynonym [cmmi7] [LMMathItalic7-Italic]
- \definefontsynonym [cmmi8] [LMMathItalic8-Italic]
- \definefontsynonym [cmmi9] [LMMathItalic9-Italic]
- \definefontsynonym [cmmi10] [LMMathItalic10-Italic]
- \definefontsynonym [cmmi12] [LMMathItalic12-Italic]
- \definefontsynonym [cmmib5] [LMMathItalic5-BoldItalic]
- \definefontsynonym [cmmib7] [LMMathItalic7-BoldItalic]
- \definefontsynonym [cmmib10] [LMMathItalic10-BoldItalic]
- \stoptypescript
-
- % This will change some day.
-
- \starttypescript [math] [modern,computer-modern,latin-modern] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [eufm10]
- \definefontsynonym [Blackboard] [msbm10]
- \definefontsynonym [Gothic] [eufm10]
- \definefontsynonym [Calligraphic] [cmsy10]
- \stoptypescript
-
- % Concrete Modern Roman : Donald Knuth
-
- \starttypescript [serif] [concrete] [name]
- \definefontsynonym [Serif] [ComputerConcrete]
- \definefontsynonym [SerifBold] [ComputerConcrete]
- \definefontsynonym [SerifItalic] [ComputerConcrete-Italic]
- \definefontsynonym [SerifSlanted] [ComputerConcrete-Slanted]
- \definefontsynonym [SerifBoldItalic] [ComputerConcrete-Italic]
- \definefontsynonym [SerifBoldSlanted] [ComputerConcrete-Slanted]
- \definefontsynonym [SerifCaps] [ComputerConcrete-Caps]
- \stoptypescript
-
- \starttypescript [math] [modern,computer-modern,latin-modern]
- \definefontsynonym [ComputerModernMath-Roman] [rm-lmr10]
- \definefontsynonym [ComputerModernMath-Extension] [lmex10]
- \definefontsynonym [ComputerModernMath-Italic] [lmmi10]
- \definefontsynonym [ComputerModernMath-Symbol] [lmsy10]
- \stoptypescript
-
- \starttypescript [boldmath,bfmath] [modern,computer-modern,latin-modern]
- \definefontsynonym [ComputerModernMath-Roman-Bold] [rm-lmb10]
- \definefontsynonym [ComputerModernMath-Extension] [lmex10]
- \definefontsynonym [ComputerModernMath-Italic-Bold] [lmmib10]
- \definefontsynonym [ComputerModernMath-Symbol-Bold] [lmbsy10]
- \stoptypescript
-
- \starttypescript [modern]
- \definetypeface [modern] [rm] [serif] [modern] [computer-modern] [features=default]
- \definetypeface [modern] [ss] [sans] [modern] [computer-modern] [features=default]
- \definetypeface [modern] [tt] [mono] [modern] [computer-modern] [features=default]
- \definetypeface [modern] [mm] [math] [modern] [computer-modern]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [modern-base]
- \definetypeface [modern] [rm] [serif] [modern] [default] [features=default]
- \definetypeface [modern] [ss] [sans] [modern] [default] [features=default]
- \definetypeface [modern] [tt] [mono] [modern] [default] [features=default]
- \definetypeface [modern] [mm] [math] [modern] [default]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [modernvariable]
- \definetypeface [modernvariable] [rm] [serif] [simple] [default] [features=default]
- \definetypeface [modernvariable] [ss] [sans] [modern] [default] [features=default]
- \definetypeface [modernvariable] [tt] [mono] [modern] [default] [features=default]
- \definetypeface [modernvariable] [mm] [math] [modern] [default]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [serif] [simple] [name] % bad, will be changed but in sycn with manuals that use it
- \definefontsynonym [Simple] [cmvtt10]
- \setupfontsynonym [Simple] [handling=pure]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[concrete]
-
- % Computer Concrete (AMS)
-
- \starttypescript [serif] [concrete]
- \definefontsynonym [ComputerConcrete] [ccr10]
- \definefontsynonym [ComputerConcrete-Italic] [ccti10]
- \definefontsynonym [ComputerConcrete-Slanted] [ccsl10]
- \definefontsynonym [ComputerConcrete-Bold] [ComputerConcrete]
- \definefontsynonym [ComputerConcrete-BoldItalic] [ComputerConcrete-Italic]
- \definefontsynonym [ComputerConcrete-BoldSlanted] [ComputerConcrete-Slanted]
- \definefontsynonym [ComputerConcrete-Caps] [cccsc10]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[euler]
-
- \starttypescript [math] [euler]
- \definefontsynonym [Euler-Roman] [zeurm10]
- \definefontsynonym [Euler-Extension] [zeuex10]
- \definefontsynonym [Euler-Symbol] [zeusm10]
- \definefontsynonym [Euler-Fraktur] [eufm10]
-
- \loadmapfile[original-ams-euler.map]
- \stoptypescript
-
- \starttypescript [boldmath,bfmath] [euler]
- \definefontsynonym [Euler-Roman-Bold] [zeurb10]
- \definefontsynonym [Euler-Extension] [zeuex10]
- \definefontsynonym [Euler-Symbol-Bold] [zeusb10]
- \definefontsynonym [Euler-Fraktur-Bold] [eufb10]
-
- \loadmapfile[original-ams-euler.map]
- \stoptypescript
-
- \starttypescript [math] [euler] [name]
- \definefontsynonym [MathRoman] [Euler-Roman] % mr
- \definefontsynonym [MathItalic] [Euler-Fraktur] % mi
- \definefontsynonym [MathExtension] [Euler-Extension] % ex
- \definefontsynonym [MathSymbol] [Euler-Symbol] % sy
- \stoptypescript
-
- \starttypescript [boldmath] [euler] [name]
- \definefontsynonym [MathRoman] [Euler-Roman-Bold] % mr
- \definefontsynonym [MathItalic] [Euler-Fraktur-Bold] % mi
- \definefontsynonym [MathExtension] [Euler-Extension] % ex
- \definefontsynonym [MathSymbol] [Euler-Symbol-Bold] % sy
- \stoptypescript
-
- \starttypescript [bfmath] [euler] [name]
- \definefontsynonym [MathRomanBold] [Euler-Roman-Bold] % mr
- \definefontsynonym [MathItalicBold] [Euler-Fraktur-Bold] % mi
- \definefontsynonym [MathExtension] [Euler-Extension] % ex
- \definefontsynonym [MathSymbolBold] [Euler-Symbol-Bold] % sy
- \stoptypescript
-
- \starttypescript [math] [euler] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [MathItalic]
- \definefontsynonym [Gothic] [MathItalic]
- \definefontsynonym [Calligraphic] [MathSymbol]
- \stoptypescript
-
- \starttypescript [boldmath] [euler] [name]
- \definefontsynonym [OldStyle] [MathItalicBold]
- \definefontsynonym [Fraktur] [MathItalicBold]
- \definefontsynonym [Gothic] [MathItalicBold]
- \definefontsynonym [Calligraphic] [MathSymbolBold]
- \stoptypescript
-
- \starttypescript [math,boldmath,bfmath] [euler] [name]
- \usemathcollection[eul]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[amssymbols]
-
- \starttypescript [math] [modern,computer-modern,latin-modern,ams] [name]
- \definefontsynonym [MathAlpha] [AMS-SymbolA]
- \definefontsynonym [MathBeta] [AMS-SymbolB]
- \stoptypescript
-
- \starttypescript [math] [modern,computer-modern,latin-modern,ams]
- \definefontsynonym [AMS-SymbolA] [msam10]
- \definefontsynonym [AMS-SymbolB] [msbm10]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[texgyre]
-
- \definetypescriptprefix [f:pagella] [pagella] \definetypescriptprefix [f:palatino] [pagella]
- \definetypescriptprefix [f:termes] [termes] \definetypescriptprefix [f:times] [termes]
- \definetypescriptprefix [f:heros] [heros] \definetypescriptprefix [f:helvetica] [heros]
- \definetypescriptprefix [f:bonum] [bonum] \definetypescriptprefix [f:bookman] [bonum]
- \definetypescriptprefix [f:schola] [schola] \definetypescriptprefix [f:schoolbook] [schola]
- \definetypescriptprefix [f:adventor][adventor] %definetypescriptprefix [f:adventor] [adventor]
- \definetypescriptprefix [f:cursor] [cursor] \definetypescriptprefix [f:courier] [cursor]
- \definetypescriptprefix [f:chorus] [chorus] \definetypescriptprefix [f:chancery] [chorus] % not the full set
-
- % \starttypescript [serif,sans,mono] [adventor,bonum,cursor,heros,pagella,palatino,schola,termes]
- % \starttypescript [serif] [pagella,palatino,termes,times,bonum,bookman,schola,schoolbook] [name]
-
- \starttypescript [serif,sans,mono] [adventor,bonum,bookman,cursor,courier,heros,helvetica,pagella,palatino,schola,schoolbook,termes,times]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [file:texgyre\typescriptprefix{f:\typescripttwo}-regular] [features=default]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Italic] [file:texgyre\typescriptprefix{f:\typescripttwo}-italic] [features=default]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Bold] [file:texgyre\typescriptprefix{f:\typescripttwo}-bold] [features=default]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalic] [file:texgyre\typescriptprefix{f:\typescripttwo}-bolditalic] [features=default]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Caps] [file:texgyre\typescriptprefix{f:\typescripttwo}-regular] [features=smallcaps]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-ItalicCaps] [file:texgyre\typescriptprefix{f:\typescripttwo}-italic] [features=smallcaps]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldCaps] [file:texgyre\typescriptprefix{f:\typescripttwo}-bold] [features=smallcaps]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps] [file:texgyre\typescriptprefix{f:\typescripttwo}-bolditalic] [features=smallcaps]
- \stoptypescript
-
- \starttypescript [serif,calligraphy] [chorus,chancery]
- \definefontsynonym [TeXGyreChorus-MediumItalic] [file:texgyrechorus-mediumitalic] [features=default]
- \stoptypescript
-
- \definetypescriptprefix [n:pagella] [TeXGyrePagella] \definetypescriptprefix [n:palatino] [TeXGyrePagella]
- \definetypescriptprefix [n:termes] [TeXGyreTermes] \definetypescriptprefix [n:times] [TeXGyreTermes]
- \definetypescriptprefix [n:heros] [TeXGyreHeros] \definetypescriptprefix [n:helvetica] [TeXGyreHeros]
- \definetypescriptprefix [n:bonum] [TeXGyreBonum] \definetypescriptprefix [n:bookman] [TeXGyreBonum]
- \definetypescriptprefix [n:schola] [TeXGyreSchola] \definetypescriptprefix [n:schoolbook] [TeXGyreSchola]
- \definetypescriptprefix [n:adventor] [TeXGyreAdventor] %definetypescriptprefix [n:adventor] [TeXGyreAdventor]
- \definetypescriptprefix [n:cursor] [TeXGyreCursor] \definetypescriptprefix [n:courier] [TeXGyreCursor]
- \definetypescriptprefix [n:chorus] [TeXGyreChorus] \definetypescriptprefix [n:chancery] [TeXGyreChorus] % not the full set
-
- \starttypescript [serif] [pagella,palatino,termes,times,bonum,bookman,schola,schoolbook] [name]
- \definefontsynonym [Serif] [\typescriptprefix{n:\typescripttwo}-Regular]
- \definefontsynonym [SerifItalic] [\typescriptprefix{n:\typescripttwo}-Italic]
- \definefontsynonym [SerifBold] [\typescriptprefix{n:\typescripttwo}-Bold]
- \definefontsynonym [SerifBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic]
- \definefontsynonym [SerifSlanted] [SerifItalic]
- \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
- \definefontsynonym [SerifCaps] [\typescriptprefix{n:\typescripttwo}-Caps]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [SerifCaps]
- \definefontsynonym [SerifItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps]
- \definefontsynonym [SerifBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps]
- \definefontsynonym [SerifBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps]
- \definefontsynonym [SerifSlantedCaps] [SerifItalicCaps]
- \definefontsynonym [SerifBoldSlantedCaps] [SerifBoldItalicCaps]
- \definefontsynonym [SerifCapsCaps] [SerifCaps]
- \stoptypescript
-
- \starttypescript [serif] [chorus,chancery] [name]
- \definefontsynonym [SerifMediumItalic] [TeXGyreChorus-MediumItalic]
- \definefontsynonym [Serif] [SerifMediumItalic]
- \definefontsynonym [SerifItalic] [SerifMediumItalic]
- \definefontsynonym [SerifBold] [SerifMediumItalic]
- \definefontsynonym [SerifBoldItalic] [SerifMediumItalic]
- \definefontsynonym [SerifSlanted] [SerifMediumItalic]
- \definefontsynonym [SerifBoldSlanted] [SerifMediumItalic]
- \definefontsynonym [SerifCaps] [SerifMediumItalic]
- \stoptypescript
-
- \starttypescript [calligraphy] [chorus,chancery] [name]
- \definefontsynonym [Calligraphy] [TeXGyreChorus-MediumItalic]
- \stoptypescript
-
- \starttypescript [sans] [heros,helvetica,adventor] [name]
- \definefontsynonym [Sans] [\typescriptprefix{n:\typescripttwo}-Regular]
- \definefontsynonym [SansItalic] [\typescriptprefix{n:\typescripttwo}-Italic]
- \definefontsynonym [SansBold] [\typescriptprefix{n:\typescripttwo}-Bold]
- \definefontsynonym [SansBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic]
- \definefontsynonym [SansSlanted] [SansItalic]
- \definefontsynonym [SansBoldSlanted] [SansBoldItalic]
- \definefontsynonym [SansCaps] [\typescriptprefix{n:\typescripttwo}-Caps]
-
- \definefontvariant [Sans][osf][Caps]
- \definefontvariant [Sans][sc] [Caps]
-
- \definefontsynonym [SansRegular] [Sans]
- \definefontsynonym [SansRegularCaps] [SansCaps]
- \definefontsynonym [SansItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps]
- \definefontsynonym [SansBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps]
- \definefontsynonym [SansBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps]
- \definefontsynonym [SansSlantedCaps] [SansItalicCaps]
- \definefontsynonym [SansBoldSlantedCaps] [SansBoldItalicCaps]
- \definefontsynonym [SansCapsCaps] [SansCaps]
- \stoptypescript
-
- \starttypescript [mono] [cursor,courier] [name]
- \definefontsynonym [Mono] [\typescriptprefix{n:\typescripttwo}-Regular]
- \definefontsynonym [MonoItalic] [\typescriptprefix{n:\typescripttwo}-Italic]
- \definefontsynonym [MonoBold] [\typescriptprefix{n:\typescripttwo}-Bold]
- \definefontsynonym [MonoBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic]
- \definefontsynonym [MonoSlanted] [MonoItalic]
- \definefontsynonym [MonoBoldSlanted] [MonoBoldItalic]
-
- \definefontvariant [Mono][osf][Caps]
- \definefontvariant [Mono][sc] [Caps]
-
- \definefontsynonym [MonoRegular] [Mono]
- \definefontsynonym [MonoRegularCaps] [MonoCaps]
- \definefontsynonym [MonoItalicCaps] [\typescriptprefix{n:\typescripttwo}-ItalicCaps]
- \definefontsynonym [MonoBoldCaps] [\typescriptprefix{n:\typescripttwo}-BoldCaps]
- \definefontsynonym [MonoBoldItalicCaps] [\typescriptprefix{n:\typescripttwo}-BoldItalicCaps]
- \definefontsynonym [MonoSlantedCaps] [MonoItalicCaps]
- \definefontsynonym [MonoBoldSlantedCaps] [MonoBoldItalicCaps]
- \definefontsynonym [MonoCapsCaps] [MonoCaps]
- \stoptypescript
-
- \starttypescript [times,termes]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [features=default]
- \definetypeface [\typescriptone] [ss] [sans] [helvetica] [default] [features=default,rscale=0.9]
- \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [features=default,rscale=1.05]
- \definetypeface [\typescriptone] [mm] [math] [times] [default]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [palatino,pagella]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [features=default]
- \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [features=default,rscale=1.075]
- \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [features=default,rscale=1.075]
- \definetypeface [\typescriptone] [mm] [math] [palatino] [default]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [schoolbook,schola]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [features=default]
- \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [features=default,rscale=1.1]
- \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [features=default,rscale=1.1]
- \definetypeface [\typescriptone] [mm] [math] [modern] [default] [rscale=1.1]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [bookman,bonum]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [features=default]
- \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [features=default,rscale=1.1]
- \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [features=default,rscale=1.1]
- \definetypeface [\typescriptone] [mm] [math] [modern] [default] [rscale=1.1]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [chancery,chorus]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [features=default]
- \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [features=default]
- \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [features=default]
- \definetypeface [\typescriptone] [mm] [math] [modern] [default]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [helvetica,heros]
- \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default] [features=default]
- \definetypeface [\typescriptone] [rm] [serif] [modern] [default] [features=default,rscale=1.15]
- \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [features=default,rscale=1.15]
- \definetypeface [\typescriptone] [mm] [math] [modern] [default] [rscale=1.15]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [avantgarde,adventor]
- \definetypeface [\typescriptone] [ss] [sans] [adventor] [default] [features=default]
- \definetypeface [\typescriptone] [rm] [serif] [modern] [default] [features=default,rscale=1.15]
- \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [features=default,rscale=1.15]
- \definetypeface [\typescriptone] [mm] [math] [modern] [default]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [courier,cursor]
- \definetypeface [\typescriptone] [tt] [mono] [\typescriptone] [default] [features=default]
- \definetypeface [\typescriptone] [rm] [serif] [modern] [default] [features=default]
- \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [features=default]
- \definetypeface [\typescriptone] [mm] [math] [modern] [default]
- \quittypescriptscanning
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[xmath]
-
- \starttypescript [math] [times] [all]
- \definefontsynonym [Times-Roman-Upright] [txr]
- \definefontsynonym [Times-Roman-Italic] [txi]
- \definefontsynonym [Times-Roman-Slanted] [txsl]
- \definefontsynonym [Times-Roman-Caps] [txsc]
- \definefontsynonym [Times-Companion-Upright] [tcxr]
- \definefontsynonym [Times-Companion-Italic] [tcxi]
- \definefontsynonym [Times-Companion-Slanted] [tcxsl]
- \definefontsynonym [Times-Math-Italic] [txmi]
- \definefontsynonym [Times-Math-Symbols] [txsy]
- \definefontsynonym [Times-Math-Extension] [txex]
- \definefontsynonym [Times-Math-SymbolsA] [txsya]
- \definefontsynonym [Times-Math-SymbolsB] [txsyb]
- \definefontsynonym [Times-Math-SymbolsC] [txsyc]
- \definefontsynonym [Times-Math-Italic-A] [txmia]
- \definefontsynonym [Times-Math-Extension-A] [txexa]
-
- \loadmapfile[original-youngryu-tx.map]
- \usemathcollection[default]
- \stoptypescript
-
- \starttypescript [math] [times] [name]
- \definefontsynonym [MathRoman] [Times-Roman-Upright]
- \definefontsynonym [MathExtension] [Times-Math-Extension]
- \definefontsynonym [MathItalic] [Times-Math-Italic]
- \definefontsynonym [MathSymbol] [Times-Math-Symbols]
- \definefontsynonym [MathAlpha] [Times-Math-SymbolsA]
- \definefontsynonym [MathBeta] [Times-Math-SymbolsB]
- \stoptypescript
-
- \starttypescript [math] [times] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [eufm10]
- \definefontsynonym [Blackboard] [MathBeta]
- \definefontsynonym [Gothic] [eufm10]
- \definefontsynonym [Calligraphic] [eusm10]
- \stoptypescript
-
- \starttypescript [math] [palatino] [all]
- \definefontsynonym [Palatino-Roman-Upright] [pxr]
- \definefontsynonym [Palatino-Roman-Italic] [pxi]
- \definefontsynonym [Palatino-Roman-Slanted] [pxsl]
- \definefontsynonym [Palatino-Roman-Caps] [pxsc]
- \definefontsynonym [Palatino-Companion-Upright] [pcxr]
- \definefontsynonym [Palatino-Companion-Italic] [pcxi]
- \definefontsynonym [Palatino-Companion-Slanted] [pcxsl]
- \definefontsynonym [Palatino-Math-Italic] [pxmi]
- \definefontsynonym [Palatino-Math-Symbols] [pxsy]
- \definefontsynonym [Palatino-Math-Extension] [pxex]
- \definefontsynonym [Palatino-Math-SymbolsA] [pxsya]
- \definefontsynonym [Palatino-Math-SymbolsB] [pxsyb]
- \definefontsynonym [Palatino-Math-SymbolsC] [pxsyc]
- \definefontsynonym [Palatino-Math-Italic-A] [pxmia]
- \definefontsynonym [Palatino-Math-Extension-A] [pxexa]
-
- \loadmapfile[original-youngryu-px.map]
- \usemathcollection[default]
- \stoptypescript
-
- \starttypescript [math] [palatino] [name]
- \definefontsynonym [MathRoman] [Palatino-Roman-Upright]
- \definefontsynonym [MathExtension] [Palatino-Math-Extension]
- \definefontsynonym [MathItalic] [Palatino-Math-Italic]
- \definefontsynonym [MathSymbol] [Palatino-Math-Symbols]
- \definefontsynonym [MathAlpha] [Palatino-Math-SymbolsA]
- \definefontsynonym [MathBeta] [Palatino-Math-SymbolsB]
- \stoptypescript
-
- \starttypescript [math] [palatino] [name]
- \definefontsynonym [OldStyle] [MathItalic]
- \definefontsynonym [Fraktur] [eufm10]
- \definefontsynonym [Blackboard] [MathBeta]
- \definefontsynonym [Gothic] [eufm10]
- \definefontsynonym [Calligraphic] [eusm10]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[antykwa]
-
- % Antykwa Torunska (GUST)
-
- \starttypescript [serif] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond]
- \definefontsynonym [AntykwaTorunska-Regular] [file:AntykwaTorunska-Regular] [features=default]
- \definefontsynonym [AntykwaTorunska-Italic] [file:AntykwaTorunska-Italic] [features=default]
- \definefontsynonym [AntykwaTorunska-Bold] [file:AntykwaTorunska-Bold] [features=default]
- \definefontsynonym [AntykwaTorunska-BoldItalic] [file:AntykwaTorunska-BoldItalic] [features=default]
- \definefontsynonym [AntykwaTorunska-Light] [file:AntykwaTorunskaLight-Regular] [features=default]
- \definefontsynonym [AntykwaTorunska-LightItalic] [file:AntykwaTorunskaLight-Italic] [features=default]
- \definefontsynonym [AntykwaTorunska-Medium] [file:AntykwaTorunskaMed-Regular] [features=default]
- \definefontsynonym [AntykwaTorunska-MedItalic] [file:AntykwaTorunskaMed-Italic] [features=default]
- \definefontsynonym [AntykwaTorunska-CondRegular] [file:AntykwaTorunskaCond-Regular] [features=default]
- \definefontsynonym [AntykwaTorunska-CondItalic] [file:AntykwaTorunskaCond-Italic] [features=default]
- \definefontsynonym [AntykwaTorunska-CondBold] [file:AntykwaTorunskaCond-Bold] [features=default]
- \definefontsynonym [AntykwaTorunska-CondBoldItalic] [file:AntykwaTorunskaCond-BoldItalic] [features=default]
- \definefontsynonym [AntykwaTorunska-CondLight] [file:AntykwaTorunskaCondLight-Regular] [features=default]
- \definefontsynonym [AntykwaTorunska-CondLightItalic] [file:AntykwaTorunskaCondLight-Italic] [features=default]
- \definefontsynonym [AntykwaTorunska-CondMedium] [file:AntykwaTorunskaCondMed-Regular] [features=default]
- \definefontsynonym [AntykwaTorunska-CondMedItalic] [file:AntykwaTorunskaCondMed-Italic] [features=default]
-
- \definefontsynonym [AntykwaTorunska-Cap] [file:AntykwaTorunska-Regular] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-ItalicCap] [file:AntykwaTorunska-Italic] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-BoldCap] [file:AntykwaTorunska-Bold] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-BoldItalicCap] [file:AntykwaTorunska-BoldItalic] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-LightCap] [file:AntykwaTorunskaLight-Regular] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-LightItalicCap] [file:AntykwaTorunskaLight-Italic] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-MediumCap] [file:AntykwaTorunskaMed-Regular] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-MedItalicCap] [file:AntykwaTorunskaMed-Italic] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-CondCap] [file:AntykwaTorunskaCond-Regular] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-CondItalicCap] [file:AntykwaTorunskaCond-Italic] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-CondBoldCap] [file:AntykwaTorunskaCond-Bold] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [file:AntykwaTorunskaCond-BoldItalic] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-CondLightCap] [file:AntykwaTorunskaCondLight-Regular] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-CondLightItalicCap][file:AntykwaTorunskaCondLight-Italic] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-CondMediumCap] [file:AntykwaTorunskaCondMed-Regular] [features=smallcaps]
- \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [file:AntykwaTorunskaCondMed-Italic] [features=smallcaps]
- \stoptypescript
-
- \starttypescript [math] [antykwa-torunska] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-Regular] [rm-anttr]
- \definefontsynonym [AntykwaTorunska-Math-Letters-Italic] [mi-anttri]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-Regular] [sy-anttrz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-Regular] [ex-anttr]
- \stoptypescript
-
- \starttypescript [math] [antykwa-torunska-light] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-Light] [rm-anttl]
- \definefontsynonym [AntykwaTorunska-Math-Letters-LightItalic] [mi-anttli]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-Light] [sy-anttlz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-Light] [ex-anttl]
- \stoptypescript
-
- \starttypescript [math] [antykwa-torunska-cond] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondRegular] [rm-anttcr]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondItalic] [mi-anttcri]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-CondRegular] [sy-anttcrz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-CondRegular] [ex-anttcr]
- \stoptypescript
-
- \starttypescript [math] [antykwa-torunska-lightcond] [default]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondLight] [rm-anttcl]
- \definefontsynonym [AntykwaTorunska-Math-Letters-CondLightItalic] [mi-anttcli]
- \definefontsynonym [AntykwaTorunska-Math-Symbols-CondLight] [sy-anttclz]
- \definefontsynonym [AntykwaTorunska-Math-Extension-CondLight] [ex-anttcl]
- \stoptypescript
-
- \starttypescript [math] [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond]
- \usemathcollection[default]
- \loadmapfile[antt-rm.map]
- \loadmapfile[antt-mi.map]
- \loadmapfile[antt-sy.map]
- \loadmapfile[antt-ex.map]
- \stoptypescript
-
- \starttypescript [antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond]
- \definetypeface[antykwa][rm][serif][\typescriptone] [default] [features=default]
- \definetypeface[antykwa][ss][sans] [modern] [default] [features=default,rscale=1.05]
- \definetypeface[antykwa][tt][mono] [modern] [default] [features=default,rscale=1.05]
- \definetypeface[antykwa][mm][math] [\typescriptone] [default]
- \quittypescriptscanning
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska] [name]
- \definefontsynonym [Serif] [AntykwaTorunska-Regular]
- \definefontsynonym [SerifBold] [AntykwaTorunska-Bold]
- \definefontsynonym [SerifItalic] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifSlanted] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifCaps] [AntykwaTorunska-Cap]
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska-light] [name]
- \definefontsynonym [Serif] [AntykwaTorunska-Light]
- \definefontsynonym [SerifBold] [AntykwaTorunska-Medium]
- \definefontsynonym [SerifItalic] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifSlanted] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifCaps] [AntykwaTorunska-LightCap]
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska-cond] [name]
- \definefontsynonym [Serif] [AntykwaTorunska-CondRegular]
- \definefontsynonym [SerifBold] [AntykwaTorunska-CondBold]
- \definefontsynonym [SerifItalic] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifSlanted] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifCaps] [AntykwaTorunska-CondCap]
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska-lightcond] [name]
- \definefontsynonym [Serif] [AntykwaTorunska-CondLight]
- \definefontsynonym [SerifBold] [AntykwaTorunska-CondMedium]
- \definefontsynonym [SerifItalic] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifSlanted] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifBoldItalic] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifCaps] [AntykwaTorunska-CondLightCap]
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-Cap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-BoldCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-ItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-ItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-BoldItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-BoldItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-Cap]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegularLight] [AntykwaTorunska-Light]
- \definefontsynonym [SerifBoldLight] [AntykwaTorunska-Medium]
- \definefontsynonym [SerifItalicLight] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifSlantedLight] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifBoldItalicLight] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifBoldSlantedLight] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifCapsLight] [AntykwaTorunska-LightCap]
-
- \definefontvariant [Serif][lt][Light]
-
- \definefontsynonym [SerifRegularCond] [AntykwaTorunska-CondRegular]
- \definefontsynonym [SerifBoldCond] [AntykwaTorunska-CondBold]
- \definefontsynonym [SerifItalicCond] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifSlantedCond] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifBoldItalicCond] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifBoldSlantedCond] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifCapsCond] [AntykwaTorunska-CondCap]
-
- \definefontvariant [Serif][cond][Cond]
-
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska-light] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-LightCap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-MediumCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-LightItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-LightItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-MedItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-MedItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-LightCap]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegularDark] [AntykwaTorunska-Regular]
- \definefontsynonym [SerifBoldDark] [AntykwaTorunska-Bold]
- \definefontsynonym [SerifItalicDark] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifSlantedDark] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifBoldItalicDark] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifBoldSlantedDark] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifCapsDark] [AntykwaTorunska-Cap]
-
- \definefontvariant [Serif][dk][Dark]
-
- \definefontsynonym [SerifRegularCond] [AntykwaTorunska-CondLight]
- \definefontsynonym [SerifBoldCond] [AntykwaTorunska-CondMedium]
- \definefontsynonym [SerifItalicCond] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifSlantedCond] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifBoldItalicCond] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifBoldSlantedCond] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifCapsCond] [AntykwaTorunska-CondLightCap]
-
- \definefontvariant [Serif][cond][Cond]
-
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska-cond] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-CondCap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-CondBoldCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-CondItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-CondItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-CondBoldItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-CondBoldItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-CondCap]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegularLight] [AntykwaTorunska-CondLight]
- \definefontsynonym [SerifBoldLight] [AntykwaTorunska-CondMedium]
- \definefontsynonym [SerifItalicLight] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifSlantedLight] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifBoldItalicLight] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifBoldSlantedLight] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifCapsLight] [AntykwaTorunska-CondLightCap]
-
- \definefontvariant [Serif][lt][Light]
-
- \definefontsynonym [SerifRegularExp] [AntykwaTorunska-Regular]
- \definefontsynonym [SerifBoldExp] [AntykwaTorunska-Bold]
- \definefontsynonym [SerifItalicExp] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifSlantedExp] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifBoldItalicExp] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifBoldSlantedExp] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifCapsExp] [AntykwaTorunska-Cap]
-
- \definefontvariant [Serif][exp][Exp]
-
- \stoptypescript
-
- \starttypescript [serif] [antykwa-torunska-lightcond] [name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-CondLightCap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-CondMediumCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-CondLightItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-CondLightItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-CondMedItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-CondMedItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-CondLightCap]
-
- \definefontvariant [Serif][osf][Caps]
- \definefontvariant [Serif][sc] [Caps]
-
- \definefontsynonym [SerifRegularDark] [AntykwaTorunska-CondRegular]
- \definefontsynonym [SerifBoldDark] [AntykwaTorunska-CondBold]
- \definefontsynonym [SerifItalicDark] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifSlantedDark] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifBoldItalicDark] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifBoldSlantedDark] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifCapsDark] [AntykwaTorunska-CondCap]
-
- \definefontvariant [Serif][dk][Dark]
-
- \definefontsynonym [SerifRegularExp] [AntykwaTorunska-Light]
- \definefontsynonym [SerifBoldExp] [AntykwaTorunska-Medium]
- \definefontsynonym [SerifItalicExp] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifSlantedExp] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifBoldItalicExp] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifBoldSlantedExp] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifCapsExp] [AntykwaTorunska-LightCap]
-
- \definefontvariant [Serif][exp][Exp]
-
- \stoptypescript
-
- % maybe no -Regular etc
-
- \starttypescript [math] [antykwa-torunska-light] [name]
- \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-Light]
- \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-LightItalic]
- \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-Light]
- \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-Light]
- \stoptypescript
-
- \starttypescript [math] [antykwa-torunska] [name]
- \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-Regular]
- \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-Italic]
- \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-Regular]
- \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-Regular]
- \stoptypescript
-
- \starttypescript [math] [antykwa-torunska-cond] [name]
- \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-CondRegular]
- \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-CondItalic]
- \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-CondRegular]
- \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-CondRegular]
- \stoptypescript
-
- \starttypescript [math] [antykwa-torunska-lightcond] [name]
- \definefontsynonym [MathRoman] [AntykwaTorunska-Math-Letters-CondLight]
- \definefontsynonym [MathItalic] [AntykwaTorunska-Math-Letters-CondLightItalic]
- \definefontsynonym [MathSymbol] [AntykwaTorunska-Math-Symbols-CondLight]
- \definefontsynonym [MathExtension] [AntykwaTorunska-Math-Extension-CondLight]
- \stoptypescript
-
- % Antykwa Poltawskiego (GUST)
-
- % \starttypescript [serif] [antykwa-poltawskiego]
- % \definefontsynonym [AntykwaPoltawskiego-Regular] [antpr]
- % \definefontsynonym [AntykwaPoltawskiego-Bold] [antpb]
- % \definefontsynonym [AntykwaPoltawskiego-Italic] [antpri]
- % \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [antpbi]
- % \stoptypescript
-
- % \starttypescript [serif] [antykwa-poltawskiego] [name]
- % \definefontsynonym [Serif] [AntykwaPoltawskiego-Regular]
- % \definefontsynonym [SerifBold] [AntykwaPoltawskiego-Bold]
- % \definefontsynonym [SerifItalic] [AntykwaPoltawskiego-Italic]
- % \definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-Italic]
- % \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-Bold]
- % \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-Bold]
- % \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-Regular]
- % \stoptypescript
-
- % names of "Caps" may still change
- \starttypescript [serif] [antykwa-poltawskiego,antykwa-poltawskiego-light]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-Light] [\s!file:antpoltltcond-regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-LightItalic] [\s!file:antpoltltcond-italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-Regular] [\s!file:antpoltcond-regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-Italic] [\s!file:antpoltcond-italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-Medium] [\s!file:antpoltltcond-bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-MediumItalic] [\s!file:antpoltltcond-bolditalic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-Bold] [\s!file:antpoltcond-bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-BoldItalic] [\s!file:antpoltcond-bolditalic] [\s!features=\s!default]
-
- \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsLight] [\s!file:antpoltltcond-regular] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsLightItalic] [\s!file:antpoltltcond-italic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsRegular] [\s!file:antpoltcond-regular] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsItalic] [\s!file:antpoltcond-italic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsMedium] [\s!file:antpoltltcond-bold] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsMediumItalic] [\s!file:antpoltltcond-bolditalic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsBold] [\s!file:antpoltcond-bold] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-Condensed-CapsBoldItalic] [\s!file:antpoltcond-bolditalic] [\s!features=\s!smallcaps]
-
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Light] [\s!file:antpoltltsemicond-regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-LightItalic] [\s!file:antpoltltsemicond-italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Regular] [\s!file:antpoltsemicond-regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Italic] [\s!file:antpoltsemicond-italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Medium] [\s!file:antpoltltsemicond-bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-MediumItalic] [\s!file:antpoltltsemicond-bolditalic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-Bold] [\s!file:antpoltsemicond-bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-BoldItalic] [\s!file:antpoltsemicond-bolditalic] [\s!features=\s!default]
-
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsLight] [\s!file:antpoltltsemicond-regular] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsLightItalic] [\s!file:antpoltltsemicond-italic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsRegular] [\s!file:antpoltsemicond-regular] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsItalic] [\s!file:antpoltsemicond-italic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsMedium] [\s!file:antpoltltsemicond-bold] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsMediumItalic] [\s!file:antpoltltsemicond-bolditalic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsBold] [\s!file:antpoltsemicond-bold] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-SemiCondensed-CapsBoldItalic] [\s!file:antpoltsemicond-bolditalic] [\s!features=\s!smallcaps]
-
- \definefontsynonym [AntykwaPoltawskiego-Light] [\s!file:antpoltlt-regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-LightItalic] [\s!file:antpoltlt-italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Regular] [\s!file:antpolt-regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Italic] [\s!file:antpolt-italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Medium] [\s!file:antpoltlt-bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-MediumItalic] [\s!file:antpoltlt-bolditalic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Bold] [\s!file:antpolt-bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-BoldItalic] [\s!file:antpolt-bolditalic] [\s!features=\s!default]
-
- \definefontsynonym [AntykwaPoltawskiego-CapsLight] [\s!file:antpoltcond-regular] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-CapsLightItalic] [\s!file:antpoltcond-italic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-CapsRegular] [\s!file:antpolt-regular] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-CapsItalic] [\s!file:antpolt-italic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-CapsMedium] [\s!file:antpoltcond-bold] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-CapsMediumItalic] [\s!file:antpoltcond-bolditalic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-CapsBold] [\s!file:antpolt-bold] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-CapsBoldItalic] [\s!file:antpolt-bolditalic] [\s!features=\s!smallcaps]
-
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-Light] [\s!file:antpoltltsemiexpd-regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-LightItalic] [\s!file:antpoltltsemiexpd-italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-Regular] [\s!file:antpoltsemiexpd-regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-Italic] [\s!file:antpoltsemiexpd-italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-Medium] [\s!file:antpoltltsemiexpd-bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-MediumItalic] [\s!file:antpoltltsemiexpd-bolditalic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-Bold] [\s!file:antpoltsemiexpd-bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-BoldItalic] [\s!file:antpoltsemiexpd-bolditalic] [\s!features=\s!default]
-
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsLight] [\s!file:antpoltltsemiexpd-regular] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsLightItalic] [\s!file:antpoltltsemiexpd-italic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsRegular] [\s!file:antpoltsemiexpd-regular] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsItalic] [\s!file:antpoltsemiexpd-italic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsMedium] [\s!file:antpoltltsemiexpd-bold] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsMediumItalic] [\s!file:antpoltltsemiexpd-bolditalic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsBold] [\s!file:antpoltsemiexpd-bold] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-SemiExpanded-CapsBoldItalic] [\s!file:antpoltsemiexpd-bolditalic] [\s!features=\s!smallcaps]
-
- \definefontsynonym [AntykwaPoltawskiego-Expanded-Light] [\s!file:antpoltltexpd-regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-LightItalic] [\s!file:antpoltltexpd-italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-Regular] [\s!file:antpoltexpd-regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-Italic] [\s!file:antpoltexpd-italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-Medium] [\s!file:antpoltltexpd-bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-MediumItalic] [\s!file:antpoltltexpd-bolditalic] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-Bold] [\s!file:antpoltexpd-bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-BoldItalic] [\s!file:antpoltexpd-bolditalic] [\s!features=\s!default]
-
- \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsLight] [\s!file:antpoltltexpd-regular] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsLightItalic] [\s!file:antpoltltexpd-italic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsRegular] [\s!file:antpoltexpd-regular] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsItalic] [\s!file:antpoltexpd-italic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsMedium] [\s!file:antpoltltexpd-bold] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsMediumItalic] [\s!file:antpoltltexpd-bolditalic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsBold] [\s!file:antpoltexpd-bold] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaPoltawskiego-Expanded-CapsBoldItalic] [\s!file:antpoltexpd-bolditalic] [\s!features=\s!smallcaps]
- \stoptypescript
-
- \starttypescript [serif] [antykwa-poltawskiego] [name]
- \definefontsynonym [Serif] [AntykwaPoltawskiego-Regular]
- \definefontsynonym [SerifBold] [AntykwaPoltawskiego-Bold]
- \definefontsynonym [SerifItalic] [AntykwaPoltawskiego-Italic]
- \definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-Italic]
- \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-BoldItalic]
- \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-CapsRegular]
- \stoptypescript
-
- \starttypescript [serif] [antykwa-poltawskiego-light] [name]
- \definefontsynonym [Serif] [AntykwaPoltawskiego-Light]
- \definefontsynonym [SerifBold] [AntykwaPoltawskiego-Medium]
- \definefontsynonym [SerifItalic] [AntykwaPoltawskiego-LightItalic]
- \definefontsynonym [SerifSlanted] [AntykwaPoltawskiego-LightItalic]
- \definefontsynonym [SerifBoldItalic] [AntykwaPoltawskiego-MediumItalic]
- \definefontsynonym [SerifBoldSlanted] [AntykwaPoltawskiego-MediumItalic]
- \definefontsynonym [SerifCaps] [AntykwaPoltawskiego-CapsLight]
- \stoptypescript
-
- % condensed and extended variants are still missing
-
- \starttypescript [antykwa-poltawskiego,antykwa-poltawskiego-light]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [features=default]
- \definetypeface [\typescriptone] [ss] [sans] [modern] [default] [features=default,rscale=1.05]
- \definetypeface [\typescriptone] [tt] [mono] [modern] [default] [features=default,rscale=1.05]
- \definetypeface [\typescriptone] [mm] [math] [modern] [default] [rscale=1.05]
- \quittypescriptscanning
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[iwona]
-
- % maybe this will change in Iwona-Math-Letters and Iwona-Math-Letters-Italic
-
- % These names are a depressing mess. They have changed over time and are
- % still not consistent. I'd expect Bold-Regular and Bold-Italic.
-
- \starttypescript [sans] [iwona-light,iwona,iwona-medium,iwona-heavy,iwona-light-cond,iwona-cond,iwona-medium-cond,iwona-heavy-cond]
-
- \definefontsynonym [Iwona-Regular] [file:Iwona-Regular] [features=default]
- \definefontsynonym [Iwona-Italic] [file:Iwona-Italic] [features=default]
- \definefontsynonym [Iwona-Bold] [file:Iwona-Bold] [features=default]
- \definefontsynonym [Iwona-BoldItalic] [file:Iwona-BoldItalic] [features=default]
- \definefontsynonym [Iwona-Light-Regular] [file:IwonaLight-Regular] [features=default]
- \definefontsynonym [Iwona-Light-Italic] [file:IwonaLight-Italic] [features=default]
- \definefontsynonym [Iwona-Medium-Regular] [file:IwonaMedium-Regular] [features=default]
- \definefontsynonym [Iwona-Medium-Italic] [file:IwonaMedium-Italic] [features=default]
- \definefontsynonym [Iwona-Heavy-Regular] [file:IwonaHeavy-Regular] [features=default]
- \definefontsynonym [Iwona-Heavy-Italic] [file:IwonaHeavy-Italic] [features=default]
-
- \definefontsynonym [Iwona-CapsRegular] [file:Iwona-Regular] [features=smallcaps]
- \definefontsynonym [Iwona-CapsItalic] [file:Iwona-Italic] [features=smallcaps]
- \definefontsynonym [Iwona-CapsBold] [file:Iwona-Bold] [features=smallcaps]
- \definefontsynonym [Iwona-CapsBoldItalic] [file:Iwona-BoldItalic] [features=smallcaps]
- \definefontsynonym [Iwona-CapsLight] [file:IwonaLight-Regular] [features=smallcaps]
- \definefontsynonym [Iwona-CapsLight-Italic] [file:IwonaLight-Italic] [features=smallcaps]
- \definefontsynonym [Iwona-CapsMedium] [file:IwonaMedium-Regular] [features=smallcaps]
- \definefontsynonym [Iwona-CapsMedium-Italic] [file:IwonaMedium-Italic] [features=smallcaps]
- \definefontsynonym [Iwona-CapsHeavy] [file:IwonaHeavy-Regular] [features=smallcaps]
- \definefontsynonym [Iwona-CapsHeavy-Italic] [file:IwonaHeavy-Italic] [features=smallcaps]
-
- \definefontsynonym [Iwona-CondRegular] [file:IwonaCond-Regular] [features=default]
- \definefontsynonym [Iwona-CondItalic] [file:IwonaCond-Italic] [features=default]
- \definefontsynonym [Iwona-CondBold] [file:IwonaCond-Bold] [features=default]
- \definefontsynonym [Iwona-CondBoldItalic] [file:IwonaCond-BoldItalic] [features=default]
- \definefontsynonym [Iwona-CondLight-Regular] [file:IwonaCondLight-Regular] [features=default]
- \definefontsynonym [Iwona-CondLight-Italic] [file:IwonaCondLight-Italic] [features=default]
- \definefontsynonym [Iwona-CondMedium-Regular] [file:IwonaCondMedium-Regular] [features=default]
- \definefontsynonym [Iwona-CondMedium-Italic] [file:IwonaCondMedium-Italic] [features=default]
- \definefontsynonym [Iwona-CondHeavy-Regular] [file:IwonaCondHeavy-Regular] [features=default]
- \definefontsynonym [Iwona-CondHeavy-Italic] [file:IwonaCondHeavy-Italic] [features=default]
-
- \definefontsynonym [Iwona-CapsCondRegular] [file:IwonaCond-Regular] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondItalic] [file:IwonaCond-Italic] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondBold] [file:IwonaCond-Bold] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondBoldItalic] [file:IwonaCond-BoldItalic] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondLight-Regular] [file:IwonaCondLight-Regular] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondLight-Italic] [file:IwonaCondLight-Italic] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondMedium-Regular][file:IwonaCondMedium-Regular] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondMedium-Italic] [file:IwonaCondMedium-Italic] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondHeavy-Regular] [file:IwonaCondHeavy-Regular] [features=smallcaps]
- \definefontsynonym [Iwona-CapsCondHeavy-Italic] [file:IwonaCondHeavy-Italic] [features=smallcaps]
-
- \stoptypescript
-
- \starttypescript [math] [iwona] [default]
- \definefontsynonym [Iwona-Math-Letters-Regular] [rm-iwonar]
- \definefontsynonym [Iwona-Math-Letters-Italic] [mi-iwonari]
- \definefontsynonym [Iwona-Math-Symbols-Regular] [sy-iwonarz]
- \definefontsynonym [Iwona-Math-Extension-Regular] [ex-iwonar]
- \stoptypescript
-
- \starttypescript [math] [iwona-light] [default]
- \definefontsynonym [Iwona-Math-Letters-Light-Regular] [rm-iwonal]
- \definefontsynonym [Iwona-Math-Letters-Light-Italic] [mi-iwonali]
- \definefontsynonym [Iwona-Math-Symbols-Light] [sy-iwonalz]
- \definefontsynonym [Iwona-Math-Extension-Light] [ex-iwonal]
- \stoptypescript
-
- \starttypescript [math] [iwona-medium] [default]
- \definefontsynonym [Iwona-Math-Letters-Medium-Regular][rm-iwonam]
- \definefontsynonym [Iwona-Math-Letters-Medium-Italic] [mi-iwonami]
- \definefontsynonym [Iwona-Math-Symbols-Medium] [sy-iwonamz]
- \definefontsynonym [Iwona-Math-Extension-Medium] [ex-iwonam]
- \stoptypescript
-
- \starttypescript [math] [iwona-heavy] [default]
- \definefontsynonym [Iwona-Math-Letters-Heavy-Regular] [rm-iwonah]
- \definefontsynonym [Iwona-Math-Letters-Heavy-Italic] [mi-iwonahi]
- \definefontsynonym [Iwona-Math-Symbols-Heavy] [sy-iwonahz]
- \definefontsynonym [Iwona-Math-Extension-Heavy] [ex-iwonah]
- \stoptypescript
-
- \starttypescript [math] [iwona,iwona-light,iwona-medium,iwona-heavy] [default]
- \usemathcollection[default]
- \loadmapfile[iwona-rm.map]
- \loadmapfile[iwona-mi.map]
- \loadmapfile[iwona-sy.map]
- \loadmapfile[iwona-ex.map]
- \stoptypescript
-
- \starttypescript [sans] [iwona-light] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Light-Regular]
- \definefontsynonym [SansItalic] [Iwona-Light-Italic]
- \definefontsynonym [SansBold] [Iwona-Medium-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-Medium-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsLight-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsLight-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsMedium]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsMediumItalic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-light-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsLight-Regular]
- \definefontsynonym [SansItalic] [Iwona-CapsLight-Italic]
- \definefontsynonym [SansBold] [Iwona-CapsMedium-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsMedium-Italic]
- \stoptypescript
-
- \starttypescript [sans] [iwona] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Regular]
- \definefontsynonym [SansItalic] [Iwona-Italic]
- \definefontsynonym [SansBold] [Iwona-Bold]
- \definefontsynonym [SansBoldItalic] [Iwona-BoldItalic]
- \definefontsynonym [SansCaps] [Iwona-CapsRegular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsBold]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsBoldItalic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsRegular]
- \definefontsynonym [SansItalic] [Iwona-CapsItalic]
- \definefontsynonym [SansBold] [Iwona-CapsBold]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsBoldItalic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-medium] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Medium-Regular]
- \definefontsynonym [SansItalic] [Iwona-Medium-Italic]
- \definefontsynonym [SansBold] [Iwona-Heavy-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-Heavy-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsMedium-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-medium-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansItalic] [Iwona-CapsMedium-Italic]
- \definefontsynonym [SansBold] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsHeavy-Italic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-heavy] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-Heavy-Regular]
- \definefontsynonym [SansItalic] [Iwona-Heavy-Italic]
- \definefontsynonym [SansBold] [Iwona-Heavy-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-Heavy-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavy-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-heavy-caps] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavy-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-light-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondLight-Regular]
- \definefontsynonym [SansItalic] [Iwona-CondLight-Italic]
- \definefontsynonym [SansBold] [Iwona-CondMedium-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CondMedium-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsCondLight-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsCondLight-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsCondMedium-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondMedium-Italic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-light-cond-caps,iwona-light-caps-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsCondLight-Regular]
- \definefontsynonym [SansItalic] [Iwona-CapsCondLight-Italic]
- \definefontsynonym [SansBold] [Iwona-CapsCondMedium-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsCondMedium-Italic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondRegular]
- \definefontsynonym [SansItalic] [Iwona-CondItalic]
- \definefontsynonym [SansBold] [Iwona-CondBold]
- \definefontsynonym [SansBoldItalic] [Iwona-CondBoldItalic]
- \definefontsynonym [SansCaps] [Iwona-CapsCondRegular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsCondItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsCondBold]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondBoldItalic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-cond-caps,iwona-caps-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsCondRegular]
- \definefontsynonym [SansItalic] [Iwona-CapsCondItalic]
- \definefontsynonym [SansBold] [Iwona-CapsCondBold]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsCondBoldItalic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-medium-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CondMedium-Regular]
- \definefontsynonym [SansItalic] [Iwona-CondMedium-Italic]
- \definefontsynonym [SansBold] [Iwona-CondHeavy-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CondHeavy-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsCondHeavy-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsCondMedium-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsCondHeavy-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondHeavy-Italic]
- \stoptypescript
-
- \starttypescript [sans] [iwona-medium-cond-caps,iwona-medium-caps-cond] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Iwona-CapsCondHeavy-Regular]
- \definefontsynonym [SansItalic] [Iwona-CapsCondMedium-Italic]
- \definefontsynonym [SansBold] [Iwona-CapsCondHeavy-Regular]
- \definefontsynonym [SansBoldItalic] [Iwona-CapsCondHeavy-Italic]
- \stoptypescript
-
- \starttypescript [math] [iwona-light] [name]
- \definefontsynonym [MathRoman] [Iwona-Math-Letters-Light-Regular]
- \definefontsynonym [MathItalic] [Iwona-Math-Letters-Light-Italic]
- \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Light]
- \definefontsynonym [MathExtension] [Iwona-Math-Extension-Light]
- \stoptypescript
-
- \starttypescript [math] [iwona] [name]
- \definefontsynonym [MathRoman] [Iwona-Math-Letters-Regular]
- \definefontsynonym [MathItalic] [Iwona-Math-Letters-Italic]
- \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Regular]
- \definefontsynonym [MathExtension] [Iwona-Math-Extension-Regular]
- \stoptypescript
-
- \starttypescript [math] [iwona-medium] [name]
- \definefontsynonym [MathRoman] [Iwona-Math-Letters-Medium-Regular]
- \definefontsynonym [MathItalic] [Iwona-Math-Letters-Medium-Italic]
- \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Medium]
- \definefontsynonym [MathExtension] [Iwona-Math-Extension-Medium]
- \stoptypescript
-
- \starttypescript [math] [iwona-heavy] [name]
- \definefontsynonym [MathRoman] [Iwona-Math-Letters-Heavy-Regular]
- \definefontsynonym [MathItalic] [Iwona-Math-Letters-Heavy-Italic]
- \definefontsynonym [MathSymbol] [Iwona-Math-Symbols-Heavy]
- \definefontsynonym [MathExtension] [Iwona-Math-Extension-Heavy]
- \stoptypescript
-
- \starttypescript [iwona,iwona-light,iwona-heavy,iwona-medium]
- \definetypeface[\typescriptone][ss][sans] [\typescriptone] [default] [features=default]
- \definetypeface[\typescriptone][rm][serif][modern] [default] [features=default]
- \definetypeface[\typescriptone][tt][mono] [modern] [default] [features=default]
- \definetypeface[\typescriptone][mm][math] [\typescriptone] [default] [features=default,text=ss]
- \quittypescriptscanning
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[kurier]
-
- \starttypescript [sans] [kurier-light,kurier,kurier-medium]
- \definefontsynonym[Kurier-Light] [kurierl]
- \definefontsynonym[Kurier-Regular] [kurierr]
- \definefontsynonym[Kurier-Medium] [kurierm]
- \definefontsynonym[Kurier-Bold] [kurierb]
- \definefontsynonym[Kurier-Heavy] [kurierh]
- \definefontsynonym[Kurier-LightItalic] [kurierli]
- \definefontsynonym[Kurier-Italic] [kurierri]
- \definefontsynonym[Kurier-MediumItalic] [kuriermi]
- \definefontsynonym[Kurier-BoldItalic] [kurierbi]
- \definefontsynonym[Kurier-HeavyItalic] [kurierhi]
- \stoptypescript
-
- \starttypescript [math] [kurier] [default]
- \definefontsynonym [Kurier-Math-Letters-Regular] [rm-kurierr]
- \definefontsynonym [Kurier-Math-Letters-Italic] [mi-kurierri]
- \definefontsynonym [Kurier-Math-Symbols-Regular] [sy-kurierrz]
- \definefontsynonym [Kurier-Math-Extension-Regular] [ex-kurierr]
- \stoptypescript
-
- \starttypescript [math] [kurier-light] [default]
- \definefontsynonym [Kurier-Math-Letters-Light-Regular] [rm-kurierl]
- \definefontsynonym [Kurier-Math-Letters-Light-Italic] [mi-kurierli]
- \definefontsynonym [Kurier-Math-Symbols-Light] [sy-kurierlz]
- \definefontsynonym [Kurier-Math-Extension-Light] [ex-kurierl]
- \stoptypescript
-
- \starttypescript [math] [kurier-medium] [default]
- \definefontsynonym [Kurier-Math-Letters-Medium-Regular] [rm-kurierm]
- \definefontsynonym [Kurier-Math-Letters-Medium-Italic] [mi-kuriermi]
- \definefontsynonym [Kurier-Math-Symbols-Medium-Regular] [sy-kuriermz]
- \definefontsynonym [Kurier-Math-Extension-Medium] [ex-kurierm]
- \stoptypescript
-
- \starttypescript [math] [kurier,kurier-light,kurier-medium] [default]
- \loadmapfile[kurier-rm.map]
- \loadmapfile[kurier-mi.map]
- \loadmapfile[kurier-sy.map]
- \loadmapfile[kurier-ex.map]
- \stoptypescript
-
- \starttypescript [sans] [kurier-light] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Kurier-Light-Regular]
- \definefontsynonym [SansItalic] [Kurier-Light-Italic]
- \definefontsynonym [SansBold] [Kurier-Medium-Regular]
- \definefontsynonym [SansBoldItalic] [Kurier-Medium-Italic]
- \stoptypescript
-
- \starttypescript [sans] [kurier] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Kurier-Regular]
- \definefontsynonym [SansItalic] [Kurier-Italic]
- \definefontsynonym [SansBold] [Kurier-Bold]
- \definefontsynonym [SansBoldItalic] [Kurier-BoldItalic]
- \stoptypescript
-
- \starttypescript [sans] [kurier-medium] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Kurier-Medium-Regular]
- \definefontsynonym [SansItalic] [Kurier-Medium-Italic]
- \definefontsynonym [SansBold] [Kurier-Heavy-Regular]
- \definefontsynonym [SansBoldItalic] [Kurier-Heavy-Italic]
- \stoptypescript
-
- \starttypescript [math] [kurier-light] [name]
- \definefontsynonym [MathRoman] [Kurier-Math-Letters-Light-Regular]
- \definefontsynonym [MathItalic] [Kurier-Math-Letters-Light-Italic]
- \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Light]
- \definefontsynonym [MathExtension] [Kurier-Math-Extension-Light]
- \stoptypescript
-
- \starttypescript [math] [kurier] [name]
- \definefontsynonym [MathRoman] [Kurier-Math-Letters-Regular]
- \definefontsynonym [MathItalic] [Kurier-Math-Letters-Italic]
- \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Regular]
- \definefontsynonym [MathExtension] [Kurier-Math-Extension-Regular]
- \stoptypescript
-
- \starttypescript [math] [kurier-medium] [name]
- \definefontsynonym [MathRoman] [Kurier-Math-Letters-Medium-Regular]
- \definefontsynonym [MathItalic] [Kurier-Math-Letters-Medium-Italic]
- \definefontsynonym [MathSymbol] [Kurier-Math-Symbols-Medium]
- \definefontsynonym [MathExtension] [Kurier-Math-Extension-Medium]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[symbols]
-
- \starttypescript
- \definefontsynonym [ZapfDingbats] [uzdr]
- \definefontsynonym [RalfSmithFormalScript] [rsfs10]
- \definefontsynonym [MartinVogel] [umvs]
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[charter]
-
- % is this ok?
-
- \starttypescript [serif] [charter]
- \definefontsynonym [Charter-Roman] [name:CharterBT-Roman] % or: [bchr8a]
- \definefontsynonym [Charter-Italic] [name:CharterBT-Italic] % or: [bchri8a]
- \definefontsynonym [Charter-Bold] [name:CharterBT-Bold] % or: [bchb8a]
- \definefontsynonym [Charter-BoldItalic] [name:CharterBT-BoldItalic] % or: [bchbi8a]
- \definefontsynonym [Charter-Slanted] [name:CharterBT-Italic] % or: [bchri8a]
- \definefontsynonym [Charter-BoldSlanted] [name:CharterBT-BoldItalic] % or: [bchbi8a]
- \definefontsynonym [Charter-Roman-Caps] [Charter-Roman] % not present
- \stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[postscript]
-
- \starttypescript [postscript]
- \definetypeface [postscript] [rm] [serif] [times] [default] [features=default]
- \definetypeface [postscript] [ss] [sans] [helvetica] [default] [features=default,rscale=0.9]
- \definetypeface [postscript] [tt] [mono] [courier] [default] [features=default,rscale=1.1]
- \definetypeface [postscript] [mm] [math] [times] [default]
- \quittypescriptscanning
- \stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/type-run.mkii b/Master/texmf-dist/tex/context/base/mkii/type-run.mkii
deleted file mode 100644
index 51a9f2a885d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/type-run.mkii
+++ /dev/null
@@ -1,51 +0,0 @@
-%D \module
-%D [ file=type-run,
-%D version=2001.04.20,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Runtime Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\gdef\typetypescript
- {\dotripleempty\dotypetypescript}
-
-\gdef\dotypetypescript[#1][#2][#3]%
- {\bgroup
- \def\dochecktypescript##1##2% script use
- {\doifelsenothing{##1##2}
- {\donetrue}
- {\ExpandBothAfter\doifcommonelse{##1}{##2}\donetrue\donefalse}}
- \edef\typescriptone {\truetypescript{#1}}%
- \edef\typescripttwo {\truetypescript{#2}}%
- \edef\typescriptthree{\truetypescript{#3}}%
- \def\starttypescript
- {\bgroup
- \obeylines % else we loose the first line due to lookahead
- \dotripleempty\dostarttypescript}
- \def\dostarttypescript[##1][##2][##3]%
- {\long\def\next####1\stoptypescript{\egroup}
- \dochecktypescript{##1}\typescriptone \ifdone
- \dochecktypescript{##2}\typescripttwo \ifdone
- \dochecktypescript{##3}\typescriptthree\ifdone
- \def\next%
- {\def\stoptypescript{\egroup\type{\stoptypescript}}
- % what follows now is quite ugly
- \skipfirstverbatimlinefalse
- \type{\starttypescript}
- \doifsomething{##1}{\type{[##1]}}
- \doifsomething{##2}{\type{[##2]}}
- \doifsomething{##3}{\type{[##3]}}
- \processdisplayverbatim{\stoptypescript}}%
- \fi\fi\fi
- \next}
- \processcommacommand[\typescriptfiles]\ReadFile % \dodousetypescript
- \egroup}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/type-set.mkii b/Master/texmf-dist/tex/context/base/mkii/type-set.mkii
deleted file mode 100644
index 7f34deadaad..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/type-set.mkii
+++ /dev/null
@@ -1,81 +0,0 @@
-%D \module
-%D [ file=type-set,
-%D version=2005.02.04, % moved from ini/def
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Default Settings,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\definetypescriptprefix [serif] [Serif]
-\definetypescriptprefix [sans] [Sans]
-\definetypescriptprefix [mono] [Mono]
-
-\definefontsynonym [DefaultFont] [cmvtt10]
-
-\startsetups [font:fallback:serif]
- \definefontsynonym [Serif] [DefaultFont]
- \definefontsynonym [SerifBold] [Serif]
- \definefontsynonym [SerifItalic] [Serif]
- \definefontsynonym [SerifSlanted] [SerifItalic]
- \definefontsynonym [SerifBoldItalic] [Serif]
- \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
- \definefontsynonym [SerifCaps] [Serif]
-\stopsetups
-
-\startsetups [font:fallback:sans]
- \definefontsynonym [Sans] [DefaultFont]
- \definefontsynonym [SansBold] [Sans]
- \definefontsynonym [SansItalic] [Sans]
- \definefontsynonym [SansSlanted] [SansItalic]
- \definefontsynonym [SansBoldItalic] [Sans]
- \definefontsynonym [SansBoldSlanted] [SansBoldItalic]
- \definefontsynonym [SansCaps] [Sans]
-\stopsetups
-
-\startsetups [font:fallback:mono]
- \definefontsynonym [Mono] [DefaultFont]
- \definefontsynonym [MonoBold] [Mono]
- \definefontsynonym [MonoItalic] [Mono]
- \definefontsynonym [MonoSlanted] [MonoItalic]
- \definefontsynonym [MonoBoldItalic] [Mono]
- \definefontsynonym [MonoBoldSlanted] [MonoBoldItalic]
- \definefontsynonym [MonoCaps] [Mono]
-\stopsetups
-
-\startsetups [font:allbold:serif]
- \definefontsynonym [Serif] [SerifBold]
- \definefontsynonym [SerifItalic] [SerifBoldItalic]
- \definefontsynonym [SerifSlanted] [SerifBoldSlanted]
- %definefontsynonym [SerifCaps] [SerifBold]
-\stopsetups
-
-\startsetups [font:allbold:sans]
- \definefontsynonym [Sans] [SansBold]
- \definefontsynonym [SansItalic] [SansBoldItalic]
- \definefontsynonym [SansSlanted] [SansBoldSlanted]
- %definefontsynonym [SansCaps] [SansBold]
-\stopsetups
-
-\ifnum\texengine=\xetexengine
- %usetypescriptfile[\f!typeprefix def] % preloaded in context.mkii
- %usetypescriptfile[\f!typeprefix tmf] % replaced
- \usetypescriptfile[\f!typeprefix siz]
- \usetypescriptfile[\f!typeprefix otf]
- \usetypescriptfile[\f!typeprefix xtx]
- \usetypescriptfile[\f!typeprefix loc]
-\else
- %usetypescriptfile[\f!typeprefix def] % preloaded in context.mkii
- %usetypescriptfile[\f!typeprefix tmf] % replaced
- \usetypescriptfile[\f!typeprefix siz]
- \usetypescriptfile[\f!typeprefix one]
- \usetypescriptfile[\f!typeprefix loc]
-\fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/type-siz.mkii b/Master/texmf-dist/tex/context/base/mkii/type-siz.mkii
deleted file mode 100644
index 4c3cfb28b0e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/type-siz.mkii
+++ /dev/null
@@ -1,748 +0,0 @@
-%D \module
-%D [ file=type-siz,
-%D version=2001.04.12,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Sizing scripts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\starttypescriptcollection[size]
-
-\starttypescript [serif] [default] [size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
- [rm] [default]
-\stoptypescript
-
-\starttypescript [sans] [default] [size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
- [ss] [default]
-\stoptypescript
-
-\starttypescript [mono] [default] [size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
- [tt] [default]
-\stoptypescript
-
-\starttypescript [math,boldmath] [default] [size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
- [mm] [default]
-\stoptypescript
-
-\starttypescript [bfmath] [default] [size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
- [mm] [bfmath]
-\stoptypescript
-
-\starttypescript [handwriting] [default] [size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
- [hw] [default]
-\stoptypescript
-
-\starttypescript [calligraphy] [default] [size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
- [cg] [default]
-\stoptypescript
-
-\starttypescript [casual] [default] [size] % maps onto rm !
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
- [rm] [default]
-\stoptypescript
-
-\starttypescript [all] [dtp] [size]
-
- \definebodyfontenvironment
- [4pt]
- [\s!text=4pt,\s!script=4pt,\s!scriptscript=4pt,
- \c!x=4pt,\c!xx=4pt,\c!big=6pt,\c!small=4pt]
-
- \definebodyfontenvironment
- [5pt]
- [\s!text=5pt,\s!script=5pt,\s!scriptscript=5pt,
- \c!x=5pt,\c!xx=5pt,\c!big=7pt,\c!small=5pt]
-
- \definebodyfontenvironment
- [6pt]
- [\s!text=6pt,\s!script=5pt,\s!scriptscript=5pt,
- \c!x=5pt,\c!xx=5pt,\c!big=8pt,\c!small=5pt]
-
- \definebodyfontenvironment
- [7pt]
- [\s!text=7pt,\s!script=6pt,\s!scriptscript=5pt,
- \c!x=6pt,\c!xx=5pt,\c!big=9pt,\c!small=5pt]
-
- \definebodyfontenvironment
- [8pt]
- [\s!text=8pt,\s!script=6pt,\s!scriptscript=5pt,
- \c!x=6pt,\c!xx=5pt,\c!big=10pt,\c!small=6pt]
-
- \definebodyfontenvironment
- [9pt]
- [\s!text=9pt,\s!script=7pt,\s!scriptscript=5pt,
- \c!x=7pt,\c!xx=5pt,\c!big=11pt,\c!small=7pt]
-
- \definebodyfontenvironment
- [10pt]
- [\s!text=10pt,\s!script=7pt,\s!scriptscript=5pt,
- \c!x=8pt,\c!xx=6pt,\c!big=12pt,\c!small=8pt]
-
- \definebodyfontenvironment
- [11pt]
- [\s!text=11pt,\s!script=8pt,\s!scriptscript=6pt,
- \c!x=9pt,\c!xx=7pt,\c!big=13pt,\c!small=9pt]
-
- \definebodyfontenvironment
- [12pt]
- [\s!text=12pt,\s!script=9pt,\s!scriptscript=7pt,
- \c!x=10pt,\c!xx=8pt,\c!big=14pt,\c!small=10pt]
-
- \definebodyfontenvironment
- [13pt]
- [\s!text=13pt,\s!script=10pt,\s!scriptscript=8pt,
- \c!x=11pt,\c!xx=9pt,\c!big=16pt,\c!small=11pt]
-
- \definebodyfontenvironment
- [14pt]
- [\s!text=14pt,\s!script=10pt,\s!scriptscript=7pt,
- \c!x=12pt,\c!xx=10pt,\c!big=16pt,\c!small=12pt]
-
- \definebodyfontenvironment
- [16pt]
- [\s!text=16pt,\s!script=12pt,\s!scriptscript=9pt,
- \c!x=13pt,\c!xx=11pt,\c!big=18pt,\c!small=14pt]
-
- % suboptimal math sizes
-
- \definebodyfontenvironment
- [18pt]
- [\s!text=18pt,\s!script=16pt,\s!scriptscript=14pt,
- \c!x=16pt,\c!xx=14pt,\c!big=22pt,\c!small=16pt]
-
- \definebodyfontenvironment
- [22pt]
- [\s!text=22pt,\s!script=22pt,\s!scriptscript=18pt,
- \c!x=18pt,\c!xx=16pt,\c!big=28pt,\c!small=18pt]
-
- \definebodyfontenvironment
- [28pt]
- [\s!text=28pt,\s!script=22pt,\s!scriptscript=18pt,
- \c!x=22pt,\c!xx=18pt,\c!big=28pt,\c!small=22pt]
-
-\stoptypescript
-
-\starttypescript [serif] [dtp] [size]
- \definebodyfont
- [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
- [rm] [default]
-\stoptypescript
-
-\starttypescript [sans] [dtp] [size]
- \definebodyfont
- [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
- [ss] [default]
-\stoptypescript
-
-\starttypescript [mono] [dtp] [size]
- \definebodyfont
- [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
- [tt] [default]
-\stoptypescript
-
-\starttypescript [math,boldmath] [dtp] [size]
- \definebodyfont
- [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
- [mm] [default]
-\stoptypescript
-
-\stoptypescriptcollection
-
-\starttypescriptcollection[size-mkii]
-
-% todo: instead of assuming designsize we will set it explicitly (saves these
-% -1000 problems at the lua end)
-
-% cmr
-
-\starttypescript [serif] [computer-modern] [size]
-
- \definebodyfont [12pt] [rm]
- [tf=cmr12,
- bf=cmbx12,
- it=cmti12,
- sl=cmsl12,
- bi=cmbxti10 at 12pt,
- bs=cmbxsl10 at 12pt,
- sc=cmcsc10 at 12pt]
-
- \definebodyfont [11pt] [rm]
- [tf=cmr10 at 11pt,
- bf=cmbx10 at 11pt,
- sl=cmsl10 at 11pt,
- it=cmti10 at 11pt,
- bi=cmbxti10 at 11pt,
- bs=cmbxsl10 at 11pt,
- sc=cmcsc10 at 11pt]
-
- \definebodyfont [10pt] [rm]
- [tf=cmr10,
- bf=cmbx10,
- it=cmti10,
- sl=cmsl10,
- bi=cmbxti10,
- bs=cmbxsl10,
- sc=cmcsc10]
-
- \definebodyfont [9pt] [rm]
- [tf=cmr9,
- bf=cmbx9,
- it=cmti9,
- sl=cmsl9,
- bi=cmbxti10 at 9pt,
- bs=cmbxsl10 at 9pt,
- sc=cmcsc10 at 9pt]
-
- \definebodyfont [8pt] [rm]
- [tf=cmr8,
- bf=cmbx8,
- it=cmti8,
- sl=cmsl8,
- bi=cmbxti10 at 8pt,
- bs=cmbxsl10 at 8pt,
- sc=cmcsc10 at 8pt]
-
- \definebodyfont [7pt] [rm]
- [tf=cmr7,
- bf=cmbx7,
- it=cmti10 at 7pt,
- sl=cmsl10 at 7pt,
- bi=cmbxti10 at 7pt,
- bs=cmbxsl10 at 7pt,
- sc=cmcsc10 at 7pt]
-
- \definebodyfont [6pt] [rm]
- [tf=cmr6,
- bf=cmbx6,
- it=cmti10 at 6pt,
- sl=cmsl10 at 6pt,
- bi=cmbxti10 at 6pt,
- bs=cmbxsl10 at 6pt,
- sc=cmcsc10 at 6pt]
-
- \definebodyfont [5pt] [rm]
- [tf=cmr5,
- bf=cmbx5,
- it=cmti10 at 5pt,
- sl=cmsl10 at 5pt,
- bi=cmbxti10 at 5pt,
- bs=cmbxsl10 at 5pt,
- sc=cmcsc10 at 5pt]
-
- \definebodyfont [4pt] [rm]
- [tf=cmr10 at 4pt,
- bf=cmbx10 at 4pt,
- it=cmti10 at 4pt,
- sl=cmsl10 at 4pt,
- bi=cmbxti10 at 4pt,
- bs=cmbxsl10 at 4pt,
- sc=cmr10 at 4pt]
-
- \definebodyfont [14.4pt,17.3pt,20.7pt] [rm]
- [tf=cmr12 sa 1,
- bf=cmbx12 sa 1,
- it=cmti12 sa 1,
- sl=cmsl12 sa 1,
- bi=cmbxti10 sa 1,
- bs=cmbxsl10 sa 1,
- sc=cmcsc10 sa 1]
-
-\stoptypescript
-
-\starttypescript [sans] [computer-modern] [size]
-
- \definebodyfont [12pt] [ss]
- [tf=cmss12,
- bf=cmssbx10 at 12pt,
- it=cmssi12,
- sl=cmssi12,
- bi=cmssbx10 at 12pt,
- bs=cmssbx10 at 12pt,
- sc=cmss10 at 12pt]
-
- \definebodyfont [11pt] [ss]
- [tf=cmss10 at 11pt,
- bf=cmssbx10 at 11pt,
- it=cmssi10 at 11pt,
- sl=cmssi10 at 11pt,
- bi=cmssbx10 at 11pt,
- bs=cmssbx10 at 11pt,
- sc=cmss10 at 11pt]
-
- \definebodyfont [10pt] [ss]
- [tf=cmss10,
- bf=cmssbx10,
- it=cmssi10,
- sl=cmssi10,
- bi=cmssbx10,
- bs=cmssbx10,
- sc=cmss10]
-
- \definebodyfont [9pt] [ss]
- [tf=cmss9,
- bf=cmssbx10 at 9pt,
- it=cmssi9,
- sl=cmssi9,
- bi=cmssbx10 at 9pt,
- bs=cmssbx10 at 9pt,
- sc=cmss9]
-
- \definebodyfont [8pt] [ss]
- [tf=cmss8,
- bf=cmssbx10 at 8pt,
- it=cmssi8,
- sl=cmssi8,
- bi=cmssbx10 at 8pt,
- bs=cmssbx10 at 8pt,
- sc=cmss8]
-
- \definebodyfont [7pt] [ss]
- [tf=cmss10 at 7pt,
- bf=cmssbx10 at 7pt,
- it=cmssi10 at 7pt,
- sl=cmssi10 at 7pt,
- bs=cmssbx10 at 7pt,
- bi=cmssbx10 at 7pt,
- sc=cmss10 at 7pt]
-
- \definebodyfont [6pt] [ss]
- [tf=cmss10 at 6pt,
- bf=cmssbx10 at 6pt,
- it=cmssi10 at 6pt,
- sl=cmssi10 at 6pt,
- bs=cmssbx10 at 6pt,
- bi=cmssbx10 at 6pt,
- sc=cmss10 at 6pt]
-
- \definebodyfont [5pt] [ss]
- [tf=cmss10 at 5pt,
- bf=cmssbx10 at 5pt,
- it=cmssi10 at 5pt,
- sl=cmssi10 at 5pt,
- bs=cmssbx10 at 5pt,
- bi=cmssbx10 at 5pt,
- sc=cmss10 at 5pt]
-
- \definebodyfont [4pt] [ss]
- [tf=cmss10 at 4pt,
- bf=cmssbx10 at 4pt,
- it=cmssi10 at 4pt,
- sl=cmssi10 at 4pt,
- bs=cmssbx10 at 4pt,
- bi=cmssbx10 at 4pt,
- sc=cmss10 at 4pt]
-
- \definebodyfont [14.4pt,17.3pt,20.7pt] [ss]
- [tf=cmss12 sa 1,
- bf=cmssbx10 sa 1,
- it=cmssi12 sa 1,
- sl=cmssi12 sa 1,
- bi=cmssbx10 sa 1,
- bs=cmssbx10 sa 1,
- sc=cmss12 sa 1]
-
-\stoptypescript
-
-\starttypescript [mono] [computer-modern] [size]
-
- \definebodyfont [12pt] [tt]
- [tf=cmtt12,
- sl=cmsltt10 at 12pt,
- it=cmitt10 at 12pt,
- sc=cmtcsc10 at 12pt]
-
- \definebodyfont [9pt] [tt]
- [tf=cmtt9,
- sl=cmsltt10 at 9pt,
- it=cmitt10 at 9pt,
- sc=cmtcsc10 at 9pt]
-
- \definebodyfont [8pt] [tt]
- [tf=cmtt8,
- sl=cmsltt10 at 8pt,
- it=cmitt10 at 8pt,
- sc=cmtcsc10 at 8pt]
-
- \definebodyfont [11pt,10pt,7pt,6pt,5pt,4pt] [tt]
- [tf=cmtt10 sa 1,
- sl=cmsltt10 sa 1,
- it=cmitt10 sa 1,
- sc=cmtcsc10 sa 1]
-
- \definebodyfont [14.4pt,17.3pt,20.7pt] [tt]
- [tf=cmtt12 sa 1,
- sl=cmsltt10 sa 1,
- it=cmitt10 sa 1,
- sc=cmtcsc10 sa 1]
-
-\stoptypescript
-
-\starttypescript [math] [modern,computer-modern,latin-modern] [size]
-
- % hack to prevent mapping of filenames, watch the space! before
- % latin modern came aroudn we needed this trick to make sure that
- % we loaded the raw cmr12 etc instead of the ones mapped onto
- % an encoding (this trick is no longer needed with lm)
- %
- % \definefontsynonym[xcmr12][cmr12 ]
- % \definefontsynonym[xcmr10][cmr10 ]
- % \definefontsynonym[xcmr9] [cmr9 ]
- % \definefontsynonym[xcmr8] [cmr8 ]
- % \definefontsynonym[xcmr7] [cmr7 ]
- % \definefontsynonym[xcmr6] [cmr6 ]
- % \definefontsynonym[xcmr5] [cmr5 ]
-
- \definefontsynonym[xcmr12][rm-lmr12]
- \definefontsynonym[xcmr10][rm-lmr10]
- \definefontsynonym[xcmr9] [rm-lmr9]
- \definefontsynonym[xcmr8] [rm-lmr8]
- \definefontsynonym[xcmr7] [rm-lmr7]
- \definefontsynonym[xcmr6] [rm-lmr6]
- \definefontsynonym[xcmr5] [rm-lmr5]
-
- \definebodyfont [12pt] [mm]
- [mr=xcmr12,
- ex=cmex10 at 12pt,
- mi=cmmi12,
- sy=cmsy10 at 12pt]
-
- \definebodyfont [11pt] [mm]
- [mr=xcmr10 at 11pt,
- ex=cmex10 at 11pt,
- mi=cmmi10 at 11pt,
- sy=cmsy10 at 11pt]
-
- \definebodyfont [10pt] [mm]
- [mr=xcmr10,
- ex=cmex10,
- mi=cmmi10,
- sy=cmsy10]
-
- \definebodyfont [9pt] [mm]
- [mr=xcmr9,
- ex=cmex10 at 9pt,
- mi=cmmi9,
- sy=cmsy9]
-
- \definebodyfont [8pt] [mm]
- [mr=xcmr8,
- ex=cmex10 at 8pt,
- mi=cmmi8,
- sy=cmsy8]
-
- \definebodyfont [7pt] [mm]
- [mr=xcmr7,
- ex=cmex10 at 7pt,
- mi=cmmi7,
- sy=cmsy7]
-
- \definebodyfont [6pt] [mm]
- [mr=xcmr6,
- ex=cmex10 at 6pt,
- mi=cmmi6,
- sy=cmsy6]
-
- \definebodyfont [5pt] [mm]
- [mr=xcmr5,
- ex=cmex10 at 5pt,
- mi=cmmi5,
- sy=cmsy5]
-
- \definebodyfont [4pt] [mm]
- [mr=xcmr5 at 4pt,
- ex=cmex10 at 4pt,
- mi=cmmi5 at 4pt,
- sy=cmsy5 at 4pt]
-
- \definebodyfont [14.4pt,17.3pt,20.7pt] [mm]
- [mr=xcmr12 sa 1,
- ex=cmex10 sa 1,
- mi=cmmi12 sa 1,
- sy=cmsy10 sa 1]
-
-\stoptypescript
-
-\starttypescript [boldmath] [modern,computer-modern,latin-modern] [size]
-
-% hack to prevent mapping of filenames, watch the space!
-
- \definefontsynonym[xcmb12][cmbx12 ]
- \definefontsynonym[xcmb10][cmbx10 ]
- \definefontsynonym[xcmb9] [cmbx9 ]
- \definefontsynonym[xcmb8] [cmbx8 ]
- \definefontsynonym[xcmb7] [cmbx7 ]
- \definefontsynonym[xcmb6] [cmbx6 ]
- \definefontsynonym[xcmb5] [cmbx5 ]
-
- \definebodyfont [12pt] [mm]
- [mr=xcmb12,
- ex=cmex10 at 12pt,
- mi=cmmib10 at 12pt,
- sy=cmbsy10 at 12pt]
-
- \definebodyfont [11pt] [mm]
- [mr=xcmb10 at 11pt,
- ex=cmex10 at 11pt,
- mi=cmmib10 at 11pt,
- sy=cmbsy10 at 11pt]
-
- \definebodyfont [10pt] [mm]
- [mr=xcmb10,
- ex=cmex10,
- mi=cmmib10,
- sy=cmbsy10]
-
- \definebodyfont [9pt] [mm]
- [mr=xcmb9,
- ex=cmex10 at 9pt,
- mi=cmmib10 at 9pt,
- sy=cmbsy10 at 9pt]
-
- \definebodyfont [8pt] [mm]
- [mr=xcmb8,
- ex=cmex10 at 8pt,
- mi=cmmib7 at 8pt,
- sy=cmbsy7 at 8pt]
-
- \definebodyfont [7pt] [mm]
- [mr=xcmb7,
- ex=cmex10 at 7pt,
- mi=cmmib7,
- sy=cmbsy7]
-
- \definebodyfont [6pt] [mm]
- [mr=xcmb6,
- ex=cmex10 at 6pt,
- mi=cmmib5 at 6pt,
- sy=cmbsy5 at 6pt]
-
- \definebodyfont [5pt] [mm]
- [mr=xcmb5,
- ex=cmex10 at 5pt,
- mi=cmmib5,
- sy=cmbsy5]
-
- \definebodyfont [4pt] [mm]
- [mr=xcmb5 at 4pt,
- ex=cmex10 at 4pt,
- mi=cmmib5 at 4pt,
- sy=cmbsy5 at 4pt]
-
- \definebodyfont [14.4pt,17.3pt,20.7pt] [mm]
- [mr=xcmb12 sa 1,
- ex=cmex10 sa 1,
- mi=cmmib10 sa 1,
- sy=cmbsy10 sa 1]
-
-\stoptypescript
-
-\starttypescript [bfmath] [modern,computer-modern,latin-modern] [size]
-
-% hack to prevent mapping of filenames, watch the space!
-
- \definefontsynonym[xcmb12][cmbx12 ]
- \definefontsynonym[xcmb10][cmbx10 ]
- \definefontsynonym[xcmb9] [cmbx9 ]
- \definefontsynonym[xcmb8] [cmbx8 ]
- \definefontsynonym[xcmb7] [cmbx7 ]
- \definefontsynonym[xcmb6] [cmbx6 ]
- \definefontsynonym[xcmb5] [cmbx5 ]
-
- \definebodyfont [12pt] [mm]
- [mrbf=xcmb12,
- exbf=cmex10 at 12pt,
- mibf=cmmib10 at 12pt,
- sybf=cmbsy10 at 12pt]
-
- \definebodyfont [11pt] [mm]
- [mrbf=xcmb10 at 11pt,
- exbf=cmex10 at 11pt,
- mibf=cmmib10 at 11pt,
- sybf=cmbsy10 at 11pt]
-
- \definebodyfont [10pt] [mm]
- [mrbf=xcmb10,
- exbf=cmex10,
- mibf=cmmib10,
- sybf=cmbsy10]
-
- \definebodyfont [9pt] [mm]
- [mrbf=xcmb9,
- exbf=cmex10 at 9pt,
- mibf=cmmib10 at 9pt,
- sybf=cmbsy10 at 9pt]
-
- \definebodyfont [8pt] [mm]
- [mrbf=xcmb8,
- exbf=cmex10 at 8pt,
- mibf=cmmib7 at 8pt,
- sybf=cmbsy7 at 8pt]
-
- \definebodyfont [7pt] [mm]
- [mrbf=xcmb7,
- exbf=cmex10 at 7pt,
- mibf=cmmib7,
- sybf=cmbsy7]
-
- \definebodyfont [6pt] [mm]
- [mrbf=xcmb6,
- exbf=cmex10 at 6pt,
- mibf=cmmib5 at 6pt,
- sybf=cmbsy5 at 6pt]
-
- \definebodyfont [5pt] [mm]
- [mrbf=xcmb5,
- exbf=cmex10 at 5pt,
- mibf=cmmib5,
- sybf=cmbsy5]
-
- \definebodyfont [4pt] [mm]
- [mrbf=xcmb5 at 4pt,
- exbf=cmex10 at 4pt,
- mibf=cmmib5 at 4pt,
- sybf=cmbsy5 at 4pt]
-
- \definebodyfont [14.4pt,17.3pt,20.7pt] [mm]
- [mrbf=xcmb12 sa 1,
- exbf=cmex10 sa 1,
- mibf=cmmib10 sa 1,
- sybf=cmbsy10 sa 1]
-
-\stoptypescript
-
-\starttypescript [serif] [concrete] [size]
-
- \definebodyfont [10pt,11pt,12pt,14.4pt,17.3pt] [rm]
- [tf=ccr10 sa 1,
- it=ccti10 sa 1,
- sl=ccsl10 sa 1,
- sc=cccsc10 sa 1]
-
- \definebodyfont [5pt,6pt,7pt,8pt,9pt] [rm]
- [it=ccr9 sa 1,
- sl=ccr9 sa 1,
- sc=ccr9 sa 1]
-
- \definebodyfont [9pt] [rm] [tf=ccr9]
- \definebodyfont [8pt] [rm] [tf=ccr8]
- \definebodyfont [7pt] [rm] [tf=ccr7]
- \definebodyfont [6pt] [rm] [tf=ccr6]
- \definebodyfont [5pt] [rm] [tf=ccr5]
-
-\stoptypescript
-
-\starttypescript [math] [euler] [size]
-
- \definebodyfont [9pt,10pt,11pt,12pt,14.4pt,17.3pt,20.7pt] [mm]
- [mr=zeurm10 sa 1,
- ex=zeuex10 sa 1,
- sy=zeusm10 sa 1,
- mi=eufm10 sa 1]
-
- \definebodyfont [6pt,7pt,8pt] [mm]
- [mr=zeurm7 sa 1,
- sy=zeusm7 sa 1,
- mi=eufm7 sa 1,
- ex=zeuex10 sa 1]
-
- \definebodyfont [5pt] [mm]
- [mr=zeurm5,
- sy=zeusm5,
- mi=eufm5,
- ex=zeuex10 at 5pt]
-
-\stoptypescript
-
-\starttypescript [bfmath] [euler] [size]
-
- \definebodyfont [9pt,10pt,11pt,12pt,14.4pt,17.3pt,20.7pt] [mm]
- [mrbf=zeurb10 sa 1,
- exbf=zeuex10 sa 1,
- sybf=zeusb10 sa 1,
- mibf=eufb10 sa 1]
-
- \definebodyfont [6pt,7pt,8pt] [mm]
- [mrbf=zeurb7 sa 1,
- sybf=zeusb7 sa 1,
- mibf=eufb7 sa 1,
- exbf=zeuex10 sa 1]
-
- \definebodyfont [5pt] [mm]
- [mrbf=zeurb5,
- sybf=zeusb5,
- mibf=eufb5,
- exbf=zeuex10 at 5pt]
-
-\stoptypescript
-
-\starttypescript [boldmath] [euler] [size]
-
- \definebodyfont [9pt,10pt,11pt,12pt,14.4pt,17.3pt,20.7pt] [mm]
- [mr=zeurb10 sa 1,
- ex=zeuex10 sa 1,
- sy=zeusb10 sa 1,
- mi=eufb10 sa 1]
-
- \definebodyfont [6pt,7pt,8pt] [mm]
- [mr=zeurb7 sa 1,
- sy=zeusb7 sa 1,
- mi=eufb7 sa 1,
- ex=zeuex10 sa 1]
-
- \definebodyfont [5pt] [mm]
- [mr=zeurb5,
- sy=zeusb5,
- mi=eufb5,
- ex=zeuex10 at 5pt]
-
-\stoptypescript
-
-\starttypescript [math] [modern,computer-modern,latin-modern,ams] [size]
- \definebodyfont [17.3pt,14.4pt,12pt,11pt,10pt,9pt] [mm]
- [ma=msam10 sa 1,
- mb=msbm10 sa 1]
- \definebodyfont [8pt,7pt] [mm]
- [ma=msam7 sa 1,
- mb=msbm7 sa 1]
- \definebodyfont [6pt,5pt,4pt] [mm]
- [ma=msam5 sa 1,
- mb=msbm5 sa 1]
-\stoptypescript
-
-\starttypescript [math] [times] [size]
-
- \mapfontsize [5pt] [6.0pt]
- \mapfontsize [6pt] [6.8pt]
- \mapfontsize [7pt] [7.6pt]
- \mapfontsize [8pt] [8.4pt]
- \mapfontsize [9pt] [9.2pt]
- \mapfontsize [10pt] [10pt]
- \mapfontsize [11pt] [10.8pt]
- \mapfontsize [12pt] [11.6pt]
- \mapfontsize [14.4pt] [13.2pt]
-
-\stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/type-tmf.mkii b/Master/texmf-dist/tex/context/base/mkii/type-tmf.mkii
deleted file mode 100644
index 829b6baec99..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/type-tmf.mkii
+++ /dev/null
@@ -1,14 +0,0 @@
-%D \module
-%D [ file=type-tmf,
-%D version=2007.07.30,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Core \TEX\ Fonts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/typo-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/typo-ini.mkii
deleted file mode 100644
index 6e19fb9b670..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/typo-ini.mkii
+++ /dev/null
@@ -1,40 +0,0 @@
-%D \module
-%D [ file=typo-ini,
-%D version=2000.16.09,
-%D title=\CONTEXT\ Typographic Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Since \CONTEXT\ is dealing with typographics, isn't
-%D September 2000 a bit late to start writing this module? It
-%D may seem so, but since more and more languages are
-%D supported, we think it is time to isolate language specific
-%D typographic extensions in modules. The first language that
-%D demands this is Chinese, and more will follow.
-
-\writestatus{loading}{ConTeXt Typographic Macros / Initialization}
-
-\unprotect
-
-%D \macros
-%D {ifvertical}
-%D
-%D The following switch can be used to signal macros that they
-%D should adapt their behaviour.
-
-\newif\ifvertical % maybe also ifreverse
-
-%D \macros
-%D {vhbox}
-%D
-%D A stupid but useful macro.
-
-\def\vhbox{\ifvertical\vbox\else\hbox\fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/unic-000.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-000.mkii
deleted file mode 100644
index 4ef57044520..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-000.mkii
+++ /dev/null
@@ -1,135 +0,0 @@
-%D \module
-%D [ file=unic-000,
-%D version=2002.12.03,
-%D title=\CONTEXT\ \UNICODE\ Macros,
-%D subtitle=Vector 0,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-% \startunicodevector 0
-% \ifcase\numexpr(#1-159)
-% \@@unknownchar\or
-% \@@unknownchar\or
-% exclamdown\or
-% textcent\or
-% textsterling\or
-% textcurrency\or
-% ydiaeresis\else
-% \@@unknownchar
-% \fi
-% \stopunicodevector
-%
-% 20\% faster:
-
-\startunicodevector 0
- \expandafter\strippedcsname
- \ifcase\numexpr#1-159\relax
- \unknownchar \or
- \nonbreakablespace \or
- \exclamdown \or
- \textcent \or
- \textsterling \or
- \textcurrency \or
- \textyen \or
- \textbrokenbar \or
- \sectionmark \or
- \textdiaeresis \or
- \copyright \or
- \ordfeminine \or % FEMININE ORDINAL INDICATOR
- \leftguillemot \or % LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- \textlognot \or
- \softhyphen \or
- \registered \or
- \textmacron \or
- \textdegree \or
- \textpm \or
- \twosuperior \or
- \threesuperior \or
- \textacute \or
- \textmu \or % MICRO SIGN
- \paragraphmark \or % PILCROW SIGN
- \periodcentered \or
- \textcedilla \or
- \onesuperior \or
- \ordmasculine \or % MASCULINE ORDINAL INDICATOR
- \rightguillemot \or % RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- \onequarter \or
- \onehalf \or
- \threequarter \or
- \questiondown \or
- \Agrave \or
- \Aacute \or
- \Acircumflex \or
- \Atilde \or
- \Adiaeresis \or
- \Aring \or
- \AEligature \or
- \Ccedilla \or
- \Egrave \or
- \Eacute \or
- \Ecircumflex \or
- \Ediaeresis \or
- \Igrave \or
- \Iacute \or
- \Icircumflex \or
- \Idiaeresis \or
- \Eth \or % \Eth \or
- \Ntilde \or
- \Ograve \or
- \Oacute \or
- \Ocircumflex \or
- \Otilde \or
- \Odiaeresis \or
- \textmultiply \or
- \Ostroke \or
- \Ugrave \or
- \Uacute \or
- \Ucircumflex \or
- \Udiaeresis \or
- \Yacute \or
- \Thorn \or
- \ssharp \or
- \agrave \or
- \aacute \or
- \acircumflex \or
- \atilde \or
- \adiaeresis \or
- \aring \or
- \aeligature \or
- \ccedilla \or
- \egrave \or
- \eacute \or
- \ecircumflex \or
- \ediaeresis \or
- \igrave \or
- \iacute \or
- \icircumflex \or
- \idiaeresis \or
- \eth \or % \eth \or
- \ntilde \or
- \ograve \or
- \oacute \or
- \ocircumflex \or
- \otilde \or
- \odiaeresis \or
- \textdiv \or
- \ostroke \or
- \ugrave \or
- \uacute \or
- \ucircumflex \or
- \udiaeresis \or
- \yacute \or
- \thorn \or
- \ydiaeresis \else
- \unknownchar
- \fi
-\stopunicodevector
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/unic-001.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-001.mkii
deleted file mode 100644
index 198a8d98d1b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-001.mkii
+++ /dev/null
@@ -1,220 +0,0 @@
-%D \module
-%D [ file=unic-001,
-%D version=2002.12.03,
-%D title=\CONTEXT\ \UNICODE\ Macros,
-%D subtitle=Vector 1,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-%D Readable:
-%D
-%D \starttyping
-%D \startunicodevector 1
-%D \ifcase#1\or
-%D unknownchar\or Abreve\or abreve\or
-%D ....
-%D Zcaron\or zcaron\else unknownchar\fi
-%D \stopunicodevector
-%D
-%D \stoptyping
-%D But we can speed things up, watch how we avoid zero and \TEX's
-%D automatically added \type {\relax}.
-
-% remark:
-% - gcommaaccent, kcomaaccent, lcomaaccent, ncomaaccent, rcomaaccent
-% bear the name "WITH CEDILLA" in Unicode
-% - scomaaccent and tcomaaccent point to the "WITH CEDILLA" in the
-% Adobe Glyph List
-
-\startunicodevector 1
- \expandafter\strippedcsname
- \ifcase\numexpr#1\relax
- \Amacron \or
- \amacron \or
- \Abreve \or
- \abreve \or
- \Aogonek \or
- \aogonek \or
- \Cacute \or
- \cacute \or
- \Ccircumflex \or
- \ccircumflex \or
- \Cdotaccent \or
- \cdotaccent \or
- \Ccaron \or
- \ccaron \or
- \Dcaron \or
- \dcaron \or
- \Dstroke \or
- \dstroke \or
- \Emacron \or
- \emacron \or
- \Ebreve \or
- \ebreve \or
- \Edotaccent \or
- \edotaccent \or
- \Eogonek \or
- \eogonek \or
- \Ecaron \or
- \ecaron \or
- \Gcircumflex \or
- \gcircumflex \or
- \Gbreve \or
- \gbreve \or
- \Gdotaccent \or
- \gdotaccent \or
- \Gcommaaccent \or % WITH CEDILLA
- \gcommaaccent \or % WITH CEDILLA
- \Hcircumflex \or
- \hcircumflex \or
- \Hstroke \or
- \hstroke \or
- \Itilde \or
- \itilde \or
- \Imacron \or
- \imacron \or
- \Ibreve \or
- \ibreve \or
- \Iogonek \or
- \iogonek \or
- \Idotaccent \or
- \dotlessi \or
- \IJligature \or
- \ijligature \or
- \Jcircumflex \or
- \jcircumflex \or
- \Kcommaaccent \or % WITH CEDILLA
- \kcommaaccent \or % WITH CEDILLA
- \kkra \or % \kkra \or
- \Lacute \or
- \lacute \or
- \Lcommaaccent \or % WITH CEDILLA
- \lcommaaccent \or % WITH CEDILLA
- \Lcaron \or
- \lcaron \or
- \Ldotmiddle \or % \Ldotmiddle \or
- \ldotmiddle \or % \ldotmiddle \or
- \Lstroke \or
- \lstroke \or
- \Nacute \or
- \nacute \or
- \Ncommaaccent \or % WITH CEDILLA
- \ncommaaccent \or % WITH CEDILLA
- \Ncaron \or
- \ncaron \or
- \napostrophe \or
- \Neng \or
- \neng \or
- \Omacron \or
- \omacron \or
- \Obreve \or
- \obreve \or
- \Ohungarumlaut \or
- \ohungarumlaut \or
- \OEligature \or
- \oeligature \or
- \Racute \or
- \racute \or
- \Rcommaaccent \or % WITH CEDILLA
- \rcommaaccent \or % WITH CEDILLA
- \Rcaron \or
- \rcaron \or
- \Sacute \or
- \sacute \or
- \Scircumflex \or
- \scircumflex \or
- \Scedilla \or
- \scedilla \or
- \Scaron \or
- \scaron \or
- \Tcedilla \or
- \tcedilla \or
- \Tcaron \or
- \tcaron \or
- \Tstroke \or
- \tstroke \or
- \Utilde \or
- \utilde \or
- \Umacron \or
- \umacron \or
- \Ubreve \or
- \ubreve \or
- \Uring \or
- \uring \or
- \Uhungarumlaut \or
- \uhungarumlaut \or
- \Uogonek \or
- \uogonek \or
- \Wcircumflex \or
- \wcircumflex \or
- \Ycircumflex \or
- \ycircumflex \or
- \Ydiaeresis \or
- \Zacute \or
- \zacute \or
- \Zdotaccent \or
- \zdotaccent \or
- \Zcaron \or
- \zcaron \or
- \slong \or % 127 \slong \else
- \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
- \textflorin \or % 146
- \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
- \Ohorn \or % 160
- \ohorn \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
- \Uhorn \or % 175
- \uhorn \else
- \unknownchar
- \fi
-\stopunicodevector
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/unic-002.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-002.mkii
deleted file mode 100644
index 906975f8691..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-002.mkii
+++ /dev/null
@@ -1,104 +0,0 @@
-%D \module
-%D [ file=unic-002,
-%D version=2006.08.02,
-%D title=\CONTEXT\ \UNICODE\ Macros,
-%D subtitle=Vector 2,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\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
- \textcircumflex \or
- \textcaron \else
- \ifcase\numexpr#1-216\relax
- \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/mkii/unic-003.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-003.mkii
deleted file mode 100644
index 91512ea546d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-003.mkii
+++ /dev/null
@@ -1,147 +0,0 @@
-%D \module
-%D [ file=unic-003,
-%D version=2005.01.26,
-%D title=\CONTEXT\ \UNICODE\ Macros,
-%D subtitle=Vector 3,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\startunicodevector 3
- \ifcase\numexpr#1-126\relax
- % special greek
- \strippedcsname \greekquestionmark \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \greektonos \or
- \strippedcsname \greekdialytikatonos \or
- \strippedcsname \greekAlphatonos \or
- \strippedcsname \greekanoteleia \or
- \strippedcsname \greekEpsilontonos \or
- \strippedcsname \greekEtatonos \or
- \strippedcsname \greekIotatonos \or
- \strippedcsname \unknownchar \or
- \strippedcsname \greekOmicrontonos \or
- \strippedcsname \unknownchar \or
- \strippedcsname \greekUpsilontonos \or
- \strippedcsname \greekOmegatonos \or
- \strippedcsname \greekiotadialytikatonos \or
- % normal greek
- \strippedcsname \greekAlpha \or
- \strippedcsname \greekBeta \or
- \strippedcsname \greekGamma \or
- \strippedcsname \greekDelta \or
- \strippedcsname \greekEpsilon \or
- \strippedcsname \greekZeta \or
- \strippedcsname \greekEta \or
- \strippedcsname \greekTheta \or
- \strippedcsname \greekIota \or
- \strippedcsname \greekKappa \or
- \strippedcsname \greekLambda \or
- \strippedcsname \greekMu \or
- \strippedcsname \greekNu \or
- \strippedcsname \greekXi \or
- \strippedcsname \greekOmicron \or
- \strippedcsname \greekPi \or
- \strippedcsname \greekRho \or
- \strippedcsname \unknownchar \or
- \strippedcsname \greekSigma \or
- \strippedcsname \greekTau \or
- \strippedcsname \greekUpsilon \or
- \strippedcsname \greekPhi \or
- \strippedcsname \greekChi \or
- \strippedcsname \greekPsi \or
- \strippedcsname \greekOmega \or
- % special greek
- \strippedcsname \greekIotadialytika \or
- \strippedcsname \greekUpsilondialytika \or
- \strippedcsname \greekalphatonos \or
- \strippedcsname \greekepsilontonos \or
- \strippedcsname \greeketatonos \or
- \strippedcsname \greekiotatonos \or
- \strippedcsname \greekupsilondialytikatonos \or
- % normal greek
- \strippedcsname \greekalpha \or
- \strippedcsname \greekbeta \or
- \strippedcsname \greekgamma \or
- \strippedcsname \greekdelta \or
- \strippedcsname \greekepsilon \or
- \strippedcsname \greekzeta \or
- \strippedcsname \greeketa \or
- \strippedcsname \greektheta \or
- \strippedcsname \greekiota \or
- \strippedcsname \greekkappa \or
- \strippedcsname \greeklambda \or
- \strippedcsname \greekmu \or
- \strippedcsname \greeknu \or
- \strippedcsname \greekxi \or
- \strippedcsname \greekomicron \or
- \strippedcsname \greekpi \or
- \strippedcsname \greekrho \or
- \strippedcsname \greekfinalsigma \or
- \strippedcsname \greeksigma \or
- \strippedcsname \greektau \or
- \strippedcsname \greekupsilon \or
- \strippedcsname \greekphi \or
- \strippedcsname \greekchi \or
- \strippedcsname \greekpsi \or
- \strippedcsname \greekomega \or
- % special greek
- \strippedcsname \greekiotadialytika \or
- \strippedcsname \greekupsilondialytika \or
- \strippedcsname \greekomicrontonos \or
- \strippedcsname \greekupsilontonos \or
- \strippedcsname \greekomegatonos \or
- \strippedcsname \unknownchar \or
- \strippedcsname \greekbetaalt \or
- \strippedcsname \greekthetaalt \or
- \strippedcsname \unknownchar \or % upsilon hook
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \greekphialt \or
- \strippedcsname \greekpialt \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or % Sampi
- \strippedcsname \unknownchar \or % sampi
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or % kappa alt
- \strippedcsname \greekrhoalt \or
- \strippedcsname \greeksigmalunate \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \greekepsilonalt \else
- \strippedcsname \unknownchar
- \fi
-\stopunicodevector
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/unic-004.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-004.mkii
deleted file mode 100644
index 7b413cdb91f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-004.mkii
+++ /dev/null
@@ -1,291 +0,0 @@
-%D \module
-%D [ file=unic-004,
-%D version=2005.01.27,
-%D title=\CONTEXT\ \UNICODE\ Macros,
-%D subtitle=Vector 4,
-%D author=Mikael Persson \& Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\startunicodevector 4
- \expandafter\strippedcsname
- \ifcase\numexpr#1\relax
- \cyrillicEgrave \or % 04-00 \uchar0{200} aswell
- \cyrillicYO \or % 04-01 Capital YO (or IO)
- \cyrillicDJE \or % 04-02
- \cyrillicGJE \or % 04-03 not in enco-uc.tex
- \cyrillicIE \or % 04-04 Ukrainian IE
- \cyrillicDZE \or % 04-05
- \cyrillicII \or % 04-06 Byelorussian-ukrainian I
- \cyrillicYI \or % 04-07
- \cyrillicJE \or % 04-08 same letter as latin J?
- \cyrillicLJE \or % 04-09
- \cyrillicNJE \or % 04-0A
- \cyrillicTSHE \or % 04-0B
- \cyrillicKJE \or % 04-0C
- \cyrillicIgrave \or % 04-0D I with grave
- \cyrillicUSHRT \or % 04-0E
- \cyrillicDZHE \or % 04-0F
- \cyrillicA \or % 04-10
- \cyrillicB \or
- \cyrillicV \or
- \cyrillicG \or
- \cyrillicD \or
- \cyrillicE \or
- \cyrillicZH \or
- \cyrillicZ \or
- \cyrillicI \or
- \cyrillicISHRT \or
- \cyrillicK \or
- \cyrillicL \or
- \cyrillicM \or
- \cyrillicN \or
- \cyrillicO \or
- \cyrillicP \or
- \cyrillicR \or
- \cyrillicS \or
- \cyrillicT \or
- \cyrillicU \or
- \cyrillicF \or
- \cyrillicH \or
- \cyrillicC \or
- \cyrillicCH \or
- \cyrillicSH \or
- \cyrillicSHCH \or
- \cyrillicHRDSN \or
- \cyrillicERY \or
- \cyrillicSFTSN \or
- \cyrillicEREV \or
- \cyrillicYU \or
- \cyrillicYA \or
- \cyrillica \or % 04-30
- \cyrillicb \or
- \cyrillicv \or
- \cyrillicg \or
- \cyrillicd \or
- \cyrillice \or
- \cyrilliczh \or
- \cyrillicz \or
- \cyrillici \or
- \cyrillicishrt \or
- \cyrillick \or
- \cyrillicl \or
- \cyrillicm \or
- \cyrillicn \or
- \cyrillico \or
- \cyrillicp \or
- \cyrillicr \or
- \cyrillics \or
- \cyrillict \or
- \cyrillicu \or
- \cyrillicf \or
- \cyrillich \or
- \cyrillicc \or
- \cyrillicch \or
- \cyrillicsh \or
- \cyrillicshch \or
- \cyrillichrdsn \or
- \cyrillicery \or
- \cyrillicsftsn \or
- \cyrillicerev \or
- \cyrillicyu \or
- \cyrillicya \or % 044F
- \cyrillicegrave \or % 0450 not i enco-uc.tex but same as \uchar0{232}
- \cyrillicyo \or % 0451 small yo (or io)
- \cyrillicdje \or % 0452 serbian letter
- \cyrillicgje \or % 0453 macedonian letter not in enco-uc.tex
- \cyrillicie \or % 0454 ukrainian ie
- \cyrillicdze \or % 0455 macedonian zelo
- \cyrillicii \or % 0456 byelorussian-ukrainian i.
- \cyrillicyi \or % 0457
- \cyrillicje \or % 0458 not in enco-uc.tex same as latin j?
- \cyrilliclje \or % 0459
- \cyrillicnje \or % 045A
- \cyrillictshe \or % 045B
- \cyrillickje \or % 045C macedonian, not in enco-uc.tex
- \cyrillicigrave \or % 045D macedonian, cyr i with grave not in enco-uc.tex
- \cyrillicushrt \or % 045E
- \cyrillicdzhe \or % 045F
- \cyrillicOMEGA \or % 0460 Omega not in enco-uc.tex
- \cyrillicomega \or % 0461 omega not in enco-uc.tex
- \cyrillicYAT \or % 0462 Yat not in enco-uc.tex
- \cyrillicyat \or % 0463 Yat not in enco-uc.tex
- \cyrillicEiotified \or % 0464 iotified E not in enco-uc.tex
- \cyrilliceiotified \or % 0465 iotified e not in enco-uc.tex
- \cyrillicLITTLEYUS \or % 0466 Little Yus not in enco-enc.tex
- \cyrilliclittleyus \or % 0467 Little yus not in enco-enc.tex
- \cyrillicLITTLEYUSiotified \or % 0468 Little Yus iotified not in enco-enc.tex
- \cyrilliclittleyusiotified \or % 0469 Little yus iotified not in enco-enc.tex
- \cyrillicBIGYUS \or % 046A Big Yus not in enco-enc.tex
- \cyrillicbigyus \or % 046B Big yus not in enco-enc.tex
- \cyrillicBIGYUSiotified \or % 046C Big Yus iotified not in enco-enc.tex
- \cyrillicbigyusiotified \or % 046D Big yus iotified not in enco-enc.tex
- \cyrillicKSI \or % 046E Ksi not in enco-enc.tex
- \cyrillicksi \or % 046F ksi not in enco-enc.tex
- \cyrillicPSI \or % 0470 Psi not in enco-enc.tex
- \cyrillicpsi \or % 0471 psi not in enco-enc.tex
- \cyrillicFITA \or % 0472 Fita not in enco-enc.tex
- \cyrillicfita \or % 0473 fita not in enco-enc.tex
- \cyrillicIZHITSA \or % 0474 Izhitsa not in enco-enc.tex
- \cyrillicizhitsa \or % 0475 izhitsa not in enco-enc.tex
- \cyrillicIZHITSAdoublegrave \or % 0476 Izhitsa double grave not in enco-enc.tex
- \cyrillicizhitsadoublegrave \or % 0477 izhitsa double grave not in enco-enc.tex
- \cyrillicUK \or % 0478 UK not in enco-enc.tex
- \cyrillicuk \or % 0479 uk not in enco-enc.tex
- \cyrillicOMEGAround \or % 047A Round Omega not in enco-enc.tex
- \cyrillicomegaround \or % 047B Round omega not in enco-enc.tex
- \cyrillicOMEGAtitlo \or % 047C Omega with titlo not in enco-enc.tex
- \cyrillicomegatitlo \or % 047D omega with titlo not in enco-enc.tex
- \cyrillicOT \or % 047E OT not in enco-enc.tex
- \cyrillicot \or % 047F ot not in enco-enc.tex
- \cyrillicKOPPA \or % 0480 KOPPA not in enco-enc.tex
- \cyrillickoppa \or % 0481 koppa not in enco-enc.tex
- \unknownchar \or % 0482
- \cyrillicTITLO \or % 0483 TITLO not in enco-enc.tex
- \cyrillicPALATALIZATION \or % 0484 PALATALIZATION not in enco-enc.tex
- \cyrillicDASIAPNEUMATA \or % 0485 DASIA PNEUMATA not in enco-enc.tex
- \cyrillicPSILIPNEUMATA \or % 0486 PSILI PNEUMATA not in enco-enc.tex
- \unknownchar \or % 0487
- \unknownchar \or % 0488
- \unknownchar \or % 0489
- \cyrillicISHRTtail \or % 048A ISHRT with tail not in enco-enc.tex
- \cyrillicishrttail \or % 048B ishrt with tail not in enco-enc.tex
- \cyrillicSEMISOFT \or % 048C SEMISOFT not in enco-enc.tex
- \cyrillicsemisoft \or % 048D semisoft not in enco-enc.tex
- \cyrillicERtick \or % 048E ER with tick not in enco-enc.tex
- \cyrillicertick \or % 048F er with tick not in enco-enc.tex
- \cyrillicGHEupturn \or % 0490 GHE with upturn not in enco-enc.tex
- \cyrillicgheupturn \or % 0491 ghe with upturn not in enco-enc.tex
- \cyrillicGHEstroke \or % 0492 GHE with stroke not in enco-enc.tex
- \cyrillicghestroke \or % 0493 ghe with stroke not in enco-enc.tex
- \cyrillicGHEmidhook \or % 0494 GHE with middle hook
- \cyrillicghemidhook \or % 0495 ghe with middle hook
- \cyrillicZHEdescender \or % 0496 ZHE with descender
- \cyrilliczhedescender \or % 0497 zhe with descender
- \cyrillicZDSC \or % 0498 ZE with descender
- \cyrilliczdsc \or % 0499 ze with descender
- \cyrillicKADC \or % 049A KA with descender
- \cyrillickadc \or % 049B ka with descender
- \cyrillicKAvertstroke \or % 049C KA with vertical stroke
- \cyrillickavertstroke \or % 049D ka with vertical stroke
- \cyrillicKAstroke \or % 049E KA with stroke
- \cyrillickastroke \or % 049F ka with stroke
- \cyrillicKAbashkir \or % 04A0 KA bashkir
- \cyrillickabashkir \or % 04A1 ka bashkir
- \cyrillicENDC \or % 04A2 EN with descender
- \cyrillicendc \or % 04A3 en with descender
- \cyrillicENGHE \or % 04A4 EN GHE
- \cyrillicenghe \or % 04A5 en ghe
- \cyrillicPEmidhook \or % 04A6 PE with middle hook
- \cyrillicpemidhook \or % 04A7 pe with middle hook
- \cyrillicHA \or % 04A8 Abkhasian HA
- \cyrillicha \or % 04A9 Abkhasian ha
- \cyrillicSDSC \or % 04AA S with descender
- \cyrilliccdsc \or % 04AB s with descender
- \cyrillicTEDC \or % 04AC TE with descender
- \cyrillictedc \or % 04AD te with descender
- \cyrillicYstr \or % 04AE Y straight
- \cyrillicystr \or % 04AF y straight
- \cyrillicYstrstroke \or % 04B0 Y straight with stroke
- \cyrillicystrstroke \or % 04B1 y straight with stroke
- \cyrillicHADC \or % 04B2 HA with descender
- \cyrillichadc \or % 04B3 ha with descender
- \cyrillicTETSE \or % 04B4 TE TSE
- \cyrillictetse \or % 04B5 te tse
- \cyrillicCHEDC \or % 04B6 CHE with descender
- \cyrillicchedc \or % 04B7 che with descender
- \cyrillicCHEvertstroke \or % 04B8 CHE with vertical stroke
- \cyrillicchevertstroke \or % 04B9 che with vertical stroke
- \cyrillicSHHA \or % 04BA SHHA
- \cyrillicshha \or % 04BB
- \cyrillicCHEabkhasian \or % 04BC Abkhasian CHE
- \cyrilliccheabkhasian \or % 04BD Abkhasian che
- \cyrillicCHEDCabkhasian \or % 04BE Abkhasian CHE with descender
- \cyrillicchedcabkhasian \or % 04BF Abkhasian che with descender
- \cyrillicPALOCHKA \or % 04C0 PALOCHKA
- \cyrillicZHEbreve \or % 04C1 ZHE with breve
- \cyrilliczhebreve \or % 04C2 zhe with breve
- \cyrillicKAhook \or % 04C3 KA with hook
- \cyrillickahook \or % 04C4 ka with hook
- \cyrillicELtail \or % 04C5 EL with tail
- \cyrilliceltail \or % 04C6 el with tail
- \cyrillicENhook \or % 04C7 EN with hook
- \cyrillicenhook \or % 04C8 en with hook
- \cyrillicENtail \or % 04C9 EN with tail
- \cyrillicentail \or % 04CA en with tail
- \cyrillicCHEkhakassian \or % 04CB Khakassian CHE
- \cyrillicchekhakassian \or % 04CC Khakassian che
- \cyrillicEMtail \or % 04CD EM with tail
- \cyrillicemtail \or % 04CE em with tail
- \unknownchar \or % 04CF Added to fix off-by-1 error
- \cyrillicAbreve \or % 04D0 A with breve (\uchar1{2})
- \cyrillicabreve \or % 04D1 a with breve (\uchar1{3})
- \cyrillicAdiaeresis \or % 04D2 A with diaeresis (\uchar0{196})
- \cyrillicadiaeresis \or % 04D3 a with diaeresis (\uchar0{228})
- \cyrillicAE \or % 04D4 AE (\uchar0{198})
- \cyrillicae \or % 04D5 ae (\uchar0{230})
- \cyrillicEbreve \or % 04D6
- \cyrillicebreve \or % 04D7
- \cyrillicSCHWA \or % 04D8
- \cyrillicschwa \or % 04D9
- \cyrillicSCHWAdiaeresis \or % 04DA
- \cyrillicschwadiaeresis \or % 04DB
- \cyrillicZHEdiaeresis \or % 04DC
- \cyrilliczhediaeresis \or % 04DD
- \cyrillicZEdiaeresis \or % 04DE
- \cyrilliczediaeresis \or % 04DF
- \cyrillicDZEabkhasian \or % 04E0
- \cyrillicdzeabkhasian \or % 04E1
- \cyrillicImacron \or % 04E2
- \cyrillicimacron \or % 04E3
- \cyrillicIdiaeresis \or % 04E4
- \cyrillicidiaeresis \or % 04E5
- \cyrillicOdiaeresis \or % 04E6
- \cyrillicodiaeresis \or % 04E7
- \cyrillicObarred \or % 04E8
- \cyrillicobarred \or % 04E9
- \cyrillicObarreddiaeresis \or % 04EA
- \cyrillicobarreddiaeresis \or % 04EB
- \cyrillicEdiaeresis \or % 04EC
- \cyrillicediaeresis \or % 04ED
- \cyrillicUmacron \or % 04EE
- \cyrillicumacron \or % 04EF
- \cyrillicUdiaeresis \or % 04F0
- \cyrillicudiaeresis \or % 04F1
- \cyrillicUdoubleacute \or % 04F2
- \cyrillicudoubleacute \or % 04F3
- \cyrillicCHEdiaeresis \or % 04F4
- \cyrillicchediaeresis \or % 04F5
- \unknownchar \or % 04F6
- \unknownchar \or % 04F7
- \cyrillicYERUdiaeresis \or % 04F8
- \cyrillicyerudiaeresis \else
- \unknownchar
- \fi
-\stopunicodevector
-
-\protect \endinput
-
-% \enableregime[utf]
-%
-% \definetypeface [russian] [rm] [serif] [computer-modern] [default] [encoding=t2a]
-%
-% \setupbodyfont[russian]
-%
-% \starttext
-%
-% \startbuffer
-% Мама и Папа % Some russian characters
-% \stopbuffer
-%
-% \utfunicodetracer=0 \blank \getbuffer \blank
-% \utfunicodetracer=2 \blank \getbuffer \blank
-% \utfunicodetracer=7 \blank \getbuffer \blank
-%
-% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkii/unic-005.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-005.mkii
deleted file mode 100644
index e21edb20584..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-005.mkii
+++ /dev/null
@@ -1,50 +0,0 @@
-%D \module
-%D [ file=unic-005,
-%D version=2005.01.27,
-%D title=\CONTEXT\ \UNICODE\ Macros,
-%D subtitle=Vector 5,
-%D author=Adam Lindsay,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\startunicodevector 5
- \expandafter\strippedcsname
- \ifcase\numexpr#1-208\relax % Was 224 - changed to fix off-by-16 error
- \hebrewAlef \or % 05D0
- \hebrewBet \or
- \hebrewGimel \or
- \hebrewDalet \or
- \hebrewHe \or
- \hebrewVav \or
- \hebrewZayin \or
- \hebrewHet \or
- \hebrewTet \or
- \hebrewYod \or
- \hebrewKaffinal \or
- \hebrewKaf \or
- \hebrewLamed \or
- \hebrewMemfinal \or
- \hebrewMem \or
- \hebrewNunfinal \or
- \hebrewNun \or
- \hebrewSamekh \or
- \hebrewAyin \or
- \hebrewPefinal \or
- \hebrewPe \or
- \hebrewTsadifinal \or
- \hebrewTsadi \or
- \hebrewQof \or
- \hebrewResh \or
- \hebrewShin \or
- \hebrewTav \else % 05EA
- \unknownchar
- \fi
-\stopunicodevector
-
-\protect \endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/base/mkii/unic-030.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-030.mkii
deleted file mode 100644
index 0065a738a3b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-030.mkii
+++ /dev/null
@@ -1,113 +0,0 @@
-%D \module
-%D [ file=unic-030,
-%D version=2004.11.18,
-%D title=\CONTEXT\ \UNICODE\ Macros,
-%D subtitle=Vector 30,
-%D author=Adam Lindsay,
-%D date=\currentdate,
-%D copyright={Adam Lindsay \& Hans Hagen}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\startunicodevector 30
- \expandafter\strippedcsname
- \ifcase\numexpr#1-160\relax
- \Adotbelow \or
- \adotbelow \or
- \Ahook \or
- \ahook \or
- \Acircumflexacute \or
- \acircumflexacute \or
- \Acircumflexgrave \or
- \acircumflexgrave \or
- \Acircumflexhook \or
- \acircumflexhook \or
- \Acircumflextilde \or
- \acircumflextilde \or
- \Acircumflexdotbelow \or
- \acircumflexdotbelow \or
- \Abreveacute \or
- \abreveacute \or
- \Abrevegrave \or
- \abrevegrave \or
- \Abrevehook \or
- \abrevehook \or
- \Abrevetilde \or
- \abrevetilde \or
- \Abrevedotbelow \or
- \abrevedotbelow \or
- \Edotbelow \or
- \edotbelow \or
- \Ehook \or
- \ehook \or
- \Etilde \or
- \etilde \or
- \Ecircumflexacute \or
- \ecircumflexacute \or
- \Ecircumflexgrave \or
- \ecircumflexgrave \or
- \Ecircumflexhook \or
- \ecircumflexhook \or
- \Ecircumflextilde \or
- \ecircumflextilde \or
- \Ecircumflexdotbelow \or
- \ecircumflexdotbelow \or
- \Ihook \or
- \ihook \or
- \Idotbelow \or
- \idotbelow \or
- \Odotbelow \or
- \odotbelow \or
- \Ohook \or
- \ohook \or
- \Ocircumflexacute \or
- \ocircumflexacute \or
- \Ocircumflexgrave \or
- \ocircumflexgrave \or
- \Ocircumflexhook \or
- \ocircumflexhook \or
- \Ocircumflextilde \or
- \ocircumflextilde \or
- \Ocircumflexdotbelow \or
- \ocircumflexdotbelow \or
- \Ohornacute \or
- \ohornacute \or
- \Ohorngrave \or
- \ohorngrave \or
- \Ohornhook \or
- \ohornhook \or
- \Ohorntilde \or
- \ohorntilde \or
- \Ohorndotbelow \or
- \ohorndotbelow \or
- \Udotbelow \or
- \udotbelow \or
- \Uhook \or
- \uhook \or
- \Uhornacute \or
- \uhornacute \or
- \Uhorngrave \or
- \uhorngrave \or
- \Uhornhook \or
- \uhornhook \or
- \Uhorntilde \or
- \uhorntilde \or
- \Uhorndotbelow \or
- \uhorndotbelow \or
- \Ygrave \or
- \ygrave \or
- \Ydotbelow \or
- \ydotbelow \or
- \Yhook \or
- \yhook \or
- \Ytilde \or
- \ytilde \else
- \unknownchar
- \fi
-\stopunicodevector
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/unic-031.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-031.mkii
deleted file mode 100644
index 68d1633249b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-031.mkii
+++ /dev/null
@@ -1,274 +0,0 @@
-%D \module
-%D [ file=unic-031,
-%D version=2005.02.20,
-%D title=\CONTEXT\ \UNICODE\ Macros,
-%D subtitle=Vector 31,
-%D author=Thomas A. Schmitz,
-%D date=\currentdate,
-%D copyright={Thomas A. Schmitz}]
-
-\unprotect
-
-\startunicodevector 31
- \expandafter\strippedcsname
- \ifcase\numexpr#1\relax
- \greekalphapsili \or %1f00
- \greekalphadasia \or
- \greekalphapsilivaria \or
- \greekalphadasiavaria \or
- \greekalphapsilitonos \or
- \greekalphadasiatonos \or
- \greekalphapsiliperispomeni \or
- \greekalphadasiaperispomeni \or
- \greekAlphapsili \or
- \greekAlphadasia \or
- \greekAlphapsilivaria \or
- \greekAlphadasiavaria \or
- \greekAlphapsilitonos \or
- \greekAlphadasiatonos \or
- \greekAlphapsiliperispomeni \or
- \greekAlphadasiaperispomeni \or
- \greekepsilonpsili \or %1f10
- \greekepsilondasia \or
- \greekepsilonpsilivaria \or
- \greekepsilondasiavaria \or
- \greekepsilonpsilitonos \or
- \greekepsilondasiatonos \or
- \unknownchar \or
- \unknownchar \or
- \greekEpsilonpsili \or
- \greekEpsilondasia \or
- \greekEpsilonpsilivaria \or
- \greekEpsilondasiavaria \or
- \greekEpsilonpsilitonos \or
- \greekEpsilondasiatonos \or
- \unknownchar \or
- \unknownchar \or
- \greeketapsili \or %1f20
- \greeketadasia \or
- \greeketapsilivaria \or
- \greeketadasiavaria \or
- \greeketapsilitonos \or
- \greeketadasiatonos \or
- \greeketapsiliperispomeni \or
- \greeketadasiaperispomeni \or
- \greekEtapsili \or
- \greekEtadasia \or
- \greekEtapsilivaria \or
- \greekEtadasiavaria \or
- \greekEtapsilitonos \or
- \greekEtadasiatonos \or
- \greekEtapsiliperispomeni \or
- \greekEtadasiaperispomeni \or
- \greekiotapsili \or %1f30
- \greekiotadasia \or
- \greekiotapsilivaria \or
- \greekiotadasiavaria \or
- \greekiotapsilitonos \or
- \greekiotadasiatonos \or
- \greekiotapsiliperispomeni \or
- \greekiotadasiaperispomeni \or
- \greekIotapsili \or
- \greekIotadasia \or
- \greekIotapsilivaria \or
- \greekIotadasiavaria \or
- \greekIotapsilitonos \or
- \greekIotadasiatonos \or
- \greekIotapsiliperispomeni \or
- \greekIotadasiaperispomeni \or
- \greekomicronpsili \or %1f40
- \greekomicrondasia \or
- \greekomicronpsilivaria \or
- \greekomicrondasiavaria \or
- \greekomicronpsilitonos \or
- \greekomicrondasiatonos \or
- \unknownchar \or
- \unknownchar \or
- \greekOmicronpsili \or
- \greekOmicrondasia \or
- \greekOmicronpsilivaria \or
- \greekOmicrondasiavaria \or
- \greekOmicronpsilitonos \or
- \greekOmicrondasiatonos \or
- \unknownchar \or
- \unknownchar \or
- \greekupsilonpsili \or %1f50
- \greekupsilondasia \or
- \greekupsilonpsilivaria \or
- \greekupsilondasiavaria \or
- \greekupsilonpsilitonos \or
- \greekupsilondasiatonos \or
- \greekupsilonpsiliperispomeni \or
- \greekupsilondasiaperispomeni \or
- \unknownchar \or
- \greekUpsilondasia \or
- \unknownchar \or
- \greekUpsilondasiavaria \or
- \unknownchar \or
- \greekUpsilondasiatonos \or
- \unknownchar \or
- \greekUpsilondasiaperispomeni \or
- \greekomegapsili \or %1f60
- \greekomegadasia \or
- \greekomegapsilivaria \or
- \greekomegadasiavaria \or
- \greekomegapsilitonos \or
- \greekomegadasiatonos \or
- \greekomegapsiliperispomeni \or
- \greekomegadasiaperispomeni \or
- \greekOmegapsili \or
- \greekOmegadasia \or
- \greekOmegapsilivaria \or
- \greekOmegadasiavaria \or
- \greekOmegapsilitonos \or
- \greekOmegadasiatonos \or
- \greekOmegapsiliperispomeni \or
- \greekOmegadasiaperispomeni \or
- \greekalphavaria \or %1f70
- \greekalphaoxia \or
- \greekepsilonvaria \or
- \greekepsilonoxia \or
- \greeketavaria \or
- \greeketaoxia \or
- \greekiotavaria \or
- \greekiotaoxia \or
- \greekomicronvaria \or
- \greekomicronoxia \or
- \greekupsilonvaria \or
- \greekupsilonoxia \or
- \greekomegavaria \or
- \greekomegaoxia \or
- \unknownchar \or
- \unknownchar \or
- \greekalphaiotasubpsili \or %1f80
- \greekalphaiotasubdasia \or
- \greekalphaiotasubpsilivaria \or
- \greekalphaiotasubdasiavaria \or
- \greekalphaiotasubpsilitonos \or
- \greekalphaiotasubdasiatonos \or
- \greekalphaiotasubpsiliperispomeni \or
- \greekalphaiotasubdasiaperispomeni \or
- \greekAlphaiotasubpsili \or
- \greekAlphaiotasubdasia \or
- \greekAlphaiotasubpsilivaria \or
- \greekAlphaiotasubdasiavaria \or
- \greekAlphaiotasubpsilitonos \or
- \greekAlphaiotasubdasiatonos \or
- \greekAlphaiotasubpsiliperispomeni \or
- \greekAlphaiotasubdasiaperispomeni \or
- \greeketaiotasubpsili \or %1f90
- \greeketaiotasubdasia \or
- \greeketaiotasubpsilivaria \or
- \greeketaiotasubdasiavaria \or
- \greeketaiotasubpsilitonos \or
- \greeketaiotasubdasiatonos \or
- \greeketaiotasubpsiliperispomeni \or
- \greeketaiotasubdasiaperispomeni \or
- \greekEtaiotasubpsili \or
- \greekEtaiotasubdasia \or
- \greekEtaiotasubpsilivaria \or
- \greekEtaiotasubdasiavaria \or
- \greekEtaiotasubpsilitonos \or
- \greekEtaiotasubdasiatonos \or
- \greekEtaiotasubpsiliperispomeni \or
- \greekEtaiotasubdasiaperispomeni \or
- \greekomegaiotasubpsili \or %1fa0
- \greekomegaiotasubdasia \or
- \greekomegaiotasubpsilivaria \or
- \greekomegaiotasubdasiavaria \or
- \greekomegaiotasubpsilitonos \or
- \greekomegaiotasubdasiatonos \or
- \greekomegaiotasubpsiliperispomeni \or
- \greekomegaiotasubdasiaperispomeni \or
- \greekOmegaiotasubpsili \or
- \greekOmegaiotasubdasia \or
- \greekOmegaiotasubpsilivaria \or
- \greekOmegaiotasubdasiavaria \or
- \greekOmegaiotasubpsilitonos \or
- \greekOmegaiotasubdasiatonos \or
- \greekOmegaiotasubpsiliperispomeni \or
- \greekOmegaiotasubdasiaperispomeni \or
- \greekalphavrachy \or %1fb0
- \greekalphamacron \or
- \greekalphaiotasubvaria \or
- \greekalphaiotasub \or
- \greekalphaiotasubtonos \or
- \unknownchar \or
- \greekalphaperispomeni \or
- \greekalphaiotasubperispomeni \or
- \greekAlphavrachy \or
- \greekAlphamacron \or
- \greekAlphavaria \or
- \greekAlphaoxia \or
- \greekAlphaiotasub \or
- \greekCoronis \or
- \greekprosgegrammeni \or
- \greekpsili \or
- \greekperispomeni \or %1fc0
- \greekdialytikaperispomeni \or
- \greeketaiotasubvaria \or
- \greeketaiotasub \or
- \greeketaiotasubtonos \or
- \unknownchar \or
- \greeketaperispomeni \or
- \greeketaiotasubperispomeni \or
- \greekEpsilonvaria \or
- \greekEpsilonoxia \or
- \greekEtavaria \or
- \greekEtaoxia \or
- \greekEtaiotasub \or
- \greekpsilivaria \or
- \greekpsilitonos \or
- \greekpsiliperispomeni \or
- \greekiotavrachy \or %1fd0
- \greekiotamacron \or
- \greekiotadialytikavaria \or
- \greekiotadialytikatonos \or
- \unknownchar \or
- \unknownchar \or
- \greekiotaperispomeni \or
- \greekiotadialytikaperispomeni \or
- \greekIotavrachy \or
- \greekIotamacron \or
- \greekIotavaria \or
- \greekIotaoxia \or
- \unknownchar \or
- \greekdasiavaria \or
- \greekdasiatonos \or
- \greekdasiaperispomeni \or
- \greekupsilonvrachy \or %1fe0
- \greekupsilonmacron \or
- \greekupsilondialytikavaria \or
- \greekupsilondialytikatonos \or
- \greekrhopsili \or
- \greekrhodasia \or
- \greekupsilonperispomeni \or
- \greekupsilondialytikaperispomeni \or
- \greekUpsilonvrachy \or
- \greekUpsilonmacron \or
- \greekUpsilonvaria \or
- \greekUpsilonoxia \or
- \greekRhodasia \or
- \greekdialytikavaria \or
- \greekdialytikaoxia \or
- \greekvaria \or
- \unknownchar \or %1ff0
- \unknownchar \or
- \greekomegaiotasubvaria \or
- \greekomegaiotasub \or
- \greekomegaiotasubtonos \or
- \unknownchar \or
- \greekomegaperispomeni \or
- \greekomegaiotasubperispomeni \or
- \greekOmicronvaria \or
- \greekOmicronoxia \or
- \greekOmegavaria \or
- \greekOmegaoxia \or
- \greekOmegaiotasub \or
- \greekoxia \or
- \greekdasia \else
- \unknownchar
- \fi
-\stopunicodevector
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/unic-032.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-032.mkii
deleted file mode 100644
index 6bd176c8071..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-032.mkii
+++ /dev/null
@@ -1,278 +0,0 @@
-%D \module
-%D [ file=unic-032,
-%D version=2006.03.30,
-%D title=\CONTEXT\ \UNICODE\ Macros,
-%D subtitle=Vector 32,
-%D author={Hans Hagen \& Taco Hoekwater},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\startunicodevector 32
- \expandafter\strippedcsname
- \ifcase\numexpr#1\relax
- \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/mkii/unic-033.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-033.mkii
deleted file mode 100644
index ad7a3b11ff0..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-033.mkii
+++ /dev/null
@@ -1,275 +0,0 @@
-%D \module
-%D [ file=unic-033,
-%D version=2006.03.29,
-%D title=\CONTEXT\ \UNICODE\ Macros,
-%D subtitle=Vector 33,
-%D author={Nikolai Weibull \& Hans Hagen \& Taco Hoekwater},
-%D date=\currentdate,
-%D copyright={Nikolai Weibull \& Hans Hagen}]
-
-\unprotect
-
-\startunicodevector 33
- \expandafter\strippedcsname
- \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
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/unic-034.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-034.mkii
deleted file mode 100644
index f998c517070..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-034.mkii
+++ /dev/null
@@ -1,274 +0,0 @@
-%D \module
-%D [ file=unic-034,
-%D version=2005.06.11,
-%D title=\CONTEXT\ \UNICODE\ Macros,
-%D subtitle=Vector 34,
-%D author=Nikolai Weibull,
-%D date=\currentdate,
-%D copyright={Nikolai Weibull \& Hans Hagen}]
-
-\unprotect
-
-\startunicodevector 34
- \expandafter\strippedcsname
- \ifcase\numexpr#1\relax
- \forall \or % FOR ALL
- \complement \or % COMPLEMENT
- \partial \or % PARTIAL DIFFERENTIAL
- \exists \or % THERE EXISTS
- \nexists \or % THERE DOES NOT EXIST
- \emptyset \or % EMPTY SET
- \vartriangle \or % INCREMENT
- \nabla \or % NABLA
- \unic@in \or % ELEMENT OF
- \unic@nin \or % NOT AN ELEMENT OF
- \unknownchar \or % SMALL ELEMENT OF
- \ni \or % CONTAINS AS MEMBER
- \unic@nni \or % DOES NOT CONTAIN AS MEMBER
- \unknownchar \or % SMALL CONTAINS AS MEMBER
- \QED \or % END OF PROOF
- \prod \or % N-ARY PRODUCT
- \coprod \or % N-ARY COPRODUCT
- \sum \or % N-ARY SUMMATION
- \unic@minus \or % MINUS SIGN
- \mp \or % MINUS-OR-PLUS SIGN
- \dotplus \or % DOT PLUS
- \unic@divisionslash \or % DIVISION SLASH
- \setminus \or % SET MINUS
- \ast \or % ASTERISK OPERATOR
- \circ \or % RING OPERATOR
- \bullet \or % BULLET OPERATOR
- \unic@sqrt \or % SQUARE ROOT
- \unic@cubesqrt \or % CUBE ROOT
- \unic@fourthsqrt \or % FOURTH ROOT
- \propto \or % PROPORTIONAL TO
- \infty \or % INFINITY
- \unknownchar \or % RIGHT ANGLE
- \angle \or % ANGLE
- \measuredangle \or % MEASURED ANGLE
- \sphericalangle \or % SPHERICAL ANGLE
- \unic@divides \or % DIVIDES
- \unic@ndivides \or % DOES NOT DIVIDE
- \parallel \or % PARALLEL TO
- \nparallel \or % NOT PARALLEL TO
- \land \or % LOGICAL AND
- \lor \or % LOGICAL OR
- \unic@cap \or % INTERSECTION
- \cup \or % UNION
- \int \or % INTEGRAL
- \unic@dblint \or % DOUBLE INTEGRAL
- \unic@triint \or % TRIPLE INTEGRAL
- \oint \or % CONTOUR INTEGRAL
- \unknownchar \or % SURFACE INTEGRAL
- \unknownchar \or % VOLUME INTEGRAL
- \unknownchar \or % CLOCKWISE INTEGRAL
- \unknownchar \or % CLOCKWISE CONTOUR INTEGRAL
- \unknownchar \or % ANTICLOCKWISE CONTOUR INTEGRAL
- \therefore \or % THEREFORE
- \because \or % BECAUSE
- \unic@ratio \or % RATIO
- \unic@proportion \or % PROPORTION
- \unknownchar \or % DOT MINUS
- \unic@excess \or % EXCESS
- \unic@geompropr \or % GEOMETRIC PROPORTION
- \unic@homothetic \or % HOMOTHETIC
- \sim \or % TILDE OPERATOR
- \backsim \or % REVERSED TILDE
- \unknownchar \or % INVERTED LAZY S
- \unknownchar \or % SINE WAVE
- \wr \or % WREATH PRODUCT
- \nsim \or % NOT TILDE
- \eqsim \or % MINUS TILDE
- \simeq \or % ASYMPTOTICALLY EQUAL TO
- \nsimeq \or % NOT ASYMPTOTICALLY EQUAL TO
- \approxeq \or % APPROXIMATELY EQUAL TO
- \unic@cong \or % APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
- \unic@napproxeq \or % NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
- \approx \or % ALMOST EQUAL TO
- \unic@napprox \or % NOT ALMOST EQUAL TO
- \approxeq \or % ALMOST EQUAL OR EQUAL TO
- \unknownchar \or % TRIPLE TILDE
- \unknownchar \or % ALL EQUAL TO
- \asymp \or % EQUIVALENT TO
- \Bumpeq \or % GEOMETRICALLY EQUIVALENT TO
- \bumpeq \or % DIFFERENCE BETWEEN
- \unic@doteq \or % APPROACHES THE LIMIT
- \doteqdot \or % GEOMETRICALLY EQUAL TO
- \fallingdotseq \or % APPROXIMATELY EQUAL TO OR THE IMAGE OF
- \risingdotseq \or % IMAGE OF OR APPROXIMATELY EQUAL TO
- \unknownchar \or % COLON EQUALS
- \unknownchar \or % EQUALS COLON
- \eqcirc \or % RING IN EQUAL TO
- \circeq \or % RING EQUAL TO
- \unic@correspondsto \or % CORRESPONDS TO
- \unic@estimates \or % ESTIMATES
- \unic@equiangularto \or % EQUIANGULAR TO
- \unic@stareq \or % STAR EQUALS
- \unic@triangleq \or % DELTA EQUAL TO
- \unic@eqbydef \or % EQUAL TO BY DEFINITION
- \unic@measuredby \or % MEASURED BY
- \unic@questionedeq \or % QUESTIONED EQUAL TO
- \neq \or % NOT EQUAL TO
- \equiv \or % IDENTICAL TO
- \unic@nequiv \or % NOT IDENTICAL TO
- \unknownchar \or % STRICTLY EQUIVALENT TO
- \leq \or % LESS-THAN OR EQUAL TO
- \geq \or % GREATER-THAN OR EQUAL TO
- \leqq \or % LESS-THAN OVER EQUAL TO
- \geqq \or % GREATER-THAN OVER EQUAL TO
- \lneqq \or % LESS-THAN BUT NOT EQUAL TO
- \gneqq \or % GREATER-THAN BUT NOT EQUAL TO
- \ll \or % MUCH LESS-THAN
- \gg \or % MUCH GREATER-THAN
- \between \or % BETWEEN
- \nasymp \or % NOT EQUIVALENT TO
- \nless \or % NOT LESS-THAN
- \ngtr \or % NOT GREATER-THAN
- \nleq \or % NEITHER LESS-THAN NOR EQUAL TO
- \ngeq \or % NEITHER GREATER-THAN NOR EQUAL TO
- \lesssim \or % LESS-THAN OR EQUIVALENT TO
- \gtrsim \or % GREATER-THAN OR EQUIVALENT TO
- \unic@nlesssim \or % NEITHER LESS-THAN NOR EQUIVALENT TO
- \unic@ngtrsim \or % NEITHER GREATER-THAN NOR EQUIVALENT TO
- \lessgtr \or % LESS-THAN OR GREATER-THAN
- \gtrless \or % GREATER-THAN OR LESS-THAN
- \unic@nlessgtr \or % NEITHER LESS-THAN NOR GREATER-THAN
- \unic@ngtrless \or % NEITHER GREATER-THAN NOR LESS-THAN
- \prec \or % PRECEDES
- \succ \or % SUCCEEDS
- \preceq \or % PRECEDES OR EQUAL TO
- \succeq \or % SUCCEEDS OR EQUAL TO
- \precsim \or % PRECEDES OR EQUIVALENT TO
- \succsim \or % SUCCEEDS OR EQUIVALENT TO
- \nprec \or % DOES NOT PRECEDE
- \nsucc \or % DOES NOT SUCCEED
- \subset \or % SUBSET OF
- \supset \or % SUPERSET OF
- \unic@nsubset \or % NOT A SUBSET OF
- \unic@nsupset \or % NOT A SUPERSET OF
- \subseteq \or % SUBSET OF OR EQUAL TO
- \supseteq \or % SUPERSET OF OR EQUAL TO
- \nsubseteq \or % NEITHER A SUBSET OF NOR EQUAL TO
- \nsupseteq \or % NEITHER A SUPERSET OF NOR EQUAL TO
- \subsetneq \or % SUBSET OF WITH NOT EQUAL TO
- \supsetneq \or % SUPERSET OF WITH NOT EQUAL TO
- \unknownchar \or % MULTISET
- \unknownchar \or % MULTISET MULTIPLICATION
- \biguplus \or % MULTISET UNION
- \sqsubset \or % SQUARE IMAGE OF
- \sqsupset \or % SQUARE ORIGINAL OF
- \sqsubseteq \or % SQUARE IMAGE OF OR EQUAL TO
- \sqsupseteq \or % SQUARE ORIGINAL OF OR EQUAL TO
- \sqcap \or % SQUARE CAP
- \sqcup \or % SQUARE CUP
- \oplus \or % CIRCLED PLUS
- \ominus \or % CIRCLED MINUS
- \otimes \or % CIRCLED TIMES
- \oslash \or % CIRCLED DIVISION SLASH
- \odot \or % CIRCLED DOT OPERATOR
- \circledcirc \or % CIRCLED RING OPERATOR
- \circledast \or % CIRCLED ASTERISK OPERATOR
- \unknownchar \or % CIRCLED EQUALS
- \circleddash \or % CIRCLED DASH
- \boxplus \or % SQUARED PLUS
- \boxminus \or % SQUARED MINUS
- \boxtimes \or % SQUARED TIMES
- \boxdot \or % SQUARED DOT OPERATOR
- \vdash \or % RIGHT TACK
- \dashv \or % LEFT TACK
- \top \or % DOWN TACK
- \bot \or % UP TACK
- \unknownchar \or % ASSERTION
- \models \or % MODELS
- \vDash \or % TRUE
- \unknownchar \or % FORCES
- \Vvdash \or % TRIPLE VERTICAL BAR RIGHT TURNSTILE
- \unknownchar \or % DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
- \nvdash \or % DOES NOT PROVE
- \nvDash \or % NOT TRUE
- \unknownchar \or % DOES NOT FORCE
- \unknownchar \or % NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
- \unknownchar \or % PRECEDES UNDER RELATION
- \unknownchar \or % SUCCEEDS UNDER RELATION
- \lhd \or % NORMAL SUBGROUP OF
- \rhd \or % CONTAINS AS NORMAL SUBGROUP
- \unlhd \or % NORMAL SUBGROUP OF OR EQUAL TO
- \unrhd \or % CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
- \unknownchar \or % ORIGINAL OF
- \unknownchar \or % IMAGE OF
- \unknownchar \or % MULTIMAP
- \unknownchar \or % HERMITIAN CONJUGATE MATRIX
- \unknownchar \or % INTERCALATE
- \veebar \or % XOR
- \barwedge \or % NAND
- \unknownchar \or % NOR
- \unknownchar \or % RIGHT ANGLE WITH ARC
- \unknownchar \or % RIGHT TRIANGLE
- \bigwedge \or % N-ARY LOGICAL AND
- \bigvee \or % N-ARY LOGICAL OR
- \bigcap \or % N-ARY INTERSECTION
- \bigcup \or % N-ARY UNION
- \diamond \or % DIAMOND OPERATOR
- \cdot \or % DOT OPERATOR
- \star \or % STAR OPERATOR
- \divideontimes \or % DIVISION TIMES
- \bowtie \or % BOWTIE
- \ltimes \or % LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
- \rtimes \or % RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
- \leftthreetimes \or % LEFT SEMIDIRECT PRODUCT
- \rightthreetimes \or % RIGHT SEMIDIRECT PRODUCT
- \backsimeq \or % REVERSED TILDE EQUALS
- \unknownchar \or % CURLY LOGICAL OR
- \unknownchar \or % CURLY LOGICAL AND
- \Subset \or % DOUBLE SUBSET
- \Supset \or % DOUBLE SUPERSET
- \Cap \or % DOUBLE INTERSECTION
- \Cup \or % DOUBLE UNION
- \pitchfork \or % PITCHFORK
- \unknownchar \or % EQUAL AND PARALLEL TO
- \unknownchar \or % LESS-THAN WITH DOT
- \unknownchar \or % GREATER-THAN WITH DOT
- \lll \or % VERY MUCH LESS-THAN
- \ggg \or % VERY MUCH GREATER-THAN
- \lesseqgtr \or % LESS-THAN EQUAL TO OR GREATER-THAN
- \gtreqless \or % GREATER-THAN EQUAL TO OR LESS-THAN
- \unknownchar \or % EQUAL TO OR LESS-THAN
- \unknownchar \or % EQUAL TO OR GREATER-THAN
- \curlyeqprec \or % EQUAL TO OR PRECEDES
- \curlyeqsucc \or % EQUAL TO OR SUCCEEDS
- \npreceq \or % DOES NOT PRECEDE OR EQUAL
- \nsucceq \or % DOES NOT SUCCEED OR EQUAL
- \unic@nsqsubseteq \or % NOT SQUARE IMAGE OF OR EQUAL TO
- \unic@nsqsupseteq \or % NOT SQUARE ORIGINAL OF OR EQUAL TO
- \unknownchar \or % SQUARE IMAGE OF OR NOT EQUAL TO
- \unknownchar \or % SQUARE ORIGINAL OF OR NOT EQUAL TO
- \lnsim \or % LESS-THAN BUT NOT EQUIVALENT TO
- \gnsim \or % GREATER-THAN BUT NOT EQUIVALENT TO
- \precnsim \or % PRECEDES BUT NOT EQUIVALENT TO
- \succnsim \or % SUCCEEDS BUT NOT EQUIVALENT TO
- \ntriangleleft \or % NOT NORMAL SUBGROUP OF
- \ntriangleright \or % DOES NOT CONTAIN AS NORMAL SUBGROUP
- \ntrianglelefteq \or % NOT NORMAL SUBGROUP OF OR EQUAL TO
- \ntrianglerighteq \or % DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
- \vdots \or % VERTICAL ELLIPSIS
- \cdots \or % MIDLINE HORIZONTAL ELLIPSIS
- \unknownchar \or % UP RIGHT DIAGONAL ELLIPSIS
- \ddots \or % DOWN RIGHT DIAGONAL ELLIPSIS
- \unknownchar \or % ELEMENT OF WITH LONG HORIZONTAL STROKE
- \unknownchar \or % ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
- \unknownchar \or % SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
- \unknownchar \or % ELEMENT OF WITH DOT ABOVE
- \unknownchar \or % ELEMENT OF WITH OVERBAR
- \unknownchar \or % SMALL ELEMENT OF WITH OVERBAR
- \unknownchar \or % ELEMENT OF WITH UNDERBAR
- \unknownchar \or % ELEMENT OF WITH TWO HORIZONTAL STROKES
- \unknownchar \or % CONTAINS WITH LONG HORIZONTAL STROKE
- \unknownchar \or % CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
- \unknownchar \or % SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
- \unknownchar \or % CONTAINS WITH OVERBAR
- \unknownchar \else % SMALL CONTAINS WITH OVERBAR
- \unknownchar % Z NOTATION BAG MEMBERSHIP
- \fi
-\stopunicodevector
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/unic-035.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-035.mkii
deleted file mode 100644
index 0c949017468..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-035.mkii
+++ /dev/null
@@ -1,32 +0,0 @@
-%D \module
-%D [ file=unic-035,
-%D version=2009.05.25,
-%D title=\CONTEXT\ \UNICODE\ Macros,
-%D subtitle=Vector 35,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-
-\unprotect
-
-\startunicodevector 35
- \expandafter\strippedcsname
- \ifcase\numexpr#1\relax
- \varnothing \or % DIAMETER SIGN
- \unknownchar \or % ELECTRIC ARROW
- \unknownchar \or % HOUSE
- \unknownchar \or % UP ARROWHEAD
- \unknownchar \or % DOWN ARROWHEAD
- \unknownchar \or % PROJECTIVE
- \unknownchar \or % PERSPECTIVE
- \unknownchar \or % WAVY LINE
- \lceil \or % LEFT CEILING
- \rceil \or % RIGHT CEILING
- \lfloor \or % LEFT FLOOR
- \rfloor \or % RIGHT FLOOR
- \unknownchar \else
- \unknownchar %
- \fi
-\stopunicodevector
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/unic-037.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-037.mkii
deleted file mode 100644
index 646a4afb299..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-037.mkii
+++ /dev/null
@@ -1,278 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\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/mkii/unic-039.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-039.mkii
deleted file mode 100644
index 02d5d3af24f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-039.mkii
+++ /dev/null
@@ -1,68 +0,0 @@
-%D \module
-%D [ file=unic-039,
-%D version=2005.06.16,
-%D title=\CONTEXT\ \UNICODE\ Macros,
-%D subtitle=Vector 39,
-%D author=Nikolai Weibull,
-%D date=\currentdate,
-%D copyright={Nikolai Weibull \& Hans Hagen}]
-
-\unprotect
-
-\startunicodevector 39
- \expandafter\strippedcsname
- \ifcase\numexpr#1-192\relax
- \unknownchar \or % THREE DIMENSIONAL ANGLE
- \unknownchar \or % WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE
- \perp \or % PERPENDICULAR
- \unknownchar \or % OPEN SUBSET
- \unknownchar \or % OPEN SUPERSET
- \lbag \or % LEFT S-SHAPED BAG DELIMITER
- \rbag \or % RIGHT S-SHAPED BAG DELIMITER
- \unknownchar \or % <reserved>
- \unknownchar \or % <reserved>
- \unknownchar \or % <reserved>
- \unknownchar \or % <reserved>
- \unknownchar \or % <reserved>
- \unknownchar \or % <reserved>
- \unknownchar \or % <reserved>
- \unknownchar \or % <reserved>
- \unknownchar \or % <reserved>
- \unknownchar \or % WHITE DIAMOND WITH CENTRED DOT
- \unknownchar \or % AND WITH DOT
- \unknownchar \or % ELEMENT OF OPENING UPWARDS
- \unknownchar \or % LOWER RIGHT CORNER WITH DOT
- \unknownchar \or % UPPER LEFT CORNER WITH DOT
- \unknownchar \or % LEFT OUTER JOIN
- \unknownchar \or % RIGHT OUTER JOIN
- \unknownchar \or % FULL OUTER JOIN
- \unknownchar \or % LARGE UP TACK
- \unknownchar \or % LARGE DOWN TACK
- \unknownchar \or % LEFT AND RIGHT DOUBLE TURNSTILE
- \unknownchar \or % LEFT AND RIGHT TACK
- \unknownchar \or % LEFT MULTIMAP
- \unknownchar \or % LONG RIGHT TACK
- \unknownchar \or % LONG LEFT TACK
- \unknownchar \or % UP TACK WITH CIRCLE ABOVE
- \unknownchar \or % LOZENGE DIVIDED BY HORIZONTAL RULE
- \unknownchar \or % WHITE CONCAVE-SIDED DIAMOND
- \unknownchar \or % WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK
- \unknownchar \or % WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK
- \unknownchar \or % WHITE SQUARE WITH LEFTWARDS TICK
- \unknownchar \or % WHITE SQUARE WITH RIGHTWARDS TICK
- \unic@Lbracket \or % MATHEMATICAL LEFT WHITE SQUARE BRACKET
- \unic@Rbracket \or % MATHEMATICAL RIGHT WHITE SQUARE BRACKET
- \langle \or % MATHEMATICAL LEFT ANGLE BRACKET
- \rangle \or % MATHEMATICAL RIGHT ANGLE BRACKET
- \unic@Langle \or % MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
- \unic@Rangle \or % MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
- \unknownchar \or % <reserved>
- \unknownchar \or % <reserved>
- \unknownchar \or % <reserved>
- \unknownchar \or % <reserved>
- \unknownchar \else % <reserved>
- \unknownchar
- \fi
-\stopunicodevector
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/unic-251.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-251.mkii
deleted file mode 100644
index 909cf5e9473..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-251.mkii
+++ /dev/null
@@ -1,34 +0,0 @@
-%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 \& \CONTEXT\ Development Team}]
-
-\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/mkii/unic-cjk.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-cjk.mkii
deleted file mode 100644
index dc06e912ceb..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-cjk.mkii
+++ /dev/null
@@ -1,22 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\dostepwiserecurse {40}{159}{1}{\expanded{\defineunicodecommand{\recurselevel}} {\lookaheaduchar}}
-\dostepwiserecurse{172}{215}{1}{\expanded{\defineunicodecommand{\recurselevel}} {\lookaheaduchar}}
-\dostepwiserecurse{249}{250}{1}{\expanded{\defineunicodecommand{\recurselevel}} {\lookaheaduchar}}
-
-% special chars
-
-\dostepwiserecurse{255}{255}{1}{\expanded{\defineunicodecommand{\recurselevel}} {\lookaheaduchar}}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/unic-exp.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-exp.mkii
deleted file mode 100644
index 4bdda3f6fe8..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-exp.mkii
+++ /dev/null
@@ -1,82 +0,0 @@
-%D \module
-%D [ file=unic-exp,
-%D version=2002.12.05,
-%D title=\CONTEXT\ \UNICODE\ Support,
-%D subtitle=Expansion,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Unicode Support / Expansion)}
-
-%D \macros
-%D {expandunivector}
-%D
-%D The \type {\expandunivector} macro can be used to expand
-%D vectors, which leads to a faster run in case of documents
-%D with lots of \UTF-8 code.
-
-\unprotect
-
-\def\expandunivector[#1]%
- {\processcommalist[#1]\doexpandunivector}
-
-\def\doexpandunivector#1%
- {\ifcsname\@@univector#1\endcsname
- \ifcsname\@@univector\@@univector#1\endcsname\else
- \writestatus{unicode}{expanding vector #1}%
- \setvalue{\@@univector\@@univector#1}{\expandedunivector{#1}}%
- \dorecurse{255}
- {\@EA\ifx\csname\csname\@@univector#1\endcsname\recurselevel\endcsname\unknownchar
- % skip
- \else
- \@EA\let\csname\@@univector\@@univector#1:\recurselevel\@EA\endcsname
- \csname\csname\@@univector#1\endcsname\recurselevel\endcsname
- \fi}%
- \letbeundefined{\@@univector#1}%
- \fi
- \fi}
-
-\def\expandedunivector#1#2%
- {\ifcsname\@@univector\@@univector#1:\number#2\endcsname
- \@@univector\@@univector#1:\number#2%
- \else
- \@@unknownchar
- \fi}
-
-%D For this purpose, we need to redefine the resolver.
-
-\def\doutfunihash#1#2%
- {\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}}
-
-\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
-
-%D Let's use it:
-
-\expandunivector[0,1,2,3,4,5,30,31,32,33,34,37,39]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/unic-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-ini.mkii
deleted file mode 100644
index 96aed77bcd8..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-ini.mkii
+++ /dev/null
@@ -1,777 +0,0 @@
-%D \module
-%D [ file=unic-ini,
-%D version=2002.12.03,
-%D title=\CONTEXT\ \UNICODE\ Support,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Unicode Support / Initialization}
-
-%D Sorry, we only support his in \ETEX.
-
-\unprotect
-
-% ÀÁÂÃÄÅàáâãäå
-% ÆÇæç
-% ÈÉÊËèéêë
-% ÌÍÎÏÞìíîïþ
-% Ðð
-% Ññ
-% ÒÓÔÕÖòóôõö
-% Øø
-% ÙÚÛÜùúûü
-% Ýýÿ
-% ß
-
-%D This module deals with unicode, and in particular with
-%D \UTF-8 conversion. The prelude to this module was \type
-%D {xtag-utf}, which is now replaced by a one||liner. The
-%D macros below deal with conversions. Thanks to Taco for
-%D providing the following conversion rules.
-%D
-%D \starttabulate[|c|c|c|c|c|]
-%D \NC $b_1$ \NC $b_2$ \NC $b_3$ \NC $b_4$ \NC unicode \NC \NR
-%D \NC192---223\NC128---191\NC \NC \NC 0x80---0x7FF \NC \NR
-%D \NC224---239\NC128---191\NC128---191\NC \NC 0x800---0xFFFF \NC \NR
-%D \NC240---247\NC128---191\NC128---191\NC128---191\NC0x10000---0x1FFFF\NC \NR
-%D \stoptabulate
-%D
-%D In \UTF-8 the characters in the range 128---191 are illegal
-%D as first characters. The characters 254 and 255 are
-%D completely illegal and should not appear at all (they are
-%D related to UTF-16).
-%D
-%D The unicode number for an \UTF-8 sequence can be calculated
-%D as follows:
-%D
-%D \starttabulate[|mc|m|mc|m|mc|m|mc|m|]
-%D \NC b_1 \NC \NC \NC \NC \NC \NC \NC if b_1<=127\NC \NR
-%D \NC 64(b_1-192)\NC+\NC (b_2-128)\NC \NC \NC \NC \NC if 192<=b1<=223\NC \NR
-%D \NC 4096(b_1-224)\NC+\NC 64(b_2-128)\NC+\NC (b_3-128)\NC \NC \NC if 224<=b1<=239\NC \NR
-%D \NC262144(b_1-240)\NC+\NC4096(b_2-128)\NC+\NC64(b_3-128)\NC+\NC(b_4-128)\NC if 240<=b1<=247\NC \NR
-%D \stoptabulate
-%D
-%D A lot of information about unicode can be found on the
-%D web (search for Markus Kuhn and unicode and you'll
-%D probably end up at the right place).
-
-%D In \ETEX\ vocabulary such a conversion looks as follows.
-%D We need the \type {`} in order to turn a character into a
-%D number.
-%D
-%D \starttyping
-%D \def\utftwounicode#1#2%
-%D {\number\numexpr (64*(\numexpr (#1-192))+%
-%D (\numexpr(`#2-128)))}
-%D
-%D \def\utfthreeunicode#1#2#3%
-%D {\number\numexpr (4096*(\numexpr (#1-224))+
-%D 64*(\numexpr(`#2-128))+%
-%D (\numexpr(`#3-128)))}
-%D
-%D \def\utffourunicode#1#2#3#4%
-%D {\number\numexpr(262144*(\numexpr (#1-240))+
-%D 4096*(\numexpr(`#1-128))+
-%D 64*(\numexpr(`#2-128))+%
-%D (\numexpr(`#3-128)))}
-%D \stoptyping
-%D
-%D When we map the unicode number on one of the 256 char wide
-%D unicode tables, we need to do a bit of div and mod. Watch
-%D out: an \ETEX\ \type {/} is not the same as \TEX's \type
-%D {\divide}. The former rounds, while the later truncates, so
-%D we need to trucate ourselves. In case you wonder why we
-%D use \type {\numexpr}: this is not only more convenient, but
-%D also makes it possible to avoid scratch counters, so that we
-%D get fast and fully expandable conversions.
-%D
-%D \starttyping
-%D \def\utfdiv#1{\number\numexpr((#1-128)/256)}
-%D \def\utfmod#1{\number\numexpr((#1)-(256*(\utfdiv{#1})))}
-%D \stoptyping
-%D
-%D So far for the readable alternatives. When using \type
-%D {\numexpr} you should be aware of rather unexpected look
-%D ahead effects. The next implementation uses registers,
-%D which saves tokens and is faster. In this case we gain
-%D some 10\% time.
-
-\chardef \utf@a= 64
-\mathchardef \utf@b= 4096
-\newcount\utf@c\utf@c=262144
-\chardef \utf@d= 192
-\chardef \utf@e= 224
-\chardef \utf@f= 240
-\chardef \utf@g= 128
-\mathchardef \utf@h= 256
-\chardef \utf@i= 127
-\mathchardef \utf@j= 2048
-
-%D The definitions now become:
-%D
-%D \starttyping
-%D \def\utftwounicode#1#2%
-%D {\number\numexpr(\utf@a*(\numexpr (#1-\utf@d))+%
-%D (\numexpr(`#2-\utf@g)))}
-%D
-%D \def\utfthreeunicode#1#2#3%
-%D {\number\numexpr(\utf@b*(\numexpr (#1-\utf@e))+
-%D \utf@a*(\numexpr(`#2-\utf@g))+%
-%D (\numexpr(`#3-\utf@g)))}
-%D
-%D \def\utffourunicode#1#2#3#4%
-%D {\number\numexpr(\utf@c*(\numexpr (#1-\utf@f))+
-%D \utf@b*(\numexpr(`#2-\utf@g))+
-%D \utf@a*(\numexpr(`#3-\utf@g))+%
-%D (\numexpr(`#4-\utf@g)))}
-%D \stoptyping
-%D
-%D And:
-%D
-%D \starttyping
-%D \def\utfdiv#1{\number\numexpr((#1-\utf@g)/\utf@h)}
-%D \def\utfmod#1{\number\numexpr((#1)-(\utf@h*(\utfdiv{#1})))}
-%D \stoptyping
-%D
-%D Depending on the usage, you can rely on parenthesis only:
-%D
-%D \starttyping
-%D \def\utftwounicode#1#2%
-%D {\numexpr(\utf@a*(#1-\utf@d)+%
-%D `#2-\utf@g)}
-%D
-%D \def\utfthreeunicode#1#2#3%
-%D {\numexpr(\utf@b*(#1-\utf@e)+%
-%D \utf@a*(`#2-\utf@g)+%
-%D `#3-\utf@g)}
-%D
-%D \def\utffourunicode#1#2#3#4%
-%D {\numexpr(\utf@c*(#1-\utf@f)+%
-%D \utf@b*(`#2-\utf@g)+%
-%D \utf@a*(`#3-\utf@g)+%
-%D `#4-\utf@g)}
-%D \stoptyping
-
-% beware, unless surrounded by \numexpr .. \relax, a division
-% results in a float until the final result is calculated
-
-\def\utfdiv#1{\the\numexpr (#1-\utf@g)/\utf@h \relax}
-\def\utfmod#1{\the\numexpr#1-\utf@h*((#1-\utf@g)/\utf@h)\relax}
-
-%D The next one also handles the zero case well: (not really utf specific btw)
-
-\def\utfdiv#1{\the\numexpr\ifcase\numexpr#1\relax0\else (#1-\utf@g)/\utf@h \fi\relax}
-\def\utfmod#1{\the\numexpr\ifcase\numexpr#1\relax0\else#1-\utf@h*((#1-\utf@g)/\utf@h)\fi\relax}
-
-% or
-%
-% \def\utfdiv#1{\ifcase\numexpr#1\relax0\else\the\numexpr(#1-\utf@g)/\utf@h\relax\fi}
-% \def\utfmod#1{\ifcase\numexpr#1\relax0\else\the\numexpr#1-\utf@h*((#1-\utf@g)/\utf@h)\relax\fi}
-
-%D When tracing we also need:
-
-\def\utfvid#1{\the\numexpr(#1-\medcard)/\maxcard\relax}
-
-%D Using the three conversion macros, we can now implement
-%D a few handlers. They all call the general \type
-%D {\unicodechar} conversion macro.
-%D
-%D \starttyping
-%D \def\utftwouniglph#1#2%
-%D {\unicodechar{\utftwounicode {#1}{#2}}}
-%D
-%D \def\utfthreeuniglph#1#2#3%
-%D {\unicodechar{\utfthreeunicode{#1}{#2}{#3}}}
-%D
-%D \def\utffouruniglph#1#2#3#4%
-%D {\unicodechar{\utffourunicode {#1}{#2}{#3}{#4}}}
-%D \stoptyping
-%D
-%D Because the unicode number is used a few times per
-%D conversion, we can expand it once (\type {\the} and \type
-%D {\number} make sure of this). This saves us another 10\%.
-%D
-%D \starttyping
-%D \def\utftwouniglph#1#2%
-%D {\@EA\unicodechar\@EA{\the\utftwounicode{#1}{#2}}}
-%D
-%D \def\utfthreeuniglph#1#2#3%
-%D {\@EA\unicodechar\@EA{\the\utfthreeunicode{#1}{#2}{#3}}}
-%D
-%D \def\utffouruniglph#1#2#3#4%
-%D {\@EA\unicodechar\@EA{\the\utffourunicode{#1}{#2}{#3}{#4}}}
-%D \stoptyping
-%D
-%D We can rewrite these macros to faster alternatives: the
-%D less arguments we pass, the faster the conversion will be,
-%D but at the price of readability. So we have:
-%D
-%D \starttyping
-%D \def\utftwouniglph#1#2%
-%D {\@EA\unicodechar\@EA{\the\numexpr(\utf@a*(#1-\utf@d)+%
-%D `#2-\utf@g)}}
-%D
-%D \def\utfthreeuniglph#1#2#3%
-%D {\@EA\unicodechar\@EA{\the\numexpr(\utf@b*(#1-\utf@e)+%
-%D \utf@a*(`#2-\utf@g)+`#3-\utf@g)}}
-%D
-%D \def\utffouruniglph#1#2#3#4%
-%D {\@EA\unicodechar\@EA{\the\numexpr(\utf@c*(#1-\utf@f)+%
-%D \utf@b*(`#2-\utf@g)+\utf@a*(`#3-\utf@g)+`#4-\utf@g)}}
-%D \stoptyping
-%D
-%D Less parsing, and therefore faster:
-
-% beware, this may change: #1 rawchar (=> `#1 and such, saves tokens)
-
-\def\utftwouniglph#1#2%
- {\@EA\unicodechar\@EA{\the\numexpr\utf@a*(#1-\utf@d)+`#2-\utf@g\relax}}
-
-\def\utfthreeuniglph#1#2#3%
- {\@EA\unicodechar\@EA{\the\numexpr\utf@b*(#1-\utf@e)+\utf@a*(`#2-\utf@g)+`#3-\utf@g\relax}}
-
-\def\utffouruniglph#1#2#3#4%
- {\@EA\unicodechar\@EA{\the\numexpr\utf@c*(#1-\utf@f)+\utf@b*(`#2-\utf@g)+\utf@a*(`#3-\utf@g)+`#4-\utf@g\relax}}
-
-% \def\keeputfcharacters
-% {\def\utftwouniglph ##1##2{\rawcharacter{##1}\string##2}%
-% \def\utfthreeuniglph ##1##2##3{\rawcharacter{##1}\string##2\string##3}%
-% \def\utffouruniglph ##1##2##3##4{\rawcharacter{##1}\string##2\string##3\string##4}}
-
-\def\keeputfcharacters
- {\let\utftwouniglph \rawcharacter
- \let\utfthreeuniglph\rawcharacter
- \let\utffouruniglph \rawcharacter}
-
-\appendtoks \keeputfcharacters \to \everywritestring
-
-% \bgroup
-% \keeputfcharacters
-% \expanded{\index{\XMLflush{whatever}}}
-% \egroup
-
-%D Now we come to the unicode handler itself. We will use a few
-%D constants, which saves us (at least at the time of writing
-%D and testing these macros) another 10\%.
-
-\def\@@univector {univ}
-\def\@@unicommand {unic}
-\def\@@unknownchar{unknownchar}
-
-%D Now comes the nice part: turning codes into glyphs. The
-%D actual conversion does not take place here, but is done by
-%D macros in \type{unic-nnn} files. There we map a range onto
-%D named glyphs, so that they fit well into the rest of
-%D \CONTEXT.
-
-%D \macros
-%D {utfunicodetracer}
-%D
-%D By default, the converter produces a character representation,
-%D but for tracing purposes, you can set a trace option.
-
-\newconstant\utfunicodetracer
-
-%D \def\TraceUnic#1%
-%D {\utfunicodetracer#1\relax\enableregime[utf]Ű}
-%D
-%D \starttabulate[|c|c|c|c|c|c|]
-%D \NC option \NC number\NC mapping\NC glyph\NC string\NC example \NC \NR
-%D \NC 0 \NC \NC \NC \star\NC \NC \TraceUnic0\NC \NR
-%D \NC 1 \NC \star \NC \NC \NC \NC \TraceUnic1\NC \NR
-%D \NC 2 \NC \NC \star \NC \NC \NC \TraceUnic2\NC \NR
-%D \NC 3 \NC \star \NC \star \NC \NC \NC \TraceUnic3\NC \NR
-%D \NC 4 \NC \star \NC \NC \star\NC \NC \TraceUnic4\NC \NR
-%D \NC 5 \NC \NC \star \NC \star\NC \NC \TraceUnic5\NC \NR
-%D \NC 6 \NC \star \NC \star \NC \star\NC \NC \TraceUnic6\NC \NR
-%D \NC 7 \NC \NC \NC \NC \star \NC \TraceUnic7\NC \NR
-%D \NC 8 \NC \star \NC \NC \NC \NC \TraceUnic8\NC \NR
-%D \NC otherwise\NC \NC \NC \star\NC \NC \TraceUnic9\NC \NR
-%D \stoptabulate
-
-%D \macros
-%D {unicodechar}
-%D
-%D Next we implement the character handler:
-
-\def\unicodechar
- {\ifcase\utfunicodetracer
- \expandafter\utfunihash \or
- \expandafter\utfunichar \or
- \expandafter\utfunisplit \or
- \expandafter\utfuniboth \or
- \expandafter\utfunihashchar \or
- \expandafter\utfunihashsplit \or
- \expandafter\utfunihashboth \or
- \expandafter\utfuniglyphname \or
- \expandafter\utfunientity \else
- \expandafter\utfunihash
- \fi}
-
-%D \startbuffer
-%D \enableregime[utf] \dostepwiserecurse{0}{8}{1}
-%D {\recurselevel:
-%D \utfunicodetracer\recurselevel aap‒noot coördinatie – één
-%D \crlf}
-%D \stopbuffer
-%D
-%D \typebuffer \start \getbuffer \stop
-
-%D \macros
-%D {unicodehexnumber}
-%D
-%D A few auxiliary macros, producing the range||char pair:
-
-\def\unicodepair#1%
- {\utfdiv{#1}:\utfmod{#1}}
-
-\def\unicodenumber#1{\number#1}
-
-\def\unicodehexnumber#1%
- {\ifnum#1>\maxcard
- \expanded{\uchexnumbers{\utfvid{#1}}}%
- \expanded{\uchexnumbers{\utfdiv{\utfdiv{#1}}}}%
- \else
- 00%
- \expanded{\uchexnumbers{\utfdiv{#1}}}%
- \fi
- \expanded{\uchexnumbers{\utfmod{#1}}}}
-
-%D The following macros visualize the unicode character. The
-%D \type {\relax} in front of the \type {-} prevents lookahead
-%D problems; somehow \type {\numexpr} cannot look beyond this
-%D sign, and expects a number.
-
-\ifx\tttf\undefined \let\tttf\relax \fi
-
-\def\utfunichar #1{{\tttf U\low{\tx\unicodenumber{#1}}}}
-\def\utfunisplit #1{{\tttf U\low{\tx\unicodepair{#1}}}}
-\def\utfuniboth #1{{\tttf U\low{\tx\unicodenumber{#1}->\unicodepair{#1}}}}
-\def\utfunientity #1{{\tttf\&\#x\unicodehexnumber{#1};}}
-
-%D The character itself is accessed and typeset by:
-%D
-%D \starttyping
-%D \def\utfunihash#1%
-%D {\executeifdefined{\@@univector\utfdiv{#1}}%
-%D \gobbleoneargument{\utfmod{#1}}}
-%D \stoptyping
-%D
-%D Again, we can provide a faster alternative, because inside
-%D the conditional executer, the argument is expanded twice,
-%D and therefore the calculation done once more than needed.
-%D So, we make sure that the argument is expansion on
-%D forehand. Just to remind you: \type {#1} is the \UNICODE\
-%D number.
-%D
-%D \starttyping
-%D \def\utfunihash#1%
-%D {\@EA\executeifdefined\@EA{\@EA\@@univector\number\utfdiv{#1}}%
-%D {\unknownchar\gobbleoneargument}{\utfmod{#1}}}
-%D \stoptyping
-%D
-%D In order to save calculation time, I decided to change
-%D this definition into:
-
-%D \starttyping
-%D \def\utfunihash#1%
-%D {\@EA\doutfunihash\@EA{\number\utfdiv{#1}}{#1}}
-%D
-%D \def\doutfunihash#1#2%
-%D {\ifcsname\@@univector\number#1\endcsname
-%D \csname\csname\@@univector#1\endcsname{\utfmod{#2}}\endcsname
-%D \else
-%D \unknownchar
-%D \fi}
-%D \stoptyping
-%D
-%D Or leaner and meaner:
-%D
-%D \starttyping
-%D \def\doutfunihash#1#2%
-%D {\csname
-%D \ifcsname\@@univector\number#1\endcsname
-%D \csname\@@univector#1\endcsname{\utfmod{#2}}%
-%D \else
-%D \@@unknownchar
-%D \fi
-%D \endcsname}
-%D \stoptyping
-%D
-%D And finaly it became:
-
-\def\doutfunihash#1#2%
- {\ifcsname\@@univector\number#1\endcsname
- \csname\@@univector#1\endcsname{\utfmod{#2}}%
- \else
- \@@unknownchar
- \fi}
-
-\def\utfunihashglyph#1%
- {\csname\@EA\doutfunihash\@EA{\number\utfdiv{#1}}{#1}\endcsname}
-
-\def\utfunihashcommand
- {\@EAEAEA\string\utfunihashglyph}
-
-%D For practical purposes, we handle the normal \ASCII\
-%D characters here:
-
-\def\utfunihashglyph#1%
- {\csname
- \ifnum#1<\utf@i
- \strippedcsname\unicodeasciicharacter\endcsname{#1}%
- \else
- \@EA\doutfunihash\@EA{\number\utfdiv{#1}}{#1}\endcsname
- \fi}
-
-%D Well, we also want a plug-in mechanism, so we en dup with
-%D a messy:
-
-\def\utfunihashglyph#1%
- {\@EA\doutfunihashglyph\@EA{\number\numexpr\utfdiv{#1}\@EA\relax\@EA}\@EA{\number\utfmod{#1}}{#1}}
-
-% \def\doutfunihashglyph#1#2#3% div mod raw
-% {\csname
-% \ifnum#3<\utf@i
-% \strippedcsname\unicodeasciicharacter\endcsname{#2}%
-% \else\ifcsname\@@unicommand#1\endcsname
-% \@@unicommand#1\endcsname{#2}%
-% \else\ifcsname\@@univector#1\endcsname
-% \csname\@@univector#1\endcsname{#2}\endcsname % watch the nested csname; it's a speed up
-% \else
-% \strippedcsname\unicodeunknowncharacter\endcsname{#2}%
-% \fi\fi\fi}
-%
-% \def\unicodeunknowncharacter#1%
-% {\unknownchar}
-%
-% The next one permits lookahead
-
-\def\doutfunihashglyph#1#2#3% div mod raw
- {\csname utf!\ifnum#3<\utf@i 1\else
- \ifcsname\@@unicommand#1\endcsname2\else
- \ifcsname\@@univector #1\endcsname3\else
- 4\fi\fi\fi !\endcsname{#1}{#2}}
-
-\setvalue{utf!1!}#1{\unicodeasciicharacter} % {#2}
-\setvalue{utf!2!}#1{\csname\@@unicommand#1\endcsname} % {#2}
-\setvalue{utf!3!}#1#2{\csname\csname\@@univector#1\endcsname{#2}\endcsname} % watch the nested csname; it's a speed up
-\setvalue{utf!4!}#1#2{\unicodeunknowncharacter}
-
-\def\unicodeunknowncharacter
- {\unknownchar}
-
-%D With:
-
-\let\unicodeasciicharacter\rawcharacter
-
-%D Commands are defined with:
-
-\def\defineunicodecommand #1 #2% #2{range number}{char number}
- {\setvalue{\@@unicommand#1}##1{#2{#1}{##1}}}
-
-%D For instance:
-%D
-%D \starttyping
-%D \defineutfcommand 81 {\uchar}
-%D \stoptyping
-
-%D Now we can also say:
-
-\let\utfunihash\utfunihashglyph
-
-%D We also need:
-
-\def\utfuniglyphname#1%
- {{\tttf
- \ifnum#1<\utf@i
- \unicodeasciicharacter{#1}%
- \else
- \expandafter\string\csname\doutfunihash{\number\utfdiv{#1}}{#1}\endcsname
- \fi}}
-
-%D The combined presentation is implemented by:
-
-\def\utfunihashchar #1%
- {\utfunihash{#1}\low{\infofont\unicodenumber{#1}}}
-
-\def\utfunihashsplit#1%
- {\utfunihash{#1}\low{\infofont\unicodepair{#1}}}
-
-\def\utfunihashboth #1%
- {\utfunihash{#1}\low{\infofont\unicodenumber{#1}->\unicodepair{#1}}}
-
-%D Unknown characters get a placeholder.
-
-\unexpanded\def\unknownchar % {} prevents problems with arguments
- {{\hbox{\vrule\!!width.5em\!!height1ex\!!depth\zeropoint}}}
-
-%D So far for the conversion macros. The optimizations we
-%D did, brought down the runtime some 50\%, which, given that
-%D the majority of characters will be normal \ASCII\
-%D characters, the penalty of conversion is not that large.
-
-%D \macros
-%D {useunicodevector}
-%D
-%D Since we end up with many encodings, it starts making
-%D sense to postpone loading, so let's start doing this
-%D with \UNICODE.
-
-\def\doifunicodevector#1%
- {\doifdefined{\@@univector#1}}
-
-\def\useunicodevector[#1]%
- {\processcommalist[#1]\douseunicodevector}
-
-\def\douseunicodevector#1%
- {\ifundefined{\@@univector#1}%
- % \readsysfile{\f!unicprefix\threedigits{#1}}
- \readsysfile{\f!unicprefix\doifnumberelse{#1}{\threedigits{#1}}{#1}.mkii}
- {\writestatus{unicode}{loading vector #1}}
- {\writestatus{unicode}{unknown vector #1}}%
- \fi}
-
-%D \macros
-%D {startunicodevector}
-%D
-%D A vector roughly looks as follows. By putting the text
-%D inside the name constructor, we prevent problems with
-%D partial expansion in macros and special cases.
-%D
-%D \starttyping
-%D \startunicodevector 0
-%D \ifcase\numexpr(#1-159)\or
-%D \@@unknownchar\or % NO-BREAK SPACE
-%D exclamdown\or
-%D textcent\or
-%D ....\else
-%D \@@unknowncharacter
-%D \fi
-%D \stopunicodevector
-%D \stoptyping
-%D
-%D In vector \type {unix-000} you will find another
-%D optimizations. By using as less tokens as possible, we limit
-%D the time skipping branches in the test, and save upto 20\%
-%D runtime.
-
-\def\startunicodevector #1 #2\stopunicodevector
- {\setgvalue{\@@univector#1}##1{#2}}
-
-%D We define (as a practical example) the utf signal FEFF:
-
-\ifx\zwnbsp\undefined
- \let\zwnbsp\relax % zerowidthnonbreakablespace
-\fi
-
-\startunicodevector 254
- \expandafter\strippedcsname\ifnum#1<255 \unknownchar\else\zwnbsp\fi
-\stopunicodevector
-
-%D Here we provide another auxiliary macro:
-%D
-%D \startbuffer
-%D \unicodeinfoline{196}{Ä}{LATIN CAPITAL LETTER A WITH DIAERESIS}
-%D \unicodeinfoline{197}{Å}{LATIN CAPITAL LETTER A WITH RING ABOVE}
-%D \unicodeinfoline{198}{Æ}{LATIN CAPITAL LETTER AE}
-%D \unicodeinfoline{199}{Ç}{LATIN CAPITAL LETTER C WITH CEDILLA}
-%D \unicodeinfoline{200}{È}{LATIN CAPITAL LETTER E WITH GRAVE}
-%D \unicodeinfoline{201}{É}{LATIN CAPITAL LETTER E WITH ACUTE}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D \start \enableregime[utf]\getbuffer \stop
-
-\def\unicodeinfoline#1#2#3%
- {\ifnum#1>\utf@g % 128
- \noindent \hbox
- {\hbox to 4em{\tttf\unicodehexnumber{#1}\hss}\quad
- \hbox to 1em{#2\hss}\quad
- \hbox to 9em{\tttf\unicodenumber{#1}->\unicodepair{#1}\hss}\quad
- \hbox to 9em{\tttf\let\utfunihash\utfunihashcommand#2\hss}\quad % tricky
- \lowercase {\tttf#3}}\par
- \fi}
-
-%D The next code permits utf code in hyperlinks:
-
-\def\cleanunicodechar#1{.#1.}
-
-\appendtoks \let\unicodechar\cleanunicodechar \to \everycleanupfeatures
-
-%D We will now hook this mechanism in the existing font
-%D handler. More documentation will follow. Probably, some
-%D features in \type {font-uni.tex} will be generalized
-%D and moved here.
-
-\def\unidiv{0} \def\unimod{0}
-
-\chardef\utfunihashmode=0 % 0=hash glyph / 1=font glyph
-
-\def\utfunifontglyph#1%
- {\xdef\unidiv{\number\utfdiv{#1}}%
- \xdef\unimod{\number\utfmod{#1}}%
- \ifnum#1<\utf@i
- \char\unimod % \unicodeascii\unimod
- \else\ifcsname\@@univector\unidiv\endcsname
- \csname\doutfunihash{\unidiv}{#1}\endcsname
- \else % so, these can be different fonts !
- \unicodeglyph\unidiv\unimod % no \uchar (yet)
- \fi\fi}
-
-\chardef\utfunicommandmode=0 % 1 = hex
-
-\def\unicodecommandchar#1#2%
- {\string\char
- \ifcase\utfunicommandmode
- #1:#2\else\lchexnumbers#1:\lchexnumbers#2%
- \fi}
-
-\def\utfunifontcommand#1%
- {\xdef\unidiv{\number\utfdiv{#1}}%
- \xdef\unimod{\number\utfmod{#1}}%
- \ifnum#1<\utf@i
- \unicodecommandchar\unidiv\unimod
- \else\ifcsname\@@univector\unidiv\endcsname
- \@EA\string\csname\doutfunihash{\unidiv}{#1}\endcsname
- \else
- \unicodecommandchar\unidiv\unimod
- \fi\fi}
-
-\def\utfunihash
- {\ifcase\utfunihashmode
- \@EA\utfunihashglyph
- \else
- \@EA\utfunifontglyph
- \fi}
-
-\def\utfunihushcommand
- {\@EAEAEA\string\utfunihashglyph}
-
-\def\utfunihashcommand
- {\ifcase\utfunihashmode
- \@EA\utfunihushcommand
- \else
- \@EA\utfunifontcommand
- \fi}
-
-%D We can convert from a number to some UTF code with the folowing
-%D conversion macro.
-
-% The first, na\"ive version:
-%
-% \def\numbertoutf#1%
-% {\ifnum#1<128
-% \rawcharacter{#1}%
-% \else\ifnum#1<2048
-% \rawcharacter{\the\numexpr192+#1/64\relax}%
-% \rawcharacter{\the\numexpr128+#1-(#1/64)*64\relax}%
-% \else % 3 bytes
-% \rawcharacter{\the\numexpr224+#1/4096\relax}%
-% \rawcharacter{\the\numexpr128+(#1-(#1/4096)*4096)/128\relax}%
-% \rawcharacter{\the\numexpr128+(#1-(#1/4096)*4096)+(#1-(#1/4096)*4096)/128\relax}%
-% \fi\fi}
-
-% We have to compensate for etex's rounding (thanks to Taco and
-% Nanning) for pointing/sorting this out:
-
-\chardef \utf@a= 64
-\mathchardef \utf@b= 4096
-\newcount\utf@c\utf@c=262144
-\chardef \utf@d= 192
-\chardef \utf@e= 224
-\chardef \utf@f= 240
-\chardef \utf@g= 128
-\mathchardef \utf@h= 256
-\chardef \utf@i= 127
-\mathchardef \utf@j= 2048
-\chardef \utf@k= 32
-
-% div: \numexp#1/#2\relax
-% mod: \numexp#1-(#1/#2)*#2\relax
-
-% \def\numbertoutf#1%
-% {\ifnum#1<\utf@g
-% \rawcharacter{#1}%
-% \else\ifnum#1<2048
-% \rawcharacter{\numexpr192+(#1/64)\relax}% 192 + (ud div 64)
-% \rawcharacter{\numexpr128+(#1-(#1/64)*64)\relax}% 128 + (ud mod 64)
-% \else\ifnum#1<2097152
-% \rawcharacter{\numexpr224+(#1-(#1/4096)\relax}% 224 + (ud div 4096)
-% \rawcharacter{\numexpr128+(#1-((#1/64)-((#1/64)/64)*64)\relax}% 128 + ((ud div 64) mod 64)
-% \rawcharacter{\numexpr128+(#1-(#1-(#1/64)*64)\relax}% 128 + (ud mod 64)
-% \else
-% % todo
-% \fi\fi}
-
-\def\numbertoutf#1% okay?
- {\ifnum#1<\utf@g
- \rawcharacter{#1}%
- \else\ifnum#1<\utf@j
- \rawcharacter{\the\numexpr\utf@d+(#1-\utf@k)/\utf@a\relax}%
- \rawcharacter{\the\numexpr\utf@g+(#1-((#1-\utf@k)/\utf@a)*\utf@a)\relax}%
- \else
- \rawcharacter{\the\numexpr\utf@e+(#1-\utf@j)/\utf@b\relax}%
- \rawcharacter{\the\numexpr\utf@g+(#1-(((#1-\utf@j)/\utf@b)*\utf@b)-\utf@k)/\utf@a\relax}%
- \rawcharacter{\the\numexpr\utf@g+(#1-(((#1-\utf@j)/\utf@b)*\utf@b)-((#1-(((#1-\utf@j)/\utf@b)*\utf@b)-\utf@k)/\utf@a)*\utf@a)\relax}%
- \fi\fi}
-
-\def\numbertohexstring#1{0x\uchexnumbers{\utfdiv{#1}}\uchexnumbers{\utfmod{#1}}}
-
-\ifnum\texengine=\xetexengine
- \let\numbertoutf\numbertohexstring
-\fi
-
-\def\uchartoutf#1#2%
- {\expandafter\numbertoutf\expandafter{\the\numexpr#1*\utf@h+#2\relax}}
-
-%D Here is a mapping trick. By mapping the tex specific characters to
-%D private ones, we can prevent problems with utility files.
-
-\defineunicodecommand{240} {\doprivateunicodechar}
-
-\def\doprivateunicodechar#1#2{\char#2\relax}
-
-\def\registerprivateunicodechar#1 {\letvalue{puc::\number#1}\relax}
-
-\registerprivateunicodechar `\%
-\registerprivateunicodechar `\$
-\registerprivateunicodechar `\{
-\registerprivateunicodechar `\}
-\registerprivateunicodechar `\~
-\registerprivateunicodechar `\_
-\registerprivateunicodechar `\^
-\registerprivateunicodechar `\#
-
-\def\numbertoutp#1{\numbertoutf{\the\numexpr#1\ifcsname puc::\number#1\endcsname+"F000\fi\relax}}
-
-%D In the \XML\ expander we will do:
-%D
-%D \starttyping
-%D \def\getXMLhexcharacter##1{\numbertoutp{"##1}}%
-%D \def\getXMLdeccharacter##1{\numbertoutp {##1}}%
-%D \stoptyping
-
-%D Goodies:
-
-\fetchruntimecommand \showunicodevector {\f!unicprefix\s!run}
-\fetchruntimecommand \showunicodetable {\f!unicprefix\s!run}
-
-%D Well, let's at least preload a few familiar ones. Here we
-%D also load the \UTF\ regime.
-
-\useunicodevector[0,1,2,3,4,5,30,31,32,33,34,35,37,39,251]
-\useunicodevector[cjk]
-
-\useregime[utf]
-
-% 31, text mem usage first
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/unic-run.mkii b/Master/texmf-dist/tex/context/base/mkii/unic-run.mkii
deleted file mode 100644
index 96348d8a792..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/unic-run.mkii
+++ /dev/null
@@ -1,130 +0,0 @@
-%D \module
-%D [ file=unic-run,
-%D version=2005.06.22,
-%D title=\CONTEXT\ \UNICODE\ Support,
-%D subtitle=Goodies,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-%D \macros
-%D {showunicodevector}
-%D
-%D Original version by Nikolai Weibull. Adapted a bit (no local count
-%D definitions, stepwiserecurse instead of -1 calculations, a bit less
-%D code and such). BTW, this is kind of tricky and somehow we don't
-%D have align interference.
-
-\gdef\doshowunicodevectorrow#1#2%
- {\NC
- \ttx\uchexnumber{#2}%
- \VL
- \dostepwiserecurse{0}{15}{1}{\unicodechar{\numexpr#1*256+#2+\recurselevel*16\relax}\VL}%
- \AR}
-
-\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
- \dostepwiserecurse{0}{15}{1}
- {\expanded{\doshowunicodevectorrow{#1}{\recurselevel}}%
- \DC\DL[16]\DR}
- \NC \use{17}{\hfill \ttx unicode table hex:\uchexnumbers{#1} dec:\threedigits{#1}\kern-.25em}\NC \AR
- \stoptable}
-
-%D \starttyping
-%D \utfunicodetracer=0
-%D \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 \stoptyping
-
-%D \macros
-%D {showunicodetable}
-%D
-%D A more verbose variant:
-
-\gdef\doshowunicodetablerow#1#2%
- {\bTR
- \bTD\uchexnumber{#2}\eTD
- \dostepwiserecurse{0}{15}{1}
- {\bTD
- \edef\entrypoint{\the\numexpr#1*256+#2+##1*16\relax}%
- \utfunicodetracer\zerocount{\dontleavehmode \strut\unicodechar\entrypoint\endgraf}%
- \tt
- \utfunicodetracer\plusseven{\dontleavehmode\txx\strut\unicodechar\entrypoint\endgraf}%
- \utfunicodetracer\plusthree{\dontleavehmode\txx\strut\unicodechar\entrypoint\endgraf}%
- \utfunicodetracer\pluseight{\dontleavehmode\txx\strut\unicodechar\entrypoint\endgraf}%
- \eTD}%
- \bTD\uchexnumber{#2}\eTD
- \eTR}
-
-\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]%
- \setupTABLE[c] [\v!last] [\c!background=\v!screen,\c!backgroundscreen=.85,\c!style=\tt\tfa]%
- \setupTABLE[r] [\v!first][\c!background=\v!screen,\c!backgroundscreen=.85,\c!style=\tt\tfa]%
- \setupTABLE[r] [\v!last] [\c!background=\v!screen,\c!backgroundscreen=.85,\c!style=\tt\tfa]%
- \setupTABLE[r] [\v!odd] [\c!background=\v!screen,\c!backgroundscreen=.80]%
- \setupTABLE[c] [\v!odd] [\c!background=\v!screen,\c!backgroundscreen=.80]%
- \setupTABLE[\v!odd][\v!odd] [\c!background=\v!screen,\c!backgroundscreen=.90]%
- \bTABLE
- \bTR
- \bTD dec: \numbers{#1}\endgraf hex: \uchexnumbers{#1}\eTD
- \dostepwiserecurse{0}{15}{1}{\bTD\uchexnumber{##1}\eTD}%
- \bTD dec: \numbers{#1}\endgraf hex: \uchexnumbers{#1}\eTD
- \eTR
- \dostepwiserecurse{0}{15}{1}{\doshowunicodetablerow{#1}{##1}}%
- \bTR
- \bTD dec: \numbers{#1}\endgraf hex: \uchexnumbers{#1}\eTD
- \dostepwiserecurse{0}{15}{1}{\bTD\uchexnumber{##1}\eTD}%
- \bTD dec: \numbers{#1}\endgraf hex: \uchexnumbers{#1}\eTD
- \eTR
- \eTABLE
- \egroup}
-
-\protect \endinput
-
-% alternative
-%
-% \gdef\doshowunicodevectorrowa#1#2#3#4%
-% {\NC
-% \ttx\uchexnumber{#2}%
-% \VL
-% \dostepwiserecurse{#3}{#4}{1}{\unicodechar{\numexpr#1*256+#2+\recurselevel*16\relax}\VL}%
-% \AR}
-%
-% \gdef\doshowunicodevectorrowb#1#2#3#4%
-% {\NC
-% \relax
-% \VL
-% \dostepwiserecurse{#3}{#4}{1}{\unicodechar{\numexpr#1*256+#2+\recurselevel*16\relax}\VL}%
-% \AR}
-%
-% \gdef\showunicodevector#1%
-% {\starttable[|c|c|c|c|c|c|c|c|c|]
-% \NC\NC\dostepwiserecurse{0}{7}{1}{\ttx\uchexnumber\recurselevel/\uchexnumber{\the\numexpr2*\recurselevel\relax}\NC}\AR\DC\DL[8]\DR
-% \dostepwiserecurse{0}{15}{1}
-% {\expanded{\doshowunicodevectorrowa{#1}{\recurselevel}{0} {7}}\DC\DL[8]\DR%
-% \expanded{\doshowunicodevectorrowb{#1}{\recurselevel}{8}{15}}\DC\DL[8]\DR}%
-% \NC \use{9}{\hfill \ttx unicode table hex:\uchexnumbers{#1} dec:\threedigits{#1}\kern-.25em}\NC \AR
-% \stoptable}
diff --git a/Master/texmf-dist/tex/context/base/mkii/verb-c.mkii b/Master/texmf-dist/tex/context/base/mkii/verb-c.mkii
deleted file mode 100644
index 930977ca4f6..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/verb-c.mkii
+++ /dev/null
@@ -1,484 +0,0 @@
-%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 \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Verbatim 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/mkii/verb-eif.mkii b/Master/texmf-dist/tex/context/base/mkii/verb-eif.mkii
deleted file mode 100644
index 68c84d4bef4..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/verb-eif.mkii
+++ /dev/null
@@ -1,211 +0,0 @@
-%D \module
-%D [ file=verb-eif,
-%D version=2000.08.23,
-%D title=\CONTEXT\ Verbatim Macros,
-%D subtitle=Pretty Eiffel Verbatim,
-%D author={Berend de Boer \& Hans Hagen},
-%D date=\currentdate,
-%D copyright={Berend de Boer \& Hans Hagen}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% This module will be cleaned up a bit in the process of more
-% flexible verbatim options.
-
-\writestatus{loading}{ConTeXt Verbatim Macros / Pretty EIFFEL Verbatim}
-
-%D \startbuffer
-%D \startEIFFEL
-%D class TEST
-%D
-%D creation
-%D make
-%D
-%D feature -- creation
-%D
-%D make is
-%D do
-%D print ("hello world")
-%D end
-%D
-%D end
-%D \stopEIFFEL
-%D \stopbuffer
-%D
-%D
-%D If a variable in a comment is quoted with `..', it is typeset
-%D as a variable (common Eiffel convention for pretty typesetters):
-%D
-%D \startbuffer
-%D \startEIFFEL
-%D class TEST
-%D
-%D feature
-%D
-%D say (something: STRING) is
-%D -- say `something' to stdout
-%D do
-%D print (something)
-%D end
-%D
-%D end -- class TEST
-%D \stopEIFFEL
-%D \stopbuffer
-%D
-%D
-%D Recommended, OOSC2 style setting is:
-%D
-%D \setuptyping
-%D [EIFFEL]
-%D [margin=1em,palet=,color=blue,style=\it,icommand=\bf,ccommand=\tf]
-%D
-
-%D We borrow most of the macros from the \PERL\ driver.
-
-\ifdefined\setupprettyPLtype \else \loadmarkfile{verb-pl} \fi
-
-\unprotect
-
-%D \EIFFEL\ has only the one line comment sequence \type{--}.
-
-\gdef\EIFsetspecials%
- {\PLsetspecials
- \setpretty`\#=32
- \setpretty`\{=33 \setpretty`\}=33
- \setpretty`\[=33 \setpretty`\]=33 \setpretty`\(=33 \setpretty`\)=33
- \setpretty`\;=33 \setpretty`\:=33
- \setpretty`\!=33 \setpretty`\?=33
- \setpretty`\==33 \setpretty`\~=33 \setpretty`\<=33 \setpretty`\>=33
- \setpretty`\-=33 \setpretty`\+=33 \setpretty`\/=33 \setpretty`\*=33
- \setpretty`\^=33
- \setpretty`\%=41 \setpretty`\-=45
- \setpretty`\`=81 \setpretty`\'=82 }
-
-\gdef\EIFsethandlers%
- {\PLsethandlers
- \installprettyhandler 33 \EIFtypesymbol
- \installprettyhandler 45 \EIFtypefourfive
- \installprettyhandler 81 \EIFtypeeightone
- \installprettyhandler 82 \EIFtypeeighttwo
- \installprettyhandler 90 \EIFtypenine }
-
-\gdef\EIFsetcontrols%
- {\PLsetcontrols
- \def\flushrestofverbatimline%
- {\endPLtypesix
- \inPLcommentfalse
- \verbatimfont
- \PLverbosefalse
- \PLverboseskipped=0}}
-
-\gdef\EIFsetvariables
- {\PLsetvariables}
-
-\gdef\setupprettyEIFtype%
- {\def\prettyidentifier{EIF}%
- \let\PLidentifiers=\EIFidentifiers
- \let\PLvariables=\EIFvariables
- \EIFsetvariables
- \EIFsetcontrols
- \EIFsethandlers
- \EIFsetspecials
- \PLsetdiagnostics}
-
-% symbols should appear in roman
-
-\gdef\EIFtypesymbol#1%
- {\endPLtypesix
- \ifinPLcomment
- \getpretty{#1}%
- \else
- {\prettynaturalfont\/%
- \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty}%
- \fi}
-
-% recognize comments
-
-\gdef\EIFtypefourfive%
- {\handlenextnextpretty\doEIFtypefourfive\PLtypefourtwo}
-
-\gdef\doEIFtypefourfive#1#2%
- {\endPLtypesix
- \getprettydata{#2}%
- \ifnum\prettytype=45
- \let\next=\dodoEIFtypefourfive
- \else
- \let\next=\PLtypefourtwo
- \fi
- \next{#1}#2}
-
-\gdef\dodoEIFtypefourfive% #1%
- {\endPLtypesix
- \handlenextnextpretty\dododoEIFtypefourfive\dodododoPLtypefourfive}
-
-\gdef\dododoEIFtypefourfive%
- {\ifnewpretty\expandafter\handlenewpretty\fi\dodododoEIFtypefourfive}
-
-\gdef\dodododoEIFtypefourfive#1#2%
- {\ifinPLcomment
- \getpretties{#1}{#2}%
- \else
- \ifinPLdouble
- \getpretties{#1}{#2}%
- \else
- \global\inPLcommenttrue
- \PLverbosecorrection
- \def\next{\beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty\prettynaturalfont}%
- \expandafter\next
- \fi
- \fi}
-
-% recognize `name' in comments and format them like variables
-
-\gdef\EIFtypeeightone#1%
- {\endPLtypesix
- \ifinPLcomment
- \verbatimfont
- \else
- \getpretty{#1}%
- \fi}
-
-\gdef\EIFtypeeighttwo#1%
- {\endPLtypesix
- \ifinPLcomment
- \prettynaturalfont
- \else
- {\prettynaturalfont\/%
- \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty}%
- \fi}
-
-% double quote
-
-\gdef\EIFtypenine#1%
- {\endPLtypesix
- \ifinPLcomment
- \getpretty{#1}%
- \else\ifinPLsingle
- \getpretty{#1}%
- \else\ifinPLdouble
- \global\inPLdoublefalse
- {\prettynaturalfont\/%
- \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty}%
- \else
- \global\inPLdoubletrue
- {\prettynaturalfont
- \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty}%
- \fi\fi\fi}
-
-\useprettyidentifiers \EIFidentifiers \EIFsetspecials
- alias all and as check class create creation debug deferred do else
- elseif end ensure expanded export external false feature from frozen
- if implies indexing infix inherit inspect invariant is like local
- loop not obsolete old once or prefix redefine rename require rescue
- precursor retry select separate strip then true undefine unique
- until variant when xor
-
-\useprettyidentifiers \EIFvariables \EIFsetspecials
- not-yet-defined
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/verb-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/verb-ini.mkii
deleted file mode 100644
index 5a817b4bb91..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/verb-ini.mkii
+++ /dev/null
@@ -1,1789 +0,0 @@
-%D \module
-%D [ file=verb-ini,
-%D version=1997.12.22,
-%D title=\CONTEXT\ Verbatim Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Today I would implement the pretty handler slightly
-%D different, using stack and intermediate flushing. Maybe
-%D even without active chars. So, someday \unknown. Also
-%D I think that there are better ways (the current approach
-%D is an accumulation; for instance, we could save a second
-%D argument by turning chars into numbers and vise versa.
-
-%D Because this module is quite independant of system macros,
-%D it can be used as a stand||alone verbatim environment.
-%D
-%D This is a sort of second release of \type{supp-ver} and
-%D therefore differs in some aspects from the implementation
-%D published in the \MAPS. The first change concern
-%D optimization of breaks, that is, the first and last two
-%D lines of verbatim blocks are kept together. The second
-%D adaption is due to the fact that I wanted to support pretty
-%D printing not only for \TEX\ sources, but also for \PERL,
-%D \METAPOST\ and probably more. The \JAVASCRIPT\ module is
-%D closely related to \PERL, so we will not mention that one
-%D again.
-
-\ifx \undefined \writestatus \input supp-mis.tex \fi
-
-%D Verbatim typesetting, especially of \TEX\ sources, is a
-%D non||trivial task. This is a direct results of the fact that
-%D characters can have \CATCODES\ other than~11 and such
-%D characters needs a special treatment. What for instance is
-%D \TEX\ supposed to do when it encounters a \type{$} or an
-%D \type{#}? This module deals with these matters.
-
-\writestatus{loading}{ConTeXt Verbatim Macros / Initialization}
-
-%D The verbatim environment has some features, like coloring
-%D \TEX\ text, seldom found in other environments. Especially
-%D when the output of \TEX\ is viewed on an electronic medium,
-%D coloring has a positive influence on the readability of
-%D \TEX\ sources, so we found it very acceptable to dedicate
-%D half of this module to typesetting \TEX\ specific character
-%D sequences in color. In this module we'll also present some
-%D macro's for typesetting inline, display and file verbatim.
-%D The macro's are capable of handling \TAB\ too.
-%D
-%D This module shows a few tricks that are often overseen by
-%D novice, like the use of the \TEX\ primitive \type{\meaning}.
-%D First I'll show in what way the users are confronted with
-%D verbatim typesetting. Because we want to be able to test for
-%D symmetry and because we hate the method of closing down the
-%D verbatim mode with some strange active character, we will
-%D use the following construction for display verbatim:
-%D
-%D \starttyping
-%D The Dutch word 'typen' stands for 'typing', therefore in the Dutch version
-%D one will not find the word 'verbatim'.
-%D \stoptyping
-%D
-%D In \CONTEXT\ files can be typed with \type{\typefile} and
-%D inline verbatim can be accomplished with \type{\type}. This
-%D last command comes in many flavors:
-%D
-%D \starttyping
-%D We can say \type<<something>> or \type{something}. The first one is a bit
-%D longer but also supports slanted typing, which accomplished by typing
-%D \type<<a <<slanted>> word>>. We can also use commands to enhance the text
-%D \type<<with <</bf boldfaced>> text>>. Just to be complete, we decided
-%D to accept also \LaTeX\ alike verbatim, which means that \type+something+
-%D and \type|something| are valid commands too. Of course we want the grouped
-%D alternatives to process \type{hello {\bf big} world} with braces.
-%D \stoptyping
-%D
-%D In the core modules, we will build this support on top of
-%D this module. There these commands can be tuned with
-%D accompanying setup commands. There we can enable commands,
-%D slanted typing, control spaces, \TAB||handling and (here we
-%D are:) coloring. We can also setup surrounding white space
-%D and indenting. Here we'll only show some examples.
-
-\unprotect
-
-%D \macros
-%D {verbatimfont}
-%D
-%D When we are typesetting verbatim we use a non||proportional
-%D (mono spaced) font. Normally this font is available by
-%D calling \type{\tt}. In \CONTEXT\ this command does a
-%D complete font||style switch. There we could have stuck with
-%D \type{\tttf}.
-
-\ifx\verbatimfont\undefined \def\verbatimfont{\tt\normalnoligatures\font} \fi
-
-\ifx\normalnoligatures\undefined \let\normalnoligatures\gobbleoneargument \fi
-
-%D \macros
-%D {obeyedspace, obeyedtab, obeyedline, obeyedpage}
-%D
-%D We have followed Knuth in naming macros that make \SPACE,
-%D \NEWLINE\ and \NEWPAGE\ active and assigning them
-%D \type{\obeysomething}, but first we set some default values.
-
-\def\obeyedspace {\hbox{ }}
-\def\obeyedtab {\obeyedspace}
-\def\obeyedline {\par}
-\def\obeyedpage {\vfill\eject}
-
-%D Because we will introduce a status variable, we can define
-%D a better \type {\obeyedspace}.
-
-\def\obeyedspace {\ifprocessingverbatim\hbox{ }\else\space\fi}
-
-%D \macros
-%D {controlspace,setcontrolspaces}
-%D
-%D First we define \type{\obeyspaces}. When we want visible
-%D spaces (control spaces) we only have to adapt the definition
-%D of \type{\obeyedspace} to:
-
-\def\controlspace{\hbox{\char32}}
-\def\normalspace { }
-\def\normalspaces{\catcode`\ =\@@space}
-
-\bgroup
-\catcode`\ =\@@active
-\gdef\obeyspaces{\catcode`\ =\@@active\def {\obeyedspace}}
-\gdef\setcontrolspaces{\catcode`\ =\@@active\def {\controlspace}}
-\egroup
-
-%D \macros
-%D {obeytabs, obeylines, obeypages,
-%D ignoretabs, ignorelines, ignorepages}
-%D
-%D Next we take care of \NEWLINE\ and \NEWPAGE\ and because we
-%D want to be able to typeset listings that contain \TAB, we
-%D have to handle those too. Because we have to redefine the
-%D \NEWPAGE\ character locally, we redefine the meaning of
-%D this (often already) active character.
-
-\catcode`\^^L=\@@active \def^^L{\par}
-
-%D The following indirect definitions enable us to implement
-%D all kind of \type{\obeyed} handlers.
-
-\bgroup
-
-\catcode`\^^I=\@@active
-\catcode`\^^M=\@@active
-\catcode`\^^L=\@@active
-
-\gdef\obeytabs {\catcode`\^^I=\@@active\def^^I{\obeyedtab}}
-\gdef\obeylines {\catcode`\^^M=\@@active\def^^M{\obeyedline}}
-\gdef\obeypages {\catcode`\^^L=\@@active\def^^L{\obeyedpage}}
-
-\gdef\ignoretabs {\catcode`\^^I=\@@active\def^^I{\obeyedspace}}
-\gdef\ignorelines {\catcode`\^^M=\@@active\def^^M{\obeyedspace}}
-\gdef\ignorepages {\catcode`\^^L=\@@ignore} % \@@active\def^^L{\obeyedline}}
-\gdef\ignoreeofs {\catcode`\^^Z=\@@ignore}
-
-%D For testing (see digit parser) we need an indirect macro
-%D in order to compare the next (\type {\next}) token
-%D (possibly \type {^^M}) being \type {\obeyedline}.
-
-\gdef\nextobeyedline{\obeyedline}
-
-\egroup
-
-%D \macros
-%D {obeycharacters}
-%D
-%D We also predefine \type{\obeycharacters}, which will
-%D enable us to implement character||specific behavior, like
-%D colored verbatim.
-
-\let\obeycharacters=\relax
-
-%D \macros
-%D {settabskips}
-%D
-%D The macro \type{\settabskip} can be used to enable tab
-%D handling. Processing tabs is sometimes needed when one
-%D processes a plain \ASCII\ listing. Tab handling slows down
-%D verbatim typesetting considerably.
-
-\bgroup
-
-\catcode`\^^I=\@@active
-
-\gdef\settabskips
- {\let\processverbatimline\doprocesstabskipline
- \catcode`\^^I\@@active
- \let^^I\doprocesstabskip}
-
-\gdef\setfixedtabskips#1%
- {\catcode`\^^I\@@active
- \def^^I{\kern#1\spaceskip}}
-
-\egroup
-
-%D \macros
-%D {processingverbatim}
-%D
-%D Typesetting a file in most cases results in more than one
-%D page. Because we don't want problems with files that are
-%D read in during the construction of the page, we set \type
-%D {\ifprocessingverbatim}, so the output routine can adapt
-%D its behavior. Originally we used \type {\scratchread}, but
-%D because we want to support nesting, we decided to use a
-%D separate input file.
-
-\newif\ifprocessingverbatim
-
-%D \macros
-%D {processinlineverbatim}
-%D
-%D Although the inline verbatim commands presented here will be
-%D extended and embedded in the core modules of \CONTEXT,
-%D they can be used separately. Both grouped and character
-%D alternatives are provided but \type{<<} and nested
-%D braces are implemented in the core module. This commands
-%D takes one argument: the closing command.
-%D
-%D \starttyping
-%D \processinlineverbatim{\closingcommand}
-%D \stoptyping
-%D
-%D One can define his own verbatim commands, which can be very
-%D simple:
-%D
-%D \starttyping
-%D \def\Verbatim {\processinlineverbatim\relax}
-%D \stoptyping
-%D
-%D or a bit more more complex:
-%D
-%D \starttyping
-%D \def\GroupedVerbatim%
-%D {\bgroup
-%D \dosomeusefullthings
-%D \processinlineverbatim\egroup}
-%D \stoptyping
-%D
-%D Before entering inline verbatim mode, we take care of the
-%D unwanted \TAB, \NEWLINE\ and \NEWPAGE\ characters and
-%D turn them into \SPACE. We need the double \type{\bgroup}
-%D construction to keep the closing command local.
-
-\def\setverbatimspaceskip
- {\setbox\scratchbox\hbox{x}%
- \spaceskip\wd\scratchbox
- \xspaceskip\spaceskip}
-
-\def\setupinlineverbatim
- {\verbatimfont
- \setverbatimspaceskip
- \let\obeytabs\ignoretabs
- \let\obeylines\ignorelines
- \let\obeypages\ignorepages
- \setupcopyverbatim}
-
-\def\doprocessinlineverbatim
- {\ifx\next\bgroup
- \setupinlineverbatim
- \catcode`\{\@@begingroup
- \catcode`\}\@@endgroup
- \def\next{\let\next=}%
- \else
- \setupinlineverbatim
- \def\next##1{\catcode`##1=\@@endgroup}%
- \fi
- \next}
-
-\def\processinlineverbatim#1%
- {\bgroup
- \processingverbatimtrue
- \localcatcodestrue % TeX processes paragraph's
- \def\endofverbatimcommand{#1\egroup}%
- \bgroup
- \aftergroup\endofverbatimcommand
- \futurelet\next\doprocessinlineverbatim}
-
-%D The closing command is executed afterwards as an internal
-%D command and therefore should not be given explicitly when
-%D typesetting inline verbatim.
-
-%D \macros
-%D {optimizeverbatim}
-%D
-%D One day, a collegue asked me why I didn't prevent breaking
-%D after a first or before a last verbatim line. At first sight
-%D I thought of using the two pass mechanism, but because we're
-%D already keeping track of individual lines, a more direct
-%D solution is possible: we just keep track of in what line
-%D we are. One can turn this feature off.
-
-\newif\ifoptimizeverbatim \optimizeverbatimtrue
-
-%D Before we implement display and file verbatim, we define
-%D some macros that deal with typesetting the individual lines.
-%D We keep track of the status by means of a character
-%D specification. This status variable tells us if we're
-%D skipping a first line or placing a first or last line.
-%D The next few examples show us where breaks are inserted.
-%D
-%D \bgroup
-%D
-%D \def\doverbatimnobreak
-%D {\nobreak\hrule width 10cm\par\penalty500} % == \nobreak
-%D
-%D \def\doverbatimgoodbreak
-%D {\nobreak\hrule width 3cm \par\penalty\linepenalty}
-%D
-%D \starttyping
-%D test
-%D test
-%D \stoptyping
-%D
-%D or
-%D
-%D \starttyping
-%D test
-%D test
-%D test
-%D test
-%D \stoptyping
-%D
-%D or
-%D
-%D \starttyping
-%D test
-%D
-%D test
-%D test
-%D test
-%D \stoptyping
-%D
-%D \egroup
-%D
-%D The long ones are \type{\nobreaks} and the short ones
-%D \type{\goodbreaks}. And this is how it's done:
-
-\def\doverbatimnobreak
- {\ifoptimizeverbatim\penalty500 \fi}
-
-\def\doverbatimgoodbreak
- {\ifoptimizeverbatim\penalty\linepenalty\fi}
-
-\def\doflushverbatimline
- {\expandafter\dodoverbatimline\expandafter{\savedverbatimline}}
-
-\def\doverbatimbeginofline#1% linenumber (optional provided by mkiv / todo)
- {\dontleavehmode
- \strut
- \the\everyline}
-
-\def\doverbatimendofline
- {\par}
-
-\def\doverbatimemptyline
- {\strut
- \par}
-
-\let\handleverbatimline=\relax
-
-% \def\initializeverbatimline%
-% {\global\let\savedverbatimline=\empty
-% \ifskipfirstverbatimline
-% \global\chardef\verbatimstatus=0
-% \else
-% \global\chardef\verbatimstatus=1
-% \fi}
-%
-% more efficient
-
-\global\chardef\verbatimstatus0
-
-\def\initializeverbatimline
- {\global\let\savedverbatimline\empty
- \global\chardef\verbatimstatus\ifskipfirstverbatimline0 \else1 \fi}
-
-\chardef\verbatimemptylinemode\zerocount
-
-\def\presetemptyverbatimline
- {\ifcase\verbatimstatus
- \global\chardef\verbatimstatus\plusone
- \or
- \ifcase\verbatimemptylinemode\or\or
- \doemptyverbatimline
- \fi
- \or
- \ifcase\verbatimemptylinemode\else
- \doemptyverbatimline
- \fi
- \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}
-
-\def\presetnormalverbatimline
- {\ifcase\verbatimstatus
- \global\chardef\verbatimstatus\plustwo
- \or
- \global\chardef\verbatimstatus\plusthree
- \or
- \global\chardef\verbatimstatus\plusthree
- \or
- \doflushverbatimline
- \global\chardef\verbatimstatus\plusfour
- \or
- \kern\zeropoint
- \doverbatimnobreak
- \doflushverbatimline
- \global\chardef\verbatimstatus\plusfive
- \or
- \doverbatimgoodbreak
- \doflushverbatimline
- \fi
- \global\let\savedverbatimline\verbatimline}
-
-\def\presetlastverbatimline
- {\ifcase \verbatimstatus
- \or
- \or
- \or
- \doflushverbatimline
- \else
- \kern \zeropoint
- \doverbatimnobreak
- \doflushverbatimline
- \fi
- \ifcase\verbatimemptylinemode\or\else
- \kern \zeropoint
- \fi}
-
-%D \macros
-%D {skipfirstverbatimline}
-%D
-%D By default the rest of the first line is ignored. We can
-%D turn this feature off by saying:
-%D
-%D \starttyping
-%D \skipfirstverbatimlinefalse
-%D \stoptyping
-
-\newif\ifskipfirstverbatimline \skipfirstverbatimlinetrue
-
-%D \macros
-%D {processdisplayverbatim}
-%D
-%D We can define a display verbatim environment with the
-%D command \type{\processdisplayverbatim} in the following way:
-%D
-%D \starttyping
-%D \processdisplayverbatim{\closingcommand}
-%D \stoptyping
-%D
-%D \noindent For instance, we can define a simple command like:
-%D
-%D \starttyping
-%D \def\BeginVerbatim {\processdisplayverbatim{EndVerbatim}}
-%D \stoptyping
-%D
-%D \noindent But we can also do more advance things like:
-%D
-%D \starttyping
-%D \def\BeginVerbatim {\bigskip \processdisplayverbatim{\EndVerbatim}}
-%D \def\EndVerbatim {\bigskip}
-%D \stoptyping
-%D
-%D When we compare these examples, we see that the backslash in
-%D the closing command is optional. One is free in actually
-%D defining a closing command. If one is defined, the command
-%D is executed after ending verbatim mode.
-
-\def\processdisplayverbatim#1%
- {\par
- \bgroup
- \escapechar=-1
- \xdef\verbatimname{\string#1}%
- \egroup
- \def\endofdisplayverbatim{\csname\verbatimname\endcsname}%
- \bgroup
- \parindent\zeropoint
- \ifdim\lastskip<\parskip
- \removelastskip
- \vskip\parskip
- \fi
- \parskip\zeropoint
- \processingverbatimtrue
- \global\linepartrue
- \expandafter\let\csname\verbatimname\endcsname\relax
- \edef\endofverbatimcommand{\csname\verbatimname\endcsname}%
- \edef\endofverbatimcommand{\meaning\endofverbatimcommand}%
- \verbatimfont
- \setverbatimspaceskip
- \global\linepartrue % needed for paragraph numbering
- \setupcopyverbatim
- \initializeverbatimline
- \copyverbatimline}
-
-%D We save the closing sequence in \type{\endofverbatimcommand}
-%D in such a way that it can be compared on a line by line
-%D basis. For the conversion we use \type{\meaning}, which
-%D converts the line to non||expandable tokens. We reset
-%D \type{\parskip}, because we don't want inter||paragraph
-%D skips to creep into the verbatim source. Furthermore we
-%D \type{\relax} the line||processing macro while getting the
-%D rest of the first line. The initialization command
-%D \type{\setupcopyverbatim} does just what we expect it to do:
-%D it assigns all characters \CATCODE~11. Next we switch to
-%D french spacing and call for obeyance.
-
-\newevery \everysetupverbatim \relax
-
-\def\setupcopyverbatim
- {\uncatcodecharacters
- \frenchspacing
- \obeyspaces
- \obeytabs
- \obeylines
- \obeypages
- \obeycharacters
- \the\everysetupverbatim}
-
-%D The main copying routine of display verbatim does an
-%D ordinary string||compare on the saved closing command and
-%D the current line. The space after \type{#1} in the
-%D definition of \type{\next} is essential! As a result of
-%D using \type{\obeylines}, we have to use \type{%}'s after
-%D each line but none after the first \type{#1}.
-
-{\obeylines%
- \long\gdef\copyverbatimline#1
- {\def\next{#1 }%
- \gdef\verbatimline{#1}%
- \ifx\next\emptyspace%
- \presetemptyverbatimline%
- \else%
- \edef\next{\meaning\next}%
- \ifx\next\endofverbatimcommand%
- \presetlastverbatimline%
- \def\copyverbatimline{\egroup\endofdisplayverbatim}%
- \else%
- \presetnormalverbatimline%
- \fi%
- \fi%
- \handleverbatimline%
- \copyverbatimline}}
-
-%D The actual typesetting of a line is done by a separate
-%D macro, which enables us to implement \TAB\ handling. The
-%D \type{\do} and \type{\dodo} macros take care of the
-%D preceding \type{\parskip}, while skipping the rest of the
-%D first line. The \type{\relax} is used as an signal.
-
-%D \macros
-%D {iflinepar}
-%D
-%D A careful reader will see that \type{\linepar} is reset.
-%D This boolean can be used to determine if the current line is
-%D the first line in a pseudo paragraph and this boolean is set
-%D after each empty line. The \type{\relax} can be used to
-%D determine the end of the line when one implements a scanner
-%D routine.
-
-\newif\iflinepar
-
-\let\doopenupverbatimline=\empty
-
-\let\beginverbatimline\relax
-\let\endverbatimline \relax
-
-\long\def\dodoverbatimline#1% we don't want to group
- {\bgroup % due to pretty status
- \iflinepar\else\EveryPar{}\fi
- \dontleavehmode % \leavevmode
- \xdef\dokeepverbatimlinedata % why was this?
- {\parindent \the\parindent
- \hangindent\the\hangindent
- \hangafter \the\hangafter
- \leftskip \the\leftskip
- \rightskip \the\rightskip}%
- \egroup
- \dokeepverbatimlinedata
- \doopenupverbatimline
- \the\everyline\strut
- \beginverbatimline
- \processverbatimline{#1\relax\flushrestofverbatimline}%
- \endverbatimline
- \global\lineparfalse
- \obeyedline\par}
-
-%D \macros
-%D {flushrestofverbatimline}
-%D
-%D Some pretty drivers will collect tokens for the sake of
-%D testing on keywords. This collected string needs to be
-%D flushed. The \type {\relax} can serve as signal that there
-%D is nothing more to be interpreted.
-
-\let\flushrestofverbatimline\empty
-
-%D \macros
-%D {obeyemptylines,verbatimbaselineskip}
-%D
-%D Empty lines in verbatim can lead to white space on top of
-%D a new page. Because this is not what we want, we turn
-%D them into vertical skips. This default behavior can be
-%D overruled by:
-%D
-%D \starttyping
-%D \obeyemptylines
-%D \stoptyping
-%D
-%D Although it would cost us only a few lines of code, we
-%D decided not to take care of multiple empty lines. When a
-%D (display) verbatim text contains more successive empty
-%D lines, this probably suits some purpose. When applicable,
-%D one can set the verbatim baselineskip.
-
-\bgroup
-\catcode`\^^L=\@@active \gdef\emptypage {^^L}
-\catcode`\^^M=\@@active \gdef\emptyline {^^M}
- \gdef\emptyspace { }
-\egroup
-
-\def\verbatimbaselineskip% We don't use \let here!
- {\baselineskip}
-
-\def\doemptyverbatimline
- {\vskip\verbatimbaselineskip
- {\setbox0\hbox{\the\everyline}}%
- \global\linepartrue}
-
-% \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
-%D mechanism. Because in verbatim mode paragraphs and lines are
-%D more or less equal, we can easily implement our own simple
-%D \type{\everyline} support.
-
-%D \macros
-%D {EveryPar, EveryLine}
-%D
-%D In this module we've reserved \type{\everypar} for the
-%D things to be done with paragraphs and \type{\everyline} for
-%D line specific actions. In \CONTEXT\ however, we use
-%D \type{\everypar} for placing side- and columnfloats,
-%D inhibiting indentation and some other purposes. In verbatim
-%D mode, every line becomes a paragraph, which means that
-%D \type{\everypar} is executed frequently. To be sure, the
-%D user specific use of both \type{\everyline} and
-%D \type{\everypar} is implemented by means of
-%D \type{\EveryLine} and \type{\EveryPar}.
-%D
-%D We still have to take care of the \TAB. A \TAB\ takes eight
-%D spaces and a \SPACE\ normally has a width of 0.5~em. Because
-%D we can be halfway a tabulation, we must keep track of the
-%D position. This takes time, especially when we print complete
-%D files, therefore we \type{\relax} this mechanism by default.
-
-\chardef\spacespertab=7
-
-\def\doprocesstabskip
- {\obeyedspace % \hskip.5em or \hbox to .5em{}
- \ifdone
- \donefalse
- \advance\scratchcounter \plusone
- \@EA\doprocesstabskip
- \else\ifnum\scratchcounter>\spacespertab
- % nothing
- \else
- \advance\scratchcounter \plusone
- \@EAEAEA\doprocesstabskip
- \fi\fi}
-
-\let\endoftabskipping=\relax % will become obsolete
-
-\def\doprocesstabskipline#1%
- {\bgroup
- \scratchcounter\plusone
- \dodoprocesstabskipline#1\relax
- \egroup}
-
-\def\dodoprocesstabskipline#1%
- {\ifnum\scratchcounter>\spacespertab\relax
- \donetrue \else \donefalse \advance
- \fi \scratchcounter \plusone
- \ifx#1\relax \else
- \ifcase\tabskipmode
- % can't happen
- \or
- % go on
- \else\ifnum`#1<128
- % ok, no special character
- \else\ifnum\catcode`#1=\active
- % quits parsing, else utf lookahead problems
- \chardef\tabskipmode\zerocount
- \fi\fi\fi
- \ifcase\tabskipmode
- \@EAEAEA#1%
- \else
- \@EAEAEA#1\@EAEAEA\dodoprocesstabskipline
- \fi
- \fi}
-
-% ^ will be replaced
-
-\chardef\tabskipmode=1 % 0=quit 1=no test 2=test on active>128
-
-\long\def\processverbatimline#1{#1} % remove the fake grouping
-
-%D \macros
-%D {processfileverbatim}
-%D
-%D The verbatim typesetting of files is done on a bit different
-%D basis. This time we don't check for a closing command, but
-%D look for \EOF\ and when we've met, we make sure it does not
-%D turn into an empty line.
-%D
-%D \starttyping
-%D \processfileverbatim{filename}
-%D \stoptyping
-%D
-%D We reserve a dedicated file handle.
-
-\newread\verbatiminput
-
-\newcount\verbatimlinenumber
-
-\let \beginofverbatimlines \relax
-\let \endofverbatimlines \relax
-
-\def\processfileverbatim#1%
- {\par
- \bgroup
- \processingverbatimtrue
- \global\verbatimlinenumber\zerocount
- \global\linepartrue
- \beginofverbatimlines
- \bgroup
- \parindent\zeropoint
- \ifdim\lastskip<\parskip
- \removelastskip
- \vskip\parskip
- \fi
- \parskip\zeropoint
- \verbatimfont
- \uncatcodecharacters
- \setverbatimspaceskip
- \frenchspacing
- \obeyspaces
- \obeytabs
- \obeylines
- \obeypages
- \obeycharacters
- \ignoreeofs
- \catcode`\^^M=\@@ignore % \par is already taken care of
-% \openin\verbatiminput=#1\relax
- \openinputfile\verbatiminput{#1}%
- \skipfirstverbatimlinefalse
- \initializeverbatimline
- \def\readline%
- {\ifeof\verbatiminput \else
- \ifx\firstverbatimfileline\empty
- \global\advance\verbatimlinenumber\plusone
- \read\verbatiminput to \verbatimline
- \else
- \let\verbatimline\firstverbatimfileline
- \let\firstverbatimfileline\empty
- \fi
- \fi
- \ifeof\verbatiminput
- \ifx\lastverbatimfileline\empty
- \presetlastverbatimline
- \let\readline\relax
- \else % we will re-enter the \ifeof branch twice
- \presetnormalverbatimline
- \def\readline%
- {\let\verbatimline\lastverbatimfileline
- \let\lastverbatimfileline\empty}%
- \fi
- \else\ifx\verbatimline\empty
- \presetemptyverbatimline
- \else\ifx\verbatimline\emptyline
- \presetemptyverbatimline
- \else\ifx\verbatimline\emptypage
- \presetemptyverbatimline
- \else
- \presetnormalverbatimline
- \fi\fi\fi\fi
- \handleverbatimline
- \readline}%
- \ifeof\verbatiminput \else
- \expandafter\readline
- \fi
- \closein\verbatiminput
- \egroup
- \endofverbatimlines
- \egroup
- \ignorespaces}
-
-%D Something new:
-
-\def\processfilelinesverbatim#1#2#3%
- {\bgroup
- \let\saveddoflushverbatimline\doflushverbatimline
- \let\saveddoemptyverbatimline\doemptyverbatimline
- \def\checkverbatimfileline##1%
- {\ifnum\verbatimlinenumber<#2\else
- \ifnum\verbatimlinenumber>#3\else
- ##1%
- \fi\fi}%
- \def\doflushverbatimline
- {\checkverbatimfileline\saveddoflushverbatimline}%
- \def\doemptyverbatimline
- {\checkverbatimfileline\saveddoemptyverbatimline}%
- \processfileverbatim{#1}%
- \egroup}
-
-%D \macros
-%D {firstverbatimfileline, lastverbatimfileline}
-%D
-%D The following two macros can be set to achieve special
-%D effects, like:
-%D
-%D \starttyping
-%D \convertargument\StartFake{something}\to\firstverbatimfileline
-%D \convertargument\StopFake\to\firstverbatimfileline
-%D \stoptyping
-%D
-%D These hooks were needed for typesetting flowchart
-%D definitions verbatim, since the temporary files does not
-%D have the start and stop commands embedded.
-
-\let\firstverbatimfileline\empty
-\let\lastverbatimfileline \empty
-
-%D One can use the different \type{\obeysomething} commands to
-%D influence the behavior of these macro's. We use for instance
-%D \type{\obeycharacters} for making \type{/} an active
-%D character when we want to include typesetting commands.
-
-%D The next part of this module deals with pretty printing. The
-%D best way to understand how pretty verbatim typeseting works
-%D is to take a look at the output produced by the \TEX, \PERL\
-%D and \METAPOST\ modules first. Each of these modules has a
-%D few setup macros that tag the individual characters with a
-%D number that itself is associated to a interpretation macro.
-%D A previous implementation linked characters (after making
-%D them active) directly to such interpreters, but the more
-%D indirect way makes it possible to inspect the next
-%D character(s) without much expansion problems and/or
-%D increasing run time.
-
-%D By the way, \TEX\ defines \type{\+} as an outer macro, so we
-%D have to redefine this one to keep ourselves out of complaints.
-
-\def\+{\tabalign}
-
-%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\!!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:
-%D
-%D \starttyping
-%D \setpretty \`A 21
-%D \stoptyping
-%D
-%D Here the macro \type{\setpretty} makes the character
-%D \type{A} active, and sets it meaning to the auxiliary macro
-%D \type{\handleprettytoken}. This auxiliary macro takes the
-%D character code (a number) and the interpretation number. The
-%D three step implementation uses the \TEX book \type{~} trick.
-
-\def\dodosetpretty
- {\!!countb=\uccode`~\relax
- \catcode\!!countb=\@@active
- \uppercase{\edef~{\noexpand\handleprettytoken{\the\!!counta}{\the\!!countb}}}}
-
-\def\dosetpretty
- {\afterassignment\dodosetpretty\!!counta}
-
-\def\setpretty
- {\afterassignment\dosetpretty\uccode`~=}
-
-%D The macro \type{\handleprettytoken} is rather trivial and
-%D calls for an interpreter macro.
-
-\def\handleprettytoken#1%
- {\csname\!!PRETTY#1\endcsname} % \getvalue{\!!PRETTY#1}}
-
-%D This interpreter is installed by saying
-%D
-%D \starttyping
-%D \installprettyhandler 21 \SOMEprettyone
-%D \stoptyping
-
-\def\installprettyhandler#1 #2%
- {\letvalue{\!!PRETTY#1}#2}
-
-%D Such an interpreter gets the character number:
-%D
-%D \starttyping
-%D \def\SOMEprettyone#1{...\getpretty{#1}...}
-%D \stoptyping
-%D
-%D where \type{\getpretty} equals \type{\char}. We can't
-%D use \type{\let} here because we have to get rid of the
-%D braces.
-
-\def\getpretty#1%
- {\char#1}
-
-%D Sometimes the action depends on the next token. This token
-%D can be passed to the macro \type{\getprettydata}, that sets
-%D \type{\prettytype} to the interpreter code. The character
-%D code is saved in \type{\prettychar}.
-
-\def\setprettydata#1#2%
- {\global\chardef\prettytype#1%
- \global\chardef\prettychar#2\relax}
-
-\def\getprettydata#1%
- {\global\chardef\prettytype\zerocount
- \global\chardef\prettychar\zerocount
- \bgroup
- \let\handleprettytoken\setprettydata
- \setbox0\hbox{#1}% expands #1 and ignores space
- \egroup}
-
-%D If needed the current and next token can be handled alongside:
-
-\def\getpretties#1#2%
- {\char#1\bgroup\let\handleprettytoken\getsecondpretty#2\egroup}
-
-\def\getsecondpretty#1#2%
- {\char#2}
-
-%D When needed, one can reassign an interpreter by using
-%D \type{\newpretty} and its associates.
-%D
-%D \bgroup
-%D \setuptyping[file][optionoptie=tex,paletpalet=colorpretty]
-%D
-%D \startbuffer
-%D \bgroup
-%D \catcode`\|=\@@escape %%\|\
-%D \catcode`\\=\@@active %%\\+
-%D |gdef|dohandlenewpretty#1%
-%D {|def|dodohandlenewpretty##1%
-%D {|def|oldprettychar{#1}%
-%D |getprettydata{##1}%
-%D |ifnum|oldprettychar=|prettychar
-%D |def|dododohandlenewpretty####1%
-%D {|getprettydata{\}%
-%D |let|oldprettytype=|prettytype
-%D |getprettydata{####1}%
-%D |ifnum|prettytype=|oldprettytype
-%D |let|next=|newpretty
-%D |else
-%D |def|next{|newprettycommand{#1}##1####1}%
-%D |fi
-%D |next}%
-%D |let|next=|dododohandlenewpretty
-%D |else
-%D |def|next{|newprettycommand{#1}##1}%
-%D |fi
-%D |next}%
-%D |def|donohandlenewpretty##1%
-%D {|newprettycommand{#1}##1}%
-%D |handlenextnextpretty|dodohandlenewpretty|donohandlenewpretty}
-%D |egroup
-%D \stopbuffer
-%D
-%D {\newprettytrue\typebuffer}
-%D
-%D In this example we see that the colors differ from what we
-%D expect, but conform the definitions in the macro. This kind
-%D of recoloring can be achieved by saying:
-%D
-%D \typebuffer
-%D
-%D We'll show some more examples:
-%D
-%D \startbuffer[pretty]
-%D \installnewpretty r \red
-%D \installnewpretty g \green
-%D \installnewpretty b \blue
-%D \stopbuffer
-%D
-%D \getbuffer[pretty]
-%D
-%D \startbuffer
-%D %%\ r{Red
-%D %%\ g\Green
-%D %%\ b[Blue
-%D \stopbuffer
-%D
-%D {\newprettytrue\typebuffer}
-%D
-%D Watch the green \type{\Green}! This lines are specified as:
-%D
-%D \typebuffer
-%D
-%D along with:
-%D
-%D \typebuffer[pretty]
-%D
-%D When needed, one can use grouping.
-%D
-%D \startbuffer
-%D {yes} %%\ B %%\{[ %%\}]
-%D {no}
-%D {no} %%\ E
-%D {yes}
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Here we tell the visualizer that the \type +{+ should be
-%D treated like a \type +[+ so we get:
-%D
-%D {\newprettytrue\typebuffer}
-%D
-%D I won't explain the details of this mechanism. Those who
-%D want to build their own pretty interpreters have to close
-%D read the source anyway.
-%D
-%D Last we show an example of mixed pretty typesetting:
-%D
-%D \startbuffer
-%D \ziezo{test} %%\ P ##\ B##\ T % enter PERL mode %%\ E
-%D if $test eq "test" ##\ B ##\ B##\ T % begin group (\bgroup) %%\ E
-%D if $test eq "test"; ##\ T %%\ B%%\ T % enter TEX mode %%\ E
-%D \ziezo{test} %%\ M %%\ B%%\ T % enter METAPOST mode %%\ E
-%D draw (0,0)--(10,10); %%\ E ##\ B##\ T % end group (\egroup) %%\ E
-%D if $test eq "test";
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Here we use \type{%%\ T}, \type{%%\ P} and \type{%%\ M} for
-%D switching between \TEX, \PERL\ and \METAPOST\ mode.
-%D
-%D {\newprettytrue\typebuffer}
-%D
-%D \egroup
-%D
-%D Don't forget to set:
-
-\newif\ifnewpretty
-
-\def\installnewpretty
- {\def\doinstallnewpretty##1%
- {\setvalue{NP::\the\scratchcounter}{##1}}%
- \afterassignment\doinstallnewpretty\scratchcounter=`}
-
-%D Let's define the options we used here:
-
-\newevery\everyprettyend\relax
-
-\let\prettyend=\relax
-
-\def\prettybegin
- {\bgroup\def\prettyend{\the\everyprettyend\egroup}}
-
-\installnewpretty B \prettybegin
-\installnewpretty E \prettyend
-
-\installnewpretty J \setupprettyJVtype
-\installnewpretty M \setupprettyMPtype
-\installnewpretty P \setupprettyPLtype
-\installnewpretty T \setupprettyTEXtype
-
-%D \macros
-%D {ifnaturaltextext}
-%D
-%D When one uses \ETEX, switching to normal \TEX\ is possible
-%D too. We also introduce a switch that can be used in the
-%D drivers and set in higher level shell macros.
-
-\newif\ifnaturaltextext
-
-% \starttyping
-% test /naturaltextext\hpos{word}{test}/relax test
-% \stoptyping
-%
-% \MPxy{word}
-
-\def\naturaltextext#1\relax
- {\bgroup
- \prettynaturalfont{\restorecatcodes\scantokens{\ignorespaces#1}}%
- \egroup}
-
-\def\naturaltextext#1\relax
- {\bgroup
- \def\ascii{#1}%
- \setnormalcatcodes
- \restorecatcodes
- \prettynaturalfont{\scantokens\expandafter{\ascii}\ifhmode\unskip\fi}%
- \egroup}
-
-\installnewpretty N \naturaltextext
-
-%D When seen in action this gives:
-%D
-%D \startbuffer
-%D \startTEX
-%D \def\mathematics#1% %%\ N usage: \type {\mathematics{x^2}}
-%D {\ifmmode#1\else$#1$\fi} %%\ N becomes: \mathematics{X^2}
-%D \stopTEX
-%D \stopbuffer
-%D
-%D \getbuffer
-%D
-%D This is keyed in as:
-%D
-%D \typebuffer
-
-%D This means that when the interpreter modules support this
-%D mechanism, by default we have some keys already available.
-
-\def\newpretty#1%
- {\getprettydata{#1}%
- \ifcase\prettytype
- \expandafter\nonewpretty
- \else
- \expandafter\donewpretty
- \fi
- #1}
-
-\def\nonewpretty#1#2%
- {\getprettydata{#2}%
- \getvalue{NP::\the\prettychar}}
-
-\def\donewpretty#1%
- {\bgroup
- \def\handleprettytoken##1##2##3%
- {\getprettydata{##3}%
- \egroup
- \ifcase\prettytype\else
- \setpretty##2=\prettytype\relax
- \fi}%
- #1}
-
-%D When implementing new pretty macros, one only needs to
-%D define something like:
-%D
-%D \starttyping
-%D \def\TEXtypezero%
-%D {\handlenewpretty\TEXtypethree}
-%D \stoptyping
-%D
-%D Here the number states the category (in our examples the
-%D backslash). The second argument takes care of normal
-%D situations.
-
-\def\handlenewpretty#1%
- {\let\newprettycommand=#1%
- \handlenextnextpretty\dohandlenewpretty\newprettycommand}
-
-%D The previous shown implementation only interprets single
-%D comments, but the final one also accepts double ones. The
-%D main reason for this is that in \JAVA\ we have to deal with
-%D \type{//}. Personally I prefer the double \type{%%} because
-%D is stands out and is more symmetrical with the double
-%D slash.
-
-\bgroup
-\catcode`\|=\@@escape
-\catcode`\\=\@@active
-|gdef|dohandlenewpretty#1%
- {|def|dodohandlenewpretty##1%
- {|def|oldprettychar{#1}%
- |getprettydata{##1}%
- |ifnum|oldprettychar=|prettychar
- |def|dododohandlenewpretty####1%
- {|getprettydata{\}%
- |let|oldprettytype=|prettytype
- |getprettydata{####1}%
- |ifnum|prettytype=|oldprettytype
- |let|next|newpretty
- |else
- |def|next{|newprettycommand{#1}##1####1}%
- |fi
- |next}%
- |let|next|dododohandlenewpretty
- |else
- |def|next{|newprettycommand{#1}##1}%
- |fi
- |next}%
- |def|donohandlenewpretty##1%
- {|newprettycommand{#1}##1}%
- |handlenextnextpretty|dodohandlenewpretty|donohandlenewpretty}
-|egroup
-
-%D The `nextnext' macro we used in the previous definition
-%D looks ahead. This is needed because individual lines are
-%D handles by macro's and the next character can be something
-%D that ends the line and/or does not belong to the verbatim
-%D data.
-
-\def\handlenextnextpretty#1#2#3%
- {\def\dohandlenextnextpretty%
- {\ifx\next\bgroup % something {}
- \@EA#2%
- \else\ifx\next\relax % end of line / signal
- \@EAEAEA#2%
- \else
- \@EAEAEA#1%
- \fi\fi
- {#3}}%
- \futurelet\next\dohandlenextnextpretty}
-
-%D The pretty interpreters can (and will) change the meaning of
-%D some controls. To enable them calling the originals we save
-%D their meanings and to enable nesting we permit this only
-%D once.
-
-\def\saveprettycontrols
- {\global\let\oldobeyedspace \obeyedspace
- \global\let\oldobeyedline \obeyedline
- \global\let\oldobeyedpage \obeyedpage
- \let\saveprettycontrols \relax}
-
-%D The \PERL\ and \METAPOST\ interpreters will also handle
-%D reserved words. Sets of identifiers are defined like:
-%D
-%D \starttyping
-%D \useprettyidentifiers \MODULAidentifiers \MODULAsetspecials
-%D if then else elsif case while do repeat until ...
-%D \stoptyping
-%D
-%D New entries can be added to existing sets by repeatedly
-%D using this command.
-
-\def\useprettyidentifiers#1#2% \variable \presetcatcodes
- {\bgroup
- \ifx#1\undefined
- \global\let#1=\empty
- \fi
- \def\handleprettytoken##1##2{\char##2}%
- #2\relax
- \def\douseprettyidentifiers##1\par%
- {\xdef#1{\space#1\space##1}%
- \egroup}%
- \douseprettyidentifiers}
-
-%D We can test om identifiers with:
-
-\def\doifprettyidentifierelse#1%
- {\doifincsnameelse{\space#1\space}}
-
-%D \macros
-%D {prettyidentifierfont,prettyvariablefont,prettynaturalfont}
-%D
-%D When one want to typeset identifiers and system variables
-%D in a different typeface, one has to set the next two
-%D variables.
-
-\let\prettyidentifierfont=\relax
-\let\prettyvariablefont =\relax
-\let\prettynaturalfont =\relax
-
-%D The interpreter macros are loaded at run time. The main
-%D reason lays in the fact that we don't want to have the
-%D identifier lists hard coded in the format file. To prevent
-%D repetitive loading, one should load the modules before the
-%D first call to the macros.
-%D
-%D \starttyping
-%D \input verb-tex.tex
-%D \input verb-pl.tex
-%D \input verb-mp.tex
-%D \input verb-jv.tex
-%D \stoptyping
-%D
-%D In \CONTEXT\ we follow a different thread, and therefore all
-%D macros in the additional modules use \type {\gdef}'s and
-%D \type {\doglobal}'s. Manipulating \type {\globaldef} is
-%D possible but leads to fuzzy situations.
-
-%D \macros
-%D {ifdisablepretty,disableprettynow,disableprettyafterwards}
-%D
-%D Although for pretty printing \PERL\ and \JAVASCRIPT\ code
-%D one has to implement a bit more clever mechanism, the next
-%D switches can be used to turn off pretty printing. The
-%D boolean turns on this feature.
-
-\newif\ifdisablepretty \disableprettyfalse
-\newif\ifprettydisabled \prettydisabledfalse
-
-\def\disableprettynow
- {\ifdisablepretty\ifprettydisabled\else
- \let\prettyidentifierfont\relax
- \let\prettyvariablefont\relax
- \let\prettycomment\relax
- \def\beginofpretty[##1]{}%
- \let\endofpretty\relax
- \prettydisabledtrue
- \fi\fi}
-
-\def\disableprettyafterwards
- {\ifdisablepretty\ifprettydisabled\else
- \def\endofpretty{\normalendofpretty\disableprettynow}%
- \fi\fi}
-
-\def\enableprettynow
- {\prettydisabledfalse
- \let\prettyidentifierfont\normalprettyidentifierfont
- \let\prettyvariablefont \normalprettyvariablefont
- \let\prettynaturalfont \normalprettynaturalfont
- \let\beginofpretty \normalbeginofpretty
- \let\endofpretty \normalendofpretty}
-
-%D This feature is hooked into the verbatim line handling
-%D routine with:
-
-\def\beginverbatimline
- {\prettydisabledfalse
- \ifnewpretty\else\let\handlenewpretty\empty\fi % moved
- \let\normalprettyidentifierfont\prettyidentifierfont
- \let\normalprettyvariablefont \prettyvariablefont
- \let\normalprettynaturalfont \prettynaturalfont
- \let\normalbeginofpretty \beginofpretty
- \let\normalendofpretty \endofpretty}
-
-\def\endverbatimline
- {\enableprettynow}
-
-%D The rest of this module is dedicated to non \CONTEXT\ users
-%D and shows an example of an verbatim environment based on the
-%D previous macros.
-%D
-%D The macro's can be used to construct the commands we
-%D mentioned in the beginning of this documentation. We leave
-%D this to the fantasy of the reader and only show some \PLAIN\
-%D \TEX\ alternatives for display verbatim and listings. We
-%D define three commands for typesetting inline text, display
-%D text and files verbatim. The inline alternative also accepts
-%D user supplied delimiters.
-%D
-%D
-%D \type{text}
-%D
-%D \starttyping
-%D ... verbatim text ...
-%D \stoptyping
-%D
-%D \typefile{filename}
-%D
-%D We can turn on the options by:
-%D
-%D \starttyping
-%D \controlspacetrue
-%D \verbatimtabstrue
-%D \prettyverbatimtrue
-%D \stoptyping
-%D
-%D Here is the implementation:
-
-\newif\ifcontrolspace
-\newif\ifverbatimtabs
-\newif\ifprettyverbatim
-
-\ifCONTEXT \else
-
- \def\presettyping
- {\ifcontrolspace \let\obeyspace \setcontrolspace \fi
- \ifverbatimtabs \let\obeytabs \settabskips \fi
- \ifprettyverbatim \let\obeycharacters\setupprettytype \fi}
-
- \def\type
- {\bgroup
- \def\_{\string_}%
- \def\^{\string^}%
- \presettyping
- \processinlineverbatim\egroup}
-
- \def\starttyping
- {\bgroup
- \presettyping
- \processdisplayverbatim\stoptyping}
-
- \def\stoptyping
- {\egroup}
-
- \def\typefile#1%
- {\bgroup
- \presettyping
- \processfileverbatim{#1}%
- \egroup}
-
-\fi
-
-%D In \CONTEXT\ users say things like:
-%D
-%D \starttyping
-%D \definetyping [TEX] [option=TEX]
-%D \definetyping [MP] [option=MP]
-%D \definetyping [PL] [option=PL]
-%D \definetyping [JV] [option=JV]
-%D \stoptyping
-%D
-%D or
-%D
-%D \starttyping
-%D \setuptyping[file][option=color]
-%D \stoptyping
-%D
-%D That way \CONTEXT\ selects the appropriate interpreter
-%D itself, but more on that in another module. In other
-%D packages one can define:
-
-\ifCONTEXT \else
-
- \input verb-tex.mkii
- \input verb-mp.mkii
-
- \def\startTEX
- {\bgroup \everypar{}%
- \let\obeycharacters\setupprettyTEXtype
- \processdisplayverbatim{\stopTEX}}
-
- \def\startMP
- {\bgroup \everypar{}%
- \let\obeycharacters\setupprettyMPtype
- \processdisplayverbatim{\stopMP}}
-
- \let\stopTEX=\egroup
- \let\stopMP =\egroup
-
-\fi
-
-%D This following poor mans implementation of color is based on
-%D PostScript. One can of course use grayscales too. In the
-%D core modules these macros are redefined to using the color
-%D mechanism present in \CONTEXT.
-
-\ifCONTEXT \else
-
- \def\setcolorverbatim
- {\def\prettyone {.9 .0 .0 } % red
- \def\prettytwo {.0 .8 .0 } % green
- \def\prettythree {.0 .0 .9 } % blue
- \def\prettyfour {.8 .8 .6 } % yellow
- \def\beginofpretty[##1]%
- {\special{ps:: \csname##1\endcsname setrgbcolor}}
- \def\endofpretty%
- {\special{ps:: 0 0 0 setrgbcolor}}} % black
-
- \def\setgrayverbatim
- {\def\prettyone {.30 } % gray
- \def\prettytwo {.45 } % gray
- \def\prettythree {.60 } % gray
- \def\prettyfour {.75 } % gray
- \def\beginofpretty[##1]%
- {\special{ps:: \csname##1\endcsname setgray}}
- \def\endofpretty%
- {\special{ps:: 0 setgray}}} % black
-
-\fi
-
-%D One can redefine these two commands after loading this
-%D module. When available, one can also use appropriate
-%D font||switch macro's. We default to color.
-
-\ifCONTEXT \else \setcolorverbatim \fi
-
-%D Here come the commands that are responsible for entering and
-%D leaving the two states. As we can see, they've got much in
-%D common.
-
-%D The previous version of this module was published in the
-%D \MAPS\ of the dutch \TEX\ users group \NTG. In that article,
-%D the verbatim part of the text was typeset with the following
-%D commands for the examples:
-%D
-%D \starttyping
-%D \def\starttyping% We simplify the \ConTeXt\ macro.
-%D {\bgroup
-%D \everypar{} % We disable some troublesome mechanisms.
-%D \advance\leftskip by 1em
-%D \processdisplayverbatim{\stoptyping}}
-%D
-%D \let\stoptyping=\egroup
-%D \stoptyping
-%D
-%D We also used:
-%D
-%D \starttyping
-%D \def\startdefinition%
-%D {\bgroup
-%D \everypar{} % Again we disable some troublesome mechanisms.
-%D \let\obeycharacters=\setupprettyTEXtype % See verb-tex.tex!
-%D \EveryPar{\showparagraphcounter}%
-%D \EveryLine{\showlinecounter}%
-%D \verbatimbodyfont
-%D \processdisplayverbatim{\stopdefinition}}
-%D
-%D \def\stopdefinition%
-%D {\egroup}
-%D \stoptyping
-%D
-%D And because we have both \type{\EveryPar} and
-%D \type{\EveryLine} available, we can implement a dual
-%D numbering mechanism:
-%D
-%D \starttyping
-%D \newcount\paragraphcounter
-%D \newcount\linecounter
-%D
-%D \def\showparagraphcounter%
-%D {\llap
-%D {\bgroup
-%D \counterfont
-%D \hbox to 4em
-%D {\global\advance\paragraphcounter by 1
-%D \hss \the\paragraphcounter \hskip2em}%
-%D \egroup
-%D \hskip1em}}
-%D
-%D \def\showlinecounter%
-%D {\llap
-%D {\bgroup
-%D \counterfont
-%D \hbox to 2em
-%D {\global\advance\linecounter by 1
-%D \hss \the\linecounter}%
-%D \egroup
-%D \hskip1em}}
-%D \stoptyping
-%D
-%D One may have noticed that the \type{\EveryPar} is only
-%D executed once, because we consider each piece of verbatim
-%D as one paragraph. When one wants to take the empty lines
-%D into account, the following assignments are appropriate:
-%D
-%D \starttyping
-%D \EveryLine
-%D {\iflinepar
-%D \showparagraphcounter
-%D \fi
-%D \showlinecounter}
-%D \stoptyping
-%D
-%D In this case, nothing has to be assigned to \type{\EveryPar},
-%D maybe except of just another extra numbering scheme. The
-%D macros used to typeset this documentation are a bit more
-%D complicated, because we have to take take 'long' margin
-%D lists into account. When such a list exceeds the previous
-%D pargraph we postpone placement of the paragraph number till
-%D there's room. This way so it does not clash with the margin
-%D words.
-
-%D Normally such commands have to be embedded in a decent setup
-%D structure, where options can be set at will.
-%D
-%D Now let's summarize the most important commands.
-%D
-%D \starttyping
-%D \processinlineverbatim{\closingcommand}
-%D \processdisplayverbatim{\closingcommand}
-%D \processfileverbatim{filename}
-%D \stoptyping
-%D
-%D We can satisfy our own specific needs with the following
-%D interfacing macro's:
-%D
-%D \starttyping
-%D \obeyspaces \obeytabs \obeylines \obeypages \obeycharacters
-%D \stoptyping
-%D
-%D We can influence the verbatim environment with the following
-%D macro:
-%D
-%D \starttyping
-%D \obeyemptylines
-%D \stoptyping
-%D
-%D Some needs are fulfilled already with:
-%D
-%D \starttyping
-%D \setcontrolspace \settabskips
-%D \stoptyping
-%D
-%D lines can be enhanced with ornaments using:
-%D
-%D \starttyping
-%D \everypar \everyline \iflinepar
-%D \stoptyping
-%D
-%D and pretty verbatim support is implemented by:
-%D
-%D \starttyping
-%D \beginofpretty[#1] ... \endofpretty
-%D \stoptyping
-%D
-%D and some setup macro, like:
-%D
-%D \starttyping
-%D \setupprettyIDENTIFIERtype
-%D \stoptyping
-%D
-%D The color support macro can be redefined by the user. The
-%D parameter \type{#1} can be one of the four 'fixed'
-%D identifiers {\em prettyone}, {\em prettytwo}, {\em
-%D prettythree} and {\em prettyfour}. We have implemented a
-%D more or less general PostScript color support mechanism,
-%D using \type{specials}. One can toggle between color and
-%D grayscale with:
-%D
-%D \starttyping
-%D \setgrayverbatim \setcolorverbatim
-%D \stoptyping
-
-%D \macros
-%D {permitshiftedendofverbatim}
-%D
-%D We did not mention one drawback of the mechanism described
-%D here. The closing command must start at the first position
-%D of the line. In \CONTEXT\ we will not have this drawback,
-%D because we can test if the end command is a substring of the
-%D current line. The testing is done by two of the support
-%D macros, which of course are not available in a stand alone
-%D application of this module.
-
-\ifCONTEXT
-
- \let\doifendofverbatim=\doifelse
-
- \def\permitshiftedendofverbatim
- {\let\doifendofverbatim\doifinstringelse}
-
- {\obeylines%
- \long\gdef\copyverbatimline#1
- {\convertargument#1 \to\next%
- \gdef\verbatimline{#1}%
- \ifx\next\emptyspace%
- \presetemptyverbatimline%
- \else%
- \doifendofverbatim{\endofverbatimcommand}{\next}%
- {\presetlastverbatimline%
- \def\copyverbatimline{\egroup\endofdisplayverbatim}}%
- {\presetnormalverbatimline}%
- \fi%
- \handleverbatimline%
- \copyverbatimline}}
-
-%D As a bonus, we provide the next alternative, which takes
-%D end tags like \type {Hello World!}.
-
- \def\doprocessdisplayverbatim#1#2%
- {\par
- \beginofverbatimlines
- \bgroup
- \escapechar-1
- \xdef\verbatimname{\string#2}%
- \egroup
- \ifcase#1%
- \let\endofdisplayverbatim\relax
- \else
- \def\endofdisplayverbatim{\endofverbatimlines\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\processdisplayverbatim {\doprocessdisplayverbatim1}
- \def\processtaggeddisplayverbatim{\doprocessdisplayverbatim0}
-
-\fi
-
-%D \macros
-%D {installprettyescape}
-%D
-%D The next feature is dedicated to Fabrice Popineau who
-%D wanted math inside verbatim.
-
-\def\prettyescapecnt{255}
-
-\def\installprettyescape
- {\dodoubleempty\doinstallprettyescape}
-
-\def\doinstallprettyescape[#1][#2]#3 #4%
- {\bgroup
- \doglobal\decrement\prettyescapecnt
- \def\docommand##1%
- {\def\next{\dodoinstallprettyescape{##1}{#3}{#4}}%
- \catcode`#3=\@@active
- \@EA\scantokens\@EA{\next}}%
- \iffirstargument
- \processcommalist[#1]\docommand
- \else
- \docommand\empty
- \fi}
-
-\def\dodoinstallprettyescape#1#2#3%
- {\unexpanded\setgvalue{PRETTY@#1@\prettyescapecnt}##1##2#2{#3{##2}}%
- \expanded % we need to freeze the counter
- {\doglobal\noexpand\appendtoks
- \noexpand\doif{#1}\noexpand\prettyidentifier
- {\noexpand\setpretty`\string#2=\prettyescapecnt
- \noexpand\installprettyhandler \prettyescapecnt\space\getvalue{PRETTY@#1@\prettyescapecnt}}%
- }\to \everysetupverbatim
- \egroup}
-
-%D An example of its usage is:
-%D
-%D \startbuffer
-%D \def\xverbatimmath#1#2{\naturaltextext\mathematics{#1}\relax}
-%D \def\yverbatimmath#1#2{\naturaltextext\mathematics{[[#1]]}\relax}
-%D \def\zverbatimmath#1#2{\naturaltextext\mathematics{(#1)}\relax}
-%D
-%D \installprettyescape [MP] $ \xverbatimmath
-%D \installprettyescape [MP] ~ \yverbatimmath
-%D \installprettyescape [MP] * \zverbatimmath
-%D
-%D \startMP
-%D if $x>10$ :
-%D $x := 20$
-%D ~x := 20~
-%D *x := 20*
-%D end
-%D \stopMP
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/verb-js.mkii b/Master/texmf-dist/tex/context/base/mkii/verb-js.mkii
deleted file mode 100644
index c249bd9bb2c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/verb-js.mkii
+++ /dev/null
@@ -1,171 +0,0 @@
-%D \module
-%D [ file=verb-js,
-%D version=1998.02.07,
-%D title=\CONTEXT\ Verbatim Macros,
-%D subtitle=Pretty \JAVASCRIPT\ Verbatim,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Verbatim Macros / Pretty JavaScript Verbatim}
-
-%D In \CONTEXT\ we support \JAVASCRIPT\ inclusion in \PDF\
-%D documents and thereby enter the field of authoring. Of
-%D course we also want to pretty print such scripts, that look
-%D like:
-%D
-%D \startJS
-%D alfa = beta*2 ; // both alfa and beta are numbers // indeed
-%D if (odd(alfa))
-%D { do_something() }
-%D else
-%D { do_nothing() } /* As we can see /* in this example */ there
-%D how_about(alfa) ; is no fi needed. Also no semicolons are
-%D or_about(beta) ; needed after a right brace. */
-%D \stopJS
-%D
-%D Because \JAVASCRIPT\ looks much like \PERL, we will use
-%D a slightly adapted \PERL\ visualization. First we load the
-%D \PERL\ module:
-
-\ifdefined\setupprettyPLtype \else \loadmarkfile{verb-pl} \fi
-
-\unprotect
-
-%D The main difference between the \JAVASCRIPT\ and \PERL\
-%D interpreters concern comments. Where \TEX, \METAPOST\ and
-%D \PERL\ have one comment symbol (\type{%}, \type{%} and
-%D \type{#}), \JAVA\ has the one line comment sequence
-%D \type{//} and the multi line comment delimiters \type{/*}
-%D and \type{*/}.
-%D
-%D We need a counter to keep track of multi line comment
-%D nesting.
-
-\newcount\JScommentlevel
-
-%D We handle both \type{%} and \type{#} a bit different:
-
-\gdef\JSsetspecials%
- {\PLsetspecials
- \setpretty`\#=32
- \setpretty`\%=41
- \setpretty`\/=43
- \setpretty`\*=44 }
-
-%D We also need a few more handlers: one for \type{//} and
-%D \type{/*} and one for \type{*/}.
-
-\gdef\JSsethandlers%
- {\PLsethandlers
- \installprettyhandler 43 \JStypefourthree
- \installprettyhandler 44 \JStypefourfour }
-
-%D We can inherit most of the settings:
-
-\gdef\JSsetcontrols%
- {\PLsetcontrols
- \def\flushrestofverbatimline%
- {\endPLtypesix
- \ifcase\JScommentlevel \inPLcommentfalse \fi
- \PLverbosefalse
- \PLverboseskipped=0}}
-
-\gdef\JSsetvariables
- {\PLsetvariables
- \global\JScommentlevel=0 }
-
-\gdef\setupprettyJStype%
- {\def\prettyidentifier{JS}%
- \let\PLidentifiers=\JSidentifiers
- \let\PLvariables=\JSvariables
- \JSsetvariables
- \JSsetcontrols
- \JSsethandlers
- \JSsetspecials
- \PLsetdiagnostics}
-
-%D The main complication is that we have to look upto four
-%D characters ahead. Such macros are hard to understand but
-%D they do work!
-
-\gdef\JStypefourthree%
- {\handlenextnextpretty\doJStypefourthree\PLtypefourtwo}
-
-\gdef\doJStypefourthree#1#2%
- {\getprettydata{#2}%
- \ifnum\prettytype=43
- \let\next=\dodoJStypefourthree
- \else\ifnum\prettytype=44
- \global\advance\JScommentlevel by 1
- \global\inPLcommenttrue
- \PLverbosecorrection
- \let\next=\JStogglecomment
- \else
- \let\next=\PLtypefourtwo
- \fi\fi
- \next{#1}#2}
-
-\gdef\JStogglecomment#1#2%
- {\ifnum\JScommentlevel=1
- \beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty
- \else
- \getpretties{#1}{#2}%
- \fi}
-
-\gdef\dodoJStypefourthree% #1%
- {\endPLtypesix
- \handlenextnextpretty\dododoJStypefourthree\dodododoPLtypefourthree}
-
-\gdef\dododoJStypefourthree%
- {\ifnewpretty\expandafter\handlenewpretty\fi\dodododoJStypefourthree}
-
-\gdef\dodododoJStypefourthree#1#2%
- {\ifinPLcomment
- \getpretties{#1}{#2}%
- \else
- \global\inPLcommenttrue
- \PLverbosecorrection
- \ifnaturaltextext
- \let\next\naturaltextext
- \else
- \def\next{\beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty}%
- \fi
- \expandafter\next
- \fi}
-
-\gdef\JStypefourfour%
- {\handlenextnextpretty\doJStypefourfour\PLtypefourtwo}
-
-\gdef\doJStypefourfour#1#2%
- {\getprettydata{#2}%
- \ifnum\prettytype=43
- \JStogglecomment{#1}#2%
- \global\advance\JScommentlevel by -1
- \ifcase\JScommentlevel \global\inPLcommentfalse \fi
- \else
- \endPLtypesix
- \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty
- \expandafter#2%
- \fi}
-
-%D We need different (less) reserved words. This list replaces
-%D the \PERL\ one.
-
-\useprettyidentifiers \JSidentifiers \JSsetspecials
- abstract boolean break byte case catch char class const
- continue default delete do double else extends false final
- finally float for function goto if implements import in
- instanceof int interface long native new null package
- private protected public return short static super switch
- synchronized this throw throws transient true try var void
- while with
-
-\useprettyidentifiers \JSvariables \JSsetspecials
- not-yet-defined
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/verb-jv.mkii b/Master/texmf-dist/tex/context/base/mkii/verb-jv.mkii
deleted file mode 100644
index 2149c3a4abc..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/verb-jv.mkii
+++ /dev/null
@@ -1,222 +0,0 @@
-%D \module
-%D [ file=verb-jv,
-%D version=2002.02.27,
-%D title=\CONTEXT\ Verbatim Macros,
-%D subtitle=Pretty \JAVA\ Verbatim,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Verbatim Macros / Pretty Java Verbatim}
-
-%D This module differs from the \JAVASCRIPT\ driver in its
-%D handling of comments. We also need a few more handlers: one
-%D for \type {//} and \type {/*} and one for \type {*/} as
-%D well as the \JAVA doc trigger \type {/**}.
-
-%D We build this driver on top of the \PERL\ one. Since this
-%D driver looks much like the \JAVASCRIPT\ one, we don't
-%D comment it extensively.
-
-\ifdefined\setupprettyPLtype \else \loadmarkfile{verb-pl} \fi
-
-\unprotect
-
-\newcount\JVcommentlevel
-
-\gdef\JVsetspecials
- {\PLsetspecials
- \setpretty`\#=32
- \setpretty`\%=41
- \setpretty`\-=45
- \setpretty`\/=43
- \setpretty`\*=44 }
-
-\gdef\JVsethandlers
- {\PLsethandlers
- \installprettyhandler 43 \JVtypefourthree
- \installprettyhandler 44 \JVtypefourfour
- \installprettyhandler 45 \JVtypefourfive }
-
-\gdef\JVsetcontrols
- {\PLsetcontrols
- \def\flushrestofverbatimline
- {\endPLtypesix
- \ifcase\JVcommentlevel \inPLcommentfalse \fi
- \PLverbosefalse
- \PLverboseskipped=0}}
-
-\gdef\JVsetvariables
- {\PLsetvariables
- \global\JVcommentlevel=0 }
-
-\gdef\setupprettyJVtype
- {\def\prettyidentifier{JV}%
- \let\PLidentifiers\JVidentifiers
- \let\PLvariables\JVvariables
- \JVsetvariables
- \JVsetcontrols
- \JVsethandlers
- \JVsetspecials
- \PLsetdiagnostics}
-
-\gdef\JVtypefourthree
- {\handlenextnextpretty\doJVtypefourthree\PLtypefourtwo}
-
-\gdef\doJVtypefourthree#1#2#3%
- {\getprettydata{#2}%
- \ifnum\prettytype=43
- \let\next\dodoJVtypefourthree
- \else\ifnum\prettytype=44
- \global\advance\JVcommentlevel 1
- \global\inPLcommenttrue
- \PLverbosecorrection
- \getprettydata{#3}%
- \ifnum\prettytype=44
- \inPLdoctrue
- \fi
- \let\next\JVtogglecomment
- \else
- \let\next\PLtypefourtwo
- \fi\fi
- \next{#1}#2#3}
-
-\gdef\JVtogglecomment#1#2%
- {\ifnum\JVcommentlevel=1
- \beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty
- \else
- \getpretties{#1}{#2}%
- \fi}
-
-\gdef\dodoJVtypefourthree
- {\endPLtypesix
- \handlenextnextpretty\dododoJVtypefourthree\dodododoPLtypefourthree}
-
-\gdef\dododoJVtypefourthree
- {\ifnewpretty\expandafter\handlenewpretty\fi\dodododoJVtypefourthree}
-
-\gdef\dodododoJVtypefourthree#1#2%
- {\ifinPLcomment
- \getpretties{#1}{#2}%
- \else
- \global\inPLcommenttrue
- \PLverbosecorrection
- \ifnaturaltextext
- \let\next\naturaltextext
- \else
- \def\next{\beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty}%
- \fi
- \expandafter\next
- \fi}
-
-\gdef\JVtypefourfour
- {\ifinPLdoc
- \@EA\noJVtypefourfour
- \else
- \@EA\handlenextnextpretty\@EA\doJVtypefourfour\@EA\PLtypefourtwo
- \fi}
-
-\gdef\noJVtypefourfour#1#2%
- {\getprettydata{#2}%
- \ifnum\prettytype=43
- \JVtogglecomment{#1}#2%
- \inPLdocfalse
- \global\advance\JVcommentlevel -1
- \ifcase\JVcommentlevel \global\inPLcommentfalse \fi
- \else
- \ifPLdocdone
- \getpretty{#1}%
- \else
- \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty
- \PLdocdonetrue
- \fi
- \expandafter#2%
- \fi}
-
-\gdef\doJVtypefourfour#1#2%
- {\getprettydata{#2}%
- \ifnum\prettytype=43
- \JVtogglecomment{#1}#2%
- \inPLdocfalse
- \global\advance\JVcommentlevel -1
- \ifcase\JVcommentlevel \global\inPLcommentfalse \fi
- \else
- \endPLtypesix
- \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty
- \expandafter#2%
- \fi}
-
-\gdef\JVtypefourfive % permit - in javadoc @tags
- {\ifinPLdoc
- \@EA\PLtypesixtwo
- \else
- \@EA\PLtypefourone
- \fi}
-
-\useprettyidentifiers \JVidentifiers \JVsetspecials
- abstract assert boolean break byte case catch char class const
- continue default do double else extends false final
- finally float for goto if implements import instanceof
- int interface long native new null package private protected
- public return short static strictfp super switch synchronized
- this throw throws transient true try void volatile while
-
-\useprettyidentifiers \JVvariables \JVsetspecials
- @author @docRoot @deprecated @exception @inheritDoc @link
- @linkplain @param @return @see @serial @serialData @serialField
- @since @throws @value @version
-
-%D The \JAVA doc feature was requested by Robert F.~Beeger,
-%D who also provided this test class:
-%D
-%D \startJV
-%D package de.jwamalpha.handling.web.rbdipl;
-%D
-%D import java.io.IOException;
-%D import java.io.PrintWriter;
-%D import javax.servlet.http.HttpServlet;
-%D import javax.servlet.http.HttpServletRequest;
-%D import javax.servlet.http.HttpServletResponse;
-%D import javax.servlet.ServletException;
-%D
-%D /**
-%D * The simple login servlet
-%D *
-%D * @author Robert F. Beeger
-%D * @version 1.0
-%D */
-%D
-%D public class LoginServlet extends HttpServlet
-%D {
-%D //
-%D // public interface
-%D //
-%D /**
-%D * Process the get-request.
-%D *
-%D * @param request the request
-%D * @param response the response.
-%D */
-%D protected void doGet (HttpServletRequest request, HttpServletResponse response)
-%D throws ServletException, IOException
-%D {
-%D response.setContentType("text/html");
-%D PrintWriter writer = response.getWriter();
-%D writer.println("<html>");
-%D writer.println(" <head>");
-%D writer.println(" <title>Login</title>");
-%D writer.println(" </head>");
-%D writer.println(" <body>");
-%D writer.println(" Hallo, Benutzer " + request.getParameter("username") + "!");
-%D writer.println(" </body>");
-%D writer.println("</html>");
-%D writer.flush();
-%D }
-%D }
-%D \stopJV
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/verb-mp.mkii b/Master/texmf-dist/tex/context/base/mkii/verb-mp.mkii
deleted file mode 100644
index aef52217d8c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/verb-mp.mkii
+++ /dev/null
@@ -1,364 +0,0 @@
-%D \module
-%D [ file=verb-mp,
-%D version=1997.12.22,
-%D title=\CONTEXT\ Verbatim Macros,
-%D subtitle=Pretty \METAPOST\ Verbatim,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Verbatim Macros / Pretty METAPOST Verbatim}
-
-% bug: in mp-char.mp the char should not be highlighted
-
-% can be simplified
-
-%D This module was first used when I documented our new
-%D company logo. This interpreter is modeled after the \PERL\
-%D one.
-%D
-%D \startMP
-%D beginfig(1);
-%D z1 = (0,0);
-%D z2 = (100,0);
-%D z3 = (0,100);
-%D draw z1--z2--z3--cycle;
-%D endfig;
-%D \stopMP
-%D
-%D Of course we cannot (yet) provide a nice layout, so some
-%D formatting is still needed.
-
-\unprotect
-
-%D \macros
-%D {prettyMPvariables}
-%D
-%D Identifiers and system variables are typeset in a different
-%D style. One can turn of this mechanism for the variables by
-%D setting th enext boolean.
-%D
-
-\doglobal\newif\ifprettyMPvariables
-
-\global\prettyMPvariablestrue
-
-%D We support \METAFONT\ as well as \METAPOST.
-
-\gdef\MPsetcontrols
- {\saveprettycontrols
- \everyprettyend
- {\endMPtypesix}%
- \def\obeyedspace%
- {\endMPtypesix
- \oldobeyedspace}%
- \def\flushrestofverbatimline%
- {\endMPtypesix}%
- \let\obeytabs=\ignoretabs}
-
-\gdef\setupprettyMPtype
- {\def\prettyidentifier{MP}%
- \global\inMPtexmodefalse
- \MPsetvariables
- \MPsetcontrols
- \MPsethandlers
- \MPsetspecials}
-
-\doglobal\newif\ifinMPtexmode
-
-\gdef\MPsetvariables
- {\global\inMPtexmodefalse
- \global\let\MPsequence=\empty}
-
-\gdef\MPsetspecials
- {\setpretty`\;=11 \setpretty`\$=12 \setpretty`\@=12 \setpretty`\#=12
- \setpretty`\%=20
- \setpretty`\[=31 \setpretty`\]=31 \setpretty`\(=32 \setpretty`\)=32
- \setpretty`\:=33 \setpretty`\==34 \setpretty`\<=34 \setpretty`\>=34
- \setpretty`\-=41 \setpretty`\+=41 \setpretty`\/=41 \setpretty`\*=41
- \setpretty`\|=41 \setpretty`\`=41 \setpretty`\!=41 \setpretty`\?=41
- \setpretty`\^=41 \setpretty`\&=42
- \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`\'=81 \setpretty`\"=82
- \setpretty`\{=90 \setpretty`\}=90 }
-
-\gdef\MPsethandlers
- {\installprettyhandler 11 \MPtypeone
- \installprettyhandler 12 \MPtypeone
- \installprettyhandler 20 \MPtypetwo
- \installprettyhandler 31 \MPtypethreeA
- \installprettyhandler 32 \MPtypethreeA
- \installprettyhandler 33 \MPtypethreeB
- \installprettyhandler 34 \MPtypethreeB
- \installprettyhandler 41 \MPtypefour
- \installprettyhandler 42 \MPtypefour
- \installprettyhandler 50 \MPtypefive
- \installprettyhandler 61 \MPtypesixone
- \installprettyhandler 62 \MPtypesixtwo
- \installprettyhandler 70 \MPtypeseven
- \installprettyhandler 81 \MPtypeeightone
- \installprettyhandler 82 \MPtypeeighttwo
- \installprettyhandler 90 \MPtypenine }
-
-\gdef\MPtypeone#1%
- {\endMPtypesix
- \ifinMPtexmode
- \getpretty{#1}%
- \else
- \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty%
- \fi}
-
-\gdef\doMPtypetwo#1%
- {\ifnaturaltextext
- \let\next\naturaltextext
- \else
- \disableprettytrue\disableprettyafterwards
- \def\next{\beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty}%
- \fi
- \next}
-
-\gdef\MPtypetwo
- {\endMPtypesix
- \ifnewpretty\expandafter\handlenewpretty\fi\doMPtypetwo}
-
-\gdef\MPtypethreeA#1%
- {\endMPtypesix
- \ifinMPtexmode
- \getpretty{#1}%
- \else
- \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty
- \fi}
-
-\gdef\MPtypethreeB#1%
- {\endMPtypesix
- \ifinMPtexmode
- \getpretty{#1}%
- \else
- \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty
- \fi}
-
-\gdef\MPtypefour#1%
- {\endMPtypesix
- \ifinMPtexmode
- \getpretty{#1}%
- \else
- \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty
- \fi}
-
-\gdef\MPtypefive#1%
- {\endMPtypesix
- \ifinMPtexmode
- \getpretty{#1}%
- \else
- \beginofpretty[\!!prettytwo]\getpretty{#1}\endofpretty
- \fi}
-
-\gdef\endMPtypesix
- {\ifx\MPsequence\empty\else
- \doifprettyidentifierelse{\MPsequence}{\MPidentifiers}
- {\doifprettyidentifierelse{\MPsequence}{\MPbtex}
- {\beginofpretty[\!!prettytwo]%
- {\prettyidentifierfont\MPsequence}%
- \endofpretty
- \global\inMPtexmodetrue}
- {\ifinMPtexmode
- \doifprettyidentifierelse{\MPsequence}{\MPetex}
- {\global\inMPtexmodefalse}{}%
- \fi
- \beginofpretty[\!!prettytwo]%
- {\prettyidentifierfont\MPsequence}%
- \endofpretty}}
- {\ifprettyMPvariables
- \doifprettyidentifierelse{\MPsequence}{\MPvariables}
- {\beginofpretty[\!!prettytwo]%
- {\prettyvariablefont\MPsequence}%
- \endofpretty}
- {\MPsequence}%
- \else
- \MPsequence
- \fi}%
- \global\let\MPsequence=\empty
- \fi}
-
-\gdef\MPtypesixone
- {\endMPtypesix
- \getpretty}
-
-\gdef\MPtypesixtwo#1%
- {\xdef\MPsequence{\MPsequence\getpretty{#1}}}
-
-\gdef\MPtypeseven#1%
- {\endMPtypesix
- \ifinMPtexmode
- \getpretty{#1}%
- \else
- \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty
- \fi}
-
-\gdef\MPtypeeightone#1%
- {\endMPtypesix
- \ifinMPtexmode
- \getpretty{#1}%
- \else
- \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty
- \fi}
-
-\gdef\MPtypeeighttwo#1%
- {\endMPtypesix
- \ifinMPtexmode
- \getpretty{#1}%
- \else
- \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty
- \fi}
-
-\gdef\MPtypenine#1%
- {\endMPtypesix
- \ifinMPtexmode
- \getpretty{#1}%
- \else
- \getpretty{#1}%
- \fi}
-
-%D \METAPOST\ \TEX||ies:
-
-\useprettyidentifiers \MPbtex \MPsetspecials
- btex verbatimtex
-
-\useprettyidentifiers \MPetex \MPsetspecials
- etex
-
-\useprettyidentifiers \MPidentifiers \MPsetspecials
- btex etex verbatimtex
-
-%D \METAPOST\ internal variables \& predefined variables:
-
-\useprettyidentifiers \MPidentifiers \MPsetspecials
- charcode day linecap linejoin miterlimit month pausing
- prologues showstopping time tracingcapsules tracingchoices mpprocset
- tracingcommands tracingequations tracinglostchars
- tracingmacros tracingonline tracingoutput tracingrestores
- tracingspecs tracingstats tracingtitles truecorners
- warningcheck year
-
-\useprettyidentifiers \MPvariables \MPsetspecials
- ahangle ahlength bboxmargin defaultpen defaultscale
- labeloffset background currentpen currentpicture cuttings
- defaultfont extra_beginfig extra_endfig
-
-%D \METAPOST\ predefined constants:
-
-\useprettyidentifiers \MPidentifiers \MPsetspecials
- false nullpicture pencircle true
-
-\useprettyidentifiers \MPvariables \MPsetspecials
- beveled black blue bp butt cc cm dd ditto down epsilon
- evenly fullcircle green halfcircle identity in infinity left
- mitered mm origin pensquare pt quartercircle red right
- rounded squared unitsquare up white withdots
-
-%D \METAPOST\ operators:
-
-\useprettyidentifiers \MPidentifiers \MPsetspecials
- and angle arclength arctime ASCII bluepart boolean bot
- char color cosd cycle decimal directiontime floor fontsize
- greenpart hex infont intersectiontimes known length llcorner
- lrcorner makepath makepen mexp mlog normaldeviate not
- numeric oct odd or path pair pen penoffset picture point
- postcontrol precontrol redpart reverse rotated scaled
- shifted sind slanted sqrt str string subpath substring
- transform transformed ulcorner uniformdeviate unknown
- urcorner xpart xscaled xxpart xypart ypart yscaled yxpart
- yypart zscaled
-
-\useprettyidentifiers \MPvariables \MPsetspecials
- abs bbox ceiling center cutafter cutbefore dir
- directionpoint div dotprod intersectionpoint inverse mod lft
- round rt unitvector whatever
-
-%D \METAPOST\ commands:
-
-\useprettyidentifiers \MPidentifiers \MPsetspecials
- addto clip input interim let newinternal save setbounds
- shipout show showdependencies showtoken showvariable
- special
-
-\useprettyidentifiers \MPvariables \MPsetspecials
- cutdraw draw drawarrow drawdblarrow fill filldraw
- loggingall pickup tracingall tracingnone undraw unfill
- unfilldraw drawdot
-
-%D \METAPOST\ macro||like functions:
-
-\useprettyidentifiers \MPvariables \MPsetspecials
- buildcycle dashpattern decr dotlabel dotlabels drawoptions
- incr label labels max min thelabel z
-
-%D More \METAPOST:
-
-\useprettyidentifiers \MPidentifiers \MPsetspecials
- begingroup endgroup of curl tension and controls
- reflectedabout rotatedaround interpath on off beginfig
- endfig def vardef enddef epxr suffix text primary secondary
- tertiary primarydef secondarydef tertiarydef top bottom
- ulft urt llft lrt randomseed also contour doublepath
- withcolor withpen dashed if else elseif fi for endfor
- forsuffixes forever downto upto step until end
-
-%D \METAFONT\ stuff:
-
-\useprettyidentifiers \MPidentifiers \MPsetspecials
- charlist extensible fontdimen headerbyte kern ligtable
- boundarychar chardp charext charht charic charwd designsize
- fontmaking charexists
-
-\useprettyidentifiers \MPvariables \MPsetspecials
- beginchar blacker capsule_end change_width
- define_blacker_pixels define_corrected_pixels
- define_good_x_pixels define_good_y_pixels
- define_horizontal_corrected_pixels define_pixels
- define_whole_blacker_pixels define_whole_pixels
- define_whole_vertical_blacker_pixels
- define_whole_vertical_pixels endchar extra_beginchar
- extra_endchar extra_setup font_coding_scheme
- font_extra_space
-
-%D \METAFONT\ no||op stuff:
-
-\useprettyidentifiers \MPidentifiers \MPsetspecials
- cullit currenttransform gfcorners grayfont hround
- imagerules lowres_fix nodisplays notransforms openit
- displaying currentwindow screen_rows screen_cols
- pixels_per_inch cull display openwindow numspecial
- totalweight autorounding fillin proofing tracingpens
- xoffset chardx granularity smoothing turningcheck yoffset
- chardy hppp tracingedges vppp
-
-%D \METAPOST\ goodies:
-
-\useprettyidentifiers \MPidentifiers \MPsetspecials
- extra_beginfig extra_endfig mpxbreak
-
-\protect
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/verb-pas.mkii b/Master/texmf-dist/tex/context/base/mkii/verb-pas.mkii
deleted file mode 100644
index 71c0b5a1252..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/verb-pas.mkii
+++ /dev/null
@@ -1,266 +0,0 @@
-%D \module
-%D [ file=verb-pas,
-%D version=1999.12.09,
-%D title=\CONTEXT\ Verbatim Macros,
-%D subtitle=Pretty \PASCAL\ and \MODULA\ Verbatim,
-%D author=Berend de Boer,
-%D date=\currentdate,
-%D copyright={Berend de Boer \& Hans Hagen}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% This module will be cleaned up a bit in the process of more
-% flexible verbatim options.
-
-\writestatus{loading}{ConTeXt Verbatim Macros / Pretty PASCAL Verbatim}
-
-%D Typeset Pascal(-like) code:
-%D
-%D \startbuffer
-%D \startPAS
-%D program Hello;
-%D
-%D begin
-%D writeln('hello world.');
-%D end.
-%D \stopPAS
-%D \stopbuffer
-%D
-%D Berend's preferences:
-%D
-%D \startbuffer[setup]
-%D \setuptyping
-%D [DELPHI]
-%D [palet=,icommand=\bf,vcommand=,ccommand=\it]
-%D \stopbuffer
-
-\ifdefined\setupprettyPLtype \else \loadmarkfile{verb-pl} \fi
-
-\unprotect
-
-\doglobal\newif\ifinPASbracketcomment
-\doglobal\newif\ifinPASslashstarcomment
-\doglobal\newif\ifinPASslashslashcomment
-
-
-\gdef\PASsetspecials%
- {\PLsetspecials
- \setpretty`\#=32
- \setpretty`\%=41
- \setpretty`\:=41
- \setpretty`\/=43
- \setpretty`\*=44
- \setpretty`\{=45 \setpretty`\}=46 }
-
-\gdef\PASsethandlers%
- {\PLsethandlers
- \installprettyhandler 43 \PAStypefourthree
- \installprettyhandler 44 \PAStypefourfour
- \installprettyhandler 45 \PAStypefourfive
- \installprettyhandler 46 \PAStypefoursix }
-
-\gdef\PASsetcontrols%
- {\PLsetcontrols
- \def\flushrestofverbatimline%
- {\endPLtypesix
- \ifinPASslashslashcomment
- \PASstopslashslashcomment
- \fi
- \PLverbosefalse
- \PLverboseskipped=0}}
-
-\gdef\PASsetvariables
- {\PLsetvariables
- \global\inPASbracketcommentfalse
- \global\inPASslashstarcommentfalse
- \global\inPASslashslashcommentfalse}
-
-\gdef\setupprettyPAStype%
- {\def\prettyidentifier{PAS}%
- \let\PLidentifiers=\PASidentifiers
- \let\PLvariables=\PASvariables
- \PASsetvariables
- \PASsetcontrols
- \PASsethandlers
- \PASsetspecials
- \PLsetdiagnostics}
-
-% the // and /* comments
-
-\gdef\PAStypefourthree%
- {\handlenextnextpretty\doPAStypefourthree\PLtypefourtwo}
-
-\gdef\doPAStypefourthree#1#2%
- {\endPLtypesix
- \ifinPLcomment
- \let\next=\PLtypefourtwo
- \else
- \ifinPLsingle
- \let\next=\PLtypefourtwo
- \else
- \getprettydata{#2}%
- \ifnum\prettytype=43
- \PLverbosecorrection
- \let\next=\PASstartslashslashcomment
- \else\ifnum\prettytype=44
- \PLverbosecorrection
- \let\next=\PASstartslashstarcomment
- \else
- \let\next=\PLtypefourtwo
- \fi\fi
- \fi
- \fi
- \next{#1}#2}
-
-\gdef\PASstartslashstarcomment#1#2%
- {\global\inPLcommenttrue
- \global\inPASslashstarcommenttrue
- \prettynaturalfont
- \beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty}
-
-\gdef\PASstopslashstarcomment#1#2%
- {\beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty
- \verbatimfont
- \global\inPLcommentfalse
- \global\inPASslashstarcommentfalse}
-
-\gdef\PASstartslashslashcomment#1#2%
- {\global\inPLcommenttrue
- \global\inPASslashslashcommenttrue
- \prettynaturalfont
- \beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty}
-
-\gdef\PASstopslashslashcomment%
- {\verbatimfont
- \inPLcommentfalse
- \inPASslashslashcommentfalse}
-
-% \gdef\dodoPAStypefourthree% #1%
-% {\endPLtypesix
-% \handlenextnextpretty\dododoPAStypefourthree\dodododoPLtypefourthree}
-
-% \gdef\dododoPAStypefourthree%
-% {\ifnewpretty\expandafter\handlenewpretty\fi\dodododoPAStypefourthree}
-
-% \gdef\dodododoPAStypefourthree#1#2%
-% {\ifinPLcomment
-% \getpretties{#1}{#2}%
-% \else
-% \global\inPLcommenttrue
-% \PLverbosecorrection
-% \beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty
-% \fi}
-
-\gdef\PAStypefourfour%
- {\handlenextnextpretty\doPAStypefourfour\PLtypefourtwo}
-
-\gdef\doPAStypefourfour#1#2%
- {\ifinPASslashstarcomment
- \getprettydata{#2}%
- \ifnum\prettytype=43
- \PASstopslashstarcomment{#1}#2%
- \else
- \endPLtypesix
- \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty
- \expandafter#2%
- \fi
- \else
- \endPLtypesix
- \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty
- \expandafter#2%
- \fi}
-
-
-% the { and } comments
-% we assume { is closed by } and do not follow the braindead Standard
-% Pascal standard in this respect
-% Note: brackets are not output correctly if natural font is \tf.
-% Therefore natural font is default to \tttf now (Hans is this ok??)
-% You have to use postscript fonts it seems to get brackets in that case.
-
-\gdef\PAStypefourfive#1%
- {\endPLtypesix
- \ifinPLcomment
- \getpretty{#1}%
- \else
- \ifinPLsingle
- \getpretty{#1}%
- \else
- \global\inPLcommenttrue
- \global\inPASbracketcommenttrue
- \prettynaturalfont
- \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty
- \fi
- \fi}
-
-\gdef\PAStypefoursix#1%
- {\endPLtypesix
- \ifinPASbracketcomment
- \prettynaturalfont\beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty
- \verbatimfont
- \global\inPLcommentfalse
- \global\inPASbracketcommentfalse
- \else
- \getpretty{#1}%
- \fi}
-
-
-% Standard Pascal keywords (ISO/IEC 7185)
-
-\useprettyidentifiers \PASidentifiers \PASsetspecials
- and array begin case const div do downto else end file
- for function goto if in label mod nil not of or packed
- procedure program record repeat set then to type until
- var while with
-
-% Standard Pascal directives (ISO/IEC 7185)
-
-\useprettyidentifiers \PASidentifiers \PASsetspecials
- forward
-
-% Extended Pascal keywords (ISO/IEC 10206)
-
-\useprettyidentifiers \PASidentifiers \PASsetspecials
- and_then bindable export import module only or_else
- otherwise pow protected qualified restricted
-
-% Extended Pascal directives (ISO/IEC 10206)
-
-\useprettyidentifiers \PASidentifiers \PASsetspecials
- implementation interface
-
-% Object Pascal keywords (draft September 20, 1993)
-
-\useprettyidentifiers \PASidentifiers \PASsetspecials
- abstract class constructor destructor inherited is
- property view
-
-% Object Pascal directives (draft September 20, 1993)
-
-\useprettyidentifiers \PASidentifiers \PASsetspecials
- override
-
-% Delphi keywords
-
-\useprettyidentifiers \PASidentifiers \PASsetspecials
- as asm dispinterface except exports finalization finally
- initialization inline library object out raise resourcestring
- shl shr string threadvar try unit uses xor
-
-% Delphi directives
-% the read and write directive have been skipped
-% as they're pretty common procedure calls too
-
-\useprettyidentifiers \PASidentifiers \PASsetspecials
- absolute assembler automated cdecl contains default dispid
- dynamic external far implements index message name near
- nodefault overload override package pascal private protected
- public published readonly register reintroduce requires
- resident safecall stdcall stored virtual writeonly
-
-\useprettyidentifiers \PASvariables \PASsetspecials
- not-yet-defined
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/verb-pl.mkii b/Master/texmf-dist/tex/context/base/mkii/verb-pl.mkii
deleted file mode 100644
index 634a0a3142a..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/verb-pl.mkii
+++ /dev/null
@@ -1,547 +0,0 @@
-%D \module
-%D [ file=verb-pl,
-%D version=1997.12.22,
-%D title=\CONTEXT\ Verbatim Macros,
-%D subtitle=Pretty \PERL\ Verbatim,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Verbatim Macros / Pretty PERL Verbatim}
-
-%D When I rewrote \TEXUTIL\ in \PERL\ I decided to write a
-%D pretty \PERL\ interpreter too. In fact, this was the main
-%D reason for rewriting the pretty verbatim mechanisms to
-%D handle more that \TEX.
-%D
-%D \startPL
-%D $alfa = $beta{gamma};
-%D if ($alfa="delta")
-%D { print "epsilon" }
-%D \stopPL
-%D
-%D When looking at the macros, watch the \type{\doglobal}'s!
-%D They're something \CONTEXT\ specific.
-
-\unprotect
-
-%D \macros
-%D {prettyPLvariables}
-%D
-%D Identifiers and system variables get a special treatment.
-%D One can disable this option for the variables by resetting
-%D the next switch.
-
-\doglobal\newif\ifprettyPLvariables
-
-\global\prettyPLvariablestrue
-
-%D As said before, the global assignment is needed in
-%D \CONTEXT\ (for once||only loading on demand).
-
-\doglobal\newif\ifinPLsingle
-\doglobal\newif\ifinPLdouble
-\doglobal\newif\ifinPLcomment
-\doglobal\newif\ifinPLdoc % only used in java filter
-\doglobal\newif\ifPLdocdone % only used in java filter
-\doglobal\newif\ifPLverbose
-
-\newcount\PLverboseskipped
-
-\gdef\PLverbosecorrection%
- {\ifnum\PLverboseskipped>0
- \obeyedspace
- \advance\PLverboseskipped -1
- \@EA\PLverbosecorrection
- \fi}
-
-\gdef\PLsetcontrols%
- {\saveprettycontrols
- \def\obeyedspace%
- {\endPLtypesix
- \ifPLverbose
- \advance\PLverboseskipped 1
- \else
- \oldobeyedspace
- \fi}%
- \def\flushrestofverbatimline%
- {\endPLtypesix
- \global\inPLcommentfalse}%
- \def\obeyedline%
- {\PLverbosefalse
- \PLverboseskipped=0
- \PLdocdonefalse
- \oldobeyedline}%
- \let\obeytabs=\ignoretabs}
-
-\gdef\JVsetcontrols%
- {\PLsetcontrols
- {\endPLtypesix
- \ifcase\JVcommentlevel \inPLcommentfalse \fi
- \PLverbosefalse
- \PLverboseskipped=0}}
-
-\gdef\setupprettyPLtype%
- {\def\prettyidentifier{PL}%
- \PLsetvariables
- \PLsetcontrols
- \PLsethandlers
- \PLsetspecials
- \PLsetdiagnostics}
-
-\gdef\PLsetvariables%
- {\global\inPLsinglefalse
- \global\inPLdoublefalse
- \global\inPLcommentfalse
- \global\let\PLsequence=\empty
- \global\let\PLprefix=\empty}
-
-\gdef\PLsetspecials%
- {\setpretty`\{=10 \setpretty`\}=10
- \setpretty`\$=21 \setpretty`\@=21 \setpretty`\%=22
- \setpretty`\[=31 \setpretty`\]=31 \setpretty`\(=32 \setpretty`\)=32
- \setpretty`\==32 \setpretty`\~=32 \setpretty`\<=32 \setpretty`\>=32
- \setpretty`\-=41 \setpretty`\+=41 \setpretty`\/=41 \setpretty`\*=41
- \setpretty`\|=41 \setpretty`\`=41 \setpretty`\!=41 \setpretty`\?=41
- \setpretty`\^=41 \setpretty`\&=42
- \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`\_=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`\;=71 \setpretty`\:=72 \setpretty`\,=71 \setpretty`\.=71
- \setpretty`\'=80
- \setpretty`\"=90
- \setpretty`\#= 0 }
-
-\gdef\PLsethandlers%
- {\installprettyhandler 10 \PLtypeone
- \installprettyhandler 21 \PLtypetwo
- \installprettyhandler 22 \PLtypetwo
- \installprettyhandler 31 \PLtypethree
- \installprettyhandler 32 \PLtypethree
- \installprettyhandler 41 \PLtypefourone
- \installprettyhandler 42 \PLtypefourtwo
- \installprettyhandler 50 \PLtypefive
- \installprettyhandler 61 \PLtypesixone
- \installprettyhandler 62 \PLtypesixtwo
- \installprettyhandler 71 \PLtypesevenone
- \installprettyhandler 72 \PLtypeseventwo
- \installprettyhandler 80 \PLtypeeight
- \installprettyhandler 90 \PLtypenine
- \installprettyhandler 0 \PLtypezero}
-
-\gdef\PLtypeone#1%
- {\ifinPLdouble
- \PLverbosefalse
- \ifinPLcomment
- \endPLtypesix
- \getpretty{#1}%
- \else\ifx\PLprefix\empty
- \endPLtypesix
- \getpretty{#1}%
- \else
- \endPLtypesix
- \xdef\PLprefix{\getpretty{#1}}%
- \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty
- \fi\fi
- \else
- \endPLtypesix
- \ifinPLcomment
- \getpretty{#1}%
- \else\ifinPLsingle
- \getpretty{#1}%
- \else
- \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty
- \fi\fi
- \fi}
-
-% \gdef\PLtypetwo#1%
-% {\endPLtypesix
-% \xdef\PLprefix{\getpretty{#1}}%
-% \ifinPLcomment
-% \getpretty{#1}%
-% \else\ifinPLsingle
-% \getpretty{#1}%
-% \else\ifinPLdouble
-% \getprettydata{#1}%
-% \ifnum\prettytype=21
-% \beginofpretty[\!!prettytwo]\getpretty{#1}\endofpretty
-% \else
-% \getpretty{#1}%
-% \fi
-% \else
-% \beginofpretty[\!!prettytwo]\getpretty{#1}\endofpretty
-% \fi\fi\fi}
-
-\gdef\PLtypetwo#1%
- {\endPLtypesix
- \ifinPLdoc
- \xdef\PLsequence{\PLsequence\getpretty{#1}}%
- \else\ifinPLcomment
- \getpretty{#1}%
- \else\ifinPLsingle
- \getpretty{#1}%
- \else\ifinPLdouble
- \getprettydata{#1}%
- \ifnum\prettytype=21
- \beginofpretty[\!!prettytwo]\getpretty{#1}\endofpretty
- \else
- \getpretty{#1}%
- \fi
- \else
- \beginofpretty[\!!prettytwo]\getpretty{#1}\endofpretty
- \fi\fi\fi\fi}
-
-\gdef\PLtypethree#1%
- {\endPLtypesix
- \ifinPLcomment
- \getpretty{#1}%
- \else\ifinPLsingle
- \getpretty{#1}%
- \else\ifinPLdouble
- \getprettydata{#1}%
- \ifnum\prettytype=31
- \ifx\PLprefix\empty
- \getpretty{#1}%
- \else
- \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty
- \fi
- \else
- \getpretty{#1}%
- \fi
- \else
- \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty
- \fi\fi\fi}
-
-\gdef\PLtypefourone#1%
- {\endPLtypesix
- \ifinPLcomment
- \getpretty{#1}%
- \else\ifinPLsingle
- \getpretty{#1}%
- \else\ifinPLdouble
- \getpretty{#1}%
- \else
- \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty
- \fi\fi\fi}
-
-\gdef\doPLtypefourtwo#1#2%
- {\PLverbosefalse
- \getprettydata{#2}%
- \ifnum\prettytype=62
- \expandafter\PLtypetwo
- \else
- \expandafter\PLtypefourone
- \fi
- {#1}#2}
-
-\gdef\PLtypefourtwo%
- {\handlenextnextpretty\doPLtypefourtwo\PLtypefourone}
-
-\gdef\doPLtypefiveA#1#2%
- {\endPLtypesix
- \ifinPLcomment
- \getpretties{#1}{#2}%
- \else\ifinPLsingle
- \getprettydata{#2}%
- \ifnum\prettytype=50
- \beginofpretty[\!!prettytwo]\getpretties{#1}{#2}\endofpretty
- \else\ifnum\prettytype=80
- \beginofpretty[\!!prettytwo]\getpretties{#1}{#2}\endofpretty
- \else
- \getpretties{#1}{#2}%
- \fi\fi
- \else
- \beginofpretty[\!!prettytwo]\getpretties{#1}{#2}\endofpretty
- \fi\fi}
-
-\gdef\doPLtypefiveB#1%
- {\endPLtypesix
- \ifinPLcomment
- \getpretty{#1}%
- \else\ifinPLsingle
- \getpretty{#1}%
- \else
- \beginofpretty[\!!prettytwo]\getpretty{#1}\endofpretty
- \fi\fi}
-
-\gdef\PLtypefive%
- {\ifPLverbose
- \expandafter\PLtypesixtwo
- \else
- \expandafter\handlenextnextpretty\expandafter\doPLtypefiveA\expandafter\doPLtypefiveB
- \fi}
-
-% \gdef\endPLtypesix%
-% {\ifx\PLsequence\empty\else
-% \ifinPLcomment
-% \PLsequence
-% \else\ifinPLsingle
-% \PLsequence
-% \else\ifinPLdouble
-% \PLsequence
-% \else\ifPLverbose
-% \beginofpretty[\!!prettytwo]\PLsequence\endofpretty
-% \PLverbosefalse
-% \else\ifx\PLprefix\empty
-% \doifprettyidentifierelse{\PLsequence}{\PLverboses}
-% {\PLverbosetrue\PLverboseskipped=3 }
-% {\doifprettyidentifierelse{\PLsequence}{\PLidentifiers}
-% {\beginofpretty[\!!prettytwo]%
-% {\prettyidentifierfont\PLsequence}%
-% \endofpretty}
-% {\ifprettyPLvariables
-% \doifprettyidentifierelse{\PLsequence}{\PLvariables}
-% {\beginofpretty[\!!prettytwo]%
-% {\prettyvariablefont\PLsequence}%
-% \endofpretty}
-% {\PLsequence}%
-% \else
-% \PLsequence
-% \fi}}%
-% \else\ifprettyPLvariables
-% \doifprettyidentifierelse{\PLprefix\PLsequence}{\PLvariables}
-% {\beginofpretty[\!!prettytwo]%
-% {\prettyvariablefont\PLsequence}%
-% \endofpretty}
-% {\PLsequence}%
-% \else
-% \PLsequence
-% \fi\fi\fi\fi\fi\fi
-% \global\let\PLsequence=\empty
-% \global\let\PLprefix=\empty
-% \fi}
-
-\gdef\endPLtypesix
- {\ifx\PLsequence\empty\else
- \ifinPLdoc
- \doendPLtypesixvar\!!prettythree
- \else\ifinPLcomment
- \PLsequence
- \else\ifinPLsingle
- \PLsequence
- \else\ifinPLdouble
- \PLsequence
- \else\ifPLverbose
- \beginofpretty[\!!prettytwo]\PLsequence\endofpretty
- \PLverbosefalse
- \else\ifx\PLprefix\empty
- \doendPLtypesix\!!prettytwo
- \else\ifprettyPLvariables
- \doendPLtypesixvar\!!prettytwo
- \else
- \PLsequence
- \fi\fi\fi\fi\fi\fi\fi
- \global\let\PLsequence\empty
- \global\let\PLprefix\empty
- \fi}
-
-\gdef\doendPLtypesix#1%
- {\doifprettyidentifierelse{\PLsequence}{\PLverboses}
- {\PLverbosetrue\PLverboseskipped=3 }
- {\doifprettyidentifierelse{\PLsequence}{\PLidentifiers}
- {\beginofpretty[#1]%
- {\prettyidentifierfont\PLsequence}%
- \endofpretty}
- {\ifprettyPLvariables
- \doifprettyidentifierelse{\PLsequence}{\PLvariables}
- {\beginofpretty[#1]%
- {\prettyvariablefont\PLsequence}%
- \endofpretty}
- {\PLsequence}%
- \else
- \PLsequence
- \fi}}}
-
-\gdef\doendPLtypesixvar#1%
- {\doifprettyidentifierelse{\PLprefix\PLsequence}{\PLvariables}
- {\beginofpretty[#1]%
- {\prettyvariablefont\PLsequence}%
- \endofpretty}
- {\PLsequence}}
-
-\gdef\PLtypesixone
- {\ifx\PLsequence\empty
- \expandafter\getpretty
- \else
- \expandafter\PLtypesixtwo
- \fi}
-
-% \gdef\PLtypesixtwo#1%
-% {\ifinPLcomment
-% \getpretty{#1}%
-% \else\ifinPLsingle
-% \getpretty{#1}%
-% \else\ifinPLdouble
-% \ifx\PLprefix\empty
-% \getpretty{#1}%
-% \else
-% \xdef\PLsequence{\PLsequence\getpretty{#1}}%
-% \fi
-% \else
-% \xdef\PLsequence{\PLsequence\getpretty{#1}}%
-% \fi\fi\fi}
-
-\gdef\PLtypesixtwo#1%
- {\ifinPLdoc
- \xdef\PLsequence{\PLsequence\getpretty{#1}}%
- \else\ifinPLcomment
- \getpretty{#1}%
- \else\ifinPLsingle
- \getpretty{#1}%
- \else\ifinPLdouble
- \ifx\PLprefix\empty
- \getpretty{#1}%
- \else
- \xdef\PLsequence{\PLsequence\getpretty{#1}}%
- \fi
- \else
- \xdef\PLsequence{\PLsequence\getpretty{#1}}%
- \fi\fi\fi\fi}
-
-\gdef\PLtypesevenone#1%
- {\endPLtypesix
- \getpretty{#1}}
-
-\gdef\PLtypeseventwo%
- {\handlenextnextpretty\doPLtypeseventwo\PLtypesevenone}
-
-\gdef\doPLtypeseventwo#1#2%
- {\getprettydata{#2}%
- \ifnum\prettytype=72
- \PLtypesixtwo{#1}\PLtypesixtwo{#1}%
- \else
- \PLtypesevenone{#1}\expandafter#2%
- \fi}
-
-\gdef\PLtypeeight#1% single quote
- {\endPLtypesix
- \ifinPLcomment
- \getpretty{#1}%
- \else\ifinPLdouble
- \getpretty{#1}%
- \else\ifinPLsingle
- \global\inPLsinglefalse
- \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty
- \else
- \global\inPLsingletrue
- \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty
- \fi\fi\fi}
-
-\gdef\PLtypenine#1% double quote
- {\endPLtypesix
- \ifinPLcomment
- \getpretty{#1}%
- \else\ifinPLsingle
- \getpretty{#1}%
- \else\ifinPLdouble
- \global\inPLdoublefalse
- \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty
- \else
- \global\inPLdoubletrue
- \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty
- \fi\fi\fi}
-
-\gdef\PLtypezero%
- {\endPLtypesix
- \ifnewpretty\expandafter\handlenewpretty\fi\doPLtypezero}
-
-\gdef\doPLtypezero#1%
- {\ifinPLcomment
- \getpretty{#1}%
- \else
- \global\inPLcommenttrue
- \PLverbosecorrection
- \ifnaturaltextext % non tested yet
- \let\next\naturaltextext
- \else
- \def\next{\beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty}%
- \fi
- \expandafter\next
- \fi}
-
-\gdef\doreportprettyPLtype#1#2#3#4%
- {#1%
- [PERL \string#2 typing conflict, use \string#3 instead]
- \writestatus
- {PERL typing}
- {use \string#3 instead of \string#2 to enable propper visualization}%
- \global#4%
- \expandafter\doemptyverbatimline
- \fi}
-
-\gdef\reportprettyPLtype%
- {\doreportprettyPLtype\ifinPLsingle'\'\inPLsinglefalse
- \doreportprettyPLtype\ifinPLdouble"\"\inPLdoublefalse}
-
-\gdef\PLsetdiagnostics%
- {\let\normaldoemptyverbatimline=\doemptyverbatimline
- \def\doemptyverbatimline%
- {\normaldoemptyverbatimline
- \reportprettyPLtype}}
-
-%D The official \PERL\ version 5 keywords:
-
-\useprettyidentifiers \PLidentifiers \PLsetspecials
- abs accept alarm and atan atan2 bind binmode bless caller
- chdir chmod chomp chop chown chr chroot close closedir cmp
- connect continue cos crypt dbmclose dbmopen defined delete
- die do dump each echo else elsif endgrent endhostent
- endnetent endprotoend endpwent endservent eof eq eval exec
- exists exit exp fcntl fileno flock for foreach fork format
- formline getc getgrent getgrgid getgrnam gethostbyaddr
- gethostbyname gethostent getlogin getnetbyaddr getnetbyname
- getnetent getpeername getpgrp getppid getpriority
- getprotobyname getprotobynumber getprotoent getpwent
- getpwnam getpwuid getservbyname getservbyport getservent
- getsockname getsockopt glob gmtime goto grep gt hex if
- import index int integer ioctl join keys kill last lc
- lcfirst le length lib link listen local localtime log lstat
- lt map method mkdir msgctl msgget msgrcv msgsnd my ne next
- no not oct open opendir or ord pack package pipe pop pos
- print printf process prompt push quotemeta rand read readdir
- readlink recv redo ref rename require reset return reverse
- rewinddir rindex rmdir scalar seek seekdir select semctl
- semget semop send setgrent sethostent setnetent setpgrp
- setpriority setprotoent setpwent setservent setsockopt shift
- shmctl shmget shmread shmwrite shutdown sin sleep socket
- socketpair sort splice split sprintf sqrt srand stat strict
- study sub subs substr symlink syscall sysopen sysread system
- syswrite tell telldir tie tied time times times truncate uc
- ucfirst ucmask umask unary undef unless unlink unpack
- unshift untie until use utime values vars vec wait waitpid
- wantarray warn warn while write xor
-
-%D Additional module keywords (still incomplete):
-
-\useprettyidentifiers \PLvariables \PLsetspecials
- Getopt::Long
- $Getopt::Long::passthrough
- $Getopt::Long::autoabbrev
- &GetOptions
-
-%D A funny hack. When prefixes by \type{TEX}, a \type{\csname}
-%D is typeset as \TEX\ sequence.
-
-\useprettyidentifiers \PLverboses \PLsetspecials
- TEX
-
-\protect
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/verb-raw.mkii b/Master/texmf-dist/tex/context/base/mkii/verb-raw.mkii
deleted file mode 100644
index 43a0891a039..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/verb-raw.mkii
+++ /dev/null
@@ -1,7 +0,0 @@
-\ifdefined\setupprettyPLtype \else \loadmarkfile{verb-pl} \fi
-
-\gdef\setupprettyRAWtype%
- {\setupprettyTEXtype
- \def\prettyidentifier{RAW}}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/verb-sql.mkii b/Master/texmf-dist/tex/context/base/mkii/verb-sql.mkii
deleted file mode 100644
index f145607f819..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/verb-sql.mkii
+++ /dev/null
@@ -1,230 +0,0 @@
-%D \module
-%D [ file=verb-sql,
-%D version=2000.05.09,
-%D title=\CONTEXT\ Verbatim Macros,
-%D subtitle=Pretty \SQL\ Verbatim,
-%D author={Berend de Boer \& Hans Hagen},
-%D date=\currentdate,
-%D copyright={Berend de Boer \& Hans Hagen}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Verbatim Macros / Pretty SQL Verbatim}
-
-%D \quotation {He, I want pretty pretting too!}, Berend cried out
-%D one day, \quotation {But now for \SQL.}. This query language
-%D shows code like:
-%D
-%D \startbuffer
-%D \startSQL
-%D select * -- some comment
-%D from tableA
-%D where 1 = 2
-%D \stopSQL
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D and this should become something pretty like:
-%D
-%D \getbuffer
-%D
-%D or, with Berend's preferences:
-%D
-%D \startbuffer[setup]
-%D \setuptyping
-%D [SQL]
-%D [text=yes,palet=,icommand=\bf,vcommand=,ccommand=\it]
-%D \stopbuffer
-%D
-%D \getbuffer[setup]
-%D \getbuffer
-%D
-%D This kind of pretty printing is accomplished by:
-%D
-%D \typebuffer
-
-%D Like we did with the \JAVASCRIPT\ driver, we will borrow
-%D most of the macros from the \PERL\ driver.
-
-\ifdefined\setupprettyPLtype \else \loadmarkfile{verb-pl} \fi
-
-\unprotect
-
-%D \SQL\ has the one line comment sequence \type{--} and the
-%D multi line comment delimiters \type{/*} and \type{*/}. The
-%D next counter keeps track of multi line comment nesting.
-
-\newcount\SQLcommentlevel
-
-%D We need to handle \type{%}, \type{#} and \type{-} a bit
-%D different than in the \PERL\ driver. Compared to the
-%D \JAVASCRIPT\ driver |<|we copied most of the code from
-%D that one|>|, we now also have type~45.
-
-\gdef\SQLsetspecials%
- {\PLsetspecials
- \setpretty`\#=32
- \setpretty`\:=41
- \setpretty`\%=41
- \setpretty`\/=43
- \setpretty`\*=44
- \setpretty`\-=45 }
-
-%D We need three additional handlers:
-
-\gdef\SQLsethandlers%
- {\PLsethandlers
- \installprettyhandler 43 \SQLtypefourthree
- \installprettyhandler 44 \SQLtypefourfour
- \installprettyhandler 45 \SQLtypefourfive }
-
-%D Next we have to do some general housekeeping.
-
-\gdef\SQLsetcontrols%
- {\PLsetcontrols
- \def\flushrestofverbatimline%
- {\endPLtypesix
- \ifcase\SQLcommentlevel
- \inPLcommentfalse
- \verbatimfont
- \fi
- \PLverbosefalse
- \PLverboseskipped=0}}
-
-\gdef\SQLsetvariables
- {\PLsetvariables
- \global\SQLcommentlevel=0 }
-
-\gdef\setupprettySQLtype%
- {\def\prettyidentifier{SQL}%
- \let\PLidentifiers=\SQLidentifiers
- \let\PLvariables=\SQLvariables
- \SQLsetvariables
- \SQLsetcontrols
- \SQLsethandlers
- \SQLsetspecials
- \PLsetdiagnostics}
-
-%D We have to look upto four characters ahead. If you don't
-%D grab the picture, just skip reading these macros.
-
-\gdef\SQLtypefourthree%
- {\handlenextnextpretty\doSQLtypefourthree\PLtypefourtwo}
-
-\gdef\doSQLtypefourthree#1#2%
- {\getprettydata{#2}%
- \ifnum\prettytype=43
- \let\next=\dodoSQLtypefourthree
- \else\ifnum\prettytype=44
- \global\advance\SQLcommentlevel by 1
- \global\inPLcommenttrue
- \PLverbosecorrection
- \let\next=\SQLtogglecomment
- \else
- \let\next=\PLtypefourtwo
- \fi\fi
- \next{#1}#2}
-
-\gdef\SQLtogglecomment#1#2%
- {\ifnum\SQLcommentlevel=1
- \prettynaturalfont
- \beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty
- \else
- \getpretties{#1}{#2}%
- \fi}
-
-\gdef\dodoSQLtypefourthree% #1%
- {\endPLtypesix
- \handlenextnextpretty\dododoSQLtypefourthree\dodododoPLtypefourthree}
-
-\gdef\dododoSQLtypefourthree%
- {\ifnewpretty\expandafter\handlenewpretty\fi\dodododoSQLtypefourthree}
-
-\gdef\dodododoSQLtypefourthree#1#2%
- {\ifinPLcomment
- \getpretties{#1}{#2}%
- \else
- \global\inPLcommenttrue
- \PLverbosecorrection
- \beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty
- \fi}
-
-\gdef\SQLtypefourfour%
- {\handlenextnextpretty\doSQLtypefourfour\PLtypefourtwo}
-
-\gdef\doSQLtypefourfour#1#2%
- {\getprettydata{#2}%
- \ifnum\prettytype=43
- \SQLtogglecomment{#1}#2%
- \global\advance\SQLcommentlevel by -1
- \ifcase\SQLcommentlevel
- \global\inPLcommentfalse
- \prettyverbatimfont
- \fi
- \else
- \endPLtypesix
- \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty
- \expandafter#2%
- \fi}
-
-%D Much of the indirect calls (\type {dodo..}) is due to
-%D looking ahead as well as midway pretty print changing.
-
-\gdef\SQLtypefourfive%
- {\handlenextnextpretty\doSQLtypefourfive\PLtypefourtwo}
-
-\gdef\doSQLtypefourfive#1#2%
- {\getprettydata{#2}%
- \ifnum\prettytype=45
- \let\next=\dodoSQLtypefourfive
- \else
- \let\next=\PLtypefourtwo
- \fi
- \next{#1}#2}
-
-\gdef\dodoSQLtypefourfive% #1%
- {\endPLtypesix
- \handlenextnextpretty\dododoSQLtypefourfive\dodododoPLtypefourfive}
-
-\gdef\dododoSQLtypefourfive%
- {\ifnewpretty\expandafter\handlenewpretty\fi\dodododoSQLtypefourfive}
-
-\gdef\dodododoSQLtypefourfive#1#2%
- {\ifinPLcomment
- \getpretties{#1}{#2}%
- \else
- \global\inPLcommenttrue
- \PLverbosecorrection
- \ifnaturaltextext
- \let\next\naturaltextext
- \else
- \prettynaturalfont
- \def\next{\beginofpretty[\!!prettyone]\getpretties{#1}{#2}\endofpretty}%
- \fi
- \expandafter\next
- \fi}
-
-%D We need a different list of reserved words. This list
-%D replaces the \PERL\ one.
-
-\useprettyidentifiers \SQLidentifiers \SQLsetspecials
- add all alter and any as asc avg begin between break
- browse bulk by cascade case check close clustered coalesce
- column commit constraint contains count create cross
- cursor database default delete desc distinct drop else end
- exec execute exists exit fetch for foreign from grant
- group having if in index inner insert into is join key
- left like max min nocheck nonclustered not null of on open
- or order outer over plan prepare proc procedure public
- references return revoce right rollback rule select set
- sum table then to tran transaction trigger truncate
- uncommited union unique update use values varying view
- when where while with work primary
-
-\useprettyidentifiers \SQLvariables \SQLsetspecials
- not-yet-defined
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/verb-tex.mkii b/Master/texmf-dist/tex/context/base/mkii/verb-tex.mkii
deleted file mode 100644
index 98655cc2d8a..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/verb-tex.mkii
+++ /dev/null
@@ -1,294 +0,0 @@
-%D \module
-%D [ file=verb-tex,
-%D version=1997.12.22,
-%D title=\CONTEXT\ Verbatim Macros,
-%D subtitle=Pretty \TEX\ verbatim,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Verbatim Macros / Pretty TEX Verbatim}
-
-%D The original module \type{supp-ver} had the \TEX\
-%D interpreter built in. The current implementation is more
-%D natural and less complicated.
-
-%D \startTEX
-%D \definetyping[niceTEX][option=TEX,paletpalet=graypretty]
-%D
-%D \startniceTEX
-%D \message{A vivid look at TeX}
-%D \stopniceTEX
-%D \stopTEX
-
-\unprotect
-
-%D \macros
-%D {ifsplitTEXparameters}
-%D
-%D The mechanism described here, is meant to be used with
-%D color. It is nevertheless possible to use different fonts
-%D instead of distinctive colors. When using color, it's better
-%D to end parameter mode after the \type{#}. When on the
-%D other hand we use a slanted typeface for the hashmark, then
-%D a slanted number looks better.
-
-\doglobal\newif\ifsplitTEXparameters \global\splitTEXparameterstrue
-
-%D \macros
-%D {ifsplitTEXcontrols}
-%D
-%D With \type{\splittexcontrols} we can influence the way
-%D control characters are processed in macro names. By default,
-%D the \type{^^} part is uncolored. When this boolean is set to
-%D false, they get the same color as the other characters.
-
-\doglobal\newif\ifsplitTEXcontrols \global\splitTEXcontrolstrue
-
-%D The next boolean is used for internal purposes only and
-%D keeps track of the length of the name. Because two||character
-%D sequences starting with a backslash are always seen as a
-%D command.
-
-\doglobal\newif\iffirstinTEXcommand
-
-%D We use a maximum of four colors because more colors will
-%D distract too much. In the following table we show the
-%D logical names of the colors, their color and \cap{RGB} values.
-%D
-%D \placetable{geen}
-%D \starttable[|l|l|c|c|c|c|]
-%D \HL
-%D \FC\bf identifier \MC\bf color \MC\bf r \MC\bf g \MC\bf b \MC\bf bw \LC\SR
-%D \HL
-%D \FC prettyone \MC red \MC 0.9 \MC 0.0 \MC 0.0 \MC 0.30 \LC\FR
-%D \FC prettytwo \MC green \MC 0.0 \MC 0.8 \MC 0.0 \MC 0.45 \LC\MR
-%D \FC prettythree \MC yellow \MC 0.0 \MC 0.0 \MC 0.9 \MC 0.60 \LC\MR
-%D \FC prettyfour \MC blue \MC 0.8 \MC 0.8 \MC 0.6 \MC 0.75 \LC\LR
-%D \HL
-%D \stoptable
-%D
-%D Outside \CONTEXT\ these colors are defined in
-%D \type{verb-ini}, in \CONTEXT\ their definitions can be found
-%D in \type{core-ver}, where in fact we use the color palet
-%D mechanism. That way we can use different schemes i a quite
-%D natural way.
-
-\gdef\setupprettyTEXtype
- {\def\prettyidentifier{TEX}%
- \global\inTEXcommandfalse
- \global\firstinTEXcommandfalse
- \global\inTEXparameterfalse
- \TEXsetcontrols
- \TEXsethandlers
- \TEXsetspecials}
-
-\gdef\TEXsetcontrols
- {\saveprettycontrols
- \everyprettyend
- {\TEXendofcommand
- \TEXendofparameter}%
- \def\obeyedspace
- {\TEXendofcommand
- \TEXendofparameter
- \oldobeyedspace}%
- \def\flushrestofverbatimline
- {\TEXendofcommand
- \TEXendofparameter}%
- \let\obeytabs=\ignoretabs}
-
-\gdef\TEXsetspecials
- {\setpretty`\$=1 \setpretty`\{=1 \setpretty`\}=1
- \setpretty`\[=2 \setpretty`\]=2 \setpretty`\(=2 \setpretty`\)=2
- \setpretty`\==2 \setpretty`\<=2 \setpretty`\>=2 \setpretty`\"=2
- \setpretty`\-=3 \setpretty`\+=3 \setpretty`\/=3
- \setpretty`\|=3 \setpretty`\%=3 \setpretty`\'=3 \setpretty`\`=3
- \setpretty`\_=3 \setpretty`\&=3 \setpretty`\~=3
- \setpretty`\.=4 \setpretty`\,=4 \setpretty`\:=4 \setpretty`\;=4 \setpretty`\*=4
- \setpretty`\#=5
- \setpretty`\1=6 \setpretty`\2=6 \setpretty`\3=6 \setpretty`\4=6 \setpretty`\5=6
- \setpretty`\6=6 \setpretty`\7=6 \setpretty`\8=6 \setpretty`\9=6 \setpretty`\0=6
- \setpretty`\\=7
- \setpretty`\^=8
- \setpretty`\A=9 \setpretty`\B=9 \setpretty`\C=9 \setpretty`\D=9 \setpretty`\E=9
- \setpretty`\F=9 \setpretty`\G=9 \setpretty`\H=9 \setpretty`\I=9 \setpretty`\J=9
- \setpretty`\K=9 \setpretty`\L=9 \setpretty`\M=9 \setpretty`\N=9 \setpretty`\O=9
- \setpretty`\P=9 \setpretty`\Q=9 \setpretty`\R=9 \setpretty`\S=9 \setpretty`\T=9
- \setpretty`\U=9 \setpretty`\V=9 \setpretty`\W=9 \setpretty`\X=9 \setpretty`\Y=9
- \setpretty`\Z=9
- \setpretty`\a=9 \setpretty`\b=9 \setpretty`\c=9 \setpretty`\d=9 \setpretty`\e=9
- \setpretty`\f=9 \setpretty`\g=9 \setpretty`\h=9 \setpretty`\i=9 \setpretty`\j=9
- \setpretty`\k=9 \setpretty`\l=9 \setpretty`\m=9 \setpretty`\n=9 \setpretty`\o=9
- \setpretty`\p=9 \setpretty`\q=9 \setpretty`\r=9 \setpretty`\s=9 \setpretty`\t=9
- \setpretty`\u=9 \setpretty`\v=9 \setpretty`\w=9 \setpretty`\x=9 \setpretty`\y=9
- \setpretty`\z=9
- \setpretty`\?=9 \setpretty`\!=9 \setpretty`\@=9
- \setpretty`\%=0 }
-
-\gdef\TEXsethandlers
- {\installprettyhandler 1 \TEXtypeone
- \installprettyhandler 2 \TEXtypetwo
- \installprettyhandler 3 \TEXtypethree
- \installprettyhandler 4 \TEXtypefour
- \installprettyhandler 5 \TEXtypefive
- \installprettyhandler 6 \TEXtypesix
- \installprettyhandler 7 \TEXtypeseven
- \installprettyhandler 8 \TEXtypeeight
- \installprettyhandler 9 \TEXtypenine
- \installprettyhandler 0 \TEXtypezero}
-
-\doglobal\newif\ifinTEXcommand
-\doglobal\newif\ifinTEXparameter
-
-\gdef\TEXbeginofcommand
- {\TEXendofparameter
- \ifinTEXcommand
- \else
- \global\inTEXcommandtrue
- \global\firstinTEXcommandtrue
- \beginofpretty[\!!prettytwo]%
- \fi}
-
-\gdef\TEXendofcommand
- {\ifinTEXcommand
- \endofpretty
- \global\inTEXcommandfalse
- \global\firstinTEXcommandfalse
- \fi}
-
-\gdef\TEXbeginofparameter
- {\TEXendofcommand
- \ifinTEXparameter
- \else
- \global\inTEXparametertrue
- \beginofpretty[\!!prettythree]%
- \fi}
-
-\gdef\TEXendofparameter
- {\ifinTEXparameter
- \endofpretty
- \global\inTEXparameterfalse
- \fi}
-
-\gdef\ifnotfirstinTEXcommand#1
- {\iffirstinTEXcommand
- \getpretty{#1}%
- \TEXendofcommand
- \else}
-
-\gdef\TEXtypeone#1%
- {\ifnotfirstinTEXcommand#1
- \TEXendofcommand
- \TEXendofparameter
- \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty
- \fi}
-
-\gdef\TEXtypetwo#1%
- {\ifnotfirstinTEXcommand#1
- \TEXendofcommand
- \TEXendofparameter
- \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty
- \fi}
-
-\gdef\TEXtypethree#1%
- {\ifnotfirstinTEXcommand#1
- \TEXendofcommand
- \TEXendofparameter
- \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty
- \fi}
-
-\gdef\TEXtypefour#1%
- {\ifnotfirstinTEXcommand#1
- \TEXendofcommand
- \TEXendofparameter
- \getpretty{#1}%
- \fi}
-
-\gdef\TEXtypefive#1%
- {\ifnotfirstinTEXcommand#1
- \TEXbeginofparameter
- \getpretty{#1}%
- \fi}
-
-\gdef\TEXtypesix#1%
- {\ifnotfirstinTEXcommand#1
- \ifinTEXparameter
- \ifsplitTEXparameters
- \TEXendofparameter
- \getpretty{#1}%
- \else
- \getpretty{#1}%
- \TEXendofparameter
- \fi
- \else
- \TEXendofcommand
- \getpretty{#1}%
- \fi
- \fi}
-
-\gdef\TEXtypeseven#1%
- {\ifnotfirstinTEXcommand#1
- \TEXbeginofcommand
- \getpretty{#1}%
- \fi}
-
-\gdef\TEXtypeeightA#1#2%
- {\getprettydata{#2}%
- \ifnum\prettytype=80
- \TEXendofparameter
- \ifsplitTEXcontrols
- \ifinTEXcommand
- \def\next{\TEXendofcommand\getpretty{#1}\getpretty{#1}\TEXbeginofcommand}%
- \else
- \def\next{\getpretty{#1}\getpretty{#1}}%
- \fi
- \else
- \def\next{\getpretty{#1}\getpretty{#1}}%
- \fi
- \else
- \def\next{\TEXtypeeightB{#1}#2}%
- \fi
- \next}
-
-\gdef\TEXtypeeightB
- {\TEXendofparameter
- \ifinTEXcommand
- \firstinTEXcommandfalse
- \expandafter\getpretty
- \else
- \expandafter\TEXtypethree
- \fi}
-
-\gdef\TEXtypeeight
- {\handlenextnextpretty\TEXtypeeightA\TEXtypeeightB}
-
-\gdef\TEXtypenine
- {\TEXendofparameter
- \global\firstinTEXcommandfalse
- \getpretty}
-
-%\gdef\TEXtypezero
-% {\disableprettyafterwards % only when enabled of course
-% \ifnewpretty\expandafter\handlenewpretty\fi\TEXtypethree}
-
-\long\gdef\naturalTEXtext#1#2\relax% local alternative for \naturaltextext
- {\convertargument#2\to\ascii
- \doifinstringelse{\letterpercent}{\ascii}
- {\long\def\next{\TEXtypethree{#1}#2\relax}}
- %{\long\def\next{\bgroup\prettynaturalfont\restorecatcodes\scantokens{\ignorespaces#2}\egroup}}%
- {\long\def\next{\bgroup\prettynaturalfont{\restorecatcodes\scantokens{\ignorespaces#2}}\egroup}}%
- \next}
-
-\gdef\TEXtypezero
- {\ifnaturaltextext
- \expandafter\naturalTEXtext
- \else
- \disableprettyafterwards % only when enabled of course
- \expandafter\handlenewpretty\expandafter\TEXtypethree
- \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/verb-xml.mkii b/Master/texmf-dist/tex/context/base/mkii/verb-xml.mkii
deleted file mode 100644
index dbf6635f655..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/verb-xml.mkii
+++ /dev/null
@@ -1,441 +0,0 @@
-%D \module
-%D [ file=verb-xml,
-%D version=2000.05.09,
-%D title=\CONTEXT\ Verbatim Macros,
-%D subtitle=Pretty XML verbatim,
-%D author=Berend de Boer,
-%D date=2000.05.08,
-%D copyright={Berend de Boer \& Hans Hagen}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% This module will be cleaned up a bit in the process of more
-% flexible verbatim options.
-
-\writestatus{loading}{ConTeXt Verbatim Macros / Pretty XML Verbatim}
-
-\unprotect
-
-%D Formats XML more or less like XMLWriter (http://XMLwriter.net)
-%D does.
-%D
-%D Known bugs:
-%D - CDATA not handled yet.
-%D
-%D Expects well-formed XML. Else parsing errors may occur, because
-%D this XML state machine is not robust.
-%D
-%D Examples:
-%D
-%D \startXML
-%D <?xml version="1.0" encoding="ISO-8859-1" ?>
-%D <!-- comment: example of a <resource> tag -->
-%D <resources>
-%D <resource id="5">
-%D <capacity>
-%D <kind>1</kind>
-%D <value>100</value>
-%D </capacity>
-%D </resource>
-%D </resources>
-%D \stopXML
-%D
-%D Another format:
-%D
-%D \startXML
-%D <?xml version="1.0" encoding="ISO-8859-1" ?>
-%D <address id="10"/>
-%D \stopXML
-%D
-%D A typical setup:
-%D
-%D \setuptyping[XML]
-%D [margin=1cm,
-%D before={\switchtobodyfont[9pt]\blank[medium]},
-%D after={\switchtobodyfont[11pt]\blank[medium]},
-%D style=\ss]
-%D
-
-\ifx\XMLlinebreak\undefined
- \gdef\XMLlinebreak{\ifhmode\allowbreak\fi} % new, often long lines
-\fi
-
-\doglobal\newif\ifXMLmarkkeys \global\XMLmarkkeystrue
-
-\gdef\setupprettyXMLtype%
- {\def\prettyidentifier{XML}%
- \XMLsetvariables
- \XMLsetcontrols
- \XMLsetspecials
- \XMLsethandlers}
-
-\gdef\XMLsetvariables
- {\global\inXMLpifalse
- \global\inXMLtagfalse
- \global\inXMLvaluefalse
- \global\inXMLspecialfalse
- \global\inXMLcommentfalse
- \global\inXMLtagnamefalse
- \global\inXMLattributefalse
- \global\inXMLentityfalse}
-
-\gdef\XMLsetcontrols%
- {\saveprettycontrols
- \def\obeyedspace%
- {\ifinXMLvalue
- \else % more tests ?
- \XMLstartattribute
- \fi
- \oldobeyedspace
- \XMLlinebreak}%
- \def\flushrestofverbatimline%
- {\endXMLtagname}%
- \let\obeytabs=\ignoretabs}
-
-\gdef\XMLsetspecials%
- {\setpretty`\<=10 \setpretty`\>=11
- \setpretty`\?=12 \setpretty`\/=13
- \setpretty`\!=14 \setpretty`\-=15
- \setpretty`\\=17
- \setpretty`\0=17
- \setpretty`\1=17 \setpretty`\2=17 \setpretty`\3=17
- \setpretty`\4=17 \setpretty`\5=17 \setpretty`\6=17
- \setpretty`\7=17 \setpretty`\8=17 \setpretty`\9=17
- \setpretty`\==16
- \setpretty`\"=20
- \setpretty`\(=31 \setpretty`\)=31 \setpretty`\,=31
- \setpretty`\*=31 \setpretty`\+=31 \setpretty`\#=31
- \setpretty`\:=32
- \setpretty`\&=41 \setpretty`\;=42 }
-
-\gdef\XMLsethandlers%
- {\installprettyhandler 17 \XMLnormal
- \installprettyhandler 10 \XMLwhattag
- \installprettyhandler 11 \XMLstoptag
- \installprettyhandler 12 \XMLtypeonetwo
- \installprettyhandler 13 \XMLtypeonethree
- \installprettyhandler 14 \XMLtypeonefour
- \installprettyhandler 15 \XMLtypeonefive
- \installprettyhandler 16 \XMLtypeonesix
- \installprettyhandler 20 \XMLdoublequote
- \installprettyhandler 31 \XMLtypethreeone
- \installprettyhandler 32 \XMLtypethreetwo
- \installprettyhandler 41 \XMLbampersand
- \installprettyhandler 42 \XMLeampersand }
-
-\doglobal\newif\ifinXMLpi
-\doglobal\newif\ifinXMLtag
-\doglobal\newif\ifinXMLvalue
-\doglobal\newif\ifinXMLspecial
-\doglobal\newif\ifinXMLcomment
-\doglobal\newif\ifinXMLtagname
-\doglobal\newif\ifinXMLattribute
-\doglobal\newif\ifinXMLentity
-
-% the list of actions to be executed per state
-
-% test if we have a normal tag, processing instruction or a special,
-% i.e. <, <? or <!
-
-\gdef\XMLnormal#1{\getpretty{#1}}
-
-\gdef\XMLwhattag%
- {\handlenextnextpretty\XMLdowhattag\XMLstarttag}
-
-\gdef\XMLdowhattag#1#2%
- {\ifinXMLcomment
- \let\next=\getpretties
- \else
- \getprettydata{#2}%
- \ifnum\prettytype=12 % ?
- \let\next=\XMLstartpi
- \else\ifnum\prettytype=14 % !
- \let\next=\XMLstartspecial
- \else
- \let\next=\XMLstarttag
- \fi\fi
- \fi
- \next{#1}{#2}}
-
-% formats <?
-
-\gdef\XMLstartpi#1#2%
- {\beginofpretty[\!!prettythree]\getpretties{#1}{#2}\endofpretty%
- \global\inXMLtagtrue
- \global\inXMLpitrue
- \global\inXMLtagnametrue
- \beginofpretty[\!!prettyone]}
-
-% format <!, <!--, <!DOCTYPE, <![CDATA[ and such
-
-\gdef\XMLstartspecial#1#2%
- {\beginofpretty[\!!prettythree]\getpretties{#1}{#2}\endofpretty%
- \global\inXMLtagtrue
- \global\inXMLspecialtrue
- \global\inXMLtagnametrue
- \beginofpretty[\!!prettyone]}
-
-% formats plain <
-
-\gdef\XMLstarttag#1%
- {\XMLlinebreak
- \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty
- \global\inXMLtagtrue
- \global\inXMLtagnametrue
- \beginofpretty[\!!prettyone]}
-
-
-% catch >
-
-\gdef\XMLstoptag#1%
- {\ifinXMLcomment
- \getpretty{#1}%
- \else
- \ifinXMLvalue
- \getpretty{#1}%
- \else
- \endXMLtagname
- \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty
- \doXMLstoptag
- \XMLlinebreak
- \fi
- \fi}
-
-\gdef\doXMLstoptag%
- {\global\inXMLpifalse % either end process instruction
- \global\inXMLspecialfalse % or special
- \global\inXMLtagfalse % tag ends always
- \global\inXMLtagnamefalse} % just to be sure
-
-% end typeset name of tag
-% because called often, we also use it to end the default
-% attribute color.
-
-\gdef\endXMLtagname%
- {\ifinXMLtagname
- \endofpretty
- \inXMLtagnamefalse
- \else
- \XMLstopattribute
- \fi}
-
-% start attribute formatting inside a tag if applicable
-
-\gdef\XMLstartattribute%
- {\ifinXMLcomment \else
- \ifinXMLpi
- \ifXMLmarkkeys\else\endXMLtagname\fi % option
- \else
- \endXMLtagname
- \ifinXMLtag
- \doXMLstartattribute
- \fi
- \fi
- \fi}
-
-\gdef\XMLstopattribute%
- {\ifinXMLattribute
- \endofpretty
- \inXMLattributefalse
- \fi}
-
-\gdef\doXMLstartattribute
- {\inXMLattributetrue
- \beginofpretty[\!!prettythree]}
-
-% `?' character, needed to recognize ?>
-
-\gdef\XMLtypeonetwo%
- {\endXMLtagname
- \handlenextnextpretty\doXMLtypeonetwo\doXMLout}
-
-\gdef\doXMLtypeonetwo#1#2%
- {\getprettydata{#2}%
- \ifnum\prettytype=11 % >
- \expandafter\dododoXMLtypeonetwo
- \else % treat as `green' character
- \expandafter\XMLtypethreeone
- \fi
- {#1}#2}
-
-\gdef\dododoXMLtypeonetwo#1#2%
- {\ifinXMLcomment
- \getpretties{#1}{#2}%
- \else
- \ifinXMLtag
- \ifinXMLvalue
- \getpretties{#1}{#2}%
- \else
- \ifinXMLpi
- \beginofpretty[\!!prettythree]\getpretties{#1}{#2}\endofpretty
- \else % treat as green character
- \beginofpretty[\!!prettytwo]\getpretty{#1}\endofpretty
- \beginofpretty[\!!prettythree]#2\endofpretty
- \fi
- \doXMLstoptag
- \fi
- \else
- \getpretties{#1}{#2}%
- \fi
- \fi}
-
-% '/' character, catch /> and </, do nothing else
-
-\gdef\XMLtypeonethree#1%
- {\ifinXMLcomment
- \getpretty{#1}%
- \else
- \ifinXMLtag
- \ifinXMLvalue
- \getpretty{#1}%
- \else
- \endofpretty
- \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty
- \beginofpretty[\!!prettyone]%
- \fi
- \else
- \getpretty{#1}%
- \fi
- \fi}
-
-% used to parse <!
-
-\gdef\XMLtypeonefour#1%
- {\getpretty{#1}}
-
-% used to parse <!-- and -->
-% when <! is parsed we already assumed this is a comment
-% when -- is encountered, we only need to see if --> is ahead
-% so the comment can stop.
-
-\gdef\XMLtypeonefive%
- {\handlenextnextpretty\doXMLtypeonefive\doXMLout}
-
-\gdef\doXMLtypeonefive#1#2%
- {\getprettydata{#2}%
- \ifnum\prettytype=15
- \ifinXMLcomment
- \let\next=\dodoXMLtypeonefive
- \else
- \ifinXMLspecial
- \let\next=\startXMLcomment
- \else
- \let\next=\doXMLouttwo
- \fi
- \fi
- \else
- \let\next=\doXMLouttwo
- \fi
- \next{#1}#2}
-
-\gdef\startXMLcomment#1#2%
- {\beginofpretty[\!!prettythree]\getpretties{#1}{#2}\endofpretty
- \beginofpretty[\!!prettyfour]%
- \global\inXMLcommenttrue}
-
-\gdef\dodoXMLtypeonefive#1% encountered -
- {\def\prev{#1}\handlenextnextpretty\dododoXMLtypeonefive\doXMLout}
-
-\gdef\nodoXMLtypeonefive% encountered -
- {\getpretty{\prev}\doXMLout}
-
-\gdef\dododoXMLtypeonefive#1#2%
- {\getprettydata{#2}%
- \ifnum\prettytype=11
- \endofpretty\getpretty{\prev}#1\empty\global\inXMLcommentfalse#2%
- \else
- \getpretty{\prev}#1#2%
- \fi}
-
-\global\let\doXMLout \getpretty
-\global\let\doXMLouttwo\getpretties
-
-% '=' inside tags needs to be blue
-
-\gdef\XMLtypeonesix#1%
- {\ifinXMLtag
- \endofpretty
- \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty
- \beginofpretty[\!!prettyone]%
- \else
- \getpretty{#1}%
- \fi}
-
-% catch attribute value parts
-
-\gdef\XMLdoublequote#1%
- {\ifinXMLcomment
- \getpretty{#1}%
- \else
- \ifinXMLtag
- \ifinXMLvalue
- \global\inXMLvaluefalse
- \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty
- \ifXMLmarkkeys\beginofpretty[\!!prettyone]\fi
- \else
- \endofpretty
- \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty
- \global\inXMLvaluetrue
- \fi
- \else
- \getpretty{#1}%
- \fi
- \fi}
-
-% symbols like `(', `)' and `,' should be green
-
-\gdef\XMLtypethreeone#1%
- {\ifinXMLcomment
- \getpretty{#1}%
- \else
- \ifinXMLtag
- \endXMLtagname
- \ifinXMLvalue
- \getpretty{#1}%
- \else
- \beginofpretty[\!!prettytwo]\getpretty{#1}\endofpretty
- \XMLstartattribute% again
- \fi
- \else
- \getpretty{#1}%
- \fi
- \fi}
-
-% \gdef\XMLtypethreetwo#1%
-% {\ifinXMLcomment
-% \getpretty{#1}%
-% \else
-% \ifinXMLtagname
-% \endofpretty
-% \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty
-% \beginofpretty[\!!prettyone]%
-% \else
-% \getpretty{#1}%
-% \fi
-% \fi}
-
-\gdef\XMLtypethreetwo#1%
- {\getpretty{#1}}
-
-% special characters with `&'
-
-\gdef\XMLbampersand#1%
- {\ifinXMLcomment
- \getpretty{#1}%
- \else
- \endXMLtagname
- \beginofpretty[\!!prettytwo]\getpretty{#1}\endofpretty
- \global\inXMLentitytrue
- \fi}
-
-\gdef\XMLeampersand#1%
- {\ifinXMLcomment
- \getpretty{#1}%
- \else
- \beginofpretty[\!!prettytwo]\getpretty{#1}\endofpretty
- \global\inXMLentityfalse
- \fi}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/xetx-chr.mkii b/Master/texmf-dist/tex/context/base/mkii/xetx-chr.mkii
deleted file mode 100644
index 66ae0d63603..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xetx-chr.mkii
+++ /dev/null
@@ -1,1154 +0,0 @@
-% filename : xetx-chr.mkii
-% comment : generated by mtxrun --script chars --xtx
-% author : Hans Hagen, PRAGMA-ADE, Hasselt NL
-% copyright: PRAGMA ADE / ConTeXt Development Team
-% license : see context related readme files
-
-% named characters mapped onto utf (\\char is needed for accents)
-
-\def\textbackslash {\char"0005C } % REVERSE SOLIDUS: \
-\def\textasciicircum {\char"0005E } % CIRCUMFLEX ACCENT: ^
-\def\textunderscore {\char"0005F } % LOW LINE: _
-\def\textgrave {\char"00060 } % GRAVE ACCENT: `
-\def\idotaccent {\char"00069 } % LATIN SMALL LETTER I: i
-\def\textbraceleft {\char"0007B } % LEFT CURLY BRACKET: {
-\def\textbar {\char"0007C } % VERTICAL LINE: |
-\def\textbraceright {\char"0007D } % RIGHT CURLY BRACKET: }
-\def\textasciitilde {\char"0007E } % TILDE: ~
-\def\exclamdown {\char"000A1 } % INVERTED EXCLAMATION MARK: ¡
-\def\textcent {\char"000A2 } % CENT SIGN: ¢
-\def\textsterling {\char"000A3 } % POUND SIGN: £
-\def\textcurrency {\char"000A4 } % CURRENCY SIGN: ¤
-\def\textyen {\char"000A5 } % YEN SIGN: ¥
-\def\textbrokenbar {\char"000A6 } % BROKEN BAR: ¦
-\def\sectionmark {\char"000A7 } % SECTION SIGN: §
-\def\textdiaeresis {\char"000A8 } % DIAERESIS: ¨
-\def\copyright {\char"000A9 } % COPYRIGHT SIGN: ©
-\def\ordfeminine {\char"000AA } % FEMININE ORDINAL INDICATOR: ª
-\def\leftguillemot {\char"000AB } % LEFT-POINTING DOUBLE ANGLE QUOTATION MARK: «
-\def\textlognot {\char"000AC } % NOT SIGN: ¬
-\def\softhyphen {\char"000AD } % SOFT HYPHEN: ­
-\def\registered {\char"000AE } % REGISTERED SIGN: ®
-\def\textmacron {\char"000AF } % MACRON: ¯
-\def\textdegree {\char"000B0 } % DEGREE SIGN: °
-\def\textpm {\char"000B1 } % PLUS-MINUS SIGN: ±
-\def\twosuperior {\char"000B2 } % SUPERSCRIPT TWO: ²
-\def\threesuperior {\char"000B3 } % SUPERSCRIPT THREE: ³
-\def\textacute {\char"000B4 } % ACUTE ACCENT: ´
-\def\textmu {\char"000B5 } % MICRO SIGN: µ
-\def\paragraphmark {\char"000B6 } % PILCROW SIGN: ¶
-\def\periodcentered {\char"000B7 } % MIDDLE DOT: ·
-\def\textcedilla {\char"000B8 } % CEDILLA: ¸
-\def\onesuperior {\char"000B9 } % SUPERSCRIPT ONE: ¹
-\def\ordmasculine {\char"000BA } % MASCULINE ORDINAL INDICATOR: º
-\def\rightguillemot {\char"000BB } % RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK: »
-\def\onequarter {\char"000BC } % VULGAR FRACTION ONE QUARTER: ¼
-\def\onehalf {\char"000BD } % VULGAR FRACTION ONE HALF: ½
-\def\threequarter {\char"000BE } % VULGAR FRACTION THREE QUARTERS: ¾
-\def\questiondown {\char"000BF } % INVERTED QUESTION MARK: ¿
-\def\Agrave {\char"000C0 } % LATIN CAPITAL LETTER A WITH GRAVE: À
-\def\Aacute {\char"000C1 } % LATIN CAPITAL LETTER A WITH ACUTE: Á
-\def\Acircumflex {\char"000C2 } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX: Â
-\def\Atilde {\char"000C3 } % LATIN CAPITAL LETTER A WITH TILDE: Ã
-\def\Adiaeresis {\char"000C4 } % LATIN CAPITAL LETTER A WITH DIAERESIS: Ä
-\def\Aring {\char"000C5 } % LATIN CAPITAL LETTER A WITH RING ABOVE: Å
-\def\AEligature {\char"000C6 } % LATIN CAPITAL LETTER AE: Æ
-\def\Ccedilla {\char"000C7 } % LATIN CAPITAL LETTER C WITH CEDILLA: Ç
-\def\Egrave {\char"000C8 } % LATIN CAPITAL LETTER E WITH GRAVE: È
-\def\Eacute {\char"000C9 } % LATIN CAPITAL LETTER E WITH ACUTE: É
-\def\Ecircumflex {\char"000CA } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX: Ê
-\def\Ediaeresis {\char"000CB } % LATIN CAPITAL LETTER E WITH DIAERESIS: Ë
-\def\Igrave {\char"000CC } % LATIN CAPITAL LETTER I WITH GRAVE: Ì
-\def\Iacute {\char"000CD } % LATIN CAPITAL LETTER I WITH ACUTE: Í
-\def\Icircumflex {\char"000CE } % LATIN CAPITAL LETTER I WITH CIRCUMFLEX: Î
-\def\Idiaeresis {\char"000CF } % LATIN CAPITAL LETTER I WITH DIAERESIS: Ï
-\def\Eth {\char"000D0 } % LATIN CAPITAL LETTER ETH: Ð
-\def\Ntilde {\char"000D1 } % LATIN CAPITAL LETTER N WITH TILDE: Ñ
-\def\Ograve {\char"000D2 } % LATIN CAPITAL LETTER O WITH GRAVE: Ò
-\def\Oacute {\char"000D3 } % LATIN CAPITAL LETTER O WITH ACUTE: Ó
-\def\Ocircumflex {\char"000D4 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX: Ô
-\def\Otilde {\char"000D5 } % LATIN CAPITAL LETTER O WITH TILDE: Õ
-\def\Odiaeresis {\char"000D6 } % LATIN CAPITAL LETTER O WITH DIAERESIS: Ö
-\def\textmultiply {\char"000D7 } % MULTIPLICATION SIGN: ×
-\def\Ostroke {\char"000D8 } % LATIN CAPITAL LETTER O WITH STROKE: Ø
-\def\Ugrave {\char"000D9 } % LATIN CAPITAL LETTER U WITH GRAVE: Ù
-\def\Uacute {\char"000DA } % LATIN CAPITAL LETTER U WITH ACUTE: Ú
-\def\Ucircumflex {\char"000DB } % LATIN CAPITAL LETTER U WITH CIRCUMFLEX: Û
-\def\Udiaeresis {\char"000DC } % LATIN CAPITAL LETTER U WITH DIAERESIS: Ü
-\def\Yacute {\char"000DD } % LATIN CAPITAL LETTER Y WITH ACUTE: Ý
-\def\Thorn {\char"000DE } % LATIN CAPITAL LETTER THORN: Þ
-\def\ssharp {\char"000DF } % LATIN SMALL LETTER SHARP S: ß
-\def\agrave {\char"000E0 } % LATIN SMALL LETTER A WITH GRAVE: à
-\def\aacute {\char"000E1 } % LATIN SMALL LETTER A WITH ACUTE: á
-\def\acircumflex {\char"000E2 } % LATIN SMALL LETTER A WITH CIRCUMFLEX: â
-\def\atilde {\char"000E3 } % LATIN SMALL LETTER A WITH TILDE: ã
-\def\adiaeresis {\char"000E4 } % LATIN SMALL LETTER A WITH DIAERESIS: ä
-\def\aring {\char"000E5 } % LATIN SMALL LETTER A WITH RING ABOVE: å
-\def\aeligature {\char"000E6 } % LATIN SMALL LETTER AE: æ
-\def\ccedilla {\char"000E7 } % LATIN SMALL LETTER C WITH CEDILLA: ç
-\def\egrave {\char"000E8 } % LATIN SMALL LETTER E WITH GRAVE: è
-\def\eacute {\char"000E9 } % LATIN SMALL LETTER E WITH ACUTE: é
-\def\ecircumflex {\char"000EA } % LATIN SMALL LETTER E WITH CIRCUMFLEX: ê
-\def\ediaeresis {\char"000EB } % LATIN SMALL LETTER E WITH DIAERESIS: ë
-\def\igrave {\char"000EC } % LATIN SMALL LETTER I WITH GRAVE: ì
-\def\iacute {\char"000ED } % LATIN SMALL LETTER I WITH ACUTE: í
-\def\icircumflex {\char"000EE } % LATIN SMALL LETTER I WITH CIRCUMFLEX: î
-\def\idiaeresis {\char"000EF } % LATIN SMALL LETTER I WITH DIAERESIS: ï
-\def\ntilde {\char"000F1 } % LATIN SMALL LETTER N WITH TILDE: ñ
-\def\ograve {\char"000F2 } % LATIN SMALL LETTER O WITH GRAVE: ò
-\def\oacute {\char"000F3 } % LATIN SMALL LETTER O WITH ACUTE: ó
-\def\ocircumflex {\char"000F4 } % LATIN SMALL LETTER O WITH CIRCUMFLEX: ô
-\def\otilde {\char"000F5 } % LATIN SMALL LETTER O WITH TILDE: õ
-\def\odiaeresis {\char"000F6 } % LATIN SMALL LETTER O WITH DIAERESIS: ö
-\def\textdiv {\char"000F7 } % DIVISION SIGN: ÷
-\def\ostroke {\char"000F8 } % LATIN SMALL LETTER O WITH STROKE: ø
-\def\ugrave {\char"000F9 } % LATIN SMALL LETTER U WITH GRAVE: ù
-\def\uacute {\char"000FA } % LATIN SMALL LETTER U WITH ACUTE: ú
-\def\ucircumflex {\char"000FB } % LATIN SMALL LETTER U WITH CIRCUMFLEX: û
-\def\udiaeresis {\char"000FC } % LATIN SMALL LETTER U WITH DIAERESIS: ü
-\def\yacute {\char"000FD } % LATIN SMALL LETTER Y WITH ACUTE: ý
-\def\thorn {\char"000FE } % LATIN SMALL LETTER THORN: þ
-\def\ydiaeresis {\char"000FF } % LATIN SMALL LETTER Y WITH DIAERESIS: ÿ
-\def\Amacron {\char"00100 } % LATIN CAPITAL LETTER A WITH MACRON: Ā
-\def\amacron {\char"00101 } % LATIN SMALL LETTER A WITH MACRON: ā
-\def\Abreve {\char"00102 } % LATIN CAPITAL LETTER A WITH BREVE: Ă
-\def\abreve {\char"00103 } % LATIN SMALL LETTER A WITH BREVE: ă
-\def\Aogonek {\char"00104 } % LATIN CAPITAL LETTER A WITH OGONEK: Ą
-\def\aogonek {\char"00105 } % LATIN SMALL LETTER A WITH OGONEK: ą
-\def\Cacute {\char"00106 } % LATIN CAPITAL LETTER C WITH ACUTE: Ć
-\def\cacute {\char"00107 } % LATIN SMALL LETTER C WITH ACUTE: ć
-\def\Ccircumflex {\char"00108 } % LATIN CAPITAL LETTER C WITH CIRCUMFLEX: Ĉ
-\def\ccircumflex {\char"00109 } % LATIN SMALL LETTER C WITH CIRCUMFLEX: ĉ
-\def\Cdotaccent {\char"0010A } % LATIN CAPITAL LETTER C WITH DOT ABOVE: Ċ
-\def\cdotaccent {\char"0010B } % LATIN SMALL LETTER C WITH DOT ABOVE: ċ
-\def\Ccaron {\char"0010C } % LATIN CAPITAL LETTER C WITH CARON: Č
-\def\ccaron {\char"0010D } % LATIN SMALL LETTER C WITH CARON: č
-\def\Dcaron {\char"0010E } % LATIN CAPITAL LETTER D WITH CARON: Ď
-\def\dcaron {\char"0010F } % LATIN SMALL LETTER D WITH CARON: ď
-\def\Dstroke {\char"00110 } % LATIN CAPITAL LETTER D WITH STROKE: Đ
-\def\dstroke {\char"00111 } % LATIN SMALL LETTER D WITH STROKE: đ
-\def\Emacron {\char"00112 } % LATIN CAPITAL LETTER E WITH MACRON: Ē
-\def\emacron {\char"00113 } % LATIN SMALL LETTER E WITH MACRON: ē
-\def\Ebreve {\char"00114 } % LATIN CAPITAL LETTER E WITH BREVE: Ĕ
-\def\ebreve {\char"00115 } % LATIN SMALL LETTER E WITH BREVE: ĕ
-\def\Edotaccent {\char"00116 } % LATIN CAPITAL LETTER E WITH DOT ABOVE: Ė
-\def\edotaccent {\char"00117 } % LATIN SMALL LETTER E WITH DOT ABOVE: ė
-\def\Eogonek {\char"00118 } % LATIN CAPITAL LETTER E WITH OGONEK: Ę
-\def\eogonek {\char"00119 } % LATIN SMALL LETTER E WITH OGONEK: ę
-\def\Ecaron {\char"0011A } % LATIN CAPITAL LETTER E WITH CARON: Ě
-\def\ecaron {\char"0011B } % LATIN SMALL LETTER E WITH CARON: ě
-\def\Gcircumflex {\char"0011C } % LATIN CAPITAL LETTER G WITH CIRCUMFLEX: Ĝ
-\def\gcircumflex {\char"0011D } % LATIN SMALL LETTER G WITH CIRCUMFLEX: ĝ
-\def\Gbreve {\char"0011E } % LATIN CAPITAL LETTER G WITH BREVE: Ğ
-\def\gbreve {\char"0011F } % LATIN SMALL LETTER G WITH BREVE: ğ
-\def\Gdotaccent {\char"00120 } % LATIN CAPITAL LETTER G WITH DOT ABOVE: Ġ
-\def\gdotaccent {\char"00121 } % LATIN SMALL LETTER G WITH DOT ABOVE: ġ
-\def\Gcommaaccent {\char"00122 } % LATIN CAPITAL LETTER G WITH CEDILLA: Ģ
-\def\gcommaaccent {\char"00123 } % LATIN SMALL LETTER G WITH CEDILLA: ģ
-\def\Hcircumflex {\char"00124 } % LATIN CAPITAL LETTER H WITH CIRCUMFLEX: Ĥ
-\def\hcircumflex {\char"00125 } % LATIN SMALL LETTER H WITH CIRCUMFLEX: ĥ
-\def\Hstroke {\char"00126 } % LATIN CAPITAL LETTER H WITH STROKE: Ħ
-\def\hstroke {\char"00127 } % LATIN SMALL LETTER H WITH STROKE: ħ
-\def\Itilde {\char"00128 } % LATIN CAPITAL LETTER I WITH TILDE: Ĩ
-\def\itilde {\char"00129 } % LATIN SMALL LETTER I WITH TILDE: ĩ
-\def\Imacron {\char"0012A } % LATIN CAPITAL LETTER I WITH MACRON: Ī
-\def\imacron {\char"0012B } % LATIN SMALL LETTER I WITH MACRON: ī
-\def\Ibreve {\char"0012C } % LATIN CAPITAL LETTER I WITH BREVE: Ĭ
-\def\ibreve {\char"0012D } % LATIN SMALL LETTER I WITH BREVE: ĭ
-\def\Iogonek {\char"0012E } % LATIN CAPITAL LETTER I WITH OGONEK: Į
-\def\iogonek {\char"0012F } % LATIN SMALL LETTER I WITH OGONEK: į
-\def\Idotaccent {\char"00130 } % LATIN CAPITAL LETTER I WITH DOT ABOVE: İ
-\def\dotlessi {\char"00131 } % LATIN SMALL LETTER DOTLESS I: ı
-\def\IJligature {\char"00132 } % LATIN CAPITAL LIGATURE IJ: IJ
-\def\ijligature {\char"00133 } % LATIN SMALL LIGATURE IJ: ij
-\def\Jcircumflex {\char"00134 } % LATIN CAPITAL LETTER J WITH CIRCUMFLEX: Ĵ
-\def\jcircumflex {\char"00135 } % LATIN SMALL LETTER J WITH CIRCUMFLEX: ĵ
-\def\Kcommaaccent {\char"00136 } % LATIN CAPITAL LETTER K WITH CEDILLA: Ķ
-\def\kcommaaccent {\char"00137 } % LATIN SMALL LETTER K WITH CEDILLA: ķ
-\def\kkra {\char"00138 } % LATIN SMALL LETTER KRA: ĸ
-\def\Lacute {\char"00139 } % LATIN CAPITAL LETTER L WITH ACUTE: Ĺ
-\def\lacute {\char"0013A } % LATIN SMALL LETTER L WITH ACUTE: ĺ
-\def\Lcommaaccent {\char"0013B } % LATIN CAPITAL LETTER L WITH CEDILLA: Ļ
-\def\lcommaaccent {\char"0013C } % LATIN SMALL LETTER L WITH CEDILLA: ļ
-\def\Lcaron {\char"0013D } % LATIN CAPITAL LETTER L WITH CARON: Ľ
-\def\lcaron {\char"0013E } % LATIN SMALL LETTER L WITH CARON: ľ
-\def\Ldotmiddle {\char"0013F } % LATIN CAPITAL LETTER L WITH MIDDLE DOT: Ŀ
-\def\ldotmiddle {\char"00140 } % LATIN SMALL LETTER L WITH MIDDLE DOT: ŀ
-\def\Lstroke {\char"00141 } % LATIN CAPITAL LETTER L WITH STROKE: Ł
-\def\lstroke {\char"00142 } % LATIN SMALL LETTER L WITH STROKE: ł
-\def\Nacute {\char"00143 } % LATIN CAPITAL LETTER N WITH ACUTE: Ń
-\def\nacute {\char"00144 } % LATIN SMALL LETTER N WITH ACUTE: ń
-\def\Ncommaaccent {\char"00145 } % LATIN CAPITAL LETTER N WITH CEDILLA: Ņ
-\def\ncommaaccent {\char"00146 } % LATIN SMALL LETTER N WITH CEDILLA: ņ
-\def\Ncaron {\char"00147 } % LATIN CAPITAL LETTER N WITH CARON: Ň
-\def\ncaron {\char"00148 } % LATIN SMALL LETTER N WITH CARON: ň
-\def\napostrophe {\char"00149 } % LATIN SMALL LETTER N PRECEDED BY APOSTROPHE: ʼn
-\def\Neng {\char"0014A } % LATIN CAPITAL LETTER ENG: Ŋ
-\def\neng {\char"0014B } % LATIN SMALL LETTER ENG: ŋ
-\def\Omacron {\char"0014C } % LATIN CAPITAL LETTER O WITH MACRON: Ō
-\def\omacron {\char"0014D } % LATIN SMALL LETTER O WITH MACRON: ō
-\def\Obreve {\char"0014E } % LATIN CAPITAL LETTER O WITH BREVE: Ŏ
-\def\obreve {\char"0014F } % LATIN SMALL LETTER O WITH BREVE: ŏ
-\def\Ohungarumlaut {\char"00150 } % LATIN CAPITAL LETTER O WITH DOUBLE ACUTE: Ő
-\def\ohungarumlaut {\char"00151 } % LATIN SMALL LETTER O WITH DOUBLE ACUTE: ő
-\def\OEligature {\char"00152 } % LATIN CAPITAL LIGATURE OE: Œ
-\def\oeligature {\char"00153 } % LATIN SMALL LIGATURE OE: œ
-\def\Racute {\char"00154 } % LATIN CAPITAL LETTER R WITH ACUTE: Ŕ
-\def\racute {\char"00155 } % LATIN SMALL LETTER R WITH ACUTE: ŕ
-\def\Rcommaaccent {\char"00156 } % LATIN CAPITAL LETTER R WITH CEDILLA: Ŗ
-\def\rcommaaccent {\char"00157 } % LATIN SMALL LETTER R WITH CEDILLA: ŗ
-\def\Rcaron {\char"00158 } % LATIN CAPITAL LETTER R WITH CARON: Ř
-\def\rcaron {\char"00159 } % LATIN SMALL LETTER R WITH CARON: ř
-\def\Sacute {\char"0015A } % LATIN CAPITAL LETTER S WITH ACUTE: Ś
-\def\sacute {\char"0015B } % LATIN SMALL LETTER S WITH ACUTE: ś
-\def\Scircumflex {\char"0015C } % LATIN CAPITAL LETTER S WITH CIRCUMFLEX: Ŝ
-\def\scircumflex {\char"0015D } % LATIN SMALL LETTER S WITH CIRCUMFLEX: ŝ
-\def\Scedilla {\char"0015E } % LATIN CAPITAL LETTER S WITH CEDILLA: Ş
-\def\scedilla {\char"0015F } % LATIN SMALL LETTER S WITH CEDILLA: ş
-\def\Scaron {\char"00160 } % LATIN CAPITAL LETTER S WITH CARON: Š
-\def\scaron {\char"00161 } % LATIN SMALL LETTER S WITH CARON: š
-\def\Tcedilla {\char"00162 } % LATIN CAPITAL LETTER T WITH CEDILLA: Ţ
-\def\tcedilla {\char"00163 } % LATIN SMALL LETTER T WITH CEDILLA: ţ
-\def\Tcaron {\char"00164 } % LATIN CAPITAL LETTER T WITH CARON: Ť
-\def\tcaron {\char"00165 } % LATIN SMALL LETTER T WITH CARON: ť
-\def\Tstroke {\char"00166 } % LATIN CAPITAL LETTER T WITH STROKE: Ŧ
-\def\tstroke {\char"00167 } % LATIN SMALL LETTER T WITH STROKE: ŧ
-\def\Utilde {\char"00168 } % LATIN CAPITAL LETTER U WITH TILDE: Ũ
-\def\utilde {\char"00169 } % LATIN SMALL LETTER U WITH TILDE: ũ
-\def\Umacron {\char"0016A } % LATIN CAPITAL LETTER U WITH MACRON: Ū
-\def\umacron {\char"0016B } % LATIN SMALL LETTER U WITH MACRON: ū
-\def\Ubreve {\char"0016C } % LATIN CAPITAL LETTER U WITH BREVE: Ŭ
-\def\ubreve {\char"0016D } % LATIN SMALL LETTER U WITH BREVE: ŭ
-\def\Uring {\char"0016E } % LATIN CAPITAL LETTER U WITH RING ABOVE: Ů
-\def\uring {\char"0016F } % LATIN SMALL LETTER U WITH RING ABOVE: ů
-\def\Uhungarumlaut {\char"00170 } % LATIN CAPITAL LETTER U WITH DOUBLE ACUTE: Ű
-\def\uhungarumlaut {\char"00171 } % LATIN SMALL LETTER U WITH DOUBLE ACUTE: ű
-\def\Uogonek {\char"00172 } % LATIN CAPITAL LETTER U WITH OGONEK: Ų
-\def\uogonek {\char"00173 } % LATIN SMALL LETTER U WITH OGONEK: ų
-\def\Wcircumflex {\char"00174 } % LATIN CAPITAL LETTER W WITH CIRCUMFLEX: Ŵ
-\def\wcircumflex {\char"00175 } % LATIN SMALL LETTER W WITH CIRCUMFLEX: ŵ
-\def\Ycircumflex {\char"00176 } % LATIN CAPITAL LETTER Y WITH CIRCUMFLEX: Ŷ
-\def\ycircumflex {\char"00177 } % LATIN SMALL LETTER Y WITH CIRCUMFLEX: ŷ
-\def\Ydiaeresis {\char"00178 } % LATIN CAPITAL LETTER Y WITH DIAERESIS: Ÿ
-\def\Zacute {\char"00179 } % LATIN CAPITAL LETTER Z WITH ACUTE: Ź
-\def\zacute {\char"0017A } % LATIN SMALL LETTER Z WITH ACUTE: ź
-\def\Zdotaccent {\char"0017B } % LATIN CAPITAL LETTER Z WITH DOT ABOVE: Ż
-\def\zdotaccent {\char"0017C } % LATIN SMALL LETTER Z WITH DOT ABOVE: ż
-\def\Zcaron {\char"0017D } % LATIN CAPITAL LETTER Z WITH CARON: Ž
-\def\zcaron {\char"0017E } % LATIN SMALL LETTER Z WITH CARON: ž
-\def\slong {\char"0017F } % LATIN SMALL LETTER LONG S: ſ
-\def\bstroke {\char"00180 } % LATIN SMALL LETTER B WITH STROKE: ƀ
-\def\Bhook {\char"00181 } % LATIN CAPITAL LETTER B WITH HOOK: Ɓ
-\def\Chook {\char"00187 } % LATIN CAPITAL LETTER C WITH HOOK: Ƈ
-\def\chook {\char"00188 } % LATIN SMALL LETTER C WITH HOOK: ƈ
-\def\Dafrican {\char"00189 } % LATIN CAPITAL LETTER AFRICAN D: Ɖ
-\def\Dhook {\char"0018A } % LATIN CAPITAL LETTER D WITH HOOK: Ɗ
-\def\Schwa {\char"0018F } % LATIN CAPITAL LETTER SCHWA: Ə
-\def\Fhook {\char"00191 } % LATIN CAPITAL LETTER F WITH HOOK: Ƒ
-\def\fhook {\char"00192 } % LATIN SMALL LETTER F WITH HOOK: ƒ
-\def\Ghook {\char"00193 } % LATIN CAPITAL LETTER G WITH HOOK: Ɠ
-\def\Istroke {\char"00197 } % LATIN CAPITAL LETTER I WITH STROKE: Ɨ
-\def\Khook {\char"00198 } % LATIN CAPITAL LETTER K WITH HOOK: Ƙ
-\def\khook {\char"00199 } % LATIN SMALL LETTER K WITH HOOK: ƙ
-\def\lbar {\char"0019A } % LATIN SMALL LETTER L WITH BAR: ƚ
-\def\Ohorn {\char"001A0 } % LATIN CAPITAL LETTER O WITH HORN: Ơ
-\def\ohorn {\char"001A1 } % LATIN SMALL LETTER O WITH HORN: ơ
-\def\Phook {\char"001A4 } % LATIN CAPITAL LETTER P WITH HOOK: Ƥ
-\def\phook {\char"001A5 } % LATIN SMALL LETTER P WITH HOOK: ƥ
-\def\Thook {\char"001AC } % LATIN CAPITAL LETTER T WITH HOOK: Ƭ
-\def\thook {\char"001AD } % LATIN SMALL LETTER T WITH HOOK: ƭ
-\def\Uhorn {\char"001AF } % LATIN CAPITAL LETTER U WITH HORN: Ư
-\def\uhorn {\char"001B0 } % LATIN SMALL LETTER U WITH HORN: ư
-\def\Uhook {\char"001B2 } % LATIN CAPITAL LETTER V WITH HOOK: Ʋ
-\def\Yhook {\char"001B3 } % LATIN CAPITAL LETTER Y WITH HOOK: Ƴ
-\def\yhook {\char"001B4 } % LATIN SMALL LETTER Y WITH HOOK: ƴ
-\def\Zstroke {\char"001B5 } % LATIN CAPITAL LETTER Z WITH STROKE: Ƶ
-\def\zstroke {\char"001B6 } % LATIN SMALL LETTER Z WITH STROKE: ƶ
-\def\DZcaronligature {\char"001C4 } % LATIN CAPITAL LETTER DZ WITH CARON: DŽ
-\def\Dzcaronligature {\char"001C5 } % LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON: Dž
-\def\dzcaronligature {\char"001C6 } % LATIN SMALL LETTER DZ WITH CARON: dž
-\def\LJligature {\char"001C7 } % LATIN CAPITAL LETTER LJ: LJ
-\def\Ljligature {\char"001C8 } % LATIN CAPITAL LETTER L WITH SMALL LETTER J: Lj
-\def\ljligature {\char"001C9 } % LATIN SMALL LETTER LJ: lj
-\def\NJligature {\char"001CA } % LATIN CAPITAL LETTER NJ: NJ
-\def\Njligature {\char"001CB } % LATIN CAPITAL LETTER N WITH SMALL LETTER J: Nj
-\def\njligature {\char"001CC } % LATIN SMALL LETTER NJ: nj
-\def\Acaron {\char"001CD } % LATIN CAPITAL LETTER A WITH CARON: Ǎ
-\def\acaron {\char"001CE } % LATIN SMALL LETTER A WITH CARON: ǎ
-\def\Icaron {\char"001CF } % LATIN CAPITAL LETTER I WITH CARON: Ǐ
-\def\icaron {\char"001D0 } % LATIN SMALL LETTER I WITH CARON: ǐ
-\def\Ocaron {\char"001D1 } % LATIN CAPITAL LETTER O WITH CARON: Ǒ
-\def\ocaron {\char"001D2 } % LATIN SMALL LETTER O WITH CARON: ǒ
-\def\Ucaron {\char"001D3 } % LATIN CAPITAL LETTER U WITH CARON: Ǔ
-\def\ucaron {\char"001D4 } % LATIN SMALL LETTER U WITH CARON: ǔ
-\def\Udiaeresismacron {\char"001D5 } % LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON: Ǖ
-\def\udiaeresismacron {\char"001D6 } % LATIN SMALL LETTER U WITH DIAERESIS AND MACRON: ǖ
-\def\Udiaeresisacute {\char"001D7 } % LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE: Ǘ
-\def\udiaeresisacute {\char"001D8 } % LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE: ǘ
-\def\Udiaeresiscaron {\char"001D9 } % LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON: Ǚ
-\def\udiaeresiscaron {\char"001DA } % LATIN SMALL LETTER U WITH DIAERESIS AND CARON: ǚ
-\def\Udiaeresisgrave {\char"001DB } % LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE: Ǜ
-\def\udiaeresisgrave {\char"001DC } % LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE: ǜ
-\def\Adiaeresismacron {\char"001DE } % LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON: Ǟ
-\def\adiaeresismacron {\char"001DF } % LATIN SMALL LETTER A WITH DIAERESIS AND MACRON: ǟ
-\def\Adotaccentmacron {\char"001E0 } % LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON: Ǡ
-\def\adotaccentmacron {\char"001E1 } % LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON: ǡ
-\def\AEmacron {\char"001E2 } % LATIN CAPITAL LETTER AE WITH MACRON: Ǣ
-\def\aemacron {\char"001E3 } % LATIN SMALL LETTER AE WITH MACRON: ǣ
-\def\Gstroke {\char"001E4 } % LATIN CAPITAL LETTER G WITH STROKE: Ǥ
-\def\gstroke {\char"001E5 } % LATIN SMALL LETTER G WITH STROKE: ǥ
-\def\Gcaron {\char"001E6 } % LATIN CAPITAL LETTER G WITH CARON: Ǧ
-\def\gcaron {\char"001E7 } % LATIN SMALL LETTER G WITH CARON: ǧ
-\def\Kcaron {\char"001E8 } % LATIN CAPITAL LETTER K WITH CARON: Ǩ
-\def\kcaron {\char"001E9 } % LATIN SMALL LETTER K WITH CARON: ǩ
-\def\Oogonek {\char"001EA } % LATIN CAPITAL LETTER O WITH OGONEK: Ǫ
-\def\oogonek {\char"001EB } % LATIN SMALL LETTER O WITH OGONEK: ǫ
-\def\Oogonekmacron {\char"001EC } % LATIN CAPITAL LETTER O WITH OGONEK AND MACRON: Ǭ
-\def\oogonekmacron {\char"001ED } % LATIN SMALL LETTER O WITH OGONEK AND MACRON: ǭ
-\def\jcaron {\char"001F0 } % LATIN SMALL LETTER J WITH CARON: ǰ
-\def\DZligature {\char"001F1 } % LATIN CAPITAL LETTER DZ: DZ
-\def\Dzligature {\char"001F2 } % LATIN CAPITAL LETTER D WITH SMALL LETTER Z: Dz
-\def\dzligature {\char"001F3 } % LATIN SMALL LETTER DZ: dz
-\def\Gacute {\char"001F4 } % LATIN CAPITAL LETTER G WITH ACUTE: Ǵ
-\def\gacute {\char"001F5 } % LATIN SMALL LETTER G WITH ACUTE: ǵ
-\def\Ngrave {\char"001F8 } % LATIN CAPITAL LETTER N WITH GRAVE: Ǹ
-\def\ngrave {\char"001F9 } % LATIN SMALL LETTER N WITH GRAVE: ǹ
-\def\Aringacute {\char"001FA } % LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE: Ǻ
-\def\aringacute {\char"001FB } % LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE: ǻ
-\def\AEacute {\char"001FC } % LATIN CAPITAL LETTER AE WITH ACUTE: Ǽ
-\def\aeacute {\char"001FD } % LATIN SMALL LETTER AE WITH ACUTE: ǽ
-\def\Ostrokeacute {\char"001FE } % LATIN CAPITAL LETTER O WITH STROKE AND ACUTE: Ǿ
-\def\ostrokeacute {\char"001FF } % LATIN SMALL LETTER O WITH STROKE AND ACUTE: ǿ
-\def\Adoublegrave {\char"00200 } % LATIN CAPITAL LETTER A WITH DOUBLE GRAVE: Ȁ
-\def\adoublegrave {\char"00201 } % LATIN SMALL LETTER A WITH DOUBLE GRAVE: ȁ
-\def\Ainvertedbreve {\char"00202 } % LATIN CAPITAL LETTER A WITH INVERTED BREVE: Ȃ
-\def\ainvertedbreve {\char"00203 } % LATIN SMALL LETTER A WITH INVERTED BREVE: ȃ
-\def\Edoublegrave {\char"00204 } % LATIN CAPITAL LETTER E WITH DOUBLE GRAVE: Ȅ
-\def\edoublegrave {\char"00205 } % LATIN SMALL LETTER E WITH DOUBLE GRAVE: ȅ
-\def\Einvertedbreve {\char"00206 } % LATIN CAPITAL LETTER E WITH INVERTED BREVE: Ȇ
-\def\einvertedbreve {\char"00207 } % LATIN SMALL LETTER E WITH INVERTED BREVE: ȇ
-\def\Idoublegrave {\char"00208 } % LATIN CAPITAL LETTER I WITH DOUBLE GRAVE: Ȉ
-\def\idoublegrave {\char"00209 } % LATIN SMALL LETTER I WITH DOUBLE GRAVE: ȉ
-\def\Iinvertedbreve {\char"0020A } % LATIN CAPITAL LETTER I WITH INVERTED BREVE: Ȋ
-\def\iinvertedbreve {\char"0020B } % LATIN SMALL LETTER I WITH INVERTED BREVE: ȋ
-\def\Odoublegrave {\char"0020C } % LATIN CAPITAL LETTER O WITH DOUBLE GRAVE: Ȍ
-\def\odoublegrave {\char"0020D } % LATIN SMALL LETTER O WITH DOUBLE GRAVE: ȍ
-\def\Oinvertedbreve {\char"0020E } % LATIN CAPITAL LETTER O WITH INVERTED BREVE: Ȏ
-\def\oinvertedbreve {\char"0020F } % LATIN SMALL LETTER O WITH INVERTED BREVE: ȏ
-\def\Rdoublegrave {\char"00210 } % LATIN CAPITAL LETTER R WITH DOUBLE GRAVE: Ȑ
-\def\rdoublegrave {\char"00211 } % LATIN SMALL LETTER R WITH DOUBLE GRAVE: ȑ
-\def\Rinvertedbreve {\char"00212 } % LATIN CAPITAL LETTER R WITH INVERTED BREVE: Ȓ
-\def\rinvertedbreve {\char"00213 } % LATIN SMALL LETTER R WITH INVERTED BREVE: ȓ
-\def\Udoublegrave {\char"00214 } % LATIN CAPITAL LETTER U WITH DOUBLE GRAVE: Ȕ
-\def\udoublegrave {\char"00215 } % LATIN SMALL LETTER U WITH DOUBLE GRAVE: ȕ
-\def\Uinvertedbreve {\char"00216 } % LATIN CAPITAL LETTER U WITH INVERTED BREVE: Ȗ
-\def\uinvertedbreve {\char"00217 } % LATIN SMALL LETTER U WITH INVERTED BREVE: ȗ
-\def\Scommaaccent {\char"00218 } % LATIN CAPITAL LETTER S WITH COMMA BELOW: Ș
-\def\scommaaccent {\char"00219 } % LATIN SMALL LETTER S WITH COMMA BELOW: ș
-\def\Tcommaaccent {\char"0021A } % LATIN CAPITAL LETTER T WITH COMMA BELOW: Ț
-\def\tcommaaccent {\char"0021B } % LATIN SMALL LETTER T WITH COMMA BELOW: ț
-\def\Hcaron {\char"0021E } % LATIN CAPITAL LETTER H WITH CARON: Ȟ
-\def\hcaron {\char"0021F } % LATIN SMALL LETTER H WITH CARON: ȟ
-\def\dcurl {\char"00221 } % LATIN SMALL LETTER D WITH CURL: ȡ
-\def\Zhook {\char"00224 } % LATIN CAPITAL LETTER Z WITH HOOK: Ȥ
-\def\zhook {\char"00225 } % LATIN SMALL LETTER Z WITH HOOK: ȥ
-\def\Adotaccent {\char"00226 } % LATIN CAPITAL LETTER A WITH DOT ABOVE: Ȧ
-\def\adotaccent {\char"00227 } % LATIN SMALL LETTER A WITH DOT ABOVE: ȧ
-\def\Ecedilla {\char"00228 } % LATIN CAPITAL LETTER E WITH CEDILLA: Ȩ
-\def\ecedilla {\char"00229 } % LATIN SMALL LETTER E WITH CEDILLA: ȩ
-\def\Odiaeresismacron {\char"0022A } % LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON: Ȫ
-\def\odiaeresismacron {\char"0022B } % LATIN SMALL LETTER O WITH DIAERESIS AND MACRON: ȫ
-\def\Otildemacron {\char"0022C } % LATIN CAPITAL LETTER O WITH TILDE AND MACRON: Ȭ
-\def\otildemacron {\char"0022D } % LATIN SMALL LETTER O WITH TILDE AND MACRON: ȭ
-\def\Odotaccent {\char"0022E } % LATIN CAPITAL LETTER O WITH DOT ABOVE: Ȯ
-\def\odotaccent {\char"0022F } % LATIN SMALL LETTER O WITH DOT ABOVE: ȯ
-\def\Odotaccentmacron {\char"00230 } % LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON: Ȱ
-\def\odotaccentmacron {\char"00231 } % LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON: ȱ
-\def\Ymacron {\char"00232 } % LATIN CAPITAL LETTER Y WITH MACRON: Ȳ
-\def\ymacron {\char"00233 } % LATIN SMALL LETTER Y WITH MACRON: ȳ
-\def\lcurl {\char"00234 } % LATIN SMALL LETTER L WITH CURL: ȴ
-\def\ncurl {\char"00235 } % LATIN SMALL LETTER N WITH CURL: ȵ
-\def\tcurl {\char"00236 } % LATIN SMALL LETTER T WITH CURL: ȶ
-\def\dotlessj {\char"00237 } % LATIN SMALL LETTER DOTLESS J: ȷ
-\def\Astroke {\char"0023A } % LATIN CAPITAL LETTER A WITH STROKE: Ⱥ
-\def\Cstroke {\char"0023B } % LATIN CAPITAL LETTER C WITH STROKE: Ȼ
-\def\cstroke {\char"0023C } % LATIN SMALL LETTER C WITH STROKE: ȼ
-\def\Lbar {\char"0023D } % LATIN CAPITAL LETTER L WITH BAR: Ƚ
-\def\bhook {\char"00253 } % LATIN SMALL LETTER B WITH HOOK: ɓ
-\def\ccurl {\char"00255 } % LATIN SMALL LETTER C WITH CURL: ɕ
-\def\dtail {\char"00256 } % LATIN SMALL LETTER D WITH TAIL: ɖ
-\def\dhook {\char"00257 } % LATIN SMALL LETTER D WITH HOOK: ɗ
-\def\schwa {\char"00259 } % LATIN SMALL LETTER SCHWA: ə
-\def\schwahook {\char"0025A } % LATIN SMALL LETTER SCHWA WITH HOOK: ɚ
-\def\dotlessjstroke {\char"0025F } % LATIN SMALL LETTER DOTLESS J WITH STROKE: ɟ
-\def\textcircumflex {\char"002C6 } % MODIFIER LETTER CIRCUMFLEX ACCENT: ˆ
-\def\textcaron {\char"002C7 } % CARON: ˇ
-\def\textbreve {\char"002D8 } % BREVE: ˘
-\def\textdotaccent {\char"002D9 } % DOT ABOVE: ˙
-\def\textring {\char"002DA } % RING ABOVE: ˚
-\def\textogonek {\char"002DB } % OGONEK: ˛
-\def\texttilde {\char"002DC } % SMALL TILDE: ˜
-\def\texthungarumlaut {\char"002DD } % DOUBLE ACUTE ACCENT: ˝
-\def\textbottomdot {\char"00323 } % COMBINING DOT BELOW: ̣
-\def\textbottomcomma {\char"00326 } % COMBINING COMMA BELOW: ̦
-\def\greektonos {\char"00384 } % GREEK TONOS: ΄
-\def\greekdialytikatonos {\char"00385 } % GREEK DIALYTIKA TONOS: ΅
-\def\greekAlphatonos {\char"00386 } % GREEK CAPITAL LETTER ALPHA WITH TONOS: Ά
-\def\greekEpsilontonos {\char"00388 } % GREEK CAPITAL LETTER EPSILON WITH TONOS: Έ
-\def\greekEtatonos {\char"00389 } % GREEK CAPITAL LETTER ETA WITH TONOS: Ή
-\def\greekIotatonos {\char"0038A } % GREEK CAPITAL LETTER IOTA WITH TONOS: Ί
-\def\greekOmicrontonos {\char"0038C } % GREEK CAPITAL LETTER OMICRON WITH TONOS: Ό
-\def\greekUpsilontonos {\char"0038E } % GREEK CAPITAL LETTER UPSILON WITH TONOS: Ύ
-\def\greekOmegatonos {\char"0038F } % GREEK CAPITAL LETTER OMEGA WITH TONOS: Ώ
-\def\greekiotadialytikatonos {\char"00390 } % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS: ΐ
-\def\greekAlpha {\char"00391 } % GREEK CAPITAL LETTER ALPHA: Α
-\def\greekBeta {\char"00392 } % GREEK CAPITAL LETTER BETA: Β
-\def\greekGamma {\char"00393 } % GREEK CAPITAL LETTER GAMMA: Γ
-\def\greekDelta {\char"00394 } % GREEK CAPITAL LETTER DELTA: Δ
-\def\greekEpsilon {\char"00395 } % GREEK CAPITAL LETTER EPSILON: Ε
-\def\greekZeta {\char"00396 } % GREEK CAPITAL LETTER ZETA: Ζ
-\def\greekEta {\char"00397 } % GREEK CAPITAL LETTER ETA: Η
-\def\greekTheta {\char"00398 } % GREEK CAPITAL LETTER THETA: Θ
-\def\greekIota {\char"00399 } % GREEK CAPITAL LETTER IOTA: Ι
-\def\greekKappa {\char"0039A } % GREEK CAPITAL LETTER KAPPA: Κ
-\def\greekLambda {\char"0039B } % GREEK CAPITAL LETTER LAMDA: Λ
-\def\greekMu {\char"0039C } % GREEK CAPITAL LETTER MU: Μ
-\def\greekNu {\char"0039D } % GREEK CAPITAL LETTER NU: Ν
-\def\greekXi {\char"0039E } % GREEK CAPITAL LETTER XI: Ξ
-\def\greekOmicron {\char"0039F } % GREEK CAPITAL LETTER OMICRON: Ο
-\def\greekPi {\char"003A0 } % GREEK CAPITAL LETTER PI: Π
-\def\greekRho {\char"003A1 } % GREEK CAPITAL LETTER RHO: Ρ
-\def\greekSigma {\char"003A3 } % GREEK CAPITAL LETTER SIGMA: Σ
-\def\greekTau {\char"003A4 } % GREEK CAPITAL LETTER TAU: Τ
-\def\greekUpsilon {\char"003A5 } % GREEK CAPITAL LETTER UPSILON: Υ
-\def\greekPhi {\char"003A6 } % GREEK CAPITAL LETTER PHI: Φ
-\def\greekChi {\char"003A7 } % GREEK CAPITAL LETTER CHI: Χ
-\def\greekPsi {\char"003A8 } % GREEK CAPITAL LETTER PSI: Ψ
-\def\greekOmega {\char"003A9 } % GREEK CAPITAL LETTER OMEGA: Ω
-\def\greekIotadialytika {\char"003AA } % GREEK CAPITAL LETTER IOTA WITH DIALYTIKA: Ϊ
-\def\greekUpsilondialytika {\char"003AB } % GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA: Ϋ
-\def\greekalphatonos {\char"003AC } % GREEK SMALL LETTER ALPHA WITH TONOS: ά
-\def\greekepsilontonos {\char"003AD } % GREEK SMALL LETTER EPSILON WITH TONOS: έ
-\def\greeketatonos {\char"003AE } % GREEK SMALL LETTER ETA WITH TONOS: ή
-\def\greekiotatonos {\char"003AF } % GREEK SMALL LETTER IOTA WITH TONOS: ί
-\def\greekupsilondialytikatonos {\char"003B0 } % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS: ΰ
-\def\greekalpha {\char"003B1 } % GREEK SMALL LETTER ALPHA: α
-\def\greekbeta {\char"003B2 } % GREEK SMALL LETTER BETA: β
-\def\greekgamma {\char"003B3 } % GREEK SMALL LETTER GAMMA: γ
-\def\greekdelta {\char"003B4 } % GREEK SMALL LETTER DELTA: δ
-\def\greekepsilon {\char"003B5 } % GREEK SMALL LETTER EPSILON: ε
-\def\greekzeta {\char"003B6 } % GREEK SMALL LETTER ZETA: ζ
-\def\greeketa {\char"003B7 } % GREEK SMALL LETTER ETA: η
-\def\greektheta {\char"003B8 } % GREEK SMALL LETTER THETA: θ
-\def\greekiota {\char"003B9 } % GREEK SMALL LETTER IOTA: ι
-\def\greekkappa {\char"003BA } % GREEK SMALL LETTER KAPPA: κ
-\def\greeklambda {\char"003BB } % GREEK SMALL LETTER LAMDA: λ
-\def\greekmu {\char"003BC } % GREEK SMALL LETTER MU: μ
-\def\greeknu {\char"003BD } % GREEK SMALL LETTER NU: ν
-\def\greekxi {\char"003BE } % GREEK SMALL LETTER XI: ξ
-\def\greekomicron {\char"003BF } % GREEK SMALL LETTER OMICRON: ο
-\def\greekpi {\char"003C0 } % GREEK SMALL LETTER PI: π
-\def\greekrho {\char"003C1 } % GREEK SMALL LETTER RHO: ρ
-\def\greekfinalsigma {\char"003C2 } % GREEK SMALL LETTER FINAL SIGMA: ς
-\def\greeksigma {\char"003C3 } % GREEK SMALL LETTER SIGMA: σ
-\def\greektau {\char"003C4 } % GREEK SMALL LETTER TAU: τ
-\def\greekupsilon {\char"003C5 } % GREEK SMALL LETTER UPSILON: υ
-\def\greekphi {\char"003C6 } % GREEK SMALL LETTER PHI: φ
-\def\greekchi {\char"003C7 } % GREEK SMALL LETTER CHI: χ
-\def\greekpsi {\char"003C8 } % GREEK SMALL LETTER PSI: ψ
-\def\greekomega {\char"003C9 } % GREEK SMALL LETTER OMEGA: ω
-\def\greekiotadialytika {\char"003CA } % GREEK SMALL LETTER IOTA WITH DIALYTIKA: ϊ
-\def\greekupsilondiaeresis {\char"003CB } % GREEK SMALL LETTER UPSILON WITH DIALYTIKA: ϋ
-\def\greekomicrontonos {\char"003CC } % GREEK SMALL LETTER OMICRON WITH TONOS: ό
-\def\greekupsilontonos {\char"003CD } % GREEK SMALL LETTER UPSILON WITH TONOS: ύ
-\def\greekomegatonos {\char"003CE } % GREEK SMALL LETTER OMEGA WITH TONOS: ώ
-\def\greekbetaalt {\char"003D0 } % GREEK BETA SYMBOL: ϐ
-\def\greekthetaalt {\char"003D1 } % GREEK THETA SYMBOL: ϑ
-\def\greekphialt {\char"003D5 } % GREEK PHI SYMBOL: ϕ
-\def\greekpialt {\char"003D6 } % GREEK PI SYMBOL: ϖ
-\def\greekkoppa {\char"003D9 } % GREEK SMALL LETTER ARCHAIC KOPPA: ϙ
-\def\greekstigma {\char"003DB } % GREEK SMALL LETTER STIGMA: ϛ
-\def\greekdigamma {\char"003DD } % GREEK SMALL LETTER DIGAMMA: ϝ
-\def\greeknumkoppa {\char"003DF } % GREEK SMALL LETTER KOPPA: ϟ
-\def\greeksampi {\char"003E1 } % GREEK SMALL LETTER SAMPI: ϡ
-\def\greekrhoalt {\char"003F1 } % GREEK RHO SYMBOL: ϱ
-\def\greeksigmalunate {\char"003F2 } % GREEK LUNATE SIGMA SYMBOL: ϲ
-\def\greekepsilonalt {\char"003F5 } % GREEK LUNATE EPSILON SYMBOL: ϵ
-\def\greekSigmalunate {\char"003F9 } % GREEK CAPITAL LUNATE SIGMA SYMBOL: Ϲ
-\def\cyrillicEgrave {\char"00400 } % CYRILLIC CAPITAL LETTER IE WITH GRAVE: Ѐ
-\def\cyrillicYO {\char"00401 } % CYRILLIC CAPITAL LETTER IO: Ё
-\def\cyrillicDJE {\char"00402 } % CYRILLIC CAPITAL LETTER DJE: Ђ
-\def\cyrillicGJE {\char"00403 } % CYRILLIC CAPITAL LETTER GJE: Ѓ
-\def\cyrillicIE {\char"00404 } % CYRILLIC CAPITAL LETTER UKRAINIAN IE: Є
-\def\cyrillicDZE {\char"00405 } % CYRILLIC CAPITAL LETTER DZE: Ѕ
-\def\cyrillicII {\char"00406 } % CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I: І
-\def\cyrillicYI {\char"00407 } % CYRILLIC CAPITAL LETTER YI: Ї
-\def\cyrillicJE {\char"00408 } % CYRILLIC CAPITAL LETTER JE: Ј
-\def\cyrillicLJE {\char"00409 } % CYRILLIC CAPITAL LETTER LJE: Љ
-\def\cyrillicNJE {\char"0040A } % CYRILLIC CAPITAL LETTER NJE: Њ
-\def\cyrillicTSHE {\char"0040B } % CYRILLIC CAPITAL LETTER TSHE: Ћ
-\def\cyrillicKJE {\char"0040C } % CYRILLIC CAPITAL LETTER KJE: Ќ
-\def\cyrillicIgrave {\char"0040D } % CYRILLIC CAPITAL LETTER I WITH GRAVE: Ѝ
-\def\cyrillicUSHRT {\char"0040E } % CYRILLIC CAPITAL LETTER SHORT U: Ў
-\def\cyrillicDZHE {\char"0040F } % CYRILLIC CAPITAL LETTER DZHE: Џ
-\def\cyrillicA {\char"00410 } % CYRILLIC CAPITAL LETTER A: А
-\def\cyrillicB {\char"00411 } % CYRILLIC CAPITAL LETTER BE: Б
-\def\cyrillicV {\char"00412 } % CYRILLIC CAPITAL LETTER VE: В
-\def\cyrillicG {\char"00413 } % CYRILLIC CAPITAL LETTER GHE: Г
-\def\cyrillicD {\char"00414 } % CYRILLIC CAPITAL LETTER DE: Д
-\def\cyrillicE {\char"00415 } % CYRILLIC CAPITAL LETTER IE: Е
-\def\cyrillicZH {\char"00416 } % CYRILLIC CAPITAL LETTER ZHE: Ж
-\def\cyrillicZ {\char"00417 } % CYRILLIC CAPITAL LETTER ZE: З
-\def\cyrillicI {\char"00418 } % CYRILLIC CAPITAL LETTER I: И
-\def\cyrillicISHRT {\char"00419 } % CYRILLIC CAPITAL LETTER SHORT I: Й
-\def\cyrillicK {\char"0041A } % CYRILLIC CAPITAL LETTER KA: К
-\def\cyrillicL {\char"0041B } % CYRILLIC CAPITAL LETTER EL: Л
-\def\cyrillicM {\char"0041C } % CYRILLIC CAPITAL LETTER EM: М
-\def\cyrillicN {\char"0041D } % CYRILLIC CAPITAL LETTER EN: Н
-\def\cyrillicO {\char"0041E } % CYRILLIC CAPITAL LETTER O: О
-\def\cyrillicP {\char"0041F } % CYRILLIC CAPITAL LETTER PE: П
-\def\cyrillicR {\char"00420 } % CYRILLIC CAPITAL LETTER ER: Р
-\def\cyrillicS {\char"00421 } % CYRILLIC CAPITAL LETTER ES: С
-\def\cyrillicT {\char"00422 } % CYRILLIC CAPITAL LETTER TE: Т
-\def\cyrillicU {\char"00423 } % CYRILLIC CAPITAL LETTER U: У
-\def\cyrillicF {\char"00424 } % CYRILLIC CAPITAL LETTER EF: Ф
-\def\cyrillicH {\char"00425 } % CYRILLIC CAPITAL LETTER HA: Х
-\def\cyrillicC {\char"00426 } % CYRILLIC CAPITAL LETTER TSE: Ц
-\def\cyrillicCH {\char"00427 } % CYRILLIC CAPITAL LETTER CHE: Ч
-\def\cyrillicSH {\char"00428 } % CYRILLIC CAPITAL LETTER SHA: Ш
-\def\cyrillicSHCH {\char"00429 } % CYRILLIC CAPITAL LETTER SHCHA: Щ
-\def\cyrillicHRDSN {\char"0042A } % CYRILLIC CAPITAL LETTER HARD SIGN: Ъ
-\def\cyrillicERY {\char"0042B } % CYRILLIC CAPITAL LETTER YERU: Ы
-\def\cyrillicSFTSN {\char"0042C } % CYRILLIC CAPITAL LETTER SOFT SIGN: Ь
-\def\cyrillicEREV {\char"0042D } % CYRILLIC CAPITAL LETTER E: Э
-\def\cyrillicYU {\char"0042E } % CYRILLIC CAPITAL LETTER YU: Ю
-\def\cyrillicYA {\char"0042F } % CYRILLIC CAPITAL LETTER YA: Я
-\def\cyrillica {\char"00430 } % CYRILLIC SMALL LETTER A: а
-\def\cyrillicb {\char"00431 } % CYRILLIC SMALL LETTER BE: б
-\def\cyrillicv {\char"00432 } % CYRILLIC SMALL LETTER VE: в
-\def\cyrillicg {\char"00433 } % CYRILLIC SMALL LETTER GHE: г
-\def\cyrillicd {\char"00434 } % CYRILLIC SMALL LETTER DE: д
-\def\cyrillice {\char"00435 } % CYRILLIC SMALL LETTER IE: е
-\def\cyrilliczh {\char"00436 } % CYRILLIC SMALL LETTER ZHE: ж
-\def\cyrillicz {\char"00437 } % CYRILLIC SMALL LETTER ZE: з
-\def\cyrillici {\char"00438 } % CYRILLIC SMALL LETTER I: и
-\def\cyrillicishrt {\char"00439 } % CYRILLIC SMALL LETTER SHORT I: й
-\def\cyrillick {\char"0043A } % CYRILLIC SMALL LETTER KA: к
-\def\cyrillicl {\char"0043B } % CYRILLIC SMALL LETTER EL: л
-\def\cyrillicm {\char"0043C } % CYRILLIC SMALL LETTER EM: м
-\def\cyrillicn {\char"0043D } % CYRILLIC SMALL LETTER EN: н
-\def\cyrillico {\char"0043E } % CYRILLIC SMALL LETTER O: о
-\def\cyrillicp {\char"0043F } % CYRILLIC SMALL LETTER PE: п
-\def\cyrillicr {\char"00440 } % CYRILLIC SMALL LETTER ER: р
-\def\cyrillics {\char"00441 } % CYRILLIC SMALL LETTER ES: с
-\def\cyrillict {\char"00442 } % CYRILLIC SMALL LETTER TE: т
-\def\cyrillicu {\char"00443 } % CYRILLIC SMALL LETTER U: у
-\def\cyrillicf {\char"00444 } % CYRILLIC SMALL LETTER EF: ф
-\def\cyrillich {\char"00445 } % CYRILLIC SMALL LETTER HA: х
-\def\cyrillicc {\char"00446 } % CYRILLIC SMALL LETTER TSE: ц
-\def\cyrillicch {\char"00447 } % CYRILLIC SMALL LETTER CHE: ч
-\def\cyrillicsh {\char"00448 } % CYRILLIC SMALL LETTER SHA: ш
-\def\cyrillicshch {\char"00449 } % CYRILLIC SMALL LETTER SHCHA: щ
-\def\cyrillichrdsn {\char"0044A } % CYRILLIC SMALL LETTER HARD SIGN: ъ
-\def\cyrillicery {\char"0044B } % CYRILLIC SMALL LETTER YERU: ы
-\def\cyrillicsftsn {\char"0044C } % CYRILLIC SMALL LETTER SOFT SIGN: ь
-\def\cyrillicerev {\char"0044D } % CYRILLIC SMALL LETTER E: э
-\def\cyrillicyu {\char"0044E } % CYRILLIC SMALL LETTER YU: ю
-\def\cyrillicya {\char"0044F } % CYRILLIC SMALL LETTER YA: я
-\def\cyrillicegrave {\char"00450 } % CYRILLIC SMALL LETTER IE WITH GRAVE: ѐ
-\def\cyrillicyo {\char"00451 } % CYRILLIC SMALL LETTER IO: ё
-\def\cyrillicdje {\char"00452 } % CYRILLIC SMALL LETTER DJE: ђ
-\def\cyrillicgje {\char"00453 } % CYRILLIC SMALL LETTER GJE: ѓ
-\def\cyrillicie {\char"00454 } % CYRILLIC SMALL LETTER UKRAINIAN IE: є
-\def\cyrillicdze {\char"00455 } % CYRILLIC SMALL LETTER DZE: ѕ
-\def\cyrillicii {\char"00456 } % CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I: і
-\def\cyrillicyi {\char"00457 } % CYRILLIC SMALL LETTER YI: ї
-\def\cyrillicje {\char"00458 } % CYRILLIC SMALL LETTER JE: ј
-\def\cyrilliclje {\char"00459 } % CYRILLIC SMALL LETTER LJE: љ
-\def\cyrillicnje {\char"0045A } % CYRILLIC SMALL LETTER NJE: њ
-\def\cyrillictshe {\char"0045B } % CYRILLIC SMALL LETTER TSHE: ћ
-\def\cyrillickje {\char"0045C } % CYRILLIC SMALL LETTER KJE: ќ
-\def\cyrillicigrave {\char"0045D } % CYRILLIC SMALL LETTER I WITH GRAVE: ѝ
-\def\cyrillicushrt {\char"0045E } % CYRILLIC SMALL LETTER SHORT U: ў
-\def\cyrillicdzhe {\char"0045F } % CYRILLIC SMALL LETTER DZHE: џ
-\def\cyrillicOMEGA {\char"00460 } % CYRILLIC CAPITAL LETTER OMEGA: Ѡ
-\def\cyrillicomega {\char"00461 } % CYRILLIC SMALL LETTER OMEGA: ѡ
-\def\cyrillicYAT {\char"00462 } % CYRILLIC CAPITAL LETTER YAT: Ѣ
-\def\cyrillicyat {\char"00463 } % CYRILLIC SMALL LETTER YAT: ѣ
-\def\cyrillicEiotified {\char"00464 } % CYRILLIC CAPITAL LETTER IOTIFIED E: Ѥ
-\def\cyrilliceiotified {\char"00465 } % CYRILLIC SMALL LETTER IOTIFIED E: ѥ
-\def\cyrillicLITTLEYUS {\char"00466 } % CYRILLIC CAPITAL LETTER LITTLE YUS: Ѧ
-\def\cyrilliclittleyus {\char"00467 } % CYRILLIC SMALL LETTER LITTLE YUS: ѧ
-\def\cyrillicLITTLEYUSiotified {\char"00468 } % CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS: Ѩ
-\def\cyrilliclittleyusiotified {\char"00469 } % CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS: ѩ
-\def\cyrillicBIGYUS {\char"0046A } % CYRILLIC CAPITAL LETTER BIG YUS: Ѫ
-\def\cyrillicbigyus {\char"0046B } % CYRILLIC SMALL LETTER BIG YUS: ѫ
-\def\cyrillicBIGYUSiotified {\char"0046C } % CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS: Ѭ
-\def\cyrillicbigyusiotified {\char"0046D } % CYRILLIC SMALL LETTER IOTIFIED BIG YUS: ѭ
-\def\cyrillicKSI {\char"0046E } % CYRILLIC CAPITAL LETTER KSI: Ѯ
-\def\cyrillicksi {\char"0046F } % CYRILLIC SMALL LETTER KSI: ѯ
-\def\cyrillicPSI {\char"00470 } % CYRILLIC CAPITAL LETTER PSI: Ѱ
-\def\cyrillicpsi {\char"00471 } % CYRILLIC SMALL LETTER PSI: ѱ
-\def\cyrillicFITA {\char"00472 } % CYRILLIC CAPITAL LETTER FITA: Ѳ
-\def\cyrillicfita {\char"00473 } % CYRILLIC SMALL LETTER FITA: ѳ
-\def\cyrillicIZHITSA {\char"00474 } % CYRILLIC CAPITAL LETTER IZHITSA: Ѵ
-\def\cyrillicizhitsa {\char"00475 } % CYRILLIC SMALL LETTER IZHITSA: ѵ
-\def\cyrillicIZHITSAdoublegrave {\char"00476 } % CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT: Ѷ
-\def\cyrillicizhitsadoublegrave {\char"00477 } % CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT: ѷ
-\def\cyrillicUK {\char"00478 } % CYRILLIC CAPITAL LETTER UK: Ѹ
-\def\cyrillicuk {\char"00479 } % CYRILLIC SMALL LETTER UK: ѹ
-\def\cyrillicOMEGAround {\char"0047A } % CYRILLIC CAPITAL LETTER ROUND OMEGA: Ѻ
-\def\cyrillicomegaround {\char"0047B } % CYRILLIC SMALL LETTER ROUND OMEGA: ѻ
-\def\cyrillicOMEGAtitlo {\char"0047C } % CYRILLIC CAPITAL LETTER OMEGA WITH TITLO: Ѽ
-\def\cyrillicomegatitlo {\char"0047D } % CYRILLIC SMALL LETTER OMEGA WITH TITLO: ѽ
-\def\cyrillicOT {\char"0047E } % CYRILLIC CAPITAL LETTER OT: Ѿ
-\def\cyrillicot {\char"0047F } % CYRILLIC SMALL LETTER OT: ѿ
-\def\cyrillicKOPPA {\char"00480 } % CYRILLIC CAPITAL LETTER KOPPA: Ҁ
-\def\cyrillickoppa {\char"00481 } % CYRILLIC SMALL LETTER KOPPA: ҁ
-\def\cyrillicTITLO {\char"00483 } % COMBINING CYRILLIC TITLO: ҃
-\def\cyrillicPALATALIZATION {\char"00484 } % COMBINING CYRILLIC PALATALIZATION: ҄
-\def\cyrillicDASIAPNEUMATA {\char"00485 } % COMBINING CYRILLIC DASIA PNEUMATA: ҅
-\def\cyrillicPSILIPNEUMATA {\char"00486 } % COMBINING CYRILLIC PSILI PNEUMATA: ҆
-\def\cyrillicISHRTtail {\char"0048A } % CYRILLIC CAPITAL LETTER SHORT I WITH TAIL: Ҋ
-\def\cyrillicishrttail {\char"0048B } % CYRILLIC SMALL LETTER SHORT I WITH TAIL: ҋ
-\def\cyrillicSEMISOFT {\char"0048C } % CYRILLIC CAPITAL LETTER SEMISOFT SIGN: Ҍ
-\def\cyrillicsemisoft {\char"0048D } % CYRILLIC SMALL LETTER SEMISOFT SIGN: ҍ
-\def\cyrillicERtick {\char"0048E } % CYRILLIC CAPITAL LETTER ER WITH TICK: Ҏ
-\def\cyrillicertick {\char"0048F } % CYRILLIC SMALL LETTER ER WITH TICK: ҏ
-\def\cyrillicGHEupturn {\char"00490 } % CYRILLIC CAPITAL LETTER GHE WITH UPTURN: Ґ
-\def\cyrillicgheupturn {\char"00491 } % CYRILLIC SMALL LETTER GHE WITH UPTURN: ґ
-\def\cyrillicGHEstroke {\char"00492 } % CYRILLIC CAPITAL LETTER GHE WITH STROKE: Ғ
-\def\cyrillicghestroke {\char"00493 } % CYRILLIC SMALL LETTER GHE WITH STROKE: ғ
-\def\cyrillicGHEmidhook {\char"00494 } % CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK: Ҕ
-\def\cyrillicghemidhook {\char"00495 } % CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK: ҕ
-\def\cyrillicZHEdescender {\char"00496 } % CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER: Җ
-\def\cyrilliczhedescender {\char"00497 } % CYRILLIC SMALL LETTER ZHE WITH DESCENDER: җ
-\def\cyrillicZDSC {\char"00498 } % CYRILLIC CAPITAL LETTER ZE WITH DESCENDER: Ҙ
-\def\cyrilliczdsc {\char"00499 } % CYRILLIC SMALL LETTER ZE WITH DESCENDER: ҙ
-\def\cyrillicKADC {\char"0049A } % CYRILLIC CAPITAL LETTER KA WITH DESCENDER: Қ
-\def\cyrillickadc {\char"0049B } % CYRILLIC SMALL LETTER KA WITH DESCENDER: қ
-\def\cyrillicKAvertstroke {\char"0049C } % CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE: Ҝ
-\def\cyrillickavertstroke {\char"0049D } % CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE: ҝ
-\def\cyrillicKAstroke {\char"0049E } % CYRILLIC CAPITAL LETTER KA WITH STROKE: Ҟ
-\def\cyrillickastroke {\char"0049F } % CYRILLIC SMALL LETTER KA WITH STROKE: ҟ
-\def\cyrillicKAbashkir {\char"004A0 } % CYRILLIC CAPITAL LETTER BASHKIR KA: Ҡ
-\def\cyrillickabashkir {\char"004A1 } % CYRILLIC SMALL LETTER BASHKIR KA: ҡ
-\def\cyrillicENDC {\char"004A2 } % CYRILLIC CAPITAL LETTER EN WITH DESCENDER: Ң
-\def\cyrillicendc {\char"004A3 } % CYRILLIC SMALL LETTER EN WITH DESCENDER: ң
-\def\cyrillicENGHE {\char"004A4 } % CYRILLIC CAPITAL LIGATURE EN GHE: Ҥ
-\def\cyrillicenghe {\char"004A5 } % CYRILLIC SMALL LIGATURE EN GHE: ҥ
-\def\cyrillicPEmidhook {\char"004A6 } % CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK: Ҧ
-\def\cyrillicpemidhook {\char"004A7 } % CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK: ҧ
-\def\cyrillicHA {\char"004A8 } % CYRILLIC CAPITAL LETTER ABKHASIAN HA: Ҩ
-\def\cyrillicha {\char"004A9 } % CYRILLIC SMALL LETTER ABKHASIAN HA: ҩ
-\def\cyrillicSDSC {\char"004AA } % CYRILLIC CAPITAL LETTER ES WITH DESCENDER: Ҫ
-\def\cyrillicsdsc {\char"004AB } % CYRILLIC SMALL LETTER ES WITH DESCENDER: ҫ
-\def\cyrillicTEDC {\char"004AC } % CYRILLIC CAPITAL LETTER TE WITH DESCENDER: Ҭ
-\def\cyrillictedc {\char"004AD } % CYRILLIC SMALL LETTER TE WITH DESCENDER: ҭ
-\def\cyrillicYstr {\char"004AE } % CYRILLIC CAPITAL LETTER STRAIGHT U: Ү
-\def\cyrillicystr {\char"004AF } % CYRILLIC SMALL LETTER STRAIGHT U: ү
-\def\cyrillicYstrstroke {\char"004B0 } % CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE: Ұ
-\def\cyrillicystrstroke {\char"004B1 } % CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE: ұ
-\def\cyrillicHADC {\char"004B2 } % CYRILLIC CAPITAL LETTER HA WITH DESCENDER: Ҳ
-\def\cyrillichadc {\char"004B3 } % CYRILLIC SMALL LETTER HA WITH DESCENDER: ҳ
-\def\cyrillicTETSE {\char"004B4 } % CYRILLIC CAPITAL LIGATURE TE TSE: Ҵ
-\def\cyrillictetse {\char"004B5 } % CYRILLIC SMALL LIGATURE TE TSE: ҵ
-\def\cyrillicCHEDC {\char"004B6 } % CYRILLIC CAPITAL LETTER CHE WITH DESCENDER: Ҷ
-\def\cyrillicchedc {\char"004B7 } % CYRILLIC SMALL LETTER CHE WITH DESCENDER: ҷ
-\def\cyrillicCHEvertstroke {\char"004B8 } % CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE: Ҹ
-\def\cyrillicchevertstroke {\char"004B9 } % CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE: ҹ
-\def\cyrillicSHHA {\char"004BA } % CYRILLIC CAPITAL LETTER SHHA: Һ
-\def\cyrillicshha {\char"004BB } % CYRILLIC SMALL LETTER SHHA: һ
-\def\cyrillicCHEabkhasian {\char"004BC } % CYRILLIC CAPITAL LETTER ABKHASIAN CHE: Ҽ
-\def\cyrilliccheabkhasian {\char"004BD } % CYRILLIC SMALL LETTER ABKHASIAN CHE: ҽ
-\def\cyrillicCHEDCabkhasian {\char"004BE } % CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER: Ҿ
-\def\cyrillicchedcabkhasian {\char"004BF } % CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER: ҿ
-\def\cyrillicPALOCHKA {\char"004C0 } % CYRILLIC LETTER PALOCHKA: Ӏ
-\def\cyrillicZHEbreve {\char"004C1 } % CYRILLIC CAPITAL LETTER ZHE WITH BREVE: Ӂ
-\def\cyrilliczhebreve {\char"004C2 } % CYRILLIC SMALL LETTER ZHE WITH BREVE: ӂ
-\def\cyrillicKAhook {\char"004C3 } % CYRILLIC CAPITAL LETTER KA WITH HOOK: Ӄ
-\def\cyrillickahook {\char"004C4 } % CYRILLIC SMALL LETTER KA WITH HOOK: ӄ
-\def\cyrillicELtail {\char"004C5 } % CYRILLIC CAPITAL LETTER EL WITH TAIL: Ӆ
-\def\cyrilliceltail {\char"004C6 } % CYRILLIC SMALL LETTER EL WITH TAIL: ӆ
-\def\cyrillicENhook {\char"004C7 } % CYRILLIC CAPITAL LETTER EN WITH HOOK: Ӈ
-\def\cyrillicenhook {\char"004C8 } % CYRILLIC SMALL LETTER EN WITH HOOK: ӈ
-\def\cyrillicENtail {\char"004C9 } % CYRILLIC CAPITAL LETTER EN WITH TAIL: Ӊ
-\def\cyrillicentail {\char"004CA } % CYRILLIC SMALL LETTER EN WITH TAIL: ӊ
-\def\cyrillicCHEkhakassian {\char"004CB } % CYRILLIC CAPITAL LETTER KHAKASSIAN CHE: Ӌ
-\def\cyrillicchekhakassian {\char"004CC } % CYRILLIC SMALL LETTER KHAKASSIAN CHE: ӌ
-\def\cyrillicEMtail {\char"004CD } % CYRILLIC CAPITAL LETTER EM WITH TAIL: Ӎ
-\def\cyrillicemtail {\char"004CE } % CYRILLIC SMALL LETTER EM WITH TAIL: ӎ
-\def\cyrillicAbreve {\char"004D0 } % CYRILLIC CAPITAL LETTER A WITH BREVE: Ӑ
-\def\cyrillicabreve {\char"004D1 } % CYRILLIC SMALL LETTER A WITH BREVE: ӑ
-\def\cyrillicAdiaeresis {\char"004D2 } % CYRILLIC CAPITAL LETTER A WITH DIAERESIS: Ӓ
-\def\cyrillicadiaeresis {\char"004D3 } % CYRILLIC SMALL LETTER A WITH DIAERESIS: ӓ
-\def\cyrillicAE {\char"004D4 } % CYRILLIC CAPITAL LIGATURE A IE: Ӕ
-\def\cyrillicae {\char"004D5 } % CYRILLIC SMALL LIGATURE A IE: ӕ
-\def\cyrillicEbreve {\char"004D6 } % CYRILLIC CAPITAL LETTER IE WITH BREVE: Ӗ
-\def\cyrillicebreve {\char"004D7 } % CYRILLIC SMALL LETTER IE WITH BREVE: ӗ
-\def\cyrillicSCHWA {\char"004D8 } % CYRILLIC CAPITAL LETTER SCHWA: Ә
-\def\cyrillicschwa {\char"004D9 } % CYRILLIC SMALL LETTER SCHWA: ә
-\def\cyrillicSCHWAdiaeresis {\char"004DA } % CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS: Ӛ
-\def\cyrillicschwadiaeresis {\char"004DB } % CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS: ӛ
-\def\cyrillicZHEdiaeresis {\char"004DC } % CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS: Ӝ
-\def\cyrilliczhediaeresis {\char"004DD } % CYRILLIC SMALL LETTER ZHE WITH DIAERESIS: ӝ
-\def\cyrillicZEdiaeresis {\char"004DE } % CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS: Ӟ
-\def\cyrilliczediaeresis {\char"004DF } % CYRILLIC SMALL LETTER ZE WITH DIAERESIS: ӟ
-\def\cyrillicDZEabkhasian {\char"004E0 } % CYRILLIC CAPITAL LETTER ABKHASIAN DZE: Ӡ
-\def\cyrillicdzeabkhasian {\char"004E1 } % CYRILLIC SMALL LETTER ABKHASIAN DZE: ӡ
-\def\cyrillicImacron {\char"004E2 } % CYRILLIC CAPITAL LETTER I WITH MACRON: Ӣ
-\def\cyrillicimacron {\char"004E3 } % CYRILLIC SMALL LETTER I WITH MACRON: ӣ
-\def\cyrillicIdiaeresis {\char"004E4 } % CYRILLIC CAPITAL LETTER I WITH DIAERESIS: Ӥ
-\def\cyrillicidiaeresis {\char"004E5 } % CYRILLIC SMALL LETTER I WITH DIAERESIS: ӥ
-\def\cyrillicOdiaeresis {\char"004E6 } % CYRILLIC CAPITAL LETTER O WITH DIAERESIS: Ӧ
-\def\cyrillicodiaeresis {\char"004E7 } % CYRILLIC SMALL LETTER O WITH DIAERESIS: ӧ
-\def\cyrillicObarred {\char"004E8 } % CYRILLIC CAPITAL LETTER BARRED O: Ө
-\def\cyrillicobarred {\char"004E9 } % CYRILLIC SMALL LETTER BARRED O: ө
-\def\cyrillicObarreddiaeresis {\char"004EA } % CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS: Ӫ
-\def\cyrillicobarreddiaeresis {\char"004EB } % CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS: ӫ
-\def\cyrillicEdiaeresis {\char"004EC } % CYRILLIC CAPITAL LETTER E WITH DIAERESIS: Ӭ
-\def\cyrillicediaeresis {\char"004ED } % CYRILLIC SMALL LETTER E WITH DIAERESIS: ӭ
-\def\cyrillicUmacron {\char"004EE } % CYRILLIC CAPITAL LETTER U WITH MACRON: Ӯ
-\def\cyrillicumacron {\char"004EF } % CYRILLIC SMALL LETTER U WITH MACRON: ӯ
-\def\cyrillicUdiaeresis {\char"004F0 } % CYRILLIC CAPITAL LETTER U WITH DIAERESIS: Ӱ
-\def\cyrillicudiaeresis {\char"004F1 } % CYRILLIC SMALL LETTER U WITH DIAERESIS: ӱ
-\def\cyrillicUdoubleacute {\char"004F2 } % CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE: Ӳ
-\def\cyrillicudoubleacute {\char"004F3 } % CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE: ӳ
-\def\cyrillicCHEdiaeresis {\char"004F4 } % CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS: Ӵ
-\def\cyrillicchediaeresis {\char"004F5 } % CYRILLIC SMALL LETTER CHE WITH DIAERESIS: ӵ
-\def\cyrillicYERUdiaeresis {\char"004F8 } % CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS: Ӹ
-\def\cyrillicyerudiaeresis {\char"004F9 } % CYRILLIC SMALL LETTER YERU WITH DIAERESIS: ӹ
-\def\hebrewAlef {\char"005D0 } % HEBREW LETTER ALEF: א
-\def\hebrewBet {\char"005D1 } % HEBREW LETTER BET: ב
-\def\hebrewGimel {\char"005D2 } % HEBREW LETTER GIMEL: ג
-\def\hebrewDalet {\char"005D3 } % HEBREW LETTER DALET: ד
-\def\hebrewHe {\char"005D4 } % HEBREW LETTER HE: ה
-\def\hebrewVav {\char"005D5 } % HEBREW LETTER VAV: ו
-\def\hebrewZayin {\char"005D6 } % HEBREW LETTER ZAYIN: ז
-\def\hebrewHet {\char"005D7 } % HEBREW LETTER HET: ח
-\def\hebrewTet {\char"005D8 } % HEBREW LETTER TET: ט
-\def\hebrewYod {\char"005D9 } % HEBREW LETTER YOD: י
-\def\hebrewKaffinal {\char"005DA } % HEBREW LETTER FINAL KAF: ך
-\def\hebrewKaf {\char"005DB } % HEBREW LETTER KAF: כ
-\def\hebrewLamed {\char"005DC } % HEBREW LETTER LAMED: ל
-\def\hebrewMemfinal {\char"005DD } % HEBREW LETTER FINAL MEM: ם
-\def\hebrewMem {\char"005DE } % HEBREW LETTER MEM: מ
-\def\hebrewNunfinal {\char"005DF } % HEBREW LETTER FINAL NUN: ן
-\def\hebrewNun {\char"005E0 } % HEBREW LETTER NUN: נ
-\def\hebrewSamekh {\char"005E1 } % HEBREW LETTER SAMEKH: ס
-\def\hebrewAyin {\char"005E2 } % HEBREW LETTER AYIN: ע
-\def\hebrewPefinal {\char"005E3 } % HEBREW LETTER FINAL PE: ף
-\def\hebrewPe {\char"005E4 } % HEBREW LETTER PE: פ
-\def\hebrewTsadifinal {\char"005E5 } % HEBREW LETTER FINAL TSADI: ץ
-\def\hebrewTsadi {\char"005E6 } % HEBREW LETTER TSADI: צ
-\def\hebrewQof {\char"005E7 } % HEBREW LETTER QOF: ק
-\def\hebrewResh {\char"005E8 } % HEBREW LETTER RESH: ר
-\def\hebrewShin {\char"005E9 } % HEBREW LETTER SHIN: ש
-\def\hebrewTav {\char"005EA } % HEBREW LETTER TAV: ת
-\def\Adotbelow {\char"01EA0 } % LATIN CAPITAL LETTER A WITH DOT BELOW: Ạ
-\def\adotbelow {\char"01EA1 } % LATIN SMALL LETTER A WITH DOT BELOW: ạ
-\def\Ahook {\char"01EA2 } % LATIN CAPITAL LETTER A WITH HOOK ABOVE: Ả
-\def\ahook {\char"01EA3 } % LATIN SMALL LETTER A WITH HOOK ABOVE: ả
-\def\Acircumflexacute {\char"01EA4 } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE: Ấ
-\def\acircumflexacute {\char"01EA5 } % LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE: ấ
-\def\Acircumflexgrave {\char"01EA6 } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE: Ầ
-\def\acircumflexgrave {\char"01EA7 } % LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE: ầ
-\def\Acircumflexhook {\char"01EA8 } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE: Ẩ
-\def\acircumflexhook {\char"01EA9 } % LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE: ẩ
-\def\Acircumflextilde {\char"01EAA } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE: Ẫ
-\def\acircumflextilde {\char"01EAB } % LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE: ẫ
-\def\Acircumflexdotbelow {\char"01EAC } % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW: Ậ
-\def\acircumflexdotbelow {\char"01EAD } % LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW: ậ
-\def\Abreveacute {\char"01EAE } % LATIN CAPITAL LETTER A WITH BREVE AND ACUTE: Ắ
-\def\abreveacute {\char"01EAF } % LATIN SMALL LETTER A WITH BREVE AND ACUTE: ắ
-\def\Abrevegrave {\char"01EB0 } % LATIN CAPITAL LETTER A WITH BREVE AND GRAVE: Ằ
-\def\abrevegrave {\char"01EB1 } % LATIN SMALL LETTER A WITH BREVE AND GRAVE: ằ
-\def\Abrevehook {\char"01EB2 } % LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE: Ẳ
-\def\abrevehook {\char"01EB3 } % LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE: ẳ
-\def\Abrevetilde {\char"01EB4 } % LATIN CAPITAL LETTER A WITH BREVE AND TILDE: Ẵ
-\def\abrevetilde {\char"01EB5 } % LATIN SMALL LETTER A WITH BREVE AND TILDE: ẵ
-\def\Abrevedotbelow {\char"01EB6 } % LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW: Ặ
-\def\abrevedotbelow {\char"01EB7 } % LATIN SMALL LETTER A WITH BREVE AND DOT BELOW: ặ
-\def\Edotbelow {\char"01EB8 } % LATIN CAPITAL LETTER E WITH DOT BELOW: Ẹ
-\def\edotbelow {\char"01EB9 } % LATIN SMALL LETTER E WITH DOT BELOW: ẹ
-\def\Ehook {\char"01EBA } % LATIN CAPITAL LETTER E WITH HOOK ABOVE: Ẻ
-\def\ehook {\char"01EBB } % LATIN SMALL LETTER E WITH HOOK ABOVE: ẻ
-\def\Etilde {\char"01EBC } % LATIN CAPITAL LETTER E WITH TILDE: Ẽ
-\def\etilde {\char"01EBD } % LATIN SMALL LETTER E WITH TILDE: ẽ
-\def\Ecircumflexacute {\char"01EBE } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE: Ế
-\def\ecircumflexacute {\char"01EBF } % LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE: ế
-\def\Ecircumflexgrave {\char"01EC0 } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE: Ề
-\def\ecircumflexgrave {\char"01EC1 } % LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE: ề
-\def\Ecircumflexhook {\char"01EC2 } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE: Ể
-\def\ecircumflexhook {\char"01EC3 } % LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE: ể
-\def\Ecircumflextilde {\char"01EC4 } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE: Ễ
-\def\ecircumflextilde {\char"01EC5 } % LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE: ễ
-\def\Ecircumflexdotbelow {\char"01EC6 } % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW: Ệ
-\def\ecircumflexdotbelow {\char"01EC7 } % LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW: ệ
-\def\Ihook {\char"01EC8 } % LATIN CAPITAL LETTER I WITH HOOK ABOVE: Ỉ
-\def\ihook {\char"01EC9 } % LATIN SMALL LETTER I WITH HOOK ABOVE: ỉ
-\def\Idotbelow {\char"01ECA } % LATIN CAPITAL LETTER I WITH DOT BELOW: Ị
-\def\idotbelow {\char"01ECB } % LATIN SMALL LETTER I WITH DOT BELOW: ị
-\def\Odotbelow {\char"01ECC } % LATIN CAPITAL LETTER O WITH DOT BELOW: Ọ
-\def\odotbelow {\char"01ECD } % LATIN SMALL LETTER O WITH DOT BELOW: ọ
-\def\Ohook {\char"01ECE } % LATIN CAPITAL LETTER O WITH HOOK ABOVE: Ỏ
-\def\ohook {\char"01ECF } % LATIN SMALL LETTER O WITH HOOK ABOVE: ỏ
-\def\Ocircumflexacute {\char"01ED0 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE: Ố
-\def\ocircumflexacute {\char"01ED1 } % LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE: ố
-\def\Ocircumflexgrave {\char"01ED2 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE: Ồ
-\def\ocircumflexgrave {\char"01ED3 } % LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE: ồ
-\def\Ocircumflexhook {\char"01ED4 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE: Ổ
-\def\ocircumflexhook {\char"01ED5 } % LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE: ổ
-\def\Ocircumflextilde {\char"01ED6 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE: Ỗ
-\def\ocircumflextilde {\char"01ED7 } % LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE: ỗ
-\def\Ocircumflexdotbelow {\char"01ED8 } % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW: Ộ
-\def\ocircumflexdotbelow {\char"01ED9 } % LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW: ộ
-\def\Ohornacute {\char"01EDA } % LATIN CAPITAL LETTER O WITH HORN AND ACUTE: Ớ
-\def\ohornacute {\char"01EDB } % LATIN SMALL LETTER O WITH HORN AND ACUTE: ớ
-\def\Ohorngrave {\char"01EDC } % LATIN CAPITAL LETTER O WITH HORN AND GRAVE: Ờ
-\def\ohorngrave {\char"01EDD } % LATIN SMALL LETTER O WITH HORN AND GRAVE: ờ
-\def\Ohornhook {\char"01EDE } % LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE: Ở
-\def\ohornhook {\char"01EDF } % LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE: ở
-\def\Ohorntilde {\char"01EE0 } % LATIN CAPITAL LETTER O WITH HORN AND TILDE: Ỡ
-\def\ohorntilde {\char"01EE1 } % LATIN SMALL LETTER O WITH HORN AND TILDE: ỡ
-\def\Ohorndotbelow {\char"01EE2 } % LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW: Ợ
-\def\ohorndotbelow {\char"01EE3 } % LATIN SMALL LETTER O WITH HORN AND DOT BELOW: ợ
-\def\Udotbelow {\char"01EE4 } % LATIN CAPITAL LETTER U WITH DOT BELOW: Ụ
-\def\udotbelow {\char"01EE5 } % LATIN SMALL LETTER U WITH DOT BELOW: ụ
-\def\Uhook {\char"01EE6 } % LATIN CAPITAL LETTER U WITH HOOK ABOVE: Ủ
-\def\uhook {\char"01EE7 } % LATIN SMALL LETTER U WITH HOOK ABOVE: ủ
-\def\Uhornacute {\char"01EE8 } % LATIN CAPITAL LETTER U WITH HORN AND ACUTE: Ứ
-\def\uhornacute {\char"01EE9 } % LATIN SMALL LETTER U WITH HORN AND ACUTE: ứ
-\def\Uhorngrave {\char"01EEA } % LATIN CAPITAL LETTER U WITH HORN AND GRAVE: Ừ
-\def\uhorngrave {\char"01EEB } % LATIN SMALL LETTER U WITH HORN AND GRAVE: ừ
-\def\Uhornhook {\char"01EEC } % LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE: Ử
-\def\uhornhook {\char"01EED } % LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE: ử
-\def\Uhorntilde {\char"01EEE } % LATIN CAPITAL LETTER U WITH HORN AND TILDE: Ữ
-\def\uhorntilde {\char"01EEF } % LATIN SMALL LETTER U WITH HORN AND TILDE: ữ
-\def\Uhorndotbelow {\char"01EF0 } % LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW: Ự
-\def\uhorndotbelow {\char"01EF1 } % LATIN SMALL LETTER U WITH HORN AND DOT BELOW: ự
-\def\Ygrave {\char"01EF2 } % LATIN CAPITAL LETTER Y WITH GRAVE: Ỳ
-\def\ygrave {\char"01EF3 } % LATIN SMALL LETTER Y WITH GRAVE: ỳ
-\def\Ydotbelow {\char"01EF4 } % LATIN CAPITAL LETTER Y WITH DOT BELOW: Ỵ
-\def\ydotbelow {\char"01EF5 } % LATIN SMALL LETTER Y WITH DOT BELOW: ỵ
-\def\Yhook {\char"01EF6 } % LATIN CAPITAL LETTER Y WITH HOOK ABOVE: Ỷ
-\def\yhook {\char"01EF7 } % LATIN SMALL LETTER Y WITH HOOK ABOVE: ỷ
-\def\Ytilde {\char"01EF8 } % LATIN CAPITAL LETTER Y WITH TILDE: Ỹ
-\def\ytilde {\char"01EF9 } % LATIN SMALL LETTER Y WITH TILDE: ỹ
-\def\greekalphapsili {\char"01F00 } % GREEK SMALL LETTER ALPHA WITH PSILI: ἀ
-\def\greekalphadasia {\char"01F01 } % GREEK SMALL LETTER ALPHA WITH DASIA: ἁ
-\def\greekalphapsilivaria {\char"01F02 } % GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA: ἂ
-\def\greekalphadasiavaria {\char"01F03 } % GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA: ἃ
-\def\greekalphapsilitonos {\char"01F04 } % GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA: ἄ
-\def\greekalphadasiatonos {\char"01F05 } % GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA: ἅ
-\def\greekalphapsiliperispomeni {\char"01F06 } % GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI: ἆ
-\def\greekalphadasiaperispomeni {\char"01F07 } % GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI: ἇ
-\def\greekAlphapsili {\char"01F08 } % GREEK CAPITAL LETTER ALPHA WITH PSILI: Ἀ
-\def\greekAlphadasia {\char"01F09 } % GREEK CAPITAL LETTER ALPHA WITH DASIA: Ἁ
-\def\greekAlphapsilivaria {\char"01F0A } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA: Ἂ
-\def\greekAlphadasiavaria {\char"01F0B } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA: Ἃ
-\def\greekAlphapsilitonos {\char"01F0C } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA: Ἄ
-\def\greekAlphadasiatonos {\char"01F0D } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA: Ἅ
-\def\greekAlphapsiliperispomeni {\char"01F0E } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI: Ἆ
-\def\greekAlphadasiaperispomeni {\char"01F0F } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI: Ἇ
-\def\greekepsilonpsili {\char"01F10 } % GREEK SMALL LETTER EPSILON WITH PSILI: ἐ
-\def\greekepsilondasia {\char"01F11 } % GREEK SMALL LETTER EPSILON WITH DASIA: ἑ
-\def\greekepsilonpsilivaria {\char"01F12 } % GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA: ἒ
-\def\greekepsilondasiavaria {\char"01F13 } % GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA: ἓ
-\def\greekepsilonpsilitonos {\char"01F14 } % GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA: ἔ
-\def\greekepsilondasiatonos {\char"01F15 } % GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA: ἕ
-\def\greekEpsilonpsili {\char"01F18 } % GREEK CAPITAL LETTER EPSILON WITH PSILI: Ἐ
-\def\greekEpsilondasia {\char"01F19 } % GREEK CAPITAL LETTER EPSILON WITH DASIA: Ἑ
-\def\greekEpsilonpsilivaria {\char"01F1A } % GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA: Ἒ
-\def\greekEpsilondasiavaria {\char"01F1B } % GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA: Ἓ
-\def\greekEpsilonpsilitonos {\char"01F1C } % GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA: Ἔ
-\def\greekEpsilondasiatonos {\char"01F1D } % GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA: Ἕ
-\def\greeketapsili {\char"01F20 } % GREEK SMALL LETTER ETA WITH PSILI: ἠ
-\def\greeketadasia {\char"01F21 } % GREEK SMALL LETTER ETA WITH DASIA: ἡ
-\def\greeketapsilivaria {\char"01F22 } % GREEK SMALL LETTER ETA WITH PSILI AND VARIA: ἢ
-\def\greeketadasiavaria {\char"01F23 } % GREEK SMALL LETTER ETA WITH DASIA AND VARIA: ἣ
-\def\greeketapsilitonos {\char"01F24 } % GREEK SMALL LETTER ETA WITH PSILI AND OXIA: ἤ
-\def\greeketadasiatonos {\char"01F25 } % GREEK SMALL LETTER ETA WITH DASIA AND OXIA: ἥ
-\def\greeketapsiliperispomeni {\char"01F26 } % GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI: ἦ
-\def\greeketadasiaperispomeni {\char"01F27 } % GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI: ἧ
-\def\greekEtapsili {\char"01F28 } % GREEK CAPITAL LETTER ETA WITH PSILI: Ἠ
-\def\greekEtadasia {\char"01F29 } % GREEK CAPITAL LETTER ETA WITH DASIA: Ἡ
-\def\greekEtapsilivaria {\char"01F2A } % GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA: Ἢ
-\def\greekEtadasiavaria {\char"01F2B } % GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA: Ἣ
-\def\greekEtapsilitonos {\char"01F2C } % GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA: Ἤ
-\def\greekEtadasiatonos {\char"01F2D } % GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA: Ἥ
-\def\greekEtapsiliperispomeni {\char"01F2E } % GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI: Ἦ
-\def\greekEtadasiaperispomeni {\char"01F2F } % GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI: Ἧ
-\def\greekiotapsili {\char"01F30 } % GREEK SMALL LETTER IOTA WITH PSILI: ἰ
-\def\greekiotadasia {\char"01F31 } % GREEK SMALL LETTER IOTA WITH DASIA: ἱ
-\def\greekiotapsilivaria {\char"01F32 } % GREEK SMALL LETTER IOTA WITH PSILI AND VARIA: ἲ
-\def\greekiotadasiavaria {\char"01F33 } % GREEK SMALL LETTER IOTA WITH DASIA AND VARIA: ἳ
-\def\greekiotapsilitonos {\char"01F34 } % GREEK SMALL LETTER IOTA WITH PSILI AND OXIA: ἴ
-\def\greekiotadasiatonos {\char"01F35 } % GREEK SMALL LETTER IOTA WITH DASIA AND OXIA: ἵ
-\def\greekiotapsiliperispomeni {\char"01F36 } % GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI: ἶ
-\def\greekiotadasiaperispomeni {\char"01F37 } % GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI: ἷ
-\def\greekIotapsili {\char"01F38 } % GREEK CAPITAL LETTER IOTA WITH PSILI: Ἰ
-\def\greekIotadasia {\char"01F39 } % GREEK CAPITAL LETTER IOTA WITH DASIA: Ἱ
-\def\greekIotapsilivaria {\char"01F3A } % GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA: Ἲ
-\def\greekIotadasiavaria {\char"01F3B } % GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA: Ἳ
-\def\greekIotapsilitonos {\char"01F3C } % GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA: Ἴ
-\def\greekIotadasiatonos {\char"01F3D } % GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA: Ἵ
-\def\greekIotapsiliperispomeni {\char"01F3E } % GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI: Ἶ
-\def\greekIotadasiaperispomeni {\char"01F3F } % GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI: Ἷ
-\def\greekomicronpsili {\char"01F40 } % GREEK SMALL LETTER OMICRON WITH PSILI: ὀ
-\def\greekomicrondasia {\char"01F41 } % GREEK SMALL LETTER OMICRON WITH DASIA: ὁ
-\def\greekomicronpsilivaria {\char"01F42 } % GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA: ὂ
-\def\greekomicrondasiavaria {\char"01F43 } % GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA: ὃ
-\def\greekomicronpsilitonos {\char"01F44 } % GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA: ὄ
-\def\greekomicrondasiatonos {\char"01F45 } % GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA: ὅ
-\def\greekOmicronpsili {\char"01F48 } % GREEK CAPITAL LETTER OMICRON WITH PSILI: Ὀ
-\def\greekOmicrondasia {\char"01F49 } % GREEK CAPITAL LETTER OMICRON WITH DASIA: Ὁ
-\def\greekOmicronpsilivaria {\char"01F4A } % GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA: Ὂ
-\def\greekOmicrondasiavaria {\char"01F4B } % GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA: Ὃ
-\def\greekOmicronpsilitonos {\char"01F4C } % GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA: Ὄ
-\def\greekOmicrondasiatonos {\char"01F4D } % GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA: Ὅ
-\def\greekupsilonpsili {\char"01F50 } % GREEK SMALL LETTER UPSILON WITH PSILI: ὐ
-\def\greekupsilondasia {\char"01F51 } % GREEK SMALL LETTER UPSILON WITH DASIA: ὑ
-\def\greekupsilonpsilivaria {\char"01F52 } % GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA: ὒ
-\def\greekupsilondasiavaria {\char"01F53 } % GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA: ὓ
-\def\greekupsilonpsilitonos {\char"01F54 } % GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA: ὔ
-\def\greekupsilondasiatonos {\char"01F55 } % GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA: ὕ
-\def\greekupsilonpsiliperispomeni {\char"01F56 } % GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI: ὖ
-\def\greekupsilondasiaperispomeni {\char"01F57 } % GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI: ὗ
-\def\greekUpsilondasia {\char"01F59 } % GREEK CAPITAL LETTER UPSILON WITH DASIA: Ὑ
-\def\greekUpsilondasiavaria {\char"01F5B } % GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA: Ὓ
-\def\greekUpsilondasiatonos {\char"01F5D } % GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA: Ὕ
-\def\greekUpsilondasiaperispomeni {\char"01F5F } % GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI: Ὗ
-\def\greekomegapsili {\char"01F60 } % GREEK SMALL LETTER OMEGA WITH PSILI: ὠ
-\def\greekomegadasia {\char"01F61 } % GREEK SMALL LETTER OMEGA WITH DASIA: ὡ
-\def\greekomegapsilivaria {\char"01F62 } % GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA: ὢ
-\def\greekomegadasiavaria {\char"01F63 } % GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA: ὣ
-\def\greekomegapsilitonos {\char"01F64 } % GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA: ὤ
-\def\greekomegadasiatonos {\char"01F65 } % GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA: ὥ
-\def\greekomegapsiliperispomeni {\char"01F66 } % GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI: ὦ
-\def\greekomegadasiaperispomeni {\char"01F67 } % GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI: ὧ
-\def\greekOmegapsili {\char"01F68 } % GREEK CAPITAL LETTER OMEGA WITH PSILI: Ὠ
-\def\greekOmegadasia {\char"01F69 } % GREEK CAPITAL LETTER OMEGA WITH DASIA: Ὡ
-\def\greekOmegapsilivaria {\char"01F6A } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA: Ὢ
-\def\greekOmegadasiavaria {\char"01F6B } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA: Ὣ
-\def\greekOmegapsilitonos {\char"01F6C } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA: Ὤ
-\def\greekOmegadasiatonos {\char"01F6D } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA: Ὥ
-\def\greekOmegapsiliperispomeni {\char"01F6E } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI: Ὦ
-\def\greekOmegadasiaperispomeni {\char"01F6F } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI: Ὧ
-\def\greekalphavaria {\char"01F70 } % GREEK SMALL LETTER ALPHA WITH VARIA: ὰ
-\def\greekalphaoxia {\char"01F71 } % GREEK SMALL LETTER ALPHA WITH OXIA: ά
-\def\greekepsilonvaria {\char"01F72 } % GREEK SMALL LETTER EPSILON WITH VARIA: ὲ
-\def\greekepsilonoxia {\char"01F73 } % GREEK SMALL LETTER EPSILON WITH OXIA: έ
-\def\greeketavaria {\char"01F74 } % GREEK SMALL LETTER ETA WITH VARIA: ὴ
-\def\greeketaoxia {\char"01F75 } % GREEK SMALL LETTER ETA WITH OXIA: ή
-\def\greekiotavaria {\char"01F76 } % GREEK SMALL LETTER IOTA WITH VARIA: ὶ
-\def\greekiotaoxia {\char"01F77 } % GREEK SMALL LETTER IOTA WITH OXIA: ί
-\def\greekomicronvaria {\char"01F78 } % GREEK SMALL LETTER OMICRON WITH VARIA: ὸ
-\def\greekomicronoxia {\char"01F79 } % GREEK SMALL LETTER OMICRON WITH OXIA: ό
-\def\greekupsilonvaria {\char"01F7A } % GREEK SMALL LETTER UPSILON WITH VARIA: ὺ
-\def\greekupsilonoxia {\char"01F7B } % GREEK SMALL LETTER UPSILON WITH OXIA: ύ
-\def\greekomegavaria {\char"01F7C } % GREEK SMALL LETTER OMEGA WITH VARIA: ὼ
-\def\greekomegaoxia {\char"01F7D } % GREEK SMALL LETTER OMEGA WITH OXIA: ώ
-\def\greekalphaiotasubpsili {\char"01F80 } % GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI: ᾀ
-\def\greekalphaiotasubdasia {\char"01F81 } % GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI: ᾁ
-\def\greekalphaiotasubpsilivaria {\char"01F82 } % GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI: ᾂ
-\def\greekalphaiotasubdasiavaria {\char"01F83 } % GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI: ᾃ
-\def\greekalphaiotasubpsilitonos {\char"01F84 } % GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI: ᾄ
-\def\greekalphaiotasubdasiatonos {\char"01F85 } % GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI: ᾅ
-\def\greekalphaiotasubpsiliperispomeni{\char"01F86 } % GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI: ᾆ
-\def\greekalphaiotasubdasiaperispomeni{\char"01F87 } % GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI: ᾇ
-\def\greekAlphaiotasubpsili {\char"01F88 } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI: ᾈ
-\def\greekAlphaiotasubdasia {\char"01F89 } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI: ᾉ
-\def\greekAlphaiotasubpsilivaria {\char"01F8A } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI: ᾊ
-\def\greekAlphaiotasubdasiavaria {\char"01F8B } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI: ᾋ
-\def\greekAlphaiotasubpsilitonos {\char"01F8C } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI: ᾌ
-\def\greekAlphaiotasubdasiatonos {\char"01F8D } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI: ᾍ
-\def\greekAlphaiotasubpsiliperispomeni{\char"01F8E } % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI: ᾎ
-\def\greekAlphaiotasubdasiaperispomeni{\char"01F8F } % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI: ᾏ
-\def\greeketaiotasubpsili {\char"01F90 } % GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI: ᾐ
-\def\greeketaiotasubdasia {\char"01F91 } % GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI: ᾑ
-\def\greeketaiotasubpsilivaria {\char"01F92 } % GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI: ᾒ
-\def\greeketaiotasubdasiavaria {\char"01F93 } % GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI: ᾓ
-\def\greeketaiotasubpsilitonos {\char"01F94 } % GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI: ᾔ
-\def\greeketaiotasubdasiatonos {\char"01F95 } % GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI: ᾕ
-\def\greeketaiotasubpsiliperispomeni {\char"01F96 } % GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI: ᾖ
-\def\greeketaiotasubdasiaperispomeni {\char"01F97 } % GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI: ᾗ
-\def\greekEtaiotasubpsili {\char"01F98 } % GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI: ᾘ
-\def\greekEtaiotasubdasia {\char"01F99 } % GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI: ᾙ
-\def\greekEtaiotasubpsilivaria {\char"01F9A } % GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI: ᾚ
-\def\greekEtaiotasubdasiavaria {\char"01F9B } % GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI: ᾛ
-\def\greekEtaiotasubpsilitonos {\char"01F9C } % GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI: ᾜ
-\def\greekEtaiotasubdasiatonos {\char"01F9D } % GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI: ᾝ
-\def\greekEtaiotasubpsiliperispomeni {\char"01F9E } % GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI: ᾞ
-\def\greekEtaiotasubdasiaperispomeni {\char"01F9F } % GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI: ᾟ
-\def\greekomegaiotasubpsili {\char"01FA0 } % GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI: ᾠ
-\def\greekomegaiotasubdasia {\char"01FA1 } % GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI: ᾡ
-\def\greekomegaiotasubpsilivaria {\char"01FA2 } % GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI: ᾢ
-\def\greekomegaiotasubdasiavaria {\char"01FA3 } % GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI: ᾣ
-\def\greekomegaiotasubpsilitonos {\char"01FA4 } % GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI: ᾤ
-\def\greekomegaiotasubdasiatonos {\char"01FA5 } % GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI: ᾥ
-\def\greekomegaiotasubpsiliperispomeni{\char"01FA6 } % GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI: ᾦ
-\def\greekomegaiotasubdasiaperispomeni{\char"01FA7 } % GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI: ᾧ
-\def\greekOmegaiotasubpsili {\char"01FA8 } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI: ᾨ
-\def\greekOmegaiotasubdasia {\char"01FA9 } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI: ᾩ
-\def\greekOmegaiotasubpsilivaria {\char"01FAA } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI: ᾪ
-\def\greekOmegaiotasubdasiavaria {\char"01FAB } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI: ᾫ
-\def\greekOmegaiotasubpsilitonos {\char"01FAC } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI: ᾬ
-\def\greekOmegaiotasubdasiatonos {\char"01FAD } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI: ᾭ
-\def\greekOmegaiotasubpsiliperispomeni{\char"01FAE } % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI: ᾮ
-\def\greekOmegaiotasubdasiaperispomeni{\char"01FAF } % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI: ᾯ
-\def\greekalphavrachy {\char"01FB0 } % GREEK SMALL LETTER ALPHA WITH VRACHY: ᾰ
-\def\greekalphamacron {\char"01FB1 } % GREEK SMALL LETTER ALPHA WITH MACRON: ᾱ
-\def\greekalphaiotasubvaria {\char"01FB2 } % GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI: ᾲ
-\def\greekalphaiotasub {\char"01FB3 } % GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI: ᾳ
-\def\greekalphaiotasubtonos {\char"01FB4 } % GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI: ᾴ
-\def\greekalphaperispomeni {\char"01FB6 } % GREEK SMALL LETTER ALPHA WITH PERISPOMENI: ᾶ
-\def\greekalphaiotasubperispomeni {\char"01FB7 } % GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI: ᾷ
-\def\greekAlphavrachy {\char"01FB8 } % GREEK CAPITAL LETTER ALPHA WITH VRACHY: Ᾰ
-\def\greekAlphamacron {\char"01FB9 } % GREEK CAPITAL LETTER ALPHA WITH MACRON: Ᾱ
-\def\greekAlphavaria {\char"01FBA } % GREEK CAPITAL LETTER ALPHA WITH VARIA: Ὰ
-\def\greekAlphatonos {\char"01FBB } % GREEK CAPITAL LETTER ALPHA WITH OXIA: Ά
-\def\greekAlphaiotasub {\char"01FBC } % GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI: ᾼ
-\def\greekCoronis {\char"01FBD } % GREEK KORONIS: ᾽
-\def\greekprosgegrammeni {\char"01FBE } % GREEK PROSGEGRAMMENI: ι
-\def\greekpsili {\char"01FBF } % GREEK PSILI: ᾿
-\def\greekperispomeni {\char"01FC0 } % GREEK PERISPOMENI: ῀
-\def\greekdialytikaperispomeni {\char"01FC1 } % GREEK DIALYTIKA AND PERISPOMENI: ῁
-\def\greeketaiotasubvaria {\char"01FC2 } % GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI: ῂ
-\def\greeketaiotasub {\char"01FC3 } % GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI: ῃ
-\def\greeketaiotasubtonos {\char"01FC4 } % GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI: ῄ
-\def\greeketaperispomeni {\char"01FC6 } % GREEK SMALL LETTER ETA WITH PERISPOMENI: ῆ
-\def\greeketaiotasubperispomeni {\char"01FC7 } % GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI: ῇ
-\def\greekEpsilonvaria {\char"01FC8 } % GREEK CAPITAL LETTER EPSILON WITH VARIA: Ὲ
-\def\greekEpsilontonos {\char"01FC9 } % GREEK CAPITAL LETTER EPSILON WITH OXIA: Έ
-\def\greekEtavaria {\char"01FCA } % GREEK CAPITAL LETTER ETA WITH VARIA: Ὴ
-\def\greekEtatonos {\char"01FCB } % GREEK CAPITAL LETTER ETA WITH OXIA: Ή
-\def\greekEtaiotasub {\char"01FCC } % GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI: ῌ
-\def\greekpsilivaria {\char"01FCD } % GREEK PSILI AND VARIA: ῍
-\def\greekpsilitonos {\char"01FCE } % GREEK PSILI AND OXIA: ῎
-\def\greekpsiliperispomeni {\char"01FCF } % GREEK PSILI AND PERISPOMENI: ῏
-\def\greekiotavrachy {\char"01FD0 } % GREEK SMALL LETTER IOTA WITH VRACHY: ῐ
-\def\greekiotamacron {\char"01FD1 } % GREEK SMALL LETTER IOTA WITH MACRON: ῑ
-\def\greekiotadialytikavaria {\char"01FD2 } % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA: ῒ
-\def\greekiotadialytikatonos {\char"01FD3 } % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA: ΐ
-\def\greekiotaperispomeni {\char"01FD6 } % GREEK SMALL LETTER IOTA WITH PERISPOMENI: ῖ
-\def\greekiotadialytikaperispomeni {\char"01FD7 } % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI: ῗ
-\def\greekIotavrachy {\char"01FD8 } % GREEK CAPITAL LETTER IOTA WITH VRACHY: Ῐ
-\def\greekIotamacron {\char"01FD9 } % GREEK CAPITAL LETTER IOTA WITH MACRON: Ῑ
-\def\greekIotavaria {\char"01FDA } % GREEK CAPITAL LETTER IOTA WITH VARIA: Ὶ
-\def\greekIotatonos {\char"01FDB } % GREEK CAPITAL LETTER IOTA WITH OXIA: Ί
-\def\greekdasiavaria {\char"01FDD } % GREEK DASIA AND VARIA: ῝
-\def\greekdasiatonos {\char"01FDE } % GREEK DASIA AND OXIA: ῞
-\def\greekdasiaperispomeni {\char"01FDF } % GREEK DASIA AND PERISPOMENI: ῟
-\def\greekupsilonvrachy {\char"01FE0 } % GREEK SMALL LETTER UPSILON WITH VRACHY: ῠ
-\def\greekupsilonmacron {\char"01FE1 } % GREEK SMALL LETTER UPSILON WITH MACRON: ῡ
-\def\greekupsilondialytikavaria {\char"01FE2 } % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA: ῢ
-\def\greekupsilondialytikatonos {\char"01FE3 } % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA: ΰ
-\def\greekrhopsili {\char"01FE4 } % GREEK SMALL LETTER RHO WITH PSILI: ῤ
-\def\greekrhodasia {\char"01FE5 } % GREEK SMALL LETTER RHO WITH DASIA: ῥ
-\def\greekupsilonperispomeni {\char"01FE6 } % GREEK SMALL LETTER UPSILON WITH PERISPOMENI: ῦ
-\def\greekupsilondialytikaperispomeni {\char"01FE7 } % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI: ῧ
-\def\greekUpsilonvrachy {\char"01FE8 } % GREEK CAPITAL LETTER UPSILON WITH VRACHY: Ῠ
-\def\greekUpsilonmacron {\char"01FE9 } % GREEK CAPITAL LETTER UPSILON WITH MACRON: Ῡ
-\def\greekUpsilonvaria {\char"01FEA } % GREEK CAPITAL LETTER UPSILON WITH VARIA: Ὺ
-\def\greekUpsilontonos {\char"01FEB } % GREEK CAPITAL LETTER UPSILON WITH OXIA: Ύ
-\def\greekRhodasia {\char"01FEC } % GREEK CAPITAL LETTER RHO WITH DASIA: Ῥ
-\def\greekdialytikavaria {\char"01FED } % GREEK DIALYTIKA AND VARIA: ῭
-\def\greekdialytikatonos {\char"01FEE } % GREEK DIALYTIKA AND OXIA: ΅
-\def\greekvaria {\char"01FEF } % GREEK VARIA: `
-\def\greekomegaiotasubvaria {\char"01FF2 } % GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI: ῲ
-\def\greekomegaiotasub {\char"01FF3 } % GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI: ῳ
-\def\greekomegaiotasubtonos {\char"01FF4 } % GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI: ῴ
-\def\greekomegaperispomeni {\char"01FF6 } % GREEK SMALL LETTER OMEGA WITH PERISPOMENI: ῶ
-\def\greekomegaiotasubperispomeni {\char"01FF7 } % GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI: ῷ
-\def\greekOmicronvaria {\char"01FF8 } % GREEK CAPITAL LETTER OMICRON WITH VARIA: Ὸ
-\def\greekOmicrontonos {\char"01FF9 } % GREEK CAPITAL LETTER OMICRON WITH OXIA: Ό
-\def\greekOmegavaria {\char"01FFA } % GREEK CAPITAL LETTER OMEGA WITH VARIA: Ὼ
-\def\greekOmegatonos {\char"01FFB } % GREEK CAPITAL LETTER OMEGA WITH OXIA: Ώ
-\def\greekOmegaiotasub {\char"01FFC } % GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI: ῼ
-\def\greekoxia {\char"01FFD } % GREEK OXIA: ´
-\def\greekdasia {\char"01FFE } % GREEK DASIA: ῾
-\def\zwnj {\char"0200C } % ZERO WIDTH NON-JOINER: ‌
-\def\zwj {\char"0200D } % ZERO WIDTH JOINER: ‍
-\def\textminus {\char"02012 } % FIGURE DASH: ‒
-\def\endash {\char"02013 } % EN DASH: –
-\def\emdash {\char"02014 } % EM DASH: —
-\def\texthorizontalbar {\char"02015 } % HORIZONTAL BAR: ―
-\def\quoteleft {\char"02018 } % LEFT SINGLE QUOTATION MARK: ‘
-\def\quoteright {\char"02019 } % RIGHT SINGLE QUOTATION MARK: ’
-\def\quotesinglebase {\char"0201A } % SINGLE LOW-0x0009 QUOTATION MARK: ‚
-\def\quotedblleft {\char"0201C } % LEFT DOUBLE QUOTATION MARK: “
-\def\quotedblright {\char"0201D } % RIGHT DOUBLE QUOTATION MARK: ”
-\def\quotedblbase {\char"0201E } % DOUBLE LOW-0x0009 QUOTATION MARK: „
-\def\textdag {\char"02020 } % DAGGER: †
-\def\textddag {\char"02021 } % DOUBLE DAGGER: ‡
-\def\textbullet {\char"02022 } % BULLET: •
-\def\textellipsis {\char"02026 } % HORIZONTAL ELLIPSIS: …
-\def\perthousand {\char"02030 } % PER MILLE SIGN: ‰
-\def\guilsingleleft {\char"02039 } % SINGLE LEFT-POINTING ANGLE QUOTATION MARK: ‹
-\def\guilsingleright {\char"0203A } % SINGLE RIGHT-POINTING ANGLE QUOTATION MARK: ›
-\def\textfraction {\char"02044 } % FRACTION SLASH: ⁄
-\def\textdong {\char"020AB } % DONG SIGN: ₫
-\def\texteuro {\char"020AC } % EURO SIGN: €
-\def\textcelsius {\char"02103 } % DEGREE CELSIUS: ℃
-\def\textnumero {\char"02116 } % NUMERO SIGN: №
-\def\textcircledP {\char"02117 } % SOUND RECORDING COPYRIGHT: ℗
-\def\trademark {\char"02122 } % TRADE MARK SIGN: ™
-\def\textounce {\char"02125 } % OUNCE SIGN: ℥
-\def\textohm {\char"02126 } % OHM SIGN: Ω
-\def\textmho {\char"02127 } % INVERTED OHM SIGN: ℧
-\def\textkelvin {\char"0212A } % KELVIN SIGN: K
-\def\textAngstrom {\char"0212B } % ANGSTROM SIGN: Å
-\def\onethird {\char"02153 } % VULGAR FRACTION ONE THIRD: ⅓
-\def\twothirds {\char"02154 } % VULGAR FRACTION TWO THIRDS: ⅔
-\def\onefifth {\char"02155 } % VULGAR FRACTION ONE FIFTH: ⅕
-\def\twofifths {\char"02156 } % VULGAR FRACTION TWO FIFTHS: ⅖
-\def\threefifths {\char"02157 } % VULGAR FRACTION THREE FIFTHS: ⅗
-\def\fourfifths {\char"02158 } % VULGAR FRACTION FOUR FIFTHS: ⅘
-\def\onesixth {\char"02159 } % VULGAR FRACTION ONE SIXTH: ⅙
-\def\fivesixths {\char"0215A } % VULGAR FRACTION FIVE SIXTHS: ⅚
-\def\oneeighth {\char"0215B } % VULGAR FRACTION ONE EIGHTH: ⅛
-\def\threeeighths {\char"0215C } % VULGAR FRACTION THREE EIGHTHS: ⅜
-\def\fiveeighths {\char"0215D } % VULGAR FRACTION FIVE EIGHTHS: ⅝
-\def\seveneighths {\char"0215E } % VULGAR FRACTION SEVEN EIGHTHS: ⅞
-\def\romanI {\char"02160 } % ROMAN NUMERAL ONE: Ⅰ
-\def\romanII {\char"02161 } % ROMAN NUMERAL TWO: Ⅱ
-\def\romanIII {\char"02162 } % ROMAN NUMERAL THREE: Ⅲ
-\def\romanIV {\char"02163 } % ROMAN NUMERAL FOUR: Ⅳ
-\def\romanV {\char"02164 } % ROMAN NUMERAL FIVE: Ⅴ
-\def\romanVI {\char"02165 } % ROMAN NUMERAL SIX: Ⅵ
-\def\romanVII {\char"02166 } % ROMAN NUMERAL SEVEN: Ⅶ
-\def\romanVIII {\char"02167 } % ROMAN NUMERAL EIGHT: Ⅷ
-\def\romanIX {\char"02168 } % ROMAN NUMERAL NINE: Ⅸ
-\def\romanX {\char"02169 } % ROMAN NUMERAL TEN: Ⅹ
-\def\romanXI {\char"0216A } % ROMAN NUMERAL ELEVEN: Ⅺ
-\def\romanXII {\char"0216B } % ROMAN NUMERAL TWELVE: Ⅻ
-\def\romanL {\char"0216C } % ROMAN NUMERAL FIFTY: Ⅼ
-\def\romanC {\char"0216D } % ROMAN NUMERAL ONE HUNDRED: Ⅽ
-\def\romanD {\char"0216E } % ROMAN NUMERAL FIVE HUNDRED: Ⅾ
-\def\romanM {\char"0216F } % ROMAN NUMERAL ONE THOUSAND: Ⅿ
-\def\romani {\char"02170 } % SMALL ROMAN NUMERAL ONE: ⅰ
-\def\romanii {\char"02171 } % SMALL ROMAN NUMERAL TWO: ⅱ
-\def\romaniii {\char"02172 } % SMALL ROMAN NUMERAL THREE: ⅲ
-\def\romaniv {\char"02173 } % SMALL ROMAN NUMERAL FOUR: ⅳ
-\def\romanv {\char"02174 } % SMALL ROMAN NUMERAL FIVE: ⅴ
-\def\romanvi {\char"02175 } % SMALL ROMAN NUMERAL SIX: ⅵ
-\def\romanvii {\char"02176 } % SMALL ROMAN NUMERAL SEVEN: ⅶ
-\def\romanviii {\char"02177 } % SMALL ROMAN NUMERAL EIGHT: ⅷ
-\def\romanix {\char"02178 } % SMALL ROMAN NUMERAL NINE: ⅸ
-\def\romanx {\char"02179 } % SMALL ROMAN NUMERAL TEN: ⅹ
-\def\romanxi {\char"0217A } % SMALL ROMAN NUMERAL ELEVEN: ⅺ
-\def\romanxii {\char"0217B } % SMALL ROMAN NUMERAL TWELVE: ⅻ
-\def\romanl {\char"0217C } % SMALL ROMAN NUMERAL FIFTY: ⅼ
-\def\romanc {\char"0217D } % SMALL ROMAN NUMERAL ONE HUNDRED: ⅽ
-\def\romand {\char"0217E } % SMALL ROMAN NUMERAL FIVE HUNDRED: ⅾ
-\def\romanm {\char"0217F } % SMALL ROMAN NUMERAL ONE THOUSAND: ⅿ
-\def\carriagereturn {\char"021B5 } % DOWNWARDS ARROW WITH CORNER LEFTWARDS: ↵
-\def\ffligature {\char"0FB00 } % LATIN SMALL LIGATURE FF: ff
-\def\filigature {\char"0FB01 } % LATIN SMALL LIGATURE FI: fi
-\def\flligature {\char"0FB02 } % LATIN SMALL LIGATURE FL: fl
-\def\ffiligature {\char"0FB03 } % LATIN SMALL LIGATURE FFI: ffi
-\def\fflligature {\char"0FB04 } % LATIN SMALL LIGATURE FFL: ffl
-\def\stligature {\char"0FB06 } % LATIN SMALL LIGATURE ST: st
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/xetx-cls.mkii b/Master/texmf-dist/tex/context/base/mkii/xetx-cls.mkii
deleted file mode 100644
index 9142f39e5c7..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xetx-cls.mkii
+++ /dev/null
@@ -1,511 +0,0 @@
-% filename : xetx-cls.mkii
-% comment : generated by mtxrun --script chars --xtx
-% author : Hans Hagen, PRAGMA-ADE, Hasselt NL
-% copyright: PRAGMA ADE / ConTeXt Development Team
-% license : see context related readme files
-
-% some character classes for xetex; seems to be rather hard coded, these numbers
-% and also a mix of several classes; here we do linebreaks
-
-\defineXTXcharinjectionclass[lb:id]
-\defineXTXcharinjectionclass[lb:cl]
-\defineXTXcharinjectionclass[lb:cm]
-\defineXTXcharinjectionclass[lb:is]
-\defineXTXcharinjectionclass[lb:ex]
-\defineXTXcharinjectionclass[lb:op]
-\defineXTXcharinjectionclass[lb:ns]
-
-\dofastrecurse{"00000}{"00008}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0000E}{"0001F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"00021}{lb:ex}
-\dosetXTXcharacterclass{"00028}{lb:op}
-\dosetXTXcharacterclass{"0002C}{lb:is}
-\dosetXTXcharacterclass{"0002E}{lb:is}
-\dofastrecurse{"0003A}{"0003B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:is}}
-\dosetXTXcharacterclass{"0003F}{lb:ex}
-\dosetXTXcharacterclass{"0005B}{lb:op}
-\dosetXTXcharacterclass{"0007B}{lb:op}
-\dosetXTXcharacterclass{"0007D}{lb:cl}
-\dofastrecurse{"0007F}{"00084}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00086}{"0009F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"000A1}{lb:op}
-\dosetXTXcharacterclass{"000BF}{lb:op}
-\dofastrecurse{"00300}{"0034E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00350}{"0035B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00363}{"0036F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"0037E}{lb:is}
-\dofastrecurse{"00483}{"00489}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"00589}{lb:is}
-\dofastrecurse{"00591}{"005BD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"005BF}{lb:cm}
-\dofastrecurse{"005C1}{"005C2}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"005C4}{"005C5}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"005C6}{lb:ex}
-\dosetXTXcharacterclass{"005C7}{lb:cm}
-\dofastrecurse{"0060C}{"0060D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:is}}
-\dofastrecurse{"00610}{"0061A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"0061B}{lb:ex}
-\dosetXTXcharacterclass{"0061C}{lb:cm}
-\dofastrecurse{"0061E}{"0061F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
-\dofastrecurse{"0064B}{"0065F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"00670}{lb:cm}
-\dosetXTXcharacterclass{"006D4}{lb:ex}
-\dofastrecurse{"006D6}{"006DC}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"006DF}{"006E4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"006E7}{"006E8}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"006EA}{"006ED}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"00711}{lb:cm}
-\dofastrecurse{"00730}{"0074A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"007A6}{"007B0}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"007EB}{"007F3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"007F8}{lb:is}
-\dosetXTXcharacterclass{"007F9}{lb:ex}
-\dofastrecurse{"00816}{"00819}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0081B}{"00823}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00825}{"00827}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00829}{"0082D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00859}{"0085B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"008E3}{"00903}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0093A}{"0093C}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0093E}{"0094F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00951}{"00957}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00962}{"00963}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00981}{"00983}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"009BC}{lb:cm}
-\dofastrecurse{"009BE}{"009CD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"009D7}{lb:cm}
-\dofastrecurse{"009E2}{"009E3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00A01}{"00A03}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00A3C}{"00A51}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00A70}{"00A71}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00A75}{"00A83}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"00ABC}{lb:cm}
-\dofastrecurse{"00ABE}{"00ACD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00AE2}{"00AE3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00B01}{"00B03}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"00B3C}{lb:cm}
-\dofastrecurse{"00B3E}{"00B57}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00B62}{"00B63}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"00B82}{lb:cm}
-\dofastrecurse{"00BBE}{"00BCD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"00BD7}{lb:cm}
-\dofastrecurse{"00C00}{"00C03}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00C3E}{"00C56}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00C62}{"00C63}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00C81}{"00C83}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"00CBC}{lb:cm}
-\dofastrecurse{"00CBE}{"00CD6}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00CE2}{"00CE3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00D01}{"00D03}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00D3E}{"00D4D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"00D57}{lb:cm}
-\dofastrecurse{"00D62}{"00D63}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00D82}{"00D83}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00DCA}{"00DDF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00DF2}{"00DF3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00F0D}{"00F11}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
-\dosetXTXcharacterclass{"00F14}{lb:ex}
-\dofastrecurse{"00F18}{"00F19}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"00F35}{lb:cm}
-\dosetXTXcharacterclass{"00F37}{lb:cm}
-\dosetXTXcharacterclass{"00F39}{lb:cm}
-\dosetXTXcharacterclass{"00F3A}{lb:op}
-\dosetXTXcharacterclass{"00F3B}{lb:cl}
-\dosetXTXcharacterclass{"00F3C}{lb:op}
-\dosetXTXcharacterclass{"00F3D}{lb:cl}
-\dofastrecurse{"00F3E}{"00F3F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00F71}{"00F7E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00F80}{"00F84}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00F86}{"00F87}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"00F8D}{"00FBC}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"00FC6}{lb:cm}
-\dofastrecurse{"0135D}{"0135F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"0169B}{lb:op}
-\dosetXTXcharacterclass{"0169C}{lb:cl}
-\dofastrecurse{"01712}{"01714}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"01732}{"01734}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"01752}{"01753}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"01772}{"01773}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"017D6}{lb:ns}
-\dofastrecurse{"01802}{"01803}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
-\dofastrecurse{"01808}{"01809}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
-\dofastrecurse{"0180B}{"0180D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"018A9}{lb:cm}
-\dofastrecurse{"01920}{"0193B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"01944}{"01945}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
-\dofastrecurse{"01A17}{"01A1B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"01A7F}{lb:cm}
-\dofastrecurse{"01AB0}{"01B04}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"01B34}{"01B44}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"01B6B}{"01B73}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"01B80}{"01B82}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"01BA1}{"01BAD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"01BE6}{"01BF3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"01C24}{"01C37}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"01CD0}{"01CD2}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"01CD4}{"01CE8}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"01CED}{lb:cm}
-\dofastrecurse{"01CF2}{"01CF4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"01CF8}{"01CF9}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"01DC0}{"01DFF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0200C}{"0200F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"0201A}{lb:op}
-\dosetXTXcharacterclass{"0201E}{lb:op}
-\dofastrecurse{"0202A}{"0202E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0203C}{"0203D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
-\dosetXTXcharacterclass{"02044}{lb:is}
-\dosetXTXcharacterclass{"02045}{lb:op}
-\dosetXTXcharacterclass{"02046}{lb:cl}
-\dofastrecurse{"02047}{"02049}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
-\dofastrecurse{"02066}{"0206F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"0207D}{lb:op}
-\dosetXTXcharacterclass{"0207E}{lb:cl}
-\dosetXTXcharacterclass{"0208D}{lb:op}
-\dosetXTXcharacterclass{"0208E}{lb:cl}
-\dofastrecurse{"020D0}{"020F0}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"02308}{lb:op}
-\dosetXTXcharacterclass{"02309}{lb:cl}
-\dosetXTXcharacterclass{"0230A}{lb:op}
-\dosetXTXcharacterclass{"0230B}{lb:cl}
-\dofastrecurse{"0231A}{"0231B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"02329}{lb:op}
-\dosetXTXcharacterclass{"0232A}{lb:cl}
-\dofastrecurse{"023F0}{"023F3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"02600}{"02603}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"02614}{"02615}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"02618}{lb:id}
-\dofastrecurse{"0261A}{"0261F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"02639}{"0263B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"02668}{lb:id}
-\dosetXTXcharacterclass{"0267F}{lb:id}
-\dofastrecurse{"026BD}{"026C8}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"026CD}{lb:id}
-\dofastrecurse{"026CF}{"026D1}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"026D3}{"026D4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"026D8}{"026D9}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"026DC}{lb:id}
-\dofastrecurse{"026DF}{"026E1}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"026EA}{lb:id}
-\dofastrecurse{"026F1}{"026F5}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"026F7}{"026FA}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"026FD}{"02704}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"02708}{"0270D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"02762}{"02763}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
-\dosetXTXcharacterclass{"02768}{lb:op}
-\dosetXTXcharacterclass{"02769}{lb:cl}
-\dosetXTXcharacterclass{"0276A}{lb:op}
-\dosetXTXcharacterclass{"0276B}{lb:cl}
-\dosetXTXcharacterclass{"0276C}{lb:op}
-\dosetXTXcharacterclass{"0276D}{lb:cl}
-\dosetXTXcharacterclass{"0276E}{lb:op}
-\dosetXTXcharacterclass{"0276F}{lb:cl}
-\dosetXTXcharacterclass{"02770}{lb:op}
-\dosetXTXcharacterclass{"02771}{lb:cl}
-\dosetXTXcharacterclass{"02772}{lb:op}
-\dosetXTXcharacterclass{"02773}{lb:cl}
-\dosetXTXcharacterclass{"02774}{lb:op}
-\dosetXTXcharacterclass{"02775}{lb:cl}
-\dosetXTXcharacterclass{"027C5}{lb:op}
-\dosetXTXcharacterclass{"027C6}{lb:cl}
-\dosetXTXcharacterclass{"027E6}{lb:op}
-\dosetXTXcharacterclass{"027E7}{lb:cl}
-\dosetXTXcharacterclass{"027E8}{lb:op}
-\dosetXTXcharacterclass{"027E9}{lb:cl}
-\dosetXTXcharacterclass{"027EA}{lb:op}
-\dosetXTXcharacterclass{"027EB}{lb:cl}
-\dosetXTXcharacterclass{"027EC}{lb:op}
-\dosetXTXcharacterclass{"027ED}{lb:cl}
-\dosetXTXcharacterclass{"027EE}{lb:op}
-\dosetXTXcharacterclass{"027EF}{lb:cl}
-\dosetXTXcharacterclass{"02983}{lb:op}
-\dosetXTXcharacterclass{"02984}{lb:cl}
-\dosetXTXcharacterclass{"02985}{lb:op}
-\dosetXTXcharacterclass{"02986}{lb:cl}
-\dosetXTXcharacterclass{"02987}{lb:op}
-\dosetXTXcharacterclass{"02988}{lb:cl}
-\dosetXTXcharacterclass{"02989}{lb:op}
-\dosetXTXcharacterclass{"0298A}{lb:cl}
-\dosetXTXcharacterclass{"0298B}{lb:op}
-\dosetXTXcharacterclass{"0298C}{lb:cl}
-\dosetXTXcharacterclass{"0298D}{lb:op}
-\dosetXTXcharacterclass{"0298E}{lb:cl}
-\dosetXTXcharacterclass{"0298F}{lb:op}
-\dosetXTXcharacterclass{"02990}{lb:cl}
-\dosetXTXcharacterclass{"02991}{lb:op}
-\dosetXTXcharacterclass{"02992}{lb:cl}
-\dosetXTXcharacterclass{"02993}{lb:op}
-\dosetXTXcharacterclass{"02994}{lb:cl}
-\dosetXTXcharacterclass{"02995}{lb:op}
-\dosetXTXcharacterclass{"02996}{lb:cl}
-\dosetXTXcharacterclass{"02997}{lb:op}
-\dosetXTXcharacterclass{"02998}{lb:cl}
-\dosetXTXcharacterclass{"029D8}{lb:op}
-\dosetXTXcharacterclass{"029D9}{lb:cl}
-\dosetXTXcharacterclass{"029DA}{lb:op}
-\dosetXTXcharacterclass{"029DB}{lb:cl}
-\dosetXTXcharacterclass{"029FC}{lb:op}
-\dosetXTXcharacterclass{"029FD}{lb:cl}
-\dofastrecurse{"02CEF}{"02CF1}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"02CF9}{lb:ex}
-\dosetXTXcharacterclass{"02CFE}{lb:ex}
-\dosetXTXcharacterclass{"02D7F}{lb:cm}
-\dofastrecurse{"02DE0}{"02DFF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"02E18}{lb:op}
-\dosetXTXcharacterclass{"02E22}{lb:op}
-\dosetXTXcharacterclass{"02E23}{lb:cl}
-\dosetXTXcharacterclass{"02E24}{lb:op}
-\dosetXTXcharacterclass{"02E25}{lb:cl}
-\dosetXTXcharacterclass{"02E26}{lb:op}
-\dosetXTXcharacterclass{"02E27}{lb:cl}
-\dosetXTXcharacterclass{"02E28}{lb:op}
-\dosetXTXcharacterclass{"02E29}{lb:cl}
-\dosetXTXcharacterclass{"02E2E}{lb:ex}
-\dosetXTXcharacterclass{"02E42}{lb:op}
-\dofastrecurse{"02E80}{"02FFB}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"03001}{"03002}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}}
-\dofastrecurse{"03003}{"03004}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"03005}{lb:ns}
-\dofastrecurse{"03006}{"03007}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"03008}{lb:op}
-\dosetXTXcharacterclass{"03009}{lb:cl}
-\dosetXTXcharacterclass{"0300A}{lb:op}
-\dosetXTXcharacterclass{"0300B}{lb:cl}
-\dosetXTXcharacterclass{"0300C}{lb:op}
-\dosetXTXcharacterclass{"0300D}{lb:cl}
-\dosetXTXcharacterclass{"0300E}{lb:op}
-\dosetXTXcharacterclass{"0300F}{lb:cl}
-\dosetXTXcharacterclass{"03010}{lb:op}
-\dosetXTXcharacterclass{"03011}{lb:cl}
-\dofastrecurse{"03012}{"03013}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"03014}{lb:op}
-\dosetXTXcharacterclass{"03015}{lb:cl}
-\dosetXTXcharacterclass{"03016}{lb:op}
-\dosetXTXcharacterclass{"03017}{lb:cl}
-\dosetXTXcharacterclass{"03018}{lb:op}
-\dosetXTXcharacterclass{"03019}{lb:cl}
-\dosetXTXcharacterclass{"0301A}{lb:op}
-\dosetXTXcharacterclass{"0301B}{lb:cl}
-\dosetXTXcharacterclass{"0301C}{lb:ns}
-\dosetXTXcharacterclass{"0301D}{lb:op}
-\dofastrecurse{"0301E}{"0301F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}}
-\dofastrecurse{"03020}{"03029}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"0302A}{"0302F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"03030}{"03034}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"03035}{lb:cm}
-\dofastrecurse{"03036}{"0303A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"0303B}{"0303C}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
-\dofastrecurse{"0303D}{"0303F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"03042}{lb:id}
-\dosetXTXcharacterclass{"03044}{lb:id}
-\dosetXTXcharacterclass{"03046}{lb:id}
-\dosetXTXcharacterclass{"03048}{lb:id}
-\dofastrecurse{"0304A}{"03062}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"03064}{"03082}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"03084}{lb:id}
-\dosetXTXcharacterclass{"03086}{lb:id}
-\dofastrecurse{"03088}{"0308D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"0308F}{"03094}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"03099}{"0309A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0309B}{"0309E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
-\dosetXTXcharacterclass{"0309F}{lb:id}
-\dosetXTXcharacterclass{"030A0}{lb:ns}
-\dosetXTXcharacterclass{"030A2}{lb:id}
-\dosetXTXcharacterclass{"030A4}{lb:id}
-\dosetXTXcharacterclass{"030A6}{lb:id}
-\dosetXTXcharacterclass{"030A8}{lb:id}
-\dofastrecurse{"030AA}{"030C2}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"030C4}{"030E2}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"030E4}{lb:id}
-\dosetXTXcharacterclass{"030E6}{lb:id}
-\dofastrecurse{"030E8}{"030ED}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"030EF}{"030F4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"030F7}{"030FA}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"030FB}{lb:ns}
-\dofastrecurse{"030FD}{"030FE}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
-\dofastrecurse{"030FF}{"031E3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"03200}{"03247}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"03250}{"033FF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"0A000}{"0A014}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"0A015}{lb:ns}
-\dofastrecurse{"0A016}{"0A4C6}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"0A60E}{lb:ex}
-\dofastrecurse{"0A66F}{"0A672}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0A674}{"0A67D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0A69E}{"0A69F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0A6F0}{"0A6F1}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"0A802}{lb:cm}
-\dosetXTXcharacterclass{"0A806}{lb:cm}
-\dosetXTXcharacterclass{"0A80B}{lb:cm}
-\dofastrecurse{"0A823}{"0A827}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0A876}{"0A877}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
-\dofastrecurse{"0A880}{"0A881}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0A8B4}{"0A8C4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0A8E0}{"0A8F1}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0A926}{"0A92D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0A947}{"0A953}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0A980}{"0A983}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0A9B3}{"0A9C0}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0AA29}{"0AA36}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"0AA43}{lb:cm}
-\dofastrecurse{"0AA4C}{"0AA4D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0AAEB}{"0AAEF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0AAF5}{"0AAF6}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0ABE3}{"0ABEA}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0ABEC}{"0ABED}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0F900}{"0FAD9}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"0FB1E}{lb:cm}
-\dosetXTXcharacterclass{"0FD3E}{lb:cl}
-\dosetXTXcharacterclass{"0FD3F}{lb:op}
-\dofastrecurse{"0FE00}{"0FE0F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"0FE10}{lb:is}
-\dofastrecurse{"0FE11}{"0FE12}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}}
-\dofastrecurse{"0FE13}{"0FE14}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:is}}
-\dofastrecurse{"0FE15}{"0FE16}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
-\dosetXTXcharacterclass{"0FE17}{lb:op}
-\dosetXTXcharacterclass{"0FE18}{lb:cl}
-\dofastrecurse{"0FE20}{"0FE2F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"0FE30}{"0FE34}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"0FE35}{lb:op}
-\dosetXTXcharacterclass{"0FE36}{lb:cl}
-\dosetXTXcharacterclass{"0FE37}{lb:op}
-\dosetXTXcharacterclass{"0FE38}{lb:cl}
-\dosetXTXcharacterclass{"0FE39}{lb:op}
-\dosetXTXcharacterclass{"0FE3A}{lb:cl}
-\dosetXTXcharacterclass{"0FE3B}{lb:op}
-\dosetXTXcharacterclass{"0FE3C}{lb:cl}
-\dosetXTXcharacterclass{"0FE3D}{lb:op}
-\dosetXTXcharacterclass{"0FE3E}{lb:cl}
-\dosetXTXcharacterclass{"0FE3F}{lb:op}
-\dosetXTXcharacterclass{"0FE40}{lb:cl}
-\dosetXTXcharacterclass{"0FE41}{lb:op}
-\dosetXTXcharacterclass{"0FE42}{lb:cl}
-\dosetXTXcharacterclass{"0FE43}{lb:op}
-\dosetXTXcharacterclass{"0FE44}{lb:cl}
-\dofastrecurse{"0FE45}{"0FE46}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"0FE47}{lb:op}
-\dosetXTXcharacterclass{"0FE48}{lb:cl}
-\dofastrecurse{"0FE49}{"0FE4F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"0FE50}{lb:cl}
-\dosetXTXcharacterclass{"0FE51}{lb:id}
-\dosetXTXcharacterclass{"0FE52}{lb:cl}
-\dofastrecurse{"0FE54}{"0FE55}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
-\dofastrecurse{"0FE56}{"0FE57}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
-\dosetXTXcharacterclass{"0FE58}{lb:id}
-\dosetXTXcharacterclass{"0FE59}{lb:op}
-\dosetXTXcharacterclass{"0FE5A}{lb:cl}
-\dosetXTXcharacterclass{"0FE5B}{lb:op}
-\dosetXTXcharacterclass{"0FE5C}{lb:cl}
-\dosetXTXcharacterclass{"0FE5D}{lb:op}
-\dosetXTXcharacterclass{"0FE5E}{lb:cl}
-\dofastrecurse{"0FE5F}{"0FE68}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"0FE6B}{lb:id}
-\dosetXTXcharacterclass{"0FF01}{lb:ex}
-\dofastrecurse{"0FF02}{"0FF03}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"0FF06}{"0FF07}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"0FF08}{lb:op}
-\dosetXTXcharacterclass{"0FF09}{lb:cl}
-\dofastrecurse{"0FF0A}{"0FF0B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"0FF0C}{lb:cl}
-\dosetXTXcharacterclass{"0FF0D}{lb:id}
-\dosetXTXcharacterclass{"0FF0E}{lb:cl}
-\dofastrecurse{"0FF0F}{"0FF19}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"0FF1A}{"0FF1B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
-\dofastrecurse{"0FF1C}{"0FF1E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"0FF1F}{lb:ex}
-\dofastrecurse{"0FF20}{"0FF3A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"0FF3B}{lb:op}
-\dosetXTXcharacterclass{"0FF3C}{lb:id}
-\dosetXTXcharacterclass{"0FF3D}{lb:cl}
-\dofastrecurse{"0FF3E}{"0FF5A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"0FF5B}{lb:op}
-\dosetXTXcharacterclass{"0FF5C}{lb:id}
-\dosetXTXcharacterclass{"0FF5D}{lb:cl}
-\dosetXTXcharacterclass{"0FF5E}{lb:id}
-\dosetXTXcharacterclass{"0FF5F}{lb:op}
-\dofastrecurse{"0FF60}{"0FF61}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}}
-\dosetXTXcharacterclass{"0FF62}{lb:op}
-\dofastrecurse{"0FF63}{"0FF64}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}}
-\dosetXTXcharacterclass{"0FF65}{lb:ns}
-\dofastrecurse{"0FF9E}{"0FF9F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
-\dofastrecurse{"0FFE2}{"0FFE4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"0FFF9}{"0FFFB}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"101FD}{lb:cm}
-\dosetXTXcharacterclass{"102E0}{lb:cm}
-\dofastrecurse{"10376}{"1037A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"10A01}{"10A0F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"10A38}{"10A3F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"10AE5}{"10AE6}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"11000}{"11002}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"11038}{"11046}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"1107F}{"11082}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"110B0}{"110BA}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"11100}{"11102}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"11127}{"11134}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"11173}{lb:cm}
-\dofastrecurse{"11180}{"11182}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"111B3}{"111C0}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"111CA}{"111CC}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"1122C}{"11237}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"112DF}{"112EA}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"11300}{"11303}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"1133C}{lb:cm}
-\dofastrecurse{"1133E}{"1134D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"11357}{lb:cm}
-\dofastrecurse{"11362}{"11374}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"114B0}{"114C3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"115AF}{"115C0}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"115C4}{"115C5}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ex}}
-\dofastrecurse{"115DC}{"115DD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"11630}{"11640}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"116AB}{"116B7}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"13258}{"1325A}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:op}}
-\dofastrecurse{"1325B}{"1325D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}}
-\dosetXTXcharacterclass{"13282}{lb:cl}
-\dosetXTXcharacterclass{"13286}{lb:op}
-\dosetXTXcharacterclass{"13287}{lb:cl}
-\dosetXTXcharacterclass{"13288}{lb:op}
-\dosetXTXcharacterclass{"13289}{lb:cl}
-\dosetXTXcharacterclass{"13379}{lb:op}
-\dofastrecurse{"1337A}{"1337B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cl}}
-\dosetXTXcharacterclass{"145CE}{lb:op}
-\dosetXTXcharacterclass{"145CF}{lb:cl}
-\dofastrecurse{"16AF0}{"16AF4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"16B30}{"16B36}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"16F51}{"16F92}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"1B000}{"1B001}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"1BC9D}{"1BC9E}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"1BCA0}{"1BCA3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"1D165}{"1D169}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"1D16D}{"1D182}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"1D185}{"1D18B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"1D1AA}{"1D1AD}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"1D242}{"1D244}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"1DA00}{"1DA36}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"1DA3B}{"1DA6C}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dosetXTXcharacterclass{"1DA75}{lb:cm}
-\dosetXTXcharacterclass{"1DA84}{lb:cm}
-\dofastrecurse{"1DA9B}{"1DAAF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"1E8D0}{"1E8D6}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-\dofastrecurse{"1F000}{"1F0F5}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"1F200}{"1F39B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"1F39E}{"1F3B4}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"1F3B7}{"1F3BB}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"1F3BD}{"1F3FA}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"1F400}{"1F49F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"1F4A1}{lb:id}
-\dosetXTXcharacterclass{"1F4A3}{lb:id}
-\dofastrecurse{"1F4A5}{"1F4AE}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dosetXTXcharacterclass{"1F4B0}{lb:id}
-\dofastrecurse{"1F4B3}{"1F4FF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"1F507}{"1F516}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"1F525}{"1F531}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"1F54A}{"1F5D3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"1F5DC}{"1F5F3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"1F5FA}{"1F64F}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"1F679}{"1F67B}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:ns}}
-\dofastrecurse{"1F680}{"1F6F3}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"1F910}{"2FA1D}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:id}}
-\dofastrecurse{"E0001}{"E01EF}{1}{\dosetXTXcharacterclass\fastrecursecounter{lb:cm}}
-
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/xetx-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/xetx-ini.mkii
deleted file mode 100644
index 55155fa1af2..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xetx-ini.mkii
+++ /dev/null
@@ -1,132 +0,0 @@
-%D \module
-%D [ file=xetx-ini,
-%D version=2004.09.11,
-%D title=\CONTEXT\ System Macros,
-%D subtitle=\XETEX\ Initializations,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D We moved some code around and now have reorganized the xetex
-%D code in the \type {xetx} module namespace.
-
-\unprotect
-
-%D Some defaults.
-
-\ifdefined\XeTeXuseglyphmetrics
- \XeTeXuseglyphmetrics\plusone
-\fi
-
-%D Character classes.
-
-\newcount\nofXTXcharinjections
-
-\def\defineXTXcharinjectionclass[#1]%
- {\global\advance\nofXTXcharinjections\plusone
- \setxvalue{@xtx@cc@#1}{\number\nofXTXcharinjections}}
-
-\setxvalue{@xtx@cc@\s!default}{0}
-
-\def\getXTXcharinjectionclass#1%
- {\csname @xtx@cc@\ifcsname @xtx@cc@#1\endcsname#1\else\s!default\fi\endcsname}
-
-\let\currentXTXcharinjection\s!default
-
-\def\startXTXcharinjecxtions[#1]%
- {\pushmacro\currentXTXcharinjection
- \def\currentXTXcharinjection{#1}}
-
-\def\stopXTXcharinjections
- {\popmacro\currentXTXcharinjection}
-
-\def\defineXTXcharinjection #1 #2 %
- {\doifnumberelse{#1}{\edef\XTXclassone{\number#1}}{\edef\XTXclassone{\getXTXcharinjectionclas{#1}}}%
- \doifnumberelse{#2}{\edef\XTXclasstwo{\number#2}}{\edef\XTXclasstwo{\getXTXcharinjectionclas{#2}}}%
- \expanded{\dodefineXTXcharinjection{\XTXclassone}{\XTXclasstwo}}}
-
-\def\setXTXcharcodes #1 #2 #3 % encoding syntax
- {\catcode#1=11 \lccode #1=#2 \uccode #1=#3 }
-
-\def\dosetXTXcharcodes#1#2#3% compact syntax
- {\catcode#1=11 \lccode #1=#2 \uccode #1=#3 }
-
-\ifdefined\XeTeXinterchartoks
-
- \long\def\dodefineXTXcharinjection#1#2#3%
- {\XeTeXinterchartoks #1 #2 {\XTXcharinjection{#1}{#2}}%
- \setvalue{@xtx@ch@\currentXTXcharinjection @#1@#2@}{#3}}
-
- \def\setXTXcharacterclass #1 #2 %
- {\doifnumberelse{#2}
- {\XeTeXcharclass#1=#2\relax}
- {\XeTeXcharclass#1=\getXTXcharinjectionclass{#2}\relax}}
-
- \def\dosetXTXcharacterclass#1% #2 fast one
- {\XeTeXcharclass#1=\getXTXcharinjectionclass}
-
-\else
-
- \long\def\dodefineXTXcharinjection#1#2#3%
- {\setvalue{@xtx@ch@\currentXTXcharinjection @#1@#2@}{#3}}
-
- \def\setXTXcharacterclass #1 #2 %
- {}
-
-\fi
-
-\chardef\XTXcharinjectionsmode=1
-
-\letvalue{@xtx@ch@\s!empty}\empty
-
-\def\XTXcharinjection#1#2%
- {\csname @xtx@ch@%
- \ifcase\XTXcharinjectionsmode
- \s!empty
- \or
- \ifcsname @xtx@ch@\currentXTXcharinjection @#1@#2@\endcsname \currentXTXcharinjection @#1@#2@\fi
- \or
- \ifcsname @xtx@ch@\currentXTXcharinjection @#1@#2@\endcsname \currentXTXcharinjection @#1@#2@\else
- \ifcsname @xtx@ch@\s!default @#1@#2@\endcsname \s!default @#1@#2@\else
- \s!empty
- \fi\fi
- \else
- \s!empty
- \fi
- \endcsname}
-
-\def\enableXTXcharinjections[#1]%
- {\def\currentXTXcharinjection{#1}}
-
-\protect \endinput
-
-\starttext
-
-\startXTXcharinjecxtions[default]
- \defineXTXcharinjection 10 40 {[default]}
-\stopXTXcharinjections
-
-\startXTXcharinjecxtions[whatever]
- \defineXTXcharinjection 20 40 {[whatever]}
-\stopXTXcharinjections
-
-\chardef\XTXcharinjectionsmode=0
-
-\enableXTXcharinjections[default] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C
-\enableXTXcharinjections[whatever] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C
-
-\chardef\XTXcharinjectionsmode=1
-
-\enableXTXcharinjections[default] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C
-\enableXTXcharinjections[whatever] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C
-
-\chardef\XTXcharinjectionsmode=2
-
-\enableXTXcharinjections[default] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C
-\enableXTXcharinjections[whatever] A\XTXcharinjection{10}{40}B\XTXcharinjection{20}{40}C
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkii/xetx-utf.mkii b/Master/texmf-dist/tex/context/base/mkii/xetx-utf.mkii
deleted file mode 100644
index a157a2d11e4..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xetx-utf.mkii
+++ /dev/null
@@ -1,2414 +0,0 @@
-% filename : xetx-utf.mkii
-% comment : generated by mtxrun --script chars --xtx
-% author : Hans Hagen, PRAGMA-ADE, Hasselt NL
-% copyright: PRAGMA ADE / ConTeXt Development Team
-% license : see context related readme files
-
-% lc/uc/catcode mappings
-
-\setXTXcharcodes "00041 "00061 "00041 % LATIN CAPITAL LETTER A
-\setXTXcharcodes "00042 "00062 "00042 % LATIN CAPITAL LETTER B
-\setXTXcharcodes "00043 "00063 "00043 % LATIN CAPITAL LETTER C
-\setXTXcharcodes "00044 "00064 "00044 % LATIN CAPITAL LETTER D
-\setXTXcharcodes "00045 "00065 "00045 % LATIN CAPITAL LETTER E
-\setXTXcharcodes "00046 "00066 "00046 % LATIN CAPITAL LETTER F
-\setXTXcharcodes "00047 "00067 "00047 % LATIN CAPITAL LETTER G
-\setXTXcharcodes "00048 "00068 "00048 % LATIN CAPITAL LETTER H
-\setXTXcharcodes "00049 "00069 "00049 % LATIN CAPITAL LETTER I
-\setXTXcharcodes "0004A "0006A "0004A % LATIN CAPITAL LETTER J
-\setXTXcharcodes "0004B "0006B "0004B % LATIN CAPITAL LETTER K
-\setXTXcharcodes "0004C "0006C "0004C % LATIN CAPITAL LETTER L
-\setXTXcharcodes "0004D "0006D "0004D % LATIN CAPITAL LETTER M
-\setXTXcharcodes "0004E "0006E "0004E % LATIN CAPITAL LETTER N
-\setXTXcharcodes "0004F "0006F "0004F % LATIN CAPITAL LETTER O
-\setXTXcharcodes "00050 "00070 "00050 % LATIN CAPITAL LETTER P
-\setXTXcharcodes "00051 "00071 "00051 % LATIN CAPITAL LETTER Q
-\setXTXcharcodes "00052 "00072 "00052 % LATIN CAPITAL LETTER R
-\setXTXcharcodes "00053 "00073 "00053 % LATIN CAPITAL LETTER S
-\setXTXcharcodes "00054 "00074 "00054 % LATIN CAPITAL LETTER T
-\setXTXcharcodes "00055 "00075 "00055 % LATIN CAPITAL LETTER U
-\setXTXcharcodes "00056 "00076 "00056 % LATIN CAPITAL LETTER V
-\setXTXcharcodes "00057 "00077 "00057 % LATIN CAPITAL LETTER W
-\setXTXcharcodes "00058 "00078 "00058 % LATIN CAPITAL LETTER X
-\setXTXcharcodes "00059 "00079 "00059 % LATIN CAPITAL LETTER Y
-\setXTXcharcodes "0005A "0007A "0005A % LATIN CAPITAL LETTER Z
-\setXTXcharcodes "00061 "00061 "00041 % LATIN SMALL LETTER A
-\setXTXcharcodes "00062 "00062 "00042 % LATIN SMALL LETTER B
-\setXTXcharcodes "00063 "00063 "00043 % LATIN SMALL LETTER C
-\setXTXcharcodes "00064 "00064 "00044 % LATIN SMALL LETTER D
-\setXTXcharcodes "00065 "00065 "00045 % LATIN SMALL LETTER E
-\setXTXcharcodes "00066 "00066 "00046 % LATIN SMALL LETTER F
-\setXTXcharcodes "00067 "00067 "00047 % LATIN SMALL LETTER G
-\setXTXcharcodes "00068 "00068 "00048 % LATIN SMALL LETTER H
-\setXTXcharcodes "00069 "00069 "00049 % LATIN SMALL LETTER I
-\setXTXcharcodes "0006A "0006A "0004A % LATIN SMALL LETTER J
-\setXTXcharcodes "0006B "0006B "0004B % LATIN SMALL LETTER K
-\setXTXcharcodes "0006C "0006C "0004C % LATIN SMALL LETTER L
-\setXTXcharcodes "0006D "0006D "0004D % LATIN SMALL LETTER M
-\setXTXcharcodes "0006E "0006E "0004E % LATIN SMALL LETTER N
-\setXTXcharcodes "0006F "0006F "0004F % LATIN SMALL LETTER O
-\setXTXcharcodes "00070 "00070 "00050 % LATIN SMALL LETTER P
-\setXTXcharcodes "00071 "00071 "00051 % LATIN SMALL LETTER Q
-\setXTXcharcodes "00072 "00072 "00052 % LATIN SMALL LETTER R
-\setXTXcharcodes "00073 "00073 "00053 % LATIN SMALL LETTER S
-\setXTXcharcodes "00074 "00074 "00054 % LATIN SMALL LETTER T
-\setXTXcharcodes "00075 "00075 "00055 % LATIN SMALL LETTER U
-\setXTXcharcodes "00076 "00076 "00056 % LATIN SMALL LETTER V
-\setXTXcharcodes "00077 "00077 "00057 % LATIN SMALL LETTER W
-\setXTXcharcodes "00078 "00078 "00058 % LATIN SMALL LETTER X
-\setXTXcharcodes "00079 "00079 "00059 % LATIN SMALL LETTER Y
-\setXTXcharcodes "0007A "0007A "0005A % LATIN SMALL LETTER Z
-\setXTXcharcodes "000AA "000AA "000AA % FEMININE ORDINAL INDICATOR
-\setXTXcharcodes "000B5 "000B5 "0039C % MICRO SIGN
-\setXTXcharcodes "000BA "000BA "000BA % MASCULINE ORDINAL INDICATOR
-\setXTXcharcodes "000C0 "000E0 "000C0 % LATIN CAPITAL LETTER A WITH GRAVE
-\setXTXcharcodes "000C1 "000E1 "000C1 % LATIN CAPITAL LETTER A WITH ACUTE
-\setXTXcharcodes "000C2 "000E2 "000C2 % LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-\setXTXcharcodes "000C3 "000E3 "000C3 % LATIN CAPITAL LETTER A WITH TILDE
-\setXTXcharcodes "000C4 "000E4 "000C4 % LATIN CAPITAL LETTER A WITH DIAERESIS
-\setXTXcharcodes "000C5 "000E5 "000C5 % LATIN CAPITAL LETTER A WITH RING ABOVE
-\setXTXcharcodes "000C6 "000E6 "000C6 % LATIN CAPITAL LETTER AE
-\setXTXcharcodes "000C7 "000E7 "000C7 % LATIN CAPITAL LETTER C WITH CEDILLA
-\setXTXcharcodes "000C8 "000E8 "000C8 % LATIN CAPITAL LETTER E WITH GRAVE
-\setXTXcharcodes "000C9 "000E9 "000C9 % LATIN CAPITAL LETTER E WITH ACUTE
-\setXTXcharcodes "000CA "000EA "000CA % LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-\setXTXcharcodes "000CB "000EB "000CB % LATIN CAPITAL LETTER E WITH DIAERESIS
-\setXTXcharcodes "000CC "000EC "000CC % LATIN CAPITAL LETTER I WITH GRAVE
-\setXTXcharcodes "000CD "000ED "000CD % LATIN CAPITAL LETTER I WITH ACUTE
-\setXTXcharcodes "000CE "000EE "000CE % LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-\setXTXcharcodes "000CF "000EF "000CF % LATIN CAPITAL LETTER I WITH DIAERESIS
-\setXTXcharcodes "000D0 "000F0 "000D0 % LATIN CAPITAL LETTER ETH
-\setXTXcharcodes "000D1 "000F1 "000D1 % LATIN CAPITAL LETTER N WITH TILDE
-\setXTXcharcodes "000D2 "000F2 "000D2 % LATIN CAPITAL LETTER O WITH GRAVE
-\setXTXcharcodes "000D3 "000F3 "000D3 % LATIN CAPITAL LETTER O WITH ACUTE
-\setXTXcharcodes "000D4 "000F4 "000D4 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-\setXTXcharcodes "000D5 "000F5 "000D5 % LATIN CAPITAL LETTER O WITH TILDE
-\setXTXcharcodes "000D6 "000F6 "000D6 % LATIN CAPITAL LETTER O WITH DIAERESIS
-\setXTXcharcodes "000D8 "000F8 "000D8 % LATIN CAPITAL LETTER O WITH STROKE
-\setXTXcharcodes "000D9 "000F9 "000D9 % LATIN CAPITAL LETTER U WITH GRAVE
-\setXTXcharcodes "000DA "000FA "000DA % LATIN CAPITAL LETTER U WITH ACUTE
-\setXTXcharcodes "000DB "000FB "000DB % LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-\setXTXcharcodes "000DC "000FC "000DC % LATIN CAPITAL LETTER U WITH DIAERESIS
-\setXTXcharcodes "000DD "000FD "000DD % LATIN CAPITAL LETTER Y WITH ACUTE
-\setXTXcharcodes "000DE "000FE "000DE % LATIN CAPITAL LETTER THORN
-\setXTXcharcodes "000DF "000DF "000DF % LATIN SMALL LETTER SHARP S
-\setXTXcharcodes "000E0 "000E0 "000C0 % LATIN SMALL LETTER A WITH GRAVE
-\setXTXcharcodes "000E1 "000E1 "000C1 % LATIN SMALL LETTER A WITH ACUTE
-\setXTXcharcodes "000E2 "000E2 "000C2 % LATIN SMALL LETTER A WITH CIRCUMFLEX
-\setXTXcharcodes "000E3 "000E3 "000C3 % LATIN SMALL LETTER A WITH TILDE
-\setXTXcharcodes "000E4 "000E4 "000C4 % LATIN SMALL LETTER A WITH DIAERESIS
-\setXTXcharcodes "000E5 "000E5 "000C5 % LATIN SMALL LETTER A WITH RING ABOVE
-\setXTXcharcodes "000E6 "000E6 "000C6 % LATIN SMALL LETTER AE
-\setXTXcharcodes "000E7 "000E7 "000C7 % LATIN SMALL LETTER C WITH CEDILLA
-\setXTXcharcodes "000E8 "000E8 "000C8 % LATIN SMALL LETTER E WITH GRAVE
-\setXTXcharcodes "000E9 "000E9 "000C9 % LATIN SMALL LETTER E WITH ACUTE
-\setXTXcharcodes "000EA "000EA "000CA % LATIN SMALL LETTER E WITH CIRCUMFLEX
-\setXTXcharcodes "000EB "000EB "000CB % LATIN SMALL LETTER E WITH DIAERESIS
-\setXTXcharcodes "000EC "000EC "000CC % LATIN SMALL LETTER I WITH GRAVE
-\setXTXcharcodes "000ED "000ED "000CD % LATIN SMALL LETTER I WITH ACUTE
-\setXTXcharcodes "000EE "000EE "000CE % LATIN SMALL LETTER I WITH CIRCUMFLEX
-\setXTXcharcodes "000EF "000EF "000CF % LATIN SMALL LETTER I WITH DIAERESIS
-\setXTXcharcodes "000F0 "000F0 "000D0 % LATIN SMALL LETTER ETH
-\setXTXcharcodes "000F1 "000F1 "000D1 % LATIN SMALL LETTER N WITH TILDE
-\setXTXcharcodes "000F2 "000F2 "000D2 % LATIN SMALL LETTER O WITH GRAVE
-\setXTXcharcodes "000F3 "000F3 "000D3 % LATIN SMALL LETTER O WITH ACUTE
-\setXTXcharcodes "000F4 "000F4 "000D4 % LATIN SMALL LETTER O WITH CIRCUMFLEX
-\setXTXcharcodes "000F5 "000F5 "000D5 % LATIN SMALL LETTER O WITH TILDE
-\setXTXcharcodes "000F6 "000F6 "000D6 % LATIN SMALL LETTER O WITH DIAERESIS
-\setXTXcharcodes "000F8 "000F8 "000D8 % LATIN SMALL LETTER O WITH STROKE
-\setXTXcharcodes "000F9 "000F9 "000D9 % LATIN SMALL LETTER U WITH GRAVE
-\setXTXcharcodes "000FA "000FA "000DA % LATIN SMALL LETTER U WITH ACUTE
-\setXTXcharcodes "000FB "000FB "000DB % LATIN SMALL LETTER U WITH CIRCUMFLEX
-\setXTXcharcodes "000FC "000FC "000DC % LATIN SMALL LETTER U WITH DIAERESIS
-\setXTXcharcodes "000FD "000FD "000DD % LATIN SMALL LETTER Y WITH ACUTE
-\setXTXcharcodes "000FE "000FE "000DE % LATIN SMALL LETTER THORN
-\setXTXcharcodes "000FF "000FF "00178 % LATIN SMALL LETTER Y WITH DIAERESIS
-\setXTXcharcodes "00100 "00101 "00100 % LATIN CAPITAL LETTER A WITH MACRON
-\setXTXcharcodes "00101 "00101 "00100 % LATIN SMALL LETTER A WITH MACRON
-\setXTXcharcodes "00102 "00103 "00102 % LATIN CAPITAL LETTER A WITH BREVE
-\setXTXcharcodes "00103 "00103 "00102 % LATIN SMALL LETTER A WITH BREVE
-\setXTXcharcodes "00104 "00105 "00104 % LATIN CAPITAL LETTER A WITH OGONEK
-\setXTXcharcodes "00105 "00105 "00104 % LATIN SMALL LETTER A WITH OGONEK
-\setXTXcharcodes "00106 "00107 "00106 % LATIN CAPITAL LETTER C WITH ACUTE
-\setXTXcharcodes "00107 "00107 "00106 % LATIN SMALL LETTER C WITH ACUTE
-\setXTXcharcodes "00108 "00109 "00108 % LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-\setXTXcharcodes "00109 "00109 "00108 % LATIN SMALL LETTER C WITH CIRCUMFLEX
-\setXTXcharcodes "0010A "0010B "0010A % LATIN CAPITAL LETTER C WITH DOT ABOVE
-\setXTXcharcodes "0010B "0010B "0010A % LATIN SMALL LETTER C WITH DOT ABOVE
-\setXTXcharcodes "0010C "0010D "0010C % LATIN CAPITAL LETTER C WITH CARON
-\setXTXcharcodes "0010D "0010D "0010C % LATIN SMALL LETTER C WITH CARON
-\setXTXcharcodes "0010E "0010F "0010E % LATIN CAPITAL LETTER D WITH CARON
-\setXTXcharcodes "0010F "0010F "0010E % LATIN SMALL LETTER D WITH CARON
-\setXTXcharcodes "00110 "00111 "00110 % LATIN CAPITAL LETTER D WITH STROKE
-\setXTXcharcodes "00111 "00111 "00110 % LATIN SMALL LETTER D WITH STROKE
-\setXTXcharcodes "00112 "00113 "00112 % LATIN CAPITAL LETTER E WITH MACRON
-\setXTXcharcodes "00113 "00113 "00112 % LATIN SMALL LETTER E WITH MACRON
-\setXTXcharcodes "00114 "00115 "00114 % LATIN CAPITAL LETTER E WITH BREVE
-\setXTXcharcodes "00115 "00115 "00114 % LATIN SMALL LETTER E WITH BREVE
-\setXTXcharcodes "00116 "00117 "00116 % LATIN CAPITAL LETTER E WITH DOT ABOVE
-\setXTXcharcodes "00117 "00117 "00116 % LATIN SMALL LETTER E WITH DOT ABOVE
-\setXTXcharcodes "00118 "00119 "00118 % LATIN CAPITAL LETTER E WITH OGONEK
-\setXTXcharcodes "00119 "00119 "00118 % LATIN SMALL LETTER E WITH OGONEK
-\setXTXcharcodes "0011A "0011B "0011A % LATIN CAPITAL LETTER E WITH CARON
-\setXTXcharcodes "0011B "0011B "0011A % LATIN SMALL LETTER E WITH CARON
-\setXTXcharcodes "0011C "0011D "0011C % LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-\setXTXcharcodes "0011D "0011D "0011C % LATIN SMALL LETTER G WITH CIRCUMFLEX
-\setXTXcharcodes "0011E "0011F "0011E % LATIN CAPITAL LETTER G WITH BREVE
-\setXTXcharcodes "0011F "0011F "0011E % LATIN SMALL LETTER G WITH BREVE
-\setXTXcharcodes "00120 "00121 "00120 % LATIN CAPITAL LETTER G WITH DOT ABOVE
-\setXTXcharcodes "00121 "00121 "00120 % LATIN SMALL LETTER G WITH DOT ABOVE
-\setXTXcharcodes "00122 "00123 "00122 % LATIN CAPITAL LETTER G WITH CEDILLA
-\setXTXcharcodes "00123 "00123 "00122 % LATIN SMALL LETTER G WITH CEDILLA
-\setXTXcharcodes "00124 "00125 "00124 % LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-\setXTXcharcodes "00125 "00125 "00124 % LATIN SMALL LETTER H WITH CIRCUMFLEX
-\setXTXcharcodes "00126 "00127 "00126 % LATIN CAPITAL LETTER H WITH STROKE
-\setXTXcharcodes "00127 "00127 "00126 % LATIN SMALL LETTER H WITH STROKE
-\setXTXcharcodes "00128 "00129 "00128 % LATIN CAPITAL LETTER I WITH TILDE
-\setXTXcharcodes "00129 "00129 "00128 % LATIN SMALL LETTER I WITH TILDE
-\setXTXcharcodes "0012A "0012B "0012A % LATIN CAPITAL LETTER I WITH MACRON
-\setXTXcharcodes "0012B "0012B "0012A % LATIN SMALL LETTER I WITH MACRON
-\setXTXcharcodes "0012C "0012D "0012C % LATIN CAPITAL LETTER I WITH BREVE
-\setXTXcharcodes "0012D "0012D "0012C % LATIN SMALL LETTER I WITH BREVE
-\setXTXcharcodes "0012E "0012F "0012E % LATIN CAPITAL LETTER I WITH OGONEK
-\setXTXcharcodes "0012F "0012F "0012E % LATIN SMALL LETTER I WITH OGONEK
-\setXTXcharcodes "00130 "00069 "00130 % LATIN CAPITAL LETTER I WITH DOT ABOVE
-\setXTXcharcodes "00131 "00131 "00049 % LATIN SMALL LETTER DOTLESS I
-\setXTXcharcodes "00132 "00133 "00132 % LATIN CAPITAL LIGATURE IJ
-\setXTXcharcodes "00133 "00133 "00132 % LATIN SMALL LIGATURE IJ
-\setXTXcharcodes "00134 "00135 "00134 % LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-\setXTXcharcodes "00135 "00135 "00134 % LATIN SMALL LETTER J WITH CIRCUMFLEX
-\setXTXcharcodes "00136 "00137 "00136 % LATIN CAPITAL LETTER K WITH CEDILLA
-\setXTXcharcodes "00137 "00137 "00136 % LATIN SMALL LETTER K WITH CEDILLA
-\setXTXcharcodes "00138 "00138 "00138 % LATIN SMALL LETTER KRA
-\setXTXcharcodes "00139 "0013A "00139 % LATIN CAPITAL LETTER L WITH ACUTE
-\setXTXcharcodes "0013A "0013A "00139 % LATIN SMALL LETTER L WITH ACUTE
-\setXTXcharcodes "0013B "0013C "0013B % LATIN CAPITAL LETTER L WITH CEDILLA
-\setXTXcharcodes "0013C "0013C "0013B % LATIN SMALL LETTER L WITH CEDILLA
-\setXTXcharcodes "0013D "0013E "0013D % LATIN CAPITAL LETTER L WITH CARON
-\setXTXcharcodes "0013E "0013E "0013D % LATIN SMALL LETTER L WITH CARON
-\setXTXcharcodes "0013F "00140 "0013F % LATIN CAPITAL LETTER L WITH MIDDLE DOT
-\setXTXcharcodes "00140 "00140 "0013F % LATIN SMALL LETTER L WITH MIDDLE DOT
-\setXTXcharcodes "00141 "00142 "00141 % LATIN CAPITAL LETTER L WITH STROKE
-\setXTXcharcodes "00142 "00142 "00141 % LATIN SMALL LETTER L WITH STROKE
-\setXTXcharcodes "00143 "00144 "00143 % LATIN CAPITAL LETTER N WITH ACUTE
-\setXTXcharcodes "00144 "00144 "00143 % LATIN SMALL LETTER N WITH ACUTE
-\setXTXcharcodes "00145 "00146 "00145 % LATIN CAPITAL LETTER N WITH CEDILLA
-\setXTXcharcodes "00146 "00146 "00145 % LATIN SMALL LETTER N WITH CEDILLA
-\setXTXcharcodes "00147 "00148 "00147 % LATIN CAPITAL LETTER N WITH CARON
-\setXTXcharcodes "00148 "00148 "00147 % LATIN SMALL LETTER N WITH CARON
-\setXTXcharcodes "00149 "00149 "00149 % LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
-\setXTXcharcodes "0014A "0014B "0014A % LATIN CAPITAL LETTER ENG
-\setXTXcharcodes "0014B "0014B "0014A % LATIN SMALL LETTER ENG
-\setXTXcharcodes "0014C "0014D "0014C % LATIN CAPITAL LETTER O WITH MACRON
-\setXTXcharcodes "0014D "0014D "0014C % LATIN SMALL LETTER O WITH MACRON
-\setXTXcharcodes "0014E "0014F "0014E % LATIN CAPITAL LETTER O WITH BREVE
-\setXTXcharcodes "0014F "0014F "0014E % LATIN SMALL LETTER O WITH BREVE
-\setXTXcharcodes "00150 "00151 "00150 % LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-\setXTXcharcodes "00151 "00151 "00150 % LATIN SMALL LETTER O WITH DOUBLE ACUTE
-\setXTXcharcodes "00152 "00153 "00152 % LATIN CAPITAL LIGATURE OE
-\setXTXcharcodes "00153 "00153 "00152 % LATIN SMALL LIGATURE OE
-\setXTXcharcodes "00154 "00155 "00154 % LATIN CAPITAL LETTER R WITH ACUTE
-\setXTXcharcodes "00155 "00155 "00154 % LATIN SMALL LETTER R WITH ACUTE
-\setXTXcharcodes "00156 "00157 "00156 % LATIN CAPITAL LETTER R WITH CEDILLA
-\setXTXcharcodes "00157 "00157 "00156 % LATIN SMALL LETTER R WITH CEDILLA
-\setXTXcharcodes "00158 "00159 "00158 % LATIN CAPITAL LETTER R WITH CARON
-\setXTXcharcodes "00159 "00159 "00158 % LATIN SMALL LETTER R WITH CARON
-\setXTXcharcodes "0015A "0015B "0015A % LATIN CAPITAL LETTER S WITH ACUTE
-\setXTXcharcodes "0015B "0015B "0015A % LATIN SMALL LETTER S WITH ACUTE
-\setXTXcharcodes "0015C "0015D "0015C % LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-\setXTXcharcodes "0015D "0015D "0015C % LATIN SMALL LETTER S WITH CIRCUMFLEX
-\setXTXcharcodes "0015E "0015F "0015E % LATIN CAPITAL LETTER S WITH CEDILLA
-\setXTXcharcodes "0015F "0015F "0015E % LATIN SMALL LETTER S WITH CEDILLA
-\setXTXcharcodes "00160 "00161 "00160 % LATIN CAPITAL LETTER S WITH CARON
-\setXTXcharcodes "00161 "00161 "00160 % LATIN SMALL LETTER S WITH CARON
-\setXTXcharcodes "00162 "00163 "00162 % LATIN CAPITAL LETTER T WITH CEDILLA
-\setXTXcharcodes "00163 "00163 "00162 % LATIN SMALL LETTER T WITH CEDILLA
-\setXTXcharcodes "00164 "00165 "00164 % LATIN CAPITAL LETTER T WITH CARON
-\setXTXcharcodes "00165 "00165 "00164 % LATIN SMALL LETTER T WITH CARON
-\setXTXcharcodes "00166 "00167 "00166 % LATIN CAPITAL LETTER T WITH STROKE
-\setXTXcharcodes "00167 "00167 "00166 % LATIN SMALL LETTER T WITH STROKE
-\setXTXcharcodes "00168 "00169 "00168 % LATIN CAPITAL LETTER U WITH TILDE
-\setXTXcharcodes "00169 "00169 "00168 % LATIN SMALL LETTER U WITH TILDE
-\setXTXcharcodes "0016A "0016B "0016A % LATIN CAPITAL LETTER U WITH MACRON
-\setXTXcharcodes "0016B "0016B "0016A % LATIN SMALL LETTER U WITH MACRON
-\setXTXcharcodes "0016C "0016D "0016C % LATIN CAPITAL LETTER U WITH BREVE
-\setXTXcharcodes "0016D "0016D "0016C % LATIN SMALL LETTER U WITH BREVE
-\setXTXcharcodes "0016E "0016F "0016E % LATIN CAPITAL LETTER U WITH RING ABOVE
-\setXTXcharcodes "0016F "0016F "0016E % LATIN SMALL LETTER U WITH RING ABOVE
-\setXTXcharcodes "00170 "00171 "00170 % LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-\setXTXcharcodes "00171 "00171 "00170 % LATIN SMALL LETTER U WITH DOUBLE ACUTE
-\setXTXcharcodes "00172 "00173 "00172 % LATIN CAPITAL LETTER U WITH OGONEK
-\setXTXcharcodes "00173 "00173 "00172 % LATIN SMALL LETTER U WITH OGONEK
-\setXTXcharcodes "00174 "00175 "00174 % LATIN CAPITAL LETTER W WITH CIRCUMFLEX
-\setXTXcharcodes "00175 "00175 "00174 % LATIN SMALL LETTER W WITH CIRCUMFLEX
-\setXTXcharcodes "00176 "00177 "00176 % LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-\setXTXcharcodes "00177 "00177 "00176 % LATIN SMALL LETTER Y WITH CIRCUMFLEX
-\setXTXcharcodes "00178 "000FF "00178 % LATIN CAPITAL LETTER Y WITH DIAERESIS
-\setXTXcharcodes "00179 "0017A "00179 % LATIN CAPITAL LETTER Z WITH ACUTE
-\setXTXcharcodes "0017A "0017A "00179 % LATIN SMALL LETTER Z WITH ACUTE
-\setXTXcharcodes "0017B "0017C "0017B % LATIN CAPITAL LETTER Z WITH DOT ABOVE
-\setXTXcharcodes "0017C "0017C "0017B % LATIN SMALL LETTER Z WITH DOT ABOVE
-\setXTXcharcodes "0017D "0017E "0017D % LATIN CAPITAL LETTER Z WITH CARON
-\setXTXcharcodes "0017E "0017E "0017D % LATIN SMALL LETTER Z WITH CARON
-\setXTXcharcodes "0017F "0017F "00053 % LATIN SMALL LETTER LONG S
-\setXTXcharcodes "00180 "00180 "00243 % LATIN SMALL LETTER B WITH STROKE
-\setXTXcharcodes "00181 "00253 "00181 % LATIN CAPITAL LETTER B WITH HOOK
-\setXTXcharcodes "00182 "00183 "00182 % LATIN CAPITAL LETTER B WITH TOPBAR
-\setXTXcharcodes "00183 "00183 "00182 % LATIN SMALL LETTER B WITH TOPBAR
-\setXTXcharcodes "00184 "00185 "00184 % LATIN CAPITAL LETTER TONE SIX
-\setXTXcharcodes "00185 "00185 "00184 % LATIN SMALL LETTER TONE SIX
-\setXTXcharcodes "00186 "00254 "00186 % LATIN CAPITAL LETTER OPEN O
-\setXTXcharcodes "00187 "00188 "00187 % LATIN CAPITAL LETTER C WITH HOOK
-\setXTXcharcodes "00188 "00188 "00187 % LATIN SMALL LETTER C WITH HOOK
-\setXTXcharcodes "00189 "00256 "00189 % LATIN CAPITAL LETTER AFRICAN D
-\setXTXcharcodes "0018A "00257 "0018A % LATIN CAPITAL LETTER D WITH HOOK
-\setXTXcharcodes "0018B "0018C "0018B % LATIN CAPITAL LETTER D WITH TOPBAR
-\setXTXcharcodes "0018C "0018C "0018B % LATIN SMALL LETTER D WITH TOPBAR
-\setXTXcharcodes "0018D "0018D "0018D % LATIN SMALL LETTER TURNED DELTA
-\setXTXcharcodes "0018E "001DD "0018E % LATIN CAPITAL LETTER REVERSED E
-\setXTXcharcodes "0018F "00259 "0018F % LATIN CAPITAL LETTER SCHWA
-\setXTXcharcodes "00190 "0025B "00190 % LATIN CAPITAL LETTER OPEN E
-\setXTXcharcodes "00191 "00192 "00191 % LATIN CAPITAL LETTER F WITH HOOK
-\setXTXcharcodes "00192 "00192 "00191 % LATIN SMALL LETTER F WITH HOOK
-\setXTXcharcodes "00193 "00260 "00193 % LATIN CAPITAL LETTER G WITH HOOK
-\setXTXcharcodes "00194 "00263 "00194 % LATIN CAPITAL LETTER GAMMA
-\setXTXcharcodes "00195 "00195 "001F6 % LATIN SMALL LETTER HV
-\setXTXcharcodes "00196 "00269 "00196 % LATIN CAPITAL LETTER IOTA
-\setXTXcharcodes "00197 "00268 "00197 % LATIN CAPITAL LETTER I WITH STROKE
-\setXTXcharcodes "00198 "00199 "00198 % LATIN CAPITAL LETTER K WITH HOOK
-\setXTXcharcodes "00199 "00199 "00198 % LATIN SMALL LETTER K WITH HOOK
-\setXTXcharcodes "0019A "0019A "0023D % LATIN SMALL LETTER L WITH BAR
-\setXTXcharcodes "0019B "0019B "0019B % LATIN SMALL LETTER LAMBDA WITH STROKE
-\setXTXcharcodes "0019C "0026F "0019C % LATIN CAPITAL LETTER TURNED M
-\setXTXcharcodes "0019D "00272 "0019D % LATIN CAPITAL LETTER N WITH LEFT HOOK
-\setXTXcharcodes "0019E "0019E "00220 % LATIN SMALL LETTER N WITH LONG RIGHT LEG
-\setXTXcharcodes "0019F "00275 "0019F % LATIN CAPITAL LETTER O WITH MIDDLE TILDE
-\setXTXcharcodes "001A0 "001A1 "001A0 % LATIN CAPITAL LETTER O WITH HORN
-\setXTXcharcodes "001A1 "001A1 "001A0 % LATIN SMALL LETTER O WITH HORN
-\setXTXcharcodes "001A2 "001A3 "001A2 % LATIN CAPITAL LETTER OI
-\setXTXcharcodes "001A3 "001A3 "001A2 % LATIN SMALL LETTER OI
-\setXTXcharcodes "001A4 "001A5 "001A4 % LATIN CAPITAL LETTER P WITH HOOK
-\setXTXcharcodes "001A5 "001A5 "001A4 % LATIN SMALL LETTER P WITH HOOK
-\setXTXcharcodes "001A6 "00280 "001A6 % LATIN LETTER YR
-\setXTXcharcodes "001A7 "001A8 "001A7 % LATIN CAPITAL LETTER TONE TWO
-\setXTXcharcodes "001A8 "001A8 "001A7 % LATIN SMALL LETTER TONE TWO
-\setXTXcharcodes "001A9 "00283 "001A9 % LATIN CAPITAL LETTER ESH
-\setXTXcharcodes "001AA "001AA "001AA % LATIN LETTER REVERSED ESH LOOP
-\setXTXcharcodes "001AB "001AB "001AB % LATIN SMALL LETTER T WITH PALATAL HOOK
-\setXTXcharcodes "001AC "001AD "001AC % LATIN CAPITAL LETTER T WITH HOOK
-\setXTXcharcodes "001AD "001AD "001AC % LATIN SMALL LETTER T WITH HOOK
-\setXTXcharcodes "001AE "00288 "001AE % LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
-\setXTXcharcodes "001AF "001B0 "001AF % LATIN CAPITAL LETTER U WITH HORN
-\setXTXcharcodes "001B0 "001B0 "001AF % LATIN SMALL LETTER U WITH HORN
-\setXTXcharcodes "001B1 "0028A "001B1 % LATIN CAPITAL LETTER UPSILON
-\setXTXcharcodes "001B2 "0028B "001B2 % LATIN CAPITAL LETTER V WITH HOOK
-\setXTXcharcodes "001B3 "001B4 "001B3 % LATIN CAPITAL LETTER Y WITH HOOK
-\setXTXcharcodes "001B4 "001B4 "001B3 % LATIN SMALL LETTER Y WITH HOOK
-\setXTXcharcodes "001B5 "001B6 "001B5 % LATIN CAPITAL LETTER Z WITH STROKE
-\setXTXcharcodes "001B6 "001B6 "001B5 % LATIN SMALL LETTER Z WITH STROKE
-\setXTXcharcodes "001B7 "00292 "001B7 % LATIN CAPITAL LETTER EZH
-\setXTXcharcodes "001B8 "001B9 "001B8 % LATIN CAPITAL LETTER EZH REVERSED
-\setXTXcharcodes "001B9 "001B9 "001B8 % LATIN SMALL LETTER EZH REVERSED
-\setXTXcharcodes "001BA "001BA "001BA % LATIN SMALL LETTER EZH WITH TAIL
-\setXTXcharcodes "001BC "001BD "001BC % LATIN CAPITAL LETTER TONE FIVE
-\setXTXcharcodes "001BD "001BD "001BC % LATIN SMALL LETTER TONE FIVE
-\setXTXcharcodes "001BE "001BE "001BE % LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
-\setXTXcharcodes "001BF "001BF "001F7 % LATIN LETTER WYNN
-\setXTXcharcodes "001C4 "001C6 "001C5 % LATIN CAPITAL LETTER DZ WITH CARON
-\setXTXcharcodes "001C5 "001C6 "001C4 % LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
-\setXTXcharcodes "001C6 "001C6 "001C4 % LATIN SMALL LETTER DZ WITH CARON
-\setXTXcharcodes "001C7 "001C9 "001C8 % LATIN CAPITAL LETTER LJ
-\setXTXcharcodes "001C8 "001C9 "001C7 % LATIN CAPITAL LETTER L WITH SMALL LETTER J
-\setXTXcharcodes "001C9 "001C9 "001C7 % LATIN SMALL LETTER LJ
-\setXTXcharcodes "001CA "001CC "001CB % LATIN CAPITAL LETTER NJ
-\setXTXcharcodes "001CB "001CC "001CA % LATIN CAPITAL LETTER N WITH SMALL LETTER J
-\setXTXcharcodes "001CC "001CC "001CA % LATIN SMALL LETTER NJ
-\setXTXcharcodes "001CD "001CE "001CD % LATIN CAPITAL LETTER A WITH CARON
-\setXTXcharcodes "001CE "001CE "001CD % LATIN SMALL LETTER A WITH CARON
-\setXTXcharcodes "001CF "001D0 "001CF % LATIN CAPITAL LETTER I WITH CARON
-\setXTXcharcodes "001D0 "001D0 "001CF % LATIN SMALL LETTER I WITH CARON
-\setXTXcharcodes "001D1 "001D2 "001D1 % LATIN CAPITAL LETTER O WITH CARON
-\setXTXcharcodes "001D2 "001D2 "001D1 % LATIN SMALL LETTER O WITH CARON
-\setXTXcharcodes "001D3 "001D4 "001D3 % LATIN CAPITAL LETTER U WITH CARON
-\setXTXcharcodes "001D4 "001D4 "001D3 % LATIN SMALL LETTER U WITH CARON
-\setXTXcharcodes "001D5 "001D6 "001D5 % LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
-\setXTXcharcodes "001D6 "001D6 "001D5 % LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
-\setXTXcharcodes "001D7 "001D8 "001D7 % LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
-\setXTXcharcodes "001D8 "001D8 "001D7 % LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
-\setXTXcharcodes "001D9 "001DA "001D9 % LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
-\setXTXcharcodes "001DA "001DA "001D9 % LATIN SMALL LETTER U WITH DIAERESIS AND CARON
-\setXTXcharcodes "001DB "001DC "001DB % LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
-\setXTXcharcodes "001DC "001DC "001DB % LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
-\setXTXcharcodes "001DD "001DD "0018E % LATIN SMALL LETTER TURNED E
-\setXTXcharcodes "001DE "001DF "001DE % LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
-\setXTXcharcodes "001DF "001DF "001DE % LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
-\setXTXcharcodes "001E0 "001E1 "001E0 % LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
-\setXTXcharcodes "001E1 "001E1 "001E0 % LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
-\setXTXcharcodes "001E2 "001E3 "001E2 % LATIN CAPITAL LETTER AE WITH MACRON
-\setXTXcharcodes "001E3 "001E3 "001E2 % LATIN SMALL LETTER AE WITH MACRON
-\setXTXcharcodes "001E4 "001E5 "001E4 % LATIN CAPITAL LETTER G WITH STROKE
-\setXTXcharcodes "001E5 "001E5 "001E4 % LATIN SMALL LETTER G WITH STROKE
-\setXTXcharcodes "001E6 "001E7 "001E6 % LATIN CAPITAL LETTER G WITH CARON
-\setXTXcharcodes "001E7 "001E7 "001E6 % LATIN SMALL LETTER G WITH CARON
-\setXTXcharcodes "001E8 "001E9 "001E8 % LATIN CAPITAL LETTER K WITH CARON
-\setXTXcharcodes "001E9 "001E9 "001E8 % LATIN SMALL LETTER K WITH CARON
-\setXTXcharcodes "001EA "001EB "001EA % LATIN CAPITAL LETTER O WITH OGONEK
-\setXTXcharcodes "001EB "001EB "001EA % LATIN SMALL LETTER O WITH OGONEK
-\setXTXcharcodes "001EC "001ED "001EC % LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
-\setXTXcharcodes "001ED "001ED "001EC % LATIN SMALL LETTER O WITH OGONEK AND MACRON
-\setXTXcharcodes "001EE "001EF "001EE % LATIN CAPITAL LETTER EZH WITH CARON
-\setXTXcharcodes "001EF "001EF "001EE % LATIN SMALL LETTER EZH WITH CARON
-\setXTXcharcodes "001F0 "001F0 "001F0 % LATIN SMALL LETTER J WITH CARON
-\setXTXcharcodes "001F1 "001F3 "001F2 % LATIN CAPITAL LETTER DZ
-\setXTXcharcodes "001F2 "001F3 "001F1 % LATIN CAPITAL LETTER D WITH SMALL LETTER Z
-\setXTXcharcodes "001F3 "001F3 "001F1 % LATIN SMALL LETTER DZ
-\setXTXcharcodes "001F4 "001F5 "001F4 % LATIN CAPITAL LETTER G WITH ACUTE
-\setXTXcharcodes "001F5 "001F5 "001F4 % LATIN SMALL LETTER G WITH ACUTE
-\setXTXcharcodes "001F6 "00195 "001F6 % LATIN CAPITAL LETTER HWAIR
-\setXTXcharcodes "001F7 "001BF "001F7 % LATIN CAPITAL LETTER WYNN
-\setXTXcharcodes "001F8 "001F9 "001F8 % LATIN CAPITAL LETTER N WITH GRAVE
-\setXTXcharcodes "001F9 "001F9 "001F8 % LATIN SMALL LETTER N WITH GRAVE
-\setXTXcharcodes "001FA "001FB "001FA % LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
-\setXTXcharcodes "001FB "001FB "001FA % LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
-\setXTXcharcodes "001FC "001FD "001FC % LATIN CAPITAL LETTER AE WITH ACUTE
-\setXTXcharcodes "001FD "001FD "001FC % LATIN SMALL LETTER AE WITH ACUTE
-\setXTXcharcodes "001FE "001FF "001FE % LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
-\setXTXcharcodes "001FF "001FF "001FE % LATIN SMALL LETTER O WITH STROKE AND ACUTE
-\setXTXcharcodes "00200 "00201 "00200 % LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
-\setXTXcharcodes "00201 "00201 "00200 % LATIN SMALL LETTER A WITH DOUBLE GRAVE
-\setXTXcharcodes "00202 "00203 "00202 % LATIN CAPITAL LETTER A WITH INVERTED BREVE
-\setXTXcharcodes "00203 "00203 "00202 % LATIN SMALL LETTER A WITH INVERTED BREVE
-\setXTXcharcodes "00204 "00205 "00204 % LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
-\setXTXcharcodes "00205 "00205 "00204 % LATIN SMALL LETTER E WITH DOUBLE GRAVE
-\setXTXcharcodes "00206 "00207 "00206 % LATIN CAPITAL LETTER E WITH INVERTED BREVE
-\setXTXcharcodes "00207 "00207 "00206 % LATIN SMALL LETTER E WITH INVERTED BREVE
-\setXTXcharcodes "00208 "00209 "00208 % LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
-\setXTXcharcodes "00209 "00209 "00208 % LATIN SMALL LETTER I WITH DOUBLE GRAVE
-\setXTXcharcodes "0020A "0020B "0020A % LATIN CAPITAL LETTER I WITH INVERTED BREVE
-\setXTXcharcodes "0020B "0020B "0020A % LATIN SMALL LETTER I WITH INVERTED BREVE
-\setXTXcharcodes "0020C "0020D "0020C % LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
-\setXTXcharcodes "0020D "0020D "0020C % LATIN SMALL LETTER O WITH DOUBLE GRAVE
-\setXTXcharcodes "0020E "0020F "0020E % LATIN CAPITAL LETTER O WITH INVERTED BREVE
-\setXTXcharcodes "0020F "0020F "0020E % LATIN SMALL LETTER O WITH INVERTED BREVE
-\setXTXcharcodes "00210 "00211 "00210 % LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
-\setXTXcharcodes "00211 "00211 "00210 % LATIN SMALL LETTER R WITH DOUBLE GRAVE
-\setXTXcharcodes "00212 "00213 "00212 % LATIN CAPITAL LETTER R WITH INVERTED BREVE
-\setXTXcharcodes "00213 "00213 "00212 % LATIN SMALL LETTER R WITH INVERTED BREVE
-\setXTXcharcodes "00214 "00215 "00214 % LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
-\setXTXcharcodes "00215 "00215 "00214 % LATIN SMALL LETTER U WITH DOUBLE GRAVE
-\setXTXcharcodes "00216 "00217 "00216 % LATIN CAPITAL LETTER U WITH INVERTED BREVE
-\setXTXcharcodes "00217 "00217 "00216 % LATIN SMALL LETTER U WITH INVERTED BREVE
-\setXTXcharcodes "00218 "00219 "00218 % LATIN CAPITAL LETTER S WITH COMMA BELOW
-\setXTXcharcodes "00219 "00219 "00218 % LATIN SMALL LETTER S WITH COMMA BELOW
-\setXTXcharcodes "0021A "0021B "0021A % LATIN CAPITAL LETTER T WITH COMMA BELOW
-\setXTXcharcodes "0021B "0021B "0021A % LATIN SMALL LETTER T WITH COMMA BELOW
-\setXTXcharcodes "0021C "0021D "0021C % LATIN CAPITAL LETTER YOGH
-\setXTXcharcodes "0021D "0021D "0021C % LATIN SMALL LETTER YOGH
-\setXTXcharcodes "0021E "0021F "0021E % LATIN CAPITAL LETTER H WITH CARON
-\setXTXcharcodes "0021F "0021F "0021E % LATIN SMALL LETTER H WITH CARON
-\setXTXcharcodes "00220 "0019E "00220 % LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
-\setXTXcharcodes "00221 "00221 "00221 % LATIN SMALL LETTER D WITH CURL
-\setXTXcharcodes "00222 "00223 "00222 % LATIN CAPITAL LETTER OU
-\setXTXcharcodes "00223 "00223 "00222 % LATIN SMALL LETTER OU
-\setXTXcharcodes "00224 "00225 "00224 % LATIN CAPITAL LETTER Z WITH HOOK
-\setXTXcharcodes "00225 "00225 "00224 % LATIN SMALL LETTER Z WITH HOOK
-\setXTXcharcodes "00226 "00227 "00226 % LATIN CAPITAL LETTER A WITH DOT ABOVE
-\setXTXcharcodes "00227 "00227 "00226 % LATIN SMALL LETTER A WITH DOT ABOVE
-\setXTXcharcodes "00228 "00229 "00228 % LATIN CAPITAL LETTER E WITH CEDILLA
-\setXTXcharcodes "00229 "00229 "00228 % LATIN SMALL LETTER E WITH CEDILLA
-\setXTXcharcodes "0022A "0022B "0022A % LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
-\setXTXcharcodes "0022B "0022B "0022A % LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
-\setXTXcharcodes "0022C "0022D "0022C % LATIN CAPITAL LETTER O WITH TILDE AND MACRON
-\setXTXcharcodes "0022D "0022D "0022C % LATIN SMALL LETTER O WITH TILDE AND MACRON
-\setXTXcharcodes "0022E "0022F "0022E % LATIN CAPITAL LETTER O WITH DOT ABOVE
-\setXTXcharcodes "0022F "0022F "0022E % LATIN SMALL LETTER O WITH DOT ABOVE
-\setXTXcharcodes "00230 "00231 "00230 % LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
-\setXTXcharcodes "00231 "00231 "00230 % LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
-\setXTXcharcodes "00232 "00233 "00232 % LATIN CAPITAL LETTER Y WITH MACRON
-\setXTXcharcodes "00233 "00233 "00232 % LATIN SMALL LETTER Y WITH MACRON
-\setXTXcharcodes "00234 "00234 "00234 % LATIN SMALL LETTER L WITH CURL
-\setXTXcharcodes "00235 "00235 "00235 % LATIN SMALL LETTER N WITH CURL
-\setXTXcharcodes "00236 "00236 "00236 % LATIN SMALL LETTER T WITH CURL
-\setXTXcharcodes "00237 "00237 "00237 % LATIN SMALL LETTER DOTLESS J
-\setXTXcharcodes "00238 "00238 "00238 % LATIN SMALL LETTER DB DIGRAPH
-\setXTXcharcodes "00239 "00239 "00239 % LATIN SMALL LETTER QP DIGRAPH
-\setXTXcharcodes "0023A "02C65 "0023A % LATIN CAPITAL LETTER A WITH STROKE
-\setXTXcharcodes "0023B "0023C "0023B % LATIN CAPITAL LETTER C WITH STROKE
-\setXTXcharcodes "0023C "0023C "0023B % LATIN SMALL LETTER C WITH STROKE
-\setXTXcharcodes "0023D "0019A "0023D % LATIN CAPITAL LETTER L WITH BAR
-\setXTXcharcodes "0023E "02C66 "0023E % LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
-\setXTXcharcodes "0023F "0023F "0023F % LATIN SMALL LETTER S WITH SWASH TAIL
-\setXTXcharcodes "00240 "00240 "00240 % LATIN SMALL LETTER Z WITH SWASH TAIL
-\setXTXcharcodes "00241 "00242 "00241 % LATIN CAPITAL LETTER GLOTTAL STOP
-\setXTXcharcodes "00242 "00242 "00241 % LATIN SMALL LETTER GLOTTAL STOP
-\setXTXcharcodes "00243 "00180 "00243 % LATIN CAPITAL LETTER B WITH STROKE
-\setXTXcharcodes "00244 "00289 "00244 % LATIN CAPITAL LETTER U BAR
-\setXTXcharcodes "00245 "0028C "00245 % LATIN CAPITAL LETTER TURNED V
-\setXTXcharcodes "00246 "00247 "00246 % LATIN CAPITAL LETTER E WITH STROKE
-\setXTXcharcodes "00247 "00247 "00246 % LATIN SMALL LETTER E WITH STROKE
-\setXTXcharcodes "00248 "00249 "00248 % LATIN CAPITAL LETTER J WITH STROKE
-\setXTXcharcodes "00249 "00249 "00248 % LATIN SMALL LETTER J WITH STROKE
-\setXTXcharcodes "0024A "0024B "0024A % LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
-\setXTXcharcodes "0024B "0024B "0024A % LATIN SMALL LETTER Q WITH HOOK TAIL
-\setXTXcharcodes "0024C "0024D "0024C % LATIN CAPITAL LETTER R WITH STROKE
-\setXTXcharcodes "0024D "0024D "0024C % LATIN SMALL LETTER R WITH STROKE
-\setXTXcharcodes "0024E "0024F "0024E % LATIN CAPITAL LETTER Y WITH STROKE
-\setXTXcharcodes "0024F "0024F "0024E % LATIN SMALL LETTER Y WITH STROKE
-\setXTXcharcodes "00250 "00250 "00250 % LATIN SMALL LETTER TURNED A
-\setXTXcharcodes "00251 "00251 "00251 % LATIN SMALL LETTER ALPHA
-\setXTXcharcodes "00252 "00252 "00252 % LATIN SMALL LETTER TURNED ALPHA
-\setXTXcharcodes "00253 "00253 "00181 % LATIN SMALL LETTER B WITH HOOK
-\setXTXcharcodes "00254 "00254 "00186 % LATIN SMALL LETTER OPEN O
-\setXTXcharcodes "00255 "00255 "00255 % LATIN SMALL LETTER C WITH CURL
-\setXTXcharcodes "00256 "00256 "00189 % LATIN SMALL LETTER D WITH TAIL
-\setXTXcharcodes "00257 "00257 "0018A % LATIN SMALL LETTER D WITH HOOK
-\setXTXcharcodes "00258 "00258 "00258 % LATIN SMALL LETTER REVERSED E
-\setXTXcharcodes "00259 "00259 "0018F % LATIN SMALL LETTER SCHWA
-\setXTXcharcodes "0025A "0025A "0025A % LATIN SMALL LETTER SCHWA WITH HOOK
-\setXTXcharcodes "0025B "0025B "00190 % LATIN SMALL LETTER OPEN E
-\setXTXcharcodes "0025C "0025C "0025C % LATIN SMALL LETTER REVERSED OPEN E
-\setXTXcharcodes "0025D "0025D "0025D % LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
-\setXTXcharcodes "0025E "0025E "0025E % LATIN SMALL LETTER CLOSED REVERSED OPEN E
-\setXTXcharcodes "0025F "0025F "0025F % LATIN SMALL LETTER DOTLESS J WITH STROKE
-\setXTXcharcodes "00260 "00260 "00193 % LATIN SMALL LETTER G WITH HOOK
-\setXTXcharcodes "00261 "00261 "00261 % LATIN SMALL LETTER SCRIPT G
-\setXTXcharcodes "00262 "00262 "00262 % LATIN LETTER SMALL CAPITAL G
-\setXTXcharcodes "00263 "00263 "00194 % LATIN SMALL LETTER GAMMA
-\setXTXcharcodes "00264 "00264 "00264 % LATIN SMALL LETTER RAMS HORN
-\setXTXcharcodes "00265 "00265 "00265 % LATIN SMALL LETTER TURNED H
-\setXTXcharcodes "00266 "00266 "00266 % LATIN SMALL LETTER H WITH HOOK
-\setXTXcharcodes "00267 "00267 "00267 % LATIN SMALL LETTER HENG WITH HOOK
-\setXTXcharcodes "00268 "00268 "00197 % LATIN SMALL LETTER I WITH STROKE
-\setXTXcharcodes "00269 "00269 "00196 % LATIN SMALL LETTER IOTA
-\setXTXcharcodes "0026A "0026A "0026A % LATIN LETTER SMALL CAPITAL I
-\setXTXcharcodes "0026B "0026B "02C62 % LATIN SMALL LETTER L WITH MIDDLE TILDE
-\setXTXcharcodes "0026C "0026C "0026C % LATIN SMALL LETTER L WITH BELT
-\setXTXcharcodes "0026D "0026D "0026D % LATIN SMALL LETTER L WITH RETROFLEX HOOK
-\setXTXcharcodes "0026E "0026E "0026E % LATIN SMALL LETTER LEZH
-\setXTXcharcodes "0026F "0026F "0019C % LATIN SMALL LETTER TURNED M
-\setXTXcharcodes "00270 "00270 "00270 % LATIN SMALL LETTER TURNED M WITH LONG LEG
-\setXTXcharcodes "00271 "00271 "00271 % LATIN SMALL LETTER M WITH HOOK
-\setXTXcharcodes "00272 "00272 "0019D % LATIN SMALL LETTER N WITH LEFT HOOK
-\setXTXcharcodes "00273 "00273 "00273 % LATIN SMALL LETTER N WITH RETROFLEX HOOK
-\setXTXcharcodes "00274 "00274 "00274 % LATIN LETTER SMALL CAPITAL N
-\setXTXcharcodes "00275 "00275 "0019F % LATIN SMALL LETTER BARRED O
-\setXTXcharcodes "00276 "00276 "00276 % LATIN LETTER SMALL CAPITAL OE
-\setXTXcharcodes "00277 "00277 "00277 % LATIN SMALL LETTER CLOSED OMEGA
-\setXTXcharcodes "00278 "00278 "00278 % LATIN SMALL LETTER PHI
-\setXTXcharcodes "00279 "00279 "00279 % LATIN SMALL LETTER TURNED R
-\setXTXcharcodes "0027A "0027A "0027A % LATIN SMALL LETTER TURNED R WITH LONG LEG
-\setXTXcharcodes "0027B "0027B "0027B % LATIN SMALL LETTER TURNED R WITH HOOK
-\setXTXcharcodes "0027C "0027C "0027C % LATIN SMALL LETTER R WITH LONG LEG
-\setXTXcharcodes "0027D "0027D "02C64 % LATIN SMALL LETTER R WITH TAIL
-\setXTXcharcodes "0027E "0027E "0027E % LATIN SMALL LETTER R WITH FISHHOOK
-\setXTXcharcodes "0027F "0027F "0027F % LATIN SMALL LETTER REVERSED R WITH FISHHOOK
-\setXTXcharcodes "00280 "00280 "001A6 % LATIN LETTER SMALL CAPITAL R
-\setXTXcharcodes "00281 "00281 "00281 % LATIN LETTER SMALL CAPITAL INVERTED R
-\setXTXcharcodes "00282 "00282 "00282 % LATIN SMALL LETTER S WITH HOOK
-\setXTXcharcodes "00283 "00283 "001A9 % LATIN SMALL LETTER ESH
-\setXTXcharcodes "00284 "00284 "00284 % LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
-\setXTXcharcodes "00285 "00285 "00285 % LATIN SMALL LETTER SQUAT REVERSED ESH
-\setXTXcharcodes "00286 "00286 "00286 % LATIN SMALL LETTER ESH WITH CURL
-\setXTXcharcodes "00287 "00287 "00287 % LATIN SMALL LETTER TURNED T
-\setXTXcharcodes "00288 "00288 "001AE % LATIN SMALL LETTER T WITH RETROFLEX HOOK
-\setXTXcharcodes "00289 "00289 "00244 % LATIN SMALL LETTER U BAR
-\setXTXcharcodes "0028A "0028A "001B1 % LATIN SMALL LETTER UPSILON
-\setXTXcharcodes "0028B "0028B "001B2 % LATIN SMALL LETTER V WITH HOOK
-\setXTXcharcodes "0028C "0028C "00245 % LATIN SMALL LETTER TURNED V
-\setXTXcharcodes "0028D "0028D "0028D % LATIN SMALL LETTER TURNED W
-\setXTXcharcodes "0028E "0028E "0028E % LATIN SMALL LETTER TURNED Y
-\setXTXcharcodes "0028F "0028F "0028F % LATIN LETTER SMALL CAPITAL Y
-\setXTXcharcodes "00290 "00290 "00290 % LATIN SMALL LETTER Z WITH RETROFLEX HOOK
-\setXTXcharcodes "00291 "00291 "00291 % LATIN SMALL LETTER Z WITH CURL
-\setXTXcharcodes "00292 "00292 "001B7 % LATIN SMALL LETTER EZH
-\setXTXcharcodes "00293 "00293 "00293 % LATIN SMALL LETTER EZH WITH CURL
-\setXTXcharcodes "00295 "00295 "00295 % LATIN LETTER PHARYNGEAL VOICED FRICATIVE
-\setXTXcharcodes "00296 "00296 "00296 % LATIN LETTER INVERTED GLOTTAL STOP
-\setXTXcharcodes "00297 "00297 "00297 % LATIN LETTER STRETCHED C
-\setXTXcharcodes "00298 "00298 "00298 % LATIN LETTER BILABIAL CLICK
-\setXTXcharcodes "00299 "00299 "00299 % LATIN LETTER SMALL CAPITAL B
-\setXTXcharcodes "0029A "0029A "0029A % LATIN SMALL LETTER CLOSED OPEN E
-\setXTXcharcodes "0029B "0029B "0029B % LATIN LETTER SMALL CAPITAL G WITH HOOK
-\setXTXcharcodes "0029C "0029C "0029C % LATIN LETTER SMALL CAPITAL H
-\setXTXcharcodes "0029D "0029D "0029D % LATIN SMALL LETTER J WITH CROSSED-TAIL
-\setXTXcharcodes "0029E "0029E "0029E % LATIN SMALL LETTER TURNED K
-\setXTXcharcodes "0029F "0029F "0029F % LATIN LETTER SMALL CAPITAL L
-\setXTXcharcodes "002A0 "002A0 "002A0 % LATIN SMALL LETTER Q WITH HOOK
-\setXTXcharcodes "002A1 "002A1 "002A1 % LATIN LETTER GLOTTAL STOP WITH STROKE
-\setXTXcharcodes "002A2 "002A2 "002A2 % LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
-\setXTXcharcodes "002A3 "002A3 "002A3 % LATIN SMALL LETTER DZ DIGRAPH
-\setXTXcharcodes "002A4 "002A4 "002A4 % LATIN SMALL LETTER DEZH DIGRAPH
-\setXTXcharcodes "002A5 "002A5 "002A5 % LATIN SMALL LETTER DZ DIGRAPH WITH CURL
-\setXTXcharcodes "002A6 "002A6 "002A6 % LATIN SMALL LETTER TS DIGRAPH
-\setXTXcharcodes "002A7 "002A7 "002A7 % LATIN SMALL LETTER TESH DIGRAPH
-\setXTXcharcodes "002A8 "002A8 "002A8 % LATIN SMALL LETTER TC DIGRAPH WITH CURL
-\setXTXcharcodes "002A9 "002A9 "002A9 % LATIN SMALL LETTER FENG DIGRAPH
-\setXTXcharcodes "002AA "002AA "002AA % LATIN SMALL LETTER LS DIGRAPH
-\setXTXcharcodes "002AB "002AB "002AB % LATIN SMALL LETTER LZ DIGRAPH
-\setXTXcharcodes "002AC "002AC "002AC % LATIN LETTER BILABIAL PERCUSSIVE
-\setXTXcharcodes "002AD "002AD "002AD % LATIN LETTER BIDENTAL PERCUSSIVE
-\setXTXcharcodes "002AE "002AE "002AE % LATIN SMALL LETTER TURNED H WITH FISHHOOK
-\setXTXcharcodes "002AF "002AF "002AF % LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
-\setXTXcharcodes "00370 "00370 "00370 % GREEK CAPITAL LETTER HETA
-\setXTXcharcodes "00371 "00371 "00371 % GREEK SMALL LETTER HETA
-\setXTXcharcodes "00372 "00372 "00372 % GREEK CAPITAL LETTER ARCHAIC SAMPI
-\setXTXcharcodes "00373 "00373 "00373 % GREEK SMALL LETTER ARCHAIC SAMPI
-\setXTXcharcodes "00376 "00376 "00376 % GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
-\setXTXcharcodes "00377 "00377 "00377 % GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
-\setXTXcharcodes "0037B "0037B "003FD % GREEK SMALL REVERSED LUNATE SIGMA SYMBOL
-\setXTXcharcodes "0037C "0037C "003FE % GREEK SMALL DOTTED LUNATE SIGMA SYMBOL
-\setXTXcharcodes "0037D "0037D "003FF % GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
-\setXTXcharcodes "0037F "0037F "0037F % GREEK CAPITAL LETTER YOT
-\setXTXcharcodes "00386 "003AC "00386 % GREEK CAPITAL LETTER ALPHA WITH TONOS
-\setXTXcharcodes "00388 "003AD "00388 % GREEK CAPITAL LETTER EPSILON WITH TONOS
-\setXTXcharcodes "00389 "003AE "00389 % GREEK CAPITAL LETTER ETA WITH TONOS
-\setXTXcharcodes "0038A "003AF "0038A % GREEK CAPITAL LETTER IOTA WITH TONOS
-\setXTXcharcodes "0038C "003CC "0038C % GREEK CAPITAL LETTER OMICRON WITH TONOS
-\setXTXcharcodes "0038E "003CD "0038E % GREEK CAPITAL LETTER UPSILON WITH TONOS
-\setXTXcharcodes "0038F "003CE "0038F % GREEK CAPITAL LETTER OMEGA WITH TONOS
-\setXTXcharcodes "00390 "00390 "00390 % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-\setXTXcharcodes "00391 "003B1 "00391 % GREEK CAPITAL LETTER ALPHA
-\setXTXcharcodes "00392 "003B2 "00392 % GREEK CAPITAL LETTER BETA
-\setXTXcharcodes "00393 "003B3 "00393 % GREEK CAPITAL LETTER GAMMA
-\setXTXcharcodes "00394 "003B4 "00394 % GREEK CAPITAL LETTER DELTA
-\setXTXcharcodes "00395 "003B5 "00395 % GREEK CAPITAL LETTER EPSILON
-\setXTXcharcodes "00396 "003B6 "00396 % GREEK CAPITAL LETTER ZETA
-\setXTXcharcodes "00397 "003B7 "00397 % GREEK CAPITAL LETTER ETA
-\setXTXcharcodes "00398 "003B8 "00398 % GREEK CAPITAL LETTER THETA
-\setXTXcharcodes "00399 "003B9 "00399 % GREEK CAPITAL LETTER IOTA
-\setXTXcharcodes "0039A "003BA "0039A % GREEK CAPITAL LETTER KAPPA
-\setXTXcharcodes "0039B "003BB "0039B % GREEK CAPITAL LETTER LAMDA
-\setXTXcharcodes "0039C "003BC "0039C % GREEK CAPITAL LETTER MU
-\setXTXcharcodes "0039D "003BD "0039D % GREEK CAPITAL LETTER NU
-\setXTXcharcodes "0039E "003BE "0039E % GREEK CAPITAL LETTER XI
-\setXTXcharcodes "0039F "003BF "0039F % GREEK CAPITAL LETTER OMICRON
-\setXTXcharcodes "003A0 "003C0 "003A0 % GREEK CAPITAL LETTER PI
-\setXTXcharcodes "003A1 "003C1 "003A1 % GREEK CAPITAL LETTER RHO
-\setXTXcharcodes "003A3 "003C3 "003A3 % GREEK CAPITAL LETTER SIGMA
-\setXTXcharcodes "003A4 "003C4 "003A4 % GREEK CAPITAL LETTER TAU
-\setXTXcharcodes "003A5 "003C5 "003A5 % GREEK CAPITAL LETTER UPSILON
-\setXTXcharcodes "003A6 "003C6 "003A6 % GREEK CAPITAL LETTER PHI
-\setXTXcharcodes "003A7 "003C7 "003A7 % GREEK CAPITAL LETTER CHI
-\setXTXcharcodes "003A8 "003C8 "003A8 % GREEK CAPITAL LETTER PSI
-\setXTXcharcodes "003A9 "003C9 "003A9 % GREEK CAPITAL LETTER OMEGA
-\setXTXcharcodes "003AA "003CA "003AA % GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-\setXTXcharcodes "003AB "003CB "003AB % GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-\setXTXcharcodes "003AC "003AC "00386 % GREEK SMALL LETTER ALPHA WITH TONOS
-\setXTXcharcodes "003AD "003AD "00388 % GREEK SMALL LETTER EPSILON WITH TONOS
-\setXTXcharcodes "003AE "003AE "00389 % GREEK SMALL LETTER ETA WITH TONOS
-\setXTXcharcodes "003AF "003AF "0038A % GREEK SMALL LETTER IOTA WITH TONOS
-\setXTXcharcodes "003B0 "003B0 "003B0 % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-\setXTXcharcodes "003B1 "003B1 "00391 % GREEK SMALL LETTER ALPHA
-\setXTXcharcodes "003B2 "003B2 "00392 % GREEK SMALL LETTER BETA
-\setXTXcharcodes "003B3 "003B3 "00393 % GREEK SMALL LETTER GAMMA
-\setXTXcharcodes "003B4 "003B4 "00394 % GREEK SMALL LETTER DELTA
-\setXTXcharcodes "003B5 "003B5 "00395 % GREEK SMALL LETTER EPSILON
-\setXTXcharcodes "003B6 "003B6 "00396 % GREEK SMALL LETTER ZETA
-\setXTXcharcodes "003B7 "003B7 "00397 % GREEK SMALL LETTER ETA
-\setXTXcharcodes "003B8 "003B8 "00398 % GREEK SMALL LETTER THETA
-\setXTXcharcodes "003B9 "003B9 "00399 % GREEK SMALL LETTER IOTA
-\setXTXcharcodes "003BA "003BA "0039A % GREEK SMALL LETTER KAPPA
-\setXTXcharcodes "003BB "003BB "0039B % GREEK SMALL LETTER LAMDA
-\setXTXcharcodes "003BC "003BC "0039C % GREEK SMALL LETTER MU
-\setXTXcharcodes "003BD "003BD "0039D % GREEK SMALL LETTER NU
-\setXTXcharcodes "003BE "003BE "0039E % GREEK SMALL LETTER XI
-\setXTXcharcodes "003BF "003BF "0039F % GREEK SMALL LETTER OMICRON
-\setXTXcharcodes "003C0 "003C0 "003A0 % GREEK SMALL LETTER PI
-\setXTXcharcodes "003C1 "003C1 "003A1 % GREEK SMALL LETTER RHO
-\setXTXcharcodes "003C2 "003C2 "003A3 % GREEK SMALL LETTER FINAL SIGMA
-\setXTXcharcodes "003C3 "003C3 "003A3 % GREEK SMALL LETTER SIGMA
-\setXTXcharcodes "003C4 "003C4 "003A4 % GREEK SMALL LETTER TAU
-\setXTXcharcodes "003C5 "003C5 "003A5 % GREEK SMALL LETTER UPSILON
-\setXTXcharcodes "003C6 "003C6 "003A6 % GREEK SMALL LETTER PHI
-\setXTXcharcodes "003C7 "003C7 "003A7 % GREEK SMALL LETTER CHI
-\setXTXcharcodes "003C8 "003C8 "003A8 % GREEK SMALL LETTER PSI
-\setXTXcharcodes "003C9 "003C9 "003A9 % GREEK SMALL LETTER OMEGA
-\setXTXcharcodes "003CA "003CA "003AA % GREEK SMALL LETTER IOTA WITH DIALYTIKA
-\setXTXcharcodes "003CB "003CB "003AB % GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-\setXTXcharcodes "003CC "003CC "0038C % GREEK SMALL LETTER OMICRON WITH TONOS
-\setXTXcharcodes "003CD "003CD "0038E % GREEK SMALL LETTER UPSILON WITH TONOS
-\setXTXcharcodes "003CE "003CE "0038F % GREEK SMALL LETTER OMEGA WITH TONOS
-\setXTXcharcodes "003CF "003CF "003CF % GREEK CAPITAL KAI SYMBOL
-\setXTXcharcodes "003D0 "003D0 "00392 % GREEK BETA SYMBOL
-\setXTXcharcodes "003D1 "003D1 "00398 % GREEK THETA SYMBOL
-\setXTXcharcodes "003D2 "003D2 "003D2 % GREEK UPSILON WITH HOOK SYMBOL
-\setXTXcharcodes "003D3 "003D3 "003D3 % GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
-\setXTXcharcodes "003D4 "003D4 "003D4 % GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
-\setXTXcharcodes "003D5 "003D5 "003A6 % GREEK PHI SYMBOL
-\setXTXcharcodes "003D6 "003D6 "003A0 % GREEK PI SYMBOL
-\setXTXcharcodes "003D7 "003D7 "003D7 % GREEK KAI SYMBOL
-\setXTXcharcodes "003D8 "003D9 "003D8 % GREEK LETTER ARCHAIC KOPPA
-\setXTXcharcodes "003D9 "003D9 "003D8 % GREEK SMALL LETTER ARCHAIC KOPPA
-\setXTXcharcodes "003DA "003DB "003DA % GREEK LETTER STIGMA
-\setXTXcharcodes "003DB "003DB "003DA % GREEK SMALL LETTER STIGMA
-\setXTXcharcodes "003DC "003DD "003DC % GREEK LETTER DIGAMMA
-\setXTXcharcodes "003DD "003DD "003DC % GREEK SMALL LETTER DIGAMMA
-\setXTXcharcodes "003DE "003DF "003DE % GREEK LETTER KOPPA
-\setXTXcharcodes "003DF "003DF "003DE % GREEK SMALL LETTER KOPPA
-\setXTXcharcodes "003E0 "003E1 "003E0 % GREEK LETTER SAMPI
-\setXTXcharcodes "003E1 "003E1 "003E0 % GREEK SMALL LETTER SAMPI
-\setXTXcharcodes "003E2 "003E3 "003E2 % COPTIC CAPITAL LETTER SHEI
-\setXTXcharcodes "003E3 "003E3 "003E2 % COPTIC SMALL LETTER SHEI
-\setXTXcharcodes "003E4 "003E5 "003E4 % COPTIC CAPITAL LETTER FEI
-\setXTXcharcodes "003E5 "003E5 "003E4 % COPTIC SMALL LETTER FEI
-\setXTXcharcodes "003E6 "003E7 "003E6 % COPTIC CAPITAL LETTER KHEI
-\setXTXcharcodes "003E7 "003E7 "003E6 % COPTIC SMALL LETTER KHEI
-\setXTXcharcodes "003E8 "003E9 "003E8 % COPTIC CAPITAL LETTER HORI
-\setXTXcharcodes "003E9 "003E9 "003E8 % COPTIC SMALL LETTER HORI
-\setXTXcharcodes "003EA "003EB "003EA % COPTIC CAPITAL LETTER GANGIA
-\setXTXcharcodes "003EB "003EB "003EA % COPTIC SMALL LETTER GANGIA
-\setXTXcharcodes "003EC "003ED "003EC % COPTIC CAPITAL LETTER SHIMA
-\setXTXcharcodes "003ED "003ED "003EC % COPTIC SMALL LETTER SHIMA
-\setXTXcharcodes "003EE "003EF "003EE % COPTIC CAPITAL LETTER DEI
-\setXTXcharcodes "003EF "003EF "003EE % COPTIC SMALL LETTER DEI
-\setXTXcharcodes "003F0 "003F0 "0039A % GREEK KAPPA SYMBOL
-\setXTXcharcodes "003F1 "003F1 "003A1 % GREEK RHO SYMBOL
-\setXTXcharcodes "003F2 "003F2 "003F9 % GREEK LUNATE SIGMA SYMBOL
-\setXTXcharcodes "003F3 "003F3 "003F3 % GREEK LETTER YOT
-\setXTXcharcodes "003F4 "003B8 "003F4 % GREEK CAPITAL THETA SYMBOL
-\setXTXcharcodes "003F5 "003F5 "00395 % GREEK LUNATE EPSILON SYMBOL
-\setXTXcharcodes "003F7 "003F8 "003F7 % GREEK CAPITAL LETTER SHO
-\setXTXcharcodes "003F8 "003F8 "003F7 % GREEK SMALL LETTER SHO
-\setXTXcharcodes "003F9 "003F2 "003F9 % GREEK CAPITAL LUNATE SIGMA SYMBOL
-\setXTXcharcodes "003FA "003FB "003FA % GREEK CAPITAL LETTER SAN
-\setXTXcharcodes "003FB "003FB "003FA % GREEK SMALL LETTER SAN
-\setXTXcharcodes "003FC "003FC "003FC % GREEK RHO WITH STROKE SYMBOL
-\setXTXcharcodes "003FD "0037B "003FD % GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
-\setXTXcharcodes "003FE "0037C "003FE % GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
-\setXTXcharcodes "003FF "0037D "003FF % GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
-\setXTXcharcodes "00400 "00450 "00400 % CYRILLIC CAPITAL LETTER IE WITH GRAVE
-\setXTXcharcodes "00401 "00451 "00401 % CYRILLIC CAPITAL LETTER IO
-\setXTXcharcodes "00402 "00452 "00402 % CYRILLIC CAPITAL LETTER DJE
-\setXTXcharcodes "00403 "00453 "00403 % CYRILLIC CAPITAL LETTER GJE
-\setXTXcharcodes "00404 "00454 "00404 % CYRILLIC CAPITAL LETTER UKRAINIAN IE
-\setXTXcharcodes "00405 "00455 "00405 % CYRILLIC CAPITAL LETTER DZE
-\setXTXcharcodes "00406 "00456 "00406 % CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-\setXTXcharcodes "00407 "00457 "00407 % CYRILLIC CAPITAL LETTER YI
-\setXTXcharcodes "00408 "00458 "00408 % CYRILLIC CAPITAL LETTER JE
-\setXTXcharcodes "00409 "00459 "00409 % CYRILLIC CAPITAL LETTER LJE
-\setXTXcharcodes "0040A "0045A "0040A % CYRILLIC CAPITAL LETTER NJE
-\setXTXcharcodes "0040B "0045B "0040B % CYRILLIC CAPITAL LETTER TSHE
-\setXTXcharcodes "0040C "0045C "0040C % CYRILLIC CAPITAL LETTER KJE
-\setXTXcharcodes "0040D "0045D "0040D % CYRILLIC CAPITAL LETTER I WITH GRAVE
-\setXTXcharcodes "0040E "0045E "0040E % CYRILLIC CAPITAL LETTER SHORT U
-\setXTXcharcodes "0040F "0045F "0040F % CYRILLIC CAPITAL LETTER DZHE
-\setXTXcharcodes "00410 "00430 "00410 % CYRILLIC CAPITAL LETTER A
-\setXTXcharcodes "00411 "00431 "00411 % CYRILLIC CAPITAL LETTER BE
-\setXTXcharcodes "00412 "00432 "00412 % CYRILLIC CAPITAL LETTER VE
-\setXTXcharcodes "00413 "00433 "00413 % CYRILLIC CAPITAL LETTER GHE
-\setXTXcharcodes "00414 "00434 "00414 % CYRILLIC CAPITAL LETTER DE
-\setXTXcharcodes "00415 "00435 "00415 % CYRILLIC CAPITAL LETTER IE
-\setXTXcharcodes "00416 "00436 "00416 % CYRILLIC CAPITAL LETTER ZHE
-\setXTXcharcodes "00417 "00437 "00417 % CYRILLIC CAPITAL LETTER ZE
-\setXTXcharcodes "00418 "00438 "00418 % CYRILLIC CAPITAL LETTER I
-\setXTXcharcodes "00419 "00439 "00419 % CYRILLIC CAPITAL LETTER SHORT I
-\setXTXcharcodes "0041A "0043A "0041A % CYRILLIC CAPITAL LETTER KA
-\setXTXcharcodes "0041B "0043B "0041B % CYRILLIC CAPITAL LETTER EL
-\setXTXcharcodes "0041C "0043C "0041C % CYRILLIC CAPITAL LETTER EM
-\setXTXcharcodes "0041D "0043D "0041D % CYRILLIC CAPITAL LETTER EN
-\setXTXcharcodes "0041E "0043E "0041E % CYRILLIC CAPITAL LETTER O
-\setXTXcharcodes "0041F "0043F "0041F % CYRILLIC CAPITAL LETTER PE
-\setXTXcharcodes "00420 "00440 "00420 % CYRILLIC CAPITAL LETTER ER
-\setXTXcharcodes "00421 "00441 "00421 % CYRILLIC CAPITAL LETTER ES
-\setXTXcharcodes "00422 "00442 "00422 % CYRILLIC CAPITAL LETTER TE
-\setXTXcharcodes "00423 "00443 "00423 % CYRILLIC CAPITAL LETTER U
-\setXTXcharcodes "00424 "00444 "00424 % CYRILLIC CAPITAL LETTER EF
-\setXTXcharcodes "00425 "00445 "00425 % CYRILLIC CAPITAL LETTER HA
-\setXTXcharcodes "00426 "00446 "00426 % CYRILLIC CAPITAL LETTER TSE
-\setXTXcharcodes "00427 "00447 "00427 % CYRILLIC CAPITAL LETTER CHE
-\setXTXcharcodes "00428 "00448 "00428 % CYRILLIC CAPITAL LETTER SHA
-\setXTXcharcodes "00429 "00449 "00429 % CYRILLIC CAPITAL LETTER SHCHA
-\setXTXcharcodes "0042A "0044A "0042A % CYRILLIC CAPITAL LETTER HARD SIGN
-\setXTXcharcodes "0042B "0044B "0042B % CYRILLIC CAPITAL LETTER YERU
-\setXTXcharcodes "0042C "0044C "0042C % CYRILLIC CAPITAL LETTER SOFT SIGN
-\setXTXcharcodes "0042D "0044D "0042D % CYRILLIC CAPITAL LETTER E
-\setXTXcharcodes "0042E "0044E "0042E % CYRILLIC CAPITAL LETTER YU
-\setXTXcharcodes "0042F "0044F "0042F % CYRILLIC CAPITAL LETTER YA
-\setXTXcharcodes "00430 "00430 "00410 % CYRILLIC SMALL LETTER A
-\setXTXcharcodes "00431 "00431 "00411 % CYRILLIC SMALL LETTER BE
-\setXTXcharcodes "00432 "00432 "00412 % CYRILLIC SMALL LETTER VE
-\setXTXcharcodes "00433 "00433 "00413 % CYRILLIC SMALL LETTER GHE
-\setXTXcharcodes "00434 "00434 "00414 % CYRILLIC SMALL LETTER DE
-\setXTXcharcodes "00435 "00435 "00415 % CYRILLIC SMALL LETTER IE
-\setXTXcharcodes "00436 "00436 "00416 % CYRILLIC SMALL LETTER ZHE
-\setXTXcharcodes "00437 "00437 "00417 % CYRILLIC SMALL LETTER ZE
-\setXTXcharcodes "00438 "00438 "00418 % CYRILLIC SMALL LETTER I
-\setXTXcharcodes "00439 "00439 "00419 % CYRILLIC SMALL LETTER SHORT I
-\setXTXcharcodes "0043A "0043A "0041A % CYRILLIC SMALL LETTER KA
-\setXTXcharcodes "0043B "0043B "0041B % CYRILLIC SMALL LETTER EL
-\setXTXcharcodes "0043C "0043C "0041C % CYRILLIC SMALL LETTER EM
-\setXTXcharcodes "0043D "0043D "0041D % CYRILLIC SMALL LETTER EN
-\setXTXcharcodes "0043E "0043E "0041E % CYRILLIC SMALL LETTER O
-\setXTXcharcodes "0043F "0043F "0041F % CYRILLIC SMALL LETTER PE
-\setXTXcharcodes "00440 "00440 "00420 % CYRILLIC SMALL LETTER ER
-\setXTXcharcodes "00441 "00441 "00421 % CYRILLIC SMALL LETTER ES
-\setXTXcharcodes "00442 "00442 "00422 % CYRILLIC SMALL LETTER TE
-\setXTXcharcodes "00443 "00443 "00423 % CYRILLIC SMALL LETTER U
-\setXTXcharcodes "00444 "00444 "00424 % CYRILLIC SMALL LETTER EF
-\setXTXcharcodes "00445 "00445 "00425 % CYRILLIC SMALL LETTER HA
-\setXTXcharcodes "00446 "00446 "00426 % CYRILLIC SMALL LETTER TSE
-\setXTXcharcodes "00447 "00447 "00427 % CYRILLIC SMALL LETTER CHE
-\setXTXcharcodes "00448 "00448 "00428 % CYRILLIC SMALL LETTER SHA
-\setXTXcharcodes "00449 "00449 "00429 % CYRILLIC SMALL LETTER SHCHA
-\setXTXcharcodes "0044A "0044A "0042A % CYRILLIC SMALL LETTER HARD SIGN
-\setXTXcharcodes "0044B "0044B "0042B % CYRILLIC SMALL LETTER YERU
-\setXTXcharcodes "0044C "0044C "0042C % CYRILLIC SMALL LETTER SOFT SIGN
-\setXTXcharcodes "0044D "0044D "0042D % CYRILLIC SMALL LETTER E
-\setXTXcharcodes "0044E "0044E "0042E % CYRILLIC SMALL LETTER YU
-\setXTXcharcodes "0044F "0044F "0042F % CYRILLIC SMALL LETTER YA
-\setXTXcharcodes "00450 "00450 "00400 % CYRILLIC SMALL LETTER IE WITH GRAVE
-\setXTXcharcodes "00451 "00451 "00401 % CYRILLIC SMALL LETTER IO
-\setXTXcharcodes "00452 "00452 "00402 % CYRILLIC SMALL LETTER DJE
-\setXTXcharcodes "00453 "00453 "00403 % CYRILLIC SMALL LETTER GJE
-\setXTXcharcodes "00454 "00454 "00404 % CYRILLIC SMALL LETTER UKRAINIAN IE
-\setXTXcharcodes "00455 "00455 "00405 % CYRILLIC SMALL LETTER DZE
-\setXTXcharcodes "00456 "00456 "00406 % CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-\setXTXcharcodes "00457 "00457 "00407 % CYRILLIC SMALL LETTER YI
-\setXTXcharcodes "00458 "00458 "00408 % CYRILLIC SMALL LETTER JE
-\setXTXcharcodes "00459 "00459 "00409 % CYRILLIC SMALL LETTER LJE
-\setXTXcharcodes "0045A "0045A "0040A % CYRILLIC SMALL LETTER NJE
-\setXTXcharcodes "0045B "0045B "0040B % CYRILLIC SMALL LETTER TSHE
-\setXTXcharcodes "0045C "0045C "0040C % CYRILLIC SMALL LETTER KJE
-\setXTXcharcodes "0045D "0045D "0040D % CYRILLIC SMALL LETTER I WITH GRAVE
-\setXTXcharcodes "0045E "0045E "0040E % CYRILLIC SMALL LETTER SHORT U
-\setXTXcharcodes "0045F "0045F "0040F % CYRILLIC SMALL LETTER DZHE
-\setXTXcharcodes "00460 "00461 "00460 % CYRILLIC CAPITAL LETTER OMEGA
-\setXTXcharcodes "00461 "00461 "00460 % CYRILLIC SMALL LETTER OMEGA
-\setXTXcharcodes "00462 "00463 "00462 % CYRILLIC CAPITAL LETTER YAT
-\setXTXcharcodes "00463 "00463 "00462 % CYRILLIC SMALL LETTER YAT
-\setXTXcharcodes "00464 "00465 "00464 % CYRILLIC CAPITAL LETTER IOTIFIED E
-\setXTXcharcodes "00465 "00465 "00464 % CYRILLIC SMALL LETTER IOTIFIED E
-\setXTXcharcodes "00466 "00467 "00466 % CYRILLIC CAPITAL LETTER LITTLE YUS
-\setXTXcharcodes "00467 "00467 "00466 % CYRILLIC SMALL LETTER LITTLE YUS
-\setXTXcharcodes "00468 "00469 "00468 % CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
-\setXTXcharcodes "00469 "00469 "00468 % CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
-\setXTXcharcodes "0046A "0046B "0046A % CYRILLIC CAPITAL LETTER BIG YUS
-\setXTXcharcodes "0046B "0046B "0046A % CYRILLIC SMALL LETTER BIG YUS
-\setXTXcharcodes "0046C "0046D "0046C % CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
-\setXTXcharcodes "0046D "0046D "0046C % CYRILLIC SMALL LETTER IOTIFIED BIG YUS
-\setXTXcharcodes "0046E "0046F "0046E % CYRILLIC CAPITAL LETTER KSI
-\setXTXcharcodes "0046F "0046F "0046E % CYRILLIC SMALL LETTER KSI
-\setXTXcharcodes "00470 "00471 "00470 % CYRILLIC CAPITAL LETTER PSI
-\setXTXcharcodes "00471 "00471 "00470 % CYRILLIC SMALL LETTER PSI
-\setXTXcharcodes "00472 "00473 "00472 % CYRILLIC CAPITAL LETTER FITA
-\setXTXcharcodes "00473 "00473 "00472 % CYRILLIC SMALL LETTER FITA
-\setXTXcharcodes "00474 "00475 "00474 % CYRILLIC CAPITAL LETTER IZHITSA
-\setXTXcharcodes "00475 "00475 "00474 % CYRILLIC SMALL LETTER IZHITSA
-\setXTXcharcodes "00476 "00477 "00476 % CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-\setXTXcharcodes "00477 "00477 "00476 % CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
-\setXTXcharcodes "00478 "00479 "00478 % CYRILLIC CAPITAL LETTER UK
-\setXTXcharcodes "00479 "00479 "00478 % CYRILLIC SMALL LETTER UK
-\setXTXcharcodes "0047A "0047B "0047A % CYRILLIC CAPITAL LETTER ROUND OMEGA
-\setXTXcharcodes "0047B "0047B "0047A % CYRILLIC SMALL LETTER ROUND OMEGA
-\setXTXcharcodes "0047C "0047D "0047C % CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
-\setXTXcharcodes "0047D "0047D "0047C % CYRILLIC SMALL LETTER OMEGA WITH TITLO
-\setXTXcharcodes "0047E "0047F "0047E % CYRILLIC CAPITAL LETTER OT
-\setXTXcharcodes "0047F "0047F "0047E % CYRILLIC SMALL LETTER OT
-\setXTXcharcodes "00480 "00481 "00480 % CYRILLIC CAPITAL LETTER KOPPA
-\setXTXcharcodes "00481 "00481 "00480 % CYRILLIC SMALL LETTER KOPPA
-\setXTXcharcodes "0048A "0048B "0048A % CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
-\setXTXcharcodes "0048B "0048B "0048A % CYRILLIC SMALL LETTER SHORT I WITH TAIL
-\setXTXcharcodes "0048C "0048D "0048C % CYRILLIC CAPITAL LETTER SEMISOFT SIGN
-\setXTXcharcodes "0048D "0048D "0048C % CYRILLIC SMALL LETTER SEMISOFT SIGN
-\setXTXcharcodes "0048E "0048F "0048E % CYRILLIC CAPITAL LETTER ER WITH TICK
-\setXTXcharcodes "0048F "0048F "0048E % CYRILLIC SMALL LETTER ER WITH TICK
-\setXTXcharcodes "00490 "00491 "00490 % CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-\setXTXcharcodes "00491 "00491 "00490 % CYRILLIC SMALL LETTER GHE WITH UPTURN
-\setXTXcharcodes "00492 "00493 "00492 % CYRILLIC CAPITAL LETTER GHE WITH STROKE
-\setXTXcharcodes "00493 "00493 "00492 % CYRILLIC SMALL LETTER GHE WITH STROKE
-\setXTXcharcodes "00494 "00495 "00494 % CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
-\setXTXcharcodes "00495 "00495 "00494 % CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
-\setXTXcharcodes "00496 "00497 "00496 % CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
-\setXTXcharcodes "00497 "00497 "00496 % CYRILLIC SMALL LETTER ZHE WITH DESCENDER
-\setXTXcharcodes "00498 "00499 "00498 % CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
-\setXTXcharcodes "00499 "00499 "00498 % CYRILLIC SMALL LETTER ZE WITH DESCENDER
-\setXTXcharcodes "0049A "0049B "0049A % CYRILLIC CAPITAL LETTER KA WITH DESCENDER
-\setXTXcharcodes "0049B "0049B "0049A % CYRILLIC SMALL LETTER KA WITH DESCENDER
-\setXTXcharcodes "0049C "0049D "0049C % CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
-\setXTXcharcodes "0049D "0049D "0049C % CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
-\setXTXcharcodes "0049E "0049F "0049E % CYRILLIC CAPITAL LETTER KA WITH STROKE
-\setXTXcharcodes "0049F "0049F "0049E % CYRILLIC SMALL LETTER KA WITH STROKE
-\setXTXcharcodes "004A0 "004A1 "004A0 % CYRILLIC CAPITAL LETTER BASHKIR KA
-\setXTXcharcodes "004A1 "004A1 "004A0 % CYRILLIC SMALL LETTER BASHKIR KA
-\setXTXcharcodes "004A2 "004A3 "004A2 % CYRILLIC CAPITAL LETTER EN WITH DESCENDER
-\setXTXcharcodes "004A3 "004A3 "004A2 % CYRILLIC SMALL LETTER EN WITH DESCENDER
-\setXTXcharcodes "004A4 "004A5 "004A4 % CYRILLIC CAPITAL LIGATURE EN GHE
-\setXTXcharcodes "004A5 "004A5 "004A4 % CYRILLIC SMALL LIGATURE EN GHE
-\setXTXcharcodes "004A6 "004A7 "004A6 % CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
-\setXTXcharcodes "004A7 "004A7 "004A6 % CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
-\setXTXcharcodes "004A8 "004A9 "004A8 % CYRILLIC CAPITAL LETTER ABKHASIAN HA
-\setXTXcharcodes "004A9 "004A9 "004A8 % CYRILLIC SMALL LETTER ABKHASIAN HA
-\setXTXcharcodes "004AA "004AB "004AA % CYRILLIC CAPITAL LETTER ES WITH DESCENDER
-\setXTXcharcodes "004AB "004AB "004AA % CYRILLIC SMALL LETTER ES WITH DESCENDER
-\setXTXcharcodes "004AC "004AD "004AC % CYRILLIC CAPITAL LETTER TE WITH DESCENDER
-\setXTXcharcodes "004AD "004AD "004AC % CYRILLIC SMALL LETTER TE WITH DESCENDER
-\setXTXcharcodes "004AE "004AF "004AE % CYRILLIC CAPITAL LETTER STRAIGHT U
-\setXTXcharcodes "004AF "004AF "004AE % CYRILLIC SMALL LETTER STRAIGHT U
-\setXTXcharcodes "004B0 "004B1 "004B0 % CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
-\setXTXcharcodes "004B1 "004B1 "004B0 % CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
-\setXTXcharcodes "004B2 "004B3 "004B2 % CYRILLIC CAPITAL LETTER HA WITH DESCENDER
-\setXTXcharcodes "004B3 "004B3 "004B2 % CYRILLIC SMALL LETTER HA WITH DESCENDER
-\setXTXcharcodes "004B4 "004B5 "004B4 % CYRILLIC CAPITAL LIGATURE TE TSE
-\setXTXcharcodes "004B5 "004B5 "004B4 % CYRILLIC SMALL LIGATURE TE TSE
-\setXTXcharcodes "004B6 "004B7 "004B6 % CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
-\setXTXcharcodes "004B7 "004B7 "004B6 % CYRILLIC SMALL LETTER CHE WITH DESCENDER
-\setXTXcharcodes "004B8 "004B9 "004B8 % CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
-\setXTXcharcodes "004B9 "004B9 "004B8 % CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
-\setXTXcharcodes "004BA "004BB "004BA % CYRILLIC CAPITAL LETTER SHHA
-\setXTXcharcodes "004BB "004BB "004BA % CYRILLIC SMALL LETTER SHHA
-\setXTXcharcodes "004BC "004BD "004BC % CYRILLIC CAPITAL LETTER ABKHASIAN CHE
-\setXTXcharcodes "004BD "004BD "004BC % CYRILLIC SMALL LETTER ABKHASIAN CHE
-\setXTXcharcodes "004BE "004BF "004BE % CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
-\setXTXcharcodes "004BF "004BF "004BE % CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
-\setXTXcharcodes "004C0 "004CF "004C0 % CYRILLIC LETTER PALOCHKA
-\setXTXcharcodes "004C1 "004C2 "004C1 % CYRILLIC CAPITAL LETTER ZHE WITH BREVE
-\setXTXcharcodes "004C2 "004C2 "004C1 % CYRILLIC SMALL LETTER ZHE WITH BREVE
-\setXTXcharcodes "004C3 "004C4 "004C3 % CYRILLIC CAPITAL LETTER KA WITH HOOK
-\setXTXcharcodes "004C4 "004C4 "004C3 % CYRILLIC SMALL LETTER KA WITH HOOK
-\setXTXcharcodes "004C5 "004C6 "004C5 % CYRILLIC CAPITAL LETTER EL WITH TAIL
-\setXTXcharcodes "004C6 "004C6 "004C5 % CYRILLIC SMALL LETTER EL WITH TAIL
-\setXTXcharcodes "004C7 "004C8 "004C7 % CYRILLIC CAPITAL LETTER EN WITH HOOK
-\setXTXcharcodes "004C8 "004C8 "004C7 % CYRILLIC SMALL LETTER EN WITH HOOK
-\setXTXcharcodes "004C9 "004CA "004C9 % CYRILLIC CAPITAL LETTER EN WITH TAIL
-\setXTXcharcodes "004CA "004CA "004C9 % CYRILLIC SMALL LETTER EN WITH TAIL
-\setXTXcharcodes "004CB "004CC "004CB % CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
-\setXTXcharcodes "004CC "004CC "004CB % CYRILLIC SMALL LETTER KHAKASSIAN CHE
-\setXTXcharcodes "004CD "004CE "004CD % CYRILLIC CAPITAL LETTER EM WITH TAIL
-\setXTXcharcodes "004CE "004CE "004CD % CYRILLIC SMALL LETTER EM WITH TAIL
-\setXTXcharcodes "004CF "004CF "004C0 % CYRILLIC SMALL LETTER PALOCHKA
-\setXTXcharcodes "004D0 "004D1 "004D0 % CYRILLIC CAPITAL LETTER A WITH BREVE
-\setXTXcharcodes "004D1 "004D1 "004D0 % CYRILLIC SMALL LETTER A WITH BREVE
-\setXTXcharcodes "004D2 "004D3 "004D2 % CYRILLIC CAPITAL LETTER A WITH DIAERESIS
-\setXTXcharcodes "004D3 "004D3 "004D2 % CYRILLIC SMALL LETTER A WITH DIAERESIS
-\setXTXcharcodes "004D4 "004D5 "004D4 % CYRILLIC CAPITAL LIGATURE A IE
-\setXTXcharcodes "004D5 "004D5 "004D4 % CYRILLIC SMALL LIGATURE A IE
-\setXTXcharcodes "004D6 "004D7 "004D6 % CYRILLIC CAPITAL LETTER IE WITH BREVE
-\setXTXcharcodes "004D7 "004D7 "004D6 % CYRILLIC SMALL LETTER IE WITH BREVE
-\setXTXcharcodes "004D8 "004D9 "004D8 % CYRILLIC CAPITAL LETTER SCHWA
-\setXTXcharcodes "004D9 "004D9 "004D8 % CYRILLIC SMALL LETTER SCHWA
-\setXTXcharcodes "004DA "004DB "004DA % CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
-\setXTXcharcodes "004DB "004DB "004DA % CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
-\setXTXcharcodes "004DC "004DD "004DC % CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
-\setXTXcharcodes "004DD "004DD "004DC % CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
-\setXTXcharcodes "004DE "004DF "004DE % CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
-\setXTXcharcodes "004DF "004DF "004DE % CYRILLIC SMALL LETTER ZE WITH DIAERESIS
-\setXTXcharcodes "004E0 "004E1 "004E0 % CYRILLIC CAPITAL LETTER ABKHASIAN DZE
-\setXTXcharcodes "004E1 "004E1 "004E0 % CYRILLIC SMALL LETTER ABKHASIAN DZE
-\setXTXcharcodes "004E2 "004E3 "004E2 % CYRILLIC CAPITAL LETTER I WITH MACRON
-\setXTXcharcodes "004E3 "004E3 "004E2 % CYRILLIC SMALL LETTER I WITH MACRON
-\setXTXcharcodes "004E4 "004E5 "004E4 % CYRILLIC CAPITAL LETTER I WITH DIAERESIS
-\setXTXcharcodes "004E5 "004E5 "004E4 % CYRILLIC SMALL LETTER I WITH DIAERESIS
-\setXTXcharcodes "004E6 "004E7 "004E6 % CYRILLIC CAPITAL LETTER O WITH DIAERESIS
-\setXTXcharcodes "004E7 "004E7 "004E6 % CYRILLIC SMALL LETTER O WITH DIAERESIS
-\setXTXcharcodes "004E8 "004E9 "004E8 % CYRILLIC CAPITAL LETTER BARRED O
-\setXTXcharcodes "004E9 "004E9 "004E8 % CYRILLIC SMALL LETTER BARRED O
-\setXTXcharcodes "004EA "004EB "004EA % CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
-\setXTXcharcodes "004EB "004EB "004EA % CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
-\setXTXcharcodes "004EC "004ED "004EC % CYRILLIC CAPITAL LETTER E WITH DIAERESIS
-\setXTXcharcodes "004ED "004ED "004EC % CYRILLIC SMALL LETTER E WITH DIAERESIS
-\setXTXcharcodes "004EE "004EF "004EE % CYRILLIC CAPITAL LETTER U WITH MACRON
-\setXTXcharcodes "004EF "004EF "004EE % CYRILLIC SMALL LETTER U WITH MACRON
-\setXTXcharcodes "004F0 "004F1 "004F0 % CYRILLIC CAPITAL LETTER U WITH DIAERESIS
-\setXTXcharcodes "004F1 "004F1 "004F0 % CYRILLIC SMALL LETTER U WITH DIAERESIS
-\setXTXcharcodes "004F2 "004F3 "004F2 % CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
-\setXTXcharcodes "004F3 "004F3 "004F2 % CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
-\setXTXcharcodes "004F4 "004F5 "004F4 % CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
-\setXTXcharcodes "004F5 "004F5 "004F4 % CYRILLIC SMALL LETTER CHE WITH DIAERESIS
-\setXTXcharcodes "004F6 "004F7 "004F6 % CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
-\setXTXcharcodes "004F7 "004F7 "004F6 % CYRILLIC SMALL LETTER GHE WITH DESCENDER
-\setXTXcharcodes "004F8 "004F9 "004F8 % CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
-\setXTXcharcodes "004F9 "004F9 "004F8 % CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-\setXTXcharcodes "004FA "004FB "004FA % CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
-\setXTXcharcodes "004FB "004FB "004FA % CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
-\setXTXcharcodes "004FC "004FD "004FC % CYRILLIC CAPITAL LETTER HA WITH HOOK
-\setXTXcharcodes "004FD "004FD "004FC % CYRILLIC SMALL LETTER HA WITH HOOK
-\setXTXcharcodes "004FE "004FF "004FE % CYRILLIC CAPITAL LETTER HA WITH STROKE
-\setXTXcharcodes "004FF "004FF "004FE % CYRILLIC SMALL LETTER HA WITH STROKE
-\setXTXcharcodes "00500 "00501 "00500 % CYRILLIC CAPITAL LETTER KOMI DE
-\setXTXcharcodes "00501 "00501 "00500 % CYRILLIC SMALL LETTER KOMI DE
-\setXTXcharcodes "00502 "00503 "00502 % CYRILLIC CAPITAL LETTER KOMI DJE
-\setXTXcharcodes "00503 "00503 "00502 % CYRILLIC SMALL LETTER KOMI DJE
-\setXTXcharcodes "00504 "00505 "00504 % CYRILLIC CAPITAL LETTER KOMI ZJE
-\setXTXcharcodes "00505 "00505 "00504 % CYRILLIC SMALL LETTER KOMI ZJE
-\setXTXcharcodes "00506 "00507 "00506 % CYRILLIC CAPITAL LETTER KOMI DZJE
-\setXTXcharcodes "00507 "00507 "00506 % CYRILLIC SMALL LETTER KOMI DZJE
-\setXTXcharcodes "00508 "00509 "00508 % CYRILLIC CAPITAL LETTER KOMI LJE
-\setXTXcharcodes "00509 "00509 "00508 % CYRILLIC SMALL LETTER KOMI LJE
-\setXTXcharcodes "0050A "0050B "0050A % CYRILLIC CAPITAL LETTER KOMI NJE
-\setXTXcharcodes "0050B "0050B "0050A % CYRILLIC SMALL LETTER KOMI NJE
-\setXTXcharcodes "0050C "0050D "0050C % CYRILLIC CAPITAL LETTER KOMI SJE
-\setXTXcharcodes "0050D "0050D "0050C % CYRILLIC SMALL LETTER KOMI SJE
-\setXTXcharcodes "0050E "0050F "0050E % CYRILLIC CAPITAL LETTER KOMI TJE
-\setXTXcharcodes "0050F "0050F "0050E % CYRILLIC SMALL LETTER KOMI TJE
-\setXTXcharcodes "00510 "00511 "00510 % CYRILLIC CAPITAL LETTER REVERSED ZE
-\setXTXcharcodes "00511 "00511 "00510 % CYRILLIC SMALL LETTER REVERSED ZE
-\setXTXcharcodes "00512 "00513 "00512 % CYRILLIC CAPITAL LETTER EL WITH HOOK
-\setXTXcharcodes "00513 "00513 "00512 % CYRILLIC SMALL LETTER EL WITH HOOK
-\setXTXcharcodes "00514 "00514 "00514 % CYRILLIC CAPITAL LETTER LHA
-\setXTXcharcodes "00515 "00515 "00515 % CYRILLIC SMALL LETTER LHA
-\setXTXcharcodes "00516 "00516 "00516 % CYRILLIC CAPITAL LETTER RHA
-\setXTXcharcodes "00517 "00517 "00517 % CYRILLIC SMALL LETTER RHA
-\setXTXcharcodes "00518 "00518 "00518 % CYRILLIC CAPITAL LETTER YAE
-\setXTXcharcodes "00519 "00519 "00519 % CYRILLIC SMALL LETTER YAE
-\setXTXcharcodes "0051A "0051A "0051A % CYRILLIC CAPITAL LETTER QA
-\setXTXcharcodes "0051B "0051B "0051B % CYRILLIC SMALL LETTER QA
-\setXTXcharcodes "0051C "0051C "0051C % CYRILLIC CAPITAL LETTER WE
-\setXTXcharcodes "0051D "0051D "0051D % CYRILLIC SMALL LETTER WE
-\setXTXcharcodes "0051E "0051E "0051E % CYRILLIC CAPITAL LETTER ALEUT KA
-\setXTXcharcodes "0051F "0051F "0051F % CYRILLIC SMALL LETTER ALEUT KA
-\setXTXcharcodes "00520 "00520 "00520 % CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
-\setXTXcharcodes "00521 "00521 "00521 % CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
-\setXTXcharcodes "00522 "00522 "00522 % CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
-\setXTXcharcodes "00523 "00523 "00523 % CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
-\setXTXcharcodes "00524 "00524 "00524 % CYRILLIC CAPITAL LETTER PE WITH DESCENDER
-\setXTXcharcodes "00525 "00525 "00525 % CYRILLIC SMALL LETTER PE WITH DESCENDER
-\setXTXcharcodes "00526 "00526 "00526 % CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
-\setXTXcharcodes "00527 "00527 "00527 % CYRILLIC SMALL LETTER SHHA WITH DESCENDER
-\setXTXcharcodes "00528 "00528 "00528 % CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
-\setXTXcharcodes "00529 "00529 "00529 % CYRILLIC SMALL LETTER EN WITH LEFT HOOK
-\setXTXcharcodes "0052A "0052A "0052A % CYRILLIC CAPITAL LETTER DZZHE
-\setXTXcharcodes "0052B "0052B "0052B % CYRILLIC SMALL LETTER DZZHE
-\setXTXcharcodes "0052C "0052C "0052C % CYRILLIC CAPITAL LETTER DCHE
-\setXTXcharcodes "0052D "0052D "0052D % CYRILLIC SMALL LETTER DCHE
-\setXTXcharcodes "0052E "0052E "0052E % CYRILLIC CAPITAL LETTER EL WITH DESCENDER
-\setXTXcharcodes "0052F "0052F "0052F % CYRILLIC SMALL LETTER EL WITH DESCENDER
-\setXTXcharcodes "00531 "00561 "00531 % ARMENIAN CAPITAL LETTER AYB
-\setXTXcharcodes "00532 "00562 "00532 % ARMENIAN CAPITAL LETTER BEN
-\setXTXcharcodes "00533 "00563 "00533 % ARMENIAN CAPITAL LETTER GIM
-\setXTXcharcodes "00534 "00564 "00534 % ARMENIAN CAPITAL LETTER DA
-\setXTXcharcodes "00535 "00565 "00535 % ARMENIAN CAPITAL LETTER ECH
-\setXTXcharcodes "00536 "00566 "00536 % ARMENIAN CAPITAL LETTER ZA
-\setXTXcharcodes "00537 "00567 "00537 % ARMENIAN CAPITAL LETTER EH
-\setXTXcharcodes "00538 "00568 "00538 % ARMENIAN CAPITAL LETTER ET
-\setXTXcharcodes "00539 "00569 "00539 % ARMENIAN CAPITAL LETTER TO
-\setXTXcharcodes "0053A "0056A "0053A % ARMENIAN CAPITAL LETTER ZHE
-\setXTXcharcodes "0053B "0056B "0053B % ARMENIAN CAPITAL LETTER INI
-\setXTXcharcodes "0053C "0056C "0053C % ARMENIAN CAPITAL LETTER LIWN
-\setXTXcharcodes "0053D "0056D "0053D % ARMENIAN CAPITAL LETTER XEH
-\setXTXcharcodes "0053E "0056E "0053E % ARMENIAN CAPITAL LETTER CA
-\setXTXcharcodes "0053F "0056F "0053F % ARMENIAN CAPITAL LETTER KEN
-\setXTXcharcodes "00540 "00570 "00540 % ARMENIAN CAPITAL LETTER HO
-\setXTXcharcodes "00541 "00571 "00541 % ARMENIAN CAPITAL LETTER JA
-\setXTXcharcodes "00542 "00572 "00542 % ARMENIAN CAPITAL LETTER GHAD
-\setXTXcharcodes "00543 "00573 "00543 % ARMENIAN CAPITAL LETTER CHEH
-\setXTXcharcodes "00544 "00574 "00544 % ARMENIAN CAPITAL LETTER MEN
-\setXTXcharcodes "00545 "00575 "00545 % ARMENIAN CAPITAL LETTER YI
-\setXTXcharcodes "00546 "00576 "00546 % ARMENIAN CAPITAL LETTER NOW
-\setXTXcharcodes "00547 "00577 "00547 % ARMENIAN CAPITAL LETTER SHA
-\setXTXcharcodes "00548 "00578 "00548 % ARMENIAN CAPITAL LETTER VO
-\setXTXcharcodes "00549 "00579 "00549 % ARMENIAN CAPITAL LETTER CHA
-\setXTXcharcodes "0054A "0057A "0054A % ARMENIAN CAPITAL LETTER PEH
-\setXTXcharcodes "0054B "0057B "0054B % ARMENIAN CAPITAL LETTER JHEH
-\setXTXcharcodes "0054C "0057C "0054C % ARMENIAN CAPITAL LETTER RA
-\setXTXcharcodes "0054D "0057D "0054D % ARMENIAN CAPITAL LETTER SEH
-\setXTXcharcodes "0054E "0057E "0054E % ARMENIAN CAPITAL LETTER VEW
-\setXTXcharcodes "0054F "0057F "0054F % ARMENIAN CAPITAL LETTER TIWN
-\setXTXcharcodes "00550 "00580 "00550 % ARMENIAN CAPITAL LETTER REH
-\setXTXcharcodes "00551 "00581 "00551 % ARMENIAN CAPITAL LETTER CO
-\setXTXcharcodes "00552 "00582 "00552 % ARMENIAN CAPITAL LETTER YIWN
-\setXTXcharcodes "00553 "00583 "00553 % ARMENIAN CAPITAL LETTER PIWR
-\setXTXcharcodes "00554 "00584 "00554 % ARMENIAN CAPITAL LETTER KEH
-\setXTXcharcodes "00555 "00585 "00555 % ARMENIAN CAPITAL LETTER OH
-\setXTXcharcodes "00556 "00586 "00556 % ARMENIAN CAPITAL LETTER FEH
-\setXTXcharcodes "00561 "00561 "00531 % ARMENIAN SMALL LETTER AYB
-\setXTXcharcodes "00562 "00562 "00532 % ARMENIAN SMALL LETTER BEN
-\setXTXcharcodes "00563 "00563 "00533 % ARMENIAN SMALL LETTER GIM
-\setXTXcharcodes "00564 "00564 "00534 % ARMENIAN SMALL LETTER DA
-\setXTXcharcodes "00565 "00565 "00535 % ARMENIAN SMALL LETTER ECH
-\setXTXcharcodes "00566 "00566 "00536 % ARMENIAN SMALL LETTER ZA
-\setXTXcharcodes "00567 "00567 "00537 % ARMENIAN SMALL LETTER EH
-\setXTXcharcodes "00568 "00568 "00538 % ARMENIAN SMALL LETTER ET
-\setXTXcharcodes "00569 "00569 "00539 % ARMENIAN SMALL LETTER TO
-\setXTXcharcodes "0056A "0056A "0053A % ARMENIAN SMALL LETTER ZHE
-\setXTXcharcodes "0056B "0056B "0053B % ARMENIAN SMALL LETTER INI
-\setXTXcharcodes "0056C "0056C "0053C % ARMENIAN SMALL LETTER LIWN
-\setXTXcharcodes "0056D "0056D "0053D % ARMENIAN SMALL LETTER XEH
-\setXTXcharcodes "0056E "0056E "0053E % ARMENIAN SMALL LETTER CA
-\setXTXcharcodes "0056F "0056F "0053F % ARMENIAN SMALL LETTER KEN
-\setXTXcharcodes "00570 "00570 "00540 % ARMENIAN SMALL LETTER HO
-\setXTXcharcodes "00571 "00571 "00541 % ARMENIAN SMALL LETTER JA
-\setXTXcharcodes "00572 "00572 "00542 % ARMENIAN SMALL LETTER GHAD
-\setXTXcharcodes "00573 "00573 "00543 % ARMENIAN SMALL LETTER CHEH
-\setXTXcharcodes "00574 "00574 "00544 % ARMENIAN SMALL LETTER MEN
-\setXTXcharcodes "00575 "00575 "00545 % ARMENIAN SMALL LETTER YI
-\setXTXcharcodes "00576 "00576 "00546 % ARMENIAN SMALL LETTER NOW
-\setXTXcharcodes "00577 "00577 "00547 % ARMENIAN SMALL LETTER SHA
-\setXTXcharcodes "00578 "00578 "00548 % ARMENIAN SMALL LETTER VO
-\setXTXcharcodes "00579 "00579 "00549 % ARMENIAN SMALL LETTER CHA
-\setXTXcharcodes "0057A "0057A "0054A % ARMENIAN SMALL LETTER PEH
-\setXTXcharcodes "0057B "0057B "0054B % ARMENIAN SMALL LETTER JHEH
-\setXTXcharcodes "0057C "0057C "0054C % ARMENIAN SMALL LETTER RA
-\setXTXcharcodes "0057D "0057D "0054D % ARMENIAN SMALL LETTER SEH
-\setXTXcharcodes "0057E "0057E "0054E % ARMENIAN SMALL LETTER VEW
-\setXTXcharcodes "0057F "0057F "0054F % ARMENIAN SMALL LETTER TIWN
-\setXTXcharcodes "00580 "00580 "00550 % ARMENIAN SMALL LETTER REH
-\setXTXcharcodes "00581 "00581 "00551 % ARMENIAN SMALL LETTER CO
-\setXTXcharcodes "00582 "00582 "00552 % ARMENIAN SMALL LETTER YIWN
-\setXTXcharcodes "00583 "00583 "00553 % ARMENIAN SMALL LETTER PIWR
-\setXTXcharcodes "00584 "00584 "00554 % ARMENIAN SMALL LETTER KEH
-\setXTXcharcodes "00585 "00585 "00555 % ARMENIAN SMALL LETTER OH
-\setXTXcharcodes "00586 "00586 "00556 % ARMENIAN SMALL LETTER FEH
-\setXTXcharcodes "00587 "00587 "00587 % ARMENIAN SMALL LIGATURE ECH YIWN
-\setXTXcharcodes "010A0 "02D00 "010A0 % GEORGIAN CAPITAL LETTER AN
-\setXTXcharcodes "010A1 "02D01 "010A1 % GEORGIAN CAPITAL LETTER BAN
-\setXTXcharcodes "010A2 "02D02 "010A2 % GEORGIAN CAPITAL LETTER GAN
-\setXTXcharcodes "010A3 "02D03 "010A3 % GEORGIAN CAPITAL LETTER DON
-\setXTXcharcodes "010A4 "02D04 "010A4 % GEORGIAN CAPITAL LETTER EN
-\setXTXcharcodes "010A5 "02D05 "010A5 % GEORGIAN CAPITAL LETTER VIN
-\setXTXcharcodes "010A6 "02D06 "010A6 % GEORGIAN CAPITAL LETTER ZEN
-\setXTXcharcodes "010A7 "02D07 "010A7 % GEORGIAN CAPITAL LETTER TAN
-\setXTXcharcodes "010A8 "02D08 "010A8 % GEORGIAN CAPITAL LETTER IN
-\setXTXcharcodes "010A9 "02D09 "010A9 % GEORGIAN CAPITAL LETTER KAN
-\setXTXcharcodes "010AA "02D0A "010AA % GEORGIAN CAPITAL LETTER LAS
-\setXTXcharcodes "010AB "02D0B "010AB % GEORGIAN CAPITAL LETTER MAN
-\setXTXcharcodes "010AC "02D0C "010AC % GEORGIAN CAPITAL LETTER NAR
-\setXTXcharcodes "010AD "02D0D "010AD % GEORGIAN CAPITAL LETTER ON
-\setXTXcharcodes "010AE "02D0E "010AE % GEORGIAN CAPITAL LETTER PAR
-\setXTXcharcodes "010AF "02D0F "010AF % GEORGIAN CAPITAL LETTER ZHAR
-\setXTXcharcodes "010B0 "02D10 "010B0 % GEORGIAN CAPITAL LETTER RAE
-\setXTXcharcodes "010B1 "02D11 "010B1 % GEORGIAN CAPITAL LETTER SAN
-\setXTXcharcodes "010B2 "02D12 "010B2 % GEORGIAN CAPITAL LETTER TAR
-\setXTXcharcodes "010B3 "02D13 "010B3 % GEORGIAN CAPITAL LETTER UN
-\setXTXcharcodes "010B4 "02D14 "010B4 % GEORGIAN CAPITAL LETTER PHAR
-\setXTXcharcodes "010B5 "02D15 "010B5 % GEORGIAN CAPITAL LETTER KHAR
-\setXTXcharcodes "010B6 "02D16 "010B6 % GEORGIAN CAPITAL LETTER GHAN
-\setXTXcharcodes "010B7 "02D17 "010B7 % GEORGIAN CAPITAL LETTER QAR
-\setXTXcharcodes "010B8 "02D18 "010B8 % GEORGIAN CAPITAL LETTER SHIN
-\setXTXcharcodes "010B9 "02D19 "010B9 % GEORGIAN CAPITAL LETTER CHIN
-\setXTXcharcodes "010BA "02D1A "010BA % GEORGIAN CAPITAL LETTER CAN
-\setXTXcharcodes "010BB "02D1B "010BB % GEORGIAN CAPITAL LETTER JIL
-\setXTXcharcodes "010BC "02D1C "010BC % GEORGIAN CAPITAL LETTER CIL
-\setXTXcharcodes "010BD "02D1D "010BD % GEORGIAN CAPITAL LETTER CHAR
-\setXTXcharcodes "010BE "02D1E "010BE % GEORGIAN CAPITAL LETTER XAN
-\setXTXcharcodes "010BF "02D1F "010BF % GEORGIAN CAPITAL LETTER JHAN
-\setXTXcharcodes "010C0 "02D20 "010C0 % GEORGIAN CAPITAL LETTER HAE
-\setXTXcharcodes "010C1 "02D21 "010C1 % GEORGIAN CAPITAL LETTER HE
-\setXTXcharcodes "010C2 "02D22 "010C2 % GEORGIAN CAPITAL LETTER HIE
-\setXTXcharcodes "010C3 "02D23 "010C3 % GEORGIAN CAPITAL LETTER WE
-\setXTXcharcodes "010C4 "02D24 "010C4 % GEORGIAN CAPITAL LETTER HAR
-\setXTXcharcodes "010C5 "02D25 "010C5 % GEORGIAN CAPITAL LETTER HOE
-\setXTXcharcodes "010C7 "010C7 "010C7 % GEORGIAN CAPITAL LETTER YN
-\setXTXcharcodes "010CD "010CD "010CD % GEORGIAN CAPITAL LETTER AEN
-\setXTXcharcodes "013F5 "013F5 "013F5 % CHEROKEE LETTER MV
-\setXTXcharcodes "013F8 "013F8 "013F8 % CHEROKEE SMALL LETTER YE
-\setXTXcharcodes "013F9 "013F9 "013F9 % CHEROKEE SMALL LETTER YI
-\setXTXcharcodes "013FA "013FA "013FA % CHEROKEE SMALL LETTER YO
-\setXTXcharcodes "013FB "013FB "013FB % CHEROKEE SMALL LETTER YU
-\setXTXcharcodes "013FC "013FC "013FC % CHEROKEE SMALL LETTER YV
-\setXTXcharcodes "013FD "013FD "013FD % CHEROKEE SMALL LETTER MV
-\setXTXcharcodes "01D00 "01D00 "01D00 % LATIN LETTER SMALL CAPITAL A
-\setXTXcharcodes "01D01 "01D01 "01D01 % LATIN LETTER SMALL CAPITAL AE
-\setXTXcharcodes "01D02 "01D02 "01D02 % LATIN SMALL LETTER TURNED AE
-\setXTXcharcodes "01D03 "01D03 "01D03 % LATIN LETTER SMALL CAPITAL BARRED B
-\setXTXcharcodes "01D04 "01D04 "01D04 % LATIN LETTER SMALL CAPITAL C
-\setXTXcharcodes "01D05 "01D05 "01D05 % LATIN LETTER SMALL CAPITAL D
-\setXTXcharcodes "01D06 "01D06 "01D06 % LATIN LETTER SMALL CAPITAL ETH
-\setXTXcharcodes "01D07 "01D07 "01D07 % LATIN LETTER SMALL CAPITAL E
-\setXTXcharcodes "01D08 "01D08 "01D08 % LATIN SMALL LETTER TURNED OPEN E
-\setXTXcharcodes "01D09 "01D09 "01D09 % LATIN SMALL LETTER TURNED I
-\setXTXcharcodes "01D0A "01D0A "01D0A % LATIN LETTER SMALL CAPITAL J
-\setXTXcharcodes "01D0B "01D0B "01D0B % LATIN LETTER SMALL CAPITAL K
-\setXTXcharcodes "01D0C "01D0C "01D0C % LATIN LETTER SMALL CAPITAL L WITH STROKE
-\setXTXcharcodes "01D0D "01D0D "01D0D % LATIN LETTER SMALL CAPITAL M
-\setXTXcharcodes "01D0E "01D0E "01D0E % LATIN LETTER SMALL CAPITAL REVERSED N
-\setXTXcharcodes "01D0F "01D0F "01D0F % LATIN LETTER SMALL CAPITAL O
-\setXTXcharcodes "01D10 "01D10 "01D10 % LATIN LETTER SMALL CAPITAL OPEN O
-\setXTXcharcodes "01D11 "01D11 "01D11 % LATIN SMALL LETTER SIDEWAYS O
-\setXTXcharcodes "01D12 "01D12 "01D12 % LATIN SMALL LETTER SIDEWAYS OPEN O
-\setXTXcharcodes "01D13 "01D13 "01D13 % LATIN SMALL LETTER SIDEWAYS O WITH STROKE
-\setXTXcharcodes "01D14 "01D14 "01D14 % LATIN SMALL LETTER TURNED OE
-\setXTXcharcodes "01D15 "01D15 "01D15 % LATIN LETTER SMALL CAPITAL OU
-\setXTXcharcodes "01D16 "01D16 "01D16 % LATIN SMALL LETTER TOP HALF O
-\setXTXcharcodes "01D17 "01D17 "01D17 % LATIN SMALL LETTER BOTTOM HALF O
-\setXTXcharcodes "01D18 "01D18 "01D18 % LATIN LETTER SMALL CAPITAL P
-\setXTXcharcodes "01D19 "01D19 "01D19 % LATIN LETTER SMALL CAPITAL REVERSED R
-\setXTXcharcodes "01D1A "01D1A "01D1A % LATIN LETTER SMALL CAPITAL TURNED R
-\setXTXcharcodes "01D1B "01D1B "01D1B % LATIN LETTER SMALL CAPITAL T
-\setXTXcharcodes "01D1C "01D1C "01D1C % LATIN LETTER SMALL CAPITAL U
-\setXTXcharcodes "01D1D "01D1D "01D1D % LATIN SMALL LETTER SIDEWAYS U
-\setXTXcharcodes "01D1E "01D1E "01D1E % LATIN SMALL LETTER SIDEWAYS DIAERESIZED U
-\setXTXcharcodes "01D1F "01D1F "01D1F % LATIN SMALL LETTER SIDEWAYS TURNED M
-\setXTXcharcodes "01D20 "01D20 "01D20 % LATIN LETTER SMALL CAPITAL V
-\setXTXcharcodes "01D21 "01D21 "01D21 % LATIN LETTER SMALL CAPITAL W
-\setXTXcharcodes "01D22 "01D22 "01D22 % LATIN LETTER SMALL CAPITAL Z
-\setXTXcharcodes "01D23 "01D23 "01D23 % LATIN LETTER SMALL CAPITAL EZH
-\setXTXcharcodes "01D24 "01D24 "01D24 % LATIN LETTER VOICED LARYNGEAL SPIRANT
-\setXTXcharcodes "01D25 "01D25 "01D25 % LATIN LETTER AIN
-\setXTXcharcodes "01D26 "01D26 "01D26 % GREEK LETTER SMALL CAPITAL GAMMA
-\setXTXcharcodes "01D27 "01D27 "01D27 % GREEK LETTER SMALL CAPITAL LAMDA
-\setXTXcharcodes "01D28 "01D28 "01D28 % GREEK LETTER SMALL CAPITAL PI
-\setXTXcharcodes "01D29 "01D29 "01D29 % GREEK LETTER SMALL CAPITAL RHO
-\setXTXcharcodes "01D2A "01D2A "01D2A % GREEK LETTER SMALL CAPITAL PSI
-\setXTXcharcodes "01D2B "01D2B "01D2B % CYRILLIC LETTER SMALL CAPITAL EL
-\setXTXcharcodes "01D62 "01D62 "01D62 % LATIN SUBSCRIPT SMALL LETTER I
-\setXTXcharcodes "01D63 "01D63 "01D63 % LATIN SUBSCRIPT SMALL LETTER R
-\setXTXcharcodes "01D64 "01D64 "01D64 % LATIN SUBSCRIPT SMALL LETTER U
-\setXTXcharcodes "01D65 "01D65 "01D65 % LATIN SUBSCRIPT SMALL LETTER V
-\setXTXcharcodes "01D66 "01D66 "01D66 % GREEK SUBSCRIPT SMALL LETTER BETA
-\setXTXcharcodes "01D67 "01D67 "01D67 % GREEK SUBSCRIPT SMALL LETTER GAMMA
-\setXTXcharcodes "01D68 "01D68 "01D68 % GREEK SUBSCRIPT SMALL LETTER RHO
-\setXTXcharcodes "01D69 "01D69 "01D69 % GREEK SUBSCRIPT SMALL LETTER PHI
-\setXTXcharcodes "01D6A "01D6A "01D6A % GREEK SUBSCRIPT SMALL LETTER CHI
-\setXTXcharcodes "01D6B "01D6B "01D6B % LATIN SMALL LETTER UE
-\setXTXcharcodes "01D6C "01D6C "01D6C % LATIN SMALL LETTER B WITH MIDDLE TILDE
-\setXTXcharcodes "01D6D "01D6D "01D6D % LATIN SMALL LETTER D WITH MIDDLE TILDE
-\setXTXcharcodes "01D6E "01D6E "01D6E % LATIN SMALL LETTER F WITH MIDDLE TILDE
-\setXTXcharcodes "01D6F "01D6F "01D6F % LATIN SMALL LETTER M WITH MIDDLE TILDE
-\setXTXcharcodes "01D70 "01D70 "01D70 % LATIN SMALL LETTER N WITH MIDDLE TILDE
-\setXTXcharcodes "01D71 "01D71 "01D71 % LATIN SMALL LETTER P WITH MIDDLE TILDE
-\setXTXcharcodes "01D72 "01D72 "01D72 % LATIN SMALL LETTER R WITH MIDDLE TILDE
-\setXTXcharcodes "01D73 "01D73 "01D73 % LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE
-\setXTXcharcodes "01D74 "01D74 "01D74 % LATIN SMALL LETTER S WITH MIDDLE TILDE
-\setXTXcharcodes "01D75 "01D75 "01D75 % LATIN SMALL LETTER T WITH MIDDLE TILDE
-\setXTXcharcodes "01D76 "01D76 "01D76 % LATIN SMALL LETTER Z WITH MIDDLE TILDE
-\setXTXcharcodes "01D77 "01D77 "01D77 % LATIN SMALL LETTER TURNED G
-\setXTXcharcodes "01D79 "01D79 "01D79 % LATIN SMALL LETTER INSULAR G
-\setXTXcharcodes "01D7A "01D7A "01D7A % LATIN SMALL LETTER TH WITH STRIKETHROUGH
-\setXTXcharcodes "01D7B "01D7B "01D7B % LATIN SMALL CAPITAL LETTER I WITH STROKE
-\setXTXcharcodes "01D7C "01D7C "01D7C % LATIN SMALL LETTER IOTA WITH STROKE
-\setXTXcharcodes "01D7D "01D7D "02C63 % LATIN SMALL LETTER P WITH STROKE
-\setXTXcharcodes "01D7E "01D7E "01D7E % LATIN SMALL CAPITAL LETTER U WITH STROKE
-\setXTXcharcodes "01D7F "01D7F "01D7F % LATIN SMALL LETTER UPSILON WITH STROKE
-\setXTXcharcodes "01D80 "01D80 "01D80 % LATIN SMALL LETTER B WITH PALATAL HOOK
-\setXTXcharcodes "01D81 "01D81 "01D81 % LATIN SMALL LETTER D WITH PALATAL HOOK
-\setXTXcharcodes "01D82 "01D82 "01D82 % LATIN SMALL LETTER F WITH PALATAL HOOK
-\setXTXcharcodes "01D83 "01D83 "01D83 % LATIN SMALL LETTER G WITH PALATAL HOOK
-\setXTXcharcodes "01D84 "01D84 "01D84 % LATIN SMALL LETTER K WITH PALATAL HOOK
-\setXTXcharcodes "01D85 "01D85 "01D85 % LATIN SMALL LETTER L WITH PALATAL HOOK
-\setXTXcharcodes "01D86 "01D86 "01D86 % LATIN SMALL LETTER M WITH PALATAL HOOK
-\setXTXcharcodes "01D87 "01D87 "01D87 % LATIN SMALL LETTER N WITH PALATAL HOOK
-\setXTXcharcodes "01D88 "01D88 "01D88 % LATIN SMALL LETTER P WITH PALATAL HOOK
-\setXTXcharcodes "01D89 "01D89 "01D89 % LATIN SMALL LETTER R WITH PALATAL HOOK
-\setXTXcharcodes "01D8A "01D8A "01D8A % LATIN SMALL LETTER S WITH PALATAL HOOK
-\setXTXcharcodes "01D8B "01D8B "01D8B % LATIN SMALL LETTER ESH WITH PALATAL HOOK
-\setXTXcharcodes "01D8C "01D8C "01D8C % LATIN SMALL LETTER V WITH PALATAL HOOK
-\setXTXcharcodes "01D8D "01D8D "01D8D % LATIN SMALL LETTER X WITH PALATAL HOOK
-\setXTXcharcodes "01D8E "01D8E "01D8E % LATIN SMALL LETTER Z WITH PALATAL HOOK
-\setXTXcharcodes "01D8F "01D8F "01D8F % LATIN SMALL LETTER A WITH RETROFLEX HOOK
-\setXTXcharcodes "01D90 "01D90 "01D90 % LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK
-\setXTXcharcodes "01D91 "01D91 "01D91 % LATIN SMALL LETTER D WITH HOOK AND TAIL
-\setXTXcharcodes "01D92 "01D92 "01D92 % LATIN SMALL LETTER E WITH RETROFLEX HOOK
-\setXTXcharcodes "01D93 "01D93 "01D93 % LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK
-\setXTXcharcodes "01D94 "01D94 "01D94 % LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK
-\setXTXcharcodes "01D95 "01D95 "01D95 % LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK
-\setXTXcharcodes "01D96 "01D96 "01D96 % LATIN SMALL LETTER I WITH RETROFLEX HOOK
-\setXTXcharcodes "01D97 "01D97 "01D97 % LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK
-\setXTXcharcodes "01D98 "01D98 "01D98 % LATIN SMALL LETTER ESH WITH RETROFLEX HOOK
-\setXTXcharcodes "01D99 "01D99 "01D99 % LATIN SMALL LETTER U WITH RETROFLEX HOOK
-\setXTXcharcodes "01D9A "01D9A "01D9A % LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
-\setXTXcharcodes "01E00 "01E01 "01E00 % LATIN CAPITAL LETTER A WITH RING BELOW
-\setXTXcharcodes "01E01 "01E01 "01E00 % LATIN SMALL LETTER A WITH RING BELOW
-\setXTXcharcodes "01E02 "01E03 "01E02 % LATIN CAPITAL LETTER B WITH DOT ABOVE
-\setXTXcharcodes "01E03 "01E03 "01E02 % LATIN SMALL LETTER B WITH DOT ABOVE
-\setXTXcharcodes "01E04 "01E05 "01E04 % LATIN CAPITAL LETTER B WITH DOT BELOW
-\setXTXcharcodes "01E05 "01E05 "01E04 % LATIN SMALL LETTER B WITH DOT BELOW
-\setXTXcharcodes "01E06 "01E07 "01E06 % LATIN CAPITAL LETTER B WITH LINE BELOW
-\setXTXcharcodes "01E07 "01E07 "01E06 % LATIN SMALL LETTER B WITH LINE BELOW
-\setXTXcharcodes "01E08 "01E09 "01E08 % LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
-\setXTXcharcodes "01E09 "01E09 "01E08 % LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
-\setXTXcharcodes "01E0A "01E0B "01E0A % LATIN CAPITAL LETTER D WITH DOT ABOVE
-\setXTXcharcodes "01E0B "01E0B "01E0A % LATIN SMALL LETTER D WITH DOT ABOVE
-\setXTXcharcodes "01E0C "01E0D "01E0C % LATIN CAPITAL LETTER D WITH DOT BELOW
-\setXTXcharcodes "01E0D "01E0D "01E0C % LATIN SMALL LETTER D WITH DOT BELOW
-\setXTXcharcodes "01E0E "01E0F "01E0E % LATIN CAPITAL LETTER D WITH LINE BELOW
-\setXTXcharcodes "01E0F "01E0F "01E0E % LATIN SMALL LETTER D WITH LINE BELOW
-\setXTXcharcodes "01E10 "01E11 "01E10 % LATIN CAPITAL LETTER D WITH CEDILLA
-\setXTXcharcodes "01E11 "01E11 "01E10 % LATIN SMALL LETTER D WITH CEDILLA
-\setXTXcharcodes "01E12 "01E13 "01E12 % LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
-\setXTXcharcodes "01E13 "01E13 "01E12 % LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
-\setXTXcharcodes "01E14 "01E15 "01E14 % LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
-\setXTXcharcodes "01E15 "01E15 "01E14 % LATIN SMALL LETTER E WITH MACRON AND GRAVE
-\setXTXcharcodes "01E16 "01E17 "01E16 % LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
-\setXTXcharcodes "01E17 "01E17 "01E16 % LATIN SMALL LETTER E WITH MACRON AND ACUTE
-\setXTXcharcodes "01E18 "01E19 "01E18 % LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
-\setXTXcharcodes "01E19 "01E19 "01E18 % LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
-\setXTXcharcodes "01E1A "01E1B "01E1A % LATIN CAPITAL LETTER E WITH TILDE BELOW
-\setXTXcharcodes "01E1B "01E1B "01E1A % LATIN SMALL LETTER E WITH TILDE BELOW
-\setXTXcharcodes "01E1C "01E1D "01E1C % LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
-\setXTXcharcodes "01E1D "01E1D "01E1C % LATIN SMALL LETTER E WITH CEDILLA AND BREVE
-\setXTXcharcodes "01E1E "01E1F "01E1E % LATIN CAPITAL LETTER F WITH DOT ABOVE
-\setXTXcharcodes "01E1F "01E1F "01E1E % LATIN SMALL LETTER F WITH DOT ABOVE
-\setXTXcharcodes "01E20 "01E21 "01E20 % LATIN CAPITAL LETTER G WITH MACRON
-\setXTXcharcodes "01E21 "01E21 "01E20 % LATIN SMALL LETTER G WITH MACRON
-\setXTXcharcodes "01E22 "01E23 "01E22 % LATIN CAPITAL LETTER H WITH DOT ABOVE
-\setXTXcharcodes "01E23 "01E23 "01E22 % LATIN SMALL LETTER H WITH DOT ABOVE
-\setXTXcharcodes "01E24 "01E25 "01E24 % LATIN CAPITAL LETTER H WITH DOT BELOW
-\setXTXcharcodes "01E25 "01E25 "01E24 % LATIN SMALL LETTER H WITH DOT BELOW
-\setXTXcharcodes "01E26 "01E27 "01E26 % LATIN CAPITAL LETTER H WITH DIAERESIS
-\setXTXcharcodes "01E27 "01E27 "01E26 % LATIN SMALL LETTER H WITH DIAERESIS
-\setXTXcharcodes "01E28 "01E29 "01E28 % LATIN CAPITAL LETTER H WITH CEDILLA
-\setXTXcharcodes "01E29 "01E29 "01E28 % LATIN SMALL LETTER H WITH CEDILLA
-\setXTXcharcodes "01E2A "01E2B "01E2A % LATIN CAPITAL LETTER H WITH BREVE BELOW
-\setXTXcharcodes "01E2B "01E2B "01E2A % LATIN SMALL LETTER H WITH BREVE BELOW
-\setXTXcharcodes "01E2C "01E2D "01E2C % LATIN CAPITAL LETTER I WITH TILDE BELOW
-\setXTXcharcodes "01E2D "01E2D "01E2C % LATIN SMALL LETTER I WITH TILDE BELOW
-\setXTXcharcodes "01E2E "01E2F "01E2E % LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
-\setXTXcharcodes "01E2F "01E2F "01E2E % LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
-\setXTXcharcodes "01E30 "01E31 "01E30 % LATIN CAPITAL LETTER K WITH ACUTE
-\setXTXcharcodes "01E31 "01E31 "01E30 % LATIN SMALL LETTER K WITH ACUTE
-\setXTXcharcodes "01E32 "01E33 "01E32 % LATIN CAPITAL LETTER K WITH DOT BELOW
-\setXTXcharcodes "01E33 "01E33 "01E32 % LATIN SMALL LETTER K WITH DOT BELOW
-\setXTXcharcodes "01E34 "01E35 "01E34 % LATIN CAPITAL LETTER K WITH LINE BELOW
-\setXTXcharcodes "01E35 "01E35 "01E34 % LATIN SMALL LETTER K WITH LINE BELOW
-\setXTXcharcodes "01E36 "01E37 "01E36 % LATIN CAPITAL LETTER L WITH DOT BELOW
-\setXTXcharcodes "01E37 "01E37 "01E36 % LATIN SMALL LETTER L WITH DOT BELOW
-\setXTXcharcodes "01E38 "01E39 "01E38 % LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
-\setXTXcharcodes "01E39 "01E39 "01E38 % LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
-\setXTXcharcodes "01E3A "01E3B "01E3A % LATIN CAPITAL LETTER L WITH LINE BELOW
-\setXTXcharcodes "01E3B "01E3B "01E3A % LATIN SMALL LETTER L WITH LINE BELOW
-\setXTXcharcodes "01E3C "01E3D "01E3C % LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
-\setXTXcharcodes "01E3D "01E3D "01E3C % LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
-\setXTXcharcodes "01E3E "01E3F "01E3E % LATIN CAPITAL LETTER M WITH ACUTE
-\setXTXcharcodes "01E3F "01E3F "01E3E % LATIN SMALL LETTER M WITH ACUTE
-\setXTXcharcodes "01E40 "01E41 "01E40 % LATIN CAPITAL LETTER M WITH DOT ABOVE
-\setXTXcharcodes "01E41 "01E41 "01E40 % LATIN SMALL LETTER M WITH DOT ABOVE
-\setXTXcharcodes "01E42 "01E43 "01E42 % LATIN CAPITAL LETTER M WITH DOT BELOW
-\setXTXcharcodes "01E43 "01E43 "01E42 % LATIN SMALL LETTER M WITH DOT BELOW
-\setXTXcharcodes "01E44 "01E45 "01E44 % LATIN CAPITAL LETTER N WITH DOT ABOVE
-\setXTXcharcodes "01E45 "01E45 "01E44 % LATIN SMALL LETTER N WITH DOT ABOVE
-\setXTXcharcodes "01E46 "01E47 "01E46 % LATIN CAPITAL LETTER N WITH DOT BELOW
-\setXTXcharcodes "01E47 "01E47 "01E46 % LATIN SMALL LETTER N WITH DOT BELOW
-\setXTXcharcodes "01E48 "01E49 "01E48 % LATIN CAPITAL LETTER N WITH LINE BELOW
-\setXTXcharcodes "01E49 "01E49 "01E48 % LATIN SMALL LETTER N WITH LINE BELOW
-\setXTXcharcodes "01E4A "01E4B "01E4A % LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
-\setXTXcharcodes "01E4B "01E4B "01E4A % LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
-\setXTXcharcodes "01E4C "01E4D "01E4C % LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
-\setXTXcharcodes "01E4D "01E4D "01E4C % LATIN SMALL LETTER O WITH TILDE AND ACUTE
-\setXTXcharcodes "01E4E "01E4F "01E4E % LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
-\setXTXcharcodes "01E4F "01E4F "01E4E % LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
-\setXTXcharcodes "01E50 "01E51 "01E50 % LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
-\setXTXcharcodes "01E51 "01E51 "01E50 % LATIN SMALL LETTER O WITH MACRON AND GRAVE
-\setXTXcharcodes "01E52 "01E53 "01E52 % LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
-\setXTXcharcodes "01E53 "01E53 "01E52 % LATIN SMALL LETTER O WITH MACRON AND ACUTE
-\setXTXcharcodes "01E54 "01E55 "01E54 % LATIN CAPITAL LETTER P WITH ACUTE
-\setXTXcharcodes "01E55 "01E55 "01E54 % LATIN SMALL LETTER P WITH ACUTE
-\setXTXcharcodes "01E56 "01E57 "01E56 % LATIN CAPITAL LETTER P WITH DOT ABOVE
-\setXTXcharcodes "01E57 "01E57 "01E56 % LATIN SMALL LETTER P WITH DOT ABOVE
-\setXTXcharcodes "01E58 "01E59 "01E58 % LATIN CAPITAL LETTER R WITH DOT ABOVE
-\setXTXcharcodes "01E59 "01E59 "01E58 % LATIN SMALL LETTER R WITH DOT ABOVE
-\setXTXcharcodes "01E5A "01E5B "01E5A % LATIN CAPITAL LETTER R WITH DOT BELOW
-\setXTXcharcodes "01E5B "01E5B "01E5A % LATIN SMALL LETTER R WITH DOT BELOW
-\setXTXcharcodes "01E5C "01E5D "01E5C % LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
-\setXTXcharcodes "01E5D "01E5D "01E5C % LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
-\setXTXcharcodes "01E5E "01E5F "01E5E % LATIN CAPITAL LETTER R WITH LINE BELOW
-\setXTXcharcodes "01E5F "01E5F "01E5E % LATIN SMALL LETTER R WITH LINE BELOW
-\setXTXcharcodes "01E60 "01E61 "01E60 % LATIN CAPITAL LETTER S WITH DOT ABOVE
-\setXTXcharcodes "01E61 "01E61 "01E60 % LATIN SMALL LETTER S WITH DOT ABOVE
-\setXTXcharcodes "01E62 "01E63 "01E62 % LATIN CAPITAL LETTER S WITH DOT BELOW
-\setXTXcharcodes "01E63 "01E63 "01E62 % LATIN SMALL LETTER S WITH DOT BELOW
-\setXTXcharcodes "01E64 "01E65 "01E64 % LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
-\setXTXcharcodes "01E65 "01E65 "01E64 % LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
-\setXTXcharcodes "01E66 "01E67 "01E66 % LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
-\setXTXcharcodes "01E67 "01E67 "01E66 % LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
-\setXTXcharcodes "01E68 "01E69 "01E68 % LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
-\setXTXcharcodes "01E69 "01E69 "01E68 % LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
-\setXTXcharcodes "01E6A "01E6B "01E6A % LATIN CAPITAL LETTER T WITH DOT ABOVE
-\setXTXcharcodes "01E6B "01E6B "01E6A % LATIN SMALL LETTER T WITH DOT ABOVE
-\setXTXcharcodes "01E6C "01E6D "01E6C % LATIN CAPITAL LETTER T WITH DOT BELOW
-\setXTXcharcodes "01E6D "01E6D "01E6C % LATIN SMALL LETTER T WITH DOT BELOW
-\setXTXcharcodes "01E6E "01E6F "01E6E % LATIN CAPITAL LETTER T WITH LINE BELOW
-\setXTXcharcodes "01E6F "01E6F "01E6E % LATIN SMALL LETTER T WITH LINE BELOW
-\setXTXcharcodes "01E70 "01E71 "01E70 % LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
-\setXTXcharcodes "01E71 "01E71 "01E70 % LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
-\setXTXcharcodes "01E72 "01E73 "01E72 % LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
-\setXTXcharcodes "01E73 "01E73 "01E72 % LATIN SMALL LETTER U WITH DIAERESIS BELOW
-\setXTXcharcodes "01E74 "01E75 "01E74 % LATIN CAPITAL LETTER U WITH TILDE BELOW
-\setXTXcharcodes "01E75 "01E75 "01E74 % LATIN SMALL LETTER U WITH TILDE BELOW
-\setXTXcharcodes "01E76 "01E77 "01E76 % LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
-\setXTXcharcodes "01E77 "01E77 "01E76 % LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
-\setXTXcharcodes "01E78 "01E79 "01E78 % LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
-\setXTXcharcodes "01E79 "01E79 "01E78 % LATIN SMALL LETTER U WITH TILDE AND ACUTE
-\setXTXcharcodes "01E7A "01E7B "01E7A % LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
-\setXTXcharcodes "01E7B "01E7B "01E7A % LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
-\setXTXcharcodes "01E7C "01E7D "01E7C % LATIN CAPITAL LETTER V WITH TILDE
-\setXTXcharcodes "01E7D "01E7D "01E7C % LATIN SMALL LETTER V WITH TILDE
-\setXTXcharcodes "01E7E "01E7F "01E7E % LATIN CAPITAL LETTER V WITH DOT BELOW
-\setXTXcharcodes "01E7F "01E7F "01E7E % LATIN SMALL LETTER V WITH DOT BELOW
-\setXTXcharcodes "01E80 "01E81 "01E80 % LATIN CAPITAL LETTER W WITH GRAVE
-\setXTXcharcodes "01E81 "01E81 "01E80 % LATIN SMALL LETTER W WITH GRAVE
-\setXTXcharcodes "01E82 "01E83 "01E82 % LATIN CAPITAL LETTER W WITH ACUTE
-\setXTXcharcodes "01E83 "01E83 "01E82 % LATIN SMALL LETTER W WITH ACUTE
-\setXTXcharcodes "01E84 "01E85 "01E84 % LATIN CAPITAL LETTER W WITH DIAERESIS
-\setXTXcharcodes "01E85 "01E85 "01E84 % LATIN SMALL LETTER W WITH DIAERESIS
-\setXTXcharcodes "01E86 "01E87 "01E86 % LATIN CAPITAL LETTER W WITH DOT ABOVE
-\setXTXcharcodes "01E87 "01E87 "01E86 % LATIN SMALL LETTER W WITH DOT ABOVE
-\setXTXcharcodes "01E88 "01E89 "01E88 % LATIN CAPITAL LETTER W WITH DOT BELOW
-\setXTXcharcodes "01E89 "01E89 "01E88 % LATIN SMALL LETTER W WITH DOT BELOW
-\setXTXcharcodes "01E8A "01E8B "01E8A % LATIN CAPITAL LETTER X WITH DOT ABOVE
-\setXTXcharcodes "01E8B "01E8B "01E8A % LATIN SMALL LETTER X WITH DOT ABOVE
-\setXTXcharcodes "01E8C "01E8D "01E8C % LATIN CAPITAL LETTER X WITH DIAERESIS
-\setXTXcharcodes "01E8D "01E8D "01E8C % LATIN SMALL LETTER X WITH DIAERESIS
-\setXTXcharcodes "01E8E "01E8F "01E8E % LATIN CAPITAL LETTER Y WITH DOT ABOVE
-\setXTXcharcodes "01E8F "01E8F "01E8E % LATIN SMALL LETTER Y WITH DOT ABOVE
-\setXTXcharcodes "01E90 "01E91 "01E90 % LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
-\setXTXcharcodes "01E91 "01E91 "01E90 % LATIN SMALL LETTER Z WITH CIRCUMFLEX
-\setXTXcharcodes "01E92 "01E93 "01E92 % LATIN CAPITAL LETTER Z WITH DOT BELOW
-\setXTXcharcodes "01E93 "01E93 "01E92 % LATIN SMALL LETTER Z WITH DOT BELOW
-\setXTXcharcodes "01E94 "01E95 "01E94 % LATIN CAPITAL LETTER Z WITH LINE BELOW
-\setXTXcharcodes "01E95 "01E95 "01E94 % LATIN SMALL LETTER Z WITH LINE BELOW
-\setXTXcharcodes "01E96 "01E96 "01E96 % LATIN SMALL LETTER H WITH LINE BELOW
-\setXTXcharcodes "01E97 "01E97 "01E97 % LATIN SMALL LETTER T WITH DIAERESIS
-\setXTXcharcodes "01E98 "01E98 "01E98 % LATIN SMALL LETTER W WITH RING ABOVE
-\setXTXcharcodes "01E99 "01E99 "01E99 % LATIN SMALL LETTER Y WITH RING ABOVE
-\setXTXcharcodes "01E9A "01E9A "01E9A % LATIN SMALL LETTER A WITH RIGHT HALF RING
-\setXTXcharcodes "01E9B "01E9B "01E60 % LATIN SMALL LETTER LONG S WITH DOT ABOVE
-\setXTXcharcodes "01E9C "01E9C "01E9C % LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE
-\setXTXcharcodes "01E9D "01E9D "01E9D % LATIN SMALL LETTER LONG S WITH HIGH STROKE
-\setXTXcharcodes "01E9E "01E9E "01E9E % LATIN CAPITAL LETTER SHARP S
-\setXTXcharcodes "01E9F "01E9F "01E9F % LATIN SMALL LETTER DELTA
-\setXTXcharcodes "01EA0 "01EA1 "01EA0 % LATIN CAPITAL LETTER A WITH DOT BELOW
-\setXTXcharcodes "01EA1 "01EA1 "01EA0 % LATIN SMALL LETTER A WITH DOT BELOW
-\setXTXcharcodes "01EA2 "01EA3 "01EA2 % LATIN CAPITAL LETTER A WITH HOOK ABOVE
-\setXTXcharcodes "01EA3 "01EA3 "01EA2 % LATIN SMALL LETTER A WITH HOOK ABOVE
-\setXTXcharcodes "01EA4 "01EA5 "01EA4 % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
-\setXTXcharcodes "01EA5 "01EA5 "01EA4 % LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
-\setXTXcharcodes "01EA6 "01EA7 "01EA6 % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
-\setXTXcharcodes "01EA7 "01EA7 "01EA6 % LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
-\setXTXcharcodes "01EA8 "01EA9 "01EA8 % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-\setXTXcharcodes "01EA9 "01EA9 "01EA8 % LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
-\setXTXcharcodes "01EAA "01EAB "01EAA % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
-\setXTXcharcodes "01EAB "01EAB "01EAA % LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
-\setXTXcharcodes "01EAC "01EAD "01EAC % LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-\setXTXcharcodes "01EAD "01EAD "01EAC % LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
-\setXTXcharcodes "01EAE "01EAF "01EAE % LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
-\setXTXcharcodes "01EAF "01EAF "01EAE % LATIN SMALL LETTER A WITH BREVE AND ACUTE
-\setXTXcharcodes "01EB0 "01EB1 "01EB0 % LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
-\setXTXcharcodes "01EB1 "01EB1 "01EB0 % LATIN SMALL LETTER A WITH BREVE AND GRAVE
-\setXTXcharcodes "01EB2 "01EB3 "01EB2 % LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
-\setXTXcharcodes "01EB3 "01EB3 "01EB2 % LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
-\setXTXcharcodes "01EB4 "01EB5 "01EB4 % LATIN CAPITAL LETTER A WITH BREVE AND TILDE
-\setXTXcharcodes "01EB5 "01EB5 "01EB4 % LATIN SMALL LETTER A WITH BREVE AND TILDE
-\setXTXcharcodes "01EB6 "01EB7 "01EB6 % LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
-\setXTXcharcodes "01EB7 "01EB7 "01EB6 % LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
-\setXTXcharcodes "01EB8 "01EB9 "01EB8 % LATIN CAPITAL LETTER E WITH DOT BELOW
-\setXTXcharcodes "01EB9 "01EB9 "01EB8 % LATIN SMALL LETTER E WITH DOT BELOW
-\setXTXcharcodes "01EBA "01EBB "01EBA % LATIN CAPITAL LETTER E WITH HOOK ABOVE
-\setXTXcharcodes "01EBB "01EBB "01EBA % LATIN SMALL LETTER E WITH HOOK ABOVE
-\setXTXcharcodes "01EBC "01EBD "01EBC % LATIN CAPITAL LETTER E WITH TILDE
-\setXTXcharcodes "01EBD "01EBD "01EBC % LATIN SMALL LETTER E WITH TILDE
-\setXTXcharcodes "01EBE "01EBF "01EBE % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
-\setXTXcharcodes "01EBF "01EBF "01EBE % LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-\setXTXcharcodes "01EC0 "01EC1 "01EC0 % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
-\setXTXcharcodes "01EC1 "01EC1 "01EC0 % LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-\setXTXcharcodes "01EC2 "01EC3 "01EC2 % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-\setXTXcharcodes "01EC3 "01EC3 "01EC2 % LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-\setXTXcharcodes "01EC4 "01EC5 "01EC4 % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
-\setXTXcharcodes "01EC5 "01EC5 "01EC4 % LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-\setXTXcharcodes "01EC6 "01EC7 "01EC6 % LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-\setXTXcharcodes "01EC7 "01EC7 "01EC6 % LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-\setXTXcharcodes "01EC8 "01EC9 "01EC8 % LATIN CAPITAL LETTER I WITH HOOK ABOVE
-\setXTXcharcodes "01EC9 "01EC9 "01EC8 % LATIN SMALL LETTER I WITH HOOK ABOVE
-\setXTXcharcodes "01ECA "01ECB "01ECA % LATIN CAPITAL LETTER I WITH DOT BELOW
-\setXTXcharcodes "01ECB "01ECB "01ECA % LATIN SMALL LETTER I WITH DOT BELOW
-\setXTXcharcodes "01ECC "01ECD "01ECC % LATIN CAPITAL LETTER O WITH DOT BELOW
-\setXTXcharcodes "01ECD "01ECD "01ECC % LATIN SMALL LETTER O WITH DOT BELOW
-\setXTXcharcodes "01ECE "01ECF "01ECE % LATIN CAPITAL LETTER O WITH HOOK ABOVE
-\setXTXcharcodes "01ECF "01ECF "01ECE % LATIN SMALL LETTER O WITH HOOK ABOVE
-\setXTXcharcodes "01ED0 "01ED1 "01ED0 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
-\setXTXcharcodes "01ED1 "01ED1 "01ED0 % LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
-\setXTXcharcodes "01ED2 "01ED3 "01ED2 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
-\setXTXcharcodes "01ED3 "01ED3 "01ED2 % LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
-\setXTXcharcodes "01ED4 "01ED5 "01ED4 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-\setXTXcharcodes "01ED5 "01ED5 "01ED4 % LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
-\setXTXcharcodes "01ED6 "01ED7 "01ED6 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
-\setXTXcharcodes "01ED7 "01ED7 "01ED6 % LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
-\setXTXcharcodes "01ED8 "01ED9 "01ED8 % LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-\setXTXcharcodes "01ED9 "01ED9 "01ED8 % LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
-\setXTXcharcodes "01EDA "01EDB "01EDA % LATIN CAPITAL LETTER O WITH HORN AND ACUTE
-\setXTXcharcodes "01EDB "01EDB "01EDA % LATIN SMALL LETTER O WITH HORN AND ACUTE
-\setXTXcharcodes "01EDC "01EDD "01EDC % LATIN CAPITAL LETTER O WITH HORN AND GRAVE
-\setXTXcharcodes "01EDD "01EDD "01EDC % LATIN SMALL LETTER O WITH HORN AND GRAVE
-\setXTXcharcodes "01EDE "01EDF "01EDE % LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
-\setXTXcharcodes "01EDF "01EDF "01EDE % LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
-\setXTXcharcodes "01EE0 "01EE1 "01EE0 % LATIN CAPITAL LETTER O WITH HORN AND TILDE
-\setXTXcharcodes "01EE1 "01EE1 "01EE0 % LATIN SMALL LETTER O WITH HORN AND TILDE
-\setXTXcharcodes "01EE2 "01EE3 "01EE2 % LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
-\setXTXcharcodes "01EE3 "01EE3 "01EE2 % LATIN SMALL LETTER O WITH HORN AND DOT BELOW
-\setXTXcharcodes "01EE4 "01EE5 "01EE4 % LATIN CAPITAL LETTER U WITH DOT BELOW
-\setXTXcharcodes "01EE5 "01EE5 "01EE4 % LATIN SMALL LETTER U WITH DOT BELOW
-\setXTXcharcodes "01EE6 "01EE7 "01EE6 % LATIN CAPITAL LETTER U WITH HOOK ABOVE
-\setXTXcharcodes "01EE7 "01EE7 "01EE6 % LATIN SMALL LETTER U WITH HOOK ABOVE
-\setXTXcharcodes "01EE8 "01EE9 "01EE8 % LATIN CAPITAL LETTER U WITH HORN AND ACUTE
-\setXTXcharcodes "01EE9 "01EE9 "01EE8 % LATIN SMALL LETTER U WITH HORN AND ACUTE
-\setXTXcharcodes "01EEA "01EEB "01EEA % LATIN CAPITAL LETTER U WITH HORN AND GRAVE
-\setXTXcharcodes "01EEB "01EEB "01EEA % LATIN SMALL LETTER U WITH HORN AND GRAVE
-\setXTXcharcodes "01EEC "01EED "01EEC % LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
-\setXTXcharcodes "01EED "01EED "01EEC % LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
-\setXTXcharcodes "01EEE "01EEF "01EEE % LATIN CAPITAL LETTER U WITH HORN AND TILDE
-\setXTXcharcodes "01EEF "01EEF "01EEE % LATIN SMALL LETTER U WITH HORN AND TILDE
-\setXTXcharcodes "01EF0 "01EF1 "01EF0 % LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
-\setXTXcharcodes "01EF1 "01EF1 "01EF0 % LATIN SMALL LETTER U WITH HORN AND DOT BELOW
-\setXTXcharcodes "01EF2 "01EF3 "01EF2 % LATIN CAPITAL LETTER Y WITH GRAVE
-\setXTXcharcodes "01EF3 "01EF3 "01EF2 % LATIN SMALL LETTER Y WITH GRAVE
-\setXTXcharcodes "01EF4 "01EF5 "01EF4 % LATIN CAPITAL LETTER Y WITH DOT BELOW
-\setXTXcharcodes "01EF5 "01EF5 "01EF4 % LATIN SMALL LETTER Y WITH DOT BELOW
-\setXTXcharcodes "01EF6 "01EF7 "01EF6 % LATIN CAPITAL LETTER Y WITH HOOK ABOVE
-\setXTXcharcodes "01EF7 "01EF7 "01EF6 % LATIN SMALL LETTER Y WITH HOOK ABOVE
-\setXTXcharcodes "01EF8 "01EF9 "01EF8 % LATIN CAPITAL LETTER Y WITH TILDE
-\setXTXcharcodes "01EF9 "01EF9 "01EF8 % LATIN SMALL LETTER Y WITH TILDE
-\setXTXcharcodes "01EFA "01EFA "01EFA % LATIN CAPITAL LETTER MIDDLE-WELSH LL
-\setXTXcharcodes "01EFB "01EFB "01EFB % LATIN SMALL LETTER MIDDLE-WELSH LL
-\setXTXcharcodes "01EFC "01EFC "01EFC % LATIN CAPITAL LETTER MIDDLE-WELSH V
-\setXTXcharcodes "01EFD "01EFD "01EFD % LATIN SMALL LETTER MIDDLE-WELSH V
-\setXTXcharcodes "01EFE "01EFE "01EFE % LATIN CAPITAL LETTER Y WITH LOOP
-\setXTXcharcodes "01EFF "01EFF "01EFF % LATIN SMALL LETTER Y WITH LOOP
-\setXTXcharcodes "01F00 "01F00 "01F08 % GREEK SMALL LETTER ALPHA WITH PSILI
-\setXTXcharcodes "01F01 "01F01 "01F09 % GREEK SMALL LETTER ALPHA WITH DASIA
-\setXTXcharcodes "01F02 "01F02 "01F0A % GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
-\setXTXcharcodes "01F03 "01F03 "01F0B % GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
-\setXTXcharcodes "01F04 "01F04 "01F0C % GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
-\setXTXcharcodes "01F05 "01F05 "01F0D % GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
-\setXTXcharcodes "01F06 "01F06 "01F0E % GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
-\setXTXcharcodes "01F07 "01F07 "01F0F % GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
-\setXTXcharcodes "01F08 "01F00 "01F08 % GREEK CAPITAL LETTER ALPHA WITH PSILI
-\setXTXcharcodes "01F09 "01F01 "01F09 % GREEK CAPITAL LETTER ALPHA WITH DASIA
-\setXTXcharcodes "01F0A "01F02 "01F0A % GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
-\setXTXcharcodes "01F0B "01F03 "01F0B % GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
-\setXTXcharcodes "01F0C "01F04 "01F0C % GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
-\setXTXcharcodes "01F0D "01F05 "01F0D % GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
-\setXTXcharcodes "01F0E "01F06 "01F0E % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
-\setXTXcharcodes "01F0F "01F07 "01F0F % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
-\setXTXcharcodes "01F10 "01F10 "01F18 % GREEK SMALL LETTER EPSILON WITH PSILI
-\setXTXcharcodes "01F11 "01F11 "01F19 % GREEK SMALL LETTER EPSILON WITH DASIA
-\setXTXcharcodes "01F12 "01F12 "01F1A % GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
-\setXTXcharcodes "01F13 "01F13 "01F1B % GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
-\setXTXcharcodes "01F14 "01F14 "01F1C % GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
-\setXTXcharcodes "01F15 "01F15 "01F1D % GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
-\setXTXcharcodes "01F18 "01F10 "01F18 % GREEK CAPITAL LETTER EPSILON WITH PSILI
-\setXTXcharcodes "01F19 "01F11 "01F19 % GREEK CAPITAL LETTER EPSILON WITH DASIA
-\setXTXcharcodes "01F1A "01F12 "01F1A % GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
-\setXTXcharcodes "01F1B "01F13 "01F1B % GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
-\setXTXcharcodes "01F1C "01F14 "01F1C % GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
-\setXTXcharcodes "01F1D "01F15 "01F1D % GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
-\setXTXcharcodes "01F20 "01F20 "01F28 % GREEK SMALL LETTER ETA WITH PSILI
-\setXTXcharcodes "01F21 "01F21 "01F29 % GREEK SMALL LETTER ETA WITH DASIA
-\setXTXcharcodes "01F22 "01F22 "01F2A % GREEK SMALL LETTER ETA WITH PSILI AND VARIA
-\setXTXcharcodes "01F23 "01F23 "01F2B % GREEK SMALL LETTER ETA WITH DASIA AND VARIA
-\setXTXcharcodes "01F24 "01F24 "01F2C % GREEK SMALL LETTER ETA WITH PSILI AND OXIA
-\setXTXcharcodes "01F25 "01F25 "01F2D % GREEK SMALL LETTER ETA WITH DASIA AND OXIA
-\setXTXcharcodes "01F26 "01F26 "01F2E % GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
-\setXTXcharcodes "01F27 "01F27 "01F2F % GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
-\setXTXcharcodes "01F28 "01F20 "01F28 % GREEK CAPITAL LETTER ETA WITH PSILI
-\setXTXcharcodes "01F29 "01F21 "01F29 % GREEK CAPITAL LETTER ETA WITH DASIA
-\setXTXcharcodes "01F2A "01F22 "01F2A % GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
-\setXTXcharcodes "01F2B "01F23 "01F2B % GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
-\setXTXcharcodes "01F2C "01F24 "01F2C % GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
-\setXTXcharcodes "01F2D "01F25 "01F2D % GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
-\setXTXcharcodes "01F2E "01F26 "01F2E % GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
-\setXTXcharcodes "01F2F "01F27 "01F2F % GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
-\setXTXcharcodes "01F30 "01F30 "01F38 % GREEK SMALL LETTER IOTA WITH PSILI
-\setXTXcharcodes "01F31 "01F31 "01F39 % GREEK SMALL LETTER IOTA WITH DASIA
-\setXTXcharcodes "01F32 "01F32 "01F3A % GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
-\setXTXcharcodes "01F33 "01F33 "01F3B % GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
-\setXTXcharcodes "01F34 "01F34 "01F3C % GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
-\setXTXcharcodes "01F35 "01F35 "01F3D % GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
-\setXTXcharcodes "01F36 "01F36 "01F3E % GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
-\setXTXcharcodes "01F37 "01F37 "01F3F % GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
-\setXTXcharcodes "01F38 "01F30 "01F38 % GREEK CAPITAL LETTER IOTA WITH PSILI
-\setXTXcharcodes "01F39 "01F31 "01F39 % GREEK CAPITAL LETTER IOTA WITH DASIA
-\setXTXcharcodes "01F3A "01F32 "01F3A % GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
-\setXTXcharcodes "01F3B "01F33 "01F3B % GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
-\setXTXcharcodes "01F3C "01F34 "01F3C % GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
-\setXTXcharcodes "01F3D "01F35 "01F3D % GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
-\setXTXcharcodes "01F3E "01F36 "01F3E % GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
-\setXTXcharcodes "01F3F "01F37 "01F3F % GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
-\setXTXcharcodes "01F40 "01F40 "01F48 % GREEK SMALL LETTER OMICRON WITH PSILI
-\setXTXcharcodes "01F41 "01F41 "01F49 % GREEK SMALL LETTER OMICRON WITH DASIA
-\setXTXcharcodes "01F42 "01F42 "01F4A % GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
-\setXTXcharcodes "01F43 "01F43 "01F4B % GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
-\setXTXcharcodes "01F44 "01F44 "01F4C % GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
-\setXTXcharcodes "01F45 "01F45 "01F4D % GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
-\setXTXcharcodes "01F48 "01F40 "01F48 % GREEK CAPITAL LETTER OMICRON WITH PSILI
-\setXTXcharcodes "01F49 "01F41 "01F49 % GREEK CAPITAL LETTER OMICRON WITH DASIA
-\setXTXcharcodes "01F4A "01F42 "01F4A % GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
-\setXTXcharcodes "01F4B "01F43 "01F4B % GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
-\setXTXcharcodes "01F4C "01F44 "01F4C % GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
-\setXTXcharcodes "01F4D "01F45 "01F4D % GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
-\setXTXcharcodes "01F50 "01F50 "01F50 % GREEK SMALL LETTER UPSILON WITH PSILI
-\setXTXcharcodes "01F51 "01F51 "01F59 % GREEK SMALL LETTER UPSILON WITH DASIA
-\setXTXcharcodes "01F52 "01F52 "01F52 % GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
-\setXTXcharcodes "01F53 "01F53 "01F5B % GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
-\setXTXcharcodes "01F54 "01F54 "01F54 % GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
-\setXTXcharcodes "01F55 "01F55 "01F5D % GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
-\setXTXcharcodes "01F56 "01F56 "01F56 % GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
-\setXTXcharcodes "01F57 "01F57 "01F5F % GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
-\setXTXcharcodes "01F59 "01F51 "01F59 % GREEK CAPITAL LETTER UPSILON WITH DASIA
-\setXTXcharcodes "01F5B "01F53 "01F5B % GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
-\setXTXcharcodes "01F5D "01F55 "01F5D % GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
-\setXTXcharcodes "01F5F "01F57 "01F5F % GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
-\setXTXcharcodes "01F60 "01F60 "01F68 % GREEK SMALL LETTER OMEGA WITH PSILI
-\setXTXcharcodes "01F61 "01F61 "01F69 % GREEK SMALL LETTER OMEGA WITH DASIA
-\setXTXcharcodes "01F62 "01F62 "01F6A % GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
-\setXTXcharcodes "01F63 "01F63 "01F6B % GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
-\setXTXcharcodes "01F64 "01F64 "01F6C % GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
-\setXTXcharcodes "01F65 "01F65 "01F6D % GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
-\setXTXcharcodes "01F66 "01F66 "01F6E % GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
-\setXTXcharcodes "01F67 "01F67 "01F6F % GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
-\setXTXcharcodes "01F68 "01F60 "01F68 % GREEK CAPITAL LETTER OMEGA WITH PSILI
-\setXTXcharcodes "01F69 "01F61 "01F69 % GREEK CAPITAL LETTER OMEGA WITH DASIA
-\setXTXcharcodes "01F6A "01F62 "01F6A % GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
-\setXTXcharcodes "01F6B "01F63 "01F6B % GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
-\setXTXcharcodes "01F6C "01F64 "01F6C % GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
-\setXTXcharcodes "01F6D "01F65 "01F6D % GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
-\setXTXcharcodes "01F6E "01F66 "01F6E % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
-\setXTXcharcodes "01F6F "01F67 "01F6F % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
-\setXTXcharcodes "01F70 "01F70 "01FBA % GREEK SMALL LETTER ALPHA WITH VARIA
-\setXTXcharcodes "01F71 "01F71 "01FBB % GREEK SMALL LETTER ALPHA WITH OXIA
-\setXTXcharcodes "01F72 "01F72 "01FC8 % GREEK SMALL LETTER EPSILON WITH VARIA
-\setXTXcharcodes "01F73 "01F73 "01FC9 % GREEK SMALL LETTER EPSILON WITH OXIA
-\setXTXcharcodes "01F74 "01F74 "01FCA % GREEK SMALL LETTER ETA WITH VARIA
-\setXTXcharcodes "01F75 "01F75 "01FCB % GREEK SMALL LETTER ETA WITH OXIA
-\setXTXcharcodes "01F76 "01F76 "01FDA % GREEK SMALL LETTER IOTA WITH VARIA
-\setXTXcharcodes "01F77 "01F77 "01FDB % GREEK SMALL LETTER IOTA WITH OXIA
-\setXTXcharcodes "01F78 "01F78 "01FF8 % GREEK SMALL LETTER OMICRON WITH VARIA
-\setXTXcharcodes "01F79 "01F79 "01FF9 % GREEK SMALL LETTER OMICRON WITH OXIA
-\setXTXcharcodes "01F7A "01F7A "01FEA % GREEK SMALL LETTER UPSILON WITH VARIA
-\setXTXcharcodes "01F7B "01F7B "01FEB % GREEK SMALL LETTER UPSILON WITH OXIA
-\setXTXcharcodes "01F7C "01F7C "01FFA % GREEK SMALL LETTER OMEGA WITH VARIA
-\setXTXcharcodes "01F7D "01F7D "01FFB % GREEK SMALL LETTER OMEGA WITH OXIA
-\setXTXcharcodes "01F80 "01F80 "01F88 % GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
-\setXTXcharcodes "01F81 "01F81 "01F89 % GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01F82 "01F82 "01F8A % GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01F83 "01F83 "01F8B % GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01F84 "01F84 "01F8C % GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01F85 "01F85 "01F8D % GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01F86 "01F86 "01F8E % GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-\setXTXcharcodes "01F87 "01F87 "01F8F % GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-\setXTXcharcodes "01F88 "01F80 "01F88 % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
-\setXTXcharcodes "01F89 "01F81 "01F89 % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
-\setXTXcharcodes "01F8A "01F82 "01F8A % GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-\setXTXcharcodes "01F8B "01F83 "01F8B % GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-\setXTXcharcodes "01F8C "01F84 "01F8C % GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-\setXTXcharcodes "01F8D "01F85 "01F8D % GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-\setXTXcharcodes "01F8E "01F86 "01F8E % GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-\setXTXcharcodes "01F8F "01F87 "01F8F % GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-\setXTXcharcodes "01F90 "01F90 "01F98 % GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
-\setXTXcharcodes "01F91 "01F91 "01F99 % GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01F92 "01F92 "01F9A % GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01F93 "01F93 "01F9B % GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01F94 "01F94 "01F9C % GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01F95 "01F95 "01F9D % GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01F96 "01F96 "01F9E % GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-\setXTXcharcodes "01F97 "01F97 "01F9F % GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-\setXTXcharcodes "01F98 "01F90 "01F98 % GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
-\setXTXcharcodes "01F99 "01F91 "01F99 % GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
-\setXTXcharcodes "01F9A "01F92 "01F9A % GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-\setXTXcharcodes "01F9B "01F93 "01F9B % GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-\setXTXcharcodes "01F9C "01F94 "01F9C % GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-\setXTXcharcodes "01F9D "01F95 "01F9D % GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-\setXTXcharcodes "01F9E "01F96 "01F9E % GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-\setXTXcharcodes "01F9F "01F97 "01F9F % GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-\setXTXcharcodes "01FA0 "01FA0 "01FA8 % GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
-\setXTXcharcodes "01FA1 "01FA1 "01FA9 % GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01FA2 "01FA2 "01FAA % GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01FA3 "01FA3 "01FAB % GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01FA4 "01FA4 "01FAC % GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01FA5 "01FA5 "01FAD % GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01FA6 "01FA6 "01FAE % GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
-\setXTXcharcodes "01FA7 "01FA7 "01FAF % GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
-\setXTXcharcodes "01FA8 "01FA0 "01FA8 % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
-\setXTXcharcodes "01FA9 "01FA1 "01FA9 % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
-\setXTXcharcodes "01FAA "01FA2 "01FAA % GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
-\setXTXcharcodes "01FAB "01FA3 "01FAB % GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
-\setXTXcharcodes "01FAC "01FA4 "01FAC % GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
-\setXTXcharcodes "01FAD "01FA5 "01FAD % GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
-\setXTXcharcodes "01FAE "01FA6 "01FAE % GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
-\setXTXcharcodes "01FAF "01FA7 "01FAF % GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
-\setXTXcharcodes "01FB0 "01FB0 "01FB8 % GREEK SMALL LETTER ALPHA WITH VRACHY
-\setXTXcharcodes "01FB1 "01FB1 "01FB9 % GREEK SMALL LETTER ALPHA WITH MACRON
-\setXTXcharcodes "01FB2 "01FB2 "01FB2 % GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01FB3 "01FB3 "01FBC % GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
-\setXTXcharcodes "01FB4 "01FB4 "01FB4 % GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01FB6 "01FB6 "01FB6 % GREEK SMALL LETTER ALPHA WITH PERISPOMENI
-\setXTXcharcodes "01FB7 "01FB7 "01FB7 % GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
-\setXTXcharcodes "01FB8 "01FB0 "01FB8 % GREEK CAPITAL LETTER ALPHA WITH VRACHY
-\setXTXcharcodes "01FB9 "01FB1 "01FB9 % GREEK CAPITAL LETTER ALPHA WITH MACRON
-\setXTXcharcodes "01FBA "01F70 "01FBA % GREEK CAPITAL LETTER ALPHA WITH VARIA
-\setXTXcharcodes "01FBB "01F71 "01FBB % GREEK CAPITAL LETTER ALPHA WITH OXIA
-\setXTXcharcodes "01FBC "01FB3 "01FBC % GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
-\setXTXcharcodes "01FBE "01FBE "00399 % GREEK PROSGEGRAMMENI
-\setXTXcharcodes "01FC2 "01FC2 "01FC2 % GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01FC3 "01FC3 "01FCC % GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
-\setXTXcharcodes "01FC4 "01FC4 "01FC4 % GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01FC6 "01FC6 "01FC6 % GREEK SMALL LETTER ETA WITH PERISPOMENI
-\setXTXcharcodes "01FC7 "01FC7 "01FC7 % GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
-\setXTXcharcodes "01FC8 "01F72 "01FC8 % GREEK CAPITAL LETTER EPSILON WITH VARIA
-\setXTXcharcodes "01FC9 "01F73 "01FC9 % GREEK CAPITAL LETTER EPSILON WITH OXIA
-\setXTXcharcodes "01FCA "01F74 "01FCA % GREEK CAPITAL LETTER ETA WITH VARIA
-\setXTXcharcodes "01FCB "01F75 "01FCB % GREEK CAPITAL LETTER ETA WITH OXIA
-\setXTXcharcodes "01FCC "01FC3 "01FCC % GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
-\setXTXcharcodes "01FD0 "01FD0 "01FD8 % GREEK SMALL LETTER IOTA WITH VRACHY
-\setXTXcharcodes "01FD1 "01FD1 "01FD9 % GREEK SMALL LETTER IOTA WITH MACRON
-\setXTXcharcodes "01FD2 "01FD2 "01FD2 % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
-\setXTXcharcodes "01FD3 "01FD3 "01FD3 % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
-\setXTXcharcodes "01FD6 "01FD6 "01FD6 % GREEK SMALL LETTER IOTA WITH PERISPOMENI
-\setXTXcharcodes "01FD7 "01FD7 "01FD7 % GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
-\setXTXcharcodes "01FD8 "01FD0 "01FD8 % GREEK CAPITAL LETTER IOTA WITH VRACHY
-\setXTXcharcodes "01FD9 "01FD1 "01FD9 % GREEK CAPITAL LETTER IOTA WITH MACRON
-\setXTXcharcodes "01FDA "01F76 "01FDA % GREEK CAPITAL LETTER IOTA WITH VARIA
-\setXTXcharcodes "01FDB "01F77 "01FDB % GREEK CAPITAL LETTER IOTA WITH OXIA
-\setXTXcharcodes "01FE0 "01FE0 "01FE8 % GREEK SMALL LETTER UPSILON WITH VRACHY
-\setXTXcharcodes "01FE1 "01FE1 "01FE9 % GREEK SMALL LETTER UPSILON WITH MACRON
-\setXTXcharcodes "01FE2 "01FE2 "01FE2 % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
-\setXTXcharcodes "01FE3 "01FE3 "01FE3 % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
-\setXTXcharcodes "01FE4 "01FE4 "01FE4 % GREEK SMALL LETTER RHO WITH PSILI
-\setXTXcharcodes "01FE5 "01FE5 "01FEC % GREEK SMALL LETTER RHO WITH DASIA
-\setXTXcharcodes "01FE6 "01FE6 "01FE6 % GREEK SMALL LETTER UPSILON WITH PERISPOMENI
-\setXTXcharcodes "01FE7 "01FE7 "01FE7 % GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
-\setXTXcharcodes "01FE8 "01FE0 "01FE8 % GREEK CAPITAL LETTER UPSILON WITH VRACHY
-\setXTXcharcodes "01FE9 "01FE1 "01FE9 % GREEK CAPITAL LETTER UPSILON WITH MACRON
-\setXTXcharcodes "01FEA "01F7A "01FEA % GREEK CAPITAL LETTER UPSILON WITH VARIA
-\setXTXcharcodes "01FEB "01F7B "01FEB % GREEK CAPITAL LETTER UPSILON WITH OXIA
-\setXTXcharcodes "01FEC "01FE5 "01FEC % GREEK CAPITAL LETTER RHO WITH DASIA
-\setXTXcharcodes "01FF2 "01FF2 "01FF2 % GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01FF3 "01FF3 "01FFC % GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
-\setXTXcharcodes "01FF4 "01FF4 "01FF4 % GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
-\setXTXcharcodes "01FF6 "01FF6 "01FF6 % GREEK SMALL LETTER OMEGA WITH PERISPOMENI
-\setXTXcharcodes "01FF7 "01FF7 "01FF7 % GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
-\setXTXcharcodes "01FF8 "01F78 "01FF8 % GREEK CAPITAL LETTER OMICRON WITH VARIA
-\setXTXcharcodes "01FF9 "01F79 "01FF9 % GREEK CAPITAL LETTER OMICRON WITH OXIA
-\setXTXcharcodes "01FFA "01F7C "01FFA % GREEK CAPITAL LETTER OMEGA WITH VARIA
-\setXTXcharcodes "01FFB "01F7D "01FFB % GREEK CAPITAL LETTER OMEGA WITH OXIA
-\setXTXcharcodes "01FFC "01FF3 "01FFC % GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
-\setXTXcharcodes "02071 "02071 "02071 % SUPERSCRIPT LATIN SMALL LETTER I
-\setXTXcharcodes "0207F "0207F "0207F % SUPERSCRIPT LATIN SMALL LETTER N
-\setXTXcharcodes "02102 "02102 "02102 % DOUBLE-STRUCK CAPITAL C
-\setXTXcharcodes "02107 "02107 "02107 % EULER CONSTANT
-\setXTXcharcodes "0210A "0210A "0210A % SCRIPT SMALL G
-\setXTXcharcodes "0210B "0210B "0210B % SCRIPT CAPITAL H
-\setXTXcharcodes "0210C "0210C "0210C % BLACK-LETTER CAPITAL H
-\setXTXcharcodes "0210D "0210D "0210D % DOUBLE-STRUCK CAPITAL H
-\setXTXcharcodes "0210E "0210E "0210E % PLANCK CONSTANT
-\setXTXcharcodes "0210F "0210F "0210F % PLANCK CONSTANT OVER TWO PI
-\setXTXcharcodes "02110 "02110 "02110 % SCRIPT CAPITAL I
-\setXTXcharcodes "02111 "02111 "02111 % BLACK-LETTER CAPITAL I
-\setXTXcharcodes "02112 "02112 "02112 % SCRIPT CAPITAL L
-\setXTXcharcodes "02113 "02113 "02113 % SCRIPT SMALL L
-\setXTXcharcodes "02115 "02115 "02115 % DOUBLE-STRUCK CAPITAL N
-\setXTXcharcodes "02119 "02119 "02119 % DOUBLE-STRUCK CAPITAL P
-\setXTXcharcodes "0211A "0211A "0211A % DOUBLE-STRUCK CAPITAL Q
-\setXTXcharcodes "0211B "0211B "0211B % SCRIPT CAPITAL R
-\setXTXcharcodes "0211C "0211C "0211C % BLACK-LETTER CAPITAL R
-\setXTXcharcodes "0211D "0211D "0211D % DOUBLE-STRUCK CAPITAL R
-\setXTXcharcodes "02124 "02124 "02124 % DOUBLE-STRUCK CAPITAL Z
-\setXTXcharcodes "02126 "003C9 "02126 % OHM SIGN
-\setXTXcharcodes "02128 "02128 "02128 % BLACK-LETTER CAPITAL Z
-\setXTXcharcodes "0212A "0006B "0212A % KELVIN SIGN
-\setXTXcharcodes "0212B "000E5 "0212B % ANGSTROM SIGN
-\setXTXcharcodes "0212C "0212C "0212C % SCRIPT CAPITAL B
-\setXTXcharcodes "0212D "0212D "0212D % BLACK-LETTER CAPITAL C
-\setXTXcharcodes "0212F "0212F "0212F % SCRIPT SMALL E
-\setXTXcharcodes "02130 "02130 "02130 % SCRIPT CAPITAL E
-\setXTXcharcodes "02131 "02131 "02131 % SCRIPT CAPITAL F
-\setXTXcharcodes "02132 "0214E "02132 % TURNED CAPITAL F
-\setXTXcharcodes "02133 "02133 "02133 % SCRIPT CAPITAL M
-\setXTXcharcodes "02134 "02134 "02134 % SCRIPT SMALL O
-\setXTXcharcodes "02139 "02139 "02139 % INFORMATION SOURCE
-\setXTXcharcodes "0213C "0213C "0213C % DOUBLE-STRUCK SMALL PI
-\setXTXcharcodes "0213D "0213D "0213D % DOUBLE-STRUCK SMALL GAMMA
-\setXTXcharcodes "0213E "0213E "0213E % DOUBLE-STRUCK CAPITAL GAMMA
-\setXTXcharcodes "0213F "0213F "0213F % DOUBLE-STRUCK CAPITAL PI
-\setXTXcharcodes "02145 "02145 "02145 % DOUBLE-STRUCK ITALIC CAPITAL D
-\setXTXcharcodes "02146 "02146 "02146 % DOUBLE-STRUCK ITALIC SMALL D
-\setXTXcharcodes "02147 "02147 "02147 % DOUBLE-STRUCK ITALIC SMALL E
-\setXTXcharcodes "02148 "02148 "02148 % DOUBLE-STRUCK ITALIC SMALL I
-\setXTXcharcodes "02149 "02149 "02149 % DOUBLE-STRUCK ITALIC SMALL J
-\setXTXcharcodes "0214E "0214E "02132 % TURNED SMALL F
-\setXTXcharcodes "02183 "02184 "02183 % ROMAN NUMERAL REVERSED ONE HUNDRED
-\setXTXcharcodes "02184 "02184 "02183 % LATIN SMALL LETTER REVERSED C
-\setXTXcharcodes "02C00 "02C30 "02C00 % GLAGOLITIC CAPITAL LETTER AZU
-\setXTXcharcodes "02C01 "02C31 "02C01 % GLAGOLITIC CAPITAL LETTER BUKY
-\setXTXcharcodes "02C02 "02C32 "02C02 % GLAGOLITIC CAPITAL LETTER VEDE
-\setXTXcharcodes "02C03 "02C33 "02C03 % GLAGOLITIC CAPITAL LETTER GLAGOLI
-\setXTXcharcodes "02C04 "02C34 "02C04 % GLAGOLITIC CAPITAL LETTER DOBRO
-\setXTXcharcodes "02C05 "02C35 "02C05 % GLAGOLITIC CAPITAL LETTER YESTU
-\setXTXcharcodes "02C06 "02C36 "02C06 % GLAGOLITIC CAPITAL LETTER ZHIVETE
-\setXTXcharcodes "02C07 "02C37 "02C07 % GLAGOLITIC CAPITAL LETTER DZELO
-\setXTXcharcodes "02C08 "02C38 "02C08 % GLAGOLITIC CAPITAL LETTER ZEMLJA
-\setXTXcharcodes "02C09 "02C39 "02C09 % GLAGOLITIC CAPITAL LETTER IZHE
-\setXTXcharcodes "02C0A "02C3A "02C0A % GLAGOLITIC CAPITAL LETTER INITIAL IZHE
-\setXTXcharcodes "02C0B "02C3B "02C0B % GLAGOLITIC CAPITAL LETTER I
-\setXTXcharcodes "02C0C "02C3C "02C0C % GLAGOLITIC CAPITAL LETTER DJERVI
-\setXTXcharcodes "02C0D "02C3D "02C0D % GLAGOLITIC CAPITAL LETTER KAKO
-\setXTXcharcodes "02C0E "02C3E "02C0E % GLAGOLITIC CAPITAL LETTER LJUDIJE
-\setXTXcharcodes "02C0F "02C3F "02C0F % GLAGOLITIC CAPITAL LETTER MYSLITE
-\setXTXcharcodes "02C10 "02C40 "02C10 % GLAGOLITIC CAPITAL LETTER NASHI
-\setXTXcharcodes "02C11 "02C41 "02C11 % GLAGOLITIC CAPITAL LETTER ONU
-\setXTXcharcodes "02C12 "02C42 "02C12 % GLAGOLITIC CAPITAL LETTER POKOJI
-\setXTXcharcodes "02C13 "02C43 "02C13 % GLAGOLITIC CAPITAL LETTER RITSI
-\setXTXcharcodes "02C14 "02C44 "02C14 % GLAGOLITIC CAPITAL LETTER SLOVO
-\setXTXcharcodes "02C15 "02C45 "02C15 % GLAGOLITIC CAPITAL LETTER TVRIDO
-\setXTXcharcodes "02C16 "02C46 "02C16 % GLAGOLITIC CAPITAL LETTER UKU
-\setXTXcharcodes "02C17 "02C47 "02C17 % GLAGOLITIC CAPITAL LETTER FRITU
-\setXTXcharcodes "02C18 "02C48 "02C18 % GLAGOLITIC CAPITAL LETTER HERU
-\setXTXcharcodes "02C19 "02C49 "02C19 % GLAGOLITIC CAPITAL LETTER OTU
-\setXTXcharcodes "02C1A "02C4A "02C1A % GLAGOLITIC CAPITAL LETTER PE
-\setXTXcharcodes "02C1B "02C4B "02C1B % GLAGOLITIC CAPITAL LETTER SHTA
-\setXTXcharcodes "02C1C "02C4C "02C1C % GLAGOLITIC CAPITAL LETTER TSI
-\setXTXcharcodes "02C1D "02C4D "02C1D % GLAGOLITIC CAPITAL LETTER CHRIVI
-\setXTXcharcodes "02C1E "02C4E "02C1E % GLAGOLITIC CAPITAL LETTER SHA
-\setXTXcharcodes "02C1F "02C4F "02C1F % GLAGOLITIC CAPITAL LETTER YERU
-\setXTXcharcodes "02C20 "02C50 "02C20 % GLAGOLITIC CAPITAL LETTER YERI
-\setXTXcharcodes "02C21 "02C51 "02C21 % GLAGOLITIC CAPITAL LETTER YATI
-\setXTXcharcodes "02C22 "02C52 "02C22 % GLAGOLITIC CAPITAL LETTER SPIDERY HA
-\setXTXcharcodes "02C23 "02C53 "02C23 % GLAGOLITIC CAPITAL LETTER YU
-\setXTXcharcodes "02C24 "02C54 "02C24 % GLAGOLITIC CAPITAL LETTER SMALL YUS
-\setXTXcharcodes "02C25 "02C55 "02C25 % GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL
-\setXTXcharcodes "02C26 "02C56 "02C26 % GLAGOLITIC CAPITAL LETTER YO
-\setXTXcharcodes "02C27 "02C57 "02C27 % GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS
-\setXTXcharcodes "02C28 "02C58 "02C28 % GLAGOLITIC CAPITAL LETTER BIG YUS
-\setXTXcharcodes "02C29 "02C59 "02C29 % GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS
-\setXTXcharcodes "02C2A "02C5A "02C2A % GLAGOLITIC CAPITAL LETTER FITA
-\setXTXcharcodes "02C2B "02C5B "02C2B % GLAGOLITIC CAPITAL LETTER IZHITSA
-\setXTXcharcodes "02C2C "02C5C "02C2C % GLAGOLITIC CAPITAL LETTER SHTAPIC
-\setXTXcharcodes "02C2D "02C5D "02C2D % GLAGOLITIC CAPITAL LETTER TROKUTASTI A
-\setXTXcharcodes "02C2E "02C5E "02C2E % GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
-\setXTXcharcodes "02C30 "02C30 "02C00 % GLAGOLITIC SMALL LETTER AZU
-\setXTXcharcodes "02C31 "02C31 "02C01 % GLAGOLITIC SMALL LETTER BUKY
-\setXTXcharcodes "02C32 "02C32 "02C02 % GLAGOLITIC SMALL LETTER VEDE
-\setXTXcharcodes "02C33 "02C33 "02C03 % GLAGOLITIC SMALL LETTER GLAGOLI
-\setXTXcharcodes "02C34 "02C34 "02C04 % GLAGOLITIC SMALL LETTER DOBRO
-\setXTXcharcodes "02C35 "02C35 "02C05 % GLAGOLITIC SMALL LETTER YESTU
-\setXTXcharcodes "02C36 "02C36 "02C06 % GLAGOLITIC SMALL LETTER ZHIVETE
-\setXTXcharcodes "02C37 "02C37 "02C07 % GLAGOLITIC SMALL LETTER DZELO
-\setXTXcharcodes "02C38 "02C38 "02C08 % GLAGOLITIC SMALL LETTER ZEMLJA
-\setXTXcharcodes "02C39 "02C39 "02C09 % GLAGOLITIC SMALL LETTER IZHE
-\setXTXcharcodes "02C3A "02C3A "02C0A % GLAGOLITIC SMALL LETTER INITIAL IZHE
-\setXTXcharcodes "02C3B "02C3B "02C0B % GLAGOLITIC SMALL LETTER I
-\setXTXcharcodes "02C3C "02C3C "02C0C % GLAGOLITIC SMALL LETTER DJERVI
-\setXTXcharcodes "02C3D "02C3D "02C0D % GLAGOLITIC SMALL LETTER KAKO
-\setXTXcharcodes "02C3E "02C3E "02C0E % GLAGOLITIC SMALL LETTER LJUDIJE
-\setXTXcharcodes "02C3F "02C3F "02C0F % GLAGOLITIC SMALL LETTER MYSLITE
-\setXTXcharcodes "02C40 "02C40 "02C10 % GLAGOLITIC SMALL LETTER NASHI
-\setXTXcharcodes "02C41 "02C41 "02C11 % GLAGOLITIC SMALL LETTER ONU
-\setXTXcharcodes "02C42 "02C42 "02C12 % GLAGOLITIC SMALL LETTER POKOJI
-\setXTXcharcodes "02C43 "02C43 "02C13 % GLAGOLITIC SMALL LETTER RITSI
-\setXTXcharcodes "02C44 "02C44 "02C14 % GLAGOLITIC SMALL LETTER SLOVO
-\setXTXcharcodes "02C45 "02C45 "02C15 % GLAGOLITIC SMALL LETTER TVRIDO
-\setXTXcharcodes "02C46 "02C46 "02C16 % GLAGOLITIC SMALL LETTER UKU
-\setXTXcharcodes "02C47 "02C47 "02C17 % GLAGOLITIC SMALL LETTER FRITU
-\setXTXcharcodes "02C48 "02C48 "02C18 % GLAGOLITIC SMALL LETTER HERU
-\setXTXcharcodes "02C49 "02C49 "02C19 % GLAGOLITIC SMALL LETTER OTU
-\setXTXcharcodes "02C4A "02C4A "02C1A % GLAGOLITIC SMALL LETTER PE
-\setXTXcharcodes "02C4B "02C4B "02C1B % GLAGOLITIC SMALL LETTER SHTA
-\setXTXcharcodes "02C4C "02C4C "02C1C % GLAGOLITIC SMALL LETTER TSI
-\setXTXcharcodes "02C4D "02C4D "02C1D % GLAGOLITIC SMALL LETTER CHRIVI
-\setXTXcharcodes "02C4E "02C4E "02C1E % GLAGOLITIC SMALL LETTER SHA
-\setXTXcharcodes "02C4F "02C4F "02C1F % GLAGOLITIC SMALL LETTER YERU
-\setXTXcharcodes "02C50 "02C50 "02C20 % GLAGOLITIC SMALL LETTER YERI
-\setXTXcharcodes "02C51 "02C51 "02C21 % GLAGOLITIC SMALL LETTER YATI
-\setXTXcharcodes "02C52 "02C52 "02C22 % GLAGOLITIC SMALL LETTER SPIDERY HA
-\setXTXcharcodes "02C53 "02C53 "02C23 % GLAGOLITIC SMALL LETTER YU
-\setXTXcharcodes "02C54 "02C54 "02C24 % GLAGOLITIC SMALL LETTER SMALL YUS
-\setXTXcharcodes "02C55 "02C55 "02C25 % GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL
-\setXTXcharcodes "02C56 "02C56 "02C26 % GLAGOLITIC SMALL LETTER YO
-\setXTXcharcodes "02C57 "02C57 "02C27 % GLAGOLITIC SMALL LETTER IOTATED SMALL YUS
-\setXTXcharcodes "02C58 "02C58 "02C28 % GLAGOLITIC SMALL LETTER BIG YUS
-\setXTXcharcodes "02C59 "02C59 "02C29 % GLAGOLITIC SMALL LETTER IOTATED BIG YUS
-\setXTXcharcodes "02C5A "02C5A "02C2A % GLAGOLITIC SMALL LETTER FITA
-\setXTXcharcodes "02C5B "02C5B "02C2B % GLAGOLITIC SMALL LETTER IZHITSA
-\setXTXcharcodes "02C5C "02C5C "02C2C % GLAGOLITIC SMALL LETTER SHTAPIC
-\setXTXcharcodes "02C5D "02C5D "02C2D % GLAGOLITIC SMALL LETTER TROKUTASTI A
-\setXTXcharcodes "02C5E "02C5E "02C2E % GLAGOLITIC SMALL LETTER LATINATE MYSLITE
-\setXTXcharcodes "02C60 "02C61 "02C60 % LATIN CAPITAL LETTER L WITH DOUBLE BAR
-\setXTXcharcodes "02C61 "02C61 "02C60 % LATIN SMALL LETTER L WITH DOUBLE BAR
-\setXTXcharcodes "02C62 "0026B "02C62 % LATIN CAPITAL LETTER L WITH MIDDLE TILDE
-\setXTXcharcodes "02C63 "01D7D "02C63 % LATIN CAPITAL LETTER P WITH STROKE
-\setXTXcharcodes "02C64 "0027D "02C64 % LATIN CAPITAL LETTER R WITH TAIL
-\setXTXcharcodes "02C65 "02C65 "0023A % LATIN SMALL LETTER A WITH STROKE
-\setXTXcharcodes "02C66 "02C66 "0023E % LATIN SMALL LETTER T WITH DIAGONAL STROKE
-\setXTXcharcodes "02C67 "02C68 "02C67 % LATIN CAPITAL LETTER H WITH DESCENDER
-\setXTXcharcodes "02C68 "02C68 "02C67 % LATIN SMALL LETTER H WITH DESCENDER
-\setXTXcharcodes "02C69 "02C6A "02C69 % LATIN CAPITAL LETTER K WITH DESCENDER
-\setXTXcharcodes "02C6A "02C6A "02C69 % LATIN SMALL LETTER K WITH DESCENDER
-\setXTXcharcodes "02C6B "02C6C "02C6B % LATIN CAPITAL LETTER Z WITH DESCENDER
-\setXTXcharcodes "02C6C "02C6C "02C6B % LATIN SMALL LETTER Z WITH DESCENDER
-\setXTXcharcodes "02C6D "02C6D "02C6D % LATIN CAPITAL LETTER ALPHA
-\setXTXcharcodes "02C6E "02C6E "02C6E % LATIN CAPITAL LETTER M WITH HOOK
-\setXTXcharcodes "02C6F "02C6F "02C6F % LATIN CAPITAL LETTER TURNED A
-\setXTXcharcodes "02C70 "02C70 "02C70 % LATIN CAPITAL LETTER TURNED ALPHA
-\setXTXcharcodes "02C71 "02C71 "02C71 % LATIN SMALL LETTER V WITH RIGHT HOOK
-\setXTXcharcodes "02C72 "02C72 "02C72 % LATIN CAPITAL LETTER W WITH HOOK
-\setXTXcharcodes "02C73 "02C73 "02C73 % LATIN SMALL LETTER W WITH HOOK
-\setXTXcharcodes "02C74 "02C74 "02C74 % LATIN SMALL LETTER V WITH CURL
-\setXTXcharcodes "02C75 "02C76 "02C75 % LATIN CAPITAL LETTER HALF H
-\setXTXcharcodes "02C76 "02C76 "02C75 % LATIN SMALL LETTER HALF H
-\setXTXcharcodes "02C77 "02C77 "02C77 % LATIN SMALL LETTER TAILLESS PHI
-\setXTXcharcodes "02C78 "02C78 "02C78 % LATIN SMALL LETTER E WITH NOTCH
-\setXTXcharcodes "02C79 "02C79 "02C79 % LATIN SMALL LETTER TURNED R WITH TAIL
-\setXTXcharcodes "02C7A "02C7A "02C7A % LATIN SMALL LETTER O WITH LOW RING INSIDE
-\setXTXcharcodes "02C7B "02C7B "02C7B % LATIN LETTER SMALL CAPITAL TURNED E
-\setXTXcharcodes "02C7C "02C7C "02C7C % LATIN SUBSCRIPT SMALL LETTER J
-\setXTXcharcodes "02C7E "02C7E "02C7E % LATIN CAPITAL LETTER S WITH SWASH TAIL
-\setXTXcharcodes "02C7F "02C7F "02C7F % LATIN CAPITAL LETTER Z WITH SWASH TAIL
-\setXTXcharcodes "02C80 "02C81 "02C80 % COPTIC CAPITAL LETTER ALFA
-\setXTXcharcodes "02C81 "02C81 "02C80 % COPTIC SMALL LETTER ALFA
-\setXTXcharcodes "02C82 "02C83 "02C82 % COPTIC CAPITAL LETTER VIDA
-\setXTXcharcodes "02C83 "02C83 "02C82 % COPTIC SMALL LETTER VIDA
-\setXTXcharcodes "02C84 "02C85 "02C84 % COPTIC CAPITAL LETTER GAMMA
-\setXTXcharcodes "02C85 "02C85 "02C84 % COPTIC SMALL LETTER GAMMA
-\setXTXcharcodes "02C86 "02C87 "02C86 % COPTIC CAPITAL LETTER DALDA
-\setXTXcharcodes "02C87 "02C87 "02C86 % COPTIC SMALL LETTER DALDA
-\setXTXcharcodes "02C88 "02C89 "02C88 % COPTIC CAPITAL LETTER EIE
-\setXTXcharcodes "02C89 "02C89 "02C88 % COPTIC SMALL LETTER EIE
-\setXTXcharcodes "02C8A "02C8B "02C8A % COPTIC CAPITAL LETTER SOU
-\setXTXcharcodes "02C8B "02C8B "02C8A % COPTIC SMALL LETTER SOU
-\setXTXcharcodes "02C8C "02C8D "02C8C % COPTIC CAPITAL LETTER ZATA
-\setXTXcharcodes "02C8D "02C8D "02C8C % COPTIC SMALL LETTER ZATA
-\setXTXcharcodes "02C8E "02C8F "02C8E % COPTIC CAPITAL LETTER HATE
-\setXTXcharcodes "02C8F "02C8F "02C8E % COPTIC SMALL LETTER HATE
-\setXTXcharcodes "02C90 "02C91 "02C90 % COPTIC CAPITAL LETTER THETHE
-\setXTXcharcodes "02C91 "02C91 "02C90 % COPTIC SMALL LETTER THETHE
-\setXTXcharcodes "02C92 "02C93 "02C92 % COPTIC CAPITAL LETTER IAUDA
-\setXTXcharcodes "02C93 "02C93 "02C92 % COPTIC SMALL LETTER IAUDA
-\setXTXcharcodes "02C94 "02C95 "02C94 % COPTIC CAPITAL LETTER KAPA
-\setXTXcharcodes "02C95 "02C95 "02C94 % COPTIC SMALL LETTER KAPA
-\setXTXcharcodes "02C96 "02C97 "02C96 % COPTIC CAPITAL LETTER LAULA
-\setXTXcharcodes "02C97 "02C97 "02C96 % COPTIC SMALL LETTER LAULA
-\setXTXcharcodes "02C98 "02C99 "02C98 % COPTIC CAPITAL LETTER MI
-\setXTXcharcodes "02C99 "02C99 "02C98 % COPTIC SMALL LETTER MI
-\setXTXcharcodes "02C9A "02C9B "02C9A % COPTIC CAPITAL LETTER NI
-\setXTXcharcodes "02C9B "02C9B "02C9A % COPTIC SMALL LETTER NI
-\setXTXcharcodes "02C9C "02C9D "02C9C % COPTIC CAPITAL LETTER KSI
-\setXTXcharcodes "02C9D "02C9D "02C9C % COPTIC SMALL LETTER KSI
-\setXTXcharcodes "02C9E "02C9F "02C9E % COPTIC CAPITAL LETTER O
-\setXTXcharcodes "02C9F "02C9F "02C9E % COPTIC SMALL LETTER O
-\setXTXcharcodes "02CA0 "02CA1 "02CA0 % COPTIC CAPITAL LETTER PI
-\setXTXcharcodes "02CA1 "02CA1 "02CA0 % COPTIC SMALL LETTER PI
-\setXTXcharcodes "02CA2 "02CA3 "02CA2 % COPTIC CAPITAL LETTER RO
-\setXTXcharcodes "02CA3 "02CA3 "02CA2 % COPTIC SMALL LETTER RO
-\setXTXcharcodes "02CA4 "02CA5 "02CA4 % COPTIC CAPITAL LETTER SIMA
-\setXTXcharcodes "02CA5 "02CA5 "02CA4 % COPTIC SMALL LETTER SIMA
-\setXTXcharcodes "02CA6 "02CA7 "02CA6 % COPTIC CAPITAL LETTER TAU
-\setXTXcharcodes "02CA7 "02CA7 "02CA6 % COPTIC SMALL LETTER TAU
-\setXTXcharcodes "02CA8 "02CA9 "02CA8 % COPTIC CAPITAL LETTER UA
-\setXTXcharcodes "02CA9 "02CA9 "02CA8 % COPTIC SMALL LETTER UA
-\setXTXcharcodes "02CAA "02CAB "02CAA % COPTIC CAPITAL LETTER FI
-\setXTXcharcodes "02CAB "02CAB "02CAA % COPTIC SMALL LETTER FI
-\setXTXcharcodes "02CAC "02CAD "02CAC % COPTIC CAPITAL LETTER KHI
-\setXTXcharcodes "02CAD "02CAD "02CAC % COPTIC SMALL LETTER KHI
-\setXTXcharcodes "02CAE "02CAF "02CAE % COPTIC CAPITAL LETTER PSI
-\setXTXcharcodes "02CAF "02CAF "02CAE % COPTIC SMALL LETTER PSI
-\setXTXcharcodes "02CB0 "02CB1 "02CB0 % COPTIC CAPITAL LETTER OOU
-\setXTXcharcodes "02CB1 "02CB1 "02CB0 % COPTIC SMALL LETTER OOU
-\setXTXcharcodes "02CB2 "02CB3 "02CB2 % COPTIC CAPITAL LETTER DIALECT-P ALEF
-\setXTXcharcodes "02CB3 "02CB3 "02CB2 % COPTIC SMALL LETTER DIALECT-P ALEF
-\setXTXcharcodes "02CB4 "02CB5 "02CB4 % COPTIC CAPITAL LETTER OLD COPTIC AIN
-\setXTXcharcodes "02CB5 "02CB5 "02CB4 % COPTIC SMALL LETTER OLD COPTIC AIN
-\setXTXcharcodes "02CB6 "02CB7 "02CB6 % COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
-\setXTXcharcodes "02CB7 "02CB7 "02CB6 % COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
-\setXTXcharcodes "02CB8 "02CB9 "02CB8 % COPTIC CAPITAL LETTER DIALECT-P KAPA
-\setXTXcharcodes "02CB9 "02CB9 "02CB8 % COPTIC SMALL LETTER DIALECT-P KAPA
-\setXTXcharcodes "02CBA "02CBB "02CBA % COPTIC CAPITAL LETTER DIALECT-P NI
-\setXTXcharcodes "02CBB "02CBB "02CBA % COPTIC SMALL LETTER DIALECT-P NI
-\setXTXcharcodes "02CBC "02CBD "02CBC % COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
-\setXTXcharcodes "02CBD "02CBD "02CBC % COPTIC SMALL LETTER CRYPTOGRAMMIC NI
-\setXTXcharcodes "02CBE "02CBF "02CBE % COPTIC CAPITAL LETTER OLD COPTIC OOU
-\setXTXcharcodes "02CBF "02CBF "02CBE % COPTIC SMALL LETTER OLD COPTIC OOU
-\setXTXcharcodes "02CC0 "02CC1 "02CC0 % COPTIC CAPITAL LETTER SAMPI
-\setXTXcharcodes "02CC1 "02CC1 "02CC0 % COPTIC SMALL LETTER SAMPI
-\setXTXcharcodes "02CC2 "02CC3 "02CC2 % COPTIC CAPITAL LETTER CROSSED SHEI
-\setXTXcharcodes "02CC3 "02CC3 "02CC2 % COPTIC SMALL LETTER CROSSED SHEI
-\setXTXcharcodes "02CC4 "02CC5 "02CC4 % COPTIC CAPITAL LETTER OLD COPTIC SHEI
-\setXTXcharcodes "02CC5 "02CC5 "02CC4 % COPTIC SMALL LETTER OLD COPTIC SHEI
-\setXTXcharcodes "02CC6 "02CC7 "02CC6 % COPTIC CAPITAL LETTER OLD COPTIC ESH
-\setXTXcharcodes "02CC7 "02CC7 "02CC6 % COPTIC SMALL LETTER OLD COPTIC ESH
-\setXTXcharcodes "02CC8 "02CC9 "02CC8 % COPTIC CAPITAL LETTER AKHMIMIC KHEI
-\setXTXcharcodes "02CC9 "02CC9 "02CC8 % COPTIC SMALL LETTER AKHMIMIC KHEI
-\setXTXcharcodes "02CCA "02CCB "02CCA % COPTIC CAPITAL LETTER DIALECT-P HORI
-\setXTXcharcodes "02CCB "02CCB "02CCA % COPTIC SMALL LETTER DIALECT-P HORI
-\setXTXcharcodes "02CCC "02CCD "02CCC % COPTIC CAPITAL LETTER OLD COPTIC HORI
-\setXTXcharcodes "02CCD "02CCD "02CCC % COPTIC SMALL LETTER OLD COPTIC HORI
-\setXTXcharcodes "02CCE "02CCF "02CCE % COPTIC CAPITAL LETTER OLD COPTIC HA
-\setXTXcharcodes "02CCF "02CCF "02CCE % COPTIC SMALL LETTER OLD COPTIC HA
-\setXTXcharcodes "02CD0 "02CD1 "02CD0 % COPTIC CAPITAL LETTER L-SHAPED HA
-\setXTXcharcodes "02CD1 "02CD1 "02CD0 % COPTIC SMALL LETTER L-SHAPED HA
-\setXTXcharcodes "02CD2 "02CD3 "02CD2 % COPTIC CAPITAL LETTER OLD COPTIC HEI
-\setXTXcharcodes "02CD3 "02CD3 "02CD2 % COPTIC SMALL LETTER OLD COPTIC HEI
-\setXTXcharcodes "02CD4 "02CD5 "02CD4 % COPTIC CAPITAL LETTER OLD COPTIC HAT
-\setXTXcharcodes "02CD5 "02CD5 "02CD4 % COPTIC SMALL LETTER OLD COPTIC HAT
-\setXTXcharcodes "02CD6 "02CD7 "02CD6 % COPTIC CAPITAL LETTER OLD COPTIC GANGIA
-\setXTXcharcodes "02CD7 "02CD7 "02CD6 % COPTIC SMALL LETTER OLD COPTIC GANGIA
-\setXTXcharcodes "02CD8 "02CD9 "02CD8 % COPTIC CAPITAL LETTER OLD COPTIC DJA
-\setXTXcharcodes "02CD9 "02CD9 "02CD8 % COPTIC SMALL LETTER OLD COPTIC DJA
-\setXTXcharcodes "02CDA "02CDB "02CDA % COPTIC CAPITAL LETTER OLD COPTIC SHIMA
-\setXTXcharcodes "02CDB "02CDB "02CDA % COPTIC SMALL LETTER OLD COPTIC SHIMA
-\setXTXcharcodes "02CDC "02CDD "02CDC % COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
-\setXTXcharcodes "02CDD "02CDD "02CDC % COPTIC SMALL LETTER OLD NUBIAN SHIMA
-\setXTXcharcodes "02CDE "02CDF "02CDE % COPTIC CAPITAL LETTER OLD NUBIAN NGI
-\setXTXcharcodes "02CDF "02CDF "02CDE % COPTIC SMALL LETTER OLD NUBIAN NGI
-\setXTXcharcodes "02CE0 "02CE1 "02CE0 % COPTIC CAPITAL LETTER OLD NUBIAN NYI
-\setXTXcharcodes "02CE1 "02CE1 "02CE0 % COPTIC SMALL LETTER OLD NUBIAN NYI
-\setXTXcharcodes "02CE2 "02CE3 "02CE2 % COPTIC CAPITAL LETTER OLD NUBIAN WAU
-\setXTXcharcodes "02CE3 "02CE3 "02CE2 % COPTIC SMALL LETTER OLD NUBIAN WAU
-\setXTXcharcodes "02CE4 "02CE4 "02CE4 % COPTIC SYMBOL KAI
-\setXTXcharcodes "02CEB "02CEB "02CEB % COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
-\setXTXcharcodes "02CEC "02CEC "02CEC % COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
-\setXTXcharcodes "02CED "02CED "02CED % COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
-\setXTXcharcodes "02CEE "02CEE "02CEE % COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
-\setXTXcharcodes "02CF2 "02CF2 "02CF2 % COPTIC CAPITAL LETTER BOHAIRIC KHEI
-\setXTXcharcodes "02CF3 "02CF3 "02CF3 % COPTIC SMALL LETTER BOHAIRIC KHEI
-\setXTXcharcodes "02D00 "02D00 "010A0 % GEORGIAN SMALL LETTER AN
-\setXTXcharcodes "02D01 "02D01 "010A1 % GEORGIAN SMALL LETTER BAN
-\setXTXcharcodes "02D02 "02D02 "010A2 % GEORGIAN SMALL LETTER GAN
-\setXTXcharcodes "02D03 "02D03 "010A3 % GEORGIAN SMALL LETTER DON
-\setXTXcharcodes "02D04 "02D04 "010A4 % GEORGIAN SMALL LETTER EN
-\setXTXcharcodes "02D05 "02D05 "010A5 % GEORGIAN SMALL LETTER VIN
-\setXTXcharcodes "02D06 "02D06 "010A6 % GEORGIAN SMALL LETTER ZEN
-\setXTXcharcodes "02D07 "02D07 "010A7 % GEORGIAN SMALL LETTER TAN
-\setXTXcharcodes "02D08 "02D08 "010A8 % GEORGIAN SMALL LETTER IN
-\setXTXcharcodes "02D09 "02D09 "010A9 % GEORGIAN SMALL LETTER KAN
-\setXTXcharcodes "02D0A "02D0A "010AA % GEORGIAN SMALL LETTER LAS
-\setXTXcharcodes "02D0B "02D0B "010AB % GEORGIAN SMALL LETTER MAN
-\setXTXcharcodes "02D0C "02D0C "010AC % GEORGIAN SMALL LETTER NAR
-\setXTXcharcodes "02D0D "02D0D "010AD % GEORGIAN SMALL LETTER ON
-\setXTXcharcodes "02D0E "02D0E "010AE % GEORGIAN SMALL LETTER PAR
-\setXTXcharcodes "02D0F "02D0F "010AF % GEORGIAN SMALL LETTER ZHAR
-\setXTXcharcodes "02D10 "02D10 "010B0 % GEORGIAN SMALL LETTER RAE
-\setXTXcharcodes "02D11 "02D11 "010B1 % GEORGIAN SMALL LETTER SAN
-\setXTXcharcodes "02D12 "02D12 "010B2 % GEORGIAN SMALL LETTER TAR
-\setXTXcharcodes "02D13 "02D13 "010B3 % GEORGIAN SMALL LETTER UN
-\setXTXcharcodes "02D14 "02D14 "010B4 % GEORGIAN SMALL LETTER PHAR
-\setXTXcharcodes "02D15 "02D15 "010B5 % GEORGIAN SMALL LETTER KHAR
-\setXTXcharcodes "02D16 "02D16 "010B6 % GEORGIAN SMALL LETTER GHAN
-\setXTXcharcodes "02D17 "02D17 "010B7 % GEORGIAN SMALL LETTER QAR
-\setXTXcharcodes "02D18 "02D18 "010B8 % GEORGIAN SMALL LETTER SHIN
-\setXTXcharcodes "02D19 "02D19 "010B9 % GEORGIAN SMALL LETTER CHIN
-\setXTXcharcodes "02D1A "02D1A "010BA % GEORGIAN SMALL LETTER CAN
-\setXTXcharcodes "02D1B "02D1B "010BB % GEORGIAN SMALL LETTER JIL
-\setXTXcharcodes "02D1C "02D1C "010BC % GEORGIAN SMALL LETTER CIL
-\setXTXcharcodes "02D1D "02D1D "010BD % GEORGIAN SMALL LETTER CHAR
-\setXTXcharcodes "02D1E "02D1E "010BE % GEORGIAN SMALL LETTER XAN
-\setXTXcharcodes "02D1F "02D1F "010BF % GEORGIAN SMALL LETTER JHAN
-\setXTXcharcodes "02D20 "02D20 "010C0 % GEORGIAN SMALL LETTER HAE
-\setXTXcharcodes "02D21 "02D21 "010C1 % GEORGIAN SMALL LETTER HE
-\setXTXcharcodes "02D22 "02D22 "010C2 % GEORGIAN SMALL LETTER HIE
-\setXTXcharcodes "02D23 "02D23 "010C3 % GEORGIAN SMALL LETTER WE
-\setXTXcharcodes "02D24 "02D24 "010C4 % GEORGIAN SMALL LETTER HAR
-\setXTXcharcodes "02D25 "02D25 "010C5 % GEORGIAN SMALL LETTER HOE
-\setXTXcharcodes "02D27 "02D27 "02D27 % GEORGIAN SMALL LETTER YN
-\setXTXcharcodes "02D2D "02D2D "02D2D % GEORGIAN SMALL LETTER AEN
-\setXTXcharcodes "0A640 "0A640 "0A640 % CYRILLIC CAPITAL LETTER ZEMLYA
-\setXTXcharcodes "0A641 "0A641 "0A641 % CYRILLIC SMALL LETTER ZEMLYA
-\setXTXcharcodes "0A642 "0A642 "0A642 % CYRILLIC CAPITAL LETTER DZELO
-\setXTXcharcodes "0A643 "0A643 "0A643 % CYRILLIC SMALL LETTER DZELO
-\setXTXcharcodes "0A644 "0A644 "0A644 % CYRILLIC CAPITAL LETTER REVERSED DZE
-\setXTXcharcodes "0A645 "0A645 "0A645 % CYRILLIC SMALL LETTER REVERSED DZE
-\setXTXcharcodes "0A646 "0A646 "0A646 % CYRILLIC CAPITAL LETTER IOTA
-\setXTXcharcodes "0A647 "0A647 "0A647 % CYRILLIC SMALL LETTER IOTA
-\setXTXcharcodes "0A648 "0A648 "0A648 % CYRILLIC CAPITAL LETTER DJERV
-\setXTXcharcodes "0A649 "0A649 "0A649 % CYRILLIC SMALL LETTER DJERV
-\setXTXcharcodes "0A64A "0A64A "0A64A % CYRILLIC CAPITAL LETTER MONOGRAPH UK
-\setXTXcharcodes "0A64B "0A64B "0A64B % CYRILLIC SMALL LETTER MONOGRAPH UK
-\setXTXcharcodes "0A64C "0A64C "0A64C % CYRILLIC CAPITAL LETTER BROAD OMEGA
-\setXTXcharcodes "0A64D "0A64D "0A64D % CYRILLIC SMALL LETTER BROAD OMEGA
-\setXTXcharcodes "0A64E "0A64E "0A64E % CYRILLIC CAPITAL LETTER NEUTRAL YER
-\setXTXcharcodes "0A64F "0A64F "0A64F % CYRILLIC SMALL LETTER NEUTRAL YER
-\setXTXcharcodes "0A650 "0A650 "0A650 % CYRILLIC CAPITAL LETTER YERU WITH BACK YER
-\setXTXcharcodes "0A651 "0A651 "0A651 % CYRILLIC SMALL LETTER YERU WITH BACK YER
-\setXTXcharcodes "0A652 "0A652 "0A652 % CYRILLIC CAPITAL LETTER IOTIFIED YAT
-\setXTXcharcodes "0A653 "0A653 "0A653 % CYRILLIC SMALL LETTER IOTIFIED YAT
-\setXTXcharcodes "0A654 "0A654 "0A654 % CYRILLIC CAPITAL LETTER REVERSED YU
-\setXTXcharcodes "0A655 "0A655 "0A655 % CYRILLIC SMALL LETTER REVERSED YU
-\setXTXcharcodes "0A656 "0A656 "0A656 % CYRILLIC CAPITAL LETTER IOTIFIED A
-\setXTXcharcodes "0A657 "0A657 "0A657 % CYRILLIC SMALL LETTER IOTIFIED A
-\setXTXcharcodes "0A658 "0A658 "0A658 % CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
-\setXTXcharcodes "0A659 "0A659 "0A659 % CYRILLIC SMALL LETTER CLOSED LITTLE YUS
-\setXTXcharcodes "0A65A "0A65A "0A65A % CYRILLIC CAPITAL LETTER BLENDED YUS
-\setXTXcharcodes "0A65B "0A65B "0A65B % CYRILLIC SMALL LETTER BLENDED YUS
-\setXTXcharcodes "0A65C "0A65C "0A65C % CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
-\setXTXcharcodes "0A65D "0A65D "0A65D % CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
-\setXTXcharcodes "0A65E "0A65E "0A65E % CYRILLIC CAPITAL LETTER YN
-\setXTXcharcodes "0A65F "0A65F "0A65F % CYRILLIC SMALL LETTER YN
-\setXTXcharcodes "0A660 "0A660 "0A660 % CYRILLIC CAPITAL LETTER REVERSED TSE
-\setXTXcharcodes "0A661 "0A661 "0A661 % CYRILLIC SMALL LETTER REVERSED TSE
-\setXTXcharcodes "0A662 "0A662 "0A662 % CYRILLIC CAPITAL LETTER SOFT DE
-\setXTXcharcodes "0A663 "0A663 "0A663 % CYRILLIC SMALL LETTER SOFT DE
-\setXTXcharcodes "0A664 "0A664 "0A664 % CYRILLIC CAPITAL LETTER SOFT EL
-\setXTXcharcodes "0A665 "0A665 "0A665 % CYRILLIC SMALL LETTER SOFT EL
-\setXTXcharcodes "0A666 "0A666 "0A666 % CYRILLIC CAPITAL LETTER SOFT EM
-\setXTXcharcodes "0A667 "0A667 "0A667 % CYRILLIC SMALL LETTER SOFT EM
-\setXTXcharcodes "0A668 "0A668 "0A668 % CYRILLIC CAPITAL LETTER MONOCULAR O
-\setXTXcharcodes "0A669 "0A669 "0A669 % CYRILLIC SMALL LETTER MONOCULAR O
-\setXTXcharcodes "0A66A "0A66A "0A66A % CYRILLIC CAPITAL LETTER BINOCULAR O
-\setXTXcharcodes "0A66B "0A66B "0A66B % CYRILLIC SMALL LETTER BINOCULAR O
-\setXTXcharcodes "0A66C "0A66C "0A66C % CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
-\setXTXcharcodes "0A66D "0A66D "0A66D % CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
-\setXTXcharcodes "0A680 "0A680 "0A680 % CYRILLIC CAPITAL LETTER DWE
-\setXTXcharcodes "0A681 "0A681 "0A681 % CYRILLIC SMALL LETTER DWE
-\setXTXcharcodes "0A682 "0A682 "0A682 % CYRILLIC CAPITAL LETTER DZWE
-\setXTXcharcodes "0A683 "0A683 "0A683 % CYRILLIC SMALL LETTER DZWE
-\setXTXcharcodes "0A684 "0A684 "0A684 % CYRILLIC CAPITAL LETTER ZHWE
-\setXTXcharcodes "0A685 "0A685 "0A685 % CYRILLIC SMALL LETTER ZHWE
-\setXTXcharcodes "0A686 "0A686 "0A686 % CYRILLIC CAPITAL LETTER CCHE
-\setXTXcharcodes "0A687 "0A687 "0A687 % CYRILLIC SMALL LETTER CCHE
-\setXTXcharcodes "0A688 "0A688 "0A688 % CYRILLIC CAPITAL LETTER DZZE
-\setXTXcharcodes "0A689 "0A689 "0A689 % CYRILLIC SMALL LETTER DZZE
-\setXTXcharcodes "0A68A "0A68A "0A68A % CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
-\setXTXcharcodes "0A68B "0A68B "0A68B % CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK
-\setXTXcharcodes "0A68C "0A68C "0A68C % CYRILLIC CAPITAL LETTER TWE
-\setXTXcharcodes "0A68D "0A68D "0A68D % CYRILLIC SMALL LETTER TWE
-\setXTXcharcodes "0A68E "0A68E "0A68E % CYRILLIC CAPITAL LETTER TSWE
-\setXTXcharcodes "0A68F "0A68F "0A68F % CYRILLIC SMALL LETTER TSWE
-\setXTXcharcodes "0A690 "0A690 "0A690 % CYRILLIC CAPITAL LETTER TSSE
-\setXTXcharcodes "0A691 "0A691 "0A691 % CYRILLIC SMALL LETTER TSSE
-\setXTXcharcodes "0A692 "0A692 "0A692 % CYRILLIC CAPITAL LETTER TCHE
-\setXTXcharcodes "0A693 "0A693 "0A693 % CYRILLIC SMALL LETTER TCHE
-\setXTXcharcodes "0A694 "0A694 "0A694 % CYRILLIC CAPITAL LETTER HWE
-\setXTXcharcodes "0A695 "0A695 "0A695 % CYRILLIC SMALL LETTER HWE
-\setXTXcharcodes "0A696 "0A696 "0A696 % CYRILLIC CAPITAL LETTER SHWE
-\setXTXcharcodes "0A697 "0A697 "0A697 % CYRILLIC SMALL LETTER SHWE
-\setXTXcharcodes "0A698 "0A698 "0A698 % CYRILLIC CAPITAL LETTER DOUBLE O
-\setXTXcharcodes "0A699 "0A699 "0A699 % CYRILLIC SMALL LETTER DOUBLE O
-\setXTXcharcodes "0A69A "0A69A "0A69A % CYRILLIC CAPITAL LETTER CROSSED O
-\setXTXcharcodes "0A69B "0A69B "0A69B % CYRILLIC SMALL LETTER CROSSED O
-\setXTXcharcodes "0A722 "0A722 "0A722 % LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
-\setXTXcharcodes "0A723 "0A723 "0A723 % LATIN SMALL LETTER EGYPTOLOGICAL ALEF
-\setXTXcharcodes "0A724 "0A724 "0A724 % LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
-\setXTXcharcodes "0A725 "0A725 "0A725 % LATIN SMALL LETTER EGYPTOLOGICAL AIN
-\setXTXcharcodes "0A726 "0A726 "0A726 % LATIN CAPITAL LETTER HENG
-\setXTXcharcodes "0A727 "0A727 "0A727 % LATIN SMALL LETTER HENG
-\setXTXcharcodes "0A728 "0A728 "0A728 % LATIN CAPITAL LETTER TZ
-\setXTXcharcodes "0A729 "0A729 "0A729 % LATIN SMALL LETTER TZ
-\setXTXcharcodes "0A72A "0A72A "0A72A % LATIN CAPITAL LETTER TRESILLO
-\setXTXcharcodes "0A72B "0A72B "0A72B % LATIN SMALL LETTER TRESILLO
-\setXTXcharcodes "0A72C "0A72C "0A72C % LATIN CAPITAL LETTER CUATRILLO
-\setXTXcharcodes "0A72D "0A72D "0A72D % LATIN SMALL LETTER CUATRILLO
-\setXTXcharcodes "0A72E "0A72E "0A72E % LATIN CAPITAL LETTER CUATRILLO WITH COMMA
-\setXTXcharcodes "0A72F "0A72F "0A72F % LATIN SMALL LETTER CUATRILLO WITH COMMA
-\setXTXcharcodes "0A730 "0A730 "0A730 % LATIN LETTER SMALL CAPITAL F
-\setXTXcharcodes "0A731 "0A731 "0A731 % LATIN LETTER SMALL CAPITAL S
-\setXTXcharcodes "0A732 "0A732 "0A732 % LATIN CAPITAL LETTER AA
-\setXTXcharcodes "0A733 "0A733 "0A733 % LATIN SMALL LETTER AA
-\setXTXcharcodes "0A734 "0A734 "0A734 % LATIN CAPITAL LETTER AO
-\setXTXcharcodes "0A735 "0A735 "0A735 % LATIN SMALL LETTER AO
-\setXTXcharcodes "0A736 "0A736 "0A736 % LATIN CAPITAL LETTER AU
-\setXTXcharcodes "0A737 "0A737 "0A737 % LATIN SMALL LETTER AU
-\setXTXcharcodes "0A738 "0A738 "0A738 % LATIN CAPITAL LETTER AV
-\setXTXcharcodes "0A739 "0A739 "0A739 % LATIN SMALL LETTER AV
-\setXTXcharcodes "0A73A "0A73A "0A73A % LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
-\setXTXcharcodes "0A73B "0A73B "0A73B % LATIN SMALL LETTER AV WITH HORIZONTAL BAR
-\setXTXcharcodes "0A73C "0A73C "0A73C % LATIN CAPITAL LETTER AY
-\setXTXcharcodes "0A73D "0A73D "0A73D % LATIN SMALL LETTER AY
-\setXTXcharcodes "0A73E "0A73E "0A73E % LATIN CAPITAL LETTER REVERSED C WITH DOT
-\setXTXcharcodes "0A73F "0A73F "0A73F % LATIN SMALL LETTER REVERSED C WITH DOT
-\setXTXcharcodes "0A740 "0A740 "0A740 % LATIN CAPITAL LETTER K WITH STROKE
-\setXTXcharcodes "0A741 "0A741 "0A741 % LATIN SMALL LETTER K WITH STROKE
-\setXTXcharcodes "0A742 "0A742 "0A742 % LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
-\setXTXcharcodes "0A743 "0A743 "0A743 % LATIN SMALL LETTER K WITH DIAGONAL STROKE
-\setXTXcharcodes "0A744 "0A744 "0A744 % LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
-\setXTXcharcodes "0A745 "0A745 "0A745 % LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE
-\setXTXcharcodes "0A746 "0A746 "0A746 % LATIN CAPITAL LETTER BROKEN L
-\setXTXcharcodes "0A747 "0A747 "0A747 % LATIN SMALL LETTER BROKEN L
-\setXTXcharcodes "0A748 "0A748 "0A748 % LATIN CAPITAL LETTER L WITH HIGH STROKE
-\setXTXcharcodes "0A749 "0A749 "0A749 % LATIN SMALL LETTER L WITH HIGH STROKE
-\setXTXcharcodes "0A74A "0A74A "0A74A % LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
-\setXTXcharcodes "0A74B "0A74B "0A74B % LATIN SMALL LETTER O WITH LONG STROKE OVERLAY
-\setXTXcharcodes "0A74C "0A74C "0A74C % LATIN CAPITAL LETTER O WITH LOOP
-\setXTXcharcodes "0A74D "0A74D "0A74D % LATIN SMALL LETTER O WITH LOOP
-\setXTXcharcodes "0A74E "0A74E "0A74E % LATIN CAPITAL LETTER OO
-\setXTXcharcodes "0A74F "0A74F "0A74F % LATIN SMALL LETTER OO
-\setXTXcharcodes "0A750 "0A750 "0A750 % LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
-\setXTXcharcodes "0A751 "0A751 "0A751 % LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER
-\setXTXcharcodes "0A752 "0A752 "0A752 % LATIN CAPITAL LETTER P WITH FLOURISH
-\setXTXcharcodes "0A753 "0A753 "0A753 % LATIN SMALL LETTER P WITH FLOURISH
-\setXTXcharcodes "0A754 "0A754 "0A754 % LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
-\setXTXcharcodes "0A755 "0A755 "0A755 % LATIN SMALL LETTER P WITH SQUIRREL TAIL
-\setXTXcharcodes "0A756 "0A756 "0A756 % LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
-\setXTXcharcodes "0A757 "0A757 "0A757 % LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER
-\setXTXcharcodes "0A758 "0A758 "0A758 % LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
-\setXTXcharcodes "0A759 "0A759 "0A759 % LATIN SMALL LETTER Q WITH DIAGONAL STROKE
-\setXTXcharcodes "0A75A "0A75A "0A75A % LATIN CAPITAL LETTER R ROTUNDA
-\setXTXcharcodes "0A75B "0A75B "0A75B % LATIN SMALL LETTER R ROTUNDA
-\setXTXcharcodes "0A75C "0A75C "0A75C % LATIN CAPITAL LETTER RUM ROTUNDA
-\setXTXcharcodes "0A75D "0A75D "0A75D % LATIN SMALL LETTER RUM ROTUNDA
-\setXTXcharcodes "0A75E "0A75E "0A75E % LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
-\setXTXcharcodes "0A75F "0A75F "0A75F % LATIN SMALL LETTER V WITH DIAGONAL STROKE
-\setXTXcharcodes "0A760 "0A760 "0A760 % LATIN CAPITAL LETTER VY
-\setXTXcharcodes "0A761 "0A761 "0A761 % LATIN SMALL LETTER VY
-\setXTXcharcodes "0A762 "0A762 "0A762 % LATIN CAPITAL LETTER VISIGOTHIC Z
-\setXTXcharcodes "0A763 "0A763 "0A763 % LATIN SMALL LETTER VISIGOTHIC Z
-\setXTXcharcodes "0A764 "0A764 "0A764 % LATIN CAPITAL LETTER THORN WITH STROKE
-\setXTXcharcodes "0A765 "0A765 "0A765 % LATIN SMALL LETTER THORN WITH STROKE
-\setXTXcharcodes "0A766 "0A766 "0A766 % LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
-\setXTXcharcodes "0A767 "0A767 "0A767 % LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER
-\setXTXcharcodes "0A768 "0A768 "0A768 % LATIN CAPITAL LETTER VEND
-\setXTXcharcodes "0A769 "0A769 "0A769 % LATIN SMALL LETTER VEND
-\setXTXcharcodes "0A76A "0A76A "0A76A % LATIN CAPITAL LETTER ET
-\setXTXcharcodes "0A76B "0A76B "0A76B % LATIN SMALL LETTER ET
-\setXTXcharcodes "0A76C "0A76C "0A76C % LATIN CAPITAL LETTER IS
-\setXTXcharcodes "0A76D "0A76D "0A76D % LATIN SMALL LETTER IS
-\setXTXcharcodes "0A76E "0A76E "0A76E % LATIN CAPITAL LETTER CON
-\setXTXcharcodes "0A76F "0A76F "0A76F % LATIN SMALL LETTER CON
-\setXTXcharcodes "0A771 "0A771 "0A771 % LATIN SMALL LETTER DUM
-\setXTXcharcodes "0A772 "0A772 "0A772 % LATIN SMALL LETTER LUM
-\setXTXcharcodes "0A773 "0A773 "0A773 % LATIN SMALL LETTER MUM
-\setXTXcharcodes "0A774 "0A774 "0A774 % LATIN SMALL LETTER NUM
-\setXTXcharcodes "0A775 "0A775 "0A775 % LATIN SMALL LETTER RUM
-\setXTXcharcodes "0A776 "0A776 "0A776 % LATIN LETTER SMALL CAPITAL RUM
-\setXTXcharcodes "0A777 "0A777 "0A777 % LATIN SMALL LETTER TUM
-\setXTXcharcodes "0A778 "0A778 "0A778 % LATIN SMALL LETTER UM
-\setXTXcharcodes "0A779 "0A779 "0A779 % LATIN CAPITAL LETTER INSULAR D
-\setXTXcharcodes "0A77A "0A77A "0A77A % LATIN SMALL LETTER INSULAR D
-\setXTXcharcodes "0A77B "0A77B "0A77B % LATIN CAPITAL LETTER INSULAR F
-\setXTXcharcodes "0A77C "0A77C "0A77C % LATIN SMALL LETTER INSULAR F
-\setXTXcharcodes "0A77D "0A77D "0A77D % LATIN CAPITAL LETTER INSULAR G
-\setXTXcharcodes "0A77E "0A77E "0A77E % LATIN CAPITAL LETTER TURNED INSULAR G
-\setXTXcharcodes "0A77F "0A77F "0A77F % LATIN SMALL LETTER TURNED INSULAR G
-\setXTXcharcodes "0A780 "0A780 "0A780 % LATIN CAPITAL LETTER TURNED L
-\setXTXcharcodes "0A781 "0A781 "0A781 % LATIN SMALL LETTER TURNED L
-\setXTXcharcodes "0A782 "0A782 "0A782 % LATIN CAPITAL LETTER INSULAR R
-\setXTXcharcodes "0A783 "0A783 "0A783 % LATIN SMALL LETTER INSULAR R
-\setXTXcharcodes "0A784 "0A784 "0A784 % LATIN CAPITAL LETTER INSULAR S
-\setXTXcharcodes "0A785 "0A785 "0A785 % LATIN SMALL LETTER INSULAR S
-\setXTXcharcodes "0A786 "0A786 "0A786 % LATIN CAPITAL LETTER INSULAR T
-\setXTXcharcodes "0A787 "0A787 "0A787 % LATIN SMALL LETTER INSULAR T
-\setXTXcharcodes "0A78B "0A78B "0A78B % LATIN CAPITAL LETTER SALTILLO
-\setXTXcharcodes "0A78C "0A78C "0A78C % LATIN SMALL LETTER SALTILLO
-\setXTXcharcodes "0A78D "0A78D "0A78D % LATIN CAPITAL LETTER TURNED H
-\setXTXcharcodes "0A78E "0A78E "0A78E % LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-\setXTXcharcodes "0A790 "0A790 "0A790 % LATIN CAPITAL LETTER N WITH DESCENDER
-\setXTXcharcodes "0A791 "0A791 "0A791 % LATIN SMALL LETTER N WITH DESCENDER
-\setXTXcharcodes "0A792 "0A792 "0A792 % LATIN CAPITAL LETTER C WITH BAR
-\setXTXcharcodes "0A793 "0A793 "0A793 % LATIN SMALL LETTER C WITH BAR
-\setXTXcharcodes "0A794 "0A794 "0A794 % LATIN SMALL LETTER C WITH PALATAL HOOK
-\setXTXcharcodes "0A795 "0A795 "0A795 % LATIN SMALL LETTER H WITH PALATAL HOOK
-\setXTXcharcodes "0A796 "0A796 "0A796 % LATIN CAPITAL LETTER B WITH FLOURISH
-\setXTXcharcodes "0A797 "0A797 "0A797 % LATIN SMALL LETTER B WITH FLOURISH
-\setXTXcharcodes "0A798 "0A798 "0A798 % LATIN CAPITAL LETTER F WITH STROKE
-\setXTXcharcodes "0A799 "0A799 "0A799 % LATIN SMALL LETTER F WITH STROKE
-\setXTXcharcodes "0A79A "0A79A "0A79A % LATIN CAPITAL LETTER VOLAPUK AE
-\setXTXcharcodes "0A79B "0A79B "0A79B % LATIN SMALL LETTER VOLAPUK AE
-\setXTXcharcodes "0A79C "0A79C "0A79C % LATIN CAPITAL LETTER VOLAPUK OE
-\setXTXcharcodes "0A79D "0A79D "0A79D % LATIN SMALL LETTER VOLAPUK OE
-\setXTXcharcodes "0A79E "0A79E "0A79E % LATIN CAPITAL LETTER VOLAPUK UE
-\setXTXcharcodes "0A79F "0A79F "0A79F % LATIN SMALL LETTER VOLAPUK UE
-\setXTXcharcodes "0A7A0 "0A7A0 "0A7A0 % LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
-\setXTXcharcodes "0A7A1 "0A7A1 "0A7A1 % LATIN SMALL LETTER G WITH OBLIQUE STROKE
-\setXTXcharcodes "0A7A2 "0A7A2 "0A7A2 % LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
-\setXTXcharcodes "0A7A3 "0A7A3 "0A7A3 % LATIN SMALL LETTER K WITH OBLIQUE STROKE
-\setXTXcharcodes "0A7A4 "0A7A4 "0A7A4 % LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
-\setXTXcharcodes "0A7A5 "0A7A5 "0A7A5 % LATIN SMALL LETTER N WITH OBLIQUE STROKE
-\setXTXcharcodes "0A7A6 "0A7A6 "0A7A6 % LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
-\setXTXcharcodes "0A7A7 "0A7A7 "0A7A7 % LATIN SMALL LETTER R WITH OBLIQUE STROKE
-\setXTXcharcodes "0A7A8 "0A7A8 "0A7A8 % LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
-\setXTXcharcodes "0A7A9 "0A7A9 "0A7A9 % LATIN SMALL LETTER S WITH OBLIQUE STROKE
-\setXTXcharcodes "0A7AA "0A7AA "0A7AA % LATIN CAPITAL LETTER H WITH HOOK
-\setXTXcharcodes "0A7AB "0A7AB "0A7AB % LATIN CAPITAL LETTER REVERSED OPEN E
-\setXTXcharcodes "0A7AC "0A7AC "0A7AC % LATIN CAPITAL LETTER SCRIPT G
-\setXTXcharcodes "0A7AD "0A7AD "0A7AD % LATIN CAPITAL LETTER L WITH BELT
-\setXTXcharcodes "0A7B0 "0A7B0 "0A7B0 % LATIN CAPITAL LETTER TURNED K
-\setXTXcharcodes "0A7B1 "0A7B1 "0A7B1 % LATIN CAPITAL LETTER TURNED T
-\setXTXcharcodes "0A7B2 "0A7B2 "0A7B2 % LATIN CAPITAL LETTER J WITH CROSSED-TAIL
-\setXTXcharcodes "0A7B3 "0A7B3 "0A7B3 % LATIN CAPITAL LETTER CHI
-\setXTXcharcodes "0A7B4 "0A7B4 "0A7B4 % LATIN CAPITAL LETTER BETA
-\setXTXcharcodes "0A7B5 "0A7B5 "0A7B5 % LATIN SMALL LETTER BETA
-\setXTXcharcodes "0A7B6 "0A7B6 "0A7B6 % LATIN CAPITAL LETTER OMEGA
-\setXTXcharcodes "0A7B7 "0A7B7 "0A7B7 % LATIN SMALL LETTER OMEGA
-\setXTXcharcodes "0A7FA "0A7FA "0A7FA % LATIN LETTER SMALL CAPITAL TURNED M
-\setXTXcharcodes "0AB30 "0AB30 "0AB30 % LATIN SMALL LETTER BARRED ALPHA
-\setXTXcharcodes "0AB31 "0AB31 "0AB31 % LATIN SMALL LETTER A REVERSED-SCHWA
-\setXTXcharcodes "0AB32 "0AB32 "0AB32 % LATIN SMALL LETTER BLACKLETTER E
-\setXTXcharcodes "0AB33 "0AB33 "0AB33 % LATIN SMALL LETTER BARRED E
-\setXTXcharcodes "0AB34 "0AB34 "0AB34 % LATIN SMALL LETTER E WITH FLOURISH
-\setXTXcharcodes "0AB35 "0AB35 "0AB35 % LATIN SMALL LETTER LENIS F
-\setXTXcharcodes "0AB36 "0AB36 "0AB36 % LATIN SMALL LETTER SCRIPT G WITH CROSSED-TAIL
-\setXTXcharcodes "0AB37 "0AB37 "0AB37 % LATIN SMALL LETTER L WITH INVERTED LAZY S
-\setXTXcharcodes "0AB38 "0AB38 "0AB38 % LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE
-\setXTXcharcodes "0AB39 "0AB39 "0AB39 % LATIN SMALL LETTER L WITH MIDDLE RING
-\setXTXcharcodes "0AB3A "0AB3A "0AB3A % LATIN SMALL LETTER M WITH CROSSED-TAIL
-\setXTXcharcodes "0AB3B "0AB3B "0AB3B % LATIN SMALL LETTER N WITH CROSSED-TAIL
-\setXTXcharcodes "0AB3C "0AB3C "0AB3C % LATIN SMALL LETTER ENG WITH CROSSED-TAIL
-\setXTXcharcodes "0AB3D "0AB3D "0AB3D % LATIN SMALL LETTER BLACKLETTER O
-\setXTXcharcodes "0AB3E "0AB3E "0AB3E % LATIN SMALL LETTER BLACKLETTER O WITH STROKE
-\setXTXcharcodes "0AB3F "0AB3F "0AB3F % LATIN SMALL LETTER OPEN O WITH STROKE
-\setXTXcharcodes "0AB40 "0AB40 "0AB40 % LATIN SMALL LETTER INVERTED OE
-\setXTXcharcodes "0AB41 "0AB41 "0AB41 % LATIN SMALL LETTER TURNED OE WITH STROKE
-\setXTXcharcodes "0AB42 "0AB42 "0AB42 % LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE
-\setXTXcharcodes "0AB43 "0AB43 "0AB43 % LATIN SMALL LETTER TURNED O OPEN-O
-\setXTXcharcodes "0AB44 "0AB44 "0AB44 % LATIN SMALL LETTER TURNED O OPEN-O WITH STROKE
-\setXTXcharcodes "0AB45 "0AB45 "0AB45 % LATIN SMALL LETTER STIRRUP R
-\setXTXcharcodes "0AB46 "0AB46 "0AB46 % LATIN LETTER SMALL CAPITAL R WITH RIGHT LEG
-\setXTXcharcodes "0AB47 "0AB47 "0AB47 % LATIN SMALL LETTER R WITHOUT HANDLE
-\setXTXcharcodes "0AB48 "0AB48 "0AB48 % LATIN SMALL LETTER DOUBLE R
-\setXTXcharcodes "0AB49 "0AB49 "0AB49 % LATIN SMALL LETTER R WITH CROSSED-TAIL
-\setXTXcharcodes "0AB4A "0AB4A "0AB4A % LATIN SMALL LETTER DOUBLE R WITH CROSSED-TAIL
-\setXTXcharcodes "0AB4B "0AB4B "0AB4B % LATIN SMALL LETTER SCRIPT R
-\setXTXcharcodes "0AB4C "0AB4C "0AB4C % LATIN SMALL LETTER SCRIPT R WITH RING
-\setXTXcharcodes "0AB4D "0AB4D "0AB4D % LATIN SMALL LETTER BASELINE ESH
-\setXTXcharcodes "0AB4E "0AB4E "0AB4E % LATIN SMALL LETTER U WITH SHORT RIGHT LEG
-\setXTXcharcodes "0AB4F "0AB4F "0AB4F % LATIN SMALL LETTER U BAR WITH SHORT RIGHT LEG
-\setXTXcharcodes "0AB50 "0AB50 "0AB50 % LATIN SMALL LETTER UI
-\setXTXcharcodes "0AB51 "0AB51 "0AB51 % LATIN SMALL LETTER TURNED UI
-\setXTXcharcodes "0AB52 "0AB52 "0AB52 % LATIN SMALL LETTER U WITH LEFT HOOK
-\setXTXcharcodes "0AB53 "0AB53 "0AB53 % LATIN SMALL LETTER CHI
-\setXTXcharcodes "0AB54 "0AB54 "0AB54 % LATIN SMALL LETTER CHI WITH LOW RIGHT RING
-\setXTXcharcodes "0AB55 "0AB55 "0AB55 % LATIN SMALL LETTER CHI WITH LOW LEFT SERIF
-\setXTXcharcodes "0AB56 "0AB56 "0AB56 % LATIN SMALL LETTER X WITH LOW RIGHT RING
-\setXTXcharcodes "0AB57 "0AB57 "0AB57 % LATIN SMALL LETTER X WITH LONG LEFT LEG
-\setXTXcharcodes "0AB58 "0AB58 "0AB58 % LATIN SMALL LETTER X WITH LONG LEFT LEG AND LOW RIGHT RING
-\setXTXcharcodes "0AB59 "0AB59 "0AB59 % LATIN SMALL LETTER X WITH LONG LEFT LEG WITH SERIF
-\setXTXcharcodes "0AB5A "0AB5A "0AB5A % LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
-\setXTXcharcodes "0AB60 "0AB60 "0AB60 % LATIN SMALL LETTER SAKHA YAT
-\setXTXcharcodes "0AB61 "0AB61 "0AB61 % LATIN SMALL LETTER IOTIFIED E
-\setXTXcharcodes "0AB62 "0AB62 "0AB62 % LATIN SMALL LETTER OPEN OE
-\setXTXcharcodes "0AB63 "0AB63 "0AB63 % LATIN SMALL LETTER UO
-\setXTXcharcodes "0AB64 "0AB64 "0AB64 % LATIN SMALL LETTER INVERTED ALPHA
-\setXTXcharcodes "0AB65 "0AB65 "0AB65 % GREEK LETTER SMALL CAPITAL OMEGA
-\setXTXcharcodes "0AB70 "0AB70 "0AB70 % CHEROKEE SMALL LETTER A
-\setXTXcharcodes "0AB71 "0AB71 "0AB71 % CHEROKEE SMALL LETTER E
-\setXTXcharcodes "0AB72 "0AB72 "0AB72 % CHEROKEE SMALL LETTER I
-\setXTXcharcodes "0AB73 "0AB73 "0AB73 % CHEROKEE SMALL LETTER O
-\setXTXcharcodes "0AB74 "0AB74 "0AB74 % CHEROKEE SMALL LETTER U
-\setXTXcharcodes "0AB75 "0AB75 "0AB75 % CHEROKEE SMALL LETTER V
-\setXTXcharcodes "0AB76 "0AB76 "0AB76 % CHEROKEE SMALL LETTER GA
-\setXTXcharcodes "0AB77 "0AB77 "0AB77 % CHEROKEE SMALL LETTER KA
-\setXTXcharcodes "0AB78 "0AB78 "0AB78 % CHEROKEE SMALL LETTER GE
-\setXTXcharcodes "0AB79 "0AB79 "0AB79 % CHEROKEE SMALL LETTER GI
-\setXTXcharcodes "0AB7A "0AB7A "0AB7A % CHEROKEE SMALL LETTER GO
-\setXTXcharcodes "0AB7B "0AB7B "0AB7B % CHEROKEE SMALL LETTER GU
-\setXTXcharcodes "0AB7C "0AB7C "0AB7C % CHEROKEE SMALL LETTER GV
-\setXTXcharcodes "0AB7D "0AB7D "0AB7D % CHEROKEE SMALL LETTER HA
-\setXTXcharcodes "0AB7E "0AB7E "0AB7E % CHEROKEE SMALL LETTER HE
-\setXTXcharcodes "0AB7F "0AB7F "0AB7F % CHEROKEE SMALL LETTER HI
-\setXTXcharcodes "0AB80 "0AB80 "0AB80 % CHEROKEE SMALL LETTER HO
-\setXTXcharcodes "0AB81 "0AB81 "0AB81 % CHEROKEE SMALL LETTER HU
-\setXTXcharcodes "0AB82 "0AB82 "0AB82 % CHEROKEE SMALL LETTER HV
-\setXTXcharcodes "0AB83 "0AB83 "0AB83 % CHEROKEE SMALL LETTER LA
-\setXTXcharcodes "0AB84 "0AB84 "0AB84 % CHEROKEE SMALL LETTER LE
-\setXTXcharcodes "0AB85 "0AB85 "0AB85 % CHEROKEE SMALL LETTER LI
-\setXTXcharcodes "0AB86 "0AB86 "0AB86 % CHEROKEE SMALL LETTER LO
-\setXTXcharcodes "0AB87 "0AB87 "0AB87 % CHEROKEE SMALL LETTER LU
-\setXTXcharcodes "0AB88 "0AB88 "0AB88 % CHEROKEE SMALL LETTER LV
-\setXTXcharcodes "0AB89 "0AB89 "0AB89 % CHEROKEE SMALL LETTER MA
-\setXTXcharcodes "0AB8A "0AB8A "0AB8A % CHEROKEE SMALL LETTER ME
-\setXTXcharcodes "0AB8B "0AB8B "0AB8B % CHEROKEE SMALL LETTER MI
-\setXTXcharcodes "0AB8C "0AB8C "0AB8C % CHEROKEE SMALL LETTER MO
-\setXTXcharcodes "0AB8D "0AB8D "0AB8D % CHEROKEE SMALL LETTER MU
-\setXTXcharcodes "0AB8E "0AB8E "0AB8E % CHEROKEE SMALL LETTER NA
-\setXTXcharcodes "0AB8F "0AB8F "0AB8F % CHEROKEE SMALL LETTER HNA
-\setXTXcharcodes "0AB90 "0AB90 "0AB90 % CHEROKEE SMALL LETTER NAH
-\setXTXcharcodes "0AB91 "0AB91 "0AB91 % CHEROKEE SMALL LETTER NE
-\setXTXcharcodes "0AB92 "0AB92 "0AB92 % CHEROKEE SMALL LETTER NI
-\setXTXcharcodes "0AB93 "0AB93 "0AB93 % CHEROKEE SMALL LETTER NO
-\setXTXcharcodes "0AB94 "0AB94 "0AB94 % CHEROKEE SMALL LETTER NU
-\setXTXcharcodes "0AB95 "0AB95 "0AB95 % CHEROKEE SMALL LETTER NV
-\setXTXcharcodes "0AB96 "0AB96 "0AB96 % CHEROKEE SMALL LETTER QUA
-\setXTXcharcodes "0AB97 "0AB97 "0AB97 % CHEROKEE SMALL LETTER QUE
-\setXTXcharcodes "0AB98 "0AB98 "0AB98 % CHEROKEE SMALL LETTER QUI
-\setXTXcharcodes "0AB99 "0AB99 "0AB99 % CHEROKEE SMALL LETTER QUO
-\setXTXcharcodes "0AB9A "0AB9A "0AB9A % CHEROKEE SMALL LETTER QUU
-\setXTXcharcodes "0AB9B "0AB9B "0AB9B % CHEROKEE SMALL LETTER QUV
-\setXTXcharcodes "0AB9C "0AB9C "0AB9C % CHEROKEE SMALL LETTER SA
-\setXTXcharcodes "0AB9D "0AB9D "0AB9D % CHEROKEE SMALL LETTER S
-\setXTXcharcodes "0AB9E "0AB9E "0AB9E % CHEROKEE SMALL LETTER SE
-\setXTXcharcodes "0AB9F "0AB9F "0AB9F % CHEROKEE SMALL LETTER SI
-\setXTXcharcodes "0ABA0 "0ABA0 "0ABA0 % CHEROKEE SMALL LETTER SO
-\setXTXcharcodes "0ABA1 "0ABA1 "0ABA1 % CHEROKEE SMALL LETTER SU
-\setXTXcharcodes "0ABA2 "0ABA2 "0ABA2 % CHEROKEE SMALL LETTER SV
-\setXTXcharcodes "0ABA3 "0ABA3 "0ABA3 % CHEROKEE SMALL LETTER DA
-\setXTXcharcodes "0ABA4 "0ABA4 "0ABA4 % CHEROKEE SMALL LETTER TA
-\setXTXcharcodes "0ABA5 "0ABA5 "0ABA5 % CHEROKEE SMALL LETTER DE
-\setXTXcharcodes "0ABA6 "0ABA6 "0ABA6 % CHEROKEE SMALL LETTER TE
-\setXTXcharcodes "0ABA7 "0ABA7 "0ABA7 % CHEROKEE SMALL LETTER DI
-\setXTXcharcodes "0ABA8 "0ABA8 "0ABA8 % CHEROKEE SMALL LETTER TI
-\setXTXcharcodes "0ABA9 "0ABA9 "0ABA9 % CHEROKEE SMALL LETTER DO
-\setXTXcharcodes "0ABAA "0ABAA "0ABAA % CHEROKEE SMALL LETTER DU
-\setXTXcharcodes "0ABAB "0ABAB "0ABAB % CHEROKEE SMALL LETTER DV
-\setXTXcharcodes "0ABAC "0ABAC "0ABAC % CHEROKEE SMALL LETTER DLA
-\setXTXcharcodes "0ABAD "0ABAD "0ABAD % CHEROKEE SMALL LETTER TLA
-\setXTXcharcodes "0ABAE "0ABAE "0ABAE % CHEROKEE SMALL LETTER TLE
-\setXTXcharcodes "0ABAF "0ABAF "0ABAF % CHEROKEE SMALL LETTER TLI
-\setXTXcharcodes "0ABB0 "0ABB0 "0ABB0 % CHEROKEE SMALL LETTER TLO
-\setXTXcharcodes "0ABB1 "0ABB1 "0ABB1 % CHEROKEE SMALL LETTER TLU
-\setXTXcharcodes "0ABB2 "0ABB2 "0ABB2 % CHEROKEE SMALL LETTER TLV
-\setXTXcharcodes "0ABB3 "0ABB3 "0ABB3 % CHEROKEE SMALL LETTER TSA
-\setXTXcharcodes "0ABB4 "0ABB4 "0ABB4 % CHEROKEE SMALL LETTER TSE
-\setXTXcharcodes "0ABB5 "0ABB5 "0ABB5 % CHEROKEE SMALL LETTER TSI
-\setXTXcharcodes "0ABB6 "0ABB6 "0ABB6 % CHEROKEE SMALL LETTER TSO
-\setXTXcharcodes "0ABB7 "0ABB7 "0ABB7 % CHEROKEE SMALL LETTER TSU
-\setXTXcharcodes "0ABB8 "0ABB8 "0ABB8 % CHEROKEE SMALL LETTER TSV
-\setXTXcharcodes "0ABB9 "0ABB9 "0ABB9 % CHEROKEE SMALL LETTER WA
-\setXTXcharcodes "0ABBA "0ABBA "0ABBA % CHEROKEE SMALL LETTER WE
-\setXTXcharcodes "0ABBB "0ABBB "0ABBB % CHEROKEE SMALL LETTER WI
-\setXTXcharcodes "0ABBC "0ABBC "0ABBC % CHEROKEE SMALL LETTER WO
-\setXTXcharcodes "0ABBD "0ABBD "0ABBD % CHEROKEE SMALL LETTER WU
-\setXTXcharcodes "0ABBE "0ABBE "0ABBE % CHEROKEE SMALL LETTER WV
-\setXTXcharcodes "0ABBF "0ABBF "0ABBF % CHEROKEE SMALL LETTER YA
-\setXTXcharcodes "0FB00 "0FB00 "0FB00 % LATIN SMALL LIGATURE FF
-\setXTXcharcodes "0FB01 "0FB01 "0FB01 % LATIN SMALL LIGATURE FI
-\setXTXcharcodes "0FB02 "0FB02 "0FB02 % LATIN SMALL LIGATURE FL
-\setXTXcharcodes "0FB03 "0FB03 "0FB03 % LATIN SMALL LIGATURE FFI
-\setXTXcharcodes "0FB04 "0FB04 "0FB04 % LATIN SMALL LIGATURE FFL
-\setXTXcharcodes "0FB05 "0FB05 "0FB05 % LATIN SMALL LIGATURE LONG S T
-\setXTXcharcodes "0FB06 "0FB06 "0FB06 % LATIN SMALL LIGATURE ST
-\setXTXcharcodes "0FB13 "0FB13 "0FB13 % ARMENIAN SMALL LIGATURE MEN NOW
-\setXTXcharcodes "0FB14 "0FB14 "0FB14 % ARMENIAN SMALL LIGATURE MEN ECH
-\setXTXcharcodes "0FB15 "0FB15 "0FB15 % ARMENIAN SMALL LIGATURE MEN INI
-\setXTXcharcodes "0FB16 "0FB16 "0FB16 % ARMENIAN SMALL LIGATURE VEW NOW
-\setXTXcharcodes "0FB17 "0FB17 "0FB17 % ARMENIAN SMALL LIGATURE MEN XEH
-\setXTXcharcodes "0FF21 "0FF41 "0FF21 % FULLWIDTH LATIN CAPITAL LETTER A
-\setXTXcharcodes "0FF22 "0FF42 "0FF22 % FULLWIDTH LATIN CAPITAL LETTER B
-\setXTXcharcodes "0FF23 "0FF43 "0FF23 % FULLWIDTH LATIN CAPITAL LETTER C
-\setXTXcharcodes "0FF24 "0FF44 "0FF24 % FULLWIDTH LATIN CAPITAL LETTER D
-\setXTXcharcodes "0FF25 "0FF45 "0FF25 % FULLWIDTH LATIN CAPITAL LETTER E
-\setXTXcharcodes "0FF26 "0FF46 "0FF26 % FULLWIDTH LATIN CAPITAL LETTER F
-\setXTXcharcodes "0FF27 "0FF47 "0FF27 % FULLWIDTH LATIN CAPITAL LETTER G
-\setXTXcharcodes "0FF28 "0FF48 "0FF28 % FULLWIDTH LATIN CAPITAL LETTER H
-\setXTXcharcodes "0FF29 "0FF49 "0FF29 % FULLWIDTH LATIN CAPITAL LETTER I
-\setXTXcharcodes "0FF2A "0FF4A "0FF2A % FULLWIDTH LATIN CAPITAL LETTER J
-\setXTXcharcodes "0FF2B "0FF4B "0FF2B % FULLWIDTH LATIN CAPITAL LETTER K
-\setXTXcharcodes "0FF2C "0FF4C "0FF2C % FULLWIDTH LATIN CAPITAL LETTER L
-\setXTXcharcodes "0FF2D "0FF4D "0FF2D % FULLWIDTH LATIN CAPITAL LETTER M
-\setXTXcharcodes "0FF2E "0FF4E "0FF2E % FULLWIDTH LATIN CAPITAL LETTER N
-\setXTXcharcodes "0FF2F "0FF4F "0FF2F % FULLWIDTH LATIN CAPITAL LETTER O
-\setXTXcharcodes "0FF30 "0FF50 "0FF30 % FULLWIDTH LATIN CAPITAL LETTER P
-\setXTXcharcodes "0FF31 "0FF51 "0FF31 % FULLWIDTH LATIN CAPITAL LETTER Q
-\setXTXcharcodes "0FF32 "0FF52 "0FF32 % FULLWIDTH LATIN CAPITAL LETTER R
-\setXTXcharcodes "0FF33 "0FF53 "0FF33 % FULLWIDTH LATIN CAPITAL LETTER S
-\setXTXcharcodes "0FF34 "0FF54 "0FF34 % FULLWIDTH LATIN CAPITAL LETTER T
-\setXTXcharcodes "0FF35 "0FF55 "0FF35 % FULLWIDTH LATIN CAPITAL LETTER U
-\setXTXcharcodes "0FF36 "0FF56 "0FF36 % FULLWIDTH LATIN CAPITAL LETTER V
-\setXTXcharcodes "0FF37 "0FF57 "0FF37 % FULLWIDTH LATIN CAPITAL LETTER W
-\setXTXcharcodes "0FF38 "0FF58 "0FF38 % FULLWIDTH LATIN CAPITAL LETTER X
-\setXTXcharcodes "0FF39 "0FF59 "0FF39 % FULLWIDTH LATIN CAPITAL LETTER Y
-\setXTXcharcodes "0FF3A "0FF5A "0FF3A % FULLWIDTH LATIN CAPITAL LETTER Z
-\setXTXcharcodes "0FF41 "0FF41 "0FF21 % FULLWIDTH LATIN SMALL LETTER A
-\setXTXcharcodes "0FF42 "0FF42 "0FF22 % FULLWIDTH LATIN SMALL LETTER B
-\setXTXcharcodes "0FF43 "0FF43 "0FF23 % FULLWIDTH LATIN SMALL LETTER C
-\setXTXcharcodes "0FF44 "0FF44 "0FF24 % FULLWIDTH LATIN SMALL LETTER D
-\setXTXcharcodes "0FF45 "0FF45 "0FF25 % FULLWIDTH LATIN SMALL LETTER E
-\setXTXcharcodes "0FF46 "0FF46 "0FF26 % FULLWIDTH LATIN SMALL LETTER F
-\setXTXcharcodes "0FF47 "0FF47 "0FF27 % FULLWIDTH LATIN SMALL LETTER G
-\setXTXcharcodes "0FF48 "0FF48 "0FF28 % FULLWIDTH LATIN SMALL LETTER H
-\setXTXcharcodes "0FF49 "0FF49 "0FF29 % FULLWIDTH LATIN SMALL LETTER I
-\setXTXcharcodes "0FF4A "0FF4A "0FF2A % FULLWIDTH LATIN SMALL LETTER J
-\setXTXcharcodes "0FF4B "0FF4B "0FF2B % FULLWIDTH LATIN SMALL LETTER K
-\setXTXcharcodes "0FF4C "0FF4C "0FF2C % FULLWIDTH LATIN SMALL LETTER L
-\setXTXcharcodes "0FF4D "0FF4D "0FF2D % FULLWIDTH LATIN SMALL LETTER M
-\setXTXcharcodes "0FF4E "0FF4E "0FF2E % FULLWIDTH LATIN SMALL LETTER N
-\setXTXcharcodes "0FF4F "0FF4F "0FF2F % FULLWIDTH LATIN SMALL LETTER O
-\setXTXcharcodes "0FF50 "0FF50 "0FF30 % FULLWIDTH LATIN SMALL LETTER P
-\setXTXcharcodes "0FF51 "0FF51 "0FF31 % FULLWIDTH LATIN SMALL LETTER Q
-\setXTXcharcodes "0FF52 "0FF52 "0FF32 % FULLWIDTH LATIN SMALL LETTER R
-\setXTXcharcodes "0FF53 "0FF53 "0FF33 % FULLWIDTH LATIN SMALL LETTER S
-\setXTXcharcodes "0FF54 "0FF54 "0FF34 % FULLWIDTH LATIN SMALL LETTER T
-\setXTXcharcodes "0FF55 "0FF55 "0FF35 % FULLWIDTH LATIN SMALL LETTER U
-\setXTXcharcodes "0FF56 "0FF56 "0FF36 % FULLWIDTH LATIN SMALL LETTER V
-\setXTXcharcodes "0FF57 "0FF57 "0FF37 % FULLWIDTH LATIN SMALL LETTER W
-\setXTXcharcodes "0FF58 "0FF58 "0FF38 % FULLWIDTH LATIN SMALL LETTER X
-\setXTXcharcodes "0FF59 "0FF59 "0FF39 % FULLWIDTH LATIN SMALL LETTER Y
-\setXTXcharcodes "0FF5A "0FF5A "0FF3A % FULLWIDTH LATIN SMALL LETTER Z
-
-
-% patch needed for turkish
-
-\setXTXcharcodes "201C "201C "201C
-\setXTXcharcodes "201D "201D "201D
-
-% patch needed for french
-
-\setXTXcharcodes "2019 "2019 "2019
-
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-cml.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-cml.mkii
deleted file mode 100644
index 6da7fd26f87..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-cml.mkii
+++ /dev/null
@@ -1,228 +0,0 @@
-% see mathml, == \defineXMLdirective [mathml] \setupMMLappearance
-
-% will be rewritten avoiding the mapper
-
-\useXMLfilter[map]
-
-\unprotect
-
-\def\setupCMLappearance[#1]{\dodoubleargument\getparameters[@@CML#1]}
-
-\defineXMLdirective [chemml] \setupCMLappearance
-
-\defineXMLargument [chem] \doXMLchem
-\defineXMLargument [ichem] \doXMLichem
-\defineXMLargument [dchem] \doXMLdchem
-
-\unexpanded\def\doXMLchem {\ifhmode\@EA\doXMLichem\else\@EA\doXMLdchem\fi}
-\unexpanded\def\doXMLichem{\XMLremapdata[cml]{$\rm}{$}}
-\unexpanded\def\doXMLdchem{\XMLremapdata[cml]{\dostartformula{}\rm}{\dostopformula}}
-
-\startXMLmapping [cml]
-
-\remapXMLsequence [molecule] [CPA] \doCMLmolecule
-\remapXMLsequence [ion] [CPA] \doCMLion
-\remapXMLsequence [atom] [CPA] \doCMLatom
-
-\setupCMLappearance [ion] [\c!alternative=\v!a]
-
-\let\CMLtopcaption\empty
-\let\CMLbotcaption\empty
-
-\def\someCMLtext#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$}
-
-\def\doifnotXMLzero#1#2#3%
- {\ifcase\XMLpar{#1}{#2}{0}\else#3{\XMLpar{#1}{#2}{0}}\fi}
-
-\newcounter\currentCMLatom
-\newcounter\nofCMLatoms
-
-\def\doCMLmolecule#1#2%
- {\resetCMLcaption
- \processXMLRchild{caption}{#2}%
- \someCMLtext
- {\bgroup
- \newcounter\currentCMLatom
- \newcounter\nofCMLatoms
- \getXMLarguments{cml-m}{n="0" #1}%
- \doifnotXMLzero{cml-m}{n}\firstofoneargument
- \ignorespaces
- \processXMLRchild{atom,ion,bond/,singlebond/,doublebond/,triplebond/}{#2}%
- \unskip
- \egroup}%
- \ignorespaces}
-
-\def\doCMLion#1#2%
- {\resetCMLcaption
- \processXMLRchild{caption}{#2}%
- \someCMLtext
- {\bgroup
- \newcounter\currentCMLatom
- \newcounter\nofCMLatoms
- \getXMLarguments{cml-i}{n="0" charge="0" #1}%
- \doifnotXMLzero{cml-i}{n}\firstofoneargument
- \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
- \ignorespaces
- \processXMLRchild{atom,bond/,singlebond/,doublebond/,triplebond/}{#2}%
- \unskip}%
- \egroup}%
- \ignorespaces}
-
-\def\doCMLatom#1#2%
- {\getXMLarguments{cml-a}{n="0" weight="0" protons="0" charge="0" #1}%
- \increment\currentCMLatom
- \resetCMLcaption
- \someCMLtext
- {\bgroup
- \lohi
- {\doifnotXMLzero{cml-a}{protons}\CMLscript}
- {\doifnotXMLzero{cml-a}{weight}\CMLscript}%
- \ignorespaces#2\unskip
- \lohi
- {\doifnotXMLzero{cml-a}{n}\CMLscript}
- {\ifnum\nofCMLatoms=\currentCMLatom\relax
- \doifnotXMLzero{cml-i}{charge}\CMLscript
- \else
- \doifnotXMLzero{cml-a}{charge}\CMLscript
- \fi}%
- \egroup}%
- \ignorespaces}
-
-\remapXMLsequence [reaction] [CPA] \doCMLreaction
-
-\let\someCMLsymbol\gobbleoneargument
-\let\someCMLarrow \gobblethreearguments
-
-\def\doCMLreaction#1#2%
- {\begingroup
- \let\someCMLsymbol\dosomeCMLsymbol
- \let\someCMLarrow \dosomeCMLarrow
- #2%
- \endgroup}
-
-\remapXMLsequence [plus] [CPA] \doCMLplus
-\remapXMLsingular [plus] [CPA] \doCMLplus
-\remapXMLsequence [minus] [CPA] \doCMLminus
-\remapXMLsingular [minus] [CPA] \doCMLminus
-\remapXMLsequence [equal] [CPA] \doCMLequal
-\remapXMLsingular [equal] [CPA] \doCMLequal
-
-\def\doCMLplus #1#2{\someCMLsymbol{+}}
-\def\doCMLminus#1#2{\someCMLsymbol{-}}
-\def\doCMLequal#1#2{\someCMLsymbol{=}}
-
-\def\dosomeCMLsymbol#1%
- {\quad\mathop{#1}\quad}
-
-\remapXMLsequence [gives] [CPA] \doCMLgives
-\remapXMLsingular [gives] [CPA] \doCMLgives
-\remapXMLsequence [equilibrium] [CPA] \doCMLequilibrium
-\remapXMLsingular [equilibrium] [CPA] \doCMLequilibrium
-\remapXMLsequence [mesomeric] [CPA] \doCMLmesomeric
-\remapXMLsingular [mesomeric] [CPA] \doCMLmesomeric
-
-\def\doCMLgives #1#2{\resetCMLcaption#2\someCMLgives }
-\def\doCMLequilibrium#1#2{\resetCMLcaption#2\someCMLequilibrium}
-\def\doCMLmesomeric #1#2{\resetCMLcaption#2\someCMLmesomeric }
-
-\def\dosomeCMLarrow#1%
- {\quad
- \someCMLtext
- {$\vcenter{\offinterlineskip\halign{##\cr\hskip3em\cr#1\cr}}$}%
- \quad}
-
-\def\someCMLgives
- {\someCMLarrow{\rightarrowfill}}
-
-\def\someCMLequilibrium
- {\someCMLarrow{\rightarrowfill\cr\noalign{\nointerlineskip}\leftarrowfill}}
-
-\def\someCMLmesomeric
- {\someCMLarrow{$\leftarrow\hskip-1em$\rightarrowfill}}
-
-\remapXMLsequence [cml] [caption] [CPA] \doCMLcaption
-
-\let\CMLtopcaption\empty
-\let\CMLbotcaption\empty
-
-\def\dodoCMLcaption#1#2%
- {\def\CMLbotcaption{#2}%
- \def\doCMLcaption##1##2%
- {\def\CMLtopcaption{##2}%
- \let\doCMLcaption\gobbletwoarguments}}
-
-\def\resetCMLcaption
- {\let\CMLtopcaption\empty
- \let\CMLbotcaption\empty
- \let\doCMLcaption\dodoCMLcaption}
-
-\resetCMLcaption
-
-\remapXMLsingular [bond] [CPA] \doCMLbond
-\remapXMLsingular [singlebond] [CPA] \doCMLsinglebond
-\remapXMLsingular [doublebond] [CPA] \doCMLdoublebond
-\remapXMLsingular [triplebond] [CPA] \doCMLtriplebond
-
-\def\doCMLbond#1#2%
- {\getXMLarguments{cml-b}{n="0" #1}%
- \ifcase\XMLpar{cml-b}{n}{0}\relax
- \doCMLsinglebond
- \or
- \doCMLdoublebond
- \or
- \doCMLtriplebond
- \fi}
-
-\def\someCMLbond
- {\hrule \!!width \hsize \!!height .1ex} % .4pt
-
-\def\dosomeCMLbond#1#2#3%
- {{\setbox\scratchbox=\hbox{$M$}%
- \vbox to \ht\scratchbox
- {\hsize\wd\scratchbox
- \vskip.1\wd\scratchbox
- #1\vfill#2\vfill#3%
- \vskip.1\wd\scratchbox}}}
-
-\def\doCMLsinglebond
- {\dosomeCMLbond\relax\someCMLbond\relax}
-
-\def\doCMLdoublebond
- {\dosomeCMLbond\someCMLbond\relax\someCMLbond}
-
-\def\doCMLtriplebond
- {\dosomeCMLbond\someCMLbond\someCMLbond\someCMLbond}
-
-\stopXMLmapping
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-ent.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-ent.mkii
deleted file mode 100644
index 09051d0b435..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-ent.mkii
+++ /dev/null
@@ -1,117 +0,0 @@
-%D \module
-%D [ file=xtag-ent,
-%D version=2000.12.20,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=A bunch of Entities,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% We need this for French and Hungarian.
-
-\defineXMLentity [colon] {\directdiscretionary{:}}
-\defineXMLentity [semicolon] {\directdiscretionary{;}}
-\defineXMLentity [questionmark] {\directdiscretionary{?}}
-\defineXMLentity [exclamationmark] {\directdiscretionary{!}}
-
-% These will fall back to the raw encoding vector
-
-\defineXMLentity [Aacute] {\Aacute}
-\defineXMLentity [aacute] {\aacute}
-\defineXMLentity [Cacute] {\Cacute} % unofficial
-\defineXMLentity [cacute] {\cacute} % unofficial
-\defineXMLentity [Eacute] {\Eacute}
-\defineXMLentity [eacute] {\eacute}
-\defineXMLentity [Iacute] {\Iacute}
-\defineXMLentity [iacute] {\iacute}
-\defineXMLentity [Oacute] {\Oacute}
-\defineXMLentity [oacute] {\oacute}
-\defineXMLentity [Uacute] {\Uacute}
-\defineXMLentity [uacute] {\uacute}
-\defineXMLentity [Yacute] {\Yacute}
-\defineXMLentity [yacute] {\yacute}
-\defineXMLentity [Nacute] {\Nacute}
-\defineXMLentity [nacute] {\nacute}
-
-\defineXMLentity [Ccedil] {\Ccedilla}
-\defineXMLentity [ccedil] {\ccedilla}
-
-\defineXMLentity [AElig] {\AEligature}
-\defineXMLentity [aelig] {\aeligature}
-
-\defineXMLentity [Agrave] {\Agrave}
-\defineXMLentity [agrave] {\agrave}
-\defineXMLentity [Egrave] {\Egrave}
-\defineXMLentity [egrave] {\egrave}
-\defineXMLentity [Igrave] {\Igrave}
-\defineXMLentity [igrave] {\igrave}
-\defineXMLentity [Ograve] {\Ograve}
-\defineXMLentity [ograve] {\ograve}
-\defineXMLentity [Ugrave] {\Ugrave}
-\defineXMLentity [ugrave] {\ugrave}
-
-\defineXMLentity [THORN] {\Thorn}
-\defineXMLentity [thorn] {\thorn}
-
-\defineXMLentity [Aring] {\Aring}
-\defineXMLentity [aring] {\aring}
-
-\defineXMLentity [Oslash] {\Oslash} % stroke
-\defineXMLentity [oslash] {\oslash}
-\defineXMLentity [Lslash] {\Lslash} % unofficial
-\defineXMLentity [lslash] {\lslash} % unofficial
-
-\defineXMLentity [eth] {\eth} % ?
-\defineXMLentity [ETH] {\Eth} % ?
-
-\defineXMLentity [Atilde] {\Atilde}
-\defineXMLentity [atilde] {\atilde}
-\defineXMLentity [Etilde] {\Etilde}
-\defineXMLentity [etilde] {\etilde}
-\defineXMLentity [Itilde] {\Itilde}
-\defineXMLentity [itilde] {\itilde}
-\defineXMLentity [Ntilde] {\Ntilde}
-\defineXMLentity [ntilde] {\ntilde}
-\defineXMLentity [Otilde] {\Otilde}
-\defineXMLentity [otilde] {\otilde}
-\defineXMLentity [Utilde] {\Utilde}
-\defineXMLentity [utilde] {\utilde}
-
-\defineXMLentity [Auml] {\Adiaeresis}
-\defineXMLentity [auml] {\adiaeresis}
-\defineXMLentity [Euml] {\Ediaeresis}
-\defineXMLentity [euml] {\ediaeresis}
-\defineXMLentity [Iuml] {\Idiaeresis}
-\defineXMLentity [iuml] {\idiaeresis}
-\defineXMLentity [Ouml] {\Odiaeresis}
-\defineXMLentity [ouml] {\odiaeresis}
-\defineXMLentity [Uuml] {\Udiaeresis}
-\defineXMLentity [uuml] {\udiaeresis}
-\defineXMLentity [Yuml] {\Ydiaeresis}
-\defineXMLentity [yuml] {\ydiaeresis}
-
-\defineXMLentity [szlig] {\Ssharp}
-
-\defineXMLentity [Acirc] {\Acircumflex}
-\defineXMLentity [acirc] {\acircumflex}
-\defineXMLentity [Ecirc] {\Ecircumflex}
-\defineXMLentity [ecirc] {\ecircumflex}
-\defineXMLentity [Icirc] {\Icircumflex}
-\defineXMLentity [icirc] {\icircumflex}
-\defineXMLentity [Ocirc] {\Ocircumflex}
-\defineXMLentity [ocirc] {\ocircumflex}
-\defineXMLentity [Ucirc] {\Ucircumflex}
-\defineXMLentity [ucirc] {\ucircumflex}
-
-\defineXMLentity [ccaron] {\ccaron} % unofficial
-\defineXMLentity [rcaron] {\rcaron} % unofficial
-\defineXMLentity [scaron] {\scaron} % unofficial
-\defineXMLentity [zcaron] {\zcaron} % unofficial
-
-\defineXMLentity [dots] {\unknown}
-\defineXMLentity [amp] {\&}
-\defineXMLentity [nbsp] {\nonbreakablespace}
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-exp.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-exp.mkii
deleted file mode 100644
index 9ecfcc5b124..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-exp.mkii
+++ /dev/null
@@ -1,90 +0,0 @@
-%D \module
-%D [ file=xtag-exp,
-%D version=2001.08.20,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=Expansion,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt XML Macros / Expansion}
-
-\ifnum\texengine=\luatexengine \endinput \fi
-
-\unprotect
-
-%D Files
-
-\newcounter\XMLfilenesting \let\restoreXMLelements\relax
-
-\def\startXMLreading
- {\increment \XMLfilenesting \relax
- \ifcase\XMLfilenesting\or
- \ifprocessingXML
- \let\restoreXMLelements\relax
- \else
- \let\restoreXMLelements\disableXMLelements
- \enableXMLelements
- \fi
- \fi}
-
-\def\stopXMLreading
- {\ifcase\XMLfilenesting\or
- \restoreXMLelements
- \let\restoreXMLelements\relax
- \fi
- \decrement \XMLfilenesting \relax}
-
-\ifnum\texengine=\luatexengine
- \def\enableXMLfiledata
- {\prependtoks \enableXMLelements \to \mainoutput % brrr, will change
- \appendtoks \forcefileexpansiontrue \to \everyenableXML
- \let\enableXMLfiledata\relax}
-\else
- \def\enableXMLfiledata
- {\prependtoks \enableXMLelements \to \mainoutput % brrr, will change
- \appendtoks \startXMLreading \to \everybeforeutilityread
- \appendtoks \stopXMLreading \to \everyafterutilityread
- \appendtoks \forcefileexpansiontrue \to \everyenableXML
- \let\enableXMLfiledata\relax}
-\fi
-
-\setupXMLprocessing[\c!state=\v!start]
-
-\appendtoks
- \ifproductionrun \enableXMLfiledata \fi
-\to \aftersetupXMLprocessing
-
-%D Here we overload the mark handler.
-
-\ifnum\texengine=\luatexengine \else
-
- \def\XMLexpanded#1%
- {\bgroup
- \honorunexpanded
- \dontexpandencoding
- \xdef\@@globalexpanded{\noexpand#1}% why \noexpand?
- \egroup
- \@@globalexpanded}
-
- \let\normalsetnormalmark\setnormalmark
-
- \long\def\setnormalmark#1% overloaded
- {\ifprocessingXML
- \expandafter\setXMLexpandedmark
- \else
- \expandafter\normalsetnormalmark
- \fi#1}
-
- \def\setXMLexpandedmark#1#2% using a tok prevents unwanted expansion in mark
- {\XMLexpanded{\scratchtoks{\enableXMLelements#2}}%
- \setxvalue{\@@crk\string#1}{\the\scratchtoks}%
- \normalmarks#1{\the\scratchtoks}}
-
-\fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-ext.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-ext.mkii
deleted file mode 100644
index 60615b1c241..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-ext.mkii
+++ /dev/null
@@ -1,439 +0,0 @@
-%D \module
-%D [ file=xtag-ext,
-%D version=2001.03.21,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=Extra Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt XML Macros / Extras}
-
-\unprotect
-
-%D \macros
-%D {startXMLmapping}
-%D
-%D You can define macros within a namespace, so that they
-%D will not conflict (don't confuse this with \XML\
-%D namespaces.)
-%D
-%D \starttyping
-%D \startXMLmapping [tag] | [-] [tag] | [+] [tag]
-%D definitions
-%D \stopXMLmapping
-%D \stoptyping
-%D
-%D When a \type {[+]} is specified, the mappings will
-%D nest.
-
-\def\resetXMLmapping
- {\let\@@XMLelement\normal@@XMLelement
- \let\@@XMLmapping\empty}
-
-\resetXMLmapping
-
-\def\startXMLmapping
- {\dodoubleempty\dostartXMLmapping}
-
-% \def\dostartXMLmapping[#1][#2]% sneller maken
-% {\pushmacro\@@XMLelement
-% \pushmacro\@@XMLmapping
-% \ifsecondargument
-% \doifelse{#1}{-}
-% {\donostartXMLmapping{#2}}
-% {\doifelse{#1}{+}
-% {\dodostartXMLmapping{#2}}
-% {\donostartXMLmapping{#2}}}%
-% \else
-% \donostartXMLmapping{#1}%
-% \fi
-% \unprotect}
-
-\def\dostartXMLmapping[#1#2][#3]%
- {\pushmacro\@@XMLelement
- \pushmacro\@@XMLmapping
- \ifsecondargument
- \if\noexpand#1-%
- \@EA\donostartXMLmapping
- \else\if\noexpand#1+%
- \@EAEAEA\dodostartXMLmapping
- \else
- \@EAEAEA\donostartXMLmapping
- \fi\fi{#3}%
- \else
- \donostartXMLmapping{#1#2}%
- \fi
- \unprotect}
-
-\def\donostartXMLmapping#1%
- {\let\@@XMLprevelement\@@XMLelement
- \edef\@@XMLmapping{#1}%
- \edef\@@XMLelement{\normal@@XMLelement+#1}}
-
-\def\dodostartXMLmapping#1%
- {\let\@@XMLprevelement\@@XMLelement
- \edef\@@XMLmapping{\@@XMLmapping+#1}%
- \edef\@@XMLelement{\@@XMLelement+#1}}
-
-\def\stopXMLmapping
- {\protect
- \popmacro\@@XMLmapping
- \popmacro\@@XMLelement}
-
-%D \macros
-%D {startXMLmappinggroup}
-%D
-%D Imagine something:
-%D
-%D \starttyping
-%D \defineXMLenvironment [something]
-%D {\startXMLmapping[whatever]}
-%D {\stopXMLmapping}
-%D \stoptyping
-%D
-%D Here the \type {\stopXMLmapping} will never be reached
-%D because we are in a mapping. Therefore we need:
-
-\def\startXMLmappinggroup
- {\dodoubleempty\dostartXMLmappinggroup}
-
-\def\dostartXMLmappinggroup[#1][#2]%
- {\bgroup
- \letcscsname\savedXMLmeaning\csname\@@XMLelement:/\currentXMLelement\endcsname
- \dostartXMLmapping[#1][#2]% do ! else wrong !
- \letcsnamecs\csname\@@XMLelement:/\currentXMLelement\endcsname\savedXMLmeaning}
-
-\def\stopXMLmappinggroup
- {\stopXMLmapping
- \egroup}
-
-%D Context Directives:
-
-\def\@@CTXML{@@CTXML}
-
-\def\defineXMLdirective
- {\dodoubleempty\dodefineXMLdirective}
-
-\long\def\dodefineXMLdirective[#1][#2]#3%
- {\defineXMLprocessor[context-#1-directive]{\dohandleXMLdirective{#1}{#3}}%
- \ifsecondargument
- \long\setvalue{\@@CTXML-#1-#2}{#3}%
- \fi}
-
-\def\dohandleXMLdirective#1#2#3%
- {\dodohandleXMLdirective#3 @ @ @\end{#1}{#2}}
-
-%\def\dodohandleXMLdirective#1 #2 #3 #4\end#5#6%
-% {\doifdefinedelse{\@@CTXML-#5-#1}
-% {\getvalue{\@@CTXML-#5-#1}[#2=#3]}
-% {#6[#1][#2=#3]}}
-
-\def\dodohandleXMLdirective#1 #2 #3 #4\end#5#6%
- {\executeifdefined{\@@CTXML-#5-#1}{#6[#1]}[#2=#3]}
-
-% \defineXMLdirective [mathml] \setupMMLappearance % [#1][#2=#3]
-% \defineXMLdirective [flowchart] [shapes] \setupFLOWshapes % [#2=#3]
-% \defineXMLdirective [flowchart] [lines] \setupFLOWlines % [#2=#3]
-
-\defineXMLprocessor [context-begin-group] {\bgroup\gobbleoneargument}
-\defineXMLprocessor [context-end-group] {\egroup\gobbleoneargument}
-
-% \def\XMLnspart#1:#2\empty{#1} % call ...:\empty\empty
-% \def\XMLidpart#1:#2#3\empty{\ifx#2\empty#1\else\XMLidpart#2#3\empty\empty\fi}
-
-% trial macros (used in setupx), to be sped up !
-
-\bgroup \catcode`\<=\activecatcode
-
-\gdef\saveXMLasdata#1#2% name raw data
- {\dodoglobal\setevalue{\@@XMLsave:#1}{#2}} % \edef!
-
-\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
- {\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
- {\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}
-\gdef\gsaveXMLdatainelement{\doglobal\saveXMLdatainelement}
-\gdef\gsaveXMLdatastructure{\doglobal\saveXMLdatastructure}
-
-\gdef\doifelseXMLelement#1%
- {\doifdefinedelse{\@@XMLsave:#1}}
-
-\gdef\doifelseXMLelementcontent#1%
- {\ifcsname\@@XMLsave:#1\endcsname
- \bgroup
- \@EA\defconvertedcommand\@EA\ascii\csname\@@XMLsave:#1\endcsname
- \setbox\scratchbox\hbox{\ignorespaces\ascii\unskip\unskip\unskip}%
- \ifdim\wd\scratchbox>\zeropoint
- \egroup\@EAEAEA\firstoftwoarguments
- \else
- \egroup\@EAEAEA\secondoftwoarguments
- \fi
- \else
- \@EA\secondoftwoarguments
- \fi}
-
-\gdef\doifelseXMLelementequals#1#2%
- {\ifcsname\@@XMLsave:#1\endcsname
- \bgroup
- \@EA\defconvertedcommand\@EA\asciia\csname\@@XMLsave:#1\endcsname
- \defconvertedargument\asciib{#2}%
- \ifx\asciia\asciib
- \egroup\@EAEAEA\firstoftwoarguments
- \else
- \egroup\@EAEAEA\secondoftwoarguments
- \fi
- \else
- \@EA\secondoftwoarguments
- \fi}
-
-\gdef\doifXMLtextelse#1% new
- {\doiftextelse{\simplifyXMLelements#1}}
-
-\gdef\doifXMLtext#1#2% new
- {\doiftextelse{\simplifyXMLelements#1}{#2}\donothing}
-
-\gdef\convertXMLelement#1\to#2%
- {\ifcsname\@@XMLsave:#1\endcsname
- \@EA\defconvertedcommand\@EA#2\csname\@@XMLsave:#1\endcsname
- \else
- \let#2\ascii
- \fi}
-
-\gdef\flushXMLelement#1%
- {\csname
- \@@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%
- {\showvalue{\@@XMLsave:#1}}
-
-\gdef\eraseXMLelement#1%
- {\dodoglobal\letbeundefined{\@@XMLsave:#1}}
-
-\gdef\geraseXMLelement
- {\doglobal\eraseXMLelement}
-
-\gdef\processXMLelement#1%
- {\bgroup
- \enableXMLelements
- \getvalue{\@@XMLsave:#1}%
- \egroup}
-
-\gdef\texXMLelement#1%
- {\begingroup
-% \setnormalcatcodes
- \disableXML
- \scantokens\@EA\@EA\@EA{\csname\@@XMLsave:#1\endcsname}%
- \endgroup}
-
-\gdef\reduceXMLescapeentities
- {\setXMLentity{amp}{\string&}%
- \setXMLentity{lt}{\string<}%
- \setXMLentity{gt}{\string>}%
- \setXMLentity{quot}{\string'}%
- \setXMLentity{dquot}{\string"}}
-
-\gdef\reduceXMLelement#1\to#2%
- {\ifcsname\@@XMLsave:#1\endcsname
- \bgroup
- \reduceXMLescapetokens
- \reduceXMLescapeentities
- \expanded{\egroup\noexpand\def\noexpand#2{\csname\@@XMLsave:#1\endcsname}}%
- \else
- \let#2\empty
- \fi}
-
-\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}}
-
-% \def\XMLnoschema{standalone='yes'}
-
-\def\writtenXMLelement #1#2{<#1>#2</#1>}
-\def\writtenXMLstart #1{<#1>}
-\def\writtenXMLend #1{</#1>}
-\def\writtenXMLempty #1{<#1/>}
-\def\writtenXMLelementcs#1#2{\ifx#2\empty\else<#1>#2</#1>\fi}
-\def\writtenXMLemptycs #1#2{\ifx#2\empty<#1/>\else<#1>#2</#1>\fi}
-
-%D This one can be used to get sound tuo files.
-%D
-%D \starttyping
-%D \setuphead[chapter][expansion=xml]
-%D % \setuplist[chapter][textcommand=\enableXML]
-%D
-%D \enableregime[utf] \autoXMLentitiestrue
-%D \stoptyping
-%D
-%D with:
-%D
-%D \starttyping
-%D <chapter>test &#xEB; test &ediaeresis; test <e>ediaeresis</e></chapter>
-%D \stoptyping
-%D
-%D This gives:
-%D
-%D \starttyping
-%D test ë test</b> <e>ediaeresis</e> test <e>ediaeresis</e>
-%D \stoptyping
-
-\def\XMLprocessingparameter#1%
- {\csname\??xp#1\endcsname}
-
-\appendtoks
- \defineXMLargument[\XMLprocessingparameter\c!escape]\getXMLentity
-\to \aftersetupXMLprocessing
-
-\setupXMLprocessing
- [\c!escape=e]
-
-\bgroup \catcode`\<=\activecatcode
-
-\long\gdef\defexpandedxmlargument#1#2#3%
- {\begingroup
- \let\uppercase\firstofoneargument
- \def\getXMLhexcharacter##1{\numbertoutp{"##1}}% maps to private if needed
- \def\getXMLdeccharacter##1{\numbertoutp {##1}}% maps to private if needed
- \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{#3}%
- \endgroup
- #1#2\@@globalexpanded}
-
-\egroup
-
-% test.xml: <test>test % test</test>
-%
-% \starttext
-% \enableregime[utf] \chardef\XMLtokensreduction=0
-% \setuphead[chapter][expansion=xml]
-% \defineXMLargument[test]{\chapter}
-% \placelist[chapter][criterium=text]
-% \processXMLfilegrouped{test.xml}
-% \stoptext
-
-% obsolete in mkiv
-
-\chardef\xmlexpandmode\plusone
-
-\def\defexpandedxmlargumentcmd {\chardef\xmlexpandmode\plusone\defexpandedxmlargument\defconvertedcommand}
-\def\defexpandedxmlargumentutf {\chardef\xmlexpandmode\plustwo\defexpandedxmlargument\defconvertedcommand}
-\def\gdefexpandedxmlargumentcmd{\chardef\xmlexpandmode\plusone\defexpandedxmlargument\gdefconvertedcommand}
-\def\gdefexpandedxmlargumentutf{\chardef\xmlexpandmode\plustwo\defexpandedxmlargument\gdefconvertedcommand}
-
-\installexpander {xml} \defexpandedxmlargumentcmd \gdefexpandedxmlargumentcmd
-\installexpander {xml:cmd} \defexpandedxmlargumentcmd \gdefexpandedxmlargumentcmd
-\installexpander {xml:utf} \defexpandedxmlargumentutf \gdefexpandedxmlargumentutf
-
-\def\XMLtexmath#1{\begingroup\setnormalcatcodes\scantokens{\mathematics{#1}\ignorespaces}\endgroup}
-
-% \defineXMLargument[tm]{\XMLtexmath}
-%
-% \startbuffer[test]
-% Sometimes it makes sense to use simple math, as in: <tm>e=mc^2</tm>.
-% \stopbuffer
-%
-% \processXMLbuffer[test]
-
-%D Undocumented ...
-
-\def\defineXMLstore {\doquadrupleargument\dodefineXMLstore[\saveXMLasdata]}
-\def\defineXMLgstore{\doquadrupleargument\dodefineXMLstore[\gsaveXMLasdata]}
-
-\def\dodefineXMLstore[#1][#2][#3][#4]% element attribute prefix % will become faster
- {\defineXMLargument[#2][#3=\s!dummy]{#1{#4:\XMLop{#3}}}}
-
-\def\countXMLchildren[#1]#2%
- {\startnointerference
- \doglobal\newcounter\nofXMLchildren
- \defineXMLargument[#1]{\doglobal\increment\nofXMLchildren}%
- \startXMLignore
- #2%
- \stopXMLignore
- \stopnointerference}
-
-% Typical \MKII. We will not explore this route any further as in \MKIV\ we
-% have better ways.
-
-\prependtoks \setnormalcatcodes \to \everyTEXinputmode
-\appendtoks \processingXMLfalse \to \everyTEXinputmode
-
-\let\normalenableXML\enableXML % some day we move the normal \enableXML into the toks
-
-\prependtoks \normalenableXML \to \everyXMLinputmode
-\appendtoks \processingXMLtrue \to \everyXMLinputmode
-
-\unexpanded\def\enableXML {\setinputmode[XML]} % \enableXML is used in edef's and marks
-\unexpanded\def\disableXML{\setinputmode[TEX]}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-hyp.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-hyp.mkii
deleted file mode 100644
index 105f1a1e373..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-hyp.mkii
+++ /dev/null
@@ -1,69 +0,0 @@
-%D \module
-%D [ file=xtag-hyp,
-%D version=2003.11.24,
-%D title=\CONTEXT\ XML MAcros,
-%D subtitle=Hyphenation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt XML Macros / Hyphenation}
-
-%D This filter is kind of obsolete, since \UTF\ is not
-%D limited to \XML. So, here we only enable \UTF\ support.
-
-\ifnum\texengine=\luatexengine
- \defineXMLenvironment [hyphenations] [language=\currentlanguage,regime=utf,encoding=\defaultencoding]
- {\startnointerference
- \defineXMLargument [hyphenation] \hyphenation
- \language[\XMLop{language}]}
- {\stopnointerference}
-\else
- \defineXMLenvironment [hyphenations] [language=\currentlanguage,regime=utf,encoding=\defaultencoding]
- {\startnointerference
- \defineXMLargument [hyphenation] \hyphenation
- \language[\XMLop{language}]%
- \enableregime[\XMLop{regime}]%
- \enableencoding[\XMLop{encoding}]}
- {\stopnointerference}
-\fi
-
-\defineXMLsingular [hyphenate]
- {\-}
-
-\defineXMLgrouped [language] [code=\currentlanguage,scope=local]
- {\doifelse{\XMLop{scope}}{global}\mainlanguage\language[\XMLop{code}]}
-
-\defineXMLsingular [language] [code=\currentlanguage]
- {\doifelse{\XMLop{scope}}{global}\mainlanguage\language[\XMLop{code}]}
-
-\defineXMLsingular [compound] [token=-]
- {\expanded{\directdiscretionary{\XMLop{token}}}}
-
-\endinput
-
-% \mainlanguage[nl] \setupbodyfont[pos] \useXMLfilter[utf,hyp]
-%
-% \starttext
-%
-% \hyphenatedword{pati\ediaeresis nten}
-% \hyphenatedword{pati\ediaeresis ntenorganisatie}
-% \hyphenatedword{pati\ediaeresis ntenplatform}
-%
-% \startXMLdata
-% <hyphenations language='nl' regime='utf'>
-% <hyphenation>pa-tiën-ten</hyphenation>
-% <hyphenation>pa-tiën-ten-or-ga-ni-sa-tie</hyphenation>
-% <hyphenation>pa-tiën-ten-plat-form</hyphenation>
-% </hyphenations>
-% \stopXMLdata
-%
-% \hyphenatedword{pati\ediaeresis nten}
-% \hyphenatedword{pati\ediaeresis ntenorganisatie}
-% \hyphenatedword{pati\ediaeresis ntenplatform}
-%
-% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-ini.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-ini.mkii
deleted file mode 100644
index ce3cbacd0b1..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-ini.mkii
+++ /dev/null
@@ -1,3026 +0,0 @@
-%D \module
-%D [ file=xtag-ini,
-%D version=2000.12.20,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=Initialization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt XML Macros / Initialization}
-
-%D Beware: don't rely on \longempty things, since this may
-%D change!
-
-\ifdefined\keeputfcharacters \else \let\keeputfcharacters\relax \fi % for mkiv
-\ifdefined\utfunicodetracer \else \newconstant\utfunicodetracer \fi % for mkiv
-
-%D \macros
-%D {defineinputmode,setinputmode}
-%D
-%D For old times sake we still support:
-
-\unexpanded\def\defineinputmode[#1]{\expandafter\newtoks\csname every#1inputmode\endcsname}
-\unexpanded\def\setinputmode [#1]{\the\executeifdefined{every#1inputmode}\emptytoks}
-
-\defineinputmode [TEX]
-\defineinputmode [XML]
-
-\setinputmode [TEX]
-
-%D Finally we make sure that the compound handler keeps doingits job.
-
-\ifx\normalcompound\undefined \let\normalcompound=| \fi
-
-\appendtoks \catcode`|=\activecatcode \let|\normalcompound \to \everyTEXinputmode
-\appendtoks \catcode`|=\lettercatcode \to \everyXMLinputmode
-
-%D This module is highly optimized for speed, which sometimes
-%D leads to rather unreadable code. Sorry for this.
-
-\bgroup \obeylines
-
-\gdef\startXMLdefinitions% keep %
- {\bgroup\obeylines\dostartXMLdefinitions}
-
-\gdef\dostartXMLdefinitions #1
- {\egroup\doifsomething{#1}{\writestatus{XML}{loading #1 support}}}
-
-\global\let\stopXMLdefinitions\relax
-
-\egroup
-
-% todo: XMLfullsave == also attributes
-% csnames
-% XMLelse -> elseXML
-
-%D Remark: some hard coded character things will be replaced
-%D by named glyphs as soon as the upgraded encoding modules
-%D are released. At that moment, unicode support will be
-%D provided in accordance with the normal support in \CONTEXT.
-
-%D Like it or not, this module deals with angle bracketed
-%D input. Processing \XML\ alike input in \CONTEXT\ has been
-%D possible since 1995, and till 2000 several methods ran in
-%D parallel. These were implemented in modules like the semi
-%D public \type {m-sgml}.
-%D
-%D There is not one optimal solution for processing \XML\ data.
-%D The oldest method was based on a very simple preprocessor
-%D written in \MODULA\ and later \PERL: \type {<command>} was
-%D converted into \type {\begSGML[command]} and optional
-%D parameters were passed.
-%D
-%D A second method uses a \PERL\ or \XSL\ transformation
-%D script that produces \CONTEXT\ commands. This method is
-%D much slower, mainly because the whole document is read into
-%D memory and a document tree is to be build. The advantage is
-%D that processing of the resulting document is fast.
-%D
-%D The third method uses a basic parser written in the \TEX\
-%D language, and apart from a few pitfalls, this method is
-%D clean and efficient, but not always robust. Because errors
-%D in the input are not catched on forehand, processing in
-%D \TEX\ may fail due to errors. But, given that a document
-%D can be validated on forehand, this is no big problem.
-%D
-%D Each method has its advantage, but especially the third
-%D method puts some demands on \CONTEXT, since no interference
-%D between the parser and the core commands may occur. What
-%D method is used, depends on the situation.
-%D
-%D All three methods introduce some problems in interfacing to
-%D core \CONTEXT\ functionality. This is due to the fact that
-%D sometimes we want to typeset content directly, while in
-%D other cases we just want to pick up data for later usage,
-%D either or not using delimited arguments. And, when moving
-%D data around, there is always the expansion problem to deal
-%D with.
-%D
-%D As can be expected, we have to map begin and end tags onto
-%D \CONTEXT's start- and stopcommands. This is the easy part.
-%D When we have to pass the content of an element to a macro
-%D as argument, we need to do a delimited grab. Such mappings
-%D are not that hard to implement and were part of \type
-%D {m-sgml.tex} already. New in this core module is nested
-%D grabbing. Also new here is the support for namespaces and
-%D extensive attribute handling. On the other hand, recursive
-%D traceback of attributes is no longer supported. Because
-%D this feature was not really used, we can hereby safely we
-%D declare the \type {m-sgml.tex} module obsolete.
-%D
-%D In order to be able to incorporate \XML\ style definitions
-%D into basic \TEX\ styles, we will provide some basic
-%D functionality in the core itself. Some of the functionality
-%D can be set up with this general command. We use a token
-%D list register to handle post||setup actions. This permits
-%D us to extend this command.
-
-\unprotect
-
-\newtoks\aftersetupXMLprocessing
-
-\def\setupXMLprocessing
- {\dosingleargument\dosetupXMLprocessing}
-
-\def\dosetupXMLprocessing[#1]%
- {\getparameters[\??xp][#1]\the\aftersetupXMLprocessing}
-
-\def\XMLprocessingparameter#1%
- {\csname\??xp#1\endcsname}
-
-\protect
-
-%D Formally an \XML\ file starts with an unique sequence
-%D \type {<?xml}, but in most of the unilities that come with
-%D \CONTEXT\ we will be more tolerant, and gobble preceding
-%D spaces.
-
-\def\XMLbanner#1{\string<\string ?xml version='1.0' #1\string ?\string>}
-
-%D We will be dealing with elements, which means that we have
-%D to take care of \type {<this>} and \type {</that>}, but
-%D also with \type {<such/>} and \type {<so />}. In some cases
-%D the upper and lowercase alternatives need to be dealt with,
-%D although this is not realy needed since XML is case
-%D sensitive.
-%D
-%D We also have to handle entities, like \type {&you;} and
-%D \type {&me;}. These are quite easy to deal with and need to
-%D be hooked into the encoding and abbreviation mechanisms.
-%D
-%D And then there are the parameters to be taken care of. Here
-%D we meet \type {key="value"} but also \type {key='eulav'}
-%D and even the spacy \typ {key = "value"}.
-%D
-%D Since we have to handlers for each element and entity, we
-%D will create a few namespaces. Special care has to be
-%D given to preformated code.
-%D
-%D There are two namespace mechanisms in place: one for
-%D \TEX, and one for \XML. The later mechanism permits
-%D remapping and ignoring.
-
-\unprotect
-
-\def \@@XML {XML:}
-\edef\@@XMLentity {\@@XML ent} % &crap;
-\edef\@@XMLelement {\@@XML ele} % <this> </this> <that/>
-\edef\@@XMLvariable {\@@XML var} % key="val"
-\edef\@@XMLvalue {\@@XML val} % key="val"
-\edef\@@XMLpars {\@@XML par} %
-\edef\@@XMLdata {\@@XML dat} % mem buffer
-\edef\@@XMLcode {\@@XML cod} % named mem buffers
-\edef\@@XMLinstruction {\@@XML ins} % <?
-\edef\@@XMLmap {\@@XML map} % mapping on context attr
-\edef\@@XMLlist {\@@XML lst} %
-\edef\@@XMLnamespace {\@@XML nam} % namespace:element
-\edef\@@XMLurlspace {\@@XML url} %
-\edef\@@XMLescape {\@@XML esc} % <!
-\edef\@@XMLdepth {\@@XML dep} % used to track nesting
-\edef\@@XMLdopth {\@@XML dop} % used to track nesting
-\edef\@@XMLsave {\@@XML sav} % namespace for saved elements
-
-\iffalse % slightly faster
-
-\edef\@@XML {*}
-\edef\@@XMLentity {\@@XML a} % &crap;
-\edef\@@XMLelement {\@@XML b} % <this> </this> <that/>
-\edef\@@XMLvariable {\@@XML c} % key="val"
-\edef\@@XMLvalue {\@@XML d} % key="val"
-\edef\@@XMLpars {\@@XML e} %
-\edef\@@XMLdata {\@@XML f} % mem buffer
-\edef\@@XMLcode {\@@XML g} % named mem buffers
-\edef\@@XMLinstruction {\@@XML h} % <?
-\edef\@@XMLmap {\@@XML i} % mapping on context attr
-\edef\@@XMLlist {\@@XML j} %
-\edef\@@XMLnamespace {\@@XML k} % namespace:element
-\edef\@@XMLurlspace {\@@XML l} %
-\edef\@@XMLescape {\@@XML m} % <!
-\edef\@@XMLdepth {\@@XML n} % used to track nesting
-\edef\@@XMLdopth {\@@XML o} % used to track nesting
-\edef\@@XMLsave {\@@XML p} % namespace for saved elements
-
-\fi
-
-\let\normal@@XMLelement\@@XMLelement % we may overload this one later inside a group
-
-\newtoks\XMLtoks
-\newtoks\XMLresetlist
-
-\newif\ifignoreXMLspaces
-\newif\iffixedXMLfont
-\newif\iftraceXMLelements
-\newif\ifprocessingXML
-
-\newcount\XMLlevel % scratchcounter
-\newcount\XMLdepth % used here
-
-\newtoks\everyenableXML
-
-%D We will implement the parser by making a few characters
-%D active. For that reason we also have to save their
-%D original meaning.
-
-%D \macros
-%D {enableXML}
-%D
-%D The macro \type {\enableXML} will be used to turn on the
-%D parser. This means that after that, \TEX\ commands starting
-%D with a backslash will not longer be read as such. There is
-%D a way around this, but for convenience \TEXEXEC\ will take
-%D care of processing raw \XML\ files in a transparant way.
-
-% cmr -- best for tui and such
-%
-% \chardef\XMLtokensreduction\zerocount
-%
-% lmr -- best but problematic for tui file:
-
-\chardef\XMLtokensreduction\plustwo
-
-% \def\alwaysreduceXMLtokens {\XMLtokensreduction\plusone}
-% \def\permanentreduceXMLtokens{\XMLtokensreduction\plustwo}
-
-% part of this should move to a low level module
-
-% we predefine some macros, just to satisfy the dep parser
-
-\let\enableXMLexpansion \relax
-\let\disableXMLexpansion \relax
-\let\enableXML \relax
-\let\activateXMLescapetokens\relax
-\let\entitleXMLescapetokens \relax
-\let\reduceXMLescapetokens \relax
-\let\ignoreXMLescapetokens \relax
-\let\enableXMLelements \relax
-\let\disableXMLelements \relax
-
-% \bgroup
-% \catcode`\*=\commentcatcode
-% \catcode`\.=\escapecatcode
-% .catcode`.B=.begingroupcatcode
-% .catcode`.E=.endgroupcatcode
-% .catcode`.P=.parametercatcode
-%
-% .catcode`.&=.activecatcode
-% .catcode`.<=.activecatcode
-%
-% .catcode`.#=.activecatcode
-% .catcode`.$=.activecatcode
-% .catcode`.%=.activecatcode
-% .catcode`.\=.activecatcode
-% .catcode`.^=.activecatcode
-% .catcode`._=.activecatcode
-% .catcode`.{=.activecatcode
-% .catcode`.}=.activecatcode
-% .catcode`.|=.activecatcode
-% .catcode`.~=.activecatcode
-%
-% .gdef.enableXMLexpansion
-% B.def<B.doXMLelementE.let&=.doXMLentityE
-%
-% .gdef.disableXMLexpansion
-% B.unexpanded.def<B.doXMLelementE.let&=.doXMLentityE
-%
-% * internally the # becomes two #'s (before expanding, during
-% * the parsing stage) which is why we let the first # gobble
-% * the second one
-% *
-% * since this only takes place when reading arguments, as in
-% * \startXMLdata ... cum, suis, we can take place of it
-% * there; this is needed because reading from file goes wrong
-% * (eating up argument)
-%
-% .unexpanded.gdef.enableXML
-% B.catcode`.!=.othercatcode
-% .catcode`.?=.othercatcode
-% .catcode`.:=.othercatcode * active in french
-% .catcode`.;=.othercatcode * active in french
-% .catcode`.&=.activecatcode
-% .catcode`.<=.activecatcode
-% .catcode`.>=.othercatcode
-% .catcode`."=.othercatcode
-% .catcode`./=.othercatcode
-% .catcode`.'=.othercatcode
-% .catcode`.~=.othercatcode
-% .catcode`.#=.othercatcode
-% .let &=.doXMLentity
-% .unexpanded.def<B.doXMLelementE*
-% .ifcase.XMLtokensreduction
-% .entitleXMLescapetokens
-% .or
-% .reduceXMLescapetokens
-% .else
-% .ignoreXMLescapetokens
-% .fi
-% .processingXMLtrue
-% .the.everyenableXML
-% E
-%
-% .gdef.activateXMLescapetokens
-% B.catcode`.$=.activecatcode
-% .catcode`.%=.activecatcode
-% .catcode`.\=.activecatcode
-% .catcode`.^=.activecatcode
-% .catcode`._=.activecatcode
-% .catcode`.{=.activecatcode
-% .catcode`.}=.activecatcode
-% .catcode`.|=.activecatcode
-% E
-%
-% .xdef.entitleXMLescapetokens
-% B.noexpand.activateXMLescapetokens
-% .noexpand.def.noexpand#B.noexpand&.string#035;E*
-% .noexpand.def.noexpand$B.noexpand&.string#036;E*
-% .noexpand.def.noexpand%B.noexpand&.string#037;E*
-% .noexpand.def.noexpand\B.noexpand&.string#092;E*
-% .noexpand.def.noexpand^B.noexpand&.string#094;E*
-% .noexpand.def.noexpand_B.noexpand&.string#095;E*
-% .noexpand.def.noexpand{B.noexpand&.string#123;E*
-% .noexpand.def.noexpand}B.noexpand&.string#125;E*
-% .noexpand.def.noexpand|B.noexpand&.string#124;E*
-% E
-%
-% .gdef.reduceXMLescapetokens
-% B.activateXMLescapetokens
-% .def#B.string#E*
-% .def$B.string$E*
-% .def%B.string%E*
-% .def\B.string\E*
-% .def^B.string^E*
-% .def_B.string_E*
-% .def{B.string{E*
-% .def}B.string}E*
-% .def|B.string|E*
-% E
-%
-% .gdef.ignoreXMLescapetokens
-% B.catcode`.$=.othercatcode
-% .catcode`.%=.othercatcode
-% .catcode`.\=.othercatcode
-% .catcode`.^=.othercatcode
-% .catcode`._=.othercatcode
-% .catcode`.{=.othercatcode
-% .catcode`.}=.othercatcode
-% .catcode`.|=.othercatcode
-% E
-%
-% * The following macro can be invokes when reading from
-% * an auxiliary file.
-%
-% .unexpanded.gdef.enableXMLelements
-% B.catcode60=.activecatcode * .catcode`.<=.activecatcode
-% .catcode62=.othercatcode * .catcode`.>=.other
-% .unexpanded.def<B.doXMLelementE*
-% .processingXMLtrue
-% E
-%
-% .unexpanded.gdef.disableXMLelements
-% B.catcode60=.activecatcode * .catcode`.<=.activecatcode
-% .catcode62=.othercatcode * .catcode`.>=.othercatcode
-% .let<.relax * new
-% .processingXMLfalse
-% E
-%
-% .global.let<.relax * new
-% .global.let&.relax * new
-%
-% .egroup
-%
-% \def\disableXML
-% {\setnormalcatcodes\processingXMLfalse}
-
-\defcatcodecommand\xmlcatcodese 046 \doXMLentity
-\defcatcodecommand\xmlcatcodese 060 \doXMLelement
-\defcatcodecommand\xmlcatcodesr 046 \doXMLentity
-\defcatcodecommand\xmlcatcodesr 060 \doXMLelement
-\defcatcodecommand\xmlcatcodesn 046 \doXMLentity
-\defcatcodecommand\xmlcatcodesn 060 \doXMLelement
-
-\letcatcodecommand\xmlcatcodesr 035 \letterhash
-\letcatcodecommand\xmlcatcodesr 036 \letterdollar
-\letcatcodecommand\xmlcatcodesr 037 \letterpercent
-\letcatcodecommand\xmlcatcodesr 092 \letterbackslash
-\letcatcodecommand\xmlcatcodesr 094 \letterhat
-\letcatcodecommand\xmlcatcodesr 095 \letterunderscore
-\letcatcodecommand\xmlcatcodesr 123 \letterleftbrace
-\letcatcodecommand\xmlcatcodesr 125 \letterrightbrace
-\letcatcodecommand\xmlcatcodesr 124 \letterbar
-
-\bgroup \catcode`\&=13 \let&\relax
-
-\xdef\entityhash {&\string#035;}
-\xdef\entitydollar {&\string#036;}
-\xdef\entitypercent {&\string#037;}
-\xdef\entitybackslash {&\string#092;}
-\xdef\entityhat {&\string#094;}
-\xdef\entityunderscore{&\string#095;}
-\xdef\entityleftbrace {&\string#123;}
-\xdef\entityrightbrace{&\string#125;}
-\xdef\entitybar {&\string#124;}
-
-\egroup
-
-\letcatcodecommand\xmlcatcodese 035 \entityhash
-\letcatcodecommand\xmlcatcodese 036 \entitydollar
-\letcatcodecommand\xmlcatcodese 037 \entitypercent
-\letcatcodecommand\xmlcatcodese 092 \entitybackslash
-\letcatcodecommand\xmlcatcodese 094 \entityhat
-\letcatcodecommand\xmlcatcodese 095 \entityunderscore
-\letcatcodecommand\xmlcatcodese 123 \entityleftbrace
-\letcatcodecommand\xmlcatcodese 125 \entityrightbrace
-\letcatcodecommand\xmlcatcodese 124 \entitybar
-
-% we speed things up by explicitly setting the active char's < &
-
-\doifmodeelse {mkiv} {
-
- \def\mksetXMLtokensreduction % mkiv
- {\setcatcodetable\xmlcatcodesn}
-
-} {
-
- \def\mksetXMLtokensreduction % mkii
- {\ifcase\XMLtokensreduction
- \setcatcodetable\xmlcatcodese \or
- \setcatcodetable\xmlcatcodesr \else
- \setcatcodetable\xmlcatcodesn
- \fi}
-
-}
-
-\bgroup \catcode`\<=13 \catcode`\&=13
-
-\gdef\enableXML
- {\mksetXMLtokensreduction
- \let&\doXMLentity
- \unexpanded\def<{\doXMLelement}%
- \processingXMLtrue
- \the\everyenableXML}
-
-\gdef\disableXML
- {\setcatcodetable\ctxcatcodes % maybe \texcatcodes
- \processingXMLfalse}
-
-\gdef\enableXMLexpansion
- {\def<{\doXMLelement}%
- \let&\doXMLentity}
-
-\gdef\disableXMLexpansion
- {\unexpanded\def<{\doXMLelement}%
- \let&\doXMLentity}
-
-\unexpanded\gdef\enableXMLelements
- {\catcode60=\activecatcode
- \catcode62=\othercatcode
- \unexpanded\def<{\doXMLelement}%
- \processingXMLtrue}
-
-\unexpanded\gdef\disableXMLelements
- {\catcode60=\activecatcode
- \catcode62=\othercatcode
- \let<\relax
- \processingXMLfalse}
-
-\global\let<\relax
-\global\let&\relax
-
-\egroup
-
-%D An element can be singular or paired. A singular element is
-%D called an empty element. The following definitions are
-%D equivalent:
-%D
-%D \starttyping
-%D <eerste></eerste> <eerste/> <eerste />
-%D \stoptyping
-%D
-%D Empty elements can have arguments too. Conforming the
-%D standard, each key must have a value. These are separated
-%D by an \type {=} sign and the value is delimited by either
-%D \type {"} or \type {'}. There may be spaces around the
-%D equal sign.
-%D
-%D \starttyping
-%D <eerste a= "b" c ="d" /> <eerste a = "b" c="d"/>
-%D \stoptyping
-%D
-%D Officially the following definition is not valid:
-%D
-%D \starttyping
-%D <eerste>some text</eerste> <eerste/> <eerste />
-%D \stoptyping
-%D
-%D Although we can handle both cases independently, this is
-%D seldom needed.
-%D
-%D Processing instructions are identified by a~\type {?} and are
-%D like empty elements.
-%D
-%D \starttyping
-%D <?doel a="b" c="d"?> <?doel a="b" c="d" ?>
-%D \stoptyping
-%D
-%D Comment is formatted as follows.
-%D
-%D \starttyping
-%D <!-- comment -->
-%D \stoptyping
-%D
-%D Verbatim code inits purest form is called \type {CDATA} and
-%D is embedded in the following ugly and therefore recognizable
-%D way:
-%D
-%D \starttyping
-%D <![CDATA[
-%D Dit is nogal verbatim !
-%D Dit is nogal verbatim !
-%D Dit is nogal verbatim !
-%D ]]>
-%D \stoptyping
-
-%D The parser is implemented as a multi||step macro. Because
-%D \type {!} and \type {?} should be picked up correctly, we
-%D need to define a few macros in unprotected mode!
-%D
-%D Because \XML\ is defined with some restrictions in mind,
-%D parsing the elements is not that complicated. First we have
-%D to determine if we're dealing with a comment or processing
-%D instruction. We need a bit of grouping because we have to
-%D mess up with catcodes. We probably have to treat a few
-%D more catcode and first character cases. We need to use
-%D \type {\begingroup} here, otherwise we get funny spaces in
-%D math.
-
-%D Maybe I will remove grouping here and introduce \type
-%D {\obeyXMLlines}.
-
-%D By using a few {\expandafter}'s we can avoid a \type {\next}
-%D construction. We could speed the first char test up a bit
-%D by using an installer and something \typ {\getvalue
-%D {#1doXMLelement}} (todo).
-
-\protect % we need an normal ! ?
-
-% \long\def\doXMLelement#1%
-% {\if#1!\expandafter \xparseXMLescape \else
-% \if#1?\expandafter\expandafter\expandafter \xparseXMLprocess \else
-% \expandafter\expandafter\expandafter \xparseXMLelement \fi\fi
-% #1}
-
-\def\expandthree{\expandafter\expandafter\expandafter}
-
-\long\def\doXMLelement#1%
- {\if#1!\expandafter \xparseXMLescape \else
- \if#1?\expandthree \xparseXMLprocess \else
- \expandthree \xparseXMLelement \fi\fi
- #1}
-
-% does it end with ? or ?>
-
-\long\def\xparseXMLescape !#1 {\parseXMLescape{#1}}
-\long\def\xparseXMLprocess ?#1 #2>{\parseXMLprocess{#1}{#2}}
-\long\def\xparseXMLelement #1>{\parseXMLelement #1 >}
-
-%D The escape handler takes care of the fuzzy \type {<!}
-%D constructs. Unfortunately, we need to catch \type {<--text}
-%D too, so we need another handler:
-
-\long\def\xparseXMLescape !#1#2%
- {\if#1-%
- \if#2-%
- \expandafter\expandafter\expandafter\xxparseXMLescape
- \else
- \expandafter\expandafter\expandafter\xyparseXMLescape
- \fi
- \else
- \if#1[%
- \expandafter\expandafter\expandafter\xzparseXMLescape
- \else
- \expandafter\expandafter\expandafter\xyparseXMLescape
- \fi
- \fi#1#2}
-
-\long\def\xxparseXMLescape--#1{\parseXMLescape{--}#1}
-\long\def\xyparseXMLescape#1 {\parseXMLescape{#1}}
-\long\def\xzparseXMLescape[#1[{\parseXMLescape{#1}}
-
-%D Now the real work can begin.
-
-\unprotect
-
-\def\defineXMLescape[#1]#2%
- {\unspaceargument#1\to\ascii % get rid of {}, like in {CDATA[}
- \long\setvalue{\@@XMLescape:\ascii}{#2}}
-
-\def\parseXMLescape#1% #2> parsing takes place in macros
- {\executeifdefined{\@@XMLescape:#1}{\csname\@@XMLescape:\s!default\endcsname}}
-
-%D In our case, processing instructions are only needed if
-%D we want specific \CONTEXT\ support. This may be useful in
-%D applications where the data is generated by an
-%D application. We will implement a \CONTEXT\ code handler
-%D later.
-
-%D The processing instructions handler is implemented as
-%D follows.
-
-\long\def\defineXMLprocessor[#1]#2%
- {\long\setvalue{\@@XMLinstruction:#1}{#2}}
-
-% \def\parseXMLprocess#1#2%
-% {\executeifdefined{\@@XMLinstruction:#1}\gobbleoneargument{#2}}
-
-%D Because we support \type {.. ?>} as well as \type {.. >}
-%D end||of||pi situations, we need to clean up the ending
-%D \type {?}.
-
-\protect
-
-\long\def\cleanupXMLprocess#1%
- {\docleanupXMLprocess#1 ? \relax}
-
-\long\def\docleanupXMLprocess#1? #2\relax
- {\def\currentXMLprocess{#1}}
-
-\unprotect
-
-\def\parseXMLprocess#1#2%
- {\cleanupXMLprocess{#2}%
- \defconvertedcommand\ascii{#1}%
- %\writestatus{xml-process}{\ascii}
- \expanded
- {\executeifdefined
- {\@@XMLinstruction:\ascii}
- \noexpand\gobbleoneargument
- {\expandafter\noexpand\currentXMLprocess}}}
-
-%D One never knows:
-
-\let\normalparseXMLescape \parseXMLescape
-\let\normalparseXMLelement\parseXMLelement
-\let\normalparseXMLprocess\parseXMLprocess
-
-%D Next we will implement the normal element handler. This
-%D piece of code is complicated by the fact that we need to
-%D handle namespaces.
-
-\let\currentXMLarguments \empty
-\let\currentXMLelement \empty % name
-\let\currentXMLidentifier\empty % name or name/
-\let\currentXMLnamespace \empty % the (remapped) namespace
-\let\originalXMLnamespace\empty % the unremapped namespace
-\let\rawXMLidentifier \empty
-
-\def\rawXMLnamespace
- {\ifx\currentXMLnamespace\empty\else\currentXMLnamespace:\fi}
-
-\def\rawXMLelement{\rawXMLnamespace\rawXMLidentifier}
-
-%D The following token list register provided the user a hook
-%D for extensions.
-
-\newtoks\everyXMLelement
-
-%D We try to keep track of the nature of an element. This
-%D flag can be used for special purposes (as in the pretty
-%D printing macros).
-
-\chardef\kindofXMLelement=0
-
-\chardef\beginXMLtag=1
-\chardef\endXMLtag =2
-\chardef\emptyXMLtag=3
-
-%D We do a rather hard coded scan for the namespace attribute. This
-%D is needed because its value determines further namespace related
-%D actions.
-
-\def\openXMLargument{ /}
-
-\long\def\parseXMLelement#1#2 #3>%
- {\def\currentXMLarguments{#3}% including end /
- \if#1/%
- \chardef\kindofXMLelement\endXMLtag
- \def\currentXMLelement{#2}%
- \else
- \docleanupXMLelement#1#2/\empty\relax
- \fi
- \ifx\currentXMLarguments\openXMLargument
- \chardef\kindofXMLelement\emptyXMLtag
- \fi
- \@EA\splitoffXMLnamespace\currentXMLelement::\relax
- \ifcase\kindofXMLelement
- % can't happen
- \or
- % begintag or emptytag with arguments or space before /
- \the\everyXMLelement % only for begin/empty tag !
- \ifx\currentXMLarguments\empty \else
- \dogetXMLarguments\rawXMLelement#3>%
- \fi
- \or
- % no arguments
- \or
- % empty element without arguments (but possible presets)
- \the\everyXMLelement
- \fi
- \ifcase\kindofXMLelement\or
- \let \currentXMLidentifier \rawXMLidentifier
- \edef\currentXMLfullidentifier {\rawXMLelement }%
- \or
- \edef\currentXMLidentifier {/\rawXMLidentifier }%
- \edef\currentXMLfullidentifier{/\rawXMLelement }%
- \or
- \edef\currentXMLidentifier {\rawXMLidentifier/}%
- \edef\currentXMLfullidentifier {\rawXMLelement /}%
- \fi
- \iftraceXMLelements\traceXMLelement\fi
- \executeXMLelement}
-
-\long\def\docleanupXMLelement#1/#2#3\relax
- {\def\currentXMLelement{#1}% watch out: \empty == begin or empty tag
- \chardef\kindofXMLelement\ifx#2\empty\beginXMLtag\else\emptyXMLtag\fi}
-
-\def\@@traceXMLelement
- {\originalXMLfullidentifier
- \ifx\originalXMLfullidentifier\currentXMLfullidentifier\else
- \space=>\space\currentXMLfullidentifier
- \fi
- \ifx\currentXMLarguments\empty\else
- \space\string|\space\currentXMLarguments
- \fi}
-
-\long\def\traceXMLelement
- {\edef\originalXMLfullidentifier{\someXMLelementID\currentXMLelement}%
- \cleanupXMLarguments\writestatus{xml-element}{\@@traceXMLelement}}
-
-%D We split off the namespace part, construct the
-%D identifier, and remap the namespace if needed.
-
-\def\splitoffXMLnamespace#1:#2:#3\relax
- {\def\rawXMLidentifier{#2}%
- \ifx\rawXMLidentifier\empty
- \let\currentXMLnamespace\empty
- \edef\rawXMLidentifier{#1}%
- \else
- \edef\currentXMLnamespace{#1}%
- \fi
- \let\originalXMLnamespace\currentXMLnamespace
- \checkXMLnamespace\rawXMLidentifier}
-
-\def\xsplitoffXMLnamespace% fast resplit
- {\ifcsname\@@XMLnamespace:\currentXMLnamespace\endcsname
- \csname\@@XMLnamespace:\currentXMLnamespace\endcsname
- \fi}
-
-%D We will implement this macro later.
-
-\let\checkXMLnamespace\gobbleoneargument % see below
-
-%D The namespace attribute checking is part of the element
-%D parser, since the value of \type {xmlns} may influence other
-%D namespace mapping.
-
-\def\@@XMLns{xmlns}
-
-\def\checkXMLnamespaceattr#1% xmlns:\@@XMLname="\XMLns"
- {\edef\XMLns{#1}%
- \ifx\XMLns\empty \else
- \ifcsname\@@XMLurlspace:\XMLns\endcsname
- % get remapped namespace (from url)
- % \edef\XMLns{\csname\@@XMLurlspace:\XMLns\endcsname}%
- \@EA\let\@EA\XMLns\csname\@@XMLurlspace:\XMLns\endcsname
- % remap this one
- \ifx\@@XMLname\empty
- % not watertight since no implicit grouping
- \xautoXMLnamespace\XMLns
- \else
- \xremapXMLnamespace\@@XMLname\XMLns
- % redo namespace remapping of self if needed
- \ifx\XMLns\currentXMLnamespace
- % i'm still not sure if this is ok
- \else
- \xsplitoffXMLnamespace
- \fi
- \fi
- \fi
- \fi}
-
-%D Although not really needed, we clean up the arguments.
-
-% \long\def\cleanupXMLarguments
-% {\ifnum\kindofXMLelement=\emptyXMLtag
-% \ifx\currentXMLarguments\empty \else
-% \@EA\docleanupXMLarguments\currentXMLarguments/\empty
-% \fi
-% \fi}
-%
-% \long\def\docleanupXMLarguments#1/#2\empty
-% {\edef\currentXMLarguments{#1}}
-%
-% we need to be ...="/" .... /> safe
-
-\long\def\cleanupXMLarguments
- {\ifnum\kindofXMLelement=\emptyXMLtag
- \ifx\currentXMLarguments\empty \else
- \@EA\docleanupXMLarguments\currentXMLarguments/ \relax
- \fi
- \else\ifnum\kindofXMLelement=\beginXMLtag
- \ifx\currentXMLarguments\space
- \let\currentXMLarguments\empty
- \fi
- \fi\fi}
-
-% \long\def\docleanupXMLarguments#1/ #2\relax % space added earlier
-% {\edef\currentXMLarguments{#1}}
-%
-% \startbuffer
-% <xsl:value-of select="map[@att=$variable]/@att2"/>
-% \stopbuffer
-%
-% \showXMLbuffer
-%
-% No \type {\edef} in the following, else \showXMLbuffer fails:
-
-\long\def\docleanupXMLarguments#1/ #2\relax % space added earlier
- {\def\currentXMLarguments{#1}} % no \edef, goes wrong in \showXML
-
-\def\executeXMLelementA % no fallback
- {\ifcsname\@@XMLelement:\currentXMLfullidentifier\endcsname
- \csname\@@XMLelement:\currentXMLfullidentifier\endcsname
- \fi}
-
-\def\executeXMLelementB % default fallback
- {\csname \@@XMLelement:%
- \ifcsname\@@XMLelement:\currentXMLfullidentifier\endcsname
- \currentXMLfullidentifier
- \else
- \defaultXMLelementID % was \s!default
- \fi
- \endcsname}
-
-\def\executeXMLelementC % no namespace of default fallback
- {\csname \@@XMLelement:%
- \ifcsname\@@XMLelement:\currentXMLfullidentifier\endcsname
- \currentXMLfullidentifier
- \else\ifcsname\@@XMLelement:\currentXMLidentifier\endcsname
- \currentXMLidentifier
- \else
- \defaultXMLelementID % was \s!default
- \fi\fi
- \endcsname}
-
-\def\executeXMLelementD
- {\csname
- \ifcsname\@@XMLelement:\currentXMLfullidentifier\endcsname
- \@@XMLelement:\currentXMLfullidentifier
- \else\ifcsname\@@XMLelement:\currentXMLidentifier\endcsname
- \@@XMLelement:\currentXMLidentifier
- \else
- \executeXMLelementDD % less skipping and thereby faster
- \fi\fi
- \endcsname}
-
-\def\executeXMLelementDD % now forget about tex mapping
- {\ifcsname\normal@@XMLelement:\currentXMLfullidentifier\endcsname
- \normal@@XMLelement:\currentXMLfullidentifier
- \else\ifcsname\normal@@XMLelement:\currentXMLidentifier\endcsname
- \normal@@XMLelement:\currentXMLidentifier
- \else
- \normal@@XMLelement:\defaultXMLelementID % was \@@XMLelement:\s!default
- \fi\fi}
-
-\def\setXMLfallbackmode#1%
- {\ifcase#1\relax
- \let\executeXMLelement \executeXMLelementA
- \let\automateXMLnamespace\automateXMLnamespaceA
- \or % 1
- \let\executeXMLelement \executeXMLelementB
- \let\automateXMLnamespace\automateXMLnamespaceB
- \or % 2
- \let\executeXMLelement \executeXMLelementC
- \let\automateXMLnamespace\automateXMLnamespaceC
- \or % 3
- \let\executeXMLelement \executeXMLelementD
- \let\automateXMLnamespace\automateXMLnamespaceD
- \fi}
-
-\setXMLfallbackmode3 % was 2
-
-%D An example of fall back modes is given below.
-
-%D The automated namespace stuff is new and yet undocumented
-%D (see resource libraries for usage).
-
-\def\xautoXMLnamespace#1% fast internal one
- {\ifcsname\@@XMLnamespace-#1\endcsname\else
- \@EA\appendtoks\csname\@@XMLnamespace-#1\endcsname\to\autoXMLnamespaces
- \fi
- \@EA\edef\csname\@@XMLnamespace-#1\endcsname
- {\noexpand\edef\noexpand\@axmlns@{#1}% quicker #1 -> \#1
- \noexpand\doautoXMLnamespace\noexpand\@axmlns@}}
-
-\def\doautoXMLnamespace#1% \done is set before list
- {\ifdone\else\automateXMLnamespace#1\fi}
-
-\def\automateXMLnamespaceA#1%
- {\ifcsname\@@XMLelement:#1:\checkedXMLnamespace\endcsname
- \let\currentXMLnamespace#1%
- \else\ifcsname\@@XMLelement:#1:\checkedXMLnamespace/\endcsname
- \let\currentXMLnamespace#1%
- \fi\fi}
-
-\let\automateXMLnamespaceB\automateXMLnamespaceA
-\let\automateXMLnamespaceC\automateXMLnamespaceA
-
-\def\automateXMLnamespaceD#1%
- {\ifcsname\@@XMLelement:#1:\checkedXMLnamespace\endcsname
- \let\currentXMLnamespace#1%
- \else\ifcsname\normal@@XMLelement:#1:\checkedXMLnamespace\endcsname
- \let\currentXMLnamespace#1%
- \else
- \automateXMLnamespaceDD#1%
- \fi\fi}
-
-\def\automateXMLnamespaceDD#1%
- {\ifcsname\@@XMLelement:#1:\checkedXMLnamespace/\endcsname
- \let\currentXMLnamespace#1%
- \else\ifcsname\normal@@XMLelement:#1:\checkedXMLnamespace/\endcsname
- \let\currentXMLnamespace#1%
- \fi\fi}
-
-%D Later we will implement the error handler, here we handle
-%D the default case.
-
-\def\someXMLelementID#1%
- {\ifnum\kindofXMLelement=\endXMLtag /\fi
- #1%
- \ifnum\kindofXMLelement=\emptyXMLtag/\fi}
-
-\def\defaultXMLelementID
- {\someXMLelementID\s!default}
-
-%D It is possible to keep track of nesting automatically,
-%D but this would kind of prohibit things like \type
-%D {\ignorespaces}. In the future we may provide an
-%D automatic depth tracking as an alternative (exclusive)
-%D mode of operation combined with space grabbing.
-
-\def\beginXMLelement
- {\global\advance\XMLdepth\plusone
- \global\@EA\let\csname\@@XMLdepth:\the\XMLdepth\endcsname\currentXMLelement
- }%\writestatus{XML TRACE}{[begin] [\the\XMLdepth] [\XMLself]}}
-
-\def\endXMLelement
- {%\writestatus{XML TRACE}{[end] [\the\XMLdepth] [\XMLself]}%
- \global\@EA\let\csname\@@XMLdepth:\the\XMLdepth\endcsname\undefined
- \global\advance\XMLdepth\minusone}
-
-% 0 = nothing
-% 1 = unknown
-% 2 = current element
-
-\chardef\XMLancestormode=2 % never change this one globally
-
-% \def\XMLancestor#1%
-% {\ifnum\numexpr(\XMLdepth-#1)>0
-% \csname\@@XMLdepth:\the\numexpr(\XMLdepth-#1)\endcsname
-% \else
-% \ifcase\XMLancestormode\or\s!unknown\or\currentXMLelement\fi
-% \fi}
-
-\def\XMLancestor#1%
- {\ifnum\numexpr\XMLdepth-#1\relax>\zerocount
- \csname\@@XMLdepth:\the\numexpr\XMLdepth-#1\relax\endcsname
- \else
- \ifcase\XMLancestormode\or\s!unknown\or\currentXMLelement\fi
- \fi}
-
-% \def\XMLpureancestor#1%
-% {\ifnum\numexpr(\XMLdepth-#1)>0
-% \csname\@@XMLdepth:\the\numexpr(\XMLdepth-#1)\endcsname
-% \fi}
-
-\def\XMLpureancestor#1%
- {\ifcase\numexpr\XMLdepth-#1\relax\or
- \csname\@@XMLdepth:\the\numexpr\XMLdepth-#1\relax\endcsname
- \fi}
-
-\def\XMLparent {\XMLancestor \plusone }
-\def\XMLself {\XMLancestor \zerocount}
-\def\XMLpureparent{\XMLpureancestor\plusone }
-\def\XMLpureself {\XMLpureancestor\zerocount}
-
-% \def\XMLpureancestor#1%
-% {\csname
-% \ifnum\numexpr(\XMLdepth-#1)>\zerocount
-% \@@XMLdepth:\the\numexpr(\XMLdepth-#1)%
-% \else
-% \s!empty
-% \fi
-% \endcsname}
-
-\def\XMLpureparent
- {\XMLpureancestor\plusone}
-
-% probleem: depth is vast en dus ook ancestor
-
-% \XMLinh{...} will backtrack definitions (given that the elements
-% use begin/end, the backtracking stops when a non-empty value is
-% encountered; maybe we will add some keyword (inherit) some day
-
-\def\XMLinhpar#1#2%
- {\@EA\ifx\csname\@@XMLvariable:#1:#2\endcsname\empty
- \@EA\pXMLinh
- \else
- \csname\@@XMLvariable:#1:#2\endcsname
- \@EA\gobbletwoarguments
- \fi\XMLdepth{#2}}
-
-\def\XMLinh
- {\XMLinhpar\currentXMLelement}
-
-% \def\pXMLinh#1%
-% {\@EA\ppXMLinh\@EA{\the\numexpr(#1-\plusone)}}
-
-\def\pXMLinh#1%
- {\@EA\ppXMLinh\@EA{\the\numexpr#1-\plusone\relax}}
-
-\def\ppXMLinh#1#2%
- {\@EA\ifx\csname\@@XMLvariable:#1:#2\endcsname\empty
- \ifnum#1>\plusone
- \@EAEAEA\pXMLinh
- \else
- \@EAEAEA\gobbletwoarguments
- \fi
- \else
- \csname\@@XMLvariable:#1:#2\endcsname
- \@EA\gobbletwoarguments
- \fi{#1}{#2}}
-
-% better
-%
-% \def\XMLpureancestor#1%
-% {\ifcsname\@@XMLdepth:\the\numexpr(\XMLdepth-#1)\endcsname
-% \csname\@@XMLdepth:\the\numexpr(\XMLdepth-#1)\endcsname
-% \fi}
-
-% replaces macro in xtag-ini: ! ! !
-
-\def\edefXMLop#1#2% \macro{att}
- {\edef#1%
- {\csname\ifcsname\@@XMLvariable:\ownXMLelement:#2\endcsname
- \@@XMLvariable:\ownXMLelement:#2\else\s!empty
- \fi\endcsname}}
-
-\def\edefXMLinh#1#2% \macro{att}
- {\edef#1{\XMLinh{#2}}}
-
-\def\edefXMLinhpar#1#2#3% \macro{tag}{att}
- {\edef#1{\XMLinhpar{#2}{#3}}}
-
-% \def\doifXMLopdef#1#2% \macro{att}
-% {\ifcsname\@@XMLvariable:\ownXMLelement:#1\endcsname
-% \@EA\let\@EA#1\csname\@@XMLvariable:\ownXMLelement:#1\endcsname
-% \expandafter\firstofoneargument
-% \else
-% \expandafter\gobbleoneargument
-% \fi}
-
-\fetchruntimecommand \tracebackXMLattribute {\f!xtagprefix\s!run}
-\fetchruntimecommand \showXMLinh {\f!xtagprefix\s!run}
-
-% \defineXMLenvironment[one]
-% {\beginXMLelement}
-% {\endXMLelement}
-%
-% \defineXMLenvironment[two]
-% {\beginXMLelement
-% \starttabulatie
-% \NC ancestor 1 \NC \XMLancestor{1} \NC \NR
-% \NC ancestor 2 \NC \XMLancestor{2} \NC \NR
-% \NC ancestor 3 \NC \XMLancestor{3} \NC \NR
-% \NC ancestor 4 \NC \XMLancestor{4} \NC \NR
-% \stoptabulatie}
-% {\endXMLelement}
-%
-% \startbuffer
-% <x:one> <x:two> <one> <two> </two> </one> </x:two> </x:one>
-% \stopbuffer
-%
-% {fallback A: \setXMLfallbackmode 0 \processXMLbuffer}\par
-% {fallback B: \setXMLfallbackmode 1 \processXMLbuffer}\par
-% {fallback C: \setXMLfallbackmode 2 \processXMLbuffer}\par
-
-% todo: split #1 into raws en reconstruct, set current etc, push and pop
-%
-% \def\beginXMLelement
-% {\dosingleempty\dobeginXMLelement}
-%
-% \def\dobeginXMLelement[#1]%
-% {\global\advance\XMLdepth 1
-% \global\@EA\let\csname\@@XMLdepth:\the\XMLdepth\endcsname\currentXMLelement
-% \global\@EA\edef\csname\@@XMLdopth:\the\XMLdepth\endcsname{\ownXMLelement}%
-% \iffirstargument\edef\ownXMLelement{#1}\fi}
-%
-% \def\endXMLelement
-% {\@EA\let\@EA\ownXMLelement\csname\@@XMLdopth:\the\XMLdepth\endcsname
-% \global\advance\XMLdepth -1 }
-
-%D \defineXMLenvironment[one]
-%D {\beginXMLelement}
-%D {\endXMLelement}
-%D
-%D \defineXMLenvironment[two]
-%D {\beginXMLelement
-%D \starttabulate
-%D \NC parent 1 \NC \XMLancestor{1} \NC \NR
-%D \NC parent 2 \NC \XMLancestor{2} \NC \NR
-%D \NC parent 3 \NC \XMLancestor{3} \NC \NR
-%D \NC parent 4 \NC \XMLancestor{4} \NC \NR
-%D \stoptabulate}
-%D {\endXMLelement}
-%D
-%D \startbuffer
-%D <x:one> <x:two> <one> <two> </two> </one> </x:two> </x:one>
-%D \stopbuffer
-%D
-%D fallback A: \setXMLfallbackmode0 \processXMLbuffer
-%D fallback B: \setXMLfallbackmode1 \processXMLbuffer
-%D fallback C: \setXMLfallbackmode2 \processXMLbuffer
-
-%D Here we do the namespace (re)mapping. More examples are
-%D provided in the manual.
-%D
-%D \starttyping
-%D \supportXMLnamespace [test] % needed to get a namespace working
-%D \skipXMLnamespace [test] % slow
-%D \ignoreXMLnamespace [test] % faster
-%D \defineXMLenvironment [rubish:itemize] {[} {]}
-%D \defineXMLenvironment [rubish:item] {(} {)}
-%D \remapXMLnamespace [crap] [rubish]
-%D \remapXMLnamespace [con] [context]
-%D \remapXMLurlspace [http://www.pragma-ade.com/dtd/context] [context]
-%D \autoXMLnamespace [context] % fallback
-%D \autoXMLnamespace [whatever] % second fall back
-%D \stoptyping
-
-\newtoks\autoXMLnamespaces
-
-%D The automatically mapped namespaces (the fallbacks so to
-%D day) are collected in a token list.
-
-\let\checkedXMLnamespace\empty
-
-\def\checkXMLnamespace#1%
- {\edef\checkedXMLnamespace{#1}%
- \ifcsname\@@XMLnamespace:\currentXMLnamespace\endcsname
- \csname\@@XMLnamespace:\currentXMLnamespace\endcsname
- % forced namespace
- \else\ifcsname\@@XMLelement:\currentXMLelement\endcsname
- % natural element
- \else\ifcsname\@@XMLelement:\currentXMLelement/\endcsname
- % natural element
- \else
- % locate fallback
- \donefalse\the\autoXMLnamespaces
- \fi\fi\fi}
-
-\def\skipXMLnamespace[#1]%
- {\letvalue{\@@XMLnamespace:#1}\doXMLskipnamespace}
-
-\def\doXMLskipnamespace
- {\long\@EA\def\csname\@@XMLelement:\checkedXMLnamespace\endcsname
- {\getXMLgroupedignore\checkedXMLnamespace}}
-
-\def\hideXMLnamespace[#1]%
- {\letvalue{\@@XMLnamespace:#1}\doXMLhidenamespace}
-
-\def\doXMLhidenamespace
- {\long\@EA\def\csname\@@XMLelement:\checkedXMLnamespace\endcsname
- {\redoXMLignore\checkedXMLnamespace}}
-
-\def\ignoreXMLnamespace[#1]%
- {\letvalue{\@@XMLnamespace:#1}\doXMLignorenamespace}
-
-\def\doXMLignorenamespace % \let binnen def
- {\long\@EA\def\csname\@@XMLelement:\checkedXMLnamespace\endcsname
- {\@EA\redoXMLignore\@EA{\checkedXMLnamespace}}} % EA ?
-
-\def\remapXMLnamespace
- {\dodoubleargument\doremapXMLnamespace}
-
-\def\doremapXMLnamespace[#1][#2]%
- {\ifsecondargument
- \setvalue{\@@XMLnamespace:#1}{\def\currentXMLnamespace{#2}}%
- \else
- \letvalue{\@@XMLnamespace:#1}\relax
- \fi}
-
-\def\supportXMLnamespace%
- {\dosingleargument\dosupportXMLnamespace}
-
-\def\dosupportXMLnamespace[#1]%
- {\setvalue{\@@XMLnamespace:#1}{\def\currentXMLnamespace{#1}}}
-
-\def\xremapXMLnamespace#1#2% fast internal one
- {\@EA\edef\csname\@@XMLnamespace:#1\endcsname
- {\def\noexpand\currentXMLnamespace{#2}}}
-
-\def\autoXMLnamespace[#1]%
- {\xautoXMLnamespace{#1}}
-
-\def\xautoXMLnamespace#1% fast internal one
- {\ifcsname\@@XMLnamespace-#1\endcsname\else
- \@EA\appendtoks\csname\@@XMLnamespace-#1\endcsname\to\autoXMLnamespaces
- \fi
- \@EA\edef\csname\@@XMLnamespace-#1\endcsname
- {\noexpand\doautoXMLnamespace{#1}}}
-
-\def\doautoXMLnamespace#1% \done is set before list
- {\ifdone\else
- \ifcsname\@@XMLelement:#1:\checkedXMLnamespace\endcsname
- \def\currentXMLnamespace{#1}%
- \else\ifcsname\@@XMLelement:#1:\checkedXMLnamespace/\endcsname
- \def\currentXMLnamespace{#1}%
- \fi\fi
- \fi}
-
-\def\resetXMLnamespace[#1]%
- {\letvalue{\@@XMLnamespace-#1}\gobbleoneargument
- \letvalue{\@@XMLnamespace:#1}\gobbleoneargument}
-
-\def\remapXMLurlspace
- {\dodoubleargument\doremapXMLurlspace}
-
-\def\doremapXMLurlspace[#1][#2]%
- {\setvalue{\@@XMLurlspace:#1}{#2}}
-
-%D Entities needs a bit more work, as well as a connection
-%D with the encoding handlers.
-
-% we need to be able to do:
-%
-% \defineXMLentity[amp] {\FunnyAmp} \def\FunnyAmp#1;{\getXMLentity{#1}}
-%
-% \defineXMLentity [pound] {(why not use euro's?)}
-%
-% \startXMLdata
-% test &amp;pound; test
-% \stopXMLdata
-%
-% so we need an ifless implementation
-%
-% also .. this should work:
-%
-% \defineXMLentity[ctx-var-textwidth] {\textwidth}
-%
-% \defineXMLcommand[test][width=\textwidth]
-% {\the\dimexpr\XMLop{width}\relax}
-%
-% \startXMLdata
-% <test width=".45&ctx-var-textwidth;"/>
-% <test width="&ctx-var-textwidth;"/>
-% \stopXMLdata
-
-% \eacute -> simplified -> e (via raw encoding)
-% -> raw -> eacute (via handler)
-%
-% naming sucks
-
-\newif\ifXMLrawentities % proper fallback
-\newif\ifXMLsimpleentities % last resort
-
-\def\simpleXMLencoding{raw}
-
-\ifnum\texengine=\luatexengine
- \def\simplifyXMLentities
- {\XMLsimpleentitiestrue}
-\else
- \def\simplifyXMLentities
- {\fastenableencoding\simpleXMLencoding
- \XMLsimpleentitiestrue}
-\fi
-
-\def\defineXMLentity
- {\dodoubleempty\dodefineXMLentity}
-
-\def\dodefineXMLentity[#1][#2]#3%
- {\ifsecondargument
- \defineXMLentities[#1]{#2}{#3}%
- \else
- \dododefineXMLentity{#1}{#3}%
- \fi}
-
-\def\defineXMLentities[#1]#2#3%
- {\dododefineXMLentity{#1}{\ifXMLsimpleentities#2\else#3\fi}}
-
-\def\dododefineXMLentity#1#2%
- {\unspaceargument#1\to\ascii % #1 can be {[} or so
- \long\setvalue{\@@XMLentity:\@EA\firstofoneargument\ascii}{#2}}
-
-\def\setXMLentity#1% fast one
- {\long\@EA\def\csname\@@XMLentity:#1\endcsname}
-
-%D May this wile become dodo (more in tune with rest);
-%D beware: also remapped in xtag-map.
-
-\def\doXMLentity#1#2;% interesting: # is now ##
- {\if\string#1\letterhash
- \@EA\parseXMLcharacter
- \else\ifXMLrawentities
- \@EAEAEA\firstofoneargument
- \else
- \@EAEAEA\executeXMLentity
- \fi\fi{#1#2}}
-
-%D Here we need to get rid of the double hash and act upon the
-%D number. Proper hex/oct number support can be implemented by
-%D redefining \type {\executeXMLcharacter}.
-
-% \def\parseXMLcharacter#1% gobble the ##x
-% {\@EA\executeXMLcharacter\@EA{\gobblethreearguments#1}}
-%
-% single hash now
-%
-% \def\parseXMLcharacter#1%
-% {\@EA\executeXMLcharacter\@EA{\gobbleoneargument#1}}
-%
-% \def\executeXMLcharacter#1% can be overloaded
-% {\ifnum"#1<256
-% \@EA\getXMLcharacter
-% \else\ifXMLrawentities
-% \@EAEAEA\firstofoneargument
-% \else
-% \@EAEAEA\unknownXMLcharacter
-% \fi\fi{\number"#1}}
-%
-% \unexpanded\def\getXMLcharacter#1{\rawcharacter{#1}}
-
-\def\parseXMLcharacter#1%
- {\@EA\executeXMLcharacter\gobbleoneargument#1\empty\relax}
-
-\def\executeXMLcharacter#1#2\relax
- {\if#1x%
- \@EA\noexecuteXMLhexcharacter
- \else
- \@EA\doexecuteXMLdeccharacter
- \fi#1#2\relax}
-
-\def\noexecuteXMLhexcharacter x#1\relax
- {\uppercase{\doexecuteXMLhexcharacter#1\relax}}
-
-% \unexpanded\def\getXMLcharacter#1%
-% {\ifXMLrawentities
-% \@EA\firstofoneargument
-% \else\ifcsname\@@XMLentity:#1\endcsname
-% \@EAEAEA\getXMLentity
-% \else
-% \@EAEAEA\unicodechar % was: \rawcharacter
-% \fi\fi{#1}}
-%
-% \def\doexecuteXMLhexcharacter#1\relax{\getXMLcharacter{"#1}}
-% \def\doexecuteXMLdeccharacter#1\relax{\getXMLcharacter {#1}}
-%
-% if we want to support x in entity overloading, we prefer:
-
-\unexpanded\def\getXMLdeccharacter#1%
- {\ifXMLrawentities
- \@EA\rawXMLdecentity
- \else\ifcsname\@@XMLentity:#1\endcsname
- \@EAEAEA\getXMLdecentity
- \else
- \@EAEAEA\unicodechar
- \fi\fi{#1}}
-
-\unexpanded\def\getXMLhexcharacter#1%
- {\ifXMLrawentities
- \@EA\rawXMLhexentity
- \else\ifcsname\@@XMLentity:x#1\endcsname
- \@EAEAEA\getXMLhexentity
- \else
- \@EAEAEA\unicodehexchar
- \fi\fi{#1}}
-
-\def\unicodehexchar#1{\unicodechar{"#1}}
-
-\let\getXMLcharacter\getXMLdeccharacter
-
-\def\getXMLdecentity#1{\getXMLentity {#1}}
-\def\getXMLhexentity#1{\getXMLentity{x#1}}
-
-\def\rawXMLdecentity#1{#1}
-\def\rawXMLhexentity#1{x#1}
-
-\def\doexecuteXMLhexcharacter#1\relax{\getXMLhexcharacter{#1}}
-\def\doexecuteXMLdeccharacter#1\relax{\getXMLdeccharacter{#1}}
-
-% \defineXMLentity[8218] {Adam}
-% \defineXMLentity[x007D]{Eve}
-%
-% \startbuffer
-% &#64; &#8216; &#8218; &#8220; &#8221; &#8222;&#8226;
-% &amp;
-% &#x0024; &#x007B; &#x007D; &#x00A0; &#x2026;
-% \stopbuffer
-%
-% \typebuffer \processXMLbuffer
-
-% left overs
-
-\def\unknownXMLcharacter#1{[#1]}
-
-\ifx\unicodechar\undefined\let\unicodechar\rawcharacter\fi % brrrr
-
-% \useXMLfilter[ent]
-%
-% \defineXMLsingular[test]{{\simplifyXMLentities\XMLpar{test}{bla}{}}}
-%
-% \startXMLdata
-% <test bla="&#xD3;bla&eacute;bla&tex;and$and&#xFC;ziezo&#xF99;" />
-% \stopXMLdata
-%
-% \defineXMLentity[45]{|it works|} % {|-|}
-%
-% \startXMLdata
-% text&#045;&#046;text
-% text&#x045;&#x046;text
-% \stopXMLdata
-
-%D May be this will change a bit ...
-
-\def\executeXMLentity#1% named one
- {\getXMLentity{#1}}
-
-%\def\expandedXMLentity#1%
-% {\ifcsname\@@XMLentity:#1\endcsname\csname\@@XMLentity:#1\endcsname\fi}
-%
-%\unexpanded\def\getXMLentity#1%
-% {\ifcsname\@@XMLentity:#1\endcsname\csname\@@XMLentity:#1\endcsname\fi}
-%
-%\def\expandedXMLentity#1%
-% {\csname\@@XMLentity:#1\endcsname}
-%
-%\unexpanded\def\getXMLentity#1%
-% {\csname\@@XMLentity:#1\endcsname}
-
-\doifundefined{autoXMLentitiestrue}{\expandafter\newif\csname ifautoXMLentities\endcsname} % fall back on context commands
-
-\def\expandedXMLentity#1%
- {\ifcsname\@@XMLentity:#1\endcsname \@EA \execXMLentity
- \else\ifautoXMLentities \@EAEAEA \autoXMLentity
- \else \@EAEAEA \crapXMLentity
- \fi\fi{#1}}
-
-\def\execXMLentity#1{\csname\@@XMLentity:#1\endcsname}
-\def\crapXMLentity#1{\inframed[\c!offset=.1ex]{\tttf#1}}
-\def\autoXMLentity#1{\ifcsname#1\endcsname\csname#1\endcsname\fi}
-
-\unexpanded\def\getXMLentity{\expandedXMLentity}
-
-%\def\doifXMLentityelse#1#2#3%
-% {\ifcsname\@@XMLentity:#1\endcsname#2\else#3\fi}
-
-\def\doifXMLentityelse#1%
- {\ifcsname\@@XMLentity:#1\endcsname
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-% \letvalue{1@2}\firstoftwoarguments
-% \letvalue{2@2}\secondoftwoarguments
-%
-% \def\doifXMLentityelse#1%
-% {\csname\ifcsname\@@XMLentity:#1\endcsname1\else2\fi @2\endcsname}
-
-% see \defineXML... commands:
-%
-% [key=val] => \presetXMLarguments{element} => default key/vals
-% [blabla] => \theXMLarguments{blabla} => user key/vals
-% [blabla] [key=val] => \presetXMLarguments{element} => default key/vals
-% \theXMLarguments{blabla} => user key/vals
-%
-% <element key="val"> stored in case of [blabla] else set as \XMLpar
-%
-% see m-steps for an example of usage
-
-\let\@@XMLmapmap\empty
-\newif\ifXMLnamespace
-
-\long\def\getXMLarguments#1#2%
- {\XMLnamespacefalse
- \dogetXMLarguments{#1}#2>}
-
-\let\dosetXMLattributeA\gobbleoneargument
-
-\def\dosetXMLattributeB#1%
- {\ifx\@@XMLspac\originalXMLnamespace
- \@EA\def\csname\@@XMLvariable:\@@XMLclass:\@@XMLname\endcsname{#1}%
- % maybe some day global handling here as well
- \fi}
-
-\def\dosetXMLattributeC
- {\@EA\def\csname\@@XMLvariable:\@@XMLclass\ifx\@@XMLspac
- \originalXMLnamespace\else:\@@XMLspac\fi:\@@XMLname\endcsname}
-
-\def\dosetXMLattributeD
- {\@EA\def\csname\@@XMLvariable:\@@XMLclass:\ifx\@@XMLspac
- \originalXMLnamespace\currentXMLnamespace\else\@@XMLspac\fi:\@@XMLname\endcsname}
-
-\def\setXMLattributemode#1%
- {\ifcase#1\relax
- \let\dosetXMLattribute\dosetXMLattributeA
- \or
- \let\dosetXMLattribute\dosetXMLattributeB
- \or
- \let\dosetXMLattribute\dosetXMLattributeC
- \or
- \let\dosetXMLattribute\dosetXMLattributeD
- \fi}
-
-\setXMLattributemode{2} % a reasonable default
-
-\let\@@XMLspac\empty % argumentnamespace
-
-\long\def\dogetXMLarguments#1%
- {\XMLtoks\emptytoks
- \ifcsname\@@XMLmap:#1\endcsname
- \let\dodosetXMLargument\dodosetXMLargumentB
- \else
- \def\@@XMLclass{#1}%
- \let\dodosetXMLargument\dodosetXMLargumentA
- \fi
- \let\dodoparseXMLarguments\doparseXMLarguments
- \doparseXMLarguments}
-
-% \long\def\doparseXMLarguments#1% space goes ok
-% {\if#1>%
-% \let\dodoparseXMLarguments\empty
-% \else\if#1=%
-% \edef\@@XMLname{\the\XMLtoks}%
-% \XMLtoks\emptytoks
-% \else\if#1"%
-% \let\dodoparseXMLarguments\dodoparseXMLargumentsD
-% \else\if#1'%
-% \let\dodoparseXMLarguments\dodoparseXMLargumentsS
-% \else\if#1:%
-% \XMLnamespacetrue
-% \edef\@@XMLspac{\the\XMLtoks}%
-% \XMLtoks\emptytoks
-% \else\if#1/%
-% \chardef\kindofXMLelement\emptyXMLtag
-% \else
-% \XMLtoks\@EA{\the\XMLtoks#1}%
-% \fi\fi\fi\fi\fi\fi
-% \dodoparseXMLarguments}
-%
-% The next speed optimization is suggested by Taco. Since we
-% are dealing with validated code, we can grab larger chunks.
-%
-% \long\def\doparseXMLarguments#1% space goes ok
-% {\if#1>%
-% \let\dodoparseXMLarguments\empty
-% \else\if#1/%
-% \chardef\kindofXMLelement\emptyXMLtag
-% \else
-% \XMLtoks{#1}%
-% \let\dodoparseXMLarguments\dodoparseXMLargumentsX
-% \fi\fi
-% \dodoparseXMLarguments}
-%
-% we can get rid of one more assignment
-
-\long\def\doparseXMLarguments#1% space goes ok
- {\if#1>%
- %\let\dodoparseXMLarguments\empty
- \expandafter\gobbleoneargument % speedup
- \else\if#1/%
- \chardef\kindofXMLelement\emptyXMLtag
- \else
- \XMLtoks{#1}%
- \let\dodoparseXMLarguments\dodoparseXMLargumentsX
- \fi\fi
- \dodoparseXMLarguments}
-
-% slightly faster:
-%
-% \long\def\doparseXMLarguments#1% space goes ok
-% {\if#1>%
-% \@EA\gobbleoneargument
-% \else\if#1/%
-% \chardef\kindofXMLelement\emptyXMLtag
-% \@EAEAEA\gobbletwoarguments
-% \else
-% \@EAEAEA\dodoparseXMLargumentsX
-% \fi\fi#1}
-%
-% \def\dodoparseXMLargumentsX#1=#2%
-% {\def\@@XMLname{#1}%
-% \getXMLNSSSS#1:\relax
-% \if#2"%
-% \expandafter\dodoparseXMLargumentsD
-% \else
-% \expandafter\dodoparseXMLargumentsS
-% \fi}
-
-\def\dodoparseXMLargumentsX#1=#2%
- {\edef\@@XMLname{\the\XMLtoks#1}%
- \@EA\getXMLNSSSS\@@XMLname:\relax
- \XMLtoks\emptytoks
- \if#2"%
- \let\dodoparseXMLarguments\dodoparseXMLargumentsD
- \else
- \let\dodoparseXMLarguments\dodoparseXMLargumentsS
- \fi
- \dodoparseXMLarguments}
-
-\def\gobbleuntilcolon#1:{#1}
-
-\def\getXMLNSSSS#1:#2\relax
- {\def\!!stringa{#2}%
- \ifx\!!stringa\empty \else
- \XMLnamespacetrue
- \edef\@@XMLname{\gobbleuntilcolon#2}%
- \edef\@@XMLspac{#1}%
- \fi}
-
-% ok ?
-%
-% \def\dodoparseXMLargumentsX#1=#2%
-% {\edef\@@XMLname{\the\XMLtoks#1}%
-% \@EA\getXMLNSSSS\@@XMLname:\relax
-% \XMLtoks\emptytoks
-% \if#2"%
-% \@EA\dodoparseXMLargumentsD
-% \else
-% \@EA\dodoparseXMLargumentsS
-% \fi}
-
-% Storing \type {#1} in a macro in order to minimize the
-% amount of data passed as argument does not improve
-% performance, so we keep the readable form.
-
-\def\dodoparseXMLargumentsD#1"{\dosetXMLargument{#1}}
-\def\dodoparseXMLargumentsS#1'{\dosetXMLargument{#1}}
-
-% the readable version
-%
-% \def\dosetXMLargument#1%
-% {\ifXMLnamespace
-% \ifx\@@XMLspac\@@XMLns
-% \checkXMLnamespaceattr{#1}% xmlns:\@@XMLname="#1"
-% \else
-% \dosetXMLattribute{#1}% some:\@@XMLname="#1"
-% \fi
-% \XMLnamespacefalse
-% \else\ifx\@@XMLname\@@XMLns
-% \checkXMLnamespaceattr{#1}% xmlns="#1"
-% \else
-% \dodosetXMLargument{#1}%
-% \fi\fi
-% \let\dodoparseXMLarguments\doparseXMLarguments
-% \dodoparseXMLarguments}
-%
-% the ugly alternative
-
-% \def\dosetXMLargument#1% ugly alternative
-% {\ifXMLnamespace
-% \XMLnamespacefalse
-% \ifx\@@XMLspac\@@XMLns
-% \@EAEAEA\checkXMLnamespaceattr % xmlns:\@@XMLname="#1"
-% \else
-% \@EAEAEA\dosetXMLattribute % some:\@@XMLname="#1"
-% \fi
-% \else\ifx\@@XMLname\@@XMLns
-% \@EAEAEA\checkXMLnamespaceattr % xmlns="#1"
-% \else
-% \@EAEAEA\dodosetXMLargument
-% \fi\fi{#1}%
-% \let\dodoparseXMLarguments\doparseXMLarguments
-% \dodoparseXMLarguments}
-
-\def\dosetXMLargument#1% ugly alternative
- {\ifXMLnamespace
- \XMLnamespacefalse
- \ifx\@@XMLspac\@@XMLns
- \@EAEAEA\checkXMLnamespaceattr % xmlns:\@@XMLname="#1"
- \else
- \@EAEAEA\dosetXMLattribute % some:\@@XMLname="#1"
- \fi
- \else\ifx\@@XMLname\@@XMLns
- \@EAEAEA\checkXMLnamespaceattr % xmlns="#1"
- \else
- \@EAEAEA\dodosetXMLargument
- \fi\fi{#1}%
- \dodocopyXMLargument
- \let\dodoparseXMLarguments\doparseXMLarguments
- \dodoparseXMLarguments}
-
-\let\dodocopyXMLargument\relax
-
-% \def\dododocopyXMLargument
-% {\@EA\let\csname\@@XMLvariable:\the\numexpr(\XMLdepth+1):\@@XMLname\@EA\endcsname
-% \csname\@@XMLvariable:\@@XMLclass:\@@XMLname\endcsname}
-
-\def\dododocopyXMLargument
- {\@EA\let\csname\@@XMLvariable:\the\numexpr\XMLdepth+\plusone\relax:\@@XMLname\@EA\endcsname
- \csname\@@XMLvariable:\@@XMLclass:\@@XMLname\endcsname}
-
-\def\copyXMLargumentindeed
- {\let\dodocopyXMLargument\dododocopyXMLargument
- \let\copyXMLargumentindeed\relax}
-
-\def\dodosetXMLargumentA
- {\@EA\def\csname\@@XMLvariable:\@@XMLclass:\@@XMLname\endcsname}
-
-% \def\dodosetXMLargumentB#1%
-% {\@EA\edef\csname\@@XMLmap:\@@XMLmapmap\endcsname
-% {\@EA\ifx\csname\@@XMLmap:\@@XMLmapmap\endcsname\empty\else
-% \csname\@@XMLmap:\@@XMLmapmap\endcsname,%
-% \fi
-% \@@XMLname=#1}}
-
-\def\dodosetXMLargumentB#1%
- {\@EA\edef\csname\@@XMLmap:\@@XMLmapmap\endcsname
- {\@EA\ifx\csname\@@XMLmap:\@@XMLmapmap\endcsname\empty\else
- \csname\@@XMLmap:\@@XMLmapmap\endcsname,%
- \fi
- \@@XMLname={#1}}} % {} is needed for aa='bb,cc'
-
-\appendtoks
- \resetXMLarguments{\rawXMLnamespace\rawXMLidentifier}%
-\to \everyXMLelement
-
-\def\resetXMLarguments#1%
- {\ifcsname\@@XMLmap:#1\endcsname
- \@EA\let\@EA\@@XMLmapmap\csname\@@XMLmap:#1\endcsname
- \@EA\let\csname\@@XMLmap:\@@XMLmapmap\endcsname\empty
- \fi}
-
-\def\theXMLarguments#1%
- {\ifcsname\@@XMLmap:#1\endcsname\csname\@@XMLmap:#1\endcsname\fi}
-
-\def\doexpandXMLvalue#1#2%
- {\ifcsname#2\endcsname
- \bgroup
- \enableXMLexpansion
- \let\getXMLentity\expandedXMLentity
- #1% simplify maps entities back to _ and alike
- \expanded{\global\globalscratchtoks{\csname#2\endcsname}}%
- \egroup
- \@EA\edef\csname#2\endcsname{\the\globalscratchtoks}%
- \fi}
-
-\def\expandXMLvalue {\doexpandXMLvalue\relax}
-\def\simplifyXMLvalue{\doexpandXMLvalue\XMLsimpleentitiestrue}
-
-\def\expandTEXpar #1#2{\expandXMLvalue{#1\interfaced{#2}}}
-\def\expandXMLpar #1#2{\expandXMLvalue{\@@XMLvariable:#1:#2}}
-\def\expandXMLarguments #1{\expandXMLvalue{\@@XMLmap:#1}}
-
-\def\simplifyTEXpar #1#2{\simplifyXMLvalue{#1\interfaced{#2}}}
-\def\simplifyXMLpar #1#2{\simplifyXMLvalue{\@@XMLvariable:#1:#2}}
-\def\simplifyXMLarguments#1{\simplifyXMLvalue{\@@XMLmap:#1}}
-
-%D \startbuffer[tex]
-%D \defineXMLsingular [fx:root]
-%D {\XMLNSpar{fx:root}{xml}{lang}{}
-%D \XMLpar{fx:root}{xml:lang}{}
-%D \starttabulate[||||]
-%D \HL
-%D \NC \bf mode \NC \bf call \NC \bf result \NC\NR
-%D \HL
-%D \NC 0\NC\asciistr{\XMLpar {fx:root} {crap} {}} \NC dirt \NC\NR
-%D \NC \NC\asciistr{\XMLpar {fx:root} {junk} {}} \NC \NC\NR
-%D \NC \NC\asciistr{\XMLNSpar {fx:root} {fx} {crap} {}}\NC \NC\NR
-%D \NC \NC\asciistr{\XMLNSpar {fx:root} {xml} {lang} {}}\NC \NC\NR
-%D \HL
-%D \NC 1\NC\asciistr{\XMLpar {fx:root} {crap} {}} \NC dirt \NC\NR
-%D \NC \NC\asciistr{\XMLpar {fx:root} {junk} {}} \NC junk \NC\NR
-%D \NC \NC\asciistr{\XMLNSpar {fx:root} {fx} {crap} {}}\NC \NC\NR
-%D \NC \NC\asciistr{\XMLNSpar {fx:root} {xml} {lang} {}}\NC \NC\NR
-%D \HL
-%D \NC 2\NC\asciistr{\XMLpar {fx:root} {crap} {}} \NC dirt \NC\NR
-%D \NC \NC\asciistr{\XMLpar {fx:root} {junk} {}} \NC junk \NC\NR
-%D \NC \NC\asciistr{\XMLNSpar {fx:root} {fx} {crap} {}}\NC \NC\NR
-%D \NC \NC\asciistr{\XMLNSpar {fx:root} {xml} {lang} {}}\NC en \NC\NR
-%D \HL
-%D \NC 3\NC\asciistr{\XMLpar {fx:root} {crap} {}} \NC dirt \NC\NR
-%D \NC \NC\asciistr{\XMLpar {fx:root} {junk} {}} \NC junk \NC\NR
-%D \NC \NC\asciistr{\XMLNSpar {fx:root} {fx} {crap} {}}\NC rubish\NC\NR
-%D \NC \NC\asciistr{\XMLNSpar {fx:root} {xml} {lang} {}}\NC en \NC\NR
-%D \HL
-%D \stoptabulate}
-%D
-%D \remapXMLurlspace [http://www.w3.org/1999/XSL/Format] [fx]
-%D \stopbuffer
-%D
-%D \startbuffer[xml]
-%D <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
-%D fo:crap="rubish"
-%D fo:junk="junk"
-%D xml:lang="en"
-%D crap="dirt" />
-%D \stopbuffer
-%D
-%D \typebuffer[tex] \processTEXbuffer[tex]
-%D \typebuffer[xml] \processXMLbuffer[xml]
-
-%D The previous macros were the basic parser and their working
-%D is left to the imagination of the reader. These macros
-%D will be improved over time. We use rather low level
-%D definitions so that the mappings will run as fast as
-%D possible.
-
-\bgroup \catcode`<=\activecatcode
-
-\long\gdef\dododefineXMLsingular#1#2%
- {\long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2}}
-
-\long\gdef\dododefineXMLcommand#1#2%
- {\long\@EA\def\csname\@@XMLelement:#1\endcsname{#2}%
- \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing
- \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2}}
-
-\long\gdef\dododefineXMLgrouped#1#2%
- {\long\@EA\def\csname\@@XMLelement:#1\endcsname{\groupedcommand{#2}\donothing\bgroup}%
- \@EA\let\csname\@@XMLelement:/#1\endcsname\egroup
- \@EA\let\csname\@@XMLelement:#1/\endcsname\donothing}
-
-\long\gdef\dododefineXMLargument#1#2% watch the {} around ##1
- {\long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLargument{#1}{#2}}
- \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing
- \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2{}}}
-
-\long\gdef\redoXMLargument#1#2% potential optimization: globalnext
- {\long\@EA\gdef\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>{#2{##1}}%
- \next}
-
-\long\gdef\dododefineXMLignore#1%
- {\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLignore{#1}}
- \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing
- \@EA\let\csname\@@XMLelement:#1/\endcsname\donothing}
-
-\long\gdef\redoXMLignore#1%
- {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>{}%
- \next}
-
-\long\gdef\dododefineXMLpickup#1#2#3%
- {\long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLpickup{#1}{#2}{#3}}
- \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing
- \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2#3}}
-
-\long\gdef\redoXMLpickup#1#2#3%
- {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>{#2##1#3}%
- \next}
-
-\long\gdef\dododefineXMLenvironment#1#2#3%
- {\long\@EA\def\csname\@@XMLelement:#1\endcsname{#2}%
- \long\@EA\def\csname\@@XMLelement:/#1\endcsname{#3}%
- \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2#3}}
-
-\long\gdef\dododefineXMLsave#1%
- {\@EA\let\csname\@@XMLdata:#1\endcsname\longempty
- \long\@EA\def\csname\@@XMLelement:#1\endcsname {\redoXMLsave{#1}}%
- \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing
- \long\@EA\def\csname\@@XMLelement:#1/\endcsname{\@EA\let\csname\@@XMLdata:#1\endcsname\longempty}}
-
-\long\gdef\dododefineXMLsavecontent#1#2%
- {\long\@EA\def\csname\@@XMLdata:#1\endcsname{#2}%
- \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLsave{#1}}%
- \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing
- \long\@EA\def\csname\@@XMLelement:#1/\endcsname{\@EA\let\csname\@@XMLdata:#1\endcsname\longempty}}
-
-\long\gdef\redoXMLsave#1%
- {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>%
- {\long\@EA\def\csname\@@XMLdata:#1\endcsname{##1}}%
- \next}
-
-\long\gdef\dododefineXMLgsave#1%
- {\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty
- \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLgsave{#1}}%
- \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing
- \long\@EA\def\csname\@@XMLelement:#1/\endcsname{\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty}}
-
-\long\gdef\dododefineXMLgsavecontent#1#2%
- {\long\@EA\gdef\csname\@@XMLdata:#1\endcsname{#2}%
- \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLgsave{#1}}%
- \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing
- \long\@EA\def\csname\@@XMLelement:#1/\endcsname{\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty}}
-
-\long\gdef\redoXMLgsave#1%
- {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>%
- {\long\@EA\gdef\csname\@@XMLdata:#1\endcsname{##1}}%
- \next}
-
-\long\gdef\dododefineXMLenvironmentsave#1#2#3%
- {\@EA\let\csname\@@XMLdata:#1\endcsname\longempty
- \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLenvironmentsave{#1}{#2}{#3}}%
- \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing
- \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2\@EA\let\csname\@@XMLdata:#1\endcsname\longempty#3}}
-
-% maybe \globalnext
-
-\long\gdef\redoXMLenvironmentsave#1#2#3%
- {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>%
- {#2\long\@EA\def\csname\@@XMLdata:#1\endcsname{##1}#3}%
- \next}
-
-\long\gdef\dododefineXMLenvironmentgsave#1#2#3%
- {\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty
- \long\@EA\def\csname\@@XMLelement:#1\endcsname{\redoXMLenvironmentgsave{#1}{#2}{#3}}%
- \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing
- \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2\global\@EA\let\csname\@@XMLdata:#1\endcsname\longempty#3}}
-
-\long\gdef\redoXMLenvironmentgsave#1#2#3%
- {\long\@EA\def\@EA\next\@EA##\@EA1\@EA<\@EA/\currentXMLelement>%
- {#2\long\@EA\gdef\csname\@@XMLdata:#1\endcsname{##1}#3}%
- \next}
-
-\long\gdef\dododefineXMLprocess#1%
- {\@EA\let\csname\@@XMLelement:#1\endcsname\donothing
- \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing
- \@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{#2#3}}
-
-\long\gdef\dododefineXMLnestedargument#1#2%
- {\long\@EA\def\csname\@@XMLelement:#1\endcsname{\getXMLgroupedargument{#1}{#2}}%
- \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing
- \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2{}}}
-
-\long\gdef\dododefineXMLnestedsave#1%
- {\@EA\let\csname\@@XMLdata:#1\endcsname\longempty
- \long\@EA\def\csname\@@XMLelement:#1\endcsname {\getXMLgroupednestedsave{#1}}%
- \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing
- \long\@EA\def\csname\@@XMLelement:#1/\endcsname{\@EA\let\csname\@@XMLdata:#1\endcsname\longempty}}
-
-\long\unexpanded\gdef\getXMLgroupednestedsave#1%
- {\collectXMLgroupedtrue
- \long\def\dodogetgrouped{\long\@EA\edef\csname\@@XMLdata:#1\endcsname{\the\groupedtoks}}%
- \getXMLgrouped{#1}}
-
-\long\gdef\dododefineXMLnestedenvironmentsave#1#2#3%
- {\@EA\let\csname\@@XMLdata:#1\endcsname\longempty
- \long\@EA\def\csname\@@XMLelement:#1\endcsname {\getXMLgroupednestedenvironmentsave{#1}{#2}{#3}}%
- \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing
- \long\@EA\def\csname\@@XMLelement:#1/\endcsname{#2\@EA\let\csname\@@XMLdata:#1\endcsname\longempty#3}}
-
-\long\unexpanded\gdef\getXMLgroupednestedenvironmentsave#1#2#3%
- {\collectXMLgroupedtrue
- \long\def\dodogetgrouped{#2\long\@EA\edef\csname\@@XMLdata:#1\endcsname{\the\groupedtoks}#3}%
- \getXMLgrouped{#1}}
-
-\egroup
-
-%D The high level definition macros.
-
-\def\defineXMLsingular {\dotripleempty\dodefineXMLsingular}
-\def\defineXMLcommand {\dotripleempty\dodefineXMLcommand}
-\def\defineXMLgrouped {\dotripleempty\dodefineXMLgrouped}
-\def\defineXMLargument {\dotripleempty\dodefineXMLargument}
-\def\defineXMLignore {\dotripleempty\dodefineXMLignore}
-\def\defineXMLpickup {\dotripleempty\dodefineXMLpickup}
-\def\defineXMLenvironment {\dotripleempty\dodefineXMLenvironment}
-\def\defineXMLsave {\dotripleempty\dodefineXMLsave}
-\def\defineXMLsavecontent {\dotripleempty\dodefineXMLsavecontent}
-\def\defineXMLgsave {\dotripleempty\dodefineXMLgsave}
-\def\defineXMLgsavecontent {\dotripleempty\dodefineXMLgsavecontent}
-\def\defineXMLenvironmentsave {\dotripleempty\dodefineXMLenvironmentsave}
-\def\defineXMLenvironmentgsave {\dotripleempty\dodefineXMLenvironmentgsave}
-\def\defineXMLprocess {\dotripleempty\dodefineXMLprocess}
-\def\defineXMLnested {\dotripleempty\dodefineXMLnestedenvironment}
-\def\defineXMLnestedenvironment {\dotripleempty\dodefineXMLnestedenvironment}
-\def\defineXMLnestedargument {\dotripleempty\dodefineXMLnestedargument}
-\def\defineXMLnestedsave {\dotripleempty\dodefineXMLnestedsave}
-\def\defineXMLnestedenvironmentsave{\dotripleempty\dodefineXMLnestedenvironmentsave}
-
-%D We can nill definitions with:
-
-\def\resetXMLelement[#1]{\dododefineXMLprocess{#1}}
-
-%D This is equivalent to:
-%D
-%D \starttyping
-%D \def\resetXMLelement[#1]% handy in case only singular
-%D {\@EA\let\csname\@@XMLelement:#1\endcsname \donothing
-%D \@EA\let\csname\@@XMLelement:/#1\endcsname\donothing
-%D \@EA\let\csname\@@XMLelement:#1/\endcsname\donothing}
-%D \stoptyping
-
-% push is (not yet) a real push, so:
-
-\def\defineXMLpush {\dotripleempty\dodefineXMLsave}
-\def\defineXMLenvironmentpush{\dotripleempty\dodefineXMLenvironmentsave}
-
-% goes for all types
-
-\long\def\dodefineXMLsingular[#1][#2][#3]#4%
- {\defineXMLmethod\dododefineXMLsingular{#1}{#2}{#3}{#4}{}}
-
-\long\def\dodefineXMLcommand[#1][#2][#3]#4%
- {\defineXMLmethod\dododefineXMLcommand{#1}{#2}{#3}{#4}{}}
-
-\long\def\dodefineXMLgrouped[#1][#2][#3]#4%
- {\defineXMLmethod\dododefineXMLgrouped{#1}{#2}{#3}{#4}{}}
-
-\long\def\dodefineXMLargument[#1][#2][#3]#4%
- {\defineXMLmethod\dododefineXMLargument{#1}{#2}{#3}{#4}{}}
-
-\long\def\dodefineXMLignore[#1][#2][#3]%
- {\defineXMLmethod\dododefineXMLignore{#1}{#2}{#3}{}{}}
-
-\long\def\dodefineXMLpickup[#1][#2][#3]#4#5%
- {\defineXMLmethod\dododefineXMLpickup{#1}{#2}{#3}{#4}{#5}}
-
-\long\def\dodefineXMLenvironment[#1][#2][#3]#4#5%
- {\defineXMLmethod\dododefineXMLenvironment{#1}{#2}{#3}{#4}{#5}}
-
-\long\def\dodefineXMLsave[#1][#2][#3]%
- {\defineXMLmethod\dododefineXMLsave{#1}{#2}{#3}{}{}}
-
-\long\def\dodefineXMLsavecontent[#1][#2][#3]#4%
- {\defineXMLmethod\dododefineXMLsavecontent{#1}{#2}{#3}{#4}{}}
-
-\long\def\dodefineXMLgsave[#1][#2][#3]%
- {\defineXMLmethod\dododefineXMLgsave{#1}{#2}{#3}{}{}}
-
-\long\def\dodefineXMLgsavecontent[#1][#2][#3]#4%
- {\defineXMLmethod\dododefineXMLgsavecontent{#1}{#2}{#3}{#4}{}}
-
-\long\def\dodefineXMLenvironmentsave[#1][#2][#3]#4#5%
- {\defineXMLmethod\dododefineXMLenvironmentsave{#1}{#2}{#3}{#4}{#5}}
-
-\long\def\dodefineXMLenvironmentgsave[#1][#2][#3]#4#5%
- {\defineXMLmethod\dododefineXMLenvironmentgsave{#1}{#2}{#3}{#4}{#5}}
-
-\long\def\dodefineXMLprocess[#1][#2][#3]%
- {\defineXMLmethod\dododefineXMLprocess{#1}{#2}{#3}{}{}}
-
-\long\def\dodefineXMLnestedenvironment[#1][#2][#3]#4#5%
- {\defineXMLmethod\dododefineXMLnestedenvironment{#1}{#2}{#3}{#4}{#5}}
-
-\long\def\dodefineXMLnestedargument[#1][#2][#3]#4%
- {\defineXMLmethod\dododefineXMLnestedargument{#1}{#2}{#3}{#4}{}}
-
-\long\def\dodefineXMLnestedsave[#1][#2][#3]%
- {\defineXMLmethod\dododefineXMLnestedsave{#1}{#2}{#3}{}{}}
-
-\long\def\dodefineXMLnestedenvironmentsave[#1][#2][#3]#4#5%
- {\defineXMLmethod\dododefineXMLnestedenvironmentsave{#1}{#2}{#3}{#4}{#5}}
-
-% [key=val] => \presetXMLarguments{element} => default key/vals
-% [blabla] => \theXMLarguments{blabla} => user key/vals
-% [blabla] [key=val] => \presetXMLarguments{element} => default key/vals
-% \theXMLarguments{blabla} => user key/vals
-
-% command element [map] [parlst] begin end
-
-\long\def\defineXMLmethod#1#2#3#4#5#6%
- {\ifsecondargument
- \setXMLarguments{#2}{#3}{#4}%
- \else
- \resetXMLarguments{#2}% new
- \fi
- #1{#2}{#5}{#6}}
-
-%D Arguments (attributes) \unknown
-
-% \long\def\setXMLarguments#1#2#3% element [tag] settings
-% {\doifassignmentelse{#2}
-% {\long\setvalue{\@@XMLpars:#1}{\getrawparameters[\@@XMLvariable:#1:][#2]}}
-% {\long\setvalue{\@@XMLmap :#1}{#2}% later we can init vars by this name
-% \doifsomething{#3}{\long\setvalue{\@@XMLpars:#1}{\getrawparameters[#2][#3]}}}}
-
-\long\def\setXMLarguments#1#2#3% element [tag] settings
- {\doifassignmentelse{#2} % ROOM FOR OPTIMIZATION
- {\letbeundefined{\@@XMLmap:#1}%
- \long\setvalue{\@@XMLpars:#1}{\getrawparameters[\@@XMLvariable:#1:][#2]}}
- {\long\setvalue{\@@XMLmap:#1}{#2}% later we can init vars by this name
- \doifsomething{#3}{\long\setvalue{\@@XMLpars:#1}{\getrawparameters[#2][#3]}}}}
-
-\def\presetXMLarguments#1%
- {\csname\@@XMLpars:\rawXMLnamespace#1\endcsname} % == \getvalue{}
-
-\prependtoks
- \presetXMLarguments\rawXMLidentifier
-\to \everyXMLelement
-
-%D We now overload the previously defined argument setter by one
-%D that is faster when definitions are surrounded by
-%D
-%D \starttyping
-%D \startXMLcompiling ... \stopXMLcompiling
-%D \stoptyping
-%D
-%D This method is twice as fast on (for instance) 100K calls to
-%D an empty element with 10 arguments.
-
-% \long\def\prepareXMLargument#1#2#3%
-% {\scratchtoks\expandafter{\the\scratchtoks\@EA\def\csname#1#2\endcsname{#3}}}
-
-% \long\def\prepareXMLargument#1#2#3%
-% {\scratchtoks\@EA\@EA\@EA{\@EA\the\@EA\scratchtoks\@EA\def\csname\@@XMLvariable:#1:#2\endcsname{#3}}}
-
-% \let\@@globalprefix\empty
-
-% \long\def\prepareXMLargument#1#2#3%
-% {\expanded{\scratchtoks
-% {\the\scratchtoks
-% \def\@EA\noexpand\csname\@@XMLvariable:#1:#2\endcsname{#3}%
-% \noexpand\@EA\let\noexpand\csname\@@XMLvariable:\noexpand\the\numexpr(\XMLdepth+1):#2\endcsname
-% \@EA\noexpand\csname\@@XMLvariable:#1:#2\endcsname}}}
-
-\long\def\prepareXMLargument#1#2#3%
- {\expanded{\scratchtoks
- {\the\scratchtoks
- \def\@EA\noexpand\csname\@@XMLvariable:#1:#2\endcsname{#3}%
- \noexpand\@EA\let\noexpand\csname\@@XMLvariable:\noexpand\the\numexpr\XMLdepth+\plusone\relax:#2\endcsname
- \@EA\noexpand\csname\@@XMLvariable:#1:#2\endcsname}}}
-
-\long\def\setXMLargumentsN#1#2#3% element [tag] settings
- {\doifassignmentelse{#2}
- {\letbeundefined{\@@XMLmap:#1}%
- \long\setvalue{\@@XMLpars:#1}{\getrawparameters[\@@XMLvariable:#1:][#2]}}
- {\long\setvalue{\@@XMLmap:#1}{#2}% later we can init vars by this name
- \doifsomething{#3}{\long\setvalue{\@@XMLpars:#1}{\getrawparameters[#2][#3]}}}}
-
-\long\def\setXMLargumentsP#1#2#3% element settings empty (we cannot test for assignment)
- {\letbeundefined{\@@XMLmap:#1}%
- \bgroup
- %def\XMLinheritance{\noexpand\XMLinheritance}
- \def\XMLop##1{\noexpand\XMLpar{#1}{##1}{}}%
- \def\XMLpar{\noexpand\XMLpar}%
- \def\XMLanc{\noexpand\XMLanc}%
- \def\XMLinh{\noexpand\XMLinh}%
- \xdef\!!XMLattr{[#1][#2]}%
- \scratchtoks\emptytoks
- \@EA\dogetparameters\@EA\prepareXMLargument\!!XMLattr
- \xdef\globalnext{\the\scratchtoks}%
- \egroup
- \letvalue{\@@XMLpars:#1}\globalnext
- \globallet\globalnext\relax}
-
-\def\defineXMLattributeset{\dodoubleargument\dodefineXMLattributeset}
-\def\extendXMLattributeset{\dodoubleargument\doextendXMLattributeset}
-
-\def\dodefineXMLattributeset[#1][#2]{\setvalue {\@@XMLpars::#1}{#2}}
-\def\doextendXMLattributeset[#1][#2]{\appendvalue{\@@XMLpars::#1}{,#2}}
-
-\def\XMLattributeset #1{\executeifdefined{\@@XMLpars::#1}\empty}
-%def\XMLinheritance #1{\executeifdefined{\@@XMLpars:#1}\empty}
-\def\showXMLattributes#1{\showvalue{\@@XMLpars:#1}}
-
-\chardef\@@precompile\zerocount
-
-\def\setXMLarguments
- {\ifcase\@@precompile
- \expandafter\setXMLargumentsN
- \else
- \expandafter\setXMLargumentsP
- \fi}
-
-\def\startXMLcompiling
- {\dosingleargument\dostartXMLcompiling}
-
-% \def\dostartXMLcompiling[#1]%
-% {\iffirstargument
-% \copyXMLargumentindeed % when needed, from now on -)
-% \def\@@globalprefix{#1}%
-% \fi
-% \chardef\@@precompile\plusone}
-
-\def\dostartXMLcompiling[#1]%
- {\doif{#1}\v!inherit
- \copyXMLargumentindeed
- \chardef\@@precompile\plusone}
-
-\def\stopXMLcompiling
- {\chardef\@@precompile\zerocount} % no \let\@@globalprefix\empty
-
-%D Interesting what kind of things are needed \unknown
-
-\appendtoks
- \ifdefined\disablelanguagespecifics\disablelanguagespecifics\fi
-\to \everyenableXML
-
-\long\def\longempty{}
-\long\def\longspace{ }
-
-% \def\doifelseXMLdata#1% always empty at start [gets a long assignment]
-% {\@EA\ifx\csname\@@XMLdata:#1\endcsname\longempty
-% \expandafter\secondoftwoarguments
-% \else
-% \expandafter\firstoftwoarguments
-% \fi}
-%
-% \def\doifXMLdata#1% always empty at start [gets a long assignment]
-% {\@EA\ifx\csname\@@XMLdata:#1\endcsname\longempty
-% \expandafter\gobbleoneargument
-% \else
-% \expandafter\firstofoneargument
-% \fi}
-%
-% \let\doifXMLdataelse\doifelseXMLdata
-
-\def\doifelseXMLdata#1% always empty at start [gets a long assignment]
- {\@EA\ifx\csname\@@XMLdata:#1\endcsname\longempty
- \expandafter\secondoftwoarguments
- \else
- \expandafter\firstoftwoarguments
- \fi}
-
-\def\doifXMLdata#1% always empty at start [gets a long assignment]
- {\@EA\ifx\csname\@@XMLdata:#1\endcsname\longempty
- \expandafter\gobbleoneargument
- \else
- \expandafter\firstofoneargument
- \fi}
-
-\let\doifXMLdataelse\doifelseXMLdata
-
-\def\doifelseXMLempty#1%
- {\@EA\ifx\csname\@@XMLdata:#1\endcsname\longempty
- \expandafter\firstoftwoarguments
- \else\@EA\ifx\csname\@@XMLdata:#1\endcsname\longspace
- \expandthree\firstoftwoarguments
- \else
- \expandthree\secondoftwoarguments
- \fi\fi}
-
-% test case:
-%
-% \defineXMLenvironmentsave[test]
-% {}
-% {\message{[\XMLflush{test}]}
-% \message{\doifelseXMLdata {test}{}{no }data}
-% \message{/}
-% \message{\doifelseXMLempty{test}{}{not }empty}
-% \wait}
-%
-% \startXMLdata
-% <test>xxx</test>
-% <test></test>
-% <test> </test>
-% <test> </test>
-% <test> </test>
-% <test> x </test>
-% \stopXMLdata
-
-% \def\XMLflush#1% one level
-% {\csname\@@XMLdata:#1\endcsname}
-
-% evt meer van dit gedoe en alle \longempty's vervangen
-
-\def\XMLflush#1% one level
- {\csname\ifcsname\@@XMLdata:#1\endcsname\@@XMLdata:#1\else\s!empty\fi\endcsname}
-
-%D \starttyping
-%D \defineXMLenvironmentsave[formula]{}{$\XMLtexdata{formula}$}
-%D
-%D \startXMLdata
-%D <formula>t+3+x+t\neq m\alpha\frac\theta\hbar</formula>
-%D \stopXMLdata
-%D \stoptyping
-
-\def\XMLtexdata#1%
- {\begingroup
- \disableXML
- \scantokens\@EA\@EA\@EA{\csname\@@XMLdata:#1\endcsname}%
- \endgroup}
-
-\def\XMLflushdata#1% see m-steps for usage
- {\@EA\ifx\csname\@@XMLdata:#1\endcsname\longempty\else
- %\@EAEAEA\XMLdata\@EA\@EA\@EA{\csname\@@XMLdata:#1\endcsname}%
- \@EA\XMLdata\csname\@@XMLdata:#1\endcsname
- \fi}
-
-\def\XMLflushasis#1%
- {\detokenize\@EAEAEA{\csname\@@XMLdata:#1\endcsname}}
-
-\let\XMLpop \XMLflush
-\let\XMLpopdata\XMLflushdata
-
-\def\XMLappend#1#2% let to empty expands to nothing -)
- {\long\@EA\edef\csname\@@XMLdata:#1\endcsname{\csname\@@XMLdata:#1\endcsname#2}}
-
-\def\XMLprepend#1#2% let to empty expands to nothing -)
- {\long\@EA\edef\csname\@@XMLdata:#1\endcsname{#2\csname\@@XMLdata:#1\endcsname}}
-
-\def\XMLerase#1%
- {\@EA\let\csname\@@XMLdata:#1\endcsname\longempty}
-
-\def\XMLassign#1%
- {\long\@EA\def\csname\@@XMLdata:#1\endcsname}
-
-\def\dontparseXMLelement#1>{}
-
-\def\simplifyXMLelements{\let\parseXMLelement\dontparseXMLelement}
-
-\def\defXMLstring#1#2%
- {\bgroup
- \enableXMLexpansion
- \simplifyXMLelements
- \let\getXMLentity\firstofoneargument
- \XMLrawentitiestrue
- \utfunicodetracer\plusseven % new
- \xdef\@@XML@@string{\csname\@@XMLdata:#2\endcsname}%
- \egroup
- \defconvertedcommand#1\@@XML@@string}
-
-% this has to expand nicely:
-%
-% <!DOCTYPE XXX SYSTEM "xxx" [ <!ENTITY aaa "../www/"> <!ENTITY bbb SYSTEM "&aaa;mmm.eps"> ]>
-%
-% so keep the following as is!
-
-\def\defXMLclean#1#2%
- {\bgroup
- \enableXMLexpansion
- \simplifyXMLelements
- \simplifyXMLentities
- \utfunicodetracer\plusseven % new
- \let\getXMLentity\expandedXMLentity % should this go in \simplify ?
- \xdef\@@XML@@string{\csname\@@XMLdata:#2\endcsname}%
- \egroup
- \defconvertedcommand#1\@@XML@@string}
-
-\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}}
-
-\def\XMLunspace#1% kan sneller
- {\@EA\ifx\csname\@@XMLdata:#1\endcsname\longempty\else
- \long\@EA\edef\csname\@@XMLdata:#1\endcsname
- {\@EAEAEA\dounspaced\csname\@@XMLdata:#1\endcsname\end}%
- \fi}
-
-\chardef\asciispacecode=32
-
-\def\defXMLlowerclean#1% lowercase ! evt tzt upper too
- {\bgroup
- \lccode`\#\asciispacecode
- \lccode`\$\asciispacecode
- \lccode`\%\asciispacecode
- \lccode`\\\asciispacecode
- \lccode`\^\asciispacecode
- \lccode`\_\asciispacecode
- \lccode`\{\asciispacecode
- \lccode`\}\asciispacecode
- \lccode`\|\asciispacecode
- \lccode`\~\asciispacecode
- \@EA\lowercase\@EA{\@EA\xdef\@EA#1\@EA{#1}}%
- \egroup}
-
-\def\processXMLparelse#1#2#3#4%
- {\processaction
- [\XMLpar{#1}{#2}{}]
- [#3,\s!unknown=>{#4},\s!default={#4}]}
-
-%D We can pick up key|/|value pairs, but we still need a way
-%D to process these.
-
-% bugged
-%
-% \def\mapXMLvalue#1#2#3% td align center -> middle
-% {\setvalue{\@@XMLvalue:#1:#2:#3}}
-
-\def\mapXMLvalue#1#2#3% td:align center -> middle
- {\setvalue{\@@XMLvalue:#1:#2}{#3}} % keep #3 to grab spaces
-
-\def\XMLvar#1#2#3% td align center
- {\ifcsname\@@XMLvariable:#1:#2\endcsname
- \XMLval{#1}{#2}{\csname\@@XMLvariable:#1:#2\endcsname}%
- \else
- \XMLval{#1}{#2}{#3}% evt inline code
- \fi}
-
-% \def\XMLvar#1#2#3% td align center
-% {\XMLval{#1}{#2}{\ifcsname\@@XMLvariable:#1:#2\endcsname
-% \csname\@@XMLvariable:#1:#2\endcsname\else#3\fi}}
-
-% \def\XMLval#1#2#3% td:align value default
-% {\ifcsname\@@XMLvalue:#1:#2\endcsname
-% \csname\@@XMLvalue:#1:#2\endcsname
-% \else
-% #3%
-% \fi}
-%
-% The next one permits commands instead of strings in #3
-
-\def\XMLval#1#2% #1=td:align #2=value #3=default
- {\ifcsname\@@XMLvalue:#1:#2\endcsname
- \@EA\firstoftwoarguments
- \else
- \@EA\secondoftwoarguments
- \fi
- {\csname\@@XMLvalue:#1:#2\endcsname}}
-
-\def\XMLpar#1#2#3%
- {\ifcsname\@@XMLvariable:#1:#2\endcsname
- \csname\@@XMLvariable:#1:#2\endcsname
- \else
- #3%
- \fi}
-
-\def\XMLNSpar#1#2#3#4% element namespace name default
- {\ifcsname\@@XMLvariable:#1:#2:#3\endcsname
- \csname\@@XMLvariable:#1:#2:#3\endcsname
- \else
- #4%
- \fi}
-
-% \def\setXMLpar#1#2%
-% {\@EA\def\csname\@@XMLvariable:#1:#2\endcsname}
-
-\def\letXMLpar #1#2{\@EA \let\csname\@@XMLvariable:#1:#2\endcsname}
-\def\setXMLpar #1#2{\@EA \def\csname\@@XMLvariable:#1:#2\endcsname}
-\def\setXMLepar#1#2{\@EA\edef\csname\@@XMLvariable:#1:#2\endcsname}
-
-% ancestor arguments:
-%
-% \defineXMLenvironment
-% [fo:root]
-% [test=unset]
-% {\beginXMLelement}
-% {\endXMLelement}
-%
-% \defineXMLenvironment
-% [fo:block-container]
-% [test=oeps]
-% {\beginXMLelement}
-% {\endXMLelement}
-%
-% \defineXMLenvironment
-% [fo:block]
-% {\beginXMLelement
-% \begingroup}
-% {\endgroup
-% \XMLanc{test}{}
-% \endXMLelement}
-%
-% \startXMLdata
-% <fo:root>
-% <fo:block-container test='first'><fo:block test='second'>second:</fo:block></fo:block-container>
-% <fo:block>unset:</fo:block>
-% <fo:block test='outer'><fo:block test='nested'><fo:block>deep:</fo:block>nested:</fo:block>outer:</fo:block>
-% <fo:block test='last'>last:</fo:block>
-% </fo:root>
-% \stopXMLdata
-%
-% \startXMLdata
-% <fo:root>
-% <fo:block-container test='first'><fo:block>second:</fo:block></fo:block-container>
-% <fo:block>unset:</fo:block>
-% <fo:block test='second'><fo:block><fo:block>deep:</fo:block>nested:</fo:block>outer:</fo:block>
-% <fo:block>last:</fo:block>
-% </fo:root>
-% \stopXMLdata
-%
-% \startXMLdata
-% <fo:root>
-% <fo:block-container test='first'><fo:block>second:</fo:block></fo:block-container>
-% <fo:block>unset:</fo:block>
-% <fo:block><fo:block><fo:block>deep:</fo:block>nested:</fo:block>outer:</fo:block>
-% <fo:block>last:</fo:block>
-% </fo:root>
-% \stopXMLdata
-
-% dit werkt alleen ok in niet <a> <b> <b> ... situaties omdat anders
-% de laatste b de attributen van de vorige heeft:
-
-\def\XMLanc#1%
- {\ifcsname\@@XMLvariable:\currentXMLelement:#1\endcsname % \ownXMLelement
- \csname\@@XMLvariable:\currentXMLelement:#1\endcsname % \ownXMLelement
- \@EA\gobblethreearguments
- \else
- \@EA\pXMLanc
- \fi\XMLdepth{#1}}
-
-% \def\pXMLanc#1%
-% {\@EA\ppXMLanc\@EA{\the\numexpr(#1-\plusone)}}
-
-\def\pXMLanc#1%
- {\@EA\ppXMLanc\@EA{\the\numexpr#1-\plusone\relax}}
-
-\def\ppXMLanc#1#2#3%
- {\ifcsname\@@XMLdepth:#1\endcsname % is er altijd dus redundant
- \ifcsname\@@XMLvariable:\csname\@@XMLdepth:#1\endcsname:#2\endcsname
- \csname\@@XMLvariable:\csname\@@XMLdepth:#1\endcsname:#2\endcsname
- \@EAEAEA\gobblethreearguments
- \else
- \@EAEAEA\pppXMLanc
- \fi
- \else
- \@EA\pppXMLanc
- \fi{#1}{#2}{#3}}
-
-\def\pppXMLanc#1%
- {\ifnum#1>\zerocount
- \@EA\pXMLanc
- \else
- \@EA\thirdofthreearguments
- \fi{#1}}
-
-%D Experimental (not sure if this will stay):
-%D
-%D \starttyping
-%D \startdefineXMLhandlers[one,two]
-%D
-%D \defineXMLenvironment[a=b,c=\XMLop{a}]
-%D {}{}
-%D
-%D \stopdefineXMLhandlers
-%D \stoptyping
-
-\long\def\startdefineXMLhandlers
- {\bgroup\catcode\endoflineasciicode\spacecatcode
- \dodoubleempty\dostartdefineXMLhandlers}
-
-\long\def\dostartdefineXMLhandlers[#1][#2]#3#4\stopdefineXMLhandlers % #2 is dummy
- {\egroup
- \long\def\dodefineXMLhandlers##1{#3[##1]#4}%
- \processcommalist[#1]\dodefineXMLhandlers}
-
-\let\currentXMLhandler\s!unknown
-
-% \long\def\dostartdefineXMLhandlers[#1][#2]#3#4[#5]#6\stopdefineXMLhandlers % #2 is dummy
-% {\egroup
-% \pushmacro\XMLop
-% \pushmacro\XMLpar
-% \pushmacro\currentXMLhandler
-% \long\def\dodefineXMLhandlers##1%
-% {\edef\currentXMLhandler{##1}%
-% \def\XMLop####1{\noexpand\XMLpar{##1}{####1}{}}%
-% \def\XMLpar{\noexpand\XMLpar}%
-% \def\XMLanc{\noexpand\XMLanc}%
-% \edef\!!stringa{[##1][#5]}%
-% \expandafter#3\!!stringa#6}%
-% \processcommalist[#1]\dodefineXMLhandlers
-% \popmacro\currentXMLhandler
-% \popmacro\XMLpar
-% \popmacro\XMLop}
-
-\long\def\dostartdefineXMLhandlers[#1][#2]#3#4[#5]#6\stopdefineXMLhandlers % #2 is dummy
- {\egroup
- \long\def\dodefineXMLhandlers##1%
- {\bgroup
- \edef\currentXMLhandler{##1}%
- \def\XMLop####1{\noexpand\XMLpar{##1}{####1}{}}%
- \def\XMLpar{\noexpand\XMLpar}%
- \def\XMLanc{\noexpand\XMLanc}%
- \def\XMLinh{\noexpand\XMLinh}%
- \xdef\!!XMLattr{[##1][#5]}%
- \egroup
- \expandafter#3\!!XMLattr#6}%
- \processcommalist[#1]\dodefineXMLhandlers}
-
-\def\XMLpav#1#2#3#4%
- {\XMLval{#1}{\XMLpar{#2}{#3}{}}{#4}}
-
-%D A few weird ones:
-
-\def\TEXpar#1#2%
- {\csname#1\interfaced{#2}\endcsname}
-
-\let\texXMLpar\TEXpar % soon obsolete
-
-\let\XMLtex\TEXpar
-
-% handy one
-
-\def\XMLtyp#1#2#3%
- {\ifcsname\@@XMLvariable:#1:#2\endcsname
- \@EA\defconvertedcommand\@EA\ascii\csname\@@XMLvariable:#1:#2\endcsname
- \else
- \defconvertedargument\ascii{#3}%
- \fi
- \ascii}
-
-\defineXMLsingular [begingroup] {\begingroup}
-\defineXMLsingular [endgroup] {\endgroup}
-\defineXMLsingular [gobblespacetokens] {\gobblespacetokens}
-\defineXMLsingular [disableXML] {\disableXML}
-
-\long\def\XMLstr#1%
- {{\enableXML\scantokens{#1}\unskip}}
-
-\long\def\XMLstr#1% test, does not work
- {\ifprocessingXML
- % \begingroup\enableXML\scantokens{#1<endgroup/><gobblespacetokens/>}%
- \scantokens{#1<gobblespacetokens/>}%
- \else
- \begingroup\enableXML\scantokens{#1<endgroup/>\ignorespaces}%
- \fi}
-
-\def\XMLgetvariable#1#2% hooks into generic \getvariable and setvariables
- {\expanded{\XMLstr{\getvariable{#1}{#2}}}}
-
-\long\def\XMLstrpar#1#2#3% test
- {\ifcsname\@@XMLvariable:#1:#2\endcsname
- \scantokens\@EAEAEA{\@EA\begingroup\@EA\enableXML
- \csname\@@XMLvariable:#1:#2\endcsname<endgroup/>}%
- \else
- \scantokens{\begingroup\enableXML#3<endgroup/>}%
- \fi}
-
-\def\doifXMLvarelse#1#2% geen etex, \relax too
- {\ifcsname\@@XMLvariable:#1:#2\endcsname
- \expandafter\ifx\csname\@@XMLvariable:#1:#2\endcsname\empty
- \@EAEAEA\secondoftwoarguments
- \else
- \@EAEAEA\firstoftwoarguments
- \fi
- \else
- \@EA\secondoftwoarguments
- \fi}
-
-\def\doifXMLvar#1#2% geen etex, \relax too
- {\ifcsname\@@XMLvariable:#1:#2\endcsname
- \expandafter\ifx\csname\@@XMLvariable:#1:#2\endcsname\empty
- \@EAEAEA\gobbleoneargument
- \else
- \@EAEAEA\firstofoneargument
- \fi
- \else
- \@EA\gobbleoneargument
- \fi}
-
-\def\doifXMLvalelse#1#2% geen etex, \relax too
- {\ifcsname\@@XMLvalue:#1:#2\endcsname
- \expandafter\ifx\csname\@@XMLvalue:#1:#2\endcsname\empty
- \@EAEAEA\secondoftwoarguments
- \else
- \@EAEAEA\firstoftwoarguments
- \fi
- \else
- \@EA\secondoftwoarguments
- \fi}
-
-\let\doifXMLparelse\doifXMLvarelse
-\let\doifXMLpar \doifXMLvar
-
-%D Used in x-fo: I really need to document this!
-
-\bgroup \catcode`\<=\activecatcode
-
-% usage: \expanded{\rescanXMLatttributes{fo:table-cell}}
-
-\gdef\rescanXMLattributes #1{\noexpand\dogetXMLarguments{#1}\currentXMLarguments>}
-\gdef\parseXMLattributes #1#2{\dogetXMLarguments{#1}#2>}
-
-\egroup
-
-\def\defXMLattributestring#1#2#3#4%
- {\ifcsname\@@XMLvariable:#2:#3\endcsname
- \@EA\defconvertedcommand\@EA#1\csname\@@XMLvariable:#2:#3\endcsname
- \else
- \defconvertedargument#1{#4}%
- \fi}
-
-\def\XMLprocess#1%
- {\begingroup\enableXML\XMLflush{#1}\endgroup}
-
-\bgroup \catcode`<=\activecatcode
-
-\long\gdef\ignoreuntilXMLelement#1<{<}
-\long\gdef\grabuntilXMLelement #1<\to#2{\def#2{#1}<}
-
-\egroup
-
-%D Saves tokens and typing.
-
-\def\XMLownvar {\XMLvar {\rawXMLnamespace\rawXMLidentifier}}
-\def\XMLownval {\XMLval {\rawXMLnamespace\rawXMLidentifier}}
-\def\XMLownpar {\XMLpar {\rawXMLnamespace\rawXMLidentifier}}
-\def\XMLownstrpar {\XMLstrpar {\rawXMLnamespace\rawXMLidentifier}}
-\def\doifXMLownvarelse{\doifXMLvarelse{\rawXMLnamespace\rawXMLidentifier}}
-\def\doifXMLownvalelse{\doifXMLvalelse{\rawXMLnamespace\rawXMLidentifier}}
-\def\doifXMLownparelse{\doifXMLparelse{\rawXMLnamespace\rawXMLidentifier}}
-
-\def\letXMLpar #1#2{\@EA \let\csname\@@XMLvariable:#1:#2\endcsname}
-\def\setXMLpar #1#2{\@EA \def\csname\@@XMLvariable:#1:#2\endcsname}
-\def\setXMLepar#1#2{\@EA\edef\csname\@@XMLvariable:#1:#2\endcsname}
-
-\def\ownXMLelement{\rawXMLnamespace\rawXMLidentifier}
-
-\def\XMLop#1% ownpar
- {\csname\ifcsname\@@XMLvariable:\ownXMLelement:#1\endcsname
- \@@XMLvariable:\ownXMLelement:#1\else\s!empty
- \fi\endcsname}
-
-\def\XMLtp#1% texpar
- {\csname\ifcsname\@@XMLmapmap\interfaced{#1}\endcsname
- \@@XMLmapmap\interfaced{#1}\else\s!empty
- \fi\endcsname}
-
-\def\doifelseXMLop#1{\doifelse{\XMLop{#1}}}
-\def\doifXMLop #1{\doif {\XMLop{#1}}}
-\def\doifnotXMLop #1{\doifnot {\XMLop{#1}}}
-
-\def\doifelsenothingXMLop#1{\doifelsenothing{\XMLop{#1}}}
-\def\doifsomethingXMLop #1{\doifsomething {\XMLop{#1}}}
-\def\doifnothingXMLop #1{\doifnothing {\XMLop{#1}}}
-
-\def\doifelseXMLtp#1{\doifelse{\XMLtp{#1}}}
-\def\doifXMLtp #1{\doif {\XMLtp{#1}}}
-\def\doifnotXMLtp #1{\doifnot {\XMLtp{#1}}}
-
-\def\doifelsenothingXMLtp#1{\doifelsenothing{\XMLtp{#1}}}
-\def\doifsomethingXMLtp #1{\doifsomething {\XMLtp{#1}}}
-\def\doifnothingXMLtp #1{\doifnothing {\XMLtp{#1}}}
-
-\def\XMLflushself{\csname\@@XMLdata:\ownXMLelement\endcsname}
-
-\def\showXMLdata#1{\showvalue{\@@XMLdata:#1}}
-
-\def\XMLta {\theXMLarguments\@@XMLmapmap}
-\def\getXMLta {\expanded{\getparameters[\@@XMLmapmap][\XMLta]}}
-\def\expandXMLta{\expandXMLarguments\@@XMLmapmap}
-\def\expandXMLtp{\expandTEXpar\@@XMLmapmap} % #1
-
-\def\getXMLparameters[#1]% faster than \rawgetparameters[#1][\theXMLar..]
- {\ifcsname\@@XMLmap:#1\endcsname
- \expanded{\rawgetparameters[#1][\csname\@@XMLmap:#1\endcsname]}%
- \fi}
-
-\def\defXMLop#1#2{\@EA\let\@EA#1\csname\@@XMLvariable:\ownXMLelement:#2\endcsname}
-\def\defXMLtp#1#2{\@EA\let\@EA#1\csname\@@XMLmapmap\interfaced{#2}\endcsname}
-
-%D ...
-
-\def\protectXMLdata
- {\catcode\tabasciicode \spacecatcode
- \catcode\endoflineasciicode\spacecatcode
- \catcode\formfeedasciicode \spacecatcode
- \catcode\endoffileasciicode\spacecatcode
- \catcode`\#\othercatcode}
-
-\long\def\startXMLcode
- {\begingroup
- \protectXMLdata
- \dostartXMLcode}
-
-\long\def\dostartXMLcode[#1] #2 \stopXMLcode
- {\@EA\gdef\csname\@@XMLcode:#1\endcsname{\startXMLdata#2\stopXMLdata}%
- \endgroup}
-
-\def\getXMLcode[#1]% \expandXMLcode
- {\csname\@@XMLcode:#1\endcsname}
-
-% \long\def\startXMLdata#1\stopXMLdata%
-% {\begingroup\enableXML\scantokens{#1}\endgroup}
-%
-% \defineXMLentity[tex-backslash] {\catchXMLpar}
-%
-% \def\catchXMLpar#1#2#3
-% {\if#1p\if#2a\if#3r\ifmmode\else\endgraf\fi
-% \else\texescape\fi\else\texescape\fi\else\texescape\fi}
-
-\long\def\startXMLdata
- {\begingroup
- \protectXMLdata
- \dostartXMLdata}
-
-\long\def\dostartXMLdata#1\stopXMLdata % evt \everyeof{}
- {\enableXML\scantokens{#1<gobblespacetokens/>}%
- \endgroup
- \ifhmode\unskip\unskip\fi}
-
-% suboptimal:
-%
-% \unexpanded\def\XMLdata#1% % \unexpanded added 22/5/2001
-% {\begingroup
-% \enableXML\scantokens{#1}\ifhmode\unskip\unskip\fi
-% \endgroup}
-%
-% better but does not work in tables:
-%
-% \unexpanded\def\XMLdata#1% % grouping changed 20/5/2001
-% {\scantokens{\begingroup\enableXML#1<endgroup/>\gobblespacetokens}}
-%
-% currently:
-
-\unexpanded\def\XMLdata % # safe
- {\begingroup
- \protectXMLdata
- \doXMLdata}
-
-\def\doXMLdata#1%
- {\enableXML
- \scantokens{#1<gobblespacetokens/>}%
- \endgroup}
-
-%D
-
-\def\bXMLs{\ifignoreXMLspaces\ignorespaces\fi}
-\def\eXMLs{\ifignoreXMLspaces\ifhmode\unskip\fi\fi}
-
-\protect
-
-% \defineXMLcommand{placeindex/}
-% {\placeindex[criterium=all]}
-%
-% \defineXMLargument{index}
-% {\index[\XMLvar{index}{key}{}]}
-
-%D Here we implement the handling of preformatted code.
-
-\unprotect
-
-\def\startXMLpreformatted#1%
- {\startpacked
- #1%
- \fixedXMLfonttrue
- \obeylines
- \obeyspaces
- \setbox\scratchbox=\hbox{x}%
- \edef\obeyedspace{\noindent\noexpand\kern\the\wd\scratchbox}}
-
-\def\stopXMLpreformatted#1%
- {\stoppacked}
-
-%D
-
-\def\XMLinput{\enableXML\input} \global\let\inputXML\XMLinput
-
-% options
-
-\def\processXMLfile #1{\enableXML\processfile{#1}}
-\def\processXMLfilegrouped#1{{\enableXML\processfile{#1}\relax\ifmmode\else\par\fi}}
-
-%D \type
-%D {processXMLbuffer}
-%D
-%D For illustrative purposes, we need to be able to reuse
-%D definitions, which is why we implement a buffer processor
-%D here. The macro \type {\processXMLbuffer} behaves like
-%D any buffer processor.
-
-\def\processXMLbuffer
- {\dosingleempty\doprocessXMLbuffer}
-
-\def\doprocessXMLbuffer[#1]%
- {\doifelsenothing{#1}
- {\doprocessXMLbuffer[\jobname]}
- {\begingroup
- \enableXML
- \def\dodoprocessXMLbuffer##1{\getbuffer[##1]}%
- \processcommalist[#1]\dodoprocessXMLbuffer
- \endgroup}}
-
-%D Loading specific modules takes place with \type
-%D {\useXMLfilters}.
-
-% todo: flag
-
-\def\useXMLfilter[#1]%
- {\processcommalist[#1]\douseXMLfilter}
-
-\def\douseXMLfilter#1%
- {\doifundefined{\c!file\f!xtagprefix#1}
- {\letvalue{\c!file\f!xtagprefix#1}\empty
- \startreadingfile
- % \truefilename removed
- \readsysfile{\f!xtagprefix#1.mkii}
- {\writestatus{xml}{loading module #1.mkii}}
- {\readsysfile{\f!xtagprefix#1.tex}
- {\writestatus{xml}{loading module #1.tex}}
- \donothing}%
- \stopreadingfile}}
-
-%D Temporarily here.
-
-\newtoks\groupedtoks
-\newif\ifcollectXMLgrouped
-
-\bgroup \catcode`\<=\activecatcode
-
-\newtoks\XMLgtoks
-
-\long\unexpanded\gdef\getXMLgroupedenvironment#1#2#3%
- {\collectXMLgroupedtrue
- \XMLgtoks{#2}%
- \long\def\dodogetgrouped{\@EA\the\@EA\XMLgtoks\the\groupedtoks#3}%
- \getXMLgrouped{#1}}
-
-\long\unexpanded\gdef\getXMLgroupedargument#1#2%
- {\collectXMLgroupedtrue
- \XMLgtoks{#2}%
- \long\def\dodogetgrouped{\@EA\the\@EA\XMLgtoks\@EA{\the\groupedtoks}}%
- \getXMLgrouped{#1}}
-
-\long\unexpanded\gdef\getXMLgroupedignore#1%
- {\collectXMLgroupedfalse
- \let\dodogetgrouped\relax
- \getXMLgrouped{#1}}
-
-\long\gdef\docountXMLgrouped#1\end#2\end % 1 relax is enough since it's
- {\long\def\dosplitXMLstring##1#1##2\relax\relax##3\end % another regime
- {\def\ascii{##2}%
- \ifx\ascii\empty \else
- \advance\scratchcounter \plusone
- \dosplitXMLstring##2\relax\relax#1\relax\relax\end
- \fi}%
- \dosplitXMLstring#2\relax\relax#1\relax\relax\end}
-
-\long\unexpanded\gdef\getXMLgrouped#1% #1 kan weg % klopt dit nu?
- {\groupedtoks\emptytoks
- \scratchcounter\zerocount
- \edef\theXMLnamespace
- {\ifx\originalXMLnamespace\empty\else\originalXMLnamespace:\fi
- \currentXMLidentifier}%
- \expanded{\long\noexpand\def\noexpand\dogetgrouped####1\noexpand</\currentXMLelement>}%
- {\ifcollectXMLgrouped\appendtoks##1\to\groupedtoks\fi
- \@EA\docountXMLgrouped\@EA<\theXMLnamespace>\end##1\end
- \@EAEAEA\docountXMLgrouped\@EA\@EA\@EA<\@EA\theXMLnamespace\space \end##1\end
- \ifcase\scratchcounter
- \let\dogetgrouped\dodogetgrouped
- \else
- \advance\scratchcounter \minusone
- \ifcollectXMLgrouped\@EA\appendtoks\@EA<\@EA/\currentXMLelement>\to\groupedtoks\fi
- \fi
- \dogetgrouped}%
- \dogetgrouped}
-
-\egroup
-
-% interesting and fully expandable
-
-\def\XMLownifequalelse#1#2%
- {\@EAEAEA\@@ifequal\csname\@@XMLvariable:\ownXMLelement:#1\endcsname\relax\@@and#2\relax\@@then}
-
-% \def\XMLifequalelse#1#2#3%
-% {\@EAEAEA\@@ifequal\csname\@@XMLvariable:#1:#2\endcsname\relax\@@and#3\relax\@@then}
-
-\def\XMLifequalelse#1#2%
- {\ifcsname\@@XMLvariable:#1:#2\endcsname
- % \@EAEAEA\doXMLifequalelse\@EA\@EA\csname\@@XMLvariable:#1:#2\endcsname
- \@EA\doXMLifequalelse\csname\@@XMLvariable:#1:#2\@EA\endcsname
- \else
- \@EA\secondoftwoarguments
- \fi}
-
-\def\doXMLifequalelse#1#2%
- {\@EA\@@ifequal#1\relax\@@and#2\relax\@@then}
-
-%D \starttyping
-%D \defineXMLenvironment[test][a=1]
-%D {\XMLownifequalelse{a}{2}{YES}{NO}}
-%D {}
-%D
-%D \defineXMLenvironment[test][a=1]
-%D {\XMLifequalelse{test}{a}{1}{YES}{NO}}
-%D {}
-%D
-%D \startXMLdata
-%D <test a="1">test</test>
-%D \stopXMLdata
-%D \stoptyping
-
-\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`\<\activecatcode
-\catcode`\&\activecatcode
-
-\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
-
-\def\defXMLexpanded#1#2%
- {\begingroup
- \let\getXMLentity\expandedXMLentity
- \expanded{\endgroup\edef\noexpand#1{#2}}}
-
-\def\gdefXMLexpanded#1#2%
- {\begingroup
- \let\getXMLentity\expandedXMLentity
- \expanded{\endgroup\xdef\noexpand#1{#2}}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-map.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-map.mkii
deleted file mode 100644
index 4f639bf0183..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-map.mkii
+++ /dev/null
@@ -1,746 +0,0 @@
-%D \module
-%D [ file=xtag-map,
-%D version=2000.12.20,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=Remapping,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D There is a more versatile mapper available in \type {xtag-rem.tex}!
-
-%D We also need something that lets content as-is, like for
-%D instance XML embedded in a chemical caption.
-
-\writestatus{loading}{ConTeXt XML Macros / Remapping}
-
-%D A fundamental characteristic of \TEX\ is that much
-%D processing depends on picking up one or more arguments and
-%D acting upon them. In \type {xtag-ini} we have implemented
-%D the normal (high) level interface between \XML\ and
-%D \CONTEXT, and there we already saw some ways to pick up an
-%D element as argument.
-%D
-%D In this module we will implement a preprocessor. An element
-%D that feeds its content to the preprocessor, becomes a token
-%D list consisting of \TEX\ macros, which in turn may expand to
-%D their meanings.
-%D
-%D This module is only tested with \ETEX. In principle we can
-%D make it work with good old \TEX, but we see no objection
-%D against using \ETEX, especially since it's part of every
-%D grown up \TEX\ distribution.
-
-\unprotect
-
-\let\normalparseXMLescape \parseXMLescape
-\let\normalparseXMLelement\parseXMLelement
-\let\normalparseXMLprocess\parseXMLprocess
-
-\let\normaldoXMLelement \doXMLelement
-\let\normaldoXMLentity \doXMLentity
-
-\def\setnormalXMLhandler
- {\let\doXMLelement \normaldoXMLelement
- \let\parseXMLelement\normalparseXMLelement
- \let\parseXMLescape \normalparseXMLescape
- \let\parseXMLprocess\normalparseXMLprocess
- \let\doXMLentity \normaldoXMLentity}
-
-%D A careful reader will notice that we do a full expansion of
-%D the content of the element, although commands that are
-%D protected will stay untouched. In this stage we also
-%D collect key|/|value pairs and pass them onto the \TEX\
-%D macros if needed. Again, we need a fully expandable parser
-%D to handle this, which make the core macros slightly
-%D unreadable.
-%D
-%D The interface presented here evolved from an older module,
-%D written on top of \type {m-sgml}, that could take care of
-%D \MATHML\ (version 1). The implementation here is more
-%D advanced in the sense that it permits all kind of parsers.
-
-\def\findendofXMLelement#1% space after 0/1 prevents auto \relax
- {\if#1>0 \else
- \if#1/1 \endofXMLelementE\else
- \if#1"\endofXMLelementD \else
- \if#1'\endofXMLelementS \else
- \endofXMLelementN \fi\fi\fi\fi}
-
-\def\endofXMLelementE#1\fi\fi\fi\fi#2>{\fi\fi}
-\def\endofXMLelementD#1\fi\fi\fi\fi#2"{\fi\fi\fi \findendofXMLelement}
-\def\endofXMLelementS#1\fi\fi\fi\fi#2'{\fi\fi\fi\fi\findendofXMLelement}
-\def\endofXMLelementN \fi\fi\fi\fi {\fi\fi\fi\fi\findendofXMLelement}
-
-% not faster
-%
-% \def\findendofXMLelement#1%
-% {\csname**\if#1>>\else\if#1//\else\if#1""\else\if#1''\else.\fi\fi\fi\fi\endcsname}
-%
-% \def\findendofXMLelement#1%
-% {\csname**\ifcsname**#1\endcsname#1\else.\fi\endcsname}
-%
-% \setvalue{**>}{0 }
-% \setvalue{**/}#1>{1 }
-% \setvalue{**"}#1"{\findendofXMLelement}
-% \setvalue{**'}#1'{\findendofXMLelement}
-% \letvalue{**.}\findendofXMLelement
-
-\newif\ifremapXMLunknown
-
-%D We need three steps to avoid namespace: tag since comment
-%D and processing instructions don't have a namespace. The
-%D first step distinguishes between comment, processing
-%D instructions and elements. The second step (which is
-%D defined in the main mapping macro) either or not grabs the
-%D namespace. We may extend this model later to a more
-%D versatile one, using remapping.
-
-%D Parsing escapes is done by specific macros. For the
-%D moment we assume that the sequence ends with an \type {>}
-%D (which is definietly not the case for \type {CDATA}).
-
-\long\def\remapXMLescape#1#2>{}
-
-%D Processing instructions are remapped and only certain
-%D cases are handled.
-
-\long\def\remapXMLprocess#1#2{\xmlp{procins/}{X}{#1}{#2}}
-
-%D This one is more efficient (although no one will notice
-%D this since this macro is used seldom).
-
-\long\def\remapXMLprocess{\xmlp{procins/}{X}}
-
-%D Element need a bit more work; \type {#4} consumes spaces.
-
-% \def\remapXMLunknownONE#1#2% name args
-% {\ifremapXMLunknown\remapXMLone{\s!unknown}{#1 #2}\fi}
-%
-% \def\remapXMLunknownTWO#1#2% name args
-% {\ifremapXMLunknown\remapXMLtwo{\s!unknown}{#1 #2}\fi}
-%
-% \def\remapXMLunknownTHREE#1#2% name args
-% {\ifremapXMLunknown\remapXMLthree{\s!unknown/}{#1 #2}\fi}
-%
-% \long\def\remapXMLelement#1#2 #3>#4% todo: we need to get rid of the end /
-% {\ifcase\findendofXMLelement#2#3>%
-% \if#1/%
-% \expandafter\ifx\csname\@@XML\@@XMLmapping:#2:M\endcsname\relax
-% \remapXMLunknownONE{#2}{}%
-% \else
-% \remapXMLone{#2}{}%
-% \fi
-% \else
-% \expandafter\ifx\csname\@@XML\@@XMLmapping:#1#2:M\endcsname\relax
-% \remapXMLunknownTWO{#1#2}{#3}%
-% \else
-% \remapXMLtwo{#1#2}{#3}%
-% \fi
-% \fi
-% \else
-% \expandafter\ifx\csname\@@XML\@@XMLmapping:#1#2:M\endcsname\relax
-% \expandafter\ifx\csname\@@XML\@@XMLmapping:#1#2/:M\endcsname\relax
-% \remapXMLunknownTHREE{#1#2}{#3}%
-% \else
-% \remapXMLthree{#1#2/}{#3}%
-% \fi
-% \else
-% \remapXMLthree{#1#2}{#3}%
-% \fi
-% \fi#4}
-
-\def\remapXMLthreeempty#1%
- {\remapXMLthree{#1/}}
-
-\def\remapXMLunknownONE#1#2% name args
- {\ifremapXMLunknown\remapXMLone\s!unknown{#1 #2}\fi}
-
-\def\remapXMLunknownTWO#1#2% name args
- {\ifremapXMLunknown\remapXMLtwo\s!unknown{#1 #2}\fi}
-
-\def\remapXMLunknownTHREE#1#2% name args
- {\ifremapXMLunknown\remapXMLthreeempty\s!unknown{#1 #2}\fi}
-
-\long\def\remapXMLelement#1#2 #3>#4% todo: we need to get rid of the end /
- {\ifcase\findendofXMLelement#2#3>%
- \if#1/%
- \expandafter\ifx\csname\@@XML\@@XMLmapping:#2:M\endcsname\relax
- \@EA\remapXMLunknownONE
- \else
- \@EA\remapXMLone
- \fi{#2}\empty
- \else
- \expandafter\ifx\csname\@@XML\@@XMLmapping:#1#2:M\endcsname\relax
- \@EA\remapXMLunknownTWO
- \else
- \@EA\remapXMLtwo
- \fi{#1#2}{#3}%
- \fi
- \else
- \expandafter\ifx\csname\@@XML\@@XMLmapping:#1#2:M\endcsname\relax
- \expandafter\ifx\csname\@@XML\@@XMLmapping:#1#2/:M\endcsname\relax
- \@EAEAEA\remapXMLunknownTHREE
- \else
- \@EAEAEA\remapXMLthreeempty
- \fi
- \else
- \@EA\remapXMLthree
- \fi{#1#2}{#3}%
- \fi#4}
-
-\unexpanded\def\xmlr#1#2{\csname\@@XML\@@XMLmapping:#1:#2\endcsname}
-\unexpanded\def\xmlp#1#2{\csname\@@XML :#1:#2\endcsname}
-\def \expandedxmlr#1#2{\csname\@@XML\@@XMLmapping:#1:#2\endcsname}
-
-\def\expandXMLremapping{\let\xmlr\expandedxmlr}
-
-\def\@@XMLremap{XMLremap}
-
-\def\remapXMLone#1#2%
- {\ifcase\csname\@@XMLremap\csname\@@XML\@@XMLmapping:#1:M\endcsname\endcsname
- \or % GCPA
- \XMLeg\XMLeg
- \or % GCP-
- \XMLeg
- \or % GC-A
- \XMLeg\XMLeg
- \or % GC--
- \XMLeg
- \or % -CPA
- \XMLeg
- \or % -CP-
- %
- \or % -C-A
- \XMLeg
- \or % -C--
- %
- \or % G---
- \XMLeg
- \or % GLR-
- \xmlr{#1}{R}\XMLeg
- \or % -LR-
- \xmlr{#1}{R}%
- \fi}
-
-\def\remapXMLtwo#1#2%
- {\ifcase\csname\@@XMLremap\csname\@@XML\@@XMLmapping:#1:M\endcsname\endcsname
- \or % GCPA
- \XMLbg\xmlr{#1}{X}{#2}\XMLbg
- \or % GCP-
- \XMLbg\xmlr{#1}{X}{#2}%
- \or % GC-A
- \XMLbg\xmlr{#1}{X}\XMLbg
- \or % GC--
- \XMLbg\xmlr{#1}{X}%
- \or % -CPA
- \xmlr{#1}{X}{#2}\XMLbg
- \or % -CP-
- \xmlr{#1}{X}{#2}%
- \or % -C-A
- \xmlr{#1}{X}\XMLbg
- \or % -C--
- \xmlr{#1}{X}%
- \or % G---
- \XMLbg
- \or % GLR-
- \XMLbg\xmlr{#1}{L}%
- \or % -LR-
- \xmlr{#1}{L}%
- \fi}
-
-\def\remapXMLthree#1#2%
- {\ifcase\csname\@@XMLremap\csname\@@XML\@@XMLmapping:#1:M\endcsname\endcsname
- \or % GCPA
- \XMLbg\xmlr{#1}{X}{#2}\XMLbg\XMLeg\XMLeg
- \or % GCP-
- \XMLbg\xmlr{#1}{X}{#2}\XMLeg
- \or % GC-A
- \XMLbg\xmlr{#1}{X}\XMLbg\XMLeg\XMLeg
- \or % GC--
- \XMLbg\xmlr{#1}{X}\XMLeg
- \or % -CPA
- \xmlr{#1}{X}{#2}\XMLbg\XMLeg
- \or % -CP-
- \xmlr{#1}{X}{#2}%
- \or % -C-A
- \xmlr{#1}{X}\XMLbg\XMLeg
- \or % -C--
- \xmlr{#1}{X}%
- \or % G---
- \XMLbg\XMLeg
- \fi}
-
-\scratchtoks\@EA{\string{} \edef\XMLbg{\the\scratchtoks}
-\scratchtoks\@EA{\string}} \edef\XMLeg{\the\scratchtoks}
-
-\chardef\XMLremapGCPA = 1 % {\command {arg} { } }
-\chardef\XMLremapGCP = 2 % {\command {arg} } %
-\chardef\XMLremapGCA = 3 % {\command { } }
-\chardef\XMLremapGC = 4 % {\command } %
-\chardef\XMLremapCPA = 5 % \command {arg} { }
-\chardef\XMLremapCP = 6 % \command {arg} %
-\chardef\XMLremapCA = 7 % \command { }
-\chardef\XMLremapC = 8 % \command %
-\chardef\XMLremapG = 9 % { }
-\chardef\XMLremapGLR = 10 % { \bcom \ecom }
-\chardef\XMLremapLR = 11 % \bcom \ecom
-
-%D The remapping is controlled by only a few definition
-%D macros, that both deal with elements. We distinguish
-%D between normal and empty elements.
-%D
-%D \starttyping
-%D \remapXMLsequence [name] [result map] \unexpandablecommand
-%D \remapXMLsequence [name] [result map] \unexpandablecommand
-%D \stoptyping
-%D
-%D The \MATHML\ module demonstrates how these can be used.
-%D The element is converted into a sequence with one or more
-%D of the following components.
-%D
-%D \starttyping
-%D { \command {parameters} {argument} }
-%D \stoptyping
-%D
-%D The following combinations are supported.
-%D
-%D \starttabulate[|c|c|c|c|c|]
-%D \NC GCPA \NC grouped \NC command \NC parameters \NC argument \NC \NR
-%D \NC GCP \NC grouped \NC command \NC parameters \NC \NC \NR
-%D \NC GCA \NC grouped \NC command \NC \NC argument \NC \NR
-%D \NC GC \NC grouped \NC command \NC \NC \NC \NR
-%D \NC CPA \NC \NC command \NC parameters \NC argument \NC \NR
-%D \NC CP \NC \NC command \NC parameters \NC \NC \NR
-%D \NC CA \NC \NC command \NC \NC argument \NC \NR
-%D \NC C \NC \NC command \NC \NC \NC \NR
-%D \NC G \NC grouped \NC \NC \NC \NC \NR
-%D \stoptabulate
-%D
-%D Empty elements (singular ones) never get an argument,
-%D which makes sense, since they have at most parameters.
-
-\def\remapXMLsequence{\doquadrupleargument\doremapXML []}
-\def\remapXMLsingular{\doquadrupleargument\doremapXML[/]}
-
-\def\doremapXML[#1][#2][#3][#4]%
- {\iffourthargument
- \def\next{\dodoremapXML[#2][#1][#3][#4]}%
- \else
- \def\next{\dodoremapXML[\@@XMLmapping][#1][#2][#3]}%
- \fi
- \next}
-
-%\def\dodoremapXML[#1][#2][#3][#4]% class / name pattern
-% {\doifinstringelse{LR}{#4}
-% {\let\next\doremapXMLtwo}
-% {\let\next\doremapXMLone}%
-% \next[#1][#2][#3][#4]}%
-
-\def\dodoremapXML[#1][#2][#3][#4]% class / name pattern
- {\doifinstringelse{LR}{#4}\doremapXMLtwo\doremapXMLone[#1][#2][#3][#4]}
-
-\def\doremapXMLone[#1][#2][#3][#4]#5%
- {\setvalue{\@@XML#1:#3#2:M}{#4}%
- \setvalue{\@@XML#1:#3#2:X}{#5}}
-
-\def\doremapXMLtwo[#1][#2][#3][#4]#5#6%
- {\setvalue{\@@XML#1:#3:M}{#4}%
- \setvalue{\@@XML#1:#3:L}{#5}%
- \setvalue{\@@XML#1:#3:R}{#6}}
-
-\let\dowithentity\empty
-
-%D We handle processing instructions and unknown elements with:
-
-\remapXMLsingular [procins] [CPA] \normalparseXMLprocess
-\remapXMLsingular [\s!unknown] [CPA] \doXMLunknownSI
-\remapXMLsequence [\s!unknown] [CPA] \doXMLunknownSE
-
-\def\doXMLunknownSI#1#2{{\tttf[#1 #2]}}
-\def\doXMLunknownSE#1#2{{\tttf[#1 #2]}}
-
-%D In a similar way, we can remap entities.
-
-\def\remapXMLentity#1;#2%
- {\doremapXMLentity{#1}#2}%
-
-\def\doremapXMLentity
- {\xmlrent}
-
-% \unexpanded\def\xmlrent#1%
-% {\getXMLentity{#1}}
-%
-% replaced by:
-
-\unexpanded\def\xmlrent#1%
- {\doXMLentity#1;}
-
-%D The remapping is taken care of by the following macro,
-%D which takes three arguments.
-%D
-%D \starttyping
-%D \XMLremapdata{before}{after}{content}
-%D \stoptyping
-%D
-%D After the remapping, the content is executed (expanded)
-%D under the normal \TEX\ catcode regime. The intermediate
-%D result can be traced by turning on the following switch.
-
-\newif\iftraceXMLremapping
-
-\newtoks \everyXMLremapping
-
-\appendtoks
- \defineXMLentity[tex-hash]{\letterhash}%
- \defineXMLentity[tex-bar]{\myspecialnormalvert}%
-\to \everyXMLremapping
-
-\def\setnormalXMLentities% will change ! ! ! ! !
- {\defineXMLentity[tex-hash]\letterhash
- \defineXMLentity[tex-dollar]\letterdollar
- \defineXMLentity[tex-percent]\letterpercent
- \defineXMLentity[tex-backslash]\letterbackslash
- \defineXMLentity[tex-hat]\letterhat
- \defineXMLentity[tex-underscore]\letterunderscore
- \defineXMLentity[tex-leftbrace]\letterbgroup
- \defineXMLentity[tex-rightbrace]\letteregroup
- \defineXMLentity[tex-bar]\letterbar}
-
-\let\XMLremappedpar\empty
-
-%D Here we implement the second step in the element grabber.
-
-\long\def\XMLremapdata
- {\dosingleempty\doXMLremapdata}
-
-\long\def\doXMLremapdata[#1]#2#3#4%
- {\bgroup
- \startXMLmapping[#1]%
- % enable unknown elements (should be macro)
- \doifsomething{#1}
- {\doifdefinedelse{\@@XML#1:\s!unknown:M}
- {\remapXMLunknowntrue}{\remapXMLunknownfalse}}%
- %
- \pushmacro\doXMLentity % needed ?
- % this will change, proper split in element itself
- \ifx\currentXMLnamespace\empty
- \let\parseXMLelement\remapXMLelement
- \else
- % here we need to get rid of the namespace; we also
- % have to preserve the leading / if present
- \@EA\long\@EA\def\@EA\parseXMLelement\@EA
- ##\@EA1\currentXMLnamespace:{\remapXMLelement##1}%
- % ##2 removes leading spaces
- \fi
- %
- \let\parseXMLescape \remapXMLescape
- \let\parseXMLprocess\remapXMLprocess
- %
- \let\doXMLentity \remapXMLentity
- %
- \enableXML % sets entities
- \enableXMLexpansion
- \let\par\XMLremappedpar
- \the\everyXMLremapping
- %\ignorelines
- \catcode\tabasciicode \spacecatcode
- \catcode\endoflineasciicode\spacecatcode
- \catcode\formfeedasciicode \spacecatcode
- \catcode\endoffileasciicode\spacecatcode
- \pushmacro\unicodechar
- \let\unicodechar\relax
- \xdef\remappedXMLdata{#4\empty}%
- \popmacro\unicodechar
- \let\par\endgraf
- \popmacro\doXMLentity % needed ?
- \disableXMLexpansion
- \catcode`\{=\begingroupcatcode
- \catcode`\}=\endgroupcatcode
- \catcode`\\=\escapecatcode
- \iftraceXMLremapping
- \ifmmode\vbox\fi\bgroup
- \defconvertedcommand\ascii\remappedXMLdata
- \tttf\veryraggedright\ascii\par
- \writestatus{xml-remap}{\ascii}%
- \egroup
- \fi
- #2\scantokens\@EA{\remappedXMLdata\empty\empty}#3%
- \stopXMLmapping
- \egroup}
-
-% testcase:
-%
-% aap‒noot coördinatie – één
-%
-% \startXMLdata
-% aap‒noot coördinatie – één
-% <formula><math><mtext>aap‒noot coördinatie – één</mtext></math></formula>
-% \stopXMLdata
-%
-% weird case:
-%
-% \chardef\XMLtokensreduction\zerocount
-% \startXMLdata
-% <formula><math><mtext>\"{a}\"{o}\"{u}\v{c}\v{s}\v{z}</mtext></math></formula>
-% \stopXMLdata
-%
-% \chardef\XMLtokensreduction\plustwo
-% \startXMLdata
-% <formula><math><mtext>\"{a}\"{o}\"{u}\v{c}\v{s}\v{z}</mtext></math></formula>
-% \stopXMLdata
-
-% rename to better names
-
-\newtoks \XMLRtoks
-\newcount \nofXMLRchildren
-
-\def\naturalxmlr#1#2{\getvalue{\@@XML\@@XMLmapping:#1:#2}}
-
-\def\ignoreXMLRelement#1#2{}
-\def\normalXMLRelement#1#2{#2}
-
-\let\nextXMLRelement \empty
-\let\firstXMLRelement \empty
-\let\secondXMLRelement\empty
-
-% \def\withnextXMLRelement#1%
-% {\pushmacro\dowithnextXMLRelement
-% \def\dowithnextXMLRelement##1##2##3##4##5%
-% {\popmacro\dowithnextXMLRelement
-% \def\nextXMLRelement{##1{##2}{##3}{##4}{##5}}%
-% #1}%
-% \doifnextcharelse\empty\empty\dowithnextXMLRelement}
-%
-% better and faster:
-
-\def\dowithnextXMLRelement#1#2#3#4#5#6%
- {\def\nextXMLRelement{#2{#3}{#4}{#5}{#6}}#1}%
-
-\def\withnextXMLRelement#1%
- {\doifnextcharelse\empty\empty{\dowithnextXMLRelement{#1}}}
-
-\def\withnexttwoXMLRelements#1%
- {\pushmacro\firstXMLRelement
- \pushmacro\secondXMLRelement
- \withnextXMLRelement
- {\let\firstXMLRelement\nextXMLRelement
- \withnextXMLRelement
- {\let\secondXMLRelement\nextXMLRelement
- #1%
- \popmacro\secondXMLRelement
- \popmacro\firstXMLRelement}}}
-
-\def\withnextthreeXMLRelements#1% korter, met two
- {\pushmacro\firstXMLRelement
- \pushmacro\secondXMLRelement
- \pushmacro\thirdXMLRelement
- \withnextXMLRelement
- {\let\firstXMLRelement\nextXMLRelement
- \withnextXMLRelement
- {\let\secondXMLRelement\nextXMLRelement
- \withnextXMLRelement
- {\let\thirdXMLRelement\nextXMLRelement
- #1%
- \popmacro\thirdXMLRelement
- \popmacro\secondXMLRelement
- \popmacro\firstXMLRelement}}}}
-
-\def\doifXMLRchildelse#1#2#3#4%
- {\pushmacro\xmlr
- \def\next{#4}%
- \def\xmlr##1##2##3##4% the / should be sorted out in the mapper
- {\rawdoifinsetelse{##1}{#1}
- {\def\next{#3}}
- {\doif{##1}{#1/}{\def\next{#3}}}}%
- #2\empty
- \popmacro\xmlr
- \next}
-
-\def\doifXMLRchild#1#2#3%
- {\pushmacro\xmlr
- \let\next\empty
- \def\xmlr##1##2##3##4% the / should be sorted out in the mapper
- {\rawdoifinsetelse{##1}{#1}
- {\def\next{#3}}
- {\doif{##1}{#1/}{\def\next{#3}}}}%
- #2\empty
- \popmacro\xmlr
- \next}
-
-\def\encapsulateXMLRchild#1#2#3#4#5%
- {\pushmacro\xmlr
- \def\xmlr##1##2##3##4%
- {\doifelse{##1}{#1}
- {\def\next{\doencapsulateXMLRchild{#2}{#3}{#4}{##4}}}
- {\let\next\empty}%
- \next}%
- #5\empty
- \popmacro\xmlr}
-
-\def\encapsulateXMLRchildren#1#2#3#4#5%
- {\pushmacro\xmlr
- \pushmacro\betweenXMLRchild
- \def\betweenXMLRchild{\def\betweenXMLRchild{#3}}%
- \def\xmlr##1##2##3##4%
- {\rawdoifinsetelse{##1}{#1}
- {\pushmacro\xmlr
- \let\xmlr\naturalxmlr
- \betweenXMLRchild\xmlr{##1}{##2}{##3}{##4}%
- \popmacro\xmlr}
- {}}%
- #2#5\empty#4%
- \popmacro\betweenXMLRchild
- \popmacro\xmlr}
-
-\def\doencapsulateXMLRchild#1#2#3#4%
- {\pushmacro\xmlr
- \pushmacro\betweenXMLRchild
- \def\betweenXMLRchild{\def\betweenXMLRchild{#2}}%
- \def\xmlr##1##2##3##4%
- {\pushmacro\xmlr
- \let\xmlr\naturalxmlr
- \betweenXMLRchild\xmlr{##1}{##2}{##3}{##4}%
- \popmacro\xmlr}%
- #1#4\empty#3%
- \popmacro\betweenXMLRchild
- \popmacro\xmlr}
-
-\let\encapsulateXMLR\doencapsulateXMLRchild
-
-\def\withnextXMLRelementelse#1#2%
- {\def\xdowithnextXMLRelement##1##2##3##4##5%
- {\def\nextXMLRelement{##1{##2}{##3}{##4}{##5}}#1}%
- \def\xnowithnextXMLRelement%
- {\let\nextXMLRelement\empty#2}%
- \doifnextcharelse\xmlr\xdowithnextXMLRelement\xnowithnextXMLRelement}
-
-\def\encapsulatenextXMLRelements#1#2#3#4% oude bewaren
- {\pushmacro\betweenXMLRchild
- \pushmacro\afterXMLRchild
- \def\betweenXMLRchild{#1\def\betweenXMLRchild{#2}}%
- \let\afterXMLRchild\empty
- \withnextXMLRelementelse
- {\betweenXMLRchild
- \def\afterXMLRchild{#3}%
- \nextXMLRelement
- \doifnextcharelse\empty\xnowithnextXMLRelement\xdowithnextXMLRelement}
- {\afterXMLRchild
- \popmacro\afterXMLRchild
- \popmacro\betweenXMLRchild}%
- #4}
-
-\def\collectXMLRchild#1#2%
- {\XMLRtoks\emptytoks
- \pushmacro\xmlr
- \def\xmlr##1##2##3##4%
- {\doif{##1}{#1}{\appendtoks##4\to\XMLRtoks}}%
- #2\empty
- \popmacro\xmlr}
-
-\def\doifelseXMLRneighbors#1#2%
- {\XMLRtoks\emptytoks
- \pushmacro\xmlr
- \donefalse
- \let\prevXMLRchild\empty
- \def\xmlr##1##2##3##4%
- {\doif{##1}{#1}{\doif{##1}\prevXMLRchild{\donetrue}}%
- \def\prevXMLRchild{##1}}%
- #2\empty
- \popmacro\xmlr
- \ifdone
- \expandafter\firstoftwoarguments
- \else
- \expandafter\secondoftwoarguments
- \fi}
-
-\def\collectbetweenXMLRchild#1#2#3%
- {\XMLRtoks\emptytoks
- \pushmacro\xmlr
- \pushmacro\betweenXMLRchild
- \def\betweenXMLRchild{\def\betweenXMLRchild{\appendtoks#2\to\XMLRtoks}}%
- \def\xmlr##1##2##3##4%
- {\rawdoifinsetelse{##1}{#1}
- {\betweenXMLRchild\appendtoks\xmlr{##1}{##2}{##3}{##4}\to\XMLRtoks}{}}%
- #3\empty
- \popmacro\betweenXMLRchild
- \popmacro\xmlr}
-
-\def\dorawcollectbetweenXMLR#1#2%
- {\pushmacro\xmlr
- \pushmacro\betweenXMLRchild
- \def\betweenXMLRchild{\def\betweenXMLRchild{#1}}%
- \def\xmlr##1##2##3##4%
- {\betweenXMLRchild\appendtoks\xmlr{##1}{##2}{##3}{##4}\to\XMLRtoks}%
- #2\empty
- \popmacro\betweenXMLRchild
- \popmacro\xmlr}
-
-\def\rawcollectbetweenXMLR%
- {\XMLRtoks\emptytoks\dorawcollectbetweenXMLR}
-
-\def\docollectbetweenXMLR#1%
- {\dorawcollectbetweenXMLR{\appendtoks#1\to\XMLRtoks}}
-
-\def\collectbetweenXMLR%
- {\XMLRtoks\emptytoks\docollectbetweenXMLR}
-
-\def\processXMLRchildren#1%
- {\pushmacro\xmlr
- \let\xmlr\naturalxmlr
- #1\empty
- \popmacro\xmlr}
-
-\def\processXMLRchild#1#2% slow but more versatile
- {\pushmacro\xmlr
- \XMLRtoks\emptytoks
- \def\xmlr##1##2##3##4%
- {\rawdoifinsetelse{##1}{#1}
- {\appendtoks\xmlr{##1}{##2}{##3}{##4}\to\XMLRtoks}{}}%
- #2%
- \popmacro\xmlr
- \the\XMLRtoks\empty}
-
-\def\countXMLRchildren#1%
- {\pushmacro\xmlr
- \nofXMLRchildren=0
- \def\xmlr##1##2##3##4{\advance\nofXMLRchildren\plusone}
- #1\empty
- \popmacro\xmlr}
-
-\def\countXMLRchild#1#2%
- {\pushmacro\xmlr
- \nofXMLRchildren=0
- \def\xmlr##1##2##3##4%
- {\rawdoifinsetelse{##1}{#1}{\advance\nofXMLRchildren\plusone}{}}
- #2\empty
- \popmacro\xmlr}
-
-\def\installXMLunknownremapping
- {\remapXMLsingular[\s!unknown][CPA]\doXMLunknownSI
- \remapXMLsequence[\s!unknown][CPA]\doXMLunknownSE}
-
-\bgroup \catcode`<=\activecatcode
-
-\gdef\revertXMLremapping
- {\gdef\doXMLunknownSE##1##2{<##1>##2</##1>}%
- \gdef\doXMLunknownSI##1##2{<##1>}}
-
-\gdef\unmapXMLdata#1#2% todo: singular, evt ##2 space ervoor en ##1##2
- {\bgroup
- \revertXMLremapping
- \expandXMLremapping % now we can roll back
- \setnormalXMLhandler % using the normal parser
- \resetXMLmapping % and leaving the mapping namespace
- \xdef\unmappedXMLdata{#2}% recreate the original
- \enableXMLelements % enable normal handler
- \unmappedXMLdata % off we go ...
- \egroup}
-
-\egroup
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-mea.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-mea.mkii
deleted file mode 100644
index d56d6c54ba9..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-mea.mkii
+++ /dev/null
@@ -1,152 +0,0 @@
-% filtered from html files by Patrick Ion
-%
-% ISOAMSA Characters Extended
-%
-% Added Math Symbols: Arrow Relations
-
-\defineMMLentity angzarr E248 {unknown} angle with down zig-zag arrow
-\defineMMLentity cirmid E250 {unknown} circle, mid below
-\defineMMLentity cudarrl E23E {unknown} left, curved, down arrow
-\defineMMLentity cudarrr E400 {unknown} right, curved, down arrow
-\defineMMLentity cularr 21B6 {unknown} left curved arrow
-\defineMMLentity cularrp E24A {unknown} curved left arrow with plus
-\defineMMLentity curarr 21B7 {unknown} right curved arrow
-\defineMMLentity curarrm E249 {unknown} curved right arrow with minus
-\defineMMLentity Darr 21A1 {unknown} down two-headed arrow
-\defineMMLentity dArr 21D3 {\Downarrow} down double arrow
-\defineMMLentity ddarr 21CA {unknown} two down arrows
-\defineMMLentity DDotrahd E238 {unknown} right arrow with dotted stem
-\defineMMLentity dfisht E24C {unknown} down fish tail
-\defineMMLentity dHar E227 {unknown} down harpoon-left, down harpoon-right
-\defineMMLentity dharl 21C3 {unknown} down harpoon-left
-\defineMMLentity dharr 21C2 {unknown} down harpoon-rt
-\defineMMLentity duarr E216 {unknown} down arrow, up arrow
-\defineMMLentity duhar E217 {unknown} down harp, up harp
-\defineMMLentity dzigrarr 21DD {unknown} right long zig-zag arrow
-\defineMMLentity erarr E236 {unknown} equal, right arrow below
-\defineMMLentity hArr 21D4 {\Leftrightarrow} left and right double arrow
-\defineMMLentity harr 2194 {\leftrightarrow} left and right arrow
-\defineMMLentity harrcir E240 {unknown} left and right arrow with a circle
-\defineMMLentity harrw 21AD {unknown} left and right arr-wavy
-\defineMMLentity hoarr E243 {unknown} horizontal open arrow
-\defineMMLentity imof 22B7 {unknown} image of
-\defineMMLentity lAarr 21DA {unknown} left triple arrow
-\defineMMLentity Larr 219E {unknown} twoheadleftarrow
-\defineMMLentity larrbfs E220 {unknown} left arrow-bar, filled square
-\defineMMLentity larrfs E222 {unknown} left arrow, filled square
-\defineMMLentity larrhk 21A9 {unknown} left arrow-hooked
-\defineMMLentity larrlp 21AB {unknown} left arrow-looped
-\defineMMLentity larrpl E23F {unknown} left arrow, plus
-\defineMMLentity larrsim E24E {unknown} left arrow, similar
-\defineMMLentity larrtl 21A2 {unknown} left arrow-tailed
-\defineMMLentity lAtail E23D {unknown} left double arrow-tail
-\defineMMLentity latail E23C {unknown} left arrow-tail
-\defineMMLentity lBarr E206 {unknown} left doubly broken arrow
-\defineMMLentity lbarr E402 {unknown} left broken arrow
-\defineMMLentity ldca E21A {unknown} left down curved arrow
-\defineMMLentity ldrdhar E22C {unknown} left harpoon-down over right harpoon-down
-\defineMMLentity ldrushar E228 {unknown} left-down-right-up harpoon
-\defineMMLentity ldsh 21B2 {unknown} left down angled arrow
-\defineMMLentity lfisht E214 {unknown} left fish tail
-\defineMMLentity lHar E225 {unknown} left harpoon-up over left harpoon-down
-\defineMMLentity lhard 21BD {\leftharpoondown} left harpoon-down
-\defineMMLentity lharu 21BC {\leftharpoonup} left harpoon-up
-\defineMMLentity lharul E22E {unknown} left harpoon-up over long dash
-\defineMMLentity llarr 21C7 {unknown} two left arrows
-\defineMMLentity llhard E231 {unknown} left harpoon-down below long dash
-\defineMMLentity loarr E242 {unknown} left open arrow
-\defineMMLentity lrarr 21C6 {unknown} left arr over right arr
-\defineMMLentity lrhar 21CB {unknown} left harp over r
-\defineMMLentity lrhard E22F {unknown} right harpoon-down below long dash
-\defineMMLentity lsh 21B0 {\Lsh} Lsh
-\defineMMLentity lurdshar E229 {unknown} left-up-right-down harpoon
-\defineMMLentity luruhar E22B {unknown} left harpoon-up over right harpoon-up
-\defineMMLentity Map E212 {unknown} twoheaded mapsto
-\defineMMLentity map 21A6 {\mapsto} mapsto
-\defineMMLentity midcir E20F {unknown} mid, circle below
-\defineMMLentity mumap 22B8 {unknown} multimap
-\defineMMLentity nearhk E20D {unknown} NE arrow-hooked
-\defineMMLentity neArr 21D7 {unknown} NE pointing double arrow
-\defineMMLentity nearr 2197 {\nearrow} NE pointing arrow
-\defineMMLentity nesear E20E {unknown} NE \& SE arrows
-\defineMMLentity nhArr 21CE {unknown} not left and right double arr
-\defineMMLentity nharr 21AE {unknown} not left and right arrow
-\defineMMLentity nlArr 21CD {unknown} not implied by
-\defineMMLentity nlarr 219A {unknown} not left arrow
-\defineMMLentity nrArr 21CF {unknown} not implies
-\defineMMLentity nrarr 219B {unknown} not right arrow
-\defineMMLentity nrarrc E21D {unknown} not right arrow-curved
-\defineMMLentity nrarrw E21B {unknown} not right arrow-wavy
-\defineMMLentity nvhArr* 21CE {unknown} not, vert, left and right double arrow
-\defineMMLentity nvlArr 21CD {unknown} not, vert, left double arrow
-\defineMMLentity nvrArr 21CF {unknown} not, vert, right double arrow
-\defineMMLentity nwarhk E20C {unknown} NW arrow-hooked
-\defineMMLentity nwArr 21D6 {unknown} NW pointing double arrow
-\defineMMLentity nwarr 2196 {\nwarrow} NW pointing arrow
-\defineMMLentity nwnear E211 {unknown} NW \& NE arrows
-\defineMMLentity olarr 21BA {unknown} left arr in circle
-\defineMMLentity orarr 21BB {unknown} right arr in circle
-\defineMMLentity origof 22B6 {unknown} original of
-\defineMMLentity rAarr 21DB {unknown} right triple arrow
-\defineMMLentity Rarr 21A0 {unknown} twoheadrightarrow
-\defineMMLentity rarrap E235 {unknown} approximate, right arrow above
-\defineMMLentity rarrbfs E221 {unknown} right arrow-bar, filled square
-\defineMMLentity rarrc E21C {unknown} right arrow-curved
-\defineMMLentity rarrfs E223 {unknown} right arrow, filled square
-\defineMMLentity rarrhk 21AA {\hookrightarrow} right arrow-hooked
-\defineMMLentity rarrlp 21AC {unknown} right arrow-looped
-\defineMMLentity rarrpl E21E {unknown} right arrow, plus
-\defineMMLentity rarrsim E24D {unknown} right arrow, similar
-\defineMMLentity Rarrtl E239 {unknown} right two-headed arrow with tail
-\defineMMLentity rarrtl 21A3 {unknown} right arrow-tailed
-\defineMMLentity rarrw 219D {unknown} right arrow-wavy
-\defineMMLentity rAtail E23B {unknown} right double arrow-tail
-\defineMMLentity ratail 21A3 {unknown} right arrow-tail
-\defineMMLentity RBarr E209 {unknown} twoheaded right broken arrow
-\defineMMLentity rBarr E207 {unknown} right doubly broken arrow
-\defineMMLentity rbarr E405 {unknown} right broken arrow
-\defineMMLentity rdca E219 {unknown} right down curved arrow
-\defineMMLentity rdldhar E22D {unknown} right harpoon-down over left harpoon-down
-\defineMMLentity rdsh 21B3 {unknown} right down angled arrow
-\defineMMLentity rfisht E215 {unknown} right fish tail
-\defineMMLentity rHar E224 {unknown} right harpoon-up over right harpoon-down
-\defineMMLentity rhard 21C1 {\rightharpoondown} right harpoon-down
-\defineMMLentity rharu 21C0 {\rightharpoonup} right harpoon-up
-\defineMMLentity rharul E230 {unknown} right harpoon-up over long dash
-\defineMMLentity rlarr 21C4 {unknown} right arr over left arr
-\defineMMLentity rlhar 21CC {unknown} right harp over l
-\defineMMLentity roarr E241 {unknown} right open arrow
-\defineMMLentity rrarr 21C9 {unknown} two right arrows
-\defineMMLentity rsh 21B1 {\Rsh} Rsh
-\defineMMLentity ruluhar E22A {unknown} right harpoon-up over left harpoon-up
-\defineMMLentity searhk E20B {unknown} SE arrow-hooked
-\defineMMLentity seArr 21D8 {unknown} SE pointing double arrow
-\defineMMLentity searr 2198 {\searrow} SE pointing arrow
-\defineMMLentity seswar E406 {unknown} SE \& SW arrows
-\defineMMLentity simrarr E234 {unknown} similar, right arrow below
-\defineMMLentity slarr E233 {unknown} short left arrow
-\defineMMLentity srarr E232 {unknown} short right arrow
-\defineMMLentity swarhk E20A {unknown} SW arrow-hooked
-\defineMMLentity swArr 21D9 {unknown} SW pointing double arrow
-\defineMMLentity swarr 2199 {\swarrow} SW pointing arrow
-\defineMMLentity swnwar E210 {unknown} SW \& NW arrows
-\defineMMLentity Uarr 219F {unknown} up two-headed arrow
-\defineMMLentity uArr 21D1 {\Uparrow} up double arrow
-\defineMMLentity Uarrocir E237 {unknown} up two-headed arrow above circle
-\defineMMLentity udarr 21C5 {unknown} up arrow, down arrow
-\defineMMLentity udhar E218 {unknown} up harp, down harp
-\defineMMLentity ufisht E24B {unknown} up fish tail
-\defineMMLentity uHar E226 {unknown} up harpoon-left, up harpoon-right
-\defineMMLentity uharl 21BF {unknown} up harpoon-left
-\defineMMLentity uharr 21BE {unknown} up harp-r
-\defineMMLentity uuarr 21C8 {unknown} two up arrows
-\defineMMLentity vArr 21D5 {\Updownarrow} up \& down double arrow
-\defineMMLentity varr 2195 {\updownarrow} up \& down arrow
-\defineMMLentity xhArr E202 {unknown} long left and right double arr
-\defineMMLentity xharr E203 {unknown} long left and right arr
-\defineMMLentity xlArr E200 {unknown} long left double arrow
-\defineMMLentity xlarr E201 {unknown} long left arrow
-\defineMMLentity xmap E208 {unknown} longmapsto
-\defineMMLentity xrArr E204 {unknown} long right double arr
-\defineMMLentity xrarr E205 {unknown} long right arrow
-\defineMMLentity zigrarr E244 {unknown} right zig-zag arrow
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-meb.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-meb.mkii
deleted file mode 100644
index ba370cadf94..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-meb.mkii
+++ /dev/null
@@ -1,124 +0,0 @@
-% filtered from html files by Patrick Ion
-%
-% ISOAMSB Characters Extended
-%
-% Added Math Symbols: Binary Operators
-
-\defineMMLentity ac E207 {unknown} most positive
-\defineMMLentity acE E290 {unknown} most positive, two lines below
-\defineMMLentity amalg E251 {\amalg} amalgamation or coproduct
-\defineMMLentity barvee 22BD {unknown} bar, vee
-\defineMMLentity Barwed 2306 {unknown} logical and, double bar above
-\defineMMLentity barwed 22BC {unknown} logical and, bar above
-\defineMMLentity bsolb E280 {unknown} reverse solidus in square
-\defineMMLentity Cap 22D2 {unknown} double intersection
-\defineMMLentity capand E281 {unknown} intersection, and
-\defineMMLentity capbrcup E271 {unknown} intersection, bar, union
-\defineMMLentity capcap E273 {unknown} intersection, intersection, joined
-\defineMMLentity capcup E26F {unknown} intersection above union
-\defineMMLentity capdot E261 {unknown} intersection, with dot
-\defineMMLentity caps E275 {unknown} intersection, serifs
-\defineMMLentity ccaps E279 {unknown} closed intersection, serifs
-\defineMMLentity ccups E278 {unknown} closed union, serifs
-\defineMMLentity ccupssm E27A {unknown} closed union, serifs, smash product
-\defineMMLentity coprod 2210 {\coprod} coproduct operator
-\defineMMLentity Cup 22D3 {unknown} double union
-\defineMMLentity cupbrcap E270 {unknown} union, bar, intersection
-\defineMMLentity cupcap E26E {unknown} union above intersection
-\defineMMLentity cupcup E272 {unknown} union, union, joined
-\defineMMLentity cupdot 228D {unknown} union, with dot
-\defineMMLentity cupor E282 {unknown} union, or
-\defineMMLentity cups E274 {unknown} union, serifs
-\defineMMLentity cuvee 22CE {unknown} curly logical or
-\defineMMLentity cuwed 22CF {unknown} curly logical and
-\defineMMLentity Dagger 2021 {\ddagger} double dagger relation
-\defineMMLentity dagger 2020 {\dagger} dagger relation
-\defineMMLentity diam 22C4 {unknown} open diamond
-\defineMMLentity divonx 22C7 {unknown} division on times
-\defineMMLentity eplus E268 {unknown} equal, plus
-\defineMMLentity hercon 22B9 {unknown} hermitian conjugate matrix
-\defineMMLentity intcal 22BA {\intercal} intercal
-\defineMMLentity iprod E259 {unknown} interior product
-\defineMMLentity loplus E25C {unknown} plus sign in left half circle
-\defineMMLentity lotimes E25E {unknown} multiply sign in left half circle
-\defineMMLentity lthree 22CB {unknown} leftthreetimes
-\defineMMLentity ltimes 22C9 {unknown} times sign, left closed
-\defineMMLentity midast 2217 {\ast} centered asterisk
-\defineMMLentity minusb 229F {unknown} minus sign in box
-\defineMMLentity minusd 2238 {unknown} minus sign, dot above
-\defineMMLentity minusdu E25B {unknown} minus sign, dot below
-\defineMMLentity ncap E284 {unknown} bar, intersection
-\defineMMLentity ncup E283 {unknown} bar, union
-\defineMMLentity oast 229B {unknown} asterisk in circle
-\defineMMLentity ocir 229A {unknown} small circle in circle
-\defineMMLentity odash 229D {unknown} hyphen in circle
-\defineMMLentity odiv E285 {unknown} divide in circle
-\defineMMLentity odot 2299 {\odot} middle dot in circle
-\defineMMLentity odsold E286 {unknown} dot, solidus, dot in circle
-\defineMMLentity ofcir E287 {unknown} filled circle in circle
-\defineMMLentity ogt E289 {unknown} greater-than in circle
-\defineMMLentity ohbar E260 {unknown} circle with horizontal bar
-\defineMMLentity olcir E409 {unknown} large circle in circle
-\defineMMLentity olt E288 {unknown} less-than in circle
-\defineMMLentity omid E40A {unknown} vertical bar in circle
-\defineMMLentity ominus 2296 {\ominus} minus sign in circle
-\defineMMLentity opar E28A {unknown} parallel in circle
-\defineMMLentity operp E28B {unknown} perpendicular in circle
-\defineMMLentity oplus 2295 {\oplus} plus sign in circle
-\defineMMLentity osol 2298 {unknown} solidus in circle
-\defineMMLentity Otimes E28C {unknown} multiply sign in double circle
-\defineMMLentity otimes 2297 {\otimes} multiply sign in circle
-\defineMMLentity otimesas E28D {unknown} multiply sign in circle, circumflex accent
-\defineMMLentity ovbar E40B {unknown} circle with vertical bar
-\defineMMLentity plusacir E26A {unknown} plus, circumflex accent above
-\defineMMLentity plusb 229E {unknown} plus sign in box
-\defineMMLentity pluscir E266 {unknown} plus, small circle above
-\defineMMLentity plusdo 2214 {unknown} plus sign, dot above
-\defineMMLentity plusdu E25A {unknown} plus sign, dot below
-\defineMMLentity pluse E267 {unknown} plus, equals
-\defineMMLentity plussim E26C {unknown} plus, similar below
-\defineMMLentity plustwo E269 {unknown} plus, two; Nim-addition
-\defineMMLentity race E40C {unknown} reverse most positive, line below
-\defineMMLentity roplus E25D {unknown} plus sign in right half circle
-\defineMMLentity rotimes E40D {unknown} multiply sign in right half circle
-\defineMMLentity rthree 22CC {unknown} rightthreetimes
-\defineMMLentity rtimes 22CA {unknown} times sign, right closed
-\defineMMLentity sdot 22C5 {\cdot} small middle dot
-\defineMMLentity sdotb 22A1 {unknown} small dot in box
-\defineMMLentity setmn 2216 {unknown} reverse solidus
-\defineMMLentity simplus E26B {unknown} plus, similar above
-\defineMMLentity smashp E264 {unknown} smash product
-\defineMMLentity solb E27F {unknown} solidus in square
-\defineMMLentity sqcap 2293 {\sqcap} square intersection
-\defineMMLentity sqcaps E277 {unknown} square intersection, serifs
-\defineMMLentity sqcup 2294 {\sqcup} square union
-\defineMMLentity sqcups E276 {unknown} square union, serifs
-\defineMMLentity ssetmn E844 {unknown} sm reverse solidus
-\defineMMLentity sstarf 22C6 {\star} small star, filled, low
-\defineMMLentity subdot E262 {unknown} subset, with dot
-\defineMMLentity sum 2211 {\sum} summation operator
-\defineMMLentity supdot E263 {unknown} superset, with dot
-\defineMMLentity timesb 22A0 {unknown} multiply sign in box
-\defineMMLentity timesbar E28E {unknown} multiply sign, bar below
-\defineMMLentity timesd E26D {unknown} times, dot
-\defineMMLentity tridot 25EC {unknown} dot in triangle
-\defineMMLentity triminus E27C {unknown} minus in triangle
-\defineMMLentity triplus E27B {unknown} plus in triangle
-\defineMMLentity trisb E27E {unknown} triangle, serifs at bottom
-\defineMMLentity tritime E27D {unknown} multiply in triangle
-\defineMMLentity uplus 228E {\uplus} plus sign in union
-\defineMMLentity veebar 22BB {unknown} logical or, bar below
-\defineMMLentity wedbar E265 {unknown} wedge, bar below
-\defineMMLentity wreath 2240 {unknown} wreath product
-\defineMMLentity xcap 22C2 {\bigcap} intersection operator
-\defineMMLentity xcirc 25CB {\bigcirc} large circle
-\defineMMLentity xcup 22C3 {\bigcup} union operator
-\defineMMLentity xdtri 25BD {\bigtriangledown} big down triangle, open
-\defineMMLentity xodot 2299 {\bigodot} circle dot operator
-\defineMMLentity xoplus 2295 {\bigoplus} circle plus operator
-\defineMMLentity xotime 2297 {\bigotimes} circle times operator
-\defineMMLentity xsqcup 2294 {\bigsqcup} square union operator
-\defineMMLentity xuplus 228E {\biguplus} biguplus
-\defineMMLentity xutri 25B3 {\bigtriangleup} big up triangle, open
-\defineMMLentity xvee 22C1 {\bigvee} logical and operator
-\defineMMLentity xwedge 22C0 {\bigwedge} logical or operator
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-mec.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-mec.mkii
deleted file mode 100644
index 9e941897c61..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-mec.mkii
+++ /dev/null
@@ -1,28 +0,0 @@
-% filtered from html files by Patrick Ion
-%
-% ISOAMSC Characters Extended
-%
-% Added Math Symbols: Delimiters
-
-\defineMMLentity dlcorn 231E {unknown} lower left corner
-\defineMMLentity drcorn 231F {unknown} lower right corner
-\defineMMLentity gtlPar E296 {unknown} double left parenthesis, greater
-\defineMMLentity langd E297 {unknown} left angle, dot
-\defineMMLentity lbrke E299 {unknown} left bracket, equal
-\defineMMLentity lbrksld E29D {unknown} left bracket, solidus bottom corner
-\defineMMLentity lbrkslu E29B {unknown} left bracket, solidus top corner
-\defineMMLentity lceil 2308 {\lceil} left ceiling
-\defineMMLentity lfloor 230A {\lfloor} left floor
-\defineMMLentity lmoust E294 {\lmoustache} left moustache
-\defineMMLentity lparlt E292 {unknown} left parenthesis, lt
-\defineMMLentity ltrPar E295 {unknown} double right parenthesis, less
-\defineMMLentity rangd E298 {unknown} right angle, dot
-\defineMMLentity rbrke E29A {unknown} right bracket, equal
-\defineMMLentity rbrksld E29C {unknown} right bracket, solidus bottom corner
-\defineMMLentity rbrkslu E29E {unknown} right bracket, solidus top corner
-\defineMMLentity rceil 2309 {\rceil} right ceiling
-\defineMMLentity rfloor 230B {\rfloor} right floor
-\defineMMLentity rmoust E293 {\rmoustache} right moustache
-\defineMMLentity rpargt E291 {unknown} right paren, gt
-\defineMMLentity ulcorn 231C {unknown} upper left corner
-\defineMMLentity urcorn 231D {unknown} upper right corner
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-meh.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-meh.mkii
deleted file mode 100644
index 1636f2a2b9d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-meh.mkii
+++ /dev/null
@@ -1,166 +0,0 @@
-% filtered from html files by Patrick Ion
-%
-% ISOTECH Characters Extended
-%
-% General Technical
-
-\defineMMLentity acd E3A6 {unknown} ac current
-\defineMMLentity aleph 2135 {\aleph} aleph, Hebrew
-\defineMMLentity And E374 {unknown} double logical and
-\defineMMLentity and 2227 {\wedge} logical and
-\defineMMLentity andand E36E {unknown} two logical and
-\defineMMLentity andd E394 {unknown} and, horizontal dash
-\defineMMLentity andslope E50A {unknown} sloping large and
-\defineMMLentity andv E391 {unknown} and with middle stem
-\defineMMLentity angrt 221F {unknown} right (90 degree) angle
-\defineMMLentity angsph 2222 {unknown} angle-spherical
-\defineMMLentity angst 212B {\Angstrom} Angstrom capital A, ring
-\defineMMLentity ap 2248 {\approx} approximate
-\defineMMLentity apacir E38C {unknown} approximate, circumflex accent
-\defineMMLentity awconint 2233 {unknown} contour integral, anti-clockwise
-\defineMMLentity awint E39B {unknown} anti clock-wise integration
-\defineMMLentity becaus 2235 {unknown} because
-\defineMMLentity bernou 212C {unknown} Bernoulli function (script capital B)
-\defineMMLentity bne E388 {unknown} reverse not equal
-\defineMMLentity bnequiv E387 {unknown} reverse not equivalent
-\defineMMLentity bNot E3AD {unknown} reverse not with two horizontal strokes
-\defineMMLentity bnot 2310 {unknown} reverse not
-\defineMMLentity bottom 22A5 {unknown} bottom
-\defineMMLentity cap 2229 {\cap} intersection
-\defineMMLentity Cconint 2230 {unknown} triple contour integral operator
-\defineMMLentity cirfnint E395 {unknown} circulation function
-\defineMMLentity compfn 2218 {\circ} composite function (small circle)
-\defineMMLentity cong 2245 {\cong} congruent with
-\defineMMLentity Conint 222F {unknown} double contour integral operator
-\defineMMLentity conint 222E {\oint} contour integral operator
-\defineMMLentity ctdot 22EF {\cdots} three dots, centered
-\defineMMLentity cup 222A {\cup} union or logical sum
-\defineMMLentity cwconint 2232 {unknown} contour integral, clockwise
-\defineMMLentity cwint 2231 {unknown} clockwise integral
-\defineMMLentity cylcty 232D {unknown} cylindricity
-\defineMMLentity disin E3A0 {unknown} set membership, long horizontal stroke
-\defineMMLentity Dot 0308 {unknown} dieresis or umlaut mark
-\defineMMLentity DotDot 20DC {unknown} four dots above
-\defineMMLentity dsol E3A9 {unknown} solidus, bar above
-\defineMMLentity dtdot 22F1 {\ddots} three dots, descending
-\defineMMLentity dwangle E3AA {unknown} large downward pointing angle
-\defineMMLentity elinters E3A7 {unknown} electrical intersection
-\defineMMLentity epar 22D5 {unknown} parallel, equal; equal or parallel
-\defineMMLentity eparsl E384 {unknown} parallel, slanted, equal; homothetically co
-\defineMMLentity equiv 2261 {\equiv} identical with
-\defineMMLentity eqvparsl E386 {unknown} equivalent, equal; congruent and parallel
-\defineMMLentity exist 2203 {\exists} at least one exists
-\defineMMLentity fltns E381 {unknown} flatness
-\defineMMLentity forall 2200 {\forall} for all
-\defineMMLentity fpartint E396 {unknown} finite part integral
-\defineMMLentity ge 2265 {\geq} greater-than-or-equal
-\defineMMLentity hamilt 210B {unknown} Hamiltonian (script capital H)
-\defineMMLentity iff E365 {unknown} if and only if
-\defineMMLentity iinfin E372 {unknown} infinity sign, incomplete
-\defineMMLentity imped E50B {unknown} impedance
-\defineMMLentity infin 221E {\infty} infinity
-\defineMMLentity infintie E50C {unknown} tie, infinity
-\defineMMLentity Int 222C {unknown} double integral operator
-\defineMMLentity int 222B {\int} integral operator
-\defineMMLentity intlarhk E39A {unknown} integral, left arrow with hook
-\defineMMLentity isin 220A {\in} set membership
-\defineMMLentity isindot E39C {unknown} set membership, dot above
-\defineMMLentity isinE E39E {unknown} set membership, two horizontal strokes
-\defineMMLentity isins E3A4 {unknown} set membership, vertical bar on horizontal
-\defineMMLentity isinsv E3A2 {unknown} large set membership, vertical bar on horiz
-\defineMMLentity isinv 2208 {unknown} set membership, variant
-\defineMMLentity lagran 2112 {unknown} Lagrangian (script capital L)
-\defineMMLentity Lang 300A {unknown} left angle bracket, double
-\defineMMLentity lang 3008 {\langle} left angle bracket
-\defineMMLentity lArr 21D0 {\Leftarrow} is implied by
-\defineMMLentity lbbrk 3014 {unknown} left broken bracket
-\defineMMLentity le 2264 {\leq} less-than-or-equal
-\defineMMLentity loang 3018 {unknown} left open angular bracket
-\defineMMLentity lobrk 301A {unknown} left open bracket
-\defineMMLentity lopar E379 {unknown} left open parenthesis
-\defineMMLentity lowast 2217 {unknown} low asterisk
-\defineMMLentity minus 2212 {unknown} minus sign
-\defineMMLentity mnplus 2213 {\mp} minus-or-plus sign
-\defineMMLentity nabla 2207 {\nabla} del, Hamilton operator
-\defineMMLentity ne 2260 {\ne} not equal
-\defineMMLentity nedot E38A {unknown} not equal, dot
-\defineMMLentity nhpar E38D {unknown} not, horizontal, parallel
-\defineMMLentity ni 220D {unknown} contains
-\defineMMLentity nis E3A5 {unknown} contains, vertical bar on horizontal stroke
-\defineMMLentity nisd E3A1 {unknown} contains, long horizontal stroke
-\defineMMLentity niv 220B {\ni} contains, variant
-\defineMMLentity Not E3AC {unknown} not with two horizontal strokes
-\defineMMLentity notin 2209 {\notin} negated set membership
-\defineMMLentity notindot E39D {unknown} negated set membership, dot above
-\defineMMLentity notinE E50D {unknown} negated set membership, two horizontal strokes
-\defineMMLentity notinva E370 {unknown} negated set membership, variant
-\defineMMLentity notinvb E37B {unknown} negated set membership, variant
-\defineMMLentity notinvc E37C {unknown} negated set membership, variant
-\defineMMLentity notni 220C {unknown} negated contains
-\defineMMLentity notniva 220C {unknown} negated contains, variant
-\defineMMLentity notnivb E37D {unknown} contains, variant
-\defineMMLentity notnivc E37E {unknown} contains, variant
-\defineMMLentity nparsl E389 {unknown} not parallel, slanted
-\defineMMLentity npart E390 {unknown} not partial differential
-\defineMMLentity npolint E399 {unknown} line integration, not including the pole
-\defineMMLentity nvinfin E38E {unknown} not, vert, infinity
-\defineMMLentity olcross E3A8 {unknown} circle, cross
-\defineMMLentity Or E375 {unknown} double logical or
-\defineMMLentity or 2228 {\vee} logical or
-\defineMMLentity ord E393 {unknown} or, horizontal dash
-\defineMMLentity order 2134 {unknown} order of (script small o)
-\defineMMLentity oror E50E {unknown} two logical or
-\defineMMLentity orslope E3AE {unknown} sloping large or
-\defineMMLentity orv E392 {unknown} or with middle stem
-\defineMMLentity par 2225 {\parallel} parallel
-\defineMMLentity parsl E382 {unknown} parallel, slanted
-\defineMMLentity part 2202 {\partial} partial differential
-\defineMMLentity permil 2030 {unknown} per thousand
-\defineMMLentity perp 22A5 {\perp} perpendicular
-\defineMMLentity pertenk 2031 {unknown} per 10 thousand
-\defineMMLentity phmmat 2133 {unknown} physics M-matrix (script capital M)
-\defineMMLentity pointint E376 {unknown} integral around a point operator
-\defineMMLentity Prime 2033 {unknown} double prime or second
-\defineMMLentity prime 2032 {\prime} prime or minute
-\defineMMLentity profalar 232E {unknown} all-around profile
-\defineMMLentity profline 2312 {unknown} profile of a line
-\defineMMLentity profsurf 2313 {unknown} profile of a surface
-\defineMMLentity prop 221D {\propto} is proportional to
-\defineMMLentity qint E378 {unknown} quadruple integral operator
-\defineMMLentity qprime E371 {unknown} quadruple prime
-\defineMMLentity quatint E377 {unknown} quaternion integral operator
-\defineMMLentity radic 221A {\surd} radical
-\defineMMLentity Rang 300B {unknown} right angle bracket, double
-\defineMMLentity rang 3009 {\rangle} right angle bracket
-\defineMMLentity rArr 21D2 {\Rightarrow} implies
-\defineMMLentity rbbrk 3015 {unknown} right broken bracket
-\defineMMLentity roang 3019 {unknown} right open angular bracket
-\defineMMLentity robrk 301B {unknown} right open bracket
-\defineMMLentity ropar E37A {unknown} right open parenthesis
-\defineMMLentity rppolint E397 {unknown} line integration, rectangular path around pole
-\defineMMLentity scpolint E398 {unknown} line integration, semi-circular path around pole
-\defineMMLentity sim 223C {\sim} similar
-\defineMMLentity simdot E38B {unknown} similar, dot
-\defineMMLentity sime 2243 {\simeq} similar, equals
-\defineMMLentity smeparsl E385 {unknown} similar, parallel, slanted, equal
-\defineMMLentity square 25A1 {\square} square
-\defineMMLentity squarf 25A0 {unknown} square, filled
-\defineMMLentity strns E380 {unknown} straightness
-\defineMMLentity sub 2282 {\subset} subset or is implied by
-\defineMMLentity sube 2286 {\subseteq} subset, equals
-\defineMMLentity sup 2283 {\supset} superset or implies
-\defineMMLentity supe 2287 {\supseteq} superset, equals
-\defineMMLentity tdot 20DB {unknown} three dots above
-\defineMMLentity there4 2234 {unknown} therefore
-\defineMMLentity tint 222D {unknown} triple integral operator
-\defineMMLentity top 22A4 {\top} top
-\defineMMLentity topbot 2336 {unknown} top and bottom
-\defineMMLentity topcir E383 {unknown} top, circle below
-\defineMMLentity tprime 2034 {unknown} triple prime
-\defineMMLentity utdot 22F0 {unknown} three dots, ascending
-\defineMMLentity uwangle E3AB {unknown} large upward pointing angle
-\defineMMLentity vangrt 22BE {unknown} right angle, variant (with arc)
-\defineMMLentity veeeq 225A {unknown} logical or, equals
-\defineMMLentity Verbar 2016 {\Vert} double vertical bar
-\defineMMLentity wedgeq 2259 {unknown} corresponds to (wedge, equals)
-\defineMMLentity xnis E3A3 {unknown} large contains, vertical bar on horizontal stroke
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-men.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-men.mkii
deleted file mode 100644
index d548c83940e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-men.mkii
+++ /dev/null
@@ -1,98 +0,0 @@
-% filtered from html files by Patrick Ion
-%
-% ISOAMSN Characters Extended
-%
-% Added Math Symbols: Negated Relations
-
-\defineMMLentity gnap E411 {unknown} greater, not approximate
-\defineMMLentity gnE 2269 {unknown} greater, not double equals
-\defineMMLentity gne 2269 {unknown} greater, not equals
-\defineMMLentity gnsim 22E7 {unknown} greater, not similar
-\defineMMLentity gvnE E2A1 {unknown} gt, vert, not double equals
-\defineMMLentity lnap E2A2 {unknown} less, not approximate
-\defineMMLentity lnE 2268 {unknown} less, not double equals
-\defineMMLentity lne 2268 {unknown} less, not equals
-\defineMMLentity lnsim 22E6 {unknown} less, not similar
-\defineMMLentity lvnE E2A4 {unknown} less, vert, not double equals
-\defineMMLentity nap 2249 {unknown} not approximate
-\defineMMLentity napE E2C7 {unknown} not approximately equal or equal to
-\defineMMLentity napid E2BC {unknown} not approximately identical to
-\defineMMLentity ncong 2247 {unknown} not congruent with
-\defineMMLentity ncongdot E2C5 {unknown} not congruent, dot
-\defineMMLentity nequiv 2262 {unknown} not identical with
-\defineMMLentity ngE 2271 {unknown} not greater, double equals
-\defineMMLentity nge E2A6 {unknown} not greater-than-or-equal
-\defineMMLentity nges 2271 {unknown} not gt-or-equals, slanted
-\defineMMLentity nGg E2CE {unknown} not triple greater than
-\defineMMLentity ngsim 2275 {unknown} not greater, similar
-\defineMMLentity nGt E2CA {unknown} not, vert, much greater than
-\defineMMLentity ngt 226F {unknown} not greater-than
-\defineMMLentity nGtv E2CC {unknown} not much greater than, variant
-\defineMMLentity nlE 2270 {unknown} not less, double equals
-\defineMMLentity nle E2A7 {unknown} not less-than-or-equal
-\defineMMLentity nles 2270 {unknown} not less-or-equals, slant
-\defineMMLentity nLl E2CD {unknown} not triple less than
-\defineMMLentity nlsim 2274 {unknown} not less, similar
-\defineMMLentity nLt E2C9 {unknown} not, vert, much less than
-\defineMMLentity nlt 226E {unknown} not less-than
-\defineMMLentity nltri 22EA {unknown} not left triangle
-\defineMMLentity nltrie 22EC {unknown} not left triangle, equals
-\defineMMLentity nLtv E2CB {unknown} not much less than, variant
-\defineMMLentity nmid 2224 {unknown} negated mid
-\defineMMLentity npar 2226 {unknown} not parallel
-\defineMMLentity npr 2280 {unknown} not precedes
-\defineMMLentity nprcue 22E0 {unknown} not curly precedes, equals
-\defineMMLentity npre E412 {unknown} not precedes, equals
-\defineMMLentity nrtri 22EB {unknown} not right triangle
-\defineMMLentity nrtrie 22ED {unknown} not right triangle, equals
-\defineMMLentity nsc 2281 {unknown} not succeeds
-\defineMMLentity nsccue 22E1 {unknown} not succeeds, curly equals
-\defineMMLentity nsce E413 {unknown} not succeeds, equals
-\defineMMLentity nsim 2241 {unknown} not similar
-\defineMMLentity nsime 2244 {unknown} not similar, equals
-\defineMMLentity nsmid E2AA {unknown} negated short mid
-\defineMMLentity nspar E2AB {unknown} not short par
-\defineMMLentity nsqsube 22E2 {unknown} not, square subset, equals
-\defineMMLentity nsqsupe 22E3 {unknown} not, square superset, equals
-\defineMMLentity nsub 2284 {unknown} not subset
-\defineMMLentity nsubE 2288 {unknown} not subset, double equals
-\defineMMLentity nsube 2288 {unknown} not subset, equals
-\defineMMLentity nsup 2285 {unknown} not superset
-\defineMMLentity nsupE 2289 {unknown} not superset, double equals
-\defineMMLentity nsupe 2289 {unknown} not superset, equals
-\defineMMLentity ntgl 2279 {unknown} not greater, less
-\defineMMLentity ntlg 2278 {unknown} not less, greater
-\defineMMLentity ntvgl 2279 {unknown} not, vert, greater, less
-\defineMMLentity ntvlg 2278 {unknown} not, vert, less, greater
-\defineMMLentity nvap E2C6 {unknown} not, vert, approximate
-\defineMMLentity nVDash 22AF {unknown} not double vert, double dash
-\defineMMLentity nVdash 22AE {unknown} not double vertical, dash
-\defineMMLentity nvDash 22AD {unknown} not vertical, double dash
-\defineMMLentity nvdash 22AC {unknown} not vertical, dash
-\defineMMLentity nvge 2271 {unknown} not, vert, greater-than-or-equal
-\defineMMLentity nvgt 226F {unknown} not, vert, greater-than
-\defineMMLentity nvle 2270 {unknown} not, vert, less-than-or-equal
-\defineMMLentity nvlt 226E {unknown} not, vert, less-than
-\defineMMLentity nvltrie E2D0 {unknown} not, vert, left triangle, equals
-\defineMMLentity nvrtrie E2CF {unknown} not, vert, right triangle, equals
-\defineMMLentity nvsim E415 {unknown} not, vert, similar
-\defineMMLentity parsim E2C8 {unknown} parallel, similar
-\defineMMLentity prnap 22E8 {unknown} precedes, not approx
-\defineMMLentity prnE E2B3 {unknown} precedes, not double equals
-\defineMMLentity prnsim 22E8 {unknown} precedes, not similar
-\defineMMLentity rnmid E2D1 {unknown} reverse nmid
-\defineMMLentity scnap 22E9 {unknown} succeeds, not approx
-\defineMMLentity scnE E2B5 {unknown} succeeds, not double equals
-\defineMMLentity scnsim 22E9 {unknown} succeeds, not similar
-\defineMMLentity simne 2246 {unknown} similar, not equals
-\defineMMLentity solbar E416 {unknown} solidus, bar through
-\defineMMLentity subnE 228A {unknown} subset, not double equals
-\defineMMLentity subne 228A {unknown} subset, not equals
-\defineMMLentity supnE 228B {unknown} superset, not double equals
-\defineMMLentity supne 228B {unknown} superset, not equals
-\defineMMLentity vnsub 2284 {unknown} not subset, variant
-\defineMMLentity vnsup 2285 {unknown} not superset, variant
-\defineMMLentity vsubnE E2B8 {unknown} subset not double equals, variant
-\defineMMLentity vsubne E2B9 {unknown} subset, not equals, variant
-\defineMMLentity vsupnE E2BB {unknown} super not double equals, variant
-\defineMMLentity vsupne E2BA {unknown} superset, not equals, variant
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-meo.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-meo.mkii
deleted file mode 100644
index f19f80fbe30..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-meo.mkii
+++ /dev/null
@@ -1,58 +0,0 @@
-% filtered from html files by Patrick Ion
-%
-% ISOAMSO Characters Extended
-%
-% Added Math Symbols: Ordinary
-
-\defineMMLentity ang 2220 {\angle} angle
-\defineMMLentity ange E2D6 {unknown} angle, equal
-\defineMMLentity angmsd 2221 {unknown} angle-measured
-\defineMMLentity angmsdaa E2D9 {unknown} angle-measured, arrow, up, right
-\defineMMLentity angmsdab E2DA {unknown} angle-measured, arrow, up, left
-\defineMMLentity angmsdac E2DB {unknown} angle-measured, arrow, down, right
-\defineMMLentity angmsdad E2DC {unknown} angle-measured, arrow, down, left
-\defineMMLentity angmsdae E2DD {unknown} angle-measured, arrow, right, up
-\defineMMLentity angmsdaf E2DE {unknown} angle-measured, arrow, left, up
-\defineMMLentity angmsdag E2DF {unknown} angle-measured, arrow, right, down
-\defineMMLentity angmsdah E2E0 {unknown} angle-measured, arrow, left, down
-\defineMMLentity angrtvb E418 {unknown} right angle-measured
-\defineMMLentity angrtvbd E2E1 {unknown} right angle-measured, dot
-\defineMMLentity bbrk E2EE {unknown} bottom square bracket
-\defineMMLentity bbrktbrk E419 {unknown} bottom above top square bracket
-\defineMMLentity bemptyv E41A {unknown} reversed circle, slash
-\defineMMLentity beth 2136 {unknown} beth, Hebrew
-\defineMMLentity boxbox E2E6 {unknown} two joined squares
-\defineMMLentity bprime 2035 {unknown} reverse prime
-\defineMMLentity bsemi E2ED {unknown} reverse semi-colon
-\defineMMLentity cemptyv E2E8 {unknown} circle, slash, small circle above
-\defineMMLentity cirE E41B {unknown} circle, two horizontal stroked to the right
-\defineMMLentity cirscir E41C {unknown} circle, small circle to the right
-\defineMMLentity comp 2201 {unknown} complement sign
-\defineMMLentity daleth 2138 {unknown} daleth, Hebrew
-\defineMMLentity demptyv E2E7 {unknown} circle, slash, bar above
-\defineMMLentity ell 2113 {\ell} cursive small l
-\defineMMLentity empty E2D3 {unknown} letter O slashed
-\defineMMLentity emptyv 2205 {unknown} circle, slash
-\defineMMLentity gimel 2137 {unknown} gimel, Hebrew
-\defineMMLentity iiota 2129 {unknown} inverted iota
-\defineMMLentity image 2111 {\Im} imaginary
-\defineMMLentity imath 0131 {\imath} small i, no dot
-\defineMMLentity jmath E2D4 {unknown} small j, no dot
-\defineMMLentity laemptyv E2EA {unknown} circle, slash, left arrow above
-\defineMMLentity lltri E2E5 {unknown} lower left triangle
-\defineMMLentity lrtri E2E3 {unknown} lower right triangle
-\defineMMLentity mho 2127 {unknown} conductance
-\defineMMLentity nang E2D8 {unknown} not, vert, angle
-\defineMMLentity nexist 2204 {unknown} negated exists
-\defineMMLentity oS E41D {unknown} capital S in circle
-\defineMMLentity plank E2D5 {unknown} Planck's over 2pi
-\defineMMLentity plankv 210F {unknown} variant Planck's over 2pi
-\defineMMLentity raemptyv E2E9 {unknown} circle, slash, right arrow above
-\defineMMLentity range E2D7 {unknown} reverse angle, equal
-\defineMMLentity real 211C {\Re} real
-\defineMMLentity tbrk E2EF {unknown} top square bracket
-\defineMMLentity trpezium E2EC {unknown} trapezium
-\defineMMLentity ultri E2E4 {unknown} upper left triangle
-\defineMMLentity urtri E2E2 {unknown} upper right triangle
-\defineMMLentity vzigzag E2EB {unknown} vertical zig-zag line
-\defineMMLentity weierp 2118 {\wp} Weierstrass p
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-mer.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-mer.mkii
deleted file mode 100644
index becff584a9c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-mer.mkii
+++ /dev/null
@@ -1,185 +0,0 @@
-% filtered from html files by Patrick Ion
-%
-% ISOAMSR Characters Extended
-%
-% Added Math Symbols: Relations
-
-\defineMMLentity apE E315 {unknown} approximately equal or equal to
-\defineMMLentity ape 224A {unknown} approximate, equals
-\defineMMLentity apid 224B {unknown} approximately identical to
-\defineMMLentity asymp 224D {\asymp} asymptotically equal to
-\defineMMLentity Barv E311 {unknown} vert, double bar (over)
-\defineMMLentity bcong 224C {unknown} reverse congruent
-\defineMMLentity bepsi E420 {unknown} such that
-\defineMMLentity bowtie 22C8 {unknown} bowtie
-\defineMMLentity bsim 223D {unknown} reverse similar
-\defineMMLentity bsime 22CD {unknown} reverse similar, equals
-\defineMMLentity bsolhsub E34D {unknown} reverse solidus, subset
-\defineMMLentity bump 224E {unknown} bumpy equals
-\defineMMLentity bumpe 224F {unknown} bumpy equals, equals
-\defineMMLentity cire 2257 {unknown} circle, equals
-\defineMMLentity Colon 2237 {unknown} two colons
-\defineMMLentity Colone E30E {unknown} double colon, equals
-\defineMMLentity colone 2254 {unknown} colon, equals
-\defineMMLentity congdot E314 {unknown} congruent, dot
-\defineMMLentity csub E351 {unknown} subset, closed
-\defineMMLentity csube E353 {unknown} subset, closed, equals
-\defineMMLentity csup E352 {unknown} superset, closed
-\defineMMLentity csupe E354 {unknown} superset, closed, equals
-\defineMMLentity cuepr 22DE {unknown} curly equals, precedes
-\defineMMLentity cuesc 22DF {unknown} curly equals, succeeds
-\defineMMLentity Dashv E30F {unknown} double dash, vertical
-\defineMMLentity dashv 22A3 {\dashv} dash, vertical
-\defineMMLentity easter 225B {unknown} equal, asterisk above
-\defineMMLentity ecir 2256 {unknown} circle on equals sign
-\defineMMLentity ecolon 2255 {unknown} equals, colon
-\defineMMLentity eDDot E309 {unknown} equal with four dots
-\defineMMLentity eDot 2251 {unknown} equals, even dots
-\defineMMLentity efDot 2252 {unknown} equals, falling dots
-\defineMMLentity eg E328 {unknown} equal-or-greater
-\defineMMLentity egs 22DD {unknown} equal-or-gtr, slanted
-\defineMMLentity egsdot E324 {unknown} equal-or-greater, slanted, dot inside
-\defineMMLentity el E327 {unknown} equal-or-less
-\defineMMLentity els 22DC {unknown} eq-or-less, slanted
-\defineMMLentity elsdot E323 {unknown} equal-or-less, slanted, dot inside
-\defineMMLentity equest 225F {unknown} equal with questionmark
-\defineMMLentity equivDD E318 {unknown} equivalent, four dots above
-\defineMMLentity erDot 2253 {unknown} equals, rising dots
-\defineMMLentity esdot 2250 {unknown} equals, single dot above
-\defineMMLentity Esim E317 {unknown} equal, similar
-\defineMMLentity esim 2242 {unknown} equals, similar
-\defineMMLentity fork 22D4 {unknown} pitchfork
-\defineMMLentity forkv E31B {unknown} fork, variant
-\defineMMLentity frown 2322 {\frown} down curve
-\defineMMLentity gap 2273 {unknown} greater, approximate
-\defineMMLentity gE 2267 {unknown} greater, double equals
-\defineMMLentity gEl 22DB {unknown} gt, double equals, less
-\defineMMLentity gel 22DB {unknown} greater, equals, less
-\defineMMLentity ges E421 {unknown} gt-or-equal, slanted
-\defineMMLentity gescc E358 {unknown} greater than, closed by curve, equal, slanted
-\defineMMLentity gesdot E31E {unknown} greater-than-or-equal, slanted, dot inside
-\defineMMLentity gesdoto E320 {unknown} greater-than-or-equal, slanted, dot above
-\defineMMLentity gesdotol E322 {unknown} greater-than-or-equal, slanted, dot above left
-\defineMMLentity gesl E32C {unknown} greater, equal, slanted, less
-\defineMMLentity gesles E332 {unknown} greater, equal, slanted, less, equal, slanted
-\defineMMLentity Gg 22D9 {unknown} triple gtr-than
-\defineMMLentity gl 2277 {unknown} greater, less
-\defineMMLentity gla E330 {unknown} greater, less, apart
-\defineMMLentity glE E32E {unknown} greater, less, equal
-\defineMMLentity glj E32F {unknown} greater, less, overlapping
-\defineMMLentity gsim 2273 {unknown} greater, similar
-\defineMMLentity gsime E334 {unknown} greater, similar, equal
-\defineMMLentity gsiml E336 {unknown} greater, similar, less
-\defineMMLentity Gt 226B {unknown} double greater-than sign
-\defineMMLentity gtcc E356 {unknown} greater than, closed by curve
-\defineMMLentity gtcir E326 {unknown} greater than, circle inside
-\defineMMLentity gtdot 22D7 {unknown} greater than, with dot
-\defineMMLentity gtquest E32A {unknown} greater than, questionmark above
-\defineMMLentity gtrarr E35F {unknown} greater than, right arrow
-\defineMMLentity homtht 223B {unknown} homothetic
-\defineMMLentity lap 2272 {unknown} less, approximate
-\defineMMLentity lat E33A {unknown} larger than
-\defineMMLentity late E33C {unknown} larger than or equal
-\defineMMLentity lates E33E {unknown} larger than or equal, slanted
-\defineMMLentity lE 2266 {unknown} less, double equals
-\defineMMLentity lEg 22DA {unknown} less, double equals, greater
-\defineMMLentity leg 22DA {unknown} less, equals, greater
-\defineMMLentity les E425 {unknown} less-than-or-equals, slant
-\defineMMLentity lescc E357 {unknown} less than, closed by curve, equal, slanted
-\defineMMLentity lesdot E31D {unknown} less-than-or-equal, slanted, dot inside
-\defineMMLentity lesdoto E31F {unknown} less-than-or-equal, slanted, dot above
-\defineMMLentity lesdotor E321 {unknown} less-than-or-equal, slanted, dot above right
-\defineMMLentity lesg E32B {unknown} less, equal, slanted, greater
-\defineMMLentity lesges E331 {unknown} less, equal, slanted, greater, equal, slanted
-\defineMMLentity lg 2276 {unknown} less, greater
-\defineMMLentity lgE E32D {unknown} less, greater, equal
-\defineMMLentity Ll 22D8 {unknown} triple less-than
-\defineMMLentity lsim 2272 {unknown} less, similar
-\defineMMLentity lsime E333 {unknown} less, similar, equal
-\defineMMLentity lsimg E335 {unknown} less, similar, greater
-\defineMMLentity Lt 226A {unknown} double less-than sign
-\defineMMLentity ltcc E355 {unknown} less than, closed by curve
-\defineMMLentity ltcir E325 {unknown} less than, circle inside
-\defineMMLentity ltdot 22D6 {unknown} less than, with dot
-\defineMMLentity ltlarr E35E {unknown} less than, left arrow
-\defineMMLentity ltquest E329 {unknown} less than, questionmark above
-\defineMMLentity ltrie 22B4 {unknown} left triangle, equals
-\defineMMLentity mcomma E31A {unknown} minus, comma above
-\defineMMLentity mDDot 223A {unknown} minus with four dots, geometric properties
-\defineMMLentity mid 2223 {\mid} mid
-\defineMMLentity mlcp E30A {unknown} transversal intersection
-\defineMMLentity models 22A7 {\models} models
-\defineMMLentity mstpos 223E {unknown} most positive
-\defineMMLentity Pr E35C {unknown} double precedes
-\defineMMLentity pr 227A {\prec} precedes
-\defineMMLentity prap 227E {unknown} precedes, approximate
-\defineMMLentity prcue 227C {unknown} precedes, curly equals
-\defineMMLentity prE 227C {unknown} precedes, double equals
-\defineMMLentity pre 227C {\preceq} precedes, equals
-\defineMMLentity prsim 227E {unknown} precedes, similar
-\defineMMLentity prurel 22B0 {unknown} element precedes under relation
-\defineMMLentity ratio 2236 {unknown} ratio
-\defineMMLentity rtrie 22B5 {unknown} right triangle, equals
-\defineMMLentity rtriltri E359 {unknown} right triangle above left triangle
-\defineMMLentity Sc E35D {unknown} double succeeds
-\defineMMLentity sc 227B {\succ} succeeds
-\defineMMLentity scap 227F {unknown} succeeds, approximate
-\defineMMLentity sccue 227D {unknown} succeeds, curly equals
-\defineMMLentity scE 227E {unknown} succeeds, double equals
-\defineMMLentity sce 227D {\succeq} succeeds, equals
-\defineMMLentity scsim 227F {unknown} succeeds, similar
-\defineMMLentity sdote E319 {unknown} equal, dot below
-\defineMMLentity sfrown E426 {unknown} small down curve
-\defineMMLentity simg E30C {unknown} similar, greater
-\defineMMLentity simgE E338 {unknown} similar, greater, equal
-\defineMMLentity siml E30B {unknown} similar, less
-\defineMMLentity simlE E337 {unknown} similar, less, equal
-\defineMMLentity smid E301 {unknown} shortmid
-\defineMMLentity smile 2323 {\smile} up curve
-\defineMMLentity smt E339 {unknown} smaller than
-\defineMMLentity smte E33B {unknown} smaller than or equal
-\defineMMLentity smtes E33D {unknown} smaller than or equal, slanted
-\defineMMLentity spar E302 {unknown} short parallel
-\defineMMLentity sqsub 228F {unknown} square subset
-\defineMMLentity sqsube 2291 {\sqsubseteq} square subset, equals
-\defineMMLentity sqsup 2290 {unknown} square superset
-\defineMMLentity sqsupe 2292 {\sqsupseteq} square superset, equals
-\defineMMLentity ssmile E303 {unknown} small up curve
-\defineMMLentity Sub 22D0 {unknown} double subset
-\defineMMLentity subE 2286 {unknown} subset, double equals
-\defineMMLentity subedot E34F {unknown} subset, equals, dot
-\defineMMLentity submult E343 {unknown} subset, multiply
-\defineMMLentity subplus E341 {unknown} subset, plus
-\defineMMLentity subrarr E33F {unknown} subset, right arrow
-\defineMMLentity subsim E345 {unknown} subset, similar
-\defineMMLentity subsub E349 {unknown} subset above subset
-\defineMMLentity subsup E347 {unknown} subset above superset
-\defineMMLentity Sup 22D1 {unknown} double superset
-\defineMMLentity supdsub E34C {unknown} superset, subset, dash joining them
-\defineMMLentity supE 2287 {unknown} superset, double equals
-\defineMMLentity supedot E350 {unknown} superset, equals, dot
-\defineMMLentity suphsol E34E {unknown} superset, solidus
-\defineMMLentity suphsub E34B {unknown} superset, subset
-\defineMMLentity suplarr E340 {unknown} superset, left arrow
-\defineMMLentity supmult E344 {unknown} superset, multiply
-\defineMMLentity supplus E342 {unknown} superset, plus
-\defineMMLentity supsim E346 {unknown} superset, similar
-\defineMMLentity supsub E348 {unknown} superset above subset
-\defineMMLentity supsup E34A {unknown} superset above superset
-\defineMMLentity thkap E306 {unknown} thick approximate
-\defineMMLentity thksim E429 {unknown} thick similar
-\defineMMLentity topfork E31C {unknown} fork with top
-\defineMMLentity trie 225C {unknown} triangle, equals
-\defineMMLentity twixt 226C {unknown} between
-\defineMMLentity Vbar E30D {unknown} double vert, bar (under)
-\defineMMLentity vBar E310 {unknown} vert, double bar (under)
-\defineMMLentity vBarv E312 {unknown} double bar, vert over and under
-\defineMMLentity VDash 22AB {unknown} double vert, double dash
-\defineMMLentity Vdash 22A9 {unknown} double vertical, dash
-\defineMMLentity vDash 22A8 {unknown} vertical, double dash
-\defineMMLentity vdash 22A2 {\vdash} vertical, dash
-\defineMMLentity Vdashl E313 {unknown} vertical, dash (long)
-\defineMMLentity vltri 22B2 {\triangleleft} left triangle, open, variant
-\defineMMLentity vprop 221D {unknown} proportional, variant
-\defineMMLentity vrtri 22B3 {\triangleright} right triangle, open, variant
-\defineMMLentity Vvdash 22AA {unknown} triple vertical, dash
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-mmc.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-mmc.mkii
deleted file mode 100644
index 9da7fef8411..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-mmc.mkii
+++ /dev/null
@@ -1,1265 +0,0 @@
-%D \module
-%D [ file=xtag-mmc,
-%D version=2000.12.20,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=Content MathML,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt XML Macros / Content MathML}
-
-% this is the first, experimental, shabby implementation, as
-% always, the third will do -)
-
-% okay, now this is the second one, with a more kid based
-% approach, which we needed for proper nesting, but the
-% code is still too ugly
-
-\startXMLmapping[mml]
-
-\unprotect
-
-\def\MMLccomma{{,}}
-
-\def\getmmlarguments#1#2#3#4#5#6% {class} {defaults} mmlargs
- {\getXMLarguments{#1}{#2 #5}}%
-
-\def\doifMMLoperatorelse#1#2#3% temp hack
- {\pushmacro\xmlrent
- \let\xmlrent\firstofoneargument
- \edef\mmloperator{#1}%
- \@EA\unspaceargument\mmloperator\to\mmloperator
- \popmacro\xmlrent
- \doifXMLentityelse\mmloperator
- {\doifdefinedelse{doMMLcFN\mmloperator}{#2}{#3}}
- {#3}}
-
-\remapXMLsequence [ci] [CPA] \MMLcCI
-\remapXMLsequence [cn] [CPA] \MMLcCN
-\remapXMLsequence [csymbol] [CPA] \MMLcCSYMBOL
-
-\setupMMLappearance[polar][\c!alternative=\v!a] % a|b|c
-
-\def\MMLcpolar#1%
- {\doifdefinedelse{MMLcdopolar\@@MMLpolaralternative}
- {\getvalue{MMLcdopolar\@@MMLpolaralternative}{#1}}
- {#1}}
-
-\def\MMLcdopolara#1%
- {\def\MMLcsep{\MMLccomma}\getXMLentity{polar}\left(#1\right)}
-
-\def\MMLcdopolarb#1%
- {\def\MMLcsep##1\empty%
- {\getXMLentity{exponentiale}^{##1\mskip2mu\getXMLentity{imaginaryi}}}#1}
-
-\def\MMLcdopolarc#1%
- {\def\MMLcsep##1\empty%
- {\getXMLentity{exp}\left(##1\mskip2mu\getXMLentity{imaginaryi}\right)}#1}
-
-\def\MMLccartesian#1%
- {\def\MMLcsep{+}#1\getXMLentity{imaginaryi}}
-
-% float will be obsolete, an is replace by e-notation
-
-\setupMMLappearance[float][\c!symbol=\v!no] % \v!yes|dot
-
-\def\MMLcfloat#1%
- {\doifelse\@@MMLfloatsymbol\v!no
- {{\rm#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:
-
-\setupMMLappearance[enotation][\c!symbol=\v!no] % \v!yes|dot
-
-\def\MMLcenotation#1%
- {\doifelse\@@MMLenotationsymbol\v!no
- {\def\MMLcsep {\unskip{\rm e}\ignorespaces}}
- {\def\MMLcsep##1\empty{\doifelse\@@MMLenotationsymbol{dot}\cdot\times10^{##1}}}%
- #1\empty}
-
-\def\MMLcCI#1% #2% can be sped up with \doifundefined ...
- {\getXMLarguments{ci}{type="" #1}%
- \doifXMLparelse{ci}{type}
- {\processaction
- [\XMLpar{ci}{type}{}]
- [ set=>\let\next\MMLcCIset,
- vector=>\let\next\MMLcCIvector,
- matrix=>\let\next\MMLcCImatrix,
- function=>\let\next\MMLcCIfunction,
-complex-cartesian=>\let\next\MMLccartesian,
- complex=>\let\next\MMLccartesian,
- complex-polar=>\let\next\MMLcpolar,
- polar=>\let\next\MMLcpolar,
- fn=>\let\next\MMLcCIfunction,
- unknown=>\let\next\firstofoneargument]} % integer constant real float
- {\let\next\firstofoneargument}%
- \next}
-
-\def\MMLcCIset#1%
- {{\bbd#1}}
-
-\def\widevec#1%
- {\vbox{\mathsurround\zeropoint\ialign{##\crcr
- \rightarrowfill\crcr\noalign{\nointerlineskip}%
- $\hfil\displaystyle{#1}\hfil$\crcr}}}
-
-\def\MMLcCIvector#1%
- {\widevec{#1}}
-
-\def\MMLcCImatrix#1%
- {{\bi#1}}
-
-\def\MMLcCIfunction#1%
- {\doifMMLoperatorelse{#1}\MMLcCIdefault\MMLcFNdefault{}{#1}}
-
-\def\MMLcCIdefault#1#2% #1=dummy
- {#2%\!% \getXMLentity{NegThinSpace}% looks bad in A(x)
- \doifnextcharelse\xmlr
- {\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}
- {\processaction
- [\XMLpar{cn}{type}{}]
- [ integer=>\let\next\MMLcCNinteger,
- logical=>\let\next\MMLcCNlogical,
- rational=>\let\next\MMLcCNrational,
-complex-cartesian=>\let\next\MMLccartesian,
- complex=>\let\next\MMLccartesian,
- complex-polar=>\let\next\MMLcpolar,
- polar=>\let\next\MMLcpolar,
- e-notation=>\let\next\MMLcenotation, % new
- float=>\let\next\MMLcfloat, % obsolete
- real=>\let\next\MMLcfloat, % ?
- unknown=>\let\next\firstofoneargument]}
- {\let\next\firstofoneargument}
- \next}
-
-\setupMMLappearance[base][\c!symbol=\v!numbers] % cijfers|letters|tekst|nee
-
-\def\MMLcCNinteger#1%
- {\doifXMLparelse{cn}{base}
- {\def\MMLcCNbase{\XMLpar{cn}{base}{}}%
- \doifelse\@@MMLbasesymbol\v!no
- {\MMLcCNbasedata{#1}}
- {\MMLcCNbasedata{#1}_{\hbox{$\rm\scriptscriptstyle
- \processaction
- [\@@MMLbasesymbol]
- [\v!characters=>\MMLcCNbasestring BODH,
- \v!text=>\MMLcCNbasestring{BIN}{OCT}{DEC}{HEX},
- \s!unknown=>\MMLcCNbase]$}}}}
- {#1}}
-
-\def\MMLcCNbasedata#1%
- {\ifnum\MMLcCNbase>10{\rm#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%
- {{\rm#1}}
-
-\def\MMLcCNrational#1%
- {\ConvertConstantAfter\doifinstringelse{sep}{#1}
- {\doMMLcCNrational#1\empty}
- {#1}}
-
-\def\doMMLcCNrational#1\xmlr#2#3#4#5\empty
- {\hbox{$\frac{#1}{#5}$}}
-
-\def\MMLcCSYMBOL#1#2% TO DO
- {\getXMLarguments{csymbol}{encoding="text" #1}%
- \doifelse{\XMLpar{csymbol}{encoding}{}}{text}
- {{\rm#2}}{#2}}
-
-%%% basic content elements
-
-\remapXMLsequence [apply] [CPA] \MMLcAPPLY
-
-\newcount\@MMLlevel \def\MMLcreset{\@MMLlevel=0 }
-
-\let\MMLctempresetlist\empty \def\setMMLcreset{\edef\MMLctempresetlist}
-
-\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)
-
-% better: no () here but explicitly when needed, which is in
-% less cases
-
-\def\MMLcAPPLY#1#2%
- {\mathinner{\begingroup % new, else 1/2(1+2) problem / inner: ask taco
- \pushmacro\xmlr
- \@EA\@EA\@EA\doifXMLRchild\@EA\@EA\@EA{\@EA\MMLcmainresetlist\@EA,\MMLctempresetlist}{#2}
- {\MMLcreset}%
- \ifcase\@MMLlevel
- \getXMLarguments{apply}{open="" close="" #1}%
- \else
- \getXMLarguments{apply}{open="(" close=")" #1}%
- \fi
- \doifXMLparelse{apply}{open}{\left\XMLpar{apply}{open}{}}{}%
- \advance\@MMLlevel+1
- \begingroup
- \let\MMLctempresetlist\empty
- \let\xmlr\naturalxmlr % beter een \pushmacro\xmlr
- #2\empty
- \endgroup % ook level push
- \advance\@MMLlevel-1
- \doifXMLparelse{apply}{close}{\right\XMLpar{apply}{close}{}}{}%
- \popmacro\xmlr
- \endgroup}}
-
-\remapXMLsequence [reln] [CPA] \MMLcRELN
-
-\def\MMLcRELN%
- {\writestatus{XML}{MathML element "reln" is obsolete}\MMLcAPPLY}
-
-\remapXMLsequence [fn] [CPA] \MMLcFN
-
-\def\MMLcFN#1#2% neg space needed because of \left
- {\doifXMLRchildelse{ci}{#2}
- {\collectXMLRchild{ci}{#2}%
- \@EA\doifMMLoperatorelse\@EA{\the\XMLRtoks}
- \MMLcFNoperator\MMLcFNdefault}
- {\MMLcFNdefault}%
- {#1}{#2}}
-
-\def\MMLcFNdefault#1#2% neg space needed because of \left
- {#2\!% \getXMLentity{NegThinSpace}%
- \MMLcreset\encapsulatenextXMLRelements{\left(}{\MMLccomma}{\right)}}
-
-% special function handlers
-
-\def\MMLcFNoperator
- {\getvalue{doMMLcFN\mmloperator}}
-
-% \def\doMMLcFNplusminus#1#2#3\empty
-% {\countXMLRchildren{#3}%
-% \ifcase\nofXMLRchildren\or
-% #2#3%
-% \else % suboptimal for instance under root
-% \encapsulateXMLR{\left(}{#2}{\right)}{\MMLcreset#3}%
-% \fi}
-
-\def\doMMLcFNplusminus#1#2#3\empty
- {\countXMLRchildren{#3}%
- \ifcase\nofXMLRchildren\or
- \def\next{#2#3}%
- \else
- \def\next
- {\doifnextcharelse\xmlr
- {\encapsulateXMLR{\left(}{#2}{\right)}{\MMLcreset#3}}%
- {\encapsulateXMLR{}{#2}{}{\MMLcreset#3}}}%
- \fi
- \next}
-
-\let\doMMLcFNminusplus\doMMLcFNplusminus
-
-\def\doMMLcFNcontinued#1#2#3\empty
- {#3\getXMLentity{continued}}
-
-% so far for the special handlers
-
-\remapXMLsequence [interval] [CPA] \MMLcINTERVAL
-
-\def\MMLcINTERVAL#1#2%
- {\withnexttwoXMLRelements
- {\getXMLarguments{interval}{closure="closed" #1}%
- \processaction
- [\XMLpar{interval}{closure}{closed}]
- [ closed=>{[\firstXMLRelement,\secondXMLRelement]},
- open-closed=>{(\firstXMLRelement,\secondXMLRelement]},
- closed-open=>{[\firstXMLRelement,\secondXMLRelement)},
- open=>{(\firstXMLRelement,\secondXMLRelement)},
- \s!unknown=>{[\firstXMLRelement,\secondXMLRelement]}]}%
- #2\empty}
-
-\remapXMLsingular [inverse] [CPA] \MMLcINVERSE
-
-\def\MMLcINVERSE#1#2%
- {\withnextXMLRelement
- {\nextXMLRelement\empty^{-1}% \empty kills MMLcfunction lookahead
- \withnextXMLRelement
- {\ifx\nextXMLRelement\empty \else
- \left[\nextXMLRelement\right]%
- \fi}}}
-
-\remapXMLsingular [sep] [CPA] \MMLcSEP
-
-\def\MMLcSEP#1#2{\MMLcsep} \def\MMLcsep{\,}
-
-\remapXMLsequence [condition] [CPA] \MMLcCONDITION
-
-\def\MMLcCONDITION#1#2%
- {\pushmacro\MMLcBVAR
- \doifXMLRchild{bvar}{#2}{\processXMLRchild{bvar}{#2}\mid}%
- \let\MMLcBVAR\ignoreXMLRelement
- \processXMLRchildren{#2}%
- \popmacro\MMLcBVAR}
-
-\remapXMLsequence [declare] [CPA] \MMLcDECLARE
-
-\setupMMLappearance[declare][\c!state=\v!start]
-
-\def\MMLcDECLARE#1#2%
- {\doif\@@MMLdeclarestate\v!start
- {\withnextXMLRelement
- {\getXMLentity{declare}\nextXMLRelement
- \countXMLRchildren{#2}%
- \ifnum\nofXMLRchildren>1
- \;% \getXMLentity{ThickSpace}%
- \getXMLentity{as}%
- \;% \getXMLentity{ThickSpace}%
- \fi}%
- #2\empty}}
-
-\remapXMLsequence [lambda] [CPA] \MMLcLAMBDA
-
-\setupMMLappearance[lambda][\c!alternative=b]
-
-\def\MMLcLAMBDA#1#2%
- {\doifelse\@@MMLlambdaalternative\v!a
- {\encapsulateXMLR{\getXMLentity{lambda}(}{\MMLccomma}{)}{#2}}
- {\countXMLRchild{bvar}{#2}%
- \ifnum\nofXMLRchildren>1
- \collectXMLRchild{bvar}{#2}%
- \encapsulateXMLR{\left(}{\MMLccomma}{\right)}{\the\XMLRtoks}%
- \else
- \processXMLRchild{bvar}{#2}%
- \fi
- \getXMLentity{mapsto}%
- \processXMLRchild{apply,reln,ci,cn}{#2}}}
-
-\remapXMLsingular [compose] [CPA] \MMLcCOMPOSE
-
-\def\MMLcCOMPOSE#1#2#3\empty
- {\doifMMLfunctionelse{#3}
- {\encapsulateXMLR{\left(}{\circ}{\right)}{#3}}
- {\encapsulateXMLR{}{\circ}{}{#3}}}
-
-\remapXMLsingular [ident] [CPA] \MMLcIDENT
-
-\def\MMLcIDENT#1#2{\getXMLentity{identity}}
-
-\remapXMLsingular [domain] [CPA] \MMLcDOMAIN
-\remapXMLsingular [codomain] [CPA] \MMLcCODOMAIN
-
-\def\MMLcDOMAIN #1#2#3\empty
- {\getXMLentity{domain}(\MMLcreset\processXMLRchildren{#3})}
-
-\def\MMLcCODOMAIN#1#2#3\empty
- {\getXMLentity{codomain}(\MMLcreset\processXMLRchildren{#3})}
-
-\remapXMLsingular [image] [CPA] \MMLcIMAGE
-
-\def\MMLcIMAGE#1#2%
- {\withnextXMLRelement{\getXMLentity{image}(\nextXMLRelement)}}
-
-\remapXMLsequence [domainofapplication] [CPA] \MMLcDOMAINOFAPPLICATION
-
-\def\MMLcDOMAINOFAPPLICATION#1#2{#2}
-
-\remapXMLsequence [piecewise] [CPA] \MMLcPIECEWISE
-\remapXMLsequence [piece] [CPA] \MMLcPIECE
-\remapXMLsequence [otherwise] [CPA] \MMLcOTHERWISE
-
-\setupMMLappearance[piece][\c!separator=]
-
-\def\MMLcPIECEWISE#1#2%
- {\cases{#2}}
-
-\def\MMLcPIECEseparator{\doif\@@MMLpieceseparator\v!yes,}
-
-\def\MMLcPIECE#1#2%
- {\withnexttwoXMLRelements
- {\@EA\XMLRtoks\@EA{\firstXMLRelement\MMLcPIECEseparator\@col@amp@}%
- \@EA\appendtoks\@EA\mathematics\@EA{\secondXMLRelement}\to\XMLRtoks
- \the\XMLRtoks\crcr}%
- #2}
-
-\def\MMLcOTHERWISE#1#2%
- {#2\MMLcPIECEseparator\@col@amp@\mathematics{\getXMLentity{otherwise}}\crcr}
-
-%%% arithmic, algebra and logic
-
-\remapXMLsingular [quotient] [CPA] \MMLcQUOTIENT
-
-\def\MMLcQUOTIENT#1#2%
- {\withnexttwoXMLRelements{\lfloor\firstXMLRelement/\secondXMLRelement\rfloor}}
-
-\remapXMLsingular [factorial] [CPA] \MMLcFACTORIAL
-
-\def\MMLcFACTORIAL#1#2%
- {\withnextXMLRelement{\nextXMLRelement !}}
-
-\remapXMLsingular [divide] [CPA] \MMLcDIVIDE
-
-\setupMMLappearance [divide] [\c!level=\!!maxcard]
-
-\def\MMLcDIVIDE#1#2%
- {\withnexttwoXMLRelements
- {\increment\MMLcDIVIDElevel
- \ifnum\MMLcDIVIDElevel>\@@MMLdividelevel\space
- \firstXMLRelement/\secondXMLRelement
- \else
- \frac{\MMLcreset\firstXMLRelement}{\MMLcreset\secondXMLRelement}%
- \fi
- \decrement\MMLcDIVIDElevel}}
-
-\remapXMLsingular [min] [CPA] \MMLcMIN
-\remapXMLsingular [max] [CPA] \MMLcMAX
-
-\def\MMLcMIN#1#2#3\empty
- {\encapsulateXMLR
- {\min\doifXMLRchild{bvar}{#3}{_{\processXMLRchild{bvar}{#3}}}\left\{}
- {\MMLccomma}{\right\}}{#3}}
-
-\def\MMLcMAX#1#2#3\empty
- {\encapsulateXMLR
- {\max\doifXMLRchild{bvar}{#3}{_{\processXMLRchild{bvar}{#3}}}\left\{}
- {\MMLccomma}{\right\}}{#3}}
-
-\remapXMLsingular [minus] [CPA] \MMLcMINUS
-\remapXMLsingular [plus] [CPA] \MMLcPLUS
-
-\setupMMLappearance[sign][\c!reduction=\v!yes]
-
-\def\MMLcMINUS % expandafter needed ?
- {\doifelse\@@MMLsignreduction\v!yes
- {\expandafter\MMLcMINUSyes}{\expandafter\MMLcMINUSno}}
-
-\def\MMLcPLUS % expandafter needed ?
- {\doifelse\@@MMLsignreduction\v!yes
- {\expandafter\MMLcPLUSyes}{\expandafter\MMLcPLUSno}}
-
-\def\MMLcMINUSno#1#2#3\empty
- {\countXMLRchildren{#3}%
- \encapsulateXMLR{\ifcase\nofXMLRchildren\or-\fi}{-}{}{#3}}
-
-\def\MMLcPLUSno#1#2#3\empty
- {\countXMLRchildren{#3}%
- \encapsulateXMLR{\ifcase\nofXMLRchildren\or+\fi}{+}{}{#3}}
-
-\def\MMLcMINUSyes#1#2#3\empty
- {\setMMLcreset{\MMLcfunctionlist}%
- \countXMLRchildren{#3}%
- \encapsulateXMLR{\ifcase\nofXMLRchildren\or-\fi}{-}{}{#3}}
-
-\def\MMLcPLUSyes#1#2#3\empty
- {\setMMLcreset{plus/,minus/,\MMLcfunctionlist,\MMLcconstructlist}%
- \encapsulatenextXMLRelements
- {}
- {\doifXMLRchildelse{apply}{\nextXMLRelement}%
- {\collectXMLRchild{apply}{\nextXMLRelement}%
- \doifXMLRchildelse{minus/}{\the\XMLRtoks}
- {\countXMLRchildren{\the\XMLRtoks}
- \ifnum\nofXMLRchildren>2 +\else\fi}{+}}
- {+}}
- {}
- {#3\empty}}
-
-\remapXMLsingular [power] [CPA] \MMLcPOWER
-
-\setupMMLappearance[power][\c!reduction=\v!yes]
-
-\let\MMLpowerelement\empty
-
-\def\MMLcPOWER#1#2%
- {\withnexttwoXMLRelements
- {\doifXMLRchildelse{apply}{\firstXMLRelement}
- {\doifelse\@@MMLpowerreduction\v!yes
- {\collectXMLRchild{apply}{\firstXMLRelement}%
- \@EA\doifXMLRchildelse\@EA{\MMLcfunctionlist}{\the\XMLRtoks}
- {\let\MMLpowerelement\secondXMLRelement
- \MMLcreset\firstXMLRelement\empty}
- {\left(\MMLcreset\firstXMLRelement\empty\right)^{\MMLcreset\secondXMLRelement}}}
- {\left(\MMLcreset\firstXMLRelement\empty\right)^{\MMLcreset\secondXMLRelement}}}
- {\firstXMLRelement^{\MMLcreset\secondXMLRelement}}}}
-
-\remapXMLsingular [rem] [CPA] \MMLcREM
-
-\def\MMLcREM#1#2%
- {\withnexttwoXMLRelements
- {\firstXMLRelement\getXMLentity{mod}\secondXMLRelement}}
-
-\remapXMLsingular [times] [CPA] \MMLcTIMES
-
-\setupMMLappearance[times][\c!symbol=\v!no] %
-\setupMMLappearance[times][\c!auto=\v!yes] % new, auto catches cn cn cn
-
-\def\MMLcTIMES#1#2#3\empty
- {\setMMLcreset{\MMLcfunctionlist,\MMLcconstructlist}%
- \doifelse\@@MMLtimesauto\v!no
- {\let\@@MMLtimes@@symbol\@@MMLtimessymbol}
- {\doifelseXMLRneighbors{cn}{#3}
- {\let\@@MMLtimes@@symbol\v!yes}
- {\let\@@MMLtimes@@symbol\@@MMLtimessymbol}}%
- \doifelse\@@MMLtimes@@symbol\v!yes
- {\encapsulateXMLR{}{\times}{}{#3\empty}}
- {\doifelse\@@MMLtimes@@symbol{dot}
- {\encapsulateXMLR{}{\cdot}{}{#3\empty}}
- {#3\empty}}}
-
-\remapXMLsingular [root] [CPA] \MMLcROOT
-
-\setupMMLappearance[root][\c!symbol=\v!yes]
-
-\def\MMLcROOT#1#2#3\empty
- {\doifXMLRchildelse{degree}{#3}\donetrue\donefalse
- \doif\@@MMLrootsymbol\v!no\donefalse
- \ifdone
- \root\processXMLRchild{degree}{#3}\of
- {\let\MMLcDEGREE\ignoreXMLRelement
- \MMLcreset\processXMLRchildren{#3}}%
- \else
- \sqrt
- {\MMLcreset\processXMLRchildren{#3}}%
- \fi}
-
-\remapXMLsingular [gcd] [CPA] \MMLcGCD
-
-\def\MMLcGCD#1#2#3\empty{\encapsulateXMLR{\gcd(}{\MMLccomma}{)}{#3}}
-
-\remapXMLsingular [and] [CPA] \MMLcAND
-\remapXMLsingular [or] [CPA] \MMLcOR
-\remapXMLsingular [xor] [CPA] \MMLcXOR
-\remapXMLsingular [implies] [CPA] \MMLcIMPLIES
-
-\def\MMLcAND #1#2#3\empty{\encapsulateXMLR{}{\getXMLentity{and}}{}{#3}}
-\def\MMLcOR #1#2#3\empty{\encapsulateXMLR{}{\getXMLentity{or}}{}{#3}}
-\def\MMLcXOR #1#2#3\empty{\encapsulateXMLR{}{\getXMLentity{xor}}{}{#3}}
-\def\MMLcIMPLIES#1#2#3\empty{\encapsulateXMLR{}{\getXMLentity{implies}}{}{#3}}
-
-\remapXMLsingular [not] [CPA] \MMLcNOT
-
-\def\MMLcNOT#1#2#3\empty{\getXMLentity{not}\processXMLRchildren{#3}}
-
-\remapXMLsingular [forall] [CPA] \MMLcFORALL
-\remapXMLsingular [exists] [CPA] \MMLcEXISTS
-
-\def\MMLcFORALL%
- {\getXMLentity{forall}%
- \!% \getXMLentity{NegThinSpace}%
- \MMLcFORALLandEXISTS}
-
-\def\MMLcEXISTS%
- {\getXMLentity{exists}%
- \MMLcFORALLandEXISTS}
-
-\def\MMLcFORALLandEXISTS#1#2#3\empty
- {\MMLcreset
- _{\encapsulateXMLRchildren{bvar}{}{\MMLccomma}{}{#3}}%
- \doifXMLRchildelse{condition}{#3}
- {\;% \getXMLentity{ThickSpace}%
- \processXMLRchild{condition}{#3}
- \doifXMLRchildelse{apply,reln,ci,cn}{#3}
- {\countXMLRchild{apply,reln,ci,cn}{#3}%
- \ifcase\nofXMLRchildren\or % == snelle volgende
- \encapsulateXMLRchildren{apply,reln,ci,cn}
- {\left\vert}%
- {}
- {\right.}
- {#3\empty}%
- \else % special case
- \pushmacro\MMLcCONDITION
- \let\MMLcCONDITION\gobbletwoarguments
- \collectbetweenXMLRchild{apply,reln,ci,cn}{\hfill\crcr}{#3}%
- \left\vert\matrix{\the\XMLRtoks}\right.%
- \popmacro\MMLcCONDITION
- \fi}
- {}}
- {:\processXMLRchild{apply,reln,ci,cn}{#3\empty}}}
-
-\remapXMLsingular [abs] [CPA] \MMLcABS
-
-\def\MMLcABS#1#2#3\empty
- {\left\vert\MMLcreset\processXMLRchildren{#3}\right\vert}
-
-\remapXMLsingular [conjugate] [CPA] \MMLcCONJUGATE
-
-\def\MMLcCONJUGATE#1#2#3\empty%
- {\overline{\MMLcreset\processXMLRchildren{#3}}}
-
-\remapXMLsingular [arg] [CPA] \MMLcARG
-
-\def\MMLcARG#1#2#3\empty
- {\getXMLentity{arg}(\MMLcreset\processXMLRchildren{#3})}
-
-\remapXMLsingular [real] [CPA] \MMLcREAL
-\remapXMLsingular [imaginary] [CPA] \MMLcIMAGINARY
-
-\def\MMLcREAL#1#2#3\empty
- {\getXMLentity{real}(\MMLcreset\processXMLRchildren{#3})}
-
-\def\MMLcIMAGINARY#1#2#3\empty
- {\getXMLentity{imaginary}(\MMLcreset\processXMLRchildren{#3})}
-
-\remapXMLsingular [lcm] [CPA] \MMLcLCM
-
-\def\MMLcLCM#1#2#3\empty
- {\encapsulateXMLR{\getXMLentity{lcm}(}{\MMLccomma}{)}{#3}}
-
-\remapXMLsingular [floor] [CPA] \MMLcFLOOR
-\remapXMLsingular [ceiling] [CPA] \MMLcCEILING
-
-\def\MMLcFLOOR#1#2#3\empty
- {\getXMLentity{lfloor}\processXMLRchildren{#3}\getXMLentity{rfloor}}
-
-\def\MMLcCEILING#1#2#3\empty
- {\getXMLentity{lceiling}\processXMLRchildren{#3}\getXMLentity{rceiling}}
-
-%%% relations
-
-\remapXMLsingular [eq] [CPA] \MMLcEQ
-\remapXMLsingular [neq] [CPA] \MMLcNEQ
-\remapXMLsingular [gt] [CPA] \MMLcGT
-\remapXMLsingular [lt] [CPA] \MMLcLT
-\remapXMLsingular [geq] [CPA] \MMLcGEQ
-\remapXMLsingular [leq] [CPA] \MMLcLEQ
-\remapXMLsingular [equivalent] [CPA] \MMLcEQUIVALENT
-\remapXMLsingular [approx] [CPA] \MMLcAPPROX
-\remapXMLsingular [factorof] [CPA] \MMLcFACTOROF
-
-\setupMMLappearance[relation][\c!align=\v!no]
-
-\def\noMMLcrelation#1#2%
- {\encapsulatenextXMLRelements{}{#1}{}#2\empty}
-
-\def\lastMMLcrelation#1#2%
- {\countXMLRchildren{#2}%
- \rawcollectbetweenXMLR
- {\advance\nofXMLRchildren -1
- \ifnum\nofXMLRchildren>1
- \appendtoks\@col@amp@#1\crcr\to\XMLRtoks
- \else
- \appendtoks\@col@amp@#1\to\XMLRtoks
- \fi}
- {#2}%
- \eqalign{\the\XMLRtoks\crcr}}
-
-\def\firstMMLcrelation#1#2%
- {\nofXMLRchildren=0
- \rawcollectbetweenXMLR
- {\advance\nofXMLRchildren 1
- \ifnum\nofXMLRchildren=1
- \appendtoks\@col@amp@#1\to\XMLRtoks
- \else
- \appendtoks\crcr\@col@amp@#1\to\XMLRtoks
- \fi}
- {#2}%
- \eqalign{\the\XMLRtoks\crcr}}
-
-\def\leftMMLcrelation#1#2%
- {\collectbetweenXMLR{\@col@amp@#1\crcr}{#2}%
- \eqalign{\the\XMLRtoks}}
-
-\def\rightMMLcrelation#1#2%
- {\collectbetweenXMLR{\crcr#1{}\@col@amp@}{#2}% watch the {}
- \prependtoks\@col@amp@\to\XMLRtoks
- \eqalign{\the\XMLRtoks\crcr}}
-
-\def\MMLcrelation#1#2\empty
- {\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{#1}{#2}}
-
-\def\MMLcEQ #1#2{\MMLcrelation=}
-\def\MMLcNEQ #1#2{\MMLcrelation\neq}
-\def\MMLcGT #1#2{\MMLcrelation>}
-\def\MMLcLT #1#2{\MMLcrelation<}
-\def\MMLcGEQ #1#2{\MMLcrelation\geq}
-\def\MMLcLEQ #1#2{\MMLcrelation\leq}
-\def\MMLcEQUIVALENT#1#2{\MMLcrelation\equiv}
-\def\MMLcAPPROX #1#2{\MMLcrelation\approx}
-\def\MMLcFACTOROF #1#2{\MMLcrelation\mid}
-
-%%% introduced when making an example for Thorsten Bahne:
-
-\remapXMLsingular [becomes] [CPA] \MMLcBECOMES
-
-\def\MMLcBECOMES#1#2{\MMLcrelation{:=}}
-
-\addtocommalist{becomes/}\MMLcmainresetlist
-
-%%% calculus and vector calculus
-
-\setupMMLappearance[int][\c!location=\v!top]
-
-\remapXMLsingular [int] [CPA] \MMLcINT
-
-\def\doMMLlimits#1%
- {\doifelsevalue{@@MML#1\c!location}\v!top\limits\nolimits}
-
-\def\MMLcINT#1#2#3\empty
- {\pushmacro\xmlr
- \MMLcreset
- \doifXMLRchildelse{domainofapplication}{#3}
- {\int\doMMLlimits{int}_{\processXMLRchild{domainofapplication}{#3}}}
- {\doifXMLRchildelse{condition}{#3}
- {\int\doMMLlimits{int}_{\processXMLRchild{condition}{#3}}}
- {\doifXMLRchildelse{lowlimit}{#3}
- {\int\doMMLlimits{int}
- _{\processXMLRchild{lowlimit}{#3}}
- ^{\processXMLRchild {uplimit}{#3}}}
- {\int}}}%
- \doifXMLRchildelse{apply}{#3}
- {\doifMMLfunctionelse{#3}%
- {\MMLcreset % TEST
- \processXMLRchild{apply}{#3}}
- {\left(\MMLcreset % TEST
- \processXMLRchild{apply}{#3}\right)}}
- {\MMLcreset % TEST
- \processXMLRchild{ci}{#3}}%
- \doifXMLRchild{bvar}{#3}
- {\,% \getXMLentity{ThinSpace}%
- {\rm\getXMLentity{mathematicald}}\processXMLRchild{bvar}{#3}}%
- \popmacro\xmlr}
-
-\remapXMLsingular [diff] [CPA] \MMLcDIFF
-
-\setupMMLappearance[diff][\c!location=\v!top]
-
-\def\MMLcDIFF#1#2#3\empty
- {\pushmacro\xmlr
- \MMLcreset
- \doifXMLRchildelse{bvar}{#3}
- {\frac
- {{\rm \getXMLentity{mathematicald}}%
- \collectXMLRchild{bvar}{#3}%
- \let\MMLcDEGREE\superMMLcelement
- \expanded{\processXMLRchild{degree}{\the\XMLRtoks}}%
- \doif\@@MMLdifflocation\v!top
- {\doifXMLRchildelse{ci}{#3}
- {\processXMLRchild{ci}{#3}}
- {\doifMMLfunctionelse{#3}
- {\MMLcreset\processXMLRchild{apply}{#3}}
- {\left(\MMLcreset\processXMLRchild{apply}{#3}\right)}}}}
- {\let\MMLcDEGREE\superMMLcelement
- \begingroup\rm\getXMLentity{mathematicald}\endgroup
- \processXMLRchild{bvar}{#3}}%
- \doifnot\@@MMLdifflocation\v!top
- {\left(\MMLcreset\processXMLRchild{apply,ci}{#3}\right)}}
- {\processXMLRchildren{#3}^\prime}%
- \popmacro\xmlr}
-
-\remapXMLsingular [partialdiff] [CPA] \MMLcPARTIALDIFF
-
-\def\MMLcBVARpartialdiff#1#2%
- {\getXMLentity{differentiald}\processXMLRchild{apply,reln,ci,cn}{#2}
- \doifXMLRchild{degree}{#2}{^{\processXMLRchild{degree}{#2}}}}
-
-\def\MMLcPARTIALDIFF#1#2#3\empty
- {\pushmacro\xmlr
- \doifXMLRchildelse{list}{#3}
- {\getXMLentity{capitaldifferentiald}_{\encapsulateXMLRchild{list}{}{\MMLccomma}{}{#3}}%
- \processXMLRchild{apply,reln,ci,cn}{#3}}
- {\countXMLRchild{bvar}{#3}%
- \ifnum\nofXMLRchildren>0
- \pushmacro\MMLcDEGREE
- \pushmacro\MMLcBVAR
- \frac
- {\doifXMLRchildelse{degree}{#3}
- {\collectXMLRchild{degree}{#3}}
- {\collectXMLRchild{bvar}{#3}%
- \expanded{\collectXMLRchild{degree}{\the\XMLRtoks}}}%
- \getXMLentity{differentiald}^{\encapsulateXMLR{}{+}{}{\the\XMLRtoks}}%
- \let\MMLcDEGREE\gobbletwoarguments
- \doifMMLfunctionelse{#3}{\MMLcreset}{}%
- \processXMLRchild{apply,reln,ci,cn}{#3}}
- {\let\MMLcBVAR\MMLcBVARpartialdiff
- \processXMLRchild{bvar}{#3}}%
- \popmacro\MMLcBVAR
- \popmacro\MMLcDEGREE
- \else
- \processXMLRchild{apply,reln,ci,cn}{#3}%
- \fi}%
- \popmacro\xmlr}
-
-\def\doifMMLfunctionelse#1#2#3%
- {\collectXMLRchild{apply}{#1}%
- \doifXMLRchildelse{fn}{\the\XMLRtoks#1}
- {#2}
- {\doifXMLRchildelse{ci}{\the\XMLRtoks#1}
- {\pushmacro\xmlr
- \getXMLarguments{dummy}{type=""}%
- \def\xmlr{\getmmlarguments{dummy}{}}%
- \the\XMLRtoks % what if more than one ?
- \popmacro\xmlr
- \doif{\XMLpar{dummy}{type}{}}{fn}{#2}{#3}}
- {#2}}}
-
-\def\subMMLcelement #1#2{_{#2}}
-\def\superMMLcelement#1#2{^{#2}}
-
-\remapXMLsequence [lowlimit][CPA] \MMLcLOWLIMIT
-\remapXMLsequence [uplimit] [CPA] \MMLcUPLIMIT
-\remapXMLsequence [bvar] [CPA] \MMLcBVAR
-\remapXMLsequence [degree] [CPA] \MMLcDEGREE
-
-\def\MMLcLOWLIMIT#1#2{#2}
-\def\MMLcUPLIMIT #1#2{#2}
-\def\MMLcBVAR #1#2{#2}
-\def\MMLcDEGREE #1#2{#2}
-
-\remapXMLsingular [divergence] [CPA] \MMLcDIVERGENCE
-\remapXMLsingular [grad] [CPA] \MMLcGRAD
-\remapXMLsingular [curl] [CPA] \MMLcCURL
-\remapXMLsingular [laplacian] [CPA] \MMLcLAPLACIAN
-
-\def\MMLcDIVERGENCE#1#2#3\empty{\getXMLentity{divergence}\processXMLRchildren{#3}}
-\def\MMLcGRAD #1#2#3\empty{\getXMLentity{grad}\processXMLRchildren{#3}}
-\def\MMLcCURL #1#2#3\empty{\getXMLentity{curl}\processXMLRchildren{#3}}
-\def\MMLcLAPLACIAN #1#2#3\empty{\getXMLentity{laplacian}\processXMLRchildren{#3}}
-
-%%% theory of sets
-
-\remapXMLsequence [set] [CPA] \MMLcSET
-
-\def\MMLcSET#1#2%
- {\doifXMLRchildelse{condition}{#2}
- {\{\processXMLRchild{bvar}{#2}\,\vert\,\processXMLRchild{condition}{#2}\}}
- {\encapsulateXMLR{\{}{\MMLccomma}{\}}{#2}}}
-
-\remapXMLsequence [list] [CPA] \MMLcLIST
-
-\def\MMLcLIST#1#2{\encapsulateXMLR{[}{\MMLccomma}{]}{#2}}
-
-\remapXMLsingular [union] [CPA] \MMLcUNION
-\remapXMLsingular [intersect] [CPA] \MMLcINTERSECT
-\remapXMLsingular [in] [CPA] \MMLcIN
-\remapXMLsingular [notin] [CPA] \MMLcNOTIN
-\remapXMLsingular [subset] [CPA] \MMLcSUBSET
-\remapXMLsingular [prsubset] [CPA] \MMLcPRSUBSET
-\remapXMLsingular [notsubset] [CPA] \MMLcNOTSUBSET
-\remapXMLsingular [notprsubset] [CPA] \MMLcNOTPRSUBSET
-\remapXMLsingular [setdiff] [CPA] \MMLcSETDIFF
-
-\def\MMLcset#1{\withnexttwoXMLRelements{\firstXMLRelement#1\secondXMLRelement}}
-
-\def\MMLcUNION #1#2{\MMLcset\cup}
-\def\MMLcINTERSECT #1#2{\MMLcset\cap}
-\def\MMLcIN #1#2{\MMLcset\in}
-\def\MMLcNOTIN #1#2{\MMLcset{\not\in}}
-\def\MMLcSUBSET #1#2{\MMLcset\subset}
-\def\MMLcPRSUBSET #1#2{\MMLcset\subseteq}
-\def\MMLcNOTSUBSET #1#2{\MMLcset{\not\subset}}
-\def\MMLcNOTPRSUBSET #1#2{\MMLcset{\not\subseteq}}
-\def\MMLcSETDIFF #1#2{\MMLcset\setminus}
-
-\remapXMLsingular [card] [CPA] \MMLcCARD
-
-\def\MMLcCARD#1#2#3\empty{\encapsulateXMLR{\vert}{}{\vert}{#3}}
-
-\remapXMLsingular [cartesianproduct] [CPA] \MMLcCARTESIANPRODUCT
-
-\def\MMLcCARTESIANPRODUCT#1#2#3\empty{\encapsulateXMLR{}{\times}{}{#3}}
-
-%%% sequences and series
-
-\remapXMLsingular [sum] [CPA] \MMLcSUM
-\remapXMLsingular [product] [CPA] \MMLcPRODUCT
-
-\def\MMLcSUM {\MMLcSUMandPRODUCT{sum}\sum}
-\def\MMLcPRODUCT{\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#3#4\empty
- {\pushmacro\xmlr
- \doifXMLRchildelse{condition,bvar,lowlimit}{#4}
- {\def\MMLcSUMlow
- {_{\doifXMLRchildelse{condition}{#4}
- {\collectXMLRchild{condition}{#4}%
- \expanded{\collectbetweenXMLR{\crcr}{\the\XMLRtoks}}%
- \stackMMLsubscripts{\the\XMLRtoks}}
- {\doifXMLRchild{bvar}{#4}
- {\processXMLRchild{bvar}{#4}%
- \doifXMLRchild{lowlimit}{#4}{=}}%
- \processXMLRchild{lowlimit}{#4}}}}}
- {\let\MMLcSUMlow\empty}%
- \doifXMLRchildelse{uplimit}{#4}
- {\def\MMLcSUMup{^{\processXMLRchild{uplimit}{#4}}}}
- {\let\MMLcSUMup\empty}%
- \MMLcreset#2\doMMLlimits{#1}\MMLcSUMup\MMLcSUMlow
- \MMLcreset
- \processXMLRchild{apply,ci}{#4}%
- \popmacro\xmlr}
-
-\remapXMLsingular [limit] [CPA] \MMLcLIMIT
-
-\setupMMLappearance[limit][\c!location=\v!top]
-
-\def\MMLcLIMIT#1#2#3\empty
- {\pushmacro\xmlr
- \MMLcreset
- \lim\doMMLlimits{limit}_
- {\MMLcreset
- \doifXMLRchildelse{condition}{#3}
- {\processXMLRchild{condition}{#3}}
- {\doifXMLRchild{bvar}{#3}
- {\processXMLRchild{bvar}{#3}\rightarrow}%
- \processXMLRchild{lowlimit}{#3}}}%
- \processXMLRchild{apply}{#3}%
- \popmacro\xmlr}
-
-\remapXMLsingular [tendsto] [CPA] \MMLcTENDSTO
-
-\def\MMLcTENDSTO#1#2%
- {\getXMLarguments{tendsto}{type="default" #1}%
- \withnexttwoXMLRelements
- {\MMLcreset\firstXMLRelement
- \processaction
- [\XMLpar{tendsto}{type}{default}]
- [ above=>\downarrow,
- below=>\uparrow,
- unknown=>\rightarrow]%
- \MMLcreset\secondXMLRelement}}
-
-%%% elementary classical functions
-
-\remapXMLsingular [exp] [CPA] \MMLcEXP
-
-\def\MMLcEXP#1#2#3\empty
- {\getXMLentity{exponentiale}^{\MMLcreset#3}}
-
-\remapXMLsingular [ln] [CPA] \MMLcLN
-
-%\def\MMLcLN#1#2#3\empty
-% {\ln\left(\MMLcreset#3\right)}
-
-\def\MMLcLN#1#2%
- {\doMMLcfunction{ln}}
-
-\remapXMLsingular [log] [CPA] \MMLcLOG
-
-\setupMMLappearance[log][\c!location=\v!right]
-
-\def\MMLcLOG#1#2#3\empty
- {\pushmacro\MMLcLOGBASE
- \let\MMLcLOGBASE\secondoftwoarguments
- \doifXMLRchildelse{logbase}{#3}
- {\doifelse\@@MMLloglocation\v!left
- {\mathop{{}^{\processXMLRchild{logbase}{#3}}\!\getXMLentity{log}}}
- {\getXMLentity{log}_{\processXMLRchild{logbase}{#3}}}}
- {\getXMLentity{log}}%
- \let\MMLcLOGBASE\ignoreXMLRelement
- \nodoMMLcfunction#3\empty
- \popmacro\MMLcLOGBASE}
-
-\remapXMLsequence [logbase] [CPA] \MMLcLOGBASE
-
-\def\MMLcLOGBASE#1#2{#2}
-
-\remapXMLsingular [sin] [CPA] \MMLcSIN
-\remapXMLsingular [arcsin] [CPA] \MMLcARCSIN
-\remapXMLsingular [sinh] [CPA] \MMLcSINH
-\remapXMLsingular [arcsinh] [CPA] \MMLcARCSINH
-\remapXMLsingular [cos] [CPA] \MMLcCOS
-\remapXMLsingular [arccos] [CPA] \MMLcARCCOS
-\remapXMLsingular [cosh] [CPA] \MMLcCOSH
-\remapXMLsingular [arccosh] [CPA] \MMLcARCCOSH
-\remapXMLsingular [tan] [CPA] \MMLcTAN
-\remapXMLsingular [arctan] [CPA] \MMLcARCTAN
-\remapXMLsingular [tanh] [CPA] \MMLcTANH
-\remapXMLsingular [arctanh] [CPA] \MMLcARCTANH
-\remapXMLsingular [cot] [CPA] \MMLcCOT
-\remapXMLsingular [arccot] [CPA] \MMLcARCCOT
-\remapXMLsingular [coth] [CPA] \MMLcCOTH
-\remapXMLsingular [arccoth] [CPA] \MMLcARCCOTH
-\remapXMLsingular [csc] [CPA] \MMLcCSC
-\remapXMLsingular [arccsc] [CPA] \MMLcARCCSC
-\remapXMLsingular [csch] [CPA] \MMLcCSCH
-\remapXMLsingular [arccsch] [CPA] \MMLcARCCSCH
-\remapXMLsingular [sec] [CPA] \MMLcSEC
-\remapXMLsingular [arcsec] [CPA] \MMLcARCSEC
-\remapXMLsingular [sech] [CPA] \MMLcSECH
-\remapXMLsingular [arcsech] [CPA] \MMLcARCSECH
-
-\setupMMLappearance[function][\c!reduction=\v!yes]
-
-\def\doMMLcfunction#1%
- {\doifnextcharelse\xmlr{\dodoMMLcfunction{#1}}{\getXMLentity{#1}}}
-
-\def\dodoMMLcfunction#1%
- {\getXMLentity{#1}%
- \nodoMMLcfunction}
-
-\def\nodoMMLcfunction#1\empty
- {\ifx\MMLpowerelement\empty\else
- ^{\MMLcreset\MMLpowerelement\empty}\!\let\MMLpowerelement\empty
- \fi
- \doifelse\@@MMLfunctionreduction\v!yes
- {\doifXMLRchildelse{apply}{#1}
- {\collectXMLRchild{apply}{#1}%
- \@EA\doifXMLRchildelse\@EA{\MMLcfunctionlist}{\the\XMLRtoks}
- {\MMLcreset#1\empty}
- {\left(\MMLcreset#1\empty\right)}}
- {\MMLcreset#1\empty}}
- {\left(\MMLcreset#1\empty\right)}}
-
-\def\MMLcSIN #1#2{\doMMLcfunction{sin}}
-\def\MMLcARCSIN #1#2{\doMMLcfunction{arcsin}}
-\def\MMLcSINH #1#2{\doMMLcfunction{sinh}}
-\def\MMLcARCSINH#1#2{\doMMLcfunction{arcsinh}}
-\def\MMLcCOS #1#2{\doMMLcfunction{cos}}
-\def\MMLcARCCOS #1#2{\doMMLcfunction{arccos}}
-\def\MMLcCOSH #1#2{\doMMLcfunction{cosh}}
-\def\MMLcARCCOSH#1#2{\doMMLcfunction{arccosh}}
-\def\MMLcTAN #1#2{\doMMLcfunction{tan}}
-\def\MMLcARCTAN #1#2{\doMMLcfunction{arctan}}
-\def\MMLcTANH #1#2{\doMMLcfunction{tanh}}
-\def\MMLcARCTANH#1#2{\doMMLcfunction{arctanh}}
-\def\MMLcCOT #1#2{\doMMLcfunction{cot}}
-\def\MMLcARCCOT #1#2{\doMMLcfunction{arccot}}
-\def\MMLcCOTH #1#2{\doMMLcfunction{coth}}
-\def\MMLcARCCOTH#1#2{\doMMLcfunction{arccoth}}
-\def\MMLcCSC #1#2{\doMMLcfunction{csc}}
-\def\MMLcARCCSC #1#2{\doMMLcfunction{arccsc}}
-\def\MMLcCSCH #1#2{\doMMLcfunction{csch}}
-\def\MMLcARCCSCH#1#2{\doMMLcfunction{arccsch}}
-\def\MMLcSEC #1#2{\doMMLcfunction{sec}}
-\def\MMLcARCSEC #1#2{\doMMLcfunction{arcsec}}
-\def\MMLcSECH #1#2{\doMMLcfunction{sech}}
-\def\MMLcARCSECH#1#2{\doMMLcfunction{arcsech}}
-
-%%% statistics
-
-\remapXMLsingular [mean] [CPA] \MMLcMEAN
-\remapXMLsingular [sdev] [CPA] \MMLcSDEV
-\remapXMLsingular [variance] [CPA] \MMLcVARIANCE
-\remapXMLsingular [median] [CPA] \MMLcMEDIAN
-\remapXMLsingular [mode] [CPA] \MMLcMODE
-
-\def\MMLcMEAN #1#2{\withnextXMLRelement{\overline{\nextXMLRelement}}}
-\def\MMLcSDEV #1#2{\withnextXMLRelement{\sigma(\MMLcreset\nextXMLRelement)}}
-\def\MMLcVARIANCE#1#2{\withnextXMLRelement{\sigma(\MMLcreset\nextXMLRelement)^2}}
-\def\MMLcMEDIAN #1#2{\withnextXMLRelement{\getXMLentity{median}(\MMLcreset\nextXMLRelement)}}
-\def\MMLcMODE #1#2{\withnextXMLRelement{\getXMLentity{mode}(\MMLcreset\nextXMLRelement)}}
-
-\remapXMLsingular [moment] [CPA] \MMLcMOMENT
-\remapXMLsequence [momentabout] [CPA] \MMLcMOMENTABOUT
-
-\def\MMLcMOMENT#1#2#3\empty
- {\left\langle\processXMLRchild{apply,reln,ci,cn}{#3}%
- ^{\processXMLRchild{degree}{#3}}\right\rangle}
-
-\def\MMLcMOMENTABOUT#1#2{}
-
-%%% linear algebra
-
-\remapXMLsequence [vector] [CPA] \MMLcVECTOR
-
-\setupMMLappearance[vector][\c!direction=\v!horizontal] % \v!vertical
-
-\def\MMLcVECTOR#1#2%
- {\countXMLRchildren{#2}%
- \ifnum\nofXMLRchildren>1
- \doifelse\@@MMLvectordirection\v!horizontal
- {\encapsulateXMLR{\left(}{\MMLccomma}{\right)}{#2}}
- {\collectbetweenXMLR{\crcr}{#2}%
- \MMLcreset\left(\matrix{\the\XMLRtoks}\right)}%
- \else
- \overrightarrow{#2}%
- \fi}
-
-\remapXMLsequence [matrix] [CPA] \MMLcMATRIX
-\remapXMLsequence [matrixrow] [CPA] \MMLcMATRIXROW
-
-\unexpanded\def\@col@amp@{&}
-
-\def\doMMLcMATRIX#1#2#3%
- {\pushmacro\MMLcMATRIXROW
- \let\MMLcMATRIXROW\normalMMLcMATRIXROW
- \MMLcreset
- \ifcase#1\matrix{#3}\else\left(\matrix{#3}\right)\fi
- \popmacro\MMLcMATRIXROW}
-
-\def\MMLcMATRIX#1#2%
- {\doMMLcMATRIX1{#1}{#2}}
-
-\def\MMLcMATRIXROW#1#2%
- {\collectbetweenXMLR{\@col@amp@}{#2}\the\XMLRtoks\crcr}
-
-\let\normalMMLcMATRIXROW\MMLcMATRIXROW
-
-\def\MMLcMATRIXROW#1#2%
- {\collectbetweenXMLR{\@col@amp@}{#2}%
- \left(\matrix{\the\XMLRtoks\crcr}\right)}
-
-\remapXMLsingular [determinant] [CPA] \MMLcDETERMINANT
-
-% \def\MMLcDETERMINANT#1#2{\getXMLentity{determinant}} % optie
-
-\def\MMLcDETERMINANT#1#2\empty
- {\pushmacro\MMLcMATRIX
- \def\MMLcMATRIX##1##2{\doMMLcMATRIX0{##1}{##2}}%
- \left|#2\empty\right|%
- \popmacro\MMLcMATRIX}
-
-\remapXMLsingular [transpose] [CPA] \MMLcTRANSPOSE
-
-\def\MMLcTRANSPOSE#1#2{\withnextXMLRelement{\nextXMLRelement^{\rm T}}}
-
-\remapXMLsingular [selector] [CPA] \MMLcSELECTOR
-
-\def\MMLcSELECTOR#1#2#3\empty
- {\pushmacro\xmlr
- \withnextXMLRelement
- {\mathinner{\nextXMLRelement}% hm, assumes a matrix or so
- \doMMLcSELECTOR}%
- #3\empty
- \popmacro\xmlr}
-
-\def\doMMLcSELECTOR#1\empty
- {_{\MMLcreset\encapsulateXMLR{}{\MMLccomma}{}{#1\empty}}}
-
-\remapXMLsingular [vectorproduct] [CPA] \MMLcVECTORPRODUCT
-\remapXMLsingular [scalarproduct] [CPA] \MMLcSCALARPRODUCT
-\remapXMLsingular [outerproduct] [CPA] \MMLcOUTERPRODUCT
-
-\def\MMLcvector#1%
- {\withnexttwoXMLRelements{\firstXMLRelement#1\secondXMLRelement}}
-
-\def\MMLcVECTORPRODUCT#1#2{\MMLcvector{\getXMLentity{vectorproduct}}#2}% #2?%
-\def\MMLcSCALARPRODUCT#1#2{\MMLcvector{\getXMLentity{scalarproduct}}#2}
-\def\MMLcOUTERPRODUCT #1#2{\MMLcvector{\getXMLentity{outerproduct}}#2}
-
-%%% semantic mapping elements
-
-\remapXMLsequence [semantics] [CPA] \MMLcSEMANTICS
-
-\def\MMLcSEMANTICS#1#2%
- {\doifXMLRchildelse{annotation}{#2}
- {\processXMLRchild{annotation}{#2}}
- {#2}}
-
-\remapXMLsequence [annotation] [CPA] \MMLcANNOTATION
-
-\def\MMLcANNOTATION#1#2% we need a better unmapper
- {\getXMLarguments{annotation}{encoding="" #1}%
- \doif{\XMLpar{annotation}{encoding}{}}{TeX}%
- {\begingroup
- \setnormalXMLentities % better: \simplifyXMLentities ; test first
- \let\xmlrent\expandedXMLentity
- \edef\mmlascii{#2}%
- \setnormalcatcodes
- \ifx\mmlascii\empty
- \donefalse
- \else
- \def\do##1##2\end % hack
- {\edef\!!stringa{\string##1}%
- \edef\!!stringb{\letterdollar}%
- \ifx\!!stringa\!!stringb
- \donetrue
- \else
- \donefalse
- \fi}%
- \expandafter\do\mmlascii\end
- \fi
- \ifdone
- \hbox{\scantokens\@EA{\mmlascii}}%
- \else
- \scantokens\@EA{\mmlascii}%
- \fi
- \endgroup}}
-
-\remapXMLsequence [annotation-xml] [CPA] \MMLcANNOTATIONXML
-
-\def\MMLcANNOTATIONXML#1#2{}
-
-%%% constant and symbol elements
-
-\remapXMLsingular [integers] [CPA] \MMLcINTEGERS
-\remapXMLsingular [reals] [CPA] \MMLcREALS
-\remapXMLsingular [rationals] [CPA] \MMLcRATIONALS
-\remapXMLsingular [naturalnumbers] [CPA] \MMLcNATURALNUMBERS
-\remapXMLsingular [complexes] [CPA] \MMLcCOMPLEXES
-\remapXMLsingular [primes] [CPA] \MMLcPRIMES
-\remapXMLsingular [exponentiale] [CPA] \MMLcEXPONENTIALE
-\remapXMLsingular [imaginaryi] [CPA] \MMLcIMAGINARYI
-\remapXMLsingular [notanumber] [CPA] \MMLcNOTANUMBER
-\remapXMLsingular [true] [CPA] \MMLcTRUE
-\remapXMLsingular [false] [CPA] \MMLcFALSE
-\remapXMLsingular [emptyset] [CPA] \MMLcEMPTYSET
-\remapXMLsingular [pi] [CPA] \MMLcPI
-\remapXMLsingular [eulergamma] [CPA] \MMLcEULERGAMMA
-\remapXMLsingular [infinity] [CPA] \MMLcINFINITY
-
-\def\MMLcINTEGERS #1#2{\getXMLentity{integers}}
-\def\MMLcREALS #1#2{\getXMLentity{reals}}
-\def\MMLcRATIONALS #1#2{\getXMLentity{rationals}}
-\def\MMLcNATURALNUMBERS#1#2{\getXMLentity{naturalnumbers}}
-\def\MMLcCOMPLEXES #1#2{\getXMLentity{complexes}}
-\def\MMLcPRIMES #1#2{\getXMLentity{primes}}
-\def\MMLcEXPONENTIALE #1#2{\getXMLentity{ExponentialE}}
-\def\MMLcIMAGINARYI #1#2{\getXMLentity{ImaginaryI}}
-\def\MMLcNOTANUMBER #1#2{\mathop{\rm NaN}}
-\def\MMLcTRUE #1#2{\mathop{\rm true}}
-\def\MMLcFALSE #1#2{\mathop{\rm false}}
-\def\MMLcEMPTYSET #1#2{\mathop{\hbox{\O}}}
-\def\MMLcPI #1#2{\pi}
-\def\MMLcEULERGAMMA #1#2{\gamma}
-\def\MMLcINFINITY #1#2{\infty}
-
-\stopXMLmapping
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-mml.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-mml.mkii
deleted file mode 100644
index f948128fa5e..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-mml.mkii
+++ /dev/null
@@ -1,515 +0,0 @@
-%D \module
-%D [ file=xtag-mml,
-%D version=2000.12.20,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=MathML,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt XML Macros / MathML}
-
-% I will reimplement this one without mapping since we now have more
-% tricks available
-
-\useXMLfilter[map]
-
-%\enablemathpunctuation
-
-% First some general formula element definitions.
-
-\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}
-
-% Since I only had the draft of mml 2 as example of
-% rendering, there are probably a lot of omissions and
-% misinterpretations. At least I learned some bits and
-% pieces of math rendering.
-%
-% The main complications were not so much the math, but to
-% find the most efficient way to handle elements without
-% spacing beging messed up. The first implementation was
-% aimed at getting reasonable output, this second
-% implementation is already better in terms of handling
-% nesting, and I will definitely need a third one that has
-% more efficient and less ugly code.
-%
-% The TeX part is not that complicated and once the
-% preprocessor was okay, the rest way just a lot of keying
-% and testing. It all comes down to gobbling, redefining,
-% and not so much to parsing.
-
-\unprotect
-
-\def\setupMMLappearance[#1]{\dodoubleargument\getparameters[@@MML#1]}
-
-\defineXMLdirective [mathml] \setupMMLappearance
-
-\defineXMLargument [math] \doXMLmath
-\defineXMLargument [imath] \doXMLimath
-\defineXMLargument [dmath] \doXMLdmath
-\defineXMLargument [m] \doXMLimath
-
-\unexpanded\def\doXMLmath {\ifhmode\@EA\doXMLimath\else\@EA\doXMLdmath\fi}
-\unexpanded\def\doXMLimath{\XMLremapdata[mml]{$}{$}}
-\unexpanded\def\doXMLdmath{\XMLremapdata[mml]{\dostartformula{}}{\dostopformula}}
-
-\ifx\XMLRtoks\undefined \newtoks\XMLRtoks \fi
-
-\def\convertasciiafter#1#2%
- {\defconvertedargument\asciiafter{#2}%
- \@EA#1\@EA{\asciiafter}}
-
-\def\checkMMLoperator#1% #2
- {\unspaceargument#1\to\ascii
- \doifXMLentityelse\ascii{\getXMLentity\ascii}} % {#2}
-
-% this will be done in a more safe way
-
-\def\MMLtodo#1{\enspace\hbox{\rm#1}\enspace}
-
-% this goes to core-mat
-
-\def\normalorfiller #1#2{#1}
-\def\normalordelimiter#1#2{#2}
-
-\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}
-
-% Auxiliary macros
-
-\bgroup \obeylines
-
-\gdef\defineMMLentity% % needed !
- {\bgroup\obeylines\xdefineMMLentity}
-
-\gdef\xdefineMMLentity #1 #2 #3 #4
- {\egroup\dodefineMMLentity{#1}{#2}{#3}{#4}}
-
-\global\let\dodefineMMLentity\gobblefourarguments
-
-\gdef\defineMMLsynonym% % needed !
- {\bgroup\obeylines\xdefineMMLsynonym}
-
-\gdef\xdefineMMLsynonym #1 #2
- {\egroup\dodefineMMLsynonym{#1}{#2}}
-
-\global\let\dodefineMMLsynonym\gobbletwoarguments
-
-\egroup
-
-% some more
-
-\def\showMMLentity#1%
- {\bgroup
- \doifXMLentityelse{#1}
- {\let\left\empty\let\right\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}
-
-% the definitions
-
-\ifx\blackboard\undefined
- \def\blackboard{\ifx\Bbb\undefined\else\expandafter\Bbb\fi}
-\fi
-
-% 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}
-
-% basic entities, hebrew
-
-\defineXMLentity [aleph] {\mathematics \aleph}
-
-% 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] {\pm}
-\defineXMLentity [minusplus] {\mp}
-
-\defineXMLentity [vectorproduct] {\times}
-\defineXMLentity [scalarproduct] {\cdot}
-\defineXMLentity [outerproduct] {\otimes}
-
-\defineXMLentity [integers] {\integers}
-\defineXMLentity [reals] {\reals}
-\defineXMLentity [rationals] {\rationals}
-\defineXMLentity [naturalnumbers] {\naturalnumbers}
-\defineXMLentity [complexes] {\complexes}
-\defineXMLentity [primes] {\primes}
-
-\defineXMLentity [emptyset] {\emptyset}
-\defineXMLentity [pi] {\pi}
-\defineXMLentity [eulergamma] {\gamma}
-\defineXMLentity [infinity] {\mathematics{\infty}}
-
-\defineXMLentity [InvisibleTimes] {}
-\defineXMLentity [InvisibleComma] {}
-\defineXMLentity [ApplyFunction] {}
-
-\defineXMLentity [it] {\getXMLentity{InvisibleTines}}
-\defineXMLentity [ic] {\getXMLentity{InvisibleComma}}
-\defineXMLentity [af] {\getXMLentity{ApplyFunction}}
-
-\defineXMLentity [PlusMinus] {\getXMLentity{plusminus}}
-
-\defineXMLentity [infin] {\getXMLentity{infinity}}
-\defineXMLentity [infty] {\getXMLentity{infinity}}
-\defineXMLentity [part] {\getXMLentity{differentiald}}
-
-\defineXMLentity [RightArrow] {\normalorfiller\rightarrow\rightarrowfill}
-\defineXMLentity [LeftArrow] {\normalorfiller\leftarrow\leftarrowfill}
-\defineXMLentity [UnderBrace] {\normalorfiller\empty\upbracefill}
-\defineXMLentity [OverBrace] {\normalorfiller\empty\downbracefill}
-\defineXMLentity [UnderBar] {\normalorfiller\hrule\hrulefill}
-\defineXMLentity [OverBar] {\normalorfiller\hrule\hrulefill}
-\defineXMLentity [Hat] {\normalorfiller\empty\empty} % todo
-
-\defineXMLentity [downarrow] {\mathortext\downarrow\empty}
-\defineXMLentity [uparrow] {\mathortext\uparrow\empty}
-
-\defineXMLentity [Tab] {\hskip4em}
-\defineXMLentity [NewLine] {\mathortext\empty\crlf}
-\defineXMLentity [IndentingNewLine] {\mathortext\empty\crlf}
-
-\defineXMLentity [NoBreak] {\nobreak}
-\defineXMLentity [GoodBreak] {\goodbreak}
-\defineXMLentity [BadBreak] {\nobreak}
-
-\defineXMLentity [Space] {\getXMLentity{MediumSpace}}
-\defineXMLentity [NonBreakingSpace] {\getXMLentity{MediumSpace}}
-\defineXMLentity [ZeroWidthSpace] {}
-
-\def\somespaceentity#1#2%
- {\mathortext
- {\mskip#1mu}
- {\ifvmode\dontleavehmode\else\unskip\fi\hskip#2em\strut\hskip\zeropoint\ignorespaces}%
- \relax}
-
-\defineXMLentity [VeryThinSpace] {\somespaceentity {2}{.125}}
-\defineXMLentity [ThinSpace] {\somespaceentity {3}{.25}}
-\defineXMLentity [MediumSpace] {\somespaceentity {4}{.5}}
-\defineXMLentity [ThickSpace] {\somespaceentity {5}{1}}
-\defineXMLentity [NegativeVeryThinSpace] {\somespaceentity{-2}{-.125}}
-\defineXMLentity [NegativeThinSpace] {\somespaceentity{-3}{-.25}}
-\defineXMLentity [NegativeMediumSpace] {\somespaceentity{-4}{-.5}}
-\defineXMLentity [NegativeThickSpace] {\somespaceentity{-5}{-1}}
-
-\defineXMLentity [NegVeryThinSpace] {\getXMLentity{NegativeVeryThinSpace}}
-\defineXMLentity [NegThinSpace] {\getXMLentity{NegativeThinSpace}}
-\defineXMLentity [NegMediumSpace] {\getXMLentity{NegativeMediumSpace}}
-\defineXMLentity [NegThickSpace] {\getXMLentity{NegativeThickSpace}}
-
-\defineXMLentity [nbsp] {\getXMLentity{NonBreakingSpace}}
-\defineXMLentity [thinsp] {\getXMLentity{ThinSpace}}
-\defineXMLentity [medsp] {\getXMLentity{MediumSpace}}
-\defineXMLentity [thicksp] {\getXMLentity{ThickSpace}}
-
-\defineXMLentity [larr] {\getXMLentity{LeftArrow}}
-\defineXMLentity [rarr] {\getXMLentity{RightArrow}}
-
-\defineXMLentity [lbrace] {\normalordelimiter{\{}{\left \{}}
-\defineXMLentity [rbrace] {\normalordelimiter{\}}{\right\}}}
-\defineXMLentity [lbracket] {\normalordelimiter{[}{\left [}}
-\defineXMLentity [rbracket] {\normalordelimiter{]}{\right]}}
-\defineXMLentity [lparenthesis] {\normalordelimiter{(}{\left (}}
-\defineXMLentity [rparenthesis] {\normalordelimiter{)}{\right)}}
-\defineXMLentity [langle] {\normalordelimiter{\langle}{\left \langle}}
-\defineXMLentity [rangle] {\normalordelimiter{\rangle}{\right\rangle}}
-
-\defineXMLentity [lang] {\getXMLentity{langle}}
-\defineXMLentity [rang] {\getXMLentity{rangle}}
-\defineXMLentity [lbrack] {\getXMLentity{lbracket}}
-\defineXMLentity [rbrack] {\getXMLentity{rbracket}}
-\defineXMLentity [lparent] {\getXMLentity{lparenthesis}}
-\defineXMLentity [rparent] {\getXMLentity{rparenthesis}}
-
-\defineXMLentity [\letterleftbrace ] {\getXMLentity{lbrace}}
-\defineXMLentity [\letterrightbrace] {\getXMLentity{rbrace}}
-
-\defineXMLentity [{[}] {\getXMLentity{lbracket}}
-\defineXMLentity [{]}] {\getXMLentity{rbracket}}
-\defineXMLentity [{(}] {\getXMLentity{lparenthesis}}
-\defineXMLentity [{)}] {\getXMLentity{rparenthesis}}
-
-\defineXMLentity [times] {\times}
-\defineXMLentity [minus] {-}
-\defineXMLentity [plus] {+}
-\defineXMLentity [plusmn] {\pm}
-
-\defineXMLentity [nabla] {\nabla}
-
-\def\myspecialnormalvert{\mathematics{\vert}} % temp hack, should stretch
-
-\defineXMLentity [,] {{,}}
-\defineXMLentity [.] {{.}}
-\defineXMLentity [+] {+}
-\defineXMLentity [-] {-}
-\defineXMLentity [(] {(}
-\defineXMLentity [)] {)}
-\defineXMLentity [<] {\mathematics{<}}
-\defineXMLentity [>] {\mathematics{>}}
-\defineXMLentity [|] {\myspecialnormalvert}
-\defineXMLentity [/] {/}
-\defineXMLentity [*] {\times}
-\defineXMLentity [=] {=}
-
-\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/mkii/xtag-mmp.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-mmp.mkii
deleted file mode 100644
index 93f0a1504db..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-mmp.mkii
+++ /dev/null
@@ -1,553 +0,0 @@
-%D \module
-%D [ file=xtag-mmp,
-%D version=2000.12.20,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=Presentation MathML,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \points should become \bodyfontsize
-
-% under reconstruction
-%
-% \starttext
-% \usemodule[mathml] \useXMLfilter[utf]
-% \unprotect
-%
-% \remapXMLsequence [mover] [CPA] \MMLpOVER
-% \remapXMLsequence [munder] [CPA] \MMLpUNDER
-%
-% \def\MMLpUNDER#1#2%
-% {\getXMLarguments{munder}{accent="false" #1}%
-% \withnexttwoXMLRelements\doMMLpUNDER#2}
-%
-% \def\MMLpOVER#1#2%
-% {\getXMLarguments{mover}{accent="false" #1}%
-% \withnexttwoXMLRelements\doMMLpOVER #2}
-%
-% \def\doMMLpUNDER
-% {\doifelse{\XMLpar{munder}{accent}{}}{true}
-% {\secondXMLRelement\firstXMLRelement}
-% {\mathop{\vtop{\mathsurround\zeropoint\ialign{\hss##\hss\crcr
-% \disabledelimiter\doMMLfiller\firstXMLRelement
-% \crcr\noalign{\kern3\points\nointerlineskip}%
-% \disabledelimiter\doMMLfiller\secondXMLRelement
-% \crcr\noalign{\kern3\points}}}}\limits}}
-%
-% \def\doMMLpOVER
-% {\doifelse{\XMLpar{mover}{accent}{}}{true}
-% {\secondXMLRelement\firstXMLRelement}
-% {\mathop{\vbox{\mathsurround\zeropoint\ialign{\hss##\hss\crcr\noalign{\kern3\points}%
-% \disabledelimiter\doMMLfiller\secondXMLRelement
-% \crcr\noalign{\kern3\points\nointerlineskip}%
-% \disabledelimiter\doMMLfiller\firstXMLRelement
-% \crcr}}}\limits}}
-%
-% \protect
-%
-% Normal: \startXMLdata<math><mover ><mi>a</mi><mo>¯</mo></mover></math>\stopXMLdata \par
-% Accent: \startXMLdata<math><mover accent="true"><mi>x</mi><mo>¯</mo></mover></math>\stopXMLdata \par
-%
-% \stoptext
-
-\writestatus{loading}{ConTeXt XML Macros / Presentational MathML}
-
-\unprotect
-
-\def\convertasciiafter#1#2%
- {\defconvertedargument\asciiafter{#2}%
- \@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
-
-\def\MMLpmath#1#2%
- {\begingroup
- \getXMLarguments{mstyle}{#1}\setMMLpmathstyle{mstyle}#2%
- \endgroup}
-
-\def\MMLpMI#1#2%
- {\MMLpmath{#1}{\checkMMLoperator{#2}{#2}}}
-
-\def\MMLpMN#1#2%
- {\begingroup\rm\MMLpmath{#1}{#2}\endgroup}
-
-\def\MMLpMO#1#2% yes or no
- {\checkMMLoperator
- {#2}
- {\ConvertConstantAfter\doifinstringelse{\xmlrent}{#2}
- {#2}{\hbox{\MMLpmath{#1}{\ignorespaces#2\unskip}}}}} % \hbox ?
-
-\remapXMLsequence [mfenced] [CPA] \MMLpFENCED
-
-\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
-
-\def\MMLpFENCED#1#2%
- {\getXMLarguments{mfenced}{open="(" close=")" separators="" #1}%
- \edef\MMLpopen {\XMLpar{mfenced}{open}{}}%
- \edef\MMLpclose{\XMLpar{mfenced}{close}{}}%
- \ifx\MMLpopen\empty\else\doMMLleft\MMLpopen\fi
- \pushmacro\MMLpopen
- \pushmacro\MMLpclose
- \doifXMLparelse{mfenced}{separators}
- {\resetMMLseparator
- \encapsulateXMLR
- {}%
- {\pushmacro\myspecialnormalvert % hack
- \def\myspecialnormalvert{\;\vrule\;}%
- \grabMMLseparator{\XMLpar{mfenced}{separators}{}}%
- \popmacro\myspecialnormalvert}
- {}%
- {#2\empty}}
- {#2}%
- \popmacro\MMLpclose
- \popmacro\MMLpopen
- \ifx\MMLpclose\empty
- \ifx\MMLpopen\empty\else\right.\fi
- \else\doMMLright\MMLpclose\fi}
-
-\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% better use \checkMMLoperator
- {\ifnum\MMLxxcounter=\MMLyycounter\space
-\doifXMLentityelse{#1}
- {\def\lastMMLseparator{\xmlrent{#1}}}
- {\def\lastMMLseparator{#1}}%
- \fi
- \dograbMMLseparator}
-
-\remapXMLsequence [menclose] [CPA] \MMLpENCLOSE
-
-\def\MMLpENCLOSE#1#2%
- {\getXMLarguments{menclose}{notation="" #1}%
- \doifelse{\XMLpar{menclose}{notation}{}}{longdiv}
- {\overline{)#2}}
- {#2}}
-
-\remapXMLsequence [mfrac] [CPA] \MMLpFRAC
-
-\def\MMLpFRAC#1#2% \above is suboptimal since the spacing changes
- {\withnexttwoXMLRelements
- {\getXMLarguments{mfrac}{linethickness="" #1}%
- \doifXMLparelse{mfrac}{linethickness}
- {\edef\theXMLpar{\XMLpar{mfrac}{linethickness}{1}}%
- \processaction
- [\theXMLpar]
- [ thin=>\scratchdimen=.2pt,
- medium=>\scratchdimen=.4pt,
- thick=>\scratchdimen=.8pt,
- unknown=>\setdimensionwithunit\scratchdimen{\theXMLpar}{}]%
- {{\firstXMLRelement}\above\scratchdimen{\secondXMLRelement}}}
- {\frac{\firstXMLRelement}{\secondXMLRelement}}}%
- #2}
-
-\remapXMLsequence [ms] [CPA] \MMLpSTRING
-
-\def\MMLpSTRING#1#2%
- {\MMLpTEXT{#1}
- {\getXMLarguments{mstyle}{#1}%
- \getXMLarguments{ms}{lquote="\xmlrent{quot}" rquote="\xmlrent{quot}" #1}%
- \XMLpar{ms}{lquote}{}\ignorespaces#2\unskip\unskip\XMLpar{ms}{rquote}{}}}
-
-\remapXMLsequence [mstyle] [CPA] \MMLpSTYLE
-
-\getXMLarguments
- {mstyle}
- {fontweight="" fontstyle="" mathstyle="" mathvariant="" background="" color=""}
-
-\def\MMLpSTYLE#1#2%
- {\getXMLarguments{mstyle}{#1}#2}
-
-\remapXMLsequence [mtext] [CPA] \MMLpTEXT
-\remapXMLsequence [merror] [CPA] \MMLpERROR
-\remapXMLsequence [mphantom] [CPA] \MMLpPHANTOM
-\remapXMLsequence [mpadded] [CPA] \MMLpPADDED
-
-\def\MMLpTEXT#1#2%
- {\hbox
- {\tf % else encoding problems
- \getXMLarguments{mstyle}{#1}%
- \doMMPpbackground{mstyle}
- {\doMMPpcolor{mstyle}
- {\setMMLptextstyle{mstyle}%
- \ignorespaces#2\unskip\unskip}}}}
-
-\def\setMMLpstyle#1%
- {\doifdefined{MMLpstyle:#1}{\getvalue{MMLpstyle:#1}}}
-
-\def\defineMMLstyle[#1]#2%
- {\setvalue{MMLpstyle:#1}{#2}}
-
-\defineMMLstyle[normal] {\tf} \defineMMLstyle[double-stuck] {\bf}
-\defineMMLstyle[bolditalic] {\bi} \defineMMLstyle[bold-italic] {\bi}
-\defineMMLstyle[boldslanted]{\bs} \defineMMLstyle[bold-slanted] {\bs}
-\defineMMLstyle[boldnormal] {\bf} \defineMMLstyle[bold] {\bf}
-\defineMMLstyle[slanted] {\sl} \defineMMLstyle[normalslanted]{\sl}
-\defineMMLstyle[italic] {\it} \defineMMLstyle[normalitalic] {\it}
-\defineMMLstyle[fraktur] {\bf} \defineMMLstyle[bold-fraktur] {\bf}
-\defineMMLstyle[script] {\tf} \defineMMLstyle[bold-script] {\bf}
-
-% and all kind of other crappy names
-
-\def\setMMLptextstyle#1%
- {\setMMLpstyle{\XMLpar{#1}{fontweight}{}\XMLpar{#1}{fontstyle}{}}}
-
-\def\setMMLpmathstyle#1%
- {\setMMLpstyle{\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\MMLpERROR #1#2{\hbox{$\displaystyle#2$}}
-\def\MMLpPHANTOM#1#2{\phantom{\ignorespaces{}#2\unskip}} % watch spacing {} hack
-\def\MMLpPADDED #1#2{#2}
-
-\remapXMLsequence [mrow] [CPA] \MMLpROW
-
-\def\MMLpROW#1#2{#2}
-
-\remapXMLsequence [msqrt] [CPA] \MMLpSQRT
-\remapXMLsequence [mroot] [CPA] \MMLpROOT
-
-\def\MMLpSQRT#1#2%
- {\sqrt{#2}}
-
-\def\MMLpROOT#1#2%
- {\withnexttwoXMLRelements{\root{\secondXMLRelement}\of{\firstXMLRelement}}#2}
-
-\remapXMLsequence [msup] [CPA] \MMLpSUP
-\remapXMLsequence [msub] [CPA] \MMLpSUB
-
-\setupMMLappearance[scripts][\c!alternative=\v!a]
-
-\def\MMLpSUBP#1#2%
- {\withnexttwoXMLRelements
- {\doifelse\@@MMLscriptsalternative\v!a
- {{\firstXMLRelement}#1{\secondXMLRelement}} % both {} essential
- {\firstXMLRelement#1{\secondXMLRelement}}}%
- #2}
-
-\def\MMLpSUP#1{\MMLpSUBP ^}
-\def\MMLpSUB#1{\MMLpSUBP _}
-
-\remapXMLsequence [msubsup] [CPA] \MMLpSUBSUP
-
-\def\MMLpSUBSUP#1#2%
- {\withnextthreeXMLRelements
- {\firstXMLRelement _{\secondXMLRelement}^{\thirdXMLRelement}}%
- #2}
-
-\remapXMLsequence [mover] [CPA] \MMLpOVER
-\remapXMLsequence [munder] [CPA] \MMLpUNDER
-\remapXMLsequence [munderover] [CPA] \MMLpUNDEROVER
-
-% hack, cannot be nested
-
-\def\MMLpUNDER#1#2{\withnexttwoXMLRelements\doMMLpUNDER#2}
-\def\MMLpOVER #1#2{\withnexttwoXMLRelements\doMMLpOVER #2}
-
-\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}
-
-\def\doMMLpUNDER
- {\mathop{\vtop{\mathsurround\zeropoint\ialign{\hss##\hss\crcr
- \disabledelimiter\doMMLfiller\firstXMLRelement
- \crcr\noalign{\kern3\points\nointerlineskip}%
- \disabledelimiter\doMMLfiller\secondXMLRelement
- \crcr\noalign{\kern3\points}}}}\limits}
-
-\def\doMMLpOVER
- {\mathop{\vbox{\mathsurround\zeropoint\ialign{\hss##\hss\crcr\noalign{\kern3\points}%
- \disabledelimiter\doMMLfiller\secondXMLRelement
- \crcr\noalign{\kern3\points\nointerlineskip}%
- \disabledelimiter\doMMLfiller\firstXMLRelement
- \crcr}}}\limits}
-
-\def\MMLpUNDEROVER#1#2%
- {\withnextthreeXMLRelements
- {\firstXMLRelement
- _{\disablefiller\disabledelimiter\secondXMLRelement}%
- ^{\disablefiller\disabledelimiter\thirdXMLRelement}}#2}
-
-\remapXMLsequence [mtable] [CPA] \MMLpTABLE
-\remapXMLsequence [mtr] [CPA] \MMLpTR
-\remapXMLsequence [mtd] [CPA] \MMLpTD
-\remapXMLsequence [mlabeledtr] [CPA] \MMLpLABELEDTR
-
-\unexpanded\def\@col@amp@{&}
-
-\def\MMLpTR#1#2{\collectbetweenXMLR{\@col@amp@}{#2}\the\XMLRtoks\crcr}
-\def\MMLpTD#1#2{#2}
-
-\def\MMLpLABELEDTR{\MMLpTR}
-
-\def\MMLpTABLEmapper#1#2#3%
- {\doifXMLparelse{mtable}{#1}
- {\newcounter\MMLcounter
- \def\docommand##1%
- {\increment\MMLcounter
- \let\MMLpREMAP\doMMLpREMAP
- \def\MMLsetting{##1}#3% remap list
- \expanded{\setupTABLE[column][\MMLcounter][#2=\MMLsetting]}}%
- \expanded{\processseparatedlist[\XMLpar{mtable}{#1}{}][ ]\noexpand\docommand}}
- {}}
-
-\def\MMLpTABLEmap#1#2#3%
- {\doifXMLparelse{mtbl}{#1}
- {\edef\MMLsetting{\XMLpar{mtbl}{#1}{}}#3% remap list
- \edef\theMMLpTABLEmap{#2=\MMLsetting,\theMMLpTABLEmap}}
- {}}
-
-\def\doMMLpREMAP#1#2%
- {\doif{\MMLsetting}{#1}
- {\def\MMLsetting{#2}%
- \let\MMLpREMAP\gobbletwoarguments}}
-
-\let\MMLpREMAP\doMMLpREMAP
-
-\def\doMMLpTABLE#1#2%
- {\begingroup
- \getXMLarguments{mtable}
- {columnalign="" columnspacing=".25ex" rowspacing=".25ex"
- frame="" color="" background="" #1}%
- \setupTABLE[\c!frame=\v!off]%
- \MMLpTABLEmapper{background}{\c!backgroundcolor}{}%
- \MMLpTABLEmapper{color}{\c!color}{}%
- \MMLpTABLEmapper{frame}{\c!frame}
- {\MMLpREMAP{none}{off}\MMLpREMAP{solid}{on}}%
- \MMLpTABLEmapper{columnalign}{\c!align}
- {\MMLpREMAP{left}{right}%
- \MMLpREMAP{right}{left}%
- \MMLpREMAP{center}{middle}}%
- \setMMLpunit{\XMLpar{mtable}{rowspacing}{}}{.25ex}%
- \let\MMLpTABLEoffset\MMLpunit
- \let\MMLpTR\doMMLpTR
- \let\MMLpTD\doMMLpTD
- \bTABLE[\c!background=\v!color,\c!offset=\MMLpTABLEoffset]#2\eTABLE
- \endgroup}
-
-\def\doMMLpTR#1#2%
- {\doifXMLRchildelse{mtd}{#2}
- {\bTR\ignorespaces#2\unskip\eTR}
- {\bTR\doMMLpTD{#1}{#2}\eTR}}
-
-\def\doMMLpTD#1#2%
- {\getXMLarguments{mtbl}
- {columnalign="" columnspacing="" rowspacing=""
- frame="" color="" background="" #1}%
- \let\theMMLpTABLEmap\empty
- \MMLpTABLEmap{background}{\c!backgroundcolor}{}%
- \MMLpTABLEmap{color}{\c!color}{}%
- \MMLpTABLEmap{frame}{\c!frame}
- {\MMLpREMAP{none}{off}\MMLpREMAP{solid}{on}}%
- \MMLpTABLEmap{columnalign}{\c!align}
- {\MMLpREMAP{left}{right}\MMLpREMAP{right}{left}}%
- \@EA\bTD\@EA[\theMMLpTABLEmap]$\ignorespaces#2\unskip$\eTD}
-
-\setupMMLappearance[mtable][\c!alternative=\v!a]
-
-\def\MMLpTABLE
- {\doifelse\@@MMLmtablealternative\v!a
- {\expandafter\MMLpTABLEa}
- {\expandafter\MMLpTABLEb}}
-
-\def\MMLpTABLEa#1#2%
- {\begingroup
- \doifelsenothing{#1}
- {\global\setfalse\mmlTABLEargs}
- {\global\settrue\mmlTABLEargs}%
- \ifconditional\mmlTABLEargs \else
- \setbox\scratchbox=\hbox
- {$\displaystyle
- \def\MMLpTABLE##1##2%
- {\ifconditional\mmlTABLEargs \else
- \doifelsenothing{##1}{##2}{\global\settrue\mmlTABLEargs}%
- \fi}%
- \let\MMLpTR\MMLpTABLE
- \let\MMLpTD\MMLpTABLE
- #2$}%
- \fi
- \ifconditional\mmlTABLEargs
- \let\MMLpTABLE\doMMLpTABLE
- \def\next{\MMLpTABLE{#1}}%
- \else
- \let\next\matrix
- \fi
- \next{#2}%
- \endgroup}
-
-\let\MMLpTABLEb\doMMLpTABLE
-
-\remapXMLsingular [mspace] [CPA] \MMLpSPACE
-
-\def\setMMLpunit#1#2%
- {\setbox\scratchbox=\hbox
- {\edef\ascii{#1}%
- \@EA\aftersplitstring\ascii\at.\to\ascii
- \scratchcounter=\ifx\ascii\empty#1\else\ascii\fi
- \unskip\unskip}%
- \ifdim\wd\scratchbox=\zeropoint
- \edef\MMLpunit{#1em}%
- \else
- \edefconvertedargument\ascii{#1}%
- \convertasciiafter\doifinstringelse{em}{\ascii}{\edef\MMLpunit{#1}}{%
- \convertasciiafter\doifinstringelse{ex}{\ascii}{\edef\MMLpunit{#1}}{%
- \convertasciiafter\doifinstringelse{pt}{\ascii}{\edef\MMLpunit{#1}}{%
- \edef\MMLpunit{#2}}}}%
- \fi}
-
-\def\MMLpSPACE#1#2%
- {\getXMLarguments{mspace}{width=".5em" #1}%
- \setMMLpunit{\XMLpar{mspace}{width}{}}{.5em}%
- \hskip\MMLpunit\relax}
-
-
-\remapXMLsingular [mglyph] [CPA] \MMLpGLYPH
-
-\def\MMLpGLYPH#1#2% we assume \definefont usage
- {\getXMLarguments{mglyph}{fontfamily="" index="1" alt="" #1}%
- \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}{}}}}}}
-
-\remapXMLsingular [malignmark] [CPA] \MMLpALIGNMARK
-
-\def\MMLpALIGNMARK#1#2%
- {}
-
-\remapXMLsingular [none] [CPA] \MMLpNONE
-\remapXMLsingular [mprescripts] [CPA] \MMLpMPRESCRIPTS
-\remapXMLsequence [mmultiscripts] [CPA] \MMLpMULTISCRIPTS
-
-\def\MMLpNONE #1#2{}
-\def\MMLpMPRESCRIPTS#1#2{}
-
-\def\MMLpMULTISCRIPTS#1#2%
- {\pushmacro\xmlr
- \let\xmlr\pMULTISCRIPTmmlPRE
- \donefalse \scratchcounter=0 #2\empty
- \let\xmlr\pMULTISCRIPTmmlPOST
- \donetrue \scratchcounter=0 #2\empty
- \popmacro\xmlr}
-
-\def\pMULTISCRIPTmmlPRE#1#2#3#4%
- {\ifdone
- \ifodd\scratchcounter
- _{\naturalxmlr{#1}{#2}{#3}{#4}}%
- \else
- ^{\naturalxmlr{#1}{#2}{#3}{#4}}{}%
- \fi
- \else
- \doif{mprescripts/}{#1}{\donetrue{}}% weak, the / here
- \fi
- \ifdone \advance\scratchcounter \plusone \fi}
-
-\let\pMULTISCRIPTmmlPOST\pMULTISCRIPTmmlPRE
-
-\stopXMLmapping
-
-\protect \endinput
-
-% extra samples
-
-\startXMLdata
-<formula>
- <dmath>
- <mfrac>
- <mrow>
- <mfrac>
- <mrow>
- <mtext>Q</mtext>
- </mrow>
- <mrow>
- <mtext>P</mtext>
- </mrow>
- </mfrac>
- </mrow>
- <mrow>
- <mtext>R</mtext>
- </mrow>
- </mfrac>
- </dmath>
-</formula>
-\stopXMLdata
-
-\startXMLdata
-<formula>
- <dmath>
- <mfrac>
- <mrow>
- <mfrac>
- <mrow>
- <mi mathvariant='normal'>R</mi>
- </mrow>
- <mrow>
- <mi mathvariant='normal'>P</mi>
- </mrow>
- </mfrac>
- </mrow>
- <mrow>
- <mi mathvariant='normal'>R</mi>
- </mrow>
- </mfrac>
- </dmath>
-</formula>
-\stopXMLdata
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-mxa.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-mxa.mkii
deleted file mode 100644
index 5e83367df79..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-mxa.mkii
+++ /dev/null
@@ -1,101 +0,0 @@
-\defineMMLsynonym bkarow rbarr
-\defineMMLsynonym circlearrowleft olarr
-\defineMMLsynonym circlearrowright orarr
-\defineMMLsynonym curvearrowleft cularr
-\defineMMLsynonym curvearrowright curarr
-\defineMMLsynonym dbkarow rBarr
-\defineMMLsynonym DoubleDownArrow dArr
-\defineMMLsynonym DoubleLeftRightArrow hArr
-\defineMMLsynonym DoubleLongLeftArrow xlArr
-\defineMMLsynonym DoubleLongLeftRightArrow xhArr
-\defineMMLsynonym DoubleLongRightArrow xrArr
-\defineMMLsynonym DoubleUpArrow uArr
-\defineMMLsynonym DoubleUpDownArrow vArr
-\defineMMLsynonym Downarrow dArr
-\defineMMLsynonym DownArrowUpArrow duarr
-\defineMMLsynonym downdownarrows ddarr
-\defineMMLsynonym downharpoonleft dharl
-\defineMMLsynonym downharpoonright dharr
-\defineMMLsynonym DownLeftVector lhard
-\defineMMLsynonym DownRightVector rhard
-\defineMMLsynonym drbkarow RBarr
-\defineMMLsynonym Equilibrium rlhar
-\defineMMLsynonym hksearow searhk
-\defineMMLsynonym hkswarow swarhk
-\defineMMLsynonym hookleftarrow larrhk
-\defineMMLsynonym hookrightarrow rarrhk
-\defineMMLsynonym LeftArrowRightArrow lrarr
-\defineMMLsynonym leftarrowtail larrtl
-\defineMMLsynonym LeftDownVector dharl
-\defineMMLsynonym leftharpoondown lhard
-\defineMMLsynonym leftharpoonup lharu
-\defineMMLsynonym leftleftarrows llarr
-\defineMMLsynonym LeftRightArrow harr
-\defineMMLsynonym Leftrightarrow hArr
-\defineMMLsynonym leftrightarrow harr
-\defineMMLsynonym leftrightarrows lrarr
-\defineMMLsynonym leftrightharpoons lrhar
-\defineMMLsynonym leftrightsquigarrow harrw
-\defineMMLsynonym LeftUpVector uharl
-\defineMMLsynonym LeftVector lharu
-\defineMMLsynonym Lleftarrow lAarr
-\defineMMLsynonym LongLeftArrow xlarr
-\defineMMLsynonym Longleftarrow xlArr
-\defineMMLsynonym longleftarrow xlarr
-\defineMMLsynonym LongLeftRightArrow xharr
-\defineMMLsynonym Longleftrightarrow xhArr
-\defineMMLsynonym longleftrightarrow xharr
-\defineMMLsynonym longmapsto xmap
-\defineMMLsynonym LongRightArrow xrarr
-\defineMMLsynonym Longrightarrow xrArr
-\defineMMLsynonym longrightarrow xrarr
-\defineMMLsynonym looparrowleft larrlp
-\defineMMLsynonym looparrowright rarrlp
-\defineMMLsynonym LowerLeftArrow swarr
-\defineMMLsynonym LowerRightArrow searr
-\defineMMLsynonym Lsh lsh
-\defineMMLsynonym mapsto map
-\defineMMLsynonym multimap mumap
-\defineMMLsynonym nearrow nearr
-\defineMMLsynonym nLeftarrow nlArr
-\defineMMLsynonym nleftarrow nlarr
-\defineMMLsynonym nLeftrightarrow nhArr
-\defineMMLsynonym nleftrightarrow nharr
-\defineMMLsynonym nRightarrow nrArr
-\defineMMLsynonym nrightarrow nrarr
-\defineMMLsynonym nwarrow nwarr
-\defineMMLsynonym ReverseEquilibrium lrhar
-\defineMMLsynonym ReverseUpEquilibrium duhar
-\defineMMLsynonym RightArrowLeftArrow rlarr
-\defineMMLsynonym rightarrowtail rarrtl
-\defineMMLsynonym RightDownVector dharr
-\defineMMLsynonym rightharpoondown rhard
-\defineMMLsynonym rightharpoonup rharu
-\defineMMLsynonym rightleftarrows rlarr
-\defineMMLsynonym rightleftharpoons rlhar
-\defineMMLsynonym rightrightarrows rrarr
-\defineMMLsynonym rightsquigarrow rarrw
-\defineMMLsynonym RightTeeArrow map
-\defineMMLsynonym RightUpVector uharr
-\defineMMLsynonym RightVector rharu
-\defineMMLsynonym Rrightarrow rAarr
-\defineMMLsynonym Rsh rsh
-\defineMMLsynonym searrow searr
-\defineMMLsynonym ShortLeftArrow slarr
-\defineMMLsynonym ShortRightArrow srarr
-\defineMMLsynonym swarrow swarr
-\defineMMLsynonym toea nesear
-\defineMMLsynonym tosa seswar
-\defineMMLsynonym twoheadleftarrow Larr
-\defineMMLsynonym twoheadrightarrow Rarr
-\defineMMLsynonym Uparrow uArr
-\defineMMLsynonym UpArrowDownArrow udarr
-\defineMMLsynonym UpDownArrow varr
-\defineMMLsynonym Updownarrow vArr
-\defineMMLsynonym updownarrow varr
-\defineMMLsynonym UpEquilibrium udhar
-\defineMMLsynonym upharpoonleft uharl
-\defineMMLsynonym upharpoonright uharr
-\defineMMLsynonym UpperLeftArrow nwarr
-\defineMMLsynonym UpperRightArrow nearr
-\defineMMLsynonym upuparrows uuarr
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-mxb.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-mxb.mkii
deleted file mode 100644
index c325a9e4493..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-mxb.mkii
+++ /dev/null
@@ -1,55 +0,0 @@
-\defineMMLsynonym ast midast
-\defineMMLsynonym Backslash setmn
-\defineMMLsynonym barwedge barwed
-\defineMMLsynonym bigcap xcap
-\defineMMLsynonym bigcirc xcirc
-\defineMMLsynonym bigcup xcup
-\defineMMLsynonym bigodot xodot
-\defineMMLsynonym bigoplus xoplus
-\defineMMLsynonym bigotimes xotime
-\defineMMLsynonym bigsqcup xsqcup
-\defineMMLsynonym bigtriangledown xdtri
-\defineMMLsynonym bigtriangleup xutri
-\defineMMLsynonym biguplus xuplus
-\defineMMLsynonym bigvee xvee
-\defineMMLsynonym bigwedge xwedge
-\defineMMLsynonym boxminus minusb
-\defineMMLsynonym boxplus plusb
-\defineMMLsynonym boxtimes timesb
-\defineMMLsynonym cdot sdot
-\defineMMLsynonym circledast oast
-\defineMMLsynonym circledcirc ocir
-\defineMMLsynonym circleddash odash
-\defineMMLsynonym CircleDot odot
-\defineMMLsynonym CircleMinus ominus
-\defineMMLsynonym CirclePlus oplus
-\defineMMLsynonym CircleTimes otimes
-\defineMMLsynonym Coproduct coprod
-\defineMMLsynonym curlyvee cuvee
-\defineMMLsynonym curlywedge cuwed
-\defineMMLsynonym ddagger Dagger
-\defineMMLsynonym diamond diam
-\defineMMLsynonym divideontimes divonx
-\defineMMLsynonym dotminus minusd
-\defineMMLsynonym dotplus plusdo
-\defineMMLsynonym dotsquare sdotb
-\defineMMLsynonym doublebarwedge Barwed
-\defineMMLsynonym intercal intcal
-\defineMMLsynonym Intersection xcap
-\defineMMLsynonym intprod iprod
-\defineMMLsynonym leftthreetimes lthree
-\defineMMLsynonym oslash osol
-\defineMMLsynonym rightthreetimes rthree
-\defineMMLsynonym setminus setmn
-\defineMMLsynonym smallsetminus ssetmn
-\defineMMLsynonym SquareIntersection sqcap
-\defineMMLsynonym SquareUnion sqcup
-\defineMMLsynonym Star sstarf
-\defineMMLsynonym star sstarf
-\defineMMLsynonym Sum sum
-\defineMMLsynonym Union xcup
-\defineMMLsynonym UnionPlus uplus
-\defineMMLsynonym Vee xvee
-\defineMMLsynonym VerticalTilde wreath
-\defineMMLsynonym Wedge xwedge
-\defineMMLsynonym wr wreath
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-mxc.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-mxc.mkii
deleted file mode 100644
index e692f2a249b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-mxc.mkii
+++ /dev/null
@@ -1,10 +0,0 @@
-\defineMMLsynonym LeftCeiling lceil
-\defineMMLsynonym LeftFloor lfloor
-\defineMMLsynonym llcorner dlcorn
-\defineMMLsynonym lmoustache lmoust
-\defineMMLsynonym lrcorner drcorn
-\defineMMLsynonym RightCeiling rceil
-\defineMMLsynonym RightFloor rfloor
-\defineMMLsynonym rmoustache rmoust
-\defineMMLsynonym ulcorner ulcorn
-\defineMMLsynonym urcorner urcorn
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-mxh.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-mxh.mkii
deleted file mode 100644
index 3cf0103c804..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-mxh.mkii
+++ /dev/null
@@ -1,67 +0,0 @@
-\defineMMLsynonym approx ap
-\defineMMLsynonym Because becaus
-\defineMMLsynonym because becaus
-\defineMMLsynonym blacksquare squarf
-\defineMMLsynonym bot bottom
-\defineMMLsynonym circ compfn
-\defineMMLsynonym ClockwiseContourIntegral cwconint
-\defineMMLsynonym Congruent equiv
-\defineMMLsynonym ContourIntegral conint
-\defineMMLsynonym CounterClockwiseContourIntegral awconint
-\defineMMLsynonym Del nabla
-\defineMMLsynonym DoubleContourIntegral Conint
-\defineMMLsynonym DoubleLeftArrow lArr
-\defineMMLsynonym DoubleRightArrow rArr
-\defineMMLsynonym DoubleVerticalBar par
-\defineMMLsynonym DownTee top
-\defineMMLsynonym Element isinv
-\defineMMLsynonym Exists exist
-\defineMMLsynonym ForAll forall
-\defineMMLsynonym geq ge
-\defineMMLsynonym GreaterEqual ge
-\defineMMLsynonym iiiint qint
-\defineMMLsynonym iiint tint
-\defineMMLsynonym Implies rArr
-\defineMMLsynonym in isin
-\defineMMLsynonym Integral int
-\defineMMLsynonym langle lang
-\defineMMLsynonym LeftAngleBracket lang
-\defineMMLsynonym Leftarrow lArr
-\defineMMLsynonym leq le
-\defineMMLsynonym MinusPlus mnplus
-\defineMMLsynonym mp mnplus
-\defineMMLsynonym NotElement notin
-\defineMMLsynonym NotEqual ne
-\defineMMLsynonym NotReverseElement notniva
-\defineMMLsynonym oint conint
-\defineMMLsynonym parallel par
-\defineMMLsynonym PartialD part
-\defineMMLsynonym Proportional prop
-\defineMMLsynonym propto prop
-\defineMMLsynonym rangle rang
-\defineMMLsynonym ReverseElement niv
-\defineMMLsynonym RightAngleBracket rang
-\defineMMLsynonym Rightarrow rArr
-\defineMMLsynonym simeq sime
-\defineMMLsynonym SmallCircle compfn
-\defineMMLsynonym Sqrt radic
-\defineMMLsynonym Subset sub
-\defineMMLsynonym subset sub
-\defineMMLsynonym subseteq sube
-\defineMMLsynonym SubsetEqual sube
-\defineMMLsynonym SuchThat ni
-\defineMMLsynonym Superset sup
-\defineMMLsynonym SupersetEqual supe
-\defineMMLsynonym supset sup
-\defineMMLsynonym supseteq supe
-\defineMMLsynonym Therefore there4
-\defineMMLsynonym therefore there4
-\defineMMLsynonym Tilde sim
-\defineMMLsynonym TildeEqual sime
-\defineMMLsynonym TildeFullEqual cong
-\defineMMLsynonym TildeTilde ap
-\defineMMLsynonym TripleDot tdot
-\defineMMLsynonym UpTee perp
-\defineMMLsynonym vee or
-\defineMMLsynonym Vert Verbar
-\defineMMLsynonym wedge and
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-mxn.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-mxn.mkii
deleted file mode 100644
index 35eeade9a1a..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-mxn.mkii
+++ /dev/null
@@ -1,84 +0,0 @@
-\defineMMLsynonym gnapprox gnap
-\defineMMLsynonym gneq gne
-\defineMMLsynonym gneqq gnE
-\defineMMLsynonym gvertneqq gvnE
-\defineMMLsynonym lnapprox lnap
-\defineMMLsynonym lneq lne
-\defineMMLsynonym lneqq lnE
-\defineMMLsynonym lvertneqq lvnE
-\defineMMLsynonym napprox nap
-\defineMMLsynonym ngeq nge
-\defineMMLsynonym ngeqq ngE
-\defineMMLsynonym ngeqslant nges
-\defineMMLsynonym ngtr ngt
-\defineMMLsynonym nleq nle
-\defineMMLsynonym nleqq nlE
-\defineMMLsynonym nleqslant nles
-\defineMMLsynonym nless nlt
-\defineMMLsynonym NotCongruent nequiv
-\defineMMLsynonym NotDoubleVerticalBar npar
-\defineMMLsynonym NotGreater ngt
-\defineMMLsynonym NotGreaterEqual nge
-\defineMMLsynonym NotGreaterFullEqual ngE
-\defineMMLsynonym NotGreaterGreater nGtv
-\defineMMLsynonym NotGreaterLess ntvgl
-\defineMMLsynonym NotGreaterSlantEqual nges
-\defineMMLsynonym NotGreaterTilde ngsim
-\defineMMLsynonym NotLeftTriangle nltri
-\defineMMLsynonym NotLeftTriangleEqual nltrie
-\defineMMLsynonym NotLess nlt
-\defineMMLsynonym NotLessEqual nle
-\defineMMLsynonym NotLessFullEqual nlE
-\defineMMLsynonym NotLessGreater ntvlg
-\defineMMLsynonym NotLessLess nLtv
-\defineMMLsynonym NotLessSlantEqual nles
-\defineMMLsynonym NotLessTilde nlsim
-\defineMMLsynonym NotPrecedes npr
-\defineMMLsynonym NotPrecedesEqual npre
-\defineMMLsynonym NotPrecedesSlantEqual nprcue
-\defineMMLsynonym NotRightTriangle nrtri
-\defineMMLsynonym NotRightTriangleEqual nrtrie
-\defineMMLsynonym NotSquareSubsetEqual nsqsube
-\defineMMLsynonym NotSquareSupersetEqual nsqsupe
-\defineMMLsynonym NotSubset vnsub
-\defineMMLsynonym NotSucceeds nsc
-\defineMMLsynonym NotSucceedsEqual nsce
-\defineMMLsynonym NotSucceedsSlantEqual nsccue
-\defineMMLsynonym NotSuperset vnsup
-\defineMMLsynonym NotTilde nsim
-\defineMMLsynonym NotTildeEqual nsime
-\defineMMLsynonym NotTildeFullEqual ncong
-\defineMMLsynonym NotTildeTilde nap
-\defineMMLsynonym NotVerticalBar nmid
-\defineMMLsynonym nparallel npar
-\defineMMLsynonym nprec npr
-\defineMMLsynonym npreceq npre
-\defineMMLsynonym nshortmid nsmid
-\defineMMLsynonym nshortparallel nspar
-\defineMMLsynonym nsimeq nsime
-\defineMMLsynonym nsubset vnsub
-\defineMMLsynonym nsubseteq nsube
-\defineMMLsynonym nsubseteqq nsubE
-\defineMMLsynonym nsucc nsc
-\defineMMLsynonym nsucceq nsce
-\defineMMLsynonym nsupset vnsup
-\defineMMLsynonym nsupseteq nsupe
-\defineMMLsynonym nsupseteqq nsupE
-\defineMMLsynonym ntriangleleft nltri
-\defineMMLsynonym ntrianglelefteq nltrie
-\defineMMLsynonym ntriangleright nrtri
-\defineMMLsynonym ntrianglerighteq nrtrie
-\defineMMLsynonym precnapprox prnap
-\defineMMLsynonym precneqq prnE
-\defineMMLsynonym precnsim prnsim
-\defineMMLsynonym subsetneq subne
-\defineMMLsynonym subsetneqq subnE
-\defineMMLsynonym succnapprox scnap
-\defineMMLsynonym succneqq scnE
-\defineMMLsynonym succnsim scnsim
-\defineMMLsynonym supsetneq supne
-\defineMMLsynonym supsetneqq supnE
-\defineMMLsynonym varsubsetneq vsubne
-\defineMMLsynonym varsubsetneqq vsubnE
-\defineMMLsynonym varsupsetneq vsupne
-\defineMMLsynonym varsupsetneqq vsupnE
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-mxo.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-mxo.mkii
deleted file mode 100644
index 045b4f40696..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-mxo.mkii
+++ /dev/null
@@ -1,14 +0,0 @@
-\defineMMLsynonym angle ang
-\defineMMLsynonym backprime bprime
-\defineMMLsynonym circledS oS
-\defineMMLsynonym complement comp
-\defineMMLsynonym emptyset empty
-\defineMMLsynonym hbar plank
-\defineMMLsynonym hslash plankv
-\defineMMLsynonym Im image
-\defineMMLsynonym measuredangle angmsd
-\defineMMLsynonym nexists nexist
-\defineMMLsynonym NotExists nexist
-\defineMMLsynonym Re real
-\defineMMLsynonym varnothing emptyv
-\defineMMLsynonym wp weierp
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-mxr.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-mxr.mkii
deleted file mode 100644
index ed1498f8137..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-mxr.mkii
+++ /dev/null
@@ -1,112 +0,0 @@
-\defineMMLsynonym approxeq ape
-\defineMMLsynonym backcong bcong
-\defineMMLsynonym backepsilon bepsi
-\defineMMLsynonym backsim bsim
-\defineMMLsynonym backsimeq bsime
-\defineMMLsynonym between twixt
-\defineMMLsynonym Bumpeq bump
-\defineMMLsynonym bumpeq bumpe
-\defineMMLsynonym circeq cire
-\defineMMLsynonym coloneq colone
-\defineMMLsynonym Cup smile
-\defineMMLsynonym CupCap asymp
-\defineMMLsynonym curlyeqprec cuepr
-\defineMMLsynonym curlyeqsucc cuesc
-\defineMMLsynonym ddotseq eDDot
-\defineMMLsynonym doteq esdot
-\defineMMLsynonym doteqdot eDot
-\defineMMLsynonym DotEqual esdot
-\defineMMLsynonym DoubleRightTee vDash
-\defineMMLsynonym eqcirc ecir
-\defineMMLsynonym eqcolon ecolon
-\defineMMLsynonym eqsim esim
-\defineMMLsynonym eqslantgtr egs
-\defineMMLsynonym eqslantless els
-\defineMMLsynonym EqualTilde esim
-\defineMMLsynonym fallingdotseq efDot
-\defineMMLsynonym geqq gE
-\defineMMLsynonym geqslant ges
-\defineMMLsynonym gg Gt
-\defineMMLsynonym ggg Gg
-\defineMMLsynonym GreaterEqualLess gel
-\defineMMLsynonym GreaterFullEqual gE
-\defineMMLsynonym GreaterLess gl
-\defineMMLsynonym GreaterSlantEqual ges
-\defineMMLsynonym GreaterTilde gsim
-\defineMMLsynonym gtrapprox gap
-\defineMMLsynonym gtrdot gtdot
-\defineMMLsynonym gtreqless gel
-\defineMMLsynonym gtreqqless gEl
-\defineMMLsynonym gtrless gl
-\defineMMLsynonym gtrsim gsim
-\defineMMLsynonym HumpDownHump bump
-\defineMMLsynonym HumpEqual bumpe
-\defineMMLsynonym LeftTee dashv
-\defineMMLsynonym LeftTriangle vltri
-\defineMMLsynonym LeftTriangleEqual ltrie
-\defineMMLsynonym leqq lE
-\defineMMLsynonym leqslant les
-\defineMMLsynonym lessapprox lap
-\defineMMLsynonym lessdot ltdot
-\defineMMLsynonym lesseqgtr leg
-\defineMMLsynonym lesseqqgtr lEg
-\defineMMLsynonym LessEqualGreater leg
-\defineMMLsynonym LessFullEqual lE
-\defineMMLsynonym LessGreater lg
-\defineMMLsynonym lessgtr lg
-\defineMMLsynonym lesssim lsim
-\defineMMLsynonym LessSlantEqual les
-\defineMMLsynonym LessTilde lsim
-\defineMMLsynonym ll Lt
-\defineMMLsynonym NestedGreaterGreater Gt
-\defineMMLsynonym NestedLessLess Lt
-\defineMMLsynonym pitchfork fork
-\defineMMLsynonym prec pr
-\defineMMLsynonym precapprox prap
-\defineMMLsynonym preccurlyeq prcue
-\defineMMLsynonym Precedes pr
-\defineMMLsynonym PrecedesEqual pre
-\defineMMLsynonym PrecedesSlantEqual prcue
-\defineMMLsynonym PrecedesTilde prsim
-\defineMMLsynonym preceq pre
-\defineMMLsynonym precsim prsim
-\defineMMLsynonym Proportion Colon
-\defineMMLsynonym questeq equest
-\defineMMLsynonym RightTee vdash
-\defineMMLsynonym RightTriangle vrtri
-\defineMMLsynonym RightTriangleEqual rtrie
-\defineMMLsynonym risingdotseq erDot
-\defineMMLsynonym shortmid smid
-\defineMMLsynonym shortparallel spar
-\defineMMLsynonym smallfrown sfrown
-\defineMMLsynonym smallsmile ssmile
-\defineMMLsynonym sqsubset sqsub
-\defineMMLsynonym sqsubseteq sqsube
-\defineMMLsynonym sqsupset sqsup
-\defineMMLsynonym sqsupseteq sqsupe
-\defineMMLsynonym SquareSubset sqsub
-\defineMMLsynonym SquareSubsetEqual sqsube
-\defineMMLsynonym SquareSuperset sqsup
-\defineMMLsynonym SquareSupersetEqual sqsupe
-\defineMMLsynonym Subset Sub
-\defineMMLsynonym subseteqq subE
-\defineMMLsynonym succ sc
-\defineMMLsynonym succapprox scap
-\defineMMLsynonym succcurlyeq sccue
-\defineMMLsynonym Succeeds sc
-\defineMMLsynonym SucceedsEqual sce
-\defineMMLsynonym SucceedsSlantEqual sccue
-\defineMMLsynonym SucceedsTilde scsim
-\defineMMLsynonym succeq sce
-\defineMMLsynonym succsim scsim
-\defineMMLsynonym Supset Sup
-\defineMMLsynonym supseteqq supE
-\defineMMLsynonym thickapprox thkap
-\defineMMLsynonym thicksim thksim
-\defineMMLsynonym trianglelefteq ltrie
-\defineMMLsynonym triangleq trie
-\defineMMLsynonym trianglerighteq rtrie
-\defineMMLsynonym varpropto vprop
-\defineMMLsynonym vartriangleleft vltri
-\defineMMLsynonym vartriangleright vrtri
-\defineMMLsynonym VerticalBar mid
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-pml.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-pml.mkii
deleted file mode 100644
index a0930b63428..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-pml.mkii
+++ /dev/null
@@ -1,85 +0,0 @@
-%D \module
-%D [ file=xtag-pml,
-%D version=2001.09.04,
-%D title=\CONTEXT\ XML Support,
-%D subtitle=Physics ML,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt XML Macros / PhysML}
-
-%D This is a reimplmentation of the old filter. This module
-%D runs on top of the mathml and units modules.
-
-\useXMLfilter[map]
-\useXMLfilter[mml,mmp,mmc]
-
-\defineXMLargument [phys] \doXMLphys
-\defineXMLargument [iphys] \doXMLiphys
-\defineXMLargument [dphys] \doXMLdphys
-
-\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
-
-\doifnotmode{demo}{\endinput}
-
-\usemodule[units]
-
-\starttext
-
-\startXMLdata
-<phys>
- <apply> <times/>
- <cn> 10 </cn>
- <ci><unit><Milli/><Sec/><Per/><Square/><Kilo/><Meter/></unit> </ci>
- </apply>
-</phys>
-\stopXMLdata
-
-\startXMLdata
-<phys>
- <apply> <divide/>
- <cn> 10 </cn>
- <ci> <unit><Unit/><Milli/><Sec/><Per/><Square/><Kilo/><Meter/></unit> </ci>
- </apply>
-</phys>
-\stopXMLdata
-
-\startXMLdata
-<phys>
- <apply> <times/>
- <cn> 10 </cn>
- <ci> <unit> <Milli/> <Sec/> <Per/> <Square/> <Kilo/> <Meter/> </unit> </ci>
- </apply>
-</phys>
-\stopXMLdata
-
-\startXMLdata
-<phys>
- <apply> <times/>
- <cn> 10 </cn>
- <ci> <unit><Milli/><Sec/><Per/><Square/><Kilo/><Meter/></unit> </ci>
- </apply>
-</phys>
-\stopXMLdata
-
-\startXMLdata
-<phys>
- <apply> <times/>
- <cn> 10 </cn>
- <ci> <unit> <Milli/> <Sec/> <Per/> <Square/> <Kilo/> <Meter/> </unit> </ci>
- </apply>
-</phys>
-\stopXMLdata
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-pmu.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-pmu.mkii
deleted file mode 100644
index 5c7c9a8f61a..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-pmu.mkii
+++ /dev/null
@@ -1,188 +0,0 @@
-%D \module
-%D [ file=xtag-pmu,
-%D version=2001.06.10,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=Units,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt XML Macros / Units}
-
-%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
-
-\defineXMLsingular [unitmeaning] [label=] \doPMLunitmeaning
-
-\def\doPMLunitmeaning
- {\expanded{\unitmeaning{\XMLop{label}}}}
-
-\startXMLmapping [mml]
-
-\remapXMLsequence [unit] [CPA] \doPMLuseq
-\remapXMLsingular [unit] [CPA] \doPMLunit % #2\empty
-\remapXMLsequence [cunseq] [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\handlePMLunit#1{\ifPMLunit\ignorespaces#1\fi\ignorespaces}
-
-%D All unit commands are remapped in a similar way.
-
-\remapXMLsingular [Atto] [C] {\handlePMLunit\Atto}
-\remapXMLsingular [Femto] [C] {\handlePMLunit\Femto}
-\remapXMLsingular [Pico] [C] {\handlePMLunit\Pico}
-\remapXMLsingular [Nano] [C] {\handlePMLunit\Nano}
-\remapXMLsingular [Micro] [C] {\handlePMLunit\Micro}
-\remapXMLsingular [Milli] [C] {\handlePMLunit\Milli}
-\remapXMLsingular [Centi] [C] {\handlePMLunit\Centi}
-\remapXMLsingular [Deci] [C] {\handlePMLunit\Deci}
-\remapXMLsingular [Hecto] [C] {\handlePMLunit\Hecto}
-\remapXMLsingular [Kilo] [C] {\handlePMLunit\Kilo}
-\remapXMLsingular [Mega] [C] {\handlePMLunit\Mega}
-\remapXMLsingular [Giga] [C] {\handlePMLunit\Giga}
-\remapXMLsingular [Terra] [C] {\handlePMLunit\Terra}
-\remapXMLsingular [Peta] [C] {\handlePMLunit\Peta}
-\remapXMLsingular [Exa] [C] {\handlePMLunit\Exa}
-
-\remapXMLsingular [Times] [C] {\handlePMLunit\Times}
-\remapXMLsingular [Solidus] [C] {\handlePMLunit\Solidus}
-\remapXMLsingular [Per] [C] {\handlePMLunit\Per}
-\remapXMLsingular [OutOf] [C] {\handlePMLunit\OutOf}
-
-\remapXMLsingular [Linear] [C] {\handlePMLunit\Linear}
-\remapXMLsingular [Square] [C] {\handlePMLunit\Square}
-\remapXMLsingular [Cubic] [C] {\handlePMLunit\Cubic}
-
-\remapXMLsingular [Inverse] [C] {\handlePMLunit\Inverse}
-
-\remapXMLsingular [Degrees] [C] {\handlePMLunit\Degrees}
-\remapXMLsingular [Meter] [C] {\handlePMLunit\Meter}
-\remapXMLsingular [Liter] [C] {\handlePMLunit\Liter}
-\remapXMLsingular [Sec] [C] {\handlePMLunit\Sec}
-\remapXMLsingular [Year] [C] {\handlePMLunit\Year}
-\remapXMLsingular [Month] [C] {\handlePMLunit\Month}
-\remapXMLsingular [Week] [C] {\handlePMLunit\Week}
-\remapXMLsingular [Day] [C] {\handlePMLunit\Day}
-\remapXMLsingular [Hour] [C] {\handlePMLunit\Hour}
-\remapXMLsingular [Min] [C] {\handlePMLunit\Min}
-\remapXMLsingular [Second] [C] {\handlePMLunit\Sec}
-\remapXMLsingular [Rad] [C] {\handlePMLunit\Rad}
-\remapXMLsingular [Deg] [C] {\handlePMLunit\Deg}
-\remapXMLsingular [Hertz] [C] {\handlePMLunit\Hertz}
-\remapXMLsingular [RevPerSec] [C] {\handlePMLunit\RevPerSec}
-\remapXMLsingular [RevPerMin] [C] {\handlePMLunit\RevPerMin}
-\remapXMLsingular [Gram] [C] {\handlePMLunit\Gram}
-\remapXMLsingular [Atom] [C] {\handlePMLunit\Atom}
-\remapXMLsingular [Newton] [C] {\handlePMLunit\Newton}
-\remapXMLsingular [Pascal] [C] {\handlePMLunit\Pascal}
-\remapXMLsingular [Joule] [C] {\handlePMLunit\Joule}
-\remapXMLsingular [Watt] [C] {\handlePMLunit\Watt}
-\remapXMLsingular [Celsius] [C] {\handlePMLunit\Celsius}
-\remapXMLsingular [Kelvin] [C] {\handlePMLunit\Kelvin}
-\remapXMLsingular [Fahrenheit] [C] {\handlePMLunit\Fahrenheit}
-\remapXMLsingular [Mol] [C] {\handlePMLunit\Mol}
-\remapXMLsingular [Molair] [C] {\handlePMLunit\Molair}
-\remapXMLsingular [Equivalent] [C] {\handlePMLunit\Equivalent}
-\remapXMLsingular [Farad] [C] {\handlePMLunit\Farad}
-\remapXMLsingular [Ohm] [C] {\handlePMLunit\Ohm}
-\remapXMLsingular [Siemens] [C] {\handlePMLunit\Siemens}
-\remapXMLsingular [Ampere] [C] {\handlePMLunit\Ampere}
-\remapXMLsingular [Coulomb] [C] {\handlePMLunit\Coulomb}
-\remapXMLsingular [Volt] [C] {\handlePMLunit\Volt}
-\remapXMLsingular [eVolt] [C] {\handlePMLunit\eVolt}
-\remapXMLsingular [Tesla] [C] {\handlePMLunit\Tesla}
-\remapXMLsingular [VoltAC] [C] {\handlePMLunit\VoltAC}
-\remapXMLsingular [VoltDC] [C] {\handlePMLunit\VoltDC}
-\remapXMLsingular [Baud] [C] {\handlePMLunit\Baud}
-\remapXMLsingular [Bit] [C] {\handlePMLunit\Bit}
-\remapXMLsingular [Byte] [C] {\handlePMLunit\Byte}
-\remapXMLsingular [Bequerel] [C] {\handlePMLunit\Bequerel}
-\remapXMLsingular [Sievert] [C] {\handlePMLunit\Sievert}
-\remapXMLsingular [Candela] [C] {\handlePMLunit\Candela}
-\remapXMLsingular [Bell] [C] {\handlePMLunit\Bell}
-\remapXMLsingular [At] [C] {\handlePMLunit\At}
-\remapXMLsingular [Atm] [C] {\handlePMLunit\Atm}
-\remapXMLsingular [Bar] [C] {\handlePMLunit\Bar}
-\remapXMLsingular [EVolt] [C] {\handlePMLunit\EVolt}
-\remapXMLsingular [Foot] [C] {\handlePMLunit\Foot}
-\remapXMLsingular [Inch] [C] {\handlePMLunit\Inch}
-\remapXMLsingular [Cal] [C] {\handlePMLunit\Cal}
-\remapXMLsingular [Force] [C] {\handlePMLunit\Force}
-\remapXMLsingular [Lux] [C] {\handlePMLunit\Lux}
-\remapXMLsingular [Gray] [C] {\handlePMLunit\Gray}
-\remapXMLsingular [Weber] [C] {\handlePMLunit\Weber}
-\remapXMLsingular [Henry] [C] {\handlePMLunit\Henry}
-\remapXMLsingular [Sterant] [C] {\handlePMLunit\Sterant}
-\remapXMLsingular [Angstrom] [C] {\handlePMLunit\Angstrom}
-\remapXMLsingular [Gauss] [C] {\handlePMLunit\Gauss}
-
-\remapXMLsingular [Percent] [C] {\handlePMLunit\Percent}
-\remapXMLsingular [Promille] [C] {\handlePMLunit\Promille}
-\remapXMLsingular [Permille] [C] {\handlePMLunit\Permille}
-
-\remapXMLsingular [Unit] [C] {\handlePMLunit\Unit}
-\remapXMLsingular [NoUnit] [C] {\handlePMLunit\NoUnit}
-
-\stopXMLmapping
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-pre.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-pre.mkii
deleted file mode 100644
index 5e75197b76b..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-pre.mkii
+++ /dev/null
@@ -1,448 +0,0 @@
-%D \module
-%D [ file=xtag-pre,
-%D version=2000.12.20,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=Predefined Things,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt XML Macros / Predefined}
-
-%D Here we predefine some escapes, processing instructions,
-%D entities and other handy things.
-
-\unprotect
-
-%D For \MKIV:
-
-\setvalue{@u@s@"}#1#2"{#2} \setvalue{@g@s@"}#1#2"{\scratchtoks{#2}}
-\setvalue{@u@s@'}#1#2'{#2} \setvalue{@g@s@'}#1#2'{\scratchtoks{#2}}
-\setvalue{@u@s@ }#1#2 {#2} \setvalue{@g@s@ }#1#2 {\scratchtoks{#2}}
-
-\def\unstringed#1{\csname\ifcsname @u@s@#1\endcsname @u@s@#1\else\s!empty\fi\endcsname#1}
-\def\grabstring#1{\csname\ifcsname @g@s@#1\endcsname @g@s@#1\else\s!empty\fi\endcsname#1}
-
-\def\dowithgrabbedstring#1%
- {\def\@@dowithgrabbedstring{#1}%
- \afterassignment\@@dowithgrabbedstring\grabstring}
-
-%D Let's get rid of ligatures:
-
-% \definefonthandling [default] [noligs]
-
-%D First we define the default error handler. When tracing is
-%D activated, the unknown element is showed verbatim.
-
-\defineXMLenvironment [\s!default] \defaultXMLelement \defaultXMLelement
-\defineXMLsingular [\s!default] \defaultXMLelement
-
-% \def\defaultXMLelement
-% {\iftraceXMLelements[\currentXMLfullidentifier]\fi}
-
-\def\defaultXMLelement
- {\iftraceXMLelements{\infofont<\currentXMLfullidentifier>}\fi}
-
-%D We can use the default handler to implement automatic
-%D element hiding. Beware: this overloads the tracer.
-
-% \def\startXMLignore{\dododefineXMLignore \s!default}
-% \def\stopXMLignore {\dododefineXMLprocess\s!default}
-
-\newcount\xmlignoredepth
-
-\def\startXMLignore{\ifcase\xmlignoredepth\dododefineXMLignore\s!default\fi\advance\xmlignoredepth\plusone}
-\def\stopXMLignore {\advance\xmlignoredepth\minusone\ifcase\xmlignoredepth\dododefineXMLprocess\s!default\fi}
-
-%D The following entities need to be defined anyway. They
-%D may be overloaded later.
-
-% rest also \letter
-
-\defineXMLentities [amp] {\letterampersand} {\&}
-\defineXMLentities [gt] {\string>} {\mathematics{>}}
-\defineXMLentities [lt] {\string<} {\mathematics{<}}
-\defineXMLentities [quot] {\string"} {\mathematics{"}}
-\defineXMLentities [apos] {\string`} {\mathematics{'}}
-
-%D Of course we define:
-
-\defineXMLentities [tex] {tex} {\TeX}
-\defineXMLentities [context] {context} {\ConTeXt}
-\defineXMLentities [xml] {xml} {XML}
-\defineXMLentities [xsd] {xsd} {XSD}
-\defineXMLentities [html] {html} {HTML}
-
-%D The following entities are used for internal purposes and
-%D concern characters that are kind of problematic in \TEX\
-%D input.
-
-\defineXMLentities [tex-hash] {\letterhash} {\#}
-\defineXMLentities [tex-dollar] {\letterdollar} {\$}
-\defineXMLentities [tex-percent] {\letterpercent} {\%}
-\defineXMLentities [tex-backslash] {\letterbackslash} {\texescape}
-\defineXMLentities [tex-hat] {\letterhat} {\^{}}
-\defineXMLentities [tex-underscore] {\letterunderscore} {\_}
-\defineXMLentities [tex-leftbrace] {\letterleftbrace} {\leftargument}
-\defineXMLentities [tex-rightbrace] {\letterrightbrace} {\rightargument}
-\defineXMLentities [tex-bar] {\letterbar} {\vl}
-\defineXMLentities [tex-tilde] {\lettertilde} {\~{}}
-
-%D Some pretty printing macros will use color, for which we
-%D define a dedicated palet here.
-
-\definepalet
- [xtag]
- [0=darkgray, 1=darkred, 2=darkgreen,
- 3=darkblue, 4=darkcyan, 5=darkmagenta,
- 6=darkyellow, 7=black, 8=black]
-
-%D An example of its usage can be found in the pretty
-%D printing macros in the run time module.
-
-\newif\ifautoXMLshow \autoXMLshowtrue
-\newif\ifshowXMLarguments \showXMLargumentstrue
-
-\def\setupXMLfile{\dodoubleargument\getparameters[\??xf]}
-
-\setupXMLfile
- [\c!inbetween=\blank,
- \c!level=1]
-
-\fetchruntimecommand\showXMLfile {\f!xtagprefix\s!run}
-\fetchruntimecommand\showXMLbuffer{\f!xtagprefix\s!run}
-\fetchruntimecommand\showXMLtext {\f!xtagprefix\s!run}
-
-\fetchruntimecommand\showXMLign {\f!xtagprefix\s!run}
-\fetchruntimecommand\showXMLnop {\f!xtagprefix\s!run}
-\fetchruntimecommand\showXMLtxt {\f!xtagprefix\s!run}
-\fetchruntimecommand\showXMLpar {\f!xtagprefix\s!run}
-\fetchruntimecommand\showXMLlin {\f!xtagprefix\s!run}
-\fetchruntimecommand\showXMLwrd {\f!xtagprefix\s!run}
-\fetchruntimecommand\showXMLemp {\f!xtagprefix\s!run}
-
-\fetchruntimecommand\showXMLbreak {\f!xtagprefix\s!run}
-
-%D By default, we will ignore escape commands, preceded by
-%D \type {<!} and ending in (presumably) a \type {>}.
-
-\defineXMLescape [\s!default] {\gobbleuntil{>}}
-
-%D The comment escape has the form:
-%D
-%D \starttyping
-%D <!-- a couple of remarks -->
-%D \stoptyping
-
-\defineXMLescape [--] {\gobbleuntil{-->}}
-
-%D The \type {CDATA} escape is kind of unique in its
-%D strange syntax.
-%D
-%D \starttyping
-%D <!CDATA[it starts here
-%D whatever you like to be shown verbatim
-%D and ends here]]>
-%D \stoptyping
-%D
-%D Watch this rather obscure definition (we need to pass an
-%D \type {[} to the macro.
-
-\chardef\XMLcdatamethod=1
-
-\newtoks \everyXMLcdata % \appendtoks \tt \to \everyXMLcdata
-
-\setvalue{XMLcdatamethod1}%
- {\skipfirstverbatimlinefalse
- \processtaggeddisplayverbatim{]]>}}
-
-\setvalue{XMLcdatamethod2}%
- {\begingroup
- \obeylines
- \obeyspaces
- \the\everyXMLcdata
- \processXMLcdata}
-
-\long\def\processXMLcdata#1]]>%
- {#1\endgroup}
-
-\defineXMLescape [CDATA]
- {\executeifdefined{XMLcdatamethod\number\XMLcdatamethod}{\begingroup\processXMLcdata}}
-
-%D \starttyping
-%D <!ELEMENT ...">
-%D <!ATTLIST ...">
-%D \stoptyping
-
-\defineXMLescape [ATTLIST]{\gobbleuntil>}
-\defineXMLescape [ELEMENT]{\gobbleuntil>}
-
-%D \starttyping
-%D <!ENTITY crap "very new [&#x7B;] crap">
-%D <!ENTITY crap SYSTEM "crapfile.xml">
-%D <!ENTITY crap SYSTEM "crapfile.pdf" NDATA ignoredanyway>
-%D \stoptyping
-
-\defineXMLescape [ENTITY] \handleXMLentityescape
-
-\def\handleXMLentityescape#1>%
- {\dohandleXMLentityescape#1 @ @ @ @ @ @>}
-
-\def\dohandleXMLentityescape#1 #2 #3 #4>
- {\doifnot{#1}\letterpercent
- {\doifelse{#2}{SYSTEM}
- {\dohandleXMLentitySYSTEM#1 #2 #3 #4>}
- {\dohandleXMLentityDEFINE#1 #2 #3 #4>}}}
-
-\def\dohandleXMLentitySYSTEM#1 #2 #3 #4 #5 #6>% name SYSTEM ....
- {\doifelse{#4}{@}
- {\expanded{\defineXMLentity[#1]{\noexpand\readXMLsystem{\unstringed#3}}}}
- {\doif{#4}{NDATA} % maybe we should also store the NDATA
- {\expanded{\defineXMLentity[#1]{\noexpand\readXMLndata{\unstringed#3}}}}}}
-
-\def\readXMLsystem#1%
- {\readfile{#1}
- {\writestatus{xml-system}{reading #1}}
- {\writestatus{xml-system}{unable to locate #1}}}
-
-\def\readXMLndata#1%
- {#1} % {\externalfigure[#1]}
-
-\def\dohandleXMLentityDEFINE#1 %#2 #3 #4 #5 #6>% name replacement
- {\def\docommand##1>{\expanded{\defineXMLentity[#1]{\the\scratchtoks}}}%
- \afterassignment\docommand\grabstring}
-
-%D Such entities can be encapsulated in a \type {DOCTYPE}
-%D element. Therefore we remove the outer level of document
-%D type definitions.
-%D
-%D \starttyping
-%D <!DOCTYPE Something>
-%D <!DOCTYPE Something >
-%D <!DOCTYPE Something [ ... ]>
-%D <!DOCTYPE Something SYSTEM "... ...">
-%D <!DOCTYPE Something SYSTEM "... ..." >
-%D <!DOCTYPE Something SYSTEM "... ..." [ ... ]>
-%D <!DOCTYPE Something PUBLIC "... ..." "...">
-%D <!DOCTYPE Something PUBLIC "... ..." "..." >
-%D <!DOCTYPE Something PUBLIC "... ..." "..." [ ... ]>
-%D \stoptyping
-
-\defineXMLescape [DOCTYPE] \handleXMLdoctype
-
-\def\handleXMLdoctype
- {\let\XMLdoctype\empty
- \dohandleXMLdoctype}
-
-\def\dohandleXMLdoctype
- {\futurelet\nexttoken\dohandleXMLdoctok}
-
-\def\dohandleXMLdoctok
- {\ifx\nexttoken>%
- % [doctype: \XMLdoctype]
- \@EA\gobbleuntil\@EA>%
- \else\ifx\nexttoken\blankspace
- % [doctype: \XMLdoctype]
- \@EAEAEA\dodohandleXMLdoctype
- \else
- \@EAEAEA\redoXMLdoctype
- \fi\fi}
-
-\def\redoXMLdoctype#1%
- {\edef\XMLdoctype{\XMLdoctype#1}\dohandleXMLdoctype}
-
-\def\dodohandleXMLdoctype#1%
- {\executeifdefined{XMLdoctype#1}{\gobbleuntil>}}
-
-\setvalue{XMLdoctype>}{}
-\setvalue{XMLdoctype[}{\processuntil{]>}} % or \gobbleuntil{]>}}
-
-\def\XMLdoctypeS YSTEM %
- {\dowithgrabbedstring\dodohandleXMLdoctype}
-
-\def\XMLdoctypeP UBLIC %
- {\dowithgrabbedstring{\dowithgrabbedstring\dodohandleXMLdoctype}}
-
-% wrong
-%
-% \def\XMLdoctypeS YSTEM {\XMLgrabstring}
-% \def\XMLdoctypeP UBLIC {\XMLgrabstring}
-%
-% \def\XMLgrabstring
-% {\doifnextcharelse>{\gobbleuntil>}{\dowithgrabbedstring\XMLgrabstring}}
-
-%D Some day we may need to support entities within a
-%D document type namespace.
-
-%D As an example of processing instructions, we implement a
-%D \CONTEXT\ code handler:
-
-\defineXMLprocessor [context] \contextXMLcommand
-\defineXMLprocessor [context-command] \contextXMLcommand
-
-% we need to get rid of the endlinechar inserted by \scantokens
-%
-% \def\saveendlinechar%
-% {\ifx\restoreendlinechar\undefined
-% \edef\restoreendlinechar{\endlinechar\the\endlinechar\space}%
-% \fi
-% \endlinechar=-1 }
-%
-% \def\scanXMLtokens#1%
-% {\saveendlinechar\scantokens{#1}\restoreendlinechar}
-
-%D For security reasons, we provide a switch to turn this
-%D mechanism on and off. When turned off, there is no way to
-%D turn it on from within an \XML\ encoded document, simply
-%D because the possibility to process \CONTEXT\ commands is
-%D gone.
-
-\setupXMLprocessing[\c!command=\v!yes]
-
-%\def\contextXMLcommand#1%
-% {\doif\@@xpcommando\v!ja
-% {\pushmacro\disableXML
-% \def\disableXML{\global\let\afterXMLprocessor\empty}%
-% \global\let\afterXMLprocessor\enableXML
-% \setnormalcatcodes\scantokens{#1}\afterXMLprocessor
-% \popmacro\disableXML}}
-
-\def\contextXMLcommand#1% we don't use #1 here
- {\doif\@@xpcommand\v!yes
- {\disableXML\scantokens\@EA{\currentXMLprocess}\enableXML}}
-
-%D The indirect method (using the macro \type
-%D {\currentXMLprocess} instead of \type {#}) is needed
-%D because of the \type {\scantokens}. Given the previous
-%D definition, and given that \ETEX\ is used, we can now
-%D say:
-%D
-%D \starttyping
-%D <?context-command {\bf Start Of Some \TeX\ Text} ?>
-%D \stoptyping
-%D
-%D A non||\ETEX\ solution is also possible, using buffers,
-%D but for the moment we assume that \ETEX\ is used.
-
-%D Next we implement a general purpose directive. This one
-%D can be used to set variables that can be accessed with
-%D \type {\XMLvar}.
-
-\defineXMLprocessor [context-directive] \contextXMLdirective
-
-\def\contextXMLdirective#1%
- {\docontextXMLdirective#1 @ @ @\end}
-
-\def\docontextXMLdirective#1 #2 #3 #4\end % class variable value
- {\expandafter\def\csname\@@XMLvariable:#1:#2\endcsname{#3}}
-
-%D A simple processing instruction is the following. It just
-%D writes a message to the screen.
-
-\defineXMLprocessor [context-message] {\writestatus{xml-message}}
-
-%D The following processing instruction permits you to tag
-%D parts of the file in such a way that you can filter data.
-%D We use this method when documenting schemas.
-
-\defineXMLprocessor [context-block] \handleXMLcontextblock
-
-\def\handleXMLcontextblock#1%
- {\dohandleXMLcontextblock#1 \relax}
-
-\def\dohandleXMLcontextblock#1 #2 #3\relax
- {\dodohandleXMLcontextblock{#1}{#2}}
-
-\let\dodohandleXMLcontextblock\gobbletwoarguments
-
-\def\hideXMLcontextblock[#1]%
- {\def\dodohandleXMLcontextblock
- {\dododohandleXMLcontextblock\doifinset{#1}}}
-
-\def\videXMLcontextblock[#1]%
- {\def\dodohandleXMLcontextblock
- {\dododohandleXMLcontextblock\doifnotinset{#1}}}
-
-\protect
-
-\def\dododohandleXMLcontextblock#1#2#3#4%
- {\let\next\relax
- \doifelse{#3}{begin}
- {#1{#4}{#2}
- {%\writestatus{xml-block}{skipping begin #4}%
- \long\def\next##1?context-block end #4 ##2?>{}}}
- {\doif{#3}{name}
- {#1{#4}{#2}
- {%\writestatus{xml-block}{skipping name #4}%
- \long\def\next##1?context-block ##2?>{}}}}%
- \next}
-
-\unprotect
-
-%D Say that a file contains blocks like the following:
-%D
-%D \starttyping
-%D <?context-block begin whatevername ?>
-%D
-%D <to/> <be> <or/> maybe <not/> so much <to/> </be>
-%D
-%D <?context-block end whatevername ?>
-%D \stoptyping
-%D
-%D The following commands will show only this block:
-%D
-%D \starttyping
-%D \videXMLcontextblock[whatevername] \showXMLfile{yourfile}
-%D \stoptyping
-%D
-%D You can also mark blocks in the following way, thereby
-%D saving yourself some work:
-%D
-%D \starttyping
-%D <?context-block what ?>
-%D
-%D <what>What do you want?</what>
-%D
-%D <?context-block how ?>
-%D
-%D <how>How do you want?</how>
-%D
-%D <?context-block done ?>
-%D \stoptyping
-
-% yet undocumented and experimental
-
-% \defineXMLprocessor [context-eof] {\endinput}
-
-% already defined in xtag-ini
-
-% \defineXMLsingular [begingroup] {\begingroup}
-% \defineXMLsingular [endgroup] {\endgroup}
-%
-% \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/mkii/xtag-prs.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-prs.mkii
deleted file mode 100644
index 8728d992a47..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-prs.mkii
+++ /dev/null
@@ -1,42 +0,0 @@
-%D \module
-%D [ file=xtag-prs,
-%D version=2004.08.18,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=Parsing,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\def\analyzefunction#1%
- {\expanded{\doanalyzefunction#1\relax\relax(#1)}\empty\relax\end}
-
-\def\doanalyzefunction#1#2(#3)#4\relax#5\end
- {\ifx#4\empty
- \let\functionname\empty
- \else
- \def\functionname{#1#2}%
- \fi
- \getfunctionargs#3,\empty,\empty,\empty,\empty,\empty,\empty,\empty,\empty\relax}
-
-\def\getfunctionargs#1,#2,#3,#4,#5,#6,#7,#8,#9\relax
- {\edef\functionA{#1}\edef\functionB{#2}%
- \edef\functionC{#3}\edef\functionD{#4}%
- \edef\functionE{#5}\edef\functionF{#6}%
- \edef\functionG{#7}\edef\functionH{#8}}
-
-% \analyzefunction{x} [\functionname][a:\functionA/b:\functionB/c:\functionC/d:\functionD] \endgraf
-% \analyzefunction{sin(x)} [\functionname][a:\functionA/b:\functionB/c:\functionC/d:\functionD] \endgraf
-% \analyzefunction{1pt,2pt,3pt,4pt} [\functionname][a:\functionA/b:\functionB/c:\functionC/d:\functionD] \endgraf
-% \analyzefunction{rect(1pt,2pt,3pt,4pt)} [\functionname][a:\functionA/b:\functionB/c:\functionC/d:\functionD] \endgraf
-% \analyzefunction{1pt,2pt,3pt,4pt,5pt,6pt,7pt,8pt} [\functionname][e:\functionE/f:\functionF/g:\functionG/h:\functionH] \endgraf
-% \analyzefunction{rect(1pt,2pt,3pt,4pt,5pt,6pt,7pt,8pt)} [\functionname][e:\functionE/f:\functionF/g:\functionG/h:\functionH] \endgraf
-
-% todo [#1][settings][maxwidth,maxheight,method=] with method=x y xy [1]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-raw.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-raw.mkii
deleted file mode 100644
index aab294c5adb..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-raw.mkii
+++ /dev/null
@@ -1,37 +0,0 @@
-%D \module
-%D [ file=xtag-raw,
-%D version=2002.03.21,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=Raw Specials,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt XML Macros / Raw Specials}
-
-%D Some day this module will be obsolete.
-
-\defineXMLentity [tex-hash] {\letterhash}
-\defineXMLentity [tex-dollar] {\letterdollar}
-\defineXMLentity [tex-percent] {\letterpercent}
-\defineXMLentity [tex-backslash] {\letterbackslash}
-\defineXMLentity [tex-hat] {\letterhat}
-\defineXMLentity [tex-underscore] {\letterunderscore}
-\defineXMLentity [tex-leftbrace] {\letterbgroup}
-\defineXMLentity [tex-rightbrace] {\letteregroup}
-\defineXMLentity [tex-bar] {\letterbar}
-\defineXMLentity [tex-tilde] {\lettertilde}
-
-\endinput
-
-\defineXMLsingular[test][oeps=,whow=,hm=]
-% {\tttf \input \XMLop{oeps} [\XMLop{whow}] [\XMLop{hm}]}
- {\tttf \XMLop{oeps} [\XMLop{whow}] [\XMLop{hm}]}
-
-\startXMLdata
-<test oeps="oeps_tst.tmp" whow="#FFEEGG" hm="^{}~"/>
-\stopXMLdata
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-rng.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-rng.mkii
deleted file mode 100644
index 4b9dcfaf156..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-rng.mkii
+++ /dev/null
@@ -1,28 +0,0 @@
-%D \module
-%D [ file=xtag-rng,
-%D version=2002.10.29,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=Relax NG,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-%D The following commands picks up a named block from the
-%D given file and pretty prints it.
-%D
-%D \starttyping
-%D \showRNGcomponent [eximple.rng] [request]
-%D \stoptyping
-%D
-%D If needed, you adapt the colors used by redefining the
-%D \type {xtag} color palet.
-
-\fetchruntimecommand\showRNGcomponent {\f!xtagprefix\s!run}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-run.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-run.mkii
deleted file mode 100644
index 65424650c0f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-run.mkii
+++ /dev/null
@@ -1,319 +0,0 @@
-%D \module
-%D [ file=xtag-run,
-%D version=2001.01.10,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=Visualization,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% TODO: make this mkiv compliant, catcode tables etc
-
-\writestatus{loading}{ConTeXt XML Macros / Visualization}
-
-\unprotect
-
-\bgroup
-
-\catcode`\.=\escapecatcode
-.catcode`.B=.begingroupcatcode
-.catcode`.E=.endgroupcatcode
-.catcode`.#=.activecatcode
-.catcode`.$=.activecatcode
-.catcode`.%=.activecatcode
-.catcode`.\=.activecatcode
-.catcode`.^=.activecatcode
-.catcode`._=.activecatcode
-.catcode`.{=.activecatcode
-.catcode`.}=.activecatcode
-.catcode`.|=.activecatcode
-.catcode`.~=.activecatcode
-
-.gdef.verbatimXML
- B.catcode`.#=.activecatcode .let#.letterhash
- .catcode`.$=.activecatcode .let$.dollar
- .catcode`.%=.activecatcode .let%.percent
- .catcode`.\=.activecatcode .let\.letterbackslash
- .catcode`.^=.activecatcode .let^.letterhat
- .catcode`._=.activecatcode .let_.letterunderscore
- .catcode`.{=.activecatcode .let{.leftargument
- .catcode`.}=.activecatcode .let}.rightargument
- .catcode`.|=.activecatcode .let|.letterbar
- .catcode`.~=.activecatcode .let~.lettertilde
- E
-
-.egroup
-
-\gdef\@@XMLshow{\@@XML shw}
-
-\gdef\@XMLindent#1%
- {\ifnum\XMLlevel>\plusone\advance\leftskip#11em\relax\fi}
-
-\gdef\@XMLlevel#1%
- {\advance\XMLlevel#11\relax}
-
-\unexpanded\gdef\@XMLentity#1%
- {\noindent\hbox{\localcolortrue\color[xtag:0]{\string&#1;}}}
-
-\bgroup
-
-\@EA\catcode\string`=\activecatcode
-\@EA\catcode\string`"\activecatcode
-\@EA\catcode\string``\activecatcode
-\@EA\catcode\string`&\activecatcode
-
-\gdef\doshowXMLargument#1#2#3#4%
- {\hskip\zeropoint % or maybe \allowbreak
- \string#1\color[xtag:#3]{#4}\string#2}%
-
-\gdef\showXMLarguments
- {\hskip\zeropoint % or maybe \allowbreak
- \ifshowXMLarguments
- \bgroup
- \@EA\catcode\string`=\activecatcode
- \@EA\catcode\string`"\activecatcode
- \@EA\catcode\string``\activecatcode
- \@EA\catcode\string`&\activecatcode
- \def={\color[xtag:7]{\string=}}%
- \def"##1"{\doshowXMLargument""8{##1}}%
- \def`##1`{\doshowXMLargument``8{##1}}%
- \def&##1;{\doshowXMLargument&;7{##1}}%
- \scantokens\@EA{\currentXMLarguments}%
- \egroup
- \else
- \currentXMLarguments
- \fi}
-
-\egroup
-
-\ifx\XMLprettycycle\undefined \gdef\XMLprettycycle{3} \fi
-
-\doglobal\newcounter\@XMLnofelements
-\doglobal\newif\ifXMLunspacepretty
-
-\gdef\@XMLelement#1%
- {\ifnum\XMLlevel<\@@xflevel\relax
- \ifnum\kindofXMLelement=2\else
- \doglobal\increment\@XMLnofelements\relax
- \ifcase\@XMLnofelements\else\@@xfinbetween\fi
- \fi
- \fi
- % no, too fragile:
-% \ifnum\XMLlevel>1\hangindent2em\fi
- \ifcase\kindofXMLelement\or\or
- \getvalue{\@@XMLshow::\currentXMLelement}\relax
- \fi
- \dontleavehmode % \indent
- \bgroup
- % \localcolortrue
- \advance\XMLlevel \minusone
- \DoMod\XMLlevel by\XMLprettycycle to\scratchcounter
- \advance\scratchcounter \plusone
- \startcolor[xtag:\ifnum\scratchcounter<0 0\else\number\scratchcounter\fi]%
- \ifXMLunspacepretty\unskip\fi
- \string<%
- \ifnum\kindofXMLelement=2\string/\fi
- \currentXMLelement
- \stopcolor
- \ifcase#1\or
- \cleanupXMLarguments % get rid of spurious end space and end /
- \ifx\currentXMLarguments\empty\else
- \setbox\scratchbox\hbox{\space}\hskip\wd\scratchbox % hm, slow
- \startcolor[xtag:0]\showXMLarguments\unskip\stopcolor\unskip
- \fi
- \fi
- \startcolor[xtag:\ifnum\scratchcounter<0 0\else\number\scratchcounter\fi]%
- \ifnum\kindofXMLelement=3\string/\fi
- \string>%
- \stopcolor
- \egroup
- \ifcase\kindofXMLelement\or
- \getvalue{\@@XMLshow::\currentXMLelement}\relax
- \fi
- \ifnum\XMLlevel<\@@xflevel\relax
- \ifnum\kindofXMLelement=1\else
- \doglobal\increment\@XMLnofelements\relax
- \ifcase\@XMLnofelements\else\@@xfinbetween\fi
- \fi
- \fi
- \ifXMLunspacepretty\ignorespaces\fi}
-
-\gdef\nextXMLtext{\blank\@XMLlevel+\@XMLelement1\par}
-\gdef\prevXMLtext{\par\@XMLelement0\par\@XMLlevel-\blank}
-\gdef\nextXMLpara{\nextXMLline\par}
-\gdef\prevXMLpara{\par\prevXMLline}
-\gdef\nextXMLline{\par\@XMLlevel+\@XMLindent+\@XMLelement1}
-\gdef\prevXMLline{\@XMLelement0\par\@XMLindent-\@XMLlevel-}
-\gdef\nextXMLword{\@XMLlevel+\@XMLelement1}
-\gdef\prevXMLword{\@XMLelement0\@XMLlevel-}
-
-\gdef\someXMLtext{\blank\@XMLlevel+\@XMLelement1\@XMLlevel-\blank}
-\gdef\someXMLpara{\someXMLline}
-\gdef\someXMLline{\par\@XMLlevel+\@XMLindent+\@XMLelement1\par\@XMLindent-\@XMLlevel-}
-\gdef\someXMLword{\@XMLlevel+\@XMLelement1\@XMLlevel-}
-
-\gdef\@XMLindent#1%
- {\ifnum\XMLlevel>\zerocount
- \advance\leftskip#11em\relax
- \fi}
-
-\gdef\nextXMLtext{\blank\@XMLlevel+\@XMLelement1\par\@XMLindent+}
-\gdef\prevXMLtext{\par\@XMLindent-\@XMLelement0\par\@XMLlevel-\blank}
-\gdef\nextXMLpara{\nextXMLline\par\@XMLindent+}
-\gdef\prevXMLpara{\par\@XMLindent-\prevXMLline}
-\gdef\nextXMLline{\par\@XMLlevel+\@XMLelement1}
-\gdef\prevXMLline{\@XMLelement0\par\@XMLlevel-}
-
-\gdef\someXMLline{\par\@XMLlevel+\@XMLelement1\par\@XMLlevel-}
-
-\gdef\setXMLshow#1#2#3[#4]%
- {\def\docommand##1{#1[##1]#2#3\letvalue{\@@XMLshow:##1}\empty}%
- \processcommalist[#4]\docommand}
-
-\gdef\showXMLign[#1]%
- {\setXMLshow\defineXMLignore \relax\relax[#1]%
- \setXMLshow\defineXMLsingular \relax\relax[#1]}
-
-\gdef\showXMLnop[#1]%
- {\setXMLshow\defineXMLenvironment\relax\relax[#1]%
- \setXMLshow\defineXMLsingular \relax\relax[#1]}
-
-\gdef\showXMLtxt[#1]%
- {\setXMLshow\defineXMLenvironment\nextXMLtext\prevXMLtext[#1]%
- \setXMLshow\defineXMLsingular \someXMLtext\relax [#1]}
-
-\gdef\showXMLpar[#1]%
- {\setXMLshow\defineXMLenvironment\nextXMLpara\prevXMLpara[#1]%
- \setXMLshow\defineXMLsingular \someXMLline\relax [#1]}
-
-\gdef\showXMLlin[#1]%
- {\setXMLshow\defineXMLenvironment\nextXMLline\prevXMLline[#1]%
- \setXMLshow\defineXMLsingular \someXMLword\relax [#1]}
-
-\gdef\showXMLwrd[#1]%
- {\setXMLshow\defineXMLenvironment\nextXMLword\prevXMLword[#1]%
- \setXMLshow\defineXMLsingular \someXMLword\relax [#1]}
-
-\gdef\showXMLemp[#1]%
- {\setXMLshow\defineXMLsingular\someXMLword\relax[#1]}
-
-\gdef\showXMLbreak[#1]%
- {\def\docommand##1{\setvalue{\@@XMLshow::##1}{\hskip\zeropoint}}%
- \processcommalist[#1]\docommand}
-
-\gdef\doautoshowXMLelement
- {\ifcase\kindofXMLelement
- \or \nextXMLpara \or \prevXMLpara \or \someXMLline
- \fi}
-
-\gdef\autoshowXMLelement
- {\ifcsname\@@XMLshow:\currentXMLelement\endcsname
- \expandafter\normalexecuteXMLelement
- \else
- \expandafter\doautoshowXMLelement
- \fi}
-
-\global\let\normalexecuteXMLelement\executeXMLelement
-
-\gdef\showXMLfile#1%
- {\bgroup
- % temp hack, will be the normal definition
- \long\def\docleanupXMLarguments##1/ ##2\relax{\def\currentXMLarguments{##1}}%
- % so far for hack
- \nohyphens
- \dontcomplain
- \XMLlevel\zerocount
- \increment\@@xflevel % hack
- \tttf
- \startpacked[\v!blank]
- \ifautoXMLshow \let\executeXMLelement\autoshowXMLelement \fi
- \let\executeXMLentity\@XMLentity
- \enableXML\verbatimXML
- \enableregime[utf]%
- \utfunicodetracer\pluseight
- \veryraggedright
- \readfile{\truefilename{#1}}\donothing\donothing\endgraf
- \removelastskip % really needed
- \stoppacked
- \egroup}
-
-\gdef\showXMLtext#1%
- {\bgroup
- % temp hack, will be the normal definition
- \long\def\docleanupXMLarguments##1/ ##2\relax{\def\currentXMLarguments{##1}}%
- % so far for hack
- \dontcomplain
- \XMLlevel\maxcard
- \increment\@@xflevel % hack
- \tttf
- \ifautoXMLshow \let\executeXMLelement\autoshowXMLelement \fi
- \let\executeXMLentity\@XMLentity
- \let\par\allowbreak\let\endgraf\par
- \setbox\scratchbox\hbox
- {\enableXML\verbatimXML\scantokens{#1}\removelastskip}%
- \unhbox\scratchbox
- \egroup}
-
-\gdef\showXMLbuffer
- {\dosingleempty\doshowXMLbuffer}
-
-\gdef\doshowXMLbuffer[#1]%
- {\doifelsenothing{#1}
- {\doshowXMLbuffer[\jobname]}
- {\bgroup
- \def\dodoprocessXMLbuffer##1{\showXMLfile{\TEXbufferfile{##1}}}%
- \processcommalist[#1]\dodoprocessXMLbuffer
- \egroup}}
-
-%D
-
-\gdef\showXSDcomponent
- {\dodoubleargument\doshowXSDcomponent}
-
-\gdef\doshowXSDcomponent[#1][#2]%
- {\bgroup
- \showXMLnop[xsd:schema]
- \showXMLign[xsd:appInfo]
- \showXMLign[xsd:annotation]
- \videXMLcontextblock[#2]
- \showXMLfile{#1}
- \egroup}
-
-\gdef\showRNGcomponent
- {\dodoubleargument\doshowRNGcomponent}
-
-\gdef\doshowRNGcomponent[#1][#2]%
- {\bgroup
- \videXMLcontextblock[#2]
- \showXMLfile{#1}
- \egroup}
-
-%D
-
-\gdef\tracebackXMLattribute#1%
- {\bgroup
- \doloop
- {\ifcsname\@@XMLdepth:\recurselevel\endcsname
- \edef\!!stringa{\csname\@@XMLdepth:\recurselevel\endcsname}%
- \writestatus
- {XML TRACE}
- {[#1] [\recurselevel] [\!!stringa] [\XMLinh{#1}]}%
- \else
- \exitloop
- \fi}%
- \egroup}
-
-\gdef\showXMLinh[#1]%
- {\doifsomething{#1}
- {\bgroup\infofont[%
- \dorecurse\XMLdepth
-% {\csname\@@XMLvariable:\csname\@@XMLdepth:\recurselevel\endcsname:#1\endcsname
- {\csname\@@XMLvariable:\recurselevel:#1\endcsname
- \ifnum\recurselevel<\XMLdepth->\fi}%
- ]\egroup}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-stk.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-stk.mkii
deleted file mode 100644
index d454a63ca8d..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-stk.mkii
+++ /dev/null
@@ -1,230 +0,0 @@
-%D \module
-%D [ file=xtag-exp,
-%D version=2006.01.19,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=Stacking Data,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\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{\recurselevel:\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/mkii/xtag-utf.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-utf.mkii
deleted file mode 100644
index b58fbbe88b6..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-utf.mkii
+++ /dev/null
@@ -1,21 +0,0 @@
-%D \module
-%D [ file=xtag-utf,
-%D version=2002.06.24,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=UTF,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt XML Macros / UTF}
-
-%D This filter is kind of obsolete, since \UTF\ is not
-%D limited to \XML. So, here we only enable \UTF\ support.
-
-\chardef\XMLtokensreduction\plustwo \enableregime[utf]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-xsd.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-xsd.mkii
deleted file mode 100644
index c1f4b91b649..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-xsd.mkii
+++ /dev/null
@@ -1,28 +0,0 @@
-%D \module
-%D [ file=xtag-xsd,
-%D version=2001.10.04,
-%D title=\CONTEXT\ XML Support,
-%D subtitle=Schemas,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-%D The following commands picks up a named block from the
-%D given file and pretty prints it.
-%D
-%D \starttyping
-%D \showXSDcomponent [x-exa-tx.xsd] [sequence]
-%D \stoptyping
-%D
-%D If needed, you adapt the colors used by redefining the
-%D \type {xtag} color palet.
-
-\fetchruntimecommand\showXSDcomponent {\f!xtagprefix\s!run}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkii/xtag-xsl.mkii b/Master/texmf-dist/tex/context/base/mkii/xtag-xsl.mkii
deleted file mode 100644
index 49767e30c79..00000000000
--- a/Master/texmf-dist/tex/context/base/mkii/xtag-xsl.mkii
+++ /dev/null
@@ -1,224 +0,0 @@
-%D \module
-%D [ file=xtag-xsl,
-%D version=2002.03.07,
-%D title=\CONTEXT\ XML Support,
-%D subtitle=XSLT processing,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% FOR THIS TO WORK YOU NEED A PROPER cp8bit VECTOR
-%
-% 8 bit support has been messed up in a couple of distributions
-%
-% 0x00 0x00
-% 0x01 0x01
-% 0x02 0x02
-% etc
-
-%D This module is rather experimental so users may expect
-%D changes in the interface.
-
-\unprotect
-
-\definesystemvariable {xl}
-
-\newif\iftraceXSLTprocessing % \traceXSLTprocessingtrue
-
-\def\XSLTscriptfile{\bufferprefix xlscript}
-
-% to be sped up:
-
-\def\presetXSLTcharacters
- {\let\par\empty
- \def\{{\rawcharacter{`\{}}% \string^^..
- \def\}{\rawcharacter{`\}}}% \string^^..
- \def\\{\rawcharacter{`\\}}}% \string^^..
-
-\def\obeyXSLTcharacters
- {\setnaturalcatcodes
- \catcode`\\=\escapecatcode}
-
-\long\def\startXSLTscript #1 #2 %
- {\bgroup
- \obeyXSLTcharacters
- \doifelse{#2}{capsule}\dostartXSLTscript\nostartXSLTscript#1 #2 }
-
-\long\def\dostartXSLTscript#1 #2 #3 %
- {\obeylines
- \dodostartXSLTscript#1 #2 #3 }
-
-\long\def\dodostartXSLTscript#1 #2 #3 #4\stopXSLTscript
- {\egroup
- \long\setvalue{\??xl#1}{\doXSLTscript{#3}{#4}}}
-
-\long\def\nostartXSLTscript
- {\obeylines
- \nonostartXSLTscript}
-
-\long\def\nonostartXSLTscript#1 #2\stopXSLTscript
- {\egroup
- \long\setvalue{\??xl#1}{\doXSLTscript\empty{#2}}}
-
-\long\def\donormalXSLTscript#1#2%
- {\includeXSLTscript{b-capsule-#1}%
- #2%
- \includeXSLTscript{e-capsule-#1}}
-
-\def\includeXSLTscript#1%
- {\csname\ifcsname\??xl#1\endcsname\??xl#1\else\s!empty\fi\endcsname}
-
-\startXSLTscript b-capsule-1.0
-<?xml version="1.0"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-\stopXSLTscript
-
-\startXSLTscript e-capsule-1.0
-</xsl:stylesheet>
-\stopXSLTscript
-
-\def\applyXSLTscript
- {\dotripleempty\doapplyXSLTscript}
-
-\long\def\doapplyXSLTscript[#1][#2][#3]%
- {\ifthirdargument
- \bgroup
- \let\doXSLTscript\donormalXSLTscript
- \presetXSLTcharacters
- \donefalse
- \def\docommand##1{\dodoapplyXSLTscript{##1}{\ifdone#3\else#2\fi}{#3}\donetrue}%
- \processcommalist[#1]\docommand
- \egroup
- \else
- \applyXSLTscript[#1][#2][#2]%
- \fi}
-
-% Since a \XML\ file is loaded into memory as a tree, we
-% can safely use the same input and output filename, thereby
-% avoiding temporary files.
-
-\def\dodoapplyXSLTscript#1#2#3%
- {\bgroup
- \doifundefined{\??xl#1}%
- {\writestatus{XSLT}{unknown script #1}}
- {\writestatus{XSLT}{convert #2 into #3 using #1}%
- \edef\par{\outputnewlinechar}%
- \edef\!!stringc{\getvalue{\??xl#1}}%
- \immediate\openout\scratchwrite=\XSLTscriptfile.xsl
- \immediate\write\scratchwrite{\!!stringc}%
- \immediate\closeout\scratchwrite
- \iftraceXSLTprocessing\wait\fi
- \executeXSLT{\XSLTscriptfile.xsl}{#2}{#3}%
- \iftraceXSLTprocessing\wait\fi}%
- \egroup}
-
-\def\executeXSLT#1#2#3% script input output
- {\executesystemcommand{xsltproc -o #3 #1 #2}}
-
-\long\def\applyXSLTtobuffer
- {\dodoubleempty\doapplyXSLTtobuffer}
-
-\long\def\doapplyXSLTtobuffer[#1][#2]%
- {\expanded{\applyXSLTscript[#1][\TEXbufferfile{\ifsecondargument#2\else\jobname\fi}]}}
-
-\def\resetXSLTscripting#1%
- {\setgvalue{\??xl\s!dummy}{\doXSLTscript{#1}{}}}
-
-\resetXSLTscripting{1.0}
-
-\def\startXSLTscripting
- {\bgroup
- \obeyXSLTcharacters
- \obeylines
- \dostartXSLTscripting}
-
-\long\def\dostartXSLTscripting#1\stopXSLTscripting
- {\egroup
- \let\doXSLTscript\doextendXSLTscript
- \getvalue{\??xl\s!dummy}{#1}}
-
-\long\def\doextendXSLTscript#1#2#3%
- {\setgvalue{\??xl\s!dummy}{\doXSLTscript{#1}{#2#3}}}
-
-\def\applyXSLTscripting
- {\applyXSLTscript[\s!dummy]}
-
-\protect
-
-\doifnotmode{demo}{\endinput}
-
-% \def\Whow{Whow It Works}
-%
-% \startXSLTscript test capsule 1.0
-% <xsl:output method="text"/>
-%
-% <xsl:template match="/figurelibrary/figure">
-% \Whow \\ #<xsl:apply-templates/>
-% </xsl:template>
-%
-% <xsl:template match="/">
-% <xsl:apply-templates/>
-% </xsl:template>
-% \stopXSLTscript
-%
-% \applyXSLTscript [test] [figtest.xml] [crap.tmp] \typefile{crap.tmp}
-%
-% \startbuffer
-% <hello>world</hello>
-% \stopbuffer
-%
-% \applyXSLTtobuffer[test] \typebuffer
-%
-% \startXSLTscripting
-% <xsl:output method="text"/>
-% \stopXSLTscripting
-%
-% \startXSLTscripting
-% <xsl:template match="/figurelibrary/figure">
-% <xsl:apply-templates/>
-% </xsl:template>
-% \stopXSLTscripting
-%
-% \startXSLTscripting
-% <xsl:template match="/">
-% <xsl:apply-templates/>
-% </xsl:template>
-% \stopXSLTscripting
-%
-% \applyXSLTscripting [figtest.xml] [crap.tmp] \typefile{crap.tmp}
-
-\starttext
-
-\startXSLTscript another
-<?xml version="1.0"?>
-
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:cd="http://www.pragma-ade.com/commands"
- version="1.0">
-
-<xsl:output method="text"/>
-
-<xsl:template match="/">
- <xsl:apply-templates/>
-</xsl:template>
-
-<xsl:template match="cd:interface">
- <xsl:apply-templates><xsl:sort order="descending" select="@name"/></xsl:apply-templates>
-</xsl:template>
-
-<xsl:template match="cd:command">
- name: <xsl:value-of select="@name"/>\\par
-</xsl:template>
-
-</xsl:stylesheet>
-\stopXSLTscript
-
-\applyXSLTscript [another] [cont-en.xml] [whatever.tmp]
-
-\readfile{whatever.tmp}{}{}
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkiv/anch-pgr.lua b/Master/texmf-dist/tex/context/base/mkiv/anch-pgr.lua
index 8e400cd123f..8681239c9b6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/anch-pgr.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/anch-pgr.lua
@@ -24,6 +24,7 @@ local lpegmatch = lpeg.match
local jobpositions = job.positions
local formatters = string.formatters
local setmetatableindex = table.setmetatableindex
+local settings_to_array = utilities.parsers.settings_to_array
local enableaction = nodes.tasks.enableaction
@@ -32,6 +33,7 @@ local context = context
local implement = interfaces.implement
+local texgetcount = tex.getcount
local report_graphics = logs.reporter("backgrounds")
local report_shapes = logs.reporter("backgrounds","shapes")
local report_free = logs.reporter("backgrounds","free")
@@ -78,9 +80,9 @@ local getdepth = nuts.getdepth
local nodecodes = nodes.nodecodes
local par_code = nodecodes.par
-local start_of_par = nuts.start_of_par
-local insert_before = nuts.insert_before
-local insert_after = nuts.insert_after
+local startofpar = nuts.startofpar
+local insertbefore = nuts.insertbefore
+local insertafter = nuts.insertafter
local processranges = nuts.processranges
@@ -99,6 +101,7 @@ local enabled = false
-- many pages but for an arbitrary background shape that is not so common.
local function check(specification)
+ --
local a = specification.attribute
local index = specification.index
local depth = specification.depth
@@ -165,12 +168,12 @@ local function flush(head,f,l,a,parent,depth)
ln = new_hlist(setlink(new_rule(65536,65536*4,0),new_kern(-65536),ln))
rn = new_hlist(setlink(new_rule(65536,0,65536*4),new_kern(-65536),rn))
end
- if getid(f) == par_code and start_of_par(f) then -- we need to clean this mess
- insert_after(head,f,ln)
+ if getid(f) == par_code and startofpar(f) then -- we need to clean this mess
+ insertafter(head,f,ln)
else
- head, f = insert_before(head,f,ln)
+ head, f = insertbefore(head,f,ln)
end
- insert_after(head,l,rn)
+ insertafter(head,l,rn)
end
return head, true
end
@@ -205,24 +208,10 @@ local function registerbackground(name)
end
end
--- local function collectbackgrounds(r,n)
--- if enabled then
--- local parent = getbox(n)
--- local head = getlist(parent)
--- realpage = r
--- processranges(a_textbackground,flush,head) -- ,parent)
--- end
--- end
---
--- interfaces.implement {
--- name = "collectbackgrounds",
--- actions = collectbackgrounds,
--- arguments = { "integer", "integer" }
--- }
-
nodes.handlers.textbackgrounds = function(head,where,parent) -- we have hlistdir and local dir
-- todo enable action in register
- index = index + 1
+ index = index + 1
+ realpage = texgetcount("realpageno")
return processranges(a_textbackground,flush,head,parent)
end
@@ -235,8 +224,6 @@ interfaces.implement {
-- optimized already but we can assume a cycle i.e. prune the last point and then
-- even less code .. we could merge some loops but his is more robust
--- use idiv here
-
local function topairs(t,n)
local r = { }
for i=1,n do
@@ -783,9 +770,7 @@ local function calculatemultipar(tag)
for i=bindex+1,eindex-1 do
br = f_tag_two(btag,i)
local r = collected[br]
- if not r then
- report_graphics("invalid middle for %a",br)
- else
+ if r then
local rp = r.p -- page
local pp = list[rp]
local mp = middlepart(b,e,p,rp,r,left,right)
@@ -794,6 +779,8 @@ local function calculatemultipar(tag)
else
list[rp] = { mp }
end
+ else
+ report_graphics("invalid middle for %a",br)
end
end
local ep = e.p -- page
@@ -1213,7 +1200,7 @@ implement {
actions = function(tags,anchor,page) -- no caching (yet) / page
local collected = jobpositions.collected
if type(tags) == "string" then
- tags = utilities.parsers.settings_to_array(tags)
+ tags = settings_to_array(tags)
end
local list = { }
local nofboxes = 0
diff --git a/Master/texmf-dist/tex/context/base/mkiv/anch-pos.lua b/Master/texmf-dist/tex/context/base/mkiv/anch-pos.lua
index 77bf09e3923..77f55964f8f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/anch-pos.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/anch-pos.lua
@@ -49,6 +49,7 @@ local context = context
local ctx_latelua = context.latelua
local tex = tex
+local texgetdimen = tex.getdimen
local texgetcount = tex.getcount
local texgetinteger = tex.getintegervalue or tex.getcount
local texsetcount = tex.setcount
@@ -574,8 +575,8 @@ implement {
actions = function()
nofparagraphs = nofparagraphs + 1
texsetcount("global","c_anch_positions_paragraph",nofparagraphs)
- local box = getbox("strutbox")
- local w, h, d = getwhd(box)
+ local h = texgetdimen("strutht")
+ local d = texgetdimen("strutdp")
local t = {
p = true,
c = true,
@@ -704,8 +705,8 @@ implement {
name = "dosetpositionstrut",
arguments = "string",
actions = function(name)
- local box = getbox("strutbox")
- local w, h, d = getwhd(box)
+ local h = texgetdimen("strutht")
+ local d = texgetdimen("strutdp")
local spec = {
p = true,
c = column,
@@ -726,8 +727,8 @@ implement {
name = "dosetpositionstrutkind",
arguments = { "string", "integer" },
actions = function(name,kind)
- local box = getbox("strutbox")
- local w, h, d = getwhd(box)
+ local h = texgetdimen("strutht")
+ local d = texgetdimen("strutdp")
local spec = {
k = kind,
p = true,
@@ -985,7 +986,7 @@ local function overlapping(one,two,overlappingmargin) -- hm, strings so this is
end
local function onsamepage(list,page)
- for id in gmatch(list,"(, )") do
+ for id in gmatch(list,"([^,%s]+)") do
local jpi = collected[id]
if jpi then
local p = jpi.p
diff --git a/Master/texmf-dist/tex/context/base/mkiv/anch-pos.mkiv b/Master/texmf-dist/tex/context/base/mkiv/anch-pos.mkiv
index 772c89504d9..ce67caa9805 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/anch-pos.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/anch-pos.mkiv
@@ -477,10 +477,10 @@
%D positions being on the same page.
%D
%D \starttyping
-%D \doifpositionsonsamepageelse{point a}{point b}
+%D \doifpositionsonsamepageelse{point a,point b}
%D {action when on same page}
%D {action when not on same page}
-%D \doifpositionsonthispageelse{point a}{point b}
+%D \doifpositionsonthispageelse{point a,point b}
%D {action when on this page}
%D {action when not on this page}
%D \stoptyping
diff --git a/Master/texmf-dist/tex/context/base/mkiv/anch-snc.lua b/Master/texmf-dist/tex/context/base/mkiv/anch-snc.lua
index ee13adca39d..e7520f88d1e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/anch-snc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/anch-snc.lua
@@ -24,8 +24,8 @@ local mpnumeric = mp.numeric
local mppoints = mp.points
local texgetdimen = tex.getdimen
-local p_number = patterns.cardinal/tonumber
-local p_space = patterns.whitespace^0
+local p_number = lpegpatterns.cardinal/tonumber
+local p_space = lpegpatterns.whitespace^0
local p_tag = P("syncpos:") * p_number * P(":") * p_number
local p_option = p_number * ((P(",") * p_space * P("reset") * Cc(true)) + Cc(false)) -- for now
diff --git a/Master/texmf-dist/tex/context/base/mkiv/attr-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/attr-ini.lua
index 5507f2a70b8..b05c343e598 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/attr-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/attr-ini.lua
@@ -35,8 +35,8 @@ attributes.states = attributes.states or { }
attributes.handlers = attributes.handlers or { }
attributes.unsetvalue = -0x7FFFFFFF
-local currentfont = font.current -- mabe nicer is attributes.current
-local currentattributes = node.current_attributes -- mabe nicer is fonts .current
+local currentfont = font.current
+local currentattributes = nodes and nodes.currentattributes or node.currentattributes or node.current_attr -- no nodes table yet
local names = attributes.names
local numbers = attributes.numbers
diff --git a/Master/texmf-dist/tex/context/base/mkiv/attr-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/attr-ini.mkiv
index 71c6478f8c3..ad40a1ffead 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/attr-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/attr-ini.mkiv
@@ -168,19 +168,3 @@
% \to \everyafterpagebreak
\protect \endinput
-
-% for the luatex list:
-%
-% \attributedef\zeroattribute=0
-% \attributedef\someattribute=999
-%
-% \directlua {
-% local createtoken = newtoken.create
-% function attributenumber(name)
-% local n = createtoken(name).mode - createtoken("zeroattribute").mode
-% return n >= 0 and n or false
-% end
-% }
-%
-% \directlua{print(attributenumber("noneattribute"))}
-% \directlua{print(attributenumber("someattribute"))}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/back-exp.lua b/Master/texmf-dist/tex/context/base/mkiv/back-exp.lua
index 7a37cc94887..1abe9164a71 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/back-exp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/back-exp.lua
@@ -325,9 +325,9 @@ local styletemplate = [[
local numbertoallign = {
[0] = "justify", ["0"] = "justify", [variables.normal ] = "justify",
- [1] = "right", ["1"] = "right", [variables.flushright] = "right",
- [2] = "center", ["2"] = "center", [variables.middle ] = "center",
- [3] = "left", ["3"] = "left", [variables.flushleft ] = "left",
+ "right", ["1"] = "right", [variables.flushright] = "right",
+ "center", ["2"] = "center", [variables.middle ] = "center",
+ "left", ["3"] = "left", [variables.flushleft ] = "left",
}
function wrapups.allusedstyles(filename)
@@ -1640,7 +1640,7 @@ do
d.__i__ = n
data[n] = d
elseif content == " " or content == "" then
- if di.tg == "mspace" then
+ if d.tg == "mspace" then
-- we append or prepend a space to a preceding or following mtext
local parent = di.__p__
local index = di.__i__ -- == i
@@ -3020,7 +3020,7 @@ local collectresults do -- too many locals otherwise
local getkern = nuts.getkern
local getwidth = nuts.getwidth
- local start_of_par = nuts.start_of_par
+ local startofpar = nuts.startofpar
local nexthlist = nuts.traversers.hlist
local nextnode = nuts.traversers.node
@@ -3390,7 +3390,7 @@ end
last = nil
currentparagraph = nil
end
- elseif not paragraph and id == par_code and start_of_par(n) then
+ elseif not paragraph and id == par_code and startofpar(n) then
paragraph = getattr(n,a_taggedpar)
elseif id == disc_code then
-- very unlikely because we stripped them
@@ -3438,8 +3438,8 @@ end
for n, subtype in nexthlist, head do
if subtype == linelist_code then
setattr(n,a_textblock,noftextblocks)
- elseif subtype == glue_code or subtype == kern_code then -- no need to set fontkerns
- setattr(n,a_textblock,0)
+-- elseif subtype == glue_code or subtype == kern_code then -- weird, no list
+-- setattr(n,a_textblock,0)
end
end
return false
diff --git a/Master/texmf-dist/tex/context/base/mkiv/back-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/back-ini.lua
index d01be4a73f5..f2c22d3ba2a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/back-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/back-ini.lua
@@ -132,7 +132,7 @@ end)
backends.included = included
function backends.timestamp()
- return os.date("%Y-%m-%dT%X") .. os.timezone(true)
+ return os.date("%Y-%m-%dT%X") .. os.timezone()
end
-- Also here:
diff --git a/Master/texmf-dist/tex/context/base/mkiv/back-pdp.lua b/Master/texmf-dist/tex/context/base/mkiv/back-pdp.lua
index 857f13ef239..3de83bef1ac 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/back-pdp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/back-pdp.lua
@@ -22,6 +22,7 @@ local tokenscanners = tokens.scanners
local scanword = tokenscanners.word
local scankeyword = tokenscanners.keyword
local scanstring = tokenscanners.string
+local scantoks = tokenscanners.toks
local scaninteger = tokenscanners.integer
local scanwhd = tokenscanners.whd
@@ -30,6 +31,7 @@ local report = logs.reporter("backend")
local nodepool = nodes.pool
local newliteral = nodepool.literal
+local newlateliteral = nodepool.lateliteral
local newsave = nodepool.save
local newrestore = nodepool.restore
local newsetmatrix = nodepool.setmatrix
@@ -40,8 +42,24 @@ local variables = interfaces.variables
-- literals
+-- local function pdfliteral()
+-- context(newliteral(scanword() or "origin",scanstring()))
+-- end
+
+-- Who knows what will end up in e.g. tikz .. so we now do:
+
local function pdfliteral()
- context(newliteral(scanword() or "origin",scanstring()))
+ local word = scanword()
+ local node
+ if word == "shipout" then
+ context(newlateliteral(scanword() or "origin",scantoks()))
+ else
+ context(newliteral(word or "origin",scanstring()))
+ end
+end
+
+local function pdflateliteral()
+ context(newlateliteral(scanword() or "origin",scantoks()))
end
-- objects
@@ -198,14 +216,15 @@ end
-- mapfile mapline includechars catalog info names trailer
local extensions = {
- literal = pdfliteral,
- obj = pdfobj,
- refobj = pdfrefobj,
- dest = pdfdest,
- annot = pdfannot,
- save = pdfsave,
- restore = pdfrestore,
- setmatrix = pdfsetmatrix,
+ literal = pdfliteral,
+ lateliteral = pdflateliteral,
+ obj = pdfobj,
+ refobj = pdfrefobj,
+ dest = pdfdest,
+ annot = pdfannot,
+ save = pdfsave,
+ restore = pdfrestore,
+ setmatrix = pdfsetmatrix,
}
local function pdfextension()
@@ -276,12 +295,13 @@ implement { name = "pdfvariable", actions = pdfvariable }
-- for the moment (tikz)
-implement { name = "pdfliteral", actions = pdfliteral }
-implement { name = "pdfobj", actions = pdfobj }
-implement { name = "pdflastobj", actions = pdflastobj }
-implement { name = "pdfrefobj", actions = pdfrefobj }
---------- { name = "pdfannot", actions = pdfannot }
---------- { name = "pdfdest", actions = pdfdest }
---------- { name = "pdfsave", actions = pdfsave }
---------- { name = "pdfrestore", actions = pdfrestore }
---------- { name = "pdfsetmatrix", actions = pdfsetmatrix }
+implement { name = "pdfliteral", actions = pdfliteral }
+implement { name = "pdflateliteral", actions = pdflateliteral }
+implement { name = "pdfobj", actions = pdfobj }
+implement { name = "pdflastobj", actions = pdflastobj }
+implement { name = "pdfrefobj", actions = pdfrefobj }
+--------- { name = "pdfannot", actions = pdfannot }
+--------- { name = "pdfdest", actions = pdfdest }
+--------- { name = "pdfsave", actions = pdfsave }
+--------- { name = "pdfrestore", actions = pdfrestore }
+--------- { name = "pdfsetmatrix", actions = pdfsetmatrix }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/blob-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/blob-ini.lua
index 0b35c3b65aa..012b4ddb053 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/blob-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/blob-ini.lua
@@ -25,28 +25,26 @@ if not modules then modules = { } end modules ['blob-ini'] = {
local type, tostring = type, tostring
local lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns
-local report_blobs = logs.reporter("blobs")
+local report_blobs = logs.reporter("blobs")
-local flush_node_list = node.flush_list
-local hpack_node_list = node.hpack
------ vpack_node_list = node.vpack
-local write_node = node.write
+local flushnodelist = nodes.flushlist
+local hpacknodelist = nodes.hpack
-local typesetters = nodes.typesetters
-local tonodes = typesetters.tonodes
-local tohpack = typesetters.tohpack
-local tovpack = typesetters.tovpack
+local typesetters = nodes.typesetters
+local tonodes = typesetters.tonodes
+local tohpack = typesetters.tohpack
+local tovpack = typesetters.tovpack
-local implement = interfaces.implement
+local context = context
--- provide copies here (nicer for manuals)
+local implement = interfaces.implement
-blobs = blobs or { }
-local blobs = blobs
+blobs = blobs or { }
+local blobs = blobs
-blobs.tonodes = tonodes
-blobs.tohpack = tohpack
-blobs.tovpack = tovpack
+blobs.tonodes = tonodes
+blobs.tohpack = tohpack
+blobs.tovpack = tovpack
-- end of helpers
@@ -68,7 +66,7 @@ function blobs.dispose(t)
local li = list[i]
local pack = li.pack
if pack then
- flush_node_list(pack)
+ flushnodelist(pack)
li.pack = nil
end
end
@@ -96,14 +94,14 @@ function blobs.pack(t,how)
for i=1,#list do
local pack = list[i].pack
if pack then
- flush_node_list(node.pack)
+ flushnodelist(pack)
end
if how == "vertical" then
-- we need to prepend a local par node
-- list[i].pack = vpack_node_list(list[i].head,"exactly")
report_blobs("vpack not yet supported")
else
- list[i].pack = hpack_node_list(list[i].head,"exactly")
+ list[i].pack = hpacknodelist(list[i].head,"exactly")
end
end
end
@@ -114,8 +112,8 @@ function blobs.write(t)
local li = list[i]
local pack = li.pack
if pack then
- write_node(pack)
- flush_node_list(pack)
+ context(pack)
+ flushnodelist(pack)
li.pack = nil
end
end
@@ -158,28 +156,28 @@ end
local function strwd(str)
local l = tohpack(str)
local w = l.width
- flush_node_list(l)
+ flushnodelist(l)
return w
end
local function strht(str)
local l = tohpack(str)
local h = l.height
- flush_node_list(l)
+ flushnodelist(l)
return h
end
local function strdp(str)
local l = tohpack(str)
local d = l.depth
- flush_node_list(l)
+ flushnodelist(l)
return d
end
local function strhd(str)
local l = tohpack(str)
local s = l.height + l.depth
- flush_node_list(l)
+ flushnodelist(l)
return s
end
@@ -192,7 +190,7 @@ blobs.strhd = strhd
local scan_hbox = tokens.scanners.hbox
-implement { name = "strwd", actions = function() local l = scan_hbox() context(l.width) flush_node_list(l) end }
-implement { name = "strht", actions = function() local l = scan_hbox() context(l.height) flush_node_list(l) end }
-implement { name = "strdp", actions = function() local l = scan_hbox() context(l.depth) flush_node_list(l) end }
-implement { name = "strhd", actions = function() local l = scan_hbox() context(l.height + l.depth) flush_node_list(l) end }
+implement { name = "strwd", actions = function() local l = scan_hbox() context(l.width) flushnodelist(l) end }
+implement { name = "strht", actions = function() local l = scan_hbox() context(l.height) flushnodelist(l) end }
+implement { name = "strdp", actions = function() local l = scan_hbox() context(l.depth) flushnodelist(l) end }
+implement { name = "strhd", actions = function() local l = scan_hbox() context(l.height + l.depth) flushnodelist(l) end }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/buff-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/buff-ini.lua
index 4589e5498c5..f23344edada 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/buff-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/buff-ini.lua
@@ -8,7 +8,7 @@ if not modules then modules = { } end modules ['buff-ini'] = {
local concat = table.concat
local type, next, load = type, next, load
-local sub, format = string.sub, string.format
+local sub, format, find = string.sub, string.format, string.find
local splitlines, validstring, replacenewlines = string.splitlines, string.valid, string.replacenewlines
local P, Cs, patterns, lpegmatch = lpeg.P, lpeg.Cs, lpeg.patterns, lpeg.match
local utfchar = utf.char
@@ -55,6 +55,7 @@ local replacesuffix = file.replacesuffix
local registertempfile = luatex.registertempfile
local v_yes = variables.yes
+local v_append = variables.append
local eol = patterns.eol
local space = patterns.space
@@ -125,6 +126,14 @@ local function getcontent(name)
return buffer and buffer.data or ""
end
+local function empty(name)
+ if find(getcontent(name),"%S") then
+ return false
+ else
+ return true
+ end
+end
+
local function getlines(name)
local buffer = name and cache[name]
return buffer and splitlines(buffer.data)
@@ -201,6 +210,7 @@ buffers.assign = assign
buffers.prepend = prepend
buffers.append = append
buffers.exists = exists
+buffers.empty = empty
buffers.getcontent = getcontent
buffers.getlines = getlines
buffers.collectcontent = collectcontent
@@ -642,7 +652,7 @@ implement {
end
}
-local function savebuffer(list,name,prefix) -- name is optional
+local function savebuffer(list,name,prefix,option,directory) -- name is optional
if not list or list == "" then
list = name
end
@@ -656,13 +666,16 @@ local function savebuffer(list,name,prefix) -- name is optional
if prefix == v_yes then
name = addsuffix(tex.jobname .. "-" .. name,"tmp")
end
- io.savedata(name,replacenewlines(content))
+ if directory ~= "" and dir.makedirs(directory) then
+ name = file.join(directory,name)
+ end
+ io.savedata(name,replacenewlines(content),"\n",option == v_append)
end
implement {
name = "savebuffer",
actions = savebuffer,
- arguments = "3 strings",
+ arguments = "5 strings",
}
-- we can consider adding a size to avoid unlikely clashes
@@ -675,7 +688,7 @@ local runner = sandbox.registerrunner {
name = "run buffer",
program = "context",
method = "execute",
- template = jit and "--purgeall --jit %filename%" or "--purgeall %filename%",
+ template = (jit and "--jit --engine=luajittex" or "--engine=luatex") .. " --purgeall %?path: --path=%path% ?% %filename%",
reporter = report_typeset,
checkers = {
filename = "readable",
@@ -769,7 +782,10 @@ local function runbuffer(name,encapsulate,runnername,suffixes)
end
savedata(filename,content)
report_typeset("processing saved buffer %a\n",filename)
- runner { filename = filename }
+ runner {
+ filename = filename,
+ path = environment.arguments.path, -- maybe take all set paths
+ }
end
new[tag] = (new[tag] or 0) + 1
report_typeset("no changes in %a, processing skipped",name)
@@ -800,7 +816,7 @@ local function getbuffermkvi(name) -- rather direct !
ctx_viafile(resolvers.macros.preprocessed(getcontent(name)),formatters["buffer.%s.mkiv"](validstring(name,"noname")))
end
-local function gettexbuffer(name)
+local function getbuffertex(name)
local buffer = name and cache[name]
if buffer and buffer.data ~= "" then
ctx_pushcatcodetable()
@@ -815,15 +831,15 @@ local function gettexbuffer(name)
end
end
-buffers.get = getbuffer
-buffers.getmkiv = getbuffermkiv
-buffers.gettexbuffer = gettexbuffer
-buffers.run = runbuffer
+buffers.get = getbuffer
+buffers.getmkvi = getbuffermkvi
+buffers.gettex = getbuffertex
+buffers.run = runbuffer
implement { name = "getbufferctxlua", actions = loadcontent, arguments = "string" }
implement { name = "getbuffer", actions = getbuffer, arguments = "string" }
implement { name = "getbuffermkvi", actions = getbuffermkvi, arguments = "string" }
-implement { name = "gettexbuffer", actions = gettexbuffer, arguments = "string" }
+implement { name = "getbuffertex", actions = getbuffertex, arguments = "string" }
interfaces.implement {
name = "getbuffercontent",
@@ -849,6 +865,12 @@ implement {
arguments = "string"
}
+implement {
+ name = "doifelsebufferempty",
+ actions = { empty, commands.doifelse },
+ arguments = "string"
+}
+
-- This only used for mp buffers and is a kludge. Don't change the
-- texprint into texsprint as it fails because "p<nl>enddef" becomes
-- "penddef" then.
@@ -885,10 +907,10 @@ end
-- moved here:
function buffers.samplefile(name)
- if not buffers.exists(name) then
- buffers.assign(name,io.loaddata(resolvers.findfile(name)))
+ if not exists(name) then
+ assign(name,io.loaddata(resolvers.findfile(name)))
end
- buffers.get(name)
+ getbuffer(name)
end
implement {
diff --git a/Master/texmf-dist/tex/context/base/mkiv/buff-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/buff-ini.mkiv
index a8a120d903c..071a189873e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/buff-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/buff-ini.mkiv
@@ -22,8 +22,8 @@
\let\currentbuffer\empty
-\def\doifelsebuffer#1%
- {\clf_doifelsebuffer{#1}}
+ \def\doifelsebuffer #1{\clf_doifelsebuffer {#1}}
+\unexpanded\def\doifelsebufferempty#1{\clf_doifelsebufferempty{#1}}
\let\doifbufferelse\doifelsebuffer
@@ -246,12 +246,14 @@
% \savebufferinfile[x][temp.log] % gets name: temp.log
\installcorenamespace{savebuffer}
+\installcorenamespace{savebuffercounter}
-\installsetuponlycommandhandler \??savebuffer {savebuffer}
+\installcommandhandler \??savebuffer {savebuffer} \??savebuffer
\setupsavebuffer
[\c!list=,
\c!file=,
+ \c!directory=,
\c!prefix=\v!yes]
\unexpanded\def\savebuffer
@@ -262,9 +264,54 @@
\doifelseassignment{#1}
{\setupcurrentsavebuffer[#1]}%
{\setupcurrentsavebuffer[\c!list={#1},\c!file=#2]}%
- \clf_savebuffer{\directsavebufferparameter\c!list}{\directsavebufferparameter\c!file}{\directsavebufferparameter\c!prefix}%
+ \clf_savebuffer % will become key/value
+ {\savebufferparameter\c!list}%
+ {\savebufferparameter\c!file}%
+ {\savebufferparameter\c!prefix}%
+ {\savebufferparameter\c!option}%
+ {\savebufferparameter\c!directory}%
\endgroup}
+%D \starttyping
+%D \definesavebuffer[slide]
+%D
+%D \starttext
+%D \startslide
+%D \starttext
+%D \stopslide
+%D \startslide
+%D slide 1
+%D \stopslide
+%D text 1 \par
+%D \startslide
+%D slide 2
+%D \stopslide
+%D text 2 \par
+%D \startslide
+%D \stoptext
+%D \stopslide
+%D \stoptext
+%D \stoptyping
+
+\appendtoks
+ \ifcsname\e!stop\currentsavebuffer\endcsname\else
+ \definebuffer[\currentsavebuffer]%
+ \expandafter\newcount\csname\??savebuffercounter\currentsavebuffer\endcsname
+ \setuevalue{\e!stop\currentsavebuffer}{\buff_stop_save_buffer{\currentsavebuffer}}%
+ \setsavebufferparameter\c!file{\currentsavebuffer.tex}%
+ \fi
+\to \everydefinesavebuffer
+
+\protected\def\buff_stop_save_buffer#1%
+ {\edef\currentsavebuffer{#1}%
+ \global\advance\csname\??savebuffercounter\currentsavebuffer\endcsname\plusone
+ \clf_savebuffer % will become key/value
+ {\thedefinedbuffer{\currentsavebuffer}}%
+ {\savebufferparameter\c!file}%
+ {\savebufferparameter\c!prefix}%
+ {\ifnum\csname\??savebuffercounter\currentsavebuffer\endcsname>\plusone\v!append\fi}%
+ {\savebufferparameter\c!directory}}
+
%D Experimental: no expansion of commands in buffer!
% \startbuffer[what]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/buff-ver.lua b/Master/texmf-dist/tex/context/base/mkiv/buff-ver.lua
index ccb8ab0df8e..2a8e3b8c2b4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/buff-ver.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/buff-ver.lua
@@ -807,8 +807,8 @@ local nospace = space^1/""
local endstring = P(-1)
local compactors = {
- [v_all] = Cs((backslash * (1-backslash-space)^1 * nospace * (endstring+fences) + 1)^0),
- [v_absolute] = Cs((backslash * (1-symbols -space)^1 * nospace * (symbols+backslash) + 1)^0),
+ [v_all] = Cs((backslash * (1-backslash-space)^1 * nospace * (endstring + fences + #backslash) + 1)^0),
+ [v_absolute] = Cs((backslash * (1-symbols -space)^1 * nospace * (symbols + backslash ) + 1)^0),
[v_last] = Cs((space^1 * endstring/"" + 1)^0),
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/char-def.lua b/Master/texmf-dist/tex/context/base/mkiv/char-def.lua
index 7a04e869d19..1aea51318fa 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/char-def.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/char-def.lua
@@ -19,11 +19,16 @@ the trouble. Some additional data is kept in other files.
For a generic subset of the data here, run "context luatex-basics-prepare.tex" after
adapting this file.
+
+Updated end 2021 as prelude to ar's remote talk at the meeting. Needs some indic
+checking (see comment field).
+
+Todo: get rid of specials = { "font", ... } in math ... we have already vectors.
]]--
local variants_emoji={
- [0xFE0E]="text style",
- [0xFE0F]="emoji style",
+ [0xFE0E]="text style",
+ [0xFE0F]="emoji style",
}
local variants_forms={
@@ -31,6 +36,52 @@ local variants_forms={
[0xFE01]="centered form",
}
+local variants_style={
+ [0xFE00]="chancery style",
+ [0xFE01]="roundhand style",
+}
+
+local variants_dotted={
+ [0xFE00]="dotted form",
+}
+
+local variants_90={
+ [0xFE00]="rotated 90 degrees",
+}
+
+local variants_180={
+ [0xFE01]="rotated 180 degrees",
+}
+
+local variants_270={
+ [0xFE02]="rotated 270 degrees",
+}
+
+local variants_expanded={
+ [0xFE00]="expanded",
+}
+
+local variants_90_180={
+ [0xFE00]="rotated 90 degrees",
+ [0xFE01]="rotated 180 degrees",
+}
+
+local variants_90_180_270={
+ [0xFE00]="rotated 90 degrees",
+ [0xFE01]="rotated 180 degrees",
+ [0xFE02]="rotated 270 degrees",
+}
+
+local variants_180_270={
+ [0xFE01]="rotated 180 degrees",
+ [0xFE02]="rotated 270 degrees",
+}
+
+local variants_90_270={
+ [0xFE00]="rotated 90 degrees",
+ [0xFE02]="rotated 270 degrees",
+}
+
characters = characters or { }
characters.data={
@@ -314,7 +365,7 @@ characters.data={
description="EXCLAMATION MARK",
direction="on",
linebreak="ex",
- mathclass="close",
+ mathclass="factorial",
synonyms={ "bang", "factorial" },
unicodeslot=0x21,
},
@@ -326,7 +377,7 @@ characters.data={
description="QUOTATION MARK",
direction="on",
linebreak="qu",
- mathclass="default",
+ mathclass="ordinary",
synonyms={ "neutral quotation mark" },
unicodeslot=0x22,
},
@@ -389,7 +440,7 @@ characters.data={
description="APOSTROPHE",
direction="on",
linebreak="qu",
- mathclass="default",
+ mathclass="ordinary",
synonyms={ "apl quote", "apostrophe-quote", "neutral single quotation mark" },
unicodeslot=0x27,
},
@@ -442,6 +493,7 @@ characters.data={
direction="es",
linebreak="pr",
mathclass="binary",
+ mathgroup="nary arithmetic",
unicodeslot=0x2B,
},
{
@@ -464,9 +516,10 @@ characters.data={
description="HYPHEN-MINUS",
direction="es",
linebreak="hy",
- mathclass="nothing",
+ mathclass="ordinary",
mathextensible="h",
mathfiller="relfill",
+ mathgroup="binary arithmetic",
mathname="mathhyphen",
mathsymbol=0x2212,
synonyms={ "hyphen or minus sign", "hyphus" },
@@ -481,8 +534,16 @@ characters.data={
description="FULL STOP",
direction="cs",
linebreak="is",
- mathclass="punctuation",
- mathname="ldotp",
+ mathspec={
+ {
+ class="binary",
+ name="ldot",
+ },
+ {
+ class="punctuation",
+ name="ldotp",
+ },
+ },
synonyms={ "decimal point", "dot", "period" },
unicodeslot=0x2E,
},
@@ -494,7 +555,17 @@ characters.data={
description="SOLIDUS",
direction="cs",
linebreak="sy",
- mathclass="middle",
+ mathclass="division",
+ mathspec={
+ {
+ class="division",
+ name="slash",
+ },
+ {
+ class="division",
+ name="solidus",
+ },
+ },
synonyms={ "slash", "virgule" },
unicodeslot=0x2F,
},
@@ -505,7 +576,7 @@ characters.data={
description="DIGIT ZERO",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x30,
variants={
[0xFE00]="short diagonal stroke form",
@@ -520,7 +591,7 @@ characters.data={
description="DIGIT ONE",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x31,
variants=variants_emoji,
},
@@ -531,7 +602,7 @@ characters.data={
description="DIGIT TWO",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x32,
variants=variants_emoji,
},
@@ -542,7 +613,7 @@ characters.data={
description="DIGIT THREE",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x33,
variants=variants_emoji,
},
@@ -553,7 +624,7 @@ characters.data={
description="DIGIT FOUR",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x34,
variants=variants_emoji,
},
@@ -564,7 +635,7 @@ characters.data={
description="DIGIT FIVE",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x35,
variants=variants_emoji,
},
@@ -575,7 +646,7 @@ characters.data={
description="DIGIT SIX",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x36,
variants=variants_emoji,
},
@@ -586,7 +657,7 @@ characters.data={
description="DIGIT SEVEN",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x37,
variants=variants_emoji,
},
@@ -597,7 +668,7 @@ characters.data={
description="DIGIT EIGHT",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x38,
variants=variants_emoji,
},
@@ -608,7 +679,7 @@ characters.data={
description="DIGIT NINE",
direction="en",
linebreak="nu",
- mathclass="number",
+ mathclass="digit",
unicodeslot=0x39,
variants=variants_emoji,
},
@@ -621,6 +692,7 @@ characters.data={
direction="cs",
linebreak="is",
mathclass="relation",
+--mathsymbol=0x2236,
unicodeslot=0x3A,
},
{
@@ -642,6 +714,7 @@ characters.data={
direction="on",
linebreak="al",
mathclass="relation",
+ mathgroup="nary relation",
mathname="lt",
mirror=0x3E,
textclass="open",
@@ -657,6 +730,7 @@ characters.data={
linebreak="al",
mathextensible="h",
mathfiller="equalfill",
+ mathgroup="nary relation",
mathspec={
{
class="relation",
@@ -664,6 +738,7 @@ characters.data={
},
{
class="relation",
+ comment="useless",
name="Relbar",
},
},
@@ -677,6 +752,7 @@ characters.data={
direction="on",
linebreak="al",
mathclass="relation",
+ mathgroup="nary relation",
mathname="gt",
mirror=0x3C,
textclass="close",
@@ -711,7 +787,6 @@ characters.data={
direction="l",
lccode=0x61,
linebreak="al",
- mathclass="variable",
unicodeslot=0x41,
},
{
@@ -722,7 +797,6 @@ characters.data={
direction="l",
lccode=0x62,
linebreak="al",
- mathclass="variable",
unicodeslot=0x42,
},
{
@@ -733,7 +807,6 @@ characters.data={
direction="l",
lccode=0x63,
linebreak="al",
- mathclass="variable",
unicodeslot=0x43,
},
{
@@ -744,7 +817,6 @@ characters.data={
direction="l",
lccode=0x64,
linebreak="al",
- mathclass="variable",
unicodeslot=0x44,
},
{
@@ -755,7 +827,6 @@ characters.data={
direction="l",
lccode=0x65,
linebreak="al",
- mathclass="variable",
unicodeslot=0x45,
},
{
@@ -766,7 +837,6 @@ characters.data={
direction="l",
lccode=0x66,
linebreak="al",
- mathclass="variable",
unicodeslot=0x46,
},
{
@@ -777,7 +847,6 @@ characters.data={
direction="l",
lccode=0x67,
linebreak="al",
- mathclass="variable",
unicodeslot=0x47,
},
{
@@ -788,7 +857,6 @@ characters.data={
direction="l",
lccode=0x68,
linebreak="al",
- mathclass="variable",
unicodeslot=0x48,
},
{
@@ -800,7 +868,6 @@ characters.data={
direction="l",
lccode=0x69,
linebreak="al",
- mathclass="variable",
unicodeslot=0x49,
},
{
@@ -812,7 +879,6 @@ characters.data={
direction="l",
lccode=0x6A,
linebreak="al",
- mathclass="variable",
unicodeslot=0x4A,
},
{
@@ -823,7 +889,6 @@ characters.data={
direction="l",
lccode=0x6B,
linebreak="al",
- mathclass="variable",
unicodeslot=0x4B,
},
{
@@ -834,7 +899,6 @@ characters.data={
direction="l",
lccode=0x6C,
linebreak="al",
- mathclass="variable",
unicodeslot=0x4C,
},
{
@@ -845,7 +909,6 @@ characters.data={
direction="l",
lccode=0x6D,
linebreak="al",
- mathclass="variable",
unicodeslot=0x4D,
},
{
@@ -856,7 +919,6 @@ characters.data={
direction="l",
lccode=0x6E,
linebreak="al",
- mathclass="variable",
unicodeslot=0x4E,
},
{
@@ -867,7 +929,6 @@ characters.data={
direction="l",
lccode=0x6F,
linebreak="al",
- mathclass="variable",
unicodeslot=0x4F,
},
{
@@ -878,7 +939,6 @@ characters.data={
direction="l",
lccode=0x70,
linebreak="al",
- mathclass="variable",
unicodeslot=0x50,
},
{
@@ -889,7 +949,6 @@ characters.data={
direction="l",
lccode=0x71,
linebreak="al",
- mathclass="variable",
unicodeslot=0x51,
},
{
@@ -900,7 +959,6 @@ characters.data={
direction="l",
lccode=0x72,
linebreak="al",
- mathclass="variable",
unicodeslot=0x52,
},
{
@@ -911,7 +969,6 @@ characters.data={
direction="l",
lccode=0x73,
linebreak="al",
- mathclass="variable",
unicodeslot=0x53,
},
{
@@ -922,7 +979,6 @@ characters.data={
direction="l",
lccode=0x74,
linebreak="al",
- mathclass="variable",
unicodeslot=0x54,
},
{
@@ -933,7 +989,6 @@ characters.data={
direction="l",
lccode=0x75,
linebreak="al",
- mathclass="variable",
unicodeslot=0x55,
},
{
@@ -944,7 +999,6 @@ characters.data={
direction="l",
lccode=0x76,
linebreak="al",
- mathclass="variable",
unicodeslot=0x56,
},
{
@@ -955,7 +1009,6 @@ characters.data={
direction="l",
lccode=0x77,
linebreak="al",
- mathclass="variable",
unicodeslot=0x57,
},
{
@@ -966,7 +1019,6 @@ characters.data={
direction="l",
lccode=0x78,
linebreak="al",
- mathclass="variable",
unicodeslot=0x58,
},
{
@@ -977,7 +1029,6 @@ characters.data={
direction="l",
lccode=0x79,
linebreak="al",
- mathclass="variable",
unicodeslot=0x59,
},
{
@@ -988,7 +1039,6 @@ characters.data={
direction="l",
lccode=0x7A,
linebreak="al",
- mathclass="variable",
unicodeslot=0x5A,
},
{
@@ -1013,7 +1063,7 @@ characters.data={
description="REVERSE SOLIDUS",
direction="on",
linebreak="pr",
- mathclass="nothing",
+ mathclass="division",
mathname="backslash",
synonyms={ "backslash" },
unicodeslot=0x5C,
@@ -1036,12 +1086,13 @@ characters.data={
adobename="asciicircum",
category="sk",
cjkwd="na",
+ comment="the Hat looks rediculous in most fonts",
contextname="textasciicircum",
description="CIRCUMFLEX ACCENT",
direction="on",
linebreak="al",
- mathclass="topaccent",
- mathname="Hat",
+--mathclass="topaccent",
+--mathname="Hat",
synonyms={ "spacing circumflex accent" },
unicodeslot=0x5E,
},
@@ -1064,8 +1115,17 @@ characters.data={
description="GRAVE ACCENT",
direction="on",
linebreak="al",
- mathclass="topaccent",
- mathname="grave",
+ mathspec={
+ {
+ class="topaccent",
+ name="grave",
+ },
+ {
+ class="topaccent",
+ name="widegrave",
+ stretch="h",
+ },
+ },
synonyms={ "spacing grave accent" },
unicodeslot=0x60,
},
@@ -1076,7 +1136,6 @@ characters.data={
description="LATIN SMALL LETTER A",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x41,
unicodeslot=0x61,
},
@@ -1087,7 +1146,6 @@ characters.data={
description="LATIN SMALL LETTER B",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x42,
unicodeslot=0x62,
},
@@ -1098,7 +1156,6 @@ characters.data={
description="LATIN SMALL LETTER C",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x43,
unicodeslot=0x63,
},
@@ -1109,7 +1166,6 @@ characters.data={
description="LATIN SMALL LETTER D",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x44,
unicodeslot=0x64,
},
@@ -1120,7 +1176,6 @@ characters.data={
description="LATIN SMALL LETTER E",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x45,
unicodeslot=0x65,
},
@@ -1131,7 +1186,6 @@ characters.data={
description="LATIN SMALL LETTER F",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x46,
unicodeslot=0x66,
},
@@ -1142,7 +1196,6 @@ characters.data={
description="LATIN SMALL LETTER G",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x47,
unicodeslot=0x67,
},
@@ -1153,7 +1206,6 @@ characters.data={
description="LATIN SMALL LETTER H",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x48,
unicodeslot=0x68,
},
@@ -1165,7 +1217,6 @@ characters.data={
description="LATIN SMALL LETTER I",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x49,
unicodeslot=0x69,
},
@@ -1176,7 +1227,6 @@ characters.data={
description="LATIN SMALL LETTER J",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x4A,
unicodeslot=0x6A,
},
@@ -1187,7 +1237,6 @@ characters.data={
description="LATIN SMALL LETTER K",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x4B,
unicodeslot=0x6B,
},
@@ -1198,7 +1247,6 @@ characters.data={
description="LATIN SMALL LETTER L",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x4C,
unicodeslot=0x6C,
},
@@ -1209,7 +1257,6 @@ characters.data={
description="LATIN SMALL LETTER M",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x4D,
unicodeslot=0x6D,
},
@@ -1220,7 +1267,6 @@ characters.data={
description="LATIN SMALL LETTER N",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x4E,
unicodeslot=0x6E,
},
@@ -1231,7 +1277,6 @@ characters.data={
description="LATIN SMALL LETTER O",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x4F,
unicodeslot=0x6F,
},
@@ -1242,7 +1287,6 @@ characters.data={
description="LATIN SMALL LETTER P",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x50,
unicodeslot=0x70,
},
@@ -1253,7 +1297,6 @@ characters.data={
description="LATIN SMALL LETTER Q",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x51,
unicodeslot=0x71,
},
@@ -1264,7 +1307,6 @@ characters.data={
description="LATIN SMALL LETTER R",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x52,
unicodeslot=0x72,
},
@@ -1275,7 +1317,6 @@ characters.data={
description="LATIN SMALL LETTER S",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x53,
unicodeslot=0x73,
},
@@ -1286,7 +1327,6 @@ characters.data={
description="LATIN SMALL LETTER T",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x54,
unicodeslot=0x74,
},
@@ -1297,7 +1337,6 @@ characters.data={
description="LATIN SMALL LETTER U",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x55,
unicodeslot=0x75,
},
@@ -1308,7 +1347,6 @@ characters.data={
description="LATIN SMALL LETTER V",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x56,
unicodeslot=0x76,
},
@@ -1319,7 +1357,6 @@ characters.data={
description="LATIN SMALL LETTER W",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x57,
unicodeslot=0x77,
},
@@ -1330,7 +1367,6 @@ characters.data={
description="LATIN SMALL LETTER X",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x58,
unicodeslot=0x78,
},
@@ -1341,7 +1377,6 @@ characters.data={
description="LATIN SMALL LETTER Y",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x59,
unicodeslot=0x79,
},
@@ -1352,7 +1387,6 @@ characters.data={
description="LATIN SMALL LETTER Z",
direction="l",
linebreak="al",
- mathclass="variable",
uccode=0x5A,
unicodeslot=0x7A,
},
@@ -1380,11 +1414,12 @@ characters.data={
description="VERTICAL LINE",
direction="on",
linebreak="ba",
+ mathclass="ordinary",
mathspec={
- {
- class="nothing",
- name="arrowvert",
- },
+-- {
+-- class="ordinary",
+-- name="arrowvert",
+-- },
{
class="delimiter",
name="vert",
@@ -1394,12 +1429,12 @@ characters.data={
name="lvert",
},
{
- class="close",
- name="rvert",
+ class="middle",
+ name="mvert",
},
{
- class="relation",
- name="mid",
+ class="close",
+ name="rvert",
},
{
class="delimiter",
@@ -1432,6 +1467,7 @@ characters.data={
description="TILDE",
direction="on",
linebreak="al",
+ mathclass="relation",
synonyms={ "spacing tilde" },
unicodeslot=0x7E,
},
@@ -1729,7 +1765,7 @@ characters.data={
description="YEN SIGN",
direction="et",
linebreak="pr",
- mathclass="nothing",
+ mathclass="ordinary",
mathname="yen",
synonyms={ "yuan sign" },
unicodeslot=0xA5,
@@ -1753,7 +1789,7 @@ characters.data={
description="SECTION SIGN",
direction="on",
linebreak="ai",
- mathclass="box",
+ mathclass="ordinary",
mathname="S",
synonyms={ "european paragraph sign" },
unicodeslot=0xA7,
@@ -1766,8 +1802,17 @@ characters.data={
description="DIAERESIS",
direction="on",
linebreak="ai",
- mathclass="topaccent",
- mathname="ddot",
+ mathspec={
+ {
+ class="topaccent",
+ name="ddot",
+ },
+ {
+ class="topaccent",
+ name="wideddot",
+ stretch="h",
+ },
+ },
specials={ "compat", 0x20, 0x308 },
synonyms={ "spacing diaeresis" },
unicodeslot=0xA8,
@@ -1857,10 +1902,20 @@ characters.data={
description="MACRON",
direction="on",
linebreak="al",
- mathclass="topaccent",
- mathfiller="barfill",
- mathmleq=0x203E,
- mathname="bar",
+--mathclass="topaccent",
+--mathfiller="barfill",
+--mathmleq=0x203E,
+ mathspec={
+ {
+ class="topaccent",
+ name="bar",
+ },
+ {
+ class="topaccent",
+ name="widebar",
+ stretch="h",
+ },
+ },
specials={ "compat", 0x20, 0x304 },
synonyms={ "apl overbar", "overline", "spacing macron" },
unicodeslot=0xAF,
@@ -1919,8 +1974,17 @@ characters.data={
description="ACUTE ACCENT",
direction="on",
linebreak="bb",
- mathclass="topaccent",
- mathname="acute",
+ mathspec={
+ {
+ class="topaccent",
+ name="acute",
+ },
+ {
+ class="topaccent",
+ name="wideacute",
+ stretch="h",
+ },
+ },
specials={ "compat", 0x20, 0x301 },
synonyms={ "spacing acute accent" },
unicodeslot=0xB4,
@@ -1933,7 +1997,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "compat", 0x3BC },
- uccode=0x39C,
+ uccode=0x3BC,
unicodeslot=0xB5,
},
{
@@ -1944,7 +2008,7 @@ characters.data={
description="PILCROW SIGN",
direction="on",
linebreak="ai",
- mathclass="box",
+ mathclass="ordinary",
mathname="P",
synonyms={ "european section sign", "paragraph sign" },
unicodeslot=0xB6,
@@ -2337,6 +2401,7 @@ characters.data={
direction="on",
linebreak="ai",
mathclass="binary",
+ mathgroup="nary arithmetic",
mathname="times",
synonyms={ "cartesian product" },
unicodeslot=0xD7,
@@ -2736,6 +2801,7 @@ characters.data={
direction="on",
linebreak="ai",
mathclass="binary",
+ mathgroup="binary arithmetic",
mathname="div",
synonyms={ "obelus" },
unicodeslot=0xF7,
@@ -3738,6 +3804,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "compat", 0x2BC, 0x6E },
+ uccode={ 0x2BC, 0x6E },
unicodeslot=0x149,
},
{
@@ -4387,7 +4454,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "compat", 0x73 },
- uccode=0x53,
+ uccode=0x73,
unicodeslot=0x17F,
},
{
@@ -4683,7 +4750,6 @@ characters.data={
description="LATIN SMALL LETTER LAMBDA WITH STROKE",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="lambdabar",
synonyms={ "latin letter lambda bar" },
unicodeslot=0x19B,
@@ -5638,6 +5704,7 @@ characters.data={
linebreak="al",
shcode=0x6A,
specials={ "char", 0x6A, 0x30C },
+ uccode={ 0x6A, 0x30C },
unicodeslot=0x1F0,
},
{
@@ -7680,8 +7747,17 @@ characters.data={
description="MODIFIER LETTER CIRCUMFLEX ACCENT",
direction="on",
linebreak="al",
- mathclass="topaccent",
- mathname="hat",
+ mathspec={
+ {
+ class="topaccent",
+ name="hat",
+ },
+ {
+ class="topaccent",
+ name="widehat",
+ stretch="h",
+ },
+ },
specials={ "compat", 0x20, 0x302 },
unicodeslot=0x2C6,
},
@@ -7694,8 +7770,17 @@ characters.data={
description="CARON",
direction="on",
linebreak="ai",
- mathclass="topaccent",
- mathname="check",
+ mathspec={
+ {
+ class="topaccent",
+ name="check",
+ },
+ {
+ class="topaccent",
+ name="widecheck",
+ stretch="h",
+ },
+ },
specials={ "compat", 0x20, 0x30C },
synonyms={ "mandarin chinese third tone", "modifier letter hacek" },
unicodeslot=0x2C7,
@@ -7844,8 +7929,17 @@ characters.data={
description="BREVE",
direction="on",
linebreak="ai",
- mathclass="topaccent",
- mathname="breve",
+ mathspec={
+ {
+ class="topaccent",
+ name="breve",
+ },
+ {
+ class="topaccent",
+ name="widebreve",
+ stretch="h",
+ },
+ },
specials={ "compat", 0x20, 0x306 },
unicodeslot=0x2D8,
},
@@ -7857,8 +7951,17 @@ characters.data={
description="DOT ABOVE",
direction="on",
linebreak="ai",
- mathclass="topaccent",
- mathname="dot",
+ mathspec={
+ {
+ class="topaccent",
+ name="dot",
+ },
+ {
+ class="topaccent",
+ name="widedot",
+ stretch="h",
+ },
+ },
specials={ "compat", 0x20, 0x307 },
synonyms={ "mandarin chinese fifth or neutral tone" },
unicodeslot=0x2D9,
@@ -7871,8 +7974,17 @@ characters.data={
description="RING ABOVE",
direction="on",
linebreak="ai",
- mathclass="topaccent",
- mathname="ring",
+ mathspec={
+ {
+ class="topaccent",
+ name="ring",
+ },
+ {
+ class="topaccent",
+ name="widering",
+ stretch="h",
+ },
+ },
specials={ "compat", 0x20, 0x30A },
unicodeslot=0x2DA,
},
@@ -7894,8 +8006,17 @@ characters.data={
description="SMALL TILDE",
direction="on",
linebreak="al",
- mathclass="topaccent",
- mathname="tilde",
+ mathspec={
+ {
+ class="topaccent",
+ name="tilde",
+ },
+ {
+ class="topaccent",
+ name="widetilde",
+ stretch="h",
+ },
+ },
specials={ "compat", 0x20, 0x303 },
unicodeslot=0x2DC,
},
@@ -8194,9 +8315,6 @@ characters.data={
description="COMBINING CIRCUMFLEX ACCENT",
direction="nsm",
linebreak="cm",
- mathclass="topaccent",
- mathname="widehat",
- mathstretch="h",
unicodeslot=0x302,
},
{
@@ -8207,9 +8325,6 @@ characters.data={
description="COMBINING TILDE",
direction="nsm",
linebreak="cm",
- mathclass="topaccent",
- mathname="widetilde",
- mathstretch="h",
unicodeslot=0x303,
},
{
@@ -8691,6 +8806,7 @@ characters.data={
description="COMBINING LOW LINE",
direction="nsm",
linebreak="cm",
+ mathextensible="l",
synonyms={ "underline", "underscore" },
unicodeslot=0x332,
},
@@ -9281,6 +9397,7 @@ characters.data={
category="lu",
description="GREEK CAPITAL LETTER HETA",
direction="l",
+ lccode=0x371,
linebreak="al",
unicodeslot=0x370,
},
@@ -9295,6 +9412,7 @@ characters.data={
category="lu",
description="GREEK CAPITAL LETTER ARCHAIC SAMPI",
direction="l",
+ lccode=0x373,
linebreak="al",
unicodeslot=0x372,
},
@@ -9326,6 +9444,7 @@ characters.data={
category="lu",
description="GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA",
direction="l",
+ lccode=0x377,
linebreak="al",
unicodeslot=0x376,
},
@@ -9382,6 +9501,7 @@ characters.data={
category="lu",
description="GREEK CAPITAL LETTER YOT",
direction="l",
+ lccode=0x3F3,
linebreak="al",
unicodeslot=0x37F,
},
@@ -9507,6 +9627,7 @@ characters.data={
linebreak="al",
shcode=0x3B9,
specials={ "char", 0x3CA, 0x301 },
+ uccode={ 0x3B9, 0x308, 0x301 },
unicodeslot=0x390,
},
[0x391]={
@@ -9518,7 +9639,6 @@ characters.data={
direction="l",
lccode=0x3B1,
linebreak="al",
- mathclass="variable",
mathname="Alpha",
unicodeslot=0x391,
},
@@ -9531,7 +9651,6 @@ characters.data={
direction="l",
lccode=0x3B2,
linebreak="al",
- mathclass="variable",
mathname="Beta",
unicodeslot=0x392,
},
@@ -9544,7 +9663,6 @@ characters.data={
direction="l",
lccode=0x3B3,
linebreak="al",
- mathclass="variable",
mathname="Gamma",
synonyms={ "gamma function" },
unicodeslot=0x393,
@@ -9558,7 +9676,6 @@ characters.data={
direction="l",
lccode=0x3B4,
linebreak="al",
- mathclass="variable",
mathname="Delta",
unicodeslot=0x394,
},
@@ -9571,7 +9688,6 @@ characters.data={
direction="l",
lccode=0x3B5,
linebreak="al",
- mathclass="variable",
mathname="Epsilon",
unicodeslot=0x395,
},
@@ -9584,7 +9700,6 @@ characters.data={
direction="l",
lccode=0x3B6,
linebreak="al",
- mathclass="variable",
mathname="Zeta",
unicodeslot=0x396,
},
@@ -9597,7 +9712,6 @@ characters.data={
direction="l",
lccode=0x3B7,
linebreak="al",
- mathclass="variable",
mathname="Eta",
unicodeslot=0x397,
},
@@ -9610,7 +9724,6 @@ characters.data={
direction="l",
lccode=0x3B8,
linebreak="al",
- mathclass="variable",
mathname="Theta",
unicodeslot=0x398,
},
@@ -9623,7 +9736,6 @@ characters.data={
direction="l",
lccode=0x3B9,
linebreak="al",
- mathclass="variable",
mathname="Iota",
unicodeslot=0x399,
},
@@ -9636,7 +9748,6 @@ characters.data={
direction="l",
lccode=0x3BA,
linebreak="al",
- mathclass="variable",
mathname="Kappa",
unicodeslot=0x39A,
},
@@ -9649,7 +9760,6 @@ characters.data={
direction="l",
lccode=0x3BB,
linebreak="al",
- mathclass="variable",
mathname="Lambda",
unicodeslot=0x39B,
},
@@ -9662,7 +9772,6 @@ characters.data={
direction="l",
lccode=0x3BC,
linebreak="al",
- mathclass="variable",
mathname="Mu",
unicodeslot=0x39C,
},
@@ -9675,7 +9784,6 @@ characters.data={
direction="l",
lccode=0x3BD,
linebreak="al",
- mathclass="variable",
mathname="Nu",
unicodeslot=0x39D,
},
@@ -9688,7 +9796,6 @@ characters.data={
direction="l",
lccode=0x3BE,
linebreak="al",
- mathclass="variable",
mathname="Xi",
unicodeslot=0x39E,
},
@@ -9701,7 +9808,6 @@ characters.data={
direction="l",
lccode=0x3BF,
linebreak="al",
- mathclass="variable",
mathname="Omicron",
unicodeslot=0x39F,
},
@@ -9714,7 +9820,6 @@ characters.data={
direction="l",
lccode=0x3C0,
linebreak="al",
- mathclass="variable",
mathname="Pi",
unicodeslot=0x3A0,
},
@@ -9727,7 +9832,6 @@ characters.data={
direction="l",
lccode=0x3C1,
linebreak="al",
- mathclass="variable",
mathname="Rho",
unicodeslot=0x3A1,
},
@@ -9740,7 +9844,6 @@ characters.data={
direction="l",
lccode=0x3C3,
linebreak="al",
- mathclass="variable",
mathname="Sigma",
unicodeslot=0x3A3,
},
@@ -9753,7 +9856,6 @@ characters.data={
direction="l",
lccode=0x3C4,
linebreak="al",
- mathclass="variable",
mathname="Tau",
unicodeslot=0x3A4,
},
@@ -9766,7 +9868,6 @@ characters.data={
direction="l",
lccode=0x3C5,
linebreak="al",
- mathclass="variable",
mathname="Upsilon",
unicodeslot=0x3A5,
},
@@ -9779,7 +9880,6 @@ characters.data={
direction="l",
lccode=0x3C6,
linebreak="al",
- mathclass="variable",
mathname="Phi",
unicodeslot=0x3A6,
},
@@ -9792,7 +9892,6 @@ characters.data={
direction="l",
lccode=0x3C7,
linebreak="al",
- mathclass="variable",
mathname="Chi",
unicodeslot=0x3A7,
},
@@ -9805,7 +9904,6 @@ characters.data={
direction="l",
lccode=0x3C8,
linebreak="al",
- mathclass="variable",
mathname="Psi",
unicodeslot=0x3A8,
},
@@ -9818,7 +9916,6 @@ characters.data={
direction="l",
lccode=0x3C9,
linebreak="al",
- mathclass="variable",
mathname="Omega",
unicodeslot=0x3A9,
},
@@ -9903,6 +10000,7 @@ characters.data={
linebreak="al",
shcode=0x3C5,
specials={ "char", 0x3CB, 0x301 },
+ uccode={ 0x3C5, 0x308, 0x301 },
unicodeslot=0x3B0,
},
[0x3B1]={
@@ -9913,7 +10011,6 @@ characters.data={
description="GREEK SMALL LETTER ALPHA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="alpha",
uccode=0x391,
unicodeslot=0x3B1,
@@ -9926,7 +10023,6 @@ characters.data={
description="GREEK SMALL LETTER BETA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="beta",
uccode=0x392,
unicodeslot=0x3B2,
@@ -9939,7 +10035,6 @@ characters.data={
description="GREEK SMALL LETTER GAMMA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="gamma",
uccode=0x393,
unicodeslot=0x3B3,
@@ -9952,7 +10047,6 @@ characters.data={
description="GREEK SMALL LETTER DELTA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="delta",
uccode=0x394,
unicodeslot=0x3B4,
@@ -9965,7 +10059,6 @@ characters.data={
description="GREEK SMALL LETTER EPSILON",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="varepsilon",
uccode=0x395,
unicodeslot=0x3B5,
@@ -9978,7 +10071,6 @@ characters.data={
description="GREEK SMALL LETTER ZETA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="zeta",
uccode=0x396,
unicodeslot=0x3B6,
@@ -9991,7 +10083,6 @@ characters.data={
description="GREEK SMALL LETTER ETA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="eta",
uccode=0x397,
unicodeslot=0x3B7,
@@ -10004,7 +10095,6 @@ characters.data={
description="GREEK SMALL LETTER THETA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="theta",
uccode=0x398,
unicodeslot=0x3B8,
@@ -10017,7 +10107,6 @@ characters.data={
description="GREEK SMALL LETTER IOTA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="iota",
uccode=0x399,
unicodeslot=0x3B9,
@@ -10030,7 +10119,6 @@ characters.data={
description="GREEK SMALL LETTER KAPPA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="kappa",
uccode=0x39A,
unicodeslot=0x3BA,
@@ -10043,7 +10131,6 @@ characters.data={
description="GREEK SMALL LETTER LAMDA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="lambda",
uccode=0x39B,
unicodeslot=0x3BB,
@@ -10056,7 +10143,6 @@ characters.data={
description="GREEK SMALL LETTER MU",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="mu",
uccode=0x39C,
unicodeslot=0x3BC,
@@ -10069,7 +10155,6 @@ characters.data={
description="GREEK SMALL LETTER NU",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="nu",
uccode=0x39D,
unicodeslot=0x3BD,
@@ -10082,7 +10167,6 @@ characters.data={
description="GREEK SMALL LETTER XI",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="xi",
uccode=0x39E,
unicodeslot=0x3BE,
@@ -10095,7 +10179,6 @@ characters.data={
description="GREEK SMALL LETTER OMICRON",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="omicron",
uccode=0x39F,
unicodeslot=0x3BF,
@@ -10108,7 +10191,6 @@ characters.data={
description="GREEK SMALL LETTER PI",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="pi",
synonyms={ "mathematical constant 3.141592... pi", "mathematical constant pi" },
uccode=0x3A0,
@@ -10122,7 +10204,6 @@ characters.data={
description="GREEK SMALL LETTER RHO",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="rho",
uccode=0x3A1,
unicodeslot=0x3C1,
@@ -10134,9 +10215,8 @@ characters.data={
description="GREEK SMALL LETTER FINAL SIGMA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="varsigma",
- uccode=0x3A3,
+ uccode=0x3C3,
unicodeslot=0x3C2,
},
[0x3C3]={
@@ -10147,7 +10227,6 @@ characters.data={
description="GREEK SMALL LETTER SIGMA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="sigma",
uccode=0x3A3,
unicodeslot=0x3C3,
@@ -10160,7 +10239,6 @@ characters.data={
description="GREEK SMALL LETTER TAU",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="tau",
uccode=0x3A4,
unicodeslot=0x3C4,
@@ -10173,7 +10251,6 @@ characters.data={
description="GREEK SMALL LETTER UPSILON",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="upsilon",
uccode=0x3A5,
unicodeslot=0x3C5,
@@ -10186,7 +10263,6 @@ characters.data={
description="GREEK SMALL LETTER PHI",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="varphi",
uccode=0x3A6,
unicodeslot=0x3C6,
@@ -10199,7 +10275,6 @@ characters.data={
description="GREEK SMALL LETTER CHI",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="chi",
uccode=0x3A7,
unicodeslot=0x3C7,
@@ -10212,7 +10287,6 @@ characters.data={
description="GREEK SMALL LETTER PSI",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="psi",
uccode=0x3A8,
unicodeslot=0x3C8,
@@ -10225,7 +10299,6 @@ characters.data={
description="GREEK SMALL LETTER OMEGA",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="omega",
uccode=0x3A9,
unicodeslot=0x3C9,
@@ -10294,6 +10367,7 @@ characters.data={
category="lu",
description="GREEK CAPITAL KAI SYMBOL",
direction="l",
+ lccode=0x3D7,
linebreak="al",
unicodeslot=0x3CF,
},
@@ -10306,7 +10380,7 @@ characters.data={
linebreak="al",
specials={ "compat", 0x3B2 },
synonyms={ "curled beta" },
- uccode=0x392,
+ uccode=0x3B2,
unicodeslot=0x3D0,
},
[0x3D1]={
@@ -10316,11 +10390,10 @@ characters.data={
description="GREEK THETA SYMBOL",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="varTheta",
specials={ "compat", 0x3B8 },
synonyms={ "script theta" },
- uccode=0x398,
+ uccode=0x3B8,
unicodeslot=0x3D1,
},
[0x3D2]={
@@ -10357,10 +10430,9 @@ characters.data={
description="GREEK PHI SYMBOL",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="phi",
specials={ "compat", 0x3C6 },
- uccode=0x3A6,
+ uccode=0x3C6,
unicodeslot=0x3D5,
},
[0x3D6]={
@@ -10370,11 +10442,10 @@ characters.data={
description="GREEK PI SYMBOL",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="varpi",
specials={ "compat", 0x3C0 },
synonyms={ "omega pi" },
- uccode=0x3A0,
+ uccode=0x3C0,
unicodeslot=0x3D6,
},
[0x3D7]={
@@ -10426,7 +10497,6 @@ characters.data={
direction="l",
lccode=0x3DD,
linebreak="al",
- mathclass="variable",
mathname="digamma",
unicodeslot=0x3DC,
},
@@ -10609,7 +10679,7 @@ characters.data={
linebreak="al",
mathclass="ordinary",
specials={ "compat", 0x3BA },
- uccode=0x39A,
+ uccode=0x3BA,
unicodeslot=0x3F0,
},
[0x3F1]={
@@ -10620,7 +10690,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "compat", 0x3C1 },
- uccode=0x3A1,
+ uccode=0x3C1,
unicodeslot=0x3F1,
},
[0x3F2]={
@@ -10658,11 +10728,10 @@ characters.data={
description="GREEK LUNATE EPSILON SYMBOL",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="epsilon",
specials={ "compat", 0x3B5 },
synonyms={ "straight epsilon" },
- uccode=0x395,
+ uccode=0x3B5,
unicodeslot=0x3F5,
},
[0x3F6]={
@@ -10670,7 +10739,6 @@ characters.data={
description="GREEK REVERSED LUNATE EPSILON SYMBOL",
direction="on",
linebreak="al",
- mathclass="variable",
mathname="backepsilon",
synonyms={ "reversed straight epsilon" },
unicodeslot=0x3F6,
@@ -13652,6 +13720,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER LHA",
direction="l",
+ lccode=0x515,
linebreak="al",
unicodeslot=0x514,
},
@@ -13666,6 +13735,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER RHA",
direction="l",
+ lccode=0x517,
linebreak="al",
unicodeslot=0x516,
},
@@ -13680,6 +13750,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER YAE",
direction="l",
+ lccode=0x519,
linebreak="al",
unicodeslot=0x518,
},
@@ -13694,6 +13765,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER QA",
direction="l",
+ lccode=0x51B,
linebreak="al",
unicodeslot=0x51A,
},
@@ -13708,6 +13780,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER WE",
direction="l",
+ lccode=0x51D,
linebreak="al",
unicodeslot=0x51C,
},
@@ -13722,6 +13795,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER ALEUT KA",
direction="l",
+ lccode=0x51F,
linebreak="al",
unicodeslot=0x51E,
},
@@ -13736,6 +13810,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK",
direction="l",
+ lccode=0x521,
linebreak="al",
unicodeslot=0x520,
},
@@ -13750,6 +13825,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK",
direction="l",
+ lccode=0x523,
linebreak="al",
unicodeslot=0x522,
},
@@ -13764,6 +13840,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER PE WITH DESCENDER",
direction="l",
+ lccode=0x525,
linebreak="al",
unicodeslot=0x524,
},
@@ -13778,6 +13855,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER",
direction="l",
+ lccode=0x527,
linebreak="al",
unicodeslot=0x526,
},
@@ -13792,6 +13870,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK",
direction="l",
+ lccode=0x529,
linebreak="al",
unicodeslot=0x528,
},
@@ -13806,6 +13885,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER DZZHE",
direction="l",
+ lccode=0x52B,
linebreak="al",
unicodeslot=0x52A,
},
@@ -13820,6 +13900,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER DCHE",
direction="l",
+ lccode=0x52D,
linebreak="al",
unicodeslot=0x52C,
},
@@ -13834,6 +13915,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER EL WITH DESCENDER",
direction="l",
+ lccode=0x52F,
linebreak="al",
unicodeslot=0x52E,
},
@@ -14604,6 +14686,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "compat", 0x565, 0x582 },
+ uccode={ 0x565, 0x582 },
unicodeslot=0x587,
},
[0x588]={
@@ -15681,6 +15764,13 @@ characters.data={
linebreak="cm",
unicodeslot=0x61C,
},
+ [0x61D]={
+ category="po",
+ description="ARABIC END OF TEXT MARK",
+ direction="al",
+ linebreak="ex",
+ unicodeslot=0x61D,
+ },
[0x61E]={
category="po",
contextname="arabictripledot",
@@ -20257,6 +20347,334 @@ characters.data={
linebreak="al",
unicodeslot=0x86A,
},
+ [0x870]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH ATTACHED FATHA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x870,
+ },
+ [0x871]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH ATTACHED TOP RIGHT FATHA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x871,
+ },
+ [0x872]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH RIGHT MIDDLE STROKE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x872,
+ },
+ [0x873]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH LEFT MIDDLE STROKE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x873,
+ },
+ [0x874]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH ATTACHED KASRA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x874,
+ },
+ [0x875]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH ATTACHED BOTTOM RIGHT KASRA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x875,
+ },
+ [0x876]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH ATTACHED ROUND DOT ABOVE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x876,
+ },
+ [0x877]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH ATTACHED RIGHT ROUND DOT",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x877,
+ },
+ [0x878]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH ATTACHED LEFT ROUND DOT",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x878,
+ },
+ [0x879]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH ATTACHED ROUND DOT BELOW",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x879,
+ },
+ [0x87A]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH DOT ABOVE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x87A,
+ },
+ [0x87B]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH ATTACHED TOP RIGHT FATHA AND DOT ABOVE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x87B,
+ },
+ [0x87C]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH RIGHT MIDDLE STROKE AND DOT ABOVE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x87C,
+ },
+ [0x87D]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH ATTACHED BOTTOM RIGHT KASRA AND DOT ABOVE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x87D,
+ },
+ [0x87E]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH ATTACHED TOP RIGHT FATHA AND LEFT RING",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x87E,
+ },
+ [0x87F]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH RIGHT MIDDLE STROKE AND LEFT RING",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x87F,
+ },
+ [0x880]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH ATTACHED BOTTOM RIGHT KASRA AND LEFT RING",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x880,
+ },
+ [0x881]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH ATTACHED RIGHT HAMZA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x881,
+ },
+ [0x882]={
+ arabic="r",
+ category="lo",
+ description="ARABIC LETTER ALEF WITH ATTACHED LEFT HAMZA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x882,
+ },
+ [0x883]={
+ arabic="c",
+ category="lo",
+ description="ARABIC TATWEEL WITH OVERSTRUCK HAMZA",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x883,
+ },
+ [0x884]={
+ arabic="c",
+ category="lo",
+ description="ARABIC TATWEEL WITH OVERSTRUCK WAW",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x884,
+ },
+ [0x885]={
+ arabic="c",
+ category="lo",
+ description="ARABIC TATWEEL WITH TWO DOTS BELOW",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x885,
+ },
+ [0x886]={
+ arabic="d",
+ category="lo",
+ description="ARABIC LETTER THIN YEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x886,
+ },
+ [0x887]={
+ arabic="u",
+ category="lo",
+ description="ARABIC BASELINE ROUND DOT",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x887,
+ },
+ [0x888]={
+ arabic="u",
+ category="sk",
+ description="ARABIC RAISED ROUND DOT",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x888,
+ },
+ [0x889]={
+ arabic="d",
+ category="lo",
+ description="ARABIC LETTER NOON WITH INVERTED SMALL V",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x889,
+ },
+ [0x88A]={
+ arabic="d",
+ category="lo",
+ description="ARABIC LETTER HAH WITH INVERTED SMALL V BELOW",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x88A,
+ },
+ [0x88B]={
+ arabic="d",
+ category="lo",
+ description="ARABIC LETTER TAH WITH DOT BELOW",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x88B,
+ },
+ [0x88C]={
+ arabic="d",
+ category="lo",
+ description="ARABIC LETTER TAH WITH THREE DOTS BELOW",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x88C,
+ },
+ [0x88D]={
+ arabic="d",
+ category="lo",
+ description="ARABIC LETTER KEHEH WITH TWO DOTS VERTICALLY BELOW",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x88D,
+ },
+ [0x88E]={
+ arabic="r",
+ category="lo",
+ description="ARABIC VERTICAL TAIL",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x88E,
+ },
+ [0x890]={
+ arabic="u",
+ category="cf",
+ description="ARABIC POUND MARK ABOVE",
+ direction="an",
+ linebreak="al",
+ unicodeslot=0x890,
+ },
+ [0x891]={
+ arabic="u",
+ category="cf",
+ description="ARABIC PIASTRE MARK ABOVE",
+ direction="an",
+ linebreak="al",
+ unicodeslot=0x891,
+ },
+ [0x898]={
+ category="mn",
+ combining=0xE6,
+ description="ARABIC SMALL HIGH WORD AL-JUZ",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x898,
+ },
+ [0x899]={
+ category="mn",
+ combining=0xDC,
+ description="ARABIC SMALL LOW WORD ISHMAAM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x899,
+ },
+ [0x89A]={
+ category="mn",
+ combining=0xDC,
+ description="ARABIC SMALL LOW WORD IMAALA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x89A,
+ },
+ [0x89B]={
+ category="mn",
+ combining=0xDC,
+ description="ARABIC SMALL LOW WORD TASHEEL",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x89B,
+ },
+ [0x89C]={
+ category="mn",
+ combining=0xE6,
+ description="ARABIC MADDA WAAJIB",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x89C,
+ },
+ [0x89D]={
+ category="mn",
+ combining=0xE6,
+ description="ARABIC SUPERSCRIPT ALEF MOKHASSAS",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x89D,
+ },
+ [0x89E]={
+ category="mn",
+ combining=0xE6,
+ description="ARABIC DOUBLED MADDA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x89E,
+ },
+ [0x89F]={
+ category="mn",
+ combining=0xE6,
+ description="ARABIC HALF MADDA OVER MADDA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x89F,
+ },
[0x8A0]={
arabic="d",
category="lo",
@@ -20425,6 +20843,14 @@ characters.data={
linebreak="al",
unicodeslot=0x8B4,
},
+ [0x8B5]={
+ arabic="d",
+ category="lo",
+ description="ARABIC LETTER QAF WITH DOT BELOW AND NO DOTS ABOVE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x8B5,
+ },
[0x8B6]={
arabic="d",
category="lo",
@@ -20569,6 +20995,93 @@ characters.data={
linebreak="al",
unicodeslot=0x8C7,
},
+ [0x8C8]={
+ arabic="d",
+ category="lo",
+ description="ARABIC LETTER GRAF",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x8C8,
+ },
+ [0x8C9]={
+ category="lm",
+ description="ARABIC SMALL FARSI YEH",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0x8C9,
+ },
+ [0x8CA]={
+ category="mn",
+ combining=0xE6,
+ description="ARABIC SMALL HIGH FARSI YEH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x8CA,
+ },
+ [0x8CB]={
+ category="mn",
+ combining=0xE6,
+ description="ARABIC SMALL HIGH YEH BARREE WITH TWO DOTS BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x8CB,
+ },
+ [0x8CC]={
+ category="mn",
+ combining=0xE6,
+ description="ARABIC SMALL HIGH WORD SAH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x8CC,
+ },
+ [0x8CD]={
+ category="mn",
+ combining=0xE6,
+ description="ARABIC SMALL HIGH ZAH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x8CD,
+ },
+ [0x8CE]={
+ category="mn",
+ combining=0xE6,
+ description="ARABIC LARGE ROUND DOT ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x8CE,
+ },
+ [0x8CF]={
+ category="mn",
+ combining=0xDC,
+ description="ARABIC LARGE ROUND DOT BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x8CF,
+ },
+ [0x8D0]={
+ category="mn",
+ combining=0xDC,
+ description="ARABIC SUKUN BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x8D0,
+ },
+ [0x8D1]={
+ category="mn",
+ combining=0xDC,
+ description="ARABIC LARGE CIRCLE BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x8D1,
+ },
+ [0x8D2]={
+ category="mn",
+ combining=0xDC,
+ description="ARABIC LARGE ROUND DOT INSIDE CIRCLE BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x8D2,
+ },
[0x8D3]={
category="mn",
combining=0xDC,
@@ -22700,7 +23213,6 @@ characters.data={
direction="l",
indic="d",
indicmark="l",
- indicorder="bh",
linebreak="cm",
unicodeslot=0x9C8,
},
@@ -22745,6 +23257,7 @@ characters.data={
direction="l",
indic="c",
linebreak="al",
+ synonyms={ "bangla khanda ta" },
unicodeslot=0x9CE,
},
[0x9D7]={
@@ -22752,7 +23265,8 @@ characters.data={
category="mc",
description="BENGALI AU LENGTH MARK",
direction="l",
- indic="o",
+ indic="d",
+ indicmark="r",
indicorder="ap",
linebreak="cm",
unicodeslot=0x9D7,
@@ -26462,6 +26976,17 @@ characters.data={
linebreak="al",
unicodeslot=0xC39,
},
+ [0xC3C]={
+ category="mn",
+ combining=0x7,
+ description="TELUGU SIGN NUKTA",
+ direction="nsm",
+ indic="o",
+ indicclass="nukta",
+ indicmark="b",
+ linebreak="cm",
+ unicodeslot=0xC3C,
+ },
[0xC3D]={
category="lo",
description="TELUGU SIGN AVAGRAHA",
@@ -26655,6 +27180,15 @@ characters.data={
linebreak="al",
unicodeslot=0xC5A,
},
+ [0xC5D]={
+ category="lo",
+ comment="check indic",
+ description="TELUGU LETTER NAKAARA POLLU",
+ direction="l",
+ indic="i",
+ linebreak="al",
+ unicodeslot=0xC5D,
+ },
[0xC60]={
category="lo",
description="TELUGU LETTER VOCALIC RR",
@@ -27452,6 +27986,15 @@ characters.data={
linebreak="cm",
unicodeslot=0xCD6,
},
+ [0xCDD]={
+ category="lo",
+ comment="check indic",
+ description="KANNADA LETTER NAKAARA POLLU",
+ direction="l",
+ indic="i",
+ linebreak="al",
+ unicodeslot=0xCDD,
+ },
[0xCDE]={
category="lo",
description="KANNADA LETTER FA",
@@ -27592,6 +28135,13 @@ characters.data={
linebreak="al",
unicodeslot=0xCF2,
},
+ [0xCF3]={
+ category="mc",
+ description="KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0xCF3,
+ },
[0xD00]={
category="mn",
description="MALAYALAM SIGN COMBINING ANUSVARA ABOVE",
@@ -28212,6 +28762,7 @@ characters.data={
direction="nsm",
indic="o",
indicclass="halant",
+ indicmark="r",
linebreak="cm",
synonyms={ "malayalam chandrakkala", "malayalam vowel half-u" },
unicodeslot=0xD4D,
@@ -30404,6 +30955,13 @@ characters.data={
linebreak="sa",
unicodeslot=0xECD,
},
+ [0xECE]={
+ category="mn",
+ description="LAO YAMAKKAN",
+ direction="nsm",
+ linebreak="sa",
+ unicodeslot=0xECE,
+ },
[0xED0]={
category="nd",
description="LAO DIGIT ZERO",
@@ -32034,9 +32592,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0x1000,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0x1001]={
category="lo",
@@ -32053,9 +32609,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0x1002,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0x1003]={
category="lo",
@@ -32072,9 +32626,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0x1004,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0x1005]={
category="lo",
@@ -32171,9 +32723,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0x1010,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0x1011]={
category="lo",
@@ -32182,9 +32732,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0x1011,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0x1012]={
category="lo",
@@ -32217,9 +32765,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0x1015,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0x1016]={
category="lo",
@@ -32252,9 +32798,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0x1019,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0x101A]={
category="lo",
@@ -32263,9 +32807,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0x101A,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0x101B]={
category="lo",
@@ -32282,9 +32824,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0x101C,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0x101D]={
category="lo",
@@ -32293,9 +32833,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0x101D,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0x101E]={
category="lo",
@@ -32336,9 +32874,7 @@ characters.data={
indic="i",
linebreak="sa",
unicodeslot=0x1022,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0x1023]={
category="lo",
@@ -32467,9 +33003,7 @@ characters.data={
indicmark="l",
linebreak="sa",
unicodeslot=0x1031,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0x1032]={
category="mn",
@@ -33051,9 +33585,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0x1075,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0x1076]={
category="lo",
@@ -33078,9 +33610,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0x1078,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0x1079]={
category="lo",
@@ -33097,9 +33627,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0x107A,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0x107B]={
category="lo",
@@ -33148,9 +33676,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0x1080,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0x1081]={
category="lo",
@@ -33726,6 +34252,7 @@ characters.data={
category="lu",
description="GEORGIAN CAPITAL LETTER YN",
direction="l",
+ lccode=0x2D27,
linebreak="al",
unicodeslot=0x10C7,
},
@@ -33733,6 +34260,7 @@ characters.data={
category="lu",
description="GEORGIAN CAPITAL LETTER AEN",
direction="l",
+ lccode=0x2D2D,
linebreak="al",
unicodeslot=0x10CD,
},
@@ -39259,6 +39787,7 @@ characters.data={
description="CHEROKEE SMALL LETTER YE",
direction="l",
linebreak="al",
+ uccode=0x13F0,
unicodeslot=0x13F8,
},
[0x13F9]={
@@ -39266,6 +39795,7 @@ characters.data={
description="CHEROKEE SMALL LETTER YI",
direction="l",
linebreak="al",
+ uccode=0x13F1,
unicodeslot=0x13F9,
},
[0x13FA]={
@@ -39273,6 +39803,7 @@ characters.data={
description="CHEROKEE SMALL LETTER YO",
direction="l",
linebreak="al",
+ uccode=0x13F2,
unicodeslot=0x13FA,
},
[0x13FB]={
@@ -39280,6 +39811,7 @@ characters.data={
description="CHEROKEE SMALL LETTER YU",
direction="l",
linebreak="al",
+ uccode=0x13F3,
unicodeslot=0x13FB,
},
[0x13FC]={
@@ -39287,6 +39819,7 @@ characters.data={
description="CHEROKEE SMALL LETTER YV",
direction="l",
linebreak="al",
+ uccode=0x13F4,
unicodeslot=0x13FC,
},
[0x13FD]={
@@ -39294,6 +39827,7 @@ characters.data={
description="CHEROKEE SMALL LETTER MV",
direction="l",
linebreak="al",
+ uccode=0x13F5,
unicodeslot=0x13FD,
},
[0x1400]={
@@ -44695,6 +45229,17 @@ characters.data={
linebreak="al",
unicodeslot=0x170C,
},
+ [0x170D]={
+ category="lo",
+ comment="check indic",
+ description="TAGALOG LETTER RA",
+ direction="l",
+ indic="c",
+ indicclass="ra",
+ indicorder="am",
+ linebreak="al",
+ unicodeslot=0x170D,
+ },
[0x170E]={
category="lo",
description="TAGALOG LETTER LA",
@@ -44745,6 +45290,21 @@ characters.data={
linebreak="cm",
unicodeslot=0x1714,
},
+ [0x1715]={
+ category="mc",
+ combining=0x9,
+ description="TAGALOG SIGN PAMUDPOD",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x1715,
+ },
+ [0x171F]={
+ category="lo",
+ description="TAGALOG LETTER ARCHAIC RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x171F,
+ },
[0x1720]={
category="lo",
description="HANUNOO LETTER A",
@@ -44889,7 +45449,7 @@ characters.data={
category="mn",
combining=0x9,
description="HANUNOO SIGN PAMUDPOD",
- direction="nsm",
+ direction="l",
linebreak="cm",
unicodeslot=0x1734,
},
@@ -46100,6 +46660,13 @@ characters.data={
mongolian="nj",
unicodeslot=0x180E,
},
+ [0x180F]={
+ category="mn",
+ description="MONGOLIAN FREE VARIATION SELECTOR FOUR",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x180F,
+ },
[0x1810]={
category="nd",
description="MONGOLIAN DIGIT ZERO",
@@ -50773,6 +51340,118 @@ characters.data={
linebreak="cm",
unicodeslot=0x1AC0,
},
+ [0x1AC1]={
+ category="mn",
+ combining=0xE6,
+ description="COMBINING LEFT PARENTHESIS ABOVE LEFT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1AC1,
+ },
+ [0x1AC2]={
+ category="mn",
+ combining=0xE6,
+ description="COMBINING RIGHT PARENTHESIS ABOVE RIGHT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1AC2,
+ },
+ [0x1AC3]={
+ category="mn",
+ combining=0xDC,
+ description="COMBINING LEFT PARENTHESIS BELOW LEFT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1AC3,
+ },
+ [0x1AC4]={
+ category="mn",
+ combining=0xDC,
+ description="COMBINING RIGHT PARENTHESIS BELOW RIGHT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1AC4,
+ },
+ [0x1AC5]={
+ category="mn",
+ combining=0xE6,
+ description="COMBINING SQUARE BRACKETS ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1AC5,
+ },
+ [0x1AC6]={
+ category="mn",
+ combining=0xE6,
+ description="COMBINING NUMBER SIGN ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1AC6,
+ },
+ [0x1AC7]={
+ category="mn",
+ combining=0xE6,
+ description="COMBINING INVERTED DOUBLE ARCH ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1AC7,
+ },
+ [0x1AC8]={
+ category="mn",
+ combining=0xE6,
+ description="COMBINING PLUS SIGN ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1AC8,
+ },
+ [0x1AC9]={
+ category="mn",
+ combining=0xE6,
+ description="COMBINING DOUBLE PLUS SIGN ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1AC9,
+ },
+ [0x1ACA]={
+ category="mn",
+ combining=0xDC,
+ description="COMBINING DOUBLE PLUS SIGN BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1ACA,
+ },
+ [0x1ACB]={
+ category="mn",
+ combining=0xE6,
+ description="COMBINING TRIPLE ACUTE ACCENT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1ACB,
+ },
+ [0x1ACC]={
+ category="mn",
+ combining=0xE6,
+ description="COMBINING LATIN SMALL LETTER INSULAR G",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1ACC,
+ },
+ [0x1ACD]={
+ category="mn",
+ combining=0xE6,
+ description="COMBINING LATIN SMALL LETTER INSULAR R",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1ACD,
+ },
+ [0x1ACE]={
+ category="mn",
+ combining=0xE6,
+ description="COMBINING LATIN SMALL LETTER INSULAR T",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1ACE,
+ },
[0x1B00]={
category="mn",
description="BALINESE SIGN ULU RICEM",
@@ -51318,6 +51997,13 @@ characters.data={
linebreak="al",
unicodeslot=0x1B4B,
},
+ [0x1B4C]={
+ category="lo",
+ description="BALINESE LETTER ARCHAIC JNYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1B4C,
+ },
[0x1B50]={
category="nd",
description="BALINESE DIGIT ZERO",
@@ -51642,6 +52328,20 @@ characters.data={
linebreak="al",
unicodeslot=0x1B7C,
},
+ [0x1B7D]={
+ category="po",
+ description="BALINESE PANTI LANTANG",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x1B7D,
+ },
+ [0x1B7E]={
+ category="po",
+ description="BALINESE PAMADA LANTANG",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x1B7E,
+ },
[0x1B80]={
category="mn",
description="SUNDANESE SIGN PANYECEK",
@@ -53347,6 +54047,7 @@ characters.data={
description="CYRILLIC SMALL LETTER ROUNDED VE",
direction="l",
linebreak="al",
+ uccode=0x432,
unicodeslot=0x1C80,
},
[0x1C81]={
@@ -53354,6 +54055,7 @@ characters.data={
description="CYRILLIC SMALL LETTER LONG-LEGGED DE",
direction="l",
linebreak="al",
+ uccode=0x434,
unicodeslot=0x1C81,
},
[0x1C82]={
@@ -53361,6 +54063,7 @@ characters.data={
description="CYRILLIC SMALL LETTER NARROW O",
direction="l",
linebreak="al",
+ uccode=0x43E,
unicodeslot=0x1C82,
},
[0x1C83]={
@@ -53368,6 +54071,7 @@ characters.data={
description="CYRILLIC SMALL LETTER WIDE ES",
direction="l",
linebreak="al",
+ uccode=0x441,
unicodeslot=0x1C83,
},
[0x1C84]={
@@ -53375,6 +54079,7 @@ characters.data={
description="CYRILLIC SMALL LETTER TALL TE",
direction="l",
linebreak="al",
+ uccode=0x442,
unicodeslot=0x1C84,
},
[0x1C85]={
@@ -53382,6 +54087,7 @@ characters.data={
description="CYRILLIC SMALL LETTER THREE-LEGGED TE",
direction="l",
linebreak="al",
+ uccode=0x442,
unicodeslot=0x1C85,
},
[0x1C86]={
@@ -53389,6 +54095,7 @@ characters.data={
description="CYRILLIC SMALL LETTER TALL HARD SIGN",
direction="l",
linebreak="al",
+ uccode=0x44A,
unicodeslot=0x1C86,
},
[0x1C87]={
@@ -53396,6 +54103,7 @@ characters.data={
description="CYRILLIC SMALL LETTER TALL YAT",
direction="l",
linebreak="al",
+ uccode=0x463,
unicodeslot=0x1C87,
},
[0x1C88]={
@@ -53403,12 +54111,14 @@ characters.data={
description="CYRILLIC SMALL LETTER UNBLENDED UK",
direction="l",
linebreak="al",
+ uccode=0xA64B,
unicodeslot=0x1C88,
},
[0x1C90]={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER AN",
direction="l",
+ lccode=0x10D0,
linebreak="al",
unicodeslot=0x1C90,
},
@@ -53416,6 +54126,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER BAN",
direction="l",
+ lccode=0x10D1,
linebreak="al",
unicodeslot=0x1C91,
},
@@ -53423,6 +54134,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER GAN",
direction="l",
+ lccode=0x10D2,
linebreak="al",
unicodeslot=0x1C92,
},
@@ -53430,6 +54142,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER DON",
direction="l",
+ lccode=0x10D3,
linebreak="al",
unicodeslot=0x1C93,
},
@@ -53437,6 +54150,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER EN",
direction="l",
+ lccode=0x10D4,
linebreak="al",
unicodeslot=0x1C94,
},
@@ -53444,6 +54158,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER VIN",
direction="l",
+ lccode=0x10D5,
linebreak="al",
unicodeslot=0x1C95,
},
@@ -53451,6 +54166,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER ZEN",
direction="l",
+ lccode=0x10D6,
linebreak="al",
unicodeslot=0x1C96,
},
@@ -53458,6 +54174,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER TAN",
direction="l",
+ lccode=0x10D7,
linebreak="al",
unicodeslot=0x1C97,
},
@@ -53465,6 +54182,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER IN",
direction="l",
+ lccode=0x10D8,
linebreak="al",
unicodeslot=0x1C98,
},
@@ -53472,6 +54190,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER KAN",
direction="l",
+ lccode=0x10D9,
linebreak="al",
unicodeslot=0x1C99,
},
@@ -53479,6 +54198,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER LAS",
direction="l",
+ lccode=0x10DA,
linebreak="al",
unicodeslot=0x1C9A,
},
@@ -53486,6 +54206,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER MAN",
direction="l",
+ lccode=0x10DB,
linebreak="al",
unicodeslot=0x1C9B,
},
@@ -53493,6 +54214,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER NAR",
direction="l",
+ lccode=0x10DC,
linebreak="al",
unicodeslot=0x1C9C,
},
@@ -53500,6 +54222,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER ON",
direction="l",
+ lccode=0x10DD,
linebreak="al",
unicodeslot=0x1C9D,
},
@@ -53507,6 +54230,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER PAR",
direction="l",
+ lccode=0x10DE,
linebreak="al",
unicodeslot=0x1C9E,
},
@@ -53514,6 +54238,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER ZHAR",
direction="l",
+ lccode=0x10DF,
linebreak="al",
unicodeslot=0x1C9F,
},
@@ -53521,6 +54246,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER RAE",
direction="l",
+ lccode=0x10E0,
linebreak="al",
unicodeslot=0x1CA0,
},
@@ -53528,6 +54254,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER SAN",
direction="l",
+ lccode=0x10E1,
linebreak="al",
unicodeslot=0x1CA1,
},
@@ -53535,6 +54262,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER TAR",
direction="l",
+ lccode=0x10E2,
linebreak="al",
unicodeslot=0x1CA2,
},
@@ -53542,6 +54270,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER UN",
direction="l",
+ lccode=0x10E3,
linebreak="al",
unicodeslot=0x1CA3,
},
@@ -53549,6 +54278,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER PHAR",
direction="l",
+ lccode=0x10E4,
linebreak="al",
unicodeslot=0x1CA4,
},
@@ -53556,6 +54286,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER KHAR",
direction="l",
+ lccode=0x10E5,
linebreak="al",
unicodeslot=0x1CA5,
},
@@ -53563,6 +54294,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER GHAN",
direction="l",
+ lccode=0x10E6,
linebreak="al",
unicodeslot=0x1CA6,
},
@@ -53570,6 +54302,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER QAR",
direction="l",
+ lccode=0x10E7,
linebreak="al",
unicodeslot=0x1CA7,
},
@@ -53577,6 +54310,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER SHIN",
direction="l",
+ lccode=0x10E8,
linebreak="al",
unicodeslot=0x1CA8,
},
@@ -53584,6 +54318,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER CHIN",
direction="l",
+ lccode=0x10E9,
linebreak="al",
unicodeslot=0x1CA9,
},
@@ -53591,6 +54326,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER CAN",
direction="l",
+ lccode=0x10EA,
linebreak="al",
unicodeslot=0x1CAA,
},
@@ -53598,6 +54334,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER JIL",
direction="l",
+ lccode=0x10EB,
linebreak="al",
unicodeslot=0x1CAB,
},
@@ -53605,6 +54342,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER CIL",
direction="l",
+ lccode=0x10EC,
linebreak="al",
unicodeslot=0x1CAC,
},
@@ -53612,6 +54350,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER CHAR",
direction="l",
+ lccode=0x10ED,
linebreak="al",
unicodeslot=0x1CAD,
},
@@ -53619,6 +54358,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER XAN",
direction="l",
+ lccode=0x10EE,
linebreak="al",
unicodeslot=0x1CAE,
},
@@ -53626,6 +54366,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER JHAN",
direction="l",
+ lccode=0x10EF,
linebreak="al",
unicodeslot=0x1CAF,
},
@@ -53633,6 +54374,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER HAE",
direction="l",
+ lccode=0x10F0,
linebreak="al",
unicodeslot=0x1CB0,
},
@@ -53640,6 +54382,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER HE",
direction="l",
+ lccode=0x10F1,
linebreak="al",
unicodeslot=0x1CB1,
},
@@ -53647,6 +54390,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER HIE",
direction="l",
+ lccode=0x10F2,
linebreak="al",
unicodeslot=0x1CB2,
},
@@ -53654,6 +54398,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER WE",
direction="l",
+ lccode=0x10F3,
linebreak="al",
unicodeslot=0x1CB3,
},
@@ -53661,6 +54406,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER HAR",
direction="l",
+ lccode=0x10F4,
linebreak="al",
unicodeslot=0x1CB4,
},
@@ -53668,6 +54414,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER HOE",
direction="l",
+ lccode=0x10F5,
linebreak="al",
unicodeslot=0x1CB5,
},
@@ -53675,6 +54422,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER FI",
direction="l",
+ lccode=0x10F6,
linebreak="al",
unicodeslot=0x1CB6,
},
@@ -53682,6 +54430,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER YN",
direction="l",
+ lccode=0x10F7,
linebreak="al",
unicodeslot=0x1CB7,
},
@@ -53689,6 +54438,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER ELIFI",
direction="l",
+ lccode=0x10F8,
linebreak="al",
unicodeslot=0x1CB8,
},
@@ -53696,6 +54446,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER TURNED GAN",
direction="l",
+ lccode=0x10F9,
linebreak="al",
unicodeslot=0x1CB9,
},
@@ -53703,6 +54454,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER AIN",
direction="l",
+ lccode=0x10FA,
linebreak="al",
unicodeslot=0x1CBA,
},
@@ -53710,6 +54462,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER AEN",
direction="l",
+ lccode=0x10FD,
linebreak="al",
unicodeslot=0x1CBD,
},
@@ -53717,6 +54470,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER HARD SIGN",
direction="l",
+ lccode=0x10FE,
linebreak="al",
unicodeslot=0x1CBE,
},
@@ -53724,6 +54478,7 @@ characters.data={
category="lu",
description="GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN",
direction="l",
+ lccode=0x10FF,
linebreak="al",
unicodeslot=0x1CBF,
},
@@ -55706,7 +56461,7 @@ characters.data={
combining=0xEA,
description="COMBINING DOUBLE CIRCUMFLEX ABOVE",
direction="nsm",
- linebreak="cm",
+ linebreak="gl",
unicodeslot=0x1DCD,
},
[0x1DCE]={
@@ -56061,6 +56816,14 @@ characters.data={
linebreak="cm",
unicodeslot=0x1DF9,
},
+ [0x1DFA]={
+ category="mn",
+ combining=0xDA,
+ description="COMBINING DOT BELOW LEFT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1DFA,
+ },
[0x1DFB]={
category="mn",
combining=0xE6,
@@ -56074,7 +56837,7 @@ characters.data={
combining=0xE9,
description="COMBINING DOUBLE INVERTED BREVE BELOW",
direction="nsm",
- linebreak="cm",
+ linebreak="gl",
unicodeslot=0x1DFC,
},
[0x1DFD]={
@@ -57759,6 +58522,7 @@ characters.data={
linebreak="al",
shcode=0x68,
specials={ "char", 0x68, 0x331 },
+ uccode={ 0x68, 0x331 },
unicodeslot=0x1E96,
},
[0x1E97]={
@@ -57769,6 +58533,7 @@ characters.data={
linebreak="al",
shcode=0x74,
specials={ "char", 0x74, 0x308 },
+ uccode={ 0x74, 0x308 },
unicodeslot=0x1E97,
},
[0x1E98]={
@@ -57779,6 +58544,7 @@ characters.data={
linebreak="al",
shcode=0x77,
specials={ "char", 0x77, 0x30A },
+ uccode={ 0x77, 0x30A },
unicodeslot=0x1E98,
},
[0x1E99]={
@@ -57789,6 +58555,7 @@ characters.data={
linebreak="al",
shcode=0x79,
specials={ "char", 0x79, 0x30A },
+ uccode={ 0x79, 0x30A },
unicodeslot=0x1E99,
},
[0x1E9A]={
@@ -57799,6 +58566,7 @@ characters.data={
linebreak="al",
shcode=0x61,
specials={ "compat", 0x61, 0x2BE },
+ uccode={ 0x61, 0x2BE },
unicodeslot=0x1E9A,
},
[0x1E9B]={
@@ -57808,7 +58576,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "char", 0x17F, 0x307 },
- uccode=0x1E60,
+ uccode=0x1E61,
unicodeslot=0x1E9B,
},
[0x1E9C]={
@@ -58923,6 +59691,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER MIDDLE-WELSH LL",
direction="l",
+ lccode=0x1EFB,
linebreak="al",
unicodeslot=0x1EFA,
},
@@ -58937,6 +59706,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER MIDDLE-WELSH V",
direction="l",
+ lccode=0x1EFD,
linebreak="al",
unicodeslot=0x1EFC,
},
@@ -58951,6 +59721,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER Y WITH LOOP",
direction="l",
+ lccode=0x1EFF,
linebreak="al",
unicodeslot=0x1EFE,
},
@@ -59761,6 +60532,7 @@ characters.data={
linebreak="al",
shcode=0x3C5,
specials={ "char", 0x3C5, 0x313 },
+ uccode={ 0x3C5, 0x313 },
unicodeslot=0x1F50,
},
[0x1F51]={
@@ -59782,6 +60554,7 @@ characters.data={
linebreak="al",
shcode=0x3C5,
specials={ "char", 0x1F50, 0x300 },
+ uccode={ 0x3C5, 0x313, 0x300 },
unicodeslot=0x1F52,
},
[0x1F53]={
@@ -59803,6 +60576,7 @@ characters.data={
linebreak="al",
shcode=0x3C5,
specials={ "char", 0x1F50, 0x301 },
+ uccode={ 0x3C5, 0x313, 0x301 },
unicodeslot=0x1F54,
},
[0x1F55]={
@@ -59824,6 +60598,7 @@ characters.data={
linebreak="al",
shcode=0x3C5,
specials={ "char", 0x1F50, 0x342 },
+ uccode={ 0x3C5, 0x313, 0x342 },
unicodeslot=0x1F56,
},
[0x1F57]={
@@ -60219,7 +60994,7 @@ characters.data={
linebreak="al",
shcode=0x3B1,
specials={ "char", 0x1F00, 0x345 },
- uccode=0x1F88,
+ uccode={ 0x1F00, 0x3B9 },
unicodeslot=0x1F80,
},
[0x1F81]={
@@ -60230,7 +61005,7 @@ characters.data={
linebreak="al",
shcode=0x3B1,
specials={ "char", 0x1F01, 0x345 },
- uccode=0x1F89,
+ uccode={ 0x1F01, 0x3B9 },
unicodeslot=0x1F81,
},
[0x1F82]={
@@ -60241,7 +61016,7 @@ characters.data={
linebreak="al",
shcode=0x3B1,
specials={ "char", 0x1F02, 0x345 },
- uccode=0x1F8A,
+ uccode={ 0x1F02, 0x3B9 },
unicodeslot=0x1F82,
},
[0x1F83]={
@@ -60252,7 +61027,7 @@ characters.data={
linebreak="al",
shcode=0x3B1,
specials={ "char", 0x1F03, 0x345 },
- uccode=0x1F8B,
+ uccode={ 0x1F03, 0x3B9 },
unicodeslot=0x1F83,
},
[0x1F84]={
@@ -60263,7 +61038,7 @@ characters.data={
linebreak="al",
shcode=0x3B1,
specials={ "char", 0x1F04, 0x345 },
- uccode=0x1F8C,
+ uccode={ 0x1F04, 0x3B9 },
unicodeslot=0x1F84,
},
[0x1F85]={
@@ -60274,7 +61049,7 @@ characters.data={
linebreak="al",
shcode=0x3B1,
specials={ "char", 0x1F05, 0x345 },
- uccode=0x1F8D,
+ uccode={ 0x1F05, 0x3B9 },
unicodeslot=0x1F85,
},
[0x1F86]={
@@ -60285,7 +61060,7 @@ characters.data={
linebreak="al",
shcode=0x3B1,
specials={ "char", 0x1F06, 0x345 },
- uccode=0x1F8E,
+ uccode={ 0x1F06, 0x3B9 },
unicodeslot=0x1F86,
},
[0x1F87]={
@@ -60296,7 +61071,7 @@ characters.data={
linebreak="al",
shcode=0x3B1,
specials={ "char", 0x1F07, 0x345 },
- uccode=0x1F8F,
+ uccode={ 0x1F07, 0x3B9 },
unicodeslot=0x1F87,
},
[0x1F88]={
@@ -60395,7 +61170,7 @@ characters.data={
linebreak="al",
shcode=0x3B7,
specials={ "char", 0x1F20, 0x345 },
- uccode=0x1F98,
+ uccode={ 0x1F20, 0x3B9 },
unicodeslot=0x1F90,
},
[0x1F91]={
@@ -60406,7 +61181,7 @@ characters.data={
linebreak="al",
shcode=0x3B7,
specials={ "char", 0x1F21, 0x345 },
- uccode=0x1F99,
+ uccode={ 0x1F21, 0x3B9 },
unicodeslot=0x1F91,
},
[0x1F92]={
@@ -60417,7 +61192,7 @@ characters.data={
linebreak="al",
shcode=0x3B7,
specials={ "char", 0x1F22, 0x345 },
- uccode=0x1F9A,
+ uccode={ 0x1F22, 0x3B9 },
unicodeslot=0x1F92,
},
[0x1F93]={
@@ -60428,7 +61203,7 @@ characters.data={
linebreak="al",
shcode=0x3B7,
specials={ "char", 0x1F23, 0x345 },
- uccode=0x1F9B,
+ uccode={ 0x1F23, 0x3B9 },
unicodeslot=0x1F93,
},
[0x1F94]={
@@ -60439,7 +61214,7 @@ characters.data={
linebreak="al",
shcode=0x3B7,
specials={ "char", 0x1F24, 0x345 },
- uccode=0x1F9C,
+ uccode={ 0x1F24, 0x3B9 },
unicodeslot=0x1F94,
},
[0x1F95]={
@@ -60450,7 +61225,7 @@ characters.data={
linebreak="al",
shcode=0x3B7,
specials={ "char", 0x1F25, 0x345 },
- uccode=0x1F9D,
+ uccode={ 0x1F25, 0x3B9 },
unicodeslot=0x1F95,
},
[0x1F96]={
@@ -60461,7 +61236,7 @@ characters.data={
linebreak="al",
shcode=0x3B7,
specials={ "char", 0x1F26, 0x345 },
- uccode=0x1F9E,
+ uccode={ 0x1F26, 0x3B9 },
unicodeslot=0x1F96,
},
[0x1F97]={
@@ -60472,7 +61247,7 @@ characters.data={
linebreak="al",
shcode=0x3B7,
specials={ "char", 0x1F27, 0x345 },
- uccode=0x1F9F,
+ uccode={ 0x1F27, 0x3B9 },
unicodeslot=0x1F97,
},
[0x1F98]={
@@ -60571,7 +61346,7 @@ characters.data={
linebreak="al",
shcode=0x3C9,
specials={ "char", 0x1F60, 0x345 },
- uccode=0x1FA8,
+ uccode={ 0x1F60, 0x3B9 },
unicodeslot=0x1FA0,
},
[0x1FA1]={
@@ -60582,7 +61357,7 @@ characters.data={
linebreak="al",
shcode=0x3C9,
specials={ "char", 0x1F61, 0x345 },
- uccode=0x1FA9,
+ uccode={ 0x1F61, 0x3B9 },
unicodeslot=0x1FA1,
},
[0x1FA2]={
@@ -60593,7 +61368,7 @@ characters.data={
linebreak="al",
shcode=0x3C9,
specials={ "char", 0x1F62, 0x345 },
- uccode=0x1FAA,
+ uccode={ 0x1F62, 0x3B9 },
unicodeslot=0x1FA2,
},
[0x1FA3]={
@@ -60604,7 +61379,7 @@ characters.data={
linebreak="al",
shcode=0x3C9,
specials={ "char", 0x1F63, 0x345 },
- uccode=0x1FAB,
+ uccode={ 0x1F63, 0x3B9 },
unicodeslot=0x1FA3,
},
[0x1FA4]={
@@ -60615,7 +61390,7 @@ characters.data={
linebreak="al",
shcode=0x3C9,
specials={ "char", 0x1F64, 0x345 },
- uccode=0x1FAC,
+ uccode={ 0x1F64, 0x3B9 },
unicodeslot=0x1FA4,
},
[0x1FA5]={
@@ -60626,7 +61401,7 @@ characters.data={
linebreak="al",
shcode=0x3C9,
specials={ "char", 0x1F65, 0x345 },
- uccode=0x1FAD,
+ uccode={ 0x1F65, 0x3B9 },
unicodeslot=0x1FA5,
},
[0x1FA6]={
@@ -60637,7 +61412,7 @@ characters.data={
linebreak="al",
shcode=0x3C9,
specials={ "char", 0x1F66, 0x345 },
- uccode=0x1FAE,
+ uccode={ 0x1F66, 0x3B9 },
unicodeslot=0x1FA6,
},
[0x1FA7]={
@@ -60648,7 +61423,7 @@ characters.data={
linebreak="al",
shcode=0x3C9,
specials={ "char", 0x1F67, 0x345 },
- uccode=0x1FAF,
+ uccode={ 0x1F67, 0x3B9 },
unicodeslot=0x1FA7,
},
[0x1FA8]={
@@ -60769,6 +61544,7 @@ characters.data={
linebreak="al",
shcode=0x3B1,
specials={ "char", 0x1F70, 0x345 },
+ uccode={ 0x1F70, 0x3B9 },
unicodeslot=0x1FB2,
},
[0x1FB3]={
@@ -60779,7 +61555,7 @@ characters.data={
linebreak="al",
shcode=0x3B1,
specials={ "char", 0x3B1, 0x345 },
- uccode=0x1FBC,
+ uccode={ 0x3B1, 0x3B9 },
unicodeslot=0x1FB3,
},
[0x1FB4]={
@@ -60790,6 +61566,7 @@ characters.data={
linebreak="al",
shcode=0x3B1,
specials={ "char", 0x3AC, 0x345 },
+ uccode={ 0x3AC, 0x3B9 },
unicodeslot=0x1FB4,
},
[0x1FB6]={
@@ -60800,6 +61577,7 @@ characters.data={
linebreak="al",
shcode=0x3B1,
specials={ "char", 0x3B1, 0x342 },
+ uccode={ 0x3B1, 0x342 },
unicodeslot=0x1FB6,
},
[0x1FB7]={
@@ -60810,6 +61588,7 @@ characters.data={
linebreak="al",
shcode=0x3B1,
specials={ "char", 0x1FB6, 0x345 },
+ uccode={ 0x3B1, 0x342, 0x3B9 },
unicodeslot=0x1FB7,
},
[0x1FB8]={
@@ -60883,7 +61662,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "char", 0x3B9 },
- uccode=0x399,
+ uccode=0x3B9,
unicodeslot=0x1FBE,
},
[0x1FBF]={
@@ -60921,6 +61700,7 @@ characters.data={
linebreak="al",
shcode=0x3B7,
specials={ "char", 0x1F74, 0x345 },
+ uccode={ 0x1F74, 0x3B9 },
unicodeslot=0x1FC2,
},
[0x1FC3]={
@@ -60931,7 +61711,7 @@ characters.data={
linebreak="al",
shcode=0x3B7,
specials={ "char", 0x3B7, 0x345 },
- uccode=0x1FCC,
+ uccode={ 0x3B7, 0x3B9 },
unicodeslot=0x1FC3,
},
[0x1FC4]={
@@ -60942,6 +61722,7 @@ characters.data={
linebreak="al",
shcode=0x3B7,
specials={ "char", 0x3AE, 0x345 },
+ uccode={ 0x3AE, 0x3B9 },
unicodeslot=0x1FC4,
},
[0x1FC6]={
@@ -60952,6 +61733,7 @@ characters.data={
linebreak="al",
shcode=0x3B7,
specials={ "char", 0x3B7, 0x342 },
+ uccode={ 0x3B7, 0x342 },
unicodeslot=0x1FC6,
},
[0x1FC7]={
@@ -60962,6 +61744,7 @@ characters.data={
linebreak="al",
shcode=0x3B7,
specials={ "char", 0x1FC6, 0x345 },
+ uccode={ 0x3B7, 0x342, 0x3B9 },
unicodeslot=0x1FC7,
},
[0x1FC8]={
@@ -61076,6 +61859,7 @@ characters.data={
linebreak="al",
shcode=0x3B9,
specials={ "char", 0x3CA, 0x300 },
+ uccode={ 0x3B9, 0x308, 0x300 },
unicodeslot=0x1FD2,
},
[0x1FD3]={
@@ -61086,6 +61870,7 @@ characters.data={
linebreak="al",
shcode=0x3B9,
specials={ "char", 0x390 },
+ uccode={ 0x3B9, 0x308, 0x301 },
unicodeslot=0x1FD3,
},
[0x1FD6]={
@@ -61096,6 +61881,7 @@ characters.data={
linebreak="al",
shcode=0x3B9,
specials={ "char", 0x3B9, 0x342 },
+ uccode={ 0x3B9, 0x342 },
unicodeslot=0x1FD6,
},
[0x1FD7]={
@@ -61106,6 +61892,7 @@ characters.data={
linebreak="al",
shcode=0x3B9,
specials={ "char", 0x3CA, 0x342 },
+ uccode={ 0x3B9, 0x308, 0x342 },
unicodeslot=0x1FD7,
},
[0x1FD8]={
@@ -61209,6 +61996,7 @@ characters.data={
linebreak="al",
shcode=0x3C5,
specials={ "char", 0x3CB, 0x300 },
+ uccode={ 0x3C5, 0x308, 0x300 },
unicodeslot=0x1FE2,
},
[0x1FE3]={
@@ -61219,6 +62007,7 @@ characters.data={
linebreak="al",
shcode=0x3C5,
specials={ "char", 0x3B0 },
+ uccode={ 0x3C5, 0x308, 0x301 },
unicodeslot=0x1FE3,
},
[0x1FE4]={
@@ -61229,6 +62018,7 @@ characters.data={
linebreak="al",
shcode=0x3C1,
specials={ "char", 0x3C1, 0x313 },
+ uccode={ 0x3C1, 0x313 },
unicodeslot=0x1FE4,
},
[0x1FE5]={
@@ -61250,6 +62040,7 @@ characters.data={
linebreak="al",
shcode=0x3C5,
specials={ "char", 0x3C5, 0x342 },
+ uccode={ 0x3C5, 0x342 },
unicodeslot=0x1FE6,
},
[0x1FE7]={
@@ -61260,6 +62051,7 @@ characters.data={
linebreak="al",
shcode=0x3C5,
specials={ "char", 0x3CB, 0x342 },
+ uccode={ 0x3C5, 0x308, 0x342 },
unicodeslot=0x1FE7,
},
[0x1FE8]={
@@ -61352,6 +62144,7 @@ characters.data={
linebreak="al",
shcode=0x3C9,
specials={ "char", 0x1F7C, 0x345 },
+ uccode={ 0x1F7C, 0x3B9 },
unicodeslot=0x1FF2,
},
[0x1FF3]={
@@ -61362,7 +62155,7 @@ characters.data={
linebreak="al",
shcode=0x3C9,
specials={ "char", 0x3C9, 0x345 },
- uccode=0x1FFC,
+ uccode={ 0x3C9, 0x3B9 },
unicodeslot=0x1FF3,
},
[0x1FF4]={
@@ -61373,6 +62166,7 @@ characters.data={
linebreak="al",
shcode=0x3C9,
specials={ "char", 0x3CE, 0x345 },
+ uccode={ 0x3CE, 0x3B9 },
unicodeslot=0x1FF4,
},
[0x1FF6]={
@@ -61383,6 +62177,7 @@ characters.data={
linebreak="al",
shcode=0x3C9,
specials={ "char", 0x3C9, 0x342 },
+ uccode={ 0x3C9, 0x342 },
unicodeslot=0x1FF6,
},
[0x1FF7]={
@@ -61393,6 +62188,7 @@ characters.data={
linebreak="al",
shcode=0x3C9,
specials={ "char", 0x1FF6, 0x345 },
+ uccode={ 0x3C9, 0x342, 0x3B9 },
unicodeslot=0x1FF7,
},
[0x1FF8]={
@@ -61647,7 +62443,8 @@ characters.data={
[0x2012]={
adobename="figuredash",
category="pd",
- contextname="textminus",
+ contextname="figuredash",
+ contextspec={ "textminus" },
description="FIGURE DASH",
direction="on",
linebreak="ba",
@@ -61701,7 +62498,7 @@ characters.data={
name="Vert",
},
{
- class="nothing",
+ class="ordinary",
name="Arrowvert",
},
{
@@ -61709,6 +62506,10 @@ characters.data={
name="lVert",
},
{
+ class="middle",
+ name="mVert",
+ },
+ {
class="close",
name="rVert",
},
@@ -61824,7 +62625,7 @@ characters.data={
name="dagger",
},
{
- class="box",
+ class="ordinary",
name="dag",
},
},
@@ -61845,7 +62646,7 @@ characters.data={
name="ddagger",
},
{
- class="box",
+ class="ordinary",
name="ddag",
},
},
@@ -61902,11 +62703,11 @@ characters.data={
linebreak="in",
mathspec={
{
- class="inner",
+ class="ellipsis",
name="ldots",
},
{
- class="inner",
+ class="ellipsis",
name="dots",
},
},
@@ -62016,7 +62817,7 @@ characters.data={
description="PRIME",
direction="et",
linebreak="po",
- mathclass="nothing",
+ mathclass="prime",
mathname="prime",
synonyms={ "feet", "minutes" },
unicodeslot=0x2032,
@@ -62028,7 +62829,7 @@ characters.data={
description="DOUBLE PRIME",
direction="et",
linebreak="po",
- mathclass="nothing",
+ mathclass="prime",
mathname="doubleprime",
specials={ "compat", 0x2032, 0x2032 },
synonyms={ "inches", "seconds" },
@@ -62039,7 +62840,7 @@ characters.data={
description="TRIPLE PRIME",
direction="et",
linebreak="po",
- mathclass="nothing",
+ mathclass="prime",
mathname="tripleprime",
specials={ "compat", 0x2032, 0x2032, 0x2032 },
unicodeslot=0x2034,
@@ -62051,7 +62852,7 @@ characters.data={
description="REVERSED PRIME",
direction="on",
linebreak="po",
- mathclass="nothing",
+ mathclass="prime",
mathname="reversedprime",
unicodeslot=0x2035,
},
@@ -62060,7 +62861,7 @@ characters.data={
description="REVERSED DOUBLE PRIME",
direction="on",
linebreak="po",
- mathclass="nothing",
+ mathclass="prime",
mathname="reverseddoubleprime",
specials={ "compat", 0x2035, 0x2035 },
unicodeslot=0x2036,
@@ -62070,7 +62871,7 @@ characters.data={
description="REVERSED TRIPLE PRIME",
direction="on",
linebreak="po",
- mathclass="nothing",
+ mathclass="prime",
mathname="reversedtripleprime",
specials={ "compat", 0x2035, 0x2035, 0x2035 },
unicodeslot=0x2037,
@@ -62203,16 +63004,6 @@ characters.data={
description="FRACTION SLASH",
direction="cs",
linebreak="is",
- mathspec={
- {
- class="ordinary",
- name="slash",
- },
- {
- class="close",
- name="solidus",
- },
- },
synonyms={ "solidus" },
unicodeslot=0x2044,
},
@@ -62354,8 +63145,8 @@ characters.data={
category="po",
description="QUADRUPLE PRIME",
direction="on",
- linebreak="al",
- mathclass="nothing",
+ linebreak="po",
+ mathclass="prime",
mathname="quadrupleprime",
specials={ "compat", 0x2032, 0x2032, 0x2032, 0x2032 },
unicodeslot=0x2057,
@@ -62431,34 +63222,43 @@ characters.data={
},
[0x2061]={
category="cf",
- comment="maybe: nulloperator",
+ comment="ordinary",
description="FUNCTION APPLICATION",
direction="bn",
linebreak="al",
+ mathclass="ghost",
+ mathname="applyfunction",
unicodeslot=0x2061,
},
[0x2062]={
category="cf",
+ comment="binary",
description="INVISIBLE TIMES",
direction="bn",
linebreak="al",
+ mathclass="ghost",
+ mathname="invisibletimes",
unicodeslot=0x2062,
},
[0x2063]={
category="cf",
+ comment="punctuation",
description="INVISIBLE SEPARATOR",
direction="bn",
linebreak="al",
- mathclass="binary",
- mathname="invisibletimes",
+ mathclass="ghost",
+ mathname="invisiblecomma",
synonyms={ "invisible comma" },
unicodeslot=0x2063,
},
[0x2064]={
category="cf",
+ comment="binary",
description="INVISIBLE PLUS",
direction="bn",
linebreak="al",
+ mathclass="ghost",
+ mathname="invisibleplus",
unicodeslot=0x2064,
},
[0x2066]={
@@ -63173,6 +63973,13 @@ characters.data={
linebreak="pr",
unicodeslot=0x20BF,
},
+ [0x20C0]={
+ category="sc",
+ description="SOM SIGN",
+ direction="et",
+ linebreak="po",
+ unicodeslot=0x20C0,
+ },
[0x20D0]={
category="mn",
combining=0xE6,
@@ -63238,6 +64045,7 @@ characters.data={
linebreak="cm",
mathclass="topaccent",
mathname="vec",
+ mathstretch="h",
synonyms={ "vector" },
unicodeslot=0x20D7,
},
@@ -63305,7 +64113,7 @@ characters.data={
description="COMBINING ENCLOSING SQUARE",
direction="nsm",
linebreak="cm",
- mathclass="default",
+ mathclass="ordinary",
mathname="bigsquare",
unicodeslot=0x20DE,
},
@@ -63314,7 +64122,7 @@ characters.data={
description="COMBINING ENCLOSING DIAMOND",
direction="nsm",
linebreak="cm",
- mathclass="default",
+ mathclass="ordinary",
mathname="bigdiamond",
unicodeslot=0x20DF,
},
@@ -63479,7 +64287,7 @@ characters.data={
description="DOUBLE-STRUCK CAPITAL C",
direction="l",
linebreak="al",
- mathclass="variable",
+ mathgroup="constant set",
mathname="complexes",
specials={ "font", 0x43 },
synonyms={ "complex numbers", "the set of complex numbers" },
@@ -63528,7 +64336,6 @@ characters.data={
description="EULER CONSTANT",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="Eulerconst",
specials={ "compat", 0x190 },
unicodeslot=0x2107,
@@ -63567,6 +64374,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x48 },
unicodeslot=0x210B,
+ variants=variants_style,
visual="it",
},
[0x210C]={
@@ -63591,7 +64399,6 @@ characters.data={
description="PLANCK CONSTANT",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="Plankconst",
specials={ "font", 0x68 },
unicodeslot=0x210E,
@@ -63603,7 +64410,7 @@ characters.data={
linebreak="al",
mathspec={
{
- class="variable",
+ class="ordinary",
name="hslash",
},
{
@@ -63621,6 +64428,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x49 },
unicodeslot=0x2110,
+ variants=variants_style,
visual="it",
},
[0x2111]={
@@ -63629,7 +64437,6 @@ characters.data={
description="BLACK-LETTER CAPITAL I",
direction="l",
linebreak="al",
- mathclass="default",
mathname="Im",
specials={ "font", 0x49 },
synonyms={ "imaginary part" },
@@ -63643,6 +64450,7 @@ characters.data={
specials={ "font", 0x4C },
synonyms={ "laplace transform" },
unicodeslot=0x2112,
+ variants=variants_style,
visual="it",
},
[0x2113]={
@@ -63653,7 +64461,7 @@ characters.data={
description="SCRIPT SMALL L",
direction="l",
linebreak="ai",
- mathclass="default",
+ mathclass="ordinary",
mathname="ell",
specials={ "font", 0x6C },
synonyms={ "liter" },
@@ -63672,7 +64480,7 @@ characters.data={
description="DOUBLE-STRUCK CAPITAL N",
direction="l",
linebreak="al",
- mathclass="variable",
+ mathgroup="constant set",
mathname="naturalnumbers",
specials={ "font", 0x4E },
synonyms={ "natural number" },
@@ -63704,7 +64512,6 @@ characters.data={
description="SCRIPT CAPITAL P",
direction="on",
linebreak="al",
- mathclass="default",
mathname="wp",
synonyms={ "weierstrass elliptic function" },
unicodeslot=0x2118,
@@ -63714,7 +64521,7 @@ characters.data={
description="DOUBLE-STRUCK CAPITAL P",
direction="l",
linebreak="al",
- mathclass="variable",
+ mathgroup="constant set",
mathname="primes",
specials={ "font", 0x50 },
unicodeslot=0x2119,
@@ -63724,7 +64531,7 @@ characters.data={
description="DOUBLE-STRUCK CAPITAL Q",
direction="l",
linebreak="al",
- mathclass="variable",
+ mathgroup="constant set",
mathname="rationals",
specials={ "font", 0x51 },
synonyms={ "rational numbers", "the set of rational numbers" },
@@ -63738,6 +64545,7 @@ characters.data={
specials={ "font", 0x52 },
synonyms={ "riemann integral" },
unicodeslot=0x211B,
+ variants=variants_style,
visual="it",
},
[0x211C]={
@@ -63746,7 +64554,6 @@ characters.data={
description="BLACK-LETTER CAPITAL R",
direction="l",
linebreak="al",
- mathclass="default",
mathname="Re",
specials={ "font", 0x52 },
synonyms={ "real part" },
@@ -63757,7 +64564,7 @@ characters.data={
description="DOUBLE-STRUCK CAPITAL R",
direction="l",
linebreak="al",
- mathclass="variable",
+ mathgroup="constant set",
mathname="reals",
specials={ "font", 0x52 },
synonyms={ "real numbers", "the set of real numbers" },
@@ -63821,7 +64628,7 @@ characters.data={
description="DOUBLE-STRUCK CAPITAL Z",
direction="l",
linebreak="al",
- mathclass="variable",
+ mathgroup="constant set",
mathname="integers",
specials={ "font", 0x5A },
synonyms={ "integers", "the set of integers" },
@@ -63844,7 +64651,6 @@ characters.data={
direction="l",
lccode=0x3C9,
linebreak="al",
- mathclass="variable",
mathname="ohm",
specials={ "char", 0x3A9 },
unicodeslot=0x2126,
@@ -63855,7 +64661,6 @@ characters.data={
description="INVERTED OHM SIGN",
direction="on",
linebreak="al",
- mathclass="variable",
mathname="mho",
synonyms={ "mho" },
unicodeslot=0x2127,
@@ -63873,7 +64678,6 @@ characters.data={
description="TURNED GREEK SMALL LETTER IOTA",
direction="on",
linebreak="al",
- mathclass="variable",
mathname="turnediota",
synonyms={ "unique element" },
unicodeslot=0x2129,
@@ -63897,7 +64701,6 @@ characters.data={
direction="l",
lccode=0xE5,
linebreak="ai",
- mathclass="variable",
mathname="Angstrom",
specials={ "char", 0xC5 },
unicodeslot=0x212B,
@@ -63910,6 +64713,7 @@ characters.data={
specials={ "font", 0x42 },
synonyms={ "bernoulli function" },
unicodeslot=0x212C,
+ variants=variants_style,
visual="it",
},
[0x212D]={
@@ -63946,6 +64750,7 @@ characters.data={
specials={ "font", 0x45 },
synonyms={ "electromotive force", "emf" },
unicodeslot=0x2130,
+ variants=variants_style,
visual="it",
},
[0x2131]={
@@ -63956,6 +64761,7 @@ characters.data={
specials={ "font", 0x46 },
synonyms={ "fourier transform" },
unicodeslot=0x2131,
+ variants=variants_style,
visual="it",
},
[0x2132]={
@@ -63977,6 +64783,7 @@ characters.data={
specials={ "font", 0x4D },
synonyms={ "german mark pre-wwii", "m-matrix" },
unicodeslot=0x2133,
+ variants=variants_style,
visual="it",
},
[0x2134]={
@@ -63995,7 +64802,7 @@ characters.data={
description="ALEF SYMBOL",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="aleph",
specials={ "compat", 0x5D0 },
synonyms={ "first transfinite cardinal", "first transfinite cardinal countable" },
@@ -64006,7 +64813,7 @@ characters.data={
description="BET SYMBOL",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="beth",
specials={ "compat", 0x5D1 },
synonyms={ "second transfinite cardinal", "second transfinite cardinal continuum" },
@@ -64017,7 +64824,7 @@ characters.data={
description="GIMEL SYMBOL",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="gimel",
specials={ "compat", 0x5D2 },
synonyms={ "third transfinite cardinal" },
@@ -64028,7 +64835,7 @@ characters.data={
description="DALET SYMBOL",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="daleth",
specials={ "compat", 0x5D3 },
synonyms={ "fourth transfinite cardinal" },
@@ -64140,7 +64947,7 @@ characters.data={
description="DOUBLE-STRUCK ITALIC CAPITAL D",
direction="l",
linebreak="al",
- mathclass="nothing",
+ mathclass="differential",
mathname="differentialD",
specials={ "font", 0x44 },
unicodeslot=0x2145,
@@ -64150,7 +64957,7 @@ characters.data={
description="DOUBLE-STRUCK ITALIC SMALL D",
direction="l",
linebreak="al",
- mathclass="nothing",
+ mathclass="differential",
mathname="differentiald",
specials={ "font", 0x64 },
unicodeslot=0x2146,
@@ -64160,7 +64967,7 @@ characters.data={
description="DOUBLE-STRUCK ITALIC SMALL E",
direction="l",
linebreak="al",
- mathclass="nothing",
+ mathclass="exponential",
mathname="exponentiale",
specials={ "font", 0x65 },
unicodeslot=0x2147,
@@ -64170,7 +64977,7 @@ characters.data={
description="DOUBLE-STRUCK ITALIC SMALL I",
direction="l",
linebreak="al",
- mathclass="nothing",
+ mathclass="ordinary",
mathname="imaginaryi",
specials={ "font", 0x69 },
unicodeslot=0x2148,
@@ -64180,7 +64987,7 @@ characters.data={
description="DOUBLE-STRUCK ITALIC SMALL J",
direction="l",
linebreak="al",
- mathclass="nothing",
+ mathclass="ordinary",
mathname="imaginaryj",
specials={ "font", 0x6A },
unicodeslot=0x2149,
@@ -66142,7 +66949,7 @@ characters.data={
description="PARTIAL DIFFERENTIAL",
direction="on",
linebreak="ai",
- mathclass="default",
+ mathclass="differential",
mathname="partial",
unicodeslot=0x2202,
},
@@ -66174,7 +66981,8 @@ characters.data={
description="EMPTY SET",
direction="on",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
+ mathgroup="constant set",
mathname="emptyset",
synonyms={ "null set" },
unicodeslot=0x2205,
@@ -66188,6 +66996,8 @@ characters.data={
description="INCREMENT",
direction="on",
linebreak="al",
+ mathclass="differential",
+ mathname="laplace",
synonyms={ "forward difference", "laplace operator" },
unicodeslot=0x2206,
},
@@ -66198,7 +67008,7 @@ characters.data={
description="NABLA",
direction="on",
linebreak="ai",
- mathclass="default",
+ mathclass="ordinary",
mathname="nabla",
synonyms={ "backward difference", "del" },
unicodeslot=0x2207,
@@ -66339,6 +67149,7 @@ characters.data={
description="MINUS SIGN",
direction="es",
linebreak="pr",
+ mathgroup="binary arithmetic",
mathspec={
{
class="binary",
@@ -66346,6 +67157,7 @@ characters.data={
},
{
class="relation",
+ comment="useless",
name="relbar",
},
},
@@ -66354,6 +67166,7 @@ characters.data={
[0x2213]={
adobename="minusplus",
category="sm",
+ contextname="textmp",
description="MINUS-OR-PLUS SIGN",
direction="et",
linebreak="pr",
@@ -66480,7 +67293,7 @@ characters.data={
description="INFINITY",
direction="on",
linebreak="ai",
- mathclass="default",
+ mathclass="ordinary",
mathname="infty",
unicodeslot=0x221E,
},
@@ -66536,8 +67349,17 @@ characters.data={
description="DIVIDES",
direction="on",
linebreak="ai",
- mathclass="binary",
- mathname="divides",
+ mathspec={
+ {
+ -- class="binary",
+ class="ordinary",
+ name="divides",
+ },
+ {
+ class="relation",
+ name="mid",
+ },
+ },
synonyms={ "apl stile", "such that" },
unicodeslot=0x2223,
},
@@ -66548,7 +67370,8 @@ characters.data={
linebreak="al",
mathspec={
{
- class="binary",
+ -- class="binary",
+ class="ordinary",
name="ndivides",
},
{
@@ -66670,7 +67493,7 @@ characters.data={
name="int",
},
{
- class="nothing",
+ class="ordinary",
name="intop",
},
},
@@ -66690,7 +67513,7 @@ characters.data={
name="iint",
},
{
- class="nothing",
+ class="ordinary",
name="iintop",
},
},
@@ -66709,7 +67532,7 @@ characters.data={
name="iiint",
},
{
- class="nothing",
+ class="ordinary",
name="iiintop",
},
},
@@ -67294,6 +68117,7 @@ characters.data={
description="LESS-THAN OR EQUAL TO",
direction="on",
linebreak="ai",
+ mathgroup="nary relation",
mathlist={ 0x3C, 0x3D },
mathspec={
{
@@ -67315,6 +68139,7 @@ characters.data={
description="GREATER-THAN OR EQUAL TO",
direction="on",
linebreak="ai",
+ mathgroup="nary relation",
mathlist={ 0x3E, 0x3D },
mathspec={
{
@@ -68041,7 +68866,7 @@ characters.data={
description="DOWN TACK",
direction="on",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="top",
synonyms={ "top" },
unicodeslot=0x22A4,
@@ -68055,7 +68880,7 @@ characters.data={
linebreak="ai",
mathspec={
{
- class="default",
+ class="ordinary",
name="bot",
},
{
@@ -68820,7 +69645,7 @@ characters.data={
description="VERTICAL ELLIPSIS",
direction="on",
linebreak="al",
- mathclass="inner",
+ mathclass="ellipsis",
mathname="vdots",
unicodeslot=0x22EE,
},
@@ -68829,7 +69654,7 @@ characters.data={
description="MIDLINE HORIZONTAL ELLIPSIS",
direction="on",
linebreak="in",
- mathclass="inner",
+ mathclass="ellipsis",
mathname="cdots",
unicodeslot=0x22EF,
},
@@ -68838,7 +69663,7 @@ characters.data={
description="UP RIGHT DIAGONAL ELLIPSIS",
direction="on",
linebreak="al",
- mathclass="inner",
+ mathclass="ellipsis",
mathname="udots",
mirror=0x22F1,
unicodeslot=0x22F0,
@@ -68848,7 +69673,7 @@ characters.data={
description="DOWN RIGHT DIAGONAL ELLIPSIS",
direction="on",
linebreak="al",
- mathclass="inner",
+ mathclass="ellipsis",
mathname="ddots",
mirror=0x22F0,
unicodeslot=0x22F1,
@@ -68968,11 +69793,11 @@ characters.data={
linebreak="al",
mathspec={
{
- class="ord",
+ class="ordinary",
name="varnothing",
},
{
- class="ord",
+ class="ordinary",
name="diameter",
},
},
@@ -75745,7 +76570,7 @@ characters.data={
description="BLACK SPADE SUIT",
direction="on",
linebreak="ai",
- mathclass="default",
+ mathclass="ordinary",
mathname="spadesuit",
unicodeslot=0x2660,
variants=variants_emoji,
@@ -75757,7 +76582,7 @@ characters.data={
description="WHITE HEART SUIT",
direction="on",
linebreak="ai",
- mathclass="default",
+ mathclass="ordinary",
mathname="heartsuit",
unicodeslot=0x2661,
},
@@ -75767,7 +76592,7 @@ characters.data={
description="WHITE DIAMOND SUIT",
direction="on",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="diamondsuit",
unicodeslot=0x2662,
},
@@ -75778,7 +76603,7 @@ characters.data={
description="BLACK CLUB SUIT",
direction="on",
linebreak="ai",
- mathclass="default",
+ mathclass="ordinary",
mathname="clubsuit",
synonyms={ "shamrock" },
unicodeslot=0x2663,
@@ -75880,7 +76705,7 @@ characters.data={
description="MUSIC FLAT SIGN",
direction="on",
linebreak="ai",
- mathclass="default",
+ mathclass="ordinary",
mathname="flat",
unicodeslot=0x266D,
},
@@ -75889,7 +76714,7 @@ characters.data={
description="MUSIC NATURAL SIGN",
direction="on",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="natural",
unicodeslot=0x266E,
},
@@ -75900,7 +76725,7 @@ characters.data={
description="MUSIC SHARP SIGN",
direction="on",
linebreak="ai",
- mathclass="default",
+ mathclass="ordinary",
mathname="sharp",
synonyms={ "infix bag count" },
unicodeslot=0x266F,
@@ -77201,7 +78026,7 @@ characters.data={
description="CHECK MARK",
direction="on",
linebreak="al",
- mathclass="nothing",
+ mathclass="ordinary",
mathname="checkmark",
unicodeslot=0x2713,
},
@@ -77297,7 +78122,7 @@ characters.data={
description="MALTESE CROSS",
direction="on",
linebreak="al",
- mathclass="nothing",
+ mathclass="ordinary",
mathname="maltese",
unicodeslot=0x2720,
},
@@ -82936,7 +83761,7 @@ characters.data={
name="iiiint",
},
{
- class="nothing",
+ class="ordinary",
name="iiiintop",
},
},
@@ -87051,6 +87876,14 @@ characters.data={
linebreak="al",
unicodeslot=0x2C2E,
},
+ [0x2C2F]={
+ category="lu",
+ description="GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI",
+ direction="l",
+ lccode=0x2C5F,
+ linebreak="al",
+ unicodeslot=0x2C2F,
+ },
[0x2C30]={
category="ll",
description="GLAGOLITIC SMALL LETTER AZU",
@@ -87427,6 +88260,13 @@ characters.data={
uccode=0x2C2E,
unicodeslot=0x2C5E,
},
+ [0x2C5F]={
+ category="ll",
+ description="GLAGOLITIC SMALL LETTER CAUDATE CHRIVI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x2C5F,
+ },
[0x2C60]={
category="lu",
description="LATIN CAPITAL LETTER L WITH DOUBLE BAR",
@@ -87550,6 +88390,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER ALPHA",
direction="l",
+ lccode=0x251,
linebreak="al",
unicodeslot=0x2C6D,
},
@@ -87557,6 +88398,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER M WITH HOOK",
direction="l",
+ lccode=0x271,
linebreak="al",
specials={ "with", 0x4D, 0x1FA9D },
unicodeslot=0x2C6E,
@@ -87565,6 +88407,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER TURNED A",
direction="l",
+ lccode=0x250,
linebreak="al",
unicodeslot=0x2C6F,
},
@@ -87572,6 +88415,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER TURNED ALPHA",
direction="l",
+ lccode=0x252,
linebreak="al",
unicodeslot=0x2C70,
},
@@ -87586,6 +88430,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER W WITH HOOK",
direction="l",
+ lccode=0x2C73,
linebreak="al",
specials={ "with", 0x57, 0x1FA9D },
unicodeslot=0x2C72,
@@ -87677,6 +88522,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER S WITH SWASH TAIL",
direction="l",
+ lccode=0x23F,
linebreak="al",
unicodeslot=0x2C7E,
},
@@ -87684,6 +88530,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER Z WITH SWASH TAIL",
direction="l",
+ lccode=0x240,
linebreak="al",
unicodeslot=0x2C7F,
},
@@ -88540,6 +89387,7 @@ characters.data={
category="lu",
description="COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI",
direction="l",
+ lccode=0x2CEC,
linebreak="al",
unicodeslot=0x2CEB,
},
@@ -88554,6 +89402,7 @@ characters.data={
category="lu",
description="COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA",
direction="l",
+ lccode=0x2CEE,
linebreak="al",
unicodeslot=0x2CED,
},
@@ -88592,6 +89441,7 @@ characters.data={
category="lu",
description="COPTIC CAPITAL LETTER BOHAIRIC KHEI",
direction="l",
+ lccode=0x2CF3,
linebreak="al",
unicodeslot=0x2CF2,
},
@@ -90796,6 +91646,91 @@ characters.data={
linebreak="al",
unicodeslot=0x2E52,
},
+ [0x2E53]={
+ category="po",
+ description="MEDIEVAL EXCLAMATION MARK",
+ direction="on",
+ linebreak="ex",
+ unicodeslot=0x2E53,
+ },
+ [0x2E54]={
+ category="po",
+ description="MEDIEVAL QUESTION MARK",
+ direction="on",
+ linebreak="ex",
+ unicodeslot=0x2E54,
+ },
+ [0x2E55]={
+ category="ps",
+ description="LEFT SQUARE BRACKET WITH STROKE",
+ direction="on",
+ linebreak="op",
+ mirror=0x2E56,
+ unicodeslot=0x2E55,
+ },
+ [0x2E56]={
+ category="pe",
+ description="RIGHT SQUARE BRACKET WITH STROKE",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2E55,
+ unicodeslot=0x2E56,
+ },
+ [0x2E57]={
+ category="ps",
+ description="LEFT SQUARE BRACKET WITH DOUBLE STROKE",
+ direction="on",
+ linebreak="op",
+ mirror=0x2E58,
+ unicodeslot=0x2E57,
+ },
+ [0x2E58]={
+ category="pe",
+ description="RIGHT SQUARE BRACKET WITH DOUBLE STROKE",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2E57,
+ unicodeslot=0x2E58,
+ },
+ [0x2E59]={
+ category="ps",
+ description="TOP HALF LEFT PARENTHESIS",
+ direction="on",
+ linebreak="op",
+ mirror=0x2E5A,
+ unicodeslot=0x2E59,
+ },
+ [0x2E5A]={
+ category="pe",
+ description="TOP HALF RIGHT PARENTHESIS",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2E59,
+ unicodeslot=0x2E5A,
+ },
+ [0x2E5B]={
+ category="ps",
+ description="BOTTOM HALF LEFT PARENTHESIS",
+ direction="on",
+ linebreak="op",
+ mirror=0x2E5C,
+ unicodeslot=0x2E5B,
+ },
+ [0x2E5C]={
+ category="pe",
+ description="BOTTOM HALF RIGHT PARENTHESIS",
+ direction="on",
+ linebreak="cl",
+ mirror=0x2E5B,
+ unicodeslot=0x2E5C,
+ },
+ [0x2E5D]={
+ category="pd",
+ description="OBLIQUE HYPHEN",
+ direction="on",
+ linebreak="ba",
+ unicodeslot=0x2E5D,
+ },
[0x2E80]={
category="so",
cjkwd="w",
@@ -116276,6 +117211,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER ZEMLYA",
direction="l",
+ lccode=0xA641,
linebreak="al",
unicodeslot=0xA640,
},
@@ -116290,6 +117226,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER DZELO",
direction="l",
+ lccode=0xA643,
linebreak="al",
unicodeslot=0xA642,
},
@@ -116304,6 +117241,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER REVERSED DZE",
direction="l",
+ lccode=0xA645,
linebreak="al",
unicodeslot=0xA644,
},
@@ -116318,6 +117256,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER IOTA",
direction="l",
+ lccode=0xA647,
linebreak="al",
unicodeslot=0xA646,
},
@@ -116332,6 +117271,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER DJERV",
direction="l",
+ lccode=0xA649,
linebreak="al",
unicodeslot=0xA648,
},
@@ -116346,6 +117286,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER MONOGRAPH UK",
direction="l",
+ lccode=0xA64B,
linebreak="al",
unicodeslot=0xA64A,
},
@@ -116360,6 +117301,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER BROAD OMEGA",
direction="l",
+ lccode=0xA64D,
linebreak="al",
unicodeslot=0xA64C,
},
@@ -116374,6 +117316,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER NEUTRAL YER",
direction="l",
+ lccode=0xA64F,
linebreak="al",
unicodeslot=0xA64E,
},
@@ -116388,6 +117331,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER YERU WITH BACK YER",
direction="l",
+ lccode=0xA651,
linebreak="al",
unicodeslot=0xA650,
},
@@ -116402,6 +117346,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER IOTIFIED YAT",
direction="l",
+ lccode=0xA653,
linebreak="al",
unicodeslot=0xA652,
},
@@ -116416,6 +117361,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER REVERSED YU",
direction="l",
+ lccode=0xA655,
linebreak="al",
unicodeslot=0xA654,
},
@@ -116430,6 +117376,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER IOTIFIED A",
direction="l",
+ lccode=0xA657,
linebreak="al",
unicodeslot=0xA656,
},
@@ -116444,6 +117391,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS",
direction="l",
+ lccode=0xA659,
linebreak="al",
unicodeslot=0xA658,
},
@@ -116458,6 +117406,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER BLENDED YUS",
direction="l",
+ lccode=0xA65B,
linebreak="al",
unicodeslot=0xA65A,
},
@@ -116472,6 +117421,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS",
direction="l",
+ lccode=0xA65D,
linebreak="al",
unicodeslot=0xA65C,
},
@@ -116486,6 +117436,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER YN",
direction="l",
+ lccode=0xA65F,
linebreak="al",
unicodeslot=0xA65E,
},
@@ -116500,6 +117451,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER REVERSED TSE",
direction="l",
+ lccode=0xA661,
linebreak="al",
unicodeslot=0xA660,
},
@@ -116514,6 +117466,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER SOFT DE",
direction="l",
+ lccode=0xA663,
linebreak="al",
unicodeslot=0xA662,
},
@@ -116528,6 +117481,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER SOFT EL",
direction="l",
+ lccode=0xA665,
linebreak="al",
unicodeslot=0xA664,
},
@@ -116542,6 +117496,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER SOFT EM",
direction="l",
+ lccode=0xA667,
linebreak="al",
unicodeslot=0xA666,
},
@@ -116556,6 +117511,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER MONOCULAR O",
direction="l",
+ lccode=0xA669,
linebreak="al",
unicodeslot=0xA668,
},
@@ -116570,6 +117526,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER BINOCULAR O",
direction="l",
+ lccode=0xA66B,
linebreak="al",
unicodeslot=0xA66A,
},
@@ -116584,6 +117541,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O",
direction="l",
+ lccode=0xA66D,
linebreak="al",
unicodeslot=0xA66C,
},
@@ -116735,6 +117693,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER DWE",
direction="l",
+ lccode=0xA681,
linebreak="al",
unicodeslot=0xA680,
},
@@ -116749,6 +117708,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER DZWE",
direction="l",
+ lccode=0xA683,
linebreak="al",
unicodeslot=0xA682,
},
@@ -116763,6 +117723,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER ZHWE",
direction="l",
+ lccode=0xA685,
linebreak="al",
unicodeslot=0xA684,
},
@@ -116777,6 +117738,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER CCHE",
direction="l",
+ lccode=0xA687,
linebreak="al",
unicodeslot=0xA686,
},
@@ -116791,6 +117753,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER DZZE",
direction="l",
+ lccode=0xA689,
linebreak="al",
unicodeslot=0xA688,
},
@@ -116805,6 +117768,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK",
direction="l",
+ lccode=0xA68B,
linebreak="al",
unicodeslot=0xA68A,
},
@@ -116819,6 +117783,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER TWE",
direction="l",
+ lccode=0xA68D,
linebreak="al",
unicodeslot=0xA68C,
},
@@ -116833,6 +117798,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER TSWE",
direction="l",
+ lccode=0xA68F,
linebreak="al",
unicodeslot=0xA68E,
},
@@ -116847,6 +117813,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER TSSE",
direction="l",
+ lccode=0xA691,
linebreak="al",
unicodeslot=0xA690,
},
@@ -116861,6 +117828,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER TCHE",
direction="l",
+ lccode=0xA693,
linebreak="al",
unicodeslot=0xA692,
},
@@ -116875,6 +117843,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER HWE",
direction="l",
+ lccode=0xA695,
linebreak="al",
unicodeslot=0xA694,
},
@@ -116889,6 +117858,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER SHWE",
direction="l",
+ lccode=0xA697,
linebreak="al",
unicodeslot=0xA696,
},
@@ -116903,6 +117873,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER DOUBLE O",
direction="l",
+ lccode=0xA699,
linebreak="al",
unicodeslot=0xA698,
},
@@ -116917,6 +117888,7 @@ characters.data={
category="lu",
description="CYRILLIC CAPITAL LETTER CROSSED O",
direction="l",
+ lccode=0xA69B,
linebreak="al",
unicodeslot=0xA69A,
},
@@ -117819,6 +118791,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF",
direction="l",
+ lccode=0xA723,
linebreak="al",
unicodeslot=0xA722,
},
@@ -117833,6 +118806,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER EGYPTOLOGICAL AIN",
direction="l",
+ lccode=0xA725,
linebreak="al",
unicodeslot=0xA724,
},
@@ -117847,6 +118821,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER HENG",
direction="l",
+ lccode=0xA727,
linebreak="al",
unicodeslot=0xA726,
},
@@ -117861,6 +118836,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER TZ",
direction="l",
+ lccode=0xA729,
linebreak="al",
unicodeslot=0xA728,
},
@@ -117875,6 +118851,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER TRESILLO",
direction="l",
+ lccode=0xA72B,
linebreak="al",
unicodeslot=0xA72A,
},
@@ -117889,6 +118866,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER CUATRILLO",
direction="l",
+ lccode=0xA72D,
linebreak="al",
unicodeslot=0xA72C,
},
@@ -117903,6 +118881,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER CUATRILLO WITH COMMA",
direction="l",
+ lccode=0xA72F,
linebreak="al",
specials={ "with", 0xA72C, 0x2C },
unicodeslot=0xA72E,
@@ -117933,6 +118912,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER AA",
direction="l",
+ lccode=0xA733,
linebreak="al",
unicodeslot=0xA732,
},
@@ -117947,6 +118927,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER AO",
direction="l",
+ lccode=0xA735,
linebreak="al",
unicodeslot=0xA734,
},
@@ -117961,6 +118942,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER AU",
direction="l",
+ lccode=0xA737,
linebreak="al",
unicodeslot=0xA736,
},
@@ -117975,6 +118957,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER AV",
direction="l",
+ lccode=0xA739,
linebreak="al",
unicodeslot=0xA738,
},
@@ -117989,6 +118972,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR",
direction="l",
+ lccode=0xA73B,
linebreak="al",
specials={ "with", 0xA738, 0x2015 },
unicodeslot=0xA73A,
@@ -118005,6 +118989,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER AY",
direction="l",
+ lccode=0xA73D,
linebreak="al",
unicodeslot=0xA73C,
},
@@ -118019,6 +119004,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER REVERSED C WITH DOT",
direction="l",
+ lccode=0xA73F,
linebreak="al",
unicodeslot=0xA73E,
},
@@ -118033,6 +119019,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER K WITH STROKE",
direction="l",
+ lccode=0xA741,
linebreak="al",
specials={ "with", 0x4B, 0x2F },
unicodeslot=0xA740,
@@ -118049,6 +119036,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER K WITH DIAGONAL STROKE",
direction="l",
+ lccode=0xA743,
linebreak="al",
unicodeslot=0xA742,
},
@@ -118063,6 +119051,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE",
direction="l",
+ lccode=0xA745,
linebreak="al",
unicodeslot=0xA744,
},
@@ -118077,6 +119066,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER BROKEN L",
direction="l",
+ lccode=0xA747,
linebreak="al",
unicodeslot=0xA746,
},
@@ -118091,6 +119081,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER L WITH HIGH STROKE",
direction="l",
+ lccode=0xA749,
linebreak="al",
unicodeslot=0xA748,
},
@@ -118105,6 +119096,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY",
direction="l",
+ lccode=0xA74B,
linebreak="al",
unicodeslot=0xA74A,
},
@@ -118119,6 +119111,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER O WITH LOOP",
direction="l",
+ lccode=0xA74D,
linebreak="al",
unicodeslot=0xA74C,
},
@@ -118133,6 +119126,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER OO",
direction="l",
+ lccode=0xA74F,
linebreak="al",
unicodeslot=0xA74E,
},
@@ -118147,6 +119141,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER",
direction="l",
+ lccode=0xA751,
linebreak="al",
unicodeslot=0xA750,
},
@@ -118161,6 +119156,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER P WITH FLOURISH",
direction="l",
+ lccode=0xA753,
linebreak="al",
unicodeslot=0xA752,
},
@@ -118175,6 +119171,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER P WITH SQUIRREL TAIL",
direction="l",
+ lccode=0xA755,
linebreak="al",
unicodeslot=0xA754,
},
@@ -118189,6 +119186,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER",
direction="l",
+ lccode=0xA757,
linebreak="al",
unicodeslot=0xA756,
},
@@ -118203,6 +119201,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE",
direction="l",
+ lccode=0xA759,
linebreak="al",
unicodeslot=0xA758,
},
@@ -118217,6 +119216,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER R ROTUNDA",
direction="l",
+ lccode=0xA75B,
linebreak="al",
unicodeslot=0xA75A,
},
@@ -118231,6 +119231,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER RUM ROTUNDA",
direction="l",
+ lccode=0xA75D,
linebreak="al",
unicodeslot=0xA75C,
},
@@ -118245,6 +119246,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER V WITH DIAGONAL STROKE",
direction="l",
+ lccode=0xA75F,
linebreak="al",
unicodeslot=0xA75E,
},
@@ -118259,6 +119261,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER VY",
direction="l",
+ lccode=0xA761,
linebreak="al",
unicodeslot=0xA760,
},
@@ -118273,6 +119276,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER VISIGOTHIC Z",
direction="l",
+ lccode=0xA763,
linebreak="al",
unicodeslot=0xA762,
},
@@ -118287,6 +119291,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER THORN WITH STROKE",
direction="l",
+ lccode=0xA765,
linebreak="al",
specials={ "with", 0xDE, 0x2F },
unicodeslot=0xA764,
@@ -118303,6 +119308,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER",
direction="l",
+ lccode=0xA767,
linebreak="al",
unicodeslot=0xA766,
},
@@ -118317,6 +119323,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER VEND",
direction="l",
+ lccode=0xA769,
linebreak="al",
unicodeslot=0xA768,
},
@@ -118331,6 +119338,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER ET",
direction="l",
+ lccode=0xA76B,
linebreak="al",
unicodeslot=0xA76A,
},
@@ -118345,6 +119353,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER IS",
direction="l",
+ lccode=0xA76D,
linebreak="al",
unicodeslot=0xA76C,
},
@@ -118359,6 +119368,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER CON",
direction="l",
+ lccode=0xA76F,
linebreak="al",
unicodeslot=0xA76E,
},
@@ -118437,6 +119447,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER INSULAR D",
direction="l",
+ lccode=0xA77A,
linebreak="al",
unicodeslot=0xA779,
},
@@ -118451,6 +119462,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER INSULAR F",
direction="l",
+ lccode=0xA77C,
linebreak="al",
unicodeslot=0xA77B,
},
@@ -118465,6 +119477,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER INSULAR G",
direction="l",
+ lccode=0x1D79,
linebreak="al",
unicodeslot=0xA77D,
},
@@ -118472,6 +119485,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER TURNED INSULAR G",
direction="l",
+ lccode=0xA77F,
linebreak="al",
unicodeslot=0xA77E,
},
@@ -118486,6 +119500,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER TURNED L",
direction="l",
+ lccode=0xA781,
linebreak="al",
unicodeslot=0xA780,
},
@@ -118500,6 +119515,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER INSULAR R",
direction="l",
+ lccode=0xA783,
linebreak="al",
unicodeslot=0xA782,
},
@@ -118514,6 +119530,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER INSULAR S",
direction="l",
+ lccode=0xA785,
linebreak="al",
unicodeslot=0xA784,
},
@@ -118528,6 +119545,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER INSULAR T",
direction="l",
+ lccode=0xA787,
linebreak="al",
unicodeslot=0xA786,
},
@@ -118563,6 +119581,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER SALTILLO",
direction="l",
+ lccode=0xA78C,
linebreak="al",
unicodeslot=0xA78B,
},
@@ -118577,6 +119596,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER TURNED H",
direction="l",
+ lccode=0x265,
linebreak="al",
unicodeslot=0xA78D,
},
@@ -118598,6 +119618,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER N WITH DESCENDER",
direction="l",
+ lccode=0xA791,
linebreak="al",
unicodeslot=0xA790,
},
@@ -118612,6 +119633,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER C WITH BAR",
direction="l",
+ lccode=0xA793,
linebreak="al",
unicodeslot=0xA792,
},
@@ -118640,6 +119662,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER B WITH FLOURISH",
direction="l",
+ lccode=0xA797,
linebreak="al",
unicodeslot=0xA796,
},
@@ -118654,6 +119677,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER F WITH STROKE",
direction="l",
+ lccode=0xA799,
linebreak="al",
specials={ "with", 0x46, 0x2F },
unicodeslot=0xA798,
@@ -118670,6 +119694,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER VOLAPUK AE",
direction="l",
+ lccode=0xA79B,
linebreak="al",
unicodeslot=0xA79A,
},
@@ -118684,6 +119709,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER VOLAPUK OE",
direction="l",
+ lccode=0xA79D,
linebreak="al",
unicodeslot=0xA79C,
},
@@ -118698,6 +119724,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER VOLAPUK UE",
direction="l",
+ lccode=0xA79F,
linebreak="al",
unicodeslot=0xA79E,
},
@@ -118712,6 +119739,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER G WITH OBLIQUE STROKE",
direction="l",
+ lccode=0xA7A1,
linebreak="al",
unicodeslot=0xA7A0,
},
@@ -118726,6 +119754,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER K WITH OBLIQUE STROKE",
direction="l",
+ lccode=0xA7A3,
linebreak="al",
unicodeslot=0xA7A2,
},
@@ -118740,6 +119769,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER N WITH OBLIQUE STROKE",
direction="l",
+ lccode=0xA7A5,
linebreak="al",
unicodeslot=0xA7A4,
},
@@ -118754,6 +119784,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER R WITH OBLIQUE STROKE",
direction="l",
+ lccode=0xA7A7,
linebreak="al",
unicodeslot=0xA7A6,
},
@@ -118768,6 +119799,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER S WITH OBLIQUE STROKE",
direction="l",
+ lccode=0xA7A9,
linebreak="al",
unicodeslot=0xA7A8,
},
@@ -118782,6 +119814,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER H WITH HOOK",
direction="l",
+ lccode=0x266,
linebreak="al",
specials={ "with", 0x48, 0x1FA9D },
unicodeslot=0xA7AA,
@@ -118790,6 +119823,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER REVERSED OPEN E",
direction="l",
+ lccode=0x25C,
linebreak="al",
unicodeslot=0xA7AB,
},
@@ -118797,6 +119831,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER SCRIPT G",
direction="l",
+ lccode=0x261,
linebreak="al",
unicodeslot=0xA7AC,
},
@@ -118804,6 +119839,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER L WITH BELT",
direction="l",
+ lccode=0x26C,
linebreak="al",
unicodeslot=0xA7AD,
},
@@ -118811,6 +119847,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER SMALL CAPITAL I",
direction="l",
+ lccode=0x26A,
linebreak="al",
unicodeslot=0xA7AE,
},
@@ -118825,6 +119862,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER TURNED K",
direction="l",
+ lccode=0x29E,
linebreak="al",
unicodeslot=0xA7B0,
},
@@ -118832,6 +119870,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER TURNED T",
direction="l",
+ lccode=0x287,
linebreak="al",
unicodeslot=0xA7B1,
},
@@ -118839,6 +119878,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER J WITH CROSSED-TAIL",
direction="l",
+ lccode=0x29D,
linebreak="al",
unicodeslot=0xA7B2,
},
@@ -118846,6 +119886,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER CHI",
direction="l",
+ lccode=0xAB53,
linebreak="al",
unicodeslot=0xA7B3,
},
@@ -118853,6 +119894,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER BETA",
direction="l",
+ lccode=0xA7B5,
linebreak="al",
unicodeslot=0xA7B4,
},
@@ -118867,6 +119909,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER OMEGA",
direction="l",
+ lccode=0xA7B7,
linebreak="al",
unicodeslot=0xA7B6,
},
@@ -118881,6 +119924,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER U WITH STROKE",
direction="l",
+ lccode=0xA7B9,
linebreak="al",
specials={ "with", 0x55, 0x2F },
unicodeslot=0xA7B8,
@@ -118897,6 +119941,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER GLOTTAL A",
direction="l",
+ lccode=0xA7BB,
linebreak="al",
unicodeslot=0xA7BA,
},
@@ -118911,6 +119956,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER GLOTTAL I",
direction="l",
+ lccode=0xA7BD,
linebreak="al",
unicodeslot=0xA7BC,
},
@@ -118925,6 +119971,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER GLOTTAL U",
direction="l",
+ lccode=0xA7BF,
linebreak="al",
unicodeslot=0xA7BE,
},
@@ -118935,10 +119982,26 @@ characters.data={
linebreak="al",
unicodeslot=0xA7BF,
},
+ [0xA7C0]={
+ category="lu",
+ description="LATIN CAPITAL LETTER OLD POLISH O",
+ direction="l",
+ lccode=0xA7C1,
+ linebreak="al",
+ unicodeslot=0xA7C0,
+ },
+ [0xA7C1]={
+ category="ll",
+ description="LATIN SMALL LETTER OLD POLISH O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA7C1,
+ },
[0xA7C2]={
category="lu",
description="LATIN CAPITAL LETTER ANGLICANA W",
direction="l",
+ lccode=0xA7C3,
linebreak="al",
unicodeslot=0xA7C2,
},
@@ -118953,6 +120016,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER C WITH PALATAL HOOK",
direction="l",
+ lccode=0xA794,
linebreak="al",
unicodeslot=0xA7C4,
},
@@ -118960,6 +120024,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER S WITH HOOK",
direction="l",
+ lccode=0x282,
linebreak="al",
specials={ "with", 0x53, 0x1FA9D },
unicodeslot=0xA7C5,
@@ -118968,6 +120033,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER Z WITH PALATAL HOOK",
direction="l",
+ lccode=0x1D8E,
linebreak="al",
unicodeslot=0xA7C6,
},
@@ -118975,6 +120041,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY",
direction="l",
+ lccode=0xA7C8,
linebreak="al",
unicodeslot=0xA7C7,
},
@@ -118989,6 +120056,7 @@ characters.data={
category="lu",
description="LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY",
direction="l",
+ lccode=0xA7CA,
linebreak="al",
unicodeslot=0xA7C9,
},
@@ -118999,10 +120067,94 @@ characters.data={
linebreak="al",
unicodeslot=0xA7CA,
},
+ [0xA7D0]={
+ category="lu",
+ description="LATIN CAPITAL LETTER CLOSED INSULAR G",
+ direction="l",
+ lccode=0xA7D1,
+ linebreak="al",
+ unicodeslot=0xA7D0,
+ },
+ [0xA7D1]={
+ category="ll",
+ description="LATIN SMALL LETTER CLOSED INSULAR G",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA7D1,
+ },
+ [0xA7D3]={
+ category="ll",
+ description="LATIN SMALL LETTER DOUBLE THORN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA7D3,
+ },
+ [0xA7D5]={
+ category="ll",
+ description="LATIN SMALL LETTER DOUBLE WYNN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA7D5,
+ },
+ [0xA7D6]={
+ category="lu",
+ description="LATIN CAPITAL LETTER MIDDLE SCOTS S",
+ direction="l",
+ lccode=0xA7D7,
+ linebreak="al",
+ unicodeslot=0xA7D6,
+ },
+ [0xA7D7]={
+ category="ll",
+ description="LATIN SMALL LETTER MIDDLE SCOTS S",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA7D7,
+ },
+ [0xA7D8]={
+ category="lu",
+ description="LATIN CAPITAL LETTER SIGMOID S",
+ direction="l",
+ lccode=0xA7D9,
+ linebreak="al",
+ unicodeslot=0xA7D8,
+ },
+ [0xA7D9]={
+ category="ll",
+ description="LATIN SMALL LETTER SIGMOID S",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0xA7D9,
+ },
+ [0xA7F2]={
+ category="lm",
+ description="MODIFIER LETTER CAPITAL C",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x43 },
+ unicodeslot=0xA7F2,
+ },
+ [0xA7F3]={
+ category="lm",
+ description="MODIFIER LETTER CAPITAL F",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x46 },
+ unicodeslot=0xA7F3,
+ },
+ [0xA7F4]={
+ category="lm",
+ description="MODIFIER LETTER CAPITAL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x51 },
+ unicodeslot=0xA7F4,
+ },
[0xA7F5]={
category="lu",
description="LATIN CAPITAL LETTER REVERSED HALF H",
direction="l",
+ lccode=0xA7F6,
linebreak="al",
unicodeslot=0xA7F5,
},
@@ -123087,9 +124239,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0xAA60,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0xAA61]={
category="lo",
@@ -123098,9 +124248,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0xAA61,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0xAA62]={
category="lo",
@@ -123109,9 +124257,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0xAA62,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0xAA63]={
category="lo",
@@ -123120,9 +124266,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0xAA63,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0xAA64]={
category="lo",
@@ -123131,9 +124275,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0xAA64,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0xAA65]={
category="lo",
@@ -123142,9 +124284,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0xAA65,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0xAA66]={
category="lo",
@@ -123153,9 +124293,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0xAA66,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0xAA67]={
category="lo",
@@ -123195,9 +124333,7 @@ characters.data={
direction="l",
linebreak="sa",
unicodeslot=0xAA6B,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0xAA6C]={
category="lo",
@@ -123206,9 +124342,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0xAA6C,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0xAA6D]={
category="lo",
@@ -123233,9 +124367,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0xAA6F,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0xAA70]={
category="lm",
@@ -123324,9 +124456,7 @@ characters.data={
indic="c",
linebreak="sa",
unicodeslot=0xAA7A,
- variants={
- [0xFE00]="dotted form",
- },
+ variants=variants_dotted,
},
[0xAA7B]={
category="mc",
@@ -124706,6 +125836,7 @@ characters.data={
description="CHEROKEE SMALL LETTER A",
direction="l",
linebreak="al",
+ uccode=0x13A0,
unicodeslot=0xAB70,
},
[0xAB71]={
@@ -124713,6 +125844,7 @@ characters.data={
description="CHEROKEE SMALL LETTER E",
direction="l",
linebreak="al",
+ uccode=0x13A1,
unicodeslot=0xAB71,
},
[0xAB72]={
@@ -124720,6 +125852,7 @@ characters.data={
description="CHEROKEE SMALL LETTER I",
direction="l",
linebreak="al",
+ uccode=0x13A2,
unicodeslot=0xAB72,
},
[0xAB73]={
@@ -124727,6 +125860,7 @@ characters.data={
description="CHEROKEE SMALL LETTER O",
direction="l",
linebreak="al",
+ uccode=0x13A3,
unicodeslot=0xAB73,
},
[0xAB74]={
@@ -124734,6 +125868,7 @@ characters.data={
description="CHEROKEE SMALL LETTER U",
direction="l",
linebreak="al",
+ uccode=0x13A4,
unicodeslot=0xAB74,
},
[0xAB75]={
@@ -124741,6 +125876,7 @@ characters.data={
description="CHEROKEE SMALL LETTER V",
direction="l",
linebreak="al",
+ uccode=0x13A5,
unicodeslot=0xAB75,
},
[0xAB76]={
@@ -124748,6 +125884,7 @@ characters.data={
description="CHEROKEE SMALL LETTER GA",
direction="l",
linebreak="al",
+ uccode=0x13A6,
unicodeslot=0xAB76,
},
[0xAB77]={
@@ -124755,6 +125892,7 @@ characters.data={
description="CHEROKEE SMALL LETTER KA",
direction="l",
linebreak="al",
+ uccode=0x13A7,
unicodeslot=0xAB77,
},
[0xAB78]={
@@ -124762,6 +125900,7 @@ characters.data={
description="CHEROKEE SMALL LETTER GE",
direction="l",
linebreak="al",
+ uccode=0x13A8,
unicodeslot=0xAB78,
},
[0xAB79]={
@@ -124769,6 +125908,7 @@ characters.data={
description="CHEROKEE SMALL LETTER GI",
direction="l",
linebreak="al",
+ uccode=0x13A9,
unicodeslot=0xAB79,
},
[0xAB7A]={
@@ -124776,6 +125916,7 @@ characters.data={
description="CHEROKEE SMALL LETTER GO",
direction="l",
linebreak="al",
+ uccode=0x13AA,
unicodeslot=0xAB7A,
},
[0xAB7B]={
@@ -124783,6 +125924,7 @@ characters.data={
description="CHEROKEE SMALL LETTER GU",
direction="l",
linebreak="al",
+ uccode=0x13AB,
unicodeslot=0xAB7B,
},
[0xAB7C]={
@@ -124790,6 +125932,7 @@ characters.data={
description="CHEROKEE SMALL LETTER GV",
direction="l",
linebreak="al",
+ uccode=0x13AC,
unicodeslot=0xAB7C,
},
[0xAB7D]={
@@ -124797,6 +125940,7 @@ characters.data={
description="CHEROKEE SMALL LETTER HA",
direction="l",
linebreak="al",
+ uccode=0x13AD,
unicodeslot=0xAB7D,
},
[0xAB7E]={
@@ -124804,6 +125948,7 @@ characters.data={
description="CHEROKEE SMALL LETTER HE",
direction="l",
linebreak="al",
+ uccode=0x13AE,
unicodeslot=0xAB7E,
},
[0xAB7F]={
@@ -124811,6 +125956,7 @@ characters.data={
description="CHEROKEE SMALL LETTER HI",
direction="l",
linebreak="al",
+ uccode=0x13AF,
unicodeslot=0xAB7F,
},
[0xAB80]={
@@ -124818,6 +125964,7 @@ characters.data={
description="CHEROKEE SMALL LETTER HO",
direction="l",
linebreak="al",
+ uccode=0x13B0,
unicodeslot=0xAB80,
},
[0xAB81]={
@@ -124825,6 +125972,7 @@ characters.data={
description="CHEROKEE SMALL LETTER HU",
direction="l",
linebreak="al",
+ uccode=0x13B1,
unicodeslot=0xAB81,
},
[0xAB82]={
@@ -124832,6 +125980,7 @@ characters.data={
description="CHEROKEE SMALL LETTER HV",
direction="l",
linebreak="al",
+ uccode=0x13B2,
unicodeslot=0xAB82,
},
[0xAB83]={
@@ -124839,6 +125988,7 @@ characters.data={
description="CHEROKEE SMALL LETTER LA",
direction="l",
linebreak="al",
+ uccode=0x13B3,
unicodeslot=0xAB83,
},
[0xAB84]={
@@ -124846,6 +125996,7 @@ characters.data={
description="CHEROKEE SMALL LETTER LE",
direction="l",
linebreak="al",
+ uccode=0x13B4,
unicodeslot=0xAB84,
},
[0xAB85]={
@@ -124853,6 +126004,7 @@ characters.data={
description="CHEROKEE SMALL LETTER LI",
direction="l",
linebreak="al",
+ uccode=0x13B5,
unicodeslot=0xAB85,
},
[0xAB86]={
@@ -124860,6 +126012,7 @@ characters.data={
description="CHEROKEE SMALL LETTER LO",
direction="l",
linebreak="al",
+ uccode=0x13B6,
unicodeslot=0xAB86,
},
[0xAB87]={
@@ -124867,6 +126020,7 @@ characters.data={
description="CHEROKEE SMALL LETTER LU",
direction="l",
linebreak="al",
+ uccode=0x13B7,
unicodeslot=0xAB87,
},
[0xAB88]={
@@ -124874,6 +126028,7 @@ characters.data={
description="CHEROKEE SMALL LETTER LV",
direction="l",
linebreak="al",
+ uccode=0x13B8,
unicodeslot=0xAB88,
},
[0xAB89]={
@@ -124881,6 +126036,7 @@ characters.data={
description="CHEROKEE SMALL LETTER MA",
direction="l",
linebreak="al",
+ uccode=0x13B9,
unicodeslot=0xAB89,
},
[0xAB8A]={
@@ -124888,6 +126044,7 @@ characters.data={
description="CHEROKEE SMALL LETTER ME",
direction="l",
linebreak="al",
+ uccode=0x13BA,
unicodeslot=0xAB8A,
},
[0xAB8B]={
@@ -124895,6 +126052,7 @@ characters.data={
description="CHEROKEE SMALL LETTER MI",
direction="l",
linebreak="al",
+ uccode=0x13BB,
unicodeslot=0xAB8B,
},
[0xAB8C]={
@@ -124902,6 +126060,7 @@ characters.data={
description="CHEROKEE SMALL LETTER MO",
direction="l",
linebreak="al",
+ uccode=0x13BC,
unicodeslot=0xAB8C,
},
[0xAB8D]={
@@ -124909,6 +126068,7 @@ characters.data={
description="CHEROKEE SMALL LETTER MU",
direction="l",
linebreak="al",
+ uccode=0x13BD,
unicodeslot=0xAB8D,
},
[0xAB8E]={
@@ -124916,6 +126076,7 @@ characters.data={
description="CHEROKEE SMALL LETTER NA",
direction="l",
linebreak="al",
+ uccode=0x13BE,
unicodeslot=0xAB8E,
},
[0xAB8F]={
@@ -124923,6 +126084,7 @@ characters.data={
description="CHEROKEE SMALL LETTER HNA",
direction="l",
linebreak="al",
+ uccode=0x13BF,
unicodeslot=0xAB8F,
},
[0xAB90]={
@@ -124930,6 +126092,7 @@ characters.data={
description="CHEROKEE SMALL LETTER NAH",
direction="l",
linebreak="al",
+ uccode=0x13C0,
unicodeslot=0xAB90,
},
[0xAB91]={
@@ -124937,6 +126100,7 @@ characters.data={
description="CHEROKEE SMALL LETTER NE",
direction="l",
linebreak="al",
+ uccode=0x13C1,
unicodeslot=0xAB91,
},
[0xAB92]={
@@ -124944,6 +126108,7 @@ characters.data={
description="CHEROKEE SMALL LETTER NI",
direction="l",
linebreak="al",
+ uccode=0x13C2,
unicodeslot=0xAB92,
},
[0xAB93]={
@@ -124951,6 +126116,7 @@ characters.data={
description="CHEROKEE SMALL LETTER NO",
direction="l",
linebreak="al",
+ uccode=0x13C3,
unicodeslot=0xAB93,
},
[0xAB94]={
@@ -124958,6 +126124,7 @@ characters.data={
description="CHEROKEE SMALL LETTER NU",
direction="l",
linebreak="al",
+ uccode=0x13C4,
unicodeslot=0xAB94,
},
[0xAB95]={
@@ -124965,6 +126132,7 @@ characters.data={
description="CHEROKEE SMALL LETTER NV",
direction="l",
linebreak="al",
+ uccode=0x13C5,
unicodeslot=0xAB95,
},
[0xAB96]={
@@ -124972,6 +126140,7 @@ characters.data={
description="CHEROKEE SMALL LETTER QUA",
direction="l",
linebreak="al",
+ uccode=0x13C6,
unicodeslot=0xAB96,
},
[0xAB97]={
@@ -124979,6 +126148,7 @@ characters.data={
description="CHEROKEE SMALL LETTER QUE",
direction="l",
linebreak="al",
+ uccode=0x13C7,
unicodeslot=0xAB97,
},
[0xAB98]={
@@ -124986,6 +126156,7 @@ characters.data={
description="CHEROKEE SMALL LETTER QUI",
direction="l",
linebreak="al",
+ uccode=0x13C8,
unicodeslot=0xAB98,
},
[0xAB99]={
@@ -124993,6 +126164,7 @@ characters.data={
description="CHEROKEE SMALL LETTER QUO",
direction="l",
linebreak="al",
+ uccode=0x13C9,
unicodeslot=0xAB99,
},
[0xAB9A]={
@@ -125000,6 +126172,7 @@ characters.data={
description="CHEROKEE SMALL LETTER QUU",
direction="l",
linebreak="al",
+ uccode=0x13CA,
unicodeslot=0xAB9A,
},
[0xAB9B]={
@@ -125007,6 +126180,7 @@ characters.data={
description="CHEROKEE SMALL LETTER QUV",
direction="l",
linebreak="al",
+ uccode=0x13CB,
unicodeslot=0xAB9B,
},
[0xAB9C]={
@@ -125014,6 +126188,7 @@ characters.data={
description="CHEROKEE SMALL LETTER SA",
direction="l",
linebreak="al",
+ uccode=0x13CC,
unicodeslot=0xAB9C,
},
[0xAB9D]={
@@ -125021,6 +126196,7 @@ characters.data={
description="CHEROKEE SMALL LETTER S",
direction="l",
linebreak="al",
+ uccode=0x13CD,
unicodeslot=0xAB9D,
},
[0xAB9E]={
@@ -125028,6 +126204,7 @@ characters.data={
description="CHEROKEE SMALL LETTER SE",
direction="l",
linebreak="al",
+ uccode=0x13CE,
unicodeslot=0xAB9E,
},
[0xAB9F]={
@@ -125035,6 +126212,7 @@ characters.data={
description="CHEROKEE SMALL LETTER SI",
direction="l",
linebreak="al",
+ uccode=0x13CF,
unicodeslot=0xAB9F,
},
[0xABA0]={
@@ -125042,6 +126220,7 @@ characters.data={
description="CHEROKEE SMALL LETTER SO",
direction="l",
linebreak="al",
+ uccode=0x13D0,
unicodeslot=0xABA0,
},
[0xABA1]={
@@ -125049,6 +126228,7 @@ characters.data={
description="CHEROKEE SMALL LETTER SU",
direction="l",
linebreak="al",
+ uccode=0x13D1,
unicodeslot=0xABA1,
},
[0xABA2]={
@@ -125056,6 +126236,7 @@ characters.data={
description="CHEROKEE SMALL LETTER SV",
direction="l",
linebreak="al",
+ uccode=0x13D2,
unicodeslot=0xABA2,
},
[0xABA3]={
@@ -125063,6 +126244,7 @@ characters.data={
description="CHEROKEE SMALL LETTER DA",
direction="l",
linebreak="al",
+ uccode=0x13D3,
unicodeslot=0xABA3,
},
[0xABA4]={
@@ -125070,6 +126252,7 @@ characters.data={
description="CHEROKEE SMALL LETTER TA",
direction="l",
linebreak="al",
+ uccode=0x13D4,
unicodeslot=0xABA4,
},
[0xABA5]={
@@ -125077,6 +126260,7 @@ characters.data={
description="CHEROKEE SMALL LETTER DE",
direction="l",
linebreak="al",
+ uccode=0x13D5,
unicodeslot=0xABA5,
},
[0xABA6]={
@@ -125084,6 +126268,7 @@ characters.data={
description="CHEROKEE SMALL LETTER TE",
direction="l",
linebreak="al",
+ uccode=0x13D6,
unicodeslot=0xABA6,
},
[0xABA7]={
@@ -125091,6 +126276,7 @@ characters.data={
description="CHEROKEE SMALL LETTER DI",
direction="l",
linebreak="al",
+ uccode=0x13D7,
unicodeslot=0xABA7,
},
[0xABA8]={
@@ -125098,6 +126284,7 @@ characters.data={
description="CHEROKEE SMALL LETTER TI",
direction="l",
linebreak="al",
+ uccode=0x13D8,
unicodeslot=0xABA8,
},
[0xABA9]={
@@ -125105,6 +126292,7 @@ characters.data={
description="CHEROKEE SMALL LETTER DO",
direction="l",
linebreak="al",
+ uccode=0x13D9,
unicodeslot=0xABA9,
},
[0xABAA]={
@@ -125112,6 +126300,7 @@ characters.data={
description="CHEROKEE SMALL LETTER DU",
direction="l",
linebreak="al",
+ uccode=0x13DA,
unicodeslot=0xABAA,
},
[0xABAB]={
@@ -125119,6 +126308,7 @@ characters.data={
description="CHEROKEE SMALL LETTER DV",
direction="l",
linebreak="al",
+ uccode=0x13DB,
unicodeslot=0xABAB,
},
[0xABAC]={
@@ -125126,6 +126316,7 @@ characters.data={
description="CHEROKEE SMALL LETTER DLA",
direction="l",
linebreak="al",
+ uccode=0x13DC,
unicodeslot=0xABAC,
},
[0xABAD]={
@@ -125133,6 +126324,7 @@ characters.data={
description="CHEROKEE SMALL LETTER TLA",
direction="l",
linebreak="al",
+ uccode=0x13DD,
unicodeslot=0xABAD,
},
[0xABAE]={
@@ -125140,6 +126332,7 @@ characters.data={
description="CHEROKEE SMALL LETTER TLE",
direction="l",
linebreak="al",
+ uccode=0x13DE,
unicodeslot=0xABAE,
},
[0xABAF]={
@@ -125147,6 +126340,7 @@ characters.data={
description="CHEROKEE SMALL LETTER TLI",
direction="l",
linebreak="al",
+ uccode=0x13DF,
unicodeslot=0xABAF,
},
[0xABB0]={
@@ -125154,6 +126348,7 @@ characters.data={
description="CHEROKEE SMALL LETTER TLO",
direction="l",
linebreak="al",
+ uccode=0x13E0,
unicodeslot=0xABB0,
},
[0xABB1]={
@@ -125161,6 +126356,7 @@ characters.data={
description="CHEROKEE SMALL LETTER TLU",
direction="l",
linebreak="al",
+ uccode=0x13E1,
unicodeslot=0xABB1,
},
[0xABB2]={
@@ -125168,6 +126364,7 @@ characters.data={
description="CHEROKEE SMALL LETTER TLV",
direction="l",
linebreak="al",
+ uccode=0x13E2,
unicodeslot=0xABB2,
},
[0xABB3]={
@@ -125175,6 +126372,7 @@ characters.data={
description="CHEROKEE SMALL LETTER TSA",
direction="l",
linebreak="al",
+ uccode=0x13E3,
unicodeslot=0xABB3,
},
[0xABB4]={
@@ -125182,6 +126380,7 @@ characters.data={
description="CHEROKEE SMALL LETTER TSE",
direction="l",
linebreak="al",
+ uccode=0x13E4,
unicodeslot=0xABB4,
},
[0xABB5]={
@@ -125189,6 +126388,7 @@ characters.data={
description="CHEROKEE SMALL LETTER TSI",
direction="l",
linebreak="al",
+ uccode=0x13E5,
unicodeslot=0xABB5,
},
[0xABB6]={
@@ -125196,6 +126396,7 @@ characters.data={
description="CHEROKEE SMALL LETTER TSO",
direction="l",
linebreak="al",
+ uccode=0x13E6,
unicodeslot=0xABB6,
},
[0xABB7]={
@@ -125203,6 +126404,7 @@ characters.data={
description="CHEROKEE SMALL LETTER TSU",
direction="l",
linebreak="al",
+ uccode=0x13E7,
unicodeslot=0xABB7,
},
[0xABB8]={
@@ -125210,6 +126412,7 @@ characters.data={
description="CHEROKEE SMALL LETTER TSV",
direction="l",
linebreak="al",
+ uccode=0x13E8,
unicodeslot=0xABB8,
},
[0xABB9]={
@@ -125217,6 +126420,7 @@ characters.data={
description="CHEROKEE SMALL LETTER WA",
direction="l",
linebreak="al",
+ uccode=0x13E9,
unicodeslot=0xABB9,
},
[0xABBA]={
@@ -125224,6 +126428,7 @@ characters.data={
description="CHEROKEE SMALL LETTER WE",
direction="l",
linebreak="al",
+ uccode=0x13EA,
unicodeslot=0xABBA,
},
[0xABBB]={
@@ -125231,6 +126436,7 @@ characters.data={
description="CHEROKEE SMALL LETTER WI",
direction="l",
linebreak="al",
+ uccode=0x13EB,
unicodeslot=0xABBB,
},
[0xABBC]={
@@ -125238,6 +126444,7 @@ characters.data={
description="CHEROKEE SMALL LETTER WO",
direction="l",
linebreak="al",
+ uccode=0x13EC,
unicodeslot=0xABBC,
},
[0xABBD]={
@@ -125245,6 +126452,7 @@ characters.data={
description="CHEROKEE SMALL LETTER WU",
direction="l",
linebreak="al",
+ uccode=0x13ED,
unicodeslot=0xABBD,
},
[0xABBE]={
@@ -125252,6 +126460,7 @@ characters.data={
description="CHEROKEE SMALL LETTER WV",
direction="l",
linebreak="al",
+ uccode=0x13EE,
unicodeslot=0xABBE,
},
[0xABBF]={
@@ -125259,6 +126468,7 @@ characters.data={
description="CHEROKEE SMALL LETTER YA",
direction="l",
linebreak="al",
+ uccode=0x13EF,
unicodeslot=0xABBF,
},
[0xABC0]={
@@ -130459,6 +131669,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "compat", 0x66, 0x66 },
+ uccode={ 0x66, 0x66 },
unicodeslot=0xFB00,
},
[0xFB01]={
@@ -130470,6 +131681,7 @@ characters.data={
linebreak="al",
shcode={ 0x66, 0x69 },
specials={ "compat", 0x66, 0x69 },
+ uccode={ 0x66, 0x69 },
unicodeslot=0xFB01,
},
[0xFB02]={
@@ -130481,6 +131693,7 @@ characters.data={
linebreak="al",
shcode={ 0x66, 0x6C },
specials={ "compat", 0x66, 0x6C },
+ uccode={ 0x66, 0x6C },
unicodeslot=0xFB02,
},
[0xFB03]={
@@ -130492,6 +131705,7 @@ characters.data={
linebreak="al",
shcode={ 0x66, 0x69 },
specials={ "compat", 0x66, 0x66, 0x69 },
+ uccode={ 0x66, 0x66, 0x69 },
unicodeslot=0xFB03,
},
[0xFB04]={
@@ -130503,6 +131717,7 @@ characters.data={
linebreak="al",
shcode={ 0x66, 0x6C },
specials={ "compat", 0x66, 0x66, 0x6C },
+ uccode={ 0x66, 0x66, 0x6C },
unicodeslot=0xFB04,
},
[0xFB05]={
@@ -130511,6 +131726,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "compat", 0x17F, 0x74 },
+ uccode={ 0x73, 0x74 },
unicodeslot=0xFB05,
},
[0xFB06]={
@@ -130521,6 +131737,7 @@ characters.data={
linebreak="al",
shcode={ 0x73, 0x74 },
specials={ "compat", 0x73, 0x74 },
+ uccode={ 0x73, 0x74 },
unicodeslot=0xFB06,
},
[0xFB13]={
@@ -130529,6 +131746,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "compat", 0x574, 0x576 },
+ uccode={ 0x574, 0x576 },
unicodeslot=0xFB13,
},
[0xFB14]={
@@ -130537,6 +131755,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "compat", 0x574, 0x565 },
+ uccode={ 0x574, 0x565 },
unicodeslot=0xFB14,
},
[0xFB15]={
@@ -130545,6 +131764,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "compat", 0x574, 0x56B },
+ uccode={ 0x574, 0x56B },
unicodeslot=0xFB15,
},
[0xFB16]={
@@ -130553,6 +131773,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "compat", 0x57E, 0x576 },
+ uccode={ 0x57E, 0x576 },
unicodeslot=0xFB16,
},
[0xFB17]={
@@ -130561,6 +131782,7 @@ characters.data={
direction="l",
linebreak="al",
specials={ "compat", 0x574, 0x56D },
+ uccode={ 0x574, 0x56D },
unicodeslot=0xFB17,
},
[0xFB1D]={
@@ -131920,6 +133142,13 @@ characters.data={
linebreak="al",
unicodeslot=0xFBC1,
},
+ [0xFBC2]={
+ category="sk",
+ description="ARABIC SYMBOL WASLA ABOVE",
+ direction="al",
+ linebreak="al",
+ unicodeslot=0xFBC2,
+ },
[0xFBD3]={
category="lo",
description="ARABIC LETTER NG ISOLATED FORM",
@@ -134872,6 +136101,118 @@ characters.data={
linebreak="op",
unicodeslot=0xFD3F,
},
+ [0xFD40]={
+ category="so",
+ description="ARABIC LIGATURE RAHIMAHU ALLAAH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFD40,
+ },
+ [0xFD41]={
+ category="so",
+ description="ARABIC LIGATURE RADI ALLAAHU ANH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFD41,
+ },
+ [0xFD42]={
+ category="so",
+ description="ARABIC LIGATURE RADI ALLAAHU ANHAA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFD42,
+ },
+ [0xFD43]={
+ category="so",
+ description="ARABIC LIGATURE RADI ALLAAHU ANHUM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFD43,
+ },
+ [0xFD44]={
+ category="so",
+ description="ARABIC LIGATURE RADI ALLAAHU ANHUMAA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFD44,
+ },
+ [0xFD45]={
+ category="so",
+ description="ARABIC LIGATURE RADI ALLAAHU ANHUNNA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFD45,
+ },
+ [0xFD46]={
+ category="so",
+ description="ARABIC LIGATURE SALLALLAAHU ALAYHI WA-AALIH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFD46,
+ },
+ [0xFD47]={
+ category="so",
+ description="ARABIC LIGATURE ALAYHI AS-SALAAM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFD47,
+ },
+ [0xFD48]={
+ category="so",
+ description="ARABIC LIGATURE ALAYHIM AS-SALAAM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFD48,
+ },
+ [0xFD49]={
+ category="so",
+ description="ARABIC LIGATURE ALAYHIMAA AS-SALAAM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFD49,
+ },
+ [0xFD4A]={
+ category="so",
+ description="ARABIC LIGATURE ALAYHI AS-SALAATU WAS-SALAAM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFD4A,
+ },
+ [0xFD4B]={
+ category="so",
+ description="ARABIC LIGATURE QUDDISA SIRRAH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFD4B,
+ },
+ [0xFD4C]={
+ category="so",
+ description="ARABIC LIGATURE SALLALLAHU ALAYHI WAAALIHEE WA-SALLAM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFD4C,
+ },
+ [0xFD4D]={
+ category="so",
+ description="ARABIC LIGATURE ALAYHAA AS-SALAAM",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFD4D,
+ },
+ [0xFD4E]={
+ category="so",
+ description="ARABIC LIGATURE TABAARAKA WA-TAAALAA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFD4E,
+ },
+ [0xFD4F]={
+ category="so",
+ description="ARABIC LIGATURE RAHIMAHUM ALLAAH",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFD4F,
+ },
[0xFD50]={
category="lo",
description="ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM",
@@ -135817,6 +137158,13 @@ characters.data={
specials={ "final", 0x646, 0x62C, 0x64A },
unicodeslot=0xFDC7,
},
+ [0xFDCF]={
+ category="so",
+ description="ARABIC LIGATURE SALAAMUHU ALAYNAA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFDCF,
+ },
[0xFDF0]={
category="lo",
contextname="arabicsalla",
@@ -135945,6 +137293,20 @@ characters.data={
linebreak="al",
unicodeslot=0xFDFD,
},
+ [0xFDFE]={
+ category="so",
+ description="ARABIC LIGATURE SUBHAANAHU WA TAAALAA",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFDFE,
+ },
+ [0xFDFF]={
+ category="so",
+ description="ARABIC LIGATURE AZZA WA JALL",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0xFDFF,
+ },
[0xFE00]={
description="VARIATION SELECTOR-0x0001",
synonyms={ "vs1" },
@@ -136038,6 +137400,7 @@ characters.data={
description="PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS",
direction="on",
linebreak="in",
+ mathclass="ellipsis",
specials={ "vertical", 0x2026 },
unicodeslot=0xFE19,
},
@@ -146536,6 +147899,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER A",
direction="l",
+ lccode=0x104D8,
linebreak="al",
unicodeslot=0x104B0,
},
@@ -146543,6 +147907,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER AI",
direction="l",
+ lccode=0x104D9,
linebreak="al",
unicodeslot=0x104B1,
},
@@ -146550,6 +147915,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER AIN",
direction="l",
+ lccode=0x104DA,
linebreak="al",
unicodeslot=0x104B2,
},
@@ -146557,6 +147923,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER AH",
direction="l",
+ lccode=0x104DB,
linebreak="al",
unicodeslot=0x104B3,
},
@@ -146564,6 +147931,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER BRA",
direction="l",
+ lccode=0x104DC,
linebreak="al",
unicodeslot=0x104B4,
},
@@ -146571,6 +147939,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER CHA",
direction="l",
+ lccode=0x104DD,
linebreak="al",
unicodeslot=0x104B5,
},
@@ -146578,6 +147947,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER EHCHA",
direction="l",
+ lccode=0x104DE,
linebreak="al",
unicodeslot=0x104B6,
},
@@ -146585,6 +147955,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER E",
direction="l",
+ lccode=0x104DF,
linebreak="al",
unicodeslot=0x104B7,
},
@@ -146592,6 +147963,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER EIN",
direction="l",
+ lccode=0x104E0,
linebreak="al",
unicodeslot=0x104B8,
},
@@ -146599,6 +147971,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER HA",
direction="l",
+ lccode=0x104E1,
linebreak="al",
unicodeslot=0x104B9,
},
@@ -146606,6 +147979,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER HYA",
direction="l",
+ lccode=0x104E2,
linebreak="al",
unicodeslot=0x104BA,
},
@@ -146613,6 +147987,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER I",
direction="l",
+ lccode=0x104E3,
linebreak="al",
unicodeslot=0x104BB,
},
@@ -146620,6 +147995,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER KA",
direction="l",
+ lccode=0x104E4,
linebreak="al",
unicodeslot=0x104BC,
},
@@ -146627,6 +148003,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER EHKA",
direction="l",
+ lccode=0x104E5,
linebreak="al",
unicodeslot=0x104BD,
},
@@ -146634,6 +148011,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER KYA",
direction="l",
+ lccode=0x104E6,
linebreak="al",
unicodeslot=0x104BE,
},
@@ -146641,6 +148019,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER LA",
direction="l",
+ lccode=0x104E7,
linebreak="al",
unicodeslot=0x104BF,
},
@@ -146648,6 +148027,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER MA",
direction="l",
+ lccode=0x104E8,
linebreak="al",
unicodeslot=0x104C0,
},
@@ -146655,6 +148035,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER NA",
direction="l",
+ lccode=0x104E9,
linebreak="al",
unicodeslot=0x104C1,
},
@@ -146662,6 +148043,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER O",
direction="l",
+ lccode=0x104EA,
linebreak="al",
unicodeslot=0x104C2,
},
@@ -146669,6 +148051,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER OIN",
direction="l",
+ lccode=0x104EB,
linebreak="al",
unicodeslot=0x104C3,
},
@@ -146676,6 +148059,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER PA",
direction="l",
+ lccode=0x104EC,
linebreak="al",
unicodeslot=0x104C4,
},
@@ -146683,6 +148067,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER EHPA",
direction="l",
+ lccode=0x104ED,
linebreak="al",
unicodeslot=0x104C5,
},
@@ -146690,6 +148075,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER SA",
direction="l",
+ lccode=0x104EE,
linebreak="al",
unicodeslot=0x104C6,
},
@@ -146697,6 +148083,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER SHA",
direction="l",
+ lccode=0x104EF,
linebreak="al",
unicodeslot=0x104C7,
},
@@ -146704,6 +148091,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER TA",
direction="l",
+ lccode=0x104F0,
linebreak="al",
unicodeslot=0x104C8,
},
@@ -146711,6 +148099,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER EHTA",
direction="l",
+ lccode=0x104F1,
linebreak="al",
unicodeslot=0x104C9,
},
@@ -146718,6 +148107,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER TSA",
direction="l",
+ lccode=0x104F2,
linebreak="al",
unicodeslot=0x104CA,
},
@@ -146725,6 +148115,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER EHTSA",
direction="l",
+ lccode=0x104F3,
linebreak="al",
unicodeslot=0x104CB,
},
@@ -146732,6 +148123,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER TSHA",
direction="l",
+ lccode=0x104F4,
linebreak="al",
unicodeslot=0x104CC,
},
@@ -146739,6 +148131,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER DHA",
direction="l",
+ lccode=0x104F5,
linebreak="al",
unicodeslot=0x104CD,
},
@@ -146746,6 +148139,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER U",
direction="l",
+ lccode=0x104F6,
linebreak="al",
unicodeslot=0x104CE,
},
@@ -146753,6 +148147,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER WA",
direction="l",
+ lccode=0x104F7,
linebreak="al",
unicodeslot=0x104CF,
},
@@ -146760,6 +148155,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER KHA",
direction="l",
+ lccode=0x104F8,
linebreak="al",
unicodeslot=0x104D0,
},
@@ -146767,6 +148163,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER GHA",
direction="l",
+ lccode=0x104F9,
linebreak="al",
unicodeslot=0x104D1,
},
@@ -146774,6 +148171,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER ZA",
direction="l",
+ lccode=0x104FA,
linebreak="al",
unicodeslot=0x104D2,
},
@@ -146781,6 +148179,7 @@ characters.data={
category="lu",
description="OSAGE CAPITAL LETTER ZHA",
direction="l",
+ lccode=0x104FB,
linebreak="al",
unicodeslot=0x104D3,
},
@@ -147687,6 +149086,531 @@ characters.data={
linebreak="al",
unicodeslot=0x1056F,
},
+ [0x10570]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER A",
+ direction="l",
+ lccode=0x10597,
+ linebreak="al",
+ unicodeslot=0x10570,
+ },
+ [0x10571]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER BBE",
+ direction="l",
+ lccode=0x10598,
+ linebreak="al",
+ unicodeslot=0x10571,
+ },
+ [0x10572]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER BE",
+ direction="l",
+ lccode=0x10599,
+ linebreak="al",
+ unicodeslot=0x10572,
+ },
+ [0x10573]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER CE",
+ direction="l",
+ lccode=0x1059A,
+ linebreak="al",
+ unicodeslot=0x10573,
+ },
+ [0x10574]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER CHE",
+ direction="l",
+ lccode=0x1059B,
+ linebreak="al",
+ unicodeslot=0x10574,
+ },
+ [0x10575]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER DE",
+ direction="l",
+ lccode=0x1059C,
+ linebreak="al",
+ unicodeslot=0x10575,
+ },
+ [0x10576]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER DHE",
+ direction="l",
+ lccode=0x1059D,
+ linebreak="al",
+ unicodeslot=0x10576,
+ },
+ [0x10577]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER EI",
+ direction="l",
+ lccode=0x1059E,
+ linebreak="al",
+ unicodeslot=0x10577,
+ },
+ [0x10578]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER E",
+ direction="l",
+ lccode=0x1059F,
+ linebreak="al",
+ unicodeslot=0x10578,
+ },
+ [0x10579]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER FE",
+ direction="l",
+ lccode=0x105A0,
+ linebreak="al",
+ unicodeslot=0x10579,
+ },
+ [0x1057A]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER GA",
+ direction="l",
+ lccode=0x105A1,
+ linebreak="al",
+ unicodeslot=0x1057A,
+ },
+ [0x1057C]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER HA",
+ direction="l",
+ lccode=0x105A3,
+ linebreak="al",
+ unicodeslot=0x1057C,
+ },
+ [0x1057D]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER HHA",
+ direction="l",
+ lccode=0x105A4,
+ linebreak="al",
+ unicodeslot=0x1057D,
+ },
+ [0x1057E]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER I",
+ direction="l",
+ lccode=0x105A5,
+ linebreak="al",
+ unicodeslot=0x1057E,
+ },
+ [0x1057F]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER IJE",
+ direction="l",
+ lccode=0x105A6,
+ linebreak="al",
+ unicodeslot=0x1057F,
+ },
+ [0x10580]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER JE",
+ direction="l",
+ lccode=0x105A7,
+ linebreak="al",
+ unicodeslot=0x10580,
+ },
+ [0x10581]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER KA",
+ direction="l",
+ lccode=0x105A8,
+ linebreak="al",
+ unicodeslot=0x10581,
+ },
+ [0x10582]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER LA",
+ direction="l",
+ lccode=0x105A9,
+ linebreak="al",
+ unicodeslot=0x10582,
+ },
+ [0x10583]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER LLA",
+ direction="l",
+ lccode=0x105AA,
+ linebreak="al",
+ unicodeslot=0x10583,
+ },
+ [0x10584]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER ME",
+ direction="l",
+ lccode=0x105AB,
+ linebreak="al",
+ unicodeslot=0x10584,
+ },
+ [0x10585]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER NE",
+ direction="l",
+ lccode=0x105AC,
+ linebreak="al",
+ unicodeslot=0x10585,
+ },
+ [0x10586]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER NJE",
+ direction="l",
+ lccode=0x105AD,
+ linebreak="al",
+ unicodeslot=0x10586,
+ },
+ [0x10587]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER O",
+ direction="l",
+ lccode=0x105AE,
+ linebreak="al",
+ unicodeslot=0x10587,
+ },
+ [0x10588]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER PE",
+ direction="l",
+ lccode=0x105AF,
+ linebreak="al",
+ unicodeslot=0x10588,
+ },
+ [0x10589]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER QA",
+ direction="l",
+ lccode=0x105B0,
+ linebreak="al",
+ unicodeslot=0x10589,
+ },
+ [0x1058A]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER RE",
+ direction="l",
+ lccode=0x105B1,
+ linebreak="al",
+ unicodeslot=0x1058A,
+ },
+ [0x1058C]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER SE",
+ direction="l",
+ lccode=0x105B3,
+ linebreak="al",
+ unicodeslot=0x1058C,
+ },
+ [0x1058D]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER SHE",
+ direction="l",
+ lccode=0x105B4,
+ linebreak="al",
+ unicodeslot=0x1058D,
+ },
+ [0x1058E]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER TE",
+ direction="l",
+ lccode=0x105B5,
+ linebreak="al",
+ unicodeslot=0x1058E,
+ },
+ [0x1058F]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER THE",
+ direction="l",
+ lccode=0x105B6,
+ linebreak="al",
+ unicodeslot=0x1058F,
+ },
+ [0x10590]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER U",
+ direction="l",
+ lccode=0x105B7,
+ linebreak="al",
+ unicodeslot=0x10590,
+ },
+ [0x10591]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER VE",
+ direction="l",
+ lccode=0x105B8,
+ linebreak="al",
+ unicodeslot=0x10591,
+ },
+ [0x10592]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER XE",
+ direction="l",
+ lccode=0x105B9,
+ linebreak="al",
+ unicodeslot=0x10592,
+ },
+ [0x10594]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER Y",
+ direction="l",
+ lccode=0x105BB,
+ linebreak="al",
+ unicodeslot=0x10594,
+ },
+ [0x10595]={
+ category="lu",
+ description="VITHKUQI CAPITAL LETTER ZE",
+ direction="l",
+ lccode=0x105BC,
+ linebreak="al",
+ unicodeslot=0x10595,
+ },
+ [0x10597]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10597,
+ },
+ [0x10598]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER BBE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10598,
+ },
+ [0x10599]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER BE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10599,
+ },
+ [0x1059A]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER CE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1059A,
+ },
+ [0x1059B]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER CHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1059B,
+ },
+ [0x1059C]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER DE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1059C,
+ },
+ [0x1059D]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER DHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1059D,
+ },
+ [0x1059E]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER EI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1059E,
+ },
+ [0x1059F]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1059F,
+ },
+ [0x105A0]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER FE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105A0,
+ },
+ [0x105A1]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105A1,
+ },
+ [0x105A3]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105A3,
+ },
+ [0x105A4]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER HHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105A4,
+ },
+ [0x105A5]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105A5,
+ },
+ [0x105A6]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER IJE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105A6,
+ },
+ [0x105A7]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER JE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105A7,
+ },
+ [0x105A8]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105A8,
+ },
+ [0x105A9]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105A9,
+ },
+ [0x105AA]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER LLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105AA,
+ },
+ [0x105AB]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER ME",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105AB,
+ },
+ [0x105AC]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER NE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105AC,
+ },
+ [0x105AD]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER NJE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105AD,
+ },
+ [0x105AE]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105AE,
+ },
+ [0x105AF]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER PE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105AF,
+ },
+ [0x105B0]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER QA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105B0,
+ },
+ [0x105B1]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER RE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105B1,
+ },
+ [0x105B3]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER SE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105B3,
+ },
+ [0x105B4]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER SHE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105B4,
+ },
+ [0x105B5]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER TE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105B5,
+ },
+ [0x105B6]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER THE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105B6,
+ },
+ [0x105B7]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105B7,
+ },
+ [0x105B8]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER VE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105B8,
+ },
+ [0x105B9]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER XE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105B9,
+ },
+ [0x105BB]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER Y",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105BB,
+ },
+ [0x105BC]={
+ category="ll",
+ description="VITHKUQI SMALL LETTER ZE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x105BC,
+ },
[0x10600]={
category="lo",
description="LINEAR A SIGN AB001",
@@ -150074,6 +151998,461 @@ characters.data={
linebreak="al",
unicodeslot=0x10767,
},
+ [0x10780]={
+ category="lm",
+ description="MODIFIER LETTER SMALL CAPITAL AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x10780,
+ },
+ [0x10781]={
+ category="lm",
+ description="MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x2D0 },
+ unicodeslot=0x10781,
+ },
+ [0x10782]={
+ category="lm",
+ description="MODIFIER LETTER SUPERSCRIPT HALF TRIANGULAR COLON",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x2D1 },
+ unicodeslot=0x10782,
+ },
+ [0x10783]={
+ category="lm",
+ description="MODIFIER LETTER SMALL AE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0xE6 },
+ unicodeslot=0x10783,
+ },
+ [0x10784]={
+ category="lm",
+ description="MODIFIER LETTER SMALL CAPITAL B",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x299 },
+ unicodeslot=0x10784,
+ },
+ [0x10785]={
+ category="lm",
+ description="MODIFIER LETTER SMALL B WITH HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x253 },
+ unicodeslot=0x10785,
+ },
+ [0x10787]={
+ category="lm",
+ description="MODIFIER LETTER SMALL DZ DIGRAPH",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x2A3 },
+ unicodeslot=0x10787,
+ },
+ [0x10788]={
+ category="lm",
+ description="MODIFIER LETTER SMALL DZ DIGRAPH WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0xAB66 },
+ unicodeslot=0x10788,
+ },
+ [0x10789]={
+ category="lm",
+ description="MODIFIER LETTER SMALL DZ DIGRAPH WITH CURL",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x2A5 },
+ unicodeslot=0x10789,
+ },
+ [0x1078A]={
+ category="lm",
+ description="MODIFIER LETTER SMALL DEZH DIGRAPH",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x2A4 },
+ unicodeslot=0x1078A,
+ },
+ [0x1078B]={
+ category="lm",
+ description="MODIFIER LETTER SMALL D WITH TAIL",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x256 },
+ unicodeslot=0x1078B,
+ },
+ [0x1078C]={
+ category="lm",
+ description="MODIFIER LETTER SMALL D WITH HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x257 },
+ unicodeslot=0x1078C,
+ },
+ [0x1078D]={
+ category="lm",
+ description="MODIFIER LETTER SMALL D WITH HOOK AND TAIL",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1D91 },
+ unicodeslot=0x1078D,
+ },
+ [0x1078E]={
+ category="lm",
+ description="MODIFIER LETTER SMALL REVERSED E",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x258 },
+ unicodeslot=0x1078E,
+ },
+ [0x1078F]={
+ category="lm",
+ description="MODIFIER LETTER SMALL CLOSED REVERSED OPEN E",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x25E },
+ unicodeslot=0x1078F,
+ },
+ [0x10790]={
+ category="lm",
+ description="MODIFIER LETTER SMALL FENG DIGRAPH",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x2A9 },
+ unicodeslot=0x10790,
+ },
+ [0x10791]={
+ category="lm",
+ description="MODIFIER LETTER SMALL RAMS HORN",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x264 },
+ unicodeslot=0x10791,
+ },
+ [0x10792]={
+ category="lm",
+ description="MODIFIER LETTER SMALL CAPITAL G",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x262 },
+ unicodeslot=0x10792,
+ },
+ [0x10793]={
+ category="lm",
+ description="MODIFIER LETTER SMALL G WITH HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x260 },
+ unicodeslot=0x10793,
+ },
+ [0x10794]={
+ category="lm",
+ description="MODIFIER LETTER SMALL CAPITAL G WITH HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x29B },
+ unicodeslot=0x10794,
+ },
+ [0x10795]={
+ category="lm",
+ description="MODIFIER LETTER SMALL H WITH STROKE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x127 },
+ unicodeslot=0x10795,
+ },
+ [0x10796]={
+ category="lm",
+ description="MODIFIER LETTER SMALL CAPITAL H",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x29C },
+ unicodeslot=0x10796,
+ },
+ [0x10797]={
+ category="lm",
+ description="MODIFIER LETTER SMALL HENG WITH HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x267 },
+ unicodeslot=0x10797,
+ },
+ [0x10798]={
+ category="lm",
+ description="MODIFIER LETTER SMALL DOTLESS J WITH STROKE AND HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x284 },
+ unicodeslot=0x10798,
+ },
+ [0x10799]={
+ category="lm",
+ description="MODIFIER LETTER SMALL LS DIGRAPH",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x2AA },
+ unicodeslot=0x10799,
+ },
+ [0x1079A]={
+ category="lm",
+ description="MODIFIER LETTER SMALL LZ DIGRAPH",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x2AB },
+ unicodeslot=0x1079A,
+ },
+ [0x1079B]={
+ category="lm",
+ description="MODIFIER LETTER SMALL L WITH BELT",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x26C },
+ unicodeslot=0x1079B,
+ },
+ [0x1079C]={
+ category="lm",
+ description="MODIFIER LETTER SMALL CAPITAL L WITH BELT",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1DF04 },
+ unicodeslot=0x1079C,
+ },
+ [0x1079D]={
+ category="lm",
+ description="MODIFIER LETTER SMALL L WITH RETROFLEX HOOK AND BELT",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0xA78E },
+ unicodeslot=0x1079D,
+ },
+ [0x1079E]={
+ category="lm",
+ description="MODIFIER LETTER SMALL LEZH",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x26E },
+ unicodeslot=0x1079E,
+ },
+ [0x1079F]={
+ category="lm",
+ description="MODIFIER LETTER SMALL LEZH WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1DF05 },
+ unicodeslot=0x1079F,
+ },
+ [0x107A0]={
+ category="lm",
+ description="MODIFIER LETTER SMALL TURNED Y",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x28E },
+ unicodeslot=0x107A0,
+ },
+ [0x107A1]={
+ category="lm",
+ description="MODIFIER LETTER SMALL TURNED Y WITH BELT",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1DF06 },
+ unicodeslot=0x107A1,
+ },
+ [0x107A2]={
+ category="lm",
+ description="MODIFIER LETTER SMALL O WITH STROKE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0xF8 },
+ unicodeslot=0x107A2,
+ },
+ [0x107A3]={
+ category="lm",
+ description="MODIFIER LETTER SMALL CAPITAL OE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x276 },
+ unicodeslot=0x107A3,
+ },
+ [0x107A4]={
+ category="lm",
+ description="MODIFIER LETTER SMALL CLOSED OMEGA",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x277 },
+ unicodeslot=0x107A4,
+ },
+ [0x107A5]={
+ category="lm",
+ description="MODIFIER LETTER SMALL Q",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x71 },
+ unicodeslot=0x107A5,
+ },
+ [0x107A6]={
+ category="lm",
+ description="MODIFIER LETTER SMALL TURNED R WITH LONG LEG",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x27A },
+ unicodeslot=0x107A6,
+ },
+ [0x107A7]={
+ category="lm",
+ description="MODIFIER LETTER SMALL TURNED R WITH LONG LEG AND RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1DF08 },
+ unicodeslot=0x107A7,
+ },
+ [0x107A8]={
+ category="lm",
+ description="MODIFIER LETTER SMALL R WITH TAIL",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x27D },
+ unicodeslot=0x107A8,
+ },
+ [0x107A9]={
+ category="lm",
+ description="MODIFIER LETTER SMALL R WITH FISHHOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x27E },
+ unicodeslot=0x107A9,
+ },
+ [0x107AA]={
+ category="lm",
+ description="MODIFIER LETTER SMALL CAPITAL R",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x280 },
+ unicodeslot=0x107AA,
+ },
+ [0x107AB]={
+ category="lm",
+ description="MODIFIER LETTER SMALL TC DIGRAPH WITH CURL",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x2A8 },
+ unicodeslot=0x107AB,
+ },
+ [0x107AC]={
+ category="lm",
+ description="MODIFIER LETTER SMALL TS DIGRAPH",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x2A6 },
+ unicodeslot=0x107AC,
+ },
+ [0x107AD]={
+ category="lm",
+ description="MODIFIER LETTER SMALL TS DIGRAPH WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0xAB67 },
+ unicodeslot=0x107AD,
+ },
+ [0x107AE]={
+ category="lm",
+ description="MODIFIER LETTER SMALL TESH DIGRAPH",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x2A7 },
+ unicodeslot=0x107AE,
+ },
+ [0x107AF]={
+ category="lm",
+ description="MODIFIER LETTER SMALL T WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x288 },
+ unicodeslot=0x107AF,
+ },
+ [0x107B0]={
+ category="lm",
+ description="MODIFIER LETTER SMALL V WITH RIGHT HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x2C71 },
+ unicodeslot=0x107B0,
+ },
+ [0x107B2]={
+ category="lm",
+ description="MODIFIER LETTER SMALL CAPITAL Y",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x28F },
+ unicodeslot=0x107B2,
+ },
+ [0x107B3]={
+ category="lm",
+ description="MODIFIER LETTER GLOTTAL STOP WITH STROKE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x2A1 },
+ unicodeslot=0x107B3,
+ },
+ [0x107B4]={
+ category="lm",
+ description="MODIFIER LETTER REVERSED GLOTTAL STOP WITH STROKE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x2A2 },
+ unicodeslot=0x107B4,
+ },
+ [0x107B5]={
+ category="lm",
+ description="MODIFIER LETTER BILABIAL CLICK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x298 },
+ unicodeslot=0x107B5,
+ },
+ [0x107B6]={
+ category="lm",
+ description="MODIFIER LETTER DENTAL CLICK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1C0 },
+ unicodeslot=0x107B6,
+ },
+ [0x107B7]={
+ category="lm",
+ description="MODIFIER LETTER LATERAL CLICK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1C1 },
+ unicodeslot=0x107B7,
+ },
+ [0x107B8]={
+ category="lm",
+ description="MODIFIER LETTER ALVEOLAR CLICK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1C2 },
+ unicodeslot=0x107B8,
+ },
+ [0x107B9]={
+ category="lm",
+ description="MODIFIER LETTER RETROFLEX CLICK WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1DF0A },
+ unicodeslot=0x107B9,
+ },
+ [0x107BA]={
+ category="lm",
+ description="MODIFIER LETTER SMALL S WITH CURL",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x1DF1E },
+ unicodeslot=0x107BA,
+ },
[0x10800]={
category="lo",
description="CYPRIOT SYLLABLE A",
@@ -155523,6 +157902,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER A",
direction="r",
+ lccode=0x10CC0,
linebreak="al",
unicodeslot=0x10C80,
},
@@ -155530,6 +157910,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER AA",
direction="r",
+ lccode=0x10CC1,
linebreak="al",
unicodeslot=0x10C81,
},
@@ -155537,6 +157918,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EB",
direction="r",
+ lccode=0x10CC2,
linebreak="al",
unicodeslot=0x10C82,
},
@@ -155544,6 +157926,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER AMB",
direction="r",
+ lccode=0x10CC3,
linebreak="al",
unicodeslot=0x10C83,
},
@@ -155551,6 +157934,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EC",
direction="r",
+ lccode=0x10CC4,
linebreak="al",
unicodeslot=0x10C84,
},
@@ -155558,6 +157942,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER ENC",
direction="r",
+ lccode=0x10CC5,
linebreak="al",
unicodeslot=0x10C85,
},
@@ -155565,6 +157950,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER ECS",
direction="r",
+ lccode=0x10CC6,
linebreak="al",
unicodeslot=0x10C86,
},
@@ -155572,6 +157958,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER ED",
direction="r",
+ lccode=0x10CC7,
linebreak="al",
unicodeslot=0x10C87,
},
@@ -155579,6 +157966,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER AND",
direction="r",
+ lccode=0x10CC8,
linebreak="al",
unicodeslot=0x10C88,
},
@@ -155586,6 +157974,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER E",
direction="r",
+ lccode=0x10CC9,
linebreak="al",
unicodeslot=0x10C89,
},
@@ -155593,6 +157982,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER CLOSE E",
direction="r",
+ lccode=0x10CCA,
linebreak="al",
unicodeslot=0x10C8A,
},
@@ -155600,6 +157990,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EE",
direction="r",
+ lccode=0x10CCB,
linebreak="al",
unicodeslot=0x10C8B,
},
@@ -155607,6 +157998,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EF",
direction="r",
+ lccode=0x10CCC,
linebreak="al",
unicodeslot=0x10C8C,
},
@@ -155614,6 +158006,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EG",
direction="r",
+ lccode=0x10CCD,
linebreak="al",
unicodeslot=0x10C8D,
},
@@ -155621,6 +158014,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EGY",
direction="r",
+ lccode=0x10CCE,
linebreak="al",
unicodeslot=0x10C8E,
},
@@ -155628,6 +158022,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EH",
direction="r",
+ lccode=0x10CCF,
linebreak="al",
unicodeslot=0x10C8F,
},
@@ -155635,6 +158030,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER I",
direction="r",
+ lccode=0x10CD0,
linebreak="al",
unicodeslot=0x10C90,
},
@@ -155642,6 +158038,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER II",
direction="r",
+ lccode=0x10CD1,
linebreak="al",
unicodeslot=0x10C91,
},
@@ -155649,6 +158046,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EJ",
direction="r",
+ lccode=0x10CD2,
linebreak="al",
unicodeslot=0x10C92,
},
@@ -155656,6 +158054,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EK",
direction="r",
+ lccode=0x10CD3,
linebreak="al",
unicodeslot=0x10C93,
},
@@ -155663,6 +158062,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER AK",
direction="r",
+ lccode=0x10CD4,
linebreak="al",
unicodeslot=0x10C94,
},
@@ -155670,6 +158070,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER UNK",
direction="r",
+ lccode=0x10CD5,
linebreak="al",
unicodeslot=0x10C95,
},
@@ -155677,6 +158078,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EL",
direction="r",
+ lccode=0x10CD6,
linebreak="al",
unicodeslot=0x10C96,
},
@@ -155684,6 +158086,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER ELY",
direction="r",
+ lccode=0x10CD7,
linebreak="al",
unicodeslot=0x10C97,
},
@@ -155691,6 +158094,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EM",
direction="r",
+ lccode=0x10CD8,
linebreak="al",
unicodeslot=0x10C98,
},
@@ -155698,6 +158102,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EN",
direction="r",
+ lccode=0x10CD9,
linebreak="al",
unicodeslot=0x10C99,
},
@@ -155705,6 +158110,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER ENY",
direction="r",
+ lccode=0x10CDA,
linebreak="al",
unicodeslot=0x10C9A,
},
@@ -155712,6 +158118,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER O",
direction="r",
+ lccode=0x10CDB,
linebreak="al",
unicodeslot=0x10C9B,
},
@@ -155719,6 +158126,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER OO",
direction="r",
+ lccode=0x10CDC,
linebreak="al",
unicodeslot=0x10C9C,
},
@@ -155726,6 +158134,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG OE",
direction="r",
+ lccode=0x10CDD,
linebreak="al",
unicodeslot=0x10C9D,
},
@@ -155733,6 +158142,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER RUDIMENTA OE",
direction="r",
+ lccode=0x10CDE,
linebreak="al",
unicodeslot=0x10C9E,
},
@@ -155740,6 +158150,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER OEE",
direction="r",
+ lccode=0x10CDF,
linebreak="al",
unicodeslot=0x10C9F,
},
@@ -155747,6 +158158,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EP",
direction="r",
+ lccode=0x10CE0,
linebreak="al",
unicodeslot=0x10CA0,
},
@@ -155754,6 +158166,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EMP",
direction="r",
+ lccode=0x10CE1,
linebreak="al",
unicodeslot=0x10CA1,
},
@@ -155761,6 +158174,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER ER",
direction="r",
+ lccode=0x10CE2,
linebreak="al",
unicodeslot=0x10CA2,
},
@@ -155768,6 +158182,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER SHORT ER",
direction="r",
+ lccode=0x10CE3,
linebreak="al",
unicodeslot=0x10CA3,
},
@@ -155775,6 +158190,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER ES",
direction="r",
+ lccode=0x10CE4,
linebreak="al",
unicodeslot=0x10CA4,
},
@@ -155782,6 +158198,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER ESZ",
direction="r",
+ lccode=0x10CE5,
linebreak="al",
unicodeslot=0x10CA5,
},
@@ -155789,6 +158206,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER ET",
direction="r",
+ lccode=0x10CE6,
linebreak="al",
unicodeslot=0x10CA6,
},
@@ -155796,6 +158214,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER ENT",
direction="r",
+ lccode=0x10CE7,
linebreak="al",
unicodeslot=0x10CA7,
},
@@ -155803,6 +158222,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER ETY",
direction="r",
+ lccode=0x10CE8,
linebreak="al",
unicodeslot=0x10CA8,
},
@@ -155810,6 +158230,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER ECH",
direction="r",
+ lccode=0x10CE9,
linebreak="al",
unicodeslot=0x10CA9,
},
@@ -155817,6 +158238,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER U",
direction="r",
+ lccode=0x10CEA,
linebreak="al",
unicodeslot=0x10CAA,
},
@@ -155824,6 +158246,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER UU",
direction="r",
+ lccode=0x10CEB,
linebreak="al",
unicodeslot=0x10CAB,
},
@@ -155831,6 +158254,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG UE",
direction="r",
+ lccode=0x10CEC,
linebreak="al",
unicodeslot=0x10CAC,
},
@@ -155838,6 +158262,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER RUDIMENTA UE",
direction="r",
+ lccode=0x10CED,
linebreak="al",
unicodeslot=0x10CAD,
},
@@ -155845,6 +158270,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EV",
direction="r",
+ lccode=0x10CEE,
linebreak="al",
unicodeslot=0x10CAE,
},
@@ -155852,6 +158278,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EZ",
direction="r",
+ lccode=0x10CEF,
linebreak="al",
unicodeslot=0x10CAF,
},
@@ -155859,6 +158286,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER EZS",
direction="r",
+ lccode=0x10CF0,
linebreak="al",
unicodeslot=0x10CB0,
},
@@ -155866,6 +158294,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER ENT-SHAPED SIGN",
direction="r",
+ lccode=0x10CF1,
linebreak="al",
unicodeslot=0x10CB1,
},
@@ -155873,6 +158302,7 @@ characters.data={
category="lu",
description="OLD HUNGARIAN CAPITAL LETTER US",
direction="r",
+ lccode=0x10CF2,
linebreak="al",
unicodeslot=0x10CB2,
},
@@ -157213,6 +159643,30 @@ characters.data={
linebreak="al",
unicodeslot=0x10EB1,
},
+ [0x10EFD]={
+ category="mn",
+ combining=0xDC,
+ description="ARABIC SMALL LOW WORD SAKTA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10EFD,
+ },
+ [0x10EFE]={
+ category="mn",
+ combining=0xDC,
+ description="ARABIC SMALL LOW WORD QASR",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10EFE,
+ },
+ [0x10EFF]={
+ category="mn",
+ combining=0xDC,
+ description="ARABIC SMALL LOW WORD MADDA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10EFF,
+ },
[0x10F00]={
category="lo",
description="OLD SOGDIAN LETTER ALEPH",
@@ -157824,6 +160278,210 @@ characters.data={
linebreak="al",
unicodeslot=0x10F59,
},
+ [0x10F70]={
+ arabic="d",
+ category="lo",
+ description="OLD UYGHUR LETTER ALEPH",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F70,
+ },
+ [0x10F71]={
+ arabic="d",
+ category="lo",
+ description="OLD UYGHUR LETTER BETH",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F71,
+ },
+ [0x10F72]={
+ arabic="d",
+ category="lo",
+ description="OLD UYGHUR LETTER GIMEL-HETH",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F72,
+ },
+ [0x10F73]={
+ arabic="d",
+ category="lo",
+ description="OLD UYGHUR LETTER WAW",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F73,
+ },
+ [0x10F74]={
+ arabic="r",
+ category="lo",
+ description="OLD UYGHUR LETTER ZAYIN",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F74,
+ },
+ [0x10F75]={
+ arabic="r",
+ category="lo",
+ description="OLD UYGHUR LETTER FINAL HETH",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F75,
+ },
+ [0x10F76]={
+ arabic="d",
+ category="lo",
+ description="OLD UYGHUR LETTER YODH",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F76,
+ },
+ [0x10F77]={
+ arabic="d",
+ category="lo",
+ description="OLD UYGHUR LETTER KAPH",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F77,
+ },
+ [0x10F78]={
+ arabic="d",
+ category="lo",
+ description="OLD UYGHUR LETTER LAMEDH",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F78,
+ },
+ [0x10F79]={
+ arabic="d",
+ category="lo",
+ description="OLD UYGHUR LETTER MEM",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F79,
+ },
+ [0x10F7A]={
+ arabic="d",
+ category="lo",
+ description="OLD UYGHUR LETTER NUN",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F7A,
+ },
+ [0x10F7B]={
+ arabic="d",
+ category="lo",
+ description="OLD UYGHUR LETTER SAMEKH",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F7B,
+ },
+ [0x10F7C]={
+ arabic="d",
+ category="lo",
+ description="OLD UYGHUR LETTER PE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F7C,
+ },
+ [0x10F7D]={
+ arabic="d",
+ category="lo",
+ description="OLD UYGHUR LETTER SADHE",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F7D,
+ },
+ [0x10F7E]={
+ arabic="d",
+ category="lo",
+ description="OLD UYGHUR LETTER RESH",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F7E,
+ },
+ [0x10F7F]={
+ arabic="d",
+ category="lo",
+ description="OLD UYGHUR LETTER SHIN",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F7F,
+ },
+ [0x10F80]={
+ arabic="d",
+ category="lo",
+ description="OLD UYGHUR LETTER TAW",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F80,
+ },
+ [0x10F81]={
+ arabic="d",
+ category="lo",
+ description="OLD UYGHUR LETTER LESH",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F81,
+ },
+ [0x10F82]={
+ category="mn",
+ combining=0xE6,
+ description="OLD UYGHUR COMBINING DOT ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10F82,
+ },
+ [0x10F83]={
+ category="mn",
+ combining=0xDC,
+ description="OLD UYGHUR COMBINING DOT BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10F83,
+ },
+ [0x10F84]={
+ category="mn",
+ combining=0xE6,
+ description="OLD UYGHUR COMBINING TWO DOTS ABOVE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10F84,
+ },
+ [0x10F85]={
+ category="mn",
+ combining=0xDC,
+ description="OLD UYGHUR COMBINING TWO DOTS BELOW",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x10F85,
+ },
+ [0x10F86]={
+ category="po",
+ description="OLD UYGHUR PUNCTUATION BAR",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F86,
+ },
+ [0x10F87]={
+ category="po",
+ description="OLD UYGHUR PUNCTUATION TWO BARS",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F87,
+ },
+ [0x10F88]={
+ category="po",
+ description="OLD UYGHUR PUNCTUATION TWO DOTS",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F88,
+ },
+ [0x10F89]={
+ category="po",
+ description="OLD UYGHUR PUNCTUATION FOUR DOTS",
+ direction="r",
+ linebreak="al",
+ unicodeslot=0x10F89,
+ },
[0x10FB0]={
arabic="d",
category="lo",
@@ -158966,6 +161624,49 @@ characters.data={
linebreak="nu",
unicodeslot=0x1106F,
},
+ [0x11070]={
+ category="mn",
+ combining=0x9,
+ description="BRAHMI SIGN OLD TAMIL VIRAMA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x11070,
+ },
+ [0x11071]={
+ category="lo",
+ description="BRAHMI LETTER OLD TAMIL SHORT E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11071,
+ },
+ [0x11072]={
+ category="lo",
+ description="BRAHMI LETTER OLD TAMIL SHORT O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11072,
+ },
+ [0x11073]={
+ category="mn",
+ description="BRAHMI VOWEL SIGN OLD TAMIL SHORT E",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x11073,
+ },
+ [0x11074]={
+ category="mn",
+ description="BRAHMI VOWEL SIGN OLD TAMIL SHORT O",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x11074,
+ },
+ [0x11075]={
+ category="lo",
+ description="BRAHMI LETTER OLD TAMIL LLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11075,
+ },
[0x1107F]={
category="mn",
combining=0x9,
@@ -159442,6 +162143,13 @@ characters.data={
linebreak="ba",
unicodeslot=0x110C1,
},
+ [0x110C2]={
+ category="mn",
+ description="KAITHI VOWEL SIGN VOCALIC R",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x110C2,
+ },
[0x110CD]={
arabic="u",
category="cf",
@@ -161723,6 +164431,27 @@ characters.data={
linebreak="cm",
unicodeslot=0x1123E,
},
+ [0x1123F]={
+ category="lo",
+ description="KHOJKI LETTER QA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1123F,
+ },
+ [0x11240]={
+ category="lo",
+ description="KHOJKI LETTER SHORT I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11240,
+ },
+ [0x11241]={
+ category="mn",
+ description="KHOJKI VOWEL SIGN VOCALIC R",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x11241,
+ },
[0x11280]={
category="lo",
description="MULTANI LETTER A",
@@ -166061,6 +168790,13 @@ characters.data={
linebreak="al",
unicodeslot=0x116B8,
},
+ [0x116B9]={
+ category="po",
+ description="TAKRI ABBREVIATION SIGN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x116B9,
+ },
[0x116C0]={
category="nd",
description="TAKRI DIGIT ZERO",
@@ -166538,6 +169274,55 @@ characters.data={
linebreak="sa",
unicodeslot=0x1173F,
},
+ [0x11740]={
+ category="lo",
+ description="AHOM LETTER CA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x11740,
+ },
+ [0x11741]={
+ category="lo",
+ description="AHOM LETTER TTA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x11741,
+ },
+ [0x11742]={
+ category="lo",
+ description="AHOM LETTER TTHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x11742,
+ },
+ [0x11743]={
+ category="lo",
+ description="AHOM LETTER DDA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x11743,
+ },
+ [0x11744]={
+ category="lo",
+ description="AHOM LETTER DDHA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x11744,
+ },
+ [0x11745]={
+ category="lo",
+ description="AHOM LETTER NNA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x11745,
+ },
+ [0x11746]={
+ category="lo",
+ description="AHOM LETTER LLA",
+ direction="l",
+ linebreak="sa",
+ unicodeslot=0x11746,
+ },
[0x11800]={
category="lo",
description="DOGRA LETTER A",
@@ -166964,6 +169749,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER NGAA",
direction="l",
+ lccode=0x118C0,
linebreak="al",
unicodeslot=0x118A0,
},
@@ -166971,6 +169757,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER A",
direction="l",
+ lccode=0x118C1,
linebreak="al",
unicodeslot=0x118A1,
},
@@ -166978,6 +169765,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER WI",
direction="l",
+ lccode=0x118C2,
linebreak="al",
unicodeslot=0x118A2,
},
@@ -166985,6 +169773,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER YU",
direction="l",
+ lccode=0x118C3,
linebreak="al",
unicodeslot=0x118A3,
},
@@ -166992,6 +169781,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER YA",
direction="l",
+ lccode=0x118C4,
linebreak="al",
unicodeslot=0x118A4,
},
@@ -166999,6 +169789,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER YO",
direction="l",
+ lccode=0x118C5,
linebreak="al",
unicodeslot=0x118A5,
},
@@ -167006,6 +169797,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER II",
direction="l",
+ lccode=0x118C6,
linebreak="al",
unicodeslot=0x118A6,
},
@@ -167013,6 +169805,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER UU",
direction="l",
+ lccode=0x118C7,
linebreak="al",
unicodeslot=0x118A7,
},
@@ -167020,6 +169813,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER E",
direction="l",
+ lccode=0x118C8,
linebreak="al",
unicodeslot=0x118A8,
},
@@ -167027,6 +169821,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER O",
direction="l",
+ lccode=0x118C9,
linebreak="al",
unicodeslot=0x118A9,
},
@@ -167034,6 +169829,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER ANG",
direction="l",
+ lccode=0x118CA,
linebreak="al",
unicodeslot=0x118AA,
},
@@ -167041,6 +169837,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER GA",
direction="l",
+ lccode=0x118CB,
linebreak="al",
unicodeslot=0x118AB,
},
@@ -167048,6 +169845,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER KO",
direction="l",
+ lccode=0x118CC,
linebreak="al",
unicodeslot=0x118AC,
},
@@ -167055,6 +169853,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER ENY",
direction="l",
+ lccode=0x118CD,
linebreak="al",
unicodeslot=0x118AD,
},
@@ -167062,6 +169861,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER YUJ",
direction="l",
+ lccode=0x118CE,
linebreak="al",
unicodeslot=0x118AE,
},
@@ -167069,6 +169869,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER UC",
direction="l",
+ lccode=0x118CF,
linebreak="al",
unicodeslot=0x118AF,
},
@@ -167076,6 +169877,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER ENN",
direction="l",
+ lccode=0x118D0,
linebreak="al",
unicodeslot=0x118B0,
},
@@ -167083,6 +169885,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER ODD",
direction="l",
+ lccode=0x118D1,
linebreak="al",
unicodeslot=0x118B1,
},
@@ -167090,6 +169893,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER TTE",
direction="l",
+ lccode=0x118D2,
linebreak="al",
unicodeslot=0x118B2,
},
@@ -167097,6 +169901,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER NUNG",
direction="l",
+ lccode=0x118D3,
linebreak="al",
unicodeslot=0x118B3,
},
@@ -167104,6 +169909,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER DA",
direction="l",
+ lccode=0x118D4,
linebreak="al",
unicodeslot=0x118B4,
},
@@ -167111,6 +169917,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER AT",
direction="l",
+ lccode=0x118D5,
linebreak="al",
unicodeslot=0x118B5,
},
@@ -167118,6 +169925,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER AM",
direction="l",
+ lccode=0x118D6,
linebreak="al",
unicodeslot=0x118B6,
},
@@ -167125,6 +169933,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER BU",
direction="l",
+ lccode=0x118D7,
linebreak="al",
unicodeslot=0x118B7,
},
@@ -167132,6 +169941,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER PU",
direction="l",
+ lccode=0x118D8,
linebreak="al",
unicodeslot=0x118B8,
},
@@ -167139,6 +169949,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER HIYO",
direction="l",
+ lccode=0x118D9,
linebreak="al",
unicodeslot=0x118B9,
},
@@ -167146,6 +169957,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER HOLO",
direction="l",
+ lccode=0x118DA,
linebreak="al",
unicodeslot=0x118BA,
},
@@ -167153,6 +169965,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER HORR",
direction="l",
+ lccode=0x118DB,
linebreak="al",
unicodeslot=0x118BB,
},
@@ -167160,6 +169973,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER HAR",
direction="l",
+ lccode=0x118DC,
linebreak="al",
unicodeslot=0x118BC,
},
@@ -167167,6 +169981,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER SSUU",
direction="l",
+ lccode=0x118DD,
linebreak="al",
unicodeslot=0x118BD,
},
@@ -167174,6 +169989,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER SII",
direction="l",
+ lccode=0x118DE,
linebreak="al",
unicodeslot=0x118BE,
},
@@ -167181,6 +169997,7 @@ characters.data={
category="lu",
description="WARANG CITI CAPITAL LETTER VIYO",
direction="l",
+ lccode=0x118DF,
linebreak="al",
unicodeslot=0x118BF,
},
@@ -169600,6 +172417,118 @@ characters.data={
linebreak="ba",
unicodeslot=0x11AA2,
},
+ [0x11AB0]={
+ category="lo",
+ description="CANADIAN SYLLABICS NATTILIK HI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11AB0,
+ },
+ [0x11AB1]={
+ category="lo",
+ description="CANADIAN SYLLABICS NATTILIK HII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11AB1,
+ },
+ [0x11AB2]={
+ category="lo",
+ description="CANADIAN SYLLABICS NATTILIK HO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11AB2,
+ },
+ [0x11AB3]={
+ category="lo",
+ description="CANADIAN SYLLABICS NATTILIK HOO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11AB3,
+ },
+ [0x11AB4]={
+ category="lo",
+ description="CANADIAN SYLLABICS NATTILIK HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11AB4,
+ },
+ [0x11AB5]={
+ category="lo",
+ description="CANADIAN SYLLABICS NATTILIK HAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11AB5,
+ },
+ [0x11AB6]={
+ category="lo",
+ description="CANADIAN SYLLABICS NATTILIK SHRI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11AB6,
+ },
+ [0x11AB7]={
+ category="lo",
+ description="CANADIAN SYLLABICS NATTILIK SHRII",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11AB7,
+ },
+ [0x11AB8]={
+ category="lo",
+ description="CANADIAN SYLLABICS NATTILIK SHRO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11AB8,
+ },
+ [0x11AB9]={
+ category="lo",
+ description="CANADIAN SYLLABICS NATTILIK SHROO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11AB9,
+ },
+ [0x11ABA]={
+ category="lo",
+ description="CANADIAN SYLLABICS NATTILIK SHRA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11ABA,
+ },
+ [0x11ABB]={
+ category="lo",
+ description="CANADIAN SYLLABICS NATTILIK SHRAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11ABB,
+ },
+ [0x11ABC]={
+ category="lo",
+ description="CANADIAN SYLLABICS SPE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11ABC,
+ },
+ [0x11ABD]={
+ category="lo",
+ description="CANADIAN SYLLABICS SPI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11ABD,
+ },
+ [0x11ABE]={
+ category="lo",
+ description="CANADIAN SYLLABICS SPO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11ABE,
+ },
+ [0x11ABF]={
+ category="lo",
+ description="CANADIAN SYLLABICS SPA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11ABF,
+ },
[0x11AC0]={
category="lo",
description="PAU CIN HAU LETTER PA",
@@ -169999,6 +172928,76 @@ characters.data={
linebreak="al",
unicodeslot=0x11AF8,
},
+ [0x11B00]={
+ category="po",
+ description="DEVANAGARI HEAD MARK",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x11B00,
+ },
+ [0x11B01]={
+ category="po",
+ description="DEVANAGARI HEAD MARK WITH HEADSTROKE",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x11B01,
+ },
+ [0x11B02]={
+ category="po",
+ description="DEVANAGARI SIGN BHALE",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x11B02,
+ },
+ [0x11B03]={
+ category="po",
+ description="DEVANAGARI SIGN BHALE WITH HOOK",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x11B03,
+ },
+ [0x11B04]={
+ category="po",
+ description="DEVANAGARI SIGN EXTENDED BHALE",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x11B04,
+ },
+ [0x11B05]={
+ category="po",
+ description="DEVANAGARI SIGN EXTENDED BHALE WITH HOOK",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x11B05,
+ },
+ [0x11B06]={
+ category="po",
+ description="DEVANAGARI SIGN WESTERN FIVE-LIKE BHALE",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x11B06,
+ },
+ [0x11B07]={
+ category="po",
+ description="DEVANAGARI SIGN WESTERN NINE-LIKE BHALE",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x11B07,
+ },
+ [0x11B08]={
+ category="po",
+ description="DEVANAGARI SIGN REVERSED NINE-LIKE BHALE",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x11B08,
+ },
+ [0x11B09]={
+ category="po",
+ description="DEVANAGARI SIGN MINDU",
+ direction="l",
+ linebreak="bb",
+ unicodeslot=0x11B09,
+ },
[0x11C00]={
category="lo",
description="BHAIKSUKI LETTER A",
@@ -172300,6 +175299,610 @@ characters.data={
linebreak="al",
unicodeslot=0x11EF8,
},
+ [0x11F00]={
+ category="mn",
+ description="KAWI SIGN CANDRABINDU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x11F00,
+ },
+ [0x11F01]={
+ category="mn",
+ description="KAWI SIGN ANUSVARA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x11F01,
+ },
+ [0x11F02]={
+ category="lo",
+ description="KAWI SIGN REPHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F02,
+ },
+ [0x11F03]={
+ category="mc",
+ description="KAWI SIGN VISARGA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x11F03,
+ },
+ [0x11F04]={
+ category="lo",
+ description="KAWI LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F04,
+ },
+ [0x11F05]={
+ category="lo",
+ description="KAWI LETTER AA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F05,
+ },
+ [0x11F06]={
+ category="lo",
+ description="KAWI LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F06,
+ },
+ [0x11F07]={
+ category="lo",
+ description="KAWI LETTER II",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F07,
+ },
+ [0x11F08]={
+ category="lo",
+ description="KAWI LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F08,
+ },
+ [0x11F09]={
+ category="lo",
+ description="KAWI LETTER UU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F09,
+ },
+ [0x11F0A]={
+ category="lo",
+ description="KAWI LETTER VOCALIC R",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F0A,
+ },
+ [0x11F0B]={
+ category="lo",
+ description="KAWI LETTER VOCALIC RR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F0B,
+ },
+ [0x11F0C]={
+ category="lo",
+ description="KAWI LETTER VOCALIC L",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F0C,
+ },
+ [0x11F0D]={
+ category="lo",
+ description="KAWI LETTER VOCALIC LL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F0D,
+ },
+ [0x11F0E]={
+ category="lo",
+ description="KAWI LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F0E,
+ },
+ [0x11F0F]={
+ category="lo",
+ description="KAWI LETTER AI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F0F,
+ },
+ [0x11F10]={
+ category="lo",
+ description="KAWI LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F10,
+ },
+ [0x11F12]={
+ category="lo",
+ description="KAWI LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F12,
+ },
+ [0x11F13]={
+ category="lo",
+ description="KAWI LETTER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F13,
+ },
+ [0x11F14]={
+ category="lo",
+ description="KAWI LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F14,
+ },
+ [0x11F15]={
+ category="lo",
+ description="KAWI LETTER GHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F15,
+ },
+ [0x11F16]={
+ category="lo",
+ description="KAWI LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F16,
+ },
+ [0x11F17]={
+ category="lo",
+ description="KAWI LETTER CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F17,
+ },
+ [0x11F18]={
+ category="lo",
+ description="KAWI LETTER CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F18,
+ },
+ [0x11F19]={
+ category="lo",
+ description="KAWI LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F19,
+ },
+ [0x11F1A]={
+ category="lo",
+ description="KAWI LETTER JHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F1A,
+ },
+ [0x11F1B]={
+ category="lo",
+ description="KAWI LETTER NYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F1B,
+ },
+ [0x11F1C]={
+ category="lo",
+ description="KAWI LETTER TTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F1C,
+ },
+ [0x11F1D]={
+ category="lo",
+ description="KAWI LETTER TTHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F1D,
+ },
+ [0x11F1E]={
+ category="lo",
+ description="KAWI LETTER DDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F1E,
+ },
+ [0x11F1F]={
+ category="lo",
+ description="KAWI LETTER DDHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F1F,
+ },
+ [0x11F20]={
+ category="lo",
+ description="KAWI LETTER NNA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F20,
+ },
+ [0x11F21]={
+ category="lo",
+ description="KAWI LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F21,
+ },
+ [0x11F22]={
+ category="lo",
+ description="KAWI LETTER THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F22,
+ },
+ [0x11F23]={
+ category="lo",
+ description="KAWI LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F23,
+ },
+ [0x11F24]={
+ category="lo",
+ description="KAWI LETTER DHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F24,
+ },
+ [0x11F25]={
+ category="lo",
+ description="KAWI LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F25,
+ },
+ [0x11F26]={
+ category="lo",
+ description="KAWI LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F26,
+ },
+ [0x11F27]={
+ category="lo",
+ description="KAWI LETTER PHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F27,
+ },
+ [0x11F28]={
+ category="lo",
+ description="KAWI LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F28,
+ },
+ [0x11F29]={
+ category="lo",
+ description="KAWI LETTER BHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F29,
+ },
+ [0x11F2A]={
+ category="lo",
+ description="KAWI LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F2A,
+ },
+ [0x11F2B]={
+ category="lo",
+ description="KAWI LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F2B,
+ },
+ [0x11F2C]={
+ category="lo",
+ description="KAWI LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F2C,
+ },
+ [0x11F2D]={
+ category="lo",
+ description="KAWI LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F2D,
+ },
+ [0x11F2E]={
+ category="lo",
+ description="KAWI LETTER WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F2E,
+ },
+ [0x11F2F]={
+ category="lo",
+ description="KAWI LETTER SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F2F,
+ },
+ [0x11F30]={
+ category="lo",
+ description="KAWI LETTER SSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F30,
+ },
+ [0x11F31]={
+ category="lo",
+ description="KAWI LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F31,
+ },
+ [0x11F32]={
+ category="lo",
+ description="KAWI LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F32,
+ },
+ [0x11F33]={
+ category="lo",
+ description="KAWI LETTER JNYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x11F33,
+ },
+ [0x11F34]={
+ category="mc",
+ description="KAWI VOWEL SIGN AA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x11F34,
+ },
+ [0x11F35]={
+ category="mc",
+ description="KAWI VOWEL SIGN ALTERNATE AA",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x11F35,
+ },
+ [0x11F36]={
+ category="mn",
+ description="KAWI VOWEL SIGN I",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x11F36,
+ },
+ [0x11F37]={
+ category="mn",
+ description="KAWI VOWEL SIGN II",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x11F37,
+ },
+ [0x11F38]={
+ category="mn",
+ description="KAWI VOWEL SIGN U",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x11F38,
+ },
+ [0x11F39]={
+ category="mn",
+ description="KAWI VOWEL SIGN UU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x11F39,
+ },
+ [0x11F3A]={
+ category="mn",
+ description="KAWI VOWEL SIGN VOCALIC R",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x11F3A,
+ },
+ [0x11F3E]={
+ category="mc",
+ description="KAWI VOWEL SIGN E",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x11F3E,
+ },
+ [0x11F3F]={
+ category="mc",
+ description="KAWI VOWEL SIGN AI",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x11F3F,
+ },
+ [0x11F40]={
+ category="mn",
+ description="KAWI VOWEL SIGN EU",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x11F40,
+ },
+ [0x11F41]={
+ category="mc",
+ combining=0x9,
+ description="KAWI SIGN KILLER",
+ direction="l",
+ linebreak="cm",
+ unicodeslot=0x11F41,
+ },
+ [0x11F42]={
+ category="mn",
+ combining=0x9,
+ description="KAWI CONJOINER",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x11F42,
+ },
+ [0x11F43]={
+ category="po",
+ description="KAWI DANDA",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x11F43,
+ },
+ [0x11F44]={
+ category="po",
+ description="KAWI DOUBLE DANDA",
+ direction="l",
+ linebreak="ba",
+ unicodeslot=0x11F44,
+ },
+ [0x11F45]={
+ category="po",
+ description="KAWI PUNCTUATION SECTION MARKER",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x11F45,
+ },
+ [0x11F46]={
+ category="po",
+ description="KAWI PUNCTUATION ALTERNATE SECTION MARKER",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x11F46,
+ },
+ [0x11F47]={
+ category="po",
+ description="KAWI PUNCTUATION FLOWER",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x11F47,
+ },
+ [0x11F48]={
+ category="po",
+ description="KAWI PUNCTUATION SPACE FILLER",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x11F48,
+ },
+ [0x11F49]={
+ category="po",
+ description="KAWI PUNCTUATION DOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x11F49,
+ },
+ [0x11F4A]={
+ category="po",
+ description="KAWI PUNCTUATION DOUBLE DOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x11F4A,
+ },
+ [0x11F4B]={
+ category="po",
+ description="KAWI PUNCTUATION TRIPLE DOT",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x11F4B,
+ },
+ [0x11F4C]={
+ category="po",
+ description="KAWI PUNCTUATION CIRCLE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x11F4C,
+ },
+ [0x11F4D]={
+ category="po",
+ description="KAWI PUNCTUATION FILLED CIRCLE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x11F4D,
+ },
+ [0x11F4E]={
+ category="po",
+ description="KAWI PUNCTUATION SPIRAL",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x11F4E,
+ },
+ [0x11F4F]={
+ category="po",
+ description="KAWI PUNCTUATION CLOSING SPIRAL",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x11F4F,
+ },
+ [0x11F50]={
+ category="nd",
+ description="KAWI DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x11F50,
+ },
+ [0x11F51]={
+ category="nd",
+ description="KAWI DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x11F51,
+ },
+ [0x11F52]={
+ category="nd",
+ description="KAWI DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x11F52,
+ },
+ [0x11F53]={
+ category="nd",
+ description="KAWI DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x11F53,
+ },
+ [0x11F54]={
+ category="nd",
+ description="KAWI DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x11F54,
+ },
+ [0x11F55]={
+ category="nd",
+ description="KAWI DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x11F55,
+ },
+ [0x11F56]={
+ category="nd",
+ description="KAWI DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x11F56,
+ },
+ [0x11F57]={
+ category="nd",
+ description="KAWI DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x11F57,
+ },
+ [0x11F58]={
+ category="nd",
+ description="KAWI DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x11F58,
+ },
+ [0x11F59]={
+ category="nd",
+ description="KAWI DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x11F59,
+ },
[0x11FB0]={
category="lo",
description="LISU LETTER YHA",
@@ -181304,6 +184907,699 @@ characters.data={
linebreak="al",
unicodeslot=0x12543,
},
+ [0x12F90]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM001",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F90,
+ },
+ [0x12F91]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM002",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F91,
+ },
+ [0x12F92]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM004",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F92,
+ },
+ [0x12F93]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM005",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F93,
+ },
+ [0x12F94]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM006",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F94,
+ },
+ [0x12F95]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM007",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F95,
+ },
+ [0x12F96]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM008",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F96,
+ },
+ [0x12F97]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM009",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F97,
+ },
+ [0x12F98]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM010",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F98,
+ },
+ [0x12F99]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM011",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F99,
+ },
+ [0x12F9A]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM012",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F9A,
+ },
+ [0x12F9B]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM012B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F9B,
+ },
+ [0x12F9C]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM013",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F9C,
+ },
+ [0x12F9D]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM015",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F9D,
+ },
+ [0x12F9E]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM017",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F9E,
+ },
+ [0x12F9F]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM019",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12F9F,
+ },
+ [0x12FA0]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM021",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FA0,
+ },
+ [0x12FA1]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM023",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FA1,
+ },
+ [0x12FA2]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM024",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FA2,
+ },
+ [0x12FA3]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM025",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FA3,
+ },
+ [0x12FA4]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM026",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FA4,
+ },
+ [0x12FA5]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM027",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FA5,
+ },
+ [0x12FA6]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM028",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FA6,
+ },
+ [0x12FA7]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM029",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FA7,
+ },
+ [0x12FA8]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM030",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FA8,
+ },
+ [0x12FA9]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM033",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FA9,
+ },
+ [0x12FAA]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM034",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FAA,
+ },
+ [0x12FAB]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM035",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FAB,
+ },
+ [0x12FAC]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM036",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FAC,
+ },
+ [0x12FAD]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM037",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FAD,
+ },
+ [0x12FAE]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM038",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FAE,
+ },
+ [0x12FAF]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM039",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FAF,
+ },
+ [0x12FB0]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM040",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FB0,
+ },
+ [0x12FB1]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM041",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FB1,
+ },
+ [0x12FB2]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM044",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FB2,
+ },
+ [0x12FB3]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM046",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FB3,
+ },
+ [0x12FB4]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM047",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FB4,
+ },
+ [0x12FB5]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM049",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FB5,
+ },
+ [0x12FB6]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM050",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FB6,
+ },
+ [0x12FB7]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM051",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FB7,
+ },
+ [0x12FB8]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM052",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FB8,
+ },
+ [0x12FB9]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM053",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FB9,
+ },
+ [0x12FBA]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM054",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FBA,
+ },
+ [0x12FBB]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM055",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FBB,
+ },
+ [0x12FBC]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM056",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FBC,
+ },
+ [0x12FBD]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM058",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FBD,
+ },
+ [0x12FBE]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM059",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FBE,
+ },
+ [0x12FBF]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM060",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FBF,
+ },
+ [0x12FC0]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM061",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FC0,
+ },
+ [0x12FC1]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM062",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FC1,
+ },
+ [0x12FC2]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM063",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FC2,
+ },
+ [0x12FC3]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM064",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FC3,
+ },
+ [0x12FC4]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM066",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FC4,
+ },
+ [0x12FC5]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM067",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FC5,
+ },
+ [0x12FC6]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM068",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FC6,
+ },
+ [0x12FC7]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM069",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FC7,
+ },
+ [0x12FC8]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM070",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FC8,
+ },
+ [0x12FC9]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM071",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FC9,
+ },
+ [0x12FCA]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM072",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FCA,
+ },
+ [0x12FCB]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM073",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FCB,
+ },
+ [0x12FCC]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM074",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FCC,
+ },
+ [0x12FCD]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM075",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FCD,
+ },
+ [0x12FCE]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM075B",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FCE,
+ },
+ [0x12FCF]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM076",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FCF,
+ },
+ [0x12FD0]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM078",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FD0,
+ },
+ [0x12FD1]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM079",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FD1,
+ },
+ [0x12FD2]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM080",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FD2,
+ },
+ [0x12FD3]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM081",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FD3,
+ },
+ [0x12FD4]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM082",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FD4,
+ },
+ [0x12FD5]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM083",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FD5,
+ },
+ [0x12FD6]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM084",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FD6,
+ },
+ [0x12FD7]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM085",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FD7,
+ },
+ [0x12FD8]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM086",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FD8,
+ },
+ [0x12FD9]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM087",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FD9,
+ },
+ [0x12FDA]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM088",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FDA,
+ },
+ [0x12FDB]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM089",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FDB,
+ },
+ [0x12FDC]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM090",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FDC,
+ },
+ [0x12FDD]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM091",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FDD,
+ },
+ [0x12FDE]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM092",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FDE,
+ },
+ [0x12FDF]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM094",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FDF,
+ },
+ [0x12FE0]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM095",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FE0,
+ },
+ [0x12FE1]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM096",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FE1,
+ },
+ [0x12FE2]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM097",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FE2,
+ },
+ [0x12FE3]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM098",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FE3,
+ },
+ [0x12FE4]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM099",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FE4,
+ },
+ [0x12FE5]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM100",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FE5,
+ },
+ [0x12FE6]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM101",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FE6,
+ },
+ [0x12FE7]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM102",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FE7,
+ },
+ [0x12FE8]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM103",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FE8,
+ },
+ [0x12FE9]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM104",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FE9,
+ },
+ [0x12FEA]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM105",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FEA,
+ },
+ [0x12FEB]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM107",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FEB,
+ },
+ [0x12FEC]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM108",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FEC,
+ },
+ [0x12FED]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM109",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FED,
+ },
+ [0x12FEE]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM110",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FEE,
+ },
+ [0x12FEF]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM112",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FEF,
+ },
+ [0x12FF0]={
+ category="lo",
+ description="CYPRO-MINOAN SIGN CM114",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FF0,
+ },
+ [0x12FF1]={
+ category="po",
+ description="CYPRO-MINOAN SIGN CM301",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FF1,
+ },
+ [0x12FF2]={
+ category="po",
+ description="CYPRO-MINOAN SIGN CM302",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x12FF2,
+ },
[0x13000]={
category="lo",
description="EGYPTIAN HIEROGLYPH A001",
@@ -182325,6 +186621,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13091,
+ variants=variants_90,
},
[0x13092]={
category="lo",
@@ -182332,6 +186629,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13092,
+ variants=variants_90,
},
[0x13093]={
category="lo",
@@ -182339,6 +186637,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13093,
+ variants=variants_180,
},
[0x13094]={
category="lo",
@@ -182493,6 +186792,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x130A9,
+ variants=variants_180,
},
[0x130AA]={
category="lo",
@@ -183207,6 +187507,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x1310F,
+ variants=variants_90,
},
[0x13110]={
category="lo",
@@ -183263,6 +187564,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13117,
+ variants=variants_270,
},
[0x13118]={
category="lo",
@@ -183298,6 +187600,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x1311C,
+ variants=variants_90,
},
[0x1311D]={
category="lo",
@@ -183333,6 +187636,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13121,
+ variants=variants_90,
},
[0x13122]={
category="lo",
@@ -183375,6 +187679,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13127,
+ variants=variants_90,
},
[0x13128]={
category="lo",
@@ -183501,6 +187806,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13139,
+ variants=variants_90_270,
},
[0x1313A]={
category="lo",
@@ -184019,6 +188325,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13183,
+ variants=variants_270,
},
[0x13184]={
category="lo",
@@ -184047,6 +188354,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13187,
+ variants=variants_180,
},
[0x13188]={
category="lo",
@@ -184222,6 +188530,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x131A0,
+ variants=variants_90_270,
},
[0x131A1]={
category="lo",
@@ -184341,6 +188650,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x131B1,
+ variants=variants_90_180,
},
[0x131B2]={
category="lo",
@@ -184390,6 +188700,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x131B8,
+ variants=variants_90,
},
[0x131B9]={
category="lo",
@@ -184397,6 +188708,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x131B9,
+ variants=variants_90,
},
[0x131BA]={
category="lo",
@@ -184404,6 +188716,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x131BA,
+ variants=variants_270,
},
[0x131BB]={
category="lo",
@@ -184523,6 +188836,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x131CB,
+ variants=variants_90,
},
[0x131CC]={
category="lo",
@@ -184768,6 +189082,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x131EE,
+ variants=variants_180_270,
},
[0x131EF]={
category="lo",
@@ -184838,6 +189153,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x131F8,
+ variants=variants_180,
},
[0x131F9]={
category="lo",
@@ -184845,6 +189161,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x131F9,
+ variants=variants_90_180,
},
[0x131FA]={
category="lo",
@@ -184852,6 +189169,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x131FA,
+ variants=variants_90_180,
},
[0x131FB]={
category="lo",
@@ -185048,6 +189366,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13216,
+ variants=variants_270,
},
[0x13217]={
category="lo",
@@ -185503,6 +189822,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13257,
+ variants=variants_180,
},
[0x13258]={
category="lo",
@@ -185755,6 +190075,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x1327B,
+ variants=variants_270,
},
[0x1327C]={
category="lo",
@@ -185783,6 +190104,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x1327F,
+ variants=variants_90_180,
},
[0x13280]={
category="lo",
@@ -185825,6 +190147,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13285,
+ variants=variants_90,
},
[0x13286]={
category="lo",
@@ -185874,6 +190197,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x1328C,
+ variants=variants_90,
},
[0x1328D]={
category="lo",
@@ -186042,6 +190366,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x132A4,
+ variants=variants_180_270,
},
[0x132A5]={
category="lo",
@@ -186084,6 +190409,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x132AA,
+ variants=variants_90,
},
[0x132AB]={
category="lo",
@@ -186315,6 +190641,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x132CB,
+ variants=variants_90,
},
[0x132CC]={
category="lo",
@@ -186434,6 +190761,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x132DC,
+ variants=variants_90,
},
[0x132DD]={
category="lo",
@@ -186511,6 +190839,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x132E7,
+ variants=variants_90_270,
},
[0x132E8]={
category="lo",
@@ -186525,6 +190854,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x132E9,
+ variants=variants_270,
},
[0x132EA]={
category="lo",
@@ -186630,6 +190960,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x132F8,
+ variants=variants_270,
},
[0x132F9]={
category="lo",
@@ -186665,6 +190996,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x132FD,
+ variants=variants_270,
},
[0x132FE]={
category="lo",
@@ -186700,6 +191032,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13302,
+ variants=variants_270,
},
[0x13303]={
category="lo",
@@ -186707,6 +191040,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13303,
+ variants=variants_270,
},
[0x13304]={
category="lo",
@@ -186735,6 +191069,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13307,
+ variants=variants_90,
},
[0x13308]={
category="lo",
@@ -186742,6 +191077,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13308,
+ variants=variants_180,
},
[0x13309]={
category="lo",
@@ -186798,6 +191134,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13310,
+ variants=variants_270,
},
[0x13311]={
category="lo",
@@ -186805,6 +191142,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13311,
+ variants=variants_270,
},
[0x13312]={
category="lo",
@@ -186812,6 +191150,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13312,
+ variants=variants_180_270,
},
[0x13313]={
category="lo",
@@ -186819,6 +191158,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13313,
+ variants=variants_180_270,
},
[0x13314]={
category="lo",
@@ -186826,6 +191166,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13314,
+ variants=variants_180_270,
},
[0x13315]={
category="lo",
@@ -186875,6 +191216,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x1331B,
+ variants=variants_90_180,
},
[0x1331C]={
category="lo",
@@ -186882,6 +191224,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x1331C,
+ variants=variants_270,
},
[0x1331D]={
category="lo",
@@ -186917,6 +191260,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13321,
+ variants=variants_180_270,
},
[0x13322]={
category="lo",
@@ -186924,6 +191268,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13322,
+ variants=variants_90_180,
},
[0x13323]={
category="lo",
@@ -187029,6 +191374,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13331,
+ variants=variants_180_270,
},
[0x13332]={
category="lo",
@@ -187099,6 +191445,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x1333B,
+ variants=variants_90,
},
[0x1333C]={
category="lo",
@@ -187106,6 +191453,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x1333C,
+ variants=variants_90,
},
[0x1333D]={
category="lo",
@@ -187204,6 +191552,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x1334A,
+ variants=variants_270,
},
[0x1334B]={
category="lo",
@@ -187365,6 +191714,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13361,
+ variants=variants_270,
},
[0x13362]={
category="lo",
@@ -187491,6 +191841,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13373,
+ variants=variants_270,
},
[0x13374]={
category="lo",
@@ -187519,6 +191870,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13377,
+ variants=variants_90,
},
[0x13378]={
category="lo",
@@ -187526,6 +191878,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13378,
+ variants=variants_90,
},
[0x13379]={
category="lo",
@@ -187561,6 +191914,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x1337D,
+ variants=variants_270,
},
[0x1337E]={
category="lo",
@@ -187617,6 +191971,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13385,
+ variants=variants_270,
},
[0x13386]={
category="lo",
@@ -187757,6 +192112,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13399,
+ variants=variants_90,
},
[0x1339A]={
category="lo",
@@ -187764,6 +192120,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x1339A,
+ variants=variants_90,
},
[0x1339B]={
category="lo",
@@ -187911,6 +192268,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x133AF,
+ variants=variants_270,
},
[0x133B0]={
category="lo",
@@ -187918,6 +192276,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x133B0,
+ variants=variants_270,
},
[0x133B1]={
category="lo",
@@ -188023,6 +192382,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x133BF,
+ variants=variants_270,
},
[0x133C0]={
category="lo",
@@ -188163,6 +192523,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x133D3,
+ variants=variants_90,
},
[0x133D4]={
category="lo",
@@ -188233,6 +192594,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x133DD,
+ variants=variants_270,
},
[0x133DE]={
category="lo",
@@ -188380,6 +192742,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x133F2,
+ variants=variants_90,
},
[0x133F3]={
category="lo",
@@ -188401,6 +192764,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x133F5,
+ variants=variants_90,
},
[0x133F6]={
category="lo",
@@ -188408,6 +192772,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x133F6,
+ variants=variants_90,
},
[0x133F7]={
category="lo",
@@ -188499,6 +192864,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13403,
+ variants=variants_90,
},
[0x13404]={
category="lo",
@@ -188632,6 +192998,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13416,
+ variants=variants_90,
},
[0x13417]={
category="lo",
@@ -188653,6 +193020,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13419,
+ variants=variants_90_180_270,
},
[0x1341A]={
category="lo",
@@ -188660,6 +193028,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x1341A,
+ variants=variants_90,
},
[0x1341B]={
category="lo",
@@ -188723,6 +193092,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x13423,
+ variants=variants_90,
},
[0x13424]={
category="lo",
@@ -188786,6 +193156,7 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x1342C,
+ variants=variants_270,
},
[0x1342D]={
category="lo",
@@ -188800,6 +193171,14 @@ characters.data={
direction="l",
linebreak="al",
unicodeslot=0x1342E,
+ variants=variants_270,
+ },
+ [0x1342F]={
+ category="lo",
+ description="EGYPTIAN HIEROGLYPH V011D",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1342F,
},
[0x13430]={
category="cf",
@@ -188864,6 +193243,213 @@ characters.data={
linebreak="cl",
unicodeslot=0x13438,
},
+ [0x13439]={
+ category="cf",
+ description="EGYPTIAN HIEROGLYPH INSERT AT MIDDLE",
+ direction="l",
+ linebreak="gl",
+ unicodeslot=0x13439,
+ },
+ [0x1343A]={
+ category="cf",
+ description="EGYPTIAN HIEROGLYPH INSERT AT TOP",
+ direction="l",
+ linebreak="gl",
+ unicodeslot=0x1343A,
+ },
+ [0x1343B]={
+ category="cf",
+ description="EGYPTIAN HIEROGLYPH INSERT AT BOTTOM",
+ direction="l",
+ linebreak="gl",
+ unicodeslot=0x1343B,
+ },
+ [0x1343C]={
+ category="cf",
+ description="EGYPTIAN HIEROGLYPH BEGIN ENCLOSURE",
+ direction="l",
+ linebreak="op",
+ unicodeslot=0x1343C,
+ },
+ [0x1343D]={
+ category="cf",
+ description="EGYPTIAN HIEROGLYPH END ENCLOSURE",
+ direction="l",
+ linebreak="cl",
+ unicodeslot=0x1343D,
+ },
+ [0x1343E]={
+ category="cf",
+ description="EGYPTIAN HIEROGLYPH BEGIN WALLED ENCLOSURE",
+ direction="l",
+ linebreak="op",
+ unicodeslot=0x1343E,
+ },
+ [0x1343F]={
+ category="cf",
+ description="EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE",
+ direction="l",
+ linebreak="cl",
+ unicodeslot=0x1343F,
+ },
+ [0x13440]={
+ category="mn",
+ description="EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x13440,
+ },
+ [0x13441]={
+ category="lo",
+ description="EGYPTIAN HIEROGLYPH FULL BLANK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13441,
+ },
+ [0x13442]={
+ category="lo",
+ description="EGYPTIAN HIEROGLYPH HALF BLANK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13442,
+ },
+ [0x13443]={
+ category="lo",
+ description="EGYPTIAN HIEROGLYPH LOST SIGN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13443,
+ variants=variants_expanded,
+ },
+ [0x13444]={
+ category="lo",
+ description="EGYPTIAN HIEROGLYPH HALF LOST SIGN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13444,
+ variants=variants_expanded,
+ },
+ [0x13445]={
+ category="lo",
+ description="EGYPTIAN HIEROGLYPH TALL LOST SIGN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13445,
+ variants=variants_expanded,
+ },
+ [0x13446]={
+ category="lo",
+ description="EGYPTIAN HIEROGLYPH WIDE LOST SIGN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x13446,
+ variants=variants_expanded,
+ },
+ [0x13447]={
+ category="mn",
+ description="EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x13447,
+ },
+ [0x13448]={
+ category="mn",
+ description="EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM START",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x13448,
+ },
+ [0x13449]={
+ category="mn",
+ description="EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x13449,
+ },
+ [0x1344A]={
+ category="mn",
+ description="EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP END",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1344A,
+ },
+ [0x1344B]={
+ category="mn",
+ description="EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1344B,
+ },
+ [0x1344C]={
+ category="mn",
+ description="EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM START AND TOP END",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1344C,
+ },
+ [0x1344D]={
+ category="mn",
+ description="EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START AND TOP",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1344D,
+ },
+ [0x1344E]={
+ category="mn",
+ description="EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM END",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1344E,
+ },
+ [0x1344F]={
+ category="mn",
+ description="EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START AND BOTTOM END",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1344F,
+ },
+ [0x13450]={
+ category="mn",
+ description="EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x13450,
+ },
+ [0x13451]={
+ category="mn",
+ description="EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START AND BOTTOM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x13451,
+ },
+ [0x13452]={
+ category="mn",
+ description="EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT END",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x13452,
+ },
+ [0x13453]={
+ category="mn",
+ description="EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP AND END",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x13453,
+ },
+ [0x13454]={
+ category="mn",
+ description="EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM AND END",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x13454,
+ },
+ [0x13455]={
+ category="mn",
+ description="EGYPTIAN HIEROGLYPH MODIFIER DAMAGED",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x13455,
+ },
[0x14400]={
category="lo",
description="ANATOLIAN HIEROGLYPH A001",
@@ -197229,6 +201815,629 @@ characters.data={
linebreak="ba",
unicodeslot=0x16A6F,
},
+ [0x16A70]={
+ category="lo",
+ description="TANGSA LETTER OZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A70,
+ },
+ [0x16A71]={
+ category="lo",
+ description="TANGSA LETTER OC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A71,
+ },
+ [0x16A72]={
+ category="lo",
+ description="TANGSA LETTER OQ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A72,
+ },
+ [0x16A73]={
+ category="lo",
+ description="TANGSA LETTER OX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A73,
+ },
+ [0x16A74]={
+ category="lo",
+ description="TANGSA LETTER AZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A74,
+ },
+ [0x16A75]={
+ category="lo",
+ description="TANGSA LETTER AC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A75,
+ },
+ [0x16A76]={
+ category="lo",
+ description="TANGSA LETTER AQ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A76,
+ },
+ [0x16A77]={
+ category="lo",
+ description="TANGSA LETTER AX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A77,
+ },
+ [0x16A78]={
+ category="lo",
+ description="TANGSA LETTER VZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A78,
+ },
+ [0x16A79]={
+ category="lo",
+ description="TANGSA LETTER VC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A79,
+ },
+ [0x16A7A]={
+ category="lo",
+ description="TANGSA LETTER VQ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A7A,
+ },
+ [0x16A7B]={
+ category="lo",
+ description="TANGSA LETTER VX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A7B,
+ },
+ [0x16A7C]={
+ category="lo",
+ description="TANGSA LETTER EZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A7C,
+ },
+ [0x16A7D]={
+ category="lo",
+ description="TANGSA LETTER EC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A7D,
+ },
+ [0x16A7E]={
+ category="lo",
+ description="TANGSA LETTER EQ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A7E,
+ },
+ [0x16A7F]={
+ category="lo",
+ description="TANGSA LETTER EX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A7F,
+ },
+ [0x16A80]={
+ category="lo",
+ description="TANGSA LETTER IZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A80,
+ },
+ [0x16A81]={
+ category="lo",
+ description="TANGSA LETTER IC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A81,
+ },
+ [0x16A82]={
+ category="lo",
+ description="TANGSA LETTER IQ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A82,
+ },
+ [0x16A83]={
+ category="lo",
+ description="TANGSA LETTER IX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A83,
+ },
+ [0x16A84]={
+ category="lo",
+ description="TANGSA LETTER UZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A84,
+ },
+ [0x16A85]={
+ category="lo",
+ description="TANGSA LETTER UC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A85,
+ },
+ [0x16A86]={
+ category="lo",
+ description="TANGSA LETTER UQ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A86,
+ },
+ [0x16A87]={
+ category="lo",
+ description="TANGSA LETTER UX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A87,
+ },
+ [0x16A88]={
+ category="lo",
+ description="TANGSA LETTER AWZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A88,
+ },
+ [0x16A89]={
+ category="lo",
+ description="TANGSA LETTER AWC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A89,
+ },
+ [0x16A8A]={
+ category="lo",
+ description="TANGSA LETTER AWQ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A8A,
+ },
+ [0x16A8B]={
+ category="lo",
+ description="TANGSA LETTER AWX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A8B,
+ },
+ [0x16A8C]={
+ category="lo",
+ description="TANGSA LETTER UIZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A8C,
+ },
+ [0x16A8D]={
+ category="lo",
+ description="TANGSA LETTER UIC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A8D,
+ },
+ [0x16A8E]={
+ category="lo",
+ description="TANGSA LETTER UIQ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A8E,
+ },
+ [0x16A8F]={
+ category="lo",
+ description="TANGSA LETTER UIX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A8F,
+ },
+ [0x16A90]={
+ category="lo",
+ description="TANGSA LETTER FINAL NG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A90,
+ },
+ [0x16A91]={
+ category="lo",
+ description="TANGSA LETTER LONG UEX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A91,
+ },
+ [0x16A92]={
+ category="lo",
+ description="TANGSA LETTER SHORT UEZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A92,
+ },
+ [0x16A93]={
+ category="lo",
+ description="TANGSA LETTER SHORT AWX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A93,
+ },
+ [0x16A94]={
+ category="lo",
+ description="TANGSA LETTER UEC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A94,
+ },
+ [0x16A95]={
+ category="lo",
+ description="TANGSA LETTER UEZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A95,
+ },
+ [0x16A96]={
+ category="lo",
+ description="TANGSA LETTER UEQ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A96,
+ },
+ [0x16A97]={
+ category="lo",
+ description="TANGSA LETTER UEX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A97,
+ },
+ [0x16A98]={
+ category="lo",
+ description="TANGSA LETTER UIUZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A98,
+ },
+ [0x16A99]={
+ category="lo",
+ description="TANGSA LETTER UIUC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A99,
+ },
+ [0x16A9A]={
+ category="lo",
+ description="TANGSA LETTER UIUQ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A9A,
+ },
+ [0x16A9B]={
+ category="lo",
+ description="TANGSA LETTER UIUX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A9B,
+ },
+ [0x16A9C]={
+ category="lo",
+ description="TANGSA LETTER MZ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A9C,
+ },
+ [0x16A9D]={
+ category="lo",
+ description="TANGSA LETTER MC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A9D,
+ },
+ [0x16A9E]={
+ category="lo",
+ description="TANGSA LETTER MQ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A9E,
+ },
+ [0x16A9F]={
+ category="lo",
+ description="TANGSA LETTER MX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16A9F,
+ },
+ [0x16AA0]={
+ category="lo",
+ description="TANGSA LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AA0,
+ },
+ [0x16AA1]={
+ category="lo",
+ description="TANGSA LETTER KHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AA1,
+ },
+ [0x16AA2]={
+ category="lo",
+ description="TANGSA LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AA2,
+ },
+ [0x16AA3]={
+ category="lo",
+ description="TANGSA LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AA3,
+ },
+ [0x16AA4]={
+ category="lo",
+ description="TANGSA LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AA4,
+ },
+ [0x16AA5]={
+ category="lo",
+ description="TANGSA LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AA5,
+ },
+ [0x16AA6]={
+ category="lo",
+ description="TANGSA LETTER WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AA6,
+ },
+ [0x16AA7]={
+ category="lo",
+ description="TANGSA LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AA7,
+ },
+ [0x16AA8]={
+ category="lo",
+ description="TANGSA LETTER NYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AA8,
+ },
+ [0x16AA9]={
+ category="lo",
+ description="TANGSA LETTER PHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AA9,
+ },
+ [0x16AAA]={
+ category="lo",
+ description="TANGSA LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AAA,
+ },
+ [0x16AAB]={
+ category="lo",
+ description="TANGSA LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AAB,
+ },
+ [0x16AAC]={
+ category="lo",
+ description="TANGSA LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AAC,
+ },
+ [0x16AAD]={
+ category="lo",
+ description="TANGSA LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AAD,
+ },
+ [0x16AAE]={
+ category="lo",
+ description="TANGSA LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AAE,
+ },
+ [0x16AAF]={
+ category="lo",
+ description="TANGSA LETTER HTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AAF,
+ },
+ [0x16AB0]={
+ category="lo",
+ description="TANGSA LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AB0,
+ },
+ [0x16AB1]={
+ category="lo",
+ description="TANGSA LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AB1,
+ },
+ [0x16AB2]={
+ category="lo",
+ description="TANGSA LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AB2,
+ },
+ [0x16AB3]={
+ category="lo",
+ description="TANGSA LETTER NHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AB3,
+ },
+ [0x16AB4]={
+ category="lo",
+ description="TANGSA LETTER SHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AB4,
+ },
+ [0x16AB5]={
+ category="lo",
+ description="TANGSA LETTER CA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AB5,
+ },
+ [0x16AB6]={
+ category="lo",
+ description="TANGSA LETTER TSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AB6,
+ },
+ [0x16AB7]={
+ category="lo",
+ description="TANGSA LETTER GHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AB7,
+ },
+ [0x16AB8]={
+ category="lo",
+ description="TANGSA LETTER HTTA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AB8,
+ },
+ [0x16AB9]={
+ category="lo",
+ description="TANGSA LETTER THA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16AB9,
+ },
+ [0x16ABA]={
+ category="lo",
+ description="TANGSA LETTER XA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16ABA,
+ },
+ [0x16ABB]={
+ category="lo",
+ description="TANGSA LETTER FA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16ABB,
+ },
+ [0x16ABC]={
+ category="lo",
+ description="TANGSA LETTER DHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16ABC,
+ },
+ [0x16ABD]={
+ category="lo",
+ description="TANGSA LETTER CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16ABD,
+ },
+ [0x16ABE]={
+ category="lo",
+ description="TANGSA LETTER ZA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x16ABE,
+ },
+ [0x16AC0]={
+ category="nd",
+ description="TANGSA DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x16AC0,
+ },
+ [0x16AC1]={
+ category="nd",
+ description="TANGSA DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x16AC1,
+ },
+ [0x16AC2]={
+ category="nd",
+ description="TANGSA DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x16AC2,
+ },
+ [0x16AC3]={
+ category="nd",
+ description="TANGSA DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x16AC3,
+ },
+ [0x16AC4]={
+ category="nd",
+ description="TANGSA DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x16AC4,
+ },
+ [0x16AC5]={
+ category="nd",
+ description="TANGSA DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x16AC5,
+ },
+ [0x16AC6]={
+ category="nd",
+ description="TANGSA DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x16AC6,
+ },
+ [0x16AC7]={
+ category="nd",
+ description="TANGSA DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x16AC7,
+ },
+ [0x16AC8]={
+ category="nd",
+ description="TANGSA DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x16AC8,
+ },
+ [0x16AC9]={
+ category="nd",
+ description="TANGSA DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x16AC9,
+ },
[0x16AD0]={
category="lo",
description="BASSA VAH LETTER ENNI",
@@ -198386,6 +203595,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER M",
direction="l",
+ lccode=0x16E60,
linebreak="al",
unicodeslot=0x16E40,
},
@@ -198393,6 +203603,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER S",
direction="l",
+ lccode=0x16E61,
linebreak="al",
unicodeslot=0x16E41,
},
@@ -198400,6 +203611,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER V",
direction="l",
+ lccode=0x16E62,
linebreak="al",
unicodeslot=0x16E42,
},
@@ -198407,6 +203619,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER W",
direction="l",
+ lccode=0x16E63,
linebreak="al",
unicodeslot=0x16E43,
},
@@ -198414,6 +203627,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER ATIU",
direction="l",
+ lccode=0x16E64,
linebreak="al",
unicodeslot=0x16E44,
},
@@ -198421,6 +203635,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER Z",
direction="l",
+ lccode=0x16E65,
linebreak="al",
unicodeslot=0x16E45,
},
@@ -198428,6 +203643,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER KP",
direction="l",
+ lccode=0x16E66,
linebreak="al",
unicodeslot=0x16E46,
},
@@ -198435,6 +203651,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER P",
direction="l",
+ lccode=0x16E67,
linebreak="al",
unicodeslot=0x16E47,
},
@@ -198442,6 +203659,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER T",
direction="l",
+ lccode=0x16E68,
linebreak="al",
unicodeslot=0x16E48,
},
@@ -198449,6 +203667,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER G",
direction="l",
+ lccode=0x16E69,
linebreak="al",
unicodeslot=0x16E49,
},
@@ -198456,6 +203675,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER F",
direction="l",
+ lccode=0x16E6A,
linebreak="al",
unicodeslot=0x16E4A,
},
@@ -198463,6 +203683,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER I",
direction="l",
+ lccode=0x16E6B,
linebreak="al",
unicodeslot=0x16E4B,
},
@@ -198470,6 +203691,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER K",
direction="l",
+ lccode=0x16E6C,
linebreak="al",
unicodeslot=0x16E4C,
},
@@ -198477,6 +203699,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER A",
direction="l",
+ lccode=0x16E6D,
linebreak="al",
unicodeslot=0x16E4D,
},
@@ -198484,6 +203707,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER J",
direction="l",
+ lccode=0x16E6E,
linebreak="al",
unicodeslot=0x16E4E,
},
@@ -198491,6 +203715,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER E",
direction="l",
+ lccode=0x16E6F,
linebreak="al",
unicodeslot=0x16E4F,
},
@@ -198498,6 +203723,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER B",
direction="l",
+ lccode=0x16E70,
linebreak="al",
unicodeslot=0x16E50,
},
@@ -198505,6 +203731,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER C",
direction="l",
+ lccode=0x16E71,
linebreak="al",
unicodeslot=0x16E51,
},
@@ -198512,6 +203739,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER U",
direction="l",
+ lccode=0x16E72,
linebreak="al",
unicodeslot=0x16E52,
},
@@ -198519,6 +203747,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER YU",
direction="l",
+ lccode=0x16E73,
linebreak="al",
unicodeslot=0x16E53,
},
@@ -198526,6 +203755,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER L",
direction="l",
+ lccode=0x16E74,
linebreak="al",
unicodeslot=0x16E54,
},
@@ -198533,6 +203763,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER Q",
direction="l",
+ lccode=0x16E75,
linebreak="al",
unicodeslot=0x16E55,
},
@@ -198540,6 +203771,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER HP",
direction="l",
+ lccode=0x16E76,
linebreak="al",
unicodeslot=0x16E56,
},
@@ -198547,6 +203779,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER NY",
direction="l",
+ lccode=0x16E77,
linebreak="al",
unicodeslot=0x16E57,
},
@@ -198554,6 +203787,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER X",
direction="l",
+ lccode=0x16E78,
linebreak="al",
unicodeslot=0x16E58,
},
@@ -198561,6 +203795,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER D",
direction="l",
+ lccode=0x16E79,
linebreak="al",
unicodeslot=0x16E59,
},
@@ -198568,6 +203803,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER OE",
direction="l",
+ lccode=0x16E7A,
linebreak="al",
unicodeslot=0x16E5A,
},
@@ -198575,6 +203811,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER N",
direction="l",
+ lccode=0x16E7B,
linebreak="al",
unicodeslot=0x16E5B,
},
@@ -198582,6 +203819,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER R",
direction="l",
+ lccode=0x16E7C,
linebreak="al",
unicodeslot=0x16E5C,
},
@@ -198589,6 +203827,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER O",
direction="l",
+ lccode=0x16E7D,
linebreak="al",
unicodeslot=0x16E5D,
},
@@ -198596,6 +203835,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER AI",
direction="l",
+ lccode=0x16E7E,
linebreak="al",
unicodeslot=0x16E5E,
},
@@ -198603,6 +203843,7 @@ characters.data={
category="lu",
description="MEDEFAIDRIN CAPITAL LETTER Y",
direction="l",
+ lccode=0x16E7F,
linebreak="al",
unicodeslot=0x16E5F,
},
@@ -210024,6 +215265,110 @@ characters.data={
linebreak="al",
unicodeslot=0x18CD5,
},
+ [0x1AFF0]={
+ category="lm",
+ cjkwd="w",
+ description="KATAKANA LETTER MINNAN TONE-2",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1AFF0,
+ },
+ [0x1AFF1]={
+ category="lm",
+ cjkwd="w",
+ description="KATAKANA LETTER MINNAN TONE-3",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1AFF1,
+ },
+ [0x1AFF2]={
+ category="lm",
+ cjkwd="w",
+ description="KATAKANA LETTER MINNAN TONE-4",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1AFF2,
+ },
+ [0x1AFF3]={
+ category="lm",
+ cjkwd="w",
+ description="KATAKANA LETTER MINNAN TONE-5",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1AFF3,
+ },
+ [0x1AFF5]={
+ category="lm",
+ cjkwd="w",
+ description="KATAKANA LETTER MINNAN TONE-7",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1AFF5,
+ },
+ [0x1AFF6]={
+ category="lm",
+ cjkwd="w",
+ description="KATAKANA LETTER MINNAN TONE-8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1AFF6,
+ },
+ [0x1AFF7]={
+ category="lm",
+ cjkwd="w",
+ description="KATAKANA LETTER MINNAN NASALIZED TONE-1",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1AFF7,
+ },
+ [0x1AFF8]={
+ category="lm",
+ cjkwd="w",
+ description="KATAKANA LETTER MINNAN NASALIZED TONE-2",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1AFF8,
+ },
+ [0x1AFF9]={
+ category="lm",
+ cjkwd="w",
+ description="KATAKANA LETTER MINNAN NASALIZED TONE-3",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1AFF9,
+ },
+ [0x1AFFA]={
+ category="lm",
+ cjkwd="w",
+ description="KATAKANA LETTER MINNAN NASALIZED TONE-4",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1AFFA,
+ },
+ [0x1AFFB]={
+ category="lm",
+ cjkwd="w",
+ description="KATAKANA LETTER MINNAN NASALIZED TONE-5",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1AFFB,
+ },
+ [0x1AFFD]={
+ category="lm",
+ cjkwd="w",
+ description="KATAKANA LETTER MINNAN NASALIZED TONE-7",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1AFFD,
+ },
+ [0x1AFFE]={
+ category="lm",
+ cjkwd="w",
+ description="KATAKANA LETTER MINNAN NASALIZED TONE-8",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1AFFE,
+ },
[0x1B000]={
category="lo",
cjkwd="w",
@@ -212320,6 +217665,46 @@ characters.data={
linebreak="id",
unicodeslot=0x1B11E,
},
+ [0x1B11F]={
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER ARCHAIC WU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x1B11F,
+ },
+ [0x1B120]={
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER ARCHAIC YI",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x1B120,
+ },
+ [0x1B121]={
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER ARCHAIC YE",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x1B121,
+ },
+ [0x1B122]={
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER ARCHAIC WU",
+ direction="l",
+ linebreak="id",
+ unicodeslot=0x1B122,
+ },
+ [0x1B132]={
+ category="lo",
+ cjkwd="w",
+ description="HIRAGANA LETTER SMALL KO",
+ direction="l",
+ linebreak="cj",
+ unicodeslot=0x1B132,
+ },
[0x1B150]={
category="lo",
cjkwd="w",
@@ -212344,6 +217729,14 @@ characters.data={
linebreak="cj",
unicodeslot=0x1B152,
},
+ [0x1B155]={
+ category="lo",
+ cjkwd="w",
+ description="KATAKANA LETTER SMALL KO",
+ direction="l",
+ linebreak="cj",
+ unicodeslot=0x1B155,
+ },
[0x1B164]={
category="lo",
cjkwd="w",
@@ -216574,6 +221967,1301 @@ characters.data={
linebreak="cm",
unicodeslot=0x1BCA3,
},
+ [0x1CF00]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF00,
+ },
+ [0x1CF01]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK NIZKO S KRYZHEM ON LEFT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF01,
+ },
+ [0x1CF02]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK TSATA ON LEFT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF02,
+ },
+ [0x1CF03]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK GORAZDO NIZKO ON LEFT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF03,
+ },
+ [0x1CF04]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK NIZKO ON LEFT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF04,
+ },
+ [0x1CF05]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK SREDNE ON LEFT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF05,
+ },
+ [0x1CF06]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK MALO POVYSHE ON LEFT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF06,
+ },
+ [0x1CF07]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK POVYSHE ON LEFT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF07,
+ },
+ [0x1CF08]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK VYSOKO ON LEFT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF08,
+ },
+ [0x1CF09]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK MALO POVYSHE S KHOKHLOM ON LEFT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF09,
+ },
+ [0x1CF0A]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK POVYSHE S KHOKHLOM ON LEFT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF0A,
+ },
+ [0x1CF0B]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK VYSOKO S KHOKHLOM ON LEFT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF0B,
+ },
+ [0x1CF0C]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON RIGHT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF0C,
+ },
+ [0x1CF0D]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK NIZKO S KRYZHEM ON RIGHT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF0D,
+ },
+ [0x1CF0E]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK TSATA ON RIGHT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF0E,
+ },
+ [0x1CF0F]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK GORAZDO NIZKO ON RIGHT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF0F,
+ },
+ [0x1CF10]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK NIZKO ON RIGHT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF10,
+ },
+ [0x1CF11]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK SREDNE ON RIGHT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF11,
+ },
+ [0x1CF12]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK MALO POVYSHE ON RIGHT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF12,
+ },
+ [0x1CF13]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK POVYSHE ON RIGHT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF13,
+ },
+ [0x1CF14]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK VYSOKO ON RIGHT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF14,
+ },
+ [0x1CF15]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK MALO POVYSHE S KHOKHLOM ON RIGHT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF15,
+ },
+ [0x1CF16]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK POVYSHE S KHOKHLOM ON RIGHT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF16,
+ },
+ [0x1CF17]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK VYSOKO S KHOKHLOM ON RIGHT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF17,
+ },
+ [0x1CF18]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK TSATA S KRYZHEM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF18,
+ },
+ [0x1CF19]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK MALO POVYSHE S KRYZHEM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF19,
+ },
+ [0x1CF1A]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK STRANNO MALO POVYSHE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF1A,
+ },
+ [0x1CF1B]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK POVYSHE S KRYZHEM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF1B,
+ },
+ [0x1CF1C]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK POVYSHE STRANNO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF1C,
+ },
+ [0x1CF1D]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK VYSOKO S KRYZHEM",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF1D,
+ },
+ [0x1CF1E]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK MALO POVYSHE STRANNO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF1E,
+ },
+ [0x1CF1F]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK GORAZDO VYSOKO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF1F,
+ },
+ [0x1CF20]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK ZELO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF20,
+ },
+ [0x1CF21]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK ON",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF21,
+ },
+ [0x1CF22]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK RAVNO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF22,
+ },
+ [0x1CF23]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK TIKHAYA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF23,
+ },
+ [0x1CF24]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK BORZAYA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF24,
+ },
+ [0x1CF25]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK UDARKA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF25,
+ },
+ [0x1CF26]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK PODVERTKA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF26,
+ },
+ [0x1CF27]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK LOMKA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF27,
+ },
+ [0x1CF28]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK KUPNAYA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF28,
+ },
+ [0x1CF29]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK KACHKA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF29,
+ },
+ [0x1CF2A]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK ZEVOK",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF2A,
+ },
+ [0x1CF2B]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK SKOBA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF2B,
+ },
+ [0x1CF2C]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK RAZSEKA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF2C,
+ },
+ [0x1CF2D]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK KRYZH ON LEFT",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF2D,
+ },
+ [0x1CF30]={
+ category="mn",
+ description="ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF30,
+ },
+ [0x1CF31]={
+ category="mn",
+ description="ZNAMENNY COMBINING TONAL RANGE MARK SVETLO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF31,
+ },
+ [0x1CF32]={
+ category="mn",
+ description="ZNAMENNY COMBINING TONAL RANGE MARK TRESVETLO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF32,
+ },
+ [0x1CF33]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK ZADERZHKA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF33,
+ },
+ [0x1CF34]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK DEMESTVENNY ZADERZHKA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF34,
+ },
+ [0x1CF35]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK OTSECHKA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF35,
+ },
+ [0x1CF36]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK PODCHASHIE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF36,
+ },
+ [0x1CF37]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK PODCHASHIE WITH VERTICAL STROKE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF37,
+ },
+ [0x1CF38]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK CHASHKA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF38,
+ },
+ [0x1CF39]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK CHASHKA POLNAYA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF39,
+ },
+ [0x1CF3A]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK OBLACHKO",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF3A,
+ },
+ [0x1CF3B]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK SOROCHYA NOZHKA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF3B,
+ },
+ [0x1CF3C]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK TOCHKA",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF3C,
+ },
+ [0x1CF3D]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK DVOETOCHIE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF3D,
+ },
+ [0x1CF3E]={
+ category="mn",
+ description="ZNAMENNY COMBINING ATTACHING VERTICAL OMET",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF3E,
+ },
+ [0x1CF3F]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK CURVED OMET",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF3F,
+ },
+ [0x1CF40]={
+ category="mn",
+ description="ZNAMENNY COMBINING MARK KRYZH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF40,
+ },
+ [0x1CF41]={
+ category="mn",
+ description="ZNAMENNY COMBINING LOWER TONAL RANGE INDICATOR",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF41,
+ },
+ [0x1CF42]={
+ category="mn",
+ description="ZNAMENNY PRIZNAK MODIFIER LEVEL-2",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF42,
+ },
+ [0x1CF43]={
+ category="mn",
+ description="ZNAMENNY PRIZNAK MODIFIER LEVEL-3",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF43,
+ },
+ [0x1CF44]={
+ category="mn",
+ description="ZNAMENNY PRIZNAK MODIFIER DIRECTION FLIP",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF44,
+ },
+ [0x1CF45]={
+ category="mn",
+ description="ZNAMENNY PRIZNAK MODIFIER KRYZH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF45,
+ },
+ [0x1CF46]={
+ category="mn",
+ description="ZNAMENNY PRIZNAK MODIFIER ROG",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1CF46,
+ },
+ [0x1CF50]={
+ category="so",
+ description="ZNAMENNY NEUME KRYUK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF50,
+ },
+ [0x1CF51]={
+ category="so",
+ description="ZNAMENNY NEUME KRYUK TIKHY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF51,
+ },
+ [0x1CF52]={
+ category="so",
+ description="ZNAMENNY NEUME PARAKLIT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF52,
+ },
+ [0x1CF53]={
+ category="so",
+ description="ZNAMENNY NEUME DVA V CHELNU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF53,
+ },
+ [0x1CF54]={
+ category="so",
+ description="ZNAMENNY NEUME KLYUCH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF54,
+ },
+ [0x1CF55]={
+ category="so",
+ description="ZNAMENNY NEUME ZANOZHEK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF55,
+ },
+ [0x1CF56]={
+ category="so",
+ description="ZNAMENNY NEUME STOPITSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF56,
+ },
+ [0x1CF57]={
+ category="so",
+ description="ZNAMENNY NEUME STOPITSA S OCHKOM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF57,
+ },
+ [0x1CF58]={
+ category="so",
+ description="ZNAMENNY NEUME PEREVODKA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF58,
+ },
+ [0x1CF59]={
+ category="so",
+ description="ZNAMENNY NEUME PEREVODKA NEPOSTOYANNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF59,
+ },
+ [0x1CF5A]={
+ category="so",
+ description="ZNAMENNY NEUME STOPITSA WITH SOROCHYA NOZHKA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF5A,
+ },
+ [0x1CF5B]={
+ category="so",
+ description="ZNAMENNY NEUME CHELYUSTKA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF5B,
+ },
+ [0x1CF5C]={
+ category="so",
+ description="ZNAMENNY NEUME PALKA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF5C,
+ },
+ [0x1CF5D]={
+ category="so",
+ description="ZNAMENNY NEUME ZAPYATAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF5D,
+ },
+ [0x1CF5E]={
+ category="so",
+ description="ZNAMENNY NEUME GOLUBCHIK BORZY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF5E,
+ },
+ [0x1CF5F]={
+ category="so",
+ description="ZNAMENNY NEUME GOLUBCHIK TIKHY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF5F,
+ },
+ [0x1CF60]={
+ category="so",
+ description="ZNAMENNY NEUME GOLUBCHIK MRACHNY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF60,
+ },
+ [0x1CF61]={
+ category="so",
+ description="ZNAMENNY NEUME GOLUBCHIK SVETLY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF61,
+ },
+ [0x1CF62]={
+ category="so",
+ description="ZNAMENNY NEUME GOLUBCHIK TRESVETLY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF62,
+ },
+ [0x1CF63]={
+ category="so",
+ description="ZNAMENNY NEUME VRAKHIYA PROSTAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF63,
+ },
+ [0x1CF64]={
+ category="so",
+ description="ZNAMENNY NEUME VRAKHIYA MRACHNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF64,
+ },
+ [0x1CF65]={
+ category="so",
+ description="ZNAMENNY NEUME VRAKHIYA SVETLAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF65,
+ },
+ [0x1CF66]={
+ category="so",
+ description="ZNAMENNY NEUME VRAKHIYA TRESVETLAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF66,
+ },
+ [0x1CF67]={
+ category="so",
+ description="ZNAMENNY NEUME VRAKHIYA KLYUCHEVAYA PROSTAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF67,
+ },
+ [0x1CF68]={
+ category="so",
+ description="ZNAMENNY NEUME VRAKHIYA KLYUCHEVAYA MRACHNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF68,
+ },
+ [0x1CF69]={
+ category="so",
+ description="ZNAMENNY NEUME VRAKHIYA KLYUCHEVAYA SVETLAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF69,
+ },
+ [0x1CF6A]={
+ category="so",
+ description="ZNAMENNY NEUME VRAKHIYA KLYUCHEVAYA TRESVETLAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF6A,
+ },
+ [0x1CF6B]={
+ category="so",
+ description="ZNAMENNY NEUME DOUBLE ZAPYATAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF6B,
+ },
+ [0x1CF6C]={
+ category="so",
+ description="ZNAMENNY NEUME REVERSED CHELYUSTKA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF6C,
+ },
+ [0x1CF6D]={
+ category="so",
+ description="ZNAMENNY NEUME DERBITSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF6D,
+ },
+ [0x1CF6E]={
+ category="so",
+ description="ZNAMENNY NEUME KHAMILO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF6E,
+ },
+ [0x1CF6F]={
+ category="so",
+ description="ZNAMENNY NEUME CHASHKA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF6F,
+ },
+ [0x1CF70]={
+ category="so",
+ description="ZNAMENNY NEUME PODCHASHIE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF70,
+ },
+ [0x1CF71]={
+ category="so",
+ description="ZNAMENNY NEUME SKAMEYTSA MRACHNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF71,
+ },
+ [0x1CF72]={
+ category="so",
+ description="ZNAMENNY NEUME SKAMEYTSA SVETLAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF72,
+ },
+ [0x1CF73]={
+ category="so",
+ description="ZNAMENNY NEUME SKAMEYTSA TRESVETLAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF73,
+ },
+ [0x1CF74]={
+ category="so",
+ description="ZNAMENNY NEUME SKAMEYTSA TIKHAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF74,
+ },
+ [0x1CF75]={
+ category="so",
+ description="ZNAMENNY NEUME DEMESTVENNY KLYUCH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF75,
+ },
+ [0x1CF76]={
+ category="so",
+ description="ZNAMENNY NEUME SKAMEYTSA KLYUCHEVAYA SVETLAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF76,
+ },
+ [0x1CF77]={
+ category="so",
+ description="ZNAMENNY NEUME SKAMEYTSA KLYUCHENEPOSTOYANNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF77,
+ },
+ [0x1CF78]={
+ category="so",
+ description="ZNAMENNY NEUME SKAMEYTSA KLYUCHEVAYA TIKHAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF78,
+ },
+ [0x1CF79]={
+ category="so",
+ description="ZNAMENNY NEUME SKAMEYTSA DVOECHELNAYA PROSTAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF79,
+ },
+ [0x1CF7A]={
+ category="so",
+ description="ZNAMENNY NEUME SKAMEYTSA DVOECHELNAYA SVETLAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF7A,
+ },
+ [0x1CF7B]={
+ category="so",
+ description="ZNAMENNY NEUME SKAMEYTSA DVOECHELNAYA NEPOSTOYANNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF7B,
+ },
+ [0x1CF7C]={
+ category="so",
+ description="ZNAMENNY NEUME SKAMEYTSA DVOECHELNAYA KLYUCHEVAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF7C,
+ },
+ [0x1CF7D]={
+ category="so",
+ description="ZNAMENNY NEUME SLOZHITIE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF7D,
+ },
+ [0x1CF7E]={
+ category="so",
+ description="ZNAMENNY NEUME SLOZHITIE S ZAPYATOY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF7E,
+ },
+ [0x1CF7F]={
+ category="so",
+ description="ZNAMENNY NEUME SLOZHITIE ZAKRYTOE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF7F,
+ },
+ [0x1CF80]={
+ category="so",
+ description="ZNAMENNY NEUME SLOZHITIE S KRYZHEM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF80,
+ },
+ [0x1CF81]={
+ category="so",
+ description="ZNAMENNY NEUME KRYZH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF81,
+ },
+ [0x1CF82]={
+ category="so",
+ description="ZNAMENNY NEUME ROG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF82,
+ },
+ [0x1CF83]={
+ category="so",
+ description="ZNAMENNY NEUME FITA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF83,
+ },
+ [0x1CF84]={
+ category="so",
+ description="ZNAMENNY NEUME KOBYLA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF84,
+ },
+ [0x1CF85]={
+ category="so",
+ description="ZNAMENNY NEUME ZMEYTSA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF85,
+ },
+ [0x1CF86]={
+ category="so",
+ description="ZNAMENNY NEUME STATYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF86,
+ },
+ [0x1CF87]={
+ category="so",
+ description="ZNAMENNY NEUME STATYA S ZAPYATOY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF87,
+ },
+ [0x1CF88]={
+ category="so",
+ description="ZNAMENNY NEUME STATYA S KRYZHEM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF88,
+ },
+ [0x1CF89]={
+ category="so",
+ description="ZNAMENNY NEUME STATYA S ZAPYATOY I KRYZHEM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF89,
+ },
+ [0x1CF8A]={
+ category="so",
+ description="ZNAMENNY NEUME STATYA S KRYZHEM I ZAPYATOY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF8A,
+ },
+ [0x1CF8B]={
+ category="so",
+ description="ZNAMENNY NEUME STATYA ZAKRYTAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF8B,
+ },
+ [0x1CF8C]={
+ category="so",
+ description="ZNAMENNY NEUME STATYA ZAKRYTAYA S ZAPYATOY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF8C,
+ },
+ [0x1CF8D]={
+ category="so",
+ description="ZNAMENNY NEUME STATYA S ROGOM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF8D,
+ },
+ [0x1CF8E]={
+ category="so",
+ description="ZNAMENNY NEUME STATYA S DVUMYA ZAPYATYMI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF8E,
+ },
+ [0x1CF8F]={
+ category="so",
+ description="ZNAMENNY NEUME STATYA S ZAPYATOY I PODCHASHIEM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF8F,
+ },
+ [0x1CF90]={
+ category="so",
+ description="ZNAMENNY NEUME POLKULIZMY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF90,
+ },
+ [0x1CF91]={
+ category="so",
+ description="ZNAMENNY NEUME STATYA NEPOSTOYANNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF91,
+ },
+ [0x1CF92]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA PROSTAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF92,
+ },
+ [0x1CF93]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA MRACHNOTIKHAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF93,
+ },
+ [0x1CF94]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA KRYZHEVAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF94,
+ },
+ [0x1CF95]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA POLUPOVODNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF95,
+ },
+ [0x1CF96]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA POVODNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF96,
+ },
+ [0x1CF97]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA NEPOSTOYANNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF97,
+ },
+ [0x1CF98]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA KLYUCHEPOVODNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF98,
+ },
+ [0x1CF99]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA KLYUCHENEPOSTOYANNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF99,
+ },
+ [0x1CF9A]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA TIKHAYA PUTNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF9A,
+ },
+ [0x1CF9B]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA DVOECHELNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF9B,
+ },
+ [0x1CF9C]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA DVOECHELNOKRYZHEVAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF9C,
+ },
+ [0x1CF9D]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA DVOECHELNOPOVODNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF9D,
+ },
+ [0x1CF9E]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA DVOECHELNAYA KLYUCHEVAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF9E,
+ },
+ [0x1CF9F]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA DVOECHELNOPOVODNAYA KLYUCHEVAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CF9F,
+ },
+ [0x1CFA0]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA GROMNAYA WITH SINGLE ZAPYATAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFA0,
+ },
+ [0x1CFA1]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA GROMOPOVODNAYA WITH SINGLE ZAPYATAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFA1,
+ },
+ [0x1CFA2]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA GROMNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFA2,
+ },
+ [0x1CFA3]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA GROMOPOVODNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFA3,
+ },
+ [0x1CFA4]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA GROMOPOVODNAYA WITH DOUBLE ZAPYATAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFA4,
+ },
+ [0x1CFA5]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA GROMOKRYZHEVAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFA5,
+ },
+ [0x1CFA6]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA GROMOKRYZHEVAYA POVODNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFA6,
+ },
+ [0x1CFA7]={
+ category="so",
+ description="ZNAMENNY NEUME MECHIK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFA7,
+ },
+ [0x1CFA8]={
+ category="so",
+ description="ZNAMENNY NEUME MECHIK POVODNY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFA8,
+ },
+ [0x1CFA9]={
+ category="so",
+ description="ZNAMENNY NEUME MECHIK KLYUCHEVOY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFA9,
+ },
+ [0x1CFAA]={
+ category="so",
+ description="ZNAMENNY NEUME MECHIK KLYUCHEPOVODNY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFAA,
+ },
+ [0x1CFAB]={
+ category="so",
+ description="ZNAMENNY NEUME MECHIK KLYUCHENEPOSTOYANNY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFAB,
+ },
+ [0x1CFAC]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA TRYASOGLASNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFAC,
+ },
+ [0x1CFAD]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA TRYASOPOVODNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFAD,
+ },
+ [0x1CFAE]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA TRYASOSTRELNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFAE,
+ },
+ [0x1CFAF]={
+ category="so",
+ description="ZNAMENNY NEUME OSOKA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFAF,
+ },
+ [0x1CFB0]={
+ category="so",
+ description="ZNAMENNY NEUME OSOKA SVETLAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFB0,
+ },
+ [0x1CFB1]={
+ category="so",
+ description="ZNAMENNY NEUME OSOKA TRESVETLAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFB1,
+ },
+ [0x1CFB2]={
+ category="so",
+ description="ZNAMENNY NEUME OSOKA KRYUKOVAYA SVETLAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFB2,
+ },
+ [0x1CFB3]={
+ category="so",
+ description="ZNAMENNY NEUME OSOKA KLYUCHEVAYA SVETLAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFB3,
+ },
+ [0x1CFB4]={
+ category="so",
+ description="ZNAMENNY NEUME OSOKA KLYUCHEVAYA NEPOSTOYANNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFB4,
+ },
+ [0x1CFB5]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA KRYUKOVAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFB5,
+ },
+ [0x1CFB6]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA KRYUKOVAYA POVODNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFB6,
+ },
+ [0x1CFB7]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA KRYUKOVAYA GROMNAYA WITH SINGLE ZAPYATAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFB7,
+ },
+ [0x1CFB8]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA KRYUKOVAYA GROMOPOVODNAYA WITH SINGLE ZAPYATAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFB8,
+ },
+ [0x1CFB9]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA KRYUKOVAYA GROMNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFB9,
+ },
+ [0x1CFBA]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA KRYUKOVAYA GROMOPOVODNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFBA,
+ },
+ [0x1CFBB]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA KRYUKOVAYA GROMOPOVODNAYA WITH DOUBLE ZAPYATAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFBB,
+ },
+ [0x1CFBC]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA KRYUKOVAYA GROMOKRYZHEVAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFBC,
+ },
+ [0x1CFBD]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA KRYUKOVAYA GROMOKRYZHEVAYA POVODNAYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFBD,
+ },
+ [0x1CFBE]={
+ category="so",
+ description="ZNAMENNY NEUME STRELA KRYUKOVAYA TRYASKA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFBE,
+ },
+ [0x1CFBF]={
+ category="so",
+ description="ZNAMENNY NEUME KUFISMA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFBF,
+ },
+ [0x1CFC0]={
+ category="so",
+ description="ZNAMENNY NEUME OBLAKO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFC0,
+ },
+ [0x1CFC1]={
+ category="so",
+ description="ZNAMENNY NEUME DUDA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFC1,
+ },
+ [0x1CFC2]={
+ category="so",
+ description="ZNAMENNY NEUME NEMKA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFC2,
+ },
+ [0x1CFC3]={
+ category="so",
+ description="ZNAMENNY NEUME PAUK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1CFC3,
+ },
[0x1D000]={
category="so",
description="BYZANTINE MUSICAL SYMBOL PSILI",
@@ -219958,6 +226646,20 @@ characters.data={
linebreak="al",
unicodeslot=0x1D1E8,
},
+ [0x1D1E9]={
+ category="so",
+ description="MUSICAL SYMBOL SORI",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D1E9,
+ },
+ [0x1D1EA]={
+ category="so",
+ description="MUSICAL SYMBOL KORON",
+ direction="on",
+ linebreak="al",
+ unicodeslot=0x1D1EA,
+ },
[0x1D200]={
category="so",
description="GREEK VOCAL NOTATION SYMBOL-0x0001",
@@ -220451,6 +227153,146 @@ characters.data={
linebreak="al",
unicodeslot=0x1D245,
},
+ [0x1D2C0]={
+ category="no",
+ description="KAKTOVIK NUMERAL ZERO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2C0,
+ },
+ [0x1D2C1]={
+ category="no",
+ description="KAKTOVIK NUMERAL ONE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2C1,
+ },
+ [0x1D2C2]={
+ category="no",
+ description="KAKTOVIK NUMERAL TWO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2C2,
+ },
+ [0x1D2C3]={
+ category="no",
+ description="KAKTOVIK NUMERAL THREE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2C3,
+ },
+ [0x1D2C4]={
+ category="no",
+ description="KAKTOVIK NUMERAL FOUR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2C4,
+ },
+ [0x1D2C5]={
+ category="no",
+ description="KAKTOVIK NUMERAL FIVE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2C5,
+ },
+ [0x1D2C6]={
+ category="no",
+ description="KAKTOVIK NUMERAL SIX",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2C6,
+ },
+ [0x1D2C7]={
+ category="no",
+ description="KAKTOVIK NUMERAL SEVEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2C7,
+ },
+ [0x1D2C8]={
+ category="no",
+ description="KAKTOVIK NUMERAL EIGHT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2C8,
+ },
+ [0x1D2C9]={
+ category="no",
+ description="KAKTOVIK NUMERAL NINE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2C9,
+ },
+ [0x1D2CA]={
+ category="no",
+ description="KAKTOVIK NUMERAL TEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2CA,
+ },
+ [0x1D2CB]={
+ category="no",
+ description="KAKTOVIK NUMERAL ELEVEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2CB,
+ },
+ [0x1D2CC]={
+ category="no",
+ description="KAKTOVIK NUMERAL TWELVE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2CC,
+ },
+ [0x1D2CD]={
+ category="no",
+ description="KAKTOVIK NUMERAL THIRTEEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2CD,
+ },
+ [0x1D2CE]={
+ category="no",
+ description="KAKTOVIK NUMERAL FOURTEEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2CE,
+ },
+ [0x1D2CF]={
+ category="no",
+ description="KAKTOVIK NUMERAL FIFTEEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2CF,
+ },
+ [0x1D2D0]={
+ category="no",
+ description="KAKTOVIK NUMERAL SIXTEEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2D0,
+ },
+ [0x1D2D1]={
+ category="no",
+ description="KAKTOVIK NUMERAL SEVENTEEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2D1,
+ },
+ [0x1D2D2]={
+ category="no",
+ description="KAKTOVIK NUMERAL EIGHTEEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2D2,
+ },
+ [0x1D2D3]={
+ category="no",
+ description="KAKTOVIK NUMERAL NINETEEN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1D2D3,
+ },
[0x1D2E0]={
category="no",
description="MAYAN NUMERAL ZERO",
@@ -221875,6 +228717,13 @@ characters.data={
description="MATHEMATICAL ITALIC CAPITAL D",
direction="l",
linebreak="al",
+ mathclass="ordinary",
+ mathspec={
+ {
+ class="differential",
+ name="Dd",
+ },
+ },
specials={ "font", 0x44 },
unicodeslot=0x1D437,
visual="it",
@@ -222109,6 +228958,13 @@ characters.data={
description="MATHEMATICAL ITALIC SMALL D",
direction="l",
linebreak="al",
+ mathclass="ordinary",
+ mathspec={
+ {
+ class="differential",
+ name="dd",
+ },
+ },
specials={ "font", 0x64 },
unicodeslot=0x1D451,
visual="it",
@@ -222118,6 +228974,13 @@ characters.data={
description="MATHEMATICAL ITALIC SMALL E",
direction="l",
linebreak="al",
+ mathclass="ordinary",
+ mathspec={
+ {
+ class="exponential",
+ name="ee",
+ },
+ },
specials={ "font", 0x65 },
unicodeslot=0x1D452,
visual="it",
@@ -222145,6 +229008,13 @@ characters.data={
description="MATHEMATICAL ITALIC SMALL I",
direction="l",
linebreak="al",
+ mathclass="ordinary",
+ mathspec={
+ {
+ class="imaginary",
+ name="ii",
+ },
+ },
specials={ "font", 0x69 },
unicodeslot=0x1D456,
visual="it",
@@ -222154,6 +229024,13 @@ characters.data={
description="MATHEMATICAL ITALIC SMALL J",
direction="l",
linebreak="al",
+ mathclass="ordinary",
+ mathspec={
+ {
+ class="imaginary",
+ name="ji",
+ },
+ },
specials={ "font", 0x6A },
unicodeslot=0x1D457,
visual="it",
@@ -222777,6 +229654,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x41 },
unicodeslot=0x1D49C,
+ variants=variants_style,
visual="it",
},
[0x1D49E]={
@@ -222786,6 +229664,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x43 },
unicodeslot=0x1D49E,
+ variants=variants_style,
visual="it",
},
[0x1D49F]={
@@ -222795,6 +229674,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x44 },
unicodeslot=0x1D49F,
+ variants=variants_style,
visual="it",
},
[0x1D4A2]={
@@ -222804,6 +229684,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x47 },
unicodeslot=0x1D4A2,
+ variants=variants_style,
visual="it",
},
[0x1D4A5]={
@@ -222813,6 +229694,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x4A },
unicodeslot=0x1D4A5,
+ variants=variants_style,
visual="it",
},
[0x1D4A6]={
@@ -222822,6 +229704,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x4B },
unicodeslot=0x1D4A6,
+ variants=variants_style,
visual="it",
},
[0x1D4A9]={
@@ -222831,6 +229714,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x4E },
unicodeslot=0x1D4A9,
+ variants=variants_style,
visual="it",
},
[0x1D4AA]={
@@ -222840,6 +229724,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x4F },
unicodeslot=0x1D4AA,
+ variants=variants_style,
visual="it",
},
[0x1D4AB]={
@@ -222850,6 +229735,7 @@ characters.data={
specials={ "font", 0x50 },
synonyms={ "power set" },
unicodeslot=0x1D4AB,
+ variants=variants_style,
visual="it",
},
[0x1D4AC]={
@@ -222859,6 +229745,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x51 },
unicodeslot=0x1D4AC,
+ variants=variants_style,
visual="it",
},
[0x1D4AE]={
@@ -222868,6 +229755,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x53 },
unicodeslot=0x1D4AE,
+ variants=variants_style,
visual="it",
},
[0x1D4AF]={
@@ -222877,6 +229765,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x54 },
unicodeslot=0x1D4AF,
+ variants=variants_style,
visual="it",
},
[0x1D4B0]={
@@ -222886,6 +229775,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x55 },
unicodeslot=0x1D4B0,
+ variants=variants_style,
visual="it",
},
[0x1D4B1]={
@@ -222895,6 +229785,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x56 },
unicodeslot=0x1D4B1,
+ variants=variants_style,
visual="it",
},
[0x1D4B2]={
@@ -222904,6 +229795,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x57 },
unicodeslot=0x1D4B2,
+ variants=variants_style,
visual="it",
},
[0x1D4B3]={
@@ -222913,6 +229805,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x58 },
unicodeslot=0x1D4B3,
+ variants=variants_style,
visual="it",
},
[0x1D4B4]={
@@ -222922,6 +229815,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x59 },
unicodeslot=0x1D4B4,
+ variants=variants_style,
visual="it",
},
[0x1D4B5]={
@@ -222931,6 +229825,7 @@ characters.data={
linebreak="al",
specials={ "font", 0x5A },
unicodeslot=0x1D4B5,
+ variants=variants_style,
visual="it",
},
[0x1D4B6]={
@@ -227055,7 +233950,7 @@ characters.data={
description="MATHEMATICAL ITALIC SMALL DOTLESS I",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="imath",
specials={ "font", 0x131 },
unicodeslot=0x1D6A4,
@@ -227066,7 +233961,7 @@ characters.data={
description="MATHEMATICAL ITALIC SMALL DOTLESS J",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="jmath",
specials={ "font", 0x237 },
unicodeslot=0x1D6A5,
@@ -227536,6 +234431,7 @@ characters.data={
description="MATHEMATICAL BOLD PARTIAL DIFFERENTIAL",
direction="on",
linebreak="al",
+ mathclass="differential",
specials={ "font", 0x2202 },
unicodeslot=0x1D6DB,
visual="bf",
@@ -227824,7 +234720,7 @@ characters.data={
description="MATHEMATICAL ITALIC NABLA",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
specials={ "font", 0x2207 },
unicodeslot=0x1D6FB,
visual="it",
@@ -228059,6 +234955,7 @@ characters.data={
description="MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL",
direction="on",
linebreak="al",
+ mathclass="differential",
specials={ "font", 0x2202 },
unicodeslot=0x1D715,
visual="it",
@@ -228077,7 +234974,7 @@ characters.data={
description="MATHEMATICAL ITALIC THETA SYMBOL",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="vartheta",
specials={ "font", 0x3D1 },
unicodeslot=0x1D717,
@@ -228088,7 +234985,7 @@ characters.data={
description="MATHEMATICAL ITALIC KAPPA SYMBOL",
direction="l",
linebreak="al",
- mathclass="default",
+ mathclass="ordinary",
mathname="varkappa",
specials={ "font", 0x3F0 },
unicodeslot=0x1D718,
@@ -228108,7 +235005,6 @@ characters.data={
description="MATHEMATICAL ITALIC RHO SYMBOL",
direction="l",
linebreak="al",
- mathclass="variable",
mathname="varrho",
specials={ "font", 0x3F1 },
unicodeslot=0x1D71A,
@@ -228587,6 +235483,7 @@ characters.data={
description="MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL",
direction="on",
linebreak="al",
+ mathclass="differential",
specials={ "font", 0x2202 },
unicodeslot=0x1D74F,
visual="bi",
@@ -229109,6 +236006,7 @@ characters.data={
description="MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL",
direction="on",
linebreak="al",
+ mathclass="differential",
specials={ "font", 0x2202 },
unicodeslot=0x1D789,
visual="bf",
@@ -229631,6 +236529,7 @@ characters.data={
description="MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL",
direction="on",
linebreak="al",
+ mathclass="differential",
specials={ "font", 0x2202 },
unicodeslot=0x1D7C3,
visual="bi",
@@ -234831,6 +241730,265 @@ characters.data={
linebreak="cm",
unicodeslot=0x1DAAF,
},
+ [0x1DF00]={
+ category="ll",
+ description="LATIN SMALL LETTER FENG DIGRAPH WITH TRILL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF00,
+ },
+ [0x1DF01]={
+ category="ll",
+ description="LATIN SMALL LETTER REVERSED SCRIPT G",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF01,
+ },
+ [0x1DF02]={
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL TURNED G",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF02,
+ },
+ [0x1DF03]={
+ category="ll",
+ description="LATIN SMALL LETTER REVERSED K",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF03,
+ },
+ [0x1DF04]={
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL L WITH BELT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF04,
+ },
+ [0x1DF05]={
+ category="ll",
+ description="LATIN SMALL LETTER LEZH WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF05,
+ },
+ [0x1DF06]={
+ category="ll",
+ description="LATIN SMALL LETTER TURNED Y WITH BELT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF06,
+ },
+ [0x1DF07]={
+ category="ll",
+ description="LATIN SMALL LETTER REVERSED ENG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF07,
+ },
+ [0x1DF08]={
+ category="ll",
+ description="LATIN SMALL LETTER TURNED R WITH LONG LEG AND RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF08,
+ },
+ [0x1DF09]={
+ category="ll",
+ description="LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF09,
+ },
+ [0x1DF0A]={
+ category="lo",
+ description="LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF0A,
+ },
+ [0x1DF0B]={
+ category="ll",
+ description="LATIN SMALL LETTER ESH WITH DOUBLE BAR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF0B,
+ },
+ [0x1DF0C]={
+ category="ll",
+ description="LATIN SMALL LETTER ESH WITH DOUBLE BAR AND CURL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF0C,
+ },
+ [0x1DF0D]={
+ category="ll",
+ description="LATIN SMALL LETTER TURNED T WITH CURL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF0D,
+ },
+ [0x1DF0E]={
+ category="ll",
+ description="LATIN LETTER INVERTED GLOTTAL STOP WITH CURL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF0E,
+ },
+ [0x1DF0F]={
+ category="ll",
+ description="LATIN LETTER STRETCHED C WITH CURL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF0F,
+ },
+ [0x1DF10]={
+ category="ll",
+ description="LATIN LETTER SMALL CAPITAL TURNED K",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF10,
+ },
+ [0x1DF11]={
+ category="ll",
+ description="LATIN SMALL LETTER L WITH FISHHOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF11,
+ },
+ [0x1DF12]={
+ category="ll",
+ description="LATIN SMALL LETTER DEZH DIGRAPH WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF12,
+ },
+ [0x1DF13]={
+ category="ll",
+ description="LATIN SMALL LETTER L WITH BELT AND PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF13,
+ },
+ [0x1DF14]={
+ category="ll",
+ description="LATIN SMALL LETTER ENG WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF14,
+ },
+ [0x1DF15]={
+ category="ll",
+ description="LATIN SMALL LETTER TURNED R WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF15,
+ },
+ [0x1DF16]={
+ category="ll",
+ description="LATIN SMALL LETTER R WITH FISHHOOK AND PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF16,
+ },
+ [0x1DF17]={
+ category="ll",
+ description="LATIN SMALL LETTER TESH DIGRAPH WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF17,
+ },
+ [0x1DF18]={
+ category="ll",
+ description="LATIN SMALL LETTER EZH WITH PALATAL HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF18,
+ },
+ [0x1DF19]={
+ category="ll",
+ description="LATIN SMALL LETTER DEZH DIGRAPH WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF19,
+ },
+ [0x1DF1A]={
+ category="ll",
+ description="LATIN SMALL LETTER I WITH STROKE AND RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF1A,
+ },
+ [0x1DF1B]={
+ category="ll",
+ description="LATIN SMALL LETTER O WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF1B,
+ },
+ [0x1DF1C]={
+ category="ll",
+ description="LATIN SMALL LETTER TESH DIGRAPH WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF1C,
+ },
+ [0x1DF1D]={
+ category="ll",
+ description="LATIN SMALL LETTER C WITH RETROFLEX HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF1D,
+ },
+ [0x1DF1E]={
+ category="ll",
+ description="LATIN SMALL LETTER S WITH CURL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF1E,
+ },
+ [0x1DF25]={
+ category="ll",
+ description="LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF25,
+ },
+ [0x1DF26]={
+ category="ll",
+ description="LATIN SMALL LETTER L WITH MID-HEIGHT LEFT HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF26,
+ },
+ [0x1DF27]={
+ category="ll",
+ description="LATIN SMALL LETTER N WITH MID-HEIGHT LEFT HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF27,
+ },
+ [0x1DF28]={
+ category="ll",
+ description="LATIN SMALL LETTER R WITH MID-HEIGHT LEFT HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF28,
+ },
+ [0x1DF29]={
+ category="ll",
+ description="LATIN SMALL LETTER S WITH MID-HEIGHT LEFT HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF29,
+ },
+ [0x1DF2A]={
+ category="ll",
+ description="LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1DF2A,
+ },
[0x1E000]={
category="mn",
combining=0xE6,
@@ -235135,6 +242293,510 @@ characters.data={
linebreak="cm",
unicodeslot=0x1E02A,
},
+ [0x1E030]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL A",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x430 },
+ unicodeslot=0x1E030,
+ },
+ [0x1E031]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL BE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x431 },
+ unicodeslot=0x1E031,
+ },
+ [0x1E032]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL VE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x432 },
+ unicodeslot=0x1E032,
+ },
+ [0x1E033]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL GHE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x433 },
+ unicodeslot=0x1E033,
+ },
+ [0x1E034]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL DE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x434 },
+ unicodeslot=0x1E034,
+ },
+ [0x1E035]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL IE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x435 },
+ unicodeslot=0x1E035,
+ },
+ [0x1E036]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL ZHE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x436 },
+ unicodeslot=0x1E036,
+ },
+ [0x1E037]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL ZE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x437 },
+ unicodeslot=0x1E037,
+ },
+ [0x1E038]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL I",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x438 },
+ unicodeslot=0x1E038,
+ },
+ [0x1E039]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL KA",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x43A },
+ unicodeslot=0x1E039,
+ },
+ [0x1E03A]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL EL",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x43B },
+ unicodeslot=0x1E03A,
+ },
+ [0x1E03B]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL EM",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x43C },
+ unicodeslot=0x1E03B,
+ },
+ [0x1E03C]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL O",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x43E },
+ unicodeslot=0x1E03C,
+ },
+ [0x1E03D]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL PE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x43F },
+ unicodeslot=0x1E03D,
+ },
+ [0x1E03E]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL ER",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x440 },
+ unicodeslot=0x1E03E,
+ },
+ [0x1E03F]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL ES",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x441 },
+ unicodeslot=0x1E03F,
+ },
+ [0x1E040]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL TE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x442 },
+ unicodeslot=0x1E040,
+ },
+ [0x1E041]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL U",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x443 },
+ unicodeslot=0x1E041,
+ },
+ [0x1E042]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL EF",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x444 },
+ unicodeslot=0x1E042,
+ },
+ [0x1E043]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL HA",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x445 },
+ unicodeslot=0x1E043,
+ },
+ [0x1E044]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL TSE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x446 },
+ unicodeslot=0x1E044,
+ },
+ [0x1E045]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL CHE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x447 },
+ unicodeslot=0x1E045,
+ },
+ [0x1E046]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL SHA",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x448 },
+ unicodeslot=0x1E046,
+ },
+ [0x1E047]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL YERU",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x44B },
+ unicodeslot=0x1E047,
+ },
+ [0x1E048]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL E",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x44D },
+ unicodeslot=0x1E048,
+ },
+ [0x1E049]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL YU",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x44E },
+ unicodeslot=0x1E049,
+ },
+ [0x1E04A]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL DZZE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0xA689 },
+ unicodeslot=0x1E04A,
+ },
+ [0x1E04B]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL SCHWA",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x4D9 },
+ unicodeslot=0x1E04B,
+ },
+ [0x1E04C]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x456 },
+ unicodeslot=0x1E04C,
+ },
+ [0x1E04D]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL JE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x458 },
+ unicodeslot=0x1E04D,
+ },
+ [0x1E04E]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL BARRED O",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x4E9 },
+ unicodeslot=0x1E04E,
+ },
+ [0x1E04F]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL STRAIGHT U",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x4AF },
+ unicodeslot=0x1E04F,
+ },
+ [0x1E050]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL PALOCHKA",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x4CF },
+ unicodeslot=0x1E050,
+ },
+ [0x1E051]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER A",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x430 },
+ unicodeslot=0x1E051,
+ },
+ [0x1E052]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER BE",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x431 },
+ unicodeslot=0x1E052,
+ },
+ [0x1E053]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER VE",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x432 },
+ unicodeslot=0x1E053,
+ },
+ [0x1E054]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER GHE",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x433 },
+ unicodeslot=0x1E054,
+ },
+ [0x1E055]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER DE",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x434 },
+ unicodeslot=0x1E055,
+ },
+ [0x1E056]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER IE",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x435 },
+ unicodeslot=0x1E056,
+ },
+ [0x1E057]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER ZHE",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x436 },
+ unicodeslot=0x1E057,
+ },
+ [0x1E058]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER ZE",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x437 },
+ unicodeslot=0x1E058,
+ },
+ [0x1E059]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER I",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x438 },
+ unicodeslot=0x1E059,
+ },
+ [0x1E05A]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER KA",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x43A },
+ unicodeslot=0x1E05A,
+ },
+ [0x1E05B]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER EL",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x43B },
+ unicodeslot=0x1E05B,
+ },
+ [0x1E05C]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER O",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x43E },
+ unicodeslot=0x1E05C,
+ },
+ [0x1E05D]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER PE",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x43F },
+ unicodeslot=0x1E05D,
+ },
+ [0x1E05E]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER ES",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x441 },
+ unicodeslot=0x1E05E,
+ },
+ [0x1E05F]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER U",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x443 },
+ unicodeslot=0x1E05F,
+ },
+ [0x1E060]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER EF",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x444 },
+ unicodeslot=0x1E060,
+ },
+ [0x1E061]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER HA",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x445 },
+ unicodeslot=0x1E061,
+ },
+ [0x1E062]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER TSE",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x446 },
+ unicodeslot=0x1E062,
+ },
+ [0x1E063]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER CHE",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x447 },
+ unicodeslot=0x1E063,
+ },
+ [0x1E064]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER SHA",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x448 },
+ unicodeslot=0x1E064,
+ },
+ [0x1E065]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x44A },
+ unicodeslot=0x1E065,
+ },
+ [0x1E066]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER YERU",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x44B },
+ unicodeslot=0x1E066,
+ },
+ [0x1E067]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x491 },
+ unicodeslot=0x1E067,
+ },
+ [0x1E068]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x456 },
+ unicodeslot=0x1E068,
+ },
+ [0x1E069]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER DZE",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x455 },
+ unicodeslot=0x1E069,
+ },
+ [0x1E06A]={
+ category="lm",
+ description="CYRILLIC SUBSCRIPT SMALL LETTER DZHE",
+ direction="l",
+ linebreak="al",
+ specials={ "sub", 0x45F },
+ unicodeslot=0x1E06A,
+ },
+ [0x1E06B]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x4AB },
+ unicodeslot=0x1E06B,
+ },
+ [0x1E06C]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0xA651 },
+ unicodeslot=0x1E06C,
+ },
+ [0x1E06D]={
+ category="lm",
+ description="MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE",
+ direction="l",
+ linebreak="al",
+ specials={ "super", 0x4B1 },
+ unicodeslot=0x1E06D,
+ },
+ [0x1E08F]={
+ category="mn",
+ combining=0xE6,
+ description="COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1E08F,
+ },
[0x1E100]={
category="lo",
description="NYIAKENG PUACHUE HMONG LETTER MA",
@@ -235639,6 +243301,224 @@ characters.data={
linebreak="al",
unicodeslot=0x1E14F,
},
+ [0x1E290]={
+ category="lo",
+ description="TOTO LETTER PA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E290,
+ },
+ [0x1E291]={
+ category="lo",
+ description="TOTO LETTER BA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E291,
+ },
+ [0x1E292]={
+ category="lo",
+ description="TOTO LETTER TA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E292,
+ },
+ [0x1E293]={
+ category="lo",
+ description="TOTO LETTER DA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E293,
+ },
+ [0x1E294]={
+ category="lo",
+ description="TOTO LETTER KA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E294,
+ },
+ [0x1E295]={
+ category="lo",
+ description="TOTO LETTER GA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E295,
+ },
+ [0x1E296]={
+ category="lo",
+ description="TOTO LETTER MA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E296,
+ },
+ [0x1E297]={
+ category="lo",
+ description="TOTO LETTER NA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E297,
+ },
+ [0x1E298]={
+ category="lo",
+ description="TOTO LETTER NGA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E298,
+ },
+ [0x1E299]={
+ category="lo",
+ description="TOTO LETTER SA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E299,
+ },
+ [0x1E29A]={
+ category="lo",
+ description="TOTO LETTER CHA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E29A,
+ },
+ [0x1E29B]={
+ category="lo",
+ description="TOTO LETTER YA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E29B,
+ },
+ [0x1E29C]={
+ category="lo",
+ description="TOTO LETTER WA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E29C,
+ },
+ [0x1E29D]={
+ category="lo",
+ description="TOTO LETTER JA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E29D,
+ },
+ [0x1E29E]={
+ category="lo",
+ description="TOTO LETTER HA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E29E,
+ },
+ [0x1E29F]={
+ category="lo",
+ description="TOTO LETTER RA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E29F,
+ },
+ [0x1E2A0]={
+ category="lo",
+ description="TOTO LETTER LA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E2A0,
+ },
+ [0x1E2A1]={
+ category="lo",
+ description="TOTO LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E2A1,
+ },
+ [0x1E2A2]={
+ category="lo",
+ description="TOTO LETTER BREATHY I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E2A2,
+ },
+ [0x1E2A3]={
+ category="lo",
+ description="TOTO LETTER IU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E2A3,
+ },
+ [0x1E2A4]={
+ category="lo",
+ description="TOTO LETTER BREATHY IU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E2A4,
+ },
+ [0x1E2A5]={
+ category="lo",
+ description="TOTO LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E2A5,
+ },
+ [0x1E2A6]={
+ category="lo",
+ description="TOTO LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E2A6,
+ },
+ [0x1E2A7]={
+ category="lo",
+ description="TOTO LETTER BREATHY E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E2A7,
+ },
+ [0x1E2A8]={
+ category="lo",
+ description="TOTO LETTER EO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E2A8,
+ },
+ [0x1E2A9]={
+ category="lo",
+ description="TOTO LETTER BREATHY EO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E2A9,
+ },
+ [0x1E2AA]={
+ category="lo",
+ description="TOTO LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E2AA,
+ },
+ [0x1E2AB]={
+ category="lo",
+ description="TOTO LETTER AE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E2AB,
+ },
+ [0x1E2AC]={
+ category="lo",
+ description="TOTO LETTER BREATHY AE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E2AC,
+ },
+ [0x1E2AD]={
+ category="lo",
+ description="TOTO LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E2AD,
+ },
+ [0x1E2AE]={
+ category="mn",
+ combining=0xE6,
+ description="TOTO SIGN RISING TONE",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1E2AE,
+ },
[0x1E2C0]={
category="lo",
description="WANCHO LETTER AA",
@@ -236056,6 +243936,500 @@ characters.data={
linebreak="pr",
unicodeslot=0x1E2FF,
},
+ [0x1E4D0]={
+ category="lo",
+ description="NAG MUNDARI LETTER O",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4D0,
+ },
+ [0x1E4D1]={
+ category="lo",
+ description="NAG MUNDARI LETTER OP",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4D1,
+ },
+ [0x1E4D2]={
+ category="lo",
+ description="NAG MUNDARI LETTER OL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4D2,
+ },
+ [0x1E4D3]={
+ category="lo",
+ description="NAG MUNDARI LETTER OY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4D3,
+ },
+ [0x1E4D4]={
+ category="lo",
+ description="NAG MUNDARI LETTER ONG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4D4,
+ },
+ [0x1E4D5]={
+ category="lo",
+ description="NAG MUNDARI LETTER A",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4D5,
+ },
+ [0x1E4D6]={
+ category="lo",
+ description="NAG MUNDARI LETTER AJ",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4D6,
+ },
+ [0x1E4D7]={
+ category="lo",
+ description="NAG MUNDARI LETTER AB",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4D7,
+ },
+ [0x1E4D8]={
+ category="lo",
+ description="NAG MUNDARI LETTER ANY",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4D8,
+ },
+ [0x1E4D9]={
+ category="lo",
+ description="NAG MUNDARI LETTER AH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4D9,
+ },
+ [0x1E4DA]={
+ category="lo",
+ description="NAG MUNDARI LETTER I",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4DA,
+ },
+ [0x1E4DB]={
+ category="lo",
+ description="NAG MUNDARI LETTER IS",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4DB,
+ },
+ [0x1E4DC]={
+ category="lo",
+ description="NAG MUNDARI LETTER IDD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4DC,
+ },
+ [0x1E4DD]={
+ category="lo",
+ description="NAG MUNDARI LETTER IT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4DD,
+ },
+ [0x1E4DE]={
+ category="lo",
+ description="NAG MUNDARI LETTER IH",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4DE,
+ },
+ [0x1E4DF]={
+ category="lo",
+ description="NAG MUNDARI LETTER U",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4DF,
+ },
+ [0x1E4E0]={
+ category="lo",
+ description="NAG MUNDARI LETTER UC",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4E0,
+ },
+ [0x1E4E1]={
+ category="lo",
+ description="NAG MUNDARI LETTER UD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4E1,
+ },
+ [0x1E4E2]={
+ category="lo",
+ description="NAG MUNDARI LETTER UK",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4E2,
+ },
+ [0x1E4E3]={
+ category="lo",
+ description="NAG MUNDARI LETTER UR",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4E3,
+ },
+ [0x1E4E4]={
+ category="lo",
+ description="NAG MUNDARI LETTER E",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4E4,
+ },
+ [0x1E4E5]={
+ category="lo",
+ description="NAG MUNDARI LETTER ENN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4E5,
+ },
+ [0x1E4E6]={
+ category="lo",
+ description="NAG MUNDARI LETTER EG",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4E6,
+ },
+ [0x1E4E7]={
+ category="lo",
+ description="NAG MUNDARI LETTER EM",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4E7,
+ },
+ [0x1E4E8]={
+ category="lo",
+ description="NAG MUNDARI LETTER EN",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4E8,
+ },
+ [0x1E4E9]={
+ category="lo",
+ description="NAG MUNDARI LETTER ETT",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4E9,
+ },
+ [0x1E4EA]={
+ category="lo",
+ description="NAG MUNDARI LETTER ELL",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4EA,
+ },
+ [0x1E4EB]={
+ category="lm",
+ description="NAG MUNDARI SIGN OJOD",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E4EB,
+ },
+ [0x1E4EC]={
+ category="mn",
+ combining=0xE8,
+ description="NAG MUNDARI SIGN MUHOR",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1E4EC,
+ },
+ [0x1E4ED]={
+ category="mn",
+ combining=0xE8,
+ description="NAG MUNDARI SIGN TOYOR",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1E4ED,
+ },
+ [0x1E4EE]={
+ category="mn",
+ combining=0xDC,
+ description="NAG MUNDARI SIGN IKIR",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1E4EE,
+ },
+ [0x1E4EF]={
+ category="mn",
+ combining=0xE6,
+ description="NAG MUNDARI SIGN SUTUH",
+ direction="nsm",
+ linebreak="cm",
+ unicodeslot=0x1E4EF,
+ },
+ [0x1E4F0]={
+ category="nd",
+ description="NAG MUNDARI DIGIT ZERO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1E4F0,
+ },
+ [0x1E4F1]={
+ category="nd",
+ description="NAG MUNDARI DIGIT ONE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1E4F1,
+ },
+ [0x1E4F2]={
+ category="nd",
+ description="NAG MUNDARI DIGIT TWO",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1E4F2,
+ },
+ [0x1E4F3]={
+ category="nd",
+ description="NAG MUNDARI DIGIT THREE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1E4F3,
+ },
+ [0x1E4F4]={
+ category="nd",
+ description="NAG MUNDARI DIGIT FOUR",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1E4F4,
+ },
+ [0x1E4F5]={
+ category="nd",
+ description="NAG MUNDARI DIGIT FIVE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1E4F5,
+ },
+ [0x1E4F6]={
+ category="nd",
+ description="NAG MUNDARI DIGIT SIX",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1E4F6,
+ },
+ [0x1E4F7]={
+ category="nd",
+ description="NAG MUNDARI DIGIT SEVEN",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1E4F7,
+ },
+ [0x1E4F8]={
+ category="nd",
+ description="NAG MUNDARI DIGIT EIGHT",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1E4F8,
+ },
+ [0x1E4F9]={
+ category="nd",
+ description="NAG MUNDARI DIGIT NINE",
+ direction="l",
+ linebreak="nu",
+ unicodeslot=0x1E4F9,
+ },
+ [0x1E7E0]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHYA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7E0,
+ },
+ [0x1E7E1]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHYU",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7E1,
+ },
+ [0x1E7E2]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHYI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7E2,
+ },
+ [0x1E7E3]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHYAA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7E3,
+ },
+ [0x1E7E4]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHYEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7E4,
+ },
+ [0x1E7E5]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHYE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7E5,
+ },
+ [0x1E7E6]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHYO",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7E6,
+ },
+ [0x1E7E8]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE HHWA",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7E8,
+ },
+ [0x1E7E9]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7E9,
+ },
+ [0x1E7EA]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7EA,
+ },
+ [0x1E7EB]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE HHWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7EB,
+ },
+ [0x1E7ED]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE MWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7ED,
+ },
+ [0x1E7EE]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE MWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7EE,
+ },
+ [0x1E7F0]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE QWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7F0,
+ },
+ [0x1E7F1]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE QWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7F1,
+ },
+ [0x1E7F2]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE QWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7F2,
+ },
+ [0x1E7F3]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE BWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7F3,
+ },
+ [0x1E7F4]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE BWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7F4,
+ },
+ [0x1E7F5]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE KWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7F5,
+ },
+ [0x1E7F6]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE KWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7F6,
+ },
+ [0x1E7F7]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE KWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7F7,
+ },
+ [0x1E7F8]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE GWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7F8,
+ },
+ [0x1E7F9]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE GWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7F9,
+ },
+ [0x1E7FA]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE GWE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7FA,
+ },
+ [0x1E7FB]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE FWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7FB,
+ },
+ [0x1E7FC]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE FWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7FC,
+ },
+ [0x1E7FD]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE PWI",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7FD,
+ },
+ [0x1E7FE]={
+ category="lo",
+ description="ETHIOPIC SYLLABLE GURAGE PWEE",
+ direction="l",
+ linebreak="al",
+ unicodeslot=0x1E7FE,
+ },
[0x1E800]={
category="lo",
description="MENDE KIKAKUI SYLLABLE M001 KI",
@@ -237559,6 +245933,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER ALIF",
direction="r",
+ lccode=0x1E922,
linebreak="al",
unicodeslot=0x1E900,
},
@@ -237567,6 +245942,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER DAALI",
direction="r",
+ lccode=0x1E923,
linebreak="al",
unicodeslot=0x1E901,
},
@@ -237575,6 +245951,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER LAAM",
direction="r",
+ lccode=0x1E924,
linebreak="al",
unicodeslot=0x1E902,
},
@@ -237583,6 +245960,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER MIIM",
direction="r",
+ lccode=0x1E925,
linebreak="al",
unicodeslot=0x1E903,
},
@@ -237591,6 +245969,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER BA",
direction="r",
+ lccode=0x1E926,
linebreak="al",
unicodeslot=0x1E904,
},
@@ -237599,6 +245978,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER SINNYIIYHE",
direction="r",
+ lccode=0x1E927,
linebreak="al",
unicodeslot=0x1E905,
},
@@ -237607,6 +245987,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER PE",
direction="r",
+ lccode=0x1E928,
linebreak="al",
unicodeslot=0x1E906,
},
@@ -237615,6 +245996,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER BHE",
direction="r",
+ lccode=0x1E929,
linebreak="al",
unicodeslot=0x1E907,
},
@@ -237623,6 +246005,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER RA",
direction="r",
+ lccode=0x1E92A,
linebreak="al",
unicodeslot=0x1E908,
},
@@ -237631,6 +246014,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER E",
direction="r",
+ lccode=0x1E92B,
linebreak="al",
unicodeslot=0x1E909,
},
@@ -237639,6 +246023,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER FA",
direction="r",
+ lccode=0x1E92C,
linebreak="al",
unicodeslot=0x1E90A,
},
@@ -237647,6 +246032,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER I",
direction="r",
+ lccode=0x1E92D,
linebreak="al",
unicodeslot=0x1E90B,
},
@@ -237655,6 +246041,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER O",
direction="r",
+ lccode=0x1E92E,
linebreak="al",
unicodeslot=0x1E90C,
},
@@ -237663,6 +246050,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER DHA",
direction="r",
+ lccode=0x1E92F,
linebreak="al",
unicodeslot=0x1E90D,
},
@@ -237671,6 +246059,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER YHE",
direction="r",
+ lccode=0x1E930,
linebreak="al",
unicodeslot=0x1E90E,
},
@@ -237679,6 +246068,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER WAW",
direction="r",
+ lccode=0x1E931,
linebreak="al",
unicodeslot=0x1E90F,
},
@@ -237687,6 +246077,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER NUN",
direction="r",
+ lccode=0x1E932,
linebreak="al",
unicodeslot=0x1E910,
},
@@ -237695,6 +246086,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER KAF",
direction="r",
+ lccode=0x1E933,
linebreak="al",
unicodeslot=0x1E911,
},
@@ -237703,6 +246095,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER YA",
direction="r",
+ lccode=0x1E934,
linebreak="al",
unicodeslot=0x1E912,
},
@@ -237711,6 +246104,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER U",
direction="r",
+ lccode=0x1E935,
linebreak="al",
unicodeslot=0x1E913,
},
@@ -237719,6 +246113,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER JIIM",
direction="r",
+ lccode=0x1E936,
linebreak="al",
unicodeslot=0x1E914,
},
@@ -237727,6 +246122,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER CHI",
direction="r",
+ lccode=0x1E937,
linebreak="al",
unicodeslot=0x1E915,
},
@@ -237735,6 +246131,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER HA",
direction="r",
+ lccode=0x1E938,
linebreak="al",
unicodeslot=0x1E916,
},
@@ -237743,6 +246140,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER QAAF",
direction="r",
+ lccode=0x1E939,
linebreak="al",
unicodeslot=0x1E917,
},
@@ -237751,6 +246149,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER GA",
direction="r",
+ lccode=0x1E93A,
linebreak="al",
unicodeslot=0x1E918,
},
@@ -237759,6 +246158,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER NYA",
direction="r",
+ lccode=0x1E93B,
linebreak="al",
unicodeslot=0x1E919,
},
@@ -237767,6 +246167,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER TU",
direction="r",
+ lccode=0x1E93C,
linebreak="al",
unicodeslot=0x1E91A,
},
@@ -237775,6 +246176,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER NHA",
direction="r",
+ lccode=0x1E93D,
linebreak="al",
unicodeslot=0x1E91B,
},
@@ -237783,6 +246185,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER VA",
direction="r",
+ lccode=0x1E93E,
linebreak="al",
unicodeslot=0x1E91C,
},
@@ -237791,6 +246194,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER KHA",
direction="r",
+ lccode=0x1E93F,
linebreak="al",
unicodeslot=0x1E91D,
},
@@ -237799,6 +246203,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER GBE",
direction="r",
+ lccode=0x1E940,
linebreak="al",
unicodeslot=0x1E91E,
},
@@ -237807,6 +246212,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER ZAL",
direction="r",
+ lccode=0x1E941,
linebreak="al",
unicodeslot=0x1E91F,
},
@@ -237815,6 +246221,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER KPO",
direction="r",
+ lccode=0x1E942,
linebreak="al",
unicodeslot=0x1E920,
},
@@ -237823,6 +246230,7 @@ characters.data={
category="lu",
description="ADLAM CAPITAL LETTER SHA",
direction="r",
+ lccode=0x1E943,
linebreak="al",
unicodeslot=0x1E921,
},
@@ -251950,6 +260358,38 @@ characters.data={
linebreak="id",
unicodeslot=0x1F6D7,
},
+ [0x1F6DC]={
+ category="so",
+ cjkwd="w",
+ description="WIRELESS",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1F6DC,
+ },
+ [0x1F6DD]={
+ category="so",
+ cjkwd="w",
+ description="PLAYGROUND SLIDE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1F6DD,
+ },
+ [0x1F6DE]={
+ category="so",
+ cjkwd="w",
+ description="WHEEL",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1F6DE,
+ },
+ [0x1F6DF]={
+ category="so",
+ cjkwd="w",
+ description="RING BUOY",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1F6DF,
+ },
[0x1F6E0]={
category="so",
description="HAMMER AND WRENCH",
@@ -252964,6 +261404,62 @@ characters.data={
linebreak="al",
unicodeslot=0x1F773,
},
+ [0x1F774]={
+ category="so",
+ description="LOT OF FORTUNE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1F774,
+ },
+ [0x1F775]={
+ category="so",
+ description="OCCULTATION",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1F775,
+ },
+ [0x1F776]={
+ category="so",
+ description="LUNAR ECLIPSE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1F776,
+ },
+ [0x1F77B]={
+ category="so",
+ description="HAUMEA",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1F77B,
+ },
+ [0x1F77C]={
+ category="so",
+ description="MAKEMAKE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1F77C,
+ },
+ [0x1F77D]={
+ category="so",
+ description="GONGGONG",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1F77D,
+ },
+ [0x1F77E]={
+ category="so",
+ description="QUAOAR",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1F77E,
+ },
+ [0x1F77F]={
+ category="so",
+ description="ORCUS",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1F77F,
+ },
[0x1F780]={
category="so",
description="BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE",
@@ -253588,6 +262084,13 @@ characters.data={
linebreak="id",
unicodeslot=0x1F7D8,
},
+ [0x1F7D9]={
+ category="so",
+ description="NINE POINTED WHITE STAR",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1F7D9,
+ },
[0x1F7E0]={
category="so",
cjkwd="w",
@@ -253684,6 +262187,14 @@ characters.data={
linebreak="id",
unicodeslot=0x1F7EB,
},
+ [0x1F7F0]={
+ category="so",
+ cjkwd="w",
+ description="HEAVY EQUALS SIGN",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1F7F0,
+ },
[0x1F800]={
category="so",
description="LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD",
@@ -255696,6 +264207,14 @@ characters.data={
synonyms={ "face with groucho glasses" },
unicodeslot=0x1F978,
},
+ [0x1F979]={
+ category="so",
+ cjkwd="w",
+ description="FACE HOLDING BACK TEARS",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1F979,
+ },
[0x1F97A]={
category="so",
cjkwd="w",
@@ -256353,6 +264872,14 @@ characters.data={
linebreak="id",
unicodeslot=0x1F9CB,
},
+ [0x1F9CC]={
+ category="so",
+ cjkwd="w",
+ description="TROLL",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1F9CC,
+ },
[0x1F9CD]={
category="so",
cjkwd="w",
@@ -257487,6 +266014,30 @@ characters.data={
linebreak="id",
unicodeslot=0x1FA74,
},
+ [0x1FA75]={
+ category="so",
+ cjkwd="w",
+ description="LIGHT BLUE HEART",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FA75,
+ },
+ [0x1FA76]={
+ category="so",
+ cjkwd="w",
+ description="GREY HEART",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FA76,
+ },
+ [0x1FA77]={
+ category="so",
+ cjkwd="w",
+ description="PINK HEART",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FA77,
+ },
[0x1FA78]={
category="so",
cjkwd="w",
@@ -257511,6 +266062,22 @@ characters.data={
linebreak="id",
unicodeslot=0x1FA7A,
},
+ [0x1FA7B]={
+ category="so",
+ cjkwd="w",
+ description="X-RAY",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FA7B,
+ },
+ [0x1FA7C]={
+ category="so",
+ cjkwd="w",
+ description="CRUTCH",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FA7C,
+ },
[0x1FA80]={
category="so",
cjkwd="w",
@@ -257567,6 +266134,22 @@ characters.data={
linebreak="id",
unicodeslot=0x1FA86,
},
+ [0x1FA87]={
+ category="so",
+ cjkwd="w",
+ description="MARACAS",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FA87,
+ },
+ [0x1FA88]={
+ category="so",
+ cjkwd="w",
+ description="FLUTE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FA88,
+ },
[0x1FA90]={
category="so",
cjkwd="w",
@@ -257767,6 +266350,62 @@ characters.data={
linebreak="id",
unicodeslot=0x1FAA8,
},
+ [0x1FAA9]={
+ category="so",
+ cjkwd="w",
+ description="MIRROR BALL",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAA9,
+ },
+ [0x1FAAA]={
+ category="so",
+ cjkwd="w",
+ description="IDENTIFICATION CARD",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAAA,
+ },
+ [0x1FAAB]={
+ category="so",
+ cjkwd="w",
+ description="LOW BATTERY",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAAB,
+ },
+ [0x1FAAC]={
+ category="so",
+ cjkwd="w",
+ description="HAMSA",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAAC,
+ },
+ [0x1FAAD]={
+ category="so",
+ cjkwd="w",
+ description="FOLDING HAND FAN",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAAD,
+ },
+ [0x1FAAE]={
+ category="so",
+ cjkwd="w",
+ description="HAIR PICK",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAAE,
+ },
+ [0x1FAAF]={
+ category="so",
+ cjkwd="w",
+ description="KHANDA",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAAF,
+ },
[0x1FAB0]={
category="so",
cjkwd="w",
@@ -257823,6 +266462,70 @@ characters.data={
linebreak="id",
unicodeslot=0x1FAB6,
},
+ [0x1FAB7]={
+ category="so",
+ cjkwd="w",
+ description="LOTUS",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAB7,
+ },
+ [0x1FAB8]={
+ category="so",
+ cjkwd="w",
+ description="CORAL",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAB8,
+ },
+ [0x1FAB9]={
+ category="so",
+ cjkwd="w",
+ description="EMPTY NEST",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAB9,
+ },
+ [0x1FABA]={
+ category="so",
+ cjkwd="w",
+ description="NEST WITH EGGS",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FABA,
+ },
+ [0x1FABB]={
+ category="so",
+ cjkwd="w",
+ description="HYACINTH",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FABB,
+ },
+ [0x1FABC]={
+ category="so",
+ cjkwd="w",
+ description="JELLYFISH",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FABC,
+ },
+ [0x1FABD]={
+ category="so",
+ cjkwd="w",
+ description="WING",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FABD,
+ },
+ [0x1FABF]={
+ category="so",
+ cjkwd="w",
+ description="GOOSE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FABF,
+ },
[0x1FAC0]={
category="so",
cjkwd="w",
@@ -257847,6 +266550,46 @@ characters.data={
linebreak="id",
unicodeslot=0x1FAC2,
},
+ [0x1FAC3]={
+ category="so",
+ cjkwd="w",
+ description="PREGNANT MAN",
+ direction="on",
+ linebreak="eb",
+ unicodeslot=0x1FAC3,
+ },
+ [0x1FAC4]={
+ category="so",
+ cjkwd="w",
+ description="PREGNANT PERSON",
+ direction="on",
+ linebreak="eb",
+ unicodeslot=0x1FAC4,
+ },
+ [0x1FAC5]={
+ category="so",
+ cjkwd="w",
+ description="PERSON WITH CROWN",
+ direction="on",
+ linebreak="eb",
+ unicodeslot=0x1FAC5,
+ },
+ [0x1FACE]={
+ category="so",
+ cjkwd="w",
+ description="MOOSE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FACE,
+ },
+ [0x1FACF]={
+ category="so",
+ cjkwd="w",
+ description="DONKEY",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FACF,
+ },
[0x1FAD0]={
category="so",
cjkwd="w",
@@ -257903,6 +266646,190 @@ characters.data={
linebreak="id",
unicodeslot=0x1FAD6,
},
+ [0x1FAD7]={
+ category="so",
+ cjkwd="w",
+ description="POURING LIQUID",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAD7,
+ },
+ [0x1FAD8]={
+ category="so",
+ cjkwd="w",
+ description="BEANS",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAD8,
+ },
+ [0x1FAD9]={
+ category="so",
+ cjkwd="w",
+ description="JAR",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAD9,
+ },
+ [0x1FADA]={
+ category="so",
+ cjkwd="w",
+ description="GINGER ROOT",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FADA,
+ },
+ [0x1FADB]={
+ category="so",
+ cjkwd="w",
+ description="PEA POD",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FADB,
+ },
+ [0x1FAE0]={
+ category="so",
+ cjkwd="w",
+ description="MELTING FACE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAE0,
+ },
+ [0x1FAE1]={
+ category="so",
+ cjkwd="w",
+ description="SALUTING FACE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAE1,
+ },
+ [0x1FAE2]={
+ category="so",
+ cjkwd="w",
+ description="FACE WITH OPEN EYES AND HAND OVER MOUTH",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAE2,
+ },
+ [0x1FAE3]={
+ category="so",
+ cjkwd="w",
+ description="FACE WITH PEEKING EYE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAE3,
+ },
+ [0x1FAE4]={
+ category="so",
+ cjkwd="w",
+ description="FACE WITH DIAGONAL MOUTH",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAE4,
+ },
+ [0x1FAE5]={
+ category="so",
+ cjkwd="w",
+ description="DOTTED LINE FACE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAE5,
+ },
+ [0x1FAE6]={
+ category="so",
+ cjkwd="w",
+ description="BITING LIP",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAE6,
+ },
+ [0x1FAE7]={
+ category="so",
+ cjkwd="w",
+ description="BUBBLES",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAE7,
+ },
+ [0x1FAE8]={
+ category="so",
+ cjkwd="w",
+ description="SHAKING FACE",
+ direction="on",
+ linebreak="id",
+ unicodeslot=0x1FAE8,
+ },
+ [0x1FAF0]={
+ category="so",
+ cjkwd="w",
+ description="HAND WITH INDEX FINGER AND THUMB CROSSED",
+ direction="on",
+ linebreak="eb",
+ unicodeslot=0x1FAF0,
+ },
+ [0x1FAF1]={
+ category="so",
+ cjkwd="w",
+ description="RIGHTWARDS HAND",
+ direction="on",
+ linebreak="eb",
+ unicodeslot=0x1FAF1,
+ },
+ [0x1FAF2]={
+ category="so",
+ cjkwd="w",
+ description="LEFTWARDS HAND",
+ direction="on",
+ linebreak="eb",
+ unicodeslot=0x1FAF2,
+ },
+ [0x1FAF3]={
+ category="so",
+ cjkwd="w",
+ description="PALM DOWN HAND",
+ direction="on",
+ linebreak="eb",
+ unicodeslot=0x1FAF3,
+ },
+ [0x1FAF4]={
+ category="so",
+ cjkwd="w",
+ description="PALM UP HAND",
+ direction="on",
+ linebreak="eb",
+ unicodeslot=0x1FAF4,
+ },
+ [0x1FAF5]={
+ category="so",
+ cjkwd="w",
+ description="INDEX POINTING AT THE VIEWER",
+ direction="on",
+ linebreak="eb",
+ unicodeslot=0x1FAF5,
+ },
+ [0x1FAF6]={
+ category="so",
+ cjkwd="w",
+ description="HEART HANDS",
+ direction="on",
+ linebreak="eb",
+ unicodeslot=0x1FAF6,
+ },
+ [0x1FAF7]={
+ category="so",
+ cjkwd="w",
+ description="LEFTWARDS PUSHING HAND",
+ direction="on",
+ linebreak="eb",
+ unicodeslot=0x1FAF7,
+ },
+ [0x1FAF8]={
+ category="so",
+ cjkwd="w",
+ description="RIGHTWARDS PUSHING HAND",
+ direction="on",
+ linebreak="eb",
+ unicodeslot=0x1FAF8,
+ },
[0x1FB00]={
category="so",
description="BLOCK SEXTANT-1",
diff --git a/Master/texmf-dist/tex/context/base/mkiv/char-fio.lua b/Master/texmf-dist/tex/context/base/mkiv/char-fio.lua
index b1f652eedb0..2b0fe42cee3 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/char-fio.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/char-fio.lua
@@ -38,8 +38,8 @@ disableaction(textfileactions, "characters.filters.utf.decompose")
local report = logs.reporter("unicode filter")
local reporting = "no"
--- this is messy as for performance reasons i don't want this to happen
--- per line by default
+-- This is messy as for performance reasons i don't want this to happen per line by
+-- default.
local enforced = {
["characters.filters.utf.collapse"] = true,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua
index ac31dbfc60c..db1b85cc5d1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/char-ini.lua
@@ -47,9 +47,9 @@ loaded!</p>
-- todo: in 'char-def.lua' assume defaults:
--
--- directtions = l
--- cjkwd = a
--- linebreak = al
+-- directions = l
+-- cjkwd = a
+-- linebreak = al
characters = characters or { }
local characters = characters
@@ -66,9 +66,17 @@ end
Extending the table.
--ldx]]--
-if context and not characters.private then
+if context and CONTEXTLMTXMODE == 0 then
- require("char-prv")
+ if not characters.private then
+
+ require("char-prv")
+
+ if storage then
+ storage.register("characters/private", characters.private, "characters.private")
+ end
+
+ end
for unicode, d in next, characters.private do
data[unicode] = d
@@ -193,379 +201,411 @@ insert(characters.ranges,{
})
local blocks = allocate {
- ["adlam"] = { first = 0x1E900, last = 0x1E95F, description = "Adlam" },
- ["aegeannumbers"] = { first = 0x10100, last = 0x1013F, description = "Aegean Numbers" },
- ["ahom"] = { first = 0x11700, last = 0x1173F, description = "Ahom" },
- ["alchemicalsymbols"] = { first = 0x1F700, last = 0x1F77F, description = "Alchemical Symbols" },
- ["alphabeticpresentationforms"] = { first = 0x0FB00, last = 0x0FB4F, otf="latn", description = "Alphabetic Presentation Forms" },
- ["anatolianhieroglyphs"] = { first = 0x14400, last = 0x1467F, description = "Anatolian Hieroglyphs" },
- ["ancientgreekmusicalnotation"] = { first = 0x1D200, last = 0x1D24F, otf="grek", description = "Ancient Greek Musical Notation" },
- ["ancientgreeknumbers"] = { first = 0x10140, last = 0x1018F, otf="grek", description = "Ancient Greek Numbers" },
- ["ancientsymbols"] = { first = 0x10190, last = 0x101CF, otf="grek", description = "Ancient Symbols" },
- ["arabic"] = { first = 0x00600, last = 0x006FF, otf="arab", description = "Arabic" },
- ["arabicextendeda"] = { first = 0x008A0, last = 0x008FF, description = "Arabic Extended-A" },
- ["arabicmathematicalalphabeticsymbols"] = { first = 0x1EE00, last = 0x1EEFF, description = "Arabic Mathematical Alphabetic Symbols" },
- ["arabicpresentationformsa"] = { first = 0x0FB50, last = 0x0FDFF, otf="arab", description = "Arabic Presentation Forms-A" },
- ["arabicpresentationformsb"] = { first = 0x0FE70, last = 0x0FEFF, otf="arab", description = "Arabic Presentation Forms-B" },
- ["arabicsupplement"] = { first = 0x00750, last = 0x0077F, otf="arab", description = "Arabic Supplement" },
- ["armenian"] = { first = 0x00530, last = 0x0058F, otf="armn", description = "Armenian" },
- ["arrows"] = { first = 0x02190, last = 0x021FF, description = "Arrows" },
- ["avestan"] = { first = 0x10B00, last = 0x10B3F, description = "Avestan" },
- ["balinese"] = { first = 0x01B00, last = 0x01B7F, otf="bali", description = "Balinese" },
- ["bamum"] = { first = 0x0A6A0, last = 0x0A6FF, description = "Bamum" },
- ["bamumsupplement"] = { first = 0x16800, last = 0x16A3F, description = "Bamum Supplement" },
- ["basiclatin"] = { first = 0x00000, last = 0x0007F, otf="latn", description = "Basic Latin" },
- ["bassavah"] = { first = 0x16AD0, last = 0x16AFF, description = "Bassa Vah" },
- ["batak"] = { first = 0x01BC0, last = 0x01BFF, description = "Batak" },
- ["bengali"] = { first = 0x00980, last = 0x009FF, otf="beng", description = "Bengali" },
- ["bhaiksuki"] = { first = 0x11C00, last = 0x11C6F, description = "Bhaiksuki" },
- ["blockelements"] = { first = 0x02580, last = 0x0259F, otf="bopo", description = "Block Elements" },
- ["bopomofo"] = { first = 0x03100, last = 0x0312F, otf="bopo", description = "Bopomofo" },
- ["bopomofoextended"] = { first = 0x031A0, last = 0x031BF, otf="bopo", description = "Bopomofo Extended" },
- ["boxdrawing"] = { first = 0x02500, last = 0x0257F, description = "Box Drawing" },
- ["brahmi"] = { first = 0x11000, last = 0x1107F, description = "Brahmi" },
- ["braillepatterns"] = { first = 0x02800, last = 0x028FF, otf="brai", description = "Braille Patterns" },
- ["buginese"] = { first = 0x01A00, last = 0x01A1F, otf="bugi", description = "Buginese" },
- ["buhid"] = { first = 0x01740, last = 0x0175F, otf="buhd", description = "Buhid" },
- ["byzantinemusicalsymbols"] = { first = 0x1D000, last = 0x1D0FF, otf="byzm", description = "Byzantine Musical Symbols" },
- ["carian"] = { first = 0x102A0, last = 0x102DF, description = "Carian" },
- ["caucasianalbanian"] = { first = 0x10530, last = 0x1056F, description = "Caucasian Albanian" },
- ["chakma"] = { first = 0x11100, last = 0x1114F, description = "Chakma" },
- ["cham"] = { first = 0x0AA00, last = 0x0AA5F, description = "Cham" },
- ["cherokee"] = { first = 0x013A0, last = 0x013FF, otf="cher", description = "Cherokee" },
- ["cherokeesupplement"] = { first = 0x0AB70, last = 0x0ABBF, description = "Cherokee Supplement" },
- ["chesssymbols"] = { first = 0x1FA00, last = 0x1FA6F, description = "Chess Symbols" },
- ["chorasmian"] = { first = 0x10FB0, last = 0x10FDF, description = "Chorasmian" },
- ["cjkcompatibility"] = { first = 0x03300, last = 0x033FF, otf="hang", description = "CJK Compatibility" },
- ["cjkcompatibilityforms"] = { first = 0x0FE30, last = 0x0FE4F, otf="hang", description = "CJK Compatibility Forms" },
- ["cjkcompatibilityideographs"] = { first = 0x0F900, last = 0x0FAFF, otf="hang", description = "CJK Compatibility Ideographs" },
- ["cjkcompatibilityideographssupplement"] = { first = 0x2F800, last = 0x2FA1F, otf="hang", description = "CJK Compatibility Ideographs Supplement" },
- ["cjkradicalssupplement"] = { first = 0x02E80, last = 0x02EFF, otf="hang", description = "CJK Radicals Supplement" },
- ["cjkstrokes"] = { first = 0x031C0, last = 0x031EF, otf="hang", description = "CJK Strokes" },
- ["cjksymbolsandpunctuation"] = { first = 0x03000, last = 0x0303F, otf="hang", description = "CJK Symbols and Punctuation" },
- ["cjkunifiedideographs"] = { first = 0x04E00, last = 0x09FFF, otf="hang", description = "CJK Unified Ideographs", catcode = "letter" },
- ["cjkunifiedideographsextensiona"] = { first = 0x03400, last = 0x04DBF, otf="hang", description = "CJK Unified Ideographs Extension A" },
- ["cjkunifiedideographsextensionb"] = { first = 0x20000, last = 0x2A6DF, otf="hang", description = "CJK Unified Ideographs Extension B" },
- ["cjkunifiedideographsextensionc"] = { first = 0x2A700, last = 0x2B73F, description = "CJK Unified Ideographs Extension C" },
- ["cjkunifiedideographsextensiond"] = { first = 0x2B740, last = 0x2B81F, description = "CJK Unified Ideographs Extension D" },
- ["cjkunifiedideographsextensione"] = { first = 0x2B820, last = 0x2CEAF, description = "CJK Unified Ideographs Extension E" },
- ["cjkunifiedideographsextensionf"] = { first = 0x2CEB0, last = 0x2EBEF, description = "CJK Unified Ideographs Extension F" },
- ["cjkunifiedideographsextensiong"] = { first = 0x30000, last = 0x3134F, description = "CJK Unified Ideographs Extension G" },
- ["combiningdiacriticalmarks"] = { first = 0x00300, last = 0x0036F, description = "Combining Diacritical Marks" },
- ["combiningdiacriticalmarksextended"] = { first = 0x01AB0, last = 0x01AFF, description = "Combining Diacritical Marks Extended" },
- ["combiningdiacriticalmarksforsymbols"] = { first = 0x020D0, last = 0x020FF, description = "Combining Diacritical Marks for Symbols" },
- ["combiningdiacriticalmarkssupplement"] = { first = 0x01DC0, last = 0x01DFF, description = "Combining Diacritical Marks Supplement" },
- ["combininghalfmarks"] = { first = 0x0FE20, last = 0x0FE2F, description = "Combining Half Marks" },
- ["commonindicnumberforms"] = { first = 0x0A830, last = 0x0A83F, description = "Common Indic Number Forms" },
- ["controlpictures"] = { first = 0x02400, last = 0x0243F, description = "Control Pictures" },
- ["coptic"] = { first = 0x02C80, last = 0x02CFF, otf="copt", description = "Coptic" },
- ["copticepactnumbers"] = { first = 0x102E0, last = 0x102FF, description = "Coptic Epact Numbers" },
- ["countingrodnumerals"] = { first = 0x1D360, last = 0x1D37F, description = "Counting Rod Numerals" },
- ["cuneiform"] = { first = 0x12000, last = 0x123FF, otf="xsux", description = "Cuneiform" },
- ["cuneiformnumbersandpunctuation"] = { first = 0x12400, last = 0x1247F, otf="xsux", description = "Cuneiform Numbers and Punctuation" },
- ["currencysymbols"] = { first = 0x020A0, last = 0x020CF, description = "Currency Symbols" },
- ["cypriotsyllabary"] = { first = 0x10800, last = 0x1083F, otf="cprt", description = "Cypriot Syllabary" },
- ["cyrillic"] = { first = 0x00400, last = 0x004FF, otf="cyrl", description = "Cyrillic" },
- ["cyrillicextendeda"] = { first = 0x02DE0, last = 0x02DFF, otf="cyrl", description = "Cyrillic Extended-A" },
- ["cyrillicextendedb"] = { first = 0x0A640, last = 0x0A69F, otf="cyrl", description = "Cyrillic Extended-B" },
- ["cyrillicextendedc"] = { first = 0x01C80, last = 0x01C8F, description = "Cyrillic Extended-C" },
- ["cyrillicsupplement"] = { first = 0x00500, last = 0x0052F, otf="cyrl", description = "Cyrillic Supplement" },
- ["deseret"] = { first = 0x10400, last = 0x1044F, otf="dsrt", description = "Deseret" },
- ["devanagari"] = { first = 0x00900, last = 0x0097F, otf="deva", description = "Devanagari" },
- ["devanagariextended"] = { first = 0x0A8E0, last = 0x0A8FF, description = "Devanagari Extended" },
- ["digitsarabicindic"] = { first = 0x00660, last = 0x00669, math = true },
- -- ["digitsbengali"] = { first = 0x009E6, last = 0x009EF, math = true },
- ["digitsbold"] = { first = 0x1D7CE, last = 0x1D7D8, math = true },
- -- ["digitsdevanagari"] = { first = 0x00966, last = 0x0096F, math = true },
- ["digitsdoublestruck"] = { first = 0x1D7D8, last = 0x1D7E2, math = true },
- -- ["digitsethiopic"] = { first = 0x01369, last = 0x01371, math = true },
- ["digitsextendedarabicindic"] = { first = 0x006F0, last = 0x006F9, math = true },
- -- ["digitsgujarati"] = { first = 0x00AE6, last = 0x00AEF, math = true },
- -- ["digitsgurmukhi"] = { first = 0x00A66, last = 0x00A6F, math = true },
- -- ["digitskannada"] = { first = 0x00CE6, last = 0x00CEF, math = true },
- -- ["digitskhmer"] = { first = 0x017E0, last = 0x017E9, math = true },
- -- ["digitslao"] = { first = 0x00ED0, last = 0x00ED9, math = true },
- ["digitslatin"] = { first = 0x00030, last = 0x00039, math = true },
- -- ["digitsmalayalam"] = { first = 0x00D66, last = 0x00D6F, math = true },
- -- ["digitsmongolian"] = { first = 0x01810, last = 0x01809, math = true },
- ["digitsmonospace"] = { first = 0x1D7F6, last = 0x1D80F, math = true },
- -- ["digitsmyanmar"] = { first = 0x01040, last = 0x01049, math = true },
- ["digitsnormal"] = { first = 0x00030, last = 0x00039, math = true },
- -- ["digitsoriya"] = { first = 0x00B66, last = 0x00B6F, math = true },
- ["digitssansserifbold"] = { first = 0x1D7EC, last = 0x1D805, math = true },
- ["digitssansserifnormal"] = { first = 0x1D7E2, last = 0x1D7EC, math = true },
- -- ["digitstamil"] = { first = 0x00030, last = 0x00039, math = true }, -- no zero
- -- ["digitstelugu"] = { first = 0x00C66, last = 0x00C6F, math = true },
- -- ["digitsthai"] = { first = 0x00E50, last = 0x00E59, math = true },
- -- ["digitstibetan"] = { first = 0x00F20, last = 0x00F29, math = true },
- ["dingbats"] = { first = 0x02700, last = 0x027BF, description = "Dingbats" },
- ["divesakuru"] = { first = 0x11900, last = 0x1195F, description = "Dives Akuru" },
- ["dogra"] = { first = 0x11800, last = 0x1184F, description = "Dogra" },
- ["dominotiles"] = { first = 0x1F030, last = 0x1F09F, description = "Domino Tiles" },
- ["duployan"] = { first = 0x1BC00, last = 0x1BC9F, description = "Duployan" },
- ["earlydynasticcuneiform"] = { first = 0x12480, last = 0x1254F, description = "Early Dynastic Cuneiform" },
- ["egyptianhieroglyphformatcontrols"] = { first = 0x13430, last = 0x1343F, description = "Egyptian Hieroglyph Format Controls" },
- ["egyptianhieroglyphs"] = { first = 0x13000, last = 0x1342F, description = "Egyptian Hieroglyphs" },
- ["elbasan"] = { first = 0x10500, last = 0x1052F, description = "Elbasan" },
- ["elymaic"] = { first = 0x10FE0, last = 0x10FFF, description = "Elymaic" },
- ["emoticons"] = { first = 0x1F600, last = 0x1F64F, description = "Emoticons" },
- ["enclosedalphanumerics"] = { first = 0x02460, last = 0x024FF, description = "Enclosed Alphanumerics" },
- ["enclosedalphanumericsupplement"] = { first = 0x1F100, last = 0x1F1FF, description = "Enclosed Alphanumeric Supplement" },
- ["enclosedcjklettersandmonths"] = { first = 0x03200, last = 0x032FF, description = "Enclosed CJK Letters and Months" },
- ["enclosedideographicsupplement"] = { first = 0x1F200, last = 0x1F2FF, description = "Enclosed Ideographic Supplement" },
- ["ethiopic"] = { first = 0x01200, last = 0x0137F, otf="ethi", description = "Ethiopic" },
- ["ethiopicextended"] = { first = 0x02D80, last = 0x02DDF, otf="ethi", description = "Ethiopic Extended" },
- ["ethiopicextendeda"] = { first = 0x0AB00, last = 0x0AB2F, description = "Ethiopic Extended-A" },
- ["ethiopicsupplement"] = { first = 0x01380, last = 0x0139F, otf="ethi", description = "Ethiopic Supplement" },
- ["generalpunctuation"] = { first = 0x02000, last = 0x0206F, description = "General Punctuation" },
- ["geometricshapes"] = { first = 0x025A0, last = 0x025FF, math = true, description = "Geometric Shapes" },
- ["geometricshapesextended"] = { first = 0x1F780, last = 0x1F7FF, description = "Geometric Shapes Extended" },
- ["georgian"] = { first = 0x010A0, last = 0x010FF, otf="geor", description = "Georgian" },
- ["georgianextended"] = { first = 0x01C90, last = 0x01CBF, description = "Georgian Extended" },
- ["georgiansupplement"] = { first = 0x02D00, last = 0x02D2F, otf="geor", description = "Georgian Supplement" },
- ["glagolitic"] = { first = 0x02C00, last = 0x02C5F, otf="glag", description = "Glagolitic" },
- ["glagoliticsupplement"] = { first = 0x1E000, last = 0x1E02F, description = "Glagolitic Supplement" },
- ["gothic"] = { first = 0x10330, last = 0x1034F, otf="goth", description = "Gothic" },
- ["grantha"] = { first = 0x11300, last = 0x1137F, description = "Grantha" },
- ["greekandcoptic"] = { first = 0x00370, last = 0x003FF, otf="grek", description = "Greek and Coptic" },
- ["greekextended"] = { first = 0x01F00, last = 0x01FFF, otf="grek", description = "Greek Extended" },
- ["gujarati"] = { first = 0x00A80, last = 0x00AFF, otf="gujr", description = "Gujarati" },
- ["gunjalagondi"] = { first = 0x11D60, last = 0x11DAF, description = "Gunjala Gondi" },
- ["gurmukhi"] = { first = 0x00A00, last = 0x00A7F, otf="guru", description = "Gurmukhi" },
- ["halfwidthandfullwidthforms"] = { first = 0x0FF00, last = 0x0FFEF, description = "Halfwidth and Fullwidth Forms" },
- ["hangulcompatibilityjamo"] = { first = 0x03130, last = 0x0318F, otf="jamo", description = "Hangul Compatibility Jamo" },
- ["hanguljamo"] = { first = 0x01100, last = 0x011FF, otf="jamo", description = "Hangul Jamo" },
- ["hanguljamoextendeda"] = { first = 0x0A960, last = 0x0A97F, description = "Hangul Jamo Extended-A" },
- ["hanguljamoextendedb"] = { first = 0x0D7B0, last = 0x0D7FF, description = "Hangul Jamo Extended-B" },
- ["hangulsyllables"] = { first = 0x0AC00, last = 0x0D7AF, otf="hang", description = "Hangul Syllables" },
- ["hanifirohingya"] = { first = 0x10D00, last = 0x10D3F, description = "Hanifi Rohingya" },
- ["hanunoo"] = { first = 0x01720, last = 0x0173F, otf="hano", description = "Hanunoo" },
- ["hatran"] = { first = 0x108E0, last = 0x108FF, description = "Hatran" },
- ["hebrew"] = { first = 0x00590, last = 0x005FF, otf="hebr", description = "Hebrew" },
- ["highprivateusesurrogates"] = { first = 0x0DB80, last = 0x0DBFF, description = "High Private Use Surrogates" },
- ["highsurrogates"] = { first = 0x0D800, last = 0x0DB7F, description = "High Surrogates" },
- ["hiragana"] = { first = 0x03040, last = 0x0309F, otf="kana", description = "Hiragana" },
- ["ideographicdescriptioncharacters"] = { first = 0x02FF0, last = 0x02FFF, description = "Ideographic Description Characters" },
- ["ideographicsymbolsandpunctuation"] = { first = 0x16FE0, last = 0x16FFF, description = "Ideographic Symbols and Punctuation" },
- ["imperialaramaic"] = { first = 0x10840, last = 0x1085F, description = "Imperial Aramaic" },
- ["indicsiyaqnumbers"] = { first = 0x1EC70, last = 0x1ECBF, description = "Indic Siyaq Numbers" },
- ["inscriptionalpahlavi"] = { first = 0x10B60, last = 0x10B7F, description = "Inscriptional Pahlavi" },
- ["inscriptionalparthian"] = { first = 0x10B40, last = 0x10B5F, description = "Inscriptional Parthian" },
- ["ipaextensions"] = { first = 0x00250, last = 0x002AF, description = "IPA Extensions" },
- ["javanese"] = { first = 0x0A980, last = 0x0A9DF, description = "Javanese" },
- ["kaithi"] = { first = 0x11080, last = 0x110CF, description = "Kaithi" },
- ["kanaextendeda"] = { first = 0x1B100, last = 0x1B12F, description = "Kana Extended-A" },
- ["kanasupplement"] = { first = 0x1B000, last = 0x1B0FF, description = "Kana Supplement" },
- ["kanbun"] = { first = 0x03190, last = 0x0319F, description = "Kanbun" },
- ["kangxiradicals"] = { first = 0x02F00, last = 0x02FDF, description = "Kangxi Radicals" },
- ["kannada"] = { first = 0x00C80, last = 0x00CFF, otf="knda", description = "Kannada" },
- ["katakana"] = { first = 0x030A0, last = 0x030FF, otf="kana", description = "Katakana" },
- ["katakanaphoneticextensions"] = { first = 0x031F0, last = 0x031FF, otf="kana", description = "Katakana Phonetic Extensions" },
- ["kayahli"] = { first = 0x0A900, last = 0x0A92F, description = "Kayah Li" },
- ["kharoshthi"] = { first = 0x10A00, last = 0x10A5F, otf="khar", description = "Kharoshthi" },
- ["khitansmallscript"] = { first = 0x18B00, last = 0x18CFF, description = "Khitan Small Script" },
- ["khmer"] = { first = 0x01780, last = 0x017FF, otf="khmr", description = "Khmer" },
- ["khmersymbols"] = { first = 0x019E0, last = 0x019FF, otf="khmr", description = "Khmer Symbols" },
- ["khojki"] = { first = 0x11200, last = 0x1124F, description = "Khojki" },
- ["khudawadi"] = { first = 0x112B0, last = 0x112FF, description = "Khudawadi" },
- ["lao"] = { first = 0x00E80, last = 0x00EFF, otf="lao", description = "Lao" },
- ["latinextendeda"] = { first = 0x00100, last = 0x0017F, otf="latn", description = "Latin Extended-A" },
- ["latinextendedadditional"] = { first = 0x01E00, last = 0x01EFF, otf="latn", description = "Latin Extended Additional" },
- ["latinextendedb"] = { first = 0x00180, last = 0x0024F, otf="latn", description = "Latin Extended-B" },
- ["latinextendedc"] = { first = 0x02C60, last = 0x02C7F, otf="latn", description = "Latin Extended-C" },
- ["latinextendedd"] = { first = 0x0A720, last = 0x0A7FF, otf="latn", description = "Latin Extended-D" },
- ["latinextendede"] = { first = 0x0AB30, last = 0x0AB6F, description = "Latin Extended-E" },
- ["latinsupplement"] = { first = 0x00080, last = 0x000FF, otf="latn", description = "Latin-1 Supplement" },
- ["lepcha"] = { first = 0x01C00, last = 0x01C4F, description = "Lepcha" },
- ["letterlikesymbols"] = { first = 0x02100, last = 0x0214F, math = true, description = "Letterlike Symbols" },
- ["limbu"] = { first = 0x01900, last = 0x0194F, otf="limb", description = "Limbu" },
- ["lineara"] = { first = 0x10600, last = 0x1077F, description = "Linear A" },
- ["linearbideograms"] = { first = 0x10080, last = 0x100FF, otf="linb", description = "Linear B Ideograms" },
- ["linearbsyllabary"] = { first = 0x10000, last = 0x1007F, otf="linb", description = "Linear B Syllabary" },
- ["lisu"] = { first = 0x0A4D0, last = 0x0A4FF, description = "Lisu" },
- ["lisusupplement"] = { first = 0x11FB0, last = 0x11FBF, description = "Lisu Supplement" },
- ["lowercasebold"] = { first = 0x1D41A, last = 0x1D433, math = true },
- ["lowercaseboldfraktur"] = { first = 0x1D586, last = 0x1D59F, math = true },
- ["lowercasebolditalic"] = { first = 0x1D482, last = 0x1D49B, math = true },
- ["lowercaseboldscript"] = { first = 0x1D4EA, last = 0x1D503, math = true },
- ["lowercasedoublestruck"] = { first = 0x1D552, last = 0x1D56B, math = true },
- ["lowercasefraktur"] = { first = 0x1D51E, last = 0x1D537, math = true },
- ["lowercasegreekbold"] = { first = 0x1D6C2, last = 0x1D6DB, math = true },
- ["lowercasegreekbolditalic"] = { first = 0x1D736, last = 0x1D74F, math = true },
- ["lowercasegreekitalic"] = { first = 0x1D6FC, last = 0x1D715, math = true },
- ["lowercasegreeknormal"] = { first = 0x003B1, last = 0x003CA, math = true },
- ["lowercasegreeksansserifbold"] = { first = 0x1D770, last = 0x1D789, math = true },
- ["lowercasegreeksansserifbolditalic"] = { first = 0x1D7AA, last = 0x1D7C3, math = true },
- ["lowercaseitalic"] = { first = 0x1D44E, last = 0x1D467, math = true },
- ["lowercasemonospace"] = { first = 0x1D68A, last = 0x1D6A3, math = true },
- ["lowercasenormal"] = { first = 0x00061, last = 0x0007A, math = true },
- ["lowercasesansserifbold"] = { first = 0x1D5EE, last = 0x1D607, math = true },
- ["lowercasesansserifbolditalic"] = { first = 0x1D656, last = 0x1D66F, math = true },
- ["lowercasesansserifitalic"] = { first = 0x1D622, last = 0x1D63B, math = true },
- ["lowercasesansserifnormal"] = { first = 0x1D5BA, last = 0x1D5D3, math = true },
- ["lowercasescript"] = { first = 0x1D4B6, last = 0x1D4CF, math = true },
- ["lowsurrogates"] = { first = 0x0DC00, last = 0x0DFFF, description = "Low Surrogates" },
- ["lycian"] = { first = 0x10280, last = 0x1029F, description = "Lycian" },
- ["lydian"] = { first = 0x10920, last = 0x1093F, description = "Lydian" },
- ["mahajani"] = { first = 0x11150, last = 0x1117F, description = "Mahajani" },
- ["mahjongtiles"] = { first = 0x1F000, last = 0x1F02F, description = "Mahjong Tiles" },
- ["makasar"] = { first = 0x11EE0, last = 0x11EFF, description = "Makasar" },
- ["malayalam"] = { first = 0x00D00, last = 0x00D7F, otf="mlym", description = "Malayalam" },
- ["mandaic"] = { first = 0x00840, last = 0x0085F, otf="mand", description = "Mandaic" },
- ["manichaean"] = { first = 0x10AC0, last = 0x10AFF, description = "Manichaean" },
- ["marchen"] = { first = 0x11C70, last = 0x11CBF, description = "Marchen" },
- ["masaramgondi"] = { first = 0x11D00, last = 0x11D5F, description = "Masaram Gondi" },
- ["mathematicalalphanumericsymbols"] = { first = 0x1D400, last = 0x1D7FF, math = true, description = "Mathematical Alphanumeric Symbols" },
- ["mathematicaloperators"] = { first = 0x02200, last = 0x022FF, math = true, description = "Mathematical Operators" },
- ["mayannumerals"] = { first = 0x1D2E0, last = 0x1D2FF, description = "Mayan Numerals" },
- ["medefaidrin"] = { first = 0x16E40, last = 0x16E9F, description = "Medefaidrin" },
- ["meeteimayek"] = { first = 0x0ABC0, last = 0x0ABFF, description = "Meetei Mayek" },
- ["meeteimayekextensions"] = { first = 0x0AAE0, last = 0x0AAFF, description = "Meetei Mayek Extensions" },
- ["mendekikakui"] = { first = 0x1E800, last = 0x1E8DF, description = "Mende Kikakui" },
- ["meroiticcursive"] = { first = 0x109A0, last = 0x109FF, description = "Meroitic Cursive" },
- ["meroitichieroglyphs"] = { first = 0x10980, last = 0x1099F, description = "Meroitic Hieroglyphs" },
- ["miao"] = { first = 0x16F00, last = 0x16F9F, description = "Miao" },
- ["miscellaneousmathematicalsymbolsa"] = { first = 0x027C0, last = 0x027EF, math = true, description = "Miscellaneous Mathematical Symbols-A" },
- ["miscellaneousmathematicalsymbolsb"] = { first = 0x02980, last = 0x029FF, math = true, description = "Miscellaneous Mathematical Symbols-B" },
- ["miscellaneoussymbols"] = { first = 0x02600, last = 0x026FF, math = true, description = "Miscellaneous Symbols" },
- ["miscellaneoussymbolsandarrows"] = { first = 0x02B00, last = 0x02BFF, math = true, description = "Miscellaneous Symbols and Arrows" },
- ["miscellaneoussymbolsandpictographs"] = { first = 0x1F300, last = 0x1F5FF, description = "Miscellaneous Symbols and Pictographs" },
- ["miscellaneoustechnical"] = { first = 0x02300, last = 0x023FF, math = true, description = "Miscellaneous Technical" },
- ["modi"] = { first = 0x11600, last = 0x1165F, description = "Modi" },
- ["modifiertoneletters"] = { first = 0x0A700, last = 0x0A71F, description = "Modifier Tone Letters" },
- ["mongolian"] = { first = 0x01800, last = 0x018AF, otf="mong", description = "Mongolian" },
- ["mongoliansupplement"] = { first = 0x11660, last = 0x1167F, description = "Mongolian Supplement" },
- ["mro"] = { first = 0x16A40, last = 0x16A6F, description = "Mro" },
- ["multani"] = { first = 0x11280, last = 0x112AF, description = "Multani" },
- ["musicalsymbols"] = { first = 0x1D100, last = 0x1D1FF, otf="musc", description = "Musical Symbols" },
- ["myanmar"] = { first = 0x01000, last = 0x0109F, otf="mymr", description = "Myanmar" },
- ["myanmarextendeda"] = { first = 0x0AA60, last = 0x0AA7F, description = "Myanmar Extended-A" },
- ["myanmarextendedb"] = { first = 0x0A9E0, last = 0x0A9FF, description = "Myanmar Extended-B" },
- ["nabataean"] = { first = 0x10880, last = 0x108AF, description = "Nabataean" },
- ["nandinagari"] = { first = 0x119A0, last = 0x119FF, description = "Nandinagari" },
- ["newa"] = { first = 0x11400, last = 0x1147F, description = "Newa" },
- ["newtailue"] = { first = 0x01980, last = 0x019DF, description = "New Tai Lue" },
- ["nko"] = { first = 0x007C0, last = 0x007FF, otf="nko", description = "NKo" },
- ["numberforms"] = { first = 0x02150, last = 0x0218F, description = "Number Forms" },
- ["nushu"] = { first = 0x1B170, last = 0x1B2FF, description = "Nushu" },
- ["nyiakengpuachuehmong"] = { first = 0x1E100, last = 0x1E14F, description = "Nyiakeng Puachue Hmong" },
- ["ogham"] = { first = 0x01680, last = 0x0169F, otf="ogam", description = "Ogham" },
- ["olchiki"] = { first = 0x01C50, last = 0x01C7F, description = "Ol Chiki" },
- ["oldhungarian"] = { first = 0x10C80, last = 0x10CFF, description = "Old Hungarian" },
- ["olditalic"] = { first = 0x10300, last = 0x1032F, otf="ital", description = "Old Italic" },
- ["oldnortharabian"] = { first = 0x10A80, last = 0x10A9F, description = "Old North Arabian" },
- ["oldpermic"] = { first = 0x10350, last = 0x1037F, description = "Old Permic" },
- ["oldpersian"] = { first = 0x103A0, last = 0x103DF, otf="xpeo", description = "Old Persian" },
- ["oldsogdian"] = { first = 0x10F00, last = 0x10F2F, description = "Old Sogdian" },
- ["oldsoutharabian"] = { first = 0x10A60, last = 0x10A7F, description = "Old South Arabian" },
- ["oldturkic"] = { first = 0x10C00, last = 0x10C4F, description = "Old Turkic" },
- ["opticalcharacterrecognition"] = { first = 0x02440, last = 0x0245F, description = "Optical Character Recognition" },
- ["oriya"] = { first = 0x00B00, last = 0x00B7F, otf="orya", description = "Oriya" },
- ["ornamentaldingbats"] = { first = 0x1F650, last = 0x1F67F, description = "Ornamental Dingbats" },
- ["osage"] = { first = 0x104B0, last = 0x104FF, description = "Osage" },
- ["osmanya"] = { first = 0x10480, last = 0x104AF, otf="osma", description = "Osmanya" },
- ["ottomansiyaqnumbers"] = { first = 0x1ED00, last = 0x1ED4F, description = "Ottoman Siyaq Numbers" },
- ["pahawhhmong"] = { first = 0x16B00, last = 0x16B8F, description = "Pahawh Hmong" },
- ["palmyrene"] = { first = 0x10860, last = 0x1087F, description = "Palmyrene" },
- ["paucinhau"] = { first = 0x11AC0, last = 0x11AFF, description = "Pau Cin Hau" },
- ["phagspa"] = { first = 0x0A840, last = 0x0A87F, otf="phag", description = "Phags-pa" },
- ["phaistosdisc"] = { first = 0x101D0, last = 0x101FF, description = "Phaistos Disc" },
- ["phoenician"] = { first = 0x10900, last = 0x1091F, otf="phnx", description = "Phoenician" },
- ["phoneticextensions"] = { first = 0x01D00, last = 0x01D7F, description = "Phonetic Extensions" },
- ["phoneticextensionssupplement"] = { first = 0x01D80, last = 0x01DBF, description = "Phonetic Extensions Supplement" },
- ["playingcards"] = { first = 0x1F0A0, last = 0x1F0FF, description = "Playing Cards" },
- ["privateusearea"] = { first = 0x0E000, last = 0x0F8FF, description = "Private Use Area" },
- ["psalterpahlavi"] = { first = 0x10B80, last = 0x10BAF, description = "Psalter Pahlavi" },
- ["rejang"] = { first = 0x0A930, last = 0x0A95F, description = "Rejang" },
- ["ruminumeralsymbols"] = { first = 0x10E60, last = 0x10E7F, description = "Rumi Numeral Symbols" },
- ["runic"] = { first = 0x016A0, last = 0x016FF, otf="runr", description = "Runic" },
- ["samaritan"] = { first = 0x00800, last = 0x0083F, description = "Samaritan" },
- ["saurashtra"] = { first = 0x0A880, last = 0x0A8DF, description = "Saurashtra" },
- ["sharada"] = { first = 0x11180, last = 0x111DF, description = "Sharada" },
- ["shavian"] = { first = 0x10450, last = 0x1047F, otf="shaw", description = "Shavian" },
- ["shorthandformatcontrols"] = { first = 0x1BCA0, last = 0x1BCAF, description = "Shorthand Format Controls" },
- ["siddham"] = { first = 0x11580, last = 0x115FF, description = "Siddham" },
- ["sinhala"] = { first = 0x00D80, last = 0x00DFF, otf="sinh", description = "Sinhala" },
- ["sinhalaarchaicnumbers"] = { first = 0x111E0, last = 0x111FF, description = "Sinhala Archaic Numbers" },
- ["smallformvariants"] = { first = 0x0FE50, last = 0x0FE6F, description = "Small Form Variants" },
- ["smallkanaextension"] = { first = 0x1B130, last = 0x1B16F, description = "Small Kana Extension" },
- ["sogdian"] = { first = 0x10F30, last = 0x10F6F, description = "Sogdian" },
- ["sorasompeng"] = { first = 0x110D0, last = 0x110FF, description = "Sora Sompeng" },
- ["soyombo"] = { first = 0x11A50, last = 0x11AAF, description = "Soyombo" },
- ["spacingmodifierletters"] = { first = 0x002B0, last = 0x002FF, description = "Spacing Modifier Letters" },
- ["specials"] = { first = 0x0FFF0, last = 0x0FFFF, description = "Specials" },
- ["sundanese"] = { first = 0x01B80, last = 0x01BBF, description = "Sundanese" },
- ["sundanesesupplement"] = { first = 0x01CC0, last = 0x01CCF, description = "Sundanese Supplement" },
- ["superscriptsandsubscripts"] = { first = 0x02070, last = 0x0209F, description = "Superscripts and Subscripts" },
- ["supplementalarrowsa"] = { first = 0x027F0, last = 0x027FF, math = true, description = "Supplemental Arrows-A" },
- ["supplementalarrowsb"] = { first = 0x02900, last = 0x0297F, math = true, description = "Supplemental Arrows-B" },
- ["supplementalarrowsc"] = { first = 0x1F800, last = 0x1F8FF, math = true, description = "Supplemental Arrows-C" },
- ["supplementalmathematicaloperators"] = { first = 0x02A00, last = 0x02AFF, math = true, description = "Supplemental Mathematical Operators" },
- ["supplementalpunctuation"] = { first = 0x02E00, last = 0x02E7F, description = "Supplemental Punctuation" },
- ["supplementalsymbolsandpictographs"] = { first = 0x1F900, last = 0x1F9FF, description = "Supplemental Symbols and Pictographs" },
- ["supplementaryprivateuseareaa"] = { first = 0xF0000, last = 0xFFFFF, description = "Supplementary Private Use Area-A" },
- ["supplementaryprivateuseareab"] = { first = 0x100000,last = 0x10FFFF, description = "Supplementary Private Use Area-B" },
- ["suttonsignwriting"] = { first = 0x1D800, last = 0x1DAAF, description = "Sutton SignWriting" },
- ["sylotinagri"] = { first = 0x0A800, last = 0x0A82F, otf="sylo", description = "Syloti Nagri" },
- ["symbolsandpictographsextendeda"] = { first = 0x1FA70, last = 0x1FAFF, description = "Symbols and Pictographs Extended-A" },
- ["symbolsforlegacycomputing"] = { first = 0x1FB00, last = 0x1FBFF, description = "Symbols for Legacy Computing" },
- ["syriac"] = { first = 0x00700, last = 0x0074F, otf="syrc", description = "Syriac" },
- ["syriacsupplement"] = { first = 0x00860, last = 0x0086F, description = "Syriac Supplement" },
- ["tagalog"] = { first = 0x01700, last = 0x0171F, otf="tglg", description = "Tagalog" },
- ["tagbanwa"] = { first = 0x01760, last = 0x0177F, otf="tagb", description = "Tagbanwa" },
- ["tags"] = { first = 0xE0000, last = 0xE007F, description = "Tags" },
- ["taile"] = { first = 0x01950, last = 0x0197F, otf="tale", description = "Tai Le" },
- ["taitham"] = { first = 0x01A20, last = 0x01AAF, description = "Tai Tham" },
- ["taiviet"] = { first = 0x0AA80, last = 0x0AADF, description = "Tai Viet" },
- ["taixuanjingsymbols"] = { first = 0x1D300, last = 0x1D35F, description = "Tai Xuan Jing Symbols" },
- ["takri"] = { first = 0x11680, last = 0x116CF, description = "Takri" },
- ["tamil"] = { first = 0x00B80, last = 0x00BFF, otf="taml", description = "Tamil" },
- ["tamilsupplement"] = { first = 0x11FC0, last = 0x11FFF, description = "Tamil Supplement" },
- ["tangut"] = { first = 0x17000, last = 0x187FF, description = "Tangut" },
- ["tangutsupplement"] = { first = 0x18D00, last = 0x18D8F, description = "Tangut Supplement" },
- ["tangutcomponents"] = { first = 0x18800, last = 0x18AFF, description = "Tangut Components" },
- ["telugu"] = { first = 0x00C00, last = 0x00C7F, otf="telu", description = "Telugu" },
- ["thaana"] = { first = 0x00780, last = 0x007BF, otf="thaa", description = "Thaana" },
- ["thai"] = { first = 0x00E00, last = 0x00E7F, otf="thai", description = "Thai" },
- ["tibetan"] = { first = 0x00F00, last = 0x00FFF, otf="tibt", description = "Tibetan" },
- ["tifinagh"] = { first = 0x02D30, last = 0x02D7F, otf="tfng", description = "Tifinagh" },
- ["tirhuta"] = { first = 0x11480, last = 0x114DF, description = "Tirhuta" },
- ["transportandmapsymbols"] = { first = 0x1F680, last = 0x1F6FF, description = "Transport and Map Symbols" },
- ["ugaritic"] = { first = 0x10380, last = 0x1039F, otf="ugar", description = "Ugaritic" },
- ["unifiedcanadianaboriginalsyllabics"] = { first = 0x01400, last = 0x0167F, otf="cans", description = "Unified Canadian Aboriginal Syllabics" },
- ["unifiedcanadianaboriginalsyllabicsextended"] = { first = 0x018B0, last = 0x018FF, description = "Unified Canadian Aboriginal Syllabics Extended" },
- ["uppercasebold"] = { first = 0x1D400, last = 0x1D419, math = true },
- ["uppercaseboldfraktur"] = { first = 0x1D56C, last = 0x1D585, math = true },
- ["uppercasebolditalic"] = { first = 0x1D468, last = 0x1D481, math = true },
- ["uppercaseboldscript"] = { first = 0x1D4D0, last = 0x1D4E9, math = true },
- ["uppercasedoublestruck"] = { first = 0x1D538, last = 0x1D551, math = true }, -- gaps are filled in elsewhere
- ["uppercasefraktur"] = { first = 0x1D504, last = 0x1D51D, math = true },
- ["uppercasegreekbold"] = { first = 0x1D6A8, last = 0x1D6C1, math = true },
- ["uppercasegreekbolditalic"] = { first = 0x1D71C, last = 0x1D735, math = true },
- ["uppercasegreekitalic"] = { first = 0x1D6E2, last = 0x1D6FB, math = true },
- ["uppercasegreeknormal"] = { first = 0x00391, last = 0x003AA, math = true },
- ["uppercasegreeksansserifbold"] = { first = 0x1D756, last = 0x1D76F, math = true },
- ["uppercasegreeksansserifbolditalic"] = { first = 0x1D790, last = 0x1D7A9, math = true },
- ["uppercaseitalic"] = { first = 0x1D434, last = 0x1D44D, math = true },
- ["uppercasemonospace"] = { first = 0x1D670, last = 0x1D689, math = true },
- ["uppercasenormal"] = { first = 0x00041, last = 0x0005A, math = true },
- ["uppercasesansserifbold"] = { first = 0x1D5D4, last = 0x1D5ED, math = true },
- ["uppercasesansserifbolditalic"] = { first = 0x1D63C, last = 0x1D655, math = true },
- ["uppercasesansserifitalic"] = { first = 0x1D608, last = 0x1D621, math = true },
- ["uppercasesansserifnormal"] = { first = 0x1D5A0, last = 0x1D5B9, math = true },
- ["uppercasescript"] = { first = 0x1D49C, last = 0x1D4B5, math = true },
- ["vai"] = { first = 0x0A500, last = 0x0A63F, description = "Vai" },
- ["variationselectors"] = { first = 0x0FE00, last = 0x0FE0F, description = "Variation Selectors" },
- ["variationselectorssupplement"] = { first = 0xE0100, last = 0xE01EF, description = "Variation Selectors Supplement" },
- ["vedicextensions"] = { first = 0x01CD0, last = 0x01CFF, description = "Vedic Extensions" },
- ["verticalforms"] = { first = 0x0FE10, last = 0x0FE1F, description = "Vertical Forms" },
- ["wancho"] = { first = 0x1E2C0, last = 0x1E2FF, description = "Wancho" },
- ["warangciti"] = { first = 0x118A0, last = 0x118FF, description = "Warang Citi" },
- ["yezidi"] = { first = 0x10E80, last = 0x10EBF, description = "Yezidi" },
- ["yijinghexagramsymbols"] = { first = 0x04DC0, last = 0x04DFF, otf="yi", description = "Yijing Hexagram Symbols" },
- ["yiradicals"] = { first = 0x0A490, last = 0x0A4CF, otf="yi", description = "Yi Radicals" },
- ["yisyllables"] = { first = 0x0A000, last = 0x0A48F, otf="yi", description = "Yi Syllables" },
- ["zanabazarsquare"] = { first = 0x11A00, last = 0x11A4F, description = "Zanabazar Square" },
+ ["adlam"] = { first = 0x1E900, last = 0x1E95F, description = "Adlam" },
+ ["aegeannumbers"] = { first = 0x10100, last = 0x1013F, description = "Aegean Numbers" },
+ ["ahom"] = { first = 0x11700, last = 0x1174F, description = "Ahom" },
+ ["alchemicalsymbols"] = { first = 0x1F700, last = 0x1F77F, description = "Alchemical Symbols" },
+ ["alphabeticpresentationforms"] = { first = 0x0FB00, last = 0x0FB4F, otf="latn", description = "Alphabetic Presentation Forms" },
+ ["anatolianhieroglyphs"] = { first = 0x14400, last = 0x1467F, description = "Anatolian Hieroglyphs" },
+ ["ancientgreekmusicalnotation"] = { first = 0x1D200, last = 0x1D24F, otf="grek", description = "Ancient Greek Musical Notation" },
+ ["ancientgreeknumbers"] = { first = 0x10140, last = 0x1018F, otf="grek", description = "Ancient Greek Numbers" },
+ ["ancientsymbols"] = { first = 0x10190, last = 0x101CF, otf="grek", description = "Ancient Symbols" },
+ ["arabic"] = { first = 0x00600, last = 0x006FF, otf="arab", description = "Arabic" },
+ ["arabicextendeda"] = { first = 0x008A0, last = 0x008FF, description = "Arabic Extended-A" },
+ ["arabicextendedb"] = { first = 0x00870, last = 0x0089F, description = "Arabic Extended-B" },
+ ["arabicextendedc"] = { first = 0x10EC0, last = 0x10EFF, description = "Arabic Extended-C" },
+ ["arabicmathematicalalphabeticsymbols"] = { first = 0x1EE00, last = 0x1EEFF, description = "Arabic Mathematical Alphabetic Symbols" },
+ ["arabicpresentationformsa"] = { first = 0x0FB50, last = 0x0FDFF, otf="arab", description = "Arabic Presentation Forms-A" },
+ ["arabicpresentationformsb"] = { first = 0x0FE70, last = 0x0FEFF, otf="arab", description = "Arabic Presentation Forms-B" },
+ ["arabicsupplement"] = { first = 0x00750, last = 0x0077F, otf="arab", description = "Arabic Supplement" },
+ ["armenian"] = { first = 0x00530, last = 0x0058F, otf="armn", description = "Armenian" },
+ ["arrows"] = { first = 0x02190, last = 0x021FF, description = "Arrows" },
+ ["avestan"] = { first = 0x10B00, last = 0x10B3F, description = "Avestan" },
+ ["balinese"] = { first = 0x01B00, last = 0x01B7F, otf="bali", description = "Balinese" },
+ ["bamum"] = { first = 0x0A6A0, last = 0x0A6FF, description = "Bamum" },
+ ["bamumsupplement"] = { first = 0x16800, last = 0x16A3F, description = "Bamum Supplement" },
+ ["basiclatin"] = { first = 0x00000, last = 0x0007F, otf="latn", description = "Basic Latin" },
+ ["bassavah"] = { first = 0x16AD0, last = 0x16AFF, description = "Bassa Vah" },
+ ["batak"] = { first = 0x01BC0, last = 0x01BFF, description = "Batak" },
+ ["bengali"] = { first = 0x00980, last = 0x009FF, otf="beng", description = "Bengali" },
+ ["bhaiksuki"] = { first = 0x11C00, last = 0x11C6F, description = "Bhaiksuki" },
+ ["blockelements"] = { first = 0x02580, last = 0x0259F, otf="bopo", description = "Block Elements" },
+ ["bopomofo"] = { first = 0x03100, last = 0x0312F, otf="bopo", description = "Bopomofo" },
+ ["bopomofoextended"] = { first = 0x031A0, last = 0x031BF, otf="bopo", description = "Bopomofo Extended" },
+ ["boxdrawing"] = { first = 0x02500, last = 0x0257F, description = "Box Drawing" },
+ ["brahmi"] = { first = 0x11000, last = 0x1107F, description = "Brahmi" },
+ ["braillepatterns"] = { first = 0x02800, last = 0x028FF, otf="brai", description = "Braille Patterns" },
+ ["buginese"] = { first = 0x01A00, last = 0x01A1F, otf="bugi", description = "Buginese" },
+ ["buhid"] = { first = 0x01740, last = 0x0175F, otf="buhd", description = "Buhid" },
+ ["byzantinemusicalsymbols"] = { first = 0x1D000, last = 0x1D0FF, otf="byzm", description = "Byzantine Musical Symbols" },
+ ["carian"] = { first = 0x102A0, last = 0x102DF, description = "Carian" },
+ ["caucasianalbanian"] = { first = 0x10530, last = 0x1056F, description = "Caucasian Albanian" },
+ ["chakma"] = { first = 0x11100, last = 0x1114F, description = "Chakma" },
+ ["cham"] = { first = 0x0AA00, last = 0x0AA5F, description = "Cham" },
+ ["cherokee"] = { first = 0x013A0, last = 0x013FF, otf="cher", description = "Cherokee" },
+ ["cherokeesupplement"] = { first = 0x0AB70, last = 0x0ABBF, description = "Cherokee Supplement" },
+ ["chesssymbols"] = { first = 0x1FA00, last = 0x1FA6F, description = "Chess Symbols" },
+ ["chorasmian"] = { first = 0x10FB0, last = 0x10FDF, description = "Chorasmian" },
+ ["cjkcompatibility"] = { first = 0x03300, last = 0x033FF, otf="hang", description = "CJK Compatibility" },
+ ["cjkcompatibilityforms"] = { first = 0x0FE30, last = 0x0FE4F, otf="hang", description = "CJK Compatibility Forms" },
+ ["cjkcompatibilityideographs"] = { first = 0x0F900, last = 0x0FAFF, otf="hang", description = "CJK Compatibility Ideographs" },
+ ["cjkcompatibilityideographssupplement"] = { first = 0x2F800, last = 0x2FA1F, otf="hang", description = "CJK Compatibility Ideographs Supplement" },
+ ["cjkradicalssupplement"] = { first = 0x02E80, last = 0x02EFF, otf="hang", description = "CJK Radicals Supplement" },
+ ["cjkstrokes"] = { first = 0x031C0, last = 0x031EF, otf="hang", description = "CJK Strokes" },
+ ["cjksymbolsandpunctuation"] = { first = 0x03000, last = 0x0303F, otf="hang", description = "CJK Symbols and Punctuation" },
+ ["cjkunifiedideographs"] = { first = 0x04E00, last = 0x09FFF, otf="hang", description = "CJK Unified Ideographs", catcode = "letter" },
+ ["cjkunifiedideographsextensiona"] = { first = 0x03400, last = 0x04DBF, otf="hang", description = "CJK Unified Ideographs Extension A" },
+ ["cjkunifiedideographsextensionb"] = { first = 0x20000, last = 0x2A6DF, otf="hang", description = "CJK Unified Ideographs Extension B" },
+ ["cjkunifiedideographsextensionc"] = { first = 0x2A700, last = 0x2B73F, description = "CJK Unified Ideographs Extension C" },
+ ["cjkunifiedideographsextensiond"] = { first = 0x2B740, last = 0x2B81F, description = "CJK Unified Ideographs Extension D" },
+ ["cjkunifiedideographsextensione"] = { first = 0x2B820, last = 0x2CEAF, description = "CJK Unified Ideographs Extension E" },
+ ["cjkunifiedideographsextensionf"] = { first = 0x2CEB0, last = 0x2EBEF, description = "CJK Unified Ideographs Extension F" },
+ ["cjkunifiedideographsextensiong"] = { first = 0x30000, last = 0x3134F, description = "CJK Unified Ideographs Extension G" },
+ ["cjkunifiedideographsextensionh"] = { first = 0x31350, last = 0x323AF, description = "CJK Unified Ideographs Extension H" },
+ ["combiningdiacriticalmarks"] = { first = 0x00300, last = 0x0036F, description = "Combining Diacritical Marks" },
+ ["combiningdiacriticalmarksextended"] = { first = 0x01AB0, last = 0x01AFF, description = "Combining Diacritical Marks Extended" },
+ ["combiningdiacriticalmarksforsymbols"] = { first = 0x020D0, last = 0x020FF, description = "Combining Diacritical Marks for Symbols" },
+ ["combiningdiacriticalmarkssupplement"] = { first = 0x01DC0, last = 0x01DFF, description = "Combining Diacritical Marks Supplement" },
+ ["combininghalfmarks"] = { first = 0x0FE20, last = 0x0FE2F, description = "Combining Half Marks" },
+ ["commonindicnumberforms"] = { first = 0x0A830, last = 0x0A83F, description = "Common Indic Number Forms" },
+ ["controlpictures"] = { first = 0x02400, last = 0x0243F, description = "Control Pictures" },
+ ["coptic"] = { first = 0x02C80, last = 0x02CFF, otf="copt", description = "Coptic" },
+ ["copticepactnumbers"] = { first = 0x102E0, last = 0x102FF, description = "Coptic Epact Numbers" },
+ ["countingrodnumerals"] = { first = 0x1D360, last = 0x1D37F, description = "Counting Rod Numerals" },
+ ["cuneiform"] = { first = 0x12000, last = 0x123FF, otf="xsux", description = "Cuneiform" },
+ ["cuneiformnumbersandpunctuation"] = { first = 0x12400, last = 0x1247F, otf="xsux", description = "Cuneiform Numbers and Punctuation" },
+ ["currencysymbols"] = { first = 0x020A0, last = 0x020CF, description = "Currency Symbols" },
+ ["cypriotsyllabary"] = { first = 0x10800, last = 0x1083F, otf="cprt", description = "Cypriot Syllabary" },
+ ["cyprominoan"] = { first = 0x12F90, last = 0x12FFF, description = "Cypro-Minoan" },
+ ["cyrillic"] = { first = 0x00400, last = 0x004FF, otf="cyrl", description = "Cyrillic" },
+ ["cyrillicextendeda"] = { first = 0x02DE0, last = 0x02DFF, otf="cyrl", description = "Cyrillic Extended-A" },
+ ["cyrillicextendedb"] = { first = 0x0A640, last = 0x0A69F, otf="cyrl", description = "Cyrillic Extended-B" },
+ ["cyrillicextendedc"] = { first = 0x01C80, last = 0x01C8F, description = "Cyrillic Extended-C" },
+ ["cyrillicextendedd"] = { first = 0x1E030, last = 0x1E08F, description = "Cyrillic Extended-D" },
+ ["cyrillicsupplement"] = { first = 0x00500, last = 0x0052F, otf="cyrl", description = "Cyrillic Supplement" },
+ ["deseret"] = { first = 0x10400, last = 0x1044F, otf="dsrt", description = "Deseret" },
+ ["devanagari"] = { first = 0x00900, last = 0x0097F, otf="deva", description = "Devanagari" },
+ ["devanagariextended"] = { first = 0x0A8E0, last = 0x0A8FF, description = "Devanagari Extended" },
+ ["devanagariextendeda"] = { first = 0x11B00, last = 0x11B5F, description = "Devanagari Extended-A" },
+ ["digitsarabicindic"] = { first = 0x00660, last = 0x00669, math = true },
+ -- ["digitsbengali"] = { first = 0x009E6, last = 0x009EF, math = true },
+ ["digitsbold"] = { first = 0x1D7CE, last = 0x1D7D7, math = true },
+ -- ["digitsdevanagari"] = { first = 0x00966, last = 0x0096F, math = true },
+ ["digitsdoublestruck"] = { first = 0x1D7D8, last = 0x1D7E1, math = true },
+ -- ["digitsethiopic"] = { first = 0x01369, last = 0x01371, math = true },
+ ["digitsextendedarabicindic"] = { first = 0x006F0, last = 0x006F9, math = true },
+ -- ["digitsgujarati"] = { first = 0x00AE6, last = 0x00AEF, math = true },
+ -- ["digitsgurmukhi"] = { first = 0x00A66, last = 0x00A6F, math = true },
+ -- ["digitskannada"] = { first = 0x00CE6, last = 0x00CEF, math = true },
+ -- ["digitskhmer"] = { first = 0x017E0, last = 0x017E9, math = true },
+ -- ["digitslao"] = { first = 0x00ED0, last = 0x00ED9, math = true },
+ ["digitslatin"] = { first = 0x00030, last = 0x00039, math = true },
+ -- ["digitsmalayalam"] = { first = 0x00D66, last = 0x00D6F, math = true },
+ -- ["digitsmongolian"] = { first = 0x01810, last = 0x01809, math = true },
+ ["digitsmonospace"] = { first = 0x1D7F6, last = 0x1D7FF, math = true },
+ -- ["digitsmyanmar"] = { first = 0x01040, last = 0x01049, math = true },
+ ["digitsnormal"] = { first = 0x00030, last = 0x00039, math = true },
+ -- ["digitsoriya"] = { first = 0x00B66, last = 0x00B6F, math = true },
+ ["digitssansserifbold"] = { first = 0x1D7EC, last = 0x1D7F5, math = true },
+ ["digitssansserifnormal"] = { first = 0x1D7E2, last = 0x1D7EB, math = true },
+ -- ["digitstamil"] = { first = 0x00030, last = 0x00039, math = true }, -- no zero
+ -- ["digitstelugu"] = { first = 0x00C66, last = 0x00C6F, math = true },
+ -- ["digitsthai"] = { first = 0x00E50, last = 0x00E59, math = true },
+ -- ["digitstibetan"] = { first = 0x00F20, last = 0x00F29, math = true },
+ ["dingbats"] = { first = 0x02700, last = 0x027BF, description = "Dingbats" },
+ ["divesakuru"] = { first = 0x11900, last = 0x1195F, description = "Dives Akuru" },
+ ["dogra"] = { first = 0x11800, last = 0x1184F, description = "Dogra" },
+ ["dominotiles"] = { first = 0x1F030, last = 0x1F09F, description = "Domino Tiles" },
+ ["duployan"] = { first = 0x1BC00, last = 0x1BC9F, description = "Duployan" },
+ ["earlydynasticcuneiform"] = { first = 0x12480, last = 0x1254F, description = "Early Dynastic Cuneiform" },
+ ["egyptianhieroglyphformatcontrols"] = { first = 0x13430, last = 0x1345F, description = "Egyptian Hieroglyph Format Controls" },
+ ["egyptianhieroglyphs"] = { first = 0x13000, last = 0x1342F, description = "Egyptian Hieroglyphs" },
+ ["elbasan"] = { first = 0x10500, last = 0x1052F, description = "Elbasan" },
+ ["elymaic"] = { first = 0x10FE0, last = 0x10FFF, description = "Elymaic" },
+ ["emoticons"] = { first = 0x1F600, last = 0x1F64F, description = "Emoticons" },
+ ["enclosedalphanumerics"] = { first = 0x02460, last = 0x024FF, description = "Enclosed Alphanumerics" },
+ ["enclosedalphanumericsupplement"] = { first = 0x1F100, last = 0x1F1FF, description = "Enclosed Alphanumeric Supplement" },
+ ["enclosedcjklettersandmonths"] = { first = 0x03200, last = 0x032FF, description = "Enclosed CJK Letters and Months" },
+ ["enclosedideographicsupplement"] = { first = 0x1F200, last = 0x1F2FF, description = "Enclosed Ideographic Supplement" },
+ ["ethiopic"] = { first = 0x01200, last = 0x0137F, otf="ethi", description = "Ethiopic" },
+ ["ethiopicextended"] = { first = 0x02D80, last = 0x02DDF, otf="ethi", description = "Ethiopic Extended" },
+ ["ethiopicextendeda"] = { first = 0x0AB00, last = 0x0AB2F, description = "Ethiopic Extended-A" },
+ ["ethiopicextendedb"] = { first = 0x1E7E0, last = 0x1E7FF, description = "Ethiopic Extended-B" },
+ ["ethiopicsupplement"] = { first = 0x01380, last = 0x0139F, otf="ethi", description = "Ethiopic Supplement" },
+ ["generalpunctuation"] = { first = 0x02000, last = 0x0206F, description = "General Punctuation" },
+ ["geometricshapes"] = { first = 0x025A0, last = 0x025FF, math = true, description = "Geometric Shapes" },
+ ["geometricshapesextended"] = { first = 0x1F780, last = 0x1F7FF, description = "Geometric Shapes Extended" },
+ ["georgian"] = { first = 0x010A0, last = 0x010FF, otf="geor", description = "Georgian" },
+ ["georgianextended"] = { first = 0x01C90, last = 0x01CBF, description = "Georgian Extended" },
+ ["georgiansupplement"] = { first = 0x02D00, last = 0x02D2F, otf="geor", description = "Georgian Supplement" },
+ ["glagolitic"] = { first = 0x02C00, last = 0x02C5F, otf="glag", description = "Glagolitic" },
+ ["glagoliticsupplement"] = { first = 0x1E000, last = 0x1E02F, description = "Glagolitic Supplement" },
+ ["gothic"] = { first = 0x10330, last = 0x1034F, otf="goth", description = "Gothic" },
+ ["grantha"] = { first = 0x11300, last = 0x1137F, description = "Grantha" },
+ ["greekandcoptic"] = { first = 0x00370, last = 0x003FF, otf="grek", description = "Greek and Coptic" },
+ ["greekextended"] = { first = 0x01F00, last = 0x01FFF, otf="grek", description = "Greek Extended" },
+ ["gujarati"] = { first = 0x00A80, last = 0x00AFF, otf="gujr", description = "Gujarati" },
+ ["gunjalagondi"] = { first = 0x11D60, last = 0x11DAF, description = "Gunjala Gondi" },
+ ["gurmukhi"] = { first = 0x00A00, last = 0x00A7F, otf="guru", description = "Gurmukhi" },
+ ["halfwidthandfullwidthforms"] = { first = 0x0FF00, last = 0x0FFEF, description = "Halfwidth and Fullwidth Forms" },
+ ["hangulcompatibilityjamo"] = { first = 0x03130, last = 0x0318F, otf="jamo", description = "Hangul Compatibility Jamo" },
+ ["hanguljamo"] = { first = 0x01100, last = 0x011FF, otf="jamo", description = "Hangul Jamo" },
+ ["hanguljamoextendeda"] = { first = 0x0A960, last = 0x0A97F, description = "Hangul Jamo Extended-A" },
+ ["hanguljamoextendedb"] = { first = 0x0D7B0, last = 0x0D7FF, description = "Hangul Jamo Extended-B" },
+ ["hangulsyllables"] = { first = 0x0AC00, last = 0x0D7AF, otf="hang", description = "Hangul Syllables" },
+ ["hanifirohingya"] = { first = 0x10D00, last = 0x10D3F, description = "Hanifi Rohingya" },
+ ["hanunoo"] = { first = 0x01720, last = 0x0173F, otf="hano", description = "Hanunoo" },
+ ["hatran"] = { first = 0x108E0, last = 0x108FF, description = "Hatran" },
+ ["hebrew"] = { first = 0x00590, last = 0x005FF, otf="hebr", description = "Hebrew" },
+ ["highprivateusesurrogates"] = { first = 0x0DB80, last = 0x0DBFF, description = "High Private Use Surrogates" },
+ ["highsurrogates"] = { first = 0x0D800, last = 0x0DB7F, description = "High Surrogates" },
+ ["hiragana"] = { first = 0x03040, last = 0x0309F, otf="kana", description = "Hiragana" },
+ ["ideographicdescriptioncharacters"] = { first = 0x02FF0, last = 0x02FFF, description = "Ideographic Description Characters" },
+ ["ideographicsymbolsandpunctuation"] = { first = 0x16FE0, last = 0x16FFF, description = "Ideographic Symbols and Punctuation" },
+ ["imperialaramaic"] = { first = 0x10840, last = 0x1085F, description = "Imperial Aramaic" },
+ ["indicsiyaqnumbers"] = { first = 0x1EC70, last = 0x1ECBF, description = "Indic Siyaq Numbers" },
+ ["inscriptionalpahlavi"] = { first = 0x10B60, last = 0x10B7F, description = "Inscriptional Pahlavi" },
+ ["inscriptionalparthian"] = { first = 0x10B40, last = 0x10B5F, description = "Inscriptional Parthian" },
+ ["ipaextensions"] = { first = 0x00250, last = 0x002AF, description = "IPA Extensions" },
+ ["javanese"] = { first = 0x0A980, last = 0x0A9DF, description = "Javanese" },
+ ["kaithi"] = { first = 0x11080, last = 0x110CF, description = "Kaithi" },
+ ["kaktoviknumerals"] = { first = 0x1D2C0, last = 0x1D2DF, description = "Kaktovik Numerals" },
+ ["kanaextendeda"] = { first = 0x1B100, last = 0x1B12F, description = "Kana Extended-A" },
+ ["kanaextendedb"] = { first = 0x1AFF0, last = 0x1AFFF, description = "Kana Extended-B" },
+ ["kanasupplement"] = { first = 0x1B000, last = 0x1B0FF, description = "Kana Supplement" },
+ ["kanbun"] = { first = 0x03190, last = 0x0319F, description = "Kanbun" },
+ ["kangxiradicals"] = { first = 0x02F00, last = 0x02FDF, description = "Kangxi Radicals" },
+ ["kannada"] = { first = 0x00C80, last = 0x00CFF, otf="knda", description = "Kannada" },
+ ["katakana"] = { first = 0x030A0, last = 0x030FF, otf="kana", description = "Katakana" },
+ ["katakanaphoneticextensions"] = { first = 0x031F0, last = 0x031FF, otf="kana", description = "Katakana Phonetic Extensions" },
+ ["kayahli"] = { first = 0x0A900, last = 0x0A92F, description = "Kayah Li" },
+ ["kawi"] = { first = 0x11F00, last = 0x11F5F, description = "Kawi" },
+ ["kharoshthi"] = { first = 0x10A00, last = 0x10A5F, otf="khar", description = "Kharoshthi" },
+ ["khitansmallscript"] = { first = 0x18B00, last = 0x18CFF, description = "Khitan Small Script" },
+ ["khmer"] = { first = 0x01780, last = 0x017FF, otf="khmr", description = "Khmer" },
+ ["khmersymbols"] = { first = 0x019E0, last = 0x019FF, otf="khmr", description = "Khmer Symbols" },
+ ["khojki"] = { first = 0x11200, last = 0x1124F, description = "Khojki" },
+ ["khudawadi"] = { first = 0x112B0, last = 0x112FF, description = "Khudawadi" },
+ ["lao"] = { first = 0x00E80, last = 0x00EFF, otf="lao", description = "Lao" },
+ ["latinextendeda"] = { first = 0x00100, last = 0x0017F, otf="latn", description = "Latin Extended-A" },
+ ["latinextendedadditional"] = { first = 0x01E00, last = 0x01EFF, otf="latn", description = "Latin Extended Additional" },
+ ["latinextendedb"] = { first = 0x00180, last = 0x0024F, otf="latn", description = "Latin Extended-B" },
+ ["latinextendedc"] = { first = 0x02C60, last = 0x02C7F, otf="latn", description = "Latin Extended-C" },
+ ["latinextendedd"] = { first = 0x0A720, last = 0x0A7FF, otf="latn", description = "Latin Extended-D" },
+ ["latinextendede"] = { first = 0x0AB30, last = 0x0AB6F, description = "Latin Extended-E" },
+ ["latinextendedf"] = { first = 0x10780, last = 0x107BF, description = "Latin Extended-F" },
+ ["latinextendedg"] = { first = 0x1DF00, last = 0x1DFFF, description = "Latin Extended-G" },
+ ["latinsupplement"] = { first = 0x00080, last = 0x000FF, otf="latn", description = "Latin-1 Supplement" },
+ ["lepcha"] = { first = 0x01C00, last = 0x01C4F, description = "Lepcha" },
+ ["letterlikesymbols"] = { first = 0x02100, last = 0x0214F, math = true, description = "Letterlike Symbols" },
+ ["limbu"] = { first = 0x01900, last = 0x0194F, otf="limb", description = "Limbu" },
+ ["lineara"] = { first = 0x10600, last = 0x1077F, description = "Linear A" },
+ ["linearbideograms"] = { first = 0x10080, last = 0x100FF, otf="linb", description = "Linear B Ideograms" },
+ ["linearbsyllabary"] = { first = 0x10000, last = 0x1007F, otf="linb", description = "Linear B Syllabary" },
+ ["lisu"] = { first = 0x0A4D0, last = 0x0A4FF, description = "Lisu" },
+ ["lisusupplement"] = { first = 0x11FB0, last = 0x11FBF, description = "Lisu Supplement" },
+ ["lowercasebold"] = { first = 0x1D41A, last = 0x1D433, math = true },
+ ["lowercaseboldfraktur"] = { first = 0x1D586, last = 0x1D59F, math = true },
+ ["lowercasebolditalic"] = { first = 0x1D482, last = 0x1D49B, math = true, italic = true },
+ ["lowercaseboldscript"] = { first = 0x1D4EA, last = 0x1D503, math = true, italic = true },
+ ["lowercasedoublestruck"] = { first = 0x1D552, last = 0x1D56B, math = true },
+ ["lowercasefraktur"] = { first = 0x1D51E, last = 0x1D537, math = true },
+ ["lowercasegreekbold"] = { first = 0x1D6C2, last = 0x1D6DB, math = true },
+ ["lowercasegreekbolditalic"] = { first = 0x1D736, last = 0x1D74F, math = true, italic = true },
+ ["lowercasegreekitalic"] = { first = 0x1D6FC, last = 0x1D715, math = true, italic = true },
+ ["lowercasegreeknormal"] = { first = 0x003B1, last = 0x003C9, math = true },
+ ["lowercasegreeksansserifbold"] = { first = 0x1D770, last = 0x1D789, math = true },
+ ["lowercasegreeksansserifbolditalic"] = { first = 0x1D7AA, last = 0x1D7C3, math = true, italic = true },
+ ["lowercaseitalic"] = { first = 0x1D44E, last = 0x1D467, math = true, italic = true },
+ ["lowercasemonospace"] = { first = 0x1D68A, last = 0x1D6A3, math = true },
+ ["lowercasenormal"] = { first = 0x00061, last = 0x0007A, math = true },
+ ["lowercasesansserifbold"] = { first = 0x1D5EE, last = 0x1D607, math = true },
+ ["lowercasesansserifbolditalic"] = { first = 0x1D656, last = 0x1D66F, math = true, italic = true },
+ ["lowercasesansserifitalic"] = { first = 0x1D622, last = 0x1D63B, math = true, italic = true },
+ ["lowercasesansserifnormal"] = { first = 0x1D5BA, last = 0x1D5D3, math = true },
+ ["lowercasescript"] = { first = 0x1D4B6, last = 0x1D4CF, math = true, italic = true },
+ ["lowsurrogates"] = { first = 0x0DC00, last = 0x0DFFF, description = "Low Surrogates" },
+ ["lycian"] = { first = 0x10280, last = 0x1029F, description = "Lycian" },
+ ["lydian"] = { first = 0x10920, last = 0x1093F, description = "Lydian" },
+ ["mahajani"] = { first = 0x11150, last = 0x1117F, description = "Mahajani" },
+ ["mahjongtiles"] = { first = 0x1F000, last = 0x1F02F, description = "Mahjong Tiles" },
+ ["makasar"] = { first = 0x11EE0, last = 0x11EFF, description = "Makasar" },
+ ["malayalam"] = { first = 0x00D00, last = 0x00D7F, otf="mlym", description = "Malayalam" },
+ ["mandaic"] = { first = 0x00840, last = 0x0085F, otf="mand", description = "Mandaic" },
+ ["manichaean"] = { first = 0x10AC0, last = 0x10AFF, description = "Manichaean" },
+ ["marchen"] = { first = 0x11C70, last = 0x11CBF, description = "Marchen" },
+ ["masaramgondi"] = { first = 0x11D00, last = 0x11D5F, description = "Masaram Gondi" },
+ ["mathematicalalphanumericsymbols"] = { first = 0x1D400, last = 0x1D7FF, math = true, description = "Mathematical Alphanumeric Symbols" },
+ ["mathematicaloperators"] = { first = 0x02200, last = 0x022FF, math = true, description = "Mathematical Operators" },
+ ["mayannumerals"] = { first = 0x1D2E0, last = 0x1D2FF, description = "Mayan Numerals" },
+ ["medefaidrin"] = { first = 0x16E40, last = 0x16E9F, description = "Medefaidrin" },
+ ["meeteimayek"] = { first = 0x0ABC0, last = 0x0ABFF, description = "Meetei Mayek" },
+ ["meeteimayekextensions"] = { first = 0x0AAE0, last = 0x0AAFF, description = "Meetei Mayek Extensions" },
+ ["mendekikakui"] = { first = 0x1E800, last = 0x1E8DF, description = "Mende Kikakui" },
+ ["meroiticcursive"] = { first = 0x109A0, last = 0x109FF, description = "Meroitic Cursive" },
+ ["meroitichieroglyphs"] = { first = 0x10980, last = 0x1099F, description = "Meroitic Hieroglyphs" },
+ ["miao"] = { first = 0x16F00, last = 0x16F9F, description = "Miao" },
+ ["miscellaneousmathematicalsymbolsa"] = { first = 0x027C0, last = 0x027EF, math = true, description = "Miscellaneous Mathematical Symbols-A" },
+ ["miscellaneousmathematicalsymbolsb"] = { first = 0x02980, last = 0x029FF, math = true, description = "Miscellaneous Mathematical Symbols-B" },
+ ["miscellaneoussymbols"] = { first = 0x02600, last = 0x026FF, math = true, description = "Miscellaneous Symbols" },
+ ["miscellaneoussymbolsandarrows"] = { first = 0x02B00, last = 0x02BFF, math = true, description = "Miscellaneous Symbols and Arrows" },
+ ["miscellaneoussymbolsandpictographs"] = { first = 0x1F300, last = 0x1F5FF, description = "Miscellaneous Symbols and Pictographs" },
+ ["miscellaneoustechnical"] = { first = 0x02300, last = 0x023FF, math = true, description = "Miscellaneous Technical" },
+ ["modi"] = { first = 0x11600, last = 0x1165F, description = "Modi" },
+ ["modifiertoneletters"] = { first = 0x0A700, last = 0x0A71F, description = "Modifier Tone Letters" },
+ ["mongolian"] = { first = 0x01800, last = 0x018AF, otf="mong", description = "Mongolian" },
+ ["mongoliansupplement"] = { first = 0x11660, last = 0x1167F, description = "Mongolian Supplement" },
+ ["mro"] = { first = 0x16A40, last = 0x16A6F, description = "Mro" },
+ ["multani"] = { first = 0x11280, last = 0x112AF, description = "Multani" },
+ ["musicalsymbols"] = { first = 0x1D100, last = 0x1D1FF, otf="musc", description = "Musical Symbols" },
+ ["myanmar"] = { first = 0x01000, last = 0x0109F, otf="mymr", description = "Myanmar" },
+ ["myanmarextendeda"] = { first = 0x0AA60, last = 0x0AA7F, description = "Myanmar Extended-A" },
+ ["myanmarextendedb"] = { first = 0x0A9E0, last = 0x0A9FF, description = "Myanmar Extended-B" },
+ ["nabataean"] = { first = 0x10880, last = 0x108AF, description = "Nabataean" },
+ ["nagmundari"] = { first = 0x1E4D0, last = 0x1E4FF, description = "Nag Mundari" },
+ ["nandinagari"] = { first = 0x119A0, last = 0x119FF, description = "Nandinagari" },
+ ["newa"] = { first = 0x11400, last = 0x1147F, description = "Newa" },
+ ["newtailue"] = { first = 0x01980, last = 0x019DF, description = "New Tai Lue" },
+ ["nko"] = { first = 0x007C0, last = 0x007FF, otf="nko", description = "NKo" },
+ ["numberforms"] = { first = 0x02150, last = 0x0218F, description = "Number Forms" },
+ ["nushu"] = { first = 0x1B170, last = 0x1B2FF, description = "Nushu" },
+ ["nyiakengpuachuehmong"] = { first = 0x1E100, last = 0x1E14F, description = "Nyiakeng Puachue Hmong" },
+ ["ogham"] = { first = 0x01680, last = 0x0169F, otf="ogam", description = "Ogham" },
+ ["olchiki"] = { first = 0x01C50, last = 0x01C7F, description = "Ol Chiki" },
+ ["oldhungarian"] = { first = 0x10C80, last = 0x10CFF, description = "Old Hungarian" },
+ ["olditalic"] = { first = 0x10300, last = 0x1032F, otf="ital", description = "Old Italic" },
+ ["oldnortharabian"] = { first = 0x10A80, last = 0x10A9F, description = "Old North Arabian" },
+ ["oldpermic"] = { first = 0x10350, last = 0x1037F, description = "Old Permic" },
+ ["oldpersian"] = { first = 0x103A0, last = 0x103DF, otf="xpeo", description = "Old Persian" },
+ ["oldsogdian"] = { first = 0x10F00, last = 0x10F2F, description = "Old Sogdian" },
+ ["oldsoutharabian"] = { first = 0x10A60, last = 0x10A7F, description = "Old South Arabian" },
+ ["oldturkic"] = { first = 0x10C00, last = 0x10C4F, description = "Old Turkic" },
+ ["olduyghur"] = { first = 0x10F70, last = 0x10FAF, description = "Old Uyghur" },
+ ["opticalcharacterrecognition"] = { first = 0x02440, last = 0x0245F, description = "Optical Character Recognition" },
+ ["oriya"] = { first = 0x00B00, last = 0x00B7F, otf="orya", description = "Oriya" },
+ ["ornamentaldingbats"] = { first = 0x1F650, last = 0x1F67F, description = "Ornamental Dingbats" },
+ ["osage"] = { first = 0x104B0, last = 0x104FF, description = "Osage" },
+ ["osmanya"] = { first = 0x10480, last = 0x104AF, otf="osma", description = "Osmanya" },
+ ["ottomansiyaqnumbers"] = { first = 0x1ED00, last = 0x1ED4F, description = "Ottoman Siyaq Numbers" },
+ ["pahawhhmong"] = { first = 0x16B00, last = 0x16B8F, description = "Pahawh Hmong" },
+ ["palmyrene"] = { first = 0x10860, last = 0x1087F, description = "Palmyrene" },
+ ["paucinhau"] = { first = 0x11AC0, last = 0x11AFF, description = "Pau Cin Hau" },
+ ["phagspa"] = { first = 0x0A840, last = 0x0A87F, otf="phag", description = "Phags-pa" },
+ ["phaistosdisc"] = { first = 0x101D0, last = 0x101FF, description = "Phaistos Disc" },
+ ["phoenician"] = { first = 0x10900, last = 0x1091F, otf="phnx", description = "Phoenician" },
+ ["phoneticextensions"] = { first = 0x01D00, last = 0x01D7F, description = "Phonetic Extensions" },
+ ["phoneticextensionssupplement"] = { first = 0x01D80, last = 0x01DBF, description = "Phonetic Extensions Supplement" },
+ ["playingcards"] = { first = 0x1F0A0, last = 0x1F0FF, description = "Playing Cards" },
+ ["privateusearea"] = { first = 0x0E000, last = 0x0F8FF, description = "Private Use Area" },
+ ["psalterpahlavi"] = { first = 0x10B80, last = 0x10BAF, description = "Psalter Pahlavi" },
+ ["rejang"] = { first = 0x0A930, last = 0x0A95F, description = "Rejang" },
+ ["ruminumeralsymbols"] = { first = 0x10E60, last = 0x10E7F, description = "Rumi Numeral Symbols" },
+ ["runic"] = { first = 0x016A0, last = 0x016FF, otf="runr", description = "Runic" },
+ ["samaritan"] = { first = 0x00800, last = 0x0083F, description = "Samaritan" },
+ ["saurashtra"] = { first = 0x0A880, last = 0x0A8DF, description = "Saurashtra" },
+ ["sharada"] = { first = 0x11180, last = 0x111DF, description = "Sharada" },
+ ["shavian"] = { first = 0x10450, last = 0x1047F, otf="shaw", description = "Shavian" },
+ ["shorthandformatcontrols"] = { first = 0x1BCA0, last = 0x1BCAF, description = "Shorthand Format Controls" },
+ ["siddham"] = { first = 0x11580, last = 0x115FF, description = "Siddham" },
+ ["sinhala"] = { first = 0x00D80, last = 0x00DFF, otf="sinh", description = "Sinhala" },
+ ["sinhalaarchaicnumbers"] = { first = 0x111E0, last = 0x111FF, description = "Sinhala Archaic Numbers" },
+ ["smallformvariants"] = { first = 0x0FE50, last = 0x0FE6F, description = "Small Form Variants" },
+ ["smallkanaextension"] = { first = 0x1B130, last = 0x1B16F, description = "Small Kana Extension" },
+ ["sogdian"] = { first = 0x10F30, last = 0x10F6F, description = "Sogdian" },
+ ["sorasompeng"] = { first = 0x110D0, last = 0x110FF, description = "Sora Sompeng" },
+ ["soyombo"] = { first = 0x11A50, last = 0x11AAF, description = "Soyombo" },
+ ["spacingmodifierletters"] = { first = 0x002B0, last = 0x002FF, description = "Spacing Modifier Letters" },
+ ["specials"] = { first = 0x0FFF0, last = 0x0FFFF, description = "Specials" },
+ ["sundanese"] = { first = 0x01B80, last = 0x01BBF, description = "Sundanese" },
+ ["sundanesesupplement"] = { first = 0x01CC0, last = 0x01CCF, description = "Sundanese Supplement" },
+ ["superscriptsandsubscripts"] = { first = 0x02070, last = 0x0209F, description = "Superscripts and Subscripts" },
+ ["supplementalarrowsa"] = { first = 0x027F0, last = 0x027FF, math = true, description = "Supplemental Arrows-A" },
+ ["supplementalarrowsb"] = { first = 0x02900, last = 0x0297F, math = true, description = "Supplemental Arrows-B" },
+ ["supplementalarrowsc"] = { first = 0x1F800, last = 0x1F8FF, math = true, description = "Supplemental Arrows-C" },
+ ["supplementalmathematicaloperators"] = { first = 0x02A00, last = 0x02AFF, math = true, description = "Supplemental Mathematical Operators" },
+ ["supplementalpunctuation"] = { first = 0x02E00, last = 0x02E7F, description = "Supplemental Punctuation" },
+ ["supplementalsymbolsandpictographs"] = { first = 0x1F900, last = 0x1F9FF, description = "Supplemental Symbols and Pictographs" },
+ ["supplementaryprivateuseareaa"] = { first = 0xF0000, last = 0xFFFFF, description = "Supplementary Private Use Area-A" },
+ ["supplementaryprivateuseareab"] = { first = 0x100000,last = 0x10FFFF, description = "Supplementary Private Use Area-B" },
+ ["suttonsignwriting"] = { first = 0x1D800, last = 0x1DAAF, description = "Sutton SignWriting" },
+ ["sylotinagri"] = { first = 0x0A800, last = 0x0A82F, otf="sylo", description = "Syloti Nagri" },
+ ["symbolsandpictographsextendeda"] = { first = 0x1FA70, last = 0x1FAFF, description = "Symbols and Pictographs Extended-A" },
+ ["symbolsforlegacycomputing"] = { first = 0x1FB00, last = 0x1FBFF, description = "Symbols for Legacy Computing" },
+ ["syriac"] = { first = 0x00700, last = 0x0074F, otf="syrc", description = "Syriac" },
+ ["syriacsupplement"] = { first = 0x00860, last = 0x0086F, description = "Syriac Supplement" },
+ ["tagalog"] = { first = 0x01700, last = 0x0171F, otf="tglg", description = "Tagalog" },
+ ["tagbanwa"] = { first = 0x01760, last = 0x0177F, otf="tagb", description = "Tagbanwa" },
+ ["tags"] = { first = 0xE0000, last = 0xE007F, description = "Tags" },
+ ["taile"] = { first = 0x01950, last = 0x0197F, otf="tale", description = "Tai Le" },
+ ["taitham"] = { first = 0x01A20, last = 0x01AAF, description = "Tai Tham" },
+ ["taiviet"] = { first = 0x0AA80, last = 0x0AADF, description = "Tai Viet" },
+ ["taixuanjingsymbols"] = { first = 0x1D300, last = 0x1D35F, description = "Tai Xuan Jing Symbols" },
+ ["takri"] = { first = 0x11680, last = 0x116CF, description = "Takri" },
+ ["tamil"] = { first = 0x00B80, last = 0x00BFF, otf="taml", description = "Tamil" },
+ ["tamilsupplement"] = { first = 0x11FC0, last = 0x11FFF, description = "Tamil Supplement" },
+ ["tangut"] = { first = 0x17000, last = 0x187FF, description = "Tangut" },
+ ["tangutsupplement"] = { first = 0x18D00, last = 0x18D7F, description = "Tangut Supplement" },
+ ["tangutcomponents"] = { first = 0x18800, last = 0x18AFF, description = "Tangut Components" },
+ ["tangsa"] = { first = 0x16A70, last = 0x16ACF, description = "Tangsa" },
+ ["telugu"] = { first = 0x00C00, last = 0x00C7F, otf="telu", description = "Telugu" },
+ ["thaana"] = { first = 0x00780, last = 0x007BF, otf="thaa", description = "Thaana" },
+ ["thai"] = { first = 0x00E00, last = 0x00E7F, otf="thai", description = "Thai" },
+ ["tibetan"] = { first = 0x00F00, last = 0x00FFF, otf="tibt", description = "Tibetan" },
+ ["tifinagh"] = { first = 0x02D30, last = 0x02D7F, otf="tfng", description = "Tifinagh" },
+ ["tirhuta"] = { first = 0x11480, last = 0x114DF, description = "Tirhuta" },
+ ["toto"] = { first = 0x1E290, last = 0x1E2BF, description = "Toto" },
+ ["transportandmapsymbols"] = { first = 0x1F680, last = 0x1F6FF, description = "Transport and Map Symbols" },
+ ["ugaritic"] = { first = 0x10380, last = 0x1039F, otf="ugar", description = "Ugaritic" },
+ ["unifiedcanadianaboriginalsyllabics"] = { first = 0x01400, last = 0x0167F, otf="cans", description = "Unified Canadian Aboriginal Syllabics" },
+ ["unifiedcanadianaboriginalsyllabicsextended"] = { first = 0x018B0, last = 0x018FF, description = "Unified Canadian Aboriginal Syllabics Extended" },
+ ["unifiedcanadianaboriginalsyllabicsextendeda"] = { first = 0x11AB0, last = 0x11ABF, description = "Unified Canadian Aboriginal Syllabics Extended-A" },
+ ["uppercasebold"] = { first = 0x1D400, last = 0x1D419, math = true },
+ ["uppercaseboldfraktur"] = { first = 0x1D56C, last = 0x1D585, math = true },
+ ["uppercasebolditalic"] = { first = 0x1D468, last = 0x1D481, math = true, italic = true },
+ ["uppercaseboldscript"] = { first = 0x1D4D0, last = 0x1D4E9, math = true, italic = true },
+ ["uppercasedoublestruck"] = { first = 0x1D538, last = 0x1D551, math = true }, -- gaps are filled in elsewhere
+ ["uppercasefraktur"] = { first = 0x1D504, last = 0x1D51D, math = true },
+ ["uppercasegreekbold"] = { first = 0x1D6A8, last = 0x1D6C1, math = true },
+ ["uppercasegreekbolditalic"] = { first = 0x1D71C, last = 0x1D735, math = true, italic = true },
+ ["uppercasegreekitalic"] = { first = 0x1D6E2, last = 0x1D6FB, math = true, italic = true },
+ ["uppercasegreeknormal"] = { first = 0x00391, last = 0x003AA, math = true },
+ ["uppercasegreeksansserifbold"] = { first = 0x1D756, last = 0x1D76F, math = true },
+ ["uppercasegreeksansserifbolditalic"] = { first = 0x1D790, last = 0x1D7A9, math = true, italic = true },
+ ["uppercaseitalic"] = { first = 0x1D434, last = 0x1D44D, math = true, italic = true },
+ ["uppercasemonospace"] = { first = 0x1D670, last = 0x1D689, math = true },
+ ["uppercasenormal"] = { first = 0x00041, last = 0x0005A, math = true },
+ ["uppercasesansserifbold"] = { first = 0x1D5D4, last = 0x1D5ED, math = true },
+ ["uppercasesansserifbolditalic"] = { first = 0x1D63C, last = 0x1D655, math = true, italic = true },
+ ["uppercasesansserifitalic"] = { first = 0x1D608, last = 0x1D621, math = true, italic = true },
+ ["uppercasesansserifnormal"] = { first = 0x1D5A0, last = 0x1D5B9, math = true },
+ ["uppercasescript"] = { first = 0x1D49C, last = 0x1D4B5, math = true, italic = true },
+ ["vai"] = { first = 0x0A500, last = 0x0A63F, description = "Vai" },
+ ["variationselectors"] = { first = 0x0FE00, last = 0x0FE0F, description = "Variation Selectors" },
+ ["variationselectorssupplement"] = { first = 0xE0100, last = 0xE01EF, description = "Variation Selectors Supplement" },
+ ["vedicextensions"] = { first = 0x01CD0, last = 0x01CFF, description = "Vedic Extensions" },
+ ["verticalforms"] = { first = 0x0FE10, last = 0x0FE1F, description = "Vertical Forms" },
+ ["vithkuqi"] = { first = 0x10570, last = 0x105BF, description = "Vithkuqi" },
+ ["wancho"] = { first = 0x1E2C0, last = 0x1E2FF, description = "Wancho" },
+ ["warangciti"] = { first = 0x118A0, last = 0x118FF, description = "Warang Citi" },
+ ["yezidi"] = { first = 0x10E80, last = 0x10EBF, description = "Yezidi" },
+ ["yijinghexagramsymbols"] = { first = 0x04DC0, last = 0x04DFF, otf="yi", description = "Yijing Hexagram Symbols" },
+ ["yiradicals"] = { first = 0x0A490, last = 0x0A4CF, otf="yi", description = "Yi Radicals" },
+ ["yisyllables"] = { first = 0x0A000, last = 0x0A48F, otf="yi", description = "Yi Syllables" },
+ ["zanabazarsquare"] = { first = 0x11A00, last = 0x11A4F, description = "Zanabazar Square" },
+ ["znamennymusicalnotation"] = { first = 0x1CF00, last = 0x1CFCF, description = "Znamenny Musical Notation" },
+
+ -- we need this early on:
+
+ ["lowercasecalligraphic"] = { first = 0x100000, last = 0x100019, math = true },
+ ["uppercasecalligraphic"] = { first = 0x100020, last = 0x100039, math = true },
+ ["lowercaseboldcalligraphic"] = { first = 0x100040, last = 0x100059, math = true },
+ ["uppercaseboldcalligraphic"] = { first = 0x100060, last = 0x100079, math = true },
+ -- ["lowercasesansgreek"] = { first = 0x100040, last = 0x100059, math = true }, -- reserved for future use
+ -- ["uppercasesansgreek"] = { first = 0x100060, last = 0x100079, math = true }, -- reserved for future use
+ -- ["lowercaseitalicsansgreek"] = { first = 0x100080, last = 0x100099, math = true }, -- reserved for future use
+ -- ["uppercaseitalicsansgreek"] = { first = 0x1000A0, last = 0x1000B9, math = true }, -- reserved for future use
+ -- ["lowercaseblackboarditalic"] = { first = 0x1000C0, last = 0x1000D9, math = true }, -- reserved for future use
+ -- ["uppercaseblackboarditalic"] = { first = 0x1000E0, last = 0x1000F9, math = true }, -- reserved for future use
}
-- moved from math-act.lua to here:
@@ -769,10 +809,27 @@ local is_punctuation = allocate ( tohash {
"pc", "pd", "ps", "pe", "pi", "pf", "po",
} )
+local is_hyphenator = allocate ( tohash {
+ "pd",
+} )
+
local is_symbol = allocate ( tohash {
"sm", "sc", "sk", "so",
} )
+local can_have_space = allocate ( tohash {
+ "lu", "ll", "lt", "lm", "lo", -- letters
+ -- "mn", "mc", "me", -- marks
+ "nd", "nl", "no", -- numbers
+ "ps", "pi", -- initial
+ -- "pe", "pf", -- final
+ -- "pc", "pd", "po", -- punctuation
+ "sm", "sc", "sk", "so", -- symbols
+ -- "zs", "zl", "zp", -- separators
+ -- "cc", "cf", "cs", "co", "cn", -- others
+} )
+
+
-- to be redone: store checked characters
characters.is_character = is_character
@@ -781,7 +838,9 @@ characters.is_command = is_command
characters.is_spacing = is_spacing
characters.is_mark = is_mark
characters.is_punctuation = is_punctuation
+characters.is_hyphenator = is_hyphenator
characters.is_symbol = is_symbol
+characters.can_have_space = can_have_space
local mti = function(t,k)
if type(k) == "number" then
@@ -792,11 +851,14 @@ local mti = function(t,k)
end
end
-setmetatableindex(characters.is_character, mti)
-setmetatableindex(characters.is_letter, mti)
-setmetatableindex(characters.is_command, mti)
-setmetatableindex(characters.is_spacing, mti)
-setmetatableindex(characters.is_punctuation,mti)
+setmetatableindex(characters.is_character, mti)
+setmetatableindex(characters.is_letter, mti)
+setmetatableindex(characters.is_command, mti)
+setmetatableindex(characters.is_spacing, mti)
+setmetatableindex(characters.is_punctuation, mti)
+setmetatableindex(characters.is_hyphenator, mti)
+setmetatableindex(characters.is_symbol, mti)
+setmetatableindex(characters.can_have_space, mti)
-- todo: also define callers for the above
@@ -926,7 +988,7 @@ if not characters.fallbacks then
end
-if storage then
+if storage then -- in case we extend
storage.register("characters/fallbacks", characters.fallbacks, "characters.fallbacks") -- accents and such
end
@@ -1218,7 +1280,7 @@ if not characters.splits then
local kind = specials[1]
if kind == "compat" then
compat[unicode] = { unpack(specials,2) }
- elseif kind == "char" then
+ elseif kind == "char" or kind == "with" then -- width added
char [unicode] = { unpack(specials,2) }
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/char-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/char-ini.mkiv
index aa3d31ba831..384ae983f7f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/char-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/char-ini.mkiv
@@ -17,6 +17,7 @@
\registerctxluafile{char-map}{} % maybe we will load this someplace else
\registerctxluafile{char-tex}{}
\registerctxluafile{char-ent}{}
+\registerctxluafile{char-scr}{}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/mkiv/char-scr.lua b/Master/texmf-dist/tex/context/base/mkiv/char-scr.lua
new file mode 100644
index 00000000000..69213381462
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/char-scr.lua
@@ -0,0 +1,161 @@
+if not modules then modules = { } end modules ['char-scr'] = {
+ version = 1.001,
+ comment = "companion to char-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local tonumber = tonumber
+
+characters.scripthash = { -- we could put these presets in char-def.lua
+ --
+ -- half width opening parenthesis
+ --
+ [0x0028] = "half_width_open",
+ [0x005B] = "half_width_open",
+ [0x007B] = "half_width_open",
+ [0x2018] = "half_width_open", -- ‘
+ [0x201C] = "half_width_open", -- “
+ --
+ -- full width opening parenthesis
+ --
+ [0x3008] = "full_width_open", -- 〈 Left book quote
+ [0x300A] = "full_width_open", -- 《 Left double book quote
+ [0x300C] = "full_width_open", -- 「 left quote
+ [0x300E] = "full_width_open", -- 『 left double quote
+ [0x3010] = "full_width_open", -- 【 left double book quote
+ [0x3014] = "full_width_open", -- 〔 left book quote
+ [0x3016] = "full_width_open", --〖 left double book quote
+ [0x3018] = "full_width_open", -- left tortoise bracket
+ [0x301A] = "full_width_open", -- left square bracket
+ [0x301D] = "full_width_open", -- reverse double prime qm
+ [0xFF08] = "full_width_open", -- ( left parenthesis
+ [0xFF3B] = "full_width_open", -- [ left square brackets
+ [0xFF5B] = "full_width_open", -- { left curve bracket
+ --
+ -- half width closing parenthesis
+ --
+ [0x0029] = "half_width_close",
+ [0x005D] = "half_width_close",
+ [0x007D] = "half_width_close",
+ [0x2019] = "half_width_close", -- ’ right quote, right
+ [0x201D] = "half_width_close", -- ” right double quote
+ --
+ -- full width closing parenthesis
+ --
+ [0x3009] = "full_width_close", -- 〉 book quote
+ [0x300B] = "full_width_close", -- 》 double book quote
+ [0x300D] = "full_width_close", -- 」 right quote, right
+ [0x300F] = "full_width_close", -- 』 right double quote
+ [0x3011] = "full_width_close", -- 】 right double book quote
+ [0x3015] = "full_width_close", -- 〕 right book quote
+ [0x3017] = "full_width_close", -- 〗 right double book quote
+ [0x3019] = "full_width_close", -- right tortoise bracket
+ [0x301B] = "full_width_close", -- right square bracket
+ [0x301E] = "full_width_close", -- double prime qm
+ [0x301F] = "full_width_close", -- low double prime qm
+ [0xFF09] = "full_width_close", -- ) right parenthesis
+ [0xFF3D] = "full_width_close", -- ] right square brackets
+ [0xFF5D] = "full_width_close", -- } right curve brackets
+ --
+ [0xFF62] = "half_width_open", -- left corner bracket
+ [0xFF63] = "half_width_close", -- right corner bracket
+ --
+ -- vertical opening vertical
+ --
+ -- 0xFE35, 0xFE37, 0xFE39, 0xFE3B, 0xFE3D, 0xFE3F, 0xFE41, 0xFE43, 0xFE47,
+ --
+ -- vertical closing
+ --
+ -- 0xFE36, 0xFE38, 0xFE3A, 0xFE3C, 0xFE3E, 0xFE40, 0xFE42, 0xFE44, 0xFE48,
+ --
+ -- half width opening punctuation
+ --
+ -- <empty>
+ --
+ -- full width opening punctuation
+ --
+ -- 0x2236, -- ∶
+ -- 0xFF0C, -- ,
+ --
+ -- half width closing punctuation_hw
+ --
+ [0x0021] = "half_width_close", -- !
+ [0x002C] = "half_width_close", -- ,
+ [0x002E] = "half_width_close", -- .
+ [0x003A] = "half_width_close", -- :
+ [0x003B] = "half_width_close", -- ;
+ [0x003F] = "half_width_close", -- ?
+ [0xFF61] = "half_width_close", -- hw full stop
+ --
+ -- full width closing punctuation
+ --
+ [0x3001] = "full_width_close", -- 、
+ [0x3002] = "full_width_close", -- 。
+ [0xFF0C] = "full_width_close", -- ,
+ [0xFF0E] = "full_width_close", --
+ --
+ -- depends on font
+ --
+ [0xFF01] = "full_width_close", -- !
+ [0xFF1F] = "full_width_close", -- ?
+ --
+ [0xFF1A] = "full_width_punct", -- :
+ [0xFF1B] = "full_width_punct", -- ;
+ --
+ -- non starter
+ --
+ [0x3005] = "non_starter", [0x3041] = "non_starter", [0x3043] = "non_starter", [0x3045] = "non_starter", [0x3047] = "non_starter",
+ [0x3049] = "non_starter", [0x3063] = "non_starter", [0x3083] = "non_starter", [0x3085] = "non_starter", [0x3087] = "non_starter",
+ [0x308E] = "non_starter", [0x3095] = "non_starter", [0x3096] = "non_starter", [0x309B] = "non_starter", [0x309C] = "non_starter",
+ [0x309D] = "non_starter", [0x309E] = "non_starter", [0x30A0] = "non_starter", [0x30A1] = "non_starter", [0x30A3] = "non_starter",
+ [0x30A5] = "non_starter", [0x30A7] = "non_starter", [0x30A9] = "non_starter", [0x30C3] = "non_starter", [0x30E3] = "non_starter",
+ [0x30E5] = "non_starter", [0x30E7] = "non_starter", [0x30EE] = "non_starter", [0x30F5] = "non_starter", [0x30F6] = "non_starter",
+ [0x30FC] = "non_starter", [0x30FD] = "non_starter", [0x30FE] = "non_starter", [0x31F0] = "non_starter", [0x31F1] = "non_starter",
+ [0x31F2] = "non_starter", [0x31F3] = "non_starter", [0x31F4] = "non_starter", [0x31F5] = "non_starter", [0x31F6] = "non_starter",
+ [0x31F7] = "non_starter", [0x31F8] = "non_starter", [0x31F9] = "non_starter", [0x31FA] = "non_starter", [0x31FB] = "non_starter",
+ [0x31FC] = "non_starter", [0x31FD] = "non_starter", [0x31FE] = "non_starter", [0x31FF] = "non_starter",
+ --
+ [0x301C] = "non_starter", [0x303B] = "non_starter", [0x303C] = "non_starter", [0x309B] = "non_starter", [0x30FB] = "non_starter",
+ [0x30FE] = "non_starter",
+ -- hyphenation
+ --
+ [0x2026] = "hyphen", -- … ellipsis
+ [0x2014] = "hyphen", -- — hyphen
+ --
+ [0x1361] = "ethiopic_word",
+ [0x1362] = "ethiopic_sentence",
+ --
+ -- tibetan:
+ --
+ [0x0F0B] = "breaking_tsheg",
+ [0x0F0C] = "nonbreaking_tsheg",
+
+}
+
+table.setmetatableindex(characters.scripthash, function(t,k)
+ local v
+ if not tonumber(k) then v = false
+ elseif (k >= 0x03040 and k <= 0x030FF)
+ or (k >= 0x031F0 and k <= 0x031FF)
+ or (k >= 0x032D0 and k <= 0x032FE)
+ or (k >= 0x0FF00 and k <= 0x0FFEF) then v = "katakana"
+ elseif (k >= 0x03400 and k <= 0x04DFF)
+ or (k >= 0x04E00 and k <= 0x09FFF)
+ or (k >= 0x0F900 and k <= 0x0FAFF)
+ or (k >= 0x20000 and k <= 0x2A6DF)
+ or (k >= 0x2F800 and k <= 0x2FA1F) then v = "chinese"
+ elseif (k >= 0x0AC00 and k <= 0x0D7A3) then v = "korean"
+ elseif (k >= 0x01100 and k <= 0x0115F) then v = "jamo_initial"
+ elseif (k >= 0x01160 and k <= 0x011A7) then v = "jamo_medial"
+ elseif (k >= 0x011A8 and k <= 0x011FF) then v = "jamo_final"
+ elseif (k >= 0x01200 and k <= 0x0139F) then v = "ethiopic_syllable"
+ elseif (k >= 0x00F00 and k <= 0x00FFF) then v = "tibetan"
+ else v = false
+ end
+ t[k] = v
+ return v
+end)
+
+-- storage.register("characters/scripthash", hash, "characters.scripthash")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/char-utf.lua b/Master/texmf-dist/tex/context/base/mkiv/char-utf.lua
index 7d8ca219b63..e230370b5d9 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/char-utf.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/char-utf.lua
@@ -148,7 +148,7 @@ else
if vs then
local kind = vs[1]
local size = #vs
- if kind == "char" then
+ if kind == "char" or char == "with" then -- with added
if size == 3 then
local one = vs[2]
local two = vs[3]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cldf-bas.lua b/Master/texmf-dist/tex/context/base/mkiv/cldf-bas.lua
index ac17a9381f1..5853f805708 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cldf-bas.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/cldf-bas.lua
@@ -243,4 +243,3 @@ do
end
end
-
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cldf-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/cldf-ini.lua
index bb5a058a530..0bdc60379d4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cldf-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/cldf-ini.lua
@@ -20,16 +20,8 @@ if not modules then modules = { } end modules ['cldf-ini'] = {
-- more efficient approach is stable enough to move the original code to the obsolete
-- module.
--
--- to be considered:
---
--- 0.528 local foo = tex.ctxcatcodes
--- 0.651 local foo = getcount("ctxcatcodes")
--- 0.408 local foo = getcount(ctxcatcodes) -- local ctxcatcodes = tex.iscount("ctxcatcodes")
-
-- maybe:  (escape) or 0x2061 (apply function) or 0x2394 (software function ⎔) (old)
-- note : tex.print == line with endlinechar appended
--- todo : context("%bold{total: }%s",total)
--- todo : context.documentvariable("title")
--
-- During the crited project we ran into the situation that luajittex was 10-20 times
-- slower that luatex ... after 3 days of testing and probing we finally figured out that
@@ -98,16 +90,21 @@ local texsprint = tex.sprint -- just appended (no space,eol treatment
local texprint = tex.print -- each arg a separate line (not last in directlua)
----- texwrite = tex.write -- all 'space' and 'character'
-local isnode = node.is_node
+-- In this stage we don't yet have nodes populated so we access the library directly ...
+
+local isnode = node.isnode or node.is_node
+local copynodelist = node.copylist or node.copy_list
local writenode = node.write
-local copynodelist = node.copy_list
local tonut = node.direct.todirect
local tonode = node.direct.tonode
-local istoken = token.is_token
local newtoken = token.new
local createtoken = token.create
-local setluatoken = token.set_lua
+
+local istoken = token.istoken or token.is_token
+local setluatoken = token.setlua or token.set_lua
+
+-- ... till here.
local isprintable = tex.isprintable or function(n)
return n and (type(n) == "string" or isnode(n) or istoken(n))
@@ -403,19 +400,22 @@ local registerscanner if CONTEXTLMTXMODE > 0 then
-- always permanent but we can consider to obey permanent==false
+ -- todo: make bitset instead of keys (nil is skipped anyway)
+
local function toflags(specification)
- local protected = specification.protected and "protected" -- or ""
+ local protected = specification.protected and "protected"
+ local untraced = specification.untraced and "untraced"
local usage = specification.usage
if usage == "value" then
- return "global", "value", "permanent", protected
+ return "global", "value", "permanent", "untraced", protected
elseif usage == "condition" then
- return "global", "conditional", "permanent", protected
+ return "global", "conditional", "permanent", "untraced", protected
elseif specification.frozen then
- return "global", "frozen", protected
+ return "global", "frozen", untraced, protected
elseif specification.permanent == false or specification.onlyonce then -- for now onlyonce here
- return "global", protected
+ return "global", untraced, protected
else
- return "global", "permanent", protected
+ return "global", "permanent", untraced, protected
end
end
@@ -425,6 +425,7 @@ local registerscanner if CONTEXTLMTXMODE > 0 then
storedscanners[name] = n
namesofscanners[n] = name
name = specification.public and name or (privatenamespace .. name)
+ -- print(name,n,toflags(specification))
setluatoken(name,n,toflags(specification))
end
@@ -577,6 +578,7 @@ local space = patterns.spacer
local spacing = newline * space^0
local content = lpegC((1-spacing)^1) -- texsprint
local emptyline = space^0 * newline^2 -- texprint("")
+ + newline * space^1 * newline^1
local endofline = space^0 * newline * space^0 -- texsprint(" ")
local simpleline = endofline * lpegP(-1) --
@@ -796,7 +798,7 @@ local function writer(parent,command,...) -- already optimized before call
flush(currentcatcodes,"}")
end
elseif typ == "number" then
- -- numbers never have funny catcodesz
+ -- numbers never have funny catcodes
flush(currentcatcodes,"{",ti,"}")
elseif typ == "table" then
local tn = #ti
@@ -850,7 +852,7 @@ local function writer(parent,command,...) -- already optimized before call
else
flush(currentcatcodes,"[",tj,"]")
end
- else -- is concat really faster than flushes here? probably needed anyway (print artifacts)
+ else
flush(currentcatcodes,"[")
for j=1,tn do
local tj = ti[j]
@@ -1138,10 +1140,12 @@ end)
-- The cmd names were synchronized with the normal call cmd names.
-local luacalls = { -- luatex luametatex
- lua_expandable_call = true, -- normal
- lua_call = true, -- protected normal
- lua_protected_call = true, -- protected
+local luacalls = {
+ lua_function_call = true,
+ lua_protected_call = true,
+ lua_value = true,
+ lua_local_call = true,
+ lua_call = true,
}
local function userdata(argument)
@@ -1153,7 +1157,7 @@ local function userdata(argument)
-- return formatters["<<\\%s>>"](csname)
return formatters["\\%s"](csname)
end
- if luacall[argument.cmdname] then
+ if luacalls[argument.cmdname] then
return "<<function>>" -- argument.mode
end
return "<<token>>"
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua b/Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua
index 7a1c813014b..479606f838b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/cldf-ver.lua
@@ -68,8 +68,8 @@ local function flush(s,inline)
context.resetbuffer(t_buffer)
end
-local function t_tocontext(t)
- local s = table.serialize(t)
+local function t_tocontext(t,s)
+ local s = table.serialize(t,s)
context(function() flush(s,false) end)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/colo-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/colo-ini.lua
index 5bfe4635c18..7a53ca71fb1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/colo-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/colo-ini.lua
@@ -43,6 +43,7 @@ local texsetattribute = tex.setattribute
local texgetattribute = tex.getattribute
local texgetcount = tex.getcount
local texgettoks = tex.gettoks
+local texiscount = tex.iscount
local texgetmacro = tokens.getters.macro
local a_color = attributes.private('color')
@@ -82,8 +83,19 @@ local function synccolorclone(name,clone)
valid[name] = clone
end
-local function synccolorcount(name,n)
- counts[name] = n
+local synccolorcount if CONTEXTLMTXMODE > 0 then
+-- local prefix = texgetmacro("??colornumber")
+-- for k, v in next, counts do
+-- counts[k] = texiscount(prefix..k)
+-- print(k,v,counts[k])
+-- end
+ synccolorcount = function(name,n)
+ counts[name] = texiscount(n)
+ end
+else
+ synccolorcount = function(name,n)
+ counts[name] = n
+ end
end
local stack = { }
@@ -650,7 +662,7 @@ local function definemixcolor(makecolor,name,fractions,cs,global,freeze)
if not v then
return
end
- values[i] = v
+ colorvalues[i] = v
end
if #values > 0 then
csone = values[1][1]
@@ -877,7 +889,7 @@ local function formatcolor(ca,separator)
end
return concat(c,separator)
else
- return format("%0.3f",0)
+ return "0.000" -- format("%0.3f",0)
end
end
@@ -1139,7 +1151,7 @@ local setcolormodel = colors.setmodel
implement {
name = "synccolorcount",
actions = synccolorcount,
- arguments = { "string", "integer" }
+ arguments = { "string", CONTEXTLMTXMODE > 0 and "string" or "integer" }
}
implement {
@@ -1353,3 +1365,62 @@ implement {
context((s < 0 and 0) or (s > 1 and 1) or s)
end
}
+
+-- This is a playground for MS and HH:
+--
+-- Required Contrast Ratios for WCAG Conformance (how about small text)
+--
+-- Level AA Text 4.5:1 for regular text and 3.0:1 for large text (18pt or 14pt/bold)
+-- Level AAA Text 7.0:1 for regular text and 4.5:1 for large text (18pt or 14pt/bold)
+--
+-- Level AA Non-Text 3.0:1 for user interface components and graphics
+
+do
+
+ -- https://www.w3.org/TR/WCAG21/#dfn-contrast-ratio
+ -- https://www.w3.org/TR/WCAG21/#dfn-relative-luminance
+
+ local function crap(v)
+ return v <= 0.03928 and v/12.92 or (v+0.055/1.055)^2.4
+ end
+
+ local function luminance(color)
+ color = colorvalues[color]
+ if color then
+ return (0.2126 * crap(color[2]) + 0.7152 * crap(color[3]) + 0.0722 * crap(color[4])) + 0.05
+ end
+ end
+
+ local function formatluminance(color)
+ local l = luminance(color)
+ if l then
+ return format("%0.3f",l)
+ end
+ end
+
+ local function formatluminanceratio(one,two)
+ local one = luminance(one)
+ local two = luminance(two)
+ if one and two then
+ return format("%0.3f",one > two and one/two or two/one)
+ end
+ end
+
+ colors.formatluminance = formatluminance
+ colors.formatluminanceratio = formatluminanceratio
+
+ implement {
+ name = "formatluminance",
+ -- protected = true,
+ arguments = "integer",
+ actions = { formatluminance, context },
+ }
+
+ implement {
+ name = "formatluminanceratio",
+ -- protected = true,
+ arguments = { "integer", "integer" },
+ actions = { formatluminanceratio, context },
+ }
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cont-fil.mkiv b/Master/texmf-dist/tex/context/base/mkiv/cont-fil.mkiv
index edef8dbc82f..1d2a44b1ff0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cont-fil.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/cont-fil.mkiv
@@ -149,4 +149,6 @@
%definefilesynonym [set-13] [setups-proofing]
%definefilesynonym [set-15] [setups-generate]
+\definefilesynonym [newmml] [mathml]
+
\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cont-log.mkiv b/Master/texmf-dist/tex/context/base/mkiv/cont-log.mkiv
index a6cd1cc2fed..bcd276bdff5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cont-log.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/cont-log.mkiv
@@ -207,6 +207,7 @@
\unexpanded\def\pdfeTeX {pdfe-\wordboundary\TeX}
\unexpanded\def\luaTeX {lua\wordboundary\TeX}
\unexpanded\def\Lua {Lua}
+\unexpanded\def\LUA {\Lua}
\unexpanded\def\luajitTeX {lua\wordboundary jit\wordboundary\TeX}
\unexpanded\def\luametaTeX{lua\wordboundary meta\wordboundary\TeX}
%unexpanded\def\XeTeX {X\lower.5\exheight\hbox{\kern-.15\emwidth\mirror{E}}\kern-.1667\emwidth\TeX}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv b/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv
index 89ef1e6c3bd..2ff5bba1fbd 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/cont-new.mkiv
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2021.03.05 19:11}
+\newcontextversion{2023.02.23 21:26}
%D This file is loaded at runtime, thereby providing an excellent place for hacks,
%D patches, extensions and new features. There can be local overloads in cont-loc
diff --git a/Master/texmf-dist/tex/context/base/mkiv/cont-run.mkiv b/Master/texmf-dist/tex/context/base/mkiv/cont-run.mkiv
index 12c12e0d93a..764866a9e3f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/cont-run.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/cont-run.mkiv
@@ -53,7 +53,9 @@
\unexpanded\def\blocksynctexfile[#1]%
{\processcommacommand{#1}\synctexblockfilename}
-\def\continuewhenlmtxmode
+\let\continuewhenmkivmode\relax
+
+\unexpanded\def\continuewhenlmtxmode
{\starttext
\startTEXpage[\c!offset=2ex,\c!foregroundstyle=\tttf]%
This file needs \LuaMetaTeX\ and \ConTeXt\ \LMTX.%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/context-error.lmx b/Master/texmf-dist/tex/context/base/mkiv/context-error.lmx
index d1a758b050a..60579f4a0a6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/context-error.lmx
+++ b/Master/texmf-dist/tex/context/base/mkiv/context-error.lmx
@@ -51,9 +51,7 @@
</div></div>
<div id="bottom"><div id="bottom-one"><div id="bottom-two">
Job Name: <?lua p(environment.jobname) ?> &nbsp;&nbsp;&nbsp;
- ConTeXt Version: <?lua p(environment.version) ?> &nbsp;&nbsp;&nbsp;
- Real Page: <?lua p(tracers.cs('c:realpageno')) ?> &nbsp;&nbsp;&nbsp;
- Page: <?lua p(tracers.cs('c:pageno')) ?> &nbsp;&nbsp;&nbsp;
+ ConTeXt Version: <?lua p(environment.version) ?>
</div></div></div>
</body>
</html>
diff --git a/Master/texmf-dist/tex/context/base/mkiv/context-todo.tex b/Master/texmf-dist/tex/context/base/mkiv/context-todo.tex
index 6aa5bca08a8..e9345c4098c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/context-todo.tex
+++ b/Master/texmf-dist/tex/context/base/mkiv/context-todo.tex
@@ -169,6 +169,11 @@ concern \LUATEX\ have been removed from the agenda but some improvements in
\stopitem
\stopitemize
+% should be in lpdf namespace:
+%
+% ./grph-pat.lua 69: local l = new_literal(lpdf.patternstream(p,width,height))
+
+
\stopsubject
\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkiv/context.mkiv b/Master/texmf-dist/tex/context/base/mkiv/context.mkiv
index 49eb150497e..7a7e2e8d5c3 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/context.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/context.mkiv
@@ -11,6 +11,10 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D There is some residual code in \MKIV\ that results from the transition to \LMTX\
+%D but removeing it can have side effects due to oversights. There is no impact on
+%D performance to I leave at that.
+
% Here is some timing (2015-04-01) luajittex format generation:
%
% 2.6 sec : normal make
@@ -45,7 +49,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2021.03.05 19:11}
+\edef\contextversion{2023.02.23 21:26}
%D Kind of special:
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-con.lua b/Master/texmf-dist/tex/context/base/mkiv/core-con.lua
index 4bf1424bc02..f57eb6ef890 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/core-con.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/core-con.lua
@@ -17,7 +17,7 @@ slower but look nicer this way.</p>
--ldx]]--
local floor = math.floor
-local osdate, ostime = os.date, os.time
+local osdate, ostime, ostimezone = os.date, os.time, os.timezone
local concat, insert, reverse = table.concat, table.insert, table.reverse
local lower, upper, rep, match, gsub = string.lower, string.upper, string.rep, string.match, string.gsub
local utfchar, utfbyte = utf.char, utf.byte
@@ -127,7 +127,8 @@ local counters = allocate {
0xE050, 0xE051, 0xE052, 0xE053, 0xE054,
0xE055, 0xE056, 0xE057, 0xE058, 0xE059
},
- ['devangari'] = {
+ ['devanagari'] = {
+ -- ० १ २ ३ ४ ५ ६ ७ ८ ९
0x0966, 0x0967, 0x0968, 0x0969, 0x096A,
0x096B, 0x096C, 0x096D, 0x096E, 0x096F
},
@@ -197,7 +198,39 @@ local decimals = allocate {
['persian'] = {
["0"] = "۰", ["1"] = "۱", ["2"] = "۲", ["3"] = "۳", ["4"] = "۴",
["5"] = "۵", ["6"] = "۶", ["7"] = "۷", ["8"] = "۸", ["9"] = "۹",
- }
+ },
+ ['devanagari'] = {
+ ["0"] = "०", ["1"] = "१", ["2"] = "२", ["3"] = "३", ["4"] = "४",
+ ["5"] = "५", ["6"] = "६", ["7"] = "७", ["8"] = "८", ["9"] = "९",
+ },
+ ['malayalam'] = {
+ ["0"] = "൦", ["1"] = "൧", ["2"] = "൨", ["3"] = "൩", ["4"] = "൪",
+ ["5"] = "൫", ["6"] = "൬", ["7"] = "൭", ["8"] = "൮", ["9"] = "൯",
+ },
+ ['tamil'] = {
+ ["0"] = "௦", ["1"] = "௧", ["2"] = "௨", ["3"] = "௩", ["4"] = "௪",
+ ["5"] = "௫", ["6"] = "௬", ["7"] = "௭", ["8"] = "௮", ["9"] = "௯",
+ },
+ ['kannada'] = {
+ ["0"] = "೦", ["1"] = "೧", ["2"] = "೨", ["3"] = "೩", ["4"] = "೪",
+ ["5"] = "೫", ["6"] = "೬", ["7"] = "೭", ["8"] = "೮", ["9"] = "೯",
+ },
+ ['telugu'] = {
+ ["0"] = "౦", ["1"] = "౧", ["2"] = "౨", ["3"] = "౩", ["4"] = "౪",
+ ["5"] = "౫", ["6"] = "౬", ["7"] = "౭", ["8"] = "౮", ["9"] = "౯",
+ },
+ ['bengali'] = {
+ ["0"] = "০", ["1"] = "১", ["2"] = "২", ["3"] = "৩", ["4"] = "৪",
+ ["5"] = "৫", ["6"] = "৬", ["7"] = "৭", ["8"] = "৮", ["9"] = "৯",
+ },
+ ['gujarati'] = {
+ ["0"] = "૦", ["1"] = "૧", ["2"] = "૨", ["3"] = "૩", ["4"] = "૪",
+ ["5"] = "૫", ["6"] = "૬", ["7"] = "૭", ["8"] = "૮", ["9"] = "૯",
+ },
+ ['gurmurkhi'] = {
+ ["0"] = "੦", ["1"] = "੧", ["2"] = "੨", ["3"] = "੩", ["4"] = "੪",
+ ["5"] = "੫", ["6"] = "੬", ["7"] = "੭", ["8"] = "੮", ["9"] = "੯",
+ },
}
languages.decimals = decimals
@@ -1152,6 +1185,8 @@ local ordinals = {
french = function(n)
if n == 1 then
return "er"
+ else
+ return "e"
end
end,
}
@@ -1415,6 +1450,111 @@ data.es = data.spanish
-- print(translate(101))
-- print(translate(199))
+-- verbose swedish by Peter Kvillegard
+
+do
+
+ local words = {
+ [0] = "noll",
+ [1] = "ett",
+ [2] = "två",
+ [3] = "tre",
+ [4] = "fyra",
+ [5] = "fem",
+ [6] = "sex",
+ [7] = "sju",
+ [8] = "åtta",
+ [9] = "nio",
+ [10] = "tio",
+ [11] = "elva",
+ [12] = "tolv",
+ [13] = "tretton",
+ [14] = "fjorton",
+ [15] = "femton",
+ [16] = "sexton",
+ [17] = "sjutton",
+ [18] = "arton",
+ [19] = "nitton",
+ [20] = "tjugo",
+ [30] = "trettio",
+ [40] = "fyrtio",
+ [50] = "femtio",
+ [60] = "sextio",
+ [70] = "sjuttio",
+ [80] = "åttio",
+ [90] = "nittio",
+ [100] = "hundra",
+ [10^3] = "tusen",
+ [10^6] = "miljon",
+ [10^9] = "miljard",
+ [10^12] = "biljon",
+ [10^15] = "biljard",
+ }
+
+ local function translate(n,connector)
+ local w = words[n]
+ if w then
+ return w
+ else
+ local t = { }
+ local l = 0
+ -- group of three digits to words, e.g. 123 -> etthundratjugotre
+ local function triplets(n)
+ if floor(n/100) > 0 then
+ l = l + 1 ; t[l] = words[floor(n/100)]
+ l = l + 1 ; t[l] = words[100]
+ end
+ if n%100 > 20 then
+ l = l + 1 ; t[l] = words[n%100-n%10]
+ if n%10 > 0 then
+ l = l + 1 ; t[l] = words[n%10]
+ end
+ elseif n%100 > 0 then
+ l = l + 1 ; t[l] = words[n%100]
+ end
+ end
+ -- loops through 10^15,10^12,...10^3, extracting groups of three digits
+ -- to make words from, then adding names for order of magnitude
+ for i=15,3,-3 do
+ local triplet = floor(n/10^i)%10^3
+ if triplet > 0 then
+ -- grammar: "en" instead of "ett"
+ if i > 3 and triplet == 1 then
+ l = l + 1 ; t[l] = "en"
+ else
+ triplets(triplet)
+ end
+ -- grammar: plural form of "millions" etc
+ l = l + 1 ; t[l] = words[10^i]
+ if i > 3 and triplet > 1 then
+ l = l + 1 ; t[l] = "er"
+ end
+ end
+ end
+ -- add last group of three numbers (no word for magnitude)
+ n = n%1000
+ if n > 0 then
+ triplets(n)
+ end
+ t = concat(t," ")
+ -- grammar: spacing for numbers < 10^6 and repeated letters
+ if n < 10^6 then
+ t = gsub(t,"%stusen%s","tusen")
+ t = gsub(t,"etttusen","ettusen")
+ end
+ return t
+ end
+ end
+
+ data.swedish = {
+ words = words,
+ translate = translate,
+ }
+
+ data.sv = data.swedish
+
+end
+
-- verbose handler:
function converters.verbose.translate(n,language,connector)
@@ -1864,14 +2004,37 @@ implement {
actions = { formatters["U+%05X"], context },
}
-local n = R("09")^1 / tonumber
+-- totime might move to utilities.parsers as more general helper
+
+local n = R("09")^1 / tonumber -- lpegpatterns.digit
local p = Cf( Ct("")
- * Cg(Cc("year") * (n )) * P("-")^-1
- * Cg(Cc("month") * (n + Cc( 1))) * P("-")^-1
- * Cg(Cc("day") * (n + Cc( 1))) * whitespace^-1
- * Cg(Cc("hour") * (n + Cc( 0))) * P(":")^-1
- * Cg(Cc("min") * (n + Cc( 0)))
+ -- year is mandate, month and day are optional
+ * Cg(Cc("year") * n)
+ * S("-/")^-1
+ * Cg(Cc("month") * (n + Cc(1)))
+ * S("-/")^-1
+ * Cg(Cc("day") * (n + Cc(1)))
+ -- time is optional, hour and minuta are mandate, seconds are optional
+ * (
+ whitespace^0
+ * P("T")^-1
+ * whitespace^0
+ * Cg(Cc("hour") * n)
+ * P(":")^-1
+ * Cg(Cc("min") * n)
+ * P(":")^-1
+ * Cg(Cc("sec") * (n + Cc(0)))
+ )^-1
+ -- zone is optional, hour is mandate, minutes are optional
+ * (
+ whitespace^0
+ * Cg(Cc("tzs") * (P("+") * Cc(1) + P("-") * Cc(-1) + Cc(1)))
+ * whitespace^0
+ * Cg(Cc("tzh") * n)
+ * P(":")^-1
+ * Cg(Cc("tzm") * (n + Cc(0)))
+ )^-1
, rawset)
function converters.totime(s)
@@ -1880,11 +2043,19 @@ function converters.totime(s)
elseif type(s) == "table" then
return s
elseif type(s) == "string" then
- return lpegmatch(p,s)
+ local t = lpegmatch(p,s)
+ if not t then
+ logs.report("system","invalid time specification %a",s)
+ elseif t.tzh then
+ local localtzh, localtzm = ostimezone(true)
+ t.hour = t.hour + localtzh - t.tzs * t.tzh
+ t.min = t.min + localtzm - t.tzs * t.tzm
+ end
+ return t
end
local n = tonumber(s)
if n and n >= 0 then
- return date("*t",n)
+ return osdate("*t",n)
end
end
@@ -2043,3 +2214,9 @@ local function field(n) return context(osdate("*t")[n]) end
implement { name = "actualday", public = true, actions = function() field("day") end }
implement { name = "actualmonth", public = true, actions = function() field("month") end }
implement { name = "actualyear", public = true, actions = function() field("year") end }
+
+implement {
+ name = "uuid",
+ public = true,
+ actions = { os.uuid, context },
+}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/core-dat.lua b/Master/texmf-dist/tex/context/base/mkiv/core-dat.lua
index b497501598b..b58a801d964 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/core-dat.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/core-dat.lua
@@ -156,8 +156,29 @@ local function setdataset(settings)
end
end
-local function datasetvariable(name,tag,key)
- local t = collected[name]
+local cache = table.setmetatableindex(function(t,k)
+ local v = table.load(k..".tuc")
+ if v then
+ v = v.job
+ if v then
+ v = v.datasets
+ if v then
+ v = v.collected
+ end
+ end
+ end
+ if not v then
+ v = { }
+ if trace_datasets then
+ report_dataset("error: unknown dataset job %a",k)
+ end
+ end
+ t[k] = v
+ return v
+end)
+
+local function datasetvariable(name,tag,key,cache)
+ local t = (cache or collected)[name]
if t == nil then
if trace_datasets then
report_dataset("error: unknown dataset, name %a, tag %a, not passed to tex",name) -- no tag
@@ -181,6 +202,10 @@ local function datasetvariable(name,tag,key)
end
end
+local function datasetvariablefromjob(jobnname,name,tag,key)
+ datasetvariable(name,tag,key,cache[jobnname])
+end
+
implement {
name = "setdataset",
actions = setdataset,
@@ -200,6 +225,12 @@ implement {
arguments = "3 strings",
}
+implement {
+ name = "datasetvariablefromjob",
+ arguments = { "string", "string", "string", "string" },
+ actions = datasetvariablefromjob
+}
+
--[[ldx--
<p>We also provide an efficient variant for page states.</p>
--ldx]]--
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-bin.lua b/Master/texmf-dist/tex/context/base/mkiv/data-bin.lua
index 2bac901ea47..f455f7d9a9b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-bin.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-bin.lua
@@ -8,7 +8,8 @@ if not modules then modules = { } end modules ['data-bin'] = {
local resolvers = resolvers
local methodhandler = resolvers.methodhandler
-local notfound = resolvers.loaders.notfound
+
+local notfound = resolvers.loaders.notfound
function resolvers.findbinfile(filename,filetype)
return methodhandler('finders',filename,filetype)
@@ -28,3 +29,14 @@ function resolvers.loadbinfile(filename,filetype)
return notfound()
end
end
+
+local notfound = resolvers.cleaners.notfound
+
+function resolvers.cleanupbinfile(filename)
+ local fname = methodhandler('finders',filename)
+ if fname and fname ~= "" then
+ return methodhandler('cleaners',fname)
+ else
+ return notfound()
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-con.lua b/Master/texmf-dist/tex/context/base/mkiv/data-con.lua
index ec2251b3534..51e0ce85614 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-con.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-con.lua
@@ -56,7 +56,7 @@ local mt = {
__storage__ = true
}
-function containers.define(category, subcategory, version, enabled)
+function containers.define(category, subcategory, version, enabled, reload)
if category and subcategory then
local c = allocated[category]
if not c then
@@ -70,6 +70,7 @@ function containers.define(category, subcategory, version, enabled)
subcategory = subcategory,
storage = { },
enabled = enabled,
+ reload = reload,
version = version or math.pi, -- after all, this is TeX
trace = false,
-- writable = getwritablepath and getwritablepath (category,subcategory) or { "." },
@@ -97,7 +98,8 @@ end
function containers.read(container,name)
local storage = container.storage
- local stored = storage[name]
+ local reload = container.reload
+ local stored = not reload and storage[name]
if not stored and container.enabled and caches and containers.usecache then
stored = loaddatafromcache(container.readables,name,container.writable)
if stored and stored.cache_version == container.version then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-dec.lua b/Master/texmf-dist/tex/context/base/mkiv/data-dec.lua
new file mode 100644
index 00000000000..2a62b7dd91a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-dec.lua
@@ -0,0 +1,56 @@
+if not modules then modules = { } end modules ['data-dec'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local loaddata = io.loaddata
+local suffix = file.suffix
+local resultof = os.resultof
+
+local decompressors = { }
+resolvers.decompressors = decompressors
+
+local decompresslzma = nil
+local decompressgzip = gzip.decompress
+
+local function decompressed(k)
+ local s = suffix(k)
+ if s == "xz" then
+ if decompresslzma == nil then
+ local lzma = require(resolvers.findfile("libs-imp-lzma.lmt"))
+ if lzma then
+ local decompress = lzma.decompress
+ decompresslzma = function(name)
+ return decompress(loaddata(k))
+ end
+ else
+ decompresslzma = function(name)
+ -- todo: use a proper runner
+ return resultof("xz -d -c -q -q " .. name)
+ end
+ end
+ end
+ return decompresslzma(k)
+ elseif s == "gz" then
+ return decompressgzip(loaddata(k))
+ end
+end
+
+local cache = table.setmetatableindex(function(t,k)
+ local v = decompressed(k) or false
+ t[k] = v
+ return v
+end)
+
+decompressors.decompress = decompress
+
+function decompressors.register(filename)
+ return cache[filename]
+end
+
+function decompressors.unregister(filename)
+ cache[filename] = nil
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-env.lua b/Master/texmf-dist/tex/context/base/mkiv/data-env.lua
index 3b10d89b8b4..c9c11e49c04 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-env.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-env.lua
@@ -95,8 +95,8 @@ local relations = allocate { -- todo: handlers also here
names = { "mp" },
variable = 'MPINPUTS',
suffixes = CONTEXTLMTXMODE > 0
- and { 'mp', 'mpxl', 'mpvi', 'mpiv', 'mpii' }
- or { 'mp', 'mpvi', 'mpiv', 'mpii' },
+ and { 'mpxl', 'mpvi', 'mpiv', 'mpii', 'mp' }
+ or { 'mpvi', 'mpiv', 'mpii', 'mp' },
usertype = true,
},
tex = {
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-inp.lua b/Master/texmf-dist/tex/context/base/mkiv/data-inp.lua
index 97fb8904b91..569a66f4eb4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-inp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-inp.lua
@@ -15,11 +15,14 @@ local registermethod = resolvers.registermethod
local finders = allocate { helpers = { }, notfound = function() end }
local openers = allocate { helpers = { }, notfound = function() end }
local loaders = allocate { helpers = { }, notfound = function() return false, nil, 0 end }
+local tracers = allocate { helpers = { }, notfound = function() end }
registermethod("finders", finders, "uri")
registermethod("openers", openers, "uri")
registermethod("loaders", loaders, "uri")
+registermethod("tracers", tracers, "uri")
resolvers.finders = finders
resolvers.openers = openers
resolvers.loaders = loaders
+resolvers.tracers = tracers
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-out.lua b/Master/texmf-dist/tex/context/base/mkiv/data-out.lua
index 6cd02a22e2e..cc20f50b3f4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-out.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-out.lua
@@ -14,4 +14,8 @@ local registermethod = resolvers.registermethod
local savers = allocate { helpers = { } }
resolvers.savers = savers
-registermethod("savers", savers, "uri")
+local cleaners = allocate { helpers = { } }
+resolvers.cleaners = cleaners
+
+registermethod("savers", savers, "uri")
+registermethod("cleaners", cleaners, "uri")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-pre.lua b/Master/texmf-dist/tex/context/base/mkiv/data-pre.lua
index f7df8b91870..cab297d1920 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-pre.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-pre.lua
@@ -25,6 +25,8 @@ if not modules then modules = { } end modules ['data-pre'] = {
-- version : operating system version
-- release : operating system release
+
+local ipairs = ipairs
local insert, remove = table.insert, table.remove
local resolvers = resolvers
@@ -40,6 +42,7 @@ local dirname = file.dirname
local joinpath = file.join
local isfile = lfs.isfile
+local isdir = lfs.isdir
prefixes.environment = function(str)
return cleanpath(expansion(str))
@@ -92,6 +95,8 @@ prefixes.pathname = function(str)
return cleanpath(dirname((fullname ~= "" and fullname) or str))
end
+-- we can actually freeze these
+
prefixes.selfautoloc = function(str)
local pth = getenv('SELFAUTOLOC')
return cleanpath(str and joinpath(pth,str) or pth)
@@ -112,6 +117,34 @@ prefixes.home = function(str)
return cleanpath(str and joinpath(pth,str) or pth)
end
+do
+ local tmppth
+
+ prefixes.temp = function(str)
+ if not tmppth then
+ for _, s in ipairs { "TMP", "TEMP", "TMPDIR", "TEMPDIR" } do
+ tmppth = getenv(s)
+ if tmppth ~= "" and isdir(tmppth) then
+ break
+ end
+ end
+ if not tmppth or tmppth == "" then
+ tmppth = "."
+ end
+ end
+ return cleanpath(str and joinpath(tmppth,str) or tmppth)
+ end
+
+ prefixes.texruns = function(str)
+ local pth = getenv('TEXRUNS')
+ if pth == "" then
+ pth = tmppth
+ end
+ return cleanpath(str and joinpath(pth,str) or pth)
+ end
+
+end
+
prefixes.env = prefixes.environment
prefixes.rel = prefixes.relative
prefixes.loc = prefixes.locate
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-tar.lua b/Master/texmf-dist/tex/context/base/mkiv/data-tar.lua
new file mode 100644
index 00000000000..45de749b663
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-tar.lua
@@ -0,0 +1,236 @@
+if not modules then modules = { } end modules ['data-tar'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, find, match = string.format, string.find, string.match
+
+local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
+
+local report_tar = logs.reporter("resolvers","tar")
+
+--[[ldx--
+<p>We use a url syntax for accessing the tar file itself and file in it:</p>
+
+<typing>
+tar:///oeps.tar?name=bla/bla.tex
+tar:///oeps.tar?tree=tex/texmf-local
+</typing>
+--ldx]]--
+
+local resolvers = resolvers
+local findfile = resolvers.findfile
+local registerfile = resolvers.registerfile
+local splitmethod = resolvers.splitmethod
+local starttiming = resolvers.starttiming
+local stoptiming = resolvers.stoptiming
+
+local urlquery = url.query
+
+--- hm, zip sits in the global namespace, but tar doesn't
+
+local tar = utilities.tar or { }
+utilities.tar = tar -- not needed
+
+local archives = tar.archives or { }
+tar.archives = archives
+
+local registeredfiles = tar.registeredfiles or { }
+tar.registeredfiles = registeredfiles
+
+-- foo.tar.xz : done
+-- foo.tar.gz : todo
+-- foo.tar : done
+
+local hashtar, fetchtar, wipetar do
+
+ local suffix = file.suffix -- hassuffix .. no need to split
+
+ local tarfiles = utilities.tar.file
+ local tarstrings = utilities.tar.string
+
+ local hashtarfile = tar.files.hash
+ local fetchtarfile = tar.files.fetch
+
+ local hashtarstring = tar.strings.hash
+ local fetchtarstring = tar.strings.fetch
+
+ local register = resolvers.decompressors.register
+
+ hashtar = function(archive,strip)
+ local a = register(archive)
+ if a then
+ return hashtarstring(a,archive)
+ else
+ return hashtarfile(archive,archive)
+ end
+ end
+
+ fetchtar = function(archive,filename,list)
+ local a = register(archive)
+ if a then
+ return fetchtarstring(a,filename,list)
+ else
+ return fetchtarfile(archive,filename,list)
+ end
+ end
+
+ wipetar = resolvers.decompressors.unregister
+
+end
+
+local function validfile(archive,name)
+ return archive[name]
+end
+
+local function openarchive(name)
+ if not name or name == "" then
+ return nil
+ else
+ local arch = archives[name]
+ if not arch then
+ local full = findfile(name) or ""
+ arch = full ~= "" and hashtar(full,name) or false
+ archives[name] = arch
+ end
+ return arch
+ end
+end
+
+local function closearchive(name)
+ if not name or (name == "" and archives[name]) then
+ archives[name] = nil
+ wipetar(name)
+ end
+end
+
+tar.openarchive = openarchive
+tar.closearchive = closearchive
+
+function resolvers.locators.tar(specification)
+ local archive = specification.filename
+ local tarfile = archive and archive ~= "" and openarchive(archive)
+ if trace_locating then
+ if tarfile then
+ report_tar("locator: archive %a found",archive)
+ else
+ report_tar("locator: archive %a not found",archive)
+ end
+ end
+end
+
+function resolvers.concatinators.tar(tarfile,path,name) -- ok ?
+ if not path or path == "" then
+ return format('%s?name=%s',tarfile,name)
+ else
+ return format('%s?name=%s/%s',tarfile,path,name)
+ end
+end
+
+local finders = resolvers.finders
+local notfound = finders.notfound
+
+function finders.tar(specification)
+ local original = specification.original
+ local archive = specification.filename
+ if archive then
+ local query = urlquery(specification.query)
+ local queryname = query.name
+ if queryname then
+ local tfile = openarchive(archive)
+ if tfile then
+ if trace_locating then
+ report_tar("finder: archive %a found",archive)
+ end
+ if validfile(tfile,queryname) then
+ if trace_locating then
+ report_tar("finder: file %a found",queryname)
+ end
+ return specification.original
+ elseif trace_locating then
+ report_tar("finder: file %a not found",queryname)
+ end
+ elseif trace_locating then
+ report_tar("finder: unknown archive %a",archive)
+ end
+ end
+ end
+ if trace_locating then
+ report_tar("finder: %a not found",original)
+ end
+ return notfound()
+end
+
+local openers = resolvers.openers
+local notfound = openers.notfound
+local textopener = openers.helpers.textopener
+
+function openers.tar(specification)
+ local original = specification.original
+ local archive = specification.filename
+ if archive then
+ local query = urlquery(specification.query)
+ local queryname = query.name
+ if queryname then
+ local tfile = openarchive(archive)
+ if tfile then
+ if trace_locating then
+ report_tar("opener; archive %a opened",archive)
+ end
+ local data = fetchtar(archive,queryname,tfile)
+ if data then
+ if trace_locating then
+ report_tar("opener: file %a found",queryname)
+ end
+ return textopener('tar',original,data) -- a string handle
+ elseif trace_locating then
+ report_tar("opener: file %a not found",queryname)
+ end
+ elseif trace_locating then
+ report_tar("opener: unknown archive %a",archive)
+ end
+ end
+ end
+ if trace_locating then
+ report_tar("opener: %a not found",original)
+ end
+ return notfound()
+end
+
+loaders = resolvers.loaders
+local notfound = loaders.notfound
+
+function loaders.tar(specification)
+ local original = specification.original
+ local archive = specification.filename
+ if archive then
+ local query = urlquery(specification.query)
+ local queryname = query.name
+ if queryname then
+ local tfile = openarchive(archive)
+ if tfile then
+ if trace_locating then
+ report_tar("loader: archive %a opened",archive)
+ end
+ local data = fetchtar(archive,queryname,tfile)
+ if data then
+ if trace_locating then
+ report_tar("loader; file %a loaded",original)
+ end
+ return true, data, #data
+ elseif trace_locating then
+ report_tar("loader: file %a not found",queryname)
+ end
+ elseif trace_locating then
+ report_tar("loader; unknown archive %a",archive)
+ end
+ end
+ end
+ if trace_locating then
+ report_tar("loader: %a not found",original)
+ end
+ return notfound()
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-tex.lua b/Master/texmf-dist/tex/context/base/mkiv/data-tex.lua
index 2c1a7dbd5d1..42547b00b2f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-tex.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-tex.lua
@@ -175,9 +175,10 @@ local function textopener(tag,filename,filehandle,coding)
currentline = currentline + 1
-- self.currentline = currentline
local content = lines[currentline]
--- lines[currentline] = nil
+ -- lines[currentline] = false
if content == "" then
- return ""
+ -- return ""
+ return content
-- elseif content == ctrl_d or ctrl_z then
-- return nil -- we need this as \endinput does not work in prints
elseif content then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-tmp.lua b/Master/texmf-dist/tex/context/base/mkiv/data-tmp.lua
index 9a8a586cda4..1948f1ea596 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-tmp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-tmp.lua
@@ -74,7 +74,7 @@ local usedreadables = { }
local compilelua = luautilities.compile
local luasuffixes = luautilities.suffixes
-caches.base = caches.base or "luatex-cache" -- can be local
+caches.base = caches.base or (LUATEXENGINE and LUATEXENGINE .. "-cache") or "luatex-cache" -- can be local
caches.more = caches.more or "context" -- can be local
caches.defaults = { "TMPDIR", "TEMPDIR", "TMP", "TEMP", "HOME", "HOMEPATH" }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-use.lua b/Master/texmf-dist/tex/context/base/mkiv/data-use.lua
index a7ca2389e99..168b62201ee 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-use.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-use.lua
@@ -82,14 +82,14 @@ function statistics.savefmtstatus(texname,formatbanner,sourcefile,banner) -- tex
functionality = LUATEXFUNCTIONALITY,
}
io.savedata(luvname,table.serialize(luvdata,true))
- lua.registerfinalizer(function()
+ lua.registerinitexfinalizer(function()
if jit then
logs.report("format banner","%s lua: %s jit",banner,LUAVERSION)
else
logs.report("format banner","%s lua: %s",banner,LUAVERSION)
end
logs.newline()
- end)
+ end, "show banner")
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-vir.lua b/Master/texmf-dist/tex/context/base/mkiv/data-vir.lua
index 4b19ee53720..b78211fc9a7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-vir.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-vir.lua
@@ -17,6 +17,7 @@ trackers.register("resolvers.virtual", function(v) trace_virtual = v end)
local resolvers = resolvers
local savers = resolvers.savers
+local cleaners = resolvers.cleaners
local data = { }
local n = 0 -- hm, number can be query
@@ -37,6 +38,10 @@ function savers.virtual(specification,content,suffix)
return filename
end
+function cleaners.virtual(filename)
+ data[filename] = nil
+end
+
local finders = resolvers.finders
local notfound = finders.notfound
diff --git a/Master/texmf-dist/tex/context/base/mkiv/data-zip.lua b/Master/texmf-dist/tex/context/base/mkiv/data-zip.lua
index 8d914b842de..1a9310f17fe 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/data-zip.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/data-zip.lua
@@ -70,10 +70,10 @@ if zipfiles then
local readstring = streams.readstring
local streamsize = streams.size
- local metatable = {
+ local metatable = { -- irrelevant as the streams proivide the methods .. a leftover?
close = streams.close,
read = function(stream,n)
- readstring(stream,n == "*a" and streamsize(stream) or n)
+ readstring(stream,n == "*a" and streamsize(stream) or n) -- no return ?
end
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/export-example.css b/Master/texmf-dist/tex/context/base/mkiv/export-example.css
index 7cfd7f291fc..45af82c34b4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/export-example.css
+++ b/Master/texmf-dist/tex/context/base/mkiv/export-example.css
@@ -19,14 +19,14 @@
\definefloat[myfloata]
\definefloat[myfloatb][myfloatbs][figure]
- context|div.float.myfloata { } float[detail='myfloata'] { }
- context|div.float.myfloatb { } float[detail='myfloatb'] { }
- context|div.float.figure { } float[detail='figure'] { }
- context|div.float.figure.myfloatb { } float[chain~='figure'][detail='myfloata'] { }
- context|div.myfloata { } *[detail='myfloata'] { }
- context|div.myfloatb { } *[detail='myfloatb'] { }
- context|div.figure { } *[chain~='figure'] { }
- context|div.figure.myfloatb { } *[chain~='figure'][detail='myfloatb'] { }
+ div.float.myfloata { } float[detail='myfloata'] { }
+ div.float.myfloatb { } float[detail='myfloatb'] { }
+ div.float.figure { } float[detail='figure'] { }
+ div.float.figure.myfloatb { } float[chain~='figure'][detail='myfloata'] { }
+ div.myfloata { } *[detail='myfloata'] { }
+ div.myfloatb { } *[detail='myfloatb'] { }
+ div.figure { } *[chain~='figure'] { }
+ div.figure.myfloatb { } *[chain~='figure'][detail='myfloatb'] { }
Inheritance when using div seems to be stronger so we need to take more precautions.
@@ -39,34 +39,34 @@
/* extradata: display */
ignore,
-context|div.ignore {
+div.ignore {
display : none ;
}
ignore,
-context|div.private {
+div.private {
display : none ;
}
xmetadata,
-context|div.xmetadata {
+div.xmetadata {
display : none ;
}
xmetavariable,
-context|div.xmetavariable {
+div.xmetavariable {
display : none ;
}
extradata,
-context|div.extradata {
+div.extradata {
display : none ;
}
/* document : display */
document:before,
-context|div.document:before {
+div.document:before {
content : attr(title) ;
font-size : 44pt ;
font-weight : bold ;
@@ -74,7 +74,7 @@ context|div.document:before {
}
document,
-context|div.document {
+div.document {
font-family : "DejaVu Serif", "Lucida Bright", serif ;
font-size : 12pt ;
/* line-height : 14.4pt; */
@@ -88,26 +88,26 @@ context|div.document {
}
document>metadata,
-context|div.document context|div.metadata {
+div.document div.metadata {
font-family : "DejaVu Sans Mono", "Lucida Console", monospace ;
margin-bottom : 3ex ;
}
/*
document>metadata>metavariable[name="X"]:before,
- context|div.document context|div.metadata context|div.metavariable.metaname-X:before {
+ div.document div.metadata div.metavariable.metaname-X:before {
content : "X\00A0\00A0\00A0:\00A0" ;
}
*/
document>metadata,
-context|div.document context|div.metadata {
+div.document div.metadata {
display : flex ;
flex-flow : column ;
}
document>metadata>metavariable:before,
-context|div.document context|div.metadata context|div.metavariable:before {
+div.document div.metadata div.metavariable:before {
display : inline ;
content : attr(label);
width : 8em ;
@@ -116,7 +116,7 @@ context|div.document context|div.metadata context|div.metavariable:before {
}
document>metadata>metavariable[name="title"],
-context|div.document context|div.metadata context|div.metavariable.metaname-title {
+div.document div.metadata div.metavariable.metaname-title {
order : -1 ;
display : block ;
width : 50em ;
@@ -129,7 +129,7 @@ context|div.document context|div.metadata context|div.metavariable.metaname-titl
}
document>metadata>metavariable[name="title"]:before,
-context|div.document context|div.metadata context|div.metavariable.metaname-title:before {
+div.document div.metadata div.metavariable.metaname-title:before {
content : none ;
}
@@ -138,8 +138,8 @@ context|div.document context|div.metadata context|div.metavariable.metaname-titl
paragraph,
p,
-context|div.paragraph,
-context|div.p {
+div.paragraph,
+div.p {
display : block ;
margin-top : 0.5em ;
margin-bottom : 0.5em ;
@@ -148,7 +148,7 @@ context|div.p {
/* break : display */
break,
-context|div.break {
+div.break {
display : block ;
margin-bottom : 0.5em ;
}
@@ -157,16 +157,16 @@ context|div.break {
/* highlight : inline */
construct,
-context|div.construct {
+div.construct {
}
construct[detail="important"],
-context|div.construct.important {
+div.construct.important {
font-weight : bold ;
}
highlight,
-context|div.highlight { /* todo: style and color */
+div.highlight { /* todo: style and color */
display : inline ;
}
@@ -176,12 +176,12 @@ context|div.highlight { /* todo: style and color */
/* sectioncontent : display */
section,
-context|div.section {
+div.section {
display : block ;
}
sectioncaption,
-context|div.sectioncaption {
+div.sectioncaption {
display : block ;
text-align : left ;
page-break-after : avoid ;
@@ -190,18 +190,18 @@ context|div.sectioncaption {
}
sectioncontent,
-context|div.sectioncontent {
+div.sectioncontent {
display : block ;
}
sectionnumber,
-context|div.sectionnumber {
+div.sectionnumber {
display : inline ;
margin-right : 1em ;
}
sectionnumber,
-context|div.sectiontitle {
+div.sectiontitle {
display : inline ;
}
@@ -211,29 +211,29 @@ context|div.sectiontitle {
section[detail="chapter"]>sectioncaption,
section[detail="title"]>sectioncaption,
-context|div.level-2.chapter context|div.sectioncaption ,
-context|div.level-2.title context|div.sectioncaption {
+div.level-2.chapter div.sectioncaption ,
+div.level-2.title div.sectioncaption {
font-size : 2em ;
font-weight : bold ;
}
section[detail="chapter"],
section[detail="title"],
-context|div.level-2.chapter,
-context|div.level-2.title {
+div.level-2.chapter,
+div.level-2.title {
page-break-before : always ;
margin-top : 4ex ;
}
section[detail="chapter"]>sectioncaption>sectionnumber,
-context|div.level-2.chapter context|div.sectioncaption context|div.sectionnumber {
+div.level-2.chapter div.sectioncaption div.sectionnumber {
/* nothing */
}
section[detail="chapter"]>sectioncaption>sectiontitle,
section[detail="title"]>sectioncaption>sectiontitle,
-context|div.level-2.chapter context|div.sectioncaption context|div.sectiontitle,
-context|div.level-2.title context|div.sectioncaption context|div.sectiontitle {
+div.level-2.chapter div.sectioncaption div.sectiontitle,
+div.level-2.title div.sectioncaption div.sectiontitle {
/* nothing */
}
@@ -241,28 +241,28 @@ context|div.level-2.title context|div.sectioncaption context|div.sectiontitle {
section[detail="section"]>sectioncaption,
section[detail="subject"]>sectioncaption,
-context|div.level-3.section context|div.sectioncaption,
-context|div.level-3.subject context|div.sectioncaption {
+div.level-3.section div.sectioncaption,
+div.level-3.subject div.sectioncaption {
font-size : 1.75em ;
font-weight : bold ;
}
section[detail="section"],
section[detail="subject"],
-context|div.level-3.section,
-context|div.level-3.subject {
+div.level-3.section,
+div.level-3.subject {
/* nothing */
}
section[detail="section"]>sectioncaption>sectionnumber,
-context|div.level-3.section context|div.sectioncaption context|div.sectionnumber {
+div.level-3.section div.sectioncaption div.sectionnumber {
/* nothing */
}
section[detail="section"]>sectioncaption>sectiontitle,
section[detail="subject"]>sectioncaption>sectiontitle,
-context|div.level-3.section context|div.sectioncaption context|div.sectiontitle,
-context|div.level-3.subject context|div.sectioncaption context|div.sectiontitle {
+div.level-3.section div.sectioncaption div.sectiontitle,
+div.level-3.subject div.sectioncaption div.sectiontitle {
/* nothing */
}
@@ -270,28 +270,28 @@ context|div.level-3.subject context|div.sectioncaption context|div.sectiontitle
section[detail="subsection"]>sectioncaption,
section[detail="subsubject"]>sectioncaption,
-context|div.level-4.subsection context|div.sectioncaption,
-context|div.level-4.subsubject context|div.sectioncaption {
+div.level-4.subsection div.sectioncaption,
+div.level-4.subsubject div.sectioncaption {
font-size : 1.5em ;
font-weight : bold ;
}
section[detail="subsection"],
section[detail="subsubject"],
-context|div.level-4.subsection,
-context|div.level-4.subsubject {
+div.level-4.subsection,
+div.level-4.subsubject {
/* nothing */
}
section[detail="subsection"]>sectioncaption>sectionnumber,
-context|div.level-4.subsection context|div.sectioncaption context|div.sectionnumber {
+div.level-4.subsection div.sectioncaption div.sectionnumber {
/* nothing */
}
section[detail="subsection"]>sectioncaption>sectiontitle,
section[detail="subsubject"]>sectioncaption>sectiontitle,
-context|div.level-4.subsection context|div.sectioncaption context|div.sectiontitle,
-context|div.level-4.subsubject context|div.sectioncaption context|div.sectiontitle {
+div.level-4.subsection div.sectioncaption div.sectiontitle,
+div.level-4.subsubject div.sectioncaption div.sectiontitle {
/* nothing */
}
@@ -299,28 +299,28 @@ context|div.level-4.subsubject context|div.sectioncaption context|div.sectiontit
section[detail="subsubsection"]>sectioncaption,
section[detail="subsubsubject"]>sectioncaption,
-context|div.level-5.subsubsection context|div.sectioncaption,
-context|div.level-5.subsubsubject context|div.sectioncaption {
+div.level-5.subsubsection div.sectioncaption,
+div.level-5.subsubsubject div.sectioncaption {
font-size : 1.25em ;
font-weight : bold ;
}
section[detail="subsubsection"],
section[detail="subsubsubject"],
-context|div.level-5.subsubsection,
-context|div.level-5.subsubsubject {
+div.level-5.subsubsection,
+div.level-5.subsubsubject {
/* nothing */
}
section[detail="subsubsection"]>sectioncaption>sectionnumber,
-context|div.level-5.subsubsection context|div.sectioncaption context|div.sectionnumber {
+div.level-5.subsubsection div.sectioncaption div.sectionnumber {
/* nothing */
}
section[detail="subsubsection"]>sectioncaption>sectiontitle,
section[detail="subsubsubject"]>sectioncaption>sectiontitle,
-context|div.level-5.subsubsection context|div.sectioncaption context|div.sectiontitle,
-context|div.level-5.subsubsubject context|div.sectioncaption context|div.sectiontitle {
+div.level-5.subsubsection div.sectioncaption div.sectiontitle,
+div.level-5.subsubsubject div.sectioncaption div.sectiontitle {
/* nothing */
}
@@ -328,14 +328,14 @@ context|div.level-5.subsubsubject context|div.sectioncaption context|div.section
section[detail="summary"],
section[detail="subsummary"],
-context|div.section.summary,
-context|div.section.subsummary {
+div.section.summary,
+div.section.subsummary {
margin-top : 1em ;
margin-bottom : 1em ;
}
section[detail="summary"]>sectioncaption>sectiontitle,
-context|div.section.summary context|div.sectioncaption context|div.sectiontitle {
+div.section.summary div.sectioncaption div.sectiontitle {
display : block ;
margin-top : 1em ;
margin-bottom : 1em ;
@@ -347,7 +347,7 @@ context|div.section.summary context|div.sectioncaption context|div.sectiontitle
}
section[detail="subsummary"]>sectioncaption>sectiontitle,
-context|div.section.subsummary context|div.sectioncaption context|div.sectiontitle {
+div.section.subsummary div.sectioncaption div.sectiontitle {
display : block ;
margin-top : 1em ;
margin-bottom : 1em ;
@@ -377,27 +377,27 @@ context|div.section.subsummary context|div.sectioncaption context|div.sectiontit
}
itemgroup,
-context|div.itemgroup {
+div.itemgroup {
display : block ;
margin-bottom : 0.5em ;
margin-top : 0.5em ;
}
-itemgroup[symbol="1"], context|div.itemgroup.symbol-1 { list-style-type : disc ; }
-itemgroup[symbol="2"], context|div.itemgroup.symbol-2 { list-style-type : square ; }
-itemgroup[symbol="3"], context|div.itemgroup.symbol-3 { list-style-type : square ; }
-itemgroup[symbol="4"], context|div.itemgroup.symbol-4 { list-style-type : square ; }
-itemgroup[symbol="5"], context|div.itemgroup.symbol-5 { list-style-type : circ ; }
-itemgroup[symbol="a"], context|div.itemgroup.symbol-a { list-style-type : lower-alpha ; }
-itemgroup[symbol="A"], context|div.itemgroup.symbol-A { list-style-type : alpha ; }
-itemgroup[symbol="r"], context|div.itemgroup.symbol-r { list-style-type : lower-roman ; }
-itemgroup[symbol="R"], context|div.itemgroup.symbol-R { list-style-type : upper-roman ; }
-itemgroup[symbol="n"], context|div.itemgroup.symbol-n { list-style-type : decimal ; }
-itemgroup[symbol="g"], context|div.itemgroup.symbol-g { list-style-type : lower-greek ; }
-itemgroup[symbol="G"], context|div.itemgroup.symbol-G { list-style-type : upper-greek ; }
+itemgroup[symbol="1"], div.itemgroup.symbol-1 { list-style-type : disc ; }
+itemgroup[symbol="2"], div.itemgroup.symbol-2 { list-style-type : square ; }
+itemgroup[symbol="3"], div.itemgroup.symbol-3 { list-style-type : square ; }
+itemgroup[symbol="4"], div.itemgroup.symbol-4 { list-style-type : square ; }
+itemgroup[symbol="5"], div.itemgroup.symbol-5 { list-style-type : circ ; }
+itemgroup[symbol="a"], div.itemgroup.symbol-a { list-style-type : lower-alpha ; }
+itemgroup[symbol="A"], div.itemgroup.symbol-A { list-style-type : alpha ; }
+itemgroup[symbol="r"], div.itemgroup.symbol-r { list-style-type : lower-roman ; }
+itemgroup[symbol="R"], div.itemgroup.symbol-R { list-style-type : upper-roman ; }
+itemgroup[symbol="n"], div.itemgroup.symbol-n { list-style-type : decimal ; }
+itemgroup[symbol="g"], div.itemgroup.symbol-g { list-style-type : lower-greek ; }
+itemgroup[symbol="G"], div.itemgroup.symbol-G { list-style-type : upper-greek ; }
item,
-context|div.item {
+div.item {
display : list-item ;
margin-left : 1em ;
margin-bottom : 0.5em ;
@@ -405,12 +405,12 @@ context|div.item {
}
itemtag,
-context|div.itemtag {
+div.itemtag {
display: none ;
}
itemcontent,
-context|div.itemcontent {
+div.itemcontent {
}
/* description : display */
@@ -419,14 +419,14 @@ context|div.itemcontent {
/* descriptionsymbol : inline */
description,
-context|div.description {
+div.description {
display : block ;
margin-bottom : 1em ;
margin-top : 1em ;
}
descriptiontag,
-context|div.descriptiontag {
+div.descriptiontag {
display : inline ;
float : left ;
clear : left ;
@@ -436,11 +436,11 @@ context|div.descriptiontag {
}
descriptioncontent,
-context|div.descriptioncontent {
+div.descriptioncontent {
}
descriptionsymbol,
-context|div.descriptionsymbol {
+div.descriptionsymbol {
display : inline ;
}
@@ -450,7 +450,7 @@ context|div.descriptionsymbol {
/* verbatim : inline */
verbatimblock,
-context|div.verbatimblock {
+div.verbatimblock {
background-color : rgb(50%,50%,100%) ;
display : block ;
padding : 1em ;
@@ -460,19 +460,19 @@ context|div.verbatimblock {
}
verbatimlines+verbatimlines,
-context|div.verbatimlines+context|div.verbatimlines {
+div.verbatimlines+div.verbatimlines {
display : block ;
margin-top : 1em ;
}
verbatimline,
-context|div.verbatimline {
+div.verbatimline {
display : block ;
white-space : pre-wrap ;
}
verbatim,
-context|div.verbatim {
+div.verbatim {
display : inline ;
white-space : pre-wrap ;
color : rgb(60%,60%,0%) ;
@@ -484,26 +484,26 @@ context|div.verbatim {
/* linenumber : inline */
lines,
-context|div.lines {
+div.lines {
display : block ;
margin-bottom : 1em ;
margin-top : 1em ;
}
lines+lines,
-context|div.lines+context|div.lines {
+div.lines+div.lines {
display : block ;
margin-top : 1em ;
}
line,
-context|div.line {
+div.line {
display : block ;
white-space : pre-wrap ;
}
linenumber,
-context|div.linenumber {
+div.linenumber {
display : inline-block ;
margin-right : 1em ;
width : 3em ;
@@ -516,8 +516,8 @@ context|div.linenumber {
sorting,
synonym,
-context|div.sorting,
-context|div.synonym {
+div.sorting,
+div.synonym {
display : inline ;
font-variant : small-caps ;
}
@@ -533,17 +533,17 @@ context|div.synonym {
/* registerpagerange : mixed */
register,
-context|div.register {
+div.register {
display: none ;
}
registerlocation,
-context|div.registerlocation {
+div.registerlocation {
display: inline ;
}
registerlocation:after,
-context|div.registerlocation:after {
+div.registerlocation:after {
content : "\25B6\00A0\00A0" ;
color : rgb(40%,40%,40%) ;
font-size : x-small ;
@@ -559,38 +559,38 @@ context|div.registerlocation:after {
/* we have a few bonus mappings here */
table,
-context|div.table {
+div.table {
display : table ;
}
tablerow, tr
-context|div.tablerow, context|div.tr {
+div.tablerow, div.tr {
display : table-row ;
}
tablecell[align="middle"], td[align="middle"],
-context|div.tablecell.align-middle {
+div.tablecell.align-middle {
display : table-cell ;
text-align : center ;
padding : .1em ;
}
tablecell[align="flushleft"], td[align="flushleft"],
-context|div.tablecell.align-flushleft {
+div.tablecell.align-flushleft {
display : table-cell ;
text-align : left ;
padding : .1em ;
}
tablecell[align="flushright"], td[align="flushright"],
-context|div.tablecell.align-flushright {
+div.tablecell.align-flushright {
display : table-cell ;
text-align : right ;
padding : .1em ;
}
tablecell, td
-context|div.tablecell, context|div.td {
+div.tablecell, div.td {
display : table-cell ;
text-align : left ;
padding : .1em ;
@@ -616,7 +616,7 @@ div.tbody, div.tablebody {
/* tabulatecell : mixed */
tabulate,
-context|div.tabulate {
+div.tabulate {
display : table ;
margin-top : 1em ;
margin-bottom : 1em ;
@@ -624,50 +624,50 @@ context|div.tabulate {
}
floatcontent>tabulate,
-context|div.floatcontent context|div.tabulate {
+div.floatcontent div.tabulate {
margin-left : 0em ;
}
tabulaterow,
-context|div.tabulaterow {
+div.tabulaterow {
display : table-row ;
}
tabulatecell[align="middle"],
-context|div.tabulatecell.align-middle {
+div.tabulatecell.align-middle {
display : table-cell ;
text-align : center ;
padding-right : 1em ;
}
tabulatecell[align="flushleft"],
-context|div.tabulatecell.align-flushleft {
+div.tabulatecell.align-flushleft {
display : table-cell ;
text-align : left ;
padding-right : 1em ;
}
tabulatecell[align="flushright"],
-context|div.tabulatecell.align-flushright {
+div.tabulatecell.align-flushright {
display : table-cell ;
text-align : right ;
padding-right : 1em ;
}
tabulatecell,
-context|div.tabulatecell {
+div.tabulatecell {
display : table-cell ;
text-align : left ;
padding-right : 1em ;
}
tabulatecell[kind="strong"],
-context|div.tabulatecell.kind-strong {
+div.tabulatecell.kind-strong {
font-weight : bold ;
}
tabulatecell[kind="equals"]:before,
-context|div.tabulatecell.kind-equals:before {
+div.tabulatecell.kind-equals:before {
display : inline-block ;
clear : left ;
margin-left : -.6em ;
@@ -688,26 +688,26 @@ context|div.tabulatecell.kind-equals:before {
/* combinationcaption : mixed */
combination,
-context|div.combination {
+div.combination {
display : table ;
margin-top : 0em ;
margin-bottom : 0em ;
}
combinationpair, combinationtext,
-context|div.combinationpair, context|div.combinationtext {
+div.combinationpair, div.combinationtext {
display : table-cell ;
padding-right : 1em ;
}
combinationcontent,
-context|div.combinationcontent {
+div.combinationcontent {
display : table-row ;
text-align : center ;
}
combinationcaption,
-context|div.combinationcaption {
+div.combinationcaption {
display : table-row ;
padding-top : 1ex ;
text-align : center ;
@@ -722,13 +722,13 @@ context|div.combinationcaption {
/* listtext : inline */
list,
-context|div.list {
+div.list {
display : block ;
text-align : left ;
}
listitem[detail="chapter"],
-context|div.listitem.chapter {
+div.listitem.chapter {
display : block ;
margin-top : 1em ;
margin-left : 5em ;
@@ -736,32 +736,32 @@ context|div.listitem.chapter {
}
listitem[detail="section"],
-context|div.listitem.section {
+div.listitem.section {
display : block ;
margin-left : 5em ;
}
listitem[detail="subsection"],
-context|div.listitem.subsection {
+div.listitem.subsection {
display : block ;
margin-left : 5em ;
}
/*
listitem[detail="subsection"],
-context|div.listitem.subsection {
+div.listitem.subsection {
display : inline-block ;
margin-left : -5em ;
}
listitem[detail="subsection"]>listtag,
-context|div.listitem.subsection context|div.listtag {
+div.listitem.subsection div.listtag {
margin-right : 1em ;
}
*/
listitem[detail="chapter"]>listtag,
-context|div.listitem.chapter > context|div.listtag {
+div.listitem.chapter > div.listtag {
display : inline-block ;
margin-left : -5em ;
float : left ;
@@ -769,7 +769,7 @@ context|div.listitem.chapter > context|div.listtag {
}
listitem[detail="section"]>listtag,
-context|div.listitem.section > context|div.listtag {
+div.listitem.section > div.listtag {
display : inline-block ;
margin-left : -5em ;
float : left ;
@@ -777,7 +777,7 @@ context|div.listitem.section > context|div.listtag {
}
listitem[detail="subsection"]>listtag,
-context|div.listitem.subsection > context|div.listtag {
+div.listitem.subsection > div.listtag {
display : inline-block ;
margin-left : -5em ;
float : left ;
@@ -785,22 +785,22 @@ context|div.listitem.subsection > context|div.listtag {
}
listcontent,
-context|div.listcontent {
+div.listcontent {
display : inline ;
}
listdata,
-context|div.listdata {
+div.listdata {
display : inline ;
}
listpage,
-context|div.listpage {
+div.listpage {
display : none ;
}
listtext,
-context|div.listtext {
+div.listtext {
display : inline ;
}
@@ -816,75 +816,75 @@ context|div.listtext {
delimited[detail="quotation"]:before,
delimitedblock[detail="quotation"]:before,
-context|div.delimited.quotation:before,
-context|div.delimitedblock.quotation:before {
+div.delimited.quotation:before,
+div.delimitedblock.quotation:before {
/* content : "\201C" ; */
font-style : italic ;
}
delimited[detail="quotation"]:after,
delimitedblock[detail="quotation"]:after,
-context|div.delimited.quotation:after,
-context|div.delimitedblock.quotation:after {
+div.delimited.quotation:after,
+div.delimitedblock.quotation:after {
/* content : "\201D" ; */
font-style : italic ;
}
delimited[detail="quote"]:before,
delimitedblock[detail="quote"]:before,
-context|div.delimited.quote:before,
-context|div.delimitedblock.quote:before {
+div.delimited.quote:before,
+div.delimitedblock.quote:before {
/* content : "\2018" ; */
font-style : italic ;
}
delimited[detail="quote"]:after,
delimitedblock[detail="quote"]:after,
-context|div.delimited.quote:after,
-context|div.delimitedblock.quote:after {
+div.delimited.quote:after,
+div.delimitedblock.quote:after {
/* content : "\2019" ; */
font-style : italic ;
}
delimited,
-context|div.delimited {
+div.delimited {
display : inline
}
delimitedcontent,
-context|div.delimitedcontent {
+div.delimitedcontent {
display : inline
}
delimitedsymbol,
-context|div.delimitedsymbol {
+div.delimitedsymbol {
display : inline
}
delimitedblock,
-context|div.delimitedblock {
+div.delimitedblock {
display : block
}
subsentence:before,
subsentence:after,
-context|div.subsentence:before,
-context|div.subsentence:after {
+div.subsentence:before,
+div.subsentence:after {
content : "\2014" ;
}
subsentence,
-context|div.subsentence {
+div.subsentence {
display : inline
}
subsentencecontent,
-context|div.subsentencecontent {
+div.subsentencecontent {
display : inline
}
subsentencesymbol,
-context|div.subsentencesymbol {
+div.subsentencesymbol {
display : inline
}
@@ -899,7 +899,7 @@ context|div.subsentencesymbol {
/* floatcontent : mixed */
float,
-context|div.float {
+div.float {
display : block ;
margin-top : 1em ;
margin-bottom : 1em ;
@@ -907,33 +907,33 @@ context|div.float {
}
floatcaption,
-context|div.floatcaption {
+div.floatcaption {
display : block ;
margin-top : 0.5em ;
color : rgb(60%,60%,0%) ;
}
floatlabel,
-context|div.floatlabel {
+div.floatlabel {
display : inline-block ;
font-weight : bold ;
margin-right : 0.25em ;
}
floatnumber,
-context|div.floatnumber {
+div.floatnumber {
display : inline ;
font-weight : bold ;
margin-right : 0.25em ;
}
floattext,
-context|div.floattext {
+div.floattext {
display : inline ;
}
floatcontent,
-context|div.floatcontent {
+div.floatcontent {
}
/* image : mixed */
@@ -948,13 +948,13 @@ context|div.floatcontent {
} */
mpgraphic:before,
-context|div.mpgraphic:before {
+div.mpgraphic:before {
/* does not work with empty element */
content : "[runtime metapost graphic]" ;
}
mpgraphic,
-context|div.mpgraphic {
+div.mpgraphic {
display : inline ;
}
@@ -967,15 +967,16 @@ context|div.mpgraphic {
/* formulacontent : display */
formula,
-context|div.formula {
- display : block ;
+div.formula {
+ xdisplay : block ;
+ display : table ;
margin-top : 1em ;
margin-bottom : 1em ;
margin-left : 2.5em ;
}
subformula,
-context|div.subformula { /* todo */
+div.subformula { /* todo */
display : block ;
margin-top : 1em ;
margin-bottom : 1em ;
@@ -983,7 +984,7 @@ context|div.subformula { /* todo */
}
formulaset,
-context|div.formulaset { /* todo */
+div.formulaset { /* todo */
display : block ;
margin-top : 1em ;
margin-bottom : 1em ;
@@ -991,32 +992,37 @@ context|div.formulaset { /* todo */
}
formulacaption,
-context|div.formulacaption { /* todo */
- display : block ;
- margin-top : 0.5em ;
- color : rgb(60%,60%,0%) ;
+div.formulacaption { /* todo */
+ xdisplay : block ;
+ display : table-cell ;
+ margin-top : 0.5em ;
+ padding-left : 2em ;
+ color : rgb(60%,60%,0%) ;
}
formulalabel,
-context|div.formulalabel {
+div.formulalabel {
display : inline ;
font-weight : bold ;
margin-right : .25em ;
}
formulanumber,
-context|div.formulanumber {
+div.formulanumber {
display : inline ;
font-weight : bold ;
+ margin-left : 0em ;
}
formulacontent,
-context|div.formulacontent {
- display : block ;
+div.formulacontent {
+ xdisplay : block ;
+ display : table-cell ;
+ margin-left : 0em ;
}
link,
-context|div.link {
+div.link {
display : inline ;
}
@@ -1024,7 +1030,7 @@ context|div.link {
/* margintext : inline */
margintext,
-context|div.margintext {
+div.margintext {
display : block ;
font-weight : bold ;
margin-top : 1em ;
@@ -1032,7 +1038,7 @@ context|div.margintext {
}
margintext:before,
-context|div.margintext:before {
+div.margintext:before {
content : "\25B6\00A0\00A0" ;
color : rgb(40%,40%,40%) ;
}
@@ -1060,12 +1066,12 @@ context|div.margintext:before {
/* mtr : display */
/* mtd : display */
-context|div.math-inline {
+div.math-inline {
display : inline ;
vertical-align : 0 ; /* this will be set directly */
}
-context|div.math-display {
+div.math-display {
display : block ;
margin : 1ex 0ex 1em 3em ;
}
@@ -1074,12 +1080,12 @@ context|div.math-display {
/* pubfld : inline */
publication,
-context|div.publication {
+div.publication {
display : inline ;
}
pubfld[detail="title"],
-context|div.pubfld.title {
+div.pubfld.title {
display : inline ;
font-weight : italic ;
}
@@ -1089,17 +1095,17 @@ context|div.pubfld.title {
/* number : inline */
quantity,
-context|div.quantity {
+div.quantity {
display : inline-block ;
}
quantity>unit,
-context|div.quantity>context|div.unit {
+div.quantity>div.unit {
display : inline ;
}
quantity>number,
-context|div.quantity>context|div.number {
+div.quantity>div.number {
display : inline ;
}
@@ -1108,34 +1114,34 @@ context|div.quantity>context|div.number {
/* subsup : inline */
sup,
-context|div.sup {
+div.sup {
display : inline-block ;
font-size : xx-small ;
vertical-align : super ;
}
sub,
-context|div.sub {
+div.sub {
display : inline-block ;
font-size : xx-small ;
vertical-align : sub ;
}
subsup>sup,
-context|div.subsup>context|div.sup {
+div.subsup>div.sup {
display : inline ;
vertical-align : top ;
}
subsup>sub,
-context|div.subsup>context|div.sub {
+div.subsup>div.sub {
display : inline ;
vertical-align : bottom ;
}
/* links */
-context|div[href]:hover {
+div[href]:hover {
color : rgb(50%,0%,0%) ;
background-color : rgb(85%,85%,85%) ;
}
@@ -1143,12 +1149,12 @@ context|div[href]:hover {
/* setups */
setup,
-context|div.setup {
+div.setup {
display : block ;
}
comment,
-context|div.comment {
+div.comment {
background-color : rgb(50%,75%,100%) ;
display : block ;
padding : 1em ;
@@ -1160,18 +1166,18 @@ context|div.comment {
/* blocks */
block,
-context|div.block {
+div.block {
display : block ;
}
/* special */
c,
-context|div.c {
+div.c {
display : inline ;
}
warning,
-context|div.warning {
+div.warning {
display : none ;
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/file-job.lua b/Master/texmf-dist/tex/context/base/mkiv/file-job.lua
index 97e223387dc..0d26cdfb259 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/file-job.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/file-job.lua
@@ -49,6 +49,8 @@ local cleanpath = resolvers.cleanpath
local toppath = resolvers.toppath
local resolveprefix = resolvers.resolve
+local currentfile = luatex.currentfile
+
local hasscheme = url.hasscheme
local jobresolvers = resolvers.jobs
@@ -791,7 +793,8 @@ end
local function autoname(name)
if name == "*" then
- name = nameonly(toppath() or name)
+ -- name = nameonly(toppath() or name)
+ name = nameonly(currentfile() or name)
end
return name
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/file-lib.lua b/Master/texmf-dist/tex/context/base/mkiv/file-lib.lua
index 9b0679e250d..50ac5e1db34 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/file-lib.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/file-lib.lua
@@ -18,10 +18,11 @@ local report_library = logs.reporter("files","library")
----- report_files = logs.reporter("files","readfile")
local removesuffix = file.removesuffix
+local collapsepath = file.collapsepath
local getreadfilename = resolvers.getreadfilename
-local loaded = { }
+local libraries = table.setmetatableindex("table")
local defaultpatterns = { "%s" }
local function defaultaction(name,foundname)
@@ -46,6 +47,7 @@ function resolvers.uselibrary(specification) -- todo: reporter
local foundname = getreadfilename("any",".",somename) -- maybe some day also an option not to backtrack .. and ../.. (or block global)
return foundname ~= "" and foundname
end
+ local loaded = libraries[patterns]
for i=1,#files do
local filename = files[i]
if not loaded[filename] then
@@ -76,17 +78,25 @@ function resolvers.uselibrary(specification) -- todo: reporter
end
end
end
- if not loaded[foundname] then
- if foundname then
- action(name,foundname)
+ if type(foundname) == "string" then
+ if not loaded[foundname] then
+ if foundname then
+ foundname = collapsepath(foundname)
+ -- this way we can run a module (nil when making a format):
+ local inputname = environment.inputfilename
+ if not inputname or collapsepath(inputname) ~= foundname then
+ action(name,foundname)
+ end
+ -- afterwards:
+ if onlyonce then
+ loaded[foundname] = true -- todo: base this on return value
+ end
+ elseif failure then
+ failure(name)
+ end
if onlyonce then
- loaded[foundname] = true -- todo: base this on return value
+ loaded[filename] = true -- todo: base this on return value
end
- elseif failure then
- failure(name)
- end
- if onlyonce then
- loaded[filename] = true -- todo: base this on return value
end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/file-res.lua b/Master/texmf-dist/tex/context/base/mkiv/file-res.lua
index 16afae4c7ab..3ed7abc8d3d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/file-res.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/file-res.lua
@@ -59,18 +59,20 @@ local function readfilename(specification,backtrack,treetoo)
end
end
if not fnd and backtrack then
+ local path = environment.arguments.runpath and environment.arguments.path or ""
for i=1,#names do
local fname = names[i]
for i=1,backtrack,1 do
fname = "../" .. fname
- if isfile(fname) then
+ local pname = path and (path ~= "") and (path .. "/" .. fname) or fname
+ if isfile(pname) then
if trace_files then
- report_files("found by backtracking: %s",fname)
+ report_files("found by backtracking: %s",pname)
end
- fnd = fname
+ fnd = pname
break
elseif trace_files then
- report_files("not found by backtracking: %s",fname)
+ report_files("not found by backtracking: %s",pname)
end
end
if fnd then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-cff.lua b/Master/texmf-dist/tex/context/base/mkiv/font-cff.lua
index 4e2981011ac..c71c3aef33a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-cff.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-cff.lua
@@ -29,7 +29,7 @@ if not modules then modules = { } end modules ['font-cff'] = {
local next, type, tonumber, rawget = next, type, tonumber, rawget
local byte, char, gmatch, sub = string.byte, string.char, string.gmatch, string.sub
-local concat, remove, unpack = table.concat, table.remove, table.unpack
+local concat, insert, remove, unpack = table.concat, table.insert, table.remove, table.unpack
local floor, abs, round, ceil, min, max = math.floor, math.abs, math.round, math.ceil, math.min, math.max
local P, C, R, S, C, Cs, Ct = lpeg.P, lpeg.C, lpeg.R, lpeg.S, lpeg.C, lpeg.Cs, lpeg.Ct
local lpegmatch = lpeg.match
@@ -348,11 +348,11 @@ do
top = 0
end
+ P("\10") / function()
- result.strhw = stack[top]
+ result.stdhw = stack[top]
top = 0
end
+ P("\11") / function()
- result.strvw = stack[top]
+ result.stdvw = stack[top]
top = 0
end
+ P("\13") / function()
@@ -453,7 +453,7 @@ do
top = 0
end
+ P("\10") / function()
- result.bluesnap = stack[top]
+ result.blueshift = stack[top]
top = 0
end
+ P("\11") / function()
@@ -528,7 +528,7 @@ do
-- the second variant is much faster. Not that it matters much as we don't see
-- such numbers often.
- local remap = {
+ local remap_1 = {
["\x00"] = "00", ["\x01"] = "01", ["\x02"] = "02", ["\x03"] = "03", ["\x04"] = "04", ["\x05"] = "05", ["\x06"] = "06", ["\x07"] = "07", ["\x08"] = "08", ["\x09"] = "09", ["\x0A"] = "0.", ["\x0B"] = "0E", ["\x0C"] = "0E-", ["\x0D"] = "0", ["\x0E"] = "0-", ["\x0F"] = "0",
["\x10"] = "10", ["\x11"] = "11", ["\x12"] = "12", ["\x13"] = "13", ["\x14"] = "14", ["\x15"] = "15", ["\x16"] = "16", ["\x17"] = "17", ["\x18"] = "18", ["\x19"] = "19", ["\x1A"] = "1.", ["\x1B"] = "1E", ["\x1C"] = "1E-", ["\x1D"] = "1", ["\x1E"] = "1-", ["\x1F"] = "1",
["\x20"] = "20", ["\x21"] = "21", ["\x22"] = "22", ["\x23"] = "23", ["\x24"] = "24", ["\x25"] = "25", ["\x26"] = "26", ["\x27"] = "27", ["\x28"] = "28", ["\x29"] = "29", ["\x2A"] = "2.", ["\x2B"] = "2E", ["\x2C"] = "2E-", ["\x2D"] = "2", ["\x2E"] = "2-", ["\x2F"] = "2",
@@ -544,11 +544,18 @@ do
["\xC0"] = "E-0", ["\xC1"] = "E-1", ["\xC2"] = "E-2", ["\xC3"] = "E-3", ["\xC4"] = "E-4", ["\xC5"] = "E-5", ["\xC6"] = "E-6", ["\xC7"] = "E-7", ["\xC8"] = "E-8", ["\xC9"] = "E-9", ["\xCA"] = "E-.", ["\xCB"] = "E-E", ["\xCC"] = "E-E-", ["\xCD"] = "E-", ["\xCE"] = "E--", ["\xCF"] = "E-",
["\xD0"] = "-0", ["\xD1"] = "-1", ["\xD2"] = "-2", ["\xD3"] = "-3", ["\xD4"] = "-4", ["\xD5"] = "-5", ["\xD6"] = "-6", ["\xD7"] = "-7", ["\xD8"] = "-8", ["\xD9"] = "-9", ["\xDA"] = "-.", ["\xDB"] = "-E", ["\xDC"] = "-E-", ["\xDD"] = "-", ["\xDE"] = "--", ["\xDF"] = "-",
}
+ local remap_2 = {
+ ["\x0F"] = "0", ["\x1F"] = "1", ["\x2F"] = "2", ["\x3F"] = "3", ["\x4F"] = "4",
+ ["\x5F"] = "5", ["\x6F"] = "6", ["\x7F"] = "7", ["\x8F"] = "8", ["\x9F"] = "9",
+ }
+
+ local p_last_1 = S("\x0F\x1F\x2F\x3F\x4F\x5F\x6F\x7F\x8F\x9F\xAF\xBF")
+ local p_last_2 = R("\xF0\xFF")
- local p_last = S("\x0F\x1F\x2F\x3F\x4F\x5F\x6F\x7F\x8F\x9F\xAF\xBF")
- + R("\xF0\xFF")
+ -- tricky, we don't want to append last
- local p_nibbles = P("\30") * Cs(((1-p_last)/remap)^0 * (P(1)/remap)) / function(n)
+ -- local p_nibbles = P("\30") * Cs(((1-p_last)/remap)^0 * (P(1)/remap)) / function(n)
+ local p_nibbles = P("\30") * Cs(((1-(p_last_1+p_last_2))/remap_1)^0 * (p_last_1/remap_2 + p_last_2/"")) / function(n)
-- 0-9=digit a=. b=E c=E- d=reserved e=- f=finish
top = top + 1
stack[top] = tonumber(n) or 0
@@ -572,6 +579,11 @@ do
stack[top] = -(byte(b0)-251)*256 - byte(b1) - 108
end
+ -- local p_float = P("\255") * C(1) * C(1) * C(1) * C(1) / function(b0,b1,b2,b3)
+ -- top = top + 1
+ -- stack[top] = 0
+ -- end
+
local p_short = P("\28") * C(1) * C(1) / function(b1,b2)
-- -32768 .. +32767 : b1<<8 | b2
top = top + 1
@@ -607,6 +619,7 @@ do
+ p_nibbles
+ p_single
+ p_double
+ -- + p_float
+ p_unsupported
)^1
@@ -701,6 +714,7 @@ do
local y = 0
local width = false
local lsb = 0
+ local result = { }
local r = 0
local stems = 0
local globalbias = 0
@@ -728,8 +742,13 @@ do
local seacs = { }
local procidx = nil
- local function showstate(where)
- report("%w%-10s : [%s] n=%i",depth*2,where,concat(stack," ",1,top),top)
+ local function showstate(where,i,n)
+ if i then
+ local j = i + n - 1
+ report("%w%-10s : [%s] step",depth*2+2,where,concat(stack," ",i,j <= top and j or top))
+ else
+ report("%w%-10s : [%s] n=%i",depth*2,where,concat(stack," ",1,top),top)
+ end
end
local function showvalue(where,value,showstack)
@@ -745,6 +764,13 @@ do
-- some back. I inlined some of then and a bit speed can be gained by more
-- inlining but not that much.
+ -- Maybe have several action tables:
+ --
+ -- keep curve / checked
+ -- keep curve / not checked
+ -- checked
+ -- not checked
+
local function xymoveto()
if keepcurve then
r = r + 1
@@ -859,9 +885,9 @@ do
end
end
- local function xycurveto(x1,y1,x2,y2,x3,y3) -- called local so no blend here
+ local function xycurveto(x1,y1,x2,y2,x3,y3,i,n) -- called local so no blend here
if trace_charstrings then
- showstate("curveto")
+ showstate("curveto",i,n)
end
if keepcurve then
r = r + 1
@@ -1005,6 +1031,16 @@ do
if trace_charstrings then
showstate("rrcurveto")
end
+if top == 6 then
+ local ax = x + stack[1] -- dxa
+ local ay = y + stack[2] -- dya
+ local bx = ax + stack[3] -- dxb
+ local by = ay + stack[4] -- dyb
+ x = bx + stack[5] -- dxc
+ y = by + stack[6] -- dyc
+ xycurveto(ax,ay,bx,by,x,y,1,6)
+else
+-- print("rr",top==6,top)
for i=1,top,6 do
local ax = x + stack[i] -- dxa
local ay = y + stack[i+1] -- dya
@@ -1012,8 +1048,9 @@ do
local by = ay + stack[i+3] -- dyb
x = bx + stack[i+4] -- dxc
y = by + stack[i+5] -- dyc
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,6)
end
+end
top = 0
end
@@ -1026,6 +1063,15 @@ do
y = y + stack[1] -- dy1
s = 2
end
+if top == 4 then
+ local ax = x + stack[1] -- dxa
+ local ay = y
+ local bx = ax + stack[2] -- dxb
+ local by = ay + stack[3] -- dyb
+ x = bx + stack[4] -- dxc
+ y = by
+ xycurveto(ax,ay,bx,by,x,y,1,4)
+else
for i=s,top,4 do
local ax = x + stack[i] -- dxa
local ay = y
@@ -1033,8 +1079,9 @@ do
local by = ay + stack[i+2] -- dyb
x = bx + stack[i+3] -- dxc
y = by
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,4)
end
+end
top = 0
end
@@ -1048,6 +1095,16 @@ do
d = stack[1] -- dx1
s = 2
end
+if top == 4 then
+ local ax = x + d
+ local ay = y + stack[1] -- dya
+ local bx = ax + stack[2] -- dxb
+ local by = ay + stack[3] -- dyb
+ x = bx
+ y = by + stack[4] -- dyc
+ xycurveto(ax,ay,bx,by,x,y,1,4)
+ d = 0
+else
for i=s,top,4 do
local ax = x + d
local ay = y + stack[i] -- dya
@@ -1055,9 +1112,10 @@ do
local by = ay + stack[i+2] -- dyb
x = bx
y = by + stack[i+3] -- dyc
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,4)
d = 0
end
+end
top = 0
end
@@ -1066,6 +1124,33 @@ do
if last then
top = top - 1
end
+if top == 4 then
+ local ax, ay, bx, by
+ if swap then
+ ax = x + stack[1]
+ ay = y
+ bx = ax + stack[2]
+ by = ay + stack[3]
+ y = by + stack[4]
+ if last then
+ x = bx + last
+ else
+ x = bx
+ end
+ else
+ ax = x
+ ay = y + stack[1]
+ bx = ax + stack[2]
+ by = ay + stack[3]
+ x = bx + stack[4]
+ if last then
+ y = by + last
+ else
+ y = by
+ end
+ end
+ xycurveto(ax,ay,bx,by,x,y,1 ,4)
+else
for i=1,top,4 do
local ax, ay, bx, by
if swap then
@@ -1093,8 +1178,9 @@ do
end
swap = true
end
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,4)
end
+end
top = 0
end
@@ -1123,7 +1209,7 @@ do
local by = ay + stack[i+3] -- dyb
x = bx + stack[i+4] -- dxc
y = by + stack[i+5] -- dyc
- xycurveto(ax,ay,bx,by,x,y)
+ xycurveto(ax,ay,bx,by,x,y,i,6)
end
x = x + stack[top-1] -- dxc
y = y + stack[top] -- dyc
@@ -1628,7 +1714,8 @@ do
-- todo: round in blend
- local encode = { }
+ local encode = { }
+ local typeone = false
-- this eventually can become a helper
@@ -1645,15 +1732,13 @@ do
end
for i=108,1131 do
local v = 0xF700 + i - 108
--- t[i] = char(band(rshift(v,8),0xFF),band(v,0xFF))
t[i] = char(extract(v,8,8),extract(v,0,8))
end
for i=1132,2048 do
t[i] = char(28,band(rshift(i,8),0xFF),band(i,0xFF))
end
- -- we could inline some ...
setmetatableindex(encode,function(t,k)
- -- 16.16-bit signed fixed value
+ -- as we're cff2 we write 16.16-bit signed fixed value
local r = round(k)
local v = rawget(t,r)
if v then
@@ -1758,42 +1843,6 @@ do
-- precompiling and reuse is much slower than redoing the calls
- -- local function decode(str)
- -- local a, b, c, d, e = byte(str,1,5)
- -- if a == 28 then
- -- if c then
- -- local n = 0x100 * b + c
- -- if n >= 0x8000 then
- -- return n - 0x10000
- -- else
- -- return n
- -- end
- -- end
- -- elseif a < 32 then
- -- return false
- -- elseif a <= 246 then
- -- return a - 139
- -- elseif a <= 250 then
- -- if b then
- -- return a*256 - 63124 + b
- -- end
- -- elseif a <= 254 then
- -- if b then
- -- return -a*256 + 64148 - b
- -- end
- -- else
- -- if e then
- -- local n = 0x100 * b + c
- -- if n >= 0x8000 then
- -- return n - 0x10000 + (0x100 * d + e)/0xFFFF
- -- else
- -- return n + (0x100 * d + e)/0xFFFF
- -- end
- -- end
- -- end
- -- return false
- -- end
-
process = function(tab)
local i = 1
local n = #tab
@@ -1817,14 +1866,20 @@ do
-- stack[top] = -t*256 + 251*256 - tab[i+1] - 108
stack[top] = -t*256 + 64148 - tab[i+1]
i = i + 2
+ elseif typeone then
+ local n = 0x1000000 * tab[i+1] + 0x10000 * tab[i+2] + 0x100 * tab[i+3] + tab[i+4]
+ if n >= 0x8000000 then
+ n = n - 0xFFFFFFFF - 1
+ end
+ stack[top] = n
+ i = i + 5
else
- -- a 16.16 float
- local n = 0x100 * tab[i+1] + tab[i+2]
- if n >= 0x8000 then
- stack[top] = n - 0x10000 + (0x100 * tab[i+3] + tab[i+4])/0xFFFF
- else
- stack[top] = n + (0x100 * tab[i+3] + tab[i+4])/0xFFFF
+ local n1 = 0x100 * tab[i+1] + tab[i+2]
+ local n2 = 0x100 * tab[i+3] + tab[i+4]
+ if n1 >= 0x8000 then
+ n1 = n1 - 0x10000
end
+ stack[top] = n1 + n2/0xFFFF
i = i + 5
end
elseif t == 28 then
@@ -1917,7 +1972,8 @@ do
-- cff 1: (when cff2 strip them)
elseif t == 1 or t == 3 or t == 18 or operation == 23 then
p_getstem() -- at the start
- if true then
+ if version == "cff" then
+-- if true then
if top > 0 then
for i=1,top do
r = r + 1 ; result[r] = encode[stack[i]]
@@ -1932,6 +1988,7 @@ do
-- cff 1: (when cff2 strip them)
elseif t == 19 or t == 20 then
local s = p_getmask() or 0 -- after the stems
+-- if version == "cff" then
if true then
if top > 0 then
for i=1,top do
@@ -1955,7 +2012,8 @@ do
i = i + 1
elseif t == 13 then
hsbw()
- if version == "cff" then
+-- if version == "cff" then
+ if true then
-- we do a moveto over lsb
r = r + 1 ; result[r] = encode[lsb]
r = r + 1 ; result[r] = chars[22]
@@ -1968,8 +2026,40 @@ do
showstate(reverse[t] or "<action>")
end
if top > 0 then
- for i=1,top do
- r = r + 1 ; result[r] = encode[stack[i]]
+ -- if t == 8 and top > 42 then
+ if t == 8 and top > 48 then
+ -- let's assume this only happens for rrcurveto .. the other ones would need some more
+ -- complex handling (cff2 stuff)
+ --
+ -- dx1 dy1 (dx1+dx2) (dy1+dy2) (dx1+dx2+dx3) (dy1+dy2+dy3) rcurveto.
+ local n = 0
+ for i=1,top do
+ -- if n == 42 then
+ if n == 48 then
+-- local zero = encode[0]
+-- local res3 = result[r-3]
+-- local res2 = result[r-2]
+-- local res1 = result[r-1]
+-- local res0 = result[r]
+-- result[r-3] = zero
+-- result[r-2] = zero
+ r = r + 1 ; result[r] = chars[t]
+-- r = r + 1 ; result[r] = zero
+-- r = r + 1 ; result[r] = zero
+-- r = r + 1 ; result[r] = res3
+-- r = r + 1 ; result[r] = res2
+-- r = r + 1 ; result[r] = res1
+-- r = r + 1 ; result[r] = res0
+ n = 1
+ else
+ n = n + 1
+ end
+ r = r + 1 ; result[r] = encode[stack[i]]
+ end
+ else
+ for i=1,top do
+ r = r + 1 ; result[r] = encode[stack[i]]
+ end
end
top = 0
end
@@ -2046,7 +2136,7 @@ do
end
end
- local function processshape(tab,index,hack)
+ local function processshape(glyphs,tab,index,hack)
if not tab then
glyphs[index] = {
@@ -2085,7 +2175,6 @@ do
end
process(tab)
-
if hack then
return x, y
end
@@ -2108,13 +2197,15 @@ do
r = r + 1
result[r] = c_endchar
local stream = concat(result)
+result = nil
-- if trace_charstrings then
-- report("vdata: %s",stream)
-- end
if glyph then
- glyph.stream = stream
+ glyph.stream = stream
+ glyph.width = width
else
- glyphs[index] = { stream = stream }
+ glyphs[index] = { stream = stream, width = width }
end
elseif glyph then
glyph.segments = keepcurve ~= false and result or nil
@@ -2134,6 +2225,7 @@ do
name = charset and charset[index] or nil,
-- sidebearing = 0,
}
+result = nil
else
glyphs[index] = {
boundingbox = boundingbox,
@@ -2141,7 +2233,6 @@ do
name = charset and charset[index] or nil,
}
end
-
if trace_charstrings then
report("width : %s",tostring(width))
report("boundingbox: % t",boundingbox)
@@ -2192,19 +2283,21 @@ do
return privatedata.nominalwidthx or 0, privatedata.defaultwidthx or 0
end
- parsecharstrings = function(fontdata,data,glphs,doshapes,tversion,streams,nobias)
+ parsecharstrings = function(fontdata,data,glphs,doshapes,tversion,streams,nobias,istypeone)
local dictionary = data.dictionaries[1]
local charstrings = dictionary.charstrings
keepcurve = doshapes
version = tversion
+ typeone = istypeone or false
strings = data.strings
globals = data.routines or { }
locals = dictionary.subroutines or { }
charset = dictionary.charset
vsindex = dictionary.vsindex or 0
- glyphs = glphs or { }
+
+ local glyphs = glphs or { }
globalbias, localbias = setbias(globals,locals,nobias)
nominalwidth, defaultwidth = setwidths(dictionary.private)
@@ -2212,7 +2305,7 @@ do
if charstrings then
startparsing(fontdata,data,streams)
for index=1,#charstrings do
- processshape(charstrings[index],index-1)
+ processshape(glyphs,charstrings[index],index-1)
end
if justpass and next(seacs) then
-- old type 1 stuff ... seacs
@@ -2228,7 +2321,7 @@ do
-- this is a real ugly hack but we seldom enter this branch (e.g. old lbr)
local jp = justpass
justpass = false
- local x, y = processshape(charstrings[bindex+1],bindex,true)
+ local x, y = processshape(glyphs,charstrings[bindex+1],bindex,true)
justpass = jp
--
local base = bglyph.stream
@@ -2259,7 +2352,8 @@ do
locals = dictionary.subroutines or { }
charset = false
vsindex = dictionary.vsindex or 0
- glyphs = glphs or { }
+
+ local glyphs = glphs or { }
justpass = streams == true
seacs = { }
@@ -2267,9 +2361,9 @@ do
globalbias, localbias = setbias(globals,locals,nobias)
nominalwidth, defaultwidth = setwidths(dictionary.private)
- processshape(tab,index-1)
+ processshape(glyphs,tab,index-1)
- -- return glyphs[index]
+ return glyphs[index]
end
end
@@ -2434,7 +2528,7 @@ local function readnoselect(f,fontdata,data,glyphs,doshapes,version,streams)
parseprivates(data,data.dictionaries)
readlocals(f,data,dictionary,version)
startparsing(fontdata,data,streams)
- parsecharstrings(fontdata,data,glyphs,doshapes,version,streams)
+ parsecharstrings(fontdata,data,glyphs,doshapes,version,streams,false)
stopparsing(fontdata,data)
end
@@ -2483,7 +2577,7 @@ local function readfdselect(f,fontdata,data,glyphs,doshapes,version,streams)
end
end
else
- -- unsupported format
+ report("unsupported fd index format %i",format)
end
-- hm, always
if maxindex >= 0 then
@@ -2491,21 +2585,30 @@ local function readfdselect(f,fontdata,data,glyphs,doshapes,version,streams)
if cidarray then
setposition(f,header.offset+cidarray)
local dictionaries = readlengths(f,version == "cff2")
- for i=1,#dictionaries do
- dictionaries[i] = readstring(f,dictionaries[i])
- end
- parsedictionaries(data,dictionaries)
- cid.dictionaries = dictionaries
- readcidprivates(f,data)
- for i=1,#dictionaries do
- readlocals(f,data,dictionaries[i],version)
- end
- startparsing(fontdata,data,streams)
- for i=1,#charstrings do
- parsecharstring(fontdata,data,dictionaries[fdindex[i]+1],charstrings[i],glyphs,i,doshapes,version,streams)
--- charstrings[i] = nil
+ if #dictionaries > 0 then
+ for i=1,#dictionaries do
+ dictionaries[i] = readstring(f,dictionaries[i])
+ end
+ parsedictionaries(data,dictionaries)
+ cid.dictionaries = dictionaries
+ readcidprivates(f,data)
+ for i=1,#dictionaries do
+ readlocals(f,data,dictionaries[i],version)
+ end
+ startparsing(fontdata,data,streams)
+ for i=1,#charstrings do
+ local dictionary = dictionaries[fdindex[i]+1]
+ if dictionary then
+ parsecharstring(fontdata,data,dictionary,charstrings[i],glyphs,i,doshapes,version,streams)
+ else
+ -- report("no dictionary for %a : %a => %a",version,i,fdindex[i]+1)
+ end
+ -- charstrings[i] = false
+ end
+ stopparsing(fontdata,data)
+ else
+ report("no cid dictionaries")
end
- stopparsing(fontdata,data)
else
report("no cid array")
end
@@ -2593,6 +2696,8 @@ function readers.cff(f,fontdata,specification)
cffinfo.bluefuzz = data.bluefuzz
cffinfo.stdhw = data.stdhw
cffinfo.stdvw = data.stdvw
+ cffinfo.stemsnaph = data.stemsnaph
+ cffinfo.stemsnapv = data.stemsnapv
end
end
cleanup(data,dictionaries)
@@ -2643,38 +2748,38 @@ end
-- temporary helper needed for checking backend patches
-function readers.cffcheck(filename)
- local f = io.open(filename,"rb")
- if f then
- local fontdata = {
- glyphs = { },
- }
- local header = readheader(f)
- if header.major ~= 1 then
- report("only version %s is supported for table %a",1,"cff")
- return
- end
- local names = readfontnames(f)
- local dictionaries = readtopdictionaries(f)
- local strings = readstrings(f)
- local glyphs = { }
- local data = {
- header = header,
- names = names,
- dictionaries = dictionaries,
- strings = strings,
- glyphs = glyphs,
- nofglyphs = 0,
- }
- --
- parsedictionaries(data,dictionaries,"cff")
- --
- local cid = data.dictionaries[1].cid
- if cid and cid.fdselect then
- readfdselect(f,fontdata,data,glyphs,false)
- else
- readnoselect(f,fontdata,data,glyphs,false)
- end
- return data
- end
-end
+-- function readers.cffcheck(filename)
+-- local f = io.open(filename,"rb")
+-- if f then
+-- local fontdata = {
+-- glyphs = { },
+-- }
+-- local header = readheader(f)
+-- if header.major ~= 1 then
+-- report("only version %s is supported for table %a",1,"cff")
+-- return
+-- end
+-- local names = readfontnames(f)
+-- local dictionaries = readtopdictionaries(f)
+-- local strings = readstrings(f)
+-- local glyphs = { }
+-- local data = {
+-- header = header,
+-- names = names,
+-- dictionaries = dictionaries,
+-- strings = strings,
+-- glyphs = glyphs,
+-- nofglyphs = 0,
+-- }
+-- --
+-- parsedictionaries(data,dictionaries,"cff")
+-- --
+-- local cid = data.dictionaries[1].cid
+-- if cid and cid.fdselect then
+-- readfdselect(f,fontdata,data,glyphs,false)
+-- else
+-- readnoselect(f,fontdata,data,glyphs,false)
+-- end
+-- return data
+-- end
+-- end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-cft.lua b/Master/texmf-dist/tex/context/base/mkiv/font-cft.lua
index cf6c232a606..d6afc01f70f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-cft.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-cft.lua
@@ -6,7 +6,7 @@ if not modules then modules = { } end modules ['font-cft'] = {
license = "see context related readme files"
}
--- context font tables (needs updating)
+-- context font tables (needs updating, only okay for mkiv)
--
-- todo: extra:
--
@@ -439,7 +439,7 @@ do
},
colorschemes = {
default = {
- [1] = { t_string },
+ { t_string },
}
},
files = {
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-chk.lua b/Master/texmf-dist/tex/context/base/mkiv/font-chk.lua
index e18e4b8048a..693823a8662 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-chk.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-chk.lua
@@ -64,7 +64,7 @@ local implement = interfaces.implement
local glyph_code = nodes.nodecodes.glyph
local new_special = nodes.pool.special -- todo: literal
-local hpack_node = node.hpack
+local hpack_node = nodes.hpack
local nuts = nodes.nuts
local tonut = nuts.tonut
@@ -75,7 +75,7 @@ local setchar = nuts.setchar
local nextglyph = nuts.traversers.glyph
local remove_node = nuts.remove
-local insert_node_after = nuts.insert_after
+local insertnodeafter = nuts.insertafter
-- maybe in fonts namespace
-- deletion can be option
@@ -324,7 +324,7 @@ function checkers.missing(head)
local char, font = isglyph(node)
local kind, char = placeholder(font,char)
if kind == "node" then
- insert_node_after(head,node,tonut(char))
+ insertnodeafter(head,node,tonut(char))
head = remove_node(head,node,true)
elseif kind == "char" then
setchar(node,char)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-col.lua b/Master/texmf-dist/tex/context/base/mkiv/font-col.lua
index c47a299060b..ea9b9c98c7b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-col.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-col.lua
@@ -22,7 +22,6 @@ local nuts = nodes.nuts
local setfont = nuts.setfont
------ traverse_char = nuts.traverse_char
local nextchar = nuts.traversers.char
local settings_to_hash = utilities.parsers.settings_to_hash
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-con.lua b/Master/texmf-dist/tex/context/base/mkiv/font-con.lua
index f650e5b03d6..066ea33ed2b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-con.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-con.lua
@@ -388,20 +388,20 @@ function constructors.scale(tfmdata,specification)
--
local mathsize = tonumber(specification.mathsize) or 0
local textsize = tonumber(specification.textsize) or scaledpoints
- local forcedsize = tonumber(parameters.mathsize ) or 0 -- can be set by the feature "mathsize"
+ -- local forcedsize = tonumber(parameters.mathsize ) or 0 -- can be set by the feature "mathsize"
local extrafactor = tonumber(specification.factor ) or 1
- if (mathsize == 2 or forcedsize == 2) and parameters.scriptpercentage then
- scaledpoints = parameters.scriptpercentage * textsize / 100
- elseif (mathsize == 3 or forcedsize == 3) and parameters.scriptscriptpercentage then
- scaledpoints = parameters.scriptscriptpercentage * textsize / 100
- elseif forcedsize > 1000 then -- safeguard
- scaledpoints = forcedsize
- else
- -- in context x and xx also use mathsize
- end
+ -- if context then
+ -- -- do nothing, as we moved this upstream
+ -- elseif (mathsize == 2 or forcedsize == 2) and parameters.scriptpercentage then
+ -- scaledpoints = parameters.scriptpercentage * textsize / 100
+ -- elseif (mathsize == 3 or forcedsize == 3) and parameters.scriptscriptpercentage then
+ -- scaledpoints = parameters.scriptscriptpercentage * textsize / 100
+ -- elseif forcedsize > 1000 then -- safeguard
+ -- scaledpoints = forcedsize
+ -- end
targetparameters.mathsize = mathsize -- context specific
targetparameters.textsize = textsize -- context specific
- targetparameters.forcedsize = forcedsize -- context specific
+ -- targetparameters.forcedsize = forcedsize -- context specific
targetparameters.extrafactor = extrafactor -- context specific
--
local addtounicode = constructors.addtounicode
@@ -534,7 +534,6 @@ function constructors.scale(tfmdata,specification)
local realdimensions = properties.realdimensions
local writingmode = properties.writingmode or "horizontal"
local identity = properties.identity or "horizontal"
- --
local vfonts = target.fonts
if vfonts and #vfonts > 0 then
target.fonts = fastcopy(vfonts) -- maybe we virtualize more afterwards
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua b/Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua
index eead8abff67..2c56b5613fc 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ctx.lua
@@ -1411,7 +1411,7 @@ do -- else too many locals
context(function()
busy = false
mathematics.finishfallbacks(tfmdata,specification,fallbacks)
-tfmdata.original = specification.specification
+ tfmdata.original = specification.specification
local id = definefont(tfmdata)
csnames[id] = specification.cs
properties.id = id
@@ -1449,7 +1449,7 @@ tfmdata.original = specification.specification
end)
return
else
-tfmdata.original = specification.specification
+ tfmdata.original = specification.specification
local id = definefont(tfmdata)
csnames[id] = specification.cs
properties.id = id
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-dsp.lua b/Master/texmf-dist/tex/context/base/mkiv/font-dsp.lua
index 8d7c3d359d9..f0f8e50cfcf 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-dsp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-dsp.lua
@@ -234,6 +234,24 @@ local read_integer = {
streamreader.readinteger4,
}
+directives.register("fonts.streamreader",function()
+
+ read_cardinal = {
+ streamreader.readcardinal1,
+ streamreader.readcardinal2,
+ streamreader.readcardinal3,
+ streamreader.readcardinal4,
+ }
+
+ read_integer = {
+ streamreader.readinteger1,
+ streamreader.readinteger2,
+ streamreader.readinteger3,
+ streamreader.readinteger4,
+ }
+
+end)
+
-- Traditionally we use these unique names (so that we can flatten the lookup list
-- (we create subsets runtime) but I will adapt the old code to newer names.
@@ -360,7 +378,7 @@ local function getaxisscale(segments,minimum,default,maximum,user)
for i=1,#segments do
local s = segments[i]
if type(s) ~= "number" then
- report("using default axis scale")
+ -- report("using default axis scale")
return default
elseif s[1] >= default then
if s[2] == default then
@@ -2177,6 +2195,8 @@ do
--
local usedlookups = false -- setmetatableindex("number")
--
+ local allsteps = { } -- new per 2022-09-25
+
for lookupid=1,noflookups do
local lookup = lookups[lookupid]
local lookuptype = lookup.type
@@ -2214,6 +2234,7 @@ do
steps[nofsteps] = step
local rules = step.rules
if rules then
+ allsteps[#allsteps+1] = step -- new per 2022-09-25
for i=1,#rules do
local rule = rules[i]
local before = rule.before
@@ -2329,29 +2350,31 @@ do
local reported = { }
- local function report_issue(i,what,sequence,kind)
- local name = sequence.name
- if not reported[name] then
- report("rule %i in %s lookup %a has %s lookups",i,what,name,kind)
- reported[name] = true
- end
+ local function report_issue(i,what,step,kind)
+-- if not reported[step] then
+ report("rule %i in step %i of %s has %s lookups",i,step,what,kind)
+-- reported[name] = true
+-- end
end
- for i=lastsequence+1,nofsequences do
- local sequence = sequences[i]
- local steps = sequence.steps
- for i=1,#steps do
- local step = steps[i]
+ -- for i=lastsequence+1,nofsequences do
+ -- local sequence = sequences[i]
+ -- local steps = sequence.steps
+ -- for i=1,#steps do
+ -- local step = steps[i]
+
+ for s=1,#allsteps do -- new per 2022-09-25
+ local step = allsteps[s] -- new per 2022-09-25
local rules = step.rules
if rules then
for i=1,#rules do
local rule = rules[i]
local rlookups = rule.lookups
if not rlookups then
- report_issue(i,what,sequence,"no")
+ report_issue(i,what,s,"no")
elseif not next(rlookups) then
-- can be ok as it aborts a chain sequence
- -- report_issue(i,what,sequence,"empty")
+ -- report_issue(i,what,s,"empty")
rule.lookups = nil
else
-- we can have holes in rlookups flagged false and we can have multiple lookups
@@ -2392,12 +2415,12 @@ do
sublookupcheck[lookupid] = 1
h = nofsublookups
else
- report_issue(i,what,sequence,"missing")
+ report_issue(i,what,s,"missing")
rule.lookups = nil
break
end
else
- report_issue(i,what,sequence,"bad")
+ report_issue(i,what,s,"bad")
rule.lookups = nil
break
end
@@ -2419,7 +2442,7 @@ do
end
end
end
- end
+ -- end -- new per 2022-09-25
for i, n in sortedhash(sublookupcheck) do
local l = lookups[i]
@@ -2515,7 +2538,9 @@ do
local scriptoffset = tableoffset + readushort(f)
local featureoffset = tableoffset + readushort(f)
local lookupoffset = tableoffset + readushort(f)
- local variationsoffset = version > 0x00010000 and (tableoffset + readulong(f)) or 0
+ -- MFK : Rubik-Regular.ttf : we need to delay adding the offset
+ -- local variationsoffset = version > 0x00010000 and (tableoffset + readulong(f)) or 0
+ local variationsoffset = version > 0x00010000 and readulong(f) or 0
if not scriptoffset then
return
end
@@ -2541,7 +2566,8 @@ do
end
--
if variationsoffset > 0 then
- loadvariations(f,fontdata,variationsoffset,lookuptypes,featurehash,featureorder)
+ -- loadvariations(f,fontdata,variationsoffset,lookuptypes,featurehash,featureorder)
+ loadvariations(f,fontdata,tableoffset + variationsoffset,lookuptypes,featurehash,featureorder)
end
end
end
@@ -2878,7 +2904,7 @@ local function readmathglyphinfo(f,fontdata,offset)
if not math then
glyph.math = { accent = accent }
else
- math.accent = accent
+ math.accent = accent -- will become math.topanchor
end
end
end
@@ -2968,7 +2994,7 @@ local function readmathvariants(f,fontdata,offset)
-- advance = readushort(f),
-- }
- local function get(offset,coverage,nofglyphs,construction,kvariants,kparts,kitalic)
+ local function get(offset,coverage,nofglyphs,construction,kvariants,kparts,kitalic,korientation,orientation)
if coverage ~= 0 and nofglyphs > 0 then
local coverage = readcoverage(f,offset+coverage,true)
for i=1,nofglyphs do
@@ -3033,14 +3059,23 @@ local function readmathvariants(f,fontdata,offset)
if italic and italic ~= 0 then
math[kitalic] = italic
end
+ if orientation then
+ math[korientation] = orientation
+ end
end
end
end
end
end
- get(offset,vcoverage,vnofglyphs,vconstruction,"vvariants","vparts","vitalic")
- get(offset,hcoverage,hnofglyphs,hconstruction,"hvariants","hparts","hitalic")
+ -- if LUATEXENGINE == "luametatex" then
+ if CONTEXTLMTXMODE and CONTEXTLMTXMODE > 0 then
+ get(offset,hcoverage,hnofglyphs,hconstruction,"variants","parts","partsitalic","partsorientation","horizontal")
+ get(offset,vcoverage,vnofglyphs,vconstruction,"variants","parts","partsitalic","partsorientation","vertical")
+ else
+ get(offset,vcoverage,vnofglyphs,vconstruction,"vvariants","vparts","vitalic")
+ get(offset,hcoverage,hnofglyphs,hconstruction,"hvariants","hparts","hitalic")
+ end
end
function readers.math(f,fontdata,specification)
@@ -3072,9 +3107,11 @@ function readers.colr(f,fontdata,specification)
local tableoffset = gotodatatable(f,fontdata,"colr",specification.glyphs)
if tableoffset then
local version = readushort(f)
- if version ~= 0 then
+ if version == 0 or version == 1 then
report("table version %a of %a is not supported (yet), maybe font %s is bad",version,"colr",fontdata.filename)
return
+ else
+ -- both versions have this in common
end
if not fontdata.tables.cpal then
report("color table %a in font %a has no mandate %a table","colr",fontdata.filename,"cpal")
@@ -3806,6 +3843,7 @@ function readers.hvar(f,fontdata,specification)
end
local tableoffset = gotodatatable(f,fontdata,"hvar",specification.variable)
if not tableoffset then
+ -- report("no hvar table, expect problems due to messy widths")
return
end
@@ -3819,11 +3857,11 @@ function readers.hvar(f,fontdata,specification)
local variations = { }
local innerindex = { } -- size is mapcount
local outerindex = { } -- size is mapcount
+ local deltas = { }
if variationoffset > 0 then
regions, deltas = readvariationdata(f,variationoffset,factors)
end
-
if not regions then
-- for now .. what to do ?
return
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-enc.lua b/Master/texmf-dist/tex/context/base/mkiv/font-enc.lua
index 608539c59ad..f2f0595ddfa 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-enc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-enc.lua
@@ -26,7 +26,7 @@ local report_encoding = logs.reporter("fonts","encoding")
local encodings = fonts.encodings or { }
fonts.encodings = encodings
-encodings.version = 1.03
+encodings.version = 1.04
encodings.cache = containers.define("fonts", "enc", fonts.encodings.version, true)
encodings.known = allocate { -- sort of obsolete
texnansi = true,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-hsh.lua b/Master/texmf-dist/tex/context/base/mkiv/font-hsh.lua
index 7e90e15024e..89b0dc8238d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-hsh.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-hsh.lua
@@ -37,6 +37,7 @@ local italics = hashes.italics or allocate()
local lastmathids = hashes.lastmathids or allocate()
local dynamics = hashes.dynamics or allocate()
local unicodes = hashes.unicodes or allocate()
+local unislots = hashes.unislots or allocate()
local originals = hashes.originals or allocate()
local modes = hashes.modes or allocate()
local variants = hashes.variants or allocate()
@@ -59,12 +60,13 @@ hashes.italics = italics
hashes.lastmathids = lastmathids
hashes.dynamics = dynamics
hashes.unicodes = unicodes
+hashes.unislots = unislots
hashes.originals = originals
hashes.modes = modes
hashes.variants = variants
-local nodepool = nodes and nodes.pool
-local dummyglyph = nodepool and nodepool.register(nodepool.glyph())
+local nodepool = nodes and nodes.pool
+local dummyglyph = nodepool and nodepool.register(nodepool.glyph())
local nulldata = allocate {
name = "nullfont",
@@ -343,6 +345,22 @@ setmetatableindex(originals, function(t,k) -- always a unicode
end
end)
+setmetatableindex(unislots, function(t,k)
+ if k == true then
+ return unislots[currentfont()]
+ else
+ local characters = identifiers[k].characters
+ local resolved = setmetatableindex(function(t,k)
+ local c = characters[k]
+ local v = c and c.unicode or 0xFFFD
+ t[k] = v
+ return v -- can be a table !
+ end)
+ t[k] = resolved
+ return resolved
+ end
+end)
+
setmetatableindex(modes, function(t,k)
if k == true then
return modes[currentfont()]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-dimensions.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-dimensions.lua
index 760ce37193a..9e664a68484 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-dimensions.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-imp-dimensions.lua
@@ -42,6 +42,7 @@ local function initialize(tfmdata,key,value)
local newwidth = false
local newheight = false
local newdepth = false
+ local newshift = false
if value == "strut" then
newheight = gettexdimen("strutht")
newdepth = gettexdimen("strutdp")
@@ -55,6 +56,7 @@ local function initialize(tfmdata,key,value)
newwidth = spec[1]
newheight = spec[2]
newdepth = spec[3]
+ newshift = spec[4]
local quad = parameters.quad or 0
local ascender = parameters.ascender or 0
local descender = parameters.descender or 0
@@ -87,6 +89,7 @@ local function initialize(tfmdata,key,value)
parameters.x_heigth = (ascender + descender) / 2
end
end
+ -- todo: hshift too
if newwidth or newheight or newdepth then
for unicode, character in next, characters do
local oldwidth = character.width
@@ -100,8 +103,9 @@ local function initialize(tfmdata,key,value)
character.height = height
character.depth = depth
if oldwidth ~= width then
+ -- todo: xoffset
local commands = character.commands
- local hshift = rightcommand[(width - oldwidth) / 2]
+ local hshift = rightcommand[newshift or ((width - oldwidth) / 2)]
if commands then
character.commands = prependcommands (
commands,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-effects.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-effects.lua
index 43ce82b71a6..27a16914b8e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-effects.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-imp-effects.lua
@@ -207,94 +207,63 @@ local rules = {
"UnderbarRuleThickness",
}
--- local commands = char.commands
--- if commands then
--- local command = commands[1]
--- if command and command[1] == "right" then
--- commands[1] = rightcommand[command[2]-snap]
--- end
--- end
-
-- radicals are not yet ok
-local setmathparameters
-local setmathcharacters
-
-if CONTEXTLMTXMODE and CONTEXTLMTXMODE > 0 then
-
- setmathparameters = function(tfmdata,characters,mathparameters,dx,dy,squeeze,multiplier)
- if delta ~= 0 then
- for i=1,#rules do
- local name = rules[i]
- local value = mathparameters[name]
- if value then
- mathparameters[name] = (squeeze or 1) * (value + dy)
- end
+local function setmathparameters(tfmdata,characters,mathparameters,dx,dy,squeeze,multiplier)
+ -- hm, this was "if delta ~= 0 then" but delta was gone
+ if dy ~= 0 then
+ for i=1,#rules do
+ local name = rules[i]
+ local value = mathparameters[name]
+ if value then
+ mathparameters[name] = (squeeze or 1) * (value + dy)
end
end
end
+end
- setmathcharacters = function()
- end
+local function setmathcharacters(tfmdata,characters,mathparameters,dx,dy,squeeze,wdelta,hdelta,ddelta)
-else
+ -- still not the perfect rule
- setmathparameters = function(tfmdata,characters,mathparameters,dx,dy,squeeze,multiplier)
- if delta ~= 0 then
- for i=1,#rules do
- local name = rules[i]
- local value = mathparameters[name]
- if value then
- mathparameters[name] = (squeeze or 1) * (value + dy)
- end
- end
+ local function wdpatch(char)
+ if wsnap ~= 0 then
+ char.width = char.width + wdelta/2
end
end
- setmathcharacters = function(tfmdata,characters,mathparameters,dx,dy,squeeze,wdelta,hdelta,ddelta)
-
- -- still not the perfect rule
-
- local function wdpatch(char)
- if wsnap ~= 0 then
- char.width = char.width + wdelta/2
- end
- end
-
- local function htpatch(char)
- if hsnap ~= 0 then
- local height = char.height
- if height then
- char.height = char.height + 2 * dy
- end
+ local function htpatch(char)
+ if hsnap ~= 0 then
+ local height = char.height
+ if height then
+ char.height = char.height + 2 * dy
end
end
+ end
- local character = characters[0x221A]
+ local character = characters[0x221A]
- if character and character.next then
- local char = character
- local next = character.next
+ if character and character.next then
+ local char = character
+ local next = character.next
+ wdpatch(char)
+ htpatch(char)
+ while next do
+ char = characters[next]
wdpatch(char)
htpatch(char)
- while next do
- char = characters[next]
- wdpatch(char)
- htpatch(char)
- next = char.next
- end
- if char then
- local v = char.vert_variants
- if v then
- local top = v[#v]
- if top then
- local char = characters[top.glyph]
- htpatch(char)
- end
+ next = char.next
+ end
+ if char then
+ local v = char.vert_variants
+ if v then
+ local top = v[#v]
+ if top then
+ local char = characters[top.glyph]
+ htpatch(char)
end
end
end
-
end
end
@@ -304,8 +273,6 @@ end
-- inspect(fonts.hashes.characters[f][c])
-- end }
-local shiftmode = CONTEXTLMTXMODE and CONTEXTLMTXMODE > 0
-
local function manipulateeffect(tfmdata)
local effect = tfmdata.properties.effect
if effect then
@@ -327,49 +294,42 @@ local function manipulateeffect(tfmdata)
local factor = (1 + effect.factor) * factor
local hfactor = (1 + effect.hfactor) * hfactor
local vfactor = (1 + effect.vfactor) * vfactor
- if shiftmode then
- parameters.hshift = hshift
- parameters.vshift = vshift
- else
- vshift = vshift ~= 0 and upcommand[vshift] or false
- hshift = rightcommand[hshift]
- end
+ vshift = vshift ~= 0 and upcommand[vshift] or false
+ hshift = rightcommand[hshift]
for unicode, character in next, characters do
local oldwidth = character.width
local oldheight = character.height
local olddepth = character.depth
if oldwidth and oldwidth > 0 then
character.width = oldwidth + wdelta
- if not shiftmode then
- local commands = character.commands
- if vshift then
- if commands then
- prependcommands ( commands,
- -- show_effect,
- hshift,
- vshift
- )
- else
- character.commands = {
- -- show_effect,
- hshift,
- vshift,
- charcommand[unicode]
- }
- end
+ local commands = character.commands
+ if vshift then
+ if commands then
+ prependcommands ( commands,
+ -- show_effect,
+ hshift,
+ vshift
+ )
+ else
+ character.commands = {
+ -- show_effect,
+ hshift,
+ vshift,
+ charcommand[unicode]
+ }
+ end
+ else
+ if commands then
+ prependcommands ( commands,
+ -- show_effect,
+ hshift
+ )
else
- if commands then
- prependcommands ( commands,
- -- show_effect,
- hshift
- )
- else
- character.commands = {
- -- show_effect,
- hshift,
- charcommand[unicode]
- }
- end
+ character.commands = {
+ -- show_effect,
+ hshift,
+ charcommand[unicode]
+ }
end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-italics.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-italics.lua
index 6c432d7cf4a..8b38c5893b6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-italics.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-imp-italics.lua
@@ -6,34 +6,39 @@ if not modules then modules = { } end modules ['font-imp-italics'] = {
license = "see context related readme files"
}
-local next = next
+local next, tonumber = next, tonumber
local fonts = fonts
local handlers = fonts.handlers
local registerotffeature = handlers.otf.features.register
local registerafmfeature = handlers.afm.features.register
-local function initialize(tfmdata,key,value)
- for unicode, character in next, tfmdata.characters do
- local olditalic = character.italic
- if olditalic and olditalic ~= 0 then
- character.width = character.width + olditalic
- character.italic = 0
- end
- end
-end
-
-local specification = {
- name = "italicwidths",
- description = "add italic to width",
- manipulators = {
- base = initialize,
- node = initialize, -- only makes sense for math
- }
-}
-
-registerotffeature(specification)
-registerafmfeature(specification)
+-- This is a precursor to what we do in lmtx now via tweaks but at some point I
+-- might make this a mkiv features too using staircase kerns.
+
+-- local function initialize(tfmdata,key,value)
+-- local factor = tonumber(value) or 1
+-- for unicode, character in next, tfmdata.characters do
+-- local olditalic = character.italic
+-- if olditalic and olditalic ~= 0 then
+-- character.width = character.width + olditalic
+-- character.italic = 0
+-- character.bottomright = -factor * olditalic -- lmtx only
+-- end
+-- end
+-- end
+--
+-- local specification = {
+-- name = "italicwidths",
+-- description = "add italic to width",
+-- manipulators = {
+-- base = initialize,
+-- node = initialize, -- only makes sense for math
+-- }
+-- }
+--
+-- registerotffeature(specification)
+-- registerafmfeature(specification)
local function initialize(tfmdata,value) -- hm, always value
if value then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-ligatures.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-ligatures.lua
index 091eb5d4b45..02833707ba2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-ligatures.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-imp-ligatures.lua
@@ -104,14 +104,14 @@ local function blockligatures(str)
before = before,
current = { one, two },
after = after,
- lookups = { 1 }, -- not shared !
+ lookups = { 1, false }, -- not shared !
}
revert[new] = {
-- before = before,
current = { one, zwj },
-- after = { two, unpack(after) },
after = { two },
- lookups = { 1 }, -- not shared !
+ lookups = { 1, false }, -- not shared !
}
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-math.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-math.lua
index d2294e93c6f..624f39f029b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-math.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-imp-math.lua
@@ -16,57 +16,41 @@ local registerotffeature = fonts.handlers.otf.features.register
local setmetatableindex = table.setmetatableindex
--- requested for latex but not supported unless really needed in context:
+-- local splitter = lpeg.splitat(",",tonumber)
+-- local lpegmatch = lpeg.match
--
--- registerotffeature {
--- name = "ignoremathconstants",
--- description = "ignore math constants table",
--- initializers = {
--- base = function(tfmdata,value)
--- if value then
--- tfmdata.mathparameters = nil
+-- local function initialize(tfmdata,value)
+-- local mathparameters = tfmdata.mathparameters
+-- if mathparameters then
+-- local sup, sub
+-- if type(value) == "string" then
+-- sup, sub = lpegmatch(splitter,value)
+-- if not sup then
+-- sub, sup = 0, 0
+-- elseif not sub then
+-- sub, sup = sup, 0
-- end
+-- elseif type(value) == "number" then
+-- sup, sub = 0, value
+-- end
+-- if sup then
+-- mathparameters.NoLimitSupFactor = sup
+-- end
+-- if sub then
+-- mathparameters.NoLimitSubFactor = sub
-- end
+-- end
+-- end
+--
+-- registerotffeature {
+-- name = "mathnolimitsmode",
+-- description = "influence nolimits placement",
+-- initializers = {
+-- base = initialize,
+-- node = initialize,
-- }
-- }
--- tfmdata.properties.mathnolimitsmode = tonumber(value) or 0
-
-local splitter = lpeg.splitat(",",tonumber)
-local lpegmatch = lpeg.match
-
-local function initialize(tfmdata,value)
- local mathparameters = tfmdata.mathparameters
- if mathparameters then
- local sup, sub
- if type(value) == "string" then
- sup, sub = lpegmatch(splitter,value)
- if not sup then
- sub, sup = 0, 0
- elseif not sub then
- sub, sup = sup, 0
- end
- elseif type(value) == "number" then
- sup, sub = 0, value
- end
- if sup then
- mathparameters.NoLimitSupFactor = sup
- end
- if sub then
- mathparameters.NoLimitSubFactor = sub
- end
- end
-end
-
-registerotffeature {
- name = "mathnolimitsmode",
- description = "influence nolimits placement",
- initializers = {
- base = initialize,
- node = initialize,
- }
-}
-
local function initialize(tfmdata,value)
tfmdata.properties.nostackmath = value and true
end
@@ -108,7 +92,8 @@ function fonts.helpers.mathscriptslots(tfmdata,textcode)
end
end
end
-local function initialize(tfmdata,key,value)
+
+local function initialize(tfmdata,value)
if value then
local rawdata = tfmdata.shared.rawdata
local rawresources = rawdata and rawdata.resources
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-properties.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-properties.lua
index 21b55aeb2b0..5405737a5bd 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-properties.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-imp-properties.lua
@@ -72,10 +72,10 @@ do
extra = amount
end
end
- parameters.space = amount * emwidth
- parameters.space_stretch = stretch * emwidth
- parameters.space_shrink = shrink * emwidth
- parameters.extra_space = extra * emwidth
+ parameters.space = amount * emwidth
+ parameters.spacestretch = stretch * emwidth
+ parameters.spaceshrink = shrink * emwidth
+ parameters.extraspace = extra * emwidth
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-reorder.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-reorder.lua
index b2dec781c7d..323978cde20 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-reorder.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-imp-reorder.lua
@@ -35,6 +35,7 @@ local trace_reorder = trackers.register("fonts.reorderlookups",function(v) trac
local report_reorder = logs.reporter("fonts","reorder")
local vectors = { }
+otf.vectors = vectors -- kind of private
vectors.arab = {
gsub = {
@@ -97,7 +98,7 @@ function otf.reorderlookups(tfmdata,vector)
if not what then
what = find(kind,"^gsub") and "gsub" or "gpos"
end
- local newwhen = order[what][feature]
+-- local newwhen = order[what][feature]
if not newwhen then
-- skip
elseif not when then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-tweaks.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-tweaks.lua
index 9cbda97fa8f..6d522e48b85 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-tweaks.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-imp-tweaks.lua
@@ -10,10 +10,15 @@ if not context then return end
local addfeature = fonts.handlers.otf.addfeature
+-- The mapping directives avoids a check and copying of the (kind of special code
+-- mapping tables.
+
addfeature {
name = "uppercasing",
type = "substitution",
prepend = true,
+ mapping = true,
+ -- valid = function() return true end,
data = characters.uccodes
}
@@ -21,5 +26,115 @@ addfeature {
name = "lowercasing",
type = "substitution",
prepend = true,
+ mapping = true,
+ -- valid = function() return true end,
data = characters.lccodes
}
+
+if CONTEXTLMTXMODE > 0 then
+
+ local nuts = nodes.nuts
+ local isnextchar = nuts.isnextchar
+ local getdisc = nuts.getdisc
+ local setchar = nuts.setchar
+
+ local disc_code = nodes.nodecodes.disc
+
+ local lccodes = characters.lccodes
+ local uccodes = characters.uccodes
+
+ function fonts.handlers.otf.handlers.ctx_camelcasing(head,dataset,sequence,initialrl,font,dynamic)
+ local first = false
+ local current = head
+ -- local scale = 1000
+ -- local xscale = 1000
+ -- local yscale = 1000
+ local function check(current)
+ while current do
+ -- scale, xscale, yscale = getscales(current)
+ local nxt, char, id = isnextchar(current,font,dynamic) -- ,scale,xscale,yscale)
+ if char then
+ if first then
+ local lower = lccodes[char]
+ if lower ~= char then
+ setchar(current,lower)
+ end
+ else
+ local upper = uccodes[char]
+ if upper ~= char then
+ setchar(current,upper)
+ end
+ first = true
+ end
+ elseif id == disc_code then
+ local pre, post, replace = getdisc(current)
+ if pre then
+ check(pre)
+ end
+ if post then
+ check(post)
+ end
+ if replace then
+ check(replace)
+ end
+ else
+ first = false
+ end
+ current = nxt
+ end
+ end
+ check(current)
+ return head
+ end
+
+ addfeature {
+ nocheck = true,
+ name = "camelcasing",
+ type = "ctx_camelcasing",
+ prepend = true,
+ data = "action",
+ }
+
+end
+
+do -- for the moment this is mostly a demo feature
+
+ local digit = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }
+ local single = { "'" }
+ local double = { '"' }
+
+ local singleprime = 0x2032 -- "′"
+ local doubleprime = 0x2033 -- "″"
+
+ addfeature {
+ -- nocheck = true,
+ name = "primes",
+ type = "chainsubstitution",
+ lookups = {
+ {
+ type = "substitution",
+ data = { ["'"] = singleprime },
+ },
+ {
+ type = "substitution",
+ data = { ["'"] = doubleprime },
+ },
+ },
+ data = {
+ rules = {
+ {
+ before = { digit },
+ current = { single },
+ after = { digit },
+ lookups = { 1 },
+ },
+ {
+ before = { digit },
+ current = { single, single },
+ lookups = { 2, 0 }, -- zero: gsub_remove
+ },
+ },
+ },
+ }
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-imp-unicode.lua b/Master/texmf-dist/tex/context/base/mkiv/font-imp-unicode.lua
index ddb965ec977..7b2cd29bf48 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-imp-unicode.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-imp-unicode.lua
@@ -18,6 +18,8 @@ local registerotffeature = fonts.handlers.otf.features.register
local extraprivates = helpers.extraprivates
local addprivate = helpers.addprivate
+local tounicode = fonts.mappings.tounicode
+
local function initialize(tfmdata)
for i=1,#extraprivates do
local e = extraprivates[i]
@@ -38,8 +40,6 @@ constructors.newfeatures.otf.register {
}
}
-local tounicode = fonts.mappings.tounicode
-
local function initialize(tfmdata,key,value)
if value == "ligatures" then
local private = fonts.constructors and fonts.constructors.privateoffset or 0xF0000
@@ -80,3 +80,25 @@ registerotffeature {
node = initialize,
}
}
+
+local function initialize(tfmdata,key,value)
+ if value then
+-- local c = tfmdata.characters[0x002D]
+-- if c then
+-- c.tounicode = tounicode(0x002D)
+-- end
+ local c = tfmdata.descriptions[0x002D]
+ if c then
+ c.tounicode = tounicode(0x002D)
+ end
+ end
+end
+
+registerotffeature {
+ name = "hardhyphen",
+ description = "hardhyphen",
+ manipulators = {
+ base = initialize,
+ node = initialize,
+ }
+}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi b/Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi
index 271a81c2aa4..c51019fdd60 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ini.mkvi
@@ -474,15 +474,52 @@
\installcorenamespace{mappedfontsize}
+% \unexpanded\def\mapfontsize
+% {\dodoubleargument\font_basics_map_fontsize}
+
+% \def\font_basics_map_fontsize[#from][#to]%
+% {\setvalue{\??mappedfontsize\the\dimexpr#from\relax}{#to}}
+
+% \def\font_basics_set_mapped_fontsize#from%
+% {\ifcsname\??mappedfontsize\the\dimexpr#from\relax\endcsname
+% \lastnamedcs\else#from%
+% \fi}
+
+%letcsname\??mappedfontsize\s!text \endcsname\!!plusone
+\letcsname\??mappedfontsize\s!script \endcsname\!!plustwo
+\letcsname\??mappedfontsize\s!scriptscript\endcsname\!!plusthree
+
\unexpanded\def\mapfontsize
- {\dodoubleargument\font_basics_map_fontsize}
+ {\dotripleargument\font_basics_map_fontsize}
+
+\def\font_basics_map_fontsize[#class][#from][#to]%
+ {\setvalue{%
+ \??mappedfontsize
+ #class:%
+ \ifcsname\??mappedfontsize#from\endcsname\lastnamedcs\else1\fi
+ }{#to}}
+
+\permanent\tolerant\protected\def\checkedmapfontsize[#class]#spacer[#from]#spacer[#to]%
+ {\ifcsname\??mappedfontsize#class:\csname\??mappedfontsize#from\endcsname\endcsname
+ % keep (user) value
+ \else
+ \mapfontsize[#class][#from][#to]%
+ \fi}
-\def\font_basics_map_fontsize[#from][#to]%
- {\setvalue{\??mappedfontsize\the\dimexpr#from\relax}{#to}}
+\permanent\tolerant\def\mappedfontsize#class#from%
+ {\begincsname
+ \??mappedfontsize
+ #class:%
+ \ifcsname\??mappedfontsize#from\endcsname\lastnamedcs\else1\fi
+ \endcsname}
\def\font_basics_set_mapped_fontsize#from%
- {\ifcsname\??mappedfontsize\the\dimexpr#from\relax\endcsname
- \lastnamedcs\else#from%
+ {\ifcsname\??mappedfontsize\fontclass:\fontface\endcsname
+ %\the\dimexpr\lastnamedcs\dimexpr#from\relax\relax
+ %\the\dimexpr\lastnamedcs\dimexpr\bodyfontsize\relax\relax
+ \the\dimexpr\lastnamedcs\dimexpr\normalizedbodyfontsize\relax\relax
+ \else % we could use default
+ #from%
\fi}
\installcorenamespace{fontbodyknown}
@@ -2852,4 +2889,10 @@
\unexpanded\def\usefontpath[#1]%
{\clf_addfontpath{#1}}
+%D NO select discs:
+
+\ifdefined\discretionaryligaturemode
+ \discretionaryligaturemode\plusone
+\fi
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-lib.mkvi b/Master/texmf-dist/tex/context/base/mkiv/font-lib.mkvi
index db9df49cd6f..dcb1ff1bbe7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-lib.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-lib.mkvi
@@ -52,9 +52,9 @@
% \ifcase\directlua{tex.print(callback.list()["provide_charproc_data"] == false and 1 or 0)}\relax
% % this is the generic variant that will become luatex-fonts-ocl once we have
% % more recent versions of luatex 1.13/1.14 on the garden
- \registerctxluafile{font-ocl}{}
+% \registerctxluafile{font-ocl}{}
% \else
-% \registerctxluafile{font-ocm}{}
+ \registerctxluafile{font-ocm}{}
% \fi
% we use otf code for type one
@@ -63,6 +63,8 @@
\registerctxluafile{font-one}{optimize}
\registerctxluafile{font-afk}{}
+\registerctxluafile{font-txt}{}
+
% tfm
\registerctxluafile{font-tpk}{optimize}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-lig.lua b/Master/texmf-dist/tex/context/base/mkiv/font-lig.lua
index 1aed9fc5b58..b753b881d60 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-lig.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-lig.lua
@@ -6,7 +6,7 @@ if not modules then modules = { } end modules ['font-lig'] = {
license = "see context related readme files",
}
--- This module is not loaded but generated a file for plain TeX as a substitute
+-- This module is not loaded but generates a file for plain TeX as a substitute
-- for collapsing the input: "luatex-fonts-lig.lua" with "collapse=yes".
local next = next
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-map.lua b/Master/texmf-dist/tex/context/base/mkiv/font-map.lua
index c983ea96343..4aa937ed162 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-map.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-map.lua
@@ -253,9 +253,9 @@ function mappings.addtounicode(data,filename,checklookups,forceligatures)
local usedmap = cidinfo and fonts.cid.getmap(cidinfo)
local uparser = makenameparser() -- hm, every time?
if usedmap then
- oparser = usedmap and makenameparser(cidinfo.ordering)
- cidnames = usedmap.names
- cidcodes = usedmap.unicodes
+ oparser = usedmap and makenameparser(cidinfo.ordering)
+ cidnames = usedmap.names
+ cidcodes = usedmap.unicodes
end
local ns = 0
local nl = 0
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-mis.lua b/Master/texmf-dist/tex/context/base/mkiv/font-mis.lua
index 18120f524a0..f721be0ef8f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-mis.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-mis.lua
@@ -21,7 +21,7 @@ local readers = otf.readers
if readers then
- otf.version = otf.version or 3.113
+ otf.version = otf.version or 3.133
otf.cache = otf.cache or containers.define("fonts", "otl", otf.version, true)
function fonts.helpers.getfeatures(name,save)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-mps.lua b/Master/texmf-dist/tex/context/base/mkiv/font-mps.lua
index 8bfe23b892b..d75267a09ae 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-mps.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-mps.lua
@@ -279,7 +279,7 @@ local getdepth = nuts.getdepth
local getexpansion = nuts.getexpansion
local isglyph = nuts.isglyph
-local effective_glue = nuts.effective_glue
+local effectiveglue = nuts.effectiveglue
local characters = fonts.hashes.characters
local parameters = fonts.hashes.parameters
@@ -362,7 +362,7 @@ function fonts.metapost.boxtomp(n,kind)
elseif id == kern_code then
dx = dx + getkern(current) * fc
elseif id == glue_code then
- dx = dx + effective_glue(current,parent) * fc
+ dx = dx + effectiveglue(current,parent) * fc
elseif id == hlist_code then
local list = getlist(current)
if list then
@@ -420,7 +420,7 @@ function fonts.metapost.boxtomp(n,kind)
elseif id == kern_code then
dy = dy - getkern(current) * fc
elseif id == glue_code then
- dy = dy - effective_glue(current,parent) * fc
+ dy = dy - effectiveglue(current,parent) * fc
elseif id == rule_code then
local wd, ht, dp = getwhd(current)
local hd = (ht + dp) * fc
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-nod.lua b/Master/texmf-dist/tex/context/base/mkiv/font-nod.lua
index ed307e7c531..a7dcfd9b09b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-nod.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-nod.lua
@@ -70,11 +70,11 @@ local setbox = nuts.setbox
local setchar = nuts.setchar
local setsubtype = nuts.setsubtype
-local copy_node_list = nuts.copy_list
-local hpack_node_list = nuts.hpack
-local flush_node_list = nuts.flush_list
-local protect_glyphs = nuts.protect_glyphs
-local start_of_par = nuts.start_of_par
+local copy_node_list = nuts.copylist
+local hpacknodelist = nuts.hpack
+local flushnodelist = nuts.flushlist
+local protectglyphs = nuts.protectglyphs
+local startofpar = nuts.startofpar
local nextnode = nuts.traversers.node
local nextglyph = nuts.traversers.glyph
@@ -144,7 +144,7 @@ function step_tracers.reset()
for i=1,#collection do
local c = collection[i]
if c then
- flush_node_list(c)
+ flushnodelist(c)
end
end
collection, messages = { }, { }
@@ -158,7 +158,7 @@ function step_tracers.glyphs(n,i)
local c = collection[i]
if c then
local c = copy_node_list(c)
- local b = hpack_node_list(c) -- multiple arguments
+ local b = hpacknodelist(c) -- multiple arguments
setbox(n,b)
end
end
@@ -266,7 +266,7 @@ function step_tracers.codes(i,command,space)
local char, id = isglyph(c)
if char then
showchar(char,id)
- elseif id == dir_code or (id == par_code and start_of_par(c)) then
+ elseif id == dir_code or (id == par_code and startofpar(c)) then
context("[%s]",getdirection(c) or "?")
elseif id == disc_code then
local pre, post, replace = getdisc(c)
@@ -317,7 +317,7 @@ function step_tracers.check(head)
if l then -- hm, can be false
n = l
end
- protect_glyphs(n)
+ protectglyphs(n)
collection[1] = n
end
end
@@ -333,7 +333,7 @@ function step_tracers.register(head)
if l then -- hm, can be false
n = l
end
- protect_glyphs(n)
+ protectglyphs(n)
collection[nc] = n
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ocl.lua b/Master/texmf-dist/tex/context/base/mkiv/font-ocl.lua
index e6a38af5c3e..7d960922f47 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-ocl.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ocl.lua
@@ -370,13 +370,24 @@ if context then
local xmlconvert = xml.convert
local xmlfirst = xml.first
+ -- function otfsvg.filterglyph(entry,index)
+ -- -- we only support decompression in lmtx, so one needs to wipe the
+ -- -- cache when invalid xml is reported
+ -- local svg = xmlconvert(entry.data)
+ -- local root = svg and xmlfirst(svg,"/svg[@id='glyph"..index.."']")
+ -- local data = root and tostring(root)
+ -- -- report_svg("data for glyph %04X: %s",index,data)
+ -- return data
+ -- end
+
function otfsvg.filterglyph(entry,index)
- -- we only support decompression in lmtx, so one needs to wipe the
- -- cache when invalid xml is reported
- local svg = xmlconvert(entry.data)
+ local d = entry.data
+ if gzip.compressed(d) then
+ d = gzip.decompress(d) or d
+ end
+ local svg = xmlconvert(d)
local root = svg and xmlfirst(svg,"/svg[@id='glyph"..index.."']")
local data = root and tostring(root)
- -- report_svg("data for glyph %04X: %s",index,data)
return data
end
@@ -412,6 +423,9 @@ end
--
-- Because a generic setup can be flawed we need to catch bad inkscape runs which add a bit of
-- ugly overhead. Bah.
+ --
+ -- In the long run this method is a dead end because we cannot rely on command line arguments
+ -- etc to be upward compatible (so no real batch tool).
local new = nil
@@ -430,9 +444,10 @@ end
-- local indices = fonts.getindices(tfmdata)
local descriptions = tfmdata.descriptions
local nofshapes = #svgshapes
+ local s_format = inkscapeformat("pdf") -- hack, this will go away when is >= 0 is everywhere
local f_svgfile = formatters["temp-otf-svg-shape-%i.svg"]
local f_pdffile = formatters["temp-otf-svg-shape-%i.pdf"]
- local f_convert = formatters["%s --export-%s=%s\n"]
+ local f_convert = formatters[new and "file-open:%s; export-%s:%s; export-do\n" or "%s --export-%s=%s\n"]
local filterglyph = otfsvg.filterglyph
local nofdone = 0
local processed = { }
@@ -446,7 +461,7 @@ end
local svgfile = f_svgfile(index)
local pdffile = f_pdffile(index)
savedata(svgfile,data)
- inkscape:write(f_convert(svgfile,inkscapeformat("pdf"),pdffile))
+ inkscape:write(f_convert(svgfile,s_format,pdffile))
processed[index] = true
nofdone = nofdone + 1
if nofdone % 25 == 0 then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ocm.lua b/Master/texmf-dist/tex/context/base/mkiv/font-ocm.lua
index 2f6c29e65d8..e54799b235f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-ocm.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ocm.lua
@@ -40,16 +40,16 @@ callback.register("provide_charproc_data",function(action,f,...)
end)
local defaults = {
- [1] = function() return 0, 0 end,
- [2] = function() return 0, 0 end,
- [3] = function() return 0.001, "" end,
+ function() return 0, 0 end,
+ function() return 0, 0 end,
+ function() return 0.001, "" end,
}
local function registeractions(t)
return {
- [1] = t.preroll or defaults[1],
- [2] = t.collect or defaults[2],
- [3] = t.wrapup or defaults[3],
+ t.preroll or defaults[1],
+ t.collect or defaults[2],
+ t.wrapup or defaults[3],
}
end
@@ -408,6 +408,7 @@ local pdftovirtual do
scale = scale * (width / (xform.width * bpfactor))
dy = - depth + dy
+-- png .. no time to figure it out now
-- dx = 0
-- dy = 0
local object = pdf.immediateobj("stream",f_stream(width,scale,scale,dx,dy,c)), width
@@ -558,6 +559,9 @@ local initializesvg do
--
-- Because a generic setup can be flawed we need to catch bad inkscape runs which add a bit of
-- ugly overhead. Bah.
+ --
+ -- In the long run this method is a dead end because we cannot rely on command line arguments
+ -- etc to be upward compatible (so no real batch tool).
local new = nil
@@ -576,9 +580,10 @@ local initializesvg do
-- local indices = fonts.getindices(tfmdata)
local descriptions = tfmdata.descriptions
local nofshapes = #svgshapes
+ local s_format = inkscapeformat("pdf") -- hack, this will go away when is >= 0 is everywhere
local f_svgfile = formatters["temp-otf-svg-shape-%i.svg"]
local f_pdffile = formatters["temp-otf-svg-shape-%i.pdf"]
- local f_convert = formatters["%s --export-%s=%s\n"]
+ local f_convert = formatters[new and "file-open:%s; export-%s:%s; export-do\n" or "%s --export-%s=%s\n"]
local filterglyph = otfsvg.filterglyph
local nofdone = 0
local processed = { }
@@ -592,7 +597,7 @@ local initializesvg do
local svgfile = f_svgfile(index)
local pdffile = f_pdffile(index)
savedata(svgfile,data)
- inkscape:write(f_convert(svgfile,inkscapeformat("pdf"),pdffile))
+ inkscape:write(f_convert(svgfile,s_format,pdffile))
processed[index] = true
nofdone = nofdone + 1
if nofdone % 25 == 0 then
@@ -695,34 +700,53 @@ end
local initializepng do
- local otfpng = otf.png or { }
- otf.png = otfpng
- otf.pngenabled = true
+ -- Alternatively we can create a single pdf file with -adjoin and then pick up pages from
+ -- that file but creating thousands of small files is no fun either.
+ local otfpng = otf.png or { }
+ otf.png = otfpng
+ otf.pngenabled = true
local report_png = logs.reporter("fonts","png conversion")
-
local loaddata = io.loaddata
local savedata = io.savedata
local remove = os.remove
-
- local runner = sandbox and sandbox.registerrunner {
- name = "otfpng",
- program = "gm",
- template = "convert -quality 100 temp-otf-png-shape.png temp-otf-png-shape.pdf > temp-otf-svg-shape.log",
- -- reporter = report_png,
- }
-
- if not runner then
- --
- -- poor mans variant for generic:
- --
- runner = function()
- return os.execute("gm convert -quality 100 temp-otf-png-shape.png temp-otf-png-shape.pdf > temp-otf-svg-shape.log")
+ local texhack = [[\startTEXpage\externalfigure[temp-otf-png-shape.png]\stopTEXpage]]
+ local runner = false
+ local method = "gm"
+
+ local function initialize(v)
+ if v == "lmtx" then
+ report_png("using lmtx converter, slow but okay")
+ runner = sandbox.registerrunner {
+ -- reporter = report_png,
+ name = "otfpng",
+ program = "mtxrun --script context",
+ template = "--once --batch --silent temp-otf-png-shape.tex > temp-otf-svg-shape.log",
+ }
+ method = v
+ elseif v == "mutool" then
+ report_png("using lmtx converter, no mask, black background")
+ runner = sandbox.registerrunner {
+ -- reporter = report_png,
+ name = "otfpng",
+ program = "mutool",
+ template = "convert -o temp-otf-png-shape.pdf temp-otf-png-shape.png",
+ }
+ method = v
+ else
+ report_png("using lmtx converter, no mask, white background")
+ runner = sandbox.registerrunner {
+ -- reporter = report_png,
+ name = "otfpng",
+ program = "gm",
+ template = "convert -quality 100 temp-otf-png-shape.png temp-otf-png-shape.pdf > temp-otf-svg-shape.log",
+ }
+ method = "gm"
end
+ return runner
end
- -- Alternatively we can create a single pdf file with -adjoin and then pick up pages from
- -- that file but creating thousands of small files is no fun either.
+ directives.register("backend.otfpng.method",initialize)
local files = utilities.files
local openfile = files.open
@@ -735,12 +759,19 @@ local initializepng do
local pdfshapes = { }
local pngfile = "temp-otf-png-shape.png"
local pdffile = "temp-otf-png-shape.pdf"
+ local logfile = "temp-otf-png-shape.log"
+ local texfile = "temp-otf-png-shape.tex"
+ local tucfile = "temp-otf-png-shape.tuc"
local nofdone = 0
local indices = sortedkeys(pngshapes) -- can be sparse
local nofindices = #indices
report_png("processing %i png containers",nofindices)
statistics.starttiming()
local filehandle = openfile(filename)
+ savedata(texfile,texhack) -- not always used but who cares
+ if not runner then
+ initialize()
+ end
for i=1,nofindices do
local index = indices[i]
local entry = pngshapes[index]
@@ -771,6 +802,9 @@ local initializepng do
report_png("processing %i pdf results",nofindices)
remove(pngfile)
remove(pdffile)
+ remove(logfile)
+ remove(texfile)
+ remove(tucfile)
statistics.stoptiming()
if statistics.elapsedseconds then
report_png("png conversion time %s",statistics.elapsedseconds() or "-")
@@ -789,7 +823,7 @@ local initializepng do
end
local pdffile = containers.read(otf.pdfcache,hash)
local pdfshapes = pdffile and pdffile.pdfshapes
- if not pdfshapes or pdffile.timestamp ~= timestamp then
+ if not pdfshapes or pdffile.timestamp ~= timestamp or pdffile.timestamp ~= method then
local pngfile = containers.read(otf.pngcache,hash)
local filename = tfmdata.resources.filename
local pngshapes = pngfile and pngfile.pngshapes
@@ -797,6 +831,7 @@ local initializepng do
containers.write(otf.pdfcache, hash, {
pdfshapes = pdfshapes,
timestamp = timestamp,
+ method = method,
})
end
--
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-onr.lua b/Master/texmf-dist/tex/context/base/mkiv/font-onr.lua
index c33b09f9e2a..9e5a012bd5f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-onr.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-onr.lua
@@ -211,6 +211,8 @@ do
+ P(1)
)^0 * Carg(1)
+ -- cache this?
+
local function loadpfbvector(filename,shapestoo,streams)
-- for the moment limited to encoding only
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-osd.lua b/Master/texmf-dist/tex/context/base/mkiv/font-osd.lua
index 87453d9e2d9..f35be2cd188 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-osd.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-osd.lua
@@ -6,7 +6,6 @@ if not modules then modules = { } end modules ['font-osd'] = { -- script devanag
license = "see context related readme files"
}
-
-- we need to check nbsphash (context only)
-- A few remarks:
@@ -56,6 +55,11 @@ if not modules then modules = { } end modules ['font-osd'] = { -- script devanag
-- By now we have yet another incremental improved version. In the end I might
-- rewrite the code.
--
+-- At the start of 2022 Kauśika spent a lot of time testing combinations of fonts
+-- and scripts and in the process some more tracing was added as well as a mixed
+-- conjuncts options that can deal with fuzzy fonts. The machinery does what it has
+-- to do but some fonts expect more magic to be applied.
+--
-- Hans Hagen, PRAGMA-ADE, Hasselt NL
-- Todo:
@@ -81,8 +85,10 @@ if not modules then modules = { } end modules ['font-osd'] = { -- script devanag
-- malayalam, oriya, tamil and tolugu but not all are checked. Also, some of the
-- code below might need to be adapted to the extra scripts.
-local insert, imerge, copy, tohash = table.insert, table.imerge, table.copy, table.tohash
-local next, type = next, type
+local insert, remove, imerge, copy, tohash = table.insert, table.remove, table.imerge, table.copy, table.tohash
+local next, type, rawget = next, type, rawget
+local formatters = string.formatters
+local settings_to_hash = utilities.parsers.settings_to_hash
local report = logs.reporter("otf","devanagari")
@@ -98,6 +104,8 @@ local methods = fonts.analyzers.methods
local otffeatures = fonts.constructors.features.otf
local registerotffeature = otffeatures.register
+local trace_steps = false
+
local nuts = nodes.nuts
local getnext = nuts.getnext
@@ -118,11 +126,11 @@ local setstate = nuts.setstate
local ischar = nuts.ischar
-local insert_node_after = nuts.insert_after
+local insertnodeafter = nuts.insertafter
local copy_node = nuts.copy
local remove_node = nuts.remove
-local flush_list = nuts.flush_list
-local flush_node = nuts.flush_node
+local flushlist = nuts.flushlist
+local flushnode = nuts.flushnode
local copyinjection = nodes.injections.copy -- KE: is this necessary? HH: probably not as positioning comes later and we rawget/set
@@ -130,7 +138,8 @@ local unsetvalue = attributes.unsetvalue
local fontdata = fonts.hashes.identifiers
-local a_syllabe = attributes.private('syllabe')
+local a_syllabe = "syllable" -- attributes.private('syllabe') -- can be just a property key
+local a_reordered = "reordered" -- attributes.private('reordered') -- can be just a property key
local dotted_circle = 0x25CC
local c_nbsp = 0x00A0
@@ -156,9 +165,14 @@ replace_all_nbsp = function(head) -- delayed definition
end
local processcharacters = nil
+local logprocess = nil
if context then
- local fontprocesses = fonts.hashes.processes
+
+ local fontprocesses = fonts.hashes.processes
+ local tracers = nodes.tracers
+ local registermessage = (tracers and tracers.steppers.message) or function() end
+
function processcharacters(head,font)
local processors = fontprocesses[font]
for i=1,#processors do
@@ -166,7 +180,24 @@ if context then
end
return head
end
+
+ -- When we'retrying to fix something it can be handy to have some more
+ -- details available.
+
+ trackers.register("otf.steps", function(v) trace_steps = v end)
+
+ logprocess = function(str)
+ if trace_steps then
+ registermessage("devanagari %s",str)
+ if trace_steps == "silent" then
+ return
+ end
+ end
+ report(str)
+ end
+
else
+
function processcharacters(head,font)
local processors = fontdata[font].shared.processes
for i=1,#processors do
@@ -174,6 +205,11 @@ else
end
return head
end
+
+ logprocess = function(str)
+ -- do nothing
+ end
+
end
-- We can assume that script are not mixed in the source but if that is the case
@@ -302,7 +338,7 @@ local after_subscript = indicgroups.after_subscript
local before_main = indicgroups.before_main
local after_main = indicgroups.after_main
-local mark_four = table.merged (
+local mark_pre_above_below_post = table.merged (
pre_mark,
above_mark,
below_mark,
@@ -315,6 +351,14 @@ local mark_above_below_post = table.merged (
post_mark
)
+-- Handy
+
+local devanagarihash = table.setmetatableindex(function(t,k)
+ local v = fontdata[k].resources.devanagari or false
+ t[k] = v
+ return v
+end)
+
-- We use some pseudo features as we need to manipulate the nodelist based
-- on information in the font as well as already applied features. We can
-- probably replace some of the code below by injecting 'real' features
@@ -460,7 +504,7 @@ local function initializedevanagi(tfmdata)
local devanagari = resources.devanagari
if not devanagari then
--
- report("adding devanagari features to font")
+ report("adding features to font")
--
local gsubfeatures = resources.features.gsub
local sequences = resources.sequences
@@ -491,7 +535,9 @@ local function initializedevanagi(tfmdata)
for k, v in next, pre_mark do
local locl = coverage[k]
if locl then
- if #locl > 0 then --contextchain; KE: is this right?
+ -- if #locl > 0 then we have a list otherwise a hash; we actually should
+ -- test properly for gsub_...
+ if #locl > 0 then
for j=1,#locl do
local ck = locl[j]
local f = ck[4]
@@ -512,6 +558,8 @@ local function initializedevanagi(tfmdata)
end
end
end
+ else
+ -- useless next if, because locl is a table
end
if locl then
reorder_matras.steps[1].coverage[locl] = true
@@ -524,7 +572,7 @@ local function initializedevanagi(tfmdata)
if basic_shaping_forms[k] then
lastmatch = lastmatch + 1
if s ~= lastmatch then
- table.insert(sequences, lastmatch, table.remove(sequences, s))
+ insert(sequences,lastmatch,remove(sequences,s))
end
end
end
@@ -545,9 +593,7 @@ local function initializedevanagi(tfmdata)
local vatucache = { }
local pstfcache = { }
local seqsubset = { }
- local rephstep = {
- coverage = { } -- will be adapted each work
- }
+ local rephstep = { coverage = { } } -- will be adapted each work
local devanagari = {
reph = false,
vattu = false,
@@ -577,7 +623,7 @@ local function initializedevanagi(tfmdata)
local has_pstf = features.pstf
if has_rphf and has_rphf[script] then
devanagari.reph = true
- elseif (has_blwf and has_blwf[script] ) or (has_vatu and has_vatu[script] ) then
+ elseif (has_blwf and has_blwf[script]) or (has_vatu and has_vatu[script]) then
devanagari.vattu = true
for i=1,nofsteps do
local step = steps[i]
@@ -585,10 +631,8 @@ local function initializedevanagi(tfmdata)
if coverage then
for k, v in next, coverage do
for h, w in next, halant do
- if v[h] then
- if not blwfcache[k] then
- blwfcache[k] = v
- end
+ if v[h] and not blwfcache[k] then
+ blwfcache[k] = v
end
if has_vatu and has_vatu[script] and not vatucache[k] then
vatucache[k] = v
@@ -610,34 +654,40 @@ local function initializedevanagi(tfmdata)
for k, v in next, ra do
local r = coverage[k]
if r then
+ -- if #r > 0 then we have a list otherwise a hash; we actually should
+ -- test properly for gsub_...
local found = false
- if #r > 0 then -- contextchain; KE: is this right?
+ if #r > 0 then
for j=1,#r do
- local ck = r[j]
- local f = ck[4]
+ local ck = r[j]
+ local f = ck[4]
local chainlookups = ck[6]
- if chainlookups and chainlookups[f] then --KE: why is check for chainlookups[f] necessacy???
+ if chainlookups then
local chainlookup = chainlookups[f]
- for j=1,#chainlookup do
- local chainstep = chainlookup[j]
- local steps = chainstep.steps
- local nofsteps = chainstep.nofsteps
- for i=1,nofsteps do
- local step = steps[i]
- local coverage = step.coverage
- if coverage then
- local h = coverage[k]
- if h then
- for k, v in next, h do
- found = v and v.ligature
+ if chainlookup then
+ for j=1,#chainlookup do
+ local chainstep = chainlookup[j]
+ local steps = chainstep.steps
+ local nofsteps = chainstep.nofsteps
+ for i=1,nofsteps do
+ local step = steps[i]
+ local coverage = step.coverage
+ if coverage then
+ local h = coverage[k]
+ if h then
+ for k, v in next, h do
+ if v then
+ found = tonumber(v) or v.ligature
+ if found then
+ pre_base_reordering_consonants[found] = true
+ break
+ end
+ end
+ end
if found then
- pre_base_reordering_consonants[found] = true
break
end
end
- if found then
- break
- end
end
end
end
@@ -646,10 +696,12 @@ local function initializedevanagi(tfmdata)
end
else
for k, v in next, r do
- found = v and v.ligature
- if found then
- pre_base_reordering_consonants[found] = true
- break
+ if v then
+ found = tonumber(v) or v.ligature
+ if found then
+ pre_base_reordering_consonants[found] = true
+ break
+ end
end
end
end
@@ -667,18 +719,21 @@ local function initializedevanagi(tfmdata)
local step = steps[i]
local coverage = step.coverage
if coverage then
- local reph, rephbase = false, false
+ local reph = false
+ local base = false
if kind == "rphf" then
-- rphf acts on consonant + halant
for k, v in next, ra do
local r = coverage[k]
if r then
- rephbase = k
+ -- if #r > 0 then we have a list otherwise a hash; we actually should
+ -- test properly for gsub_...
+ base = k
local h = false
- if #r > 0 then --contextchain; KE: is this right?
+ if #r > 0 then
for j=1,#r do
- local ck = r[j]
- local f = ck[4]
+ local ck = r[j]
+ local f = ck[4]
local chainlookups = ck[6]
if chainlookups then
local chainlookup = chainlookups[f]
@@ -695,7 +750,7 @@ local function initializedevanagi(tfmdata)
for k, v in next, halant do
local h = r[k]
if h then
- reph = h.ligature or false
+ reph = tonumber(h) or h.ligature or false
break
end
end
@@ -712,7 +767,7 @@ local function initializedevanagi(tfmdata)
for k, v in next, halant do
local h = r[k]
if h then
- reph = h.ligature or false
+ reph = tonumber(h) or h.ligature or false
break
end
end
@@ -723,7 +778,9 @@ local function initializedevanagi(tfmdata)
end
end
end
- seqsubset[#seqsubset+1] = { kind, coverage, reph, rephbase }
+-- if reph then
+ seqsubset[#seqsubset+1] = { kind, coverage, reph, base }
+-- end
end
end
end
@@ -737,18 +794,20 @@ local function initializedevanagi(tfmdata)
for k, v in next, halant do
local h = coverage[k]
if h then
+ -- if #h > 0 then we have a list otherwise a hash; we actually should
+ -- test properly for gsub_...
local found = false
- if #h > 0 then -- contextchain; KE: is this right?
+ if #h > 0 then
for j=1,#h do
- local ck = h[j]
- local f = ck[4]
+ local ck = h[j]
+ local f = ck[4]
local chainlookups = ck[6]
if chainlookups then
local chainlookup = chainlookups[f]
for j=1,#chainlookup do
local chainstep = chainlookup[j]
- local steps = chainstep.steps
- local nofsteps = chainstep.nofsteps
+ local steps = chainstep.steps
+ local nofsteps = chainstep.nofsteps
for i=1,nofsteps do
local step = steps[i]
local coverage = step.coverage
@@ -756,10 +815,12 @@ local function initializedevanagi(tfmdata)
local h = coverage[k]
if h then
for k, v in next, h do
- found = v and v.ligature
- if found then
- pre_base_reordering_consonants[found] = true
- break
+ if v then
+ found = tonumber(v) or v.ligature
+ if found then
+ pre_base_reordering_consonants[found] = true
+ break
+ end
end
end
if found then
@@ -773,7 +834,7 @@ local function initializedevanagi(tfmdata)
end
else
for k, v in next, h do
- found = v and v.ligature
+ found = v and (tonumber(v) or v.ligature)
if found then
pre_base_reordering_consonants[found] = true
break
@@ -800,9 +861,9 @@ local function initializedevanagi(tfmdata)
sharedfeatures["dv03"] = true -- dv03_reorder_pre_base_reordering_consonants
sharedfeatures["dv04"] = true -- dv04_remove_joiners
end
- if script == "mlym" or script == "taml" then
- devanagari.left_matra_before_base = true
- end
+ -- if script == "mlym" or script == "taml" then
+ -- devanagari.movematra = "leftbeforebase"
+ -- end
end
end
end
@@ -816,6 +877,49 @@ registerotffeature {
},
}
+local function initializeconjuncts(tfmdata,value)
+ if value then
+ local resources = tfmdata.resources
+ local devanagari = resources.devanagari
+ if devanagari then
+ -- quit was the old situation
+ local conjuncts = "auto" -- mixed|continue|quit|auto
+ local movematra = "auto" -- default|leftbeforebase|auto
+ if type(value) == "string" and value ~= "auto" then
+ value = settings_to_hash(value)
+ conjuncts = rawget(value,"conjuncts") or conjuncts
+ movematra = rawget(value,"movematra") or movematra
+ end
+ if conjuncts == "auto" then
+ conjuncts = "mixed" -- for all scripts ?
+ end
+ if movematra == "auto" and
+ script == "mlym" or
+ script == "taml" then
+ movematra = "leftbeforebase"
+ else
+ movematra = "default"
+ end
+ devanagari.conjuncts = conjuncts
+ devanagari.movematra = movematra
+ --
+ if trace_steps then
+ report("conjuncts %a, movematra %a",conjuncts,movematra)
+ end
+ --
+ end
+ end
+end
+
+registerotffeature {
+ name = "indic",
+ description = "control indic",
+ default = "auto",
+ initializers = {
+ node = initializeconjuncts,
+ },
+}
+
local show_syntax_errors = false
local function inject_syntax_error(head,current,char)
@@ -826,7 +930,7 @@ local function inject_syntax_error(head,current,char)
else
setchar(current,dotted_circle)
end
- return insert_node_after(head,current,signal)
+ return insertnodeafter(head,current,signal)
end
-- hm, this is applied to one character:
@@ -874,38 +978,44 @@ local function initialize_one(font,attr) -- we need a proper hook into the datas
end
-local function contextchain(contexts, n)
+-- HH: somehow we can get a non context here so for now we check for .n
+
+local function contextchain(contexts,n)
local char = getchar(n)
- for k=1,#contexts do
- local ck = contexts[k]
- local seq = ck[3]
- local f = ck[4]
- local l = ck[5]
- if (l - f) == 1 and seq[f+1][char] then
- local ok = true
- local c = n
- for i=l+1,#seq do
- c = getnext(c)
- if not c or not seq[i][ischar(c)] then
- ok = false
- break
- end
- end
- if ok then
- c = getprev(n)
- for i=1,f-1 do
- c = getprev(c)
- if not c or not seq[f-i][ischar(c)] then
+ if not contexts.n then
+ return contexts[char]
+ else
+ for k=1,#contexts do
+ local ck = contexts[k]
+ local seq = ck[3]
+ local f = ck[4]
+ local l = ck[5]
+ if (l - f) == 1 and seq[f+1][char] then
+ local ok = true
+ local c = n
+ for i=l+1,#seq do
+ c = getnext(c)
+ if not c or not seq[i][ischar(c)] then
ok = false
+ break
end
end
- end
- if ok then
- return true
+ if ok then
+ c = getprev(n)
+ for i=1,f-1 do
+ c = getprev(c)
+ if not c or not seq[f-i][ischar(c)] then
+ ok = false
+ end
+ end
+ end
+ if ok then
+ return true
+ end
end
end
+ return false
end
- return false
end
local function order_matras(c)
@@ -937,11 +1047,13 @@ local function order_matras(c)
end
end
+local swapped = table.swapped(states)
+
local function reorder_one(head,start,stop,font,attr,nbspaces)
local reph, vattu, blwfcache, vatucache, pstfcache = initialize_one(font,attr) -- todo: a hash[font]
- local devanagari = fontdata[font].resources.devanagari
+ -- local devanagari = devanagarihash[font]
local current = start
local n = getnext(start)
local base = nil
@@ -968,7 +1080,10 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
if current == stop then
stop = getprev(stop)
head = remove_node(head,current)
- flush_node(current)
+ flushnode(current)
+ if trace_steps then
+ logprocess("reorder one, remove nbsp")
+ end
return head, stop, nbspaces
else
nbspaces = nbspaces + 1
@@ -998,7 +1113,7 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
tempcurrent = processcharacters(tempcurrent,font)
setstate(tempcurrent,unsetvalue)
if getchar(next) == getchar(tempcurrent) then
- flush_list(tempcurrent)
+ flushlist(tempcurrent)
if show_syntax_errors then
head, current = inject_syntax_error(head,current,char)
end
@@ -1006,12 +1121,15 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
setchar(current,getchar(tempcurrent)) -- we assumes that the result of blwf consists of one node
local freenode = getnext(current)
setlink(current,tmp)
- flush_node(freenode)
- flush_list(tempcurrent)
+ flushnode(freenode)
+ flushlist(tempcurrent)
if changestop then
stop = current
end
end
+ if trace_steps then
+ logprocess("reorder one, handle nbsp")
+ end
end
end
end
@@ -1073,6 +1191,9 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
if lastcons == stop then
stop = n
end
+ if trace_steps then
+ logprocess("reorder one, handle halant")
+ end
end
end
@@ -1102,6 +1223,9 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
if matra == stop then
stop = n
end
+ if trace_steps then
+ logprocess("reorder one, handle matra")
+ end
end
local current = start
@@ -1148,14 +1272,19 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
end
local tpm = twopart_mark[ch]
- while tpm do
- local extra = copy_node(n)
- copyinjection(extra,n)
- ch = tpm[1]
- setchar(n,ch)
- setchar(extra,tpm[2])
- head = insert_node_after(head,current,extra)
- tpm = twopart_mark[ch]
+ if tpm then
+ while tpm do
+ local extra = copy_node(n)
+ copyinjection(extra,n)
+ ch = tpm[1]
+ setchar(n,ch)
+ setchar(extra,tpm[2])
+ head = insertnodeafter(head,current,extra)
+ tpm = twopart_mark[ch]
+ end
+ if trace_steps then
+ logprocess("reorder one, handle mark")
+ end
end
while c ~= stop and dependent_vowel[ch] do
c = n
@@ -1178,10 +1307,11 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
local bp = getprev(firstcons)
local cn = getnext(current)
local last = getnext(c)
+ local done = false
while cn ~= last do
-- move pre-base matras...
if pre_mark[getchar(cn)] then
- if devanagari.left_matra_before_base then
+ if devanagarihash[font].movematra == "leftbeforebase" then
local prev, next = getboth(cn)
setlink(prev,next)
if cn == stop then
@@ -1219,6 +1349,7 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
end
cn = next
end
+ done = true
elseif current ~= base and dependent_vowel[getchar(cn)] then
local prev, next = getboth(cn)
if next then
@@ -1231,6 +1362,7 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
setlink(b,cn,getnext(b))
order_matras(cn)
cn = next
+ done = true
elseif current == base and dependent_vowel[getchar(cn)] then
local cnn = getnext(cn)
order_matras(cn)
@@ -1244,10 +1376,15 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
end
allreordered = c == stop
current = getnext(c)
+ if done and trace_steps then
+ logprocess("reorder one, matra")
+ end
end
if reph or vattu then
- local current, cns = start, nil
+ local current = start
+ local cns = nil
+ local done = false
while current ~= stop do
local c = current
local n = getnext(current)
@@ -1280,6 +1417,7 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
local next = getnext(b)
setlink(c,next)
setlink(b,current)
+ done = true
end
elseif cns and getnext(cns) ~= current then -- todo: optimize next
-- position below-base Ra (vattu) following the consonants on which it is placed (either the base consonant or one of the pre-base consonants)
@@ -1288,6 +1426,7 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
setlink(cp,n)
setlink(cns,current) -- cns ?
setlink(c,cnsn)
+ done = true
if c == stop then
stop = cp
break
@@ -1327,15 +1466,18 @@ local function reorder_one(head,start,stop,font,attr,nbspaces)
end
current = getnext(current)
end
+ if done and trace_steps then
+ logprocess("reorder one, handle reph and vata") -- todo: boolean
+ end
end
if getchar(base) == c_nbsp then
nbspaces = nbspaces - 1
if base == stop then
- stop = getprev(stop)
+ stop = getprev(stop)
end
head = remove_node(head,base)
- flush_node(base)
+ flushnode(base)
end
return head, stop, nbspaces
@@ -1373,6 +1515,9 @@ function handlers.devanagari_reorder_matras(head,start) -- no leak
setlink(current,start)
-- setlink(current,start,next) -- maybe
start = startnext
+ if trace_steps then
+ logprocess("reorder matra")
+ end
break
-- elseif consonant[char] and (not getstate(current) or getstate(current,s_init) then
-- startnext = getnext(start)
@@ -1438,6 +1583,9 @@ function handlers.devanagari_reorder_reph(head,start)
local char = ischar(current,startfont)
if char and getprop(current,a_syllabe) == startattr then
if halant[char] then
+ if trace_steps then
+ logprocess("reorder reph, handling halant")
+ end
local next = getnext(current)
if next then
local nextchar = ischar(next,startfont)
@@ -1475,6 +1623,9 @@ function handlers.devanagari_reorder_reph(head,start)
local char = ischar(current,startfont)
if char and getprop(current,a_syllabe) == startattr then
if consonant[char] and not getstate(current,s_pref) then
+ if trace_steps then
+ logprocess("reorder reph, handling consonant")
+ end
startnext = getnext(start)
head = remove_node(head,start)
setlink(current,start)
@@ -1506,6 +1657,9 @@ function handlers.devanagari_reorder_reph(head,start)
local char = ischar(current,startfont)
if char and getprop(current,a_syllabe) == startattr then
if getstate(current,s_pstf) then -- post-base
+ if trace_steps then
+ logprocess("reorder reph, before postscript, post base")
+ end
startnext = getnext(start)
head = remove_node(head,start)
setlink(getprev(current),start)
@@ -1514,12 +1668,15 @@ function handlers.devanagari_reorder_reph(head,start)
start = startnext
startattr = getprop(start,a_syllabe)
break
- elseif not c and ( vowel_modifier[char] or stress_tone_mark[char] ) then
+ elseif not c and (vowel_modifier[char] or stress_tone_mark[char]) then
c = current
end
current = getnext(current)
else
if c then
+ if trace_steps then
+ logprocess("reorder reph, before postscript")
+ end
startnext = getnext(start)
head = remove_node(head,start)
setlink(getprev(c),start)
@@ -1551,7 +1708,13 @@ function handlers.devanagari_reorder_reph(head,start)
local state = getstate(current)
if before_subscript[rephbase] and (state == s_blwf or state == s_pstf) then
c = current
+ if trace_steps then
+ logprocess("reorder reph, before subscript")
+ end
elseif after_subscript[rephbase] and (state == s_pstf) then
+ if trace_steps then
+ logprocess("reorder reph, after subscript")
+ end
c = current
end
current = getnext(current)
@@ -1589,6 +1752,9 @@ function handlers.devanagari_reorder_reph(head,start)
end
end
if start ~= current then
+ if trace_steps then
+ logprocess("reorder reph, to end")
+ end
startnext = getnext(start)
head = remove_node(head,start)
setlink(start,getnext(current))
@@ -1616,10 +1782,10 @@ end
-- return head, start, done
-- end
-local reordered_pre_base_reordering_consonants = { } -- shared ? not reset ?
+-- todo: nodes -> table -> nodes
function handlers.devanagari_reorder_pre_base_reordering_consonants(head,start)
- if reordered_pre_base_reordering_consonants[start] then
+ if getprop(start,a_reordered) then
return head, start, true
end
local current = start -- we could cache attributes here
@@ -1630,6 +1796,9 @@ function handlers.devanagari_reorder_pre_base_reordering_consonants(head,start)
local next = getnext(current)
if char and getprop(current,a_syllabe) == startattr then
if halant[char] then -- state can also be init
+ if trace_steps then
+ logprocess("reorder pre base consonants, handle halant")
+ end
if next then
local char = ischar(next,startfont)
if char and zw_char[char] and getprop(next,a_syllabe) == startattr then
@@ -1643,7 +1812,7 @@ function handlers.devanagari_reorder_pre_base_reordering_consonants(head,start)
setlink(start,next)
setlink(current,start)
-- setlink(current,start,next) -- maybe
- reordered_pre_base_reordering_consonants[start] = true
+ setprop(start,"reordered",true)
start = startnext
return head, start, true
-- elseif consonant[char] and (not getstate(current) or getstate(current,s_init)) then
@@ -1670,6 +1839,9 @@ function handlers.devanagari_reorder_pre_base_reordering_consonants(head,start)
while current and getprop(current,a_syllabe) == startattr do
local char = ischar(current)
if (not dependent_vowel[char] and (not getstate(current) or getstate(current,s_init))) then
+ if trace_steps then
+ logprocess("reorder pre base consonants, handle vowel or initial")
+ end
startnext = getnext(start)
head = remove_node(head,start)
if current == head then
@@ -1679,7 +1851,7 @@ function handlers.devanagari_reorder_pre_base_reordering_consonants(head,start)
setlink(getprev(current),start)
setlink(start,current)
end
- reordered_pre_base_reordering_consonants[start] = true
+ setprop(start,"reordered",true)
start = startnext
break
end
@@ -1712,7 +1884,10 @@ function handlers.devanagari_remove_joiners(head,start,kind,lookupname,replaceme
if head == start then
head = stop
end
- flush_list(start)
+ flushlist(start)
+ if trace_steps then
+ logprocess("remove joiners")
+ end
return head, stop, true
end
@@ -1739,8 +1914,8 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
local subpos = nil
local postpos = nil
- reorderreph.coverage = { }
- rephbase[font] = { }
+ reorderreph.coverage = { } -- use local
+ rephbase[font] = { } -- use local
for i=1,#seqsubset do
@@ -1750,8 +1925,12 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
local kind = subset[1]
local lookupcache = subset[2]
if kind == "rphf" then
- reorderreph.coverage[subset[3]] = true -- neat
- rephbase[font][subset[3]] = subset[4]
+ --
+ local reph = subset[3]
+ local base = subset[4]
+ reorderreph.coverage[reph] = true -- neat -- use local
+ rephbase[font][reph] = base -- use local
+ --
local current = start
local last = getnext(stop)
while current ~= last do
@@ -1760,15 +1939,15 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
local found = lookupcache[c]
if found then
local next = getnext(current)
- if found[getchar(next)] or contextchain(found, next) then --above-base: rphf Consonant + Halant
+ if contextchain(found, next) then -- above-base: rphf Consonant + Halant
local afternext = next ~= stop and getnext(next)
if afternext and zw_char[getchar(afternext)] then -- ZWJ and ZWNJ prevent creation of reph
current = afternext -- getnext(next)
elseif current == start then
setstate(current,s_rphf)
- current = next
+ current = next -- later again next
else
- current = next
+ current = next -- later again next
end
end
end
@@ -1784,8 +1963,8 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
local found = lookupcache[c]
if found then -- pre-base: pref Halant + Consonant
local next = getnext(current)
- if found[getchar(next)] or contextchain(found, next) then
- if (not getstate(current) and not getstate(next)) then --KE: state can also be init...
+ if contextchain(found, next) then
+ if not getstate(current) and not getstate(next) then --KE: state can also be init...
setstate(current,s_pref)
setstate(next,s_pref)
current = next
@@ -1804,10 +1983,10 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
local found = lookupcache[c]
if found then
local next = getnext(current)
- if found[getchar(next)] or contextchain(found, next) then
+ if contextchain(found, next) then
if next ~= stop and getchar(getnext(next)) == c_zwnj then -- zwnj prevent creation of half
current = next
- elseif (not getstate(current)) then --KE: state can also be init...
+ elseif not getstate(current) then --KE: state can also be init...
setstate(current,s_half)
if not halfpos then
halfpos = current
@@ -1828,8 +2007,8 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
local found = lookupcache[c]
if found then
local next = getnext(current)
- if found[getchar(next)] or contextchain(found, next) then
- if (not getstate(current) and not getstate(next)) then --KE: state can also be init...
+ if contextchain(found, next) then
+ if not getstate(current) and not getstate(next) then --KE: state can also be init...
setstate(current,s_blwf)
setstate(next,s_blwf)
current = next
@@ -1849,8 +2028,8 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
local found = lookupcache[c]
if found then
local next = getnext(current)
- if found[getchar(next)] or contextchain(found, next) then
- if (not getstate(current) and not getstate(next)) then -- KE: state can also be init...
+ if contextchain(found, next) then
+ if not getstate(current) and not getstate(next) then -- KE: state can also be init...
setstate(current,s_pstf)
setstate(next,s_pstf)
current = next
@@ -1864,7 +2043,7 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
end
end
- local current, base, firstcons = start, nil, nil
+ local current, base, firstcons, subnotafterbase, postnotafterbase = start, nil, nil, nil, nil
if getstate(start,s_rphf) then
-- if syllable starts with Ra + H and script has 'Reph' then exclude Reph from candidates for base consonants
@@ -1876,7 +2055,10 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
if current == stop then
stop = getprev(stop)
head = remove_node(head,current)
- flush_node(current)
+ flushnode(current)
+ if trace_steps then
+ logprocess("reorder two, remove nbsp")
+ end
return head, stop, nbspaces
else
nbspaces = nbspaces + 1
@@ -1917,11 +2099,22 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
end
end
end
+ if trace_steps then
+ logprocess("reorder two, handle nbsp")
+ end
end
else -- not Stand Alone cluster
local last = getnext(stop)
while current ~= last do -- find base consonant
local next = getnext(current)
+-- IF PATCHED THEN
+-- if current == subpos then
+-- subnotafterbase = current
+-- end
+-- if current == postpos then
+-- postnotafterbase = current
+-- end
+-- END
if consonant[getchar(current)] then
if not (current ~= stop and next ~= stop and halant[getchar(next)] and getchar(getnext(next)) == c_zwj) then
if not firstcons then
@@ -1931,6 +2124,14 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
local a = getstate(current)
if not (a == s_blwf or a == s_pstf or (a ~= s_rphf and a ~= s_blwf and ra[getchar(current)])) then
base = current
+-- IF PATCHED THEN
+-- if subnotafterbase then
+-- subpos = base
+-- end
+-- if postnotafterbase then
+-- postpos = base
+-- end
+-- END
end
end
end
@@ -1948,7 +2149,7 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
return head, stop, nbspaces
else
if getstate(base) then -- state can also be init
- setstate(base,unsetvalue)
+ setstate(base,unsetvalue) -- THIS RESETS THE HALF STATE
end
basepos = base
end
@@ -1973,19 +2174,32 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
local cn = getnext(current)
-- not so efficient (needed for malayalam)
local tpm = twopart_mark[char]
- while tpm do
- local extra = copy_node(current)
- copyinjection(extra,current)
- char = tpm[1]
- setchar(current,char)
- setchar(extra,tpm[2])
- head = insert_node_after(head,current,extra)
- tpm = twopart_mark[char]
+ if tpm then
+ while tpm do
+ local extra = copy_node(current)
+ copyinjection(extra,current)
+ char = tpm[1]
+ setchar(current,char)
+ setchar(extra,tpm[2])
+ head = insertnodeafter(head,current,extra)
+ tpm = twopart_mark[char]
+ end
+ if tpm and trace_steps then
+ logprocess("reorder two, handle matra")
+ end
end
--
- if not moved[current] and dependent_vowel[char] then
+-- IF PATCHED THEN
+-- if dependent_vowel[char] then
+-- ELSE
+ if not moved[current] and dependent_vowel[char] then
+-- END
if pre_mark[char] then -- or: if before_main or before_half
+-- IF PATCHED THEN
+-- -- nothing
+-- ELSE
moved[current] = true
+-- END
-- can be helper to remove one node
local prev, next = getboth(current)
setlink(prev,next)
@@ -2031,8 +2245,18 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
setlink(getprev(pos),current)
setlink(current,pos)
-- setlink(getprev(pos),current,pos) -- maybe
+ if trace_steps then
+ logprocess("reorder two, handle pre mark")
+ end
elseif above_mark[char] then
-- after main consonant
+-- IF PATCHED
+-- target = subpos
+-- if postpos == subpos then
+-- postpos = current
+-- end
+-- subpos = current
+-- ELSE
target = basepos
if subpos == basepos then
subpos = current
@@ -2041,6 +2265,7 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
postpos = current
end
basepos = current
+-- END
elseif below_mark[char] then
-- after subjoined consonants
target = subpos
@@ -2074,13 +2299,16 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
setlink(current,getnext(target))
setlink(target,current)
-- setlink(target,current,getnext(target)) -- maybe
+ if trace_steps then
+ logprocess("reorder two, handle mark")
+ end
end
end
end
current = cn
end
- -- reorder halant+Ra
+ -- reorder halant + Ra
local current = getnext(start)
local last = getnext(stop)
@@ -2104,6 +2332,9 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
stop = prev
end
cn = next
+ if trace_steps then
+ logprocess("reorder two, handle halant and ra")
+ end
end
end
-- after_postscript
@@ -2143,6 +2374,9 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
setprev(nextnextnext,current)
end
setlink(nextnext,c)
+ if trace_steps then
+ logprocess("reorder two, handle nukta")
+ end
end
if stop == current then break end
current = getnext(current)
@@ -2154,7 +2388,10 @@ local function reorder_two(head,start,stop,font,attr,nbspaces) -- maybe do a pas
end
nbspaces = nbspaces - 1
head = remove_node(head, base)
- flush_node(base)
+ flushnode(base)
+ if trace_steps then
+ logprocess("reorder two, handle nbsp")
+ end
end
return head, stop, nbspaces
@@ -2179,8 +2416,8 @@ local function analyze_next_chars_one(c,font,variant) -- skip one dependent vowe
if not n then
return c
end
+ local v = ischar(n,font)
if variant == 1 then
- local v = ischar(n,font)
if v and nukta[v] then
n = getnext(n)
if n then
@@ -2213,7 +2450,6 @@ local function analyze_next_chars_one(c,font,variant) -- skip one dependent vowe
end
end
elseif variant == 2 then
- local v = ischar(n,font)
if v and nukta[v] then
c = n
end
@@ -2238,11 +2474,11 @@ local function analyze_next_chars_one(c,font,variant) -- skip one dependent vowe
end
end
-- c = ms_matra(c)
- local n = getnext(c)
+ n = getnext(c)
if not n then
return c
end
- local v = ischar(n,font)
+ v = ischar(n,font)
if not v then
return c
end
@@ -2251,21 +2487,49 @@ local function analyze_next_chars_one(c,font,variant) -- skip one dependent vowe
local already_below_mark -- = false
local already_post_mark -- = false
while dependent_vowel[v] do
- local vowels = twopart_mark[v] or { v }
- for k, v in next, vowels do
- if pre_mark[v] and not already_pre_mark then
- already_pre_mark = true
- elseif above_mark[v] and not already_above_mark then
- already_above_mark = true
- elseif below_mark[v] and not already_below_mark then
- already_below_mark = true
- elseif post_mark[v] and not already_post_mark then
- already_post_mark = true
- else
- return c
- end
- end
- c = getnext(c)
+ local vowels = twopart_mark[v]
+ if vowels then
+ for k=1,#vowels do
+ local v = vowels[k]
+ if pre_mark[v] and not already_pre_mark then
+ already_pre_mark = true
+ elseif above_mark[v] and not already_above_mark then
+ already_above_mark = true
+ elseif below_mark[v] and not already_below_mark then
+ already_below_mark = true
+ elseif post_mark[v] and not already_post_mark then
+ already_post_mark = true
+ elseif devanagarihash[font].conjuncts == "continue" then
+ -- for testing
+ else
+ return c
+ end
+ end
+ else
+ if pre_mark[v] and not already_pre_mark then
+ already_pre_mark = true
+ elseif post_mark[v] and not already_post_mark then
+-- IF PATCHED THEN
+-- already_post_mark = true
+-- ELSE
+ if devanagarihash[font].conjuncts == "mixed" then
+ -- for messy fonts
+ return c
+ else
+ already_post_mark = true
+ end
+-- END
+ elseif below_mark[v] and not already_below_mark then
+ already_below_mark = true
+ elseif above_mark[v] and not already_above_mark then
+ already_above_mark = true
+ elseif devanagarihash[font].conjuncts == "continue" then
+ -- for testing
+ else
+ return c
+ end
+ end
+ c = n
n = getnext(c)
if not n then
return c
@@ -2276,7 +2540,7 @@ local function analyze_next_chars_one(c,font,variant) -- skip one dependent vowe
end
end
if nukta[v] then
- c = getnext(c)
+ c = n
n = getnext(c)
if not n then
return c
@@ -2287,7 +2551,7 @@ local function analyze_next_chars_one(c,font,variant) -- skip one dependent vowe
end
end
if halant[v] then
- c = getnext(c)
+ c = n
n = getnext(c)
if not n then
return c
@@ -2298,7 +2562,7 @@ local function analyze_next_chars_one(c,font,variant) -- skip one dependent vowe
end
end
if vowel_modifier[v] then
- c = getnext(c)
+ c = n
n = getnext(c)
if not n then
return c
@@ -2309,7 +2573,7 @@ local function analyze_next_chars_one(c,font,variant) -- skip one dependent vowe
end
end
if stress_tone_mark[v] then
- c = getnext(c)
+ c = n
n = getnext(c)
if not n then
return c
@@ -2326,6 +2590,16 @@ local function analyze_next_chars_one(c,font,variant) -- skip one dependent vowe
end
end
+-- Consonant syllable:
+--
+-- { C + [ N ] + < H + [ < ZWNJ | ZWJ > ] | < ZWNJ | ZWJ > + H > }
+-- + C
+-- + [ N ]
+-- + [ A ]
+-- + [ < H + [ < ZWNJ|ZWJ > ] | { M } + [ N ] + [ H ] > ]
+-- + [ SM ]
+-- + [ ( VD ) ]
+
local function analyze_next_chars_two(c,font)
local n = getnext(c)
if not n then
@@ -2393,11 +2667,11 @@ local function analyze_next_chars_two(c,font)
-- This shouldn't happen I guess.
return
end
- local n = getnext(c)
+ n = getnext(c)
if not n then
return c
end
- local v = ischar(n,font)
+ v = ischar(n,font)
if not v then
return c
end
@@ -2440,21 +2714,50 @@ local function analyze_next_chars_two(c,font)
local already_above_mark -- = false
local already_below_mark -- = false
local already_post_mark -- = false
- while dependent_vowel[v] do
- local vowels = twopart_mark[v] or { v }
- for k, v in next, vowels do
- if pre_mark[v] and not already_pre_mark then
- already_pre_mark = true
- elseif above_mark[v] and not already_above_mark then
- already_above_mark = true
- elseif below_mark[v] and not already_below_mark then
- already_below_mark = true
- elseif post_mark[v] and not already_post_mark then
- already_post_mark = true
- else
- return c
- end
- end
+ -- inefficient : too many tests but seldom more than one
+ while dependent_vowel[v] do
+ local vowels = twopart_mark[v]
+ if vowels then
+ for k=1,#vowels do
+ local v = vowels[k]
+ if pre_mark[v] and not already_pre_mark then
+ already_pre_mark = true
+ elseif above_mark[v] and not already_above_mark then
+ already_above_mark = true
+ elseif below_mark[v] and not already_below_mark then
+ already_below_mark = true
+ elseif post_mark[v] and not already_post_mark then
+ already_post_mark = true
+ elseif devanagarihash[font].conjuncts == "continue" then
+ -- for testing
+ else
+ return c
+ end
+ end
+ else
+ if pre_mark[v] and not already_pre_mark then
+ already_pre_mark = true
+ elseif post_mark[v] and not already_post_mark then
+-- IF PATCHED THEN
+-- already_post_mark = true
+-- ELSE
+ if devanagarihash[font].conjuncts == "mixed" then
+ -- for messy fonts
+ return c
+ else
+ already_post_mark = true
+ end
+-- END
+ elseif below_mark[v] and not already_below_mark then
+ already_below_mark = true
+ elseif above_mark[v] and not already_above_mark then
+ already_above_mark = true
+ elseif devanagarihash[font].conjuncts == "continue" then
+ -- for testing
+ else
+ return c
+ end
+ end
c = n
n = getnext(c)
if not n then
@@ -2708,7 +3011,7 @@ local function method_one(head,font,attr)
end
else
if show_syntax_errors then
- local mark = mark_four[char]
+ local mark = mark_pre_above_below_post[char]
if mark then
head, current = inject_syntax_error(head,current,char)
end
@@ -2731,15 +3034,15 @@ local function method_one(head,font,attr)
while current do
local char = ischar(current,font)
if char then
- if n == 0 and not getstate(current) then
- setstate(current,s_init)
- end
- n = n + 1
- else
- n = 0
- end
- current = getnext(current)
- end
+ if n == 0 and not getstate(current) then
+ setstate(current,s_init)
+ end
+ n = n + 1
+ else
+ n = 0
+ end
+ current = getnext(current)
+ end
return head, done
end
@@ -2800,7 +3103,6 @@ local function method_two(head,font,attr)
syllableend = current
elseif consonant[getchar(current)] then
-- WHY current INSTEAD OF c ?
-
-- Consonant syllable: {C+[N]+<H+[<ZWNJ|ZWJ>]|<ZWNJ|ZWJ>+H>} + C+[N]+[A] + [< H+[<ZWNJ|ZWJ>] | {M}+[N]+[H]>]+[SM]+[(VD)]
current = analyze_next_chars_two(current,font) -- not c !
syllableend = current
@@ -2822,7 +3124,7 @@ local function method_two(head,font,attr)
if not syllableend and show_syntax_errors then
local char = ischar(current,font)
if char and not getstate(current) then -- state can also be init
- local mark = mark_four[char]
+ local mark = mark_pre_above_below_post[char]
if mark then
head, current = inject_syntax_error(head,current,char)
end
@@ -2841,15 +3143,19 @@ local function method_two(head,font,attr)
while current do
local char = ischar(current,font)
if char then
- if n == 0 and not getstate(current) then -- state can also be init
- setstate(current,s_init)
- end
- n = n + 1
- else
- n = 0
- end
- current = getnext(current)
- end
+ if n == 0 and not getstate(current) then -- state can also be init
+ setstate(current,s_init)
+ end
+ n = n + 1
+ else
+ n = 0
+ end
+ current = getnext(current)
+ end
+
+ -- if languages.indic then
+ -- head = languages.indic.handler(head)
+ -- end
return head, done
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ota.lua b/Master/texmf-dist/tex/context/base/mkiv/font-ota.lua
index ce1b22b50d7..a8f9f0047c2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-ota.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ota.lua
@@ -40,7 +40,7 @@ local getsubtype = nuts.getsubtype
local getchar = nuts.getchar
local ischar = nuts.ischar
-local end_of_math = nuts.end_of_math
+local endofmath = nuts.endofmath
local nodecodes = nodes.nodecodes
----- glyph_code = nodecodes.glyph
@@ -173,7 +173,7 @@ function analyzers.setstate(head,font)
end
first, last, n = nil, nil, 0
if id == math_code then
- current = end_of_math(current)
+ current = endofmath(current)
end
elseif id == disc_code then
-- always in the middle .. it doesn't make much sense to assign a property
@@ -189,7 +189,7 @@ function analyzers.setstate(head,font)
end
first, last, n = nil, nil, 0
if id == math_code then
- current = end_of_math(current)
+ current = endofmath(current)
end
end
current = getnext(current)
@@ -435,7 +435,7 @@ function methods.arab(head,font,attr)
first = nil
end
if id == math_code then -- a bit duplicate as we test for glyphs twice
- current = end_of_math(current)
+ current = endofmath(current)
end
end
current = getnext(current)
@@ -562,7 +562,7 @@ do
wrapup()
end
if id == math_code then -- a bit duplicate as we test for glyphs twice
- current = end_of_math(current)
+ current = endofmath(current)
end
end
current = getnext(current)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-otc.lua b/Master/texmf-dist/tex/context/base/mkiv/font-otc.lua
index 2643d022a57..f83c3e8ec76 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-otc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-otc.lua
@@ -102,8 +102,9 @@ local function validspecification(specification,name)
specification = { dataset = dataset }
else
dataset = { { data = specification.data } }
- specification.data = nil
- specification.dataset = dataset
+ specification.data = nil
+ specification.coverage = dataset
+ specification.dataset = dataset
end
local first = dataset[1]
if first then
@@ -129,7 +130,7 @@ local function validspecification(specification,name)
end
end
-local function addfeature(data,feature,specifications)
+local function addfeature(data,feature,specifications,prepareonly)
-- todo: add some validator / check code so that we're more tolerant to
-- user errors
@@ -141,6 +142,12 @@ local function addfeature(data,feature,specifications)
local descriptions = data.descriptions
local resources = data.resources
+
+ if not descriptions or not resources then
+ report_otf("missing specification")
+ return
+ end
+
local features = resources.features
local sequences = resources.sequences
@@ -225,6 +232,9 @@ local function addfeature(data,feature,specifications)
local stepkey = coverup.stepkey
local register = coverup.register
+ -- todo: directly pass a coverage i.e. for privates that later will be
+ -- set
+
local function prepare_substitution(list,featuretype,nocheck)
local coverage = { }
local cover = coveractions[featuretype]
@@ -232,6 +242,7 @@ local function addfeature(data,feature,specifications)
local unicode = tounicode(code)
local description = descriptions[unicode]
if not nocheck and not description then
+ -- todo: trace !
skip = skip + 1
else
if type(replacement) == "table" then
@@ -436,13 +447,36 @@ local function addfeature(data,feature,specifications)
local prepare_single = prepare_pair -- we could have a better test on the spec
- local function prepare_chain(list,featuretype,sublookups)
+ local function hassteps(lookups)
+ if lookups then
+ for i=1,#lookups do
+ local l = lookups[i]
+ if l then
+ for j=1,#l do
+ local l = l[j]
+ if l then
+ local n = l.nofsteps
+ if not n then
+ -- gsub_remove
+ return true
+ elseif n > 0 then
+ return true
+ end
+ end
+ end
+ end
+ end
+ end
+ return false
+ end
+
+ -- 0 == remove, false = ignore (remove is default)
+
+ local function prepare_chain(list,featuretype,sublookups,nocheck)
-- todo: coveractions
local rules = list.rules
local coverage = { }
if rules then
- local rulehash = { }
- local rulesize = 0
local lookuptype = types[featuretype]
for nofrules=1,#rules do
local rule = rules[nofrules]
@@ -473,6 +507,16 @@ local function addfeature(data,feature,specifications)
local lookups = rule.lookups or false
local subtype = nil
if lookups and sublookups then
+ -- inspect(lookups)
+ if #lookups > 0 then
+ local ns = stop - start + 1
+ for i=1,ns do
+ if lookups[i] == nil then
+ lookups[i] = 0
+ end
+ end
+ end
+ local l = { }
for k, v in sortedhash(lookups) do
local t = type(v)
if t == "table" then
@@ -483,61 +527,76 @@ local function addfeature(data,feature,specifications)
v[i] = { vi }
end
end
+ l[k] = v
elseif t == "number" then
local lookup = sublookups[v]
if lookup then
- lookups[k] = { lookup }
+ l[k] = { lookup }
if not subtype then
subtype = lookup.type
end
elseif v == 0 then
- lookups[k] = { { type = "gsub_remove" } }
+ l[k] = { { type = "gsub_remove", nosteps = true } }
else
- lookups[k] = false -- { false } -- new
+ l[k] = false -- { false } -- new
end
else
- lookups[k] = false -- { false } -- new
+ l[k] = false -- { false } -- new
end
end
+ if nocheck then
+ -- fragile
+ rule.lookups = l --no, because checking can spoil it
+ end
+ lookups = l
end
if nofsequences > 0 then -- we merge coverage into one
-- we copy as we can have different fonts
- local hashed = { }
- for i=1,nofsequences do
- local t = { }
- local s = sequence[i]
- for i=1,#s do
- local u = tounicode(s[i])
- if u then
- t[u] = true
+ if hassteps(lookups) then
+ -- sequence is the before|current|after match list
+ local hashed = { }
+ for i=1,nofsequences do
+ local t = { }
+ local s = sequence[i]
+ for i=1,#s do
+ local u = tounicode(s[i])
+ if u then
+ t[u] = true
+ end
end
+ hashed[i] = t
end
- hashed[i] = t
- end
- sequence = hashed
- -- now we create the rule
- rulesize = rulesize + 1
- rulehash[rulesize] = {
- nofrules, -- 1
- lookuptype, -- 2
- sequence, -- 3
- start, -- 4
- stop, -- 5
- lookups, -- 6 (6/7 also signal of what to do)
- replacements, -- 7
- subtype, -- 8
- }
--- for unic in next, sequence[start] do
- for unic in sortedhash(sequence[start]) do
- local cu = coverage[unic]
- if not cu then
- coverage[unic] = rulehash -- can now be done cleaner i think
+ -- hashed is the before|current|after match hash
+ sequence = hashed
+ local ruleset = {
+ nofrules, -- 1
+ lookuptype, -- 2
+ sequence, -- 3
+ start, -- 4
+ stop, -- 5
+ lookups, -- 6 (6/7 also signal of what to do)
+ replacements, -- 7
+ subtype, -- 8
+ }
+ for unic in sortedhash(sequence[start]) do
+ local cu = coverage[unic]
+ if cu then
+ local n = cu.n + 1
+ cu[n] = ruleset
+ cu.n = n
+ else
+ coverage[unic] = {
+ ruleset,
+ n = 1,
+ }
+ end
end
+ sequence.n = nofsequences
+ else
+ -- report_otf("no steps for %a",lookuptype) -- e.g. in primes feature
end
- sequence.n = nofsequences
end
end
- rulehash.n = rulesize
end
return coverage
end
@@ -626,133 +685,167 @@ local function addfeature(data,feature,specifications)
end
local askedfeatures = specification.features or everywhere
local askedsteps = specification.steps or specification.subtables or { specification.data } or { }
- local featuretype = normalized[specification.type or "substitution"] or "substitution"
+ local featuretype = specification.type or "substitution"
+ local featureaction = false
local featureflags = specification.flags or noflags
local nocheck = specification.nocheck
+ local mapping = specification.mapping
local featureorder = specification.order or { feature }
local featurechain = (featuretype == "chainsubstitution" or featuretype == "chainposition") and 1 or 0
local nofsteps = 0
local steps = { }
local sublookups = specification.lookups
local category = nil
+ local steptype = nil
+ local sequence = nil
+ --
+ if fonts.handlers.otf.handlers[featuretype] then
+ featureaction = true -- function based
+ else
+ featuretype = normalized[specification.type or "substitution"] or "substitution"
+ end
--
checkflags(specification,resources)
--
- if sublookups then
- local s = { }
- for i=1,#sublookups do
- local specification = sublookups[i]
- local askedsteps = specification.steps or specification.subtables or { specification.data } or { }
- local featuretype = normalized[specification.type or "substitution"] or "substitution"
- local featureflags = specification.flags or noflags
- local nofsteps = 0
- local steps = { }
- for i=1,#askedsteps do
- local list = askedsteps[i]
- local coverage = nil
- local format = nil
- if featuretype == "substitution" then
- coverage = prepare_substitution(list,featuretype,nocheck)
- elseif featuretype == "ligature" then
- coverage = prepare_ligature(list,featuretype,nocheck)
- elseif featuretype == "alternate" then
- coverage = prepare_alternate(list,featuretype,nocheck)
- elseif featuretype == "multiple" then
- coverage = prepare_multiple(list,featuretype,nocheck)
- elseif featuretype == "kern" or featuretype == "move" then
- format = featuretype
- coverage = prepare_kern(list,featuretype)
- elseif featuretype == "pair" then
- format = "pair"
- coverage = prepare_pair(list,featuretype)
- elseif featuretype == "single" then
- format = "single"
- coverage = prepare_single(list,featuretype)
- end
- if coverage and next(coverage) then
- nofsteps = nofsteps + 1
- steps[nofsteps] = register(coverage,featuretype,format,feature,nofsteps,descriptions,resources)
+ for k, v in next, askedfeatures do
+ if v[1] then
+ askedfeatures[k] = tohash(v)
+ end
+ end
+ --
+ if featureflags[1] then featureflags[1] = "mark" end
+ if featureflags[2] then featureflags[2] = "ligature" end
+ if featureflags[3] then featureflags[3] = "base" end
+ --
+ if featureaction then
+
+ category = "gsub"
+ sequence = {
+ features = { [feature] = askedfeatures },
+ flags = featureflags,
+ name = feature, -- redundant
+ order = featureorder,
+ type = featuretype,
+ -- steps = { },
+ nofsteps = 0, -- just in case we test for that
+ }
+
+ else
+
+ if sublookups then
+ local s = { }
+ for i=1,#sublookups do
+ local specification = sublookups[i]
+ local askedsteps = specification.steps or specification.subtables or { specification.data } or { }
+ local featuretype = normalized[specification.type or "substitution"] or "substitution"
+ local featureflags = specification.flags or noflags
+ local nofsteps = 0
+ local steps = { }
+ for i=1,#askedsteps do
+ local list = askedsteps[i]
+ local coverage = nil
+ local format = nil
+ if featuretype == "substitution" then
+ coverage = prepare_substitution(list,featuretype,nocheck)
+ elseif featuretype == "ligature" then
+ coverage = prepare_ligature(list,featuretype,nocheck)
+ elseif featuretype == "alternate" then
+ coverage = prepare_alternate(list,featuretype,nocheck)
+ elseif featuretype == "multiple" then
+ coverage = prepare_multiple(list,featuretype,nocheck)
+ elseif featuretype == "kern" or featuretype == "move" then
+ format = featuretype
+ coverage = prepare_kern(list,featuretype)
+ elseif featuretype == "pair" then
+ format = "pair"
+ coverage = prepare_pair(list,featuretype)
+ elseif featuretype == "single" then
+ format = "single"
+ coverage = prepare_single(list,featuretype)
+ end
+ if coverage and next(coverage) then
+ nofsteps = nofsteps + 1
+ steps[nofsteps] = register(coverage,featuretype,format,feature,nofsteps,descriptions,resources)
+ end
end
+ --
+ checkmerge(specification)
+ checksteps(specification)
+ --
+ s[i] = {
+ [stepkey] = steps,
+ nofsteps = nofsteps,
+ flags = featureflags,
+ type = types[featuretype],
+ }
+ end
+ sublookups = s
+ end
+
+ for i=1,#askedsteps do
+ local list = askedsteps[i]
+ local coverage = nil
+ local format = nil
+ if featuretype == "substitution" then
+ -- see font-imp-tweaks: we directly pass a mapping so no checks done
+ category = "gsub"
+ coverage = (mapping and list) or prepare_substitution(list,featuretype,nocheck)
+ elseif featuretype == "ligature" then
+ category = "gsub"
+ coverage = prepare_ligature(list,featuretype,nocheck)
+ elseif featuretype == "alternate" then
+ category = "gsub"
+ coverage = prepare_alternate(list,featuretype,nocheck)
+ elseif featuretype == "multiple" then
+ category = "gsub"
+ coverage = prepare_multiple(list,featuretype,nocheck)
+ elseif featuretype == "kern" or featuretype == "move" then
+ category = "gpos"
+ format = featuretype
+ coverage = prepare_kern(list,featuretype)
+ elseif featuretype == "pair" then
+ category = "gpos"
+ format = "pair"
+ coverage = prepare_pair(list,featuretype)
+ elseif featuretype == "single" then
+ category = "gpos"
+ format = "single"
+ coverage = prepare_single(list,featuretype)
+ elseif featuretype == "chainsubstitution" then
+ category = "gsub"
+ coverage = prepare_chain(list,featuretype,sublookups,nocheck)
+ elseif featuretype == "chainposition" then
+ category = "gpos"
+ coverage = prepare_chain(list,featuretype,sublookups,nocheck)
+ else
+ report_otf("not registering feature %a, unknown category",feature)
+ return
end
- --
- checkmerge(specification)
- checksteps(specification)
- --
- s[i] = {
+ if coverage and next(coverage) then
+ nofsteps = nofsteps + 1
+ steps[nofsteps] = register(coverage,featuretype,format,feature,nofsteps,descriptions,resources)
+ end
+ end
+
+ if nofsteps > 0 then
+ sequence = {
+ chain = featurechain,
+ features = { [feature] = askedfeatures },
+ flags = featureflags,
+ name = feature, -- redundant
+ order = featureorder,
[stepkey] = steps,
nofsteps = nofsteps,
- flags = featureflags,
- type = types[featuretype],
+ type = specification.handler or types[featuretype],
}
- end
- sublookups = s
- end
- for i=1,#askedsteps do
- local list = askedsteps[i]
- local coverage = nil
- local format = nil
- if featuretype == "substitution" then
- category = "gsub"
- coverage = prepare_substitution(list,featuretype,nocheck)
- elseif featuretype == "ligature" then
- category = "gsub"
- coverage = prepare_ligature(list,featuretype,nocheck)
- elseif featuretype == "alternate" then
- category = "gsub"
- coverage = prepare_alternate(list,featuretype,nocheck)
- elseif featuretype == "multiple" then
- category = "gsub"
- coverage = prepare_multiple(list,featuretype,nocheck)
- elseif featuretype == "kern" or featuretype == "move" then
- category = "gpos"
- format = featuretype
- coverage = prepare_kern(list,featuretype)
- elseif featuretype == "pair" then
- category = "gpos"
- format = "pair"
- coverage = prepare_pair(list,featuretype)
- elseif featuretype == "single" then
- category = "gpos"
- format = "single"
- coverage = prepare_single(list,featuretype)
- elseif featuretype == "chainsubstitution" then
- category = "gsub"
- coverage = prepare_chain(list,featuretype,sublookups)
- elseif featuretype == "chainposition" then
- category = "gpos"
- coverage = prepare_chain(list,featuretype,sublookups)
- else
- report_otf("not registering feature %a, unknown category",feature)
- return
- end
- if coverage and next(coverage) then
- nofsteps = nofsteps + 1
- steps[nofsteps] = register(coverage,featuretype,format,feature,nofsteps,descriptions,resources)
+ if prepareonly then
+ return sequence
+ end
end
end
- if nofsteps > 0 then
+
+ if sequence then
-- script = { lang1, lang2, lang3 } or script = { lang1 = true, ... }
- for k, v in next, askedfeatures do
- if v[1] then
- askedfeatures[k] = tohash(v)
- end
- end
- --
- if featureflags[1] then featureflags[1] = "mark" end
- if featureflags[2] then featureflags[2] = "ligature" end
- if featureflags[3] then featureflags[3] = "base" end
- local steptype = types[featuretype]
- local sequence = {
- chain = featurechain,
- features = { [feature] = askedfeatures },
- flags = featureflags,
- name = feature, -- redundant
- order = featureorder,
- [stepkey] = steps,
- nofsteps = nofsteps,
- type = steptype,
- }
- --
checkflags(sequence,resources)
checkmerge(sequence)
checksteps(sequence)
@@ -782,11 +875,13 @@ local function addfeature(data,feature,specifications)
end
end
end
+
end
end
if trace_loading then
report_otf("registering feature %a, affected glyphs %a, skipped glyphs %a",feature,done,skip)
end
+
end
otf.enhancers.addfeature = addfeature
@@ -833,6 +928,23 @@ local function enhance(data,filename,raw)
end
end
+-- local function enhance(data,filename,raw)
+-- local first = 1
+-- local last = #extrafeatures
+-- while true do
+-- for slot=first,last do
+-- local specification = extrafeatures[slot]
+-- addfeature(data,specification.name,specification)
+-- end
+-- if #extrafeatures > last then
+-- first = last + 1
+-- last = #extrafeatures
+-- else
+-- break
+-- end
+-- end
+-- end
+
otf.enhancers.enhance = enhance
otf.enhancers.register("check extra features",enhance)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-otj.lua b/Master/texmf-dist/tex/context/base/mkiv/font-otj.lua
index bb02044dca6..c4ec9972cd4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-otj.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-otj.lua
@@ -90,6 +90,8 @@ local getoffsets = nuts.getoffsets
local getboth = nuts.getboth
local getdisc = nuts.getdisc
local setdisc = nuts.setdisc
+local getreplace = nuts.getreplace
+local setreplace = nuts.setreplace
local setoffsets = nuts.setoffsets
local ischar = nuts.ischar
local getkern = nuts.getkern
@@ -98,13 +100,11 @@ local setlink = nuts.setlink
local setwidth = nuts.setwidth
local getwidth = nuts.getwidth
------ traverse_id = nuts.traverse_id
------ traverse_char = nuts.traverse_char
local nextchar = nuts.traversers.char
local nextglue = nuts.traversers.glue
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local properties = nodes.properties.data
@@ -124,7 +124,7 @@ if not fontkern then -- generic
local thekern = nuts.new("kern",0) -- fontkern
local setkern = nuts.setkern
- local copy_node = nuts.copy_node
+ local copy_node = nuts.copy
fontkern = function(k)
local n = copy_node(thekern)
@@ -138,7 +138,7 @@ if not italickern then -- generic
local thekern = nuts.new("kern",3) -- italiccorrection
local setkern = nuts.setkern
- local copy_node = nuts.copy_node
+ local copy_node = nuts.copy
italickern = function(k)
local n = copy_node(thekern)
@@ -667,12 +667,12 @@ local function inject_kerns_only(head,where)
if leftkern and leftkern ~= 0 then
if prev and getid(prev) == glue_code then
if useitalickerns then
- head = insert_node_before(head,current,italickern(leftkern))
+ head = insertnodebefore(head,current,italickern(leftkern))
else
setwidth(prev, getwidth(prev) + leftkern)
end
else
- head = insert_node_before(head,current,fontkern(leftkern))
+ head = insertnodebefore(head,current,fontkern(leftkern))
end
end
end
@@ -731,7 +731,7 @@ local function inject_kerns_only(head,where)
if i then
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- pre = insert_node_before(pre,n,fontkern(leftkern))
+ pre = insertnodebefore(pre,n,fontkern(leftkern))
done = true
end
end
@@ -747,7 +747,7 @@ local function inject_kerns_only(head,where)
if i then
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- post = insert_node_before(post,n,fontkern(leftkern))
+ post = insertnodebefore(post,n,fontkern(leftkern))
done = true
end
end
@@ -763,7 +763,7 @@ local function inject_kerns_only(head,where)
if i then
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- replace = insert_node_before(replace,n,fontkern(leftkern))
+ replace = insertnodebefore(replace,n,fontkern(leftkern))
done = true
end
end
@@ -830,39 +830,36 @@ local function inject_positions_only(head,where)
rightkern = 0
elseif prev and getid(prev) == glue_code then
if useitalickerns then
- head = insert_node_before(head,current,italickern(leftkern))
+ head = insertnodebefore(head,current,italickern(leftkern))
else
setwidth(prev, getwidth(prev) + leftkern)
end
else
- head = insert_node_before(head,current,fontkern(leftkern))
+ head = insertnodebefore(head,current,fontkern(leftkern))
end
end
if rightkern and rightkern ~= 0 then
if next and getid(next) == glue_code then
if useitalickerns then
- insert_node_after(head,current,italickern(rightkern))
+ insertnodeafter(head,current,italickern(rightkern))
else
setwidth(next, getwidth(next) + rightkern)
end
else
- insert_node_after(head,current,fontkern(rightkern))
+ insertnodeafter(head,current,fontkern(rightkern))
end
end
- else
+ elseif next then
local i = p.emptyinjections
if i then
-- glyph|disc|glyph (special case)
local rightkern = i.rightkern
- if rightkern and rightkern ~= 0 then
- if next and getid(next) == disc_code then
- if replace then
- -- error, we expect an empty one
- else
- -- KE setfield(next,"replace",fontkern(rightkern)) -- maybe also leftkern
- replace = fontkern(rightkern) -- maybe also leftkern
- done = true --KE
- end
+ if rightkern and rightkern ~= 0 and getid(next) == disc_code then
+ local replace = getreplace(next)
+ if replace then
+ -- can't happen
+ else
+ setreplace(next,fontkern(rightkern))
end
end
end
@@ -925,12 +922,12 @@ local function inject_positions_only(head,where)
end
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- pre = insert_node_before(pre,n,fontkern(leftkern))
+ pre = insertnodebefore(pre,n,fontkern(leftkern))
done = true
end
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
- insert_node_after(pre,n,fontkern(rightkern))
+ insertnodeafter(pre,n,fontkern(rightkern))
done = true
end
end
@@ -950,12 +947,12 @@ local function inject_positions_only(head,where)
end
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- post = insert_node_before(post,n,fontkern(leftkern))
+ post = insertnodebefore(post,n,fontkern(leftkern))
done = true
end
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
- insert_node_after(post,n,fontkern(rightkern))
+ insertnodeafter(post,n,fontkern(rightkern))
done = true
end
end
@@ -975,12 +972,12 @@ local function inject_positions_only(head,where)
end
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- replace = insert_node_before(replace,n,fontkern(leftkern))
+ replace = insertnodebefore(replace,n,fontkern(leftkern))
done = true
end
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
- insert_node_after(replace,n,fontkern(rightkern))
+ insertnodeafter(replace,n,fontkern(rightkern))
done = true
end
end
@@ -996,7 +993,7 @@ local function inject_positions_only(head,where)
-- glyph|pre glyphs
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
- pre = insert_node_before(pre,pre,fontkern(rightkern))
+ pre = insertnodebefore(pre,pre,fontkern(rightkern))
done = true
end
end
@@ -1010,7 +1007,7 @@ local function inject_positions_only(head,where)
-- glyph|replace glyphs
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
- replace = insert_node_before(replace,replace,fontkern(rightkern))
+ replace = insertnodebefore(replace,replace,fontkern(rightkern))
done = true
end
end
@@ -1144,8 +1141,8 @@ local function inject_everything(head,where)
--
-- todo: head and check for prev / next kern
--
- insert_node_before(n,n,fontkern(-wn))
- insert_node_after(n,n,fontkern(-wn))
+ insertnodebefore(n,n,fontkern(-wn))
+ insertnodeafter(n,n,fontkern(-wn))
end
end
end
@@ -1295,39 +1292,37 @@ local function inject_everything(head,where)
rightkern = 0
elseif prev and getid(prev) == glue_code then
if useitalickerns then
- head = insert_node_before(head,current,italickern(leftkern))
+ head = insertnodebefore(head,current,italickern(leftkern))
else
setwidth(prev, getwidth(prev) + leftkern)
end
else
- head = insert_node_before(head,current,fontkern(leftkern))
+ head = insertnodebefore(head,current,fontkern(leftkern))
end
end
if rightkern and rightkern ~= 0 then
if next and getid(next) == glue_code then
if useitalickerns then
- insert_node_after(head,current,italickern(rightkern))
+ insertnodeafter(head,current,italickern(rightkern))
else
setwidth(next, getwidth(next) + rightkern)
end
else
- insert_node_after(head,current,fontkern(rightkern))
+ insertnodeafter(head,current,fontkern(rightkern))
end
end
end
- else
+ elseif next then
local i = p.emptyinjections
if i then
-- glyph|disc|glyph (special case)
local rightkern = i.rightkern
- if rightkern and rightkern ~= 0 then
- if next and getid(next) == disc_code then
- if replace then
- -- error, we expect an empty one
- else
- replace = fontkern(rightkern)
- done = true
- end
+ if rightkern and rightkern ~= 0 and getid(next) == disc_code then
+ local replace = getreplace(next)
+ if replace then
+ -- can't happen
+ else
+ setreplace(next,fontkern(rightkern))
end
end
end
@@ -1406,12 +1401,12 @@ local function inject_everything(head,where)
end
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- pre = insert_node_before(pre,n,fontkern(leftkern))
+ pre = insertnodebefore(pre,n,fontkern(leftkern))
done = true
end
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
- insert_node_after(pre,n,fontkern(rightkern))
+ insertnodeafter(pre,n,fontkern(rightkern))
done = true
end
if hasmarks then
@@ -1437,12 +1432,12 @@ local function inject_everything(head,where)
end
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- post = insert_node_before(post,n,fontkern(leftkern))
+ post = insertnodebefore(post,n,fontkern(leftkern))
done = true
end
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
- insert_node_after(post,n,fontkern(rightkern))
+ insertnodeafter(post,n,fontkern(rightkern))
done = true
end
if hasmarks then
@@ -1468,12 +1463,12 @@ local function inject_everything(head,where)
end
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- replace = insert_node_before(replace,n,fontkern(leftkern))
+ replace = insertnodebefore(replace,n,fontkern(leftkern))
done = true
end
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
- insert_node_after(replace,n,fontkern(rightkern))
+ insertnodeafter(replace,n,fontkern(rightkern))
done = true
end
if hasmarks then
@@ -1495,7 +1490,7 @@ local function inject_everything(head,where)
-- glyph|pre glyphs
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
- pre = insert_node_before(pre,pre,fontkern(rightkern))
+ pre = insertnodebefore(pre,pre,fontkern(rightkern))
done = true
end
end
@@ -1509,7 +1504,7 @@ local function inject_everything(head,where)
-- glyph|replace glyphs
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
- replace = insert_node_before(replace,replace,fontkern(rightkern))
+ replace = insertnodebefore(replace,replace,fontkern(rightkern))
done = true
end
end
@@ -1711,8 +1706,8 @@ local function injectspaces(head)
if trace_spaces then
report_spaces("%C [%p + %p + %p] %C",prevchar,lnew,old,rnew,nextchar)
end
- head = insert_node_before(head,n,italickern(lnew))
- insert_node_after(head,n,italickern(rnew))
+ head = insertnodebefore(head,n,italickern(lnew))
+ insertnodeafter(head,n,italickern(rnew))
else
local new = old + (leftkern + rightkern) * factor
if trace_spaces then
@@ -1727,7 +1722,7 @@ local function injectspaces(head)
if trace_spaces then
report_spaces("%C [%p + %p]",prevchar,old,new)
end
- insert_node_after(head,n,italickern(new)) -- tricky with traverse but ok
+ insertnodeafter(head,n,italickern(new)) -- tricky with traverse but ok
else
local new = old + leftkern * factor
if trace_spaces then
@@ -1746,7 +1741,7 @@ local function injectspaces(head)
if trace_spaces then
report_spaces("[%p + %p] %C",old,new,nextchar)
end
- insert_node_after(head,n,italickern(new))
+ insertnodeafter(head,n,italickern(new))
else
local new = old + rightkern * factor
if trace_spaces then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-otl.lua b/Master/texmf-dist/tex/context/base/mkiv/font-otl.lua
index 8159db180d6..354ca59a78d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-otl.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-otl.lua
@@ -26,7 +26,7 @@ if not modules then modules = { } end modules ['font-otl'] = {
local lower = string.lower
local type, next, tonumber, tostring, unpack = type, next, tonumber, tostring, unpack
local abs = math.abs
-local derivetable = table.derive
+local derivetable, sortedhash = table.derive, table.sortedhash
local formatters = string.formatters
local setmetatableindex = table.setmetatableindex
@@ -52,7 +52,7 @@ local report_otf = logs.reporter("fonts","otf loading")
local fonts = fonts
local otf = fonts.handlers.otf
-otf.version = 3.113 -- beware: also sync font-mis.lua and in mtx-fonts
+otf.version = 3.132 -- beware: also sync font-mis.lua and in mtx-fonts
otf.cache = containers.define("fonts", "otl", otf.version, true)
otf.svgcache = containers.define("fonts", "svg", otf.version, true)
otf.pngcache = containers.define("fonts", "png", otf.version, true)
@@ -218,6 +218,9 @@ function otf.load(filename,sub,instance)
if cleanup == 0 then
checkmemory(used,threshold,tracememory)
end
+ if context then
+ otfreaders.condense(data)
+ end
otfreaders.pack(data)
report_otf("loading done")
report_otf("saving %a in cache",filename)
@@ -314,7 +317,7 @@ local function copytotfm(data,cache_id)
local properties = derivetable(data.properties)
local descriptions = derivetable(data.descriptions)
local goodies = derivetable(data.goodies)
- local characters = { }
+ local characters = { } -- newtable if we knwo how many
local parameters = { }
local mathparameters = { }
--
@@ -504,7 +507,28 @@ local function copytotfm(data,cache_id)
properties.subfont = subfont
--
if not CONTEXTLMTXMODE or CONTEXTLMTXMODE == 0 then
- properties.encodingbytes = 2
+ --
+ properties.encodingbytes = 2
+elseif CONTEXTLMTXMODE then
+ local duplicates = resources and resources.duplicates
+ if duplicates then
+ local maxindex = data.nofglyphs or metadata.nofglyphs
+ if maxindex then
+ for u, d in sortedhash(duplicates) do
+ local du = descriptions[u]
+ if du then
+ for uu in sortedhash(d) do
+ maxindex = maxindex + 1
+ descriptions[uu].dupindex = du.index
+ descriptions[uu].index = maxindex
+ end
+ else
+ -- report_otf("no %U in font %a, duplicates ignored",u,filename)
+ end
+ end
+ end
+ end
+ --
end
--
-- properties.name = specification.name
@@ -619,25 +643,33 @@ local function read_from_otf(specification)
return tfmdata
end
-local function checkmathsize(tfmdata,mathsize)
- local mathdata = tfmdata.shared.rawdata.metadata.math
- local mathsize = tonumber(mathsize)
- if mathdata then -- we cannot use mathparameters as luatex will complain
- local parameters = tfmdata.parameters
- parameters.scriptpercentage = mathdata.ScriptPercentScaleDown
- parameters.scriptscriptpercentage = mathdata.ScriptScriptPercentScaleDown
- parameters.mathsize = mathsize -- only when a number !
- end
-end
-
-registerotffeature {
- name = "mathsize",
- description = "apply mathsize specified in the font",
- initializers = {
- base = checkmathsize,
- node = checkmathsize,
- }
-}
+-- if context then
+--
+-- -- so the next will go to some generic module instead
+--
+-- else
+--
+-- local function checkmathsize(tfmdata,mathsize)
+-- local mathdata = tfmdata.shared.rawdata.metadata.math
+-- local mathsize = tonumber(mathsize)
+-- if mathdata then -- we cannot use mathparameters as luatex will complain
+-- local parameters = tfmdata.parameters
+-- parameters.scriptpercentage = mathdata.ScriptPercentScaleDown
+-- parameters.scriptscriptpercentage = mathdata.ScriptScriptPercentScaleDown
+-- parameters.mathsize = mathsize -- only when a number !
+-- end
+-- end
+--
+-- registerotffeature {
+-- name = "mathsize",
+-- description = "apply mathsize specified in the font",
+-- initializers = {
+-- base = checkmathsize,
+-- node = checkmathsize,
+-- }
+-- }
+--
+-- end
-- readers
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-oto.lua b/Master/texmf-dist/tex/context/base/mkiv/font-oto.lua
index 6f5f2fb418f..e8b92c07755 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-oto.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-oto.lua
@@ -67,7 +67,7 @@ local function gref(descriptions,n)
end
local function cref(feature,sequence)
- return formatters["feature %a, type %a, chain lookup %a"](feature,sequence.type,sequence.name)
+ return formatters["feature %a, type %a, (chain) lookup %a"](feature,sequence.type,sequence.name)
end
local function report_substitution(feature,sequence,descriptions,unicode,substitution)
@@ -170,7 +170,7 @@ end
local function makefake(tfmdata,name,present)
local private = getprivate(tfmdata)
local character = { intermediate = true, ligatures = { } }
- resources.unicodes[name] = private
+ tfmdata.resources.unicodes[name] = private
tfmdata.characters[private] = character
tfmdata.descriptions[private] = { name = name }
present[name] = private
@@ -178,43 +178,55 @@ local function makefake(tfmdata,name,present)
end
local function make_1(present,tree,name)
- for k, v in next, tree do
- if k == "ligature" then
- present[name] = v
+ if tonumber(tree) then
+ present[name] = v
+ else
+ for k, v in next, tree do
+ if k == "ligature" then
+ present[name] = v
+ else
+ make_1(present,v,name .. "_" .. k)
+ end
+ end
+ end
+end
+
+local function make_3(present,tfmdata,characters,tree,name,preceding,unicode,done,v)
+ local character = characters[preceding]
+ if not character then
+ if trace_baseinit then
+ report_prepare("weird ligature in lookup %a, current %C, preceding %C",sequence.name,v,preceding)
+ end
+ character = makefake(tfmdata,name,present)
+ end
+ local ligatures = character.ligatures
+ if ligatures then
+ ligatures[unicode] = { char = v }
+ else
+ character.ligatures = { [unicode] = { char = v } }
+ end
+ if done then
+ local d = done[name]
+ if not d then
+ done[name] = { "dummy", v }
else
- make_1(present,v,name .. "_" .. k)
+ d[#d+1] = v
end
end
end
local function make_2(present,tfmdata,characters,tree,name,preceding,unicode,done)
- for k, v in next, tree do
- if k == "ligature" then
- local character = characters[preceding]
- if not character then
- if trace_baseinit then
- report_prepare("weird ligature in lookup %a, current %C, preceding %C",sequence.name,v,preceding)
- end
- character = makefake(tfmdata,name,present)
- end
- local ligatures = character.ligatures
- if ligatures then
- ligatures[unicode] = { char = v }
+ if tonumber(tree) then
+ make_3(present,tfmdata,characters,tree,name,preceding,unicode,done,tree)
+ else
+ for k, v in next, tree do
+ if k == "ligature" then
+ make_3(present,tfmdata,characters,tree,name,preceding,unicode,done,v)
else
- character.ligatures = { [unicode] = { char = v } }
+ local code = present[name] or unicode
+ local name = name .. "_" .. k
+ make_2(present,tfmdata,characters,v,name,code,k,done)
end
- if done then
- local d = done[name]
- if not d then
- done[name] = { "dummy", v }
- else
- d[#d+1] = v
- end
- end
- else
- local code = present[name] or unicode
- local name = name .. "_" .. k
- make_2(present,tfmdata,characters,v,name,code,k,done)
end
end
end
@@ -228,12 +240,11 @@ local function preparesubstitutions(tfmdata,feature,value,validlookups,lookuplis
local ligatures = { }
local alternate = tonumber(value) or true and 1
local defaultalt = otf.defaultbasealternate
-
local trace_singles = trace_baseinit and trace_singles
local trace_alternatives = trace_baseinit and trace_alternatives
local trace_ligatures = trace_baseinit and trace_ligatures
- -- A chain of changes is handled in font-con which is clesner because
+ -- A chain of changes is handled in font-con which is cleaner because
-- we can have shared changes and such.
if not changed then
@@ -493,6 +504,9 @@ local function featuresinitializer(tfmdata,value)
local value = features[feature]
if value then
local validlookups, lookuplist = collectlookups(rawdata,feature,script,language)
+-- if not validlookups and not lookuplist and script == "math" then
+-- validlookups, lookuplist = collectlookups(rawdata,feature,"dflt","dflt")
+-- end
if not validlookups then
-- skip
elseif basesubstitutions and basesubstitutions[feature] then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-otr.lua b/Master/texmf-dist/tex/context/base/mkiv/font-otr.lua
index 531f665de72..1e6f94e455c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-otr.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-otr.lua
@@ -66,6 +66,7 @@ if not modules then modules = { } end modules ['font-otr'] = {
-- require("char-ini")
-- end
+local number = number
local next, type, tonumber, rawget = next, type, tonumber, rawget
local byte, lower, char, gsub = string.byte, string.lower, string.char, string.gsub
local fullstrip = string.fullstrip
@@ -682,15 +683,15 @@ local weights = {
}
local widths = {
- [1] = "ultracondensed",
- [2] = "extracondensed",
- [3] = "condensed",
- [4] = "semicondensed",
- [5] = "normal",
- [6] = "semiexpanded",
- [7] = "expanded",
- [8] = "extraexpanded",
- [9] = "ultraexpanded",
+ "ultracondensed",
+ "extracondensed",
+ "condensed",
+ "semicondensed",
+ "normal",
+ "semiexpanded",
+ "expanded",
+ "extraexpanded",
+ "ultraexpanded",
}
setmetatableindex(weights, function(t,k)
@@ -703,31 +704,31 @@ setmetatableindex(widths,function(t,k)
return "normal"
end)
-local panoseweights = {
- [ 0] = "normal",
- [ 1] = "normal",
- [ 2] = "verylight",
- [ 3] = "light",
- [ 4] = "thin",
- [ 5] = "book",
- [ 6] = "medium",
- [ 7] = "demi",
- [ 8] = "bold",
- [ 9] = "heavy",
- [10] = "black",
+local panoseweights = { [0] =
+ "normal",
+ "normal",
+ "verylight",
+ "light",
+ "thin",
+ "book",
+ "medium",
+ "demi",
+ "bold",
+ "heavy",
+ "black",
}
-local panosewidths = {
- [ 0] = "normal",
- [ 1] = "normal",
- [ 2] = "normal",
- [ 3] = "normal",
- [ 4] = "normal",
- [ 5] = "expanded",
- [ 6] = "condensed",
- [ 7] = "veryexpanded",
- [ 8] = "verycondensed",
- [ 9] = "monospaced",
+local panosewidths = { [0] =
+ "normal",
+ "normal",
+ "normal",
+ "normal",
+ "normal",
+ "expanded",
+ "condensed",
+ "veryexpanded",
+ "verycondensed",
+ "monospaced",
}
-- We implement a reader per table.
@@ -1189,6 +1190,9 @@ readers.hmtx = function(f,fontdata,specification)
-- if leftsidebearing ~= 0 then
-- glyph.lsb = leftsidebearing
-- end
+-- if leftsidebearing ~= 0 then
+-- glyph.lsb = leftsidebearing
+-- end
end
-- The next can happen in for instance a monospace font or in a cjk font
-- with fixed widths.
@@ -1250,7 +1254,7 @@ readers.post = function(f,fontdata,specification)
local version = readulong(f)
fontdata.postscript = {
version = version,
- italicangle = round(1000*readfixed(f))/1000,
+ italicangle = readfixed(f),
underlineposition = readfword(f),
underlinethickness = readfword(f),
monospaced = readulong(f),
@@ -1292,8 +1296,8 @@ readers.post = function(f,fontdata,specification)
if length > 0 then
glyphs[mapping].name = readstring(f,length)
else
- report("quit post name fetching at %a of %a: %s",i,maxnames,"overflow")
- break
+ -- report("quit post name fetching at %a of %a: %s",i,maxnames,"overflow")
+ -- break
end
end
end
@@ -1683,7 +1687,7 @@ end
function readers.cmap(f,fontdata,specification)
local tableoffset = gotodatatable(f,fontdata,"cmap",specification.glyphs)
if tableoffset then
- local version = readushort(f)
+ local version = readushort(f) -- check later versions
local noftables = readushort(f)
local records = { }
local unicodecid = false
@@ -1962,9 +1966,10 @@ local function getinfo(maindata,sub,platformnames,rawfamilynames,metricstoo,inst
weight = weight and lower(weight),
width = width and lower(width),
pfmweight = metrics.weightclass or 400, -- will become weightclass
- pfmwidth = metrics.widthclass or 5, -- will become widthclass
+ pfmwidth = metrics.widthclass or 5, -- will become widthclass
panosewidth = metrics.panosewidth,
panoseweight = metrics.panoseweight,
+ fstype = metrics.fstype or 0, -- embedding, subsetting and editing
italicangle = postscript.italicangle or 0,
units = fontheader.units or 0,
designsize = fontdata.designsize,
@@ -2424,25 +2429,29 @@ function readers.loadfont(filename,n,instance)
nofsubfonts = fontdata.subfonts and #fontdata.subfonts or nil,
},
resources = {
- -- filename = fontdata.filename,
- filename = filename,
- private = privateoffset,
- duplicates = fontdata.duplicates or { },
- features = fontdata.features or { }, -- we need to add these in the loader
- sublookups = fontdata.sublookups or { }, -- we need to add these in the loader
- marks = fontdata.marks or { }, -- we need to add these in the loader
- markclasses = fontdata.markclasses or { }, -- we need to add these in the loader
- marksets = fontdata.marksets or { }, -- we need to add these in the loader
- sequences = fontdata.sequences or { }, -- we need to add these in the loader
- variants = fontdata.variants, -- variant -> unicode -> glyph
- version = getname(fontdata,"version"),
- cidinfo = fontdata.cidinfo,
- mathconstants = fontdata.mathconstants,
- colorpalettes = fontdata.colorpalettes,
- svgshapes = fontdata.svgshapes,
- pngshapes = fontdata.pngshapes,
- variabledata = fontdata.variabledata,
- foundtables = fontdata.foundtables,
+ -- filename = fontdata.filename,
+ filename = filename,
+ private = privateoffset,
+ duplicates = fontdata.duplicates or { },
+ features = fontdata.features or { }, -- we need to add these in the loader
+ sublookups = fontdata.sublookups or { }, -- we need to add these in the loader
+ marks = fontdata.marks or { }, -- we need to add these in the loader
+ markclasses = fontdata.markclasses or { }, -- we need to add these in the loader
+ marksets = fontdata.marksets or { }, -- we need to add these in the loader
+ sequences = fontdata.sequences or { }, -- we need to add these in the loader
+ variants = fontdata.variants, -- variant -> unicode -> glyph
+ version = getname(fontdata,"version"),
+ cidinfo = fontdata.cidinfo,
+ mathconstants = fontdata.mathconstants,
+ colorpalettes = fontdata.colorpalettes,
+ colorpaintdata = fontdata.colorpaintdata,
+ colorpaintlist = fontdata.colorpaintlist,
+ colorlinesdata = fontdata.colorlinesdata,
+ coloraffinedata = fontdata.coloraffinedata,
+ svgshapes = fontdata.svgshapes,
+ pngshapes = fontdata.pngshapes,
+ variabledata = fontdata.variabledata,
+ foundtables = fontdata.foundtables,
},
}
end
@@ -2498,15 +2507,15 @@ function readers.getinfo(filename,specification) -- string, nil|number|table
end
end
-function readers.rehash(fontdata,hashmethod)
+function readers.rehash() -- fontdata,hashmethod
report("the %a helper is not yet implemented","rehash")
end
-function readers.checkhash(fontdata)
+function readers.checkhash() --fontdata
report("the %a helper is not yet implemented","checkhash")
end
-function readers.pack(fontdata,hashmethod)
+function readers.pack() -- fontdata,hashmethod
report("the %a helper is not yet implemented","pack")
end
@@ -2522,6 +2531,10 @@ function readers.compact(fontdata)
report("the %a helper is not yet implemented","compact")
end
+function readers.condense(fontdata)
+ report("the %a helper is not yet implemented","condense")
+end
+
-- plug in
local extenders = { }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ots.lua b/Master/texmf-dist/tex/context/base/mkiv/font-ots.lua
index 880bcb6d50a..6d7c5fb2568 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-ots.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ots.lua
@@ -8,6 +8,11 @@ if not modules then modules = { } end modules ['font-ots'] = { -- sequences
}
--[[ldx--
+<p>I need to check the description at the microsoft site ... it has been improved
+so maybe there are some interesting details there. Most below is based on old and
+incomplete documentation and involved quite a bit of guesswork (checking with the
+abstract uniscribe of those days. But changing things is tricky!</p>
+
<p>This module is a bit more split up that I'd like but since we also want to test
with plain <l n='tex'/> it has to be so. This module is part of <l n='context'/>
and discussion about improvements and functionality mostly happens on the
@@ -163,13 +168,10 @@ local trace_testruns = false registertracker("otf.testruns", function
local forcediscretionaries = false
local forcepairadvance = false -- for testing
-directives.register("otf.forcediscretionaries",function(v)
- forcediscretionaries = v
-end)
+local repeatablemultiples = context or false
-directives.register("otf.forcepairadvance",function(v)
- forcepairadvance = v
-end)
+directives.register("otf.forcediscretionaries", function(v) forcediscretionaries = v end)
+directives.register("otf.forcepairadvance", function(v) forcepairadvance = v end)
local report_direct = logs.reporter("fonts","otf direct")
local report_subchain = logs.reporter("fonts","otf subchain")
@@ -195,7 +197,6 @@ local setboth = nuts.setboth
local getid = nuts.getid
local getstate = nuts.getstate
local getsubtype = nuts.getsubtype
-local setsubtype = nuts.setsubtype
local getchar = nuts.getchar
local setchar = nuts.setchar
local getdisc = nuts.getdisc
@@ -213,39 +214,37 @@ local getglyphdata = nuts.getglyphdata
-- their positions because some complex ligatures might need that. For the moment we
-- use an x_ prefix because for now generic follows the other approach.
-local copy_no_components = nuts.copy_no_components
-local copy_only_glyphs = nuts.copy_only_glyphs
-local count_components = nuts.count_components
-local set_components = nuts.set_components
-local get_components = nuts.get_components
-local flush_components = nuts.flush_components
+local components = nuts.components
+local copynocomponents = components.copynocomponents
+local copyonlyglyphs = components.copyonlyglyphs
+local countcomponents = components.count
+local setcomponents = components.set
+local getcomponents = components.get
+local flushcomponents = components.flush
---------------------------------------------------------------------------------------
local ischar = nuts.ischar
-local usesfont = nuts.uses_font
-
-local insert_node_after = nuts.insert_after
-local copy_node = nuts.copy
-local copy_node_list = nuts.copy_list
-local remove_node = nuts.remove
-local find_node_tail = nuts.tail
-local flush_node_list = nuts.flush_list
-local flush_node = nuts.flush_node
-local end_of_math = nuts.end_of_math
-local start_of_par = nuts.start_of_par
+local usesfont = nuts.usesfont
+
+local insertnodeafter = nuts.insertafter
+local copynode = nuts.copy
+local copynodelist = nuts.copylist
+local removenode = nuts.remove
+local findnodetail = nuts.tail
+local flushnodelist = nuts.flushlist
+local flushnode = nuts.flushnode
+local endofmath = nuts.endofmath
+
+local startofpar = nuts.startofpar
local setmetatable = setmetatable
local setmetatableindex = table.setmetatableindex
local nextnode = nuts.traversers.node
------ zwnj = 0x200C
------ zwj = 0x200D
-
local nodecodes = nodes.nodecodes
local glyphcodes = nodes.glyphcodes
-local disccodes = nodes.disccodes
local glyph_code = nodecodes.glyph
local glue_code = nodecodes.glue
@@ -257,8 +256,7 @@ local par_code = nodecodes.par
local lefttoright_code = nodes.dirvalues.lefttoright
local righttoleft_code = nodes.dirvalues.righttoleft
-local discretionarydisc_code = disccodes.discretionary
-local ligatureglyph_code = glyphcodes.ligature
+local discretionarydisc_code = nodes.disccodes.discretionary
local a_noligature = attributes.private("noligature")
@@ -317,13 +315,6 @@ local checkstep = (tracers and tracers.steppers.check) or function()
local registerstep = (tracers and tracers.steppers.register) or function() end
local registermessage = (tracers and tracers.steppers.message) or function() end
--- local function checkdisccontent(d)
--- local pre, post, replace = getdisc(d)
--- if pre then for n in traverse_id(glue_code,pre) do report("pre: %s",nodes.idstostring(pre)) break end end
--- if post then for n in traverse_id(glue_code,post) do report("pos: %s",nodes.idstostring(post)) break end end
--- if replace then for n in traverse_id(glue_code,replace) do report("rep: %s",nodes.idstostring(replace)) break end end
--- end
-
local function logprocess(...)
if trace_steps then
registermessage(...)
@@ -380,7 +371,7 @@ local function cref(dataset,sequence,index)
return "no valid dataset"
end
local merged = sequence.merged and "merged " or ""
- if index then
+ if index and index > 1 then
return formatters["feature %a, type %a, %schain lookup %a, index %a"](
dataset[4],sequence.type,merged,sequence.name,index)
else
@@ -423,12 +414,12 @@ local function flattendisk(head,disc)
local prev, next = getboth(disc)
local ishead = head == disc
setdisc(disc)
- flush_node(disc)
+ flushnode(disc)
if pre then
- flush_node_list(pre)
+ flushnodelist(pre)
end
if post then
- flush_node_list(post)
+ flushnodelist(post)
end
if ishead then
if replace then
@@ -458,7 +449,7 @@ end
local function appenddisc(disc,list)
local pre, post, replace, pretail, posttail, replacetail = getdisc(disc,true)
local posthead = list
- local replacehead = copy_node_list(list)
+ local replacehead = copynodelist(list)
if post then
setlink(posttail,posthead)
else
@@ -480,16 +471,15 @@ local function markstoligature(head,start,stop,char)
local next = getnext(stop)
setprev(start)
setnext(stop)
- local base = copy_no_components(start,copyinjection)
+ local base = copynocomponents(start,copyinjection)
if head == start then
head = base
end
resetinjection(base)
setchar(base,char)
- setsubtype(base,ligatureglyph_code)
- set_components(base,start)
+ setcomponents(base,start)
setlink(prev,base,next)
- flush_components(start)
+ flushcomponents(start)
return head, base
end
end
@@ -509,7 +499,7 @@ local no_right_ligature_code = 2
local no_left_kern_code = 4
local no_right_kern_code = 8
-local has_glyph_option = node.direct.has_glyph_option or function(n,c)
+local hasglyphoption = function(n,c)
if c == no_left_ligature_code or c == no_right_ligature_code then
return getattr(n,a_noligature) == 1
else
@@ -520,7 +510,7 @@ end
-- in lmtx we need to check the components and can be slightly more clever
local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfound,hasmarks) -- brr head
- if has_glyph_option(start,no_right_ligature_code) then
+ if hasglyphoption(start,no_right_ligature_code) then
return head, start
end
if start == stop and getchar(start) == char then
@@ -533,14 +523,13 @@ local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfou
local comp = start
setprev(start)
setnext(stop)
- local base = copy_no_components(start,copyinjection)
+ local base = copynocomponents(start,copyinjection)
if start == head then
head = base
end
resetinjection(base)
setchar(base,char)
- setsubtype(base,ligatureglyph_code)
- set_components(base,comp)
+ setcomponents(base,comp)
setlink(prev,base,next)
if not discfound then
local deletemarks = not skiphash or hasmarks
@@ -554,7 +543,7 @@ local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfou
local char = getchar(start)
if not marks[char] then
baseindex = baseindex + componentindex
- componentindex = count_components(start,marks)
+ componentindex = countcomponents(start,marks)
-- we can be more clever here: "not deletemarks or (skiphash and not skiphash[char])"
-- and such:
elseif not deletemarks then
@@ -563,9 +552,9 @@ local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfou
if trace_marks then
logwarning("%s: keep ligature mark %s, gets index %s",pref(dataset,sequence),gref(char),getligaindex(start))
end
- local n = copy_node(start)
+ local n = copynode(start)
copyinjection(n,start) -- is this ok ? we position later anyway
- head, current = insert_node_after(head,current,n) -- unlikely that mark has components
+ head, current = insertnodeafter(head,current,n) -- unlikely that mark has components
elseif trace_marks then
logwarning("%s: delete ligature mark %s",pref(dataset,sequence),gref(char))
end
@@ -590,7 +579,7 @@ local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfou
break
end
end
- flush_components(components)
+ flushcomponents(components)
else
-- discfound ... forget about marks .. probably no scripts that hyphenate and have marks
local discprev, discnext = getboth(discfound)
@@ -602,8 +591,8 @@ local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfou
if not replace then
-- looks like we never come here as it's not okay
local prev = getprev(base)
- -- local comp = get_components(base) -- already set
- local copied = copy_only_glyphs(comp)
+ -- local comp = getcomponents(base) -- already set
+ local copied = copyonlyglyphs(comp)
if pre then
setlink(discprev,pre)
else
@@ -620,7 +609,7 @@ local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfou
setlink(prev,discfound,next)
setboth(base)
-- here components have a pointer so we can't free it!
- set_components(base,copied)
+ setcomponents(base,copied)
replace = base
if forcediscretionaries then
setdisc(discfound,pre,post,replace,discretionarydisc_code)
@@ -637,32 +626,69 @@ end
local function multiple_glyphs(head,start,multiple,skiphash,what,stop) -- what to do with skiphash matches here
local nofmultiples = #multiple
if nofmultiples > 0 then
+ local first = start
resetinjection(start)
setchar(start,multiple[1])
if nofmultiples > 1 then
- local sn = getnext(start)
- for k=2,nofmultiples do
+ -- local sn = getnext(start)
+ for i=2,nofmultiples do
-- untested:
--
-- while ignoremarks and marks[getchar(sn)] then
-- local sn = getnext(sn)
-- end
- local n = copy_node(start) -- ignore components
+ local n = copynode(start) -- ignore components
resetinjection(n)
- setchar(n,multiple[k])
- insert_node_after(head,start,n)
+ setchar(n,multiple[i])
+ insertnodeafter(head,start,n)
start = n
end
- if what == true then
- -- we're ok
- elseif what > 1 then
- local m = multiple[nofmultiples]
- for i=2,what do
- local n = copy_node(start) -- ignore components
- resetinjection(n)
- setchar(n,m)
- insert_node_after(head,start,n)
- start = n
+ end
+ if what ~= true and repeatablemultiples then
+ -- This is just some experimental code; we might introduce gsub_extensible
+ -- some day instead. Beware: when we have a feature that mixes alternates and
+ -- multiples we need to make sure we don't handle the alternate string values
+ -- here.
+ local kind = type(what)
+ local m, f, l
+ if kind == "string" then
+ local what, n = string.match(what,"^repeat(.-)[:=](%d+)$")
+ if what == "middle" then
+ m = tonumber(n)
+ elseif what == "first" then
+ f = tonumber(n)
+ elseif what == "last" then
+ l = tonumber(n)
+ end
+ elseif kind == "table" then
+ -- won't happen because currently we don't split these values
+ m = what.middle
+ f = what.first
+ l = what.last
+ end
+ if f or m or l then
+ if m and m > 1 and nofmultiples == 3 then
+ local middle = getnext(first)
+ for i=2,m do
+ local n = copynode(middle) -- ignore components
+ resetinjection(n)
+ insertnodeafter(head,first,n)
+ end
+ end
+ if f and f > 1 then
+ for i=2,f do
+ local n = copynode(first) -- ignore components
+ resetinjection(n)
+ insertnodeafter(head,first,n)
+ end
+ end
+ if l and l > 1 then
+ for i=2,l do
+ local n = copynode(start) -- ignore components
+ resetinjection(n)
+ insertnodeafter(head,start,n)
+ start = n
+ end
end
end
end
@@ -768,7 +794,7 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
while current do
local char = ischar(current,currentfont)
if char then
- local lg = ligature[char]
+ local lg = not tonumber(ligature) and ligature[char]
if lg then
stop = current
ligature = lg
@@ -781,14 +807,14 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
end
end
if stop then
- local lig = ligature.ligature
- if lig then
+ local ligature = tonumber(ligature) or ligature.ligature
+ if ligature then
if trace_ligatures then
local stopchar = getchar(stop)
- head, start = markstoligature(head,start,stop,lig)
+ head, start = markstoligature(head,start,stop,ligature)
logprocess("%s: replacing %s upto %s by ligature %s case 1",pref(dataset,sequence),gref(startchar),gref(stopchar),gref(getchar(start)))
else
- head, start = markstoligature(head,start,stop,lig)
+ head, start = markstoligature(head,start,stop,ligature)
end
return head, start, true, false
else
@@ -804,7 +830,7 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
if skiphash and skiphash[char] then
current = getnext(current)
else
- local lg = ligature[char]
+ local lg = not tonumber(ligature) and ligature[char]
if lg then
if marks[char] then
hasmarks = true
@@ -838,20 +864,20 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
local match
if replace then
local char = ischar(replace,currentfont)
- if char and ligature[char] then
+ if char and (not tonumber(ligature) and ligature[char]) then
match = true
end
end
if not match and pre then
local char = ischar(pre,currentfont)
- if char and ligature[char] then
+ if char and (not tonumber(ligature) and ligature[char]) then
match = true
end
end
if not match and not pre or not replace then
local n = getnext(discfound)
local char = ischar(n,currentfont)
- if char and ligature[char] then
+ if char and (not tonumber(ligature) and ligature[char]) then
match = true
end
end
@@ -861,9 +887,9 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
local prev = getprev(start)
if stop then
setnext(stop)
- local copy = copy_node_list(start)
+ local copy = copynodelist(start)
local tail = stop -- was: getprev(stop) -- Kai: needs checking on your samples
- local liat = find_node_tail(copy)
+ local liat = findnodetail(copy)
if pre then
setlink(liat,pre)
end
@@ -874,7 +900,7 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
replace = start
else
setnext(start)
- local copy = copy_node(start)
+ local copy = copynode(start)
if pre then
setlink(copy,pre)
end
@@ -895,24 +921,26 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
return head, start, true, true
end
end
- local lig = ligature.ligature
- if lig then
+ local ligature = tonumber(ligature) or ligature.ligature
+ if ligature then
if stop then
if trace_ligatures then
local stopchar = getchar(stop)
- -- head, start = toligature(head,start,stop,lig,dataset,sequence,skiphash,discfound,hasmarks)
- head, start = toligature(head,start,stop,lig,dataset,sequence,skiphash,false,hasmarks)
- logprocess("%s: replacing %s upto %s by ligature %s case 2",pref(dataset,sequence),gref(startchar),gref(stopchar),gref(lig))
+ -- head, start = toligature(head,start,stop,ligature,dataset,sequence,skiphash,discfound,hasmarks)
+ head, start = toligature(head,start,stop,ligature,dataset,sequence,skiphash,false,hasmarks)
+ logprocess("%s: replacing %s upto %s by ligature %s case 2",pref(dataset,sequence),gref(startchar),gref(stopchar),gref(ligature))
+ -- we can have a rare case of multiple disc in a lig but that makes no sense language wise but if really
+ -- needed we could backtrack if we're in a disc node
else
- -- head, start = toligature(head,start,stop,lig,dataset,sequence,skiphash,discfound,hasmarks)
- head, start = toligature(head,start,stop,lig,dataset,sequence,skiphash,false,hasmarks)
+ -- head, start = toligature(head,start,stop,ligature,dataset,sequence,skiphash,discfound,hasmarks)
+ head, start = toligature(head,start,stop,ligature,dataset,sequence,skiphash,false,hasmarks)
end
else
-- weird but happens (in some arabic font)
resetinjection(start)
- setchar(start,lig)
+ setchar(start,ligature)
if trace_ligatures then
- logprocess("%s: replacing %s by (no real) ligature %s case 3",pref(dataset,sequence),gref(startchar),gref(lig))
+ logprocess("%s: replacing %s by (no real) ligature %s case 3",pref(dataset,sequence),gref(startchar),gref(ligature))
end
end
return head, start, true, false
@@ -924,7 +952,7 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
end
function handlers.gpos_single(head,start,dataset,sequence,kerns,rlmode,skiphash,step,injection)
- if has_glyph_option(start,no_right_kern_code) then
+ if hasglyphoption(start,no_right_kern_code) then
return head, start, false
else
local startchar = getchar(start)
@@ -945,7 +973,7 @@ function handlers.gpos_single(head,start,dataset,sequence,kerns,rlmode,skiphash,
end
function handlers.gpos_pair(head,start,dataset,sequence,kerns,rlmode,skiphash,step,injection)
- if has_glyph_option(start,no_right_kern_code) then
+ if hasglyphoption(start,no_right_kern_code) then
return head, start, false
else
local snext = getnext(start)
@@ -1055,7 +1083,7 @@ function handlers.gpos_mark2base(head,start,dataset,sequence,markanchors,rlmode,
end
return head, start, true
elseif trace_bugs then
- -- onetimemessage(currentfont,basechar,"no base anchors",report_fonts)
+ -- onetimemessage(currentfont,basechar,"no base anchors")
logwarning("%s: mark %s is not anchored to %s",pref(dataset,sequence),gref(markchar),gref(basechar))
end
elseif trace_bugs then
@@ -1121,7 +1149,7 @@ function handlers.gpos_mark2ligature(head,start,dataset,sequence,markanchors,rlm
end
elseif trace_bugs then
-- logwarning("%s: char %s is missing in font",pref(dataset,sequence),gref(basechar))
- onetimemessage(currentfont,basechar,"no base anchors",report_fonts)
+ onetimemessage(currentfont,basechar,"no base anchors")
end
elseif trace_bugs then
logwarning("%s: prev node is no char, case %i",pref(dataset,sequence),1)
@@ -1286,7 +1314,7 @@ as less as needed but that would also make the code even more messy.</p>
-- To be done (example needed): what if > 1 steps
--- this is messy: do we need this disc checking also in alternaties?
+-- this is messy: do we need this disc checking also in alternates?
local function reportzerosteps(dataset,sequence)
logwarning("%s: no steps",cref(dataset,sequence))
@@ -1322,7 +1350,7 @@ function chainprocs.gsub_remove(head,start,stop,dataset,sequence,currentlookup,r
if trace_chains then
logprocess("%s: removing character %s",cref(dataset,sequence,chainindex),gref(getchar(start)))
end
- head, start = remove_node(head,start,true)
+ head, start = removenode(head,start,true)
return head, getprev(start), true
end
@@ -1489,7 +1517,7 @@ function chainprocs.gsub_ligature(head,start,stop,dataset,sequence,currentlookup
current = getnext(current)
-- end
else
- local lg = ligatures[schar]
+ local lg = not tonumber(ligatures) and ligatures[schar]
if lg then
ligatures = lg
last = current
@@ -1508,7 +1536,7 @@ function chainprocs.gsub_ligature(head,start,stop,dataset,sequence,currentlookup
end
end
end
- local ligature = ligatures.ligature
+ local ligature = tonumber(ligatures) or ligatures.ligature
if ligature then
if chainindex then
stop = last
@@ -1536,7 +1564,7 @@ end
function chainprocs.gpos_single(head,start,stop,dataset,sequence,currentlookup,rlmode,skiphash,chainindex)
-- we actually should check no_left_kern_code with next
- if not has_glyph_option(start,no_right_kern_code) then
+ if not hasglyphoption(start,no_right_kern_code) then
local mapping = currentlookup.mapping
if mapping == nil then
mapping = getmapping(dataset,sequence,currentlookup)
@@ -1566,7 +1594,7 @@ end
function chainprocs.gpos_pair(head,start,stop,dataset,sequence,currentlookup,rlmode,skiphash,chainindex) -- todo: injections ?
-- we actually should check no_left_kern_code with next
- if not has_glyph_option(start,no_right_kern_code) then
+ if not hasglyphoption(start,no_right_kern_code) then
local mapping = currentlookup.mapping
if mapping == nil then
mapping = getmapping(dataset,sequence,currentlookup)
@@ -1861,7 +1889,7 @@ function chainprocs.gpos_cursive(head,start,stop,dataset,sequence,currentlookup,
end
end
elseif trace_bugs then
- onetimemessage(currentfont,startchar,"no entry anchors",report_fonts)
+ onetimemessage(currentfont,startchar,"no entry anchors")
end
break
end
@@ -1917,7 +1945,7 @@ do if not userkern then -- generic
local setkern = nuts.setkern -- not injections.setkern
userkern = function(k)
- local n = copy_node(thekern)
+ local n = copynode(thekern)
setkern(n,k)
return n
end
@@ -1934,13 +1962,13 @@ local function checked(head)
if next then
setlink(kern,next)
end
- flush_node(current)
+ flushnode(current)
head = kern
current = next
else
local prev, next = getboth(current)
setlink(prev,kern,next)
- flush_node(current)
+ flushnode(current)
current = next
end
else
@@ -1959,12 +1987,11 @@ end
local noflags = { false, false, false, false }
-local function chainrun(head,start,last,dataset,sequence,rlmode,skiphash,ck)
+local function chainrun(head,start,last,dataset,sequence,rlmode,skiphash,ck,where)
local size = ck[5] - ck[4] + 1
local chainlookups = ck[6]
local done = false
-
-- current match
if chainlookups then
-- Lookups can be like { 1, false, 3 } or { false, 2 } or basically anything and
@@ -1975,21 +2002,30 @@ local function chainrun(head,start,last,dataset,sequence,rlmode,skiphash,ck)
-- if nofchainlookups > size then
-- -- bad rules
-- end
-
local chainlookup = chainlookups[1]
- for j=1,#chainlookup do
- local chainstep = chainlookup[j]
- local chainkind = chainstep.type
- local chainproc = chainprocs[chainkind]
- if chainproc then
- local ok
- head, start, ok = chainproc(head,start,last,dataset,sequence,chainstep,rlmode,skiphash)
- if ok then
- done = true
+ if chainlookup then
+ for j=1,#chainlookup do
+ local chainstep = chainlookup[j]
+ if chainstep then
+ local chainkind = chainstep.type
+ local chainproc = chainprocs[chainkind]
+ if chainproc then
+ local ok
+ -- HH: chainindex 1 added here (for KAI to check too), there are weird ligatures e.g.
+ -- char + mark -> char where mark has to disappear
+ head, start, ok = chainproc(head,start,last,dataset,sequence,chainstep,rlmode,skiphash,1)
+ if ok then
+ done = true
+ end
+ else
+ logprocess("%s: %s is not yet supported (1)",cref(dataset,sequence),chainkind)
+ end
+ else
+ logprocess("%s: has an issue (1)",cref(dataset,sequence))
end
- else
- logprocess("%s: %s is not yet supported (1)",cref(dataset,sequence),chainkind)
end
+ else
+ -- whatever
end
else
@@ -2030,23 +2066,28 @@ local function chainrun(head,start,last,dataset,sequence,rlmode,skiphash,ck)
if chainlookup then
for j=1,#chainlookup do
local chainstep = chainlookup[j]
- local chainkind = chainstep.type
- local chainproc = chainprocs[chainkind]
- if chainproc then
- local ok, n
- head, start, ok, n = chainproc(head,start,last,dataset,sequence,chainstep,rlmode,skiphash,i)
- -- messy since last can be changed !
- if ok then
- done = true
- if n and n > 1 and i + n > nofchainlookups then
- -- this is a safeguard, we just ignore the rest of the lookups
- i = size -- prevents an advance
- break
+ if chainstep then
+ local chainkind = chainstep.type
+ local chainproc = chainprocs[chainkind]
+ if chainproc then
+ local ok, n
+ head, start, ok, n = chainproc(head,start,last,dataset,sequence,chainstep,rlmode,skiphash,i)
+ -- messy since last can be changed !
+ if ok then
+ done = true
+ if n and n > 1 and i + n > nofchainlookups then
+ -- this is a safeguard, we just ignore the rest of the lookups
+ i = size -- prevents an advance
+ break
+ end
end
+ else
+ -- actually an error
+ logprocess("%s: %s is not yet supported (2)",cref(dataset,sequence),chainkind)
end
else
-- actually an error
- logprocess("%s: %s is not yet supported (2)",cref(dataset,sequence),chainkind)
+ logprocess("%s: has an issue (2)",cref(dataset,sequence))
end
end
else
@@ -2074,7 +2115,7 @@ local function chainrun(head,start,last,dataset,sequence,rlmode,skiphash,ck)
else
done = true
if trace_contexts then
- logprocess("%s: skipping match",cref(dataset,sequence))
+ logprocess("%s: skipping match @ %i",cref(dataset,sequence),where)
end
end
end
@@ -2104,6 +2145,8 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
local last = start
local prev = getprev(start)
local hasglue = false
+ local useddisc = nil -- new 2022-09-25
+ local usedstart = start -- new 2022-09-25
-- fishy: so we can overflow and then go on in the sweep?
-- todo : id can also be glue_code as we checked spaces
@@ -2174,7 +2217,7 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
tail = prev
setprev(current,sweepnode)
else
- tail = find_node_tail(head)
+ tail = findnodetail(head)
end
setnext(sweepnode,current)
setprev(head)
@@ -2265,15 +2308,14 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
end
end
end
+
local done = false
if lookaheaddisc then
-
local cf = start
local cl = getprev(lookaheaddisc)
local cprev = getprev(start)
local insertedmarks = 0
-
while cprev do
local char = ischar(cf,currentfont)
if char and marks[char] then
@@ -2292,13 +2334,13 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
head = lookaheaddisc
end
local pre, post, replace = getdisc(lookaheaddisc)
- local new = copy_node_list(cf) -- br, how often does that happen
+ local new = copynodelist(cf) -- br, how often does that happen
local cnew = new
if pre then
- setlink(find_node_tail(cf),pre)
+ setlink(findnodetail(cf),pre)
end
if replace then
- local tail = find_node_tail(new)
+ local tail = findnodetail(new)
setlink(tail,replace)
end
for i=1,insertedmarks do
@@ -2312,14 +2354,14 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
end
if not notmatchpre[lookaheaddisc] then
local ok = false
- cf, start, ok = chainrun(cf,start,cl,dataset,sequence,rlmode,skiphash,ck)
+ cf, start, ok = chainrun(cf,start,cl,dataset,sequence,rlmode,skiphash,ck,1)
if ok then
done = true
end
end
if not notmatchreplace[lookaheaddisc] then
local ok = false
- new, cnew, ok = chainrun(new,cnew,clast,dataset,sequence,rlmode,skiphash,ck)
+ new, cnew, ok = chainrun(new,cnew,clast,dataset,sequence,rlmode,skiphash,ck,2)
if ok then
done = true
end
@@ -2330,16 +2372,14 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
setdisc(lookaheaddisc,cf,post,new)
end
start = getprev(lookaheaddisc)
+ useddisc = lookaheaddisc -- new 2022-09-25
sweephead[cf] = getnext(clast) or false
sweephead[new] = getnext(cl) or false
-
elseif backtrackdisc then
-
local cf = getnext(backtrackdisc)
local cl = start
local cnext = getnext(start)
local insertedmarks = 0
-
while cnext do
local char = ischar(cnext,currentfont)
if char and marks[char] then
@@ -2354,8 +2394,8 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
setprev(cf)
setnext(cl)
local pre, post, replace, pretail, posttail, replacetail = getdisc(backtrackdisc,true)
- local new = copy_node_list(cf)
- local cnew = find_node_tail(new)
+ local new = copynodelist(cf)
+ local cnew = findnodetail(new)
for i=1,insertedmarks do
cnew = getprev(cnew)
end
@@ -2365,14 +2405,14 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
end
if not notmatchpost[backtrackdisc] then
local ok = false
- cf, start, ok = chainrun(cf,start,last,dataset,sequence,rlmode,skiphash,ck)
+ cf, start, ok = chainrun(cf,start,last,dataset,sequence,rlmode,skiphash,ck,3)
if ok then
done = true
end
end
if not notmatchreplace[backtrackdisc] then
local ok = false
- new, cnew, ok = chainrun(new,cnew,clast,dataset,sequence,rlmode,skiphash,ck)
+ new, cnew, ok = chainrun(new,cnew,clast,dataset,sequence,rlmode,skiphash,ck,4)
if ok then
done = true
end
@@ -2393,33 +2433,57 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
setdisc(backtrackdisc,pre,post,replace)
end
start = getprev(backtrackdisc)
+ useddisc = backtrackdisc -- new 2022-09-25
sweephead[post] = getnext(clast) or false
sweephead[replace] = getnext(last) or false
-
else
local ok = false
- head, start, ok = chainrun(head,start,last,dataset,sequence,rlmode,skiphash,ck)
+ head, start, ok = chainrun(head,start,last,dataset,sequence,rlmode,skiphash,ck,5)
if ok then
done = true
end
end
-
- return head, start, done
+ if useddisc and start ~= usedstart then -- make this option per font -- new 2022-09-25
+ start = getnext(start) -- new 2022-09-25
+ end -- new 2022-09-25
+ return head, start, done, useddisc -- new 2022-09-25
end
-local function chaintrac(head,start,dataset,sequence,rlmode,skiphash,ck,match,discseen,sweepnode)
- local rule = ck[1]
- local lookuptype = ck[8] or ck[2]
- local nofseq = #ck[3]
- local first = ck[4]
- local last = ck[5]
- local char = getchar(start)
- logwarning("%s: rule %s %s at char %s for (%s,%s,%s) chars, lookuptype %a, %sdisc seen, %ssweeping",
- cref(dataset,sequence),rule,match and "matches" or "nomatch",
- gref(char),first-1,last-first+1,nofseq-last,lookuptype,
- discseen and "" or "no ", sweepnode and "" or "not ")
+local chaintrac do
+
+ local level = 0
+ local last = { }
+
+ chaintrac = function(head,start,dataset,sequence,rlmode,skiphash,ck,match,discseen,sweepnode)
+ if dataset then
+ level = level + 1
+ last[level] = start
+ local rule = ck[1]
+ local lookuptype = ck[8] or ck[2]
+ local nofseq = #ck[3] -- ck[3].n
+ local first = ck[4]
+ local last = ck[5]
+ local char = getchar(start)
+ logwarning("+ %i : %s: rule %s %s at char %s for (%s,%s,%s) chars, lookuptype %a, %sdisc seen, %ssweeping",
+ level,cref(dataset,sequence),rule,match and "matches" or "nomatch",
+ gref(char),first-1,last-first+1,nofseq-last,lookuptype,
+ discseen and "" or "no ", sweepnode and "" or "not ")
+ else
+ -- (start,done)
+ local what = start and "done" or "continue"
+ local where = head == last[level] and "same" or "different"
+ local char = getchar(head)
+ if char then
+ logwarning("- %i : %s at char %s, %s node",level,what,gref(char),where)
+ else
+ logwarning("- %i : %s, %s node",level,what,where)
+ end
+ level = level - 1
+ end
+ end
+
end
-- The next one is quite optimized but still somewhat slow, fonts like ebgaramond
@@ -2433,6 +2497,9 @@ end
-- the previous disc .. such be it (<before><disc><current=fl><after> with only f done)
local function handle_contextchain(head,start,dataset,sequence,contexts,rlmode,skiphash)
+ if not contexts then
+ return head, start, false
+ end
-- optimizing for rlmode gains nothing
local sweepnode = sweepnode
local sweeptype = sweeptype
@@ -2473,160 +2540,291 @@ local function handle_contextchain(head,start,dataset,sequence,contexts,rlmode,s
for k=1,nofcontexts do -- does this disc mess work well with n > 1
- local ck = contexts[k]
- local seq = ck[3]
- local f = ck[4] -- first current
+ local ck = contexts[k]
+ local seq = ck[3]
+ local f = ck[4] -- first current
+ local last = start
if not startchar or not seq[f][startchar] then
-- report("no hit in %a at %i of %i contexts",sequence.type,k,nofcontexts)
goto next
end
- local s = seq.n -- or #seq
- local l = ck[5] -- last current
- local current = start
- local last = start
-
+ local s = seq.n -- or #seq
if s == 1 then
- goto next
- end
+ -- bit weird case: why use a chain, but it is a hit
+ else
+ local l = ck[5] -- last current
+ local current = start
+ -- local last = start
- -- current match
+ -- current match
- if l > f then
- -- before/current/after | before/current | current/after
- local discfound -- = nil
- local n = f + 1
- last = startnext -- the second in current (first already matched)
- while n <= l do
- if postreplace and not last then
- last = getnext(sweepnode)
- sweeptype = nil
- end
- if last then
- local char, id = ischar(last,currentfont)
- if char then
- if skiphash and skiphash[char] then
- skipped = true
- if trace_skips then
- show_skip(dataset,sequence,char,ck,classes[char])
- end
- last = getnext(last)
- elseif seq[n][char] then
- if n < l then
+ if l > f then
+ -- before/current/after | before/current | current/after
+ local discfound -- = nil
+ local n = f + 1
+ last = startnext -- the second in current (first already matched)
+ while n <= l do
+ if postreplace and not last then
+ last = getnext(sweepnode)
+ sweeptype = nil
+ end
+ if last then
+ local char, id = ischar(last,currentfont)
+ if char then
+ if skiphash and skiphash[char] then
+ skipped = true
+ if trace_skips then
+ show_skip(dataset,sequence,char,ck,classes[char])
+ end
last = getnext(last)
- end
- n = n + 1
- elseif discfound then
- notmatchreplace[discfound] = true
- if notmatchpre[discfound] then
- goto next
+ elseif seq[n][char] then
+ if n < l then
+ last = getnext(last)
+ end
+ n = n + 1
+ elseif discfound then
+ notmatchreplace[discfound] = true
+ if notmatchpre[discfound] then
+ goto next
+ else
+ break
+ end
else
- break
- end
- else
- goto next
- end
- elseif char == false then
- if discfound then
- notmatchreplace[discfound] = true
- if notmatchpre[discfound] then
goto next
+ end
+ elseif char == false then
+ if discfound then
+ notmatchreplace[discfound] = true
+ if notmatchpre[discfound] then
+ goto next
+ else
+ break
+ end
else
- break
+ goto next
end
- else
- goto next
- end
- elseif id == disc_code then
- -- elseif id == disc_code and (not discs or discs[last]) then
- discseen = true
- discfound = last
- notmatchpre[last] = nil
- notmatchpost[last] = true
- notmatchreplace[last] = nil
- local pre, post, replace = getdisc(last)
- if pre then
- local n = n
- while pre do
- if seq[n][getchar(pre)] then
- n = n + 1
- if n > l then
+ elseif id == disc_code then
+ -- elseif id == disc_code and (not discs or discs[last]) then
+ discseen = true
+ discfound = last
+ notmatchpre[last] = nil
+ notmatchpost[last] = true
+ notmatchreplace[last] = nil
+ local pre, post, replace = getdisc(last)
+ if pre then
+ local n = n
+ while pre do
+ if seq[n][getchar(pre)] then
+ n = n + 1
+ if n > l then
+ break
+ end
+ pre = getnext(pre)
+ else
+ notmatchpre[last] = true
break
end
- pre = getnext(pre)
- else
+ end
+ if n <= l then
notmatchpre[last] = true
- break
end
- end
- if n <= l then
+ else
notmatchpre[last] = true
end
+ if replace then
+ -- so far we never entered this branch
+ while replace do
+ if seq[n][getchar(replace)] then
+ n = n + 1
+ if n > l then
+ break
+ end
+ replace = getnext(replace)
+ else
+ notmatchreplace[last] = true
+ if notmatchpre[last] then
+ goto next
+ else
+ break
+ end
+ end
+ end
+ -- why here again
+ if notmatchpre[last] then
+ goto next
+ end
+ end
+ -- maybe only if match
+ last = getnext(last)
else
- notmatchpre[last] = true
+ goto next
end
- if replace then
- -- so far we never entered this branch
- while replace do
- if seq[n][getchar(replace)] then
- n = n + 1
- if n > l then
- break
+ else
+ goto next
+ end
+ end
+ end
+
+ -- before
+
+ if f > 1 then
+ -- if startprev then -- new 2022-09-25
+ local prev = startprev
+ if prereplace and prev == checkdisc then
+ prev = getprev(sweepnode)
+ end
+ if prev then
+ local discfound -- = nil
+ local n = f - 1
+ while n >= 1 do
+ if prev then
+ local char, id = ischar(prev,currentfont)
+ if char then
+ if skiphash and skiphash[char] then
+ skipped = true
+ if trace_skips then
+ show_skip(dataset,sequence,char,ck,classes[char])
+ end
+ prev = getprev(prev)
+ elseif seq[n][char] then
+ if n > 1 then
+ prev = getprev(prev)
+ end
+ n = n - 1
+ elseif discfound then
+ notmatchreplace[discfound] = true
+ if notmatchpost[discfound] then
+ goto next
+ else
+ break
+ end
+ else
+ goto next
end
- replace = getnext(replace)
- else
- notmatchreplace[last] = true
- if notmatchpre[last] then
+ elseif char == false then
+ if discfound then
+ notmatchreplace[discfound] = true
+ if notmatchpost[discfound] then
+ goto next
+ end
+ else
goto next
+ end
+ break
+ elseif id == disc_code then
+ -- elseif id == disc_code and (not discs or discs[prev]) then
+ -- the special case: f i where i becomes dottless i ..
+ discseen = true
+ discfound = prev
+ notmatchpre[prev] = true
+ notmatchpost[prev] = nil
+ notmatchreplace[prev] = nil
+ local pre, post, replace, pretail, posttail, replacetail = getdisc(prev,true)
+ -- weird test: needs checking
+ if pre ~= start and post ~= start and replace ~= start then
+ if post then
+ local n = n
+ while posttail do
+ if seq[n][getchar(posttail)] then
+ n = n - 1
+ if posttail == post or n < 1 then
+ break
+ else
+ posttail = getprev(posttail)
+ end
+ else
+ notmatchpost[prev] = true
+ break
+ end
+ end
+ if n >= 1 then
+ notmatchpost[prev] = true
+ end
+ else
+ notmatchpost[prev] = true
+ end
+ if replace then
+ -- we seldom enter this branch (e.g. on brill efficient)
+ while replacetail do
+ if seq[n][getchar(replacetail)] then
+ n = n - 1
+ if replacetail == replace or n < 1 then
+ break
+ else
+ replacetail = getprev(replacetail)
+ end
+ else
+ notmatchreplace[prev] = true
+ if notmatchpost[prev] then
+ goto next
+ else
+ break
+ end
+ end
+ end
+ else
+ -- notmatchreplace[prev] = true -- not according to Kai
+ end
+ end
+ prev = getprev(prev)
+ -- elseif id == glue_code and seq[n][32] and isspace(prev,threshold,id) then
+ -- elseif seq[n][32] and spaces[prev] then
+ -- n = n - 1
+ -- prev = getprev(prev)
+ elseif id == glue_code then
+ local sn = seq[n]
+ if (sn[32] and spaces[prev]) or sn[0xFFFC] then
+ n = n - 1
+ prev = getprev(prev)
else
- break
+ goto next
end
+ elseif seq[n][0xFFFC] then
+ n = n - 1
+ prev = getprev(prev)
+ else
+ goto next
end
- end
- -- why here again
- if notmatchpre[last] then
+ else
goto next
end
end
- -- maybe only if match
- last = getnext(last)
else
goto next
end
- else
- goto next
- end
+ -- else -- new 2022-09-25
+ -- goto next -- new 2022-09-25
+ -- end -- new 2022-09-25
end
- end
- -- before
+ -- after
- if f > 1 then
- if startprev then
- local prev = startprev
- if prereplace and prev == checkdisc then
- prev = getprev(sweepnode)
+ if s > l then
+ local current = last and getnext(last)
+ if not current and postreplace then
+ current = getnext(sweepnode)
end
- if prev then
+ if current then
local discfound -- = nil
- local n = f - 1
- while n >= 1 do
- if prev then
- local char, id = ischar(prev,currentfont)
+ local n = l + 1
+ while n <= s do
+ if current then
+ local char, id = ischar(current,currentfont)
if char then
if skiphash and skiphash[char] then
skipped = true
if trace_skips then
show_skip(dataset,sequence,char,ck,classes[char])
end
- prev = getprev(prev)
+ current = getnext(current) -- was absent
elseif seq[n][char] then
- if n > 1 then
- prev = getprev(prev)
+ if n < s then -- new test
+ current = getnext(current) -- was absent
end
- n = n - 1
+ n = n + 1
elseif discfound then
notmatchreplace[discfound] = true
- if notmatchpost[discfound] then
+ if notmatchpre[discfound] then
goto next
else
break
@@ -2637,237 +2835,108 @@ local function handle_contextchain(head,start,dataset,sequence,contexts,rlmode,s
elseif char == false then
if discfound then
notmatchreplace[discfound] = true
- if notmatchpost[discfound] then
+ if notmatchpre[discfound] then
goto next
+ else
+ break
end
else
goto next
end
- break
elseif id == disc_code then
- -- elseif id == disc_code and (not discs or discs[prev]) then
- -- the special case: f i where i becomes dottless i ..
- discseen = true
- discfound = prev
- notmatchpre[prev] = true
- notmatchpost[prev] = nil
- notmatchreplace[prev] = nil
- local pre, post, replace, pretail, posttail, replacetail = getdisc(prev,true)
- -- weird test: needs checking
- if pre ~= start and post ~= start and replace ~= start then
- if post then
- local n = n
- while posttail do
- if seq[n][getchar(posttail)] then
- n = n - 1
- if posttail == post or n < 1 then
- break
- else
- posttail = getprev(posttail)
- end
- else
- notmatchpost[prev] = true
+ -- elseif id == disc_code and (not discs or discs[current]) then
+ discseen = true
+ discfound = current
+ notmatchpre[current] = nil
+ notmatchpost[current] = true
+ notmatchreplace[current] = nil
+ local pre, post, replace = getdisc(current)
+ if pre then
+ local n = n
+ while pre do
+ if seq[n][getchar(pre)] then
+ n = n + 1
+ if n > s then
break
+ else
+ pre = getnext(pre)
end
+ else
+ notmatchpre[current] = true
+ break
end
- if n >= 1 then
- notmatchpost[prev] = true
- end
- else
- notmatchpost[prev] = true
end
- if replace then
- -- we seldom enter this branch (e.g. on brill efficient)
- while replacetail do
- if seq[n][getchar(replacetail)] then
- n = n - 1
- if replacetail == replace or n < 1 then
- break
- else
- replacetail = getprev(replacetail)
- end
+ if n <= s then
+ notmatchpre[current] = true
+ end
+ else
+ notmatchpre[current] = true
+ end
+ if replace then
+ -- so far we never entered this branch
+ while replace do
+ if seq[n][getchar(replace)] then
+ n = n + 1
+ if n > s then
+ break
else
- notmatchreplace[prev] = true
- if notmatchpost[prev] then
- goto next
- else
- break
- end
+ replace = getnext(replace)
+ end
+ else
+ notmatchreplace[current] = true
+ if notmatchpre[current] then
+ goto next
+ else
+ break
end
end
- else
- -- notmatchreplace[prev] = true -- not according to Kai
end
+ else
+ -- notmatchreplace[current] = true -- not according to Kai
end
- prev = getprev(prev)
- -- elseif id == glue_code and seq[n][32] and isspace(prev,threshold,id) then
- -- elseif seq[n][32] and spaces[prev] then
- -- n = n - 1
- -- prev = getprev(prev)
+ current = getnext(current)
elseif id == glue_code then
local sn = seq[n]
- if (sn[32] and spaces[prev]) or sn[0xFFFC] then
- n = n - 1
- prev = getprev(prev)
+ if (sn[32] and spaces[current]) or sn[0xFFFC] then
+ n = n + 1
+ current = getnext(current)
else
goto next
end
elseif seq[n][0xFFFC] then
- n = n - 1
- prev = getprev(prev)
- else
- goto next
- end
- else
- goto next
- end
- end
- else
- goto next
- end
- else
- goto next
- end
- end
-
- -- after
-
- if s > l then
- local current = last and getnext(last)
- if not current and postreplace then
- current = getnext(sweepnode)
- end
- if current then
- local discfound -- = nil
- local n = l + 1
- while n <= s do
- if current then
- local char, id = ischar(current,currentfont)
- if char then
- if skiphash and skiphash[char] then
- skipped = true
- if trace_skips then
- show_skip(dataset,sequence,char,ck,classes[char])
- end
- current = getnext(current) -- was absent
- elseif seq[n][char] then
- if n < s then -- new test
- current = getnext(current) -- was absent
- end
- n = n + 1
- elseif discfound then
- notmatchreplace[discfound] = true
- if notmatchpre[discfound] then
- goto next
- else
- break
- end
- else
- goto next
- end
- elseif char == false then
- if discfound then
- notmatchreplace[discfound] = true
- if notmatchpre[discfound] then
- goto next
- else
- break
- end
- else
- goto next
- end
- elseif id == disc_code then
- -- elseif id == disc_code and (not discs or discs[current]) then
- discseen = true
- discfound = current
- notmatchpre[current] = nil
- notmatchpost[current] = true
- notmatchreplace[current] = nil
- local pre, post, replace = getdisc(current)
- if pre then
- local n = n
- while pre do
- if seq[n][getchar(pre)] then
- n = n + 1
- if n > s then
- break
- else
- pre = getnext(pre)
- end
- else
- notmatchpre[current] = true
- break
- end
- end
- if n <= s then
- notmatchpre[current] = true
- end
- else
- notmatchpre[current] = true
- end
- if replace then
- -- so far we never entered this branch
- while replace do
- if seq[n][getchar(replace)] then
- n = n + 1
- if n > s then
- break
- else
- replace = getnext(replace)
- end
- else
- notmatchreplace[current] = true
- if notmatchpre[current] then
- goto next
- else
- break
- end
- end
- end
- else
- -- notmatchreplace[current] = true -- not according to Kai
- end
- current = getnext(current)
- elseif id == glue_code then
- local sn = seq[n]
- if (sn[32] and spaces[current]) or sn[0xFFFC] then
n = n + 1
current = getnext(current)
else
goto next
end
- elseif seq[n][0xFFFC] then
- n = n + 1
- current = getnext(current)
else
goto next
end
- else
- goto next
end
+ else
+ goto next
end
- else
- goto next
end
end
-
if trace_contexts then
chaintrac(head,start,dataset,sequence,rlmode,skipped and skiphash,ck,true,discseen,sweepnode)
end
if discseen or sweepnode then
+ -- When we process a disc we can collapse and therefore we backtrack one node (start) and
+ -- reprocess. This is needed because there might be more in the collapsed list.
head, start, done = chaindisk(head,start,dataset,sequence,rlmode,skipped and skiphash,ck)
else
- head, start, done = chainrun(head,start,last,dataset,sequence,rlmode,skipped and skiphash,ck)
+ head, start, done = chainrun(head,start,last,dataset,sequence,rlmode,skipped and skiphash,ck,6)
+ end
+ if trace_contexts then
+ chaintrac(start,done)
end
if done then
break
-- else
-- next context
end
- ::next::
- -- if trace_chains then
- -- chaintrac(head,start,dataset,sequence,rlmode,skipped and skiphash,ck,false,discseen,sweepnode)
- -- end
+ ::next::
end
if discseen then
notmatchpre = { }
@@ -2886,21 +2955,46 @@ handlers.gsub_reversecontextchain = handle_contextchain
handlers.gpos_contextchain = handle_contextchain
handlers.gpos_context = handle_contextchain
--- this needs testing
+-- local function chained_contextchain(head,start,stop,dataset,sequence,currentlookup,rlmode,skiphash)
+-- local steps = currentlookup.steps
+-- local nofsteps = currentlookup.nofsteps
+-- if nofsteps > 1 then
+-- reportmoresteps(dataset,sequence)
+-- end
+-- -- probably wrong
+-- local l = steps[1].coverage[getchar(start)]
+-- if l then
+-- return handle_contextchain(head,start,dataset,sequence,l,rlmode,skiphash)
+-- else
+-- return head, start, false
+-- end
+-- end
+
+-- new 2022-09-25
local function chained_contextchain(head,start,stop,dataset,sequence,currentlookup,rlmode,skiphash)
local steps = currentlookup.steps
local nofsteps = currentlookup.nofsteps
- if nofsteps > 1 then
- reportmoresteps(dataset,sequence)
- end
- -- probably wrong
- local l = steps[1].coverage[getchar(start)]
- if l then
- return handle_contextchain(head,start,dataset,sequence,l,rlmode,skiphash)
+ local char = getchar(start)
+ if nofsteps == 1 then
+ local s = steps[1]
+ local l = s.coverage[char]
+ if l then
+ return handle_contextchain(head,start,dataset,sequence,l,rlmode,skiphash)
+ end
else
- return head, start, false
+ for i=1,nofsteps do
+ local s = steps[i]
+ local l = s.coverage[char]
+ if l then
+ local h, s, d = handle_contextchain(head,start,dataset,sequence,l,rlmode,skiphash)
+ if d then
+ return h, s, d
+ end
+ end
+ end
end
+ return head, start, false
end
chainprocs.gsub_context = chained_contextchain
@@ -3039,7 +3133,7 @@ do -- overcome local limit
end
-- Functions like kernrun, comprun etc evolved over time and in the end look rather
--- complex. It's a bit of a compromis between extensive copying and creating subruns.
+-- complex. It's a bit of a compromise between extensive copying and creating subruns.
-- The logic has been improved a lot by Kai and Ivo who use complex fonts which
-- really helped to identify border cases on the one hand and get insight in the diverse
-- ways fonts implement features (not always that consistent and efficient). At the same
@@ -3146,7 +3240,8 @@ local function kernrun(disc,k_run,font,attr,...)
if done and trace_testruns then
report_disc("done",disc)
end
- return nextstart, done
+ -- return nextstart, done
+ return nextstart
end
-- fonts like ebgaramond do ligatures this way (less efficient than e.g. dejavu which
@@ -3199,12 +3294,19 @@ local function comprun(disc,c_run,...) -- vararg faster than the whole list
setdisc(disc,pre,post,replace)
end
--
- return getnext(disc), renewed
+ -- return getnext(disc), renewed
+ return getnext(disc)
end
-- if we can hyphenate in a lig then unlikely a lig so we
-- could have a option here to ignore lig
+local test_flatten_start = 2 -- must start at 2 according to Kai
+
+directives.register("otf.testrun.forceflatten", function(v)
+ test_flatten_start = v and 1 or 2
+end)
+
local function testrun(disc,t_run,c_run,...)
if trace_testruns then
report_disc("test",disc)
@@ -3233,7 +3335,7 @@ local function testrun(disc,t_run,c_run,...)
local d = d_replace > d_post and d_replace or d_post
local head = getnext(disc) -- is: next
local tail = head
- for i=2,d do -- must start at 2 according to Kai
+ for i=test_flatten_start,d do
local nx = getnext(tail)
local id = getid(nx)
if id == disc_code then
@@ -3248,7 +3350,7 @@ local function testrun(disc,t_run,c_run,...)
next = getnext(tail)
setnext(tail)
setprev(head)
- local new = copy_node_list(head)
+ local new = copynodelist(head)
if posttail then
setlink(posttail,head)
else
@@ -3321,7 +3423,8 @@ local function testrun(disc,t_run,c_run,...)
end
end
-- next can have changed (copied list)
- return getnext(disc), renewed
+ -- return getnext(disc), renewed
+ return getnext(disc)
end
-- 1{2{\oldstyle\discretionary{3}{4}{5}}6}7\par
@@ -3414,7 +3517,7 @@ local function t_run_single(start,stop,font,attr,lookupcache)
while s do
local char = ischar(s,font)
if char then
- local lg = lookupmatch[char]
+ local lg = not tonumber(lookupmatch) and lookupmatch[char]
if lg then
if sstop then
d = 1
@@ -3444,7 +3547,7 @@ local function t_run_single(start,stop,font,attr,lookupcache)
break
end
end
- if l and l.ligature then -- so we test for ligature
+ if l and (tonumber(l) or l.ligature) then -- so we test for ligature
lastd = d
end
-- why not: if not l then break elseif l.ligature then return d end
@@ -3585,7 +3688,7 @@ local function t_run_multiple(start,stop,font,attr,steps,nofsteps)
while s do
local char = ischar(s)
if char then
- local lg = lookupmatch[char]
+ local lg = not tonumber(lookupmatch) and lookupmatch[char]
if lg then
if sstop then
d = 1
@@ -3615,7 +3718,7 @@ local function t_run_multiple(start,stop,font,attr,steps,nofsteps)
break
end
end
- if l and l.ligature then
+ if l and (tonumber(l) or l.ligature) then
lastd = d
end
end
@@ -3795,7 +3898,7 @@ do
local initialrl = 0
- if getid(head) == par_code and start_of_par(head) then
+ if getid(head) == par_code and startofpar(head) then
initialrl = pardirstate(head)
elseif direction == righttoleft_code then
initialrl = -1
@@ -3844,7 +3947,7 @@ do
-- the before and after lists in the loader. But first I need to see a font that uses multiple
-- matches.
--
- local start = find_node_tail(head)
+ local start = findnodetail(head)
local rlmode = 0 -- how important is this .. do we need to check for dir?
local merged = steps.merged
while start do
@@ -3930,26 +4033,22 @@ do
start = getnext(start)
elseif id == disc_code then
if not discs or discs[start] == true then
- local ok
if gpossing then
- start, ok = kernrun(start,k_run_single, font,attr,lookupcache,step,dataset,sequence,rlmode,skiphash,handler)
+ start = kernrun(start,k_run_single, font,attr,lookupcache,step,dataset,sequence,rlmode,skiphash,handler)
elseif forcetestrun then
- start, ok = testrun(start,t_run_single,c_run_single,font,attr,lookupcache,step,dataset,sequence,rlmode,skiphash,handler)
+ start = testrun(start,t_run_single,c_run_single,font,attr,lookupcache,step,dataset,sequence,rlmode,skiphash,handler)
else
- start, ok = comprun(start,c_run_single, font,attr,lookupcache,step,dataset,sequence,rlmode,skiphash,handler)
+ start = comprun(start,c_run_single, font,attr,lookupcache,step,dataset,sequence,rlmode,skiphash,handler)
end
- -- if ok then
- -- done = true
- -- end
else
start = getnext(start)
end
elseif id == math_code then
- start = getnext(end_of_math(start))
+ start = getnext(endofmath(start))
elseif id == dir_code then
topstack, rlmode = txtdirstate(start,dirstack,topstack,rlparmode)
start = getnext(start)
- -- elseif id == par_code and start_of_par(start) then
+ -- elseif id == par_code and startofpar(start) then
-- rlparmode, rlmode = pardirstate(start)
-- start = getnext(start)
else
@@ -4014,26 +4113,22 @@ do
start = getnext(start)
elseif id == disc_code then
if not discs or discs[start] == true then
- local ok
if gpossing then
- start, ok = kernrun(start,k_run_multiple, font,attr,steps,nofsteps,dataset,sequence,rlmode,skiphash,handler)
+ start = kernrun(start,k_run_multiple, font,attr,steps,nofsteps,dataset,sequence,rlmode,skiphash,handler)
elseif forcetestrun then
- start, ok = testrun(start,t_run_multiple,c_run_multiple,font,attr,steps,nofsteps,dataset,sequence,rlmode,skiphash,handler)
+ start = testrun(start,t_run_multiple,c_run_multiple,font,attr,steps,nofsteps,dataset,sequence,rlmode,skiphash,handler)
else
- start, ok = comprun(start,c_run_multiple, font,attr,steps,nofsteps,dataset,sequence,rlmode,skiphash,handler)
+ start = comprun(start,c_run_multiple, font,attr,steps,nofsteps,dataset,sequence,rlmode,skiphash,handler)
end
- -- if ok then
- -- done = true
- -- end
else
start = getnext(start)
end
elseif id == math_code then
- start = getnext(end_of_math(start))
+ start = getnext(endofmath(start))
elseif id == dir_code then
topstack, rlmode = txtdirstate(start,dirstack,topstack,rlparmode)
start = getnext(start)
- -- elseif id == par_code and start_of_par(start) then
+ -- elseif id == par_code and startofpar(start) then
-- rlparmode, rlmode = pardirstate(start)
-- start = getnext(start)
else
@@ -4140,13 +4235,13 @@ do
-- a different font|state or glue (happens often)
start = getnext(start)
elseif id == math_code then
- start = getnext(end_of_math(start))
+ start = getnext(endofmath(start))
elseif id == dir_code then
topstack, rlmode = txtdirstate(start,dirstack,topstack,rlparmode)
start = getnext(start)
- -- elseif id == par_code and start_of_par(start) then
+ -- elseif id == par_code and startofpar(start) then
-- rlparmode, rlmode = pardirstate(start)
- -- start = getnext(start)
+ -- start = nxt
else
start = getnext(start)
end
@@ -4161,49 +4256,60 @@ end
-- so far
-local plugins = { }
-otf.plugins = plugins
+do
-local report = logs.reporter("fonts")
+ local plugins = { }
+ otf.plugins = plugins
-function otf.registerplugin(name,f)
- if type(name) == "string" and type(f) == "function" then
- plugins[name] = { name, f }
- report()
- report("plugin %a has been loaded, please be aware of possible side effects",name)
- report()
- if logs.pushtarget then
- logs.pushtarget("log")
- end
- report("Plugins are not officially supported unless stated otherwise. This is because")
- report("they bypass the regular font handling and therefore some features in ConTeXt")
- report("(especially those related to fonts) might not work as expected or might not work")
- report("at all. Some plugins are for testing and development only and might change")
- report("whenever we feel the need for it.")
- report()
- if logs.poptarget then
- logs.poptarget()
+ local report = logs.reporter("fonts")
+ local warned = false
+ local okay = { text = true }
+
+ function otf.registerplugin(name,f)
+ if type(name) == "string" and type(f) == "function" then
+ plugins[name] = { name, f }
+ if okay[name] then
+ -- no warning (e.g. the diagnostic text plugin)
+ else
+ report("plugin %a has been loaded, please be aware of possible side effects",name)
+ if not warned then
+ if logs.pushtarget then
+ logs.pushtarget("log")
+ end
+ report("Plugins are not officially supported unless stated otherwise. This is because")
+ report("they bypass the regular font handling and therefore some features in ConTeXt")
+ report("(especially those related to fonts) might not work as expected or might not work")
+ report("at all. Some plugins are for testing and development only and might change")
+ report("whenever we feel the need for it.")
+ report()
+ if logs.poptarget then
+ logs.poptarget()
+ end
+ warned = true
+ end
+ end
end
end
-end
-function otf.plugininitializer(tfmdata,value)
- if type(value) == "string" then
- tfmdata.shared.plugin = plugins[value]
+ function otf.plugininitializer(tfmdata,value)
+ if type(value) == "string" then
+ tfmdata.shared.plugin = plugins[value]
+ end
end
-end
-function otf.pluginprocessor(head,font,attr,direction) -- n
- local s = fontdata[font].shared
- local p = s and s.plugin
- if p then
- if trace_plugins then
- report_process("applying plugin %a",p[1])
+ function otf.pluginprocessor(head,font,dynamic,direction) -- n
+ local s = fontdata[font].shared
+ local p = s and s.plugin
+ if p then
+ if trace_plugins then
+ report_process("applying plugin %a",p[1])
+ end
+ return p[2](head,font,dynamic,direction)
+ else
+ return head, false
end
- return p[2](head,font,attr,direction)
- else
- return head, false
end
+
end
function otf.featuresinitializer(tfmdata,value)
@@ -4225,8 +4331,8 @@ registerotffeature {
}
}
--- Moved here (up) a bit. This doesn't really belong in generic so it will
--- move to a context module some day.
+-- Moved here (up) a bit. This doesn't really belong in generic so it will move to a
+-- context module some day.
local function markinitializer(tfmdata,value)
local properties = tfmdata.properties
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ott.lua b/Master/texmf-dist/tex/context/base/mkiv/font-ott.lua
index f4d7e05a137..74fd583758a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-ott.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ott.lua
@@ -52,16 +52,20 @@ local scripts = allocate {
["cari"] = "carian",
["cham"] = "cham",
["cher"] = "cherokee",
+ ["chrs"] = "chorasmian",
["copt"] = "coptic",
+ ["cpmn"] = "cypro-minoan",
["cprt"] = "cypriot syllabary",
["cyrl"] = "cyrillic",
["dev2"] = "devanagari variant 2",
["deva"] = "devanagari",
+ ["diak"] = "dives akuru",
["dogr"] = "dogra",
["dsrt"] = "deseret",
["dupl"] = "duployan",
["egyp"] = "egyptian heiroglyphs",
["elba"] = "elbasan",
+ ["elym"] = "elymaic",
["ethi"] = "ethiopic",
["geor"] = "georgian",
["gjr2"] = "gujarati variant 2",
@@ -81,6 +85,7 @@ local scripts = allocate {
["hebr"] = "hebrew",
["hluw"] = "anatolian hieroglyphs",
["hmng"] = "pahawh hmong",
+ ["hmnp"] = "nyiakeng puachue hmong",
["hung"] = "old hungarian",
["ital"] = "old italic",
["jamo"] = "hangul jamo",
@@ -90,6 +95,7 @@ local scripts = allocate {
["khar"] = "kharosthi",
["khmr"] = "khmer",
["khoj"] = "khojki",
+ ["kits"] = "khitan small script",
["knd2"] = "kannada variant 2",
["knda"] = "kannada",
["kthi"] = "kaithi",
@@ -123,6 +129,7 @@ local scripts = allocate {
["musc"] = "musical symbols",
["mym2"] = "myanmar variant 2",
["mymr"] = "myanmar",
+ ["nand"] = "nandinagari",
["narb"] = "old north arabian",
["nbat"] = "nabataean",
["newa"] = "newa",
@@ -132,9 +139,10 @@ local scripts = allocate {
["olck"] = "ol chiki",
["orkh"] = "old turkic and orkhon runic",
["ory2"] = "odia variant 2",
- ["orya"] = "oriya",
+ ["orya"] = "odia",
["osge"] = "osage",
["osma"] = "osmanya",
+ ["ougr"] = "old uyghur",
["palm"] = "palmyrene",
["pauc"] = "pau cin hau",
["perm"] = "old permic",
@@ -166,7 +174,7 @@ local scripts = allocate {
["tagb"] = "tagbanwa",
["takr"] = "takri",
["tale"] = "tai le",
- ["talu"] = "tai lu",
+ ["talu"] = "new tai lue",
["taml"] = "tamil",
["tang"] = "tangut",
["tavt"] = "tai viet",
@@ -178,12 +186,16 @@ local scripts = allocate {
["thai"] = "thai",
["tibt"] = "tibetan",
["tirh"] = "tirhuta",
+ ["tnsa"] = "tangsa",
["tml2"] = "tamil variant 2",
+ ["toto"] = "toto",
["ugar"] = "ugaritic cuneiform",
["vai" ] = "vai",
["wara"] = "warang citi",
+ ["wcho"] = "wancho",
["xpeo"] = "old persian cuneiform",
["xsux"] = "sumero-akkadian cuneiform",
+ ["yezi"] = "yezidi",
["yi" ] = "yi",
["zanb"] = "zanabazar square",
}
@@ -199,6 +211,7 @@ local languages = allocate {
["agw" ] = "agaw",
["aio" ] = "aiton",
["aka" ] = "akan",
+ ["akb" ] = "batak angkola",
["als" ] = "alsatian",
["alt" ] = "altai",
["amh" ] = "amharic",
@@ -211,6 +224,7 @@ local languages = allocate {
["asm" ] = "assamese",
["ast" ] = "asturian",
["ath" ] = "athapaskan",
+ ["avn" ] = "avatime",
["avr" ] = "avar",
["awa" ] = "awadhi",
["aym" ] = "aymara",
@@ -256,8 +270,12 @@ local languages = allocate {
["brx" ] = "bodo",
["bsh" ] = "bashkir",
["bsk" ] = "burushaski",
+ ["bta" ] = "batak alas kluet",
+ ["btd" ] = "batak dairi (pakpak)",
["bti" ] = "beti",
+ ["btm" ] = "batak mandailing",
["bts" ] = "batak simalungun",
+ ["btx" ] = "batak karo",
["bug" ] = "bugis",
["byv" ] = "medumba",
["cak" ] = "kaqchikel",
@@ -292,14 +310,16 @@ local languages = allocate {
["csl" ] = "church slavonic",
["csy" ] = "czech",
["ctg" ] = "chittagonian",
+ ["ctt" ] = "wayanad chetti",
["cuk" ] = "san blas kuna",
+ ["dag" ] = "dagbani",
["dan" ] = "danish",
["dar" ] = "dargwa",
["dax" ] = "dayi",
["dcr" ] = "woods cree",
["deu" ] = "german",
- ["dgo" ] = "dogri",
- ["dgr" ] = "dogri",
+ ["dgo" ] = "dogri (individual language)",
+ ["dgr" ] = "dogri (macro language)",
["dhg" ] = "dhangu",
["dhv" ] = "divehi (dhivehi, maldivian)",
["diq" ] = "dimli",
@@ -371,13 +391,16 @@ local languages = allocate {
["guj" ] = "gujarati",
["guz" ] = "gusii",
["hai" ] = "haitian (haitian creole)",
+ ["hai0"] = "haida",
["hal" ] = "halam",
["har" ] = "harauti",
["hau" ] = "hausa",
["haw" ] = "hawaiian",
["hay" ] = "haya",
["haz" ] = "hazaragi",
+ ["hmz" ] = "hmong shuat",
["hbn" ] = "hammer-banna",
+ ["hei" ] = "heiltsuk",
["her" ] = "herero",
["hil" ] = "hiligaynon",
["hin" ] = "hindi",
@@ -402,10 +425,12 @@ local languages = allocate {
["ind" ] = "indonesian",
["ing" ] = "ingush",
["inu" ] = "inuktitut",
+ ["inuk"] = "nunavik inuktitut",
["ipk" ] = "inupiat",
["ipph"] = "phonetic transcription—ipa conventions",
["iri" ] = "irish",
["irt" ] = "irish traditional",
+ ["uri" ] = "irula",
["isl" ] = "icelandic",
["ism" ] = "inari sami",
["ita" ] = "italian",
@@ -425,6 +450,7 @@ local languages = allocate {
["kan" ] = "kannada",
["kar" ] = "karachay",
["kat" ] = "georgian",
+ ["kaw" ] = "kawi (old javanese)",
["kaz" ] = "kazakh",
["kde" ] = "makonde",
["kea" ] = "kabuverdianu (crioulo)",
@@ -482,6 +508,7 @@ local languages = allocate {
["kur" ] = "kurdish",
["kuu" ] = "kurukh",
["kuy" ] = "kuy",
+ ["kwk" ] = "kwakʼwala",
["kyk" ] = "koryak",
["kyu" ] = "western kayah",
["lad" ] = "ladin",
@@ -493,6 +520,7 @@ local languages = allocate {
["laz" ] = "laz",
["lcr" ] = "l-cree",
["ldk" ] = "ladakhi",
+ ["lef" ] = "lelemi",
["lez" ] = "lezgi",
["lij" ] = "ligurian",
["lim" ] = "limburgish",
@@ -505,6 +533,7 @@ local languages = allocate {
["lmo" ] = "lombard",
["lmw" ] = "lomwe",
["lom" ] = "loma",
+ ["lpo" ] = "lipo",
["lrc" ] = "luri",
["lsb" ] = "lower sorbian",
["lsm" ] = "lule sami",
@@ -521,7 +550,7 @@ local languages = allocate {
["mah" ] = "marshallese",
["maj" ] = "majang",
["mak" ] = "makhuwa",
- ["mal" ] = "malayalam reformed",
+ ["mal" ] = "malayalam",
["mam" ] = "mam",
["man" ] = "mansi",
["map" ] = "mapudungun",
@@ -556,6 +585,7 @@ local languages = allocate {
["mok" ] = "moksha",
["mol" ] = "moldavian",
["mon" ] = "mon",
+ ["mnw" ] = "thailand mon",
["mor" ] = "moroccan",
["mos" ] = "mossi",
["mri" ] = "maori",
@@ -594,7 +624,7 @@ local languages = allocate {
["nor" ] = "norwegian",
["nov" ] = "novial",
["nsm" ] = "northern sami",
- ["nso" ] = "sotho, northern",
+ ["nso" ] = "northern sotho",
["nta" ] = "northern tai",
["nto" ] = "esperanto",
["nym" ] = "nyamwezi",
@@ -642,6 +672,7 @@ local languages = allocate {
["rbu" ] = "russian buriat",
["rcr" ] = "r-cree",
["rej" ] = "rejang",
+ ["rhg" ] = "rohingya",
["ria" ] = "riang",
["rif" ] = "tarifit",
["rit" ] = "ritarungo",
@@ -666,6 +697,7 @@ local languages = allocate {
["scs" ] = "north slavey",
["sek" ] = "sekota",
["sel" ] = "selkup",
+ ["sfm" ] = "small flowery miao",
["sga" ] = "old irish",
["sgo" ] = "sango",
["sgs" ] = "samogitian",
@@ -687,7 +719,7 @@ local languages = allocate {
["snk" ] = "soninke",
["sog" ] = "sodo gurage",
["sop" ] = "songe",
- ["sot" ] = "sotho, southern",
+ ["sot" ] = "southern sotho",
["sqi" ] = "albanian",
["srb" ] = "serbian",
["srd" ] = "sardinian",
@@ -728,7 +760,9 @@ local languages = allocate {
["tht" ] = "tahitian",
["tib" ] = "tibetan",
["tiv" ] = "tiv",
+ ["tj;" ] = "tai laing",
["tkm" ] = "turkmen",
+ ["tli" ] = "tlingit",
["tmh" ] = "tamashek",
["tmn" ] = "temne",
["tna" ] = "tswana",
@@ -742,7 +776,7 @@ local languages = allocate {
["tsj" ] = "tshangla",
["tua" ] = "turoyo aramaic",
["tul" ] = "tulu",
- ["tum" ] = "tulu",
+ ["tum" ] = "tumbuka",
["tuv" ] = "tuvin",
["tvl" ] = "tuvalu",
["twi" ] = "twi",
@@ -764,6 +798,7 @@ local languages = allocate {
["wa" ] = "wa",
["wag" ] = "wagdi",
["war" ] = "waray-waray",
+ ["wci" ] = "waci gbe",
["wcr" ] = "west-cree",
["wel" ] = "welsh",
["wlf" ] = "wolof",
@@ -775,17 +810,23 @@ local languages = allocate {
["xkf" ] = "khengkha",
["xog" ] = "soga",
["xpe" ] = "kpelle (liberia)",
+ ["xub" ] = "bette kuruma",
+ ["xuj" ] = "jennu kuruma",
["yak" ] = "sakha",
["yao" ] = "yao",
["yap" ] = "yapese",
["yba" ] = "yoruba",
["ycr" ] = "y-cree",
+ ["ygp" ] = "gepo",
["yic" ] = "yi classic",
["yim" ] = "yi modern",
+ ["yna" ] = "aluo",
+ ["ywq" ] = "wuding-luquan",
["zea" ] = "zealandic",
["zgh" ] = "standard morrocan tamazigh",
["zha" ] = "zhuang",
["zhh" ] = "chinese, hong kong sar",
+ ["zho" ] = "chinese traditional, macao",
["zhp" ] = "chinese phonetic",
["zhs" ] = "chinese simplified",
["zht" ] = "chinese traditional",
@@ -794,7 +835,6 @@ local languages = allocate {
["zza" ] = "zazaki",
}
-
local features = allocate {
["aalt"] = "access all alternates",
["abvf"] = "above-base forms",
@@ -811,6 +851,7 @@ local features = allocate {
["case"] = "case-sensitive forms",
["ccmp"] = "glyph composition/decomposition",
["cfar"] = "conjunct form after ro",
+ ["chws"] = "contextual half-width spacing",
["cjct"] = "conjunct forms",
["clig"] = "contextual ligatures",
["cpct"] = "centered cjk punctuation",
@@ -821,13 +862,13 @@ local features = allocate {
["dist"] = "distances",
["dlig"] = "discretionary ligatures",
["dnom"] = "denominators",
- ["dtls"] = "dotless forms", -- math
+ ["dtls"] = "dotless forms", -- math
["expt"] = "expert forms",
["falt"] = "final glyph alternates",
["fin2"] = "terminal forms #2",
["fin3"] = "terminal forms #3",
["fina"] = "terminal forms",
- ["flac"] = "flattened accents over capitals", -- math
+ ["flac"] = "flattened accents over capitals", -- math
["frac"] = "fractions",
["fwid"] = "full width",
["half"] = "half forms",
@@ -836,7 +877,7 @@ local features = allocate {
["hist"] = "historical forms",
["hkna"] = "horizontal kana alternates",
["hlig"] = "historical ligatures",
- ["hngl"] = "hangul",
+ ["hngl"] = "hangul", -- depricated
["hojo"] = "hojo kanji forms",
["hwid"] = "half width",
["init"] = "initial forms",
@@ -866,7 +907,7 @@ local features = allocate {
["nukt"] = "nukta forms",
["numr"] = "numerators",
["onum"] = "old style figures",
- ["opbd"] = "optical bounds",
+ ["opbd"] = "optical bounds", -- funny, this is obsolete (too hard?) (and was recomended always true)
["ordn"] = "ordinals",
["ornm"] = "ornaments",
["palt"] = "proportional alternate width",
@@ -887,8 +928,8 @@ local features = allocate {
["rtbd"] = "right bounds",
["rtla"] = "right-to-left alternates",
["rtlm"] = "right to left mirrored forms",
- ["rvrn"] = "required variation alternates",
["ruby"] = "ruby notation forms",
+ ["rvrn"] = "required variation alternates",
["salt"] = "stylistic alternates",
["sinf"] = "scientific inferiors",
["size"] = "optical size", -- now stat table
@@ -928,6 +969,7 @@ local features = allocate {
["unic"] = "unicase",
["valt"] = "alternate vertical metrics",
["vatu"] = "vattu variants",
+ ["vchw"] = "vertical contextual half-width spacing",
["vert"] = "vertical writing",
["vhal"] = "alternate vertical half metrics",
["vjmo"] = "vowel jamo forms",
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-oup.lua b/Master/texmf-dist/tex/context/base/mkiv/font-oup.lua
index 2c49bc993f9..198e62bee40 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-oup.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-oup.lua
@@ -10,6 +10,7 @@ local next, type = next, type
local P, R, S = lpeg.P, lpeg.R, lpeg.S
local lpegmatch = lpeg.match
local insert, remove, copy, unpack = table.insert, table.remove, table.copy, table.unpack
+local find = string.find
local formatters = string.formatters
local sortedkeys = table.sortedkeys
@@ -37,13 +38,16 @@ local f_index = formatters["I%05X"]
local f_character_y = formatters["%C"]
local f_character_n = formatters["[ %C ]"]
-local check_duplicates = true -- can become an option (pseudo feature) / aways needed anyway
-local check_soft_hyphen = true -- can become an option (pseudo feature) / needed for tagging
+local check_duplicates = true -- can become an option (pseudo feature) / always needed anyway
+local check_soft_hyphen = context -- only in context
directives.register("otf.checksofthyphen",function(v)
- check_soft_hyphen = v
+ check_soft_hyphen = v -- only for testing
end)
+-- After (!) the unicodes have been resolved we compact ligature tables so before that happens
+-- we don't need to check for numbers.
+
local function replaced(list,index,replacement)
if type(list) == "number" then
return replacement
@@ -453,31 +457,48 @@ local function copyduplicates(fontdata)
local resources = fontdata.resources
local duplicates = resources.duplicates
if check_soft_hyphen then
- -- ebgaramond has a zero width empty soft hyphen
- -- antykwatorunsks lacks a soft hyphen
- local ds = descriptions[0xAD]
- if not ds or ds.width == 0 then
- if ds then
+ -- ebgaramond has a zero width empty soft hyphen
+ -- antykwatorunska lacks a soft hyphen
+ -- lucidaot has a halfwidth soft hyphen
+
+ -- local dh = descriptions[0x2D]
+ -- if dh then
+ -- descriptions[0xAD] = nil
+ -- local d = duplicates[0x2D]
+ -- if d then
+ -- d[#d+1] = { [0xAD] = true }
+ -- else
+ -- duplicates[0x2D] = { [0xAD] = true }
+ -- end
+ -- end
+
+ local dh = descriptions[0x2D]
+ if dh then
+ local ds = descriptions[0xAD]
+ if not ds or ds.width ~= dh.width then
descriptions[0xAD] = nil
- if trace_unicodes then
- report_unicodes("patching soft hyphen")
+ if ds then
+ if trace_unicodes then
+ report_unicodes("patching soft hyphen")
+ end
+ else
+ if trace_unicodes then
+ report_unicodes("adding soft hyphen")
+ end
end
- else
- if trace_unicodes then
- report_unicodes("adding soft hyphen")
+ if not duplicates then
+ duplicates = { }
+ resources.duplicates = duplicates
+ end
+ local d = duplicates[0x2D]
+ if d then
+ d[0xAD] = true
+ else
+ duplicates[0x2D] = { [0xAD] = true }
end
- end
- if not duplicates then
- duplicates = { }
- resources.duplicates = duplicates
- end
- local dh = duplicates[0x2D]
- if dh then
- dh[#dh+1] = { [0xAD] = true }
- else
- duplicates[0x2D] = { [0xAD] = true }
end
end
+
end
if duplicates then
for u, d in next, duplicates do
@@ -759,6 +780,7 @@ local function unifyglyphs(fontdata,usenames)
local resources = fontdata.resources
local zero = glyphs[0]
local zerocode = zero.unicode
+ local nofglyphs = #glyphs
if not zerocode then
zerocode = private
zero.unicode = zerocode
@@ -775,7 +797,7 @@ local function unifyglyphs(fontdata,usenames)
--
if names then
-- seldom uses, we don't issue message ... this branch might even go away
- for index=1,#glyphs do
+ for index=1,nofglyphs do
local glyph = glyphs[index]
local unicode = glyph.unicode -- this is the primary one
if not unicode then
@@ -808,7 +830,7 @@ local function unifyglyphs(fontdata,usenames)
descriptions[unicode] = glyph
end
elseif trace_unicodes then
- for index=1,#glyphs do
+ for index=1,nofglyphs do
local glyph = glyphs[index]
local unicode = glyph.unicode -- this is the primary one
if not unicode then
@@ -849,7 +871,7 @@ local function unifyglyphs(fontdata,usenames)
descriptions[unicode] = glyph
end
else
- for index=1,#glyphs do
+ for index=1,nofglyphs do
local glyph = glyphs[index]
local unicode = glyph.unicode -- this is the primary one
if not unicode then
@@ -876,33 +898,49 @@ local function unifyglyphs(fontdata,usenames)
end
end
--
- for index=1,#glyphs do
- local math = glyphs[index].math
- if math then
- local list = math.vparts
- if list then
- for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
- end
- local list = math.hparts
- if list then
- for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
- end
- local list = math.vvariants
- if list then
- -- for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
- for i=1,#list do list[i] = indices[list[i]] end
+ if LUATEXENGINE == "luametatex" then
+ for index=1,nofglyphs do
+ local math = glyphs[index].math
+ if math then
+ local list = math.parts
+ if list then
+ for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
+ end
+ local list = math.variants
+ if list then
+ for i=1,#list do list[i] = indices[list[i]] end
+ end
end
- local list = math.hvariants
- if list then
- -- for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
- for i=1,#list do list[i] = indices[list[i]] end
+ end
+ else
+ for index=1,nofglyphs do
+ local math = glyphs[index].math
+ if math then
+ local list = math.vparts
+ if list then
+ for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
+ end
+ local list = math.hparts
+ if list then
+ for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
+ end
+ local list = math.vvariants
+ if list then
+ -- for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
+ for i=1,#list do list[i] = indices[list[i]] end
+ end
+ local list = math.hvariants
+ if list then
+ -- for i=1,#list do local l = list[i] l.glyph = indices[l.glyph] end
+ for i=1,#list do list[i] = indices[list[i]] end
+ end
end
end
end
--
local colorpalettes = resources.colorpalettes
if colorpalettes then
- for index=1,#glyphs do
+ for index=1,nofglyphs do
local colors = glyphs[index].colors
if colors then
for i=1,#colors do
@@ -918,19 +956,22 @@ local function unifyglyphs(fontdata,usenames)
fontdata.names = names
fontdata.descriptions = descriptions
fontdata.hashmethod = hashmethod
+ fontdata.nofglyphs = nofglyphs
--
return indices, names
end
-local p_crappyname do
+local stripredundant do
local p_hex = R("af","AF","09")
local p_digit = R("09")
local p_done = S("._-")^0 + P(-1)
+ -- local p_style = P(".ss") * p_digit * p_digit * P(-1)
+ local p_style = P(".")
local p_alpha = R("az","AZ")
local p_ALPHA = R("AZ")
- p_crappyname = (
+ local p_crappyname = (
-- (P("uni") + P("UNI") + P("Uni") + P("U") + P("u"))
lpeg.utfchartabletopattern({ "uni", "u" },true)
* S("Xx_")^0
@@ -958,56 +999,182 @@ local p_crappyname do
* P(1)^1
) * p_done
-end
+ -- In context we only keep glyph names because of tracing and access by name
+ -- so weird names make no sense.
--- In context we only keep glyph names because of tracing and access by name
--- so weird names make no sense.
+ if context then
-local forcekeep = false -- only for testing something
+ local forcekeep = false -- only for testing something
+-- local forcekeep = true
-directives.register("otf.keepnames",function(v)
- report_cleanup("keeping weird glyph names, expect larger files and more memory usage")
- forcekeep = v
-end)
+ directives.register("otf.keepnames",function(v)
+ report_cleanup("keeping weird glyph names, expect larger files and more memory usage")
+ forcekeep = v
+ end)
-local function stripredundant(fontdata)
- local descriptions = fontdata.descriptions
- if descriptions then
- local n = 0
- local c = 0
- -- in context we always strip
- if (not context and fonts.privateoffsets.keepnames) or forcekeep then
- for unicode, d in next, descriptions do
- if d.class == "base" then
- d.class = nil
- c = c + 1
+ -- local p_lesscrappyname =
+ -- lpeg.utfchartabletopattern({ "uni", "u" },true)
+ -- * S("Xx")^0
+ -- * p_hex^1
+ -- * p_style
+
+ local function stripvariants(descriptions,list)
+ local n = list and #list or 0
+ if n > 0 then
+ for i=1,n do
+ local g = list[i]
+ if g then
+ local d = descriptions[g]
+ if d and d.name then
+ d.name = nil
+ n = n + 1
+ end
+ end
end
end
- else
- for unicode, d in next, descriptions do
- local name = d.name
- if name and lpegmatch(p_crappyname,name) then
- d.name = nil
- n = n + 1
+ return n
+ end
+
+ local function stripparts(descriptions,list)
+ local n = list and #list or 0
+ if n > 0 then
+ for i=1,n do
+ local g = list[i].glyph
+ if g then
+ local d = descriptions[g]
+ if d and d.name then
+ d.name = nil
+ n = n + 1
+ end
+ end
end
- if d.class == "base" then
- d.class = nil
- c = c + 1
+ end
+ return n
+ end
+
+ -- local function collectsimple(fontdata)
+ -- local resources = fontdata.resources
+ -- local sequences = resources and resources.sequences
+ -- if sequences then
+ -- local keeplist = { }
+ -- for i=1,#sequences do
+ -- local s = sequences[i]
+ -- if s.type == "gsub_single" then
+ -- -- only simple ones
+ -- local features = s.features
+ -- local steps = s.steps
+ -- if features and steps then
+ -- local okay = false
+ -- for k, v in next, features do
+ -- if find(k,"^ss%d%d") then
+ -- okay = true
+ -- break
+ -- end
+ -- end
+ -- if okay then
+ -- for i=1,#steps do
+ -- local coverage = steps[i].coverage
+ -- if coverage then
+ -- for k, v in next, coverage do
+ -- keeplist[k] = v
+ -- end
+ -- end
+ -- end
+ -- end
+ -- end
+ -- end
+ -- end
+ -- return next(keeplist) and keeplist or nil
+ -- end
+ -- end
+
+ local function collectsimple(fontdata)
+ return nil
+ end
+
+ stripredundant = function(fontdata)
+ local descriptions = fontdata.descriptions
+ if descriptions then
+ local n = 0
+ local c = 0
+ for unicode, d in next, descriptions do
+ local m = d.math
+ if m then
+ n = n + stripvariants(descriptions,m.vvariants)
+ n = n + stripvariants(descriptions,m.hvariants)
+ n = n + stripparts (descriptions,m.vparts)
+ n = n + stripparts (descriptions,m.hparts)
+ end
+ end
+ if forcekeep then
+ for unicode, d in next, descriptions do
+ if d.class == "base" then
+ d.class = nil
+ c = c + 1
+ end
+ end
+ else
+ local keeplist = collectsimple(fontdata)
+ for unicode, d in next, descriptions do
+ local name = d.name
+ if name then
+ -- if lpegmatch(p_lesscrappyname,name) then
+ if keeplist and keeplist[name] then
+ -- keep name
+ elseif lpegmatch(p_crappyname,name) then
+ d.name = nil
+ n = n + 1
+ end
+ end
+ if d.class == "base" then
+ d.class = nil
+ c = c + 1
+ end
+ end
+ end
+ if trace_cleanup then
+ if n > 0 then
+ report_cleanup("%s bogus names removed (verbose unicode)",n)
+ end
+ if c > 0 then
+ report_cleanup("%s base class tags removed (default is base)",c)
+ end
end
end
end
- if trace_cleanup then
- if n > 0 then
- report_cleanup("%s bogus names removed (verbose unicode)",n)
- end
- if c > 0 then
- report_cleanup("%s base class tags removed (default is base)",c)
+
+ else
+
+ stripredundant = function(fontdata)
+ local descriptions = fontdata.descriptions
+ if descriptions then
+ if fonts.privateoffsets.keepnames then
+ for unicode, d in next, descriptions do
+ if d.class == "base" then
+ d.class = nil
+ end
+ end
+ else
+ for unicode, d in next, descriptions do
+ local name = d.name
+ if name then
+ if lpegmatch(p_crappyname,name) then
+ d.name = nil
+ end
+ end
+ if d.class == "base" then
+ d.class = nil
+ end
+ end
+ end
end
end
+
end
-end
-readers.stripredundant = stripredundant
+ readers.stripredundant = stripredundant
+
+end
function readers.getcomponents(fontdata) -- handy for resolving ligatures when names are missing
local resources = fontdata.resources
@@ -1024,6 +1191,10 @@ function readers.getcomponents(fontdata) -- handy for resolving ligatures when n
local function traverse(p,k,v)
if k == "ligature" then
collected[v] = { unpack(l) }
+ elseif tonumber(v) then
+ insert(l,k)
+ collected[v] = { unpack(l) }
+ remove(l)
else
insert(l,k)
for k, vv in next, v do
@@ -1102,8 +1273,7 @@ readers.unifymissing = unifymissing
function readers.rehash(fontdata,hashmethod) -- TODO: combine loops in one
if not (fontdata and fontdata.glyphs) then
return
- end
- if hashmethod == "indices" then
+ elseif hashmethod == "indices" then
fontdata.hashmethod = "indices"
elseif hashmethod == "names" then
fontdata.hashmethod = "names"
@@ -1111,7 +1281,6 @@ function readers.rehash(fontdata,hashmethod) -- TODO: combine loops in one
unifyresources(fontdata,indices)
copyduplicates(fontdata)
unifymissing(fontdata)
- -- stripredundant(fontdata)
else
fontdata.hashmethod = "unicodes"
local indices = unifyglyphs(fontdata)
@@ -1211,7 +1380,6 @@ local function tabstr_flat(t)
end
local function tabstr_mixed(t) -- indexed
- local s = { }
local n = #t
if n == 0 then
return ""
@@ -1225,6 +1393,7 @@ local function tabstr_mixed(t) -- indexed
return tostring(k) -- number or string
end
else
+ local s = { }
for i=1,n do
local k = t[i]
if k == true then
@@ -1334,6 +1503,21 @@ function readers.pack(data)
end
end
+ -- local function pack_indexed(v) -- less code
+ -- local tag = concat(v," ")
+ -- local ht = h[tag]
+ -- if ht then
+ -- c[ht] = c[ht] + 1
+ -- else
+ -- ht = nt + 1
+ -- t[ht] = v
+ -- c[ht] = 1
+ -- h[tag] = ht
+ -- nt = ht
+ -- end
+ -- return ht
+ -- end
+
local function pack_mixed(v)
local tag = tabstr_mixed(v)
local ht = h[tag]
@@ -2564,6 +2748,34 @@ end
-- Because we pack we cannot mix tables and numbers so we can only turn a whole set in
-- format kern instead of pair.
+local strip_pairs = true
+
+local compact_pairs = true
+local compact_singles = true
+
+local merge_pairs = true
+local merge_singles = true
+local merge_substitutions = true
+local merge_alternates = true
+local merge_multiples = true
+local merge_ligatures = true
+local merge_cursives = true
+local merge_marks = true
+
+directives.register("otf.strip.pairs", function(v) strip_pairs = v end)
+
+directives.register("otf.compact.pairs", function(v) compact_pairs = v end)
+directives.register("otf.compact.singles", function(v) compact_singles = v end)
+
+directives.register("otf.merge.pairs", function(v) merge_pairs = v end)
+directives.register("otf.merge.singles", function(v) merge_singles = v end)
+directives.register("otf.merge.substitutions", function(v) merge_substitutions = v end)
+directives.register("otf.merge.alternates", function(v) merge_alternates = v end)
+directives.register("otf.merge.multiples", function(v) merge_multiples = v end)
+directives.register("otf.merge.ligatures", function(v) merge_ligatures = v end)
+directives.register("otf.merge.cursives", function(v) merge_cursives = v end)
+directives.register("otf.merge.marks", function(v) merge_marks = v end)
+
local function checkpairs(lookup)
local steps = lookup.steps
local nofsteps = lookup.nofsteps
@@ -2581,6 +2793,7 @@ local function checkpairs(lookup)
if v == true then
-- all zero
elseif v and (v[1] ~= 0 or v[2] ~= 0 or v[4] ~= 0) then
+ -- complex kerns
return false
end
end
@@ -2617,29 +2830,39 @@ local function checkpairs(lookup)
return kerned
end
-local compact_pairs = true
-local compact_singles = true
-
-local merge_pairs = true
-local merge_singles = true
-local merge_substitutions = true
-local merge_alternates = true
-local merge_multiples = true
-local merge_ligatures = true
-local merge_cursives = true
-local merge_marks = true
-
-directives.register("otf.compact.pairs", function(v) compact_pairs = v end)
-directives.register("otf.compact.singles", function(v) compact_singles = v end)
+local function strippairs(lookup)
+ local steps = lookup.steps
+ local nofsteps = lookup.nofsteps
+ local stripped = 0
-directives.register("otf.merge.pairs", function(v) merge_pairs = v end)
-directives.register("otf.merge.singles", function(v) merge_singles = v end)
-directives.register("otf.merge.substitutions", function(v) merge_substitutions = v end)
-directives.register("otf.merge.alternates", function(v) merge_alternates = v end)
-directives.register("otf.merge.multiples", function(v) merge_multiples = v end)
-directives.register("otf.merge.ligatures", function(v) merge_ligatures = v end)
-directives.register("otf.merge.cursives", function(v) merge_cursives = v end)
-directives.register("otf.merge.marks", function(v) merge_marks = v end)
+ for i=1,nofsteps do
+ local step = steps[i]
+ if step.format == "pair" then
+ local coverage = step.coverage
+ for g1, d1 in next, coverage do
+ for g2, d2 in next, d1 do
+ if d2[2] then
+ --- true or { a, b, c, d }
+ -- else
+ -- local v = d2[1]
+ -- if v == true then
+ -- d1[g2] = nil
+ -- stripped = stripped + 1
+ -- elseif v and (v[1] == 0 and v[2] == 0 and v[4] == 0) then -- vkrn can have v[3] ~= 0
+ -- d1[g2] = nil
+ -- stripped = stripped + 1
+ -- end
+ -- end
+ elseif d2[1] == true then
+ d1[g2] = nil
+ stripped = stripped + 1
+ end
+ end
+ end
+ end
+ end
+ return stripped
+end
function readers.compact(data)
if not data or data.compacted then
@@ -2648,6 +2871,7 @@ function readers.compact(data)
data.compacted = true
end
local resources = data.resources
+ local stripped = 0
local merged = 0
local kerned = 0
local allsteps = 0
@@ -2678,6 +2902,7 @@ function readers.compact(data)
merged = merged + mergesteps_4(lookup)
end
elseif kind == "gpos_single" then
+ -- maybe also strip zeros here
if merge_singles then
merged = merged + mergesteps_1(lookup,true)
end
@@ -2685,6 +2910,9 @@ function readers.compact(data)
kerned = kerned + checkkerns(lookup)
end
elseif kind == "gpos_pair" then
+ if strip_pairs then
+ stripped = stripped + strippairs(lookup) -- noto cjk from 24M -> 8 M
+ end
if merge_pairs then
merged = merged + mergesteps_2(lookup)
end
@@ -2726,6 +2954,9 @@ function readers.compact(data)
compact("sequences")
compact("sublookups")
if trace_optimizations then
+ if stripped > 0 then
+ report_optimizations("%i zero positions stripped before merging",stripped)
+ end
if merged > 0 then
report_optimizations("%i steps of %i removed due to merging",merged,allsteps)
end
@@ -2735,6 +2966,91 @@ function readers.compact(data)
end
end
+if CONTEXTLMTXMODE and CONTEXTLMTXMODE > 0 then
+
+ local done = 0
+
+ local function condense_1(k,v,t)
+ if type(v) == "table" then
+ local u = false
+ local l = false
+ for k, v in next, v do
+ if k == "ligature" then
+ l = v
+ if u then
+ break
+ end
+ elseif u then
+ break
+ else
+ u = true
+ end
+ end
+ if l and not u then
+ t[k] = l
+ done = done + 1
+ end
+ if u then
+ for k, vv in next, v do
+ if k ~= "ligature" then
+ condense_1(k,vv,v)
+ end
+ end
+ end
+ end
+ end
+
+ local function condensesteps_1(lookup)
+ done = 0
+ if lookup.type == "gsub_ligature" then
+ local steps = lookup.steps
+ if steps then
+ for i=1,#steps do
+ local step = steps[i]
+ local coverage = step.coverage
+ if coverage then
+ for k, v in next, coverage do
+ if condense_1(k,v,coverage) then
+ coverage[k] = v.ligature
+ done = done + 1
+ end
+ end
+ end
+ end
+ end
+ end
+ return done
+ end
+
+ function readers.condense(data)
+ if not data or data.condensed then
+ return
+ else
+ data.condensed = true
+ end
+ local resources = data.resources
+ local condensed = 0
+ local function condense(what)
+ local lookups = resources[what]
+ if lookups then
+ for i=1,#lookups do
+ condensed = condensed + condensesteps_1(lookups[i])
+ end
+ elseif trace_optimizations then
+ report_optimizations("no lookups in %a",what)
+ end
+ end
+ condense("sequences")
+ condense("sublookups")
+ if trace_optimizations then
+ if condensed > 0 then
+ report_optimizations("%i ligatures condensed",condensed)
+ end
+ end
+ end
+
+end
+
local function mergesteps(t,k)
if k == "merged" then
local merged = { }
@@ -2854,7 +3170,7 @@ function readers.expand(data)
-- about 15% on arabtype .. then moving the a test also saves a bit (even when
-- often a is not set at all so that one is a bit debatable
- local function expandlookups(sequences)
+ local function expandlookups(sequences,whatever)
if sequences then
-- we also need to do sublookups
for i=1,#sequences do
@@ -2930,6 +3246,9 @@ function readers.expand(data)
if lookups then
for k, v in next, lookups do -- actually this one is indexed
local lookup = sublookups[v]
+if not lookup and whatever then
+ lookup = whatever[v]
+end
if lookup then
lookups[k] = lookup
if not subtype then
@@ -3010,5 +3329,5 @@ function readers.expand(data)
end
expandlookups(sequences)
- expandlookups(sublookups)
+ expandlookups(sublookups,sequences)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-phb-imp-binary.lua b/Master/texmf-dist/tex/context/base/mkiv/font-phb-imp-binary.lua
new file mode 100644
index 00000000000..39ac6ec049c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-phb-imp-binary.lua
@@ -0,0 +1,119 @@
+if not modules then modules = { } end modules ['font-phb-imp-binary'] = {
+ version = 1.000, -- 2016.10.10,
+ comment = "companion to font-txt.mkiv",
+ author = "Hans Hagen",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+}
+
+-- The hb library comes in versions and the one I tested in 2016 was part of the inkscape
+-- suite. In principle one can have incompatibilities due to updates but that is the nature
+-- of a library. When a library ie expected one has better use the system version, if only
+-- to make sure that different programs behave the same.
+--
+-- The main reason for testing this approach was that when Idris was working on his fonts,
+-- we wanted to know how different shapers deal with it and the hb command line program
+-- could provide uniscribe output. For the context shaper uniscribe is the reference, also
+-- because Idris started out with Volt a decade ago.
+--
+-- This file uses the indirect approach by calling the executable. This file uses context
+-- features and is not generic.
+
+local next, tonumber, pcall = next, tonumber, pcall
+
+local concat = table.concat
+local reverse = table.reverse
+local formatters = string.formatters
+local removefile = os.remove
+local resultof = os.resultof
+local savedata = io.savedata
+
+local report = utilities.hb.report or print
+local packtoutf8 = utilities.hb.helpers.packtoutf8
+
+if not context then
+ report("the binary runner is only supported in context")
+ return
+end
+
+-- output : [index=cluster@x_offset,y_offset+x_advance,y_advance|...]
+-- result : { index, cluster, x_offset, y_offset, x_advance, y_advance }
+
+local P, Ct, Cc = lpeg.P, lpeg.Ct, lpeg.Cc
+local lpegmatch = lpeg.match
+
+local zero = Cc(0)
+local number = lpeg.patterns.integer / tonumber + zero
+local index = lpeg.patterns.cardinal / tonumber
+local cluster = index
+local offset = (P("@") * number * (P(",") * number + zero)) + zero * zero
+local advance = (P("+") * number * (P(",") * number + zero)) + zero * zero
+local glyph = Ct(index * P("=") * cluster * offset * advance)
+local pattern = Ct(P("[") * (glyph * P("|")^-1)^0 * P("]"))
+
+local shapers = {
+ native = "ot,uniscribe,fallback",
+ uniscribe = "uniscribe,ot,fallback",
+ fallback = "fallback"
+}
+
+local runner = sandbox.registerrunner {
+ method = "resultof",
+ name = "harfbuzz",
+ -- program = {
+ -- windows = "hb-shape.exe",
+ -- unix = "hb-shape"
+ -- },
+ program = "hb-shape",
+ checkers = {
+ shaper = "string",
+ features = "string",
+ script = "string",
+ language = "string",
+ direction = "string",
+ textfile = "writable",
+ fontfile = "readable",
+ },
+ template = string.longtostring [[
+ --shaper=%shaper%
+ --output-format=text
+ --no-glyph-names
+ --features="%features%"
+ --script=%script%
+ --language=%language%
+ --direction=%direction%
+ --text-file=%textfile%
+ --font-file=%fontfile%
+ ]],
+}
+
+local tempfile = "font-phb.tmp"
+local reported = false
+
+function utilities.hb.methods.binary(font,data,rlmode,text,leading,trailing)
+ if runner then
+ savedata(tempfile,packtoutf8(text,leading,trailing))
+ local result = runner {
+ shaper = shapers[data.shaper] or shapers.native,
+ features = data.features,
+ script = data.script or "dflt",
+ language = data.language or "dflt",
+ direction = rlmode < 0 and "rtl" or "ltr",
+ textfile = tempfile,
+ fontfile = data.filename,
+ }
+ removefile(tempfile)
+ if result then
+ -- return jsontolua(result)
+ result = lpegmatch(pattern,result) -- { index cluster xo yo xa ya }
+ if rlmode < 0 then
+ return reverse(result) -- we can avoid this
+ else
+ return result
+ end
+ end
+ elseif reported then
+ report("no runner available")
+ reported = true
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-phb-imp-library.lua b/Master/texmf-dist/tex/context/base/mkiv/font-phb-imp-library.lua
new file mode 100644
index 00000000000..fe991b023c7
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-phb-imp-library.lua
@@ -0,0 +1,498 @@
+if not modules then modules = { } end modules ['font-phb-imp-library'] = {
+ version = 1.000, -- 2020.01.08,
+ comment = "companion to font-txt.mkiv",
+ original = "derived from a prototype by Kai Eigner",
+ author = "Hans Hagen", -- so don't blame KE
+ copyright = "TAT Zetwerk / PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+}
+
+-- The hb library comes in versions and the one I tested in 2016 was part of the inkscape
+-- suite. In principle one can have incompatibilities due to updates but that is the nature
+-- of a library. When a library ie expected one has better use the system version, if only
+-- to make sure that different programs behave the same.
+--
+-- The main reason for testing this approach was that when Idris was working on his fonts,
+-- we wanted to know how different shapers deal with it and the hb command line program
+-- could provide uniscribe output. For the context shaper uniscribe is the reference, also
+-- because Idris started out with Volt a decade ago.
+--
+-- We treat the lib as a black box as it should be. At some point Kai Eigner made an ffi
+-- binding and that one was adapted to the plugin approach of context. It saved me the
+-- trouble of looking at source files to figure it all out. Below is the adapted code.
+--
+-- Keep in mind that this file is for mkiv only. It won't work in lmtx where instead of
+-- ffi we use simple optional libraries with delayed bindings. In principle this mechanism
+-- is generic but because other macropackages follow another route we don't spend time
+-- on that code path here.
+
+local next, tonumber, pcall = next, tonumber, pcall
+local reverse = table.reverse
+local loaddata = io.loaddata
+
+local report = utilities.hb.report or print
+local packtoutf32 = utilities.hb.helpers.packtoutf32
+
+if not FFISUPPORTED or not ffi then
+ report("no ffi support")
+ return
+elseif CONTEXTLMTXMODE and CONTEXTLMTXMODE > 0 then
+ report("no ffi support")
+ return
+elseif not context then
+ return
+end
+
+local harfbuzz = ffilib(os.name == "windows" and "libharfbuzz-0" or "libharfbuzz")
+
+if not harfbuzz then
+ report("no hb library found")
+ return
+end
+
+-- jit.on() : on very long (hundreds of pages) it looks faster but
+-- the normal font processor slows down ... this is consistent with
+-- earlier observations that turning it on is often slower on these
+-- one-shot tex runs (also because we don't use many math and/or
+-- string helpers and therefore the faster vm of luajit gives most
+-- benefits (given the patched hasher)
+
+-- Here is Kai's ffi mapping, a bit reorganized. We only define what we
+-- need. I'm happy that Kai did the deciphering of the api that I could
+-- then build upon.
+
+ffi.cdef [[
+
+typedef struct hb_blob_t hb_blob_t ;
+
+typedef enum {
+ HB_MEMORY_MODE_DUPLICATE,
+ HB_MEMORY_MODE_READONLY,
+ HB_MEMORY_MODE_WRITABLE,
+ HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE
+} hb_memory_mode_t ;
+
+typedef void (*hb_destroy_func_t) (
+ void *user_data
+) ;
+
+typedef struct hb_face_t hb_face_t ;
+
+typedef const struct hb_language_impl_t *hb_language_t ;
+
+typedef struct hb_buffer_t hb_buffer_t ;
+
+typedef enum {
+ HB_SCRIPT_COMMON, HB_SCRIPT_INHERITED, HB_SCRIPT_UNKNOWN,
+
+ HB_SCRIPT_ARABIC, HB_SCRIPT_ARMENIAN, HB_SCRIPT_BENGALI, HB_SCRIPT_CYRILLIC,
+ HB_SCRIPT_DEVANAGARI, HB_SCRIPT_GEORGIAN, HB_SCRIPT_GREEK,
+ HB_SCRIPT_GUJARATI, HB_SCRIPT_GURMUKHI, HB_SCRIPT_HANGUL, HB_SCRIPT_HAN,
+ HB_SCRIPT_HEBREW, HB_SCRIPT_HIRAGANA, HB_SCRIPT_KANNADA, HB_SCRIPT_KATAKANA,
+ HB_SCRIPT_LAO, HB_SCRIPT_LATIN, HB_SCRIPT_MALAYALAM, HB_SCRIPT_ORIYA,
+ HB_SCRIPT_TAMIL, HB_SCRIPT_TELUGU, HB_SCRIPT_THAI, HB_SCRIPT_TIBETAN,
+ HB_SCRIPT_BOPOMOFO, HB_SCRIPT_BRAILLE, HB_SCRIPT_CANADIAN_SYLLABICS,
+ HB_SCRIPT_CHEROKEE, HB_SCRIPT_ETHIOPIC, HB_SCRIPT_KHMER, HB_SCRIPT_MONGOLIAN,
+ HB_SCRIPT_MYANMAR, HB_SCRIPT_OGHAM, HB_SCRIPT_RUNIC, HB_SCRIPT_SINHALA,
+ HB_SCRIPT_SYRIAC, HB_SCRIPT_THAANA, HB_SCRIPT_YI, HB_SCRIPT_DESERET,
+ HB_SCRIPT_GOTHIC, HB_SCRIPT_OLD_ITALIC, HB_SCRIPT_BUHID, HB_SCRIPT_HANUNOO,
+ HB_SCRIPT_TAGALOG, HB_SCRIPT_TAGBANWA, HB_SCRIPT_CYPRIOT, HB_SCRIPT_LIMBU,
+ HB_SCRIPT_LINEAR_B, HB_SCRIPT_OSMANYA, HB_SCRIPT_SHAVIAN, HB_SCRIPT_TAI_LE,
+ HB_SCRIPT_UGARITIC, HB_SCRIPT_BUGINESE, HB_SCRIPT_COPTIC,
+ HB_SCRIPT_GLAGOLITIC, HB_SCRIPT_KHAROSHTHI, HB_SCRIPT_NEW_TAI_LUE,
+ HB_SCRIPT_OLD_PERSIAN, HB_SCRIPT_SYLOTI_NAGRI, HB_SCRIPT_TIFINAGH,
+ HB_SCRIPT_BALINESE, HB_SCRIPT_CUNEIFORM, HB_SCRIPT_NKO, HB_SCRIPT_PHAGS_PA,
+ HB_SCRIPT_PHOENICIAN, HB_SCRIPT_CARIAN, HB_SCRIPT_CHAM, HB_SCRIPT_KAYAH_LI,
+ HB_SCRIPT_LEPCHA, HB_SCRIPT_LYCIAN, HB_SCRIPT_LYDIAN, HB_SCRIPT_OL_CHIKI,
+ HB_SCRIPT_REJANG, HB_SCRIPT_SAURASHTRA, HB_SCRIPT_SUNDANESE, HB_SCRIPT_VAI,
+ HB_SCRIPT_AVESTAN, HB_SCRIPT_BAMUM, HB_SCRIPT_EGYPTIAN_HIEROGLYPHS,
+ HB_SCRIPT_IMPERIAL_ARAMAIC, HB_SCRIPT_INSCRIPTIONAL_PAHLAVI,
+ HB_SCRIPT_INSCRIPTIONAL_PARTHIAN, HB_SCRIPT_JAVANESE, HB_SCRIPT_KAITHI,
+ HB_SCRIPT_LISU, HB_SCRIPT_MEETEI_MAYEK, HB_SCRIPT_OLD_SOUTH_ARABIAN,
+ HB_SCRIPT_OLD_TURKIC, HB_SCRIPT_SAMARITAN, HB_SCRIPT_TAI_THAM,
+ HB_SCRIPT_TAI_VIET, HB_SCRIPT_BATAK, HB_SCRIPT_BRAHMI, HB_SCRIPT_MANDAIC,
+ HB_SCRIPT_CHAKMA, HB_SCRIPT_MEROITIC_CURSIVE, HB_SCRIPT_MEROITIC_HIEROGLYPHS,
+ HB_SCRIPT_MIAO, HB_SCRIPT_SHARADA, HB_SCRIPT_SORA_SOMPENG, HB_SCRIPT_TAKRI,
+ HB_SCRIPT_BASSA_VAH, HB_SCRIPT_CAUCASIAN_ALBANIAN, HB_SCRIPT_DUPLOYAN,
+ HB_SCRIPT_ELBASAN, HB_SCRIPT_GRANTHA, HB_SCRIPT_KHOJKI, HB_SCRIPT_KHUDAWADI,
+ HB_SCRIPT_LINEAR_A, HB_SCRIPT_MAHAJANI, HB_SCRIPT_MANICHAEAN,
+ HB_SCRIPT_MENDE_KIKAKUI, HB_SCRIPT_MODI, HB_SCRIPT_MRO, HB_SCRIPT_NABATAEAN,
+ HB_SCRIPT_OLD_NORTH_ARABIAN, HB_SCRIPT_OLD_PERMIC, HB_SCRIPT_PAHAWH_HMONG,
+ HB_SCRIPT_PALMYRENE, HB_SCRIPT_PAU_CIN_HAU, HB_SCRIPT_PSALTER_PAHLAVI,
+ HB_SCRIPT_SIDDHAM, HB_SCRIPT_TIRHUTA, HB_SCRIPT_WARANG_CITI, HB_SCRIPT_AHOM,
+ HB_SCRIPT_ANATOLIAN_HIEROGLYPHS, HB_SCRIPT_HATRAN, HB_SCRIPT_MULTANI,
+ HB_SCRIPT_OLD_HUNGARIAN, HB_SCRIPT_SIGNWRITING, HB_SCRIPT_ADLAM,
+ HB_SCRIPT_BHAIKSUKI, HB_SCRIPT_MARCHEN, HB_SCRIPT_OSAGE, HB_SCRIPT_TANGUT,
+ HB_SCRIPT_NEWA, HB_SCRIPT_MASARAM_GONDI, HB_SCRIPT_NUSHU, HB_SCRIPT_SOYOMBO,
+ HB_SCRIPT_ZANABAZAR_SQUARE, HB_SCRIPT_DOGRA, HB_SCRIPT_GUNJALA_GONDI,
+ HB_SCRIPT_HANIFI_ROHINGYA, HB_SCRIPT_MAKASAR, HB_SCRIPT_MEDEFAIDRIN,
+ HB_SCRIPT_OLD_SOGDIAN, HB_SCRIPT_SOGDIAN, HB_SCRIPT_ELYMAIC,
+ HB_SCRIPT_NANDINAGARI, HB_SCRIPT_NYIAKENG_PUACHUE_HMONG, HB_SCRIPT_WANCHO,
+
+ HB_SCRIPT_INVALID, _HB_SCRIPT_MAX_VALUE, _HB_SCRIPT_MAX_VALUE_SIGNED,
+} hb_script_t ;
+
+typedef enum {
+ HB_DIRECTION_INVALID,
+ HB_DIRECTION_LTR,
+ HB_DIRECTION_RTL,
+ HB_DIRECTION_TTB,
+ HB_DIRECTION_BTT
+} hb_direction_t ;
+
+typedef int hb_bool_t ;
+
+typedef uint32_t hb_tag_t ;
+
+typedef struct hb_feature_t {
+ hb_tag_t tag;
+ uint32_t value;
+ unsigned int start;
+ unsigned int end;
+} hb_feature_t ;
+
+typedef struct hb_font_t hb_font_t ;
+
+typedef uint32_t hb_codepoint_t ;
+typedef int32_t hb_position_t ;
+typedef uint32_t hb_mask_t ;
+
+typedef union _hb_var_int_t {
+ uint32_t u32;
+ int32_t i32;
+ uint16_t u16[2];
+ int16_t i16[2];
+ uint8_t u8[4];
+ int8_t i8[4];
+} hb_var_int_t ;
+
+typedef struct hb_glyph_info_t {
+ hb_codepoint_t codepoint ;
+ hb_mask_t mask ;
+ uint32_t cluster ;
+ /*< private >*/
+ hb_var_int_t var1 ;
+ hb_var_int_t var2 ;
+} hb_glyph_info_t ;
+
+typedef struct hb_glyph_position_t {
+ hb_position_t x_advance ;
+ hb_position_t y_advance ;
+ hb_position_t x_offset ;
+ hb_position_t y_offset ;
+ /*< private >*/
+ hb_var_int_t var ;
+} hb_glyph_position_t ;
+
+const char * hb_version_string (
+ void
+) ;
+
+hb_blob_t * hb_blob_create (
+ const char *data,
+ unsigned int length,
+ hb_memory_mode_t mode,
+ void *user_data,
+ hb_destroy_func_t destroy
+) ;
+
+void hb_blob_destroy (
+ hb_blob_t *blob
+) ;
+
+hb_face_t * hb_face_create (
+ hb_blob_t *blob,
+ unsigned int index
+) ;
+
+void hb_face_destroy (
+ hb_face_t *face
+) ;
+
+hb_language_t hb_language_from_string (
+ const char *str,
+ int len
+) ;
+
+void hb_buffer_set_language (
+ hb_buffer_t *buffer,
+ hb_language_t language
+) ;
+
+hb_script_t hb_script_from_string (
+ const char *s,
+ int len
+) ;
+
+void hb_buffer_set_script (
+ hb_buffer_t *buffer,
+ hb_script_t script
+) ;
+
+hb_direction_t hb_direction_from_string (
+ const char *str,
+ int len
+) ;
+
+void hb_buffer_set_direction (
+ hb_buffer_t *buffer,
+ hb_direction_t direction
+) ;
+
+hb_bool_t hb_feature_from_string (
+ const char *str,
+ int len,
+ hb_feature_t *feature
+) ;
+
+hb_bool_t hb_shape_full (
+ hb_font_t *font,
+ hb_buffer_t *buffer,
+ const hb_feature_t *features,
+ unsigned int num_features,
+ const char * const *shaper_list
+) ;
+
+
+hb_buffer_t * hb_buffer_create (
+ void
+) ;
+
+void hb_buffer_destroy (
+ hb_buffer_t *buffer
+) ;
+
+void hb_buffer_add_utf8 (
+ hb_buffer_t *buffer,
+ const char *text,
+ int text_length,
+ unsigned int item_offset,
+ int item_length
+) ;
+
+void hb_buffer_add_utf32 (
+ hb_buffer_t *buffer,
+ const char *text,
+ int text_length,
+ unsigned int item_offset,
+ int item_length
+) ;
+
+void hb_buffer_add (
+ hb_buffer_t *buffer,
+ hb_codepoint_t codepoint,
+ unsigned int cluster
+) ;
+
+unsigned int hb_buffer_get_length (
+ hb_buffer_t *buffer
+) ;
+
+hb_glyph_info_t * hb_buffer_get_glyph_infos (
+ hb_buffer_t *buffer,
+ unsigned int *length
+) ;
+
+hb_glyph_position_t *hb_buffer_get_glyph_positions (
+ hb_buffer_t *buffer,
+ unsigned int *length
+) ;
+
+void hb_buffer_reverse (
+ hb_buffer_t *buffer
+) ;
+
+void hb_buffer_reset (
+ hb_buffer_t *buffer
+) ;
+
+void hb_buffer_guess_segment_properties (
+ hb_buffer_t *buffer
+) ;
+
+hb_font_t * hb_font_create (
+ hb_face_t *face
+) ;
+
+void hb_font_destroy (
+ hb_font_t *font
+) ;
+
+void hb_font_set_scale (
+ hb_font_t *font,
+ int x_scale,
+ int y_scale
+) ;
+
+void hb_ot_font_set_funcs (
+ hb_font_t *font
+) ;
+
+unsigned int hb_face_get_upem (
+ hb_face_t *face
+) ;
+
+const char ** hb_shape_list_shapers (
+ void
+);
+]]
+
+-- The library must be somewhere accessible. The calls to the library are similar to
+-- the ones in the prototype but we organize things a bit differently. I tried to alias
+-- the functions in the harfbuzz namespace (luajittex will optimize this anyway but
+-- normal luatex not) but it crashes luajittex so I revered that.
+
+do
+
+ local l = harfbuzz.hb_shape_list_shapers()
+ local s = { }
+
+ for i=0,9 do
+ local str = l[i]
+ if str == ffi.NULL then
+ break
+ else
+ s[#s+1] = ffi.string(str)
+ end
+ end
+
+ report("using hb library version %a, supported shapers: %,t",ffi.string(harfbuzz.hb_version_string()),s)
+
+end
+
+-- we don't want to store userdata in the public data blob
+
+local fontdata = fonts.hashes.identifiers
+
+local loaded = { }
+local shared = { }
+local featured = { }
+
+local function loadfont(font)
+ local tfmdata = fontdata[font]
+ local resources = tfmdata.resources
+ local filename = resources.filename
+ local instance = shared[filename]
+ if not instance then
+ local wholefont = io.loaddata(filename)
+ local wholeblob = ffi.gc(harfbuzz.hb_blob_create(wholefont,#wholefont,0,nil,nil),harfbuzz.hb_blob_destroy)
+ local wholeface = ffi.gc(harfbuzz.hb_face_create(wholeblob,font),harfbuzz.hb_face_destroy)
+ local scale = harfbuzz.hb_face_get_upem(wholeface)
+ instance = ffi.gc(harfbuzz.hb_font_create(wholeface),harfbuzz.hb_font_destroy)
+ harfbuzz.hb_font_set_scale(instance,scale,scale)
+ harfbuzz.hb_ot_font_set_funcs(instance)
+ shared[filename] = instance
+ end
+ return instance
+end
+
+local function loadfeatures(data)
+ local featureset = data.featureset or { }
+ local feature = ffi.new("hb_feature_t[?]",#featureset)
+ local featurespec = feature[0]
+ local noffeatures = 0
+ for i=1,#featureset do
+ local f = featureset[i]
+ harfbuzz.hb_feature_from_string(f,#f,feature[noffeatures])
+ noffeatures = noffeatures + 1
+ end
+ return {
+ noffeatures = #featureset,
+ featureblob = feature,
+ featurespec = featurespec,
+ }
+end
+
+local function crap(t)
+ return ffi.new("const char *[?]", #t, t)
+end
+
+local shapers = {
+ native = crap { "ot", "uniscribe", "fallback" },
+ uniscribe = crap { "uniscribe", "ot", "fallback" },
+ -- uniscribe = crap { "uniscribe", "fallback" }, -- stalls without fallback when no uniscribe present
+ fallback = crap { "fallback" },
+}
+
+-- Reusing a buffer doesn't make a difference in performance so we forget
+-- about it and keep things simple. Todo: check if using locals makes sense.
+
+function utilities.hb.methods.library(font,data,rlmode,text,leading,trailing)
+ local instance = loaded[font]
+ if not instance then
+ instance = loadfont(font)
+ loaded[font] = instance
+ end
+ -- todo: dflt -> DFLT ?
+ -- todo: whatever -> Whatever ?
+ local language = data.language or "dflt"
+ local script = data.script or "dflt"
+ local direction = rlmode < 0 and "rtl" or "ltr"
+ local shaper = shapers[data.shaper]
+ local featurehash = data.features
+ local featuredata = featured[featurehash]
+ if not featuredata then
+ featuredata = loadfeatures(data)
+ featured[featurehash] = featuredata
+ end
+
+ local buffer = ffi.gc(harfbuzz.hb_buffer_create(),harfbuzz.hb_buffer_destroy)
+
+ -- if false then
+ -- -- i have no time to look into this now but something like this should
+ -- -- be possible .. it probably doesn't make a difference in performance
+ -- local n = 0 -- here we also start at 0
+ -- if leading then
+ -- harfbuzz.hb_buffer_add(buffer,[todo: 0x20],n)
+ -- end
+ -- for i=1,#text do
+ -- n = n + 1
+ -- harfbuzz.hb_buffer_add(buffer,[todo: text[i] ],n)
+ -- end
+ -- if trailing then
+ -- n = n + 1
+ -- harfbuzz.hb_buffer_add(buffer,[todo: 0x20 ],n)
+ -- end
+ -- else
+ -- maybe also utf 8 clusters here like on the command line but i have no time
+ -- to figure that out
+ text = packtoutf32(text,leading,trailing)
+ local size = #text/4
+ text = text .. "\000\000\000\000\000\000\000\000" -- trial and error: avoid crash
+ harfbuzz.hb_buffer_add_utf32(buffer,text,#text,0,size)
+ -- end
+
+ -- maybe: hb_buffer_set_segment_properties(buffer,...)
+
+ harfbuzz.hb_buffer_set_language(buffer,harfbuzz.hb_language_from_string(language,#language))
+ harfbuzz.hb_buffer_set_script(buffer,harfbuzz.hb_script_from_string(script,#script))
+ harfbuzz.hb_buffer_set_direction(buffer,harfbuzz.hb_direction_from_string(direction,#direction))
+
+ harfbuzz.hb_buffer_guess_segment_properties(buffer) -- why is this needed (we already set them)
+ harfbuzz.hb_shape_full(instance,buffer,featuredata.featurespec,featuredata.noffeatures,shaper)
+
+ if rlmode < 0 then
+ harfbuzz.hb_buffer_reverse(buffer)
+ end
+
+ local size = harfbuzz.hb_buffer_get_length(buffer)
+ local infos = harfbuzz.hb_buffer_get_glyph_infos(buffer, nil)
+ local positions = harfbuzz.hb_buffer_get_glyph_positions(buffer, nil)
+
+ local result = { }
+ for i=1,size do
+ local info = infos[i-1]
+ local position = positions[i-1]
+ result[i] = {
+ info.codepoint,
+ info.cluster,
+ position.x_offset,
+ position.y_offset,
+ position.x_advance,
+ position.y_advance,
+ }
+ end
+ -- inspect(result)
+ return result
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-phb.lua b/Master/texmf-dist/tex/context/base/mkiv/font-phb.lua
new file mode 100644
index 00000000000..ce42e5a59cc
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-phb.lua
@@ -0,0 +1,728 @@
+if not modules then modules = { } end modules ['font-phb'] = {
+ version = 1.000, -- 2016.10.10,
+ comment = "companion to font-txt.mkiv",
+ original = "derived from a prototype by Kai Eigner",
+ author = "Hans Hagen", -- so don't blame KE
+ copyright = "TAT Zetwerk / PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+}
+
+-- The next code is a rewrite of Kai's prototype. Here we forget about components
+-- and assume some sane data structures. Clusters are handled on the fly. This is
+-- probably one of the places where generic and context code is (to be) different
+-- anyway. All errors in the logic below are mine (Hans). The optimizations probably
+-- make less sense in luajittex because there the interpreter does some optimization
+-- but we may end up with a non-jit version some day.
+--
+-- For testing I used the commandline tool as this code is not that critital and not
+-- used in context for production (maybe for testing). I noticed some issues with
+-- r2l shaping of latin but the uniscribe shaper seems better with that but as it's
+-- a library we're supposed to treat it as a magic black box and not look into it. In
+-- the end all will be sorted out I guess so we don't need to worry about it. Also, I
+-- can always improve the code below if really needed.
+--
+-- We create intermediate tables which might look inefficient. For instance we could
+-- just return two tables or an iterator but in the end this is not the bottleneck.
+-- In fact, speed is hard to measure anyway, as it depends on the font, complexity
+-- of the text, etc. Sometimes the library is faster, sometimes the context Lua one
+-- (which is interesting as it does a bit more, i.e. supports additional features,
+-- which also makes it even harder to check). When we compare context mkiv runs with
+-- mkii runs using pdftex or xetex (which uses harfbuzz) the performance of luatex
+-- on (simple) font demos normally is significant less compared with pdftex (8 bit
+-- and no unicode) but a bit better than xetex. It looks like the interface that gets
+-- implemented here suits that pattern (keep in mind that especially discretionary
+-- handling is quite complex and similar to the context mkiv variant).
+--
+-- The main motivations for supporting this are (1) the fact that Kai spent time on
+-- it, and (2) that we can compare the Lua variant with uniscribe, which is kind of
+-- a reference. We started a decade ago (2006) with the Lua implementation and had
+-- to rely on MSWord for comparison. On the other hand, the command line version is
+-- also useable for that. Don't blame the library or its (maybe wrong) use (here)
+-- for side effects.
+--
+-- Currently there are two methods: (1) binary, which is slow and uses the command
+-- line shaper and (2) the ffi binding. In the meantime I redid the feed-back-into-
+-- the-node-list method. This way tracing is easier, performance better, and there
+-- is no need to mess so much with spacing. I have no clue if I lost functionality
+-- and as this is not production code issues probably will go unnoticed for a while.
+-- We'll see.
+--
+-- Usage: see m-fonts-plugins.mkiv as that is the interface.
+--
+-- Remark: It looks like the library sets up some features by default. Passing them
+-- somehow doesn't work (yet) so I must miss something here. There is something fishy
+-- here with enabling features like init, medi, fina etc because when we turn them on
+-- they aren't applied. Also some features are not processed.
+--
+-- Remark: Because utf32 is fragile I append a couple of zero slots which seems to
+-- work out ok. In fact, after some experiment I figured out that utf32 needs a list
+-- of 4 byte cardinals. From the fact that Kai used the utf8 method I assumed that
+-- there was a utf32 too and indeed that worked but I have no time to look into it
+-- more deeply. It seems to work ok though.
+--
+-- The plugin itself has plugins and we do it the same as with (my)sql support, i.e.
+-- we provide methods. The specific methods are implemented in the imp files. We
+-- follow that model with other libraries too.
+--
+-- Somehow the command line version does uniscribe (usp10.dll) but not the library
+-- so when I can get motivated I might write a binding for uniscribe. (Problem: I
+-- don't look forward to decipher complex (c++) library api's so in the end it might
+-- never happen. A quick glance at the usp10 api gives me the impression that the
+-- apis don't differ that much, but still.)
+--
+-- Warning: This is rather old code, cooked up in the second half of 2016. I'm not
+-- sure if it will keep working because it's not used in production and therefore
+-- doesn't get tested. It was written as part of some comparison tests for Idris,
+-- who wanted to compare the ConTeXt handler, uniscribe and hb, for which there are
+-- also some special modules (that show results alongside). It has never been tested
+-- in regular documents. As it runs independent of the normal font processors there
+-- is probably not that much risk of interference but of course one looses all the
+-- goodies that have been around for a while (or will show up in the future). The
+-- code can probably be optimized a bit.
+
+-- There are three implementation specific files:
+--
+-- 1 font-phb-imp-binary.lua : calls the command line version of hb
+-- 2 font-phb-imp-library.lua : uses ffi to interface to hb
+-- 3 font-phb-imp-internal.lua : uses a small library to interface to hb
+--
+-- Variants 1 and 2 should work with mkiv and were used when playing with these
+-- things, when writing the articles, and when running some tests for Idris font
+-- development. Variant 3 (and maybe 1 also works) is meant for lmtx and has not
+-- been used (read: tested) so far. The 1 and 2 variants are kind of old, but 3 is
+-- an adaptation of 2 so not hip and modern either.
+
+if not context then
+ return
+end
+
+local next, tonumber, pcall, rawget = next, tonumber, pcall, rawget
+
+local concat = table.concat
+local sortedhash = table.sortedhash
+local formatters = string.formatters
+
+local fonts = fonts
+local otf = fonts.handlers.otf
+local texthandler = otf.texthandler
+
+local fontdata = fonts.hashes.identifiers
+
+local nuts = nodes.nuts
+local tonode = nuts.tonode
+local tonut = nuts.tonut
+
+local remove_node = nuts.remove
+
+local getboth = nuts.getboth
+local getnext = nuts.getnext
+local setnext = nuts.setnext
+local getprev = nuts.getprev
+local setprev = nuts.setprev
+local getid = nuts.getid
+local getchar = nuts.getchar
+local setchar = nuts.setchar
+local setlink = nuts.setlink
+local setoffsets = nuts.setoffsets
+----- getcomponents = nuts.getcomponents
+----- setcomponents = nuts.setcomponents
+local getwidth = nuts.getwidth
+local setwidth = nuts.setwidth
+
+local copy_node = nuts.copy
+local find_tail = nuts.tail
+
+local nodepool = nuts.pool
+local new_kern = nodepool.fontkern
+local new_glyph = nodepool.glyph
+
+local nodecodes = nodes.nodecodes
+local glyph_code = nodecodes.glyph
+local glue_code = nodecodes.glue
+
+local skipped = {
+ -- we assume that only valid features are set but maybe we need a list
+ -- of valid hb features as there can be many context specific ones
+ mode = true,
+ features = true,
+ language = true,
+ script = true,
+}
+
+local seenspaces = {
+ [0x0020] = true,
+ [0x00A0] = true,
+ [0x0009] = true, -- indeed
+ [0x000A] = true, -- indeed
+ [0x000D] = true, -- indeed
+}
+
+-- helpers
+
+local helpers = { }
+local methods = { }
+local initialized = { } -- we don't polute the shared table
+
+local method = "library"
+local shaper = "native" -- "uniscribe"
+local report = logs.reporter("font plugin","hb")
+
+utilities.hb = {
+ methods = methods,
+ helpers = helpers,
+ report = report,
+}
+
+do
+
+ local toutf8 = utf.char
+ local space = toutf8(0x20)
+
+ -- we can move this to the internal lib .. just pass a table .. but it is not faster
+
+ function helpers.packtoutf8(text,leading,trailing)
+ local size = #text
+ for i=1,size do
+ text[i] = toutf8(text[i])
+ end
+ if leading then
+ text[0] = space
+ end
+ if trailing then
+ text[size+1] = space
+ end
+ return concat(text,"",leading and 0 or 1,trailing and (size + 1) or size)
+ end
+
+ local toutf32 = utf.toutf32string
+ local space = toutf32(0x20)
+
+ function helpers.packtoutf32(text,leading,trailing)
+ local size = #text
+ for i=1,size do
+ text[i] = toutf32(text[i])
+ end
+ if leading then
+ text[0] = space
+ end
+ if trailing then
+ text[size+1] = space
+ end
+ return concat(text,"",leading and 0 or 1,trailing and (size + 1) or size)
+ end
+
+end
+
+local function initialize(font)
+
+ local tfmdata = fontdata[font]
+ local resources = tfmdata.resources
+ local shared = tfmdata.shared
+ local filename = resources.filename
+ local features = shared.features
+ local descriptions = shared.rawdata.descriptions
+ local characters = tfmdata.characters
+ local featureset = { }
+ local copytochar = shared.copytochar -- indextounicode
+ local spacewidth = nil -- unscaled
+ local factor = tfmdata.parameters.factor
+ local marks = resources.marks or { }
+
+ -- could be shared but why care about a few extra tables
+
+ if not copytochar then
+ copytochar = { }
+ -- let's make sure that we have an indexed table and not a hash
+ local max = 0
+ for k, v in next, descriptions do
+ if v.index > max then
+ max = v.index
+ end
+ end
+ for i=0,max do
+ copytochar[i] = i
+ end
+ -- the normal mapper
+ for k, v in next, descriptions do
+ copytochar[v.index] = k
+ end
+ shared.copytochar = copytochar
+ end
+
+ -- independent from loop as we have unordered hashes
+
+ if descriptions[0x0020] then
+ spacewidth = descriptions[0x0020].width
+ elseif descriptions[0x00A0] then
+ spacewidth = descriptions[0x00A0].width
+ end
+
+ for k, v in sortedhash(features) do
+ if #k > 4 then
+ -- unknown ones are ignored anyway but we can assume that the current
+ -- (and future) extra context features use more verbose names
+ elseif skipped[k] then
+ -- we don't want to pass language and such so we block a few features
+ -- explicitly
+ elseif v == "yes" or v == true then
+ featureset[#featureset+1] = k .. "=1" -- cf command line (false)
+ elseif v == "no" or v == false then
+ featureset[#featureset+1] = k .. "=0" -- cf command line (true)
+ elseif type(v) == "number" then
+ featureset[#featureset+1] = k .. "=" .. v -- cf command line (alternate)
+ else
+ -- unset
+ end
+ end
+
+ local data = {
+ language = features.language, -- do we need to uppercase and padd to 4 ?
+ script = features.script, -- do we need to uppercase and padd to 4 ?
+ features = #featureset > 0 and concat(featureset,",") or "", -- hash
+ featureset = #featureset > 0 and featureset or nil,
+ copytochar = copytochar,
+ spacewidth = spacewidth,
+ filename = filename,
+ marks = marks,
+ factor = factor,
+ characters = characters, -- the loaded font (we use its metrics which is more accurate)
+ method = features.method or method,
+ shaper = features.shaper or shaper,
+ }
+ initialized[font] = data
+ return data
+end
+
+-- In many cases this gives compatible output but especially with respect to spacing and user
+-- discretionaries that mix fonts there can be different outcomes. We also have no possibility
+-- to tweak and cheat. Of course one can always run a normal node mode pass with specific
+-- features first but then one can as well do all in node mode. So .. after a bit of playing
+-- around I redid this one from scratch and also added tracing.
+
+local trace_colors = false trackers.register("fonts.plugins.hb.colors", function(v) trace_colors = v end)
+local trace_details = false trackers.register("fonts.plugins.hb.details",function(v) trace_details = v end)
+local check_id = false
+----- components = false -- we have no need for them
+
+local setcolor = function() end
+local resetcolor = function() end
+
+if context then
+ setcolor = nodes.tracers.colors.set
+ resetcolor = nodes.tracers.colors.reset
+end
+
+table.setmetatableindex(methods,function(t,k)
+ local l = "font-phb-imp-" .. k .. ".lua"
+ report("start loading method %a from %a",k,l)
+ dofile(resolvers.findfile(l))
+ local v = rawget(t,k)
+ if v then
+ report("loading method %a succeeded",k)
+ else
+ report("loading method %a failed",k)
+ v = function() return { } end
+ end
+ t[k] = v
+ return v
+end)
+
+local inandout do
+
+ local utfbyte = utf.byte
+ local utfchar = utf.char
+ local utf3208 = utf.utf32_to_utf8_le
+
+ inandout = function(text,result,first,last,copytochar)
+ local s = { }
+ local t = { }
+ local r = { }
+ local f = formatters["%05U"]
+ for i=1,#text do
+ local c = text[i]
+ -- t[#t+1] = f(utfbyte(utf3208(c)))
+ s[#s+1] = utfchar(c)
+ t[#t+1] = f(c)
+ end
+ for i=first,last do
+ r[#r+1] = f(copytochar[result[i][1]])
+ end
+ return s, t, r
+ end
+
+end
+
+local function harfbuzz(head,font,attr,rlmode,start,stop,text,leading,trailing)
+ local data = initialized[font]
+
+ if not data then
+ data = initialize(font)
+ end
+
+ if check_id then
+ if getid(start) ~= glyph_code then
+ report("error: start is not a glyph")
+ return head
+ elseif getid(stop) ~= glyph_code then
+ report("error: stop is not a glyph")
+ return head
+ end
+ end
+ local size = #text -- original text, without spaces
+ local result = methods[data.method](font,data,rlmode,text,leading,trailing)
+ local length = result and #result or 0
+
+ if length == 0 then
+ -- report("warning: no result")
+ return head
+ end
+
+ local factor = data.factor
+ local marks = data.marks
+ local spacewidth = data.spacewidth
+ local copytochar = data.copytochar
+ local characters = data.characters
+
+ -- the text analyzer is only partially clever so we must assume that we get
+ -- inconsistent lists
+
+ -- we could check if something has been done (replacement or kern or so) but
+ -- then we pass around more information and need to check a lot and spaces
+ -- are kind of spoiling that game (we need a different table then) .. more
+ -- pain than gain
+
+ -- we could play with 0xFFFE as boundary
+
+ local current = start
+ local prev = nil
+ local glyph = nil
+
+ local first = 1
+ local last = length
+ local next = nil -- todo: keep track of them
+ local prev = nil -- todo: keep track of them
+
+ if leading then
+ first = first + 1
+ end
+ if trailing then
+ last = last - 1
+ end
+
+ local position = first
+ local cluster = 0
+ local glyph = nil
+ local index = 0
+ local count = 1
+ -- local runner = nil
+ local saved = nil
+
+ if trace_details then
+ report("start run, original size: %i, result index: %i upto %i",size,first,last)
+ local s, t, r = inandout(text,result,first,last,copytochar)
+ report("method : %s",data.method)
+ report("shaper : %s",data.shaper)
+ report("string : %t",s)
+ report("text : % t",t)
+ report("result : % t",r)
+ end
+
+ -- okay, after some experiments, it became clear that more complex code aimed at
+ -- optimization doesn't pay off as complexity also demands more testing
+
+ for i=first,last do
+ local r = result[i]
+ local unicode = copytochar[r[1]] -- can be private of course
+ --
+ cluster = r[2] + 1 -- starts at zero
+ --
+ if position == cluster then
+ if i == first then
+ index = 1
+ if trace_details then
+ report("[%i] position: %i, cluster: %i, index: %i, starting",i,position,cluster,index)
+ end
+ else
+ index = index + 1
+ if trace_details then
+ report("[%i] position: %i, cluster: %i, index: %i, next step",i,position,cluster,index)
+ end
+ end
+ elseif position < cluster then
+ -- a new cluster
+ current = getnext(current)
+ position = position + 1
+ size = size - 1
+ -- if runner then
+ -- local h, t
+ -- if saved then
+ -- h = copy_node(runner)
+ -- if trace_colors then
+ -- resetcolor(h)
+ -- end
+ -- setchar(h,saved)
+ -- t = h
+ -- if trace_details then
+ -- report("[%i] position: %i, cluster: %i, index: -, initializing components",i,position,cluster)
+ -- end
+ -- else
+ -- h = getcomponents(runner)
+ -- t = find_tail(h)
+ -- end
+ -- for p=position,cluster-1 do
+ -- local n
+ -- head, current, n = remove_node(head,current)
+ -- setlink(t,n)
+ -- t = n
+ -- if trace_details then
+ -- report("[%i] position: %i, cluster: %i, index: -, moving node to components",i,p,cluster)
+ -- end
+ -- size = size - 1
+ -- end
+ -- if saved then
+ -- setcomponents(runner,h)
+ -- saved = false
+ -- end
+ -- else
+ for p=position,cluster-1 do
+ head, current = remove_node(head,current,true)
+ if trace_details then
+ report("[%i] position: %i, cluster: %i, index: -, removing node",i,p,cluster)
+ end
+ size = size - 1
+ end
+ -- end
+ position = cluster
+ index = 1
+ glyph = nil
+ if trace_details then
+ report("[%i] position: %i, cluster: %i, index: %i, arriving",i,cluster,position,index)
+ end
+ else -- maybe a space got properties
+ if trace_details then
+ report("position: %i, cluster: %i, index: %i, quitting due to fatal inconsistency",position,cluster,index)
+ end
+ return head
+ end
+ local copied = false
+ if glyph then
+ if trace_details then
+ report("[%i] position: %i, cluster: %i, index: %i, copying glyph, unicode %U",i,position,cluster,index,unicode)
+ end
+ local g = copy_node(glyph)
+ if trace_colors then
+ resetcolor(g)
+ end
+ setlink(current,g,getnext(current))
+ current = g
+ copied = true
+ else
+ if trace_details then
+ report("[%i] position: %i, cluster: %i, index: %i, using glyph, unicode %U",i,position,cluster,index,unicode)
+ end
+ glyph = current
+ end
+ --
+ if not current then
+ if trace_details then
+ report("quitting due to unexpected end of node list")
+ end
+ return head
+ end
+ --
+ local id = getid(current)
+ if id ~= glyph_code then
+ if trace_details then
+ report("glyph expected in node list")
+ end
+ return head
+ end
+ --
+ -- really, we can get a tab (9), lf (10), or cr(13) back in cambria .. don't ask me why
+ --
+ local prev, next = getboth(current)
+ --
+ -- assign glyph: first in run
+ --
+ -- if components and index == 1 then
+ -- runner = current
+ -- saved = getchar(current)
+ -- if saved ~= unicode then
+ -- setchar(current,unicode) -- small optimization
+ -- if trace_colors then
+ -- count = (count == 8) and 1 or count + 1
+ -- setcolor(current,"trace:"..count)
+ -- end
+ -- end
+ -- else
+ setchar(current,unicode)
+ if trace_colors then
+ count = (count == 8) and 1 or count + 1
+ setcolor(current,"trace:"..count)
+ end
+ -- end
+ --
+ local x_offset = r[3] -- r.dx
+ local y_offset = r[4] -- r.dy
+ local x_advance = r[5] -- r.ax
+ ----- y_advance = r[6] -- r.ay
+ local left = 0
+ local right = 0
+ local dx = 0
+ local dy = 0
+ if trace_details then
+ if x_offset ~= 0 or y_offset ~= 0 or x_advance ~= 0 then -- or y_advance ~= 0
+ report("[%i] position: %i, cluster: %i, index: %i, old, xoffset: %p, yoffset: %p, xadvance: %p, width: %p",
+ i,position,cluster,index,x_offset*factor,y_offset*factor,x_advance*factor,characters[unicode].width)
+ end
+ end
+ if y_offset ~= 0 then
+ dy = y_offset * factor
+ end
+ if rlmode >= 0 then
+ -- l2r marks and rest
+ if x_offset ~= 0 then
+ dx = x_offset * factor
+ end
+ local width = characters[unicode].width
+ local delta = x_advance * factor
+ if delta ~= width then
+ -- right = -(delta - width)
+ right = delta - width
+ end
+ elseif marks[unicode] then -- why not just the next loop
+ -- r2l marks
+ if x_offset ~= 0 then
+ dx = -x_offset * factor
+ end
+ else
+ -- r2l rest
+ local width = characters[unicode].width
+ local delta = (x_advance - x_offset) * factor
+ if delta ~= width then
+ left = delta - width
+ end
+ if x_offset ~= 0 then
+ right = x_offset * factor
+ end
+ end
+ if copied or dx ~= 0 or dy ~= 0 then
+ setoffsets(current,dx,dy)
+ end
+ if left ~= 0 then
+ setlink(prev,new_kern(left),current) -- insertbefore
+ if current == head then
+ head = prev
+ end
+ end
+ if right ~= 0 then
+ local kern = new_kern(right)
+ setlink(current,kern,next)
+ current = kern
+ end
+ if trace_details then
+ if dy ~= 0 or dx ~= 0 or left ~= 0 or right ~= 0 then
+ report("[%i] position: %i, cluster: %i, index: %i, new, xoffset: %p, yoffset: %p, left: %p, right: %p",i,position,cluster,index,dx,dy,left,right)
+ end
+ end
+ end
+ --
+ if trace_details then
+ report("[-] position: %i, cluster: %i, index: -, at end",position,cluster)
+ end
+ if size > 1 then
+ current = getnext(current)
+ -- if runner then
+ -- local h, t
+ -- if saved then
+ -- h = copy_node(runner)
+ -- if trace_colors then
+ -- resetcolor(h)
+ -- end
+ -- setchar(h,saved)
+ -- t = h
+ -- if trace_details then
+ -- report("[-] position: %i, cluster: -, index: -, initializing components",position)
+ -- end
+ -- else
+ -- h = getcomponents(runner)
+ -- t = find_tail(h)
+ -- end
+ -- for i=1,size-1 do
+ -- if trace_details then
+ -- report("[-] position: %i + %i, cluster: -, index: -, moving node to components",position,i)
+ -- end
+ -- local n
+ -- head, current, n = remove_node(head,current,true)
+ -- setlink(t,n)
+ -- t = n
+ -- end
+ -- if saved then
+ -- setcomponents(runner,h)
+ -- saved = false
+ -- end
+ -- else
+ for i=1,size-1 do
+ if trace_details then
+ report("[-] position: %i + %i, cluster: -, index: -, removing node",position,i)
+ end
+ head, current = remove_node(head,current,true)
+ end
+ -- end
+ end
+ --
+ -- We see all kind of interesting spaces come back (like tabs in cambria) so we do a bit of
+ -- extra testing here.
+ --
+ if leading then
+ local r = result[1]
+ local unicode = copytochar[r[1]]
+ if seenspaces[unicode] then
+ local x_advance = r[5]
+ local delta = x_advance - spacewidth
+ if delta ~= 0 then
+ -- nothing to do but jump one slot ahead
+ local prev = getprev(start)
+ if getid(prev) == glue_code then
+ local dx = delta * factor
+ setwidth(prev,getwidth(prev) + dx)
+ if trace_details then
+ report("compensating leading glue by %p due to codepoint %U",dx,unicode)
+ end
+ else
+ report("no valid leading glue node")
+ end
+ end
+ end
+ end
+ --
+ if trailing then
+ local r = result[length]
+ local unicode = copytochar[r[1]]
+ if seenspaces[unicode] then
+ local x_advance = r[5]
+ local delta = x_advance - spacewidth
+ if delta ~= 0 then
+ local next = getnext(stop)
+ if getid(next) == glue_code then
+ local dx = delta * factor
+ setwidth(next,getwidth(next) + dx)
+ if trace_details then
+ report("compensating trailing glue by %p due to codepoint %U",dx,unicode)
+ end
+ else
+ report("no valid trailing glue node")
+ end
+ end
+ end
+ end
+ --
+ if trace_details then
+ report("run done")
+ end
+ return head
+end
+
+otf.registerplugin("harfbuzz",function(head,font,attr,direction)
+ return texthandler(head,font,attr,direction,harfbuzz)
+end)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-pre.mkiv b/Master/texmf-dist/tex/context/base/mkiv/font-pre.mkiv
index 445dedd2543..91a2e818eb7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-pre.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-pre.mkiv
@@ -401,10 +401,11 @@
% liga=yes, % makes no sense
% tlig=yes, % makes no sense
% trep=yes, % makes no sense
- mathnolimitsmode={0,800}, % this looks okay on the average font
+ % mathnolimitsmode={0,800}, % this looks okay on the average font
mathalternates=yes,
- mathitalics=yes, % we pass them
- mathdimensions=all,
+ emulatelmtx=yes,
+ % mathitalics=yes, % we pass them
+ % mathdimensions=all,
% mathkerns=yes,
% mathgaps=yes,
language=dflt,
@@ -416,10 +417,14 @@
% [oldmath]
% [oldmath=yes]
-\ifdefined\mathnolimitsmode
- \mathnolimitsmode\plusone % font driven (only opentype)
+\ifdefined\variablefam
+ \variablefam\pluscclv
\fi
+% \ifdefined\mathnolimitsmode
+% \mathnolimitsmode\plusone % font driven (only opentype)
+% \fi
+
\ifdefined\mathitalicsmode
\mathitalicsmode\plusone % simple noads become zero
% \mathitalicsmode\plustwo % idem but inner is kept (for testing)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-prv.lua b/Master/texmf-dist/tex/context/base/mkiv/font-prv.lua
index 15057e2554e..59b793444d8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-prv.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-prv.lua
@@ -39,6 +39,8 @@ local sharedprivates = setmetatableindex(function(t,k)
return v
end)
+fonts.helpers.sharedprivates = sharedprivates
+
function helpers.addprivate(tfmdata,name,characterdata)
local properties = tfmdata.properties
local characters = tfmdata.characters
@@ -81,6 +83,22 @@ function helpers.newprivateslot(name)
return sharedprivates[name]
end
+function helpers.isprivate(unicode)
+ if unicode < 0xD7FF or (unicode > 0xDFFF and unicode <= 0xFFFF) then
+ return false
+ elseif unicode >= 0x00E000 and unicode <= 0x00F8FF then
+ return true
+ elseif unicode >= 0x0F0000 and unicode <= 0x0FFFFF then
+ return true
+ elseif unicode >= 0x100000 and unicode <= 0x10FFFF then
+ return true
+ elseif unicode >= 0x00D800 and unicode <= 0x00DFFF then
+ return true
+ else
+ return false
+ end
+end
+
do
local context = context
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-sel.lua b/Master/texmf-dist/tex/context/base/mkiv/font-sel.lua
index 9a611f9faa3..ab6297f40aa 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-sel.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-sel.lua
@@ -77,19 +77,24 @@ local report_typescript = logs.reporter("selectfont","typescripts")
defaults["rm"] = { features = { ["sc"] = "*,f:smallcaps" } }
defaults["ss"] = { features = { ["sc"] = "*,f:smallcaps" } }
-defaults["asanamath"] = { options = { extras = "asana-math", features = "math\\mathsizesuffix", goodies = "anana-math" } }
-defaults["cambriamath"] = { options = { extras = "cambria-math", features = "math\\mathsizesuffix", goodies = "cambria-math" } }
-defaults["dejavumath"] = { options = { extras = "dejavu", features = "math\\mathsizesuffix" } }
-defaults["neoeuler"] = { options = { extras = "euler-math", features = "math\\mathsizesuffix" } }
-defaults["latinmodernmath"] = { options = { extras = "lm,lm-math", features = "math\\mathsizesuffix,lm-math", goodies = "lm" } }
-defaults["lucidabrightmathot"] = { options = { extras = "lucida-opentype-math", features = "math\\mathsizesuffix", goodies = "lucida-opentype-math" } }
-defaults["minionmath"] = { options = { extras = "minion-math", features = "math\\mathsizesuffix", goodies = "minion-math" } }
-defaults["texgyredejavumath"] = { options = { extras = "dejavu", features = "math\\mathsizesuffix" } }
-defaults["texgyrepagellamath"] = { options = { extras = "texgyre", features = "math\\mathsizesuffix" } }
-defaults["texgyrebonummath"] = { options = { extras = "texgyre", features = "math\\mathsizesuffix" } }
-defaults["texgyrescholamath"] = { options = { extras = "texgyre", features = "math\\mathsizesuffix" } }
-defaults["texgyretermesmath"] = { options = { extras = "texgyre", features = "math\\mathsizesuffix" } }
-defaults["xitsmath"] = { options = { extras = "xits-math", features = "math\\mathsizesuffix", goodies = "xits-math" } }
+-- WS: we need to check the extras with the typescripts
+
+defaults["asanamath"] = { options = { extras = "asana-math", features = "math\\mathsizesuffix,mathextra", goodies = "anana-math" } }
+defaults["cambriamath"] = { options = { extras = "cambria-math", features = "math\\mathsizesuffix,mathextra", goodies = "cambria-math" } }
+defaults["euler"] = { options = { extras = "euler-math", features = "math\\mathsizesuffix,mathextra", goodies = "euler-math" } }
+defaults["latinmodernmath"] = { options = { extras = "lm,lm-math", features = "math\\mathsizesuffix,mathextra,lm-math", goodies = "modern" } }
+defaults["lucidabrightmathot"] = { options = { extras = "lucida-opentype-math", features = "math\\mathsizesuffix,mathextra", goodies = "lucida-math" } }
+defaults["minionmath"] = { options = { extras = "minion-math", features = "math\\mathsizesuffix,mathextra", goodies = "minion-math" } }
+defaults["stixtwomath"] = { options = { extras = "stix-two-math", features = "math\\mathsizesuffix,mathextra", goodies = "stixtwo-math" } }
+defaults["texgyredejavumath"] = { options = { extras = "dejavu", features = "math\\mathsizesuffix,mathextra", goodies = "dejavu-math" } }
+defaults["texgyrepagellamath"] = { options = { extras = "texgyre", features = "math\\mathsizesuffix,mathextra", goodies = "pagella-math" } }
+defaults["texgyrebonummath"] = { options = { extras = "texgyre", features = "math\\mathsizesuffix,mathextra", goodies = "bonum-math" } }
+defaults["texgyrescholamath"] = { options = { extras = "texgyre", features = "math\\mathsizesuffix,mathextra", goodies = "schola-math" } }
+defaults["texgyretermesmath"] = { options = { extras = "texgyre", features = "math\\mathsizesuffix,mathextra", goodies = "termes-math" } }
+defaults["xitsmath"] = { options = { extras = "xits-math", features = "math\\mathsizesuffix,mathextra", goodies = "xits-math" } }
+
+defaults["neoeuler"] = defaults["euler"]
+defaults["dejavumath"] = defaults["texgyredejavumath"]
extras["features"] = function(data,alternative,features)
local d = data.options.features
@@ -466,7 +471,12 @@ function selectfont.registerfiles(index)
argument = method
method = "name"
end
- (extras[method] or methods[method] or methods[v_default])(data,alternative,argument)
+ if #entries == 1 and method == "features" then
+ extras["features"](data,alternative,argument)
+ methods[v_default](data,alternative)
+ else
+ (extras[method] or methods[method] or methods[v_default])(data,alternative,argument)
+ end
end
else
methods[v_default](data,alternative)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-shp.lua b/Master/texmf-dist/tex/context/base/mkiv/font-shp.lua
index 78e8597b937..197a3f1ccb0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-shp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-shp.lua
@@ -17,7 +17,7 @@ local pfb = fonts.handlers.pfb
local hashes = fonts.hashes
local identifiers = hashes.identifiers
-local version = 0.009
+local version = otf.version or 0.015
local shapescache = containers.define("fonts", "shapes", version, true)
local streamscache = containers.define("fonts", "streams", version, true)
@@ -150,6 +150,8 @@ end
local readers = otf.readers
local cleanname = otf.readers.helpers.cleanname
+-- todo: shared hash for this but not accessed often
+
local function makehash(filename,sub,instance)
local name = cleanname(file.basename(filename))
if instance then
@@ -234,17 +236,21 @@ local function loadstreams(cache,filename,sub,instance)
if data then
local glyphs = data.glyphs
local streams = { }
+ -- local widths = { }
if glyphs then
for i=0,#glyphs do
local glyph = glyphs[i]
if glyph then
streams[i] = glyph.stream or ""
+ -- widths [i] = glyph.width or 0
else
streams[i] = ""
+ -- widths [i] = 0
end
end
end
data.streams = streams
+ -- data.widths = widths -- maybe more reliable!
data.glyphs = nil
data.size = size
data.format = data.format or (kind == "otf" and "opentype") or "truetype"
@@ -259,8 +265,11 @@ local function loadstreams(cache,filename,sub,instance)
local names, encoding, streams, metadata = pfb.loadvector(filename,false,true)
if streams then
local fontbbox = metadata.fontbbox or { 0, 0, 0, 0 }
+ -- local widths = { }
for i=0,#streams do
- streams[i] = streams[i].stream or "\14"
+ local s = streams[i]
+ streams[i] = s.stream or "\14"
+ -- widths [i] = s.width or 0
end
data = {
filename = filename,
@@ -268,6 +277,7 @@ local function loadstreams(cache,filename,sub,instance)
time = time,
format = "type1",
streams = streams,
+ -- widths = widths,
fontheader = {
fontversion = metadata.version,
units = 1000, -- can this be different?
@@ -346,7 +356,8 @@ local function getstreamhash(fontid)
local fontdata = identifiers[fontid]
if fontdata then
local properties = fontdata.properties
- return makehash(properties.filename,properties.subfont,properties.instance)
+ local fonthash = makehash(properties.filename,properties.subfont,properties.instance)
+ return fonthash, fontdata
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-sol.lua b/Master/texmf-dist/tex/context/base/mkiv/font-sol.lua
index c618739959f..b3b514a16b7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-sol.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-sol.lua
@@ -75,14 +75,14 @@ local setnext = nuts.setnext
local setlist = nuts.setlist
local find_node_tail = nuts.tail
-local flush_node = nuts.flush_node
-local flush_node_list = nuts.flush_list
-local copy_node_list = nuts.copy_list
+local flushnode = nuts.flushnode
+local flushnodelist = nuts.flushlist
+local copy_node_list = nuts.copylist
local hpack_nodes = nuts.hpack
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
-local protect_glyphs = nuts.protect_glyphs
-local start_of_par = nuts.start_of_par
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
+local protectglyphs = nuts.protectglyphs
+local startofpar = nuts.startofpar
local nextnode = nuts.traversers.next
local nexthlist = nuts.traversers.hlist
@@ -92,7 +92,7 @@ local repack_hlist = nuts.repackhlist
local nodes_to_utf = nodes.listtoutf
------ protect_glyphs = nodes.handlers.protectglyphs
+----- protectglyphs = nodes.handlers.protectglyphs
local setnodecolor = nodes.tracers.colors.set
@@ -367,8 +367,8 @@ function splitters.split(head) -- best also pass the direction
if encapsulate then
local user_one = new_usernode(splitter_one,n)
local user_two = new_usernode(splitter_two,n)
- head, start = insert_node_before(head,start,user_one)
- insert_node_after(head,stop,user_two)
+ head, start = insertnodebefore(head,start,user_one)
+ insertnodeafter(head,stop,user_two)
else
local current = start
while true do
@@ -437,7 +437,7 @@ function splitters.split(head) -- best also pass the direction
end
local direction, pop = getdirection(current)
r2l = not pop and direction == righttoleft_code
- elseif id == par_code and start_of_par(current) then
+ elseif id == par_code and startofpar(current) then
if start then
flush() -- very unlikely as this starts a paragraph
end
@@ -636,7 +636,7 @@ local function doit(word,list,best,width,badness,line,set,listdir)
if getid(first) == whatsit_code then
local temp = first
first = getnext(first)
- flush_node(temp)
+ flushnode(temp)
end
local last = find_node_tail(first)
-- replace [u]h->t by [u]first->last
@@ -660,14 +660,14 @@ local function doit(word,list,best,width,badness,line,set,listdir)
setnext(t)
end
setnext(last)
- flush_node_list(first)
+ flushnodelist(first)
else
if trace_optimize then
report_optimizers("line %a, set %a, badness before: %a, after %a, criterium %a, verdict %a",line,set or "?",badness,b,criterium,"continue")
end
-- free old h->t
setnext(t)
- flush_node_list(h) -- somehow fails
+ flushnodelist(h) -- somehow fails
if not encapsulate then
word[2] = first
word[3] = last
@@ -784,7 +784,7 @@ function splitters.optimize(head)
if not encapsulate and getid(list) == glyph_code then
-- nasty .. we always assume a prev being there .. future luatex will always have a leftskip set
-- is this assignment ok ? .. needs checking
- list = insert_node_before(list,list,new_leftskip(0)) -- new_glue(0)
+ list = insertnodebefore(list,list,new_leftskip(0)) -- new_glue(0)
setlist(current,list)
end
local temp, badness = repack_hlist(list,width,"exactly",direction) -- it would be nice if the badness was stored in the node
@@ -813,7 +813,7 @@ function splitters.optimize(head)
local bb, base
for i=1,max do
if base then
- flush_node_list(base)
+ flushnodelist(base)
end
base = copy_node_list(list)
local words = collect_words(base) -- beware: words is adapted
@@ -841,7 +841,7 @@ function splitters.optimize(head)
break
end
end
- flush_node_list(base)
+ flushnodelist(base)
end
local words = collect_words(list)
for best=lastbest or 1,max do
@@ -852,7 +852,7 @@ function splitters.optimize(head)
end
if done then
if b <= criterium then -- was == 0
- protect_glyphs(list)
+ protectglyphs(list)
break
end
end
@@ -869,7 +869,7 @@ function splitters.optimize(head)
end
for i=1,nc do
local ci = cache[i]
- flush_node_list(ci.original)
+ flushnodelist(ci.original)
end
cache = { }
tex.hbadness = tex_hbadness
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-syn.lua b/Master/texmf-dist/tex/context/base/mkiv/font-syn.lua
index 1d5e1803243..e80d57f4146 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-syn.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-syn.lua
@@ -1408,13 +1408,30 @@ here is for testing purposes only (it deals with names prefixed by an
encoding name).</p>
--ldx]]--
-local function fuzzy(mapping,sorted,name,sub)
+local function fuzzy(mapping,sorted,name,sub) -- no need for reverse sorted here
local condensed = gsub(name,"[^%a%d]","")
+ local pattern = condensed .. "$"
+ local matches = false
for k=1,#sorted do
local v = sorted[k]
- if find(v,condensed) then
+ if v == condensed then
return mapping[v], v
+ elseif find(v,pattern) then
+ return mapping[v], v
+ elseif find(v,condensed) then
+ if matches then
+ matches[#matches+1] = v
+ else
+ matches = { v }
+ end
+ end
+ end
+ if matches then
+ if #matches > 1 then
+ sort(matches,function(a,b) return #a < #b end)
end
+ matches = matches[1]
+ return mapping[matches], matches
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-ttf.lua b/Master/texmf-dist/tex/context/base/mkiv/font-ttf.lua
index a2732aa5f2e..1fee9fa88d9 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/font-ttf.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-ttf.lua
@@ -35,7 +35,7 @@ if not modules then modules = { } end modules ['font-ttf'] = {
local next, type, unpack = next, type, unpack
local band, rshift = bit32.band, bit32.rshift
-local sqrt, round = math.sqrt, math.round
+local sqrt, round, abs, min, max = math.sqrt, math.round, math.abs, math.min, math.max
local char, rep = string.char, string.rep
local concat = table.concat
local idiv = number.idiv
@@ -136,8 +136,12 @@ local function mergecomposites(glyphs,shapes)
local y = p[2]
nofpoints = nofpoints + 1
points[nofpoints] = {
+ -- unifractur : u n
+ -- seguiemj : 0x270E 0x2710
xscale * x + xrotate * y + xoffset,
yscale * y + yrotate * x + yoffset,
+-- xscale * x + yrotate * y + xoffset,
+-- xrotate * x + yscale * y + yoffset,
p[3]
}
end
@@ -203,77 +207,220 @@ end
-- We had two loops (going backward) but can do it in one loop .. but maybe we
-- should only accept fonts with proper hvar tables.
+-- dowidth is kind of hack ... fonts are not always ok wrt these extra points
+
+local xv = { } -- we share this cache
+local yv = { } -- we share this cache
+
local function applyaxis(glyph,shape,deltas,dowidth)
local points = shape.points
if points then
local nofpoints = #points
- local h = nofpoints + 2 -- weird, the example font seems to have left first
- local l = nofpoints + 1
- ----- v = nofpoints + 3
- ----- t = nofpoints + 4
local dw = 0
local dl = 0
for i=1,#deltas do
local deltaset = deltas[i]
local xvalues = deltaset.xvalues
local yvalues = deltaset.yvalues
- local dpoints = deltaset.points
- local factor = deltaset.factor
- if dpoints then
- -- todo: interpolate
- local nofdpoints = #dpoints
- for i=1,nofdpoints do
- local d = dpoints[i]
- local p = points[d]
- if p then
- if xvalues then
- local x = xvalues[i]
- if x and x ~= 0 then
- p[1] = p[1] + factor * x
- end
- end
- if yvalues then
- local y = yvalues[i]
- if y and y ~= 0 then
- p[2] = p[2] + factor * y
+ if xvalues and yvalues then
+ local dpoints = deltaset.points
+ local factor = deltaset.factor
+ if dpoints then
+ local cnt = #dpoints
+ if dowidth then
+ cnt = cnt - 4
+ end
+ if cnt > 0 then
+ -- Not the most efficient solution but we seldom do this. We
+ -- actually need to avoid the extra points here but I'll deal
+ -- with that when needed.
+ local contours = shape.contours
+ local nofcontours = #contours
+ local first = 1
+ local firstindex = 1
+ for contour=1,nofcontours do
+ local last = contours[contour]
+ if last >= first then
+ local lastindex = cnt
+ if firstindex < cnt then
+ for currentindex=firstindex,cnt do
+ local found = dpoints[currentindex]
+ if found <= first then
+ firstindex = currentindex
+ end
+ if found == last then
+ lastindex = currentindex
+ break
+ elseif found > last then
+ -- \definefontfeature[book][default][axis={weight=800}]
+ -- \definefont[testfont][file:Commissioner-vf-test.ttf*book]
+ -- \testfont EΘÄΞ
+ while lastindex > 1 and dpoints[lastindex] > last do
+ lastindex = lastindex - 1
+ end
+ --
+ break
+ end
+ end
+ end
+ -- print("unicode: ",glyph.unicode or "?")
+ -- print("contour: ",first,contour,last)
+ -- print("index : ",firstindex,lastindex,cnt)
+ -- print("points : ",dpoints[firstindex],dpoints[lastindex])
+ local function find(i)
+ local prv = lastindex
+ for j=firstindex,lastindex do
+ local nxt = dpoints[j] -- we could save this lookup when we return it
+ if nxt == i then
+ return false, j, false
+ elseif nxt > i then
+ return prv, false, j
+ end
+ prv = j
+ end
+ return prv, false, firstindex
+ end
+ -- We need the first and last points untouched so we first
+ -- collect data.
+ for point=first,last do
+ local d1, d2, d3 = find(point)
+ local p2 = points[point]
+ if d2 then
+ xv[point] = xvalues[d2]
+ yv[point] = yvalues[d2]
+ else
+ local n1 = dpoints[d1]
+ local n3 = dpoints[d3]
+ -- Some day I need to figure out these extra points but
+ -- I'll wait till the standard is more clear and fonts
+ -- become better (ntg-context: fraunces.ttf > abcdef).
+ if n1 > nofpoints then
+ n1 = nofpoints
+ end
+ if n3 > nofpoints then
+ n3 = nofpoints
+ end
+ --
+ local p1 = points[n1]
+ local p3 = points[n3]
+ local p1x = p1[1]
+ local p2x = p2[1]
+ local p3x = p3[1]
+ local p1y = p1[2]
+ local p2y = p2[2]
+ local p3y = p3[2]
+ local x1 = xvalues[d1]
+ local y1 = yvalues[d1]
+ local x3 = xvalues[d3]
+ local y3 = yvalues[d3]
+ --
+ local fx
+ local fy
+ --
+ if p1x == p3x then
+ if x1 == x3 then
+ fx = x1
+ else
+ fx = 0
+ end
+ elseif p2x <= min(p1x,p3x) then
+ if p1x < p3x then
+ fx = x1
+ else
+ fx = x3
+ end
+ elseif p2x >= max(p1x,p3x) then
+ if p1x > p3x then
+ fx = x1
+ else
+ fx = x3
+ end
+ else
+ fx = (p2x - p1x)/(p3x - p1x)
+-- fx = round(fx)
+ fx = (1 - fx) * x1 + fx * x3
+ end
+ --
+ if p1y == p3y then
+ if y1 == y3 then
+ fy = y1
+ else
+ fy = 0
+ end
+ elseif p2y <= min(p1y,p3y) then
+ if p1y < p3y then
+ fy = y1
+ else
+ fy = y3
+ end
+ elseif p2y >= max(p1y,p3y) then
+ if p1y > p3y then
+ fy = y1
+ else
+ fy = y3
+ end
+ else
+ fy = (p2y - p1y)/(p3y - p1y)
+-- fy = round(fy)
+ fy = (1 - fy) * y1 + fy * y3
+ end
+ -- -- maybe:
+ -- if p1y ~= p3y then
+ -- fy = (p2y - p1y)/(p3y - p1y)
+ -- fy = (1 - fy) * y1 + fy * y3
+ -- elseif abs(p1y-p2y) < abs(p3y-p2y) then
+ -- fy = y1
+ -- else
+ -- fy = y3
+ -- end
+ --
+ xv[point] = fx
+ yv[point] = fy
+ end
+ end
+ if lastindex < cnt then
+ firstindex = lastindex + 1
+ end
end
+ first = last + 1
end
- elseif dowidth then
- -- we've now ran into phantom points which is a bit fuzzy because:
- -- are there gaps in there?
- --
- -- todo: move this outside the loop (when we can be sure of all 4 being there)
- if d == h then
- -- we have a phantom point hadvance
- local x = xvalues[i]
- if x then
- dw = dw + factor * x
+
+ for i=1,nofpoints do
+ local pi = points[i]
+ local fx = xv[i]
+ local fy = yv[i]
+ if fx ~= 0 then
+ pi[1] = pi[1] + factor * fx
end
- elseif d == l then
- local x = xvalues[i]
- if x then
- dl = dl + factor * x
+ if fy ~= 0 then
+ pi[2] = pi[2] + factor * fy
end
end
+ else
+ report("bad deltapoint data, maybe a missing hvar table")
end
- end
- else
- for i=1,nofpoints do
- local p = points[i]
- if xvalues then
+ else
+ for i=1,nofpoints do
+ local p = points[i]
local x = xvalues[i]
- if x and x ~= 0 then
- p[1] = p[1] + factor * x
- end
- end
- if yvalues then
- local y = yvalues[i]
- if y and y ~= 0 then
- p[2] = p[2] + factor * y
+ if x then
+ local y = yvalues[i]
+ if x ~= 0 then
+ p[1] = p[1] + factor * x
+ end
+ if y ~= 0 then
+ p[2] = p[2] + factor * y
+ end
+ else
+ break
end
end
end
if dowidth then
+ local h = nofpoints + 2 -- weird, the example font seems to have left first
+ local l = nofpoints + 1
+ ----- v = nofpoints + 3
+ ----- t = nofpoints + 4
local x = xvalues[h]
if x then
dw = dw + factor * x
@@ -618,6 +765,18 @@ local function contours2outlines_shaped(glyphs,shapes,keepcurve)
end
first = last + 1
end
+ -- See readers.hvar where we set the delta lsb as well as the adapted
+ -- width. At this point we do know the boundingbox's llx. The xmax is
+ -- not that relevant. It needs more testing!
+ --
+ xmin = glyph.boundingbox[1]
+ --
+ local dlsb = glyph.dlsb
+ if dlsb then
+ xmin = xmin + dlsb
+ glyph.dlsb = nil -- save space
+ end
+ --
glyph.boundingbox = { round(xmin), round(ymin), round(xmax), round(ymax) }
end
end
@@ -829,8 +988,8 @@ local function readglyph(f,nofcontours) -- read deltas here, saves space
local x = 0
for i=1,nofpoints do
local flag = flags[i]
- -- local short = band(flag,0x04) ~= 0
- -- local same = band(flag,0x20) ~= 0
+ -- local short = band(flag,0x02) ~= 0
+ -- local same = band(flag,0x10) ~= 0
if band(flag,0x02) ~= 0 then
if band(flag,0x10) ~= 0 then
x = x + readbyte(f)
@@ -930,13 +1089,13 @@ local function readcomposite(f)
yoffset = yoffset * yscale
end
elseif band(flags,0x0080) ~= 0 then -- f_matrix
- xscale = read2dot14(f)
- xrotate = read2dot14(f)
- yrotate = read2dot14(f)
- yscale = read2dot14(f)
+ xscale = read2dot14(f) -- xxpart
+ xrotate = read2dot14(f) -- yxpart
+ yrotate = read2dot14(f) -- xypart
+ yscale = read2dot14(f) -- yypart
if f_xyarg and f_offset then
- xoffset = xoffset * sqrt(xscale ^2 + xrotate^2)
- yoffset = yoffset * sqrt(yrotate^2 + yscale ^2)
+ xoffset = xoffset * sqrt(xscale ^2 + yrotate^2) -- was xrotate
+ yoffset = yoffset * sqrt(xrotate^2 + yscale ^2) -- was yrotate
end
end
nofcomponents = nofcomponents + 1
@@ -1119,50 +1278,6 @@ end
local function readdeltas(f,nofpoints)
local deltas = { }
local p = 0
- local z = 0
- while nofpoints > 0 do
- local control = readbyte(f)
-if not control then
- break
-end
- local allzero = band(control,0x80) ~= 0
- local runlength = band(control,0x3F) + 1
- if allzero then
- z = z + runlength
- else
- local runreader = band(control,0x40) ~= 0 and readshort or readinteger
- if z > 0 then
- for i=1,z do
- p = p + 1
- deltas[p] = 0
- end
- z = 0
- end
- for i=1,runlength do
- p = p + 1
- deltas[p] = runreader(f)
- end
- end
- nofpoints = nofpoints - runlength
- end
- -- saves space
--- if z > 0 then
--- for i=1,z do
--- p = p + 1
--- deltas[p] = 0
--- end
--- end
- if p > 0 then
- -- forget about trailing zeros
- return deltas
- else
- -- forget about all zeros
- end
-end
-
-local function readdeltas(f,nofpoints)
- local deltas = { }
- local p = 0
while nofpoints > 0 do
local control = readbyte(f)
if control then
@@ -1330,7 +1445,8 @@ function readers.gvar(f,fontdata,specification,glyphdata,shapedata)
-- local start = start and start[i] or 0
-- local stop = stop and stop [i] or 0
local start = start and start[i] or (peak < 0 and peak or 0)
- local stop = stop and stop [i] or (peak > 0 and peak or 0)
+ local stop = stop and stop [i] or (peak > 0 and peak or 0) -- or 1 ?
+-- local stop = stop and stop [i] or (peak > 0 and peak or 1) -- or 1 ?
-- do we really need these tests ... can't we assume sane values
if start > peak or peak > stop then
-- * 1
@@ -1343,7 +1459,6 @@ function readers.gvar(f,fontdata,specification,glyphdata,shapedata)
s = 0
break
elseif f < peak then
--- s = - s * (f - start) / (peak - start)
s = s * (f - start) / (peak - start)
elseif f > peak then
s = s * (stop - f) / (stop - peak)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/font-txt.lua b/Master/texmf-dist/tex/context/base/mkiv/font-txt.lua
new file mode 100644
index 00000000000..b8614c8f565
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/font-txt.lua
@@ -0,0 +1,553 @@
+if not modules then modules = { } end modules ['font-txt'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv",
+ original = "derived from a prototype by Kai Eigner",
+ author = "Hans Hagen", -- so don't blame KE
+ copyright = "TAT Zetwerk / PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- The next code is derived from a snippet handler prototype by Kai Eigner and
+-- resembles the main loop of the Lua font handler but I decided use a more generic
+-- (and pluggable) approach and not hook it into the already present opentype
+-- handler. This is cleaner as it cannot interfere with the Lua font processor
+-- (which does some more things) and is also better performance wise. It also makes
+-- it possible to support other handlers as history has proven that there are no
+-- universal solution in computer land. Most of the disc logic is kept but done
+-- slightly different.
+--
+-- The code is heavily optimized and generalized so there can be errors. As
+-- mentioned, the plug mode can be used for alternative font handlers. A font is
+-- still loaded but the node and base mode handlers are ignored. Plugins are
+-- unlikely to work well in context as they can mess up attribute driven subsystem,
+-- so they are not officially supported. The language and script options are
+-- available in the usual way.
+--
+-- The code collects snippets, either or not with spacing around them and partially
+-- running over disc nodes. The r2l "don't assume disc and collect larger chunks" is
+-- not robust so I got rid of that branch. This is somewhat similar to the Lua font
+-- handler.
+--
+-- An alternative is to run over longer strings with dummy chars (unicode objects) as
+-- markers for whatever is in the list but that becomes tricky with mixed fonts and
+-- reconstruction becomes a bit of a mess then, especially because disc nodes force
+-- us to backtrack and look at several solutions. It also has a larger memory
+-- footprint. Some tests demonstrated that it has no gain and only adds complexity.
+--
+-- This (derived) variant is better suited for context and seems to work ok in the
+-- generic variant. I also added some context specific tracing to the code. This
+-- variant uses the plug model provided in the context font system. So, in context,
+-- using the built in Lua handler is the better alternative, also because it has
+-- extensive tracing features. Context users would loose additional functionality
+-- that has been provided for a decade and therefore plugins are not officially
+-- supported (at least not by me, unless I use them myself).
+--
+-- There is no checking here for already processed characters so best not mix this
+-- variant with code that does similar things. If this code evolves depends on the
+-- useability. Kai's code can now be found on github where it is used with a harfbuzz
+-- library. We add this kind of stuff because occasionally we compare engines and
+-- Kai sends me examples and I then need to check context.
+--
+-- One important difference between Kai's approach and the one used in ConTeXt is
+-- that we use utf-32 instead of utf-8. Once I figured out that clusters were just
+-- indices into the original text that made more sense. The first implementation
+-- used the command line tool (binary), then I went for ffi (library).
+--
+-- Beware: this file only implements the framework for plugins. Plugins themselves
+-- are in other files (e.g. font-phb*.lua). On the todo list is a uniscribe plugin
+-- because that is after all the reference for opentype support, but that interface
+-- needs a bit more work (so it might never happen).
+--
+-- Usage: see m-fonts-plugins.mkiv. As it's a nice test for ffi support that file
+-- migth be added to the distribution somewhere in the middle of 2017 when the ffi
+-- interface has been tested a bit more. Okay, it's 2012 now and we're way past that
+-- date but we never had a reason for adding it to the ConTeXt distribution. It
+-- should still work okay because I occasionally checked it against progress made in
+-- the engines and used newer helpers.
+--
+-- Here is an example of usage:
+--
+-- \starttext
+-- \definefontfeature[test][mode=plug,features=text]
+-- \start
+-- \showfontkerns
+-- \definedfont[Serif*test]
+-- \input tufte \par
+-- \stop
+-- \stoptext
+
+local fonts = fonts
+local otf = fonts.handlers.otf
+local nodes = nodes
+
+local utfchar = utf.char
+
+local nuts = nodes.nuts
+
+local getnext = nuts.getnext
+local setnext = nuts.setnext
+local getprev = nuts.getprev
+local setprev = nuts.setprev
+local getid = nuts.getid
+local getsubtype = nuts.getsubtype
+local getfont = nuts.getfont
+local getchar = nuts.getchar
+local getdisc = nuts.getdisc
+local setdisc = nuts.setdisc
+local getboth = nuts.getboth
+local setlink = nuts.setlink
+local getkern = nuts.getkern
+local getwidth = nuts.getwidth
+
+local ischar = nuts.ischar
+local isglyph = nuts.isglyph
+local usesfont = nuts.usesfont
+
+local copy_node_list = nuts.copylist
+local find_node_tail = nuts.tail
+local flushlist = nuts.flushlist
+local freenode = nuts.free
+local endofmath = nuts.endofmath
+
+local startofpar = nuts.startofpar
+
+local nodecodes = nodes.nodecodes
+
+local glyph_code = nodecodes.glyph
+local glue_code = nodecodes.glue
+local disc_code = nodecodes.disc
+local kern_code = nodecodes.kern
+local math_code = nodecodes.math
+local dir_code = nodecodes.dir
+local par_code = nodecodes.par
+
+local righttoleft_code = nodes.dirvalues.righttoleft
+
+local txtdirstate = otf.helpers.txtdirstate
+local pardirstate = otf.helpers.pardirstate
+
+local fonthashes = fonts.hashes
+local fontdata = fonthashes.identifiers
+
+local function deletedisc(head)
+ local current = head
+ local next = nil
+ while current do
+ next = getnext(current)
+ if getid(current) == disc_code then
+ local pre, post, replace, pre_tail, post_tail, replace_tail = getdisc(current,true)
+ setdisc(current)
+ if pre then
+ flushlist(pre)
+ end
+ if post then
+ flushlist(post)
+ end
+ local p, n = getboth(current)
+ if replace then
+ if current == head then
+ head = replace
+ setprev(replace) -- already nil
+ else
+ setlink(p,replace)
+ end
+ setlink(replace_tail,n) -- was: setlink(n,replace_tail)
+ elseif current == head then
+ head = n
+ setprev(n)
+ else
+ setlink(p,n)
+ end
+ freenode(current)
+ end
+ current = next
+ end
+ return head
+end
+
+-- As we know that we have the same font we can probably optimize this a bit more.
+-- Although we can have more in disc nodes than characters and kerns we only support
+-- those two types.
+
+local function eqnode(n,m) -- no real improvement in speed
+ local n_char = isglyph(n)
+ if n_char then
+ return n_char == ischar(m,getfont(n))
+ elseif n_id == kern_code then
+ return getkern(n) == getkern(m)
+ end
+end
+
+local function equalnode(n,m)
+ if not n then
+ return not m
+ elseif not m then
+ return false
+ end
+ local n_char, n_id = isglyph(n)
+ if n_char then
+ return n_char == ischar(m,n_id) -- n_id == n_font
+ elseif n_id == whatsit_code then
+ return false
+ elseif n_id == glue_code then
+ return true
+ elseif n_id == kern_code then
+ return getkern(n) == getkern(m)
+ elseif n_id == disc_code then
+ local n_pre, n_post, n_replace = getdisc(n)
+ local m_pre, m_post, m_replace = getdisc(m)
+ while n_pre and m_pre do
+ if not eqnode(n_pre,m_pre) then
+ return false
+ end
+ n_pre = getnext(n_pre)
+ m_pre = getnext(m_pre)
+ end
+ if n_pre or m_pre then
+ return false
+ end
+ while n_post and m_post do
+ if not eqnode(n_post,m_post) then
+ return false
+ end
+ n_post = getnext(n_post)
+ m_post = getnext(m_post)
+ end
+ if n_post or m_post then
+ return false
+ end
+ while n_replace and m_replace do
+ if not eqnode(n_replace,m_replace) then
+ return false
+ end
+ n_replace = getnext(n_replace)
+ m_replace = getnext(m_replace)
+ end
+ if n_replace or m_replace then
+ return false
+ end
+ return true
+ end
+ return false
+end
+
+-- The spacing hackery is not nice. The text can get leading and trailing spaces
+-- and even mid spaces while the start and stop nodes not always are glues then
+-- so the plugin really needs to do some testing there. We could pass more context
+-- but it doesn't become much better.
+--
+-- The attribute gets passed for tracing purposes. We could support it (not that
+-- hard to do) but as we don't test strickly for fonts (in disc nodes) we are not
+-- compatible anyway. It would also mean more testing. So, don't use this mixed
+-- with node and base mode in context.
+--
+-- We don't distinguish between modes in treatment (so no r2l assumptions) and
+-- no cheats for scripts that might not use discretionaries. Such hacks can work
+-- in predictable cases but in context one can use a mix all kind of things and
+-- users do that. On the other hand, we do support longer glyph runs in both modes
+-- so there we gain a bit.
+
+do
+
+ local function texthandler(head,font,dynamic,rlmode,handler,startspacing,stopspacing,nesting)
+ if not head then
+ return
+ end
+ if startspacing == nil then
+ startspacing = false
+ end
+ if stopspacing == nil then
+ stopspacing = false
+ end
+
+ if getid(head) == par_code and startofpar(head) then
+ rlmode = pardirstate(head)
+ elseif rlmode == righttoleft_code then
+ rlmode = -1
+ else
+ rlmode = 0
+ end
+
+ local dirstack = { }
+ local rlparmode = 0
+ local topstack = 0
+ local text = { }
+ local size = 0
+ local current = head
+ local start = nil
+ local stop = nil
+ local startrlmode = rlmode
+
+ local function handle(leading,trailing) -- what gets passed can become configureable: e.g. utf 8
+ local stop = current or start -- hm, what with outer stop
+ if getid(stop) ~= glyph_code then
+ stop = getprev(stop)
+ end
+ head = handler(head,font,dynamic,rlmode,start,stop,text,leading,trailing) -- handler can adapt text
+ size = 0
+ text = { }
+ start = nil
+ end
+
+ while current do
+ local char, id = ischar(current,font)
+ if char then
+ if not start then
+ start = current
+ startrlmode = rlmode
+ end
+ local char = getchar(current)
+ size = size + 1
+ text[size] = char
+ current = getnext(current)
+ elseif char == false then
+ -- so a mixed font
+ if start and size > 0 then
+ handle(startspacing,false)
+ end
+ startspacing = false
+ current = getnext(current)
+ elseif id == glue_code then
+ -- making this branch optional i.e. always use the else doesn't really
+ -- make a difference in performance (in hb) .. tricky anyway as we can
+ local width = getwidth(current)
+ if width > 0 then
+ if start and size > 0 then
+ handle(startspacing,true)
+ end
+ startspacing = true
+ stopspacing = false
+ else
+ if start and size > 0 then
+ head = handle(startspacing)
+ end
+ startspacing = false
+ stopspacing = false
+ end
+ current = getnext(current)
+ elseif id == disc_code and usesfont(current,font) then -- foo|-|bar : has hbox
+ -- This looks much like the original code but I don't see a need to optimize
+ -- for e.g. deva or r2l fonts. If there are no disc nodes then we won't see
+ -- this branch anyway and if there are, we should just deal with them.
+ --
+ -- There is still some weird code here ... start/stop and such. When I'm in
+ -- the mood (or see a need) I'll rewrite this bit.
+
+ -- bug: disc in last word moves to end (in practice not an issue as one
+ -- doesn't want a break there)
+
+ local pre = nil
+ local post = nil
+ local currentnext = getnext(current)
+ local current_pre, current_post, current_replace = getdisc(current)
+ setdisc(current) -- why, we set it later
+ if start then
+ pre = copy_node_list(start,current)
+ stop = getprev(current)
+ -- why also current and not:
+ -- pre = copy_node_list(start,stop)
+ if start == head then
+ head = current
+ end
+ setlink(getprev(start),current)
+ setlink(stop,current_pre)
+ current_pre = start
+ setprev(current_pre)
+ start = nil
+ stop = nil
+ startrlmode = rlmode
+ end
+ while currentnext do
+ local char, id = ischar(currentnext,font)
+ if char or id == disc_code then
+ stop = currentnext
+ currentnext = getnext(currentnext)
+ elseif id == glue_code then
+ local width = getwidth(currentnext)
+ if width and width > 0 then
+ stopspacing = true
+ else
+ stopspacing = false
+ end
+ break
+ else
+ break
+ end
+ end
+ if stop then
+ local currentnext = getnext(current)
+ local stopnext = getnext(stop)
+ post = copy_node_list(currentnext,stopnext)
+ if current_post then
+ setlink(find_node_tail(current_post),currentnext)
+ else
+ setprev(currentnext)
+ current_post = currentnext
+ end
+ setlink(current,stopnext)
+ setnext(stop)
+ stop = nil
+ end
+ if pre then
+ setlink(find_node_tail(pre),current_replace)
+ current_replace = pre
+ pre = nil
+ end
+ if post then
+ if current_replace then
+ setlink(find_node_tail(current_replace),post)
+ else
+ current_replace = post
+ end
+ post = nil
+ end
+ size = 0 -- hm, ok, start is also nil now
+ text = { }
+ if current_pre then
+ current_pre = texthandler(current_pre,font,dynamic,rlmode,handler,startspacing,false,"pre")
+ end
+ if current_post then
+ current_post = texthandler(current_post,font,dynamic,rlmode,handler,false,stopspacing,"post")
+ end
+ if current_replace then
+ current_replace = texthandler(current_replace,font,dynamic,rlmode,handler,startspacing,stopspacing,"replace")
+ end
+ startspacing = false
+ stopspacing = false
+ local cpost = current_post and find_node_tail(current_post)
+ local creplace = current_replace and find_node_tail(current_replace)
+ local cpostnew = nil
+ local creplacenew = nil
+ local newcurrent = nil
+ while cpost and equalnode(cpost,creplace) do
+ cpostnew = cpost
+ creplacenew = creplace
+ if creplace then
+ creplace = getprev(creplace)
+ end
+ cpost = getprev(cpost)
+ end
+ if cpostnew then
+ if cpostnew == current_post then
+ current_post = nil
+ else
+ setnext(getprev(cpostnew))
+ end
+ flushlist(cpostnew)
+ if creplacenew == current_replace then
+ current_replace = nil
+ else
+ setnext(getprev(creplacenew))
+ end
+ local c = getnext(current)
+ setlink(current,creplacenew)
+ local creplacenewtail = find_node_tail(creplacenew)
+ setlink(creplacenewtail,c)
+ newcurrent = creplacenewtail
+ end
+ current_post = current_post and deletedisc(current_post)
+ current_replace = current_replace and deletedisc(current_replace)
+ local cpre = current_pre
+ local creplace = current_replace
+ local cprenew = nil
+ local creplacenew = nil
+ while cpre and equalnode(cpre, creplace) do
+ cprenew = cpre
+ creplacenew = creplace
+ if creplace then
+ creplace = getnext(creplace)
+ end
+ cpre = getnext(cpre)
+ end
+ if cprenew then
+ cpre = current_pre
+ current_pre = getnext(cprenew)
+ if current_pre then
+ setprev(current_pre)
+ end
+ setnext(cprenew)
+ flushlist(cpre)
+ creplace = current_replace
+ current_replace = getnext(creplacenew)
+ if current_replace then
+ setprev(current_replace)
+ end
+ setlink(getprev(current),creplace)
+ if current == head then
+ head = creplace
+ end
+ setlink(creplacenew,current)
+ end
+ setdisc(current,current_pre,current_post,current_replace)
+ current = currentnext
+ else
+ if start and size > 0 then
+ handle(startspacing,stopspacing)
+ end
+ startspacing = false
+ stopspacing = false
+ if id == math_code then
+ current = getnext(endofmath(current))
+ elseif id == dir_code then
+ startspacing = false
+ topstack, rlmode = txtdirstate(current,dirstack,topstack,rlparmode)
+ current = getnext(current)
+ -- elseif id == par_code and startofpar(current) then
+ -- startspacing = false
+ -- rlparmode, rlmode = pardirstate(current)
+ -- current = getnext(current)
+ else
+ current = getnext(current)
+ end
+ end
+ end
+ if start and size > 0 then
+ handle(startspacing,stopspacing)
+ end
+ return head, true
+ end
+
+ function fonts.handlers.otf.texthandler(head,font,dynamic,direction,action)
+ if action then
+ return texthandler(head,font,dynamic,direction == righttoleft_code and -1 or 0,action)
+ else
+ return head, false
+ end
+ end
+
+ -- Next comes a tracer plug into context.
+
+ ----- texthandler = fonts.handlers.otf.texthandler
+ local report_text = logs.reporter("otf plugin","text")
+ local nofruns = 0
+ local nofsnippets = 0
+ local f_unicode = string.formatters["%U"]
+
+ local function showtext(head,font,dynamic,rlmode,start,stop,list,before,after)
+ if list then
+ nofsnippets = nofsnippets + 1
+ local plus = { }
+ for i=1,#list do
+ local u = list[i]
+ list[i] = utfchar(u)
+ plus[i] = f_unicode(u)
+ end
+ report_text("%03i : [%s] %t [%s]-> % t", nofsnippets, before and "+" or "-", list, after and "+" or "-", plus)
+ else
+ report_text()
+ report_text("invalid list")
+ report_text()
+ end
+ return head, false
+ end
+
+ fonts.handlers.otf.registerplugin("text",function(head,font,dynamic,direction)
+ nofruns = nofruns + 1
+ nofsnippets = 0
+ report_text("start run %i",nofruns)
+ local h, d = texthandler(head,font,dynamic,direction,showtext)
+ report_text("stop run %i",nofruns)
+ return h, d
+ end)
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/good-gen.lua b/Master/texmf-dist/tex/context/base/mkiv/good-gen.lua
index cee6b317211..1747727c177 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/good-gen.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/good-gen.lua
@@ -10,7 +10,7 @@ if not modules then modules = { } end modules ['good-gen'] = {
local type, next = type, next
local lower = string.lower
-
+local filesuffix, replacesuffix = file.suffix, file.replacesuffix
local fonts = fonts
----- trace_goodies = false trackers.register("fonts.goodies", function(v) trace_goodies = v end)
@@ -134,6 +134,16 @@ function fontgoodies.filenames.resolve(name)
return fn
end
end
+ elseif filesuffix(name) == "any" then
+ -- This is a bit weird place but it's a kind of fallback option in case
+ -- we can't resolve due to a name conflict.
+ local sequence = fonts.readers.sequence
+ for i=1,#sequence do
+ local fn = replacesuffix(name,sequence[i])
+ if findfile(fn) ~= "" then
+ return fn
+ end
+ end
else
-- no lookup, just use the regular mechanism
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/good-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/good-ini.lua
index 22ca12d28c6..df79adb61c3 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/good-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/good-ini.lua
@@ -150,7 +150,9 @@ end
local function flattenedfeatures(t,tt)
-- first set value dominates
- local tt = tt or { }
+ if not tt then
+ tt = { }
+ end
for i=1,#t do
local ti = t[i]
local ty = type(ti)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/good-mth.lua b/Master/texmf-dist/tex/context/base/mkiv/good-mth.lua
index 3473cc205c4..e25782e9ea6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/good-mth.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/good-mth.lua
@@ -1,4 +1,4 @@
-if not modules then modules = { } end modules ['good-mth'] = {
+ if not modules then modules = { } end modules ['good-mth'] = {
version = 1.000,
comment = "companion to font-lib.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
@@ -36,7 +36,7 @@ local new_glyph = nodepool.glyph
local new_hlist = nodepool.hlist
local new_vlist = nodepool.vlist
-local insert_node_after = nuts.insert_after
+local insertnodeafter = nuts.insertafter
local helpers = fonts.helpers
local upcommand = helpers.commands.up
@@ -47,151 +47,151 @@ local prependcommands = helpers.prependcommands
-- experiment, we have to load the definitions immediately as they precede
-- the definition so they need to be initialized in the typescript
-local function withscriptcode(tfmdata,unicode,data,action)
- if type(unicode) == "string" then
- local p, u = match(unicode,"^(.-):(.-)$")
- if u then
- u = tonumber(u)
- if u then
- local slots = fonts.helpers.mathscriptslots(tfmdata,u)
- if slots then
- if p == "*" then
- action(u,data)
- for i=1,#slots do
- action(slots[i],data)
- end
- else
- p = tonumber(p)
- if p then
- action(slots[p],data)
- end
- end
- end
- end
- end
- else
- action(unicode,data)
- end
-end
-
-local function finalize(tfmdata,feature,value)
--- if tfmdata.mathparameters then -- funny, cambria text has this
- local goodies = tfmdata.goodies
- if goodies then
- local virtualized = mathematics.virtualized
- for i=1,#goodies do
- local goodie = goodies[i]
- local mathematics = goodie.mathematics
- local dimensions = mathematics and mathematics.dimensions
- if dimensions then
- if trace_defining then
- report_math("overloading dimensions in %a @ %p",tfmdata.properties.fullname,tfmdata.parameters.size)
- end
- local characters = tfmdata.characters
- local descriptions = tfmdata.descriptions
- local parameters = tfmdata.parameters
- local factor = parameters.factor
- local hfactor = parameters.hfactor
- local vfactor = parameters.vfactor
- local function overloadone(unicode,data)
- local character = characters[unicode]
- if not character then
- local c = virtualized[unicode]
- if c then
- character = characters[c]
- end
- end
- if character then
- local width = data.width
- local height = data.height
- local depth = data.depth
- if trace_defining and (width or height or depth) then
- report_math("overloading dimensions of %C, width %p, height %p, depth %p",
- unicode,width or 0,height or 0,depth or 0)
- end
- if width then character.width = width * hfactor end
- if height then character.height = height * vfactor end
- if depth then character.depth = depth * vfactor end
- --
- local xoffset = data.xoffset
- local yoffset = data.yoffset
- if xoffset == "llx" then
- local d = descriptions[unicode]
- if d then
- xoffset = - d.boundingbox[1] * hfactor
- character.width = character.width + xoffset
- xoffset = rightcommand[xoffset]
- else
- xoffset = nil
- end
- elseif xoffset and xoffset ~= 0 then
- xoffset = rightcommand[xoffset * hfactor]
- else
- xoffset = nil
- end
- if yoffset and yoffset ~= 0 then
- yoffset = upcommand[yoffset * vfactor]
- else
- yoffset = nil
- end
- if xoffset or yoffset then
- local commands = characters.commands
- if commands then
- prependcommands(commands,yoffset,xoffset)
- else
- local slot = charcommand[unicode]
- if xoffset and yoffset then
- character.commands = { xoffset, yoffset, slot }
- elseif xoffset then
- character.commands = { xoffset, slot }
- else
- character.commands = { yoffset, slot }
- end
- end
- end
- elseif trace_defining then
- report_math("no overloading dimensions of %C, not in font",unicode)
- end
- end
- local function overload(dimensions)
- for unicode, data in next, dimensions do
- withscriptcode(tfmdata,unicode,data,overloadone)
- end
- end
- if value == nil then
- value = { "default" }
- end
- if value == "all" or value == true then
- for name, value in next, dimensions do
- overload(value)
- end
- else
- if type(value) == "string" then
- value = utilities.parsers.settings_to_array(value)
- end
- if type(value) == "table" then
- for i=1,#value do
- local d = dimensions[value[i]]
- if d then
- overload(d)
- end
- end
- end
- end
- end
- end
- end
-end
+-- local function withscriptcode(tfmdata,unicode,data,action)
+-- if type(unicode) == "string" then
+-- local p, u = match(unicode,"^(.-):(.-)$")
+-- if u then
+-- u = tonumber(u)
+-- if u then
+-- local slots = fonts.helpers.mathscriptslots(tfmdata,u)
+-- if slots then
+-- if p == "*" then
+-- action(u,data)
+-- for i=1,#slots do
+-- action(slots[i],data)
+-- end
+-- else
+-- p = tonumber(p)
+-- if p then
+-- action(slots[p],data)
+-- end
+-- end
+-- end
+-- end
+-- end
+-- else
+-- action(unicode,data)
+-- end
+-- end
-registerotffeature {
- name = "mathdimensions",
- description = "manipulate math dimensions",
- -- default = true,
- manipulators = {
- base = finalize,
- node = finalize,
- }
-}
+-- local function finalize(tfmdata,feature,value)
+-- -- if tfmdata.mathparameters then -- funny, cambria text has this
+-- local goodies = tfmdata.goodies
+-- if goodies then
+-- local virtualized = mathematics.virtualized
+-- for i=1,#goodies do
+-- local goodie = goodies[i]
+-- local mathematics = goodie.mathematics
+-- local dimensions = mathematics and mathematics.dimensions
+-- if dimensions then
+-- if trace_defining then
+-- report_math("overloading dimensions in %a @ %p",tfmdata.properties.fullname,tfmdata.parameters.size)
+-- end
+-- local characters = tfmdata.characters
+-- local descriptions = tfmdata.descriptions
+-- local parameters = tfmdata.parameters
+-- local factor = parameters.factor
+-- local hfactor = parameters.hfactor
+-- local vfactor = parameters.vfactor
+-- local function overloadone(unicode,data)
+-- local character = characters[unicode]
+-- if not character then
+-- local c = virtualized[unicode]
+-- if c then
+-- character = characters[c]
+-- end
+-- end
+-- if character then
+-- local width = data.width
+-- local height = data.height
+-- local depth = data.depth
+-- if trace_defining and (width or height or depth) then
+-- report_math("overloading dimensions of %C, width %p, height %p, depth %p",
+-- unicode,width or 0,height or 0,depth or 0)
+-- end
+-- if width then character.width = width * hfactor end
+-- if height then character.height = height * vfactor end
+-- if depth then character.depth = depth * vfactor end
+-- --
+-- local xoffset = data.xoffset
+-- local yoffset = data.yoffset
+-- if xoffset == "llx" then
+-- local d = descriptions[unicode]
+-- if d then
+-- xoffset = - d.boundingbox[1] * hfactor
+-- character.width = character.width + xoffset
+-- xoffset = rightcommand[xoffset]
+-- else
+-- xoffset = nil
+-- end
+-- elseif xoffset and xoffset ~= 0 then
+-- xoffset = rightcommand[xoffset * hfactor]
+-- else
+-- xoffset = nil
+-- end
+-- if yoffset and yoffset ~= 0 then
+-- yoffset = upcommand[yoffset * vfactor]
+-- else
+-- yoffset = nil
+-- end
+-- if xoffset or yoffset then
+-- local commands = character.commands
+-- if commands then
+-- prependcommands(commands,yoffset,xoffset)
+-- else
+-- local slot = charcommand[unicode]
+-- if xoffset and yoffset then
+-- character.commands = { xoffset, yoffset, slot }
+-- elseif xoffset then
+-- character.commands = { xoffset, slot }
+-- else
+-- character.commands = { yoffset, slot }
+-- end
+-- end
+-- end
+-- elseif trace_defining then
+-- report_math("no overloading dimensions of %C, not in font",unicode)
+-- end
+-- end
+-- local function overload(dimensions)
+-- for unicode, data in next, dimensions do
+-- withscriptcode(tfmdata,unicode,data,overloadone)
+-- end
+-- end
+-- if value == nil then
+-- value = { "default" }
+-- end
+-- if value == "all" or value == true then
+-- for name, value in next, dimensions do
+-- overload(value)
+-- end
+-- else
+-- if type(value) == "string" then
+-- value = utilities.parsers.settings_to_array(value)
+-- end
+-- if type(value) == "table" then
+-- for i=1,#value do
+-- local d = dimensions[value[i]]
+-- if d then
+-- overload(d)
+-- end
+-- end
+-- end
+-- end
+-- end
+-- end
+-- end
+-- end
+--
+-- registerotffeature {
+-- name = "mathdimensions",
+-- description = "manipulate math dimensions",
+-- -- default = true,
+-- manipulators = {
+-- base = finalize,
+-- node = finalize,
+-- }
+-- }
local function initialize(goodies)
local mathgoodies = goodies.mathematics
@@ -222,119 +222,117 @@ fontgoodies.register("mathematics", initialize)
-- local enabled = false directives.register("fontgoodies.mathkerning",function(v) enabled = v end)
-local function initialize(tfmdata)
--- if enabled and tfmdata.mathparameters then -- funny, cambria text has this
- if tfmdata.mathparameters then -- funny, cambria text has this
- local goodies = tfmdata.goodies
- if goodies then
- local characters = tfmdata.characters
- if characters[0x1D44E] then -- 119886
- -- we have at least an italic a
- for i=1,#goodies do
- local mathgoodies = goodies[i].mathematics
- if mathgoodies then
- local kerns = mathgoodies.kerns
- if kerns then
- local function kernone(unicode,data)
- local chardata = characters[unicode]
- if chardata and (not chardata.mathkerns or data.force) then
- chardata.mathkerns = data
- end
- end
- for unicode, data in next, kerns do
- withscriptcode(tfmdata,unicode,data,kernone)
- end
- return
- end
- end
- end
- else
- return -- no proper math font anyway
- end
- end
- end
-end
-
-registerotffeature {
- name = "mathkerns",
- description = "math kerns",
- -- default = true,
- initializers = {
- base = initialize,
- node = initialize,
- }
-}
-
--- math italics (not really needed)
+-- local function initialize(tfmdata)
+-- -- if enabled and tfmdata.mathparameters then -- funny, cambria text has this
+-- if tfmdata.mathparameters then -- funny, cambria text has this
+-- local goodies = tfmdata.goodies
+-- if goodies then
+-- local characters = tfmdata.characters
+-- if characters[0x1D44E] then -- 119886
+-- -- we have at least an italic a
+-- for i=1,#goodies do
+-- local mathgoodies = goodies[i].mathematics
+-- if mathgoodies then
+-- local kerns = mathgoodies.kerns
+-- if kerns then
+-- local function kernone(unicode,data)
+-- local chardata = characters[unicode]
+-- if chardata and (not chardata.mathkerns or data.force) then
+-- chardata.mathkerns = data
+-- end
+-- end
+-- for unicode, data in next, kerns do
+-- withscriptcode(tfmdata,unicode,data,kernone)
+-- end
+-- return
+-- end
+-- end
+-- end
+-- else
+-- return -- no proper math font anyway
+-- end
+-- end
+-- end
+-- end
--
--- it would be nice to have a \noitalics\font option
+-- registerotffeature {
+-- name = "mathkerns",
+-- description = "math kerns",
+-- -- default = true,
+-- initializers = {
+-- base = initialize,
+-- node = initialize,
+-- }
+-- }
-local function initialize(tfmdata)
- local goodies = tfmdata.goodies
- if goodies then
- local shared = tfmdata.shared
- for i=1,#goodies do
- local mathgoodies = goodies[i].mathematics
- if mathgoodies then
- local mathitalics = mathgoodies.italics
- if mathitalics then
- local properties = tfmdata.properties
- if properties.setitalics then
- mathitalics = mathitalics[file.nameonly(properties.name)] or mathitalics
- if mathitalics then
- if trace_goodies then
- report_goodies("loading mathitalics for font %a",properties.name)
- end
- local corrections = mathitalics.corrections
- local defaultfactor = mathitalics.defaultfactor
- -- properties.mathitalic_defaultfactor = defaultfactor -- we inherit outer one anyway (name will change)
- if corrections then
- fontgoodies.registerpostprocessor(tfmdata, function(tfmdata) -- this is another tfmdata (a copy)
- -- better make a helper so that we have less code being defined
- local properties = tfmdata.properties
- local parameters = tfmdata.parameters
- local characters = tfmdata.characters
- properties.mathitalic_defaultfactor = defaultfactor
- properties.mathitalic_defaultvalue = defaultfactor * parameters.quad
- if trace_goodies then
- report_goodies("assigning mathitalics for font %a",properties.name)
- end
- local quad = parameters.quad
- local hfactor = parameters.hfactor
- for k, v in next, corrections do
- local c = characters[k]
- if c then
- if v > -1 and v < 1 then
- c.italic = v * quad
- else
- c.italic = v * hfactor
- end
- else
- report_goodies("invalid mathitalics entry %U for font %a",k,properties.name)
- end
- end
- end)
- end
- return -- maybe not as these can accumulate
- end
- end
- end
- end
- end
- end
-end
-
-registerotffeature {
- name = "mathitalics",
- description = "additional math italic corrections",
- -- default = true,
- initializers = {
- base = initialize,
- node = initialize,
- }
-}
-
--- fontgoodies.register("mathitalics", initialize)
+-- -- math italics (not really needed)
+-- --
+-- -- it would be nice to have a \noitalics\font option
+--
+-- local function initialize(tfmdata)
+-- local goodies = tfmdata.goodies
+-- if goodies then
+-- local shared = tfmdata.shared
+-- for i=1,#goodies do
+-- local mathgoodies = goodies[i].mathematics
+-- if mathgoodies then
+-- local mathitalics = mathgoodies.italics
+-- if mathitalics then
+-- local properties = tfmdata.properties
+-- if properties.setitalics then
+-- mathitalics = mathitalics[file.nameonly(properties.name)] or mathitalics
+-- if mathitalics then
+-- if trace_goodies then
+-- report_goodies("loading mathitalics for font %a",properties.name)
+-- end
+-- local corrections = mathitalics.corrections
+-- local defaultfactor = mathitalics.defaultfactor
+-- -- properties.mathitalic_defaultfactor = defaultfactor -- we inherit outer one anyway (name will change)
+-- if corrections then
+-- fontgoodies.registerpostprocessor(tfmdata, function(tfmdata) -- this is another tfmdata (a copy)
+-- -- better make a helper so that we have less code being defined
+-- local properties = tfmdata.properties
+-- local parameters = tfmdata.parameters
+-- local characters = tfmdata.characters
+-- properties.mathitalic_defaultfactor = defaultfactor
+-- properties.mathitalic_defaultvalue = defaultfactor * parameters.quad
+-- if trace_goodies then
+-- report_goodies("assigning mathitalics for font %a",properties.name)
+-- end
+-- local quad = parameters.quad
+-- local hfactor = parameters.hfactor
+-- for k, v in next, corrections do
+-- local c = characters[k]
+-- if c then
+-- if v > -1 and v < 1 then
+-- c.italic = v * quad
+-- else
+-- c.italic = v * hfactor
+-- end
+-- else
+-- report_goodies("invalid mathitalics entry %U for font %a",k,properties.name)
+-- end
+-- end
+-- end)
+-- end
+-- return -- maybe not as these can accumulate
+-- end
+-- end
+-- end
+-- end
+-- end
+-- end
+-- end
+--
+-- registerotffeature {
+-- name = "mathitalics",
+-- description = "additional math italic corrections",
+-- -- default = true,
+-- initializers = {
+-- base = initialize,
+-- node = initialize,
+-- }
+-- }
local function mathradicalaction(n,h,v,font,mchar,echar)
local characters = fontcharacters[font]
@@ -361,7 +359,7 @@ local function mathradicalaction(n,h,v,font,mchar,echar)
local kern = new_kern(height-v)
list = setlink(kern,list)
local list = new_vlist(kern)
- insert_node_after(n,n,list)
+ insertnodeafter(n,n,list)
end
local function mathhruleaction(n,h,v,font,bchar,mchar,echar)
@@ -397,7 +395,7 @@ local function mathhruleaction(n,h,v,font,bchar,mchar,echar)
local kern = new_kern(height-v)
list = setlink(kern,list)
local list = new_vlist(kern)
- insert_node_after(n,n,list)
+ insertnodeafter(n,n,list)
end
local function initialize(tfmdata)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-con.lua b/Master/texmf-dist/tex/context/base/mkiv/grph-con.lua
index b3d39f0bd93..fdae2223bda 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-con.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/grph-con.lua
@@ -29,6 +29,7 @@ local variables = interfaces.variables
local v_high = variables.high
local v_low = variables.low
local v_medium = variables.medium
+local v_yes = variables.yes
local figures = figures
@@ -48,6 +49,10 @@ do -- eps | ps
local epsconverter = converters.eps
converters.ps = epsconverter
+ local function gscrop(specification)
+ return (specification and specification.crop == v_yes) and "-dEPSCrop" or ""
+ end
+
local resolutions = {
[v_low] = "screen",
[v_medium] = "ebook",
@@ -68,7 +73,7 @@ do -- eps | ps
-dBATCH
-dAutoRotatePages=/None
-dPDFSETTINGS=/%presets%
- -dEPSCrop
+ %crop%
-dCompatibilityLevel=%level%
-sOutputFile=%newname%
%colorspace%
@@ -81,6 +86,7 @@ do -- eps | ps
presets = "string",
level = "string",
colorspace = "string",
+ -- crop = "string",
},
}
@@ -119,7 +125,7 @@ do -- eps | ps
return tmpname
end
- function epsconverter.pdf(oldname,newname,resolution,colorspace) -- the resolution interface might change
+ function epsconverter.pdf(oldname,newname,resolution,colorspace,specification) -- the resolution interface might change
local presets = resolutions[resolution or "high"] or resolutions.high
local level = codeinjections.getformatoption("pdf_level") or "1.3"
local tmpname = oldname
@@ -141,13 +147,14 @@ do -- eps | ps
presets = presets,
level = tostring(level),
colorspace = colorspace,
+ crop = gscrop(specification),
}
if tmpname ~= oldname then
os.remove(tmpname)
end
end
- epsconverter["gray.pdf"] = function(oldname,newname,resolution) -- the resolution interface might change
+ epsconverter["gray.pdf"] = function(oldname,newname,resolution,_,specification) -- the resolution interface might change
epsconverter.pdf(oldname,newname,resolution,"gray")
end
@@ -211,11 +218,16 @@ do -- svg
return new and "filename" or suffix
end
+ local function inkscapecrop(specification)
+ return (specification and specification.crop == v_yes) and "--export-area-drawing" or ""
+ end
+
local runner = sandbox.registerrunner {
name = "svg to something",
program = "inkscape",
template = longtostring [[
%oldname%
+ %crop%
--export-dpi=%resolution%
--export-%format%=%newname%
]],
@@ -226,7 +238,7 @@ do -- svg
resolution = "string",
},
defaults = {
- format = format,
+ format = "pdf",
resolution = "600",
}
}
@@ -235,10 +247,11 @@ do -- svg
runner = runner,
}
- function svgconverter.pdf(oldname,newname)
+ function svgconverter.pdf(oldname,newname,resolution,arguments,specification)
runner {
format = inkscapeformat("pdf"),
resolution = "600",
+ crop = inkscapecrop(specification),
newname = expandfilename(newname),
oldname = expandfilename(oldname),
}
@@ -248,6 +261,7 @@ do -- svg
runner {
format = inkscapeformat("png"),
resolution = "600",
+ crop = inkscapecrop(specification),
newname = expandfilename(newname),
oldname = expandfilename(oldname),
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-fil.lua b/Master/texmf-dist/tex/context/base/mkiv/grph-fil.lua
index b3980783038..afb303acd17 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-fil.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/grph-fil.lua
@@ -42,82 +42,154 @@ end
job.register('job.files.collected', tobesaved, initializer)
-local runner = sandbox.registerrunner {
+-- When there is a runpath specified, we're already there, so then we only need to
+-- pass the orginal path. But we pass it because it will prevent prepending the
+-- current direction to the given name.
+
+local contextrunner = sandbox.registerrunner {
name = "hashed context run",
program = "context",
- template = [[%options% %filename%]],
+ template = [[%options% %?path: --path=%path% ?% %?runpath: --runpath=%runpath% ?% %filename%]],
checkers = {
options = "string",
filename = "readable",
+ path = "string",
+ runpath = "string",
}
}
-function jobfiles.run(name,action)
- local usedname = addsuffix(name,inputsuffix) -- we assume tex if not set
- local oldchecksum = collected[usedname]
- local newchecksum = checksum(usedname)
- local resultfile = replacesuffix(usedname,resultsuffix)
- local tobedone = false
- if jobfiles.forcerun then
- tobedone = true
- if trace_run then
- report_run("processing file, changes in %a, %s",name,"processing forced")
+-- we can also use:
+--
+-- local jobvariables = job.variables
+-- jobvariables.getchecksum(tag)
+-- jobvariables.makechecksum(data)
+-- jobvariables.setchecksum(tag,checksum)
+
+-- The runpath features makes things more complex than needed, so we need to wrap
+-- that some day in a helper. This is also very sensitive for both being set!
+
+function jobfiles.run(action)
+ local filename = action.filename
+ if filename and filename ~= "" then
+ local result = action.result
+ local runner = action.runner or contextrunner
+ local path = action.path
+if not isfile(filename) and path and path ~= "" then
+ filename = file.join(path,filename)
+end
+ local oldchecksum = collected[filename]
+ local newchecksum = checksum(filename)
+-- print(filename,oldchecksum,newchecksum)
+ local tobedone = false
+ local forcerun = action.forcerun or jobfiles.forcerun
+ if not result then
+ result = replacesuffix(filename,resultsuffix)
+ action.result = result
end
- end
- if not tobedone and not oldchecksum then
- tobedone = true
- if trace_run then
- report_run("processing file, changes in %a, %s",name,"no checksum yet")
+ if forcerun then
+ tobedone = true
+ if trace_run then
+ report_run("processing file, changes in %a, %s",filename,"processing forced")
+ end
end
- end
- if not tobedone and oldchecksum ~= newchecksum then
- tobedone = true
- if trace_run then
- report_run("processing file, changes in %a, %s",name,"checksum mismatch")
+ if not tobedone and not oldchecksum then
+ tobedone = true
+ if trace_run then
+ report_run("processing file, changes in %a, %s",filename,"no checksum yet")
+ end
end
- end
- if not tobedone and not isfile(resultfile) then
- tobedone = true
- if trace_run then
- report_run("processing file, changes in %a, %s",name,"no result file")
+ if not tobedone and oldchecksum ~= newchecksum then
+ tobedone = true
+ if trace_run then
+ report_run("processing file, changes in %a, %s",filename,"checksum mismatch")
+ end
end
- end
- if tobedone then
- local ta = type(action)
- if ta == "function" then
- action(name)
- elseif ta == "string" and action ~= "" then
- -- can be anything but we assume it gets checked by the sandbox
- os.execute(action)
- elseif ta == "table" then
- runner(action)
- else
- report_run("processing file, no action given for processing %a",name)
+ if not tobedone and not isfile(result) then
+ tobedone = true
+ if trace_run then
+ report_run("processing file, changes in %a, %s",filename,"no result file")
+ end
end
- elseif trace_run then
- report_run("processing file, no changes in %a, not processed",name)
+ if tobedone then
+ local kind = type(runner)
+ if kind == "function" then
+ if trace_run then
+ report_run("processing file, command: %s",action.name or "unknown")
+ end
+ -- We can have a sandbox.registerrunner here in which case we need to make
+ -- sure that we don't feed a function into the checker. So one cannot use a
+ -- variable named "runner" in the template but that's no big deal.
+ local r = action.runner
+ action.runner = nil
+ runner(action)
+ action.runner = r
+ elseif kind == "string" then
+ -- can be anything but we assume it gets checked by the sandbox
+ if trace_run then
+ report_run("processing file, command: %s",runner)
+ end
+ os.execute(runner)
+ else
+ report_run("processing file, changes in %a, %s",filename,"no valid runner")
+ end
+ elseif trace_run then
+ report_run("processing file, no changes in %a, %s",filename,"not processed")
+ end
+ tobesaved[filename] = newchecksum
+ else
+ -- silently ignore error
end
- tobesaved[name] = newchecksum
end
--
local done = { }
-function jobfiles.context(name,options)
+local function analyzed(name,options)
+ local usedname = addsuffix(name,inputsuffix) -- we assume tex if not set
+ local resultname = replacesuffix(name,resultsuffix) -- we assume tex if not set
+ local pathname = file.pathpart(usedname)
+ local path = environment.arguments.path -- sic, no runpath
+ local runpath = environment.arguments.runpath
+ local resultname = replacesuffix(name,resultsuffix) -- we assume tex if not set
+ if runpath and runpath ~= "" then
+ -- not really needed but probably more robust for local leftovers
+ resultname = file.join(runpath,file.basename(resultname))
+ end
+ if path ~= "" then
+ if path then
+ path = file.join(path,pathname)
+ else
+ path = pathname
+ end
+ usedname = file.basename(usedname)
+ end
+ return {
+ options = options,
+ path = path,
+ filename = usedname,
+ result = resultname,
+ runpath = runpath,
+ }
+end
+
+function jobfiles.context(name,options) -- runpath ?
if type(name) == "table" then
local result = { }
for i=1,#name do
result[#result+1] = jobfiles.context(name[i],options)
end
return result
- else
- local result = replacesuffix(name,resultsuffix)
+ elseif name ~= "" then
+ local action = analyzed(name,options)
+ local result = action.result
if not done[result] then
- jobfiles.run(name, { options = options, filename = name })
+ jobfiles.run(action)
done[result] = true
end
return result
+ else
+ return { }
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-img.lua b/Master/texmf-dist/tex/context/base/mkiv/grph-img.lua
index 0dc5efa7038..43299a84caa 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-img.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/grph-img.lua
@@ -16,7 +16,7 @@ local round = math.round
local concat = table.concat
local suffixonly = file.suffix
-local newreader = io.newreader
+local newreader = io.newreader -- needs checking 0/1 based
local setmetatableindex = table.setmetatableindex
local setmetatablecall = table.setmetatablecall
@@ -24,6 +24,15 @@ local graphics = graphics or { }
local identifiers = { }
graphics.identifiers = identifiers
+local function checkedmethod(filename,method)
+ if method ~= "string" then
+ local found, data = resolvers.loadbinfile(filename)
+ return data, "string"
+ else
+ return filename, method
+ end
+end
+
do
local colorspaces = {
@@ -222,6 +231,7 @@ do
specification.error = "invalid filename"
return specification -- error
end
+ filename, method = checkedmethod(filename,method)
local f = newreader(filename,method)
if not f then
specification.error = "unable to open file"
@@ -454,6 +464,7 @@ do
specification.error = "invalid filename"
return specification -- error
end
+ filename, method = checkedmethod(filename,method)
local f = newreader(filename,method)
if not f then
specification.error = "unable to open file"
@@ -558,6 +569,7 @@ do
specification.error = "invalid filename"
return specification -- error
end
+ filename, method = checkedmethod(filename,method)
local f = newreader(filename,method)
if not f then
specification.error = "unable to open file"
@@ -727,21 +739,18 @@ end
function graphics.identify(filename,filetype)
local identify = filetype and identifiers[filetype]
- if identify then
- return identify(filename)
+ if not identify then
+ identify = identifiers[suffixonly(filename)]
end
- local identify = identifiers[suffixonly(filename)]
if identify then
- identify = identify(filename)
+ return identify(filename)
else
- identify = {
+ return {
filename = filename,
filetype = filetype,
error = "identification failed",
}
end
- -- inspect(identify)
- return identify
end
-- inspect(identifiers.jpg("t:/sources/hacker.jpg"))
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-inc.lua b/Master/texmf-dist/tex/context/base/mkiv/grph-inc.lua
index 6fdf74c08da..f8dcc658b5f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-inc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/grph-inc.lua
@@ -78,9 +78,10 @@ local resolveprefix = resolvers.resolve
local texgetbox = tex.getbox
local texsetbox = tex.setbox
-local hpack = node.hpack
+local hpack = nodes.hpack
local new_latelua = nodes.pool.latelua
+local new_hlist = nodes.pool.hlist
local context = context
@@ -554,6 +555,11 @@ function figures.setpaths(locationset,pathlist)
end
end
end
+ -- new
+ if environment.arguments.path then
+ table.insert(t,1,environment.arguments.path)
+ end
+ --
figure_paths = t
last_pathlist = pathlist
figures.paths = figure_paths
@@ -587,6 +593,7 @@ local function new() -- we could use metatables status -> used -> request but it
controls = false,
display = false,
mask = false,
+ crop = false,
conversion = false,
resolution = false,
color = false,
@@ -766,18 +773,20 @@ local function register(askedname,specification)
local conversion = wipe(specification.conversion)
local resolution = wipe(specification.resolution)
local arguments = wipe(specification.arguments)
+ local crop = wipe(specification.crop)
local newformat = conversion
if not newformat or newformat == "" then
newformat = defaultformat
end
if trace_conversion then
- report_inclusion("checking conversion of %a, fullname %a, old format %a, new format %a, conversion %a, resolution %a, arguments %a",
+ report_inclusion("checking conversion of %a, fullname %a, old format %a, new format %a, conversion %a, resolution %a, crop %a, arguments %a",
askedname,
specification.fullname,
format,
newformat,
conversion or "default",
resolution or "default",
+ crop or "default",
arguments or ""
)
end
@@ -793,7 +802,7 @@ local function register(askedname,specification)
end
end
-- end of quick hack
- local converter = (not remapper) and (newformat ~= format or resolution or arguments) and converters[format]
+ local converter = (not remapper) and (newformat ~= format or resolution or arguments) and converters[format] -- no crop here
if converter then
local okay = converter[newformat]
if okay then
@@ -813,6 +822,10 @@ local function register(askedname,specification)
local oldname = specification.fullname
local newpath = file.dirname(oldname)
local oldbase = file.basename(oldname)
+ local runpath = environment.arguments.runpath
+ if runpath and runpath ~= "" and newpath == environment.arguments.path then
+ newpath = runpath
+ end
--
-- problem: we can have weird filenames, like a.b.c (no suffix) and a.b.c.gif
-- so we cannot safely remove a suffix (unless we do that for known suffixes)
@@ -853,6 +866,10 @@ local function register(askedname,specification)
if arguments then
hash = hash .. "[a:" .. arguments .. "]"
end
+ if crop then
+ hash = hash .. "[c:" .. crop .. "]"
+ end
+ newbase = gsub(newbase,"%.","_") -- nicer to have no suffix in the name
if hash ~= "" then
newbase = newbase .. "_" .. md5.hex(hash)
end
@@ -877,7 +894,7 @@ local function register(askedname,specification)
if trace_conversion then
report_inclusion("converting %a (%a) from %a to %a",askedname,oldname,format,newformat)
end
- converter(oldname,newname,resolution or "", arguments or "")
+ converter(oldname,newname,resolution or "", arguments or "",specification) -- in retrospect a table
else
if trace_conversion then
report_inclusion("no need to convert %a (%a) from %a to %a",askedname,oldname,format,newformat)
@@ -971,10 +988,12 @@ local function locate(request) -- name, format, cache
local askedconversion = request.conversion
local askedresolution = request.resolution
local askedarguments = request.arguments
+ local askedcrop = request.crop
local askedhash = f_hash_part(
askedname,
askedconversion or "default",
askedresolution or "default",
+ askedcrop or "default",
askedarguments or ""
)
local foundname = figures_found[askedhash]
@@ -1029,6 +1048,7 @@ local function locate(request) -- name, format, cache
cache = askedcache,
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments,
})
end
@@ -1066,6 +1086,7 @@ local function locate(request) -- name, format, cache
conversion = askedconversion,
resolution = askedresolution,
arguments = askedarguments,
+ crop = askedcrop,
internal = internal,
})
elseif quitscanning then
@@ -1086,6 +1107,7 @@ local function locate(request) -- name, format, cache
cache = askedcache,
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments,
})
end
@@ -1105,6 +1127,7 @@ local function locate(request) -- name, format, cache
cache = askedcache,
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments,
})
end
@@ -1119,6 +1142,7 @@ local function locate(request) -- name, format, cache
cache = askedcache,
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments,
})
end
@@ -1143,6 +1167,7 @@ local function locate(request) -- name, format, cache
cache = askedcache,
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments,
})
end
@@ -1178,6 +1203,7 @@ local function locate(request) -- name, format, cache
cache = askedcache,
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments
})
end
@@ -1206,6 +1232,7 @@ local function locate(request) -- name, format, cache
cache = askedcache,
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments,
})
end
@@ -1231,6 +1258,7 @@ local function locate(request) -- name, format, cache
cache = askedcache,
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments,
})
end
@@ -1241,6 +1269,7 @@ local function locate(request) -- name, format, cache
return register(askedname, { -- these two are needed for hashing 'found'
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments,
})
end
@@ -1373,7 +1402,7 @@ end
function figures.dummy(data)
data = data or callstack[#callstack] or lastfiguredata
local dr, du, nr = data.request, data.used, figures.boxnumber
- local box = hpack(node.new("hlist")) -- we need to set the dir (luatex 0.60 buglet)
+ local box = hpack(new_hlist()) -- we need to set the dir (luatex 0.60 buglet)
du.width = du.width or figures.defaultwidth
du.height = du.height or figures.defaultheight
du.depth = du.depth or figures.defaultdepth
@@ -1455,6 +1484,7 @@ function checkers.generic(data)
local size = dr.size or "crop"
local color = dr.color or "natural"
local mask = dr.mask or "none"
+ local crop = dr.crop or "none"
local conversion = dr.conversion
local resolution = dr.resolution
local arguments = dr.arguments
@@ -1476,6 +1506,7 @@ function checkers.generic(data)
size,
color,
mask,
+ crop,
conversion,
resolution,
arguments
@@ -2071,6 +2102,7 @@ implement {
{ "preview" },
{ "display" },
{ "mask" },
+ { "crop" },
{ "conversion" },
{ "resolution" },
{ "color" },
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-inc.mkiv b/Master/texmf-dist/tex/context/base/mkiv/grph-inc.mkiv
index 0b8065989fc..05d4c3a572a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-inc.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/grph-inc.mkiv
@@ -111,6 +111,7 @@
\c!ownerpassword =,
\c!compact =,
\c!cmyk =,
+ \c!crop =\v!yes,
]
%D Defining figures.
@@ -370,6 +371,7 @@
compact {\externalfigureparameter\c!compact}% experiment, share fonts
userpassword {\externalfigureparameter\c!userpassword}%
ownerpassword{\externalfigureparameter\c!ownerpassword}%
+ crop {\externalfigureparameter\c!crop}%
\ifx\p_width\empty \else
width \dimexpr\p_width\relax
\fi
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-pat.lua b/Master/texmf-dist/tex/context/base/mkiv/grph-pat.lua
index 4310af672b7..7954e9fee0f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-pat.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/grph-pat.lua
@@ -9,7 +9,8 @@ if not modules then modules = { } end modules ['grph-pat'] = {
-- This is just a proof of concept. Viewers behave different (offsets) and Acrobat doesn't
-- show xform based patterns.
--
--- This module will be cleaned up and use codeinjections and such.
+-- This module will be cleaned up and use codeinjections and such. It should be in the lpdf
+-- namespace.
local texsetbox = tex.setbox
local texgetbox = tex.getbox
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-raw.lua b/Master/texmf-dist/tex/context/base/mkiv/grph-raw.lua
index 62e96fcc9d7..73f0d51755e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-raw.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/grph-raw.lua
@@ -22,7 +22,8 @@ function figures.bitmapimage(t)
local xresolution = tonumber(t.xresolution)
local yresolution = tonumber(t.yresolution)
if data and xresolution and yresolution then
- local width, height = t.width or "", t.height or ""
+ local width = t.width or ""
+ local height = t.height or ""
local n = backends.nodeinjections.injectbitmap {
xresolution = xresolution,
yresolution = yresolution,
@@ -30,9 +31,11 @@ function figures.bitmapimage(t)
height = height ~= "" and texsp(height) or nil,
data = data,
colorspace = t.colorspace,
+ format = t.format,
}
if n then
- context.hbox(n)
+ -- context.hpack(n)
+ context(nodes.hpack(n))
else
report_bitmap("format no supported by backend")
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-dir.lua b/Master/texmf-dist/tex/context/base/mkiv/l-dir.lua
index 325039cb1e6..ac8e2f4e8e1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-dir.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-dir.lua
@@ -230,18 +230,18 @@ if onwindows then -- we could sanitize here
-- pattern = Ct {
pattern = {
- [1] = (Cs(P(".") + slash^1) + Cs(R("az","AZ") * P(":") * slash^0) + Cc("./")) * V(2) * V(3),
- [2] = Cs(((1-S("*?/\\"))^0 * slash)^0),
- [3] = Cs(P(1)^0)
+ (Cs(P(".") + slash^1) + Cs(R("az","AZ") * P(":") * slash^0) + Cc("./")) * V(2) * V(3),
+ Cs(((1-S("*?/\\"))^0 * slash)^0),
+ Cs(P(1)^0)
}
else -- assume unix
-- pattern = Ct {
pattern = {
- [1] = (C(P(".") + P("/")^1) + Cc("./")) * V(2) * V(3),
- [2] = C(((1-S("*?/"))^0 * P("/"))^0),
- [3] = C(P(1)^0)
+ (C(P(".") + P("/")^1) + Cc("./")) * V(2) * V(3),
+ C(((1-S("*?/"))^0 * P("/"))^0),
+ C(P(1)^0)
}
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-file.lua b/Master/texmf-dist/tex/context/base/mkiv/l-file.lua
index d0af94f09d4..9f8fd654833 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-file.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-file.lua
@@ -456,7 +456,7 @@ function file.join(one, two, three, ...)
if not two then
return one == "" and one or lpegmatch(reslasher,one)
end
- if one == "" then
+ if not one or one == "" then
return lpegmatch(stripper,three and concat({ two, three, ... },"/") or two)
end
if lpegmatch(isnetwork,one) then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-gzip.lua b/Master/texmf-dist/tex/context/base/mkiv/l-gzip.lua
index f141b5ebbbe..aadb781da38 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-gzip.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-gzip.lua
@@ -5,176 +5,4 @@ if not modules then modules = { } end modules ['l-gzip'] = {
license = "see context related readme files"
}
--- We only have a few official methods here:
---
--- local decompressed = gzip.load (filename)
--- local resultsize = gzip.save (filename,compresslevel)
--- local compressed = gzip.compress (str,compresslevel)
--- local decompressed = gzip.decompress (str)
--- local iscompressed = gzip.compressed (str)
--- local suffix, okay = gzip.suffix (filename)
---
--- In LuaMetaTeX we have only xzip which implements a very few methods:
---
--- compress (str,level,method,window,memory,strategy)
--- decompress (str,window)
--- adler32 (str,checksum)
--- crc32 (str,checksum)
---
--- Special window values are:
---
--- flate : - 15
--- zlib : 15
--- gzip : 15 | 16
--- auto : 15 | 32
-
-gzip = gzip or { } -- so in luatex we keep the old ones too
-
-if not zlib then
- zlib = xzip -- in luametatex we shadow the old one
-elseif not xzip then
- xzip = zlib
-end
-
-if zlib then
-
- local suffix = file.suffix
- local suffixes = file.suffixes
- local find = string.find
- local openfile = io.open
-
- local gzipwindow = 15 + 16 -- +16: gzip, +32: gzip|zlib
- local gziplevel = 3
- local identifier = "^\x1F\x8B\x08"
-
- local compress = zlib.compress
- local decompress = zlib.decompress
-
- function gzip.load(filename)
- local f = openfile(filename,"rb")
- if not f then
- -- invalid file
- else
- local data = f:read("*all")
- f:close()
- if data and data ~= "" then
- if suffix(filename) == "gz" then
- data = decompress(data,gzipwindow)
- end
- return data
- end
- end
- end
-
- function gzip.save(filename,data,level)
- if suffix(filename) ~= "gz" then
- filename = filename .. ".gz"
- end
- local f = openfile(filename,"wb")
- if f then
- data = compress(data or "",level or gziplevel,nil,gzipwindow)
- f:write(data)
- f:close()
- return #data
- end
- end
-
- function gzip.suffix(filename)
- local suffix, extra = suffixes(filename)
- local gzipped = extra == "gz"
- return suffix, gzipped
- end
-
- function gzip.compressed(s)
- return s and find(s,identifier)
- end
-
- function gzip.compress(s,level)
- if s and not find(s,identifier) then -- the find check might go away
- if not level then
- level = gziplevel
- elseif level <= 0 then
- return s
- elseif level > 9 then
- level = 9
- end
- return compress(s,level or gziplevel,nil,gzipwindow) or s
- end
- end
-
- function gzip.decompress(s)
- if s and find(s,identifier) then
- return decompress(s,gzipwindow)
- else
- return s
- end
- end
-
-end
-
--- In luametatex we can use this one but it doesn't look like there wil be stream
--- support so for now we still use zlib (the performance difference is not that
--- spectacular in our usage.
-
--- if flate then
---
--- local type = type
--- local find = string.find
---
--- local compress = flate.gz_compress
--- local decompress = flate.gz_decompress
---
--- local absmax = 128*1024*1024
--- local initial = 64*1024
--- local identifier = "^\x1F\x8B\x08"
---
--- function gzip.compressed(s)
--- return s and find(s,identifier)
--- end
---
--- function gzip.compress(s,level)
--- if s and not find(s,identifier) then -- the find check might go away
--- if not level then
--- level = 3
--- elseif level <= 0 then
--- return s
--- elseif level > 9 then
--- level = 9
--- end
--- return compress(s,level) or s
--- end
--- end
---
--- function gzip.decompress(s,size,iterate)
--- if s and find(s,identifier) then
--- if type(size) ~= "number" then
--- size = initial
--- end
--- if size > absmax then
--- size = absmax
--- end
--- if type(iterate) == "number" then
--- max = size * iterate
--- elseif iterate == nil or iterate == true then
--- iterate = true
--- max = absmax
--- end
--- if max > absmax then
--- max = absmax
--- end
--- while true do
--- local d = decompress(s,size)
--- if d then
--- return d
--- end
--- size = 2 * size
--- if not iterate or size > max then
--- return false
--- end
--- end
--- else
--- return s
--- end
--- end
---
--- end
+-- now in util-zip
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-io.lua b/Master/texmf-dist/tex/context/base/mkiv/l-io.lua
index a955262a31e..6bf7a97bda2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-io.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-io.lua
@@ -147,9 +147,12 @@ function io.copydata(source,target,action)
end
end
-function io.savedata(filename,data,joiner)
- local f = open(filename,"wb")
+function io.savedata(filename,data,joiner,append)
+ local f = open(filename,append and "ab" or "wb")
if f then
+ if append and joiner and f:seek("end") > 0 then
+ f:write(joiner)
+ end
if type(data) == "table" then
f:write(concat(data,joiner or ""))
elseif type(data) == "function" then
@@ -288,7 +291,8 @@ end
io.noflines = noflines
--- inlined is faster ... beware, better use util-fil
+-- inlined is faster ... beware, better use util-fil so these are obsolete
+-- and will go
local nextchar = {
[ 4] = function(f)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-lpeg.lua b/Master/texmf-dist/tex/context/base/mkiv/l-lpeg.lua
index b0868ba4886..5f3bea08ca6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-lpeg.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-lpeg.lua
@@ -507,7 +507,7 @@ end
-- todo: cache when string
-function lpeg.replacer(one,two,makefunction,isutf) -- in principle we should sort the keys
+function lpeg.replacer(one,two,makefunction,isutf) -- in principle we should sort the keys but we have a better one anyway
local pattern
local u = isutf and utf8char or 1
if type(one) == "table" then
@@ -665,12 +665,12 @@ end
-- lpeg.print(lpeg.P("a","b","c"))
-- lpeg.print(lpeg.S("a","b","c"))
--- print(lpeg.count("äáàa",lpeg.P("á") + lpeg.P("à")))
--- print(lpeg.count("äáàa",lpeg.UP("áà")))
--- print(lpeg.count("äáàa",lpeg.US("àá")))
--- print(lpeg.count("äáàa",lpeg.UR("aá")))
--- print(lpeg.count("äáàa",lpeg.UR("àá")))
--- print(lpeg.count("äáàa",lpeg.UR(0x0000,0xFFFF)))
+-- print(lpeg.counter(lpeg.P("á") + lpeg.P("à"))("äáàa"))
+-- print(lpeg.counter(lpeg.UP("áà"))("äáàa"))
+-- print(lpeg.counter(lpeg.US("àá"))("äáàa"))
+-- print(lpeg.counter(lpeg.UR("aá"))("äáàa"))
+-- print(lpeg.counter(lpeg.UR("àá"))("äáàa"))
+-- print(lpeg.counter(lpeg.UR(0x0000,0xFFFF)))
function lpeg.is_lpeg(p)
return p and lpegtype(p) == "pattern"
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-macro-imp-optimize.lua b/Master/texmf-dist/tex/context/base/mkiv/l-macro-imp-optimize.lua
index 1ecaef7d4c5..c343dfa742e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-macro-imp-optimize.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-macro-imp-optimize.lua
@@ -28,7 +28,7 @@ if LUAVERSION >= 5.3 and lua.macros then
-- This indirect method makes it possible to use both the functions
-- and the inline variant (which often looks better). Also, a mixed
- -- 5,2 and 5.3 source is not possible because the 5.2 doesn't deal
+ -- 5.2 and 5.3 source is not possible because the 5.2 doesn't deal
-- with the newer 5.3 syntax.
-- We need to check for 64 usage: 0xFFFFFFFFFFFFFFFF (-1)
@@ -44,6 +44,7 @@ lua.macros.resolvestring [[
#define extract1(a,b) ((a >> b) & 0x01)
#define extract2(a,b) ((a >> b) & 0x03)
#define extract4(a,b) ((a >> b) & 0x0F)
+#define extract8(a,b) ((a >> b) & 0xFF)
#define lshift(a,b) (((a)<<(b))&0xFFFFFFFF)
#define rshift(a,b) (((a)>>(b))&0xFFFFFFFF)
#define intdiv(a,b) ((a)//(b))
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-math.lua b/Master/texmf-dist/tex/context/base/mkiv/l-math.lua
index e5668a5db0a..6105bc3c2d7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-math.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-math.lua
@@ -14,9 +14,19 @@ end
if not math.round then
- local floor = math.floor
+ if xmath then
+
+ math.round = xmath.round
+
+ else
- function math.round(x) return floor(x + 0.5) end
+ local floor = math.floor
+
+ function math.round(x)
+ return x < 0 and -floor(-x + 0.5) or floor(x + 0.5)
+ end
+
+ end
end
@@ -141,7 +151,7 @@ if not math.ult then
local floor = math.floor
- function math.tointeger(m,n)
+ function math.ult(m,n)
-- not ok but i'm not motivated to look into it now
return floor(m) < floor(n) -- unsigned comparison needed
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-number.lua b/Master/texmf-dist/tex/context/base/mkiv/l-number.lua
index 9fd2f82f785..0ec60880d75 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-number.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-number.lua
@@ -1,16 +1,13 @@
if not modules then modules = { } end modules ['l-number'] = {
version = 1.001,
- comment = "companion to luat-lib.mkiv",
+ comment = "companion to luat-lib.mkxl",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "see context related readme files"
}
--- this module will be replaced when we have the bit library .. the number based sets
--- might go away
-
local tostring, tonumber = tostring, tonumber
-local format, floor, match, rep = string.format, math.floor, string.match, string.rep
+local format, match, rep = string.format, string.match, string.rep
local concat, insert = table.concat, table.insert
local lpegmatch = lpeg.match
local floor = math.floor
@@ -18,51 +15,6 @@ local floor = math.floor
number = number or { }
local number = number
--- begin obsolete code --
-
--- if bit32 then
---
--- local btest, bor = bit32.btest, bit32.bor
---
--- function number.bit(p)
--- return 2 ^ (p - 1) -- 1-based indexing
--- end
---
--- number.hasbit = btest
--- number.setbit = bor
---
--- function number.setbit(x,p) -- why not bor?
--- return btest(x,p) and x or x + p
--- end
---
--- function number.clearbit(x,p)
--- return btest(x,p) and x - p or x
--- end
---
--- else
---
--- -- http://ricilake.blogspot.com/2007/10/iterating-bits-in-lua.html
---
--- function number.bit(p)
--- return 2 ^ (p - 1) -- 1-based indexing
--- end
---
--- function number.hasbit(x, p) -- typical call: if hasbit(x, bit(3)) then ...
--- return x % (p + p) >= p
--- end
---
--- function number.setbit(x, p)
--- return (x % (p + p) >= p) and x or x + p
--- end
---
--- function number.clearbit(x, p)
--- return (x % (p + p) >= p) and x - p or x
--- end
---
--- end
-
--- end obsolete code --
-
-- print(number.tobitstring(8))
-- print(number.tobitstring(14))
-- print(number.tobitstring(66))
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-os.lua b/Master/texmf-dist/tex/context/base/mkiv/l-os.lua
index 73841074c46..faae76881ac 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-os.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-os.lua
@@ -26,22 +26,27 @@ if not modules then modules = { } end modules ['l-os'] = {
-- math.randomseed(tonumber(string.sub(string.reverse(tostring(math.floor(socket.gettime()*10000))),1,6)))
local os = os
-local date, time = os.date, os.time
+local date, time, difftime = os.date, os.time, os.difftime
local find, format, gsub, upper, gmatch = string.find, string.format, string.gsub, string.upper, string.gmatch
local concat = table.concat
-local random, ceil, randomseed = math.random, math.ceil, math.randomseed
+local random, ceil, randomseed, modf = math.random, math.ceil, math.randomseed, math.modf
local type, setmetatable, tonumber, tostring = type, setmetatable, tonumber, tostring
-- This check needs to happen real early on. Todo: we can pick it up from the commandline
-- if we pass --binpath= (which is useful anyway)
do
+
local selfdir = os.selfdir
+
if selfdir == "" then
selfdir = nil
end
+
if not selfdir then
+
-- We need a fallback plan so let's see what we get.
+
if arg then
-- passed by mtx-context ... saves network access
for i=1,#arg do
@@ -52,6 +57,7 @@ do
end
end
end
+
if not selfdir then
selfdir = os.selfbin or "luatex"
if find(selfdir,"[/\\]") then
@@ -92,11 +98,16 @@ do
end
end
end
+
-- let's hope we're okay now
+
os.selfdir = selfdir or "."
+
end
+
+ -- print(os.selfdir) os.exit()
+
end
--- print(os.selfdir) os.exit()
-- The following code permits traversing the environment table, at least in luatex. Internally all
-- environment names are uppercase.
@@ -157,7 +168,7 @@ if not os.__getenv__ then
end
function os.getenv(k)
- local K = upper(k)
+ local K = upper(k) -- hm utf
local v = osenv[K] or osgetenv(K) or osgetenv(k)
if v == "" then
return nil
@@ -183,32 +194,14 @@ end
-- end of environment hack
-local execute = os.execute
-local iopopen = io.popen
-
-local function resultof(command)
- local handle = iopopen(command,"r") -- already has flush
- if handle then
- local result = handle:read("*all") or ""
- handle:close()
- return result
- else
- return ""
- end
-end
-
-os.resultof = resultof
-
-function os.pipeto(command)
- return iopopen(command,"w") -- already has flush
-end
-
if not io.fileseparator then
+
if find(os.getenv("PATH"),";",1,true) then
io.fileseparator, io.pathseparator, os.type = "\\", ";", os.type or "windows"
else
io.fileseparator, io.pathseparator, os.type = "/" , ":", os.type or "unix"
end
+
end
os.type = os.type or (io.pathseparator == ";" and "windows") or "unix"
@@ -220,351 +213,370 @@ else
os.libsuffix, os.binsuffix, os.binsuffixes = 'so', '', { '' }
end
-local launchers = {
- windows = "start %s",
- macosx = "open %s",
- unix = "xdg-open %s &> /dev/null &",
-}
+do
-function os.launch(str)
- local command = format(launchers[os.name] or launchers.unix,str)
- -- todo: pcall
--- print(command)
- execute(command)
-end
+ local execute = os.execute
+ local iopopen = io.popen
+ local ostype = os.type
+
+ local function resultof(command)
+ -- already has flush, b is new and we need it to pipe xz output
+ local handle = iopopen(command,ostype == "windows" and "rb" or "r")
+ if handle then
+ local result = handle:read("*all") or ""
+ handle:close()
+ return result
+ else
+ return ""
+ end
+ end
-local gettimeofday = os.gettimeofday or os.clock
-os.gettimeofday = gettimeofday
+ os.resultof = resultof
-local startuptime = gettimeofday()
+ function os.pipeto(command)
+ return iopopen(command,"w") -- already has flush
+ end
-function os.runtime()
- return gettimeofday() - startuptime
-end
+ local launchers = {
+ windows = "start %s",
+ macosx = "open %s",
+ unix = "xdg-open %s &> /dev/null &",
+ }
+
+ function os.launch(str)
+ local command = format(launchers[os.name] or launchers.unix,str)
+ -- todo: pcall
+ -- print(command)
+ execute(command)
+ end
--- print(os.gettimeofday()-os.time())
--- os.sleep(1.234)
--- print (">>",os.runtime())
--- print(os.date("%H:%M:%S",os.gettimeofday()))
--- print(os.date("%H:%M:%S",os.time()))
+end
--- no need for function anymore as we have more clever code and helpers now
--- this metatable trickery might as well disappear
+do
-local resolvers = os.resolvers or { }
-os.resolvers = resolvers
+ local gettimeofday = os.gettimeofday or os.clock
+ os.gettimeofday = gettimeofday
-setmetatable(os, { __index = function(t,k)
- local r = resolvers[k]
- return r and r(t,k) or nil -- no memoize
-end })
+ local startuptime = gettimeofday()
--- we can use HOSTTYPE on some platforms
+ function os.runtime()
+ return gettimeofday() - startuptime
+ end
-local name, platform = os.name or "linux", os.getenv("MTX_PLATFORM") or ""
+ -- print(os.gettimeofday()-os.time())
+ -- os.sleep(1.234)
+ -- print (">>",os.runtime())
+ -- print(os.date("%H:%M:%S",os.gettimeofday()))
+ -- print(os.date("%H:%M:%S",os.time()))
--- local function guess()
--- local architecture = resultof("uname -m") or ""
--- if architecture ~= "" then
--- return architecture
--- end
--- architecture = os.getenv("HOSTTYPE") or ""
--- if architecture ~= "" then
--- return architecture
--- end
--- return resultof("echo $HOSTTYPE") or ""
--- end
+end
+-- We can use HOSTTYPE on some platforms (but not consistently on e.g. Linux).
+--
-- os.bits = 32 | 64
+--
+-- os.uname() : return {
+-- machine = "x86_64",
+-- nodename = "MYLAPTOP",
+-- release = "build 9200",
+-- sysname = "Windows",
+-- version = "6.02",
+-- }
--- os.uname()
--- sysname
--- machine
--- release
--- version
--- nodename
-
-if platform ~= "" then
+do
- os.platform = platform
+ local name = os.name or "linux"
+ local platform = os.getenv("MTX_PLATFORM") or ""
+ local architecture = os.uname and os.uname().machine -- lmtx
+ local bits = os.getenv("MTX_BITS") or find(platform,"64") and 64 or 32
-elseif os.type == "windows" then
+ if platform ~= "" then
- -- we could set the variable directly, no function needed here
+ -- we're okay already
- -- PROCESSOR_ARCHITECTURE : binary platform
- -- PROCESSOR_ARCHITEW6432 : OS platform
+ elseif os.type == "windows" then
- -- mswin-64 is now win64
+ -- PROCESSOR_ARCHITECTURE : binary platform
+ -- PROCESSOR_ARCHITEW6432 : OS platform
- function resolvers.platform(t,k)
- local architecture = os.getenv("PROCESSOR_ARCHITECTURE") or ""
- local platform = ""
- if find(architecture,"AMD64",1,true) then
- platform = "win64"
+ architecture = string.lower(architecture or os.getenv("PROCESSOR_ARCHITECTURE") or "")
+ if architecture == "x86_64" then
+ bits, platform = 64, "win64"
+ elseif find(architecture,"amd64") then
+ bits, platform = 64, "win64"
+ elseif find(architecture,"arm64") then
+ bits, platform = 64, "windows-arm64"
+ elseif find(architecture,"arm32") then
+ bits, platform = 32, "windows-arm32"
else
- platform = "mswin"
+ bits, platform = 32, "mswin"
end
- os.setenv("MTX_PLATFORM",platform)
- os.platform = platform
- return platform
- end
-elseif name == "linux" then
-
- function resolvers.platform(t,k)
- -- we sometimes have HOSTTYPE set so let's check that first
- local architecture = os.getenv("HOSTTYPE") or resultof("uname -m") or ""
- local platform = os.getenv("MTX_PLATFORM") or ""
- local musl = find(os.selfdir or "","linuxmusl")
- if platform ~= "" then
- -- we're done
- elseif find(architecture,"x86_64",1,true) then
- platform = musl and "linuxmusl" or "linux-64"
- elseif find(architecture,"ppc",1,true) then
- platform = "linux-ppc"
+ elseif name == "linux" then
+
+ -- There is no way to detect if musl is used because there is no __MUSL__
+ -- and it looks like there never will be. Folks don't care about cases where
+ -- one ships multipe binaries (as with TeX distibutions) and want to select
+ -- the right one. So probably it expects users to compile locally in which
+ -- case we don't care to much as they can then sort it out.
+
+ architecture = architecture or os.getenv("HOSTTYPE") or resultof("uname -m") or ""
+ local musl = find(os.selfdir or "","linuxmusl")
+ if find(architecture,"x86_64") then
+ bits, platform = 64, musl and "linuxmusl" or "linux-64"
+ elseif find(architecture,"ppc") then
+ bits, platform = 32, "linux-ppc" -- this will be dropped
else
- platform = musl and "linuxmusl" or "linux"
+ bits, platform = 32, musl and "linuxmusl" or "linux"
end
- os.setenv("MTX_PLATFORM",platform)
- os.platform = platform
- return platform
- end
-elseif name == "macosx" then
-
- --[[
- Identifying the architecture of OSX is quite a mess and this
- is the best we can come up with. For some reason $HOSTTYPE is
- a kind of pseudo environment variable, not known to the current
- environment. And yes, uname cannot be trusted either, so there
- is a change that you end up with a 32 bit run on a 64 bit system.
- Also, some proper 64 bit intel macs are too cheap (low-end) and
- therefore not permitted to run the 64 bit kernel.
- ]]--
-
- function resolvers.platform(t,k)
- -- local platform = ""
- -- local architecture = os.getenv("HOSTTYPE") or ""
- -- if architecture == "" then
- -- architecture = resultof("echo $HOSTTYPE") or ""
- -- end
- local architecture = resultof("echo $HOSTTYPE") or ""
- local platform = ""
+ elseif name == "macosx" then
+
+ -- Identifying the architecture of OSX is quite a mess and this is the best
+ -- we can come up with. For some reason $HOSTTYPE is a kind of pseudo
+ -- environment variable, not known to the current environment. And yes,
+ -- uname cannot be trusted either, so there is a change that you end up with
+ -- a 32 bit run on a 64 bit system. Also, some proper 64 bit intel macs are
+ -- too cheap (low-end) and therefore not permitted to run the 64 bit kernel.
+
+ architecture = architecture or resultof("echo $HOSTTYPE") or ""
if architecture == "" then
- -- print("\nI have no clue what kind of OSX you're running so let's assume an 32 bit intel.\n")
- platform = "osx-intel"
- elseif find(architecture,"i386",1,true) then
- platform = "osx-intel"
- elseif find(architecture,"x86_64",1,true) then
- platform = "osx-64"
- elseif find(architecture,"arm64",1,true) then
- platform = "osx-64"
+ bits, platform = 64, "osx-intel"
+ elseif find(architecture,"i386") then
+ bits, platform = 64, "osx-intel"
+ elseif find(architecture,"x86_64") then
+ bits, platform = 64, "osx-64"
+ elseif find(architecture,"arm64") then
+ bits, platform = 64, "osx-arm"
else
- platform = "osx-ppc"
+ bits, platform = 32, "osx-ppc"
end
- os.setenv("MTX_PLATFORM",platform)
- os.platform = platform
- return platform
- end
-elseif name == "sunos" then
+ elseif name == "sunos" then
- function resolvers.platform(t,k)
- local architecture = resultof("uname -m") or ""
- local platform = ""
- if find(architecture,"sparc",1,true) then
- platform = "solaris-sparc"
+ architecture = architecture or resultof("uname -m") or ""
+ if find(architecture,"sparc") then
+ bits, platform = 32, "solaris-sparc"
else -- if architecture == 'i86pc'
- platform = "solaris-intel"
+ bits, platform = 32, "solaris-intel"
end
- os.setenv("MTX_PLATFORM",platform)
- os.platform = platform
- return platform
- end
-elseif name == "freebsd" then
+ elseif name == "freebsd" then
- function resolvers.platform(t,k)
- local architecture = resultof("uname -m") or ""
- local platform = ""
- if find(architecture,"amd64",1,true) then
- platform = "freebsd-amd64"
+ architecture = architecture or os.getenv("MACHTYPE") or resultof("uname -m") or ""
+ if find(architecture,"amd64") or find(architecture,"AMD64") then
+ bits, platform = 64, "freebsd-amd64"
else
- platform = "freebsd"
+ bits, platform = 32, "freebsd"
end
- os.setenv("MTX_PLATFORM",platform)
- os.platform = platform
- return platform
- end
-elseif name == "kfreebsd" then
+ elseif name == "kfreebsd" then
- function resolvers.platform(t,k)
- -- we sometimes have HOSTTYPE set so let's check that first
- local architecture = os.getenv("HOSTTYPE") or resultof("uname -m") or ""
- local platform = ""
- if find(architecture,"x86_64",1,true) then
- platform = "kfreebsd-amd64"
+ architecture = architecture or os.getenv("HOSTTYPE") or resultof("uname -m") or ""
+ if architecture == "x86_64" then
+ bits, platform = 64, "kfreebsd-amd64"
else
- platform = "kfreebsd-i386"
+ bits, platform = 32, "kfreebsd-i386"
end
- os.setenv("MTX_PLATFORM",platform)
- os.platform = platform
- return platform
- end
-else
+ else
- -- platform = "linux"
- -- os.setenv("MTX_PLATFORM",platform)
- -- os.platform = platform
+ architecture = architecture or resultof("uname -m") or ""
+
+ if find(architecture,"aarch64") then
+ bits, platform = "linux-aarch64"
+ elseif find(architecture,"armv7l") then
+ -- linux-armel
+ bits, platform = 32, "linux-armhf"
+ elseif find(architecture,"mips64") or find(architecture,"mips64el") then
+ bits, platform = 64, "linux-mipsel"
+ elseif find(architecture,"mipsel") or find(architecture,"mips") then
+ bits, platform = 32, "linux-mipsel"
+ else
+ bits, platform = 64, "linux-64" -- was 32, "linux"
+ end
- function resolvers.platform(t,k)
- local platform = "linux"
- os.setenv("MTX_PLATFORM",platform)
- os.platform = platform
- return platform
end
-end
+ os.setenv("MTX_PLATFORM",platform)
+ os.setenv("MTX_BITS", bits)
-os.newline = name == "windows" and "\013\010" or "\010" -- crlf or lf
+ os.platform = platform
+ os.bits = bits
+ os.newline = name == "windows" and "\013\010" or "\010" -- crlf or lf
-function resolvers.bits(t,k)
- local bits = find(os.platform,"64",1,true) and 64 or 32
- os.bits = bits
- return bits
end
-- beware, we set the randomseed
--- from wikipedia: Version 4 UUIDs use a scheme relying only on random numbers. This algorithm sets the
--- version number as well as two reserved bits. All other bits are set using a random or pseudorandom
--- data source. Version 4 UUIDs have the form xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx with hexadecimal
--- digits x and hexadecimal digits 8, 9, A, or B for y. e.g. f47ac10b-58cc-4372-a567-0e02b2c3d479.
---
--- as we don't call this function too often there is not so much risk on repetition
-
-local t = { 8, 9, "a", "b" }
-
-function os.uuid()
- return format("%04x%04x-4%03x-%s%03x-%04x-%04x%04x%04x",
- random(0xFFFF),random(0xFFFF),
- random(0x0FFF),
- t[ceil(random(4))] or 8,random(0x0FFF),
- random(0xFFFF),
- random(0xFFFF),random(0xFFFF),random(0xFFFF)
- )
+-- From wikipedia: Version 4 UUIDs use a scheme relying only on random numbers. This
+-- algorithm sets the version number as well as two reserved bits. All other bits
+-- are set using a random or pseudorandom data source. Version 4 UUIDs have the form
+-- xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx with hexadecimal digits x and hexadecimal
+-- digits 8, 9, A, or B for y. e.g. f47ac10b-58cc-4372-a567-0e02b2c3d479. As we don't
+-- call this function too often there is not so much risk on repetition.
+
+do
+
+ local t = { 8, 9, "a", "b" }
+
+ function os.uuid()
+ return format("%04x%04x-4%03x-%s%03x-%04x-%04x%04x%04x",
+ random(0xFFFF),random(0xFFFF),
+ random(0x0FFF),
+ t[ceil(random(4))] or 8,random(0x0FFF),
+ random(0xFFFF),
+ random(0xFFFF),random(0xFFFF),random(0xFFFF)
+ )
+ end
+
end
-local d
+do
-function os.timezone(delta)
- d = d or ((tonumber(date("%H")) or 0) - (tonumber(date("!%H")) or 0))
- if delta then
- if d > 0 then
- return format("+%02i:00",d)
+ -- this is fragile because it depends on time and so we only check once during
+ -- a run (the computer doesn't move zones) .. Michal Vlasák made a better one
+
+ -- local d
+ --
+ -- function os.timezone()
+ -- d = d or ((tonumber(date("%H")) or 0) - (tonumber(date("!%H")) or 0))
+ -- if d > 0 then
+ -- return format("+%02i:00",d)
+ -- else
+ -- return format("-%02i:00",-d)
+ -- end
+ -- end
+
+ local hour, min
+
+ function os.timezone(difference)
+ if not hour then
+ -- somehow looks too complex:
+ local current = time()
+ local utcdate = date("!*t", current)
+ local localdate = date("*t", current)
+ localdate.isdst = false
+ local timediff = difftime(time(localdate), time(utcdate))
+ hour, min = modf(timediff / 3600)
+ min = min * 60
+ end
+ if difference then
+ return hour, min
else
- return format("-%02i:00",-d)
+ return format("%+03d:%02d",hour,min) -- %+ means: always show sign
end
- else
- return 1
end
-end
-local timeformat = format("%%s%s",os.timezone(true))
-local dateformat = "!%Y-%m-%d %H:%M:%S"
-local lasttime = nil
-local lastdate = nil
-
-function os.fulltime(t,default)
- t = t and tonumber(t) or 0
- if t > 0 then
- -- valid time
- elseif default then
- return default
- else
- t = time()
- end
- if t ~= lasttime then
- lasttime = t
- lastdate = format(timeformat,date(dateformat))
+ -- localtime with timezone: 2021-10-22 10:22:54+02:00
+
+ local timeformat = format("%%s%s",os.timezone())
+ local dateformat = "%Y-%m-%d %H:%M:%S"
+ local lasttime = nil
+ local lastdate = nil
+
+ function os.fulltime(t,default)
+ t = t and tonumber(t) or 0
+ if t > 0 then
+ -- valid time
+ elseif default then
+ return default
+ else
+ t = time()
+ end
+ if t ~= lasttime then
+ lasttime = t
+ lastdate = format(timeformat,date(dateformat))
+ end
+ return lastdate
end
- return lastdate
-end
-local dateformat = "%Y-%m-%d %H:%M:%S"
-local lasttime = nil
-local lastdate = nil
+ -- localtime without timezone: 2021-10-22 10:22:54
-function os.localtime(t,default)
- t = t and tonumber(t) or 0
- if t > 0 then
- -- valid time
- elseif default then
- return default
- else
- t = time()
+ local dateformat = "%Y-%m-%d %H:%M:%S"
+ local lasttime = nil
+ local lastdate = nil
+
+ function os.localtime(t,default)
+ t = t and tonumber(t) or 0
+ if t > 0 then
+ -- valid time
+ elseif default then
+ return default
+ else
+ t = time()
+ end
+ if t ~= lasttime then
+ lasttime = t
+ lastdate = date(dateformat,t)
+ end
+ return lastdate
end
- if t ~= lasttime then
- lasttime = t
- lastdate = date(dateformat,t)
+
+ function os.converttime(t,default)
+ local t = tonumber(t)
+ if t and t > 0 then
+ return date(dateformat,t)
+ else
+ return default or "-"
+ end
end
- return lastdate
-end
-function os.converttime(t,default)
- local t = tonumber(t)
- if t and t > 0 then
- return date(dateformat,t)
- else
- return default or "-"
+ -- table with values
+
+ function os.today()
+ return date("!*t")
+ end
+
+ -- utc time without timezone: 2021-10-22 08:22:54
+
+ function os.now()
+ return date("!%Y-%m-%d %H:%M:%S")
end
+
end
-local memory = { }
-
-local function which(filename)
- local fullname = memory[filename]
- if fullname == nil then
- local suffix = file.suffix(filename)
- local suffixes = suffix == "" and os.binsuffixes or { suffix }
- for directory in gmatch(os.getenv("PATH"),"[^" .. io.pathseparator .."]+") do
- local df = file.join(directory,filename)
- for i=1,#suffixes do
- local dfs = file.addsuffix(df,suffixes[i])
- if io.exists(dfs) then
- fullname = dfs
- break
+do
+
+ local cache = { }
+
+ local function which(filename)
+ local fullname = cache[filename]
+ if fullname == nil then
+ local suffix = file.suffix(filename)
+ local suffixes = suffix == "" and os.binsuffixes or { suffix }
+ for directory in gmatch(os.getenv("PATH"),"[^" .. io.pathseparator .."]+") do
+ local df = file.join(directory,filename)
+ for i=1,#suffixes do
+ local dfs = file.addsuffix(df,suffixes[i])
+ if io.exists(dfs) then
+ fullname = dfs
+ break
+ end
end
end
+ if not fullname then
+ fullname = false
+ end
+ cache[filename] = fullname
end
- if not fullname then
- fullname = false
- end
- memory[filename] = fullname
+ return fullname
end
- return fullname
-end
-os.which = which
-os.where = which
+ os.which = which
+ os.where = which
-function os.today()
- return date("!*t") -- table with values
-end
+ -- print(os.which("inkscape.exe"))
+ -- print(os.which("inkscape"))
+ -- print(os.which("gs.exe"))
+ -- print(os.which("ps2pdf"))
-function os.now()
- return date("!%Y-%m-%d %H:%M:%S") -- 2011-12-04 14:59:12
end
--- if not os.sleep and socket then
--- os.sleep = socket.sleep
--- end
-
if not os.sleep then
+
local socket = socket
+
function os.sleep(n)
if not socket then
-- so we delay ... if os.sleep is really needed then one should also
@@ -573,101 +585,105 @@ if not os.sleep then
end
socket.sleep(n)
end
-end
-
--- print(os.which("inkscape.exe"))
--- print(os.which("inkscape"))
--- print(os.which("gs.exe"))
--- print(os.which("ps2pdf"))
-
--- These are moved from core-con.lua (as I needed them elsewhere).
-local function isleapyear(year) -- timed for bram's cs practicum
- -- return (year % 400 == 0) or (year % 100 ~= 0 and year % 4 == 0) -- 3:4:1600:1900 = 9.9 : 8.2 : 5.0 : 6.8 (29.9)
- return (year % 4 == 0) and (year % 100 ~= 0 or year % 400 == 0) -- 3:4:1600:1900 = 5.1 : 6.5 : 8.1 : 10.2 (29.9)
- -- return (year % 4 == 0) and (year % 400 == 0 or year % 100 ~= 0) -- 3:4:1600:1900 = 5.2 : 8.5 : 6.8 : 10.1 (30.6)
end
-os.isleapyear = isleapyear
+-- These are moved from core-con.lua (as I needed them elsewhere).
--- nicer:
---
--- local days = {
--- [false] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
--- [true] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
--- }
---
--- local function nofdays(year,month)
--- return days[isleapyear(year)][month]
--- return month == 2 and isleapyear(year) and 29 or days[month]
--- end
---
--- more efficient:
+do
-local days = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
+ local function isleapyear(year) -- timed for bram's cs practicum
+ -- return (year % 400 == 0) or (year % 100 ~= 0 and year % 4 == 0) -- 3:4:1600:1900 = 9.9 : 8.2 : 5.0 : 6.8 (29.9)
+ return (year % 4 == 0) and (year % 100 ~= 0 or year % 400 == 0) -- 3:4:1600:1900 = 5.1 : 6.5 : 8.1 : 10.2 (29.9)
+ -- return (year % 4 == 0) and (year % 400 == 0 or year % 100 ~= 0) -- 3:4:1600:1900 = 5.2 : 8.5 : 6.8 : 10.1 (30.6)
+ end
-local function nofdays(year,month,day)
- if not month then
- return isleapyear(year) and 365 or 364
- elseif not day then
- return month == 2 and isleapyear(year) and 29 or days[month]
- else
- for i=1,month-1 do
- day = day + days[i]
- end
- if month > 2 and isleapyear(year) then
- day = day + 1
+ os.isleapyear = isleapyear
+
+ -- nicer:
+ --
+ -- local days = {
+ -- [false] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
+ -- [true] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
+ -- }
+ --
+ -- local function nofdays(year,month)
+ -- return days[isleapyear(year)][month]
+ -- return month == 2 and isleapyear(year) and 29 or days[month]
+ -- end
+ --
+ -- more efficient:
+
+ local days = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
+
+ local function nofdays(year,month,day)
+ if not month then
+ return isleapyear(year) and 365 or 364
+ elseif not day then
+ return month == 2 and isleapyear(year) and 29 or days[month]
+ else
+ for i=1,month-1 do
+ day = day + days[i]
+ end
+ if month > 2 and isleapyear(year) then
+ day = day + 1
+ end
+ return day
end
- return day
end
-end
-
-os.nofdays = nofdays
-function os.weekday(day,month,year)
- return date("%w",time { year = year, month = month, day = day }) + 1
-end
+ os.nofdays = nofdays
-function os.validdate(year,month,day)
- -- we assume that all three values are set
- -- year is always ok, even if lua has a 1970 time limit
- if month < 1 then
- month = 1
- elseif month > 12 then
- month = 12
+ function os.weekday(day,month,year)
+ return date("%w",time { year = year, month = month, day = day }) + 1
end
- if day < 1 then
- day = 1
- else
- local max = nofdays(year,month)
- if day > max then
- day = max
+
+ function os.validdate(year,month,day)
+ -- we assume that all three values are set
+ -- year is always ok, even if lua has a 1970 time limit
+ if month < 1 then
+ month = 1
+ elseif month > 12 then
+ month = 12
end
+ if day < 1 then
+ day = 1
+ else
+ local max = nofdays(year,month)
+ if day > max then
+ day = max
+ end
+ end
+ return year, month, day
end
- return year, month, day
-end
-function os.date(fmt,...)
- if not fmt then
- -- otherwise differences between unix, mingw and msvc
- fmt = "%Y-%m-%d %H:%M"
+ function os.date(fmt,...)
+ if not fmt then
+ -- otherwise differences between unix, mingw and msvc
+ fmt = "%Y-%m-%d %H:%M"
+ end
+ return date(fmt,...)
end
- return date(fmt,...)
+
end
-local osexit = os.exit
-local exitcode = nil
+do
-function os.setexitcode(code)
- exitcode = code
-end
+ local osexit = os.exit
+ local exitcode = nil
-function os.exit(c)
- if exitcode ~= nil then
- return osexit(exitcode)
+ function os.setexitcode(code)
+ exitcode = code
end
- if c ~= nil then
- return osexit(c)
+
+ function os.exit(c)
+ if exitcode ~= nil then
+ return osexit(exitcode)
+ end
+ if c ~= nil then
+ return osexit(c)
+ end
+ return osexit()
end
- return osexit()
+
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-string.lua b/Master/texmf-dist/tex/context/base/mkiv/l-string.lua
index 1dee85e2894..476820a175b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-string.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-string.lua
@@ -7,7 +7,7 @@ if not modules then modules = { } end modules ['l-string'] = {
}
local string = string
-local sub, gmatch, format, char, byte, rep, lower = string.sub, string.gmatch, string.format, string.char, string.byte, string.rep, string.lower
+local sub, gmatch, format, char, byte, rep, lower, find = string.sub, string.gmatch, string.format, string.char, string.byte, string.rep, string.lower, string.find
local lpegmatch, patterns = lpeg.match, lpeg.patterns
local P, S, C, Ct, Cc, Cs = lpeg.P, lpeg.S, lpeg.C, lpeg.Ct, lpeg.Cc, lpeg.Cs
@@ -52,10 +52,26 @@ function string.quoted(str)
return format("%q",str) -- always double quote
end
-function string.count(str,pattern) -- variant 3
+-- function string.count(str,pattern) -- variant 3
+-- local n = 0
+-- for _ in gmatch(str,pattern) do -- not for utf
+-- n = n + 1
+-- end
+-- return n
+-- end
+
+function string.count(str,pattern)
local n = 0
- for _ in gmatch(str,pattern) do -- not for utf
- n = n + 1
+ local i = 1
+ local l = #pattern
+ while true do
+ i = find(str,pattern,i)
+ if i then
+ n = n + 1
+ i = i + l
+ else
+ break
+ end
end
return n
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/l-url.lua b/Master/texmf-dist/tex/context/base/mkiv/l-url.lua
index 6f834d778d1..2e01ad40808 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/l-url.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/l-url.lua
@@ -379,53 +379,53 @@ end
-- print(url.barepath("/test"),url.barepath("test/"),url.barepath("/test/"),url.barepath("test"))
-- print(url.barepath("/x/yz"),url.barepath("x/yz/"),url.barepath("/x/yz/"),url.barepath("x/yz"))
---~ print(url.filename("file:///c:/oeps.txt"))
---~ print(url.filename("c:/oeps.txt"))
---~ print(url.filename("file:///oeps.txt"))
---~ print(url.filename("file:///etc/test.txt"))
---~ print(url.filename("/oeps.txt"))
-
---~ from the spec on the web (sort of):
-
---~ local function test(str)
---~ local t = url.hashed(str)
---~ t.constructed = url.construct(t)
---~ print(table.serialize(t))
---~ end
-
---~ inspect(url.hashed("http://www.pragma-ade.com/test%20test?test=test%20test&x=123%3d45"))
---~ inspect(url.hashed("http://www.pragma-ade.com/test%20test?test=test%20test&x=123%3d45"))
-
---~ test("sys:///./colo-rgb")
-
---~ test("/data/site/output/q2p-develop/resources/ecaboperception4_res/topicresources/58313733/figuur-cow.jpg")
---~ test("file:///M:/q2p/develop/output/q2p-develop/resources/ecaboperception4_res/topicresources/58313733")
---~ test("M:/q2p/develop/output/q2p-develop/resources/ecaboperception4_res/topicresources/58313733")
---~ test("file:///q2p/develop/output/q2p-develop/resources/ecaboperception4_res/topicresources/58313733")
---~ test("/q2p/develop/output/q2p-develop/resources/ecaboperception4_res/topicresources/58313733")
-
---~ test("file:///cow%20with%20spaces")
---~ test("file:///cow%20with%20spaces.pdf")
---~ test("cow%20with%20spaces.pdf")
---~ test("some%20file")
---~ test("/etc/passwords")
---~ test("http://www.myself.com/some%20words.html")
---~ test("file:///c:/oeps.txt")
---~ test("file:///c|/oeps.txt")
---~ test("file:///etc/oeps.txt")
---~ test("file://./etc/oeps.txt")
---~ test("file:////etc/oeps.txt")
---~ test("ftp://ftp.is.co.za/rfc/rfc1808.txt")
---~ test("http://www.ietf.org/rfc/rfc2396.txt")
---~ test("ldap://[2001:db8::7]/c=GB?objectClass?one#what")
---~ test("mailto:John.Doe@example.com")
---~ test("news:comp.infosystems.www.servers.unix")
---~ test("tel:+1-816-555-1212")
---~ test("telnet://192.0.2.16:80/")
---~ test("urn:oasis:names:specification:docbook:dtd:xml:4.1.2")
---~ test("http://www.pragma-ade.com/spaced%20name")
-
---~ test("zip:///oeps/oeps.zip#bla/bla.tex")
---~ test("zip:///oeps/oeps.zip?bla/bla.tex")
-
---~ table.print(url.hashed("/test?test"))
+-- print(url.filename("file:///c:/oeps.txt"))
+-- print(url.filename("c:/oeps.txt"))
+-- print(url.filename("file:///oeps.txt"))
+-- print(url.filename("file:///etc/test.txt"))
+-- print(url.filename("/oeps.txt"))
+
+-- from the spec on the web (sort of):
+
+-- local function test(str)
+-- local t = url.hashed(str)
+-- t.constructed = url.construct(t)
+-- print(table.serialize(t))
+-- end
+
+-- inspect(url.hashed("http://www.pragma-ade.com/test%20test?test=test%20test&x=123%3d45"))
+-- inspect(url.hashed("http://www.pragma-ade.com/test%20test?test=test%20test&x=123%3d45"))
+
+-- test("sys:///./colo-rgb")
+
+-- test("/data/site/output/q2p-develop/resources/ecaboperception4_res/topicresources/58313733/figuur-cow.jpg")
+-- test("file:///M:/q2p/develop/output/q2p-develop/resources/ecaboperception4_res/topicresources/58313733")
+-- test("M:/q2p/develop/output/q2p-develop/resources/ecaboperception4_res/topicresources/58313733")
+-- test("file:///q2p/develop/output/q2p-develop/resources/ecaboperception4_res/topicresources/58313733")
+-- test("/q2p/develop/output/q2p-develop/resources/ecaboperception4_res/topicresources/58313733")
+
+-- test("file:///cow%20with%20spaces")
+-- test("file:///cow%20with%20spaces.pdf")
+-- test("cow%20with%20spaces.pdf")
+-- test("some%20file")
+-- test("/etc/passwords")
+-- test("http://www.myself.com/some%20words.html")
+-- test("file:///c:/oeps.txt")
+-- test("file:///c|/oeps.txt")
+-- test("file:///etc/oeps.txt")
+-- test("file://./etc/oeps.txt")
+-- test("file:////etc/oeps.txt")
+-- test("ftp://ftp.is.co.za/rfc/rfc1808.txt")
+-- test("http://www.ietf.org/rfc/rfc2396.txt")
+-- test("ldap://[2001:db8::7]/c=GB?objectClass?one#what")
+-- test("mailto:John.Doe@example.com")
+-- test("news:comp.infosystems.www.servers.unix")
+-- test("tel:+1-816-555-1212")
+-- test("telnet://192.0.2.16:80/")
+-- test("urn:oasis:names:specification:docbook:dtd:xml:4.1.2")
+-- test("http://www.pragma-ade.com/spaced%20name")
+
+-- test("zip:///oeps/oeps.zip#bla/bla.tex")
+-- test("zip:///oeps/oeps.zip?bla/bla.tex")
+
+-- table.print(url.hashed("/test?test"))
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-def.mkiv b/Master/texmf-dist/tex/context/base/mkiv/lang-def.mkiv
index 85c1f3ac775..19f431ebf56 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-def.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-def.mkiv
@@ -269,6 +269,23 @@
\c!rightquotation=\leftguillemot,
\c!date={\v!day,{.},\space,\v!month,\space,\v!year}]
+\installlanguage
+ [\s!hy]
+ [\c!spacing=\v!packed,
+ \c!leftsentence=\endash, % *sentences not confirmed
+ \c!rightsentence=\endash,
+ \c!leftsubsentence=\endash,
+ \c!rightsubsentence=\endash,
+ \c!leftquote=\guilsingleleft,
+ \c!rightquote=\guilsingleright,
+ \c!leftquotation=\leftguillemot
+ \c!rightquotation=\rightguillemot
+ \c!date={\v!day,\space,\v!month,\space,\v!year}, % word
+ % \c!date={\v!day,{.},\v!month,{.},\v!year}, % numbers
+ \s!patterns=\s!hy,
+ \s!lefthyphenmin=2,
+ \s!righthyphenmin=2]
+
\installlanguage [\s!polish] [\s!pl]
\installlanguage [\s!czech] [\s!cs]
\installlanguage [\s!slovak] [\s!sk]
@@ -276,6 +293,10 @@
\installlanguage [\s!slovenian] [\s!sl]
\installlanguage [slovene] [\s!sl] % both possible (mojca: still needed?)
+\installlanguage [\s!armenian] [\s!hy]
+\installlanguage [\s!hye] [\s!hy] % Eastern Armenian
+\installlanguage [\s!hyw] [\s!hy] % Western Armenian
+
% Cyrillic Languages
\installlanguage
@@ -350,6 +371,21 @@
\c!rightquotation=\upperrightdoublesixquote,
\c!date={\v!day,\space,\v!month,\space,\v!year}]
+\installlanguage
+ [\s!bg]
+ [\s!lefthyphenmin=2,
+ \s!righthyphenmin=2,
+ \c!spacing=\v!packed,
+ \c!leftsentence=\leftguillemot,
+ \c!rightsentence=\rightguillemot,
+ \c!leftsubsentence=\lowerleftdoubleninequote,
+ \c!rightsubsentence=\upperrightdoubleninequote,
+ \c!leftquote=\lowerleftsingleninequote,
+ \c!rightquote=\upperrightsinglesixquote,
+ \c!leftquotation=\lowerleftdoubleninequote,
+ \c!rightquotation=\upperrightdoublesixquote,
+ \c!date={\v!day,\space,\v!month,\space,\v!year}]
+
\installlanguage [\s!russian] [\s!ru]
\installlanguage [\s!ukrainian] [\s!ua]
\installlanguage [\s!belarussian][\s!be]
@@ -357,6 +393,7 @@
\installlanguage [\s!sr-latn] [\s!sr]
\installlanguage [\s!sr-cyrl] [\s!sr]
\installlanguage [\s!macedonian] [\s!mk]
+\installlanguage [\s!bulgarian] [\s!bg]
% Uralic Languages: Cheremiss, Estonian, Finnish, Karelian, Laap,
@@ -486,7 +523,7 @@
\installlanguage [\s!arabic] [\s!ar]
\installlanguage
- [\s!pe]
+ [\s!farsi]
[\c!spacing=\v!broad,
\c!leftsentence=\emdash,
\c!rightsentence=\emdash,
@@ -498,9 +535,9 @@
\c!rightquotation=\rightguillemot,
\c!date={\v!day,\space,\v!month,\space,\v!year}]
-\installlanguage [\s!persian] [\s!pe]
-\installlanguage [\s!fa] [\s!pe] % these two are redundant but sometimes might
-\installlanguage [\s!farsi] [\s!fa] % sound more natural .. best set labels to 'pe'
+\installlanguage [\s!fa] [\s!farsi]
+\installlanguage [\s!persian] [\s!farsi]
+\installlanguage [\s!pe] [\s!farsi]
% Just aliases to "ar" for now
@@ -538,21 +575,23 @@
% Artificial Languages: Esperanto
\installlanguage
- [\s!esperanto]
- [%\c!spacing=\v!packed,
- %\c!leftsentence=\emdash,
- %\c!rightsentence=\emdash,
- %\c!leftsubsentence=\emdash,
- %\c!rightsubsentence=\emdash,
- %\c!leftquote=\lowerleftdoubleninequote,
- %\c!rightquote=\upperrightdoublesixquote,
- %\c!leftquotation=\lowerleftdoubleninequote,
- %\c!rightquotation=\upperrightdoublesixquote,
- %\c!date={\v!year,~m.,\space,\v!month,\space,\v!day,~d.},
+ [\s!eo]
+ [\c!spacing=\v!packed,
+ \c!leftsentence=\endash,
+ \c!rightsentence=\endash,
+ \c!leftsubsentence=\endash,
+ \c!rightsubsentence=\endash,
+ \c!leftquote=\upperleftsinglesixquote, %U+2018,
+ \c!rightquote=\upperrightsingleninequote, %U+2019,
+ \c!leftquotation=\upperleftdoublesixquote, %U+201C,
+ \c!rightquotation=\upperrightdoubleninequote, %U+201D,
+ \c!date={\v!day,-a\space de\space,\v!month,\space \v!year},
\s!patterns=eo,
\s!lefthyphenmin=2,
\s!righthyphenmin=2]
+\installlanguage[\s!esperanto][\c!default=\s!eo]
+
% Baltic Languages: Lettish/Latvian, Lietuvių/Lithuanian
\installlanguage
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-dis.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-dis.lua
index 3e4678801f5..f6b27175cb6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-dis.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-dis.lua
@@ -36,8 +36,7 @@ local isglyph = nuts.isglyph
local copy_node = nuts.copy
local remove_node = nuts.remove
-local flush_list = nuts.flush_list
-local flush_node = nuts.flush_node
+----- flushnode = nuts.flushnode
local nextdisc = nuts.traversers.disc
@@ -124,12 +123,12 @@ end
local wiped = 0
-local flatten_discretionaries = nuts.flatten_discretionaries -- todo in nodes
+local flattendiscretionaries = nuts.flattendiscretionaries -- todo in nodes
--- if flatten_discretionaries then
+-- if flattendiscretionaries then
function languages.flatten(head)
- local h, n = flatten_discretionaries(head)
+ local h, n = flattendiscretionaries(head)
wiped = wiped + n
return h, n > 0
end
@@ -152,7 +151,7 @@ local flatten_discretionaries = nuts.flatten_discretionaries -- todo in nodes
-- head = h
-- end
-- wiped = wiped + 1
--- flush_node(delayed)
+-- flushnode(delayed)
-- return head
-- end
--
@@ -202,7 +201,7 @@ function languages.explicithyphen(template)
local pre, post
local disc = new_disc()
if template then
- local langdata = getlanguagedata(getlang(template))
+ local langdata = getlanguagedata(getlanguage(template))
local instance = langdata and langdata.instance
if instance then
local prechr = prehyphenchar(instance)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-exp.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-exp.lua
index c2eb46990aa..758ab0f779e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-exp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-exp.lua
@@ -46,7 +46,7 @@ if LUATEXVERSION < 1.005 then -- not loaded any more
local char = isglyph(pre)
if char and char <= 0 then
done = true
- flush_list(pre)
+ flushlist(pre)
pre = nil
end
end
@@ -54,7 +54,7 @@ if LUATEXVERSION < 1.005 then -- not loaded any more
local char = isglyph(post)
if char and char <= 0 then
done = true
- flush_list(post)
+ flushlist(post)
post = nil
end
end
@@ -179,7 +179,7 @@ languages.expanders = expanders
-- expanded = function(head)
-- local done = hyphenate(head)
-- if done then
--- for d in traverse_id(disc_code,head) do
+-- for d in traverseid(disc_code,head) do
-- local s = getsubtype(d)
-- if s ~= discretionary_code then
-- expanders[s](d,template)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-hyp.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-hyp.lua
index ca9f519cee4..e098e93af5f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-hyp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-hyp.lua
@@ -656,12 +656,12 @@ if context then
local setprev = nuts.setprev
local setnext = nuts.setnext
- local insert_before = nuts.insert_before
- local insert_after = nuts.insert_after
+ local insertbefore = nuts.insertbefore
+ local insertafter = nuts.insertafter
local copy_node = nuts.copy
- local copy_list = nuts.copy_list
+ local copylist = nuts.copylist
local remove_node = nuts.remove
- local end_of_math = nuts.end_of_math
+ local endofmath = nuts.endofmath
local node_tail = nuts.tail
local nexthlist = nuts.traversers.hlist
@@ -1014,7 +1014,7 @@ featureset.hyphenonly = hyphenonly == v_yes
-- [nodecodes.rule] = true,
-- [nodecodes.dir] = true,
-- [nodecodes.whatsit] = true,
- -- [nodecodes.ins] = true,
+ -- [nodecodes.insert] = true,
-- [nodecodes.adjust] = true,
--
-- [nodecodes.math] = true,
@@ -1087,7 +1087,7 @@ featureset.hyphenonly = hyphenonly == v_yes
nuts.setvisual(p,"penalty")
end
last = getprev(last)
- first, last = insert_after(first,last,p)
+ first, last = insertafter(first,last,p)
end
local function synchronizefeatureset(a)
@@ -1245,7 +1245,7 @@ featureset.hyphenonly = hyphenonly == v_yes
local glyph = copy_node(stop)
setchar(glyph,characters[replacement])
if head then
- insert_after(current,current,glyph)
+ insertafter(current,current,glyph)
else
head = glyph
end
@@ -1256,7 +1256,7 @@ featureset.hyphenonly = hyphenonly == v_yes
local glyph = copy_node(stop)
setchar(glyph,characters[list[i]])
if head then
- insert_after(current,current,glyph)
+ insertafter(current,current,glyph)
else
head = glyph
end
@@ -1265,7 +1265,7 @@ featureset.hyphenonly = hyphenonly == v_yes
end
if rightchar then
local glyph = copy_node(stop)
- insert_after(current,current,glyph)
+ insertafter(current,current,glyph)
setchar(glyph,rightchar)
end
return head
@@ -1291,7 +1291,7 @@ featureset.hyphenonly = hyphenonly == v_yes
setattrlist(disc,attrnode)
end
-- could be a replace as well
- insert_before(first,current,disc)
+ insertbefore(first,current,disc)
elseif type(r) == "table" then
local disc = new_disc()
local pre = r[1]
@@ -1325,7 +1325,7 @@ featureset.hyphenonly = hyphenonly == v_yes
if attrnode then
setattrlist(disc,attrnode)
end
- insert_before(first,current,disc)
+ insertbefore(first,current,disc)
else
setchar(current,characters[r])
if i < rsize then
@@ -1347,7 +1347,7 @@ featureset.hyphenonly = hyphenonly == v_yes
if first ~= current then
local disc = new_disc()
first, current, glyph = remove_node(first,current)
- first, current = insert_before(first,current,disc)
+ first, current = insertbefore(first,current,disc)
if trace_visualize then
setcolor(glyph,"darkred") -- these get checked
setcolor(disc,"darkgreen") -- in the colorizer
@@ -1372,7 +1372,7 @@ featureset.hyphenonly = hyphenonly == v_yes
local function injectseries(current,last,next,attrnode)
local disc = new_disc()
local start = current
- first, current = insert_before(first,current,disc)
+ first, current = insertbefore(first,current,disc)
setprev(start)
setnext(last)
if next then
@@ -1380,7 +1380,7 @@ featureset.hyphenonly = hyphenonly == v_yes
else
setnext(current)
end
- local pre = copy_list(start)
+ local pre = copylist(start)
local post = nil
local replace = start
setdisc(disc,pre,post,replace,automaticdisc_code,hyphenpenalty) -- ex ?
@@ -1547,10 +1547,10 @@ featureset.hyphenonly = hyphenonly == v_yes
skipping = true
end
-- elseif strict and strict[id] then
- -- current = id == math_code and getnext(end_of_math(current)) or getnext(current)
+ -- current = id == math_code and getnext(endofmath(current)) or getnext(current)
-- size = 0
else
- current = id == math_code and getnext(end_of_math(current)) or getnext(current)
+ current = id == math_code and getnext(endofmath(current)) or getnext(current)
end
if size > 0 then
if dictionary and size > charmin and leftmin + rightmin <= size then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-imp-indic.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-imp-indic.lua
new file mode 100644
index 00000000000..164b765cc02
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-imp-indic.lua
@@ -0,0 +1,2282 @@
+return {
+
+ name = "indic transliterations",
+ version = "1.00",
+ comment = "Experimental code, the name of this file might change"
+ .. "or maybe it become a llg file in the end.",
+ author = "Sreeram and Hans",
+ copyright = "ConTeXt development team & whoever made this list",
+
+ transliterations = {
+ ["iast to deva"] = {
+ mapping = {
+ --- vowels
+ ["a"] = "अ",
+ ["ā"] = "आ",
+ ["i"] = "इ",
+ ["ī"] = "ई",
+ ["u"] = "उ",
+ ["ū"] = "ऊ",
+ ["ṛ"] = "ऋ",
+ ["ṝ"] = "ॠ",
+ ["ḷ"] = "ऌ",
+ ["ḹ"] = "ॡ",
+ ["è"] = "ऎ",
+ ["e"] = "ए",
+ ["ai"] = "ऐ",
+ ["ò"] = "ऒ",
+ ["o"] = "ओ",
+ ["au"] = "औ",
+ --- consonant forms
+ ["ka"] = "क",
+ ["kā"] = "का",
+ ["ki"] = "कि",
+ ["kī"] = "की",
+ ["ku"] = "कु",
+ ["kū"] = "कू",
+ ["ke"] = "के",
+ ["ko"] = "को",
+ ["kai"] = "कै",
+ ["kau"] = "कौ",
+ ["kḷ"] = "कॢ",
+ ["kḹ"] = "कॣ",
+ ["kṛ"] = "कृ",
+ ["kṝ"] = "कॄ",
+ ---
+ ["kha"] = "ख",
+ ["khā"] = "खा",
+ ["khi"] = "खि",
+ ["khī"] = "खी",
+ ["khu"] = "खु",
+ ["khū"] = "खू",
+ ["khe"] = "खे",
+ ["kho"] = "खो",
+ ["khai"] = "खै",
+ ["khau"] = "खौ",
+ ["khḷ"] = "खॢ",
+ ["khḹ"] = "खॣ",
+ ["khṛ"] = "खृ",
+ ["khṝ"] = "खॄ",
+ ---
+ ["ga"] = "ग",
+ ["gā"] = "गा",
+ ["gi"] = "गि",
+ ["gī"] = "गी",
+ ["gu"] = "गु",
+ ["gū"] = "गू",
+ ["ge"] = "गे",
+ ["go"] = "गो",
+ ["gai"] = "गै",
+ ["gau"] = "गौ",
+ ["gḷ"] = "गॢ",
+ ["gḹ"] = "गॣ",
+ ["gṛ"] = "गृ",
+ ["gṝ"] = "गॄ",
+ ---
+ ["gha"] = "घ",
+ ["ghā"] = "घा",
+ ["ghi"] = "घि",
+ ["ghī"] = "घी",
+ ["ghu"] = "घु",
+ ["ghū"] = "घू",
+ ["ghe"] = "घे",
+ ["gho"] = "घो",
+ ["ghai"] = "घै",
+ ["ghau"] = "घौ",
+ ["ghḷ"] = "घॢ",
+ ["ghḹ"] = "घॣ",
+ ["ghṛ"] = "घृ",
+ ["ghṝ"] = "घॄ",
+ ---
+ ["ṅa"] = "ङ",
+ ["ṅā"] = "ङा",
+ ["ṅi"] = "ङि",
+ ["ṅī"] = "ङी",
+ ["ṅu"] = "ङु",
+ ["ṅū"] = "ङू",
+ ["ṅe"] = "ङे",
+ ["ṅo"] = "ङो",
+ ["ṅai"] = "ङै",
+ ["ṅau"] = "ङौ",
+ ["ṅḷ"] = "ङॢ",
+ ["ṅḹ"] = "ङॣ",
+ ["ṅṛ"] = "ङृ",
+ ["ṅṝ"] = "ङॄ",
+ ---
+ ["ca"] = "च",
+ ["cā"] = "चा",
+ ["ci"] = "चि",
+ ["cī"] = "ची",
+ ["cu"] = "चु",
+ ["cū"] = "चू",
+ ["ce"] = "चे",
+ ["co"] = "चो",
+ ["cai"] = "चै",
+ ["cau"] = "चौ",
+ ["cḷ"] = "चॢ",
+ ["cḹ"] = "चॣ",
+ ["cṛ"] = "चृ",
+ ["cṝ"] = "चॄ",
+ ---
+ ["cha"] = "छ",
+ ["chā"] = "छा",
+ ["chi"] = "छि",
+ ["chī"] = "छी",
+ ["chu"] = "छु",
+ ["chū"] = "छू",
+ ["che"] = "छे",
+ ["cho"] = "छो",
+ ["chai"] = "छै",
+ ["chau"] = "छौ",
+ ["chḷ"] = "छॢ",
+ ["chḹ"] = "छॣ",
+ ["chṛ"] = "छृ",
+ ["chṝ"] = "छॄ",
+ ---
+ ["ja"] = "ज",
+ ["jā"] = "जा",
+ ["ji"] = "जि",
+ ["jī"] = "जी",
+ ["ju"] = "जु",
+ ["jū"] = "जू",
+ ["je"] = "जे",
+ ["jo"] = "जो",
+ ["jai"] = "जै",
+ ["jau"] = "जौ",
+ ["jḷ"] = "जॢ",
+ ["jḹ"] = "जॣ",
+ ["jṛ"] = "जृ",
+ ["jṝ"] = "जॄ",
+ ---
+ ["jha"] = "झ",
+ ["jhā"] = "झा",
+ ["jhi"] = "झि",
+ ["jhī"] = "झी",
+ ["jhu"] = "झु",
+ ["jhū"] = "झू",
+ ["jhe"] = "झे",
+ ["jho"] = "झो",
+ ["jhai"] = "झै",
+ ["jhau"] = "झौ",
+ ["jhḷ"] = "झॢ",
+ ["jhḹ"] = "झॣ",
+ ["jhṛ"] = "झृ",
+ ["jhṝ"] = "झॄ",
+ ---
+ ["ña"] = "ञ",
+ ["ñā"] = "ञा",
+ ["ñi"] = "ञि",
+ ["ñī"] = "ञी",
+ ["ñu"] = "ञु",
+ ["ñū"] = "ञू",
+ ["ñe"] = "ञे",
+ ["ño"] = "ञो",
+ ["ñai"] = "ञै",
+ ["ñau"] = "ञौ",
+ ["ñḷ"] = "ञॢ",
+ ["ñḹ"] = "ञॣ",
+ ["ñṛ"] = "ञृ",
+ ["ñṝ"] = "ञॄ",
+ ---
+ ["ṭa"] = "ट",
+ ["ṭā"] = "टा",
+ ["ṭi"] = "टि",
+ ["ṭī"] = "टी",
+ ["ṭu"] = "टु",
+ ["ṭū"] = "टू",
+ ["ṭe"] = "टे",
+ ["ṭo"] = "टो",
+ ["ṭai"] = "टै",
+ ["ṭau"] = "टौ",
+ ["ṭḷ"] = "टॢ",
+ ["ṭḹ"] = "टॣ",
+ ["ṭṛ"] = "टृ",
+ ["ṭṝ"] = "टॄ",
+ ---
+ ["ṭha"] = "ठ",
+ ["ṭhā"] = "ठा",
+ ["ṭhi"] = "ठि",
+ ["ṭhī"] = "ठी",
+ ["ṭhu"] = "ठु",
+ ["ṭhū"] = "ठू",
+ ["ṭhe"] = "ठे",
+ ["ṭho"] = "ठो",
+ ["ṭhai"] = "ठै",
+ ["ṭhau"] = "ठौ",
+ ["ṭhḷ"] = "ठॢ",
+ ["ṭhḹ"] = "ठॣ",
+ ["ṭhṛ"] = "ठृ",
+ ["ṭhṝ"] = "ठॄ",
+ ---
+ ["ḍa"] = "ड",
+ ["ḍā"] = "डा",
+ ["ḍi"] = "डि",
+ ["ḍī"] = "डी",
+ ["ḍu"] = "डु",
+ ["ḍū"] = "डू",
+ ["ḍe"] = "डे",
+ ["ḍo"] = "डो",
+ ["ḍai"] = "डै",
+ ["ḍau"] = "डौ",
+ ["ḍḷ"] = "डॢ",
+ ["ḍḹ"] = "डॣ",
+ ["ḍṛ"] = "डृ",
+ ["ḍṝ"] = "डॄ",
+ ---
+ ["ḍha"] = "ढ",
+ ["ḍhā"] = "ढा",
+ ["ḍhi"] = "ढि",
+ ["ḍhī"] = "ढी",
+ ["ḍhu"] = "ढु",
+ ["ḍhū"] = "ढू",
+ ["ḍhe"] = "ढे",
+ ["ḍho"] = "ढो",
+ ["ḍhai"] = "ढै",
+ ["ḍhau"] = "ढौ",
+ ["ḍhḷ"] = "ढॢ",
+ ["ḍhḹ"] = "ढॣ",
+ ["ḍhṛ"] = "ढृ",
+ ["ḍhṝ"] = "ढॄ",
+ ---
+ ["ṇa"] = "ण",
+ ["ṇā"] = "णा",
+ ["ṇi"] = "णि",
+ ["ṇī"] = "णी",
+ ["ṇu"] = "णु",
+ ["ṇū"] = "णू",
+ ["ṇe"] = "णे",
+ ["ṇo"] = "णो",
+ ["ṇai"] = "णै",
+ ["ṇau"] = "णौ",
+ ["ṇḷ"] = "णॢ",
+ ["ṇḹ"] = "णॣ",
+ ["ṇṛ"] = "णृ",
+ ["ṇṝ"] = "णॄ",
+ ---
+ ["ta"] = "त",
+ ["tā"] = "ता",
+ ["ti"] = "ति",
+ ["tī"] = "ती",
+ ["tu"] = "तु",
+ ["tū"] = "तू",
+ ["te"] = "ते",
+ ["to"] = "तो",
+ ["tai"] = "तै",
+ ["tau"] = "तौ",
+ ["tḷ"] = "तॢ",
+ ["tḹ"] = "तॣ",
+ ["tṛ"] = "तृ",
+ ["tṝ"] = "तॄ",
+ ---
+ ["tha"] = "थ",
+ ["thā"] = "था",
+ ["thi"] = "थि",
+ ["thī"] = "थी",
+ ["thu"] = "थु",
+ ["thū"] = "थू",
+ ["the"] = "थे",
+ ["tho"] = "थो",
+ ["thai"] = "थै",
+ ["thau"] = "थौ",
+ ["thḷ"] = "थॢ",
+ ["thḹ"] = "थॣ",
+ ["thṛ"] = "थृ",
+ ["thṝ"] = "थॄ",
+ ---
+ ["da"] = "द",
+ ["dā"] = "दा",
+ ["di"] = "दि",
+ ["dī"] = "दी",
+ ["du"] = "दु",
+ ["dū"] = "दू",
+ ["de"] = "दे",
+ ["do"] = "दो",
+ ["dai"] = "दै",
+ ["dau"] = "दौ",
+ ["dḷ"] = "दॢ",
+ ["dḹ"] = "दॣ",
+ ["dṛ"] = "दृ",
+ ["dṝ"] = "दॄ",
+ ---
+ ["dha"] = "ध",
+ ["dhā"] = "धा",
+ ["dhi"] = "धि",
+ ["dhī"] = "धी",
+ ["dhu"] = "धु",
+ ["dhū"] = "धू",
+ ["dhe"] = "धे",
+ ["dho"] = "धो",
+ ["dhai"] = "धै",
+ ["dhau"] = "धौ",
+ ["dhḷ"] = "धॢ",
+ ["dhḹ"] = "धॣ",
+ ["dhṛ"] = "धृ",
+ ["dhṝ"] = "धॄ",
+ ---
+ ["na"] = "न",
+ ["nā"] = "ना",
+ ["ni"] = "नि",
+ ["nī"] = "नी",
+ ["nu"] = "नु",
+ ["nū"] = "नू",
+ ["ne"] = "ने",
+ ["no"] = "नो",
+ ["nai"] = "नै",
+ ["nau"] = "नौ",
+ ["nḷ"] = "नॢ",
+ ["nḹ"] = "नॣ",
+ ["nṛ"] = "नृ",
+ ["nṝ"] = "नॄ",
+ ---
+ ["pa"] = "प",
+ ["pā"] = "पा",
+ ["pi"] = "पि",
+ ["pī"] = "पी",
+ ["pu"] = "पु",
+ ["pū"] = "पू",
+ ["pe"] = "पे",
+ ["po"] = "पो",
+ ["pai"] = "पै",
+ ["pau"] = "पौ",
+ ["pḷ"] = "पॢ",
+ ["pḹ"] = "पॣ",
+ ["pṛ"] = "पृ",
+ ["pṝ"] = "पॄ",
+ ---
+ ["pha"] = "फ",
+ ["phā"] = "फा",
+ ["phi"] = "फि",
+ ["phī"] = "फी",
+ ["phu"] = "फु",
+ ["phū"] = "फू",
+ ["phe"] = "फे",
+ ["pho"] = "फो",
+ ["phai"] = "फै",
+ ["phau"] = "फौ",
+ ["phḷ"] = "फॢ",
+ ["phḹ"] = "फॣ",
+ ["phṛ"] = "फृ",
+ ["phṝ"] = "फॄ",
+ ---
+ ["ba"] = "ब",
+ ["bā"] = "बा",
+ ["bi"] = "बि",
+ ["bī"] = "बी",
+ ["bu"] = "बु",
+ ["bū"] = "बू",
+ ["be"] = "बे",
+ ["bo"] = "बो",
+ ["bai"] = "बै",
+ ["bau"] = "बौ",
+ ["bḷ"] = "बॢ",
+ ["bḹ"] = "बॣ",
+ ["bṛ"] = "बृ",
+ ["bṝ"] = "बॄ",
+ ---
+ ["bha"] = "भ",
+ ["bhā"] = "भा",
+ ["bhi"] = "भि",
+ ["bhī"] = "भी",
+ ["bhu"] = "भु",
+ ["bhū"] = "भू",
+ ["bhe"] = "भे",
+ ["bho"] = "भो",
+ ["bhai"] = "भै",
+ ["bhau"] = "भौ",
+ ["bhḷ"] = "भॢ",
+ ["bhḹ"] = "भॣ",
+ ["bhṛ"] = "भृ",
+ ["bhṝ"] = "भॄ",
+ ---
+ ["ma"] = "म",
+ ["mā"] = "मा",
+ ["mi"] = "मि",
+ ["mī"] = "मी",
+ ["mu"] = "मु",
+ ["mū"] = "मू",
+ ["me"] = "मे",
+ ["mo"] = "मो",
+ ["mai"] = "मै",
+ ["mau"] = "मौ",
+ ["mḷ"] = "मॢ",
+ ["mḹ"] = "मॣ",
+ ["mṛ"] = "मृ",
+ ["mṝ"] = "मॄ",
+ ---
+ ["ya"] = "य",
+ ["yā"] = "या",
+ ["yi"] = "यि",
+ ["yī"] = "यी",
+ ["yu"] = "यु",
+ ["yū"] = "यू",
+ ["ye"] = "ये",
+ ["yo"] = "यो",
+ ["yai"] = "यै",
+ ["yau"] = "यौ",
+ ["yḷ"] = "यॢ",
+ ["yḹ"] = "यॣ",
+ ["yṛ"] = "यृ",
+ ["yṝ"] = "यॄ",
+ ---
+ ["ra"] = "र",
+ ["rā"] = "रा",
+ ["ri"] = "रि",
+ ["rī"] = "री",
+ ["ru"] = "रु",
+ ["rū"] = "रू",
+ ["re"] = "रे",
+ ["ro"] = "रो",
+ ["rai"] = "रै",
+ ["rau"] = "रौ",
+ ["rḷ"] = "रॢ",
+ ["rḹ"] = "रॣ",
+ ["rṛ"] = "रृ",
+ ["rṝ"] = "रॄ",
+ ---
+ ["la"] = "ल",
+ ["lā"] = "ला",
+ ["li"] = "लि",
+ ["lī"] = "ली",
+ ["lu"] = "लु",
+ ["lū"] = "लू",
+ ["le"] = "ले",
+ ["lo"] = "लो",
+ ["lai"] = "लै",
+ ["lau"] = "लौ",
+ ["lḷ"] = "लॢ",
+ ["lḹ"] = "लॣ",
+ ["lṛ"] = "लृ",
+ ["lṝ"] = "लॄ",
+ ---
+ ["va"] = "व",
+ ["vā"] = "वा",
+ ["vi"] = "वि",
+ ["vī"] = "वी",
+ ["vu"] = "वु",
+ ["vū"] = "वू",
+ ["ve"] = "वे",
+ ["vo"] = "वो",
+ ["vai"] = "वै",
+ ["vau"] = "वौ",
+ ["vḷ"] = "वॢ",
+ ["vḹ"] = "वॣ",
+ ["vṛ"] = "वृ",
+ ["vṝ"] = "वॄ",
+ ---
+ ["śa"] = "श",
+ ["śā"] = "शा",
+ ["śi"] = "शि",
+ ["śī"] = "शी",
+ ["śu"] = "शु",
+ ["śū"] = "शू",
+ ["śe"] = "शे",
+ ["śo"] = "शो",
+ ["śai"] = "शै",
+ ["śau"] = "शौ",
+ ["śḷ"] = "शॢ",
+ ["śḹ"] = "शॣ",
+ ["śṛ"] = "शृ",
+ ["śṝ"] = "शॄ",
+ ---
+ ["ṣa"] = "ष",
+ ["ṣā"] = "षा",
+ ["ṣi"] = "षि",
+ ["ṣī"] = "षी",
+ ["ṣu"] = "षु",
+ ["ṣū"] = "षू",
+ ["ṣe"] = "षे",
+ ["ṣo"] = "षो",
+ ["ṣai"] = "षै",
+ ["ṣau"] = "षौ",
+ ["ṣḷ"] = "षॢ",
+ ["ṣḹ"] = "षॣ",
+ ["ṣṛ"] = "षृ",
+ ["ṣṝ"] = "षॄ",
+ ---
+ ["sa"] = "स",
+ ["sā"] = "सा",
+ ["si"] = "सि",
+ ["sī"] = "सी",
+ ["su"] = "सु",
+ ["sū"] = "सू",
+ ["se"] = "से",
+ ["so"] = "सो",
+ ["sai"] = "सै",
+ ["sau"] = "सौ",
+ ["sḷ"] = "सॢ",
+ ["sḹ"] = "सॣ",
+ ["sṛ"] = "सृ",
+ ["sṝ"] = "सॄ",
+ ---
+ ["ha"] = "ह",
+ ["hā"] = "हा",
+ ["hi"] = "हि",
+ ["hī"] = "ही",
+ ["hu"] = "हु",
+ ["hū"] = "हू",
+ ["he"] = "हे",
+ ["ho"] = "हो",
+ ["hai"] = "है",
+ ["hau"] = "हौ",
+ ["hḷ"] = "हॢ",
+ ["hḹ"] = "हॣ",
+ ["hṛ"] = "हृ",
+ ["hṝ"] = "हॄ",
+ ---
+ ["ḻa"] = "ळ",
+ ["ḻā"] = "ळा",
+ ["ḻi"] = "ळि",
+ ["ḻī"] = "ळी",
+ ["ḻu"] = "ळु",
+ ["ḻū"] = "ळू",
+ ["ḻe"] = "ळे",
+ ["ḻo"] = "ळो",
+ ["ḻai"] = "ळै",
+ ["ḻau"] = "ळौ",
+ ["ḻḷ"] = "ळॢ",
+ ["ḻḹ"] = "ळॣ",
+ ["ḻṛ"] = "ळृ",
+ ["ḻṝ"] = "ळॄ",
+ ---
+ ["kṣa"] = "क्ष",
+ ["kṣā"] = "क्षा",
+ ["kṣi"] = "क्षि",
+ ["kṣī"] = "क्षी",
+ ["kṣu"] = "क्षु",
+ ["kṣū"] = "क्षू",
+ ["kṣe"] = "क्षे",
+ ["kṣo"] = "क्षो",
+ ["kṣai"] = "क्षै",
+ ["kṣau"] = "क्षौ",
+ ["kṣḷ"] = "क्षॢ",
+ ["kṣḹ"] = "क्षॣ",
+ ["kṣṛ"] = "क्षृ",
+ ["kṣṝ"] = "क्षॄ",
+ ---
+ ["jña"] = "ज्ञ",
+ ["jñā"] = "ज्ञा",
+ ["jñi"] = "ज्ञि",
+ ["jñī"] = "ज्ञी",
+ ["jñu"] = "ज्ञु",
+ ["jñū"] = "ज्ञू",
+ ["jñe"] = "ज्ञे",
+ ["jño"] = "ज्ञो",
+ ["jñai"] = "ज्ञै",
+ ["jñau"] = "ज्ञौ",
+ ["jñḷ"] = "ज्ञॢ",
+ ["jñḹ"] = "ज्ञॣ",
+ ["jñṛ"] = "ज्ञृ",
+ ["jñṝ"] = "ज्ञॄ",
+ ---
+ ["k"] = "क्",
+ ["kh"] = "ख्",
+ ["g"] = "ग्",
+ ["gh"] = "घ्",
+ ["ṅ"] = "ङ्",
+ ["c"] = "च्",
+ ["ch"] = "छ्",
+ ["j"] = "ज्",
+ ["jh"] = "झ्",
+ ["ñ"] = "ञ्",
+ ["ṭ"] = "ट्",
+ ["ṭh"] = "ठ्",
+ ["ḍ"] = "ड्",
+ ["ḍh"] = "ढ्",
+ ["ṇ"] = "ण्",
+ ["t"] = "त्",
+ ["th"] = "थ्",
+ ["d"] = "द्",
+ ["dh"] = "ध्",
+ ["n"] = "न्",
+ ["p"] = "प्",
+ ["ph"] = "फ्",
+ ["b"] = "ब्",
+ ["bh"] = "भ्",
+ ["m"] = "म्",
+ ["y"] = "य्",
+ ["r"] = "र्",
+ ["l"] = "ल्",
+ ["v"] = "व्",
+ ["ś"] = "श्",
+ ["ṣ"] = "ष्",
+ ["s"] = "स्",
+ ["h"] = "ह्",
+ ["ḻ"] = "ळ्",
+ ["kṣ"] = "क्ष्",
+ ["jñ"] = "ज्ञ्",
+ -- yogavaahas (always with phonetic)
+ ["ṁ"] = "ं",
+ ["ḥ"] = "ः",
+ ["ँ"] = "ँ",
+ -- punctuations
+ ["viraama"] = "्",
+ ["."] = "।",
+ ["|"] = "।",
+ ["||"] = "॥",
+ },
+ },
+ ["itrans to deva"] = {
+ mapping = {
+ --- vowels
+ ["a"] = "अ",
+ ["A"] = "आ",
+ ["i"] = "इ",
+ ["I"] = "ई",
+ ["u"] = "उ",
+ ["U"] = "ऊ",
+ ["RRi"] = "ऋ",
+ ["RRI"] = "ॠ",
+ ["LLi"] = "ऌ",
+ ["LLI"] = "ॡ",
+ ["e"] = "ए",
+ ["ai"] = "ऐ",
+ ["o"] = "ओ",
+ ["au"] = "औ",
+ --- consonant forms
+ ["ka"] = "क",
+ ["kA"] = "का",
+ ["ki"] = "कि",
+ ["kI"] = "की",
+ ["ku"] = "कु",
+ ["kU"] = "कू",
+ ["ke"] = "के",
+ ["ko"] = "को",
+ ["kai"] = "कै",
+ ["kau"] = "कौ",
+ ["kLLi"] = "कॢ",
+ ["kLLI"] = "कॣ",
+ ["kRRi"] = "कृ",
+ ["kRRI"] = "कॄ",
+ ---
+ ["kha"] = "ख",
+ ["khA"] = "खा",
+ ["khi"] = "खि",
+ ["khI"] = "खी",
+ ["khu"] = "खु",
+ ["khU"] = "खू",
+ ["khe"] = "खे",
+ ["kho"] = "खो",
+ ["khai"] = "खै",
+ ["khau"] = "खौ",
+ ["khLLi"] = "खॢ",
+ ["khLLI"] = "खॣ",
+ ["khRRi"] = "खृ",
+ ["khRRI"] = "खॄ",
+ ---
+ ["ga"] = "ग",
+ ["gA"] = "गा",
+ ["gi"] = "गि",
+ ["gI"] = "गी",
+ ["gu"] = "गु",
+ ["gU"] = "गू",
+ ["ge"] = "गे",
+ ["go"] = "गो",
+ ["gai"] = "गै",
+ ["gau"] = "गौ",
+ ["gLLi"] = "गॢ",
+ ["gLLI"] = "गॣ",
+ ["gRRi"] = "गृ",
+ ["gRRI"] = "गॄ",
+ ---
+ ["gha"] = "घ",
+ ["ghA"] = "घा",
+ ["ghi"] = "घि",
+ ["ghI"] = "घी",
+ ["ghu"] = "घु",
+ ["ghU"] = "घू",
+ ["ghe"] = "घे",
+ ["gho"] = "घो",
+ ["ghai"] = "घै",
+ ["ghau"] = "घौ",
+ ["ghLLi"] = "घॢ",
+ ["ghLLI"] = "घॣ",
+ ["ghRRi"] = "घृ",
+ ["ghRRI"] = "घॄ",
+ ---
+ ["~Na"] = "ङ",
+ ["~NA"] = "ङा",
+ ["~Ni"] = "ङि",
+ ["~NI"] = "ङी",
+ ["~Nu"] = "ङु",
+ ["~NU"] = "ङू",
+ ["~Ne"] = "ङे",
+ ["~No"] = "ङो",
+ ["~Nai"] = "ङै",
+ ["~Nau"] = "ङौ",
+ ["~NLLi"] = "ङॢ",
+ ["~NLLI"] = "ङॣ",
+ ["~NRRi"] = "ङृ",
+ ["~NRRI"] = "ङॄ",
+ ---
+ ["ca"] = "च",
+ ["cA"] = "चा",
+ ["ci"] = "चि",
+ ["cI"] = "ची",
+ ["cu"] = "चु",
+ ["cU"] = "चू",
+ ["ce"] = "चे",
+ ["co"] = "चो",
+ ["cai"] = "चै",
+ ["cau"] = "चौ",
+ ["cLLi"] = "चॢ",
+ ["cLLI"] = "चॣ",
+ ["cRRi"] = "चृ",
+ ["cRRI"] = "चॄ",
+ ---
+ ["cha"] = "छ",
+ ["chA"] = "छा",
+ ["chi"] = "छि",
+ ["chI"] = "छी",
+ ["chu"] = "छु",
+ ["chU"] = "छू",
+ ["che"] = "छे",
+ ["cho"] = "छो",
+ ["chai"] = "छै",
+ ["chau"] = "छौ",
+ ["chLLi"] = "छॢ",
+ ["chLLI"] = "छॣ",
+ ["chRRi"] = "छृ",
+ ["chRRI"] = "छॄ",
+ ---
+ ["ja"] = "ज",
+ ["jA"] = "जा",
+ ["ji"] = "जि",
+ ["jI"] = "जी",
+ ["ju"] = "जु",
+ ["jU"] = "जू",
+ ["je"] = "जे",
+ ["jo"] = "जो",
+ ["jai"] = "जै",
+ ["jau"] = "जौ",
+ ["jLLi"] = "जॢ",
+ ["jLLI"] = "जॣ",
+ ["jRRi"] = "जृ",
+ ["jRRI"] = "जॄ",
+ ---
+ ["jha"] = "झ",
+ ["jhA"] = "झा",
+ ["jhi"] = "झि",
+ ["jhI"] = "झी",
+ ["jhu"] = "झु",
+ ["jhU"] = "झू",
+ ["jhe"] = "झे",
+ ["jho"] = "झो",
+ ["jhai"] = "झै",
+ ["jhau"] = "झौ",
+ ["jhLLi"] = "झॢ",
+ ["jhLLI"] = "झॣ",
+ ["jhRRi"] = "झृ",
+ ["jhRRI"] = "झॄ",
+ ---
+ ["~na"] = "ञ",
+ ["~nA"] = "ञा",
+ ["~ni"] = "ञि",
+ ["~nI"] = "ञी",
+ ["~nu"] = "ञु",
+ ["~nU"] = "ञू",
+ ["~ne"] = "ञे",
+ ["~no"] = "ञो",
+ ["~nai"] = "ञै",
+ ["~nau"] = "ञौ",
+ ["~nLLi"] = "ञॢ",
+ ["~nLLI"] = "ञॣ",
+ ["~nRRi"] = "ञृ",
+ ["~nRRI"] = "ञॄ",
+ ---
+ ["Ta"] = "ट",
+ ["TA"] = "टा",
+ ["Ti"] = "टि",
+ ["TI"] = "टी",
+ ["Tu"] = "टु",
+ ["TU"] = "टू",
+ ["Te"] = "टे",
+ ["To"] = "टो",
+ ["Tai"] = "टै",
+ ["Tau"] = "टौ",
+ ["TLLi"] = "टॢ",
+ ["TLLI"] = "टॣ",
+ ["TRRi"] = "टृ",
+ ["TRRI"] = "टॄ",
+ ---
+ ["Tha"] = "ठ",
+ ["ThA"] = "ठा",
+ ["Thi"] = "ठि",
+ ["ThI"] = "ठी",
+ ["Thu"] = "ठु",
+ ["ThU"] = "ठू",
+ ["The"] = "ठे",
+ ["Tho"] = "ठो",
+ ["Thai"] = "ठै",
+ ["Thau"] = "ठौ",
+ ["ThLLi"] = "ठॢ",
+ ["ThLLI"] = "ठॣ",
+ ["ThRRi"] = "ठृ",
+ ["ThRRI"] = "ठॄ",
+ ---
+ ["Da"] = "ड",
+ ["DA"] = "डा",
+ ["Di"] = "डि",
+ ["DI"] = "डी",
+ ["Du"] = "डु",
+ ["DU"] = "डू",
+ ["De"] = "डे",
+ ["Do"] = "डो",
+ ["Dai"] = "डै",
+ ["Dau"] = "डौ",
+ ["DLLi"] = "डॢ",
+ ["DLLI"] = "डॣ",
+ ["DRRi"] = "डृ",
+ ["DRRI"] = "डॄ",
+ ---
+ ["Dha"] = "ढ",
+ ["DhA"] = "ढा",
+ ["Dhi"] = "ढि",
+ ["DhI"] = "ढी",
+ ["Dhu"] = "ढु",
+ ["DhU"] = "ढू",
+ ["Dhe"] = "ढे",
+ ["Dho"] = "ढो",
+ ["Dhai"] = "ढै",
+ ["Dhau"] = "ढौ",
+ ["DhLLi"] = "ढॢ",
+ ["DhLLI"] = "ढॣ",
+ ["DhRRi"] = "ढृ",
+ ["DhRRI"] = "ढॄ",
+ ---
+ ["Na"] = "ण",
+ ["NA"] = "णा",
+ ["Ni"] = "णि",
+ ["NI"] = "णी",
+ ["Nu"] = "णु",
+ ["NU"] = "णू",
+ ["Ne"] = "णे",
+ ["No"] = "णो",
+ ["Nai"] = "णै",
+ ["Nau"] = "णौ",
+ ["NLLi"] = "णॢ",
+ ["NLLI"] = "णॣ",
+ ["NRRi"] = "णृ",
+ ["NRRI"] = "णॄ",
+ ---
+ ["ta"] = "त",
+ ["tA"] = "ता",
+ ["ti"] = "ति",
+ ["tI"] = "ती",
+ ["tu"] = "तु",
+ ["tU"] = "तू",
+ ["te"] = "ते",
+ ["to"] = "तो",
+ ["tai"] = "तै",
+ ["tau"] = "तौ",
+ ["tLLi"] = "तॢ",
+ ["tLLI"] = "तॣ",
+ ["tRRi"] = "तृ",
+ ["tRRI"] = "तॄ",
+ ---
+ ["tha"] = "थ",
+ ["thA"] = "था",
+ ["thi"] = "थि",
+ ["thI"] = "थी",
+ ["thu"] = "थु",
+ ["thU"] = "थू",
+ ["the"] = "थे",
+ ["tho"] = "थो",
+ ["thai"] = "थै",
+ ["thau"] = "थौ",
+ ["thLLi"] = "थॢ",
+ ["thLLI"] = "थॣ",
+ ["thRRi"] = "थृ",
+ ["thRRI"] = "थॄ",
+ ---
+ ["da"] = "द",
+ ["dA"] = "दा",
+ ["di"] = "दि",
+ ["dI"] = "दी",
+ ["du"] = "दु",
+ ["dU"] = "दू",
+ ["de"] = "दे",
+ ["do"] = "दो",
+ ["dai"] = "दै",
+ ["dau"] = "दौ",
+ ["dLLi"] = "दॢ",
+ ["dLLI"] = "दॣ",
+ ["dRRi"] = "दृ",
+ ["dRRI"] = "दॄ",
+ ---
+ ["dha"] = "ध",
+ ["dhA"] = "धा",
+ ["dhi"] = "धि",
+ ["dhI"] = "धी",
+ ["dhu"] = "धु",
+ ["dhU"] = "धू",
+ ["dhe"] = "धे",
+ ["dho"] = "धो",
+ ["dhai"] = "धै",
+ ["dhau"] = "धौ",
+ ["dhLLi"] = "धॢ",
+ ["dhLLI"] = "धॣ",
+ ["dhRRi"] = "धृ",
+ ["dhRRI"] = "धॄ",
+ ---
+ ["na"] = "न",
+ ["nA"] = "ना",
+ ["ni"] = "नि",
+ ["nI"] = "नी",
+ ["nu"] = "नु",
+ ["nU"] = "नू",
+ ["ne"] = "ने",
+ ["no"] = "नो",
+ ["nai"] = "नै",
+ ["nau"] = "नौ",
+ ["nLLi"] = "नॢ",
+ ["nLLI"] = "नॣ",
+ ["nRRi"] = "नृ",
+ ["nRRI"] = "नॄ",
+ ---
+ ["pa"] = "प",
+ ["pA"] = "पा",
+ ["pi"] = "पि",
+ ["pI"] = "पी",
+ ["pu"] = "पु",
+ ["pU"] = "पू",
+ ["pe"] = "पे",
+ ["po"] = "पो",
+ ["pai"] = "पै",
+ ["pau"] = "पौ",
+ ["pLLi"] = "पॢ",
+ ["pLLI"] = "पॣ",
+ ["pRRi"] = "पृ",
+ ["pRRI"] = "पॄ",
+ ---
+ ["pha"] = "फ",
+ ["phA"] = "फा",
+ ["phi"] = "फि",
+ ["phI"] = "फी",
+ ["phu"] = "फु",
+ ["phU"] = "फू",
+ ["phe"] = "फे",
+ ["pho"] = "फो",
+ ["phai"] = "फै",
+ ["phau"] = "फौ",
+ ["phLLi"] = "फॢ",
+ ["phLLI"] = "फॣ",
+ ["phRRi"] = "फृ",
+ ["phRRI"] = "फॄ",
+ ---
+ ["ba"] = "ब",
+ ["bA"] = "बा",
+ ["bi"] = "बि",
+ ["bI"] = "बी",
+ ["bu"] = "बु",
+ ["bU"] = "बू",
+ ["be"] = "बे",
+ ["bo"] = "बो",
+ ["bai"] = "बै",
+ ["bau"] = "बौ",
+ ["bLLi"] = "बॢ",
+ ["bLLI"] = "बॣ",
+ ["bRRi"] = "बृ",
+ ["bRRI"] = "बॄ",
+ ---
+ ["bha"] = "भ",
+ ["bhA"] = "भा",
+ ["bhi"] = "भि",
+ ["bhI"] = "भी",
+ ["bhu"] = "भु",
+ ["bhU"] = "भू",
+ ["bhe"] = "भे",
+ ["bho"] = "भो",
+ ["bhai"] = "भै",
+ ["bhau"] = "भौ",
+ ["bhLLi"] = "भॢ",
+ ["bhLLI"] = "भॣ",
+ ["bhRRi"] = "भृ",
+ ["bhRRI"] = "भॄ",
+ ---
+ ["ma"] = "म",
+ ["mA"] = "मा",
+ ["mi"] = "मि",
+ ["mI"] = "मी",
+ ["mu"] = "मु",
+ ["mU"] = "मू",
+ ["me"] = "मे",
+ ["mo"] = "मो",
+ ["mai"] = "मै",
+ ["mau"] = "मौ",
+ ["mLLi"] = "मॢ",
+ ["mLLI"] = "मॣ",
+ ["mRRi"] = "मृ",
+ ["mRRI"] = "मॄ",
+ ---
+ ["ya"] = "य",
+ ["yA"] = "या",
+ ["yi"] = "यि",
+ ["yI"] = "यी",
+ ["yu"] = "यु",
+ ["yU"] = "यू",
+ ["ye"] = "ये",
+ ["yo"] = "यो",
+ ["yai"] = "यै",
+ ["yau"] = "यौ",
+ ["yLLi"] = "यॢ",
+ ["yLLI"] = "यॣ",
+ ["yRRi"] = "यृ",
+ ["yRRI"] = "यॄ",
+ ---
+ ["ra"] = "र",
+ ["rA"] = "रा",
+ ["ri"] = "रि",
+ ["rI"] = "री",
+ ["ru"] = "रु",
+ ["rU"] = "रू",
+ ["re"] = "रे",
+ ["ro"] = "रो",
+ ["rai"] = "रै",
+ ["rau"] = "रौ",
+ ["rLLi"] = "रॢ",
+ ["rLLI"] = "रॣ",
+ ["rRRi"] = "रृ",
+ ["rRRI"] = "रॄ",
+ ---
+ ["la"] = "ल",
+ ["lA"] = "ला",
+ ["li"] = "लि",
+ ["lI"] = "ली",
+ ["lu"] = "लु",
+ ["lU"] = "लू",
+ ["le"] = "ले",
+ ["lo"] = "लो",
+ ["lai"] = "लै",
+ ["lau"] = "लौ",
+ ["lLLi"] = "लॢ",
+ ["lLLI"] = "लॣ",
+ ["lRRi"] = "लृ",
+ ["lRRI"] = "लॄ",
+ ---
+ ["va"] = "व",
+ ["vA"] = "वा",
+ ["vi"] = "वि",
+ ["vI"] = "वी",
+ ["vu"] = "वु",
+ ["vU"] = "वू",
+ ["ve"] = "वे",
+ ["vo"] = "वो",
+ ["vai"] = "वै",
+ ["vau"] = "वौ",
+ ["vLLi"] = "वॢ",
+ ["vLLI"] = "वॣ",
+ ["vRRi"] = "वृ",
+ ["vRRI"] = "वॄ",
+ ---
+ ["sha"] = "श",
+ ["shA"] = "शा",
+ ["shi"] = "शि",
+ ["shI"] = "शी",
+ ["shu"] = "शु",
+ ["shU"] = "शू",
+ ["she"] = "शे",
+ ["sho"] = "शो",
+ ["shai"] = "शै",
+ ["shau"] = "शौ",
+ ["shLLi"] = "शॢ",
+ ["shLLI"] = "शॣ",
+ ["shRRi"] = "शृ",
+ ["shRRI"] = "शॄ",
+ ---
+ ["Sha"] = "ष",
+ ["ShA"] = "षा",
+ ["Shi"] = "षि",
+ ["ShI"] = "षी",
+ ["Shu"] = "षु",
+ ["ShU"] = "षू",
+ ["She"] = "षे",
+ ["Sho"] = "षो",
+ ["Shai"] = "षै",
+ ["Shau"] = "षौ",
+ ["ShLLi"] = "षॢ",
+ ["ShLLI"] = "षॣ",
+ ["ShRRi"] = "षृ",
+ ["ShRRI"] = "षॄ",
+ ---
+ ["sa"] = "स",
+ ["sA"] = "सा",
+ ["si"] = "सि",
+ ["sI"] = "सी",
+ ["su"] = "सु",
+ ["sU"] = "सू",
+ ["se"] = "से",
+ ["so"] = "सो",
+ ["sai"] = "सै",
+ ["sau"] = "सौ",
+ ["sLLi"] = "सॢ",
+ ["sLLI"] = "सॣ",
+ ["sRRi"] = "सृ",
+ ["sRRI"] = "सॄ",
+ ---
+ ["ha"] = "ह",
+ ["hA"] = "हा",
+ ["hi"] = "हि",
+ ["hI"] = "ही",
+ ["hu"] = "हु",
+ ["hU"] = "हू",
+ ["he"] = "हे",
+ ["ho"] = "हो",
+ ["hai"] = "है",
+ ["hau"] = "हौ",
+ ["hLLi"] = "हॢ",
+ ["hLLI"] = "हॣ",
+ ["hRRi"] = "हृ",
+ ["hRRI"] = "हॄ",
+ ---
+ ["ḻa"] = "ळ",
+ ["ḻA"] = "ळा",
+ ["ḻi"] = "ळि",
+ ["ḻI"] = "ळी",
+ ["ḻu"] = "ळु",
+ ["ḻU"] = "ळू",
+ ["ḻe"] = "ळे",
+ ["ḻo"] = "ळो",
+ ["ḻai"] = "ळै",
+ ["ḻau"] = "ळौ",
+ ["ḻLLi"] = "ळॢ",
+ ["ḻLLI"] = "ळॣ",
+ ["ḻRRi"] = "ळृ",
+ ["ḻRRI"] = "ळॄ",
+ ---
+ ["xa"] = "क्ष",
+ ["xA"] = "क्षा",
+ ["xi"] = "क्षि",
+ ["xI"] = "क्षी",
+ ["xu"] = "क्षु",
+ ["xU"] = "क्षू",
+ ["xe"] = "क्षे",
+ ["xo"] = "क्षो",
+ ["xai"] = "क्षै",
+ ["xau"] = "क्षौ",
+ ["xLLi"] = "क्षॢ",
+ ["xLLI"] = "क्षॣ",
+ ["xRRi"] = "क्षृ",
+ ["xRRI"] = "क्षॄ",
+ ---
+ ["j~na"] = "ज्ञ",
+ ["j~nA"] = "ज्ञा",
+ ["j~ni"] = "ज्ञि",
+ ["j~nI"] = "ज्ञी",
+ ["j~nu"] = "ज्ञु",
+ ["j~nU"] = "ज्ञू",
+ ["j~ne"] = "ज्ञे",
+ ["j~no"] = "ज्ञो",
+ ["j~nai"] = "ज्ञै",
+ ["j~nau"] = "ज्ञौ",
+ ["j~nLLi"] = "ज्ञॢ",
+ ["j~nLLI"] = "ज्ञॣ",
+ ["j~nRRi"] = "ज्ञृ",
+ ["j~nRRI"] = "ज्ञॄ",
+ ---
+ ["k"] = "क्",
+ ["kh"] = "ख्",
+ ["g"] = "ग्",
+ ["gh"] = "घ्",
+ ["~N"] = "ङ्",
+ ["c"] = "च्",
+ ["ch"] = "छ्",
+ ["j"] = "ज्",
+ ["jh"] = "झ्",
+ ["~n"] = "ञ्",
+ ["T"] = "ट्",
+ ["Th"] = "ठ्",
+ ["D"] = "ड्",
+ ["Dh"] = "ढ्",
+ ["N"] = "ण्",
+ ["t"] = "त्",
+ ["th"] = "थ्",
+ ["d"] = "द्",
+ ["dh"] = "ध्",
+ ["n"] = "न्",
+ ["p"] = "प्",
+ ["ph"] = "फ्",
+ ["b"] = "ब्",
+ ["bh"] = "भ्",
+ ["m"] = "म्",
+ ["y"] = "य्",
+ ["r"] = "र्",
+ ["l"] = "ल्",
+ ["v"] = "व्",
+ ["sh"] = "श्",
+ ["Sh"] = "ष्",
+ ["s"] = "स्",
+ ["h"] = "ह्",
+ ["ḻ"] = "ळ्",
+ ["x"] = "क्ष्",
+ ["j~n"] = "ज्ञ्",
+ -- yogavaahas (always with phonetic)
+ ["M"] = "ं",
+ ["H"] = "ः",
+ ["ँ"] = "ँ",
+ -- punctuations
+ ["viraama"] = "्",
+ ["."] = "।",
+ ["|"] = "।",
+ ["||"] = "॥",
+ },
+ },
+ ["deva to iast"] = {
+ mapping = {
+ -- vowels
+ ["अ"] = "a",
+ ["आ"] = "ā",
+ ["इ"] = "i",
+ ["ई"] = "ī",
+ ["उ"] = "u",
+ ["ऊ"] = "ū",
+ ["ऋ"] = "ṛ",
+ ["ॠ"] = "ṝ",
+ ["ऌ"] = "ḷ",
+ ["ॡ"] = "ḹ",
+ ["ऎ"] = "è",
+ ["ए"] = "e",
+ ["ऐ"] = "ai",
+ ["ऒ"] = "ò",
+ ["ओ"] = "o",
+ ["औ"] = "au",
+ -- consonant + vowel forms
+ ["क"]= "ka",
+ ["का"] = "kā",
+ ["कि"] = "ki",
+ ["की"] = "kī",
+ ["कु"] = "ku",
+ ["कू"] = "kū",
+ ["के"] = "ke",
+ ["को"] = "ko",
+ ["कै"] = "kai",
+ ["कौ"] = "kau",
+ ["कॢ"] = "kḷ",
+ ["कॣ"] = "kḹ",
+ ["कृ"] = "kṛ",
+ ["कॄ"] = "kṝ",
+ ---
+ ["ख"]= "kha",
+ ["खा"] = "khā",
+ ["खि"] = "khi",
+ ["खी"] = "khī",
+ ["खु"] = "khu",
+ ["खू"] = "khū",
+ ["खे"] = "khe",
+ ["खो"] = "kho",
+ ["खै"] = "khai",
+ ["खौ"] = "khau",
+ ["खॢ"] = "khḷ",
+ ["खॣ"] = "khḹ",
+ ["खृ"] = "khṛ",
+ ["खॄ"] = "khṝ",
+ ---
+ ["ग"]= "ga",
+ ["गा"] = "gā",
+ ["गि"] = "gi",
+ ["गी"] = "gī",
+ ["गु"] = "gu",
+ ["गू"] = "gū",
+ ["गे"] = "ge",
+ ["गो"] = "go",
+ ["गै"] = "gai",
+ ["गौ"] = "gau",
+ ["गॢ"] = "gḷ",
+ ["गॣ"] = "gḹ",
+ ["गृ"] = "gṛ",
+ ["गॄ"] = "gṝ",
+ ---
+ ["घ"]= "gha",
+ ["घा"] = "ghā",
+ ["घि"] = "ghi",
+ ["घी"] = "ghī",
+ ["घु"] = "ghu",
+ ["घू"] = "ghū",
+ ["घे"] = "ghe",
+ ["घो"] = "gho",
+ ["घै"] = "ghai",
+ ["घौ"] = "ghau",
+ ["घॢ"] = "ghḷ",
+ ["घॣ"] = "ghḹ",
+ ["घृ"] = "ghṛ",
+ ["घॄ"] = "ghṝ",
+ ---
+ ["ङ"]= "ṅa",
+ ["ङा"] = "ṅā",
+ ["ङि"] = "ṅi",
+ ["ङी"] = "ṅī",
+ ["ङु"] = "ṅu",
+ ["ङू"] = "ṅū",
+ ["ङे"] = "ṅe",
+ ["ङो"] = "ṅo",
+ ["ङै"] = "ṅai",
+ ["ङौ"] = "ṅau",
+ ["ङॢ"] = "ṅḷ",
+ ["ङॣ"] = "ṅḹ",
+ ["ङृ"] = "ṅṛ",
+ ["ङॄ"] = "ṅṝ",
+ ---
+ ["च"]= "ca",
+ ["चा"] = "cā",
+ ["चि"] = "ci",
+ ["ची"] = "cī",
+ ["चु"] = "cu",
+ ["चू"] = "cū",
+ ["चे"] = "ce",
+ ["चो"] = "co",
+ ["चै"] = "cai",
+ ["चौ"] = "cau",
+ ["चॢ"] = "cḷ",
+ ["चॣ"] = "cḹ",
+ ["चृ"] = "cṛ",
+ ["चॄ"] = "cṝ",
+ --
+ ["छ"]= "cha",
+ ["छा"] = "chā",
+ ["छि"] = "chi",
+ ["छी"] = "chī",
+ ["छु"] = "chu",
+ ["छू"] = "chū",
+ ["छे"] = "che",
+ ["छो"] = "cho",
+ ["छै"] = "chai",
+ ["छौ"] = "chau",
+ ["छॢ"] = "chḷ",
+ ["छॣ"] = "chḹ",
+ ["छृ"] = "chṛ",
+ ["छॄ"] = "chṝ",
+ --
+ ["ज"]= "ja",
+ ["जा"] = "jā",
+ ["जि"] = "ji",
+ ["जी"] = "jī",
+ ["जु"] = "ju",
+ ["जू"] = "jū",
+ ["जे"] = "je",
+ ["जो"] = "jo",
+ ["जै"] = "jai",
+ ["जौ"] = "jau",
+ ["जॢ"] = "jḷ",
+ ["जॣ"] = "jḹ",
+ ["जृ"] = "jṛ",
+ ["जॄ"] = "jṝ",
+ --
+ ["झ"]= "jha",
+ ["झा"] = "jhā",
+ ["झि"] = "jhi",
+ ["झी"] = "jhī",
+ ["झु"] = "jhu",
+ ["झू"] = "jhū",
+ ["झे"] = "jhe",
+ ["झो"] = "jho",
+ ["झै"] = "jhai",
+ ["झौ"] = "jhau",
+ ["झॢ"] = "jhḷ",
+ ["झॣ"] = "jhḹ",
+ ["झृ"] = "jhṛ",
+ ["झॄ"] = "jhṝ",
+ --
+ ["ञ"]= "ña",
+ ["ञा"] = "ñā",
+ ["ञि"] = "ñi",
+ ["ञी"] = "ñī",
+ ["ञु"] = "ñu",
+ ["ञू"] = "ñū",
+ ["ञे"] = "ñe",
+ ["ञो"] = "ño",
+ ["ञै"] = "ñai",
+ ["ञौ"] = "ñau",
+ ["ञॢ"] = "ñḷ",
+ ["ञॣ"] = "ñḹ",
+ ["ञृ"] = "ñṛ",
+ ["ञॄ"] = "ñṝ",
+ --
+ ["ट"]= "ṭa",
+ ["टा"] = "ṭā",
+ ["टि"] = "ṭi",
+ ["टी"] = "ṭī",
+ ["टु"] = "ṭu",
+ ["टू"] = "ṭū",
+ ["टे"] = "ṭe",
+ ["टो"] = "ṭo",
+ ["टै"] = "ṭai",
+ ["टौ"] = "ṭau",
+ ["टॢ"] = "ṭḷ",
+ ["टॣ"] = "ṭḹ",
+ ["टृ"] = "ṭṛ",
+ ["टॄ"] = "ṭṝ",
+ --
+ ["ठ"]= "ṭha",
+ ["ठा"] = "ṭhā",
+ ["ठि"] = "ṭhi",
+ ["ठी"] = "ṭhī",
+ ["ठु"] = "ṭhu",
+ ["ठू"] = "ṭhū",
+ ["ठे"] = "ṭhe",
+ ["ठो"] = "ṭho",
+ ["ठै"] = "ṭhai",
+ ["ठौ"] = "ṭhau",
+ ["ठॢ"] = "ṭhḷ",
+ ["ठॣ"] = "ṭhḹ",
+ ["ठृ"] = "ṭhṛ",
+ ["ठॄ"] = "ṭhṝ",
+ --
+ ["ड"]= "ḍa",
+ ["डा"] = "ḍā",
+ ["डि"] = "ḍi",
+ ["डी"] = "ḍī",
+ ["डु"] = "ḍu",
+ ["डू"] = "ḍū",
+ ["डे"] = "ḍe",
+ ["डो"] = "ḍo",
+ ["डै"] = "ḍai",
+ ["डौ"] = "ḍau",
+ ["डॢ"] = "ḍḷ",
+ ["डॣ"] = "ḍḹ",
+ ["डृ"] = "ḍṛ",
+ ["डॄ"] = "ḍṝ",
+ --
+ ["ढ"]= "ḍha",
+ ["ढा"] = "ḍhā",
+ ["ढि"] = "ḍhi",
+ ["ढी"] = "ḍhī",
+ ["ढु"] = "ḍhu",
+ ["ढू"] = "ḍhū",
+ ["ढे"] = "ḍhe",
+ ["ढो"] = "ḍho",
+ ["ढै"] = "ḍhai",
+ ["ढौ"] = "ḍhau",
+ ["ढॢ"] = "ḍhḷ",
+ ["ढॣ"] = "ḍhḹ",
+ ["ढृ"] = "ḍhṛ",
+ ["ढॄ"] = "ḍhṝ",
+ --
+ ["ण"]= "ṇa",
+ ["णा"] = "ṇā",
+ ["णि"] = "ṇi",
+ ["णी"] = "ṇī",
+ ["णु"] = "ṇu",
+ ["णू"] = "ṇū",
+ ["णे"] = "ṇe",
+ ["णो"] = "ṇo",
+ ["णै"] = "ṇai",
+ ["णौ"] = "ṇau",
+ ["णॢ"] = "ṇḷ",
+ ["णॣ"] = "ṇḹ",
+ ["णृ"] = "ṇṛ",
+ ["णॄ"] = "ṇṝ",
+ --
+ ["त"]= "ta",
+ ["ता"] = "tā",
+ ["ति"] = "ti",
+ ["ती"] = "tī",
+ ["तु"] = "tu",
+ ["तू"] = "tū",
+ ["ते"] = "te",
+ ["तो"] = "to",
+ ["तै"] = "tai",
+ ["तौ"] = "tau",
+ ["तॢ"] = "tḷ",
+ ["तॣ"] = "tḹ",
+ ["तृ"] = "tṛ",
+ ["तॄ"] = "tṝ",
+ --
+ ["थ"]= "tha",
+ ["था"] = "thā",
+ ["थि"] = "thi",
+ ["थी"] = "thī",
+ ["थु"] = "thu",
+ ["थू"] = "thū",
+ ["थे"] = "the",
+ ["थो"] = "tho",
+ ["थै"] = "thai",
+ ["थौ"] = "thau",
+ ["थॢ"] = "thḷ",
+ ["थॣ"] = "thḹ",
+ ["थृ"] = "thṛ",
+ ["थॄ"] = "thṝ",
+ --
+ ["द"]= "da",
+ ["दा"] = "dā",
+ ["दि"] = "di",
+ ["दी"] = "dī",
+ ["दु"] = "du",
+ ["दू"] = "dū",
+ ["दे"] = "de",
+ ["दो"] = "do",
+ ["दै"] = "dai",
+ ["दौ"] = "dau",
+ ["दॢ"] = "dḷ",
+ ["दॣ"] = "dḹ",
+ ["दृ"] = "dṛ",
+ ["दॄ"] = "dṝ",
+ --
+ ["ध"]= "dha",
+ ["धा"] = "dhā",
+ ["धि"] = "dhi",
+ ["धी"] = "dhī",
+ ["धु"] = "dhu",
+ ["धू"] = "dhū",
+ ["धे"] = "dhe",
+ ["धो"] = "dho",
+ ["धै"] = "dhai",
+ ["धौ"] = "dhau",
+ ["धॢ"] = "dhḷ",
+ ["धॣ"] = "dhḹ",
+ ["धृ"] = "dhṛ",
+ ["धॄ"] = "dhṝ",
+ --
+ ["न"]= "na",
+ ["ना"] = "nā",
+ ["नि"] = "ni",
+ ["नी"] = "nī",
+ ["नु"] = "nu",
+ ["नू"] = "nū",
+ ["ने"] = "ne",
+ ["नो"] = "no",
+ ["नै"] = "nai",
+ ["नौ"] = "nau",
+ ["नॢ"] = "nḷ",
+ ["नॣ"] = "nḹ",
+ ["नृ"] = "nṛ",
+ ["नॄ"] = "nṝ",
+ --
+ ["प"]= "pa",
+ ["पा"] = "pā",
+ ["पि"] = "pi",
+ ["पी"] = "pī",
+ ["पु"] = "pu",
+ ["पू"] = "pū",
+ ["पे"] = "pe",
+ ["पो"] = "po",
+ ["पै"] = "pai",
+ ["पौ"] = "pau",
+ ["पॢ"] = "pḷ",
+ ["पॣ"] = "pḹ",
+ ["पृ"] = "pṛ",
+ ["पॄ"] = "pṝ",
+ --
+ ["फ"]= "pha",
+ ["फा"] = "phā",
+ ["फि"] = "phi",
+ ["फी"] = "phī",
+ ["फु"] = "phu",
+ ["फू"] = "phū",
+ ["फे"] = "phe",
+ ["फो"] = "pho",
+ ["फै"] = "phai",
+ ["फौ"] = "phau",
+ ["फॢ"] = "phḷ",
+ ["फॣ"] = "phḹ",
+ ["फृ"] = "phṛ",
+ ["फॄ"] = "phṝ",
+ --
+ ["ब"]= "ba",
+ ["बा"] = "bā",
+ ["बि"] = "bi",
+ ["बी"] = "bī",
+ ["बु"] = "bu",
+ ["बू"] = "bū",
+ ["बे"] = "be",
+ ["बो"] = "bo",
+ ["बै"] = "bai",
+ ["बौ"] = "bau",
+ ["बॢ"] = "bḷ",
+ ["बॣ"] = "bḹ",
+ ["बृ"] = "bṛ",
+ ["बॄ"] = "bṝ",
+ --
+ ["भ"]= "bha",
+ ["भा"] = "bhā",
+ ["भि"] = "bhi",
+ ["भी"] = "bhī",
+ ["भु"] = "bhu",
+ ["भू"] = "bhū",
+ ["भे"] = "bhe",
+ ["भो"] = "bho",
+ ["भै"] = "bhai",
+ ["भौ"] = "bhau",
+ ["भॢ"] = "bhḷ",
+ ["भॣ"] = "bhḹ",
+ ["भृ"] = "bhṛ",
+ ["भॄ"] = "bhṝ",
+ --
+ ["म"]= "ma",
+ ["मा"] = "mā",
+ ["मि"] = "mi",
+ ["मी"] = "mī",
+ ["मु"] = "mu",
+ ["मू"] = "mū",
+ ["मे"] = "me",
+ ["मो"] = "mo",
+ ["मै"] = "mai",
+ ["मौ"] = "mau",
+ ["मॢ"] = "mḷ",
+ ["मॣ"] = "mḹ",
+ ["मृ"] = "mṛ",
+ ["मॄ"] = "mṝ",
+ --
+ ["य"]= "ya",
+ ["या"] = "yā",
+ ["यि"] = "yi",
+ ["यी"] = "yī",
+ ["यु"] = "yu",
+ ["यू"] = "yū",
+ ["ये"] = "ye",
+ ["यो"] = "yo",
+ ["यै"] = "yai",
+ ["यौ"] = "yau",
+ ["यॢ"] = "yḷ",
+ ["यॣ"] = "yḹ",
+ ["यृ"] = "yṛ",
+ ["यॄ"] = "yṝ",
+ --
+ ["र"]= "ra",
+ ["रा"] = "rā",
+ ["रि"] = "ri",
+ ["री"] = "rī",
+ ["रु"] = "ru",
+ ["रू"] = "rū",
+ ["रे"] = "re",
+ ["रो"] = "ro",
+ ["रै"] = "rai",
+ ["रौ"] = "rau",
+ ["रॢ"] = "rḷ",
+ ["रॣ"] = "rḹ",
+ ["रृ"] = "rṛ",
+ ["रॄ"] = "rṝ",
+ --
+ ["ल"]= "la",
+ ["ला"] = "lā",
+ ["लि"] = "li",
+ ["ली"] = "lī",
+ ["लु"] = "lu",
+ ["लू"] = "lū",
+ ["ले"] = "le",
+ ["लो"] = "lo",
+ ["लै"] = "lai",
+ ["लौ"] = "lau",
+ ["लॢ"] = "lḷ",
+ ["लॣ"] = "lḹ",
+ ["लृ"] = "lṛ",
+ ["लॄ"] = "lṝ",
+ --
+ ["व"]= "va",
+ ["वा"] = "vā",
+ ["वि"] = "vi",
+ ["वी"] = "vī",
+ ["वु"] = "vu",
+ ["वू"] = "vū",
+ ["वे"] = "ve",
+ ["वो"] = "vo",
+ ["वै"] = "vai",
+ ["वौ"] = "vau",
+ ["वॢ"] = "vḷ",
+ ["वॣ"] = "vḹ",
+ ["वृ"] = "vṛ",
+ ["वॄ"] = "vṝ",
+ --
+ ["ष"]= "ṣa",
+ ["षा"] = "ṣā",
+ ["षि"] = "ṣi",
+ ["षी"] = "ṣī",
+ ["षु"] = "ṣu",
+ ["षू"] = "ṣū",
+ ["षे"] = "ṣe",
+ ["षो"] = "ṣo",
+ ["षै"] = "ṣai",
+ ["षौ"] = "ṣau",
+ ["षॢ"] = "ṣḷ",
+ ["षॣ"] = "ṣḹ",
+ ["षृ"] = "ṣṛ",
+ ["षॄ"] = "ṣṝ",
+ --
+ ["श"]= "śa",
+ ["शा"] = "śā",
+ ["शि"] = "śi",
+ ["शी"] = "śī",
+ ["शु"] = "śu",
+ ["शू"] = "śū",
+ ["शे"] = "śe",
+ ["शो"] = "śo",
+ ["शै"] = "śai",
+ ["शौ"] = "śau",
+ ["शॢ"] = "śḷ",
+ ["शॣ"] = "śḹ",
+ ["शृ"] = "śṛ",
+ ["शॄ"] = "śṝ",
+ --
+ ["स"]= "sa",
+ ["सा"] = "sā",
+ ["सि"] = "si",
+ ["सी"] = "sī",
+ ["सु"] = "su",
+ ["सू"] = "sū",
+ ["से"] = "se",
+ ["सो"] = "so",
+ ["सै"] = "sai",
+ ["सौ"] = "sau",
+ ["सॢ"] = "sḷ",
+ ["सॣ"] = "sḹ",
+ ["सृ"] = "sṛ",
+ ["सॄ"] = "sṝ",
+ --
+ ["ह"]= "ha",
+ ["हा"] = "hā",
+ ["हि"] = "hi",
+ ["ही"] = "hī",
+ ["हु"] = "hu",
+ ["हू"] = "hū",
+ ["हे"] = "he",
+ ["हो"] = "ho",
+ ["है"] = "hai",
+ ["हौ"] = "hau",
+ ["हॢ"] = "hḷ",
+ ["हॣ"] = "hḹ",
+ ["हृ"] = "hṛ",
+ ["हॄ"] = "hṝ",
+ --
+ ["ळ"]= "l̤a",
+ ["ळा"] = "l̤ā",
+ ["ळि"] = "l̤i",
+ ["ळी"] = "l̤ī",
+ ["ळु"] = "l̤u",
+ ["ळू"] = "l̤ū",
+ ["ळे"] = "l̤e",
+ ["ळो"] = "l̤o",
+ ["ळै"] = "l̤ai",
+ ["ळौ"] = "l̤au",
+ ["ळॢ"] = "l̤ḷ",
+ ["ळॣ"] = "l̤ḹ",
+ ["ळृ"] = "l̤ṛ",
+ ["ळॄ"] = "l̤ṝ",
+ ---
+ ["क्ष"]= "kṣa",
+ ["क्षा"] = "kṣā",
+ ["क्षि"] = "kṣi",
+ ["क्षी"] = "kṣī",
+ ["क्षु"] = "kṣu",
+ ["क्षू"] = "kṣū",
+ ["क्षे"] = "kṣe",
+ ["क्षो"] = "kṣo",
+ ["क्षै"] = "kṣai",
+ ["क्षौ"] = "kṣau",
+ ["क्षॢ"] = "kṣḷ",
+ ["क्षॣ"] = "kṣḹ",
+ ["क्षृ"] = "kṣṛ",
+ ["क्षॄ"] = "kṣṝ",
+ ---
+ ["ज्ञ"]= "jña",
+ ["ज्ञा"] = "jñā",
+ ["ज्ञि"] = "jñi",
+ ["ज्ञी"] = "jñī",
+ ["ज्ञु"] = "jñu",
+ ["ज्ञू"] = "jñū",
+ ["ज्ञे"] = "jñe",
+ ["ज्ञो"] = "jño",
+ ["ज्ञै"] = "jñai",
+ ["ज्ञौ"] = "jñau",
+ ["ज्ञॢ"] = "jñḷ",
+ ["ज्ञॣ"] = "jñḹ",
+ ["ज्ञृ"] = "jñṛ",
+ ["ज्ञॄ"] = "jñṝ",
+ --
+ ["क्"]= "k",
+ ["ख्"] = "kh",
+ ["ग्"] = "g",
+ ["घ्"] = "gh",
+ ["ङ्"] = "ṅ",
+ ["च्"] = "c",
+ ["छ्"] = "ch",
+ ["ज्"] = "j",
+ ["झ्"] = "jh",
+ ["ञ्"] = "ñ",
+ ["ट्"] = "ṭ",
+ ["ठ्"] = "ṭh",
+ ["ड्"] = "ḍ",
+ ["ढ्"] = "ḍh",
+ ["ण्"] = "ṇ",
+ ["त्"] = "t",
+ ["थ्"] = "th",
+ ["द्"] = "d",
+ ["ध्"] = "dh",
+ ["न्"] = "n",
+ ["प्"] = "p",
+ ["फ्"] = "ph",
+ ["ब्"] = "b",
+ ["भ्"] = "bh",
+ ["म्"] = "m",
+ ["य्"] = "y",
+ ["र्"] = "r",
+ ["ल्"] = "l",
+ ["व्"] = "v",
+ ["श्"] = "ś",
+ ["ष्"] = "ṣ",
+ ["स्"] = "s",
+ ["ह्"] = "h",
+ ["ळ्"] = "l̤",
+ ["क्ष्"] = "kṣ",
+ ["ज्ञ्"] = "jñ",
+ -- discard virama (?!) TODO: revisit this if need arises
+ -- ["्"] = "",
+ ["।"] = "|",
+ ["॥"] = "||",
+ ["ं"] = "ṃ",
+ ["ः"] = "ḥ",
+ ["ऽ"] = "\'",
+ -- disputed
+ ["ँ"] = "̃",
+ -- diactrics (combining): provided for completeness
+ -- warning: many fonts don't have these
+ ["॒"] = "॒",
+ -- could not test
+ -- ["॑"] = "̭",
+ ["॑"] = "॑",
+ ["᳚"] = "᳚",
+ ["᳛"] = "᳛",
+ ["᳡"] = "̀",
+ ["꣡"] = "́",
+ ["꣢"] = "²",
+ ["꣣"] = "³",
+ ["꣤"] = "⁴",
+ ["꣥"] = "⁵",
+ ["꣦"] = "⁶",
+ ["꣧"] = "⁷",
+ ["꣨"] = "⁸",
+ ["꣩"] = "⁹",
+ ["꣪"] = "꣪",
+ ["꣫"] = "꣫",
+ ["꣬"] = "꣬",
+ ["꣭"] = "꣭",
+ ["꣮"] = "꣮",
+ ["꣯"] = "꣯",
+ ["꣰"] = "꣰",
+ ["꣱"] = "꣱",
+ },
+ },
+ ["deva to mlym"] = {
+ mapping = {
+ -- vowels
+ ["अ"] = "അ",
+ ["आ"] = "ആ",
+ ["इ"] = "ഇ",
+ ["ई"] = "ഈ",
+ ["उ"] = "ഉ",
+ ["ऊ"] = "ഊ",
+ ["ऋ"] = "ഋ",
+ ["ॠ"] = "ൠ",
+ ["ऌ"] = "ഌ",
+ ["ॡ"] = "ൡ",
+ ["ऎ"] = "എ",
+ ["ए"] = "ഏ",
+ ["ऐ"] = "ഐ",
+ ["ऒ"] = "ഒ",
+ ["ओ"] = "ഓ",
+ ["औ"] = "ഔ",
+ -- consonants
+ ["क"] = "ക",
+ ["ख"] = "ഖ",
+ ["ग"] = "ഗ",
+ ["घ"] = "ഘ",
+ ["ङ"] = "ങ",
+ ["च"] = "ച",
+ ["छ"] = "ഛ",
+ ["ज"] = "ജ",
+ ["झ"] = "ഝ",
+ ["ञ"] = "ഞ",
+ ["ट"] = "ട",
+ ["ठ"] = "ഠ",
+ ["ड"] = "ഡ",
+ ["ढ"] = "ഢ",
+ ["ण"] = "ണ",
+ ["त"] = "ത",
+ ["थ"] = "ഥ",
+ ["द"] = "ദ",
+ ["ध"] = "ധ",
+ ["न"] = "ന",
+ ["प"] = "പ",
+ ["फ"] = "ഫ",
+ ["ब"] = "ബ",
+ ["भ"] = "ഭ",
+ ["म"] = "മ",
+ ["य"] = "യ",
+ ["र"] = "ര",
+ ["ल"] = "ല",
+ ["व"] = "വ",
+ ["श"] = "ശ",
+ ["ष"] = "ഷ",
+ ["स"] = "സ",
+ ["ह"] = "ഹ",
+ ["ळ"] = "ള",
+ ["क्ष"] = "ക്ഷ",
+ ["ज्ञ"] = "ജ്ഞ",
+ -- vowel marks
+ ["ा"] = "ാ",
+ ["ि"] = "ി",
+ ["ी"] = "ീ",
+ ["ु"] = "ു",
+ ["ू"] = "ൂ",
+ ["ृ"] = "ൃ",
+ ["ॄ"] = "ൄ",
+ ["ॢ"] = "ൢ",
+ ["ॣ"] = "ൣ",
+ ["ॆ"] = "െ",
+ ["े"] = "േ",
+ ["ै"] = "ൈ",
+ ["ॊ"] = "ൊ",
+ ["ो"] = "ോ",
+ ["ौ"] = "ൌ",
+ -- always with phonetic
+ ["ं"] = "ം",
+ ["ः"] = "ഃ",
+ ["ँ"] = "ഁ",
+ -- punctuation marks
+ ["्"] = "്",
+ ["'"] = "'",
+ ["।"] = ".",
+ ["॥"] = ".",
+ ["‘"] = "‘",
+ ["’"] = "’",
+ },
+ },
+ ["deva to tlgu"] = {
+ mapping = {
+ -- vowels
+ ["अ"] = "అ",
+ ["आ"] = "ఆ",
+ ["इ"] = "ఇ",
+ ["ई"] = "ఈ",
+ ["उ"] = "ఉ",
+ ["ऊ"] = "ఊ",
+ ["ऋ"] = "ఋ",
+ ["ॠ"] = "ౠ",
+ ["ऌ"] = "ఌ",
+ ["ॡ"] = "ౡ",
+ ["ऎ"] = "ఎ",
+ ["ए"] = "ఏ",
+ ["ऐ"] = "ఐ",
+ ["ऒ"] = "ఒ",
+ ["ओ"] = "ఓ",
+ ["औ"] = "ఔ",
+ -- consonants
+ ["क"] = "క",
+ ["ख"] = "ఖ",
+ ["ग"] = "గ",
+ ["घ"] = "ఘ",
+ ["ङ"] = "ఙ",
+ ["च"] = "చ",
+ ["छ"] = "ఛ",
+ ["ज"] = "జ",
+ ["झ"] = "ఝ",
+ ["ञ"] = "ఞ",
+ ["ट"] = "ట",
+ ["ठ"] = "ఠ",
+ ["ड"] = "డ",
+ ["ढ"] = "ఢ",
+ ["ण"] = "ణ",
+ ["त"] = "త",
+ ["थ"] = "థ",
+ ["द"] = "ద",
+ ["ध"] = "ధ",
+ ["न"] = "న",
+ ["प"] = "ప",
+ ["फ"] = "ఫ",
+ ["ब"] = "బ",
+ ["भ"] = "భ",
+ ["म"] = "మ",
+ ["य"] = "య",
+ ["र"] = "ర",
+ ["ल"] = "ల",
+ ["व"] = "వ",
+ ["श"] = "శ",
+ ["ष"] = "ష",
+ ["स"] = "స",
+ ["ह"] = "హ",
+ ["ळ"] = "ళ",
+ ["क्ष"] = "క్ష",
+ ["ज्ञ"] = "జ్ఞ",
+ -- vowel marks
+ ["ा"] = "ా",
+ ["ि"] = "ి",
+ ["ी"] = "ీ",
+ ["ु"] = "ు",
+ ["ू"] = "ూ",
+ ["ृ"] = "ృ",
+ ["ॄ"] = "ౄ",
+ ["ॢ"] = "ౢ",
+ ["ॣ"] = "ౣ",
+ ["ॆ"] = "ె",
+ ["े"] = "ే",
+ ["ै"] = "ై",
+ ["ॊ"] = "ొ",
+ ["ो"] = "ో",
+ ["ौ"] = "ౌ",
+ -- always with phonetic
+ ["ं"] = "ం",
+ ["ः"] = "ః",
+ ["ँ"] = "ఀ",
+ -- punctuation marks
+ ["्"] = "్",
+ ["'"] = "'",
+ ["।"] = ".",
+ ["॥"] = ".",
+ ["‘"] = "‘",
+ ["’"] = "’",
+ },
+ },
+ ["deva to knda"] = {
+ mapping = {
+ -- vowels
+ ["अ"] = "ಅ",
+ ["आ"] = "ಆ",
+ ["इ"] = "ಇ",
+ ["ई"] = "ಈ",
+ ["उ"] = "ಉ",
+ ["ऊ"] = "ಊ",
+ ["ऋ"] = "ಋ",
+ ["ॠ"] = "ೠ",
+ ["ऌ"] = "ಌ",
+ ["ॡ"] = "ೡ",
+ ["ऎ"] = "ಎ",
+ ["ए"] = "ಏ",
+ ["ऐ"] = "ಐ",
+ ["ऒ"] = "ಒ",
+ ["ओ"] = "ಓ",
+ ["औ"] = "ಔ",
+ -- consonants
+ ["क"] = "ಕ",
+ ["ख"] = "ಖ",
+ ["ग"] = "ಗ",
+ ["घ"] = "ಘ",
+ ["ङ"] = "ಙ",
+ ["च"] = "ಚ",
+ ["छ"] = "ಛ",
+ ["ज"] = "ಜ",
+ ["झ"] = "ಝ",
+ ["ञ"] = "ಞ",
+ ["ट"] = "ಟ",
+ ["ठ"] = "ಠ",
+ ["ड"] = "ಡ",
+ ["ढ"] = "ಢ",
+ ["ण"] = "ಣ",
+ ["त"] = "ತ",
+ ["थ"] = "ಥ",
+ ["द"] = "ದ",
+ ["ध"] = "ಧ",
+ ["न"] = "ನ",
+ ["प"] = "ಪ",
+ ["फ"] = "ಫ",
+ ["ब"] = "ಬ",
+ ["भ"] = "ಭ",
+ ["म"] = "ಮ",
+ ["य"] = "ಯ",
+ ["र"] = "ರ",
+ ["ल"] = "ಲ",
+ ["व"] = "ವ",
+ ["श"] = "ಶ",
+ ["ष"] = "ಷ",
+ ["स"] = "ಸ",
+ ["ह"] = "ಹ",
+ ["ळ"] = "ಳ",
+ ["क्ष"] = "ಕ್ಷ",
+ ["ज्ञ"] = "ಜ್ಞ",
+ -- vowel marks
+ ["ा"] = "ಾ",
+ ["ि"] = "ಿ",
+ ["ी"] = "ೀ",
+ ["ु"] = "ು",
+ ["ू"] = "ೂ",
+ ["ृ"] = "ೃ",
+ ["ॄ"] = "ೄ",
+ ["ॢ"] = "ೢ",
+ ["ॣ"] = "ೣ",
+ ["ॆ"] = "ೆ",
+ ["े"] = "ೇ",
+ ["ै"] = "ೈ",
+ ["ॊ"] = "ೊ",
+ ["ो"] = "ೋ",
+ ["ौ"] = "ೌ",
+ -- always with phonetic
+ ["ं"] = "ಂ",
+ ["ः"] = "ಃ",
+ ["ँ"] = "ಁ",
+ -- punctuation marks
+ ["्"] = "್",
+ ["'"] = "'",
+ ["।"] = ".",
+ ["॥"] = ".",
+ ["‘"] = "‘",
+ ["’"] = "’",
+ },
+ },
+ ["deva to gujr"] = {
+ mapping = {
+ -- vowels
+ ["अ"] = "અ",
+ ["आ"] = "આ",
+ ["इ"] = "ઇ",
+ ["ई"] = "ઈ",
+ ["उ"] = "ઉ",
+ ["ऊ"] = "ઊ",
+ ["ऋ"] = "ઋ",
+ ["ॠ"] = "ૠ",
+ ["ऌ"] = "ઌ",
+ ["ॡ"] = "ૡ",
+ -- ["ऎ"] = "",
+ ["ए"] = "એ",
+ ["ऐ"] = "ઐ",
+ -- ["ऒ"] = "",
+ ["ओ"] = "ઓ",
+ ["औ"] = "ઔ",
+ -- consonants
+ ["क"] = "ક",
+ ["ख"] = "ખ",
+ ["ग"] = "ગ",
+ ["घ"] = "ઘ",
+ ["ङ"] = "ઙ",
+ ["च"] = "ચ",
+ ["छ"] = "છ",
+ ["ज"] = "જ",
+ ["झ"] = "ઝ",
+ ["ञ"] = "ઞ",
+ ["ट"] = "ટ",
+ ["ठ"] = "ઠ",
+ ["ड"] = "ડ",
+ ["ढ"] = "ઢ",
+ ["ण"] = "ણ",
+ ["त"] = "ત",
+ ["थ"] = "થ",
+ ["द"] = "દ",
+ ["ध"] = "ધ",
+ ["न"] = "ન",
+ ["प"] = "પ",
+ ["फ"] = "ફ",
+ ["ब"] = "બ",
+ ["भ"] = "ભ",
+ ["म"] = "મ",
+ ["य"] = "ય",
+ ["र"] = "ર",
+ ["ल"] = "લ",
+ ["व"] = "વ",
+ ["श"] = "શ",
+ ["ष"] = "ષ",
+ ["स"] = "સ",
+ ["ह"] = "હ",
+ ["ळ"] = "ળ",
+ ["क्ष"] = "ક્ષ",
+ ["ज्ञ"] = "જ્ઞ",
+ -- vowel marks
+ ["ा"] = "ા",
+ ["ि"] = "િ",
+ ["ी"] = "ી",
+ ["ु"] = "ુ",
+ ["ू"] = "ૂ",
+ ["ृ"] = "ૃ",
+ ["ॄ"] = "ૄ",
+ ["ॢ"] = "ૢ",
+ ["ॣ"] = "ૣ",
+ -- ["ॆ"] = "",
+ ["े"] = "ે",
+ ["ै"] = "ૈ",
+ -- ["ॊ"] = "",
+ ["ो"] = "ો",
+ ["ौ"] = "ૌ",
+ -- always with phonetic
+ ["ं"] = "ં",
+ ["ः"] = "ઃ",
+ ["ँ"] = "ઁ",
+ -- punctuation marks
+ ["्"] = "્",
+ ["'"] = "'",
+ ["।"] = ".",
+ ["॥"] = ".",
+ ["‘"] = "‘",
+ ["’"] = "’",
+ },
+ },
+ ["deva to bngl"] = {
+ mapping = {
+ -- vowels
+ ["अ"] = "অ",
+ ["आ"] = "আ",
+ ["इ"] = "ই",
+ ["ई"] = "ঈ",
+ ["उ"] = "উ",
+ ["ऊ"] = "ঊ",
+ ["ऋ"] = "ঋ",
+ ["ॠ"] = "ৠ",
+ ["ऌ"] = "ঌ",
+ ["ॡ"] = "ৡ",
+ -- ["ऎ"] = "",
+ ["ए"] = "এ",
+ ["ऐ"] = "ঐ",
+ -- ["ऒ"] = "",
+ ["ओ"] = "ও",
+ ["औ"] = "ঔ",
+ -- consonants
+ ["क"] = "ক",
+ ["ख"] = "খ",
+ ["ग"] = "গ",
+ ["घ"] = "ঘ",
+ ["ङ"] = "ঙ",
+ ["च"] = "চ",
+ ["छ"] = "ছ",
+ ["ज"] = "জ",
+ ["झ"] = "ঝ",
+ ["ञ"] = "ঞ",
+ ["ट"] = "ট",
+ ["ठ"] = "ঠ",
+ ["ड"] = "ড",
+ ["ढ"] = "ঢ",
+ ["ण"] = "ণ",
+ ["त"] = "ত",
+ ["थ"] = "থ",
+ ["द"] = "দ",
+ ["ध"] = "ধ",
+ ["न"] = "ন",
+ ["प"] = "প",
+ ["फ"] = "ফ",
+ ["ब"] = "ব",
+ ["भ"] = "ভ",
+ ["म"] = "ম",
+ ["य"] = "য",
+ ["र"] = "র",
+ ["ल"] = "ল",
+ ["व"] = "ব",
+ ["श"] = "শ",
+ ["ष"] = "ষ",
+ ["स"] = "স",
+ ["ह"] = "হ",
+ -- ["ळ"] = "",
+ ["क्ष"] = "ক্ষ",
+ ["ज्ञ"] = "জ্ঞ",
+ -- vowel marks
+ ["ा"] = "া",
+ ["ि"] = "ি",
+ ["ी"] = "ী",
+ ["ु"] = "ু",
+ ["ू"] = "ূ",
+ ["ृ"] = "ৃ",
+ ["ॄ"] = "ৄ",
+ ["ॢ"] = "ৢ",
+ ["ॣ"] = "ৣ",
+ -- ["ॆ"] = "",
+ ["े"] = "ে",
+ ["ै"] = "ৈ",
+ -- ["ॊ"] = "",
+ ["ो"] = "ো",
+ ["ौ"] = "ৌ",
+ -- always with phonetic
+ ["ं"] = "ং",
+ ["ः"] = "ঃ",
+ ["ँ"] = "ঁ",
+ -- punctuation marks
+ ["्"] = "্",
+ ["'"] = "'",
+ ["।"] = ".",
+ ["॥"] = ".",
+ ["‘"] = "‘",
+ ["’"] = "’",
+ },
+ },
+ }
+}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-imp-serbian.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-imp-serbian.lua
index 377d6dfde1d..6212500c264 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-imp-serbian.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-imp-serbian.lua
@@ -1,38 +1,81 @@
+local c2l = {
+ mapping = {
+ ["А"] = "A", ["а"] = "a",
+ ["Б"] = "B", ["б"] = "b",
+ ["В"] = "V", ["в"] = "v",
+ ["Г"] = "G", ["г"] = "g",
+ ["Д"] = "D", ["д"] = "d",
+ ["Ђ"] = "Đ", ["ђ"] = "đ",
+ ["Е"] = "E", ["е"] = "e",
+ ["Ж"] = "Ž", ["ж"] = "ž",
+ ["З"] = "Z", ["з"] = "z",
+ ["И"] = "I", ["и"] = "i",
+ ["Ј"] = "J", ["ј"] = "j",
+ ["К"] = "K", ["к"] = "k",
+ ["Л"] = "L", ["л"] = "l",
+ ["Љ"] = "Lj", ["љ"] = "lj",
+ ["М"] = "M", ["м"] = "m",
+ ["Н"] = "N", ["н"] = "n",
+ ["Њ"] = "Nj", ["њ"] = "nj",
+ ["О"] = "O", ["о"] = "o",
+ ["П"] = "P", ["п"] = "p",
+ ["Р"] = "R", ["р"] = "r",
+ ["С"] = "S", ["с"] = "s",
+ ["Т"] = "T", ["т"] = "t",
+ ["Ћ"] = "Ć", ["ћ"] = "ć",
+ ["У"] = "U", ["у"] = "u",
+ ["Ф"] = "F", ["ф"] = "f",
+ ["Х"] = "H", ["х"] = "h",
+ ["Ц"] = "C", ["ц"] = "c",
+ ["Ч"] = "Č", ["ч"] = "č",
+ ["Џ"] = "Dž", ["џ"] = "dž",
+ ["Ш"] = "Š", ["ш"] = "š",
+ }
+}
+
+local C2L = {
+ mapping = {
+ ["А"] = "A", ["а"] = "a",
+ ["Б"] = "B", ["б"] = "b",
+ ["В"] = "V", ["в"] = "v",
+ ["Г"] = "G", ["г"] = "g",
+ ["Д"] = "D", ["д"] = "d",
+ ["Ђ"] = "Đ", ["ђ"] = "đ",
+ ["Е"] = "E", ["е"] = "e",
+ ["Ж"] = "Ž", ["ж"] = "ž",
+ ["З"] = "Z", ["з"] = "z",
+ ["И"] = "I", ["и"] = "i",
+ ["Ј"] = "J", ["ј"] = "j",
+ ["К"] = "K", ["к"] = "k",
+ ["Л"] = "L", ["л"] = "l",
+ ["Љ"] = "LJ", ["љ"] = "lj",
+ ["М"] = "M", ["м"] = "m",
+ ["Н"] = "N", ["н"] = "n",
+ ["Њ"] = "NJ", ["њ"] = "nj",
+ ["О"] = "O", ["о"] = "o",
+ ["П"] = "P", ["п"] = "p",
+ ["Р"] = "R", ["р"] = "r",
+ ["С"] = "S", ["с"] = "s",
+ ["Т"] = "T", ["т"] = "t",
+ ["Ћ"] = "Ć", ["ћ"] = "ć",
+ ["У"] = "U", ["у"] = "u",
+ ["Ф"] = "F", ["ф"] = "f",
+ ["Х"] = "H", ["х"] = "h",
+ ["Ц"] = "C", ["ц"] = "c",
+ ["Ч"] = "Č", ["ч"] = "č",
+ ["Џ"] = "DŽ", ["џ"] = "dž",
+ ["Ш"] = "Š", ["ш"] = "š",
+ }
+}
+
return {
+ name = "sebian transliterations",
+ version = "1.00",
+ author = "Hans Hagen & Ivan Pešić",
+ copyright = "ConTeXt development team & whoever made this list",
transliterations = {
- ["serbian to latin"] = {
- mapping = {
- ["А"] = "A", ["а"] = "a",
- ["Б"] = "B", ["б"] = "b",
- ["В"] = "V", ["в"] = "v",
- ["Г"] = "G", ["г"] = "g",
- ["Д"] = "D", ["д"] = "d",
- ["Е"] = "E", ["е"] = "e",
- ["Ж"] = "Ž", ["ж"] = "ž",
- ["З"] = "Z", ["з"] = "z",
- ["И"] = "I", ["и"] = "i",
- ["Й"] = "J", ["й"] = "j",
- ["К"] = "K", ["к"] = "k",
- ["Л"] = "L", ["л"] = "l",
- ["М"] = "M", ["м"] = "m",
- ["Н"] = "N", ["н"] = "n",
- ["О"] = "O", ["о"] = "o",
- ["П"] = "P", ["п"] = "p",
- ["Р"] = "R", ["р"] = "r",
- ["С"] = "S", ["с"] = "s",
- ["Т"] = "T", ["т"] = "t",
- ["У"] = "U", ["у"] = "u",
- ["Ф"] = "F", ["ф"] = "f",
- ["Х"] = "Ch", ["х"] = "ch",
- ["Ц"] = "C", ["ц"] = "c",
- ["Ч"] = "Č", ["ч"] = "č",
- ["Ш"] = "Š", ["ш"] = "š",
- ["Щ"] = "Št", ["щ"] = "št",
- ["Ъ"] = "Ă", ["ъ"] = "ă",
- ["Ь"] = "′", ["ь"] = "′",
- ["Ю"] = "Ju", ["ю"] = "ju",
- ["Я"] = "Ja", ["я"] = "ja",
- }
- }
+ ["serbian to latin"] = c2l,
+ c2l = c2l,
+ C2L = C2L,
}
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-ini.lua
index 7a8aab8183f..54e5e96f841 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-ini.lua
@@ -21,7 +21,7 @@ if not modules then modules = { } end modules ['lang-ini'] = {
local type, tonumber, next = type, tonumber, next
local utfbyte = utf.byte
local format, gsub, gmatch, find = string.format, string.gsub, string.gmatch, string.find
-local concat, sortedkeys, sortedpairs, keys, insert = table.concat, table.sortedkeys, table.sortedpairs, table.keys, table.insert
+local concat, sortedkeys, sortedhash, keys, insert = table.concat, table.sortedkeys, table.sortedhash, table.keys, table.insert
local utfvalues, strip, utfcharacters = string.utfvalues, string.strip, utf.characters
local context = context
@@ -36,19 +36,20 @@ local trace_patterns = false trackers.register("languages.patterns", function(v
local report_initialization = logs.reporter("languages","initialization")
local lang = lang
+language = lang -- we use that in lmtx
-local prehyphenchar = lang.prehyphenchar -- global per language
-local posthyphenchar = lang.posthyphenchar -- global per language
-local preexhyphenchar = lang.preexhyphenchar -- global per language
-local postexhyphenchar = lang.postexhyphenchar -- global per language
------ lefthyphenmin = lang.lefthyphenmin
------ righthyphenmin = lang.righthyphenmin
-local sethjcode = lang.sethjcode
+local prehyphenchar = language.prehyphenchar -- global per language
+local posthyphenchar = language.posthyphenchar -- global per language
+local preexhyphenchar = language.preexhyphenchar -- global per language
+local postexhyphenchar = language.postexhyphenchar -- global per language
+----- lefthyphenmin = language.lefthyphenmin
+----- righthyphenmin = language.righthyphenmin
+local sethjcode = language.sethjcode
local uccodes = characters.uccodes
local lccodes = characters.lccodes
-local new_language = lang.new
+local new_language = language.new
languages = languages or {}
local languages = languages
@@ -157,11 +158,16 @@ local function sethjcodes(instance,loaded,what,factor)
loaded.codehash = h
end
--
- local function setcode(l)
- local u = uccodes[l]
+ local function setcode(code)
+ local l = lccodes[code] -- just in case we get a mixture
+ local u = uccodes[code] -- just in case we get a mixture
local s = l
+ if type(s) ~= "number" then
+ l = code
+ s = code
+ end
if hjcounts then
- local c = hjcounts[l]
+ local c = hjcounts[s]
if c then
c = c.count
if not c then
@@ -182,14 +188,14 @@ local function sethjcodes(instance,loaded,what,factor)
h[l] = s
if u ~= l and type(u) == "number" then
sethjcode(instance,u,s)
- h[u] = lccodes[l]
+ h[u] = s
end
end
--
local s = tex.savinghyphcodes
tex.savinghyphcodes = 0
if type(c) == "table" then
- for l in next, c do
+ for l in sortedhash(c) do
setcode(utfbyte(l))
end
else
@@ -500,15 +506,6 @@ else
return 0
end
end
-
- if CONTEXTLMTXMODE > 0 then
- numbers[0] = "null"
- registered.null = {
- number = 0,
- instance = new_language(0),
- }
- end
-
end
-- not that usefull, global values
@@ -584,7 +581,7 @@ languages.logger = languages.logger or { }
function languages.logger.report()
local result, r = { }, 0
- for tag, l in sortedpairs(registered) do
+ for tag, l in sortedhash(registered) do
if l.loaded then
r = r + 1
result[r] = format("%s:%s:%s",tag,l.parent,l.number)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/lang-ini.mkiv
index ffa280b053d..5bf08343adf 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-ini.mkiv
@@ -287,6 +287,8 @@
\s!righthyphenmin=2,
\s!lefthyphenchar=-1,
\s!righthyphenchar=45,
+ \s!explicitlefthyphenchar=\languageparameter\s!lefthyphenchar,
+ \s!explicitrighthyphenchar=\languageparameter\s!righthyphenchar,
% used in compound i.e. interfaced with c! and can be anything so no numbers
\c!lefthyphen=,
\c!righthyphen=-,
@@ -442,8 +444,10 @@
\righthyphenmin\numexpr0\languageparameter\s!righthyphenmin+\hyphenminoffset\relax
\hyphenationmin\numexpr0\languageparameter\s!hyphenmin\relax
% these values are stored with the language (global!)
- \prehyphenchar \languageparameter\s!righthyphenchar\relax
- \posthyphenchar\languageparameter\s!lefthyphenchar \relax}
+ \prehyphenchar \languageparameter\s!righthyphenchar\relax
+ \posthyphenchar \languageparameter\s!lefthyphenchar \relax
+ \preexhyphenchar \languageparameter\s!explicitrighthyphenchar\relax
+ \postexhyphenchar\languageparameter\s!explicitlefthyphenchar \relax}
\appendtoks
\lang_basics_synchronize_min_max
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-rep.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-rep.lua
index 9f89fa24848..d2c47f5bacd 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-rep.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-rep.lua
@@ -62,11 +62,11 @@ local setprev = nuts.setprev
local setchar = nuts.setchar
local setattrlist = nuts.setattrlist
-local insert_node_before = nuts.insert_before
+local insertbefore = nuts.insertbefore
+local insertafter = nuts.insertafter
local remove_node = nuts.remove
local copy_node = nuts.copy
-local flush_list = nuts.flush_list
-local insert_after = nuts.insert_after
+local flushlist = nuts.flushlist
local nodepool = nuts.pool
local new_disc = nodepool.disc
@@ -170,7 +170,7 @@ local function tonodes(list,template)
local new = copy_node(template)
setchar(new,list[i])
if head then
- head, current = insert_after(head,current,new)
+ head, current = insertafter(head,current,new)
else
head, current = new, new
end
@@ -230,7 +230,7 @@ local function replace(head,first,last,final,hasspace,overload)
-- todo: also set attr
local new = new_disc(pre,post,replace)
setattrlist(new,first)
- head, current = insert_after(head,current,new)
+ head, current = insertafter(head,current,new)
elseif method == "noligature" then
-- not that efficient to copy but ok for testing
local list = codes[2]
@@ -239,12 +239,12 @@ local function replace(head,first,last,final,hasspace,overload)
local new = copy_node(first)
setchar(new,list[i])
setattr(new,a_noligature,1)
- head, current = insert_after(head,current,new)
+ head, current = insertafter(head,current,new)
end
else
local new = copy_node(first)
setchar(new,zwnj)
- head, current = insert_after(head,current,new)
+ head, current = insertafter(head,current,new)
end
else
report_replacement("unknown method %a",method or "?")
@@ -252,11 +252,11 @@ local function replace(head,first,last,final,hasspace,overload)
else
local new = copy_node(first)
setchar(new,codes)
- head, current = insert_after(head,current,new)
+ head, current = insertafter(head,current,new)
end
i = i + 1
end
- flush_list(list)
+ flushlist(list)
elseif newlength == 0 then
-- we overload
elseif oldlength == newlength then
@@ -271,7 +271,7 @@ local function replace(head,first,last,final,hasspace,overload)
for i=1,newlength-oldlength do
local n = copy_node(current)
setchar(n,newcodes[i])
- head, current = insert_node_before(head,current,n)
+ head, current = insertbefore(head,current,n)
current = getnext(current)
end
for i=newlength-oldlength+1,newlength do
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-tra.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-tra.lua
index 5fd123349a3..35e9344aa1f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-tra.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-tra.lua
@@ -15,7 +15,7 @@ local nextchar = nuts.traversers.char
local getattr = nuts.getattr
local setchar = nuts.setchar
-local insert_before = nuts.insert_before
+local insertbefore = nuts.insertbefore
local copy_node = nuts.copy
local texsetattribute = tex.setattribute
@@ -97,7 +97,7 @@ function transliteration.handler(head)
for i = n-1,1,-1 do
local g = copy_node(current)
setchar(g,t[i])
- head, p = insert_before(head, p, g)
+ head, p = insertbefore(head, p, g)
end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lang-txt.lua b/Master/texmf-dist/tex/context/base/mkiv/lang-txt.lua
index 026abbd0ed4..1b278926ec3 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lang-txt.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lang-txt.lua
@@ -16,23 +16,29 @@ if not modules then modules = { } end modules ['lang-txt'] = {
-- completed by numerous users. The following list is incomplete so feel
-- free to send me corrections.
--
+-- In 2020+ Tomas Hala and his students added some more languages and did
+-- some extensive checking of the entries in this file.
+--
-- af Afrikaans ...
-- ar Arabic Idris Samawi Hamid, Khaled Hosny
-- be Belarussian Darya Hryshkavets (2019)
-- bg Bulgarian Vladislav Hinkin, Aleš Ďurčanský (2019)
--- ca Catalan ...
+-- ca Catalan ...; additions Javier Gambin Monzo + Samuel Conca Coles (2022)
-- cn Chinese Wang Lei, ...
-- cs Czech Tom Hudec, Petr Sojka, Richard Gabriel
-- da Danish Arne Jorgensen
-- de German Tobias Burnus, ...
-- en English Hans Hagen, ...
--- es Spanish Andrés Montoya, ...
+-- eo Esperanto Alain Delmotte (2021)
+-- es Spanish Andrés Montoya, ...; additions Javier Gambin Monzo + Samuel Conca Coles (2022)
-- et Estonian Clyde Johnston (2018)
--- fi Finish ...
--- fr French Daniel Flipo, Arthur Reutenauer
+-- fa Persian Mohammad Hossein Bateni (2016)
+-- fi Finnish ...; additions Ossi Salo (2022)
+-- fr French Daniel Flipo, Arthur Reutenauer; additions Arnaud Pierre Henri De Barbentane + Adrien Patton (2022)
-- gr Greek Apostolos Syropoulos, Thomas Schmitz
-- hr Croatian Željko Vrba, Richard Gabriel, Vedran Miletić
-- hu Hungarian Adam Reviczky
+-- hy Armenian Kristina Nazarjanová (2022)
-- it Italian Giuseppe Bilotta, Luigi Scarso
-- ja Japanese Richard Gabriel
-- kr Korean Jeong Dalyoung
@@ -42,7 +48,6 @@ if not modules then modules = { } end modules ['lang-txt'] = {
-- nb Norwegian Hans Fredrik Nordhaug, ...
-- nn Norwegian Hans Fredrik Nordhaug, ...
-- nl Dutch Hans Hagen
--- pe Persian Mohammad Hossein Bateni (2016)
-- pl Polish Grzegorz Sapijaszko (2011)
-- pt Portuguese Pedro F. M. Mendonça
-- ro Romanian Dan Seracu, ...
@@ -57,6 +62,7 @@ if not modules then modules = { } end modules ['lang-txt'] = {
-- ua Ukrainian Olga Briginets, Alexander Bokovoy, Victor Figurnov, ...
-- vi Vietnamese Han The Thanh
+
-- For the moment we keep this table in memory. In the future we can then
-- enable labels.
@@ -77,11 +83,15 @@ data.labels={
["labels"]={
["be"]="У",
["bg"]="в",
+ ["ca"]="En",
+ ["de"]="In",
["en"]="In",
+ ["eo"]="En",
["es"]="En",
+ ["fa"]="در",
["fr"]="Dans",
+ ["hy"]="Մեջ",
["mk"]="во",
- ["pe"]="در",
["sr"]="У",
["sr-latn"]="U",
},
@@ -90,12 +100,16 @@ data.labels={
["labels"]={
["be"]="Нумар",
["bg"]="номер",
- ["de"]="Numer",
+ ["ca"]="Nombre",
+ ["de"]="Nummer",
["en"]="Number",
+ ["eo"]="Nombro",
+ ["es"]="Numero",
+ ["fa"]="شماره",
["fr"]="Numéro",
+ ["hy"]="Համար",
["mk"]="Број",
["nl"]="Nummer",
- ["pe"]="شماره",
["sr"]="Број",
["sr-latn"]="Broj",
},
@@ -104,12 +118,17 @@ data.labels={
["labels"]={
["be"]="Гук",
["bg"]="обем",
+ ["ca"]="Volum",
["de"]="Band",
["en"]="Volume",
+ ["eo"]="Volumo",
+ ["es"]="Volumen",
["et"]="Köide",
+ ["fa"]="جلد",
+ ["fr"]="Volume",
+ ["hy"]="Ծավալ",
["mk"]="Том",
["nl"]="Deel",
- ["pe"]="جلد",
["sr"]="Том",
["sr-latn"]="Tom",
},
@@ -118,15 +137,18 @@ data.labels={
["labels"]={
["be"]="i",
["bg"]="a",
+ ["ca"]="i",
["de"]="und",
["en"]="and",
+ ["eo"]="kaj",
["es"]="y",
["et"]="ja",
+ ["fa"]="و",
["fr"]="et",
+ ["hy"]="և",
["it"]="e",
["mk"]="и",
["nl"]="en",
- ["pe"]="و",
["sr"]="и",
["sr-latn"]="i",
},
@@ -135,15 +157,19 @@ data.labels={
["labels"]={
["be"]="Выданне",
["bg"]="издание",
+ ["ca"]="Edició",
["de"]="Auflage",
["en"]="edition",
+ ["eo"]="eldono",
["es"]="edición",
["et"]="väljaanne",
+ ["fa"]="ویرایش",
+ ["fi"]="versio",
["fr"]="édition",
+ ["hy"]="հրատարակություն",
["it"]="edizione",
["mk"]="издание",
["nl"]="editie",
- ["pe"]="ویرایش",
["sr"]="издање",
["sr-latn"]="izdanje",
},
@@ -152,13 +178,17 @@ data.labels={
["labels"]={
["be"]="Рэдактар",
["bg"]="редактор",
+ ["ca"]="Editor",
["de"]="Herausgeber",
["en"]="editor",
+ ["eo"]="eldonisto",
+ ["es"]="editor",
["et"]="toimetaja",
+ ["fa"]="ویراستار",
["fr"]="éditeur",
+ ["hy"]="խմբագիր",
["it"]="a cura di",
["mk"]="уредник",
- ["pe"]="ویراستار",
["sr"]="уредник",
["sr-latn"]="urednik",
},
@@ -167,11 +197,14 @@ data.labels={
["labels"]={
["be"]="Рэдактары",
["bg"]="редактори",
+ ["ca"]="Editors",
["de"]="Herausgeber",
["en"]="editors",
+ ["eo"]="eldonistoj",
["es"]="editores",
["et"]="toimetajad",
["fr"]="éditeurs",
+ ["hy"]="խմբագիրներ",
["it"]="a cura di",
["mk"]="уредници",
["sr"]="уредници",
@@ -182,11 +215,15 @@ data.labels={
["labels"]={
["be"]="у",
["bg"]="в",
+ ["ca"]="en",
+ ["de"]="in",
["en"]="in",
+ ["eo"]="en",
["es"]="en",
+ ["fa"]="در",
["fr"]="dans",
+ ["hy"]="մեջ",
["mk"]="во",
- ["pe"]="در",
["sr"]="у",
["sr-latn"]="u",
},
@@ -195,15 +232,19 @@ data.labels={
["labels"]={
["be"]="Дыпломная работа",
["bg"]="дипломна работа",
+ ["ca"]="Tesi de maestria",
["de"]="Masterarbeit",
["en"]="Master's thesis",
+ ["eo"]="Magistreca disertaĵo",
["es"]="Tesis de maestría",
["et"]="magistritöö",
+ ["fa"]="پایان‌نامه کارشناسی ارشد",
+ ["fi"]="Pro gradu tutkielma",
["fr"]="Thèse de master (DEA, DESS, master)",
+ ["hy"]="Մագիստրոսական թեզ",
["it"]="Tesi di laurea",
["mk"]="Магистерска дисертација",
["nl"]="Masterproef",
- ["pe"]="پایان‌نامه کارشناسی ارشد",
["sr"]="Мастер дисертација",
["sr-latn"]="Master disertacija",
},
@@ -212,12 +253,17 @@ data.labels={
["labels"]={
["be"]="нумар",
["bg"]="номер",
- ["de"]="Numer",
+ ["ca"]="nombre",
+ ["de"]="Nummer",
["en"]="number",
+ ["eo"]="numero",
+ ["es"]="numero",
+ ["fa"]="شماره",
+ ["fi"]="numero",
["fr"]="numéro",
+ ["hy"]="համար",
["mk"]="број",
["nl"]="nummer",
- ["pe"]="شماره",
["sr"]="број",
["sr-latn"]="broj",
},
@@ -226,9 +272,13 @@ data.labels={
["labels"]={
["be"]="з",
["bg"]="на",
+ ["ca"]="de",
["de"]="von",
["en"]="of",
+ ["eo"]="de",
+ ["es"]="de",
["fr"]="de",
+ ["hy"]="-ից",
["mk"]="од",
["nl"]="van",
["sr"]="од",
@@ -237,8 +287,14 @@ data.labels={
},
["others"]={
["labels"]={
+ ["ca"]="et al.",
+ ["de"]="et al.",
["en"]="et al.",
+ ["eo"]="aliaj",
+ ["es"]="otros",
["et"]="jt",
+ ["fr"]="et al.",
+ ["hy"]="եւ այլն",
["mk"]="и др.",
["sr"]="и др.",
["sr-latn"]="i dr.",
@@ -247,11 +303,16 @@ data.labels={
["p"]={
["labels"]={
["be"]="стар.",
+ ["ca"]="p.",
["de"]="S.",
["en"]="p.",
+ ["eo"]="p.",
+ ["es"]="p",
["et"]="lk",
+ ["fa"]="ص",
+ ["fr"]="p.",
+ ["hy"]="էջ",
["mk"]="стр.",
- ["pe"]="ص",
["sr"]="стр.",
["sr-latn"]="str.",
},
@@ -260,12 +321,18 @@ data.labels={
["labels"]={
["be"]="старонка",
["bg"]="страни",
+ ["ca"]="pagines",
["de"]="Seiten",
["en"]="pages",
+ ["eo"]="paĝoj",
+ ["es"]="paginas",
["et"]="leheküljed",
+ ["fa"]="صفحات",
+ ["fi"]="sivut",
+ ["fr"]="pages",
+ ["hy"]="էջեր",
["mk"]="страници",
["nl"]="paginas",
- ["pe"]="صفحات",
["sr"]="страницa",
["sr-latn"]="stranica",
},
@@ -274,11 +341,15 @@ data.labels={
["labels"]={
["be"]="патэнт",
["bg"]="патент",
+ ["ca"]="Patent",
["de"]="Patent",
["en"]="Patent",
+ ["eo"]="Patento",
["es"]="Patente",
["et"]="Patent",
+ ["fi"]="patentti",
["fr"]="Brevet",
+ ["hy"]="Արտոնագիր",
["it"]="Brevetto",
["mk"]="Патент",
["nl"]="Octrooi",
@@ -290,26 +361,33 @@ data.labels={
["labels"]={
["be"]="Доктарская дысертацыя",
["bg"]="дисертачна работа",
+ ["ca"]="Tesi doctoral",
["de"]="Dissertation",
["en"]="PhD thesis",
+ ["eo"]="Doktoriĝa disertaĵo",
["es"]="Tesis doctoral",
["et"]="doktoritöö",
+ ["fa"]="رساله دکتری",
["fr"]="Thèse de doctorat",
+ ["hy"]="Դոկտորական թեզ",
["it"]="Tesi di dottorato",
["mk"]="Докторска дисертација",
["nl"]="Proefschrift",
- ["pe"]="رساله دکتری",
["sr"]="Докторска дисертација",
["sr-latn"]="Doktorska disertacija",
},
},
["pp"]={
["labels"]={
+ ["ca"]="pp",
["de"]="S.",
["en"]="pp.",
+ ["eo"]="pp.",
+ ["es"]="pp",
["et"]="lk-d",
+ ["fa"]="صص",
+ ["hy"]="էջ",
["mk"]="стр.",
- ["pe"]="صص",
["sr"]="стр.",
["sr-latn"]="str.",
},
@@ -318,15 +396,19 @@ data.labels={
["labels"]={
["be"]="Тэхнічны даклад",
["bg"]="технически доклад",
+ ["ca"]="Report tecnic",
["de"]="Technischer Bericht",
["en"]="Technical report",
+ ["eo"]="Teknika raporto",
["es"]="Informe técnico",
["et"]="tehniline raport",
+ ["fa"]="گزارش فنی",
+ ["fi"]="Tekninen raportti",
["fr"]="Rapport technique",
+ ["hy"]="Տեխնիկական հաշվետվություն",
["it"]="Relazione tecnica",
["mk"]="Технички извештај",
["nl"]="Technisch rapport",
- ["pe"]="گزارش فنی",
["sr"]="Технички извештај",
["sr-latn"]="Tehnički izveštaj",
},
@@ -335,12 +417,17 @@ data.labels={
["labels"]={
["be"]="гучнасць",
["bg"]="обем",
+ ["ca"]="volum",
["de"]="Band",
["en"]="volume",
+ ["eo"]="volumo",
+ ["es"]="volumen",
["et"]="köide",
+ ["fa"]="جلد",
+ ["fr"]="volume",
+ ["hy"]="ծավալ",
["mk"]="том",
["nl"]="deel",
- ["pe"]="جلد",
["sr"]="том",
["sr-latn"]="tom",
},
@@ -349,11 +436,15 @@ data.labels={
["labels"]={
["be"]="з",
["bg"]="със",
+ ["ca"]="en",
["de"]="mit",
["en"]="with",
+ ["eo"]="kun",
["es"]="con",
["et"]="koos",
+ ["fi"]="kanssa",
["fr"]="avec",
+ ["hy"]="ի հետ",
["it"]="con",
["mk"]="со",
["nl"]="met",
@@ -365,8 +456,12 @@ data.labels={
["functions"]={
["Pr"]={
["labels"]={
+ ["ca"]="Pr",
["cs"]="P",
["en"]="Pr",
+ ["eo"]="P",
+ ["es"]="Pr",
+ ["hy"]="P",
["mk"]="P",
["sk"]="P",
["sr"]="P",
@@ -375,10 +470,13 @@ data.labels={
},
["arccos"]={
["labels"]={
+ ["ca"]="arc cos",
["cs"]="arccos",
["en"]="arccos",
+ ["eo"]="arccos",
["es"]="arc\\sixperemspace cos",
["hr"]="arc\\sixperemspace cos",
+ ["hy"]="arccos",
["mk"]="arccos",
["pl"]="arc\\sixperemspace cos",
["sk"]="arccos",
@@ -388,10 +486,13 @@ data.labels={
},
["arccosh"]={
["labels"]={
+ ["ca"]="arccosh",
["cs"]="arccosh",
["en"]="arccosh",
+ ["eo"]="arccosh",
["es"]="arc\\sixperemspace cosh",
["hr"]="arc\\sixperemspace cosh",
+ ["hy"]="arccosh",
["mk"]="arccosh",
["pl"]="arc\\sixperemspace cosh",
["sk"]="arccosh",
@@ -401,10 +502,13 @@ data.labels={
},
["arcctg"]={
["labels"]={
+ ["ca"]="arc cot",
["cs"]="arccotg",
["en"]="arccot",
+ ["eo"]="arcctan",
["es"]="arc\\sixperemspace cot",
["hr"]="arc\\sixperemspace ctg",
+ ["hy"]="arcctg",
["mk"]="arccotg",
["pl"]="arc\\sixperemspace ctg",
["sk"]="arccotg",
@@ -414,10 +518,13 @@ data.labels={
},
["arcsin"]={
["labels"]={
+ ["ca"]="arc sen",
["cs"]="arcsin",
["en"]="arcsin",
+ ["eo"]="arcsin",
["es"]="arc\\sixperemspace sen",
["hr"]="arc\\sixperemspace sin",
+ ["hy"]="arcsin",
["mk"]="arcsin",
["pl"]="arc\\sixperemspace sin",
["sk"]="arcsin",
@@ -427,10 +534,13 @@ data.labels={
},
["arcsinh"]={
["labels"]={
+ ["ca"]="arc senh",
["cs"]="arcsinh",
["en"]="arcsinh",
+ ["eo"]="arcsinh",
["es"]="arc\\sixperemspace senh",
["hr"]="arc\\sixperemspace sinh",
+ ["hy"]="arcsinh",
["mk"]="arcsinh",
["pl"]="arc\\sixperemspace sinh",
["sk"]="arcsinh",
@@ -440,10 +550,13 @@ data.labels={
},
["arctan"]={
["labels"]={
+ ["ca"]="arc tan",
["cs"]="arctg",
["en"]="arctan",
+ ["eo"]="arctang",
["es"]="arc\\sixperemspace tan",
["hr"]="arc\\sixperemspace tg",
+ ["hy"]="arctan",
["mk"]="arctg",
["pl"]="arc\\sixperemspace tg",
["sk"]="arctg",
@@ -453,10 +566,13 @@ data.labels={
},
["arctanh"]={
["labels"]={
+ ["ca"]="arc tanh",
["cs"]="arctgh",
["en"]="arctanh",
+ ["eo"]="arctanh",
["es"]="arc\\sixperemspace tanh",
["hr"]="arc\\sixperemspace tgh",
+ ["hy"]="arctanh",
["mk"]="arctgh",
["pl"]="arc\\sixperemspace tgh",
["sk"]="arctgh",
@@ -466,9 +582,12 @@ data.labels={
},
["arg"]={
["labels"]={
+ ["ca"]="arg",
["cs"]="arg",
["en"]="arg",
+ ["eo"]="arg",
["es"]="arg",
+ ["hy"]="arg",
["mk"]="arg",
["sk"]="arg",
["sr"]="arg",
@@ -477,9 +596,12 @@ data.labels={
},
["cos"]={
["labels"]={
+ ["ca"]="cos",
["cs"]="cos",
["en"]="cos",
+ ["eo"]="cos",
["es"]="cos",
+ ["hy"]="cos",
["mk"]="cos",
["sk"]="cos",
["sr"]="cos",
@@ -488,9 +610,12 @@ data.labels={
},
["cosh"]={
["labels"]={
+ ["ca"]="cosh",
["cs"]="cosh",
["en"]="cosh",
+ ["eo"]="cosh",
["es"]="cosh",
+ ["hy"]="cosh",
["mk"]="cosh",
["sk"]="cosh",
["sr"]="cosh",
@@ -499,10 +624,13 @@ data.labels={
},
["cot"]={
["labels"]={
+ ["ca"]="cot",
["cs"]="cotg",
["en"]="cot",
+ ["eo"]="cotan",
["es"]="cot",
["hr"]="ctg",
+ ["hy"]="cot",
["mk"]="ctg",
["pl"]="ctg",
["sk"]="cotg",
@@ -512,9 +640,12 @@ data.labels={
},
["coth"]={
["labels"]={
+ ["ca"]="coth",
["cs"]="cotgh",
["en"]="coth",
+ ["eo"]="cotanh",
["es"]="coth",
+ ["hy"]="coth",
["mk"]="ctgh",
["sk"]="cotgh",
["sr"]="ctgh",
@@ -523,9 +654,12 @@ data.labels={
},
["csc"]={
["labels"]={
+ ["ca"]="csc",
["cs"]="cosec",
["en"]="csc",
+ ["eo"]="cosec",
["es"]="csc",
+ ["hy"]="csc",
["mk"]="cosec",
["sk"]="cosec",
["sr"]="cosec",
@@ -534,10 +668,13 @@ data.labels={
},
["ctg"]={
["labels"]={
+ ["ca"]="cot",
["cs"]="cotg",
["en"]="cot",
+ ["eo"]="cotan",
["es"]="cot",
["hr"]="ctg",
+ ["hy"]="cot",
["mk"]="ctg",
["pl"]="ctg",
["sk"]="cotg",
@@ -547,9 +684,12 @@ data.labels={
},
["deg"]={
["labels"]={
+ ["ca"]="gr",
["cs"]="deg",
["en"]="deg",
+ ["eo"]="gr",
["es"]="gr",
+ ["hy"]="deg",
["mk"]="deg",
["sk"]="deg",
["sr"]="deg",
@@ -558,9 +698,12 @@ data.labels={
},
["det"]={
["labels"]={
+ ["ca"]="det",
["cs"]="det",
["en"]="det",
+ ["eo"]="det",
["es"]="det",
+ ["hy"]="det",
["sk"]="det",
["sr"]="det",
["sr-latn"]="det",
@@ -568,14 +711,20 @@ data.labels={
},
["diff"]={
["labels"]={
+ ["ca"]="d",
["en"]="d",
+ ["eo"]="dif",
+ ["hy"]="diff",
},
},
["dim"]={
["labels"]={
+ ["ca"]="dim",
["cs"]="dim",
["en"]="dim",
+ ["eo"]="dim",
["es"]="dim",
+ ["hy"]="dim",
["mk"]="dim",
["sk"]="dim",
["sr"]="dim",
@@ -584,9 +733,12 @@ data.labels={
},
["exp"]={
["labels"]={
+ ["ca"]="exp",
["cs"]="exp",
["en"]="exp",
+ ["eo"]="eksp",
["es"]="exp",
+ ["hy"]="exp",
["sk"]="exp",
["sr"]="exp",
["sr-latn"]="exp",
@@ -594,10 +746,14 @@ data.labels={
},
["gcd"]={
["labels"]={
+ ["ca"]="med",
["cs"]="NSD",
+ ["de"]="ggT",
["en"]="gcd",
+ ["eo"]="",
["es"]="mcd",
["hr"]="nzd",
+ ["hy"]="ԱԸԲ",
["mk"]="НЗД",
["nl"]="ggd",
["sk"]="NSD",
@@ -607,17 +763,23 @@ data.labels={
},
["hom"]={
["labels"]={
+ ["ca"]="hom",
["cs"]="Hom",
["en"]="hom",
+ ["eo"]="hom",
["es"]="hom",
+ ["hy"]="հոմ",
["sk"]="Hom",
},
},
["inf"]={
["labels"]={
+ ["ca"]="inf",
["cs"]="inf",
["en"]="inf",
+ ["eo"]="inf",
["es"]="inf",
+ ["hy"]="inf",
["mk"]="inf",
["sk"]="inf",
["sr"]="inf",
@@ -626,19 +788,39 @@ data.labels={
},
["injlim"]={
["labels"]={
+ ["ca"]="inj",
["cs"]="inj\\sixperemspace lim",
["en"]="inj\\sixperemspace lim",
+ ["eo"]="",
["es"]="lím\\sixperemspace iny",
+ ["hy"]="inj\\sixperemspace lim",
["sk"]="inj\\sixperemspace lim",
["sr"]="inj\\sixperemspace lim",
["sr-latn"]="inj\\sixperemspace lim",
},
},
+ ["inv"]={
+ ["labels"]={
+ ["ca"]="inv",
+ ["cs"]="inv",
+ ["en"]="inv",
+ ["eo"]="inv",
+ ["es"]="inv",
+ ["hy"]="inv",
+ ["mk"]="inv",
+ ["sk"]="inv",
+ ["sr"]="inv",
+ ["sr-latn"]="inv",
+ },
+ },
["ker"]={
["labels"]={
+ ["ca"]="Ker",
["cs"]="ker",
["en"]="ker",
+ ["eo"]="",
["es"]="Ker",
+ ["hy"]="ker",
["sk"]="ker",
["sr"]="ker",
["sr-latn"]="ker",
@@ -646,10 +828,14 @@ data.labels={
},
["lcm"]={
["labels"]={
+ ["ca"]="MCM",
["cs"]="NSN",
+ ["de"]="kgV",
["en"]="lcm",
+ ["eo"]="",
["es"]="MCM",
["hr"]="nzv",
+ ["hy"]="աըբ",
["mk"]="НЗС",
["nl"]="kgv",
["sk"]="NSN",
@@ -659,9 +845,14 @@ data.labels={
},
["lg"]={
["labels"]={
+ ["ca"]="log",
["cs"]="log",
+ ["de"]="log",
["en"]="lg",
+ ["eo"]="log",
["es"]="log",
+ ["fr"]="log",
+ ["hy"]="lg",
["mk"]="lg",
["sk"]="log",
["sr"]="lg",
@@ -670,9 +861,12 @@ data.labels={
},
["lim"]={
["labels"]={
+ ["ca"]="lim",
["cs"]="lim",
["en"]="lim",
+ ["eo"]="lim",
["es"]="lím",
+ ["hy"]="lim",
["mk"]="lim",
["sk"]="lim",
["sr"]="lim",
@@ -681,9 +875,12 @@ data.labels={
},
["liminf"]={
["labels"]={
+ ["ca"]="lim inf",
["cs"]="lim\\sixperemspace inf",
["en"]="lim\\sixperemspace inf",
+ ["eo"]="subinf",
["es"]="lím\\sixperemspace inf",
+ ["hy"]="lim\\sixperemspace infs",
["mk"]="lim\\sixperemspace inf",
["sk"]="lim\\sixperemspace inf",
["sr"]="lim\\sixperemspace inf",
@@ -692,9 +889,12 @@ data.labels={
},
["limsup"]={
["labels"]={
+ ["ca"]="lim sup",
["cs"]="lim\\sixperemspace sup",
["en"]="lim\\sixperemspace sup",
+ ["eo"]="suplim",
["es"]="lím\\sixperemspace sup",
+ ["hy"]="lim\\sixperemspace sup",
["mk"]="lim\\sixperemspace sup",
["sk"]="lim\\sixperemspace sup",
["sr"]="lim\\sixperemspace sup",
@@ -703,9 +903,12 @@ data.labels={
},
["ln"]={
["labels"]={
+ ["ca"]="En",
["cs"]="ln",
["en"]="ln",
+ ["eo"]="ln",
["es"]="ln",
+ ["hy"]="ln",
["mk"]="ln",
["sk"]="ln",
["sr"]="ln",
@@ -714,9 +917,12 @@ data.labels={
},
["log"]={
["labels"]={
+ ["ca"]="log",
["cs"]="log",
["en"]="log",
+ ["eo"]="log",
["es"]="log",
+ ["hy"]="log",
["mk"]="log",
["sk"]="log",
["sr"]="log",
@@ -725,9 +931,13 @@ data.labels={
},
["max"]={
["labels"]={
+ ["ca"]="max",
["cs"]="max",
["en"]="max",
+ ["eo"]="maks",
["es"]="máx",
+ ["fi"]="max",
+ ["hy"]="max",
["mk"]="max",
["sk"]="max",
["sr"]="max",
@@ -736,9 +946,14 @@ data.labels={
},
["median"]={
["labels"]={
+ ["ca"]="mitjana",
["cs"]="\\tilde",
["en"]="median",
+ ["eo"]="mediano",
["es"]="Mediana",
+ ["fi"]="mediaani",
+ ["fr"]="médiane",
+ ["hy"]="միջին",
["sk"]="\\tilde",
["sr"]="median",
["sr-latn"]="median",
@@ -746,9 +961,13 @@ data.labels={
},
["min"]={
["labels"]={
+ ["ca"]="min",
["cs"]="min",
["en"]="min",
+ ["eo"]="min",
["es"]="mín",
+ ["fi"]="min",
+ ["hy"]="min",
["mk"]="min",
["sk"]="min",
["sr"]="min",
@@ -757,9 +976,13 @@ data.labels={
},
["mod"]={
["labels"]={
+ ["ca"]="mod",
["cs"]="mod",
["en"]="mod",
+ ["eo"]="mod",
["es"]="mod",
+ ["fi"]="mod",
+ ["hy"]="mod",
["mk"]="mod",
["sk"]="mod",
["sr"]="mod",
@@ -768,9 +991,12 @@ data.labels={
},
["projlim"]={
["labels"]={
+ ["ca"]="lim proy",
["cs"]="proj\\sixperemspace lim",
["en"]="proj\\sixperemspace lim",
+ ["eo"]="",
["es"]="lím\\sixperemspace proy",
+ ["hy"]="proj\\sixperemspace lim",
["sk"]="proj\\sixperemspace lim",
["sr"]="proj\\sixperemspace lim",
["sr-latn"]="proj\\sixperemspace lim",
@@ -778,9 +1004,13 @@ data.labels={
},
["sec"]={
["labels"]={
+ ["ca"]="sec",
["cs"]="sec",
["en"]="sec",
+ ["eo"]="sek",
["es"]="sec",
+ ["fi"]="sek",
+ ["hy"]="sec",
["mk"]="sec",
["sk"]="sec",
["sr"]="sec",
@@ -789,9 +1019,13 @@ data.labels={
},
["sin"]={
["labels"]={
+ ["ca"]="sen",
["cs"]="sin",
["en"]="sin",
+ ["eo"]="sin",
["es"]="sen",
+ ["fi"]="sin",
+ ["hy"]="sin",
["mk"]="sin",
["sk"]="sin",
["sr"]="sin",
@@ -800,9 +1034,12 @@ data.labels={
},
["sinh"]={
["labels"]={
+ ["ca"]="senh",
["cs"]="sinh",
["en"]="sinh",
+ ["eo"]="sinh",
["es"]="senh",
+ ["hy"]="sinh",
["mk"]="sinh",
["sk"]="sinh",
["sr"]="sinh",
@@ -813,7 +1050,9 @@ data.labels={
["labels"]={
["cs"]="sup",
["en"]="sup",
+ ["eo"]="sup",
["es"]="sup",
+ ["hy"]="sup",
["mk"]="sup",
["sk"]="sup",
["sr"]="sup",
@@ -824,8 +1063,10 @@ data.labels={
["labels"]={
["cs"]="tg",
["en"]="tan",
+ ["eo"]="tan",
["es"]="tan",
["hr"]="tg",
+ ["hy"]="tan",
["mk"]="tg",
["pl"]="tg",
["sk"]="tg",
@@ -837,7 +1078,9 @@ data.labels={
["labels"]={
["cs"]="tgh",
["en"]="tanh",
+ ["eo"]="tanh",
["es"]="tanh",
+ ["hy"]="tanh",
["mk"]="tgh",
["sk"]="tgh",
["sr"]="tgh",
@@ -849,18 +1092,21 @@ data.labels={
["and"]={
["labels"]={
["af"]="",
- ["ca"]="",
+ ["ca"]=" i ",
["cs"]=" a ",
["da"]="",
["de"]=" und ",
["en"]=" and ",
+ ["eo"]=" kaj ",
["es"]=" y ",
["et"]=" ja ",
+ ["fa"]=" و ",
["fi"]="",
- ["fr"]="",
+ ["fr"]=" et ",
["gr"]="",
["hr"]=" i ",
["hu"]=" és ",
+ ["hy"]=" և ",
["it"]="",
["la"]="",
["lt"]="",
@@ -868,7 +1114,6 @@ data.labels={
["nb"]="",
["nl"]=" en ",
["nn"]="",
- ["pe"]=" و ",
["pl"]=" i ",
["pt"]="",
["ro"]="",
@@ -895,13 +1140,16 @@ data.labels={
["da"]="Bilag ",
["de"]="Anhang ",
["en"]="Appendix ",
+ ["eo"]="Anekso",
["es"]="Apéndice ",
["et"]="Lisa ",
- ["fi"]="",
+ ["fa"]="پیوست ",
+ ["fi"]="liite",
["fr"]="Annexe ",
- ["gr"]="Παράρτημα",
+ ["gr"]="Παράρτημα ",
["hr"]="Dodatak ",
["hu"]="Melléklet ",
+ ["hy"]="Հավելված ",
["it"]="",
["ja"]="付録",
["kr"]="부록",
@@ -911,7 +1159,6 @@ data.labels={
["nb"]="Tillegg ",
["nl"]="",
["nn"]="Tillegg ",
- ["pe"]="پیوست ",
["pl"]="Dodatek ",
["pt"]="",
["ro"]="",
@@ -921,7 +1168,7 @@ data.labels={
["sr"]="Додатак ",
["sr-latn"]="Dodatak ",
["sv"]="",
- ["tk"]="Goşmaça",
+ ["tk"]="Goşmaça ",
["tr"]="",
["ua"]="",
["vi"]="",
@@ -941,13 +1188,16 @@ data.labels={
["da"]="april",
["de"]="April",
["en"]="April",
+ ["eo"]="Aprilo",
["es"]="abril",
["et"]="aprill",
+ ["fa"]="آوریل",
["fi"]="huhtikuu",
["fr"]="avril",
["gr"]="Απρίλιος",
["hr"]="travnja",
["hu"]="április",
+ ["hy"]="Ապրիլ",
["it"]="aprile",
["ja"]="4",
["kr"]="4",
@@ -957,7 +1207,6 @@ data.labels={
["nb"]="april",
["nl"]="april",
["nn"]="april",
- ["pe"]="آوریل",
["pl"]="kwietnia",
["pt"]="abril",
["ro"]="aprilie",
@@ -975,25 +1224,30 @@ data.labels={
},
["april:jalali"]={
["labels"]={
+ ["ca"]="Tir",
["en"]="Tir",
["fa"]="تیر",
+ ["hy"]="Տիր",
},
},
["april:mnem"]={
["labels"]={
["af"]="",
- ["ca"]="",
+ ["bg"]="апр.",
+ ["ca"]="abr",
["cs"]="dub.",
["da"]="",
["de"]="Apr.",
["en"]="apr",
+ ["eo"]="Apr.",
["es"]="abr.",
["et"]="apr",
["fi"]="",
- ["fr"]="",
+ ["fr"]="avr.",
["gr"]="",
["hr"]="tra",
["hu"]="ápr.",
+ ["hy"]="Ապր",
["it"]="",
["la"]="",
["lt"]="apr",
@@ -1007,8 +1261,8 @@ data.labels={
["ru"]="",
["sk"]="apr.",
["sl"]="",
- ["sr"]="апр.",
- ["sr-latn"]="apr.",
+ ["sr"]="апр",
+ ["sr-latn"]="apr",
["sv"]="",
["tk"]="",
["tr"]="",
@@ -1020,18 +1274,21 @@ data.labels={
["labels"]={
["af"]="",
["ar"]="في صفحة ",
- ["ca"]="",
+ ["ca"]="a la pagina",
["cs"]="na straně ",
["da"]="på side ",
["de"]="auf Seite ",
["en"]="at page ",
+ ["eo"]="je paĝo",
["es"]="en la página ",
["et"]="leheküljel ",
- ["fi"]="",
+ ["fa"]="در صفحه ",
+ ["fi"]="sivulla",
["fr"]="à la page ",
["gr"]="",
["hr"]="na stranici ",
["hu"]="oldal ",
+ ["hy"]="էջում ",
["it"]="a pagina ",
["la"]="",
["lt"]="puslapyje ",
@@ -1039,7 +1296,6 @@ data.labels={
["nb"]="på side ",
["nl"]="op pagina ",
["nn"]="på side ",
- ["pe"]="در صفحه ",
["pl"]="na stronie ",
["pt"]="",
["ro"]="",
@@ -1070,13 +1326,16 @@ data.labels={
["da"]="august",
["de"]="August",
["en"]="August",
+ ["eo"]="Aŭgusto",
["es"]="agosto",
["et"]="august",
+ ["fa"]="اوت",
["fi"]="elokuu",
["fr"]="août",
["gr"]="Αύγουστος",
["hr"]="kolovoza",
["hu"]="augusztus",
+ ["hy"]="Օգոստոս",
["it"]="agosto",
["ja"]="8",
["kr"]="8",
@@ -1086,7 +1345,6 @@ data.labels={
["nb"]="august",
["nl"]="augustus",
["nn"]="august",
- ["pe"]="اوت",
["pl"]="sierpnia",
["pt"]="agosto",
["ro"]="august",
@@ -1104,18 +1362,22 @@ data.labels={
},
["august:jalali"]={
["labels"]={
+ ["ca"]="Aban",
["en"]="Aban",
["fa"]="آبان",
+ ["hy"]="Աբան",
},
},
["august:mnem"]={
["labels"]={
["af"]="",
- ["ca"]="",
+ ["bg"]="авг.",
+ ["ca"]="ag",
["cs"]="srp.",
["da"]="",
["de"]="Aug.",
["en"]="aug",
+ ["eo"]="Aŭg.",
["es"]="ago.",
["et"]="aug",
["fi"]="",
@@ -1123,6 +1385,7 @@ data.labels={
["gr"]="",
["hr"]="kol",
["hu"]="aug.",
+ ["hy"]="Օգ",
["it"]="",
["la"]="",
["lt"]="aug",
@@ -1136,8 +1399,8 @@ data.labels={
["ru"]="",
["sk"]="aug.",
["sl"]="",
- ["sr"]="авг.",
- ["sr-latn"]="avg.",
+ ["sr"]="авг",
+ ["sr-latn"]="avg",
["sv"]="",
["tk"]="",
["tr"]="",
@@ -1158,13 +1421,16 @@ data.labels={
["da"]="",
["de"]="Kapitel ",
["en"]="Chapter ",
+ ["eo"]="Ĉapitro",
["es"]="Capítulo ",
["et"]="Peatükk ",
- ["fi"]="",
+ ["fa"]="فصل ",
+ ["fi"]="luku",
["fr"]="Chapitre ",
["gr"]="Κεφάλαιο",
["hr"]="Poglavlje ",
["hu"]={ "", " fejezet" },
+ ["hy"]="Գլուխ ",
["it"]="",
["ja"]={ "第", "章" },
["kr"]={ "제", "장" },
@@ -1174,14 +1440,12 @@ data.labels={
["nb"]="",
["nl"]="",
["nn"]="",
- ["pe"]="فصل ",
["pl"]="Rozdział ",
["pt"]="",
["ro"]="",
["ru"]="",
["sk"]="Kapitola ",
["sl"]="Poglavje ",
- ["sr"]="Поглавље ",
["sr"]="Глава ",
["sr-latn"]="Glava ",
["sv"]="",
@@ -1196,18 +1460,21 @@ data.labels={
["af"]="",
["be"]=" (працяг)",
["bg"]=" (продължение)",
- ["ca"]="",
+ ["ca"]="continua",
["cs"]=" (pokračování)",
["da"]="",
- ["de"]="",
+ ["de"]=" (Fortsetzung)",
["en"]=" (continued)",
+ ["eo"]=" (daŭrigota)",
["es"]=" (continúa)",
["et"]=" (jätkub)",
- ["fi"]="",
+ ["fa"]="(ادامه دارد)",
+ ["fi"]="(jatkuu)",
["fr"]="",
["gr"]="",
["hr"]=" (nastavak)",
["hu"]=" (folytatás)",
+ ["hy"]=" (շարունակություն)",
["it"]="",
["la"]="",
["lt"]="",
@@ -1215,14 +1482,12 @@ data.labels={
["nb"]="",
["nl"]=" (vervolgd)",
["nn"]="",
- ["pe"]="(ادامه دارد)",
["pl"]="",
["pt"]="",
["ro"]="",
["ru"]="",
["sk"]=" (pokračovanie)",
["sl"]="",
- ["sr"]=" (наставио)",
["sr"]=" (наставак)",
["sr-latn"]=" (nastavak)",
["sv"]="",
@@ -1235,12 +1500,18 @@ data.labels={
["day"]={
["labels"]={
["bg"]="ден",
+ ["ca"]="dia",
+ ["de"]="Tag",
["en"]="day",
+ ["eo"]="tago",
["et"]="päev",
+ ["fa"]="روز",
+ ["fi"]="päivä",
+ ["fr"]="jour",
+ ["hy"]="օր",
["kr"]="일",
["mk"]="ден",
["nl"]="dag",
- ["pe"]="روز",
["sr"]="дан",
["sr-latn"]="dan",
},
@@ -1259,13 +1530,16 @@ data.labels={
["da"]="december",
["de"]="Dezember",
["en"]="December",
+ ["eo"]="Decembro",
["es"]="diciembre",
["et"]="detsember",
+ ["fa"]="دسامبر",
["fi"]="joulukuu",
["fr"]="décembre",
["gr"]="Δεκέμβριος",
["hr"]="prosinca",
["hu"]="december",
+ ["hy"]="Դեկտեմբեր",
["it"]="dicembre",
["ja"]="12",
["kr"]="12",
@@ -1275,7 +1549,6 @@ data.labels={
["nb"]="desember",
["nl"]="december",
["nn"]="desember",
- ["pe"]="دسامبر",
["pl"]="grudnia",
["pt"]="dezembro",
["ro"]="decembrie",
@@ -1293,25 +1566,30 @@ data.labels={
},
["december:jalali"]={
["labels"]={
+ ["ca"]="Esfand",
["en"]="Esfand",
["fa"]="اسفند",
+ ["hy"]="Էսֆանդ",
},
},
["december:mnem"]={
["labels"]={
["af"]="",
- ["ca"]="",
+ ["bg"]="дек.",
+ ["ca"]="des",
["cs"]="pros.",
["da"]="",
["de"]="Dez.",
["en"]="dec",
+ ["eo"]="Dec.",
["es"]="dic.",
["et"]="dets",
["fi"]="",
- ["fr"]="",
+ ["fr"]="déc.",
["gr"]="",
["hr"]="pro",
["hu"]="dec.",
+ ["hy"]="Դեկ",
["it"]="",
["la"]="",
["lt"]="dec",
@@ -1325,8 +1603,8 @@ data.labels={
["ru"]="",
["sk"]="dec.",
["sl"]="",
- ["sr"]="дец.",
- ["sr-latn"]="dec.",
+ ["sr"]="дец",
+ ["sr-latn"]="dec",
["sv"]="",
["tk"]="",
["tr"]="",
@@ -1348,13 +1626,16 @@ data.labels={
["da"]="februar",
["de"]="Februar",
["en"]="February",
+ ["eo"]="Februaro",
["es"]="febrero",
["et"]="veebruar",
+ ["fa"]="فوریه",
["fi"]="helmikuu",
["fr"]="février",
["gr"]="Φεβρουάριος",
["hr"]="veljače",
["hu"]="február",
+ ["hy"]="Պետրվար",
["it"]="febbraio",
["ja"]="2",
["kr"]="2",
@@ -1364,7 +1645,6 @@ data.labels={
["nb"]="februar",
["nl"]="februari",
["nn"]="februar",
- ["pe"]="فوریه",
["pl"]="lutego",
["pt"]="fevereiro",
["ro"]="februarie",
@@ -1382,25 +1662,30 @@ data.labels={
},
["february:jalali"]={
["labels"]={
+ ["ca"]="Ordibehesht",
["en"]="Ordibehesht",
["fa"]="اردیبهشت",
+ ["hy"]="Օրդիբեհեշթ",
},
},
["february:mnem"]={
["labels"]={
["af"]="",
- ["ca"]="",
+ ["bg"]="февр.",
+ ["ca"]="febr",
["cs"]="ún.",
["da"]="",
["de"]="Feb.",
["en"]="feb",
+ ["eo"]="Feb.",
["es"]="feb.",
["et"]="veebr",
["fi"]="",
- ["fr"]="",
+ ["fr"]="fév.",
["gr"]="",
["hr"]="velj",
["hu"]="feb.",
+ ["hy"]="Փետ",
["it"]="",
["la"]="",
["lt"]="feb",
@@ -1414,8 +1699,8 @@ data.labels={
["ru"]="",
["sk"]="feb.",
["sl"]="",
- ["sr"]="феб.",
- ["sr-latn"]="feb.",
+ ["sr"]="феб",
+ ["sr-latn"]="feb",
["sv"]="",
["tk"]="",
["tr"]="",
@@ -1435,13 +1720,16 @@ data.labels={
["da"]="Figur ",
["de"]="Abbildung ",
["en"]="Figure ",
+ ["eo"]="Figuro ",
["es"]="Figura ",
["et"]="Joonis ",
+ ["fa"]="شکل ",
["fi"]="Kuva ",
["fr"]="Figure ",
["gr"]="Σχήμα",
["hr"]="Slika ",
["hu"]={ "", " ábra" },
+ ["hy"]="Նկար ",
["it"]="Fig. ",
["ja"]="図",
["kr"]="그림 ",
@@ -1451,7 +1739,6 @@ data.labels={
["nb"]="Figur ",
["nl"]="Figuur ",
["nn"]="Figur ",
- ["pe"]="شکل ",
["pl"]="Ilustracja ",
["pt"]="Figura ",
["ro"]="Figura ",
@@ -1469,23 +1756,36 @@ data.labels={
},
["following:plural"]={
["labels"]={
+ ["de"]="ff.",
["en"]="ff.",
+ ["eo"]="sekvv",
["fr"]=hairspace .. "sqq",
+ ["hy"]="ff.",
},
},
["following:singular"]={
["labels"]={
+ ["de"]="f.",
["en"]="f.",
+ ["eo"]="sekv",
["fr"]=hairspace .. "sq",
+ ["hy"]="f.",
},
},
["followingpage"]={
["labels"]={
+ ["ca"]="en la seguent pagina",
+ ["de"]="auf einer Folgeseite",
["en"]="on a following page",
+ ["eo"]="je sekvanta paĝo",
+ ["es"]="en la siguiente pagina",
["et"]="järgmisel leheküljel",
+ ["fa"]="در صفحات آینده",
+ ["fi"]="seuraavalla sivulla",
+ ["fr"]="sur la page suivante",
+ ["hy"]="Հաջորդ էջում",
["mk"]="на следната страница",
["nl"]="op een volgende bladzijde",
- ["pe"]="در صفحات آینده",
["sr"]="на следећој страници",
["sr-latn"]="na sledećoj stranici",
},
@@ -1502,13 +1802,16 @@ data.labels={
["da"]="fredag",
["de"]="Freitag",
["en"]="Friday",
+ ["eo"]="vendredo",
["es"]="viernes",
["et"]="reede",
+ ["fa"]="جمعه",
["fi"]="perjantai",
["fr"]="vendredi",
["gr"]="Παρασκευή",
["hr"]="petak",
["hu"]="péntek",
+ ["hy"]="ուրբաթ",
["it"]="venerdì",
["ja"]="金曜日",
["kr"]="금요일",
@@ -1518,7 +1821,6 @@ data.labels={
["nb"]="fredag",
["nl"]="vrijdag",
["nn"]="fredag",
- ["pe"]="جمعه",
["pl"]="piątek",
["pt"]="sexta-feira",
["ro"]="vineri",
@@ -1536,10 +1838,19 @@ data.labels={
},
["friday:mnem"]={
["labels"]={
+ ["bg"]="пт",
+ ["ca"]="dv",
+ ["cs"]="pá",
["de"]="Fr.",
["en"]="fri",
- ["sr"]="пет.",
- ["sr-latn"]="pet.",
+ ["eo"]="ven.",
+ ["es"]="vi",
+ ["fi"]="pe",
+ ["fr"]="ven.",
+ ["hy"]="Ուրբ",
+ ["sk"]="pi",
+ ["sr"]="пет",
+ ["sr-latn"]="pet",
},
},
["graphic"]={
@@ -1552,15 +1863,18 @@ data.labels={
["cn"]="插图",
["cs"]="Graf ",
["da"]="Grafik ",
- ["de"]="Graphik ",
+ ["de"]="Grafik ",
["en"]="Graphic ",
+ ["eo"]="Grafiko",
["es"]="Gráfico ",
["et"]="Pilt ",
+ ["fa"]="طرح ",
["fi"]="Grafiikka ",
["fr"]="Illustration ",
["gr"]="Γραφικό",
["hr"]="Slika ",
["hu"]={ "", " kép" },
+ ["hy"]="Գրաֆ",
["it"]="Grafico ",
["ja"]="イラスト",
["la"]="Typus ",
@@ -1569,7 +1883,6 @@ data.labels={
["nb"]="Bilde ",
["nl"]="Grafiek ",
["nn"]="Bilete ",
- ["pe"]="طرح ",
["pl"]="Grafika ",
["pt"]="Gráfico ",
["ro"]="Graficul ",
@@ -1589,19 +1902,23 @@ data.labels={
["labels"]={
["af"]="",
["ar"]="كما وضحنا سابقا",
- ["be"]="Графіка",
- ["ca"]="",
+ ["be"]="гл. вышэй",
+ ["bg"]="виж по-горе",
+ ["ca"]="com es mostra dalt ",
["cs"]="viz výše",
["da"]="se foroven",
- ["de"]="siehe oben",
+ ["de"]="siehe oben", -- better "oben"?
["en"]="as we show above",
+ ["eo"]="laŭsupre",
["es"]="como se muestra arriba",
["et"]="nii nagu üleval näidatud",
- ["fi"]="",
+ ["fa"]="چنان‌که شرح دادیم",
+ ["fi"]="kuten yllä näytämme",
["fr"]="ci-dessus",
["gr"]="",
["hr"]="vidi gore",
["hu"]="lásd feljebb",
+ ["hy"]="ստորև նշված",
["it"]="come mostrato sopra",
["kr"]="그러므로",
["la"]="",
@@ -1610,14 +1927,12 @@ data.labels={
["nb"]="som vist over",
["nl"]="hierboven",
["nn"]="som vist over",
- ["pe"]="چنان‌که شرح دادیم",
["pl"]="jak pokazano wyżej",
["pt"]="",
["ro"]="",
["ru"]="см. выше",
["sk"]="pozri hore",
["sl"]="glej zgoraj",
- ["sr"]="види горе",
["sr"]="као што је показано изнад",
["sr-latn"]="kao što je pokazano iznad",
["sv"]="se ovan",
@@ -1631,20 +1946,23 @@ data.labels={
["labels"]={
["af"]="",
["ar"]="كما نوضح لاحقا",
- ["be"]="гл. вышэй",
+ ["be"]="гл. ніжэй",
["bg"]="ў далейшым",
- ["ca"]="",
+ ["ca"]="com es mostra baix",
["cs"]="viz níže",
["da"]="se forneden",
- ["de"]="siehe unten",
+ ["de"]="siehe unten", -- better "nachstehend"?
["en"]="as we show below",
+ ["eo"]="laŭsube",
["es"]="como se muestra abajo",
["et"]="nii nagu all näidatud",
- ["fi"]="",
+ ["fa"]="چنان‌که شرح خواهیم داد",
+ ["fi"]="kuten alla näytämme",
["fr"]="ci-dessous",
["gr"]="",
["hr"]="vidi ispod",
["hu"]="lásd lejjebb",
+ ["hy"]="ինչպես ցույց է տրված ստորև",
["it"]="come mostrato sotto",
["kr"]="이후로",
["la"]="",
@@ -1653,14 +1971,12 @@ data.labels={
["nb"]="som vist under",
["nl"]="hieronder",
["nn"]="som vist under",
- ["pe"]="چنان‌که شرح خواهیم داد",
["pl"]="jak pokazano niżej",
["pt"]="",
["ro"]="",
["ru"]="см. ниже",
["sk"]="pozri ďalej",
["sl"]="glej spodaj",
- ["sr"]="види доле",
["sr"]="као што је показано ниже",
["sr-latn"]="kao što je pokazano niže",
["sv"]="se nedan",
@@ -1674,14 +1990,15 @@ data.labels={
["labels"]={
["af"]="Intermezzo ",
["ar"]="فسحة ",
- ["be"]="Устаўка",
- ["bg"]="Aнтракт ",
+ ["be"]="Інтэрмецца ",
+ ["bg"]="Интермецо ",
["ca"]="Intermedi ",
["cn"]="퉣",
["cs"]="Intermezzo ",
["da"]="Intermezzo ",
["de"]="Intermezzo ",
["en"]="Intermezzo ",
+ ["eo"]="Intermezo",
["es"]="Intermedio ",
["et"]="Vahemäng ",
["fi"]="Intermezzo ",
@@ -1689,6 +2006,7 @@ data.labels={
["gr"]="Παύση",
["hr"]="Intermeco ",
["hu"]={ "", " intermezzo" },
+ ["hy"]="Ինտերմեցո",
["it"]="Intermezzo ",
["ja"]="間奏曲",
["kr"]="간주곡",
@@ -1704,7 +2022,6 @@ data.labels={
["ru"]="Вставка ",
["sk"]="Intermezzo ",
["sl"]="Intermezzo ",
- ["sr"]="Интермеззо ",
["sr"]="Дигресија ",
["sr-latn"]="Digresija ",
["sv"]="Intermezzo ",
@@ -1728,13 +2045,16 @@ data.labels={
["da"]="januar",
["de"]="Januar",
["en"]="January",
+ ["eo"]="Januaro",
["es"]="enero",
["et"]="jaanuar",
+ ["fa"]="ژانویه",
["fi"]="tammikuu",
["fr"]="janvier",
["gr"]="Ιανουάριος",
["hr"]="siječnja",
["hu"]="január",
+ ["hy"]="Հունվար",
["it"]="gennaio",
["ja"]="1",
["kr"]="1",
@@ -1744,7 +2064,6 @@ data.labels={
["nb"]="januar",
["nl"]="januari",
["nn"]="januar",
- ["pe"]="ژانویه",
["pl"]="stycznia",
["pt"]="janeiro",
["ro"]="ianuarie",
@@ -1762,25 +2081,31 @@ data.labels={
},
["january:jalali"]={
["labels"]={
+ ["ca"]="Farvardin",
["en"]="Farvardin",
+ ["es"]="Farvardin",
["fa"]="فروردین",
+ ["hy"]="Ֆարվարդին",
},
},
["january:mnem"]={
["labels"]={
["af"]="",
- ["ca"]="",
+ ["bg"]="ян.",
+ ["ca"]="gen",
["cs"]="led.",
["da"]="",
["de"]="Jan.",
["en"]="jan",
+ ["eo"]="Jan.",
["es"]="ene.",
["et"]="jaan",
["fi"]="",
- ["fr"]="",
+ ["fr"]="jan.",
["gr"]="",
["hr"]="sij",
["hu"]="jan.",
+ ["hy"]="Հունվ",
["it"]="",
["la"]="",
["lt"]="jan",
@@ -1794,8 +2119,8 @@ data.labels={
["ru"]="",
["sk"]="jan.",
["sl"]="",
- ["sr"]="јан.",
- ["sr-latn"]="jan.",
+ ["sr"]="јан",
+ ["sr-latn"]="jan",
["sv"]="",
["tk"]="",
["tr"]="",
@@ -1818,13 +2143,16 @@ data.labels={
["da"]="juli",
["de"]="Juli",
["en"]="July",
+ ["eo"]="Julio",
["es"]="julio",
["et"]="juuli",
+ ["fa"]="ژوئیه",
["fi"]="heinäkuu",
["fr"]="juillet",
["gr"]="Ιούλιος",
["hr"]="srpnja",
["hu"]="július",
+ ["hy"]="Հուլիս",
["it"]="luglio",
["ja"]="7",
["kr"]="7",
@@ -1834,7 +2162,6 @@ data.labels={
["nb"]="juli",
["nl"]="juli",
["nn"]="juli",
- ["pe"]="ژوئیه",
["pl"]="lipca",
["pt"]="julho",
["ro"]="iulie",
@@ -1852,25 +2179,31 @@ data.labels={
},
["july:jalali"]={
["labels"]={
+ ["ca"]="Mehr",
["en"]="Mehr",
+ ["es"]="Mehr",
["fa"]="مهر",
+ ["hy"]="Մեհր",
},
},
["july:mnem"]={
["labels"]={
["af"]="",
- ["ca"]="",
+ ["bg"]="юли",
+ ["ca"]="jul",
["cs"]="čce",
["da"]="",
["de"]="Jul.",
["en"]="jul",
+ ["eo"]="Jul.",
["es"]="jul.",
["et"]="juuli",
["fi"]="",
- ["fr"]="",
+ ["fr"]="juill.",
["gr"]="",
["hr"]="srp",
["hu"]="júl.",
+ ["hy"]="Հուլ",
["it"]="",
["la"]="",
["lt"]="jul",
@@ -1884,8 +2217,8 @@ data.labels={
["ru"]="",
["sk"]="júla",
["sl"]="",
- ["sr"]="јул.",
- ["sr-latn"]="jul.",
+ ["sr"]="јул",
+ ["sr-latn"]="jul",
["sv"]="",
["tk"]="",
["tr"]="",
@@ -1907,13 +2240,16 @@ data.labels={
["da"]="juni",
["de"]="Juni",
["en"]="June",
+ ["eo"]="Junio",
["es"]="junio",
["et"]="juuni",
+ ["fa"]="ژوئن",
["fi"]="kesäkuu",
["fr"]="juin",
["gr"]="Ιούνιος",
["hr"]="lipnja",
["hu"]="június",
+ ["hy"]="Հունիսի",
["it"]="giugno",
["ja"]="6",
["kr"]="6",
@@ -1923,7 +2259,6 @@ data.labels={
["nb"]="juni",
["nl"]="juni",
["nn"]="juni",
- ["pe"]="ژوئن",
["pl"]="czerwca",
["pt"]="junho",
["ro"]="iunie",
@@ -1941,25 +2276,31 @@ data.labels={
},
["june:jalali"]={
["labels"]={
+ ["ca"]="Shahrivar",
["en"]="Shahrivar",
+ ["es"]="Shahrivar",
["fa"]="شهریور",
+ ["hy"]="Շահրիվար",
},
},
["june:mnem"]={
["labels"]={
["af"]="",
- ["ca"]="",
+ ["bg"]="юни",
+ ["ca"]="juny",
["cs"]="čer.",
["da"]="",
["de"]="Jun.",
["en"]="jun",
+ ["eo"]="Jun.",
["es"]="jun.",
["et"]="juuni",
["fi"]="",
- ["fr"]="",
+ ["fr"]="juin",
["gr"]="",
["hr"]="lip",
["hu"]="jún.",
+ ["hy"]="Հուն",
["it"]="",
["la"]="",
["lt"]="jun",
@@ -1994,13 +2335,16 @@ data.labels={
["da"]="linie ",
["de"]="Zeile ",
["en"]="line ",
+ ["eo"]="linio ",
["es"]="línea ",
["et"]="joon ",
+ ["fa"]="سطر ",
["fi"]="rivi ",
["fr"]="ligne ",
["gr"]="Γραμμή",
["hr"]="redak ",
["hu"]={ "", " sor" },
+ ["hy"]="Տող ",
["it"]="riga ",
["ja"]="線",
["kr"]="행",
@@ -2010,7 +2354,6 @@ data.labels={
["nb"]="linje ",
["nl"]="regel ",
["nn"]="linje ",
- ["pe"]="سطر ",
["pl"]="wiersz ",
["pt"]="linha ",
["ro"]="linia ",
@@ -2038,13 +2381,16 @@ data.labels={
["da"]="linier ",
["de"]="Zeilen ",
["en"]="lines ",
+ ["eo"]="linioj ",
["es"]="líneas ",
["et"]="jooned ",
+ ["fa"]="سطرهای ",
["fi"]="rivie ",
["fr"]="lignes ",
["gr"]="Γραμμές",
["hr"]="retci ",
["hu"]="sorok ",
+ ["hy"]="Տողեր ",
["it"]="righe ",
["ja"]="線",
["kr"]="행",
@@ -2054,7 +2400,6 @@ data.labels={
["nb"]="linjer ",
["nl"]="regels ",
["nn"]="linjer ",
- ["pe"]="سطرهای ",
["pl"]="wiersze ",
["pt"]="linhas ",
["ro"]="liniile ",
@@ -2083,13 +2428,16 @@ data.labels={
["da"]="marts",
["de"]="März",
["en"]="March",
+ ["eo"]="Marto",
["es"]="marzo",
["et"]="märts",
+ ["fa"]="مارس",
["fi"]="maaliskuu",
["fr"]="mars",
["gr"]="Μάρτιος",
["hr"]="ožujka",
["hu"]="március",
+ ["hy"]="Մարտ",
["it"]="marzo",
["ja"]="3",
["kr"]="3",
@@ -2099,7 +2447,6 @@ data.labels={
["nb"]="mars",
["nl"]="maart",
["nn"]="mars",
- ["pe"]="مارس",
["pl"]="marca",
["pt"]="março",
["ro"]="martie",
@@ -2117,25 +2464,31 @@ data.labels={
},
["march:jalali"]={
["labels"]={
+ ["ca"]="Jordad",
["en"]="Khordad",
+ ["es"]="Khordad",
["fa"]="خرداد",
+ ["hy"]="Խորդադ",
},
},
["march:mnem"]={
["labels"]={
["af"]="",
- ["ca"]="",
+ ["bg"]="март",
+ ["ca"]="març",
["cs"]="břez.",
["da"]="",
["de"]="Mrz.",
["en"]="mar",
+ ["eo"]="Mar.",
["es"]="mar.",
["et"]="märts",
["fi"]="",
- ["fr"]="",
+ ["fr"]="mars",
["gr"]="",
["hr"]="ožu",
["hu"]="már.",
+ ["hy"]="Մարտ",
["it"]="",
["la"]="",
["lt"]="mar",
@@ -2149,8 +2502,8 @@ data.labels={
["ru"]="",
["sk"]="mar.",
["sl"]="",
- ["sr"]="мар.",
- ["sr-latn"]="mar.",
+ ["sr"]="мар",
+ ["sr-latn"]="mar",
["sv"]="",
["tk"]="",
["tr"]="",
@@ -2173,13 +2526,16 @@ data.labels={
["da"]="maj",
["de"]="Mai",
["en"]="May",
+ ["eo"]="Majo",
["es"]="mayo",
["et"]="mai",
+ ["fa"]="مه",
["fi"]="toukokuu",
["fr"]="mai",
["gr"]="Μάιος",
["hr"]="svibnja",
["hu"]="május",
+ ["hy"]="Մայիս",
["it"]="maggio",
["ja"]="5",
["kr"]="5",
@@ -2189,7 +2545,6 @@ data.labels={
["nb"]="mai",
["nl"]="mei",
["nn"]="mai",
- ["pe"]="مه",
["pl"]="maja",
["pt"]="maio",
["ro"]="mai",
@@ -2207,25 +2562,31 @@ data.labels={
},
["may:jalali"]={
["labels"]={
+ ["ca"]="Mordad",
["en"]="Mordad",
+ ["es"]="Mordad",
["fa"]="مرداد",
+ ["hy"]="Մորդադ",
},
},
["may:mnem"]={
["labels"]={
["af"]="",
- ["ca"]="",
+ ["bg"]="май",
+ ["ca"]="maig",
["cs"]="květ.",
["da"]="",
["de"]="Mai",
["en"]="may",
+ ["eo"]="Maj.",
["es"]="may.",
["et"]="mai",
["fi"]="",
- ["fr"]="",
+ ["fr"]="mai",
["gr"]="",
["hr"]="svi",
["hu"]="máj.",
+ ["hy"]="Մայ",
["it"]="",
["la"]="",
["lt"]="may",
@@ -2260,13 +2621,16 @@ data.labels={
["da"]="mandag",
["de"]="Montag",
["en"]="Monday",
+ ["eo"]="lundo",
["es"]="lunes",
["et"]="esmaspäev",
+ ["fa"]="دوشنبه",
["fi"]="maanantai",
["fr"]="lundi",
["gr"]="Δευτέρα",
["hr"]="ponedjeljak",
["hu"]="hétfő",
+ ["hy"]="երկուշաբթի",
["it"]="lunedì",
["ja"]="月曜日",
["kr"]="월요일",
@@ -2276,7 +2640,6 @@ data.labels={
["nb"]="mandag",
["nl"]="maandag",
["nn"]="måndag",
- ["pe"]="دوشنبه",
["pl"]="poniedziałek",
["pt"]="segunda-feira",
["ro"]="luni",
@@ -2294,22 +2657,38 @@ data.labels={
},
["monday:mnem"]={
["labels"]={
+ ["bg"]="пн",
+ ["ca"]="dl",
+ ["cs"]="po",
["de"]="Mo.",
["en"]="mon",
- ["sr"]="пон.",
- ["sr-latn"]="pon.",
+ ["eo"]="lun.",
+ ["es"]="lu",
+ ["fi"]="ma",
+ ["fr"]="lun.",
+ ["hy"]="Երկ",
+ ["sk"]="po",
+ ["sr"]="пон",
+ ["sr-latn"]="pon",
},
},
["month"]={
["labels"]={
["be"]="месяц",
["bg"]="месец",
+ ["ca"]="mes",
+ ["de"]="Monat",
["en"]="month",
+ ["eo"]="monato",
+ ["es"]="mes",
["et"]="kuu",
+ ["fa"]="ماه",
+ ["fi"]="kuukausi",
+ ["fr"]="mois",
+ ["hy"]="ամիս",
["kr"]="월",
["mk"]="месец",
["nl"]="maand",
- ["pe"]="ماه",
["sr"]="месец",
["sr-latn"]="mesec",
},
@@ -2328,13 +2707,16 @@ data.labels={
["da"]="november",
["de"]="November",
["en"]="November",
+ ["eo"]="Novembro",
["es"]="noviembre",
["et"]="november",
+ ["fa"]="نوامبر",
["fi"]="marraskuu",
["fr"]="novembre",
["gr"]="Νοέμβριος",
["hr"]="studenog",
["hu"]="november",
+ ["hy"]="Նոյեմբեր",
["it"]="novembre",
["ja"]="11",
["kr"]="11",
@@ -2344,7 +2726,6 @@ data.labels={
["nb"]="november",
["nl"]="november",
["nn"]="november",
- ["pe"]="نوامبر",
["pl"]="listopada",
["pt"]="novembro",
["ro"]="noiembrie",
@@ -2362,25 +2743,31 @@ data.labels={
},
["november:jalali"]={
["labels"]={
+ ["ca"]="Bahman",
["en"]="Bahman",
+ ["es"]="Bahman",
["fa"]="بهمن",
+ ["hy"]="Բահման",
},
},
["november:mnem"]={
["labels"]={
["af"]="",
- ["ca"]="",
+ ["bg"]="ноем.",
+ ["ca"]="nov",
["cs"]="list.",
["da"]="",
["de"]="Nov.",
["en"]="nov",
+ ["eo"]="Nov.",
["es"]="nov.",
["et"]="nov",
["fi"]="",
- ["fr"]="",
+ ["fr"]="nov.",
["gr"]="",
["hr"]="stu",
["hu"]="nov.",
+ ["hy"]="Նոյ",
["it"]="",
["la"]="",
["lt"]="nov",
@@ -2394,8 +2781,8 @@ data.labels={
["ru"]="",
["sk"]="nov.",
["sl"]="",
- ["sr"]="нов.",
- ["sr-latn"]="nov.",
+ ["sr"]="нов",
+ ["sr-latn"]="nov",
["sv"]="",
["tk"]="",
["tr"]="",
@@ -2416,13 +2803,16 @@ data.labels={
["da"]="oktober",
["de"]="Oktober",
["en"]="October",
+ ["eo"]="Oktobro",
["es"]="octubre",
["et"]="oktoober",
+ ["fa"]="اکتبر",
["fi"]="lokakuu",
["fr"]="octobre",
["gr"]="Οκτώβριος",
["hr"]="listopada",
["hu"]="október",
+ ["hy"]="հոկտեմբեր",
["it"]="ottobre",
["ja"]="10",
["kr"]="10",
@@ -2432,7 +2822,6 @@ data.labels={
["nb"]="oktober",
["nl"]="oktober",
["nn"]="oktober",
- ["pe"]="اکتبر",
["pl"]="października",
["pt"]="outubro",
["ro"]="octombrie",
@@ -2450,25 +2839,31 @@ data.labels={
},
["october:jalali"]={
["labels"]={
+ ["ca"]="Dey",
["en"]="Dey",
+ ["es"]="Dey",
["fa"]="دی",
+ ["hy"]="Դեյ",
},
},
["october:mnem"]={
["labels"]={
["af"]="",
- ["ca"]="",
+ ["bg"]="окт.",
+ ["ca"]="oct",
["cs"]="říj.",
["da"]="",
["de"]="Okt.",
["en"]="oct",
+ ["eo"]="Okt.",
["es"]="oct.",
["et"]="okt",
["fi"]="",
- ["fr"]="",
+ ["fr"]="oct.",
["gr"]="",
["hr"]="lis",
["hu"]="okt.",
+ ["hy"]="Հոկ",
["it"]="",
["la"]="",
["lt"]="oct",
@@ -2482,8 +2877,8 @@ data.labels={
["ru"]="",
["sk"]="okt.",
["sl"]="",
- ["sr"]="окт.",
- ["sr-latn"]="okt.",
+ ["sr"]="окт",
+ ["sr-latn"]="okt",
["sv"]="",
["tk"]="",
["tr"]="",
@@ -2497,18 +2892,21 @@ data.labels={
["ar"]="صفحة ",
["be"]="старонка ",
["bg"]="страна",
- ["ca"]="",
+ ["ca"]="pagina ",
["cs"]="strana ",
["da"]="Side ",
["de"]="Seite ",
["en"]="page ",
+ ["eo"]="paĝo ",
["es"]="página ",
["et"]="lehekülg ",
- ["fi"]="",
+ ["fa"]="صفحه ",
+ ["fi"]="Sivu",
["fr"]="page ",
["gr"]="",
["hr"]="stranica ",
["hu"]="oldal ",
+ ["hy"]="էջ ",
["it"]="pagina ",
["kr"]="쪽",
["la"]="",
@@ -2517,7 +2915,6 @@ data.labels={
["nb"]="side ",
["nl"]="pagina ",
["nn"]="side ",
- ["pe"]="صفحه ",
["pl"]="strona ",
["pt"]="",
["ro"]="",
@@ -2545,13 +2942,16 @@ data.labels={
["da"]="Del ",
["de"]="Teil ",
["en"]="Part ",
+ ["eo"]="Parto ",
["es"]="Parte ",
["et"]="Osa ",
+ ["fa"]="قسمت ",
["fi"]="Osa ",
["fr"]="Partie ",
["gr"]="Μέρος",
["hr"]="Dio ",
["hu"]={ "", " rész" },
+ ["hy"]="Մաս ",
["it"]="Parte ",
["ja"]={ "第", "パート" },
["kr"]={ "제", "부" },
@@ -2561,7 +2961,6 @@ data.labels={
["nb"]="Del ",
["nl"]="Deel ",
["nn"]="Del",
- ["pe"]="قسمت ",
["pl"]="Część ",
["pt"]="Parte ",
["ro"]="Partea ",
@@ -2579,11 +2978,18 @@ data.labels={
},
["precedingpage"]={
["labels"]={
+ ["ca"]="en una pagina anterior",
+ ["de"]="oben", -- "auf der vorigen Seite" ok, but not "auf einer vorigen Seite"
["en"]="on a preceding page",
+ ["eo"]="sur antaŭa paĝo",
+ ["es"]="en la pagina anterior",
["et"]="eelmisel lehel",
+ ["fa"]="در صفحات گذشته",
+ ["fi"]="edellisellä sivulla",
+ ["fr"]="sur la page précédente",
+ ["hy"]="նախորդ էջ",
["mk"]="на претходната страница",
["nl"]="op een voorgaande bladzijde",
- ["pe"]="در صفحات گذشته",
["sr"]="на претходној страници",
["sr-latn"]="na prethodnoj stranici",
},
@@ -2600,13 +3006,16 @@ data.labels={
["da"]="lørdag",
["de"]="Samstag",
["en"]="Saturday",
+ ["eo"]="sabato",
["es"]="sábado",
["et"]="laupäev",
+ ["fa"]="شنبه",
["fi"]="lauantai",
["fr"]="samedi",
["gr"]="Σάββατο",
["hr"]="subota",
["hu"]="szombat",
+ ["hy"]="շաբաթ",
["it"]="sabato",
["ja"]="土曜日",
["kr"]="토요일",
@@ -2616,7 +3025,6 @@ data.labels={
["nb"]="lørdag",
["nl"]="zaterdag",
["nn"]="laurdag",
- ["pe"]="شنبه",
["pl"]="sobota",
["pt"]="sábado",
["ro"]="sâmbătă",
@@ -2634,10 +3042,18 @@ data.labels={
},
["saturday:mnem"]={
["labels"]={
+ ["bg"]="сб",
+ ["cs"]="so",
["de"]="Sa.",
["en"]="sat",
- ["sr"]="суб.",
- ["sr-latn"]="sub.",
+ ["eo"]="sab.",
+ ["es"]="sa",
+ ["fi"]="La",
+ ["fr"]="sam.",
+ ["hy"]="Շաբ",
+ ["sk"]="so",
+ ["sr"]="суб",
+ ["sr-latn"]="sub",
},
},
["section"]={
@@ -2650,15 +3066,18 @@ data.labels={
["cn"]={ "第", "节" },
["cs"]="Sekce ",
["da"]="",
- ["de"]="",
- ["en"]="",
+ ["de"]="Abschnitt ",
+ ["en"]="Section",
+ ["eo"]="Sekcio ",
["es"]="Sección ",
["et"]="jaos ",
- ["fi"]="",
+ ["fa"]="بخش ",
+ ["fi"]="Osio",
["fr"]="Section ",
["gr"]="Ενότητα",
["hr"]="Odjeljak ",
["hu"]="Fejezet ",
+ ["hy"]="Բաժին ",
["it"]="",
["ja"]={ "第", "項" },
["kr"]={ "제", "절" },
@@ -2668,7 +3087,6 @@ data.labels={
["nb"]="",
["nl"]="",
["nn"]="",
- ["pe"]="بخش ",
["pl"]="Podrozdział ",
["pt"]="",
["ro"]="",
@@ -2690,18 +3108,21 @@ data.labels={
["ar"]="انظر ",
["be"]="гл. ",
["bg"]="погледни",
- ["ca"]="",
+ ["ca"]="vore ",
["cs"]="viz ",
["da"]="se ",
["de"]="siehe ",
["en"]="see ",
+ ["eo"]="vidu ",
["es"]="ver: ",
["et"]="vaadake ",
- ["fi"]="",
+ ["fa"]="نگاه کنید به ",
+ ["fi"]="Katso",
["fr"]="cf. ",
["gr"]="",
["hr"]="vidi ",
["hu"]="lásd ",
+ ["hy"]="Նայել ",
["it"]="cf. ",
["kr"]="",
["la"]="",
@@ -2710,7 +3131,6 @@ data.labels={
["nb"]="se ",
["nl"]="zie ",
["nn"]="sjå ",
- ["pe"]="نگاه کنید به ",
["pl"]="patrz ",
["pt"]="",
["ro"]="",
@@ -2740,13 +3160,16 @@ data.labels={
["da"]="september",
["de"]="September",
["en"]="September",
+ ["eo"]="Septembro",
["es"]="septiembre",
["et"]="september",
+ ["fa"]="سپتامبر",
["fi"]="syyskuu",
["fr"]="septembre",
["gr"]="Σεπτέμβριος",
["hr"]="rujna",
["hu"]="szeptember",
+ ["hy"]="Սեպտեմբեր",
["it"]="settembre",
["ja"]="9",
["kr"]="9",
@@ -2756,7 +3179,6 @@ data.labels={
["nb"]="september",
["nl"]="september",
["nn"]="september",
- ["pe"]="سپتامبر",
["pl"]="września",
["pt"]="setembro",
["ro"]="septembrie",
@@ -2775,24 +3197,29 @@ data.labels={
["september:jalali"]={
["labels"]={
["en"]="Azar",
+ ["es"]="Azar",
["fa"]="آذر",
+ ["hy"]="Ազար",
},
},
["september:mnem"]={
["labels"]={
["af"]="",
- ["ca"]="",
+ ["bg"]="септ.",
+ ["ca"]="set",
["cs"]="září",
["da"]="",
["de"]="Sep.",
["en"]="sep",
+ ["eo"]="Sep.",
["es"]="sep.",
["et"]="sept",
["fi"]="",
- ["fr"]="",
+ ["fr"]="sept.",
["gr"]="",
["hr"]="ruj",
["hu"]="szep.",
+ ["hy"]="Սեպ",
["it"]="",
["la"]="",
["lt"]="sep",
@@ -2825,15 +3252,18 @@ data.labels={
["cn"]="",
["cs"]="Podsekce ",
["da"]="",
- ["de"]="",
- ["en"]="",
+ ["de"]="Unterabschnitt ",
+ ["en"]="Subsection",
+ ["eo"]="Subsekcio ",
["es"]="Subsección ",
["et"]="alajaotis ",
- ["fi"]="",
+ ["fa"]="زیربخش ",
+ ["fi"]="Alajakso",
["fr"]="Soussection ",
["gr"]="Υπόενότητα",
["hr"]="Pododjeljak ",
["hu"]="Alfejezet ",
+ ["hy"]=" Ենթաբաժին ",
["it"]="",
["ja"]="",
["la"]="",
@@ -2842,7 +3272,6 @@ data.labels={
["nb"]="",
["nl"]="",
["nn"]="",
- ["pe"]="زیربخش ",
["pl"]="Podpodrozdział ",
["pt"]="",
["ro"]="",
@@ -2868,15 +3297,18 @@ data.labels={
["cn"]="",
["cs"]="Podpodsekce ",
["da"]="",
- ["de"]="",
- ["en"]="",
+ ["de"]="Unterunterabschnitt ",
+ ["en"]="Subsubsection",
+ ["eo"]="Subsubsekcio ",
["es"]="Subsubsección ",
["et"]="alamjaotis ",
- ["fi"]="",
+ ["fa"]="زیرزیربخش ",
+ ["fi"]="Alakohta",
["fr"]="Soussoussection ",
["gr"]="",
["hr"]="Podpododjeljak ",
["hu"]="Al-alfejezet ",
+ ["hy"]="Ենթաենթաբաժին ",
["it"]="",
["ja"]="",
["la"]="",
@@ -2885,7 +3317,6 @@ data.labels={
["nb"]="",
["nl"]="",
["nn"]="",
- ["pe"]="زیرزیربخش ",
["pl"]="",
["pt"]="",
["ro"]="",
@@ -2911,15 +3342,18 @@ data.labels={
["cn"]="",
["cs"]="Podpodpodsekce ",
["da"]="",
- ["de"]="",
- ["en"]="",
+ ["de"]="Unterunterunterabschnitt",
+ ["en"]="Subsubsubsection",
+ ["eo"]="Subsubsubsekcio ",
["es"]="Subsubsubsección ",
["et"]="",
- ["fi"]="",
+ ["fa"]="زیرزیرزیربخش ",
+ ["fi"]="Ala-alakohta",
["fr"]="Soussoussoussection ",
["gr"]="",
["hr"]="Podpodpododjeljak ",
["hu"]="Al-al-alfejezet ",
+ ["hy"]="Ենթաենթաենթաբաժին ",
["it"]="",
["ja"]="",
["la"]="",
@@ -2928,7 +3362,6 @@ data.labels={
["nb"]="",
["nl"]="",
["nn"]="",
- ["pe"]="زیرزیرزیربخش ",
["pl"]="",
["pt"]="",
["ro"]="",
@@ -2956,13 +3389,16 @@ data.labels={
["da"]="søndag",
["de"]="Sonntag",
["en"]="Sunday",
+ ["eo"]="dimanĉo",
["es"]="domingo",
["et"]="pühapäev",
+ ["fa"]="یکشنبه",
["fi"]="sunnuntai",
["fr"]="dimanche",
["gr"]="Κυριακή",
["hr"]="nedjelja",
["hu"]="vasárnap",
+ ["hy"]="կիրակի",
["it"]="domenica",
["ja"]="日曜日",
["kr"]="일요일",
@@ -2972,7 +3408,6 @@ data.labels={
["nb"]="søndag",
["nl"]="zondag",
["nn"]="sundag",
- ["pe"]="یکشنبه",
["pl"]="niedziela",
["pt"]="domingo",
["ro"]="duminică",
@@ -2990,10 +3425,18 @@ data.labels={
},
["sunday:mnem"]={
["labels"]={
+ ["bg"]="нд",
+ ["ca"]="dg",
+ ["cs"]="ne",
["de"]="So.",
["en"]="sun",
- ["sr"]="нед.",
- ["sr-latn"]="ned.",
+ ["eo"]="dim.",
+ ["es"]="do",
+ ["fr"]="dim.",
+ ["hy"]="Կիր",
+ ["sk"]="ne",
+ ["sr"]="нед",
+ ["sr-latn"]="ned",
},
},
["table"]={
@@ -3008,13 +3451,16 @@ data.labels={
["da"]="Tabel ",
["de"]="Tabelle ",
["en"]="Table ",
+ ["eo"]="Tabelo ",
["es"]="Tabla ",
["et"]="Tabel ",
+ ["fa"]="جدول ",
["fi"]="Taulukko ",
["fr"]="Tableau ",
["gr"]="Πίνακας",
["hr"]="Tablica ",
["hu"]={ "", " táblázat" },
+ ["hy"]="Աղյուսակ ",
["it"]="Tabella ",
["ja"]="表",
["kr"]="표 ",
@@ -3024,7 +3470,6 @@ data.labels={
["nb"]="Tabell ",
["nl"]="Tabel ",
["nn"]="Tabell ",
- ["pe"]="جدول ",
["pl"]="Tabela ",
["pt"]="Tabela ",
["ro"]="Tabelul ",
@@ -3052,13 +3497,16 @@ data.labels={
["da"]="torsdag",
["de"]="Donnerstag",
["en"]="Thursday",
+ ["eo"]="ĵaŭdo",
["es"]="jueves",
["et"]="neljapäev",
+ ["fa"]="پنج‌شنبه",
["fi"]="torstai",
["fr"]="jeudi",
["gr"]="Πέμπτη",
["hr"]="četvrtak",
["hu"]="csütörtök",
+ ["hy"]="հինգշաբթի",
["it"]="giovedì",
["ja"]="木曜日",
["kr"]="목요일",
@@ -3068,7 +3516,6 @@ data.labels={
["nb"]="torsdag",
["nl"]="donderdag",
["nn"]="torsdag",
- ["pe"]="پنج‌شنبه",
["pl"]="czwartek",
["pt"]="quinta-feira",
["ro"]="joi",
@@ -3086,10 +3533,19 @@ data.labels={
},
["thursday:mnem"]={
["labels"]={
+ ["bg"]="чт",
+ ["ca"]="dj",
+ ["cs"]="čt",
["de"]="Do.",
["en"]="thu",
- ["sr"]="чет.",
- ["sr-latn"]="čet.",
+ ["eo"]="ĵaŭ.",
+ ["es"]="ju",
+ ["fi"]="To",
+ ["fr"]="jeu.",
+ ["hy"]="Հնգ",
+ ["sk"]="št",
+ ["sr"]="чет",
+ ["sr-latn"]="čet",
},
},
["tuesday"]={
@@ -3104,13 +3560,16 @@ data.labels={
["da"]="tirsdag",
["de"]="Dienstag",
["en"]="Tuesday",
+ ["eo"]="mardo",
["es"]="martes",
["et"]="teisipäev",
+ ["fa"]="سه‌شنبه",
["fi"]="tiistai",
["fr"]="mardi",
["gr"]="Τρίτη",
["hr"]="utorak",
["hu"]="kedd",
+ ["hy"]="երեքշաբթի",
["it"]="martedì",
["ja"]="火曜日",
["kr"]="화요일",
@@ -3120,7 +3579,6 @@ data.labels={
["nb"]="tirsdag",
["nl"]="dinsdag",
["nn"]="tysdag",
- ["pe"]="سه‌شنبه",
["pl"]="wtorek",
["pt"]="terça-feira",
["ro"]="marți",
@@ -3138,10 +3596,19 @@ data.labels={
},
["tuesday:mnem"]={
["labels"]={
+ ["bg"]="вт",
+ ["ca"]="dm",
+ ["cs"]="út",
["de"]="Di.",
["en"]="tue",
- ["sr"]="уто.",
- ["sr-latn"]="uto.",
+ ["eo"]="mar.",
+ ["es"]="ma",
+ ["fi"]="Ti",
+ ["fr"]="mar.",
+ ["hy"]="Երք",
+ ["sk"]="út",
+ ["sr"]="уто",
+ ["sr-latn"]="uto",
},
},
["wednesday"]={
@@ -3156,13 +3623,16 @@ data.labels={
["da"]="onsdag",
["de"]="Mittwoch",
["en"]="Wednesday",
+ ["eo"]="merkredo",
["es"]="miércoles",
["et"]="kolmapäev",
+ ["fa"]="چهارشنبه",
["fi"]="keskiviikko",
["fr"]="mercredi",
["gr"]="Τετάρτη",
["hr"]="srijeda",
["hu"]="szerda",
+ ["hy"]="չորեքշաբթի",
["it"]="mercoledì",
["ja"]="水曜日",
["kr"]="수요일",
@@ -3172,7 +3642,6 @@ data.labels={
["nb"]="onsdag",
["nl"]="woensdag",
["nn"]="onsdag",
- ["pe"]="چهارشنبه",
["pl"]="środa",
["pt"]="quarta-feira",
["ro"]="miercuri",
@@ -3190,21 +3659,37 @@ data.labels={
},
["wednesday:mnem"]={
["labels"]={
+ ["bg"]="ср",
+ ["ca"]="dim",
+ ["cs"]="st",
["de"]="Mi.",
["en"]="wed",
- ["sr"]="сре.",
- ["sr-latn"]="sre.",
+ ["eo"]="mer.",
+ ["es"]="mi",
+ ["fi"]="Ke",
+ ["fr"]="mer.",
+ ["hy"]="չոր",
+ ["sk"]="st",
+ ["sr"]="сре",
+ ["sr-latn"]="sre",
},
},
["year"]={
["labels"]={
["bg"]="година",
+ ["ca"]="any",
+ ["de"]="Jahr",
["en"]="year",
+ ["eo"]="jaro",
+ ["es"]="año",
["et"]="aasta",
+ ["fa"]="سال",
+ ["fi"]="Vuosi",
+ ["fr"]="année",
+ ["hy"]="Տարի",
["kr"]="년",
["mk"]="година",
["nl"]="jaar",
- ["pe"]="سال",
["sr"]="година",
["sr-latn"]="godina",
},
@@ -3223,13 +3708,16 @@ data.labels={
["da"]="Forkortelser",
["de"]="Abkürzungen",
["en"]="Abbreviations",
+ ["eo"]="Mallongigoj",
["es"]="Abreviaturas",
["et"]="Lühend",
+ ["fa"]="نشانه‌های اختصاری",
["fi"]="Lyhennyksi",
["fr"]="Abréviations",
["gr"]="Συντομογραφίες",
["hr"]="Kratice",
["hu"]="Rövidítések",
+ ["hy"]="Հապավումներ",
["it"]="Abbreviazioni",
["ja"]="略語",
["kr"]="약어",
@@ -3239,7 +3727,6 @@ data.labels={
["nb"]="Forkortelser",
["nl"]="Afkortingen",
["nn"]="Forkortingar",
- ["pe"]="نشانه‌های اختصاری",
["pl"]="Wykaz skrótów",
["pt"]="Abreviaturas",
["ro"]="Abrevieri",
@@ -3267,13 +3754,16 @@ data.labels={
["da"]="Indhold",
["de"]="Inhalt",
["en"]="Contents",
+ ["eo"]="Enhavo",
["es"]="Contenido",
["et"]="Sisu",
+ ["fa"]="فهرست مطالب",
["fi"]="Sisällys",
["fr"]="Table des matières",
["gr"]="Περιεχόμενα",
["hr"]="Sadržaj",
["hu"]="Tartalom",
+ ["hy"]="Բովանդակություն",
["it"]="Indice",
["ja"]="目次",
["kr"]="목차",
@@ -3283,7 +3773,6 @@ data.labels={
["nb"]="Innhold",
["nl"]="Inhoud",
["nn"]="Innhald",
- ["pe"]="فهرست مطالب",
["pl"]="Spis treści",
["pt"]="Conteúdo",
["ro"]="Cuprins",
@@ -3310,13 +3799,16 @@ data.labels={
["da"]="Figurer",
["de"]="Abbildungen",
["en"]="Figures",
+ ["eo"]="Figuroj",
["es"]="Figuras",
["et"]="Arvandmed",
+ ["fa"]="فهرست اشکال",
["fi"]="Kuvi",
["fr"]="Figures",
["gr"]="Σχήματα",
["hr"]="Slike",
["hu"]="Ábrák",
+ ["hy"]="Նկարազարդումներ",
["it"]="Figure",
["ja"]="図",
["kr"]="그림 ",
@@ -3326,7 +3818,6 @@ data.labels={
["nb"]="Figurer",
["nl"]="Figuren",
["nn"]="Figurar",
- ["pe"]="فهرست اشکال",
["pl"]="Ilustracje",
["pt"]="Figuras",
["ro"]="Figuri",
@@ -3347,19 +3838,23 @@ data.labels={
["af"]="Grafieke",
["ar"]="الرسوم",
["be"]="Графiка",
+ ["bg"]="Графики",
["ca"]="Gràfiques",
["cn"]="图",
["cs"]="Seznam grafů",
["da"]="Grafik",
- ["de"]="Graphiken",
+ ["de"]="Grafiken",
["en"]="Graphics",
+ ["eo"]="Grafikoj",
["es"]="Gráficos",
["et"]="Graafika",
+ ["fa"]="فهرست طرح‌ها",
["fi"]="Grafiikkaoi",
["fr"]="Graphiques",
["gr"]="Γραφικά",
["hr"]="Slike",
["hu"]="Grafikák",
+ ["hy"]="Գծապատկեր",
["it"]="Grafici",
["ja"]="グラフ",
["kr"]="그래픽 ",
@@ -3369,7 +3864,6 @@ data.labels={
["nb"]="Bilde",
["nl"]="Grafieken",
["nn"]="Bilete",
- ["pe"]="فهرست طرح‌ها",
["pl"]="Grafiki",
["pt"]="Gráficos",
["ro"]="Grafice",
@@ -3397,13 +3891,16 @@ data.labels={
["da"]="Indeks",
["de"]="Index",
["en"]="Index",
+ ["eo"]="Indekso",
["es"]="Índice",
["et"]="Indeks",
+ ["fa"]="نمایه",
["fi"]="Indeksiluku",
["fr"]="Index",
["gr"]="Ευρετήριο",
["hr"]="Indeks",
["hu"]="Index",
+ ["hy"]="Այբբենական ցուցիչ",
["it"]="Indice",
["ja"]="目次",
["kr"]="찾아보기",
@@ -3413,14 +3910,12 @@ data.labels={
["nb"]="Register",
["nl"]="Index",
["nn"]="Register",
- ["pe"]="نمایه",
["pl"]="Indeks",
["pt"]="Índice",
["ro"]="Index",
["ru"]="Алфавитный указатель",
["sk"]="Zoznam",
["sl"]="Stvarno kazalo",
- ["sr"]="Индекс",
["sr"]="Индекс појмова",
["sr-latn"]="Indeks pojmova",
["sv"]="Sakregister",
@@ -3435,12 +3930,14 @@ data.labels={
["af"]="Intermezzos",
["ar"]="فسح",
["be"]="Спіс уставак",
+ ["bg"]="Интермеца",
["ca"]="Intermedis",
["cn"]="퉣",
["cs"]="Intermezza",
["da"]="Intermezzoer",
["de"]="Intermezzi",
["en"]="Intermezzos",
+ ["eo"]="Intermezoj",
["es"]="Intermedios",
["et"]="Vahemängud",
["fi"]="Intermezzos",
@@ -3448,6 +3945,7 @@ data.labels={
["gr"]="Παύσεις",
["hr"]="Intermeci",
["hu"]="Intermezzok",
+ ["hy"]="Ինտերլյուդներ",
["it"]="Intermezzi",
["ja"]="間奏曲",
["kr"]="간주곡",
@@ -3463,7 +3961,6 @@ data.labels={
["ru"]="Список вставок",
["sk"]="Intermezzá",
["sl"]="Intermezzi",
- ["sr"]="Интермеззи",
["sr"]="Списак дигресија",
["sr-latn"]="Spisak digresija",
["sv"]="Intermezzon",
@@ -3485,13 +3982,16 @@ data.labels={
["da"]="Logoer",
["de"]="Logos",
["en"]="Logos",
+ ["eo"]="Markemblemoj",
["es"]="Logotipos",
["et"]="Logos",
+ ["fa"]="فهرست لوگوها",
["fi"]="Vertauskuva",
["fr"]="Logos",
["gr"]="Λογότυπα",
["hr"]="Logotipi",
["hu"]="Fejlécek",
+ ["hy"]="Լոգոներ",
["it"]="Logotipi",
["ja"]="理性",
["kr"]="이성",
@@ -3501,7 +4001,6 @@ data.labels={
["nb"]="Logoer",
["nl"]="Logo's",
["nn"]="Logoar",
- ["pe"]="فهرست لوگوها",
["pl"]="Znaki",
["pt"]="Logotipos",
["ro"]="Logo-uri",
@@ -3525,13 +4024,16 @@ data.labels={
["da"]="",
["de"]="Literatur",
["en"]="References",
+ ["eo"]="Referencoj",
["es"]="Bibliografía",
["et"]="Viited",
- ["fi"]="",
+ ["fa"]="کتاب‌نامه",
+ ["fi"]="Viittet",
["fr"]="Bibliographie",
["gr"]="",
["hr"]="Literatura",
["hu"]="Bibliográfia",
+ ["hy"]="Գրականութիւն",
["it"]="Bibliografia",
["kr"]="참고문헌",
["la"]="",
@@ -3540,7 +4042,6 @@ data.labels={
["nb"]="",
["nl"]="Literatuur",
["nn"]="",
- ["pe"]="کتاب‌نامه",
["pl"]="Bibliografia",
["pt"]="",
["ro"]="",
@@ -3567,13 +4068,16 @@ data.labels={
["da"]="Tabeller",
["de"]="Tabellen",
["en"]="Tables",
+ ["eo"]="Tabeloj",
["es"]="Tablas",
["et"]="Tabelid",
+ ["fa"]="فهرست جداول",
["fi"]="Taulukkoj",
["fr"]="Tableaux",
["gr"]="Πίνακες",
["hr"]="Tablice",
["hu"]="Táblázatok",
+ ["hy"]="Աղյուսակներ",
["it"]="Tabelle",
["ja"]="机",
["kr"]="표 ",
@@ -3583,7 +4087,6 @@ data.labels={
["nb"]="Tabeller",
["nl"]="Tabellen",
["nn"]="Tabellar",
- ["pe"]="فهرست جداول",
["pl"]="Tabele",
["pt"]="Tabelas",
["ro"]="Tabele",
@@ -3611,13 +4114,16 @@ data.labels={
["da"]="Enheder",
["de"]="Einheiten",
["en"]="Units",
+ ["eo"]="Unuoj",
["es"]="Unidades",
["et"]="Ühikud",
+ ["fa"]="واحدها",
["fi"]="Yksiköt",
["fr"]="Unités",
["gr"]="Μονάδες",
["hr"]="Jedinice",
["hu"]="Mértékegységek",
+ ["hy"]="Չափման միավորներ",
["it"]="Unità",
["ja"]="ユニッツ",
["kr"]="측정단위",
@@ -3627,7 +4133,6 @@ data.labels={
["nb"]="Enheter",
["nl"]="Eenheden",
["nn"]="Einingar",
- ["pe"]="واحدها",
["pl"]="Jednostki",
["pt"]="Unidades",
["ro"]="Unități",
@@ -3658,3 +4163,4 @@ functions.atanh = functions.arctanh
functions.tg = functions.tan
functions.arctg = functions.arctan
functions.arctgh = functions.arctanh
+
diff --git a/Master/texmf-dist/tex/context/base/mkiv/libs-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/libs-ini.lua
index 5b8390df2a1..cf696f4e9ea 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/libs-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/libs-ini.lua
@@ -17,7 +17,6 @@ local find = string.find
-- here we implement the resolver
-
local nameonly = file.nameonly
local joinfile = file.join
local addsuffix = file.addsuffix
@@ -54,10 +53,10 @@ local function findlib(required) -- todo: cache
for i=1,#list do
local name = list[i]
local found = findfile(name,"lib")
- if not found then
+ if not found or found == "" then
found = findfile(addsuffix(name,suffix),"lib")
end
- if found then
+ if found and found ~= "" then
if trace then
report("library %a resolved via %a path to %a",name,"tds lib",found)
end
@@ -70,9 +69,9 @@ local function findlib(required) -- todo: cache
for i=1,#list do
local full = joinfile(list[i],base)
local found = isfile(full) and full
- if found then
+ if found and found ~= "" then
if trace then
- report("library %a resolved via %a path to %a",name,"system",found)
+ report("library %a resolved via %a path to %a",full,"system",found)
end
return found
end
@@ -137,7 +136,7 @@ function libraries.optionalloaded(name,libnames)
for i=1,#libnames do
local libname = libnames[i]
local filename = foundlibraries[libname]
- if filename then
+ if filename and filename ~= "" then
libnames[i] = filename
else
report("unable to locate library %a",libname)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-ano.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-ano.lua
index a120ff2f4ee..2bc485ff1f6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-ano.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-ano.lua
@@ -108,6 +108,10 @@ local pdf_named = pdfconstant("Named")
local autoprefix = "#"
local usedautoprefixes = { }
+function codeinjections.setautoprefix(prefix)
+ autoprefix = prefix ~= "" and prefix or autoprefix
+end
+
local function registerautoprefix(name)
local internal = autoprefix .. name
if usedautoprefixes[internal] == nil then
@@ -1215,24 +1219,24 @@ local pdf_stop = pdfconstant("Stop")
local pdf_resume = pdfconstant("Resume")
local pdf_pause = pdfconstant("Pause")
-local function movie_or_sound(operation,arguments)
+local function movie_or_sound(operation,what,arguments)
arguments = (type(arguments) == "table" and arguments) or settings_to_array(arguments)
return pdfdictionary {
S = pdf_movie,
- T = format("movie %s",arguments[1] or "noname"),
+ T = format("%s %s",what,arguments[1] or "noname"),
Operation = operation,
}
end
-function executers.startmovie (arguments) return movie_or_sound(pdf_start ,arguments) end
-function executers.stopmovie (arguments) return movie_or_sound(pdf_stop ,arguments) end
-function executers.resumemovie(arguments) return movie_or_sound(pdf_resume,arguments) end
-function executers.pausemovie (arguments) return movie_or_sound(pdf_pause ,arguments) end
+function executers.startmovie (arguments) return movie_or_sound(pdf_start ,"movie",arguments) end
+function executers.stopmovie (arguments) return movie_or_sound(pdf_stop ,"movie",arguments) end
+function executers.resumemovie(arguments) return movie_or_sound(pdf_resume,"movie",arguments) end
+function executers.pausemovie (arguments) return movie_or_sound(pdf_pause ,"movie",arguments) end
-function executers.startsound (arguments) return movie_or_sound(pdf_start ,arguments) end
-function executers.stopsound (arguments) return movie_or_sound(pdf_stop ,arguments) end
-function executers.resumesound(arguments) return movie_or_sound(pdf_resume,arguments) end
-function executers.pausesound (arguments) return movie_or_sound(pdf_pause ,arguments) end
+function executers.startsound (arguments) return movie_or_sound(pdf_start ,"sound",arguments) end
+function executers.stopsound (arguments) return movie_or_sound(pdf_stop ,"sound",arguments) end
+function executers.resumesound(arguments) return movie_or_sound(pdf_resume,"sound",arguments) end
+function executers.pausesound (arguments) return movie_or_sound(pdf_pause ,"sound",arguments) end
function specials.action(var)
local operation = var.operation
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-fld.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-fld.lua
index e14968eb8ad..50720c84ad2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-fld.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-fld.lua
@@ -97,7 +97,7 @@ local pdfcolor = lpdf.color
local pdfcolorvalues = lpdf.colorvalues
local pdflayerreference = lpdf.layerreference
-local hpack_node = node.hpack
+local hpack_node = nodes.hpack
local submitoutputformat = 0 -- 0=unknown 1=HTML 2=FDF 3=XML => not yet used, needs to be checked
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-ini.lua
index 1098ef8fa38..07e9c8df82b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-ini.lua
@@ -1410,7 +1410,8 @@ do
return timestamp
end
- lpdf.settime(tonumber(resolvers.variable("start_time")) or tonumber(resolvers.variable("SOURCE_DATE_EPOCH"))) -- bah
+ -- lpdf.settime(tonumber(resolvers.variable("starttime")) or tonumber(resolvers.variable("SOURCE_DATE_EPOCH"))) -- bah
+ lpdf.settime(tonumber(resolvers.variable("starttime")))
function lpdf.pdftimestamp(str)
local t = type(str)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-mov.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-mov.lua
index 42ba6fb008f..0f0eefd2f44 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-mov.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-mov.lua
@@ -16,7 +16,9 @@ local pdfconstant = lpdf.constant
local pdfdictionary = lpdf.dictionary
local pdfarray = lpdf.array
local pdfborder = lpdf.border
-local write_node = node.write
+
+-- We should actually make sure that inclusion only happens once. But this mechanism
+-- is dropped in pdf anyway so it will go away (read: mapped onto the newer mechanisms).
function nodeinjections.insertmovie(specification)
-- managed in figure inclusion: width, height, factor, repeat, controls, preview, label, foundname
@@ -24,7 +26,7 @@ function nodeinjections.insertmovie(specification)
local height = specification.height
local factor = specification.factor or number.dimenfactors.bp
local moviedict = pdfdictionary {
- F = specification.foundname,
+ F = specification.foundname or specification.file,
Aspect = pdfarray { factor * width, factor * height },
Poster = (specification.preview and true) or false,
}
@@ -37,32 +39,31 @@ function nodeinjections.insertmovie(specification)
Subtype = pdfconstant("Movie"),
Border = bs,
C = bc,
- T = format("movie %s",specification.label),
+ T = format("movie %s",specification.tag or specification.label),
Movie = moviedict,
A = controldict,
}
- write_node(nodeinjections.annotation(width,height,0,action())) -- test: context(...)
+ context(nodeinjections.annotation(width,height,0,action())) -- test: context(...)
end
function nodeinjections.insertsound(specification)
- -- managed in interaction: repeat, label, foundname
- local soundclip = interactions.soundclips.soundclip(specification.label)
- if soundclip then
- local controldict = pdfdictionary {
- Mode = (specification["repeat"] and pdfconstant("Repeat")) or nil
- }
- local sounddict = pdfdictionary {
- F = soundclip.filename
- }
- local bs, bc = pdfborder()
- local action = pdfdictionary {
- Subtype = pdfconstant("Movie"),
- Border = bs,
- C = bc,
- T = format("sound %s",specification.label),
- Movie = sounddict,
- A = controldict,
+ local controldict = nil
+ if specification["repeat"] then
+ controldict = pdfdictionary {
+ Mode = pdfconstant("Repeat")
}
- write_node(nodeinjections.annotation(0,0,0,action())) -- test: context(...)
end
+ local sounddict = pdfdictionary {
+ F = specification.foundname or specification.file
+ }
+ local bs, bc = pdfborder()
+ local action = pdfdictionary {
+ Subtype = pdfconstant("Movie"),
+ Border = bs,
+ C = bc,
+ T = format("sound %s",specification.tag or specification.label),
+ Movie = sounddict,
+ A = controldict,
+ }
+ context(nodeinjections.annotation(0,0,0,action())) -- test: context(...)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-nod.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-nod.lua
index fcb2d145732..6702ed506b9 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-nod.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-nod.lua
@@ -24,10 +24,11 @@ local register = nodepool.register
local whatsit_code = nodecodes.whatsit
-local savewhatsit_code = whatsitcodes.save
-local restorewhatsit_code = whatsitcodes.restore
-local setmatrixwhatsit_code = whatsitcodes.setmatrix
-local literalwhatsit_code = whatsitcodes.literal
+local savewhatsit_code = whatsitcodes.save
+local restorewhatsit_code = whatsitcodes.restore
+local setmatrixwhatsit_code = whatsitcodes.setmatrix
+local literalwhatsit_code = whatsitcodes.literal
+local lateliteralwhatsit_code = whatsitcodes.lateliteral
local literalvalues = nodes.literalvalues
local originliteral_code = literalvalues.origin
@@ -66,6 +67,22 @@ function nodepool.literal(mode,str)
end
end
+-- We only define this for testing as we don't need it:
+
+local lateliteralnode = register(new_node(whatsit_code, lateliteralwhatsit_code))
+
+function nodepool.lateliteral(mode,str)
+ local t = copy_node(lateliteralnode)
+ if str then
+ setfield(t,"mode",literals[mode] and mode or pageliteral_code)
+ setdata(t,str)
+ else
+ setfield(t,"mode",pageliteral_code)
+ setdata(t,mode)
+ end
+ return t
+end
+
local savenode = register(new_node(whatsit_code, savewhatsit_code))
local restorenode = register(new_node(whatsit_code, restorewhatsit_code))
local setmatrixnode = register(new_node(whatsit_code, setmatrixwhatsit_code))
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-pda.xml b/Master/texmf-dist/tex/context/base/mkiv/lpdf-pda.xml
index 2f07fed2def..0de54aa2aae 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-pda.xml
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-pda.xml
@@ -7,21 +7,9 @@
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:format>application/pdf</dc:format>
- <dc:creator>
- <rdf:Seq>
- <rdf:li xml:lang="x-default"/>
- </rdf:Seq>
- </dc:creator>
- <dc:description>
- <rdf:Alt>
- <rdf:li xml:lang="x-default"/>
- </rdf:Alt>
- </dc:description>
- <dc:title>
- <rdf:Alt>
- <rdf:li xml:lang="x-default"/>
- </rdf:Alt>
- </dc:title>
+ <dc:creator/>
+ <dc:description/>
+ <dc:title/>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
<pdfx:ID/>
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-pdx.xml b/Master/texmf-dist/tex/context/base/mkiv/lpdf-pdx.xml
index 35726a5c051..45349b4d8fc 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-pdx.xml
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-pdx.xml
@@ -2,26 +2,19 @@
<!-- lpdf-pdx.xml -->
+<!--
+ There was a bug in the iso standard so now we just flush them flat because for some
+ reason there is no upward compatibulity. It's a sort of useless mess anyway.
+-->
+
<x:xmpmeta xmlns:x="adobe:ns:meta/">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:format>application/pdf</dc:format>
- <dc:creator>
- <rdf:Seq>
- <rdf:li xml:lang="x-default"/>
- </rdf:Seq>
- </dc:creator>
- <dc:description>
- <rdf:Alt>
- <rdf:li xml:lang="x-default"/>
- </rdf:Alt>
- </dc:description>
- <dc:title>
- <rdf:Alt>
- <rdf:li xml:lang="x-default"/>
- </rdf:Alt>
- </dc:title>
- </rdf:Description>
+ <dc:creator/>
+ <dc:description/>
+ <dc:title/>
+ </rdf:Description>
<rdf:Description rdf:about="" xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
<pdfx:ID/>
<pdfx:ConTeXt.Jobname/>
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-pua.xml b/Master/texmf-dist/tex/context/base/mkiv/lpdf-pua.xml
index f717762b6e6..091a3d40092 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-pua.xml
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-pua.xml
@@ -2,25 +2,24 @@
<!-- lpdf-pua.xml -->
+<!--
+ There was a bug in the ISO standard so now we just flush them flat because for some
+ reason there is no upward compatibulity. It's a sort of useless mess anyway.
+-->
+
+<!--
+ <dc:creator> <rdf:Seq><rdf:li xml:lang="x-default"/></rdf:Seq></dc:creator>
+ <dc:description><rdf:Alt><rdf:li xml:lang="x-default"/></rdf:Alt></dc:description>
+ <dc:title> <rdf:Alt><rdf:li xml:lang="x-default"/></rdf:Alt></dc:title>
+-->
+
<x:xmpmeta xmlns:x="adobe:ns:meta/">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:format>application/pdf</dc:format>
- <dc:creator>
- <rdf:Seq>
- <rdf:li xml:lang="x-default"/>
- </rdf:Seq>
- </dc:creator>
- <dc:description>
- <rdf:Alt>
- <rdf:li xml:lang="x-default"/>
- </rdf:Alt>
- </dc:description>
- <dc:title>
- <rdf:Alt>
- <rdf:li xml:lang="x-default"/>
- </rdf:Alt>
- </dc:title>
+ <dc:creator/>
+ <dc:description/>
+ <dc:title/>
</rdf:Description>
<rdf:Description rdf:about="" xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/">
<pdfx:ID/>
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-wid.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-wid.lua
index 106eb98cca3..e856ddaf4f6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-wid.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-wid.lua
@@ -23,6 +23,9 @@ if not modules then modules = { } end modules ['lpdf-wid'] = {
-- the other fragile bit. And, now that adobe quits flash in 2020 we're without any
-- video anyway. Also, it won't play on all platforms and devices so let's wait for
-- html5 media in pdf then.
+--
+-- See mail by Michal Vlasák to the mailing list that discusses current support in
+-- viewers and also mentions (and submitted) a few fixes wrt embedding media.
local tonumber, next = tonumber, next
local gmatch, gsub, find, lower = string.gmatch, string.gsub, string.find, string.lower
@@ -43,6 +46,8 @@ local context = context
local texgetcount = tex.getcount
+local hpacknode = nodes.hpack
+
local nodeinjections = backends.pdf.nodeinjections
local codeinjections = backends.pdf.codeinjections
local registrations = backends.pdf.registrations
@@ -55,6 +60,7 @@ local v_auto = variables.auto
local v_embed = variables.embed
local v_max = variables.max
local v_yes = variables.yes
+local v_compress = variables.compress
local pdfconstant = lpdf.constant
local pdfnull = lpdf.null
@@ -64,20 +70,18 @@ local pdfreference = lpdf.reference
local pdfunicode = lpdf.unicode
local pdfstring = lpdf.string
local pdfboolean = lpdf.boolean
-local pdfflushobject = lpdf.flushobject
-local pdfflushstreamobject = lpdf.flushstreamobject
-local pdfflushstreamfileobject = lpdf.flushstreamfileobject
-local pdfreserveobject = lpdf.reserveobject
-local pdfpagereference = lpdf.pagereference
-local pdfshareobjectreference = lpdf.shareobjectreference
local pdfaction = lpdf.action
local pdfborder = lpdf.border
local pdftransparencyvalue = lpdf.transparencyvalue
local pdfcolorvalues = lpdf.colorvalues
-local hpack_node = node.hpack
-local write_node = node.write -- test context(...) instead
+local pdfflushobject = lpdf.flushobject
+local pdfflushstreamobject = lpdf.flushstreamobject
+local pdfflushstreamfileobject = lpdf.flushstreamfileobject
+local pdfreserveobject = lpdf.reserveobject
+local pdfpagereference = lpdf.pagereference
+local pdfshareobjectreference = lpdf.shareobjectreference
-- symbols
@@ -256,7 +260,7 @@ local function flushembeddedfiles()
for tag, reference in sortedhash(filestreams) do
if not reference then
report_attachment("unreferenced file, tag %a",tag)
- elseif referenced[tag] == "hidden" then
+ elseif referenced[tag] == "hidden" or referenced[tag] == "forced" then
e[#e+1] = pdfstring(tag)
e[#e+1] = reference -- already a reference
f[#f+1] = reference -- collect all file description references
@@ -366,6 +370,9 @@ function codeinjections.embedfile(specification)
}
local r = pdfreference(pdfflushobject(d))
filestreams[hash] = r
+ if specification.forcereference == true then
+ referenced[hash] = "forced"
+ end
return r
end
end
@@ -453,7 +460,7 @@ function nodeinjections.attachfile(specification)
local width = specification.width or 0
local height = specification.height or 0
local depth = specification.depth or 0
- local box = hpack_node(nodeinjections.annotation(width,height,depth,d()))
+ local box = hpacknode(nodeinjections.annotation(width,height,depth,d()))
box.width = width
box.height = height
box.depth = depth
@@ -554,12 +561,12 @@ function nodeinjections.comment(specification) -- brrr: seems to be done twice
Parent = pdfreference(nd),
}
d.Popup = pdfreference(nc)
- box = hpack_node(
+ box = hpacknode(
nodeinjections.annotation(0,0,0,d(),nd),
nodeinjections.annotation(width,height,depth,c(),nc)
)
else
- box = hpack_node(nodeinjections.annotation(width,height,depth,d()))
+ box = hpacknode(nodeinjections.annotation(width,height,depth,d()))
end
box.width = width -- redundant
box.height = height -- redundant
@@ -643,23 +650,21 @@ local function insertrenderingwindow(specification)
Subtype = pdfconstant("Screen"),
P = pdfreference(pdfpagereference(page)),
A = a, -- needed in order to make the annotation clickable (i.e. don't bark)
+ T = pdfunicode(label), -- for JS
Border = bs,
C = bc,
AA = actions,
}
local width = specification.width or 0
local height = specification.height or 0
- if height == 0 or width == 0 then
- -- todo: sound needs no window
- end
- write_node(nodeinjections.annotation(width,height,0,d(),r)) -- save ref
+ context(nodeinjections.annotation(width,height,0,d(),r)) -- save ref
return pdfreference(r)
end
-- some dictionaries can have a MH (must honor) or BE (best effort) capsule
local function insertrendering(specification)
- local label = specification.label
+ local label = specification.label
local option = settings_to_hash(specification.option)
if not mf[label] then
local filename = specification.filename
@@ -689,21 +694,23 @@ local function insertrendering(specification)
-- B = start,
-- }
-- }
- -- local parameters = pdfdictionary {
- -- Type = pdfconstant(MediaPermissions),
- -- TF = pdfstring("TEMPALWAYS") }, -- TEMPNEVER TEMPEXTRACT TEMPACCESS TEMPALWAYS
- -- }
+ local parameters = pdfdictionary {
+ Type = pdfconstant("MediaPermissions"),
+ TF = pdfstring("TEMPALWAYS"), -- TEMPNEVER TEMPEXTRACT TEMPACCESS TEMPALWAYS / needed for acrobat/wmp
+ }
local descriptor = pdfdictionary {
Type = pdfconstant("Filespec"),
F = filename,
}
if isurl then
descriptor.FS = pdfconstant("URL")
+ descriptor = pdfreference(pdfflushobject(descriptor))
elseif option[v_embed] then
- descriptor.EF = codeinjections.embedfile {
- file = filename,
- mimetype = mimetype, -- yes or no
- compress = false,
+ descriptor = codeinjections.embedfile {
+ file = filename,
+ mimetype = mimetype, -- yes or no
+ compress = option[v_compress] or false,
+ forcereference = true,
}
end
local clip = pdfdictionary {
@@ -712,13 +719,13 @@ local function insertrendering(specification)
N = label,
CT = mimetype,
Alt = pdfarray { "", "file not found" }, -- language id + message
- D = pdfreference(pdfflushobject(descriptor)),
- -- P = pdfreference(pdfflushobject(parameters)),
+ D = descriptor,
+ P = pdfreference(pdfflushobject(parameters)),
}
local rendition = pdfdictionary {
Type = pdfconstant("Rendition"),
S = pdfconstant("MR"),
- N = label,
+ N = pdfunicode(label),
C = pdfreference(pdfflushobject(clip)),
}
mf[label] = pdfreference(pdfflushobject(rendition))
@@ -756,6 +763,21 @@ function codeinjections.processrendering(label)
end
end
+-- needed mapping for access from JS
+
+local function flushrenderings()
+ if next(mf) then
+ local r = pdfarray()
+ for label, reference in sortedhash(mf) do
+ r[#r+1] = pdfunicode(label)
+ r[#r+1] = reference -- already a reference
+ end
+ lpdf.addtonames("Renditions",pdfreference(pdfflushobject(pdfdictionary{ Names = r })))
+ end
+end
+
+lpdf.registerdocumentfinalizer(flushrenderings,"renderings")
+
function codeinjections.insertrenderingwindow(specification)
local label = specification.label
codeinjections.processrendering(label)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lpdf-xmp.lua b/Master/texmf-dist/tex/context/base/mkiv/lpdf-xmp.lua
index 508bb19976d..2ca3ab3fea3 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lpdf-xmp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lpdf-xmp.lua
@@ -59,10 +59,11 @@ local mapping = {
["Producer"] = { "metadata","rdf:Description/pdf:Producer" },
-- ["Trapped"] = { "pdf", "rdf:Description/pdf:Trapped" }, -- '/False' in /Info, but 'False' in XMP
-- Dublin Core schema
- ["Author"] = { "metadata","rdf:Description/dc:creator/rdf:Seq/rdf:li" },
["Format"] = { "metadata","rdf:Description/dc:format" }, -- optional, but nice to have
- ["Subject"] = { "metadata","rdf:Description/dc:description/rdf:Alt/rdf:li" },
- ["Title"] = { "metadata","rdf:Description/dc:title/rdf:Alt/rdf:li" },
+ -- These were dc:.../rdf:Seq/rdf:li but there was a (invalidating) bug in the iso
+ ["Author"] = { "metadata","rdf:Description/dc:creator" },
+ ["Subject"] = { "metadata","rdf:Description/dc:description" },
+ ["Title"] = { "metadata","rdf:Description/dc:title" },
-- XMP Basic schema
["CreateDate"] = { "date", "rdf:Description/xmp:CreateDate" },
["CreationDate"] = { "date", "rdf:Description/xmp:CreationDate" }, -- dummy
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-cnf.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-cnf.lua
index f1690832125..a67167bb9ff 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-cnf.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-cnf.lua
@@ -24,26 +24,9 @@ texconfig.expand_depth = 10000
texconfig.half_error_line = 125
texconfig.max_print_line = 100000
texconfig.max_strings = 500000
-texconfig.hash_extra = 200000
+texconfig.hash_extra = 250000
texconfig.function_size = 32768
texconfig.properties_size = 10000
-texconfig.level_max = 500
-texconfig.level_chr = 46 -- period
-
-if CONTEXTLMTXMODE > 0 then
-
-texconfig.max_in_open = 2000
-texconfig.nest_size = 10000
-texconfig.param_size = 100000
-texconfig.save_size = 500000
-texconfig.stack_size = 100000
-texconfig.buffer_size = 10000000
-texconfig.token_size = 10000000
-texconfig.node_size = 50000000
-texconfig.max_pool = 10000000
-
-else
-
texconfig.max_in_open = 1000
texconfig.nest_size = 1000
texconfig.param_size = 25000
@@ -52,29 +35,7 @@ texconfig.stack_size = 10000
texconfig.buf_size = 10000000
texconfig.fix_mem_init = 1000000
-end
-
-local variablenames = CONTEXTLMTXMODE > 0 and {
- error_line = false,
- half_error_line = false,
- max_print_line = false,
- max_in_open = false,
- expand_depth = true,
- hash_extra = true,
- nest_size = true,
- max_strings = true,
- max_pool = true,
- param_size = true,
- save_size = true,
- stack_size = true,
- function_size = true,
- properties_size = true,
- token_size = true,
- node_size = true,
- buffer_size = true,
- level_max = true,
- level_chr = true,
-} or {
+local variablenames = {
error_line = false,
half_error_line = false,
max_print_line = false,
@@ -89,8 +50,6 @@ local variablenames = CONTEXTLMTXMODE > 0 and {
function_size = true,
properties_size = true,
fix_mem_init = true,
- level_max = true,
- level_chr = true,
}
local stub = [[
@@ -221,7 +180,7 @@ function texconfig.init()
-- local b = callbytecode(i)
local e, b = pcall(callbytecode,i)
if not e then
- print(string.format("\nfatal error : unable to load bytecode register %%i, maybe wipe the cache first\n",i))
+ print(string.format("fatal error : unable to load bytecode register %%i, maybe wipe the cache first\n",i))
os.exit()
end
if b then
@@ -250,7 +209,7 @@ function texconfig.init()
end
-CONTEXTLMTXMODE = %s
+CONTEXTLMTXMODE = 0
-- we provide a qualified path
@@ -297,9 +256,9 @@ local function makestub()
end
end
t[#t+1] = ""
- t[#t+1] = format(stub,firsttable,tostring(CONTEXTLMTXMODE or 0))
+ t[#t+1] = format(stub,firsttable)
io.savedata(name,concat(t,"\n"))
logs.newline()
end
-lua.registerfinalizer(makestub,"create stub file")
+lua.registerinitexfinalizer(makestub,"create stub file")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-cod.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-cod.lua
index b3abecbbab4..6175302a3de 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-cod.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-cod.lua
@@ -33,8 +33,6 @@ texconfig.stack_size = 10000
texconfig.function_size = 32768
texconfig.properties_size = 10000
texconfig.fix_mem_init = 1000000
-texconfig.level_max = 500
-texconfig.level_chr = 46 -- period
-- registering bytecode chunks
@@ -92,28 +90,6 @@ function lua.registercode(filename,options)
end
end
-local finalizers = { }
-
-function lua.registerfinalizer(f,comment)
- comment = comment or "unknown"
- if type(f) == "function" then
- finalizers[#finalizers+1] = { action = f, comment = comment }
- else
- print(format("\nfatal error: invalid finalizer, action: %s\n",comment))
- os.exit()
- end
-end
-
-function lua.finalize(logger)
- for i=1,#finalizers do
- local finalizer = finalizers[i]
- finalizer.action()
- if logger then
- logger("finalize action: %s",finalizer.comment)
- end
- end
-end
-
-- A first start with environments. This will be overloaded later.
environment = environment or { }
@@ -170,6 +146,38 @@ environment.jitsupported = JITSUPPORTED
environment.initex = INITEXMODE
environment.initexmode = INITEXMODE
+if INITEXMODE then
+
+ local finalizers = { }
+
+ function lua.registerinitexfinalizer(f,comment)
+ comment = comment or "unknown"
+ if type(f) == "function" then
+ finalizers[#finalizers+1] = { action = f, comment = comment }
+ else
+ print(format("\nfatal error: invalid finalizer, action: %s\n",comment))
+ os.exit()
+ end
+ end
+
+ function lua.finalizeinitex(logger)
+ for i=1,#finalizers do
+ local finalizer = finalizers[i]
+ finalizer.action()
+ if logger then
+ logger("finalize action: %s",finalizer.comment)
+ end
+ end
+ end
+
+else
+
+ function lua.registerinitexfinalizer() end
+ function lua.finalizeinitex () end
+
+end
+
+
if not environment.luafilechunk then
function environment.luafilechunk(filename)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-lib.mkiv b/Master/texmf-dist/tex/context/base/mkiv/luat-lib.mkiv
index 6dbcdaf54a3..3df374de9ad 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-lib.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-lib.mkiv
@@ -45,6 +45,8 @@
\registerctxluafile{util-soc-imp-http} {}
\registerctxluafile{util-soc-imp-tp} {}
+\registerctxluafile{util-zip}{}
+
\registerctxluafile{data-ini}{}
\registerctxluafile{data-exp}{}
\registerctxluafile{data-env}{}
@@ -53,13 +55,14 @@
\registerctxluafile{data-res}{}
\registerctxluafile{data-inp}{}
\registerctxluafile{data-out}{}
-\registerctxluafile{data-fil}{} % opener gets overloaded in data-tex
+\registerctxluafile{data-fil}{autosuffix} % opener gets overloaded in data-tex
\registerctxluafile{data-pre}{} % after data-res
\registerctxluafile{data-bin}{} % before data-tex
\registerctxluafile{data-tex}{} % after data-pre
\registerctxluafile{data-vir}{}
\registerctxluafile{data-zip}{}
+%registerctxluafile{data-tar}{}
%registerctxluafile{data-crl}{}
\registerctxluafile{data-sch}{}
\registerctxluafile{data-tre}{}
@@ -85,6 +88,8 @@
\registerctxluafile{luat-mac}{}
%registerctxluafile{luat-prp}{} % for the moment of not much use
+\registerctxluafile{util-lib}{}
+
\registerctxluafile{lxml-tab}{}
\registerctxluafile{lxml-lpt}{}
\registerctxluafile{lxml-xml}{}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-mac.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-mac.lua
index 3c50a41f89c..fca59c993ba 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-mac.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-mac.lua
@@ -85,6 +85,8 @@ local set = CONTEXTLMTXMODE > 0 and
return h .. "-"
elseif s == "spacer" then
return h .. "*"
+ elseif s == "keepspacer" then
+ return h .. ","
elseif s == "pickup" then
return h .. ":"
else
@@ -185,16 +187,20 @@ local name = (R("AZ","az") + utf8character)^1
local csname = (R("AZ","az") + S("@?!_:-*") + utf8character)^1
local longname = (longleft/"") * (nolong^1) * (longright/"")
local variable = P("#") * Cs(name + longname)
+local bcsname = P("csname")
+local ecsname = escape * P("endcsname")
local escapedname = escape * csname
-local definer = escape * (P("def") + S("egx") * P("def")) -- tex
+local definer = escape * (P("u")^-1 * S("egx")^-1 * P("def")) -- tex
local setter = escape * P("set") * (P("u")^-1 * S("egx")^-1) * P("value") -- context specific
--- + escape * P("install") * (1-P("handler"))^1 * P("handler") -- context specific
+local defcsname = escape * S("egx")^-1 * P("defcsname")
+ * (1 - ecsname)^1
+ * ecsname
local startcode = P("\\starttexdefinition") -- context specific
local stopcode = P("\\stoptexdefinition") -- context specific
local anything = patterns.anything
local always = patterns.alwaysmatched
-local definer = escape * (P("u")^-1 * S("egx")^-1 * P("def")) -- tex
-- The comment nilling can become an option but it nicely compensates the Lua
-- parsing here with less parsing at the TeX end. We keep lines so the errors
@@ -206,7 +212,6 @@ local definer = escape * (P("u")^-1 * S("egx")^-1 * P("def"))
local commenttoken = P("%")
local crorlf = S("\n\r")
------ commentline = commenttoken * ((Carg(1) * C((1-crorlf)^0))/function(strip,s) return strip and "" or s end)
local commentline = commenttoken * ((1-crorlf)^0)
local leadingcomment = (commentline * crorlf^1)^1
local furthercomment = (crorlf^1 * commentline)^1
@@ -229,7 +234,6 @@ local grammar = { "converter",
* startcode
* spaces
* (csname * spaces)^1 -- new: multiple, new:csname instead of name
- -- * (declaration + furthercomment + (1 - newline - space))^0
* ((declaration * (space^0/""))^1 + furthercomment + (1 - newline - space))^0 -- accepts #a #b #c
* V("texbody")
* stopcode
@@ -242,10 +246,12 @@ local grammar = { "converter",
+ (1 - stopcode)
)^0,
definition = pushlocal
- * definer
- * spaces^0
- * escapedname
--- * (declaration + furthercomment + commentline + (1-leftbrace))^0
+ * (definer * spaces^0 * escapedname)
+ * (declaration + furthercomment + commentline + csname_endcsname + (1-leftbrace))^0
+ * V("braced")
+ * poplocal,
+ csnamedef = pushlocal
+ * defcsname
* (declaration + furthercomment + commentline + csname_endcsname + (1-leftbrace))^0
* V("braced")
* poplocal,
@@ -265,11 +271,11 @@ local grammar = { "converter",
+ leadingcomment -- new per 2012-05-15 (message on mailing list)
+ nobrace
)^0
- -- * rightbrace^-1, -- the -1 catches errors
* (rightbrace + Cmt(always,matcherror)),
pattern = leadingcomment
+ V("definition")
+ + V("csnamedef")
+ V("setcode")
+ V("texcode")
+ furthercomment
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-run.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-run.lua
index 874287ee1a0..c778ad09457 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-run.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-run.lua
@@ -106,7 +106,7 @@ local function pre_dump_actions()
for i=1,#dumpactions do
dumpactions[i]()
end
- lua.finalize(trace_lua_dump and report_lua or nil)
+ lua.finalizeinitex(trace_lua_dump and report_lua or nil)
end
local function wrapup_synctex()
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-sto.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-sto.lua
index feb5464009b..be5134b84b1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-sto.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-sto.lua
@@ -90,7 +90,7 @@ if environment.initex then
storage.max = max
end
- lua.registerfinalizer(dump,"dump storage")
+ lua.registerinitexfinalizer(dump,"dump storage")
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lxml-aux.lua b/Master/texmf-dist/tex/context/base/mkiv/lxml-aux.lua
index 126df4d82de..fc17371e58f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lxml-aux.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lxml-aux.lua
@@ -316,6 +316,37 @@ function xml.replace(root,pattern,whatever)
end
end
+function xml.expand(root,pattern,whatever)
+ local collected = root and xmlapplylpath(root,pattern)
+ if collected then
+ for c=1,#collected do
+ local e = collected[c]
+ local p = e.__p__
+ if p then
+ if trace_manipulations then
+ report('expanding',pattern,c,e)
+ end
+ local d = p.dt
+ local n = e.ni
+ local t = whatever(e,p)
+ if t then
+ if type(t) == "table" then
+ t = xmlcopy(t)
+ d[n] = t[1]
+ for i=2,#t do
+ n = n + 1
+ insert(d,n,t[i])
+ end
+ else
+ d[n] = t
+ end
+ redo_ni(d) -- probably not needed
+ end
+ end
+ end
+ end
+end
+
local function wrap(e,wrapper)
local t = {
rn = e.rn,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lxml-css.lua b/Master/texmf-dist/tex/context/base/mkiv/lxml-css.lua
index 76cc4891e1d..48177c47cb2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lxml-css.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lxml-css.lua
@@ -233,7 +233,7 @@ do
end
end
- function css.size(str,factors)
+ function css.size(str,factors, pct)
local size, unit
if type(str) == "table" then
size, unit = str[1], str[2]
@@ -241,7 +241,9 @@ do
size, unit = lpegmatch(p_size,lower(str))
end
if size and unit then
- if factors then
+ if unit == "%" and pct then
+ return size * pct
+ elseif factors then
return (factors[unit] or 1) * size
else
return size, unit
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lxml-ctx.mkiv b/Master/texmf-dist/tex/context/base/mkiv/lxml-ctx.mkiv
index 7d44d61bea1..ec782c39591 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lxml-ctx.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/lxml-ctx.mkiv
@@ -20,9 +20,9 @@
\unprotect
-\settrue \xmllshowbuffer
-\setfalse\xmllshowtitle
-\settrue \xmllshowwarning
+\settrue \xmllshowbuffertoo
+\setfalse\xmllshowtitletoo
+\settrue \xmllshowwarningtoo
\definehead
[lshowtitle]
@@ -35,10 +35,10 @@
\unexpanded\def\xmllshow#1%
{\ctxlua{xml.ctx.tshow {
pattern = \!!bs\detokenize{#1}\!!es,
- \ifconditional\xmllshowtitle
+ \ifconditional\xmllshowtitletoo
title = "lshowtitle",
\fi
- \ifconditional\xmllshowwarning
+ \ifconditional\xmllshowwarningtoo
warning = true,
\fi
} }}
@@ -46,11 +46,11 @@
\unexpanded\def\xmllshowbuffer#1#2#3%
{\ctxlua{xml.ctx.tshow {
pattern = \!!bs\detokenize{#2}\!!es,
- \ifconditional\xmllshowbuffer
+ \ifconditional\xmllshowbuffertoo
xmlroot = "#1",
attribute = "#3",
\fi
- \ifconditional\xmllshowwarning
+ \ifconditional\xmllshowwarningtoo
warning = true,
\fi
} }}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lxml-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/lxml-ini.lua
index 43643f71a18..980a83f1a2b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lxml-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lxml-ini.lua
@@ -154,6 +154,79 @@ implement { name = "xmlstoptiming", actions = function() statistics.stopt
implement { name = "xmlloadentities", actions = characters.registerentities, onceonly = true }
+if CONTEXTLMTXMODE > 0 then
+
+ local boolean_code = tokens.values.boolean
+
+ local getid = lxml.getid
+ local found = xml.found
+ local empty = xml.empty
+ local checkedempty = xml.checkedempty
+ local ifatt = lxml.ifatt
+ local ifattempty = lxml.ifattempty
+
+ implement {
+ name = "ifxml",
+ public = true,
+ usage = "condition",
+ arguments = "2 arguments",
+ actions = function(id,pattern)
+ return boolean_code, found(getid(id),pattern) and true
+ end
+ }
+
+ implement {
+ name = "ifxmltext",
+ public = true,
+ usage = "condition",
+ arguments = "2 arguments",
+ actions = function(id,pattern)
+ return boolean_code, not empty(getid(id),pattern) and true
+ end
+ }
+
+ implement {
+ name = "ifxmlatt",
+ public = true,
+ usage = "condition",
+ arguments = "3 arguments",
+ actions = function(id,name,value)
+ return boolean_code, ifatt(getid(id),name,value)
+ end
+ }
+
+ implement {
+ name = "ifxmlattempty",
+ public = true,
+ usage = "condition",
+ arguments = "2 arguments",
+ actions = function(id,name)
+ return boolean_code, ifattempty(getid(id),name)
+ end
+ }
+
+ implement {
+ name = "ifxmlempty",
+ public = true,
+ usage = "condition",
+ arguments = "2 arguments",
+ actions = function(id,pattern)
+ return boolean_code, not checkedempty(getid(id),pattern) and true
+ end
+ }
+
+ implement {
+ name = "ifxmlselfempty",
+ public = true,
+ usage = "condition",
+ arguments = "argument",
+ actions = function(id)
+ return boolean_code, not checkedempty(getid(id)) and true
+ end
+ }
+
+end
+
-- kind of special (3rd argument is a function)
commands.xmlsetfunction = lxml.setaction
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lxml-lpt.lua b/Master/texmf-dist/tex/context/base/mkiv/lxml-lpt.lua
index 9e4b475fb09..78a9fca2e0a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lxml-lpt.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lxml-lpt.lua
@@ -635,7 +635,9 @@ local builtin = {
match = "(ll.mi or 1)",
namespace = "ll.ns",
ns = "ll.ns",
-
+ -- new
+ -- attribute = "ll.at",
+ -- at = "ll.at",
}
local lp_builtin = lpeg.utfchartabletopattern(builtin)/builtin * ((spaces * P("(") * spaces * P(")"))/"")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lxml-tab.lua b/Master/texmf-dist/tex/context/base/mkiv/lxml-tab.lua
index 3af4974d300..e18362bd8cd 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lxml-tab.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lxml-tab.lua
@@ -369,8 +369,7 @@ end
local function add_text(text)
if text == "" then
return
- end
- if cleanup then
+ elseif cleanup then
if nt > 0 then
local s = dt[nt]
if type(s) == "string" then
@@ -1022,6 +1021,7 @@ local function install(spacenewline,spacing,anything)
local text_unparsed = Cs((anything-open)^1)
local text_parsed = (Cs((anything-open-ampersand)^1)/add_text + Cs(entity_text)/add_text)^1
+-- local text_parsed = ((Cs(((anything-open-ampersand)^1) + entity_text))/add_text)^1
local somespace = (spacenewline)^1
local optionalspace = (spacenewline)^0
@@ -1043,10 +1043,16 @@ local function install(spacenewline,spacing,anything)
local unparsedtext = text_unparsed / add_text
local balanced = P { "[" * ((anything - S"[]") + V(1))^0 * "]" } -- taken from lpeg manual, () example
+ -- todo: combine empty and begin so that we scan attributes only once .. maybe also go for match time captures
+
local emptyelement = (spacing * open * name * attributes * optionalspace * slash * close) / add_empty
local beginelement = (spacing * open * name * attributes * optionalspace * close) / add_begin
local endelement = (spacing * open * slash * name * optionalspace * close) / add_end
+-- local commonelement = spacing * open * name * attributes * optionalspace *
+-- local cemptyelement = (slash * close) / add_empty
+-- local cbeginelement = ( * close) / add_begin
+
-- todo: combine the opens in:
local begincomment = open * P("!--")
@@ -1103,11 +1109,7 @@ local function install(spacenewline,spacing,anything)
local publicdoctype = doctypename * somespace * P("PUBLIC") * somespace * value * somespace * value * somespace * doctypeset
local systemdoctype = doctypename * somespace * P("SYSTEM") * somespace * value * somespace * doctypeset
local simpledoctype = (anything-close)^1 -- * balanced^0
- local somedoctype = C((somespace * (
-
-publicentityfile +
-
- publicdoctype + systemdoctype + definitiondoctype + simpledoctype) * optionalspace)^0)
+ local somedoctype = C((somespace * (publicentityfile + publicdoctype + systemdoctype + definitiondoctype + simpledoctype) * optionalspace)^0)
local instruction = (spacing * begininstruction * someinstruction * endinstruction) / function(...) add_special("@pi@",...) end
local comment = (spacing * begincomment * somecomment * endcomment ) / function(...) add_special("@cm@",...) end
@@ -1150,6 +1152,16 @@ publicentityfile +
children = parsedtext + V("parent") + emptyelement + comment + cdata + instruction + parsedcrap,
}
+-- local grammar_parsed_text_two = P { "followup",
+-- followup = beginelement * V("children")^0 * endelement * trailer,
+-- children = parsedtext + beginelement * V("children")^0 * endelement + emptyelement + comment + cdata + instruction + parsedcrap,
+-- }
+
+-- local grammar_parsed_text_two = P { "followup",
+-- followup = commonelement * cbeginelement * V("children")^0 * endelement * trailer,
+-- children = parsedtext + commonelement * (cbeginelement * V("children")^0 * endelement + cemptyelement) + comment + cdata + instruction + parsedcrap,
+-- }
+
local grammar_unparsed_text = P { "preamble",
preamble = utfbom^0 * instruction^0 * (doctype + comment + instruction)^0 * V("parent") * trailer,
parent = beginelement * V("children")^0 * endelement,
@@ -1412,7 +1424,7 @@ can speed up things a bit. The second argument is not to be used!</p>
-- end
-- end
--
--- We need to prevent __p__ recursio, so:
+-- We need to prevent __p__ recursion, so:
local function copy(old,p)
if old then
@@ -1967,7 +1979,7 @@ function xml.kind(e)
local tg = d.tg
if tg == "@cd@" then
return "cdata"
- elseif tg == "@cm" then
+ elseif tg == "@cm@" then
return "comment"
elseif tg == "@pi@" then
return "instruction"
diff --git a/Master/texmf-dist/tex/context/base/mkiv/lxml-tex.lua b/Master/texmf-dist/tex/context/base/mkiv/lxml-tex.lua
index 7a79ee15f4d..520797883cd 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/lxml-tex.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/lxml-tex.lua
@@ -772,6 +772,8 @@ local tex_element
if tokenizedxmlw then
+-- local expandmacro = token.expandmacro
+
tex_element = function(e,handlers)
if setfilename then
syncfilename(e,"element")
@@ -793,6 +795,10 @@ if tokenizedxmlw then
addindex(rootname,false,true)
ix = e.ix
end
+-- lmtx only, same performance, a bit more immediate:
+--
+-- expandmacro(tokenizedxmlw,ctxcatcodes,true,command,true,rootname.."::"..ix)
+--
contextsprint(ctxcatcodes,tokenizedxmlw,"{",command,"}{",rootname,"::",ix,"}")
else
report_lxml("fatal error: no index for %a",command)
@@ -2064,6 +2070,28 @@ do
end
end
+ function lxml.ifatt(id,a,value)
+ local e = getid(id)
+ if e then
+ local at = e.at
+ att = at and at[a] or ""
+ else
+ att = ""
+ end
+ return att == value
+ end
+
+ function lxml.ifattempty(id,a)
+ local e = getid(id)
+ if e then
+ local at = e.at
+ att = at and at[a] or ""
+ else
+ att = ""
+ end
+ return att == ""
+ end
+
function lxml.refatt(id,a)
local e = getid(id)
if e then
@@ -2223,7 +2251,7 @@ function lxml.snippet(id,i)
if e then
local dt = e.dt
if dt then
- local dti = dt[i]
+ local dti = dt[tonumber(i)] -- string in lxml
if dti then
xmlsprint(dti,e)
end
@@ -2322,6 +2350,8 @@ do
end
end
+ xml.checkedempty = checkedempty
+
function lxml.doifempty (id,pattern) doif (checkedempty(id,pattern)) end
function lxml.doifnotempty (id,pattern) doifnot (checkedempty(id,pattern)) end
function lxml.doifelseempty(id,pattern) doifelse(checkedempty(id,pattern)) end
@@ -2727,6 +2757,8 @@ do
end
+-- hm, maybe to ini to, these implements
+
implement {
name = "xmlsetinjectors",
actions = xml.setinjectors,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/m-fonts-plugins.mkiv b/Master/texmf-dist/tex/context/base/mkiv/m-fonts-plugins.mkiv
index ec1c05e7af8..00174d13e8f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/m-fonts-plugins.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/m-fonts-plugins.mkiv
@@ -15,15 +15,72 @@
%D Eigner at an NTG meeting, then left it for a while, and sort of finalized it the
%D last quarter of 2016. As I don't use this module, apart from maybe testing
%D something, it is not guaranteed to work (but fixing should be a no real problem
-%D as I expect apis to be stable). Plugins liek this can interfere with other
+%D as I expect apis to be stable). Plugins like this can interfere with other
%D functionality in \CONTEXT\ so don't expect too much support. The two modules
%D mentioned below should work in the generic loader too. It's anyhow an
%D illustration of how \type {ffi} be used in a practical application.
-
-% \enabletrackers[resolvers.ffilib]
-
-\registerctxluafile{font-txt}{} % generic text handler
-\registerctxluafile{font-phb}{} % harfbuzz plugin: binary or library (ffi/optional)
+%D
+%D I'm not sure if Idris will ever need this but the code has been used for some
+%D articles so that's why it's eventually shipped.
+%D
+%D The library is supposed to be present in
+%D
+%D \starttyping
+%D .../tex/texmf-win64/bin/lib/luatatex/harfbuzz/libharfbuzz-0.dll
+%D .../tex/texmf-win64/bin/lib/luametatex/harfbuzz/libharfbuzz-0.dll
+%D
+%D .../tex/texmf-*/bin/lib/luatatex/harfbuzz/libharfbuzz.so
+%D .../tex/texmf-*/bin/lib/luametatex/harfbuzz/libharfbuzz.so
+%D \stoptyping
+%D
+%D It might be found on the system if paths are set but with libraries that render
+%D (font) stuff it's best to rely on what you explictly installed. When you install
+%D files there make sure to run \type {mtxrun --generate}. Keep in mind that we don't
+%D officially support such dependencies (bug-wise).
+%D
+%D In mkiv we support binary and library, and in lmtx binary and internal where we
+%D default to library or internal as binary is not that fast (more meant as a
+%D playground I guess). You can track loading with:
+%D
+%D \starttyping
+%D \enabletrackers[resolvers.ffilib]
+%D \stoptyping
+%D
+%D This file has always been in the distribution but per end april 2021 the font-txt,
+%D font-phb and font-phb-imp-* files are in the distrinbution too. It's a side effect
+%D of some cleanup of the (luametatex) source tree (where the optional module was not
+%D yet in sync with the other optional ones). This module is mostly for myself and
+%D Idris if only because it is not tested for interferences with all kind of other
+%D font code (and it's unlikely to happen), so don't depend on this!
+
+% \starttext
+%
+% \definefontfeature [native] [default]
+% [mode=plug,
+% features=harfbuzz,
+% shaper=native]
+%
+% \definefontfeature [uniscribe] [default]
+% [mode=plug,
+% features=harfbuzz,
+% shaper=uniscribe]
+%
+% \definefontfeature [binary] [default]
+% [mode=plug,
+% method=binary,
+% features=harfbuzz,
+% shaper=uniscribe]
+%
+% % \nohyphens
+% \definedfont[Serif*default] fiets \par % \input tufte \par
+% \definedfont[Serif*native] fiets \par % \input tufte \par
+% \definedfont[Serif*uniscribe] fiets \par % \input tufte \par
+% \definedfont[Serif*binary] fiets \par % \input tufte \par
+%
+% \stoptext
+
+
+\registerctxluafile{font-phb}{autosuffix}
\startluacode
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-act.lua b/Master/texmf-dist/tex/context/base/mkiv/math-act.lua
index e1ef751d7ed..d56efbbfd44 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-act.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-act.lua
@@ -6,10 +6,13 @@ if not modules then modules = { } end modules ['math-act'] = {
license = "see context related readme files"
}
--- Here we tweak some font properties (if needed).
+-- Here we tweak some font properties (if needed). Per mid octover 2022 we also provide
+-- an lmtx emulation mode which means that we removed some other code. Some of that was
+-- experimental, some transitional, some is now obsolete). Using emulation mode also
+-- means that we are unlikely to test some aspects of the math engines extensively.
local type, next = type, next
-local fastcopy, insert, remove = table.fastcopy, table.insert, table.remove
+local fastcopy, insert, remove, copytable = table.fastcopy, table.insert, table.remove, table.copy
local formatters = string.formatters
local trace_defining = false trackers.register("math.defining", function(v) trace_defining = v end)
@@ -59,6 +62,9 @@ function mathematics.initializeparameters(target,original)
if not mathparameters.SpaceBeforeScript then
mathparameters.SpaceBeforeScript = mathparameters.SpaceAfterScript
end
+ if not mathparameters.SubscriptShiftDownWithSuperscript then
+ mathparameters.SubscriptShiftDownWithSuperscript = mathparameters.SubscriptShiftDown * 1.5
+ end
target.mathparameters = mathparameters
end
end
@@ -75,41 +81,43 @@ local how = {
NoLimitSubFactor = "unscaled",
}
-function mathematics.scaleparameters(target,original)
- if not target.properties.math_is_scaled then
- local mathparameters = target.mathparameters
- if mathparameters and next(mathparameters) then
- local parameters = target.parameters
- local factor = parameters.factor
- local hfactor = parameters.hfactor
- local vfactor = parameters.vfactor
- for name, value in next, mathparameters do
- local h = how[name]
- if h == "unscaled" then
- -- kept
- elseif h == "horizontal" then
- value = value * hfactor
- elseif h == "vertical"then
- value = value * vfactor
- else
- value = value * factor
- end
- mathparameters[name] = value
+local function scaleparameters(mathparameters,parameters)
+ if mathparameters and next(mathparameters) and parameters then
+ local factor = parameters.factor
+ local hfactor = parameters.hfactor
+ local vfactor = parameters.vfactor
+ for name, value in next, mathparameters do
+ local h = how[name]
+ if h == "unscaled" then
+ -- kept
+ elseif h == "horizontal" then
+ value = value * hfactor
+ elseif h == "vertical"then
+ value = value * vfactor
+ else
+ value = value * factor
end
+ mathparameters[name] = value
end
- target.properties.math_is_scaled = true
end
end
--- AccentBaseHeight vs FlattenedAccentBaseHeight
-
-function mathematics.checkaccentbaseheight(target,original)
- local mathparameters = target.mathparameters
- if mathparameters and mathparameters.AccentBaseHeight == 0 then
- mathparameters.AccentBaseHeight = target.parameters.x_height -- needs checking
+function mathematics.scaleparameters(target,original)
+ if not target.properties.math_is_scaled then
+ scaleparameters(target.mathparameters,target.parameters)
+ target.properties.math_is_scaled = true
end
end
+-- -- AccentBaseHeight vs FlattenedAccentBaseHeight
+--
+-- function mathematics.checkaccentbaseheight(target,original)
+-- local mathparameters = target.mathparameters
+-- if mathparameters and mathparameters.AccentBaseHeight == 0 then
+-- mathparameters.AccentBaseHeight = target.parameters.x_height -- needs checking
+-- end
+-- end
+
function mathematics.checkprivateparameters(target,original)
local mathparameters = target.mathparameters
if mathparameters then
@@ -150,28 +158,67 @@ function mathematics.overloadparameters(target,original)
if trace_defining then
report_math("overloading math parameters in %a @ %p",target.properties.fullname,target.parameters.size)
end
+ -- for name, value in next, parameters do
+ -- local tvalue = type(value)
+ -- if tvalue == "string" then
+ -- report_math("comment for math parameter %a: %s",name,value)
+ -- else
+ -- local oldvalue = mathparameters[name]
+ -- local newvalue = oldvalue
+ -- if oldvalue then
+ -- if tvalue == "number" then
+ -- newvalue = value
+ -- elseif tvalue == "function" then
+ -- newvalue = value(oldvalue,target,original)
+ -- elseif not tvalue then
+ -- newvalue = nil
+ -- end
+ -- if trace_defining and oldvalue ~= newvalue then
+ -- report_math("overloading math parameter %a: %S => %S",name,oldvalue,newvalue)
+ -- end
+ -- else
+ -- -- report_math("invalid math parameter %a",name)
+ -- end
+ -- mathparameters[name] = newvalue
+ -- end
+ -- end
+ for name, value in next, parameters do
+ local tvalue = type(value)
+ local oldvalue = mathparameters[name]
+ local newvalue = oldvalue
+ if tvalue == "number" then
+ newvalue = value
+ elseif tvalue == "string" then
+ -- delay till all set
+ elseif tvalue == "function" then
+ newvalue = value(oldvalue,target,original)
+ elseif not tvalue then
+ newvalue = nil
+ end
+ if trace_defining and oldvalue ~= newvalue then
+ report_math("overloading math parameter %a: %S => %S",name,oldvalue or 0,newvalue)
+ end
+ mathparameters[name] = newvalue
+ end
for name, value in next, parameters do
local tvalue = type(value)
if tvalue == "string" then
- report_math("comment for math parameter %a: %s",name,value)
- else
- local oldvalue = mathparameters[name]
- local newvalue = oldvalue
- if oldvalue then
- if tvalue == "number" then
- newvalue = value
- elseif tvalue == "function" then
- newvalue = value(oldvalue,target,original)
- elseif not tvalue then
- newvalue = nil
+ local newvalue = mathparameters[value]
+ if not newvalue then
+ local code = loadstring("return " .. value,"","t",mathparameters)
+ if type(code) == "function" then
+ local okay, v = pcall(code)
+ if okay then
+ newvalue = v
+ end
end
- if trace_defining and oldvalue ~= newvalue then
- report_math("overloading math parameter %a: %S => %S",name,oldvalue,newvalue)
- end
- else
- report_math("invalid math parameter %a",name)
end
- mathparameters[name] = newvalue
+ if newvalue then
+ -- split in number and string
+ mathparameters[name] = newvalue
+ elseif trace_defining then
+ report_math("ignoring math parameter %a: %S",name,value)
+ end
end
end
end
@@ -180,29 +227,65 @@ function mathematics.overloadparameters(target,original)
end
end
+local mathtweaks = { subsets = table.setmetatableindex("table") }
+mathematics.tweaks = mathtweaks
+
+local apply_tweaks = true
+
+directives.register("math.applytweaks", function(v)
+ apply_tweaks = v;
+end)
+
local function applytweaks(when,target,original)
- local goodies = original.goodies
- if goodies then
- for i=1,#goodies do
- local goodie = goodies[i]
- local mathematics = goodie.mathematics
- local tweaks = mathematics and mathematics.tweaks
- if type(tweaks) == "table" then
- tweaks = tweaks[when]
- if type(tweaks) == "table" then
- if trace_defining then
- report_math("tweaking math of %a @ %p (%s)",target.properties.fullname,target.parameters.size,when)
- end
- for i=1,#tweaks do
- local tweak= tweaks[i]
- local tvalue = type(tweak)
- if tvalue == "function" then
- tweak(target,original)
+ if apply_tweaks then
+ local goodies = original.goodies
+ if goodies then
+ local tweaked = target.tweaked or { }
+ if tweaked[when] then
+ if trace_defining then
+ report_math("tweaking math of %a @ %p (%s: %s)",target.properties.fullname,target.parameters.size,when,"done")
+ end
+ else
+ for i=1,#goodies do
+ local goodie = goodies[i]
+ local mathematics = goodie.mathematics
+ local tweaks = mathematics and mathematics.tweaks
+ if type(tweaks) == "table" then
+ tweaks = tweaks[when]
+ if type(tweaks) == "table" then
+ if trace_defining then
+ report_math("tweaking math of %a @ %p (%s: %s)",target.properties.fullname,target.parameters.size,when,"okay")
+ end
+ for i=1,#tweaks do
+ local tweak = tweaks[i]
+ local tvalue = type(tweak)
+ if type(tweak) == "table" then
+ local action = mathtweaks[tweak.tweak or ""]
+ if action then
+ local feature = tweak.feature
+ local features = target.specification.features.normal
+ if not feature or features[feature] == true then
+ local version = tweak.version
+ if version and version ~= target.tweakversion then
+ report_math("skipping tweak %a version %a",tweak.tweak,version)
+ elseif original then
+ action(target,original,tweak)
+ else
+ action(target,tweak)
+ end
+ end
+ end
+ end
+ end
end
end
end
+ tweaked[when] = true
+ target.tweaked = tweaked
end
end
+ else
+ report_math("not tweaking math of %a @ %p (%s)",target.properties.fullname,target.parameters.size,when)
end
end
@@ -220,120 +303,132 @@ function mathematics.tweakaftercopyingfont(target,original)
end
end
+sequencers.appendaction("mathparameters","system","mathematics.overloadparameters")
sequencers.appendaction("mathparameters","system","mathematics.scaleparameters")
-sequencers.appendaction("mathparameters","system","mathematics.checkaccentbaseheight") -- should go in lfg instead
+----------.appendaction("mathparameters","system","mathematics.checkaccentbaseheight") -- should go in lfg instead
sequencers.appendaction("mathparameters","system","mathematics.checkprivateparameters") -- after scaling !
-sequencers.appendaction("mathparameters","system","mathematics.overloadparameters")
sequencers.appendaction("beforecopyingcharacters","system","mathematics.tweakbeforecopyingfont")
sequencers.appendaction("aftercopyingcharacters", "system","mathematics.tweakaftercopyingfont")
--- no, it's a feature now (see good-mth):
---
--- sequencers.appendaction("aftercopyingcharacters", "system","mathematics.overloaddimensions")
-
--- a couple of predefined tweaks:
-
-local tweaks = { }
-mathematics.tweaks = tweaks
-
--- function tweaks.fixbadprime(target,original)
--- target.characters[0xFE325] = target.characters[0x2032]
--- end
-
--- these could go to math-fbk
-
--- local virtualized = mathematics.virtualized
---
--- local function accent_to_extensible(target,newchr,original,oldchr,height,depth,swap)
--- local characters = target.characters
--- -- if not characters[newchr] then -- xits needs an enforce
--- local addprivate = fonts.helpers.addprivate
--- local olddata = characters[oldchr]
--- if olddata then
--- if swap then
--- swap = characters[swap]
--- height = swap.depth
--- depth = 0
--- else
--- height = height or 0
--- depth = depth or 0
--- end
--- local correction = swap and { "down", (olddata.height or 0) - height } or { "down", olddata.height }
--- local newdata = {
--- commands = { correction, { "slot", 1, oldchr } },
--- width = olddata.width,
--- height = height,
--- depth = depth,
--- }
--- characters[newchr] = newdata
--- local nextglyph = olddata.next
--- while nextglyph do
--- local oldnextdata = characters[nextglyph]
--- local newnextdata = {
--- commands = { correction, { "slot", 1, nextglyph } },
--- width = oldnextdata.width,
--- height = height,
--- depth = depth,
--- }
--- local newnextglyph = addprivate(target,formatters["original-%H"](nextglyph),newnextdata)
--- newdata.next = newnextglyph
--- local nextnextglyph = oldnextdata.next
--- if nextnextglyph == nextglyph then
--- break
--- else
--- olddata = oldnextdata
--- newdata = newnextdata
--- nextglyph = nextnextglyph
--- end
--- end
--- local hv = olddata.horiz_variants
--- if hv then
--- hv = fastcopy(hv)
--- newdata.horiz_variants = hv
--- for i=1,#hv do
--- local hvi = hv[i]
--- local oldglyph = hvi.glyph
--- local olddata = characters[oldglyph]
--- local newdata = {
--- commands = { correction, { "slot", 1, oldglyph } },
--- width = olddata.width,
--- height = height,
--- depth = depth,
--- }
--- hvi.glyph = addprivate(target,formatters["original-%H"](oldglyph),newdata)
--- end
--- end
--- end
--- -- end
--- end
-
--- function tweaks.fixoverline(target,original)
--- local height, depth = 0, 0
--- local mathparameters = target.mathparameters
--- if mathparameters then
--- height = mathparameters.OverbarVerticalGap
--- depth = mathparameters.UnderbarVerticalGap
--- else
--- height = target.parameters.xheight/4
--- depth = height
--- end
--- accent_to_extensible(target,0x203E,original,0x0305,height,depth)
--- -- also crappy spacing for our purpose: push to top of baseline
--- accent_to_extensible(target,0xFE3DE,original,0x23DE,height,depth,0x23DF)
--- accent_to_extensible(target,0xFE3DC,original,0x23DC,height,depth,0x23DD)
--- accent_to_extensible(target,0xFE3B4,original,0x23B4,height,depth,0x23B5)
--- -- for symmetry
--- target.characters[0xFE3DF] = original.characters[0x23DF]
--- target.characters[0xFE3DD] = original.characters[0x23DD]
--- target.characters[0xFE3B5] = original.characters[0x23B5]
--- -- inspect(fonts.helpers.expandglyph(target.characters,0x203E))
--- -- inspect(fonts.helpers.expandglyph(target.characters,0x23DE))
--- end
+do
+
+ -- More than a year of testing, development, tweaking (and improving) fonts has resulted
+ -- in a math engine in \LUAMETATEX\ that is quite flexible. Basically we can drop italic
+ -- correction there. In \MKIV\ we can emulate this to some extend but we still need a bit
+ -- of mix because \LUAMETATEX\ lacks some features. A variant of the tweak below is now
+ -- also used in the plain code we ship. In \MKIV\ we dropped a few features that were a
+ -- prelude to this and, because most users switched to \LMTX, it is unlikely that other
+ -- tweaks wil be backported. There is also no need to adapt \LUATEX\ and eventually all
+ -- italic code might be removed from \LUAMETATEX\ (unless we want to be able to test the
+ -- alternative; I can live with a little ballast, especially because it took time to load
+ -- it).
+
+ local italics = nil
+ local integrals = table.tohash {
+ 0x0222B, 0x0222C, 0x0222D, 0x0222E, 0x0222F, 0x02230, 0x02231, 0x02232, 0x02233,
+ 0x02A0B, 0x02A0C, 0x02A0D, 0x02A0E, 0x02A0F, 0x02A10, 0x02A11, 0x02A12, 0x02A13,
+ 0x02A14, 0x02A15, 0x02A16, 0x02A17, 0x02A18, 0x02A19, 0x02A1A, 0x02A1B, 0x02A1C,
+ 0x02320, 0x02321
+ }
+
+ function mathtweaks.emulatelmtx(target,original,parameters)
+ -- gaps are not known yet
+ if not italic then
+ italics = { }
+ local gaps = mathematics.gaps
+ for name, data in next, characters.blocks do
+ if data.math and data.italic then
+ for i=data.first,data.last do
+ italics[i] = true
+ local g = gaps[i]
+ if g then
+ italics[g] = true
+ end
+ end
+ end
+ end
+-- table.save("temp.log", table.sortedkeys(italics))
+ end
+ --
+ local targetcharacters = target.characters
+ local targetdescriptions = target.descriptions
+ local factor = target.parameters.factor
+ local function getllx(u)
+ local d = targetdescriptions[u]
+ if d then
+ local b = d.boundingbox
+ if b then
+ local llx = b[1]
+ if llx < 0 then
+ return - llx
+ end
+ end
+ end
+ return false
+ end
+ -- beware: here we also do the weird ones
+ for u, c in next, targetcharacters do
+ local uc = c.unicode or u
+ if integrals[uc] then
+ -- skip this one
+ else
+ local accent = c.top_accent
+ local italic = c.italic
+ local width = c.width or 0
+ local llx = getllx(u)
+ local bl, br, tl, tr
+ if llx then
+ llx = llx * factor
+ width = width + llx
+ bl = - llx
+ tl = bl
+ c.commands = { rightcommand[llx], charcommand[u] }
+ if accent then
+ accent = accent + llx
+ end
+ end
+ if accent then
+ if italics[uc] then
+ c.top_accent = accent
+ else
+ c.top_accent = nil
+ end
+ end
+ if italic and italic ~= 0 then
+ width = width + italic
+ br = - italic
+ end
+ c.width = width
+ if italic then
+ c.italic = nil
+ end
+ if bl or br or tl or tr then
+ -- watch out: singular and _ because we are post copying / scaling
+ c.mathkern = {
+ bottom_left = bl and { { height = 0, kern = bl } } or nil,
+ bottom_right = br and { { height = 0, kern = br } } or nil,
+ top_left = tl and { { height = c.height or 0, kern = tl } } or nil,
+ top_right = tr and { { height = c.height or 0, kern = tr } } or nil,
+ }
+ end
+ end
+ end
+ end
--- sequencers.appendaction("aftercopyingcharacters", "system","mathematics.tweaks.fixoverline") -- for the moment always
+ function mathtweaks.parameters(target,original,parameters)
+ local newparameters = parameters.list
+ local oldparameters = target.mathparameters
+ if newparameters and oldparameters then
+ newparameters = copytable(newparameters)
+ scaleparameters(newparameters,target.parameters)
+ for name, newvalue in next, newparameters do
+ oldparameters[name] = newvalue
+ end
+ end
+ end
--- helpers
+end
local setmetatableindex = table.setmetatableindex
@@ -467,87 +562,6 @@ interfaces.implement {
end
}
--- experiment
-
--- check: when true, only set when present in font
--- force: when false, then not set when already set
-
--- todo: tounicode
-
--- function mathematics.injectfallbacks(target,original)
--- local properties = original.properties
--- if properties and properties.hasmath then
--- local specification = target.specification
--- if specification then
--- local fallbacks = specification.fallbacks
--- if fallbacks then
--- local definitions = fonts.collections.definitions[fallbacks]
--- if definitions then
--- if trace_collecting then
--- report_math("adding fallback characters to font %a",specification.hash)
--- end
--- local definedfont = fonts.definers.internal
--- local copiedglyph = fonts.handlers.vf.math.copy_glyph
--- local fonts = target.fonts
--- local size = specification.size -- target.size
--- local characters = target.characters
--- if not fonts then
--- fonts = { }
--- target.fonts = fonts
--- if not CONTEXTLMTXMODE or CONTEXTLMTXMODE == 0 then
--- target.type = "virtual"
--- target.properties.virtualized = true
--- end
--- end
--- if #fonts == 0 then
--- fonts[1] = { id = 0, size = size } -- sel, will be resolved later
--- end
--- local done = { }
--- for i=1,#definitions do
--- local definition = definitions[i]
--- local name = definition.font
--- local start = definition.start
--- local stop = definition.stop
--- local gaps = definition.gaps
--- local check = definition.check
--- local force = definition.force
--- local rscale = definition.rscale or 1
--- local offset = definition.offset or start
--- local id = definedfont { name = name, size = size * rscale }
--- local index = #fonts + 1
--- fonts[index] = { id = id, size = size }
--- local chars = fontchars[id]
--- local function remap(unic,unicode,gap)
--- -- local unic = unicode + offset - start
--- if check and not chars[unicode] then
--- -- not in font
--- elseif force or (not done[unic] and not characters[unic]) then
--- if trace_collecting then
--- report_math("remapping math character, vector %a, font %a, character %C%s%s",
--- fallbacks,name,unic,check and ", checked",gap and ", gap plugged")
--- end
--- characters[unic] = copiedglyph(target,characters,chars,unicode,index)
--- done[unic] = true
--- end
--- end
--- for unicode = start, stop do
--- local unic = unicode + offset - start
--- remap(unic,unicode,false)
--- end
--- if gaps then
--- for unic, unicode in next, gaps do
--- remap(unic,unicode,true)
--- end
--- end
--- end
--- end
--- end
--- end
--- end
--- end
---
--- sequencers.appendaction("aftercopyingcharacters", "system","mathematics.finishfallbacks")
-
local stack = { }
function mathematics.registerfallbackid(n,id,name)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-dim.lua b/Master/texmf-dist/tex/context/base/mkiv/math-dim.lua
index 06b4bbd97fd..c46e16faf6e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-dim.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-dim.lua
@@ -132,7 +132,6 @@ end
function mathematics.dimensions(dimens) -- beware, dimens get spoiled
if dimens.SpaceAfterScript then
- dimens.SubscriptShiftDownWithSuperscript = dimens.SubscriptShiftDown * 1.5 -- move this one
return table.fastcopy(dimens), { }
elseif dimens.AxisHeight or dimens.axis_height then
local t = { }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-dir.lua b/Master/texmf-dist/tex/context/base/mkiv/math-dir.lua
index 38aa44358e2..f0298d2434c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-dir.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-dir.lua
@@ -36,8 +36,8 @@ local getattr = nuts.getattr
local setchar = nuts.setchar
local setlist = nuts.setlist
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local nodecodes = nodes.nodecodes
local enableaction = nodes.tasks.enableaction
@@ -65,8 +65,8 @@ local function processmath(head)
local start = nil
local stop = nil
local function capsulate()
- head = insert_node_before(head,start,new_direction(lefttoright_code))
- insert_node_after(head,stop,new_direction(lefttoright_code,true))
+ head = insertnodebefore(head,start,new_direction(lefttoright_code))
+ insertnodeafter(head,stop,new_direction(lefttoright_code,true))
if trace_directions then
report_directions("reversed: %s",nodes.listtoutf(start,false,false,stop))
end
@@ -142,6 +142,7 @@ function directions.processmath(head) -- style, penalties
return processmath(head)
end
end
+ return head
end
function directions.setmath(n)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-ext.lua b/Master/texmf-dist/tex/context/base/mkiv/math-ext.lua
index 762f1f904ed..1f78d6ad449 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-ext.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-ext.lua
@@ -27,7 +27,7 @@ local mathplus = { }
-- todo: store them and skip storage if already stored
-- todo: make a char-ctx.lua (or is this already side effect of save in format)
-local function addextra(unicode)
+function extras.add(unicode)
local min = mathematics.extrabase
local max = min + 0xFFF
if unicode >= min and unicode <= max then
@@ -41,8 +41,6 @@ local function addextra(unicode)
end
end
-extras.add = addextra
-
function extras.copy(target,original)
local characters = target.characters
local properties = target.properties
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-fbk.lua b/Master/texmf-dist/tex/context/base/mkiv/math-fbk.lua
index 6b43a901bdd..b4270462969 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-fbk.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-fbk.lua
@@ -7,6 +7,7 @@ if not modules then modules = { } end modules ['math-fbk'] = {
}
local next, type = next, type
+local floor = math.floor
local trace_fallbacks = false trackers.register("math.fallbacks", function(v) trace_fallbacks = v end)
@@ -32,6 +33,7 @@ local popcommand = helpers.commands.pop
local pushcommand = helpers.commands.push
local virtualcharacters = { }
+local virtualforced = { }
local hashes = fonts.hashes
local identifiers = hashes.identifiers
@@ -136,7 +138,7 @@ function fallbacks.apply(target,original)
local fullname = trace_fallbacks and target.properties.fullname
--
for k, v in sortedhash(virtualcharacters) do
- if not characters[k] then
+ if not characters[k] or virtualforced[k] then
local tv = type(v)
local cd = nil
if tv == "table" then
@@ -601,9 +603,11 @@ local function actuarian(data)
return {
-- todo: add alttext
-- compromise: lm has large hooks e.g. \actuarial{a}
- width = basewidth + 4 * linewidth,
- unicode = 0x20E7,
- commands = {
+ width = basewidth + 4 * linewidth,
+ height = basechar.height,
+ depth = basechar.depth,
+ unicode = 0x20E7,
+ commands = {
rightcommand[2 * linewidth],
downcommand[- baseheight - 3 * linewidth],
{ "rule", linewidth, basewidth + 4 * linewidth },
@@ -623,13 +627,15 @@ local function equals(data,unicode,snippet,advance,n) -- mathpair needs them
local basechar = characters[snippet]
local advance = advance * parameters.quad
return {
- unicode = unicode,
- width = n*basechar.width + (n-1)*advance,
- commands = {
+ unicode = unicode,
+ width = n*basechar.width - (n-1)*advance,
+ height = basechar.height,
+ depth = basechar.depth,
+ commands = {
charcommand[snippet],
- rightcommand[advance],
+ leftcommand[advance],
charcommand[snippet],
- n > 2 and rightcommand[advance] or nil,
+ n > 2 and leftcommand[advance] or nil,
n > 2 and charcommand[snippet] or nil,
},
}
@@ -694,3 +700,30 @@ virtualcharacters[0x305] = function(data)
}
end
+local function threedots(data,shift)
+ local characters = data.target.characters
+ local parameters = data.target.parameters
+ local periodchar = characters[0x002E]
+ local pluschar = characters[0x002B]
+ local period = charcommand[0x002E]
+ local periodwd = periodchar.width or 0
+ local periodht = periodchar.height or 0
+ local perioddp = periodchar.depth or 0
+ local offset = 0
+ if shift then
+ local plusht = pluschar.height or 0
+ local plusdp = pluschar.depth or 0
+ local axis = floor((plusdp + plusht)/2) - plusdp
+ offset = axis - floor(periodht/2)
+ periodht = axis + floor(periodht/2)
+ end
+ return {
+ width = 3*periodwd,
+ height = periodht,
+ depth = 0,
+ commands = { upcommand[offset], period, period, period }
+ }
+end
+
+virtualcharacters[0x2026] = function(data) return threedots(data,false) end virtualforced[0x2026] = true
+virtualcharacters[0x22EF] = function(data) return threedots(data, true) end virtualforced[0x22EF] = true
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-frc.lua b/Master/texmf-dist/tex/context/base/mkiv/math-frc.lua
index fa3ac515fe1..4a04c920316 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-frc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-frc.lua
@@ -57,41 +57,3 @@ interfaces.implement {
actions = mathfraction,
arguments = { "string", "number", "number", "dimen" }
}
-
--- experimental code in lmtx
-
-if CONTEXTLMTXMODE > 0 then
-
- local ctx_Uatop = context.Uatop
- local ctx_Uover = context.Uover
-
- local function umathfraction(how,left,right,width)
- if how == v_no then
- if left == 0x002E and right == 0x002E then
- ctx_Uatop()
- else
- context("\\Uatopwithdelims%s%s",resolved[left],resolved[right])
- end
- elseif how == v_yes or how == v_hidden then
- local norule = how == v_hidden and " norule " or ""
- if left == 0x002E and right == 0x002E then
- context("\\Uabove%s%ssp",norule,width)
- else
- context("\\Uabovewithdelims%s%s%s%ssp",norule,resolved[left],resolved[right],width)
- end
- else -- v_auto
- if left == 0x002E and right == 0x002E then
- ctx_Uover()
- else
- context("\\Uoverwithdelims%s%s",resolved[left],resolved[right])
- end
- end
- end
-
- interfaces.implement {
- name = "umathfraction",
- actions = umathfraction,
- arguments = { "string", "number", "number", "dimen" }
- }
-
-end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/math-ini.lua
index 19bf868020a..688f682c8ac 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-ini.lua
@@ -31,6 +31,8 @@ local ctx_doifelsesomething = commands.doifelsesomething
local trace_defining = false trackers.register("math.defining", function(v) trace_defining = v end)
+-- trace_defining = true
+
local report_math = logs.reporter("mathematics","initializing")
mathematics = mathematics or { }
@@ -55,78 +57,96 @@ local families = allocate {
--- to be checked .. afew defaults in char-def that should be alpha
local classes = allocate {
- ord = 0, -- mathordcomm mathord
- op = 1, -- mathopcomm mathop
- bin = 2, -- mathbincomm mathbin
- rel = 3, -- mathrelcomm mathrel
- open = 4, -- mathopencomm mathopen
- middle = 4,
- close = 5, -- mathclosecomm mathclose
- punct = 6, -- mathpunctcomm mathpunct
- alpha = 7, -- mathalphacomm firstofoneargument
- accent = 8, -- class 0
- radical = 9,
- xaccent = 10, -- class 3
- topaccent = 11, -- class 0
- botaccent = 12, -- class 0
- under = 13,
- over = 14,
- delimiter = 15,
- inner = 0, -- mathinnercomm mathinner
- nothing = 0, -- mathnothingcomm firstofoneargument
- choice = 0, -- mathchoicecomm @@mathchoicecomm
- box = 0, -- mathboxcomm @@mathboxcomm
- limop = 1, -- mathlimopcomm @@mathlimopcomm
- nolop = 1, -- mathnolopcomm @@mathnolopcomm
+ ord = 0, -- mathordcomm mathord
+ op = 1, -- mathopcomm mathop
+ bin = 2, -- mathbincomm mathbin
+ rel = 3, -- mathrelcomm mathrel
+ open = 4, -- mathopencomm mathopen
+ middle = 4,
+ close = 5, -- mathclosecomm mathclose
+ punct = 6, -- mathpunctcomm mathpunct
+ alpha = 7, -- mathalphacomm firstofoneargument
+ accent = 8, -- class 0
+ radical = 9,
+ xaccent = 10, -- class 3
+ topaccent = 11, -- class 0
+ botaccent = 12, -- class 0
+ under = 13,
+ over = 14,
+ delimiter = 15,
+ division = 15,
+ inner = 0, -- mathinnercomm mathinner
+ choice = 0, -- mathchoicecomm @@mathchoicecomm
+ prime = 0,
+ differential = 0,
+ exponential = 0,
+ limop = 1, -- mathlimopcomm @@mathlimopcomm
+ nolop = 1, -- mathnolopcomm @@mathnolopcomm
--
- ordinary = 0, -- ord
- alphabetic = 7, -- alpha
- unknown = 0, -- nothing
- default = 0, -- nothing
- punctuation = 6, -- punct
- normal = 0, -- nothing
- opening = 4, -- open
- closing = 5, -- close
- binary = 2, -- bin
- relation = 3, -- rel
- fence = 0, -- unknown
- diacritic = 8, -- accent
- large = 1, -- op
- variable = 7, -- alphabetic
- number = 7, -- alphabetic
- root = 16, -- a private one
+ ordinary = 0, -- ord
+ alphabetic = 7, -- alpha
+ punctuation = 6, -- punct
+ opening = 4, -- open
+ closing = 5, -- close
+ binary = 2, -- bin
+ relation = 3, -- rel
+ diacritic = 8, -- accent
+ large = 1, -- op
+ variable = 7, -- alphabetic
+ number = 7, -- alphabetic
+ root = 16, -- a private one
}
-local open_class = 4
-local middle_class = 4
-local close_class = 5
-local accent_class = 8
-local radical_class = 9
-local topaccent_class = 11
-local botaccent_class = 12
-local under_class = 13
-local over_class = 14
-local delimiter_class = 15
-local root_class = 16
+local engineclasses = table.setmetatableindex(function(t,k)
+ if k then
+ local c = tonumber(k) or classes[k] or 0
+ local v = c < 8 and c or 0
+ t[k] = v
+ return v
+ else
+ return 0
+ end
+end)
+
+local ordinary_class = classes.ordinary
+local open_class = classes.open
+local middle_class = classes.middle
+local close_class = classes.close
+local accent_class = classes.accent
+local radical_class = classes.radical
+local topaccent_class = classes.topaccent
+local botaccent_class = classes.botaccent
+local under_class = classes.under
+local over_class = classes.over
+local delimiter_class = classes.delimiter
+local division_class = classes.division
+local root_class = classes.root
local accents = allocate {
accent = true, -- some can be both
- topaccent = true, [11] = true,
- botaccent = true, [12] = true,
- under = true, [13] = true,
- over = true, [14] = true,
+ topaccent = true, [topaccent_class] = true,
+ botaccent = true, [botaccent_class] = true,
+ under = true, [under_class] = true,
+ over = true, [over_class] = true,
unknown = false,
}
+-- engine subtypes get from elsewhere
+
local codes = allocate {
- ordinary = 0, [0] = "ordinary",
- largeoperator = 1, [1] = "largeoperator",
- binaryoperator = 2, [2] = "binaryoperator",
- relation = 3, [3] = "relation",
- openingsymbol = 4, [4] = "openingsymbol",
- closingsymbol = 5, [5] = "closingsymbol",
- punctuation = 6, [6] = "punctuation",
- variable = 7, [7] = "variable",
+ ordinary = 0, [ 0] = "ordinary",
+ largeoperator = 1, [ 1] = "largeoperator",
+ binaryoperator = 2, [ 2] = "binaryoperator",
+ relation = 3, [ 3] = "relation",
+ openingsymbol = 4, [ 4] = "openingsymbol",
+ closingsymbol = 5, [ 5] = "closingsymbol",
+ punctuation = 6, [ 6] = "punctuation",
+ -- inner = 7, [ 7] = "inner",
+ -- undersymbol = 8, [ 8] = "undersymbol",
+ -- oversymbol = 9, [ 9] = "oversymbol",
+ -- fractionsymbol = 10, [10] = "fractionsymbol",
+ -- radicalsymbol = 11, [11] = "radicalsymbol",
+ middlesymbol = 12, [12] = "middlesymbol",
}
local extensibles = allocate {
@@ -176,257 +196,206 @@ mathematics.codes = codes
mathematics.families = families
mathematics.virtualized = virtualized
--- there will be proper functions soon (and we will move this code in-line)
--- no need for " in class and family (saves space)
-
--- local function mathchar(class,family,slot)
--- return formatters['\\Umathchar "%X "%X "%X '](class,family,slot)
--- end
---
--- local function mathaccent(class,family,slot)
--- return formatters['\\Umathaccent "%X "%X "%X '](0,family,slot) -- no class
--- end
---
--- local function delimiter(class,family,slot)
--- return formatters['\\Udelimiter "%X "%X "%X '](class,family,slot)
--- end
---
--- local function radical(family,slot)
--- return formatters['\\Uradical "%X "%X '](family,slot)
--- end
---
--- local function root(family,slot)
--- return formatters['\\Uroot "%X "%X '](family,slot)
--- end
---
--- local function mathchardef(name,class,family,slot)
--- return formatters['\\Umathchardef\\%s "%X "%X "%X '](name,class,family,slot)
--- end
---
--- local function mathcode(target,class,family,slot)
--- return formatters['\\Umathcode%s="%X "%X "%X '](target,class,family,slot)
--- end
---
--- local function mathtopaccent(class,family,slot)
--- return formatters['\\Umathaccent "%X "%X "%X '](0,family,slot) -- no class
--- end
---
--- local function mathbotaccent(class,family,slot)
--- return formatters['\\Umathaccent bottom "%X "%X "%X '](0,family,slot) -- no class
--- end
---
--- local function mathtopdelimiter(class,family,slot)
--- return formatters['\\Udelimiterover "%X "%X '](family,slot) -- no class
--- end
---
--- local function mathbotdelimiter(class,family,slot)
--- return formatters['\\Udelimiterunder "%X "%X '](family,slot) -- no class
--- end
-
local escapes = characters.filters.utf.private.escapes
--- not that many so no need to reuse tables
+do
-local setmathcharacter = function(class,family,slot,unicode,mset,dset)
- if mset and codes[class] then -- regular codes < 7
- setmathcode("global",slot,class,family,unicode)
- mset = false
- end
- if dset and class == open_class or class == close_class or class == middle_class then
- setdelcode("global",slot,family,unicode,0,0)
- dset = false
+ local setmathcharacter = function(class,family,slot,unicode,mset,dset)
+ if mset and codes[class] then -- regular codes < 7
+ setmathcode("global",slot,class,family,unicode)
+ mset = false
+ end
+ if dset and (class == open_class or class == close_class or class == middle_class or class == division_class) then
+ setdelcode("global",slot,family,unicode,0,0)
+ dset = false
+ end
+ return mset, dset
end
- return mset, dset
-end
-
--- todo: make nice setters for this in lua
-
-local f_accent = formatters[ [[\defUmathtopaccent \%s{%X}{%X}{%X}]] ]
-local f_topaccent = formatters[ [[\defUmathtopaccent \%s{%X}{%X}{%X}]] ]
-local f_botaccent = formatters[ [[\defUmathbotaccent \%s{%X}{%X}{%X}]] ]
-local f_over = formatters[ [[\defUdelimiterover \%s{%X}{%X}{%X}]] ]
-local f_under = formatters[ [[\defUdelimiterunder\%s{%X}{%X}{%X}]] ]
-local f_fence = formatters[ [[\defUdelimiter \%s{%X}{%X}{%X}]] ]
-local f_delimiter = formatters[ [[\defUdelimiter \%s{%X}{%X}{%X}]] ]
-local f_radical = formatters[ [[\defUradical \%s{%X}{%X}]] ]
-local f_root = formatters[ [[\defUroot \%s{%X}{%X}]] ]
-local f_char = formatters[ [[\defUmathchar \%s{%X}{%X}{%X}]] ]
-
-local texmathchardef = tex.mathchardef
-
--- local setmathsymbol = function(name,class,family,slot) -- hex is nicer for tracing
--- if class == classes.accent then
--- ctx_sprint(f_topaccent(name,0,family,slot))
--- elseif class == classes.topaccent then
--- ctx_sprint(f_topaccent(name,0,family,slot))
--- elseif class == classes.botaccent then
--- ctx_sprint(f_botaccent(name,0,family,slot))
--- elseif class == classes.over then
--- ctx_sprint(f_over(name,0,family,slot))
--- elseif class == classes.under then
--- ctx_sprint(f_under(name,0,family,slot))
--- elseif class == open_class or class == close_class or class == middle_class then
--- setdelcode("global",slot,{family,slot,0,0})
--- ctx_sprint(f_fence(name,class,family,slot))
--- elseif class == classes.delimiter then
--- setdelcode("global",slot,{family,slot,0,0})
--- ctx_sprint(f_delimiter(name,0,family,slot))
--- elseif class == classes.radical then
--- ctx_sprint(f_radical(name,family,slot))
--- elseif class == classes.root then
--- ctx_sprint(f_root(name,family,slot))
--- elseif texmathchardef then
--- texmathchardef(name,class,family,slot,"permanent")
--- else
--- -- beware, open/close and other specials should not end up here
--- ctx_sprint(f_char(name,class,family,slot))
--- end
--- end
-local setmathsymbol = function(name,class,family,slot) -- hex is nicer for tracing
- if class == accent_class then
- ctx_sprint(f_topaccent(name,0,family,slot))
- elseif class == topaccent_class then
- ctx_sprint(f_topaccent(name,0,family,slot))
- elseif class == botaccent_class then
- ctx_sprint(f_botaccent(name,0,family,slot))
- elseif class == over_class then
- ctx_sprint(f_over(name,0,family,slot))
- elseif class == under_class then
- ctx_sprint(f_under(name,0,family,slot))
- elseif class == open_class or class == close_class or class == middle_class then
- setdelcode("global",slot,{family,slot,0,0})
- ctx_sprint(f_fence(name,class,family,slot))
- elseif class == delimiter_class then
- setdelcode("global",slot,{family,slot,0,0})
- ctx_sprint(f_delimiter(name,0,family,slot))
- elseif class == radical_class then
- ctx_sprint(f_radical(name,family,slot))
- elseif class == root_class then
- ctx_sprint(f_root(name,family,slot))
- elseif texmathchardef then
- texmathchardef(name,class,family,slot,"permanent")
- else
- -- beware, open/close and other specials should not end up here
- ctx_sprint(f_char(name,class,family,slot))
+ local function report(class,engine,family,unicode,name)
+ local nametype = type(name)
+ if nametype == "string" then
+ report_math("class %a, engine %a, family %a, char %C, name %a",class,engine,family,unicode,name)
+ elseif nametype == "number" then
+ report_math("class %a, engine %a, family %a, char %C, number %U",class,engine,family,unicode,name)
+ else
+ report_math("class %a, engine %a, family %a, char %C",class,engine,family,unicode)
+ end
end
-end
-local function report(class,family,unicode,name)
- local nametype = type(name)
- if nametype == "string" then
- report_math("class name %a, class %a, family %a, char %C, name %a",classname,class,family,unicode,name)
- elseif nametype == "number" then
- report_math("class name %a, class %a, family %a, char %C, number %U",classname,class,family,unicode,name)
- else
- report_math("class name %a, class %a, family %a, char %C", classname,class,family,unicode)
+ local f_accent = formatters[ [[\defUmathtopaccent \%s{%X}{%X}{%X}]] ]
+ local f_topaccent = formatters[ [[\defUmathtopaccent \%s{%X}{%X}{%X}]] ]
+ local f_botaccent = formatters[ [[\defUmathbotaccent \%s{%X}{%X}{%X}]] ]
+ local f_over = formatters[ [[\defUdelimiterover \%s{%X}{%X}{%X}]] ]
+ local f_under = formatters[ [[\defUdelimiterunder\%s{%X}{%X}{%X}]] ]
+ local f_fence = formatters[ [[\defUdelimiter \%s{%X}{%X}{%X}]] ]
+ local f_delimiter = formatters[ [[\defUdelimiter \%s{%X}{%X}{%X}]] ]
+ local f_radical = formatters[ [[\defUradical \%s{%X}{%X}]] ]
+ local f_root = formatters[ [[\defUroot \%s{%X}{%X}]] ]
+ local f_char = formatters[ [[\defUmathchar \%s{%X}{%X}{%X}]] ]
+
+ local texmathchardef = tex.mathchardef
+
+ local setmathsymbol = function(name,class,engine,family,slot) -- hex is nicer for tracing
+ if class == accent_class then
+ ctx_sprint(f_topaccent(name,0,family,slot))
+ elseif class == topaccent_class then
+ ctx_sprint(f_topaccent(name,0,family,slot))
+ elseif class == botaccent_class then
+ ctx_sprint(f_botaccent(name,0,family,slot))
+ elseif class == over_class then
+ ctx_sprint(f_over(name,0,family,slot))
+ elseif class == under_class then
+ ctx_sprint(f_under(name,0,family,slot))
+ elseif class == open_class or class == close_class or class == middle_class then
+ setdelcode("global",slot,{family,slot,0,0})
+ ctx_sprint(f_fence(name,engine,family,slot))
+ elseif class == delimiter_class then
+ setdelcode("global",slot,{family,slot,0,0})
+ ctx_sprint(f_delimiter(name,0,family,slot))
+ elseif class == radical_class then
+ ctx_sprint(f_radical(name,family,slot))
+ elseif class == root_class then
+ ctx_sprint(f_root(name,family,slot))
+ elseif texmathchardef then
+ texmathchardef(name,engine,family,slot,"permanent")
+ else
+ -- beware, open/close and other specials should not end up here
+ ctx_sprint(f_char(name,engine,family,slot))
+ end
end
-end
--- there will be a combined \(math)chardef (tracker)
-
-function mathematics.define(family)
- family = family or 0
- family = families[family] or family
- local data = characters.data
- for unicode, character in sortedhash(data) do
- local symbol = character.mathsymbol
- local mset = true
- local dset = true
- if symbol then
- local other = data[symbol]
- local class = other.mathclass
- if class then
- class = classes[class] or class -- no real checks needed
- if trace_defining then
- report(class,family,unicode,symbol)
- end
- mset, dset = setmathcharacter(class,family,unicode,symbol,mset,dset)
+ function mathematics.define(family)
+ family = family or 0
+ family = families[family] or family
+ local data = characters.data
+ --
+ local function remap(first,last)
+ for unicode=utfbyte(first),utfbyte(last) do
+ setmathcode("global",unicode,ordinary_class,family,unicode)
end
- local spec = other.mathspec
- if spec then
- for i=1,#spec do
- local m = spec[i]
- local class = m.class
- if class then
- class = classes[class] or class -- no real checks needed
- mset, dset = setmathcharacter(class,family,unicode,symbol,mset,dset)
+ end
+ remap("0","9")
+ remap("A","Z")
+ remap("a","z")
+ --
+ for unicode, character in sortedhash(data) do
+ local symbol = character.mathsymbol
+ local mset = true
+ local dset = true
+ if symbol then
+ local other = data[symbol]
+ local class = other.mathclass
+ if class then
+ local engine = engineclasses[class]
+ if trace_defining then
+ report(class,engine,family,unicode,symbol)
end
+ mset, dset = setmathcharacter(engine,family,unicode,symbol,mset,dset)
end
- end
- end
- local mathclass = character.mathclass
- local mathspec = character.mathspec
- if mathspec then
- if mathclass then
- local name = character.mathname
- if name then
- report_math("fatal error, conflicting mathclass and mathspec for %C",unicode)
- os.exit()
- else
- local class = classes[mathclass] or mathclass -- no real checks needed
- if not class then
- if trace_defining then
- report("unknown",family,unicode)
+ local spec = other.mathspec
+ if spec then
+ for i=1,#spec do
+ local m = spec[i]
+ local class = m.class
+ if class then
+ local engine = engineclasses[class]
+ -- todo: trace
+ mset, dset = setmathcharacter(engine,family,unicode,symbol,mset,dset)
end
- else
- if trace_defining then
- report(class,family,unicode)
- end
- mset, dset = setmathcharacter(class,family,unicode,unicode,mset,dset)
end
end
end
- for i=1,#mathspec do
- local m = mathspec[i]
- local name = m.name
- local class = m.class
+ local class = character.mathclass
+ local spec = character.mathspec
+ local name = character.mathname
+ if spec then
+ local done = false
if class then
- class = classes[class] or class -- no real checks needed
if name then
+ report_math("fatal error, conflicting mathclass and mathspec for %C",unicode)
+ os.exit()
+ else
+ class = classes[class] or ordinary_class
+ local engine = engineclasses[class]
if trace_defining then
- report(class,family,unicode,name)
+ report(class,engine,family,unicode)
end
- setmathsymbol(name,class,family,unicode)
+ mset, dset = setmathcharacter(engine,family,unicode,unicode,mset,dset)
+ done = true
+ end
+ end
+ for i=1,#spec do
+ local m = spec[i]
+ local name = m.name
+ local class = m.class or class
+ if class then
+ class = classes[class] or ordinary_class
else
- name = (class == classes.variable or class == classes.number) and character.adobename -- bad
- if name and trace_defining then
- report(class,family,unicode,name)
+ class = ordinary_class
+ end
+ if class then
+ local engine = engineclasses[class]
+ if name then
+ if trace_defining then
+ report(class,engine,family,unicode,name)
+ end
+ setmathsymbol(name,class,engine,family,unicode)
+ else
+ name = (class == classes.ordinary or class == classes.digit) and character.adobename -- bad
+ if name and trace_defining then
+ report(class,engine,family,unicode,name)
+ end
+ end
+ if not done then
+ mset, dset = setmathcharacter(engine,family,unicode,m.unicode or unicode,mset,dset) -- see solidus
+ done = true
end
end
- mset, dset = setmathcharacter(class,family,unicode,m.unicode or unicode,mset,dset) -- see solidus
- end
- end
- elseif mathclass then
- local name = character.mathname
- local class = classes[mathclass] or mathclass -- no real checks needed
- if not class then
- if trace_defining then
- report("unknown",family,unicode,name)
end
- elseif name == false then
- if trace_defining then
- report(class,family,unicode,name)
- end
- mset, dset = setmathcharacter(class,family,unicode,unicode,mset,dset)
else
- -- if not name then
- -- name = character.contextname -- too dangerous, we loose textslash and a few more
- -- end
- if name then
- if trace_defining then
- report(class,family,unicode,name)
- end
- setmathsymbol(name,class,family,unicode)
+ if class then
+ class = classes[class] or ordinary_class
else
+ class = ordinary_class
+ end
+ if name ~= nil then
+ local engine = engineclasses[class]
+ if name == false then
+ if trace_defining then
+ report(class,engine,family,unicode,name)
+ end
+ mset, dset = setmathcharacter(engine,family,unicode,unicode,mset,dset)
+ else
+ -- if not name then
+ -- name = character.contextname -- too dangerous, we loose textslash and a few more
+ -- end
+ if name then
+ if trace_defining then
+ report(class,engine,family,unicode,name)
+ end
+ setmathsymbol(name,class,engine,family,unicode)
+ else
+ if trace_defining then
+ report(class,engine,family,unicode,character.adobename)
+ end
+ end
+ mset, dset = setmathcharacter(engine,family,unicode,unicode,mset,dset)
+ end
+ elseif class ~= ordinary_class then
+ local engine = engineclasses[class]
if trace_defining then
- report(class,family,unicode,character.adobename)
+ report(class,engine,family,unicode,character.adobename)
end
+ mset, dset = setmathcharacter(engine,family,unicode,unicode,mset,dset)
end
- mset, dset = setmathcharacter(class,family,unicode,unicode,mset,dset)
end
end
+ if trace_defining then
+ logs.stopfilelogging()
+ end
end
+
end
-- needed for mathml analysis
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/math-ini.mkiv
index d0e18ff4b1b..a955e9284f5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-ini.mkiv
@@ -324,18 +324,30 @@
% e.g.: \definemathematics[i:mp][setups=i:tight,openup=yes]
-\newmuskip\defaultthickmuskip \defaultthickmuskip 5mu plus 5mu
-\newmuskip\defaultmedmuskip \defaultmedmuskip 4mu plus 2mu minus 4mu
-\newmuskip\defaultthinmuskip \defaultthinmuskip 3mu
+\newmuskip\defaultthickmuskip \defaultthickmuskip 5mu plus 5mu
+\newmuskip\defaultmedmuskip \defaultmedmuskip 4mu plus 2mu minus 4mu
+\newmuskip\defaultthinmuskip \defaultthinmuskip 3mu
-\newmuskip\halfthickmuskip \halfthickmuskip 2.5mu plus 2.5mu
-\newmuskip\halfmedmuskip \halfmedmuskip 2.0mu plus 1.0mu minus 2.0mu
-\newmuskip\halfthinmuskip \halfthinmuskip 1.5mu
+\newmuskip\halfthickmuskip \halfthickmuskip 2.5mu plus 2.5mu
+\newmuskip\halfmedmuskip \halfmedmuskip 2.0mu plus 1.0mu minus 2.0mu
+\newmuskip\halfthinmuskip \halfthinmuskip 1.5mu
-\newcount \defaultrelpenalty \defaultrelpenalty 500
-\newcount \defaultbinoppenalty \defaultbinoppenalty 700
-\newcount \defaultprerelpenalty \defaultprerelpenalty -100
-\newcount \defaultprebinoppenalty \defaultprebinoppenalty -100
+\newcount \defaultrelpenalty \defaultrelpenalty 500
+\newcount \defaultbinoppenalty \defaultbinoppenalty 700
+\newcount \defaultprerelpenalty \defaultprerelpenalty -100
+\newcount \defaultprebinoppenalty \defaultprebinoppenalty -100
+\newcount \defaultdisplayprepenalty \defaultdisplayprepenalty -10
+
+% For the moment this way:
+
+% \appendtoks
+% \setmathprepenalty \mathbinarycode \defaultdisplayprepenalty
+% % \setmathpostpenalty\mathbinarycode \zerocount
+% \setmathprepenalty \mathrelationcode \defaultdisplayprepenalty
+% % \setmathpostpenalty\mathrelationcode \zerocount
+% \setmathpostpenalty\mathtextpunctuationcode\defaultdisplayprepenalty
+% % \setmathprepenalty \mathtextpunctuationcode\zerocount
+% \to \everybeforedisplayformula
% we need to control these otherwise:
%
@@ -1586,11 +1598,11 @@
% \unexpanded\def\disablemathpunctuation{\setfalse\automathpunctuation}
%
% \appendtoks
-% \doifelse{\mathematicsparameter\v!autopunctuation}\v!yes\settrue\setfalse\automathpunctuation
+% \doifelse{\mathematicsparameter\c!autopunctuation}\v!yes\settrue\setfalse\automathpunctuation
% \to \everyswitchmathematics
%
% \setupmathematics
-% [\v!autopunctuation=\v!no]
+% [\c!autopunctuation=\v!no]
%
% \def\math_punctuation_next{\ifx\nexttoken\blankspace\signalcharacter\fi}
%
@@ -1676,9 +1688,9 @@
\let\math_punctuation_yes_period \math_punctuation_nop_period
\let\math_punctuation_yes_semicolon\math_punctuation_all_semicolon
-\def\math_punctuation_comma_next {\begingroup\Umathcode\c_math_comma \ifx\nexttoken\blankspace\mathordcode\else\mathordcode\fi\zerocount\c_math_comma ,\endgroup}
-\def\math_punctuation_period_next {\begingroup\Umathcode\c_math_period \ifx\nexttoken\blankspace\mathordcode\else\mathordcode\fi\zerocount\c_math_period .\endgroup}
-\def\math_punctuation_semicolon_next{\begingroup\Umathcode\c_math_semicolon\ifx\nexttoken\blankspace\mathordcode\else\mathordcode\fi\zerocount\c_math_semicolon;\endgroup}
+\def\math_punctuation_comma_next {\begingroup\Umathcode\c_math_comma \ifx\nexttoken\blankspace\mathpunctcode\else\mathordcode\fi\zerocount\c_math_comma ,\endgroup}
+\def\math_punctuation_period_next {\begingroup\Umathcode\c_math_period \ifx\nexttoken\blankspace\mathpunctcode\else\mathordcode\fi\zerocount\c_math_period .\endgroup}
+\def\math_punctuation_semicolon_next{\begingroup\Umathcode\c_math_semicolon\ifx\nexttoken\blankspace\mathpunctcode\else\mathordcode\fi\zerocount\c_math_semicolon;\endgroup}
\installcorenamespace {mathautopunctuation}
@@ -1745,12 +1757,12 @@
\mathcode\c_math_comma \c_math_special
\mathcode\c_math_period \c_math_special
\mathcode\c_math_semicolon\c_math_special
- \begincsname\??mathautopunctuation\mathematicsparameter\v!autopunctuation\endcsname
+ \begincsname\??mathautopunctuation\mathematicsparameter\c!autopunctuation\endcsname
\to \everymathematics
\appendtoks
- \ifcsname\??mathautopunctuation\mathematicsparameter\v!autopunctuation\endcsname \else
- \letmathematicsparameter\v!autopunctuation\v!no
+ \ifcsname\??mathautopunctuation\mathematicsparameter\c!autopunctuation\endcsname \else
+ \letmathematicsparameter\c!autopunctuation\v!no
\fi
\to \everysetupmathematics
@@ -1758,7 +1770,7 @@
\def\disablemathpunctuation{\csname\??mathautopunctuation\v!yes\endcsname}
\setupmathematics
- [\v!autopunctuation=\v!no] % no | yes | all | comma | yes,semicolon | all,semicolon
+ [\c!autopunctuation=\v!no] % no | yes | all | comma | yes,semicolon | all,semicolon
%D The consequences of setting this are as follows:
%D
@@ -2931,6 +2943,10 @@
\math_openup_parameter#1{#2}%
\fi}
+%D For now (needed in asciimath):
+
+\def\math_relax_limits{\let\limits\relax}
+
\protect \endinput
% % not used (yet)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-int.mkiv b/Master/texmf-dist/tex/context/base/mkiv/math-int.mkiv
index 5876eb7bb25..0920415f902 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-int.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-int.mkiv
@@ -68,8 +68,8 @@
\to \everyswitchmathematics
\setupmathematics
-% [\v!integral=nolimits]
- [\v!integral=autolimits]
+% [\c!integral=nolimits]
+ [\c!integral=autolimits]
%D The following code is used for fallbacks and might become obsolete once
%D we have enough \OPENTYPE\ math fonts.
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-map.lua b/Master/texmf-dist/tex/context/base/mkiv/math-map.lua
index 97860b923ba..5f93b43fc6c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-map.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-map.lua
@@ -689,9 +689,9 @@ local issygreek = regular_tf.symbols
local isgreek = merged(islcgreek,isucgreek,issygreek)
local greekremapping = {
- [1] = { what = "unchanged" }, -- upright
- [2] = { what = "upright", it = "tf", bi = "bf" }, -- upright
- [3] = { what = "italic", tf = "it", bf = "bi" }, -- italic
+ { what = "unchanged" }, -- upright
+ { what = "upright", it = "tf", bi = "bf" }, -- upright
+ { what = "italic", tf = "it", bf = "bi" }, -- italic
}
local usedremap = { }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-noa.lua b/Master/texmf-dist/tex/context/base/mkiv/math-noa.lua
index 1fb763a3b6c..fd4b8221583 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-noa.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-noa.lua
@@ -55,7 +55,7 @@ local trace_processing = false registertracker("math.processing", function(v
local trace_analyzing = false registertracker("math.analyzing", function(v) trace_analyzing = v end)
local trace_normalizing = false registertracker("math.normalizing", function(v) trace_normalizing = v end)
local trace_collapsing = false registertracker("math.collapsing", function(v) trace_collapsing = v end)
-local trace_fixing = false registertracker("math.fixing", function(v) trace_foxing = v end)
+local trace_fixing = false registertracker("math.fixing", function(v) trace_fixing = v end)
local trace_patching = false registertracker("math.patching", function(v) trace_patching = v end)
local trace_goodies = false registertracker("math.goodies", function(v) trace_goodies = v end)
local trace_variants = false registertracker("math.variants", function(v) trace_variants = v end)
@@ -134,12 +134,12 @@ local setsup = nuts.setsup
local setsubpre = nuts.setsubpre
local setsuppre = nuts.setsuppre
-local flush_node = nuts.flush
+local flushnode = nuts.flush
local copy_node = nuts.copy
local slide_nodes = nuts.slide
local set_visual = nuts.setvisual
-local mlist_to_hlist = nuts.mlist_to_hlist
+local mlisttohlist = nuts.mlisttohlist
local new_kern = nodepool.kern
local new_submlist = nodepool.submlist
@@ -185,7 +185,7 @@ local opdisplaylimitsnoad_code = noadcodes.opdisplaylimits
local oplimitsnoad_code = noadcodes.oplimits
local opnolimitsnoad_code = noadcodes.opnolimits
local binnoad_code = noadcodes.bin
-local relnode_code = noadcodes.rel
+local relnoad_code = noadcodes.rel
local opennoad_code = noadcodes.open
local closenoad_code = noadcodes.close
local punctnoad_code = noadcodes.punct
@@ -465,7 +465,7 @@ local function errorchar(font,char)
return fake
else
local kind, fake = fonts.checkers.placeholder(font,char)
- if not fake or kind ~= "char" then
+ if not fake or kind ~= "char" then -- Also check for "with" here?
fake = 0x3F
end
cached[font][char] = fake
@@ -884,7 +884,7 @@ do
end
setchar(d,chr)
setfam(d,fam)
- flush_node(sym)
+ flushnode(sym)
end
setattrlist(d,char)
setattrlist(f,char)
@@ -930,7 +930,7 @@ do
if midl then
local fence = makefence(middlefence_code,current)
setnucleus(current)
- flush_node(current)
+ flushnode(current)
middle[current] = nil
-- replace_node
setlink(prev,fence,next)
@@ -956,7 +956,7 @@ do
local f_c = makefence(rightfence_code,close)
makelist(middle,open,f_o,o_next,c_prev,f_c)
setnucleus(close)
- flush_node(close)
+ flushnode(close)
-- open is now a list
setlink(open,c_next)
return open
@@ -1795,7 +1795,7 @@ do
[oplimitsnoad_code] = true,
[opnolimitsnoad_code] = true,
[binnoad_code] = true, -- new
- [relnode_code] = true,
+ [relnoad_code] = true,
[opennoad_code] = true, -- new
[closenoad_code] = true, -- new
[punctnoad_code] = true, -- new
@@ -1883,7 +1883,7 @@ do
end
while c ~= l do
local n = getnext(c)
- flush_node(c)
+ flushnode(c)
c = n
end
setlink(parent,l)
@@ -1930,8 +1930,6 @@ do
mathematics.virtualize(movesub)
- local options_supported = tokens.defined("Unosuperscript")
-
local function fixsupscript(parent,current,current_char,new_char)
if new_char ~= current_char and new_char ~= true then
setchar(current,new_char)
@@ -1943,9 +1941,7 @@ do
report_fixing("fixing subscript, superscript %U",current_char)
end
end
- if options_supported then
- setfield(parent,"options",0x08+0x22)
- end
+ setfield(parent,"options",0x08+0x22)
end
-- local function movesubscript(parent,current_nucleus,oldchar,newchar)
@@ -2097,7 +2093,7 @@ do
end
setprev(next,pointer)
setnext(parent,getnext(next))
- flush_node(next)
+ flushnode(next)
end
end
end
@@ -2116,7 +2112,7 @@ do
local classes = { }
local colors = {
- [relnode_code] = "trace:dr",
+ [relnoad_code] = "trace:dr",
[ordnoad_code] = "trace:db",
[binnoad_code] = "trace:dg",
[opennoad_code] = "trace:dm",
@@ -2175,7 +2171,7 @@ do
local permitted = {
ordinary = ordnoad_code,
binary = binnoad_code,
- relation = relnode_code,
+ relation = relnoad_code,
punctuation = punctnoad_code,
inner = innernoad_code,
}
@@ -2350,16 +2346,10 @@ do
-- force_penalties = v
-- end)
- function builders.kernel.mlist_to_hlist(head,style,penalties)
- return mlist_to_hlist(head,style,force_penalties or penalties)
+ function builders.kernel.mlisttohlist(head,style,penalties)
+ return mlisttohlist(head,style,force_penalties or penalties)
end
- -- function builders.kernel.mlist_to_hlist(head,style,penalties)
- -- local h = mlist_to_hlist(head,style,force_penalties or penalties)
- -- inspect(nodes.totree(h,true,true,true))
- -- return h
- -- end
-
implement {
name = "setmathpenalties",
arguments = "integer",
@@ -2374,14 +2364,14 @@ local actions = tasks.actions("math") -- head, style, penalties
local starttiming, stoptiming = statistics.starttiming, statistics.stoptiming
-function processors.mlist_to_hlist(head,style,penalties)
+function processors.mlisttohlist(head,style,penalties)
starttiming(noads)
head = actions(head,style,penalties)
stoptiming(noads)
return head
end
-callbacks.register('mlist_to_hlist',processors.mlist_to_hlist,"preprocessing math list")
+callbacks.register('mlist_to_hlist',processors.mlisttohlist,"preprocessing math list")
-- tracing
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-ren.lua b/Master/texmf-dist/tex/context/base/mkiv/math-ren.lua
index 4628ffe5587..cf429cb3a69 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-ren.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-ren.lua
@@ -33,6 +33,13 @@ mappings["blackboard-to-bold"] = {
[0x02124] = 0x1D419,
}
+mappings["mikaels-favourites"] = {
+ [0x211D] = 0x1D411,
+ [0x211A] = 0x1D410,
+ [0x2124] = 0x1D419,
+ [0x2115] = 0x1D40D,
+}
+
local function renderset(list) -- order matters
local tag = gsub(list," ","")
local n = sets[tag]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-tag.lua b/Master/texmf-dist/tex/context/base/mkiv/math-tag.lua
index 41373fcb58b..5bbe5cb3a3b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-tag.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-tag.lua
@@ -38,7 +38,7 @@ local getnucleus = nuts.getnucleus
local getsub = nuts.getsub
local getsup = nuts.getsup
-local set_attributes = nuts.setattributes
+local setattributes = nuts.setattributes
local nextnode = nuts.traversers.node
@@ -99,7 +99,6 @@ local chardata = characters.data
local getmathcodes = tex.getmathcodes
local mathcodes = mathematics.codes
local ordinary_mathcode = mathcodes.ordinary
-local variable_mathcode = mathcodes.variable
local fromunicode16 = fonts.mappings.fromunicode16
local fontcharacters = fonts.hashes.characters
@@ -226,7 +225,7 @@ process = function(start) -- we cannot use the processor as we have no finalizer
local char = getchar(start)
local code = getmathcodes(char)
local tag
- if code == ordinary_mathcode or code == variable_mathcode then
+ if code == ordinary_mathcode then
local ch = chardata[char]
local mc = ch and ch.mathclass
if mc == "number" then
@@ -297,7 +296,7 @@ process = function(start) -- we cannot use the processor as we have no finalizer
-- empty list
elseif not attr then
-- box comes from strange place
- set_attributes(list,a_tagged,text) -- only the first node ?
+ setattributes(list,a_tagged,text) -- only the first node ?
else
-- Beware, the first node in list is the actual list so we definitely
-- need to nest. This approach is a hack, maybe I'll make a proper
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-ttv.lua b/Master/texmf-dist/tex/context/base/mkiv/math-ttv.lua
index 151183212a3..662211a0d1c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-ttv.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-ttv.lua
@@ -61,6 +61,14 @@ mathencodings["large-to-small"] = {
[0x02044] = 0x0E, -- /
}
+mathencodings["large-to-small-private"] = {
+ [0xFE07A] = 0x7A, -- bracehtipdownleft
+ [0xFE07B] = 0x7B, -- bracehtipdownright
+ [0xFE07C] = 0x7C, -- bracehtipupleft
+ [0xFE07D] = 0x7D, -- bracehtipupright
+
+}
+
-- Beware: these are (in cm/lm) below the baseline due to limitations
-- in the tfm format but the engine (combined with the mathclass) takes
-- care of it. If we need them in textmode, we should make them virtual
@@ -429,7 +437,7 @@ mathencodings["tex-sy"] = {
[0x027E9] = 0x69, -- >, rangle
[0x0007C] = 0x6A, -- |, mid, lvert, rvert
[0x02225] = 0x6B, -- parallel
- -- [0x0 ] = 0x00, -- Vert, lVert, rVert, arrowvert, Arrowvert
+ -- [0x0 ] = 0x00, -- Vert, lVert, rVert, arrowvert, Arrowvert
[0x02195] = 0x6C, -- updownarrow
[0x021D5] = 0x6D, -- Updownarrow
[0x0005C] = 0x6E, -- \, backslash, setminus
diff --git a/Master/texmf-dist/tex/context/base/mkiv/math-vfu.lua b/Master/texmf-dist/tex/context/base/mkiv/math-vfu.lua
index 221bbff8975..5fe9738a218 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/math-vfu.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/math-vfu.lua
@@ -284,10 +284,9 @@ local function dots(main,characters,id,size,unicode)
}
end
elseif unicode == 0x22EE then
- -- weird height !
characters[unicode] = {
width = w,
- height = h+(1.4)*size,
+ height = h+0.8*size,
depth = 0,
commands = {
push, push, slot, pop, up4size, push, slot, pop, up4size, slot, pop,
@@ -296,7 +295,7 @@ local function dots(main,characters,id,size,unicode)
elseif unicode == 0x22F1 then
characters[unicode] = {
width = 3*w + 6*size/18,
- height = 1.5*size,
+ height = 0.7*size,
depth = 0,
commands = {
push,
@@ -313,7 +312,7 @@ local function dots(main,characters,id,size,unicode)
elseif unicode == 0x22F0 then
characters[unicode] = {
width = 3*w + 6*size/18,
- height = 1.5*size,
+ height = 0.7*size,
depth = 0,
commands = {
push,
@@ -422,7 +421,7 @@ local function stack(main,characters,id,size,unicode,u1,d12,u2)
local mu = size/18
characters[unicode] = {
width = w1,
- height = h1 + h2 + d12,
+ height = h1 + h2 + d12*mu,
depth = d1,
commands = {
{ "slot", id, u1 },
@@ -699,7 +698,7 @@ local function copy_glyph(main,target,original,unicode,slot)
vvi.glyph = addprivate(main,formatters["M-V-%H"](oldglyph),newdata)
end
end
- return newdata
+ return glyphdata
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-blb.lua b/Master/texmf-dist/tex/context/base/mkiv/meta-blb.lua
index c690f3902e7..c042451f253 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-blb.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/meta-blb.lua
@@ -200,7 +200,7 @@ metapost.installplugin {
}
-- Here follows an example of usage of the above: a more modern
--- version of followokens (in meta-imp-txt.mkiv).
+-- version of followtokens (in meta-imp-txt.mkiv).
local nodecodes = nodes.nodecodes
local kerncodes = nodes.kerncodes
@@ -221,9 +221,9 @@ local getsubtype = nuts.getsubtype
local setlink = nuts.setlink
local setlist = nuts.setlist
local getnext = nuts.getnext
-local flatten_list = nuts.flatten_discretionaries
+local flatten_list = nuts.flattendiscretionaries
local remove_node = nuts.remove
-local flush_node = nuts.flush
+local flushnode = nuts.flush
local addblob = mp.mf_blob_add
local newblob = mp.mf_blob_new
@@ -276,7 +276,7 @@ local function initialize(category,box)
end
setlist(wrap,head)
end
- flush_node(wrap)
+ flushnode(wrap)
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-grd.mkiv b/Master/texmf-dist/tex/context/base/mkiv/meta-grd.mkiv
index 15a4471e78c..0296c68a6dc 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-grd.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/meta-grd.mkiv
@@ -140,20 +140,20 @@
save sc, dx, dy, wd, ht, ox, oy, ax, ay ;
- sc = \directdummyparameter\c!factor*\directdummyparameter\c!scale ;
- dx = \MPdpar\directdummyparameter\c!dx*sc ;
- dy = \MPdpar\directdummyparameter\c!dy*sc ;
- wd = \directdummyparameter\c!nx*dx ;
- ht = \directdummyparameter\c!ny*dy ;
- ox = \MPdpar\directdummyparameter\c!xoffset\relax ;
- oy = \MPdpar\directdummyparameter\c!yoffset\relax ;
+ sc := \directdummyparameter\c!factor*\directdummyparameter\c!scale ;
+ dx := \MPdpar\directdummyparameter\c!dx*sc ;
+ dy := \MPdpar\directdummyparameter\c!dy*sc ;
+ wd := \directdummyparameter\c!nx*dx ;
+ ht := \directdummyparameter\c!ny*dy ;
+ ox := \MPdpar\directdummyparameter\c!xoffset\relax ;
+ oy := \MPdpar\directdummyparameter\c!yoffset\relax ;
if "\directdummyparameter\c!align" = "\v!middle" :
- ax = \MPdpar\directdummyparameter\c!dx/2
- ay = \MPdpar\directdummyparameter\c!dy/2
+ ax := \MPdpar\directdummyparameter\c!dx/2 ;
+ ay := \MPdpar\directdummyparameter\c!dy/2 ;
else :
- ax = 0 ;
- ay = 0 ;
+ ax := 0 ;
+ ay := 0 ;
fi ;
draw image (
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-imp-dum.mkiv b/Master/texmf-dist/tex/context/base/mkiv/meta-imp-dum.mkiv
index 74a2de8755e..50a07f41554 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-imp-dum.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/meta-imp-dum.mkiv
@@ -98,7 +98,7 @@
[placeholder]
[1=red,2=green,3=blue,4=cyan,5=magenta,6=yellow]
-\newcount\c_grph_replacement_n
+\newinteger\c_grph_replacement_n
\setupexternalfigures
[\c!reduction=0,
@@ -111,8 +111,8 @@
% \setuppalet[placeholder]%
\getpaletsize[placeholder]%
\ifnum\c_grph_replacement_n=\zerocount
- \getrandomnumber \m_grph_replacement_n\plusone\paletsize
- \global\c_grph_replacement_n \m_grph_replacement_n\relax
+ \getrandomnumber\m_grph_replacement_n\plusone\paletsize
+ \global\c_grph_replacement_n\m_grph_replacement_n\relax
\else
\global\advance\c_grph_replacement_n\plusone
\fi
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-imp-mat.mkiv b/Master/texmf-dist/tex/context/base/mkiv/meta-imp-mat.mkiv
index e1b5d9d0059..66ac3306327 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-imp-mat.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/meta-imp-mat.mkiv
@@ -139,35 +139,35 @@
enddef ;
\stopMPextensions
-\startuniqueMPgraphic{minifun::math:stacker:\number"FE3B4}{axis,ex,em}
+\startuniqueMPgraphic{minifun::math:stacker:\number"\ifcase\contextlmtxmode FE3B4\else23B4\fi}{axis,ex,em}
math_stacker_draw_accent(math_stacker_bracket_shape(OverlayHeight,false)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"FE3B5}{axis,ex,em}
+\startuniqueMPgraphic{minifun::math:stacker:\number"\ifcase\contextlmtxmode FE3B5\else23B5\fi}{axis,ex,em}
math_stacker_draw_accent(math_stacker_bracket_shape(OverlayDepth,true)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"FE3DC}{axis,ex,em}
+\startuniqueMPgraphic{minifun::math:stacker:\number"\ifcase\contextlmtxmode FE3DC\else23DC\fi}{axis,ex,em}
math_stacker_draw_accent(math_stacker_parent_shape(OverlayHeight,false)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"FE3DD}{axis,ex,em}
+\startuniqueMPgraphic{minifun::math:stacker:\number"\ifcase\contextlmtxmode FE3DD\else23DD\fi}{axis,ex,em}
math_stacker_draw_accent(math_stacker_parent_shape(OverlayDepth,true)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"FE3DE}{axis,ex,em}
+\startuniqueMPgraphic{minifun::math:stacker:\number"\ifcase\contextlmtxmode FE3DE\else23DE\fi}{axis,ex,em}
math_stacker_draw_accent(math_stacker_brace_shape(OverlayHeight,false)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"FE3DF}{axis,ex,em}
+\startuniqueMPgraphic{minifun::math:stacker:\number"\ifcase\contextlmtxmode FE3DF\else23DF\fi}{axis,ex,em}
math_stacker_draw_accent(math_stacker_brace_shape(OverlayDepth,true)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"FE33E}{axis,ex,em}
+\startuniqueMPgraphic{minifun::math:stacker:\number"\ifcase\contextlmtxmode FE33E\else203E\fi}{axis,ex,em}
math_stacker_draw_accent(math_stacker_bar_shape(false)) ;
\stopuniqueMPgraphic
-\startuniqueMPgraphic{minifun::math:stacker:\number"FE33F}{axis,ex,em}
+\startuniqueMPgraphic{minifun::math:stacker:\number"\ifcase\contextlmtxmode FE33F\else203F\fi}{axis,ex,em}
math_stacker_draw_accent(math_stacker_bar_shape(true)) ;
\stopuniqueMPgraphic
@@ -257,5 +257,10 @@ $
\underleftarrow {a+b+c+d} \quad
\underrightarrow {a+b+c+d}
$
+\blank[2*big]
+\setupmathradical[sqrt][alternative=mp,color=darkgreen]
+$
+ \sqrt[2]{a+b+c+d} \quad
+$
\stopTEXpage
diff --git a/Master/texmf-dist/tex/context/base/mkiv/meta-imp-txt.mkiv b/Master/texmf-dist/tex/context/base/mkiv/meta-imp-txt.mkiv
index 2c28acf7290..8e7af88b72c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/meta-imp-txt.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/meta-imp-txt.mkiv
@@ -243,7 +243,7 @@
if head then
n = { }
s = 0
- head = node.flatten_discretionaries(head)
+ head = nodes.flattendiscretionaries(head)
local current = head
while current do
local id = current.id
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mlib-mpf.lua b/Master/texmf-dist/tex/context/base/mkiv/mlib-mpf.lua
index 7452c011187..5e61cf4e11d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mlib-mpf.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mlib-mpf.lua
@@ -133,6 +133,25 @@ do
n = 1
end
+ function metapost.getbuffer()
+ local b = { }
+ for i=1,n do
+ b[i] = buffer
+ end
+ return b, n
+ end
+
+ function metapost.setbuffer(b, s)
+ n = 0
+ for i=1,(s or #b) do
+ local bi = b[i]
+ if bi then
+ n = n + 1
+ buffer[n] = tostring(bi)
+ end
+ end
+ end
+
function metapost.runscript(code)
nesting = nesting + 1
runs = runs + 1
@@ -247,7 +266,7 @@ do
-- writers
- local function mpp(value)
+ local function rawmpp(value)
n = n + 1
local t = type(value)
if t == "number" then
@@ -268,13 +287,13 @@ do
local function mpprint(first,second,...)
if second == nil then
if first ~= nil then
- mpp(first)
+ rawmpp(first)
end
else
for i=1,select("#",first,second,...) do
local value = (select(i,first,second,...))
if value ~= nil then
- mpp(value)
+ rawmpp(value)
end
end
end
@@ -653,6 +672,25 @@ do
for k, v in next, aux do mp[k] = v end
+ -- mp.print = table.setmetatablecall(aux, function(t,...)
+ -- mpprint(...)
+ -- end)
+
+ mp.print = table.setmetatablecall(aux, function(t,first,second,...)
+ if second == nil then
+ if first ~= nil then
+ rawmpp(first)
+ end
+ else
+ for i=1,select("#",first,second,...) do
+ local value = (select(i,first,second,...))
+ if value ~= nil then
+ rawmpp(value)
+ end
+ end
+ end
+ end)
+
end
do
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mlib-pdf.lua b/Master/texmf-dist/tex/context/base/mkiv/mlib-pdf.lua
index e737b5d8688..5c1dc88b8c1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mlib-pdf.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mlib-pdf.lua
@@ -23,9 +23,6 @@ local context = context
local allocate = utilities.storage.allocate
-local copy_node = node.copy
-local write_node = node.write
-
local pen_info = mplib.pen_info
local getfields = mplib.getfields or mplib.fields -- todo: in lmtx get them once and then use gettype
@@ -91,7 +88,7 @@ end
function metapost.flushliteral(d)
if savedliterals then
- write_node(mpsliteral(savedliterals[d]))
+ context(mpsliteral(savedliterals[d]))
else
report_metapost("problem flushing literal %a",d)
end
@@ -217,7 +214,7 @@ local function flushnormalpath(path, t, open)
return t
end
-local function flushconcatpath(path, t, open)
+local function flushconcatpath(path, t, open, transform)
local pth, ith, nt
local length = #path
if t then
@@ -226,8 +223,10 @@ local function flushconcatpath(path, t, open)
t = { }
nt = 0
end
- nt = nt + 1
- t[nt] = f_cm(sx,rx,ry,sy,tx,ty)
+ if transform then
+ nt = nt + 1
+ t[nt] = f_cm(sx,rx,ry,sy,tx,ty)
+ end
for i=1,length do
nt = nt + 1
pth = path[i]
@@ -602,7 +601,7 @@ function metapost.flush(specification,result)
for i=1,#savedpath do
local path = savedpath[i]
if transformed then
- flushconcatpath(path,result,open)
+ flushconcatpath(path,result,open,i==1)
else
flushnormalpath(path,result,open)
end
@@ -612,7 +611,7 @@ function metapost.flush(specification,result)
if flush then
-- ignore this path
elseif transformed then
- flushconcatpath(path,result,open)
+ flushconcatpath(path,result,open,true)
else
flushnormalpath(path,result,open)
end
@@ -642,7 +641,7 @@ function metapost.flush(specification,result)
for i=1,#savedhtap do
local path = savedhtap[i]
if transformed then
- flushconcatpath(path,result,open)
+ flushconcatpath(path,result,open,i==1)
else
flushnormalpath(path,result,open)
end
@@ -651,7 +650,7 @@ function metapost.flush(specification,result)
evenodd = true
end
if transformed then
- flushconcatpath(path,result,open)
+ flushconcatpath(path,result,open,true)
else
flushnormalpath(path,result,open)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mlib-pps.lua b/Master/texmf-dist/tex/context/base/mkiv/mlib-pps.lua
index 8a6f4b4f825..c3635d51782 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mlib-pps.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mlib-pps.lua
@@ -13,7 +13,6 @@ local insert, remove, concat = table.insert, table.remove, table.concat
local Cs, Cf, C, Cg, Ct, P, S, V, Carg = lpeg.Cs, lpeg.Cf, lpeg.C, lpeg.Cg, lpeg.Ct, lpeg.P, lpeg.S, lpeg.V, lpeg.Carg
local lpegmatch, tsplitat, tsplitter = lpeg.match, lpeg.tsplitat, lpeg.tsplitter
local formatters = string.formatters
-local exists, savedata = io.exists, io.savedata
local mplib = mplib
local metapost = metapost
@@ -26,8 +25,8 @@ local setmacro = interfaces.setmacro
local texsetbox = tex.setbox
local textakebox = tex.takebox -- or: nodes.takebox
local texrunlocal = tex.runlocal
-local copy_list = node.copy_list
-local flush_list = node.flush_list
+local copylist = nodes.copylist
+local flushlist = nodes.flushlist
local setmetatableindex = table.setmetatableindex
local sortedhash = table.sortedhash
@@ -271,7 +270,7 @@ local function stopjob()
if top then
for slot, content in next, top.textexts do
if content then
- flush_list(content)
+ flushlist(content)
if trace_textexts then
report_textexts("freeing text %s",slot)
end
@@ -377,7 +376,7 @@ function models.rgb(cr)
elseif metapost.reducetogray then
if n == 1 then
local s = cr[1]
- checked_color_pair(f_gray,s,s)
+ return checked_color_pair(f_gray,s,s)
elseif n == 3 then
local r = cr[1]
local g = cr[2]
@@ -1078,7 +1077,7 @@ local tx_reset, tx_process do
end
box = cache[mp_hash]
if box then
- box = copy_list(box)
+ box = copylist(box)
else
texrunlocal("mptexttoks")
box = textakebox("mptextbox")
@@ -1463,6 +1462,8 @@ local function tr_process(object,prescript,before,after)
sp_specs = concat(sp_specs,",")
definemultitonecolor(sp_name,sp_specs,"","")
sp_type = "named"
+ elseif sp_type == "named" then
+ cs = { 1 } -- factor 1
end
if sp_type == "named" then
-- we might move this to another namespace .. also, named can be a spotcolor
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mtx-context-compare.tex b/Master/texmf-dist/tex/context/base/mkiv/mtx-context-compare.tex
index c940270c8ab..16f8a540858 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mtx-context-compare.tex
+++ b/Master/texmf-dist/tex/context/base/mkiv/mtx-context-compare.tex
@@ -38,7 +38,6 @@
\stopTEXpage
\stoptexdefinition
-
\startluacode
local report = logs.reporter("compare")
@@ -70,8 +69,8 @@ local function check(name)
return used
end
-local one = check(fileone)
-local two = check(filetwo)
+local one = check(fileone) -- can crash
+local two = check(filetwo) -- can crash
if not one then
report("invalid file %a",fileone)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mtx-context-hashed.tex b/Master/texmf-dist/tex/context/base/mkiv/mtx-context-hashed.tex
new file mode 100644
index 00000000000..88de10f3f29
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/mtx-context-hashed.tex
@@ -0,0 +1,136 @@
+%D \module
+%D [ file=mtx-context-hashed,
+%D version=2009.03.21,
+%D title=\CONTEXT\ Extra Trickry,
+%D subtitle=Combine Files,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% begin help
+%
+% usage: context --extra=hashed [options] list-of-files
+%
+% --database : database to create or extend
+% --pattern : file pattern
+% --patterns : pattern file
+% --compression : apply compression
+%
+% end help
+
+% \startluacode
+% if not resolvers.finders.helpers.validhashed("hasheddata") then
+% resolvers.finders.helpers.createhashed {
+% database = "hasheddata",
+% pattern = "m4all/**.jpg$",
+% compress = false,
+% }
+% resolvers.finders.helpers.createhashed {
+% database = "hasheddata",
+% pattern = "m4all/**.png$",
+% compress = false,
+% }
+% resolvers.finders.helpers.createhashed {
+% database = "hasheddata",
+% pattern = "m4all/**.xml$",
+% compress = true,
+% }
+% end
+% \stopluacode
+
+% \startluacode
+% if not resolvers.finders.helpers.validhashed("hasheddata") then
+% resolvers.finders.helpers.createhashed {
+% database = "hasheddata",
+% patterns = {
+% { pattern = "m4all/**.jpg$", compress = false },
+% { pattern = "m4all/**.png$", compress = false },
+% { pattern = "m4all/**.xml$", compress = true },
+% },
+% }
+% end
+% \stopluacode
+
+% context --extra=hashed --database=hasheddata --pattern=m4all/**.jpg
+% context --extra=hashed --database=hasheddata --pattern=m4all/**.png
+% context --extra=hashed --database=hasheddata --pattern=m4all/**.xml --compress
+% context --extra=hashed --database=hasheddata --pattern=m4all/**.svg --compress
+
+% -- m4all.lua:
+%
+% return {
+% { pattern = "m4all/**.jpg$", compress = false },
+% { pattern = "m4all/**.png$", compress = false },
+% { pattern = "m4all/**.svg$", compress = true },
+% { pattern = "m4all/**.xml$", compress = true },
+% }
+%
+% context --extra=hashed --database=hasheddata --patterns=m4all.lua
+
+% \registerhashedfiles[hasheddata]
+% \registerfilescheme[hashed]
+%
+% \externalfigure[hashed:///m4all/books/chapters/h3/h3-if1/images/highres/casino.jpg] [height=1cm]
+% \externalfigure[hashed:///m4all/books/chapters/ha/ha-c4/images/highres/ha-c44-ex2-s1.png][height=1cm]
+% \externalfigure[m4all/books/chapters/h3/h3-if1/images/highres/casino.jpg] [height=1cm]
+% \externalfigure[m4all/books/chapters/ha/ha-c4/images/highres/ha-c44-ex2-s1.png] [height=1cm]
+
+\input mtx-context-common.tex
+
+\noheaderandfooterlines \setupbodyfont[tt]
+
+\starttext
+
+\startluacode
+
+ if CONTEXTLMTXMODE > 0 then
+
+ local database = document.arguments.database
+
+ if database then
+ local metadata = false
+ if tex.systemmodes["first"] then
+ metadata = resolvers.finders.helpers.createhashed {
+ database = database,
+ pattern = document.arguments.pattern,
+ compress = document.arguments.compress,
+ patterns = document.arguments.patterns and table.load(document.arguments.patterns),
+ }
+ else
+ metadata = resolvers.finders.helpers.validhashed(database)
+ if metadata then
+ metadata = metadata.metadata
+ end
+ end
+ if metadata then
+ local function show(what)
+ context.NC() context(what)
+ context.EQ() context(metadata[what])
+ context.NC() context.NR()
+ end
+ context.starttitle { title = "database: " .. database }
+ context.starttabulate { "||r|" }
+ show("nofnames")
+ show("nofpaths")
+ show("nofblobs")
+ show("nofcompressed")
+ context.stoptabulate()
+ context.stoptitle()
+ else
+ context("something went wrong, invalid database")
+ end
+ else
+ context("something went wrong, no database specified")
+ end
+ else
+ context("you need lmtx")
+ end
+
+\stopluacode
+
+\stoptext
+
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mtx-context-setters.tex b/Master/texmf-dist/tex/context/base/mkiv/mtx-context-setters.tex
new file mode 100644
index 00000000000..c90c385c586
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/mtx-context-setters.tex
@@ -0,0 +1,35 @@
+%D \module
+%D [ file=mtx-context-setters,
+%D version=0000.00.00,
+%D title=\CONTEXT\ Extra Trickry,
+%D subtitle=Show Trackers,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% begin help
+%
+% usage: context --extra=setters [--pattern=] [trackers|directives|experiments]
+%
+% --pattern : filter by pattern
+% --trackers : show trackers
+% --directives : show directives
+% --experiments : show experiments
+%
+% end help
+
+\starttext
+
+\doifdocumentargument {trackers} { \ctxlua {trackers .show(environment.arguments.pattern) } }
+\doifdocumentargument {directives} { \ctxlua {directives .show(environment.arguments.pattern) } }
+\doifdocumentargument {experiments} { \ctxlua {experiments.show(environment.arguments.pattern) } }
+\doifdocumentargument {showtrackers} { \ctxlua {trackers .show(environment.arguments.pattern) } }
+\doifdocumentargument {showdirectives} { \ctxlua {directives .show(environment.arguments.pattern) } }
+\doifdocumentargument {showexperiments} { \ctxlua {experiments.show(environment.arguments.pattern) } }
+
+\stoptext
+
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-aux.mkiv b/Master/texmf-dist/tex/context/base/mkiv/mult-aux.mkiv
index d7921bcc290..5992ed39f5e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-aux.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-aux.mkiv
@@ -656,11 +656,11 @@
\installparametersethandler {#1}{#2}%
\installrootparameterhandler{#1}{#2}}
-\protected\def\installbasicautosetuphandler#1#2#3% \??self name \??parent (can be \??self)
+\protected\def\installbasicautosetuphandler#1#2% \??self name \??parent (can be \??self)
{\installbasicparameterhandler{#1}{#2}%
\installautosetuphandler {#1}{#2}}
-\protected\def\installstylisticautosetuphandler#1#2#3% \??self name \??parent (can be \??self)
+\protected\def\installstylisticautosetuphandler#1#2% \??self name \??parent (can be \??self)
{\installbasicparameterhandler{#1}{#2}%
\installautosetuphandler {#1}{#2}%
\installstyleandcolorhandler {#1}{#2}}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-def.lua b/Master/texmf-dist/tex/context/base/mkiv/mult-def.lua
index 0f2ef419c17..4ac85137108 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-def.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-def.lua
@@ -7,7 +7,11 @@ if not modules then modules = { } end modules ['mult-def'] = {
dataonly = true,
}
--- we can remove some commands, like inleftmargin and so (see typo-mar.mkiv)
+-- We can remove some commands, like inleftmargin and so (see typo-mar.mkiv). Also,
+-- some keywords are unique for mkiv or lmtx so at some point we might split this
+-- file. On the other hand, it's a way to standardize.
+
+-- StartMovie and StartSound etc can go.
return {
["commands"]={
@@ -7271,6 +7275,62 @@ return {
["pe"]="بنویس‌درثبت",
["ro"]="scrieinregistru",
},
+ -- we still need to add some new ones here as i completely forgot that it's
+ -- needed ... maybe ws has a backlog for setups that we can use
+ ["definesavebuffer"]={
+ ["en"]="startsavebuffer",
+ },
+ ["startnamedtyping"]={
+ ["en"]="startnamedtyping",
+ },
+ ["stopnamedtyping"]={
+ ["en"]="stopnamedtyping",
+ },
+ ["namedconstruction"]={
+ ["en"]="namedconstruction",
+ },
+ ["startnamedconstruction"]={
+ ["en"]="startnamedconstruction",
+ },
+ ["stopnamedconstruction"]={
+ ["en"]="stopnamedconstruction",
+ },
+ ["nameddescription"]={
+ ["en"]="nameddescription",
+ },
+ ["startnameddescription"]={
+ ["en"]="startnameddescription",
+ },
+ ["stopnameddescription"]={
+ ["en"]="stopnameddescription",
+ },
+ ["namedenumeration"]={
+ ["en"]="namedenumeration",
+ },
+ ["startnamedenumeration"]={
+ ["en"]="startnamedenumeration",
+ },
+ ["stopnamedenumeration"]={
+ ["en"]="stopnamedenumeration",
+ },
+ ["startnamedsection"]={
+ ["en"]="startnamedsection",
+ },
+ ["stopnamedsection"]={
+ ["en"]="stopnamedsection",
+ },
+ ["startnamedmatrix"]={
+ ["en"]="startnamedmatrix",
+ },
+ ["stopnamedmatrix"]={
+ ["en"]="stopnamedmatrix",
+ },
+ ["startnamedsubformulas"]={
+ ["en"]="startnamedsubformulas",
+ },
+ ["stopnamedsubformulas"]={
+ ["en"]="stopnamedsubformulas",
+ },
},
["constants"]={
["action"]={
@@ -7283,6 +7343,12 @@ return {
["pe"]="کنش",
["ro"]="actiune",
},
+ ["adaptive"]={
+ ["en"]="adaptive",
+ },
+ ["freezespacing"]={
+ ["en"]="freezespacing",
+ },
["address"]={
["cs"]="adresa",
["de"]="adresse",
@@ -7342,6 +7408,12 @@ return {
["en"]="alignbottom",
["fr"]="alignerbas",
},
+ ["topalign"]={
+ ["en"]="topalign",
+ },
+ ["bottomalign"]={
+ ["en"]="bottomalign",
+ },
["aligncharacter"]={
["cs"]="aligncharacter",
["de"]="aligncharacter",
@@ -7562,6 +7634,22 @@ return {
["pe"]="عرض‌خودکار",
["ro"]="autolatime",
},
+ ["autopunctuation"]={
+ ["en"]="autopunctuation",
+ ["fr"]="autoponctuation",
+ },
+ ["autospacing"]={
+ ["en"]="autospacing",
+ ["fr"]="autospacing",
+ },
+ ["autofencing"]={
+ ["en"]="autofencing",
+ ["fr"]="autofencing",
+ },
+ ["autonumbers"]={
+ ["en"]="autonumbers",
+ ["fr"]="autonumbers",
+ },
["availableheight"]={
["en"]="availableheight",
["fr"]="hauteurdisponible",
@@ -7821,6 +7909,10 @@ return {
["fr"]="commandebas",
["nl"]="ondercommando",
},
+ ["bottomcolor"]={
+ ["en"]="bottomcolor",
+ ["nl"]="onderkleur",
+ },
["bottomdistance"]={
["cs"]="vzdalenostspodku",
["de"]="abstandunten",
@@ -8264,6 +8356,10 @@ return {
["pe"]="criterium",
["ro"]="criteriu",
},
+ ["crop"]={
+ ["en"]="crop",
+ ["fr"]="recadre",
+ },
["cropoffset"]={
["en"]="cropoffset",
["fr"]="decalagerecadre",
@@ -9159,6 +9255,10 @@ return {
["fr"]="separateurtete",
["nl"]="kopscheider",
},
+ ["headindenting"]={
+ ["en"]="headindenting",
+ ["nl"]="kopinspringen",
+ },
["headstyle"]={
["cs"]="stylhlavicky",
["de"]="kopfstil",
@@ -9385,6 +9485,10 @@ return {
["en"]="instance",
["fr"]="instance",
},
+ ["integral"]={
+ ["en"]="integral",
+ ["fr"]="integrale",
+ },
["intent"]={
["en"]="intent",
["fr"]="intention",
@@ -9972,6 +10076,15 @@ return {
["en"]="mathclass",
["fr"]="classemath",
},
+ ["leftclass"]={
+ ["en"]="leftclass",
+ },
+ ["rightclass"]={
+ ["en"]="rightclass",
+ },
+ ["middleclass"]={
+ ["en"]="middleclass",
+ },
["mathlimits"]={
["en"]="mathlimits",
["fr"]="limitesmath",
@@ -9980,6 +10093,12 @@ return {
["en"]="mathstyle",
["fr"]="stylemath",
},
+ ["mathnumeratorstyle"]={
+ ["en"]="mathnumeratorstyle",
+ },
+ ["mathdenominatorstyle"]={
+ ["en"]="mathdenominatorstyle",
+ },
["max"]={
["cs"]="max",
["de"]="max",
@@ -10381,6 +10500,9 @@ return {
["pe"]="فاصله‌شماره",
["ro"]="numberdistance",
},
+ ["numberthreshold"]={
+ ["en"]="numberthreshold",
+ },
["numbering"]={
["cs"]="cislovani",
["de"]="nummerierung",
@@ -10395,6 +10517,10 @@ return {
["en"]="numberorder",
["fr"]="ordrenumero",
},
+ ["numberlocation"]=
+ {
+ ["en"]="numberlocation",
+ },
["numberprefix"]={
["en"]="numberprefix",
["fr"]="prefixenumero",
@@ -10805,6 +10931,9 @@ return {
["pe"]="پاراگراف",
["ro"]="paragraf",
},
+ ["penalties"]={
+ ["en"]="penalties",
+ },
["period"]={
["en"]="period",
["fr"]="periode",
@@ -11653,6 +11782,12 @@ return {
["en"]="smallcapsfont",
["fr"]="policepetitescaps",
},
+ ["snap"]={
+ ["en"]="snap",
+ },
+ ["snapstep"]={
+ ["en"]="snapstep",
+ },
["solution"]={
["en"]="solution",
["fr"]="solution",
@@ -11806,6 +11941,10 @@ return {
["pe"]="توده",
["ro"]="stack",
},
+ ["stacking"]={
+ ["en"]="stacking",
+ ["nl"]="stapels",
+ },
["stackname"]={
["en"]="stackname",
["fr"]="nompile",
@@ -11957,6 +12096,9 @@ return {
["en"]="surnamesep",
["fr"]="seprenom",
},
+ ["synchronize"]={
+ ["en"]="synchronize",
+ },
["svgstyle"]={
["en"]="svgstyle",
["fr"]="stylesvg",
@@ -12099,6 +12241,10 @@ return {
["en"]="textalign",
["fr"]="alignertexte",
},
+ ["textalternative"]={
+ ["en"]="textalternative",
+ ["nl"]="tekstvariant",
+ },
["textcolor"]={
["cs"]="barvatextu",
["de"]="textfarbe",
@@ -12159,6 +12305,10 @@ return {
["pe"]="حاشیه‌متن",
["ro"]="textmargin",
},
+ ["numbermethod"]={
+ ["en"]="numbermethod",
+ ["nl"]="nummermethode",
+ },
["textmethod"]={
["cs"]="textmethod",
["de"]="textmethod",
@@ -12342,6 +12492,10 @@ return {
["fr"]="commandehaut",
["nl"]="bovencommando",
},
+ ["topcolor"]={
+ ["en"]="topcolor",
+ ["nl"]="bovenkleur",
+ },
["topdistance"]={
["cs"]="vzdalenostvrsku",
["de"]="obenabstand",
@@ -12721,6 +12875,21 @@ return {
["pe"]="گام‌وای",
["ro"]="ystep",
},
+ ["leftsource"]={
+ ["en"]="leftsource",
+ },
+ ["rightsource"]={
+ ["en"]="rightsource",
+ },
+ ["middlesource"]={
+ ["en"]="middlesource",
+ },
+ ["source"]={
+ ["en"]="source",
+ },
+ ["target"]={
+ ["en"]="target",
+ },
},
["elements"]={
["answerlines"]={
@@ -12873,6 +13042,12 @@ return {
["pe"]="آرایش",
["ro"]="makeup",
},
+ ["namedtyping"]={
+ ["en"]="namedtyping",
+ },
+ ["namednotation"]={
+ ["en"]="namednotation",
+ },
["next"]={
["cs"]="dalsi",
["de"]="folgende",
@@ -14491,6 +14666,12 @@ return {
["pe"]="answerarea",
["ro"]="answerarea",
},
+ ["append"]={
+ ["en"]="append",
+ },
+ ["prepend"]={
+ ["en"]="prepend",
+ },
["appendices"]={
["cs"]="dodatky",
["de"]="anhaenge",
@@ -14609,10 +14790,6 @@ return {
["pe"]="پیشگفتارخودکار",
["ro"]="autointro",
},
- ["autopunctuation"]={
- ["en"]="autopunctuation",
- ["fr"]="autoponctuation",
- },
["back"]={
["cs"]="zpet",
["de"]="zurueck",
@@ -15311,6 +15488,10 @@ return {
["pe"]="eight",
["ro"]="eight",
},
+ ["compress"]={
+ ["en"]="compress",
+ ["nl"]="comprimeer",
+ },
["embed"]={
["en"]="embed",
["fr"]="integrer",
@@ -15562,6 +15743,12 @@ return {
["pe"]="شناور",
["ro"]="obiectmobil",
},
+ ["flushforward"]={
+ ["en"]="flushforward",
+ },
+ ["flushbackward"]={
+ ["en"]="flushbackward",
+ },
["flushinner"]={
["cs"]="flushinner",
["de"]="flushinner",
@@ -15979,6 +16166,9 @@ return {
["pe"]="افقی",
["ro"]="orizontal",
},
+ ["collapsed"]={
+ ["en"]="collapsed",
+ },
["hyphenated"]={
["cs"]="hyphenated",
["de"]="hyphenate",
@@ -16189,10 +16379,6 @@ return {
["pe"]="درحاشیه‌راست",
["ro"]="inmargineadreapta",
},
- ["integral"]={
- ["en"]="integral",
- ["fr"]="integrale",
- },
["interaction"]={
["cs"]="interakce",
["de"]="interaktion",
@@ -16360,6 +16546,10 @@ return {
["pe"]="نگهدار",
["ro"]="mentine",
},
+ ["keeptogether"]={
+ ["en"]="keeptogether",
+ ["fr"]="conserverensemble",
+ },
["kerncharacters"]={
["en"]="kerncharacters",
["fr"]="approchercaracteres",
@@ -16494,6 +16684,16 @@ return {
["pe"]="حاشیه‌چپ",
["ro"]="marginestanga",
},
+ ["lefttext"]={
+ ["cs"]="textvlevo",
+ ["de"]="linkertext",
+ ["en"]="lefttext",
+ ["fr"]="textegauche",
+ ["it"]="testosinistro",
+ ["nl"]="linkertekst",
+ ["pe"]="متن‌چپ",
+ ["ro"]="textstanga",
+ },
["leftpage"]={
["cs"]="levastranka",
["de"]="linkerseite",
@@ -17235,6 +17435,12 @@ return {
["pe"]="بدون‌آویزان‌کردن",
["ro"]="nothanging",
},
+ ["explicit"]={
+ ["en"]="explicit",
+ },
+ ["notcollapsed"]={
+ ["en"]="notcollapsed",
+ },
["nothyphenated"]={
["cs"]="nothyphenated",
["de"]="nothyphenated",
@@ -17688,6 +17894,10 @@ return {
["pe"]="محصول",
["ro"]="produs",
},
+ ["profile"]={
+ ["en"]="profile",
+ ["fr"]="profil",
+ },
["program"]={
["cs"]="program",
["de"]="programm",
@@ -17938,6 +18148,16 @@ return {
["pe"]="صفحه‌راست",
["ro"]="paginadreapta",
},
+ ["righttext"]={
+ ["cs"]="textvpravo",
+ ["de"]="rechtertext",
+ ["en"]="righttext",
+ ["fr"]="textedroite",
+ ["it"]="testodestro",
+ ["nl"]="rechtertekst",
+ ["pe"]="متن‌راست",
+ ["ro"]="textdreapta",
+ },
["righttoleft"]={
["cs"]="righttoleft",
["de"]="righttoleft",
@@ -18983,6 +19203,9 @@ return {
["pe"]="متن",
["ro"]="text",
},
+ ["textdisplay"]={
+ ["en"]="textdisplay",
+ },
["textnote"]={
["en"]="textnote",
["fr"]="notetexte",
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-fmt.lua b/Master/texmf-dist/tex/context/base/mkiv/mult-fmt.lua
index 0d11a425333..bbcdfd343f4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-fmt.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-fmt.lua
@@ -11,12 +11,12 @@ local concat, sortedhash = table.concat, table.sortedhash
local sub, formatters = string.sub, string.formatters
local utfsplit = utf.split
-local prtcatcodes = catcodes.numbers.prtcatcodes
-local contextsprint = context.sprint
-local implement = interfaces.implement
+local prtcatcodes = catcodes.numbers.prtcatcodes
+local contextsprint = context.sprint
+local implement = interfaces.implement
-local setmacro = token.set_macro
-local definedmacro = token.is_defined
+local setmacro = token.setmacro or token.set_macro
+local definedmacro = token.isdefined or token.is_defined
local report = logs.reporter("interface")
local report_interface = logs.reporter("interface","initialization")
@@ -217,9 +217,9 @@ function interfaces.setuserinterface(interface,response)
constant = constant[interface] or constant.en or given
constants[constant] = given -- breedte -> width
nofconstants = nofconstants + 1
- setmacro("c!" .. given,given,"immutable")
+ setmacro("c!" .. given,given,"immutable","constant")
if reversetoo then
- setmacro("k!" .. constant,given,"immutable")
+ setmacro("k!" .. constant,given,"immutable","constant")
end
report_constant("%-40s: %s",given,constant)
end
@@ -232,7 +232,7 @@ function interfaces.setuserinterface(interface,response)
variable = variable[interface] or variable.en or given
variables[given] = variable -- ja -> yes
nofvariables = nofvariables + 1
- setmacro("v!" .. given,variable,"immutable")
+ setmacro("v!" .. given,variable,"immutable","constant")
report_variable("%-40s: %s",given,variable)
end
logs.stopfilelogging()
@@ -244,7 +244,7 @@ function interfaces.setuserinterface(interface,response)
element = element[interface] or element.en or given
elements[element] = given
nofelements = nofelements + 1
- setmacro("e!" .. given,element,"immutable")
+ setmacro("e!" .. given,element,"immutable","constant")
report_element("%-40s: %s",given,element)
end
logs.stopfilelogging()
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-fun.lua b/Master/texmf-dist/tex/context/base/mkiv/mult-fun.lua
index 4ecbb1abdf4..0926b5d1287 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-fun.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-fun.lua
@@ -16,7 +16,7 @@ return {
"maxdimensions",
"drawoptionsfactor",
"dq", "sq",
- "crossingscale", "crossingoption",
+ "crossingscale", "crossingoption", "crossingdebug",
"contextlmtxmode", "metafunversion", "minifunversion",
--
-- for the moment we put these here as they need to stand out
@@ -34,9 +34,22 @@ return {
"getparametertext",
-- "getparameteroption",
"applyparameters",
+ "mergeparameters",
"pushparameters",
"popparameters",
+ "setluaparameter",
"definecolor",
+ --
+ "record", "newrecord", "setrecord", "getrecord", "cntrecord",
+ --
+ "anchorxy", "anchorx", "anchory",
+ "anchorht", "anchordp",
+ "anchorul", "anchorll", "anchorlr", "anchorur",
+ "localanchorbox", "localanchorcell", "localanchorspan",
+ "anchorbox", "anchorcell", "anchorspan",
+ "matrixbox", "matrixcell", "matrixspan",
+ --
+ "pensilcolor", "pensilstep",
},
commands = {
"loadfile", "loadimage", "loadmodule",
@@ -48,6 +61,7 @@ return {
"zmod",
"paired", "tripled",
"unitcircle", "fulldiamond", "unitdiamond", "fullsquare", "unittriangle", "fulltriangle",
+ "unitoctagon", "fulloctagon", "unithexagon", "fullhexagon",
-- "halfcircle", "quartercircle",
"llcircle", "lrcircle", "urcircle", "ulcircle",
"tcircle", "bcircle", "lcircle", "rcircle",
@@ -72,7 +86,7 @@ return {
-- "withshading", "withlinearshading", "withcircularshading", "withfromshadecolor", "withtoshadecolor",
"shadedinto", "withshadecolors",
"withshadedomain", "withshademethod", "withshadefactor", "withshadevector",
- "withshadecenter", "withshadedirection", "withshaderadius", "withshadetransform",
+ "withshadecenter", "withshadedirection", "withshaderadius", "withshadetransform", "withshadecenterone", "withshadecentertwo",
"withshadestep", "withshadefraction", "withshadeorigin", "shownshadevector", "shownshadeorigin",
"shownshadedirection", "shownshadecenter",
"cmyk", "spotcolor", "multitonecolor", "namedcolor",
@@ -85,7 +99,7 @@ return {
"checkedbounds", "checkbounds", "strut", "rule",
"withmask", "bitmapimage",
"colordecimals", "ddecimal", "dddecimal", "ddddecimal", "colordecimalslist",
- "textext", "thetextext", "rawtextext", "textextoffset", "texbox", "thetexbox", "rawtexbox", "istextext",
+ "textext", "thetextext", "rawtextext", "textextoffset", "texbox", "thetexbox", "rawtexbox", "istextext", "infotext",
"rawmadetext", "validtexbox", "onetimetextext", "rawfmttext", "thefmttext", "fmttext", "onetimefmttext",
"notcached", "keepcached",
"verbatim",
@@ -94,6 +108,7 @@ return {
"transparent", "withtransparency", "withopacity",
"property", "properties", "withproperties",
"asgroup",
+ "withpattern", "withpatternscale", "withpatternfloat",
"infont", -- redefined using textext
-- "set_linear_vector", "set_circular_vector",
-- "linear_shade", "circular_shade",
@@ -104,7 +119,8 @@ return {
"grayscale", "greyscale", "withgray", "withgrey",
"colorpart", "colorlike",
"readfile",
- "clearxy", "unitvector", "center", -- redefined
+ "clearxy", "unitvector",
+ "center", -- redefined
"epsed", "anchored",
"originpath", "infinite",
"break",
@@ -158,7 +174,7 @@ return {
"passvariable", "passarrayvariable", "tostring", "topair", "format", "formatted", "quotation", "quote",
"startpassingvariable", "stoppassingvariable",
--
- "eofill", "eoclip", "nofill", "dofill", "fillup", "eofillup", "nodraw", "dodraw",
+ "eofill", "eoclip", "nofill", "dofill", "fillup", "eofillup", "nodraw", "dodraw", "enfill",
"area",
--
"addbackground",
@@ -178,9 +194,17 @@ return {
"setmacro", "setdimen", "setcount", "settoks",
"setglobalmacro", "setglobaldimen", "setglobalcount", "setglobaltoks",
--
- "positionpath", "positioncurve", "positionxy", "positionpxy",
- "positionwhd", "positionpage", "positionregion", "positionbox",
+ "positionpath", "positioncurve", "positionxy", "positionparagraph", "positioncolumn",
+ "positionwhd", "positionpage", "positionregion", "positionbox", "positionx", "positiony",
"positionanchor", "positioninregion", "positionatanchor",
+ "positioncolumnbox", "overlaycolumnbox", "positioncolumnatx",
+ --
+ "getposboxes", "getmultipars",
+ "getpospage", "getposparagraph", "getposcolumn", "getposregion",
+ "getposx", "getposy", "getposwidth", "getposheight", "getposdepth",
+ "getposleftskip", "getposrightskip", "getposhsize", "getposparindent", "getposhangindent", "getposhangafter",
+ "getposxy", "getposupperleft", "getposlowerleft", "getposupperright", "getposlowerright",
+ "getposllx", "getposlly", "getposurx", "getposury",
--
"wdpart", "htpart", "dppart",
--
@@ -190,19 +214,30 @@ return {
--
"utfnum", "utflen", "utfsub",
--
- "newhash", "disposehash", "inhash", "tohash",
+ "newhash", "disposehash", "inhash", "tohash", "fromhash",
--
"isarray", "prefix", "isobject",
--
"comment", "report", "lua", "lualist", "mp", "MP", "luacall",
--
- "mirrored", "mirroredabout",
+ "mirrored", "mirroredabout", "xslanted", "yslanted",
--
"scriptindex", "newscriptindex",
--
"newcolor", "newrgbcolor", "newcmykcolor",
"newnumeric", "newboolean", "newtransform", "newpath", "newpicture", "newstring", "newpair",
-
- "mpvar",
+ --
+ "mpvard", "mpvarn", "mpvars", "mpvar",
+ --
+ "withtolerance",
+ --
+ "hatched", "withdashes",
+ "processpath", "pencilled",
+ "sortedintersectiontimes", "intersectionpath", "firstintersectionpath", "secondintersectionpath",
+ "intersectionsfound", "cutbeforefirst", "cutafterfirst", "cutbeforelast", "cutafterlast",
+ --
+ "xnormalized", "ynormalized", "xynormalized",
+ "phantom",
+ "scrutinized",
},
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-low.lua b/Master/texmf-dist/tex/context/base/mkiv/mult-low.lua
index a893d455c1f..686fbfb7aba 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-low.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-low.lua
@@ -14,13 +14,16 @@ return {
"zerocount", "minusone", "minustwo", "plusone", "plustwo", "plusthree", "plusfour", "plusfive",
"plussix", "plusseven", "pluseight", "plusnine", "plusten", "pluseleven", "plustwelve", "plussixteen",
"plusfifty", "plushundred", "plusonehundred", "plustwohundred", "plusfivehundred",
- "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone",
+ "plusthousand", "plustenthousand", "plustwentythousand", "medcard", "maxcard", "maxcardminusone", "maxiterator",
"zeropoint", "onepoint", "halfapoint", "onebasepoint", "maxcount", "maxdimen", "scaledpoint", "thousandpoint",
"points", "halfpoint",
- "zeroskip",
+ "zeroskip", "centeringskip", "stretchingskip", "shrinkingskip",
+ "centeringfillskip", "stretchingfillskip", "shrinkingfillskip",
"zeromuskip", "onemuskip",
"pluscxxvii", "pluscxxviii", "pluscclv", "pluscclvi",
"normalpagebox",
+ "binaryshiftedten", "binaryshiftedtwenty", "binaryshiftedthirty",
+ "thickermuskip",
--
"directionlefttoright", "directionrighttoleft",
--
@@ -28,6 +31,8 @@ return {
--
"emptytoks", "empty", "undefined",
--
+ "prerollrun",
+ --
"voidbox", "emptybox", "emptyvbox", "emptyhbox",
--
"bigskipamount", "medskipamount", "smallskipamount",
@@ -61,7 +66,7 @@ return {
"tabasciicode", "newlineasciicode", "formfeedasciicode", "endoflineasciicode", "endoffileasciicode",
"commaasciicode", "spaceasciicode", "periodasciicode",
"hashasciicode", "dollarasciicode", "commentasciicode", "ampersandasciicode",
- "colonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode",
+ "colonasciicode", "semicolonasciicode", "backslashasciicode", "circumflexasciicode", "underscoreasciicode",
"leftbraceasciicode", "barasciicode", "rightbraceasciicode", "tildeasciicode", "delasciicode",
"leftparentasciicode", "rightparentasciicode",
"lessthanasciicode", "morethanasciicode", "doublecommentsignal",
@@ -69,12 +74,13 @@ return {
"doublequoteasciicode", "singlequoteasciicode", "forwardslashasciicode",
"primeasciicode", "hyphenasciicode", "percentasciicode", "leftbracketasciicode", "rightbracketasciicode",
--
- "frozenhsizecode", "frozenskipcode", "frozenhangcode", "frozenindentcode", "frozenparfillcode",
- "frozenadjustcode", "frozenprotrudecode", "frozentolerancecode", "frozenstretchcode",
- "frozenloosenesscode", "frozenlastlinecode", "frozenlinepenaltycode", "frozenclubpenaltycode",
- "frozenwidowpenaltycode", "frozendisplaypenaltycode", "frozenbrokenpenaltycode",
- "frozendemeritscode", "frozenshapecode", "frozenlinecode", "frozenhyphenationcode",
- "frozenallcode",
+ "hsizefrozenparcode", "skipfrozenparcode", "hangfrozenparcode", "indentfrozenparcode", "parfillfrozenparcode",
+ "adjustfrozenparcode", "protrudefrozenparcode", "tolerancefrozenparcode", "stretchfrozenparcode",
+ "loosenessfrozenparcode", "lastlinefrozenparcode", "linepenaltyfrozenparcode", "clubpenaltyfrozenparcode",
+ "widowpenaltyfrozenparcode", "displaypenaltyfrozenparcode", "brokenpenaltyfrozenparcode",
+ "demeritsfrozenparcode", "shapefrozenparcode", "linefrozenparcode", "hyphenationfrozenparcode",
+ "shapingpenaltyfrozenparcode", "orphanpenaltyfrozenparcode", "allfrozenparcode",
+ "mathpenaltyfrozenparcode",
--
"activemathcharcode",
--
@@ -85,17 +91,45 @@ return {
"bottomlevelgroupcode", "simplegroupcode", "hboxgroupcode", "adjustedhboxgroupcode", "vboxgroupcode",
"vtopgroupcode", "aligngroupcode", "noaligngroupcode", "outputgroupcode", "mathgroupcode",
"discretionarygroupcode", "insertgroupcode", "vadjustgroupcode", "vcentergroupcode", "mathabovegroupcode",
- "mathchoicegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode",
+ "mathchoicegroupcode", "alsosimplegroupcode", "semisimplegroupcode", "mathshiftgroupcode", "mathleftgroupcode",
"localboxgroupcode", "splitoffgroupcode", "splitkeepgroupcode", "preamblegroupcode",
"alignsetgroupcode", "finrowgroupcode", "discretionarygroupcode",
--
+ "markautomigrationcode", "insertautomigrationcode", "adjustautomigrationcode", "preautomigrationcode", "postautomigrationcode",
+ --
"charnodecode", "hlistnodecode", "vlistnodecode", "rulenodecode", "insertnodecode", "marknodecode",
"adjustnodecode", "ligaturenodecode", "discretionarynodecode", "whatsitnodecode", "mathnodecode",
"gluenodecode", "kernnodecode", "penaltynodecode", "unsetnodecode", "mathsnodecode",
--
- "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode",
- "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode",
- "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode",
+ -- "charifcode", "catifcode", "numifcode", "dimifcode", "oddifcode", "vmodeifcode", "hmodeifcode",
+ -- "mmodeifcode", "innerifcode", "voidifcode", "hboxifcode", "vboxifcode", "xifcode", "eofifcode",
+ -- "trueifcode", "falseifcode", "caseifcode", "definedifcode", "csnameifcode", "fontcharifcode",
+ --
+ "overrulemathcontrolcode", "underrulemathcontrolcode", "radicalrulemathcontrolcode", "fractionrulemathcontrolcode",
+ "accentskewhalfmathcontrolcode", "accentskewapplymathcontrolcode", "applyordinarykernpairmathcontrolcode",
+ "applyverticalitalickernmathcontrolcode", "applyordinaryitalickernmathcontrolcode", "applycharitalickernmathcontrolcode",
+ "reboxcharitalickernmathcontrolcode", "applyboxeditalickernmathcontrolcode", "staircasekernmathcontrolcode",
+ "applytextitalickernmathcontrolcode", "applyscriptitalickernmathcontrolcode",
+ "checkspaceitalickernmathcontrolcode", "checktextitalickernmathcontrolcode",
+ "analyzescriptnucleuscharmathcontrolcode", "analyzescriptnucleuslistmathcontrolcode", "analyzescriptnucleusboxmathcontrolcode",
+ "accenttopskewwithoffsetmathcontrolcode", "ignorekerndimensionsmathcontrolcode", "ignoreflataccentsmathcontrolcode",
+ "extendaccentsmathcontrolcode", "extenddelimitersmathcontrolcode",
+ --
+ "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode",
+ "noleftkerningglyphoptioncode", "noleftligaturingglyphoptioncode", "norightkerningglyphoptioncode", "norightligaturingglyphoptioncode",
+ "noitaliccorrectionglyphoptioncode", "islargeoperatorglyphoptioncode", "hasitalicshapeglyphoptioncode",
+ --
+ "normalparcontextcode", "vmodeparcontextcode", "vboxparcontextcode", "vtopparcontextcode", "vcenterparcontextcode",
+ "vadjustparcontextcode", "insertparcontextcode", "outputparcontextcode", "alignparcontextcode",
+ "noalignparcontextcode", "spanparcontextcode", "resetparcontextcode",
+ --
+ "leftoriginlistanchorcode", "leftheightlistanchorcode", "leftdepthlistanchorcode",
+ "rightoriginlistanchorcode", "rightheightlistanchorcode", "rightdepthlistanchorcode",
+ "centeroriginlistanchorcode", "centerheightlistanchorcode", "centerdepthlistanchorcode",
+ "halfwaytotallistanchorcode", "halfwayheightlistanchorcode", "halfwaydepthlistanchorcode",
+ "halfwayleftlistanchorcode", "halfwayrightlistanchorcode",
+ --
+ "negatexlistsigncode", "negateylistsigncode", "negatelistsigncode",
--
"fontslantperpoint", "fontinterwordspace", "fontinterwordstretch", "fontinterwordshrink",
"fontexheight", "fontemwidth", "fontextraspace", "slantperpoint",
@@ -130,14 +164,21 @@ return {
--
"typescriptone", "typescripttwo", "typescriptthree", "mathsizesuffix",
--
- "mathordcode", "mathopcode", "mathbincode", "mathrelcode", "mathopencode", "mathclosecode",
- "mathpunctcode", "mathalphacode", "mathinnercode", "mathnothingcode", "mathlimopcode",
- "mathnolopcode", "mathboxcode", "mathchoicecode", "mathaccentcode", "mathradicalcode",
+ "mathordinarycode", "mathordcode", "mathoperatorcode", "mathopcode", "mathbinarycode", "mathbincode",
+ "mathrelationcode", "mathrelcode", "mathopencode", "mathclosecode", "mathpunctuationcode",
+ "mathpunctcode", "mathovercode", "mathundercode", "mathinnercode", "mathradicalcode",
+ "mathfractioncode", "mathmiddlecode", "mathaccentcode", "mathfencedcode", "mathghostcode",
+ "mathvariablecode", "mathactivecode", "mathvcentercode", "mathconstructcode", "mathwrappedcode",
+ "mathbegincode", "mathendcode", "mathexplicitcode", "mathdivisioncode", "mathfactorialcode",
+ "mathdimensioncode", "mathexperimentalcode", "mathtextpunctuationcode",
+ "mathimaginarycode", "mathdifferentialcode", "mathexponentialcode", "mathellipsiscode", "mathfunctioncode", "mathdigitcode",
+ -- "mathtopaccentcode", "mathbottomaccentcode", "mathdelimitercode", "mathrootcode", "mathprintcode", --
+ "mathalphacode", "mathboxcode", "mathchoicecode", "mathnothingcode", "mathlimopcode", "mathnolopcode",
+ "mathunsetcode", "mathunspacedcode", "mathallcode", "mathfakecode", "mathunarycode",
+ "mathmaybeordinarycode", "mathmayberelationcode", "mathmaybebinarycode", "mathnumbergroupcode",
--
"constantnumber", "constantnumberargument", "constantdimen", "constantdimenargument", "constantemptyargument",
--
- "continueifinputfile",
- --
"luastringsep", "!!bs", "!!es",
--
"lefttorightmark", "righttoleftmark", "lrm", "rlm",
@@ -148,9 +189,9 @@ return {
"twoperemspace", "threeperemspace", "fourperemspace", "fiveperemspace", "sixperemspace",
"figurespace", "punctuationspace", "hairspace", "enquad", "emquad",
"zerowidthspace", "zerowidthnonjoiner", "zerowidthjoiner", "zwnj", "zwj",
- "optionalspace", "asciispacechar", "softhyphen",
+ "optionalspace", "asciispacechar", "softhyphen", "autoinsertedspace",
--
- "Ux", "eUx", "Umathaccents",
+ "Ux", "eUx",
--
"parfillleftskip", "parfillrightskip",
--
@@ -158,22 +199,42 @@ return {
--
"wildcardsymbol",
--
- "normalhyphenationmodecode", "automatichyphenationmodecode", "explicithyphenationmodecode",
- "syllablehyphenationmodecode", "uppercasehyphenationmodecode", "completehyphenationmodecode",
- "compoundhyphenationmodecode", "strictstarthyphenationmodecode", "strictendhyphenationmodecode",
- "automaticpenaltyhyphenationmodecode", "explicitpenaltyhyphenationmodecode",
- "permitgluehyphenationmodecode", "permitallhyphenationmodecode", "permitmathreplacehyphenationmodecode",
- "forcecheckhyphenationmodecode", "lazyligatureshyphenationmodecode",
+ "normalhyphenationcode", "automatichyphenationcode", "explicithyphenationcode", "syllablehyphenationcode", "uppercasehyphenationcode",
+ "collapsehyphenationcode", "compoundhyphenationcode", "strictstarthyphenationcode", "strictendhyphenationcode",
+ "automaticpenaltyhyphenationcode", "explicitpenaltyhyphenationcode", "permitgluehyphenationcode", "permitallhyphenationcode",
+ "permitmathreplacehyphenationcode", "forcecheckhyphenationcode", "lazyligatureshyphenationcode", "forcehandlerhyphenationcode",
+ "feedbackcompoundhyphenationcode", "ignoreboundshyphenationcode", "partialhyphenationcode", "completehyphenationcode",
+ --
+ "normalizelinenormalizecode", "parindentskipnormalizecode", "swaphangindentnormalizecode", "swapparsshapenormalizecode",
+ "breakafterdirnormalizecode", "removemarginkernsnormalizecode", "clipwidthnormalizecode", "flattendiscretionariesnormalizecode",
+ "discardzerotabskipsnormalizecode", "flattenhleadersnormalizecode",
+ --
+ "normalizeparnormalizeparcode", "flattenvleadersnormalizeparcode",
+ --
+ "nopreslackclassoptioncode", "nopostslackclassoptioncode",
+ "lefttopkernclassoptioncode", "righttopkernclassoptioncode", "leftbottomkernclassoptioncode", "rightbottomkernclassoptioncode",
+ "lookaheadforendclassoptioncode", "noitaliccorrectionclassoptioncode", "defaultmathclassoptions",
+ -- "openfenceclassoptioncode", "closefenceclassoptioncode", "middlefenceclassoptioncode",
+ "checkligatureclassoptioncode", "checkitaliccorrectionclassoptioncode", "checkkernpairclassoptioncode",
+ "flattenclassoptioncode", "omitpenaltyclassoptioncode", "unpackclassoptioncode", "raiseprimeclassoptioncode",
+ "carryoverlefttopkernclassoptioncode", "carryoverleftbottomkernclassoptioncode", "carryoverrighttopkernclassoptioncode", "carryoverrightbottomkernclassoptioncode",
+ "preferdelimiterdimensionsclassoptioncode", "autoinjectclassoptioncode", "removeitaliccorrectionclassoptioncode",
+ "operatoritaliccorrectionclassoptioncode",
--
- "normalizelinecode", "parindentskipcode", "swaphangindentcode", "swapparsshapecode", "breakafterdircode", "removemarginkernscode", "clipwidthcode",
+ "noligaturingglyphoptioncode", "nokerningglyphoptioncode", "noleftligatureglyphoptioncode",
+ "noleftkernglyphoptioncode", "norightligatureglyphoptioncode", "norightkernglyphoptioncode",
+ "noexpansionglyphoptioncode", "noprotrusionglyphoptioncode", "noitaliccorrectionglyphoptioncode",
+ -- extras:
+ "nokerningcode", "noligaturingcode",
--
- "noligaturingcode", "nokerningcode", "noleftligaturecode", "noleftkerncode", "norightligaturecode", "norightkerncode",
- "noexpansioncode", "noprotrusioncode",
+ "frozenflagcode", "tolerantflagcode", "protectedflagcode", "primitiveflagcode", "permanentflagcode", "noalignedflagcode", "immutableflagcode",
+ "mutableflagcode", "globalflagcode", "overloadedflagcode", "immediateflagcode", "conditionalflagcode", "valueflagcode", "instanceflagcode",
--
- "frozenflagcode", "tolerantflagcode", "protectedflagcode", "primitiveflagcode", "permanentflagcode", "noalignedflagcode", "immutableflagcode", "mutableflagcode",
- "globalflagcode", "overloadedflagcode", "immediateflagcode", "conditionalflagcode", "valueflagcode", "instanceflagcode",
+ "ordmathflattencode", "binmathflattencode", "relmathflattencode", "punctmathflattencode", "innermathflattencode",
--
- "continuewhenlmtxmode"
+ "normalworddiscoptioncode", "preworddiscoptioncode", "postworddiscoptioncode",
+ --
+ "continueifinputfile", "continuewhenlmtxmode", "continuewhenmkivmode",
},
["helpers"] = {
--
@@ -201,6 +262,9 @@ return {
"newcount", "newdimen", "newskip", "newmuskip", "newbox", "newtoks", "newread", "newwrite", "newmarks", "newinsert", "newattribute", "newif",
"newlanguage", "newfamily", "newfam", "newhelp", -- not used
--
+ "newinteger", "newdimension", "newgluespec", "newmugluespec",
+ "aliasinteger", "aliasdimension",
+ --
"then",
"begcsname",
--
@@ -221,11 +285,12 @@ return {
--
"doglobal", "dodoglobal", "redoglobal", "resetglobal",
--
- "donothing", "dontcomplain", "forgetall",
+ "donothing", "untraceddonothing", "dontcomplain", "moreboxtracing", "lessboxtracing", "noboxtracing", "forgetall",
--
"donetrue", "donefalse", "foundtrue", "foundfalse",
--
- "inlineordisplaymath","indisplaymath","forcedisplaymath","startforceddisplaymath","stopforceddisplaymath","startpickupmath","stoppickupmath","reqno",
+ "inlineordisplaymath", "indisplaymath", "forcedisplaymath", "startforceddisplaymath", "stopforceddisplaymath",
+ "startpickupmath", "stoppickupmath", "reqno", "forceinlinemath",
--
"mathortext",
--
@@ -243,10 +308,13 @@ return {
--
"hglue", "vglue", "hfillneg", "vfillneg", "hfilllneg", "vfilllneg",
--
+ "hsplit",
+ --
"ruledhss", "ruledhfil", "ruledhfill", "ruledhfilll", "ruledhfilneg", "ruledhfillneg", "normalhfillneg", "normalhfilllneg",
"ruledvss", "ruledvfil", "ruledvfill", "ruledvfilll", "ruledvfilneg", "ruledvfillneg", "normalvfillneg", "normalvfilllneg",
- "ruledhbox", "ruledvbox", "ruledvtop", "ruledvcenter", "ruledmbox",
- "ruledhpack", "ruledvpack", "ruledtpack",
+ "ruledhbox", "ruledvbox", "ruledvtop", "ruleddbox", "ruledvcenter", "ruledmbox",
+ "ruledhpack", "ruledvpack", "ruledtpack", "ruleddpack",
+ "ruledvsplit", "ruledtsplit", "ruleddsplit",
"ruledhskip", "ruledvskip", "ruledkern", "ruledmskip", "ruledmkern",
"ruledhglue", "ruledvglue", "normalhglue", "normalvglue",
"ruledpenalty",
@@ -270,7 +338,9 @@ return {
--
"groupedcommand", "groupedcommandcs",
"triggergroupedcommand", "triggergroupedcommandcs",
- "simplegroupedcommand", "pickupgroupedcommand",
+ "simplegroupedcommand", "simplegroupedcommandcs",
+ "pickupgroupedcommand", "pickupgroupedcommandcs",
+ "mathgroupedcommandcs",
--
"usedbaselineskip", "usedlineskip", "usedlineskiplimit",
--
@@ -283,7 +353,7 @@ return {
--
"givenwidth", "givenheight", "givendepth", "scangivendimensions",
--
- "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchtotal",
+ "scratchwidth", "scratchheight", "scratchdepth", "scratchoffset", "scratchdistance", "scratchtotal", "scratchitalic",
"scratchhsize", "scratchvsize",
"scratchxoffset", "scratchyoffset", "scratchhoffset", "scratchvoffset",
"scratchxposition", "scratchyposition",
@@ -333,7 +403,7 @@ return {
--
"quitcondition", "truecondition", "falsecondition",
--
- "tracingall", "tracingnone", "loggingall",
+ "tracingall", "tracingnone", "loggingall", "tracingcatcodes",
"showluatokens",
--
"aliasmacro",
@@ -372,7 +442,8 @@ return {
--
"getparameters", "geteparameters", "getgparameters", "getxparameters", "forgetparameters", "copyparameters",
--
- "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter", "setexpandeddummyparameter",
+ "getdummyparameters", "dummyparameter", "directdummyparameter", "setdummyparameter", "letdummyparameter",
+ "setexpandeddummyparameter", "resetdummyparameter",
"usedummystyleandcolor", "usedummystyleparameter", "usedummycolorparameter",
--
"processcommalist", "processcommacommand", "quitcommalist", "quitprevcommalist",
@@ -400,8 +471,7 @@ return {
"newconstant", "setnewconstant", "setconstant", "setconstantvalue",
"newconditional", "settrue", "setfalse", "settruevalue", "setfalsevalue", "setconditional",
--
- "newmacro", "setnewmacro", "newfraction",
- "newsignal",
+ "newmacro", "setnewmacro", "newfraction", "newsignal", "newboundary",
--
"dosingleempty", "dodoubleempty", "dotripleempty", "doquadrupleempty", "doquintupleempty", "dosixtupleempty", "doseventupleempty",
"dosingleargument", "dodoubleargument", "dotripleargument", "doquadrupleargument", "doquintupleargument", "dosixtupleargument", "doseventupleargument",
@@ -414,6 +484,8 @@ return {
--
"getfirstcharacter", "doifelsefirstchar", "doiffirstcharelse",
--
+ "mathclassvalue",
+ --
"startnointerference", "stopnointerference",
--
"twodigits","threedigits",
@@ -425,42 +497,68 @@ return {
"strut", "halfstrut", "quarterstrut", "depthstrut", "halflinestrut", "noheightstrut", "setstrut", "strutbox", "strutht", "strutdp", "strutwd", "struthtdp", "strutgap", "begstrut", "endstrut", "lineheight",
"leftboundary", "rightboundary", "signalcharacter",
--
- "shiftbox", "vpackbox", "hpackbox", "vpackedbox", "hpackedbox",
- --
- "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing",
- "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing",
- --
- "opordspacing", "opopspacing", "opbinspacing", "oprelspacing",
- "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing",
- --
- "binordspacing", "binopspacing", "binbinspacing", "binrelspacing",
- "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing",
- --
- "relordspacing", "relopspacing", "relbinspacing", "relrelspacing",
- "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing",
- --
- "openordspacing", "openopspacing", "openbinspacing", "openrelspacing",
- "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing",
+ "aligncontentleft", "aligncontentmiddle", "aligncontentright",
--
- "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing",
- "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing",
- --
- "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing",
- "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing",
+ "shiftbox", "vpackbox", "hpackbox", "vpackedbox", "hpackedbox",
--
- "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing",
- "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing",
+ -- "ordordspacing", "ordopspacing", "ordbinspacing", "ordrelspacing",
+ -- "ordopenspacing", "ordclosespacing", "ordpunctspacing", "ordinnerspacing",
+ -- "ordfracspacing", "ordradspacing", "ordmiddlespacing", "ordaccentspacing",
+ -- --
+ -- "opordspacing", "opopspacing", "opbinspacing", "oprelspacing",
+ -- "opopenspacing", "opclosespacing", "oppunctspacing", "opinnerspacing",
+ -- "opfracspacing", "opradspacing", "opmiddlespacing", "opaccentspacing",
+ -- --
+ -- "binordspacing", "binopspacing", "binbinspacing", "binrelspacing",
+ -- "binopenspacing", "binclosespacing", "binpunctspacing", "bininnerspacing",
+ -- "binfracspacing", "binradspacing", "binmiddlespacing", "binaccentspacing",
+ -- --
+ -- "relordspacing", "relopspacing", "relbinspacing", "relrelspacing",
+ -- "relopenspacing", "relclosespacing", "relpunctspacing", "relinnerspacing",
+ -- "relfracspacing", "relradspacing", "relmiddlespacing", "relaccentspacing",
+ -- --
+ -- "openordspacing", "openopspacing", "openbinspacing", "openrelspacing",
+ -- "openopenspacing", "openclosespacing", "openpunctspacing", "openinnerspacing",
+ -- "openfracspacing", "openradspacing", "openmiddlespacing", "openaccentspacing",
+ -- --
+ -- "closeordspacing", "closeopspacing", "closebinspacing", "closerelspacing",
+ -- "closeopenspacing", "closeclosespacing", "closepunctspacing", "closeinnerspacing",
+ -- "closefracspacing", "closeradspacing", "closemiddlespacing", "closeaccentspacing",
+ -- --
+ -- "punctordspacing", "punctopspacing", "punctbinspacing", "punctrelspacing",
+ -- "punctopenspacing", "punctclosespacing", "punctpunctspacing", "punctinnerspacing",
+ -- "punctfracspacing", "punctradspacing", "punctmiddlespacing", "punctaccentspacing",
+ -- --
+ -- "innerordspacing", "inneropspacing", "innerbinspacing", "innerrelspacing",
+ -- "inneropenspacing", "innerclosespacing", "innerpunctspacing", "innerinnerspacing",
+ -- "innerfracspacing", "innerradspacing", "innermiddlespacing", "inneraccentspacing",
+ -- --
+ -- "fracordspacing", "fracopspacing", "fracbinspacing", "fracrelspacing",
+ -- "fracopenspacing", "fracclosespacing", "fracpunctspacing", "fracinnerspacing",
+ -- "fracfracspacing", "fracradspacing", "fracmiddlespacing", "fracaccentspacing",
+ -- --
+ -- "radordspacing", "radopspacing", "radbinspacing", "radrelspacing",
+ -- "radopenspacing", "radclosespacing", "radpunctspacing", "radinnerspacing",
+ -- "radfracspacing", "radradspacing", "radmiddlespacing", "radaccentspacing",
+ -- --
+ -- "middleordspacing", "middleopspacing", "middlebinspacing", "middlerelspacing",
+ -- "middleopenspacing", "middleclosespacing", "middlepunctspacing", "middleinnerspacing",
+ -- "middlefracspacing", "middleradspacing", "middlemiddlespacing", "middleaccentspacing",
+ -- --
+ -- "accentordspacing", "accentopspacing", "accentbinspacing", "accentrelspacing",
+ -- "accentopenspacing", "accentclosespacing", "accentpunctspacing", "accentinnerspacing",
+ -- "accentfracspacing", "accentradspacing", "accentmiddlespacing", "accentaccentspacing",
--
"normalreqno",
--
"startimath", "stopimath", "normalstartimath", "normalstopimath",
"startdmath", "stopdmath", "normalstartdmath", "normalstopdmath",
- "normalsuperscript", "normalsubscript", "normalnosuperscript", "normalnosubscript",
- "superscript", "subscript", "nosuperscript", "nosubscript",
+ "normalsuperscript", "normalsubscript", "normalnosuperscript", "normalnosubscript", "normalprimescript",
+ "superscript", "subscript", "nosuperscript", "nosubscript", "primescript",
"superprescript", "subprescript", "nosuperprescript", "nosubsprecript",
--
"uncramped", "cramped",
- "mathstyletrigger", "triggermathstyle",
+ "mathstyletrigger", "triggermathstyle", "triggeredmathstyle",
"mathstylefont", "mathsmallstylefont", "mathstyleface", "mathsmallstyleface", "mathstylecommand", "mathpalette",
"mathstylehbox", "mathstylevbox", "mathstylevcenter", "mathstylevcenteredhbox", "mathstylevcenteredvbox",
"mathtext", "setmathsmalltextbox", "setmathtextbox",
@@ -499,8 +597,6 @@ return {
--
"assumelongusagecs",
--
- "Umathbotaccent", "Umathtopaccent",
- --
"righttolefthbox", "lefttorighthbox", "righttoleftvbox", "lefttorightvbox", "righttoleftvtop", "lefttorightvtop",
"rtlhbox", "ltrhbox", "rtlvbox", "ltrvbox", "rtlvtop", "ltrvtop",
"autodirhbox", "autodirvbox", "autodirvtop",
@@ -508,8 +604,9 @@ return {
"lefttoright", "righttoleft", "checkedlefttoright", "checkedrighttoleft",
"synchronizelayoutdirection","synchronizedisplaydirection","synchronizeinlinedirection",
"dirlre", "dirrle", "dirlro", "dirrlo",
+ "rtltext", "ltrtext",
--
- "lesshyphens", "morehyphens", "nohyphens", "dohyphens",
+ "lesshyphens", "morehyphens", "nohyphens", "dohyphens", "dohyphencollapsing", "nohyphencollapsing",
"compounddiscretionary",
--
"Ucheckedstartdisplaymath", "Ucheckedstopdisplaymath",
@@ -548,7 +645,7 @@ return {
"prelistbox", "postlistbox", "prelistcopy", "postlistcopy", "setprelistbox", "setpostlistbox",
--
"noligaturing", "nokerning", "noexpansion", "noprotrusion",
- "noleftkerning", "noleftligaturing", "norightkerning", "norightligaturing",
+ "noleftkerning", "noleftligaturing", "norightkerning", "norightligaturing", "noitaliccorrection",
--
"futureletnexttoken", "defbackslashbreak", "letbackslashbreak",
--
@@ -556,8 +653,16 @@ return {
--
"suggestedalias",
--
+ "showboxhere",
+ --
+ "discoptioncodestring", "flagcodestring", "frozenparcodestring", "glyphoptioncodestring", "groupcodestring",
+ "hyphenationcodestring", "mathcontrolcodestring", "mathflattencodestring", "normalizecodestring",
+ "parcontextcodestring",
+ --
"newlocalcount", "newlocaldimen", "newlocalskip", "newlocalmuskip", "newlocaltoks", "newlocalbox",
"newlocalwrite", "newlocalread",
"setnewlocalcount", "setnewlocaldimen", "setnewlocalskip", "setnewlocalmuskip", "setnewlocaltoks", "setnewlocalbox",
+ --
+ "ifexpression"
}
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-mps.lua b/Master/texmf-dist/tex/context/base/mkiv/mult-mps.lua
index a2a74b3b316..008bcbb9fbf 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-mps.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-mps.lua
@@ -3,10 +3,10 @@ return {
"btex", "etex", "verbatimtex",
},
shortcuts = {
- "..", "...", "--", "---", "&", "\\",
+ "..", "...", "--", "---", "&", "&&", "\\",
},
primitives = { -- to be checked
- "charcode", "day", "linecap", "linejoin", "miterlimit", "month", "pausing",
+ "charcode", "day", "linecap", "linejoin", "miterlimit", "stacking", "month", "pausing",
"prologues", "showstopping", "time", "tracingcapsules", "tracingchoices", "mpprocset",
"tracingcommands", "tracingequations", "tracinglostchars",
"tracingmacros", "tracingonline", "tracingoutput", "tracingrestores",
@@ -30,7 +30,7 @@ return {
"def", "vardef", "enddef", "expr", "suffix", "text", "primary", "secondary",
"tertiary", "primarydef", "secondarydef", "tertiarydef",
"randomseed", "also", "contour", "doublepath",
- "withcolor", "withcmykcolor", "withpen",
+ "withcolor", "withcmykcolor", "withpen", "withstacking",
"dashed",
"envelope",
"if", "else", "elseif", "fi", "for", "endfor", "forever", "exitif", "within",
@@ -50,7 +50,7 @@ return {
"message", "delimiters", "turningnumber", "errmessage",
"scantokens", "end", "outer", "inner", "write", "to", "readfrom", "closefrom",
"withprescript", "withpostscript",
- "top", "bot", "lft", "rt", "ulft", "urt", "llft", "lrt",
+ -- "top", "bot", "lft", "rt", "ulft", "urt", "llft", "lrt",
--
"redpart", "greenpart", "bluepart",
"cyanpart", "magentapart", "yellowpart",
@@ -58,7 +58,7 @@ return {
"prescriptpart", "postscriptpart",
"rgbcolor", "cmykcolor", -- "greycolor", "graycolor",
"colormodel", "graypart", "greypart", "greycolor", "graycolor",
- "dashpart", "penpart",
+ "dashpart", "penpart", "stackingpart",
-- "colorpart",
"stroked", "filled", "textual", "clipped", "bounded", "pathpart",
"expandafter",
@@ -68,6 +68,15 @@ return {
--
"runscript", "maketext", "numbersystem",
"overloadmode", "setproperty",
+ --
+ "intersectiontimeslist", "arcpoint", "arcpointlist", "subarclength", "maxknotpool", "nocycle",
+ "pathpoint", "pathprecontrol", "pathpostcontrol", "pathdirection",
+ "deltapoint", "deltaprecontrol", "deltapostcontrol", "deltadirection",
+ "corner", "xrange", "yrange",
+ "convexed", "uncontrolled",
+ "nep", "makenep",
+ "withmiterlimit", "withlinejoin", "withlinecap",
+ "centerof", "centerofmass",
},
commands = {
"on", "off",
@@ -84,7 +93,8 @@ return {
"pensquare", "penrazor", "penspec",
"origin", "quartercircle", "right",
"unitsquare", "up", "withdots",
- "abs", "bbox", "ceiling", "center", "cutafter", "cutbefore", "dir",
+ "abs", "bbox", "ceiling", "cutafter", "cutbefore", "dir",
+ -- "center",
"directionpoint", "div", "dotprod", "intersectionpoint", "inverse", "mod",
"round", "unitvector", "whatever",
"cutdraw", "draw", "drawarrow", "drawdblarrow", "fill", "filldraw", "drawdot",
@@ -117,13 +127,15 @@ return {
--
"red", "green", "blue", "cyan", "magenta", "yellow", "black", "white", "background",
--
- "mm", "pt", "dd", "bp", "cm", "pc", "cc", "in",
+ "mm", "pt", "dd", "bp", "cm", "pc", "cc", "in", "dk",
--
- "triplet", "quadruplet", "totransform", "bymatrix",
+ "triplet", "quadruplet", "totransform", "bymatrix", "closedcurve", "closedlines",
--
"primitive", "permanent", "immutable", "mutable", "frozen",
--
"showproperty", "showhashentry",
+ --
+ "top", "bot", "lft", "rt", "ulft", "urt", "llft", "lrt",
},
internals = { -- we need to remove duplicates above
--
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-prm.lua b/Master/texmf-dist/tex/context/base/mkiv/mult-prm.lua
index 250a5dfc18d..72da8971821 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-prm.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-prm.lua
@@ -32,14 +32,11 @@ return {
"iffontchar",
"interactionmode",
"interlinepenalties",
- "lastchkdim",
- "lastchknum",
"lastlinefit",
"lastnodetype",
"marks",
"muexpr",
"mutoglue",
- "numericscale",
"numexpr",
"pagediscards",
"parshapedimen",
@@ -57,7 +54,6 @@ return {
"splitdiscards",
"splitfirstmarks",
"topmarks",
- "tracingalignments",
"tracingassigns",
"tracinggroups",
"tracingifs",
@@ -67,165 +63,180 @@ return {
"widowpenalties",
},
["luatex"]={
- "UUskewed",
- "UUskewedwithdelims",
"Uabove",
"Uabovewithdelims",
"Uatop",
"Uatopwithdelims",
"Uchar",
"Udelcode",
- "Udelcodenum",
+ "Udelimited",
"Udelimiter",
"Udelimiterover",
"Udelimiterunder",
"Uhextensible",
"Uleft",
"Umathaccent",
+ "Umathaccentbasedepth",
"Umathaccentbaseheight",
+ "Umathaccentbottomovershoot",
+ "Umathaccentbottomshiftdown",
+ "Umathaccentextendmargin",
+ "Umathaccentsuperscriptdrop",
+ "Umathaccentsuperscriptpercent",
+ "Umathaccenttopovershoot",
+ "Umathaccenttopshiftup",
+ "Umathaccentvariant",
+ "Umathadapttoleft",
+ "Umathadapttoright",
"Umathaxis",
- "Umathbinbinspacing",
- "Umathbinclosespacing",
- "Umathbininnerspacing",
- "Umathbinopenspacing",
- "Umathbinopspacing",
- "Umathbinordspacing",
- "Umathbinpunctspacing",
- "Umathbinrelspacing",
+ "Umathbottomaccentvariant",
"Umathchar",
"Umathcharclass",
"Umathchardef",
"Umathcharfam",
- "Umathcharnum",
- "Umathcharnumdef",
"Umathcharslot",
"Umathclass",
- "Umathclosebinspacing",
- "Umathcloseclosespacing",
- "Umathcloseinnerspacing",
- "Umathcloseopenspacing",
- "Umathcloseopspacing",
- "Umathcloseordspacing",
- "Umathclosepunctspacing",
- "Umathcloserelspacing",
"Umathcode",
- "Umathcodenum",
"Umathconnectoroverlapmin",
+ "Umathdegreevariant",
+ "Umathdelimiterovervariant",
+ "Umathdelimiterpercent",
+ "Umathdelimitershortfall",
+ "Umathdelimiterundervariant",
+ "Umathdenominatorvariant",
+ "Umathdict",
+ "Umathdictdef",
+ "Umathdiscretionary",
+ "Umathextrasubpreshift",
+ "Umathextrasubprespace",
+ "Umathextrasubshift",
+ "Umathextrasubspace",
+ "Umathextrasuppreshift",
+ "Umathextrasupprespace",
+ "Umathextrasupshift",
+ "Umathextrasupspace",
+ "Umathflattenedaccentbasedepth",
+ "Umathflattenedaccentbaseheight",
+ "Umathflattenedaccentbottomshiftdown",
+ "Umathflattenedaccenttopshiftup",
"Umathfractiondelsize",
"Umathfractiondenomdown",
"Umathfractiondenomvgap",
"Umathfractionnumup",
"Umathfractionnumvgap",
"Umathfractionrule",
- "Umathinnerbinspacing",
- "Umathinnerclosespacing",
- "Umathinnerinnerspacing",
- "Umathinneropenspacing",
- "Umathinneropspacing",
- "Umathinnerordspacing",
- "Umathinnerpunctspacing",
- "Umathinnerrelspacing",
+ "Umathfractionvariant",
+ "Umathhextensiblevariant",
"Umathlimitabovebgap",
"Umathlimitabovekern",
"Umathlimitabovevgap",
"Umathlimitbelowbgap",
"Umathlimitbelowkern",
"Umathlimitbelowvgap",
+ "Umathlimits",
+ "Umathnoaxis",
+ "Umathnolimits",
"Umathnolimitsubfactor",
"Umathnolimitsupfactor",
- "Umathopbinspacing",
- "Umathopclosespacing",
- "Umathopenbinspacing",
- "Umathopenclosespacing",
- "Umathopeninnerspacing",
- "Umathopenopenspacing",
- "Umathopenopspacing",
- "Umathopenordspacing",
- "Umathopenpunctspacing",
- "Umathopenrelspacing",
+ "Umathnumeratorvariant",
+ "Umathopenupdepth",
+ "Umathopenupheight",
"Umathoperatorsize",
- "Umathopinnerspacing",
- "Umathopopenspacing",
- "Umathopopspacing",
- "Umathopordspacing",
- "Umathoppunctspacing",
- "Umathoprelspacing",
- "Umathordbinspacing",
- "Umathordclosespacing",
- "Umathordinnerspacing",
- "Umathordopenspacing",
- "Umathordopspacing",
- "Umathordordspacing",
- "Umathordpunctspacing",
- "Umathordrelspacing",
"Umathoverbarkern",
"Umathoverbarrule",
"Umathoverbarvgap",
"Umathoverdelimiterbgap",
+ "Umathoverdelimitervariant",
"Umathoverdelimitervgap",
- "Umathpunctbinspacing",
- "Umathpunctclosespacing",
- "Umathpunctinnerspacing",
- "Umathpunctopenspacing",
- "Umathpunctopspacing",
- "Umathpunctordspacing",
- "Umathpunctpunctspacing",
- "Umathpunctrelspacing",
+ "Umathoverlayaccentvariant",
+ "Umathoverlinevariant",
+ "Umathphantom",
+ "Umathpresubshiftdistance",
+ "Umathpresupshiftdistance",
+ "Umathprimeraise",
+ "Umathprimeraisecomposed",
+ "Umathprimeshiftdrop",
+ "Umathprimeshiftup",
+ "Umathprimespaceafter",
+ "Umathprimevariant",
+ "Umathprimewidth",
"Umathquad",
"Umathradicaldegreeafter",
"Umathradicaldegreebefore",
"Umathradicaldegreeraise",
+ "Umathradicalextensibleafter",
+ "Umathradicalextensiblebefore",
"Umathradicalkern",
"Umathradicalrule",
+ "Umathradicalvariant",
"Umathradicalvgap",
- "Umathrelbinspacing",
- "Umathrelclosespacing",
- "Umathrelinnerspacing",
- "Umathrelopenspacing",
- "Umathrelopspacing",
- "Umathrelordspacing",
- "Umathrelpunctspacing",
- "Umathrelrelspacing",
+ "Umathruledepth",
+ "Umathruleheight",
+ "Umathskeweddelimitertolerance",
"Umathskewedfractionhgap",
"Umathskewedfractionvgap",
+ "Umathsource",
"Umathspaceafterscript",
"Umathspacebeforescript",
- "Umathspacingmode",
"Umathstackdenomdown",
"Umathstacknumup",
+ "Umathstackvariant",
"Umathstackvgap",
+ "Umathsubscriptvariant",
+ "Umathsubshiftdistance",
"Umathsubshiftdown",
"Umathsubshiftdrop",
"Umathsubsupshiftdown",
"Umathsubsupvgap",
"Umathsubtopmax",
"Umathsupbottommin",
+ "Umathsuperscriptvariant",
+ "Umathsupshiftdistance",
"Umathsupshiftdrop",
"Umathsupshiftup",
"Umathsupsubbottommax",
+ "Umathtopaccentvariant",
"Umathunderbarkern",
"Umathunderbarrule",
"Umathunderbarvgap",
"Umathunderdelimiterbgap",
+ "Umathunderdelimitervariant",
"Umathunderdelimitervgap",
+ "Umathunderlinevariant",
+ "Umathuseaxis",
+ "Umathvextensiblevariant",
+ "Umathvoid",
+ "Umathxscale",
+ "Umathyscale",
"Umiddle",
"Unosubprescript",
"Unosubscript",
"Unosuperprescript",
"Unosuperscript",
+ "Uoperator",
"Uover",
"Uoverdelimiter",
"Uoverwithdelims",
+ "Uprimescript",
"Uradical",
"Uright",
"Uroot",
+ "Urooted",
+ "Ushiftedsubprescript",
+ "Ushiftedsubscript",
+ "Ushiftedsuperprescript",
+ "Ushiftedsuperscript",
"Uskewed",
"Uskewedwithdelims",
"Ustack",
"Ustartdisplaymath",
"Ustartmath",
+ "Ustartmathmode",
"Ustopdisplaymath",
"Ustopmath",
+ "Ustopmathmode",
+ "Ustretched",
+ "Ustretchedwithdelims",
"Ustyle",
"Usubprescript",
"Usubscript",
@@ -240,8 +251,22 @@ return {
"afterassigned",
"aftergrouped",
"aliased",
+ "aligncontent",
"alignmark",
+ "alignmentcellsource",
+ "alignmentwrapsource",
"aligntab",
+ "allcrampedstyles",
+ "alldisplaystyles",
+ "allmainstyles",
+ "allmathstyles",
+ "allscriptscriptstyles",
+ "allscriptstyles",
+ "allsplitstyles",
+ "alltextstyles",
+ "alluncrampedstyles",
+ "allunsplitstyles",
+ "amcode",
"atendofgroup",
"atendofgrouped",
"attribute",
@@ -249,48 +274,96 @@ return {
"automaticdiscretionary",
"automatichyphenpenalty",
"automigrationmode",
+ "autoparagraphmode",
"begincsname",
"beginlocalcontrol",
+ "beginmathgroup",
+ "beginsimplegroup",
"boundary",
+ "boxadapt",
+ "boxanchor",
+ "boxanchors",
"boxattribute",
"boxdirection",
+ "boxfreeze",
+ "boxgeometry",
"boxorientation",
+ "boxrepack",
+ "boxshift",
+ "boxsource",
+ "boxtarget",
"boxtotal",
+ "boxvadjust",
"boxxmove",
"boxxoffset",
"boxymove",
"boxyoffset",
"catcodetable",
+ "cdef",
+ "cdefcsname",
+ "cfcode",
"clearmarks",
+ "constant",
+ "copymathatomrule",
+ "copymathparent",
+ "copymathspacing",
"crampeddisplaystyle",
"crampedscriptscriptstyle",
"crampedscriptstyle",
"crampedtextstyle",
+ "csactive",
"csstring",
+ "currentloopiterator",
+ "currentloopnesting",
+ "currentmarks",
+ "dbox",
"defcsname",
+ "detokenized",
"dimensiondef",
+ "dimexpression",
"directlua",
+ "dpack",
+ "dsplit",
"edefcsname",
"efcode",
"endlocalcontrol",
+ "endmathgroup",
+ "endsimplegroup",
"enforced",
+ "etoks",
"etoksapp",
"etokspre",
+ "everybeforepar",
+ "everymathatom",
"everytab",
"exceptionpenalty",
"expand",
+ "expandactive",
"expandafterpars",
"expandafterspaces",
"expandcstoken",
"expanded",
+ "expandedafter",
+ "expandedloop",
"expandtoken",
"explicitdiscretionary",
"explicithyphenpenalty",
"firstvalidlanguage",
+ "flushmarks",
+ "fontcharta",
"fontid",
+ "fontmathcontrol",
+ "fontspecdef",
+ "fontspecid",
+ "fontspecifiedname",
"fontspecifiedsize",
+ "fontspecscale",
+ "fontspecxscale",
+ "fontspecyscale",
+ "fonttextcontrol",
"formatname",
"frozen",
+ "futurecsname",
"futuredef",
"futureexpand",
"futureexpandis",
@@ -299,7 +372,9 @@ return {
"gleaders",
"glet",
"gletcsname",
+ "glettonothing",
"gluespecdef",
+ "glyph",
"glyphdatafield",
"glyphoptions",
"glyphscale",
@@ -310,11 +385,16 @@ return {
"glyphtextscale",
"glyphxoffset",
"glyphxscale",
+ "glyphxscaled",
"glyphyoffset",
"glyphyscale",
+ "glyphyscaled",
"gtoksapp",
"gtokspre",
+ "hccode",
"hjcode",
+ "hmcode",
+ "holdingmigrations",
"hpack",
"hyphenationmin",
"hyphenationmode",
@@ -323,51 +403,95 @@ return {
"ifarguments",
"ifboolean",
"ifchkdim",
+ "ifchkdimension",
"ifchknum",
+ "ifchknumber",
"ifcmpdim",
"ifcmpnum",
"ifcondition",
"ifcstok",
+ "ifdimexpression",
"ifdimval",
"ifempty",
"ifflags",
+ "ifhaschar",
"ifhastok",
"ifhastoks",
"ifhasxtoks",
"ifincsname",
+ "ifinsert",
"ifmathparameter",
"ifmathstyle",
+ "ifnumexpression",
"ifnumval",
"ifparameter",
"ifparameters",
"ifrelax",
"iftok",
+ "ifzerodim",
+ "ifzeronum",
"ignorearguments",
+ "ignoredepthcriterium",
"ignorepars",
"immediate",
"immutable",
+ "indexofcharacter",
+ "indexofregister",
+ "inherited",
"initcatcodetable",
+ "insertbox",
+ "insertcopy",
+ "insertdepth",
+ "insertdistance",
+ "insertheight",
"insertheights",
- "insertht",
+ "insertlimit",
+ "insertmaxdepth",
+ "insertmode",
+ "insertmultiplier",
+ "insertpenalty",
+ "insertprogress",
+ "insertstorage",
+ "insertstoring",
+ "insertunbox",
+ "insertuncopy",
+ "insertwidth",
"instance",
"integerdef",
"lastarguments",
+ "lastatomclass",
+ "lastboundary",
+ "lastchkdim",
+ "lastchknum",
+ "lastleftclass",
+ "lastloopiterator",
"lastnamedcs",
"lastnodesubtype",
+ "lastpageextra",
+ "lastparcontext",
+ "lastrightclass",
"leftmarginkern",
"letcharcode",
"letcsname",
"letfrozen",
+ "letmathatomrule",
+ "letmathparent",
+ "letmathspacing",
"letprotected",
+ "lettonothing",
+ "linebreakcriterium",
"linedirection",
- "linepar",
- "listcallbackmode",
"localbrokenpenalty",
"localcontrol",
"localcontrolled",
+ "localcontrolledloop",
"localinterlinepenalty",
"localleftbox",
+ "localleftboxbox",
+ "localmiddlebox",
+ "localmiddleboxbox",
"localrightbox",
+ "localrightboxbox",
"lpcode",
"luabytecode",
"luabytecodecall",
@@ -379,77 +503,185 @@ return {
"luatexbanner",
"luatexrevision",
"luatexversion",
- "mathdelimitersmode",
+ "mathaccent",
+ "mathatom",
+ "mathatomglue",
+ "mathatomskip",
+ "mathbackwardpenalties",
+ "mathbeginclass",
+ "mathbinary",
+ "mathcheckfencesmode",
+ "mathclose",
+ "mathdictgroup",
+ "mathdictproperties",
"mathdirection",
+ "mathdisplaymode",
"mathdisplayskipmode",
+ "mathdoublescriptmode",
+ "mathendclass",
"matheqnogapstep",
- "mathflattenmode",
- "mathitalicsmode",
+ "mathfenced",
+ "mathfontcontrol",
+ "mathforwardpenalties",
+ "mathfraction",
+ "mathghost",
+ "mathgluemode",
+ "mathgroupingmode",
+ "mathinner",
+ "mathleftclass",
+ "mathlimitsmode",
+ "mathmainstyle",
+ "mathmiddle",
"mathnolimitsmode",
+ "mathopen",
+ "mathoperator",
+ "mathordinary",
+ "mathoverline",
"mathpenaltiesmode",
+ "mathpunctuation",
+ "mathradical",
+ "mathrelation",
+ "mathrightclass",
"mathrulesfam",
"mathrulesmode",
- "mathrulethicknessmode",
"mathscale",
- "mathscriptboxmode",
- "mathscriptcharmode",
"mathscriptsmode",
+ "mathslackmode",
+ "mathspacingmode",
+ "mathstackstyle",
"mathstyle",
+ "mathstylefontid",
"mathsurroundmode",
"mathsurroundskip",
+ "maththreshold",
+ "mathunderline",
+ "meaningasis",
+ "meaningfull",
+ "meaningless",
"mugluespecdef",
"mutable",
"noaligned",
+ "noatomruling",
"noboundary",
"nohrule",
"norelax",
"normalizelinemode",
+ "normalizeparmode",
"nospaces",
"novrule",
+ "numericscale",
+ "numexpression",
"orelse",
+ "orphanpenalties",
+ "orphanpenalty",
"orunless",
"outputbox",
"overloaded",
"overloadmode",
+ "overshoot",
+ "pageboundary",
+ "pageextragoal",
+ "pagevsize",
"parametercount",
- "parattr",
+ "parametermark",
+ "parattribute",
"pardirection",
"permanent",
+ "pettymuskip",
"postexhyphenchar",
"posthyphenchar",
+ "postinlinepenalty",
"prebinoppenalty",
"predisplaygapfactor",
"preexhyphenchar",
"prehyphenchar",
+ "preinlinepenalty",
"prerelpenalty",
"protrudechars",
"protrusionboundary",
"pxdimen",
+ "quitloop",
"quitvmode",
+ "resetmathspacing",
+ "retokenized",
"rightmarginkern",
"rpcode",
"savecatcodetable",
+ "scaledemwidth",
+ "scaledexheight",
+ "scaledextraspace",
+ "scaledfontdimen",
+ "scaledinterwordshrink",
+ "scaledinterwordspace",
+ "scaledinterwordstretch",
+ "scaledmathstyle",
+ "scaledslantperpoint",
"scantextokens",
+ "semiexpand",
+ "semiexpanded",
+ "semiprotected",
+ "setdefaultmathcodes",
"setfontid",
+ "setmathatomrule",
+ "setmathdisplaypostpenalty",
+ "setmathdisplayprepenalty",
+ "setmathignore",
+ "setmathoptions",
+ "setmathpostpenalty",
+ "setmathprepenalty",
+ "setmathspacing",
+ "shapingpenaltiesmode",
+ "shapingpenalty",
"snapshotpar",
+ "srule",
"supmarkmode",
"swapcsvalues",
+ "tabsize",
"textdirection",
"thewithoutunit",
+ "tinymuskip",
+ "todimension",
+ "tohexadecimal",
+ "tointeger",
"tokenized",
"toksapp",
"tokspre",
"tolerant",
+ "tomathstyle",
+ "toscaled",
+ "tosparsedimension",
+ "tosparsescaled",
"tpack",
+ "tracingadjusts",
+ "tracingalignments",
+ "tracingexpressions",
"tracingfonts",
+ "tracingfullboxes",
+ "tracinghyphenation",
+ "tracinginserts",
+ "tracinglevels",
+ "tracinglists",
+ "tracingmarks",
"tracingmath",
+ "tracingnodes",
+ "tracingpenalties",
+ "tsplit",
+ "uleaders",
"undent",
+ "unexpandedloop",
+ "unhpack",
"unletfrozen",
"unletprotected",
+ "untraced",
+ "unvpack",
+ "variablefam",
+ "virtualhrule",
+ "virtualvrule",
"vpack",
"wordboundary",
"wrapuppar",
"xdefcsname",
+ "xtoks",
"xtoksapp",
"xtokspre",
},
@@ -523,6 +755,7 @@ return {
"pdfobjcompresslevel",
"pdfomitcharset",
"pdfomitcidset",
+ "pdfomitinfodict",
"pdfoutline",
"pdfoutput",
"pdfpageattr",
@@ -583,6 +816,7 @@ return {
"accent",
"adjdemerits",
"advance",
+ "advanceby",
"afterassignment",
"aftergroup",
"atop",
@@ -627,6 +861,7 @@ return {
"displaywidowpenalty",
"displaywidth",
"divide",
+ "divideby",
"doublehyphendemerits",
"dp",
"dump",
@@ -662,12 +897,10 @@ return {
"font",
"fontdimen",
"fontname",
- "fontspecifiedname",
"futurelet",
"gdef",
"global",
"globaldefs",
- "glyph",
"halign",
"hangafter",
"hangindent",
@@ -732,16 +965,12 @@ return {
"lower",
"lowercase",
"mark",
- "mathaccent",
"mathbin",
"mathchar",
"mathchardef",
"mathchoice",
- "mathclose",
"mathcode",
- "mathinner",
"mathop",
- "mathopen",
"mathord",
"mathpunct",
"mathrel",
@@ -749,8 +978,6 @@ return {
"maxdeadcycles",
"maxdepth",
"meaning",
- "meaningfull",
- "meaningless",
"medmuskip",
"message",
"middle",
@@ -760,6 +987,7 @@ return {
"moveright",
"mskip",
"multiply",
+ "multiplyby",
"muskip",
"muskipdef",
"newlinechar",
@@ -774,14 +1002,12 @@ return {
"number",
"omit",
"or",
- "ordlimits",
"outer",
"output",
"outputpenalty",
"over",
"overfullrule",
"overline",
- "overshoot",
"overwithdelims",
"pagedepth",
"pagefilllstretch",
@@ -795,6 +1021,8 @@ return {
"parfillleftskip",
"parfillskip",
"parindent",
+ "parinitleftskip",
+ "parinitrightskip",
"parshape",
"parskip",
"patterns",
@@ -814,7 +1042,6 @@ return {
"righthyphenmin",
"rightskip",
"romannumeral",
- "scaledfontdimen",
"scriptfont",
"scriptscriptfont",
"scriptscriptstyle",
@@ -850,14 +1077,11 @@ return {
"thickmuskip",
"thinmuskip",
"time",
- "todimension",
- "tointeger",
"toks",
"toksdef",
"tolerance",
"topmark",
"topskip",
- "toscaled",
"tracingcommands",
"tracinglostchars",
"tracingmacros",
@@ -869,16 +1093,15 @@ return {
"tracingstats",
"uccode",
"uchyph",
+ "unboundary",
"underline",
"unhbox",
"unhcopy",
- "unhpack",
"unkern",
"unpenalty",
"unskip",
"unvbox",
"unvcopy",
- "unvpack",
"uppercase",
"vadjust",
"valign",
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-prm.mkiv b/Master/texmf-dist/tex/context/base/mkiv/mult-prm.mkiv
index 5ffb84d389c..75114c3309c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-prm.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-prm.mkiv
@@ -68,7 +68,7 @@
"pdftracingfonts", "pdftrailer", "pdftrailerid", "pdfuniformdeviate",
"pdfuniqueresname", "pdfvorigin", "pdfxform", "pdfxformattr",
"pdfxformmargin", "pdfxformname", "pdfxformresources", "pdfximage",
- "pdfomitcidset", "pdfomitcharset",
+ "pdfomitcidset", "pdfomitcharset", "pdfomitinfodict",
},
aleph = { -- we don't bother
"Alephminorversion", "Alephrevision", "Alephversion",
diff --git a/Master/texmf-dist/tex/context/base/mkiv/mult-sys.mkiv b/Master/texmf-dist/tex/context/base/mkiv/mult-sys.mkiv
index 7e9792720ad..07ec16e2bf6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/mult-sys.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/mult-sys.mkiv
@@ -44,10 +44,15 @@
% definesystemconstant {vn}
\definesystemconstant {afrikaans} \definesystemconstant {af}
+\definesystemconstant {albanian} \definesystemconstant {sq}
+\definesystemconstant {armenian} \definesystemconstant {hy}
+ \definesystemconstant {hye}
+ \definesystemconstant {hyw}
\definesystemconstant {ancientgreek} \definesystemconstant {agr}
\definesystemconstant {ancientlatin} \definesystemconstant {ala}
\definesystemconstant {arabic} \definesystemconstant {ar}
\definesystemconstant {belarussian} \definesystemconstant {be}
+\definesystemconstant {bulgarian} \definesystemconstant {bg}
\definesystemconstant {bokmal} \definesystemconstant {nb}
\definesystemconstant {catalan} \definesystemconstant {ca}
\definesystemconstant {chinese} \definesystemconstant {cn}
@@ -57,7 +62,7 @@
\definesystemconstant {dutch} \definesystemconstant {nl}
\definesystemconstant {english} \definesystemconstant {en}
\definesystemconstant {estonian} \definesystemconstant {et}
-\definesystemconstant {esperanto} % \definesystemconstant {eo}
+\definesystemconstant {esperanto} \definesystemconstant {eo}
\definesystemconstant {farsi} \definesystemconstant {fa} % just persian
\definesystemconstant {finnish} \definesystemconstant {fi}
\definesystemconstant {french} \definesystemconstant {fr}
@@ -337,6 +342,8 @@
\definesystemconstant {righthyphenmin}
\definesystemconstant {lefthyphenchar}
\definesystemconstant {righthyphenchar}
+\definesystemconstant {explicitlefthyphenchar}
+\definesystemconstant {explicitrighthyphenchar}
\definesystemconstant {head}
\definesystemconstant {symbol}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-acc.lua b/Master/texmf-dist/tex/context/base/mkiv/node-acc.lua
index d8f4b25bf3a..5849c045c23 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-acc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-acc.lua
@@ -32,8 +32,8 @@ local nextglyph = nuts.traversers.glyph
local nextnode = nuts.traversers.node
----- copy_node = nuts.copy
-local insert_after = nuts.insert_after
-local copy_no_components = nuts.copy_no_components
+local insertafter = nuts.insertafter
+local copynocomponents = nuts.components.copynocomponents
local nodecodes = nodes.nodecodes
local gluecodes = nodes.gluecodes
@@ -71,7 +71,7 @@ local function injectspaces(head)
if s == spaceskip_code or s == xspaceskip_code then
-- unless we don't care about the little bit of overhead
-- we can just: local g = copy_node(g)
- local g = copy_no_components(p)
+ local g = copynocomponents(p)
local a = getattr(n,a_characters)
setchar(g,slot)
setlink(p,g,n)
@@ -163,8 +163,8 @@ end)
-- local str = codes[a]
-- local b = pageliteral(format("/Span << /ActualText %s >> BDC", lpdf.tosixteen(str)))
-- local e = pageliteral("EMC")
--- insert_before(head,n,b)
--- insert_after(head,n,e)
+-- insertbefore(head,n,b)
+-- insertafter(head,n,e)
-- done = true
-- end
-- elseif id == hlist_code or id == vlist_code then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-aux.lua b/Master/texmf-dist/tex/context/base/mkiv/node-aux.lua
index d3c537a3bce..5a98b2ea3a5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-aux.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-aux.lua
@@ -53,11 +53,11 @@ local traversers = nuts.traversers
local nextnode = traversers.node
local nextglyph = traversers.glyph
-local flush_node = nuts.flush
-local flush_list = nuts.flush_list
+local flushnode = nuts.flush
+local flushlist = nuts.flushlist
local hpack_nodes = nuts.hpack
-local unset_attribute = nuts.unset_attribute
-local first_glyph = nuts.first_glyph
+local unsetattribute = nuts.unsetattribute
+local firstglyph = nuts.firstglyph
local copy_node = nuts.copy
local find_tail = nuts.tail
local getbox = nuts.getbox
@@ -85,7 +85,7 @@ local report_error = logs.reporter("node-aux:error")
-- function tex.takebox(id)
-- local box = tex.getbox(id)
-- if box then
--- local copy = node.copy(box)
+-- local copy = nodes.copy(box)
-- local list = box.list
-- copy.list = list
-- box.list = nil
@@ -129,7 +129,7 @@ end
function nuts.takelist(n)
local l = getlist(n)
setlist(n)
- flush_node(n)
+ flushnode(n)
return l
end
@@ -142,7 +142,7 @@ local function repackhlist(list,...)
local temp, b = hpack_nodes(list,...)
list = getlist(temp)
setlist(temp)
- flush_node(temp)
+ flushnode(temp)
return list, b
end
@@ -153,50 +153,59 @@ function nodes.repackhlist(list,...)
return tonode(list), b
end
-local function set_attributes(head,attr,value)
- for n, id in nextnode, head do
- setattr(n,attr,value)
- if id == hlist_node or id == vlist_node then
- set_attributes(getlist(n),attr,value)
- end
- end
-end
+if not nuts.setattributes then
-local function set_unset_attributes(head,attr,value)
- for n, id in nextnode, head do
- if not getattr(n,attr) then
+ local function setattributes(head,attr,value)
+ for n, id in nextnode, head do
setattr(n,attr,value)
- end
- if id == hlist_code or id == vlist_code then
- set_unset_attributes(getlist(n),attr,value)
+ if id == hlist_node or id == vlist_node then
+ setattributes(getlist(n),attr,value)
+ end
end
end
+
+ nuts .setattributes = setattributes
+ nodes.setattributes = vianuts(setattributes)
+
end
-local function unset_attributes(head,attr)
- for n, id in nextnode, head do
- setattr(n,attr,unsetvalue)
- if id == hlist_code or id == vlist_code then
- unset_attributes(getlist(n),attr)
+if not nuts.setunsetattributes then
+
+ local function setunsetattributes(head,attr,value)
+ for n, id in nextnode, head do
+ if not getattr(n,attr) then
+ setattr(n,attr,value)
+ end
+ if id == hlist_code or id == vlist_code then
+ setunsetattributes(getlist(n),attr,value)
+ end
end
end
+
+ nuts .setunsetattributes = setunsetattributes
+ nodes.setunsetattributes = vianuts(setunsetattributes)
+
end
--- for old times sake
+if not nuts.unsetattributes then
-nuts.setattribute = nuts.setattr nodes.setattribute = nodes.setattr
-nuts.getattribute = nuts.getattr nodes.getattribute = nodes.getattr
-nuts.unsetattribute = nuts.unset_attribute nodes.unsetattribute = nodes.unset_attribute
-nuts.has_attribute = nuts.has_attribute nodes.has_attribute = nodes.has_attribute
-nuts.firstglyph = nuts.first_glyph nodes.firstglyph = nodes.first_glyph
+ local function unsetattributes(head,attr)
+ for n, id in nextnode, head do
+ setattr(n,attr,unsetvalue)
+ if id == hlist_code or id == vlist_code then
+ unsetattributes(getlist(n),attr)
+ end
+ end
+ end
+
+ nuts .unsetattributes = unsetattributes
+ nodes.unsetattributes = vianuts(unsetattributes)
-nuts.setattributes = set_attributes nodes.setattributes = vianuts(set_attributes)
-nuts.setunsetattributes = set_unset_attributes nodes.setunsetattributes = vianuts(set_unset_attributes)
-nuts.unsetattributes = unset_attributes nodes.unsetattributes = vianuts(unset_attributes)
+end
function nuts.firstcharacter(n,untagged) -- tagged == subtype > 255
if untagged then
- return first_glyph(n)
+ return firstglyph(n)
else
for g in nextglyph ,n do
return g
@@ -370,7 +379,7 @@ local function rehpack(n,width)
local set, order, sign = getboxglue(temp)
setboxglue(n,set,order,sign)
setlist(temp)
- flush_node(temp)
+ flushnode(temp)
return n
end
@@ -406,7 +415,7 @@ do
local getsubtype = nodes.getsubtype
- function nodes.start_of_par(n)
+ function nodes.startofpar(n)
local s = getsubtype(n)
return s == hmodepar_code or s == vmodepar_code
end
@@ -423,8 +432,6 @@ if not nuts.getnormalizedline then
local getlist = nuts.getlist
local getwidth = nuts.getwidth
- local direct = node.direct
-
local nodecodes = nodes.nodecodes
local skipcodes = nodes.skipcodes
@@ -438,7 +445,7 @@ if not nuts.getnormalizedline then
local indentskip_code = skipcodes.indentskip
local parfillskip_code = skipcodes.parfillskip
- local find_node = direct.find_node or function(h,t,s)
+ nuts.findnode = node.direct.find_node or function(h,t,s)
if h then
if s then
for node, subtype in traversers[t] do
@@ -454,7 +461,6 @@ if not nuts.getnormalizedline then
end
end
- nuts.find_node = find_node
function nuts.getnormalizedline(h)
if getid(h) == hlist_code and getsubtype(h) == line_code then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-bck.lua b/Master/texmf-dist/tex/context/base/mkiv/node-bck.lua
index ec84a3db5c3..b2c36ea5251 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-bck.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-bck.lua
@@ -52,7 +52,7 @@ local nextnode = nuts.traversers.node
local nexthlist = nuts.traversers.hlist
local nextlist = nuts.traversers.list
-local flush_node_list = nuts.flush_list
+local flushnodelist = nuts.flushlist
local new_rule = nodepool.rule
local new_kern = nodepool.kern
@@ -160,7 +160,7 @@ local function add_alignbackgrounds(head,list)
local template = getprop(head,"alignmentchecked")
if template then
list = colored_b(head,list,template[1],hlist_code,template[2])
- flush_node_list(template)
+ flushnodelist(template)
templates[currentrow] = false
return list
end
@@ -238,15 +238,6 @@ function nodes.handlers.backgroundsvbox(head,where)
return head
end
--- interfaces.implement {
--- name = "enablebackgroundboxes",
--- onlyonce = true,
--- actions = enableaction,
--- arguments = { "'shipouts'", "'nodes.handlers.backgrounds'" }
--- }
---
--- doing it in the shipout works as well but this is nicer
-
local function enable(alignmentstoo)
if not enabled then
enabled = true
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-bwc.lua b/Master/texmf-dist/tex/context/base/mkiv/node-bwc.lua
new file mode 100644
index 00000000000..e287de68e88
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-bwc.lua
@@ -0,0 +1,92 @@
+if not modules then modules = { } end modules ['node-bwc'] = {
+ version = 1.001,
+ comment = "companion to node-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- This is a backward compatibility list.
+
+local nodes = nodes
+local nuts = nodes.nuts
+
+nuts .check_discretionaries = nuts .checkdiscretionaries
+nuts .copy_list = nuts .copylist
+nuts .copy_node = nuts .copynode
+nuts .copy_only = nuts .copyonly
+nuts .current_attr = nuts .currentattributes
+nuts .effective_glue = nuts .effectiveglue
+nuts .end_of_math = nuts .endofmath
+nuts .find_attribute = nuts .findattribute
+nuts .first_glyph = nuts .firstglyph
+nuts .flatten_discretionaries = nuts .flattendiscretionaries
+nuts .flush_list = nuts .flushlist
+nuts .flush_node = nuts .flushnode
+nuts .get_attribute = nuts .getattribute
+nuts .get_synctex_fields = nuts .getsynctexfields
+nuts .has_attribute = nuts .hasattribute
+nuts .has_dimensions = nuts .hasdimensions
+nuts .has_field = nuts .hasfield
+nuts .has_glyph = nuts .hasglyph
+nuts .insert_after = nuts .insertafter
+nuts .insert_before = nuts .insertbefore
+nuts .is_direct = nuts .isdirect
+nuts .is_node = nuts .isnode
+nuts .is_nut = nuts .isnut
+nuts .is_zero_glue = nuts .iszeroglue
+nuts .mlist_to_hlist = nuts .mlisttohlist
+nuts .protect_glyph = nuts .protectglyph
+nuts .protect_glyphs = nuts .protectglyphs
+-----.protrusion_skippable = nuts .protrusionskippable
+nuts .set_attribute = nuts .setattribute
+-----.set_synctex_fields = nuts .setsynctexfields
+nuts .start_of_par = nuts .startofpar
+nuts .traverse_id = nuts .traverseid
+nuts .traverse_char = nuts .traversechar
+nuts .traverse_glyph = nuts .traverseglyph
+nuts .traverse_id = nuts .traverseid
+nuts .traverse_list = nuts .traverselist
+nuts .unprotect_glyph = nuts .unprotectglyph
+nuts .unprotect_glyphs = nuts .unprotectglyphs
+nuts .unset_attribute = nuts .unsetattribute
+nuts .uses_font = nuts .usesfont
+nuts .getattr = nuts .getattribute
+nuts .getattrs = nuts .getattributes
+nuts .getattrlist = nuts .getattributelist
+
+-----.check_discretionaries = nodes.checkdiscretionaries
+nodes.copy_list = nodes.copylist
+nodes.copy_node = nodes.copynode
+nodes.current_attributes = nodes.currentattributes
+nodes.effective_glue = nodes.effectiveglue
+nodes.end_of_math = nodes.endofmath
+nodes.find_attribute = nodes.findattribute
+nodes.first_glyph = nodes.firstglyph
+-----.flatten_discretionaries = nodes.flattendiscretionaries
+nodes.flush_list = nodes.flushlist
+nodes.flush_node = nodes.flushnode
+nodes.has_attribute = nodes.hasattribute
+nodes.has_field = nodes.hasfield
+nodes.has_glyph = nodes.hasglyph
+nodes.insert_after = nodes.insertafter
+nodes.insert_before = nodes.insertbefore
+nodes.is_node = nodes.isnode
+nodes.is_direct = nodes.isdirect
+nodes.is_nut = nodes.isnut
+nodes.is_zero_glue = nodes.iszeroglue
+nodes.last_node = nodes.lastnode
+nodes.mlist_to_hlist = nodes.mlisttohlist
+nodes.protect_glyph = nodes.protectglyph
+nodes.protect_glyphs = nodes.protectglyphs
+nodes.protrusion_skippable = nodes.protrusionskippable
+nodes.set_attribute = nodes.setattribute
+nodes.traverse_id = nodes.traverseid
+nodes.traverse_char = nodes.traversechar
+nodes.traverse_glyph = nodes.traverseglyph
+nodes.traverse_id = nodes.traverseid
+nodes.traverse_list = nodes.traverselist
+nodes.unprotect_glyph = nodes.unprotectglyph
+nodes.unprotect_glyphs = nodes.unprotectglyphs
+nodes.unset_attribute = nodes.unsetattribute
+nodes.uses_font = nodes.usesfont
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-fin.lua b/Master/texmf-dist/tex/context/base/mkiv/node-fin.lua
index 373cce3ce60..b9ba169ddb0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-fin.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-fin.lua
@@ -17,57 +17,57 @@ local setmetatableindex = table.setmetatableindex
local attributes, nodes, node = attributes, nodes, node
-local nuts = nodes.nuts
-local tonut = nodes.tonut
-
-local getnext = nuts.getnext
-local getid = nuts.getid
-local getlist = nuts.getlist
-local getleader = nuts.getleader
-local getattr = nuts.getattr
-local getwidth = nuts.getwidth
-local getwhd = nuts.getwhd
-local getorientation = nuts.getorientation
-local has_dimensions = nuts.has_dimensions
-local getbox = nuts.getbox
-
-local setlist = nuts.setlist
-local setleader = nuts.setleader
-
-local copy_node = nuts.copy
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
-
-local nextnode = nuts.traversers.node
-
-local nodecodes = nodes.nodecodes
-local rulecodes = nodes.rulecodes
-
-local boxrule_code = rulecodes.box
-local imagerule_code = rulecodes.image
-local emptyrule_code = rulecodes.empty
-
-local glyph_code = nodecodes.glyph
-local disc_code = nodecodes.disc
-local glue_code = nodecodes.glue
-local rule_code = nodecodes.rule
-local hlist_code = nodecodes.hlist
-local vlist_code = nodecodes.vlist
-
-local texlists = tex.lists
-local texgetnest = tex.getnest
-
-local states = attributes.states
-local numbers = attributes.numbers
-local a_trigger = attributes.private('trigger')
-local triggering = false
-
-local implement = interfaces.implement
-
-local starttiming = statistics.starttiming
-local stoptiming = statistics.stoptiming
-local loadstripped = utilities.lua.loadstripped
-local unsetvalue = attributes.unsetvalue
+local nuts = nodes.nuts
+local tonut = nodes.tonut
+
+local getnext = nuts.getnext
+local getid = nuts.getid
+local getlist = nuts.getlist
+local getleader = nuts.getleader
+local getattr = nuts.getattr
+local getwidth = nuts.getwidth
+local getwhd = nuts.getwhd
+local getorientation = nuts.getorientation
+local hasdimensions = nuts.hasdimensions
+local getbox = nuts.getbox
+
+local setlist = nuts.setlist
+local setleader = nuts.setleader
+
+local copy_node = nuts.copy
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
+
+local nextnode = nuts.traversers.node
+
+local nodecodes = nodes.nodecodes
+local rulecodes = nodes.rulecodes
+
+local boxrule_code = rulecodes.box
+local imagerule_code = rulecodes.image
+local emptyrule_code = rulecodes.empty
+
+local glyph_code = nodecodes.glyph
+local disc_code = nodecodes.disc
+local glue_code = nodecodes.glue
+local rule_code = nodecodes.rule
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+
+local texlists = tex.lists
+local texgetnest = tex.getnest
+
+local states = attributes.states
+local numbers = attributes.numbers
+local a_trigger = attributes.private('trigger')
+local triggering = false
+
+local implement = interfaces.implement
+
+local starttiming = statistics.starttiming
+local stoptiming = statistics.stoptiming
+local loadstripped = utilities.lua.loadstripped
+local unsetvalue = attributes.unsetvalue
-- these two will be like trackers
@@ -163,13 +163,13 @@ function states.finalize(namespace,attribute,head) -- is this one ok?
if id == hlist_code or id == vlist_code then
local content = getlist(head)
if content then
- local list = insert_node_before(content,content,copy_node(nsnone)) -- two return values
+ local list = insertnodebefore(content,content,copy_node(nsnone)) -- two return values
if list ~= content then
setlist(head,list)
end
end
else
- head = insert_node_before(head,head,copy_node(nsnone))
+ head = insertnodebefore(head,head,copy_node(nsnone))
end
return head, true
end
@@ -199,20 +199,20 @@ local function process(attribute,head,inheritance,default) -- one attribute
if outer then
if default and outer == inheritance then
if current ~= default then
- head = insert_node_before(head,stack,copy_node(nsdata[default]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[default]))
current = default
end
elseif current ~= outer then
- head = insert_node_before(head,stack,copy_node(nsdata[c]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[c])) -- hm, what is c ... bug
current = outer
end
elseif default and inheritance then
if current ~= default then
- head = insert_node_before(head,stack,copy_node(nsdata[default]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[default]))
current = default
end
elseif current > 0 then
- head = insert_node_before(head,stack,copy_node(nsnone))
+ head = insertnodebefore(head,stack,copy_node(nsnone))
current = 0
end
end
@@ -236,7 +236,7 @@ local function process(attribute,head,inheritance,default) -- one attribute
-- end nested --
end
elseif id == rule_code then
- check = has_dimensions(stack)
+ check = hasdimensions(stack)
end
-- much faster this way than using a check() and nested() function
if check then
@@ -244,11 +244,11 @@ local function process(attribute,head,inheritance,default) -- one attribute
if c then
if default and c == inheritance then
if current ~= default then
- head = insert_node_before(head,stack,copy_node(nsdata[default]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[default]))
current = default
end
elseif current ~= c then
- head = insert_node_before(head,stack,copy_node(nsdata[c]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[c]))
current = c
end
if leader then
@@ -281,11 +281,11 @@ local function process(attribute,head,inheritance,default) -- one attribute
end
elseif default and inheritance then
if current ~= default then
- head = insert_node_before(head,stack,copy_node(nsdata[default]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[default]))
current = default
end
elseif current > 0 then
- head = insert_node_before(head,stack,copy_node(nsnone))
+ head = insertnodebefore(head,stack,copy_node(nsnone))
current = 0
end
check = false
@@ -326,7 +326,7 @@ local function selective(attribute,head,inheritance,default) -- two attributes
if default and outer == inheritance then
if current ~= default then
local data = nsdata[default]
- head = insert_node_before(head,stack,copy_node(data[nsforced or getattr(stack,nsselector) or nsselector]))
+ head = insertnodebefore(head,stack,copy_node(data[nsforced or getattr(stack,nsselector) or nsselector]))
current = default
end
else
@@ -334,7 +334,7 @@ local function selective(attribute,head,inheritance,default) -- two attributes
-- local s = nsforced or getattr(stack,nsselector)
if current ~= outer or current_selector ~= s then
local data = nsdata[outer]
- head = insert_node_before(head,stack,copy_node(data[nsforced or s or nsselector]))
+ head = insertnodebefore(head,stack,copy_node(data[nsforced or s or nsselector]))
current = outer
current_selector = s
end
@@ -342,11 +342,11 @@ local function selective(attribute,head,inheritance,default) -- two attributes
elseif default and inheritance then
if current ~= default then
local data = nsdata[default]
- head = insert_node_before(head,stack,copy_node(data[nsforced or getattr(stack,nsselector) or nsselector]))
+ head = insertnodebefore(head,stack,copy_node(data[nsforced or getattr(stack,nsselector) or nsselector]))
current = default
end
elseif current > 0 then
- head = insert_node_before(head,stack,copy_node(nsnone))
+ head = insertnodebefore(head,stack,copy_node(nsnone))
current, current_selector = 0, 0
end
end
@@ -374,7 +374,7 @@ local function selective(attribute,head,inheritance,default) -- two attributes
-- so no redundant color stuff (only here, layers for instance should obey)
check = false
else
- check = has_dimensions(stack)
+ check = hasdimensions(stack)
end
else
end
@@ -384,7 +384,7 @@ local function selective(attribute,head,inheritance,default) -- two attributes
if default and c == inheritance then
if current ~= default then
local data = nsdata[default]
- head = insert_node_before(head,stack,copy_node(data[nsforced or getattr(stack,nsselector) or nsselector]))
+ head = insertnodebefore(head,stack,copy_node(data[nsforced or getattr(stack,nsselector) or nsselector]))
current = default
end
else
@@ -392,7 +392,7 @@ local function selective(attribute,head,inheritance,default) -- two attributes
-- local s = nsforced or getattr(stack,nsselector)
if current ~= c or current_selector ~= s then
local data = nsdata[c]
- head = insert_node_before(head,stack,copy_node(data[nsforced or s or nsselector]))
+ head = insertnodebefore(head,stack,copy_node(data[nsforced or s or nsselector]))
current = c
current_selector = s
end
@@ -419,11 +419,11 @@ local function selective(attribute,head,inheritance,default) -- two attributes
elseif default and inheritance then
if current ~= default then
local data = nsdata[default]
- head = insert_node_before(head,stack,copy_node(data[nsforced or getattr(stack,nsselector) or nsselector]))
+ head = insertnodebefore(head,stack,copy_node(data[nsforced or getattr(stack,nsselector) or nsselector]))
current = default
end
elseif current > 0 then
- head = insert_node_before(head,stack,copy_node(nsnone))
+ head = insertnodebefore(head,stack,copy_node(nsnone))
current, current_selector = 0, 0
end
check = false
@@ -470,9 +470,9 @@ local function stacked(attribute,head,default) -- no triggering, no inheritance,
if a and current ~= a and nslistwise[a] then -- viewerlayer / needs checking, see below
local p = current
current = a
- head = insert_node_before(head,stack,copy_node(nsdata[a]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[a]))
list = stacked(attribute,content,current) -- two return values
- head, stack = insert_node_after(head,stack,copy_node(nsnone))
+ head, stack = insertnodeafter(head,stack,copy_node(nsnone))
current = p
else
list = stacked(attribute,content,current)
@@ -485,13 +485,13 @@ local function stacked(attribute,head,default) -- no triggering, no inheritance,
end
end
elseif id == rule_code then
- check = has_dimensions(stack)
+ check = hasdimensions(stack)
end
if check then
local a = getattr(stack,attribute)
if a then
if current ~= a then
- head = insert_node_before(head,stack,copy_node(nsdata[a]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[a]))
depth = depth + 1
current = a
end
@@ -508,7 +508,7 @@ local function stacked(attribute,head,default) -- no triggering, no inheritance,
elseif default > 0 then
--
elseif current > 0 then
- head = insert_node_before(head,stack,copy_node(nsnone))
+ head = insertnodebefore(head,stack,copy_node(nsnone))
depth = depth - 1
current = 0
end
@@ -517,7 +517,7 @@ local function stacked(attribute,head,default) -- no triggering, no inheritance,
stack = getnext(stack)
end
while depth > 0 do
- head = insert_node_after(head,stack,copy_node(nsnone))
+ head = insertnodeafter(head,stack,copy_node(nsnone))
depth = depth - 1
end
return head
@@ -556,12 +556,12 @@ local function stacker(attribute,head,default) -- no triggering, no inheritance,
if nslistwise then
local a = getattr(current,attribute)
if a and attrib ~= a and nslistwise[a] then -- viewerlayer
- head = insert_node_before(head,current,copy_node(nsdata[a]))
+ head = insertnodebefore(head,current,copy_node(nsdata[a]))
list = stacker(attribute,content,a)
if list ~= content then
setlist(current,list)
end
- head, current = insert_node_after(head,current,copy_node(nsnone))
+ head, current = insertnodeafter(head,current,copy_node(nsnone))
else
list = stacker(attribute,content,attrib)
if list ~= content then
@@ -576,7 +576,7 @@ local function stacker(attribute,head,default) -- no triggering, no inheritance,
end
end
elseif id == rule_code then
- check = has_dimensions(current)
+ check = hasdimensions(current)
end
if check then
@@ -588,7 +588,7 @@ local function stacker(attribute,head,default) -- no triggering, no inheritance,
end
local n = nsstep(a)
if n then
- head = insert_node_before(head,current,n) -- a
+ head = insertnodebefore(head,current,n) -- a
end
attrib = a
if leader then
@@ -617,7 +617,7 @@ local function stacker(attribute,head,default) -- no triggering, no inheritance,
if stacked then
local n = nsend()
while n do
- head = insert_node_after(head,previous,n)
+ head = insertnodeafter(head,previous,n)
n = nsend()
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-fnt.lua b/Master/texmf-dist/tex/context/base/mkiv/node-fnt.lua
index f3bb6228fe0..b3a8ccc1ee8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-fnt.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-fnt.lua
@@ -60,21 +60,19 @@ local setprev = nuts.setprev
local isglyph = nuts.isglyph -- unchecked
local ischar = nuts.ischar -- checked
------ traverse_id = nuts.traverse_id
------ traverse_char = nuts.traverse_char
local nextboundary = nuts.traversers.boundary
local nextdisc = nuts.traversers.disc
local nextchar = nuts.traversers.char
-local flush_node = nuts.flush
+local flushnode = nuts.flush
local disc_code = nodecodes.disc
local boundary_code = nodecodes.boundary
local wordboundary_code = boundarycodes.word
-local protect_glyphs = nuts.protect_glyphs
-local unprotect_glyphs = nuts.unprotect_glyphs
+local protectglyphs = nuts.protectglyphs
+local unprotectglyphs = nuts.unprotectglyphs
local setmetatableindex = table.setmetatableindex
@@ -196,7 +194,7 @@ do
local a, u, b, r
local function protectnone()
- protect_glyphs(firstnone,lastnone)
+ protectglyphs(firstnone,lastnone)
firstnone = nil
end
@@ -392,7 +390,7 @@ do
end
end
end
- flush_node(r)
+ flushnode(r)
end
end
@@ -542,5 +540,5 @@ do
end
-handlers.protectglyphs = protect_glyphs
-handlers.unprotectglyphs = unprotect_glyphs
+handlers.protectglyphs = protectglyphs
+handlers.unprotectglyphs = unprotectglyphs
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-gcm.lua b/Master/texmf-dist/tex/context/base/mkiv/node-gcm.lua
index 5b598f6b033..de0018b4cf3 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-gcm.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-gcm.lua
@@ -8,37 +8,37 @@ if not modules then modules = { } end modules ['node-gmc'] = {
local type, tostring = type, tostring
-local nodes = nodes
-local nodecodes = nodes.nodecodes
-local ligature_code = nodes.glyphcodes.ligature
-local nuts = nodes.nuts
+local nodes = nodes
+local nodecodes = nodes.nodecodes
+local ligature_code = nodes.glyphcodes.ligature
+local nuts = nodes.nuts
-local getnext = nuts.getnext
-local getsubtype = nuts.getsubtype
-local getprev = nuts.getprev
-local setlink = nuts.setlink
-local nextglyph = nuts.traversers.glyph
-local copy_node = nuts.copy
-local isglyph = nuts.isglyph
+local getnext = nuts.getnext
+local getsubtype = nuts.getsubtype
+local getprev = nuts.getprev
+local setlink = nuts.setlink
+local nextglyph = nuts.traversers.glyph
+local copynode = nuts.copy
+local isglyph = nuts.isglyph
-local report_error = logs.reporter("node-aux:error")
+local report_error = logs.reporter("node-aux:error")
-local get_components = node.direct.getcomponents
-local set_components = node.direct.setcomponents
+local getcomponents = node.direct.getcomponents
+local setcomponents = node.direct.setcomponents
-local function copy_no_components(g,copyinjection)
- local components = get_components(g)
+local function copynocomponents(g,copyinjection)
+ local components = getcomponents(g)
if components then
- set_components(g)
- local n = copy_node(g)
+ setcomponents(g)
+ local n = copynode(g)
if copyinjection then
copyinjection(n,g)
end
- set_components(g,components)
+ setcomponents(g,components)
-- maybe also upgrade the subtype but we don't use it anyway
return n
else
- local n = copy_node(g)
+ local n = copynode(g)
if copyinjection then
copyinjection(n,g)
end
@@ -46,11 +46,11 @@ local function copy_no_components(g,copyinjection)
end
end
-local function copy_only_glyphs(current)
+local function copyonlyglyphs(current)
local head = nil
local previous = nil
for n in nextglyph, current do
- n = copy_node(n)
+ n = copynode(n)
if head then
setlink(previous,n)
else
@@ -63,14 +63,14 @@ end
-- start is a mark and we need to keep that one
-local function count_components(start,marks)
+local function countcomponents(start,marks)
local char = isglyph(start)
if char then
if getsubtype(start) == ligature_code then
local n = 0
- local components = get_components(start)
+ local components = getcomponents(start)
while components do
- n = n + count_components(components,marks)
+ n = n + countcomponents(components,marks)
components = getnext(components)
end
return n
@@ -81,16 +81,18 @@ local function count_components(start,marks)
return 0
end
-local function flush_components()
+local function flushcomponents()
-- this is a no-op in mkiv / generic
end
-nuts.set_components = set_components
-nuts.get_components = get_components
-nuts.copy_only_glyphs = copy_only_glyphs
-nuts.copy_no_components = copy_no_components
-nuts.count_components = count_components
-nuts.flush_components = flush_components
+nuts.components = {
+ set = setcomponents,
+ get = getcomponents,
+ copyonlyglyphs = copyonlyglyphs,
+ copynocomponents = copynocomponents,
+ count = countcomponents,
+ flush = flushcomponents,
+}
nuts.setcomponents = function() report_error("unsupported: %a","setcomponents") end
nuts.getcomponents = function() report_error("unsupported: %a","getcomponents") end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/node-ini.lua
index 701e3efa92c..ef7d4afed2d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-ini.lua
@@ -168,8 +168,9 @@ literalvalues = allocate(swapped(literalvalues,literalvalues))
if not nodecodes.delimiter then
-- as in luametatex / lmtx
- nodecodes.delimiter = nodecodes.delim
- nodecodes[nodecodes.delimiter] = "delimiter"
+ local d = nodecodes.delim
+ nodecodes.delimiter = d
+ nodecodes[d] = "delimiter"
nodecodes.delim = nil
end
@@ -180,6 +181,14 @@ if not nodecodes.par then
nodecodes[p] = "par"
end
+if not nodecodes.insert then
+ -- as in luametatex / lmtx
+ local i = nodecodes.ins
+ nodecodes.insert = i
+ nodecodes[i] = "insert"
+ nodecodes.ins = nil
+end
+
if not gluecodes.indentskip then
gluecodes.indentskip = gluecodes.userskip
gluecodes.lefthangskip = gluecodes.userskip
@@ -192,6 +201,7 @@ end
if not whatcodes.literal then
whatcodes.literal = whatcodes.pdfliteral
+ whatcodes.lateliteral = whatcodes.pdflateliteral
whatcodes.save = whatcodes.pdfsave
whatcodes.restore = whatcodes.pdfrestore
whatcodes.setmatrix = whatcodes.pdfsetmatrix
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/node-ini.mkiv
index 072cb319aad..10998d0604c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-ini.mkiv
@@ -29,7 +29,6 @@
\registerctxluafile{node-snp}{}
\registerctxluafile{node-tsk}{}
\registerctxluafile{node-tex}{}
-\registerctxluafile{node-dir}{} % experimental, not yet (and maybe never) used
\registerctxluafile{node-pro}{}
\registerctxluafile{node-ser}{}
%registerctxluafile{node-ext}{}
@@ -38,6 +37,7 @@
\registerctxluafile{node-scn}{}
\registerctxluafile{node-syn}{}
\registerctxluafile{node-par}{}
+\registerctxluafile{node-bwc}{} % might stay
\newcount\c_node_tracers_show_box % box number
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-ltp.lua b/Master/texmf-dist/tex/context/base/mkiv/node-ltp.lua
index 6cb9e8d102f..f008422e054 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-ltp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-ltp.lua
@@ -220,7 +220,7 @@ local getpre = nuts.getpre
local setpre = nuts.setpre
local isglyph = nuts.isglyph
-local start_of_par = nuts.start_of_par
+local startofpar = nuts.startofpar
local setfield = nuts.setfield
local setlink = nuts.setlink
@@ -240,16 +240,16 @@ local setexpansion = nuts.setexpansion
local find_tail = nuts.tail
local copy_node = nuts.copy
-local flush_node = nuts.flush
-local flush_node_list = nuts.flush_list
+local flushnode = nuts.flush
+local flushnodelist = nuts.flushlist
----- hpack_nodes = nuts.hpack
local xpack_nodes = nuts.hpack
local replace_node = nuts.replace
local remove_node = nuts.remove
-local insert_node_after = nuts.insert_after
-local insert_node_before = nuts.insert_before
-local is_zero_glue = nuts.is_zero_glue
-local is_skipable = nuts.protrusion_skippable
+local insertnodeafter = nuts.insertafter
+local insertnodebefore = nuts.insertbefore
+local iszeroglue = nuts.iszeroglue
+local protrusionskippable = nuts.protrusionskippable
local setattributelist = nuts.setattributelist
local find_node = nuts.find_node
@@ -267,7 +267,7 @@ local gluecodes = nodes.gluecodes
local temp_code = nodecodes.temp
local glyph_code = nodecodes.glyph
-local ins_code = nodecodes.ins
+local insert_code = nodecodes.insert
local mark_code = nodecodes.mark
local adjust_code = nodecodes.adjust
local penalty_code = nodecodes.penalty
@@ -386,7 +386,7 @@ local function inject_dirs_at_begin_of_line(stack,current)
for i=1,n do
local d = new_direction(stack[i])
setattributelist(d,current)
- h, current = insert_node_after(h,current,d)
+ h, current = insertnodeafter(h,current,d)
end
stack.n = 0
return h
@@ -421,14 +421,14 @@ end
for i=n,1,-1 do
local d = new_direction(stack[i],true)
setattributelist(d,start)
- h, current = insert_node_after(h,current,d)
+ h, current = insertnodeafter(h,current,d)
end
end
stack.n = n
return current
end
-local ignore_math_skip = node.direct.ignore_math_skip or function(current)
+local ignoremathskip = nuts.ignoremathskip or function(current)
local mode = texget("mathskipmode")
if mode == 6 or mode == 7 then
local b = true
@@ -744,7 +744,7 @@ local function find(head) -- do we really want to recurse into an hlist?
else
return head
end
- elseif is_skipable(head) then
+ elseif protrusionskippable(head) then
head = getnext(head)
else
return head
@@ -798,7 +798,7 @@ local function find(head,tail)
else
return tail
end
- elseif is_skipable(tail) then
+ elseif protrusionskippable(tail) then
tail = getprev(tail)
else
return tail
@@ -1010,7 +1010,7 @@ do
end
local function used_skip(s)
- return s and not is_zero_glue(s) and s
+ return s and not iszeroglue(s) and s
end
local function initialize_line_break(head,display)
@@ -1357,7 +1357,7 @@ do
report_parbuilders('unsupported disc at location %a',3)
end
if pre then
- flush_node_list(pre)
+ flushnodelist(pre)
pre = nil -- signal
end
if replace then
@@ -1368,13 +1368,13 @@ do
setdisc(lastnode,pre,post,replace)
local pre, post, replace = getdisc(prevlast)
if pre then
- flush_node_list(pre)
+ flushnodelist(pre)
end
if replace then
- flush_node_list(replace)
+ flushnodelist(replace)
end
if post then
- flush_node_list(post)
+ flushnodelist(post)
end
setdisc(prevlast) -- nil,nil,nil
elseif subtype == firstdisc_code then
@@ -1387,7 +1387,7 @@ do
setpost(lastnode)
end
if replace then
- flush_node_list(replace)
+ flushnodelist(replace)
end
if pre then
setlink(prevlast,pre)
@@ -1414,7 +1414,7 @@ do
lastnode = inject_dirs_at_end_of_line(dirstack,lastnode,getnext(head),current_break.cur_break)
local rightbox = current_break.passive_right_box
if rightbox then
- lastnode = insert_node_after(lastnode,lastnode,copy_node(rightbox))
+ lastnode = insertnodeafter(lastnode,lastnode,copy_node(rightbox))
end
if not lineend then
lineend = lastnode
@@ -1495,8 +1495,8 @@ do
-- so we inherit attributes, lineend is new pseudo head
local k = new_rightmarginkern(copy_node(last_rightmost_char),-w)
setattributelist(k,p)
--- insert_node_after(c,c,k)
- insert_node_after(p,p,k)
+-- insertnodeafter(c,c,k)
+ insertnodeafter(p,p,k)
-- if c == lineend then
-- lineend = getnext(c)
-- end
@@ -1512,7 +1512,7 @@ do
if not glue_break then
local rs = new_rightskip(unpack(rightskip))
setattributelist(rs,lineend)
- start, lineend = insert_node_after(start,lineend,rs)
+ start, lineend = insertnodeafter(start,lineend,rs)
end
local rs = lineend
-- insert leftbox (if needed after parindent)
@@ -1520,9 +1520,9 @@ do
if leftbox then
local first = getnext(start)
if first and current_line == (par.first_line + 1) and getid(first) == hlist_code and not getlist(first) then
- insert_node_after(start,start,copy_node(leftbox))
+ insertnodeafter(start,start,copy_node(leftbox))
else
- start = insert_node_before(start,start,copy_node(leftbox))
+ start = insertnodebefore(start,start,copy_node(leftbox))
end
end
if protrude_chars > 0 then
@@ -1534,7 +1534,7 @@ do
if last_leftmost_char and w ~= 0 then
local k = new_rightmarginkern(copy_node(last_leftmost_char),-w)
setattributelist(k,p)
- start = insert_node_before(start,start,k)
+ start = insertnodebefore(start,start,k)
end
end
end
@@ -1546,7 +1546,7 @@ do
-- so we inherit attributes, start is pseudo head and moves back
local k = new_leftmarginkern(copy_node(last_leftmost_char),-w)
setattributelist(k,p)
- start = insert_node_before(start,start,k)
+ start = insertnodebefore(start,start,k)
end
end
end
@@ -1556,7 +1556,7 @@ do
-- we could check for non zero but we will normalize anyway
ls = new_leftskip(unpack(leftskip))
setattributelist(ls,start)
- start = insert_node_before(start,start,ls)
+ start = insertnodebefore(start,start,ls)
end
if normalize > 0 then
local par = nil
@@ -1570,7 +1570,7 @@ do
indent = n
end
elseif id == par_code then
- if start_of_par(n) then --- maybe subtype check instead
+ if startofpar(n) then --- maybe subtype check instead
par = n
elseif noflocals then
noflocals = noflocals + 1
@@ -1635,11 +1635,11 @@ do
setattributelist(r,start)
if normalize > 3 then
-- makes most sense
- start = insert_node_after(start,ls,l)
- start = insert_node_before(start,rs,r)
+ start = insertnodeafter(start,ls,l)
+ start = insertnodebefore(start,rs,r)
else
- start = insert_node_before(start,ls,l)
- start = insert_node_after(start,rs,r)
+ start = insertnodebefore(start,ls,l)
+ start = insertnodeafter(start,rs,r)
end
cur_width = hsize
cur_indent = 0
@@ -1740,7 +1740,7 @@ do
end
if current ~= head then
setnext(current)
- flush_node_list(getnext(head))
+ flushnodelist(getnext(head))
setlink(head,next)
end
end
@@ -1759,7 +1759,7 @@ par.head = head
report_parbuilders("no local par node")
end
end
- flush_node(h)
+ flushnode(h)
par.head = nil -- needs checking
end
current_line = current_line - 1
@@ -1799,7 +1799,7 @@ par.head = head
if next then
setprev(next)
end
- flush_node(head)
+ flushnode(head)
end
post_line_break(par)
reset_meta(par)
@@ -2600,7 +2600,7 @@ par.head = head
end
elseif id == math_code then
auto_breaking = getsubtype(current) == endmath_code
- if is_zero_glue(current) or ignore_math_skip(current) then
+ if iszeroglue(current) or ignoremathskip(current) then
local v = getnext(current)
if auto_breaking and getid(v) == glue_code then
p_active, n_active = try_break(0, unhyphenated_code, par, first_p, current, checked_expansion)
@@ -2624,7 +2624,7 @@ par.head = head
par.internal_right_box = getfield(current,"box_right")
par.internal_right_box_width = getfield(current,"box_right_width")
elseif trace_unsupported then
- if id == mark_code or id == ins_code or id == adjust_code then
+ if id == mark_code or id == insert_code or id == adjust_code then
-- skip
else
report_parbuilders("node of type %a found in paragraph",type(id))
@@ -3090,7 +3090,7 @@ do
end
natural = natural + wd
elseif id == math_code then
- if is_zero_glue(current) or ignore_math_skip(current) then
+ if iszeroglue(current) or ignoremathskip(current) then
natural = natural + getkern(current)
else
local wd, stretch, shrink, stretch_order, shrink_order = getglue(current)
@@ -3098,7 +3098,7 @@ do
total_shrink [shrink_order] = total_shrink[shrink_order] + shrink
natural = natural + wd
end
- elseif id == ins_code or id == mark_code then
+ elseif id == insert_code or id == mark_code then
local prev, next = getboth(current)
if adjust_tail then -- todo
setlink(prev,next)
@@ -3272,7 +3272,7 @@ do
if p and getid(p) == marginkern_code then
found = p
end
- insert_node_before(head,found,g)
+ insertnodebefore(head,found,g)
end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-met.lua b/Master/texmf-dist/tex/context/base/mkiv/node-met.lua
index 31f9a16b28b..45639b5bad3 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-met.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-met.lua
@@ -1,4 +1,4 @@
-if not modules then modules = { } end modules ['node-MET'] = {
+ if not modules then modules = { } end modules ['node-MET'] = {
version = 1.001,
comment = "companion to node-ini.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
@@ -10,7 +10,7 @@ if not modules then modules = { } end modules ['node-MET'] = {
-- the regular code is proven stable. No support otherwise.
-- luatex: todo: copylist should return h, t
--- todo: see if using insert_before and insert_after makes sense here
+-- todo: see if using insertbefore and insertafter makes sense here
-- This file is a side effect of the \LUATEX\ speed optimization project of Luigi
-- Scarso and me. As \CONTEXT\ spends over half its time in \LUA, we though that
@@ -65,73 +65,75 @@ end
-- We start with some helpers and provide all relevant basic functions in the
-- node namespace as well.
-nodes = nodes or { }
-local nodes = nodes
-
-local nodecodes = nodes.nodecodes
-
-nodes.tostring = node.tostring or tostring
-nodes.copy = node.copy
-nodes.copy_node = node.copy
-nodes.copy_list = node.copy_list
-nodes.delete = node.delete
-nodes.dimensions = node.dimensions
-nodes.rangedimensions = node.rangedimensions
-nodes.end_of_math = node.end_of_math
-nodes.flush = node.flush_node
-nodes.flush_node = node.flush_node
-nodes.flush_list = node.flush_list
-nodes.free = node.free
-nodes.insert_after = node.insert_after
-nodes.insert_before = node.insert_before
-nodes.hpack = node.hpack
-nodes.new = node.new
-nodes.tail = node.tail
-nodes.traverse = node.traverse
-nodes.traverse_id = node.traverse_id
-nodes.traverse_char = node.traverse_char
-nodes.traverse_glyph = node.traverse_glyph
-nodes.traverse_list = node.traverse_list
-nodes.slide = node.slide
-nodes.vpack = node.vpack
-nodes.fields = node.fields
-nodes.is_node = node.is_node
-nodes.setglue = node.setglue
-nodes.uses_font = node.uses_font
-
-nodes.first_glyph = node.first_glyph
-nodes.has_glyph = node.has_glyph or node.first_glyph
-
-nodes.current_attributes = node.current_attributes or node.current_attr
-nodes.has_field = node.has_field
-nodes.last_node = node.last_node
-nodes.usedlist = node.usedlist
-nodes.protrusion_skippable = node.protrusion_skippable
-nodes.check_discretionaries = node.check_discretionaries
-nodes.write = node.write
-nodes.flatten_discretionaries = node.flatten_discretionaries
-
-nodes.count = node.count
-nodes.length = node.length
-
-nodes.has_attribute = node.has_attribute
-nodes.set_attribute = node.set_attribute
-nodes.find_attribute = node.find_attribute
-nodes.unset_attribute = node.unset_attribute
-
-nodes.protect_glyph = node.protect_glyph
-nodes.protect_glyphs = node.protect_glyphs
-nodes.unprotect_glyph = node.unprotect_glyph
-nodes.unprotect_glyphs = node.unprotect_glyphs
-nodes.kerning = node.kerning
-nodes.ligaturing = node.ligaturing
-nodes.hyphenating = node.hyphenating
-nodes.mlist_to_hlist = node.mlist_to_hlist
-
-nodes.effective_glue = node.effective_glue
-nodes.getglue = node.getglue
-nodes.setglue = node.setglue
-nodes.is_zero_glue = node.is_zero_glue
+nodes = nodes or { }
+local nodes = nodes
+
+local nodecodes = nodes.nodecodes
+
+nodes.tostring = node.tostring or tostring
+nodes.copy = node.copy
+nodes.copynode = node.copy
+nodes.copylist = node.copy_list
+nodes.delete = node.delete
+nodes.dimensions = node.dimensions
+nodes.rangedimensions = node.rangedimensions
+nodes.endofmath = node.end_of_math
+nodes.flush = node.flush_node
+nodes.flushnode = node.flush_node
+nodes.flushlist = node.flush_list
+nodes.free = node.free
+nodes.insertafter = node.insert_after
+nodes.insertbefore = node.insert_before
+nodes.hpack = node.hpack
+nodes.new = node.new
+nodes.tail = node.tail
+nodes.traverse = node.traverse
+nodes.traverseid = node.traverse_id
+nodes.traversechar = node.traverse_char
+nodes.traverseglyph = node.traverse_glyph
+nodes.traverselist = node.traverse_list
+nodes.slide = node.slide
+nodes.vpack = node.vpack
+nodes.fields = node.fields
+nodes.isnode = node.is_node
+nodes.isdirect = node.is_direct
+nodes.isnut = node.is_direct
+nodes.setglue = node.setglue
+nodes.usesfont = node.uses_font
+
+nodes.firstglyph = node.first_glyph
+nodes.hasglyph = node.has_glyph
+
+nodes.currentattributes = node.current_attributes or node.current_attr
+nodes.hasfield = node.has_field
+nodes.last_node = node.last_node
+nodes.usedlist = node.usedlist
+nodes.protrusionskippable = node.protrusion_skippable
+nodes.checkdiscretionaries = node.check_discretionaries
+nodes.write = node.write
+nodes.flattendiscretionaries = node.flatten_discretionaries
+
+nodes.count = node.count
+nodes.length = node.length
+
+nodes.hasattribute = node.has_attribute
+nodes.setattribute = node.set_attribute
+nodes.findattribute = node.find_attribute
+nodes.unsetattribute = node.unset_attribute
+
+nodes.protectglyph = node.protect_glyph
+nodes.protectglyphs = node.protect_glyphs
+nodes.unprotectglyph = node.unprotect_glyph
+nodes.unprotectglyphs = node.unprotect_glyphs
+nodes.kerning = node.kerning
+nodes.ligaturing = node.ligaturing
+nodes.hyphenating = node.hyphenating
+nodes.mlisttohlist = node.mlist_to_hlist
+
+nodes.effectiveglue = node.effective_glue
+nodes.getglue = node.getglue
+nodes.setglue = node.setglue
+nodes.iszeroglue = node.iszeroglue
nodes.tonode = function(n) return n end
nodes.tonut = function(n) return n end
@@ -149,7 +151,7 @@ nodes.getfield = n_getfield
nodes.setfield = n_setfield
nodes.getattr = n_getattr
nodes.setattr = n_setattr
-nodes.takeattr = nodes.unset_attribute
+nodes.takeattr = nodes.unsetattribute
local function n_getid (n) return n_getfield(n,"id") end
local function n_getsubtype(n) return n_getfield(n,"subtype") end
@@ -213,13 +215,13 @@ nodes.setlink = n_setlink
nodes.getbox = node.getbox or tex.getbox
nodes.setbox = node.setbox or tex.setbox
-local n_flush_node = nodes.flush
-local n_copy_node = nodes.copy
-local n_copy_list = nodes.copy_list
-local n_find_tail = nodes.tail
-local n_insert_after = nodes.insert_after
-local n_insert_before = nodes.insert_before
-local n_slide = nodes.slide
+local n_flushnode = nodes.flush
+local n_copynode = nodes.copy
+local n_copylist = nodes.copylist
+local n_findtail = nodes.tail
+local n_insertafter = nodes.insertafter
+local n_insertbefore = nodes.insertbefore
+local n_slide = nodes.slide
local n_remove_node = node.remove -- not yet nodes.remove
@@ -229,7 +231,7 @@ local function remove(head,current,free_too)
if not t then
-- forget about it
elseif free_too then
- n_flush_node(t)
+ n_flushnode(t)
t = nil
else
n_setboth(t)
@@ -266,10 +268,10 @@ function nodes.replace(head,current,new) -- no head returned if false
if head == current then
head = new
end
- n_flush_node(current)
+ n_flushnode(current)
return head, new
else
- n_flush_node(current)
+ n_flushnode(current)
return new
end
end
@@ -278,14 +280,14 @@ end
function nodes.append(head,current,...)
for i=1,select("#",...) do
- head, current = n_insert_after(head,current,(select(i,...)))
+ head, current = n_insertafter(head,current,(select(i,...)))
end
return head, current
end
function nodes.prepend(head,current,...)
for i=1,select("#",...) do
- head, current = n_insert_before(head,current,(select(i,...)))
+ head, current = n_insertbefore(head,current,(select(i,...)))
end
return head, current
end
@@ -300,7 +302,7 @@ function nodes.linked(...)
else
head = next
end
- last = n_find_tail(next) -- we could skip the last one
+ last = n_findtail(next) -- we could skip the last one
end
end
return head
@@ -391,7 +393,7 @@ metatable.__concat = function(n1,n2) -- todo: accept nut on one end
-- or abort
return n2 -- or n2 * 2
else
- local tail = n_find_tail(n1)
+ local tail = n_findtail(n1)
n_setlink(tail,n2)
return n1
end
@@ -406,19 +408,19 @@ metatable.__mul = function(n,multiplier)
elseif n_getnext(n) then
local head
for i=2,multiplier do
- local h = n_copy_list(n)
+ local h = n_copylist(n)
if head then
- local t = n_find_tail(h)
+ local t = n_findtail(h)
n_setlink(t,head)
end
head = h
end
- local t = n_find_tail(n)
+ local t = n_findtail(n)
n_setlink(t,head)
else
local head
for i=2,multiplier do
- local c = n_copy_node(n)
+ local c = n_copynode(n)
if head then
n_setlink(c,head)
end
@@ -431,10 +433,10 @@ end
metatable.__sub = function(first,second)
if type(second) == "number" then
- local tail = n_find_tail(first)
+ local tail = n_findtail(first)
for i=1,second do
local prev = n_getprev(tail)
- n_flush_node(tail) -- can become flushlist/flushnode
+ n_flushnode(tail) -- can become flushlist/flushnode
if prev then
tail = prev
else
@@ -449,15 +451,15 @@ metatable.__sub = function(first,second)
end
else
-- aaaaa - bbb => aaaabbba
- local firsttail = n_find_tail(first)
+ local firsttail = n_findtail(first)
local prev = n_getprev(firsttail)
if prev then
- local secondtail = n_find_tail(second)
+ local secondtail = n_findtail(second)
n_setlink(secondtail,firsttail)
n_setlink(prev,second)
return first
else
- local secondtail = n_find_tail(second)
+ local secondtail = n_findtail(second)
n_setlink(secondtail,first)
return second
end
@@ -469,7 +471,7 @@ metatable.__add = function(first,second)
local head = second
for i=1,first do
local second = n_getnext(head)
- n_flush_node(head) -- can become flushlist/flushnode
+ n_flushnode(head) -- can become flushlist/flushnode
if second then
head = second
else
@@ -486,7 +488,7 @@ metatable.__add = function(first,second)
-- aaaaa + bbb => abbbaaaa
local next = n_getnext(first)
if next then
- local secondtail = n_find_tail(second)
+ local secondtail = n_findtail(second)
n_setlink(first,second)
n_setlink(secondtail,next)
else
@@ -514,12 +516,12 @@ metatable.__pow = function(n,multiplier)
local head = nil
if n_getnext(n) then
if multiplier == 1 then
- head = n_copy_list(n)
+ head = n_copylist(n)
else
for i=1,multiplier do
- local h = n_copy_list(n)
+ local h = n_copylist(n)
if head then
- local t = n_find_tail(h)
+ local t = n_findtail(h)
n_setlink(t,head)
end
head = h
@@ -527,10 +529,10 @@ metatable.__pow = function(n,multiplier)
end
else
if multiplier == 1 then
- head = n_copy_node(n)
+ head = n_copynode(n)
else
for i=2,multiplier do
- local c = n_copy_node(n)
+ local c = n_copynode(n)
if head then
n_setlink(head,c)
end
@@ -556,76 +558,3 @@ metatable.__unm = function(head)
n_setnext(last)
return first
end
-
--- see node-nut.lua for more info on going nuts
-
--- if not gonuts then
---
--- local nuts = { }
--- nodes.nuts = nuts
---
--- local function dummy(f) return f end
---
--- nodes.vianuts = dummy
--- nodes.vianodes = dummy
---
--- for k, v in next, nodes do
--- if type(v) == "function" then
--- nuts[k] = v
--- end
--- end
---
--- end
-
--- also handy
-
-local tonode = nodes.tonode
-local whatsit_code = nodecodes.whatsit
-local getfields = node.fields
-local sort = table.sort
-local whatsitkeys = { }
-local keys = { whatsit = whatsitkeys }
-local messyhack = table.tohash { -- temporary solution
- nodecodes.attributelist,
- nodecodes.attribute,
- nodecodes.action, -- hm
-}
-
-setmetatableindex(keys,function(t,k)
- local v = (k == "attributelist" or k == nodecodes.attributelist) and { } or getfields(k)
- if messyhack[k] then
- for i=1,#v do
- if v[i] == "subtype" then
- remove(v,i)
- break
- end
- end
- end
- if v[ 0] then v[#v+1] = "next" v[ 0] = nil end
- if v[-1] then v[#v+1] = "prev" v[-1] = nil end
- sort(v)
- t[k] = v
- return v
-end)
-
-setmetatableindex(whatsitkeys,function(t,k)
- local v = getfields(whatsit_code,k)
- if v[ 0] then v[#v+1] = "next" v[ 0] = nil end
- if v[-1] then v[#v+1] = "prev" v[-1] = nil end
- sort(v)
- t[k] = v
- return v
-end)
-
-local function nodefields(n)
- n = tonode(n)
- local id = n.id
- if id == whatsit_code then
- return whatsitkeys[n.subtype]
- else
- return keys[id]
- end
-end
-
-nodes.keys = keys -- [id][subtype]
-nodes.fields = nodefields -- (n)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-mig.lua b/Master/texmf-dist/tex/context/base/mkiv/node-mig.lua
index 13414c560c7..06400326982 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-mig.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-mig.lua
@@ -6,8 +6,6 @@ if not modules then modules = { } end modules ['node-mig'] = {
license = "see context related readme files"
}
--- todo: insert_after
-
local format = string.format
local trace_migrations = false trackers.register("nodes.migrations", function(v) trace_migrations = v end)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-nut.lua b/Master/texmf-dist/tex/context/base/mkiv/node-nut.lua
index 9909194e7ae..dcd08f31766 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-nut.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-nut.lua
@@ -1,4 +1,4 @@
-if not modules then modules = { } end modules ['node-nut'] = {
+ if not modules then modules = { } end modules ['node-nut'] = {
version = 1.001,
comment = "companion to node-ini.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
@@ -88,131 +88,106 @@ if not modules then modules = { } end modules ['node-nut'] = {
local type, rawget = type, rawget
-local nodes = nodes
-local direct = node.direct
+local nodes = nodes
+local direct = node.direct
-local fastcopy = table.fastcopy
+local fastcopy = table.fastcopy
-local nodecodes = nodes.nodecodes
-local hlist_code = nodecodes.hlist
-local vlist_code = nodecodes.vlist
-local glyph_code = nodecodes.glyph
+local nodecodes = nodes.nodecodes
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+local glyph_code = nodecodes.glyph
-local nuts = nodes.nuts or { }
-nodes.nuts = nuts
+local nuts = nodes.nuts or { }
+nodes.nuts = nuts
-nodes.is_node = direct.is_node or function() return true end
-nodes.is_direct = direct.is_direct or function() return false end
-nodes.is_nut = nodes.is_direct
+nodes.isnode = direct.isnode or function() return true end
+nodes.isdirect = direct.isdirect or function() return false end
+nodes.isnut = nodes.isdirect
-- casters
-local tonode = direct.tonode or function(n) return n end
-local tonut = direct.todirect or function(n) return n end
+local tonode = direct.tonode or function(n) return n end
+local tonut = direct.todirect or function(n) return n end
-nuts.tonode = tonode
-nuts.tonut = tonut
+nuts.tonode = tonode
+nuts.tonut = tonut
-nodes.tonode = tonode
-nodes.tonut = tonut
-
--- -- some tracing:
---
--- local hash = table.setmetatableindex("number")
--- local ga = direct.get_attribute
--- function direct.get_attribute(n,a)
--- hash[a] = hash[a] + 1
--- return ga(n,a)
--- end
--- function nuts.reportattr()
--- inspect(hash)
--- end
-
--- local function track(name)
--- local n = 0
--- local f = direct[name]
--- direct[name] = function(...)
--- n = n + 1
--- if n % 1000 == 0 then
--- print(name,n)
--- end
--- return f(...)
--- end
--- end
--- track("getfield")
+nodes.tonode = tonode
+nodes.tonut = tonut
-- helpers
local nuts = nodes.nuts
-nuts.check_discretionaries = direct.check_discretionaries
+nuts.checkdiscretionaries = direct.check_discretionaries
nuts.copy = direct.copy
-nuts.copy_node = direct.copy
-nuts.copy_only = direct.copy_only or direct.copy
-nuts.copy_list = direct.copy_list
+nuts.copynode = direct.copy
+nuts.copyonly = direct.copy_only or direct.copy
+nuts.copylist = direct.copy_list
nuts.count = direct.count
-nuts.current_attr = direct.current_attr
+nuts.currentattribute = direct.current_attr
+nuts.currentattr = direct.current_attr
nuts.delete = direct.delete
nuts.dimensions = direct.dimensions
-nuts.end_of_math = direct.end_of_math
-nuts.find_attribute = direct.find_attribute
-nuts.first_glyph = direct.first_glyph
-nuts.flatten_discretionaries = direct.flatten_discretionaries
+nuts.endofmath = direct.end_of_math
+nuts.findattribute = direct.find_attribute
+nuts.firstglyph = direct.first_glyph
+nuts.flattendiscretionaries = direct.flatten_discretionaries
nuts.flush = direct.flush_node
-nuts.flush_list = direct.flush_list
-nuts.flush_node = direct.flush_node
+nuts.flushlist = direct.flush_list
+nuts.flushnode = direct.flush_node
nuts.free = direct.free
-nuts.get_synctex_fields = direct.get_synctex_fields
-nuts.has_attribute = direct.has_attribute
-nuts.has_field = direct.has_field
-nuts.has_glyph = direct.has_glyph or direct.first_glyph
+nuts.getsynctexfields = direct.get_synctex_fields
+nuts.hasattribute = direct.has_attribute
+nuts.hasfield = direct.has_field
+nuts.hasglyph = direct.has_glyph or direct.first_glyph
nuts.hpack = direct.hpack
-nuts.insert_after = direct.insert_after
-nuts.insert_before = direct.insert_before
-nuts.is_direct = direct.is_direct
-nuts.is_node = direct.is_node
-nuts.is_nut = direct.is_direct
+nuts.insertafter = direct.insert_after
+nuts.insertbefore = direct.insert_before
+nuts.isdirect = direct.is_direct
+nuts.isnode = direct.is_node
+nuts.isnut = direct.is_direct
nuts.kerning = direct.kerning
nuts.hyphenating = direct.hyphenating
-nuts.last_node = direct.last_node
+nuts.lastnode = direct.last_node
nuts.length = direct.length
nuts.ligaturing = direct.ligaturing
nuts.new = direct.new
-nuts.protect_glyph = direct.protect_glyph
-nuts.protect_glyphs = direct.protect_glyphs
-nuts.flush_components = direct.flush_components
-nuts.protrusion_skippable = direct.protrusion_skippable
+nuts.protectglyph = direct.protect_glyph
+nuts.protectglyphs = direct.protect_glyphs
+nuts.protrusionskippable = direct.protrusion_skippable
nuts.rangedimensions = direct.rangedimensions
-nuts.set_attribute = direct.set_attribute
-nuts.set_synctex_fields = direct.set_synctex_fields
+nuts.setattribute = direct.set_attribute
+nuts.setsynctexfields = direct.set_synctex_fields
nuts.slide = direct.slide
nuts.tail = direct.tail
nuts.tostring = direct.tostring
nuts.traverse = direct.traverse
-nuts.traverse_char = direct.traverse_char
-nuts.traverse_glyph = direct.traverse_glyph
-nuts.traverse_id = direct.traverse_id
-nuts.traverse_list = direct.traverse_list
-nuts.unprotect_glyph = direct.unprotect_glyph
-nuts.unprotect_glyphs = direct.unprotect_glyphs
-nuts.unset_attribute = direct.unset_attribute
-nuts.unset_attribute = direct.unset_attribute
+nuts.traversechar = direct.traverse_char
+nuts.traverseglyph = direct.traverse_glyph
+nuts.traverseid = direct.traverse_id
+nuts.traverselist = direct.traverse_list
+nuts.unprotectglyph = direct.unprotect_glyph
+nuts.unprotectglyphs = direct.unprotect_glyphs
+nuts.unsetattribute = direct.unset_attribute
+nuts.unsetattribute = direct.unset_attribute
nuts.usedlist = direct.usedlist
-nuts.uses_font = direct.uses_font
+nuts.usesfont = direct.uses_font
nuts.vpack = direct.vpack
nuts.write = direct.write
-nuts.mlist_to_hlist = direct.mlist_to_hlist
-nuts.has_dimensions = direct.has_dimensions
-nuts.start_of_par = direct.start_of_par
+nuts.mlisttohlist = direct.mlist_to_hlist
+nuts.hasdimensions = direct.has_dimensions
+nuts.startofpar = direct.start_of_par
nuts.migrate = direct.migrate
-if not nuts.mlist_to_hlist then
+if not nuts.mlisttohlist then
- local n_mlist_to_hlist = node.mlist_to_hlist
+ local n_mlisttohlist = node.mlist_to_hlist
- function nuts.mlist_to_hlist(head,...)
+ function nuts.mlisttohlist(head,...)
if head then
- local head = n_mlist_to_hlist(tonode(head),...)
+ local head = n_mlisttohlist(tonode(head),...)
if head then
return tonut(head)
end
@@ -221,11 +196,11 @@ if not nuts.mlist_to_hlist then
end
-if not nuts.has_dimensions then
+if not nuts.hasdimensions then
local getwhd = direct.getwhd
- function nuts.has_dimensions(n)
+ function nuts.hasdimensions(n)
local wd, ht, dp = getwhd(n)
return wd ~= 0 or (ht + dp) ~= 0
end
@@ -246,16 +221,20 @@ nuts.getid = direct.getid
nuts.getprev = direct.getprev
nuts.setprev = direct.setprev
-local get_attribute = direct.get_attribute
-local set_attribute = direct.set_attribute
-local unset_attribute = direct.unset_attribute
+local getattribute = direct.get_attribute
+local setattribute = direct.set_attribute
+local unsetattribute = direct.unset_attribute
+
+nuts.getattr = getattribute
+nuts.setattr = setattribute
+nuts.takeattr = unsetattribute -- ?
-nuts.getattr = get_attribute
-nuts.setattr = set_attribute
-nuts.takeattr = unset_attribute -- ?
+nuts.getattribute = getattribute
+nuts.setattribute = setattribute
+nuts.unsetattribute = unsetattribute -- ?
-nuts.is_zero_glue = direct.is_zero_glue
-nuts.effective_glue = direct.effective_glue
+nuts.iszeroglue = direct.is_zero_glue
+nuts.effectiveglue = direct.effective_glue
nuts.getglue = direct.getglue
nuts.setglue = direct.setglue
@@ -302,8 +281,8 @@ nuts.gettotal = direct.gettotal
nuts.getorientation = direct.getorientation or function() end
nuts.setorientation = direct.setorientation or function() end
-nuts.getglyphdata = direct.getglyphdata or get_attribute
-nuts.setglyphdata = direct.setglyphdata or function(n,d) set_attribute(n,0,d) end
+nuts.getglyphdata = direct.getglyphdata or getattribute
+nuts.setglyphdata = direct.setglyphdata or function(n,d) setattribute(n,0,d) end
nuts.getruledata = direct.getglyphdata and getdata or function(n) return getfield(n,"transform") end
nuts.setruledata = direct.setglyphdata and setdata or function(n,d) return setfield(n,"transform",d) end
@@ -381,20 +360,16 @@ nuts.setbox = direct.setbox
nuts.ischar = direct.is_char
nuts.isglyph = direct.is_glyph
-----.is_char = nuts.ischar
-----.is_glyph = nuts.isglyph
-
local d_remove_node = direct.remove
-local d_flush_node = direct.flush_node
+local d_flushnode = direct.flush_node
local d_getnext = direct.getnext
local d_getprev = direct.getprev
local d_getid = direct.getid
local d_getlist = direct.getlist
local d_find_tail = direct.tail
-local d_insert_after = direct.insert_after
-local d_insert_before = direct.insert_before
+local d_insertafter = direct.insert_after
+local d_insertbefore = direct.insert_before
local d_slide = direct.slide
------ d_copy_node = direct.copy
local d_traverse = direct.traverse
local d_setlink = direct.setlink
local d_setboth = direct.setboth
@@ -404,7 +379,7 @@ local remove = function(head,current,free_too)
if current then
local h, c = d_remove_node(head,current)
if free_too then
- d_flush_node(current)
+ d_flushnode(current)
return h, c
else
d_setboth(current)
@@ -416,7 +391,7 @@ end
-- for now
-if not nuts.start_of_par then
+if not nuts.startofpar then
local parcodes = nodes.parcodes
local hmodepar_code = parcodes.vmode_par
@@ -424,7 +399,7 @@ if not nuts.start_of_par then
local getsubtype = nuts.getsubtype
- function nuts.start_of_par(n)
+ function nuts.startofpar(n)
local s = getsubtype(n)
return s == hmodepar_code or s == vmodepar_code
end
@@ -467,9 +442,9 @@ if not nuts.getpre then
function nuts.getpost (n) local _, h, _, _, t, _ = d_getdisc(n,true) return h, t end
function nuts.getreplace(n) local _, _, h, _, _, t = d_getdisc(n,true) return h, t end
- function nuts.setpre (n,h) d_setfield(d,"pre", h) end
- function nuts.setpost (n,h) d_setfield(d,"post", h) end
- function nuts.setreplace(n,h) d_setfield(d,"replace",h) end
+ function nuts.setpre (n,h) d_setfield(n,"pre", h) end
+ function nuts.setpost (n,h) d_setfield(n,"post", h) end
+ function nuts.setreplace(n,h) d_setfield(n,"replace",h) end
end
@@ -507,10 +482,10 @@ function nuts.replace(head,current,new) -- no head returned if false
if head == current then
head = new
end
- d_flush_node(current)
+ d_flushnode(current)
return head, new
else
- d_flush_node(current)
+ d_flushnode(current)
return new
end
end
@@ -542,14 +517,14 @@ end
function nuts.append(head,current,...)
for i=1,select("#",...) do
- head, current = d_insert_after(head,current,(select(i,...)))
+ head, current = d_insertafter(head,current,(select(i,...)))
end
return head, current
end
function nuts.prepend(head,current,...)
for i=1,select("#",...) do
- head, current = d_insert_before(head,current,(select(i,...)))
+ head, current = d_insertbefore(head,current,(select(i,...)))
end
return head, current
end
@@ -604,43 +579,7 @@ function nodes.vianodes(f) return function(n,...) return tonut (f(tonode(n),...)
nuts.vianuts = nodes.vianuts
nuts.vianodes = nodes.vianodes
--- function nodes.insert_before(h,c,n)
--- if c then
--- if c == h then
--- n_setfield(n,"next",h)
--- n_setfield(n,"prev",nil)
--- n_setfield(h,"prev",n)
--- else
--- local cp = n_getprev(c)
--- n_setfield(n,"next",c)
--- n_setfield(n,"prev",cp)
--- if cp then
--- n_setfield(cp,"next",n)
--- end
--- n_setfield(c,"prev",n)
--- return h, n
--- end
--- end
--- return n, n
--- end
-
--- function nodes.insert_after(h,c,n)
--- if c then
--- local cn = n_getnext(c)
--- if cn then
--- n_setfield(n,"next",cn)
--- n_setfield(cn,"prev",n)
--- else
--- n_setfield(n,"next",nil)
--- end
--- n_setfield(c,"next",n)
--- n_setfield(n,"prev",c)
--- return h, n
--- end
--- return n, n
--- end
-
-function nodes.insert_list_after(h,c,n)
+function nodes.insertlistafter(h,c,n)
local t = n_tail(n)
if c then
local cn = n_getnext(c)
@@ -658,41 +597,7 @@ function nodes.insert_list_after(h,c,n)
return n, t
end
--- function nuts.insert_before(h,c,n)
--- if c then
--- if c == h then
--- d_setnext(n,h)
--- d_setprev(n)
--- d_setprev(h,n)
--- else
--- local cp = d_getprev(c)
--- d_setnext(n,c)
--- d_setprev(n,cp)
--- if cp then
--- d_setnext(cp,n)
--- end
--- d_setprev(c,n)
--- return h, n
--- end
--- end
--- return n, n
--- end
-
--- function nuts.insert_after(h,c,n)
--- if c then
--- local cn = d_getnext(c)
--- if cn then
--- d_setlink(n,cn)
--- else
--- d_setnext(n,nil)
--- end
--- d_setlink(c,n)
--- return h, n
--- end
--- return n, n
--- end
-
-function nuts.insert_list_after(h,c,n)
+function nuts.insertlistafter(h,c,n)
local t = d_tail(n)
if c then
local cn = d_getnext(c)
@@ -909,8 +814,8 @@ nuts.getstate = getstate
local getscript = direct.getscript or function(n,v) end -- elsewhere
local setscript = direct.setscript or function(n,v) end -- elsewhere
-nuts.setscript = getscript
-nuts.getscript = setscript
+nuts.setscript = setscript
+nuts.getscript = getscript
function nuts.isdone(n,k)
local p = propertydata[n]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-ppt.lua b/Master/texmf-dist/tex/context/base/mkiv/node-ppt.lua
index 485e742b64a..35dc07d55a8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-ppt.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-ppt.lua
@@ -77,7 +77,7 @@ local function register(where,data,...)
end
end
-local writenode = node.write
+local writenode = nodes.write
local flushnode = context.nodes.flush
function commands.deferredproperty(...)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-pro.lua b/Master/texmf-dist/tex/context/base/mkiv/node-pro.lua
index 4d748af89bd..8c8356e0424 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-pro.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-pro.lua
@@ -65,11 +65,9 @@ do
end
-processors.enabled = true -- this will become a proper state (like trackers)
-
do
- local has_glyph = nodes.has_glyph
+ local hasglyph = nodes.hasglyph
local count_nodes = nodes.countall
local texget = tex.get
@@ -77,7 +75,7 @@ do
local tracer = processors.tracer
local function pre_linebreak_filter(head,groupcode)
- local found = force_processors or has_glyph(head)
+ local found = force_processors or hasglyph(head)
if found then
if trace_callbacks then
local before = count_nodes(head,true)
@@ -95,7 +93,7 @@ do
end
local function hpack_filter(head,groupcode,size,packtype,direction,attributes)
- local found = force_processors or has_glyph(head)
+ local found = force_processors or hasglyph(head)
if found then
--
-- yes or no or maybe an option
@@ -148,7 +146,7 @@ do
end
do
- -- Beware, these are packaged boxes so no first_glyph test needed. Maybe some day I'll add a hash
+ -- Beware, these are packaged boxes so no firstglyph test needed. Maybe some day I'll add a hash
-- with valid groupcodes. Watch out, much can pass twice, for instance vadjust passes two times,
local actions = tasks.actions("finalizers") -- head, where
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-ref.lua b/Master/texmf-dist/tex/context/base/mkiv/node-ref.lua
index 098ed50c28e..2cade31ded3 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-ref.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-ref.lua
@@ -78,7 +78,8 @@ local getdimensions = nuts.dimensions
local getrangedimensions = nuts.rangedimensions
local traverse = nuts.traverse
local find_node_tail = nuts.tail
-local start_of_par = nuts.start_of_par
+
+local startofpar = nuts.startofpar
local nodecodes = nodes.nodecodes
local gluecodes = nodes.gluecodes
@@ -107,7 +108,7 @@ local new_rule = nodepool.rule
local new_kern = nodepool.kern
local new_hlist = nodepool.hlist
-local flush_node = nuts.flush
+local flushnode = nuts.flush
local tosequence = nodes.tosequence
@@ -135,7 +136,7 @@ local function vlist_dimensions(start,stop) -- also needs the stretch and so
local v = vpack_list(start)
local w, h, d = getwhd(v)
setlist(v) -- not needed
- flush_node(v)
+ flushnode(v)
if temp then
setnext(stop,temp)
end
@@ -421,7 +422,7 @@ local function inject_areas(head,attribute,make,stack,done,skip,parent,pardir,tx
local direction, pop = getdirection(current)
txtdir = not pop and direction -- we might need a stack
elseif id == par_code then
- if start_of_par(current) then
+ if startofpar(current) then
pardir = getdirection(current)
end
elseif id == glue_code and getsubtype(current) == leftskip_code then -- any glue at the left?
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-res.lua b/Master/texmf-dist/tex/context/base/mkiv/node-res.lua
index 478a46906e0..5c669f9da0e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-res.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-res.lua
@@ -99,7 +99,7 @@ local setdata = nuts.setdata
local setruledata = nuts.setruledata
local setvalue = nuts.setvalue
-local copy_nut = nuts.copy_only or nuts.copy
+local copy_nut = nuts.copy
local new_nut = nuts.new
local flush_nut = nuts.flush
@@ -173,19 +173,10 @@ local savepos = register_nut(new_nut(whatsit_code,whatsitcodes.savepos
local user_node = new_nut(whatsit_code,whatsitcodes.userdefined)
-if CONTEXTLMTXMODE == 0 then
- setfield(user_node,"type",usercodes.number)
-end
-
-local left_margin_kern, right_margin_kern
+setfield(user_node,"type",usercodes.number)
-if CONTEXTLMTXMODE > 0 then
- left_margin_kern = register_nut(new_nut(kern_code,kerncodes.leftmargincode))
- right_margin_kern = register_nut(new_nut(kern_code,kerncodes.rightmargincode))
-else
- left_margin_kern = register_nut(new_nut(nodecodes.marginkern,0))
- right_margin_kern = register_nut(new_nut(nodecodes.marginkern,1))
-end
+local left_margin_kern = register_nut(new_nut(nodecodes.marginkern,0))
+local right_margin_kern = register_nut(new_nut(nodecodes.marginkern,1))
local lineskip = register_nut(new_nut(glue_code,gluecodes.lineskip))
local baselineskip = register_nut(new_nut(glue_code,gluecodes.baselineskip))
@@ -429,27 +420,15 @@ function nutpool.savepos()
return copy_nut(savepos)
end
-if CONTEXTLMTXMODE == 0 then
-
- function nutpool.latelua(code)
- local n = copy_nut(latelua)
- if type(code) == "table" then
- local action = code.action
- local specification = code.specification or code
- code = function() action(specification) end
- end
- setdata(n,code)
- return n
- end
-
-else
-
- function nutpool.latelua(code)
- local n = copy_nut(latelua)
- nodeproperties[n] = { data = code }
- return n
+function nutpool.latelua(code)
+ local n = copy_nut(latelua)
+ if type(code) == "table" then
+ local action = code.action
+ local specification = code.specification or code
+ code = function() action(specification) end
end
-
+ setdata(n,code)
+ return n
end
function nutpool.leftmarginkern(glyph,width)
@@ -575,7 +554,7 @@ local function cleanup(nofboxes) -- todo
return nr, nl, nofboxes -- can be nil
end
-local usage = CONTEXTLMTXMODE > 0 and node.inuse or function()
+local function usage()
local t = { }
for n, tag in gmatch(status.node_mem_usage,"(%d+) ([a-z_]+)") do
t[tag] = tonumber(n) or 0
@@ -583,7 +562,7 @@ local usage = CONTEXTLMTXMODE > 0 and node.inuse or function()
return t
end
-local stock = CONTEXTLMTXMODE > 0 and node.instock or { }
+local stock = { }
nutpool .cleanup = cleanup
nodepool.cleanup = cleanup
@@ -611,25 +590,25 @@ statistics.register("node memory usage", function() -- comes after cleanup !
end
end)
-lua.registerfinalizer(cleanup, "cleanup reserved nodes")
+lua.registerinitexfinalizer(cleanup, "cleanup reserved nodes")
-- experiment
do
- local glyph = tonode(glyph)
- local traverse_id = nodes.traverse_id
+ local glyph = tonode(glyph)
+ local traverseid = nodes.traverseid
- local traversers = table.setmetatableindex(function(t,k)
- local v = traverse_id(type(k) == "number" and k or nodecodes[k],glyph)
+ local traversers = table.setmetatableindex(function(t,k)
+ local v = traverseid(type(k) == "number" and k or nodecodes[k],glyph)
t[k] = v
return v
end)
- traversers.node = nodes.traverse (glyph)
- traversers.char = nodes.traverse_char (glyph)
- if nodes.traverse_glyph then traversers.glyph = nodes.traverse_glyph(glyph) end
- if nodes.traverse_list then traversers.list = nodes.traverse_list (glyph) end
+ traversers.node = nodes.traverse (glyph)
+ traversers.char = nodes.traversechar (glyph)
+ if nodes.traverseglyph then traversers.glyph = nodes.traverseglyph(glyph) end
+ if nodes.traverselist then traversers.list = nodes.traverselist (glyph) end
nodes.traversers = traversers
@@ -637,20 +616,20 @@ end
do
- local glyph = glyph
- local traverse_id = nuts.traverse_id
+ local glyph = glyph
+ local traverseid = nuts.traverseid
- local traversers = table.setmetatableindex(function(t,k)
- local v = traverse_id(type(k) == "number" and k or nodecodes[k],glyph)
+ local traversers = table.setmetatableindex(function(t,k)
+ local v = traverseid(type(k) == "number" and k or nodecodes[k],glyph)
t[k] = v
return v
end)
- traversers.node = nuts.traverse (glyph)
- traversers.char = nuts.traverse_char (glyph)
- if nuts.traverse_glyph then traversers.glyph = nuts.traverse_glyph (glyph) end
- if nuts.traverse_list then traversers.list = nuts.traverse_list (glyph) end
- if nuts.traverse_content then traversers.content = nuts.traverse_content(glyph) end
+ traversers.node = nuts.traverse (glyph)
+ traversers.char = nuts.traversechar (glyph)
+ if nuts.traverseglyph then traversers.glyph = nuts.traverseglyph (glyph) end
+ if nuts.traverselist then traversers.list = nuts.traverselist (glyph) end
+ if nuts.traversecontent then traversers.content = nuts.traversecontent(glyph) end
nuts.traversers = traversers
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-rul.lua b/Master/texmf-dist/tex/context/base/mkiv/node-rul.lua
index f60fb2406a7..7ef58e97062 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-rul.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-rul.lua
@@ -57,15 +57,15 @@ local getruledata = nuts.getruledata
local isglyph = nuts.isglyph
-local flushlist = nuts.flush_list
-local effective_glue = nuts.effective_glue
-local insert_node_after = nuts.insert_after
-local insert_node_before = nuts.insert_before
+local flushlist = nuts.flushlist
+local effectiveglue = nuts.effectiveglue
+local insertnodeafter = nuts.insertafter
+local insertnodebefore = nuts.insertbefore
local find_tail = nuts.tail
local setglue = nuts.setglue
local getrangedimensions = nuts.rangedimensions
local hpack_nodes = nuts.hpack
-local copy_list = nuts.copy_list
+local copylist = nuts.copylist
local nexthlist = nuts.traversers.hlist
@@ -317,7 +317,7 @@ local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but a
setattr(r,a_viewerlayer,layer)
end
if empty then
- head = insert_node_before(head,f,r)
+ head = insertnodebefore(head,f,r)
setlink(r,getnext(l))
setprev(f)
setnext(l)
@@ -325,12 +325,12 @@ local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but a
else
local k = new_kern(-wd)
if foreground then
- insert_node_after(head,l,k)
- insert_node_after(head,k,r)
+ insertnodeafter(head,l,k)
+ insertnodeafter(head,k,r)
l = r
else
- head = insert_node_before(head,f,r)
- insert_node_after(head,r,k)
+ head = insertnodebefore(head,f,r)
+ insertnodeafter(head,r,k)
end
end
if trace_ruled then
@@ -356,7 +356,7 @@ local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but a
else
local tx = d.text
if tx then
- local l = copy_list(tx)
+ local l = copylist(tx)
if d["repeat"] == v_yes then
l = new_leader(wd,l)
setattrlist(l,tx)
@@ -603,7 +603,7 @@ function linefillers.handler(head)
if head then
local indentation = iskip and getwidth(iskip) or 0
local leftfixed = lskip and getwidth(lskip) or 0
- local lefttotal = lskip and effective_glue(lskip,current) or 0
+ local lefttotal = lskip and effectiveglue(lskip,current) or 0
local width = lefttotal - (leftlocal and leftfixed or 0) + indentation - distance
if width > threshold then
if iskip then
@@ -612,13 +612,13 @@ function linefillers.handler(head)
if lskip then
setglue(lskip,leftlocal and getwidth(lskip) or nil)
if distance > 0 then
- insert_node_after(list,lskip,new_kern(distance))
+ insertnodeafter(list,lskip,new_kern(distance))
end
- insert_node_after(list,lskip,linefiller(current,data,width,"left"))
+ insertnodeafter(list,lskip,linefiller(current,data,width,"left"))
else
- insert_node_before(list,head,linefiller(current,data,width,"left"))
+ insertnodebefore(list,head,linefiller(current,data,width,"left"))
if distance > 0 then
- insert_node_before(list,head,new_kern(distance))
+ insertnodebefore(list,head,new_kern(distance))
end
end
end
@@ -642,9 +642,9 @@ function linefillers.handler(head)
end
if tail then
local rightfixed = rskip and getwidth(rskip) or 0
- local righttotal = rskip and effective_glue(rskip,current) or 0
+ local righttotal = rskip and effectiveglue(rskip,current) or 0
local parfixed = pskip and getwidth(pskip) or 0
- local partotal = pskip and effective_glue(pskip,current) or 0
+ local partotal = pskip and effectiveglue(pskip,current) or 0
local width = righttotal - (rightlocal and rightfixed or 0) + partotal - distance
if width > threshold then
if pskip then
@@ -653,13 +653,13 @@ function linefillers.handler(head)
if rskip then
setglue(rskip,rightlocal and getwidth(rskip) or nil)
if distance > 0 then
- insert_node_before(list,rskip,new_kern(distance))
+ insertnodebefore(list,rskip,new_kern(distance))
end
- insert_node_before(list,rskip,linefiller(current,data,width,"right"))
+ insertnodebefore(list,rskip,linefiller(current,data,width,"right"))
else
- insert_node_after(list,tail,linefiller(current,data,width,"right"))
+ insertnodeafter(list,tail,linefiller(current,data,width,"right"))
if distance > 0 then
- insert_node_after(list,tail,new_kern(distance))
+ insertnodeafter(list,tail,new_kern(distance))
end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-rul.mkiv b/Master/texmf-dist/tex/context/base/mkiv/node-rul.mkiv
index 660c0d4e617..84463f21f2c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-rul.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-rul.mkiv
@@ -341,16 +341,17 @@
[undergraphic]
[\c!mp=rules:under:dash,
\c!offset=-.2,
+ \c!continue=\v!yes,
\c!order=\v!background]
\definebar[underrandom] [undergraphic][\c!mp=rules:under:random]
-\definebar[underrandoms][underrandom] [\c!continue=\v!yes]
+\definebar[underrandoms][underrandom] [\c!continue=\v!no]
\definebar[underdash] [undergraphic][\c!mp=rules:under:dash]
-\definebar[underdashes] [underdash] [\c!continue=\v!yes]
+\definebar[underdashes] [underdash] [\c!continue=\v!no]
\definebar[underdot] [undergraphic][\c!mp=rules:under:dots]
-\definebar[underdots] [underdot] [\c!continue=\v!yes]
+\definebar[underdots] [underdot] [\c!continue=\v!no]
%D This will move: (a bit duplicated)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-scn.lua b/Master/texmf-dist/tex/context/base/mkiv/node-scn.lua
index 0ec1ba387c9..55f39a74b6a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-scn.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-scn.lua
@@ -21,8 +21,6 @@ local getsubtype = nuts.getsubtype
local getlist = nuts.getlist
local setlist = nuts.setlist
-local end_of_math = nuts.end_of_math
-
local nodecodes = nodes.nodecodes
local gluecodes = nodes.gluecodes
local kerncodes = nodes.kerncodes
@@ -122,7 +120,9 @@ local function processwords(attribute,data,flush,head,parent,skip) -- we have hl
local continue, leaders, done, strip, level = false, false, false, true, -1
while n do
local id = getid(n)
- if id == glyph_code or id == rule_code or (id == hlist_code and getattr(n,a_runningtext)) then
+ if id == glyph_code or id == rule_code or (id == hlist_code and getattr(n,a_runningtext))
+or id == disc_code or id == boundary_code
+ then
local aa = getattr(n,attribute)
if aa and aa ~= skip then
if aa == a then
@@ -164,10 +164,10 @@ local function processwords(attribute,data,flush,head,parent,skip) -- we have hl
setlist(n,(processwords(attribute,data,flush,list,n,aa))) -- watch ()
end
end
- elseif id == disc_code or id == boundary_code then
- if f then
- l = n
- end
+-- elseif id == disc_code or id == boundary_code then
+-- if f then
+-- l = n
+-- end
elseif id == kern_code and getsubtype(n) == fontkern_code then
if f then
l = n
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-ser.lua b/Master/texmf-dist/tex/context/base/mkiv/node-ser.lua
index 25a6dd6c39d..ee2abe0d24e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-ser.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-ser.lua
@@ -17,14 +17,11 @@ local allocate = utilities.storage.allocate
local context = context
local nodes = nodes
-local node = node
-
-local is_node = nodes.is_node
+local isnode = nodes.isnode
local nodecodes = nodes.nodecodes
local subtcodes = nodes.codes
local getfields = nodes.fields
-
local tonode = nodes.tonode
local tonut = nodes.tonut
@@ -130,13 +127,13 @@ end
nodes.astable = astable
-setinspector("node",function(v) if is_node(v) then printtable(astable(v),tostring(v)) return true end end)
+setinspector("node",function(v) if isnode(v) then printtable(astable(v),tostring(v)) return true end end)
-- under construction:
local function totable(n,flat,verbose,noattributes) -- nicest: n,true,true,true
local function to_table(n,flat,verbose,noattributes) -- no need to pass
- local f = getfields(n)
+ local f = getfields(n.id)
local tt = { }
for k=1,#f do
local v = f[k]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-shp.lua b/Master/texmf-dist/tex/context/base/mkiv/node-shp.lua
index 58dc944951a..b867f564a9e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-shp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-shp.lua
@@ -121,7 +121,7 @@ local removables = {
--
-- handlers.cleanuppage = cleanup_redundant -- nut
-handlers.cleanuppage = nuts.flatten_discretionaries
+handlers.cleanuppage = nuts.flattendiscretionaries
local function cleanup_flushed(head) -- rough
local start = head
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-syn.lua b/Master/texmf-dist/tex/context/base/mkiv/node-syn.lua
index d9c653abbb0..4014445b0a5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-syn.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-syn.lua
@@ -125,7 +125,7 @@ if not modules then modules = { } end modules ['node-syn'] = {
local type, rawset = type, rawset
local concat = table.concat
local formatters = string.formatters
-local replacesuffix, suffixonly, nameonly = file.replacesuffix, file.suffix, file.nameonly
+local replacesuffix, suffixonly, nameonly, collapsepath = file.replacesuffix, file.suffix, file.nameonly, file.collapsepath
local openfile, renamefile, removefile = io.open, os.rename, os.remove
local report_system = logs.reporter("system")
@@ -159,8 +159,8 @@ local fontkern_code = kerncodes.fontkern
local cancel_code = nodes.dircodes.cancel
-local insert_before = nuts.insert_before
-local insert_after = nuts.insert_after
+local insertbefore = nuts.insertbefore
+local insertafter = nuts.insertafter
local nodepool = nuts.pool
local new_latelua = nodepool.latelua
@@ -170,7 +170,7 @@ local new_kern = nodepool.kern
local getdimensions = nuts.dimensions
local getrangedimensions = nuts.rangedimensions
-local getsynctexfields = nuts.getsynctexfields or nuts.get_synctex_fields
+local getsynctexfields = nuts.getsynctexfields
local forcesynctextag = tex.forcesynctextag or tex.force_synctex_tag
local forcesynctexline = tex.forcesynctexline or tex.force_synctex_line
local getsynctexline = tex.getsynctexline or tex.get_synctex_line
@@ -231,7 +231,8 @@ local blockedsuffixes = {
-- lfg = true,
}
-local sttags = table.setmetatableindex(function(t,name)
+local sttags = table.setmetatableindex(function(t,fullname)
+ local name = collapsepath(fullname)
if blockedsuffixes[suffixonly(name)] then
-- Just so that I don't get the ones on my development tree.
nofblocked = nofblocked + 1
@@ -247,6 +248,9 @@ local sttags = table.setmetatableindex(function(t,name)
else
noftags = noftags + 1
t[name] = noftags
+ if name ~= fullname then
+ t[fullname] = noftags
+ end
stnums[noftags] = name
return noftags
end
@@ -391,27 +395,27 @@ end
-- end
--
-- local function b_vlist(head,current,t,l,w,h,d)
--- return insert_before(head,current,new_latelua(function() doaction(f_vlist,t,l,w,h,d) end))
+-- return insertbefore(head,current,new_latelua(function() doaction(f_vlist,t,l,w,h,d) end))
-- end
--
-- local function b_hlist(head,current,t,l,w,h,d)
--- return insert_before(head,current,new_latelua(function() doaction(f_hlist,t,l,w,h,d) end))
+-- return insertbefore(head,current,new_latelua(function() doaction(f_hlist,t,l,w,h,d) end))
-- end
--
-- local function e_vlist(head,current)
--- return insert_after(head,current,new_latelua(noaction(s_vlist)))
+-- return insertafter(head,current,new_latelua(noaction(s_vlist)))
-- end
--
-- local function e_hlist(head,current)
--- return insert_after(head,current,new_latelua(noaction(s_hlist)))
+-- return insertafter(head,current,new_latelua(noaction(s_hlist)))
-- end
--
-- local function x_vlist(head,current,t,l,w,h,d)
--- return insert_before(head,current,new_latelua(function() doaction(f_vlist_1,t,l,w,h,d) end))
+-- return insertbefore(head,current,new_latelua(function() doaction(f_vlist_1,t,l,w,h,d) end))
-- end
--
-- local function x_hlist(head,current,t,l,w,h,d)
--- return insert_before(head,current,new_latelua(function() doaction(f_hlist_1,t,l,w,h,d) end))
+-- return insertbefore(head,current,new_latelua(function() doaction(f_hlist_1,t,l,w,h,d) end))
-- end
--
-- generic
@@ -466,7 +470,7 @@ local x_hlist do
x_hlist = function(head,current,t,l,w,h,d)
if filehandle then
- return insert_before(head,current,new_latelua(function() doaction(t,l,w,h,d) end))
+ return insertbefore(head,current,new_latelua(function() doaction(t,l,w,h,d) end))
else
return head
end
@@ -502,8 +506,8 @@ local function inject(head,first,last,tag,line)
d = depth
end
if trace then
- head = insert_before(head,first,new_rule(w,fulltrace and h or traceheight,fulltrace and d or tracedepth))
- head = insert_before(head,first,new_kern(-w))
+ head = insertbefore(head,first,new_rule(w,fulltrace and h or traceheight,fulltrace and d or tracedepth))
+ head = insertbefore(head,first,new_kern(-w))
end
head = x_hlist(head,first,tag,line,w,h,d)
return head
@@ -569,8 +573,8 @@ local function inject(parent,head,first,last,tag,line)
d = depth
end
if trace then
- head = insert_before(head,first,new_rule(w,fulltrace and h or traceheight,fulltrace and d or tracedepth))
- head = insert_before(head,first,new_kern(-w))
+ head = insertbefore(head,first,new_rule(w,fulltrace and h or traceheight,fulltrace and d or tracedepth))
+ head = insertbefore(head,first,new_kern(-w))
end
head = x_hlist(head,first,tag,line,w,h,d)
return head
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-tra.lua b/Master/texmf-dist/tex/context/base/mkiv/node-tra.lua
index 83c072c19b0..67435f1c78f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-tra.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-tra.lua
@@ -50,8 +50,6 @@ local getglue = nuts.getglue
local isglyph = nuts.isglyph
local getdirection = nuts.getdirection
local getwidth = nuts.getwidth
-
-local flush_list = nuts.flush_list
local count_nodes = nuts.countall
local used_nodes = nuts.usedlist
@@ -79,11 +77,12 @@ local rule_code = nodecodes.rule
local dir_code = nodecodes.dir
local par_code = nodecodes.par
local whatsit_code = nodecodes.whatsit
+local passive_code = nodecodes.passive
local dimenfactors = number.dimenfactors
local formatters = string.formatters
-local start_of_par = nuts.start_of_par
+local startofpar = nuts.startofpar
-- this will be reorganized:
@@ -154,7 +153,7 @@ local function tosequence(start,stop,compact)
elseif id == dir_code then
local d, p = getdirection(start)
n = n + 1 ; t[n] = "[<" .. (p and "-" or "+") .. d .. ">]" -- todo l2r etc
- elseif id == par_code and start_of_par(current) then
+ elseif id == par_code and startofpar(current) then
n = n + 1 ; t[n] = "[<" .. getdirection(start) .. ">]" -- todo l2r etc
elseif compact then
n = n + 1 ; t[n] = "[]"
@@ -305,57 +304,68 @@ end
nodes.showsimplelist = function(h,depth) showsimplelist(h,depth,0) end
local function listtoutf(h,joiner,textonly,last,nodisc)
- local w = { }
- local n = 0
- local g = formatters["<%i>"]
- local d = formatters["[%s|%s|%s]"]
- while h do
- local c, id = isglyph(h)
- if c then
- n = n + 1 ; w[n] = c >= 0 and utfchar(c) or g(c)
- if joiner then
- n = n + 1 ; w[n] = joiner
- end
- elseif id == disc_code then
- local pre, pos, rep = getdisc(h)
- if not nodisc then
- n = n + 1 ; w[n] = d(
- pre and listtoutf(pre,joiner,textonly) or "",
- pos and listtoutf(pos,joiner,textonly) or "",
- rep and listtoutf(rep,joiner,textonly) or ""
- )
- elseif rep then
- n = n + 1 ; w[n] = listtoutf(rep,joiner,textonly) or ""
- end
- if joiner then
- n = n + 1 ; w[n] = joiner
- end
- elseif textonly then
- if id == glue_code then
- if getwidth(h) > 0 then
- n = n + 1 ; w[n] = " "
+ if h then
+ local w = { }
+ local n = 0
+ local g = formatters["<%i>"]
+ local d = formatters["[%s|%s|%s]"]
+ while h do
+ local c, id = isglyph(h)
+ if c then
+ n = n + 1 ; w[n] = c >= 0 and utfchar(c) or g(c)
+ if joiner then
+ n = n + 1 ; w[n] = joiner
+ end
+ elseif id == disc_code then
+ local pre, pos, rep = getdisc(h)
+ if not nodisc then
+ n = n + 1 ; w[n] = d(
+ pre and listtoutf(pre,joiner,textonly) or "",
+ pos and listtoutf(pos,joiner,textonly) or "",
+ rep and listtoutf(rep,joiner,textonly) or ""
+ )
+ elseif rep then
+ n = n + 1 ; w[n] = listtoutf(rep,joiner,textonly) or ""
+ end
+ if joiner then
+ n = n + 1 ; w[n] = joiner
end
- elseif id == hlist_code or id == vlist_code then
- n = n + 1 ; w[n] = "["
- n = n + 1 ; w[n] = listtoutf(getlist(h),joiner,textonly,last,nodisc)
- n = n + 1 ; w[n] = "]"
+ elseif id == passive_code then
+ -- smells like a bug in luatex
+ print("weird: passive node in listtoutf")
+ return ""
+ elseif textonly then
+ if id == glue_code then
+ if getwidth(h) > 0 then
+ n = n + 1 ; w[n] = " "
+ end
+ elseif id == hlist_code or id == vlist_code then
+ local l = getlist(h)
+ n = n + 1 ; w[n] = "["
+ if l then
+ n = n + 1 ; w[n] = listtoutf(l,joiner,textonly,last,nodisc)
+ end
+ n = n + 1 ; w[n] = "]"
+ end
+ else
+ n = n + 1 ; w[n] = "[-]"
+ end
+ if h == last then
+ break
+ else
+ h = getnext(h)
end
- else
- n = n + 1 ; w[n] = "[-]"
- end
- if h == last then
- break
- else
- h = getnext(h)
end
+ return concat(w,"",1,(w[n] == joiner) and (n-1) or n)
+ else
+ return ""
end
- return concat(w,"",1,(w[n] == joiner) and (n-1) or n)
end
function nodes.listtoutf(h,joiner,textonly,last,nodisc)
if h then
local joiner = joiner == true and utfchar(0x200C) or joiner -- zwnj
- return listtoutf(tonut(h),joiner,textonly,last and tonut(last),nodisc)
+ return listtoutf(tonut(h),joiner,textonly,last and tonut(last) or nil,nodisc)
else
return ""
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-tsk.lua b/Master/texmf-dist/tex/context/base/mkiv/node-tsk.lua
index ca7c7fee45b..9e263df9136 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-tsk.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-tsk.lua
@@ -663,6 +663,7 @@ tasks.new {
"before",
"normalizers",
"builders",
+ "finalizers",
"after",
},
templates = {
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-tst.lua b/Master/texmf-dist/tex/context/base/mkiv/node-tst.lua
index 0dacff37532..c28086f8146 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-tst.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-tst.lua
@@ -16,11 +16,7 @@ local glue_code = nodecodes.glue
local penalty_code = nodecodes.penalty
local kern_code = nodecodes.kern
local glyph_code = nodecodes.glyph
-local whatsit_code = nodecodes.whatsit
-local hlist_code = nodecodes.hlist
-local leftskip_code = gluecodes.leftskip
-local rightskip_code = gluecodes.rightskip
local abovedisplayshortskip_code = gluecodes.abovedisplayshortskip
local belowdisplayshortskip_code = gluecodes.belowdisplayshortskip
@@ -35,52 +31,16 @@ local getkern = nuts.getkern
local getpenalty = nuts.getpenalty
local getwidth = nuts.getwidth
-local find_node_tail = nuts.tail
-
-function nuts.leftmarginwidth(n) -- todo: three values
- while n do
- local id = getid(n)
- if id == glue_code then
- return getsubtype(n) == leftskip_code and getwidth(n) or 0
- elseif id == whatsit_code then
- n = getnext(n)
- elseif id == hlist_code then
- return getwidth(n)
- else
- break
- end
- end
- return 0
-end
-
-function nuts.rightmarginwidth(n)
- if n then
- n = find_node_tail(n)
- while n do
- local id = getid(n)
- if id == glue_code then
- return getsubtype(n) == rightskip_code and getwidth(n) or 0
- elseif id == whatsit_code then
- n = getprev(n)
- else
- break
- end
- end
- end
- return false
-end
-
function nuts.somespace(n,all)
if n then
local id = getid(n)
if id == glue_code then
return (all or (getwidth(n) ~= 0)) and glue_code -- temp: or 0
elseif id == kern_code then
- return (all or (getkern(n) ~= 0)) and kern
+ return (all or (getkern(n) ~= 0)) and kern_code
elseif id == glyph_code then
- local category = chardata[getchar(n)].category
-- maybe more category checks are needed
- return (category == "zs") and glyph_code
+ return (chardata[getchar(n)].category == "zs") and glyph_code
end
end
return false
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-typ.lua b/Master/texmf-dist/tex/context/base/mkiv/node-typ.lua
index adf0d18c005..46494fef396 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-typ.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/node-typ.lua
@@ -20,7 +20,6 @@ local setchar = nuts.setchar
local setattrlist = nuts.setattrlist
local getfont = nuts.getfont
-local getattrlist = nuts.getattrlist
local hpack_node_list = nuts.hpack
local vpack_node_list = nuts.vpack
@@ -32,23 +31,18 @@ local new_glue = nodepool.glue
local utfvalues = utf.values
-local currentfont = font.current -- mabe nicer is fonts .current
-local currentattributes = node.current_attributes -- mabe nicer is attributes.current
-
+local currentfont = font.current
+local currentattributes = nodes.currentattributes
local fontparameters = fonts.hashes.parameters
-if not currentattributes then currentattributes = node.current_attr end -- CONTEXTLMTXMODE == 0
-
-- when attrid == true then take from glyph or current else use the given value
+-- todo: glyphscale etc
+
local function tonodes(str,fontid,spacing,templateglyph,attrid) -- quick and dirty
local head, prev = nil, nil
if not fontid then
- if templateglyph then
- fontid = getfont(templateglyph)
- else
- fontid = currentfont()
- end
+ fontid = templateglyph and getfont(templateglyph) or currentfont()
end
if attrid == true then
if templateglyph then
@@ -107,7 +101,7 @@ local function tohbox(str,fontid,spacing)
end
local function tovpack(str,fontid,spacing)
- -- vpack is just a hack, and a proper implemtation is on the agenda
+ -- vpack is just a hack, and a proper implementation is on the agenda
-- as it needs more info etc than currently available
return vpack_node_list(tonodes(str,fontid,spacing))
end
@@ -133,9 +127,9 @@ typesetters.hpack = typesetters.tohpack -- obsolete
typesetters.hbox = typesetters.tohbox -- obsolete
typesetters.vpack = typesetters.tovpack -- obsolete
--- node.write(nodes.typesetters.tohpack("Hello World!"))
--- node.write(nodes.typesetters.tohbox ("Hello World!"))
--- node.write(nodes.typesetters.tohpack("Hello World!",1,100*1024*10))
--- node.write(nodes.typesetters.tohbox ("Hello World!",1,100*1024*10))
+-- context(nodes.typesetters.tohpack("Hello World!"))
+-- context(nodes.typesetters.tohbox ("Hello World!"))
+-- context(nodes.typesetters.tohpack("Hello World!",1,100*1024*10))
+-- context(nodes.typesetters.tohbox ("Hello World!",1,100*1024*10))
string.tonodes = function(...) return tonode(tonodes(...)) end -- quite convenient
diff --git a/Master/texmf-dist/tex/context/base/mkiv/pack-cut.mkiv b/Master/texmf-dist/tex/context/base/mkiv/pack-cut.mkiv
index 84c14d648e5..533440efdc7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/pack-cut.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/pack-cut.mkiv
@@ -102,9 +102,8 @@
\vss}%
\hss}}
-\unexpanded\def\makecutbox#1%
- {\bgroup
- \d_pack_cutmarks_height\ht#1%
+\unexpanded\def\makecutbox#1% not grouped !
+ {\d_pack_cutmarks_height\ht#1%
\d_pack_cutmarks_depth \dp#1%
\d_pack_cutmarks_width \wd#1%
\setbox#1\hpack
@@ -155,8 +154,7 @@
\box#1}%
\wd#1\d_pack_cutmarks_width
\ht#1\d_pack_cutmarks_height
- \dp#1\d_pack_cutmarks_depth
- \egroup}
+ \dp#1\d_pack_cutmarks_depth}
\unexpanded\def\cuthbox{\hpack\bgroup\dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\hbox}
\unexpanded\def\cutvbox{\vpack\bgroup\dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\vbox}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/pack-rul.lua b/Master/texmf-dist/tex/context/base/mkiv/pack-rul.lua
index 8e410f0cfc0..98117867c91 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/pack-rul.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/pack-rul.lua
@@ -57,7 +57,7 @@ local getboxglue = nuts.getboxglue
local hpack = nuts.hpack
local getdimensions = nuts.dimensions
-local flush_node = nuts.flush
+local flushnode = nuts.flush
local traversers = nuts.traversers
local nexthlist = traversers.hlist
@@ -131,7 +131,7 @@ local function doreshapeframedbox(n)
local set, order, sign = getboxglue(p)
setboxglue(h,set,order,sign)
setlist(p)
- flush_node(p)
+ flushnode(p)
elseif checkformath and subtype == equationlist_code then
-- display formulas use a shift
if nofnonzero == 1 then
@@ -165,7 +165,7 @@ local function doreshapeframedbox(n)
texsetdimen("global","framedaveragewidth",averagewidth)
end
-local function doanalyzeframedbox(n) -- traverse_list
+local function doanalyzeframedbox(n)
local box = getbox(n)
local noflines = 0
local firstheight = nil
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-app.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-app.mkiv
index cdb964ab06e..1a82e178d06 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-app.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-app.mkiv
@@ -204,7 +204,7 @@
{\bgroup
\setupexternalfigure[\v!page:\v!figure][\c!offset=\v!overlay,#2]%
\startTEXpage[\c!offset=\namedexternalfigureparameter{\v!page:\v!figure}\c!offset]%
- \externalfigure[#1]\ignorespaces} % so we can put some text below the graphic
+ \externalfigure[#1][\v!page:\v!figure]\ignorespaces} % so we can put some text below the graphic
\unexpanded\def\stoppagefigure
{\stopTEXpage
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-cst.lua b/Master/texmf-dist/tex/context/base/mkiv/page-cst.lua
index a6315ff05f9..5106f1fef92 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-cst.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-cst.lua
@@ -37,8 +37,7 @@ local tonode = nuts.tonode
local tonut = nuts.tonut
local vpack = nuts.vpack
-local flushlist = nuts.flush_list
------ removenode = nuts.remove
+local flushlist = nuts.flushlist
local setlink = nuts.setlink
local setlist = nuts.setlist
@@ -62,7 +61,7 @@ local takebox = nuts.takebox
local takelist = nuts.takelist
local splitbox = nuts.splitbox
local getattribute = nuts.getattribute
-local copylist = nuts.copy_list
+local copylist = nuts.copylist
local getbox = nuts.getbox
local getcount = tex.getcount
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-flt.lua b/Master/texmf-dist/tex/context/base/mkiv/page-flt.lua
index b1f729f7a6d..7c222084035 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-flt.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-flt.lua
@@ -12,7 +12,7 @@ if not modules then modules = { } end modules ['page-flt'] = {
local next = next
local tostring = tostring
local insert, remove = table.insert, table.remove
-local find = string.find
+local find, topattern = string.find, string.topattern
local abs = math.abs
local trace_floats = false trackers.register("floats.caching", function(v) trace_floats = v end)
@@ -21,7 +21,7 @@ local trace_collecting = false trackers.register("floats.collecting", function(
local report_floats = logs.reporter("floats","caching")
local report_collecting = logs.reporter("floats","collecting")
-local C, S, P, lpegmatch = lpeg.C, lpeg.S, lpeg.P, lpeg.match
+local C, Cc, S, P, lpegmatch = lpeg.C, lpeg.Cc, lpeg.S, lpeg.P, lpeg.match
-- we use floatbox, floatwidth, floatheight
-- text page leftpage rightpage (todo: top, bottom, margin, order)
@@ -119,7 +119,7 @@ local function get(stack,n,bylabel)
if bylabel then
for i=1,#stack do
local s = stack[i]
- local n = string.topattern(tostring(n)) -- to be sure
+ local n = topattern(tostring(n)) -- to be sure
if find(s.data.label,n) then
return s, s.box, i
end
@@ -326,16 +326,18 @@ end
-- todo: check for digits !
+local digits = lpeg.patterns.digits
+local nothing = Cc("")
local method = C((1-S(", :"))^1)
-local position = P(":") * C((1-S("*,"))^1) * (P("*") * C((1-S(","))^1))^0
+local position = P(":") * C(digits^1) * (P("*") * C(digits^1) + nothing)
local label = P(":") * C((1-S(",*: "))^0)
local pattern = method * (
- label * position * C("")
- + C("") * position * C("")
- + label * C("") * C("")
- + C("") * C("") * C("")
-) + C("") * C("") * C("") * C("")
+ label * position
+ + nothing * position
+ + label * nothing * nothing
+ + nothing * nothing * nothing
+) + nothing * nothing * nothing * nothing
-- inspect { lpegmatch(pattern,"somewhere:blabla,crap") }
-- inspect { lpegmatch(pattern,"somewhere:1*2") }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-imp.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-imp.mkiv
index 829ed24f427..ec249d65228 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-imp.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-imp.mkiv
@@ -102,6 +102,15 @@
\installshipoutmethod \v!none
{\page_shipouts_ignore}
+% \setuppaper[method=rotate,rotation=15] \showframe
+% \starttext \dorecurse{10}{\input knuth\endgraf} \stoptext
+
+\installshipoutmethod\v!rotate
+ {\page_shipouts_rotate}
+
+\protected\def\page_shipouts_rotate#1%
+ {\invokepagehandler\v!normal{\rotate[\c!rotation=\rootlayouttargetparameter\c!rotation]{#1}}}
+
% extension mechanism
\newcount\c_page_boxes_flush_n % set at the lua end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/page-ini.lua
index 924e01b2aa8..bcabc0d6b02 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-ini.lua
@@ -6,6 +6,8 @@ if not modules then modules = { } end modules ['page-ini'] = {
license = "see context related readme files"
}
+-- Some day I need to make this more efficient.
+
local tonumber, rawget, rawset, type, next = tonumber, rawget, rawset, type, next
local match = string.match
local sort, tohash, insert, remove, sortedkeys = table.sort, table.tohash, table.insert, table.remove, table.sortedkeys
@@ -13,7 +15,12 @@ local settings_to_array, settings_to_hash = utilities.parsers.settings_to_array,
local texgetcount = tex.getcount
+local tonut = nodes.tonut
+local nextlist = nodes.nuts.traversers.list
+local texlists = tex.lists
+
local context = context
+local ctx_doif = commands.doif
local ctx_doifelse = commands.doifelse
local implement = interfaces.implement
@@ -23,16 +30,22 @@ local last = 0
local pages = structures.pages
local autolist = { }
local report = logs.reporter("pages","mark")
+local active = false
local trace = false trackers.register("pages.mark",function(v) trace = v end)
-function pages.mark(name,list)
+function pages.mark(name,list,settings)
+ active = true
+ --
local realpage = texgetcount("realpageno")
+ if type(settings) == "string" then
+ settings = settings_to_hash(settings)
+ end
if not list or list == "" then
if trace then
report("marking current page %i as %a",realpage,name)
end
- data[realpage][name] = true
+ data[realpage][name] = settings or true
return
end
if type(list) == "string" then
@@ -51,7 +64,7 @@ function pages.mark(name,list)
report("marking page %i upto %i as %a",f,t,name)
end
for page=f,t do
- data[page][name] = true
+ data[page][name] = settings or true
end
end
page = false
@@ -74,7 +87,7 @@ function pages.mark(name,list)
if trace then
report("marking page %i as %a",page,name)
end
- data[page][name] = true
+ data[page][name] = settings or true
end
end
end
@@ -83,30 +96,51 @@ function pages.mark(name,list)
if trace then
report("marking current page %i as %a",realpage,name)
end
- data[realpage][name] = true
+ data[realpage][name] = settings or true
end
end
local tobemarked = { }
function pages.markedlist(realpage)
- if realpage then
+ if active and realpage then
local m = rawget(tobemarked,realpage) or rawget(data,realpage)
return m and next(m) and sortedkeys(m)
end
end
local function marked(name)
- local realpage = texgetcount("realpageno")
- for i=last,realpage-1 do
- local di = data[i]
- if di then
- tobemarked[i] = di
- rawset(data,i,nil)
+ if active then
+ local realpage = texgetcount("realpageno")
+ if last ~= 0 then
+ for i=last,realpage-1 do
+ -- print(last)
+ local di = data[i]
+ if di then
+ tobemarked[i] = di
+ rawset(data,i,nil)
+ end
+ end
+ last = 0 -- needs checking
+ end
+ local pagedata = rawget(data,realpage)
+ return pagedata and pagedata[name] and true or false
+ else
+ return false
+ end
+end
+
+local function markedparameter(name,key)
+ if active then
+ local pagedata = rawget(data,texgetcount("realpageno"))
+ if pagedata then
+ pagedata = pagedata[name]
+ if pagedata then
+ pagedata = pagedata[key]
+ end
end
+ return pagedata
end
- local pagedata = rawget(data,realpage)
- return pagedata and pagedata[name] and true or false
end
local function toranges(marked)
@@ -124,12 +158,14 @@ local function toranges(marked)
last = page
end
list[#list+1] = { first, last }
+ --
+ active = true
end
return list
end
local function allmarked(list)
- if list then
+ if active and list then
local collected = pages.collected
if collected then
if type(list) == "string" then
@@ -175,26 +211,77 @@ pages.allmarked = allmarked
-- An alternative is to use an attribute and identify the state by parsing the node
-- list but that's a bit overkill for a hardly used feature like this.
-luatex.registerpageactions(function()
+-- Page actions are bound to a real page. When we set one, we need to bind to the
+-- current page unless we just flushed. So we also need to check the current page.
+
+-- \page ... \start : sync realpage
+-- \page \start : sync realpage
+-- \page \stop : reset synced because no content yet
+-- \page ... \stop : keep sync
+
+local function autopageaction()
+ if active then
+ local nofauto = #autolist
+ if nofauto > 0 then
+ local realpage = texgetcount("realpageno")
+ for i=1,nofauto do
+ local entry = autolist[i]
+ local names = entry[1]
+ local settings = entry[2]
+ for j=1,#names do
+ local name = names[j]
+ local list = data[realpage]
+ if not list[name] then
+ if trace then
+ report("automatically marking page %i as %a",realpage,name)
+ end
+ list[name] = settings or true
+ end
+ end
+ end
+ end
+ end
+end
+
+local function startmarked(name,settings)
+ active = true
+ --
+ insert(autolist, { settings_to_array(name), settings_to_hash(settings) })
+ autopageaction(true)
+end
+
+local function stopmarked()
local nofauto = #autolist
if nofauto > 0 then
- local realpage = texgetcount("realpageno")
- for i=1,nofauto do
- local names = autolist[i]
- for j=1,#names do
- local name = names[j]
- data[realpage][name] = true
- if trace then
- report("automatically marking page %i as %a",realpage,name)
+ if not texlists.pagehead then
+ local realpage = texgetcount("realpageno")
+ for i=1,nofauto do
+ local entry = autolist[i]
+ local names = entry[1]
+ for j=1,#names do
+ local name = names[j]
+ local list = data[realpage]
+ if list[name] then
+ if trace then
+ report("automatically unmarking page %i as %a",realpage,name)
+ end
+ list[name] = nil
+ end
end
end
end
+ remove(autolist)
end
-end)
+end
+
+implement {
+ name = "checkmarkedpages",
+ actions = autopageaction,
+}
implement {
name = "markpage",
- arguments = "2 strings",
+ arguments = "3 strings",
actions = pages.mark
}
@@ -205,6 +292,23 @@ implement {
}
implement {
+ name = "doifmarkedpage",
+ arguments = "string",
+ actions = { marked, ctx_doif }
+}
+
+implement {
+ name = "markedpageparameter",
+ arguments = "strings",
+ actions = function(name,key)
+ local value = markedparameter(name,key)
+ if value then
+ context(value)
+ end
+ end
+}
+
+implement {
name = "markedpages",
arguments = "string",
actions = function(name)
@@ -217,20 +321,13 @@ implement {
implement {
name = "startmarkpages",
- arguments = "string",
- actions = function(name)
- insert(autolist,settings_to_array(name))
- end
+ arguments = "2 strings",
+ actions = startmarked,
}
implement {
- name = "stopmarkpages",
- arguments = "string",
- actions = function(name)
- if #autolist > 0 then
- remove(autolist)
- end
- end
+ name = "stopmarkpages",
+ actions = stopmarked,
}
local tonut = nodes.tonut
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-ini.mkiv
index e56c3ac0404..0c444ffc2fc 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-ini.mkiv
@@ -333,10 +333,10 @@
\installcorenamespace{markedpage}
\unexpanded\def\markpage
- {\dodoubleempty\page_mark}
+ {\dotripleempty\page_mark}
-\def\page_mark[#1][#2]%
- {\clf_markpage{#1}{#2}}
+\def\page_mark[#1][#2][#3]%
+ {\clf_markpage{#1}{#2}{#3}}
\def\markedpages[#1]% expandable
{\clf_markedpages{#1}}
@@ -344,12 +344,28 @@
\unexpanded\def\doifelsemarkedpage#1%
{\clf_doifelsemarkedpage{#1}}
-\unexpanded\def\startmarkpages[#1]%
- {\clf_startmarkpages{#1}}
+\unexpanded\def\doifmarkedpage#1%
+ {\clf_doifmarkedpage{#1}}
+
+\unexpanded\def\startmarkpages
+ {\dodoubleempty\page_start_marked}
+
+\def\page_start_marked[#1][#2]%
+ {\clf_startmarkpages{#1}{#2}}
\unexpanded\def\stopmarkpages
{\clf_stopmarkpages}
+\unexpanded\def\checkmarkedpages
+ {\clf_checkmarkedpages}
+
+\def\markedpageparameter#1#2%
+ {\clf_markedpageparameter{#1}{#2}}
+
+\appendtoks
+ \checkmarkedpages
+\to \everyaftershipout
+
%D Experimental:
\newconstant\c_page_force_strut_depth_trace_mode
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-inj.mkvi b/Master/texmf-dist/tex/context/base/mkiv/page-inj.mkvi
index f1b520f5e3e..0adfca92d33 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-inj.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-inj.mkvi
@@ -33,8 +33,14 @@
\let\page_boxes_flush_after \clf_flushpageinjectionsafter
\def\page_injections_flush_indeed
- {\scrn_canvas_synchronize_set{\pageinjectionparameter\c!width}{\pageinjectionparameter\c!height}%
- \invokepagehandler\v!normal{\inheritedpageinjectionframed{\texsetup\p_page_injectionalternative_rederingsetup}}%
+ {\begingroup
+ \setbox\scratchbox\normalhpack
+ {\inheritedpageinjectionframed{\texsetup\p_page_injectionalternative_rederingsetup}}%
+ \printpaperwidth \wd\scratchbox
+ \printpaperheight\ht\scratchbox
+ \scrn_canvas_synchronize_only
+ \invokepagehandler\v!normal{\box\scratchbox}%
+ \endgroup
\scrn_canvas_synchronize_reset}
\def\page_injections_flush_saved#name#parameters%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-lin.lua b/Master/texmf-dist/tex/context/base/mkiv/page-lin.lua
index 06983ef5c6f..d3ff2cdadcb 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-lin.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-lin.lua
@@ -84,7 +84,6 @@ local nextvlist = nuts.traversers.vlist
local copy_node = nuts.copy
----- hpack_nodes = nuts.hpack
local is_display_math = nuts.is_display_math
-local leftmarginwidth = nuts.leftmarginwidth
----- nodepool = nuts.pool
----- new_kern = nodepool.kern
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-lin.mkvi b/Master/texmf-dist/tex/context/base/mkiv/page-lin.mkvi
index e355e3e6017..3a54d1ef5eb 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-lin.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-lin.mkvi
@@ -352,7 +352,9 @@
\def\page_lines_add_numbers_to_box#box#column#max#nesting%
{\bgroup
- \strc_tags_enable_indeed
+ \ifconditional\c_strc_tags_enabled
+ \strc_tags_enable_indeed
+ \fi
\b_page_lines_number #box\relax
\c_page_lines_column #column\relax
\c_page_lines_last_column#max\relax
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-mix.lua b/Master/texmf-dist/tex/context/base/mkiv/page-mix.lua
index dacc829d7e6..a4e08063d50 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-mix.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-mix.lua
@@ -33,7 +33,7 @@ local vlist_code = nodecodes.vlist
local kern_code = nodecodes.kern
local glue_code = nodecodes.glue
local penalty_code = nodecodes.penalty
-local insert_code = nodecodes.ins
+local insert_code = nodecodes.insert
local mark_code = nodecodes.mark
local rule_code = nodecodes.rule
@@ -59,9 +59,9 @@ local getnext = nuts.getnext
local getprev = nuts.getprev
local getid = nuts.getid
local getlist = nuts.getlist
-local getsubtype = nuts.getsubtype
+local getindex = nuts.getindex or nuts.getsubtype -- luatex catch
local getbox = nuts.getbox
-local getattribute = nuts.getattribute
+local getattr = nuts.getattr
local getwhd = nuts.getwhd
local getkern = nuts.getkern
local getpenalty = nuts.getpenalty
@@ -79,6 +79,8 @@ local new_glue = nodepool.glue
local points = number.points
+local setinsertcontent = tex.setinsertcontent or tex.setbox
+
local settings_to_hash = utilities.parsers.settings_to_hash
local variables = interfaces.variables
@@ -121,7 +123,7 @@ local function collectinserts(result,nxt,nxtid)
i = i + 1
result.i = i
inserttotal = inserttotal + getheight(nxt) -- height includes depth (hm, still? needs checking)
- local s = getsubtype(nxt)
+ local s = getindex(nxt)
local c = inserts[s]
if trace_details then
report_state("insert of class %s found",s)
@@ -249,12 +251,19 @@ local function preparesplit(specification) -- a rather large function
report_state("fatal error, no list")
return
end
- local head = getlist(list) or specification.originalhead
+ local head = nil
+ if getid(list) == hlist_code then
+ head = list
+ else
+ head = getlist(list) or specification.originalhead
+ end
if not head then
report_state("fatal error, no head")
return
end
+
slidenodes(head) -- we can have set prev's to nil to prevent backtracking
+
local discarded = { }
local originalhead = head
local originalwidth = specification.originalwidth or getwidth(list)
@@ -439,6 +448,7 @@ local function preparesplit(specification) -- a rather large function
if column == nofcolumns then
column = 0 -- nicer in trace
rest = head
+-- rest = nil
return false, 0
else
local skipped
@@ -589,7 +599,7 @@ local function preparesplit(specification) -- a rather large function
if penalty == 0 then
unlock(2,penalty)
elseif penalty == forcedbreak then
- local needed = getattribute(current,a_checkedbreak)
+ local needed = getattr(current,a_checkedbreak)
local proceed = not needed or needed == 0
if not proceed then
local available = target - height
@@ -770,7 +780,6 @@ local function preparesplit(specification) -- a rather large function
specification.rest = rest
specification.overflow = overflow
specification.discarded = discarded
-
setlist(getbox(specification.box))
return specification
@@ -897,6 +906,7 @@ local function getsplit(result,n)
end
setprev(h) -- move up
+
local strutht = result.strutht
local strutdp = result.strutdp
local lineheight = strutht + strutdp
@@ -905,6 +915,19 @@ local function getsplit(result,n)
local v = new_vlist()
setlist(v,h)
+ -- safeguard ... i need to figure this out some day
+
+ local c = r.head
+ while c do
+ if c == result.rest then
+ report_state("flush, column %s, %s",n,"suspicous rest")
+ result.rest = nil
+ break
+ else
+ c = getnext(c)
+ end
+ end
+
-- local v = vpack(h,"exactly",height)
if isglobal then -- option
@@ -985,8 +1008,8 @@ local function getsplit(result,n)
for i=1,#list-1 do
setdepth(list[i],0)
end
- local b = vpack(l) -- multiple arguments, todo: fastvpack
- setbox("global",c,b) -- when we wrap in a box
+ local b = vpack(l) -- multiple arguments, todo: fastvpack
+ setinsertcontent(c,tonode(b)) -- when we wrap in a box
r.inserts[c] = nil
end
@@ -1064,7 +1087,10 @@ implement {
arguments = "integer",
actions = function(n)
if result then
- context(tonode(getsplit(result,n)))
+ local list = getsplit(result,n)
+ if list then
+ context(tonode(list))
+ end
end
end,
}
@@ -1082,7 +1108,10 @@ implement {
name = "mixflushrest",
actions = function()
if result then
- context(tonode(getrest(result)))
+ local rest = getrest(result)
+ if rest then
+ context(tonode(rest))
+ end
end
end
}
@@ -1091,7 +1120,10 @@ implement {
name = "mixflushlist",
actions = function()
if result then
- context(tonode(getlist(result)))
+ local list = getlist(result)
+ if list then
+ context(tonode(list))
+ end
end
end
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-mix.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-mix.mkiv
index e38ad74068d..2bca9cbf56c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-mix.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-mix.mkiv
@@ -31,10 +31,6 @@
% offsets (inner ones, so we change the hsize ... needed with backgrounds
% when no content we currently loose the page
-% luatex buglet:
-%
-% \ctxlua{tex.setbox("global",0,node.hpack(nodes.pool.glyph("a",font.current())))}\box0
-
\registerctxluafile{page-mix}{}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-one.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-one.mkiv
index 54e53035f51..567a19884d5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-one.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-one.mkiv
@@ -63,6 +63,22 @@
% \fi
% \fi}
+% \unexpanded\def\page_one_command_set_vsize
+% {\ifgridsnapping
+% \ifcase\layoutlines
+% \getrawnoflines\textheight
+% \else
+% \noflines\layoutlines
+% \fi
+% \global\vsize\noflines\openlineheight
+% \else
+% \global\vsize\textheight
+% \fi
+% \global\advance\vsize\d_page_adapts_delta
+% % alternatively we could set it in builders.buildpage_filter
+% % \ifdim\pagegoal<\maxdimen .. \fi
+% \pagegoal\dimexpr\vsize-\d_page_floats_inserted_top-\d_page_floats_inserted_bottom\relax}
+
\unexpanded\def\page_one_command_set_vsize
{\ifgridsnapping
\ifcase\layoutlines
@@ -75,10 +91,10 @@
\global\vsize\textheight
\fi
\global\advance\vsize\d_page_adapts_delta
- % alternatively we could set it in builders.buildpage_filter
- % \ifdim\pagegoal<\maxdimen .. \fi
- \pagegoal\dimexpr\vsize-\d_page_floats_inserted_top-\d_page_floats_inserted_bottom\relax}
-
+ % \pagegoal\dimexpr\vsize-\d_page_floats_inserted_top-\d_page_floats_inserted_bottom\relax}
+ % per 2021/9/9 : otherwise weird notes overlap with side floats
+ \settotalinsertionheight
+ \pagegoal\dimexpr\vsize-\totalinsertionheight\relax}
% 1 = partial page, 2 = whole page, 3 = partial page
@@ -356,13 +372,13 @@
\def\page_one_command_flush_bottom_insertions_indeed
{\ifgridsnapping
- % \floatparameter\c!bottombefore
+ % \rootfloatparameter\c!bottombefore
\snaptogrid\hbox{\box\namedinsertionnumber\s!bottomfloat}%
- % \floatparameter\c!bottomafter
+ % \rootfloatparameter\c!bottomafter
\else
- \floatparameter\c!bottombefore
+ \rootfloatparameter\c!bottombefore
\unvbox\namedinsertionnumber\s!bottomfloat
- \floatparameter\c!bottomafter
+ \rootfloatparameter\c!bottomafter
\fi}
\unexpanded\def\page_one_command_flush_floats
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-pcl.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-pcl.mkiv
index 43ba4feb326..262ee71ab1a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-pcl.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-pcl.mkiv
@@ -246,8 +246,8 @@
\page_marks_synchronize_column\plusone\c_page_col_n_of_columns\recurselevel\scratchbox
% backgrounds
\anch_mark_column_box\scratchbox\recurselevel
- \mixedcolumnseparatorheight\ht\scratchbox
- \mixedcolumnseparatordepth \dp\scratchbox
+ \pagecolumnseparatorheight\ht\scratchbox
+ \pagecolumnseparatordepth \dp\scratchbox
\inheritedpagecolumnsframedbox\recurselevel\scratchbox}
\def\page_col_routine_package
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-sid.mkiv b/Master/texmf-dist/tex/context/base/mkiv/page-sid.mkiv
index e6c1be985d7..88e4fb1164b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-sid.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-sid.mkiv
@@ -292,7 +292,7 @@
\box\floatbox
% somehow we need this \scratchbox magic, but at least it's the same as the
% tracer now
- \setbox\scratchbox\emptybox
+ \setbox\scratchbox\emptyhbox
\wd\scratchbox\hsize
\ht\scratchbox\d_page_sides_bottomtotal
\box\scratchbox
diff --git a/Master/texmf-dist/tex/context/base/mkiv/page-str.lua b/Master/texmf-dist/tex/context/base/mkiv/page-str.lua
index 73f1782d0b6..64e593e27e2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/page-str.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/page-str.lua
@@ -24,11 +24,12 @@ local nuts = nodes.nuts
local tonut = nodes.tonut
local slide_node_list = nuts.slide
local write_node = nuts.write
-local flush_node = nuts.flush
-local copy_node_list = nuts.copy_list
+local flushnode = nuts.flush
+local copy_node_list = nuts.copylist
local vpack_node_list = nuts.vpack
+local new_rule = nuts.pool.rule
-local getbox = nuts.getbox
+----- getbox = nuts.getbox
local setlink = nuts.setlink
local getlist = nuts.getlist
local setlist = nuts.setlist
@@ -40,7 +41,6 @@ local settings_to_array = utilities.parsers.settings_to_array
local enableaction = nodes.tasks.enableaction
local texgetdimen = tex.getdimen
------ texgetbox = tex.getbox
local trace_collecting = false trackers.register("streams.collecting", function(v) trace_collecting = v end)
local trace_flushing = false trackers.register("streams.flushing", function(v) trace_flushing = v end)
@@ -146,7 +146,7 @@ function streams.flush(name,copy) -- problem: we need to migrate afterwards
if di then
write_node(getlist(di)) -- list, will be option
setlist(di)
- flush_node(di)
+ flushnode(di)
end
end
end
@@ -226,9 +226,11 @@ function streams.synchronize(list) -- this is an experiment !
local delta = delta_height -- for tracing
while delta > 0 do
-- we need to add some interline penalties
- local line = copy_node_list(getbox("strutbox"))
- setwhd(line,false,strutht,strutdp)
+ -- local line = copy_node_list(getbox("strutbox"))
+ -- setwhd(line,false,strutht,strutdp)
+ local line = new_rule(0,strutht,strutdp) -- no tracing
if tail then
+ -- todo: inject at a better place
setlink(tail,line)
end
tail = line
@@ -237,7 +239,7 @@ function streams.synchronize(list) -- this is an experiment !
end
dana[m] = vpack_node_list(getlist(vbox))
setlist(vbox)
- flush_node(vbox)
+ flushnode(vbox)
if trace_flushing then
report_streams("slot %s:%s with delta (%p,%p) is compensated by %s lines",m,i,delta_height,delta_depth,n)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/phys-dim.lua b/Master/texmf-dist/tex/context/base/mkiv/phys-dim.lua
index e0cea7babde..91803e4fdcd 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/phys-dim.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/phys-dim.lua
@@ -1008,7 +1008,7 @@ implement {
protected = true,
arguments = { "optional", "string" },
actions = function(filler, digits)
- digits = gsub(digits,"(%d)","%1\\digitsbreak")
+ digits = gsub(digits,"(%d)","%1\\digitsbreak ") -- space needed for following letters
digits = gsub(digits,"\\-$",filler)
context(digits)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/phys-dim.mkiv b/Master/texmf-dist/tex/context/base/mkiv/phys-dim.mkiv
index b390ce64aef..a05300cce3c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/phys-dim.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/phys-dim.mkiv
@@ -170,9 +170,8 @@
% \definesymbol[units][times][\ifmmode\cdot\else\kern.2\emwidth\cdot\kern.2\emwidth\fi]
\unexpanded\def\digitstextbinop#1% assumes preceding
- {\ifmmode#1\else\fourperemspace\nobreak#1\fourperemspace\fi}
+ {\ifmmode\mathord{#1}\else\nobreak#1\fi}
-%def\digitstimessymbol{\ifmmode\cdot\else\digitstextbinop\cdot\fi}
\def\digitstimessymbol{\digitstextbinop\times}
\unexpanded\def\digitszeropadding {\hphantom{0}}
@@ -406,8 +405,13 @@
% \endcsname}
\unexpanded\def\phys_units_separator
- {\edef\currentunitsseparator{\unitparameter\c!separator}% no longer needed
- \ifcsname\??unitseparator\currentunitsseparator\endcsname\lastnamedcs\else\cdot\fi}
+ {\ifcsname\??unitseparator\unitparameter\c!separator\endcsname
+ \lastnamedcs
+ \else
+ \csname\??unitseparator\v!normal\endcsname
+ \fi}
+
+\installunitsseparator\v!normal{\ifmmode\mathord{\cdot}\else\cdot\fi}
\installunitsseparator\v!normal {\cdot}
\installunitsseparator\v!big {\unitsbigspace}
@@ -521,9 +525,6 @@
{\edef\p_order{\unitparameter\c!order}%
\ifx\p_order\v!reverse\expandafter\clf_unit_reverse\else\expandafter\clf_unit_normal\fi{\detokenize{#1}}}
-\unexpanded\def\digitstextbinnop#1%
- {\ifmmode#1\else#1\fourperemspace\fi}
-
\unexpanded\def\unitsPUS#1#2#3{\phys_units_next\prefixtext{#1}\unittext{#2}\unitsraise{\suffixtext{#3}}\c_phys_units_state\plusone} % suffix
\unexpanded\def\unitsPU #1#2{\phys_units_next\prefixtext{#1}\unittext{#2}\c_phys_units_state\plusthree} % unit
\unexpanded\def\unitsPS #1#2{\phys_units_next\prefixtext{#1}\unitsraise{\suffixtext{#2}}\c_phys_units_state\plusone} % suffix
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-aut.lua b/Master/texmf-dist/tex/context/base/mkiv/publ-aut.lua
index 123a67009d4..64fecb3d5b0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-aut.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/publ-aut.lua
@@ -503,6 +503,7 @@ local function btxauthor(dataset,tag,field,settings)
ctx_btxsetup(combiner)
ctx_btxstopauthor()
end
+
if index then
oneauthor(index)
elseif max == 1 then
@@ -515,9 +516,11 @@ local function btxauthor(dataset,tag,field,settings)
oneauthor(absmax,true)
end
end
+
else
report("ignored field %a of tag %a, used field %a is no author",field,tag,usedfield)
end
+
end
implement {
@@ -995,6 +998,22 @@ publications.sortmethods.authoryear = {
},
}
+publications.sortmethods.authortitle = {
+ sequence = {
+ { field = "author", default = "", unknown = "" },
+ { field = "title", default = "", unknown = "" },
+ { field = "booktitle", default = "", unknown = "" }, -- if this is an untitled section (e.g., introduction, foreword, preface) of a book or a review of a book
+ { field = "maintitle", default = "", unknown = "" }, -- if this is an untitled section or volume in a multivolume collection
+ { field = "volume", default = "", unknown = "" },
+ { field = "part", default = "", unknown = "" },
+ { field = "date", default = "9998-13-32", unknown = "9999-14-33" }, -- some specifications allow date instead of year, month, day
+ { field = "year", default = "9998", unknown = "9999" },
+ { field = "month", default = "13", unknown = "14" },
+ { field = "day", default = "32", unknown = "33" },
+ { field = "index", default = "", unknown = "" },
+ },
+}
+
implement {
name = "btxremapauthor",
arguments = "2 strings",
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-dat.lua b/Master/texmf-dist/tex/context/base/mkiv/publ-dat.lua
index f09e97a8d9f..64aaaf4603e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-dat.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/publ-dat.lua
@@ -379,6 +379,7 @@ function publications.new(name)
suffixes = { },
xmldata = xmlconvert(xmlplaceholder),
details = { },
+ missing = { },
ordered = { },
nofbytes = 0,
entries = nil, -- empty == all
@@ -632,13 +633,13 @@ do
local r_value = reference * Carg(1) / resolve
local balanced = P {
- [1] = ((escape * (left+right)) + (collapsed + r_value + 1 - (left+right))^1 + V(2))^0,
- [2] = left * V(1) * right,
+ ((escape * (left+right)) + (collapsed + r_value + 1 - (left+right))^1 + V(2))^0,
+ left * V(1) * right,
}
-- local unbalanced = P {
- -- [1] = left * V(2) * right,
- -- [2] = ((escape * (left+right)) + (collapsed + 1 - (left+right))^1 + V(1))^0,
+ -- left * V(2) * right,
+ -- ((escape * (left+right)) + (collapsed + 1 - (left+right))^1 + V(1))^0,
-- }
local unbalanced = (left/"") * balanced * (right/"") * P(-1)
@@ -732,6 +733,7 @@ do
end
end
end
+-- inspect(luadata)
statistics.stoptiming(publications)
end
@@ -1172,18 +1174,31 @@ do
end
end
- function savers.lua(dataset,filename,tobesaved)
- local list = { }
- local n = 0
- for tag, data in next, tobesaved do
+ function savers.lua(dataset,filename,tobesaved,options)
+ local list = { }
+ local n = 0
+
+ local function totable(data,category)
local t = { }
for key, value in next, data do
if not privates[key] then
- d[key] = value
+ t[key] = value
end
end
- list[tag] = t
+ t.category = category
n = n + 1
+ return t
+ end
+
+ if options.category then
+ setmetatableindex(list,"table")
+ for tag, data in next, tobesaved do
+ list[data.category or "unknown"][tag] = totable(data)
+ end
+ else
+ for tag, data in next, tobesaved do
+ list[tag] = totable(data,data.category)
+ end
end
report("%s entries from dataset %a saved in %a",n,dataset,filename)
table.save(filename,list)
@@ -1200,6 +1215,7 @@ do
local filename = specification.filename
local filetype = specification.filetype
local criterium = specification.criterium
+ local options = settings_to_hash(specification.options or "")
statistics.starttiming(publications)
if not filename or filename == "" then
report("no filename for saving given")
@@ -1229,7 +1245,7 @@ do
end
end
end
- saver(dataset,filename,tobesaved)
+ saver(dataset,filename,tobesaved,options)
else
report("unknown format %a for saving %a",filetype,dataset)
end
@@ -1250,6 +1266,7 @@ do
{ "filename" },
{ "filetype" },
{ "criterium" },
+ { "options" },
}
}
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-fnd.lua b/Master/texmf-dist/tex/context/base/mkiv/publ-fnd.lua
index 32d0c11beed..5ba173365d1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-fnd.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/publ-fnd.lua
@@ -147,8 +147,8 @@ local p_expression = P("match")/"" * Cs(p_compare)
) / test_key_value
local pattern = Cs {
- [1] = V(2) * (p_combine * V(2))^0,
- [2] = p_expression,
+ V(2) * (p_combine * V(2))^0,
+ p_expression,
}
-- -- -- -- -- -- -- -- -- -- -- -- --
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-imp-apa.mkvi b/Master/texmf-dist/tex/context/base/mkiv/publ-imp-apa.mkvi
index c7c00fd1436..b4ac74258bb 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-imp-apa.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/publ-imp-apa.mkvi
@@ -1078,8 +1078,10 @@
\btxlabeltext{In}
\btxspace
\doifnot {\btxfoundname{author}} {editor} {
- \texdefinition{btx:apa:author-or-editor} {ineditor}
- \btxcomma
+ \btxdoif {ineditor} {
+ \texdefinition{btx:apa:author-or-editor} {ineditor}
+ \btxcomma
+ }
}
\texdefinition{btx:apa:composed-title}{booktitle}
\btxperiod
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-imp-aps-prb.mkvi b/Master/texmf-dist/tex/context/base/mkiv/publ-imp-aps-prb.mkvi
new file mode 100644
index 00000000000..19735b94967
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/publ-imp-aps-prb.mkvi
@@ -0,0 +1,40 @@
+%D \module
+%D [ file=publ-imp-aps-prb,
+%D version=2015.03.22,
+%D title=Phys. Rev. B APS bibliography style,
+%D subtitle=Publications,
+%D author=Alan Braslau and Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is therefore copyrighted
+%D by \PRAGMA. See mreadme.pdf for details.
+
+\startbtxrenderingdefinitions[aps-prb]
+
+\loadbtxdefinitionfile[aps]
+
+\setupbtxlist
+ [aps]
+ [\c!alternative=\v!paragraph,
+ \c!width=\v!auto,
+ \c!distance=\zeropoint,
+ \c!numberalign=\v!flushright]
+
+\setupbtx
+ [aps:list:numbering:num]
+ [\c!command=\high,
+ \c!left=,
+ \c!right=,
+ \c!stopper=]
+
+\setupbtx
+ [aps:cite:num]
+ [\c!command=\high,
+ \c!left=,
+ \c!right=]
+
+%\setupbtx
+% [\c!specification=aps]
+
+\stopbtxrenderingdefinitions
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-imp-author.mkvi b/Master/texmf-dist/tex/context/base/mkiv/publ-imp-author.mkvi
index 8ee7835996f..ea824a2b53b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-imp-author.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/publ-imp-author.mkvi
@@ -118,6 +118,14 @@
\fastsetup{\s!btx:\s!cite:\s!author:others}
\stopsetups
+\startsetups \s!btx:\s!cite:\s!author:invertedfirst
+ \ifnum\currentbtxauthorindex>\plusone
+ \fastsetup{\s!btx:\s!cite:\s!author:normal}
+ \else
+ \fastsetup{\s!btx:\s!cite:\s!author:inverted}
+ \fi
+\stopsetups
+
\startsetups \s!btx:\s!cite:\s!author:invertedshort
\fastsetup{\s!btx:\s!cite:\s!author:concat}
\ifx\currentbtxvons\empty \else
@@ -258,6 +266,14 @@
\fastsetup{\s!btx:\s!list:\s!author:others}
\stopsetups
+\startsetups \s!btx:\s!list:\s!author:invertedfirst
+ \ifnum\currentbtxauthorindex>\plusone
+ \fastsetup{\s!btx:\s!list:\s!author:normal}
+ \else
+ \fastsetup{\s!btx:\s!list:\s!author:inverted}
+ \fi
+\stopsetups
+
\startsetups \s!btx:\s!list:\s!author:invertedshort
\fastsetup{\s!btx:\s!list:\s!author:concat}
\ifx\currentbtxvons\empty \else
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-imp-cite.mkvi b/Master/texmf-dist/tex/context/base/mkiv/publ-imp-cite.mkvi
index 721985499b6..c9afdbf42dc 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-imp-cite.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/publ-imp-cite.mkvi
@@ -85,7 +85,8 @@
\startsetups btx:cite:invalid
\btxcitereference
- {\tt <\currentbtxreference>}
+ % {\tt <\currentbtxreference>}
+ {\tt <\currentbtxmissingreference>}
\stopsetups
\startsetups btx:cite:concat
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/publ-ini.lua
index ec36be89ad7..dac0ab441d0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/publ-ini.lua
@@ -32,7 +32,7 @@ local sortedkeys, sortedhash = table.sortedkeys, table.sortedhash
local setmetatableindex = table.setmetatableindex
local lpegmatch = lpeg.match
local P, S, C, Ct, Cs, R, Carg = lpeg.P, lpeg.S, lpeg.C, lpeg.Ct, lpeg.Cs, lpeg.R, lpeg.Carg
-local upper = characters.upper
+local upper, lower = characters.upper, characters.lower
local report = logs.reporter("publications")
local report_cite = logs.reporter("publications","cite")
@@ -54,6 +54,8 @@ local detailed = publications.detailed
local enhancer = publications.enhancer
local enhancers = publications.enhancers
+if not publications.btx then publications.btx = { } end -- user space
+
local tracers = publications.tracers or { }
publications.tracers = tracers
@@ -691,6 +693,49 @@ local findallused do
end
}
+ implement {
+ name = "btxmissing",
+ arguments = "2 strings",
+ actions = function(dataset,tag)
+ local dataset = datasets[dataset]
+ if dataset then
+ local missing = dataset.missing
+ local message = missing[tag]
+ if message == nil then
+ local luadata = dataset.luadata
+ local entry = luadata[tag]
+ if not entry then
+ local t = lower(tag)
+ if luadata[t] then
+ message = t
+ else
+ t = upper(tag)
+ if luadata[t] then
+ message = t
+ else
+ for k, v in next, luadata do
+ if t == upper(k) then
+ message = k
+ break
+ end
+ end
+ end
+ end
+ end
+ if not message then
+ message = false
+ end
+ missing[tag] = message
+ end
+ if message then
+ context("%s vs %s",tag,message)
+ return
+ end
+ end
+ context(tag)
+ end
+ }
+
end
local function unknowncite(reference)
@@ -2166,18 +2211,18 @@ do
function lists.combiinlist(dataset,tag)
local rendering = renderings[dataset]
- local list = rendering.list
+ -- local list = rendering.list
local toindex = rendering.tagtolistindex
return toindex and toindex[tag]
end
function lists.flushcombi(dataset,tag)
local rendering = renderings[dataset]
- local list = rendering.list
local toindex = rendering.tagtolistindex
local listindex = toindex and toindex[tag]
if listindex then
- local li = list[listindex]
+ local list = rendering.list
+ local li = list[listindex]
if li then
local data = datasets[dataset]
local luadata = data.luadata
@@ -2406,6 +2451,10 @@ do
s = k
break
end
+ -- weird
+ if type(s) == "table" then
+ return citevariants.default
+ end
end
if s then
s = specifications[s]
@@ -2650,6 +2699,8 @@ do
-- a bit redundant access to datasets
+ local creported = setmetatableindex("table")
+
local function processcite(presets,specification)
--
if specification then
@@ -2676,9 +2727,15 @@ do
--
if not found or #found == 0 then
-- if not list or #list == 0 then
- report("no entry %a found in dataset %a",reference,dataset)
+ if not creported[dataset][reference] then
+ report("no entry %a found in dataset %a",reference,dataset)
+ creported[dataset][reference] = true
+ end
elseif not setup then
- report("invalid reference for %a",reference)
+ if not creported[""][reference] then
+ report("invalid reference for %a",reference)
+ creported[""][reference] = true
+ end
else
if trace_cite then
report("processing reference %a",reference)
@@ -3505,3 +3562,34 @@ do
end
end
+
+do
+
+ -- no caching for now
+
+ interfaces.implement { -- shared with mkiv so no public
+ name = "btxdoifelsecitedone",
+ protected = true,
+ -- public = true,
+ -- arguments = "2 arguments",
+ arguments = "2 strings",
+ actions = function(dataset,tag)
+ -- dataset ignored
+ local list = structures.lists.tobesaved
+ local done = false
+ for i=1,#list do
+ local l = list[i]
+ local m = l.metadata
+ if m and m.kind == "btx" then
+ local u = l.userdata
+ if u and u.btxref == tag then
+ done = true
+ break
+ end
+ end
+ end
+ ctx_doifelse(done)
+ end
+ }
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/publ-ini.mkiv
index dfed53c7374..6e34d3ab5e5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/publ-ini.mkiv
@@ -799,9 +799,13 @@
\unexpanded\def\btxdoifelsecombiinlist#1#2%
{\clf_btxdoifelsecombiinlist{#1}{#2}}
+\unexpanded\def\btxdoifelsecitedone#1#2%
+ {\clf_btxdoifelsecitedone{#1}{#2}}
+
\let\btxdoifsameaspreviouscheckedelse\btxdoifelsesameaspreviouschecked
\let\btxdoifsameaspreviouselse \btxdoifelsesameasprevious
\let\btxdoifcombiinlistelse \btxdoifelsecombiinlist
+\let\btxdoifcitedoneelse \btxdoifelsecitedone
\def\publ_place_list_indeed#1#2[#3][#4]%
{\begingroup
diff --git a/Master/texmf-dist/tex/context/base/mkiv/publ-sor.lua b/Master/texmf-dist/tex/context/base/mkiv/publ-sor.lua
index 30a0d9bddf8..ed944ed9d9e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/publ-sor.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/publ-sor.lua
@@ -370,9 +370,17 @@ table.setmetatableindex(sorters,function(t,k) return anything end)
publications.lists.sorters = sorters
--- publications.sortmethods.key = {
--- sequence = {
--- { field = "key", default = "", unknown = "" },
--- { field = "index", default = "", unknown = "" },
--- },
--- }
+publications.sortmethods.key = {
+ sequence = {
+ { field = "key", default = "", unknown = "" },
+ { field = "index", default = 0, unknown = 0 },
+ },
+}
+
+publications.sortmethods.index = {
+ sequence = {
+ { field = "index", default = 0, unknown = 0 },
+ },
+}
+
+publications.sortmethods.dataset = publications.sortmethods.index
diff --git a/Master/texmf-dist/tex/context/base/mkiv/regi-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/regi-ini.lua
index 8d4f2bfd5a1..2a3b2caafa5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/regi-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/regi-ini.lua
@@ -16,7 +16,6 @@ runtime.</p>
local commands, context = commands, context
-
local tostring = tostring
local utfchar = utf.char
local P, Cs, Cc, lpegmatch = lpeg.P, lpeg.Cs, lpeg.Cc, lpeg.match
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrn-hlp.lua b/Master/texmf-dist/tex/context/base/mkiv/scrn-hlp.lua
index 8f6f6f746db..a11ad48d285 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrn-hlp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrn-hlp.lua
@@ -18,8 +18,8 @@ local formatters = string.formatters
local a_help = attributes.private("help")
-local copy_node_list = node.copy_list
-local hpack_node_list = node.hpack
+local copy_node_list = nodes.copylist
+local hpack_node_list = nodes.hpack
local register_list = nodes.pool.register
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrn-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/scrn-ini.lua
index ce9f9f71b06..9c9a9f1b487 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrn-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrn-ini.lua
@@ -33,7 +33,7 @@ interfaces.implement {
arguments = {
{
{ "title" },
- { "subtitle" },
+ { "subtitle"},
{ "author" },
{ "creator" },
{ "date" },
@@ -41,3 +41,11 @@ interfaces.implement {
}
}
}
+
+interfaces.implement {
+ name = "setautoprefix",
+ actions = function(prefix)
+ backends.codeinjections.setautoprefix(prefix)
+ end,
+ arguments = "string",
+}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrn-ini.mkvi b/Master/texmf-dist/tex/context/base/mkiv/scrn-ini.mkvi
index 39fef740c24..4651956a564 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrn-ini.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrn-ini.mkvi
@@ -251,4 +251,8 @@
\c!keyword=,
\c!date=]
+\appendtoks
+ \clf_setautoprefix{\interactionparameter\c!prefix}%
+\to \everysetupinteraction
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrn-wid.lua b/Master/texmf-dist/tex/context/base/mkiv/scrn-wid.lua
index 17c9ebddc4a..e92be778f1e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrn-wid.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrn-wid.lua
@@ -231,13 +231,15 @@ function soundclips.register(specification)
end
end
-function soundclips.insert(tag)
- local sc = soundclips[tag]
- if not sc then
- -- todo: message
- return soundclips.register { tag = tag }
- else
- return sc
+function soundclips.insert(specification)
+ local tag = specification.tag
+ if tag and tag ~= "" then
+ local sc = soundclips[tag]
+ if not sc then
+ -- todo: message
+ sc = soundclips.register { tag = tag }
+ end
+ nodeinjections.insertsound(sc)
end
end
@@ -298,7 +300,6 @@ implement {
actions = renderings.register,
arguments = {
{
- { "type" },
{ "label" },
{ "mime" },
{ "filename" },
@@ -321,6 +322,8 @@ implement {
{ "height", "dimen" },
{ "option" },
{ "page", "integer" },
+ { "openpage" },
+ { "closepage" },
}
}
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrn-wid.mkvi b/Master/texmf-dist/tex/context/base/mkiv/scrn-wid.mkvi
index d0b0fb006a2..d9f7940cd8f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrn-wid.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrn-wid.mkvi
@@ -665,6 +665,7 @@
\letrenderingwindowparameter\c!closepageaction\empty
\setrenderingwindowparameter\c!width {\d_scrn_rendering_width }%
\setrenderingwindowparameter\c!height {\d_scrn_rendering_height}%
+ \letrenderingwindowparameter\c!align \v!flushleft
\to \everypresetrenderingwindow
\unexpanded\def\placerenderingwindow
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrp-cjk.lua b/Master/texmf-dist/tex/context/base/mkiv/scrp-cjk.lua
index 9e6e24f4d02..0667e8031f0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrp-cjk.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrp-cjk.lua
@@ -17,59 +17,60 @@ if not modules then modules = { } end modules ['scrp-cjk'] = {
-- endofline turned into spaces (would not make sense either because otherwise a
-- wanted space at the end of a line would have to be a hard coded ones.
-local nuts = nodes.nuts
+local nuts = nodes.nuts
-local insert_node_after = nuts.insert_after
-local insert_node_before = nuts.insert_before
-local copy_node = nuts.copy
-local remove_node = nuts.remove
-local nextglyph = nuts.traversers.glyph
+local copy_node = nuts.copy
+local remove_node = nuts.remove
+local nextglyph = nuts.traversers.glyph
-local getnext = nuts.getnext
-local getprev = nuts.getprev
-local getfont = nuts.getfont
-local getchar = nuts.getchar
-local getid = nuts.getid
-local getsubtype = nuts.getsubtype
-local getwidth = nuts.getwidth
+local getnext = nuts.getnext
+local getprev = nuts.getprev
+local getfont = nuts.getfont
+local getchar = nuts.getchar
+local getid = nuts.getid
+local getsubtype = nuts.getsubtype
+local getwidth = nuts.getwidth
-local setchar = nuts.setchar
+local setchar = nuts.setchar
-local nodepool = nuts.pool
-local new_glue = nodepool.glue
-local new_kern = nodepool.kern
-local new_penalty = nodepool.penalty
+local nodepool = nuts.pool
+local new_glue = nodepool.glue
+local new_kern = nodepool.kern
+local new_penalty = nodepool.penalty
-local nodecodes = nodes.nodecodes
-local gluecodes = nodes.gluecodes
+local nodecodes = nodes.nodecodes
+local gluecodes = nodes.gluecodes
-local glyph_code = nodecodes.glyph
-local glue_code = nodecodes.glue
+local glyph_code = nodecodes.glyph
+local glue_code = nodecodes.glue
-local userskip_code = gluecodes.userskip
-local spaceskip_code = gluecodes.spaceskip
-local xspaceskip_code = gluecodes.xspaceskip
+local userskip_code = gluecodes.userskip
+local spaceskip_code = gluecodes.spaceskip
+local xspaceskip_code = gluecodes.xspaceskip
-local hash = scripts.hash
+local hash = characters.scripthash
-local getscriptstatus = scripts.getstatus
-local getscriptdata = scripts.getdata
-local scriptcolors = scripts.colors
+local getscriptstatus = scripts.getstatus
+local getscriptdata = scripts.getdata
+local scriptcolors = scripts.colors
-local fonthashes = fonts.hashes
-local quaddata = fonthashes.quads
-local spacedata = fonthashes.spaces
+local fonthashes = fonts.hashes
+local quaddata = fonthashes.quads
+local spacedata = fonthashes.spaces
-local decomposed = characters.hangul.decomposed
+local decomposed = characters.hangul.decomposed
-local trace_details = false trackers.register("scripts.details", function(v) trace_details = v end)
+local trace_details = false trackers.register("scripts.details", function(v) trace_details = v end)
-local report_details = logs.reporter("scripts","detail")
+local report_details = logs.reporter("scripts","detail")
-- raggedleft is controlled by leftskip and we might end up with a situation where
-- the intercharacter spacing interferes with this; the solution is to patch the
-- nodelist but better is to use veryraggedleft
+local insertnodeafter = scripts.helpers.insertnodeafter
+local insertnodebefore = scripts.helpers.insertnodebefore
+
local inter_char_shrink = 0
local inter_char_stretch = 0
local inter_char_half_shrink = 0
@@ -133,206 +134,206 @@ local function nobreak(head,current)
if trace_details then
trace_detail(current,"break")
end
- insert_node_before(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_penalty(10000))
end
local function stretch_break(head,current)
if trace_details then
trace_detail(current,"stretch break")
end
- insert_node_before(head,current,new_glue(0,inter_char_stretch,0))
+ insertnodebefore(head,current,new_glue(0,inter_char_stretch,0))
end
local function shrink_break(head,current)
if trace_details then
trace_detail(current,"shrink break")
end
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
end
local function nobreak_stretch(head,current)
if trace_details then
trace_detail(current,"no break stretch")
end
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,inter_char_stretch,0))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,inter_char_stretch,0))
end
local function korean_break(head,current)
if trace_details then
trace_detail(current,"korean break")
end
- insert_node_before(head,current,new_penalty(inter_char_hangul_penalty))
+ insertnodebefore(head,current,new_penalty(inter_char_hangul_penalty))
end
local function nobreak_shrink(head,current)
if trace_details then
trace_detail(current,"nobreak shrink")
end
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
end
local function nobreak_autoshrink(head,current)
if trace_details then
trace_detail(current,"nobreak autoshrink")
end
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
end
local function nobreak_stretch_nobreak_shrink(head,current)
if trace_details then
trace_detail(current,"nobreak stretch nobreak shrink")
end
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,inter_char_stretch,0))
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,inter_char_stretch,0))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
end
local function nobreak_stretch_nobreak_autoshrink(head,current)
if trace_details then
trace_detail(current,"nobreak stretch nobreak autoshrink")
end
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,inter_char_stretch,0))
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,inter_char_stretch,0))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
end
local function nobreak_shrink_nobreak_stretch(head,current)
if trace_details then
trace_detail(current,"nobreak shrink nobreak stretch")
end
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,inter_char_stretch,0))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,inter_char_stretch,0))
end
local function nobreak_autoshrink_nobreak_stretch(head,current)
if trace_details then
trace_detail(current,"nobreak autoshrink nobreak stretch")
end
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,inter_char_stretch,0))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,inter_char_stretch,0))
end
local function nobreak_shrink_break_stretch(head,current)
if trace_details then
trace_detail(current,"nobreak shrink break stretch")
end
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
- insert_node_before(head,current,new_glue(0,inter_char_stretch,0))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_glue(0,inter_char_stretch,0))
end
local function nobreak_autoshrink_break_stretch(head,current)
if trace_details then
trace_detail(current,"nobreak autoshrink break stretch")
end
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
- insert_node_before(head,current,new_glue(0,inter_char_stretch,0))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_glue(0,inter_char_stretch,0))
end
local function nobreak_shrink_break_stretch_nobreak_shrink(head,current)
if trace_details then
trace_detail(current,"nobreak shrink break stretch nobreak shrink")
end
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
- insert_node_before(head,current,new_glue(0,inter_char_stretch,0))
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,inter_char_stretch,0))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_glue(0,inter_char_stretch,0))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,inter_char_stretch,0))
end
local function japanese_between_full_close_open(head,current) -- todo: check width
if trace_details then
trace_detail(current,"japanese between full close open")
end
- insert_node_before(head,current,new_kern(-half_char_width))
- insert_node_before(head,current,new_glue(half_char_width,0,inter_char_half_shrink))
- insert_node_before(head,current,new_kern(-half_char_width))
+ insertnodebefore(head,current,new_kern(-half_char_width))
+ insertnodebefore(head,current,new_glue(half_char_width,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_kern(-half_char_width))
end
local function japanese_between_full_close_full_close(head,current) -- todo: check width
if trace_details then
trace_detail(current,"japanese between full close full close")
end
- insert_node_before(head,current,new_kern(-half_char_width))
- -- insert_node_before(head,current,new_glue(half_char_width,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_kern(-half_char_width))
+ -- insertnodebefore(head,current,new_glue(half_char_width,0,inter_char_half_shrink))
end
local function japanese_before_full_width_punct(head,current) -- todo: check width
if trace_details then
trace_detail(current,"japanese before full width punct")
end
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(quarter_char_width,0,inter_char_quarter_shrink))
- insert_node_before(head,current,new_kern(-quarter_char_width))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(quarter_char_width,0,inter_char_quarter_shrink))
+ insertnodebefore(head,current,new_kern(-quarter_char_width))
end
local function japanese_after_full_width_punct(head,current) -- todo: check width
if trace_details then
trace_detail(current,"japanese after full width punct")
end
- insert_node_before(head,current,new_kern(-quarter_char_width))
- insert_node_before(head,current,new_glue(quarter_char_width,0,inter_char_quarter_shrink))
+ insertnodebefore(head,current,new_kern(-quarter_char_width))
+ insertnodebefore(head,current,new_glue(quarter_char_width,0,inter_char_quarter_shrink))
end
local function nobreak_autoshrink_break_stretch_nobreak_autoshrink(head,current)
if trace_details then
trace_detail(current,"nobreak autoshrink break stretch nobreak autoshrink")
end
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
- insert_node_before(head,current,new_glue(0,inter_char_stretch,0))
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_glue(0,inter_char_stretch,0))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
end
local function nobreak_autoshrink_break_stretch_nobreak_shrink(head,current)
if trace_details then
trace_detail(current,"nobreak autoshrink break stretch nobreak shrink")
end
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
- insert_node_before(head,current,new_glue(0,inter_char_stretch,0))
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_glue(0,inter_char_stretch,0))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
end
local function nobreak_shrink_break_stretch_nobreak_autoshrink(head,current)
if trace_details then
trace_detail(current,"nobreak shrink break stretch nobreak autoshrink")
end
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
- insert_node_before(head,current,new_glue(0,inter_char_stretch,0))
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,inter_char_stretch,0))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_glue(0,inter_char_stretch,0))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,inter_char_stretch,0))
end
local function nobreak_stretch_break_shrink(head,current)
if trace_details then
trace_detail(current,"nobreak stretch break shrink")
end
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,inter_char_stretch,0))
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,inter_char_stretch,0))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
end
local function nobreak_stretch_break_autoshrink(head,current)
if trace_details then
trace_detail(current,"nobreak stretch break autoshrink")
end
- insert_node_before(head,current,new_penalty(10000))
- insert_node_before(head,current,new_glue(0,inter_char_stretch,0))
- insert_node_before(head,current,new_glue(0,0,inter_char_half_shrink))
+ insertnodebefore(head,current,new_penalty(10000))
+ insertnodebefore(head,current,new_glue(0,inter_char_stretch,0))
+ insertnodebefore(head,current,new_glue(0,0,inter_char_half_shrink))
end
-- Korean: hangul
@@ -514,7 +515,7 @@ end
scripts.installmethod {
name = "hangul",
injector = process,
- datasets = { -- todo: metatables
+ datasets = { -- todo: metatables and maybe some stretch and shrink factor
default = {
inter_char_shrink_factor = 0.50, -- of quad
inter_char_stretch_factor = 0.50, -- of quad
@@ -524,6 +525,15 @@ scripts.installmethod {
inter_char_quarter_stretch_factor = 0.50, -- of quad
inter_char_hangul_penalty = 50,
},
+ tight = {
+ inter_char_shrink_factor = 0.10, -- of quad
+ inter_char_stretch_factor = 0.10, -- of quad
+ inter_char_half_shrink_factor = 0.10, -- of quad
+ inter_char_half_stretch_factor = 0.10, -- of quad
+ inter_char_quarter_shrink_factor = 0.10, -- of quad
+ inter_char_quarter_stretch_factor = 0.10, -- of quad
+ inter_char_hangul_penalty = 50,
+ },
},
}
@@ -535,11 +545,11 @@ function scripts.decomposehangul(head)
setchar(current,lead_consonant)
local m = copy_node(current)
setchar(m,medial_vowel)
- head, current = insert_node_after(head,current,m)
+ head, current = insertnodeafter(head,current,m)
if tail_consonant then
local t = copy_node(current)
setchar(t,tail_consonant)
- head, current = insert_node_after(head,current,t)
+ head, current = insertnodeafter(head,current,t)
end
done = true
end
@@ -685,6 +695,7 @@ local chinese_8 = {
hiragana = stretch_break, -- nobreak_autoshrink_break_stretch,
katakana = stretch_break, -- nobreak_autoshrink_break_stretch,
half_width_open = nobreak_autoshrink_break_stretch_nobreak_autoshrink,
+half_width_open = stretch_break,
half_width_close = nobreak_autoshrink_nobreak_stretch,
full_width_open = nobreak_autoshrink_break_stretch_nobreak_shrink,
full_width_close = nobreak_autoshrink_nobreak_stretch,
@@ -961,7 +972,7 @@ local function process(head,first,last)
end
previous = current
-- elseif id == math_code then
- -- upcoming = getnext(end_of_math(current))
+ -- upcoming = getnext(endofmath(current))
-- previous = "start"
else -- glue
local p = getprev(first)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrp-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/scrp-ini.lua
index ab6fca4dbef..60282ae1106 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrp-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrp-ini.lua
@@ -23,68 +23,65 @@ local report_preprocessing = logs.reporter("scripts","preprocessing")
local report_splitting = logs.reporter("scripts","splitting")
-local attributes = attributes
-local nodes = nodes
-local context = context
+local attributes = attributes
+local nodes = nodes
+local context = context
-local nodecodes = nodes.nodecodes
+local nodecodes = nodes.nodecodes
-local implement = interfaces.implement
+local implement = interfaces.implement
-local glyph_code = nodecodes.glyph
-local glue_code = nodecodes.glue
+local glyph_code = nodecodes.glyph
+local glue_code = nodecodes.glue
-local emwidths = fonts.hashes.emwidths
-local exheights = fonts.hashes.exheights
+local emwidths = fonts.hashes.emwidths
+local exheights = fonts.hashes.exheights
-local a_script = attributes.private('script')
+local a_script = attributes.private('script')
-local fontdata = fonts.hashes.identifiers
-local allocate = utilities.storage.allocate
-local setnodecolor = nodes.tracers.colors.set
+local fontdata = fonts.hashes.identifiers
+local allocate = utilities.storage.allocate
+local setnodecolor = nodes.tracers.colors.set
-local enableaction = nodes.tasks.enableaction
-local disableaction = nodes.tasks.disableaction
+local enableaction = nodes.tasks.enableaction
+local disableaction = nodes.tasks.disableaction
-local nuts = nodes.nuts
+local nuts = nodes.nuts
-local getnext = nuts.getnext
-local getchar = nuts.getchar
-local getfont = nuts.getfont
-local getid = nuts.getid
-local getglyphdata = nuts.getglyphdata
-local setglyphdata = nuts.setglyphdata
+local getnext = nuts.getnext
+local getchar = nuts.getchar
+local getfont = nuts.getfont
+local getid = nuts.getid
+local getglyphdata = nuts.getglyphdata
+local setglyphdata = nuts.setglyphdata
-local isglyph = nuts.isglyph
+local isglyph = nuts.isglyph
-local insert_node_after = nuts.insert_after
-local insert_node_before = nuts.insert_before
+local firstglyph = nuts.firstglyph
-local first_glyph = nuts.first_glyph
+local nextglyph = nuts.traversers.glyph
+local nextchar = nuts.traversers.char
-local nextglyph = nuts.traversers.glyph
-local nextchar = nuts.traversers.char
+local nodepool = nuts.pool
-local nodepool = nuts.pool
+local new_glue = nodepool.glue
+local new_rule = nodepool.rule
+local new_penalty = nodepool.penalty
-local new_glue = nodepool.glue
-local new_rule = nodepool.rule
-local new_penalty = nodepool.penalty
+scripts = scripts or { }
+local scripts = scripts
-scripts = scripts or { }
-local scripts = scripts
+local handlers = allocate()
+scripts.handlers = handlers
-scripts.hash = scripts.hash or { }
-local hash = scripts.hash
+local injectors = allocate()
+scripts.injectors = handlers
-local handlers = allocate()
-scripts.handlers = handlers
+local splitters = allocate()
+scripts.splitters = splitters
-local injectors = allocate()
-scripts.injectors = handlers
-
-local splitters = allocate()
-scripts.splitters = splitters
+local helpers = allocate()
+scripts.helpers = helpers
-- we need to fake it in luatex
@@ -116,165 +113,34 @@ if not getscript then
end
-local hash = { -- we could put these presets in char-def.lua
- --
- -- half width opening parenthesis
- --
- [0x0028] = "half_width_open",
- [0x005B] = "half_width_open",
- [0x007B] = "half_width_open",
- [0x2018] = "half_width_open", -- ‘
- [0x201C] = "half_width_open", -- “
- --
- -- full width opening parenthesis
- --
- [0x3008] = "full_width_open", -- 〈 Left book quote
- [0x300A] = "full_width_open", -- 《 Left double book quote
- [0x300C] = "full_width_open", -- 「 left quote
- [0x300E] = "full_width_open", -- 『 left double quote
- [0x3010] = "full_width_open", -- 【 left double book quote
- [0x3014] = "full_width_open", -- 〔 left book quote
- [0x3016] = "full_width_open", --〖 left double book quote
- [0x3018] = "full_width_open", -- left tortoise bracket
- [0x301A] = "full_width_open", -- left square bracket
- [0x301D] = "full_width_open", -- reverse double prime qm
- [0xFF08] = "full_width_open", -- ( left parenthesis
- [0xFF3B] = "full_width_open", -- [ left square brackets
- [0xFF5B] = "full_width_open", -- { left curve bracket
- --
- -- half width closing parenthesis
- --
- [0x0029] = "half_width_close",
- [0x005D] = "half_width_close",
- [0x007D] = "half_width_close",
- [0x2019] = "half_width_close", -- ’ right quote, right
- [0x201D] = "half_width_close", -- ” right double quote
- --
- -- full width closing parenthesis
- --
- [0x3009] = "full_width_close", -- 〉 book quote
- [0x300B] = "full_width_close", -- 》 double book quote
- [0x300D] = "full_width_close", -- 」 right quote, right
- [0x300F] = "full_width_close", -- 』 right double quote
- [0x3011] = "full_width_close", -- 】 right double book quote
- [0x3015] = "full_width_close", -- 〕 right book quote
- [0x3017] = "full_width_close", -- 〗 right double book quote
- [0x3019] = "full_width_close", -- right tortoise bracket
- [0x301B] = "full_width_close", -- right square bracket
- [0x301E] = "full_width_close", -- double prime qm
- [0x301F] = "full_width_close", -- low double prime qm
- [0xFF09] = "full_width_close", -- ) right parenthesis
- [0xFF3D] = "full_width_close", -- ] right square brackets
- [0xFF5D] = "full_width_close", -- } right curve brackets
- --
- [0xFF62] = "half_width_open", -- left corner bracket
- [0xFF63] = "half_width_close", -- right corner bracket
- --
- -- vertical opening vertical
- --
- -- 0xFE35, 0xFE37, 0xFE39, 0xFE3B, 0xFE3D, 0xFE3F, 0xFE41, 0xFE43, 0xFE47,
- --
- -- vertical closing
- --
- -- 0xFE36, 0xFE38, 0xFE3A, 0xFE3C, 0xFE3E, 0xFE40, 0xFE42, 0xFE44, 0xFE48,
- --
- -- half width opening punctuation
- --
- -- <empty>
- --
- -- full width opening punctuation
- --
- -- 0x2236, -- ∶
- -- 0xFF0C, -- ,
- --
- -- half width closing punctuation_hw
- --
- [0x0021] = "half_width_close", -- !
- [0x002C] = "half_width_close", -- ,
- [0x002E] = "half_width_close", -- .
- [0x003A] = "half_width_close", -- :
- [0x003B] = "half_width_close", -- ;
- [0x003F] = "half_width_close", -- ?
- [0xFF61] = "half_width_close", -- hw full stop
- --
- -- full width closing punctuation
- --
- [0x3001] = "full_width_close", -- 、
- [0x3002] = "full_width_close", -- 。
- [0xFF0C] = "full_width_close", -- ,
- [0xFF0E] = "full_width_close", --
- --
- -- depends on font
- --
- [0xFF01] = "full_width_close", -- !
- [0xFF1F] = "full_width_close", -- ?
- --
- [0xFF1A] = "full_width_punct", -- :
- [0xFF1B] = "full_width_punct", -- ;
- --
- -- non starter
- --
- [0x3005] = "non_starter", [0x3041] = "non_starter", [0x3043] = "non_starter", [0x3045] = "non_starter", [0x3047] = "non_starter",
- [0x3049] = "non_starter", [0x3063] = "non_starter", [0x3083] = "non_starter", [0x3085] = "non_starter", [0x3087] = "non_starter",
- [0x308E] = "non_starter", [0x3095] = "non_starter", [0x3096] = "non_starter", [0x309B] = "non_starter", [0x309C] = "non_starter",
- [0x309D] = "non_starter", [0x309E] = "non_starter", [0x30A0] = "non_starter", [0x30A1] = "non_starter", [0x30A3] = "non_starter",
- [0x30A5] = "non_starter", [0x30A7] = "non_starter", [0x30A9] = "non_starter", [0x30C3] = "non_starter", [0x30E3] = "non_starter",
- [0x30E5] = "non_starter", [0x30E7] = "non_starter", [0x30EE] = "non_starter", [0x30F5] = "non_starter", [0x30F6] = "non_starter",
- [0x30FC] = "non_starter", [0x30FD] = "non_starter", [0x30FE] = "non_starter", [0x31F0] = "non_starter", [0x31F1] = "non_starter",
- [0x31F2] = "non_starter", [0x31F3] = "non_starter", [0x31F4] = "non_starter", [0x31F5] = "non_starter", [0x31F6] = "non_starter",
- [0x31F7] = "non_starter", [0x31F8] = "non_starter", [0x31F9] = "non_starter", [0x31FA] = "non_starter", [0x31FB] = "non_starter",
- [0x31FC] = "non_starter", [0x31FD] = "non_starter", [0x31FE] = "non_starter", [0x31FF] = "non_starter",
- --
- [0x301C] = "non_starter", [0x303B] = "non_starter", [0x303C] = "non_starter", [0x309B] = "non_starter", [0x30FB] = "non_starter",
- [0x30FE] = "non_starter",
- -- hyphenation
- --
- [0x2026] = "hyphen", -- … ellipsis
- [0x2014] = "hyphen", -- — hyphen
- --
- [0x1361] = "ethiopic_word",
- [0x1362] = "ethiopic_sentence",
- --
- -- tibetan:
- --
- [0x0F0B] = "breaking_tsheg",
- [0x0F0C] = "nonbreaking_tsheg",
+local insertnodebefore, insertnodeafter do
-}
+ local insertafter = nuts.insertafter
+ local insertbefore = nuts.insertbefore
+ local setattributelist = nuts.setattributelist
-local function provide(t,k)
- local v
- if not tonumber(k) then v = false
- elseif (k >= 0x03040 and k <= 0x030FF)
- or (k >= 0x031F0 and k <= 0x031FF)
- or (k >= 0x032D0 and k <= 0x032FE)
- or (k >= 0x0FF00 and k <= 0x0FFEF) then v = "katakana"
- elseif (k >= 0x03400 and k <= 0x04DFF)
- or (k >= 0x04E00 and k <= 0x09FFF)
- or (k >= 0x0F900 and k <= 0x0FAFF)
- or (k >= 0x20000 and k <= 0x2A6DF)
- or (k >= 0x2F800 and k <= 0x2FA1F) then v = "chinese"
- elseif (k >= 0x0AC00 and k <= 0x0D7A3) then v = "korean"
- elseif (k >= 0x01100 and k <= 0x0115F) then v = "jamo_initial"
- elseif (k >= 0x01160 and k <= 0x011A7) then v = "jamo_medial"
- elseif (k >= 0x011A8 and k <= 0x011FF) then v = "jamo_final"
- elseif (k >= 0x01200 and k <= 0x0139F) then v = "ethiopic_syllable"
- elseif (k >= 0x00F00 and k <= 0x00FFF) then v = "tibetan"
- else v = false
+ insertnodebefore = function (head,current,what)
+ head, current = insertbefore(head,current,what)
+ setattributelist(what,current)
+ return head, current
end
- t[k] = v
- return v
-end
-setmetatableindex(hash,provide) -- should come from char-def
+ insertnodeafter = function(head,current,what)
+ head, current = insertafter(head,current,what)
+ setattributelist(what,current)
+ return head, current
+ end
+
+ helpers.insertnodebefore = insertnodebefore
+ helpers.insertnodeafter = insertnodeafter
+
+end
-scripts.hash = hash
+local hash = characters.scripthash
local numbertodataset = allocate()
local numbertohandler = allocate()
---~ storage.register("scripts/hash", hash, "scripts.hash")
-
scripts.numbertodataset = numbertodataset
scripts.numbertohandler = numbertohandler
@@ -511,7 +377,7 @@ local function traced_process(head,first,last,process,a)
end
function scripts.injectors.handler(head)
- local start = first_glyph(head) -- we already have glyphs here (subtype 1)
+ local start = firstglyph(head) -- we already have glyphs here (subtype 1)
if not start then
return head
else
@@ -791,7 +657,7 @@ end
local tree, attr, proc
-function splitters.handler(head) -- todo: also first_glyph test
+function splitters.handler(head) -- todo: also firstglyph test
local current = head
while current do
if getid(current) == glyph_code then
@@ -848,9 +714,9 @@ end
local function marker(head,current,font,color) -- could become: nodes.tracers.marker
local ex = exheights[font]
local em = emwidths [font]
- head, current = insert_node_after(head,current,new_penalty(10000))
- head, current = insert_node_after(head,current,new_glue(-0.05*em))
- head, current = insert_node_after(head,current,new_rule(0.05*em,1.5*ex,0.5*ex))
+ head, current = insertnodeafter(head,current,new_penalty(10000))
+ head, current = insertnodeafter(head,current,new_glue(-0.05*em))
+ head, current = insertnodeafter(head,current,new_rule(0.05*em,1.5*ex,0.5*ex))
setnodecolor(current,color)
return head, current
end
@@ -871,7 +737,7 @@ function splitters.insertafter(handler,head,first,last,detail)
if ignore then
return head, last
else
- return insert_node_after(head,last,new_glue(0,last_s))
+ return insertnodeafter(head,last,new_glue(0,last_s))
end
end
@@ -1046,30 +912,30 @@ do
scripts.inserters = {
space_before = function(head,current)
- return insert_node_before(head,current,space_glue(current))
+ return insertnodebefore(head,current,space_glue(current))
end,
space_after = function(head,current)
- return insert_node_after(head,current,space_glue(current))
+ return insertnodeafter(head,current,space_glue(current))
end,
zerowidthspace_before = function(head,current)
- return insert_node_before(head,current,new_glue(0))
+ return insertnodebefore(head,current,new_glue(0))
end,
zerowidthspace_after = function(head,current)
- return insert_node_after(head,current,new_glue(0))
+ return insertnodeafter(head,current,new_glue(0))
end,
nobreakspace_before = function(head,current)
local g = space_glue(current)
local p = new_penalty(10000)
- head, current = insert_node_before(head,current,p)
- return insert_node_before(head,current,g)
+ head, current = insertnodebefore(head,current,p)
+ return insertnodebefore(head,current,g)
end,
nobreakspace_after = function(head,current)
local g = space_glue(current)
local p = new_penalty(10000)
- head, current = insert_node_after(head,current,g)
- return insert_node_after(head,current,p)
+ head, current = insertnodeafter(head,current,g)
+ return insertnodeafter(head,current,p)
end,
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/scrp-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/scrp-ini.mkiv
index 4eb3f29e373..f677eceef6c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/scrp-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/scrp-ini.mkiv
@@ -61,6 +61,8 @@
% \setuevalue\currentscript{\setscript[\currentscript]}%
% \to \everydefinescript
+% \ctxlua{inspect(scripts.handlers.hangul.datasets)}
+
\unexpanded\def\scripts_basics_set
{\clf_setscript{\currentscript}{\scriptparameter\c!method}{\scriptparameter\c!preset}}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-ali.lua b/Master/texmf-dist/tex/context/base/mkiv/spac-ali.lua
index 2e2650f3b7a..448b0162b93 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-ali.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-ali.lua
@@ -68,7 +68,7 @@ local nofrealigned = 0
-- raggedright 0 0 fil
-- raggedcenter 0 + 0 + -
-local function handler(head,leftpage,realpageno) -- traverse_list
+local function handler(head,leftpage,realpageno) -- traverselist
local current = head
while current do
local id = getid(current)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-ali.mkiv b/Master/texmf-dist/tex/context/base/mkiv/spac-ali.mkiv
index 2467f83525b..a54c44b72f8 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-ali.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-ali.mkiv
@@ -184,6 +184,9 @@
\unexpanded\def\leftorrightvbox{\ifconditional\displaylefttoright\expandafter\lefttorightvbox\else\expandafter\righttoleftvbox\fi}
\unexpanded\def\leftorrightvtop{\ifconditional\displaylefttoright\expandafter\lefttorightvtop\else\expandafter\righttoleftvtop\fi}
+\unexpanded\def\rtltext{\groupedcommand{\dontleavehmode\righttoleft\ignorespaces}\removeunwantedspaces}
+\unexpanded\def\ltrtext{\groupedcommand{\dontleavehmode\lefttoright\ignorespaces}\removeunwantedspaces}
+
% Tolerance and hyphenation
\ifdefined\lesshyphens \else \let\lesshyphens\relax \fi
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-chr.lua b/Master/texmf-dist/tex/context/base/mkiv/spac-chr.lua
index fa6eb18a576..5bc8ae8f617 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-chr.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-chr.lua
@@ -28,7 +28,10 @@ local nodes, node = nodes, node
local nuts = nodes.nuts
+local getid = nuts.getid
local getboth = nuts.getboth
+local getsubtype = nuts.getsubtype
+local setsubtype = nuts.setsubtype
local getnext = nuts.getnext
local getprev = nuts.getprev
local getattr = nuts.getattr
@@ -37,16 +40,13 @@ local getlanguage = nuts.getlanguage
local setchar = nuts.setchar
local setattrlist = nuts.setattrlist
local getfont = nuts.getfont
-local setsubtype = nuts.setsubtype
local isglyph = nuts.isglyph
local setcolor = nodes.tracers.colors.set
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local remove_node = nuts.remove
------ traverse_id = nuts.traverse_id
------ traverse_char = nuts.traverse_char
local nextchar = nuts.traversers.char
local nextglyph = nuts.traversers.glyph
@@ -62,10 +62,12 @@ local nodecodes = nodes.nodecodes
local gluecodes = nodes.gluecodes
local glyph_code = nodecodes.glyph
+local glue_code = nodecodes.glue
local spaceskip_code = gluecodes.spaceskip
local chardata = characters.data
-local is_punctuation = characters.is_punctuation
+local ispunctuation = characters.is_punctuation
+local canhavespace = characters.can_have_space
local typesetters = typesetters
@@ -95,7 +97,7 @@ local function inject_quad_space(unicode,head,current,fraction)
setattrlist(glue,current)
setattrlist(current) -- why reset all
setattr(glue,a_character,unicode)
- return insert_node_after(head,current,glue)
+ return insertnodeafter(head,current,glue)
end
local function inject_char_space(unicode,head,current,parent)
@@ -105,7 +107,7 @@ local function inject_char_space(unicode,head,current,parent)
setattrlist(glue,current)
setattrlist(current) -- why reset all
setattr(glue,a_character,unicode)
- return insert_node_after(head,current,glue)
+ return insertnodeafter(head,current,glue)
end
local function inject_nobreak_space(unicode,head,current,space,spacestretch,spaceshrink)
@@ -114,23 +116,23 @@ local function inject_nobreak_space(unicode,head,current,space,spacestretch,spac
setattrlist(glue,current)
setattrlist(current) -- why reset all
setattr(glue,a_character,unicode) -- bombs
- head, current = insert_node_after(head,current,penalty)
+ head, current = insertnodeafter(head,current,penalty)
if trace_nbsp then
local rule = new_rule(space)
local kern = new_kern(-space)
local penalty = new_penalty(10000)
setcolor(rule,"orange")
- head, current = insert_node_after(head,current,rule)
- head, current = insert_node_after(head,current,kern)
- head, current = insert_node_after(head,current,penalty)
+ head, current = insertnodeafter(head,current,rule)
+ head, current = insertnodeafter(head,current,kern)
+ head, current = insertnodeafter(head,current,penalty)
end
- return insert_node_after(head,current,glue)
+ return insertnodeafter(head,current,glue)
end
local function nbsp(head,current)
local para = fontparameters[getfont(current)]
local attr = getattr(current,a_alignstate) or 0
- if attr >= 1 or attr <= 3 then -- flushright
+ if attr >= 1 and attr <= 3 then -- flushright
head, current = inject_nobreak_space(0x00A0,head,current,para.space,0,0)
else
head, current = inject_nobreak_space(0x00A0,head,current,para.space,para.spacestretch,para.spaceshrink)
@@ -148,7 +150,7 @@ end
function characters.replacenbspaces(head)
local wipe = false
- for current, char, font in nextglyph, head do -- can be anytime so no traverse_char
+ for current, char, font in nextglyph, head do -- can be anytime so no traversechar
if char == 0x00A0 then
if wipe then
head = remove_node(h,current,true)
@@ -184,18 +186,34 @@ local methods = {
-- maybe also 0x0008 : backspace
+ -- Watch out: a return value means "remove"!
+
+ [0x001E] = function(head,current) -- kind of special
+ local next = getnext(current)
+ if next and getid(next) == glue_code and getsubtype(next) == spaceskip_code then
+ local nextnext = getnext(next)
+ if nextnext then
+ local char, font = isglyph(nextnext)
+ if char and not canhavespace[char] then
+ head, current = remove_node(head,next,true)
+ end
+ end
+ end
+ return head, current
+ end,
+
[0x001F] = function(head,current) -- kind of special
local next = getnext(current)
if next then
local char, font = isglyph(next)
if char then
- head, current = remove_node(head,current,true)
- if not is_punctuation[char] then
+ if not ispunctuation[char] then
local p = fontparameters[font]
- head, current = insert_node_before(head,current,new_glue(p.space,p.space_stretch,p.space_shrink))
+ head, current = insertnodebefore(head,current,new_glue(p.space,p.space_stretch,p.space_shrink))
end
end
end
+ return head, current
end,
[0x00A0] = function(head,current) -- nbsp
@@ -226,7 +244,7 @@ local methods = {
end,
[0x00AD] = function(head,current) -- softhyphen
- return insert_node_after(head,current,languages.explicithyphen(current))
+ return insertnodeafter(head,current,languages.explicithyphen(current))
end,
[0x2000] = function(head,current) -- enquad
@@ -322,3 +340,30 @@ function characters.handler(head)
end
return head
end
+
+-- function characters.handler(head)
+-- local wiped = false
+-- for current, char in nextchar, head do
+-- local method = methods[char]
+-- if method then
+-- if wiped then
+-- wiped[#wiped+1] = current
+-- else
+-- wiped = { current }
+-- end
+-- if trace_characters then
+-- report_characters("replacing character %C, description %a",char,lower(chardata[char].description))
+-- end
+-- local h = method(head,current)
+-- if h then
+-- head = h
+-- end
+-- end
+-- end
+-- if wiped then
+-- for i=1,#wiped do
+-- head = remove_node(head,wiped[i],true)
+-- end
+-- end
+-- return head
+-- end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-chr.mkiv b/Master/texmf-dist/tex/context/base/mkiv/spac-chr.mkiv
index 9113dc6a110..4c7cc9492eb 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-chr.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-chr.mkiv
@@ -95,7 +95,8 @@
\popoverloadmode
-\chardef\optionalspace"1F % will be space unless before punctuation
+\chardef\optionalspace "1F % will be space unless before punctuation
+\chardef\autoinsertedspace"1E % a more clever \autoinsertspace
% Shortcuts:
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-hor.mkiv b/Master/texmf-dist/tex/context/base/mkiv/spac-hor.mkiv
index 16a1a0d4e9a..5d9cef07962 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-hor.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-hor.mkiv
@@ -621,6 +621,7 @@
\unexpanded\def\thinspace {\kern .16667\emwidth}
\unexpanded\def\negthinspace{\kern-.16667\emwidth}
\unexpanded\def\enspace {\kern .5\emwidth}
+ \unexpanded\def\emspace {\kern \emwidth}
\fi
@@ -635,8 +636,6 @@
\unexpanded\def\negenspace{\kern-.5\emwidth}
\unexpanded\def\negemspace{\kern- \emwidth}
-\let\emspace\quad
-
\unexpanded\def\charspace{ } % the unexpandable \space (as space can also be delimiter for numbers)
\unexpanded\def\quads
diff --git a/Master/texmf-dist/tex/context/base/mkiv/spac-ver.lua b/Master/texmf-dist/tex/context/base/mkiv/spac-ver.lua
index 2fc9263213c..8baf2518413 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/spac-ver.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/spac-ver.lua
@@ -148,14 +148,15 @@ local setdepth = nuts.setdepth
local getdepth = nuts.getdepth
local find_node_tail = nuts.tail
-local flush_node = nuts.flush_node
-local insert_node_after = nuts.insert_after
-local insert_node_before = nuts.insert_before
+local flushnode = nuts.flushnode
+local insertnodeafter = nuts.insertafter
+local insertnodebefore = nuts.insertbefore
local remove_node = nuts.remove
local count_nodes = nuts.countall
local hpack_node = nuts.hpack
local vpack_node = nuts.vpack
-local start_of_par = nuts.start_of_par
+
+local startofpar = nuts.startofpar
local nextnode = nuts.traversers.node
local nexthlist = nuts.traversers.hlist
@@ -171,7 +172,7 @@ local nodepool = nuts.pool
local new_penalty = nodepool.penalty
local new_kern = nodepool.kern
-local new_glue = nodepool.glue
+----- new_glue = nodepool.glue
local new_rule = nodepool.rule
local nodecodes = nodes.nodecodes
@@ -293,7 +294,7 @@ end
local function validvbox(parentid,list)
if parentid == hlist_code then
local id = getid(list)
- if id == par_code and start_of_par(list) then
+ if id == par_code and startofpar(list) then
list = getnext(list)
if not next then
return nil
@@ -329,7 +330,7 @@ local function already_done(parentid,list,a_snapmethod) -- todo: done when only
-- problem: any snapped vbox ends up in a line
if list and parentid == hlist_code then
local id = getid(list)
- if id == par_code and start_of_par(list) then
+ if id == par_code and startofpar(list) then
list = getnext(list)
if not list then
return false
@@ -709,19 +710,19 @@ local function snap_topskip(current,method)
return w, 0
end
-local categories = {
- [0] = "discard",
- [1] = "largest",
- [2] = "force",
- [3] = "penalty",
- [4] = "add",
- [5] = "disable",
- [6] = "nowhite",
- [7] = "goback",
- [8] = "packed",
- [9] = "overlay",
- [10] = "enable",
- [11] = "notopskip",
+local categories = { [0] =
+ "discard",
+ "largest",
+ "force",
+ "penalty",
+ "add",
+ "disable",
+ "nowhite",
+ "goback",
+ "packed",
+ "overlay",
+ "enable",
+ "notopskip",
}
categories = allocate(table.swapped(categories,categories))
@@ -1021,14 +1022,14 @@ do
if width == 0 then
-- do nothing
elseif where == "after" then
- head, current = insert_node_after(head,current,new_rule(w,h,d))
- head, current = insert_node_after(head,current,new_kern(width))
- head, current = insert_node_after(head,current,new_rule(w,h,d))
+ head, current = insertnodeafter(head,current,new_rule(w,h,d))
+ head, current = insertnodeafter(head,current,new_kern(width))
+ head, current = insertnodeafter(head,current,new_rule(w,h,d))
else
local c = current
- head, current = insert_node_before(head,current,new_rule(w,h,d))
- head, current = insert_node_before(head,current,new_kern(width))
- head, current = insert_node_before(head,current,new_rule(w,h,d))
+ head, current = insertnodebefore(head,current,new_rule(w,h,d))
+ head, current = insertnodebefore(head,current,new_kern(width))
+ head, current = insertnodebefore(head,current,new_rule(w,h,d))
current = c
end
if trace then
@@ -1203,10 +1204,10 @@ do
texsetdimen("global","d_spac_overlay",-delta) -- for tracing
-- we should adapt pagetotal ! (need a hook for that) .. now we have the wrong pagebreak
local k = new_kern(-delta)
- head = insert_node_before(head,n,k)
+ head = insertnodebefore(head,n,k)
if n_ht > p_ht then
local k = new_kern(n_ht-p_ht)
- head = insert_node_before(head,p,k)
+ head = insertnodebefore(head,p,k)
end
if trace_vspacing then
report_vspacing("overlaying, prev height: %p, prev depth: %p, next height: %p, skips: %p, move up: %p",p_ht,p_dp,n_ht,skips,delta)
@@ -1375,13 +1376,13 @@ do
if penalty_data >= 10000 then -- or whatever threshold?
local prev = getprev(current)
if getid(prev) == glue_code then -- maybe go back more, or maybe even push back before any glue
- -- tricky case: spacing/grid-007.tex: glue penalty glue
- head = insert_node_before(head,prev,p)
+ -- tricky case: spacing/grid-007.tex: glue penalty glue
+ head = insertnodebefore(head,prev,p)
else
- head = insert_node_before(head,current,p)
+ head = insertnodebefore(head,current,p)
end
else
- head = insert_node_before(head,current,p)
+ head = insertnodebefore(head,current,p)
end
-- if penalty_data > special_penalty_min and penalty_data < special_penalty_max then
local props = properties[p]
@@ -1400,22 +1401,22 @@ do
trace_done("flushed due to forced " .. why,glue_data)
end
head = forced_skip(head,current,getwidth(glue_data,width),"before",trace)
- flush_node(glue_data)
+ flushnode(glue_data)
else
local width, stretch, shrink = getglue(glue_data)
if width ~= 0 then
if trace then
trace_done("flushed due to non zero " .. why,glue_data)
end
- head = insert_node_before(head,current,glue_data)
+ head = insertnodebefore(head,current,glue_data)
elseif stretch ~= 0 or shrink ~= 0 then
if trace then
trace_done("flushed due to stretch/shrink in" .. why,glue_data)
end
- head = insert_node_before(head,current,glue_data)
+ head = insertnodebefore(head,current,glue_data)
else
-- report_vspacing("needs checking (%s): %p",gluecodes[getsubtype(glue_data)],w)
- flush_node(glue_data)
+ flushnode(glue_data)
end
end
end
@@ -1545,7 +1546,7 @@ do
if trace then
trace_done("flush",glue_data)
end
- head = insert_node_before(head,current,glue_data)
+ head = insertnodebefore(head,current,glue_data)
if trace then
trace_natural("natural",current)
end
@@ -1634,7 +1635,7 @@ do
trace_skip("force",sc,so,sp,current)
end
glue_order = so
- flush_node(glue_data)
+ flushnode(glue_data)
head, current, glue_data = remove_node(head,current)
elseif glue_order == so then
-- is now exclusive, maybe support goback as combi, else why a set
@@ -1645,7 +1646,7 @@ do
if trace then
trace_skip("largest",sc,so,sp,current)
end
- flush_node(glue_data)
+ flushnode(glue_data)
head, current, glue_data = remove_node(head,current)
else
if trace then
@@ -1657,7 +1658,7 @@ do
if trace then
trace_skip("goback",sc,so,sp,current)
end
- flush_node(glue_data)
+ flushnode(glue_data)
head, current, glue_data = remove_node(head,current)
elseif sc == force then
-- last one counts, some day we can provide an accumulator and largest etc
@@ -1665,13 +1666,13 @@ do
if trace then
trace_skip("force",sc,so,sp,current)
end
- flush_node(glue_data)
+ flushnode(glue_data)
head, current, glue_data = remove_node(head,current)
elseif sc == penalty then
if trace then
trace_skip("penalty",sc,so,sp,current)
end
- flush_node(glue_data)
+ flushnode(glue_data)
glue_data = nil
head, current = remove_node(head,current,true)
elseif sc == add then
@@ -1881,7 +1882,7 @@ do
end
if force_glue then
head, tail = forced_skip(head,tail,getwidth(glue_data),"after",trace)
- flush_node(glue_data)
+ flushnode(glue_data)
glue_data = nil
elseif tail then
setlink(tail,glue_data)
@@ -2004,10 +2005,7 @@ do
function vspacing.vboxhandler(head,where)
if head and not ignore[where] and getnext(head) then
- if getnext(head) then -- what if a one liner and snapping?
- head = collapser(head,"vbox",where,trace_vbox_vspacing,true,a_snapvbox) -- todo: local snapper
- return head
- end
+ head = collapser(head,"vbox",where,trace_vbox_vspacing,true,a_snapvbox) -- todo: local snapper
end
return head
end
@@ -2128,19 +2126,20 @@ do
end
end
- local trace = false
- local last = nil
- local vmode_code = tex.modelevels.vertical
- local temp_code = nodecodes.temp
- local getnest = tex.getnest
- local getlist = tex.getlist
+ local trace = false
+ local last = nil
+ local vmode_code = tex.modelevels.vertical
+ local temp_code = nodecodes.temp
+ local texgetnest = tex.getnest
+ local texgetlist = tex.getlist
+ local getnodetail = nodes.tail
trackers.register("vspacing.forcestrutdepth",function(v) trace = v end)
-- abs : negative is inner
function vspacing.checkstrutdepth(depth)
- local nest = getnest()
+ local nest = texgetnest()
if abs(nest.mode) == vmode_code and nest.head then
local tail = nest.tail
local id = tail.id
@@ -2149,10 +2148,10 @@ do
tail.depth = depth
end
nest.prevdepth = depth
- elseif id == temp_code and getnest("ptr") == 0 then
- local head = getlist("page_head")
+ elseif id == temp_code and texgetnest("ptr") == 0 then
+ local head = texgetlist("page_head")
if head then
- tail = nodes.tail(head)
+ tail = getnodetail(head)
if tail and tail.id == hlist_code then
if tail.depth < depth then
tail.depth = depth
diff --git a/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf b/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf
index e890fa88c93..5e4560e8410 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf
+++ b/Master/texmf-dist/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf b/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf
index ffeb01fef65..c403fd6c524 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf
+++ b/Master/texmf-dist/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-blk.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-blk.lua
index 6717c37773a..f627ad3eaf7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-blk.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-blk.lua
@@ -95,8 +95,11 @@ function blocks.setstate(state,name,tag)
end
end
-function blocks.select(state,name,tag,criterium)
- criterium = criterium or "text"
+
+local function selectblocks(state,name,tag,criterium,action)
+ if not criterium or criterium == "" then
+ criterium = "text"
+ end
if find(tag,"=",1,true) then
tag = ""
end
@@ -115,14 +118,19 @@ function blocks.select(state,name,tag,criterium)
local metadata = ri.metadata
if names[metadata.name] then
if all then
- printblock(ri.index,name,ri.data,hide)
+ if action(ri.index,name,ri.data,hide) then
+ return
+ end
else
local mtags = metadata.tags
if mtags then
for tag, sta in next, tags do
if mtags[tag] then
- printblock(ri.index,name,ri.data,hide)
- break
+ if action(ri.index,name,ri.data,hide) then
+ return
+ else
+ break
+ end
end
end
end
@@ -131,6 +139,20 @@ function blocks.select(state,name,tag,criterium)
end
end
+function blocks.select(state,name,tag,criterium)
+ selectblocks(state,name,tag,criterium,printblock)
+end
+
+function blocks.empty(state,name,tag,criterium)
+ local found = false
+ local function checkempty(_,_,data)
+ found = type(data) == "string" and find(data,"%S")
+ return found
+ end
+ selectblocks(state,name,tag,criterium,checkempty)
+ return not found
+end
+
function blocks.save(name,tag,userdata,buffer) -- wrong, not yet adapted
local data = buffers.getcontent(buffer)
local tags = settings_to_set(tag)
@@ -183,6 +205,7 @@ function blocks.save(name,tag,userdata,buffer) -- wrong, not yet adapted
buffers.erase(buffer)
end
+
-- interface
implement { name = "definestructureblock", actions = blocks.define, arguments = "string" }
@@ -190,3 +213,11 @@ implement { name = "savestructureblock", actions = blocks.save,
implement { name = "selectstructureblock", actions = blocks.select, arguments = "4 strings" }
implement { name = "setstructureblockstate", actions = blocks.setstate, arguments = "3 strings" }
implement { name = "structureblockuservariable", actions = blocks.uservariable, arguments = { "integer", "string" } }
+
+implement {
+ name = "doifelsestructureblocksempty",
+ arguments = "3 strings",
+ actions = function(name,tag,criterium)
+ commands.doifelse(blocks.empty(false,name,tag,criterium))
+ end,
+}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-blk.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-blk.mkiv
index e521987212d..3541d28524c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-blk.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-blk.mkiv
@@ -177,4 +177,6 @@
\unexpanded\def\processblocks{\doquadrupleempty\strc_blocks_select [process]}
\unexpanded\def\selectblocks {\doquadrupleempty\strc_blocks_select [use]}
+\unexpanded\def\doifelseblocksempty{\clf_doifelsestructureblocksempty} % {name}{tag}{criterium}
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-doc.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-doc.lua
index 5cb207c38bf..0592ad7d515 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-doc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-doc.lua
@@ -40,6 +40,8 @@ local v_all = variables.all
local v_positive = variables.positive
local v_current = variables.current
+local texgetcount = tex.getcount
+
local trace_sectioning = false trackers.register("structures.sectioning", function(v) trace_sectioning = v end)
local trace_details = false trackers.register("structures.details", function(v) trace_details = v end)
@@ -48,6 +50,7 @@ local report_used = logs.reporter("structure")
local context = context
local commands = commands
+local ctx_doifelse = commands.doifelse
local structures = structures
local helpers = structures.helpers
@@ -165,9 +168,9 @@ end
local lastsaved = 0
function sections.save(sectiondata)
-local sectiondata = helpers.simplify(sectiondata) -- maybe done earlier
- local numberdata = sectiondata.numberdata
- local ntobesaved = #tobesaved
+ local sectiondata = helpers.simplify(sectiondata) -- maybe done earlier
+ local numberdata = sectiondata.numberdata
+ local ntobesaved = #tobesaved
if not numberdata or sectiondata.metadata.nolist then
-- stay
else
@@ -523,26 +526,76 @@ end
-- this one will become: return catcode, d (etc)
+-- function sections.structuredata(depth,key,default,honorcatcodetable) -- todo: spec table and then also depth
+-- if depth then
+-- depth = levelmap[depth] or tonumber(depth)
+-- end
+-- if not depth or depth == 0 then
+-- depth = data.depth
+-- end
+-- local data = data.status[depth]
+-- local d
+-- if data then
+-- if find(key,".",1,true) then
+-- d = accesstable(key,data)
+-- else
+-- d = data.titledata
+-- d = d and d[key]
+-- end
+-- end
+-- if d and type(d) ~= "table" then
+-- if honorcatcodetable == true or honorcatcodetable == v_auto then
+-- local metadata = data.metadata
+-- local catcodes = metadata and metadata.catcodes
+-- if catcodes then
+-- ctx_sprint(catcodes,d)
+-- else
+-- context(d)
+-- end
+-- elseif not honorcatcodetable or honorcatcodetable == "" then
+-- context(d)
+-- else
+-- local catcodes = catcodenumbers[honorcatcodetable]
+-- if catcodes then
+-- ctx_sprint(catcodes,d)
+-- else
+-- context(d)
+-- end
+-- end
+-- elseif default then
+-- context(default)
+-- end
+-- end
+
function sections.structuredata(depth,key,default,honorcatcodetable) -- todo: spec table and then also depth
+ local detail = false
+ if type(depth) == "string" then
+ depth, detail = string.splitup(depth,":")
+ end
if depth then
depth = levelmap[depth] or tonumber(depth)
end
if not depth or depth == 0 then
depth = data.depth
end
- local data = data.status[depth]
+ local useddata
+ if detail == "+" then
+ useddata = structures.lists.collected[#structures.lists.tobesaved+1]
+ else
+ useddata = data.status[depth]
+ end
local d
- if data then
+ if useddata then
if find(key,".",1,true) then
- d = accesstable(key,data)
+ d = accesstable(key,useddata)
else
- d = data.titledata
+ d = useddata.titledata
d = d and d[key]
end
end
if d and type(d) ~= "table" then
if honorcatcodetable == true or honorcatcodetable == v_auto then
- local metadata = data.metadata
+ local metadata = useddata.metadata
local catcodes = metadata and metadata.catcodes
if catcodes then
ctx_sprint(catcodes,d)
@@ -564,20 +617,50 @@ function sections.structuredata(depth,key,default,honorcatcodetable) -- todo: sp
end
end
+-- function sections.userdata(depth,key,default)
+-- if depth then
+-- depth = levelmap[depth] or tonumber(depth)
+-- end
+-- if not depth or depth == 0 then
+-- depth = data.depth
+-- end
+-- if depth > 0 then
+-- local userdata = data.status[depth]
+-- userdata = userdata and userdata.userdata
+-- userdata = (userdata and userdata[key]) or default
+-- if userdata then
+-- context(userdata)
+-- end
+-- end
+-- end
+
function sections.userdata(depth,key,default)
+ local detail = false
+ if type(depth) == "string" then
+ depth, detail = string.splitup(depth,":")
+ end
if depth then
- depth = levelmap[depth] or tonumber(depth)
+ depth = levelmap[depth]
+ end
+ if not depth then
+ depth = tonumber(depth)
end
if not depth or depth == 0 then
depth = data.depth
end
- if depth > 0 then
- local userdata = data.status[depth]
- userdata = userdata and userdata.userdata
- userdata = (userdata and userdata[key]) or default
+ local userdata
+ if detail == "+" then
+ userdata = structures.lists.collected[#structures.lists.tobesaved+1]
if userdata then
- context(userdata)
+ userdata = userdata.userdata
end
+ elseif depth > 0 then
+ userdata = data.status[depth]
+ userdata = userdata and userdata.userdata
+ end
+ userdata = (userdata and userdata[key]) or default
+ if userdata then
+ context(userdata)
end
end
@@ -772,6 +855,7 @@ function sections.typesetnumber(entry,kind,...)
applyprocessor(starter)
end
end
+-- inspect(entry)
if prefixlist and (kind == "section" or kind == "prefix" or kind == "direct") then
-- find valid set (problem: for sectionnumber we should pass the level)
-- no holes
@@ -780,6 +864,8 @@ function sections.typesetnumber(entry,kind,...)
local bb = 0
local ee = 0
-- find last valid number
+-- print("index >>",b,e)
+-- inspect(prefixlist)
for k=e,b,-1 do
local prefix = prefixlist[k]
local index = sections.getlevel(prefix) or k
@@ -1208,3 +1294,80 @@ implement {
name = "popsectionblock",
actions = sections.popblock,
}
+
+interfaces.implement {
+ name = "doifelsefirstsectionpage",
+ arguments = "1 argument",
+ public = true,
+ protected = true,
+ actions = function(name)
+ local found = false
+ -- local list = structures.lists.collected
+ local list = lists.collected
+ if list then
+ local realpage = texgetcount("realpageno")
+ for i=1,#list do
+ local listdata = list[i]
+ local metadata = listdata.metadata
+ if metadata and metadata.kind == "section" and metadata.name == name then
+ -- local current = structures.documents.data.status[metadata.level]
+ local current = data.status[metadata.level]
+ if current and current.references.internal == listdata.references.internal then
+ found = listdata.references.realpage == realpage
+ break
+ end
+ end
+ end
+ end
+ ctx_doifelse(found)
+ end,
+}
+
+-- could be faster (in huge lists)
+
+-- local firstpages = table.setmetatableindex(function(t,name)
+-- -- local list = structures.lists.collected
+-- local list = lists.collected
+-- local pages = { }
+-- if list then
+-- for i=1,#list do
+-- local listdata = list[i]
+-- local metadata = listdata.metadata
+-- if metadata and metadata.kind == "section" and metadata.name == name then
+-- local references = listdata.references
+-- if references then
+-- pages[references.internal] = listdata
+-- end
+-- end
+-- end
+-- end
+-- t[name] = pages
+-- return pages
+-- end)
+--
+-- interfaces.implement {
+-- name = "doifelsefirstsectionpage",
+-- arguments = "1 argument",
+-- public = true,
+-- protected = true,
+-- actions = function(name)
+-- local found = firstpages[name]
+-- if found then
+-- local level = structures.sections.levelmap[name]
+-- if level then
+-- -- local current = structures.documents.data.status[level]
+-- local current = data.status[level]
+-- if current then
+-- local realpage = texgetcount("realpageno")
+-- found = found[current.references.internal]
+-- found = found and found.references.realpage == realpage
+-- else
+-- found = false
+-- end
+-- else
+-- found = false
+-- end
+-- end
+-- ctx_doifelse(found)
+-- end,
+-- }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-enu.mkvi b/Master/texmf-dist/tex/context/base/mkiv/strc-enu.mkvi
index 4680a3981df..4ad417a3e9b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-enu.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-enu.mkvi
@@ -305,16 +305,22 @@
\endgroup}
\unexpanded\def\strc_enumerations_inject_symbol % todo check
- {\constructionparameter\c!left
+ {\begingroup
+ \useconstructionstyleandcolor\c!numberstyle\c!numbercolor
+ \constructionparameter\c!left
\constructionparameter\c!symbol
- \constructionparameter\c!right}
+ \constructionparameter\c!right
+ \endgroup}
\unexpanded\def\strc_enumerations_inject_number
- {\constructionparameter\c!left
+ {\begingroup
+ \useconstructionstyleandcolor\c!numberstyle\c!numbercolor
+ \constructionparameter\c!left
\constructionparameter\c!starter
\clf_savedlistprefixednumber{\currentconstructionmain}\currentconstructionlistentry\relax
\constructionparameter\c!stopper
- \constructionparameter\c!right}
+ \constructionparameter\c!right
+ \endgroup}
\unexpanded\def\strc_enumerations_inject_text_and_number
{\constructionparameter\c!numbercommand
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-flt.mkvi b/Master/texmf-dist/tex/context/base/mkiv/strc-flt.mkvi
index d9fd359c668..464b6ab520f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-flt.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-flt.mkvi
@@ -1111,6 +1111,35 @@
\def\strc_floats_group_index
{\numexpr\clf_listgroupindex{\currentfloat}{\currentfloatgroup}\relax}
+%D A lightweight subnumber feature:
+%D
+%D \starttyping
+%D \startplacefigure [location=none]
+%D \startsubfloatnumbering
+%D \startfloatcombination [nx=3]
+%D \startplacefigure [title=Left] \externalfigure \stopplacefigure
+%D \startplacefigure [title=Middle] \externalfigure \stopplacefigure
+%D \startplacefigure [title=Right] \externalfigure \stopplacefigure
+%D \stopfloatcombination
+%D \stopsubfloatnumbering
+%D \stopplacefigure
+%D \stoptyping
+
+\glet\currentsubfloatcounter\empty
+
+\unexpanded\def\startsubfloatnumbering
+ {\glet\currentsubfloatcounter\s!unknown}
+
+\unexpanded\def\stopsubfloatnumbering
+ {\strc_counters_reset_sub\currentsubfloatcounter\plustwo
+ \glet\currentsubfloatcounter\empty}
+
+\defineconversionset[subfloats][number,characters]
+
+\setupcaptions
+ %[figure]
+ [\c!numberconversionset=subfloats]
+
\def\strc_floats_place_packaged_boxes
{\expandafter\strc_floats_place_packaged_boxes_indeed\expandafter{\m_strc_floats_saved_userdata}}
@@ -1127,7 +1156,17 @@
\ifx\currentfloatgroup\empty
% independent
\iftrialtypesetting\strc_counters_save\currentfloatcounter\fi
- \strc_counters_increment\currentfloatcounter
+ \ifx\empty\currentsubfloatcounter
+ \strc_counters_increment\currentfloatcounter
+ \strc_counters_reset_sub\currentfloatcounter\plustwo
+ \else
+ \ifcase\strc_counters_raw_sub\currentfloatcounter\plustwo\relax
+ \strc_counters_increment\currentfloatcounter
+ \strc_counters_reset_sub\currentfloatcounter\plustwo
+ \fi
+ \strc_counters_increment_sub\currentfloatcounter\plustwo
+ \glet\currentsubfloatcounter\currentfloatcounter
+ \fi
\else\ifcase\strc_floats_group_index
% first in group
\iftrialtypesetting\strc_counters_save\currentfloatcounter\fi
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-lst.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-lst.lua
index a6799d80f1a..41d09f073a1 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-lst.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-lst.lua
@@ -37,6 +37,8 @@ local conditionals = tex.conditionals
local ctx_latelua = context.latelua
+local cheat = true
+
local structures = structures
local lists = structures.lists
local sections = structures.sections
@@ -96,7 +98,10 @@ local v_reference = variables.reference
local v_local = variables["local"]
local v_default = variables.default
--- for the moment not public --
+local cheats = {
+ [variables.fit] = true,
+ [variables.tight] = true,
+}
local function zerostrippedconcat(t,separator)
local f = 1
@@ -193,8 +198,13 @@ local function finalizer()
if r then
local i = r.internal
local f = flaginternals[i]
+ local v = usedviews[i]
+ if cheat and v and cheats[v] then -- cheats check added, to be tested by RKB
+ -- this permits runs=2 with interactivity
+ r.view = v
+ end
if f then
- r.used = usedviews[i] or true
+ r.used = v or true
end
end
end
@@ -232,7 +242,7 @@ function lists.addto(t) -- maybe more more here (saves parsing at the tex end)
if numberdata then
local numbers = numberdata.numbers
if type(numbers) == "string" then
- numberdata.numbers = counters.compact(numbers,nil,true)
+ counters.compact(numberdata,numbers,numberdata.level)
end
end
local group = numberdata and numberdata.group
@@ -256,6 +266,14 @@ function lists.addto(t) -- maybe more more here (saves parsing at the tex end)
if r and not r.section then
r.section = structures.sections.currentid()
end
+ local b = r and t.block
+ if r and not b then
+ local s = r.section
+ if s then
+ s = structures.sections.tobesaved[s]
+ r.block = s and s.block or nil
+ end
+ end
local i = r and r.internal or 0 -- brrr
if r and kind and name then
local tag = tags.getid(kind,name)
@@ -445,7 +463,8 @@ local function filtercollected(specification)
elseif not wantedcriterium then
block = documents.data.block
else
- block, criterium = wantedblock, wantedcriterium
+ block = wantedblock
+ criterium = wantedcriterium
end
if block == "" then
block = false
@@ -468,6 +487,10 @@ local function filtercollected(specification)
specification.block = block
specification.all = all
--
+ if specification.atmost then
+ criterium = v_text
+ end
+ --
if trace_lists then
report_lists("filtering names %,t, criterium %a, block %a",sortedkeys(names), criterium, block or "*")
end
@@ -476,6 +499,31 @@ local function filtercollected(specification)
report_lists("criterium %a, block %a, found %a",specification.criterium, specification.block or "*", #result)
end
--
+ local levels = tonumber(specification.levels)
+ if levels then
+ local minlevel = 1000
+ local found = result
+ local nofresult = #result
+ for i=1,nofresult do
+ local v = found[i]
+ local l = v.metadata.level or 1
+ if l < minlevel then
+ minlevel = l
+ end
+ end
+ local maxlevel = minlevel + levels - 1
+ result = { }
+ nofresult = 0
+ for i=1,#found do
+ local v = found[i]
+ local l = v.metadata.level or 1
+ if l >= minlevel and l <= maxlevel then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ end
+ end
+ --
if sortorder then -- experiment
local sorter = listsorters[sortorder]
if sorter then
@@ -495,7 +543,7 @@ end
filters[v_intro] = function(specification)
local collected = specification.collected
local result = { }
- local nofresult = #result
+ local nofresult = 0
local all = specification.all
local names = specification.names
for i=1,#collected do
@@ -515,7 +563,7 @@ end
filters[v_reference] = function(specification)
local collected = specification.collected
local result = { }
- local nofresult = #result
+ local nofresult = 0
local names = specification.names
local sections = sections.collected
local reference = specification.reference
@@ -554,7 +602,7 @@ end
filters[v_all] = function(specification)
local collected = specification.collected
local result = { }
- local nofresult = #result
+ local nofresult = 0
local block = specification.block
local all = specification.all
local forced = specification.forced
@@ -566,7 +614,7 @@ filters[v_all] = function(specification)
if r and (not block or not r.block or block == r.block) then
local metadata = v.metadata
if metadata then
- local name = metadata.name or false
+ local name = metadata.name or false
local sectionnumber = (r.section == 0) or sections[r.section]
if forced[name] or (sectionnumber and not metadata.nolist and (all or names[name])) then -- and not sectionnumber.hidenumber then
nofresult = nofresult + 1
@@ -588,7 +636,7 @@ filters[v_current] = function(specification)
end
local collected = specification.collected
local result = { }
- local nofresult = #result
+ local nofresult = 0
local depth = specification.depth
local block = specification.block
local all = specification.all
@@ -634,7 +682,7 @@ filters[v_here] = function(specification)
end
local collected = specification.collected
local result = { }
- local nofresult = #result
+ local nofresult = 0
local depth = specification.depth
local block = specification.block
local all = specification.all
@@ -679,7 +727,7 @@ filters[v_previous] = function(specification)
end
local collected = specification.collected
local result = { }
- local nofresult = #result
+ local nofresult = 0
local block = specification.block
local all = specification.all
local names = specification.names
@@ -740,7 +788,7 @@ filters[v_component] = function(specification)
-- special case, no structure yet
local collected = specification.collected
local result = { }
- local nofresult = #result
+ local nofresult = 0
local all = specification.all
local names = specification.names
local component = resolvers.jobs.currentcomponent() or ""
@@ -766,7 +814,7 @@ end
filters[v_default] = function(specification) -- is named
local collected = specification.collected
local result = { }
- local nofresult = #result
+ local nofresult = 0
----- depth = specification.depth
local block = specification.block
local criterium = specification.criterium
@@ -797,6 +845,7 @@ filters[v_default] = function(specification) -- is named
for i=1,#collected do
local v = collected[i]
local r = v.references
+-- inspect(v)
if r and (not block or not r.block or pblock == r.block) then
local sectionnumber = sections[r.section]
if sectionnumber then
@@ -839,13 +888,23 @@ function lists.process(specification)
local total = #result
lists.result = result
if total > 0 then
+ local usedinternals = references.usedinternals
+ local usedviews = references.usedviews
local specials = settings_to_set(specification.extras or "")
specials = next(specials) and specials or nil
for i=1,total do
- local r = result[i]
- local m = r.metadata
- local s = specials and r.numberdata and specials[zerostrippedconcat(r.numberdata.numbers,".")] or ""
- context.strclistsentryprocess(m.name,m.kind,i,s)
+ local listentry = result[i]
+ local metadata = listentry.metadata
+ local numberdata = listentry.numberdata
+ local references = listentry.references
+ local special = specials and numberdata and specials[zerostrippedconcat(numberdata.numbers,".")] or ""
+ if cheat and references then
+ -- this permits runs=2 with interactivity
+ local internal = references.internal
+ usedinternals[internal] = true
+ usedviews [internal] = references.view
+ end
+ context.strclistsentryprocess(metadata.name,metadata.kind,i,special)
end
end
end
@@ -943,6 +1002,18 @@ function lists.hasnumberdata(name,n)
return false
end
+function lists.rawnumber(n,name)
+ local data = lists.result[n]
+ if data then
+ local numberdata = data.numberdata
+ if numberdata then
+ numberdata = numberdata.numbers
+ return numberdata and numberdata[getsectionlevel(name)] or numberdata[name] or 0
+ end
+ end
+ return 0
+end
+
function lists.prefix(name,n,spec)
helpers.prefix(lists.result[n],spec)
end
@@ -1068,6 +1139,7 @@ implement {
}
},
{ "numberdata", {
+ { "level", "integer" },
{ "numbers" },
{ "groupsuffix" },
{ "group" },
@@ -1111,6 +1183,7 @@ implement {
{ "reference" },
{ "extras" },
{ "order" },
+ { "levels" },
}
}
}
@@ -1278,6 +1351,12 @@ implement {
arguments = "integer"
}
+implement {
+ name = "rawlistnumber",
+ actions = { lists.rawnumber, context },
+ arguments = { "integer", "string" },
+}
+
-- new and experimental and therefore off by default
lists.autoreorder = false -- true
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-mar.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-mar.lua
index f7953c416e0..dd6c0a93d69 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-mar.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-mar.lua
@@ -43,7 +43,7 @@ local lateluawhatsit_code = whatsitcodes.latelua
local texsetattribute = tex.setattribute
-local a_marks = attributes.private("structure","marks")
+local a_marks = attributes.private("marks")
local trace_set = false trackers.register("marks.set", function(v) trace_set = v end)
local trace_get = false trackers.register("marks.get", function(v) trace_get = v end)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-mat.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-mat.mkiv
index 7f5a1915445..d0d4066526f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-mat.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-mat.mkiv
@@ -204,7 +204,10 @@
\relax \relax \relax
[\c!name=\v!formula,\s!counter=\v!formula,%
\s!hascaption=\v!yes,\s!hastitle=\v!yes,\s!hasnumber=\v!yes,%\s!haslevel=#6,%
- \c!reference=#1,\c!title=\namedformulaentry,\c!bookmark=]%
+ \c!reference=#1,%
+ \c!title=\namedformulaentry,%
+ \c!list=\currentplaceformulalist,%
+ \c!bookmark=\currentplaceformulabookmark]%
[#2]%
\glet\namedformulaentry\empty % \relax
\glet#3\m_strc_counters_last_registered_index
@@ -620,7 +623,6 @@
\setvalue{\??mathdisplayspacemodel\v!after:1}% old
{\prevdepth .5\strutdp
- \edef\p_spaceafter{\formulaparameter\c!spaceafter}%
\ifx\p_spaceafter\v!none
% nothing
\else
@@ -637,7 +639,6 @@
\setvalue{\??mathdisplayspacemodel\v!after:2}% old
{\prevdepth\lineheight
- \edef\p_spaceafter{\formulaparameter\c!spaceafter}%
\ifx\p_spaceafter\v!none
% nothing
\else
@@ -668,11 +669,11 @@
\else\ifx\p_spacebefore\empty
\directvspacing\currentvspacing
\else
- \directvspacing{\p_spacebefore,\the\scratchdimen}%
+ \directvspacing\p_spacebefore
\fi\fi
\else
\ifx\p_spacebefore\v!none
- \directvspacing{\m_spacebefore}%
+ \directvspacing\m_spacebefore
\else\ifx\p_spacebefore\empty
\directvspacing{\m_spacebefore,\currentvspacing}%
\else
@@ -706,7 +707,7 @@
\else\ifx\p_spacebefore\empty
\directvspacing\currentvspacing
\else
- \directvspacing{\p_spacebefore,\the\scratchdimen}%
+ \directvspacing\p_spacebefore
\fi\fi
\fi
\else
@@ -975,6 +976,7 @@
\rawprocesscommalist[\p_direct]\strc_formulas_option
\fi
% not : \def\strc_formulas_formula[##1]##2{\mathematics{##2}}%
+ \useformulastyleandcolor\c!style\c!color
\mathematics{#2}%
\endgroup}
@@ -1227,13 +1229,20 @@
%\doifelsenextbgroup\strc_formulas_place_yes\strc_formulas_place_nop} % [ref]{}
\strc_formulas_place_nop}
+\let\currentplaceformulabookmark\empty
+\let\currentplaceformulalist \empty
+
\def\strc_formulas_start_place_parameters[#1]%
{\letdummyparameter\c!title \empty
\letdummyparameter\c!reference\empty
+ \letdummyparameter\c!bookmark \empty
+ \letdummyparameter\c!list \empty
\letdummyparameter\c!suffix \empty
\getdummyparameters[#1]%
\edef\currentplaceformulatitle {\dummyparameter\c!title}%
\edef\currentplaceformulareference{\dummyparameter\c!reference}%
+ \edef\currentplaceformulalist {\dummyparameter\c!list}%
+ \edef\currentplaceformulabookmark {\dummyparameter\c!bookmark}%
\edef\currentplaceformulasuffix {\dummyparameter\c!suffix}%
\ifx\currentplaceformulatitle\empty\else
\normalexpanded{\setformulalistentry{\currentplaceformulatitle}}%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-not.mkvi b/Master/texmf-dist/tex/context/base/mkiv/strc-not.mkvi
index f29cb38ba16..469a57a15db 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-not.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-not.mkvi
@@ -24,9 +24,6 @@
\ifdefined\dotagsetnotesymbol \else \let\dotagsetnotesymbol\relax \fi
\ifdefined\dotagsetnotation \else \let\dotagsetnotation \relax \fi
-\unexpanded\def\unvboxed {\ifvmode\unvbox \else\box \fi} % will change or used more often
-\unexpanded\def\unvcopied{\ifvmode\unvcopy\else\copy\fi} % will change or used more often
-
%D \LMTX\ testcase:
%D
%D \starttyping
@@ -1507,7 +1504,12 @@
{\starthboxestohbox
\iftrialtypesetting\unvcopy\else\unvbox\fi\currentnoteinsertionnumber
\stophboxestohbox}}
- {\iftrialtypesetting\unvcopied\else\unvboxed\fi\currentnoteinsertionnumber}%
+ {\iftrialtypesetting
+ \ifvmode\unvcopy\else\copy\fi
+ \else
+ \ifvmode\unvbox \else\box \fi
+ \fi
+ \currentnoteinsertionnumber}%
\endgroup}
%D Supporting end notes is surprisingly easy. Even better, we can combine this
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-num.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-num.lua
index 25e575a56f7..3339819a22f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-num.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-num.lua
@@ -270,18 +270,36 @@ function counters.raw(name)
return counterdata[name]
end
-function counters.compact(name,level,onlynumbers)
+function counters.compact(target,name,level)
local cd = counterdata[name]
if cd then
- local data = cd.data
- local compact = { }
- for i=1,level or #data do
+ local data = cd.data
+ local numbers = { }
+ local ownnumbers = { }
+ local depth = #data
+ if not level or level == 0 then
+ level = depth
+ elseif level > depth then
+ level = depth
+ end
+
+ for i=1,level do
local d = data[i]
- if d.number ~= 0 then
- compact[i] = (onlynumbers and d.number) or d
+ if d then
+ local n = d.number
+ local o = d.own
+ if n ~= 0 then
+ numbers[i] = n
+ end
+ if o ~= "" then
+ ownnumbers[i] = o
+ end
end
end
- return compact
+ target.numbers = numbers
+ if next(ownnumbers) then
+ target.ownnumbers = ownnumbers
+ end
end
end
@@ -357,8 +375,9 @@ end
local function reset(name,n)
local cd = counterdata[name]
if cd then
- for i=n or 1,#cd.data do
- local d = cd.data[i]
+ local data = cd.data
+ for i=n or 1,#data do
+ local d = data[i]
savevalue(name,i)
local number = d.start or 0
d.number = number
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-pag.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-pag.lua
index 9c040104db4..d26f4adcfe2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-pag.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-pag.lua
@@ -255,7 +255,7 @@ function helpers.analyze(entry,specification)
if not section then
return entry, false, "no section"
end
- local sectiondata = sections.collected[references.section]
+ local sectiondata = references.sectiondata or sections.collected[references.section] -- so we use an already resolved external one
if not sectiondata then
return entry, false, "no section data"
end
@@ -272,7 +272,7 @@ function helpers.analyze(entry,specification)
return entry, sectiondata, "okay"
end
-function helpers.prefix(data,prefixspec,nosuffix)
+function helpers.prefix(data,prefixspec,nosuffix) -- not only page
if data then
local _, prefixdata, status = helpers.analyze(data,prefixspec)
if prefixdata then
@@ -322,10 +322,6 @@ function pages.on_right(n)
end
end
-function pages.has_changed()
- return texconditionals.layouthaschanged
-end
-
function pages.in_body(n)
return texgetcount("pagebodymode") > 0
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-ref.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-ref.lua
index bca36ccef43..8d081c923d3 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-ref.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-ref.lua
@@ -435,9 +435,21 @@ end
references.synchronizepage = synchronizepage
local function enhancereference(specification)
- local l = tobesaved[specification.prefix][specification.tag]
- if l then
- synchronizepage(l.references)
+ local prefix = specification.prefix
+ if prefix then
+ local entry = tobesaved[prefix]
+ if entry then
+ entry = entry[specification.tag]
+ if entry then
+ synchronizepage(entry.references)
+ else
+ -- normally a bug
+ end
+ else
+ -- normally a bug
+ end
+ else
+ -- normally a bug
end
end
@@ -1027,6 +1039,7 @@ local function loadexternalreferences(name,utilitydata)
local external = struc.references.collected -- direct references
local lists = struc.lists.collected -- indirect references (derived)
local pages = struc.pages.collected -- pagenumber data
+ local sections = struc.sections.collected
-- a bit weird one, as we don't have the externals in the collected
for prefix, set in next, external do
if prefix == "" then
@@ -1062,6 +1075,15 @@ local function loadexternalreferences(name,utilitydata)
if prefix == "" then
prefix = name -- this can clash!
end
+ local section = references.section
+ if section then
+ -- we have to make sure that the right section is used, see helpers.prefix
+ if sections then
+ references.sectiondata = sections[section]
+ else
+ -- warning
+ end
+ end
local target = external[prefix]
if not target then
target = { }
@@ -2084,7 +2106,7 @@ function references.setandgetattribute(data) -- maybe do internal automatically
if ndat then
local numbers = ndat.numbers
if type(numbers) == "string" then
- ndat.numbers = counters.compact(numbers,nil,true)
+ counters.compact(ndat,numbers)
end
data.numberdata = helpers.simplify(ndat)
end
@@ -2650,7 +2672,6 @@ end
implement { name = "referenceposx", actions = function() context("%p",referencepos("x")) end }
implement { name = "referenceposy", actions = function() context("%p",referencepos("y")) end }
-
implement {
name = "referencecolumn",
actions = function()
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-ref.mkvi b/Master/texmf-dist/tex/context/base/mkiv/strc-ref.mkvi
index 3bf33963851..5032c20c473 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-ref.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-ref.mkvi
@@ -1125,7 +1125,7 @@
\def\strc_references_handle_page_state_yes
{\markreferencepage
- \ifcase\referencepagedetail
+ \ifcase\referencepagedetail\relax
\expandafter\sixthofsixarguments \or
\expandafter\thirdofsixarguments \or
\expandafter\firstofsixarguments \or
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-ren.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-ren.mkiv
index 359bd6aecc0..8926dfe8d70 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-ren.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-ren.mkiv
@@ -381,6 +381,7 @@
\noindentation
\else
\ignoreparskip
+ \doindentation
\fi\fi}
% nice testcase
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-syn.lua b/Master/texmf-dist/tex/context/base/mkiv/strc-syn.lua
index c0ebb556cc7..8933baea155 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-syn.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-syn.lua
@@ -29,6 +29,12 @@ local splitter = sorters.splitters.utf
synonyms.collected = collected
synonyms.tobesaved = tobesaved
+local progressions = { } -- false=not_yet_shown true=shown
+
+local variables = interfaces.variables
+local v_all = variables.all
+local v_current = variables.current
+
local function initializer()
collected = synonyms.collected
tobesaved = synonyms.tobesaved
@@ -86,12 +92,6 @@ function synonyms.register(class,kind,spec)
local tag = definition.tag or ""
data.metadata.kind = kind -- runtime, not saved in format (yet)
if not hash[tag] then
- if definition.used == nil then
- definition.used = false
- end
- if definition.shown == nil then
- definition.shown = false
- end
local entries = data.entries
entries[#entries+1] = spec
hash[tag] = spec
@@ -121,24 +121,58 @@ end
function synonyms.isused(class,tag)
local data = tobesaved[class]
local okay = data.hash[tag]
- return okay and okay.definition.used
+ return okay and okay.definition.used or false
end
function synonyms.isshown(class,tag)
local data = tobesaved[class]
local okay = data.hash[tag]
- return okay and okay.definition.shown
+ return okay and okay.definition.shown or false
+end
+
+local function resetused(class)
+ for tag, data in next, tobesaved[class].hash do
+ data.definition.used = nil
+ end
+end
+
+local function resetshown(class)
+ for tag, data in next, tobesaved[class].hash do
+ data.definition.shown = nil
+ end
end
-function synonyms.resetused(class)
+local function resetlist(class)
for tag, data in next, tobesaved[class].hash do
- data.definition.used = false
+ data.definition.list = nil
end
end
-function synonyms.resetshown(class)
+local function resetall(class)
for tag, data in next, tobesaved[class].hash do
- data.definition.shown = false
+ local definition = data.definition
+ definition.used = nil
+ definition.shown = nil
+ definition.list = nil
+ end
+end
+
+synonyms.resetused = resetused
+synonyms.resetshown = resetshown
+synonyms.resetlist = resetlist
+synonyms.resetall = resetall
+
+function synonyms.reset(class,what)
+ if what == "progress" then
+ progressions = { }
+ elseif what == "used" then
+ resetused(class)
+ elseif what == "shown" then
+ resetshown(class)
+ elseif what == "list" then
+ resetlist(class)
+ else
+ resetall(class)
end
end
@@ -151,6 +185,9 @@ function synonyms.synonym(class,tag)
definition.list = true
context(definition.synonym)
end
+ if progressions[tag] == nil then
+ progressions[tag] = false -- not yet shown
+ end
end
function synonyms.meaning(class,tag)
@@ -167,10 +204,10 @@ end
synonyms.compare = sorters.comparers.basic -- (a,b)
function synonyms.filter(data,options)
- local result = { }
- local entries = data.entries
- local all = options and options.criterium == interfaces.variables.all
- if all then
+ local result = { }
+ local entries = data.entries
+ local criterium = options and options.criterium
+ if criterium == v_all then
for i=1,#entries do
result[i] = entries[i]
end
@@ -179,9 +216,17 @@ function synonyms.filter(data,options)
local entry = entries[i]
local definition = entry.definition
if definition.list then
- result[#result+1] = entry
+ local tag = definition.tag
+ local done = progressions[tag]
+ if done == false then
+ result[#result+1] = entry
+ progressions[tag] = true
+ end
end
end
+ if criterium == v_current then
+ progressions = { }
+ end
end
data.result = result
end
@@ -193,9 +238,12 @@ function synonyms.prepare(data)
local entry = result[i]
local definition = entry.definition
if definition then
- local tag = definition.tag
- local key = tag ~= "" and tag or definition.synonym
- entry.split = splitter(strip(key))
+ local srt = definition.sortkey or ""
+ local tag = definition.tag or ""
+ local key = (srt ~= "" and srt) or (tag ~= "" and tag) or definition.synonym
+ if key then
+ entry.split = splitter(strip(key))
+ end
end
end
end
@@ -277,8 +325,10 @@ implement { name = "registerusedsynonym", actions = synonyms.registerused, arg
implement { name = "registershownsynonym", actions = synonyms.registershown, arguments = "2 strings" }
implement { name = "synonymmeaning", actions = synonyms.meaning, arguments = "2 strings" }
implement { name = "synonymname", actions = synonyms.synonym, arguments = "2 strings" }
-implement { name = "resetusedsynonyms", actions = synonyms.resetused, arguments = "string" }
-implement { name = "resetshownsynonyms", actions = synonyms.resetshown, arguments = "string" }
+-- { name = "resetusedsynonyms", actions = resetused, arguments = "string" }
+-- { name = "resetshownsynonyms", actions = resetshown, arguments = "string" }
+-- { name = "resetlistsynonyms", actions = resetlist, arguments = "string" }
+implement { name = "resetsynonyms", actions = synonyms.reset, arguments = "2 strings" }
implement {
name = "doifelsesynonymused",
@@ -310,6 +360,7 @@ implement {
{ "tag" },
{ "synonym" },
{ "meaning" },
+ { "sortkey" },
{ "used", "boolean" }
}
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-syn.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-syn.mkiv
index cdede1d0da0..e93141bde11 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-syn.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-syn.mkiv
@@ -101,6 +101,31 @@
%D
%D The lists are constructions (like descriptions are) and can be set up
%D likewise.
+%D
+%D You can show the currently accessed entries as follows:
+%D
+%D \starttyping
+%D \startchapter[title=One]
+%D test \FIRST\ test test \THIRD\ test \blank
+%D \placelistofsynonyms[myabbreviation]
+%D \resetsynonymsprogress[myabbreviation] % reset state
+%D \stopchapter
+%D
+%D \startchapter[title=Two]
+%D test \FIRST\ test test \SECOND\ test \blank
+%D \placelistofsynonyms[myabbreviation][criterium=current]
+%D \resetsynonymsprogress[myabbreviation] % reset state
+%D \stopchapter
+%D
+%D \startchapter[title=Three]
+%D test test test test test test \blank
+%D \placelistofsynonyms[myabbreviation][criterium=current] % also reset state
+%D \stopchapter
+%D
+%D \startchapter[title=All]
+%D \placelistofsynonyms[myabbreviation][criterium=all]
+%D \stopchapter
+%D \stoptyping
% todo: add 'define only' option to descriptions, then add sorting (also based on key)
% and call to definition -> replaces this module
@@ -319,8 +344,11 @@
\unexpanded\def\currentsynonymmeaning {\clf_synonymmeaning {\currentsimplelist}{\currentsynonymtag}}
\unexpanded\def\doifelsecurrentsynonymused {\clf_doifelsesynonymused {\currentsimplelist}{\currentsynonymtag}}
\unexpanded\def\doifelsecurrentsynonymshown{\clf_doifelsesynonymshown{\currentsimplelist}{\currentsynonymtag}}
-\unexpanded\def\resetusedsynonyms [#1]{\clf_resetusedsynonyms {#1}}
-\unexpanded\def\resetshownsynonyms [#1]{\clf_resetshownsynonyms {#1}}
+\unexpanded\def\resetusedsynonyms [#1]{\clf_resetsynonyms{#1}{used}}
+\unexpanded\def\resetshownsynonyms [#1]{\clf_resetsynonyms{#1}{shown}}
+\unexpanded\def\resetlistsynonyms [#1]{\clf_resetsynonyms{#1}{list}}
+\unexpanded\def\resetsynonyms [#1]{\clf_resetsynonyms{#1}{all}}
+\unexpanded\def\resetsynonymsprogress [#1]{\clf_resetsynonyms{#1}{progress}}
\let\rawsynonymname \clf_synonymname
\let\rawsynonymmeaning\clf_synonymmeaning
diff --git a/Master/texmf-dist/tex/context/base/mkiv/strc-usr.mkiv b/Master/texmf-dist/tex/context/base/mkiv/strc-usr.mkiv
index 97b656fa087..cbf91061633 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/strc-usr.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/strc-usr.mkiv
@@ -91,21 +91,16 @@
\installcommandhandler \????userdata {userdata} \????userdata
\installcommandhandler \????userdataalternative {userdataalternative} \????userdataalternative
+\appendtoks
+ \setuevalue{\e!start\currentuserdata}{\dodoubleempty\userdata_start_instance[\currentuserdata]}%
+ \setuevalue{\e!stop \currentuserdata}{\userdata_stop_instance}%
+\to \everydefineuserdata
+
\unexpanded\def\startuserdata
{\begingroup
\let\currentuserdata\empty
\doifelsenextoptionalcs\userdata_start_delayed\userdata_start_indeed}
-% This variant works only when the userdata instance exists while the assignment check
-% can also be used with undefined instances which falls back to the global settings.
-%
-% \def\userdata_start_delayed[#1]%
-% {\ifcsname\nameduserdatahash{\detokenize\expandafter{\normalexpanded{#1}}}\s!parent\endcsname
-% \expandafter\userdata_start_delayed_name
-% \else
-% \expandafter\userdata_start_delayed_parameters
-% \fi[#1]}
-
\def\userdata_start_delayed[#1]%
{\doifelseassignmentcs{#1}%
\userdata_start_delayed_parameters
@@ -121,26 +116,27 @@
\checkuserdataparent
\doifelsenextoptionalcs\userdata_start_delayed_parameters\userdata_start_indeed}
+\unexpanded\def\userdata_start_instance[#1][#2]%
+ {\begingroup
+ \edef\currentuserdata{#1}%
+ \setupcurrentuserdata[#2]%
+ \grabbufferdatadirect
+ {\s!userdata:\currentuserdata}%
+ {\e!start\currentuserdata}%
+ {\e!stop \currentuserdata}}
+
\def\userdata_start_indeed
- {\grabbufferdatadirect\s!userdata{\csstring\startuserdata}{\csstring\stopuserdata}}
-
-% \unexpanded\def\stopuserdata
-% {\useuserdatastyleandcolor\c!style\c!color
-% \usealignparameter\userdataparameter
-% \edef\currentuserdataalternative{\userdataparameter\c!alternative}%
-% \ifcsname\currentuserdataalternativehash\s!parent\endcsname \else
-% \let\currentuserdataalternative\s!default
-% \fi
-% \edef\p_renderingsetup{\userdataalternativeparameter\c!renderingsetup}%
-% \directsetup\p_renderingsetup
-% \endgroup}
+ {\grabbufferdatadirect
+ {\s!userdata:\currentuserdata}%
+ {\csstring\startuserdata}%
+ {\csstring\stopuserdata}}
\unexpanded\def\stopuserdata
- {\userdataparameter\c!before % HH: moved, so we obey the outer spacing
- \dostarttagged\t!userdata\currentuserdata % HH: added, maybe move up ?
+ {\userdataparameter\c!before
+ \dostarttagged\t!userdata\currentuserdata
\begingroup
\useuserdatastyleandcolor\c!style\c!color
- \usealignparameter\userdataparameter % HH: added
+ \usealignparameter\userdataparameter
\edef\currentuserdataalternative{\userdataparameter\c!alternative}%
\ifcsname\currentuserdataalternativehash\s!parent\endcsname \else
\let\currentuserdataalternative\s!default
@@ -150,14 +146,13 @@
\directsetup\p_renderingsetup
\endgroup
\dostoptagged
- \userdataparameter\c!after % HH: moved
+ \userdataparameter\c!after
\endgroup}
-\unexpanded\def\getuserdata
- {\getbufferdata[\s!userdata]}
+\let\userdata_stop_instance\stopuserdata
-\unexpanded\def\getinlineuserdata
- {\inlinebuffer[\s!userdata]}
+\unexpanded\def\getuserdata {\getbufferdata[\s!userdata]}
+\unexpanded\def\getinlineuserdata{\inlinebuffer[\s!userdata]}
\defineuserdataalternative
[\s!default]
diff --git a/Master/texmf-dist/tex/context/base/mkiv/supp-box.lua b/Master/texmf-dist/tex/context/base/mkiv/supp-box.lua
index 4914b6818f1..2e7ca59244a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/supp-box.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/supp-box.lua
@@ -7,8 +7,6 @@ if not modules then modules = { } end modules ['supp-box'] = {
license = "see context related readme files"
}
--- this is preliminary code, use insert_before etc
-
local report_hyphenation = logs.reporter("languages","hyphenation")
local tonumber, next, type = tonumber, next, type
@@ -69,15 +67,15 @@ local setshift = nuts.setshift
local setsplit = nuts.setsplit
local setattrlist = nuts.setattrlist
-local flush_node = nuts.flush_node
-local flush_list = nuts.flush_list
+local flushnode = nuts.flushnode
+local flushlist = nuts.flushlist
local copy_node = nuts.copy
-local copy_list = nuts.copy_list
+local copylist = nuts.copylist
local find_tail = nuts.tail
local getdimensions = nuts.dimensions
local hpack = nuts.hpack
local vpack = nuts.vpack
-local traverse_id = nuts.traverse_id
+local traverseid = nuts.traverseid
local traverse = nuts.traverse
local free = nuts.free
local findtail = nuts.tail
@@ -118,7 +116,7 @@ local function hyphenatedlist(head,usecolor)
setlistcolor(post,"darkyellow")
end
if replace then
- flush_list(replace)
+ flushlist(replace)
end
setdisc(current)
if pre then
@@ -152,9 +150,9 @@ implement {
-- for n in nextdisc, tonut(head) do
-- local hyphen = getfield(n,"pre")
-- if hyphen then
--- flush_list(hyphen)
+-- flushlist(hyphen)
-- end
--- setfield(n,"pre",copy_list(pre))
+-- setfield(n,"pre",copylist(pre))
-- end
-- end
--
@@ -173,7 +171,7 @@ implement {
arguments = "integer",
actions = function(n)
-- we just hyphenate (as we pass a hpack) .. a bit too much casting but ...
- local l = languages.hyphenators.handler(tonode(checkedlist(n)))
+ local l = languages.hyphenators.handler(checkedlist(n))
report_hyphenation("show: %s",listtoutf(l,false,true))
end
}
@@ -200,7 +198,7 @@ local function applytowords(current,doaction,noaction,nested)
local id = getid(current)
if id == glue_code then
if start then
- doaction(tonode(copy_list(start,current)))
+ doaction(tonode(copylist(start,current)))
start = nil
end
noaction(tonode(copy_node(current)))
@@ -214,7 +212,7 @@ local function applytowords(current,doaction,noaction,nested)
current = getnext(current)
end
if start then
- doaction(tonode(copy_list(start)))
+ doaction(tonode(copylist(start)))
end
end
@@ -348,7 +346,7 @@ implement {
else
tail = prev
end
- flush_node(temp)
+ flushnode(temp)
end
-- done
setnext(tail)
@@ -430,7 +428,7 @@ local function setboxtonaturalwd(n)
local old = takebox(n)
local new = hpack(getlist(old))
setlist(old,nil)
- flush_node(old)
+ flushnode(old)
setbox(n,new)
end
@@ -482,20 +480,20 @@ end
do
- local nuts = nodes.nuts
- local tonode = nuts.tonode
- local takebox = nuts.takebox
- local flush_list = nuts.flush_list
- local copy_list = nuts.copy_list
- local getwhd = nuts.getwhd
- local setbox = nuts.setbox
- local new_hlist = nuts.pool.hlist
-
- local boxes = { }
- nodes.boxes = boxes
- local cache = table.setmetatableindex("table")
- local report = logs.reporter("boxes","cache")
- local trace = false
+ local nuts = nodes.nuts
+ local tonode = nuts.tonode
+ local takebox = nuts.takebox
+ local flushlist = nuts.flushlist
+ local copylist = nuts.copylist
+ local getwhd = nuts.getwhd
+ local setbox = nuts.setbox
+ local new_hlist = nuts.pool.hlist
+
+ local boxes = { }
+ nodes.boxes = boxes
+ local cache = table.setmetatableindex("table")
+ local report = logs.reporter("boxes","cache")
+ local trace = false
trackers.register("nodes.boxes",function(v) trace = v end)
@@ -528,7 +526,7 @@ do
if not b then
-- do nothing, maybe trace
elseif copy then
- b = copy_list(b)
+ b = copylist(b)
else
c[name] = false
end
@@ -545,13 +543,13 @@ do
local c = cache[category]
local b = takebox(box)
if b then
- flush_list(b)
+ flushlist(b)
end
local b = c[name]
if not b then
-- do nothing, maybe trace
elseif copy then
- b = copy_list(b)
+ b = copylist(b)
else
c[name] = false
end
@@ -577,7 +575,7 @@ do
if name and name ~= "" then
local b = c[name]
if b then
- flush_list(b)
+ flushlist(b)
c[name] = false
end
if trace then
@@ -586,7 +584,7 @@ do
else
for k, b in next, c do
if b then
- flush_list(b)
+ flushlist(b)
end
end
cache[category] = { }
@@ -697,7 +695,7 @@ local function stripglue(list)
if first and first ~= list then
-- we have discardables
setsplit(getprev(first),first)
- flush_list(list)
+ flushlist(list)
list = first
done = true
end
@@ -714,7 +712,7 @@ local function stripglue(list)
end
if last ~= tail then
-- we have discardables
- flush_list(getnext(last))
+ flushlist(getnext(last))
setnext(last)
done = true
end
@@ -767,7 +765,7 @@ local function limitate(t) -- don't pack the result !
else
maxleft = maxleft - swidth
end
- for n in traverse_id(glue_code,list) do
+ for n in traverseid(glue_code,list) do
local width = getdimensions(list,n)
if width > maxleft then
if not last then
@@ -779,7 +777,7 @@ local function limitate(t) -- don't pack the result !
end
end
if last and maxright > 0 then
- for n in traverse_id(glue_code,last) do
+ for n in traverseid(glue_code,last) do
local width = getdimensions(n)
if width < maxright then
first = n
@@ -808,7 +806,7 @@ local function limitate(t) -- don't pack the result !
end
setlink(last,sentinel)
setprev(rest)
- flush_list(rest)
+ flushlist(rest)
end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/symb-imp-was.mkiv b/Master/texmf-dist/tex/context/base/mkiv/symb-imp-was.mkiv
new file mode 100644
index 00000000000..424e60b653f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/symb-imp-was.mkiv
@@ -0,0 +1,206 @@
+%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 Converted to \MKIV\ by Hans but not yet complete.
+
+\unprotect
+
+\definefontsynonym [WaldiSymbol] [wasy10]
+\definefontsynonym [WaldiSymbolBold] [wasyb10]
+
+% \def\wasy@over#1#2{{\setbox0\hbox{$#2$}\hbox to \wd0{\hss$#1$\hss}\kern-\wd0\box0}}
+
+\def\WaldiSymbol {\getnamedglyphdirect{WaldiSymbol}} % #1
+\def\WaldiSymbol#1{\getglyph{WaldiSymbol}{\fontchar{#1}}}
+
+% general symbols
+
+\startsymbolset [wasy general]
+ \definesymbol [male] [\WaldiSymbol{male}]
+ \definesymbol [female] [\WaldiSymbol{female}]
+ \definesymbol [currency] [\WaldiSymbol{currency}]
+ \definesymbol [cent] [\WaldiSymbol{cent}]
+ \definesymbol [lozenge] [\WaldiSymbol{lozenge}]
+ \definesymbol [kreuz] [\WaldiSymbol{kreuz}]
+ \definesymbol [smiley] [\WaldiSymbol{smiley}]
+ \definesymbol [blacksmiley] [\WaldiSymbol{blacksmil}]
+ \definesymbol [frownie] [\WaldiSymbol{frownie}]
+ \definesymbol [sun] [\WaldiSymbol{sun}]
+ \definesymbol [checked] [\WaldiSymbol{checked}]
+ \definesymbol [brokenvert] [\WaldiSymbol{brokenver}]
+ \definesymbol [diameter] [\WaldiSymbol{diameter}]
+ \definesymbol [invdiameter] [\WaldiSymbol{invdiamet}]
+ \definesymbol [phone] [\WaldiSymbol{phone}]
+ \definesymbol [recorder] [\WaldiSymbol{recorder}]
+ \definesymbol [clock] [\WaldiSymbol{clock}]
+ \definesymbol [permil] [\WaldiSymbol{permil}]
+ \definesymbol [bell] [\WaldiSymbol{bell}]
+ \definesymbol [ataribox] [\WaldiSymbol{ataribox}]
+ \definesymbol [pointer] [\WaldiSymbol{pointer}]
+ \definesymbol [lightning] [\WaldiSymbol{lightning}]
+ \definesymbol [agemO] [\WaldiSymbol{agemO}]
+\stopsymbolset
+
+\startsymbolset [wasy music]
+ \definesymbol [eighthnote] [\WaldiSymbol{eighthnote}]
+ \definesymbol [quarternote] [\WaldiSymbol{quarternote}]
+ \definesymbol [halfnote] [\WaldiSymbol{halfnote}]
+ \definesymbol [fullnote] [\WaldiSymbol{fullnote}]
+ \definesymbol [twonotes] [\WaldiSymbol{twonotes}]
+\stopsymbolset
+
+\startsymbolset [wasy astronomy]
+ \definesymbol [ascnode] [\WaldiSymbol{ascnode}]
+ \definesymbol [descnode] [\WaldiSymbol{descnode}]
+ \definesymbol [astrosun] [\WaldiSymbol{astrosun}]
+ \definesymbol [sun] [\WaldiSymbol{sun}]
+ \definesymbol [newmoon] [\WaldiSymbol{newmoon}]
+ \definesymbol [fullmoon] [\WaldiSymbol{fullmoon}]
+ \definesymbol [rightmoon] [\WaldiSymbol{rightmoon}]
+ \definesymbol [leftmoon] [\WaldiSymbol{leftmoon}]
+ \definesymbol [vernal] [\WaldiSymbol{vernal}]
+ \definesymbol [mercury] [\WaldiSymbol{mercury}]
+ \definesymbol [mars] [\WaldiSymbol{mars}]
+ \definesymbol [saturn] [\WaldiSymbol{saturn}]
+ \definesymbol [neptune] [\WaldiSymbol{neptune}]
+ \definesymbol [earth] [\WaldiSymbol{earth}]
+ \definesymbol [venus] [\WaldiSymbol{venus}]
+ \definesymbol [jupiter] [\WaldiSymbol{jupiter}]
+ \definesymbol [uranus] [\WaldiSymbol{uranus}]
+ \definesymbol [pluto] [\WaldiSymbol{pluto}]
+\stopsymbolset
+
+\startsymbolset [wasy astrology]
+ \definesymbol [conjunction] [\WaldiSymbol{conjunction}]
+ \definesymbol [opposition] [\WaldiSymbol{opposition}]
+ \definesymbol [aries] [\WaldiSymbol{aries}]
+ \definesymbol [libra] [\WaldiSymbol{libra}]
+ \definesymbol [taurus] [\WaldiSymbol{taurus}]
+ \definesymbol [scorpio] [\WaldiSymbol{scorpio}]
+ \definesymbol [gemini] [\WaldiSymbol{gemini}]
+ \definesymbol [sagittarius] [\WaldiSymbol{sagittarius}]
+ \definesymbol [cancer] [\WaldiSymbol{cancer}]
+ \definesymbol [capricornus] [\WaldiSymbol{capricornus}]
+ \definesymbol [leo] [\WaldiSymbol{leo}]
+ \definesymbol [aquarius] [\WaldiSymbol{aquarius}]
+ \definesymbol [virgo] [\WaldiSymbol{virgo}]
+ \definesymbol [pisces] [\WaldiSymbol{pisces}]
+\stopsymbolset
+
+\startsymbolset [wasy geometry]
+ \definesymbol [fivestar] [\WaldiSymbol{fivestar}] % HHR additional
+ \definesymbol [hexstar] [\WaldiSymbol{hexstar}]
+ \definesymbol [varhexstar] [\WaldiSymbol{varhexstar}]
+ \definesymbol [davidsstar] [\WaldiSymbol{davidsstar}]
+ \definesymbol [Circle] [\WaldiSymbol{Circle}]
+ \definesymbol [CIRCLE] [\WaldiSymbol{CIRCLE}]
+ \definesymbol [Leftcircle] [\WaldiSymbol{Leftcircle}]
+ \definesymbol [LEFTCIRCLE] [\WaldiSymbol{LEFTCIRCLE}]
+ \definesymbol [Rightcircle] [\WaldiSymbol{Rightcircle}]
+ \definesymbol [RIGHTCIRCLE] [\WaldiSymbol{RIGHTCIRCLE}]
+% \definesymbol [LEFTcircle] [\dontleavehmode\hbox to \zeropoint{\WaldiSymbol {LEFTCIRCLE}\hss}\WaldiSymbol{Circle}]
+% \definesymbol [RIGHTcircle] [\dontleavehmode\hbox to \zeropoint{\WaldiSymbol{RIGHTCIRCLE}\hss}\WaldiSymbol{Circle}]
+ \definesymbol [LEFTarrow] [\WaldiSymbol{LEFTarrow}]
+ \definesymbol [RIGHTarrow] [\WaldiSymbol{RIGHTarrow}]
+ \definesymbol [UParrow] [\WaldiSymbol{UParrow}]
+ \definesymbol [DOWNarrow] [\WaldiSymbol{DOWNarrow}]
+ \definesymbol [Box] [\WaldiSymbol{Box}]
+ \definesymbol [APLbox] [\WaldiSymbol{APLbox}]
+ \definesymbol [XBox] [\WaldiSymbol{XBox}]
+ \definesymbol [Bowtie] [\WaldiSymbol{Bowtie}]
+ \definesymbol [Diamond] [\WaldiSymbol{Diamond}]
+ \definesymbol [octagon] [\WaldiSymbol{octagon}]
+ \definesymbol [hexagon] [\WaldiSymbol{hexagon}]
+ \definesymbol [varhexagon] [\WaldiSymbol{varhexagon}]
+ \definesymbol [pentagon] [\WaldiSymbol{pentagon}]
+% \definesymbol [pentastar] [\dontleavehmode\hbox to \zeropoint{\WaldiSymbol{pentagon}\hss}\lower.04em\hbox{\WaldiSymbol{fivestar}}]
+\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
+
+\protect
+
+\continueifinputfile{symb-imp-was.mkiv}
+
+\usemodule[article-basic]
+
+\starttext
+
+\starttitle[title=Regular]
+
+ \startsubject[title={wasy general}] \showsymbolset[wasy general] \stopsubject
+ \startsubject[title={wasy music}] \showsymbolset[wasy music] \stopsubject
+ \startsubject[title={wasy astronomy}] \showsymbolset[wasy astronomy] \stopsubject
+ \startsubject[title={wasy astrology}] \showsymbolset[wasy astrology] \stopsubject
+ \startsubject[title={wasy geometry}] \showsymbolset[wasy geometry] \stopsubject
+
+\stoptitle
+
+\starttitle[title=Bold]
+
+ \startsubject[title={wasy general}] \start \bf \showsymbolset[wasy general] \stop \stopsubject
+ \startsubject[title={wasy music}] \start \bf \showsymbolset[wasy music] \stop \stopsubject
+ \startsubject[title={wasy astronomy}] \start \bf \showsymbolset[wasy astronomy] \stop \stopsubject
+ \startsubject[title={wasy astrology}] \start \bf \showsymbolset[wasy astrology] \stop \stopsubject
+ \startsubject[title={wasy geometry}] \start \bf \showsymbolset[wasy geometry] \stop \stopsubject
+
+\stoptitle
+
+
+% \startsubject[title={wasy physics}] \showsymbolset[wasy physics] \stopsubject
+% \startsubject[title={wasy apl}] \showsymbolset[wasy apl] \stopsubject
+
+\stoptext
+
diff --git a/Master/texmf-dist/tex/context/base/mkiv/syst-aux.mkiv b/Master/texmf-dist/tex/context/base/mkiv/syst-aux.mkiv
index 194f1de2cb1..44668dcc98d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/syst-aux.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/syst-aux.mkiv
@@ -1470,10 +1470,20 @@
% replaces prev
+% \protected\def\syst_helpers_do_if_in_string_else#1#2% ##2 can be {abc}
+% {\expandafter\def\expandafter\syst_helpers_do_do_if_in_string_else
+% \expandafter##\expandafter1#1##2##3^^^^0004{\unless\if##2@}% expand #1 here
+% \expandafter\syst_helpers_do_do_if_in_string_else\normalexpanded{#2#1}@@^^^^0004} % expand #2 here
+
\protected\def\syst_helpers_do_if_in_string_else#1#2% ##2 can be {abc}
{\expandafter\def\expandafter\syst_helpers_do_do_if_in_string_else
- \expandafter##\expandafter1#1##2##3^^^^0004{\unless\if##2@}% expand #1 here
- \expandafter\syst_helpers_do_do_if_in_string_else\normalexpanded{#2#1}@@^^^^0004} % expand #2 here
+ \expandafter##\expandafter1#1##2##3^^^^0004{\unless\ifx##2^^^^0003}% expand #1 here
+ \expandafter\syst_helpers_do_do_if_in_string_else\normalexpanded{#2#1}^^^^0003^^^^0003^^^^0004} % expand #2 here
+
+% \protected\def\syst_helpers_do_if_in_string_else#1#2% ##2 can be {abc}
+% {\normalexpanded{\def\noexpand\syst_helpers_do_do_if_in_string_else
+% ##1#1##2##3}^^^^0004{\unless\ifx##2^^^^0003}% expand #1 here
+% \normalexpanded{\noexpand\syst_helpers_do_do_if_in_string_else#2#1}^^^^0003^^^^0003^^^^0004} % expand #2 here
%D The next alternative proved to be upto twice as fast on tasks like checking
%D reserved words in pretty verbatim typesetting! This is mainly due to the fact
@@ -1486,10 +1496,15 @@
%D Where \type {\doifinstringelse} does as much expansion as possible, the latter
%D alternative does minimal (one level) expansion.
+% \protected\def\syst_helpers_do_if_in_csname_else#1#2%
+% {\def\syst_helpers_do_do_if_in_csname_else##1#1##2##3^^^^0004%
+% {\unless\if##2@}%
+% \expandafter\syst_helpers_do_do_if_in_csname_else#2#1@@^^^^0004}
+
\protected\def\syst_helpers_do_if_in_csname_else#1#2%
{\def\syst_helpers_do_do_if_in_csname_else##1#1##2##3^^^^0004%
- {\unless\if##2@}%
- \expandafter\syst_helpers_do_do_if_in_csname_else#2#1@@^^^^0004}
+ {\unless\ifx##2^^^^0003}%
+ \expandafter\syst_helpers_do_do_if_in_csname_else#2#1^^^^0003^^^^0003^^^^0004}
\protected\def\doifelseincsname#1#2%
{\normalexpanded{\syst_helpers_do_if_in_csname_else{#1}}{#2}%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/syst-con.lua b/Master/texmf-dist/tex/context/base/mkiv/syst-con.lua
index 6e998bdfd5e..6a11fa8d3c6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/syst-con.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/syst-con.lua
@@ -35,7 +35,7 @@ local f_uchexnumber = formatters["%X"]
local f_lchexnumbers = formatters["%02x"]
local f_uchexnumbers = formatters["%02X"]
local f_octnumber = formatters["%03o"]
-local nicenumber = formatters["%0.6F"]
+local nicenumber = formatters["%0.6F"] -- or N
local lchexnumber = function(n) if n < 0 then n = 0x100000000 + n end return f_lchexnumber (n) end
local uchexnumber = function(n) if n < 0 then n = 0x100000000 + n end return f_uchexnumber (n) end
@@ -74,7 +74,7 @@ implement { name = "tand", actions = { math.tand, nicenumber, context }, argumen
function commands.format(fmt,...) context((gsub(fmt,"@","%%")),...) end
implement {
- name = "formatone",
+ name = "formatone", -- used as such so no name change here
public = true,
protected = true,
arguments = "2 strings",
diff --git a/Master/texmf-dist/tex/context/base/mkiv/syst-ini.mkiv b/Master/texmf-dist/tex/context/base/mkiv/syst-ini.mkiv
index aafbc787e5e..ae1978eb6d7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/syst-ini.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/syst-ini.mkiv
@@ -589,7 +589,7 @@
\protected\def\defUmathbotaccent #1#2#3#4{\global\instance\protected\def#1{\Umathbotaccent "#2 "#3 "#4 }}
\protected\def\defUdelimiterover #1#2#3#4{\global\instance\protected\def#1{\Udelimiterover "#2 "#3 }}
\protected\def\defUdelimiterunder #1#2#3#4{\global\instance\protected\def#1{\Udelimiterunder "#2 "#3 }}
-\protected\def\defUdelimiter #1#2#3#4{\global\instance\protected\def#1{\Udelimiter "#2 "#2 "#4 }}
+\protected\def\defUdelimiter #1#2#3#4{\global\instance\protected\def#1{\Udelimiter "#2 "#3 "#4 }}
\protected\def\defUradical #1#2#3{\global\instance\protected\def#1{\Uradical "#2 "#3 }}
\protected\def\defUroot #1#2#3{\global\instance\protected\def#1{\Uroot "#2 "#3 }}
\protected\def\defUmathchar #1#2#3#4{\global\instance\Umathchardef #1 "#2 "#3 "#4 }
@@ -1240,4 +1240,25 @@
\let\nexttoken\relax
+%D We need to disable this feature (comes from pdftex) because it not only messes up
+%D the nested content and wrappers (like in the page builder) but also is rather
+%D confusing wrt grouping. In \CONTEXT\ we don't redefine \type {\par} anyway, so
+%D best not expose this feature.
+
+\ifdefined\partokenname
+ \let\partokencontext\relax
+ \newcount\partokencontext
+ \let\partokenname\gobbleoneargument
+\fi
+
+%D In case we load \LMTX\ code.
+
+\ifdefined\autoparagraphmode \else
+ \newcount\autoparagraphmode
+\fi
+
+\let\advanceby \advance
+\let\multiplyby\multiply
+\let\divideby \divide
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/syst-lua.lua b/Master/texmf-dist/tex/context/base/mkiv/syst-lua.lua
index 085f75eca92..fa980aa7682 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/syst-lua.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/syst-lua.lua
@@ -17,18 +17,15 @@ local xcomplex = xcomplex or { }
local cmd = tokens.commands
-local scan_next = token.scan_next or token.get_next
-local scan_cmdchr = token.scan_cmdchr_expanded
+local scannext = token.scan_next or token.get_next
-local get_command = token.get_command
-local get_mode = token.get_mode
-local get_index = token.get_index
-local get_csname = token.get_csname
-local get_macro = token.get_macro
-
-local put_next = token.put_next
-
-local scan_token = token.scan_token or token.get_token
+local getcommand = token.get_command
+local getmode = token.get_mode
+local getindex = token.get_index
+local getcsname = token.get_csname
+local getmacro = token.get_macro
+local putnext = token.put_next
+local scantoken = token.scan_token or token.get_token
local getdimen = tex.getdimen
local getglue = tex.getglue
@@ -194,7 +191,9 @@ implement {
do
- local result = { "return " }
+ local result = CONTEXTLMTXMODE > 0 and
+ { "local xmath = xmath local xcomplex = xcomplex return " }
+ or { "local xmath = math local xcomplex = { } return " }
local word = { }
local r = 1
local w = 0
@@ -209,12 +208,12 @@ do
local w = 0
local r = 1
while true do
- local t = scan_next()
- local n = get_command(t)
+ local t = scannext()
+ local n = getcommand(t)
local c = cmd[n]
-- todo, helper: returns number
if c == "letter" then
- w = w + 1 ; word[w] = utfchar(get_mode(t))
+ w = w + 1 ; word[w] = utfchar(getmode(t))
else
if w > 0 then
local s = concat(word,"",1,w)
@@ -233,23 +232,23 @@ do
w = 0
end
if c == "other_char" then
- r = r + 1 ; result[r] = utfchar(get_mode(t))
+ r = r + 1 ; result[r] = utfchar(getmode(t))
elseif c == "spacer" then
-- r = r + 1 ; result[r] = " "
elseif c == "relax" then
break
elseif c == "assign_int" then
- r = r + 1 ; result[r] = getcount(get_index(t))
+ r = r + 1 ; result[r] = getcount(getindex(t))
elseif c == "assign_dimen" then
- r = r + 1 ; result[r] = getdimen(get_index(t))
+ r = r + 1 ; result[r] = getdimen(getindex(t))
elseif c == "assign_glue" then
- r = r + 1 ; result[r] = getglue(get_index(t))
+ r = r + 1 ; result[r] = getglue(getindex(t))
elseif c == "assign_toks" then
- r = r + 1 ; result[r] = gettoks(get_index(t))
+ r = r + 1 ; result[r] = gettoks(getindex(t))
elseif c == "char_given" or c == "math_given" or c == "xmath_given" then
- r = r + 1 ; result[r] = get_mode(t)
+ r = r + 1 ; result[r] = getmode(t)
elseif c == "last_item" then
- local n = get_csname(t)
+ local n = getcsname(t)
if n then
local s = gettex(n)
if s then
@@ -261,9 +260,9 @@ do
unexpected(c)
end
elseif c == "call" then
- local n = get_csname(t)
+ local n = getcsname(t)
if n then
- local s = get_macro(n)
+ local s = getmacro(n)
if s then
r = r + 1 ; result[r] = s
else
@@ -273,8 +272,8 @@ do
unexpected(c)
end
elseif c == "the" or c == "convert" or c == "lua_expandable_call" then
- put_next(t)
- scan_token() -- expands
+ putnext(t)
+ scantoken() -- expands
else
unexpected(c)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/syst-lua.mkiv b/Master/texmf-dist/tex/context/base/mkiv/syst-lua.mkiv
index f0902eaf58b..327d1d407f6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/syst-lua.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/syst-lua.mkiv
@@ -73,8 +73,8 @@
%D We can omit the tex.ctxcatcodes here as nowadays we seldom change the regime at
%D the \TEX\ end:
-%def\luaexpr#1{\ctxlua{context (tostring(#1))}} % more efficient:
-\def\luaexpr#1{\ctxlua{tex.print(tostring(#1))}} % no use is shortcutting has to be compiled
+%def\luaexpr#1{\ctxlua{context (tostring(#1))}} % more efficient:
+\def\luaexpr#1{\ctxlua{tex.print(tostring(#1))}} % no use in shortcutting has to be compiled
%D But as we only use write 16 we could as well do all in \LUA\ and ignore the rest.
%D Okay, we still can do writes here but only when not blocked.
diff --git a/Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.lua b/Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.lua
index c9dd1e4e519..32770141bac 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.lua
@@ -73,9 +73,9 @@ local setlink = nuts.setlink
local setdirection = nuts.setdirection
local setshift = nuts.setshift
-local copy_node_list = nuts.copy_list
-local hpack_node_list = nuts.hpack
-local flush_node_list = nuts.flush_list
+local copynodelist = nuts.copylist
+local hpacknodelist = nuts.hpack
+local flushnodelist = nuts.flushlist
local takebox = nuts.takebox
local nodepool = nuts.pool
@@ -273,7 +273,7 @@ function xtables.set_reflow_width()
local tb = getbox("b_tabl_x")
local drc = row[c]
--
- drc.list = true -- we don't need to keep the content around as we're in trial mode (no: copy_node_list(tb))
+ drc.list = true -- we don't need to keep the content around as we're in trial mode (no: copynodelist(tb))
--
local width, height, depth = getwhd(tb)
--
@@ -561,7 +561,7 @@ function xtables.reflow_width()
for c=1,nofcolumns do
local drc = row[c]
if drc.list then
- -- flush_node_list(drc.list)
+ -- flushnodelist(drc.list)
drc.list = false
end
end
@@ -853,7 +853,7 @@ function xtables.construct()
if list then
local w, h, d = getwhd(list)
setshift(list,h+d)
- -- list = hpack_node_list(list) -- is somehow needed
+ -- list = hpacknodelist(list) -- is somehow needed
-- setwhd(list,0,0,0)
-- faster:
local h = new_hlist(list)
@@ -900,9 +900,9 @@ function xtables.construct()
end
nofr = nofr + 1
local rp = rowproperties[r]
- -- we have a direction issue here but hpack_node_list(list,0,"exactly") cannot be used
+ -- we have a direction issue here but hpacknodelist(list,0,"exactly") cannot be used
-- due to the fact that we need the width
- local hbox = hpack_node_list(list)
+ local hbox = hpacknodelist(list)
setdirection(hbox,lefttoright_code)
result[nofr] = {
hbox,
@@ -949,7 +949,7 @@ end
local function inject(row,copy,package)
local list = row[1]
if copy then
- row[1] = copy_node_list(list)
+ row[1] = copynodelist(list)
end
if package then
ctx_beginvbox()
@@ -1186,7 +1186,7 @@ end
function xtables.cleanup()
for mode, result in next, data.results do
for _, r in next, result do
- flush_node_list(r[1])
+ flushnodelist(r[1])
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.mkvi b/Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.mkvi
index c5042a405bd..c340efdfad0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.mkvi
+++ b/Master/texmf-dist/tex/context/base/mkiv/tabl-xtb.mkvi
@@ -267,7 +267,7 @@
}% else whitespace mess
\def\tabl_x_get_buffer
- {\clf_gettexbuffer{\tabl_x_current_buffer}}
+ {\clf_getbuffertex{\tabl_x_current_buffer}}
\let\tabl_x_start_row_yes \relax
\let\tabl_x_start_row_nop \relax
@@ -392,11 +392,24 @@
% in text flow: headers and footers get repeated
-\setvalue{\??xtableflushsplit\v!repeat}%
+% \setvalue{\??xtableflushsplit\v!repeat}%
+% {\doloop
+% {\clf_x_table_flush
+% method {\v!split}%
+% height \ifdim\pagegoal=\maxdimen\textheight\else\pagegoal\fi
+% \relax
+% \ifcase\c_tabl_x_state
+% \exitloop
+% \else
+% \page
+% \fi}}
+
+\defcsname\??xtableflushsplit\v!repeat\endcsname
{\doloop
- {\clf_x_table_flush
+ {\testpage[5]% for now hard coded, just as the \lineheight below, see mail end of april 2021
+ \clf_x_table_flush
method {\v!split}%
- height \ifdim\pagegoal=\maxdimen\textheight\else\pagegoal\fi
+ height \ifdim\pagegoal=\maxdimen\textheight\else\dimexpr\pagegoal-\pagetotal-\lineheight\relax\fi
\relax
\ifcase\c_tabl_x_state
\exitloop
diff --git a/Master/texmf-dist/tex/context/base/mkiv/task-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/task-ini.lua
index 3e78fb2f9c8..3697a4086e7 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/task-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/task-ini.lua
@@ -65,13 +65,8 @@ appendaction("processors", "lists", "typesetters.kerns.handler",
appendaction("processors", "lists", "typesetters.digits.handler", nil, "nut", "disabled" )
appendaction("processors", "lists", "typesetters.italics.handler", nil, "nut", "disabled" )
appendaction("processors", "lists", "languages.visualizediscretionaries", nil, "nut", "disabled" )
-
-if CONTEXTLMTXMODE == 0 then
-
appendaction("processors", "lists", "nodes.handlers.migrate", nil, "nut", "disabled" )
-end
-
appendaction("processors", "after", "typesetters.marksuspects", nil, "nut", "disabled" )
appendaction("shipouts", "normalizers", "nodes.handlers.cleanuppage", nil, "nut", "production")
@@ -120,16 +115,14 @@ appendaction("math", "normalizers", "noads.handlers.italics",
appendaction("math", "normalizers", "noads.handlers.kernpairs", nil, "nonut", "disabled" )
appendaction("math", "normalizers", "noads.handlers.classes", nil, "nonut", "disabled" )
-appendaction("math", "builders", "builders.kernel.mlist_to_hlist", nil, "nut", "enabled" ) -- mandate
+appendaction("math", "builders", "builders.kernel.mlisttohlist", nil, "nut", "enabled" ) -- mandate
appendaction("math", "builders", "typesetters.directions.processmath", nil, "nut", "disabled" )
appendaction("math", "builders", "noads.handlers.makeup", nil, "nonut", "disabled" )
appendaction("math", "builders", "noads.handlers.align", nil, "nonut", "enabled" )
-if CONTEXTLMTXMODE == 0 then
-
appendaction("finalizers", "lists", "typesetters.paragraphs.normalize", nil, "nut", "enabled" ) -- "disabled"
-
-end
+appendaction("finalizers", "lists", "nodes.handlers.showhyphenation", nil, "nut", "disabled" )
+appendaction("finalizers", "lists", "nodes.handlers.visualizehyphenation", nil, "nut", "disabled" )
appendaction("finalizers", "lists", "typesetters.margins.localhandler", nil, "nut", "disabled" )
appendaction("finalizers", "lists", "builders.paragraphs.keeptogether", nil, "nut", "disabled" )
@@ -137,9 +130,11 @@ appendaction("finalizers", "fonts", "builders.paragraphs.solutions.split
appendaction("finalizers", "lists", "builders.paragraphs.tag", nil, "nut", "disabled" )
appendaction("finalizers", "lists", "nodes.linefillers.handler", nil, "nut", "disabled" )
+
appendaction("contributers", "normalizers", "nodes.handlers.flattenline", nil, "nut", "disabled" )
appendaction("contributers", "normalizers", "nodes.handlers.textbackgrounds", nil, "nut", "disabled" )
+
appendaction("vboxbuilders", "normalizers", "nodes.handlers.backgroundsvbox", nil, "nut", "disabled" )
------------("vboxbuilders", "normalizers", "typesetters.margins.localhandler", nil, "nut", "disabled" )
appendaction("vboxbuilders", "normalizers", "builders.vspacing.vboxhandler", nil, "nut", "enabled" )
diff --git a/Master/texmf-dist/tex/context/base/mkiv/toks-ini.lua b/Master/texmf-dist/tex/context/base/mkiv/toks-ini.lua
index 7120b47c3cd..96bf7d7b90c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/toks-ini.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/toks-ini.lua
@@ -22,49 +22,49 @@ local commands = token.commands()
tokens.commands = utilities.storage.allocate(table.swapped(commands,commands))
tokens.values = { }
-local scan_toks = token.scan_toks
-local scan_string = token.scan_string
-local scan_argument = token.scan_argument
-local scan_delimited = token.scan_delimited
-local scan_tokenlist = token.scan_tokenlist or scan_string
-local scan_integer = token.scan_integer or token.scan_int
-local scan_cardinal = token.scan_cardinal
-local scan_code = token.scan_code
-local scan_token_code = token.scan_token_code
-local scan_dimen = token.scan_dimen
-local scan_glue = token.scan_glue
-local scan_skip = token.scan_skip
-local scan_keyword = token.scan_keyword
-local scan_keyword_cs = token.scan_keyword_cs or scan_keyword
-local scan_token = token.scan_token
-local scan_box = token.scan_box
-local scan_word = token.scan_word
-local scan_letters = token.scan_letters or scan_word -- lmtx
-local scan_key = token.scan_key
-local scan_value = token.scan_value
-local scan_char = token.scan_char
-local scan_number = token.scan_number -- not defined
-local scan_csname = token.scan_csname
-local scan_real = token.scan_real
-local scan_float = token.scan_float
-local scan_luanumber = token.scan_luanumber or scan_float -- only lmtx
-local scan_luainteger = token.scan_luainteger or scan_integer -- only lmtx
-local scan_luacardinal = token.scan_luacardinal or scan_cardinal -- only lmtx
-
-local set_macro = token.set_macro
-local set_char = token.set_char
-local set_lua = token.set_lua
-
-local create_token = token.create
-local new_token = token.new
-local is_defined = token.is_defined
-local is_token = token.is_token
-
-tokens.new = new_token
-tokens.create = create_token
-tokens.istoken = is_token
-tokens.isdefined = is_defined
-tokens.defined = is_defined
+local scantoks = token.scan_toks
+local scanstring = token.scan_string
+local scanargument = token.scan_argument
+local scandelimited = token.scan_delimited
+local scantokenlist = token.scan_tokenlist or scanstring
+local scaninteger = token.scan_integer or token.scan_int
+local scancardinal = token.scan_cardinal
+local scancode = token.scan_code
+local scantokencode = token.scan_token_code
+local scandimen = token.scan_dimen
+local scanglue = token.scan_glue
+local scanskip = token.scan_skip
+local scankeyword = token.scan_keyword
+local scankeywordcs = token.scan_keyword_cs or scankeyword
+local scantoken = token.scan_token
+local scanbox = token.scan_box
+local scanword = token.scan_word
+local scanletters = token.scan_letters or scanword -- lmtx
+local scankey = token.scan_key
+local scanvalue = token.scan_value
+local scanchar = token.scan_char
+local scannumber = token.scan_number -- not defined
+local scancsname = token.scan_csname
+local scanreal = token.scan_real
+local scanfloat = token.scan_float
+local scanluanumber = token.scan_luanumber or scanfloat -- only lmtx
+local scanluainteger = token.scan_luainteger or scaninteger -- only lmtx
+local scanluacardinal = token.scan_luacardinal or scancardinal -- only lmtx
+
+local setmacro = token.set_macro
+local setchar = token.set_char
+local setlua = token.set_lua
+
+local createtoken = token.create
+local newtoken = token.new
+local isdefined = token.is_defined
+local istoken = token.is_token
+
+tokens.new = newtoken
+tokens.create = createtoken
+tokens.istoken = istoken
+tokens.isdefined = isdefined
+tokens.defined = isdefined
local bits = {
escape = 0x00000001, -- 2^00
@@ -98,10 +98,10 @@ tokens.bits = bits
-- words are space or \relax terminated and the trailing space is gobbled; a word
-- can contain any non-space letter/other (see archive for implementation in lua)
-if not scan_number then
+if not scannumber then
- scan_number = function(base)
- local s = scan_word()
+ scannumber = function(base)
+ local s = scanword()
if not s then
return nil
elseif base then
@@ -113,8 +113,8 @@ if not scan_number then
end
-local function scan_boolean()
- local kw = scan_word()
+local function scanboolean()
+ local kw = scanword()
if kw == "true" then
return true
elseif kw == "false" then
@@ -124,64 +124,64 @@ local function scan_boolean()
end
end
-local function scan_verbatim()
- return scan_argument(false)
+local function scanverbatim()
+ return scanargument(false)
end
-if not scan_box then
+if not scanbox then
- local scan_list = token.scan_list
- local put_next = token.put_next
+ local scanlist = token.scan_list
+ local putnext = token.put_next
- scan_box = function(s)
+ scanbox = function(s)
if s == "hbox" or s == "vbox" or s == "vtop" then
- put_next(create_token(s))
+ putnext(createtoken(s))
end
- return scan_list()
+ return scanlist()
end
- token.scan_box = scan_box
+ token.scanbox = scanbox
end
tokens.scanners = { -- these expand
- token = scan_token,
- toks = scan_toks,
- tokens = scan_toks,
- box = scan_box,
- hbox = function() return scan_box("hbox") end,
- vbox = function() return scan_box("vbox") end,
- vtop = function() return scan_box("vtop") end,
- dimen = scan_dimen,
- dimension = scan_dimen,
- glue = scan_glue,
- gluevalues = function() return scan_glue(false,false,true) end,
- gluespec = scan_skip,
- integer = scan_integer,
- cardinal = scan_cardinal,
- real = scan_real,
- float = scan_float,
- luanumber = scan_luanumber,
- luainteger = scan_luainteger,
- luacardinal = scan_luacardinal,
- count = scan_integer,
- string = scan_string,
- argument = scan_argument,
- delimited = scan_delimited,
- tokenlist = scan_tokenlist,
- verbatim = scan_verbatim, -- detokenize
- code = scan_code,
- tokencode = scan_token_code,
- word = scan_word,
- letters = scan_letters,
- key = scan_key,
- value = scan_value,
- char = scan_char,
- number = scan_number,
- boolean = scan_boolean,
- keyword = scan_keyword,
- keywordcs = scan_keyword_cs,
- csname = scan_csname,
+ token = scantoken,
+ toks = scantoks,
+ tokens = scantoks,
+ box = scanbox,
+ hbox = function() return scanbox("hbox") end,
+ vbox = function() return scanbox("vbox") end,
+ vtop = function() return scanbox("vtop") end,
+ dimen = scandimen,
+ dimension = scandimen,
+ glue = scanglue,
+ gluevalues = function() return scanglue(false,false,true) end,
+ gluespec = scanskip,
+ integer = scaninteger,
+ cardinal = scancardinal,
+ real = scanreal,
+ float = scanfloat,
+ luanumber = scanluanumber,
+ luainteger = scanluainteger,
+ luacardinal = scanluacardinal,
+ count = scaninteger,
+ string = scanstring,
+ argument = scanargument,
+ delimited = scandelimited,
+ tokenlist = scantokenlist,
+ verbatim = scanverbatim, -- detokenize
+ code = scancode,
+ tokencode = scantokencode,
+ word = scanword,
+ letters = scanletters,
+ key = scankey,
+ value = scanvalue,
+ char = scanchar,
+ number = scannumber,
+ boolean = scanboolean,
+ keyword = scankeyword,
+ keywordcs = scankeywordcs,
+ csname = scancsname,
next = token.scan_next,
nextexpanded = token.scan_next_expanded,
@@ -214,9 +214,9 @@ tokens.getters = { -- these don't expand
}
tokens.setters = {
- macro = set_macro,
- char = set_char,
- lua = set_lua,
+ macro = setmacro,
+ char = setchar,
+ lua = setlua,
count = tex.setcount,
dimen = tex.setdimen,
skip = tex.setglue,
@@ -226,7 +226,7 @@ tokens.setters = {
box = tex.setbox,
}
-token.accessors = {
+tokens.accessors = {
command = token.get_command,
cmd = token.get_command,
cmdname = token.get_cmdname,
@@ -243,33 +243,12 @@ token.accessors = {
range = token.get_range,
}
--- static int run_scan_token(lua_State * L)
--- {
--- saved_tex_scanner texstate;
--- save_tex_scanner(texstate);
--- get_x_token();
--- make_new_token(L, cur_cmd, cur_chr, cur_cs);
--- unsave_tex_scanner(texstate);
--- return 1;
--- }
---
--- static int run_get_future(lua_State * L)
--- {
--- /* saved_tex_scanner texstate; */
--- /* save_tex_scanner(texstate); */
--- get_token();
--- make_new_token(L, cur_cmd, cur_chr, cur_cs);
--- back_input();
--- /* unsave_tex_scanner(texstate); */
--- return 1;
--- }
-
if setinspector then
local simple = { letter = "letter", other_char = "other" }
local astable = function(t)
- if t and is_token(t) then
+ if t and istoken(t) then
local cmdname = t.cmdname
local simple = simple[cmdname]
if simple then
@@ -304,10 +283,10 @@ if setinspector then
end
tokens.cache = table.setmetatableindex(function(t,k)
- if not is_defined(k) then
- set_macro(k,"","global")
+ if not isdefined(k) then
+ setmacro(k,"","global")
end
- local v = create_token(k)
+ local v = createtoken(k)
t[k] = v
return v
end)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/trac-ctx.lua b/Master/texmf-dist/tex/context/base/mkiv/trac-ctx.lua
index a808778b316..f3243d39856 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/trac-ctx.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/trac-ctx.lua
@@ -66,9 +66,9 @@ implement {
}
implement {
- name = "installtextracker",
+ name = "installtextracker",
arguments = "3 strings",
- actions = function(tag,enable,disable)
+ actions = function(tag,enable,disable)
install(textrackers,trackers.register,tag,enable,disable)
end,
}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/trac-deb.lua b/Master/texmf-dist/tex/context/base/mkiv/trac-deb.lua
index 07865e4bf50..88d7e54c660 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/trac-deb.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/trac-deb.lua
@@ -191,9 +191,11 @@ function tracers.printerror(specification)
report_str(tracers.showlines(filename,linenumber,offset,tonumber(luaerrorline)))
report_nl()
end
- local errname = file.addsuffix(tex.jobname .. "-error","log")
if quitonerror then
- table.save(errname,specification)
+ local name = tex.jobname or ""
+ if name ~= "" then
+ table.save(name .. "-error.log",specification)
+ end
local help = specification.lasttexhelp
if help and #help > 0 then
report_nl()
diff --git a/Master/texmf-dist/tex/context/base/mkiv/trac-fil.lua b/Master/texmf-dist/tex/context/base/mkiv/trac-fil.lua
index f422c9f6b83..15aee6725c0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/trac-fil.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/trac-fil.lua
@@ -45,7 +45,7 @@ patterns.timestamp = timestamp
loggers = loggers or { }
-local timeformat = format("[%%s%s]",os.timezone(true))
+local timeformat = format("[%%s%s]",os.timezone())
local dateformat = "!%Y-%m-%d %H:%M:%S"
function loggers.makeline(t)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/trac-jus.lua b/Master/texmf-dist/tex/context/base/mkiv/trac-jus.lua
index aec1844ec5a..5f53b4c9941 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/trac-jus.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/trac-jus.lua
@@ -28,7 +28,7 @@ local findtail = nuts.tail
local nexthlist = nuts.traversers.hlist
local getdimensions = nuts.dimensions
-local copy_list = nuts.copy_list
+local copylist = nuts.copylist
local tracedrule = nodes.tracers.pool.nuts.rule
@@ -100,7 +100,7 @@ function checkers.handler(head)
setlist(current,rule)
elseif alignstate == 2 then
local lrule = new_hlist(tracedrule(-delta/2,naturalheight,naturaldepth,"trace:dy"))
- local rrule = copy_list(lrule)
+ local rrule = copylist(lrule)
setlink(lrule,list)
setlink(findtail(list),new_kern(delta/2),rrule)
setlist(current,lrule)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/trac-set.lua b/Master/texmf-dist/tex/context/base/mkiv/trac-set.lua
index 3974830fab0..0441f386b39 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/trac-set.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/trac-set.lua
@@ -165,6 +165,9 @@ local function register_setter(t,what,...)
end
local s = fnc -- else wrong reference
fnc = function(value) set(t,s,value) end
+ elseif typ == "table" then
+ functions.values = fnc
+ fnc = nil
elseif typ ~= "function" then
fnc = nil
end
@@ -216,35 +219,42 @@ local function list_setter(t) -- pattern
return user, system
end
-local function show_setter(t)
+local function show_setter(t,pattern)
local list = list_setter(t)
t.report()
for k=1,#list do
local name = list[k]
- local functions = t.data[name]
- if functions then
- local value = functions.value
- local default = functions.default
- local modules = #functions
- if default == nil then
- default = "unset"
- elseif type(default) == "table" then
- default = concat(default,"|")
- else
- default = tostring(default)
+ if not pattern or find(name,pattern) then
+ local functions = t.data[name]
+ if functions then
+ local value = functions.value
+ local default = functions.default
+ local values = functions.values
+ local modules = #functions
+ if default == nil then
+ default = "unset"
+ elseif type(default) == "table" then
+ default = concat(default,"|")
+ else
+ default = tostring(default)
+ end
+ if value == nil then
+ value = "unset"
+ elseif type(value) == "table" then
+ value = concat(value,"|")
+ else
+ value = tostring(value)
+ end
+ t.report(name)
+ t.report(" modules : %i",modules)
+ t.report(" default : %s",default)
+ t.report(" value : %s",value)
+ if values then
+ local v = { } for i=1,#values do v[i] = tostring(values[i]) end
+ t.report(" values : % t",v)
end
- if value == nil then
- value = "unset"
- elseif type(value) == "table" then
- value = concat(value,"|")
- else
- value = tostring(value)
+ t.report()
end
- t.report(name)
- t.report(" modules : %i",modules)
- t.report(" default : %s",default)
- t.report(" value : %s",value)
- t.report()
end
end
end
@@ -272,6 +282,11 @@ local function setter_value(setter,name)
return d and (d.value or d.default)
end
+local function setter_values(setter,name)
+ local d = setter.data[name]
+ return d and d.values
+end
+
local function new_setter(name) -- we could use foo:bar syntax (but not used that often)
local setter -- we need to access it in setter itself
setter = {
@@ -286,6 +301,7 @@ local function new_setter(name) -- we could use foo:bar syntax (but not used tha
show = function(...) show_setter (setter,...) end,
default = function(...) return setter_default (setter,...) end,
value = function(...) return setter_value (setter,...) end,
+ values = function(...) return setter_values (setter,...) end,
}
data[name] = setter
return setter
@@ -393,7 +409,7 @@ if texconfig then
-- this happens too late in ini mode but that is no problem
local function set(k,v)
- v = tonumber(v)
+ local v = tonumber(v)
if v then
texconfig[k] = v
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/trac-vis.lua b/Master/texmf-dist/tex/context/base/mkiv/trac-vis.lua
index fb5ef98d939..3bfbd1c76e2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/trac-vis.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/trac-vis.lua
@@ -70,14 +70,14 @@ local isglyph = nuts.isglyph
local hpack_nodes = nuts.hpack
local vpack_nodes = nuts.vpack
-local copy_list = nuts.copy_list
-local copy_node = nuts.copy_node
-local flush_node_list = nuts.flush_list
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local copylist = nuts.copylist
+local copy_node = nuts.copy
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local apply_to_nodes = nuts.apply
local find_tail = nuts.tail
-local effectiveglue = nuts.effective_glue
+local effectiveglue = nuts.effectiveglue
+local flushnodelist = nuts.flushlist
local hpack_string = nuts.typesetters.tohpack
@@ -500,7 +500,7 @@ local fontkern, italickern, marginkern, mathlistkern do
setattr(info,a_layer,layer)
f_cache[kern] = info
end
- head = insert_node_before(head,current,copy_list(info))
+ head = insertnodebefore(head,current,copylist(info))
return head, current
end
@@ -548,7 +548,7 @@ local glyphexpansion do
setattr(info,a_layer,l_expansion)
f_cache[extra] = info
end
- head = insert_node_before(head,current,copy_list(info))
+ head = insertnodebefore(head,current,copylist(info))
return head, current
end
return head, current
@@ -584,7 +584,7 @@ local kernexpansion do
setattr(info,a_layer,l_expansion)
f_cache[extra] = info
end
- head = insert_node_before(head,current,copy_list(info))
+ head = insertnodebefore(head,current,copylist(info))
return head, current
end
return head, current
@@ -621,7 +621,7 @@ local whatsit do
setattr(info,a_layer,l_whatsit)
w_cache[what] = info
end
- head, current = insert_node_after(head,current,copy_list(info))
+ head, current = insertnodeafter(head,current,copylist(info))
return head, current
end
@@ -694,7 +694,7 @@ local user do
setattr(info,a_layer,l_user)
u_cache[what] = info
end
- head, current = insert_node_after(head,current,copy_list(info))
+ head, current = insertnodeafter(head,current,copylist(info))
return head, current
end
@@ -733,7 +733,7 @@ local math do
setattr(info,a_layer,l_math)
m_cache[tag][skip] = info
end
- head, current = insert_node_after(head,current,copy_list(info))
+ head, current = insertnodeafter(head,current,copylist(info))
return head, current
end
@@ -791,7 +791,7 @@ local ruledbox do
end
-- we need to trigger the right mode (else sometimes no whatits)
local info = setlink(
- this and copy_list(this) or nil,
+ this and copylist(this) or nil,
(dp == 0 and outlinerule and outlinerule(wd,ht,dp,linewidth)) or userrule {
width = wd,
height = ht,
@@ -812,7 +812,7 @@ local ruledbox do
elseif trace_origin then
local size = 2*size
local origin = o_cache[size]
- origin = copy_list(origin)
+ origin = copylist(origin)
if getid(parent) == vlist_code then
setshift(origin,-shift)
info = setlink(current,new_kern(-size),origin,new_kern(-size-dp),info)
@@ -832,7 +832,7 @@ local ruledbox do
elseif trace_origin then
local size = 2*size
local origin = o_cache[size]
- origin = copy_list(origin)
+ origin = copylist(origin)
if getid(parent) == vlist_code then
info = setlink(current,new_kern(-wd-size-shift),origin,new_kern(-size+shift),info)
else
@@ -1012,11 +1012,11 @@ local ruledglue do
end
(vertical and g_cache_v or g_cache_h)[amount] = info
end
- info = copy_list(info)
+ info = copylist(info)
if vertical then
info = vpack_nodes(info)
end
- head, current = insert_node_before(head,current,info)
+ head, current = insertnodebefore(head,current,info)
return head, getnext(current)
end
@@ -1032,8 +1032,8 @@ local ruledglue do
-- info = sometext(amount,l_glue,c_space)
-- g_cache_h[amount] = info
-- end
- -- info = copy_list(info)
- -- head, current = insert_node_before(head,current,info)
+ -- info = copylist(info)
+ -- head, current = insertnodebefore(head,current,info)
-- return head, getnext(current)
-- else
-- return head, current
@@ -1061,8 +1061,8 @@ local ruledglue do
g_cache_x[width] = info
end
end
- info = copy_list(info)
- head, current = insert_node_before(head,current,info)
+ info = copylist(info)
+ head, current = insertnodebefore(head,current,info)
return head, getnext(current)
else
return head, current
@@ -1091,11 +1091,11 @@ local ruledkern do
end
cache[kern] = info
end
- info = copy_list(info)
+ info = copylist(info)
if vertical then
info = vpack_nodes(info)
end
- head, current = insert_node_before(head,current,info)
+ head, current = insertnodebefore(head,current,info)
return head, getnext(current)
end
@@ -1119,8 +1119,8 @@ local ruleditalic do
end
i_cache[kern] = info
end
- info = copy_list(info)
- head, current = insert_node_before(head,current,info)
+ info = copylist(info)
+ head, current = insertnodebefore(head,current,info)
return head, getnext(current)
end
@@ -1144,8 +1144,8 @@ local ruledmarginkern do
end
m_cache[kern] = info
end
- info = copy_list(info)
- head, current = insert_node_before(head,current,info)
+ info = copylist(info)
+ head, current = insertnodebefore(head,current,info)
return head, getnext(current)
end
@@ -1169,8 +1169,8 @@ local ruledmathlistkern do
end
l_cache[kern] = info
end
- info = copy_list(info)
- head, current = insert_node_before(head,current,info)
+ info = copylist(info)
+ head, current = insertnodebefore(head,current,info)
return head, getnext(current)
end
@@ -1192,7 +1192,7 @@ local ruleddiscretionary do
d = new_hlist(kern)
d_cache[true] = d
end
- insert_node_after(head,current,copy_list(d))
+ insertnodeafter(head,current,copylist(d))
return head, current
end
@@ -1223,13 +1223,13 @@ local ruledpenalty do
end
(vertical and p_cache_v or p_cache_h)[penalty] = info
end
- info = copy_list(info)
+ info = copylist(info)
if vertical then
info = vpack_nodes(info)
elseif raisepenalties then
setshift(info,-65536*4)
end
- head, current = insert_node_before(head,current,info)
+ head, current = insertnodebefore(head,current,info)
return head, getnext(current)
end
@@ -1503,7 +1503,7 @@ do
local function cleanup()
for tag, cache in next, caches do
for k, v in next, cache do
- flush_node_list(v)
+ flushnodelist(v)
end
end
cleanup = function()
diff --git a/Master/texmf-dist/tex/context/base/mkiv/type-set.mkiv b/Master/texmf-dist/tex/context/base/mkiv/type-set.mkiv
index 68cd939d769..c87129e9441 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/type-set.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/type-set.mkiv
@@ -59,81 +59,91 @@
\fi
-\definefilesynonym [type-imp-latin-modern.mkiv] [type-imp-latinmodern.mkiv]
-\definefilesynonym [type-imp-modern-latin.mkiv] [type-imp-modernlatin.mkiv]
-
-\definefilesynonym [type-imp-lucida.mkiv] [type-imp-lucida-typeone.mkiv]
-\definefilesynonym [type-imp-lucidaot.mkiv] [type-imp-lucida-opentype.mkiv]
-\definefilesynonym [type-imp-lucidadk.mkiv] [type-imp-lucida-opentype.mkiv]
-
-\definefilesynonym [type-imp-dejavu-condensed.mkiv] [type-imp-dejavu.mkiv]
-
-\definefilesynonym [type-imp-palatino.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-courier.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-avantgarde.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-helvetica.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-chancery.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-bookman.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-schoolbook.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-times.mkiv] [type-imp-texgyre.mkiv]
-
-\definefilesynonym [type-imp-cursor.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-adventor.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-heros.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-chorus.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-bonum.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-schola.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-pagella.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-termes.mkiv] [type-imp-texgyre.mkiv]
-
-\definefilesynonym [type-imp-mscoretimes.mkiv] [type-imp-mscore.mkiv]
-\definefilesynonym [type-imp-mscorearial.mkiv] [type-imp-mscore.mkiv]
-\definefilesynonym [type-imp-mscorecourier.mkiv] [type-imp-mscore.mkiv]
-\definefilesynonym [type-imp-mscoreverdana.mkiv] [type-imp-mscore.mkiv]
-
-\definefilesynonym [type-imp-candara.mkiv] [type-imp-cleartype.mkiv]
-\definefilesynonym [type-imp-consolas.mkiv] [type-imp-cleartype.mkiv]
-\definefilesynonym [type-imp-constantia.mkiv] [type-imp-cleartype.mkiv]
-\definefilesynonym [type-imp-corbel.mkiv] [type-imp-cleartype.mkiv]
-\definefilesynonym [type-imp-calibri.mkiv] [type-imp-cleartype.mkiv]
-
-\definefilesynonym [type-imp-antykwa-poltawskiego.mkiv] [type-imp-antykwapoltawskiego.mkiv]
-
-%definefilesynonym [type-imp-mac.mkiv] [type-imp-osx.mkiv]
-%definefilesynonym [type-imp-win.mkiv] [type-imp-mscore.mkiv]
-
-\definefilesynonym [type-imp-eulernovum.mkiv] [type-imp-euler.mkiv]
-\definefilesynonym [type-imp-eulernova.mkiv] [type-imp-euler.mkiv]
-
-\definefilesynonym [type-imp-euler-with-pagella.mkiv] [type-imp-euler.mkiv]
-\definefilesynonym [type-imp-pagella-with-euler.mkiv] [type-imp-euler.mkiv]
-
-\definefilesynonym [type-imp-mdbch.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mdugm.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mdput.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mdici.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mdpgd.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mdpus.mkiv] [type-imp-mathdesign.mkiv]
-
-\definefilesynonym [type-imp-mathdesignch.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mathdesigngm.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mathdesignut.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mathdesignci.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mathdesigngd.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mathdesignus.mkiv] [type-imp-mathdesign.mkiv]
-
-\definefilesynonym [type-imp-mathdesigncharter.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mathdesigngaramond.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mathdesignutopia.mkiv] [type-imp-mathdesign.mkiv]
-
-\definefilesynonym [type-imp-cows.mkiv] [type-imp-koeielettersot.mkiv]
-\definefilesynonym [type-imp-sheep.mkiv] [type-imp-koeielettersot.mkiv]
-\definefilesynonym [type-imp-coloredcows.mkiv] [type-imp-koeielettersot.mkiv]
-\definefilesynonym [type-imp-coloredsheep.mkiv] [type-imp-koeielettersot.mkiv]
-\definefilesynonym [type-imp-koeieletters.mkiv] [type-imp-koeielettersot.mkiv]
-
-\definefilesynonym [type-imp-stixtwo.mkiv] [type-imp-stix.mkiv]
-
-\definefilesynonym [type-imp-ibmplex.mkiv] [type-imp-plex.mkiv]
+\definefilesynonym [type-imp-latin-modern.mkiv] [type-imp-latinmodern.mkiv]
+\definefilesynonym [type-imp-modern-latin.mkiv] [type-imp-modernlatin.mkiv]
+
+\definefilesynonym [type-imp-lucida-opentype.mkiv] [type-imp-lucida.mkiv]
+\definefilesynonym [type-imp-lucidaot.mkiv] [type-imp-lucida.mkiv]
+\definefilesynonym [type-imp-lucidadk.mkiv] [type-imp-lucida.mkiv]
+
+\definefilesynonym [type-imp-dejavu-condensed.mkiv] [type-imp-dejavu.mkiv]
+
+\definefilesynonym [type-imp-palatino.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-courier.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-avantgarde.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-helvetica.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-chancery.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-bookman.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-schoolbook.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-times.mkiv] [type-imp-texgyre.mkiv]
+
+\definefilesynonym [type-imp-cursor.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-adventor.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-heros.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-chorus.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-bonum.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-schola.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-pagella.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-termes.mkiv] [type-imp-texgyre.mkiv]
+
+\definefilesynonym [type-imp-mscoretimes.mkiv] [type-imp-mscore.mkiv]
+\definefilesynonym [type-imp-mscorearial.mkiv] [type-imp-mscore.mkiv]
+\definefilesynonym [type-imp-mscorecourier.mkiv] [type-imp-mscore.mkiv]
+\definefilesynonym [type-imp-mscoreverdana.mkiv] [type-imp-mscore.mkiv]
+
+\definefilesynonym [type-imp-candara.mkiv] [type-imp-cleartype.mkiv]
+\definefilesynonym [type-imp-consolas.mkiv] [type-imp-cleartype.mkiv]
+\definefilesynonym [type-imp-constantia.mkiv] [type-imp-cleartype.mkiv]
+\definefilesynonym [type-imp-corbel.mkiv] [type-imp-cleartype.mkiv]
+\definefilesynonym [type-imp-calibri.mkiv] [type-imp-cleartype.mkiv]
+
+\definefilesynonym [type-imp-antykwa-poltawskiego.mkiv] [type-imp-antykwapoltawskiego.mkiv]
+
+%definefilesynonym [type-imp-mac.mkiv] [type-imp-osx.mkiv]
+%definefilesynonym [type-imp-win.mkiv] [type-imp-mscore.mkiv]
+
+\definefilesynonym [type-imp-eulernovum.mkiv] [type-imp-euler.mkiv]
+\definefilesynonym [type-imp-eulernova.mkiv] [type-imp-euler.mkiv]
+
+\definefilesynonym [type-imp-euler-with-pagella.mkiv] [type-imp-euler.mkiv]
+\definefilesynonym [type-imp-pagella-with-euler.mkiv] [type-imp-euler.mkiv]
+
+\definefilesynonym [type-imp-mdbch.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mdugm.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mdput.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mdici.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mdpgd.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mdpus.mkiv] [type-imp-mathdesign.mkiv]
+
+\definefilesynonym [type-imp-mathdesignch.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mathdesigngm.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mathdesignut.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mathdesignci.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mathdesigngd.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mathdesignus.mkiv] [type-imp-mathdesign.mkiv]
+
+\definefilesynonym [type-imp-mathdesigncharter.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mathdesigngaramond.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mathdesignutopia.mkiv] [type-imp-mathdesign.mkiv]
+
+\definefilesynonym [type-imp-cows.mkiv] [type-imp-koeielettersot.mkiv]
+\definefilesynonym [type-imp-sheep.mkiv] [type-imp-koeielettersot.mkiv]
+\definefilesynonym [type-imp-coloredcows.mkiv] [type-imp-koeielettersot.mkiv]
+\definefilesynonym [type-imp-coloredsheep.mkiv] [type-imp-koeielettersot.mkiv]
+\definefilesynonym [type-imp-koeieletters.mkiv] [type-imp-koeielettersot.mkiv]
+
+%definefilesynonym [type-imp-xits.mkiv] [type-imp-stix.mkiv]
+\definefilesynonym [type-imp-stixtwo.mkiv] [type-imp-stix.mkiv]
+
+\definefilesynonym [type-imp-ibmplex.mkiv] [type-imp-plex.mkiv]
+
+\definefilesynonym [type-imp-newcomputermodern-book.mkiv] [type-imp-newcomputermodern.mkiv]
+
+\definefilesynonym [type-imp-kpfonts-light.mkiv] [type-imp-kpfonts.mkiv]
+\definefilesynonym [type-imp-kpfonts-bold.mkiv] [type-imp-kpfonts.mkiv]
+\definefilesynonym [type-imp-kpfonts-sans.mkiv] [type-imp-kpfonts.mkiv]
+
+\definefilesynonym [type-imp-gentiumplus.mkiv] [type-imp-gentium.mkiv]
+\definefilesynonym [type-imp-gentiumbook.mkiv] [type-imp-gentium.mkiv]
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-bld.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-bld.lua
index 30503277212..36371aa104b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-bld.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-bld.lua
@@ -46,7 +46,7 @@ local nodeidstostring = nodes.idstostring
local nodepool = nodes.pool
local new_baselineskip = nodepool.baselineskip
local new_lineskip = nodepool.lineskip
-local insert_node_before = nodes.insert_before
+local insertnodebefore = nodes.insertbefore
local hpack_node = nodes.hpack
local nuts = nodes.nuts
@@ -157,9 +157,9 @@ function parbuilders.constructors.methods.oneline(head,followed_by_display)
t.prevdepth = h.depth
t.prevgraf = 1
if d < texget("lineskiplimit") then
- return insert_node_before(h,h,new_lineskip(texget("lineskip",false))) -- no stretch etc
+ return insertnodebefore(h,h,new_lineskip(texget("lineskip",false))) -- no stretch etc
else
- return insert_node_before(h,h,new_baselineskip(d))
+ return insertnodebefore(h,h,new_baselineskip(d))
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-brk.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-brk.lua
index 89eb7e52d33..68d9f2f5410 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-brk.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-brk.lua
@@ -46,13 +46,13 @@ local setprev = nuts.setprev
local setboth = nuts.setboth
local setsubtype = nuts.setsubtype
-local copy_node = nuts.copy_node
-local copy_node_list = nuts.copy_list
-local flush_node = nuts.flush_node
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local copy_node = nuts.copy
+local copy_node_list = nuts.copylist
+local flushnode = nuts.flushnode
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local remove_node = nuts.remove
-local end_of_math = nuts.end_of_math
+local endofmath = nuts.endofmath
local tonodes = nuts.tonodes
@@ -116,15 +116,15 @@ local function insert_break(head,start,stop,before,after,kern)
local g = new_glue()
setattrlist(p,start)
setattrlist(g,start)
- insert_node_before(head,start,p)
- insert_node_before(head,start,g)
+ insertnodebefore(head,start,p)
+ insertnodebefore(head,start,g)
end
local p = new_penalty(after)
local g = new_glue()
setattrlist(p,start)
setattrlist(g,start)
- insert_node_after(head,stop,g)
- insert_node_after(head,stop,p)
+ insertnodeafter(head,stop,g)
+ insertnodeafter(head,stop,p)
end
methods[1] = function(head,start,stop,settings,kern)
@@ -170,7 +170,7 @@ methods[2] = function(head,start) -- ( => (-
local hyphen = copy_node(post)
setchar(hyphen,languages.prehyphenchar(getlanguage(post)))
setlink(post,hyphen)
- head, start = insert_node_before(head,start,new_disc(nil,post,replace))
+ head, start = insertnodebefore(head,start,new_disc(nil,post,replace))
setattrlist(start,replace)
insert_break(head,start,start,10000,10000)
end
@@ -186,7 +186,7 @@ methods[3] = function(head,start) -- ) => -)
local hyphen = copy_node(pre)
setchar(hyphen,languages.prehyphenchar(getlanguage(pre)))
setlink(hyphen,pre)
- head, start = insert_node_before(head,start,new_disc(hyphen,nil,replace)) -- so not pre !
+ head, start = insertnodebefore(head,start,new_disc(hyphen,nil,replace)) -- so not pre !
setattrlist(start,tmp)
insert_break(head,start,start,10000,10000)
end
@@ -198,7 +198,7 @@ methods[4] = function(head,start) -- - => - - -
if p and n then
local tmp
head, start, tmp = remove_node(head,start)
- head, start = insert_node_before(head,start,new_disc())
+ head, start = insertnodebefore(head,start,new_disc())
setattrlist(start,tmp)
setdisc(start,copy_node(tmp),copy_node(tmp),tmp)
insert_break(head,start,start,10000,10000)
@@ -211,7 +211,7 @@ methods[5] = function(head,start,stop,settings) -- x => p q r
if p and n then
local tmp
head, start, tmp = remove_node(head,start)
- head, start = insert_node_before(head,start,new_disc())
+ head, start = insertnodebefore(head,start,new_disc())
local attr = getattrlist(tmp)
local font = getfont(tmp)
local left = settings.left
@@ -228,7 +228,7 @@ methods[5] = function(head,start,stop,settings) -- x => p q r
end
setdisc(start,left,right,middle)
setattrlist(start,attr)
- flush_node(tmp)
+ flushnode(tmp)
insert_break(head,start,start,10000,10000)
end
return head, start
@@ -302,7 +302,7 @@ function breakpoints.handler(head)
end
elseif id == math_code then
attr = nil
- current = end_of_math(current)
+ current = endofmath(current)
if current then
current = getnext(current)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-cap.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-cap.lua
index 3d0d6055a77..b6338ce4024 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-cap.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-cap.lua
@@ -36,9 +36,9 @@ local setchar = nuts.setchar
local setfont = nuts.setfont
local copy_node = nuts.copy
-local end_of_math = nuts.end_of_math
-local insert_after = nuts.insert_after
-local find_attribute = nuts.find_attribute
+local endofmath = nuts.endofmath
+local insertafter = nuts.insertafter
+local findattribute = nuts.findattribute
local nextglyph = nuts.traversers.glyph
@@ -132,7 +132,7 @@ local function replacer(start,codes)
else
local g = copy_node(start)
setchar(g,chr)
- insert_after(start,start,g)
+ insertafter(start,start,g)
end
end
elseif ifc[dc] then
@@ -237,7 +237,7 @@ local function mixed(start,attr,lastfont,n,count,where,first)
if fp ~= fc then
local k = fonts.getkern(fontdata[fp],getchar(p),c)
if k ~= 0 then
- insert_after(p,p,newkern(k))
+ insertafter(p,p,newkern(k))
end
end
else
@@ -410,7 +410,7 @@ function cases.handler(head) -- not real fast but also not used on much data
count = count + 1
end
elseif id == math_code then
- start = end_of_math(start)
+ start = endofmath(start)
count = 0
elseif prev_id == kern_code and getsubtype(prev) == fontkern_code then
-- still inside a word ...normally kerns are added later
@@ -427,7 +427,7 @@ function cases.handler(head) -- not real fast but also not used on much data
end
-- function cases.handler(head) -- not real fast but also not used on much data
--- local attr, start = find_attribute(head,a_cases)
+-- local attr, start = findattribute(head,a_cases)
-- if not start then
-- return head, false
-- end
@@ -520,7 +520,7 @@ end
-- count = count + 1
-- end
-- elseif id == math_code then
--- start = end_of_math(start)
+-- start = endofmath(start)
-- count = 0
-- elseif prev_id == kern_code and getsubtype(prev) == fontkern_code then
-- -- still inside a word ...normally kerns are added later
@@ -536,7 +536,7 @@ end
-- end
-- end
-- if start then
--- attr, start = find_attribute(start,a_cases)
+-- attr, start = findattribute(start,a_cases)
-- end
-- end
-- return head
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-chr.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-chr.lua
index bb3883b3308..c9ba0c7b9da 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-chr.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-chr.lua
@@ -99,8 +99,8 @@ local wordboundary_code = boundarycodes.word
local texgetnest = tex.getnest -- to be used
local texsetcount = tex.setcount
-local flush_node = nodes.flush_node
-local flush_list = nodes.flush_list
+local flushnode = nodes.flushnode
+local flushlist = nodes.flushlist
local settexattribute = tex.setattribute
local punctuation = characters.is_punctuation
@@ -140,7 +140,7 @@ local actions = {
remove = function(specification)
local n = pickup()
if n then
- flush_node(n)
+ flushnode(n)
end
end,
push = function(specification)
@@ -175,7 +175,7 @@ local function pickup(head,tail,str)
while true do
local prev = first.prev
if prev and prev[a_marked] == attr then
- if prev.id == par_code then -- and start_of_par(prev)
+ if prev.id == par_code then -- and startofpar(prev)
break
else
first = prev
@@ -212,7 +212,7 @@ local actions = {
list.tail = prev
prev.next = nil
end
- flush_list(first)
+ flushlist(first)
end
end
end,
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-cln.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-cln.lua
index b9b0e7d6cb7..469859162fb 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-cln.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-cln.lua
@@ -10,6 +10,8 @@ if not modules then modules = { } end modules ['typo-cln'] = {
-- this case Dream Theaters' Octavium). Of course extensions will take
-- more time.
+-- This feature is probably never used so we can get rid of it.
+
local tonumber = tonumber
local utfbyte = utf.byte
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-del.mkiv b/Master/texmf-dist/tex/context/base/mkiv/typo-del.mkiv
index 9720326be14..726c6d4bae2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-del.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-del.mkiv
@@ -525,10 +525,11 @@
\usedelimitedtextstyleandcolor\c!style\c!color
%
\begingroup
- \edef\p_delimited_left {\delimitedtextparameter{\c!left}}%
- \edef\p_delimited_right {\delimitedtextparameter{\c!right}}%
- \edef\p_delimited_nextleft {\delimitedtextparameter{\c!nextleft}}%
- \edef\p_delimited_nextright{\delimitedtextparameter{\c!nextright}}%
+ \usealignparameter\delimitedtextparameter
+ \edef\p_delimited_left {\delimitedtextparameter\c!left}%
+ \edef\p_delimited_right {\delimitedtextparameter\c!right}%
+ \edef\p_delimited_nextleft {\delimitedtextparameter\c!nextleft}%
+ \edef\p_delimited_nextright{\delimitedtextparameter\c!nextright}%
%
\leftdelimitedtextmark
%
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-dha.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-dha.lua
index ac72ae39488..176ed78670b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-dha.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-dha.lua
@@ -62,11 +62,12 @@ local setprop = nuts.setprop
local setstate = nuts.setstate
local setchar = nuts.setchar
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local remove_node = nuts.remove
-local end_of_math = nuts.end_of_math
-local start_of_par = nuts.start_of_par
+local endofmath = nuts.endofmath
+
+local startofpar = nuts.startofpar
local nodepool = nuts.pool
@@ -160,7 +161,7 @@ local function process(start)
local id = getid(current)
local next = getnext(current)
if id == math_code then
- current = getnext(end_of_math(next))
+ current = getnext(endofmath(next))
elseif getprop(current,"direction") then
-- this handles unhbox etc
current = next
@@ -332,7 +333,7 @@ local function process(start)
end
textdir = autodir
setprop(current,"direction",true)
- elseif id == par_code and start_of_par(current) then
+ elseif id == par_code and startofpar(current) then
local direction = getdirection(current)
if direction == righttoleft_code then
autodir = -1
@@ -376,13 +377,13 @@ local function process(start)
local id = getid(current)
if id == math_code then
-- todo: this might be tricky nesting
- current = getnext(end_of_math(getnext(current)))
+ current = getnext(endofmath(getnext(current)))
else
local cp = getprop(current,"direction")
if cp == "n" then
local swap = state == "r"
if swap then
- head = insert_node_before(head,current,startdir(lefttoright_code))
+ head = insertnodebefore(head,current,startdir(lefttoright_code))
end
setprop(current,"direction",true)
while true do
@@ -395,14 +396,14 @@ local function process(start)
end
end
if swap then
- head, current = insert_node_after(head,current,stopdir(lefttoright_code))
+ head, current = insertnodeafter(head,current,stopdir(lefttoright_code))
end
elseif cp == "l" then
if state ~= "l" then
if state == "r" then
- head = insert_node_before(head,last or current,stopdir(righttoleft_code))
+ head = insertnodebefore(head,last or current,stopdir(righttoleft_code))
end
- head = insert_node_before(head,current,startdir(lefttoright_code))
+ head = insertnodebefore(head,current,startdir(lefttoright_code))
state = "l"
done = true
end
@@ -410,9 +411,9 @@ local function process(start)
elseif cp == "r" then
if state ~= "r" then
if state == "l" then
- head = insert_node_before(head,last or current,stopdir(lefttoright_code))
+ head = insertnodebefore(head,last or current,stopdir(lefttoright_code))
end
- head = insert_node_before(head,current,startdir(righttoleft_code))
+ head = insertnodebefore(head,current,startdir(righttoleft_code))
state = "r"
done = true
end
@@ -425,9 +426,9 @@ local function process(start)
end
else
if state == "r" then
- head = insert_node_before(head,current,stopdir(righttoleft_code))
+ head = insertnodebefore(head,current,stopdir(righttoleft_code))
elseif state == "l" then
- head = insert_node_before(head,current,stopdir(lefttoright_code))
+ head = insertnodebefore(head,current,stopdir(lefttoright_code))
end
state = false
last = false
@@ -441,9 +442,9 @@ local function process(start)
local sd = (state == "r" and stopdir(righttoleft_code)) or (state == "l" and stopdir(lefttoright_code))
if sd then
if id == glue_code and getsubtype(current) == parfillskip_code then
- head = insert_node_before(head,current,sd)
+ head = insertnodebefore(head,current,sd)
else
- head = insert_node_after(head,current,sd)
+ head = insertnodeafter(head,current,sd)
end
end
break
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-dig.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-dig.lua
index a9294a38dae..bbc9311c408 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-dig.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-dig.lua
@@ -33,10 +33,9 @@ local setlink = nuts.setlink
local setnext = nuts.setnext
local setprev = nuts.setprev
-local hpack_node = nuts.hpack
-local traverse_id = nuts.traverse_id
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local hpacknode = nuts.hpack
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local texsetattribute = tex.setattribute
local unsetvalue = attributes.unsetvalue
@@ -73,16 +72,16 @@ local a_digits = attributes.private("digits")
function nodes.aligned(head,start,stop,width,how)
if how == "flushright" or how == "middle" then
- head, start = insert_node_before(head,start,new_glue(0,65536,65536))
+ head, start = insertnodebefore(head,start,new_glue(0,65536,65536))
end
if how == "flushleft" or how == "middle" then
- head, stop = insert_node_after(head,stop,new_glue(0,65536,65536))
+ head, stop = insertnodeafter(head,stop,new_glue(0,65536,65536))
end
local prv = getprev(start)
local nxt = getnext(stop)
setprev(start)
setnext(stop)
- local packed = hpack_node(start,width,"exactly") -- no directional mess here, just lr
+ local packed = hpacknode(start,width,"exactly") -- no directional mess here, just lr
if prv then
setlink(prv,packed)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-drp.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-drp.lua
index ddc6d68ae82..79cda3ab96c 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-drp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-drp.lua
@@ -59,10 +59,11 @@ local nodecodes = nodes.nodecodes
local nodepool = nuts.pool
local new_kern = nodepool.kern
-local insert_before = nuts.insert_before
-local insert_after = nuts.insert_after
+local insertbefore = nuts.insertbefore
+local insertafter = nuts.insertafter
local remove_node = nuts.remove
-local start_of_par = nuts.start_of_par
+
+local startofpar = nuts.startofpar
local nextnode = nuts.traversers.node
local nextglyph = nuts.traversers.glyph
@@ -72,6 +73,7 @@ local v_default = variables.default
local v_margin = variables.margin
local v_auto = variables.auto
local v_first = variables.first
+local v_keep = variables.keep
local v_last = variables.last
local texget = tex.get
@@ -132,6 +134,7 @@ interfaces.implement {
-- a page so this has a low priority
actions[v_default] = function(head,setting)
+ local skip = false
-- begin of par
local first = getnext(head)
local indent = false
@@ -195,6 +198,9 @@ actions[v_default] = function(head,setting)
else
-- keep quote etc with initial
local next = getnext(first)
+ if next and method[v_keep] then
+ skip = first
+ end
if not next then
-- don't start with a quote or so
return head
@@ -244,7 +250,7 @@ actions[v_default] = function(head,setting)
local id = getid(current)
if id == kern_code then
setkern(current,0)
- elseif id == glyph_code then
+ elseif id == glyph_code and skip ~= current then
local next = getnext(current)
if font then
setfont(current,font)
@@ -300,7 +306,11 @@ actions[v_default] = function(head,setting)
--
local hoffset = width + hoffset + distance + (indent and parindent or 0)
for current in nextglyph, first do
- setoffsets(current,-hoffset,-voffset) -- no longer - height here
+ if skip == current then
+ setoffsets(current,-hoffset,0)
+ else
+ setoffsets(current,-hoffset,-voffset) -- no longer - height here
+ end
if current == last then
break
end
@@ -325,7 +335,7 @@ actions[v_default] = function(head,setting)
texset("hangindent",hangindent)
end
if indent then
- insert_after(first,first,new_kern(-parindent))
+ insertafter(first,first,new_kern(-parindent))
end
end
return head
@@ -334,7 +344,7 @@ end
-- we can count ... when all done, we can disable ...
function initials.handler(head)
- if getid(head) == par_code and start_of_par(head) then
+ if getid(head) == par_code and startofpar(head) then
local settings = getprop(head,a_initial)
if settings then
disableaction("processors","typesetters.initials.handler")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-dua.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-dua.lua
index 5e1d4c109ae..dd7515a370a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-dua.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-dua.lua
@@ -83,9 +83,10 @@ local setdirection = nuts.setdirection
----- setattrlist = nuts.setattrlist
local remove_node = nuts.remove
-local insert_node_after = nuts.insert_after
-local insert_node_before = nuts.insert_before
-local start_of_par = nuts.start_of_par
+local insertnodeafter = nuts.insertafter
+local insertnodebefore = nuts.insertbefore
+
+local startofpar = nuts.startofpar
local nodepool = nuts.pool
local new_direction = nodepool.direction
@@ -337,7 +338,7 @@ local function get_baselevel(head,list,size,direction)
-- This is an adapted version:
if direction == lefttoright_code or direction == righttoleft_code then
return direction, true
- elseif getid(head) == par_code and start_of_par(head) then
+ elseif getid(head) == par_code and startofpar(head) then
direction = getdirection(head)
if direction == lefttoright_code or direction == righttoleft_code then
return direction, true
@@ -765,16 +766,16 @@ local function apply_to_list(list,size,head,pardir)
local d = new_direction(enddir,true)
-- setprop(d,"directions",true)
-- setattrlist(d,current)
- head = insert_node_before(head,current,d)
+ head = insertnodebefore(head,current,d)
enddir = false
end
elseif begindir then
- if id == par_code and start_of_par(current) then
+ if id == par_code and startofpar(current) then
-- par should always be the 1st node
local d = new_direction(begindir)
-- setprop(d,"directions",true)
-- setattrlist(d,current)
- head, current = insert_node_after(head,current,d)
+ head, current = insertnodeafter(head,current,d)
begindir = nil
end
end
@@ -782,7 +783,7 @@ local function apply_to_list(list,size,head,pardir)
local d = new_direction(begindir)
-- setprop(d,"directions",true)
-- setattrlist(d,current)
- head = insert_node_before(head,current,d)
+ head = insertnodebefore(head,current,d)
end
local skip = entry.skip
if skip and skip > 0 then
@@ -795,7 +796,7 @@ local function apply_to_list(list,size,head,pardir)
local d = new_direction(enddir,true)
-- setprop(d,"directions",true)
-- setattrlist(d,current)
- head, current = insert_node_after(head,current,d)
+ head, current = insertnodeafter(head,current,d)
end
if not entry.remove then
current = getnext(current)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-dub.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-dub.lua
index 88b3361da4a..dc45a278513 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-dub.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-dub.lua
@@ -71,9 +71,10 @@ local setdirection = nuts.setdirection
local setattrlist = nuts.setattrlist
local remove_node = nuts.remove
-local insert_node_after = nuts.insert_after
-local insert_node_before = nuts.insert_before
-local start_of_par = nuts.start_of_par
+local insertnodeafter = nuts.insertafter
+local insertnodebefore = nuts.insertbefore
+
+local startofpar = nuts.startofpar
local nodepool = nuts.pool
local new_direction = nodepool.direction
@@ -398,7 +399,7 @@ end
local function get_baselevel(head,list,size,direction)
if direction == lefttoright_code or direction == righttoleft_code then
return direction, true
- elseif getid(head) == par_code and start_of_par(head) then
+ elseif getid(head) == par_code and startofpar(head) then
direction = getdirection(head)
if direction == lefttoright_code or direction == righttoleft_code then
return direction, true
@@ -898,16 +899,16 @@ local function apply_to_list(list,size,head,pardir)
local d = new_direction(enddir,true)
-- setprop(d,"directions",true)
-- setattrlist(d,current)
- head = insert_node_before(head,current,d)
+ head = insertnodebefore(head,current,d)
enddir = false
end
elseif begindir then
- if id == par_code and start_of_par(current) then
+ if id == par_code and startofpar(current) then
-- par should always be the 1st node
local d = new_direction(begindir)
-- setprop(d,"directions",true)
-- setattrlist(d,current)
- head, current = insert_node_after(head,current,d)
+ head, current = insertnodeafter(head,current,d)
begindir = nil
end
end
@@ -915,7 +916,7 @@ local function apply_to_list(list,size,head,pardir)
local d = new_direction(begindir)
-- setprop(d,"directions",true)
-- setattrlist(d,current)
- head = insert_node_before(head,current,d)
+ head = insertnodebefore(head,current,d)
end
local skip = entry.skip
if skip and skip > 0 then
@@ -928,7 +929,7 @@ local function apply_to_list(list,size,head,pardir)
local d = new_direction(enddir,true)
-- setprop(d,"directions",true)
-- setattrlist(d,current)
- head, current = insert_node_after(head,current,d)
+ head, current = insertnodeafter(head,current,d)
end
if not entry.remove then
current = getnext(current)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-duc.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-duc.lua
index 6e4f27de257..614defeb687 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-duc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-duc.lua
@@ -76,9 +76,10 @@ local setattrlist = nuts.setattrlist
local properties = nodes.properties.data
local remove_node = nuts.remove
-local insert_node_after = nuts.insert_after
-local insert_node_before = nuts.insert_before
-local start_of_par = nuts.start_of_par
+local insertnodeafter = nuts.insertafter
+local insertnodebefore = nuts.insertbefore
+
+local startofpar = nuts.startofpar
local nodepool = nuts.pool
local new_direction = nodepool.direction
@@ -416,7 +417,7 @@ end
local function get_baselevel(head,list,size,direction)
if direction == lefttoright_code or direction == righttoleft_code then
return direction, true
- elseif getid(head) == par_code and start_of_par(head) then
+ elseif getid(head) == par_code and startofpar(head) then
direction = getdirection(head)
if direction == lefttoright_code or direction == righttoleft_code then
return direction, true
@@ -959,18 +960,18 @@ local function apply_to_list(list,size,head,pardir)
c = p
end
-- there is always a par nodes so head will stay
- head = insert_node_before(head,c,new_direction(enddir,true))
+ head = insertnodebefore(head,c,new_direction(enddir,true))
enddir = false
end
elseif begindir then
- if id == par_code and start_of_par(current) then
+ if id == par_code and startofpar(current) then
-- par should always be the 1st node
- head, current = insert_node_after(head,current,new_direction(begindir))
+ head, current = insertnodeafter(head,current,new_direction(begindir))
begindir = nil
end
end
if begindir then
- head = insert_node_before(head,current,new_direction(begindir))
+ head = insertnodebefore(head,current,new_direction(begindir))
end
local skip = entry.skip
if skip and skip > 0 then
@@ -985,7 +986,7 @@ local function apply_to_list(list,size,head,pardir)
end
end
if enddir then
- head, current = insert_node_after(head,current,new_direction(enddir,true))
+ head, current = insertnodeafter(head,current,new_direction(enddir,true))
end
if not entry.remove then
current = getnext(current)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-fkr.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-fkr.lua
index 1fd08526c3a..faaa09891e5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-fkr.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-fkr.lua
@@ -18,7 +18,7 @@ local glyph_code = nodecodes.glyph
local fontdata = fonts.hashes.identifiers
local getkernpair = fonts.handlers.otf.getkern
-local insert_before = nuts.insert_before
+local insertbefore = nuts.insertbefore
local new_kern = nuts.pool.fontkern
local enableaction = nodes.tasks.enableaction
@@ -56,7 +56,7 @@ function typesetters.fontkerns.handler(head)
kern = (kern1 + kern2)/2 -- mixed
end
if kern ~= 0 then
- head, current = insert_before(head,current,new_kern(kern))
+ head = insertbefore(head,current,new_kern(kern))
end
lastdata = data
else
@@ -68,7 +68,7 @@ function typesetters.fontkerns.handler(head)
end
local kern = getkernpair(lastdata,lastchar,char)
if kern ~= 0 then
- head, current = insert_before(head,current,new_kern(kern))
+ head = insertbefore(head,current,new_kern(kern))
end
end
lastchar = char
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-fln.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-fln.lua
index 3941e65efaa..0ee77fe870e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-fln.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-fln.lua
@@ -63,15 +63,15 @@ local spaceskip_code = nodes.gluecodes.spaceskip
local nextglyph = nuts.traversers.glyph
local nextdisc = nuts.traversers.disc
-local flush_node_list = nuts.flush_list
-local flush_node = nuts.flush_node
-local copy_node_list = nuts.copy_list
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local flushnodelist = nuts.flushlist
+local flushnode = nuts.flushnode
+local copy_node_list = nuts.copylist
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local remove_node = nuts.remove
local getdimensions = nuts.dimensions
local hpack_node_list = nuts.hpack
-local start_of_par = nuts.start_of_par
+local startofpar = nuts.startofpar
local nodepool = nuts.pool
local newpenalty = nodepool.penalty
@@ -182,7 +182,7 @@ actions[v_line] = function(head,setting)
-- temp = typesetters.kerns.handler(temp) -- maybe when enabled
-- temp = typesetters.cases.handler(temp) -- maybe when enabled
local width = getdimensions(temp)
- flush_node_list(temp)
+ flushnodelist(temp)
return width
end
@@ -230,7 +230,7 @@ actions[v_line] = function(head,setting)
end
end
- flush_node_list(temp)
+ flushnodelist(temp)
local start = head
local n = 0
@@ -296,11 +296,11 @@ actions[v_line] = function(head,setting)
end
end
setdisc(disc,pre,post,replace)
- flush_node(disc)
+ flushnode(disc)
elseif id == glue_code then
n = n + 1
if linebreak ~= n then
- head = insert_node_before(head,start,newpenalty(10000)) -- nobreak
+ head = insertnodebefore(head,start,newpenalty(10000)) -- nobreak
end
end
local next = getnext(start)
@@ -308,11 +308,11 @@ actions[v_line] = function(head,setting)
if start ~= head then
local where = id == glue_code and getprev(start) or start
if trace_firstlines then
- head, where = insert_node_after(head,where,newpenalty(10000)) -- nobreak
- head, where = insert_node_after(head,where,newkern(-65536))
- head, where = insert_node_after(head,where,tracerrule(65536,4*65536,2*65536,"darkblue"))
+ head, where = insertnodeafter(head,where,newpenalty(10000)) -- nobreak
+ head, where = insertnodeafter(head,where,newkern(-65536))
+ head, where = insertnodeafter(head,where,tracerrule(65536,4*65536,2*65536,"darkblue"))
end
- head, where = insert_node_after(head,where,newpenalty(-10000)) -- break
+ head, where = insertnodeafter(head,where,newpenalty(-10000)) -- break
end
start = next
break
@@ -372,7 +372,7 @@ end
actions[v_default] = actions[v_line]
function firstlines.handler(head)
- if getid(head) == par_code and start_of_par(head) then
+ if getid(head) == par_code and startofpar(head) then
local settings = getprop(head,a_firstline)
if settings then
disableaction("processors","typesetters.firstlines.handler")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-inj.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-inj.lua
index 44b6c0a147e..ef344ec4b0b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-inj.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-inj.lua
@@ -41,26 +41,45 @@ function injectors.reset(name)
list[name] = nil
end
+local function activate(injector,name)
+ if not injector.active then
+ ctx_doactivateinjector(name)
+ injector.active = true
+ if showall then
+ -- in case we already enabled tracing
+ injector.show = true
+ end
+ end
+end
+
function injectors.set(name,numbers,command)
local injector = list[name]
- local actions = injector.actions
- local places = settings_to_array(numbers)
+ local actions = injector.actions
+ local places = settings_to_array(numbers)
for i=1,#places do
actions[tonumber(places[i])] = command
end
- if not injector.active then
- ctx_doactivateinjector(name)
- injector.active = true
- end
+ -- not: injector.show = true
+ activate(injector,name)
end
function injectors.show(name)
if not name or name == "" then
showall = true
+ local names = settings_to_array(name)
+ for name, injector in next, list do
+ injector.show = true
+ activate(injector,name)
+ end
else
- local list = settings_to_array(name)
- for i=1,#list do
- list[list[i]].show = true
+ local names = settings_to_array(name)
+ for i=1,#names do
+ local name = names[i]
+ local injector = list[name]
+ if injector then
+ injector.show = true
+ activate(injector,name)
+ end
end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-itc.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-itc.lua
index c3a583fe494..0cf847846a0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-itc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-itc.lua
@@ -44,9 +44,9 @@ local setkern = nuts.setkern
local getkern = nuts.getkern
local getheight = nuts.getheight
-local insert_node_after = nuts.insert_after
+local insertnodeafter = nuts.insertafter
local remove_node = nuts.remove
-local end_of_math = nuts.end_of_math
+local endofmath = nuts.endofmath
local texgetattribute = tex.getattribute
local texsetattribute = tex.setattribute
@@ -182,7 +182,7 @@ local enablemath = false
local enabletext = false
local function domath(head,current)
- current = end_of_math(current)
+ current = endofmath(current)
local next = getnext(current)
if next then
local char, id = isglyph(next)
@@ -251,7 +251,7 @@ local function domath(head,current)
if trace_italics then
report_italics("%s italic %p between math %C and non punctuation %C","adding",a,getchar(glyph),char)
end
- insert_node_after(head,glyph,correction_kern(a,glyph))
+ insertnodeafter(head,glyph,correction_kern(a,glyph))
end
end
end
@@ -309,7 +309,7 @@ local function texthandler(head)
if font ~= lastfont then
if previtalic ~= 0 then
if okay(data,current,font,prevchar,previtalic,char,"glyph") then
- insert_node_after(prevhead,prev,correction_kern(previtalic,current))
+ insertnodeafter(prevhead,prev,correction_kern(previtalic,current))
end
elseif previnserted and data then
if trace_italics then
@@ -320,7 +320,7 @@ local function texthandler(head)
--
if replaceitalic ~= 0 then
if okay(data,replace,font,replacechar,replaceitalic,char,"replace") then
- insert_node_after(replacehead,replace,correction_kern(replaceitalic,current))
+ insertnodeafter(replacehead,replace,correction_kern(replaceitalic,current))
end
replaceitalic = 0
elseif replaceinserted and data then
@@ -332,7 +332,7 @@ local function texthandler(head)
--
if postitalic ~= 0 then
if okay(data,post,font,postchar,postitalic,char,"post") then
- insert_node_after(posthead,post,correction_kern(postitalic,current))
+ insertnodeafter(posthead,post,correction_kern(postitalic,current))
end
postitalic = 0
elseif postinserted and data then
@@ -484,7 +484,7 @@ local function texthandler(head)
end
previnserted = correction_glue(previtalic,current) -- maybe just add ? else problem with penalties
previtalic = 0
- insert_node_after(prevhead,prev,previnserted)
+ insertnodeafter(prevhead,prev,previnserted)
else
if replaceitalic ~= 0 then
if trace_italics then
@@ -492,7 +492,7 @@ local function texthandler(head)
end
replaceinserted = correction_kern(replaceitalic,current) -- needs to be a kern
replaceitalic = 0
- insert_node_after(replacehead,replace,replaceinserted)
+ insertnodeafter(replacehead,replace,replaceinserted)
end
if postitalic ~= 0 then
if trace_italics then
@@ -500,7 +500,7 @@ local function texthandler(head)
end
postinserted = correction_kern(postitalic,current) -- needs to be a kern
postitalic = 0
- insert_node_after(posthead,post,postinserted)
+ insertnodeafter(posthead,post,postinserted)
end
end
elseif id == math_code then
@@ -514,14 +514,14 @@ local function texthandler(head)
if mathokay then
current = domath(head,current)
else
- current = end_of_math(current)
+ current = endofmath(current)
end
else
if previtalic ~= 0 then
if trace_italics then
report_italics("inserting %p between %s italic %C and whatever",previtalic,"glyph",prevchar)
end
- insert_node_after(prevhead,prev,correction_kern(previtalic,current))
+ insertnodeafter(prevhead,prev,correction_kern(previtalic,current))
previnserted = nil
previtalic = 0
replaceinserted = nil
@@ -533,7 +533,7 @@ local function texthandler(head)
if trace_italics then
report_italics("inserting %p between %s italic %C and whatever",replaceitalic,"replace",replacechar)
end
- insert_node_after(replacehead,replace,correction_kern(replaceitalic,current))
+ insertnodeafter(replacehead,replace,correction_kern(replaceitalic,current))
previnserted = nil
previtalic = 0
replaceinserted = nil
@@ -545,7 +545,7 @@ local function texthandler(head)
if trace_italics then
report_italics("inserting %p between %s italic %C and whatever",postitalic,"post",postchar)
end
- insert_node_after(posthead,post,correction_kern(postitalic,current))
+ insertnodeafter(posthead,post,correction_kern(postitalic,current))
previnserted = nil
previtalic = 0
replaceinserted = nil
@@ -562,19 +562,19 @@ local function texthandler(head)
if trace_italics then
report_italics("inserting %p between %s italic %C and end of list",previtalic,"glyph",prevchar)
end
- insert_node_after(prevhead,prev,correction_kern(previtalic,current))
+ insertnodeafter(prevhead,prev,correction_kern(previtalic,current))
else
if replaceitalic ~= 0 then
if trace_italics then
report_italics("inserting %p between %s italic %C and end of list",replaceitalic,"replace",replacechar)
end
- insert_node_after(replacehead,replace,correction_kern(replaceitalic,current))
+ insertnodeafter(replacehead,replace,correction_kern(replaceitalic,current))
end
if postitalic ~= 0 then
if trace_italics then
report_italics("inserting %p between %s italic %C and end of list",postitalic,"post",postchar)
end
- insert_node_after(posthead,post,correction_kern(postitalic,current))
+ insertnodeafter(posthead,post,correction_kern(postitalic,current))
end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-krn.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-krn.lua
index 489375e9be7..58d6c091ca4 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-krn.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-krn.lua
@@ -1,4 +1,4 @@
-if not modules then modules = { } end modules ['typo-krn'] = {
+ if not modules then modules = { } end modules ['typo-krn'] = {
version = 1.001,
comment = "companion to typo-krn.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
@@ -24,10 +24,9 @@ local nodepool = nuts.pool
-- check what is used
local find_node_tail = nuts.tail
-local flush_node = nuts.flush_node
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
-local end_of_math = nuts.end_of_math
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
+local endofmath = nuts.endofmath
local copy_node = nuts.copy
local getnext = nuts.getnext
@@ -129,7 +128,7 @@ local factors = kerns.factors
-- make sure it runs after all others
-- there will be a width adaptor field in nodes so this will change
-- todo: interchar kerns / disc nodes / can be made faster
--- todo: use insert_before etc
+-- todo: use insertbefore etc
local gluefactor = 4 -- assumes quad = .5 enspace
@@ -331,7 +330,7 @@ local function process_list(head,keeptogether,krn,font,okay)
-- if kerns then
-- print("it happens indeed, basemode kerns not yet injected")
-- end
- insert_node_before(head,start,new_kern((kerns and kerns[char] or 0) + kern))
+ insertnodebefore(head,start,new_kern((kerns and kerns[char] or 0) + kern))
okay = true
end
end
@@ -412,7 +411,7 @@ function kerns.handler(head)
setattr(n,a_kerns,attr) -- we took away the attr
end
setchar(n,unicode[i])
- insert_node_after(head,s,n)
+ insertnodeafter(head,s,n)
s = n
end
end
@@ -444,10 +443,10 @@ function kerns.handler(head)
local data = chardata[font][prevchar]
local kerns = data and data.kerns
local kern = (kerns and kerns[char] or 0) + quaddata[font]*krn
- insert_node_before(head,start,kern_injector(fillup,kern))
+ insertnodebefore(head,start,kern_injector(fillup,kern))
end
else
- insert_node_before(head,start,kern_injector(fillup,quaddata[font]*krn))
+ insertnodebefore(head,start,kern_injector(fillup,quaddata[font]*krn))
end
end
prev = start
@@ -557,16 +556,16 @@ function kerns.handler(head)
-- special case
local b, f = closest_bound(start,getprev)
if b then
- insert_node_before(head,start,kern_injector(fillup,quaddata[f]*krn))
+ insertnodebefore(head,start,kern_injector(fillup,quaddata[f]*krn))
end
local b, f = closest_bound(start,getnext)
if b then
- insert_node_after(head,start,kern_injector(fillup,quaddata[f]*krn))
+ insertnodeafter(head,start,kern_injector(fillup,quaddata[f]*krn))
end
end
bound = false
elseif id == math_code then
- start = end_of_math(start)
+ start = endofmath(start)
bound = false
end
if start then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-lin.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-lin.lua
index 84d622e1e9c..40247c45711 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-lin.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-lin.lua
@@ -74,8 +74,8 @@ local tonut = nodes.tonut
local tonode = nodes.tonode
local nexthlist = nuts.traversers.hlist
-local insert_before = nuts.insert_before
-local insert_after = nuts.insert_after
+local insertbefore = nuts.insertbefore
+local insertafter = nuts.insertafter
local find_tail = nuts.tail
local rehpack = nuts.rehpack
----- remove_node = nuts.remove
@@ -99,7 +99,7 @@ local setwidth = nuts.setwidth
local setprop = nuts.setprop
local getprop = nuts.rawprop -- getprop
-local effectiveglue = nuts.effective_glue
+local effectiveglue = nuts.effectiveglue
local nodepool = nuts.pool
local new_kern = nodepool.kern
@@ -147,9 +147,9 @@ local function finalize(prop,key) -- delayed calculations
end
local kern1 = new_kern(delta)
local kern2 = new_kern(-delta)
- head = insert_before(head,head,kern1)
- head = insert_before(head,head,pack)
- head = insert_before(head,head,kern2)
+ head = insertbefore(head,head,kern1)
+ head = insertbefore(head,head,pack)
+ head = insertbefore(head,head,kern2)
setlist(line,head)
local where = {
pack = pack,
@@ -207,11 +207,11 @@ local function normalize(line,islocal) -- assumes prestine lines, nothing pre/ap
if addskips then
if rightskip and not leftskip then
leftskip = new_leftskip(lskip)
- head = insert_before(head,head,leftskip)
+ head = insertbefore(head,head,leftskip)
end
if leftskip and not rightskip then
rightskip = new_rightskip(0)
- head, tail = insert_after(head,tail,rightskip)
+ head, tail = insertafter(head,tail,rightskip)
end
end
if head ~= oldhead then
@@ -267,7 +267,7 @@ function paragraphs.normalize(head,islocal)
current = getnext(current)
end
if current then
- head, current = insert_before(head,current,new_glue(l_width,l_stretch,l_shrink))
+ head, current = insertbefore(head,current,new_glue(l_width,l_stretch,l_shrink))
if head == current then
setlist(last,head)
end
@@ -303,10 +303,10 @@ local function addtoline(n,list,option)
if trace_anchors and not line.traced then
line.traced = true
local rule = new_rule(2*65536,2*65536,1*65536)
- local list = insert_before(rule,rule,new_kern(-1*65536))
+ local list = insertbefore(rule,rule,new_kern(-1*65536))
addtoline(n,list)
local rule = new_rule(2*65536,6*65536,-3*65536)
- local list = insert_before(rule,rule,new_kern(-1*65536))
+ local list = insertbefore(rule,rule,new_kern(-1*65536))
addtoline(n,list,"internal")
else
line.traced = true
@@ -329,14 +329,14 @@ local function addtoline(n,list,option)
-- optimize now .. we can also decide to put each blob in a hlist
local kern = new_kern(delta)
if tail then
- head, tail = insert_after(head,tail,kern)
+ head, tail = insertafter(head,tail,kern)
else
head, tail = kern, kern
setlist(where.pack,head)
end
- head, tail = insert_after(head,tail,blob)
+ head, tail = insertafter(head,tail,blob)
local kern = new_kern(-delta)
- head, tail = insert_after(head,tail,kern)
+ head, tail = insertafter(head,tail,kern)
--
where.head = head
where.tail = tail
@@ -366,7 +366,7 @@ local function addanchortoline(n,anchor)
end
if where.tail then
local head = where.head
- insert_before(head,head,anchor)
+ insertbefore(head,head,anchor)
else
where.tail = anchor
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-mar.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-mar.lua
index 7e69162a900..56324c79041 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-mar.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-mar.lua
@@ -61,9 +61,9 @@ local v_line = variables.line
local nuts = nodes.nuts
local tonode = nuts.tonode
-local hpack_nodes = nuts.hpack
-local traverse_id = nuts.traverse_id
-local flush_node_list = nuts.flush_list
+local hpacknodes = nuts.hpack
+local traverseid = nuts.traverseid
+local flushnodelist = nuts.flushlist
local getnext = nuts.getnext
local getprev = nuts.getprev
@@ -251,7 +251,7 @@ function margins.save(t)
local si = store[i]
if si.name == name then
local s = remove(store,i)
- flush_node_list(s.box)
+ flushnodelist(s.box)
end
end
else
@@ -259,7 +259,7 @@ function margins.save(t)
local si = store[i]
if si.name == name then
local s = remove(store,i)
- flush_node_list(s.box)
+ flushnodelist(s.box)
end
end
end
@@ -270,8 +270,8 @@ function margins.save(t)
if t.number then
local leftmargindistance = texgetdimen("naturalleftmargindistance")
local rightmargindistance = texgetdimen("naturalrightmargindistance")
- local strutbox = getbox("strutbox")
- local _, strutht, strutdp = getwhd(strutbox)
+ local strutht = texgetdimen("strutht")
+ local strutdp = texgetdimen("strutdp")
-- better make a new table and make t entry in t
t.box = content
t.n = nofsaved
@@ -492,9 +492,9 @@ local function markovershoot(current) -- todo: alleen als offset > line
v_anchors = v_anchors + 1
cache[v_anchors] = fastcopy(stacked)
local anchor = setanchor(v_anchors)
- -- local list = hpack_nodes(setlink(anchor,getlist(current))) -- not ok, we need to retain width
+ -- local list = hpacknodes(setlink(anchor,getlist(current))) -- not ok, we need to retain width
-- local list = setlink(anchor,getlist(current)) -- why not this ... better play safe
- local list = hpack_nodes(setlink(anchor,getlist(current)),getwidth(current),"exactly")--
+ local list = hpacknodes(setlink(anchor,getlist(current)),getwidth(current),"exactly")--
if trace_marginstack then
report_margindata("marking anchor %a",v_anchors)
end
@@ -790,7 +790,7 @@ local function flushed(scope,parent) -- current is hlist
if done then
local a = getattr(head,a_linenumber) -- hack .. we need a more decent critical attribute inheritance mechanism
if false then
- local l = hpack_nodes(head,getwidth(parent),"exactly")
+ local l = hpacknodes(head,getwidth(parent),"exactly")
setlist(parent,l)
if a then
setattr(l,a_linenumber,a)
@@ -905,7 +905,7 @@ end
local function finalhandler(head)
if nofdelayed > 0 then
local current = head
- while current and nofdelayed > 0 do -- traverse_list
+ while current and nofdelayed > 0 do
local id = getid(current)
if id == hlist_code then -- only lines?
local a = getprop(current,"margindata")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-pag.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-pag.lua
index ea4b1574caf..b6a27f16731 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-pag.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-pag.lua
@@ -39,7 +39,7 @@ local setpenalty = nuts.setpenalty
local getwidth = nuts.getwidth
local getdepth = nuts.getdepth
-local insert_node_after = nuts.insert_after
+local insertnodeafter = nuts.insertafter
local new_penalty = nuts.pool.penalty
local trace_keeptogether = false
@@ -129,7 +129,7 @@ local function keeptogether(start,a,specification)
if getid(previous) == penalty_code then
setpenalty(previous,10000)
else
- insert_node_after(head,previous,new_penalty(10000))
+ insertnodeafter(head,previous,new_penalty(10000))
end
else
break
@@ -144,7 +144,7 @@ local function keeptogether(start,a,specification)
if getid(previous) == penalty_code then
setpenalty(previous,10000)
else
- insert_node_after(head,previous,new_penalty(10000))
+ insertnodeafter(head,previous,new_penalty(10000))
end
else
break
@@ -158,7 +158,7 @@ local function keeptogether(start,a,specification)
if getid(previous) == penalty_code then
setpenalty(previous,10000)
else
- insert_node_after(head,previous,new_penalty(10000))
+ insertnodeafter(head,previous,new_penalty(10000))
end
else
break
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-pnc.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-pnc.lua
index 732970884f2..79ca4f57770 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-pnc.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-pnc.lua
@@ -21,7 +21,7 @@ local glue_code = nodecodes.glue
local spaceskip_code = gluecodes.spaceskip
local new_kern = nuts.pool.kern
-local insert_after = nuts.insert_after
+local insertafter = nuts.insertafter
local nextglyph = nuts.traversers.glyph
@@ -89,7 +89,7 @@ function periodkerns.handler(head)
if factor ~= 0 then
fontspace = parameters[getfont(current)].space -- can be sped up
inserted = factor * fontspace
- insert_after(head,current,new_kern(inserted))
+ insertafter(head,current,new_kern(inserted))
if trace then
report("inserting space at %C . [%p] %C .",pchar,inserted,nchar)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-rep.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-rep.lua
index 2538a014d10..a116a3f5d0f 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-rep.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-rep.lua
@@ -38,6 +38,7 @@ local chardata = characters.data
local collected = false
local a_stripping = attributes.private("stripping")
+
local texsetattribute = tex.setattribute
local unsetvalue = attributes.unsetvalue
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-rub.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-rub.lua
index 6c6ab9a3334..14acfdbd7fb 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-rub.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-rub.lua
@@ -49,7 +49,6 @@ local getwidth = nuts.getwidth
local setwidth = nuts.setwidth
local hpack = nuts.hpack
-local insert_after = nuts.insert_after
local takebox = nuts.takebox
local nexthlist = nuts.traversers.hlist
@@ -368,7 +367,7 @@ local function whatever(current)
end
end
-attach = function(head) -- traverse_list
+attach = function(head)
for current in nexthlist, head do
whatever(current)
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-spa.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-spa.lua
index 78fc2296443..db05963eb8a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-spa.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-spa.lua
@@ -29,10 +29,10 @@ local getprev = nuts.getprev
local takeattr = nuts.takeattr
local isglyph = nuts.isglyph
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local remove_node = nuts.remove
-local end_of_math = nuts.end_of_math
+local endofmath = nuts.endofmath
local nodepool = nuts.pool
local new_penalty = nodepool.penalty
@@ -116,8 +116,8 @@ function spacings.handler(head)
if trace_spacing then
report_spacing("inserting penalty and space before %C (left)",char)
end
- insert_node_before(head,start,new_penalty(10000))
- insert_node_before(head,start,new_glue(left*quad))
+ insertnodebefore(head,start,new_penalty(10000))
+ insertnodebefore(head,start,new_glue(left*quad))
end
end
local next = getnext(start)
@@ -152,15 +152,15 @@ function spacings.handler(head)
if trace_spacing then
report_spacing("inserting penalty and space after %C (right)",char)
end
- insert_node_after(head,start,new_glue(right*quad))
- insert_node_after(head,start,new_penalty(10000))
+ insertnodeafter(head,start,new_glue(right*quad))
+ insertnodeafter(head,start,new_penalty(10000))
end
end
end
end
end
elseif id == math_code then
- start = end_of_math(start) -- weird, can return nil .. no math end?
+ start = endofmath(start) -- weird, can return nil .. no math end?
end
if start then
start = getnext(start)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-sus.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-sus.lua
index bb5b03912ce..993f4c7982d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-sus.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-sus.lua
@@ -57,9 +57,9 @@ local setattr = nuts.setattr
local setlist = nuts.setlist
local setcolor = nodes.tracers.colors.set
-local insert_before = nuts.insert_before
-local insert_after = nuts.insert_after
-local end_of_math = nuts.end_of_math
+local insertbefore = nuts.insertbefore
+local insertafter = nuts.insertafter
+local endofmath = nuts.endofmath
local nodepool = nuts.pool
@@ -123,22 +123,22 @@ local function mark(head,current,id,color)
local width = getwidth(current)
local rule = new_rule(width)
local kern = new_kern(-width)
- head = insert_before(head,current,rule)
- head = insert_before(head,current,kern)
+ head = insertbefore(head,current,rule)
+ head = insertbefore(head,current,kern)
setcolor(rule,color)
-- elseif id == kern_code then
-- local width = getkern(current)
-- local rule = new_rule(width)
-- local kern = new_kern(-width)
- -- head = insert_before(head,current,rule)
- -- head = insert_before(head,current,kern)
+ -- head = insertbefore(head,current,rule)
+ -- head = insertbefore(head,current,kern)
-- setcolor(rule,color)
else
local width, height, depth = getwhd(current)
local extra = fonts.hashes.xheights[getfont(current)] / 2
local rule = new_rule(width,height+extra,depth+extra)
local hlist = new_hlist(rule)
- head = insert_before(head,current,hlist)
+ head = insertbefore(head,current,hlist)
setcolor(rule,color)
setcolor(current,"white")
end
@@ -226,7 +226,7 @@ function typesetters.marksuspects(head)
end
current = getnext(current)
elseif id == math_code then
- current = getnext(end_of_math(current))
+ current = getnext(endofmath(current))
elseif id == glue_code then
local a = getattr(current,a_characters)
if a then
@@ -270,7 +270,7 @@ local function showsuspects(head)
head, current = mark(head,current,id,colors[a])
end
elseif id == math_code then
- current = end_of_math(current)
+ current = endofmath(current)
elseif id == hlist_code or id == vlist_code then
local list = getlist(current)
if list then
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-tal.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-tal.lua
index db605a4916d..b827b8ef9ab 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-tal.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-tal.lua
@@ -47,8 +47,8 @@ local isglyph = nuts.isglyph
local setattr = nuts.setattr
local setchar = nuts.setchar
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local nextglyph = nuts.traversers.glyph
local getdimensions = nuts.dimensions
@@ -376,46 +376,46 @@ function characteralign.handler(head,where)
local new_kern = trace_split and traced_kern or new_kern
if b_start then
if before < maxbefore then
- head = insert_node_before(head,b_start,new_kern(maxbefore-before))
+ head = insertnodebefore(head,b_start,new_kern(maxbefore-before))
end
if not c then
-- print("[before]")
if dataset.hasseparator then
local width = fontcharacters[getfont(b_start)][separator].width
- insert_node_after(head,b_stop,new_kern(maxafter+width))
+ insertnodeafter(head,b_stop,new_kern(maxafter+width))
end
elseif a_start then
-- print("[before] [separator] [after]")
if after < maxafter then
- insert_node_after(head,a_stop,new_kern(maxafter-after))
+ insertnodeafter(head,a_stop,new_kern(maxafter-after))
end
else
-- print("[before] [separator]")
if maxafter > 0 then
- insert_node_after(head,c,new_kern(maxafter))
+ insertnodeafter(head,c,new_kern(maxafter))
end
end
elseif a_start then
if c then
-- print("[separator] [after]")
if maxbefore > 0 then
- head = insert_node_before(head,c,new_kern(maxbefore))
+ head = insertnodebefore(head,c,new_kern(maxbefore))
end
else
-- print("[after]")
local width = fontcharacters[getfont(b_stop)][separator].width
- head = insert_node_before(head,a_start,new_kern(maxbefore+width))
+ head = insertnodebefore(head,a_start,new_kern(maxbefore+width))
end
if after < maxafter then
- insert_node_after(head,a_stop,new_kern(maxafter-after))
+ insertnodeafter(head,a_stop,new_kern(maxafter-after))
end
elseif c then
-- print("[separator]")
if maxbefore > 0 then
- head = insert_node_before(head,c,new_kern(maxbefore))
+ head = insertnodebefore(head,c,new_kern(maxbefore))
end
if maxafter > 0 then
- insert_node_after(head,c,new_kern(maxafter))
+ insertnodeafter(head,c,new_kern(maxafter))
end
end
return head
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-wrp.lua b/Master/texmf-dist/tex/context/base/mkiv/typo-wrp.lua
index f2ca43b56ef..4ba3c3afff0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-wrp.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-wrp.lua
@@ -53,6 +53,8 @@ local report = logs.reporter("paragraphs","wrappers")
-- If needed we can extend this checker for other cases but then we will also
-- use attributes.
+-- we can actually do better in lmtx
+
local function remove_dangling_crlf(head,tail)
if head and tail and getid(tail) == glue_code and getsubtype(tail) == parfillskip_code then
tail = getprev(tail)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/typo-wrp.mkiv b/Master/texmf-dist/tex/context/base/mkiv/typo-wrp.mkiv
index 4e9ecf2e128..3a3bb4fafad 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/typo-wrp.mkiv
+++ b/Master/texmf-dist/tex/context/base/mkiv/typo-wrp.mkiv
@@ -49,7 +49,7 @@
\ignorespaces}
\unexpanded\def\spac_crlf_placeholder
- {\strut}
+ {\wordboundary\strut} % or \endstrut
\unexpanded\def\spac_crlf_placeholder_show
{\wordboundary
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-deb.lua b/Master/texmf-dist/tex/context/base/mkiv/util-deb.lua
index bd94b6d01ed..10e5731b036 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-deb.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-deb.lua
@@ -346,3 +346,25 @@ debugger.showtraceback = showtraceback
-- debug.showtraceback = showtraceback
-- showtraceback()
+
+-- For now also here because we want it in mtxrun (taken from lmt file):
+
+if luac then
+
+ local show, dump = luac.print, string.dump
+
+ function luac.inspect(v)
+ if type(v) == "function" then
+ local ok, str = xpcall(dump,function() end,v)
+ if ok then
+ v = str
+ end
+ end
+ if type(v) == "string" then
+ show(v,true)
+ else
+ print(v)
+ end
+ end
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-evo-imp-server.lua b/Master/texmf-dist/tex/context/base/mkiv/util-evo-imp-server.lua
index f4dd5b3f7fc..b2672012825 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-evo-imp-server.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-evo-imp-server.lua
@@ -65,6 +65,13 @@ function evohome.server(specification)
local port = specification.port or (presets.server and presets.server.port) or 8068
local host = specification.host or (presets.server and presets.server.host) or "*"
+ if presets.initial == "alloff" then
+ report("turning all zones off")
+ evohome.actions.alloff(presets)
+ else
+ report("using default initial state")
+ end
+
package.extraluapath(presets.filepath)
local socket = socket or require("socket")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-evo.lua b/Master/texmf-dist/tex/context/base/mkiv/util-evo.lua
index dfb395e082b..75c2282f0f2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-evo.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-evo.lua
@@ -44,7 +44,7 @@ local formatters = string.formatters
local floor, div = math.floor, math.div
local resultof, ostime, osdate, ossleep = os.resultof, os.time, os.date, os.sleep
local jsontolua, jsontostring = json.tolua, json.tostring
-local savetable, loadtable, sortedkeys = table.save, table.load, table.sortedkeys
+local savetable, loadtable, sortedkeys, sortedhash = table.save, table.load, table.sortedkeys, table.sortedhash
local setmetatableindex, setmetatablenewindex = table.setmetatableindex, table.setmetatablenewindex
local replacer = utilities.templates.replacer
local lower = string.lower -- no utf support yet (encoding needs checking in evohome)
@@ -172,9 +172,11 @@ local function loadedtable(filename)
return { }
end
-local function savedtable(filename,data)
+local function savedtable(filename,data,trace)
savetable(filename,data)
- report("file %a saved",filename)
+ if trace then
+ report("file %a saved",filename)
+ end
end
local function loadpresets(filename)
@@ -823,11 +825,12 @@ local function settask(presets,when,tag,action)
done = false,
category = category,
action = action,
+ tag = tag,
}
else
list[tag] = nil
end
- savedtable(presets.files.schedules,list)
+ savedtable(presets.files.schedules,list,false)
end
end
@@ -990,6 +993,15 @@ local function poller(presets)
return step, process, presets
end
+local function alloff(presets)
+ local zones = getzonenames(presets)
+ if zones then
+ for i=1,#zones do
+ setzonestate(presets,zones[i],5,true)
+ end
+ end
+end
+
--
evohome = {
@@ -1023,6 +1035,8 @@ evohome = {
schedule = schedule, -- presets, name
permanent = permanent, -- presets, name
--
+ alloff = alloff, -- presets
+ --
settomorrow = settomorrow, -- presets, tag, function
resettomorrow = resettomorrow, -- presets, tag
tomorrowset = tomorrowset, -- presets, tag
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-fil.lua b/Master/texmf-dist/tex/context/base/mkiv/util-fil.lua
index 183f7bea81f..0b20264ecc9 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-fil.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-fil.lua
@@ -203,23 +203,23 @@ function files.readinteger4le(f)
end
function files.readfixed2(f)
- local a, b = byte(f:read(2),1,2)
- if a >= 0x80 then
- tonumber((a - 0x100) .. "." .. b)
- else
- tonumber(( a ) .. "." .. b)
+ local n1, n2 = byte(f:read(2),1,2)
+ if n1 >= 0x80 then
+ n1 = n1 - 0x100
end
+ return n1 + n2/0xFF
end
-- (real) (n>>16) + ((n&0xffff)/65536.0)) but no cast in lua (we could use unpack)
function files.readfixed4(f)
local a, b, c, d = byte(f:read(4),1,4)
- if a >= 0x80 then
- tonumber((0x100 * a + b - 0x10000) .. "." .. (0x100 * c + d))
- else
- tonumber((0x100 * a + b ) .. "." .. (0x100 * c + d))
+ local n1 = 0x100 * a + b
+ local n2 = 0x100 * c + d
+ if n1 >= 0x8000 then
+ n1 = n1 - 0x10000
end
+ return n1 + n2/0xFFFF
end
-- (real) ((n<<16)>>(16+14)) + ((n&0x3fff)/16384.0))
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-jsn.lua b/Master/texmf-dist/tex/context/base/mkiv/util-jsn.lua
index 8da35189793..6d12c520aeb 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-jsn.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-jsn.lua
@@ -17,6 +17,10 @@ if not modules then modules = { } end modules ['util-jsn'] = {
--
-- Upgraded for handling the somewhat more fax server templates.
+if utilities and utilities.json then
+ return json
+end
+
local P, V, R, S, C, Cc, Cs, Ct, Cf, Cg = lpeg.P, lpeg.V, lpeg.R, lpeg.S, lpeg.C, lpeg.Cc, lpeg.Cs, lpeg.Ct, lpeg.Cf, lpeg.Cg
local lpegmatch = lpeg.match
local format, gsub = string.format, string.gsub
@@ -265,6 +269,8 @@ do
k = lpegmatch(escaper,k) or k
v = lpegmatch(escaper,v) or v
n = n + 1 t[n] = f_key_val_str(depth,k,v)
+ elseif i > 1 then
+ n = n - 1
end
elseif tv == "table" then
local l = #v
@@ -280,6 +286,9 @@ do
end
elseif next(v) then
tojsonpp(v,k,depth,level+1,0)
+ elseif i > 1 then
+ n = n - 1
+ -- we don't know if we have a hash or string
end
elseif tv == "boolean" then
if tk == "number" then
@@ -297,6 +306,8 @@ do
else
t[n] = f_key_val_nop(depth,k)
end
+ elseif i > 1 then
+ n = n - 1
end
else
if tk == "number" then
@@ -306,6 +317,8 @@ do
k = lpegmatch(escaper,k) or k
n = n + 1
t[n] = f_key_val_null(depth,k)
+ elseif i > 1 then
+ n = n - 1
end
end
end
@@ -440,4 +453,8 @@ end
-- inspect(l)
-- print(s==l.s)
+-- if not package.loaded.json then
+-- package.loaded.json = json
+-- end
+
return json
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-lib-imp-gm.lua b/Master/texmf-dist/tex/context/base/mkiv/util-lib-imp-gm.lua
index d1ffde87903..99c62451c81 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-lib-imp-gm.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-lib-imp-gm.lua
@@ -6,6 +6,10 @@ if not modules then modules = { } end modules ['util-lib-imp-gm'] = {
license = "see context related readme files",
}
+if true then
+ logs.report("warning","swiglib is no longer supported")
+end
+
local graphicmagick = utilities.graphicmagick or { }
utilities.graphicmagick = graphicmagick
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-lib-imp-gs.lua b/Master/texmf-dist/tex/context/base/mkiv/util-lib-imp-gs.lua
index 0eceda7aa5d..305f4103b19 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-lib-imp-gs.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-lib-imp-gs.lua
@@ -6,6 +6,10 @@ if not modules then modules = { } end modules ['util-lib-imp-gs'] = {
license = "see context related readme files",
}
+if true then
+ logs.report("warning","swiglib is no longer supported")
+end
+
local insert = table.insert
local formatters = string.formatters
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-lib.lua b/Master/texmf-dist/tex/context/base/mkiv/util-lib.lua
index be763d92e91..77ec7cd7e20 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-lib.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-lib.lua
@@ -245,6 +245,8 @@ end
resolvers.locatelib = locate -- for now
+-- swiglib is no longer officially supported
+
do
local report_swiglib = logs.reporter("swiglib")
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-prs.lua b/Master/texmf-dist/tex/context/base/mkiv/util-prs.lua
index 6d2f8c19e06..635b610e072 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-prs.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-prs.lua
@@ -55,9 +55,13 @@ local nobracket = 1 - (lbracket + rbracket)
local escape, left, right = P("\\"), P('{'), P('}')
+-- lpegpatterns.balanced = P {
+-- [1] = ((escape * (left+right)) + (1 - (left+right)) + V(2))^0,
+-- [2] = left * V(1) * right
+-- }
lpegpatterns.balanced = P {
- [1] = ((escape * (left+right)) + (1 - (left+right)) + V(2))^0,
- [2] = left * V(1) * right
+ ((escape * (left+right)) + (1 - (left+right)) + V(2))^0,
+ left * V(1) * right
}
local nestedbraces = P { lbrace * (nobrace + V(1))^0 * rbrace }
@@ -67,11 +71,12 @@ local spaces = space^0
local argument = Cs((lbrace/"") * ((nobrace + nestedbraces)^0) * (rbrace/""))
local content = (1-endofstring)^0
-lpegpatterns.nestedbraces = nestedbraces -- no capture
-lpegpatterns.nestedparents = nestedparents -- no capture
-lpegpatterns.nested = nestedbraces -- no capture
-lpegpatterns.argument = argument -- argument after e.g. =
-lpegpatterns.content = content -- rest after e.g =
+lpegpatterns.nestedbraces = nestedbraces -- no capture
+lpegpatterns.nestedparents = nestedparents -- no capture
+lpegpatterns.nestedbrackets = nestedbrackets -- no capture
+lpegpatterns.nested = nestedbraces -- no capture
+lpegpatterns.argument = argument -- argument after e.g. =
+lpegpatterns.content = content -- rest after e.g =
local value = lbrace * C((nobrace + nestedbraces)^0) * rbrace
+ C((nestedbraces + (1-comma))^0)
@@ -568,9 +573,9 @@ end
-- "1","2","3","4"
-- "5","6","7","8"
-- ]]
---
+
-- local mycsvsplitter = parsers.csvsplitter { numbers = true }
---
+
-- local list = mycsvsplitter(crap) inspect(list)
-- and this is a slightly patched version of a version posted by Philipp Gesang
@@ -617,12 +622,6 @@ end
-- local list, names = mycsvsplitter(crap,true) inspect(list) inspect(names)
-- local list, names = mycsvsplitter(crap) inspect(list) inspect(names)
--- parsers.stepper("1,7-",9,function(i) print(">>>",i) end)
--- parsers.stepper("1-3,7,8,9")
--- parsers.stepper("1-3,6,7",function(i) print(">>>",i) end)
--- parsers.stepper(" 1 : 3, ,7 ")
--- parsers.stepper("1:4,9:13,24:*",30)
-
local function ranger(first,last,n,action)
if not first then
-- forget about it
@@ -639,7 +638,7 @@ local function ranger(first,last,n,action)
end
end
-local cardinal = lpegpatterns.cardinal / tonumber
+local cardinal = (lpegpatterns.hexadecimal + lpegpatterns.cardinal) / tonumber
local spacers = lpegpatterns.spacer^0
local endofstring = lpegpatterns.endofstring
@@ -650,14 +649,29 @@ local stepper = spacers * ( cardinal * ( spacers * S(":-") * spacers * ( cardin
* Carg(1) * Carg(2) / ranger * S(", ")^0 )^1 * endofstring -- we're sort of strict (could do without endofstring)
function parsers.stepper(str,n,action)
+ local ts = type(str)
if type(n) == "function" then
- lpegmatch(stepper,str,1,false,n or print)
- else
+ if ts == "number" then
+ n(str)
+ elseif ts == "table" then
+ for i=1,#str do
+ n(str[i])
+ end
+ else
+ lpegmatch(stepper,str,1,false,n or print)
+ end
+ elseif ts == "string" then
lpegmatch(stepper,str,1,n,action or print)
end
end
---
+-- parsers.stepper("1,7-",9,function(i) print(">>>",i) end)
+-- parsers.stepper("1-3,7,8,9")
+-- parsers.stepper("1-3,6,7",function(i) print(">>>",i) end)
+-- parsers.stepper(" 1 : 3, ,7 ")
+-- parsers.stepper("1:4,9:13,24:*",30)
+-- parsers.stepper(1,print)
+-- parsers.stepper({1,3,4},print)
local pattern_math = Cs((P("%")/"\\percent " + P("^") * Cc("{") * lpegpatterns.integer * Cc("}") + anything)^0)
local pattern_text = Cs((P("%")/"\\percent " + (P("^")/"\\high") * Cc("{") * lpegpatterns.integer * Cc("}") + anything)^0)
@@ -681,7 +695,7 @@ local spaces = lpegpatterns.space^0
local dummy = function() end
setmetatableindex(cache,function(t,k)
- local separator = P(k)
+ local separator = S(k) -- was P
local value = (1-separator)^0
local pattern = spaces * C(value) * separator^0 * Cp()
t[k] = pattern
@@ -801,11 +815,20 @@ local pattern = Cf( Ct("") *
( Cg(Cc("day") * cardinal)
* S("-/") * Cg(Cc("month") * cardinal)
* S("-/") * Cg(Cc("year") * p_year)
+ ) +
+ ( Cg(Cc("year") * p_year)
+ * S("-/") * Cg(Cc("month") * cardinal)
+ ) +
+ ( Cg(Cc("month") * cardinal)
+ * S("-/") * Cg(Cc("year") * p_year)
)
)
- * P(" ") * Cg(Cc("hour") * cardinal)
+ * (
+ P(" ") * Cg(Cc("hour") * cardinal)
* P(":") * Cg(Cc("min") * cardinal)
* (P(":") * Cg(Cc("sec") * cardinal))^-1
+ + P(-1) )
+
, rawset)
lpegpatterns.splittime = pattern
@@ -814,6 +837,8 @@ function parsers.totime(str)
return lpegmatch(pattern,str)
end
+-- inspect(parsers.totime("2019-03-05"))
+-- inspect(parsers.totime("2019-03-05 12:12:12"))
-- print(os.time(parsers.totime("2019-03-05 12:12:12")))
-- print(os.time(parsers.totime("2019/03/05 12:12:12")))
-- print(os.time(parsers.totime("05-03-2019 12:12:12")))
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-rnd.lua b/Master/texmf-dist/tex/context/base/mkiv/util-rnd.lua
new file mode 100644
index 00000000000..7504965b21a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-rnd.lua
@@ -0,0 +1,116 @@
+if not modules then modules = { } end modules ['util-rnd'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkiv",
+ author = "Tamara, Adriana, Tomáš Hála & Hans Hagen",
+ copyright = "ConTeXt Development Team", -- umbrella
+ license = "see context related readme files"
+}
+
+-- The rounding code is a variant on Tomáš Hála <tomas.hala@mendelu.cz; mendelu@thala.cz>
+-- code that is used in the statistical module. We use local variables and a tolerant name
+-- resolver that also permits efficient local aliases. With code like this one
+-- really have to make sure that locals are used because changing the rounding
+-- can influence other code.
+
+local floor, ceil, pow = math.floor, math.ceil, math.pow
+local rawget, type = rawget, type
+local gsub, lower = string.gsub, string.lower
+
+local rounding = { }
+
+local methods = {
+ no = function(num)
+ -- no rounding
+ return num
+ end,
+ up = function(num,coef)
+ -- ceiling rounding
+ coef = coef and pow(10,coef) or 1
+ return ceil(num * coef) / coef
+ end,
+ down = function(num,coef)
+ -- floor rounding
+ coef = coef and pow(10,coef) or 1
+ return floor(num * coef) / coef
+ end,
+ halfup = function(num,coef)
+ -- rounds decimal numbers as usual, numbers with 0.5 up, too (e.g. number -0.5 will be rounded to 0)
+ coef = coef and pow(10,coef) or 1
+ return floor(num * coef + 0.5) / coef
+ end,
+ halfdown = function(num,coef)
+ -- rounds decimal numbers as usual, numbers with 0.5 down, too (e.g. number 0.5 will be rounded to 0)
+ coef = coef and pow(10,coef) or 1
+ return ceil(num * coef -0.5) / coef
+ end,
+ halfabsup = function(num,coef)
+ -- rounds deciaml numbers as usual, numbers with 0.5 away from zero, e.g. numbers -0.5 and 0.5 will be rounded to -1 and 1
+ coef = coef and pow(10,coef) or 1
+ return (num >= 0 and floor(num * coef + 0.5) or ceil(num * coef - 0.5)) / coef
+ end,
+ halfabsdown = function(num,coef)
+ -- rounds deciaml numbers as usual, numbers with 0.5 towards zero, e.g. numbers -0.5 and 0.5 will be rounded both to 0
+ coef = coef and pow(10,coef) or 1
+ return (num < 0 and floor(num * coef + 0.5) or ceil(num * coef - 0.5)) / coef
+ end,
+ halfeven = function(num,coef)
+ -- rounds deciaml numbers as usual, numbers with 0.5 to the nearest even, e.g. numbers 1.5 and 2.5 will be rounded both to 2
+ coef = coef and pow(10,coef) or 1
+ num = num*coef
+ return floor(num + (((num - floor(num)) ~= 0.5 and 0.5) or ((floor(num) % 2 == 1) and 1) or 0)) / coef
+ end,
+ halfodd = function(num,coef)
+ -- rounds deciaml numbers as usual, numbers with 0.5 to the nearest odd (e.g. numbers 1.5 and 2.5 will be rounded to 1 and 3
+ coef = coef and pow(10,coef) or 1
+ num = num * coef
+ return floor(num + (((num - floor(num)) ~= 0.5 and 0.5) or ((floor(num) % 2 == 1) and 0) or 1)) / coef
+ end,
+}
+
+methods.default = methods.halfup
+
+rounding.methods = table.setmetatableindex(methods,function(t,k)
+ local s = gsub(lower(k),"[^a-z]","")
+ local v = rawget(t,s)
+ if not v then
+ v = t.halfup
+ end
+ t[k] = v
+ return v
+end)
+
+-- If needed I can make a high performance one.
+
+local defaultmethod = methods.halfup
+
+rounding.round = function(num,dec,mode)
+ if type(dec) == "string" then
+ mode = dec
+ dec = 1
+ end
+ return (mode and methods[mode] or defaultmethods)(num,dec)
+end
+
+number.rounding = rounding
+
+-- -- Tomáš' test numbers:
+
+-- local list = { 5.49, 5.5, 5.51, 6.49, 6.5, 6.51, 0.5, 12.45 }
+--
+-- for method, round in table.sortedhash(number.rounding.methods) do
+-- for i=1,#list do
+-- local n = list[i]
+-- print(n,method,round(n,k),round(n,k,3))
+-- end
+-- end
+--
+-- local myround = number.rounding.methods["HALF ABS DOWN"]
+--
+-- for i=1,#list do
+-- local n = list[i]
+-- print(n,"Half Abs Down",number.rounding.round(n,1,"Half Abs Down"))
+-- print(n,"HALF_ABS_DOWN",number.rounding.round(n,1,"HALF_ABS_DOWN"))
+-- print(n,"HALF_ABS_DOWN",myround(n,1))
+-- end
+
+return rounding
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sac.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sac.lua
index a8851f4c835..36daef81673 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sac.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sac.lua
@@ -262,12 +262,11 @@ function streams.readfixed2(f)
local i = f[2]
local j = i + 1
f[2] = j + 1
- local a, b = byte(f[1],i,j)
- if a >= 0x80 then
- return tonumber((a - 0x100) .. "." .. b) or 0
- else
- return tonumber((a ) .. "." .. b) or 0
+ local n1, n2 = byte(f[1],i,j)
+ if n1 >= 0x80 then
+ n1 = n1 - 0x100
end
+ return n1 + n2/0xFF
end
function streams.readfixed4(f)
@@ -275,11 +274,12 @@ function streams.readfixed4(f)
local j = i + 3
f[2] = j + 1
local a, b, c, d = byte(f[1],i,j)
- if a >= 0x80 then
- return tonumber((0x100 * a + b - 0x10000) .. "." .. (0x100 * c + d)) or 0
- else
- return tonumber((0x100 * a + b ) .. "." .. (0x100 * c + d)) or 0
+ local n1 = 0x100 * a + b
+ local n2 = 0x100 * c + d
+ if n1 >= 0x8000 then
+ n1 = n1 - 0x10000
end
+ return n1 + n2/0xFFFF
end
if bit32 then
@@ -377,10 +377,10 @@ if sio and sio.readcardinal2 then
f[2] = i + 4
return readfixed4(f[1],i)
end
- function streams.read2dot4(f)
+ function streams.read2dot14(f)
local i = f[2]
f[2] = i + 2
- return read2dot4(f[1],i)
+ return read2dot14(f[1],i)
end
function streams.readbytes(f,n)
local i = f[2]
@@ -507,10 +507,10 @@ do
function io.newreader(str,method)
local f, m
if method == "string" then
- f = openstring(str)
+ f = openstring(str,true)
m = streams
elseif method == "stream" then
- f = openstream(str)
+ f = openstream(str,true)
m = streams
else
f = openfile(str,"rb")
@@ -522,6 +522,7 @@ do
__index = function(t,k)
local r = m[k]
if k == "close" then
+ -- maybe use __toclose
if f then
m.close(f)
f = nil
@@ -543,3 +544,39 @@ do
end
end
+
+if bit32 and not streams.tocardinal1 then
+
+ local extract = bit32.extract
+ local char = string.char
+
+ streams.tocardinal1 = char
+ function streams.tocardinal2(n) return char(extract( 8,8),extract( 0,8)) end
+ function streams.tocardinal3(n) return char(extract(16,8),extract( 8,8),extract(0,8)) end
+ function streams.tocardinal4(n) return char(extract(24,8),extract(16,8),extract(8,8),extract(0,8)) end
+
+ streams.tocardinal1le = char
+ function streams.tocardinal2le(n) return char(extract(0,8),extract(8,8)) end
+ function streams.tocardinal3le(n) return char(extract(0,8),extract(8,8),extract(16,8)) end
+ function streams.tocardinal4le(n) return char(extract(0,8),extract(8,8),extract(16,8),extract(24,8)) end
+
+end
+
+if not streams.readcstring then
+
+ local readchar = streams.readchar
+ local concat = table.concat
+
+ function streams.readcstring(f)
+ local t = { }
+ while true do
+ local c = readchar(f)
+ if c and c ~= "\0" then
+ t[#t+1] = c
+ else
+ return concat(t)
+ end
+ end
+ end
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sbx.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sbx.lua
index cd282009e0a..066ca30237e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sbx.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sbx.lua
@@ -330,7 +330,7 @@ local function validcommand(name,program,template,checkers,defaults,variables,re
-- for now, we will have a "flags" checker
else
local checker = validators[chktype]
- if checker then
+ if checker and type(value) == "string" then
value = checker(unquoted(value),strict)
if value then
variables[variable] = optionalquoted(value)
@@ -350,7 +350,7 @@ local function validcommand(name,program,template,checkers,defaults,variables,re
local chktype = checkers[variable]
if chktype == "verbose" then
-- for now, we will have a "flags" checker
- else
+ elseif type(default) == "string" then
local checker = validators[chktype]
if checker then
default = checker(unquoted(default),strict)
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sci.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sci.lua
index 778991ea69d..67528c74e0a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sci.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sci.lua
@@ -23,6 +23,7 @@ do
lexerroot = file.dirname(resolvers.findfile("scite-context-lexer.lua"))
-- end
if lfs.isdir(lexerroot) then
+ -- pushluapath
package.extraluapath(lexerroot)
package.extraluapath(lexerroot.."/themes")
package.extraluapath(lexerroot.."/data")
@@ -58,14 +59,14 @@ local knownlexers = {
-- todo: pat/hyp ori
}
-lexer = nil -- main lexer, global (for the moment needed for themes)
+lexers = nil -- main lexer, global (for the moment needed for themes)
local function loadscitelexer()
- if not lexer then
- lexer = require("scite-context-lexer")
- require("scite-context-theme") -- uses lexer
- if lexer then
- lexer.context.disablewordcheck()
+ if not lexers then
+ lexers = require("scite-context-lexer")
+ lexers.styles = require("scite-context-theme") -- uses lexer
+ if lexers then
+ (lexers.disablewordcheck or lexers.context.disablewordcheck)()
end
end
return lexer
@@ -74,7 +75,7 @@ end
local loadedlexers = setmetatableindex(function(t,k)
local l = knownlexers[k] or k
loadscitelexer()
- local v = lexer.load(formatters["scite-context-lexer-%s"](l))
+ local v = lexers.load(formatters["scite-context-lexer-%s"](l))
t[l] = v
t[k] = v
return v
@@ -124,7 +125,7 @@ local function exportcsslexing()
return (#f == 0 and f[1] == 0) or ((f[1] == f[2]) and (f[2] == f[3]) and (f[3] == 0))
end
local result, r = { }, 0
- for k, v in table.sortedhash(lexer.context.styles) do
+ for k, v in table.sortedhash(lexers.context.styles) do
local bold = v.bold
local fore = v.fore
r = r + 1
@@ -149,7 +150,7 @@ local function exportwhites()
end
local function exportstyled(lexer,text,numbered)
- local result = lexer.lex(lexer,text,0)
+ local result = lexers.lex(lexer,text,0)
local start = 1
local whites = exportwhites()
local buffer = { }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-ffi.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-ffi.lua
index f440695023d..cbfd7bcf5f6 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-ffi.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-ffi.lua
@@ -8,8 +8,7 @@ if not modules then modules = { } end modules ['util-sql-imp-ffi'] = {
-- I looked at luajit-mysql to see how the ffi mapping was done but it didn't work
-- out that well (at least not on windows) but I got the picture. As I have somewhat
--- different demands I simplified / redid the ffi bit and just took the swiglib
--- variant and adapted that.
+-- different demands I simplified.
local tonumber = tonumber
local concat = table.concat
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-sqlite.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-sqlite.lua
index a88035f683a..781c92c896d 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-sqlite.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-sqlite.lua
@@ -22,20 +22,6 @@ local preparetemplate = helpers.preparetemplate
local setmetatable = setmetatable
local formatters = string.formatters
------ sqlite = require("swiglib.sqlite.core")
------ swighelpers = require("swiglib.helpers.core")
------
------ get_list_item = sqlite.char_p_array_getitem
------ is_okay = sqlite.SQLITE_OK
------ execute_query = sqlite.sqlite3_exec_lua_callback
------ error_message = sqlite.sqlite3_errmsg
------
------ new_db = sqlite.new_sqlite3_p_array
------ open_db = sqlite.sqlite3_open
------ get_db = sqlite.sqlite3_p_array_getitem
------ close_db = sqlite.sqlite3_close
------ dispose_db = sqlite.delete_sqlite3_p_array
-
local ffi = require("ffi")
ffi.cdef [[
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-swiglib.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-swiglib.lua
index 786b4bffc2b..16f6d533a5e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-swiglib.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sql-imp-swiglib.lua
@@ -6,6 +6,10 @@ if not modules then modules = { } end modules ['util-sql-imp-swiglib'] = {
license = "see context related readme files"
}
+if true then
+ logs.report("warning","swiglib is no longer supported")
+end
+
-- As the regular library is flawed (i.e. there are crashes in the table
-- construction code) and also not that efficient, Luigi Scarso looked into
-- a swig binding. This is a bit more low level approach but as we stay
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sql-tickets.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sql-tickets.lua
index 3258fb186d8..d852212bcc5 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sql-tickets.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sql-tickets.lua
@@ -18,7 +18,7 @@ local ostime, uuid, osfulltime = os.time, os.uuid, os.fulltime
local random = math.random
local concat = table.concat
-if not utilities.sql then require("util-sql") end
+-- if not utilities.sql then require("util-sql") end
local sql = utilities.sql
local tickets = { }
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sql-tracers.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sql-tracers.lua
index 44e32d256c6..0780f4d5bf2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sql-tracers.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sql-tracers.lua
@@ -10,7 +10,7 @@ local sql = utilities.sql
local tracers = { }
sql.tracers = tracers
-sql.setmethod("swiglib")
+sql.setmethod("library")
local gsub, lower = string.gsub, string.lower
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-sql.lua b/Master/texmf-dist/tex/context/base/mkiv/util-sql.lua
index 36f3eab1935..55c4961f7da 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-sql.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-sql.lua
@@ -26,7 +26,6 @@ if not modules then modules = { } end modules ['util-sql'] = {
-- util-sql-imp-client.lua
-- util-sql-imp-library.lua
--- util-sql-imp-swiglib.lua
-- util-sql-imp-lmxsql.lua
-- local sql = require("util-sql")
@@ -36,8 +35,7 @@ if not modules then modules = { } end modules ['util-sql'] = {
-- { name = "data",type = "string" },
-- }
--
--- local execute = sql.methods.swiglib.execute
--- -- local execute = sql.methods.library.execute
+-- local execute = sql.methods.library.execute
-- -- local execute = sql.methods.client.execute
-- -- local execute = sql.methods.lmxsql.execute
--
@@ -114,7 +112,6 @@ if optional then
local methods = {
ffi = "mysql",
library = "mysql",
- swiglib = "mysql",
postgress = "postgress",
sqlite = "sqlite",
sqlite3 = "sqlite",
@@ -124,7 +121,7 @@ if optional then
local m = methods[k]
if m then
report_state("start loading method %a as %a",k,m)
- require("libs-imp-" .. m)
+ require("libs-imp-" .. m .. ".lmt") -- brrr
report_state("loading method %a done",k)
return rawget(t,m)
else
@@ -192,8 +189,7 @@ local function makeconverter(entries,celltemplate,wraptemplate)
assignments[#assignments+1] = format("[%q] = %s,",name,value)
end
end
- local code = format(wraptemplate,concat(shortcuts,"\n"),key and "{ }" or "data",key or "i",concat(assignments,"\n "))
- -- print(code)
+ local code = format(wraptemplate,concat(shortcuts,"\n"),key and "{ }" or "data",key or "i",concat(assignments,"\n "))
local func = load(code)
return func and func()
end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-str.lua b/Master/texmf-dist/tex/context/base/mkiv/util-str.lua
index 0d1f39de9d7..b5c721a41d2 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-str.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-str.lua
@@ -10,12 +10,13 @@ utilities = utilities or { }
utilities.strings = utilities.strings or { }
local strings = utilities.strings
-local format, gsub, rep, sub, find = string.format, string.gsub, string.rep, string.sub, string.find
+local format, gsub, rep, sub, find, char = string.format, string.gsub, string.rep, string.sub, string.find, string.char
local load, dump = load, string.dump
local tonumber, type, tostring, next, setmetatable = tonumber, type, tostring, next, setmetatable
local unpack, concat = table.unpack, table.concat
local P, V, C, S, R, Ct, Cs, Cp, Carg, Cc = lpeg.P, lpeg.V, lpeg.C, lpeg.S, lpeg.R, lpeg.Ct, lpeg.Cs, lpeg.Cp, lpeg.Carg, lpeg.Cc
local patterns, lpegmatch = lpeg.patterns, lpeg.match
+local tsplitat = lpeg.tsplitat
local utfchar, utfbyte, utflen = utf.char, utf.byte, utf.len
----- loadstripped = utilities.lua.loadstripped
@@ -622,7 +623,7 @@ local template = [[
return function(%s) return %s end
]]
--- this might move
+-- We only use fast serialize in controlled cases.
local pattern = Cs(Cc('"') * (
(1-S('"\\\n\r'))^1
@@ -632,12 +633,43 @@ local pattern = Cs(Cc('"') * (
+ P('\r') / '\\r'
)^0 * Cc('"'))
+-- -- I need to do more experiments with this:
+--
+-- local pattern = Cs(Cc('"') * (
+-- (1-S('"\\\n\r'))^1
+-- + P('"') / '\\034'
+-- + P('\\') / '\\092'
+-- + P('\n') / '\\013'
+-- + P('\r') / '\\010'
+-- )^0 * Cc('"'))
+
patterns.escapedquotes = pattern
function string.escapedquotes(s)
return lpegmatch(pattern,s)
end
+local pattern = (1 - P("\\"))^1 ; pattern = Cs (
+ pattern
+ * ( (P("\\") / "" * (digit^-3 / function(s) return char(tonumber(s)) end)) + pattern )^1
+)
+
+patterns.unescapedquotes = pattern
+
+function string.unescapedquotes(s)
+ return lpegmatch(pattern,s) or s
+end
+
+-- function string.longifneeded(s)
+-- if find(s,'["\\\n\r]') then
+-- return "[===[" .. s .. "]===]"
+-- else
+-- return '"' .. s ..'"'
+-- end
+-- end
+
+string.texnewlines = lpeg.replacer(patterns.newline,"\r",true)
+
-- print(string.escapedquotes('1\\23\n"'))
-- but for now here
@@ -1476,7 +1508,7 @@ end
if not string.explode then
- local tsplitat = lpeg.tsplitat
+ -- local tsplitat = lpeg.tsplitat
local p_utf = patterns.utf8character
local p_check = C(p_utf) * (P("+") * Cc(true))^0
@@ -1499,3 +1531,24 @@ if not string.explode then
end
end
+
+
+do
+
+ local p_whitespace = patterns.whitespace^1
+
+ local cache = setmetatable({ }, { __index = function(t,k)
+ local p = tsplitat(p_whitespace * P(k) * p_whitespace)
+ local v = function(s)
+ return lpegmatch(p,s)
+ end
+ t[k] = v
+ return v
+ end })
+
+ function string.wordsplitter(s)
+ return cache[s]
+ end
+
+end
+
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-tab.lua b/Master/texmf-dist/tex/context/base/mkiv/util-tab.lua
index 9f7112eb915..58ca3bcb10e 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-tab.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-tab.lua
@@ -417,9 +417,9 @@ if JITSUPPORTED then
else
- local f_v = formatters["[%q]=%q,"]
- local f_t = formatters["[%q]="]
- local f_q = formatters["%q,"]
+ -- local f_v = formatters["[%q]=%q,"]
+ -- local f_t = formatters["[%q]="]
+ -- local f_q = formatters["%q,"]
function table.fastserialize(t,prefix) -- todo, move local function out
local r = { type(prefix) == "string" and prefix or "return" }
@@ -432,7 +432,7 @@ else
local v = t[0]
if v then
m = m + 1
- r[m] = "[0]='"
+ r[m] = "[0]="
if type(v) == "table" then
fastserialize(v)
else
@@ -720,6 +720,7 @@ local function serialize(root,name,specification)
local t -- = { }
local n = 1
+ -- local m = 0 -- no gain
local unknown = false
local function do_serialize(root,name,depth,level,indexed)
@@ -850,6 +851,12 @@ local function serialize(root,name,specification)
n = n + 1 t[n] = f_key_str_value_str(depth,tostring(k),tostring(v))
end
end
+ -- if n > 100000 then -- no gain
+ -- local k = m + 1
+ -- t[k] = concat(t,"\n",k,n)
+ -- n = k
+ -- m = k
+ -- end
end
end
if level > 0 then
@@ -898,6 +905,7 @@ local function serialize(root,name,specification)
n = n + 1
t[n] = f_table_finish()
return concat(t,"\n")
+ -- return concat(t,"\n",1,n) -- no gain
end
table.serialize = serialize
@@ -970,3 +978,43 @@ end
-- return remove(t,random(1,n))
-- end
-- end
+
+function combine(target,source)
+ -- no copy so if that is needed one needs to deepcopy source first
+ if target then
+ for k, v in next, source do
+ if type(v) == "table" then
+ target[k] = combine(target[k],source[k])
+ else
+ target[k] = v
+ end
+ end
+ return target
+ else
+ return source
+ end
+end
+
+table.combine = combine
+
+-- If needed we can add something (some discussion on the list but I'm not sure if
+-- it makes sense because merging such mixed tables is quite unusual.
+--
+-- function table.himerged(...)
+-- local result = { }
+-- local r = 0
+-- for i=1,select("#",...) do
+-- local s = select(i,...)
+-- if s then
+-- for k, v in next, s do
+-- if type(k) == "number" then
+-- r = r + 1
+-- result[r] = v
+-- else
+-- result[k] = v
+-- end
+-- end
+-- end
+-- end
+-- return result
+-- end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-tar.lua b/Master/texmf-dist/tex/context/base/mkiv/util-tar.lua
new file mode 100644
index 00000000000..c8a8536a71f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-tar.lua
@@ -0,0 +1,359 @@
+if not modules then modules = { } end modules ['util-tar'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local type, tonumber = type, tonumber
+local gsub, escapedpattern = string.gsub, string.escapedpattern
+local nameonly, dirname, makedirs = file.nameonly, file.dirname, dir.makedirs
+local savedata = io.savedata
+local newreader = io.newreader
+
+local report = logs.reporter("tar")
+
+local types = {
+ ["0"] = "file",
+ ["\0"] = "regular",
+ ["1"] = "link",
+ ["2"] = "symbolic", -- reserved
+ ["3"] = "character",
+ ["4"] = "block",
+ ["5"] = "directory",
+ ["6"] = "fifo",
+ ["7"] = "continuation", -- reserved
+ ["x"] = "extended", -- header
+}
+
+local function asstring(str)
+ return str and gsub(str,"[\0 ]+$","") or nil
+end
+
+local function asnumber(str)
+ str = gsub(str,"\0$","")
+ return tonumber(str,8)
+end
+
+local function opentar(whatever,filename)
+ local f = newreader(filename,whatever)
+ if f then
+ f.metadata = {
+ nofpaths = 0,
+ noffiles = 0,
+ noflinks = 0,
+ nofbytes = 0,
+ }
+ return f
+ end
+end
+
+local function readheader(t)
+ -- checksum
+ local p = t:getposition()
+ local h = t:readbytetable(512)
+ t:setposition(p)
+ for i=149,156 do -- nasty, one less
+ h[i] = 0
+ end
+ local c = 256
+ for i=1,512 do
+ c = c + h[i]
+ end
+ --
+ local header = {
+ name = asstring(t:readstring(100)), -- 0
+ mode = asnumber(t:readstring( 8)), -- 100 -- when we write: 0775 octal
+ uid = asnumber(t:readstring( 8)), -- 108
+ gid = asnumber(t:readstring( 8)), -- 116
+ size = asnumber(t:readstring( 12)), -- 124
+ mtime = asnumber(t:readstring( 12)), -- 136
+ checksum = asnumber(t:readstring( 6)), -- 148 -- actually 6 with space and \0
+ dummy = t:skip (2) ,
+ typeflag = t:readstring( 1) , -- 156
+ linkname = asstring(t:readstring(100)), -- 157
+ -- magic = asstring(t:readstring( 6)), -- 257 -- ustar\0
+ -- version = 2 -- 263
+ -- uname = 32 -- 265
+ -- gname = 32 -- 297
+ -- devmajor = 8 -- 329
+ -- devminor = 8 -- 337
+ -- prefix = 155 -- 345
+ padding = t:skip (255) , -- 500
+ }
+ local typeflag = header.typeflag
+ if typeflag then
+ header.filetype = types[typeflag]
+ if c == header.checksum then
+ return header
+ end
+ end
+end
+
+local readers = {
+
+ directory = function(t,h)
+ local metadata = t.metadata
+ local filename = h.name
+ if metadata.verbose then
+ report("%8s %s","",filename)
+ end
+ metadata.nofpaths = metadata.nofpaths + 1
+ return true
+ end,
+
+ file = function(t,h)
+ local metadata = t.metadata
+ local filename = h.name
+ local filesize = h.size
+ local pathname = dirname(filename)
+ if metadata.verbose then
+ report("% 8i : %s",filesize,filename)
+ end
+ if makedirs(pathname) then
+ savedata(filename,t:readstring(filesize))
+ else
+ t.skip(filesize)
+ end
+ local position = t:getposition()
+ local target = position + (512 - position % 512) % 512
+ t:setposition(target)
+ metadata.noffiles = metadata.noffiles + 1
+ metadata.nofbytes = metadata.nofbytes + filesize
+ return true
+ end,
+
+ symbolic = function(t,h)
+ local metadata = t.metadata
+ local filename = h.name
+ local linkname = h.linkname
+ if metadata.verbose then
+ report("%8s %s => %s","",linkname,filename)
+ end
+ metadata.noflinks = metadata.noflinks + 1
+ return true
+ end,
+
+}
+
+local skippers = {
+
+ directory = function(t,h)
+ return true
+ end,
+
+ file = function(t,h)
+ local filesize = h.size
+ local fileoffset = t:getposition()
+ local position = filesize + fileoffset
+ local target = position + (512 - position % 512) % 512
+ t:setposition(target)
+ return fileoffset
+ end,
+
+ symbolic = function(t,h)
+ return true
+ end,
+
+}
+
+local writers = {
+ -- nothing here (yet)
+}
+
+local function saveheader(t,h)
+ local filetype = h.filetype
+ local reader = readers[filetype]
+ if reader then
+ return filetype, reader(t,h)
+ else
+ report("no reader for %s",filetype)
+ end
+end
+
+local function skipheader(t,h)
+ local filetype = h.filetype
+ local skipper = skippers[filetype]
+ if skipper then
+ return filetype, skipper(t,h)
+ else
+ report("no skipper for %s",filetype)
+ end
+end
+
+local function unpacktar(whatever,filename,verbose)
+ local t = opentar(whatever,filename)
+ if t then
+ local metadata = t.metadata
+ statistics.starttiming(metadata)
+ if verbose then
+ if whatever == "string" then
+ report("unpacking: %i bytes",#filename)
+ else
+ report("unpacking: %s",filename)
+ end
+ report("")
+ metadata.verbose = verbose
+ end
+ while true do
+ local h = readheader(t)
+ if not h then
+ break
+ else
+ local filetype, saved = saveheader(t,h)
+ if not saved then
+ break
+ end
+ end
+ end
+ statistics.stoptiming(metadata)
+ metadata.runtime = statistics.elapsed(metadata)
+ if verbose then
+ report("")
+ report("number of paths : %i",metadata.nofpaths)
+ report("number of files : %i",metadata.noffiles)
+ report("number of links : %i",metadata.noflinks)
+ report("number of bytes : %i",metadata.nofbytes)
+ report("")
+ report("runtime needed : %s",statistics.elapsedseconds(metadata))
+ report("")
+ end
+ t.close()
+ return metadata
+ end
+end
+
+local function listtar(whatever,filename,onlyfiles)
+ local t = opentar(whatever,filename)
+ if t then
+ local list, n = { }, 0
+ while true do
+ local h = readheader(t)
+ if not h then
+ break
+ else
+ local filetype, offset = skipheader(t,h)
+ if not offset then
+ break
+ elseif filetype == "file" then
+ n = n + 1 ; list[n] = { filetype, h.name, h.size }
+ elseif filetype == "link" then
+ n = n + 1 ; list[n] = { filetype, h.name, h.linkfile }
+ elseif not onlyfiles then
+ n = n + 1 ; list[n] = { filetype, h.name }
+ end
+ end
+ end
+ t.close()
+ -- can be an option
+ table.sort(list,function(a,b) return a[2] < b[2] end)
+ return list
+ end
+end
+
+local function hashtar(whatever,filename,strip)
+ local t = opentar(whatever,filename)
+ if t then
+ local list = { }
+ if strip then
+ strip = "^" .. escapedpattern(nameonly(nameonly(strip))) .. "/"
+ end
+ while true do
+ local h = readheader(t)
+ if not h then
+ break
+ else
+ local filetype, offset = skipheader(t,h)
+ if not offset then
+ break
+ else
+ local name = h.name
+ if strip then
+ name = gsub(name,strip,"")
+ end
+ if filetype == "file" then
+ list[name] = { offset, h.size }
+ elseif filetype == "link" then
+ list[name] = h.linkname
+ end
+ end
+ end
+ end
+ t.close()
+ return list
+ end
+end
+
+-- weak table ?
+
+local function fetchtar(whatever,archive,filename,list)
+ if not list then
+ list = hashtar(whatever,archive)
+ end
+ if list then
+ local what = list[filename]
+ if type(what) == "string" then
+ what = list[what] -- a link
+ end
+ if what then
+ local t = opentar(whatever,archive)
+ if t then
+ t:setposition(what[1])
+ return t:readstring(what[2])
+ end
+ end
+ end
+end
+
+local function packtar(whatever,filename,verbose)
+ report("packing will be implemented when we need it")
+end
+
+local tar = {
+ files = {
+ unpack = function(...) return unpacktar("file", ...) end,
+ pack = function(...) return packtar ("file", ...) end,
+ list = function(...) return listtar ("file", ...) end,
+ hash = function(...) return hashtar ("file", ...) end,
+ fetch = function(...) return fetchtar ("file", ...) end,
+ },
+ strings = {
+ unpack = function(...) return unpacktar("string",...) end,
+ pack = function(...) return packtar ("string",...) end,
+ list = function(...) return listtar ("string",...) end,
+ hash = function(...) return hashtar ("string",...) end,
+ fetch = function(...) return fetchtar ("string",...) end,
+ },
+ streams = {
+ unpack = function(...) return unpacktar("stream",...) end,
+ pack = function(...) return packtar ("stream",...) end,
+ list = function(...) return listtar ("stream",...) end,
+ hash = function(...) return hashtar ("stream",...) end,
+ fetch = function(...) return fetchtar ("stream",...) end,
+ },
+}
+
+utilities.tar = tar
+
+-- tar.files .unpack("e:/luatex/luametatex-source.tar",true)
+-- tar.streams.unpack("e:/luatex/luametatex-source.tar",true)
+-- tar.strings.unpack(io.loaddata("e:/luatex/luametatex-source.tar"),true)
+
+-- inspect(tar.files .unpack("e:/luatex/luametatex-source.tar"))
+-- inspect(tar.streams.unpack("e:/luatex/luametatex-source.tar"))
+-- inspect(tar.strings.unpack(io.loaddata("e:/luatex/luametatex-source.tar")))
+
+-- inspect(tar.files .list("e:/luatex/luametatex-source.tar",true))
+-- inspect(tar.streams.list("e:/luatex/luametatex-source.tar",true))
+-- inspect(tar.strings.list(io.loaddata("e:/luatex/luametatex-source.tar"),true))
+
+-- local c = os.clock()
+-- local l = tar.files.hash("e:/luatex/luametatex-source.tar")
+-- for i=1,500 do
+-- local s = tar.files.fetch("e:/luatex/luametatex-source.tar", "luametatex-source/source/tex/texbuildpage.c", l)
+-- local s = tar.files.fetch( "e:/luatex/luametatex-source.tar","luametatex-source/source/lua/lmtlibrary.c", l)
+-- end
+-- print(os.clock()-c)
+
+return tar
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-tbs.lua b/Master/texmf-dist/tex/context/base/mkiv/util-tbs.lua
new file mode 100644
index 00000000000..339abcfccd8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-tbs.lua
@@ -0,0 +1,131 @@
+if not modules then modules = { } end modules ['util-tbs'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local tonumber, type, rawget = tonumber, type, rawget
+
+utilities = utilities or {}
+local tablestore = { }
+utilities.tablestore = tablestore
+
+local loaded = { }
+local current = nil
+
+function tablestore.load(namespace,filename)
+ local data = loaded[namespace]
+ if not data then
+ if type(filename) == "table" then
+ data = filename
+ else
+ local fullname = resolvers.findfile(filename)
+ if fullname and fullname ~= "" then
+ if file.suffix(fullname,"json") and utilities.json then
+ data = io.loaddata(fullname)
+ if data then
+ data = utilities.json.tolua(data)
+ else
+ -- error
+ end
+ else
+ data = table.load(fullname)
+ end
+ end
+ end
+ if not data then
+ data = { }
+ end
+ loaded[namespace] = data
+ if metapost then
+ metapost.setparameterset(namespace,data)
+ end
+ end
+ current = data
+ return data
+end
+
+function tablestore.loaded(namespace)
+ return (namespace and loaded[namespace]) or current or { }
+end
+
+function tablestore.known(namespace)
+ return namespace and rawget(loaded,namespace) or false
+end
+
+do
+
+ local find, gmatch, formatters = string.find, string.gmatch, string.formatters
+
+ local P, C, Ct, Cc, R = lpeg.P, lpeg.C, lpeg.Ct, lpeg.Cc, lpeg.R
+
+ local separator = P(".")
+ local equal = P("=")
+ local digit = R("09")
+ local lbracket = P("[")
+ local rbracket = P("]")
+ local index = Ct(Cc("index") * lbracket * (digit^1 / tonumber) * rbracket)
+ local test = Ct(Cc("test") * lbracket * C((1-equal)^1) * equal * C((1-rbracket)^1) * rbracket)
+ local entry = Ct(Cc("entry") * C((1-lbracket-separator)^1))
+
+ local specifier = Ct ((entry + (separator + index + test))^1)
+
+ local function field(namespace,name,default)
+ local data = loaded[namespace] or current
+ if data then
+ -- if find(name,"%[") then
+ local t = lpeg.match(specifier,name)
+ for i=1,#t do
+ local ti = t[i]
+ local t1 = ti[1]
+ local k = ti[2]
+ if t1 == "test" then
+ local v = ti[3]
+ for j=1,#data do
+ local dj = data[j]
+ if dj[k] == v then
+ data = dj
+ goto OKAY
+ end
+ end
+ return
+ else
+ data = data[k]
+ if not data then
+ return
+ end
+ end
+ ::OKAY::
+ end
+ -- else
+ -- for s in gmatch(name,"[^%.]+") do
+ -- data = data[s] or data[tonumber(s) or 0]
+ -- if not data then
+ -- return
+ -- end
+ -- end
+ -- end
+ return data
+ end
+ end
+
+
+ function length(namespace,name,default)
+ local data = field(namespace,name)
+ return type(data) == "table" and #data or 0
+ end
+
+ function formatted(namespace,name,fmt)
+ local data = field(namespace,name)
+ if data then
+ return formatters[fmt](data)
+ end
+ end
+
+ tablestore.field = field
+ tablestore.length = length
+ tablestore.formatted = formatted
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkiv/util-zip.lua b/Master/texmf-dist/tex/context/base/mkiv/util-zip.lua
index f87e391a181..4ceec7afdbb 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/util-zip.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/util-zip.lua
@@ -13,13 +13,23 @@ if not modules then modules = { } end modules ['util-zip'] = {
-- keep some hybrid functionality.
local type, tostring, tonumber = type, tostring, tonumber
-local sort = table.sort
+local sort, concat = table.sort, table.concat
local find, format, sub, gsub = string.find, string.format, string.sub, string.gsub
local osdate, ostime, osclock = os.date, os.time, os.clock
local ioopen = io.open
local loaddata, savedata = io.loaddata, io.savedata
local filejoin, isdir, dirname, mkdirs = file.join, lfs.isdir, file.dirname, dir.mkdirs
+local suffix, suffixes = file.suffix, file.suffixes
+local openfile = io.open
+
+gzip = gzip or { } -- so in luatex we keep the old ones too
+
+if not zlib then
+ zlib = xzip -- in luametatex we shadow the old one
+elseif not xzip then
+ xzip = zlib
+end
local files = utilities.files
local openfile = files.open
@@ -34,32 +44,18 @@ local band = bit32.band
local rshift = bit32.rshift
local lshift = bit32.lshift
-local decompress, expandsize, calculatecrc
-
--- if flate then
---
--- decompress = flate.flate_decompress
--- calculatecrc = flate.update_crc32
---
--- else
+local zlibdecompress = zlib.decompress
+local zlibdecompresssize = zlib.decompresssize
+local zlibchecksum = zlib.crc32
- local zlibdecompress = zlib.decompress
- local zlibexpandsize = zlib.expandsize
- local zlibchecksum = zlib.crc32
-
- decompress = function(source)
- return zlibdecompress(source,-15) -- auto
- end
-
- expandsize = zlibexpandsize and function(source,targetsize)
- return zlibexpandsize(source,targetsize,-15) -- auto
- end or decompress
-
- calculatecrc = function(buffer,initial)
- return zlibchecksum(initial or 0,buffer)
- end
+if not CONTEXTLMTXMODE or CONTEXTLMTXMODE == 0 then
+ local cs = zlibchecksum
+ zlibchecksum = function(str,n) return cs(n or 0, str) end
+end
--- end
+local decompress = function(source) return zlibdecompress (source,-15) end -- auto
+local decompresssize = function(source,targetsize) return zlibdecompresssize(source,targetsize,-15) end -- auto
+local calculatecrc = function(buffer,initial) return zlibchecksum (initial or 0,buffer) end
local zipfiles = { }
utilities.zipfiles = zipfiles
@@ -201,8 +197,8 @@ local openzipfile, closezipfile, unzipfile, foundzipfile, getziphash, getziplist
setposition(handle,position)
local result = readstring(handle,compressed)
if data.method == 8 then
- if expandsize then
- result = expandsize(result,data.uncompressed)
+ if decompresssize then
+ result = decompresssize(result,data.uncompressed)
else
result = decompress(result)
end
@@ -516,48 +512,173 @@ if xzip then -- flate then do
end
-zipfiles.gunzipfile = gzip.load
+-- todo: compress/decompress that work with offset in string
--- if flate then
---
--- local streams = utilities.streams
--- local openfile = streams.open
--- local closestream = streams.close
--- local setposition = streams.setposition
--- local getsize = streams.size
--- local readcardinal4 = streams.readcardinal4le
--- local getstring = streams.getstring
--- local decompress = flate.gz_decompress
---
--- -- id1=1 id2=1 method=1 flags=1 mtime=4(le) extra=1 os=1
--- -- flags:8 comment=...<nul> flags:4 name=...<nul> flags:2 extra=...<nul> flags:1 crc=2
--- -- data:?
--- -- crc=4 size=4
---
--- function zipfiles.gunzipfile(filename)
--- local strm = openfile(filename)
--- if strm then
--- setposition(strm,getsize(strm) - 4 + 1)
--- local size = readcardinal4(strm)
--- local data = decompress(getstring(strm),size)
--- closestream(strm)
--- return data
--- end
--- end
+-- We only have a few official methods here:
--
--- elseif gzip then
+-- local decompressed = gzip.load (filename)
+-- local resultsize = gzip.save (filename,compresslevel)
+-- local compressed = gzip.compress (str,compresslevel)
+-- local decompressed = gzip.decompress (str)
+-- local iscompressed = gzip.compressed (str)
+-- local suffix, okay = gzip.suffix (filename)
--
--- local openfile = gzip.open
+-- In LuaMetaTeX we have only xzip which implements a very few methods:
--
--- function zipfiles.gunzipfile(filename)
--- local g = openfile(filename,"rb")
--- if g then
--- local d = g:read("*a")
--- d:close()
--- return d
--- end
--- end
---
--- end
+-- compress (str,level,method,window,memory,strategy)
+-- decompress (str,window)
+-- adler32 (str,checksum)
+-- crc32 (str,checksum)
+
+local pattern = "^\x1F\x8B\x08"
+local gziplevel = 3
+
+function gzip.suffix(filename)
+ local suffix, extra = suffixes(filename)
+ local gzipped = extra == "gz"
+ return suffix, gzipped
+end
+
+function gzip.compressed(s)
+ return s and find(s,pattern)
+end
+
+local getdecompressed
+local putcompressed
+
+if gzip.compress then
+
+ local gzipwindow = 15 + 16 -- +16: gzip, +32: gzip|zlib
+
+ local compress = zlib.compress
+ local decompress = zlib.decompress
+
+ getdecompressed = function(str)
+ return decompress(str,gzipwindow) -- pass offset
+ end
+
+ putcompressed = function(str,level)
+ return compress(str,level or gziplevel,nil,gzipwindow)
+ end
+
+else
+
+ -- Special window values are: flate: -15, zlib: 15, gzip : -15
+
+ local gzipwindow = -15 -- miniz needs this
+ local identifier = "\x1F\x8B"
+
+ local compress = zlib.compress
+ local decompress = zlib.decompress
+ local zlibchecksum = zlib.crc32
+
+ if not CONTEXTLMTXMODE or CONTEXTLMTXMODE == 0 then
+ local cs = zlibchecksum
+ zlibchecksum = function(str,n) return cs(n or 0, str) end
+ end
+
+ local streams = utilities.streams
+ local openstream = streams.openstring
+ local closestream = streams.close
+ local getposition = streams.getposition
+ local readbyte = streams.readbyte
+ local readcardinal4 = streams.readcardinal4le
+ local readcardinal2 = streams.readcardinal2le
+ local readstring = streams.readstring
+ local readcstring = streams.readcstring
+ local skipbytes = streams.skip
+
+ local tocardinal1 = streams.tocardinal1
+ local tocardinal4 = streams.tocardinal4le
+
+ getdecompressed = function(str)
+ local s = openstream(str)
+ local identifier = readstring(s,2)
+ local method = readbyte(s,1)
+ local flags = readbyte(s,1)
+ local timestamp = readcardinal4(s)
+ local compression = readbyte(s,1)
+ local operating = readbyte(s,1)
+ -- local isjusttext = (flags & 0x01 ~= 0) and true or false
+ -- local extrasize = (flags & 0x04 ~= 0) and readcardinal2(s) or 0
+ -- local filename = (flags & 0x08 ~= 0) and readcstring(s) or ""
+ -- local comment = (flags & 0x10 ~= 0) and readcstring(s) or ""
+ -- local checksum = (flags & 0x02 ~= 0) and readcardinal2(s) or 0
+ local isjusttext = band(flags,0x01) ~= 0 and true or false
+ local extrasize = band(flags,0x04) ~= 0 and readcardinal2(s) or 0
+ local filename = band(flags,0x08) ~= 0 and readcstring(s) or ""
+ local comment = band(flags,0x10) ~= 0 and readcstring(s) or ""
+ local checksum = band(flags,0x02) ~= 0 and readcardinal2(s) or 0
+ local compressed = readstring(s,#str)
+ local data = decompress(compressed,gzipwindow) -- pass offset
+ return data
+ end
+
+ putcompressed = function(str,level,originalname)
+ return concat {
+ identifier, -- 2 identifier
+ tocardinal1(0x08), -- 1 method
+ tocardinal1(0x08), -- 1 flags
+ tocardinal4(os.time()), -- 4 mtime
+ tocardinal1(0x02), -- 1 compression (2 or 4)
+ tocardinal1(0xFF), -- 1 operating
+ (originalname or "unknownname") .. "\0",
+ compress(str,level,nil,gzipwindow),
+ tocardinal4(zlibchecksum(str)), -- 4
+ tocardinal4(#str), -- 4
+ }
+ end
+
+end
+
+function gzip.load(filename)
+ local f = openfile(filename,"rb")
+ if not f then
+ -- invalid file
+ else
+ local data = f:read("*all")
+ f:close()
+ if data and data ~= "" then
+ if suffix(filename) == "gz" then
+ data = getdecompressed(data)
+ end
+ return data
+ end
+ end
+end
+
+function gzip.save(filename,data,level,originalname)
+ if suffix(filename) ~= "gz" then
+ filename = filename .. ".gz"
+ end
+ local f = openfile(filename,"wb")
+ if f then
+ data = putcompressed(data or "",level or gziplevel,originalname)
+ f:write(data)
+ f:close()
+ return #data
+ end
+end
+
+function gzip.compress(s,level)
+ if s and not find(s,pattern) then
+ if not level then
+ level = gziplevel
+ elseif level <= 0 then
+ return s
+ elseif level > 9 then
+ level = 9
+ end
+ return putcompressed(s,level or gziplevel) or s
+ end
+end
+
+function gzip.decompress(s)
+ if s and find(s,pattern) then
+ return getdecompressed(s)
+ else
+ return s
+ end
+end
return zipfiles
diff --git a/Master/texmf-dist/tex/context/base/mkxl/anch-bar.mkxl b/Master/texmf-dist/tex/context/base/mkxl/anch-bar.mkxl
index 3587eb8a052..f99e6142854 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/anch-bar.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/anch-bar.mkxl
@@ -15,10 +15,8 @@
\unprotect
-%D This can be done better now ...
-
-%D We will implement a sidebar mechanism using the functionality from
-%D \type {core-pos}.
+%D We will implement a sidebar mechanism using the functionality from \type
+%D {core-pos}.
%D
%D \starttyping
%D \definesidebar[whow][rulecolor=green,distance=0pt]
@@ -54,15 +52,17 @@
%D \input tufte
%D \stopsidebar
%D \stoptyping
+%D
+%D This can be done better now ... maybe also by using the syncpos features.
\installcorenamespace{sidebar}
\installcommandhandler \??sidebar {sidebar} \??sidebar
-\newcount\c_anch_sidebars_n
-\newcount\c_anch_sidebars_current % local
-\newdimen\d_anch_sidebars_distance
-\newcount\c_anch_sidebars_level
+\newinteger \c_anch_sidebars_n
+\newinteger \c_anch_sidebars_current % local
+\newdimension\d_anch_sidebars_distance
+\newinteger \c_anch_sidebars_level
% \setupMPvariables
% [mpos:sidebar]
@@ -78,6 +78,7 @@
\c!bottomoffset=\zeropoint,
\c!distance=.5\bodyfontsize,
\c!level=,
+ \c!location=\v!left,
\c!leftmargindistance=\zeropoint]
\aliased\let\setupsidebars\setupsidebar
@@ -85,8 +86,8 @@
\permanent\tolerant\protected\def\startsidebar[#1]#*[#2]%
{\bgroup
\dontleavehmode
- \advance\c_anch_sidebars_level\plusone
- \global\advance\c_anch_sidebars_n\plusone
+ \advanceby\c_anch_sidebars_level\plusone
+ \global\advanceby\c_anch_sidebars_n\plusone
\c_anch_sidebars_current\c_anch_sidebars_n\relax % relax needed
\ifhastok={#1}%
\edef\currentsidebar{\the\c_anch_sidebars_level}%
@@ -102,23 +103,21 @@
\ifempty\m_level
\ifnum\c_anch_sidebars_level=\plusone
\ifzeropt\scratchdimen
- \advance\d_anch_sidebars_distance\scratchdistance\relax
+ \advanceby\d_anch_sidebars_distance\scratchdistance\relax
\else
\d_anch_sidebars_distance\scratchdimen
\fi
\else
- \advance\d_anch_sidebars_distance\scratchdistance\relax
+ \advanceby\d_anch_sidebars_distance\scratchdistance\relax
\fi
- \else
- \ifnum\m_level=\plusone
- \ifzeropt\scratchdimen
- \advance\d_anch_sidebars_distance\scratchdistance\relax
- \else
- \d_anch_sidebars_distance\scratchdimen
- \fi
+ \orelse\ifnum\m_level=\plusone
+ \ifzeropt\scratchdimen
+ \advanceby\d_anch_sidebars_distance\scratchdistance\relax
\else
- \d_anch_sidebars_distance\dimexpr\scratchdimen+\numexpr\m_level-\plusone\relax\dimexpr\scratchdistance\relax\relax
+ \d_anch_sidebars_distance\scratchdimen
\fi
+ \else
+ \d_anch_sidebars_distance\dimexpr\scratchdimen+\numexpr\m_level-\plusone\relax\dimexpr\scratchdistance\relax\relax
\fi
\startpositionoverlay{\v!text-1}%
\normalexpanded{\setMPpositiongraphicrange % maybe expand in definition
@@ -126,6 +125,7 @@
{e:sidebar:\the\c_anch_sidebars_n}%
{mpos:sidebar}%
{self=sidebar:\the\c_anch_sidebars_n,
+ location=\mplocation{\sidebarparameter\c!location},
linewidth=\sidebarparameter\c!rulethickness,
linecolor=\sidebarparameter\c!rulecolor,
alternative=\sidebarparameter\c!alternative,
@@ -146,19 +146,13 @@
%D one lua call).
\startMPpositionmethod{mpos:sidebar}
- \startMPpositiongraphic{mpos:sidebar}{linecolor,linewidth,distance,alternative}%
- anch_sidebars_draw (
- \MPp\MPbself,\MPp\MPeself,\MPy\MPbself,\MPy\MPeself,\MPh\MPbself,\MPd\MPeself,
- \MPx{\textanchor},\MPy{\textanchor},\MPw{\textanchor},\MPh{\textanchor},
- \MPvar{alternative},\MPvar{distance},\MPvar{linewidth},\MPvar{linecolor},
- \MPvar{topoffset}, \MPvar{bottomoffset}
- ) ;
+ \startMPpositiongraphic{mpos:sidebar}{linecolor,linewidth,distance,alternative}
+ anch_sidebars_draw("\MPbself", "\MPeself", "\textanchor") ;
\stopMPpositiongraphic
\MPpositiongraphic{mpos:sidebar}{}%
\stopMPpositionmethod
-%D We now reimplement the \MKII\ margin rules handler in a more
-%D modern way.
+%D We now reimplement the \MKII\ margin rules handler in a more modern way.
%D
%D \setupmarginrules
%D [rulecolor=darkred,
diff --git a/Master/texmf-dist/tex/context/base/mkxl/anch-bck.mklx b/Master/texmf-dist/tex/context/base/mkxl/anch-bck.mklx
index 36416c93da3..ea6999f45da 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/anch-bck.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/anch-bck.mklx
@@ -31,14 +31,14 @@
% Paragraph positions:
-\newcount\c_anch_backgrounds_text_n
+\newinteger\c_anch_backgrounds_text_n
\def\v_anch_backgrounds_text_current {tbg:0}
\def\v_anch_backgrounds_anchor_current_b{b:\v_anch_backgrounds_text_current}
\def\v_anch_backgrounds_anchor_current_e{e:\v_anch_backgrounds_text_current}
\def\anch_backgrounds_text_initialize_next
- {\global\advance\c_anch_backgrounds_text_n\plusone
+ {\global\advanceby\c_anch_backgrounds_text_n\plusone
\edef\v_anch_backgrounds_text_current{tbg:\number\c_anch_backgrounds_text_n}}
% The first position can be used in the middle of a paragraph in which case we're
@@ -57,7 +57,7 @@
%D Some MP
-\newcount\MPparcounter
+\newinteger\MPparcounter
\permanent\def\MPself {\MPvar{self}}
\permanent\def\MPbself {b:\MPvar{self}}
@@ -89,7 +89,7 @@
% \readfile{ward}{}{}
% \stoptextbackground
-\newcount\c_anch_backgrounds_text_level
+\newinteger\c_anch_backgrounds_text_level
\installcorenamespace{textbackground}
\installcorenamespace{textbackgroundlevel}
@@ -97,9 +97,9 @@
\installcommandhandler \??textbackground {textbackground} \??textbackground
\appendtoks
- \frozen\instance\setuevalue{\currenttextbackground}{\groupedcommand{\starttextbackground[\currenttextbackground]}{\stoptextbackground}}%
- \frozen\instance\setuevalue{\e!start\currenttextbackground}{\starttextbackground[\currenttextbackground]}%
- \frozen\instance\setuevalue{\e!stop \currenttextbackground}{\stoptextbackground}%
+ \frozen\instance\protected\edefcsname \currenttextbackground\endcsname{\groupedcommand{\starttextbackground[\currenttextbackground]}{\stoptextbackground}}%
+ \frozen\instance\protected\edefcsname\e!start\currenttextbackground\endcsname{\starttextbackground[\currenttextbackground]}%
+ \frozen\instance\protected\edefcsname\e!stop \currenttextbackground\endcsname{\stoptextbackground}%
\to \everydefinetextbackground
\newconstant \c_anch_backgrounds_pos_state
@@ -119,37 +119,26 @@
\eposkind\v_anch_backgrounds_text_current\c_anch_backgrounds_pos_state
\fi}
-% \permanent\tolerant\protected\def\starttextbackground[#tag]#spacer[#settings]%
-% {\begingroup
-% \advance\c_anch_backgrounds_text_level\plusone
-% \def\currenttextbackground{#tag}%
-% \anch_backgrounds_text_initialize_next
-% \ifparameter#settings\or
-% \setupcurrenttextbackground[#settings]%
-% \fi
-% \doifelse{\textbackgroundparameter\c!state}\v!start
-% \anch_backgrounds_text_preset_yes
-% \anch_backgrounds_text_preset_nop
-% \anch_backgrounds_text_start_indeed}
-
% ugly hack to register usage
-\newcount \c_anch_backgrounds_text_count
-\newcount \c_anch_backgrounds_text_check
+\newinteger \c_anch_backgrounds_text_count
+\newinteger \c_anch_backgrounds_text_check
\newconstant\c_anch_backgrounds_text_state
\permanent\tolerant\protected\def\starttextbackground[#tag]#spacer[#settings]%
{\begingroup
- \global\advance\c_anch_backgrounds_text_count\plusone
- \advance\c_anch_backgrounds_text_level\plusone
+ \global\advanceby\c_anch_backgrounds_text_count\plusone
+ \advanceby\c_anch_backgrounds_text_level\plusone
\def\currenttextbackground{#tag}%
\anch_backgrounds_text_initialize_next
\ifparameter#settings\or
\setupcurrenttextbackground[#settings]%
\fi
- \doifelse{\textbackgroundparameter\c!state}\v!start
+ \ifcstok{\textbackgroundparameter\c!state}\v!start
\anch_backgrounds_text_preset_yes
+ \else
\anch_backgrounds_text_preset_nop
+ \fi
\anch_backgrounds_text_start_indeed}
\def\anch_backgrounds_text_level_start
@@ -171,11 +160,11 @@
\let\anch_backgrounds_text_start_indeed\relax
\let\anch_backgrounds_text_stop_indeed \relax
-\setvalue{\??textbackgroundlevel\v!text}%
+\defcsname\??textbackgroundlevel\v!text\endcsname
{\let\anch_backgrounds_text_start_indeed\anch_backgrounds_text_start_txt
\let\anch_backgrounds_text_stop_indeed \anch_backgrounds_text_stop_txt}
-\setvalue{\??textbackgroundlevel\v!paragraph}%
+\defcsname\??textbackgroundlevel\v!paragraph\endcsname
{\ifnum\c_anch_backgrounds_text_level>\textbackgroundparameter\c!criterium\relax
\let\anch_backgrounds_text_start_indeed\anch_backgrounds_text_start_txt
\let\anch_backgrounds_text_stop_indeed \anch_backgrounds_text_stop_txt
@@ -184,11 +173,11 @@
\let\anch_backgrounds_text_stop_indeed \anch_backgrounds_text_stop_par
\fi}
-\setvalue{\??textbackgroundlevel\v!always}%
+\defcsname\??textbackgroundlevel\v!always\endcsname
{\let\anch_backgrounds_text_start_indeed\anch_backgrounds_text_start_par
\let\anch_backgrounds_text_stop_indeed \anch_backgrounds_text_stop_par}
-\setvalue{\??textbackgroundlevel\v!none}%
+\defcsname\??textbackgroundlevel\v!none\endcsname
{\anch_backgrounds_text_preset_nop}
\def\anch_backgrounds_text_preset_nop
@@ -256,7 +245,7 @@
\carryoverpar\endgroup}
\def\anch_backgrounds_text_start_txt
- {\ifvmode \dontleavehmode \fi
+ {\ifvmode\dontleavehmode\fi
\begingroup
\c_anch_backgrounds_pos_state\plusone
\usetextbackgroundstyleandcolor\c!style\c!color
@@ -266,7 +255,7 @@
{\anch_backgrounds_epos
\carryoverpar\endgroup}
-\newskip\textbackgroundskip
+\newgluespec\textbackgroundskip
% maybe we should have a resetter for such compensation struts
@@ -305,10 +294,8 @@
\kern\textbackgroundskip\nobreak
\fi
\fi
- \dosetleftskipadaption{\textbackgroundparameter\c!leftoffset}%
- \advance\leftskip\leftskipadaption
- \dosetleftskipadaption{\textbackgroundparameter\c!rightoffset}%
- \advance\rightskip\leftskipadaption
+ \doadaptleftskip {\textbackgroundparameter\c!leftoffset}%
+ \doadaptrightskip{\textbackgroundparameter\c!rightoffset}%
% new
\dosetraggedcommand{\textbackgroundparameter\c!align}%
\raggedcommand
@@ -324,7 +311,7 @@
\removelastskip % new
\spac_helpers_assign_skip\textbackgroundskip{\textbackgroundparameter\c!bottomoffset}%
\ifdim\lastskip>\zeropoint
- \advance\textbackgroundskip-\lastskip
+ \advanceby\textbackgroundskip-\lastskip
\fi
\ifgridsnapping
\orelse\ifdim\textbackgroundskip>\zeropoint
@@ -366,9 +353,6 @@
\definesystemattribute[textbackground][public]
-% \def\page_prepare_backgrounds#1%
-% {\clf_collectbackgrounds\realpageno#1\relax}
-
\def\anch_backgrounds_bpos
{\ifconditional\c_anch_backgrounds_pos_no_shape
\c_attr_textbackground\attributeunsetvalue
@@ -408,10 +392,10 @@
\newconditional\c_strc_floats_mark_as_free
\newconditional\c_strc_floats_trace_free
\newconstant \c_free_offset_kind
-\newdimen \d_free_offset_left
-\newdimen \d_free_offset_right
-\newdimen \d_free_offset_top
-\newdimen \d_free_offset_bottom
+\newdimension \d_free_offset_left
+\newdimension \d_free_offset_right
+\newdimension \d_free_offset_top
+\newdimension \d_free_offset_bottom
\installtextracker{floats.freeregion}
{\settrue \c_strc_floats_trace_free}
@@ -558,35 +542,14 @@
gridcolor=red,
linecolor=blue,
fillcolor=lightgray,
- filloffset=\!!zeropoint,
+ filloffset=\zeropoint,
linewidth=\linewidth,
gridwidth=\linewidth,
- gridshift=\!!zeropoint,
+ gridshift=\zeropoint,
lineradius=.5\bodyfontsize,
- lineoffset=\!!zeropoint,
+ lineoffset=\zeropoint,
dashtype=1]
-\startuseMPgraphic{mpos:region:setup}
- boxgridtype := \MPvar{gridtype} ;
- boxlinetype := \MPvar{linetype} ;
- boxfilltype := \MPvar{filltype} ;
- boxdashtype := \MPvar{dashtype} ;
- boxfilloffset := \MPvar{filloffset} ;
- boxlinewidth := \MPvar{linewidth} ;
- boxgridwidth := \MPvar{gridwidth} ;
- boxgridshift := \MPvar{gridshift} ;
- boxlineradius := \MPvar{lineradius} ;
- boxlineoffset := \MPvar{lineoffset} ;
- %
- def boxgridcolor = \MPvar{gridcolor} enddef ;
- def boxlinecolor = \MPvar{linecolor} enddef ;
- def boxfillcolor = \MPvar{fillcolor} enddef ;
- %
- def boxgridoptions = withcolor boxgridcolor enddef ;
- def boxlineoptions = withcolor boxlinecolor enddef ;
- def boxfilloptions = withcolor boxfillcolor enddef ;
-\stopuseMPgraphic
-
\startuseMPgraphic{mpos:region:extra}
% user stuff
\stopuseMPgraphic
@@ -598,8 +561,7 @@
\startMPpositiongraphic{mpos:region}{fillcolor,filloffset,linecolor,gridcolor,linewidth,gridwidth,gridshift,lineradius,lineoffset}
\includeMPgraphic{mpos:region:setup} ;
\includeMPgraphic{mpos:region:extra} ;
- % \getmultipars("self","anchor") ;
- \MPgetmultipars{\MPvar{self}}{\MPanchorid} ;
+ getmultipars("self", "anchor") ;
\includeMPgraphic{\MPvar{mp}} ;
\includeMPgraphic{mpos:region:anchor} ;
\stopMPpositiongraphic
@@ -670,21 +632,12 @@
lineoffset=5pt,
linewidth=1pt]
-% \startMPpositiongraphic{mpos:encircle}{linecolor,fillcolor,linewidth,lineoffset}
-% getposboxes("self","anchor") ;
-% if nofposboxes = 1 :
-% posboxes[1] := posboxes[1] enlarged \MPvar{lineoffset} cornered \MPvar{lineoffset} ;
-% fill posboxes[1] withcolor \MPvar{fillcolor} ;
-% draw posboxes[1] withpen pencircle scaled \MPvar{linewidth} withcolor \MPvar{linecolor} ;
-% fi ;
-% \stopMPpositiongraphic
-
\startMPpositiongraphic{mpos:encircle}{linecolor,fillcolor,linewidth,lineoffset}
getposboxes("self","anchor") ;
if nofposboxes = 1 :
posboxes[1] := (posboxes[1] enlarged mpvar "lineoffset") cornered mpvar "lineoffset" ;
fill posboxes[1] withcolor mpvar "fillcolor" ;
- draw posboxes[1] withpen pencircle scaled mpvar "linewidth" withcolor mpvar "linecolor" ;
+ draw posboxes[1] withpen pencircle scaled mpvar "linewidth" withcolor mpvar "linecolor" ;
fi ;
\stopMPpositiongraphic
@@ -694,14 +647,6 @@
lineoffset=.25ex,
linewidth=1pt]
-% \startMPpositiongraphic{mpos:connect}{linecolor,lineoffset,linewidth}
-% boxlinewidth := \MPvar{linewidth} ;
-% boxlineoffset := \MPvar{lineoffset} ;
-% def boxlineoptions = withcolor \MPvar{linecolor} enddef ;
-% getposboxes("from,to","anchor") ;
-% connect_positions ;
-% \stopMPpositiongraphic
-
\startMPpositiongraphic{mpos:connect}{linecolor,lineoffset,linewidth}
boxlinewidth := mpvar "linewidth" ;
boxlineoffset := mpvar "lineoffset" ;
diff --git a/Master/texmf-dist/tex/context/base/mkxl/anch-box.mkxl b/Master/texmf-dist/tex/context/base/mkxl/anch-box.mkxl
new file mode 100644
index 00000000000..d480b221483
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/anch-box.mkxl
@@ -0,0 +1,250 @@
+%D \module
+%D [ file=anch-box,
+%D version=2022.03.25,
+%D title=\CONTEXT\ Anchoring Macros,
+%D subtitle=Boxes,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Anchoring Macros / Boxes}
+
+\unprotect
+
+\startMPpositiongraphic{mypos:boxanchor:arrow}{}% from,to,linecolor,text,alternative,leftedge,rightedge,distance}
+ anch_box_arrows_draw ;
+\stopMPpositiongraphic
+
+\def\anch_box_connect_parameters#1#2%
+ {span=no,
+ from=\boxanchorposone,%
+ to=\boxanchorpostwo,%
+ distance={\namedboxanchorcontentparameter{#1}\c!distance},%
+ dashtype={\namedboxanchorcontentparameter{#1}\c!dash},%
+ arrow={\namedboxanchorcontentparameter{#1}\c!arrow},%
+ alternative={\namedboxanchorcontentparameter{#1}\c!alternative},%
+ text={\namedboxanchorcontentparameter{#1}\c!text},%
+ rulethickness={\namedboxanchorcontentparameter{#1}\c!rulethickness},%
+ linecolor=\namedboxanchorcontentparameter{#1}{\c!rulecolor},
+ #2}
+
+\tolerant\permanent\protected\def\connectboxanchors[#1]#*[#2]#*[#3]#*[#4]#*#:#5#6%
+ {\begingroup
+ %
+ \edef\boxanchorone{\boxanchoringclass:#5}%
+ \edef\boxanchortwo{\boxanchoringclass:#6}%
+% \edef\boxanchorone{#5}%
+% \edef\boxanchortwo{#6}%
+ %
+ \doifnotanchorbox{\boxanchorone}{\defineboxanchor[\boxanchorone]}%
+ \doifnotanchorbox{\boxanchortwo}{\defineboxanchor[\boxanchortwo]}%
+ %
+ \edef\boxanchorposone{#1:#2:\namespacedboxanchor{\boxanchorone}}%
+ \edef\boxanchorpostwo{#1:#2:\namespacedboxanchor{\boxanchortwo}}%
+% \edef\boxanchorposone{#1:#2:\number\namedboxanchor{\boxanchorone}}%
+% \edef\boxanchorpostwo{#1:#2:\number\namedboxanchor{\boxanchortwo}}%
+ %
+ \setboxanchor[\boxanchorone][#1][#3]\hpack{\xypos{\boxanchorposone}}%
+ \setboxanchor[\boxanchortwo][#2][#4]\hpack{\xypos{\boxanchorpostwo}}%
+ %
+ \ifparameter#3\or\setupboxanchorcontent[#1][#3]\fi
+ \ifparameter#4\or\setupboxanchorcontent[#2][#4]\fi % used ?
+ %
+ \normalexpanded{%
+ \startpositionoverlay{text+1}% will become configurable region
+ \setMPpositiongraphic
+ {\boxanchorposone}%
+ {\namedboxanchorcontentparameter{#1}\c!mp}%
+ {\anch_box_connect_parameters{#1}{#3}}%
+ \stoppositionoverlay
+ }%
+ \ifcstok{\namedboxanchorcontentparameter{#1}\c!page}\v!yes
+ \normalexpanded{%
+ \startpositionoverlay{text+1}% will become configurable region
+ \setMPpositiongraphic
+ {\boxanchorpostwo}%
+ {\namedboxanchorcontentparameter{#1}\c!mp}%
+ {\anch_box_connect_parameters{#1}{#3}}%
+ \stoppositionoverlay
+ }%
+ \fi
+ \endgroup}
+
+% dedicated or not
+
+\tolerant\permanent\protected\def\connectmatrixanchors[#1]#*[#2]#*[#3]#*[#4]#*#:#5#6%
+ {\begingroup
+ \doifelseinset{#5}{\m_anch_matrix_list}\donetrue\donefalse
+ \ifdone\else
+ \defineboxanchor[#5]%
+ \setboxanchor[#5][#1][#3]\hpack{\xypos{\namespacedboxanchor{#5}}}%
+ \xdef\m_anch_matrix_list{\m_anch_matrix_list,#5}%
+ \fi
+ \ifparameter#3\or\setupboxanchorcontent[#1][#3]\fi
+ \doifelseinset{#6}{\m_anch_matrix_list}\donetrue\donefalse
+ \ifdone\else
+ \defineboxanchor[#6]%
+ \setboxanchor[#6][#2][#4]\hpack{\xypos{\namespacedboxanchor{#6}}}%
+ \xdef\m_anch_matrix_list{\m_anch_matrix_list,#6}%
+ \fi
+ \ifparameter#4\or\setupboxanchorcontent[#1][#4]\fi
+ \startpositionoverlay{text-1}% will become configurable region
+ \setMPpositiongraphic
+ {\namespacedboxanchor{#5}}%
+ {\namedboxanchorcontentparameter{#1}\c!mp}%
+ {from=\namespacedboxanchor{#5},%
+ to=\namespacedboxanchor{#6},%
+ distance={\namedboxanchorcontentparameter{#1}\c!distance},%
+ dashtype={\namedboxanchorcontentparameter{#1}\c!dash},%
+ arrow={\namedboxanchorcontentparameter{#1}\c!arrow},%
+ alternative={\namedboxanchorcontentparameter{#1}\c!alternative},%
+ text={\namedboxanchorcontentparameter{#1}\c!text},%
+ rulethickness={\namedboxanchorcontentparameter{#1}\c!rulethickness},%
+ linecolor=\namedboxanchorcontentparameter{#1}{\c!rulecolor},%
+ % matrix specific:
+ leftedge=\namespacedboxanchor\c!leftedge,%
+ rightedge=\namespacedboxanchor\c!rightedge}%
+ \stoppositionoverlay
+ \endgroup}
+
+\lettonothing\m_anch_matrix_list
+
+\tolerant\permanent\protected\def\startmatrixanchors
+ {\glet\m_anch_matrix_list\empty
+ \defineboxanchor[\v!leftedge]%
+ \setboxanchor[\v!leftedge][\v!leftedge]\hpack{\xypos{\namespacedboxanchor\v!leftedge}}%
+ \defineboxanchor[\v!rightedge]%
+ \setboxanchor[\v!rightedge][\v!rightedge]\hpack{\xypos{\namespacedboxanchor\v!rightedge}}%
+ \setupmathfence[\c!leftsource=\v!leftedge,\c!rightsource=\v!rightedge]}
+
+\tolerant\permanent\protected\def\stopmatrixanchors
+ {\setupmathfence[\c!leftsource=,\c!rightsource=]%
+ \glet\m_anch_matrix_list\empty}
+
+\defineboxanchorcontent
+ [arrow]
+ [\c!mp=mypos:boxanchor:arrow,
+ \c!distance=1.5\exheight,
+ \c!rulethickness=\linewidth,
+ \c!rulecolor=textcolor]
+
+\defineboxanchorcontent
+ [\v!top]
+ [arrow]
+ [\c!corner=\v!height,
+ \c!location=\v!depth,
+ \c!yoffset=.25\exheight,
+ \c!alternative=\v!top]
+
+\defineboxanchorcontent
+ [\v!bottom]
+ [arrow]
+ [\c!corner=\v!depth,
+ \c!location=\v!height,
+ \c!yoffset=-\namedboxanchorcontentparameter{top}\c!yoffset,
+ \c!alternative=\v!bottom]
+
+\defineboxanchorcontent
+ [\v!left]
+ [arrow]
+ [\c!corner={\v!middle,\v!left},
+ \c!xoffset=-1.25\emwidth,
+ \c!alternative=\v!left]
+
+\defineboxanchorcontent
+ [\v!right]
+ [arrow]
+ [\c!corner={\v!middle,\v!right},
+ \c!xoffset=-\namedboxanchorcontentparameter{left}\c!xoffset,
+ \c!alternative=\v!right]
+
+\defineboxanchorcontent
+ [\v!leftedge]
+ [\v!left]
+ [\c!xoffset=-.25\exheight]
+
+\defineboxanchorcontent
+ [\v!rightedge]
+ [\v!right]
+ [\c!xoffset=0.25\exheight] % we are centered
+
+\defineboxanchorcontent[\v!middle:\v!bottom][\v!bottom][\c!alternative=\v!middle,\c!yoffset=-.5\exheight]
+\defineboxanchorcontent[\v!middle:\v!top ][\v!top ][\c!alternative=\v!middle,\c!yoffset=.5\exheight]
+\defineboxanchorcontent[\v!middle:\v!left ][\v!left ][\c!alternative=\v!middle,\c!xoffset=-.5\exheight]
+\defineboxanchorcontent[\v!middle:\v!right ][\v!right ][\c!alternative=\v!middle,\c!xoffset=.5\exheight]
+
+\defineboxanchorcontent
+ [\v!left:\v!bottom]
+ [\v!bottom]
+ [\c!alternative=\v!middle,
+ \c!corner={\v!left,\v!depth},
+ \c!xoffset=-.25\exheight,
+ \c!yoffset=-.25\exheight]
+
+\defineboxanchorcontent
+ [\v!right:\v!bottom]
+ [\v!bottom]
+ [\c!alternative=\v!middle,
+ \c!corner={\v!right,\v!depth},
+ \c!xoffset=.25\exheight,
+ \c!yoffset=-.25\exheight]
+
+\defineboxanchorcontent
+ [\v!left:\v!top]
+ [\v!top]
+ [\c!alternative=\v!middle,
+ \c!corner={\v!left,\v!height},
+ \c!xoffset=-.25\exheight,
+ \c!yoffset=.25\exheight]
+
+\defineboxanchorcontent
+ [\v!right:\v!top]
+ [\v!top]
+ [\c!alternative=\v!middle,
+ \c!corner={\v!right,\v!height},
+ \c!xoffset=.25\exheight,
+ \c!yoffset=.25\exheight]
+
+% \setupboxanchorcontent [top] [rulecolor=darkyellow]
+% \setupboxanchorcontent [left] [rulecolor=darkred]
+% \setupboxanchorcontent [bottom][rulecolor=darkblue]
+% \setupboxanchorcontent [right] [rulecolor=darkgreen]
+%
+% \startbuffer
+% \connectboxanchors[top] [top] [text={\small\small\strut\bf var 1}]{a1}{a2}
+% \connectboxanchors[top] [top] [text={\small\small\strut\bf var 2}]{b1}{b2}
+% \connectboxanchors[top] [top] [text={\small\small\strut\bf var 3}]{a1}{b1}
+% \connectboxanchors[bottom][bottom][text={\small\small\strut\bf var 4}]{b1}{b2}
+% \connectboxanchors[bottom][bottom][text={\small\small\strut\bf var 6}]{a1}{a2}
+% \connectboxanchors[bottom][bottom][rulecolor=darkgreen,distance=4ex,text={\small\small\strut\bf var 7}]{c1}{d1}
+%
+% % \start
+%
+% $\showboxes
+% % \mathboxanchored{a1}{a}^{2^x} +
+% % \mathboxanchored[nucleus]{a1}{a}^{2^x} +
+% % \mathboxanchored{a1}{g}^2 +
+% % \mathboxanchored{a1}{a} +
+% a^{\mathboxanchored{a1}{2}} +
+% % a^{\mathboxanchored{a1}{2}}_3 +
+% \mathboxanchored{b1}{b}
+% =
+% \mathboxanchored{c1}{c}^2 +
+% \mathboxanchored[nucleus]{d1}{d}^2
+% =
+% b_{\mathboxanchored{b2}{3}} +
+% \mathboxanchored{a2}{a}
+% $
+% \stopbuffer
+%
+% \starttext
+% \startTEXpage[offset=10mm]\startboxanchoring[a]\getbuffer\stopboxanchoring\stopTEXpage
+% \startTEXpage[offset=11mm]\startboxanchoring[b]\getbuffer\stopboxanchoring\stopTEXpage
+% \startTEXpage[offset=12mm]\startboxanchoring[+]\getbuffer\stopboxanchoring\stopTEXpage
+% \stoptext
+
+\protect
diff --git a/Master/texmf-dist/tex/context/base/mkxl/anch-loc.lmt b/Master/texmf-dist/tex/context/base/mkxl/anch-loc.lmt
new file mode 100644
index 00000000000..14efab2606f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/anch-loc.lmt
@@ -0,0 +1,520 @@
+if not modules then modules = { } end modules ['anch-loc'] = {
+ version = 1.001,
+ comment = "companion to anch-loc.lmtx",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local next, type = next, type
+local setmetatableindex, sortedhash, insert, remove = table.setmetatableindex, table.sortedhash, table.insert, table.remove
+
+local context = context
+
+local nuts = nodes.nuts
+local nodepool = nodes.pool
+local whatever = nodepool.userids["localanchor"]
+local new_usernode = nodepool.usernode
+local new_kern = nuts.pool.kern
+local getbox = nuts.getbox
+local getwidth = nuts.getwidth
+local setwidth = nuts.setwidth
+local getprop = nuts.getprop
+local insertbefore = nuts.insertbefore
+local insertafter = nuts.insertafter
+local setattributelist = nuts.setattributelist
+
+local texgetbox = tex.getbox
+
+local implement = interfaces.implement
+
+local analyze = drivers.converters.analyze
+
+local dimension_value = tokens.values.dimension
+
+local v_left = interfaces.variables.left
+local v_middle = interfaces.variables.middle
+
+local positionsstack = setmetatableindex("table")
+
+local function allocate2(t,k)
+ local v = { min = false, max = false }
+ t[k] = v
+ return v
+end
+
+local function allocate1(t,k)
+ local v = setmetatableindex({ cnt = { }, min = false, max = false }, allocate2)
+ t[k] = v
+ return v
+end
+
+local positions = setmetatableindex(allocate1)
+
+-- The basics:
+
+local function pushpositions()
+ insert(positionsstack,positions)
+ positions = setmetatableindex(allocate1)
+end
+
+local function poppositions()
+ positions = remove(positionsstack) or { }
+end
+
+local function initializepositions(driver,specification)
+ -- positions.width = specification.boundingbox[3]
+ -- positions.height = specification.boundingbox[4]
+end
+
+-- local function finalizepositions(...)
+-- end
+
+local function collectpositions(current,pos_h,pos_v,cur_b)
+ -- beware, we actually can have a copy due to setting trialrun so we cannot
+ -- fetch the nodetable directly but go via the metatable ... fast enough
+ local data = getprop(current,"data")
+ local hash = positions[data.name]
+ local x = data.x
+ local y = data.y
+ if not hash.min then
+ hash.min = x
+ hash.max = x
+ elseif x > hash.max then
+ hash.max = x
+ end
+ hash = hash[x]
+ if not hash.min then
+ hash.min = y
+ hash.max = y
+ elseif y > hash.max then
+ hash.max = y
+ end
+ hash[y] = { pos_h, pos_v, data, current, 0, false, cur_b }
+end
+
+local function valid(name,x,y)
+ if positions then
+ local xlist = positions[name]
+ if xlist then
+ xlist = xlist[x]
+ return xlist and xlist[y]
+ end
+ end
+end
+
+local function anchorx(name,x,y)
+ local v = valid(name,x,y)
+ return v and v[1] or 0
+end
+
+local function anchory(name,x,y)
+ local v = valid(name,x,y)
+ return v and v[2] or 0
+end
+
+local function anchorht(name,x,y)
+ local v = valid(name,x,y)
+ if v then
+ return v[7][2]
+ else
+ return 0
+ end
+end
+
+local function anchordp(name,x,y)
+ local v = valid(name,x,y)
+ if v then
+ return v[7][3]
+ else
+ return 0
+ end
+end
+
+local function anchorlr(name,x,y)
+ local v = valid(name,x,y)
+ if v then
+ return v[1] + v[7][1], v[2] - v[7][3]
+ else
+ return 0, 0
+ end
+end
+
+local function anchorur(name,x,y)
+ local v = valid(name,x,y)
+ if v then
+ return v[1] + v[7][1], v[2] + v[7][2]
+ else
+ return 0, 0
+ end
+end
+
+local function anchorul(name,x,y)
+ local v = valid(name,x,y)
+ if v then
+ return v[1], v[2] + v[7][2]
+ else
+ return 0, 0
+ end
+end
+
+local function anchorll(name,x,y)
+ local v = valid(name,x,y)
+ if v then
+ return v[1], v[2] - v[7][3]
+ else
+ return 0, 0
+ end
+end
+
+local function anchorxy(name,x,y)
+ local v = valid(name,x,y)
+ if v then
+ return v[1], v[2]
+ else
+ return 0, 0
+ end
+end
+
+local driver = {
+ actions = {
+ initialize = initializepositions,
+ -- finalize = finalizepositions,
+ },
+ flushers = {
+ userdefined = {
+ [whatever] = collectpositions,
+ }
+ }
+}
+
+function drivers.converters.resyncbox(n)
+ local b = getbox(n)
+ analyze(driver,b)
+ for name, position in next, positions do
+ local xlast = { }
+ local aligned = false
+ for c=position.min,position.max do
+ local column = position[c]
+ if column then
+ local min = column.min
+ if min then
+ local max = column.max
+ local xlimit = 0
+ for r=min,max do
+ local cell = column[r]
+ if cell and cell[3].kind == "sync" then
+ local x = cell[1]
+ local l = xlast[r]
+ if l and l ~= 0 then
+ x = x + l
+ cell[1] = x
+ end
+ if x > xlimit then
+ xlimit = x
+ end
+ if not aligned then
+ aligned = cell[3].align
+ end
+ end
+ end
+ for r=min,max do
+ local cell = column[r]
+ if cell and cell[3].kind == "sync" then
+ local progress = xlimit - cell[1]
+ if aligned or progress ~= 0 then
+ local kern = new_kern(progress)
+ local current = cell[4]
+ setattributelist(kern,current)
+ insertafter(current,current,kern) -- why does before not work
+ cell[5] = progress
+ cell[6] = kern
+ xlast[r] = (xlast[r] or 0) + progress
+ end
+ end
+ end
+ end
+ end
+ end
+
+ if aligned then
+ local min = position.min
+ local max = position.max
+ local previous = { }
+ for c=min,max do
+ local column = position[c]
+ if column then
+ local min = column.min
+ if min then
+ local max = column.max
+ for r=min,max do
+ local cell = column[r]
+ if cell then
+ local prev = previous[r]
+ if prev then
+ local align = prev[3].align
+ if align then
+ local p = prev[6]
+ local n = cell[6]
+ local d = cell[5]
+ if align == "r" or align == v_right then
+ setwidth(p,getwidth(p)+d)
+ setwidth(n,getwidth(n)-d)
+ elseif align == "c" or align == "m" or align == v_middle then
+ setwidth(p,getwidth(p)+d/2)
+ setwidth(n,getwidth(n)-d/2)
+ end
+ end
+ end
+ previous[r] = cell
+ end
+ end
+ end
+ end
+ end
+ end
+
+ end
+ return b
+end
+
+-- The ConTeXt interface (at that end we call them localanchors):
+
+implement {
+ name = "pushlocalanchors",
+ public = true,
+ protected = true,
+ untraced = true,
+ actions = pushpositions,
+}
+
+implement {
+ name = "poplocalanchors",
+ public = true,
+ protected = true,
+ untraced = true,
+ actions = poppositions,
+}
+
+implement {
+ name = "analyzelocalanchors",
+ arguments = { "integerargument" },
+ public = true,
+ protected = true,
+ untraced = true,
+ actions = function(n)
+ analyze(driver,texgetbox(n))
+ end
+}
+
+implement {
+ name = "synchronizelocalanchors",
+ arguments = { "integerargument" },
+ public = true,
+ protected = true,
+ untraced = true,
+ actions = drivers.converters.resyncbox,
+}
+
+implement {
+ name = "setlocalsyncanchor",
+ arguments = { "argument", "integerargument", "integerargument" },
+ public = true,
+ protected = true,
+ usage = "value",
+ actions = function(name,x,y)
+ -- value node ... only hlist or vlist or whatsit but we need trialmode so:
+ context(new_usernode(whatever,{ name = name, kind = "sync", x = x, y = y }))
+ end
+}
+
+implement {
+ name = "setlocalalignanchor",
+ arguments = { "argument", "integerargument", "integerargument", "argument" },
+ public = true,
+ protected = true,
+ usage = "value",
+ actions = function(name,x,y,align)
+ -- value node ... only hlist or vlist or whatsit but we need trialmode so:
+ context(new_usernode(whatever,{ name = name, kind = "sync", x = x, y = y, align = align }))
+ end
+}
+
+implement {
+ name = "setlocalmarkanchor",
+ arguments = { "argument", "integerargument", "integerargument" },
+ public = true,
+ protected = true,
+ usage = "value",
+ actions = function(name,x,y)
+ context(new_usernode(whatever,{ name = name, kind = "mark", x = x, y = y }))
+ end
+}
+
+implement {
+ name = "localanchorx",
+ arguments = { "argument", "integerargument", "integerargument" },
+ public = true,
+ usage = "value",
+ actions = function(name,x,y)
+ return dimension_value, anchorx(name,x,y)
+ end
+}
+
+implement {
+ name = "localanchory",
+ arguments = { "argument", "integerargument", "integerargument" },
+ public = true,
+ usage = "value",
+ actions = function(name,x,y)
+ return dimension_value, anchory(name,x,y)
+ end
+}
+
+interfaces.implement {
+ name = "sync",
+ arguments = { "argument", "integerargument" },
+ protected = true,
+ public = true,
+ actions = function(name,x)
+ local t = positions[name].cnt
+ local y = (t[x] or 0) + 1
+ t[x] = y
+ context(new_usernode(whatever,{ name = name, kind = "sync", x = x, y = y }))
+ end,
+}
+
+interfaces.implement {
+ name = "async",
+ arguments = { "argument", "integerargument", "argument" },
+ protected = true,
+ untraced = true,
+ public = true,
+ actions = function(name,x,align)
+ local t = positions[name].cnt
+ local y = (t[x] or 0) + 1
+ t[x] = y
+ context(new_usernode(whatever,{ name = name, kind = "sync", x = x, y = y, align = align }))
+ end,
+}
+
+-- The MetaFun interface:
+
+do
+
+ local injectors = mp.inject
+ local scanners = mp.scan
+
+ local injectnumeric = injectors.numeric
+ local injectpair = injectors.pair
+ local injectpath = injectors.path
+
+ local scaninteger = scanners.integer
+ local scanstring = scanners.string
+
+ local bpfactor = number.dimenfactors.bp
+
+ local registerscript = metapost.registerscript
+ local registerdirect = metapost.registerdirect
+
+ registerscript("anchorxy", function()
+ local x, y = anchorxy(scanstring(),scaninteger(),scaninteger())
+ return injectpair(x*bpfactor,y*bpfactor)
+ end)
+
+ registerdirect("anchorx", function() return anchorx(scanstring(),scaninteger(),scaninteger()) * bpfactor end)
+ registerdirect("anchory", function() return anchory(scanstring(),scaninteger(),scaninteger()) * bpfactor end)
+
+ registerdirect("anchorht", function() return anchorht(scanstring(),scaninteger(),scaninteger()) * bpfactor end)
+ registerdirect("anchordp", function() return anchordp(scanstring(),scaninteger(),scaninteger()) * bpfactor end)
+
+ local function corner(f)
+ local x, y = f(scanstring(),scaninteger(),scaninteger())
+ return injectpair(x*bpfactor,y*bpfactor)
+ end
+
+ registerdirect("anchorlr", function() return corner(anchorlr) end)
+ registerdirect("anchorur", function() return corner(anchorur) end)
+ registerdirect("anchorul", function() return corner(anchorul) end)
+ registerdirect("anchorll", function() return corner(anchorll) end)
+
+ registerscript("anchorbox", function()
+ local l = valid(scanstring(),scaninteger(),scaninteger())
+ local r = valid(scanstring(),scaninteger(),scaninteger())
+ local llx, lly, urx, ury, llb, urb
+ if l and r then
+ llx = l[1]
+ lly = l[2]
+ urx = r[1]
+ ury = r[2]
+ llb = l[7]
+ urb = r[7]
+ if llx > urx then
+ llx, urx = urx, llx
+ end
+ if lly > ury then
+ lly, ury = ury, lly
+ lly = lly - urb[3]
+ ury = ury + llb[2]
+ else
+ lly = lly - llb[3]
+ ury = ury + urb[2]
+ end
+ llx = llx * bpfactor
+ lly = lly * bpfactor
+ urx = urx * bpfactor
+ ury = ury * bpfactor
+ else
+ llx = 0
+ lly = 0
+ urx = 0
+ ury = 0
+ end
+ local p = {
+ cycle = true,
+ curled = true,
+ { llx, lly },
+ { urx, lly },
+ { urx, ury },
+ { llx, ury }
+ }
+ injectpath(p)
+ end)
+
+ -- boundingbox (
+ -- anchorul(lname, lx, ly) --
+ -- anchorlr(rname, rx, ry)
+ -- )
+
+ local min = math.min
+ local max = math.max
+
+ registerscript("anchorspan", function()
+ local l = valid(scanstring(),scaninteger(),scaninteger())
+ local r = valid(scanstring(),scaninteger(),scaninteger())
+ local llx, lly, urx, ury, lb, ub
+ if l and r then
+ lb = l[7]
+ rb = r[7]
+ llx = min((l[1] ),(r[1] )) * bpfactor
+ lly = min((l[2] - lb[3]),(r[2] - rb[3])) * bpfactor
+ urx = max((l[1] + lb[1]),(r[1] + rb[1])) * bpfactor
+ ury = max((l[2] + lb[2]),(r[2] + rb[2])) * bpfactor
+ else
+ llx = 0
+ lly = 0
+ urx = 0
+ ury = 0
+ end
+ local p = {
+ cycle = true,
+-- curled = true,
+ { llx, lly },
+ { urx, lly },
+ { urx, ury },
+ { llx, ury }
+ }
+ injectpath(p)
+ end)
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/anch-loc.mkxl b/Master/texmf-dist/tex/context/base/mkxl/anch-loc.mkxl
new file mode 100644
index 00000000000..8009e15954b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/anch-loc.mkxl
@@ -0,0 +1,115 @@
+%D \module
+%D [ file=anch-loc,
+%D version=2021.05.27,
+%D title=\CONTEXT\ Anchoring Macros,
+%D subtitle=Local Positioning Support,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Anchoring Macros / Local Positioning}
+
+%D This is a typical \LMTX\ feature that could have been provided in \MKIV\ but I
+%D never finished it there. In \LMTX\ we have already a bit better infrastructure
+%D for it.
+%D
+%D When watching the brilliant positive yt videos of Yoyoka Soma (よよか) drum
+%D performances one realizes that a covers can improve the original. Let's see if
+%D this module can improve some of the position related mechanisms. (Btw, quite
+%D often covers impress me more than originals I'd never list too anyway.)
+
+% todo:
+%
+% - make box fit and inject glue
+% - set height / depth or just insert something between
+
+\registerctxluafile{anch-loc}{autosuffix}
+
+\unprotect
+
+\aliased\let\syncanchor \gobblethreearguments
+\aliased\let\alignanchor\gobblefourarguments
+\aliased\let\markanchor \gobblethreearguments
+
+\permanent\protected\def\anch_local_withanchor_s #1#2#3{\leftboundary\setlocalsyncanchor {#1} #2 #3\rightboundary}
+\permanent\protected\def\anch_local_withanchor_a#1#2#3#4{\leftboundary\setlocalalignanchor{#1} #2 #3{#4}\rightboundary}
+\permanent\protected\def\anch_local_withanchor_n #1#2#3{\leftboundary\setlocalmarkanchor {#1} #2 #3\rightboundary}
+\permanent\protected\def\anch_local_withanchor_t #1#2#3{\anch_local_withanchor_n{#1}{#2}{#3}\smash[whd]{\smallinfofont\number#2-\number#3}}
+
+\permanent\protected\def\setlocalanchoring
+ {\enforced\let\syncanchor \anch_local_withanchor_s
+ \enforced\let\alignanchor\anch_local_withanchor_a
+ \enforced\let\markanchor \anch_local_withanchor_m}
+
+\let\anch_local_withanchor_m\anch_local_withanchor_n
+
+\installtextracker{localanchor}
+ {\let\anch_local_withanchor_m\anch_local_withanchor_t}
+ {\let\anch_local_withanchor_m\anch_local_withanchor_n}
+
+\permanent\protected\lettonothing\stopanchoring
+
+\permanent\protected\def\startanchoring#1\stopanchoring % todo: boundary
+ {\begingroup
+ \pushlocalanchors
+ \setlocalanchoring
+ \setbox\scratchbox\vbox{\settrialtypesetting#1}%
+ \analyzelocalanchors\scratchbox
+ \vbox{#1}%
+ \poplocalanchors
+ \endgroup}
+
+\permanent\protected\lettonothing\stopsynchronizing
+
+\permanent\protected\def\startsynchronizing#1\stopsynchronizing % todo: boundary
+ {\begingroup
+ \pushlocalanchors
+ \setlocalanchoring
+ \setbox\scratchbox\vbox{#1}%
+ \synchronizelocalanchors\scratchbox
+ \unvbox\scratchbox
+ \poplocalanchors
+ \endgroup}
+
+% variant on \sync (defined at the lua end)
+
+\permanent\protected\def\autosync#1#2{\leftboundary\sync{#1}{#2}\rightboundary}
+
+% \startsynchronizing
+% $a = a + a $\par
+% $a \mathsnc{1}= a + a $\par
+% $ \mordsnc{1}= a + a + a $\par
+% $ \mordsnc{1}= a \mathsnc{2}+ a + a + a$\par
+% $ \mordsnc{1} \mordsnc{2}+ a + a + a$
+% \stopsynchronizing
+
+\permanent\protected\def\mathsync#1{\sync{m}{#1}}
+\permanent\protected\def\mordsync#1{\mathord{}\sync{m}{#1}}
+\permanent\protected\def\mrelsync#1{\mathrel{}\sync{m}{#1}}
+\permanent\protected\def\mbinsync#1{\mathbin{}\sync{m}{#1}}
+
+\setlocalanchoring
+
+%D These are defined at the \LUA\ end.
+%D
+%D \starttyping
+%D \pushlocalanchors
+%D \poplocalanchors
+%D \analyzelocalanchors
+%D \synchronizelocalanchors
+%D \setlocalsyncanchor {name} x y | {name} {x} {y}
+%D \setlocalmarkanchor {name} x y | {name} {x} {y}
+%D \localanchorx {name} x y | {name} {x} {y}
+%D \localanchory {name} x y | {name} {x} {y}
+%D \sync {name} x | {name} {x}
+%D \stoptyping
+
+% \permanent\def\anchorxy#1#2#3{(\todimension\localanchorx{#1} #2 #3,\todimension\localanchory{#1} #2 #3)}
+
+\protect \endinput
+
+% Musical timestamp: Nightwish Decades bluray in loop mode.
diff --git a/Master/texmf-dist/tex/context/base/mkxl/anch-pgr.lmt b/Master/texmf-dist/tex/context/base/mkxl/anch-pgr.lmt
index 5b750d80e7a..575d4e90644 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/anch-pgr.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/anch-pgr.lmt
@@ -33,9 +33,15 @@ local context = context
local implement = interfaces.implement
+local texgetcount = tex.getcount
+local texiscount = tex.iscount
+
local getmacro = tokens.getters.macro
+local expandasvalue = tex.expandasvalue
local scanmpstring = mp.scan.string
-local mpgnamespace = getmacro("??graphicvariable")
+----- mpgnamespace = getmacro("??graphicvariable")
+
+local string_value = tokens.values.string
local report_graphics = logs.reporter("backgrounds")
local report_shapes = logs.reporter("backgrounds","shapes")
@@ -56,6 +62,8 @@ local f_pair = formatters["(%p,%p)"]
local f_path = formatters["%--t--cycle"]
local f_pair_i = formatters["(%r,%r)"] -- rounded
+local c_realpageno = texiscount("realpageno")
+
graphics = graphics or { }
local backgrounds = { }
graphics.backgrounds = backgrounds
@@ -89,9 +97,9 @@ local getdepth = nuts.getdepth
local nodecodes = nodes.nodecodes
local par_code = nodecodes.par
-local start_of_par = nuts.start_of_par
-local insert_before = nuts.insert_before
-local insert_after = nuts.insert_after
+local startofpar = nuts.startofpar
+local insertbefore = nuts.insertbefore
+local insertafter = nuts.insertafter
local processranges = nuts.processranges
@@ -101,15 +109,17 @@ local jobpositions = job.positions
local getpos = jobpositions.getpos
local getfree = jobpositions.getfree
-local data = { }
+----- data = { }
local realpage = 1
-local recycle = 1000 -- only tables can overflow this
+----- recycle = 1000 -- only tables can overflow this
local enabled = false
--- Freeing the data is somewhat tricky as we can have backgrounds spanning
--- many pages but for an arbitrary background shape that is not so common.
+-- Freeing the data is somewhat tricky as we can have backgrounds spanning many
+-- pages but for an arbitrary background shape that is not so common but we use
+-- a different trick anyway in lmtx.
local function check(specification)
+ --
local a = specification.attribute
local index = specification.index
local depth = specification.depth
@@ -159,13 +169,17 @@ local function check(specification)
wn[3] = dp
end
end
- -- inspect(w)
+-- inspect(w)
end
local index = 0
+local registervalue = attributes.registervalue
+local getvalue = attributes.getvalue
+
local function flush(head,f,l,a,parent,depth)
- local d = data[a]
+ -- local d = data[a]
+ local d = getvalue(a_textbackground,a)
if d then
local ix = index
local ht = getheight(parent)
@@ -176,29 +190,53 @@ local function flush(head,f,l,a,parent,depth)
ln = new_hlist(setlink(new_rule(65536,65536*4,0),new_kern(-65536),ln))
rn = new_hlist(setlink(new_rule(65536,0,65536*4),new_kern(-65536),rn))
end
- if getid(f) == par_code and start_of_par(f) then -- we need to clean this mess
- insert_after(head,f,ln)
+ if getid(f) == par_code and startofpar(f) then -- we need to clean this mess
+ insertafter(head,f,ln)
else
- head, f = insert_before(head,f,ln)
+ head, f = insertbefore(head,f,ln)
end
- insert_after(head,l,rn)
+ insertafter(head,l,rn)
end
return head, true
end
+-- local function registerbackground(name)
+-- local n = #data + 1
+-- if n > recycle then
+-- -- we could also free all e: that are beyond a page but we don't always
+-- -- know the page so a recycle is nicer and the s lists are kept anyway
+-- -- so the amount of kept data is not that large
+-- n = 1
+-- end
+-- local b = jobpositions.tobesaved["b:"..name]
+-- if b then
+-- local s = setmetatableindex("table")
+-- b.s = s
+-- data[n] = {
+-- bpos = b,
+-- name = name,
+-- n = n,
+-- shapes = s,
+-- count = 0,
+-- sindex = 0,
+-- }
+-- texsetattribute(a_textbackground,n)
+-- if not enabled then
+-- enableaction("contributers", "nodes.handlers.textbackgrounds")
+-- enabled = true
+-- end
+-- else
+-- texsetattribute(a_textbackground,unsetvalue)
+-- end
+-- end
+
local function registerbackground(name)
- local n = #data + 1
- if n > recycle then
- -- we could also free all e: that are beyond a page but we don't always
- -- know the page so a recycle is nicer and the s lists are kept anyway
- -- so the amount of kept data is not that large
- n = 1
- end
local b = jobpositions.tobesaved["b:"..name]
if b then
+ local n = registervalue(a_textbackground,t)
local s = setmetatableindex("table")
b.s = s
- data[n] = {
+ local t = {
bpos = b,
name = name,
n = n,
@@ -216,24 +254,10 @@ local function registerbackground(name)
end
end
--- local function collectbackgrounds(r,n)
--- if enabled then
--- local parent = getbox(n)
--- local head = getlist(parent)
--- realpage = r
--- processranges(a_textbackground,flush,head) -- ,parent)
--- end
--- end
---
--- interfaces.implement {
--- name = "collectbackgrounds",
--- actions = collectbackgrounds,
--- arguments = { "integer", "integer" }
--- }
-
nodes.handlers.textbackgrounds = function(head,where,parent) -- we have hlistdir and local dir
-- todo enable action in register
- index = index + 1
+ index = index + 1
+ realpage = texgetcount(c_realpageno)
return processranges(a_textbackground,flush,head,parent)
end
@@ -246,8 +270,6 @@ interfaces.implement {
-- optimized already but we can assume a cycle i.e. prune the last point and then
-- even less code .. we could merge some loops but his is more robust
--- use idiv here
-
local function topairs(t,n)
local r = { }
for i=1,n do
@@ -794,9 +816,7 @@ local function calculatemultipar(tag)
for i=bindex+1,eindex-1 do
br = f_tag_two(btag,i)
local r = collected[br]
- if not r then
- report_graphics("invalid middle for %a",br)
- else
+ if r then
local rp = r.p -- page
local pp = list[rp]
local mp = middlepart(b,e,p,rp,r,left,right)
@@ -805,6 +825,8 @@ local function calculatemultipar(tag)
else
list[rp] = { mp }
end
+ else
+ report_graphics("invalid middle for %a",br)
end
end
local ep = e.p -- page
@@ -1195,13 +1217,13 @@ backgrounds.fetchmultipar = fetchmultipar
local function getwhatever(action)
local tags = scanmpstring()
local anchor = scanmpstring()
- local page = nil
+ local page = texgetcount(c_realpageno)
if tags == "self" then
- tags = getmacro(mpgnamespace .. getmacro("currentmpvariableclass") .. ":self",true) -- Isn't it already edef'd?
+ tags = expandasvalue(string_value,"mpcategoryparameter",true,"self")
elseif type(tags) == "string" then
tags = settings_to_array(tags)
for i=1,#tags do
- tags[i] = getmacro(mpgnamespace .. getmacro("currentmpvariableclass") .. ":" .. tags[i],true) -- Isn't it already edef'd?
+ tags[i] = expandasvalue(string_value,"mpcategoryparameter",true,tags[i])
end
end
if anchor == "anchor" then
@@ -1212,6 +1234,8 @@ local function getwhatever(action)
end
end
+-- backgrounds.getwhatever = getwhatever -- public for tracing
+
metapost.registerscript("getmultipars", function()
return getwhatever(fetchmultipar)
end)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/anch-pgr.mkxl b/Master/texmf-dist/tex/context/base/mkxl/anch-pgr.mkxl
index ec8f0e549f2..10c66b66581 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/anch-pgr.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/anch-pgr.mkxl
@@ -116,8 +116,8 @@
%D stick to just one anchor and derive the head and tail anchors from this one. We
%D set these anchors before and after each page.
-\newdimen\c_anch_page_width
-\newdimen\c_anch_page_height
+\newdimension\c_anch_page_width
+\newdimension\c_anch_page_height
\protected\def\anch_positions_register_page#1% this one is flushed first ! ... can't we avoid this one
{\ifpositioning\ifcase\realpageno\or
@@ -204,13 +204,13 @@
%D
%D \typebuffer[graphic]
-\immutable\def\MPanchoridentifier{mpa} % {mp-anchor}
-\mutable \def\MPanchornumber {\the\realpageno}
-\mutable \let\MPanchorid \empty
+\immutable\def \MPanchoridentifier{mpa} % {mp-anchor}
+\mutable \def \MPanchornumber {\the\realpageno}
+\mutable \lettonothing\MPanchorid
%D The rest of the definitions concerning such overlays may look complicated,
-\mutable\let\currentpositionoverlay\empty
+\mutable\lettonothing\currentpositionoverlay
%D Position actions are automatically executed when a position is set.
@@ -245,7 +245,7 @@
{\dopositionaction{\currentpositionoverlay::\MPanchoridentifier}\hss}%
\ht\scratchbox\d_overlay_height
\dp\scratchbox\zeropoint
- \anch_mark_tagged_box\scratchbox\MPanchorid % needs an hbox
+ \anch_mark_tagged_box\scratchbox\MPanchorid\zerocount % needs an hbox
\box\scratchbox
\vfill}}
@@ -256,7 +256,7 @@
\expandafter\gobbletwoarguments
\fi}
-\let\currentpositionregion\empty
+\lettonothing\currentpositionregion
\def\anch_positions_region_overlay_indeed#1#2%
{\begingroup
@@ -294,14 +294,14 @@
\ifdefined\checkpositionoverlays \else \let\checkpositionoverlays\relax \fi
-\mutable\let\currentpositionoverlay\empty
+\mutable\lettonothing\currentpositionoverlay
\def\anch_positions_overlay_start_yes#1%
{\checkpositionoverlays
\edef\currentpositionoverlay{#1}}
\permanent\protected\def\stoppositionoverlay
- {\let\currentpositionoverlay\empty}
+ {\lettonothing\currentpositionoverlay}
%D A position graphic is a normal (non||reused) \METAPOST\ graphic, used
%D immediately, with zero dimensions, so that a sequence of them does not harm.
@@ -315,19 +315,19 @@
\permanent\tolerant\protected\def\startMPpositiongraphic#=#*#=#:#3\stopMPpositiongraphic % tag list mpcode
{\gdefcsname\??positiongraphic#1\endcsname{\anch_positions_meta_graphic_use{#1}{#2}{#3}}}
-\aliased\let\stopMPpositiongraphic\relax
+\permanent\protected\lettonothing\stopMPpositiongraphic
\def\anch_positions_meta_graphic_prepare
- {\ifcsname\??graphicvariable\currentmpvariableclass:self\endcsname \else
- \letcsname\??graphicvariable\currentmpvariableclass:self\endcsname\currentposition
+ {\iftok{\mpcategoryparameter{self}}\emptytoks
+ \letmpcategoryparameter{self}\currentposition
\fi
- \ifcsname\??graphicvariable\currentmpvariableclass:from\endcsname \else
- \letcsname\??graphicvariable\currentmpvariableclass:from\endcsname\currentposition
+ \iftok{\mpcategoryparameter{from}}\emptytoks
+ \letmpcategoryparameter{from}\currentposition
\fi}
\def\anch_positions_meta_graphic_use#1#2#3%
{\begingroup
- \meta_prepare_variables{#2}%
+ \edef\currentmpcategory{#1}%
\anch_positions_meta_graphic_prepare
\startMPcode#3\stopMPcode
\endgroup}
@@ -346,13 +346,13 @@
\def\anch_positions_meta_graphic_direct#1#2#3% what tag setups
{\begingroup
- \setupMPvariables[#2][#3]%
- \edef\currentmpvariableclass{#2}%
+ \edef\currentmpcategory{#2}%
+ \setupcurrentmpcategory[#3]%
\anch_positions_meta_graphic_prepare
\obeyMPboxorigin % do we also set the size ? when needed this must be done in mp ... might change
\enforced\tolerant\protected\def\MPpositiongraphic##=##*##={\anch_positions_meta_graphic_nested{#3}{##1}{##2}}% takes two extra arguments
% \def\anch_positions_meta_graphic_direct{\anch_positions_meta_graphic_nested{#3}}% takes two extra arguments
- \setbox\b_anch_positions_graphic\hbox % \hpack
+ \setbox\b_anch_positions_graphic\hpack
{\ignorespaces\begincsname#1#2\endcsname\removelastspace}%
\smashbox\b_anch_positions_graphic
\box\b_anch_positions_graphic
@@ -360,8 +360,8 @@
\def\anch_positions_meta_graphic_nested#1#2#3% nesting used in prikkels / pascal (might go away)
{\begingroup
- \setupMPvariables[#2][#1,#3]%
- \edef\currentmpvariableclass{#2}%
+ \edef\currentmpcategory{#2}%
+ \setupcurrentmpcategory[#1,#3]%
\anch_positions_meta_graphic_prepare
\begincsname\??positiongraphic#2\endcsname
\endgroup}%
@@ -369,7 +369,7 @@
\permanent\def\startMPpositionmethod#1#2\stopMPpositionmethod
{\gdefcsname\??positionmethod#1\endcsname{#2}} % todo: var list here
-\aliased\let\stopMPpositionmethod\relax
+\permanent\protected\lettonothing\stopMPpositionmethod
%D Simple one position graphics.
@@ -427,7 +427,7 @@
\def\anch_positions_meta_graphic_cleanup_range#1#2#3#4% pos tag setups
{\ifnum\MPp{#2}<\realpageno \else
- \noexpand \anch_positions_meta_graphic_handle_range_indeed{#1}{#2}{#3}{#4}%
+ \noexpand\anch_positions_meta_graphic_handle_range_indeed{#1}{#2}{#3}{#4}%
\fi}
\appendtoks
diff --git a/Master/texmf-dist/tex/context/base/mkxl/anch-pos.lmt b/Master/texmf-dist/tex/context/base/mkxl/anch-pos.lmt
index 67d1657f20d..79a0da09744 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/anch-pos.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/anch-pos.lmt
@@ -6,33 +6,46 @@ if not modules then modules = { } end modules ['anch-pos'] = {
license = "see context related readme files"
}
---[[ldx--
-<p>We save positional information in the main utility table. Not only
-can we store much more information in <l n='lua'/> but it's also
-more efficient.</p>
---ldx]]--
-
--- plus (extra) is obsolete but we will keep it for a while
+-- We save positional information in the main utility table. Not only can we store
+-- much more information in Lua but it's also more efficient. In the meantime these
+-- files have become quite large. In some cases that get noticed by a hickup in the
+-- start and/or finish, but that is the price we pay for progress.
+--
+-- This was the last module that got rid of directly setting scanners, with a little
+-- performance degradation but not that noticeable. It is also a module that has been
+-- on the (partial) redo list for a while.
--
--- maybe replace texsp by our own converter (stay at the lua end)
--- eventually mp will have large numbers so we can use sp there too
+-- We can gain a little when we group positions but then we still have to deal with
+-- regions and cells so we either end up with lots of extra small tables pointing to
+-- them and/or assembling/disassembling. I played with that and rejected the idea
+-- until I ran into a test case where we had 50.000 one line paragraphs in an eight
+-- columns setup, and there we save 25 M on a 75 M tuc file. So, I played a bit more
+-- and we can have a solution that is of similar performance for regular documents
+-- (in spite of the extra overhead) but also works ok for the large files. In normal
+-- documents it is never a problem, but there are always exceptions to the normal and
+-- often these are also cases where positions are not really used but end up in the
+-- tuc file anyway.
--
--- this is one of the first modules using scanners and we need to replace it by
--- implement and friends
+-- Currently (because we never had split tags) we do splitting at access time, which
+-- is sort of inefficient but still ok. Much of this mechanism comes from MkII where
+-- TeX was the bottleneck.
--
--- we could have namespaces, like p, page, region, columnarea, textarea but then
--- we need virtual table accessors as well as have tag/id accessors ... we don't
--- save much here (at least not now)
+-- By grouping we need to set more metatable so in the end that is also overhead
+-- but on the average we're okay because excessive serialization also comes at a price
+-- and this way we also delay some activities till the moment it is realy used (which
+-- is not always the case with positional information. We will make this transition
+-- stepwise so till we're done there will be inefficiencies and overhead.
--
--- This was the last module that got rid of directly setting scanners, with a little
--- performance degradation but not that noticeable.
+-- The pure hash based variant combined with filtering is in anch-pos.lua and previous
+-- lmt versions! That is the reference.
-local tostring, next, setmetatable, tonumber = tostring, next, setmetatable, tonumber
-local sort = table.sort
+local tostring, next, setmetatable, tonumber, rawget, rawset = tostring, next, setmetatable, tonumber, rawget, rawset
+local sort, sortedhash = table.sort, table.sortedhash
local format, gmatch = string.format, string.gmatch
-local lpegmatch = lpeg.match
+local P, R, C, Cc, lpegmatch = lpeg.P, lpeg.R, lpeg.C, lpeg.Cc, lpeg.match
local insert, remove = table.insert, table.remove
local allocate = utilities.storage.allocate
+local setmetatableindex, setmetatablenewindex = table.setmetatableindex, table.setmetatablenewindex
local report = logs.reporter("positions")
@@ -49,17 +62,20 @@ local context = context
local ctx_latelua = context.latelua
local tex = tex
+local texgetdimen = tex.getdimen
local texgetcount = tex.getcount
local texgetinteger = tex.getintegervalue or tex.getcount
+local texiscount = tex.iscount
+local texisdimen = tex.isdimen
local texsetcount = tex.setcount
local texget = tex.get
local texsp = tex.sp
----- texsp = string.todimen -- because we cache this is much faster but no rounding
-
-local setmetatableindex = table.setmetatableindex
-local setmetatablenewindex = table.setmetatablenewindex
+local texgetnest = tex.getnest
+local texgetparstate = tex.getparstate
local nuts = nodes.nuts
+local tonut = nodes.tonut
local setlink = nuts.setlink
local getlist = nuts.getlist
@@ -67,8 +83,12 @@ local setlist = nuts.setlist
local getbox = nuts.getbox
local getid = nuts.getid
local getwhd = nuts.getwhd
+local setprop = nuts.setprop
+
+local getparstate = nuts.getparstate
local hlist_code = nodes.nodecodes.hlist
+local par_code = nodes.nodecodes.par
local find_tail = nuts.tail
----- hpack = nuts.hpack
@@ -85,6 +105,7 @@ local formatters = string.formatters
local collected = allocate()
local tobesaved = allocate()
+local positionsused = nil
local jobpositions = {
collected = collected,
@@ -109,138 +130,717 @@ local default = { -- not r and paragraphs etc
hs = 0, -- hsize
pi = 0, -- parindent
ps = false, -- parshape
- dir = 0,
+ dir = 0, -- obsolete
+ r2l = false, -- righttoleft
}
}
-local f_b_tag = formatters["b:%s"]
-local f_e_tag = formatters["e:%s"]
-local f_p_tag = formatters["p:%s"]
-local f_w_tag = formatters["w:%s"]
-
-local f_region = formatters["region:%s"]
-
-local f_tag_three = formatters["%s:%s:%s"]
-local f_tag_two = formatters["%s:%s"]
-
-local nofregular = 0
-local nofspecial = 0
-local splitter = lpeg.splitat(":",true)
-
-local pagedata = { }
-local columndata = setmetatableindex("table") -- per page
-local freedata = setmetatableindex("table") -- per page
-
-local function initializer()
- tobesaved = jobpositions.tobesaved
- collected = jobpositions.collected
- for tag, data in next, collected do
- local prefix, rest = lpegmatch(splitter,tag)
- if prefix == "p" then
- nofregular = nofregular + 1
- elseif prefix == "page" then
- nofregular = nofregular + 1
- pagedata[tonumber(rest) or 0] = data
- elseif prefix == "free" then
- nofspecial = nofspecial + 1
- local t = freedata[data.p or 0]
- t[#t+1] = data
- elseif prefix == "columnarea" then
- columndata[data.p or 0][data.c or 0] = data
- end
- setmetatable(data,default)
- end
- --
- local pages = structures.pages.collected
- if pages then
- local last = nil
- for p=1,#pages do
- local region = "page:" .. p
- local data = pagedata[p]
- local free = freedata[p]
- if free then
- sort(free,function(a,b) return b.y < a.y end) -- order matters !
- end
- if data then
- last = data
- last.free = free
- elseif last then
- local t = setmetatableindex({ free = free, p = p },last)
- if not collected[region] then
- collected[region] = t
+local f_b_tag = formatters["b:%s"]
+local f_e_tag = formatters["e:%s"]
+local f_p_tag = formatters["p:%s"]
+----- f_w_tag = formatters["w:%s"]
+
+local f_region = formatters["region:%s"]
+
+local f_tag_three = formatters["%s:%s:%s"]
+local f_tag_two = formatters["%s:%s"]
+
+local c_realpageno = texiscount("realpageno")
+local d_strutht = texisdimen("strutht")
+local d_strutdp = texisdimen("strutdp")
+
+-- Because positions are set with a delay we cannot yet make the tree -- so that
+-- is a finalizer step. But, we already have a dual split.
+
+local treemode = false
+local treemode = true
+
+local function checkshapes(s)
+ for p, data in next, s do
+ local n = #data
+ if n > 1 then
+ local d1 = data[1]
+ local ph = d1[2]
+ local pd = d1[3]
+ local xl = d1[4]
+ local xr = d1[5]
+ for i=2,n do
+ local di = data[i]
+ local h = di[2]
+ local d = di[3]
+ local l = di[4]
+ local r = di[5]
+ if r == xr then
+ di[5] = nil
+ if l == xl then
+ di[4] = nil
+ if d == pd then
+ di[3] = nil
+ if h == ph then
+ di[2] = nil
+ else
+ ph = h
+ end
+ else
+ pd, ph = d, h
+ end
+ else
+ ph, pd, xl = h, d, l
+ end
else
- -- something is wrong
+ ph, pd, xl, xr = h, d, l, r
end
- pagedata[p] = t
end
end
end
- jobpositions.pagedata = pagedata
-end
-
-function jobpositions.used()
- return next(collected) -- we can safe it
end
-function jobpositions.getfree(page)
- return freedata[page]
-end
-
--- we can gain a little when we group positions but then we still have to
--- deal with regions and cells so we either end up with lots of extra small
--- tables pointing to them and/or assembling/disassembling so in the end
--- it makes no sense to do it (now) and still have such a mix
---
--- proof of concept code removed ... see archive
-
-local function finalizer()
- -- We make the (possible extensive) shape lists sparse working
- -- from the end. We could also drop entries here that have l and
- -- r the same which saves testing later on.
- for k, v in next, tobesaved do
- local s = v.s
- if s then
- for p, data in next, s do
- local n = #data
- if n > 1 then
- local ph = data[1][2]
- local pd = data[1][3]
- local xl = data[1][4]
- local xr = data[1][5]
- for i=2,n do
- local di = data[i]
- local h = di[2]
- local d = di[3]
- local l = di[4]
- local r = di[5]
- if r == xr then
- di[5] = nil
- if l == xl then
- di[4] = nil
- if d == pd then
- di[3] = nil
- if h == ph then
- di[2] = nil
- else
- ph = h
+local columndata = { }
+local freedata = { } -- we can make these weak
+local syncdata = { } -- we can make these weak
+local columndone = false
+
+if treemode then
+
+ -- At some point we can install extra ones. I actually was halfway making a more
+ -- general installer but we have quite some distinct handling down here and it
+ -- became messy. So I rolled that back. Also, users and modules will quite likely
+ -- stay in the "user" namespace.
+
+ -- syncpos : indirect access via helper, todo after we switch: direct setters
+ -- free : indirect access via helper, todo after we switch: direct setters
+ -- columnarea : indirect access via helper, todo after we switch: direct setters
+
+ -- todo: keep track of total and check that against # (sanity check)
+
+ local prefix_number = { "text", "textarea", "page", "p", "free", "columnarea" }
+ local prefix_label_number = { "syncpos" }
+ local prefix_number_rest = { "region", "b", "e" }
+
+ -- no need to split: syncpos free columnarea (textarea?)
+
+ local function splitter_pattern()
+ local p_number = R("09")^1/tonumber
+ local p_colon = P(":")
+ local p_label = C(P(1 - p_colon)^0)
+ local p_rest = C(P(1)^0)
+ return
+ C(lpeg.utfchartabletopattern(prefix_number )) * p_colon * p_number * P(-1)
+ + C(lpeg.utfchartabletopattern(prefix_label_number)) * p_colon * (p_number + p_label) * p_colon * p_number * P(-1)
+ + C(lpeg.utfchartabletopattern(prefix_number_rest )) * p_colon * (p_number + p_rest)
+ + Cc("user") * p_rest
+ end
+
+ -- In the end these metatable entries are not more efficient than copying
+ -- but it's all about making sure that the tuc file doesn't explode.
+
+ columndata = { }
+ columndone = false
+
+ local deltapacking = true -- so we can see the difference
+-- local deltapacking = false -- so we can see the difference
+
+ local function checkcommondata(v,common)
+ if common then
+ local i = v.i
+ local t = common[i]
+ if t then
+v.i = nil
+ local m = t.mt
+ if not m then
+ setmetatable(t,default)
+ m = { __index = t }
+ t.mt = m
+ end
+ setmetatable(v,m)
+ return
+ end
+ end
+ setmetatable(v,default)
+ end
+
+ local function initializer()
+ tobesaved = jobpositions.tobesaved
+ collected = jobpositions.collected
+ --
+ local p_splitter = splitter_pattern()
+ --
+ local list = nil
+ --
+ local shared = setmetatableindex(rawget(collected,"shared"),"table")
+ local x_y_w_h_list = shared.x_y_w_h
+ local y_w_h_d_list = shared.y_w_h_d
+ local x_h_d_list = shared.x_h_d
+ local x_h_d_hs_list = shared.x_h_d_hs
+ --
+ columndata = setmetatableindex(function(t,k)
+ setmetatableindex(t,"table")
+ list = rawget(collected,"columnarea")
+ if list then
+ -- for tag, data in next, list do
+ for i=1,#list do
+ local data = list[i]
+ columndata[data.p or 0][data.c or 0] = data
+ checkcommondata(data,y_w_h_d_list)
+ end
+ end
+ columndone = true
+ return t[k]
+ end)
+ --
+ -- todo: use a raw collected and a weak proxy
+ --
+ setmetatableindex(collected,function(t,k)
+ if k ~= true then
+ local prefix, one, two = lpegmatch(p_splitter,k)
+ local list = rawget(t,prefix)
+ if list and type(list) == "table" then
+ local v = list[one] or false
+ if v then
+ if prefix == "p" then
+ -- if deltapacking and type(v) == "number" then
+ if type(v) == "number" then
+ for i=one,1,-1 do
+ local l = list[i]
+ if type(l) ~= "number" then
+ if not getmetatable(l) then
+ checkcommondata(l,x_h_d_hs_list)
+ end
+ v = setmetatable({ y = v }, { __index = l })
+ list[one] = v
+ break
+ end
+ end
+ else
+ checkcommondata(v,x_h_d_hs_list)
+ end
+ elseif prefix == "text" or prefix == "textarea" then
+ if type(v) == "number" then
+ for i=one,1,-1 do
+ local l = list[i]
+ if type(l) ~= "number" then
+ if not getmetatable(l) then
+ checkcommondata(l,x_y_w_h_list)
+ end
+ v = setmetatable({ p = v }, { __index = l })
+ list[one] = v
+ break
end
- else
- pd, ph = d, h
end
else
- ph, pd, xl = h, d, l
+ checkcommondata(v,x_y_w_h_list)
+ end
+ elseif prefix == "columnarea" then
+ if not columndone then
+ checkcommondata(v,y_w_h_d_list)
end
+ elseif prefix == "syncpos" then
+ -- will become an error
+ if two then
+ -- v = syncdata[one][two] or { }
+ v = v[two] or { }
+ else
+ v = { }
+ end
+ -- for j=1,#v do
+ -- checkcommondata(v[j],x_h_d_list)
+ -- end
+ elseif prefix == "free" then
+ -- will become an error
+ elseif prefix == "page" then
+ checkcommondata(v)
else
- ph, pd, xl, xr = h, d, l, r
+ checkcommondata(v)
+ end
+ else
+ if prefix == "page" then
+ for i=one,1,-1 do
+ local data = list[i]
+ if data then
+ v = setmetatableindex({ free = free or false, p = p },last)
+ list[one] = v
+ break
+ end
+ end
end
end
+ t[k] = v
+ return v
+ end
+ end
+ t[k] = false
+ return false
+ end)
+ --
+ setmetatableindex(tobesaved,function(t,k)
+ local prefix, one, two = lpegmatch(p_splitter,k)
+ local v = rawget(t,prefix)
+ if v and type(v) == "table" then
+ v = v[one]
+ if v and two then
+ v = v[two]
+ end
+ return v -- or default
+ else
+ -- return default
+ end
+ end)
+ --
+ setmetatablenewindex(tobesaved,function(t,k,v)
+ local prefix, one, two = lpegmatch(p_splitter,k)
+ local p = rawget(t,prefix)
+ if not p then
+ p = { }
+ rawset(t,prefix,p)
+ end
+ if type(one) == "number" then -- maybe Cc(0 1 2)
+ if #p < one then
+ for i=#p+1,one-1 do
+ p[i] = { } -- false
+ end
end
end
+ if two then
+ local pone = p[one]
+ if not pone then
+ pone = { }
+ p[one] = pone
+ end
+ if type(two) == "number" then -- maybe Cc(0 1 2)
+ if #pone < two then
+ for i=#pone+1,two-1 do
+ pone[i] = { } -- false
+ end
+ end
+ end
+ pone[two] = v
+ else
+ p[one] = v
+ end
+ end)
+ --
+ syncdata = setmetatableindex(function(t,category)
+ -- p's and y's are not shared so no need to resolve
+ local list = rawget(collected,"syncpos")
+ local tc = list and rawget(list,category)
+ if tc then
+ sort(tc,function(a,b)
+ local ap = a.p
+ local bp = b.p
+ if ap == bp then
+ return b.y < a.y
+ else
+ return ap < bp
+ end
+ end)
+ tc.start = 1
+ for i=1,#tc do
+ checkcommondata(tc[i],x_h_d_list)
+ end
+ else
+ tc = { }
+ end
+ t[category] = tc
+ return tc
+ end)
+ end
+
+ local function finalizer()
+
+ -- We make the (possible extensive) shape lists sparse working from the end. We
+ -- could also drop entries here that have l and r the same which saves testing
+ -- later on.
+
+ local nofpositions = 0
+ local nofpartials = 0
+ local nofdeltas = 0
+ --
+ local x_y_w_h_size = 0
+ local x_y_w_h_list = { }
+ local x_y_w_h_hash = setmetatableindex(function(t,x)
+ local y = setmetatableindex(function(t,y)
+ local w = setmetatableindex(function(t,w)
+ local h = setmetatableindex(function(t,h)
+ x_y_w_h_size = x_y_w_h_size + 1
+ t[h] = x_y_w_h_size
+ x_y_w_h_list[x_y_w_h_size] = { x = x, y = y, w = w, h = h }
+ return x_y_w_h_size
+ end)
+ t[w] = h
+ return h
+ end)
+ t[y] = w
+ return w
+ end)
+ t[x] = y
+ return y
+ end)
+ --
+ local y_w_h_d_size = 0
+ local y_w_h_d_list = { }
+ local y_w_h_d_hash = setmetatableindex(function(t,y)
+ local w = setmetatableindex(function(t,w)
+ local h = setmetatableindex(function(t,h)
+ local d = setmetatableindex(function(t,d)
+ y_w_h_d_size = y_w_h_d_size + 1
+ t[d] = y_w_h_d_size
+ y_w_h_d_list[y_w_h_d_size] = { y = y, w = w, h = h, d = d }
+ return y_w_h_d_size
+ end)
+ t[h] = d
+ return d
+ end)
+ t[w] = h
+ return h
+ end)
+ t[y] = w
+ return w
+ end)
+ --
+ local x_h_d_size = 0
+ local x_h_d_list = { }
+ local x_h_d_hash = setmetatableindex(function(t,x)
+ local h = setmetatableindex(function(t,h)
+ local d = setmetatableindex(function(t,d)
+ x_h_d_size = x_h_d_size + 1
+ t[d] = x_h_d_size
+ x_h_d_list[x_h_d_size] = { x = x, h = h, d = d }
+ return x_h_d_size
+ end)
+ t[h] = d
+ return d
+ end)
+ t[x] = h
+ return h
+ end)
+ --
+ local x_h_d_hs_size = 0
+ local x_h_d_hs_list = { }
+ local x_h_d_hs_hash = setmetatableindex(function(t,x)
+ local h = setmetatableindex(function(t,h)
+ local d = setmetatableindex(function(t,d)
+ local hs = setmetatableindex(function(t,hs)
+ x_h_d_hs_size = x_h_d_hs_size + 1
+ t[hs] = x_h_d_hs_size
+ x_h_d_hs_list[x_h_d_hs_size] = { x = x, h = h, d = d, hs = hs }
+ return x_h_d_hs_size
+ end)
+ t[d] = hs
+ return hs
+ end)
+ t[h] = d
+ return d
+ end)
+ t[x] = h
+ return h
+ end)
+ --
+ rawset(tobesaved,"shared", {
+ x_y_w_h = x_y_w_h_list,
+ y_w_h_d = y_w_h_d_list,
+ x_h_d = x_h_d_list,
+ x_h_d_hs = x_h_d_hs_list,
+ })
+ --
+ -- If fonts can use crazy and hard to grasp packing tricks so can we. The "i" field
+ -- refers to a shared set of values. In addition we pack some sequences.
+ --
+ -- how about free
+ --
+ for k, v in sortedhash(tobesaved) do
+ if k == "p" then
+ -- numeric
+ local n = #v
+ for i=1,n do
+ local t = v[i]
+ local hsh = x_h_d_hs_hash[t.x or 0][t.h or 0][t.d or 0][t.hs or 0]
+ t.x = nil
+ t.h = nil
+ t.d = nil
+ t.hs = nil -- not in syncpos
+ t.i = hsh
+ local s = t.s
+ if s then
+ checkshapes(s)
+ end
+ end
+ if deltapacking then
+ -- delta packing (y)
+ local last
+ local current
+ for i=1,n do
+ current = v[i]
+ if last then
+ for k, v in next, last do
+ if k ~= "y" and v ~= current[k] then
+ goto DIFFERENT
+ end
+ end
+ for k, v in next, current do
+ if k ~= "y" and v ~= last[k] then
+ goto DIFFERENT
+ end
+ end
+ v[i] = current.y or 0
+ nofdeltas = nofdeltas + 1
+ goto CONTINUE
+ end
+ ::DIFFERENT::
+ last = current
+ ::CONTINUE::
+ end
+ end
+ --
+ nofpositions = nofpositions + n
+ nofpartials = nofpartials + n
+ elseif k == "syncpos" then
+ -- hash
+ for k, t in next, v do
+ -- numeric
+ local n = #t
+ for j=1,n do
+ local t = t[j]
+ local hsh = x_h_d_hash[t.x or 0][t.h or 0][t.d or 0]
+ t.x = nil
+ t.h = nil
+ t.d = nil
+ t.i = hsh
+ end
+ nofpositions = nofpositions + n
+ nofpartials = nofpartials + n
+ end
+ elseif k == "text" or k == "textarea" then
+ -- numeric
+ local n = #v
+ for i=1,n do
+ local t = v[i]
+ local hsh = x_y_w_h_hash[t.x or 0][t.y or 0][t.w or 0][t.h or 0]
+ t.x = nil
+ t.y = nil
+ t.w = nil
+ t.h = nil
+ t.i = hsh
+ end
+ nofpositions = nofpositions + n
+ nofpartials = nofpartials + n
+ if deltapacking then
+ -- delta packing (p)
+ local last
+ local current
+ for i=1,n do
+ current = v[i]
+ if last then
+ for k, v in next, last do
+ if k ~= "p" and v ~= current[k] then
+ goto DIFFERENT
+ end
+ end
+ for k, v in next, current do
+ if k ~= "p" and v ~= last[k] then
+ goto DIFFERENT
+ end
+ end
+ v[i] = current.p or 0
+ nofdeltas = nofdeltas + 1
+ goto CONTINUE
+ end
+ ::DIFFERENT::
+ last = current
+ ::CONTINUE::
+ end
+ end
+ elseif k == "columnarea" then
+ -- numeric
+ local n = #v
+ for i=1,n do
+ local t = v[i]
+ local hsh = y_w_h_d_hash[t.y or 0][t.w or 0][t.h or 0][t.d or 0]
+ t.y = nil
+ t.w = nil
+ t.h = nil
+ t.d = nil
+ t.i = hsh
+ end
+ nofpositions = nofpositions + n
+ nofpartials = nofpartials + n
+ else -- probably only b has shapes
+ for k, t in next, v do -- no need to sort
+ local s = t.s
+ if s then
+ checkshapes(s)
+ end
+ nofpositions = nofpositions + 1
+ end
+ end
+ end
+
+ statistics.register("positions", function()
+ if nofpositions > 0 then
+ return format("%s collected, %i deltas, %i shared partials, %i partial entries",
+ nofpositions, nofdeltas, nofpartials,
+ x_y_w_h_size + y_w_h_d_size + x_h_d_size + x_h_d_hs_size
+ )
+ else
+ return nil
+ end
+ end)
+
+ end
+
+ freedata = setmetatableindex(function(t,page)
+ local list = rawget(collected,"free")
+ local free = { }
+ if list then
+ local size = 0
+ for i=1,#list do
+ local l = list[i]
+ if l.p == page then
+ size = size + 1
+ free[size] = l
+ checkcommondata(l)
+ end
+ end
+ sort(free,function(a,b) return b.y < a.y end) -- order matters !
+ end
+ t[page] = free
+ return free
+ end)
+
+ job.register('job.positions.collected', tobesaved, initializer, finalizer)
+
+else
+
+ columndata = setmetatableindex("table") -- per page
+ freedata = setmetatableindex("table") -- per page
+
+ local function initializer()
+ tobesaved = jobpositions.tobesaved
+ collected = jobpositions.collected
+ --
+ local pagedata = { }
+ local p_splitter = lpeg.splitat(":",true)
+
+ for tag, data in next, collected do
+ local prefix, rest = lpegmatch(p_splitter,tag)
+ if prefix == "page" then
+ pagedata[tonumber(rest) or 0] = data
+ elseif prefix == "free" then
+ local t = freedata[data.p or 0]
+ t[#t+1] = data
+ elseif prefix == "columnarea" then
+ columndata[data.p or 0][data.c or 0] = data
+ end
+ setmetatable(data,default)
+ end
+ local pages = structures.pages.collected
+ if pages then
+ local last = nil
+ for p=1,#pages do
+ local region = "page:" .. p
+ local data = pagedata[p]
+ local free = freedata[p]
+ if free then
+ sort(free,function(a,b) return b.y < a.y end) -- order matters !
+ end
+ if data then
+ last = data
+ last.free = free
+ elseif last then
+ local t = setmetatableindex({ free = free, p = p },last)
+ if not collected[region] then
+ collected[region] = t
+ else
+ -- something is wrong
+ end
+ pagedata[p] = t
+ end
+ end
+ end
+ jobpositions.pagedata = pagedata -- never used
+
+ end
+
+ local function finalizer()
+
+ -- We make the (possible extensive) shape lists sparse working from the end. We
+ -- could also drop entries here that have l and r the same which saves testing
+ -- later on.
+
+ local nofpositions = 0
+
+ for k, v in next, tobesaved do
+ local s = v.s
+ if s then
+ checkshapes(s)
+ end
+ nofpositions = nofpositions + 1
end
+
+ statistics.register("positions", function()
+ if nofpositions > 0 then
+ return format("%s collected",nofpositions)
+ else
+ return nil
+ end
+ end)
+
end
+
+ local p_number = lpeg.patterns.cardinal/tonumber
+ local p_tag = P("syncpos:") * p_number * P(":") * p_number
+
+ syncdata = setmetatableindex(function(t,category)
+ setmetatable(t,nil)
+ for tag, pos in next, collected do
+ local c, n = lpegmatch(p_tag,tag)
+ if c then
+ local tc = t[c]
+ if tc then
+ tc[n] = pos
+ else
+ t[c] = { [n] = pos }
+ end
+ end
+ end
+ for k, list in next, t do
+ sort(list,function(a,b)
+ local ap = a.p
+ local bp = b.p
+ if ap == bp then
+ return b.y < a.y
+ else
+ return ap < bp
+ end
+ end)
+ list.start = 1
+ end
+ return t[category]
+ end)
+
+ job.register('job.positions.collected', tobesaved, initializer, finalizer)
+
end
-job.register('job.positions.collected', tobesaved, initializer, finalizer)
+function jobpositions.used()
+ if positionsused == nil then
+ positionsused = false
+ for k, v in next, collected do
+ if k ~= "shared" and type(v) == "table" and next(v) then
+ positionsused = true
+ break
+ end
+ end
+ end
+ return positionsused
+end
+
+function jobpositions.getfree(page)
+ return freedata[page]
+end
+
+function jobpositions.getsync(category)
+ return syncdata[category] or { }
+end
local regions = { }
local nofregions = 0
@@ -308,7 +908,7 @@ local function enhance(data)
data.y = y ~= 0 and y or nil
end
if data.p == true then
- data.p = texgetcount("realpageno") -- we should use a variable set in otr
+ data.p = texgetcount(c_realpageno) -- we should use a variable set in otr
end
if data.c == true then
data.c = column
@@ -477,25 +1077,28 @@ implement {
local function b_region(specification)
local tag = specification.tag or specification
local last = tobesaved[tag]
- local x, y = getpos()
- last.x = x ~= 0 and x or nil
- last.y = y ~= 0 and y or nil
- last.p = texgetcount("realpageno")
- insert(regions,tag) -- todo: fast stack
- region = tag
+ if last then
+ local x, y = getpos()
+ last.x = x ~= 0 and x or nil
+ last.y = y ~= 0 and y or nil
+ last.p = texgetcount(c_realpageno)
+ insert(regions,tag) -- todo: fast stack
+ region = tag
+ end
end
local function e_region(specification)
local last = tobesaved[region]
- local y = getvpos()
- local x, y = getpos()
- if specification.correct then
- local h = (last.y or 0) - y
- last.h = h ~= 0 and h or nil
- end
- last.y = y ~= 0 and y or nil
- remove(regions) -- todo: fast stack
- region = regions[#regions]
+ if last then
+ local y = getvpos()
+ if specification.correct then
+ local h = (last.y or 0) - y
+ last.h = h ~= 0 and h or nil
+ end
+ last.y = y ~= 0 and y or nil
+ remove(regions) -- todo: fast stack
+ region = regions[#regions]
+ end
end
jobpositions.b_region = b_region
@@ -503,15 +1106,24 @@ jobpositions.e_region = e_region
local lastregion
-local function setregionbox(n,tag,k,lo,ro,to,bo,column) -- kind
+local function setregionbox(n,tag,index,k,lo,ro,to,bo,column) -- kind
if not tag or tag == "" then
nofregions = nofregions + 1
- tag = f_region(nofregions)
+ tag = "region"
+ index = nofregions
+ elseif index ~= 0 then
+ -- So we can cheat and pass a zero index and enforce tag as is needed in
+ -- cases where we fallback on automated region tagging (framed).
+ tag = tag .. ":" .. index
end
local box = getbox(n)
local w, h, d = getwhd(box)
+ -- We could set directly but then we also need to check for gaps but as this
+ -- is direct is is unlikely that we get a gap. We then also need to intecept
+ -- these auto regions (comning from framed). Too messy and the split in the
+ -- setter is fast enough.
tobesaved[tag] = {
- -- p = texgetcount("realpageno"), -- we copy them
+ -- p = texgetcount(c_realpageno), -- we copy them
x = 0,
y = 0,
w = w ~= 0 and w or nil,
@@ -528,8 +1140,18 @@ local function setregionbox(n,tag,k,lo,ro,to,bo,column) -- kind
return tag, box
end
-local function markregionbox(n,tag,correct,...) -- correct needs checking
- local tag, box = setregionbox(n,tag,...)
+-- we can have a finalizer property that we catch in the backend but that demands
+-- a check for property for each list .. what is the impact
+
+-- textarea operates *inside* a box so experiments with pre/post hooks in the
+-- backend driver didn't work out (because a box can be larger)
+--
+-- it also gives no gain to split prefix and number here because in the end we
+-- push and pop tags as strings, but it save a little on expansion so we do it
+-- in the interface
+
+local function markregionbox(n,tag,index,correct,...) -- correct needs checking
+ local tag, box = setregionbox(n,tag,index,...)
-- todo: check if tostring is needed with formatter
local push = new_latelua { action = b_region, tag = tag }
local pop = new_latelua { action = e_region, correct = correct }
@@ -573,199 +1195,296 @@ function jobpositions.settobesaved(name,tag,data)
end
end
-local nofparagraphs = 0
+do
-implement {
- name = "parpos",
- actions = function()
- nofparagraphs = nofparagraphs + 1
- texsetcount("global","c_anch_positions_paragraph",nofparagraphs)
- local box = getbox("strutbox")
- local w, h, d = getwhd(box)
- local t = {
- p = true,
- c = true,
- r = true,
- x = true,
- y = true,
- h = h,
- d = d,
- hs = texget("hsize"), -- never 0
- }
- local leftskip = texget("leftskip",false)
- local rightskip = texget("rightskip",false)
- local hangindent = texget("hangindent")
- local hangafter = texget("hangafter")
- local parindent = texget("parindent")
- local parshape = texget("parshape")
- if leftskip ~= 0 then
- t.ls = leftskip
- end
- if rightskip ~= 0 then
- t.rs = rightskip
- end
- if hangindent ~= 0 then
- t.hi = hangindent
+ local c_anch_positions_paragraph = texiscount("c_anch_positions_paragraph")
+
+ local nofparagraphs = 0
+
+ local function enhancepar_1(data)
+ if data then
+ local par = data.par -- we can pass twice when we copy
+ local state = par and getparstate(data.par,true)
+ if state then
+ local x, y = getpos()
+ if x ~= 0 then
+ data.x = x
+ end
+ if y ~= 0 then
+ data.y = y
+ end
+ data.p = texgetcount(c_realpageno) -- we should use a variable set in otr
+ if column then
+ data.c = column
+ end
+ if region then
+ data.r = region
+ end
+ --
+ data.par = nil
+ local leftskip = state.leftskip
+ local rightskip = state.rightskip
+ local hangindent = state.hangindent
+ local hangafter = state.hangafter
+ local parindent = state.parindent
+ local parshape = state.parshape
+ if hangafter ~= 0 and hangafter ~= 1 then
+ data.ha = hangafter
+ end
+ if hangindent ~= 0 then
+ data.hi = hangindent
+ end
+ data.hs = state.hsize
+ if leftskip ~= 0 then
+ data.ls = leftskip
+ end
+ if parindent ~= 0 then
+ data.pi = parindent
+ end
+ if rightskip ~= 0 then
+ data.rs = rightskip
+ end
+ if parshape and #parshape > 0 then
+ data.ps = parshape
+ end
+ end
end
- if hangafter ~= 1 and hangafter ~= 0 then -- can not be zero .. so it needs to be 1 if zero
- t.ha = hangafter
+ return data
+ end
+
+ local function enhancepar_2(data)
+ if data then
+ local x, y = getpos()
+ if x ~= 0 then
+ data.x = x
+ end
+ if y ~= 0 then
+ data.y = y
+ end
+ data.p = texgetcount(c_realpageno)
+ if column then
+ data.c = column
+ end
+ if region then
+ data.r = region
+ end
end
- if parindent ~= 0 then
- t.pi = parindent
+ return data
+ end
+
+ implement {
+ name = "parpos",
+ actions = function()
+ nofparagraphs = nofparagraphs + 1
+ texsetcount("global",c_anch_positions_paragraph,nofparagraphs)
+ local name = f_p_tag(nofparagraphs)
+ local h = texgetdimen(d_strutht)
+ local d = texgetdimen(d_strutdp)
+ --
+ local top = texgetnest("top","head")
+ local nxt = top.next
+ if nxt then
+ nxt = tonut(nxt)
+ end
+ local data
+ if nxt and getid(nxt) == par_code then -- todo: check node type
+ local t = {
+ h = h,
+ d = d,
+ par = nxt,
+ }
+ tobesaved[name] = t
+ ctx_latelua { action = enhancepar_1, specification = t }
+ else
+ -- This is kind of weird but it happens in tables (rows) so we probably
+ -- need less.
+ local state = texgetparstate()
+ local leftskip = state.leftskip
+ local rightskip = state.rightskip
+ local hangindent = state.hangindent
+ local hangafter = state.hangafter
+ local parindent = state.parindent
+ local parshape = state.parshape
+ local t = {
+ p = true,
+ c = true,
+ r = true,
+ x = true,
+ y = true,
+ h = h,
+ d = d,
+ hs = state.hsize, -- never 0
+ }
+ if leftskip ~= 0 then
+ t.ls = leftskip
+ end
+ if rightskip ~= 0 then
+ t.rs = rightskip
+ end
+ if hangindent ~= 0 then
+ t.hi = hangindent
+ end
+ if hangafter ~= 1 and hangafter ~= 0 then -- can not be zero .. so it needs to be 1 if zero
+ t.ha = hangafter
+ end
+ if parindent ~= 0 then
+ t.pi = parindent
+ end
+ if parshape and #parshape > 0 then
+ t.ps = parshape
+ end
+ tobesaved[name] = t
+ ctx_latelua { action = enhancepar_2, specification = t }
+ end
end
- if parshape and #parshape > 0 then
- t.ps = parshape
+ }
+
+ implement {
+ name = "dosetposition",
+ arguments = "argument",
+ public = true,
+ protected = true,
+ actions = function(name)
+ local spec = {
+ p = true,
+ c = column,
+ r = true,
+ x = true,
+ y = true,
+ n = nofparagraphs > 0 and nofparagraphs or nil,
+ r2l = texgetinteger("inlinelefttoright") == 1 or nil,
+ }
+ tobesaved[name] = spec
+ ctx_latelua { action = enhance, specification = spec }
end
- local name = f_p_tag(nofparagraphs)
- tobesaved[name] = t
- ctx_latelua { action = enhance, specification = t }
- end
-}
+ }
-implement {
- name = "dosetposition",
- arguments = "argument",
- public = true,
- protected = true,
- actions = function(name)
- local spec = {
- p = true,
- c = column,
- r = true,
- x = true,
- y = true,
- n = nofparagraphs > 0 and nofparagraphs or nil,
- r2l = texgetinteger("inlinelefttoright") == 1 or nil,
- }
- tobesaved[name] = spec
- ctx_latelua { action = enhance, specification = spec }
- end
-}
+ implement {
+ name = "dosetpositionwhd",
+ arguments = { "argument", "dimenargument", "dimenargument", "dimenargument" },
+ public = true,
+ protected = true,
+ actions = function(name,w,h,d)
+ local spec = {
+ p = true,
+ c = column,
+ r = true,
+ x = true,
+ y = true,
+ w = w ~= 0 and w or nil,
+ h = h ~= 0 and h or nil,
+ d = d ~= 0 and d or nil,
+ n = nofparagraphs > 0 and nofparagraphs or nil,
+ r2l = texgetinteger("inlinelefttoright") == 1 or nil,
+ }
+ tobesaved[name] = spec
+ ctx_latelua { action = enhance, specification = spec }
+ end
+ }
-implement {
- name = "dosetpositionwhd",
- arguments = { "argument", "dimenargument", "dimenargument", "dimenargument" },
- public = true,
- protected = true,
- actions = function(name,w,h,d)
- local spec = {
- p = true,
- c = column,
- r = true,
- x = true,
- y = true,
- w = w ~= 0 and w or nil,
- h = h ~= 0 and h or nil,
- d = d ~= 0 and d or nil,
- n = nofparagraphs > 0 and nofparagraphs or nil,
- r2l = texgetinteger("inlinelefttoright") == 1 or nil,
- }
- tobesaved[name] = spec
- ctx_latelua { action = enhance, specification = spec }
- end
-}
+ implement {
+ name = "dosetpositionbox",
+ arguments = { "argument", "integerargument" },
+ public = true,
+ protected = true,
+ actions = function(name,n)
+ local box = getbox(n)
+ local w, h, d = getwhd(box)
+ local spec = {
+ p = true,
+ c = column,
+ r = true,
+ x = true,
+ y = true,
+ w = w ~= 0 and w or nil,
+ h = h ~= 0 and h or nil,
+ d = d ~= 0 and d or nil,
+ n = nofparagraphs > 0 and nofparagraphs or nil,
+ r2l = texgetinteger("inlinelefttoright") == 1 or nil,
+ }
+ tobesaved[name] = spec
+ ctx_latelua { action = enhance, specification = spec }
+ end
+ }
-implement {
- name = "dosetpositionbox",
- arguments = { "argument", "integerargument" },
- public = true,
- protected = true,
- actions = function(name,n)
- local box = getbox(n)
- local w, h, d = getwhd(box)
- local spec = {
- p = true,
- c = column,
- r = true,
- x = true,
- y = true,
- w = w ~= 0 and w or nil,
- h = h ~= 0 and h or nil,
- d = d ~= 0 and d or nil,
- n = nofparagraphs > 0 and nofparagraphs or nil,
- r2l = texgetinteger("inlinelefttoright") == 1 or nil,
- }
- tobesaved[name] = spec
- ctx_latelua { action = enhance, specification = spec }
- end
-}
+ implement {
+ name = "dosetpositionplus",
+ arguments = { "argument", "dimenargument", "dimenargument", "dimenargument" },
+ public = true,
+ protected = true,
+ actions = function(name,w,h,d)
+ local spec = {
+ p = true,
+ c = column,
+ r = true,
+ x = true,
+ y = true,
+ w = w ~= 0 and w or nil,
+ h = h ~= 0 and h or nil,
+ d = d ~= 0 and d or nil,
+ n = nofparagraphs > 0 and nofparagraphs or nil,
+ e = scanstring(),
+ r2l = texgetinteger("inlinelefttoright") == 1 or nil,
+ }
+ tobesaved[name] = spec
+ ctx_latelua { action = enhance, specification = spec }
+ end
+ }
-implement {
- name = "dosetpositionplus",
- arguments = { "argument", "dimenargument", "dimenargument", "dimenargument" },
- public = true,
- protected = true,
- actions = function(name,w,h,d)
- local spec = {
- p = true,
- c = column,
- r = true,
- x = true,
- y = true,
- w = w ~= 0 and w or nil,
- h = h ~= 0 and h or nil,
- d = d ~= 0 and d or nil,
- n = nofparagraphs > 0 and nofparagraphs or nil,
- e = scanstring(),
- r2l = texgetinteger("inlinelefttoright") == 1 or nil,
- }
- tobesaved[name] = spec
- ctx_latelua { action = enhance, specification = spec }
- end
-}
+ implement {
+ name = "dosetpositionstrut",
+ arguments = "argument",
+ public = true,
+ protected = true,
+ actions = function(name)
+ local h = texgetdimen(d_strutht)
+ local d = texgetdimen(d_strutdp)
+ local spec = {
+ p = true,
+ c = column,
+ r = true,
+ x = true,
+ y = true,
+ h = h ~= 0 and h or nil,
+ d = d ~= 0 and d or nil,
+ n = nofparagraphs > 0 and nofparagraphs or nil,
+ r2l = texgetinteger("inlinelefttoright") == 1 or nil,
+ }
+ tobesaved[name] = spec
+ ctx_latelua { action = enhance, specification = spec }
+ end
+ }
-implement {
- name = "dosetpositionstrut",
- arguments = "argument",
- public = true,
- protected = true,
- actions = function(name)
- local box = getbox("strutbox")
- local w, h, d = getwhd(box)
- local spec = {
- p = true,
- c = column,
- r = true,
- x = true,
- y = true,
- h = h ~= 0 and h or nil,
- d = d ~= 0 and d or nil,
- n = nofparagraphs > 0 and nofparagraphs or nil,
- r2l = texgetinteger("inlinelefttoright") == 1 or nil,
- }
- tobesaved[name] = spec
- ctx_latelua { action = enhance, specification = spec }
- end
-}
+ implement {
+ name = "dosetpositionstrutkind",
+ arguments = { "argument", "integerargument" },
+ public = true,
+ protected = true,
+ actions = function(name,kind)
+ local h = texgetdimen(d_strutht)
+ local d = texgetdimen(d_strutdp)
+ local spec = {
+ k = kind,
+ p = true,
+ c = column,
+ r = true,
+ x = true,
+ y = true,
+ h = h ~= 0 and h or nil,
+ d = d ~= 0 and d or nil,
+ n = nofparagraphs > 0 and nofparagraphs or nil,
+ r2l = texgetinteger("inlinelefttoright") == 1 or nil,
+ }
+ tobesaved[name] = spec
+ ctx_latelua { action = enhance, specification = spec }
+ end
+ }
-implement {
- name = "dosetpositionstrutkind",
- arguments = { "argument", "integerargument" },
- public = true,
- protected = true,
- actions = function(name,kind)
- local box = getbox("strutbox")
- local w, h, d = getwhd(box)
- local spec = {
- k = kind,
- p = true,
- c = column,
- r = true,
- x = true,
- y = true,
- h = h ~= 0 and h or nil,
- d = d ~= 0 and d or nil,
- n = nofparagraphs > 0 and nofparagraphs or nil,
- r2l = texgetinteger("inlinelefttoright") == 1 or nil,
- }
- tobesaved[name] = spec
- ctx_latelua { action = enhance, specification = spec }
- end
-}
+end
function jobpositions.getreserved(tag,n)
if tag == v_column then
- local fulltag = f_tag_three(tag,texgetcount("realpageno"),n or 1)
+ local fulltag = f_tag_three(tag,texgetcount(c_realpageno),n or 1)
local data = collected[fulltag]
if data then
return data, fulltag
@@ -773,7 +1492,7 @@ function jobpositions.getreserved(tag,n)
tag = v_text
end
if tag == v_text then
- local fulltag = f_tag_two(tag,texgetcount("realpageno"))
+ local fulltag = f_tag_two(tag,texgetcount(c_realpageno))
return collected[fulltag] or false, fulltag
end
return collected[tag] or false, tag
@@ -784,7 +1503,12 @@ function jobpositions.copy(target,source)
end
function jobpositions.replace(id,p,x,y,w,h,d)
- collected[id] = { p = p, x = x, y = y, w = w, h = h, d = d } -- c g
+ local c = collected[id]
+ if c then
+ c.p = p ; c.x = x ; c.y = y ; c.w = w ; c.h = h ; c.d = d ; -- c g
+ else
+ collected[i] = { p = p, x = x, y = y, w = w, h = h, d = d } -- c g
+ end
end
local function getpage(id)
@@ -1003,7 +1727,7 @@ local function overlapping(one,two,overlappingmargin) -- hm, strings so this is
end
local function onsamepage(list,page)
- for id in gmatch(list,"(, )") do
+ for id in gmatch(list,"([^,%s]+)") do
local jpi = collected[id]
if jpi then
local p = jpi.p
@@ -1034,9 +1758,17 @@ local function columnofpos(realpage,xposition)
return 1
end
-jobpositions.overlapping = overlapping
-jobpositions.onsamepage = onsamepage
-jobpositions.columnofpos = columnofpos
+local function getcolumndata(realpage,column)
+ local p = columndata[realpage]
+ if p then
+ return p[column]
+ end
+end
+
+jobpositions.overlapping = overlapping
+jobpositions.onsamepage = onsamepage
+jobpositions.columnofpos = columnofpos
+jobpositions.getcolumndata = getcolumndata
-- interface
@@ -1046,14 +1778,12 @@ implement {
public = true,
protected = true,
actions = function(name,page,x,y,w,h,d)
- collected[name] = {
- p = page,
- x = x,
- y = y,
- w = w,
- h = h,
- d = d,
- }
+ local c = collected[name]
+ if c then
+ c.p = page ; c.x = x ; c.y = y ; c.w = w ; c.h = h ; c.d = d ;
+ else
+ collected[name] = { p = page, x = x, y = y, w = w, h = h, d = d }
+ end
end
}
@@ -1380,18 +2110,18 @@ implement {
actions = MPpardata
}
-implement {
- name = "MPposset",
- arguments = "argument",
- public = true,
- actions = function(name)
- local b = f_b_tag(name)
- local e = f_e_tag(name)
- local w = f_w_tag(name)
- local p = f_p_tag(getparagraph(b))
- MPpos(b) context(",") MPpos(e) context(",") MPpos(w) context(",") MPpos(p) context(",") MPpardata(p)
- end
-}
+-- implement {
+-- name = "MPposset",
+-- arguments = "argument",
+-- public = true,
+-- actions = function(name)
+-- local b = f_b_tag(name)
+-- local e = f_e_tag(name)
+-- local w = f_w_tag(name)
+-- local p = f_p_tag(getparagraph(b))
+-- MPpos(b) context(",") MPpos(e) context(",") MPpos(w) context(",") MPpos(p) context(",") MPpardata(p)
+-- end
+-- }
implement {
name = "MPls",
@@ -1447,7 +2177,7 @@ implement {
implement {
name = "MPrest",
- arguments = { "argument", "argument" },
+ arguments = "2 arguments",
public = true,
actions = function(name,default)
local jpi = collected[name]
@@ -1511,7 +2241,7 @@ implement {
implement {
name = "doifelseoverlapping",
- arguments = { "argument", "argument" },
+ arguments = "2 arguments",
public = true,
protected = true,
actions = function(one,two)
@@ -1535,7 +2265,7 @@ implement {
public = true,
protected = true,
actions = function(list)
- doifelse(onsamepage(list,tostring(texgetcount("realpageno"))))
+ doifelse(onsamepage(list,tostring(texgetcount(c_realpageno))))
end
}
@@ -1544,53 +2274,53 @@ implement {
public = true,
protected = true,
actions = function()
- doifelse(next(collected))
+ doifelse(jobpositions.used())
end
}
implement {
name = "markregionbox",
- arguments = "integer",
+ arguments = { "integer", "integer" },
actions = markregionbox
}
implement {
name = "setregionbox",
- arguments = "integer",
+ arguments = { "integer", "integer" },
actions = setregionbox
}
implement {
name = "markregionboxtagged",
- arguments = { "integer", "string" },
+ arguments = { "integer", "string", "integer" },
actions = markregionbox
}
implement {
name = "markregionboxtaggedn",
- arguments = { "integer", "string", "integer" },
- actions = function(box,tag,n)
- markregionbox(box,tag,nil,nil,nil,nil,nil,nil,n)
+ arguments = { "integer", "string", "integer", "integer" },
+ actions = function(box,tag,index,n)
+ markregionbox(box,tag,index,nil,nil,nil,nil,nil,nil,n)
end
}
implement {
name = "setregionboxtagged",
- arguments = { "integer", "string" },
+ arguments = { "integer", "string", "integer" },
actions = setregionbox
}
implement {
name = "markregionboxcorrected",
- arguments = { "integer", "string", true },
+ arguments = { "integer", "string", "integer", true },
actions = markregionbox
}
implement {
name = "markregionboxtaggedkind",
- arguments = { "integer", "string", "integer", "dimen", "dimen", "dimen", "dimen" },
- actions = function(box,tag,n,d1,d2,d3,d4)
- markregionbox(box,tag,nil,n,d1,d2,d3,d4)
+ arguments = { "integer", "string", "integer", "integer", "dimen", "dimen", "dimen", "dimen" },
+ actions = function(box,tag,index,n,d1,d2,d3,d4)
+ markregionbox(box,tag,index,nil,n,d1,d2,d3,d4)
end
}
@@ -1603,27 +2333,6 @@ implement {
end
}
--- statistics (at least for the moment, when testing)
-
--- statistics.register("positions", function()
--- local total = nofregular + nofusedregions + nofmissingregions
--- if total > 0 then
--- return format("%s collected, %s regulars, %s regions, %s unresolved regions",
--- total, nofregular, nofusedregions, nofmissingregions)
--- else
--- return nil
--- end
--- end)
-
-statistics.register("positions", function()
- local total = nofregular + nofspecial
- if total > 0 then
- return format("%s collected, %s regular, %s special",total,nofregular,nofspecial)
- else
- return nil
- end
-end)
-
-- We support the low level positional commands too:
local newsavepos = nodes.pool.savepos
diff --git a/Master/texmf-dist/tex/context/base/mkxl/anch-pos.mkxl b/Master/texmf-dist/tex/context/base/mkxl/anch-pos.mkxl
index d217f2cac3f..a1e0cc35434 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/anch-pos.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/anch-pos.mkxl
@@ -17,10 +17,18 @@
%D early, but starting in 2012 more dramatic changes started to happen, especially
%D in relation to background graphics. It will probably take some time to settle.
-\registerctxluafile{anch-pos}{autosuffix}
-
\unprotect
+\newinteger\c_anch_column % will be delegated to lua
+\newinteger\c_anch_text % will be delegated to lua
+\newinteger\c_anch_free
+\newtoks \t_anch_positions_tracers
+\newinteger\c_anch_positions_paragraph
+\newbox \b_anch_position
+\newif \ifpositioning % sort of public
+
+\registerctxluafile{anch-pos}{autosuffix}
+
%D The first application of positional information was embedded graphics. Since we
%D are interacting with text, it made sense to take the current line height and
%D depth into account too. This is why we have position macros for simple positions
@@ -43,13 +51,13 @@
% \dosetpositionstrut #1 % defined at lua end
% \dosetpositionstrutkind #1#2 % defined at lua end
-\newbox\b_anch_position
-\newif \ifpositioning % sort of public
+% see top: \newbox\b_anch_position
+% see top: \newif \ifpositioning % sort of public
-\mutable\let\currentposition \empty
-\mutable\let\currentpositionaction\empty
-\mutable\let\currentpositionanchor\empty
-\mutable\let\currentpositionregion\empty
+\mutable\lettonothing\currentposition
+\mutable\lettonothing\currentpositionaction
+\mutable\lettonothing\currentpositionanchor
+\mutable\lettonothing\currentpositionregion
%D Sometimes we want to trick the position handler a bit:
@@ -164,7 +172,7 @@
{\anch_positions_initialize
\hbox % \hpack
{\edef\currentposition{#1}%
- \dosetpositionwhd\currentposition{#2}{#3}{#4}% already \the\dimexpr
+ \dosetpositionwhd\currentposition{#2}{#3}{#4}%
\anch_positions_trace_left
\dopositionaction\currentposition
\hss}}
@@ -184,7 +192,8 @@
\def\anch_positions_set_box_finish#1%
{\anch_positions_initialize
- \hbox to \wd\nextbox % \hpack
+ %\hbox to \wd\nextbox
+ \hpack to \wd\nextbox
{\edef\currentposition{#1}%
\dosetpositionbox\currentposition\nextbox
\anch_positions_trace_left
@@ -244,7 +253,7 @@
{\anch_positions_initialize
\hbox % \hpack
{\edef\currentposition{#1}%
- \dosetpositionplus\currentposition{#2}{#3}{#4}{#5}% already \the\dimexpr
+ \dosetpositionplus\currentposition{#2}{#3}{#4}{#5}%
\anch_positions_trace_right
\dopositionaction\currentposition
\hss}}
@@ -281,16 +290,22 @@
\permanent\def\textanchor {text:\the\realpageno}
\permanent\def\regionanchor{region:0}
-\newcount\c_anch_column % will be delegated to lua
-\newcount\c_anch_text % will be delegated to lua
+% see top: \newinteger\c_anch_column % will be delegated to lua
+% see top: \newinteger\c_anch_text % will be delegated to lua
% beware we need to pass \somethingexpanded or { }
+% Is this really always needed? We use \enabletextarearegistration for page areas so why
+% not also for this.
+%
+% At some point we can switch to dedicated markers because there are not
+% that many variants: text, page, textarea, columnarea, free.
+
\protected\def\anch_mark_column_box#1#2% box n
- {\global\advance\c_anch_column\plusone
- \clf_markregionboxtaggedn#1{columnarea:\the\c_anch_column}#2\relax} % extra height
+ {\global\advanceby\c_anch_column\plusone
+ \clf_markregionboxtaggedn#1{columnarea}\c_anch_column#2\relax} % extra height
-\protected\def\anch_mark_region_box
+\protected\def\anch_mark_region_box % auto region:index
{\iftrialtypesetting
\expandafter\gobbleoneargument
\orelse\ifpositioning
@@ -304,39 +319,46 @@
\protected\def\anch_mark_flow_box#1% will be extended / renamed
{\hpack\bgroup
- \global\advance\c_anch_text\plusone
- \clf_markregionboxtagged#1{textarea:\the\c_anch_text}%
+ \global\advanceby\c_anch_text\plusone
+ \clf_markregionboxtagged#1{textarea}\c_anch_text % will become flow:
\box#1%
\egroup}
-\protected\def\anch_mark_tagged_box#1#2%
- {\clf_markregionboxtagged#1{#2}}
+\protected\def\anch_mark_tagged_box#1#2#3%
+ {\clf_markregionboxtagged#1{#2}#3\relax}
\protected\def\anch_mark_flow_only#1% will be extended / renamed
- {\global\advance\c_anch_text\plusone
- \clf_markregionboxcorrected#1{textarea:\the\c_anch_text}}
+ {\global\advanceby\c_anch_text\plusone
+ \clf_markregionboxcorrected#1{textarea}\c_anch_text}% will become flow:
\protected\def\anch_make_page_box#1% maybe like text
- {\clf_setregionboxtagged#1{page:\the\realpageno}}
+ {\clf_setregionboxtagged#1{page}\realpageno}
\protected\def\anch_mark_text_box#1%
- {\clf_markregionboxtagged#1{text:\the\realpageno}} % needs an hbox
+ {\clf_markregionboxtagged#1{text}\realpageno} % needs an hbox
-\newcount\c_anch_free
-
-\protected\def\anch_mark_tagged_box_free#1#2#3#4#5#6% only needed when positions
+\protected\def\anch_mark_tagged_box_free
{\ifpositioning
- \global\advance\c_anch_free\plusone % could be done at the lua end
- \clf_markregionboxtaggedkind
- #1%
- {free:\number\c_anch_free}%
- #2\space % kind
- #3\space % leftoffset
- #4\space % rightoffset
- #5\space % topoffset
- #6\relax % bottomoffset
+ \expandafter\anch_mark_tagged_box_free_yes
+ \else
+ \expandafter\gobblesixarguments
\fi}
+% see top: \newinteger\c_anch_free
+
+\protected\def\anch_mark_tagged_box_free_yes#1#2#3#4#5#6% only needed when positions
+ {\global\advanceby\c_anch_free\plusone % could be done at the lua end
+ \clf_markregionboxtaggedkind
+ #1%
+ {free}%
+ \c_anch_free
+ #2% kind % single token value
+ #3% leftoffset % single token value
+ #4% rightoffset % single token value
+ #5% topoffset % single token value
+ #6% bottomoffset % single token value
+ \relax}
+
% \reservedautoregiontag % define at lua end
%D We can copy a position with:
@@ -394,8 +416,8 @@
%D can keep track of them. This mechanism is activated automatically based on
%D information collected in the previous pass.
-\newtoks \t_anch_positions_tracers
-\newcount\c_anch_positions_paragraph
+% see top: \newtoks \t_anch_positions_tracers
+% see top: \newinteger\c_anch_positions_paragraph
\permanent\protected\def\tracepositions
{\the\t_anch_positions_tracers}
@@ -404,9 +426,8 @@
{\enforced\aliased\glet\registerparoptions\doregisterparoptions
\global\positioningtrue}
-\permanent\let\disableparpositions\relax
-
-\aliased\let\registerparoptions\relax
+\permanent\protected\lettonothing\disableparpositions
+\permanent\protected\lettonothing\registerparoptions % hooks into everypar
\permanent\protected\def\doregisterparoptions
{\iftrialtypesetting \orelse\ifinpagebody \orelse\ifmmode \orelse\ifinformula \else
@@ -418,16 +439,22 @@
\def\anch_positions_register_par_options_traced
{\anch_positions_register_par_options_normal
- \smashedhbox to \zeropoint
+ \begingroup
+ \setbox\scratchbox\hpack
{\hss
\startcolor[blue]%
- \llap{\infofont\number\c_anch_positions_paragraph}%
+ \hpack \s!yoffset -2\onepoint to \zeropoint
+ {\hss\infofont\number\c_anch_positions_paragraph\hskip2\onepoint}%
\vrule
\s!width 4\onepoint
\s!height2\onepoint
\s!depth 2\onepoint
\stopcolor
- \hss}}
+ \hss}%
+ \smashbox\scratchbox
+ \boxxoffset\scratchbox-2\onepoint
+ \box\scratchbox
+ \endgroup}
\let\anch_positions_register_par_options\anch_positions_register_par_options_normal
@@ -481,10 +508,10 @@
%D positions being on the same page.
%D
%D \starttyping
-%D \doifpositionsonsamepageelse{point a}{point b}
+%D \doifpositionsonsamepageelse{point a,point b}
%D {action when on same page}
%D {action when not on same page}
-%D \doifpositionsonthispageelse{point a}{point b}
+%D \doifpositionsonthispageelse{point a,point b}
%D {action when on this page}
%D {action when not on this page}
%D \stoptyping
diff --git a/Master/texmf-dist/tex/context/base/mkxl/anch-snc.lmt b/Master/texmf-dist/tex/context/base/mkxl/anch-snc.lmt
new file mode 100644
index 00000000000..c97be2b391d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/anch-snc.lmt
@@ -0,0 +1,217 @@
+if not modules then modules = { } end modules ['anch-snc'] = {
+ version = 1.001,
+ comment = "companion to anch-snc.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local tonumber, next, setmetatable, rawget = tonumber, next, setmetatable, rawget
+local concat, sort, remove, copy = table.concat, table.sort, table.remove, table.copy
+local match, find = string.match, string.find
+local lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns
+local setmetatableindex = table.setmetatableindex
+local P, Cc = lpeg.P, lpeg.Cc
+
+graphics = graphics or { }
+local synchronizers = { }
+graphics.synchronizers = synchronizers
+
+local jobpositions = job.positions
+
+local p_number = lpegpatterns.cardinal/tonumber
+local p_space = lpegpatterns.whitespace^0
+local p_option = p_number * ((P(",") * p_space * P("reset") * Cc(true)) + Cc(false)) -- for now
+
+local list = { }
+local kinds = {
+ above = 1,
+ continue = 2,
+ nothing = 3,
+ normal = 4,
+ below = 5,
+}
+
+local lastdone = { }
+
+function synchronizers.collect(category,realpage,region)
+ local all = jobpositions.getsync(category)
+ local m = 0
+ local n = #all
+ list = { }
+ if region and region ~= "" then
+ -- successive can be optimized when we sort by region
+ local start = 1
+ local done = false
+ local last, rtop, rbot
+ for i=start,n do
+ local pos = all[i]
+ local p = pos.p
+ local r = pos.r
+ if r == region then
+ if not done then
+ local region = jobpositions.collected[r]
+ list.region = region
+ list.page = region
+ rtop = (region.y or 0) + (region.h or 0)
+ rbot = (region.y or 0) - (region.d or 0)
+ last = { kind = "nothing", top = rtop, bottom = 0, task = 0 }
+ m = m + 1 ; list[m] = last
+ done = true
+ end
+ local top = pos.y + pos.h
+ last.bottom = top
+ local task, reset = lpegmatch(p_option,pos.e)
+ last = { kind = "normal", top = top, bottom = 0, task = task }
+ m = m + 1 ; list[m] = last
+ end
+ end
+ if done then
+ last.bottom = rbot
+ end
+ else
+ local start = all.start or 1
+ local done = false
+ local last, rtop, rbot, ptop, pbot
+ for i=start,n do
+ local pos = all[i]
+ local p = pos.p
+ if p == realpage then
+ if not done then
+ local region = jobpositions.collected[pos.r]
+ local page = jobpositions.collected["page:"..realpage] or region
+ list.region = region
+ list.page = page
+ rtop = (region.y or 0) + (region.h or 0)
+ rbot = (region.y or 0) - (region.d or 0)
+ ptop = (page .y or 0) + (page .h or 0)
+ pbot = (page .y or 0) - (page .d or 0)
+ last = { kind = "above", top = ptop, bottom = rtop, task = 0 }
+ m = m + 1 ; list[m] = last
+ if i > 1 then
+ local task, reset = lpegmatch(p_option,all[i-1].e)
+ last = { kind = "continue", top = rtop, bottom = 0, task = task }
+ m = m + 1 ; list[m] = last
+ else
+ last = { kind = "nothing", top = rtop, bottom = 0, task = 0 }
+ m = m + 1 ; list[m] = last
+ end
+ done = true
+ end
+ local top = pos.y + pos.h
+ last.bottom = top
+ local task, reset = lpegmatch(p_option,pos.e)
+ if reset then
+ local l = list[2]
+ l.kind = "nothing"
+ l.task = 0
+ end
+ last = { kind = "normal", top = top, bottom = 0, task = task }
+ m = m + 1 ; list[m] = last
+ elseif p > realpage then
+ all.start = i -- tricky, only for page
+ break
+ end
+ end
+ if done then
+ last.bottom = rbot
+ last = { kind = "below", top = rbot, bottom = pbot, task = 0 }
+ m = m + 1 ; list[m] = last
+ lastdone[category] = {
+ { kind = "above", top = ptop, bottom = rtop, task = 0 },
+ { kind = "continue", top = rtop, bottom = rbot, task = list[#list-1].task }, -- lasttask
+ { kind = "below", top = rbot, bottom = pbot, task = 0 },
+ region = list.region,
+ page = list.page,
+ }
+ else
+ local l = lastdone[category]
+ if l then
+ list = copy(l) -- inefficient, maybe metatable for region/page
+ m = 3
+ end
+ end
+ end
+ return m
+end
+
+function synchronizers.extend()
+ local n = #list
+ if n > 0 then
+ for i=1,n do
+ local l = list[i]
+ local k = l.kind
+ if k == "nothing" then
+ local ll = list[i+1]
+ if ll and ll.kind == "normal" then
+ ll.top = l.top
+ remove(list,i)
+ n = #list
+ break
+ end
+ end
+ end
+ end
+ return n
+end
+
+function synchronizers.prune()
+ local n = #list
+ if n > 0 then
+ if list[1].kind == "above" then
+ remove(list,1)
+ end
+ if list[1].kind == "nothing" then
+ remove(list,1)
+ end
+ if list[#list].kind == "below" then
+ remove(list,#list)
+ end
+ n = #list
+ end
+ return n
+end
+
+function synchronizers.collapse()
+ local n = #list
+ if n > 0 then
+ local m = 0
+ local p = nil
+ for i=1,n do
+ local l = list[i]
+ local t = l.task
+ if p == t then
+ list[m].bottom = l.bottom
+ else
+ m = m + 1
+ list[m] = l
+ end
+ p = t
+ end
+ for i=n,m+1,-1 do
+ list[i] = nil
+ end
+ n = m
+ end
+ return n
+end
+
+-- These operate on the currently set list:
+
+function synchronizers.getsize () return #list end
+function synchronizers.gettop (n) return list[n].top end
+function synchronizers.getbottom(n) return list[n].bottom end
+function synchronizers.getkind (n) return kinds[list[n].kind] end
+function synchronizers.gettask (n) return list[n].task end
+
+function synchronizers.getx() return list.page.x or 0 end
+function synchronizers.gety() return list.page.y or 0 end
+function synchronizers.getw() return list.page.w or 0 end
+function synchronizers.geth() return list.page.h or 0 end
+function synchronizers.getd() return list.page.d or 0 end
+
+-- function mp.xxOverlayRegion()
+-- local r = tokens.getters.macro("m_overlay_region")
+-- mp.quoted('"'.. r .. '"')
+-- end
+
diff --git a/Master/texmf-dist/tex/context/base/mkxl/anch-snc.mkxl b/Master/texmf-dist/tex/context/base/mkxl/anch-snc.mkxl
index e186e024f96..a2df714b729 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/anch-snc.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/anch-snc.mkxl
@@ -11,33 +11,139 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D The original is in the mkii file. It does more at the \TEX\ end and
-%D has some more magic. If we really need that I'll add it. After all,
-%D in mkiv we can do things different.
-
-%D TODO: bleed : + left , minus right oro check if it touches page ... autobleed
+%D This is a rather old mechanism that we once needed in an actually nice design.
+%D Those were the times that processing a rather complex xml file with \PDFTEX\ into
+%D a 400 page document took 45 minutes (a few runs) while nowadays with luatex and
+%D \MKIV\ (and \LMTX) we express runtime in seconds.
+%D
+%D In retrospect it was a waste of time (and money) to invest in all these
+%D mechanisms because the publishers we were dealign with were far from ready for
+%D dealing with xml and let alone automatic rendering. But, as the code still worked
+%D well after nearly two decades I decided to revive it .. maybe some curious
+%D \CONTEXT\ user can benefit from it after all.
+%D
+%D The logic is mostly the same as in \MKII\ but some work is now delegated to \LUA\
+%D so that we save memory and gain some runtime. As this was not really a used
+%D module the interface also was upgraded. As we know the bottlenecks in \METAPOST\
+%D we also work around those a bit. It made sense too change the interface to use
+%D the new \LMTX\ mechanisms for passing parameters. The old interface can be found
+%D in the \MKII\ and \MKIV\ files.
+
+%D TODO: bleed | autobleed
\writestatus{loading}{ConTeXt Anchoring Macros / Synchronization}
\registerctxluafile{anch-snc}{}
+\registerctxluafile{mlib-snc}{}
+
+%D \stoptyping
+%D \starttext
+%D
+%D \setuplayout[location=middle]
+%D \setupbodyfont[dejavu]
+%D
+%D \definesyncpositions[1]
+%D \definesyncpositions[2]
+%D
+%D % \startuseMPgraphic{sync1}
+%D % StartPage ;
+%D % lmt_synchronizer [ ... ] ;
+%D % clip currentpicture to Page ;
+%D % setbounds currentpicture to Page ;
+%D % StopPage ;
+%D % \stopuseMPgraphic
+%D
+%D \startuseMPgraphic{sync1}
+%D lmt_synchronizer [
+%D % page = "yes",
+%D index = 1,
+%D hoffset = 0,
+%D width = BackSpace - LeftMarginDistance,
+%D extend = false,
+%D prune = true,
+%D draw = false,
+%D fill = true,
+%D ] ;
+%D \stopuseMPgraphic
+%D
+%D \startuseMPgraphic{sync2}
+%D lmt_synchronizer [
+%D index = 2,
+%D region = OverlayRegion,
+%D hoffset = -1cm,
+%D width = 1cm,
+%D extend = true,
+%D prune = false,
+%D draw = false,
+%D fill = true,
+%D ] ;
+%D clip currentpicture to OverlayBox leftenlarged 1cm;
+%D setbounds currentpicture to OverlayBox ;
+%D \stopuseMPgraphic
+%D
+%D \defineoverlay[tempoverlay1][\useMPgraphic{sync1}]
+%D \defineoverlay[tempoverlay2][\useMPgraphic{sync2}]
+%D
+%D \setupbackgrounds[page][background=tempoverlay1]
+%D
+%D \framed[region=yes,background=tempoverlay2,width=14cm,align=normal]{%
+%D \syncposition[2][1]\samplefile{ward}\endgraf
+%D \syncposition[2][2]\samplefile{ward}\endgraf
+%D \syncposition[2][3]\samplefile{ward}\endgraf
+%D }
+%D
+%D \vskip1cm \hskip1cm \framed[region=yes,background=tempoverlay2,width=16cm,align=normal]{%
+%D \syncposition[2][1]\samplefile{ward}\endgraf
+%D \syncposition[2][2]\samplefile{ward}\endgraf
+%D \syncposition[2][3]\samplefile{ward}\endgraf
+%D }
+%D
+%D \vskip1cm \hskip1cm \framed[region=yes,background=tempoverlay2,width=10cm,align=normal]{%
+%D \syncposition[2][1]\samplefile{ward}\endgraf
+%D \syncposition[2][2]\samplefile{ward}\endgraf
+%D \syncposition[2][3]\samplefile{ward}\endgraf
+%D }
+%D
+%D \dorecurse {100} {
+%D \startchapter[title={Test #1}]
+%D \syncposition[1][1,reset]\dorecurse{20}{\samplefile{ward}\endgraf}
+%D \syncposition[1][2]\dorecurse {4}{\samplefile{ward}\endgraf}
+%D \syncposition[1][3]\dorecurse {7}{\samplefile{ward}\endgraf}
+%D \syncposition[1][4]\dorecurse {3}{\samplefile{ward}\endgraf}
+%D \stopchapter
+%D }
+%D
+%D \dorecurse {100} {
+%D \startchapter[title={Test #1}]
+%D \syncposition[1][1]\dorecurse{1}{\samplefile{ward}\endgraf}
+%D \syncposition[1][2]\dorecurse{1}{\samplefile{ward}\endgraf}
+%D \syncposition[1][3]\dorecurse{1}{\samplefile{ward}\endgraf}
+%D \syncposition[1][4]\dorecurse{1}{\samplefile{ward}\endgraf}
+%D \stopchapter
+%D }
+%D
+%D \stoptext
+%D \stoptyping
+
+%D We could actually use par positions but in \LMTX\ we have syncpos entries
+%D somewhat optimized.
\unprotect
-\ifdefined\??syncposcounter \else \installcorenamespace{syncposcounter} \fi
-\ifdefined\s!syncpos \else \def\s!syncpos {syncpos} \fi
+\installcorenamespace{syncposcounter}
\let\c_sync_n\relax
\permanent\protected\def\definesyncpositions[#1]%
{\ifcsname\??syncposcounter:#1\endcsname \else
- \expandafter\newcount\csname\??syncposcounter:#1\endcsname
+ \expandafter\newinteger\csname\??syncposcounter:#1\endcsname
\fi}
-\permanent\tolerant\protected\def\syncposition[#1]#*[#2]% we could actually use par positions
+\permanent\tolerant\protected\def\syncposition[#1]#*[#2]%
{\dontleavehmode
\ifcsname\??syncposcounter:#1\endcsname
\let\c_sync_n\lastnamedcs
- \global\advance\c_sync_n\plusone
+ \global\advanceby\c_sync_n\plusone
\enabletextarearegistration
\setpositionplus{\s!syncpos:#1:\the\c_sync_n}{#2}\hpack{\strut}%
\else
@@ -46,112 +152,3 @@
\ignorespaces}
\protect
-
-\continueifinputfile{anch-snc.mkiv}
-
-\starttext
-
-% \setuppapersize[A4][A3]
-
-\setuplayout[location=middle]
-
-\setupbodyfont[dejavu]
-
-\definesyncpositions[1]
-\definesyncpositions[2]
-
-% \enabletrackers[metapost.lua]
-
-\startMPdefinitions
- input "mp-asnc.mpiv" ;
-
- SetSyncColor(1,0,"magenta") ;
- SetSyncColor(1,1,"red") ;
- SetSyncColor(1,2,"green") ;
- SetSyncColor(1,3,"blue") ;
- SetSyncColor(1,4,"yellow") ;
-
- SetSyncColor(2,0,"magenta") ;
- SetSyncColor(2,1,"red") ;
- SetSyncColor(2,2,"green") ;
- SetSyncColor(2,3,"blue") ;
- SetSyncColor(2,4,"yellow") ;
-\stopMPdefinitions
-
-\startuseMPgraphic{sync1}
- StartPage ;
- StartSync(1) ;
- SyncHOffset := 0 ;
- SyncWidth := BackSpace - LeftMarginDistance;
- CollectSyncDataPage ;
- % ExtendSyncPaths ; % to top of text area
- PruneSyncPaths ; % clip top / bottom
- CollapseSyncPaths ;
- MakeSyncPaths ;
- % DrawSyncPaths ;
- FillSyncPaths ;
- StopSync ;
- clip currentpicture to Page ;
- setbounds currentpicture to Page ;
- StopPage ;
-\stopuseMPgraphic
-
-\startuseMPgraphic{sync2}
- StartSync(2) ;
- SyncHOffset := -1cm ;
- SyncWidth := 1cm ;
- CollectSyncDataRegion(OverlayRegion) ;
- ExtendSyncPaths ; % to top of text area
- MakeSyncPaths ;
- FillSyncPaths ;
- StopSync ;
- clip currentpicture to OverlayBox leftenlarged 1cm;
- setbounds currentpicture to OverlayBox ;
-\stopuseMPgraphic
-
-\defineoverlay[tempoverlay1][\useMPgraphic{sync1}]
-\defineoverlay[tempoverlay2][\useMPgraphic{sync2}]
-
-\setupbackgrounds[page][background=tempoverlay1]
-
-\framed[region=yes,background=tempoverlay2,width=14cm,align=normal]{
- \syncposition[2][1]\samplefile{ward}\endgraf
- \syncposition[2][2]\samplefile{ward}\endgraf
- \syncposition[2][3]\samplefile{ward}\endgraf
-}
-
-
-\vskip1cm \hskip1cm \framed[region=yes,background=tempoverlay2,width=16cm,align=normal]{
- \syncposition[2][1]\samplefile{ward}\endgraf
- \syncposition[2][2]\samplefile{ward}\endgraf
- \syncposition[2][3]\samplefile{ward}\endgraf
-}
-
-\vskip1cm \hskip1cm \framed[region=yes,background=tempoverlay2,width=10cm,align=normal]{
- \syncposition[2][1]\samplefile{ward}\endgraf
- \syncposition[2][2]\samplefile{ward}\endgraf
- \syncposition[2][3]\samplefile{ward}\endgraf
-}
-
-
-\dorecurse {100} {
-% \dorecurse {1} {
- \startchapter[title={Test #1}]
- \syncposition[1][1,reset]\dorecurse{20}{\samplefile{ward}\endgraf}
- \syncposition[1][2]\dorecurse {4}{\samplefile{ward}\endgraf}
- \syncposition[1][3]\dorecurse {7}{\samplefile{ward}\endgraf}
- \syncposition[1][4]\dorecurse {3}{\samplefile{ward}\endgraf}
- \stopchapter
-}
-
-\dorecurse {100} {
-% \dorecurse {1} {
- \startchapter[title={Test #1}]
- \syncposition[1][1]\dorecurse{1}{\samplefile{ward}\endgraf}
- \syncposition[1][2]\dorecurse{1}{\samplefile{ward}\endgraf}
- \syncposition[1][3]\dorecurse{1}{\samplefile{ward}\endgraf}
- \syncposition[1][4]\dorecurse{1}{\samplefile{ward}\endgraf}
- \stopchapter
-}
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkxl/anch-tab.mkxl b/Master/texmf-dist/tex/context/base/mkxl/anch-tab.mkxl
index 11e9598d9c2..94e02165307 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/anch-tab.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/anch-tab.mkxl
@@ -18,7 +18,7 @@
\unprotect
-\newcount\c_anch_tabs
+\newinteger\c_anch_tabs
\protected\def\tabl_tabulate_hook_b
{\iftrialtypesetting\else
@@ -54,7 +54,7 @@
% \appendtoks \registerparoptions \to \everypar
\appendtoks
- \global\advance\c_anch_tabs\plusone
+ \global\advanceby\c_anch_tabs\plusone
\to \everytabulate
% for text backgrounds
@@ -74,7 +74,7 @@
%D references to the graphics involved. Each table has its own namespace.
\newconditional\tablehaspositions
-\newcount \noftabpositions
+\newinteger \noftabpositions
\newtoks \posXCtoks
\protected\def\anch_tabulate_bpos{\bpos}
@@ -195,7 +195,7 @@
\box\scratchbox}
\appendtoks
- \global\advance\noftabpositions\plusone
+ \global\advanceby\noftabpositions\plusone
\global\setfalse\tablehaspositions
\to \everytabulate
@@ -227,9 +227,9 @@
%D In order to prevent potential clashes with abbreviations, postpone the mapping and
%D make them mutable.
-\mutable\let\GSC\empty
-\mutable\let\GFC\empty
-\mutable\let\GTC\empty
+\mutable\lettonothing\GSC
+\mutable\lettonothing\GFC
+\mutable\lettonothing\GTC
\appendtoks
\enforced\let\GSC\tbGSC
@@ -274,7 +274,7 @@
\permanent\def\normalTABLEquote {\unskip\!ttRightGlue&\omit\tablepos&} % "
\appendtoks
- \global\advance\noftabpositions\plusone
+ \global\advanceby\noftabpositions\plusone
\global\setfalse\tablehaspositions
\to \everytable
diff --git a/Master/texmf-dist/tex/context/base/mkxl/attr-col.lmt b/Master/texmf-dist/tex/context/base/mkxl/attr-col.lmt
index 9c542a94293..1ac1cf93b0e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/attr-col.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/attr-col.lmt
@@ -47,8 +47,8 @@ local report_transparencies = logs.reporter("transparencies","support")
-- nb. too many "0 g"s
local states = attributes.states
-local nodeinjections = backends.nodeinjections
local registrations = backends.registrations
+local nodeinjections = backends.nodeinjections
local unsetvalue = attributes.unsetvalue
local enableaction = nodes.tasks.enableaction
@@ -348,10 +348,18 @@ function colors.spot(parent,f,d,p)
return { 5, .5, .5, .5, .5, 0, 0, 0, .5, parent, f, d, p }
end
-local function graycolor(...) graycolor = nodeinjections.graycolor return graycolor(...) end
-local function rgbcolor (...) rgbcolor = nodeinjections.rgbcolor return rgbcolor (...) end
-local function cmykcolor(...) cmykcolor = nodeinjections.cmykcolor return cmykcolor(...) end
-local function spotcolor(...) spotcolor = nodeinjections.spotcolor return spotcolor(...) end
+local graycolor = nodeinjections.graycolor
+local rgbcolor = nodeinjections.rgbcolor
+local cmykcolor = nodeinjections.cmykcolor
+local spotcolor = nodeinjections.spotcolor
+
+updaters.register("backends.injections.latebindings",function()
+ local nodeinjections = backends.nodeinjections
+ graycolor = nodeinjections.graycolor
+ rgbcolor = nodeinjections.rgbcolor
+ cmykcolor = nodeinjections.cmykcolor
+ spotcolor = nodeinjections.spotcolor
+end)
local function extender(colors,key)
if colors.supported and key == "none" then
@@ -513,15 +521,13 @@ local f_transparency = formatters["%s:%s"]
registerstorage("attributes/transparencies/registered", registered, "attributes.transparencies.registered")
registerstorage("attributes/transparencies/values", values, "attributes.transparencies.values")
-local function inject_transparency(...)
- inject_transparency = nodeinjections.transparency
- return inject_transparency(...)
-end
+local register_transparency = registrations.transparency
+local inject_transparency = nodeinjections.transparency
-local function register_transparency(...)
- register_transparency = registrations.transparency
- return register_transparency(...)
-end
+updaters.register("backends.injections.latebindings",function()
+ register_transparency = backends.registrations.transparency
+ inject_transparency = backends.nodeinjections.transparency
+end)
function transparencies.register(name,a,t,force) -- name is irrelevant here (can even be nil)
-- Force needed here for metapost converter. We could always force
@@ -614,7 +620,17 @@ colorintents.registered = allocate {
knockout = 2,
}
-local data, registered = colorintents.data, colorintents.registered
+local inject_overprint = nodeinjections.injectoverprint
+local inject_knockout = nodeinjections.injectknockout
+
+updaters.register("backends.injections.latebindings",function()
+ local nodeinjections = backends.nodeinjections
+ inject_overprint = nodeinjections.injectoverprint
+ inject_knockout = nodeinjections.injectknockout
+end)
+
+local data = colorintents.data
+local registered = colorintents.registered
local function extender(colorintents,key)
if key == "none" then
@@ -626,11 +642,11 @@ end
local function reviver(data,n)
if n == 1 then
- local d = nodeinjections.overprint() -- called once
+ local d = inject_overprint() -- called once
data[1] = d
return d
elseif n == 2 then
- local d = nodeinjections.knockout() -- called once
+ local d = inject_knockout() -- called once
data[2] = d
return d
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/attr-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/attr-ini.lmt
new file mode 100644
index 00000000000..8b2ec89119b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/attr-ini.lmt
@@ -0,0 +1,361 @@
+if not modules then modules = { } end modules ['attr-ini'] = {
+ version = 1.001,
+ comment = "companion to attr-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local next, type = next, type
+local osexit = os.exit
+local sortedhash = table.sortedhash
+
+--[[ldx--
+<p>We start with a registration system for atributes so that we can use the
+symbolic names later on.</p>
+--ldx]]--
+
+local nodes = nodes
+local context = context
+local storage = storage
+local commands = commands
+
+local implement = interfaces.implement
+
+attributes = attributes or { }
+local attributes = attributes
+
+local sharedstorage = storage.shared
+
+local texsetattribute = tex.setattribute
+
+attributes.names = attributes.names or { }
+attributes.numbers = attributes.numbers or { }
+attributes.list = attributes.list or { }
+attributes.values = attributes.values or { }
+attributes.counts = attributes.counts or { }
+attributes.handlers = attributes.handlers or { }
+attributes.states = attributes.states or { }
+attributes.unsetvalue = -0x7FFFFFFF
+
+local currentfont = font.current
+local currentattributes = nodes and nodes. currentattributes or node.currentattributes
+local getusedattributes = nodes and nodes.nuts and nodes.nuts.getusedattributes or node.direct.getusedattributes
+
+local names = attributes.names
+local numbers = attributes.numbers
+local list = attributes.list
+local values = attributes.values
+local counts = attributes.counts
+
+storage.register("attributes/names", names, "attributes.names")
+storage.register("attributes/numbers", numbers, "attributes.numbers")
+storage.register("attributes/list", list, "attributes.list")
+storage.register("attributes/values", values, "attributes.values")
+storage.register("attributes/counts", counts, "attributes.counts")
+
+local report_attribute = logs.reporter("attributes")
+local report_value = logs.reporter("attributes","values")
+
+local trace_values = false
+
+local max_register_index = tex.magicconstants.max_attribute_register_index
+
+trackers.register("attributes.values", function(v) trace_values = v end)
+
+-- function attributes.define(name,number) -- at the tex end
+-- if not numbers[name] then
+-- numbers[name] = number
+-- names[number] = name
+-- list[number] = { }
+-- end
+-- end
+
+--[[ldx--
+<p>We reserve this one as we really want it to be always set (faster).</p>
+--ldx]]--
+
+names[0], numbers["fontdynamic"] = "fontdynamic", 0
+
+--[[ldx--
+<p>private attributes are used by the system and public ones are for users. We use dedicated
+ranges of numbers for them. Of course a the <l n='context'/> end a private attribute can be
+accessible too, so a private attribute can have a public appearance.</p>
+--ldx]]--
+
+sharedstorage.attributes_last_private = sharedstorage.attributes_last_private or 15 -- very private
+sharedstorage.attributes_last_public = sharedstorage.attributes_last_public or 1024 -- less private
+
+function attributes.private(name) -- at the lua end (hidden from user)
+ local number = numbers[name]
+ if not number then
+ local last = sharedstorage.attributes_last_private
+ if last < 1023 then
+ last = last + 1
+ sharedstorage.attributes_last_private = last
+ else
+ report_attribute("no more room for private attributes")
+ osexit()
+ end
+ number = last
+ numbers[name], names[number], list[number] = number, name, { }
+ end
+ return number
+end
+
+function attributes.public(name) -- at the lua end (hidden from user)
+ local number = numbers[name]
+ if not number then
+ local last = sharedstorage.attributes_last_public
+ if last < max_register_index then
+ last = last + 1
+ sharedstorage.attributes_last_public = last
+ else
+ report_attribute("no more room for public attributes")
+ osexit()
+ end
+ number = last
+ numbers[name], names[number], list[number] = number, name, { }
+ end
+ return number
+end
+
+attributes.system = attributes.private
+
+function attributes.define(name,category)
+ return (attributes[category or "public"] or attributes["public"])(name)
+end
+
+-- tracers
+
+local function showlist(what,list)
+ if list then
+ local a = list.next
+ local i = 0
+ while a do
+ local number = a.index
+ local value = a.value
+ i = i + 1
+ report_attribute("%S %2i: attribute %3i, value %4i, name %a",what,i,number,value,names[number])
+ a = a.next
+ end
+ end
+end
+
+function attributes.showcurrent()
+ showlist("current",currentattributes())
+end
+
+function attributes.ofnode(n)
+ showlist(n,n.attr)
+end
+
+-- rather special (can be optimized)
+
+local store = { }
+
+function attributes.save(name)
+ name = name or ""
+ local n = currentattributes()
+ n = n and n.next
+ local t = { }
+ while n do
+ t[n.index] = n.value
+ n = n.next
+ end
+ store[name] = {
+ attr = t,
+ font = currentfont(),
+ }
+end
+
+function attributes.restore(name)
+ name = name or ""
+ local t = store[name]
+ if t then
+ local attr = t.attr
+ local font = t.font
+ if attr then
+ for k, v in next, attr do
+ texsetattribute(k,v)
+ end
+ end
+ if font then
+ -- tex.font = font
+ -- context.getvalue(fonts.hashes.csnames[font])
+ currentfont(font)
+ end
+ end
+ -- store[name] = nil
+end
+
+-- value manager
+
+local cleaners = { }
+
+-- function attributes.registervalue(index,value)
+-- local list = values[index]
+-- local last
+-- if list then
+-- last = counts[index] + 1
+-- list[last] = value
+-- else
+-- last = 1
+-- values[index] = { value }
+-- end
+-- counts[index] = last
+-- return last
+-- end
+
+function attributes.registervalue(index,value)
+ local list = values[index]
+ local last
+ if list then
+ local c = counts[index]
+ if c and c[2] > 0 then
+ -- this can be an option
+ for i=c[1],c[2] do
+ if list[i] == nil then
+ -- we avoid 0 because that can be a signal attribute value
+ local n = i == 0 and 1 or i
+ if trace_values then
+ report_value("reusing slot %i for attribute %i in range (%i,%i)",n,index,c[1],c[2])
+ end
+ c[1] = n
+ list[n] = value
+ return n
+ end
+ end
+ else
+ c = { 0, 0 }
+ end
+ last = c[2] + 1
+ list[last] = value
+ c[1] = last
+ c[2] = last
+ if trace_values then
+ report_value("expanding to slot %i for attribute %i",last,index)
+ end
+ else
+ last = 1
+ values[index] = { value }
+ counts[index] = { last, last }
+ if trace_values then
+ report_value("starting at slot %i for attribute %i",last,index)
+ end
+ end
+ return last
+end
+
+function attributes.getvalue(index,value)
+ local list = values[index]
+ return list and list[value] or nil
+end
+
+function attributes.hasvalues(index)
+ local list = values[index]
+ return list and next(list) and true or false
+end
+
+function attributes.getvalues(index)
+ local list = values[index]
+ return list and next(list) and list or nil
+end
+
+function attributes.setcleaner(index,cleaner)
+ cleaners[index] = cleaner
+end
+
+function attributes.checkvalues()
+-- if true then
+-- report_value("no checking done")
+-- return
+-- end
+ if next(values) then
+ local active = getusedattributes()
+ if trace_values then
+ -- sorted
+ for index, list in sortedhash(values) do
+ local b = active[index]
+ if b then
+ local cleaner = cleaners[index]
+ for k in sortedhash(list) do
+ if b[k] then
+ report_value("keeping value %i for attribute %i",k,index)
+ else
+ report_value("wiping value %i for attribute %i",k,index)
+ if cleaner then
+ cleaner(list[k])
+ end
+ list[k] = nil
+ end
+ end
+ if next(list) then
+ counts[index][1] = 0
+ goto continue
+ end
+ end
+ report_value("no more values for attribute %i",index)
+ values[index] = nil
+ counts[index] = nil
+ ::continue::
+ end
+ else
+ for index, list in next, values do
+ local b = active[index]
+ if b then
+ local cleaner = cleaners[index]
+ for k in next, list do
+ if not b[k] then
+ if cleaner then
+ cleaner(list[k])
+ end
+ list[k] = nil
+ end
+ end
+ if next(list) then
+ counts[index][1] = 0
+ goto continue
+ end
+ end
+ values[index] = nil
+ counts[index] = { 0, 0 }
+ ::continue::
+ end
+ end
+ elseif trace_values then
+ report_value("no check needed")
+ end
+end
+
+implement {
+ name = "cleanupattributes",
+ -- public = true, -- some day ... but then also \shipoutpage
+ protected = true,
+ actions = attributes.checkvalues,
+}
+
+-- interface
+
+implement {
+ name = "defineattribute",
+ arguments = "2 strings",
+ actions = { attributes.define, context }
+}
+
+implement {
+ name = "showattributes",
+ actions = attributes.showcurrent
+}
+
+implement {
+ name = "savecurrentattributes",
+ arguments = "string",
+ actions = attributes.save
+}
+
+implement {
+ name = "restorecurrentattributes",
+ arguments = "string",
+ actions = attributes.restore
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/attr-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/attr-ini.mkxl
index e707a478f1f..ce21be08128 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/attr-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/attr-ini.mkxl
@@ -15,7 +15,7 @@
\unprotect
-\registerctxluafile{attr-ini}{}
+\registerctxluafile{attr-ini}{autosuffix}
\installcorenamespace{attributecount} % the counter representing the attribute (attrdef'd)
\installcorenamespace{attributeid} % the internal number
@@ -23,16 +23,16 @@
\installcorenamespace{attributepickup}
\permanent\protected\def\pushattribute#1%
- {\global\advance\csname\??attributestack\string#1\endcsname\plusone
+ {\global\advanceby\csname\??attributestack\string#1\endcsname\plusone
\gdefcsname\??attributestack\string#1:\number\csname\??attributestack\string#1\endcsname\endcsname{\number\attribute#1}}
\permanent\protected\def\popattribute#1%
{\attribute#1\csname\??attributestack\string#1:\number\csname\??attributestack\string#1\endcsname\endcsname\relax
- \global\advance\csname\??attributestack\string#1\endcsname\minusone}
+ \global\advanceby\csname\??attributestack\string#1\endcsname\minusone}
\permanent\protected\def\installattributestack#1%
{\ifcsname\??attributestack\string#1\endcsname \else
- \expandafter\newcount\csname\??attributestack\string#1\endcsname
+ \expandafter\newinteger\csname\??attributestack\string#1\endcsname
\fi}
\newtoks \t_attr_list_global
diff --git a/Master/texmf-dist/tex/context/base/mkxl/attr-lay.mkxl b/Master/texmf-dist/tex/context/base/mkxl/attr-lay.mkxl
index 00c6335337a..122839c0608 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/attr-lay.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/attr-lay.mkxl
@@ -66,14 +66,14 @@
\def\currentviewerlayer{\the\currentviewerlayertoks}
\appendtoks
- \let\currentviewerlayer\empty
+ \lettonothing\currentviewerlayer
\to \everybeforepagebody
% layout components are implemented rather directly (speed)
\installcorenamespace{layoutcomponentattribute}
-\mutable\let\layoutcomponentboxattribute\empty
+\mutable\lettonothing\layoutcomponentboxattribute
\permanent\def\attr_layoutcomponent_initialize#1%
{\edef\layoutcomponentboxattribute{\clf_definedlayoutcomponent{#1}}%
@@ -87,11 +87,11 @@
\fi}
\permanent\def\attr_layoutcomponent_reset
- {\let\layoutcomponentboxattribute\empty}
+ {\lettonothing\layoutcomponentboxattribute}
-\permanent\let\setlayoutcomponentattribute \gobbleoneargument
-\permanent\let\resetlayoutcomponentattribute\relax
- \let\layoutcomponentboxattribute \empty
+\permanent\let \setlayoutcomponentattribute \gobbleoneargument
+\permanent\let \resetlayoutcomponentattribute\relax
+ \lettonothing\layoutcomponentboxattribute
\permanent\protected\def\showlayoutcomponents
{\enforced\let\setlayoutcomponentattribute \attr_layoutcomponent_set
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-exp-imp-mth.lmt b/Master/texmf-dist/tex/context/base/mkxl/back-exp-imp-mth.lmt
index 73c09d79ecf..4df109b54f5 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/back-exp-imp-mth.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/back-exp-imp-mth.lmt
@@ -21,6 +21,10 @@ local extras = backend.extras
local checks = backend.checks
local finalizers = backend.finalizers
+----- bpfactor = number.dimenfactors.bp
+----- f_points = string.formatters["%p"]
+local f_em = string.formatters["%.6Nem"]
+
local implement = interfaces.implement
do
@@ -155,6 +159,7 @@ do
mi = true,
mo = true,
mn = true,
+ mspace = true,
}
local function checkmath(root) -- we can provide utf.toentities as an option
@@ -162,8 +167,16 @@ do
if data then
local ndata = #data
local roottg = root.tg
- if roottg == "msubsup" then
- -- kind of tricky: we have a diufferent order in display mode
+ if roottg == "mo" then
+ local s = specifications[root.fulltag]
+ local c = s.class
+ if c == "open" or c == "close" or c == "middle" then
+ root.attributes = {
+ maxsize = 1
+ }
+ end
+ elseif roottg == "msubsup" then
+ -- kind of tricky: we have a different order in display mode
local nucleus, superscript, subscript
if ndata > 3 then
-- error
@@ -206,25 +219,33 @@ do
-- end
elseif roottg == "mfenced" then
local s = specifications[root.fulltag]
- local l, m, r = s.left, s.middle, s.right
- if l then
- l = utfchar(l)
- end
- if m then
- local t = { }
- for i=1,#m do
- t[i] = utfchar(m[i])
+ local o = s.operator
+ if o then
+ root.skip = "comment"
+ -- root.content = utfchar(o) -- use embedded for now
+ else
+ local l = s.left
+ local m = s.middle
+ local r = s.right
+ if l then
+ l = utfchar(l)
end
- m = concat(t)
- end
- if r then
- r = utfchar(r)
+ if m then
+ local t = { }
+ for i=1,#m do
+ t[i] = utfchar(m[i])
+ end
+ m = concat(t)
+ end
+ if r then
+ r = utfchar(r)
+ end
+ root.attributes = {
+ open = l,
+ separators = m,
+ close = r,
+ }
end
- root.attributes = {
- open = l,
- separators = m,
- close = r,
- }
end
if ndata == 0 then
root.skip = "comment" -- get rid of weird artefacts
@@ -241,7 +262,7 @@ do
local tg = d.tg
if automathrows and (roottg == "mrow" or roottg == "mtext") then
-- maybe just always ! check spec first
- -- or we can have chesks.* for each as we then can flatten
+ -- or we can have checks.* for each as we then can flatten
if no_mrow[tg] then
root.skip = "comment"
end
@@ -274,7 +295,13 @@ do
-- todo: p.topfixed
if t then
-- mover
- d[1].data[1].content = utfchar(t)
+ if true then -- we don't go here any more
+ local dd = d[1].data
+ if dd then
+ dd[1].content = utfchar(t)
+ end
+ end
+ --
di.data = { d[2], d[1] }
end
else
@@ -294,7 +321,12 @@ do
-- todo: p.bottomfixed
if b then
-- munder
- d[2].data[1].content = utfchar(b)
+ if true then -- we don't go here any more
+ local dd = d[2].data
+ if dd then
+ dd[1].content = utfchar(b)
+ end
+ end
end
else
-- can't happen
@@ -317,8 +349,16 @@ do
-- todo: p.bottomfixed
if t and b then
-- munderover
- d[1].data[1].content = utfchar(t)
- d[3].data[1].content = utfchar(b)
+ if true then -- we don't go here any more
+ local dd = d[1].data
+ if dd then
+ dd[1].content = utfchar(t)
+ end
+ local dd = d[3].data
+ if dd then
+ dd[1].content = utfchar(b)
+ end
+ end
di.data = { d[2], d[3], d[1] }
else
-- can't happen
@@ -394,6 +434,17 @@ do
elseif tg == "break" then
di.skip = "comment"
i = i + 1
+ elseif tg == "mspace" then
+ -- di.empty = true
+ local s = specifications[di.fulltag]
+ local e = s and s.emfactor
+ if e and e ~= 0 then
+ di.element = "mspace"
+ di.attributes = {
+ width = f_em(e),
+ }
+ end
+ i = i + 1
elseif tg == "mtext" then
-- this is only needed for unboxed mtexts ... all kind of special
-- tex border cases and optimizations ... trial and error
@@ -519,6 +570,8 @@ do
local tg = di.tg
if tg == "mtext" or tg == "ms" then
return di
+ elseif tg == "mspace" then
+ return di
else
local data = di.data
local ndata = #data
@@ -530,38 +583,43 @@ do
end
if d then
local content = d.content
- if not content then
+ if d.tg == "mspace" then
+ n = n + 1
+ data[n] = d
+ d.data = { }
+ elseif not content then
+-- if not content then
n = n + 1
d.__i__ = n
data[n] = d
- elseif content == " " or content == "" then
- if di.tg == "mspace" then
- -- we append or prepend a space to a preceding or following mtext
- local parent = di.__p__
- local index = di.__i__ -- == i
- local data = parent.data
- if index > 1 then
- local d = data[index-1]
- if d.tg == "mtext" then
- local dd = d.data
- local dn = dd[#dd]
- local dc = dn.content
- if dc then
- dn.content = dc .. content
- end
- end
- elseif index < ndata then
- local d = data[index+1]
- if d.tg == "mtext" then
- local dd = d.data
- local dn = dd[1]
- local dc = dn.content
- if dc then
- dn.content = content .. dc
- end
- end
- end
- end
+-- elseif content == " " or content == "" then
+-- if d.tg == "mspace" then
+-- -- we append or prepend a space to a preceding or following mtext
+-- local parent = di.__p__
+-- local index = di.__i__ -- == i
+-- local data = parent.data
+-- if index > 1 then
+-- local d = data[index-1]
+-- if d.tg == "mtext" then
+-- local dd = d.data
+-- local dn = dd[#dd]
+-- local dc = dn.content
+-- if dc then
+-- dn.content = dc .. content
+-- end
+-- end
+-- elseif index < ndata then
+-- local d = data[index+1]
+-- if d.tg == "mtext" then
+-- local dd = d.data
+-- local dn = dd[1]
+-- local dc = dn.content
+-- if dc then
+-- dn.content = content .. dc
+-- end
+-- end
+-- end
+-- end
else
n = n + 1
data[n] = d
@@ -586,8 +644,9 @@ do
local specification = specifications[di.fulltag]
local mode = specification and specification.mode == "display" and "block" or "inline"
di.attributes = {
- ["display"] = mode,
- ["xmlns:m"] = mathmlns,
+ ["display"] = mode,
+ ["xmlns:m"] = mathmlns,
+ ["xmlns:math"] = mathmlns,
}
-- can be option if needed:
if mode == "inline" then
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-exp.lmt b/Master/texmf-dist/tex/context/base/mkxl/back-exp.lmt
index 1375d2655c2..e5e2e9dab00 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/back-exp.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/back-exp.lmt
@@ -44,6 +44,7 @@ local formatters = string.formatters
local todimen = number.todimen
local replacetemplate = utilities.templates.replace
local settings_to_array = utilities.parsers.settings_to_array
+local settings_to_hash = utilities.parsers.settings_to_hash
local addsuffix, joinfile, nameonly, basename, filesuffix = file.addsuffix, file.join, file.nameonly, file.basename, file.suffix
@@ -74,8 +75,6 @@ local v_hidden = variables.hidden
local implement = interfaces.implement
-local included = backends.included
-
local tasks = nodes.tasks
local fontchar = fonts.hashes.characters
local fontquads = fonts.hashes.quads
@@ -100,12 +99,12 @@ local overloads = fonts.mappings.overloads
-- todo: more locals (and optimize)
-local exportversion = "0.35"
-local mathmlns = "http://www.w3.org/1998/Math/MathML"
-local contextns = "http://www.contextgarden.net/context/export" -- whatever suits
-local cssnamespaceurl = "@namespace context url('%namespace%') ;"
-local cssnamespace = "context|"
------ cssnamespacenop = "/* no namespace */"
+local exportversion <const> = "0.35"
+local mathmlns <const> = "http://www.w3.org/1998/Math/MathML"
+local contextns <const> = "http://www.contextgarden.net/context/export" -- whatever suits
+local cssnamespaceurl <const> = "@namespace context url('%namespace%') ;"
+local cssnamespace <const> = "context|"
+----- cssnamespacenop <const> = "/* no namespace */"
local usecssnamespace = false
@@ -137,7 +136,6 @@ local currentdepth = 0
local wrapups = { }
local tree = { data = { }, fulltag == "root" } -- root
-local treeroot = tree
local treehash = { }
local extras = { }
local checks = { }
@@ -297,7 +295,7 @@ structurestags.backend = {
destinationhash = destinationhash,
}
-local namespacetemplate = [[
+local namespacetemplate <const> = [[
/* %what% for file %filename% */
%cssnamespaceurl%
@@ -313,7 +311,7 @@ do
-- /* text-justify : inter-word ; */
-- /* text-align : justify ; */
-local documenttemplate = [[
+local documenttemplate <const> = [[
document,
%namespace%div.document {
font-size : %size% !important ;
@@ -322,7 +320,7 @@ document,
hyphens : %hyphens% !important ;
}]]
-local styletemplate = [[
+local styletemplate <const> = [[
%element%[detail="%detail%"],
%namespace%div.%element%.%detail% {
display : inline ;
@@ -335,9 +333,9 @@ local styletemplate = [[
local numbertoallign = {
[0] = "justify", ["0"] = "justify", [variables.normal ] = "justify",
- [1] = "right", ["1"] = "right", [variables.flushright] = "right",
- [2] = "center", ["2"] = "center", [variables.middle ] = "center",
- [3] = "left", ["3"] = "left", [variables.flushleft ] = "left",
+ "right", ["1"] = "right", [variables.flushright] = "right",
+ "center", ["2"] = "center", [variables.middle ] = "center",
+ "left", ["3"] = "left", [variables.flushleft ] = "left",
}
function wrapups.allusedstyles(filename)
@@ -410,7 +408,7 @@ end
do
-local imagetemplate = [[
+local imagetemplate <const> = [[
%element%[id="%id%"], %namespace%div.%element%[id="%id%"] {
display : block ;
background-image : url('%url%') ;
@@ -561,9 +559,7 @@ do
setattribute(di,"language",languagenames[texgetcount("mainlanguagenumber")])
if not less_state then
setattribute(di,"file",tex.jobname)
- if included.date then
- setattribute(di,"date",os.fulltime())
- end
+ setattribute(di,"date",os.fulltime())
setattribute(di,"context",environment.version)
setattribute(di,"version",exportversion)
setattribute(di,"xmlns:m",mathmlns)
@@ -845,9 +841,9 @@ do
used[element][detail or ""] = { nature, specification.parents } -- for template css
-- also in last else ?
local metadata = specification.metadata
- if metadata then
+ if metadata and next(metadata) then
result[#result+1] = f_metadata_begin(depth)
- for k, v in table.sortedpairs(metadata) do
+ for k, v in sortedhash(metadata) do
if v ~= "" then
result[#result+1] = f_metadata(depth+1,k,lpegmatch(p_entity,v))
end
@@ -921,7 +917,9 @@ do
local element = di.element
if not element then
-- skip
- elseif element == "break" then -- or element == "pagebreak"
+ elseif element == "break" then -- or element == "pagebreak" -- todo: use empty flag
+ emptytag(result,element,nature,di)
+ elseif element == "mspace" then -- todo: use empty flag
emptytag(result,element,nature,di)
elseif element == "" or di.skip == "ignore" then
-- skip
@@ -941,6 +939,11 @@ do
flushtree(result,di.after,nature)
end
end
+ else
+-- local element = di.element
+-- if element == "mspace" then -- todo: use empty flag
+-- emptytag(result,element,nature,di)
+-- end
end
end
end
@@ -961,8 +964,8 @@ do
-- skip
elseif di.skip == "ignore" then
-- skip (new)
-elseif di.tg == "ignore" then
- -- skip (new)
+ elseif di.tg == "ignore" then
+ -- skip (new)
elseif di.content then
if di.samepar then
prevparnumber = false
@@ -1046,12 +1049,22 @@ elseif di.tg == "ignore" then
-- also tabulaterow reconstruction .. maybe better as a checker
-- i.e cell attribute
+ local function showtree(data,when,where)
+ if data then
+ for i=1,#data do
+ local d = data[i]
+ if type(d) == "table" and d.element then
+ print(when,where,i,d.element,d.parnumber or 0)
+ end
+ end
+ end
+ end
+
local function collapsetree(tree)
--- for tag, trees in sortedhash(treehash) do
+ -- showtree(data,"before","collapse")
+ -- for tag, trees in sortedhash(treehash) do
for tag, trees in next, treehash do
local d = trees[1].data
--- print("!!!!!!!!",tag)
--- inspect(trees)
if d then
local nd = #d
if nd > 0 then
@@ -1097,30 +1110,22 @@ elseif di.tg == "ignore" then
end
end
end
+ -- showtree(data,"after","collapse")
end
local function finalizetree(tree)
+ -- showtree(data,"before","finalize")
for _, finalizer in next, finalizers do
finalizer(tree)
end
+ -- showtree(data,"after","finalize")
end
- -- local function showtree(data,when,where)
- -- if data then
- -- for i=1,#data do
- -- local d = data[i]
- -- if type(d) == "table" and d.element then
- -- print(when,where,i,d.element,d.parnumber or 0)
- -- end
- -- end
- -- end
- -- end
-
local function indextree(tree)
local data = tree.data
if data then
- local n, new = 0, { }
-- showtree(data,"before","index")
+ local n, new = 0, { }
for i=1,#data do
local d = data[i]
if not d then
@@ -1148,9 +1153,12 @@ elseif di.tg == "ignore" then
for i=1,#data do
local d = data[i]
if type(d) == "table" then
- local check = checks[d.tg]
- if check then
- check(d,data,i)
+ local tg = d.tg
+ if tg then
+ local check = checks[tg]
+ if check then
+ check(d,data,i)
+ end
end
checktree(d) -- so parts can pass twice
end
@@ -1166,9 +1174,12 @@ elseif di.tg == "ignore" then
for i=1,#data do
local d = data[i]
if type(d) == "table" then
- local fix = fixes[d.tg]
- if fix then
- fix(d,data,i)
+ local tg = d.tg
+ if tg then
+ local fix = fixes[tg]
+ if fix then
+ fix(d,data,i)
+ end
end
fixtree(d) -- so parts can pass twice
end
@@ -1406,29 +1417,30 @@ end
local collectresults do -- too many locals otherwise
- local nodecodes = nodes.nodecodes
- local gluecodes = nodes.gluecodes
- local listcodes = nodes.listcodes
- local whatsitcodes = nodes.whatsitcodes
+ local nodecodes = nodes.nodecodes
+ local gluecodes = nodes.gluecodes
+ local listcodes = nodes.listcodes
+ local whatsitcodes = nodes.whatsitcodes
- local subtypes = nodes.subtypes
+ local subtypes = nodes.subtypes
- local hlist_code = nodecodes.hlist
- local vlist_code = nodecodes.vlist
- local glyph_code = nodecodes.glyph
- local glue_code = nodecodes.glue
- local kern_code = nodecodes.kern
- local disc_code = nodecodes.disc
- local whatsit_code = nodecodes.whatsit
- local par_code = nodecodes.par
+ local hlist_code = nodecodes.hlist
+ local vlist_code = nodecodes.vlist
+ local glyph_code = nodecodes.glyph
+ local glue_code = nodecodes.glue
+ local kern_code = nodecodes.kern
+ local disc_code = nodecodes.disc
+ local whatsit_code = nodecodes.whatsit
+ local par_code = nodecodes.par
- local userskip_code = gluecodes.userskip
- local rightskip_code = gluecodes.rightskip
- local parfillskip_code = gluecodes.parfillskip
- local spaceskip_code = gluecodes.spaceskip
- local xspaceskip_code = gluecodes.xspaceskip
+ local userskip_code = gluecodes.userskip
+ local rightskip_code = gluecodes.rightskip
+ local parfillskip_code = gluecodes.parfillskip
+ local spaceskip_code = gluecodes.spaceskip
+ local xspaceskip_code = gluecodes.xspaceskip
+ local intermathskip_code = gluecodes.intermathskip
- local linelist_code = listcodes.line
+ local linelist_code = listcodes.line
local userdefinedwhatsit_code = whatsitcodes.userdefined
@@ -1456,7 +1468,7 @@ local collectresults do -- too many locals otherwise
local getkern = nuts.getkern
local getwidth = nuts.getwidth
- local start_of_par = nuts.start_of_par
+ local startofpar = nuts.startofpar
local nexthlist = nuts.traversers.hlist
local nextnode = nuts.traversers.node
@@ -1654,6 +1666,21 @@ local collectresults do -- too many locals otherwise
currentcontent[nofcurrentcontent] = c
end
elseif subtype == userskip_code then
+-- local at = getattr(n,a_tagged)
+-- local tl = taglist[at]
+-- if tl and structurestags.strip(tl.taglist[#tl.taglist]) == "mspace" then
+-- if nofcurrentcontent > 0 then
+-- pushcontent()
+-- pushentry(currentnesting) -- ??
+-- end
+-- -- in the past we'd push a space here ... check mkiv : otherwise no threshold with mspace
+-- pushentry(tl)
+-- if trace_export then
+-- report_export("%w<!-- processing mspace tagged %a",currentdepth,at)
+-- end
+-- last = nil
+-- currentparagraph = nil
+-- else
if getwidth(n) > threshold then
if last and not somespace[currentcontent[nofcurrentcontent]] then
local a = getattr(n,a_tagged) or pat
@@ -1681,6 +1708,7 @@ local collectresults do -- too many locals otherwise
end
end
end
+-- end
elseif subtype == spaceskip_code or subtype == xspaceskip_code then
if not somespace[currentcontent[nofcurrentcontent]] then
local a = getattr(n,a_tagged) or pat
@@ -1703,6 +1731,8 @@ local collectresults do -- too many locals otherwise
currentattribute = last
end
end
+ elseif subtype == intermathskip_code then
+ -- put this as attribute when it differs, maybe more ... check mathml
elseif subtype == rightskip_code then
-- a line
if nofcurrentcontent > 0 then
@@ -1769,49 +1799,50 @@ local collectresults do -- too many locals otherwise
elseif id == kern_code then
local kern = getkern(n)
if kern > 0 then
-local a = getattr(n,a_tagged) or pat
-local t = taglist[a]
-if not t or t.tagname ~= "ignore" then -- maybe earlier on top)
- local limit = threshold
- if p then
- local c, f = isglyph(p)
- if c then
- limit = fontquads[f] / 4
+ local a = getattr(n,a_tagged) or pat
+ local t = taglist[a]
+ if not t or t.tagname ~= "ignore" then -- maybe earlier on top)
+ local limit = threshold
+ if p then
+ local c, f = isglyph(p)
+ if c then
+ limit = fontquads[f] / 4
+ end
end
- end
- if kern > limit then
- if last and not somespace[currentcontent[nofcurrentcontent]] then
--- local a = getattr(n,a_tagged) or pat
- if a == last then
- if not somespace[currentcontent[nofcurrentcontent]] then
+ if kern > limit then
+ if last and not somespace[currentcontent[nofcurrentcontent]] then
+ -- local a = getattr(n,a_tagged) or pat
+ if a == last then
+ if not somespace[currentcontent[nofcurrentcontent]] then
+ if trace_export then
+ report_export("%w<!-- injecting spacing 8 (kern %p) -->",currentdepth,kern)
+ end
+ nofcurrentcontent = nofcurrentcontent + 1
+ currentcontent[nofcurrentcontent] = " "
+ end
+ elseif a then
+ -- e.g LOGO<space>LOGO
+ if trace_export then
+ report_export("%w<!-- processing kern, threshold %p, tag %s => %s -->",currentdepth,limit,last,a)
+ end
+ last = a
+ pushcontent()
if trace_export then
- report_export("%w<!-- injecting spacing 8 (kern %p) -->",currentdepth,kern)
+ report_export("%w<!-- injecting spacing 9 (kern %p) -->",currentdepth,kern)
end
nofcurrentcontent = nofcurrentcontent + 1
currentcontent[nofcurrentcontent] = " "
+ -- currentnesting = taglist[last]
+ currentnesting = t
+ pushentry(currentnesting)
+ currentattribute = last
end
- elseif a then
- -- e.g LOGO<space>LOGO
- if trace_export then
- report_export("%w<!-- processing kern, threshold %p, tag %s => %s -->",currentdepth,limit,last,a)
- end
- last = a
- pushcontent()
- if trace_export then
- report_export("%w<!-- injecting spacing 9 (kern %p) -->",currentdepth,kern)
- end
- nofcurrentcontent = nofcurrentcontent + 1
- currentcontent[nofcurrentcontent] = " "
--- currentnesting = taglist[last]
-currentnesting = t
- pushentry(currentnesting)
- currentattribute = last
end
end
end
-end
end
elseif id == whatsit_code then
+ -- todo (lmtx)
if subtype == userdefinedwhatsit_code then
-- similar to images, see above
local at = getattr(n,a_tagged)
@@ -1826,7 +1857,7 @@ end
last = nil
currentparagraph = nil
end
- elseif not paragraph and id == par_code and start_of_par(n) then
+ elseif not paragraph and id == par_code and startofpar(n) then
paragraph = getattr(n,a_taggedpar)
elseif id == disc_code then
-- very unlikely because we stripped them
@@ -1849,18 +1880,25 @@ end
end
end
+ local enabled = true
+
+ updaters.register("tagging.state.disable",function() enabled = false end)
+ updaters.register("tagging.state.enable", function() enabled = true end)
+
function nodes.handlers.export(head) -- hooks into the page builder
- starttiming(treehash)
- if trace_export then
- report_export("%w<!-- start flushing page -->",currentdepth)
- end
- -- continueexport()
- restart = true
- collectresults(head)
- if trace_export then
- report_export("%w<!-- stop flushing page -->",currentdepth)
+ if enabled then
+ starttiming(treehash)
+ if trace_export then
+ report_export("%w<!-- start flushing page -->",currentdepth)
+ end
+ -- continueexport()
+ restart = true
+ collectresults(head)
+ if trace_export then
+ report_export("%w<!-- stop flushing page -->",currentdepth)
+ end
+ stoptiming(treehash)
end
- stoptiming(treehash)
return head
end
@@ -1869,13 +1907,15 @@ end
return p
end
+ -- needs checking!
+
function builders.paragraphs.tag(head)
noftextblocks = noftextblocks + 1
for n, subtype in nexthlist, head do
if subtype == linelist_code then
setattr(n,a_textblock,noftextblocks)
- elseif subtype == glue_code or subtype == kern_code then -- no need to set fontkerns
- setattr(n,a_textblock,0)
+ -- elseif subtype == glue_code or subtype == kern_code then -- weird, no list
+ -- setattr(n,a_textblock,0)
end
end
return false
@@ -1888,7 +1928,11 @@ do
local xmlcollected = xml.collected
local xmlsetcomment = xml.setcomment
-local xmlpreamble = [[
+local xmlpreamble_nop = [[
+<?xml version="1.0" encoding="UTF-8" standalone="%standalone%" ?>
+]]
+
+local xmlpreamble_yes = [[
<?xml version="1.0" encoding="UTF-8" standalone="%standalone%" ?>
<!--
@@ -1904,11 +1948,11 @@ local xmlpreamble = [[
local flushtree = wrapups.flushtree
- local function wholepreamble(standalone)
- return replacetemplate(xmlpreamble, {
+ local function wholepreamble(standalone,nocomment)
+ return replacetemplate(nocomment and xmlpreamble_nop or xmlpreamble_yes, {
standalone = standalone and "yes" or "no",
filename = tex.jobname,
- date = included.date and os.fulltime(),
+ date = os.fulltime(),
contextversion = environment.version,
exportversion = exportversion,
})
@@ -1923,7 +1967,18 @@ local cssheadlink = [[
<link type="text/css" rel="stylesheet" href="%filename%" />
]]
- local function allusedstylesheets(cssfiles,files,path)
+-- great, these suggested valuess attributes
+
+local mathmlheadscript = [[
+<script
+ type="text/javascript"
+ id="MathJax-script"
+ async="async"
+ src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/mml-chtml.js">
+</script>
+]]
+
+ local function allusedstylesheets(cssfiles,files,path,extra)
local done = { }
local result = { }
local extras = { }
@@ -1942,10 +1997,13 @@ local cssheadlink = [[
done[cssfile] = true
end
end
+ if extra then
+ extras[#extras+1] = extra
+ end
return concat(result), concat(extras)
end
-local elementtemplate = [[
+local elementtemplate <const> = [[
/* element="%element%" detail="%detail%" chain="%chain%" */
%element%,
@@ -1953,7 +2011,7 @@ local elementtemplate = [[
display: %display% ;
}]]
-local detailtemplate = [[
+local detailtemplate <const> = [[
/* element="%element%" detail="%detail%" chain="%chain%" */
%element%[detail=%detail%],
@@ -1963,7 +2021,7 @@ local detailtemplate = [[
-- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd" >
-local htmltemplate = [[
+local htmltemplate <const> = [[
%preamble%
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:math="http://www.w3.org/1998/Math/MathML">
@@ -2033,13 +2091,20 @@ local htmltemplate = [[
return concat(result,"\n\n")
end
- local function allcontent(tree,embed)
- local result = { }
+ local function allcontent(tree)
+ local result = { }
+ local data = tree.data
+ for i=1,#data do
+ if data[i].tg ~= "document" then
+ data[i] = { }
+ end
+ end
flushtree(result,tree.data,"display") -- we need to collect images
result = concat(result)
-- no need to lpeg .. fast enough
result = gsub(result,"\n *\n","\n")
result = gsub(result,"\n +([^< ])","\n%1")
+ --
return result
end
@@ -2237,11 +2302,16 @@ local htmltemplate = [[
if not c.special then
local tg = c.tg
local ns = c.ns
+ local at = c.at
if ns == "m" then
- if false then -- yes or no
+ -- should happen elsewhere
+ -- if false then -- yes or no
c.ns = ""
- c.at["xmlns:m"] = nil
- end
+ at["xmlns:m"] = nil
+ if tg == "math" then
+ at["xmlns"] = mathmlns
+ end
+ -- end
-- elseif tg == "a" then
-- c.ns = ""
else
@@ -2255,7 +2325,6 @@ local htmltemplate = [[
comment = c.dt
end
end
- local at = c.at
local class = nil
local label = nil
if tg == "document" then
@@ -2316,6 +2385,83 @@ local htmltemplate = [[
local embedfile = false directives.register("export.embed",function(v) embedfile = v end)
+ local justexport = nodes.handlers.export
+
+ local function wrapuptree(tree)
+ wrapups.fixtree(tree)
+ wrapups.collapsetree(tree)
+ wrapups.indextree(tree)
+ wrapups.checktree(tree)
+ wrapups.breaktree(tree)
+ wrapups.finalizetree(tree)
+ end
+
+ local function localexport(head)
+ starttiming(treehash)
+
+ local saved_treestack = treestack
+ local saved_nesting = nesting
+ local saved_currentdepth = currentdepth
+ local saved_tree = tree
+ local saved_treehash = treehash
+ local saved_nofbreaks = nofbreaks
+ local saved_show_comment = show_comment
+
+ treestack = { }
+ nesting = { }
+ currentdepth = 0
+ tree = { data = { }, fulltag == "root" } -- root
+ treehash = { }
+ nofbreaks = 0
+ show_comment = false
+
+ justexport(head)
+ finishexport()
+ wrapuptree(tree)
+
+ -- tree.data = tree.data[1].data
+
+ local result = concat {
+ wholepreamble(true,true),
+ allcontent(tree),
+ }
+
+ treestack = saved_treestack
+ nesting = saved_nesting
+ currentdepth = saved_currentdepth
+ tree = saved_tree
+ treehash = saved_treehash
+ nofbreaks = saved_nofbreaks
+ show_comment = saved_show_comment
+
+ stoptiming(treehash)
+
+ return result
+
+ end
+
+ structurestags.localexport = localexport
+
+ function structures.tags.exportbox(n,filename,buffername)
+ local list = nodes.nuts.getbox(n)
+ if n then
+ local e = localexport(list)
+ if filename and filename ~= "" then
+ io.savedata(filename,e)
+ elseif buffername then
+ buffers.assign(buffername == interfaces.variables.yes and "" or buffername,e)
+ else
+ return e
+ end
+ end
+ end
+
+ interfaces.implement {
+ name = "exportbox",
+ arguments = { "integer", "string", "string" },
+ actions = structures.tags.exportbox
+ }
+
function structurestags.finishexport()
if exporting then
@@ -2338,14 +2484,7 @@ local htmltemplate = [[
end
report_export("")
--
- wrapups.fixtree(tree)
- wrapups.collapsetree(tree)
- wrapups.indextree(tree)
- wrapups.checktree(tree)
- wrapups.breaktree(tree)
- wrapups.finalizetree(tree)
- --
- wrapups.hashlistdata()
+ wrapuptree(tree)
--
local askedname = finetuning.file
--
@@ -2439,14 +2578,7 @@ local htmltemplate = [[
-- representation that uses verbose element names and carries information in
-- attributes
- local data = tree.data
- for i=1,#data do
- if data[i].tg ~= "document" then
- data[i] = { }
- end
- end
-
- local result = allcontent(tree,embedmath) -- embedfile is for testing
+ local result = allcontent(tree)
-- ugly but so be it:
@@ -2488,7 +2620,7 @@ local htmltemplate = [[
os.remove(htmlfilename)
result = concat {
- wholepreamble(true),
+ wholepreamble(true,true),
"<!-- This export file is used for filtering runtime only! -->\n",
result,
}
@@ -2526,7 +2658,10 @@ local htmltemplate = [[
end
end
- local x_styles, h_styles = allusedstylesheets(cssfiles,files,"styles")
+
+ local script = settings_to_hash(finetuning.option or "").mathjax and mathmlheadscript or nil
+
+ local x_styles, h_styles = allusedstylesheets(cssfiles,files,"styles",script)
local attach = backends.nodeinjections.attachfile
@@ -2703,6 +2838,7 @@ implement {
{ "svgstyle" },
{ "cssfile" },
{ "file" },
+ { "option" },
{ "export" },
}
}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-exp.mkxl b/Master/texmf-dist/tex/context/base/mkxl/back-exp.mkxl
index 5aebd302fdc..cafbb938ffb 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/back-exp.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/back-exp.mkxl
@@ -15,6 +15,8 @@
\writestatus{loading}{ConTeXt Backend Macros / XML export}
+\newinteger\tagparcounter
+
\registerctxluafile{back-exp} {autosuffix}
\registerctxluafile{back-exp-imp-tag}{autosuffix}
\registerctxluafile{back-exp-imp-mth}{autosuffix}
@@ -49,10 +51,8 @@
\expandafter\ctxcommand
\fi}
-\newcount\tagparcounter
-
-\aliased\let\dotagsetparcounter\relax
-\aliased\let\doresetparcounter \relax
+\permanent\protected\lettonothing\dotagsetparcounter
+\permanent\protected\lettonothing\doresetparcounter
\appendtoks
\doresetparcounter
@@ -158,7 +158,7 @@
\appendtoks
\enforced\permanent\protected\def\dotagsetparcounter
- {\global\advance\tagparcounter\plusone\c_attr_taggedpar\tagparcounter}%
+ {\global\advanceby\tagparcounter\plusone\c_attr_taggedpar\tagparcounter}%
\enforced\permanent\protected\def\doresetparcounter
{\c_attr_taggedpar\attributeunsetvalue}%
\to \everyenableelements
@@ -312,7 +312,7 @@
\permanent\protected\def\dostartexport
{%\glet\dostartexport\relax
- \let\currentexport\empty
+ \lettonothing\currentexport
\clf_setupexport
align {\exportparameter\c!align}%
bodyfont \dimexpr\exportparameter\c!bodyfont\relax
@@ -327,6 +327,7 @@
svgstyle {\exportparameter\c!svgstyle}%
cssfile {\exportparameter\c!cssfile}%
file {\exportparameter\c!file}%
+ option {\exportparameter\c!option}%
export {\backendparameter\c!export}%
\relax}
@@ -358,4 +359,106 @@
\fi
\to \everystartdocument
+%D This can replace the older (rather unknown) attachment feature because it
+%D is more immediate (same run). I can also use this then for manuals.
+%D
+%D \setuptagging[state=start] % mandate here
+%D
+%D \starttyping
+%D \startmathexport % [buffer=yes]
+%D test $ x = 1 + a $ test
+%D \stopmathexport
+%D
+%D \typebuffer
+%D
+%D \startmathexport[buffer=math]
+%D test $ x = 1 + a^2 $ test
+%D test $ x = 1 + a $ test
+%D test $ x = z + \sqrt{a} $ test
+%D \stopmathexport
+%D
+%D \typebuffer[math]
+%D
+%D \startmathexport[filename=foo.xml]
+%D test $ x = z + \sqrt{a} $ test
+%D \stopmathexport
+%D
+%D \dorecurse{\collectedmath} {\page \collectedmath #1 \page}
+%D \stoptyping
+%D
+%D This one also does buffers and files:
+%D
+%D \starttyping
+%D \startboxexport
+%D \startparagraph
+%D \input tufte
+%D \stopparagraph
+%D \startitemize
+%D \startitem item one \stopitem
+%D \startitem item two \stopitem
+%D \stopitemize
+%D \startparagraph
+%D \input tufte
+%D \stopparagraph
+%D \stopboxexport
+%D
+%D \typebuffer
+%D \stoptyping
+
+\installcorenamespace {boxexport}
+\installcorenamespace {mathexport}
+
+\installsetuponlycommandhandler \??boxexport {boxexport}
+\installsetuponlycommandhandler \??mathexport {mathexport}
+
+% \permanent\tolerant\protected\def\startboxexport[#1]%
+% {\dowithnextbox{\strc_export_box{#1}}\vbox\bgroup}
+%
+% \permanent\protected\def\stopboxexport
+% {\egroup}
+%
+% \def\strc_export_box#1%
+% {\ctxlua{buffers.assign("#1",structures.tags.exportbox(\number\nextbox))}}
+
+\permanent\tolerant\protected\def\startboxexport[#1]%
+ {\begingroup
+ \iftok{#1}\emptytoks
+ \letboxexportparameter\c!buffer\v!yes
+ \orelse\ifhastok={#1}\relax
+ \setupmathexport[#1]%
+ \else
+ \setboxexportparameter\c!buffer{#1}%
+ \fi
+ \setbox\nextbox\vbox\bgroup}
+
+\permanent\protected\def\stopboxexport
+ {\egroup
+ \clf_exportbox \nextbox
+ {\boxexportparameter\c!file}%
+ {\boxexportparameter\c!buffer}%
+ \endgroup}
+
+\permanent\tolerant\protected\def\startmathexport[#1]%
+ {\begingroup
+ \iftok{#1}\emptytoks
+ \letboxexportparameter\c!buffer\v!yes
+ \orelse\ifhastok={#1}\relax
+ \setupmathexport[#1]%
+ \else
+ \setboxexportparameter\c!buffer{#1}%
+ \fi
+ \clf_startcollectingmath}
+
+\permanent\protected\def\stopmathexport
+ {\clf_stopcollectingmath
+ \clf_processcollectedmath
+ {\boxexportparameter\c!file}
+ {\boxexportparameter\c!buffer}%
+ \endgroup}
+
+% Defined at the \LUA\ end:
+%
+% \the\collectedmath : number of snippets
+% \collectedmath n : specific snippet
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-lua.lmt b/Master/texmf-dist/tex/context/base/mkxl/back-imp-lua.lmt
index dc836f12bb3..5bb23973cb0 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/back-lua.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/back-imp-lua.lmt
@@ -1,7 +1,7 @@
-if not modules then modules = { } end modules ['back-lua'] = {
+if not modules then modules = { } end modules ['back-imp-lua'] = {
version = 1.001,
optimize = true,
- comment = "companion to lpdf-ini.mkiv",
+ comment = "companion to back-imp-lua.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "see context related readme files"
@@ -41,6 +41,7 @@ local used = { }
local shapes = { }
local glyphs = { }
local buffer = { }
+local metadata = nil
local b = 0
local converter = nil
@@ -65,25 +66,11 @@ local function reset()
end
local function result()
- -- todo: we're now still in the pdf backend but need different codeinjections
- local codeinjections = backends.pdf.codeinjections
- local getvariable = codeinjections.getidentityvariable or function() end
- local jobname = environment.jobname or tex.jobname or "unknown"
return {
- metadata = {
- unit = "bp",
- jobname = jobname,
- title = getvariable("title") or jobname,
- subject = getvariable("subject"),
- author = getvariable("author"),
- keywords = getvariable("keywords"),
- time = os.date("%Y-%m-%d %H:%M"),
- engine = environment.luatexengine .. " " .. environment.luatexversion,
- context = environment.version,
- },
- fonts = fonts,
- pages = pages,
- shapes = shapes,
+ metadata = metadata,
+ fonts = fonts,
+ pages = pages,
+ shapes = shapes,
}
end
@@ -106,6 +93,9 @@ end
local function prepare(driver)
converter = drivers.converters.lmtx
+ -- if not environment.initex then
+ backends.initialize("lua")
+ -- end
luatex.registerstopactions(1,function()
save()
end)
@@ -128,6 +118,23 @@ local function finalize(driver,details)
b[4] * bpfactor,
},
}
+ if not metadata then
+ -- this has to happen while we're still running tex because we do
+ -- prerolls
+ local identity = interactions.general.getidentity()
+ local jobname = environment.jobname or tex.jobname or "unknown"
+ metadata = {
+ unit = "bp",
+ jobname = jobname,
+ title = identity.title,
+ subject = identity.subject,
+ author = identity.author,
+ keywords = identity.keywords,
+ time = os.date("%Y-%m-%d %H:%M"),
+ engine = environment.luatexengine .. " " .. environment.luatexversion,
+ context = environment.version,
+ }
+ end
end
local function wrapup(driver)
@@ -195,7 +202,7 @@ local function flushcharacter(current, pos_h, pos_v, pos_r, font, char)
end
end
-local function rule(pos_h, pos_v, pos_r, size_h, size_v, rule_s, rule_o)
+local function flush_rule(current, pos_h, pos_v, pos_r, size_h, size_v, rule_s, rule_o)
b = b + 1
buffer[b] = {
t = "rule" ~= t and "rule" or nil,
@@ -218,23 +225,22 @@ end
local function flushrule(current, pos_h, pos_v, pos_r, size_h, size_v, subtype)
local rule_s, rule_o
if subtype == normalrule_code then
- rule_s = "normal"
+ rule_s = normal_rule_code
elseif subtype == outlinerule_code then
- rule_s = "outline"
+ rule_s = outline_rule_code
rule_o = getdata(current)
else
return
end
- return rule(pos_h, pos_v, pos_r, size_h, size_v, rule_s, rule_o)
+ return flush_rule(pos_h, pos_v, pos_r, size_h, size_v, rule_s, rule_o)
end
local function flushsimplerule(pos_h, pos_v, pos_r, size_h, size_v)
- return rule(pos_h, pos_v, pos_r, size_h, size_v, "normal", nil)
+ return flush_rule(false,pos_h,pos_v,pos_r,size_h,size_v,normalrule_code,nil)
end
local function flushspecialrule(pos_h, pos_v, pos_r, w, h, d, l, outline)
- -- no l support yet
- return rule(pos_h, pos_v - d, pos_r, w, h + d, outline and "outline" or "normal")
+ return flush_rule(false,pos_h,pos_v-d,pos_r,w,h+d,outline and outlinerule_code or normalrule_code)
end
-- file stuff too
@@ -296,11 +302,13 @@ drivers.install {
name = "json",
actions = {
prepare = prepare,
- initialize = initialize,
- finalize = finalize,
wrapup = wrapup,
cleanup = cleanup,
+ --
+ initialize = initialize,
convert = convert,
+ finalize = finalize,
+ --
outputfilename = outputfilename,
},
flushers = {
@@ -309,6 +317,7 @@ drivers.install {
rule = flushrule,
simplerule = flushsimplerule,
specialrule = flushspecialrule,
+ setstate = function() end,
}
}
@@ -338,6 +347,9 @@ end
local function prepare(driver)
converter = drivers.converters.lmtx
+ -- if not environment.initex then
+ backends.initialize("js")
+ -- end
luatex.registerstopactions(1,function()
save()
end)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-lua.mkxl b/Master/texmf-dist/tex/context/base/mkxl/back-imp-lua.mkxl
index 0fb1bcc88ef..64112384211 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/back-lua.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/back-imp-lua.mkxl
@@ -1,5 +1,5 @@
%D \module
-%D [ file=back-lua,
+%D [ file=back-imp-lua,
%D version=2018.07.26,
%D title=\CONTEXT\ Backend Macros,
%D subtitle=\LUA,
@@ -11,6 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\registerctxluafile{back-lua}{autosuffix,optimize}
+\registerctxluafile{back-imp-lua}{autosuffix}
\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-mps.lmt b/Master/texmf-dist/tex/context/base/mkxl/back-imp-mps.lmt
index 4a2a573c459..05d7c4a638c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/back-mps.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/back-imp-mps.lmt
@@ -1,7 +1,7 @@
-if not modules then modules = { } end modules ['back-mps'] = {
+if not modules then modules = { } end modules ['back-imp-mps'] = {
version = 1.001,
optimize = true,
- comment = "companion to lpdf-ini.mkiv",
+ comment = "companion to back-imp-mps.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "see context related readme files"
@@ -40,6 +40,8 @@ local function reset()
b = 0
end
+-- todo: high efficient helpers:
+
local f_font = formatters[ "\\definefont[%s][file:%s*none @ %sbp]\n" ]
local f_glyph = formatters[ [[draw textext.drt("\%s\char%i\relax") shifted (%N,%N);]] ]
@@ -77,6 +79,9 @@ end
local function prepare(driver)
converter = drivers.converters.lmtx
+ -- if not environment.initex then
+ backends.initialize("mps")
+ -- end
luatex.registerstopactions(1,function()
save()
end)
@@ -122,12 +127,12 @@ local function updatefontstate(id)
end
end
-local function flushcharacter(current, pos_h, pos_v, pod_r, font, char)
+local function flushcharacter(current, pos_h, pos_v, pos_r, font, char)
b = b + 1
buffer[b] = f_glyph(last,char,pos_h*bpfactor,pos_v*bpfactor)
end
-local function flushrule(current, pos_h, pos_v, pod_r, size_h, size_v, subtype)
+local function flushrule(current, pos_h, pos_v, pos_r, size_h, size_v, subtype)
if subtype == normalrule_code then
b = b + 1
buffer[b] = f_rule(size_h*bpfactor,size_v*bpfactor,pos_h*bpfactor,pos_v*bpfactor)
@@ -137,12 +142,12 @@ local function flushrule(current, pos_h, pos_v, pod_r, size_h, size_v, subtype)
end
end
-local function flushsimplerule(pos_h, pos_v, pod_r, size_h, size_v)
- flush_rule(false,pos_h,pos_v,pod_r,size_h,size_v,normalrule_code)
+local function flushsimplerule(pos_h, pos_v, pos_r, size_h, size_v)
+ flushrule(false,pos_h,pos_v,pos_r,size_h,size_v,normalrule_code)
end
-local function flushspecialrule(pos_h, pos_v, pod_r, w, h, d, l, outline)
- flush_rule(false,pos_h,pos_v-d,pod_r,w,h+d,outline and outlinerule_code or normalrule_code)
+local function flushspecialrule(pos_h, pos_v, pos_r, w, h, d, l, outline)
+ flushrule(false,pos_h,pos_v-d,pos_r,w,h+d,outline and outlinerule_code or normalrule_code)
end
-- installer
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-mps.mkxl b/Master/texmf-dist/tex/context/base/mkxl/back-imp-mps.mkxl
index d4d428d4203..bda05370665 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/back-mps.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/back-imp-mps.mkxl
@@ -1,5 +1,5 @@
%D \module
-%D [ file=back-mps,
+%D [ file=back-imp-mps,
%D version=2018.07.26,
%D title=\CONTEXT\ Backend Macros,
%D subtitle=\METAPOST,
@@ -11,6 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\registerctxluafile{back-mps}{autosuffix,optimize}
+\registerctxluafile{back-imp-mps}{autosuffix}
\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-imp-pdf.lmt b/Master/texmf-dist/tex/context/base/mkxl/back-imp-pdf.lmt
new file mode 100644
index 00000000000..a57427e664d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/back-imp-pdf.lmt
@@ -0,0 +1,49 @@
+if not modules then modules = { } end modules ['back-imp-pdf'] = {
+ version = 1.001,
+ comment = "companion to back-imp-pdf.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- We hide the pdf table from users so that we can guarantee no interference with
+-- the way we manage resources, info, etc. Users should use the \type {lpdf}
+-- interface instead. For now we have a little for tikz. If really needed some more
+-- can be made accessible but it has to happen in a controlled way then, for
+-- instance by first loading or enabling some compatibility layer so that we can
+-- trace possible interferences.
+
+updaters.register("backends.pdf.latebindings",function()
+ --
+ local dummy = function() end
+ local report = logs.reporter("backend")
+ --
+ -- For now we keep this for tikz. If really needed some more can be made
+ -- accessible but it has to happen in a controlled way then, for instance
+ -- by first loading or enabling some compatibility layer so that we can
+ -- trace possible interferences.
+ --
+ pdf = {
+ immediateobj = lpdf.immediateobject
+ }
+
+ table.setmetatableindex(pdf,function(t,k)
+ report("calling unavailable pdf.%s function",k)
+ t[k] = dummy
+ return dummy
+ end)
+
+end)
+
+-- The compression setter is defined here because it's probably the only macro
+-- that is used independent of a driver being chosen. It's easier this way than
+-- checking in other ways unless we add some generic compression setting to
+-- all drivers.
+
+interfaces.implement {
+ name = "setpdfcompression",
+ arguments = { "integer", "integer" },
+ actions = lpdf.setcompression,
+}
+
+-- The pdf driver itself is installed in lpdf-lmt.lmt!
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-imp-pdf.mkxl b/Master/texmf-dist/tex/context/base/mkxl/back-imp-pdf.mkxl
new file mode 100644
index 00000000000..f2afe61daff
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/back-imp-pdf.mkxl
@@ -0,0 +1,160 @@
+%D \module
+%D [ file=back-imp-pdf,
+%D version=2009.04.15,
+%D title=\CONTEXT\ Backend Macros,
+%D subtitle=\PDF,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D The less there is here, the better. After a decade it is time to remove the \type
+%D {\pdf*} ones completely. For the moment I keep them commented but even that will
+%D go away.
+
+%D Todo: a few delayed binding left:
+
+% ./lpdf-ini.lmt : reserve | immediate | positions | matrix | pos | fontobject
+% ./lpdf-lmt.lmt : fontname | object | boxresources
+% ./lpdf-rul.lmt : mp stuff
+% ./back-res.lmt : boxresources
+
+\writestatus{loading}{ConTeXt Backend Macros / PDF}
+
+% \registerctxluafile{back-imp-pdf}{autosuffix} % some code will move to lpdf-*
+
+\registerctxluafile{lpdf-ini}{autosuffix}
+\registerctxluafile{lpdf-lmt}{autosuffix}
+\registerctxluafile{lpdf-col}{autosuffix}
+\registerctxluafile{lpdf-xmp}{autosuffix}
+\registerctxluafile{lpdf-ano}{autosuffix}
+\registerctxluafile{lpdf-mis}{autosuffix}
+\registerctxluafile{lpdf-ren}{autosuffix}
+\registerctxluafile{lpdf-grp}{autosuffix}
+\registerctxluafile{lpdf-wid}{autosuffix}
+\registerctxluafile{lpdf-fld}{autosuffix}
+\registerctxluafile{lpdf-tag}{autosuffix}
+\registerctxluafile{lpdf-fmt}{autosuffix}
+\registerctxluafile{lpdf-pde}{autosuffix}
+\registerctxluafile{lpdf-img}{autosuffix}
+\registerctxluafile{lpdf-epa}{autosuffix}
+\registerctxluafile{lpdf-emb}{autosuffix}
+\registerctxluafile{lpdf-fnt}{autosuffix}
+\registerctxluafile{lpdf-rul}{autosuffix}
+
+\registerctxluafile{back-imp-pdf}{autosuffix} % some code will move to lpdf-*
+\registerctxluafile{back-imp-pdp}{autosuffix}
+
+% \registerctxluafile{lpdf-u3d}{autosuffix}
+
+\loadmkxlfile{back-imp-u3d}
+
+\unprotect
+
+%D We will minimize the number of calls to \PDF\ specific primitives and delegate
+%D all management and injection of code to the backend.
+%D
+%D Because we do a lot in \LUA\ and don't want interferences, we nil most of the
+%D \PDFTEX\ primitives. Of course one can always use the \type {\pdfvariable},
+%D \type {\pdfextension} and \type {\pdffeedback} primitives but it will probably
+%D have bad side effects. We fake them as primitives which is why they are
+%D defined as untraced.
+
+% \pdfextension % defined in lua
+% \pdffeedback % idem
+% \pdfvariable % idem
+% \pdfliteral % idem
+% \pdfobj % idem
+% \pdflastobj % idem
+% \pdfrefobj % idem
+
+\untraced\permanent\protected\def\pdfrestore {\pdfextension restore}
+\untraced\permanent\protected\def\pdfsave {\pdfextension save}
+\untraced\permanent\protected\def\pdfsetmatrix{\pdfextension setmatrix}
+
+\untraced\permanent\def\pdfxform {\saveboxresource}
+\untraced\permanent\def\pdflastxform {\lastsavedboxresourceindex}
+\untraced\permanent\def\pdfrefxform {\useboxresource}
+
+%D This is also needed for tikz:
+
+\ifdefined\pdfsavepos\else
+ \untraced\permanent\def\pdfsavepos {\savepos }
+ \untraced\permanent\def\pdflastxpos{\lastxpos}
+ \untraced\permanent\def\pdflastypos{\lastypos}
+\fi
+
+%D Here are quick and dirty compression flippers, mostly used when testing something
+%D as one can best stick to the defaults that also adapt to specific standards.
+
+\untraced\permanent\protected\def\nopdfcompression {\clf_setpdfcompression\zerocount\zerocount}
+\untraced\permanent\protected\def\onlypdfobjectcompression{\clf_setpdfcompression\plusthree\zerocount}
+\untraced\permanent\protected\def\maximumpdfcompression {\clf_setpdfcompression\plusnine \plusnine }
+\untraced\permanent\protected\def\normalpdfcompression {\clf_setpdfcompression\plusthree\plusthree}
+
+%D PDF/X (maybe combine the two lua calls)
+
+\setupbackend
+ [xmpfile=]
+
+\appendtoks
+ \edef\p_file{\backendparameter{xmpfile}}%
+ \ifempty\p_file\else
+ \clf_setxmpfile{\p_file}%
+ \fi
+\to \everysetupbackend
+
+%D This will change:
+
+\appendtoks
+ \clf_setformat
+ format {\backendparameter\c!format}%
+ level {\backendparameter\c!level}%
+ option {\backendparameter\c!option}%
+ profile {\backendparameter\c!profile}%
+ intent {\backendparameter\c!intent}%
+ file {\backendparameter\c!file}%
+ \relax
+\to \everysetupbackend
+
+%D These are the only official methods to add stuff to the resources. If more is
+%D needed for third party low level code, it can be added.
+
+% \pdfbackendsetcatalog #1#2 % defined in lua
+% \pdfbackendsetinfo #1#2 % idem
+% \pdfbackendsetname #1#2 % idem
+%
+% \pdfbackendsetpageattribute #1#2 % idem
+% \pdfbackendsetpagesattribute#1#2 % idem
+% \pdfbackendsetpageresource #1#2 % idem
+%
+% \pdfbackendsetextgstate #1#2 % idem
+% \pdfbackendsetcolorspace #1#2 % idem
+% \pdfbackendsetpattern #1#2 % idem
+% \pdfbackendsetshade #1#2 % idem
+%
+% \pdfbackendcurrentresources % idem, expandable
+% \pdfcolor #1 % idem, expandable
+
+%D This is a temporary hack that will be removed, improved or somehow can become
+%D default.
+
+\permanent\def\TransparencyHack{\setupcolors[\c!pagecolormodel=\v!auto]}
+
+%D Just in case one needs this \unknown:
+%D
+%D \starttyping
+%D text \pdfbackendactualtext{Meier}{Müller} text
+%D \stoptyping
+
+\untraced\permanent\protected\def\pdfbackendactualtext#1#2% not interfaced
+ {\clf_startactualtext{#2}%
+ #1%
+ \clf_stopactualtext}
+
+\aliased\let\pdfactualtext\pdfbackendactualtext
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-pdp.lmt b/Master/texmf-dist/tex/context/base/mkxl/back-imp-pdp.lmt
index 1b3a1700790..6b5a0edf937 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/back-pdp.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/back-imp-pdp.lmt
@@ -1,54 +1,50 @@
-if not modules then modules = { } end modules ['back-pdp'] = {
+if not modules then modules = { } end modules ['back-imp-pdp'] = {
version = 1.001,
- comment = "companion to lpdf-ini.mkiv",
+ comment = "companion to back-imp-pdf.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "see context related readme files"
}
--- This is temporary ... awaiting a better test .. basically we can
--- always use this: pdf primitives.
+-- We don't support late literals unless it's really needed by some third party
+-- code.
local context = context
local lpdf = lpdf
-local pdfreserveobject
-local pdfcompresslevel
-local pdfobject
-local pdfpagereference
-local pdfgetxformname
-local pdfminorversion
-local pdfmajorversion
-
-updaters.register("backend.update.lpdf",function()
- pdfreserveobject = lpdf.reserveobject
- pdfcompresslevel = lpdf.compresslevel
- pdfobject = lpdf.object
- pdfpagereference = lpdf.pagereference
- pdfgetxformname = lpdf.getxformname
- pdfminorversion = lpdf.minorversion
- pdfmajorversion = lpdf.majorversion
-end)
-
-local tokenscanners = tokens.scanners
-local scanword = tokenscanners.word
-local scankeyword = tokenscanners.keyword
-local scanstring = tokenscanners.string
-local scaninteger = tokenscanners.integer
-local scanwhd = tokenscanners.whd
-
-local trace = false trackers.register("backend", function(v) trace = v end)
-local report = logs.reporter("backend")
-
-local nodepool = nodes.pool
-local newliteral = nodepool.literal
-local newsave = nodepool.save
-local newrestore = nodepool.restore
-local newsetmatrix = nodepool.setmatrix
-
-local implement = interfaces.implement
-local constants = interfaces.constants
-local variables = interfaces.variables
+local pdfreserveobject = lpdf.reserveobject
+local pdfcompresslevel = lpdf.compresslevel
+local pdfobject = lpdf.object
+local pdfpagereference = lpdf.pagereference
+local pdfgetxformname = lpdf.getxformname
+local pdfminorversion = lpdf.minorversion
+local pdfmajorversion = lpdf.majorversion
+
+local tokenscanners = tokens.scanners
+local scanword = tokenscanners.word
+local scankeyword = tokenscanners.keyword
+local scanstring = tokenscanners.string
+local scaninteger = tokenscanners.integer
+local scanwhd = tokenscanners.whd
+
+local values = tokens.values
+local dimension_value = values.dimension
+local cardinal_value = values.cardinal
+
+local immediate_code = tex.flagcodes.immediate
+
+local trace = false trackers.register("backend.primitives", function(v) trace = v end)
+local report = logs.reporter("backend")
+
+local nodepool = nodes.pool
+local newliteral = nodepool.literal
+local newsave = nodepool.save
+local newrestore = nodepool.restore
+local newsetmatrix = nodepool.setmatrix
+
+local implement = interfaces.implement
+local constants = interfaces.constants
+local variables = interfaces.variables
-- literals
@@ -60,14 +56,14 @@ end
local lastobjnum = 0
-local function pdf_obj()
+local function pdf_obj(prefix)
if scankeyword("reserveobjnum") then
lastobjnum = pdfreserveobject()
if trace then
report("\\pdfobj reserveobjnum: object %i",lastobjnum)
end
else
- local immediate = true
+ local immediate = prefix and (prefix & immediate_code) ~= 0 -- was just "true"
local objnum = scankeyword("useobjnum") and scaninteger() or pdfreserveobject()
local uncompress = scankeyword("uncompressed") or pdfcompresslevel() == 0
local streamobject = scankeyword("stream")
@@ -100,10 +96,14 @@ local function pdf_obj()
end
local function pdf_lastobj()
- context("%i",lastobjnum)
if trace then
report("\\lastobj: object %i",lastobjnum)
end
+ return cardinal_value, lastobjnum
+end
+
+local function pdf_pagereference()
+ return cardinal_value, pdfpagereference()
end
local function pdf_refobj()
@@ -213,7 +213,7 @@ local extensions = {
}
local function pdf_extension()
- local w = scanword()
+ local w = scanword(false)
if w then
local e = extensions[w]
if e then
@@ -228,17 +228,17 @@ end
-- lastlink lastobj pageref retval revision version xformname
local feedbacks = {
- lastobj = pdf_lastobj,
- pageref = function() context(pdfpagereference()) end,
- xformname = function() context(pdfgetxformname ()) end,
+ lastobj = pdf_lastobj,
+ pageref = pdf_pagereference,
+ xformname = function() context(pdfgetxformname ()) end,
}
local function pdf_feedback()
- local w = scanword()
+ local w = scanword(false)
if w then
local f = feedbacks[w]
if f then
- f()
+ return f()
else
report("\\pdffeedback: unsupported %a",w)
end
@@ -259,7 +259,7 @@ local variables = {
}
local function pdf_variable()
- local w = scanword()
+ local w = scanword(false)
if w then
local f = variables[w]
if f then
@@ -272,20 +272,18 @@ local function pdf_variable()
end
end
--- kept:
-
-implement { name = "pdfextension", actions = pdf_extension }
-implement { name = "pdffeedback", actions = pdf_feedback }
-implement { name = "pdfvariable", actions = pdf_variable }
-
--- for the moment (tikz)
-
-implement { name = "pdfliteral", actions = pdf_literal }
-implement { name = "pdfobj", actions = pdf_obj }
-implement { name = "pdflastobj", actions = pdf_lastobj }
-implement { name = "pdfrefobj", actions = pdf_refobj }
---------- { name = "pdfannot", actions = pdf_annot }
---------- { name = "pdfdest", actions = pdf_dest }
---------- { name = "pdfsave", actions = pdf_save }
---------- { name = "pdfrestore", actions = pdf_restore }
---------- { name = "pdfsetmatrix", actions = pdf_setmatrix }
+-- kept (also because tikz needs including the pdftex primitives):
+
+implement { name = "pdfextension", actions = pdf_extension, public = true, untraced = true } -- , protected = true }
+implement { name = "pdffeedback", actions = pdf_feedback, public = true, usage = "value", untraced = true } -- expandable / todo : value
+implement { name = "pdfvariable", actions = pdf_variable, public = true, untraced = true } -- expandable / todo : value
+implement { name = "pdfliteral", actions = pdf_literal, public = true, untraced = true, protected = true }
+implement { name = "pdfobj", actions = pdf_obj, public = true, usage = "value", protected = true }
+implement { name = "pdflastobj", actions = pdf_lastobj, public = true, usage = "value", protected = true }
+implement { name = "pdfrefobj", actions = pdf_refobj, public = true, untraced = true, protected = true }
+
+--------- { name = "pdfannot", actions = pdf_annot }
+--------- { name = "pdfdest", actions = pdf_dest }
+--------- { name = "pdfsave", actions = pdf_save }
+--------- { name = "pdfrestore", actions = pdf_restore }
+--------- { name = "pdfsetmatrix", actions = pdf_setmatrix }
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-u3d.mkxl b/Master/texmf-dist/tex/context/base/mkxl/back-imp-u3d.mkxl
index 297dd554579..e91ef485f75 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/back-u3d.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/back-imp-u3d.mkxl
@@ -1,5 +1,5 @@
%D \module
-%D [ file=back-u3d,
+%D [ file=back-imp-u3d,
%D version=2009.04.15,
%D title=\CONTEXT\ Backend Macros,
%D subtitle=U3D Experiment,
@@ -15,6 +15,8 @@
%D user interface is rather messy an might be improved. The files and setup is
%D derived from an example by Michael Vidiassov.
+\registerctxluafile{lpdf-u3d}{autosuffix}
+
\endinput
\starttext
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/back-ini.lmt
index 92270574249..110a1b3dc2e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/back-ini.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/back-ini.lmt
@@ -53,7 +53,7 @@ local defaults = {
tables = tables,
}
-backends.defaults = defaults
+backends.defaults = defaults -- so, when not in the specific namespace we need to register here (to be checked)
backends.nodeinjections = { } setmetatableindex(backends.nodeinjections, nodeinjections)
backends.codeinjections = { } setmetatableindex(backends.codeinjections, codeinjections)
@@ -62,24 +62,42 @@ backends.tables = { } setmetatableindex(backends.tables, tables
backends.current = "unknown"
-function backends.install(what)
+local registered = table.setmetatableindex(function(t,k)
+ local v = {
+ name = k,
+ nodeinjections = { },
+ codeinjections = { },
+ registrations = { },
+ tables = { },
+ }
+ t[k] = v
+ return v
+end)
+
+backends.registered = registered
+
+-- The binding feature is mostly there to prevent side effects of overloading
+-- not so much for performance because there are not that many calls.
+
+function backends.initialize(what)
if type(what) == "string" then
- local backend = backends[what]
+ local backend = registered[what]
if backend then
if trace then
- if backend.comment then
- report("initializing backend %a, %a",what,backend.comment)
- else
- report("initializing backend %a",what)
- end
+ report("initializing backend %a",what)
end
- backends.current = what
for category, default in next, defaults do
local target = backends[category]
local plugin = backend [category]
setmetatableindex(plugin, default)
setmetatableindex(target, plugin)
end
+ --
+ backends.current = what
+ -- delayed / out-of-order locals: like lpdf.* (a few forward references)
+ updaters.apply("backends." .. what .. ".latebindings")
+ -- delayed / out-of-order locals: backends.[c|n]odeinjections.* (not all, only critical ones)
+ updaters.apply("backends.injections.latebindings")
elseif trace then
report("no backend named %a",what)
end
@@ -88,11 +106,7 @@ end
statistics.register("used backend", function()
local bc = backends.current
- if bc ~= "unknown" then
- return format("%s (%s)",bc,backends[bc].comment or "no comment")
- else
- return nil
- end
+ return bc ~= "unknown" and bc or nil
end)
-- can best be here
@@ -125,3 +139,9 @@ backends.included = included
function backends.getcallbackstate()
return { count = status.late_callbacks or 0 }
end
+
+--
+
+function backends.setencryption(specification)
+ codeinjections.setencryption(specification)
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/back-ini.mkxl
index fad9c1e709d..8a4b9d894ac 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/back-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/back-ini.mkxl
@@ -50,6 +50,13 @@
\clf_setrealspaces{\backendparameter\c!space}%
\to \everysetupbackend
+\appendtoks
+ \clf_setsofthyphens{\backendparameter\c!hyphen}%
+\to \everysetupbackend
+
+\setupbackend
+ [\c!hyphen=\v!yes]
+
%D For the moment this is an experiment (defauls is pdf, but we also
%D have lua, json and mps).
%D
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-pdf.lmt b/Master/texmf-dist/tex/context/base/mkxl/back-pdf.lmt
deleted file mode 100644
index 44d0230bdd6..00000000000
--- a/Master/texmf-dist/tex/context/base/mkxl/back-pdf.lmt
+++ /dev/null
@@ -1,55 +0,0 @@
-if not modules then modules = { } end modules ['back-pdf'] = {
- version = 1.001,
- comment = "companion to back-pdf.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
--- We hide the pdf table from users so that we can guarantee no interference with
--- the way we manage resources, info, etc. Users should use the \type {lpdf}
--- interface instead. If needed I will provide replacement functionality.
-
-local setmetatableindex = table.setmetatableindex
-
-local pdfsetcompression
-local pdfimmediateobject
-
-updaters.register("backend.update.lpdf",function()
- pdfsetcompression = lpdf.setcompression
- pdfimmediateobject = lpdf.immediateobject
-end)
-
-interfaces.implement {
- name = "setpdfcompression",
- arguments = { "integer", "integer" },
- actions = function(...) pdfsetcompression(...) end,
-}
-
-do
-
- local dummy = function() end
- local report = logs.reporter("backend")
-
- local function unavailable(t,k)
- report("calling unavailable pdf.%s function",k)
- t[k] = dummy
- return dummy
- end
-
- updaters.register("backend.update",function()
- --
- -- For now we keep this for tikz. If really needed some more can be made
- -- accessible but it has to happen in a controlled way then, for instance
- -- by first loading or enabling some compatibility layer so that we can
- -- trace possible interferences.
- --
- pdf = {
- immediateobj = pdfimmediateobject
- }
- setmetatableindex(pdf,unavailable)
- end)
-
-end
-
-backends.install("pdf")
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-pdf.mkxl b/Master/texmf-dist/tex/context/base/mkxl/back-pdf.mkxl
deleted file mode 100644
index d59c29bc01c..00000000000
--- a/Master/texmf-dist/tex/context/base/mkxl/back-pdf.mkxl
+++ /dev/null
@@ -1,157 +0,0 @@
-%D \module
-%D [ file=back-pdf,
-%D version=2009.04.15,
-%D title=\CONTEXT\ Backend Macros,
-%D subtitle=\PDF,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D The less there is here, the better. After a decade it is time to remove the \type
-%D {\pdf*} ones completely. For the moment I keep them commented but even that will
-%D go away.
-
-\writestatus{loading}{ConTeXt Backend Macros / PDF}
-
-\registerctxluafile{lpdf-ini}{autosuffix,optimize}
-\registerctxluafile{lpdf-lmt}{autosuffix,optimize}
-\registerctxluafile{lpdf-col}{autosuffix}
-\registerctxluafile{lpdf-xmp}{autosuffix}
-\registerctxluafile{lpdf-ano}{autosuffix}
-\registerctxluafile{lpdf-res}{autosuffix}
-\registerctxluafile{lpdf-mis}{autosuffix}
-\registerctxluafile{lpdf-ren}{autosuffix}
-\registerctxluafile{lpdf-grp}{autosuffix}
-\registerctxluafile{lpdf-wid}{autosuffix}
-\registerctxluafile{lpdf-fld}{autosuffix}
-\registerctxluafile{lpdf-mov}{autosuffix}
-\registerctxluafile{lpdf-u3d}{autosuffix} % this will become a module
-%registerctxluafile{lpdf-swf}{} % this will become a module
-\registerctxluafile{lpdf-tag}{autosuffix}
-\registerctxluafile{lpdf-fmt}{autosuffix}
-\registerctxluafile{lpdf-pde}{autosuffix}
-\registerctxluafile{lpdf-img}{autosuffix,optimize}
-\registerctxluafile{lpdf-epa}{autosuffix}
-\registerctxluafile{lpdf-emb}{autosuffix,optimize}
-\registerctxluafile{lpdf-fnt}{autosuffix}
-\registerctxluafile{lpdf-rul}{autosuffix}
-
-\registerctxluafile{back-pdp}{autosuffix}
-\registerctxluafile{back-pdf}{autosuffix} % some code will move to lpdf-*
-
-\loadmkxlfile{back-u3d} % this will become a module
-%loadmkxlfile{back-swf} % this will become a module
-
-\unprotect
-
-%D We will minimize the number of calls to \PDF\ specific primitives and delegate
-%D all management and injection of code to the backend.
-%D
-%D Because we do a lot in \LUA\ and don't want interferences, we nil most of the
-%D \PDFTEX\ primitives. Of course one can always use the \type {\pdfvariable},
-%D \type {\pdfextension} and \type {\pdffeedback} primitives but it will probably
-%D have bad side effects.
-
-\permanent\protected\def\pdfextension{\clf_pdfextension}
-\permanent \def\pdffeedback {\clf_pdffeedback}
-\permanent \def\pdfvariable {\clf_pdfvariable}
-
-%D For the moment we keep this for tikz but hopefully it will at some point use
-%D the proper ones. Consider them obsolete:
-
-\permanent\protected\def\pdfliteral {\clf_pdfliteral}
-\permanent\protected\def\pdfobj {\clf_pdfobj}%
-\permanent\protected\def\pdflastobj {\numexpr\clf_pdflastobj\relax}
-\permanent\protected\def\pdfrefobj {\clf_pdfrefobj}
-
-\permanent\protected\def\pdfrestore {\pdfextension restore}
-\permanent\protected\def\pdfsave {\pdfextension save}
-\permanent\protected\def\pdfsetmatrix{\pdfextension setmatrix}
-
-\permanent\let\pdfxform \saveboxresource
-\permanent\let\pdflastxform\lastsavedboxresourceindex
-\permanent\let\pdfrefxform \useboxresource
-
-%D Here are quick and dirty compression flippers, mostly used when testing something
-%D as one can best stick to the defaults that also adapt to specific standards.
-
-\permanent\protected\def\nopdfcompression {\clf_setpdfcompression\zerocount\zerocount}
-\permanent\protected\def\onlypdfobjectcompression{\clf_setpdfcompression\zerocount\plusthree}
-\permanent\protected\def\maximumpdfcompression {\clf_setpdfcompression\plusnine \plusnine }
-\permanent\protected\def\normalpdfcompression {\clf_setpdfcompression\plusthree\plusthree}
-
-%D PDF/X (maybe combine the two lua calls)
-
-\setupbackend
- [xmpfile=]
-
-\appendtoks
- \edef\p_file{\backendparameter{xmpfile}}%
- \ifempty\p_file\else
- \clf_setxmpfile{\p_file}%
- \fi
-\to \everysetupbackend
-
-%D This will change:
-
-\appendtoks
- \clf_setformat
- format {\backendparameter\c!format}%
- level {\backendparameter\c!level}%
- option {\backendparameter\c!option}%
- profile {\backendparameter\c!profile}%
- intent {\backendparameter\c!intent}%
- file {\backendparameter\c!file}%
- \relax
-\to \everysetupbackend
-
-%D These are the only official methods to add stuff to the resources. If more is
-%D needed for third party low level code, it can be added.
-
-\permanent\protected\def\pdfbackendsetcatalog #1#2{\clf_lpdf_addtocatalog{#1}{#2}}
-\permanent\protected\def\pdfbackendsetinfo #1#2{\clf_lpdf_addtoinfo{#1}{#2}}
-\permanent\protected\def\pdfbackendsetname #1#2{\clf_lpdf_addtonames{#1}{#2}}
-
-\permanent\protected\def\pdfbackendsetpageattribute #1#2{\clf_lpdf_addtopageattributes{#1}{#2}}
-\permanent\protected\def\pdfbackendsetpagesattribute#1#2{\clf_lpdf_addtopagesattributes{#1}{#2}}
-\permanent\protected\def\pdfbackendsetpageresource #1#2{\clf_lpdf_addtopageresources{#1}{#2}}
-
-\permanent\protected\def\pdfbackendsetextgstate #1#2{\clf_lpdf_adddocumentextgstate{#1}{#2}}
-\permanent\protected\def\pdfbackendsetcolorspace #1#2{\clf_lpdf_adddocumentcolorspace{#1}{#2}}
-\permanent\protected\def\pdfbackendsetpattern #1#2{\clf_lpdf_adddocumentpattern{#1}{#2}}
-\permanent\protected\def\pdfbackendsetshade #1#2{\clf_lpdf_adddocumentshade{#1}{#2}}
-
-\permanent \def\pdfbackendcurrentresources {\clf_lpdf_collectedresources}
-\permanent \def\pdfcolor #1{\clf_lpdf_color\numexpr\rawcolorattribute{#1}\relax}
-
-%D This is a temporary hack mthat will be removed, improved or somehow can become
-%D default.
-
-\permanent\def\TransparencyHack{\setupcolors[\c!pagecolormodel=\v!auto]}
-
-%D Just in case one needs this \unknown:
-%D
-%D \starttyping
-%D text \pdfbackendactualtext{Meier}{Müller} text
-%D \stoptyping
-
-\permanent\protected\def\pdfbackendactualtext#1#2% not interfaced
- {\clf_startactualtext{#2}%
- #1%
- \clf_stopactualtext}
-
-\aliased\let\pdfactualtext\pdfbackendactualtext
-
-%D Bah, this is also needed for tikz:
-
-\ifdefined\pdfsavepos\else
- \permanent\let\pdfsavepos \savepos
- \permanent\let\pdflastxpos\lastxpos
- \permanent\let\pdflastypos\lastypos
-\fi
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-res.lmt b/Master/texmf-dist/tex/context/base/mkxl/back-res.lmt
index 3157b37ef61..031e56909e9 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/back-res.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/back-res.lmt
@@ -6,43 +6,49 @@ if not modules then modules = { } end modules ['back-res'] = {
license = "see context related readme files"
}
-local context = context
+local context = context
-local trace = false trackers.register("backend", function(v) trace = v end)
-local report = logs.reporter("backend")
+local trace = false trackers.register("backend", function(v) trace = v end)
+local report = logs.reporter("backend")
-local scanners = tokens.scanners
-local scankeyword = scanners.keyword
-local scaninteger = scanners.integer
-local scanstring = scanners.string
-local scandimension = scanners.dimension
-local scanword = scanners.word
-local scanwhd = scanners.whd
+local scanners = tokens.scanners
+local scankeyword = scanners.keyword
+local scaninteger = scanners.integer
+local scanstring = scanners.string
+local scandimension = scanners.dimension
+local scanword = scanners.word
+local scanwhd = scanners.whd
-local implement = interfaces.implement
-local constants = interfaces.constants
-local variables = interfaces.variables
+local implement = interfaces.implement
+local constants = interfaces.constants
+local variables = interfaces.variables
+
+local values = tokens.values
+----- dimension_value = values.dimension
+local cardinal_value = values.cardinal
+----- direct_value = values.direct
-- A box resource has an index. This happens to be an object number due to the pdf
-- backend but in fact it's an abstraction. This is why we have explicit fetchers.
-- The internal number (as in \Fm123) is yet another number.
-local tex_saveboxresource = tex.saveboxresource
-local tex_useboxresource = tex.useboxresource
-local tex_getboxresourcebox = tex.getboxresourcebox
-local tex_getboxresourcedimensions = tex.getboxresourcedimensions
+-- this will change:
+--
+-- tex.* : arglist, as in luatex
+-- tex.boxresources : table
+
+local codeinjections = backends.codeinjections
+local nodeinjections = backends.nodeinjections
-updaters.register("backend.update",function()
- tex_saveboxresource = tex.saveboxresource
- tex_useboxresource = tex.useboxresource
- tex_getboxresourcebox = tex.getboxresourcebox
- tex_getboxresourcedimensions = tex.getboxresourcedimensions
-end)
+local savebox = function(...) return codeinjections.saveboxresource(...) end
+local usebox = function(...) return nodeinjections.useboxresource(...) end
+local getbox = function(...) return nodeinjections.getboxresourcebox(...) end
+local getwhd = function(...) return codeinjections.getboxresourcedimensions(...) end
-local savebox = function(...) return tex_saveboxresource(...) end
-local usebox = function(...) return tex_useboxresource(...) end
-local getbox = function(...) return tex_getboxresourcebox(...) end
-local getwhd = function(...) return tex_getboxresourcedimensions(...) end
+tex.saveboxresource = savebox
+tex.useboxresource = usebox
+tex.getboxresourcebox = getbox
+tex.getboxresourcedimensions = getwhd
local boxresources = {
save = savebox,
@@ -71,9 +77,10 @@ end
local function lastsavedboxresourceindex()
if trace then
- report("\\lastsaveboxresource: index %i",lastindex)
+ report("\\lastsaveboxresourceindex: index %i",lastindex)
end
- context("%i",lastindex)
+ -- context("%i",lastindex)
+ return cardinal_value, lastindex or 0
end
local function useboxresource()
@@ -86,9 +93,51 @@ local function useboxresource()
context(node)
end
-implement { name = "saveboxresource", actions = saveboxresource }
-implement { name = "lastsavedboxresourceindex", actions = lastsavedboxresourceindex }
-implement { name = "useboxresource", actions = useboxresource }
+implement {
+ name = "saveboxresource",
+ actions = saveboxresource,
+}
+implement {
+ name = "lastsavedboxresourceindex",
+ public = true,
+ usage = "value",
+ actions = lastsavedboxresourceindex,
+}
+implement {
+ name = "useboxresource",
+ actions = useboxresource,
+}
+
+-- used in pack
+
+do
+
+ local nuts = nodes.nuts
+ local tonut = nodes.tonut
+
+ local setwhd = nuts.setwhd
+ local setlist = nuts.setlist
+
+ local new_hlist = nuts.pool.hlist
+
+ function codeinjections.restoreboxresource(index)
+ local hbox = new_hlist()
+ local list, wd, ht, dp = usebox(index)
+ setlist(hbox,tonut(list))
+ setwhd(hbox,wd,ht,dp)
+ return hbox -- so we return a nut !
+ end
+
+ function codeinjections.registerboxresource(n,offset,delay,objnum)
+ local immediate = true
+ if delay == true or delay == 1 then
+ immediate = false
+ end
+ local r = savebox(n,nil,true,immediate,0,offset or 0,objnum)
+ return r
+ end
+
+end
-- image resources
@@ -136,11 +185,13 @@ local function saveimageresource()
end
local function lastsavedimageresourceindex()
- context("%i",lastindex or 0)
+-- context("%i",lastindex or 0)
+ return cardinal_value, lastindex or 0
end
local function lastsavedimageresourcepages()
- context("%i",lastpages or 0) -- todo
+-- context("%i",lastpages or 0) -- todo
+ return cardinal_value, lastpages or 0
end
local function useimageresource()
@@ -171,7 +222,26 @@ local function useimageresource()
end
end
-implement { name = "saveimageresource", actions = saveimageresource }
-implement { name = "lastsavedimageresourceindex", actions = lastsavedimageresourceindex }
-implement { name = "lastsavedimageresourcepages", actions = lastsavedimageresourcepages }
-implement { name = "useimageresource", actions = useimageresource }
+implement {
+ name = "saveimageresource",
+ actions = saveimageresource,
+}
+
+implement {
+ name = "lastsavedimageresourceindex",
+ public = true,
+ usage = "value",
+ actions = lastsavedimageresourceindex,
+}
+
+implement {
+ name = "lastsavedimageresourcepages",
+ public = true,
+ usage = "value",
+ actions = lastsavedimageresourcepages,
+}
+
+implement {
+ name = "useimageresource",
+ actions = useimageresource,
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-res.mkxl b/Master/texmf-dist/tex/context/base/mkxl/back-res.mkxl
index 8a18eef991f..1febef18d30 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/back-res.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/back-res.mkxl
@@ -23,12 +23,12 @@
% todo: public implementors (we can update the lua code anyway)
\permanent\protected\def\saveboxresource {\clf_saveboxresource}
-\permanent\protected\def\lastsavedboxresourceindex {\numexpr\clf_lastsavedboxresourceindex\relax}
+%permanent\protected\def\lastsavedboxresourceindex {\numexpr\clf_lastsavedboxresourceindex\relax}
\permanent\protected\def\useboxresource {\clf_useboxresource}
\permanent\protected\def\saveimageresource {\clf_saveimageresource}
-\permanent\protected\def\lastsavedimageresourceindex{\numexpr\clf_lastsavedimageresourceindex\relax}
-\permanent\protected\def\lastsavedimageresourcepages{\numexpr\clf_lastsavedimageresourcepages\relax}
+%permanent\protected\def\lastsavedimageresourceindex{\numexpr\clf_lastsavedimageresourceindex\relax}
+%permanent\protected\def\lastsavedimageresourcepages{\numexpr\clf_lastsavedimageresourcepages\relax}
\permanent\protected\def\useimageresource {\clf_useimageresource}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/bibl-bib.mkxl b/Master/texmf-dist/tex/context/base/mkxl/bibl-bib.mkxl
index 20aea7bb612..ffdb5b954b1 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/bibl-bib.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/bibl-bib.mkxl
@@ -344,8 +344,8 @@
% variables
-\ifdefined\bibtexblock \else \newcount\bibtexblock \fi \bibtexblock\plusone
-\ifdefined\bibtexcounter \else \newcount\bibtexcounter \fi
+\ifdefined\bibtexblock \else \newinteger\bibtexblock \fi \bibtexblock\plusone
+\ifdefined\bibtexcounter \else \newinteger\bibtexcounter \fi
\newtoks \everysetupbibtexpublications
\newtoks \everysetupbibtexcitations
@@ -450,7 +450,7 @@
\edef\bibtexpublicationsalternative{\@@pbalternative}% parent
\ifempty\bibtexpublicationsalternative \else
\processcommacommand[\bibtexpublicationsalternative]\dodoloadbibtexpublicationalternative
- \let\@@pbalternative\empty
+ \lettonothing\@@pbalternative
\fi
\fi}
@@ -551,7 +551,7 @@
\the\everysetupbibtexlistplacement
\forgetall
\typesetbibtexlist
- \global\advance\bibtexblock\plusone}
+ \global\advanceby\bibtexblock\plusone}
\setvalue{\??pb:\c!numbering:\v!short}#1% todo var s -> short tag
{\bibtexlistnumberbox{\bibtexpublicationsparameter\c!numbercommand{\bibtexgetshort\currentpublicationtag}}}
@@ -580,7 +580,7 @@
\fi
\to \everysetupbibtexlistplacement
-\newdimen\bibtexnumberwidth
+\newdimension\bibtexnumberwidth
\def\bibtexlistnumberbox{\hbox \ifcase\bibtexnumberwidth\else to \bibtexnumberwidth\fi}
@@ -633,6 +633,7 @@
{}%
{\namedlistparameter\currentbibtexsession\c!extras}%
{\namedlistparameter\currentbibtexsession\c!order}%
+ {}%
\ctxlua{bibtex.hacks.flush("\bibtexpublicationsparameter\c!sorttype")}%
\stoppacked
\endgroup}
@@ -651,12 +652,12 @@
\def\dotypesetbibtexpublication
{\doifelsebibreferencefound\currentbibtexsessiontag
- {\global\advance\bibtexcounter\plusone
+ {\global\advanceby\bibtexcounter\plusone
\ctxlua{bibtex.hacks.registerplaced("\currentbibtexsessiontag")}%
\let\currentlist\currentbibtexsession
- \let\currentlistentrynumber \bibtexcounter
- \let\currentlistentrytitle \thebibtexpublicationlistelement
- \let\currentlistentrypagenumber\empty
+ \let\currentlistentrynumber\bibtexcounter
+ \let\currentlistentrytitle\thebibtexpublicationlistelement
+ \lettonothing\currentlistentrypagenumber
\strc_lists_apply_renderingsetup}
{}} % invalid
diff --git a/Master/texmf-dist/tex/context/base/mkxl/bibl-tra.mkxl b/Master/texmf-dist/tex/context/base/mkxl/bibl-tra.mkxl
index 536de8d31c9..d197e8ea4b7 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/bibl-tra.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/bibl-tra.mkxl
@@ -202,8 +202,8 @@
\installstructurelistprocessor{pubs:userdata}%
{\ctxlua{bibtex.hacks.add(structures.lists.uservalue("\currentlist",\currentlistindex,"bibref"),\currentlistindex)}}
-\ifdefined\bibtexblock \else \newcount\bibtexblock \fi \bibtexblock\plusone
-\ifdefined\bibtexcounter \else \newcount\bibtexcounter \fi
+\ifdefined\bibtexblock \else \newinteger\bibtexblock \fi \bibtexblock\plusone
+\ifdefined\bibtexcounter \else \newinteger\bibtexcounter \fi
%D \macros{bibdoif,bibdoifnot,bibdoifelse}
%D
@@ -258,7 +258,7 @@
{\dosingleempty\dosetupbibtex}
\protected\def\dosetupbibtex[#1]%
- {\let\@@pbdatabase\empty
+ {\lettonothing\@@pbdatabase
\getparameters[\??pb][#1]%
\the\everysetupbibtex}
@@ -299,7 +299,7 @@
{\readsysfile{bibl-\@@pbalternative.tex}
{\showmessage\m!publications{6}{bibl-\@@pbalternative}}
{\showmessage\m!publications{1}{bibl-\@@pbalternative}}%
- \let\@@pbalternative\empty}%
+ \lettonothing\@@pbalternative}%
\let\setuppublicationlayout\normalsetuppublicationlayout % overloaded in bibl-num ... vadjust needs to be done with option
\getparameters[\??pb][#1]% as bibl-* can have set things back
\the\everysetuppublications
@@ -517,9 +517,9 @@
%D Another level of indirection is needed to control the typesetting of all of these
%D arguments.
-\newcount\etallimitcounter
-\newcount\etaldisplaycounter
-\newcount\todocounter
+\newinteger\etallimitcounter
+\newinteger\etaldisplaycounter
+\newinteger\todocounter
\protected\def\specialbibinsert#1#2#3#4#5%
{\bgroup
@@ -537,7 +537,7 @@
\fi
\ifnum\todocounter>\zerocount
% find the current author list
- \let\templist\empty
+ \lettonothing\templist
\dorecurse{#2}
{\scratchtoks\doubleexpandafter{\csname\??pb @#1\recurselevel\endcsname}%
\edef\templist{\ifempty\templist\else\templist,\fi\the\scratchtoks}}%
@@ -559,7 +559,7 @@
%D \#3 = commacommand containing authors
\protected\def\doprocessauthoritem#1#2#3%
- {\advance\scratchcounter\plusone
+ {\advanceby\scratchcounter\plusone
\ifnum\numexpr\scratchcounter-\plusone\relax<#2\relax
\publicationlistparameter{#1}#3%
\ifnum\scratchcounter=#2\relax
@@ -770,6 +770,7 @@
{}%
{\listparameter\c!extras}%
{\listparameter\c!order}}%
+ {}%
\ctxlua{bibtex.hacks.flush("\@@pbsorttype")}%
\stoppacked
\endgroup}
@@ -854,7 +855,7 @@
\inpublisttrue
\typesetpubslist
\inpublistfalse
- \global\advance\bibtexblock\plusone}
+ \global\advanceby\bibtexblock\plusone}
%D \subsubject{What's in a publication}
%D
@@ -877,13 +878,13 @@
\protected\def\doplacepublicationindeed#1%
{\doifelsebibreferencefound{#1}
- {\global\advance\bibtexcounter\plusone
+ {\global\advanceby\bibtexcounter\plusone
\def\currentpublicationkey{#1}%
\ctxlua{bibtex.hacks.registerplaced("#1")}%
- \def \currentlist {pubs}%
- \edef\currentlistentrynumber {\number\bibtexcounter}%
- \let \currentlistentrytitle \bibtexpubtext
- \let \currentlistentrypagenumber\empty
+ \def\currentlist{pubs}%
+ \edef\currentlistentrynumber{\number\bibtexcounter}%
+ \let\currentlistentrytitle\bibtexpubtext
+ \lettonothing\currentlistentrypagenumber
\strc_lists_apply_renderingsetup}
{}} % invalid
@@ -896,7 +897,7 @@
\the\initializebibdefinitions % NEW
\def\@@currentalternative{:l:}%
\presetbibvariables
- \let\biblanguage\empty
+ \lettonothing\biblanguage
\ignorespaces
\bibgetvard{#1}%
\removeunwantedspaces
@@ -962,9 +963,9 @@
\ifempty\LOextras
\setupcite[\@@currentalternative][#1]%
\else
- \expandafter\ifrelax\csname \??pv \@@currentalternative\c!right\endcsname
+ \expandafter\ifrelax\csname\??pv\@@currentalternative\c!right\endcsname
% avoids tail recursion
- \expandafter\let\csname \??pv \@@currentalternative\c!right\endcsname\empty
+ \expandafter\lettonothing\csname\??pv\@@currentalternative\c!right\endcsname
\fi
\expandafter\ifrelax\csname LOright\endcsname
\edef\LOextras{{\LOextras\bibalternative\c!right}}%
@@ -1049,22 +1050,22 @@
%D Delegate this to \LUA.
-% \let\ixlastcommand \relax
-% \let\ixsecondcomman \relax
-% \let\ixfirstcommand \relax
-% \let\thebibauthors \empty
-% \let\thebibyears \empty
-% \let\authorcount \!!zerocount
+% \let \ixlastcommand \relax
+% \let \ixsecondcomman\relax
+% \let \ixfirstcommand\relax
+% \lettonothing\thebibauthors
+% \lettonothing\thebibyears
+% \let \authorcount \!!zerocount
-\let\currentbibauthor\empty
+\lettonothing\currentbibauthor
\protected\def\ixbibauthoryear#1#2#3#4%
{\bgroup
- \gdef\ixlastcommand {#4}%
+ \gdef\ixlastcommand{#4}%
\gdef\ixsecondcommand{#3}%
- \gdef\ixfirstcommand {#2}%
- \glet\thebibauthors \empty
- \glet\thebibyears \empty
+ \gdef\ixfirstcommand{#2}%
+ \glettonothing\thebibauthors
+ \glettonothing\thebibyears
\getcommalistsize[#1]%
\ifbibcitecompress
\dorecurse\commalistsize{\xdef\thebibyears{\thebibyears,}}%
@@ -1087,7 +1088,7 @@
\expandafter\processcommalist\expandafter[\thebibauthors]\dodobibauthoryear}
\protected\def\dodobibauthoryear#1%
- {\advance\scratchcounter\plusone
+ {\advanceby\scratchcounter\plusone
\edef\wantednumber{\the\scratchcounter}%
\getfromcommacommand[\thebibyears][\wantednumber]%
\expandafter\def\expandafter\currentbibyear\expandafter{\commalistelement}%
@@ -1104,7 +1105,7 @@
{\getcommacommandsize[#1]%
\ifcase\commalistsize
% anonymous?
- \let\currentbibauthor\empty
+ \lettonothing\currentbibauthor
\or
\def\currentbibauthor{#1}%
\or
@@ -1113,13 +1114,13 @@
\handlemultiplebibauthors{\commalistsize}{#1}%
\fi}
-\newcount\citescratchcounter
+\newinteger\citescratchcounter
\protected\def\handlemultiplebibauthors#1#2%
{\citescratchcounter\zerocount
- \let\currentbibauthor\empty
+ \lettonothing\currentbibauthor
\protected\def\bibprocessauthoritem##1%
- {\advance\citescratchcounter\plusone
+ {\advanceby\citescratchcounter\plusone
\ifnum \citescratchcounter=#1\relax
\edef\currentbibauthor{\currentbibauthor##1}%
\orelse\ifnum\numexpr\citescratchcounter+\plusone\relax=#1\relax
@@ -1195,8 +1196,8 @@
%D Two temporary counters. One of these two can possibly be replaced by \type
%D {\scratchcounter}.
-\newcount\bibitemcounter
-\newcount\bibitemwanted
+\newinteger\bibitemcounter
+\newinteger\bibitemwanted
%D The first portion is simple enough: if this is the very first author it is quite
%D straightforward to add it. \type {\bibitemcounter} and \type {\bibitemwanted} are
@@ -1222,12 +1223,12 @@
%D setup properly to insert the year info.
\protected\def\docomparemyauthor#1%
- {\global\advance\bibitemwanted \plusone
+ {\global\advanceby\bibitemwanted \plusone
\def\mytempc{#1}%
\ifx\mytempc\myauthor
\quitcommalist
\orelse\ifnum\bibitemwanted=\bibitemcounter\relax
- \global\advance\bibitemwanted \plusone
+ \global\advanceby\bibitemwanted \plusone
\global\bibitemcounter\bibitemwanted\relax
\expandafter\doglobal\expandafter\robustaddtocommalist\expandafter{{\myauthor}}\thebibauthors
\fi}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/blob-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/blob-ini.lmt
index 42a18fddde0..a2244dcdd6f 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/blob-ini.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/blob-ini.lmt
@@ -25,28 +25,26 @@ if not modules then modules = { } end modules ['blob-ini'] = {
local type, tostring = type, tostring
local lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns
-local report_blobs = logs.reporter("blobs")
+local report_blobs = logs.reporter("blobs")
-local flush_node_list = node.flush_list
-local hpack_node_list = node.hpack
------ vpack_node_list = node.vpack
-local write_node = node.write
+local flushnodelist = nodes.flushlist
+local hpacknodelist = nodes.hpack
-local typesetters = nodes.typesetters
-local tonodes = typesetters.tonodes
-local tohpack = typesetters.tohpack
-local tovpack = typesetters.tovpack
+local typesetters = nodes.typesetters
+local tonodes = typesetters.tonodes
+local tohpack = typesetters.tohpack
+local tovpack = typesetters.tovpack
-local implement = interfaces.implement
+local context = context
--- provide copies here (nicer for manuals)
+local implement = interfaces.implement
-blobs = blobs or { }
-local blobs = blobs
+blobs = blobs or { }
+local blobs = blobs
-blobs.tonodes = tonodes
-blobs.tohpack = tohpack
-blobs.tovpack = tovpack
+blobs.tonodes = tonodes
+blobs.tohpack = tohpack
+blobs.tovpack = tovpack
-- end of helpers
@@ -68,7 +66,7 @@ function blobs.dispose(t)
local li = list[i]
local pack = li.pack
if pack then
- flush_node_list(pack)
+ flushnodelist(pack)
li.pack = nil
end
end
@@ -96,14 +94,14 @@ function blobs.pack(t,how)
for i=1,#list do
local pack = list[i].pack
if pack then
- flush_node_list(node.pack)
+ flushnodelist(pack)
end
if how == "vertical" then
-- we need to prepend a local par node
-- list[i].pack = vpack_node_list(list[i].head,"exactly")
report_blobs("vpack not yet supported")
else
- list[i].pack = hpack_node_list(list[i].head,"exactly")
+ list[i].pack = hpacknodelist(list[i].head,"exactly")
end
end
end
@@ -114,8 +112,8 @@ function blobs.write(t)
local li = list[i]
local pack = li.pack
if pack then
- write_node(pack)
- flush_node_list(pack)
+ context(pack)
+ flushnodelist(pack)
li.pack = nil
end
end
@@ -158,28 +156,28 @@ end
local function strwd(str)
local l = tohpack(str)
local w = l.width
- flush_node_list(l)
+ flushnodelist(l)
return w
end
local function strht(str)
local l = tohpack(str)
local h = l.height
- flush_node_list(l)
+ flushnodelist(l)
return h
end
local function strdp(str)
local l = tohpack(str)
local d = l.depth
- flush_node_list(l)
+ flushnodelist(l)
return d
end
local function strhd(str)
local l = tohpack(str)
local s = l.height + l.depth
- flush_node_list(l)
+ flushnodelist(l)
return s
end
@@ -196,7 +194,7 @@ local scan_hbox = tokens.scanners.hbox
local function action(field,what)
local l = scan_hbox()
local d = l[field]
- flush_node_list(l)
+ flushnodelist(l)
if what == "value" then
return dimension_code, d
else
diff --git a/Master/texmf-dist/tex/context/base/mkxl/blob-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/blob-ini.mkxl
index 1dcd5597254..2e27ab20edd 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/blob-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/blob-ini.mkxl
@@ -18,7 +18,7 @@
%D down the road (close to version 1.00 of \LUATEX). Typesetting in
%D pure \LUA\ sometimes makes sense.
-\registerctxluafile{node-typ}{} % experimental
+\registerctxluafile{node-typ}{autosuffix} % experimental
\registerctxluafile{blob-ini}{autosuffix}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/mkxl/bndr-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/bndr-ini.lmt
new file mode 100644
index 00000000000..2ee127020a5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/bndr-ini.lmt
@@ -0,0 +1,52 @@
+if not modules then modules = { } end modules ['bndr-ini'] = {
+ version = 1.001,
+ comment = "companion to bndr-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local context = context
+local storage = storage
+local implement = interfaces.implement
+local sharedstorage = storage.shared
+
+local boundaries = tex.boundaries or { } -- maybe different namespace
+tex.boundaries = boundaries
+
+boundaries.names = boundaries.names or { }
+boundaries.numbers = boundaries.numbers or { }
+
+local names = boundaries.names
+local numbers = boundaries.numbers
+
+storage.register("boundaries/names", names, "tex.boundaries.names")
+storage.register("boundaries/numbers", numbers, "tex.boundaries.numbers")
+
+sharedstorage.boundaries_last = sharedstorage.boundaries_last or 0 -- so zero is not used
+
+function boundaries.system(name)
+ local number = numbers[name]
+ if not number then
+ local last = sharedstorage.boundaries_last
+ number = last + 1
+ sharedstorage.boundaries_last = number
+ numbers[name] = number
+ names[number] = name
+ end
+ return number
+end
+
+implement {
+ name = "defineboundary",
+ arguments = "string",
+ actions = { boundaries.system, context }
+}
+
+-- implement {
+-- name = "newboundary",
+-- arguments = "csname",
+-- public = true,
+-- protected = true,
+-- actions = function(n) tex.setintegervalue(n,boundaries.system()) end,
+-- }
diff --git a/Master/texmf-dist/tex/context/base/mkxl/bndr-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/bndr-ini.mkxl
new file mode 100644
index 00000000000..8481048bb97
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/bndr-ini.mkxl
@@ -0,0 +1,39 @@
+%D \module
+%D [ file=bndr-ini,
+%D version=2022.05.02,
+%D title=\CONTEXT\ Boundary Macros,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Boundary Macros / Initialization}
+
+\unprotect
+
+\registerctxluafile{bndr-ini}{autosuffix}
+
+% \defineboundary[foobar][public]\meaning\foobar\par
+% \defineboundary[barfoo][public]\meaning\barfoo\par
+
+\immutable\def\??boundaryprefix{c_bndr_}
+
+\permanent\tolerant\protected\def\defineboundary[#1]#*[#2]% nicer for users
+ {\doifelseinset\s!public{#2}%
+ {\ifcsname#1\endcsname\else
+ \global\permanent\expandafter\integerdef\csname#1\endcsname\clf_defineboundary{#1}\relax
+ \fi}
+ {\ifcsname\??boundaryprefix#1\endcsname\else
+ \global\permanent\expandafter\integerdef\csname\??boundaryprefix#1\endcsname\clf_defineboundary{#1}\relax
+ \fi}}
+
+\permanent\protected\def\newboundary#1% nicer for lowlevel
+ {\ifdefined#1\else
+ \global\immutable\integerdef#1\clf_defineboundary{\csstring#1}\relax
+ \fi}
+
+\protect
diff --git a/Master/texmf-dist/tex/context/base/mkxl/buff-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/buff-ini.lmt
index 41e8a50785e..9f5535638ce 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/buff-ini.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/buff-ini.lmt
@@ -8,9 +8,10 @@ if not modules then modules = { } end modules ['buff-ini'] = {
local concat = table.concat
local type, next, load = type, next, load
-local sub, format = string.sub, string.format
+local sub, format, find, match = string.sub, string.format, string.find, string.match
local splitlines, validstring, replacenewlines = string.splitlines, string.valid, string.replacenewlines
-local P, Cs, patterns, lpegmatch = lpeg.P, lpeg.Cs, lpeg.patterns, lpeg.match
+local P, S, C, Ct, Cs = lpeg.P, lpeg.S, lpeg.C, lpeg.Ct, lpeg.Cs
+local patterns, lpegmatch = lpeg.patterns, lpeg.match
local utfchar = utf.char
local nameonly = file.nameonly
local totable = string.totable
@@ -24,7 +25,7 @@ local trace_visualize = false trackers.register("buffers.visualize", function
local report_buffers = logs.reporter("buffers","usage")
local report_typeset = logs.reporter("buffers","typeset")
------ report_grabbing = logs.reporter("buffers","grabbing")
+local report_grabbing = logs.reporter("buffers","grabbing")
local context = context
local commands = commands
@@ -38,14 +39,15 @@ local scaninteger = scanners.integer
local scanboolean = scanners.boolean
local scancode = scanners.code
local scantokencode = scanners.tokencode
------ scantoken = scanners.token
local getters = tokens.getters
local gettoken = getters.token
-local getcommand = token.get_command
------ getcsname = token.get_csname
-local getnextchar = token.scan_next_char or token.get_next_char
+local createtoken = token.create
+local grabtokens = token.grab
+
+local getcommand = tokens.accessors.command
+local getnextchar = tokens.scanners.nextchar
local variables = interfaces.variables
local settings_to_array = utilities.parsers.settings_to_array
@@ -56,6 +58,7 @@ local replacesuffix = file.replacesuffix
local registertempfile = luatex.registertempfile
local v_yes = variables.yes
+local v_append = variables.append
local eol = patterns.eol
local space = patterns.space
@@ -85,36 +88,73 @@ local buffers = buffers
local cache = { }
local function erase(name)
- cache[name] = nil
-end
-
-local function assign(name,str,catcodes)
- cache[name] = {
- data = str,
- catcodes = catcodes,
- typeset = false,
- }
+ if not name or name == "" then
+ cache[""] = false -- nil
+ else
+ local list = settings_to_array(name)
+ for i=1,#list do
+ cache[list[i]] = false -- nil
+ end
+ end
end
-local function combine(name,str,prepend)
- local buffer = cache[name]
- if buffer then
- buffer.data = prepend and (str .. buffer.data) or (buffer.data .. str)
- buffer.typeset = false
- else
+local assign do
+
+ -- There is no gain in an immediate concatenating lpeg
+
+ local action = whitespace^0 * C(P("+")^1 + P("*")) * whitespace^0
+ local equal = whitespace^0 * patterns.equal * whitespace^0
+ local name = C((1-action)^1)
+ local pattern = C((1-equal)^1) * equal * Ct((action + name)^1)
+
+ assign = function(name,str,catcodes)
+ local target, content = lpegmatch(pattern,name)
+ if target and content then
+ for i=1,#content do
+ local c = content[i]
+ if c == "+" then
+ content[i] = ""
+ elseif c == "++" then
+ content[i] = " "
+ elseif c == "+++" then
+ content[i] = "\r\r"
+ elseif c == "*" then
+ content[i] = str
+ else
+ local s = cache[c]
+ content[i] = s and s.data or ""
+ end
+ end
+ name = target
+ str = concat(content)
+ end
cache[name] = {
data = str,
+ catcodes = catcodes,
typeset = false,
}
end
-end
-local function prepend(name,str)
- combine(name,str,true)
end
-local function append(name,str)
- combine(name,str)
+local prepend, append do
+
+ local function combine(name,str,prepend)
+ local buffer = cache[name]
+ if buffer then
+ buffer.data = prepend and (str .. buffer.data) or (buffer.data .. str)
+ buffer.typeset = false
+ else
+ cache[name] = {
+ data = str,
+ typeset = false,
+ }
+ end
+ end
+
+ prepend = function(name,str) combine(name,str,true) end
+ append = function(name,str) combine(name,str) end
+
end
local function exists(name)
@@ -126,6 +166,14 @@ local function getcontent(name)
return buffer and buffer.data or ""
end
+local function empty(name)
+ if find(getcontent(name),"%S") then
+ return false
+ else
+ return true
+ end
+end
+
local function getlines(name)
local buffer = name and cache[name]
return buffer and splitlines(buffer.data)
@@ -202,6 +250,7 @@ buffers.assign = assign
buffers.prepend = prepend
buffers.append = append
buffers.exists = exists
+buffers.empty = empty
buffers.getcontent = getcontent
buffers.getlines = getlines
buffers.collectcontent = collectcontent
@@ -311,50 +360,6 @@ end
buffers.undent = undent
--- function commands.grabbuffer(name,begintag,endtag,bufferdata,catcodes,doundent) -- maybe move \\ to call
--- local dn = getcontent(name)
--- if dn == "" then
--- nesting = 0
--- continue = false
--- end
--- if trace_grab then
--- if #bufferdata > 30 then
--- report_grabbing("%s => |%s..%s|",name,sub(bufferdata,1,10),sub(bufferdata,-10,#bufferdata))
--- else
--- report_grabbing("%s => |%s|",name,bufferdata)
--- end
--- end
--- local counter = counters[begintag]
--- if not counter then
--- counter = countnesting(begintag,endtag)
--- counters[begintag] = counter
--- end
--- nesting = nesting + lpegmatch(counter,bufferdata)
--- local more = nesting > 0
--- if more then
--- dn = dn .. sub(bufferdata,2,-1) .. endtag
--- nesting = nesting - 1
--- continue = true
--- else
--- if continue then
--- dn = dn .. sub(bufferdata,2,-2) -- no \r, \n is more generic
--- elseif dn == "" then
--- dn = sub(bufferdata,2,-2)
--- else
--- dn = dn .. "\n" .. sub(bufferdata,2,-2) -- no \r, \n is more generic
--- end
--- local last = sub(dn,-1)
--- if last == "\n" or last == "\r" then -- \n is unlikely as \r is the endlinechar
--- dn = sub(dn,1,-2)
--- end
--- if doundent or (autoundent and doundent == nil) then
--- dn = undent(dn)
--- end
--- end
--- assign(name,dn,catcodes)
--- commands.doifelse(more)
--- end
-
local split = table.setmetatableindex(function(t,k)
local v = totable(k)
t[k] = v
@@ -379,25 +384,25 @@ local experiment = false
local experiment = scantokencode and true
local function pickup(start,stop)
- local stoplist = split[stop] -- totable(stop)
- local stoplength = #stoplist
- local stoplast = stoplist[stoplength]
- local startlist = split[start] -- totable(start)
- local startlength = #startlist
- local startlast = startlist[startlength]
- local list = { }
- local size = 0
- local depth = 0
--- local done = 32
- local scancode = experiment and scantokencode or scancode
+ local stoplist = split[stop] -- totable(stop)
+ local stoplength = #stoplist
+ local stoplast = stoplist[stoplength]
+ local startlist = split[start] -- totable(start)
+ local startlength = #startlist
+ local startlast = startlist[startlength]
+ local list = { }
+ local size = 0
+ local depth = 0
+ -- local done = 32
+ local scancode = experiment and scantokencode or scancode
while true do -- or use depth
local char = scancode()
if char then
--- if char < done then
--- -- we skip leading control characters so that we can use them to
--- -- obey spaces (a dirty trick)
--- else
--- done = 0
+ -- if char < done then
+ -- -- we skip leading control characters so that we can use them to
+ -- -- obey spaces (a dirty trick)
+ -- else
+ -- done = 0
char = utfchar(char)
size = size + 1
list[size] = char
@@ -434,7 +439,7 @@ local function pickup(start,stop)
depth = depth + 1
end
end
--- end
+ -- end
else
-- local t = scantoken()
local t = gettoken()
@@ -446,7 +451,7 @@ local function pickup(start,stop)
if char then
size = size + 1 ; list[size] = char
else
--- local csname = getcsname(t)
+ -- local csname = getcsname(t)
local csname = scancsname(t)
if csname == stop then
stoplength = 0
@@ -498,132 +503,17 @@ local function pickup(start,stop)
end
end
--- -- lmtx:
---
--- local function pickup(start,stop)
--- local stoplist = split[stop] -- totable(stop)
--- local stoplength = #stoplist
--- local stoplast = stoplist[stoplength]
--- local startlist = split[start] -- totable(start)
--- local startlength = #startlist
--- local startlast = startlist[startlength]
--- local list = { }
--- local size = 0
--- local depth = 0
--- getnextchar() -- we start with a \relax
--- while true do -- or use depth
--- local char = getnextchar()
--- if char then
--- size = size + 1
--- list[size] = char
--- if char == stoplast and size >= stoplength then
--- local done = true
--- local last = size
--- for i=stoplength,1,-1 do
--- if stoplist[i] ~= list[last] then
--- done = false
--- break
--- end
--- last = last - 1
--- end
--- if done then
--- if depth > 0 then
--- depth = depth - 1
--- else
--- break
--- end
--- char = false -- trick: let's skip the next (start) test
--- end
--- end
--- if char == startlast and size >= startlength then
--- local done = true
--- local last = size
--- for i=startlength,1,-1 do
--- if startlist[i] ~= list[last] then
--- done = false
--- break
--- end
--- last = last - 1
--- end
--- if done then
--- depth = depth + 1
--- end
--- end
--- else
--- local t = gettoken()
--- if t then
--- -- we're skipping leading stuff, like obeyedlines and relaxes
--- if experiment and size > 0 then
--- -- we're probably in a macro
--- local char = tochar[getcommand(t)]
--- if char then
--- size = size + 1 ; list[size] = char
--- else
--- local csname = getcsname(t)
- local csname = scancsname(t)
--- if csname == stop then
--- stoplength = 0
--- break
--- else
--- size = size + 1 ; list[size] = "\\"
--- size = size + 1 ; list[size] = csname
--- size = size + 1 ; list[size] = " "
--- end
--- end
--- else
--- -- ignore and hope for the best
--- end
--- else
--- break
--- end
--- end
--- end
--- local start = 1
--- local stop = size - stoplength - 1
--- -- not good enough: only empty lines, but even then we miss the leading
--- -- for verbatim
--- --
--- -- the next is not yet adapted to the new scanner ... we don't need lpeg here
--- --
--- for i=start,stop do
--- local li = list[i]
--- if lpegmatch(blackspace,li) then
--- -- keep going
--- elseif lpegmatch(eol,li) then
--- -- okay
--- start = i + 1
--- else
--- break
--- end
--- end
--- for i=stop,start,-1 do
--- if lpegmatch(whitespace,list[i]) then
--- stop = i - 1
--- else
--- break
--- end
--- end
--- --
--- if start <= stop then
--- return concat(list,"",start,stop)
--- else
--- return ""
--- end
--- end
-
--- function buffers.pickup(name,start,stop,finish,catcodes,doundent)
--- local data = tokens.pickup(start,stop)
--- if doundent or (autoundent and doundent == nil) then
--- data = buffers.undent(data)
--- end
--- buffers.assign(name,data,catcodes)
--- context(finish)
--- end
-
--- commands.pickupbuffer = buffers.pickup
-
tokens.pickup = pickup
+local function showpickup(name,bufferdata,catcodes,undented)
+ undented = undented and ">" or "="
+ if #bufferdata > 50 then
+ report_grabbing("%s : %i =%s |%s..%s|",name,catcodes,undented,sub(bufferdata,1,20),sub(bufferdata,-20,#bufferdata))
+ else
+ report_grabbing("%s : %i =%s |%s|",name,catcodes,undented,bufferdata)
+ end
+end
+
implement {
name = "pickupbuffer",
actions = function()
@@ -633,18 +523,47 @@ implement {
local stop = scanstring()
local finish = scancsname()
local catcodes = scaninteger()
- local doundent = scanboolean()
+ local doundent = scaninteger() == 1 -- better than a keyword scan
-- could be a scanner:
local data = pickup(start,stop)
- if doundent or (autoundent and doundent == nil) then
+ local undented = doundent or (autoundent and doundent == nil)
+ if undented then
data = undent(data)
end
- buffers.assign(name,data,catcodes)
+ if trace_grab then
+ showpickup(name,data,catcodes,undented)
+ end
+ assign(name,data,catcodes)
context[finish]()
end
}
-local function savebuffer(list,name,prefix) -- name is optional
+implement {
+ name = "grabbuffer",
+ actions = function()
+ -- let's pickup all here (no arguments)
+ local name = scanstring()
+ local start = scanstring()
+ local stop = scanstring()
+ local finish = scancsname()
+ local catcodes = scaninteger()
+ local doundent = scaninteger() == 1 -- better than a keyword scan
+ local starttok = createtoken(start,true)
+ local stoptok = createtoken(stop,true)
+ local data = grabtokens(starttok,stoptok,true,13) -- strip first and last \endoflineasciicode
+ local undented = doundent or (autoundent and doundent == nil)
+ if undented then
+ data = undent(data)
+ end
+ if trace_grab then
+ showpickup(name,data,catcodes,undented)
+ end
+ assign(name,data,catcodes)
+ context[finish]()
+ end
+}
+
+local function savebuffer(list,name,prefix,option,directory) -- name is optional
if not list or list == "" then
list = name
end
@@ -658,13 +577,16 @@ local function savebuffer(list,name,prefix) -- name is optional
if prefix == v_yes then
name = addsuffix(tex.jobname .. "-" .. name,"tmp")
end
- io.savedata(name,replacenewlines(content))
+ if directory ~= "" and dir.makedirs(directory) then
+ name = file.join(directory,name)
+ end
+ savedata(name,replacenewlines(content),"\n",option == v_append)
end
implement {
name = "savebuffer",
actions = savebuffer,
- arguments = "3 strings",
+ arguments = "5 strings",
}
-- we can consider adding a size to avoid unlikely clashes
@@ -677,10 +599,11 @@ local runner = sandbox.registerrunner {
name = "run buffer",
program = "context",
method = "execute",
- template = jit and "--purgeall --jit %filename%" or "--purgeall %filename%",
+ template = [[--purgeall %?path: --path=%path% ?% %filename%]],
reporter = report_typeset,
checkers = {
filename = "readable",
+ path = "string",
}
}
@@ -771,7 +694,10 @@ local function runbuffer(name,encapsulate,runnername,suffixes)
end
savedata(filename,content)
report_typeset("processing saved buffer %a\n",filename)
- runner { filename = filename }
+ runner {
+ filename = filename,
+ path = environment.arguments.path, -- maybe take all set paths
+ }
end
new[tag] = (new[tag] or 0) + 1
report_typeset("no changes in %a, processing skipped",name)
@@ -789,12 +715,17 @@ local function runbuffer(name,encapsulate,runnername,suffixes)
end
local f_getbuffer = formatters["buffer.%s"]
+local defaultlist = { "" }
local function getbuffer(name)
- local str = getcontent(name)
- if str ~= "" then
- -- characters.showstring(str)
- ctx_viafile(str,f_getbuffer(validstring(name,"noname")))
+ local list = name and name ~= "" and settings_to_array(name) or defaultlist
+ for i=1,#list do
+ local buf = list[i]
+ local str = getcontent(buf)
+ if str ~= "" then
+ -- characters.showstring(str)
+ ctx_viafile(str,f_getbuffer(validstring(buf,"noname")))
+ end
end
end
@@ -802,7 +733,7 @@ local function getbuffermkvi(name) -- rather direct !
ctx_viafile(resolvers.macros.preprocessed(getcontent(name)),formatters["buffer.%s.mkiv"](validstring(name,"noname")))
end
-local function gettexbuffer(name)
+local function getbuffertex(name)
local buffer = name and cache[name]
if buffer and buffer.data ~= "" then
ctx_pushcatcodetable()
@@ -817,15 +748,16 @@ local function gettexbuffer(name)
end
end
-buffers.get = getbuffer
-buffers.getmkiv = getbuffermkiv
-buffers.gettexbuffer = gettexbuffer
-buffers.run = runbuffer
+buffers.get = getbuffer
+buffers.getmkvi = getbuffermkvi
+buffers.gettex = getbuffertex
+buffers.getctxlua = loadcontent
+buffers.run = runbuffer
-implement { name = "getbufferctxlua", actions = loadcontent, arguments = "string" }
-implement { name = "getbuffer", actions = getbuffer, arguments = "string" }
-implement { name = "getbuffermkvi", actions = getbuffermkvi, arguments = "string" }
-implement { name = "gettexbuffer", actions = gettexbuffer, arguments = "string" }
+implement { name = "getbufferctxlua", actions = loadcontent, arguments = "argument" }
+implement { name = "getbuffer", actions = getbuffer, arguments = "argument" }
+implement { name = "getbuffermkvi", actions = getbuffermkvi, arguments = "argument" }
+implement { name = "getbuffertex", actions = getbuffertex, arguments = "argument" }
interfaces.implement {
name = "getbuffercontent",
@@ -848,6 +780,16 @@ implement {
implement {
name = "doifelsebuffer",
actions = { exists, commands.doifelse },
+ public = true,
+ -- protected = false,
+ arguments = "string"
+}
+
+implement {
+ name = "doifelsebufferempty",
+ actions = { empty, commands.doifelse },
+ public = true,
+ protected = true,
arguments = "string"
}
@@ -887,10 +829,10 @@ end
-- moved here:
function buffers.samplefile(name)
- if not buffers.exists(name) then
- buffers.assign(name,io.loaddata(resolvers.findfile(name)))
+ if not exists(name) then
+ assign(name,io.loaddata(resolvers.findfile(name)))
end
- buffers.get(name)
+ getbuffer(name)
end
implement {
@@ -898,3 +840,81 @@ implement {
actions = buffers.samplefile,
arguments = "string"
}
+
+-- A somewhat strange place (for now) so the *.log definitions might move someplace
+-- else (if useful at all).
+
+-- Handy for the math test suite that Mikael Sundqvist and I are making where we
+-- need to track box content as well as some low level math tracing features, so
+-- we can pipe to buffers (via a temporary file).
+
+do
+
+ local insert, remove = table.insert, table.remove
+ local setlogfile = texio.setlogfile
+ local openfile = io.open
+
+ local stack = { }
+ local files = { }
+
+ local function resetlogfile(name)
+ files[name] = false
+ end
+
+ local function pushlogfile(name)
+ local f = openfile(name,files[name] and "ab" or "wb")
+ insert(stack,f)
+ files[name] = true
+ setlogfile(f)
+ end
+
+ local function poplogfile()
+ remove(stack)
+ setlogfile(stack[#stack])
+ end
+
+ logs.pushlogfile = pushlogfile
+ logs.poplogfile = poplogfile
+ logs.resetlogfile = resetlogfile
+
+ implement {
+ name = "resetlogfile",
+ arguments = "argument",
+ public = true,
+ protected = true,
+ actions = resetlogfile,
+ }
+
+ implement {
+ name = "pushlogfile",
+ arguments = "argument",
+ public = true,
+ protected = true,
+ actions = pushlogfile,
+ }
+
+ implement {
+ name = "poplogfile",
+ public = true,
+ protected = true,
+ actions = poplogfile,
+ }
+
+ -- In the end we went for a somewhat hidden low level one (see low level math tests
+ -- for usage):
+
+ local serialized = nodes.nuts.serialized
+ local getbox = nodes.nuts.getbox
+
+ implement {
+ name = "showboxinbuffer",
+ public = true,
+ protected = true,
+ arguments = { "argument", "integer", "integer" },
+ actions = function(buffer, box, detail)
+ local box = getbox(box)
+ assign(buffer or "",box and serialized(box,detail))
+ end,
+ }
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/buff-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/buff-ini.mkxl
index ed62743ad89..0bc4d665f30 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/buff-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/buff-ini.mkxl
@@ -22,15 +22,16 @@
%D pretty and never be efficient but it has served us for ages (conceptually it's
%D as in \MKII).
-\mutable\let\currentbuffer\empty
+\mutable\lettonothing\currentbuffer
-\permanent\def\doifelsebuffer#1{\clf_doifelsebuffer{#1}} % expandable, todo: use public implementor
+% \doifelsebuffer {#1} % expandable
+% \doifelsebufferempty {#1} % non expandable
\aliased\let\doifbufferelse\doifelsebuffer
\permanent\tolerant\protected\def\resetbuffer[#1]{\clf_erasebuffer{#1}} % todo: use public implementor
-\permanent\setuvalue{\e!start\v!buffer}%
+\permanent\protected\defcsname\e!start\v!buffer\endcsname
{\begingroup % (3)
\obeylines
\buff_start}
@@ -73,7 +74,8 @@
{\begingroup % (1)
#4%
\begingroup % (2)
- \scratchcounter\catcodetable
+ \scratchcounterone\catcodetable
+ \scratchcountertwo#6\relax
\clf_erasebuffer{#1}%
\setcatcodetable\vrbcatcodes
\protected\def\buff_finish
@@ -83,30 +85,31 @@
% todo: we need to skip the first lineending which is an active character
% but sometimes we have something different ... this is a side effect of
% checking for optional arguments i.e. the next token is already tokenized
- % and for that reason we have the \relax as well as the \string
+ % and for that reason we had the \relax as well as the \string
\clf_pickupbuffer
{#1}%
{#2}%
{#3}%
-% {\string\dofinishpickupbuffer}%
+ % {\string\dofinishpickupbuffer}%
\buff_finish
- \scratchcounter
- \ifnum#6=\plusone\s!true\else\s!false\fi
- % \relax}
- \expandafter\relax\string} % maybe \normalexpanded{\relax\utfchar{7}}} signal
+ % \ifnum#6=\plusone\s!true\else\s!false\fi
+ % \expandafter\relax\string} % dirty trick
+ \scratchcounterone
+ % better than \string but still a dirty trick to avoid \par mess in blocks
+ \expandafter\scratchcountertwo\detokenized}
\protected\def\buff_stop#1%
{\endgroup % (3 & 4 & 5 & 6)
\begincsname#1\endcsname}
-\aliased\let\endbuffer\relax
+\permanent\protected\lettonothing\endbuffer
\permanent\tolerant\protected\def\setbuffer[#1]#:#2\endbuffer % seldom used so we just pass #2
{\clf_assignbuffer{#1}{\detokenize{#2}}\catcodetable\relax}
-% beware, never adapt the global buffer settings, actually we might introduce
+% Beware, never adapt the global buffer settings, actually we might introduce
% a broken parent chain for this purpose but on the other hand it's not that
-% different from framed cum suis
+% different from framed cum suis.
\installcorenamespace{buffer}
@@ -114,18 +117,23 @@
\setupbuffer
[\c!before=,
- \c!after=]
+ \c!after=,
+ \c!define=\v!yes]
-\newcount\c_buff_n_of_defined
+\newinteger\c_buff_n_of_defined
\mutable\let\currentdefinedbuffer\s!dummy
\appendtoks
- \global\advance\c_buff_n_of_defined\plusone
+ \global\advanceby\c_buff_n_of_defined\plusone
\setexpandedbufferparameter\c!number{\number\c_buff_n_of_defined}%
\edef\currentdefinedbuffer{def-\number\c_buff_n_of_defined}%
- \frozen\instance\setuevalue{\e!start\currentbuffer}{\buff_start_defined{\currentbuffer}{\currentdefinedbuffer}{\e!start\currentbuffer}{\e!stop\currentbuffer}}%
- \frozen\instance\setuevalue{\e!get \currentbuffer}{\buff_get_stored {\currentbuffer}{\currentdefinedbuffer}}%
+ \ifcstok{\bufferparameter\c!define}\v!yes
+ \frozen\instance\protected\edefcsname\e!start\currentbuffer\endcsname
+ {\buff_start_defined{\currentbuffer}{\currentdefinedbuffer}{\e!start\currentbuffer}{\e!stop\currentbuffer}}%
+ \frozen\instance\protected\edefcsname\e!get \currentbuffer\endcsname
+ {\buff_get_stored {\currentbuffer}{\currentdefinedbuffer}}%
+ \fi
\to \everydefinebuffer
\protected\def\buff_start_defined
@@ -135,35 +143,40 @@
\permanent\def\thebuffernumber #1{\namedbufferparameter{#1}\c!number}
\permanent\def\thedefinedbuffer#1{def-\namedbufferparameter{#1}\c!number}
-\permanent\tolerant\protected\def\getbuffer[#1]% [name]
+\permanent\def\getbufferdata[#1]% expandable
+ {\clf_getbuffer{#1}}
+
+\permanent\tolerant\protected\def\getbuffer[#1]% [namelist]
{\namedbufferparameter\empty\c!before\relax
- \doifelsenothing{#1}
- {\buff_get_stored_indeed\empty}
- {\processcommalist[#1]\buff_get_stored_indeed}%
+ \clf_getbuffer{#1}%
\namedbufferparameter\empty\c!after\relax}
\protected\def\buff_get_stored#1#2%
{\namedbufferparameter{#1}\c!before\relax
- \buff_get_stored_indeed{#2}%
+ \clf_getbuffer{#2}%
\namedbufferparameter{#1}\c!after\relax}
-\protected\def\buff_get_stored_indeed#1%
- {\clf_getbuffer{#1}}
+\aliased\let\rawbuffer\clf_getbuffer % expandable
\permanent\protected\def\getdefinedbuffer[#1]%
{\buff_get_stored{#1}{\thedefinedbuffer{#1}}}%
-\permanent\tolerant\protected\def\inlinebuffer[#1]% [name]
- {\doifelsenothing{#1}
- {\buff_get_stored_inline_indeed\empty}
- {\processcommalist[#1]\buff_get_stored_inline_indeed}}
+% We had this:
+%
+% \permanent\tolerant\protected\def\inlinebuffer[#1]% [name]
+% {\doifelsenothing{#1}
+% {\buff_get_stored_inline_indeed\empty}
+% {\processcommalist[#1]\buff_get_stored_inline_indeed}}
+%
+% \protected\def\buff_get_stored_inline_indeed#1%
+% {\ignorespaces\clf_getbuffer{#1}\removeunwantedspaces}
+%
+% but it makes no sense to ignore spaces in between and we now do the
+% list at the \LUA\ end anyway:
-\protected\def\buff_get_stored_inline_indeed#1%
+\permanent\tolerant\protected\def\inlinebuffer[#1]% [name]
{\ignorespaces\clf_getbuffer{#1}\removeunwantedspaces}
-\permanent\def\rawbuffer#1% expandable
- {\clf_getbuffer{#1}}
-
\definebuffer
[\v!hiding]
@@ -172,28 +185,24 @@
[\c!before=,
\c!after=]
-\permanent\protected\protected\def\processTEXbuffer[#1]% keep case, maybe also lower
- {\pushcatcodetable
- \catcodetable\ctxcatcodes % \setcatcodetable
- \buff_get_stored_indeed{#1}%
- \popcatcodetable}
-
-% only mkiv:
-%
-% \startbuffer[x]
-% x
-% \stopbuffer
-%
-% \savebuffer[x] [temp] % gets name: jobname-temp.tmp
-% \savebufferinfile[x][temp.log] % gets name: temp.log
+%D \starttyping
+%D \startbuffer[x]
+%D x y z
+%D \stopbuffer
+%D
+%D \savebuffer[x] [temp] % gets name: jobname-temp.tmp
+%D \savebufferinfile[x][temp.log] % gets name: temp.log
+%D \stoptyping
\installcorenamespace{savebuffer}
+\installcorenamespace{savebuffercounter}
-\installsetuponlycommandhandler \??savebuffer {savebuffer}
+\installcommandhandler \??savebuffer {savebuffer} \??savebuffer
\setupsavebuffer
[\c!list=,
\c!file=,
+ \c!directory=,
\c!prefix=\v!yes]
\permanent\tolerant\protected\def\savebuffer[#1]#*[#2]%
@@ -203,9 +212,57 @@
\else
\setupcurrentsavebuffer[\c!list={#1},\c!file=#2]%
\fi
- \clf_savebuffer{\directsavebufferparameter\c!list}{\directsavebufferparameter\c!file}{\directsavebufferparameter\c!prefix}%
+ \clf_savebuffer % will become key/value
+ {\savebufferparameter\c!list}%
+ {\savebufferparameter\c!file}%
+ {\savebufferparameter\c!prefix}%
+ {\savebufferparameter\c!option}%
+ {\savebufferparameter\c!directory}%
\endgroup}
+%D \starttyping
+%D \definesavebuffer[slide]
+%D
+%D \starttext
+%D \startslide
+%D \starttext
+%D \stopslide
+%D \startslide
+%D slide 1
+%D \stopslide
+%D text 1 \par
+%D \startslide
+%D slide 2
+%D \stopslide
+%D text 2 \par
+%D \startslide
+%D \stoptext
+%D \stopslide
+%D \stoptext
+%D \stoptyping
+
+% We can keep the counter at the lua end and explicitly reset it when we
+% save.
+
+\appendtoks
+ \ifcsname\e!stop\currentsavebuffer\endcsname\else
+ \definebuffer[\currentsavebuffer]%
+ \expandafter\newinteger\csname\??savebuffercounter\currentsavebuffer\endcsname
+ \protected\edefcsname\e!stop\currentsavebuffer\endcsname{\buff_stop_save_buffer{\currentsavebuffer}}%
+ \setsavebufferparameter\c!file{\currentsavebuffer.tex}%
+ \fi
+\to \everydefinesavebuffer
+
+\protected\def\buff_stop_save_buffer#1%
+ {\edef\currentsavebuffer{#1}%
+ \global\advanceby\csname\??savebuffercounter\currentsavebuffer\endcsname\plusone
+ \clf_savebuffer % will become key/value
+ {\thedefinedbuffer{\currentsavebuffer}}%
+ {\savebufferparameter\c!file}%
+ {\savebufferparameter\c!prefix}%
+ {\ifnum\csname\??savebuffercounter\currentsavebuffer\endcsname>\plusone\v!append\fi}%
+ {\savebufferparameter\c!directory}}
+
%D Experimental: no expansion of commands in buffer!
% \startbuffer[what]
@@ -217,8 +274,15 @@
%
% \ctxluabuffer[what] \ctxluabuffer
-\permanent\tolerant\protected\def\ctxluabuffer[#1]{\clf_getbufferctxlua{#1}} % todo: use public implementor
-\permanent\tolerant\protected\def\mkvibuffer [#1]{\clf_getbuffermkvi {#1}} % todo: use public implementor
+\permanent\tolerant\protected\def\processTEXbuffer[#1]#;#=% keep case, maybe also lower
+ {\pushcatcodetable
+ \catcodetable\ctxcatcodes % \setcatcodetable
+ \clf_getbuffer{#1#2}%
+ \popcatcodetable}
+
+\permanent\tolerant\protected\def\ctxluabuffer[#1]#;#={\clf_getbufferctxlua{#1#2}} % todo: use public implementor
+\permanent\tolerant\protected\def\mkvibuffer [#1]#;#={\clf_getbuffermkvi {#1#2}} % todo: use public implementor
+\permanent\tolerant\protected\def\texbuffer [#1]#;#={\clf_getbuffertex {#1#2}} % todo: use public implementor
% maybe still used elsewhere
@@ -226,8 +290,38 @@
\aliased\let\dostartbuffer\grabbufferdata % for old times sake, this will go away
-% new (expandable):
-
-\permanent\def\getbufferdata[#1]{\buff_get_stored_indeed{#1}}
+% low level helper (for math manual):
+
+% \showboxinbuffer{temp}<boxnumber><detail> % defined in lua, detail cf \shownodedetails 0|1|2
+
+%D \starttyping
+%D \setbox\scratchbox\hbox{$fff$}
+%D \showboxinbuffer{temp}\scratchbox\plusone
+%D \typebuffer[temp][option=TEX]
+%D \stoptyping
+%D
+%D More extensive multistep cases can do this:
+%D
+%D \starttyping
+%D \pushlogfile{oeps-1.txt}
+%D \setbox0\hbox{A}\showbox0
+%D \pushlogfile{oeps-2.txt}
+%D \setbox0\hbox{B}\showbox0
+%D \poplogfile
+%D \setbox0\hbox{C}\showbox0
+%D \poplogfile
+%D
+%D % \resetlogfile{oeps-1.txt}
+%D \pushlogfile{oeps-1.txt}
+%D \setbox0\hbox{A}\showbox0
+%D \pushlogfile{oeps-2.txt}
+%D \setbox0\hbox{B}\showbox0
+%D \poplogfile
+%D \setbox0\hbox{C}\showbox0
+%D \poplogfile
+%D \stoptyping
+%D
+%D But in the end that was overkill and we don't really need a stepwise verbatim
+%D because we need to add comments in between anyway.
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/buff-par.mklx b/Master/texmf-dist/tex/context/base/mkxl/buff-par.mklx
index b6ffa3f534e..63e6f47bd5a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/buff-par.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/buff-par.mklx
@@ -131,11 +131,11 @@
\relax
\endgroup}
-\mutable\let\currentparallelinstance\empty
-\mutable\let\currentparallelnumber \empty
-\mutable\let\currentparallelline \empty
-\mutable\let\currentparallellabel \empty
-\mutable\let\currentparallelcontent \empty
+\mutable\lettonothing\currentparallelinstance
+\mutable\lettonothing\currentparallelnumber
+\mutable\lettonothing\currentparallelline
+\mutable\lettonothing\currentparallellabel
+\mutable\lettonothing\currentparallelcontent
\permanent\protected\def\doflushparallel#instance#status#line#label#content% called at lua end
{\begingroup
diff --git a/Master/texmf-dist/tex/context/base/mkxl/buff-ver.mkxl b/Master/texmf-dist/tex/context/base/mkxl/buff-ver.mkxl
index 68a07df60be..8c42694a320 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/buff-ver.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/buff-ver.mkxl
@@ -31,7 +31,6 @@
\installcorenamespace{typinglines}
\installcorenamespace{typingspace}
-\installcorenamespace{typingblank} % needs checking ... used?
\newtoks\everyinitializeverbatim
@@ -40,6 +39,7 @@
\resetfontfeature
\resetcharacterspacing
\resetbreakpoints
+ \nohyphencollapsing
\to \everyinitializeverbatim
\permanent\protected\def\setverbatimspaceskip % to be checked: must happen after font switch
@@ -53,16 +53,9 @@
\defcsname\??typingspace\v!on \endcsname{\enforced\let\obeyedspace\specialcontrolspace}
\defcsname\??typingspace\v!stretch \endcsname{\enforced\let\obeyedspace\specialstretchedspace}
-\defcsname\??typingspace\v!normal \endcsname{}
+\letcsname\??typingspace\v!normal \endcsname\donothing
\defcsname\??typingspace\v!fixed \endcsname{\enforced\let\obeyedspace\specialfixedspace}
-
-\defcsname\??typingblank\v!standard \endcsname{\s_spac_whitespace_parskip}
-\defcsname\??typingblank\v!small \endcsname{\smallskipamount}
-\defcsname\??typingblank\v!medium \endcsname{\medskipamount}
-\defcsname\??typingblank\v!big \endcsname{\bigskipamount}
-\defcsname\??typingblank\v!halfline \endcsname{.5\baselineskip}
-\defcsname\??typingblank\v!line \endcsname{\baselineskip}
-\defcsname\??typingblank\v!none \endcsname{\zeropoint}
+\defcsname\??typingspace\v!character \endcsname{\enforced\chardef\obeyedspace\spaceasciicode}
\protected\def\buff_verbatim_obey_hyphens
{}
@@ -107,12 +100,10 @@
\def\buff_verbatim_initialize_typing_one
{\usebodyfontparameter\typingparameter
- \scratchskip\typingparameter\c!oddmargin\relax
- \ifzeropt\scratchskip \else
+ \ifzerodim\typingparameter\c!oddmargin\else
\let\buff_verbatim_set_line_margin\buff_verbatim_set_line_margin_indeed
\fi
- \scratchskip\typingparameter\c!evenmargin\relax
- \ifzeropt\scratchskip \else
+ \ifzerodim\typingparameter\c!evenmargin\else
\let\buff_verbatim_set_line_margin\buff_verbatim_set_line_margin_indeed
\fi
\ifrelax\buff_verbatim_set_line_margin
@@ -148,7 +139,7 @@
\installcommandhandler \??type {type} \??type
\appendtoks
- \frozen\instance\setuevalue{\currenttype}{\buff_verbatim_type{\currenttype}}%
+ \frozen\instance\protected\edefcsname\currenttype\endcsname{\buff_verbatim_type{\currenttype}}%
\to \everydefinetype
\appendtoks
@@ -176,8 +167,8 @@
\installcommandhandler \??typing {typing} \??typing
\appendtoks
- \frozen\instance\setuevalue{\e!start\currenttyping}{\buff_verbatim_typing_start{\currenttyping}}%
- \frozen\instance\setuevalue{\e!stop \currenttyping}{\buff_verbatim_typing_stop {\currenttyping}}%
+ \frozen\protected\instance\edefcsname\e!start\currenttyping\endcsname{\buff_verbatim_typing_start{\currenttyping}{\currenttyping}}%
+ \frozen\protected\instance\edefcsname\e!stop \currenttyping\endcsname{\buff_verbatim_typing_stop}%
\ifempty\currenttypingparent
\normalexpanded{\definelinenumbering[\currenttyping]}%
\else
@@ -287,8 +278,8 @@
\futureexpand\bgroup\buff_verbatim_type_a\buff_verbatim_type_one}
\def\buff_verbatim_type_one
- {\catcode`<=\othercatcode % old precaution
- \catcode`>=\othercatcode % old precaution
+ {\catcode\lessthanasciicode\othercatcode % old precaution
+ \catcode\morethanasciicode\othercatcode % old precaution
\futureexpandis<\buff_verbatim_type_b\buff_verbatim_type_c}
\def\buff_verbatim_type_three
@@ -451,34 +442,33 @@
\mutable\let\beginofverbatimlines\relax % hooks
\mutable\let\endofverbatimlines \relax % hooks
-\protected\def\buff_verbatim_typing_start#1% tricky non standard lookahead
+\protected\def\buff_verbatim_typing_start#1#2% tricky non standard lookahead
{\begingroup
- \edef\currenttyping{#1}%
+ \edef\currenttyping {#1}%
+ \edef\currenttypingwrapper{#2}%
\obeylines
\futureexpandis[\buff_verbatim_typing_start_yes\buff_verbatim_typing_start_nop}
-\def\buff_verbatim_typing_start_nop
- {\typingparameter\c!before\relax
- \startpacked[\v!blank]%
+\def\buff_verbatim_typing_start_yes[#1]%
+ {\ifhastok={#1}%
+ \setupcurrenttyping[#1]%
+ \orelse\ifcstok{#1}\v!continue
+ \lettypingparameter\c!continue\v!yes
+ \fi
+ \typingparameter\c!before\relax % moved down
+ \startpacked[\v!blank]% % moved down
\buff_verbatim_setup_line_numbering
\buff_verbatim_initialize_typing_one
\buff_verbatim_setup_keep_together
- \normalexpanded{\buff_verbatim_type_block{\e!start\currenttyping}{\e!stop\currenttyping}}}
+ \normalexpanded{\buff_verbatim_type_block{\e!start\currenttypingwrapper}{\e!stop\currenttypingwrapper}}}
-\def\buff_verbatim_typing_start_yes[#1]%
+\def\buff_verbatim_typing_start_nop
{\typingparameter\c!before\relax
\startpacked[\v!blank]%
- \ifcondition\validassignment{#1}%
- \setupcurrenttyping[#1]%
- \else
- \doif\v!continue{#1}{\lettypingparameter\c!continue\v!yes}%
- \fi
\buff_verbatim_setup_line_numbering
\buff_verbatim_initialize_typing_one
\buff_verbatim_setup_keep_together
- \normalexpanded{\buff_verbatim_type_block{\e!start\currenttyping}{\e!stop\currenttyping}}}
-
-% \startnamedtyping[#1]
+ \normalexpanded{\buff_verbatim_type_block{\e!start\currenttypingwrapper}{\e!stop \currenttypingwrapper}}}
\protected\def\buff_verbatim_setup_keep_together
{\edef\p_keeptogether{\typingparameter\c!keeptogether}%
@@ -517,13 +507,18 @@
\dostoptagged
\begincsname#2\endcsname}
-\protected\def\buff_verbatim_typing_stop#1% hm, currenttyping
+\protected\def\buff_verbatim_typing_stop
{\stoppacked
\typingparameter\c!after\relax
\useindentnextparameter\typingparameter
\endgroup
\dorechecknextindentation}
+\permanent\protected\def\startnamedtyping[#1]%
+ {\buff_verbatim_typing_start{#1}\e!namedtyping}
+
+\permanent\let\stopnamedtyping\buff_verbatim_typing_stop
+
%D Line numbering for files is combined with filtering, while display verbatim has
%D the ability to continue.
%D
@@ -577,10 +572,10 @@
% [category] [settings] {name} % for historic reasons, all filenames are {}
-\mutable\let\currenttypingfile\empty
+\mutable\lettonothing\currenttypingfile
\appendtoks
- \frozen\instance\setuevalue{\e!type\currenttyping\v!file}{\typefile[\currenttyping]}%
+ \frozen\protected\instance\edefcsname\e!type\currenttyping\v!file\endcsname{\typefile[\currenttyping]}%
\to \everydefinetyping
\permanent\tolerant\protected\def\typefile[#1]#*[#2]#:#3%
@@ -769,11 +764,13 @@
{\buff_verbatim_type_defined_buffer[\v!buffer][\thedefinedbuffer{#1}]}%
\appendtoks
- \frozen\instance\setuevalue{\e!type\currentbuffer}{\buff_verbatim_type_defined_buffer[\v!buffer][\currentdefinedbuffer]}%
+ \frozen\instance\protected\edefcsname\e!type\currentbuffer\endcsname
+ {\buff_verbatim_type_defined_buffer[\v!buffer][\currentdefinedbuffer]}%
\to \everydefinebuffer
\appendtoks % \e!buffer
- \frozen\instance\setuevalue{\e!type\currenttyping\v!buffer}{\buff_verbatim_type_buffer_class{\currenttyping}}%
+ \frozen\instance\protected\edefcsname\e!type\currenttyping\v!buffer\endcsname
+ {\buff_verbatim_type_buffer_class{\currenttyping}}%
\to \everydefinetyping
\tolerant\protected\def\buff_verbatim_type_buffer[#1]#*[#2]%
@@ -835,13 +832,25 @@
\stoppacked
\typingparameter\c!after\relax}
-\permanent\protected\def\typeinlinebuffer
+\permanent\tolerant\protected\def\typeinlinebuffer[#1]#,[#2]%
{\dontleavehmode
\begingroup
- \enforced\let\buff_verbatim_type_buffer_indeed\buff_verbatim_type_buffer_indeed_inline
\enforced\let\setupcurrenttyping\setupcurrenttype % a terrible hack but it saves code
- \let\currenttype\empty
- \buff_verbatim_type_buffer}
+ \lettonothing\currenttype
+ \ifparameters
+ \buff_verbatim_type_buffer_indeed_inline\currenttyping\empty% []
+ \or
+ \ifhastok={#1}%
+ \setupcurrenttyping[#1]%
+ \buff_verbatim_type_buffer_indeed_inline\currenttyping\empty% [settings]
+ \else
+ \processcommalist[#1]{\buff_verbatim_type_buffer_indeed_inline\currenttyping}% [name]
+ \fi
+ \or
+ \setupcurrenttyping[#2]%
+ \processcommalist[#1]{\buff_verbatim_type_buffer_indeed_inline\currenttyping}% [name] [settings]
+ \fi
+ \endgroup}
\protected\def\buff_verbatim_type_buffer_indeed_inline#1#2% category name
{\edef\currenttype{#1}%
@@ -896,11 +905,11 @@
% line numbering, keep broken lines together
-\newcount\nofverbatimlines
+\newinteger\nofverbatimlines
\protected\def\buff_verbatim_begin_of_line
{\ifconditional\verbatimnumberinglines
- \global\advance\nofverbatimlines\plusone
+ \global\advanceby\nofverbatimlines\plusone
\c_attr_verbatimline\nofverbatimlines
\fi
\noindent
@@ -928,8 +937,8 @@
% hooks (todo: frozen):
-\newcount \c_buff_verbatim_noflines
-\newcount \c_buff_verbatim_current
+\newinteger \c_buff_verbatim_noflines
+\newinteger \c_buff_verbatim_current
\newconditional\c_buff_optimize_linebreaks
\permanent\protected\def\doverbatimspace {\obeyedspace}
@@ -940,10 +949,10 @@
\permanent\protected\def\doinlineverbatimnewline {\obeyedspace}
\permanent\protected\def\doinlineverbatimemptyline {\obeyedspace}
-\permanent\protected\def\dodisplayverbatimstart {\advance\c_buff_verbatim_current\plusone
+\permanent\protected\def\dodisplayverbatimstart {\advanceby\c_buff_verbatim_current\plusone
\buff_verbatim_begin_of_line}
\permanent\protected\def\dodisplayverbatimstop {\buff_verbatim_end_of_line}
-\permanent\protected\def\dodisplayverbatimbeginline{\advance\c_buff_verbatim_current\plusone
+\permanent\protected\def\dodisplayverbatimbeginline{\advanceby\c_buff_verbatim_current\plusone
\buff_verbatim_begin_of_line}
\permanent\protected\def\dodisplayverbatimnewline {\buff_verbatim_end_of_line
\par
diff --git a/Master/texmf-dist/tex/context/base/mkxl/catc-def.mkxl b/Master/texmf-dist/tex/context/base/mkxl/catc-def.mkxl
index a7d48714a5c..1bde9877447 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/catc-def.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/catc-def.mkxl
@@ -17,17 +17,20 @@
%D days of \LUATEX) was dropped when I realized that there is not common ground to
%D cover between formats. It is simply not worth the trouble.
+%D Maybe we also need a copy of \type {\ctxcatcodes} so that we can always go back
+%D to the unpatched regime.
+
\ifdefined\nilcatcodes \else \newcatcodetable \nilcatcodes \fi
\ifdefined\texcatcodes \else \newcatcodetable \texcatcodes \fi
\ifdefined\luacatcodes \else \newcatcodetable \luacatcodes \fi
\ifdefined\notcatcodes \else \newcatcodetable \notcatcodes \fi
-\ifdefined\rlncatcodes \else \newcatcodetable \rlncatcodes \fi
+\ifdefined\rlncatcodes \else \newcatcodetable \rlncatcodes \fi % readline, not for context
\ifdefined\vrbcatcodes \else \newcatcodetable \vrbcatcodes \fi
\ifdefined\prtcatcodes \else \newcatcodetable \prtcatcodes \fi
\ifdefined\ctxcatcodes \else \newcatcodetable \ctxcatcodes \fi
\ifdefined\txtcatcodes \else \newcatcodetable \txtcatcodes \fi
-\ifdefined\tpacatcodes \else \newcatcodetable \tpacatcodes \fi % { }
-\ifdefined\tpbcatcodes \else \newcatcodetable \tpbcatcodes \fi % < >
+\ifdefined\tpacatcodes \else \newcatcodetable \tpacatcodes \fi % verbatim: { }
+\ifdefined\tpbcatcodes \else \newcatcodetable \tpbcatcodes \fi % verbatim: < >
\ifdefined\ctdcatcodes \else \newcatcodetable \ctdcatcodes \fi % context definitions
\startcatcodetable \nilcatcodes
@@ -251,6 +254,9 @@
\letcatcodecommand \ctxcatcodes \barasciicode \relax
\letcatcodecommand \ctxcatcodes \tildeasciicode \relax
+% \letcatcodecommand \prtcatcodes \barasciicode \relax
+% \letcatcodecommand \prtcatcodes \tildeasciicode \relax
+
%D Because some characters have a special meaning, we provide shortcuts to their
%D character representation. Some will be overloaded (which might change).
@@ -270,4 +276,14 @@
\aliased\let\defaultcatcodetable\ctxcatcodes
\popoverloadmode
+\amcode \circumflexasciicode \superscriptcatcode
+\amcode \underscoreasciicode \subscriptcatcode
+\amcode \barasciicode \othercatcode
+\amcode \tildeasciicode \othercatcode
+
+% \amcode "002C \activecatcode % comma
+% \amcode "002E \activecatcode % period
+% \amcode "003A \activecatcode % colon
+% \amcode "003B \activecatcode % semicolon
+
\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/catc-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/catc-ini.mkxl
index 5b33db981d6..d8c4da04060 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/catc-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/catc-ini.mkxl
@@ -39,21 +39,22 @@
%D We predefine some prefixes ahead of syst-aux and mult-sys. We reserve 8 slots for
%D catcodes. (This active mess probably needs an update some day.)
-\installsystemnamespace{catcodelet} % let : \let
-\installsystemnamespace{catcodedef} % def : \def
-\installsystemnamespace{catcodeued} % ued : \protected\def
-\installsystemnamespace{catcodeget} % \meaning
+% \installsystemnamespace{catcodelet} % let : \let
+% \installsystemnamespace{catcodedef} % def : \def
+% \installsystemnamespace{catcodeued} % ued : \protected\def
+% \installsystemnamespace{catcodeget} % \meaning
\installsystemnamespace{catcodetablet}
\installsystemnamespace{catcodetablen}
-\newcount\c_syst_catcodes_n \c_syst_catcodes_n\zerocount % 0 = signal, so advance before allocate
-\newcount\c_syst_catcodes_a
-\newcount\c_syst_catcodes_b
-\newcount\c_syst_catcodes_c
+\newinteger\c_syst_catcodes_n \c_syst_catcodes_n\zerocount % 0 = signal, so advance before allocate
+
+%newinteger\c_syst_catcodes_a
+%newinteger\c_syst_catcodes_b
+%newinteger\c_syst_catcodes_c
\permanent\protected\def\newcatcodetable#1% we could move the cctdefcounter to lua
- {\global\advance\c_syst_catcodes_n\plusone
+ {\global\advanceby\c_syst_catcodes_n\plusone
\gdefcsname\??catcodetablen\number\c_syst_catcodes_n\endcsname{\string#1}% logging
\immutable\integerdef#1\c_syst_catcodes_n
\ctxlua{catcodes.register("\expandafter\gobbleoneargument\string#1",\number#1)}}
@@ -92,6 +93,8 @@
\aliased\let\permitcaretescape\permitcircumflexescape
+\newconstant\defaultcatcodetable
+
% ==
%
% \protected\def\startextendcatcodetable#1#2\stopextendcatcodetable
@@ -104,87 +107,147 @@
%D The next command can be defined in a cleaner way in the MkIV way but we want
%D to have a fast one with a minimal chance for interference. Do we still need
%D this complex mechanism? Probably not. Future versions of \MKIV\ might only use
-%D active characters for very special cases.
-
-\setnewconstant\c_syst_catcodes_hack\tildeasciicode
-
-%D Once a catcode is assigned, the next assignments will happen faster. However,
-%D redefinitions probably happen seldom so it's sort of overkill.
-
-\permanent\protected\def\letcatcodecommand{\afterassignment\syst_catcodes_let_a\c_syst_catcodes_a}
-\permanent\protected\def\defcatcodecommand{\afterassignment\syst_catcodes_def_a\c_syst_catcodes_a}
-\permanent\protected\def\uedcatcodecommand{\afterassignment\syst_catcodes_ued_a\c_syst_catcodes_a}
-
-\def\syst_catcodes_let_a{\afterassignment\syst_catcodes_let_b\c_syst_catcodes_b}
-\def\syst_catcodes_def_a{\afterassignment\syst_catcodes_def_b\c_syst_catcodes_b}
-\def\syst_catcodes_ued_a{\afterassignment\syst_catcodes_ued_b\c_syst_catcodes_b}
-
-\def\syst_catcodes_let_b % each time
- {\ifcsname\??catcodelet\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname
- \expandafter\lastnamedcs
- \else
- \expandafter\syst_catcodes_let_c
- \fi}
-
-\def\syst_catcodes_def_b % each time
- {\ifcsname\??catcodedef\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname
- \expandafter\lastnamedcs
- \else
- \expandafter\syst_catcodes_def_c
- \fi}
-
-\def\syst_catcodes_ued_b % each time
- {\ifcsname\??catcodeued\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname
- \expandafter\lastnamedcs
- \else
- \expandafter\syst_catcodes_ued_c
- \fi}
-
-\def\syst_catcodes_let_c % only first time
- {\frozen\enforced\gdefcsname\??catcodelet\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\expandafter\endcsname\expandafter
- {\enforced\letcsname\??catcodeget\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname}%
- \syst_catcodes_reinstate_unexpanded
- \csname\??catcodelet\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname}
+%D active characters for very special cases. Older files demonstrate this old
+%D hackery tilde abuse.
-\def\syst_catcodes_def_c % only first time (we could use \normalexpanded here)
- {\frozen\enforced\gdefcsname\??catcodedef\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\expandafter\endcsname
- \expandafter##\expandafter1\expandafter
- {\frozen\enforced\defcsname\??catcodeget\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname{##1}}%
- \syst_catcodes_reinstate_normal
- \csname\??catcodedef\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname}
+% %D Once a catcode is assigned, the next assignments will happen faster. However,
+% %D redefinitions probably happen seldom so it's sort of overkill. We also need to
+% %D take care of the initial (shared between catcode regfimes) binding.
+%
+% \permanent\protected\def\letcatcodecommand{\afterassignment\syst_catcodes_let_a\c_syst_catcodes_a}
+% \permanent\protected\def\defcatcodecommand{\afterassignment\syst_catcodes_def_a\c_syst_catcodes_a} % obsolete
+% \permanent\protected\def\uedcatcodecommand{\afterassignment\syst_catcodes_ued_a\c_syst_catcodes_a} % obsolete
+%
+% \def\syst_catcodes_let_a{\afterassignment\syst_catcodes_let_b\c_syst_catcodes_b}
+% \def\syst_catcodes_def_a{\afterassignment\syst_catcodes_def_b\c_syst_catcodes_b}
+% \def\syst_catcodes_ued_a{\afterassignment\syst_catcodes_ued_b\c_syst_catcodes_b}
+%
+% % The two step definition is used because we need to fetch the third argument.
+%
+% \def\syst_catcodes_let_b % each time
+% {\ifcsname\??catcodelet\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname
+% \expandafter\lastnamedcs
+% \else
+% \expandafter\syst_catcodes_let_c
+% \fi}
+%
+% \def\syst_catcodes_def_b % each time
+% {\ifcsname\??catcodedef\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname
+% \expandafter\lastnamedcs
+% \else
+% \expandafter\syst_catcodes_def_c
+% \fi}
+%
+% \def\syst_catcodes_ued_b % each time
+% {\ifcsname\??catcodeued\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname
+% \expandafter\lastnamedcs
+% \else
+% \expandafter\syst_catcodes_ued_c
+% \fi}
+%
+% \def\syst_catcodes_let_c % only first time
+% {\frozen\enforced\gdefcsname\??catcodelet\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\expandafter\endcsname\expandafter
+% {\expandafter\enforced\letcsname\??catcodeget\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname}%
+% \syst_catcodes_reinstate_unexpanded
+% \csname\??catcodelet\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname}
+%
+% \def\syst_catcodes_def_c % only first time (we could use \normalexpanded here)
+% {\frozen\enforced\gdefcsname\??catcodedef\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\expandafter\endcsname
+% \expandafter##\expandafter1\expandafter
+% {\expandafter\frozen\expandafter\enforced\defcsname\??catcodeget\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname{##1}}%
+% \syst_catcodes_reinstate_normal
+% \csname\??catcodedef\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname}
+%
+% \def\syst_catcodes_ued_c % only first time
+% {\frozen\enforced\gdefcsname\??catcodeued\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\expandafter\endcsname
+% \expandafter##\expandafter1\expandafter
+% {\expandafter\frozen\expandafter\enforced\expandafter\protected\defcsname\??catcodeget\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname{##1}}%
+% \syst_catcodes_reinstate_unexpanded
+% \csname\??catcodeued\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname}
+%
+% %D We can simplify this a bit (not that critical):
+%
+% \def\syst_catcodes_let_b
+% {\afterassignment\syst_catcodes_let_c\let\m_syst_catcodes_temp}
+%
+% \def\syst_catcodes_let_c
+% {\enforced\letcsname\??catcodeget\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname\m_syst_catcodes_temp
+% \protected\edef\m_syst_catcodes_temp{\noexpand\catcodecommand{\number\c_syst_catcodes_b}}%
+% \letcharcode\c_syst_catcodes_b\m_syst_catcodes_temp}
+%
+% \def\syst_catcodes_let_c
+% {\letcharcode\c_syst_catcodes_b\m_syst_catcodes_temp}
+%
+% % not that much gain:
+%
+% \def\syst_catcodes_let_c % only first time
+% {\expandafter\integerdef\csname\??catcodelet\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname\c_syst_catcodes_b
+% \letcsname\??catcodeget\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname\m_syst_catcodes_temp
+% \protected\edef\m_syst_catcodes_temp{\noexpand\catcodecommand\csname\??catcodelet\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname}%
+% \letcharcode\c_syst_catcodes_b\m_syst_catcodes_temp}
-\def\syst_catcodes_ued_c % only first time
- {\frozen\enforced\gdefcsname\??catcodeued\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\expandafter\endcsname
- \expandafter##\expandafter1\expandafter
- {\frozen\enforced\protected\defcsname\??catcodeget\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname{##1}}%
- \syst_catcodes_reinstate_unexpanded
- \csname\??catcodeued\number\c_syst_catcodes_a:\number\c_syst_catcodes_b\endcsname}
+%D This can be used when a direct definition has been done and the selector has been
+%D lost. I really need to get rid of this ...
-\permanent\def\reinstatecatcodecommand{\afterassignment\syst_catcodes_reinstate_normal\c_syst_catcodes_b}
+% \permanent\def\reinstatecatcodecommand{\afterassignment\syst_catcodes_reinstate_normal\c_syst_catcodes_b}
+%
+% \let\m_syst_catcodes_temp\relax
+%
+% \def\syst_catcodes_reinstate_normal
+% {\edef\m_syst_catcodes_temp{\noexpand\catcodecommand{\number\c_syst_catcodes_b}}%
+% \letcharcode\c_syst_catcodes_b\m_syst_catcodes_temp}
+%
+% \def\syst_catcodes_reinstate_unexpanded
+% {\protected\edef\m_syst_catcodes_temp{\noexpand\catcodecommand{\number\c_syst_catcodes_b}}%
+% \letcharcode\c_syst_catcodes_b\m_syst_catcodes_temp}
+%
+% \permanent\def\catcodecommand#1%
+% {\csname\??catcodeget\number
+% \ifcsname\??catcodeget\number\currentcatcodetable:\number#1\endcsname
+% \currentcatcodetable \else \defaultcatcodetable
+% \fi
+% :\number#1\endcsname}
+
+%D For now, will become just letcharcode:
+
+\permanent\protected\def\letcatcodecommand{\afterassignment\letcharcode\scratchcounter}
+
+%D \startbuffer
+%D \def\foo{foo}
+%D \start
+%D \pushactivechar | \letcharcode124 \foo test||test\par
+%D \popactivechar | test||test\par
+%D \stop
+%D \start
+%D \pushactivecharcode124 \letcharcode124 \foo test||test\par
+%D \popactivecharcode 124 test||test\par
+%D \stop
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
-%D This can be used when a direct definition has been done and the selector has been
-%D lost. A problem is that \type {\next} needs to be unique (as it gets bound) (still?).
+\permanent\protected\def\pushactivechar#1%
+ {\expandafter\let\expandafter\m_active\csname\csactive#1\endcsname
+ %\expandafter\let\expandafter\m_active\csname\Uchar"FFFF\Uchar\expandafter`\string#1\endcsname
+ \pushmacro\m_active}
-\def\syst_catcodes_reinstate_normal
- {\begingroup
- \edef\temp{\noexpand\catcodecommand{\number\c_syst_catcodes_b}}%
- \global\letcharcode\c_syst_catcodes_b\temp
- \endgroup}
+\permanent\protected\def\popactivechar#1%
+ {\popmacro\m_active
+ %\letcsname\Uchar"FFFF\Uchar\expandafter`\string#1\endcsname\m_active
+ \letcsname\csactive#1\endcsname\m_active}
-\def\syst_catcodes_reinstate_unexpanded
- {\begingroup
- \protected\edef\temp{\noexpand\catcodecommand{\number\c_syst_catcodes_b}}%
- \global\letcharcode\c_syst_catcodes_b\temp
- \endgroup}
+\permanent\protected\def\pushactivecharcode{\afterassignment\syst_active_push\integerdef\c_active_char_code}
+\permanent\protected\def\popactivecharcode {\afterassignment\syst_active_pop\integerdef \c_active_char_code}
-\newconstant\defaultcatcodetable
+\permanent\protected\def\syst_active_push
+ {\expandafter\let\expandafter\m_active\csname\csactive\Uchar\c_active_char_code\endcsname
+ %\expandafter\let\expandafter\m_active\csname\Uchar"FFFF\Uchar\c_active_char_code\endcsname
+ \pushmacro\m_active}
-\permanent\def\catcodecommand#1%
- {\csname\??catcodeget\number
- \ifcsname\??catcodeget\number\currentcatcodetable:\number#1\endcsname
- \currentcatcodetable \else \defaultcatcodetable
- \fi
- :\number#1\endcsname}
+\permanent\protected\def\syst_active_pop
+ {\popmacro\m_active
+ %\letcsname\Uchar"FFFF\Uchar\c_active_char_code\endcsname\m_active
+ \letcsname\csactive\Uchar\c_active_char_code\endcsname\m_active}
%D \macros
%D {restorecatcodes,pushcatcodetable,popcatcodetable}
@@ -199,10 +262,10 @@
%D pop catcode tables and as we keep track of used tables users seldom need to deal
%D with this themselves.
-\newcount\c_syst_catcodes_level
+\newinteger\c_syst_catcodes_level
\permanent\protected\def\pushcatcodetable
- {\advance\c_syst_catcodes_level\plusone
+ {\advanceby\c_syst_catcodes_level\plusone
\syst_catcodes_trace_push
\expandafter\integerdef\csname\??catcodetablet\number\c_syst_catcodes_level\endcsname\currentcatcodetable}
@@ -212,7 +275,7 @@
\else
\catcodetable\csname\??catcodetablet\number\c_syst_catcodes_level\endcsname
\syst_catcodes_trace_pop
- \advance\c_syst_catcodes_level\minusone
+ \advanceby\c_syst_catcodes_level\minusone
\fi}
\protected\def\syst_catcodes_trace_nesting_error
@@ -256,9 +319,9 @@
-%
\fi}
-\let\syst_catcodes_trace_set \empty
-\let\syst_catcodes_trace_push\empty
-\let\syst_catcodes_trace_pop \empty
+\lettonothing\syst_catcodes_trace_set
+\lettonothing\syst_catcodes_trace_push
+\lettonothing\syst_catcodes_trace_pop
% \tracecatcodetables
diff --git a/Master/texmf-dist/tex/context/base/mkxl/catc-sym.mkxl b/Master/texmf-dist/tex/context/base/mkxl/catc-sym.mkxl
index a96ffb865c0..b441856e9a8 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/catc-sym.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/catc-sym.mkxl
@@ -64,20 +64,15 @@
\protect
%D \macros
-%D {uncatcodespecials,setnaturalcatcodes,setnormalcatcodes,
-%D uncatcodecharacters,uncatcodeallcharacters,
-%D uncatcodespacetokens}
+%D {setnormalcatcodes,uncatcodespacetokens}
%D
%D The following macros are more or less replaced by switching to a catcode table
%D (which we simulate in \MKII) but we keep them for convenience and compatibility.
%D Some old engine code has been removed. A few ar still used a few times so I need
%D to clean that up.
-%permanent\protected\def\uncatcodespecials {\setcatcodetable\nilcatcodes \uncatcodespacetokens}
-%permanent\protected\def\setnaturalcatcodes {\setcatcodetable\nilcatcodes}
-\permanent\protected\def\setnormalcatcodes {\setcatcodetable\ctxcatcodes} % maybe \texcatcodes
-%permanent\protected\def\uncatcodecharacters {\setcatcodetable\nilcatcodes} % was fast version, gone now
-%permanent\protected\def\uncatcodeallcharacters{\setcatcodetable\nilcatcodes} % was slow one, with restore
+\permanent\protected\def\setnormalcatcodes
+ {\setcatcodetable\ctxcatcodes} % maybe \texcatcodes
\permanent\protected\def\uncatcodespacetokens
{\catcode\spaceasciicode \spacecatcode
diff --git a/Master/texmf-dist/tex/context/base/mkxl/char-brl.lmt b/Master/texmf-dist/tex/context/base/mkxl/char-brl.lmt
new file mode 100644
index 00000000000..046436b5977
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/char-brl.lmt
@@ -0,0 +1,405 @@
+if not modules then modules = { } end modules ['char-bri'] = {
+ version = 1.001,
+ comment = "companion to char-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- We use a somewhat indirect approach because we generated the database and
+-- have to do that again probably. At some point we can move some to char-def
+-- so the interfaces here are kind of private and can change.
+--
+-- This is just an experiment. The data is taken from Wikipedia and the nemeth
+-- sequences come from a 2021 blog by Murray Sargent (from Microsoft):
+--
+-- https://devblogs.microsoft.com/math-in-office/unicode-math-braille-sequences/
+
+local next = next
+local gsub = string.gsub
+local utfbyte, utfsplit = utf.byte, string.utfvaluetable
+local sortedkeys = table.sortedkeys
+
+local braille = { }
+characters.braille = braille
+
+local codepoints = {
+ digits = {
+ [48] = "⠚",
+ [49] = "⠁",
+ [50] = "⠃",
+ [51] = "⠉",
+ [52] = "⠙",
+ [53] = "⠑",
+ [54] = "⠋",
+ [55] = "⠛",
+ [56] = "⠓",
+ [57] = "⠊",
+ },
+ letters = {
+ [97] = "⠁",
+ [98] = "⠃",
+ [99] = "⠉",
+ [100] = "⠙",
+ [101] = "⠑",
+ [102] = "⠋",
+ [103] = "⠛",
+ [104] = "⠓",
+ [105] = "⠊",
+ [106] = "⠚",
+ [107] = "⠅",
+ [108] = "⠇",
+ [109] = "⠍",
+ [110] = "⠝",
+ [111] = "⠕",
+ [112] = "⠏",
+ [113] = "⠟",
+ [114] = "⠗",
+ [115] = "⠎",
+ [116] = "⠞",
+ [117] = "⠥",
+ [118] = "⠧",
+ [119] = "⠺",
+ [120] = "⠭",
+ [121] = "⠽",
+ [122] = "⠵",
+ },
+ punctuation = {
+ [33] = "⠖",
+ [34] = "⠸⠡",
+ [40] = "⠐⠣",
+ [41] = "⠐⠜",
+ [44] = "⠂",
+ [45] = "⠤",
+ [46] = "⠲",
+ [47] = "⠸⠌",
+ [58] = "⠒",
+ [59] = "⠆",
+ [63] = "⠦",
+ [8211] = "⠠⠤",
+ [8212] = "⠐⠠⠤",
+ [8216] = "⠄⠦",
+ [8217] = "⠄⠴",
+ [8220] = "⠘⠦",
+ [8221] = "⠘⠴",
+ },
+ ueb = {
+ [33] = "⠖",
+ [34] = "⠠⠶",
+ [35] = "⠸⠹",
+ [36] = "⠈⠎",
+ [37] = "⠨⠴",
+ [38] = "⠈⠯",
+ [39] = "⠄",
+ [40] = "⠐⠣",
+ [41] = "⠐⠜",
+ [42] = "⠐⠔",
+ [43] = "⠐⠖",
+ [44] = "⠂",
+ [45] = "⠤",
+ [46] = "⠼⠲",
+ [47] = "⠸⠌",
+ [58] = "⠒",
+ [59] = "⠆",
+ [60] = "⠈⠣",
+ [61] = "⠐⠶",
+ [62] = "⠈⠜",
+ [63] = "⠦",
+ [64] = "⠈⠁",
+ [91] = "⠨⠣",
+ [92] = "⠸⠡",
+ [93] = "⠨⠜",
+ [94] = "⠈⠢",
+ [95] = "⠨⠤",
+ [123] = "⠸⠣",
+ [124] = "⠸⠳",
+ [125] = "⠸⠜",
+ [126] = "⠈⠔",
+ [162] = "⠈⠉",
+ [163] = "⠈⠇",
+ [167] = "⠘⠎",
+ [169] = "⠘⠉",
+ [172] = "⠈⠹",
+ [174] = "⠘⠗",
+ [176] = "⠘⠚",
+ [177] = "⠸⠖",
+ [182] = "⠘⠏",
+ [215] = "⠐⠦",
+ [247] = "⠐⠌",
+ [913] = "⠠⠨⠁",
+ [914] = "⠠⠨⠃",
+ [915] = "⠠⠨⠛",
+ [916] = "⠠⠨⠙",
+ [917] = "⠠⠨⠑",
+ [918] = "⠠⠨⠵",
+ [919] = "⠠⠨⠱",
+ [920] = "⠠⠨⠹",
+ [921] = "⠠⠨⠊",
+ [922] = "⠠⠨⠅",
+ [923] = "⠠⠨⠇",
+ [924] = "⠠⠨⠍",
+ [925] = "⠠⠨⠝",
+ [926] = "⠠⠨⠭",
+ [927] = "⠠⠨⠕",
+ [928] = "⠠⠨⠏",
+ [929] = "⠠⠨⠗",
+ [931] = "⠠⠨⠎",
+ [932] = "⠠⠨⠞",
+ [933] = "⠠⠨⠥",
+ [934] = "⠠⠨⠋",
+ [935] = "⠠⠨⠯",
+ [936] = "⠠⠨⠽",
+ [937] = "⠠⠨⠺",
+ [945] = "⠨⠁",
+ [946] = "⠨⠃",
+ [947] = "⠨⠛",
+ [948] = "⠨⠙",
+ [949] = "⠨⠑",
+ [950] = "⠨⠵",
+ [951] = "⠨⠱",
+ [952] = "⠨⠹",
+ [953] = "⠨⠊",
+ [954] = "⠨⠅",
+ [955] = "⠨⠇",
+ [956] = "⠨⠍",
+ [957] = "⠨⠝",
+ [958] = "⠨⠭",
+ [959] = "⠨⠕",
+ [960] = "⠨⠏",
+ [961] = "⠨⠗",
+ [962] = "⠨⠎",
+ [963] = "⠨⠎",
+ [964] = "⠨⠞",
+ [965] = "⠨⠥",
+ [966] = "⠨⠋",
+ [967] = "⠨⠯",
+ [968] = "⠨⠽",
+ [969] = "⠨⠺",
+ [8212] = "⠠⠤",
+ [8213] = "⠐⠠⠤",
+ [8216] = "⠠⠦",
+ [8217] = "⠠⠴",
+ [8220] = "⠘⠦",
+ [8221] = "⠘⠴",
+ [8224] = "⠈⠠⠹",
+ [8225] = "⠈⠠⠻",
+ [8226] = "⠸⠲",
+ [8242] = "⠶",
+ [8243] = "⠶⠶",
+ [8592] = "⠳⠪",
+ [8593] = "⠳⠬",
+ [8594] = "⠳⠕",
+ [8595] = "⠳⠩",
+ [8596] = "⠰⠳⠺⠗⠕",
+ [8598] = "⠳⠱",
+ [8599] = "⠳⠎",
+ [8600] = "⠳⠣",
+ [8601] = "⠳⠜",
+ [8656] = "⠰⠳⠶⠶⠪",
+ [8657] = "⠰⠳⠶⠶⠬",
+ [8658] = "⠰⠳⠶⠶⠕",
+ [8659] = "⠰⠳⠶⠶⠩",
+ [8704] = "⠘⠁",
+ [8706] = "⠈⠙",
+ [8707] = "⠘⠢",
+ [8709] = "⠈⠚",
+ [8711] = "⠘⠙",
+ [8712] = "⠘⠑",
+ [8715] = "⠈⠘⠑",
+ [8722] = "⠐⠤",
+ [8723] = "⠸⠤",
+ [8728] = "⠐⠴",
+ [8730] = "⠐⠩",
+ [8733] = "⠸⠐⠶",
+ [8734] = "⠼⠿",
+ [8736] = "⠸⠪",
+ [8737] = "⠨⠸⠪",
+ [8741] = "⠼⠇",
+ [8743] = "⠈⠦",
+ [8744] = "⠈⠖",
+ [8745] = "⠨⠦",
+ [8746] = "⠨⠖",
+ [8747] = "⠮",
+ [8748] = "⠮⠮",
+ [8749] = "⠮⠮⠮",
+ [8750] = "⠈⠮",
+ [8756] = "⠠⠡",
+ [8757] = "⠈⠌",
+ [8758] = "⠒",
+ [8759] = "⠒⠒",
+ [8771] = "⠸⠔",
+ [8773] = "⠐⠸⠔",
+ [8776] = "⠘⠔",
+ [8783] = "⠘⠐⠶",
+ [8785] = "⠨⠐⠶",
+ [8800] = "⠐⠶⠈⠱",
+ [8801] = "⠸⠿",
+ [8804] = "⠸⠈⠣",
+ [8805] = "⠸⠈⠜",
+ [8810] = "⠨⠈⠣",
+ [8811] = "⠨⠈⠜",
+ [8834] = "⠘⠣",
+ [8835] = "⠘⠜",
+ [8838] = "⠸⠘⠣",
+ [8839] = "⠸⠘⠜",
+ [8842] = "⠨⠘⠣",
+ [8843] = "⠨⠘⠜",
+ [8853] = "⠰⠫⠿⠪⠐⠖⠱",
+ [8867] = "⠈⠸⠒",
+ [8869] = "⠼⠤",
+ [8870] = "⠸⠒",
+ [8872] = "⠘⠸⠒",
+ [8882] = "⠈⠸⠣",
+ [8883] = "⠈⠸⠜",
+ [8884] = "⠸⠸⠣",
+ [8885] = "⠸⠸⠜",
+ [8894] = "⠼⠸⠪",
+ [8901] = "⠐⠲",
+ [9675] = "⠿",
+ [10764] = "⠮⠮⠮⠮",
+ },
+ specials = {
+ uppercase = "⠠",
+ space = "⠀",
+ number = "⠼",
+ rule = "⠒",
+ },
+ alphabets = {
+ ["lowercasenormal"] = "⠰",
+ ["lowercasegreeknormal"] = "⠨",
+ ["lowercasegreekitalic"] = "⠨⠨",
+ ["lowercaseitalic"] = "⠨",
+ ["lowercasebold"] = "⠸",
+ ["lowercasebolditalic"] = "⠸⠨",
+ ["lowercasefraktur"] = "⠸",
+ ["lowercaseboldfraktur"] = "⠸⠸",
+ ["lowercasescript"] = "⠈",
+ ["lowercaseboldscript"] = "⠸⠈",
+ ["lowercasesansserifnormal"] = "⠠⠨",
+ ["lowercasesansserifitalic"] = "⠠⠨⠨",
+ ["lowercasesansserifbold"] = "⠠⠨⠸",
+ ["lowercasesansserifbolditalic"] = "⠠⠨⠸⠨",
+
+ ["uppercase"] = "⠠",
+
+ -- ["russian"] = "⠈⠈",
+ -- ["hebrew"] = "⠠⠠",
+ -- ["altgreek"] = "⠨⠈",
+
+ -- ["lowercasedoublestruck"] = ""
+ -- ["lowercasegreekbold"] = ""
+ -- ["lowercasegreekbolditalic"] = ""
+ -- ["lowercasegreeksansserifbold"] = ""
+ -- ["lowercasegreeksansserifbolditalic"] = ""
+ -- ["lowercasemonospace"] = ""
+ },
+}
+
+braille.codepoints = codepoints
+
+local textunicodes, mathunicodes, textstrings, mathstrings, textlist, mathlist, specials
+
+local function prepare()
+
+ local charblocks = characters.blocks
+ local uccodes = characters.uccodes
+
+ local letters = codepoints.letters
+ local cspecials = codepoints.specials
+ local uppercase = cspecials.uppercase
+ local number = cspecials.number
+ local space = cspecials.space
+ local rule = cspecials.rule
+
+ -- filtered from the mentioned blog webpage:
+
+ local nemeth = table.load(resolvers.find_file("math-brl.lmt")).nemeth
+ codepoints.nemeth = nemeth
+
+ -- we let the tex math engine do the spacing but it can become an option:
+
+ for k, v in next, nemeth do
+ nemeth[k] = gsub(v,space,"")
+ end
+
+ textstrings = { }
+ mathstrings = { }
+ textunicodes = { }
+ mathunicodes = { }
+
+ for k, v in next, codepoints.letters do
+ textstrings[k] = v
+ mathstrings[k] = v
+ local K = uccodes[k]
+ if K then
+ local V = uppercase .. v
+ textstrings[K] = V
+ mathstrings[K] = V
+ end
+ end
+
+ for k, v in next, codepoints.digits do
+ local d = number .. v
+ textstrings[k] = v
+ mathstrings[k] = v
+ end
+
+ for k, v in next, codepoints.punctuation do
+ textstrings[k] = v
+ mathstrings[k] = v
+ end
+ -- overlaps with the above
+
+ for k, v in next, codepoints.ueb do
+ textstrings[k] = v
+ mathstrings[k] = v
+ end
+
+ for k, v in next, codepoints.nemeth do
+ mathstrings[k] = v
+ if not textstrings[k] then
+ textstrings[k] = v
+ end
+ end
+
+ for k, v in next, codepoints.alphabets do
+ local block = charblocks[k]
+ if block then
+ local c = utfbyte('a')
+ for i=block.first,block.last do
+ mathstrings[i] = v..letters[c]
+ if not textstrings[i] then
+ textstrings[i] = v .. letters[c]
+ end
+ c = c + 1
+ end
+ end
+ end
+
+ for k, v in next, textstrings do
+ textunicodes[k] = utfsplit(v)
+ end
+ for k, v in next, mathstrings do
+ mathunicodes[k] = utfsplit(v)
+ end
+
+ textlist = sortedkeys(textstrings)
+ mathlist = sortedkeys(mathstrings)
+
+ specials = {
+ uppercase = utfbyte(uppercase),
+ number = utfbyte(number),
+ space = utfbyte(space),
+ rule = utfbyte(rule)
+ }
+end
+
+-- maybe an iterator
+
+function braille.textlist () if not textlist then prepare() end return textlist end
+function braille.mathlist () if not mathlist then prepare() end return mathlist end
+function braille.textunicode(n) if not textunicodes then prepare() end return textunicodes[n] end
+function braille.mathunicode(n) if not mathunicodes then prepare() end return mathunicodes[n] end
+function braille.textstring (n) if not textstrings then prepare() end return textstrings [n] end
+function braille.mathstring (n) if not mathstrings then prepare() end return mathstrings [n] end
+function braille.special (n) if not specials then prepare() end return specials [n] end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/char-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/char-ini.mkxl
index 6965598a960..baa5426cc03 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/char-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/char-ini.mkxl
@@ -17,6 +17,8 @@
\registerctxluafile{char-map}{} % maybe we will load this someplace else
\registerctxluafile{char-tex}{autosuffix}
\registerctxluafile{char-ent}{}
+\registerctxluafile{char-scr}{}
+%registerctxluafile{char-brl}{}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/mkxl/char-prv.lmt b/Master/texmf-dist/tex/context/base/mkxl/char-prv.lmt
new file mode 100644
index 00000000000..38ae87dcc35
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/char-prv.lmt
@@ -0,0 +1,15 @@
+if not modules then modules = { } end modules ['char-prv'] = {
+ version = 1.001,
+ comment = "companion to char-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+ dataonly = true,
+}
+
+-- We needed this in mkiv for all kind of math compensations. This file is kept
+-- around in order to prevent loading the mkiv (.lua) variant.
+
+characters = characters or { }
+
+characters.private = { }
diff --git a/Master/texmf-dist/tex/context/base/mkxl/char-tex.lmt b/Master/texmf-dist/tex/context/base/mkxl/char-tex.lmt
index 3d8f6a2598e..02d9a6cb62c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/char-tex.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/char-tex.lmt
@@ -36,7 +36,6 @@ local is_letter = characters.is_letter
local is_command = characters.is_command
local is_spacing = characters.is_spacing
local is_mark = characters.is_mark
-local is_punctuation = characters.is_punctuation
local data = characters.data if not data then return end
local blocks = characters.blocks
@@ -770,24 +769,36 @@ if not csletters then
storage.register("characters/csletters", csletters, "characters.csletters")
end
+ local function setname(category,chr,u,contextname)
+ if is_character[category] then
+ if chr.unicodeslot < 128 then
+ if is_letter[category] then
+ texsetmacro(contextname,utfchar(u),"immutable")
+ else
+ texsetchar(contextname,u,"immutable")
+ end
+ else
+ texsetmacro(contextname,utfchar(u),"immutable")
+ end
+ elseif is_command[category] and not forbidden[u] then
+ texsetmacro(contextname,utfchar(u),"immutable")
+ end
+ end
+
function characters.setcharacternames(ctt)
for u, chr in next, data do -- will move up
local contextname = chr.contextname
+ local contextspec = chr.contextspec
local category = chr.category
- local isletter = is_letter[category]
if contextname then
- if is_character[category] then
- if chr.unicodeslot < 128 then
- if isletter then
- texsetmacro(contextname,utfchar(u),"immutable")
- else
- texsetchar(contextname,u,"immutable")
- end
- else
- texsetmacro(contextname,utfchar(u),"immutable")
+ setname(category,chr,u,contextname)
+ end
+ if contextspec then
+ for i=1,#contextspec do
+ local extraname = contextspec[i]
+ if extraname ~= contextname then
+ setname(category,chr,u,extraname)
end
- elseif is_command[category] and not forbidden[u] then
- texsetmacro(contextname,utfchar(u),"immutable")
end
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/chem-str.mkxl b/Master/texmf-dist/tex/context/base/mkxl/chem-str.mkxl
index 6c591225e33..a4a974de1da 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/chem-str.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/chem-str.mkxl
@@ -82,7 +82,7 @@
[\c!align=\v!normal,
\c!strut=\v!no]
-\mutable\let\currentdefinedchemical\empty
+\mutable\lettonothing\currentdefinedchemical
\permanent\protected\def\setupchemicalframed
{\setupframed[\??chemicalframed]}
@@ -120,9 +120,9 @@
\ifcase\currentxfontsize\or\scriptstyle\or\scriptscriptstyle\fi
#1}}
-\setvalue{\??chemicalsize\v!small }{\txx}
-\setvalue{\??chemicalsize\v!medium}{\tx}
-\setvalue{\??chemicalsize\v!big }{}
+\defcsname\??chemicalsize\v!small \endcsname{\txx}
+\defcsname\??chemicalsize\v!medium\endcsname{\tx}
+\defcsname\??chemicalsize\v!big \endcsname{}
\newtoks \everychemical
\newtoks \everystructurechemical
@@ -131,9 +131,9 @@
\newtoks \t_chem_every_box
\newbox \b_chem_result
\newconditional\c_chem_some_text
-\newdimen \d_chem_width
-\newdimen \d_chem_height
-\newdimen \d_chem_depth
+\newdimension \d_chem_width
+\newdimension \d_chem_height
+\newdimension \d_chem_depth
\permanent\tolerant\protected\def\startchemical[#1]#*[#2]%
{\ifmmode\vcenter\else\vbox\fi % vpack ?
@@ -256,29 +256,29 @@
\permanent\protected\def\chemicalbottext#1{\global\settrue\c_chem_some_text\gdef\m_chem_bot_text{#1}\ignorespaces}
\permanent\protected\def\chemicalmidtext#1{\global\settrue\c_chem_some_text\gdef\m_chem_mid_text{#1}\ignorespaces}
-\mutable\let\toptext\empty
-\mutable\let\bottext\empty
-\mutable\let\midtext\empty
+\mutable\lettonothing\toptext
+\mutable\lettonothing\bottext
+\mutable\lettonothing\midtext
\appendtoks
- \let\toptext\chemicaltoptext \glet\m_chem_top_text\empty
- \let\bottext\chemicalbottext \glet\m_chem_bot_text\empty
- \let\midtext\chemicalmidtext \glet\m_chem_mid_text\empty
+ \let\toptext\chemicaltoptext \glettonothing\m_chem_top_text
+ \let\bottext\chemicalbottext \glettonothing\m_chem_bot_text
+ \let\midtext\chemicalmidtext \glettonothing\m_chem_mid_text
\global\setfalse\c_chem_some_text
\to \everystructurechemical
\def\chem_add_texts
- {\setbox2\hpack to \d_chem_width{\strut\hss\hbox{\strut\m_chem_mid_text}\hss}%
- \setbox4\hpack to \d_chem_width{\strut\hss\hbox{\strut\m_chem_top_text}\hss}%
- \setbox6\hpack to \d_chem_width{\strut\hss\hbox{\strut\m_chem_bot_text}\hss}%
+ {\setbox\scratchboxone \hpack to \d_chem_width{\strut\hss\hbox{\strut\m_chem_mid_text}\hss}%
+ \setbox\scratchboxtwo \hpack to \d_chem_width{\strut\hss\hbox{\strut\m_chem_top_text}\hss}%
+ \setbox\scratchboxthree\hpack to \d_chem_width{\strut\hss\hbox{\strut\m_chem_bot_text}\hss}%
\setbox\b_chem_result\hpack \bgroup
\box\b_chem_result
\hskip-\d_chem_width
- \raise\d_chem_height\hpack{\lower\ht4\box4}%
+ \raise\d_chem_height\hpack{\lower\ht\scratchboxtwo\box\scratchboxtwo}%
\hskip-\d_chem_width
- \lower.5\dimexpr\ht2-\dp2\relax\box2%
+ \lower.5\dimexpr\ht\scratchboxone-\dp\scratchboxone\relax\box\scratchboxone
\hskip-\d_chem_width
- \lower\d_chem_depth \hpack{\raise\dp6\box6}%
+ \lower\d_chem_depth\hpack{\raise\dp\scratchboxthree\box\scratchboxthree}%
\hss
\egroup} % text on top of chemicals
@@ -607,12 +607,15 @@
\definechemicalsymbol[d:plus] [\enspace+\enspace]
\definechemicalsymbol[d:minus] [\enspace-\enspace]
\definechemicalsymbol[d:equals] [\enspace=\enspace]
-\definechemicalsymbol[d:gives] [\rightarrowfill] % \chem_arrow_construct\xrightarrow
-\definechemicalsymbol[d:equilibrium] [\rightoverleftarrowfill] % \chem_arrow_construct\xrightoverleftarrow
-\definechemicalsymbol[d:mesomeric] [\leftarrowfill] % \chem_arrow_construct\xleftrightarrow
+%definechemicalsymbol[d:gives] [\rightarrowfill] % \chem_arrow_construct\xrightarrow
+%definechemicalsymbol[d:equilibrium] [\rightoverleftarrowfill] % \chem_arrow_construct\xrightoverleftarrow
+%definechemicalsymbol[d:mesomeric] [\leftarrowfill] % \chem_arrow_construct\xleftrightarrow
+\definechemicalsymbol[d:gives] [\crightarrow]
+\definechemicalsymbol[d:equilibrium] [\cleftarrow]
+\definechemicalsymbol[d:mesomeric] [\crightoverleftarrow]
\definechemicalsymbol[d:single] [\chemicalbondrule]
-\definechemicalsymbol[d:double] [\hpack{\lower.5ex\chemicalbondrule\hskip-1em\raise.5ex\chemicalbondrule}]
-\definechemicalsymbol[d:triple] [\hpack{\chemicalbondrule\hskip-1em\lower.5ex\chemicalbondrule\hskip-1em\raise.5ex\chemicalbondrule}]
+\definechemicalsymbol[d:double] [\hpack{\lower.5\exheight\chemicalbondrule\hskip-\emwidth\raise.5\exheight\chemicalbondrule}]
+\definechemicalsymbol[d:triple] [\hpack{\chemicalbondrule\hskip-\emwidth\lower.5\exheight\chemicalbondrule\hskip-\emwidth\raise.5\exheight\chemicalbondrule}]
\definechemicalsymbol[d:opencomplex] [\mathematics{\Bigg[}] % not yet ok
\definechemicalsymbol[d:closecomplex][\mathematics{\Bigg]}] % not yet ok
diff --git a/Master/texmf-dist/tex/context/base/mkxl/cldf-bas.lmt b/Master/texmf-dist/tex/context/base/mkxl/cldf-bas.lmt
new file mode 100644
index 00000000000..40b2b74a54d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/cldf-bas.lmt
@@ -0,0 +1,262 @@
+if not modules then modules = { } end modules ['cldf-bas'] = {
+ version = 1.001,
+ comment = "companion to cldf-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- -- speedtest needed:
+--
+-- local flush, writer = context.getlogger()
+--
+-- trackers.register("context.trace",function(v)
+-- flush, writer = context.getlogger()
+-- end)
+--
+-- function context.bgroup()
+-- flush(ctxcatcodes,"{")
+-- end
+--
+-- function context.egroup()
+-- flush(ctxcatcodes,"}")
+-- end
+
+local tonumber = tonumber
+local type = type
+local format = string.format
+local utfchar = utf.char
+local concat = table.concat
+
+local context = context
+local ctxcore = context.core
+
+local variables = interfaces.variables
+
+local ctx_flushnode = context.nuts.flush
+local ctx_sprint = context.sprint
+local txtcatcodes = tex.txtcatcodes
+
+local nuts = nodes.nuts
+local tonode = nuts.tonode
+local nodepool = nuts.pool
+local new_rule = nodepool.rule
+local new_glyph = nodepool.glyph
+local new_latelua = nodepool.latelua
+
+local setattrlist = nuts.setattrlist
+
+local texgetcount = tex.getcount
+local texsetcount = tex.setcount
+local texchardef = tex.chardef
+local expandmacro = token.expandmacro
+
+local is_letter = characters.is_letter
+
+-- a set of basic fast ones
+
+function context.setfontid(n)
+ -- isn't there a setter?
+ context("\\setfontid%i\\relax",n)
+end
+
+function context.char(k) -- used as escape too, so don't change to utf
+ if type(k) == "table" then
+ local n = #k
+ if n == 1 then
+ context([[\char%s\relax]],k[1])
+ elseif n > 0 then
+ context([[\char%s\relax]],concat(k,[[\relax\char]]))
+ end
+ else
+ if type(k) == "string" then
+ k = tonumber(k)
+ end
+ if type(k) == "number" then
+ context([[\char%s\relax]],k)
+ end
+ end
+end
+
+function context.safechar(c)
+ if characters.is_letter[c] then -- not yet loaded
+ ctx_sprint(c)
+ else
+ ctx_sprint(txtcatcodes,c)
+ end
+end
+
+function context.utfchar(k)
+ if type(k) == "string" then
+ k = tonumber(k)
+ end
+ if type(k) == "number" then
+ context(utfchar(k))
+ end
+end
+
+function context.rule(w,h,d,direction)
+ local rule
+ if type(w) == "table" then
+ rule = new_rule(w.width,w.height,w.depth,w.direction)
+ else
+ rule = new_rule(w,h,d,direction)
+ end
+ setattrlist(rule,true)
+ context(tonode(rule))
+ -- ctx_flushnode(tonode(rule))
+end
+
+function context.glyph(id,k)
+ if id then
+ if not k then
+ id, k = true, id
+ end
+ local glyph = new_glyph(id,k)
+ setattrlist(glyph,true)
+ context(tonode(glyph))
+ -- ctx_flushnode(tonode(glyph))
+ end
+end
+
+-- local function ctx_par () context("\\par") end
+-- local function ctx_space() context("\\space") end
+
+local ctx_par = context.cs.par
+local ctx_space = context.cs.space
+
+context.par = ctx_par
+context.space = ctx_space
+
+ctxcore.par = ctx_par
+ctxcore.space = ctx_space
+
+-- local function ctx_bgroup() context("{") end
+-- local function ctx_egroup() context("}") end
+
+local ctx_bgroup = context.cs.bgroup
+local ctx_egroup = context.cs.egroup
+
+context.bgroup = ctx_bgroup
+context.egroup = ctx_egroup
+
+ctxcore.bgroup = ctx_bgroup
+ctxcore.egroup = ctx_egroup
+
+-- not yet used ... but will get variant at the tex end as well
+
+local function setboxregister(kind,n)
+ context(type(n) == "number" and [[\setbox%s\%s]] or [[\setbox\%s\%s]],n,kind)
+end
+
+function ctxcore.sethboxregister(n) setboxregister("hbox",n) end
+function ctxcore.setvboxregister(n) setboxregister("vbox",n) end
+function ctxcore.setvtopregister(n) setboxregister("vtop",n) end
+
+local function startboxregister(kind,n)
+ context(type(n) == "number" and [[\setbox%s\%s{]] or [[\setbox\%s\%s{]],n,kind)
+end
+
+function ctxcore.starthboxregister(n) startboxregister("hbox",n) end
+function ctxcore.startvboxregister(n) startboxregister("vbox",n) end
+function ctxcore.startvtopregister(n) startboxregister("vtop",n) end
+
+ctxcore.stophboxregister = ctx_egroup
+ctxcore.stopvboxregister = ctx_egroup
+ctxcore.stopvtopregister = ctx_egroup
+
+function ctxcore.flushboxregister(n)
+ context(type(n) == "number" and [[\box%s ]] or [[\box\%s]],n)
+end
+
+-- function ctxcore.beginhbox() context([[\hbox\bgroup]]) end
+-- function ctxcore.beginvbox() context([[\vbox\bgroup]]) end
+-- function ctxcore.beginvtop() context([[\vtop\bgroup]]) end
+
+local ctx_hbox = context.cs.hbox
+local ctx_vbox = context.cs.vbox
+local ctx_vtop = context.cs.vtop
+
+function ctxcore.beginhbox() ctx_hbox() ctx_bgroup() end
+function ctxcore.beginvbox() ctx_vbox() ctx_bgroup() end
+function ctxcore.beginvtop() ctx_vtop() ctx_bgroup() end
+
+ctxcore.endhbox = ctx_egroup -- \egroup
+ctxcore.endvbox = ctx_egroup -- \egroup
+ctxcore.endvtop = ctx_egroup -- \egroup
+
+local function allocate(name,what,cmd)
+ local a = format("c_syst_last_allocated_%s",what)
+ local n = texgetcount(a) + 1
+ if n <= texgetcount("c_syst_max_allocated_register") then
+ texsetcount(a,n)
+ end
+ context("\\global\\expandafter\\%sdef\\csname %s\\endcsname %s\\relax",cmd or what,name,n)
+ return n
+end
+
+context.registers = {
+ newdimen = function(name) expandmacro("syst_new_dimen", true,name) return texgetcount("c_syst_last_allocated_dimen") end,
+ newskip = function(name) expandmacro("syst_new_skip", true,name) return texgetcount("c_syst_last_allocated_skip" ) end,
+ newcount = function(name) expandmacro("syst_new_count", true,name) return texgetcount("c_syst_last_allocated_count") end,
+ newmuskip = function(name) expandmacro("syst_new_muskip",true,name) return texgetcount("c_syst_last_allocated_muskip") end,
+ newtoks = function(name) expandmacro("syst_new_toks", true,name) return texgetcount("c_syst_last_allocated_toks") end,
+ newbox = function(name) expandmacro("syst_new_box", true,name) return texgetcount("c_syst_last_allocated_box") end,
+ -- not really a register but kind of belongs here
+ newchar = texchardef,
+}
+
+function context.latelua(f)
+ -- table check moved elsewhere
+ local latelua = new_latelua(f)
+ setattrlist(latelua,true) -- will become an option
+ ctx_flushnode(latelua,true)
+end
+
+do
+
+ local NC = ctxcore.NC
+ local BC = ctxcore.BC
+ local NR = ctxcore.NR
+
+ context.nc = setmetatable({ }, {
+ __call =
+ function(t,...)
+ NC()
+ return context(...)
+ end,
+ __index =
+ function(t,k)
+ NC()
+ return context[k]
+ end,
+ }
+ )
+
+ function context.bc(...)
+ BC()
+ return context(...)
+ end
+
+ function context.nr(...)
+ NC()
+ NR()
+ end
+
+end
+
+-- for the moment here:
+
+do
+
+ local texset = tex.set
+ local maxdimen = tex.magicconstants.maxdimen
+
+ function tex.dontcomplain()
+ texset("hbadness",maxdimen)
+ texset("vbadness",maxdimen)
+ texset("hfuzz", maxdimen)
+ texset("vfuzz", maxdimen)
+ end
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/cldf-bas.mkxl b/Master/texmf-dist/tex/context/base/mkxl/cldf-bas.mkxl
index 962db5209f5..ab801e411b3 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/cldf-bas.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/cldf-bas.mkxl
@@ -13,7 +13,19 @@
\writestatus{loading}{ConTeXt Lua Documents / Basics}
-\registerctxluafile{cldf-bas}{}
+\unprotect
+
+\permanent\protected\def\syst_new_dimen #1{\expandafter\newdimen \csname#1\endcsname}
+\permanent\protected\def\syst_new_skip #1{\expandafter\newskip \csname#1\endcsname}
+\permanent\protected\def\syst_new_count #1{\expandafter\newcount \csname#1\endcsname}
+\permanent\protected\def\syst_new_muskip#1{\expandafter\newmuskip\csname#1\endcsname}
+\permanent\protected\def\syst_new_toks #1{\expandafter\newtoks \csname#1\endcsname}
+\permanent\protected\def\syst_new_box #1{\expandafter\newbox \csname#1\endcsname}
+\permanent\protected\def\syst_new_char #1{\expandafter\chardef \csname#1\endcsname}
+
+\protect
+
+\registerctxluafile{cldf-bas}{autosuffix}
\registerctxluafile{cldf-prs}{}
\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/cldf-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/cldf-ini.mkxl
index b393eb9b572..0c5788bb291 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/cldf-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/cldf-ini.mkxl
@@ -13,7 +13,7 @@
\writestatus{loading}{ConTeXt Lua Documents / Initialization}
-\newcount\trialtypesettingstate % gets aliased at the Lua end
+% \newcount\trialtypesettingstate % gets aliased at the Lua end
\registerctxluafile{cldf-ini}{autosuffix}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/cldf-lmt.lmt b/Master/texmf-dist/tex/context/base/mkxl/cldf-lmt.lmt
index f3121eadc02..aba3dacdaa5 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/cldf-lmt.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/cldf-lmt.lmt
@@ -6,7 +6,7 @@ if not modules then modules = { } end modules ['cldf-lmt'] = {
license = "see context related readme files"
}
-local next, load = next, load
+local next, load, tonumber = next, load, tonumber
local gmatch, gsub, byte = string.gmatch, string.gsub, string.byte
local setmetatableindex = table.setmetatableindex
@@ -41,7 +41,7 @@ local scankeyword = scanners.keyword
local peekchar = scanners.peekchar
local skipnext = scanners.skip
-local getindex = token.get_index
+local getindex = tokens.accessors.index
local texsetdimen = tex.setdimen
local texsetcount = tex.setcount
@@ -187,6 +187,7 @@ implement {
name = "newarray",
public = true,
protected = true,
+ untraced = true,
arguments = { {
{ "name", "string" },
{ "nx", "integer" },
@@ -335,6 +336,7 @@ implement {
name = "showarray",
public = true,
protected = true,
+ untraced = true,
actions = function()
local name = scanstring()
if name then
@@ -358,9 +360,10 @@ end)
table.makeweak(cache)
implement {
- name = "luaexpression",
- public = true,
- actions = function()
+ name = "luaexpression",
+ public = true,
+ untraced = true,
+ actions = function()
local how = scanword()
local code = cache[scanargument()]
if code then
@@ -544,6 +547,7 @@ end
implement {
name = "newluatable",
protected = true,
+ untraced = true,
arguments = "csname",
actions = newluatable,
}
@@ -551,6 +555,7 @@ implement {
implement {
name = "useluatable",
protected = true,
+ untraced = true,
arguments = { "csname", true },
actions = newluatable,
}
@@ -558,6 +563,7 @@ implement {
implement {
name = "disposeluatable",
protected = true,
+ untraced = true,
public = true,
arguments = "csname",
actions = disposeluatable,
@@ -566,6 +572,7 @@ implement {
implement {
name = "inspectluatable",
protected = true,
+ untraced = true,
public = true,
arguments = "csname",
actions = inspectluatable,
@@ -574,6 +581,7 @@ implement {
implement {
name = "showluatables",
protected = true,
+ untraced = true,
public = true,
actions = showluatables,
}
@@ -581,6 +589,7 @@ implement {
implement {
name = "setluatable",
protected = true,
+ untraced = true,
public = true,
arguments = { "csname", "argument" },
actions = function(name,data)
@@ -597,6 +606,7 @@ implement {
implement {
name = "getfromluatable",
protected = false,
+ untraced = true,
public = true,
arguments = { "csname", "argument" },
actions = getfromluatable,
@@ -605,6 +615,7 @@ implement {
implement {
name = "idxfromluatable",
protected = false,
+ untraced = true,
public = true,
arguments = { "csname", "integer" },
actions = idxfromluatable,
@@ -627,10 +638,11 @@ context.luatables = {
local tables = { }
local stack = setmetatableindex("table")
-interfaces.implement {
- name = "droptablegroup",
- public = true,
- actions = function()
+implement {
+ name = "droptablegroup",
+ public = true,
+ untraced = true,
+ actions = function()
local g = texget("currentgrouplevel") -- todo: tex.getgrouplevel()
local s = stack[g]
if s then
@@ -699,7 +711,7 @@ local function newtable(array)
if not tables[name] then
local t = { }
tables[name] = t
- interfaces.implement {
+ implement {
name = name,
public = true,
usage = "value",
@@ -715,6 +727,7 @@ end
implement {
name = "newhashedtable",
protected = true,
+ untraced = true,
public = true,
actions = newtable,
}
@@ -722,6 +735,7 @@ implement {
implement {
name = "newindexedtable",
protected = true,
+ untraced = true,
public = true,
actions = function() newtable(true) end,
}
@@ -886,7 +900,7 @@ implement {
end
}
-interfaces.implement {
+implement {
name = "bitwise",
public = true,
usage = "value",
@@ -933,7 +947,7 @@ interfaces.implement {
local escape = function(s) return "\\" .. byte(s) end
-interfaces.implement {
+implement {
name = "ctxluamatch",
public = true,
usage = "value",
@@ -947,3 +961,84 @@ interfaces.implement {
return none_code
end,
}
+
+-- yes or no ...
+
+do
+
+ local codes = { }
+ tex.codes = codes
+
+ local global_code = tex.flagcodes.global
+
+ local savelua = token.savelua
+ local isdefined = token.isdefined
+
+ local newsparse = sparse.new
+ local setsparse = sparse.set
+ local wipesparse = sparse.wipe
+ local restoresparse = sparse.restore
+
+ -- local function isglobal(n) -- maybe a general helper
+ -- return n and (tonumber(n) & global_code)
+ -- end
+
+ local registerfunction = context.functions.register
+
+ implement {
+ name = "codedef",
+ public = true,
+ untraced = true,
+ protected = true,
+ actions = function(what)
+ local name = scancsname(true)
+ -- if isdefined(name) then
+ -- wipesparse(codes[name]) -- better make a wipe helper if ever needed
+ -- else
+ local code = newsparse()
+ local restore = registerfunction(function() restoresparse(code) end)
+ implement {
+ name = name,
+ public = true,
+ protected = true,
+ usage = "value",
+ actions = function(what)
+ local n = scaninteger()
+ if what == "value" then
+ return integer_code, code[n]
+ else
+ local v = scaninteger(true)
+ -- if isglobal(what) then
+ if what and (tonumber(what) & global_code) then
+ setsparse(code,"global",n,v)
+ else
+ savelua(restore,true) -- only once
+ setsparse(code,n,v)
+ end
+ end
+ end,
+ }
+ codes[name] = code
+ -- end
+ end,
+ }
+
+end
+
+-- for now here:
+
+do
+
+ local runstring = tex.runstring
+ local ctxcatcodes = tex.ctxcatcodes
+ local formatters = string.formatters
+
+ function context.runstring(fmt,str,...)
+ if str then
+ runstring(ctxcatcodes,formatters[fmt](str,...))
+ elseif fmt then
+ runstring(ctxcatcodes,fmt)
+ end
+ end
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/colo-ext.mkxl b/Master/texmf-dist/tex/context/base/mkxl/colo-ext.mkxl
index df2d9d768a1..a70bd9b18c4 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/colo-ext.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/colo-ext.mkxl
@@ -46,7 +46,7 @@
\installcorenamespace{colorintent}
\permanent\protected\def\registercolorintent#1#2% \relax is needed !
- {\setevalue{\??colorintent#1}{\c_attr_colorintent\clf_registercolorintent{#2}\relax}}
+ {\edefcsname\??colorintent#1\endcsname{\c_attr_colorintent\clf_registercolorintent{#2}\relax}}
\protected\def\colo_intents_set
{\clf_enablecolorintents
@@ -58,7 +58,7 @@
\installattributestack\colorintentattribute
-\setevalue{\??colorintent\v!none}{\c_attr_colorintent\attributeunsetvalue} % or reset? used at all?
+\edefcsname\??colorintent\v!none\endcsname{\c_attr_colorintent\attributeunsetvalue} % or reset? used at all?
\permanent\protected\def\startcolorintent[#1]%
{\pushattribute\colorintentattribute
@@ -73,14 +73,14 @@
\aliased\let\stopoverprint\stopcolorintent
\aliased\let\stopknockout \stopcolorintent
-\aliased\let\starttextcolorintent\relax
-\aliased\let\stoptextcolorintent \relax
+\permanent\protected\lettonothing\starttextcolorintent
+\permanent\protected\lettonothing\stoptextcolorintent
\appendtoks
\colo_intents_set_text
\to \everysetupcolors
-\let\p_colo_intent\empty
+\lettonothing\p_colo_intent
\def\colo_intents_set_text
{\edef\p_colo_intent{\colorsparameter\c!intent}%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/colo-grp.mkxl b/Master/texmf-dist/tex/context/base/mkxl/colo-grp.mkxl
index 9237952d750..1d3df712cdd 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/colo-grp.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/colo-grp.mkxl
@@ -47,7 +47,7 @@
\installcorenamespace{colorgroup}
\installcorenamespace{colorgroupsetter}
-\newcount\c_colo_groups_n % scratch counter
+\newinteger\c_colo_groups_n % scratch counter
\permanent\tolerant\protected\def\definecolorgroup[#1]#*[#2]#*[#3]% % sort of obsolete, just use palets directly
{\ifarguments\or\or
@@ -73,13 +73,13 @@
\fi}}
\def\colo_groups_define_entry#1#2#3% name mode specification
- {\advance\c_colo_groups_n\plusone
+ {\advanceby\c_colo_groups_n\plusone
\csname\??colorgroupsetter\ifcsname\??colorgroupsetter#2\endcsname#2\else\s!rgb\fi\endcsname[#1:\the\c_colo_groups_n][#3:0:0:0:0]}
-\setvalue{\??colorgroupsetter\s!gray}[#1][#2:#3]{\definecolor[#1][s=#2]}
-\setvalue{\??colorgroupsetter\s!rgb }[#1][#2:#3:#4:#5]{\definecolor[#1][r=#2,g=#3,b=#4]}
-\setvalue{\??colorgroupsetter\s!cmyk}[#1][#2:#3:#4:#5:#6]{\definecolor[#1][c=#2,m=#3=,y=#4,k=#5]}
-\setvalue{\??colorgroupsetter\s!spot}[#1][#2:#3:#4]{\definespotcolor[#1][#2][p=#3]}
+\defcsname\??colorgroupsetter\s!gray\endcsname[#1][#2:#3]{\definecolor[#1][s=#2]}
+\defcsname\??colorgroupsetter\s!rgb \endcsname[#1][#2:#3:#4:#5]{\definecolor[#1][r=#2,g=#3,b=#4]}
+\defcsname\??colorgroupsetter\s!cmyk\endcsname[#1][#2:#3:#4:#5:#6]{\definecolor[#1][c=#2,m=#3=,y=#4,k=#5]}
+\defcsname\??colorgroupsetter\s!spot\endcsname[#1][#2:#3:#4]{\definespotcolor[#1][#2][p=#3]}
%D \macros
%D {showcolorgroup}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/colo-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/colo-ini.mkxl
index c096fe90f2c..a7f483bc2cc 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/colo-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/colo-ini.mkxl
@@ -61,10 +61,10 @@
\let\m_colo_weight_gray\v!yes
-\mutable\let\currentcolormodel \empty
-\mutable\let\currentcolorname \empty
-\mutable\let\currentcolorpalet \empty
-\mutable\let\currentcolorprefix\empty % \currentcolorpalet:
+\mutable\lettonothing\currentcolormodel
+\mutable\lettonothing\currentcolorname
+\mutable\lettonothing\currentcolorpalet
+\mutable\lettonothing\currentcolorprefix % \currentcolorpalet:
%D \macros
%D {definecolor,defineglobalcolor,definenamedcolor,definespotcolor,definemultitonecolor,
@@ -125,7 +125,7 @@
% transparency
\permanent\protected\def\transparent[#1]%
- {\bgroup
+ {\beginsimplegroup
\edef\scratchstringone{#1}%
% the \relax catches a non existent csname
\ifx\scratchstringone\v!reset
@@ -150,7 +150,7 @@
% color
\permanent\protected\def\coloronly[#1]%
- {\bgroup
+ {\beginsimplegroup
\edef\currentcolorname{#1}%
\ifempty\currentcolorprefix
\colo_helpers_activate_nop_only
@@ -174,7 +174,7 @@
% color + transparency
\permanent\protected\def\color[#1]%
- {\bgroup
+ {\beginsimplegroup
\edef\currentcolorname{#1}%
\ifempty\currentcolorprefix
\colo_helpers_activate_nop
@@ -184,7 +184,7 @@
\let\nexttoken}
\permanent\protected\def\graycolor[#1]%
- {\bgroup
+ {\beginsimplegroup
\colo_helpers_set_model\s!gray\colo_helpers_activate{#1}%
\let\nexttoken}
@@ -201,7 +201,7 @@
{\endgroup}
\permanent\protected\def\colored[#1]%
- {\bgroup
+ {\beginsimplegroup
\colo_basics_defined_and_activated{#1}%
\let\nexttoken}
@@ -288,10 +288,10 @@
\let\v_colo_freeze_state\s!false
-\setvalue{\??colorconversions\v!yes}%
+\defcsname\??colorconversions\v!yes\endcsname
{\settrue \c_colo_convert_gray}
-\setvalue{\??colorconversions\v!always}%
+\defcsname\??colorconversions\v!always\endcsname
{\settrue \c_colo_convert_gray
\setfalse\c_colo_rgb_supported
\setfalse\c_colo_cmyk_supported}
@@ -331,27 +331,52 @@
\let\colo_helpers_show_message\showmessage
\to \everyjob
+% handled elsewhere but kind of a reference here:
+%
+% \def\colo_force_colormodel#1#2%
+% {\setcolorsparameter\c!rgb {#1}%
+% \setcolorsparameter\c!cmyk{#2}%
+% \the\everysetupcolors}
+
%D We provide stacking independent of grouping.
-\newcount\c_colo_nesting
+% the old one
+%
+% \newcount\c_colo_nesting
+%
+% \permanent\protected\def\pushcolor[#1]%
+% {\global\advanceby\c_colo_nesting\plusone
+% \edefcsname\??colorstack\number\c_colo_nesting\endcsname
+% {\c_attr_colormodel \the\c_attr_colormodel
+% \c_attr_color \the\c_attr_color
+% \c_attr_transparency\the\c_attr_transparency
+% \relax}% stack
+% \colo_helpers_activate{#1}}
+%
+% \permanent\protected\def\popcolor
+% {\csname\??colorstack\number\c_colo_nesting\endcsname
+% \global\advanceby\c_colo_nesting\minusone}
+%
+% more efficient:
+
+\installmacrostack\m_color_state
\permanent\protected\def\pushcolor[#1]%
- {\global\advance\c_colo_nesting\plusone
- \edefcsname\??colorstack\number\c_colo_nesting\endcsname
+ {\edef\m_color_state
{\c_attr_colormodel \the\c_attr_colormodel
\c_attr_color \the\c_attr_color
- \c_attr_transparency\the\c_attr_transparency
- \relax}% stack
+ \c_attr_transparency\the\c_attr_transparency}%
+ \push_macro_m_color_state
\colo_helpers_activate{#1}}
\permanent\protected\def\popcolor
- {\csname\??colorstack\number\c_colo_nesting\endcsname
- \global\advance\c_colo_nesting\minusone}
+ {\pop_macro_m_color_state
+ \m_color_state\relax}
% a simple one: assumes grouping
-\newcount\c_colo_saved_attribute_color
-\newcount\c_colo_saved_attribute_transparency
+\newinteger\c_colo_saved_attribute_color
+\newinteger\c_colo_saved_attribute_transparency
\permanent\protected\def\savecolor
{\c_colo_saved_attribute_color \c_attr_color
@@ -361,6 +386,16 @@
{\c_attr_color \c_colo_saved_attribute_color
\c_attr_transparency\c_colo_saved_attribute_transparency}
+%D Nasty:
+
+\permanent\def\usedcolorparameterattributes#1%
+ {\beginlocalcontrol\begingroup
+ \dousecolorparameter{#1}%
+ \normalexpanded{\endgroup\noexpand\endlocalcontrol
+ \noexpand\s!attr \colorattribute \the\c_attr_color
+ \noexpand\s!attr \colormodelattribute \the\c_attr_colormodel
+ \noexpand\s!attr \transparencyattribute \the\c_attr_transparency}}
+
%D In this documentation we will not go into too much details on palets. Curious
%D users can find more information on this topic in \from[use of color].
%D
@@ -429,7 +464,7 @@
\def\colo_palet_allocate#1%
{\letcsname\??paletlist#1\endcsname\empty
\ifcsname\??paletsize#1\endcsname\else
- \expandafter\newcount\csname\??paletsize#1\endcsname
+ \expandafter\newinteger\csname\??paletsize#1\endcsname
\fi}
\def\colo_palet_prepare#1%
@@ -439,14 +474,15 @@
\else
\colo_palet_allocate\colo_palet_name
\fi
- \enforced\expandafter\let\expandafter\c_colo_palet\csname\??paletsize\colo_palet_name\endcsname
+ % \enforced\expandafter\integerdef\expandafter\c_colo_palet\csname\??paletsize\colo_palet_name\endcsname
+ \edef\c_colo_palet{\csname\??paletsize\colo_palet_name\endcsname}% we can't alias as they are integers
\edef\m_colo_palet{\begincsname\??paletlist\colo_palet_name\endcsname}}
\def\colo_palet_extend#1%
{\addtocommalist{#1}\m_colo_palet
\letcsname\??paletlist\colo_palet_name\endcsname\m_colo_palet
- %\advance\csname\??paletsize\colo_palet_name\endcsname\plusone
- \advance\c_colo_palet\plusone}
+ %\advanceby\csname\??paletsize\colo_palet_name\endcsname\plusone
+ \advanceby\c_colo_palet\plusone}
\permanent\protected\def\doifelsecolorpalet#1%
{\ifcsname\??paletlist#1\endcsname
@@ -455,8 +491,8 @@
\expandafter\secondoftwoarguments
\fi}
-\mutable\let\paletlist\empty
-\mutable\let\paletsize\!!zerocount
+\mutable\lettonothing\paletlist
+\mutable\let \paletsize\!!zerocount
\permanent\protected\def\getpaletlist[#1]%
{\edef\paletlist{\begincsname\??paletlist#1\endcsname}}
@@ -502,14 +538,14 @@
% \or
% \colo_palet_prepare{#1}%
% \ifcondition\validassignment{#2}%
-% \setevalue{\??colorpaletspecification#1}{#2}%
+% \edefcsname\??colorpaletspecification#1\endcsname{#2}%
% \processcommalist[#2]{\colo_palets_define_one{#1}}%
% \orelse\ifcsname\??colorpaletspecification#2\endcsname
% \normalexpanded{\colo_palets_define_b{#1}{\lastnamedcs}{}}%
% \fi
% \or
% \colo_palet_prepare{#1}%
-% \setevalue{\??colorpaletspecification#1}{#2}%
+% \edefcsname\??colorpaletspecification#1\endcsname{#2}%
% \colo_palet_extend{#2}%
% \colo_palets_define_assign{#1}{#2}{#3}%
% \fi}
@@ -553,15 +589,15 @@
{\edef\currentcolorpalet{#1}%
\ifempty\currentcolorpalet
% seems to be a reset
- \let\currentcolorprefix\empty
+ \lettonothing\currentcolorprefix
%\t_colo_prefix\emptytoks
\orelse\ifcsname\??paletlist\currentcolorpalet\endcsname
\edef\currentcolorprefix{#1:}%
%\t_colo_prefix\expandafter{\currentcolorprefix}%
\else
\colo_helpers_show_message\m!colors7\currentcolorpalet
- \let\currentcolorpalet\empty
- \let\currentcolorprefix\empty
+ \lettonothing\currentcolorpalet
+ \lettonothing\currentcolorprefix
%\t_colo_prefix\emptytoks
\fi
\the\everysetuppalet
@@ -628,6 +664,31 @@
\fetchmodulecommand \showcolor \f!colo_run
+%D This one shows the luminance ratio conform WCAG:
+%D
+%D \starttyping
+%D \starttabulate[||r|]
+%D \NC red \NC \colorluminance{red} \NC \NR
+%D \NC green \NC \colorluminance{green} \NC \NR
+%D \NC black \NC \colorluminance{black} \NC \NR
+%D \NC white \NC \colorluminance{white} \NC \NR
+%D \stoptabulate
+%D
+%D \starttabulate[||r|]
+%D \NC red : green \NC \colorluminanceratio{red}{green} \NC \NR
+%D \NC red : black \NC \colorluminanceratio{red}{black} \NC \NR
+%D \NC red : white \NC \colorluminanceratio{red}{white} \NC \NR
+%D \stoptabulate
+%D
+%D \usecolors[crayola]
+%D
+%D \compareluminance[Jade] [Onyx] \par
+%D \compareluminance[Goldenrod] [Onyx] \par
+%D \compareluminance[CobaltBlue][Onyx] \par
+%D \stoptyping
+
+\fetchmodulecommand \compareluminance \f!colo_run
+
%D It would make sense to put the following code in \type {colo-mps}, but it it
%D rather low level.
@@ -713,13 +774,13 @@
\def\v_colo_dummy_name{c_o_l_o_r}
-\letvalue{\??colorattribute \v_colo_dummy_name}\empty
-\letvalue{\??transparencyattribute\v_colo_dummy_name}\empty
-\letvalue{\??colorsetter \v_colo_dummy_name}\empty
-\letvalue{\??transparencysetter \v_colo_dummy_name}\empty
+\letcsname\??colorattribute \v_colo_dummy_name\endcsname\empty
+\letcsname\??transparencyattribute\v_colo_dummy_name\endcsname\empty
+\letcsname\??colorsetter \v_colo_dummy_name\endcsname\empty
+\letcsname\??transparencysetter \v_colo_dummy_name\endcsname\empty
-\letvalue{\??colorsetter -}\empty % used?
-\letvalue{\??transparencysetter-}\empty % used?
+\letcsname\??colorsetter -\endcsname\empty % used?
+\letcsname\??transparencysetter -\endcsname\empty % used?
% new: expandable (see tbl preamble)
@@ -814,8 +875,8 @@
% \let\colo_basics_inherit \gobbletwoarguments % used in mp interface
\def\colo_basics_allocate#1%
- {\expandafter\newcount\csname\??colornumber#1\endcsname
- \clf_synccolorcount{#1}\c_syst_last_allocated_count}
+ {\expandafter\newinteger\csname\??colornumber#1\endcsname
+ \clf_synccolorcount{#1}{\??colornumber#1}}
\def\colo_basics_synchronize#1%
{\ifcsname\??colornumber#1\endcsname\else
@@ -827,10 +888,10 @@
\let\colo_basics_inherit\clf_synccolorclone
-\newcount\c_colo_protection
+\newinteger\c_colo_protection
-\permanent\protected\def\startprotectedcolors{\advance\c_colo_protection\plusone }
-\permanent\protected\def\stopprotectedcolors {\advance\c_colo_protection\minusone}
+\permanent\protected\def\startprotectedcolors{\advanceby\c_colo_protection\plusone }
+\permanent\protected\def\stopprotectedcolors {\advanceby\c_colo_protection\minusone}
\permanent\tolerant\protected\def\definecolor[#1]#*[#2]%
{\iftok{#1}{#2}%
@@ -850,7 +911,7 @@
\clf_defineprocesscolorglobal{#1}{#2}\v_colo_freeze_state\relax
\colo_basics_synchronize{#1}%
\ifcase\c_colo_protection
- \protected\instance\setgvalue{#1}{\colo_helpers_activate{#1}}%
+ \protected\instance\gdefcsname#1\endcsname{\colo_helpers_activate{#1}}%
\fi
\fi}
@@ -885,14 +946,14 @@
{\clf_definespotcolorglobal{#1}{#2}{#3}%
\colo_basics_synchronize{#1}%
\ifcase\c_colo_protection
- \protected\instance\setgvalue{#1}{\colo_helpers_activate{#1}}%
+ \protected\instance\gdefcsname#1\endcsname{\colo_helpers_activate{#1}}%
\fi}
\permanent\tolerant\protected\def\definemultitonecolor[#1]#*[#2]#*[#3]#*[#4]%
{\clf_definemultitonecolorglobal{#1}{#2}{#3}{#4}%
\colo_basics_synchronize{#1}%
\ifcase\c_colo_protection
- \protected\instance\setgvalue{#1}{\colo_helpers_activate{#1}}%
+ \protected\instance\gdefcsname#1\endcsname{\colo_helpers_activate{#1}}%
\fi}
%D Transparencies (only):
@@ -1066,8 +1127,8 @@
%D \stopregistercolor
%D \stoptyping
-\mutable\let\maintextcolor \empty
-\mutable\def\defaulttextcolor{black}
+\mutable\lettonothing\maintextcolor
+\mutable\def \defaulttextcolor{black}
\permanent\protected\def\inheritmaintextcolor
{\ifempty\maintextcolor\else\colo_helpers_activate\maintextcolor\fi}
@@ -1093,9 +1154,9 @@
\permanent\protected\def\starttextcolor[#1]%
{\doifsomething{#1}{\colo_helpers_switch_to_maintextcolor{#1}}}
-\aliased\let\stoptextcolor\relax
+\permanent\protected\lettonothing\stoptextcolor
-\let\p_colo_textcolor\empty
+\lettonothing\p_colo_textcolor
\def\colo_helpers_initialize_maintextcolor
{\edef\p_colo_textcolor{\directcolorsparameter\c!textcolor}%
@@ -1108,13 +1169,13 @@
\appendtoks \colo_helpers_initialize_maintextcolor \to \everyjob
\appendtoks \colo_helpers_initialize_maintextcolor \to \everysetupcolors
-\letvalue{\??colorsetter }\empty \letvalue{\??colorattribute }\!!zerocount
-\letvalue{\??transparencysetter}\empty \letvalue{\??transparencyattribute}\!!zerocount
+\letcsname\??colorsetter \endcsname\empty \letcsname\??colorattribute \endcsname\!!zerocount
+\letcsname\??transparencysetter\endcsname\empty \letcsname\??transparencyattribute\endcsname\!!zerocount
-\def\colo_helpers_inherited_direct_cs#1{\ifcsname\??colorsetter #1\endcsname\lastnamedcs\fi}
-\def\colo_helpers_inherited_direct_ca#1{\ifcsname\??colorattribute #1\endcsname\lastnamedcs\else\!!zerocount\fi}
-\def\colo_helpers_inherited_direct_ts#1{\ifcsname\??transparencysetter #1\endcsname\lastnamedcs\fi}
-\def\colo_helpers_inherited_direct_ta#1{\ifcsname\??transparencyattribute#1\endcsname\lastnamedcs\else\!!zerocount\fi}
+\def\colo_helpers_inherited_direct_cs#1{\begincsname\??colorsetter #1\endcsname}
+\def\colo_helpers_inherited_direct_ca#1{\ifcsname \??colorattribute #1\endcsname\lastnamedcs\else\!!zerocount\fi}
+\def\colo_helpers_inherited_direct_ts#1{\begincsname\??transparencysetter #1\endcsname}
+\def\colo_helpers_inherited_direct_ta#1{\ifcsname \??transparencyattribute#1\endcsname\lastnamedcs\else\!!zerocount\fi}
\let\colo_defcsname\defcsname
\let\colo_endcsname\endcsname
@@ -1159,8 +1220,8 @@
\colo_defcsname\??transparencysetter #1:#2\colo_endcsname{\colo_helpers_inherited_direct_ts{\??colorpalet#1:#2}}%
\colo_defcsname\??transparencyattribute#1:#2\colo_endcsname{\colo_helpers_inherited_direct_ta{\??colorpalet#1:#2}}}
-\setvalue{\??colorattribute currentcolor}{\the\c_attr_color} % for mpcolor
-\setvalue{\??transparencyattribute currentcolor}{\the\c_attr_transparency} % for mpcolor
+\defcsname\??colorattribute currentcolor\endcsname{\the\c_attr_color} % for mpcolor
+\defcsname\??transparencyattribute currentcolor\endcsname{\the\c_attr_transparency} % for mpcolor
\def\colo_helpers_inherited_current_ca#1{\ifcsname\??colorattribute \currentcolorprefix#1\endcsname\lastnamedcs\orelse\ifcsname\??colorattribute #1\endcsname\lastnamedcs\else\!!zerocount\fi}
\def\colo_helpers_inherited_current_cs#1{\ifcsname\??colorsetter \currentcolorprefix#1\endcsname\lastnamedcs\orelse\ifcsname\??colorsetter #1\endcsname\lastnamedcs\fi}
@@ -1264,6 +1325,9 @@
\permanent\def\colorvalue #1{\clf_formatcolor\rawcolorattribute{#1}{\colorformatseparator}}
\permanent\def\grayvalue #1{\clf_formatgray \rawcolorattribute{#1}{\colorformatseparator}}
+\permanent\def\colorluminance #1{\clf_formatluminance \rawcolorattribute{#1} }
+\permanent\def\colorluminanceratio #1#2{\clf_formatluminanceratio\rawcolorattribute{#1} \rawcolorattribute{#2} }
+
\permanent\def\doifelseblack #1{\clf_doifelseblack\rawcolorattribute{#1}}
\permanent\def\doifelsedrawingblack {\clf_doifelsedrawingblack}
@@ -1294,7 +1358,16 @@
%
% I really need to sort this out!
-\permanent\protected\def\forcecolorhack{\leaders\hrule\s!height\zeropoint\s!depth\zeropoint\hskip\zeropoint\relax} % relax is needed !
+% \permanent\protected\def\normalforcecolorhack{\leaders\hrule\s!height\zeropoint\s!depth\zeropoint\hskip\zeropoint\relax} % relax is needed !
+%
+% \installtexexperiment
+% {disablecolorhack}
+% {\pushoverloadmode\enforced\permanent\protected\lettonothing\forcecolorhack\popoverloadmode}
+% {\pushoverloadmode\enforced\let\forcecolorhack\normalforcecolorhack\popoverloadmode}
+%
+% use \hpack container{...}
+
+\permanent\protected\lettonothing\forcecolorhack
%D We default to the colors defined in \type {colo-imp-rgb} and support both \RGB\
%D and \CMYK\ output. Transparencies are defined here:
@@ -1334,6 +1407,7 @@
\definecolor[trace:9][g=.4,b=.8]
\definecolor[trace:w][s=1]
+\definecolor[trace:z][s=0,t=.5,a=1]
\definecolor[trace:r][r=.75,t=.5,a=1]
\definecolor[trace:g][g=.75,t=.5,a=1]
\definecolor[trace:b][b=.75,t=.5,a=1]
@@ -1348,6 +1422,7 @@
\definecolor[trace:o][r=1,g=.6,b=.1,t=.5,a=1]
\definecolor[trace:dw][s=1]
+\definecolor[trace:dz][s=0,t=.75,a=1]
\definecolor[trace:dr][r=.75,t=.75,a=1]
\definecolor[trace:dg][g=.75,t=.75,a=1]
\definecolor[trace:db][b=.75,t=.75,a=1]
diff --git a/Master/texmf-dist/tex/context/base/mkxl/cont-fil.mkxl b/Master/texmf-dist/tex/context/base/mkxl/cont-fil.mkxl
index 0ca3bb05acd..e7fdd6f8247 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/cont-fil.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/cont-fil.mkxl
@@ -146,7 +146,10 @@
%definefilesynonym [set-13] [setups-proofing]
%definefilesynonym [set-15] [setups-generate]
-\definefilesynonym [ecmascript] [libs-imp-mujs]
-\definefilesynonym [zint] [libs-imp-zint]
+\definefilesynonym [ecmascript] [libs-imp-mujs]
+\definefilesynonym [zint] [libs-imp-zint]
+\definefilesynonym [barcode] [libs-imp-zint]
+
+\definefilesynonym [newmml] [mathml]
\endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/cont-log.mkxl b/Master/texmf-dist/tex/context/base/mkxl/cont-log.mkxl
index 4df509f608f..baf3afeba1c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/cont-log.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/cont-log.mkxl
@@ -188,6 +188,7 @@
\instance\protected\def\INRSTEX {inrs\TeX}
\instance\protected\def\PRAGMA {Pragma ADE}
+\instance\protected\def\LUA {\Lua} % below
%D And this is how they show up: \TeX, \MetaFont, \MetaPost, \PiCTeX, \TaBlE, \ConTeXt,
%D \PPCHTeX, \AmSTeX, \LaTeX, \LamSTeX.
@@ -204,27 +205,44 @@
\frozen\instance\protected\def\luametaTeX{lua\wordboundary meta\wordboundary\TeX}
\frozen\instance\protected\def\XeTeX {X\lower.5\exheight\hbox{\kern-.15\emwidth\mirror{E}}\kern-.1667\emwidth\TeX}
-% Adapted from a patch by Mojca:
-\def\syst_logos_xetex_e
- {\setbox\scratchbox\hbox{E}%
- \raise\dimexpr\ht\scratchbox+\dp\scratchbox\relax\hbox{\rotate[\c!rotation=180]{\box\scratchbox}}}
-
-\frozen\instance\protected\def\XeTeX
+% % Adapted from a patch by Mojca:
+%
+% \def\syst_logos_xetex_e
+% {\setbox\scratchbox\hbox{E}%
+% \raise\dimexpr\ht\scratchbox+\dp\scratchbox\relax\hbox{\rotate[\c!rotation=180]{\box\scratchbox}}}
+%
+% \frozen\instance\protected\def\XeTeX
+% {X\lower.5\exheight
+% \hbox
+% {\kern-.15\emwidth
+% \iffontchar\font"018E\relax
+% \char"018E%
+% \else
+% \ifx\fontalternative\s!bf \mirror{E}\orelse
+% \ifx\fontalternative\s!it\syst_logos_xetex_e\orelse
+% \ifx\fontalternative\s!sl\syst_logos_xetex_e\orelse
+% \ifx\fontalternative\s!bi\syst_logos_xetex_e\orelse
+% \ifx\fontalternative\s!bs\syst_logos_xetex_e\else
+% \mirror{E}\fi
+% \fi}%
+% \kern-.1667\emwidth\TeX}
+
+% This is good enough for th efew times that we need it:
+
+\def\syst_logos_xe
{X\lower.5\exheight
- \hbox
- {\kern-.15\emwidth
- \iffontchar\font"018E\relax
- \char"018E%
- \else
- \ifx\fontalternative\s!bf \mirror{E}\orelse
- \ifx\fontalternative\s!it\syst_logos_xetex_e\orelse
- \ifx\fontalternative\s!sl\syst_logos_xetex_e\orelse
- \ifx\fontalternative\s!bi\syst_logos_xetex_e\orelse
- \ifx\fontalternative\s!bs\syst_logos_xetex_e\else
- \mirror{E}\fi
- \fi}%
- \kern-.1667\emwidth\TeX}
+ \hbox\bgroup
+ \kern-.15\emwidth
+ \iffontchar\font"018E\relax
+ \char"018E%
+ \else
+ \mirror{E}%
+ \fi
+ \egroup}
+
+\frozen\instance\protected\def\XeTeX {\syst_logos_xe\kern-.1667\emwidth\TeX}
+\frozen\instance\protected\def\XeLaTeX{\syst_logos_xe\LaTeX}
\instance\protected\def\ETEX {\eTeX}
\instance\protected\def\PDFTEX {\pdfTeX}
@@ -300,7 +318,6 @@
\enforced\instance\def\LuaTeX {LuaTeX}%
\enforced\instance\def\LuajitTeX {LuajitTeX}%
\enforced\instance\def\LuaMetaTeX{LuaMetaTeX}%
- %\let\wordboundary\empty % primitive so we need to promote it to frozen (orjust preroll)
\to \everysimplifycommands
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/cont-new.mkxl b/Master/texmf-dist/tex/context/base/mkxl/cont-new.mkxl
index b60dd2dddd4..129e3d54531 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/cont-new.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/cont-new.mkxl
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2021.03.05 19:11}
+\newcontextversion{2023.02.23 21:26}
%D This file is loaded at runtime, thereby providing an excellent place for hacks,
%D patches, extensions and new features. There can be local overloads in cont-loc
diff --git a/Master/texmf-dist/tex/context/base/mkxl/cont-run.lmt b/Master/texmf-dist/tex/context/base/mkxl/cont-run.lmt
index 76fd6ba249b..448992b4b56 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/cont-run.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/cont-run.lmt
@@ -21,6 +21,8 @@ local possiblepath = sandbox.possiblepath
local context = context
local implement = interfaces.implement
+local texset = tex.set
+
local qualified = { }
local writeable = { }
local readable = { }
@@ -190,6 +192,21 @@ else
end
+local function setoverloadmode(overloadmode)
+ if overloadmode == "warning" then
+ overloadmode = 3 -- 5
+ elseif overloadmode == "error" then
+ overloadmode = 4 -- 6
+ else
+ overloadmode = tonumber(overloadmode)
+ end
+ if overloadmode then
+ texset("overloadmode",overloadmode)
+ end
+end
+
+directives.register("overloadmode", setoverloadmode)
+
local function processjob()
tokens.setters.macro("processjob","","permanent")
@@ -202,6 +219,14 @@ local function processjob()
environment.lmtxmode = CONTEXTLMTXMODE -- should be true
+ -- directives
+ -- silent
+ -- batchmode
+
+if arguments.directives then
+ directives.enable(arguments.directives)
+end
+
if arguments.nosynctex then
luatex.synctex.setup {
state = interfaces.variables.never,
@@ -213,22 +238,26 @@ local function processjob()
}
end
- local overloadmode = arguments.overloadmode
-
- if overloadmode == "warning" then
- overloadmode = 3 -- 5
- elseif overloadmode == "error" then
- overloadmode = 4 -- 6
- else
- overloadmode = tonumber(overloadmode)
- end
+ logs.registerfinalactions(function()
+ logs.pushtarget("log")
+ statistics.showusage("finish")
+ logs.poptarget()
+ end)
- if overloadmode then
- tex.set("overloadmode",overloadmode)
- end
+ setoverloadmode(arguments.overloadmode)
if not filename or filename == "" then
-- skip
+ elseif suffix == "svg" or arguments.forcesvg then
+
+ report_system("processing svg output: %s",filename)
+
+ context.starttext()
+ context.startTEXpage()
+ context.externalfigure ( { filename }, { conversion = "mp" } )
+ context.stopTEXpage()
+ context.stoptext()
+
elseif suffix == "xml" or arguments.forcexml then
-- Maybe we should move the preamble parsing here as it
diff --git a/Master/texmf-dist/tex/context/base/mkxl/cont-run.mkxl b/Master/texmf-dist/tex/context/base/mkxl/cont-run.mkxl
index 8944a0359e7..edc038e45e2 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/cont-run.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/cont-run.mkxl
@@ -22,14 +22,14 @@
\unprotect
-\permanent\let\synctexsetfilename \clf_synctexsetfilename % can be public implementors
-\permanent\let\synctexresetfilename\clf_synctexresetfilename % idem
-\permanent\let\synctexblockfilename\clf_synctexblockfilename % idem
+% \synctexsetfilename % defined at lua end
+% \synctexresetfilename % idem
+% \synctexblockfilename % idem
-\aliased\let\synctexpause \donothing
-\aliased\let\synctexresume \donothing
-\aliased\let\synctexpushline\donothing
-\aliased\let\synctexpopline \donothing
+\permanent\protected\lettonothing\synctexpause
+\permanent\protected\lettonothing\synctexresume
+\permanent\protected\lettonothing\synctexpushline
+\permanent\protected\lettonothing\synctexpopline
\appendtoks\synctexpause \to\everybeforeoutput
\appendtoks\synctexresume\to\everyafteroutput
@@ -54,6 +54,14 @@
\permanent\protected\def\blocksynctexfile[#1]%
{\processcommacommand{#1}\synctexblockfilename}
-\aliased\let\continuewhenlmtxmode\relax
+\permanent\protected\lettonothing\continuewhenlmtxmode
+
+\permanent\protected\def\continuewhenmkivmode
+ {\starttext
+ \startTEXpage[\c!offset=2ex,\c!foregroundstyle=\tttf]%
+ This file needs \LuaTeX\ and \ConTeXt\ \MKIV.%
+ \stopTEXpage
+ \stoptext
+ \endinput}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/context.mkxl b/Master/texmf-dist/tex/context/base/mkxl/context.mkxl
index 88b99e7d4a4..809fbc307d3 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/context.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/context.mkxl
@@ -29,7 +29,7 @@
%D {YYYY.MM.DD HH:MM} format.
\immutable\edef\contextformat {\jobname}
-\immutable\edef\contextversion{2021.03.05 19:11}
+\immutable\edef\contextversion{2023.02.23 21:26}
%overloadmode 1 % check frozen / warning
%overloadmode 2 % check frozen / error
@@ -40,6 +40,8 @@
\immutable\chardef\contextlmtxmode\directlua{tex.print(CONTEXTLMTXMODE or 0)}\relax
+\directlua{io.output():setvbuf("line")}
+
%D For those who want to use this:
\aliased\let\fmtname \contextformat
@@ -121,7 +123,7 @@
%D This needs more checking for clashes:
%D
%D \starttyping
-%D \doifelsefileexists{l-macro-imp-codes-luametatex.lua}{\registerctxluafile{l-macro-imp-codes-luametatex}{}}{}
+% \doifelsefileexists{l-macro-imp-codes-luametatex.lua}{\registerctxluafile{l-macro-imp-codes-luametatex}{}}{}
%D \stoptyping
\loadmkxlfile{supp-dir}
@@ -133,6 +135,7 @@
\loadmkxlfile{mult-ini}
\loadmkxlfile{mult-sys}
\loadmkxlfile{mult-aux}
+% \doiffileelse{mult-aux-new.mkxl}{\loadmkxlfile{mult-aux-new}}{\loadmkxlfile{mult-aux}}
\loadmkxlfile{mult-def}
%loadmarkfile{mult-chk}
\loadmklxfile{mult-dim}
@@ -144,6 +147,7 @@
\loadmkxlfile{toks-aux}
\loadmkxlfile{attr-ini}
+\loadmkxlfile{bndr-ini}
\loadmkxlfile{core-ini}
\loadmkxlfile{core-env}
@@ -151,6 +155,8 @@
\loadmkxlfile{layo-ini}
\loadmkxlfile{node-ini}
+\loadmkxlfile{node-ext}
+\loadmkxlfile{node-syn}
% \loadmkxlfile{cldf-bas} % basics / depends on nodes
@@ -158,11 +164,10 @@
\loadmkxlfile{node-mig}
%loadmkxlfile{node-pag}
-\loadmkxlfile{driv-ini}
+\loadmkxlfile{driv-ini} % after node-ini (ext)
\loadmkxlfile{back-ini}
\loadmkxlfile{back-res}
-\loadmkxlfile{back-ext}
\loadmkxlfile{cldf-bas} % basics / depends on nodes
@@ -218,7 +223,7 @@
\loadmkxlfile{colo-grp} % optional
\loadmkxlfile{colo-ext}
-\loadmkxlfile{node-bck} % overloads anch-pgr (experimental and undocumented)
+% \loadmkxlfile{node-bck} % overloads anch-pgr (experimental and undocumented)
\loadmkxlfile{pack-cut}
@@ -304,6 +309,8 @@
\loadmkxlfile{page-lay}
\loadmklxfile{page-box}
\loadmklxfile{page-txt}
+
+\loadmkxlfile{typo-lbx}
\loadmkxlfile{page-sid}
\loadmklxfile{strc-flt}
@@ -386,6 +393,9 @@
\loadmkxlfile{typo-tal}
\loadmkxlfile{typo-par} % par builders (uses fonts)
+%loadmkxlfile{typo-lbx}
+\loadmkxlfile{typo-adj}
+\loadmkxlfile{typo-ada}
\loadmkxlfile{tabl-com}
%loadmarkfile{tabl-pln}
@@ -416,6 +426,7 @@
\loadmkxlfile{typo-wrp}
\loadmkxlfile{typo-spa}
\loadmkxlfile{typo-krn}
+\loadmkxlfile{typo-hid}
\loadmklxfile{typo-itc}
\loadmkxlfile{typo-dir}
\loadmkxlfile{typo-brk}
@@ -466,7 +477,7 @@
\loadmklxfile{anch-bck}
\loadmkxlfile{anch-tab} % overloads tabl-tbl
\loadmkxlfile{anch-bar}
-%loadmkxlfile{anch-snc} % when needed this one will be redone
+\loadmkxlfile{anch-snc}
\loadmkxlfile{math-ini} % way after font-pre !
\loadmkxlfile{math-pln}
@@ -478,14 +489,18 @@
\loadmkxlfile{math-mis}
\loadmkxlfile{math-scr}
\loadmkxlfile{math-int}
+\loadmkxlfile{math-dif}
\loadmkxlfile{math-del}
\loadmkxlfile{math-fen}
+\loadmkxlfile{math-lop}
\loadmklxfile{math-acc}
\loadmklxfile{math-rad}
+\loadmklxfile{math-dld}
\loadmkxlfile{math-inl}
\loadmkxlfile{math-dis}
%loadmkxlfile{math-lan}
\loadmkxlfile{math-toy}
+\loadmkxlfile{math-twk}
\loadmkxlfile{strc-mat}
@@ -496,6 +511,8 @@
\loadmkxlfile{phys-dim}
\loadmkxlfile{node-rul} % beware, defined \underbar so after math
+\loadmkxlfile{node-bck} % overloads anch-pgr (experimental and undocumented)
+
\loadmklxfile{font-sol} % font solutions
\loadmklxfile{strc-not}
@@ -504,6 +521,8 @@
\loadmkxlfile{strc-usr}
\loadmkxlfile{pack-com}
+\loadmkxlfile{math-com}
+
\loadmkxlfile{typo-del}
\loadmkxlfile{grph-trf}
@@ -514,15 +533,20 @@
\loadmkxlfile{grph-pat}
\loadmkxlfile{pack-box}
+\loadmkxlfile{pack-mat}
\loadmkxlfile{pack-bar}
\loadmkxlfile{page-app}
\loadmkxlfile{meta-fig}
\loadmkxlfile{page-ffl}
+\loadmkxlfile{page-blk}
\loadmkxlfile{lang-spa} % will become obsolete
+\loadmkxlfile{lang-hup}
+
\loadmkxlfile{typo-ovl} % fuzzy project (tracing) code
+\loadmkxlfile{typo-syn} % experiment
% old bibtex support: (will be m-oldbibtex.mkiv)
@@ -557,10 +581,13 @@
\loadmkxlfile{driv-shp}
+\loadmkxlfile{anch-loc} % for now here (after driver)
+
\loadmkxlfile{back-exp}
-\loadmkxlfile{back-pdf}
-\loadmkxlfile{back-mps}
-\loadmkxlfile{back-lua}
+
+\loadmkxlfile{back-imp-pdf}
+\loadmkxlfile{back-imp-mps}
+\loadmkxlfile{back-imp-lua}
\loadmkxlfile{mlib-pdf}
\loadmkxlfile{mlib-pps}
@@ -568,6 +595,8 @@
\loadmkxlfile{meta-blb}
\loadmkxlfile{grph-epd}
+\loadmkxlfile{anch-box}
+
\loadmkxlfile{typo-shp}
\loadmkxlfile{math-inc} % an experiment
@@ -603,12 +632,220 @@
\ctxlua{statistics.savefmtstatus("\jobname","\contextversion","context.mkxl","\contextbanner")}% can become automatic
\to \everydump
-% some day:
+% maybe some day (but also inhibits):
%
% \prependtoks
% \overloadmode 255
% \to \everyjob
-\overloadmode 0 % for now
+\overloadmode\zerocount % for now
\errorstopmode \dump \endinput
+
+% Some lua files are (still) shared with mkiv amd some are large and rather
+% generic. However there are some that can be improved in lmtx. At some point
+% we will definitely freeze mkiv and then use lmt files for futher development
+% of lmtx. We also no longer use the macro feature to replace 5.3 compatible
+% function calls by native 5.4 features as lmt files assume 5.4 anyway. This
+% makes format generation a little faster (not that it's that slow). It might \
+% take a while before we dealt with all of them because I'll also clean them
+% up a bit when doing.
+%
+% % luat-bas.mkxl l-macro-imp-optimize % this will go away
+
+% c:/data/develop/context/sources/attr-eff.lua
+% c:/data/develop/context/sources/attr-mkr.lua
+% c:/data/develop/context/sources/attr-neg.lua
+
+% c:/data/develop/context/sources/buff-imp-default.lua
+% c:/data/develop/context/sources/buff-imp-escaped.lua
+% c:/data/develop/context/sources/buff-imp-lua.lua
+% c:/data/develop/context/sources/buff-imp-mp.lua
+% c:/data/develop/context/sources/buff-imp-nested.lua
+% c:/data/develop/context/sources/buff-imp-parsed-xml.lua
+% c:/data/develop/context/sources/buff-imp-tex.lua
+% c:/data/develop/context/sources/buff-imp-xml.lua
+
+% c:/data/develop/context/sources/buff-par.lua
+% c:/data/develop/context/sources/buff-ver.lua
+
+% c:/data/develop/context/sources/char-cjk.lua
+% c:/data/develop/context/sources/char-def.lua
+% c:/data/develop/context/sources/char-enc.lua
+% c:/data/develop/context/sources/char-ent.lua
+% c:/data/develop/context/sources/char-fio.lua
+% c:/data/develop/context/sources/char-ini.lua
+% c:/data/develop/context/sources/char-map.lua
+% c:/data/develop/context/sources/char-scr.lua
+% c:/data/develop/context/sources/char-utf.lua
+
+% c:/data/develop/context/sources/chem-ini.lua
+% c:/data/develop/context/sources/chem-str.lua
+
+% c:/data/develop/context/sources/cldf-com.lua
+% c:/data/develop/context/sources/cldf-ini.lua
+% c:/data/develop/context/sources/cldf-prs.lua % use in chemistry
+% c:/data/develop/context/sources/cldf-scn.lua
+% c:/data/develop/context/sources/cldf-stp.lua
+% c:/data/develop/context/sources/cldf-ver.lua
+
+% c:/data/develop/context/sources/colo-icc.lua
+% c:/data/develop/context/sources/colo-ini.lua
+
+% c:/data/develop/context/sources/core-con.lua
+% c:/data/develop/context/sources/core-ctx.lua
+% c:/data/develop/context/sources/core-dat.lua
+% c:/data/develop/context/sources/core-two.lua
+
+% data...
+
+% c:/data/develop/context/sources/file-ini.lua
+% c:/data/develop/context/sources/file-lib.lua
+% c:/data/develop/context/sources/file-res.lua
+% c:/data/develop/context/sources/file-syn.lua
+
+% c:/data/develop/context/sources/font-afk.lua
+% c:/data/develop/context/sources/font-agl.lua
+% c:/data/develop/context/sources/font-aux.lua
+% c:/data/develop/context/sources/font-cid.lua
+% c:/data/develop/context/sources/font-enc.lua
+% c:/data/develop/context/sources/font-log.lua
+% c:/data/develop/context/sources/font-lua.lua % not realy used, more a demo
+% c:/data/develop/context/sources/font-nod.lua % some trace helpers
+% c:/data/develop/context/sources/font-osd.lua
+% c:/data/develop/context/sources/font-otc.lua
+% c:/data/develop/context/sources/font-oth.lua
+% c:/data/develop/context/sources/font-oti.lua
+% c:/data/develop/context/sources/font-oto.lua
+% c:/data/develop/context/sources/font-otr.lua
+% c:/data/develop/context/sources/font-ott.lua % just some tables
+% c:/data/develop/context/sources/font-oup.lua % packing and unpacking
+% c:/data/develop/context/sources/font-pat.lua
+% c:/data/develop/context/sources/font-prv.lua
+% c:/data/develop/context/sources/font-sel.lua
+% c:/data/develop/context/sources/font-shp.lua % shapes, for now shared
+% c:/data/develop/context/sources/font-sol.lua
+% c:/data/develop/context/sources/font-syn.lua % identification code
+% c:/data/develop/context/sources/font-trt.lua
+% c:/data/develop/context/sources/font-web.lua % proof of concept, never used
+
+% c:/data/develop/context/sources/font-imp-combining.lua % shared, like typescript
+% c:/data/develop/context/sources/font-imp-dimensions.lua % idem
+% c:/data/develop/context/sources/font-imp-italics.lua % idem
+% c:/data/develop/context/sources/font-imp-notused.lua % idem
+% c:/data/develop/context/sources/font-imp-properties.lua % idem
+% c:/data/develop/context/sources/font-imp-reorder.lua % idem
+% c:/data/develop/context/sources/font-imp-spacekerns.lua % idem
+% c:/data/develop/context/sources/font-imp-tex.lua % idem
+% c:/data/develop/context/sources/font-imp-tweaks.lua % idem
+% c:/data/develop/context/sources/font-imp-unicode.lua % idem
+
+% c:/data/develop/context/sources/good-ctx.lua
+% c:/data/develop/context/sources/good-ini.lua
+
+% c:/data/develop/context/sources/grph-bmp.lua
+% c:/data/develop/context/sources/grph-chk.lua
+% c:/data/develop/context/sources/grph-con.lua
+% c:/data/develop/context/sources/grph-fil.lua
+% c:/data/develop/context/sources/grph-img.lua
+% c:/data/develop/context/sources/grph-pat.lua
+% c:/data/develop/context/sources/grph-raw.lua
+% c:/data/develop/context/sources/grph-u3d.lua
+
+% c:/data/develop/context/sources/java-ini.lua
+
+% c:/data/develop/context/sources/lang-cnt.lua
+% c:/data/develop/context/sources/lang-def.lua % these are data files
+% c:/data/develop/context/sources/lang-txt.lua % these are data files
+% c:/data/develop/context/sources/lang-wrd.lua
+
+% c:/data/develop/context/sources/luat-exe.lua
+% c:/data/develop/context/sources/luat-iop.lua
+% c:/data/develop/context/sources/luat-mac.lua % will become lmt
+
+% c:/data/develop/context/sources/lxml-aux.lua
+% c:/data/develop/context/sources/lxml-css.lua
+% c:/data/develop/context/sources/lxml-dir.lua
+% c:/data/develop/context/sources/lxml-ent.lua
+% c:/data/develop/context/sources/lxml-ini.lua
+% c:/data/develop/context/sources/lxml-lpt.lua
+% c:/data/develop/context/sources/lxml-mis.lua
+% c:/data/develop/context/sources/lxml-sor.lua
+% c:/data/develop/context/sources/lxml-tab.lua
+% c:/data/develop/context/sources/lxml-tex.lua
+% c:/data/develop/context/sources/lxml-xml.lua
+
+% c:/data/develop/context/sources/meta-blb.lua
+% c:/data/develop/context/sources/meta-fun.lua
+% c:/data/develop/context/sources/meta-lua.lua
+% c:/data/develop/context/sources/meta-nod.lua
+% c:/data/develop/context/sources/meta-pdf.lua
+% c:/data/develop/context/sources/meta-tex.lua
+
+% c:/data/develop/context/sources/mult-aux.lua
+% c:/data/develop/context/sources/mult-fmt.lua
+
+% c:/data/develop/context/sources/page-cst.lua
+% c:/data/develop/context/sources/page-flt.lua
+% c:/data/develop/context/sources/page-inj.lua
+% c:/data/develop/context/sources/page-ins.lua
+% c:/data/develop/context/sources/page-mix.lua
+% c:/data/develop/context/sources/page-pst.lua
+
+% c:/data/develop/context/sources/phys-dim.lua
+
+% c:/data/develop/context/sources/publ-aut.lua % shared
+% c:/data/develop/context/sources/publ-dat.lua
+% c:/data/develop/context/sources/publ-fnd.lua
+% c:/data/develop/context/sources/publ-inc.lua
+% c:/data/develop/context/sources/publ-ini.lua
+% c:/data/develop/context/sources/publ-jrn.lua
+% c:/data/develop/context/sources/publ-oth.lua
+% c:/data/develop/context/sources/publ-reg.lua
+% c:/data/develop/context/sources/publ-sor.lua
+% c:/data/develop/context/sources/publ-tra.lua
+% c:/data/develop/context/sources/publ-usr.lua
+
+% c:/data/develop/context/sources/scrn-but.lua
+% c:/data/develop/context/sources/scrn-fld.lua
+% c:/data/develop/context/sources/scrn-hlp.lua
+
+% c:/data/develop/context/sources/scrp-cjk.lua
+% c:/data/develop/context/sources/scrp-eth.lua
+% c:/data/develop/context/sources/scrp-tha.lua
+% c:/data/develop/context/sources/scrp-tib.lua
+
+% c:/data/develop/context/sources/sort-ini.lua
+% c:/data/develop/context/sources/sort-lan.lua
+
+% c:/data/develop/context/sources/strc-bkm.lua
+% c:/data/develop/context/sources/strc-blk.lua
+% c:/data/develop/context/sources/strc-con.lua
+% c:/data/develop/context/sources/strc-doc.lua
+% c:/data/develop/context/sources/strc-flt.lua
+% c:/data/develop/context/sources/strc-ini.lua
+% c:/data/develop/context/sources/strc-itm.lua
+% c:/data/develop/context/sources/strc-lev.lua
+% c:/data/develop/context/sources/strc-mat.lua
+% c:/data/develop/context/sources/strc-num.lua
+% c:/data/develop/context/sources/strc-pag.lua
+% c:/data/develop/context/sources/strc-syn.lua
+% c:/data/develop/context/sources/strc-usr.lua
+
+% c:/data/develop/context/sources/syst-cmp.lua
+% c:/data/develop/context/sources/syst-con.lua
+
+% c:/data/develop/context/sources/trac-ctx.lua
+% c:/data/develop/context/sources/trac-lmx.lua
+% c:/data/develop/context/sources/trac-par.lua
+% c:/data/develop/context/sources/trac-tex.lua
+
+% c:/data/develop/context/sources/typo-cln.lua -- wrong name for what it does
+% c:/data/develop/context/sources/typo-dha.lua
+% c:/data/develop/context/sources/typo-fkr.lua
+% c:/data/develop/context/sources/typo-inj.lua
+% c:/data/develop/context/sources/typo-man.lua
+% c:/data/develop/context/sources/typo-prc.lua
+% c:/data/develop/context/sources/typo-rep.lua
+
+% c:/data/develop/context/sources/unic-ini.lua
diff --git a/Master/texmf-dist/tex/context/base/mkxl/core-con.mkxl b/Master/texmf-dist/tex/context/base/mkxl/core-con.mkxl
index df505cfee5f..f9aa1a69d18 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/core-con.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/core-con.mkxl
@@ -19,8 +19,8 @@
\unprotect
-\ifdefined\currentlanguage \else \let\currentlanguage\empty \fi
-\ifdefined\labeltext \else \let\labeltext \firstofoneargument \fi
+\ifdefined\currentlanguage \else \lettonothing\currentlanguage \fi
+\ifdefined\labeltext \else \let\labeltext\firstofoneargument \fi
%D This module deals with all kind of conversions from numbers and dates. I
%D considered splitting this module in a support one and a core one, but to keep
@@ -86,9 +86,14 @@
\permanent\def\Alphabeticnumerals#1{\clf_Alphabetic\numexpr#1\relax{}}
\permanent\def\thainumerals #1{\clf_alphabetic\numexpr#1\relax{thai}}
-\permanent\def\devanagarinumerals#1{\clf_alphabetic\numexpr#1\relax{devanagari}}
-\permanent\def\gurmurkhinumerals #1{\clf_alphabetic\numexpr#1\relax{gurmurkhi}}
-\permanent\def\gujaratinumerals #1{\clf_alphabetic\numexpr#1\relax{gujarati}}
+\permanent\def\devanagarinumerals#1{\clf_decimals\numexpr#1\relax{devanagari}}
+\permanent\def\malayalamnumerals #1{\clf_decimals\numexpr#1\relax{malayalam}}
+\permanent\def\tamilnumerals #1{\clf_decimals\numexpr#1\relax{tamil}}
+\permanent\def\kannadanumerals #1{\clf_decimals\numexpr#1\relax{kannada}}
+\permanent\def\telugunumerals #1{\clf_decimals\numexpr#1\relax{telugu}}
+\permanent\def\bengalinumerals #1{\clf_decimals\numexpr#1\relax{bengali}}
+\permanent\def\gujaratinumerals #1{\clf_decimals\numexpr#1\relax{gujarati}}
+\permanent\def\gurmurkhinumerals #1{\clf_decimals\numexpr#1\relax{gurmurkhi}}
\permanent\def\tibetannumerals #1{\clf_alphabetic\numexpr#1\relax{tibetan}}
\permanent\def\greeknumerals #1{\clf_alphabetic\numexpr#1\relax{greek}}
\permanent\def\Greeknumerals #1{\clf_Alphabetic\numexpr#1\relax{greek}}
@@ -180,12 +185,7 @@
%D
%D The last part of this module is dedicated to converting dates. Because we want to
%D use as meaningful commands as possible, and because \TEX\ already uses up some of
-%D those, we save the original meanings.
-
-% \savenormalmeaning\time
-% \savenormalmeaning\year
-% \savenormalmeaning\month
-% \savenormalmeaning\day
+%D those, we save the original meanings. The above are defined already.
%D \macros
%D {month,MONTH}
@@ -418,8 +418,8 @@
\installcorenamespace{date}
-\permanent\tolerant\protected\def\definedate[#1]#*[#2]%
- {\ifarguments\else\setvalue{\??date#1}{#2}\fi}
+\permanent\tolerant\protected\def\definedate[#1]#,[#2]%
+ {\ifarguments\else\defcsname\??date#1\endcsname{#2}\fi}
\def\syst_converters_check_date_specification#1%
{\ifcsname\??date#1\endcsname
@@ -452,7 +452,7 @@
\iftok{\directdummyparameter\c!m}\emptytoks\else\normalmonth\number\directdummyparameter\c!m\relax\fi
\iftok{\directdummyparameter\c!y}\emptytoks\else\normalyear \number\directdummyparameter\c!y\relax\fi}}
-\permanent\tolerant\protected\def\date[#1]#*[#2]% sets the date !
+\permanent\tolerant\protected\def\date[#1]#,[#2]% sets the date !
{\dontleavehmode
\begingroup
\setdate[#1]% sets the date !
@@ -552,7 +552,7 @@
\installcorenamespace {conversionwords}
%D It might be better to move more to \LUA\ as we also need conversion there and
-%D doublicating logic doesn't make things cleaner. It means that all conversions
+%D duplicating logic doesn't make things cleaner. It means that all conversions
%D will get a language argument too. However, we permit definitions at the \TEX\ end
%D so we have to provide some hybrid method.
@@ -568,8 +568,8 @@
\def\syst_converters_define_conversion_indeed#1#2#3%
{\doifelseinstring{,}{\detokenize{#3}}
{\clf_defineconversion{#2}{\detokenize{#3}}% a set e.g. of symbols
- \setgvalue{\??conversion#1}{\syst_converters_checked_conversion{#2}}}
- {\setgvalue{\??conversion#1}{#3}}}
+ \gdefcsname\??conversion#1\endcsname{\syst_converters_checked_conversion{#2}}}
+ {\gdefcsname\??conversion#1\endcsname{#3}}}
\def\syst_converters_checked_conversion#1#2%
{\clf_checkedconversion{#1}\numexpr#2\relax}
@@ -588,9 +588,9 @@
\permanent\protected\def\uconvertnumber % unexpandable
{\convertnumber}
-\setvalue{\??conversionarguments1}#1{\csname\??conversion\currentlanguage#1\endcsname}
-\setvalue{\??conversionarguments2}#1{\csname\??conversion #1\endcsname}
-\letvalue{\??conversionarguments3}\syst_converters_checked_conversion
+\defcsname\??conversionarguments1\endcsname#1{\csname\??conversion\currentlanguage#1\endcsname}
+\defcsname\??conversionarguments2\endcsname#1{\csname\??conversion #1\endcsname}
+\letcsname\??conversionarguments3\endcsname \syst_converters_checked_conversion
% we can also add a \ctxcommand{doifelseconversion("#1","\currentlanguage")} to check
% if we have definitions that are not matched at the lua end .. eventually we might do
@@ -617,11 +617,11 @@
%D Handy.
-\setvalue{\??conversionwords\v!one }{1}
-\setvalue{\??conversionwords\v!two }{2}
-\setvalue{\??conversionwords\v!three}{3}
-\setvalue{\??conversionwords\v!four }{4}
-\setvalue{\??conversionwords\v!five }{5}
+\defcsname\??conversionwords\v!one \endcsname{1}
+\defcsname\??conversionwords\v!two \endcsname{2}
+\defcsname\??conversionwords\v!three\endcsname{3}
+\defcsname\??conversionwords\v!four \endcsname{4}
+\defcsname\??conversionwords\v!five \endcsname{5}
%permanent\def\wordtonumber#1#2{\ifcsname\??conversionwords#1\endcsname\csname\??conversionwords#1\endcsname\else#2\fi}
\permanent\def\wordtonumber#1#2{\ifcsname\??conversionwords#1\endcsname\lastnamedcs\else#2\fi}
@@ -729,6 +729,11 @@
\defineconversion [thainumerals] [\thainumerals]
\defineconversion [devanagarinumerals] [\devanagarinumerals]
+\defineconversion [malayalamnumerals] [\malayalamnumerals]
+\defineconversion [tamilnumerals] [\tamilnumerals]
+\defineconversion [kannadanumerals] [\kannadanumerals]
+\defineconversion [telugunumerals] [\telugunumerals]
+\defineconversion [bengalinumerals] [\bengalinumerals]
\defineconversion [gurmurkhinumerals] [\gurmurkhinumerals]
\defineconversion [gujaratinumerals] [\gujaratinumerals]
\defineconversion [tibetannumerals] [\tibetannumerals]
@@ -968,9 +973,9 @@
%D Taken from x-asciimath (see digits-001.tex for an example):
-\mutable\let\spaceddigitsmethod \empty % alternative methods : 1 default, 2 and 3 only when > 4
-\mutable\let\spaceddigitssymbol \empty % extra splitter symbol : {,}
-\mutable\let\spaceddigitsseparator\empty % separator symbol : {\Uchar{"2008}}
+\mutable\lettonothing\spaceddigitsmethod % alternative methods : 1 default, 2 and 3 only when > 4
+\mutable\lettonothing\spaceddigitssymbol % extra splitter symbol : {,}
+\mutable\lettonothing\spaceddigitsseparator % separator symbol : {\Uchar{"2008}}
\permanent\protected\def\spaceddigits#1%
{\clf_spaceddigits
diff --git a/Master/texmf-dist/tex/context/base/mkxl/core-dat.mkxl b/Master/texmf-dist/tex/context/base/mkxl/core-dat.mkxl
index 93d0bbb7ae8..ab40d874c1a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/core-dat.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/core-dat.mkxl
@@ -30,6 +30,16 @@
%D \stoplines
%D \stoptyping
+%D \starttyping
+%D \definedataset[nofpages]
+%D
+%D \dorecurse{16}{whatever\page}
+%D
+%D \setdataset [nofpages] [pagetotal=\lastpagenumber]
+%D
+%D \testfeatureonce{100}{test \datasetvariable[todo-datasets]{nofpages}{1}{pagetotal} }
+%D \stoptyping
+
\unprotect
\registerctxluafile{core-dat}{}
@@ -58,8 +68,15 @@
\fi
\endgroup}
-\permanent\def\datasetvariable#1#2#3%
- {\clf_datasetvariable{#1}{#2}{#3}}
+% \permanent\def\datasetvariable#1#2#3%
+% {\clf_datasetvariable{#1}{#2}{#3}}
+
+\permanent\tolerant\def\datasetvariable[#1]%
+ {\ifparameter#1\or
+ \expandafter\clf_datasetvariablefromjob{#1\expandafter}%
+ \else
+ \expandafter\clf_datasetvariable
+ \fi}
\installcorenamespace{pagestate}
\installcorenamespace{pagestatecounter}
@@ -67,7 +84,7 @@
\installcommandhandler \??pagestate {pagestate} \??pagestate
\def\syst_pagestates_allocate
- {\expandafter\newcount\csname\??pagestatecounter\currentpagestate\endcsname}
+ {\expandafter\newinteger\csname\??pagestatecounter\currentpagestate\endcsname}
\appendtoks
\syst_pagestates_allocate
@@ -81,7 +98,7 @@
\edef\currentpagestate{#1}%
\ifcsname\??pagestatecounter\currentpagestate\endcsname
\scratchcounter\lastnamedcs
- \advance\scratchcounter\plusone
+ \advanceby\scratchcounter\plusone
\else
\scratchcounter\plusone
\syst_pagestates_allocate
diff --git a/Master/texmf-dist/tex/context/base/mkxl/core-def.mkxl b/Master/texmf-dist/tex/context/base/mkxl/core-def.mkxl
index 96570bc366d..839e9b2602e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/core-def.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/core-def.mkxl
@@ -112,6 +112,7 @@
\syst_files_load
% for the moment here (before doc env)
\setupoutput[pdf]%
+% \setupoutput[lua]%
%
\clf_setdocumentcommandline
\clf_setdocumentctxfile
diff --git a/Master/texmf-dist/tex/context/base/mkxl/core-env.lmt b/Master/texmf-dist/tex/context/base/mkxl/core-env.lmt
index 388e96787a0..018a017679b 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/core-env.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/core-env.lmt
@@ -18,8 +18,7 @@ local P, C, S, lpegmatch, patterns = lpeg.P, lpeg.C, lpeg.S, lpeg.match, lpeg.pa
local context = context
local ctxcore = context.core
-local texgetcount = tex.getcount
-local texgetintegervalue = token.get_integer -- todo: in tex namespace
+local texgetintegervalue = token.getinteger -- todo
local allocate = utilities.storage.allocate
local setmetatableindex = table.setmetatableindex
@@ -119,12 +118,10 @@ setmetatablenewindex(texifs, function(t,k) end)
-- kind of variable ... maybe we no longer have to cache anyway (in lmtx)
setmetatableindex(texconstants, function(t,k)
- -- return cache[k].command == countcode and texgetcount(k) or 0
return cache[k].command == integercode and texgetintegervalue(k) or 0
end)
setmetatableindex(texconditionals, function(t,k) -- 0 == true
- -- return cache[k].command == countcode and texgetcount(k) == 0
return cache[k].command == integercode and texgetintegervalue(k) == 0
end)
@@ -135,30 +132,30 @@ end)
tex.isdefined = isdefined
-function tex.isdimen(name)
- local hit = cache[name]
- return hit.command == dimencode and hit.index or true
-end
-
-function tex.iscount(name)
- local hit = cache[name]
- return hit.command == countcode and hit.index or true
-end
-
-function tex.istoken(name)
- local hit = cache[name]
- return hit.command == tokencode and hit.index or true
-end
-
-function tex.isskip(name)
- local hit = cache[name]
- return hit.command == skipcode and hit.index or true
-end
-
-function tex.ismuskip(name)
- local hit = cache[name]
- return hit.command == muskipcode and hit.index or true
-end
+-- function tex.isdimen(name)
+-- local hit = cache[name]
+-- return hit.command == dimencode and hit.index or true
+-- end
+--
+-- function tex.iscount(name)
+-- local hit = cache[name]
+-- return hit.command == countcode and hit.index or true
+-- end
+--
+-- function tex.istoken(name)
+-- local hit = cache[name]
+-- return hit.command == tokencode and hit.index or true
+-- end
+--
+-- function tex.isskip(name)
+-- local hit = cache[name]
+-- return hit.command == skipcode and hit.index or true
+-- end
+--
+-- function tex.ismuskip(name)
+-- local hit = cache[name]
+-- return hit.command == muskipcode and hit.index or true
+-- end
function tex.type(name)
return types[cache[name].command] or "macro"
diff --git a/Master/texmf-dist/tex/context/base/mkxl/core-env.mkxl b/Master/texmf-dist/tex/context/base/mkxl/core-env.mkxl
index 62e4106c574..0777d282354 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/core-env.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/core-env.mkxl
@@ -308,43 +308,12 @@
\installmacrostack\c_syst_modes_set_done
-% \permanent\protected\def\startmodeset
-% {\push_macro_c_syst_modes_set_done
-% \setfalse\c_syst_modes_set_done
-% \doifelsenextoptionalcs\syst_modes_set_start\syst_modes_set_quit}
-%
-% \aliased\let\stopmodeset\relax
-%
-% \def\syst_modes_set_start[#1]%
-% {\edef\m_mode_case{#1}%
-% \unless\ifx\m_mode_case\s!default
-% \expandafter\syst_modes_set_check
-% \orelse\ifconditional\c_syst_modes_set_done
-% \expandafter\syst_modes_set_quit
-% \else
-% \expandafter\syst_modes_set_yes
-% \fi}
-%
-% \def\syst_modes_set_check
-% {\syst_modes_check_lr\syst_modes_set_yes\syst_modes_set_nop\m_mode_case}
-%
-% \def\syst_modes_set_yes#1%
-% {\settrue\c_syst_modes_set_done
-% #1%
-% \doifelsenextoptionalcs\syst_modes_set_start\syst_modes_set_quit}
-%
-% \def\syst_modes_set_nop#1%
-% {\doifelsenextoptionalcs\syst_modes_set_start\syst_modes_set_quit}
-%
-% \def\syst_modes_set_quit#-\stopmodeset
-% {\pop_macro_c_syst_modes_set_done}
-
\permanent\protected\def\startmodeset
{\push_macro_c_syst_modes_set_done
\setfalse\c_syst_modes_set_done
\syst_modes_set_start}
-\aliased\let\stopmodeset\relax
+\permanent\protected\lettonothing\stopmodeset
\tolerant\def\syst_modes_set_start#.[#1]% skip spaces and pars
{\edef\m_mode_case{#1}%
@@ -372,9 +341,10 @@
\def\syst_modes_set_quit#-\stopmodeset
{\pop_macro_c_syst_modes_set_done}
-%D Lets now set a mode:
+%D Lets now set a few modes:
-\enablemode[mkiv] \newsystemmode{mkiv} \setsystemmode{mkiv}
+\enablemode[mkiv] \newsystemmode{mkiv} \setsystemmode{mkiv} % also mkxl
+\enablemode[lmtx] \newsystemmode{lmtx} \setsystemmode{lmtx}
%D Setups:
@@ -393,7 +363,7 @@
\permanent\protected\tolerant\def\setups[#1]#;#2{\processcommacommand[#1#2]\syst_setups} % {..} or [..]
\permanent\protected\tolerant\def\setup [#1]#;#2{\syst_setups{#1#2}} % {..} or [..]
-\letvalue{\??setup:\??empty}\gobbleoneargument
+\letcsname\??setup:\??empty\endcsname\gobbleoneargument
\permanent\def\syst_setups#1% the grid option will be extended to other main modes
{\csname\??setup
@@ -410,10 +380,10 @@
\permanent\def\fastsetupwithargument #1{\csname\??setup:#1\endcsname} % swapped per 2015-08-30
\permanent\def\fastsetupwithargumentswapped#1#2{\csname\??setup:#2\endcsname{#1}}% swapped per 2015-09-05
-% the next one is meant for \c!setups situations, hence the check for
-% a shortcut
+%D The next one is meant for \c!setups situations, hence the check for a
+%D shortcut.
-\let\m_syst_setups_asked\empty
+\lettonothing\m_syst_setups_asked
\permanent\protected\def\doprocesslocalsetups#1% sort of public, fast local variant
{\edef\m_syst_setups_asked{#1}%
@@ -438,11 +408,20 @@
\permanent\def\autosetups#1{\clf_autosetups{#1}} % todo: public implementor
-\permanent\edef\setupwithargument#1% saves a few expansions
- {\noexpand\csname\??setup:\noexpand\ifcsname\??setup:#1\endcsname#1\noexpand\else\??empty\noexpand\fi\endcsname}
+%% \permanent\edef\setupwithargument#1% saves a few expansions and is faster
+%% {\noexpand\csname\??setup:\noexpand\ifcsname\??setup:#1\endcsname#1\noexpand\else\??empty\noexpand\fi\endcsname}
+%%
+%% \permanent\edef\setupwithargumentswapped#1#2% saves a few expansions (can be \let)
+%% {\noexpand\csname\??setup:\noexpand\ifcsname\??setup:#2\endcsname#2\noexpand\else\??empty\noexpand\fi\endcsname{#1}}
+
+%D We can gain a bit more but as usual it's not noticeable at all in production runs. We use
+%D this one a lot in the \XML\ code.
+
+% \permanent\def\setupwithargument #1{\futurecsname\gobbleoneargument\??setup:#1\endcsname}
+% \permanent\def\setupwithargumentswapped #1#2{\futurecsname\gobbleoneargument\??setup:#2\endcsname{#1}}
-\permanent\edef\setupwithargumentswapped#1#2% saves a few expansions (can be \let)
- {\noexpand\csname\??setup:\noexpand\ifcsname\??setup:#2\endcsname#2\noexpand\else\??empty\noexpand\fi\endcsname{#1}}
+\permanent\edef\setupwithargument #1{\noexpand\futurecsname\noexpand\gobbleoneargument\??setup:#1\endcsname}
+\permanent\edef\setupwithargumentswapped#1#2{\noexpand\futurecsname\noexpand\gobbleoneargument\??setup:#2\endcsname{#1}}
\aliased\let\directsetup\syst_setups
\aliased\let\texsetup \syst_setups % nicer than \directsetup and more en par with xmlsetup and luasetup
@@ -538,17 +517,16 @@
\to \t_syst_setups_xml
\newtoks\t_syst_setups_lua \appendtoks
- \obeylualines
\obeyluatokens
\to \t_syst_setups_lua
% Is doglobal still relevant? Maybe always global? Or never? Anyway, it will become obsolete.
-\permanent\protected\def\startluasetups {\begingroup\doifelsenextoptionalcs\syst_setups_start_lua_yes\syst_setups_start_lua_nop} \aliased\let\stopluasetups \relax
-\permanent\protected\def\startxmlsetups {\begingroup\doifelsenextoptionalcs\syst_setups_start_xml_yes\syst_setups_start_xml_nop} \aliased\let\stopxmlsetups \relax
-\permanent\protected\def\startrawsetups {\begingroup\doifelsenextoptionalcs\syst_setups_start_raw_yes\syst_setups_start_raw_nop} \aliased\let\stoprawsetups \relax
-\permanent\protected\def\startlocalsetups{\begingroup\doifelsenextoptionalcs\syst_setups_start_loc_yes\syst_setups_start_loc_nop} \aliased\let\stoplocalsetups\relax
-\permanent\protected\def\startsetups {\begingroup\doifelsenextoptionalcs\syst_setups_start_tex_yes\syst_setups_start_tex_nop} \aliased\let\stopsetups \relax
+\permanent\protected\def\startluasetups {\begingroup\doifelsenextoptionalcs\syst_setups_start_lua_yes\syst_setups_start_lua_nop} \permanent\protected\lettonothing\stopluasetups
+\permanent\protected\def\startxmlsetups {\begingroup\doifelsenextoptionalcs\syst_setups_start_xml_yes\syst_setups_start_xml_nop} \permanent\protected\lettonothing\stopxmlsetups
+\permanent\protected\def\startrawsetups {\begingroup\doifelsenextoptionalcs\syst_setups_start_raw_yes\syst_setups_start_raw_nop} \permanent\protected\lettonothing\stoprawsetups
+\permanent\protected\def\startlocalsetups{\begingroup\doifelsenextoptionalcs\syst_setups_start_loc_yes\syst_setups_start_loc_nop} \permanent\protected\lettonothing\stoplocalsetups
+\permanent\protected\def\startsetups {\begingroup\doifelsenextoptionalcs\syst_setups_start_tex_yes\syst_setups_start_tex_nop} \permanent\protected\lettonothing\stopsetups
\def\syst_setups_start_lua_two#1#2#+\stopluasetups {\endgroup\dodoglobal\instance\defcsname\??setup#1:#2\endcsname##1{#3}}
\def\syst_setups_start_xml_two#1#2#+\stopxmlsetups {\endgroup\dodoglobal\instance\defcsname\??setup#1:#2\endcsname##1{#3}}
@@ -611,11 +589,11 @@
\permanent\def\systemsetups#1{\syst_setups{\systemsetupsprefix#1}}
-\permanent\protected\def\resetsetups[#1]% see x-fo for usage
- {\ifcsname\??setup\ifgridsnapping\v!grid\fi:#1\endcsname
- \dodoglobal\undefinevalue{\??setup\ifgridsnapping\v!grid\fi:#1}%
+\permanent\tolerant\protected\def\resetsetups[#1]#;#2%
+ {\ifcsname\??setup\ifgridsnapping\v!grid\fi:#1#2\endcsname
+ \dodoglobal\undefinevalue{\??setup\ifgridsnapping\v!grid\fi:#1#2}%
\else
- \dodoglobal\undefinevalue{\??setup:#1}%
+ \dodoglobal\undefinevalue{\??setup:#1#2}%
\fi}
\permanent\tolerant\protected\def\copysetups[#1]#*[#2]%
@@ -645,7 +623,7 @@
\permanent\protected\def\setgvariables{\syst_variables_set[\getrawgparameters]}
\permanent\protected\def\setxvariables{\syst_variables_set[\getrawxparameters]}
-\mutable\let\currentvariableclass\empty
+\mutable\lettonothing\currentvariableclass
\tolerant\def\syst_variables_set[#1]#*[#2]#*[#3]% tricky, test on s-pre-60
{\doifelse{#2}\currentvariableclass
@@ -665,14 +643,12 @@
\permanent \def\getvariable #1#2{\begincsname\??variables#1:#2\endcsname}
\permanent\protected\def\showvariable#1#2{\showvalue{\begincsname\??variables#1:#2\endcsname}}
-\let\currentvariableclass\empty
-
%D \macros
%D {checkvariables}
%D
%D I'll probably forget that this on exists.
-\let\m_syst_variables_temp\empty
+\lettonothing\m_syst_variables_temp
\permanent\tolerant\def\checkvariables[#1]#*[#2]%
{\dogetparameters\syst_variables_check_value[#1][#2]}
@@ -718,7 +694,7 @@
%D A few more (we could use a public test variable so that we only need to expand
%D once, assuming expandable variables):
-\letvalue{\??variables:}\empty
+\letcsname\??variables:\endcsname\empty
\permanent\protected\def\doifelseemptyvariable#1#2%
{\edef\m_syst_string_one{\begincsname\??variables#1:#2\endcsname}%
@@ -787,13 +763,6 @@
\permanent\tolerant\protected\def\defineselector[#1]#*[#2]{\getparameters[\??selector#1][\c!max=\plusone,\c!n=\plusone,#2]}
\permanent\tolerant\protected\def\setupselector [#1]#*[#2]{\getparameters[\??selector#1][#2]}
-% \def\directselect#1% expandable
-% {\filterfromnext % maybe add an \expanded
-% {\csname\??selector\ifcsname\??selector#1\c!max\endcsname#1\fi\c!max\endcsname}%
-% {\csname\??selector\ifcsname\??selector#1\c!n \endcsname#1\fi\c!n \endcsname}}
-%
-% this is more efficient when the arguments are used a few times (or passed along):
-
\permanent\def\directselect#1% expandable
{\expandafter\filterfromnext
\csname\??selector\ifcsname\??selector#1\c!max\endcsname#1\fi\c!max\expandafter\endcsname
diff --git a/Master/texmf-dist/tex/context/base/mkxl/core-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/core-ini.mkxl
index de7c645b425..a0fd8af1068 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/core-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/core-ini.mkxl
@@ -75,7 +75,8 @@
\to \everysimplifycommands
\appendtoks
- \everypar\emptytoks % pretty important
+ \everypar \emptytoks % pretty important
+ \everybeforepar\emptytoks % pretty important
\to \everyforgetall
%D Page building:
@@ -175,8 +176,8 @@
\newconstant\pageduplexmode % 0 single 1 double 2 mix
\newconstant\pagebodymode % 0 not 1 normal pagebody 2 spread
-\newcount\nofcolumns \nofcolumns \plusone
-\newcount\nofmulticolumns \nofmulticolumns\plusone
+\newinteger\nofcolumns \nofcolumns \plusone
+\newinteger\nofmulticolumns \nofmulticolumns\plusone
%D \macros
%D {ifproductionrun}
@@ -219,6 +220,7 @@
\let\setlayoutcomponentattribute \gobbleoneargument
\let\resetlayoutcomponentattribute\relax
-\let\layoutcomponentboxattribute \empty
+
+\lettonothing\layoutcomponentboxattribute
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/core-sys.lmt b/Master/texmf-dist/tex/context/base/mkxl/core-sys.lmt
index 0d471133d3f..8615e9f05a7 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/core-sys.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/core-sys.lmt
@@ -19,23 +19,32 @@ function environment.initializefilenames()
local arguments = environment.arguments
- local jobname = arguments.jobname or tex.jobname
- local fulljobname = arguments.fulljobname or jobname
- local inputfilename = arguments.input or fulljobname
- local outputfilename = arguments.result or removesuffix(jobname)
+ local jobname = arguments.jobname
+ local fulljobname = arguments.fulljobname
+ local inputfilename = arguments.input
+
+ if not fulljobname then
+ fulljobname = inputfilename or tex.jobname
+ end
+ if not inputfilename then
+ inputfilename = fulljobname
+ end
+ if not jobname then
+ jobname = removesuffix(fulljobname)
+ end
- local inputfilename = suffixonly(inputfilename) == "tex" and removesuffix(inputfilename) or inputfilename or ""
+ local inputfilebase = basename(inputfilename)
+ local outputfilename = arguments.result or removesuffix(fulljobname)
+
+-- local inputfilename = suffixonly(inputfilename) == "tex" and removesuffix(inputfilename) or inputfilename or ""
local filename = fulljobname
local suffix = suffixonly(filename)
local filename = ctxrunner.resolve(filename) -- in case we're prepped
- local jobfilename = jobname or inputfilename or tex.jobname or ""
- local inputfilename = inputfilename or ""
-
+ local jobfilename = jobname -- alias
local jobfilebase = basename(jobfilename)
- local inputfilebase = basename(inputfilename)
-- jobfilename = gsub(jobfilename, "^./","")
-- inputfilename = gsub(inputfilename,"^./","")
diff --git a/Master/texmf-dist/tex/context/base/mkxl/core-sys.mkxl b/Master/texmf-dist/tex/context/base/mkxl/core-sys.mkxl
index c5093588eb4..393d85d771f 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/core-sys.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/core-sys.mkxl
@@ -90,7 +90,7 @@
\permanent\protected\def\setjobfullname#1% #1 = default if not given
{\doifelsenothing\jobfilename
- {\let\jobfullname\empty}
+ {\lettonothing\jobfullname}
{\doif\jobfilesuffix\c!tex{\edef\jobfullname{\jobfilename.#1}}}}
%D There are a couple of system states avaiable:
@@ -129,9 +129,9 @@
\scratchcounter\normaltime
\processaction
[#1]
- [ \v!small=>\divide\scratchcounter 15, % 900,
- \v!medium=>\divide\scratchcounter 30, % 1800,
- \v!big=>\divide\scratchcounter 60, % 3600,
+ [ \v!small=>\divideby\scratchcounter 15, % 900,
+ \v!medium=>\divideby\scratchcounter 30, % 1800,
+ \v!big=>\divideby\scratchcounter 60, % 3600,
\v!normal=>\scratchcounter\newrandomseed,
\s!default=>\scratchcounter\newrandomseed,
\s!unknown=>\scratchcounter#1]%
@@ -233,16 +233,32 @@
%
% \ignorestartstop[bagger]
+%D When looking at an application of \type {\beginsimplegroup} and \type I wondered
+%D about this one but it doesn't make much sense. One hould define highlights that
+%D have style and color, but on the other hand, we might want to combine a font
+%D style and some other treatment. The overhead of commalists (where we can use
+%D {\aftergrouped} for collecting stop tags) is neglectable but it makes no sense.
+%D Maybe we need a \type {command} or better (as commands can take arguments) a
+%D \type {setups} key, but no one ever asked so \unknown.
+
+% \processnextcommalist\typo_highlights_step ...
+%
+% list : 10K single: 0.111 / 0.132 with command / 0.134 with setups
+% single: 10K single: 0.075 / 0.098 with command / 0.099 with setups
+
\installcorenamespace{highlight}
\installcommandhandler \??highlight {highlight} \??highlight % we could do with less
\setuphighlight
[\c!define=\v!yes]
+% \c!command=,
+% \c!setups=]
\appendtoks
\ifcstok{\highlightparameter\c!define}\v!yes
- \frozen\instance\setuevalue\currenthighlight{\typo_highlights_indeed{\currenthighlight}}%
+ \frozen\instance\protected\edefcsname\currenthighlight\endcsname
+ {\typo_highlights_indeed{\currenthighlight}}%
\fi
\to \everydefinehighlight
@@ -253,6 +269,8 @@
{\def\currenthighlight{#1}%
\dostarttagged\t!highlight\currenthighlight
\usehighlightstyleandcolor\c!style\c!color
+ % \usehighlightstyleandcolor\c!style\c!color
+ % \highlightparameter\c!command
\dotaghighlight}
{\dostoptagged}}
@@ -264,6 +282,8 @@
\def\currenthighlight{#1}%
\dostarttagged\t!highlight\currenthighlight
\usehighlightstyleandcolor\c!style\c!color
+ % \usehighlightstyleandcolor\c!style\c!color
+ % \highlightparameter\c!command
\dotaghighlight}
\permanent\protected\def\stophighlight
@@ -272,13 +292,19 @@
\aliased\let\directhighlight\typo_highlights_indeed
+%D Defining commands (rather old):
+
\permanent\protected\def\defineexpandable
- {\doifelsenextoptional
+ {\integerdef\c_syst_parameter_catcode\catcode\hashasciicode
+ \catcode\hashasciicode\parametercatcode%
+ \doifelsenextoptional
{\syst_basics_define_yes\def}%
{\syst_basics_define_nop\def}}
\permanent\protected\def\define
- {\doifelsenextoptional
+ {\integerdef\c_syst_parameter_catcode\catcode\hashasciicode
+ \catcode\hashasciicode\parametercatcode%
+ \doifelsenextoptional
{\syst_basics_define_yes{\protected\def}}%
{\syst_basics_define_nop{\protected\def}}}
@@ -297,13 +323,15 @@
#1#3##1##2##3##4##5##6##7{#4}\or
#1#3##1##2##3##4##5##6##7##8{#4}\or
#1#3##1##2##3##4##5##6##7##8##9{#4}\else
- #1#3{#4}\fi}
+ #1#3{#4}\fi
+ \catcode\hashasciicode\c_syst_parameter_catcode}
\protected\def\syst_basics_define_nop#1#2#3%
{\ifdefined#2%
\showmessage\m!system4{\string#2}%
\fi
- #1#2{#3}}
+ #1#2{#3}%
+ \catcode\hashasciicode\c_syst_parameter_catcode}
\aliased\let\redefine\define
diff --git a/Master/texmf-dist/tex/context/base/mkxl/core-two.mkxl b/Master/texmf-dist/tex/context/base/mkxl/core-two.mkxl
index cadd9d05907..38f03c7c45b 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/core-two.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/core-two.mkxl
@@ -82,8 +82,9 @@
\setfalse\twopassdatafound
-\mutable\let\twopassdata \empty
-\mutable\let\twopassdatalist\empty
+\mutable\lettonothing\twopassdata
+\mutable\lettonothing\twopassdatalist
+
\mutable\let\noftwopassitems\!!zeropoint
\def\syst_twopass_check % can be delegated to lua once obsolete is gone
diff --git a/Master/texmf-dist/tex/context/base/mkxl/core-uti.lua b/Master/texmf-dist/tex/context/base/mkxl/core-uti.lmt
index 887ef9a7536..48737d7f62f 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/core-uti.lua
+++ b/Master/texmf-dist/tex/context/base/mkxl/core-uti.lmt
@@ -18,8 +18,8 @@ saves much runtime but at the cost of more memory usage.</p>
--ldx]]--
local math = math
+local next, type, tostring, tonumber, setmetatable, load = next, type, tostring, tonumber, setmetatable, load
local format, match = string.format, string.match
-local next, type, tostring, tonumber = next, type, tostring, tonumber
local concat = table.concat
local definetable = utilities.tables.definetable
@@ -43,7 +43,7 @@ local report_passes = logs.reporter("job","passes")
job = job or { }
local job = job
-job.version = 1.32
+job.version = 1.33
job.packversion = 1.02
-- some day we will implement loading of other jobs and then we need
@@ -209,6 +209,67 @@ local skiplist = {
"positions",
}
+-- I'm not that impressed by the savings. It's some 5 percent on the luametatex
+-- manual and probably some more on the m4 files (if so I might enable it).
+
+local deltapacking = false
+-- local deltapacking = true
+
+local function packnumberdata(tobesaved)
+ if deltapacking and tobesaved[1] then
+ local last
+ local current
+ for i=1,#tobesaved do
+ current = tobesaved[i]
+ if last then
+ if last.numbers and last.block then
+ for k, v in next, last do
+ if k ~= "numbers" and v ~= current[k] then
+ goto DIFFERENT
+ end
+ end
+ for k, v in next, current do
+ if k ~= "numbers" and v ~= last[k] then
+ goto DIFFERENT
+ end
+ end
+ tobesaved[i] = {
+ numbers = current.numbers,
+ }
+ goto CONTINUE
+ else
+ current = nil
+ end
+ end
+ ::DIFFERENT::
+ last = current
+ ::CONTINUE::
+ end
+ end
+end
+
+local function unpacknumberdata(collected)
+ if deltapacking and collected[1] then
+ local key = "numbers"
+ local last = collected[1]
+ local meta = false
+ for i=2,#collected do
+ local c = collected[i]
+ if c.block then
+ last = c
+ meta = false
+ elseif c.numbers then
+ if not meta then
+ meta = { __index = last }
+ end
+ setmetatable(c, meta)
+ end
+ end
+ end
+end
+
+-- -- --
+
-- not ok as we can have arbitrary keys in userdata and dataset so some day we
-- might need a bit more granularity, like skippers
@@ -219,16 +280,17 @@ job.pack = true
directives.register("job.pack",function(v) job.pack = v end)
-local _save_, _load_, _others_ = { }, { }, { } -- registers timing
+local savedfiles = { }
+local loadedfiles = { } -- for now only timers
+local otherfiles = { } -- for now only timers
function job.save(filename) -- we could return a table but it can get pretty large
- statistics.starttiming(_save_)
+ statistics.starttiming(savedfiles)
local f = io.open(filename,'w')
if f then
f:write("local utilitydata = { }\n\n")
f:write(serialize(comment,"utilitydata.comment",true),"\n\n")
for l=1,#savelist do
- -- f:write("do\n\n") -- no solution for the jit limitatione either
local list = savelist[l]
local target = format("utilitydata.%s",list[1])
local data = list[2]
@@ -249,23 +311,20 @@ function job.save(filename) -- we could return a table but it can get pretty lar
else
f:write(definer,"\n\n",serialize(data,name,true),"\n\n")
end
- -- f:write("end\n\n")
end
if job.pack then
packers.strip(jobpacker)
- -- f:write("do\n\n")
+ packnumberdata(jobpacker.index)
f:write(serialize(jobpacker,"utilitydata.job.packed",true),"\n\n")
- -- f:write("end\n\n")
end
f:write("return utilitydata")
f:close()
end
- statistics.stoptiming(_save_)
+ statistics.stoptiming(savedfiles)
end
local function load(filename)
if lfs.isfile(filename) then
-
local function dofile(filename)
local result = loadstring(io.loaddata(filename))
if result then
@@ -274,7 +333,6 @@ local function load(filename)
return nil
end
end
-
local okay, data = pcall(dofile,filename)
if okay and type(data) == "table" then
local jobversion = job.version
@@ -286,124 +344,135 @@ local function load(filename)
return data
end
else
- os.remove(filename) -- probably a bad file (or luajit overflow as it cannot handle large tables well)
- report_passes("removing stale job data file %a, restart job, message: %s%s",filename,tostring(data),
- jit and " (try luatex instead of luajittex)" or "")
+ os.remove(filename)
+ report_passes("removing stale job data file %a, restart job, message: %s",filename,tostring(data))
os.exit(true) -- trigger second run
end
end
end
function job.load(filename)
- statistics.starttiming(_load_)
+ statistics.starttiming(loadedfiles)
local utilitydata = load(filename)
if utilitydata then
local jobpacker = utilitydata.job.packed
- local handlers = { }
+ unpacknumberdata(jobpacker.index)
for i=1,#savelist do
- local list = savelist[i]
- local target = list[1]
- local initializer = list[3]
- local result = accesstable(target,utilitydata)
+ local list = savelist[i]
+ local target = list[1]
+ local result = accesstable(target,utilitydata)
if result then
local done = packers.unpack(result,jobpacker,true)
if done then
migratetable(target,mark(result))
- if type(initializer) == "function" then
- handlers[#handlers+1] = { initializer, result }
- end
else
report_passes("pack version mismatch")
end
end
end
- -- so we have all tables available (unpacked)
- for i=1,#handlers do
- local handler = handlers[i]
- handler[1](handler[2])
+ end
+ for i=1,#savelist do
+ local list = savelist[i]
+ local initializer = list[3]
+ if type(initializer) == "function" then
+ initializer(utilitydata and accesstable(list[1],utilitydata) or nil)
end
end
- statistics.stoptiming(_load_)
+ statistics.stoptiming(loadedfiles)
end
-function job.loadother(filename)
- statistics.starttiming(_load_)
- _others_[#_others_+1] = file.nameonly(filename)
- local utilitydata = load(filename)
- if utilitydata then
- local jobpacker = utilitydata.job.packed
- local unpacked = { }
- for l=1,#savelist do
- local list = savelist[l]
- local target = list[1]
- local result = accesstable(target,utilitydata)
- local done = packers.unpack(result,jobpacker,true)
- if done then
- migratetable(target,result,unpacked)
+local othercache = { }
+
+function job.loadother(filename,cache)
+ local unpacked = false
+ statistics.starttiming(loadedfiles)
+ filename = file.addsuffix(filename,"tuc")
+ if cache then
+ unpacked = othercache[filename]
+ end
+ if not unpacked then
+ -- so we can register the same name twice(in loading order)
+ otherfiles[#otherfiles+1] = file.nameonly(filename)
+ local utilitydata = load(filename)
+ if utilitydata then
+ local jobpacker = utilitydata.job.packed
+ unpacknumberdata(jobpacker.index)
+ unpacked = { }
+ for l=1,#savelist do
+ local list = savelist[l]
+ local target = list[1]
+ local result = accesstable(target,utilitydata)
+ local done = packers.unpack(result,jobpacker,true)
+ if done then
+ migratetable(target,result,unpacked)
+ end
+ end
+ unpacked.job.packed = nil -- nicer in inspecting
+ if cache then
+ othercache[filename] = unpacked
+ end
+ --
+ local lists = utilitydata.structures.lists.collected or { }
+ local sections = utilitydata.structures.sections.collected or { }
+ local pages = utilitydata.structures.pages .collected or { }
+ for i=1,#lists do
+ local entry = lists[i]
+ local references = entry.references
+ if references then
+ local section = references.section
+ local realpage = references.realpage
+ -- maybe entry.* instead:
+ references.sectiondata = section and sections[section]
+ references.pagedata = realpage and pages[realpage]
+ -- get rid of these, maybe even crash as these are bogus
+ -- references.internal = nil
+ -- references.realpage = nil
+ -- references.section = nil
+ references.x = nil
+ references.y = nil
+ end
end
+ --
+ -- also do the references here
+ --
+ structures.references.registerfromlist(lists,derived,pages,sections)
end
- unpacked.job.packed = nil -- nicer in inspecting
- return unpacked
end
- statistics.stoptiming(_load_)
+ statistics.stoptiming(loadedfiles)
+ return unpacked
end
--- function job.keep(filename)
--- local suffix = file.suffix(filename)
--- local base = file.removesuffix(filename)
--- if suffix == "" then
--- suffix = "tuc"
--- end
--- for i=1,10 do
--- local tmpname = format("%s-%s-%02d.tmp",base,suffix,i)
--- if lfs.isfile(tmpname) then
--- os.remove(tmpname)
--- report_passes("removing %a",tmpname)
--- end
--- end
--- if lfs.isfile(filename) then
--- local tmpname = format("%s-%s-%02d.tmp",base,suffix,environment.currentrun or 1)
--- report_passes("copying %a into %a",filename,tmpname)
--- file.copy(filename,tmpname)
--- else
--- report_passes("no file %a, nothing kept",filename)
--- end
--- end
-
--- eventually this will end up in strc-ini
-
statistics.register("startup time", function()
return statistics.elapsedseconds(statistics,"including runtime option file processing")
end)
statistics.register("jobdata time",function()
if enabled then
- if #_others_ > 0 then
- return format("%s seconds saving, %s seconds loading, other files: %s",statistics.elapsedtime(_save_),statistics.elapsedtime(_load_),concat(_others_," "))
+ if #otherfiles > 0 then
+ return format("%s seconds saving, %s seconds loading, other files: %s",statistics.elapsedtime(savedfiles),statistics.elapsedtime(loadedfiles),concat(otherfiles," "))
else
- return format("%s seconds saving, %s seconds loading",statistics.elapsedtime(_save_),statistics.elapsedtime(_load_))
+ return format("%s seconds saving, %s seconds loading",statistics.elapsedtime(savedfiles),statistics.elapsedtime(loadedfiles))
end
else
- if #_others_ > 0 then
- return format("nothing saved, %s seconds loading, other files: %s",statistics.elapsedtime(_load_),concat(_others_," "))
+ if #otherfiles > 0 then
+ return format("nothing saved, %s seconds loading, other files: %s",statistics.elapsedtime(loadedfiles),concat(otherfiles," "))
else
- return format("nothing saved, %s seconds loading",statistics.elapsedtime(_load_))
+ return format("nothing saved, %s seconds loading",statistics.elapsedtime(loadedfiles))
end
end
end)
statistics.register("callbacks", function()
- local c_internal = status.callbacks or 0
- local c_file = status.indirect_callbacks or 0
- local c_direct = status.direct_callbacks or 0
- local c_late = backends.getcallbackstate().count
- local c_function = status.function_callbacks or 0
- local c_total = c_internal + c_file + c_direct + c_late + c_function
- local n_pages = structures.pages.nofpages or 0
- local c_average = n_pages > 0 and math.round(c_total/n_pages) or 0
- local result = format (
- "internal: %s, file: %s, direct: %s, late: %s, function %s, total: %s (%s per page)",
- c_internal, c_file, c_direct, c_late, c_function, c_total, c_average
+ local backend = backends.getcallbackstate()
+ local frontend = status.getcallbackstate()
+ local pages = structures.pages.nofpages or 0
+ local total = frontend.count + backend.count
+ local average = pages > 0 and math.round(total/pages) or 0
+ local result = format (
+ "file: %s, saved: %s, direct: %s, function: %s, value: %s, message: %s, bytecode: %s, late %s, total: %s (%s per page)",
+ frontend.file, frontend.saved, frontend.direct, frontend["function"],
+ frontend.value, frontend.message, frontend.bytecode, backend.count,
+ total, average
)
statistics.callbacks = function()
return result
@@ -417,20 +486,11 @@ statistics.register("randomizer", function()
end
end)
--- a sort of joke (for ctx meeting)
-
--- local kg_per_watt_per_second = 1 / 15000000
--- local watts_per_core = 50
--- local speedup_by_other_engine = 1.2
--- local used_wood_factor = watts_per_core * kg_per_watt_per_second / speedup_by_other_engine
--- local used_wood_factor = (50 / 15000000) / 1.2
-
-
function statistics.formatruntime(runtime)
if not environment.initex then -- else error when testing as not counters yet
-- stoptiming(statistics) -- to be sure
- local shipped = texgetcount('nofshipouts')
- local pages = texgetcount('realpageno')
+ local shipped = texgetcount("nofshipouts")
+ local pages = texgetcount("realpageno")
if pages > shipped then
pages = shipped
end
@@ -448,9 +508,10 @@ function statistics.formatruntime(runtime)
end
implement {
- name = "savevariable",
+ name = "savecurrentvalue",
+ public = true,
actions = job.variables.save,
- arguments = "2 strings",
+ arguments = { "csname", "argument" },
}
implement {
diff --git a/Master/texmf-dist/tex/context/base/mkxl/data-fil.lmt b/Master/texmf-dist/tex/context/base/mkxl/data-fil.lmt
new file mode 100644
index 00000000000..bbcc954b2ea
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/data-fil.lmt
@@ -0,0 +1,144 @@
+if not modules then modules = { } end modules ['data-fil'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local ioopen = io.open
+local isdir = lfs.isdir
+
+local trace_locating = false trackers.register("resolvers.locating", function(v) trace_locating = v end)
+
+local report_files = logs.reporter("resolvers","files")
+
+local resolvers = resolvers
+local resolveprefix = resolvers.resolve
+local findfile = resolvers.findfile
+local scanfiles = resolvers.scanfiles
+local registerfilehash = resolvers.registerfilehash
+local appendhash = resolvers.appendhash
+
+local loadcachecontent = caches.loadcontent
+
+local checkgarbage = utilities.garbagecollector and utilities.garbagecollector.check
+
+function resolvers.locators.file(specification)
+ local filename = specification.filename
+ local realname = resolveprefix(filename) -- no shortcut
+ if realname and realname ~= '' and isdir(realname) then
+ if trace_locating then
+ report_files("file locator %a found as %a",filename,realname)
+ end
+ appendhash('file',filename,true) -- cache
+ elseif trace_locating then
+ report_files("file locator %a not found",filename)
+ end
+end
+
+function resolvers.hashers.file(specification)
+ local pathname = specification.filename
+ local content = loadcachecontent(pathname,'files')
+ registerfilehash(pathname,content,content==nil)
+end
+
+function resolvers.generators.file(specification)
+ local pathname = specification.filename
+ local content = scanfiles(pathname,false,true) -- scan once
+ registerfilehash(pathname,content,true)
+end
+
+resolvers.concatinators.file = file.join
+
+local finders = resolvers.finders
+local notfound = finders.notfound
+
+function finders.file(specification,filetype)
+ local filename = specification.filename
+ local foundname = findfile(filename,filetype)
+ if foundname and foundname ~= "" then
+ if trace_locating then
+ report_files("file finder: %a found",filename)
+ end
+ return foundname
+ else
+ if trace_locating then
+ report_files("file finder: %a not found",filename)
+ end
+ return notfound()
+ end
+end
+
+-- The default textopener will be overloaded later on.
+
+local openers = resolvers.openers
+local notfound = openers.notfound
+local overloaded = false
+
+local function textopener(tag,filename,f)
+ return {
+ reader = function() return f:read () end,
+ close = function() return f:close() end,
+ }
+end
+
+function openers.helpers.textopener(...)
+ return textopener(...)
+end
+
+function openers.helpers.settextopener(opener)
+ if overloaded then
+ report_files("file opener: %s overloaded","already")
+ else
+ if trace_locating then
+ report_files("file opener: %s overloaded","once")
+ end
+ overloaded = true
+ textopener = opener
+ end
+end
+
+function openers.file(specification,filetype)
+ local filename = specification.filename
+ if filename and filename ~= "" then
+ local f = ioopen(filename,"r")
+ if f then
+ if trace_locating then
+ report_files("file opener: %a opened",filename)
+ end
+ return textopener("file",filename,f)
+ end
+ end
+ if trace_locating then
+ report_files("file opener: %a not found",filename)
+ end
+ return notfound()
+end
+
+local loaders = resolvers.loaders
+local notfound = loaders.notfound
+
+function loaders.file(specification,filetype)
+ local filename = specification.filename
+ if filename and filename ~= "" then
+ local f = ioopen(filename,"rb")
+ if f then
+ if trace_locating then
+ report_files("file loader: %a loaded",filename)
+ end
+ local s = f:read("*a") -- io.readall(f) is faster but we never have large files here
+ if checkgarbage then
+ checkgarbage(#s)
+ end
+ f:close()
+ if s then
+ return true, s, #s
+ end
+ end
+ end
+ if trace_locating then
+ report_files("file loader: %a not found",filename)
+ end
+ return notfound()
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/data-hsh.lmt b/Master/texmf-dist/tex/context/base/mkxl/data-hsh.lmt
new file mode 100644
index 00000000000..0a2d94f8190
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/data-hsh.lmt
@@ -0,0 +1,382 @@
+-- only lmt because the backend code doesn't deal with it and it makes
+-- no sense to waste time on that for mkiv
+
+if not modules then modules = { } end modules ['data-hsh'] = {
+ version = 0.002,
+ comment = "companion to luat-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- todo: options
+--
+-- lowercase
+-- cleanupnames (normalize)
+-- use database from project tree
+
+local type = type
+local gsub = string.gsub
+local addsuffix, basename, pathpart, filesuffix, filesize = file.addsuffix, file.basename, file.pathpart, file.suffix, file.size
+local loadtable, savetable = table.load, table.save
+local loaddata, savedata, open = io.loaddata, io.savedata, io.open
+
+local trace_hashed = false
+local report_hashed = logs.reporter("resolvers","hashed")
+
+trackers.register("resolvers.locating", function(v) trace_hashed = v end)
+trackers.register("resolvers.hashed", function(v) trace_hashed = v end)
+
+-- we can have a virtual file: open at the position, make sure read and seek don't
+-- go beyond the boundaries
+
+local resolvers = resolvers
+local finders = resolvers.finders
+local openers = resolvers.openers
+local loaders = resolvers.loaders
+
+local ordered = { }
+local hashed = { }
+local version = 0.002
+
+-- local lowercase = characters.lower
+
+local function showstatus(database,metadata)
+ report_hashed("database %a, %i paths, %i names, %i unique blobs, %i compressed blobs",
+ database, metadata.nofpaths, metadata.nofnames, metadata.nofblobs, metadata.nofcompressed
+ )
+end
+
+local function validhashed(database)
+ local found = hashed[database]
+ if found then
+ return found
+ else
+ local metaname = addsuffix(database,"lua")
+ local dataname = addsuffix(database,"dat")
+ local metadata = loadtable(metaname)
+ if type(metadata) ~= "table" then
+ report_hashed("invalid database %a",metaname)
+ elseif metadata.version ~= version then
+ report_hashed("version mismatch in database %a",metaname)
+ elseif not lfs.isfile(dataname) then
+ report_hashed("missing data data file for %a",metaname)
+ else
+ return {
+ database = database,
+ metadata = metadata,
+ dataname = dataname,
+ }
+ end
+ end
+end
+
+local function registerhashed(database)
+ if not hashed[database] then
+ local valid = validhashed(database)
+ if valid then
+ ordered[#ordered + 1] = valid
+ hashed[database] = ordered[#ordered]
+ showstatus(database,valid.metadata)
+ end
+ end
+end
+
+local registerfilescheme do
+
+ local findfile = finders.file
+
+ local list = { }
+ local done = { }
+ local hash = { }
+
+ registerfilescheme = function(name)
+ if not done[name] then
+ list[#list+1] = name
+ done[name] = true
+ end
+ end
+
+ -- why does the finder not remember ?
+
+ function finders.file(specification,filetype)
+ if type(specification) == "table" then
+ local original = specification.original
+ -- print(original)
+ if original then
+ local found = hash[original]
+ if found == nil then
+ for i=1,#list do
+ local scheme = list[i]
+ local found = finders[scheme](specification,filetype)
+ if found then
+ hash[original] = found
+ if trace_hashed then
+ report_hashed("found by auto scheme %s: %s",scheme,found)
+ end
+ return found
+ end
+ end
+ local found = findfile(specification,filetype)
+ if found then
+ hash[original] = found
+ if trace_hashed then
+ report_hashed("found by normal file scheme: %s",found)
+ end
+ return found
+ end
+ hash[original] = false
+ elseif found then
+ return found
+ end
+ return false
+ else
+ -- something is wrong here, maybe we should trace it (scheme can be "unknown")
+ end
+ end
+ -- again, something is wrong
+ return findfile(specification,filetype)
+ end
+
+end
+
+finders.helpers.validhashed = validhashed
+finders.helpers.registerhashed = registerhashed
+finders.helpers.registerfilescheme = registerfilescheme
+
+local function locate(found,path,name)
+ local files = found.metadata.files
+ local hashes = found.metadata.hashes
+ local fp = files[path]
+ local hash = fp and fp[name]
+ if hash and hashes[hash] then
+ return hash
+ end
+end
+
+local function locatehash(filename,database)
+ if filename then
+ local name = basename(filename)
+ local path = pathpart(filename)
+ local hash = false
+ if database then
+ local found = hashed[database]
+ if found then
+ hash = locate(found,path,name), database, path, name
+ end
+ else
+ for i=1,#ordered do
+ local found = ordered[i]
+ hash = locate(found,path,name)
+ if hash then
+ database = found.database
+ break
+ end
+ end
+ end
+ if hash then
+ return {
+ hash = hash,
+ name = name,
+ path = path,
+ base = database,
+ }
+ end
+ end
+end
+
+-- no caching yet, we don't always want the file and it's fast enough
+
+local function locateblob(filename,database)
+ local found = locatehash(filename,database)
+ if found then
+ local database = found.base
+ local data = hashed[database]
+ if data then
+ local metadata = data.metadata
+ local dataname = data.dataname
+ local hashes = metadata.hashes
+ local blobdata = hashes[found.hash]
+ if blobdata and dataname then
+ local position = blobdata.position
+ local f = open(dataname,"rb")
+ if f then
+ f:seek("set",position)
+ local blob = f:read(blobdata.datasize)
+ if blobdata.compress == "zip" then
+ blob = zlib.decompresssize(blob,blobdata.filesize)
+ end
+ return blob
+ end
+ end
+ end
+ end
+end
+
+local finders = resolvers.finders
+local notfound = finders.notfound
+
+function finders.hashed(specification)
+ local original = specification.original
+ local fullpath = specification.path
+ if fullpath then
+ local found = locatehash(fullpath)
+ if found then
+ if trace_hashed then
+ report_hashed("finder: file %a found",original)
+ end
+ return original
+ end
+ end
+ if trace_hashed then
+ report_hashed("finder: unknown file %a",original)
+ end
+ return notfound()
+end
+
+local notfound = openers.notfound
+local textopener = openers.helpers.textopener
+
+function openers.hashed(specification)
+ local original = specification.original
+ local fullpath = specification.path
+ if fullpath then
+ local found = locateblob(fullpath)
+ if found then
+ if trace_hashed then
+ report_hashed("finder: file %a found",original)
+ end
+ return textopener("hashed",original,found,"utf-8")
+ end
+ end
+ if trace_hashed then
+ report_hashed("finder: unknown file %a",original)
+ end
+ return notfound()
+end
+
+local notfound = loaders.notfound
+
+function loaders.hashed(specification)
+ local original = specification.original
+ local fullpath = specification.path
+ if fullpath then
+ local found = locateblob(fullpath)
+ if found then
+ if trace_hashed then
+ report_hashed("finder: file %a found",original)
+ end
+ return true, found, found and #found or 0
+ end
+ end
+ if trace_hashed then
+ report_hashed("finder: unknown file %a",original)
+ end
+ return notfound()
+end
+
+-- this actually could end up in the generate namespace but it is not
+-- really a 'generic' feature, more a module (at least for now)
+
+local calculatehash = sha2.HEX256 -- md5.HEX is not unique enough
+
+function resolvers.finders.helpers.createhashed(specification)
+ local database = specification.database
+ local patterns = specification.patterns
+ if not patterns then
+ local pattern = specification.pattern
+ if pattern then
+ patterns = {
+ {
+ pattern = pattern,
+ compress = specification.compress,
+ }
+ }
+ end
+ end
+ local datname = addsuffix(database,"dat")
+ local luaname = addsuffix(database,"lua")
+ local metadata = loadtable(luaname)
+ if type(metadata) ~= "table" then
+ metadata = false
+ elseif metadata.kind == "hashed" and metadata.version ~= version then
+ report_hashed("version mismatch, starting with new table")
+ metadata = false
+ end
+ if not metadata then
+ metadata = {
+ version = version,
+ kind = "hashed",
+ files = { },
+ hashes = { },
+ nofnames = 0,
+ nofpaths = 0,
+ nofblobs = 0,
+ nofcompressed = 0,
+ }
+ end
+ local files = metadata.files
+ local hashes = metadata.hashes
+ local nofpaths = metadata.nofpaths
+ local nofnames = metadata.nofnames
+ local nofblobs = metadata.nofblobs
+ local nofcompressed = metadata.nofcompressed
+ if type(patterns) == "table" then
+ for i=1,#patterns do
+ local pattern = patterns[i].pattern
+ if pattern then
+ local compress = patterns[i].compress
+ local list = dir.glob(pattern)
+ local total = #list
+ report_hashed("database %a, adding pattern %a, compression %l",database,pattern,compress)
+ for i=1,total do
+ local filename = list[i]
+ local name = basename(filename)
+ local path = pathpart(filename)
+ local data = loaddata(filename)
+ -- cleanup
+ path = gsub(path,"^[./]*","")
+ --
+ if data then
+ local fp = files[path]
+ if not fp then
+ fp = { }
+ files[path] = fp
+ nofpaths = nofpaths + 1
+ end
+ local ff = fp[name]
+ if not ff then
+ local hash = calculatehash(data)
+ if not hashes[hash] then
+ local size = #data
+ if compress then
+ data = zlib.compresssize(data,size)
+ nofcompressed = nofcompressed + 1
+ end
+ local position = filesize(datname)
+ savedata(datname,data,"",true)
+ hashes[hash] = {
+ filesize = size,
+ datasize = #data,
+ compress = compress and "zip",
+ position = position,
+ }
+ nofblobs = nofblobs + 1
+ end
+ fp[name] = hash
+ nofnames = nofnames + 1
+ end
+ end
+ end
+ end
+ end
+ end
+ metadata.nofpaths = nofpaths
+ metadata.nofnames = nofnames
+ metadata.nofblobs = nofblobs
+ metadata.nofcompressed = nofcompressed
+ savetable(luaname, metadata)
+ showstatus(database,metadata)
+ return metadata
+end
+
diff --git a/Master/texmf-dist/tex/context/base/mkxl/data-vir.lmt b/Master/texmf-dist/tex/context/base/mkxl/data-vir.lmt
new file mode 100644
index 00000000000..b78211fc9a7
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/data-vir.lmt
@@ -0,0 +1,104 @@
+if not modules then modules = { } end modules ['data-vir'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local type = type
+local formatters = string.formatters
+
+local trace_virtual = false
+local report_virtual = logs.reporter("resolvers","virtual")
+
+trackers.register("resolvers.locating", function(v) trace_virtual = v end)
+trackers.register("resolvers.virtual", function(v) trace_virtual = v end)
+
+local resolvers = resolvers
+local savers = resolvers.savers
+local cleaners = resolvers.cleaners
+
+local data = { }
+local n = 0 -- hm, number can be query
+local f_virtual_n = formatters["virtual://%s.%s"]
+local f_virtual_y = formatters["virtual://%s-%s.%s"]
+
+function savers.virtual(specification,content,suffix)
+ n = n + 1 -- one number for all namespaces
+ local path = type(specification) == "table" and specification.path or specification
+ if type(path) ~= "string" or path == "" then
+ path = "virtualfile"
+ end
+ local filename = suffix and f_virtual_y(path,n,suffix) or f_virtual_n(path,n)
+ if trace_virtual then
+ report_virtual("saver: file %a saved",filename)
+ end
+ data[filename] = content
+ return filename
+end
+
+function cleaners.virtual(filename)
+ data[filename] = nil
+end
+
+local finders = resolvers.finders
+local notfound = finders.notfound
+
+function finders.virtual(specification)
+ local original = specification.original
+ local d = data[original]
+ if d then
+ if trace_virtual then
+ report_virtual("finder: file %a found",original)
+ end
+ return original
+ else
+ if trace_virtual then
+ report_virtual("finder: unknown file %a",original)
+ end
+ return notfound()
+ end
+end
+
+local openers = resolvers.openers
+local notfound = openers.notfound
+local textopener = openers.helpers.textopener
+
+function openers.virtual(specification)
+ local original = specification.original
+ local d = data[original]
+ if d then
+ if trace_virtual then
+ report_virtual("opener: file %a opened",original)
+ end
+ data[original] = nil -- when we comment this we can have error messages
+ -- With utf-8 we signal that no regime is to be applied!
+ -- characters.showstring(d)
+ return textopener("virtual",original,d,"utf-8")
+ else
+ if trace_virtual then
+ report_virtual("opener: file %a not found",original)
+ end
+ return notfound()
+ end
+end
+
+local loaders = resolvers.loaders
+local notfound = loaders.notfound
+
+function loaders.virtual(specification)
+ local original = specification.original
+ local d = data[original]
+ if d then
+ if trace_virtual then
+ report_virtual("loader: file %a loaded",original)
+ end
+ data[original] = nil
+ return true, d, #d
+ end
+ if trace_virtual then
+ report_virtual("loader: file %a not loaded",original)
+ end
+ return notfound()
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/driv-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/driv-ini.lmt
index 729196e870d..c43bf2a83b3 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/driv-ini.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/driv-ini.lmt
@@ -30,6 +30,8 @@ local shipout = tex.shipout
local texgetbox = tex.getbox
local texgetcount = tex.getcount
+local c_realpageno = tex.iscount("realpageno")
+
function converters.engine(driver,boxnumber,mode,number,specification)
return shipout(boxnumber)
end
@@ -65,6 +67,14 @@ local installwhatsits do
local leaderlevel = 0
local backends = backends
+ local trace = true
+
+ local latelua = backends.latelua
+ local writeout = backends.writeout
+ local openout = backends.openout
+ local closeout = backends.closeout
+
+ trackers.register("backends.whatsits",function(v) trace = v end)
local function pushleaderlevel()
leaderlevel = leaderlevel + 1
@@ -75,26 +85,26 @@ local installwhatsits do
end
local function flushlatelua(current,h,v)
- -- Here we assume maganement by the lua function so currently we don't
- -- check for leaderlevel.
- return backends.latelua(current,h,v)
+ -- Here we assume management by the lua function so currently we don't
+ -- need to check for leaderlevel and it can even be counterproductive.
+ return latelua(current,h,v)
end
local function flushwriteout(current)
if leaderlevel == 0 then
- backends.writeout(current)
+ writeout(current)
end
end
local function flushopenout(current)
if leaderlevel == 0 then
- backends.openout(current)
+ openout(current)
end
end
local function flushcloseout(current)
if leaderlevel == 0 then
- backends.closeout(current)
+ closeout(current)
end
end
@@ -110,8 +120,6 @@ local installwhatsits do
local whatsitcodes = nodes.whatsitcodes
- local trace = true trackers.register("backends.whatsits",function(v) trace = v end)
-
installwhatsits = function(name,flushers)
-- latelua : specific
@@ -135,54 +143,13 @@ local installwhatsits do
return v
end
- -- flushers.whatsit = setmetatableindex ( {
- -- [whatsitcodes.literal] = flushers.literal,
- -- [whatsitcodes.latelua] = flushlatelua,
- -- [whatsitcodes.userdefined] = flushuserdefined,
- -- [whatsitcodes.savepos] = flushsavepos,
- -- [whatsitcodes.save] = flushers.save,
- -- [whatsitcodes.restore] = flushers.restore,
- -- [whatsitcodes.setmatrix] = flushers.setmatrix,
- -- [whatsitcodes.open] = flushopenout,
- -- [whatsitcodes.close] = flushcloseout,
- -- [whatsitcodes.write] = flushwriteout,
- -- [whatsitcodes.startmatrix] = flushers.startmatrix,
- -- [whatsitcodes.stopmatrix] = flushers.stopmatrix,
- -- [whatsitcodes.startscaling] = flushers.startscaling,
- -- [whatsitcodes.stopscaling] = flushers.stopscaling,
- -- [whatsitcodes.startrotation] = flushers.startrotation,
- -- [whatsitcodes.stoprotation] = flushers.stoprotation,
- -- [whatsitcodes.startmirroring] = flushers.startmirroring,
- -- [whatsitcodes.stopmirroring] = flushers.stopmirroring,
- -- [whatsitcodes.startclipping] = flushers.startclipping,
- -- [whatsitcodes.stopclipping] = flushers.stopclipping,
- -- [whatsitcodes.setstate] = flushers.setstate,
- -- }, checkagain )
-
- -- -- sparse
-
- -- flushers.whatsit = setmetatableindex ( {
- -- [whatsitcodes.latelua] = flushlatelua,
- -- [whatsitcodes.userdefined] = flushuserdefined,
- -- [whatsitcodes.savepos] = flushsavepos,
- -- [whatsitcodes.open] = flushopenout,
- -- [whatsitcodes.close] = flushcloseout,
- -- [whatsitcodes.write] = flushwriteout,
- -- }, checkagain )
-
- -- -- delayed
+ -- delayed
local whatsit ; whatsit = setmetatableindex ( {
[whatsitcodes.literal] = flushers.literal or function(...) return checkagain(whatsit,whatsitcodes.literal )(...) end,
- [whatsitcodes.latelua] = flushlatelua,
- [whatsitcodes.userdefined] = flushuserdefined,
- [whatsitcodes.savepos] = flushsavepos,
[whatsitcodes.save] = flushers.save or function(...) return checkagain(whatsit,whatsitcodes.save )(...) end,
[whatsitcodes.restore] = flushers.restore or function(...) return checkagain(whatsit,whatsitcodes.restore )(...) end,
[whatsitcodes.setmatrix] = flushers.setmatrix or function(...) return checkagain(whatsit,whatsitcodes.setmatrix )(...) end,
- [whatsitcodes.open] = flushopenout,
- [whatsitcodes.close] = flushcloseout,
- [whatsitcodes.write] = flushwriteout,
[whatsitcodes.startmatrix] = flushers.startmatrix or function(...) return checkagain(whatsit,whatsitcodes.startmatrix )(...) end,
[whatsitcodes.stopmatrix] = flushers.stopmatrix or function(...) return checkagain(whatsit,whatsitcodes.stopmatrix )(...) end,
[whatsitcodes.startscaling] = flushers.startscaling or function(...) return checkagain(whatsit,whatsitcodes.startscaling )(...) end,
@@ -194,6 +161,13 @@ local installwhatsits do
[whatsitcodes.startclipping] = flushers.startclipping or function(...) return checkagain(whatsit,whatsitcodes.startclipping )(...) end,
[whatsitcodes.stopclipping] = flushers.stopclipping or function(...) return checkagain(whatsit,whatsitcodes.stopclippin )(...) end,
[whatsitcodes.setstate] = flushers.setstate or function(...) return checkagain(whatsit,whatsitcodes.setstate )(...) end,
+ --
+ [whatsitcodes.latelua] = flushlatelua,
+ [whatsitcodes.userdefined] = flushuserdefined,
+ [whatsitcodes.savepos] = flushsavepos,
+ [whatsitcodes.open] = flushopenout,
+ [whatsitcodes.close] = flushcloseout,
+ [whatsitcodes.write] = flushwriteout,
}, checkagain)
flushers.whatsit = whatsit
@@ -232,7 +206,7 @@ function drivers.convert(boxnumber)
if currentinstance then
callbacks.functions.start_page_number()
starttiming(drivers)
- convert(currentinstance,boxnumber,texgetcount("realpageno"))
+ convert(currentinstance,boxnumber,texgetcount(c_realpageno))
stoptiming(drivers)
callbacks.functions.stop_page_number()
end
@@ -271,15 +245,15 @@ function drivers.enable(name)
cleanup(currentinstance)
stoptiming(drivers)
end
- currentdriver = name or "default"
+ currentdriver = name or "none"
currentinstance = instances[currentdriver]
if currentinstance then
- local actions = currentinstance.actions
- prepare = actions.prepare
- wrapup = actions.wrapup
- cleanup = actions.cleanup
- convert = actions.convert
- outputfilename = actions.outputfilename
+ local actions = currentinstance.actions
+ prepare = actions.prepare
+ wrapup = actions.wrapup
+ cleanup = actions.cleanup
+ convert = actions.convert
+ outputfilename = actions.outputfilename
--
if prepare and not prepared[currentdriver] then
starttiming(drivers)
@@ -309,42 +283,6 @@ interfaces.implement {
actions = drivers.enable,
}
--- The default driver:
-
-do
-
- local filename = nil
-
- drivers.install {
- name = "default",
- actions = {
- convert = drivers.converters.engine,
- outputfilename = function(driver)
- if not filename then
- filename = addsuffix(tex.jobname,"pdf")
- end
- return filename
- end,
- },
- flushers = {
- -- we always need this entry
- },
- }
-
-end
-
--- No driver:
-
-do
-
- drivers.install {
- name = "none",
- actions = { },
- flushers = { },
- }
-
-end
-
do
local function prepare(driver)
@@ -366,10 +304,14 @@ do
end
---
-
setmetatableindex(instances,function() return instances.default end)
--- for now:
+-- We default to no driver at all:
+
+drivers.install {
+ name = "none",
+ actions = { },
+ flushers = { },
+}
-drivers.enable("default")
+drivers.enable("none")
diff --git a/Master/texmf-dist/tex/context/base/mkxl/driv-shp.lmt b/Master/texmf-dist/tex/context/base/mkxl/driv-shp.lmt
index d3a47bf0d2e..09928f303eb 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/driv-shp.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/driv-shp.lmt
@@ -7,130 +7,121 @@ if not modules then modules = { } end modules ['driv-shp'] = {
license = "see context related readme files"
}
-local type, next = type, next
-
-local setmetatableindex = table.setmetatableindex
-local formatters = string.formatters
-local concat = table.concat
-local keys = table.keys
-local sortedhash = table.sortedhash
-local splitstring = string.split
-local find = string.find
-local stripstring = string.strip
-local idiv = number.idiv
-local sequenced = table.sequenced
-local round = math.round
-local extract = bit32.extract
-local nuts = nodes.nuts
-
-local tonut = nodes.tonut
-local tonode = nodes.tonode
-
-local getdirection = nuts.getdirection
-local getlist = nuts.getlist
-local getoffsets = nuts.getoffsets
-local getorientation = nuts.getorientation
-local getfield = nuts.getfield
-local getwhd = nuts.getwhd
-local getkern = nuts.getkern
-local getheight = nuts.getheight
-local getdepth = nuts.getdepth
------ getwidth = nuts.getwidth
-local getnext = nuts.getnext
-local getsubtype = nuts.getsubtype
-local getid = nuts.getid
-local getleader = nuts.getleader
------ getglue = nuts.getglue
-local getshift = nuts.getshift
-local getdata = nuts.getdata
------ getexpansion = nuts.getexpansion
-local getreplace = nuts.getreplace
-local setreplace = nuts.setreplace
-local getfont = nuts.getfont
-local getkerndimension = nuts.getkerndimension
-
-local setdirection = nuts.setdirection
-local setfield = nuts.setfield
-local setlink = nuts.setlink
-
-local isglyph = nuts.isglyph
-local findtail = nuts.tail
-local nextdir = nuts.traversers.dir
-local nextnode = nuts.traversers.node
-
------ rangedimensions = node.direct.rangedimensions -- nuts ?
-local effectiveglue = nuts.effective_glue
-local start_of_par = nuts.start_of_par
-local dirdimensions = nuts.dirdimensions
-
-local texget = tex.get
-
-local fonthashes = fonts.hashes
-local fontdata = fonthashes.identifiers
-local characters = fonthashes.characters
-local parameters = fonthashes.parameters
-
-local nodecodes = nodes.nodecodes
-local whatsitcodes = nodes.whatsitcodes
-local gluecodes = nodes.gluecodes
-local dircodes = nodes.dircodes
-local dirvalues = nodes.dirvalues
-local subtypes = nodes.subtypes
-
-local lefttoright_code = dirvalues.lefttoright
-local righttoleft_code = dirvalues.righttoleft
-
-local glyph_code = nodecodes.glyph
-local kern_code = nodecodes.kern
-local glue_code = nodecodes.glue
-local hlist_code = nodecodes.hlist
-local vlist_code = nodecodes.vlist
-local dir_code = nodecodes.dir
-local disc_code = nodecodes.disc
-local math_code = nodecodes.math
-local rule_code = nodecodes.rule
-local whatsit_code = nodecodes.whatsit
------ penalty_code = nodecodes.penalty
------ boundary_code = nodecodes.boundary
-
-local leaders_code = gluecodes.leaders
-local cleaders_code = gluecodes.cleaders
-local xleaders_code = gluecodes.xleaders
-local gleaders_code = gluecodes.gleaders
-
-local spaceskip_code = gluecodes.spaceskip
-
-local getpagedimensions = layouts.getpagedimensions
-
-local drivers = drivers
-local instances = drivers.instances
-
-local report = logs.reporter("drivers")
+local type, next, rawget, rawset = type, next, rawget, rawset
+
+local setmetatableindex = table.setmetatableindex
+local formatters = string.formatters
+local concat = table.concat
+local keys = table.keys
+local insert = table.insert
+local sortedhash = table.sortedhash
+local find = string.find
+local stripstring = string.strip
+local sequenced = table.sequenced
+local round = math.round
+local nuts = nodes.nuts
+
+local tonut = nodes.tonut
+local tonode = nodes.tonode
+
+local getdirection = nuts.getdirection
+local getlist = nuts.getlist
+local getoffsets = nuts.getoffsets
+local getorientation = nuts.getorientation
+local getanchors = nuts.getanchors
+local getgeometry = nuts.getgeometry
+local getxyscales = nuts.getxyscales
+local getwhd = nuts.getwhd
+local getkern = nuts.getkern
+local getheight = nuts.getheight
+local getdepth = nuts.getdepth
+----- getwidth = nuts.getwidth
+local getnext = nuts.getnext
+local getsubtype = nuts.getsubtype
+local getid = nuts.getid
+local getleader = nuts.getleader
+----- getglue = nuts.getglue
+local getshift = nuts.getshift
+local getreplace = nuts.getreplace
+local setreplace = nuts.setreplace
+local getfont = nuts.getfont
+
+local getglyphdimensions = nuts.getglyphdimensions
+local getkerndimension = nuts.getkerndimension
+local getlistdimensions = nuts.getlistdimensions
+local getruledimensions = nuts.getruledimensions
+
+local setdirection = nuts.setdirection
+local setlink = nuts.setlink
+
+local isglyph = nuts.isglyph
+----- nextdir = nuts.traversers.dir
+local nextnode = nuts.traversers.node
+
+local effectiveglue = nuts.effectiveglue
+local dirdimensions = nuts.dirdimensions
+
+local fonthashes = fonts.hashes
+local fontdata = fonthashes.identifiers
+local characters = fonthashes.characters
+local parameters = fonthashes.parameters
+
+local nodecodes = nodes.nodecodes
+local whatsitcodes = nodes.whatsitcodes
+local gluecodes = nodes.gluecodes
+local dirvalues = nodes.dirvalues
+local subtypes = nodes.subtypes
+
+local lefttoright_code = dirvalues.lefttoright
+local righttoleft_code = dirvalues.righttoleft
+
+local glyph_code = nodecodes.glyph
+local kern_code = nodecodes.kern
+local glue_code = nodecodes.glue
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+local dir_code = nodecodes.dir
+local disc_code = nodecodes.disc
+local math_code = nodecodes.math
+local rule_code = nodecodes.rule
+local whatsit_code = nodecodes.whatsit
+
+local virtualrule_code = nodes.rulecodes.virtual
+
+local leaders_code = gluecodes.leaders
+local cleaders_code = gluecodes.cleaders
+local xleaders_code = gluecodes.xleaders
+local gleaders_code = gluecodes.gleaders
+
+local spaceskip_code = gluecodes.spaceskip
+
+local getpagedimensions = layouts.getpagedimensions
+
+local drivers = drivers
+
+local report = logs.reporter("drivers")
---------------------------------------------------------------------------------------
+-- For the moment rules need at least some height but maybe some day we let user rules
+-- fall through or have some way to force a rule via some property.
+---------------------------------------------------------------------------------------
local lastfont = nil
local fontcharacters = nil
local magicconstants = tex.magicconstants
-local trueinch = magicconstants.trueinch
local maxdimen = magicconstants.maxdimen
-local running = magicconstants.running
+local runningrule = magicconstants.runningrule
local pos_h = 0
local pos_v = 0
local pos_r = lefttoright_code
local shippingmode = "none"
-local abs_max_v = 0
-local abs_max_h = 0
-
local shipbox_h = 0
local shipbox_v = 0
local page_size_h = 0
local page_size_v = 0
------ page_h_origin = 0 -- trueinch
------ page_v_origin = 0 -- trueinch
local initialize
local finalize
@@ -152,6 +143,10 @@ function drivers.getvpos() return round(pos_v) end
-- characters
+-- experiment (smaller page stream but might be fragile)
+
+local tospace = false directives.register("backends.spaces", function(v) tospace = v end)
+
local flush_character do
local stack = setmetatableindex("table")
@@ -159,213 +154,318 @@ local flush_character do
local nesting = 0
local main = 0
- -- experiment (smaller page stream but might be fragile)
-
- local tospace = false directives.register("backends.spaces", function(v) tospace = v end)
-
-- todo: cache streams
- local default = 16384 * number.dimenfactors.bp -- 65536 // 4
+ local default = 16384 -- * number.dimenfactors.bp -- 65536 // 4
+ local refactored = 1000000 -- expansion related
local vfinjectors = fonts.helpers.vfinjectors
- local function flush_vf_packet(current,pos_h,pos_v,pos_r,font,char,data,factor,vfcommands,sx,sy)
+ -- current can go
+ -- local alternative = false -- more local, can be an option: vf.commands.local
+
+ local function flush_vf_packet(current,pos_h,pos_v,pos_r,font,char,data,csx,csy,factor,sx,sy,vfcommands)
if nesting > 100 then
return
elseif nesting == 0 then
main = font
+ -- if alternative then
+ -- local s = stack[0]
+ -- s[1] = pos_h
+ -- s[2] = pos_v
+ -- s[3] = pos_r
+ -- end
+ else
+ -- if alternative then
+ -- local s = stack[0]
+ -- pos_h = s[1]
+ -- pos_v = s[2]
+ -- pos_r = s[3]
+ -- end
end
nesting = nesting + 1
+ local savedlevel = level
+
+ local function push()
+ level = level + 1
+ local s = stack[level]
+ s[1] = pos_h
+ s[2] = pos_v
+ s[3] = pos_r
+ end
+
+ local function pop()
+ if level > 0 then
+ local s = stack[level]
+ pos_h = s[1]
+ pos_v = s[2]
+ pos_r = s[3]
+ level = level - 1
+ end
+ end
+
+ -- push() -- or:
+
local saved_h = pos_h
local saved_v = pos_v
local saved_r = pos_r
+
pos_r = lefttoright_code
- local data = fontdata[font]
- local fnt = font
- local fonts = data.fonts
- local siz = (data.parameters.factor or 1)/65536
+ local fdata = fontdata[font] -- offsets etc
+ local fnt = font
+ local fonts = fdata.fonts
+ local siz = (fdata.parameters.factor or 1)/65536
+
+ -- An alternative where we (here) locally define handlers like this:
+ --
+ -- if not vfinjectors then
+ -- function vfinjectors.char(hpos,vpos,packet)
+ -- -- .... access: font, char, factor, sx, xy
+ -- end
+ -- end
+ --
+ -- doesn't work because accessing the parameters passed to the outer function doesn't
+ -- work as expected (so we end up in a nesting loop). I remember hitting this somewhat
+ -- unexpected feature before.
+
+ local scale = data.scale
+ local xoffset = data.xoffset
+ local yoffset = data.yoffset
+
+ if scale then
+ sx = scale * sx
+ sy = scale * sy
+ end
- local function flushchar(font,char,fnt,chr,f,e)
- if fnt then
+ -- -- example of usage needed (nested vf)
+
+ if csx then
+ sx = sx * csx
+ csx = 1
+ end
+ if csy then
+ sy = sy * csy
+ csy = 1
+ end
+
+ if xoffset and xoffset ~= 0 then
+ if factor ~= 0 then
+ xoffset = xoffset + xoffset * factor / refactored -- expansion
+ end
+ pos_h = pos_h + xoffset * sx
+ end
+
+ if yoffset and yoffset ~= 0 then
+ pos_v = pos_v + yoffset * sy
+ end
+
+ -- we assume resolved fonts: id mandate but maybe also size
+
+ local function flushchar(fnt,chr,csx,csy) -- can't be moved out of the function due to binding locals
+ if fnt then -- to the function variables etc etc ... kind of messy
local nest = char ~= chr or font ~= fnt
if fnt == 0 then
fnt = main
end
- return flush_character(current,fnt,chr,factor,nest,pos_h,pos_v,pos_r,f,e)
+ if csx then
+ csx = csx * sx
+ else
+ csx = sx
+ end
+ if csy then
+ csy = csy * sy
+ else
+ csy = sy
+ end
+ -- here no current!
+ -- return flushcharacter(false,pos_h,pos_v,pos_r,fnt,chr,nil,csx,csy,factor,sx,sy)
+ return flush_character(false,fnt,chr,factor,nest,pos_h,pos_v,pos_r,csx,csy)
else
return 0
end
end
- -- we assume resolved fonts: id mandate but maybe also size
-
- -- we could map left, right, up, down -> offset
- -- we could map char, font, slot to -> slot
-
for i=1,#vfcommands do
- local packet = vfcommands[i]
- local command = packet[1]
- if command == "char" then
- local chr = packet[2]
- local f = packet[3]
- local e = packet[4]
- pos_h = pos_h + flushchar(font,char,fnt,chr,f,e)
- elseif command == "slot" then
- local index = packet[2]
- local chr = packet[3]
- local f = packet[4]
- local e = packet[5]
- if index == 0 then
- pos_h = pos_h + flushchar(font,char,font,chr,f,e)
- else
- local okay = fonts and fonts[index]
- if okay then
- local fnt = okay.id
- if fnt then
- pos_h = pos_h + flushchar(font,char,fnt,chr,f,e)
- end
- else
- -- safeguard, we assume the font itself (often index 1)
- pos_h = pos_h + flushchar(font,char,font,chr,f,e)
- end
- end
- elseif command == "use" then
- local index = packet[2]
- if index then
- local fnt
+ local packet = vfcommands[i]
+ if packet then
+ local command = packet[1]
+ if command == "char" then
+ local chr = packet[2]
+ local csx = packet[3]
+ local csy = packet[4] or csx
+ pos_h = pos_h + flushchar(fnt,chr,csx,csy)
+* sx
+ elseif command == "slot" then
+ local index = packet[2]
+ local chr = packet[3]
+ local csx = packet[4]
+ local csy = packet[5] or csx
if index == 0 then
- fnt = font
+ pos_h = pos_h + flushchar(font,chr,csx,csy)
+* sx
else
local okay = fonts and fonts[index]
if okay then
- fnt = okay.id
+ local fnt = okay.id
+ if fnt then
+ if fnt == 0 then
+ fnt = font
+ end
+ pos_h = pos_h + flushchar(fnt,chr,csx,csy)
+* sx
+ end
+ else
+ -- safeguard, we assume the font itself (often index 1)
+ pos_h = pos_h + flushchar(font,chr,csx,csy)
+* sx
end
end
- if fnt then
- -- not efficient but ok for now as experiment
- local d = characters[fnt]
- if d then
- for i=3,#packet do
- local chr = packet[i]
- local dat = d[chr]
- if dat then
- flushfontchar(fnt,chr,dat)
+ elseif command == "use" then
+ local index = packet[2]
+ if index then
+ local fnt
+ if index == 0 then
+ fnt = font
+ else
+ local okay = fonts and fonts[index]
+ if okay then
+ fnt = okay.id
+ end
+ end
+ if fnt then
+ -- not efficient but ok for now as experiment
+ local d = characters[fnt]
+ if d then
+ for i=3,#packet do
+ local chr = packet[i]
+ local dat = d[chr]
+ if dat then
+ flushfontchar(fnt,chr,dat)
+ end
end
end
end
end
- end
- elseif command == "right" then
- local h = packet[2] -- already scaled
- if h ~= 0 then
- if factor ~= 0 then
- h = h + h * factor / 1000 -- expansion
+ elseif command == "right" then
+ local h = packet[2] -- already scaled
+ if h ~= 0 then
+ if factor ~= 0 then
+ h = h + h * factor / refactored -- expansion
+ end
+ pos_h = pos_h + h * sx
end
- pos_h = pos_h + h * sx
- end
- elseif command == "left" then
- local h = packet[2] -- already scaled
- if h ~= 0 then
- if factor ~= 0 then
- h = h + h * factor / 1000 -- expansion
+ elseif command == "left" then
+ local h = packet[2] -- already scaled
+ if h ~= 0 then
+ if factor ~= 0 then
+ h = h + h * factor / refactored -- expansion
+ end
+ pos_h = pos_h - h * sx
end
- pos_h = pos_h - h * sx
- end
- elseif command == "down" then
- local v = packet[2] -- already scaled
- if v and v ~= 0 then
- pos_v = pos_v - v * sy
- end
- elseif command == "up" then
- local v = packet[2] -- already scaled
- if v and v ~= 0 then
- pos_v = pos_v + v * sy
- end
- elseif command == "offset" then
- local ph = pos_h
- local pv = pos_v
- local h = packet[2] or 0
- local v = packet[3] or 0
- local c = packet[4]
- if h ~= 0 then
- if factor ~= 0 then
- h = h + h * factor / 1000 -- expansion
+ elseif command == "down" then
+ local v = packet[2] -- already scaled
+ if v and v ~= 0 then
+ pos_v = pos_v - v * sy
end
- pos_h = pos_h + h * sx
- end
- if v and v ~= 0 then
- pos_v = pos_v + v * sy
- end
- if c then
- flushchar(font,char,fnt,c)
- pos_h = ph
- pos_v = pv
- end
- elseif command == "compose" then
- local ph = pos_h
- local pv = pos_v
- local h = packet[2] or 0
- local v = packet[3] or 0
- local c = packet[4]
- if h ~= 0 then
- if factor ~= 0 then
- h = h + h * factor / 1000 -- expansion
+ elseif command == "up" then
+ local v = packet[2] -- already scaled
+ if v and v ~= 0 then
+ pos_v = pos_v + v * sy
end
- pos_h = pos_h + h * sx
- end
- if v and v ~= 0 then
- pos_v = pos_v + v * sy
- end
- if c then
- flushchar(font,char,fnt,c)
- pos_h = ph
- pos_v = pv
- end
- elseif command == "push" then
- level = level + 1
- local s = stack[level]
- s[1] = pos_h
- s[2] = pos_v
- elseif command == "pop" then
- if level > 0 then
- local s = stack[level]
- pos_h = s[1]
- pos_v = s[2]
- level = level - 1
- end
- elseif command == "rule" then
- local size_v = packet[2]
- local size_h = packet[3]
- if size_h > 0 and size_v > 0 then
- if factor ~= 0 then
- size_h = size_h + size_h * factor / 1000
+ elseif command == "offset" then
+ local c = packet[4]
+ if c then
+ local ph = pos_h
+ local pv = pos_v
+ local csx = packet[5]
+ local csy = packet[6] or csx
+ local h = packet[2]
+ local v = packet[3]
+ if h and h ~= 0 then
+ if factor ~= 0 then
+ h = h + h * factor / refactored -- expansion
+ end
+ pos_h = pos_h + h * sx
+ end
+ if v and v ~= 0 then
+ pos_v = pos_v + v * sy
+ end
+ flushchar(fnt,c,csx,csy)
+ pos_h = ph
+ pos_v = pv
end
- if size_h > 0 then
- size_h = size_h * sx
- size_v = size_v * sy
- flushsimplerule(pos_h,pos_v,pos_r,size_h,size_v)
- pos_h = pos_h + size_h
+ elseif command == "stay" then
+ -- we can do a fast one if needed, it's more an experiment
+ push()
+ flushchar(font,packet[2],1,1)
+ pop()
+ elseif command == "compose" then -- for now idem
+ local ph = pos_h
+ local pv = pos_v
+ local h = packet[2] or 0
+ local v = packet[3] or 0
+ local c = packet[4]
+ if h ~= 0 then
+ if factor ~= 0 then
+ h = h + h * factor / refactored -- expansion
+ end
+ pos_h = pos_h + h * sx
end
- end
- elseif command == "frame" then
- -- d:width d:height d:depth d:rulethickness b:outline b:advance b:baseline s:color
- local width = packet[2]
- if width > 0 then
- local height = packet[3] or 0
- local depth = packet[4] or 0
- local total = height + depth
- if total > 0 then
+ if v and v ~= 0 then
+ pos_v = pos_v + v * sy
+ end
+ if c then
+ flushchar(fnt,c)
+ pos_h = ph
+ pos_v = pv
+ end
+ elseif command == "push" then
+ push()
+ elseif command == "pop" then
+ pop()
+ elseif command == "frame" then
+ -- d:width d:height d:depth d:rulethickness b:outline b:advance b:baseline s:color
+ local width = packet[2]
+ local height = packet[3]
+ local depth = packet[4]
+ local wd, ht, dp
+ if width == true or height == true or depth == true then
+ wd, ht, dp = getwhd(current,true)
+ end
+ if width == true then
+ width = wd
+ elseif not width then
+ width = 0
+ end
+ if height == true then
+ height = ht
+ elseif not height then
+ height = 0
+ end
+ if depth == true then
+ depth = dp
+ elseif not depth then
+ depth = 0
+ end
+ local total = height + depth
+ if width > 0 and total > 0 then
if factor ~= 0 then
- width = width + width * factor / 1000
+ width = width + width * factor / refactored
end
if width > 0 then
- local line = packet[5] or default
- local outline = not packet[6]
- local advance = not packet[7]
+ local line = packet[5] or default
+ local outline = packet[6]
+ local advance = packet[7]
+ if outline == nil then
+ outline = true
+ end
+ if advance == nil then
+ advance = true
+ end
local baseline = outline and packet[8]
local color = packet[9] -- no longer needed probably
if color then
@@ -383,56 +483,110 @@ local flush_character do
end
end
end
- end
- elseif command == "font" then
- local index = packet[2]
- local okay = fonts and fonts[index]
- if okay then
- fnt = okay.id or fnt -- or maybe just return
- end
- elseif command == "lua" then
- local code = packet[2]
- local kind = type(code)
- if kind ~= "function" then
- code = loadstring(code)
- kind = type(code)
- end
- if kind == "function" then
- code(font,char,pos_h,pos_v,sx,sy)
- end
- elseif command == "node" then -- obsolete
- local h = packet[2]
- hlist_out(h,getlist(h))
- else
- local injector = vfinjectors[command]
- if injector then
- injector(pos_h,pos_v,packet)
+ elseif command == "rule" then
+ local size_v = packet[2]
+ local size_h = packet[3]
+ if size_h > 0 and size_v > 0 then
+ if factor ~= 0 then
+ size_h = size_h + size_h * factor / refactored
+ end
+ if size_h > 0 then
+ size_h = size_h * sx
+ size_v = size_v * sy
+ flushsimplerule(pos_h,pos_v,pos_r,size_h,size_v)
+ pos_h = pos_h + size_h
+ end
+ end
+ elseif command == "line" then
+ local wd = packet[2] or 0
+ local ht = packet[3] or 0
+ local dp = packet[4] or 0
+ if wd > 0 and ht ~= 0 and dp ~= 0 then
+ if factor ~= 0 then
+ wd = wd + wd * factor / refactored
+ end
+ if wd > 0 then
+ wd = wd * sx
+ ht = ht * sy
+ dp = dp * sy
+ local color = packet[5] -- no longer needed probably
+ if color then
+ vfinjectors.startcolor(pos_h,pos_v,color) -- takes packet or string
+ end
+ flushsimplerule(pos_h,pos_v-dp,pos_r,wd,ht+dp)
+ if color then
+ vfinjectors.stopcolor()
+ end
+ pos_h = pos_h + wd
+ end
+ end
+ elseif command == "font" then
+ local index = packet[2]
+ local okay = fonts and fonts[index]
+ if okay then
+ fnt = okay.id or fnt -- or maybe just return
+ end
+ elseif command == "lua" then
+ local code = packet[2]
+ local kind = type(code)
+ if kind ~= "function" then
+ code = loadstring(code)
+ kind = type(code)
+ end
+ if kind == "function" then
+ code(font,char,pos_h,pos_v,sx,sy) -- maybe also packet
+ end
+ elseif command == "node" then
+ local h = packet[2]
+ hlist_out(h,getlist(h))
+ -- elseif command == "pdf" then
+ -- unsupported
+ -- elseif command == "pdfmode" then
+ -- unsupported
+ -- elseif command == "special" then
+ -- unsupported
+ -- elseif command == "nop" then
+ -- just ignored
+ -- elseif command == "image" then
+ -- unsupported, use "node"
+ elseif command == "inspect" then
+ inspect(vfcommands)
+ elseif command == "trace" then
+ report("virtual state: h=%p v=%p d=%i",pos_h,pos_v,pos_r)
+ else
+ local injector = vfinjectors[command]
+ if injector then
+ injector(pos_h,pos_v,packet) -- maybe also sx, sy but then we need to check usage
+ end
end
end
- -- image : not needed, maybe some day
- -- pdfmode : not used
- -- special : makes no sense
- -- nop : the official ignore
- -- scale : not supported
end
+ -- pop() -- or:
+
pos_h = saved_h
pos_v = saved_v
pos_r = saved_r
+ if savedlevel ~= level then
+ report("")
+ report("virtual state: stack is corrupt")
+ report("")
+ end
+ level = savedlevel
+
nesting = nesting - 1
+
end
local onetimemessage -- could be defined later (todo: make plug for this)
- local getxyscales = nuts.getxyscales
-
- flush_character = function(current,font,char,factor,vfcommands,pos_h,pos_v,pos_r,f,e)
+ flush_character = function(current,font,char,factor,vfcommands,pos_h,pos_v,pos_r,csx,csy)
if font ~= lastfont then
lastfont = font
fontcharacters = characters[font]
- updatefontstate(font)
+ updatefontstate(font) -- can move to lpdf-lmt, cleaner
end
local data = fontcharacters[char]
@@ -445,20 +599,25 @@ local flush_character do
end
return 0, 0, 0
end
+
if vfcommands then
vfcommands = data.commands
end
local width, height, depth, naturalwidth, sx, sy
if current then
- naturalwidth, height, depth, factor = getwhd(current,true) -- also get corrected width
- sx, sy = getxyscales(current) -- maybe: getwhdfs
- if factor == 0 then
- width = naturalwidth
- else
- -- width = (1.0 + factor/1000000.0) * naturalwidth
- width = naturalwidth + naturalwidth * factor/1000000.0
- -- width = naturalwidth + naturalwidth * 0.000001 * factor
- end
+ -- if true then
+ width, height, depth, factor, sx, sy = getglyphdimensions(current)
+ -- else
+ -- naturalwidth, height, depth, factor = getwhd(current,true) -- also get corrected width
+ -- sx, sy = getxyscales(current)
+ -- if factor == 0 then
+ -- width = naturalwidth
+ -- else
+ -- -- width = (1.0 + factor/1000000.0) * naturalwidth
+ -- width = naturalwidth + naturalwidth * factor/1000000.0
+ -- -- width = naturalwidth + naturalwidth * 0.000001 * factor
+ -- end
+ -- end
else
width = data.width or 0
height = data.height or 0
@@ -474,24 +633,16 @@ local flush_character do
pos_h = pos_h - width -- here ?
end
if vfcommands then
- flush_vf_packet(current,pos_h,pos_v,pos_r,font,char,data,factor,vfcommands,sx,sy) -- also f ?
+ flush_vf_packet(current,pos_h,pos_v,pos_r,font,char,data,csx,csy,factor,sx,sy,vfcommands)
else
- -- kind of messy that we do orientation here and offsets elsewhere .. this might change
- local orientation = data.orientation
+ local orientation = data.orientation -- 0 (none), 1, 2, 3 or 4 (none)
if orientation and (orientation == 1 or orientation == 3) then
- local x = data.xoffset
- local y = data.yoffset
- if x then
- pos_h = pos_h + x
- end
- if y then
- pos_v = pos_v + y
- end
+ -- we can get weird charactersbox tracing here
pushorientation(orientation,pos_h,pos_v)
- flushcharacter(current,pos_h,pos_v,pos_r,font,char,data,f,e,factor,sx,sy) -- ,naturalwidth,width)
+ flushcharacter(current,pos_h,pos_v,pos_r,font,char,data,csx,csy,factor,sx,sy)
poporientation(orientation,pos_h,pos_v)
else
- flushcharacter(current,pos_h,pos_v,pos_r,font,char,data,f,e,factor,sx,sy) -- ,naturalwidth,width)
+ flushcharacter(current,pos_h,pos_v,pos_r,font,char,data,csx,csy,factor,sx,sy)
end
end
return width, height, depth
@@ -510,8 +661,6 @@ local function reset_state()
shippingmode = "none"
page_size_h = 0
page_size_v = 0
- -- page_h_origin = 0 -- trueinch
- -- page_v_origin = 0 -- trueinch
end
-- local function dirstackentry(t,k)
@@ -527,23 +676,67 @@ end
--
-- local dirstack = setmetatableindex(dirstackentry)
--
--- local function reset_dir_stack()
+-- local function reset_directions()
-- dirstack = setmetatableindex(dirstackentry)
-- end
local dirstack = { }
+local anchors = { }
+local befores = setmetatableindex("table")
+local afters = setmetatableindex("table")
+local stired = false
-local function reset_dir_stack()
+local function reset_directions()
dirstack = { }
end
+local function reset_anchors()
+ anchors = { }
+end
+
+interfaces.implement {
+ name = "registeranchorbox",
+ public = true,
+ protected = true,
+ arguments = { "integer", "integer", "box" },
+ actions = function(anchor,where,box)
+ box = tonut(box)
+ insert(where < 0 and befores[anchor] or afters[anchor],box)
+ stored = true
+ end
+}
+
local hlist_out, vlist_out do
- local function applyanchor(orientation,x,y,width,height,depth,woffset,hoffset,doffset,xoffset,yoffset)
- local ot = extract(orientation, 0,4)
- local ay = extract(orientation, 4,4)
- local ax = extract(orientation, 8,4)
- local of = extract(orientation,12,4)
+ local finalize = nodes.handlers.finalizelist
+ local flushnode = nuts.flushnode
+
+ local function flushstored(current,source,before)
+ local t = before and befores or afters
+ local s = rawget(t,source)
+ if s then
+ for i=1,#s do
+ local si = s[i]
+ if si then
+ local box = si -- si[1]
+ finalize(box) -- tricky: we might need to group
+ if getid(box) == vlist_code then
+ vlist_out(current,box)
+ else
+ hlist_out(current,box)
+ end
+ flushnode(box)
+ s[i] = false
+ end
+ end
+ rawset(t,source,nil)
+ end
+ end
+
+ local function applyorientation(orientation,x,y,width,height,depth,woffset,hoffset,doffset,xoffset,yoffset)
+ local ot = (orientation >> 0) & 0x0F
+ local ay = (orientation >> 4) & 0x0F
+ local ax = (orientation >> 8) & 0x0F
if ot == 4 then
ot, ay = 0, 1
elseif ot == 5 then
@@ -581,32 +774,73 @@ local hlist_out, vlist_out do
return ot, x + xoffset, y - yoffset
end
- -- to be checked: begin- or enddir kan nil zijn, weird
+ local function applyanchor(anchor,shift,anchor_h,anchor_v,width,height,depth)
+ local h = 0
+ local v = 0
+ local a = anchor & 0x00FF
+ local s = anchor & 0x0F00
+ if a == 0x02 then
+ v = height
+ elseif a == 0x03 then
+ v = - depth
+ elseif a == 0x04 then
+ h = width
+ elseif a == 0x05 then
+ h = width
+ v = height
+ elseif a == 0x06 then
+ h = width
+ v = - depth
+ elseif a == 0x07 then
+ h = width/2
+ elseif a == 0x08 then
+ h = width/2
+ v = height
+ elseif a == 0x09 then
+ h = width/2
+ v = - depth
+ elseif a == 0x0A then -- halfway_total_anchor
+ h = width/2
+ v = height/2 - depth/2
+ elseif a == 0x0B then -- halfway_height_anchor
+ h = width/2
+ v = height/2
+ elseif a == 0x0C then -- halfway_depth_anchor
+ h = width/2
+ v = - depth/2
+ elseif a == 0x0D then -- halfway_left_anchor
+ v = height/2 - depth/2
+ elseif a == 0x0E then -- halfway_right_anchor
+ h = width
+ v = height/2 - depth/2
+ end
+ if not shift then
+ h = -h
+ v = -v
+ end
+ if s == 0x100 then
+ h = -h
+ elseif s == 0x200 then
+ v = -v
+ elseif s == 0x300 then
+ h = -h
+ v = -v
+ else
+ end
+ anchor_h = anchor_h + h
+ anchor_v = anchor_v + v
+ return anchor_h, anchor_v
+ end
- -- local function calculate_width_to_enddir(this_box,begindir) -- can be a helper
- -- local dir_nest = 1
- -- local enddir = begindir
- -- for current, subtype in nextdir, getnext(begindir) do
- -- if subtype == normaldir_code then -- todo
- -- dir_nest = dir_nest + 1
- -- else
- -- dir_nest = dir_nest - 1
- -- end
- -- if dir_nest == 0 then -- does the type matter
- -- enddir = current
- -- local width = rangedimensions(this_box,begindir,enddir)
- -- return enddir, width
- -- end
- -- end
- -- if enddir == begindir then
- -- local width = rangedimensions(this_box,begindir) -- ,enddir)
- -- return enddir, width
- -- end
- -- return enddir, 0
- -- end
+ drivers.applyanchor = applyanchor
+ drivers.applyorientation = applyorientation
+
+ -- to be checked: begin- or enddir kan nil zijn, weird
-- check frequencies of nodes
+ local eps <const> = 10
+
hlist_out = function(this_box,current)
local ref_h = pos_h
local ref_v = pos_v
@@ -617,7 +851,7 @@ local hlist_out, vlist_out do
boxdepth = getwhd(this_box)
local cur_h = 0
- local cur_v = 0
+ -- local cur_v = 0
-- if not current then
-- current = getlist(this_box)
@@ -635,26 +869,30 @@ local hlist_out, vlist_out do
else
pos_h = ref_h + (cur_h + x_offset)
end
- pos_v = ref_v - (cur_v - y_offset)
+ -- pos_v = ref_v - (cur_v - y_offset)
+ pos_v = ref_v + y_offset
-- synced
end
pos_v = pos_v + raise
pos_h = pos_h - left
local wd = flush_character(current,font,char,false,true,pos_h,pos_v,pos_r)
- cur_h = cur_h + wd - right
+ -- cur_h = cur_h + wd - right -- hm, no left here?
+ cur_h = cur_h + wd -- see new tabulate alignment code
elseif id == glue_code then
- local gluewidth = effectiveglue(current,this_box)
+ -- local gluewidth = effectiveglue(current,this_box)
+ local gluewidth = effectiveglue(current,this_box,true)
if gluewidth ~= 0 then
if subtype >= leaders_code then
local leader = getleader(current)
if leader then
- local width, height, depth = getwhd(leader)
- if getid(leader) == rule_code then
+ local id = getid(leader)
+ if id == rule_code then
if gluewidth > 0 then
- if height == running then
+ local width, height, depth = getwhd(leader)
+ if height == runningrule then
height = boxheight
end
- if depth == running then
+ if depth == runningrule then
depth = boxdepth
end
local total = height + depth
@@ -667,67 +905,113 @@ local hlist_out, vlist_out do
end
cur_h = cur_h + gluewidth
end
- elseif width > 0 and gluewidth > 0 then
- local boxdir = getdirection(leader) or lefttoright_code
- gluewidth = gluewidth + 10
- local edge = cur_h + gluewidth
- local lx = 0
- if subtype == gleaders_code then
- local save_h = cur_h
- if pos_r == righttoleft_code then
- cur_h = ref_h - shipbox_h - cur_h
- cur_h = width * (cur_h / width)
- cur_h = ref_h - shipbox_h - cur_h
- else
- cur_h = cur_h + ref_h - shipbox_h
- cur_h = width * (cur_h / width)
- cur_h = cur_h - ref_h - shipbox_h
- end
- if cur_h < save_h then
- cur_h = cur_h + width
- end
- elseif subtype == leaders_code then
- local save_h = cur_h
- cur_h = width * (cur_h / width)
- if cur_h < save_h then
- cur_h = cur_h + width
- end
- else
- lq = gluewidth / width
- lr = gluewidth % width
- if subtype == cleaders_code then
+ elseif (id == hlist_code or id == vlist_code or id == glyph_code) and gluewidth > 0 then
+ local width, height, depth = getwhd(leader)
+ -- no need for //
+ if width > 0 then
+ gluewidth = gluewidth + eps
+ local edge = cur_h + gluewidth
+ local lx = 0
+ if subtype == gleaders_code then
+ local save_h = cur_h
+ if pos_r == righttoleft_code then
+ cur_h = ref_h - shipbox_h + cur_h
+ cur_h = width * (cur_h / width)
+ cur_h = ref_h - shipbox_h - cur_h
+ else
+ cur_h = ref_h - shipbox_h - cur_h
+ cur_h = width * (cur_h / width)
+ cur_h = ref_h - shipbox_h - cur_h
+ end
+ if cur_h < save_h then
+ cur_h = cur_h + width
+ end
+ local lr = gluewidth % width
cur_h = cur_h + lr / 2
+ elseif subtype == leaders_code then
+ local save_h = cur_h
+ cur_h = width * (cur_h / width)
+ if cur_h < save_h then
+ cur_h = cur_h + width
+ end
else
- lx = lr / (lq + 1)
- cur_h = cur_h + (lr - (lq - 1) * lx) / 2
- end
- end
- local shift = getshift(leader)
- pushleaderlevel()
- while cur_h + width <= edge do
- local basepoint_h = 0
- -- local basepoint_v = shift
- if boxdir ~= pos_r then
- basepoint_h = boxwidth
- end
- -- synch_pos_with_cur(ref_h,ref_v,cur_h + basepoint_h,shift)
- if pos_r == righttoleft_code then
- pos_h = ref_h - (cur_h + basepoint_h)
- else
- pos_h = ref_h + (cur_h + basepoint_h)
+ local lq = gluewidth / width
+ local lr = gluewidth % width
+ if subtype == cleaders_code then
+ cur_h = cur_h + lr / 2
+ else
+ lx = lr / (lq + 1)
+ cur_h = cur_h + (lr - (lq - 1) * lx) / 2
+ end
end
- pos_v = ref_v - shift
- -- synced
- if getid(leader) == vlist_code then
- vlist_out(leader,getlist(leader))
+ if id == glyph_code then
+ local char, font = isglyph(leader)
+ local x_offset, y_offset, left, right, raise = getoffsets(leader)
+ local h = ref_h
+ local v = ref_v
+ if x_offset ~= 0 or y_offset ~= 0 then
+ if pos_r == righttoleft_code then
+ h = h - x_offset
+ else
+ h = h + x_offset
+ end
+ v = v + y_offset
+ end
+ v = v + raise
+ h = h - left
+ local basepoint_h = 0
+ if boxdir ~= pos_r then
+ basepoint_h = boxwidth
+ end
+ if pos_r == righttoleft_code then
+ pos_h = h - basepoint_h
+ else
+ pos_h = h + basepoint_h
+ end
+ while cur_h + width <= edge do
+ if pos_r == righttoleft_code then
+ pos_h = h - cur_h
+ else
+ pos_h = h + cur_h
+ end
+ pos_v = v
+ flush_character(leader,font,char,false,true,pos_h,pos_v,pos_r)
+ cur_h = cur_h + width + lx
+ end
else
- hlist_out(leader,getlist(leader))
+ local shift = isglyph and 0 or getshift(leader)
+ local boxdir = getdirection(leader) or lefttoright_code
+ pushleaderlevel()
+ while cur_h + width <= edge do
+ -- todo: move some out of loop as above
+ local basepoint_h = 0
+ -- local basepoint_v = shift
+ if boxdir ~= pos_r then
+ basepoint_h = boxwidth
+ end
+ -- synch_pos_with_cur(ref_h,ref_v,cur_h + basepoint_h,shift)
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - (cur_h + basepoint_h)
+ else
+ pos_h = ref_h + (cur_h + basepoint_h)
+ end
+ pos_v = ref_v - shift
+ -- synced
+ if id == vlist_code then
+ vlist_out(leader,getlist(leader))
+ else
+ hlist_out(leader,getlist(leader))
+ end
+ cur_h = cur_h + width + lx
+ end
+ popleaderlevel()
end
- cur_h = cur_h + width + lx
+ cur_h = edge - eps
+ else
+ cur_h = cur_h + gluewidth
end
- popleaderlevel()
- cur_h = edge - 10
else
+ -- maybe some day also glyphs
cur_h = cur_h + gluewidth
end
else
@@ -735,130 +1019,216 @@ local hlist_out, vlist_out do
end
else
if tospace and subtype == spaceskip_code then
- -- todo: flush_space
- flush_character(false,getfont(current),32,false,true,pos_h,pos_v,pos_r) -- we need tp pass current for scale?
+ -- kind of tricky because because we can have a different sx sy
+ flush_character(false,getfont(current),32,false,true,pos_h,pos_v,pos_r) -- we need to pass current for scale?
end
cur_h = cur_h + gluewidth
end
end
elseif id == hlist_code or id == vlist_code then
- local width, height, depth = getwhd(current)
- local list = getlist(current)
+-- local width, height, depth = getwhd(current)
+-- local list = getlist(current)
+-- if list then
+-- local boxdir = getdirection(current) or lefttoright_code
+-- local shift = getshift(current)
+ local width, height, depth, shift, list = getlistdimensions(current)
if list then
- local boxdir = getdirection(current) or lefttoright_code
- local shift, orientation = getshift(current)
- if not orientation then
- local basepoint_h = boxdir ~= pos_r and width or 0
- -- local basepoint_v = shift
- if pos_r == righttoleft_code then
- pos_h = ref_h - (cur_h + basepoint_h)
- else
- pos_h = ref_h + (cur_h + basepoint_h)
- end
- pos_v = ref_v - shift
- -- synced
- if id == vlist_code then
- vlist_out(current,list)
- else
- hlist_out(current,list)
- end
- elseif orientation == 0x1000 then
- local orientation, xoffset, yoffset = getorientation(current)
- local basepoint_h = boxdir ~= pos_r and width or 0
- -- local basepoint_v = shift
- if pos_r == righttoleft_code then
- pos_h = ref_h - (cur_h + basepoint_h + xoffset)
- else
- pos_h = ref_h + (cur_h + basepoint_h + xoffset)
- end
- pos_v = ref_v - (shift - yoffset)
- -- synced
- if id == vlist_code then
- vlist_out(current,list)
- else
- hlist_out(current,list)
- end
- else
+-- local boxdir = getdirection(current) or lefttoright_code
+-- local geometry, hasoffset, hasorientation, hasanchor = getgeometry(current,true)
+ local geometry, hasoffset, hasorientation, hasanchor, boxdir = getgeometry(current,true)
+ local anchor, source, target, targetdata, s_anchor, t_anchor
+ local anc_h, anc_v
+ local usedorientation = false
+ if hasanchor then
+ anchor, source, target, s_anchor, t_anchor = getanchors(current)
+ end
+ if hasorientation then
local orientation, xoffset, yoffset, woffset, hoffset, doffset = getorientation(current)
- local orientation, basepoint_h, basepoint_v = applyanchor(orientation,0,shift,width,height,depth,woffset,hoffset,doffset,xoffset,yoffset)
+ local orientation, basepoint_h, basepoint_v = applyorientation(orientation,0,shift,width,height,depth,woffset,hoffset,doffset,xoffset,yoffset)
if orientation == 1 then
basepoint_h = basepoint_h + doffset
if boxdir == pos_r then
basepoint_v = basepoint_v - height
end
+ usedorientation = orientation
elseif orientation == 2 then
if boxdir == pos_r then
basepoint_h = basepoint_h + width
end
+ usedorientation = orientation
elseif orientation == 3 then
basepoint_h = basepoint_h + hoffset
if boxdir ~= pos_r then
basepoint_v = basepoint_v - height
end
+ usedorientation = orientation
+ end
+ if target then
+ targetdata = anchors[target]
+ if targetdata then
+ anc_h = basepoint_h
+ anc_v = - basepoint_v
+ goto posdone
+ end
end
if pos_r == righttoleft_code then
pos_h = ref_h - (cur_h + basepoint_h)
else
pos_h = ref_h + (cur_h + basepoint_h)
end
- pos_v = ref_v - (cur_v + basepoint_v)
- -- synced
- pushorientation(orientation,pos_h,pos_v,pos_r)
- if id == vlist_code then
- vlist_out(current,list)
+ -- pos_v = ref_v - (cur_v + basepoint_v)
+ pos_v = ref_v - basepoint_v
+ elseif hasoffset then
+-- local orientation, xoffset, yoffset = getorientation(current)
+ local xoffset, yoffset = getoffsets(current)
+ local basepoint_h = boxdir ~= pos_r and width or 0
+ local basepoint_v = shift
+ if target then
+ targetdata = anchors[target]
+ if targetdata then
+ anc_h = xoffset + basepoint_h
+ anc_v = yoffset - basepoint_v
+ goto posdone
+ end
+ end
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - (cur_h + basepoint_h + xoffset)
+ else
+ pos_h = ref_h + (cur_h + basepoint_h + xoffset)
+ end
+ pos_v = ref_v - (basepoint_v - yoffset)
+ elseif hasanchor then
+ local basepoint_h = boxdir ~= pos_r and width or 0
+ local basepoint_v = shift
+ if target then
+ targetdata = anchors[target]
+ if targetdata then
+ anc_h = basepoint_h
+ anc_v = - basepoint_v
+ goto posdone
+ end
+ end
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - (cur_h + basepoint_h)
else
- hlist_out(current,list)
+ pos_h = ref_h + (cur_h + basepoint_h)
+ end
+ pos_v = ref_v - basepoint_v
+ else
+ local basepoint_h = boxdir ~= pos_r and width or 0
+ local basepoint_v = shift
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - (cur_h + basepoint_h)
+ else
+ pos_h = ref_h + (cur_h + basepoint_h)
end
- poporientation(orientation,pos_h,pos_v,pos_r)
+ pos_v = ref_v - basepoint_v
+ end
+ goto process
+ ::posdone::
+ if pos_r == righttoleft_code then
+ pos_h = targetdata[1] - anc_h
+ else
+ pos_h = targetdata[1] + anc_h
+ end
+ pos_v = targetdata[2] + anc_v
+ if anchor and anchor > 0 then
+-- pos_h, pos_v = applyanchor(anchor,true,t_anchor,pos_h,pos_v,targetdata[3],targetdata[4],targetdata[5])
+-- pos_h, pos_v = applyanchor(anchor,false,s_anchor,pos_h,pos_v,width,height,depth)
+ pos_h, pos_v = applyanchor(t_anchor,true, pos_h,pos_v,targetdata[3],targetdata[4],targetdata[5])
+ pos_h, pos_v = applyanchor(s_anchor,false,pos_h,pos_v,width,height,depth)
+ end
+ ::process::
+ if source then
+ local anchor_h = pos_h
+ local anchor_v = pos_v
+ if usedorientation then
+ if usedorientation == 1 then
+ anchor_v = anchor_v - (width - height)
+ elseif usedorientation == 2 then
+ anchor_v = anchor_v - (depth - height)
+ elseif usedorientation == 3 then -- weird
+ anchor_v = anchor_v + (height - width)
+ end
+ end
+-- anchor_v = anchor_v + shift
+ anchors[source] = { anchor_h, anchor_v, width, height, depth }
+ end
+ if usedorientation then
+ pushorientation(usedorientation,pos_h,pos_v,pos_r)
+ end
+ if source and stored then
+ flushstored(current,source,true)
+ end
+ if id == vlist_code then
+ vlist_out(current,list)
+ else
+ hlist_out(current,list)
+ end
+ if source and stored then
+ flushstored(current,source,false)
+ end
+ if usedorientation then
+ poporientation(usedorientation,pos_h,pos_v,pos_r)
end
end
cur_h = cur_h + width
elseif id == kern_code then
- -- we can use getkerndimension(current) but then we get rounded values so for
- -- now we calculate ourselves
- local kern, factor = getkern(current,true)
- if kern ~= 0 then
- if factor ~= 0 then
- cur_h = cur_h + (1.0 + factor/1000000.0) * kern
- else
+ -- when we use getkerndimension we get rounded values
+ if true then
+ local kern = getkerndimension(current)
+ if kern ~= 0 then
cur_h = cur_h + kern
end
+ else
+ local kern, factor = getkern(current,true)
+ if kern ~= 0 then
+ if factor ~= 0 then
+ cur_h = cur_h + (1.0 + factor/1000000.0) * kern
+ else
+ cur_h = cur_h + kern
+ end
+ end
end
elseif id == rule_code then
- local width, height, depth = getwhd(current)
+ local width, height, depth, virtual = getruledimensions(current)
if width > 0 then
- if height == running then
+ if height == runningrule then
height = boxheight
end
- if depth == running then
+ if depth == runningrule then
depth = boxdepth
end
local total = height + depth
if total > 0 then
- local xoffset, yoffset, left, right = getoffsets(current) -- top bottom
- if left ~= 0 then
- pos_v = pos_v + left
- total = total - left
- end
- if right ~= 0 then
- depth = depth - right
- total = total - right
- end
+ local xoffset, yoffset, top, bottom = getoffsets(current)
if pos_r == righttoleft_code then
pos_h = pos_h - width
xoffset = - xoffset
end
+ if not virtual then
+ if top ~= 0 then
+ -- height = height - top
+ total = total - top
+ end
+ if bottom ~= 0 then
+ depth = depth - bottom
+ total = total - bottom
+ end
+ end
pos_v = pos_v - depth
flushrule(current,pos_h + xoffset,pos_v + yoffset,pos_r,width,total,subtype)
end
+ if not virtual then
+ cur_h = cur_h + width
+ end
end
- cur_h = cur_h + width
elseif id == math_code then
-- local kern = getkern(current)
-- if kern ~= 0 then
-- cur_h = cur_h + kern
-- else
- cur_h = cur_h + effectiveglue(current,this_box)
+ cur_h = cur_h + effectiveglue(current,this_box,true)
-- end
elseif id == dir_code then
-- We normally have proper begin-end pairs. A begin without end is (silently) handled
@@ -871,7 +1241,7 @@ local hlist_out, vlist_out do
ref_h = ds.ref_h
ref_v = ds.ref_v
cur_h = ds.cur_h
- cur_v = ds.cur_v
+ -- cur_v = ds.cur_v
else
-- pardir
end
@@ -885,7 +1255,7 @@ local hlist_out, vlist_out do
if enddir ~= current then
dirstack[enddir] = {
cur_h = new_h,
- cur_v = cur_v,
+ -- cur_v = cur_v,
ref_h = ref_h,
ref_v = ref_v,
}
@@ -896,12 +1266,13 @@ local hlist_out, vlist_out do
else
pos_h = ref_h + cur_h
end
- pos_v = ref_v - cur_v
+ -- pos_v = ref_v - cur_v
+ pos_v = ref_v
-- synced
ref_h = pos_h
ref_v = pos_v
cur_h = 0
- cur_v = 0
+ -- cur_v = 0
pos_r = dir
goto synced
end
@@ -916,7 +1287,7 @@ local hlist_out, vlist_out do
setlink(current,replace)
setreplace(current)
end
- -- elseif id == par_code and start_of_par(current) then
+ -- elseif id == par_code and startofpar(current) then
-- local pardir = getdirection(current) or lefttoright_code
-- if pardir == righttoleft_code then
-- end
@@ -932,7 +1303,8 @@ local hlist_out, vlist_out do
else
pos_h = ref_h + cur_h
end
- pos_v = ref_v - cur_v
+ -- pos_v = ref_v - cur_v
+ pos_v = ref_v
::synced::
end
pos_h = ref_h
@@ -950,15 +1322,16 @@ local hlist_out, vlist_out do
boxheight,
boxdepth = getwhd(this_box)
- local cur_h = 0
+ local cur_h = 0 -- needs checking .. needed ?
local cur_v = - boxheight
local top_edge = cur_v
- if pos_r == righttoleft_code then
- pos_h = ref_h - cur_h
- else
- pos_h = ref_h + cur_h
- end
+ -- if pos_r == righttoleft_code then
+ -- pos_h = ref_h - cur_h
+ -- else
+ -- pos_h = ref_h + cur_h
+ -- end
+ pos_h = ref_h
pos_v = ref_v - cur_v
-- synced
@@ -970,7 +1343,7 @@ local hlist_out, vlist_out do
-- local id = getid(current)
for current, id, subtype in nextnode, current do
if id == glue_code then
- local glueheight = effectiveglue(current,this_box)
+ local glueheight = effectiveglue(current,this_box,true)
if glueheight ~= 0 then
if subtype >= leaders_code then
local leader = getleader(current)
@@ -981,7 +1354,7 @@ local hlist_out, vlist_out do
depth = 0 -- hm
total = glueheight -- forgotten ... needs testing
if total > 0 then
- if width == running then
+ if width == runningrule then
width = boxwidth
end
if width > 0 then
@@ -1004,19 +1377,21 @@ local hlist_out, vlist_out do
if cur_v < save_v then
cur_v = cur_v + total
end
+ local lr = glueheight % total
+ cur_v = cur_v + lr / 2
elseif subtype == leaders_code then -- aleader
save_v = cur_v
- cur_v = top_edge + total * ((cur_v - top_edge) / total)
+ cur_v = top_edge + total * ((cur_v - top_edge) // total)
if cur_v < save_v then
cur_v = cur_v + total
end
else
- lq = glueheight / total
- lr = glueheight % total
+ local lq = glueheight / total
+ local lr = glueheight % total
if subtype == cleaders_code then
cur_v = cur_v + lr / 2
else
- ly = lr / (lq + 1)
+ ly = lr // (lq + 1)
cur_v = cur_v + (lr - (lq - 1) * ly) / 2
end
end
@@ -1049,102 +1424,189 @@ local hlist_out, vlist_out do
end
end
elseif id == hlist_code or id == vlist_code then
- local width, height, depth = getwhd(current)
- local list = getlist(current)
+-- local width, height, depth = getwhd(current)
+-- local list = getlist(current)
+-- if list then
+-- local boxdir = getdirection(current) or lefttoright_code
+-- local shift = getshift(current)
+ local width, height, depth, shift, list = getlistdimensions(current)
if list then
- local boxdir = getdirection(current) or lefttoright_code
- local shift, orientation = getshift(current)
- if not orientation then
- -- local basepoint_h = shift
- -- local basepoint_v = height
- if boxdir ~= pos_r then
- shift = shift + width
+-- local boxdir = getdirection(current) or lefttoright_code
+-- local geometry, hasoffset, hasorientation, hasanchor = getgeometry(current,true)
+ local geometry, hasoffset, hasorientation, hasanchor, boxdir = getgeometry(current,true)
+ local anchor, source, target, targetdata, s_anchor, t_anchor
+ local usedorientation = false
+ if hasanchor then
+ anchor, source, target, s_anchor, t_anchor = getanchors(current)
+ end
+ if hasorientation then
+ local orientation, xoffset, yoffset, woffset, hoffset, doffset = getorientation(current)
+ local orientation, basepoint_h, basepoint_v = applyorientation(orientation,shift,height,width,height,depth,woffset,hoffset,doffset,xoffset,yoffset)
+ if orientation == 1 then
+ basepoint_h = basepoint_h + width - height -- hm
+ basepoint_v = basepoint_v - height
+ usedorientation = orientation
+ elseif orientation == 2 then
+ basepoint_h = basepoint_h + width
+ basepoint_v = basepoint_v + depth - height
+ usedorientation = orientation
+ elseif orientation == 3 then -- weird
+ basepoint_h = basepoint_h + height
+ usedorientation = orientation
end
- if pos_r == righttoleft_code then
- pos_h = ref_h - shift
- else
- pos_h = ref_h + shift
+ if target then
+ targetdata = anchors[target]
+ if targetdata then
+ if pos_r == righttoleft_code then
+ pos_h = targetdata[1] - basepoint_h
+ else
+ pos_h = targetdata[1] + basepoint_h
+ end
+ pos_v = targetdata[2] - basepoint_v
+ goto posdone
+ end
end
- pos_v = ref_v - (cur_v + height)
- -- synced
- if id == vlist_code then
- vlist_out(current,list)
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - basepoint_h
else
- hlist_out(current,list)
+ pos_h = ref_h + basepoint_h
end
- elseif orientation == 0x1000 then
- local orientation, xoffset, yoffset = getorientation(current)
+ pos_v = ref_v - (cur_v + basepoint_v)
+ elseif hasoffset then
+ -- local orientation, xoffset, yoffset = getorientation(current)
+ local xoffset, yoffset = getoffsets(current)
-- local basepoint_h = shift
-- local basepoint_v = height
if boxdir ~= pos_r then
shift = shift + width
end
+ if target then
+ targetdata = anchors[target]
+ if targetdata then
+ if pos_r == righttoleft_code then
+ pos_h = targetdata[1] - (shift + xoffset)
+ else
+ pos_h = targetdata[1] + (shift + xoffset)
+ end
+ pos_v = targetdata[2] - (height - yoffset)
+ goto posdone
+ end
+ end
if pos_r == righttoleft_code then
pos_h = ref_h - (shift + xoffset)
else
pos_h = ref_h + (shift + xoffset)
end
pos_v = ref_v - (cur_v + height - yoffset)
- -- synced
- if id == vlist_code then
- vlist_out(current,list)
+ elseif hasanchor then
+ -- local basepoint_h = shift
+ -- local basepoint_v = height
+ if boxdir ~= pos_r then
+ shift = shift + width
+ end
+ if target then
+ local a = anchors[target]
+ if a then
+ if pos_r == righttoleft_code then
+ pos_h = targetdata[1] - shift
+ else
+ pos_h = targetdata[1] + shift
+ end
+ pos_v = targetdata[2] - height
+ goto posdone
+ end
+ end
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - shift
else
- hlist_out(current,list)
+ pos_h = ref_h + shift
end
+ pos_v = ref_v - (cur_v + height)
else
- local orientation, xoffset, yoffset, woffset, hoffset, doffset = getorientation(current)
- local orientation, basepoint_h, basepoint_v = applyanchor(orientation,shift,height,width,height,depth,woffset,hoffset,doffset,xoffset,yoffset)
- if orientation == 1 then
- basepoint_h = basepoint_h + width - height
- basepoint_v = basepoint_v - height
- elseif orientation == 2 then
- basepoint_h = basepoint_h + width
- basepoint_v = basepoint_v + depth - height
- elseif orientation == 3 then -- weird
- basepoint_h = basepoint_h + height
+ -- local basepoint_h = shift
+ -- local basepoint_v = height
+ if boxdir ~= pos_r then
+ shift = shift + width
end
if pos_r == righttoleft_code then
- pos_h = ref_h - basepoint_h
+ pos_h = ref_h - shift
else
- pos_h = ref_h + basepoint_h
+ pos_h = ref_h + shift
end
- pos_v = ref_v - (cur_v + basepoint_v)
- -- synced
- pushorientation(orientation,pos_h,pos_v,pos_r)
- if id == vlist_code then
- vlist_out(current,list)
- else
- hlist_out(current,list)
+ pos_v = ref_v - (cur_v + height)
+ end
+ goto process
+ ::posdone::
+ if anchor and anchor > 0 then
+-- pos_h, pos_v = applyanchor(anchor,true,t_anchor,pos_h,pos_v,targetdata[3],targetdata[4],targetdata[5])
+-- pos_h, pos_v = applyanchor(anchor,false,s_anchor,pos_h,pos_v,width,height,depth)
+ pos_h, pos_v = applyanchor(t_anchor,true, pos_h,pos_v,targetdata[3],targetdata[4],targetdata[5])
+ pos_h, pos_v = applyanchor(s_anchor,false,pos_h,pos_v,width,height,depth)
+ end
+ ::process::
+ if source then
+ -- move this into apply_anchor
+ local anchor_h = pos_h
+ local anchor_v = pos_v
+ if usedorientation then
+ if usedorientation == 1 then
+ anchor_v = anchor_v - (width - height)
+ elseif usedorientation == 2 then
+ anchor_v = anchor_v - (depth - height)
+ elseif usedorientation == 3 then -- weird
+ anchor_v = anchor_v + (height - width)
+ end
end
- poporientation(orientation,pos_h,pos_v,pos_r)
+ anchors[source] = { anchor_h, anchor_v, width, height, depth }
+ end
+ if usedorientation then
+ pushorientation(usedorientation,pos_h,pos_v,pos_r)
+ end
+ if source and stored then
+ flushstored(current,source,true)
+ end
+ if id == vlist_code then
+ vlist_out(current,list)
+ else
+ hlist_out(current,list)
+ end
+ if source and stored then
+ flushstored(current,source,false)
+ end
+ if usedorientation then
+ poporientation(usedorientation,pos_h,pos_v,pos_r)
end
end
cur_v = cur_v + height + depth
elseif id == kern_code then
cur_v = cur_v + getkern(current)
elseif id == rule_code then
- local width, height, depth = getwhd(current)
+ local width, height, depth, virtual = getruledimensions(current)
local total = height + depth
if total > 0 then
- if width == running then
+ if width == runningrule then
width = boxwidth
end
if width > 0 then
local xoffset, yoffset, left, right = getoffsets(current)
- if left ~= 0 then
- width = width - left
- xoffset = left
- end
- if right ~= 0 then
- width = width - right
+ if not virtual then
+ if left ~= 0 then
+ width = width - left
+ xoffset = left
+ end
+ if right ~= 0 then
+ width = width - right
+ end
end
if pos_r == righttoleft_code then
xoffset = - xoffset - width
end
flushrule(current,pos_h + xoffset,pos_v - total - yoffset,pos_r,width,total,subtype)
end
+ if not virtual then
+ cur_v = cur_v + total
+ end
end
- cur_v = cur_v + total
elseif id == whatsit_code then
flushwhatsit[subtype](current,pos_h,pos_v)
else
@@ -1202,7 +1664,8 @@ function drivers.converters.lmtx(driver,box,smode,objnum,specification)
flushliteral = flushers.literal
flushwhatsit = flushers.whatsit
- reset_dir_stack()
+ reset_directions()
+ reset_anchors()
reset_state()
shippingmode = smode
@@ -1213,28 +1676,10 @@ function drivers.converters.lmtx(driver,box,smode,objnum,specification)
local total = height + depth
- ----- v_offset_par = 0
- ----- h_offset_par = 0
-
- local max_v = total -- + v_offset_par
- local max_h = width -- + h_offset_par
-
- if height > maxdimen or depth > maxdimen or width > maxdimen then
+ if height > maxdimen or depth > maxdimen or width > maxdimen or total > maxdimen then
goto DONE
end
- if max_v > maxdimen then
- goto DONE
- elseif max_v > abs_max_v then
- abs_max_v = max_v
- end
-
- if max_h > maxdimen then
- goto DONE
- elseif max_h > abs_max_h then
- abs_max_h = max_h
- end
-
if shippingmode == "page" then
-- We have zero offsets in ConTeXt.
@@ -1271,11 +1716,11 @@ function drivers.converters.lmtx(driver,box,smode,objnum,specification)
else
- page_size_h = width
- page_size_v = total
- pos_r = getdirection(box)
- pos_v = depth
- pos_h = pos_r == righttoleft_code and width or 0
+ page_size_h = width
+ page_size_v = total
+ pos_r = getdirection(box)
+ pos_v = depth
+ pos_h = pos_r == righttoleft_code and width or 0
end
@@ -1316,15 +1761,20 @@ do
----- tonut = nodes.tonut
local properties = nodes.properties.data
local flush = texio.write
- local flushline = texio.write_nl
+ local flushline = texio.writenl
local periods = utilities.strings.newrepeater(".")
- local function showdetails(n,l)
+ local f_detail_0 = formatters["%s %s = %s"]
+ local f_detail_1 = formatters["%i: %s %s = %s"]
+ local f_detail_2 = formatters["%i:%i: %s %s = %s"]
+
+ local function showdetails(n,l,tlp,l1,l2)
local p = properties[tonut(n)]
if p then
for k, v in sortedhash(p) do
local t = type(v)
+ local p = periods[l+1]
if t == "string" then
if find(v,"[\n\r]") then
v = "\n" .. stripstring(v) .. "\n"
@@ -1336,7 +1786,15 @@ do
else
v = "<" .. tostring(v) .. ">"
end
- flushline(periods[l+1] .. " " .. k .. " = " .. v)
+ if tlp == 3 then
+ flushline(f_detail_2(l1,l2,p,k,v))
+ elseif tlp == 2 then
+ flushline(f_detail_1(l2,p,k,v))
+ elseif tlp == 1 then
+ flushline(f_detail_1(l1,p,k,v))
+ else
+ flushline(f_detail_0(p,k,v))
+ end
end
end
end
@@ -1346,13 +1804,23 @@ do
literal = showdetails,
}
- callback.register("show_whatsit",function(n,l)
+ callback.register("show_whatsit",function(n,what,l,tlp,l1,l2)
local s = nodes.whatsitcodes[n.subtype]
- flush(" [" .. s .. "]")
- local w = whatsittracers[s]
- if w then
- w(n,l)
+ if what == 1 then
+ return s or "unknown"
+ -- elseif what == 2 then
+ else
+ local w = whatsittracers[s]
+ if w then
+ w(n,l,tlp,l1,l2)
+ end
end
end)
+ local names = attributes.names
+
+ callback.register("get_attribute",function(k,v)
+ return attributes.names[k], nil -- we show the name and number
+ end)
+
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/driv-shp.mkxl b/Master/texmf-dist/tex/context/base/mkxl/driv-shp.mkxl
index 199215a59ea..6364d6dc4f6 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/driv-shp.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/driv-shp.mkxl
@@ -11,7 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\registerctxluafile{driv-shp}{autosuffix,optimize}
+\registerctxluafile{driv-shp}{autosuffix}
+\registerctxluafile{driv-usr}{autosuffix}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/mkxl/driv-usr.lmt b/Master/texmf-dist/tex/context/base/mkxl/driv-usr.lmt
new file mode 100644
index 00000000000..0542228aace
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/driv-usr.lmt
@@ -0,0 +1,585 @@
+if not modules then modules = { } end modules ['driv-shp'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to driv-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local nuts = nodes.nuts
+local tonut = nodes.tonut
+
+local getdirection = nuts.getdirection
+local getlist = nuts.getlist
+local getoffsets = nuts.getoffsets
+local getorientation = nuts.getorientation
+local getanchors = nuts.getanchors
+local getgeometry = nuts.getgeometry
+local getwhd = nuts.getwhd
+local getkern = nuts.getkern
+local getwidth = nuts.getwidth
+local getheight = nuts.getheight
+local getdepth = nuts.getdepth
+local getnext = nuts.getnext
+local getid = nuts.getid
+local getshift = nuts.getshift
+local getprop = nuts.getprop
+local getreplace = nuts.getreplace
+local setreplace = nuts.setreplace
+----- getkerndimension = nuts.getkerndimension
+----- getglyphdimensions = nuts.getglyphdimensions
+
+local setdirection = nuts.setdirection
+local setlink = nuts.setlink
+
+local nextnode = nuts.traversers.node
+
+local effectiveglue = nuts.effectiveglue
+local dirdimensions = nuts.dirdimensions
+
+local nodecodes = nodes.nodecodes
+local whatsitcodes = nodes.whatsitcodes
+local dirvalues = nodes.dirvalues
+
+local lefttoright_code = dirvalues.lefttoright
+local righttoleft_code = dirvalues.righttoleft
+
+local glyph_code = nodecodes.glyph
+local kern_code = nodecodes.kern
+local glue_code = nodecodes.glue
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+local dir_code = nodecodes.dir
+local disc_code = nodecodes.disc
+local math_code = nodecodes.math
+local rule_code = nodecodes.rule
+local whatsit_code = nodecodes.whatsit
+
+local userdefined_code = nodes.whatsitcodes.userdefined
+
+local drivers = drivers
+
+local report = logs.reporter("drivers")
+
+local magicconstants = tex.magicconstants
+local maxdimen = magicconstants.maxdimen
+
+local pos_h = 0
+local pos_v = 0
+local pos_r = lefttoright_code
+
+local applyorientation = drivers.applyorientation
+local applyanchor = drivers.applyanchor
+
+local initialize
+local finalize
+local userdefined
+
+local function reset_state()
+ pos_h = 0
+ pos_v = 0
+ pos_r = lefttoright_code
+end
+
+local dirstack = { }
+
+local function reset_dir_stack()
+ dirstack = { }
+end
+
+local function handlewhatsit(current,pos_h,pos_v)
+ local action = userdefined[getprop(current,"id")]
+ if action then
+ action(current,pos_h,pos_v)
+ end
+end
+
+local hlist_out, vlist_out -- todo: some can be combined
+
+hlist_out = function(this_box,current)
+ local ref_h = pos_h
+ local ref_v = pos_v
+ local ref_r = pos_r
+ pos_r = getdirection(this_box)
+ local cur_h = 0
+ local cur_b
+
+ for current, id, subtype in nextnode, current do
+ if id == glyph_code then -- or id == kern_code
+ local width, factor = getwidth(current,true)
+ if width ~= 0 then
+ if factor ~= 0 then
+ cur_h = cur_h + (1.0 + factor/1000000.0) * width
+ else
+ cur_h = cur_h + width
+ end
+ end
+ elseif id == glue_code then
+-- cur_h = cur_h + effectiveglue(current,this_box)
+cur_h = cur_h + effectiveglue(current,this_box,true)
+ elseif id == hlist_code or id == vlist_code then
+ local width, height, depth = getwhd(current)
+ local list = getlist(current)
+ if list then
+ local boxdir = getdirection(current) or lefttoright_code
+ local shift = getshift(current)
+ local geometry, hasoffset, hasorientation, hasanchor = getgeometry(current,true)
+ local anchor, source, target, targetdata, s_anchor, t_anchor
+ local anc_h, anc_v
+ local usedorientation = false
+ if hasanchor then
+ anchor, source, target, s_anchor, t_anchor = getanchors(current)
+ end
+ if hasorientation then
+ local orientation, xoffset, yoffset, woffset, hoffset, doffset = getorientation(current)
+ local orientation, basepoint_h, basepoint_v = applyorientation(orientation,0,shift,width,height,depth,woffset,hoffset,doffset,xoffset,yoffset)
+ if orientation == 1 then
+ basepoint_h = basepoint_h + doffset
+ if boxdir == pos_r then
+ basepoint_v = basepoint_v - height
+ end
+ usedorientation = orientation
+ elseif orientation == 2 then
+ if boxdir == pos_r then
+ basepoint_h = basepoint_h + width
+ end
+ usedorientation = orientation
+ elseif orientation == 3 then
+ basepoint_h = basepoint_h + hoffset
+ if boxdir ~= pos_r then
+ basepoint_v = basepoint_v - height
+ end
+ usedorientation = orientation
+ end
+ if target then
+ targetdata = anchors[target]
+ if targetdata then
+ anc_h = basepoint_h
+ anc_v = - basepoint_v
+ goto posdone
+ end
+ end
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - (cur_h + basepoint_h)
+ else
+ pos_h = ref_h + (cur_h + basepoint_h)
+ end
+ -- pos_v = ref_v - (cur_v + basepoint_v)
+ pos_v = ref_v - basepoint_v
+ elseif hasoffset then
+ local orientation, xoffset, yoffset = getorientation(current)
+ local basepoint_h = boxdir ~= pos_r and width or 0
+ local basepoint_v = shift
+ if target then
+ targetdata = anchors[target]
+ if targetdata then
+ anc_h = xoffset + basepoint_h
+ anc_v = yoffset - basepoint_v
+ goto posdone
+ end
+ end
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - (cur_h + basepoint_h + xoffset)
+ else
+ pos_h = ref_h + (cur_h + basepoint_h + xoffset)
+ end
+ pos_v = ref_v - (basepoint_v - yoffset)
+ elseif hasanchor then
+ local basepoint_h = boxdir ~= pos_r and width or 0
+ local basepoint_v = shift
+ if target then
+ targetdata = anchors[target]
+ if targetdata then
+ anc_h = basepoint_h
+ anc_v = - basepoint_v
+ goto posdone
+ end
+ end
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - (cur_h + basepoint_h)
+ else
+ pos_h = ref_h + (cur_h + basepoint_h)
+ end
+ pos_v = ref_v - basepoint_v
+ else
+ local basepoint_h = boxdir ~= pos_r and width or 0
+ local basepoint_v = shift
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - (cur_h + basepoint_h)
+ else
+ pos_h = ref_h + (cur_h + basepoint_h)
+ end
+ pos_v = ref_v - basepoint_v
+ end
+ goto process
+ ::posdone::
+ if pos_r == righttoleft_code then
+ pos_h = targetdata[1] - anc_h
+ else
+ pos_h = targetdata[1] + anc_h
+ end
+ pos_v = targetdata[2] + anc_v
+ if anchor and anchor > 0 then
+ pos_h, pos_v = applyanchor(t_anchor,true, pos_h,pos_v,targetdata[3],targetdata[4],targetdata[5])
+ pos_h, pos_v = applyanchor(s_anchor,false,pos_h,pos_v,width,height,depth)
+ end
+ ::process::
+ if source then
+ local anchor_h = pos_h
+ local anchor_v = pos_v
+ if usedorientation then
+ if usedorientation == 1 then
+ anchor_v = anchor_v - (width - height)
+ elseif usedorientation == 2 then
+ anchor_v = anchor_v - (depth - height)
+ elseif usedorientation == 3 then -- weird
+ anchor_v = anchor_v + (height - width)
+ end
+ end
+ anchors[source] = { anchor_h, anchor_v, width, height, depth }
+ end
+ -- if usedorientation then
+ -- pushorientation(usedorientation,pos_h,pos_v,pos_r)
+ -- end
+ if id == vlist_code then
+ vlist_out(current,list)
+ else
+ hlist_out(current,list)
+ end
+ -- if usedorientation then
+ -- poporientation(usedorientation,pos_h,pos_v,pos_r)
+ -- end
+ end
+ cur_h = cur_h + width
+
+ elseif id == kern_code then
+ local kern, factor = getkern(current,true)
+ if kern ~= 0 then
+ if factor ~= 0 then
+ cur_h = cur_h + (1.0 + factor/1000000.0) * kern
+ else
+ cur_h = cur_h + kern
+ end
+ end
+ elseif id == rule_code then
+ cur_h = cur_h + getwidth(current)
+ elseif id == math_code then
+-- cur_h = cur_h + effectiveglue(current,this_box)
+cur_h = cur_h + effectiveglue(current,this_box,true)
+ elseif id == dir_code then
+ local dir, cancel = getdirection(current)
+ if cancel then
+ local ds = dirstack[current]
+ if ds then
+ ref_h = ds.ref_h
+ ref_v = ds.ref_v
+ cur_h = ds.cur_h
+ end
+ pos_r = dir
+ else
+ local width, enddir = dirdimensions(this_box,current)
+ local new_h = cur_h + width
+ if dir ~= pos_r then
+ cur_h = new_h
+ end
+ if enddir ~= current then
+ dirstack[enddir] = {
+ cur_h = new_h,
+ ref_h = ref_h,
+ ref_v = ref_v,
+ }
+ setdirection(enddir,pos_r)
+ end
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - cur_h
+ else
+ pos_h = ref_h + cur_h
+ end
+ pos_v = ref_v
+ ref_h = pos_h
+ ref_v = pos_v
+ cur_h = 0
+ pos_r = dir
+ goto synced
+ end
+ elseif id == whatsit_code then
+ if subtype == userdefined_code then
+ local action = userdefined[getprop(current,"id")]
+ if action then
+ if not cur_b then
+ local wd, ht, dp = getwhd(this_box)
+ cur_b = { wd, ht, dp, ref_h, ref_v, ref_r }
+ end
+ action(current, pos_h,pos_v, cur_b)
+ end
+ end
+ elseif id == disc_code then
+ local replace, tail = getreplace(current)
+ if replace then
+ setlink(tail,getnext(current))
+ setlink(current,replace)
+ setreplace(current)
+ end
+ else
+ goto synced
+ end
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - cur_h
+ else
+ pos_h = ref_h + cur_h
+ end
+ pos_v = ref_v
+ ::synced::
+ end
+ pos_h = ref_h
+ pos_v = ref_v
+ pos_r = ref_r
+end
+
+vlist_out = function(this_box,current)
+ local ref_h = pos_h
+ local ref_v = pos_v
+ local ref_r = pos_r
+ pos_r = getdirection(this_box)
+ local cur_v = - getheight(this_box)
+ local top_edge = cur_v
+ pos_h = ref_h
+ pos_v = ref_v - cur_v
+ local cur_b
+
+ for current, id, subtype in nextnode, current do
+ if id == glue_code then
+-- cur_v = cur_v + effectiveglue(current,this_box)
+cur_v = cur_v + effectiveglue(current,this_box,true)
+ elseif id == hlist_code or id == vlist_code then
+ local width, height, depth = getwhd(current)
+ local list = getlist(current)
+ if list then
+ local boxdir = getdirection(current) or lefttoright_code
+ local shift = getshift(current)
+ local geometry, hasoffset, hasorientation, hasanchor = getgeometry(current,true)
+ local anchor, source, target, targetdata, s_anchor, t_anchor
+ local usedorientation = false
+ if hasanchor then
+ anchor, source, target, s_anchor, t_anchor = getanchors(current)
+ end
+ if hasorientation then
+ local orientation, xoffset, yoffset, woffset, hoffset, doffset = getorientation(current)
+ local orientation, basepoint_h, basepoint_v = applyorientation(orientation,shift,height,width,height,depth,woffset,hoffset,doffset,xoffset,yoffset)
+ if orientation == 1 then
+ basepoint_h = basepoint_h + width - height -- hm
+ basepoint_v = basepoint_v - height
+ usedorientation = orientation
+ elseif orientation == 2 then
+ basepoint_h = basepoint_h + width
+ basepoint_v = basepoint_v + depth - height
+ usedorientation = orientation
+ elseif orientation == 3 then -- weird
+ basepoint_h = basepoint_h + height
+ usedorientation = orientation
+ end
+ if target then
+ targetdata = anchors[target]
+ if targetdata then
+ if pos_r == righttoleft_code then
+ pos_h = targetdata[1] - basepoint_h
+ else
+ pos_h = targetdata[1] + basepoint_h
+ end
+ pos_v = targetdata[2] - basepoint_v
+ goto posdone
+ end
+ end
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - basepoint_h
+ else
+ pos_h = ref_h + basepoint_h
+ end
+ pos_v = ref_v - (cur_v + basepoint_v)
+ elseif hasoffset then
+ local orientation, xoffset, yoffset = getorientation(current)
+ -- local basepoint_h = shift
+ -- local basepoint_v = height
+ if boxdir ~= pos_r then
+ shift = shift + width
+ end
+ if target then
+ targetdata = anchors[target]
+ if targetdata then
+ if pos_r == righttoleft_code then
+ pos_h = targetdata[1] - (shift + xoffset)
+ else
+ pos_h = targetdata[1] + (shift + xoffset)
+ end
+ pos_v = targetdata[2] - (height - yoffset)
+ goto posdone
+ end
+ end
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - (shift + xoffset)
+ else
+ pos_h = ref_h + (shift + xoffset)
+ end
+ pos_v = ref_v - (cur_v + height - yoffset)
+ elseif hasanchor then
+ -- local basepoint_h = shift
+ -- local basepoint_v = height
+ if boxdir ~= pos_r then
+ shift = shift + width
+ end
+ if target then
+ local a = anchors[target]
+ if a then
+ if pos_r == righttoleft_code then
+ pos_h = targetdata[1] - shift
+ else
+ pos_h = targetdata[1] + shift
+ end
+ pos_v = targetdata[2] - height
+ goto posdone
+ end
+ end
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - shift
+ else
+ pos_h = ref_h + shift
+ end
+ pos_v = ref_v - (cur_v + height)
+ else
+ -- local basepoint_h = shift
+ -- local basepoint_v = height
+ if boxdir ~= pos_r then
+ shift = shift + width
+ end
+ if pos_r == righttoleft_code then
+ pos_h = ref_h - shift
+ else
+ pos_h = ref_h + shift
+ end
+ pos_v = ref_v - (cur_v + height)
+ end
+ goto process
+ ::posdone::
+ if anchor and anchor > 0 then
+ pos_h, pos_v = applyanchor(t_anchor,true, pos_h,pos_v,targetdata[3],targetdata[4],targetdata[5])
+ pos_h, pos_v = applyanchor(s_anchor,false,pos_h,pos_v,width,height,depth)
+ end
+ ::process::
+ if source then
+ -- move this into apply_anchor
+ local anchor_h = pos_h
+ local anchor_v = pos_v
+ if usedorientation then
+ if usedorientation == 1 then
+ anchor_v = anchor_v - (width - height)
+ elseif usedorientation == 2 then
+ anchor_v = anchor_v - (depth - height)
+ elseif usedorientation == 3 then -- weird
+ anchor_v = anchor_v + (height - width)
+ end
+ end
+ anchors[source] = { anchor_h, anchor_v, width, height, depth }
+ end
+ -- if usedorientation then
+ -- pushorientation(usedorientation,pos_h,pos_v,pos_r)
+ -- end
+ -- if source then
+ -- flushstored(current,source,true)
+ -- end
+ if id == vlist_code then
+ vlist_out(current,list)
+ else
+ hlist_out(current,list)
+ end
+ -- if source then
+ -- flushstored(current,source,false)
+ -- end
+ -- if usedorientation then
+ -- poporientation(usedorientation,pos_h,pos_v,pos_r)
+ -- end
+ end
+ cur_v = cur_v + height + depth
+
+ elseif id == kern_code then
+ cur_v = cur_v + getkern(current)
+ elseif id == rule_code then
+ local width, height, depth = getwhd(current)
+ cur_v = cur_v + height + depth
+ elseif id == whatsit_code then
+ if subtype == userdefined_code then
+ local action = userdefined[getprop(current,"id")]
+ if action then
+ if not cur_b then
+ local wd, ht, dp = getwhd(this_box)
+ cur_b = { wd, ht, dp, ref_h, ref_v, ref_r }
+ end
+ action(current,pos_h,pos_v)
+ end
+ end
+ else
+ goto synced
+ end
+ pos_h = ref_h
+ ::synced::
+ end
+ pos_h = ref_h
+ pos_v = ref_v
+ pos_r = ref_r
+end
+
+function drivers.converters.analyze(driver,box)
+
+ if not driver then
+ report("error in converter, no driver")
+ return
+ elseif box then
+ box = tonut(box)
+ else
+ report("error in converter, no box")
+ return
+ end
+
+ local width, height, depth = getwhd(box)
+ local total = height + depth
+
+ if height > maxdimen or depth > maxdimen or width > maxdimen or total > maxdimen then
+ report("error in converter, overflow")
+ return
+ end
+
+ local actions = driver.actions
+ local flushers = driver.flushers
+
+ initialize = actions.initialize
+ finalize = actions.finalize
+
+ userdefined = flushers.userdefined
+
+ reset_dir_stack()
+ reset_state()
+
+ pos_r = getdirection(box)
+ pos_v = depth
+ pos_h = pos_r == righttoleft_code and width or 0
+
+ local details = {
+ boundingbox = { 0, 0, width, total },
+ }
+
+ if initialize then
+ initialize(driver,details)
+ end
+
+ if getid(box) == vlist_code then
+ vlist_out(box,getlist(box))
+ else
+ hlist_out(box,getlist(box))
+ end
+
+ if finalize then
+ finalize(driver,details)
+ end
+
+end
+
diff --git a/Master/texmf-dist/tex/context/base/mkxl/enco-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/enco-ini.mkxl
index c93ef7f6185..3d87ee7765c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/enco-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/enco-ini.mkxl
@@ -71,7 +71,7 @@
\fi
\endcsname}
-\immutable\letvalue{\??accents}\empty
+\immutable\letcsname\??accents\endcsname\empty
%D Because now have this (\type {\chr} issues a one|-|time warning):
@@ -208,10 +208,11 @@
\setbox0\hbox{#4}%
\halign
{##\crcr\hbox{#5}\crcr
- \hidewidth
+ \hskip\hideskip % \hidewidth
\hskip#2\wd0
\hskip-#3\slantperpoint % in plain 1ex * dimenless value
- \vpack to .2\exheight{\box0\vss}\hidewidth
+ \vpack to .2\exheight{\box0\vss}%
+ \hskip\hideskip % \hidewidth
\crcr}}}
\permanent\protected\def\buildtextmacron {\bottomaccent{.25ex}{0}{15}{\textmacron}}
@@ -236,7 +237,7 @@
{\topaccent{0pt}{0}{15}{\textgrave}} % e.g.
\permanent\protected\def\definemathaccent#1 #2%
- {\setvalue{#1}{\mathaccent#2 }}
+ {\defcsname#1\endcsname{\mathaccent#2 }} % can be redefined
% from enco-def:
diff --git a/Master/texmf-dist/tex/context/base/mkxl/file-ini.mklx b/Master/texmf-dist/tex/context/base/mkxl/file-ini.mklx
index 35a49c72dd4..7c4645a9ae5 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/file-ini.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/file-ini.mklx
@@ -71,16 +71,16 @@
\installsystemnamespace{eolstack}
-\newcount\c_system_files_eol_level
+\newinteger\c_system_files_eol_level
\permanent\protected\def\pushendofline
- {\advance\c_system_files_eol_level\plusone
+ {\advanceby\c_system_files_eol_level\plusone
\expandafter\chardef\csname\??eolstack\number\c_system_files_eol_level\endcsname\catcode\endoflineasciicode
\catcode\endoflineasciicode\commentcatcode}
\permanent\protected\def\popendofline
{\catcode\endoflineasciicode\csname\??eolstack\number\c_system_files_eol_level\endcsname
- \advance\c_system_files_eol_level\minusone}
+ \advanceby\c_system_files_eol_level\minusone}
\permanent\protected\def\restoreendofline
{\catcode\endoflineasciicode\endoflinecatcode}
@@ -90,22 +90,22 @@
%D
%D A low level capsule:
-\newcount\readingfilelevel % no longer needed
-\newtoks \everystartreadingfile
-\newtoks \everystopreadingfile
+\newinteger\readingfilelevel % no longer needed
+\newtoks \everystartreadingfile
+\newtoks \everystopreadingfile
\permanent\protected\def\startreadingfile% beter een every en \setnormalcatcodes
- {\global\advance\readingfilelevel\plusone
+ {\global\advanceby\readingfilelevel\plusone
\the\everystartreadingfile
\pushcatcodetable % saveguard
\setcatcodetable\ctxcatcodes
- \clf_pushregime}% temporarily this way
+ \pushregime}% temporarily this way
\permanent\protected\def\stopreadingfile
- {\popcatcodetable % saveguard
- \clf_popregime % temporarily this way
+ {\popcatcodetable % saveguard
+ \popregime % temporarily this way
\the\everystopreadingfile
- \global\advance\readingfilelevel\minusone}
+ \global\advanceby\readingfilelevel\minusone}
%D \macros
%D {input, normalinput}
@@ -182,11 +182,12 @@
\newconstant\splitoffkind
\mutable\def\splitoffroot{.}
-\mutable\let\splitofffull\empty
-\mutable\let\splitoffpath\empty
-\mutable\let\splitoffbase\empty
-\mutable\let\splitoffname\empty
-\mutable\let\splitofftype\empty
+
+\mutable\lettonothing\splitofffull
+\mutable\lettonothing\splitoffpath
+\mutable\lettonothing\splitoffbase
+\mutable\lettonothing\splitoffname
+\mutable\lettonothing\splitofftype
\permanent\protected\def\splitfilename{\clf_splitfilename}
@@ -213,7 +214,7 @@
{\ifcsname\??fileonce#whatever\endcsname
\expandafter\gobbleoneargument
\else
- \letgvalue{\??fileonce#whatever}\relax
+ \aliased\gletcsname\??fileonce#whatever\endcsname\relax
\expandafter\firstofoneargument
\fi}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/file-job.lmt b/Master/texmf-dist/tex/context/base/mkxl/file-job.lmt
index 95ad48e824b..e117b914e0b 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/file-job.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/file-job.lmt
@@ -10,8 +10,8 @@ if not modules then modules = { } end modules ['file-job'] = {
-- and push/poppign at the tex end
local next, rawget, tostring, tonumber = next, rawget, tostring, tonumber
-local gsub, match, find = string.gsub, string.match, string.find
-local insert, remove, concat = table.insert, table.remove, table.concat
+local gsub, match, gmatch, ind = string.gsub, string.match, string.gmatch, string.find
+local insert, remove, concat, unique, imerged = table.insert, table.remove, table.concat, table.unique, table.imerged
local validstring, formatters = string.valid, string.formatters
local sortedhash = table.sortedhash
local setmetatableindex, setmetatablenewindex = table.setmetatableindex, table.setmetatablenewindex
@@ -49,6 +49,8 @@ local cleanpath = resolvers.cleanpath
local toppath = resolvers.toppath
local resolveprefix = resolvers.resolve
+local currentfile = luatex.currentfile
+
local hasscheme = url.hasscheme
local jobresolvers = resolvers.jobs
@@ -189,8 +191,8 @@ implement {
-- moved from tex to lua:
-local texpatterns = { "%s.mkvi", "%s.mkiv", "%s.mklx", "%s.mkxl", "%s.tex" }
-local luapatterns = { "%s" .. utilities.lua.suffixes.luc, "%s.lua", "%s.lmt" }
+local texpatterns = { "%s.mklx", "%s.mkxl", "%s.mkvi", "%s.mkiv", "%s.tex" }
+local luapatterns = { "%s" .. utilities.lua.suffixes.luc, "%s.lmt", "%s.lua" }
local cldpatterns = { "%s.cld" }
local xmlpatterns = { "%s.xml" }
@@ -395,6 +397,8 @@ end
local textlevel = 0 -- inaccessible for user, we need to define counter textlevel at the tex end
+local c_textlevel = tex.iscount("textlevel")
+
local function dummyfunction() end
local function startstoperror()
@@ -412,7 +416,7 @@ local function starttext()
context.dostarttext()
end
textlevel = textlevel + 1
- texsetcount("global","textlevel",textlevel)
+ texsetcount("global",c_textlevel,textlevel)
end
local function stoptext()
@@ -422,7 +426,7 @@ local function stoptext()
elseif textlevel > 0 then
textlevel = textlevel - 1
end
- texsetcount("global","textlevel",textlevel)
+ texsetcount("global",c_textlevel,textlevel)
if textlevel <= 0 then
if trace_jobfiles then
report_jobfiles("stopping text")
@@ -548,7 +552,9 @@ end
local function poptree()
top = remove(treestack)
- -- inspect(top)
+ if #top[#top].branches == 0 then
+ top[#top].branches = nil -- saves space in tuc
+ end
end
do
@@ -556,10 +562,15 @@ do
local function log_tree(report,top,depth)
report("%s%s: %s",depth,top.type,top.name)
local branches = top.branches
- if #branches > 0 then
- depth = depth .. " "
- for i=1,#branches do
- log_tree(report,branches[i],depth)
+ if branches then
+ local n = #branches
+ if n > 0 then
+ depth = depth .. " "
+ for i=1,n do
+ log_tree(report,branches[i],depth)
+ end
+ else
+ top.brances = nil -- saves space in tuc
end
end
end
@@ -811,18 +822,32 @@ implement { name = "usecomponent", public = true, protected = true, actions =
-- todo: setsystemmode to currenttype
-- todo: make start/stop commands at the tex end
+-- local start = {
+-- [v_project] = context.startprojectindeed,
+-- [v_product] = context.startproductindeed,
+-- [v_component] = context.startcomponentindeed,
+-- [v_environment] = context.startenvironmentindeed,
+-- }
+
+-- local stop = {
+-- [v_project] = context.stopprojectindeed,
+-- [v_product] = context.stopproductindeed,
+-- [v_component] = context.stopcomponentindeed,
+-- [v_environment] = context.stopenvironmentindeed,
+-- }
+
local start = {
- [v_project] = context.startprojectindeed,
- [v_product] = context.startproductindeed,
- [v_component] = context.startcomponentindeed,
- [v_environment] = context.startenvironmentindeed,
+ [v_project] = "startprojectindeed",
+ [v_product] = "startproductindeed",
+ [v_component] = "startcomponentindeed",
+ [v_environment] = "startenvironmentindeed",
}
local stop = {
- [v_project] = context.stopprojectindeed,
- [v_product] = context.stopproductindeed,
- [v_component] = context.stopcomponentindeed,
- [v_environment] = context.stopenvironmentindeed,
+ [v_project] = "stopprojectindeed",
+ [v_product] = "stopproductindeed",
+ [v_component] = "stopcomponentindeed",
+ [v_environment] = "stopenvironmentindeed",
}
local function gotonextlevel(what,name) -- todo: something with suffix name
@@ -831,25 +856,27 @@ local function gotonextlevel(what,name) -- todo: something with suffix name
currenttype = what
pushtree(what,name)
if start[what] then
- start[what]()
+ -- start[what]()
+ token.expandmacro(start[what])
end
end
local function gotopreviouslevel(what)
if stop[what] then
- stop[what]()
+ token.expandmacro(stop[what])
+ -- stop[what]() -- not immediate
end
poptree()
currenttype = remove(typestack) or v_text
remove(stacks[what]) -- not currenttype ... weak recovery
-context.endinput() -- does not work
--- context.signalendofinput(what)
+ -- context.endinput() -- now at the tex end !
end
local function autoname()
local name = scan_delimited(91,93) or scan_delimited(0,32) -- [name] or name<space>
if name == "*" then
- name = nameonly(toppath() or name)
+ -- name = nameonly(toppath() or name)
+ name = nameonly(currentfile() or name)
end
return name
end
@@ -898,6 +925,7 @@ end
function environment.loadexamodes(filename)
if not filename or filename == "" then
+ -- todo: environment.fulljobnmame
filename = removesuffix(tex.jobname)
end
filename = resolvers.findfile(addsuffix(filename,'ctm')) or ""
@@ -1027,6 +1055,7 @@ function document.setcommandline() -- has to happen at the tex end in order to e
-- in the new mtx=context approach we always pass a stub file so we need to
-- to trick the files table which actually only has one entry in a tex job
+
if arguments.timing then
context.usemodule { "timing" }
end
@@ -1281,3 +1310,59 @@ implement {
-- ctx_doifelse(continue)
end
}
+
+-- data-hsh.lmt:
+
+local helpers = resolvers.finders.helpers
+local validhashed = helpers.validhashed
+local registerhashed = helpers.registerhashed
+local registerfilescheme = helpers.registerfilescheme
+
+implement {
+ name = "registerhashedfiles",
+ public = true,
+ protected = true,
+ arguments = "optional",
+ actions = function(list)
+ for name in gmatch(list,"[^, ]+") do
+ registerhashed(name)
+ end
+ end,
+}
+
+implement {
+ name = "registerfilescheme",
+ public = true,
+ protected = true,
+ arguments = "optional",
+ actions = function(list)
+ for name in gmatch(list,"[^, ]+") do
+ registerfilescheme(name)
+ end
+ end,
+}
+
+implement {
+ name = "doifelsevalidhashedfiles",
+ public = true,
+ protected = true,
+ arguments = "string",
+ actions = function(name)
+ ctx_doifelse(validhashed(name))
+ end,
+}
+
+implement {
+ name = "adddefaultsuffix",
+ public = true,
+ protected = true,
+ actions = function(list)
+ resolvers.defaultsuffixes = unique(
+ imerged(
+ resolvers.defaultsuffixes,
+ list
+ )
+ )
+ end,
+ arguments = "array",
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/file-job.mklx b/Master/texmf-dist/tex/context/base/mkxl/file-job.mklx
index 9fb14c9bfc2..76b679bd683 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/file-job.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/file-job.mklx
@@ -18,6 +18,9 @@
%D This module delegates most of the work to \LUA\ and therefore also let it
%D define the commands, which is more efficient.
+\ifdefined\textlevel \else \newinteger\textlevel \fi % used at lua end
+
+\registerctxluafile{data-hsh}{autosuffix}
\registerctxluafile{file-job}{autosuffix}
%D Here are some helpers for processing and path control. In the following example
@@ -45,7 +48,7 @@
% helper (not really needed nowadays)
-\mutable\let\locatedfilepath\empty
+\mutable\lettonothing\locatedfilepath
\permanent\protected\def\locatefilepath#name%
{\edef\locatedfilepath{\clf_locatefilepath{#name}}} % todo: set at the lua end, catcodes and such
@@ -77,7 +80,6 @@
% document structure
-\ifdefined\textlevel \else \newcount\textlevel \fi % might go away
\ifdefined\strc_pagenumbers_flush_final_page \else \let\strc_pagenumbers_flush_final_page\relax \fi % ugly
\permanent\protected\def\dostarttext
@@ -138,22 +140,6 @@
% \startcomponent [#name] or #name<space> % defined at lua end
% \startenvironment [#name] or #name<space> % defined at lua end
-\newconditional\endofinput % hack, needed because \endinput happens one level down in the input when we write from lua
-
-% \protected\def\signalendofinput#1% argument just for tracing
-% {\global\settrue\endofinput}
-%
-% \protected\def\honorendofinput
-% {\ifconditional\endofinput
-% \global\setfalse\endofinput
-% \endinput
-% \fi}
-
-% \protected\def\stopproject {\clf_stopproject \honorendofinput} % todo
-% \protected\def\stopproduct {\clf_stopproduct \honorendofinput} % todo
-% \protected\def\stopcomponent {\clf_stopcomponent \honorendofinput} % todo
-% \protected\def\stopenvironment {\clf_stopenvironment\honorendofinput} % todo
-
% \currentproject % defined at lua end
% \currentproduct % defined at lua end
% \currentcomponent % defined at lua end
@@ -189,7 +175,9 @@
\neverypar\emptytoks
-%D Wrappers (the signal is a synchronization with lua hack):
+%D Wrappers. The \type {\endinput} is tricky because we call macros at the \LUA\
+%D end. In \LMTX\ we now do an immediate one, so the ending happens here now. It
+%D is different that in \MKIV, but you can compare the code.
\newsystemmode\v!project
\newsystemmode\v!product
@@ -204,7 +192,7 @@
\permanent\protected\def\stopprojectindeed
{\popsystemmode\v!project
%stoptext
- }%\signalendofinput\v!project}
+ \endinput}
\permanent\protected\def\startproductindeed
{\starttext
@@ -214,7 +202,7 @@
\permanent\protected\def\stopproductindeed
{\popsystemmode\v!product
\stoptext
- }%\signalendofinput\v!product}
+ \endinput}
\permanent\protected\def\startcomponentindeed
{\starttext
@@ -226,7 +214,7 @@
{\popsystemmode\v!component
\popreferenceprefix
\stoptext
- }%\signalendofinput\v!component}
+ \endinput}
\permanent\protected\def\startenvironmentindeed
{\pushsystemmode\v!environment
@@ -234,7 +222,7 @@
\permanent\protected\def\stopenvironmentindeed
{\popsystemmode\v!environment
- }%\signalendofinput\v!environment}
+ \endinput}
%D Upgraded after the ctx 2020 meeting:
%D
@@ -290,8 +278,8 @@
\normalexpanded {%
\startsetups[\currentdocument:\v!start]\noexpand\directsetup{\ifempty\currentdocumentparent\s!document\else\currentdocumentparent\fi:\v!start}\stopsetups
\startsetups[\currentdocument:\v!stop ]\noexpand\directsetup{\ifempty\currentdocumentparent\s!document\else\currentdocumentparent\fi:\v!stop }\stopsetups
- \permanent\setvalue{\e!start\currentdocument}{\startdocument[\currentdocument]}%
- \permanent\setvalue{\e!stop \currentdocument}{\stopdocument}
+ \permanent\defcsname\e!start\currentdocument\endcsname{\startdocument[\currentdocument]}%
+ \permanent\defcsname\e!stop \currentdocument\endcsname{\stopdocument}
}%
\to \everydefinedocument
@@ -302,7 +290,7 @@
\ifparameters
\or
\ifhastok={#namespace}%
- \let\currentdocument\empty
+ \lettonothing\currentdocument
\setupcurrentdocument[#namespace]%
\else
\edef\currentdocument{#namespace}%
@@ -337,7 +325,7 @@
\ifparameters
\or
\ifhastok={#namespace}%
- \let\currentdocument\empty
+ \lettonothing\currentdocument
\setupcurrentdocument[#namespace]%
\fi
\or
@@ -352,10 +340,17 @@
%
% \protected\def\samplefile#1%
% {\ifcsname\??samplefile#1\endcsname \else
-% \setxvalue{\??samplefile#1}{\cldloadfile{#1}}%
+% \xdefcsname\??samplefile#1\endcsname{\cldloadfile{#1}}%
% \fi
% \lastnamedcs}
\permanent\protected\def\samplefile#1{\clf_samplefile{#1}}
+% \adddefaultsuffix[foo,{},crap]
+% \adddefaultsuffix[{}]
+%
+% \typefile{./crapcrap}
+% \typefile{crapcrap}
+
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/file-mod.lmt b/Master/texmf-dist/tex/context/base/mkxl/file-mod.lmt
index 6af5d8816e0..d10abf53385 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/file-mod.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/file-mod.lmt
@@ -177,7 +177,11 @@ function environment.usemodules(prefix,askedname,truename)
for i=1,#prefixes do
-- todo: reconstruct name i.e. basename
local thename = prefixes[i] .. "-" .. truename
- if usemodule(thename) then
+ if thename == tex.jobname then
+ -- in case we process a module
+ status = 1
+ break
+ elseif usemodule(thename) then
status = 1
break
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/file-mod.mklx b/Master/texmf-dist/tex/context/base/mkxl/file-mod.mklx
index 24471e30f00..a64529dd6d9 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/file-mod.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/file-mod.mklx
@@ -29,11 +29,21 @@
%D More information on the specific modules can be found in their dedicated manuals.
%D We use \type {\next} so that we can \type {\end} in modules.
+% \enabledirectives[logs.errors=*]
+% \enabledirectives[logs.errors=missing modules]
+%
+% \usemodule[letsquit]
+%
+% \starttext
+% test
+% \stoptext
+
\installcorenamespace{module}
-\mutable\let\currentmodule \s!unknown
-\mutable\let\currentmodulecategory \empty
-\mutable\let\currentmoduleparameters\empty
+\mutable\let\currentmodule\s!unknown
+
+\mutable\lettonothing\currentmodulecategory
+\mutable\lettonothing\currentmoduleparameters
\installmacrostack\currentmodule
\installmacrostack\currentmodulecategory
@@ -44,20 +54,20 @@
\push_macro_currentmodulecategory
\push_macro_currentmoduleparameters
\ifparameters
- \let\currentmodule\empty
+ \lettonothing\currentmodule
\or
- \let \currentmodulecategory \empty
- \edef\currentmodule {#category}%
- \let \currentmoduleparameters\empty
+ \lettonothing\currentmodulecategory
+ \edef\currentmodule{#category}%
+ \lettonothing\currentmoduleparameters
\or
\ifhastok={#name}%
- \let\currentmodulecategory \empty
- \edef\currentmodule {#category}%
+ \lettonothing\currentmodulecategory
+ \edef\currentmodule{#category}%
\edef\currentmoduleparameters{#name}%
\else
- \edef\currentmodulecategory {#category}%
- \edef\currentmodule {#name}%
- \let \currentmoduleparameters\empty
+ \edef\currentmodulecategory{#category}%
+ \edef\currentmodule{#name}%
+ \lettonothing\currentmoduleparameters
\fi
\or
\edef\currentmodulecategory {#category}%
@@ -79,11 +89,11 @@
\aliased\let\usemodule \usemodules
\aliased\let\usetexmodule\usemodules
-\newcount\c_syst_modules_nesting
-\newtoks \everysetupmodule
+\newinteger\c_syst_modules_nesting
+\newtoks \everysetupmodule
\permanent\tolerant\protected\def\startmodule[#1]#;#2 %
- {\global\advance\c_syst_modules_nesting\plusone
+ {\global\advanceby\c_syst_modules_nesting\plusone
\push_macro_currentmodule
\push_macro_currentmoduleparameters
\def\currentmodule{#1#2}}
@@ -94,7 +104,7 @@
\else
\pop_macro_currentmoduleparameters
\pop_macro_currentmodule
- \global\advance\c_syst_modules_nesting\minusone
+ \global\advanceby\c_syst_modules_nesting\minusone
\fi}
\permanent\protected\def\setupmodule % to be lmtx'd
@@ -129,7 +139,7 @@
\getparameters[\??module#name:][#parameters]% internal (defaults)
\normalexpanded{\getparameters[\??module#name:][\the\scratchtoks]}% loadtime (user)
\fi
- \let\currentmoduleparameters\empty
+ \lettonothing\currentmoduleparameters
\the\everysetupmodule}
\permanent\def\moduleparameter#name#parameter% should have been \namedmoduleparameter
@@ -259,4 +269,7 @@
\aliased\let\fetchruntimecommand\fetchmodulecommand % obsolete
+% \permanent\protected\def\moduleoverloaded
+% {\enforced}
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/file-res.mklx b/Master/texmf-dist/tex/context/base/mkxl/file-res.mklx
index a123b5e2213..a6240892181 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/file-res.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/file-res.mklx
@@ -62,7 +62,7 @@
%D to redefine the original \type {\input} when needed, for instance when loading
%D third party libraries.
-\mutable\let\readfilename\empty
+\mutable\lettonothing\readfilename
\def\syst_files_read_file#protocol#path#name% #true #false
{\edef\readfilename{\clf_getreadfilename{#protocol}{#path}{#name}}%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-cff.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-cff.lmt
new file mode 100644
index 00000000000..dc5f9838292
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-cff.lmt
@@ -0,0 +1,2788 @@
+if not modules then modules = { } end modules ['font-cff'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- todo: option.outlines
+-- todo: option.boundingbox
+-- per charstring (less memory)
+
+-- This is a heavy one as it is a rather packed format. We don't need al the information
+-- now but we might need it later (who know what magic we can do with metapost). So at
+-- some point this might become a module. We just follow Adobe Technical Notes #5176 and
+-- #5177. In case of doubt I looked in the fontforge code that comes with LuaTeX but
+-- it's not the easiest source to read (and doesn't cover cff2).
+
+-- For now we save the segments in a list of segments with the operator last in an entry
+-- because that reflects the original. But it might make more sense to use a single array
+-- per segment. For pdf a simple concat works ok, but for other purposes a operator first
+-- flush is nicer.
+--
+-- In retrospect I could have looked into the backend code of LuaTeX but it never
+-- occurred to me that parsing charstrings was needed there (which has to to
+-- with merging subroutines and flattening, not so much with calculations.) On
+-- the other hand, we can now feed back cff2 stuff.
+
+local next, type, tonumber, rawget = next, type, tonumber, rawget
+local byte, char, gmatch, sub = string.byte, string.char, string.gmatch, string.sub
+local concat, insert, remove, unpack = table.concat, table.insert, table.remove, table.unpack
+local floor, abs, round, ceil, min, max = math.floor, math.abs, math.round, math.ceil, math.min, math.max
+local P, C, R, S, C, Cs, Ct = lpeg.P, lpeg.C, lpeg.R, lpeg.S, lpeg.C, lpeg.Cs, lpeg.Ct
+local lpegmatch = lpeg.match
+local formatters = string.formatters
+local bytetable = string.bytetable
+----- rshift, band, extract = bit32.rshift, bit32.band, bit32.extract
+
+local readers = fonts.handlers.otf.readers
+local streamreader = readers.streamreader
+
+local readstring = streamreader.readstring
+local readbyte = streamreader.readcardinal1 -- 8-bit unsigned integer
+local readushort = streamreader.readcardinal2 -- 16-bit unsigned integer
+local readuint = streamreader.readcardinal3 -- 24-bit unsigned integer
+local readulong = streamreader.readcardinal4 -- 32-bit unsigned integer
+local setposition = streamreader.setposition
+local getposition = streamreader.getposition
+local readbytetable = streamreader.readbytetable
+
+directives.register("fonts.streamreader",function()
+
+ streamreader = utilities.streams
+
+ readstring = streamreader.readstring
+ readbyte = streamreader.readcardinal1
+ readushort = streamreader.readcardinal2
+ readuint = streamreader.readcardinal3
+ readulong = streamreader.readcardinal4
+ setposition = streamreader.setposition
+ getposition = streamreader.getposition
+ readbytetable = streamreader.readbytetable
+
+end)
+
+local setmetatableindex = table.setmetatableindex
+
+local trace_charstrings = false trackers.register("fonts.cff.charstrings",function(v) trace_charstrings = v end)
+local report = logs.reporter("otf reader","cff")
+
+local parsedictionaries
+local parsecharstring
+local parsecharstrings
+local resetcharstrings
+local parseprivates
+local startparsing
+local stopparsing
+
+local defaultstrings = { [0] = -- taken from ff
+ ".notdef", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent",
+ "ampersand", "quoteright", "parenleft", "parenright", "asterisk", "plus",
+ "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four",
+ "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less",
+ "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H",
+ "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W",
+ "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum",
+ "underscore", "quoteleft", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j",
+ "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y",
+ "z", "braceleft", "bar", "braceright", "asciitilde", "exclamdown", "cent",
+ "sterling", "fraction", "yen", "florin", "section", "currency",
+ "quotesingle", "quotedblleft", "guillemotleft", "guilsinglleft",
+ "guilsinglright", "fi", "fl", "endash", "dagger", "daggerdbl",
+ "periodcentered", "paragraph", "bullet", "quotesinglbase", "quotedblbase",
+ "quotedblright", "guillemotright", "ellipsis", "perthousand", "questiondown",
+ "grave", "acute", "circumflex", "tilde", "macron", "breve", "dotaccent",
+ "dieresis", "ring", "cedilla", "hungarumlaut", "ogonek", "caron", "emdash",
+ "AE", "ordfeminine", "Lslash", "Oslash", "OE", "ordmasculine", "ae",
+ "dotlessi", "lslash", "oslash", "oe", "germandbls", "onesuperior",
+ "logicalnot", "mu", "trademark", "Eth", "onehalf", "plusminus", "Thorn",
+ "onequarter", "divide", "brokenbar", "degree", "thorn", "threequarters",
+ "twosuperior", "registered", "minus", "eth", "multiply", "threesuperior",
+ "copyright", "Aacute", "Acircumflex", "Adieresis", "Agrave", "Aring",
+ "Atilde", "Ccedilla", "Eacute", "Ecircumflex", "Edieresis", "Egrave",
+ "Iacute", "Icircumflex", "Idieresis", "Igrave", "Ntilde", "Oacute",
+ "Ocircumflex", "Odieresis", "Ograve", "Otilde", "Scaron", "Uacute",
+ "Ucircumflex", "Udieresis", "Ugrave", "Yacute", "Ydieresis", "Zcaron",
+ "aacute", "acircumflex", "adieresis", "agrave", "aring", "atilde",
+ "ccedilla", "eacute", "ecircumflex", "edieresis", "egrave", "iacute",
+ "icircumflex", "idieresis", "igrave", "ntilde", "oacute", "ocircumflex",
+ "odieresis", "ograve", "otilde", "scaron", "uacute", "ucircumflex",
+ "udieresis", "ugrave", "yacute", "ydieresis", "zcaron", "exclamsmall",
+ "Hungarumlautsmall", "dollaroldstyle", "dollarsuperior", "ampersandsmall",
+ "Acutesmall", "parenleftsuperior", "parenrightsuperior", "twodotenleader",
+ "onedotenleader", "zerooldstyle", "oneoldstyle", "twooldstyle",
+ "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle",
+ "sevenoldstyle", "eightoldstyle", "nineoldstyle", "commasuperior",
+ "threequartersemdash", "periodsuperior", "questionsmall", "asuperior",
+ "bsuperior", "centsuperior", "dsuperior", "esuperior", "isuperior",
+ "lsuperior", "msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior",
+ "tsuperior", "ff", "ffi", "ffl", "parenleftinferior", "parenrightinferior",
+ "Circumflexsmall", "hyphensuperior", "Gravesmall", "Asmall", "Bsmall",
+ "Csmall", "Dsmall", "Esmall", "Fsmall", "Gsmall", "Hsmall", "Ismall",
+ "Jsmall", "Ksmall", "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall",
+ "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall",
+ "Xsmall", "Ysmall", "Zsmall", "colonmonetary", "onefitted", "rupiah",
+ "Tildesmall", "exclamdownsmall", "centoldstyle", "Lslashsmall",
+ "Scaronsmall", "Zcaronsmall", "Dieresissmall", "Brevesmall", "Caronsmall",
+ "Dotaccentsmall", "Macronsmall", "figuredash", "hypheninferior",
+ "Ogoneksmall", "Ringsmall", "Cedillasmall", "questiondownsmall", "oneeighth",
+ "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds",
+ "zerosuperior", "foursuperior", "fivesuperior", "sixsuperior",
+ "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior",
+ "oneinferior", "twoinferior", "threeinferior", "fourinferior",
+ "fiveinferior", "sixinferior", "seveninferior", "eightinferior",
+ "nineinferior", "centinferior", "dollarinferior", "periodinferior",
+ "commainferior", "Agravesmall", "Aacutesmall", "Acircumflexsmall",
+ "Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall",
+ "Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall",
+ "Igravesmall", "Iacutesmall", "Icircumflexsmall", "Idieresissmall",
+ "Ethsmall", "Ntildesmall", "Ogravesmall", "Oacutesmall", "Ocircumflexsmall",
+ "Otildesmall", "Odieresissmall", "OEsmall", "Oslashsmall", "Ugravesmall",
+ "Uacutesmall", "Ucircumflexsmall", "Udieresissmall", "Yacutesmall",
+ "Thornsmall", "Ydieresissmall", "001.000", "001.001", "001.002", "001.003",
+ "Black", "Bold", "Book", "Light", "Medium", "Regular", "Roman", "Semibold",
+}
+
+local standardnames = { [0] = -- needed for seac
+ false, false, false, false, false, false, false, false, false, false, false,
+ false, false, false, false, false, false, false, false, false, false, false,
+ false, false, false, false, false, false, false, false, false, false,
+ "space", "exclam", "quotedbl", "numbersign", "dollar", "percent",
+ "ampersand", "quoteright", "parenleft", "parenright", "asterisk", "plus",
+ "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four",
+ "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less",
+ "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H",
+ "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W",
+ "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum",
+ "underscore", "quoteleft", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j",
+ "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y",
+ "z", "braceleft", "bar", "braceright", "asciitilde", false, false, false,
+ false, false, false, false, false, false, false, false, false, false, false,
+ false, false, false, false, false, false, false, false, false, false, false,
+ false, false, false, false, false, false, false, false, false, "exclamdown",
+ "cent", "sterling", "fraction", "yen", "florin", "section", "currency",
+ "quotesingle", "quotedblleft", "guillemotleft", "guilsinglleft",
+ "guilsinglright", "fi", "fl", false, "endash", "dagger", "daggerdbl",
+ "periodcentered", false, "paragraph", "bullet", "quotesinglbase",
+ "quotedblbase", "quotedblright", "guillemotright", "ellipsis", "perthousand",
+ false, "questiondown", false, "grave", "acute", "circumflex", "tilde",
+ "macron", "breve", "dotaccent", "dieresis", false, "ring", "cedilla", false,
+ "hungarumlaut", "ogonek", "caron", "emdash", false, false, false, false,
+ false, false, false, false, false, false, false, false, false, false, false,
+ false, "AE", false, "ordfeminine", false, false, false, false, "Lslash",
+ "Oslash", "OE", "ordmasculine", false, false, false, false, false, "ae",
+ false, false, false, "dotlessi", false, false, "lslash", "oslash", "oe",
+ "germandbls", false, false, false, false
+}
+
+local cffreaders = {
+ readbyte,
+ readushort,
+ readuint,
+ readulong,
+}
+
+directives.register("fonts.streamreader",function()
+ cffreaders = {
+ readbyte,
+ readushort,
+ readuint,
+ readulong,
+ }
+end)
+
+-- The header contains information about its own size.
+
+local function readheader(f)
+ local offset = getposition(f)
+ local major = readbyte(f)
+ local header = {
+ offset = offset,
+ major = major,
+ minor = readbyte(f),
+ size = readbyte(f), -- headersize
+ }
+ if major == 1 then
+ header.dsize = readbyte(f) -- list of dict offsets
+ elseif major == 2 then
+ header.dsize = readushort(f) -- topdict size
+ else
+ -- I'm probably no longer around by then and we use AI's to
+ -- handle this kind of stuff, if we typeset documents at all.
+ end
+ setposition(f,offset+header.size)
+ return header
+end
+
+-- The indexes all look the same, so we share a loader. We could pass a handler
+-- and run over the array but why bother, we only have a few uses.
+
+local function readlengths(f,longcount)
+ local count = longcount and readulong(f) or readushort(f)
+ if count == 0 then
+ return { }
+ end
+ local osize = readbyte(f)
+ local read = cffreaders[osize]
+ if not read then
+ report("bad offset size: %i",osize)
+ return { }
+ end
+ local lengths = { }
+ local previous = read(f)
+ for i=1,count do
+ local offset = read(f)
+ local length = offset - previous
+ if length < 0 then
+ report("bad offset: %i",length)
+ length = 0
+ end
+ lengths[i] = length
+ previous = offset
+ end
+ return lengths
+end
+
+-- There can be subfonts so names is an array. However, in our case it's always
+-- one font. The same is true for the top dictionaries. Watch how we only load
+-- the dictionary string as for interpretation we need to have the strings loaded
+-- as well.
+
+local function readfontnames(f)
+ local names = readlengths(f)
+ for i=1,#names do
+ names[i] = readstring(f,names[i])
+ end
+ return names
+end
+
+local function readtopdictionaries(f)
+ local dictionaries = readlengths(f)
+ for i=1,#dictionaries do
+ dictionaries[i] = readstring(f,dictionaries[i])
+ end
+ return dictionaries
+end
+
+-- Strings are added to a list of standard strings so we start the font specific
+-- one with an offset. Strings are shared so we have one table.
+
+local function readstrings(f)
+ local lengths = readlengths(f)
+ local strings = setmetatableindex({ }, defaultstrings)
+ local index = #defaultstrings
+ for i=1,#lengths do
+ index = index + 1
+ strings[index] = readstring(f,lengths[i])
+ end
+ return strings
+end
+
+-- Parsing the dictionaries is delayed till we have the strings loaded. The parser
+-- is stack based so the operands come before the operator (like in postscript).
+
+-- local function delta(t)
+-- local n = #t
+-- if n > 1 then
+-- local p = t[1]
+-- for i=2,n do
+-- local c = t[i]
+-- t[i] = c + p
+-- p = c
+-- end
+-- end
+-- end
+
+do
+
+ -- We use a closure so that we don't need to pass too much around. For cff2 we can
+ -- at some point use a simple version as there is less.
+
+ local stack = { }
+ local top = 0
+ local result = { }
+ local strings = { }
+
+ local p_single =
+ P("\00") / function()
+ result.version = strings[stack[top]] or "unset"
+ top = 0
+ end
+ + P("\01") / function()
+ result.notice = strings[stack[top]] or "unset"
+ top = 0
+ end
+ + P("\02") / function()
+ result.fullname = strings[stack[top]] or "unset"
+ top = 0
+ end
+ + P("\03") / function()
+ result.familyname = strings[stack[top]] or "unset"
+ top = 0
+ end
+ + P("\04") / function()
+ result.weight = strings[stack[top]] or "unset"
+ top = 0
+ end
+ + P("\05") / function()
+ result.fontbbox = { unpack(stack,1,4) }
+ top = 0
+ end
+ + P("\06") / function()
+ result.bluevalues = { unpack(stack,1,top) }
+ top = 0
+ end
+ + P("\07") / function()
+ result.otherblues = { unpack(stack,1,top) }
+ top = 0
+ end
+ + P("\08") / function()
+ result.familyblues = { unpack(stack,1,top) }
+ top = 0
+ end
+ + P("\09") / function()
+ result.familyotherblues = { unpack(stack,1,top) }
+ top = 0
+ end
+ + P("\10") / function()
+ result.stdhw = stack[top]
+ top = 0
+ end
+ + P("\11") / function()
+ result.stdvw = stack[top]
+ top = 0
+ end
+ + P("\13") / function()
+ result.uniqueid = stack[top]
+ top = 0
+ end
+ + P("\14") / function()
+ result.xuid = concat(stack,"",1,top)
+ top = 0
+ end
+ + P("\15") / function()
+ result.charset = stack[top]
+ top = 0
+ end
+ + P("\16") / function()
+ result.encoding = stack[top]
+ top = 0
+ end
+ + P("\17") / function() -- valid cff2
+ result.charstrings = stack[top]
+ top = 0
+ end
+ + P("\18") / function()
+ result.private = {
+ size = stack[top-1],
+ offset = stack[top],
+ }
+ top = 0
+ end
+ + P("\19") / function()
+ result.subroutines = stack[top]
+ top = 0 -- new, forgotten ?
+ end
+ + P("\20") / function()
+ result.defaultwidthx = stack[top]
+ top = 0 -- new, forgotten ?
+ end
+ + P("\21") / function()
+ result.nominalwidthx = stack[top]
+ top = 0 -- new, forgotten ?
+ end
+ -- + P("\22") / function() -- reserved
+ -- end
+ -- + P("\23") / function() -- reserved
+ -- end
+ + P("\24") / function() -- new in cff2
+ result.vstore = stack[top]
+ top = 0
+ end
+ + P("\25") / function() -- new in cff2
+ result.maxstack = stack[top]
+ top = 0
+ end
+ -- + P("\26") / function() -- reserved
+ -- end
+ -- + P("\27") / function() -- reserved
+ -- end
+
+ local p_double = P("\12") * (
+ P("\00") / function()
+ result.copyright = stack[top]
+ top = 0
+ end
+ + P("\01") / function()
+ result.monospaced = stack[top] == 1 and true or false -- isfixedpitch
+ top = 0
+ end
+ + P("\02") / function()
+ result.italicangle = stack[top]
+ top = 0
+ end
+ + P("\03") / function()
+ result.underlineposition = stack[top]
+ top = 0
+ end
+ + P("\04") / function()
+ result.underlinethickness = stack[top]
+ top = 0
+ end
+ + P("\05") / function()
+ result.painttype = stack[top]
+ top = 0
+ end
+ + P("\06") / function()
+ result.charstringtype = stack[top]
+ top = 0
+ end
+ + P("\07") / function() -- valid cff2
+ result.fontmatrix = { unpack(stack,1,6) }
+ top = 0
+ end
+ + P("\08") / function()
+ result.strokewidth = stack[top]
+ top = 0
+ end
+ + P("\09") / function()
+ result.bluescale = stack[top]
+ top = 0
+ end
+ + P("\10") / function()
+ result.blueshift = stack[top]
+ top = 0
+ end
+ + P("\11") / function()
+ result.bluefuzz = stack[top]
+ top = 0
+ end
+ + P("\12") / function()
+ result.stemsnaph = { unpack(stack,1,top) }
+ top = 0
+ end
+ + P("\13") / function()
+ result.stemsnapv = { unpack(stack,1,top) }
+ top = 0
+ end
+ + P("\20") / function()
+ result.syntheticbase = stack[top]
+ top = 0
+ end
+ + P("\21") / function()
+ result.postscript = strings[stack[top]] or "unset"
+ top = 0
+ end
+ + P("\22") / function()
+ result.basefontname = strings[stack[top]] or "unset"
+ top = 0
+ end
+ + P("\21") / function()
+ result.basefontblend = stack[top]
+ top = 0
+ end
+ + P("\30") / function()
+ result.cid.registry = strings[stack[top-2]] or "unset"
+ result.cid.ordering = strings[stack[top-1]] or "unset"
+ result.cid.supplement = stack[top]
+ top = 0
+ end
+ + P("\31") / function()
+ result.cid.fontversion = stack[top]
+ top = 0
+ end
+ + P("\32") / function()
+ result.cid.fontrevision= stack[top]
+ top = 0
+ end
+ + P("\33") / function()
+ result.cid.fonttype = stack[top]
+ top = 0
+ end
+ + P("\34") / function()
+ result.cid.count = stack[top]
+ top = 0
+ end
+ + P("\35") / function()
+ result.cid.uidbase = stack[top]
+ top = 0
+ end
+ + P("\36") / function() -- valid cff2
+ result.cid.fdarray = stack[top]
+ top = 0
+ end
+ + P("\37") / function() -- valid cff2
+ result.cid.fdselect = stack[top]
+ top = 0
+ end
+ + P("\38") / function()
+ result.cid.fontname = strings[stack[top]] or "unset"
+ top = 0
+ end
+ )
+
+ -- Some lpeg fun ... a first variant split the byte and made a new string but
+ -- the second variant is much faster. Not that it matters much as we don't see
+ -- such numbers often.
+
+ local remap_1 = {
+ ["\x00"] = "00", ["\x01"] = "01", ["\x02"] = "02", ["\x03"] = "03", ["\x04"] = "04", ["\x05"] = "05", ["\x06"] = "06", ["\x07"] = "07", ["\x08"] = "08", ["\x09"] = "09", ["\x0A"] = "0.", ["\x0B"] = "0E", ["\x0C"] = "0E-", ["\x0D"] = "0", ["\x0E"] = "0-", ["\x0F"] = "0",
+ ["\x10"] = "10", ["\x11"] = "11", ["\x12"] = "12", ["\x13"] = "13", ["\x14"] = "14", ["\x15"] = "15", ["\x16"] = "16", ["\x17"] = "17", ["\x18"] = "18", ["\x19"] = "19", ["\x1A"] = "1.", ["\x1B"] = "1E", ["\x1C"] = "1E-", ["\x1D"] = "1", ["\x1E"] = "1-", ["\x1F"] = "1",
+ ["\x20"] = "20", ["\x21"] = "21", ["\x22"] = "22", ["\x23"] = "23", ["\x24"] = "24", ["\x25"] = "25", ["\x26"] = "26", ["\x27"] = "27", ["\x28"] = "28", ["\x29"] = "29", ["\x2A"] = "2.", ["\x2B"] = "2E", ["\x2C"] = "2E-", ["\x2D"] = "2", ["\x2E"] = "2-", ["\x2F"] = "2",
+ ["\x30"] = "30", ["\x31"] = "31", ["\x32"] = "32", ["\x33"] = "33", ["\x34"] = "34", ["\x35"] = "35", ["\x36"] = "36", ["\x37"] = "37", ["\x38"] = "38", ["\x39"] = "39", ["\x3A"] = "3.", ["\x3B"] = "3E", ["\x3C"] = "3E-", ["\x3D"] = "3", ["\x3E"] = "3-", ["\x3F"] = "3",
+ ["\x40"] = "40", ["\x41"] = "41", ["\x42"] = "42", ["\x43"] = "43", ["\x44"] = "44", ["\x45"] = "45", ["\x46"] = "46", ["\x47"] = "47", ["\x48"] = "48", ["\x49"] = "49", ["\x4A"] = "4.", ["\x4B"] = "4E", ["\x4C"] = "4E-", ["\x4D"] = "4", ["\x4E"] = "4-", ["\x4F"] = "4",
+ ["\x50"] = "50", ["\x51"] = "51", ["\x52"] = "52", ["\x53"] = "53", ["\x54"] = "54", ["\x55"] = "55", ["\x56"] = "56", ["\x57"] = "57", ["\x58"] = "58", ["\x59"] = "59", ["\x5A"] = "5.", ["\x5B"] = "5E", ["\x5C"] = "5E-", ["\x5D"] = "5", ["\x5E"] = "5-", ["\x5F"] = "5",
+ ["\x60"] = "60", ["\x61"] = "61", ["\x62"] = "62", ["\x63"] = "63", ["\x64"] = "64", ["\x65"] = "65", ["\x66"] = "66", ["\x67"] = "67", ["\x68"] = "68", ["\x69"] = "69", ["\x6A"] = "6.", ["\x6B"] = "6E", ["\x6C"] = "6E-", ["\x6D"] = "6", ["\x6E"] = "6-", ["\x6F"] = "6",
+ ["\x70"] = "70", ["\x71"] = "71", ["\x72"] = "72", ["\x73"] = "73", ["\x74"] = "74", ["\x75"] = "75", ["\x76"] = "76", ["\x77"] = "77", ["\x78"] = "78", ["\x79"] = "79", ["\x7A"] = "7.", ["\x7B"] = "7E", ["\x7C"] = "7E-", ["\x7D"] = "7", ["\x7E"] = "7-", ["\x7F"] = "7",
+ ["\x80"] = "80", ["\x81"] = "81", ["\x82"] = "82", ["\x83"] = "83", ["\x84"] = "84", ["\x85"] = "85", ["\x86"] = "86", ["\x87"] = "87", ["\x88"] = "88", ["\x89"] = "89", ["\x8A"] = "8.", ["\x8B"] = "8E", ["\x8C"] = "8E-", ["\x8D"] = "8", ["\x8E"] = "8-", ["\x8F"] = "8",
+ ["\x90"] = "90", ["\x91"] = "91", ["\x92"] = "92", ["\x93"] = "93", ["\x94"] = "94", ["\x95"] = "95", ["\x96"] = "96", ["\x97"] = "97", ["\x98"] = "98", ["\x99"] = "99", ["\x9A"] = "9.", ["\x9B"] = "9E", ["\x9C"] = "9E-", ["\x9D"] = "9", ["\x9E"] = "9-", ["\x9F"] = "9",
+ ["\xA0"] = ".0", ["\xA1"] = ".1", ["\xA2"] = ".2", ["\xA3"] = ".3", ["\xA4"] = ".4", ["\xA5"] = ".5", ["\xA6"] = ".6", ["\xA7"] = ".7", ["\xA8"] = ".8", ["\xA9"] = ".9", ["\xAA"] = "..", ["\xAB"] = ".E", ["\xAC"] = ".E-", ["\xAD"] = ".", ["\xAE"] = ".-", ["\xAF"] = ".",
+ ["\xB0"] = "E0", ["\xB1"] = "E1", ["\xB2"] = "E2", ["\xB3"] = "E3", ["\xB4"] = "E4", ["\xB5"] = "E5", ["\xB6"] = "E6", ["\xB7"] = "E7", ["\xB8"] = "E8", ["\xB9"] = "E9", ["\xBA"] = "E.", ["\xBB"] = "EE", ["\xBC"] = "EE-", ["\xBD"] = "E", ["\xBE"] = "E-", ["\xBF"] = "E",
+ ["\xC0"] = "E-0", ["\xC1"] = "E-1", ["\xC2"] = "E-2", ["\xC3"] = "E-3", ["\xC4"] = "E-4", ["\xC5"] = "E-5", ["\xC6"] = "E-6", ["\xC7"] = "E-7", ["\xC8"] = "E-8", ["\xC9"] = "E-9", ["\xCA"] = "E-.", ["\xCB"] = "E-E", ["\xCC"] = "E-E-", ["\xCD"] = "E-", ["\xCE"] = "E--", ["\xCF"] = "E-",
+ ["\xD0"] = "-0", ["\xD1"] = "-1", ["\xD2"] = "-2", ["\xD3"] = "-3", ["\xD4"] = "-4", ["\xD5"] = "-5", ["\xD6"] = "-6", ["\xD7"] = "-7", ["\xD8"] = "-8", ["\xD9"] = "-9", ["\xDA"] = "-.", ["\xDB"] = "-E", ["\xDC"] = "-E-", ["\xDD"] = "-", ["\xDE"] = "--", ["\xDF"] = "-",
+ }
+ local remap_2 = {
+ ["\x0F"] = "0", ["\x1F"] = "1", ["\x2F"] = "2", ["\x3F"] = "3", ["\x4F"] = "4",
+ ["\x5F"] = "5", ["\x6F"] = "6", ["\x7F"] = "7", ["\x8F"] = "8", ["\x9F"] = "9",
+ }
+
+ local p_last_1 = S("\x0F\x1F\x2F\x3F\x4F\x5F\x6F\x7F\x8F\x9F\xAF\xBF")
+ local p_last_2 = R("\xF0\xFF")
+
+ -- tricky, we don't want to append last
+
+ -- local p_nibbles = P("\30") * Cs(((1-p_last)/remap)^0 * (P(1)/remap)) / function(n)
+ local p_nibbles = P("\30") * Cs(((1-(p_last_1+p_last_2))/remap_1)^0 * (p_last_1/remap_2 + p_last_2/"")) / function(n)
+ -- 0-9=digit a=. b=E c=E- d=reserved e=- f=finish
+ top = top + 1
+ stack[top] = tonumber(n) or 0
+ end
+
+ local p_byte = C(R("\32\246")) / function(b0)
+ -- -107 .. +107
+ top = top + 1
+ stack[top] = byte(b0) - 139
+ end
+
+ local p_positive = C(R("\247\250")) * C(1) / function(b0,b1)
+ -- +108 .. +1131
+ top = top + 1
+ stack[top] = (byte(b0)-247)*256 + byte(b1) + 108
+ end
+
+ local p_negative = C(R("\251\254")) * C(1) / function(b0,b1)
+ -- -1131 .. -108
+ top = top + 1
+ stack[top] = -(byte(b0)-251)*256 - byte(b1) - 108
+ end
+
+ -- local p_float = P("\255") * C(1) * C(1) * C(1) * C(1) / function(b0,b1,b2,b3)
+ -- top = top + 1
+ -- stack[top] = 0
+ -- end
+
+ local p_short = P("\28") * C(1) * C(1) / function(b1,b2)
+ -- -32768 .. +32767 : b1<<8 | b2
+ top = top + 1
+ local n = 0x100 * byte(b1) + byte(b2)
+ if n >= 0x8000 then
+ stack[top] = n - 0xFFFF - 1
+ else
+ stack[top] = n
+ end
+ end
+
+ local p_long = P("\29") * C(1) * C(1) * C(1) * C(1) / function(b1,b2,b3,b4)
+ -- -2^31 .. +2^31-1 : b1<<24 | b2<<16 | b3<<8 | b4
+ top = top + 1
+ local n = 0x1000000 * byte(b1) + 0x10000 * byte(b2) + 0x100 * byte(b3) + byte(b4)
+ if n >= 0x8000000 then
+ stack[top] = n - 0xFFFFFFFF - 1
+ else
+ stack[top] = n
+ end
+ end
+
+ local p_unsupported = P(1) / function(detail)
+ top = 0
+ end
+
+ local p_dictionary = (
+ p_byte
+ + p_positive
+ + p_negative
+ + p_short
+ + p_long
+ + p_nibbles
+ + p_single
+ + p_double
+ -- + p_float
+ + p_unsupported
+ )^1
+
+ parsedictionaries = function(data,dictionaries,version)
+ stack = { }
+ strings = data.strings
+ if trace_charstrings then
+ report("charstring format %a",version)
+ end
+ for i=1,#dictionaries do
+ top = 0
+ result = version == "cff" and {
+ monospaced = false,
+ italicangle = 0,
+ underlineposition = -100,
+ underlinethickness = 50,
+ painttype = 0,
+ charstringtype = 2,
+ fontmatrix = { 0.001, 0, 0, 0.001, 0, 0 },
+ fontbbox = { 0, 0, 0, 0 },
+ strokewidth = 0,
+ charset = 0,
+ encoding = 0,
+ cid = {
+ fontversion = 0,
+ fontrevision = 0,
+ fonttype = 0,
+ count = 8720,
+ }
+ } or {
+ charstringtype = 2,
+ charset = 0,
+ vstore = 0,
+ cid = {
+ -- nothing yet
+ },
+ }
+ lpegmatch(p_dictionary,dictionaries[i])
+ dictionaries[i] = result
+ end
+ --
+ result = { }
+ top = 0
+ stack = { }
+ end
+
+ parseprivates = function(data,dictionaries)
+ stack = { }
+ strings = data.strings
+ for i=1,#dictionaries do
+ local private = dictionaries[i].private
+ if private and private.data then
+ top = 0
+ result = {
+ forcebold = false,
+ languagegroup = 0,
+ expansionfactor = 0.06,
+ initialrandomseed = 0,
+ subroutines = 0,
+ defaultwidthx = 0,
+ nominalwidthx = 0,
+ cid = {
+ -- actually an error
+ },
+ }
+ lpegmatch(p_dictionary,private.data)
+ private.data = result
+ end
+ end
+ result = { }
+ top = 0
+ stack = { }
+ end
+
+ -- All bezier curves have 6 points with successive pairs relative to
+ -- the previous pair. Some can be left out and are then copied or zero
+ -- (optimization).
+ --
+ -- We are not really interested in all the details of a glyph because we
+ -- only need to calculate the boundingbox. So, todo: a quick no result but
+ -- calculate only variant.
+ --
+ -- The conversion is straightforward and the specification os clear once
+ -- you understand that the x and y needs to be updates each step. It's also
+ -- quite easy to test because in mp a shape will look bad when a few variables
+ -- are swapped. But still there might be bugs down here because not all
+ -- variants are seen in a font so far. We are less compact that the ff code
+ -- because there quite some variants are done in one helper with a lot of
+ -- testing for states.
+
+ local x = 0
+ local y = 0
+ local width = false
+ local lsb = 0
+ local result = { }
+ local r = 0
+ local stems = 0
+ local globalbias = 0
+ local localbias = 0
+ local nominalwidth = 0
+ local defaultwidth = 0
+ local charset = false
+ local globals = false
+ local locals = false
+ local depth = 1
+ local xmin = 0
+ local xmax = 0
+ local ymin = 0
+ local ymax = 0
+ local checked = false
+ local keepcurve = false
+ local version = 2
+ local regions = false
+ local nofregions = 0
+ local region = false
+ local factors = false
+ local axis = false
+ local vsindex = 0
+ local justpass = false
+ local seacs = { }
+ local procidx = nil
+
+ local function showstate(where,i,n)
+ if i then
+ local j = i + n - 1
+ report("%w%-10s : [%s] step",depth*2+2,where,concat(stack," ",i,j <= top and j or top))
+ else
+ report("%w%-10s : [%s] n=%i",depth*2,where,concat(stack," ",1,top),top)
+ end
+ end
+
+ local function showvalue(where,value,showstack)
+ if showstack then
+ report("%w%-10s : %s : [%s] n=%i",depth*2,where,tostring(value),concat(stack," ",1,top),top)
+ else
+ report("%w%-10s : %s",depth*2,where,tostring(value))
+ end
+ end
+
+ -- All these indirect calls make this run slower but it's cleaner this way
+ -- and we cache the result. As we moved the boundingbox code inline we gain
+ -- some back. I inlined some of then and a bit speed can be gained by more
+ -- inlining but not that much.
+
+ -- Maybe have several action tables:
+ --
+ -- keep curve / checked
+ -- keep curve / not checked
+ -- checked
+ -- not checked
+
+ local function xymoveto()
+ if keepcurve then
+ r = r + 1
+ result[r] = { x, y, "m" }
+ end
+ if checked then
+ if x > xmax then xmax = x elseif x < xmin then xmin = x end
+ if y > ymax then ymax = y elseif y < ymin then ymin = y end
+ else
+ xmin = x
+ ymin = y
+ xmax = x
+ ymax = y
+ checked = true
+ end
+ end
+
+ local function xmoveto() -- slight speedup
+ if keepcurve then
+ r = r + 1
+ result[r] = { x, y, "m" }
+ end
+ if not checked then
+ xmin = x
+ ymin = y
+ xmax = x
+ ymax = y
+ checked = true
+ elseif x > xmax then
+ xmax = x
+ elseif x < xmin then
+ xmin = x
+ end
+ end
+
+ local function ymoveto() -- slight speedup
+ if keepcurve then
+ r = r + 1
+ result[r] = { x, y, "m" }
+ end
+ if not checked then
+ xmin = x
+ ymin = y
+ xmax = x
+ ymax = y
+ checked = true
+ elseif y > ymax then
+ ymax = y
+ elseif y < ymin then
+ ymin = y
+ end
+ end
+
+ local function moveto()
+ if trace_charstrings then
+ showstate("moveto")
+ end
+ top = 0 -- forgotten
+ xymoveto()
+ end
+
+ local function xylineto() -- we could inline, no blend
+ if keepcurve then
+ r = r + 1
+ result[r] = { x, y, "l" }
+ end
+ if checked then
+ if x > xmax then xmax = x elseif x < xmin then xmin = x end
+ if y > ymax then ymax = y elseif y < ymin then ymin = y end
+ else
+ xmin = x
+ ymin = y
+ xmax = x
+ ymax = y
+ checked = true
+ end
+ end
+
+ local function xlineto() -- slight speedup
+ if keepcurve then
+ r = r + 1
+ result[r] = { x, y, "l" }
+ end
+ if not checked then
+ xmin = x
+ ymin = y
+ xmax = x
+ ymax = y
+ checked = true
+ elseif x > xmax then
+ xmax = x
+ elseif x < xmin then
+ xmin = x
+ end
+ end
+
+ local function ylineto() -- slight speedup
+ if keepcurve then
+ r = r + 1
+ result[r] = { x, y, "l" }
+ end
+ if not checked then
+ xmin = x
+ ymin = y
+ xmax = x
+ ymax = y
+ checked = true
+ elseif y > ymax then
+ ymax = y
+ elseif y < ymin then
+ ymin = y
+ end
+ end
+
+ local function xycurveto(x1,y1,x2,y2,x3,y3,i,n) -- called local so no blend here
+ if trace_charstrings then
+ showstate("curveto",i,n)
+ end
+ if keepcurve then
+ r = r + 1
+ result[r] = { x1, y1, x2, y2, x3, y3, "c" }
+ end
+ if checked then
+ if x1 > xmax then xmax = x1 elseif x1 < xmin then xmin = x1 end
+ if y1 > ymax then ymax = y1 elseif y1 < ymin then ymin = y1 end
+ else
+ xmin = x1
+ ymin = y1
+ xmax = x1
+ ymax = y1
+ checked = true
+ end
+ if x2 > xmax then xmax = x2 elseif x2 < xmin then xmin = x2 end
+ if y2 > ymax then ymax = y2 elseif y2 < ymin then ymin = y2 end
+ if x3 > xmax then xmax = x3 elseif x3 < xmin then xmin = x3 end
+ if y3 > ymax then ymax = y3 elseif y3 < ymin then ymin = y3 end
+ end
+
+ local function rmoveto()
+ if not width then
+ if top > 2 then
+ width = stack[1]
+ if trace_charstrings then
+ showvalue("backtrack width",width)
+ end
+ else
+ width = true
+ end
+ end
+ if trace_charstrings then
+ showstate("rmoveto")
+ end
+ x = x + stack[top-1] -- dx1
+ y = y + stack[top] -- dy1
+ top = 0
+ xymoveto()
+ end
+
+ local function hmoveto()
+ if not width then
+ if top > 1 then
+ width = stack[1]
+ if trace_charstrings then
+ showvalue("backtrack width",width)
+ end
+ else
+ width = true
+ end
+ end
+ if trace_charstrings then
+ showstate("hmoveto")
+ end
+ x = x + stack[top] -- dx1
+ top = 0
+ xmoveto()
+ end
+
+ local function vmoveto()
+ if not width then
+ if top > 1 then
+ width = stack[1]
+ if trace_charstrings then
+ showvalue("backtrack width",width)
+ end
+ else
+ width = true
+ end
+ end
+ if trace_charstrings then
+ showstate("vmoveto")
+ end
+ y = y + stack[top] -- dy1
+ top = 0
+ ymoveto()
+ end
+
+ local function rlineto()
+ if trace_charstrings then
+ showstate("rlineto")
+ end
+ for i=1,top,2 do
+ x = x + stack[i] -- dxa
+ y = y + stack[i+1] -- dya
+ xylineto()
+ end
+ top = 0
+ end
+
+ local function hlineto() -- x (y,x)+ | (x,y)+
+ if trace_charstrings then
+ showstate("hlineto")
+ end
+ if top == 1 then
+ x = x + stack[1]
+ xlineto()
+ else
+ local swap = true
+ for i=1,top do
+ if swap then
+ x = x + stack[i]
+ xlineto()
+ swap = false
+ else
+ y = y + stack[i]
+ ylineto()
+ swap = true
+ end
+ end
+ end
+ top = 0
+ end
+
+ local function vlineto() -- y (x,y)+ | (y,x)+
+ if trace_charstrings then
+ showstate("vlineto")
+ end
+ if top == 1 then
+ y = y + stack[1]
+ ylineto()
+ else
+ local swap = false
+ for i=1,top do
+ if swap then
+ x = x + stack[i]
+ xlineto()
+ swap = false
+ else
+ y = y + stack[i]
+ ylineto()
+ swap = true
+ end
+ end
+ end
+ top = 0
+ end
+
+ local function rrcurveto()
+ if trace_charstrings then
+ showstate("rrcurveto")
+ end
+if top == 6 then
+ local ax = x + stack[1] -- dxa
+ local ay = y + stack[2] -- dya
+ local bx = ax + stack[3] -- dxb
+ local by = ay + stack[4] -- dyb
+ x = bx + stack[5] -- dxc
+ y = by + stack[6] -- dyc
+ xycurveto(ax,ay,bx,by,x,y,1,6)
+else
+-- print("rr",top==6,top)
+ for i=1,top,6 do
+ local ax = x + stack[i] -- dxa
+ local ay = y + stack[i+1] -- dya
+ local bx = ax + stack[i+2] -- dxb
+ local by = ay + stack[i+3] -- dyb
+ x = bx + stack[i+4] -- dxc
+ y = by + stack[i+5] -- dyc
+ xycurveto(ax,ay,bx,by,x,y,i,6)
+ end
+end
+ top = 0
+ end
+
+ local function hhcurveto()
+ if trace_charstrings then
+ showstate("hhcurveto")
+ end
+ local s = 1
+ if top % 2 ~= 0 then
+ y = y + stack[1] -- dy1
+ s = 2
+ end
+if top == 4 then
+ local ax = x + stack[1] -- dxa
+ local ay = y
+ local bx = ax + stack[2] -- dxb
+ local by = ay + stack[3] -- dyb
+ x = bx + stack[4] -- dxc
+ y = by
+ xycurveto(ax,ay,bx,by,x,y,1,4)
+else
+ for i=s,top,4 do
+ local ax = x + stack[i] -- dxa
+ local ay = y
+ local bx = ax + stack[i+1] -- dxb
+ local by = ay + stack[i+2] -- dyb
+ x = bx + stack[i+3] -- dxc
+ y = by
+ xycurveto(ax,ay,bx,by,x,y,i,4)
+ end
+end
+ top = 0
+ end
+
+ local function vvcurveto()
+ if trace_charstrings then
+ showstate("vvcurveto")
+ end
+ local s = 1
+ local d = 0
+ if top % 2 ~= 0 then
+ d = stack[1] -- dx1
+ s = 2
+ end
+if top == 4 then
+ local ax = x + d
+ local ay = y + stack[1] -- dya
+ local bx = ax + stack[2] -- dxb
+ local by = ay + stack[3] -- dyb
+ x = bx
+ y = by + stack[4] -- dyc
+ xycurveto(ax,ay,bx,by,x,y,1,4)
+ d = 0
+else
+ for i=s,top,4 do
+ local ax = x + d
+ local ay = y + stack[i] -- dya
+ local bx = ax + stack[i+1] -- dxb
+ local by = ay + stack[i+2] -- dyb
+ x = bx
+ y = by + stack[i+3] -- dyc
+ xycurveto(ax,ay,bx,by,x,y,i,4)
+ d = 0
+ end
+end
+ top = 0
+ end
+
+ local function xxcurveto(swap)
+ local last = top % 4 ~= 0 and stack[top]
+ if last then
+ top = top - 1
+ end
+if top == 4 then
+ local ax, ay, bx, by
+ if swap then
+ ax = x + stack[1]
+ ay = y
+ bx = ax + stack[2]
+ by = ay + stack[3]
+ y = by + stack[4]
+ if last then
+ x = bx + last
+ else
+ x = bx
+ end
+ else
+ ax = x
+ ay = y + stack[1]
+ bx = ax + stack[2]
+ by = ay + stack[3]
+ x = bx + stack[4]
+ if last then
+ y = by + last
+ else
+ y = by
+ end
+ end
+ xycurveto(ax,ay,bx,by,x,y,1 ,4)
+else
+ for i=1,top,4 do
+ local ax, ay, bx, by
+ if swap then
+ ax = x + stack[i]
+ ay = y
+ bx = ax + stack[i+1]
+ by = ay + stack[i+2]
+ y = by + stack[i+3]
+ if last and i+3 == top then
+ x = bx + last
+ else
+ x = bx
+ end
+ swap = false
+ else
+ ax = x
+ ay = y + stack[i]
+ bx = ax + stack[i+1]
+ by = ay + stack[i+2]
+ x = bx + stack[i+3]
+ if last and i+3 == top then
+ y = by + last
+ else
+ y = by
+ end
+ swap = true
+ end
+ xycurveto(ax,ay,bx,by,x,y,i,4)
+ end
+end
+ top = 0
+ end
+
+ local function hvcurveto()
+ if trace_charstrings then
+ showstate("hvcurveto")
+ end
+ xxcurveto(true)
+ end
+
+ local function vhcurveto()
+ if trace_charstrings then
+ showstate("vhcurveto")
+ end
+ xxcurveto(false)
+ end
+
+ local function rcurveline()
+ if trace_charstrings then
+ showstate("rcurveline")
+ end
+ for i=1,top-2,6 do
+ local ax = x + stack[i] -- dxa
+ local ay = y + stack[i+1] -- dya
+ local bx = ax + stack[i+2] -- dxb
+ local by = ay + stack[i+3] -- dyb
+ x = bx + stack[i+4] -- dxc
+ y = by + stack[i+5] -- dyc
+ xycurveto(ax,ay,bx,by,x,y,i,6)
+ end
+ x = x + stack[top-1] -- dxc
+ y = y + stack[top] -- dyc
+ xylineto()
+ top = 0
+ end
+
+ local function rlinecurve()
+ if trace_charstrings then
+ showstate("rlinecurve")
+ end
+ if top > 6 then
+ for i=1,top-6,2 do
+ x = x + stack[i]
+ y = y + stack[i+1]
+ xylineto()
+ end
+ end
+ local ax = x + stack[top-5]
+ local ay = y + stack[top-4]
+ local bx = ax + stack[top-3]
+ local by = ay + stack[top-2]
+ x = bx + stack[top-1]
+ y = by + stack[top]
+ xycurveto(ax,ay,bx,by,x,y)
+ top = 0
+ end
+
+ -- flex is not yet tested! no loop
+
+ local function flex() -- fd not used
+ if trace_charstrings then
+ showstate("flex")
+ end
+ local ax = x + stack[1] -- dx1
+ local ay = y + stack[2] -- dy1
+ local bx = ax + stack[3] -- dx2
+ local by = ay + stack[4] -- dy2
+ local cx = bx + stack[5] -- dx3
+ local cy = by + stack[6] -- dy3
+ xycurveto(ax,ay,bx,by,cx,cy)
+ local dx = cx + stack[7] -- dx4
+ local dy = cy + stack[8] -- dy4
+ local ex = dx + stack[9] -- dx5
+ local ey = dy + stack[10] -- dy5
+ x = ex + stack[11] -- dx6
+ y = ey + stack[12] -- dy6
+ xycurveto(dx,dy,ex,ey,x,y)
+ top = 0
+ end
+
+ local function hflex()
+ if trace_charstrings then
+ showstate("hflex")
+ end
+ local ax = x + stack[1] -- dx1
+ local ay = y
+ local bx = ax + stack[2] -- dx2
+ local by = ay + stack[3] -- dy2
+ local cx = bx + stack[4] -- dx3
+ local cy = by
+ xycurveto(ax,ay,bx,by,cx,cy)
+ local dx = cx + stack[5] -- dx4
+ local dy = by
+ local ex = dx + stack[6] -- dx5
+ local ey = y
+ x = ex + stack[7] -- dx6
+ xycurveto(dx,dy,ex,ey,x,y)
+ top = 0
+ end
+
+ local function hflex1()
+ if trace_charstrings then
+ showstate("hflex1")
+ end
+ local ax = x + stack[1] -- dx1
+ local ay = y + stack[2] -- dy1
+ local bx = ax + stack[3] -- dx2
+ local by = ay + stack[4] -- dy2
+ local cx = bx + stack[5] -- dx3
+ local cy = by
+ xycurveto(ax,ay,bx,by,cx,cy)
+ local dx = cx + stack[6] -- dx4
+ local dy = by
+ local ex = dx + stack[7] -- dx5
+ local ey = dy + stack[8] -- dy5
+ x = ex + stack[9] -- dx6
+ xycurveto(dx,dy,ex,ey,x,y)
+ top = 0
+ end
+
+ local function flex1()
+ if trace_charstrings then
+ showstate("flex1")
+ end
+ local ax = x + stack[1] --dx1
+ local ay = y + stack[2] --dy1
+ local bx = ax + stack[3] --dx2
+ local by = ay + stack[4] --dy2
+ local cx = bx + stack[5] --dx3
+ local cy = by + stack[6] --dy3
+ xycurveto(ax,ay,bx,by,cx,cy)
+ local dx = cx + stack[7] --dx4
+ local dy = cy + stack[8] --dy4
+ local ex = dx + stack[9] --dx5
+ local ey = dy + stack[10] --dy5
+ if abs(ex - x) > abs(ey - y) then -- spec: abs(dx) > abs(dy)
+ x = ex + stack[11]
+ else
+ y = ey + stack[11]
+ end
+ xycurveto(dx,dy,ex,ey,x,y)
+ top = 0
+ end
+
+ local function getstem()
+ if top == 0 then
+ -- bad
+ elseif top % 2 ~= 0 then
+ if width then
+ remove(stack,1)
+ else
+ width = remove(stack,1)
+ if trace_charstrings then
+ showvalue("width",width)
+ end
+ end
+ top = top - 1
+ end
+ if trace_charstrings then
+ showstate("stem")
+ end
+ stems = stems + (top // 2)
+ top = 0
+ end
+
+ local function getmask()
+ if top == 0 then
+ -- bad
+ elseif top % 2 ~= 0 then
+ if width then
+ remove(stack,1)
+ else
+ width = remove(stack,1)
+ if trace_charstrings then
+ showvalue("width",width)
+ end
+ end
+ top = top - 1
+ end
+ if trace_charstrings then
+ showstate(operator == 19 and "hintmark" or "cntrmask")
+ end
+ stems = stems + (top // 2)
+ top = 0
+ if stems == 0 then
+ -- forget about it
+ elseif stems <= 8 then
+ return 1
+ else
+ return (stems + 7) // 8
+ end
+ end
+
+ local function unsupported(t)
+ if trace_charstrings then
+ showstate("unsupported " .. t)
+ end
+ top = 0
+ end
+
+ local function unsupportedsub(t)
+ if trace_charstrings then
+ showstate("unsupported sub " .. t)
+ end
+ top = 0
+ end
+
+ -- type 1 (not used in type 2)
+
+ local function getstem3()
+ if trace_charstrings then
+ showstate("stem3")
+ end
+ top = 0
+ end
+
+ local function divide()
+ if version == "cff" then
+ local d = stack[top]
+ top = top - 1
+ stack[top] = stack[top] / d
+ end
+ end
+
+ local function closepath()
+ if version == "cff" then
+ if trace_charstrings then
+ showstate("closepath")
+ end
+ end
+ top = 0
+ end
+
+ local function hsbw()
+ if version == "cff" then
+ if trace_charstrings then
+ showstate("hsbw")
+ end
+ lsb = stack[top-1] or 0
+ width = stack[top]
+ end
+ top = 0
+ end
+
+ local function sbw()
+ if version == "cff" then
+ if trace_charstrings then
+ showstate("sbw")
+ end
+ lsb = stack[top-3]
+ width = stack[top-1]
+ end
+ top = 0
+ end
+
+ -- asb adx ady bchar achar seac (accented characters)
+
+ local function seac()
+ if version == "cff" then
+ if trace_charstrings then
+ showstate("seac")
+ end
+ end
+ top = 0
+ end
+
+ -- These are probably used for special cases i.e. call out to the
+ -- postscript interpreter (p 61 of the spec as well as chapter 8).
+ --
+ -- This needs checking (I have to ask Taco next time we meet.)
+
+ local popped = 3
+ local hints = 3
+
+ -- arg1 ... argn n othersubr# <callothersubr> (on postscript stack)
+
+ local function callothersubr()
+ if version == "cff" then
+ if trace_charstrings then
+ showstate("callothersubr")
+ end
+ if stack[top] == hints then
+ popped = stack[top-2]
+ else
+ popped = 3
+ end
+ local t = stack[top-1]
+ if t then
+ top = top - (t + 2)
+ if top < 0 then
+ top = 0
+ end
+ else
+ top = 0
+ end
+ else
+ top = 0
+ end
+ end
+
+ -- <pop> number (from postscript stack)
+
+ local function pop()
+ if version == "cff" then
+ if trace_charstrings then
+ showstate("pop")
+ end
+ top = top + 1
+ stack[top] = popped
+ else
+ top = 0
+ end
+ end
+
+ local function setcurrentpoint()
+ if version == "cff" then
+ if trace_charstrings then
+ showstate("setcurrentpoint (unsupported)")
+ end
+ x = x + stack[top-1]
+ y = y + stack[top]
+ end
+ top = 0
+ end
+
+ -- So far for unsupported postscript. Now some cff2 magic. As I still need
+ -- to wrap my head around the rather complex variable font specification
+ -- with regions and axis, the following approach kind of works but is more
+ -- some trial and error trick. It's still not clear how much of the complex
+ -- truetype description applies to cff. Once there are fonts out there we'll
+ -- get there. (Marcel and friends did some tests with recent cff2 fonts so
+ -- the code has been adapted accordingly.)
+
+ local reginit = false
+
+ local function updateregions(n) -- n + 1
+ if regions then
+ local current = regions[n+1] or regions[1]
+ nofregions = #current
+ if axis and n ~= reginit then
+ factors = { }
+ for i=1,nofregions do
+ local region = current[i]
+ local s = 1
+ for j=1,#axis do
+ local f = axis[j]
+ local r = region[j]
+ local start = r.start
+ local peak = r.peak
+ local stop = r.stop
+ if start > peak or peak > stop then
+ -- * 1
+ elseif start < 0 and stop > 0 and peak ~= 0 then
+ -- * 1
+ elseif peak == 0 then
+ -- * 1
+ elseif f < start or f > stop then
+ -- * 0
+ s = 0
+ break
+ elseif f < peak then
+ s = s * (f - start) / (peak - start)
+ elseif f > peak then
+ s = s * (stop - f) / (stop - peak)
+ else
+ -- * 1
+ end
+ end
+ factors[i] = s
+ end
+ end
+ end
+ reginit = n
+ end
+
+ local function setvsindex()
+ local vsindex = stack[top]
+ if trace_charstrings then
+ showstate(formatters["vsindex %i"](vsindex))
+ end
+ updateregions(vsindex)
+ top = top - 1
+ end
+
+ local function blend()
+ local n = stack[top]
+ top = top - 1
+ if axis then
+ -- x (r1x,r2x,r3x)
+ -- (x,y) (r1x,r2x,r3x) (r1y,r2y,r3y)
+ if trace_charstrings then
+ local t = top - nofregions * n
+ local m = t - n
+ for i=1,n do
+ local k = m + i
+ local d = m + n + (i-1)*nofregions
+ local old = stack[k]
+ local new = old
+ for r=1,nofregions do
+ new = new + stack[d+r] * factors[r]
+ end
+ stack[k] = new
+ showstate(formatters["blend %i of %i: %s -> %s"](i,n,old,new))
+ end
+ top = t
+ elseif n == 1 then
+ top = top - nofregions
+ local v = stack[top]
+ for r=1,nofregions do
+ v = v + stack[top+r] * factors[r]
+ end
+ stack[top] = v
+ else
+ top = top - nofregions * n
+ local d = top
+ local k = top - n
+ for i=1,n do
+ k = k + 1
+ local v = stack[k]
+ for r=1,nofregions do
+ v = v + stack[d+r] * factors[r]
+ end
+ stack[k] = v
+ d = d + nofregions
+ end
+ end
+ else
+ top = top - nofregions * n
+ end
+ end
+
+ -- Bah, we cannot use a fast lpeg because a hint has an unknown size and a
+ -- runtime capture cannot handle that well.
+
+ local actions = { [0] =
+ unsupported, -- 0
+ getstem, -- 1 -- hstem
+ unsupported, -- 2
+ getstem, -- 3 -- vstem
+ vmoveto, -- 4
+ rlineto, -- 5
+ hlineto, -- 6
+ vlineto, -- 7
+ rrcurveto, -- 8
+ unsupported, -- 9 -- closepath
+ unsupported, -- 10 -- calllocal,
+ unsupported, -- 11 -- callreturn,
+ unsupported, -- 12 -- elsewhere
+ hsbw, -- 13 -- hsbw (type 1 cff)
+ unsupported, -- 14 -- endchar,
+ setvsindex, -- 15 -- cff2
+ blend, -- 16 -- cff2
+ unsupported, -- 17
+ getstem, -- 18 -- hstemhm
+ getmask, -- 19 -- hintmask
+ getmask, -- 20 -- cntrmask
+ rmoveto, -- 21
+ hmoveto, -- 22
+ getstem, -- 23 -- vstemhm
+ rcurveline, -- 24
+ rlinecurve, -- 25
+ vvcurveto, -- 26
+ hhcurveto, -- 27
+ unsupported, -- 28 -- elsewhere
+ unsupported, -- 29 -- elsewhere
+ vhcurveto, -- 30
+ hvcurveto, -- 31
+ }
+
+ local reverse = { [0] =
+ "unsupported",
+ "getstem",
+ "unsupported",
+ "getstem",
+ "vmoveto",
+ "rlineto",
+ "hlineto",
+ "vlineto",
+ "rrcurveto",
+ "unsupported",
+ "unsupported",
+ "unsupported",
+ "unsupported",
+ "hsbw",
+ "unsupported",
+ "setvsindex",
+ "blend",
+ "unsupported",
+ "getstem",
+ "getmask",
+ "getmask",
+ "rmoveto",
+ "hmoveto",
+ "getstem",
+ "rcurveline",
+ "rlinecurve",
+ "vvcurveto",
+ "hhcurveto",
+ "unsupported",
+ "unsupported",
+ "vhcurveto",
+ "hvcurveto",
+ }
+
+ local subactions = {
+ -- cff 1
+ [000] = dotsection,
+ [001] = getstem3,
+ [002] = getstem3,
+ [006] = seac,
+ [007] = sbw,
+ [012] = divide,
+ [016] = callothersubr,
+ [017] = pop,
+ [033] = setcurrentpoint,
+ -- cff 2
+ [034] = hflex,
+ [035] = flex,
+ [036] = hflex1,
+ [037] = flex1,
+ }
+
+ local chars = setmetatableindex(function (t,k)
+ local v = char(k)
+ t[k] = v
+ return v
+ end)
+
+ local c_endchar = chars[14]
+
+ -- todo: round in blend
+
+ local encode = { }
+ local typeone = false
+
+ -- this eventually can become a helper
+
+ setmetatableindex(encode,function(t,i)
+ for i=-2048,-1130 do
+ -- t[i] = char(28,band(rshift(i,8),0xFF),band(i,0xFF))
+ t[i] = char(28,(i >> 8) & 0xFF,i & 0xFF)
+ end
+ for i=-1131,-108 do
+ local v = 0xFB00 - i - 108
+ -- t[i] = char(band(rshift(v,8),0xFF),band(v,0xFF))
+ t[i] = char((v >> 8) & 0xFF,v & 0xFF)
+ end
+ for i=-107,107 do
+ t[i] = chars[i + 139]
+ end
+ for i=108,1131 do
+ local v = 0xF700 + i - 108
+ -- t[i] = char(extract(v,8,8),extract(v,0,8))
+ t[i] = char((v >> 8) & 0xFF,v & 0xFF)
+ end
+ for i=1132,2048 do
+ -- t[i] = char(28,band(rshift(i,8),0xFF),band(i,0xFF))
+ t[i] = char(28,(i >> 8) & 0xFF,i & 0xFF)
+ end
+ setmetatableindex(encode,function(t,k)
+ -- as we're cff2 we write 16.16-bit signed fixed value
+ local r = round(k)
+ local v = rawget(t,r)
+ if v then
+ return v
+ end
+ local v1 = floor(k)
+ local v2 = floor((k - v1) * 0x10000)
+ -- return char(255,extract(v1,8,8),extract(v1,0,8),extract(v2,8,8),extract(v2,0,8))
+ return char(255,(v1 >> 8) & 0xFF,v1 & 0xFF,(v2 >> 8) & 0xFF,v2 & 0xFF)
+ end)
+ return t[i]
+ end)
+
+ readers.cffencoder = encode
+
+ local function p_setvsindex()
+ local vsindex = stack[top]
+ updateregions(vsindex)
+ top = top - 1
+ end
+
+ local function p_blend()
+ -- leaves n values on stack
+ local n = stack[top]
+ top = top - 1
+ if not axis then
+ -- fatal error
+ elseif n == 1 then
+ top = top - nofregions
+ local v = stack[top]
+ for r=1,nofregions do
+ v = v + stack[top+r] * factors[r]
+ end
+ stack[top] = round(v)
+ else
+ top = top - nofregions * n
+ local d = top
+ local k = top - n
+ for i=1,n do
+ k = k + 1
+ local v = stack[k]
+ for r=1,nofregions do
+ v = v + stack[d+r] * factors[r]
+ end
+ stack[k] = round(v)
+ d = d + nofregions
+ end
+ end
+ end
+
+ local function p_getstem()
+ local n = 0
+ if top % 2 ~= 0 then
+ n = 1
+ end
+ if top > n then
+ stems = stems + ((top - n) // 2)
+ end
+ end
+
+ local function p_getmask()
+ local n = 0
+ if top % 2 ~= 0 then
+ n = 1
+ end
+ if top > n then
+ stems = stems + ((top - n) // 2)
+ end
+ if stems == 0 then
+ return 0
+ elseif stems <= 8 then
+ return 1
+ else
+ return (stems + 7) // 8
+ end
+ end
+
+ -- end of experiment
+
+ local process
+
+ local function call(scope,list,bias) -- ,process)
+ depth = depth + 1
+ if top == 0 then
+ showstate(formatters["unknown %s call %s, case %s"](scope,"?",1))
+ top = 0
+ else
+ local index = stack[top] + bias
+ top = top - 1
+ if trace_charstrings then
+ showvalue(scope,index,true)
+ end
+ local tab = list[index]
+ if tab then
+ process(tab)
+ else
+ showstate(formatters["unknown %s call %s, case %s"](scope,index,2))
+ top = 0
+ end
+ end
+ depth = depth - 1
+ end
+
+ -- precompiling and reuse is much slower than redoing the calls
+
+ process = function(tab)
+ local i = 1
+ local n = #tab
+ while i <= n do
+ local t = tab[i]
+ if t >= 32 then
+ top = top + 1
+ if t <= 246 then
+ -- -107 .. +107
+ stack[top] = t - 139
+ i = i + 1
+ elseif t <= 250 then
+ -- +108 .. +1131
+ -- stack[top] = (t-247)*256 + tab[i+1] + 108
+ -- stack[top] = t*256 - 247*256 + tab[i+1] + 108
+ stack[top] = t*256 - 63124 + tab[i+1]
+ i = i + 2
+ elseif t <= 254 then
+ -- -1131 .. -108
+ -- stack[top] = -(t-251)*256 - tab[i+1] - 108
+ -- stack[top] = -t*256 + 251*256 - tab[i+1] - 108
+ stack[top] = -t*256 + 64148 - tab[i+1]
+ i = i + 2
+ elseif typeone then
+ local n = 0x1000000 * tab[i+1] + 0x10000 * tab[i+2] + 0x100 * tab[i+3] + tab[i+4]
+ if n >= 0x8000000 then
+ n = n - 0xFFFFFFFF - 1
+ end
+ stack[top] = n
+ i = i + 5
+ else
+ local n1 = 0x100 * tab[i+1] + tab[i+2]
+ local n2 = 0x100 * tab[i+3] + tab[i+4]
+ if n1 >= 0x8000 then
+ n1 = n1 - 0x10000
+ end
+ stack[top] = n1 + n2/0xFFFF
+ i = i + 5
+ end
+ elseif t == 28 then
+ -- -32768 .. +32767 : b1<<8 | b2
+ top = top + 1
+ local n = 0x100 * tab[i+1] + tab[i+2]
+ if n >= 0x8000 then
+ -- stack[top] = n - 0xFFFF - 1
+ stack[top] = n - 0x10000
+ else
+ stack[top] = n
+ end
+ i = i + 3
+ elseif t == 11 then -- not in cff2
+ if trace_charstrings then
+ showstate("return")
+ end
+ return
+ elseif t == 10 then
+ call("local",locals,localbias) -- ,process)
+ i = i + 1
+ elseif t == 14 then -- not in cff2
+ if width then
+ -- okay
+ elseif top > 0 then
+ width = stack[1]
+ if trace_charstrings then
+ showvalue("width",width)
+ end
+ else
+ width = true
+ end
+ if trace_charstrings then
+ showstate("endchar")
+ end
+ return
+ elseif t == 29 then
+ call("global",globals,globalbias) -- ,process)
+ i = i + 1
+ elseif t == 12 then
+ i = i + 1
+ local t = tab[i]
+ if justpass then
+ if t >= 34 and t <= 37 then -- flexes
+ for i=1,top do
+ r = r + 1 ; result[r] = encode[stack[i]]
+ end
+ r = r + 1 ; result[r] = chars[12]
+ r = r + 1 ; result[r] = chars[t]
+ top = 0
+ elseif t == 6 then
+ seacs[procidx] = {
+ asb = stack[1],
+ adx = stack[2],
+ ady = stack[3],
+ base = stack[4],
+ accent = stack[5],
+ width = width,
+ lsb = lsb,
+ }
+ top = 0
+ else
+ local a = subactions[t]
+ if a then
+ a(t)
+ else
+ top = 0
+ end
+ end
+ else
+ local a = subactions[t]
+ if a then
+ a(t)
+ else
+ if trace_charstrings then
+ showvalue("<subaction>",t)
+ end
+ top = 0
+ end
+ end
+ i = i + 1
+ elseif justpass then
+ -- todo: local a = passactions
+ if t == 15 then
+ p_setvsindex()
+ i = i + 1
+ elseif t == 16 then
+ local s = p_blend() or 0
+ i = i + s + 1
+ -- cff 1: (when cff2 strip them)
+ elseif t == 1 or t == 3 or t == 18 or operation == 23 then
+ p_getstem() -- at the start
+ if version == "cff" then
+-- if true then
+ if top > 0 then
+ for i=1,top do
+ r = r + 1 ; result[r] = encode[stack[i]]
+ end
+ top = 0
+ end
+ r = r + 1 ; result[r] = chars[t]
+ else
+ top = 0
+ end
+ i = i + 1
+ -- cff 1: (when cff2 strip them)
+ elseif t == 19 or t == 20 then
+ local s = p_getmask() or 0 -- after the stems
+-- if version == "cff" then
+ if true then
+ if top > 0 then
+ for i=1,top do
+ r = r + 1 ; result[r] = encode[stack[i]]
+ end
+ top = 0
+ end
+ r = r + 1 ; result[r] = chars[t]
+ for j=1,s do
+ i = i + 1
+ r = r + 1 ; result[r] = chars[tab[i]]
+ end
+ else
+ i = i + s
+ top = 0
+ end
+ i = i + 1
+ -- cff 1: closepath
+ elseif t == 9 then
+ top = 0
+ i = i + 1
+ elseif t == 13 then
+ hsbw()
+-- if version == "cff" then
+ if true then
+ -- we do a moveto over lsb
+ r = r + 1 ; result[r] = encode[lsb]
+ r = r + 1 ; result[r] = chars[22]
+ else
+ -- lsb is supposed to be zero
+ end
+ i = i + 1
+ else
+ if trace_charstrings then
+ showstate(reverse[t] or "<action>")
+ end
+ if top > 0 then
+ -- if t == 8 and top > 42 then
+ if t == 8 and top > 48 then
+ -- let's assume this only happens for rrcurveto .. the other ones would need some more
+ -- complex handling (cff2 stuff)
+ --
+ -- dx1 dy1 (dx1+dx2) (dy1+dy2) (dx1+dx2+dx3) (dy1+dy2+dy3) rcurveto.
+ local n = 0
+ for i=1,top do
+ -- if n == 42 then
+ if n == 48 then
+-- local zero = encode[0]
+-- local res3 = result[r-3]
+-- local res2 = result[r-2]
+-- local res1 = result[r-1]
+-- local res0 = result[r]
+-- result[r-3] = zero
+-- result[r-2] = zero
+ r = r + 1 ; result[r] = chars[t]
+-- r = r + 1 ; result[r] = zero
+-- r = r + 1 ; result[r] = zero
+-- r = r + 1 ; result[r] = res3
+-- r = r + 1 ; result[r] = res2
+-- r = r + 1 ; result[r] = res1
+-- r = r + 1 ; result[r] = res0
+ n = 1
+ else
+ n = n + 1
+ end
+ r = r + 1 ; result[r] = encode[stack[i]]
+ end
+ else
+ for i=1,top do
+ r = r + 1 ; result[r] = encode[stack[i]]
+ end
+ end
+ top = 0
+ end
+ r = r + 1 ; result[r] = chars[t]
+ i = i + 1
+ end
+ else
+ local a = actions[t]
+ if a then
+ local s = a(t)
+ if s then
+ i = i + s + 1
+ else
+ i = i + 1
+ end
+ else
+ if trace_charstrings then
+ showstate(reverse[t] or "<action>")
+ end
+ top = 0
+ i = i + 1
+ end
+ end
+ end
+ end
+
+ -- local function calculatebounds(segments,x,y)
+ -- local nofsegments = #segments
+ -- if nofsegments == 0 then
+ -- return { x, y, x, y }
+ -- else
+ -- local xmin = 10000
+ -- local xmax = -10000
+ -- local ymin = 10000
+ -- local ymax = -10000
+ -- if x < xmin then xmin = x end
+ -- if x > xmax then xmax = x end
+ -- if y < ymin then ymin = y end
+ -- if y > ymax then ymax = y end
+ -- -- we now have a reasonable start so we could
+ -- -- simplify the next checks
+ -- for i=1,nofsegments do
+ -- local s = segments[i]
+ -- local x = s[1]
+ -- local y = s[2]
+ -- if x < xmin then xmin = x end
+ -- if x > xmax then xmax = x end
+ -- if y < ymin then ymin = y end
+ -- if y > ymax then ymax = y end
+ -- if s[#s] == "c" then -- "curveto"
+ -- local x = s[3]
+ -- local y = s[4]
+ -- if x < xmin then xmin = x elseif x > xmax then xmax = x end
+ -- if y < ymin then ymin = y elseif y > ymax then ymax = y end
+ -- local x = s[5]
+ -- local y = s[6]
+ -- if x < xmin then xmin = x elseif x > xmax then xmax = x end
+ -- if y < ymin then ymin = y elseif y > ymax then ymax = y end
+ -- end
+ -- end
+ -- return { round(xmin), round(ymin), round(xmax), round(ymax) } -- doesn't make ceil more sense
+ -- end
+ -- end
+
+ local function setbias(globals,locals,nobias)
+ if nobias then
+ return 0, 0
+ else
+ local g = #globals
+ local l = #locals
+ return
+ ((g < 1240 and 107) or (g < 33900 and 1131) or 32768) + 1,
+ ((l < 1240 and 107) or (l < 33900 and 1131) or 32768) + 1
+ end
+ end
+
+ local function processshape(glyphs,tab,index,hack)
+
+ if not tab then
+ glyphs[index] = {
+ boundingbox = { 0, 0, 0, 0 },
+ width = 0,
+ name = charset and charset[index] or nil,
+ }
+ return
+ end
+
+ tab = bytetable(tab)
+
+ x = 0
+ y = 0
+ width = false
+ lsb = 0
+ r = 0
+ top = 0
+ stems = 0
+ result = { } -- we could reuse it when only boundingbox calculations are needed
+ popped = 3
+ procidx = index
+
+ xmin = 0
+ xmax = 0
+ ymin = 0
+ ymax = 0
+ checked = false
+ if trace_charstrings then
+ report("glyph: %i",index)
+ report("data : % t",tab)
+ end
+
+ if regions then
+ updateregions(vsindex)
+ end
+
+ process(tab)
+ if hack then
+ return x, y
+ end
+
+ local boundingbox = {
+ round(xmin),
+ round(ymin),
+ round(xmax),
+ round(ymax),
+ }
+
+ if width == true or width == false then
+ width = defaultwidth
+ else
+ width = nominalwidth + width
+ end
+
+ local glyph = glyphs[index] -- can be autodefined in otr
+ if justpass then
+ r = r + 1
+ result[r] = c_endchar
+ local stream = concat(result)
+result = nil
+ -- if trace_charstrings then
+ -- report("vdata: %s",stream)
+ -- end
+ if glyph then
+ glyph.stream = stream
+ glyph.width = width
+ else
+ glyphs[index] = { stream = stream, width = width }
+ end
+ elseif glyph then
+ glyph.segments = keepcurve ~= false and result or nil
+ glyph.boundingbox = boundingbox
+ if not glyph.width then
+ glyph.width = width
+ end
+ if charset and not glyph.name then
+ glyph.name = charset[index]
+ end
+ -- glyph.sidebearing = 0 -- todo
+ elseif keepcurve then
+ glyphs[index] = {
+ segments = result,
+ boundingbox = boundingbox,
+ width = width,
+ name = charset and charset[index] or nil,
+ -- sidebearing = 0,
+ }
+result = nil
+ else
+ glyphs[index] = {
+ boundingbox = boundingbox,
+ width = width,
+ name = charset and charset[index] or nil,
+ }
+ end
+ if trace_charstrings then
+ report("width : %s",tostring(width))
+ report("boundingbox: % t",boundingbox)
+ end
+
+ end
+
+ startparsing = function(fontdata,data,streams)
+ reginit = false
+ axis = false
+ regions = data.regions
+ justpass = streams == true
+ popped = 3
+ seacs = { }
+ if regions then
+ -- this was:
+ -- regions = { regions } -- needs checking
+ -- and is now (MFC):
+ regions = { }
+ local deltas = data.deltas
+ for i = 1, #deltas do
+ regions[i] = deltas[i].regions
+ end
+ axis = data.factors or false
+ end
+ end
+
+ stopparsing = function(fontdata,data)
+ stack = { }
+ glyphs = false
+ result = { }
+ top = 0
+ locals = false
+ globals = false
+ strings = false
+ popped = 3
+ seacs = { }
+ end
+
+ local function setwidths(private)
+ if not private then
+ return 0, 0
+ end
+ local privatedata = private.data
+ if not privatedata then
+ return 0, 0
+ end
+ return privatedata.nominalwidthx or 0, privatedata.defaultwidthx or 0
+ end
+
+ parsecharstrings = function(fontdata,data,glphs,doshapes,tversion,streams,nobias,istypeone)
+
+ local dictionary = data.dictionaries[1]
+ local charstrings = dictionary.charstrings
+
+ keepcurve = doshapes
+ version = tversion
+ typeone = istypeone or false
+ strings = data.strings
+ globals = data.routines or { }
+ locals = dictionary.subroutines or { }
+ charset = dictionary.charset
+ vsindex = dictionary.vsindex or 0
+
+ local glyphs = glphs or { }
+
+ globalbias, localbias = setbias(globals,locals,nobias)
+ nominalwidth, defaultwidth = setwidths(dictionary.private)
+
+ if charstrings then
+ startparsing(fontdata,data,streams)
+ for index=1,#charstrings do
+ processshape(glyphs,charstrings[index],index-1)
+ end
+ if justpass and next(seacs) then
+ -- old type 1 stuff ... seacs
+ local charset = data.dictionaries[1].charset
+ if charset then
+ local lookup = table.swapped(charset)
+ for index, v in next, seacs do
+ local bindex = lookup[standardnames[v.base]]
+ local aindex = lookup[standardnames[v.accent]]
+ local bglyph = bindex and glyphs[bindex]
+ local aglyph = aindex and glyphs[aindex]
+ if bglyph and aglyph then
+ -- this is a real ugly hack but we seldom enter this branch (e.g. old lbr)
+ local jp = justpass
+ justpass = false
+ local x, y = processshape(glyphs,charstrings[bindex+1],bindex,true)
+ justpass = jp
+ --
+ local base = bglyph.stream
+ local accent = aglyph.stream
+ local moveto = encode[-x-v.asb+v.adx] .. chars[22]
+ .. encode[-y +v.ady] .. chars[ 4]
+ -- prune an endchar
+ base = sub(base,1,#base-1)
+ -- combine them
+ glyphs[index].stream = base .. moveto .. accent
+ end
+ end
+ end
+ end
+ stopparsing(fontdata,data)
+ else
+ report("no charstrings")
+ end
+ return glyphs
+ end
+
+ parsecharstring = function(fontdata,data,dictionary,tab,glphs,index,doshapes,tversion,streams)
+
+ keepcurve = doshapes
+ version = tversion
+ strings = data.strings
+ globals = data.routines or { }
+ locals = dictionary.subroutines or { }
+ charset = false
+ vsindex = dictionary.vsindex or 0
+
+ local glyphs = glphs or { }
+
+ justpass = streams == true
+ seacs = { }
+
+ globalbias, localbias = setbias(globals,locals,nobias)
+ nominalwidth, defaultwidth = setwidths(dictionary.private)
+
+ processshape(glyphs,tab,index-1)
+
+ return glyphs[index]
+ end
+
+end
+
+local function readglobals(f,data,version)
+ local routines = readlengths(f,version == "cff2")
+ for i=1,#routines do
+ routines[i] = readbytetable(f,routines[i])
+ end
+ data.routines = routines
+end
+
+local function readencodings(f,data)
+ data.encodings = { }
+end
+
+local function readcharsets(f,data,dictionary)
+ local header = data.header
+ local strings = data.strings
+ local nofglyphs = data.nofglyphs
+ local charsetoffset = dictionary.charset
+ if charsetoffset and charsetoffset ~= 0 then
+ setposition(f,header.offset+charsetoffset)
+ local format = readbyte(f)
+ local charset = { [0] = ".notdef" }
+ dictionary.charset = charset
+ if format == 0 then
+ for i=1,nofglyphs do
+ charset[i] = strings[readushort(f)]
+ end
+ elseif format == 1 or format == 2 then
+ local readcount = format == 1 and readbyte or readushort
+ local i = 1
+ while i <= nofglyphs do
+ local sid = readushort(f)
+ local n = readcount(f)
+ for s=sid,sid+n do
+ charset[i] = strings[s]
+ i = i + 1
+ if i > nofglyphs then
+ break
+ end
+ end
+ end
+ else
+ report("cff parser: unsupported charset format %a",format)
+ end
+ else
+ dictionary.nocharset = true
+ dictionary.charset = nil
+ end
+end
+
+local function readprivates(f,data)
+ local header = data.header
+ local dictionaries = data.dictionaries
+ local private = dictionaries[1].private
+ if private then
+ setposition(f,header.offset+private.offset)
+ private.data = readstring(f,private.size)
+ end
+end
+
+local function readlocals(f,data,dictionary,version)
+ local header = data.header
+ local private = dictionary.private
+ if private then
+ local subroutineoffset = private.data.subroutines
+ if subroutineoffset ~= 0 then
+ setposition(f,header.offset+private.offset+subroutineoffset)
+ local subroutines = readlengths(f,version == "cff2")
+ for i=1,#subroutines do
+ subroutines[i] = readbytetable(f,subroutines[i])
+ end
+ dictionary.subroutines = subroutines
+ private.data.subroutines = nil
+ else
+ dictionary.subroutines = { }
+ end
+ else
+ dictionary.subroutines = { }
+ end
+end
+
+-- These charstrings are little programs and described in: Technical Note #5177. A truetype
+-- font has only one dictionary.
+
+local function readcharstrings(f,data,version)
+ local header = data.header
+ local dictionaries = data.dictionaries
+ local dictionary = dictionaries[1]
+ local stringtype = dictionary.charstringtype
+ local offset = dictionary.charstrings
+ if type(offset) ~= "number" then
+ -- weird
+ elseif stringtype == 2 then
+ setposition(f,header.offset+offset)
+ -- could be a metatable .. delayed loading
+ local charstrings = readlengths(f,version=="cff2")
+ local nofglyphs = #charstrings
+ for i=1,nofglyphs do
+ charstrings[i] = readstring(f,charstrings[i])
+ end
+ data.nofglyphs = nofglyphs
+ dictionary.charstrings = charstrings
+ else
+ report("unsupported charstr type %i",stringtype)
+ data.nofglyphs = 0
+ dictionary.charstrings = { }
+ end
+end
+
+-- cid (maybe do this stepwise so less mem) -- share with above
+
+local function readcidprivates(f,data)
+ local header = data.header
+ local dictionaries = data.dictionaries[1].cid.dictionaries
+ for i=1,#dictionaries do
+ local dictionary = dictionaries[i]
+ local private = dictionary.private
+ if private then
+ setposition(f,header.offset+private.offset)
+ private.data = readstring(f,private.size)
+ end
+ end
+ parseprivates(data,dictionaries)
+end
+
+readers.parsecharstrings = parsecharstrings -- used in font-onr.lua (type 1)
+
+local function readnoselect(f,fontdata,data,glyphs,doshapes,version,streams)
+ local dictionaries = data.dictionaries
+ local dictionary = dictionaries[1]
+ local cid = not dictionary.private and dictionary.cid
+ readglobals(f,data,version)
+ readcharstrings(f,data,version)
+ if version == "cff2" then
+ dictionary.charset = nil
+ else
+ readencodings(f,data)
+ readcharsets(f,data,dictionary)
+ end
+ if cid then
+ local fdarray = cid.fdarray
+ if fdarray then
+ setposition(f,data.header.offset + fdarray)
+ local dictionaries = readlengths(f,version=="cff2")
+ local nofdictionaries = #dictionaries
+ if nofdictionaries > 0 then
+ for i=1,nofdictionaries do
+ dictionaries[i] = readstring(f,dictionaries[i])
+ end
+ parsedictionaries(data,dictionaries)
+ dictionary.private = dictionaries[1].private
+ if nofdictionaries > 1 then
+ report("ignoring dictionaries > 1 in cid font")
+ end
+ end
+ end
+ end
+ readprivates(f,data)
+ parseprivates(data,data.dictionaries)
+ readlocals(f,data,dictionary,version)
+ startparsing(fontdata,data,streams)
+ parsecharstrings(fontdata,data,glyphs,doshapes,version,streams,false)
+ stopparsing(fontdata,data)
+end
+
+local function readfdselect(f,fontdata,data,glyphs,doshapes,version,streams)
+ local header = data.header
+ local dictionaries = data.dictionaries
+ local dictionary = dictionaries[1]
+ local cid = dictionary.cid
+ local cidselect = cid and cid.fdselect
+ readglobals(f,data,version)
+ readcharstrings(f,data,version)
+ if version ~= "cff2" then
+ readencodings(f,data)
+ end
+ local charstrings = dictionary.charstrings
+ local fdindex = { }
+ local nofglyphs = data.nofglyphs
+ local maxindex = -1
+ setposition(f,header.offset+cidselect)
+ local format = readbyte(f)
+ if format == 1 then
+ for i=0,nofglyphs do -- notdef included (needs checking)
+ local index = readbyte(f)
+ fdindex[i] = index
+ if index > maxindex then
+ maxindex = index
+ end
+ end
+ elseif format == 3 then
+ local nofranges = readushort(f)
+ local first = readushort(f)
+ local index = readbyte(f)
+ while true do
+ local last = readushort(f)
+ if index > maxindex then
+ maxindex = index
+ end
+ for i=first,last do
+ fdindex[i] = index
+ end
+ if last >= nofglyphs then
+ break
+ else
+ first = last + 1
+ index = readbyte(f)
+ end
+ end
+ else
+ report("unsupported fd index format %i",format)
+ end
+ -- hm, always
+ if maxindex >= 0 then
+ local cidarray = cid.fdarray
+ if cidarray then
+ setposition(f,header.offset+cidarray)
+ local dictionaries = readlengths(f,version == "cff2")
+ if #dictionaries > 0 then
+ for i=1,#dictionaries do
+ dictionaries[i] = readstring(f,dictionaries[i])
+ end
+ parsedictionaries(data,dictionaries)
+ cid.dictionaries = dictionaries
+ readcidprivates(f,data)
+ for i=1,#dictionaries do
+ readlocals(f,data,dictionaries[i],version)
+ end
+ startparsing(fontdata,data,streams)
+ for i=1,#charstrings do
+ local dictionary = dictionaries[fdindex[i]+1]
+ if dictionary then
+ parsecharstring(fontdata,data,dictionary,charstrings[i],glyphs,i,doshapes,version,streams)
+ else
+ -- report("no dictionary for %a : %a => %a",version,i,fdindex[i]+1)
+ end
+ -- charstrings[i] = false
+ end
+ stopparsing(fontdata,data)
+ else
+ report("no cid dictionaries")
+ end
+ else
+ report("no cid array")
+ end
+ end
+end
+
+local gotodatatable = readers.helpers.gotodatatable
+
+local function cleanup(data,dictionaries)
+ -- for i=1,#dictionaries do
+ -- local d = dictionaries[i]
+ -- d.subroutines = nil
+ -- end
+ -- data.strings = nil
+ -- if data then
+ -- data.charstrings = nil
+ -- data.routines = nil
+ -- end
+end
+
+function readers.cff(f,fontdata,specification)
+ local tableoffset = gotodatatable(f,fontdata,"cff",specification.details or specification.glyphs)
+ if tableoffset then
+ local header = readheader(f)
+ if header.major ~= 1 then
+ report("only version %s is supported for table %a",1,"cff")
+ return
+ end
+ local glyphs = fontdata.glyphs
+ local names = readfontnames(f)
+ local dictionaries = readtopdictionaries(f)
+ local strings = readstrings(f)
+ local data = {
+ header = header,
+ names = names,
+ dictionaries = dictionaries,
+ strings = strings,
+ nofglyphs = fontdata.nofglyphs,
+ }
+ --
+ parsedictionaries(data,dictionaries,"cff")
+ --
+ local dic = dictionaries[1]
+ local cid = dic.cid
+ --
+ local cffinfo = {
+ familyname = dic.familyname,
+ fullname = dic.fullname,
+ boundingbox = dic.boundingbox,
+ weight = dic.weight,
+ italicangle = dic.italicangle,
+ underlineposition = dic.underlineposition,
+ underlinethickness = dic.underlinethickness,
+ defaultwidth = dic.defaultwidthx,
+ nominalwidth = dic.nominalwidthx,
+ monospaced = dic.monospaced,
+ }
+ fontdata.cidinfo = cid and {
+ registry = cid.registry,
+ ordering = cid.ordering,
+ supplement = cid.supplement,
+ }
+ fontdata.cffinfo = cffinfo
+ --
+ local all = specification.shapes or specification.streams or false
+ if specification.glyphs or all then
+ if cid and cid.fdselect then
+ readfdselect(f,fontdata,data,glyphs,all,"cff",specification.streams)
+ else
+ readnoselect(f,fontdata,data,glyphs,all,"cff",specification.streams)
+ end
+ end
+ local private = dic.private
+ if private then
+ local data = private.data
+ if type(data) == "table" then
+ cffinfo.defaultwidth = data.defaultwidthx or cffinfo.defaultwidth
+ cffinfo.nominalwidth = data.nominalwidthx or cffinfo.nominalwidth
+ cffinfo.bluevalues = data.bluevalues
+ cffinfo.otherblues = data.otherblues
+ cffinfo.familyblues = data.familyblues
+ cffinfo.familyotherblues = data.familyotherblues
+ cffinfo.bluescale = data.bluescale
+ cffinfo.blueshift = data.blueshift
+ cffinfo.bluefuzz = data.bluefuzz
+ cffinfo.stdhw = data.stdhw
+ cffinfo.stdvw = data.stdvw
+ cffinfo.stemsnaph = data.stemsnaph
+ cffinfo.stemsnapv = data.stemsnapv
+ end
+ end
+ cleanup(data,dictionaries)
+ end
+end
+
+function readers.cff2(f,fontdata,specification)
+ local tableoffset = gotodatatable(f,fontdata,"cff2",specification.glyphs)
+ if tableoffset then
+ local header = readheader(f)
+ if header.major ~= 2 then
+ report("only version %s is supported for table %a",2,"cff2")
+ return
+ end
+ local glyphs = fontdata.glyphs
+ local dictionaries = { readstring(f,header.dsize) }
+ local data = {
+ header = header,
+ dictionaries = dictionaries,
+ nofglyphs = fontdata.nofglyphs,
+ }
+ --
+ parsedictionaries(data,dictionaries,"cff2")
+ --
+ local offset = dictionaries[1].vstore
+ if offset > 0 then
+ local storeoffset = dictionaries[1].vstore + data.header.offset + 2 -- cff has a preceding size field
+ local regions, deltas = readers.helpers.readvariationdata(f,storeoffset,factors)
+ --
+ data.regions = regions
+ data.deltas = deltas
+ else
+ data.regions = { }
+ data.deltas = { }
+ end
+ data.factors = specification.factors
+ --
+ local cid = data.dictionaries[1].cid
+ local all = specification.shapes or specification.streams or false
+ if cid and cid.fdselect then
+ readfdselect(f,fontdata,data,glyphs,all,"cff2",specification.streams)
+ else
+ readnoselect(f,fontdata,data,glyphs,all,"cff2",specification.streams)
+ end
+ cleanup(data,dictionaries)
+ end
+end
+
+-- temporary helper needed for checking backend patches
+
+-- function readers.cffcheck(filename)
+-- local f = io.open(filename,"rb")
+-- if f then
+-- local fontdata = {
+-- glyphs = { },
+-- }
+-- local header = readheader(f)
+-- if header.major ~= 1 then
+-- report("only version %s is supported for table %a",1,"cff")
+-- return
+-- end
+-- local names = readfontnames(f)
+-- local dictionaries = readtopdictionaries(f)
+-- local strings = readstrings(f)
+-- local glyphs = { }
+-- local data = {
+-- header = header,
+-- names = names,
+-- dictionaries = dictionaries,
+-- strings = strings,
+-- glyphs = glyphs,
+-- nofglyphs = 0,
+-- }
+-- --
+-- parsedictionaries(data,dictionaries,"cff")
+-- --
+-- local cid = data.dictionaries[1].cid
+-- if cid and cid.fdselect then
+-- readfdselect(f,fontdata,data,glyphs,false)
+-- else
+-- readnoselect(f,fontdata,data,glyphs,false)
+-- end
+-- return data
+-- end
+-- end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-chk.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-chk.lmt
index 6f927e09764..05a3611ccd2 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-chk.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-chk.lmt
@@ -12,7 +12,8 @@ if not modules then modules = { } end modules ['font-chk'] = {
-- instead we just keep the method we use but slightly adapted to the backend
-- of lmtx.
-local next = next
+local type, next = type, next
+local find, lower, gmatch = string.find, string.lower, string.gmatch
local floor = math.floor
local context = context
@@ -22,12 +23,15 @@ local bpfactor = number.dimenfactors.bp
local fastcopy = table.fastcopy
local sortedkeys = table.sortedkeys
local sortedhash = table.sortedhash
+local contains = table.contains
local report = logs.reporter("fonts")
local report_checking = logs.reporter("fonts","checking")
local allocate = utilities.storage.allocate
+local getmacro = tokens.getters.macro
+
local fonts = fonts
fonts.checkers = fonts.checkers or { }
@@ -38,8 +42,8 @@ local fontdata = fonthashes.identifiers
local fontcharacters = fonthashes.characters
local currentfont = font.current
-local addcharacters = font.addcharacters
+local definers = fonts.definers
local helpers = fonts.helpers
local addprivate = helpers.addprivate
@@ -64,7 +68,7 @@ local implement = interfaces.implement
local glyph_code = nodes.nodecodes.glyph
-local hpack_node = node.hpack
+local hpack_node = nodes.hpack
local nuts = nodes.nuts
local tonut = nuts.tonut
@@ -75,8 +79,8 @@ local setchar = nuts.setchar
local nextglyph = nuts.traversers.glyph
local remove_node = nuts.remove
-local insert_node_after = nuts.insert_after
-local insert_node_before = nuts.insert_before
+local insertnodeafter = nuts.insertafter
+local insertnodebefore = nuts.insertbefore
local copy_node = nuts.copy
local actions = false
@@ -155,15 +159,18 @@ checkers.mapping = mapping
-- sure the dimensions are known at the lua and tex end. For previous variants see
-- the mkiv files or older lmtx files. I decided to just drop the old stuff here.
-function checkers.placeholder(font,char)
- local category = chardata[char].category or "lu" -- todo: unknown
- local fakedata = mapping[category]
+function checkers.placeholder(font,char,category)
+ local category = category or chardata[char].category or "lu" -- todo: unknown
+ local fakedata = mapping[category] or mapping.lu
local tfmdata = fontdata[font]
local units = tfmdata.parameters.units or 1000
local slant = (tfmdata.parameters.slant or 0)/65536
local scale = units/1000
local rawdata = tfmdata.shared and tfmdata.shared.rawdata
local weight = (rawdata and rawdata.metadata and rawdata.metadata.pfmweight or 400)/400
+-- if slant then
+-- slant = 0.2
+-- end
local specification = {
code = "MissingGlyph",
scale = scale,
@@ -191,7 +198,7 @@ function checkers.missing(head)
local c = chardata[char]
if c then
local s = c.specials
- if s and s[1] == "char" then
+ if s and (s[1] == "char" or s[1] == "with") then -- with added
local l = #s
if l > 2 then
-- check first
@@ -208,7 +215,7 @@ function checkers.missing(head)
onetimemessage(font,char,"missing (decomposed)")
setchar(n,s[l])
for i=l-1,2,-1 do
- head, o = insert_node_before(head,o,copy_node(n))
+ head, o = insertnodebefore(head,o,copy_node(n))
setchar(o,s[i])
end
goto DONE
@@ -372,16 +379,11 @@ local function expandglyph(characters,index,done)
if n then
d.next = expandglyph(characters,n,done)
end
- local h = d.horiz_variants
- if h then
- for i=1,#h do
- h[i].glyph = expandglyph(characters,h[i].glyph,done)
- end
- end
- local v = d.vert_variants
- if v then
- for i=1,#v do
- v[i].glyph = expandglyph(characters,v[i].glyph,done)
+ local p = d.parts
+ if p then
+ for i=1,#p do
+ local pi = p[i]
+ pi.glyph = expandglyph(characters,pi.glyph,done)
end
end
return d
@@ -430,9 +432,11 @@ local function addvisualspace(tfmdata)
if spacechar and not spacechar.commands then
local w = spacechar.width
local h = tfmdata.parameters.xheight
+ -- local h = tfmdata.parameters.xheight / 4 -- could be "visualspace=large" or so
local c = {
width = w,
- commands = { { "rule", h, w } }
+ commands = { { "rule", h, w } },
+ -- commands = { { "line", w, 5*h, h } },
}
local u = addprivate(tfmdata, "visualspace", c)
end
@@ -450,3 +454,101 @@ local visualspace_specification = {
registerotffeature(visualspace_specification)
registerafmfeature(visualspace_specification)
+
+do
+
+
+ local reference = 88 -- string.byte("X")
+ local mapping = { ss = "sans", rm = "serif", tt = "mono" }
+ local order = { "sans", "serif", "mono" }
+ local fallbacks = { sans = { }, serif = { }, mono = { } }
+
+ local function locate(fallbacks,n,f,c)
+ for i=1,#fallbacks do
+ local id = fallbacks[i]
+ if type(id) == "string" then
+ local fid = definers.define { name = id }
+ report("using fallback font %!font:name! (id: %i)",fid,fid)
+ fallbacks[i] = fid
+ id = fid
+ end
+ if type(id) == "number" then
+ local cid = fontcharacters[id]
+ if cid[c] then
+ local fc = fontcharacters[f]
+ local sc = (fc[reference].height / cid[reference].height) * (n.scale or 1000)
+ report("character %C in font %!font:name! (id: %i) is taken from fallback font %!font:name! (id: %i)",c,f,f,id,id)
+ return { id, sc }
+ end
+ end
+ end
+ return false
+ end
+
+ local cache = table.setmetatableindex("table")
+
+ callback.register("missing_character", function(n,f,c)
+ local cached = cache[f]
+ local found = cached[c]
+ if found == nil then
+ -- we can use fonts.helpers.name(f) but we need the monospace flag anyway so:
+ local metadata = fontdata[f].shared
+ if metadata then
+ metadata = metadata.rawdata
+ if metadata then
+ metadata = metadata.metadata
+ if metadata then
+ if metadata.monospaced then
+ found = locate(fallbacks.mono,n,f,c)
+ if found then
+ cached[c] = found
+ goto done
+ end
+ end
+ local fn = lower(metadata.fullname)
+ for i=1,3 do
+ local o = order[i]
+ if find(fn,o) then
+ found = locate(fallbacks[o],n,f,c)
+ if found then
+ cached[c] = found
+ goto done
+ end
+ end
+ end
+ end
+ end
+ end
+ found = locate(fallbacks[mapping[getmacro("fontstyle")] or "mono"],n,f,c)
+ if found then
+ cached[c] = found
+ goto done
+ end
+ end
+ ::done::
+ if found then
+ n.font = found[1]
+ n.scale = found[2]
+ end
+ end)
+
+ function definers.registerfallbackfont(style,list)
+ local l = fallbacks[style]
+ if l then
+ for s in gmatch(list,"[^, ]+") do
+ if not contains(l,s) then
+ l[#l+1] = s
+ end
+ end
+ end
+ end
+
+ implement {
+ name = "registerfallbackfont",
+ public = true,
+ protected = true,
+ arguments = { "optional", "optional" },
+ actions = definers.registerfallbackfont,
+ }
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-col.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-col.lmt
index 41d3274008c..2a999ddebc8 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-col.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-col.lmt
@@ -22,11 +22,11 @@ local nuts = nodes.nuts
local setfont = nuts.setfont
------ traverse_char = nuts.traverse_char
local nextchar = nuts.traversers.char
local getscales = nuts.getscales
local setscales = nuts.setscales
local setprop = nuts.setprop
+local getcharspec = nuts.getcharspec
local settings_to_hash = utilities.parsers.settings_to_hash
@@ -53,6 +53,7 @@ local charcommand = helpers.commands.char
local rightcommand = helpers.commands.right
local addprivate = helpers.addprivate
local hasprivate = helpers.hasprivate
+local isprivate = helpers.isprivate
local fontpatternhassize = helpers.fontpatternhassize
local hashes = fonts.hashes
@@ -258,7 +259,9 @@ function collections.clonevector(name)
if target then
for unicode = start, stop do
local unic = unicode + offset - start
- if not newchars[target] then
+ if isprivate(unic) or isprivate(target) then
+ -- ignore
+ elseif not newchars[target] then
-- not in font
elseif force or (not vector[unic] and not oldchars[unic]) then
vector[unic] = { cloneid, target }
@@ -270,7 +273,9 @@ function collections.clonevector(name)
else
for unicode = start, stop do
local unic = unicode + offset - start
- if not newchars[unicode] then
+ if isprivate(unic) or isprivate(unicode) then
+ -- ignore
+ elseif not newchars[target] then
-- not in font
elseif force or (not vector[unic] and not oldchars[unic]) then
vector[unic] = cloneid
@@ -281,7 +286,9 @@ function collections.clonevector(name)
if target then
for unicode = start, stop do
local unic = unicode + offset - start
- if force or (not vector[unic] and not oldchars[unic]) then
+ if isprivate(unic) or isprivate(target) then
+ -- ignore
+ elseif force or (not vector[unic] and not oldchars[unic]) then
vector[unic] = { cloneid, target }
end
target = target + 1
@@ -289,14 +296,18 @@ function collections.clonevector(name)
elseif remap then
for unicode = start, stop do
local unic = unicode + offset - start
- if force or (not vector[unic] and not oldchars[unic]) then
+ if isprivate(unic) or isprivate(unicode) then
+ -- ignore
+ elseif force or (not vector[unic] and not oldchars[unic]) then
vector[unic] = { cloneid, remap[unicode] }
end
end
else
for unicode = start, stop do
local unic = unicode + offset - start
- if force or (not vector[unic] and not oldchars[unic]) then
+ if isprivate(unic) then
+ -- ignore
+ elseif force or (not vector[unic] and not oldchars[unic]) then
vector[unic] = cloneid
end
end
@@ -384,6 +395,7 @@ local function monoslot(font,char,parent,factor)
width = width,
height = character.height,
depth = character.depth,
+ -- { "offset", ... }
commands = {
rightcommand[(width - character.width or 0)/2],
charcommand[char],
@@ -411,63 +423,80 @@ end
-- todo: also general one for missing
+local function apply(n,char,font,vector,vect)
+ local kind = type(vect)
+ local newfont, newchar
+ if kind == "table" then
+ newfont = vect[1]
+ newchar = vect[2]
+ if trace_collecting then
+ report_fonts("remapping character %C in font %a to character %C in font %a%s",
+ char,font,newchar,newfont,not chardata[newfont][newchar] and " (missing)" or ""
+ )
+ end
+ elseif kind == "function" then
+ newfont, newchar = vect(font,char,vector)
+ if not newfont then
+ newfont = font
+ end
+ if not newchar then
+ newchar = char
+ end
+ if trace_collecting then
+ report_fonts("remapping character %C in font %a to character %C in font %a%s",
+ char,font,newchar,newfont,not chardata[newfont][newchar] and " (missing)" or ""
+ )
+ end
+ vector[char] = { newfont, newchar }
+ else
+ local fakemono = vector.factor
+ if trace_collecting then
+ report_fonts("remapping font %a to %a for character %C%s",
+ font,vect,char,not chardata[vect][char] and " (missing)" or ""
+ )
+ end
+ newfont = vect
+ if fakemono then
+ newchar = monoslot(vect,char,font,fakemono)
+ else
+ newchar = char
+ end
+ end
+ local rscale = vector.rscale
+ if rscale and rscale ~= 1 then
+ local s, x, y = getscales(n)
+ setscales(n,s*rscale,x*rscale,y*rscale)
+ end
+ setfont(n,newfont,newchar)
+ setprop(n, "original", { font = font, char = char })
+end
+
function collections.process(head) -- this way we keep feature processing
for n, char, font in nextchar, head do
local vector = validvectors[font]
if vector then
local vect = vector[char]
if vect then
- local kind = type(vect)
- local newfont, newchar
- if kind == "table" then
- newfont = vect[1]
- newchar = vect[2]
- if trace_collecting then
- report_fonts("remapping character %C in font %a to character %C in font %a%s",
- char,font,newchar,newfont,not chardata[newfont][newchar] and " (missing)" or ""
- )
- end
- elseif kind == "function" then
- newfont, newchar = vect(font,char,vector)
- if not newfont then
- newfont = font
- end
- if not newchar then
- newchar = char
- end
- if trace_collecting then
- report_fonts("remapping character %C in font %a to character %C in font %a%s",
- char,font,newchar,newfont,not chardata[newfont][newchar] and " (missing)" or ""
- )
- end
- vector[char] = { newfont, newchar }
- else
- local fakemono = vector.factor
- if trace_collecting then
- report_fonts("remapping font %a to %a for character %C%s",
- font,vect,char,not chardata[vect][char] and " (missing)" or ""
- )
- end
- newfont = vect
- if fakemono then
- newchar = monoslot(vect,char,font,fakemono)
- else
- newchar = char
- end
- end
- local rscale = vector.rscale
- if rscale and rscale ~= 1 then
- local s, x, y = getscales(n)
- setscales(n,s*rscale,x*rscale,y*rscale)
- end
- setfont(n,newfont,newchar)
- setprop(n, "original", { font = font, char = char })
+ apply(n,char,font,vector,vect)
end
end
end
return head
end
+function collections.direct(n)
+ local char, font = getcharspec(n)
+ if font and char then
+ local vector = validvectors[font]
+ if vector then
+ local vect = vector[char]
+ if vect then
+ apply(n,char,font,vector,vect)
+ end
+ end
+ end
+end
+
function collections.found(font,char) -- this way we keep feature processing
if not char then
font, char = currentfont(), font
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-col.mklx b/Master/texmf-dist/tex/context/base/mkxl/font-col.mklx
index e6500dd7620..03515201fe4 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-col.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-col.mklx
@@ -34,7 +34,7 @@
\permanent\tolerant\protected\def\definefontfallback[#name]#spacer[#font]#spacer[#ranges]#spacer[#settings]%
{\let\mathsizesuffix\relax
\clf_fontcollectiondefine{#name}{#font}{#ranges}{#settings}%
- \let\mathsizesuffix\empty}
+ \lettonothing\mathsizesuffix}
\permanent\tolerant\protected\def\resetfontfallback[#name]#spacer[#font]%
{\clf_fontcollectionreset{#name}{#font}}
@@ -54,7 +54,7 @@
\font_fallbacks_prepare#fallbacks%
\endgroup}
-\let\m_font_fallbacks\empty % set in the font-ini
+\lettonothing\m_font_fallbacks % set in the font-ini
\appendtoks
\ifconditional\c_font_fallbacks_in_progress\else
@@ -68,7 +68,7 @@
\fi
\to\everydefinefont
-\let\m_font_fallbacks_spec\empty
+\lettonothing\m_font_fallbacks_spec
\def\font_fallbacks_start_cloning
{\begingroup
@@ -95,14 +95,18 @@
% math (experiment, todo clf_)
-\def\font_fallbacks_register_math#1#2#3#4%
- {\doifelsenothing{#3}%
- {\definedfont[#2 at #4sp]}%
- {\definedfont[#2*#3\space at #4\scaledpoint]}%
- \clf_registerfontfallbackid#1\space\fontid\font\space{#2}}
-
-% \def\font_fallbacks_finish_math
-% {\ctxlua{mathematics.finishfallbacks()}}
+% \def\font_fallbacks_register_math#1#2#3#4%
+% {\doifelsenothing{#3}%
+% {\definedfont[#2 at #4\scaledpoint]}%
+% {\definedfont[#2*#3\space at #4\scaledpoint]}%
+% \clf_registerfontfallbackid#1\space\fontid\font\space{#2}}
+
+% % % \def\font_fallbacks_register_math#1#2#3#4%
+% % % {\definedfont[#2\iftok{#3}\emptytoks\else*#3 \fi at #4\scaledpoint]%
+% % % \clf_registerfontfallbackid#1\space\fontid\font\space{#2}}
+% % %
+% % % \def\font_fallbacks_finish_math
+% % % {\ctxlua{mathematics.finishfallbacks()}}
% check : only replace when present in replacement font (default: no)
% force : force replacent even when basefont has glyph (default: yes)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-con.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-con.lmt
index bebc4e4984f..073af7d2ec8 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-con.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-con.lmt
@@ -156,22 +156,26 @@ function constructors.aftercopyingcharacters(target,original)
-- can be used for additional tweaking
end
+function constructors.beforepassingfonttotex(tfmdata)
+ -- can be used for additional tweaking
+end
+
function constructors.trytosharefont(target,tfmdata)
-- implemented in font-def.lmt
end
local synonyms = {
- exheight = "x_height",
- xheight = "x_height",
- ex = "x_height",
+ exheight = "xheight",
+ xheight = "xheight",
+ ex = "xheight",
emwidth = "quad",
em = "quad",
- spacestretch = "space_stretch",
- stretch = "space_stretch",
- spaceshrink = "space_shrink",
- shrink = "space_shrink",
- extraspace = "extra_space",
- xspace = "extra_space",
+ spacestretch = "spacestretch",
+ stretch = "spacestretch",
+ spaceshrink = "spaceshrink",
+ shrink = "spaceshrink",
+ extraspace = "extraspace",
+ xspace = "extraspace",
slantperpoint = "slant",
}
@@ -188,9 +192,9 @@ function constructors.enhanceparameters(parameters)
if k == "spacing" then
return {
width = t.space,
- stretch = t.space_stretch,
- shrink = t.space_shrink,
- extra = t.extra_space,
+ stretch = t.spacestretch,
+ shrink = t.spaceshrink,
+ extra = t.extraspace,
}
end
return mt and mt[k] or nil
@@ -205,9 +209,9 @@ function constructors.enhanceparameters(parameters)
elseif k == "spacing" then
if type(v) == "table" then
rawset(t,"space",v.width or 0)
- rawset(t,"space_stretch",v.stretch or 0)
- rawset(t,"space_shrink",v.shrink or 0)
- rawset(t,"extra_space",v.extra or 0)
+ rawset(t,"spacestretch",v.stretch or 0)
+ rawset(t,"spaceshrink",v.shrink or 0)
+ rawset(t,"extraspace",v.extra or 0)
end
else
rawset(t,k,v)
@@ -254,6 +258,26 @@ local function fixedpsname(psname,fallback)
return usedname, psname ~= usedname
end
+local function scaleparts(parts,delta)
+ local t = { }
+ for i=1,#parts do
+ local p = parts[i]
+ local s = p["start"] or 0
+ local e = p["end"] or 0
+ local a = p["advance"] or 0
+ t[i] = {
+ ["start"] = s == 0 and 0 or s * delta,
+ ["end"] = e == 0 and 0 or e * delta,
+ ["advance"] = a == 0 and 0 or a * delta,
+ ["extender"] = p["extender"],
+ ["glyph"] = p["glyph"],
+ }
+ end
+ return t
+end
+
+-- getcharactertagvalues
+
function constructors.scale(tfmdata,specification)
local target = { } -- the new table
--
@@ -298,20 +322,20 @@ function constructors.scale(tfmdata,specification)
--
local mathsize = tonumber(specification.mathsize) or 0
local textsize = tonumber(specification.textsize) or scaledpoints
- local forcedsize = tonumber(parameters.mathsize ) or 0 -- can be set by the feature "mathsize"
+ -- local forcedsize = tonumber(parameters.mathsize ) or 0 -- can be set by the feature "mathsize"
local extrafactor = tonumber(specification.factor ) or 1
- if (mathsize == 2 or forcedsize == 2) and parameters.scriptpercentage then
- scaledpoints = parameters.scriptpercentage * textsize / 100
- elseif (mathsize == 3 or forcedsize == 3) and parameters.scriptscriptpercentage then
- scaledpoints = parameters.scriptscriptpercentage * textsize / 100
- elseif forcedsize > 1000 then -- safeguard
- scaledpoints = forcedsize
- else
- -- in context x and xx also use mathsize
- end
+ -- if (mathsize == 2 or forcedsize == 2) and parameters.scriptpercentage then
+ -- scaledpoints = parameters.scriptpercentage * textsize / 100
+ -- elseif (mathsize == 3 or forcedsize == 3) and parameters.scriptscriptpercentage then
+ -- scaledpoints = parameters.scriptscriptpercentage * textsize / 100
+ -- elseif forcedsize > 1000 then -- safeguard
+ -- scaledpoints = forcedsize
+ -- else
+ -- -- in context x and xx also use mathsize
+ -- end
targetparameters.mathsize = mathsize
targetparameters.textsize = textsize
- targetparameters.forcedsize = forcedsize
+ -- targetparameters.forcedsize = forcedsize
targetparameters.extrafactor = extrafactor
--
local defaultwidth = resources.defaultwidth or 0
@@ -334,6 +358,7 @@ function constructors.scale(tfmdata,specification)
--
local askedscaledpoints = scaledpoints
local scaledpoints, delta = constructors.calculatescale(tfmdata,scaledpoints,nil,specification) -- no shortcut, dan be redefined
+-- print("B",mathsize,askedscaledpoints,scaledpoints,delta)
--
local hdelta = delta
local vdelta = delta
@@ -390,6 +415,7 @@ function constructors.scale(tfmdata,specification)
if extendfactor ~= 0 and extendfactor ~= 1 then
hdelta = hdelta * extendfactor
target.extend = extendfactor * 1000
+-- target.extend = round(target.extend)
else
target.extend = 1000 -- extent ?
end
@@ -398,6 +424,7 @@ function constructors.scale(tfmdata,specification)
if squeezefactor ~= 0 and squeezefactor ~= 1 then
vdelta = vdelta * squeezefactor
target.squeeze = squeezefactor * 1000
+-- target.squeeze = round(target.squeeze)
else
target.squeeze = 1000 -- extent ?
end
@@ -423,7 +450,7 @@ function constructors.scale(tfmdata,specification)
local hasquality = parameters.expansion or parameters.protrusion
local hasitalics = properties.hasitalics
local autoitalicamount = properties.autoitalicamount
- local stackmath = not properties.nostackmath
+ -- local stackmath = not properties.nostackmath
local haskerns = properties.haskerns or properties.mode == "base" -- we can have afm in node mode
local hasligatures = properties.hasligatures or properties.mode == "base" -- we can have afm in node mode
local realdimensions = properties.realdimensions
@@ -437,21 +464,21 @@ function constructors.scale(tfmdata,specification)
--
target.postprocessors = tfmdata.postprocessors
--
- local targetslant = (parameters.slant or parameters[1] or 0) * factors.pt -- per point
- local targetspace = (parameters.space or parameters[2] or 0) * hdelta
- local targetspace_stretch = (parameters.space_stretch or parameters[3] or 0) * hdelta
- local targetspace_shrink = (parameters.space_shrink or parameters[4] or 0) * hdelta
- local targetx_height = (parameters.x_height or parameters[5] or 0) * vdelta
- local targetquad = (parameters.quad or parameters[6] or 0) * hdelta
- local targetextra_space = (parameters.extra_space or parameters[7] or 0) * hdelta
- --
- targetparameters.slant = targetslant -- slantperpoint
- targetparameters.space = targetspace
- targetparameters.space_stretch = targetspace_stretch
- targetparameters.space_shrink = targetspace_shrink
- targetparameters.x_height = targetx_height
- targetparameters.quad = targetquad
- targetparameters.extra_space = targetextra_space
+ local targetslant = (parameters.slant or parameters[1] or 0) * factors.pt -- per point
+ local targetspace = (parameters.space or parameters[2] or 0) * hdelta
+ local targetspacestretch = (parameters.spacestretch or parameters[3] or 0) * hdelta
+ local targetspaceshrink = (parameters.spaceshrink or parameters[4] or 0) * hdelta
+ local targetxheight = (parameters.xheight or parameters[5] or 0) * vdelta
+ local targetquad = (parameters.quad or parameters[6] or 0) * hdelta
+ local targetextraspace = (parameters.extraspace or parameters[7] or 0) * hdelta
+ --
+ targetparameters.slant = targetslant -- slantperpoint
+ targetparameters.space = targetspace
+ targetparameters.spacestretch = targetspacestretch
+ targetparameters.spaceshrink = targetspaceshrink
+ targetparameters.xheight = targetxheight
+ targetparameters.quad = targetquad
+ targetparameters.extraspace = targetextraspace
--
local hshift = parameters.hshift
if hshift then
@@ -464,7 +491,7 @@ function constructors.scale(tfmdata,specification)
--
local ascender = parameters.ascender
if ascender then
- targetparameters.ascender = delta * ascender
+ targetparameters.ascender = delta * ascender
end
local descender = parameters.descender
if descender then
@@ -477,17 +504,28 @@ function constructors.scale(tfmdata,specification)
local scaledheight = defaultheight * vdelta
local scaleddepth = defaultdepth * vdelta
--
+ local textcontrol = properties.textcontrol or 0
+ if targetproperties.mode == "base" then
+ textcontrol = textcontrol | 0x02 | 0x04 -- todo symbolic
+ elseif targetproperties.mode == "none" then
+ textcontrol = textcontrol | 0x08 -- todo symbolic
+ end
+ targetproperties.textcontrol = textcontrol
+ target.textcontrol = textcontrol
+ --
local hasmath = (properties.hasmath or next(mathparameters)) and true
--
if hasmath then
constructors.assignmathparameters(target,tfmdata) -- does scaling and whatever is needed
- properties.hasmath = true
- target.nomath = false
+ properties.hasmath = true -- to be sure
+ target.nomath = false -- hm
target.MathConstants = target.mathparameters
- properties.compactmath = true
- target.compactmath = true
+ local compactmath = properties.compactmath
+
+ targetproperties.compactmath = compactmath
+ target.compactmath = compactmath
local textscale = parameters.textscale -- or 1000
local scriptscale = parameters.scriptscale -- or 700
@@ -505,11 +543,9 @@ function constructors.scale(tfmdata,specification)
targetparameters.scriptscale = scriptscale
targetparameters.scriptscriptscale = scriptscriptscale
- -- todo: maybe retrofit to font-con.lua
-
- local oldmath = properties.oldmath
- targetproperties.oldmath = oldmath
- target.oldmath = oldmath
+ local mathcontrol = properties.mathcontrol
+ targetproperties.mathcontrol = mathcontrol
+ target.mathcontrol = mathcontrol
else
properties.hasmath = false
@@ -557,6 +593,7 @@ function constructors.scale(tfmdata,specification)
--
for unicode, character in next, characters do
local chr, description, index
+ -- todo: add description entry to char entry instead of index ... saves elsewhere too
if changed then
local c = changed[unicode]
if c and c ~= unicode then
@@ -640,95 +677,108 @@ function constructors.scale(tfmdata,specification)
end
if hasquality then
-- we could move these calculations elsewhere (saves calculations)
- local ve = character.expansion_factor
+ local ve = character.expansion
if ve then
- chr.expansion_factor = ve*1000 -- expansionfactor, hm, can happen elsewhere
+ chr.expansion = ve*1000 -- expansionfactor, hm, can happen elsewhere
end
- local vl = character.left_protruding
+ local vc = character.compression
+ if vc then
+ chr.compression = vc*1000 -- expansionfactor, hm, can happen elsewhere
+ end
+ local vl = character.leftprotrusion
if vl then
- chr.left_protruding = width*vl
+ chr.leftprotrusion = width*vl
end
- local vr = character.right_protruding
+ local vr = character.rightprotrusion
if vr then
- chr.right_protruding = width*vr
+ chr.rightprotrusion = width*vr
end
end
--
if hasmath then
- --
- -- todo, just operate on descriptions.math
- local vn = character.next
- if vn then
- chr.next = vn
- else
- local vv = character.vert_variants
- if vv then
- local t = { }
- for i=1,#vv do
- local vvi = vv[i]
- local s = vvi["start"] or 0
- local e = vvi["end"] or 0
- local a = vvi["advance"] or 0
- t[i] = { -- zero check nicer for 5.3
- ["start"] = s == 0 and 0 or s * vdelta,
- ["end"] = e == 0 and 0 or e * vdelta,
- ["advance"] = a == 0 and 0 or a * vdelta,
- ["extender"] = vvi["extender"],
- ["glyph"] = vvi["glyph"],
- }
- end
- chr.vert_variants = t
- else
- local hv = character.horiz_variants
- if hv then
- local t = { }
- for i=1,#hv do
- local hvi = hv[i]
- local s = hvi["start"] or 0
- local e = hvi["end"] or 0
- local a = hvi["advance"] or 0
- t[i] = { -- zero check nicer for 5.3
- ["start"] = s == 0 and 0 or s * hdelta,
- ["end"] = e == 0 and 0 or e * hdelta,
- ["advance"] = a == 0 and 0 or a * hdelta,
- ["extender"] = hvi["extender"],
- ["glyph"] = hvi["glyph"],
- }
- end
- chr.horiz_variants = t
- end
- end
- -- todo also check mathitalics (or that one can go away)
+ local nxt = character.next
+ if nxt then
+ chr.next = nxt
+ end
+ local parts = character.parts
+ if parts then
+ local orientation = character.partsorientation or "vertical"
+ chr.parts = scaleparts(parts,orientation == "horizontal" and hdelta or vdelta)
+ chr.partsorientation = orientation
end
- local vi = character.vert_italic
+ local vi = character.partsitalic
if vi and vi ~= 0 then
- chr.vert_italic = vi*hdelta
+ chr.partsitalic = vi*hdelta
end
- local va = character.accent
- if va then
- chr.top_accent = vdelta*va
+ local va = character.topanchor
+ if va and va ~= 0 then
+ chr.topanchor = va*vdelta
end
- if stackmath then
- local mk = character.mathkerns
- if mk then
- local tr = mk.topright
- local tl = mk.topleft
- local br = mk.bottomright
- local bl = mk.bottomleft
- chr.mathkern = { -- singular -> should be patched in luatex !
- top_right = tr and mathkerns(tr,vdelta) or nil,
- top_left = tl and mathkerns(tl,vdelta) or nil,
- bottom_right = br and mathkerns(br,vdelta) or nil,
- bottom_left = bl and mathkerns(bl,vdelta) or nil,
- }
- end
+ va = character.bottomanchor
+ if va and va ~= 0 then
+ chr.bottomanchor = va*vdelta
+ end
+ --
+ local mk = character.mathkerns
+ if mk then
+ local tr = mk.topright
+ local tl = mk.topleft
+ local br = mk.bottomright
+ local bl = mk.bottomleft
+ chr.mathkerns = {
+ topright = tr and mathkerns(tr,vdelta) or nil,
+ topleft = tl and mathkerns(tl,vdelta) or nil,
+ bottomright = br and mathkerns(br,vdelta) or nil,
+ bottomleft = bl and mathkerns(bl,vdelta) or nil,
+ }
end
+ --
if hasitalics then
local vi = character.italic
if vi and vi ~= 0 then
chr.italic = vi*hdelta
end
end
+ --
+ -- These can never happen here as these come from tweaks but I need to check it:
+ --
+ -- local vo = character.topovershoot
+ -- if vo and vo ~= 0 then
+ -- chr.topovershoot = vo*hdelta
+ -- end
+ -- local il = character.innerlocation
+ -- if il then
+ -- chr.innerlocation = il
+ -- chr.innerxoffset = (character.innerxoffset or 0) * hdelta
+ -- chr.inneryoffset = (character.inneryoffset or 0) * vdelta
+ -- end
+ --
+ -- if character.extensible then
+ -- chr.extensible = true -- stretch fixed width accent
+ -- end
+ -- --
+ -- local k = character.topleft if k and k ~= 0 then chr.topleft = k*hdelta end
+ -- local k = character.topright if k and k ~= 0 then chr.topright = k*hdelta end
+ -- local k = character.bottomleft if k and k ~= 0 then chr.bottomleft = k*hdelta end
+ -- local k = character.bottomright if k and k ~= 0 then chr.bottomright = k*hdelta end
+ -- --
+ -- local m = character.leftmargin if m and m ~= 0 then chr.leftmargin = m*hdelta end
+ -- local m = character.rightmargin if m and m ~= 0 then chr.rightmargin = m*hdelta end
+ -- local m = character.topmargin if m and m ~= 0 then chr.topmargin = m*hdelta end
+ -- local m = character.bottommargin if m and m ~= 0 then chr.bottommargin = m*hdelta end
+ --
+ local sm = character.smaller
+ if sm then
+ chr.smaller = sm
+ end
+ -- local mi = character.mirror
+ -- if mi then
+ -- chr.mirror = mi
+ -- end
+ local fa = character.flataccent -- set here?
+ if fa then
+ chr.flataccent = fa
+ end
elseif autoitalicamount then -- itlc feature
local vi = description.italic
if not vi then
@@ -776,10 +826,29 @@ function constructors.scale(tfmdata,specification)
end
end
end
+ -- only in old school fonts (otherwise we set commands later in context)
local vc = character.commands
if vc then
chr.commands = scalecommands(vc,hdelta,vdelta)
end
+ local cb = character.callback
+ if cb then
+ chr.callback = cb
+ end
+ -- we assume that these are done in a manipulator afterwards
+ -- as it makes no sense otherwise
+ -- local vx = character.xoffset
+ -- if vx then
+ -- chr.xoffset = vx*hdelta
+ -- end
+ -- local vy = character.yoffset
+ -- if vy then
+ -- chr.yoffset = vy*vdelta
+ -- end
+ -- local va = character.advance
+ -- if va then
+ -- chr.advance = va*vdelta
+ -- end
targetcharacters[unicode] = chr
end
--
@@ -1088,6 +1157,7 @@ do
local position = source.position
setindeed("node",source,target,group,name,position)
setindeed("base",source,target,group,name,position)
+ setindeed("none",source,target,group,name,position)
setindeed("plug",source,target,group,name,position)
end
@@ -1155,10 +1225,10 @@ do
defaults = { },
descriptions = tables and tables.features or { },
used = statistics and statistics.usedfeatures or { },
- initializers = { base = { }, node = { }, plug = { } },
- processors = { base = { }, node = { }, plug = { } },
- manipulators = { base = { }, node = { }, plug = { } },
- finalizers = { base = { }, node = { }, plug = { } },
+ initializers = { base = { }, node = { }, none = { }, plug = { } },
+ processors = { base = { }, node = { }, none = { }, plug = { } },
+ manipulators = { base = { }, node = { }, none = { }, plug = { } },
+ finalizers = { base = { }, node = { }, none = { }, plug = { } },
}
features.register = function(specification) return register(features,specification) end
handler.features = features -- will also become hidden
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-ctx.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-ctx.lmt
index b735e3d2f91..23c676e4ee5 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-ctx.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-ctx.lmt
@@ -90,6 +90,7 @@ local setsubtype = nuts.setsubtype
local texgetdimen = tex.getdimen
local texsetcount = tex.setcount
+local texiscount = tex.iscount
local texget = tex.get
local texdefinefont = tex.definefont
@@ -156,7 +157,8 @@ or
-- this will move elsewhere ...
local function getfontname(tfmdata)
- return basename(type(tfmdata) == "number" and properties[tfmdata].name or tfmdata.properties.name)
+ local p = type(tfmdata) == "number" and properties[tfmdata] or tfmdata.properties
+ return basename((p and (p.name or p.fullname or p.fontname)) or "unknown")
end
helpers.name = getfontname
@@ -185,6 +187,12 @@ constructors.noffontsloaded = 0
-- font.getcopy = font.getfont -- we always want the table that context uses
+local accuratefactors = false
+----- compactfontmode = false
+
+experiments.register("fonts.accurate", function(v) accuratefactors = v end)
+experiments.register("fonts.compact", function() accuratefactors = true end)
+
do
-- Does this still make sense?
@@ -302,14 +310,14 @@ function definers.resetnullfont()
-- resetting is needed because tikz misuses nullfont
local parameters = fonts.nulldata.parameters
--
- parameters.slant = 0 -- 1
- parameters.space = 0 -- 2
- parameters.space_stretch = 0 -- 3
- parameters.space_shrink = 0 -- 4
- parameters.x_height = 0 -- 5
- parameters.quad = 0 -- 6
- parameters.extra_space = 0 -- 7
- parameters.designsize = 655360
+ parameters.slant = 0 -- 1
+ parameters.space = 0 -- 2
+ parameters.spacestretch = 0 -- 3
+ parameters.spaceshrink = 0 -- 4
+ parameters.xheight = 0 -- 5
+ parameters.quad = 0 -- 6
+ parameters.extraspace = 0 -- 7
+ parameters.designsize = 655360
--
constructors.enhanceparameters(parameters) -- official copies for us
--
@@ -503,6 +511,22 @@ do
end
end
+ local beforepassingfonttotex = sequencers.new {
+ name = "beforepassingfonttotex",
+ arguments = "tfmdata",
+ }
+
+ appendgroup(beforepassingfonttotex,"before") -- user
+ appendgroup(beforepassingfonttotex,"system") -- private
+ appendgroup(beforepassingfonttotex,"after" ) -- user
+
+ function constructors.beforepassingfonttotex(tfmdata)
+ local runner = beforepassingfonttotex.runner
+ if runner then
+ runner(tfmdata)
+ end
+ end
+
end
--[[ldx--
@@ -1051,23 +1075,30 @@ local sizepattern, splitpattern, specialscale do
local withinparents = leftparent * (1-rightparent)^0 * rightparent
local withinbraces = leftbrace * (1-rightbrace )^0 * rightbrace
local value = C((withinparents + withinbraces + (1-space))^1)
- -- local dimension = C((space/"" + P(1))^1)
- local dimension = Cs((digit+period)^1 * (spaces/"") * (P(1)-digit)^0)
--- local scaler = C((digit+period)^1)
+ local dimension = Cs((digit+period)^1 * (spaces/"") * (P(1)-digit-space)^0)
+ -- local dimension_x = C((space/"" + P(1))^1)
+ local dimension_x = C((1-space)^1)
+ -- local scaler = C((digit+period)^1)
local scaler = lpeg.patterns.unsigned/function(s) return round(tonumber(s)*1000) end
+ C(lpeg.patterns.cardinal)
local rest = C(P(1)^0)
local scale_none = Cc(0)
- local scale_at = (P("at") + P("@")) * Cc(1) * spaces * dimension -- dimension
- local scale_sa = P("sa") * Cc(2) * spaces * dimension -- number
- local scale_mo = P("mo") * Cc(3) * spaces * dimension -- number
- local scale_scaled = P("scaled") * Cc(4) * spaces * dimension -- number
- local scale_ht = P("ht") * Cc(5) * spaces * dimension -- dimension
- local scale_cp = P("cp") * Cc(6) * spaces * dimension -- dimension
+ local scale_at = (P("at") + P("@")) * Cc(1) * spaces * dimension -- dimension
+ local scale_sa = P("sa") * Cc(2) * spaces * dimension_x -- number or string
+ local scale_mo = P("mo") * Cc(3) * spaces * dimension_x -- number or string
+ local scale_scaled = P("scaled") * Cc(4) * spaces * dimension -- number
+ local scale_ht = P("ht") * Cc(5) * spaces * dimension -- dimension
+ local scale_cp = P("cp") * Cc(6) * spaces * dimension -- dimension
+ local scale_sx = P("sx") * spaces * scaler -- scale
+ local scale_sy = P("sy") * spaces * scaler -- scale
specialscale = { [5] = "ht", [6] = "cp" }
- sizepattern = spaces * ((scale_at + scale_sa + scale_mo + scale_ht + scale_cp + scale_scaled) * (spaces * scaler)^0 + scale_none)
+ -- sizepattern = spaces * ((scale_at + scale_sa + scale_mo + scale_ht + scale_cp + scale_scaled) * (spaces * scaler)^0 + scale_none)
+
+ scaler = spaces * ( (scale_sx + Cc(0)) * spaces * (scale_sy + Cc(0)) )^-1
+ sizepattern = spaces * ((scale_at + scale_sa + scale_mo + scale_ht + scale_cp + scale_scaled) * scaler + scale_none)
+
splitpattern = spaces * value * spaces * rest
end
@@ -1095,12 +1126,16 @@ local specifiers = { }
do -- else too many locals
- local starttiming = statistics.starttiming
- local stoptiming = statistics.stoptiming
+ local starttiming = statistics.starttiming
+ local stoptiming = statistics.stoptiming
+
+ local setmacro = tokens.setters.macro
+ local ctxcatcodes = tex.ctxcatcodes
+ local texconditionals = tex.conditionals
- local setmacro = tokens.setters.macro
- local ctxcatcodes = tex.ctxcatcodes
- local texconditionals = tex.conditionals
+ local c_scaledfontmode = texiscount("scaledfontmode")
+ local c_scaledfontsize = texiscount("scaledfontsize")
+ local c_lastfontid = texiscount("lastfontid")
local reported = setmetatableindex(function(t,k)
local v = setmetatableindex(function(t,k)
@@ -1111,6 +1146,12 @@ do -- else too many locals
return v
end)
+ local obey_designsize = false
+
+ experiments.register("fonts.compact.obeydesignsize",function(v)
+ obey_designsize = v
+ end)
+
implement {
name = "definefont_one",
arguments = "string",
@@ -1133,13 +1174,14 @@ do -- else too many locals
end
-- we can also use a count for the size
if size and size ~= "" then
- local mode, size, sx, sy = lpegmatch(sizepattern,size)
- if mode and size and size ~= "" then
- texsetcount("scaledfontmode",mode)
- -- ctx_setsomefontsize(size)
+ local mode, fontsize, sx, sy = lpegmatch(sizepattern,size)
+-- print(size,mode,fontsize,sx,sy)
+ if mode and fontsize and fontsize ~= "" then
+ texsetcount(c_scaledfontmode,mode)
+ -- ctx_setsomefontsize(fontsize)
-- We use a catcodetable, just in case it's 1.2\exheight (a corner case that showed
-- up in the lmtx manual: marking that changed size in the mids of some verbatim).
- setmacro(ctxcatcodes,"somefontsize",size)
+ setmacro(ctxcatcodes,"somefontsize",fontsize)
if sx then
setmacro("somefontsizex",sx)
end
@@ -1147,15 +1189,15 @@ do -- else too many locals
setmacro("somefontsizey",sy)
end
else
- texsetcount("scaledfontmode",0)
+ texsetcount(c_scaledfontmode,0)
-- ctx_setemptyfontsize()
end
elseif true then
-- so we don't need to check in tex
- texsetcount("scaledfontmode",2)
+ texsetcount(c_scaledfontmode,2)
-- ctx_setemptyfontsize()
else
- texsetcount("scaledfontmode",0)
+ texsetcount(c_scaledfontmode,0)
-- ctx_setemptyfontsize()
end
specification = definers.makespecification(str,lookup,name,sub,method,detail,size)
@@ -1190,23 +1232,23 @@ do -- else too many locals
"integer",
},
actions = function (
- global, -- \ifx\fontclass\empty\s!false\else\s!true\fi
- cs, -- {#csname}%
- str, -- \somefontfile
- size, -- \d_font_scaled_font_size
- inheritancemode, -- \c_font_feature_inheritance_mode
- classfeatures, -- \m_font_class_features
- fontfeatures, -- \m_font_features
- classfallbacks, -- \m_font_class_fallbacks
- fontfallbacks, -- \m_font_fallbacks
- mathsize, -- \fontface
- textsize, -- \d_font_scaled_text_face
- classgoodies, -- \m_font_class_goodies
- goodies, -- \m_font_goodies
- classdesignsize, -- \m_font_class_designsize
- fontdesignsize, -- \m_font_designsize
- scaledfontmode -- \scaledfontmode
- )
+ global, -- \ifx\fontclass\empty\s!false\else\s!true\fi
+ cs, -- {#csname}%
+ str, -- \somefontfile
+ size, -- \d_font_scaled_font_size
+ inheritancemode, -- \c_font_feature_inheritance_mode
+ classfeatures, -- \m_font_class_features
+ fontfeatures, -- \m_font_features
+ classfallbacks, -- \m_font_class_fallbacks
+ fontfallbacks, -- \m_font_fallbacks
+ mathsize, -- \fontface
+ textsize, -- \d_font_scaled_text_face
+ classgoodies, -- \m_font_class_goodies
+ goodies, -- \m_font_goodies
+ classdesignsize, -- \m_font_class_designsize
+ fontdesignsize, -- \m_font_designsize
+ scaledfontmode -- \scaledfontmode
+ )
if trace_defining then
report_defining("start stage two: %s, size %s, features %a & %a, mode %a",str,size,classfeatures,fontfeatures,inheritancemode)
end
@@ -1214,7 +1256,7 @@ do -- else too many locals
local lookup, name, sub, method, detail = getspecification(str or "")
-- new (todo: inheritancemode)
local designsize = fontdesignsize ~= "" and fontdesignsize or classdesignsize or ""
- local designname = designsizefilename(name,designsize,size)
+ local designname = designsizefilename(name,designsize,size,obey_designsize)
if designname and designname ~= "" then
if trace_defining or trace_designsize then
report_defining("remapping name %a, specification %a, size %a, designsize %a",name,designsize,size,designname)
@@ -1343,98 +1385,36 @@ do -- else too many locals
local properties = tfmdata.properties
-- we use char0 as signal; cf the spec pdf can handle this (no char in slot)
characters[0] = nil
- -- characters[0x00A0] = { width = parameters.space }
- -- characters[0x2007] = { width = characters[0x0030] and characters[0x0030].width or parameters.space } -- figure
- -- characters[0x2008] = { width = characters[0x002E] and characters[0x002E].width or parameters.space } -- period
- --
- local fallbacks = specification.fallbacks or ""
- local mathsize = (mathsize == 1 or mathsize == 2 or mathsize == 3) and mathsize or nil -- can be unset so we test 1 2 3
- if fallbacks ~= "" and mathsize and not busy then
- busy = true
- -- We need this ugly hack in order to resolve fontnames (at the \TEX end). Originally
- -- math was done in Lua after loading (plugged into aftercopying).
- --
- -- After tl 2017 I'll also do text fallbacks this way (although backups there are done
- -- in a completely different way.)
- if trace_defining then
- report_defining("defining %a, id %a, target %a, features %a / %a, fallbacks %a / %a, step %a",
- name,id,nice_cs(cs),classfeatures,fontfeatures,classfallbacks,fontfallbacks,1)
- end
- mathematics.resolvefallbacks(tfmdata,specification,fallbacks)
- context(function()
- -- We're doing math fallbacks.
- busy = false
- mathematics.finishfallbacks(tfmdata,specification,fallbacks)
- tfmdata.original = specification.specification
- local id = definefont(tfmdata,properties.id)
- csnames[id] = specification.cs
- properties.id = id -- already set
- definers.register(tfmdata,id) -- to be sure, normally already done
- texdefinefont(global,cs,id)
- -- texdefinefont(cs,id,global and "global")
- constructors.finalize(tfmdata)
- if trace_defining then
- report_defining("defining %a, id %a, target %a, features %a / %a, fallbacks %a / %a, step %a",
- name,id,nice_cs(cs),classfeatures,fontfeatures,classfallbacks,fontfallbacks,2)
- end
- -- resolved (when designsize is used):
- local size = round(tfmdata.parameters.size or 655360)
- setmacro("somefontsize",size.."sp")
- -- ctx_setsomefontsize(size .. "sp")
- texsetcount("scaledfontsize",size)
- lastfontid = id
- --
- if trace_defining then
- report_defining("memory usage after: %s",statistics.memused())
- report_defining("stop stage two")
- end
- --
- texsetcount("global","lastfontid",lastfontid)
- specifiers[lastfontid] = { str, size }
- if not mathsize then
- -- forget about it (can't happen here)
- elseif mathsize == 0 then
- -- can't happen (here)
- else
- -- maybe only 1 2 3 (we already test for this)
- lastmathids[mathsize] = lastfontid
- end
- stoptiming(fonts)
- end)
- return
- else
- tfmdata.original = specification.specification
- local id = definefont(tfmdata,properties.id)
- csnames[id] = specification.cs
- properties.id = id -- already set
- definers.register(tfmdata,id) -- to be sure, normally already done
- texdefinefont(global,cs,id)
- -- texdefinefont(cs,id,global and "global")
- constructors.finalize(tfmdata)
- if trace_defining then
- report_defining("defining %a, id %a, target %a, features %a / %a, fallbacks %a / %a, step %a",
- name,id,nice_cs(cs),classfeatures,fontfeatures,classfallbacks,fontfallbacks,"-")
- end
- -- resolved (when designsize is used):
- local size = round(tfmdata.parameters.size or 655360)
- setmacro("somefontsize",size.."sp")
- -- ctx_setsomefontsize(size .. "sp")
- texsetcount("scaledfontsize",size)
- lastfontid = id
+ tfmdata.original = specification.specification
+ local id = definefont(tfmdata,properties.id)
+ csnames[id] = specification.cs
+ properties.id = id -- already set
+ definers.register(tfmdata,id) -- to be sure, normally already done
+ texdefinefont(global,cs,id)
+ -- texdefinefont(cs,id,global and "global")
+ constructors.finalize(tfmdata)
+ if trace_defining then
+ report_defining("defining %a, id %a, target %a, features %a / %a, fallbacks %a / %a, step %a",
+ name,id,nice_cs(cs),classfeatures,fontfeatures,classfallbacks,fontfallbacks,"-")
end
+ -- resolved (when designsize is used):
+ local size = round(tfmdata.parameters.size or 655360)
+ setmacro("somefontsize",size.."sp")
+ texsetcount(c_scaledfontsize,size)
+ lastfontid = id
elseif tfmtype == "number" then
if trace_defining then
report_defining("reusing %s, id %a, target %a, features %a / %a, fallbacks %a / %a, goodies %a / %a, designsize %a / %a",
name,tfmdata,nice_cs(cs),classfeatures,fontfeatures,classfallbacks,fontfallbacks,classgoodies,goodies,classdesignsize,fontdesignsize)
end
csnames[tfmdata] = specification.cs
+-- \definedfont ends up here
texdefinefont(global,cs,tfmdata)
-- texdefinefont(cs,tfmdata,global and "global")
-- resolved (when designsize is used):
local size = round(fontdata[tfmdata].parameters.size or 0)
- -- ctx_setsomefontsize(size .. "sp")
setmacro("somefontsize",size.."sp")
- texsetcount("scaledfontsize",size)
+ texsetcount(c_scaledfontsize,size)
lastfontid = tfmdata
else
local nice = nice_cs(cs)
@@ -1442,7 +1422,7 @@ do -- else too many locals
report_defining("unable to define %a as %a",name,nice)
end
lastfontid = -1
- texsetcount("scaledfontsize",0)
+ texsetcount(c_scaledfontsize,0)
-- ctx_letvaluerelax(cs) -- otherwise the current definition takes the previous one
end
if trace_defining then
@@ -1450,7 +1430,7 @@ do -- else too many locals
report_defining("stop stage two")
end
--
- texsetcount("global","lastfontid",lastfontid)
+ texsetcount("global",c_lastfontid,lastfontid)
specifiers[lastfontid] = { str, size }
if not mathsize then
-- forget about it
@@ -1574,6 +1554,8 @@ do -- else too many locals
local n = 0
+ local d_bodyfontsize = tex.isdimen("bodyfontsize")
+
function definers.internal(specification,cs)
specification = specification or { }
local name = specification.name
@@ -1581,7 +1563,7 @@ do -- else too many locals
local number = tonumber(specification.number)
local id = nil
if not size then
- size = texgetdimen("bodyfontsize")
+ size = texgetdimen(d_bodyfontsize)
end
if number then
id = number
@@ -1623,7 +1605,7 @@ do -- else too many locals
return infofont
end
- -- abstract interfacing
+ -- abstract interfacing : we could actually do a runmacro or so
implement { name = "tf", actions = function() setmacro("fontalternative","tf") end }
implement { name = "bf", actions = function() setmacro("fontalternative","bf") end }
@@ -1638,6 +1620,8 @@ end
-- have delayed definitions and so we never know what style is taken
-- as start.
+local c_font_scaled_points = texiscount("c_font_scaled_points")
+
function constructors.calculatescale(tfmdata,scaledpoints,relativeid,specification)
local parameters = tfmdata.parameters
local units = parameters.units or 1000
@@ -1657,9 +1641,12 @@ function constructors.calculatescale(tfmdata,scaledpoints,relativeid,specificati
scaledpoints = (- scaledpoints/1000) * (tfmdata.designsize or parameters.designsize) -- already in sp
end
-- a temp hack till we have upgraded all mechanisms
- local delta = round(scaledpoints/units)
+ local delta = scaledpoints/units
local size = round(scaledpoints)
- texsetcount("c_font_scaled_points",size)
+ if not accuratefactors then
+ delta = round(delta)
+ end
+ texsetcount(c_font_scaled_points,size)
--
return size, delta
end
@@ -1684,16 +1671,17 @@ function constructors.hashinstance(specification,force)
end
specification.size = size
if fallbacks then
- return hash .. ' @ ' .. size .. ' @ ' .. fallbacks
+ hash = hash .. ' @ ' .. size .. ' @ ' .. fallbacks
else
local scalemode = specification.scalemode
local special = scalemode and specialscale[scalemode]
if special then
- return hash .. ' @ ' .. size .. ' @ ' .. special
+ hash = hash .. ' @ ' .. size .. ' @ ' .. special
else
- return hash .. ' @ ' .. size
+ hash = hash .. ' @ ' .. size
end
end
+ return hash
end
-- We overload the (generic) resolver:
@@ -2378,7 +2366,7 @@ do
end
implement {
- name = "nbfs",
+ name = "normalizedbodyfontsize",
arguments = "dimen",
actions = function(d)
context(lpegmatch(stripper,f_strip(d/65536)))
@@ -3032,7 +3020,7 @@ end
do
- local getfontoffamily = font.getfontoffamily
+ local getfontoffamily = tex.getfontoffamily
local new_glyph = nodes.pool.glyph
local fontproperties = fonts.hashes.properties
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-def.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-def.lmt
index 614f9803606..6afeeb47405 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-def.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-def.lmt
@@ -183,6 +183,7 @@ function resolvers.file(specification)
specification.forcedname = name
specification.name = removesuffix(name)
else
+ -- maybe when no suffix and not found, then still run over suffixes
specification.name = name -- can be resolved
end
end
@@ -473,6 +474,7 @@ function definers.read(specification,size,id) -- id can be optional, name can al
end
specification = definers.resolve(specification)
local hash = constructors.hashinstance(specification)
+-- inspect(hash)
local tfmdata = definers.registered(hash) -- id
local name = specification.name
if tfmdata then
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-dsp.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-dsp.lmt
new file mode 100644
index 00000000000..a1bf6f641d1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-dsp.lmt
@@ -0,0 +1,4668 @@
+if not modules then modules = { } end modules ['font-dsp'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- many 0,0 entry/exit
+
+-- This loader went through a few iterations. First I made a ff compatible one so
+-- that we could do some basic checking. Also some verbosity was added (named
+-- glyphs). Eventually all that was dropped for a context friendly format, simply
+-- because keeping the different table models in sync too to much time. I have the
+-- old file somewhere. A positive side effect is that we get an (upto) much smaller
+-- smaller tma/tmc file. In the end the loader will be not much slower than the
+-- c based ff one.
+
+-- Being binary encoded, an opentype is rather compact. When expanded into a Lua table
+-- quite some memory can be used. This is very noticeable in the ff loader, which for
+-- a good reason uses a verbose format. However, when we use that data we create a couple
+-- of hashes. In the Lua loader we create these hashes directly, which save quite some
+-- memory.
+--
+-- We convert a font file only once and then cache it. Before creating the cached instance
+-- packing takes place: common tables get shared. After (re)loading and unpacking we then
+-- get a rather efficient internal representation of the font. In the new loader there is a
+-- pitfall. Because we use some common coverage magic we put a bit more information in
+-- the mark and cursive coverage tables than strickly needed: a reference to the coverage
+-- itself. This permits a fast lookup of the second glyph involved. In the marks we
+-- expand the class indicator to a class hash, in the cursive we use a placeholder that gets
+-- a self reference. This means that we cannot pack these subtables unless we add a unique
+-- id per entry (the same one per coverage) and that makes the tables larger. Because only a
+-- few fonts benefit from this, I decided to not do this. Experiments demonstrated that it
+-- only gives a few percent gain (on for instance husayni we can go from 845K to 828K
+-- bytecode). Better stay conceptually clean than messy compact.
+
+-- When we can reduce all basic lookups to one step we might safe a bit in the processing
+-- so then only chains are multiple.
+
+-- I used to flatten kerns here but that has been moved elsewhere because it polutes the code
+-- here and can be done fast afterwards. One can even wonder if it makes sense to do it as we
+-- pack anyway. In a similar fashion the unique placeholders in anchors in marks have been
+-- removed because packing doesn't save much there anyway.
+
+-- Although we have a bit more efficient tables in the cached files, the internals are still
+-- pretty similar. And although we have a slightly more direct coverage access the processing
+-- of node lists is not noticeable faster for latin texts, but for arabic we gain some 10%
+-- (and could probably gain a bit more).
+
+-- All this packing in the otf format is somewhat obsessive as nowadays 4K resolution
+-- multi-gig videos pass through our networks and storage and memory is abundant.
+
+-- Although we use a few table readers there i sno real gain in there (apart from having
+-- less code. After all there are often not that many demanding features.
+
+local next, type, tonumber = next, type, tonumber
+local gsub = string.gsub
+local lower = string.lower
+local sub = string.sub
+local strip = string.strip
+local tohash = table.tohash
+local concat = table.concat
+local copy = table.copy
+local reversed = table.reversed
+local sort = table.sort
+local insert = table.insert
+local round = math.round
+
+local settings_to_hash = utilities.parsers.settings_to_hash_colon_too
+local setmetatableindex = table.setmetatableindex
+local formatters = string.formatters
+local sortedkeys = table.sortedkeys
+local sortedhash = table.sortedhash
+local sequenced = table.sequenced
+
+local report = logs.reporter("otf reader")
+
+local readers = fonts.handlers.otf.readers
+local streamreader = readers.streamreader
+
+local setposition = streamreader.setposition
+local getposition = streamreader.getposition
+local readuinteger = streamreader.readcardinal1
+local readushort = streamreader.readcardinal2
+local readuoffset = streamreader.readcardinal3
+local readulong = streamreader.readcardinal4
+local readinteger = streamreader.readinteger1
+local readshort = streamreader.readinteger2
+local readstring = streamreader.readstring
+local readtag = streamreader.readtag
+local readbytes = streamreader.readbytes
+local readfixed = streamreader.readfixed4
+local read2dot14 = streamreader.read2dot14
+local skipshort = streamreader.skipshort
+local skipbytes = streamreader.skip
+local readbytetable = streamreader.readbytetable
+local readbyte = streamreader.readbyte
+local readcardinaltable = streamreader.readcardinaltable
+local readintegertable = streamreader.readintegertable
+local readfword = readshort
+
+local short = 2
+local ushort = 2
+local uoffset = 3
+local ulong = 4
+
+directives.register("fonts.streamreader",function()
+
+ streamreader = utilities.streams
+
+ setposition = streamreader.setposition
+ getposition = streamreader.getposition
+ readuinteger = streamreader.readcardinal1
+ readushort = streamreader.readcardinal2
+ readuoffset = streamreader.readcardinal3
+ readulong = streamreader.readcardinal4
+ readinteger = streamreader.readinteger1
+ readshort = streamreader.readinteger2
+ readstring = streamreader.readstring
+ readtag = streamreader.readtag
+ readbytes = streamreader.readbytes
+ readfixed = streamreader.readfixed4
+ read2dot14 = streamreader.read2dot14
+ skipshort = streamreader.skipshort
+ skipbytes = streamreader.skip
+ readbytetable = streamreader.readbytetable
+ readbyte = streamreader.readbyte
+ readcardinaltable = streamreader.readcardinaltable
+ readintegertable = streamreader.readintegertable
+ readfword = readshort
+
+end)
+
+local gsubhandlers = { }
+local gposhandlers = { }
+
+readers.gsubhandlers = gsubhandlers
+readers.gposhandlers = gposhandlers
+
+local helpers = readers.helpers
+local gotodatatable = helpers.gotodatatable
+local setvariabledata = helpers.setvariabledata
+
+local lookupidoffset = -1 -- will become 1 when we migrate (only -1 for comparign with old)
+
+local classes = {
+ "base",
+ "ligature",
+ "mark",
+ "component",
+}
+
+local gsubtypes = {
+ "single",
+ "multiple",
+ "alternate",
+ "ligature",
+ "context",
+ "chainedcontext",
+ "extension",
+ "reversechainedcontextsingle",
+}
+
+local gpostypes = {
+ "single",
+ "pair",
+ "cursive",
+ "marktobase",
+ "marktoligature",
+ "marktomark",
+ "context",
+ "chainedcontext",
+ "extension",
+}
+
+local chaindirections = {
+ context = 0,
+ chainedcontext = 1,
+ reversechainedcontextsingle = -1,
+}
+
+local function setmetrics(data,where,tag,d)
+ local w = data[where]
+ if w then
+ local v = w[tag]
+ if v then
+ -- it looks like some fonts set the value and not the delta
+ -- report("adding %s to %s.%s value %s",d,where,tag,v)
+ w[tag] = v + d
+ end
+ end
+end
+
+local variabletags = {
+ hasc = function(data,d) setmetrics(data,"windowsmetrics","typoascender",d) end,
+ hdsc = function(data,d) setmetrics(data,"windowsmetrics","typodescender",d) end,
+ hlgp = function(data,d) setmetrics(data,"windowsmetrics","typolinegap",d) end,
+ hcla = function(data,d) setmetrics(data,"windowsmetrics","winascent",d) end,
+ hcld = function(data,d) setmetrics(data,"windowsmetrics","windescent",d) end,
+ vasc = function(data,d) setmetrics(data,"vhea not done","ascent",d) end,
+ vdsc = function(data,d) setmetrics(data,"vhea not done","descent",d) end,
+ vlgp = function(data,d) setmetrics(data,"vhea not done","linegap",d) end,
+ xhgt = function(data,d) setmetrics(data,"windowsmetrics","xheight",d) end,
+ cpht = function(data,d) setmetrics(data,"windowsmetrics","capheight",d) end,
+ sbxs = function(data,d) setmetrics(data,"windowsmetrics","subscriptxsize",d) end,
+ sbys = function(data,d) setmetrics(data,"windowsmetrics","subscriptysize",d) end,
+ sbxo = function(data,d) setmetrics(data,"windowsmetrics","subscriptxoffset",d) end,
+ sbyo = function(data,d) setmetrics(data,"windowsmetrics","subscriptyoffset",d) end,
+ spxs = function(data,d) setmetrics(data,"windowsmetrics","superscriptxsize",d) end,
+ spys = function(data,d) setmetrics(data,"windowsmetrics","superscriptysize",d) end,
+ spxo = function(data,d) setmetrics(data,"windowsmetrics","superscriptxoffset",d) end,
+ spyo = function(data,d) setmetrics(data,"windowsmetrics","superscriptyoffset",d) end,
+ strs = function(data,d) setmetrics(data,"windowsmetrics","strikeoutsize",d) end,
+ stro = function(data,d) setmetrics(data,"windowsmetrics","strikeoutpos",d) end,
+ unds = function(data,d) setmetrics(data,"postscript","underlineposition",d) end,
+ undo = function(data,d) setmetrics(data,"postscript","underlinethickness",d) end,
+}
+
+local read_cardinal = {
+ streamreader.readcardinal1,
+ streamreader.readcardinal2,
+ streamreader.readcardinal3,
+ streamreader.readcardinal4,
+}
+
+local read_integer = {
+ streamreader.readinteger1,
+ streamreader.readinteger2,
+ streamreader.readinteger3,
+ streamreader.readinteger4,
+}
+
+directives.register("fonts.streamreader",function()
+
+ read_cardinal = {
+ streamreader.readcardinal1,
+ streamreader.readcardinal2,
+ streamreader.readcardinal3,
+ streamreader.readcardinal4,
+ }
+
+ read_integer = {
+ streamreader.readinteger1,
+ streamreader.readinteger2,
+ streamreader.readinteger3,
+ streamreader.readinteger4,
+ }
+
+end)
+
+-- Traditionally we use these unique names (so that we can flatten the lookup list
+-- (we create subsets runtime) but I will adapt the old code to newer names.
+
+-- chainsub
+-- reversesub
+
+local lookupnames = {
+ gsub = {
+ single = "gsub_single",
+ multiple = "gsub_multiple",
+ alternate = "gsub_alternate",
+ ligature = "gsub_ligature",
+ context = "gsub_context",
+ chainedcontext = "gsub_contextchain",
+ reversechainedcontextsingle = "gsub_reversecontextchain", -- reversesub
+ },
+ gpos = {
+ single = "gpos_single",
+ pair = "gpos_pair",
+ cursive = "gpos_cursive",
+ marktobase = "gpos_mark2base",
+ marktoligature = "gpos_mark2ligature",
+ marktomark = "gpos_mark2mark",
+ context = "gpos_context",
+ chainedcontext = "gpos_contextchain",
+ }
+}
+
+-- keep this as reference:
+--
+-- local lookupbits = {
+-- [0x0001] = "righttoleft",
+-- [0x0002] = "ignorebaseglyphs",
+-- [0x0004] = "ignoreligatures",
+-- [0x0008] = "ignoremarks",
+-- [0x0010] = "usemarkfilteringset",
+-- [0x00E0] = "reserved",
+-- [0xFF00] = "markattachmenttype",
+-- }
+--
+-- local lookupstate = setmetatableindex(function(t,k)
+-- local v = { }
+-- for kk, vv in next, lookupbits do
+-- if (k & kk) ~= 0 then
+-- v[vv] = true
+-- end
+-- end
+-- t[k] = v
+-- return v
+-- end)
+
+local lookupflags = setmetatableindex(function(t,k)
+ local v = {
+ (k & 0x0008) ~= 0 and true or false, -- ignoremarks
+ (k & 0x0004) ~= 0 and true or false, -- ignoreligatures
+ (k & 0x0002) ~= 0 and true or false, -- ignorebaseglyphs
+ (k & 0x0001) ~= 0 and true or false, -- r2l
+ }
+ t[k] = v
+ return v
+end)
+
+-- Variation stores: it's not entirely clear if the regions are a shared
+-- resource (it looks like they are). Anyway, we play safe and use a
+-- share.
+
+-- values can be anything the min/max permits so we can either think of
+-- real values of a fraction along the axis (probably easier)
+
+-- wght=400,wdth=100,ital=1
+
+local function axistofactors(str)
+ local t = settings_to_hash(str)
+ for k, v in next, t do
+ t[k] = tonumber(v) or v -- this also normalizes numbers itself
+ end
+ return t
+end
+
+local hash = table.setmetatableindex(function(t,k)
+ local v = sequenced(axistofactors(k),",")
+ t[k] = v
+ return v
+end)
+
+helpers.normalizedaxishash = hash
+
+local cleanname = fonts.names and fonts.names.cleanname or function(name)
+ return name and (gsub(lower(name),"[^%a%d]","")) or nil
+end
+
+helpers.cleanname = cleanname
+
+function helpers.normalizedaxis(str)
+ return hash[str] or str
+end
+
+-- contradicting spec ... (signs) so i'll check it and fix it once we have
+-- proper fonts
+
+local function getaxisscale(segments,minimum,default,maximum,user)
+ --
+ -- returns the right values cf example in standard
+ --
+ if not minimum or not default or not maximum then
+ return false
+ end
+ if user < minimum then
+ user = minimum
+ elseif user > maximum then
+ user = maximum
+ end
+ if user < default then
+ default = - (default - user) / (default - minimum)
+ elseif user > default then
+ default = (user - default) / (maximum - default)
+ else
+ default = 0
+ end
+ if not segments then
+ return default
+ end
+ local e
+ for i=1,#segments do
+ local s = segments[i]
+ if type(s) ~= "number" then
+ -- report("using default axis scale")
+ return default
+ elseif s[1] >= default then
+ if s[2] == default then
+ return default
+ else
+ e = i
+ break
+ end
+ end
+ end
+ if e then
+ local b = segments[e-1]
+ local e = segments[e]
+ return b[2] + (e[2] - b[2]) * (default - b[1]) / (e[1] - b[1])
+ else
+ return false
+ end
+end
+
+local function getfactors(data,instancespec)
+ if instancespec == true then
+ -- take default
+ elseif type(instancespec) ~= "string" or instancespec == "" then
+ return
+ end
+ local variabledata = data.variabledata
+ if not variabledata then
+ return
+ end
+ local instances = variabledata.instances
+ local axis = variabledata.axis
+ local segments = variabledata.segments
+ if instances and axis then
+ local values
+ if instancespec == true then
+ -- first instance:
+ -- values = instances[1].values
+ -- axis defaults:
+ values = { }
+ for i=1,#axis do
+ values[i] = {
+ -- axis = axis[i].tag,
+ value = axis[i].default,
+ }
+ end
+
+ else
+ for i=1,#instances do
+ local instance = instances[i]
+ if cleanname(instance.subfamily) == instancespec then
+ values = instance.values
+ break
+ end
+ end
+ end
+ if values then
+ local factors = { }
+ for i=1,#axis do
+ local a = axis[i]
+ factors[i] = getaxisscale(segments,a.minimum,a.default,a.maximum,values[i].value)
+ end
+ return factors
+ end
+ local values = axistofactors(hash[instancespec] or instancespec)
+ if values then
+ local factors = { }
+ for i=1,#axis do
+ local a = axis[i]
+ local d = a.default
+ factors[i] = getaxisscale(segments,a.minimum,d,a.maximum,values[a.name or a.tag] or values[a.tag] or d)
+ end
+ return factors
+ end
+ end
+end
+
+local function getscales(regions,factors)
+ local scales = { }
+ for i=1,#regions do
+ local region = regions[i]
+ local s = 1
+ for j=1,#region do
+ local axis = region[j]
+ local f = factors[j]
+ local start = axis.start
+ local peak = axis.peak
+ local stop = axis.stop
+ -- get rid of these tests, false flag
+ if start > peak or peak > stop then
+ -- * 1
+ elseif start < 0 and stop > 0 and peak ~= 0 then
+ -- * 1
+ elseif peak == 0 then
+ -- * 1
+ elseif f < start or f > stop then
+ -- * 0
+ s = 0
+ break
+ elseif f < peak then
+ -- s = - s * (f - start) / (peak - start)
+ s = s * (f - start) / (peak - start)
+ elseif f > peak then
+ s = s * (stop - f) / (stop - peak)
+ else
+ -- * 1
+ end
+ end
+ scales[i] = s
+ end
+ return scales
+end
+
+helpers.getaxisscale = getaxisscale
+helpers.getfactors = getfactors
+helpers.getscales = getscales
+helpers.axistofactors = axistofactors
+
+local function readvariationdata(f,storeoffset,factors) -- store
+ local position = getposition(f)
+ setposition(f,storeoffset)
+ -- header
+ local format = readushort(f)
+ local regionoffset = storeoffset + readulong(f)
+ local nofdeltadata = readushort(f)
+ local deltadata = readcardinaltable(f,nofdeltadata,ulong)
+ -- regions
+ setposition(f,regionoffset)
+ local nofaxis = readushort(f)
+ local nofregions = readushort(f)
+ local regions = { }
+ for i=1,nofregions do -- 0
+ local t = { }
+ for i=1,nofaxis do
+ t[i] = { -- maybe no keys, just 1..3
+ start = read2dot14(f),
+ peak = read2dot14(f),
+ stop = read2dot14(f),
+ }
+ end
+ regions[i] = t
+ end
+ -- deltas
+ -- if factors then
+ for i=1,nofdeltadata do
+ setposition(f,storeoffset+deltadata[i])
+ local nofdeltasets = readushort(f)
+ local nofshorts = readushort(f)
+ local nofregions = readushort(f)
+ local usedregions = { }
+ local deltas = { }
+ for i=1,nofregions do
+ usedregions[i] = regions[readushort(f)+1]
+ end
+ -- we could test before and save a for
+ for i=1,nofdeltasets do
+ local t = readintegertable(f,nofshorts,short)
+ for i=nofshorts+1,nofregions do
+ t[i] = readinteger(f)
+ end
+ deltas[i] = t
+ end
+ deltadata[i] = {
+ regions = usedregions,
+ deltas = deltas,
+ scales = factors and getscales(usedregions,factors) or nil,
+ }
+ end
+ -- end
+ setposition(f,position)
+ return regions, deltadata
+end
+
+helpers.readvariationdata = readvariationdata
+
+-- Beware: only use the simple variant if we don't set keys/values (otherwise too many entries). We
+-- could also have a variant that applies a function but there is no real benefit in this.
+
+local function readcoverage(f,offset,simple)
+ setposition(f,offset)
+ local coverageformat = readushort(f)
+ if coverageformat == 1 then
+ local nofcoverage = readushort(f)
+ if simple then
+ -- often 1 or 2
+ if nofcoverage == 1 then
+ return { readushort(f) }
+ elseif nofcoverage == 2 then
+ return { readushort(f), readushort(f) }
+ else
+ return readcardinaltable(f,nofcoverage,ushort)
+ end
+ elseif nofcoverage == 1 then
+ return { [readushort(f)] = 0 }
+ elseif nofcoverage == 2 then
+ return { [readushort(f)] = 0, [readushort(f)] = 1 }
+ else
+ local coverage = { }
+ for i=0,nofcoverage-1 do
+ coverage[readushort(f)] = i -- index in record
+ end
+ return coverage
+ end
+ elseif coverageformat == 2 then
+ local nofranges = readushort(f)
+ local coverage = { }
+ local n = simple and 1 or 0 -- needs checking
+ for i=1,nofranges do
+ local firstindex = readushort(f)
+ local lastindex = readushort(f)
+ local coverindex = readushort(f)
+ if simple then
+ for i=firstindex,lastindex do
+ coverage[n] = i
+ n = n + 1
+ end
+ else
+ for i=firstindex,lastindex do
+ coverage[i] = n
+ n = n + 1
+ end
+ end
+ end
+ return coverage
+ else
+ report("unknown coverage format %a ",coverageformat)
+ return { }
+ end
+end
+
+local function readclassdef(f,offset,preset)
+ setposition(f,offset)
+ local classdefformat = readushort(f)
+ local classdef = { }
+ if type(preset) == "number" then
+ for k=0,preset-1 do
+ classdef[k] = 1
+ end
+ end
+ if classdefformat == 1 then
+ local index = readushort(f)
+ local nofclassdef = readushort(f)
+ for i=1,nofclassdef do
+ classdef[index] = readushort(f) + 1
+ index = index + 1
+ end
+ elseif classdefformat == 2 then
+ local nofranges = readushort(f)
+ local n = 0
+ for i=1,nofranges do
+ local firstindex = readushort(f)
+ local lastindex = readushort(f)
+ local class = readushort(f) + 1
+ for i=firstindex,lastindex do
+ classdef[i] = class
+ end
+ end
+ else
+ report("unknown classdef format %a ",classdefformat)
+ end
+ if type(preset) == "table" then
+ for k in next, preset do
+ if not classdef[k] then
+ classdef[k] = 1
+ end
+ end
+ end
+ return classdef
+end
+
+local function classtocoverage(defs)
+ if defs then
+ local list = { }
+ for index, class in next, defs do
+ local c = list[class]
+ if c then
+ c[#c+1] = index
+ else
+ list[class] = { index }
+ end
+ end
+ return list
+ end
+end
+
+-- extra readers
+
+local skips = { [0] =
+ 0, -- ----
+ 1, -- ---x
+ 1, -- --y-
+ 2, -- --yx
+ 1, -- -h--
+ 2, -- -h-x
+ 2, -- -hy-
+ 3, -- -hyx
+ 2, -- v--x
+ 2, -- v-y-
+ 3, -- v-yx
+ 2, -- vh--
+ 3, -- vh-x
+ 3, -- vhy-
+ 4, -- vhyx
+}
+
+-- We can assume that 0 is nothing and in fact we can start at 1 as
+-- usual in Lua to make sure of that.
+
+local function readvariation(f,offset)
+ local p = getposition(f)
+ setposition(f,offset)
+ local outer = readushort(f)
+ local inner = readushort(f)
+ local format = readushort(f)
+ setposition(f,p)
+ if format == 0x8000 then
+ return outer, inner
+ end
+end
+
+local function readposition(f,format,mainoffset,getdelta)
+ if format == 0 then
+ return false
+ end
+ -- a few happen often
+ if format == 0x04 then
+ local h = readshort(f)
+ if h == 0 then
+ return true -- all zero
+ else
+ return { 0, 0, h, 0 }
+ end
+ end
+ if format == 0x05 then
+ local x = readshort(f)
+ local h = readshort(f)
+ if x == 0 and h == 0 then
+ return true -- all zero
+ else
+ return { x, 0, h, 0 }
+ end
+ end
+ if format == 0x44 then
+ local h = readshort(f)
+ if getdelta then
+ local d = readshort(f) -- short or ushort
+ if d > 0 then
+ local outer, inner = readvariation(f,mainoffset+d)
+ if outer then
+ h = h + getdelta(outer,inner)
+ end
+ end
+ else
+ skipshort(f,1)
+ end
+ if h == 0 then
+ return true -- all zero
+ else
+ return { 0, 0, h, 0 }
+ end
+ end
+ --
+ -- todo:
+ --
+ -- if format == 0x55 then
+ -- local x = readshort(f)
+ -- local h = readshort(f)
+ -- ....
+ -- end
+ --
+ local x = (format & 0x1) ~= 0 and readshort(f) or 0 -- x placement
+ local y = (format & 0x2) ~= 0 and readshort(f) or 0 -- y placement
+ local h = (format & 0x4) ~= 0 and readshort(f) or 0 -- h advance
+ local v = (format & 0x8) ~= 0 and readshort(f) or 0 -- v advance
+ if format >= 0x10 then
+ local X = (format & 0x10) ~= 0 and skipshort(f) or 0
+ local Y = (format & 0x20) ~= 0 and skipshort(f) or 0
+ local H = (format & 0x40) ~= 0 and skipshort(f) or 0
+ local V = (format & 0x80) ~= 0 and skipshort(f) or 0
+ -- local s = skips[extract(format,4,4)]
+ local s = skips[(format >> 4) & 0xF]
+ if s > 0 then
+ skipshort(f,s)
+ end
+ if getdelta then
+ if X > 0 then
+ local outer, inner = readvariation(f,mainoffset+X)
+ if outer then
+ x = x + getdelta(outer,inner)
+ end
+ end
+ if Y > 0 then
+ local outer, inner = readvariation(f,mainoffset+Y)
+ if outer then
+ y = y + getdelta(outer,inner)
+ end
+ end
+ if H > 0 then
+ local outer, inner = readvariation(f,mainoffset+H)
+ if outer then
+ h = h + getdelta(outer,inner)
+ end
+ end
+ if V > 0 then
+ local outer, inner = readvariation(f,mainoffset+V)
+ if outer then
+ v = v + getdelta(outer,inner)
+ end
+ end
+ end
+ return { x, y, h, v }
+ elseif x == 0 and y == 0 and h == 0 and v == 0 then
+ return true -- all zero
+ else
+ return { x, y, h, v }
+ end
+end
+
+local function readanchor(f,offset,getdelta) -- maybe also ignore 0's as in pos
+ if not offset or offset == 0 then
+ return nil -- false
+ end
+ setposition(f,offset)
+ -- no need to skip as we position each
+ local format = readshort(f) -- 1: x y 2: x y index 3 x y X Y
+ local x = readshort(f)
+ local y = readshort(f)
+ if format == 3 then
+ if getdelta then
+ local X = readshort(f)
+ local Y = readshort(f)
+ if X > 0 then
+ local outer, inner = readvariation(f,offset+X)
+ if outer then
+ x = x + getdelta(outer,inner)
+ end
+ end
+ if Y > 0 then
+ local outer, inner = readvariation(f,offset+Y)
+ if outer then
+ y = y + getdelta(outer,inner)
+ end
+ end
+ else
+ skipshort(f,2)
+ end
+ return { x, y } -- , { xindex, yindex }
+ else
+ return { x, y }
+ end
+end
+
+-- common handlers: inlining can be faster but we cache anyway
+-- so we don't bother too much about speed here
+
+local function readfirst(f,offset)
+ if offset then
+ setposition(f,offset)
+ end
+ return { readushort(f) }
+end
+
+-- quite often 0, 1, 2
+
+local function readarray(f,offset)
+ if offset then
+ setposition(f,offset)
+ end
+ local n = readushort(f)
+ if n == 1 then
+ return { readushort(f) }, 1
+ elseif n > 0 then
+ return readcardinaltable(f,n,ushort), n
+ end
+end
+
+local function readcoveragearray(f,offset,t,simple)
+ if not t then
+ return nil
+ end
+ local n = #t
+ if n == 0 then
+ return nil
+ end
+ for i=1,n do
+ t[i] = readcoverage(f,offset+t[i],simple)
+ end
+ return t
+end
+
+local function covered(subset,all)
+ local used, u
+ for i=1,#subset do
+ local s = subset[i]
+ if all[s] then
+ if used then
+ u = u + 1
+ used[u] = s
+ else
+ u = 1
+ used = { s }
+ end
+ end
+ end
+ return used
+end
+
+-- We generalize the chained lookups so that we can do with only one handler
+-- when processing them.
+
+-- pruned
+
+local function readlookuparray(f,noflookups,nofcurrent)
+ local lookups = { }
+ if noflookups > 0 then
+ local length = 0
+ for i=1,noflookups do
+ local index = readushort(f) + 1
+ if index > length then
+ length = index
+ end
+ local lookup = readushort(f) + 1
+ local list = lookups[index]
+ if list then
+ list[#list+1] = lookup
+ else
+ lookups[index] = { lookup }
+ end
+ end
+ for index=1,length do
+ if not lookups[index] then
+ lookups[index] = false
+ end
+ end
+ -- if length > nofcurrent then
+ -- report("more lookups than currently matched characters")
+ -- end
+ end
+ return lookups
+end
+
+-- not pruned
+--
+-- local function readlookuparray(f,noflookups,nofcurrent)
+-- local lookups = { }
+-- for i=1,nofcurrent do
+-- lookups[i] = false
+-- end
+-- for i=1,noflookups do
+-- local index = readushort(f) + 1
+-- if index > nofcurrent then
+-- report("more lookups than currently matched characters")
+-- for i=nofcurrent+1,index-1 do
+-- lookups[i] = false
+-- end
+-- nofcurrent = index
+-- end
+-- lookups[index] = readushort(f) + 1
+-- end
+-- return lookups
+-- end
+
+local function unchainedcontext(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs,what)
+ local tableoffset = lookupoffset + offset
+ setposition(f,tableoffset)
+ local subtype = readushort(f)
+ if subtype == 1 then
+ local coverage = readushort(f)
+ local subclasssets = readarray(f)
+ local rules = { }
+ if subclasssets then
+ coverage = readcoverage(f,tableoffset+coverage,true)
+ for i=1,#subclasssets do
+ local offset = subclasssets[i]
+ if offset > 0 then
+ local firstcoverage = coverage[i]
+ local rulesoffset = tableoffset + offset
+ local subclassrules = readarray(f,rulesoffset)
+ for rule=1,#subclassrules do
+ setposition(f,rulesoffset + subclassrules[rule])
+ local nofcurrent = readushort(f)
+ local noflookups = readushort(f)
+ local current = { { firstcoverage } }
+ for i=2,nofcurrent do
+ current[i] = { readushort(f) }
+ end
+ local lookups = readlookuparray(f,noflookups,nofcurrent)
+ rules[#rules+1] = {
+ current = current,
+ lookups = lookups
+ }
+ end
+ end
+ end
+ else
+ report("empty subclassset in %a subtype %i","unchainedcontext",subtype)
+ end
+ return {
+ format = "glyphs",
+ rules = rules,
+ }
+ elseif subtype == 2 then
+ -- We expand the classes as later on we do a pack over the whole table so then we get
+ -- back efficiency. This way we can also apply the coverage to the first current.
+ local coverage = readushort(f)
+ local currentclassdef = readushort(f)
+ local subclasssets = readarray(f)
+ local rules = { }
+ if subclasssets then
+ coverage = readcoverage(f,tableoffset + coverage)
+ currentclassdef = readclassdef(f,tableoffset + currentclassdef,coverage)
+ local currentclasses = classtocoverage(currentclassdef,fontdata.glyphs)
+ for class=1,#subclasssets do
+ local offset = subclasssets[class]
+ if offset > 0 then
+ local firstcoverage = currentclasses[class]
+ if firstcoverage then
+ firstcoverage = covered(firstcoverage,coverage) -- bonus
+ if firstcoverage then
+ local rulesoffset = tableoffset + offset
+ local subclassrules = readarray(f,rulesoffset)
+ for rule=1,#subclassrules do
+ setposition(f,rulesoffset + subclassrules[rule])
+ local nofcurrent = readushort(f)
+ local noflookups = readushort(f)
+ local current = { firstcoverage }
+ for i=2,nofcurrent do
+ current[i] = currentclasses[readushort(f) + 1]
+ end
+ local lookups = readlookuparray(f,noflookups,nofcurrent)
+ rules[#rules+1] = {
+ current = current,
+ lookups = lookups
+ }
+ end
+ else
+ report("no coverage")
+ end
+ else
+ report("no coverage class")
+ end
+ end
+ end
+ else
+ report("empty subclassset in %a subtype %i","unchainedcontext",subtype)
+ end
+ return {
+ format = "class",
+ rules = rules,
+ }
+ elseif subtype == 3 then
+ local nofglyphs = readushort(f)
+ local noflookups = readushort(f)
+ local current = readcardinaltable(f,nofglyphs,ushort)
+ local lookups = readlookuparray(f,noflookups,#current)
+ current = readcoveragearray(f,tableoffset,current,true)
+ return {
+ format = "coverage",
+ rules = {
+ {
+ current = current,
+ lookups = lookups,
+ }
+ }
+ }
+ else
+ report("unsupported subtype %a in %a %s",subtype,"unchainedcontext",what)
+ end
+end
+
+-- todo: optimize for n=1 ?
+
+-- class index needs checking, probably no need for +1
+
+local function chainedcontext(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs,what)
+ local tableoffset = lookupoffset + offset
+ setposition(f,tableoffset)
+ local subtype = readushort(f)
+ if subtype == 1 then
+ local coverage = readushort(f)
+ local subclasssets = readarray(f)
+ local rules = { }
+ if subclasssets then
+ coverage = readcoverage(f,tableoffset+coverage,true)
+ for i=1,#subclasssets do
+ local offset = subclasssets[i]
+ if offset > 0 then
+ local firstcoverage = coverage[i]
+ local rulesoffset = tableoffset + offset
+ local subclassrules = readarray(f,rulesoffset)
+ for rule=1,#subclassrules do
+ setposition(f,rulesoffset + subclassrules[rule])
+ local nofbefore = readushort(f)
+ local before
+ if nofbefore > 0 then
+ before = { }
+ for i=1,nofbefore do
+ before[i] = { readushort(f) }
+ end
+ end
+ local nofcurrent = readushort(f)
+ local current = { { firstcoverage } }
+ for i=2,nofcurrent do
+ current[i] = { readushort(f) }
+ end
+ local nofafter = readushort(f)
+ local after
+ if nofafter > 0 then
+ after = { }
+ for i=1,nofafter do
+ after[i] = { readushort(f) }
+ end
+ end
+ local noflookups = readushort(f)
+ local lookups = readlookuparray(f,noflookups,nofcurrent)
+ rules[#rules+1] = {
+ before = before,
+ current = current,
+ after = after,
+ lookups = lookups,
+ }
+ end
+ end
+ end
+ else
+ report("empty subclassset in %a subtype %i","chainedcontext",subtype)
+ end
+ return {
+ format = "glyphs",
+ rules = rules,
+ }
+ elseif subtype == 2 then
+ local coverage = readushort(f)
+ local beforeclassdef = readushort(f)
+ local currentclassdef = readushort(f)
+ local afterclassdef = readushort(f)
+ local subclasssets = readarray(f)
+ local rules = { }
+ if subclasssets then
+ local coverage = readcoverage(f,tableoffset + coverage)
+ local beforeclassdef = readclassdef(f,tableoffset + beforeclassdef,nofglyphs)
+ local currentclassdef = readclassdef(f,tableoffset + currentclassdef,coverage)
+ local afterclassdef = readclassdef(f,tableoffset + afterclassdef,nofglyphs)
+ local beforeclasses = classtocoverage(beforeclassdef,fontdata.glyphs)
+ local currentclasses = classtocoverage(currentclassdef,fontdata.glyphs)
+ local afterclasses = classtocoverage(afterclassdef,fontdata.glyphs)
+ for class=1,#subclasssets do
+ local offset = subclasssets[class]
+ if offset > 0 then
+ local firstcoverage = currentclasses[class]
+ if firstcoverage then
+ firstcoverage = covered(firstcoverage,coverage) -- bonus
+ if firstcoverage then
+ local rulesoffset = tableoffset + offset
+ local subclassrules = readarray(f,rulesoffset)
+ for rule=1,#subclassrules do
+ -- watch out, in context we first get the counts and then the arrays while
+ -- here we get them mixed
+ setposition(f,rulesoffset + subclassrules[rule])
+ local nofbefore = readushort(f)
+ local before
+ if nofbefore > 0 then
+ before = { }
+ for i=1,nofbefore do
+ before[i] = beforeclasses[readushort(f) + 1]
+ end
+ end
+ local nofcurrent = readushort(f)
+ local current = { firstcoverage }
+ for i=2,nofcurrent do
+ current[i] = currentclasses[readushort(f)+ 1]
+ end
+ local nofafter = readushort(f)
+ local after
+ if nofafter > 0 then
+ after = { }
+ for i=1,nofafter do
+ after[i] = afterclasses[readushort(f) + 1]
+ end
+ end
+ -- no sequence index here (so why in context as it saves nothing)
+ local noflookups = readushort(f)
+ local lookups = readlookuparray(f,noflookups,nofcurrent)
+ rules[#rules+1] = {
+ before = before,
+ current = current,
+ after = after,
+ lookups = lookups,
+ }
+ end
+ else
+ report("no coverage")
+ end
+ else
+ report("class is not covered")
+ end
+ end
+ end
+ else
+ report("empty subclassset in %a subtype %i","chainedcontext",subtype)
+ end
+ return {
+ format = "class",
+ rules = rules,
+ }
+ elseif subtype == 3 then
+ -- Maybe this one needs checking. Anyway zero current is bad.
+ local before = readarray(f)
+ local current = readarray(f)
+ local after = readarray(f)
+ local noflookups = readushort(f)
+ local lookups = current and readlookuparray(f,noflookups,#current)
+ if lookups then
+ before = readcoveragearray(f,tableoffset,before,true)
+ current = readcoveragearray(f,tableoffset,current,true)
+ after = readcoveragearray(f,tableoffset,after,true)
+ return {
+ format = "coverage",
+ rules = {
+ {
+ before = before,
+ current = current,
+ after = after,
+ lookups = lookups,
+ }
+ }
+ }
+ else
+ report("confusing subtype %a in %a %s",subtype,"chainedcontext",what)
+ end
+ else
+ report("unsupported subtype %a in %a %s",subtype,"chainedcontext",what)
+ end
+end
+
+local function extension(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs,types,handlers,what)
+ local tableoffset = lookupoffset + offset
+ setposition(f,tableoffset)
+ local subtype = readushort(f)
+ if subtype == 1 then
+ local lookuptype = types[readushort(f)]
+ local faroffset = readulong(f)
+ local handler = handlers[lookuptype]
+ if handler then
+ -- maybe we can just pass one offset (or tableoffset first)
+ return handler(f,fontdata,lookupid,tableoffset + faroffset,0,glyphs,nofglyphs), lookuptype
+ else
+ report("no handler for lookuptype %a subtype %a in %s %s",lookuptype,subtype,what,"extension")
+ end
+ else
+ report("unsupported subtype %a in %s %s",subtype,what,"extension")
+ end
+end
+
+-- gsub handlers
+
+function gsubhandlers.single(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ local tableoffset = lookupoffset + offset
+ setposition(f,tableoffset)
+ local subtype = readushort(f)
+ if subtype == 1 then
+ local coverage = readushort(f)
+ local delta = readshort(f) -- can be negative
+ local coverage = readcoverage(f,tableoffset+coverage) -- not simple as we need to set key/value anyway
+ for index in next, coverage do
+ local newindex = (index + delta) % 65536 -- modulo is new in 1.8.3
+ if index > nofglyphs or newindex > nofglyphs then
+ report("invalid index in %s format %i: %i -> %i (max %i)","single",subtype,index,newindex,nofglyphs)
+ coverage[index] = nil
+ else
+ coverage[index] = newindex
+ end
+ end
+ return {
+ coverage = coverage
+ }
+ elseif subtype == 2 then -- in streamreader a seek and fetch is faster than a temp table
+ local coverage = readushort(f)
+ local nofreplacements = readushort(f)
+ local replacements = readcardinaltable(f,nofreplacements,ushort)
+ local coverage = readcoverage(f,tableoffset + coverage) -- not simple as we need to set key/value anyway
+ for index, newindex in next, coverage do
+ newindex = newindex + 1
+ if index > nofglyphs or newindex > nofglyphs then
+ report("invalid index in %s format %i: %i -> %i (max %i)","single",subtype,index,newindex,nofglyphs)
+ coverage[index] = nil
+ else
+ coverage[index] = replacements[newindex]
+ end
+ end
+ return {
+ coverage = coverage
+ }
+ else
+ report("unsupported subtype %a in %a substitution",subtype,"single")
+ end
+end
+
+-- we see coverage format 0x300 in some old ms fonts
+
+local function sethandler(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs,what)
+ local tableoffset = lookupoffset + offset
+ setposition(f,tableoffset)
+ local subtype = readushort(f)
+ if subtype == 1 then
+ local coverage = readushort(f)
+ local nofsequence = readushort(f)
+ local sequences = readcardinaltable(f,nofsequence,ushort)
+ for i=1,nofsequence do
+ setposition(f,tableoffset + sequences[i])
+ sequences[i] = readcardinaltable(f,readushort(f),ushort)
+ end
+ local coverage = readcoverage(f,tableoffset + coverage)
+ for index, newindex in next, coverage do
+ newindex = newindex + 1
+ if index > nofglyphs or newindex > nofglyphs then
+ report("invalid index in %s format %i: %i -> %i (max %i)",what,subtype,index,newindex,nofglyphs)
+ coverage[index] = nil
+ else
+ coverage[index] = sequences[newindex]
+ end
+ end
+ return {
+ coverage = coverage
+ }
+ else
+ report("unsupported subtype %a in %a substitution",subtype,what)
+ end
+end
+
+function gsubhandlers.multiple(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ return sethandler(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs,"multiple")
+end
+
+function gsubhandlers.alternate(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ return sethandler(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs,"alternate")
+end
+
+function gsubhandlers.ligature(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ local tableoffset = lookupoffset + offset
+ setposition(f,tableoffset)
+ local subtype = readushort(f)
+ if subtype == 1 then
+ local coverage = readushort(f)
+ local nofsets = readushort(f)
+ local ligatures = readcardinaltable(f,nofsets,ushort)
+ for i=1,nofsets do
+ local offset = lookupoffset + offset + ligatures[i]
+ setposition(f,offset)
+ local n = readushort(f)
+ if n == 1 then
+ ligatures[i] = { offset + readushort(f) }
+ else
+ local l = { }
+ for i=1,n do
+ l[i] = offset + readushort(f)
+ end
+ ligatures[i] = l
+ end
+ end
+ local coverage = readcoverage(f,tableoffset + coverage)
+ for index, newindex in next, coverage do
+ local hash = { }
+ local ligatures = ligatures[newindex+1]
+ for i=1,#ligatures do
+ local offset = ligatures[i]
+ setposition(f,offset)
+ local lig = readushort(f)
+ local cnt = readushort(f)
+ local hsh = hash
+ for i=2,cnt do
+ local c = readushort(f)
+ local h = hsh[c]
+ if not h then
+ h = { }
+ hsh[c] = h
+ end
+ hsh = h
+ end
+ hsh.ligature = lig
+ end
+ coverage[index] = hash
+ end
+ return {
+ coverage = coverage
+ }
+ else
+ report("unsupported subtype %a in %a substitution",subtype,"ligature")
+ end
+end
+
+function gsubhandlers.context(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ return unchainedcontext(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs,"substitution"), "context"
+end
+
+function gsubhandlers.chainedcontext(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ return chainedcontext(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs,"substitution"), "chainedcontext"
+end
+
+function gsubhandlers.extension(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ return extension(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs,gsubtypes,gsubhandlers,"substitution")
+end
+
+function gsubhandlers.reversechainedcontextsingle(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ local tableoffset = lookupoffset + offset
+ setposition(f,tableoffset)
+ local subtype = readushort(f)
+ if subtype == 1 then -- NEEDS CHECKING
+ local current = readfirst(f)
+ local before = readarray(f)
+ local after = readarray(f)
+ local replacements = readarray(f)
+ current = readcoveragearray(f,tableoffset,current,true)
+ before = readcoveragearray(f,tableoffset,before,true)
+ after = readcoveragearray(f,tableoffset,after,true)
+ return {
+ format = "reversecoverage", -- reversesub
+ rules = {
+ {
+ before = before,
+ current = current,
+ after = after,
+ replacements = replacements,
+ }
+ }
+ }, "reversechainedcontextsingle"
+ else
+ report("unsupported subtype %a in %a substitution",subtype,"reversechainedcontextsingle")
+ end
+end
+
+-- gpos handlers
+
+local function readpairsets(f,tableoffset,sets,format1,format2,mainoffset,getdelta)
+ local done = { }
+ for i=1,#sets do
+ local offset = sets[i]
+ local reused = done[offset]
+ if not reused then
+ offset = tableoffset + offset
+ setposition(f,offset)
+ local n = readushort(f)
+ reused = { }
+ for i=1,n do
+ reused[i] = {
+ readushort(f), -- second glyph id
+ readposition(f,format1,offset,getdelta),
+ readposition(f,format2,offset,getdelta),
+ }
+ end
+ done[offset] = reused
+ end
+ sets[i] = reused
+ end
+ return sets
+end
+
+local function readpairclasssets(f,nofclasses1,nofclasses2,format1,format2,mainoffset,getdelta)
+ local classlist1 = { }
+ for i=1,nofclasses1 do
+ local classlist2 = { }
+ classlist1[i] = classlist2
+ for j=1,nofclasses2 do
+ local one = readposition(f,format1,mainoffset,getdelta)
+ local two = readposition(f,format2,mainoffset,getdelta)
+ if one or two then
+ classlist2[j] = { one, two }
+ else
+ classlist2[j] = false
+ end
+ end
+ end
+ return classlist1
+end
+
+-- no real gain in kerns as we pack
+
+function gposhandlers.single(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ local tableoffset = lookupoffset + offset
+ setposition(f,tableoffset)
+ local subtype = readushort(f)
+ local getdelta = fontdata.temporary.getdelta
+ if subtype == 1 then
+ local coverage = readushort(f)
+ local format = readushort(f)
+ local value = readposition(f,format,tableoffset,getdelta)
+ local coverage = readcoverage(f,tableoffset+coverage)
+ for index, newindex in next, coverage do
+ coverage[index] = value -- will be packed and shared anyway
+ end
+ return {
+ format = "single",
+ coverage = coverage,
+ }
+ elseif subtype == 2 then
+ local coverage = readushort(f)
+ local format = readushort(f)
+ local nofvalues = readushort(f)
+ local values = { }
+ for i=1,nofvalues do
+ values[i] = readposition(f,format,tableoffset,getdelta)
+ end
+ local coverage = readcoverage(f,tableoffset+coverage)
+ for index, newindex in next, coverage do
+ coverage[index] = values[newindex+1]
+ end
+ return {
+ format = "single",
+ coverage = coverage,
+ }
+ else
+ report("unsupported subtype %a in %a positioning",subtype,"single")
+ end
+end
+
+-- this needs checking! if no second pair then another advance over the list
+
+-- ValueFormat1 applies to the ValueRecord of the first glyph in each pair. ValueRecords for all first glyphs must use ValueFormat1. If ValueFormat1 is set to zero (0), the corresponding glyph has no ValueRecord and, therefore, should not be repositioned.
+-- ValueFormat2 applies to the ValueRecord of the second glyph in each pair. ValueRecords for all second glyphs must use ValueFormat2. If ValueFormat2 is set to null, then the second glyph of the pair is the “next” glyph for which a lookup should be performed.
+
+-- local simple = {
+-- [true] = { [true] = { true, true }, [false] = { true } },
+-- [false] = { [true] = { false, true }, [false] = { false } },
+-- }
+
+-- function gposhandlers.pair(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+-- local tableoffset = lookupoffset + offset
+-- setposition(f,tableoffset)
+-- local subtype = readushort(f)
+-- local getdelta = fontdata.temporary.getdelta
+-- if subtype == 1 then
+-- local coverage = readushort(f)
+-- local format1 = readushort(f)
+-- local format2 = readushort(f)
+-- local sets = readarray(f)
+-- sets = readpairsets(f,tableoffset,sets,format1,format2,mainoffset,getdelta)
+-- coverage = readcoverage(f,tableoffset + coverage)
+-- local shared = { } -- partial sparse, when set also needs to be handled in the packer
+-- for index, newindex in next, coverage do
+-- local set = sets[newindex+1]
+-- local hash = { }
+-- for i=1,#set do
+-- local value = set[i]
+-- if value then
+-- local other = value[1]
+-- if shared then
+-- local s = shared[value]
+-- if s == nil then
+-- local first = value[2]
+-- local second = value[3]
+-- if first or second then
+-- s = { first, second or nil } -- needs checking
+-- else
+-- s = false
+-- end
+-- shared[value] = s
+-- end
+-- hash[other] = s or nil
+-- else
+-- local first = value[2]
+-- local second = value[3]
+-- if first or second then
+-- hash[other] = { first, second or nil } -- needs checking
+-- else
+-- hash[other] = nil -- what if set, maybe warning
+-- end
+-- end
+-- end
+-- end
+-- coverage[index] = hash
+-- end
+-- return {
+-- shared = shared and true or nil,
+-- format = "pair",
+-- coverage = coverage,
+-- }
+-- elseif subtype == 2 then
+-- local coverage = readushort(f)
+-- local format1 = readushort(f)
+-- local format2 = readushort(f)
+-- local classdef1 = readushort(f)
+-- local classdef2 = readushort(f)
+-- local nofclasses1 = readushort(f) -- incl class 0
+-- local nofclasses2 = readushort(f) -- incl class 0
+-- local classlist = readpairclasssets(f,nofclasses1,nofclasses2,format1,format2,tableoffset,getdelta)
+-- coverage = readcoverage(f,tableoffset+coverage)
+-- classdef1 = readclassdef(f,tableoffset+classdef1,coverage)
+-- classdef2 = readclassdef(f,tableoffset+classdef2,nofglyphs)
+-- local usedcoverage = { }
+-- local shared = { } -- partial sparse, when set also needs to be handled in the packer
+-- for g1, c1 in next, classdef1 do
+-- if coverage[g1] then
+-- local l1 = classlist[c1]
+-- if l1 then
+-- local hash = { }
+-- for paired, class in next, classdef2 do
+-- local offsets = l1[class]
+-- if offsets then
+-- local first = offsets[1]
+-- local second = offsets[2]
+-- if first or second then
+-- if shared then
+-- local s1 = shared[first]
+-- if s1 == nil then
+-- s1 = { }
+-- shared[first] = s1
+-- end
+-- local s2 = s1[second]
+-- if s2 == nil then
+-- s2 = { first, second or nil }
+-- s1[second] = s2
+-- end
+-- hash[paired] = s2
+-- else
+-- hash[paired] = { first, second or nil }
+-- end
+-- else
+-- -- upto the next lookup for this combination
+-- end
+-- end
+-- end
+-- usedcoverage[g1] = hash
+-- end
+-- end
+-- end
+-- return {
+-- shared = shared and true or nil,
+-- format = "pair",
+-- coverage = usedcoverage,
+-- }
+-- elseif subtype == 3 then
+-- report("yet unsupported subtype %a in %a positioning",subtype,"pair")
+-- else
+-- report("unsupported subtype %a in %a positioning",subtype,"pair")
+-- end
+-- end
+
+function gposhandlers.pair(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ local tableoffset = lookupoffset + offset
+ setposition(f,tableoffset)
+ local subtype = readushort(f)
+ local getdelta = fontdata.temporary.getdelta
+ if subtype == 1 then
+ local coverage = readushort(f)
+ local format1 = readushort(f)
+ local format2 = readushort(f)
+ local sets = readarray(f)
+ sets = readpairsets(f,tableoffset,sets,format1,format2,mainoffset,getdelta)
+ coverage = readcoverage(f,tableoffset + coverage)
+ local shared = { } -- partial sparse, when set also needs to be handled in the packer
+ for index, newindex in next, coverage do
+ local set = sets[newindex+1]
+ local hash = { }
+ for i=1,#set do
+ local value = set[i]
+ if value then
+ local other = value[1]
+ local share = shared[value]
+ if share == nil then
+ local first = value[2]
+ local second = value[3]
+ if first or second then
+ share = { first, second or nil } -- needs checking
+ else
+ share = false
+ end
+ shared[value] = share
+ end
+ hash[other] = share or nil -- really overload ?
+ end
+ end
+ coverage[index] = hash
+ end
+ return {
+ shared = shared and true or nil,
+ format = "pair",
+ coverage = coverage,
+ }
+ elseif subtype == 2 then
+ local coverage = readushort(f)
+ local format1 = readushort(f)
+ local format2 = readushort(f)
+ local classdef1 = readushort(f)
+ local classdef2 = readushort(f)
+ local nofclasses1 = readushort(f) -- incl class 0
+ local nofclasses2 = readushort(f) -- incl class 0
+ local classlist = readpairclasssets(f,nofclasses1,nofclasses2,format1,format2,tableoffset,getdelta)
+ coverage = readcoverage(f,tableoffset+coverage)
+ classdef1 = readclassdef(f,tableoffset+classdef1,coverage)
+ classdef2 = readclassdef(f,tableoffset+classdef2,nofglyphs)
+ local usedcoverage = { }
+ local shared = { } -- partial sparse, when set also needs to be handled in the packer
+ for g1, c1 in next, classdef1 do
+ if coverage[g1] then
+ local l1 = classlist[c1]
+ if l1 then
+ local hash = { }
+ for paired, class in next, classdef2 do
+ local offsets = l1[class]
+ if offsets then
+ local first = offsets[1]
+ local second = offsets[2]
+ if first or second then
+ local s1 = shared[first]
+ if s1 == nil then
+ s1 = { }
+ shared[first] = s1
+ end
+ local s2 = s1[second]
+ if s2 == nil then
+ s2 = { first, second or nil }
+ s1[second] = s2
+ end
+ hash[paired] = s2
+ end
+ end
+ end
+ usedcoverage[g1] = hash
+ end
+ end
+ end
+ return {
+ shared = shared and true or nil,
+ format = "pair",
+ coverage = usedcoverage,
+ }
+ elseif subtype == 3 then
+ report("yet unsupported subtype %a in %a positioning",subtype,"pair")
+ else
+ report("unsupported subtype %a in %a positioning",subtype,"pair")
+ end
+end
+
+function gposhandlers.cursive(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ local tableoffset = lookupoffset + offset
+ setposition(f,tableoffset)
+ local subtype = readushort(f)
+ local getdelta = fontdata.temporary.getdelta
+ if subtype == 1 then
+ local coverage = tableoffset + readushort(f)
+ local nofrecords = readushort(f)
+ local records = { }
+ for i=1,nofrecords do
+ local entry = readushort(f)
+ local exit = readushort(f)
+ records[i] = {
+ -- entry = entry ~= 0 and (tableoffset + entry) or false,
+ -- exit = exit ~= 0 and (tableoffset + exit ) or nil,
+ entry ~= 0 and (tableoffset + entry) or false,
+ exit ~= 0 and (tableoffset + exit ) or nil,
+ }
+ end
+ -- slot 1 will become hash after loading and it must be unique because we
+ -- pack the tables (packed we turn the cc-* into a zero)
+ local cc = (fontdata.temporary.cursivecount or 0) + 1
+ fontdata.temporary.cursivecount = cc
+ cc = "cc-" .. cc
+ coverage = readcoverage(f,coverage)
+ for i=1,nofrecords do
+ local r = records[i]
+ records[i] = {
+ -- 1,
+ cc,
+ -- readanchor(f,r.entry,getdelta) or false,
+ -- readanchor(f,r.exit, getdelta) or nil,
+ readanchor(f,r[1],getdelta) or false,
+ readanchor(f,r[2],getdelta) or nil,
+ }
+ end
+ for index, newindex in next, coverage do
+ coverage[index] = records[newindex+1]
+ end
+ return {
+ coverage = coverage,
+ }
+ else
+ report("unsupported subtype %a in %a positioning",subtype,"cursive")
+ end
+end
+
+local function handlemark(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs,ligature)
+ local tableoffset = lookupoffset + offset
+ setposition(f,tableoffset)
+ local subtype = readushort(f)
+ local getdelta = fontdata.temporary.getdelta
+ if subtype == 1 then
+ -- we are one based, not zero
+ local markcoverage = tableoffset + readushort(f)
+ local basecoverage = tableoffset + readushort(f)
+ local nofclasses = readushort(f)
+ local markoffset = tableoffset + readushort(f)
+ local baseoffset = tableoffset + readushort(f)
+ --
+ local markcoverage = readcoverage(f,markcoverage)
+ local basecoverage = readcoverage(f,basecoverage,true) -- TO BE CHECKED: true
+ --
+ setposition(f,markoffset)
+ local markclasses = { }
+ local nofmarkclasses = readushort(f)
+ --
+ local lastanchor = fontdata.lastanchor or 0
+ local usedanchors = { }
+ --
+ for i=1,nofmarkclasses do
+ local class = readushort(f) + 1
+ local offset = readushort(f)
+ if offset == 0 then
+ markclasses[i] = false
+ else
+ markclasses[i] = { class, markoffset + offset }
+ end
+ usedanchors[class] = true
+ end
+ for i=1,nofmarkclasses do
+ local mc = markclasses[i]
+ if mc then
+ mc[2] = readanchor(f,mc[2],getdelta)
+ end
+ end
+ --
+ setposition(f,baseoffset)
+ local nofbaserecords = readushort(f)
+ local baserecords = { }
+ --
+ if ligature then
+ -- 3 components
+ -- 1 : class .. nofclasses -- NULL when empty
+ -- 2 : class .. nofclasses -- NULL when empty
+ -- 3 : class .. nofclasses -- NULL when empty
+ for i=1,nofbaserecords do -- here i is the class
+ local offset = readushort(f)
+ if offset == 0 then
+ baserecords[i] = false
+ else
+ baserecords[i] = baseoffset + offset
+ end
+ end
+ for i=1,nofbaserecords do
+ local recordoffset = baserecords[i]
+ if recordoffset then
+ setposition(f,recordoffset)
+ local nofcomponents = readushort(f)
+ local components = { }
+ for i=1,nofcomponents do
+ local classes = { }
+ for i=1,nofclasses do
+ local offset = readushort(f)
+ if offset ~= 0 then
+ classes[i] = recordoffset + offset
+ else
+ classes[i] = false
+ end
+ end
+ components[i] = classes
+ end
+ baserecords[i] = components
+ end
+ end
+ local baseclasses = { } -- setmetatableindex("table")
+ for i=1,nofclasses do
+ baseclasses[i] = { }
+ end
+ for i=1,nofbaserecords do
+ local components = baserecords[i]
+ if components then
+ local b = basecoverage[i]
+ for c=1,#components do
+ local classes = components[c]
+ if classes then
+ for i=1,nofclasses do
+ local anchor = readanchor(f,classes[i],getdelta)
+ local bclass = baseclasses[i]
+ local bentry = bclass[b]
+ if bentry then
+ bentry[c] = anchor
+ else
+ bclass[b]= { [c] = anchor }
+ end
+ end
+ end
+ end
+ end
+ end
+ for index, newindex in next, markcoverage do
+ markcoverage[index] = markclasses[newindex+1] or nil
+ end
+ return {
+ format = "ligature",
+ baseclasses = baseclasses,
+ coverage = markcoverage,
+ }
+ else
+ for i=1,nofbaserecords do
+ local r = { }
+ for j=1,nofclasses do
+ local offset = readushort(f)
+ if offset == 0 then
+ r[j] = false
+ else
+ r[j] = baseoffset + offset
+ end
+ end
+ baserecords[i] = r
+ end
+ local baseclasses = { } -- setmetatableindex("table")
+ for i=1,nofclasses do
+ baseclasses[i] = { }
+ end
+ for i=1,nofbaserecords do
+ local r = baserecords[i]
+ local b = basecoverage[i]
+ for j=1,nofclasses do
+ baseclasses[j][b] = readanchor(f,r[j],getdelta)
+ end
+ end
+ for index, newindex in next, markcoverage do
+ markcoverage[index] = markclasses[newindex+1] or nil
+ end
+ -- we could actually already calculate the displacement if we want
+ return {
+ format = "base",
+ baseclasses = baseclasses,
+ coverage = markcoverage,
+ }
+ end
+ else
+ report("unsupported subtype %a in",subtype)
+ end
+
+end
+
+function gposhandlers.marktobase(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ return handlemark(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+end
+
+function gposhandlers.marktoligature(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ return handlemark(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs,true)
+end
+
+function gposhandlers.marktomark(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ return handlemark(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+end
+
+function gposhandlers.context(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ return unchainedcontext(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs,"positioning"), "context"
+end
+
+function gposhandlers.chainedcontext(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ return chainedcontext(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs,"positioning"), "chainedcontext"
+end
+
+function gposhandlers.extension(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs)
+ return extension(f,fontdata,lookupid,lookupoffset,offset,glyphs,nofglyphs,gpostypes,gposhandlers,"positioning")
+end
+
+-- main loader
+
+do
+
+ local plugins = { }
+
+ function plugins.size(f,fontdata,tableoffset,feature)
+ if fontdata.designsize then
+ -- yes, there are fonts with multiple size entries ... it probably relates
+ -- to the other two fields (menu entries in some language)
+ else
+ local function check(offset)
+ setposition(f,offset)
+ local designsize = readushort(f)
+ if designsize > 0 then -- we could also have a threshold
+ local fontstyleid = readushort(f)
+ local guimenuid = readushort(f)
+ local minsize = readushort(f)
+ local maxsize = readushort(f)
+ if minsize == 0 and maxsize == 0 and fontstyleid == 0 and guimenuid == 0 then
+ minsize = designsize
+ maxsize = designsize
+ end
+ if designsize >= minsize and designsize <= maxsize then
+ return minsize, maxsize, designsize
+ end
+ end
+ end
+ local minsize, maxsize, designsize = check(tableoffset+feature.offset+feature.parameters)
+ if not designsize then
+ -- some old adobe fonts have: tableoffset+feature.parameters and we could
+ -- use some heuristic but why bother ... this extra check will be removed
+ -- some day and/or when we run into an issue
+ minsize, maxsize, designsize = check(tableoffset+feature.parameters)
+ if designsize then
+ report("bad size feature in %a, falling back to wrong offset",fontdata.filename or "?")
+ else
+ report("bad size feature in %a,",fontdata.filename or "?")
+ end
+ end
+ if designsize then
+ fontdata.minsize = minsize
+ fontdata.maxsize = maxsize
+ fontdata.designsize = designsize
+ end
+ end
+ end
+
+ -- function plugins.rvrn(f,fontdata,tableoffset,feature)
+ -- -- todo, at least a message
+ -- end
+
+ -- feature order needs checking ... as we loop over a hash ... however, in the file
+ -- they are sorted so order is not that relevant
+
+ local function reorderfeatures(fontdata,scripts,features)
+ local scriptlangs = { }
+ local featurehash = { }
+ local featureorder = { }
+ for script, languages in next, scripts do
+ for language, record in next, languages do
+ local hash = { }
+ local list = record.featureindices
+ for k=1,#list do
+ local index = list[k]
+ local feature = features[index]
+ local lookups = feature.lookups
+ local tag = feature.tag
+ if tag then
+ hash[tag] = true
+ end
+ if lookups then
+ for i=1,#lookups do
+ local lookup = lookups[i]
+ local o = featureorder[lookup]
+ if o then
+ local okay = true
+ for i=1,#o do
+ if o[i] == tag then
+ okay = false
+ break
+ end
+ end
+ if okay then
+ o[#o+1] = tag
+ end
+ else
+ featureorder[lookup] = { tag }
+ end
+ local f = featurehash[lookup]
+ if f then
+ local h = f[tag]
+ if h then
+ local s = h[script]
+ if s then
+ s[language] = true
+ else
+ h[script] = { [language] = true }
+ end
+ else
+ f[tag] = { [script] = { [language] = true } }
+ end
+ else
+ featurehash[lookup] = { [tag] = { [script] = { [language] = true } } }
+ end
+ --
+ local h = scriptlangs[tag]
+ if h then
+ local s = h[script]
+ if s then
+ s[language] = true
+ else
+ h[script] = { [language] = true }
+ end
+ else
+ scriptlangs[tag] = { [script] = { [language] = true } }
+ end
+ end
+ end
+ end
+ end
+ end
+ return scriptlangs, featurehash, featureorder
+ end
+
+ local function readscriplan(f,fontdata,scriptoffset)
+ setposition(f,scriptoffset)
+ local nofscripts = readushort(f)
+ local scripts = { }
+ for i=1,nofscripts do
+ scripts[readtag(f)] = scriptoffset + readushort(f)
+ end
+ -- script list -> language system info
+ local languagesystems = setmetatableindex("table")
+ for script, offset in next, scripts do
+ setposition(f,offset)
+ local defaultoffset = readushort(f)
+ local noflanguages = readushort(f)
+ local languages = { }
+ if defaultoffset > 0 then
+ languages.dflt = languagesystems[offset + defaultoffset]
+ end
+ for i=1,noflanguages do
+ local language = readtag(f)
+ local offset = offset + readushort(f)
+ languages[language] = languagesystems[offset]
+ end
+ scripts[script] = languages
+ end
+ -- script list -> language system info -> feature list
+ for offset, usedfeatures in next, languagesystems do
+ if offset > 0 then
+ setposition(f,offset)
+ local featureindices = { }
+ usedfeatures.featureindices = featureindices
+ usedfeatures.lookuporder = readushort(f) -- reserved, not used (yet)
+ usedfeatures.requiredindex = readushort(f) -- relates to required (can be 0xFFFF)
+ local noffeatures = readushort(f)
+ for i=1,noffeatures do
+ featureindices[i] = readushort(f) + 1
+ end
+ end
+ end
+ return scripts
+ end
+
+ local function readfeatures(f,fontdata,featureoffset)
+ setposition(f,featureoffset)
+ local features = { }
+ local noffeatures = readushort(f)
+ for i=1,noffeatures do
+ -- also shared?
+ features[i] = {
+ tag = readtag(f),
+ offset = readushort(f)
+ }
+ end
+ --
+ for i=1,noffeatures do
+ local feature = features[i]
+ local offset = featureoffset+feature.offset
+ setposition(f,offset)
+ local parameters = readushort(f) -- feature.parameters
+ local noflookups = readushort(f)
+ if noflookups > 0 then
+-- local lookups = { }
+-- feature.lookups = lookups
+-- for j=1,noflookups do
+-- lookups[j] = readushort(f) + 1
+-- end
+ local lookups = readcardinaltable(f,noflookups,ushort)
+ feature.lookups = lookups
+ for j=1,noflookups do
+ lookups[j] = lookups[j] + 1
+ end
+ end
+ if parameters > 0 then
+ feature.parameters = parameters
+ local plugin = plugins[feature.tag]
+ if plugin then
+ plugin(f,fontdata,featureoffset,feature)
+ end
+ end
+ end
+ return features
+ end
+
+ local function readlookups(f,lookupoffset,lookuptypes,featurehash,featureorder)
+ setposition(f,lookupoffset)
+ local noflookups = readushort(f)
+ local lookups = readcardinaltable(f,noflookups,ushort)
+ for lookupid=1,noflookups do
+ local offset = lookups[lookupid]
+ setposition(f,lookupoffset+offset)
+ local subtables = { }
+ local typebits = readushort(f)
+ local flagbits = readushort(f)
+ local lookuptype = lookuptypes[typebits]
+ local lookupflags = lookupflags[flagbits]
+ local nofsubtables = readushort(f)
+ for j=1,nofsubtables do
+ subtables[j] = offset + readushort(f) -- we can probably put lookupoffset here
+ end
+ -- which one wins?
+ local markclass = (flagbits & 0x0010) ~= 0 -- usemarkfilteringset
+ if markclass then
+ markclass = readushort(f) -- + 1
+ end
+ -- local markset = rshift(flagbits,8)
+ local markset = (flagbits >> 8) & 0xFFFFFFFF
+ if markset > 0 then
+ markclass = markset -- + 1
+ end
+ lookups[lookupid] = {
+ type = lookuptype,
+ -- chain = chaindirections[lookuptype] or nil,
+ flags = lookupflags,
+ name = lookupid,
+ subtables = subtables,
+ markclass = markclass,
+ features = featurehash[lookupid], -- not if extension
+ order = featureorder[lookupid],
+ }
+ end
+ return lookups
+ end
+
+ local f_lookupname = formatters["%s_%s_%s"]
+
+ local function resolvelookups(f,lookupoffset,fontdata,lookups,lookuptypes,lookuphandlers,what,tableoffset)
+
+ local sequences = fontdata.sequences or { }
+ local sublookuplist = fontdata.sublookups or { }
+ fontdata.sequences = sequences
+ fontdata.sublookups = sublookuplist
+ local nofsublookups = #sublookuplist
+ local nofsequences = #sequences -- 0
+ local lastsublookup = nofsublookups
+ local lastsequence = nofsequences
+ local lookupnames = lookupnames[what]
+ local sublookuphash = { }
+ local sublookupcheck = { }
+ local glyphs = fontdata.glyphs
+ local nofglyphs = fontdata.nofglyphs or #glyphs
+ local noflookups = #lookups
+ local lookupprefix = sub(what,2,2) -- g[s|p][ub|os]
+ --
+ local usedlookups = false -- setmetatableindex("number")
+ --
+ local allsteps = { } -- new per 2022-09-25
+
+ for lookupid=1,noflookups do
+ local lookup = lookups[lookupid]
+ local lookuptype = lookup.type
+ local subtables = lookup.subtables
+ local features = lookup.features
+ local handler = lookuphandlers[lookuptype]
+ if handler then
+ local nofsubtables = #subtables
+ local order = lookup.order
+ local flags = lookup.flags
+ -- this is expected in the font handler (faster checking)
+ if flags[1] then flags[1] = "mark" end
+ if flags[2] then flags[2] = "ligature" end
+ if flags[3] then flags[3] = "base" end
+ --
+ local markclass = lookup.markclass
+ -- local chain = lookup.chain
+ if nofsubtables > 0 then
+ local steps = { }
+ local nofsteps = 0
+ local oldtype = nil
+ for s=1,nofsubtables do
+ local step, lt = handler(f,fontdata,lookupid,lookupoffset,subtables[s],glyphs,nofglyphs)
+ if lt then
+ lookuptype = lt
+ if oldtype and lt ~= oldtype then
+ report("messy %s lookup type %a and %a",what,lookuptype,oldtype)
+ end
+ oldtype = lookuptype
+ end
+ if not step then
+ report("unsupported %s lookup type %a",what,lookuptype)
+ else
+ nofsteps = nofsteps + 1
+ steps[nofsteps] = step
+ local rules = step.rules
+ if rules then
+ allsteps[#allsteps+1] = step -- new per 2022-09-25
+ for i=1,#rules do
+ local rule = rules[i]
+ local before = rule.before
+ local current = rule.current
+ local after = rule.after
+ local replacements = rule.replacements
+ if before then
+ for i=1,#before do
+ before[i] = tohash(before[i])
+ end
+ -- as with original ctx ff loader
+ rule.before = reversed(before)
+ end
+ if current then
+ if replacements then
+ -- We have a reverse lookup and therefore only one current entry. We might need
+ -- to reverse the order in the before and after lists so that needs checking.
+ local first = current[1]
+ local hash = { }
+ local repl = { }
+ for i=1,#first do
+ local c = first[i]
+ hash[c] = true
+ repl[c] = replacements[i]
+ end
+ rule.current = { hash }
+ rule.replacements = repl
+ else
+ for i=1,#current do
+ current[i] = tohash(current[i])
+ end
+ end
+ else
+ -- weird lookup
+ end
+ if after then
+ for i=1,#after do
+ after[i] = tohash(after[i])
+ end
+ end
+ if usedlookups then
+ local lookups = rule.lookups
+ if lookups then
+ for k, v in next, lookups do
+ if v then
+ for k, v in next, v do
+ usedlookups[v] = usedlookups[v] + 1
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ if nofsteps ~= nofsubtables then
+ report("bogus subtables removed in %s lookup type %a",what,lookuptype)
+ end
+ lookuptype = lookupnames[lookuptype] or lookuptype
+ if features then
+ nofsequences = nofsequences + 1
+ -- report("registering %i as sequence step %i",lookupid,nofsequences)
+ local l = {
+ index = nofsequences,
+ name = f_lookupname(lookupprefix,"s",lookupid+lookupidoffset),
+ steps = steps,
+ nofsteps = nofsteps,
+ type = lookuptype,
+ markclass = markclass or nil,
+ flags = flags,
+ -- chain = chain,
+ order = order,
+ features = features,
+ }
+ sequences[nofsequences] = l
+ lookup.done = l
+ else
+ nofsublookups = nofsublookups + 1
+ -- report("registering %i as sublookup %i",lookupid,nofsublookups)
+ local l = {
+ index = nofsublookups,
+ name = f_lookupname(lookupprefix,"l",lookupid+lookupidoffset),
+ steps = steps,
+ nofsteps = nofsteps,
+ type = lookuptype,
+ markclass = markclass or nil,
+ flags = flags,
+ -- chain = chain,
+ }
+ sublookuplist[nofsublookups] = l
+ sublookuphash[lookupid] = nofsublookups
+ sublookupcheck[lookupid] = 0
+ lookup.done = l
+ end
+ else
+ report("no subtables for lookup %a",lookupid)
+ end
+ else
+ report("no handler for lookup %a with type %a",lookupid,lookuptype)
+ end
+ end
+
+ if usedlookups then
+ report("used %s lookups: % t",what,sortedkeys(usedlookups))
+ end
+
+ -- When we have a context, we have sublookups that resolve into lookups for which we need to
+ -- know the type. We split the main lookuptable in two parts: sequences (the main lookups)
+ -- and subtable lookups (simple specs with no features). We could keep them merged and might do
+ -- that once we only use this loader. Then we can also move the simple specs into the sequence.
+ -- After all, we pack afterwards.
+
+ local reported = { }
+
+ local function report_issue(i,what,step,kind)
+-- if not reported[step] then
+ report("rule %i in step %i of %s has %s lookups",i,step,what,kind)
+-- reported[name] = true
+-- end
+ end
+
+ -- for i=lastsequence+1,nofsequences do
+ -- local sequence = sequences[i]
+ -- local steps = sequence.steps
+ -- for i=1,#steps do
+ -- local step = steps[i]
+
+ for s=1,#allsteps do -- new per 2022-09-25
+ local step = allsteps[s] -- new per 2022-09-25
+ local rules = step.rules
+ if rules then
+ for i=1,#rules do
+ local rule = rules[i]
+ local rlookups = rule.lookups
+ if not rlookups then
+ report_issue(i,what,s,"no")
+ elseif not next(rlookups) then
+ -- can be ok as it aborts a chain sequence
+ -- report_issue(i,what,s,"empty")
+ rule.lookups = nil
+ else
+ -- we can have holes in rlookups flagged false and we can have multiple lookups
+ -- applied (first time seen in seguemj)
+ local length = #rlookups
+ for index=1,length do
+ local lookuplist = rlookups[index]
+ if lookuplist then
+ local length = #lookuplist
+ local found = { }
+ local noffound = 0
+ for index=1,length do
+ local lookupid = lookuplist[index]
+ if lookupid then
+ local h = sublookuphash[lookupid]
+ if not h then
+ -- here we have a lookup that is used independent as well
+ -- as in another one
+ local lookup = lookups[lookupid]
+ if lookup then
+ local d = lookup.done
+ if d then
+ nofsublookups = nofsublookups + 1
+ -- report("registering %i as sublookup %i",lookupid,nofsublookups)
+ local l = {
+ index = nofsublookups, -- handy for tracing
+ name = f_lookupname(lookupprefix,"d",lookupid+lookupidoffset),
+ derived = true, -- handy for tracing
+ steps = d.steps,
+ nofsteps = d.nofsteps,
+ type = d.lookuptype or "gsub_single", -- todo: check type
+ markclass = d.markclass or nil,
+ flags = d.flags,
+ -- chain = d.chain,
+ }
+ sublookuplist[nofsublookups] = copy(l) -- we repack later
+ sublookuphash[lookupid] = nofsublookups
+ sublookupcheck[lookupid] = 1
+ h = nofsublookups
+ else
+ report_issue(i,what,s,"missing")
+ rule.lookups = nil
+ break
+ end
+ else
+ report_issue(i,what,s,"bad")
+ rule.lookups = nil
+ break
+ end
+ else
+ sublookupcheck[lookupid] = sublookupcheck[lookupid] + 1
+ end
+ if h then
+ noffound = noffound + 1
+ found[noffound] = h
+ end
+ end
+ end
+ rlookups[index] = noffound > 0 and found or false
+ else
+ rlookups[index] = false
+ end
+ end
+ end
+ end
+ end
+ end
+ -- end -- new per 2022-09-25
+
+ for i, n in sortedhash(sublookupcheck) do
+ local l = lookups[i]
+ local t = l.type
+ if n == 0 and t ~= "extension" then
+ local d = l.done
+ report("%s lookup %s of type %a is not used",what,d and d.name or l.name,t)
+ end
+ end
+
+ end
+
+ local function loadvariations(f,fontdata,variationsoffset,lookuptypes,featurehash,featureorder)
+ setposition(f,variationsoffset)
+ local version = readulong(f) -- two times readushort
+ local nofrecords = readulong(f)
+ local records = { }
+ for i=1,nofrecords do
+ records[i] = {
+ conditions = readulong(f),
+ substitutions = readulong(f),
+ }
+ end
+ for i=1,nofrecords do
+ local record = records[i]
+ local offset = record.conditions
+ if offset == 0 then
+ record.condition = nil
+ record.matchtype = "always"
+ else
+ local offset = variationsoffset+offset
+ setposition(f,offset)
+ local nofconditions = readushort(f)
+ local conditions = { }
+ for i=1,nofconditions do
+ conditions[i] = offset + readulong(f)
+ end
+ record.conditions = conditions
+ record.matchtype = "condition"
+ end
+ end
+ for i=1,nofrecords do
+ local record = records[i]
+ if record.matchtype == "condition" then
+ local conditions = record.conditions
+ for i=1,#conditions do
+ setposition(f,conditions[i])
+ conditions[i] = {
+ format = readushort(f),
+ axis = readushort(f),
+ minvalue = read2dot14(f),
+ maxvalue = read2dot14(f),
+ }
+ end
+ end
+ end
+
+ for i=1,nofrecords do
+ local record = records[i]
+ local offset = record.substitutions
+ if offset == 0 then
+ record.substitutions = { }
+ else
+ setposition(f,variationsoffset + offset)
+ local version = readulong(f)
+ local nofsubstitutions = readushort(f)
+ local substitutions = { }
+ for i=1,nofsubstitutions do
+ substitutions[readushort(f)] = readulong(f)
+ end
+ for index, alternates in sortedhash(substitutions) do
+ if index == 0 then
+ record.substitutions = false
+ else
+ local tableoffset = variationsoffset + offset + alternates
+ setposition(f,tableoffset)
+ local parameters = readulong(f) -- feature parameters
+ local noflookups = readushort(f)
+ local lookups = readcardinaltable(f,noflookups,ushort) -- not sure what to do with these
+ -- todo : resolve to proper lookups
+ record.substitutions = lookups
+ end
+ end
+ end
+ end
+ setvariabledata(fontdata,"features",records)
+ end
+
+ local function readscripts(f,fontdata,what,lookuptypes,lookuphandlers,lookupstoo)
+ local tableoffset = gotodatatable(f,fontdata,what,true)
+ if tableoffset then
+ local version = readulong(f)
+ local scriptoffset = tableoffset + readushort(f)
+ local featureoffset = tableoffset + readushort(f)
+ local lookupoffset = tableoffset + readushort(f)
+ -- MFK : Rubik-Regular.ttf : we need to delay adding the offset
+ -- local variationsoffset = version > 0x00010000 and (tableoffset + readulong(f)) or 0
+ local variationsoffset = version > 0x00010000 and readulong(f) or 0
+ if not scriptoffset then
+ return
+ end
+ local scripts = readscriplan(f,fontdata,scriptoffset)
+ local features = readfeatures(f,fontdata,featureoffset)
+ --
+ local scriptlangs, featurehash, featureorder = reorderfeatures(fontdata,scripts,features)
+ --
+ if fontdata.features then
+ fontdata.features[what] = scriptlangs
+ else
+ fontdata.features = { [what] = scriptlangs }
+ end
+ --
+ if not lookupstoo then
+ return
+ end
+ --
+ local lookups = readlookups(f,lookupoffset,lookuptypes,featurehash,featureorder)
+ --
+ if lookups then
+ resolvelookups(f,lookupoffset,fontdata,lookups,lookuptypes,lookuphandlers,what,tableoffset)
+ end
+ --
+ if variationsoffset > 0 then
+ -- loadvariations(f,fontdata,variationsoffset,lookuptypes,featurehash,featureorder)
+ loadvariations(f,fontdata,tableoffset + variationsoffset,lookuptypes,featurehash,featureorder)
+ end
+ end
+ end
+
+ local function checkkerns(f,fontdata,specification)
+ local datatable = fontdata.tables.kern
+ if not datatable then
+ return -- no kerns
+ end
+ local features = fontdata.features
+ local gposfeatures = features and features.gpos
+ local name
+ if not gposfeatures or not gposfeatures.kern then
+ name = "kern"
+ elseif specification.globalkerns then
+ name = "globalkern"
+ else
+ report("ignoring global kern table, using gpos kern feature")
+ return
+ end
+ setposition(f,datatable.offset)
+ local version = readushort(f)
+ local noftables = readushort(f)
+ if noftables > 1 then
+ report("adding global kern table as gpos feature %a",name)
+ local kerns = setmetatableindex("table")
+ for i=1,noftables do
+ local version = readushort(f)
+ local length = readushort(f)
+ local coverage = readushort(f)
+ -- bit 8-15 of coverage: format 0 or 2
+ -- local format = rshift(coverage,8) -- is this ok
+ local format = (coverage >> 8) & 0xFFFFFFFF -- is this ok
+ if format == 0 then
+ local nofpairs = readushort(f)
+ local searchrange = readushort(f)
+ local entryselector = readushort(f)
+ local rangeshift = readushort(f)
+ for i=1,nofpairs do
+ kerns[readushort(f)][readushort(f)] = readfword(f)
+ end
+ elseif format == 2 then
+ -- apple specific so let's ignore it
+ else
+ -- not supported by ms
+ end
+ end
+ local feature = { dflt = { dflt = true } }
+ if not features then
+ fontdata.features = { gpos = { [name] = feature } }
+ elseif not gposfeatures then
+ fontdata.features.gpos = { [name] = feature }
+ else
+ gposfeatures[name] = feature
+ end
+ local sequences = fontdata.sequences
+ if not sequences then
+ sequences = { }
+ fontdata.sequences = sequences
+ end
+ local nofsequences = #sequences + 1
+ sequences[nofsequences] = {
+ index = nofsequences,
+ name = name,
+ steps = {
+ {
+ coverage = kerns,
+ format = "kern",
+ },
+ },
+ nofsteps = 1,
+ type = "gpos_pair",
+ flags = { false, false, false, false },
+ order = { name },
+ features = { [name] = feature },
+ }
+ else
+ report("ignoring empty kern table of feature %a",name)
+ end
+ end
+
+ function readers.gsub(f,fontdata,specification)
+ if specification.details then
+ readscripts(f,fontdata,"gsub",gsubtypes,gsubhandlers,specification.lookups)
+ end
+ end
+
+ function readers.gpos(f,fontdata,specification)
+ if specification.details then
+ readscripts(f,fontdata,"gpos",gpostypes,gposhandlers,specification.lookups)
+ if specification.lookups then
+ checkkerns(f,fontdata,specification)
+ end
+ end
+ end
+
+end
+
+function readers.gdef(f,fontdata,specification)
+ if not specification.glyphs then
+ return
+ end
+ local datatable = fontdata.tables.gdef
+ if datatable then
+ local tableoffset = datatable.offset
+ setposition(f,tableoffset)
+ local version = readulong(f)
+ local classoffset = readushort(f)
+ local attachmentoffset = readushort(f) -- used for bitmaps
+ local ligaturecarets = readushort(f) -- used in editors (maybe nice for tracing)
+ local markclassoffset = readushort(f)
+ local marksetsoffset = version >= 0x00010002 and readushort(f) or 0
+ local varsetsoffset = version >= 0x00010003 and readulong(f) or 0
+ local glyphs = fontdata.glyphs
+ local marks = { }
+ local markclasses = setmetatableindex("table")
+ local marksets = setmetatableindex("table")
+ fontdata.marks = marks
+ fontdata.markclasses = markclasses
+ fontdata.marksets = marksets
+ -- class definitions
+ if classoffset ~= 0 then
+ setposition(f,tableoffset + classoffset)
+ local classformat = readushort(f)
+ if classformat == 1 then
+ local firstindex = readushort(f)
+ local lastindex = firstindex + readushort(f) - 1
+ for index=firstindex,lastindex do
+ local class = classes[readushort(f)]
+ if class == "mark" then
+ marks[index] = true
+ end
+ glyphs[index].class = class
+ end
+ elseif classformat == 2 then
+ local nofranges = readushort(f)
+ for i=1,nofranges do
+ local firstindex = readushort(f)
+ local lastindex = readushort(f)
+ local class = classes[readushort(f)]
+ if class then
+ for index=firstindex,lastindex do
+ glyphs[index].class = class
+ if class == "mark" then
+ marks[index] = true
+ end
+ end
+ end
+ end
+ end
+ end
+ -- mark classes
+ if markclassoffset ~= 0 then
+ setposition(f,tableoffset + markclassoffset)
+ local classformat = readushort(f)
+ if classformat == 1 then
+ local firstindex = readushort(f)
+ local lastindex = firstindex + readushort(f) - 1
+ for index=firstindex,lastindex do
+ markclasses[readushort(f)][index] = true
+ end
+ elseif classformat == 2 then
+ local nofranges = readushort(f)
+ for i=1,nofranges do
+ local firstindex = readushort(f)
+ local lastindex = readushort(f)
+ local class = markclasses[readushort(f)]
+ for index=firstindex,lastindex do
+ class[index] = true
+ end
+ end
+ end
+ end
+ -- mark sets : todo: just make the same as class sets above
+ if marksetsoffset ~= 0 then
+ marksetsoffset = tableoffset + marksetsoffset
+ setposition(f,marksetsoffset)
+ local format = readushort(f)
+ if format == 1 then
+ local nofsets = readushort(f)
+ local sets = readcardinaltable(f,nofsets,ulong)
+ for i=1,nofsets do
+ local offset = sets[i]
+ if offset ~= 0 then
+ marksets[i] = readcoverage(f,marksetsoffset+offset)
+ end
+ end
+ end
+ end
+
+ local factors = specification.factors
+
+ if (specification.variable or factors) and varsetsoffset ~= 0 then
+
+ local regions, deltas = readvariationdata(f,tableoffset+varsetsoffset,factors)
+
+ -- setvariabledata(fontdata,"gregions",regions)
+
+ if factors then
+ fontdata.temporary.getdelta = function(outer,inner)
+ local delta = deltas[outer+1]
+ if delta then
+ local d = delta.deltas[inner+1]
+ if d then
+ local scales = delta.scales
+ local dd = 0
+ for i=1,#scales do
+ local di = d[i]
+ if di then
+ dd = dd + scales[i] * di
+ else
+ break
+ end
+ end
+ return round(dd)
+ end
+ end
+ return 0
+ end
+ end
+
+ end
+ end
+end
+
+-- We keep this code here instead of font-otm.lua because we need coverage
+-- helpers. Okay, these helpers could go to the main reader file some day.
+
+local function readmathvalue(f)
+ local v = readshort(f)
+ skipshort(f,1) -- offset to device table
+ return v
+end
+
+local function readmathconstants(f,fontdata,offset)
+ setposition(f,offset)
+ fontdata.mathconstants = {
+ ScriptPercentScaleDown = readshort(f),
+ ScriptScriptPercentScaleDown = readshort(f),
+ DelimitedSubFormulaMinHeight = readushort(f),
+ DisplayOperatorMinHeight = readushort(f),
+ MathLeading = readmathvalue(f),
+ AxisHeight = readmathvalue(f),
+ AccentBaseHeight = readmathvalue(f),
+ FlattenedAccentBaseHeight = readmathvalue(f),
+ SubscriptShiftDown = readmathvalue(f),
+ SubscriptTopMax = readmathvalue(f),
+ SubscriptBaselineDropMin = readmathvalue(f),
+ SuperscriptShiftUp = readmathvalue(f),
+ SuperscriptShiftUpCramped = readmathvalue(f),
+ SuperscriptBottomMin = readmathvalue(f),
+ SuperscriptBaselineDropMax = readmathvalue(f),
+ SubSuperscriptGapMin = readmathvalue(f),
+ SuperscriptBottomMaxWithSubscript = readmathvalue(f),
+ SpaceAfterScript = readmathvalue(f),
+ UpperLimitGapMin = readmathvalue(f),
+ UpperLimitBaselineRiseMin = readmathvalue(f),
+ LowerLimitGapMin = readmathvalue(f),
+ LowerLimitBaselineDropMin = readmathvalue(f),
+ StackTopShiftUp = readmathvalue(f),
+ StackTopDisplayStyleShiftUp = readmathvalue(f),
+ StackBottomShiftDown = readmathvalue(f),
+ StackBottomDisplayStyleShiftDown = readmathvalue(f),
+ StackGapMin = readmathvalue(f),
+ StackDisplayStyleGapMin = readmathvalue(f),
+ StretchStackTopShiftUp = readmathvalue(f),
+ StretchStackBottomShiftDown = readmathvalue(f),
+ StretchStackGapAboveMin = readmathvalue(f),
+ StretchStackGapBelowMin = readmathvalue(f),
+ FractionNumeratorShiftUp = readmathvalue(f),
+ FractionNumeratorDisplayStyleShiftUp = readmathvalue(f),
+ FractionDenominatorShiftDown = readmathvalue(f),
+ FractionDenominatorDisplayStyleShiftDown = readmathvalue(f),
+ FractionNumeratorGapMin = readmathvalue(f),
+ FractionNumeratorDisplayStyleGapMin = readmathvalue(f),
+ FractionRuleThickness = readmathvalue(f),
+ FractionDenominatorGapMin = readmathvalue(f),
+ FractionDenominatorDisplayStyleGapMin = readmathvalue(f),
+ SkewedFractionHorizontalGap = readmathvalue(f),
+ SkewedFractionVerticalGap = readmathvalue(f),
+ OverbarVerticalGap = readmathvalue(f),
+ OverbarRuleThickness = readmathvalue(f),
+ OverbarExtraAscender = readmathvalue(f),
+ UnderbarVerticalGap = readmathvalue(f),
+ UnderbarRuleThickness = readmathvalue(f),
+ UnderbarExtraDescender = readmathvalue(f),
+ RadicalVerticalGap = readmathvalue(f),
+ RadicalDisplayStyleVerticalGap = readmathvalue(f),
+ RadicalRuleThickness = readmathvalue(f),
+ RadicalExtraAscender = readmathvalue(f),
+ RadicalKernBeforeDegree = readmathvalue(f),
+ RadicalKernAfterDegree = readmathvalue(f),
+ RadicalDegreeBottomRaisePercent = readshort(f),
+ }
+end
+
+local function readmathglyphinfo(f,fontdata,offset)
+ setposition(f,offset)
+ local italics = readushort(f)
+ local accents = readushort(f)
+ local extensions = readushort(f)
+ local kerns = readushort(f)
+ local glyphs = fontdata.glyphs
+ if italics ~= 0 then
+ setposition(f,offset+italics)
+ local coverage = readushort(f)
+ local nofglyphs = readushort(f)
+ coverage = readcoverage(f,offset+italics+coverage,true)
+ setposition(f,offset+italics+4)
+ for i=1,nofglyphs do
+ local italic = readmathvalue(f)
+ if italic ~= 0 then
+ local glyph = glyphs[coverage[i]]
+ local math = glyph.math
+ if not math then
+ glyph.math = { italic = italic }
+ else
+ math.italic = italic
+ end
+ end
+ end
+ fontdata.hasitalics = true
+ end
+ if accents ~= 0 then
+ setposition(f,offset+accents)
+ local coverage = readushort(f)
+ local nofglyphs = readushort(f)
+ coverage = readcoverage(f,offset+accents+coverage,true)
+ setposition(f,offset+accents+4)
+ for i=1,nofglyphs do
+ local accent = readmathvalue(f)
+ if accent ~= 0 then
+ local glyph = glyphs[coverage[i]]
+ local math = glyph.math
+ if not math then
+ glyph.math = { accent = accent }
+ else
+ math.accent = accent -- will become math.topanchor
+ end
+ end
+ end
+ end
+ if extensions ~= 0 then
+ setposition(f,offset+extensions)
+ end
+ if kerns ~= 0 then
+ local kernoffset = offset + kerns
+ setposition(f,kernoffset)
+ local coverage = readushort(f)
+ local nofglyphs = readushort(f)
+ if nofglyphs > 0 then
+ local function get(offset)
+ setposition(f,kernoffset+offset)
+ local n = readushort(f)
+ if n == 0 then
+ local k = readmathvalue(f)
+ if k == 0 then
+ -- no need for it (happens sometimes)
+ else
+ return { { kern = k } }
+ end
+ else
+ local l = { }
+ for i=1,n do
+ l[i] = { height = readmathvalue(f) }
+ end
+ for i=1,n do
+ l[i].kern = readmathvalue(f)
+ end
+ l[n+1] = { kern = readmathvalue(f) }
+ return l
+ end
+ end
+ local kernsets = { }
+ for i=1,nofglyphs do
+ local topright = readushort(f)
+ local topleft = readushort(f)
+ local bottomright = readushort(f)
+ local bottomleft = readushort(f)
+ kernsets[i] = {
+ topright = topright ~= 0 and topright or nil,
+ topleft = topleft ~= 0 and topleft or nil,
+ bottomright = bottomright ~= 0 and bottomright or nil,
+ bottomleft = bottomleft ~= 0 and bottomleft or nil,
+ }
+ end
+ coverage = readcoverage(f,kernoffset+coverage,true)
+ for i=1,nofglyphs do
+ local kernset = kernsets[i]
+ if next(kernset) then
+ local k = kernset.topright if k then kernset.topright = get(k) end
+ local k = kernset.topleft if k then kernset.topleft = get(k) end
+ local k = kernset.bottomright if k then kernset.bottomright = get(k) end
+ local k = kernset.bottomleft if k then kernset.bottomleft = get(k) end
+ if next(kernset) then
+ local glyph = glyphs[coverage[i]]
+ local math = glyph.math
+ if math then
+ math.kerns = kernset
+ else
+ glyph.math = { kerns = kernset }
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+local function readmathvariants(f,fontdata,offset)
+ setposition(f,offset)
+ local glyphs = fontdata.glyphs
+ local minoverlap = readushort(f)
+ local vcoverage = readushort(f)
+ local hcoverage = readushort(f)
+ local vnofglyphs = readushort(f)
+ local hnofglyphs = readushort(f)
+ local vconstruction = readcardinaltable(f,vnofglyphs,ushort)
+ local hconstruction = readcardinaltable(f,hnofglyphs,ushort)
+
+ fontdata.mathconstants.MinConnectorOverlap = minoverlap
+
+ -- variants[i] = {
+ -- glyph = readushort(f),
+ -- advance = readushort(f),
+ -- }
+
+ local function get(offset,coverage,nofglyphs,construction,kvariants,kparts,kitalic,korientation,orientation)
+ if coverage ~= 0 and nofglyphs > 0 then
+ local coverage = readcoverage(f,offset+coverage,true)
+ for i=1,nofglyphs do
+ local c = construction[i]
+ if c ~= 0 then
+ local index = coverage[i]
+ local glyph = glyphs[index]
+ local math = glyph.math
+ setposition(f,offset+c)
+ local assembly = readushort(f)
+ local nofvariants = readushort(f)
+ if nofvariants > 0 then
+ local variants, v = nil, 0
+ for i=1,nofvariants do
+ local variant = readushort(f)
+ if variant == index then
+ -- ignore
+ elseif variants then
+ v = v + 1
+ variants[v] = variant
+ else
+ v = 1
+ variants = { variant }
+ end
+ skipshort(f)
+ end
+ if not variants then
+ -- only self
+ elseif not math then
+ math = { [kvariants] = variants }
+ glyph.math = math
+ else
+ math[kvariants] = variants
+ end
+ end
+ if assembly ~= 0 then
+ setposition(f,offset + c + assembly)
+ local italic = readmathvalue(f)
+ local nofparts = readushort(f)
+ local parts = { }
+ for i=1,nofparts do
+ local p = {
+ glyph = readushort(f),
+ start = readushort(f),
+ ["end"] = readushort(f),
+ advance = readushort(f),
+ }
+ local flags = readushort(f)
+ if (flags & 0x0001) ~= 0 then
+ p.extender = 1 -- true
+ end
+ parts[i] = p
+ end
+ if not math then
+ math = {
+ [kparts] = parts
+ }
+ glyph.math = math
+ else
+ math[kparts] = parts
+ end
+ if italic and italic ~= 0 then
+ math[kitalic] = italic
+ end
+ if orientation then
+ math[korientation] = orientation
+ end
+ end
+ end
+ end
+ end
+ end
+
+ -- if CONTEXTLMTXMODE and CONTEXTLMTXMODE > 0 then
+ get(offset,hcoverage,hnofglyphs,hconstruction,"variants","parts","partsitalic","partsorientation","horizontal")
+ get(offset,vcoverage,vnofglyphs,vconstruction,"variants","parts","partsitalic","partsorientation","vertical")
+ -- else
+ -- get(offset,vcoverage,vnofglyphs,vconstruction,"vvariants","vparts","vitalic")
+ -- get(offset,hcoverage,hnofglyphs,hconstruction,"hvariants","hparts","hitalic")
+ -- end
+end
+
+function readers.math(f,fontdata,specification)
+ local tableoffset = gotodatatable(f,fontdata,"math",specification.glyphs)
+ if tableoffset then
+ local version = readulong(f)
+ -- if version ~= 0x00010000 then
+ -- report("table version %a of %a is not supported (yet), maybe font %s is bad",version,"math",fontdata.filename)
+ -- return
+ -- end
+ local constants = readushort(f)
+ local glyphinfo = readushort(f)
+ local variants = readushort(f)
+ if constants == 0 then
+ report("the math table of %a has no constants",fontdata.filename)
+ else
+ readmathconstants(f,fontdata,tableoffset+constants)
+ end
+ if glyphinfo ~= 0 then
+ readmathglyphinfo(f,fontdata,tableoffset+glyphinfo)
+ end
+ if variants ~= 0 then
+ readmathvariants(f,fontdata,tableoffset+variants)
+ end
+ end
+end
+
+do
+
+ -- format 1: PaintColrLayers
+ -- for each referenced child paint table, in bottom-up z-order:
+ -- call renderPaint() passing the child paint table
+ -- compose the returned graphic onto the surface using simplealpha blending
+ --
+ -- format 2, 3: PaintSolid
+ -- paint the specified color onto the surface
+ --
+ -- format 4, 5, 6, 7, 8, 9: PaintLinearGradient, PaintRadialGradient, PaintSweepGradient
+ -- paint the gradient onto the surface following the gradient algorithm
+ --
+ -- format 10: PaintGlyph
+ -- apply the outline of the referenced glyph to the clip region
+ -- (take the intersection of clip regions—see Filling shapes)
+ -- call renderPaint() passing the child paint table
+ -- restore the previous clip region
+ --
+ -- format 11: PaintColrGlyph
+ -- call renderPaint() passing the paint table referenced by the base glyph ID
+ --
+ -- format 12 .. 31: Transform Translate Scale
+ -- apply the specified transform, compose the transform with the current transform
+ -- call renderPaint() passing the child paint table
+ -- restore the previous transform state
+ --
+ -- format 32: PaintComposite
+ -- call renderPaint() passing the backdrop child paint table and save the result
+ -- call renderPaint() passing the source child paint table and save the result
+ -- compose the source and backdrop using the specified composite mode
+ -- compose the result of the above composition onto the surface using simple alpha blending
+
+ local paintdata -- for the moment verbose, will be just indexed
+ local linesdata -- for the moment verbose, will be just indexed
+ local affinedata -- for the moment verbose, will be just indexed
+
+ local function getpaintoffset(f,offset)
+ offset = offset + readuoffset(f)
+ return paintdata[offset] and offset or nil
+ end
+
+ local function getlinesoffset(f,offset,var)
+ local offset = offset + readuoffset(f)
+ if linesdata[offset] == nil then
+ linesdata[offset] = var
+ end
+ return offset
+ end
+
+ local function getaffineoffset(f,offset,var)
+ local offset = offset + readuoffset(f)
+ if affinedata[offset] == nil then
+ affinedata[offset] = var
+ end
+ return offset
+ end
+
+ paintreaders = {
+ -- uint8 numLayers Number of offsets to paint tables to read from LayerList.
+ -- uint32 firstLayerIndex Index (base 0) into the LayerList.
+ [1] = function(f,format)
+ return {
+ format = format,
+ name = "PaintColrLayers",
+ count = readuinteger(f),
+ index = readulong(f),
+ list = false,
+ }
+ end,
+ -- uint16 paletteIndex Index for a CPAL palette entry.
+ -- F2DOT14 alpha Alpha value.
+ [2] = function(f,format)
+ return {
+ format = format,
+ name = "Paintsolid",
+ palette = readushort(f),
+ alpha = read2dot14(f),
+ }
+ end,
+ -- uint16 paletteIndex Index for a CPAL palette entry.
+ -- F2DOT14 alpha Alpha value. For variation, use varIndexBase + 0.
+ -- uint32 varIndexBase Base index into DeltaSetIndexMap.
+ [3] = function(f,format)
+ return {
+ format = format,
+ name = "Paintsolid",
+ palette = readushort(f),
+ alpha = read2dot14(f),
+ varbase = readulong(f),
+ }
+ end,
+ -- Offset24 colorLineOffset Offset to VarColorLine table.
+ -- FWORD x0 Start point (p₀) x coordinate. For variation, use varIndexBase + 0.
+ -- FWORD y0 Start point (p₀) y coordinate. For variation, use varIndexBase + 1.
+ -- FWORD x1 End point (p₁) x coordinate. For variation, use varIndexBase + 2.
+ -- FWORD y1 End point (p₁) y coordinate. For variation, use varIndexBase + 3.
+ -- FWORD x2 Rotation point (p₂) x coordinate. For variation, use varIndexBase + 4.
+ -- FWORD y2 Rotation point (p₂) y coordinate. For variation, use varIndexBase + 5.
+ -- uint32 varIndexBase Base index into DeltaSetIndexMap.
+ [4] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintLinearGradient",
+ color = getlinesoffset(f,offset,false),
+ x0 = readfword(f),
+ y0 = readfword(f),
+ x1 = readfword(f),
+ y1 = readfword(f),
+ x2 = readfword(f),
+ y2 = readfword(f),
+ }
+ end,
+ [5] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintLinearGradient",
+ color = getlinesoffset(f,offset,true),
+ x0 = readfword(f),
+ y0 = readfword(f),
+ x1 = readfword(f),
+ y1 = readfword(f),
+ x2 = readfword(f),
+ y2 = readfword(f),
+ varbase = readulong(f),
+ }
+ end,
+ -- Offset24 colorLineOffset Offset to VarColorLine table.
+ -- FWORD x0 Start circle center x coordinate. For variation, use varIndexBase + 0.
+ -- FWORD y0 Start circle center y coordinate. For variation, use varIndexBase + 1.
+ -- UFWORD radius0 Start circle radius. For variation, use varIndexBase + 2.
+ -- FWORD x1 End circle center x coordinate. For variation, use varIndexBase + 3.
+ -- FWORD y1 End circle center y coordinate. For variation, use varIndexBase + 4.
+ -- UFWORD radius1 End circle radius. For variation, use varIndexBase + 5.
+ -- uint32 varIndexBase Base index into DeltaSetIndexMap.
+ [6] = function(f,format)
+ return {
+ format = format,
+ name = "PaintRadialGradient",
+ color = getlinesoffset(f,offset,false),
+ x0 = readfword(f),
+ y0 = readfword(f),
+ radius0 = readfword(f),
+ x1 = readfword(f),
+ y1 = readfword(f),
+ radius1 = readfword(f),
+ }
+ end,
+ [7] = function(f,format)
+ return {
+ format = format,
+ name = "PaintRadialGradient",
+ color = getlinesoffset(f,offset,true),
+ x0 = readfword(f),
+ y0 = readfword(f),
+ radius0 = readfword(f),
+ x1 = readfword(f),
+ y1 = readfword(f),
+ radius1 = readfword(f),
+ varbase = readulong(f),
+ }
+ end,
+ -- Offset24 colorLineOffset Offset to VarColorLine table.
+ -- FWORD centerX Center x coordinate. For variation, use varIndexBase + 0.
+ -- FWORD centerY Center y coordinate. For variation, use varIndexBase + 1.
+ -- F2DOT14 startAngle Start of the angular range of the gradient, 180° in counter-clockwise degrees per 1.0 of value. For variation, use varIndexBase + 2.
+ -- F2DOT14 endAngle End of the angular range of the gradient, 180° in counter-clockwise degrees per 1.0 of value. For variation, use varIndexBase + 3.
+ -- uint32 varIndexBase Base index into DeltaSetIndexMap.
+ [8] = function(f,format)
+ return {
+ format = format,
+ name = "PaintSweepGradient",
+ color = getlinesoffset(f,offset,false),
+ centerx = readfword(f),
+ centery = readfword(f),
+ startangle = read2dot14(f),
+ endangle = read2dot14(f),
+ }
+ end,
+ [9] = function(f,format)
+ return {
+ format = format,
+ name = "PaintSweepGradient",
+ color = getlinesoffset(f,offset,true),
+ centerx = readfword(f),
+ centery = readfword(f),
+ startangle = read2dot14(f),
+ endangle = read2dot14(f),
+ varbase = readulong(f),
+ }
+ end,
+ -- Offset24 paintOffset Offset to a Paint table.
+ -- uint16 glyphID Glyph ID for the source outline.
+ [10] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintGlyph",
+ paint = getpaintoffset(f,offset),
+ glyph = readushort(f),
+ }
+ end,
+ -- uint16 glyphID Glyph ID for a BaseGlyphList base glyph.
+ [11] = function(f,format)
+ return {
+ format = format,
+ name = "PaintColrGlyph",
+ glyph = readushort(f),
+ }
+ end,
+ -- Offset24 paintOffset Offset to a Paint subtable.
+ -- Offset24 transformOffset Offset to an (Var)Affine2x3 table.
+ [12] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintTransform",
+ affine = getaffineoffset(f,offset,false),
+ paint = getpaintoffset(f,offset),
+ }
+ end,
+ [13] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintTransform",
+ affine = getaffineoffset(f,offset,true),
+ paint = getpaintoffset(f,offset),
+ }
+ end,
+ -- Offset24 paintOffset Offset to a Paint subtable.
+ -- FWORD dx Translation in x direction. For variation, use varIndexBase + 0.
+ -- FWORD dy Translation in y direction. For variation, use varIndexBase + 1.
+ -- uint32 varIndexBase Base index into DeltaSetIndexMap.
+ [14] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintTranslate",
+ paint = getpaintoffset(f,offset),
+ dx = readfword(f),
+ dy = readfword(f),
+ }
+ end,
+ [15] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintTranslate",
+ paint = getpaintoffset(f,offset),
+ dx = readfword(f),
+ dy = readfword(f),
+ varbase = readulong(f),
+ }
+ end,
+ -- Offset24 paintOffset Offset to a Paint subtable.
+ -- F2DOT14 scaleX Scale factor in x direction. For variation, use varIndexBase + 0.
+ -- F2DOT14 scaleY Scale factor in y direction. For variation, use varIndexBase + 1.
+ -- uint32 varIndexBase Base index into DeltaSetIndexMap.
+ [16] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintScale",
+ paint = getpaintoffset(f,offset),
+ scalex = read2dot14(f),
+ scaley = read2dot14(f),
+ }
+ end,
+ [17] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintScale",
+ paint = getpaintoffset(f,offset),
+ scalex = read2dot14(f),
+ scaley = read2dot14(f),
+ varbase = readulong(f),
+ }
+ end,
+ -- Offset24 paintOffset Offset to a Paint subtable.
+ -- F2DOT14 scaleX Scale factor in x direction. For variation, use varIndexBase + 0.
+ -- F2DOT14 scaleY Scale factor in y direction. For variation, use varIndexBase + 1.
+ -- FWORD centerX x coordinate for the center of scaling. For variation, use varIndexBase + 2.
+ -- FWORD centerY y coordinate for the center of scaling. For variation, use varIndexBase + 3.
+ -- uint32 varIndexBase Base index into DeltaSetIndexMap.
+ [18] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintScale",
+ paint = getpaintoffset(f,offset),
+ scalex = read2dot14(f),
+ scaley = read2dot14(f),
+ centerx = readfword(f),
+ centery = readfword(f),
+ }
+ end,
+ [19] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintScale",
+ paint = getpaintoffset(f,offset),
+ scalex = read2dot14(f),
+ scaley = read2dot14(f),
+ centerx = readfword(f),
+ centery = readfword(f),
+ varbase = readulong(f),
+ }
+ end,
+ -- Offset24 paintOffset Offset to a Paint subtable.
+ -- F2DOT14 scale Scale factor in x and y directions. For variation, use varIndexBase + 0.
+ -- uint32 varIndexBase Base index into DeltaSetIndexMap.
+ [20] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintScale",
+ paint = getpaintoffset(f,offset),
+ scale = read2dot14(f),
+ }
+ end,
+ [21] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintScale",
+ paint = getpaintoffset(f,offset),
+ scale = read2dot14(f),
+ varbase = readulong(f),
+ }
+ end,
+ -- Offset24 paintOffset Offset to a Paint subtable.
+ -- F2DOT14 scale Scale factor in x and y directions. For variation, use varIndexBase + 0.
+ -- FWORD centerX x coordinate for the center of scaling. For variation, use varIndexBase + 1.
+ -- FWORD centerY y coordinate for the center of scaling. For variation, use varIndexBase + 2.
+ -- uint32 varIndexBase Base index into DeltaSetIndexMap.
+ [22] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintScale",
+ paint = getpaintoffset(f,offset),
+ scale = read2dot14(f),
+ centerx = readfword(f),
+ centery = readfword(f),
+ }
+ end,
+ [23] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintScale",
+ paint = getpaintoffset(f,offset),
+ scale = read2dot14(f),
+ centerx = readfword(f),
+ centery = readfword(f),
+ varbase = readulong(f),
+ }
+ end,
+ -- Offset24 paintOffset Offset to a Paint subtable.
+ -- F2DOT14 angle Rotation angle, 180° in counter-clockwise degrees per 1.0 of value. For variation, use varIndexBase + 0.
+ -- uint32 varIndexBase Base index into DeltaSetIndexMap.
+ [24] = function(f,format,offset)
+ return {
+ format = format,
+ angle = read2dot14(f),
+ paint = getpaintoffset(f,offset),
+ name = "PaintRotate",
+ }
+ end,
+ [25] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintRotate",
+ paint = getpaintoffset(f,offset),
+ angle = read2dot14(f),
+ varbase = readulong(f),
+ }
+ end,
+ -- Offset24 paintOffset Offset to a Paint subtable.
+ -- F2DOT14 angle Rotation angle, 180° in counter-clockwise degrees per 1.0 of value. For variation, use varIndexBase + 0.
+ -- FWORD centerX x coordinate for the center of rotation. For variation, use varIndexBase + 1.
+ -- FWORD centerY y coordinate for the center of rotation. For variation, use varIndexBase + 2.
+ -- uint32 varIndexBase Base index into DeltaSetIndexMap.
+ [26] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintRotate",
+ paint = getpaintoffset(f,offset),
+ centerx = readfword(f),
+ centery = readfword(f),
+ }
+ end,
+ [27] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintRotate",
+ paint = getpaintoffset(f,offset),
+ centerx = read2dot14(f),
+ centery = read2dot14(f),
+ varbase = readulong(f),
+ }
+ end,
+ -- Offset24 paintOffset Offset to a Paint subtable.
+ -- F2DOT14 xSkewAngle Angle of skew in the direction of the x-axis, 180° in counter-clockwise degrees per 1.0 of value. For variation, use varIndexBase + 0.
+ -- F2DOT14 ySkewAngle Angle of skew in the direction of the y-axis, 180° in counter-clockwise degrees per 1.0 of value. For variation, use varIndexBase + 1.
+ -- uint32 varIndexBase Base index into DeltaSetIndexMap.
+ [28] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintSkew",
+ paint = getpaintoffset(f,offset),
+ xangle = read2dot14(f),
+ yangle = read2dot14(f),
+ }
+ end,
+ [29] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintSkew",
+ paint = getpaintoffset(f,offset),
+ xangle = read2dot14(f),
+ yangle = read2dot14(f),
+ varbase = readulong(f),
+ }
+ end,
+ -- Offset24 paintOffset Offset to a Paint subtable.
+ -- F2DOT14 xSkewAngle Angle of skew in the direction of the x-axis, 180° in counter-clockwise degrees per 1.0 of value. For variation, use varIndexBase + 0.
+ -- F2DOT14 ySkewAngle Angle of skew in the direction of the y-axis, 180° in counter-clockwise degrees per 1.0 of value. For variation, use varIndexBase + 1.
+ -- FWORD centerX x coordinate for the center of rotation. For variation, use varIndexBase + 2.
+ -- FWORD centerY y coordinate for the center of rotation. For variation, use varIndexBase + 3.
+ -- uint32 varIndexBase Base index into DeltaSetIndexMap.
+ [30] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintSkew",
+ paint = getpaintoffset(f,offset),
+ xangle = read2dot14(f),
+ yangle = read2dot14(f),
+ centerx = readfword(f),
+ centery = readfword(f),
+ }
+ end,
+ [31] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintSkew",
+ paint = getpaintoffset(f,offset),
+ xangle = read2dot14(f),
+ yangle = read2dot14(f),
+ centerx = readfword(f),
+ centery = readfword(f),
+ varbase = readulong(f),
+ }
+ end,
+ -- Offset24 sourcePaintOffset Offset to a source Paint table.
+ -- uint8 compositeMode A CompositeMode enumeration value.
+ -- Offset24 backdropaintOffset Offset to a backdrop Paint table.
+ [32] = function(f,format,offset)
+ return {
+ format = format,
+ name = "PaintComposite",
+ source = getpaintoffset(f,offset),
+ mode = readuinteger(f),
+ backdrop = getpaintoffset(f,offset),
+ }
+ end,
+ }
+
+ local unsupported = function()
+ return nil
+ end
+
+ setmetatableindex(paintreaders,function(t,format)
+ report("unsupported colr type 2 paint format %i",format)
+ t[format] = unsupported
+ return unsupported
+ end)
+
+ function readers.colr(f,fontdata,specification)
+ local tableoffset = gotodatatable(f,fontdata,"colr",specification.glyphs)
+ if tableoffset then
+ local version = readushort(f)
+ if version == 0 then
+ -- we're okay
+ elseif version == 1 then
+ report("table version %a of %a is %s supported for font %s",version,"colr","partially",fontdata.filename)
+ else
+ report("table version %a of %a is %s supported for font %s",version,"colr","not",fontdata.filename)
+ return
+ end
+ if not fontdata.tables.cpal then
+ report("color table %a in font %a has no mandate %a table","colr",fontdata.filename,"cpal")
+ fontdata.colorpalettes = { }
+ end
+ local glyphs = fontdata.glyphs
+ local nofglyphs = readushort(f)
+ local baseoffset = readulong(f)
+ local layeroffset = readulong(f)
+ local noflayers = readushort(f)
+ local glyphlistoffset = 0
+ local layerlistoffset = 0
+ local cliplistoffset = 0
+ local varindexmapoffset = 0
+ local variationoffset = 0
+ if version == 1 then
+ glyphlistoffset = readulong(f)
+ layerlistoffset = readulong(f)
+ cliplistoffset = readulong(f)
+ varindexmapoffset = readulong(f)
+ variationoffset = readulong(f)
+ end
+ local layerrecords = { }
+ local maxclass = 0
+ -- The special value 0xFFFF is foreground (but we index from 1). It
+ -- more looks like indices into a palette so 'class' is a better name
+ -- than 'palette'.
+ if layeroffset > 0 then
+ setposition(f,tableoffset + layeroffset)
+ for i=1,noflayers do
+ local slot = readushort(f)
+ local class = readushort(f)
+ if class < 0xFFFF then
+ class = class + 1
+ if class > maxclass then
+ maxclass = class
+ end
+ end
+ layerrecords[i] = {
+ slot = slot,
+ class = class,
+ }
+ end
+ end
+ fontdata.maxcolorclass = maxclass
+ if baseoffset > 0 then
+ setposition(f,tableoffset + baseoffset)
+ for i=0,nofglyphs-1 do
+ local glyphindex = readushort(f)
+ local firstlayer = readushort(f)
+ local noflayers = readushort(f)
+ local t = { }
+ for i=1,noflayers do
+ t[i] = layerrecords[firstlayer+i]
+ end
+ glyphs[glyphindex].colors = t
+ end
+ end
+if next(layerrecords) then
+ report("table version %a of %a is %s supported for font %s",version,"colr","partially",fontdata.filename)
+ return
+end
+ -- if not (CONTEXTLMTXMODE and CONTEXTLMTXMODE > 0) then
+ -- return
+ -- end
+ if layerlistoffset > 0 and glyphlistoffset > 0 then
+ local layers = { }
+ local paints = { }
+ local count, offset
+ --
+ setposition(f,tableoffset + layerlistoffset)
+ count = readulong(f)
+ -- layers = readcardinaltable(f,count,uoffset)
+ for i=1,count do -- zero ?
+ layers[i] = readulong(f) -- offsets to painttable
+ end
+ --
+ offset = tableoffset + glyphlistoffset
+ setposition(f,offset)
+ count = readulong(f)
+ for i=1,count do
+ -- glyph index -> paintrecord
+ paints[readushort(f)] = readulong(f) -- paintrecord offset (32 formats)
+ end
+ paintdata = setmetatableindex(function(t,k)
+ setposition(f,k)
+ local format = readuinteger(f)
+ local v = paintreaders[format](f,format,k)
+ t[k] = v
+ return v
+ end)
+ linesdata = { }
+ affinedata = { }
+ for k, v in next, paints do
+ local o = offset + v
+ if paintdata[o] then
+ paints[k] = o -- first paint
+ end
+ end
+ -- expand format 1
+ offset = tableoffset + layerlistoffset
+ for k, v in next, paints do
+ v = paintdata[v]
+ local format = v.format
+ if format == 1 then
+ -- name
+ local count = v.count
+ local index = v.index
+ local list = { }
+ v.count = nil
+ v.index = nil
+ v.list = list
+ for i=1,count do
+ local o = offset + layers[index+i]
+ if paintdata[o] then
+ list[i] = o
+ end
+ end
+ end
+ end
+ --
+ if variationoffset > 0 then
+ local offsettostore = tableoffset + variationoffset
+ local factors = specification.factors
+ if factors then
+ local regions, deltas = readvariationdata(f,offsettostore,factors)
+ report("font %a has a colr variations, check it out",fontdata.filename)
+ -- inspect(regions)
+ -- inspect(deltas)
+ end
+ end
+ --
+ -- It will take while before I finish this, also because there has never
+ -- been much demand for color fonts and there is no real incentive for
+ -- spending too much time on it.
+ --
+ -- todo: cliplist, varbase, affine, deltas etc
+ --
+ -- reindex tables, gives smaller files but optional because of tracing
+ --
+ for k, v in next, linesdata do
+ setposition(f,k)
+ local extend = readuinteger(f)
+ local count = readushort(f)
+ local stops = { }
+ for i=1,count do
+ stops[i] = {
+ stop = read2dot14(f),
+ pallette = readushort(f),
+ alpha = read2dot14(f),
+ varbase = v and readulong(f) or nil,
+ }
+ end
+ linesdata[k] = {
+ extend = readuinteger(f),
+ stops = stops,
+ }
+ end
+ --
+ for k, v in next, affinedata do
+ setposition(f,k)
+ affinedata[k] = {
+ xx = readfixed(f),
+ yx = readfixed(f),
+ xy = readfixed(f),
+ yy = readfixed(f),
+ dx = readfixed(f),
+ dy = readfixed(f),
+ }
+ end
+ --
+ local function rehash(t)
+ local hash = { }
+ local data = { }
+ local n = 0
+ for k, v in table.sortedhash(t) do
+ n = n + 1
+ hash[k] = n
+ data[n] = v
+ end
+ return hash, data
+ end
+ --
+ if true then
+ local phash, pdata = rehash(paintdata)
+ local lhash, ldata = rehash(linesdata)
+ local ahash, adata = rehash(affinedata)
+ for k, v in next, paintdata do
+ local c = v.color
+ if c then
+ v.color = lhash[c]
+ end
+ local a = v.affine
+ if a then
+ v.affine = ahash[a]
+ end
+ local p = v.paint
+ if p then
+ v.paint = phash[p]
+ goto done
+ end
+ local l = v.list
+ if l then
+ for i=1,#l do
+ l[i] = phash[l[i]]
+ end
+ goto done
+ end
+ local s = v.source
+ if s then
+ v.source = phash[s]
+ v.backdrop = phash[v.backdrop]
+ -- goto done
+ end
+ ::done::
+ end
+ paintdata = pdata
+ linesdata = ldata
+ for k, v in next, paints do -- zero indexed
+ paints[k] = phash[v]
+ end
+ end
+ --
+ if not next(layerrecords) then
+ for k, v in next, paints do
+ local paint = paintdata[v]
+ local format = paint.format
+ if format == 1 then
+ local list = paint.list
+ local done = { }
+ for i=1,#list do
+ local p = paintdata[list[i]]
+ local f = p.format
+ if f == 10 or f == 11 then
+ done[i] = {
+ slot = p.glyph,
+ class = i,
+ }
+ end
+ end
+ glyphs[k].colors = done
+ end
+ end
+ end
+-- fontdata.colorpaintdata = paintdata
+-- fontdata.colorpaintlist = paints
+-- fontdata.colorlinesdata = linesdata
+-- fontdata.coloraffinedata = affinedata
+ end
+ end
+ fontdata.hascolor = true
+ end
+
+end
+
+function readers.cpal(f,fontdata,specification)
+ local tableoffset = gotodatatable(f,fontdata,"cpal",specification.glyphs)
+ if tableoffset then
+ local version = readushort(f)
+ -- if version > 1 then
+ -- report("table version %a of %a is not supported (yet), maybe font %s is bad",version,"cpal",fontdata.filename)
+ -- return
+ -- end
+ local nofpaletteentries = readushort(f)
+ local nofpalettes = readushort(f)
+ local nofcolorrecords = readushort(f)
+ local firstcoloroffset = readulong(f)
+ local colorrecords = { }
+ local palettes = readcardinaltable(f,nofpalettes,ushort)
+ if version == 1 then
+ -- used for guis
+ local palettettypesoffset = readulong(f)
+ local palettelabelsoffset = readulong(f)
+ local paletteentryoffset = readulong(f)
+ end
+ setposition(f,tableoffset+firstcoloroffset)
+ for i=1,nofcolorrecords do
+ local b, g, r, a = readbytes(f,4)
+ colorrecords[i] = {
+ r, g, b, a ~= 255 and a or nil,
+ }
+ end
+ for i=1,nofpalettes do
+ local p = { }
+ local o = palettes[i]
+ for j=1,nofpaletteentries do
+ p[j] = colorrecords[o+j]
+ end
+ palettes[i] = p
+ end
+ fontdata.colorpalettes = palettes
+ end
+end
+
+local compress = gzip and gzip.compress
+local compressed = compress and gzip.compressed
+
+-- At some point I will delay loading and only store the offsets (in context lmtx
+-- only).
+
+-- compressed = false
+
+function readers.svg(f,fontdata,specification)
+ local tableoffset = gotodatatable(f,fontdata,"svg",specification.glyphs)
+ if tableoffset then
+ local version = readushort(f)
+ -- if version ~= 0 then
+ -- report("table version %a of %a is not supported (yet), maybe font %s is bad",version,"svg",fontdata.filename)
+ -- return
+ -- end
+ local glyphs = fontdata.glyphs
+ local indexoffset = tableoffset + readulong(f)
+ local reserved = readulong(f)
+ setposition(f,indexoffset)
+ local nofentries = readushort(f)
+ local entries = { }
+ for i=1,nofentries do
+ entries[i] = {
+ first = readushort(f),
+ last = readushort(f),
+ offset = indexoffset + readulong(f),
+ length = readulong(f),
+ }
+ end
+ for i=1,nofentries do
+ local entry = entries[i]
+ setposition(f,entry.offset)
+ local data = readstring(f,entry.length)
+ if compressed and not compressed(data) then
+ data = compress(data)
+ end
+ entries[i] = {
+ first = entry.first,
+ last = entry.last,
+ data = data
+ }
+ end
+ fontdata.svgshapes = entries
+ end
+ fontdata.hascolor = true
+end
+
+function readers.sbix(f,fontdata,specification)
+ local tableoffset = gotodatatable(f,fontdata,"sbix",specification.glyphs)
+ if tableoffset then
+ local version = readushort(f)
+ local flags = readushort(f)
+ local nofstrikes = readulong(f)
+ local strikes = { }
+ local nofglyphs = fontdata.nofglyphs
+ for i=1,nofstrikes do
+ strikes[i] = readulong(f)
+ end
+ local shapes = { }
+ local done = 0
+ for i=1,nofstrikes do
+ local strikeoffset = strikes[i] + tableoffset
+ setposition(f,strikeoffset)
+ strikes[i] = {
+ ppem = readushort(f),
+ ppi = readushort(f),
+ offset = strikeoffset
+ }
+ end
+ -- highest first
+ sort(strikes,function(a,b)
+ if b.ppem == a.ppem then
+ return b.ppi < a.ppi
+ else
+ return b.ppem < a.ppem
+ end
+ end)
+ local glyphs = { }
+ -- local delayed = CONTEXTLMTXMODE and CONTEXTLMTXMODE > 0 or fonts.handlers.typethree
+ for i=1,nofstrikes do
+ local strike = strikes[i]
+ local strikeppem = strike.ppem
+ local strikeppi = strike.ppi
+ local strikeoffset = strike.offset
+ setposition(f,strikeoffset)
+ for i=0,nofglyphs do
+ glyphs[i] = readulong(f)
+ end
+ local glyphoffset = glyphs[0]
+ for i=0,nofglyphs-1 do
+ local nextoffset = glyphs[i+1]
+ if not shapes[i] then
+ local datasize = nextoffset - glyphoffset
+ if datasize > 0 then
+ setposition(f,strikeoffset + glyphoffset)
+ local x = readshort(f)
+ local y = readshort(f)
+ local tag = readtag(f) -- or just skip, we never needed it till now
+ local size = datasize - 8
+ local data = nil
+ local offset = nil
+ -- if delayed then
+ offset = getposition(f)
+ -- else
+ -- data = readstring(f,size)
+ -- size = nil
+ -- end
+ shapes[i] = {
+ x = x,
+ y = y,
+ o = offset,
+ s = size,
+ data = data,
+ -- tag = tag, -- maybe for tracing
+ -- ppem = strikeppem, -- not used, for tracing
+ -- ppi = strikeppi, -- not used, for tracing
+ }
+ done = done + 1
+ if done == nofglyphs then
+ break
+ end
+ end
+ end
+ glyphoffset = nextoffset
+ end
+ end
+ fontdata.pngshapes = shapes
+ end
+end
+
+-- Another bitmap (so not that useful) format. But Luigi found a font that
+-- has them , so ...
+
+do
+
+ local function getmetrics(f)
+ return {
+ ascender = readinteger(f),
+ descender = readinteger(f),
+ widthmax = readuinteger(f),
+ caretslopedumerator = readinteger(f),
+ caretslopedenominator = readinteger(f),
+ caretoffset = readinteger(f),
+ minorigin = readinteger(f),
+ minadvance = readinteger(f),
+ maxbefore = readinteger(f),
+ minafter = readinteger(f),
+ pad1 = readinteger(f),
+ pad2 = readinteger(f),
+ }
+ end
+
+ -- bad names
+
+ local function getbigmetrics(f)
+ -- bigmetrics, maybe just skip 9 bytes
+ return {
+ height = readuinteger(f),
+ width = readuinteger(f),
+ horiBearingX = readinteger(f),
+ horiBearingY = readinteger(f),
+ horiAdvance = readuinteger(f),
+ vertBearingX = readinteger(f),
+ vertBearingY = readinteger(f),
+ vertAdvance = readuinteger(f),
+ }
+ end
+
+ local function getsmallmetrics(f)
+ -- smallmetrics, maybe just skip 5 bytes
+ return {
+ height = readuinteger(f),
+ width = readuinteger(f),
+ bearingX = readinteger(f),
+ bearingY = readinteger(f),
+ advance = readuinteger(f),
+ }
+ end
+
+ function readers.cblc(f,fontdata,specification)
+ -- should we delay this ?
+ local ctdttableoffset = gotodatatable(f,fontdata,"cbdt",specification.glyphs)
+ if not ctdttableoffset then
+ return
+ end
+ local cblctableoffset = gotodatatable(f,fontdata,"cblc",specification.glyphs)
+ if cblctableoffset then
+ local majorversion = readushort(f)
+ local minorversion = readushort(f)
+ local nofsizetables = readulong(f)
+ local sizetables = { }
+ local shapes = { }
+ local subtables = { }
+ for i=1,nofsizetables do
+ sizetables[i] = {
+ subtables = readulong(f),
+ indexsize = readulong(f),
+ nofsubtables = readulong(f),
+ colorref = readulong(f),
+ hormetrics = getmetrics(f),
+ vermetrics = getmetrics(f),
+ firstindex = readushort(f),
+ lastindex = readushort(f),
+ ppemx = readbyte(f),
+ ppemy = readbyte(f),
+ bitdepth = readbyte(f),
+ flags = readbyte(f),
+ }
+ end
+ sort(sizetables,function(a,b)
+ if b.ppemx == a.ppemx then
+ return b.bitdepth < a.bitdepth
+ else
+ return b.ppemx < a.ppemx
+ end
+ end)
+ for i=1,nofsizetables do
+ local s = sizetables[i]
+ local d = false
+ for j=s.firstindex,s.lastindex do
+ if not shapes[j] then
+ shapes[j] = i
+ d = true
+ end
+ end
+ if d then
+ s.used = true
+ end
+ end
+ for i=1,nofsizetables do
+ local s = sizetables[i]
+ if s.used then
+ local offset = s.subtables
+ setposition(f,cblctableoffset+offset)
+ for j=1,s.nofsubtables do
+ local firstindex = readushort(f)
+ local lastindex = readushort(f)
+ local tableoffset = readulong(f) + offset
+ for k=firstindex,lastindex do
+ if shapes[k] == i then
+ local s = subtables[tableoffset]
+ if not s then
+ s = {
+ firstindex = firstindex,
+ lastindex = lastindex,
+ }
+ subtables[tableoffset] = s
+ end
+ shapes[k] = s
+ end
+ end
+ end
+ end
+ end
+
+ -- there is no need to sort in string stream but we have a nicer trace
+ -- if needed
+
+ for offset, subtable in sortedhash(subtables) do
+ local tabletype = readushort(f)
+ subtable.format = readushort(f)
+ local baseoffset = readulong(f) + ctdttableoffset
+ local offsets = { }
+ local metrics = nil
+ if tabletype == 1 then
+ -- we have the usual one more to get the size
+ for i=subtable.firstindex,subtable.lastindex do
+ offsets[i] = readulong(f) + baseoffset
+ end
+ skipbytes(f,4)
+ elseif tabletype == 2 then
+ local size = readulong(f)
+ local done = baseoffset
+ metrics = getbigmetrics(f)
+ for i=subtable.firstindex,subtable.lastindex do
+ offsets[i] = done
+ done = done + size
+ end
+ elseif tabletype == 3 then
+ -- we have the usual one more to get the size
+ local n = subtable.lastindex - subtable.firstindex + 2
+ for i=subtable.firstindex,subtable.lastindex do
+ offsets[i] = readushort(f) + baseoffset
+ end
+ if math.odd(n) then
+ skipbytes(f,4)
+ else
+ skipbytes(f,2)
+ end
+ elseif tabletype == 4 then
+ for i=1,readulong(f) do
+ offsets[readushort(f)] = readushort(f) + baseoffset
+ end
+ elseif tabletype == 5 then
+ local size = readulong(f)
+ local done = baseoffset
+ metrics = getbigmetrics(f)
+ local n = readulong(f)
+ for i=1,n do
+ offsets[readushort(f)] = done
+ done = done + size
+ end
+ if math.odd(n) then
+ skipbytes(f,2)
+ end
+ else
+ return -- unsupported format
+ end
+ subtable.offsets = offsets
+ subtable.metrics = metrics
+ end
+
+ -- we only support a few sensible types ... there are hardly any fonts so
+ -- why are there so many variants ... not the best spec
+
+ local default = { width = 0, height = 0 }
+ local glyphs = fontdata.glyphs
+ -- local delayed = CONTEXTLMTXMODE and CONTEXTLMTXMODE > 0 or fonts.handlers.typethree
+
+ for index, subtable in sortedhash(shapes) do
+ if type(subtable) == "table" then
+ local data = nil
+ local size = nil
+ local metrics = default
+ local format = subtable.format
+ local offset = subtable.offsets[index]
+ setposition(f,offset)
+ if format == 17 then
+ metrics = getsmallmetrics(f)
+ size = true
+ elseif format == 18 then
+ metrics = getbigmetrics(f)
+ size = true
+ elseif format == 19 then
+ metrics = subtable.metrics
+ size = true
+ else
+ -- forget about it
+ end
+ if size then
+ size = readulong(f)
+ -- if delayed then
+ offset = getposition(f)
+ data = nil
+ -- else
+ -- offset = nil
+ -- data = readstring(f,size)
+ -- size = nil
+ -- end
+ else
+ offset = nil
+ end
+ local x = metrics.width
+ local y = metrics.height
+ shapes[index] = {
+ x = x,
+ y = y,
+ o = offset,
+ s = size,
+ data = data,
+ }
+ -- I'll look into this in more details when needed
+ -- as we can use the bearings to get better boxes.
+ local glyph = glyphs[index]
+ if not glyph.boundingbox then
+ local width = glyph.width
+ local height = width * y/x
+ glyph.boundingbox = { 0, 0, width, height }
+ end
+ else
+ shapes[index] = {
+ x = 0,
+ y = 0,
+ data = "", -- or just nil
+ }
+ end
+ end
+
+ fontdata.pngshapes = shapes -- we cheat
+ end
+ end
+
+ function readers.cbdt(f,fontdata,specification)
+ -- local tableoffset = gotodatatable(f,fontdata,"ctdt",specification.glyphs)
+ -- if tableoffset then
+ -- local majorversion = readushort(f)
+ -- local minorversion = readushort(f)
+ -- end
+ end
+
+ -- function readers.ebdt(f,fontdata,specification)
+ -- if specification.glyphs then
+ -- end
+ -- end
+
+ -- function readers.ebsc(f,fontdata,specification)
+ -- if specification.glyphs then
+ -- end
+ -- end
+
+ -- function readers.eblc(f,fontdata,specification)
+ -- if specification.glyphs then
+ -- end
+ -- end
+
+end
+
+-- + AVAR : optional
+-- + CFF2 : otf outlines
+-- - CVAR : ttf hinting, not needed
+-- + FVAR : the variations
+-- + GVAR : ttf outline changes
+-- + HVAR : horizontal changes
+-- + MVAR : metric changes
+-- + STAT : relations within fonts
+-- * VVAR : vertical changes
+--
+-- * BASE : extra baseline adjustments
+-- - GASP : not needed
+-- + GDEF : not needed (carets)
+-- + GPOS : adapted device tables (needed?)
+-- + GSUB : new table
+-- + NAME : 25 added
+
+function readers.stat(f,fontdata,specification)
+ local tableoffset = gotodatatable(f,fontdata,"stat",true) -- specification.variable
+ if tableoffset then
+ local extras = fontdata.extras
+ local version = readulong(f) -- 0x00010000
+ local axissize = readushort(f)
+ local nofaxis = readushort(f)
+ local axisoffset = readulong(f)
+ local nofvalues = readushort(f)
+ local valuesoffset = readulong(f)
+ local fallbackname = extras[readushort(f)] -- beta fonts mess up
+ local axis = { }
+ local values = { }
+ setposition(f,tableoffset+axisoffset)
+ for i=1,nofaxis do
+ local tag = readtag(f)
+ axis[i] = {
+ tag = tag,
+ name = lower(extras[readushort(f)] or tag),
+ ordering = readushort(f), -- maybe gaps
+ variants = { }
+ }
+ end
+ -- flags:
+ --
+ -- 0x0001 : OlderSiblingFontAttribute
+ -- 0x0002 : ElidableAxisValueName
+ -- 0xFFFC : reservedFlags
+ --
+ setposition(f,tableoffset+valuesoffset)
+ for i=1,nofvalues do
+ values[i] = readushort(f)
+ end
+ for i=1,nofvalues do
+ setposition(f,tableoffset + valuesoffset + values[i])
+ local format = readushort(f)
+ local index = readushort(f) + 1
+ local flags = readushort(f)
+ local name = lower(extras[readushort(f)] or "no name")
+ local value = readfixed(f)
+ local variant
+ if format == 1 then
+ variant = {
+ flags = flags,
+ name = name,
+ value = value,
+ }
+ elseif format == 2 then
+ variant = {
+ flags = flags,
+ name = name,
+ value = value,
+ minimum = readfixed(f),
+ maximum = readfixed(f),
+ }
+ elseif format == 3 then
+ variant = {
+ flags = flags,
+ name = name,
+ value = value,
+ link = readfixed(f),
+ }
+ end
+ insert(axis[index].variants,variant)
+ end
+ sort(axis,function(a,b)
+ return a.ordering < b.ordering
+ end)
+ for i=1,#axis do
+ local a = axis[i]
+ sort(a.variants,function(a,b)
+ return a.name < b.name
+ end)
+ a.ordering = nil
+ end
+ setvariabledata(fontdata,"designaxis",axis)
+ setvariabledata(fontdata,"fallbackname",fallbackname)
+ end
+end
+
+-- The avar table is optional and used in combination with fvar. Given the
+-- detailed explanation about bad values we expect the worst and do some
+-- checking.
+
+function readers.avar(f,fontdata,specification)
+ local tableoffset = gotodatatable(f,fontdata,"avar",true) -- specification.variable
+ if tableoffset then
+
+ local function collect()
+ local nofvalues = readushort(f)
+ local values = { }
+ local lastfrom = false
+ local lastto = false
+ for i=1,nofvalues do
+ local from = read2dot14(f)
+ local to = read2dot14(f)
+ if lastfrom and from <= lastfrom then
+ -- ignore
+ elseif lastto and to >= lastto then
+ -- ignore
+ else
+ values[#values+1] = { from, to }
+ lastfrom, lastto = from, to
+ end
+ end
+ nofvalues = #values
+ if nofvalues > 2 then
+ local some = values[1]
+ if some[1] == -1 and some[2] == -1 then
+ some = values[nofvalues]
+ if some[1] == 1 and some[2] == 1 then
+ for i=2,nofvalues-1 do
+ some = values[i]
+ if some[1] == 0 and some[2] == 0 then
+ return values
+ end
+ end
+ end
+ end
+ end
+ return false
+ end
+
+ local version = readulong(f) -- 0x00010000
+ local reserved = readushort(f)
+ local nofaxis = readushort(f)
+ local segments = { }
+ for i=1,nofaxis do
+ segments[i] = collect()
+ end
+ setvariabledata(fontdata,"segments",segments)
+ end
+end
+
+function readers.fvar(f,fontdata,specification)
+ local tableoffset = gotodatatable(f,fontdata,"fvar",true) -- specification.variable or specification.instancenames
+ if tableoffset then
+ local version = readulong(f) -- 0x00010000
+ local offsettoaxis = tableoffset + readushort(f)
+ local reserved = skipshort(f)
+ -- pair 1
+ local nofaxis = readushort(f)
+ local sizeofaxis = readushort(f)
+ -- pair 2
+ local nofinstances = readushort(f)
+ local sizeofinstances = readushort(f)
+ --
+ local extras = fontdata.extras
+ local axis = { }
+ local instances = { }
+ --
+ setposition(f,offsettoaxis)
+ --
+ for i=1,nofaxis do
+ axis[i] = {
+ tag = readtag(f), -- ital opsz slnt wdth wght
+ minimum = readfixed(f),
+ default = readfixed(f),
+ maximum = readfixed(f),
+ flags = readushort(f),
+ name = lower(extras[readushort(f)] or "bad name"),
+ }
+ local n = sizeofaxis - 20
+ if n > 0 then
+ skipbytes(f,n)
+ elseif n < 0 then
+ -- error
+ end
+ end
+ --
+ local nofbytes = 2 + 2 + 2 + nofaxis * 4
+ local readpsname = nofbytes <= sizeofinstances
+ local skippable = sizeofinstances - nofbytes
+ for i=1,nofinstances do
+ local subfamid = readushort(f)
+ local flags = readushort(f) -- 0, not used yet
+ local values = { }
+ for i=1,nofaxis do
+ values[i] = {
+ axis = axis[i].tag,
+ value = readfixed(f),
+ }
+ end
+ local psnameid = readpsname and readushort(f) or 0xFFFF
+ if subfamid == 2 or subfamid == 17 then
+ -- okay
+ elseif subfamid == 0xFFFF then
+ subfamid = nil
+ elseif subfamid <= 256 or subfamid >= 32768 then
+ subfamid = nil -- actually an error
+ end
+ if psnameid == 6 then
+ -- okay
+ elseif psnameid == 0xFFFF then
+ psnameid = nil
+ elseif psnameid <= 256 or psnameid >= 32768 then
+ psnameid = nil -- actually an error
+ end
+ instances[i] = {
+ -- flags = flags,
+ subfamily = extras[subfamid],
+ psname = psnameid and extras[psnameid] or nil,
+ values = values,
+ }
+ if skippable > 0 then
+ skipbytes(f,skippable)
+ end
+ end
+ setvariabledata(fontdata,"axis",axis)
+ setvariabledata(fontdata,"instances",instances)
+ end
+end
+
+local function calculate(f,fontdata,specification,offset,field,regions,deltas,nozero)
+ --
+ -- innerIndexBitCountMask = 0x000F
+ -- mapEntrySizeMask = 0x0030
+ -- reservedFlags = 0xFFC0
+ --
+ -- outerIndex = entry >> ((entryFormat & innerIndexBitCountMask) + 1)
+ -- innerIndex = entry & ((1 << ((entryFormat & innerIndexBitCountMask) + 1)) - 1)
+ --
+ setposition(f,offset)
+ local format = readushort(f) -- todo: check
+ local mapcount = readushort(f)
+ -- local entrysize = rshift(band(format,0x0030),4) + 1
+ local entrysize = (((format & 0x0030) >> 4) & 0xFFFFFFFF) + 1
+ local nofinnerbits = (format & 0x000F) + 1 -- n of inner bits
+ -- local innermask = lshift(1,nofinnerbits) - 1
+ local innermask = (1 << nofinnerbits) - 1
+ local readcardinal = read_cardinal[entrysize] -- 1 upto 4 bytes
+ local innerindex = { } -- size is mapcount
+ local outerindex = { } -- size is mapcount
+ for i=0,mapcount-1 do
+ local mapdata = readcardinal(f)
+ -- outerindex[i] = rshift(mapdata,nofinnerbits)
+ outerindex[i] = (mapdata >> nofinnerbits) & 0xFFFFFFFF
+ innerindex[i] = (mapdata & innermask)
+ end
+ -- use last entry when no match i
+ setvariabledata(fontdata,"hvarwidths",true)
+ local glyphs = fontdata.glyphs
+ for i=0,fontdata.nofglyphs-1 do
+ local glyph = glyphs[i]
+ local outer = outerindex[i] or 0
+ local inner = innerindex[i] or i
+ if outer and inner then -- not needed
+ local delta = deltas[outer+1]
+ if delta then
+ local d = delta.deltas[inner+1]
+ if d then
+ local scales = delta.scales
+ local deltaw = field and glyph[field] or 0
+ for i=1,#scales do
+ local di = d[i]
+ if di then
+ deltaw = deltaw + scales[i] * di
+ else
+ break -- can't happen
+ end
+ end
+ deltaw = round(deltaw)
+ if nozero and deltaw == 0 then
+ -- no need for dlsb zero
+ else
+ glyph[field] = deltaw
+ end
+ end
+ end
+ end
+ end
+end
+
+-- Todo: when it's tested for a while the lsb hackery can be backported from the
+-- font-dsp.lmt file.
+
+function readers.hvar(f,fontdata,specification)
+ local factors = specification.factors
+ if not factors then
+ return
+ end
+ local tableoffset = gotodatatable(f,fontdata,"hvar",specification.variable)
+ if not tableoffset then
+ -- report("no hvar table, expect problems due to messy widths")
+ return
+ end
+ local version = readulong(f) -- 0x00010000
+ local variationoffset = tableoffset + readulong(f) -- the store
+ local advanceoffset = tableoffset + readulong(f)
+ local lsboffset = tableoffset + readulong(f)
+ local rsboffset = tableoffset + readulong(f)
+ if variationoffset > tableoffset then
+ local regions, deltas = readvariationdata(f,variationoffset,factors)
+ if regions then
+ if advanceoffset > tableoffset then
+ calculate(f,fontdata,specification,advanceoffset,"width",regions,deltas,false)
+ end
+ -- I don't want to save the lsb as it is the llx that we already store but as
+ -- we're ahead of reading the bounding box so we cannot set the right lsb here
+ -- so we set the delta (d) instead.
+ if lsboffset > tableoffset then
+ calculate(f,fontdata,specification,lsboffset,"dlsb",regions,deltas,true) -- delta lsb
+ end
+ -- if rsboffset > tableoffset then
+ -- -- we don't use right side bearings
+ -- end
+ -- setvariabledata(fontdata,"hregions",regions)
+ end
+
+ end
+
+end
+
+function readers.vvar(f,fontdata,specification)
+ if not specification.variable then
+ return
+ end
+end
+
+function readers.mvar(f,fontdata,specification)
+ local tableoffset = gotodatatable(f,fontdata,"mvar",specification.variable)
+ if tableoffset then
+ local version = readulong(f) -- 0x00010000
+ local reserved = skipshort(f,1)
+ local recordsize = readushort(f)
+ local nofrecords = readushort(f)
+ local offsettostore = tableoffset + readushort(f)
+ local dimensions = { }
+ local factors = specification.factors
+ if factors then
+ local regions, deltas = readvariationdata(f,offsettostore,factors)
+ for i=1,nofrecords do
+ local tag = readtag(f)
+ local var = variabletags[tag]
+ if var then
+ local outer = readushort(f)
+ local inner = readushort(f)
+ local delta = deltas[outer+1]
+ if delta then
+ local d = delta.deltas[inner+1]
+ if d then
+ local scales = delta.scales
+ local dd = 0
+ for i=1,#scales do
+ dd = dd + scales[i] * d[i]
+ end
+ var(fontdata,round(dd))
+ end
+ end
+ else
+ skipshort(f,2)
+ end
+ if recordsize > 8 then -- 4 + 2 + 2
+ skipbytes(recordsize-8)
+ end
+ end
+ end
+ -- setvariabledata(fontdata,"mregions",regions)
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-emp.mklx b/Master/texmf-dist/tex/context/base/mkxl/font-emp.mklx
index 1e30e701264..dfb97426cda 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-emp.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-emp.mklx
@@ -38,7 +38,7 @@
%D
%D or even better:
-\let\m_font_emphasized_typeface\empty
+\lettonothing\m_font_emphasized_typeface
\def\font_emphasis_checked_typeface#slanted#italic%
{\edef\m_font_emphasized_typeface{\font_bodyfontvariable\s!em}%
@@ -55,28 +55,45 @@
\permanent\protected\def\emphasistypeface{\font_emphasis_checked_typeface\sl\it}
\permanent\protected\def\emphasisboldface{\font_emphasis_checked_typeface\bs\bi}
-\permanent\protected\def\normalboldface % public
+\permanent\protected\def\normalboldface % public, upgraded from mkvi / WS
{\relax
+ \ifx\fontalternative\s!tf\bf\orelse
\ifx\fontalternative\s!it\bi\orelse
- \ifx\fontalternative\s!sl\bs\else
+ \ifx\fontalternative\s!sl\bs\orelse
+ \ifx\fontalternative\s!bf \orelse
+ \ifx\fontalternative\s!bi \orelse
+ \ifx\fontalternative\s!bs \else
\bf\fi}
-\permanent\protected\def\normalitalicface % public
+\permanent\protected\def\normalitalicface % public, upgraded from mkvi
{\relax
\ifx\fontalternative\s!tf\it\orelse
- \ifx\fontalternative\s!bf\bi\else
- \tf\fi}
-
-\permanent\protected\def\normalslantedface % public
- {\relax \ifx\fontalternative\s!tf\sl
- \orelse\ifx\fontalternative\s!bf\bs
- \else \tf\fi}
-
-\permanent\protected\def\normaltypeface % public
+ \ifx\fontalternative\s!it \orelse
+ \ifx\fontalternative\s!sl\it\orelse
+ \ifx\fontalternative\s!bf\bi\orelse
+ \ifx\fontalternative\s!bi\bi\orelse
+ \ifx\fontalternative\s!bs\bi\else
+ \it\fi}
+
+\permanent\protected\def\normalslantedface % public, upgraded from mkvi
{\relax
- \ifx\fontalternative\s!bi \it \orelse
- \ifx\fontalternative\s!bs \sl \else
- \tf \fi}
+ \ifx\fontalternative\s!tf\sl\orelse
+ \ifx\fontalternative\s!it\sl\orelse
+ \ifx\fontalternative\s!sl \orelse
+ \ifx\fontalternative\s!bf\bs\orelse
+ \ifx\fontalternative\s!bi\bs\orelse
+ \ifx\fontalternative\s!bs\bs\else
+ \sl\fi}
+
+\permanent\protected\def\normaltypeface % public, upgraded from mkvi
+ {\relax
+ \ifx\fontalternative\s!tf \orelse
+ \ifx\fontalternative\s!it\tf\orelse
+ \ifx\fontalternative\s!sl\tf\orelse
+ \ifx\fontalternative\s!bf \orelse
+ \ifx\fontalternative\s!bi\bf\orelse
+ \ifx\fontalternative\s!bs\bf\else
+ \tf\fi}
\permanent\protected\def\swaptypeface % public
{\relax
@@ -93,6 +110,43 @@
\aliased\let\italicface \normalitalicface % public
\aliased\let\swapface \swaptypeface % public
+%D \startbuffer[demo]
+%D \starttabulate[|l|c|c|c|c|c|c|c|]
+%D \NC \NC \tex{tf} \NC \tex{it} \NC \tex{sl} \NC \tex{bf}
+%D \NC \tex{bi} \NC \tex{bs} \NC \tex{sc} \NC \NR
+%D \NC \NC \tf txt \NC \it txt \NC \sl txt \NC \bf txt
+%D \NC \bi txt \NC \bs txt \NC \sc txt \NC \NR
+%D \NC \tex{typeface} \NC \tf \typeface txt \NC \it \typeface txt \NC \sl \typeface txt \NC \bf \typeface txt
+%D \NC \bi \typeface txt \NC \bs \typeface txt \NC \sc \typeface txt \NC \NR
+%D \NC \tex{boldface} \NC \tf \boldface txt \NC \it \boldface txt \NC \sl \boldface txt \NC \bf \boldface txt
+%D \NC \bi \boldface txt \NC \bs \boldface txt \NC \sc \boldface txt \NC \NR
+%D \NC \tex{slantedface} \NC \tf \slantedface txt \NC \it \slantedface txt \NC \sl \slantedface txt \NC \bf \slantedface txt
+%D \NC \bi \slantedface txt \NC \bs \slantedface txt \NC \sc \slantedface txt \NC \NR
+%D \NC \tex{italicface} \NC \tf \italicface txt \NC \it \italicface txt \NC \sl \italicface txt \NC \bf \italicface txt
+%D \NC \bi \italicface txt \NC \bs \italicface txt \NC \sc \italicface txt \NC \NR
+%D \NC \tex{swapface} \NC \tf \swapface txt \NC \it \swapface txt \NC \sl \swapface txt \NC \bf \swapface txt
+%D \NC \bi \swapface txt \NC \bs \swapface txt \NC \sc \swapface txt \NC \NR
+%D \stoptabulate
+%D \stopbuffer
+%D
+%D {\small \typebuffer[demo]}
+%D
+%D This gives:
+%D
+%D \getbuffer[demo]
+%D
+%D But with:
+%D
+%D \startbuffer
+%D \setupbodyfontenvironment [default] [em=blue] % affects \swapface
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D We get:
+%D
+%D {\getbuffer\getbuffer[demo]}
+
%D To be set with the default body font environment: \type {em} being \type
%D {slanted} or \type {italic}.
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-fbk.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-fbk.lmt
index 47d284c845c..bdc5265aeaa 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-fbk.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-fbk.lmt
@@ -17,7 +17,7 @@ local next = next
local trace_visualize = false trackers.register("fonts.composing.visualize", function(v) trace_visualize = v end)
local trace_define = false trackers.register("fonts.composing.define", function(v) trace_define = v end)
-local report = logs.reporter("fonts","combining")
+local report = logs.reporter("fonts","composing")
local allocate = utilities.storage.allocate
@@ -50,6 +50,73 @@ local fraction = 0.15 -- 30 units for lucida
-- todo: we also need to update the feature hashes ... i'll do that when i'm in the mood
-- and/or when i need it
+-- \starttext
+-- \definefontfeature[default][default][fakecombining=yes,compose=yes]
+-- \setupbodyfont[minion]
+-- [x][\char"2D9][x][\char"323] ṭḍṃḥ
+-- \stoptext
+
+local missing = {
+ -- [0x323] = { kind = "bottom", top = 0x307 }, -- dot below
+ [0x323] = { kind = "bottom", top = 0x2D9 }, -- dot below
+ --
+ -- TODO
+ --
+}
+
+local function fakecharacters(tfmdata,value)
+ if value then
+ local characters = tfmdata.characters
+ local descriptions = tfmdata.descriptions
+ for unicode, detail in next, missing do
+ local c = characters[k]
+ if not c then
+ local kind = detail.kind
+ if kind == "bottom" then
+ local u = detail.top
+ local d = characters[u]
+ if d then
+ local ex = tfmdata.parameters.xheight
+ characters[unicode] = {
+ width = d.width,
+ height = 0,
+ depth = ex/2,
+ commands = { { "offset", 0, -d.height - ex/5 , u } },
+ unicode = unicode,
+ }
+ -- we need this for the composer
+ local d = descriptions[u]
+ local x = descriptions[0x78]
+ if d and x then
+ local t = table.copy(d)
+ local x = -x.boundingbox[4]/2
+ local b = t.boundingbox
+ b[2] = x
+ b[4] = x
+ descriptions[unicode] = t
+ end
+ if trace then
+ report("deriving %C from %C",unicode,u)
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+local specification = {
+ name = "fakecombining",
+ description = "add missing combining accents",
+ manipulators = {
+ -- position = 1, -- todo: just before compose
+ base = fakecharacters,
+ node = fakecharacters,
+ }
+}
+
+fonts.handlers.otf.features.register(specification)
+
local function composecharacters(tfmdata)
-- this assumes that slot 1 is self, there will be a proper self some day
local characters = tfmdata.characters
@@ -110,8 +177,10 @@ local function composecharacters(tfmdata)
report("composed %C, base %C, accent %C",i,chr,acc)
end
local acc_t = charcommand[acc]
- local cb = descriptions[chr].boundingbox
- local ab = descriptions[acc].boundingbox
+ local cb = descriptions[chr]
+ local ab = descriptions[acc]
+ local cb = cb and cb.boundingbox
+ local ab = ab and ab.boundingbox
-- todo: adapt height
if cb and ab then
local c_llx = scale*cb[1]
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-fea.mklx b/Master/texmf-dist/tex/context/base/mkxl/font-fea.mklx
index 9f4d2119e99..3e6a4b2eb38 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-fea.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-fea.mklx
@@ -136,12 +136,10 @@
% beware: these are global features on top of existing font features
-\mutable\let\currentfeature\s!current
-
-\let\m_font_feature_list \s!current
-\let\m_font_feature_asked\empty
-
-\newconstant\c_font_feature_state
+\mutable\let \currentfeature \s!current
+\let \m_font_feature_list \s!current
+\lettonothing\m_font_feature_asked
+\newconstant \c_font_feature_state
\newevery\everyfontfeatureswitch
@@ -193,7 +191,7 @@
\the\everyfontfeatureswitch}
\protected\def\font_feature_replace
- {\ifnum\c_font_feature_state=\zerocount
+ {\ifzero\c_font_feature_state
\ifx\m_font_feature_asked\currentfeature\else
\font_feature_replace_indeed
\fi
@@ -214,9 +212,9 @@
\fi}
\protected\def\font_feature_reset_indeed
- {\let\m_font_feature_asked\empty
- \let\currentfeature \s!current
- \let\m_font_feature_list \s!current
+ {\lettonothing\m_font_feature_asked
+ \let\currentfeature\s!current
+ \let\m_font_feature_list\s!current
\clf_resetfeature}
\permanent\protected\def\revivefeature
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-fil.mklx b/Master/texmf-dist/tex/context/base/mkxl/font-fil.mklx
index 57ed47fa287..79535ea112d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-fil.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-fil.mklx
@@ -44,7 +44,7 @@
\permanent\protected\tolerant\protected\def\startfontclass[#class]%
{\push_macro_fontclass
\doifelse{#class}\v!each
- {\let\fontclass\empty}
+ {\lettonothing\fontclass}
{\doifsomething{#class}{\def\fontclass{#class}}}}
\permanent\protected\def\stopfontclass
@@ -65,8 +65,8 @@
\installcorenamespace {fontfile} % file synonyms
-\let\m_font_name\empty
-\let\m_font_file\empty
+\lettonothing\m_font_name
+\lettonothing\m_font_file
\mutable\def\defaultfontfile{\truefontname{Normal}} % was cmtt10, but that one is gone
@@ -141,7 +141,7 @@
% \def\fntsetdefname {\glet\somefontname\defaultfontfile}
% \def\fntsetsomename{\gdef\somefontname} % takes argument
-% \def\fntsetnopsize {\let\somefontsize\empty}
+% \def\fntsetnopsize {\lettonothing\somefontsize}
% \def\fntsetsomesize{\def\somefontsize} % takes argument
% happens later, else mkvi parsing gets into troubles
@@ -272,8 +272,8 @@
%D model and at that time we still defaulted to no model at all. Nowadays we default
%D to the \type {modern} fontclass.
-\let\fontclass \empty
-\let\defaultfontclass\empty
+\lettonothing\fontclass
+\lettonothing\defaultfontclass
\permanent\def\fontclassname#class#name% tricky ... no lastnamedcs here due to nesting
{\ifcsname\??fontfile#class#name\endcsname
@@ -307,48 +307,48 @@
\ifcsname\??fontfile #name\s!features\endcsname \edef\m_font_features{\lastnamedcs}\orelse % symbolic_name
\ifcsname\??fontfile\fontclass#name\endcsname \expandafter\font_helpers_set_features_yes\lastnamedcs \orelse % class + parent_name
\ifcsname\??fontfile #name\endcsname \expandafter\font_helpers_set_features_yes\lastnamedcs \else % parent_name
- \let\m_font_features\empty\fi}
+ \lettonothing\m_font_features\fi}
\def\font_helpers_set_fallbacks_yes#name%
{\ifcsname\??fontfile\fontclass#name\s!fallbacks\endcsname \edef\m_font_fallbacks{\lastnamedcs}\orelse
\ifcsname\??fontfile #name\s!fallbacks\endcsname \edef\m_font_fallbacks{\lastnamedcs}\orelse
\ifcsname\??fontfile\fontclass#name\endcsname \expandafter\font_helpers_set_fallbacks_yes\lastnamedcs \orelse
\ifcsname\??fontfile #name\endcsname \expandafter\font_helpers_set_fallbacks_yes\lastnamedcs \else
- \let\m_font_fallbacks\empty\fi}
+ \lettonothing\m_font_fallbacks\fi}
\def\font_helpers_set_goodies_yes#name%
{\ifcsname\??fontfile\fontclass#name\s!goodies \endcsname \edef\m_font_goodies{\lastnamedcs}\orelse
\ifcsname\??fontfile #name\s!goodies \endcsname \edef\m_font_goodies{\lastnamedcs}\orelse
\ifcsname\??fontfile\fontclass#name\endcsname \expandafter\font_helpers_set_goodies_yes\lastnamedcs \orelse
\ifcsname\??fontfile #name\endcsname \expandafter\font_helpers_set_goodies_yes\lastnamedcs \else
- \let\m_font_goodies\empty\fi}
+ \lettonothing\m_font_goodies\fi}
\def\font_helpers_set_designsize_yes#name%
{\ifcsname\??fontfile\fontclass#name\s!designsize\endcsname \edef\m_font_designsize{\lastnamedcs}\orelse
\ifcsname\??fontfile #name\s!designsize\endcsname \edef\m_font_designsize{\lastnamedcs}\orelse
\ifcsname\??fontfile\fontclass#name\endcsname \expandafter\font_helpers_set_designsize_yes\lastnamedcs \orelse
\ifcsname\??fontfile #name\endcsname \expandafter\font_helpers_set_designsize_yes\lastnamedcs \else
- \let\m_font_designsize\empty\fi}
+ \lettonothing\m_font_designsize\fi}
\def\font_helpers_set_features_nop#name%
{\ifcsname\??fontfile#name\s!features\endcsname \edef\m_font_features{\lastnamedcs}\orelse
\ifcsname\??fontfile#name\endcsname \expandafter\font_helpers_set_features_nop\lastnamedcs \else
- \let\m_font_features\empty\fi}
+ \lettonothing\m_font_features\fi}
\def\font_helpers_set_fallbacks_nop#name%
{\ifcsname\??fontfile#name\s!fallbacks\endcsname \edef\m_font_fallbacks{\lastnamedcs}\orelse
\ifcsname\??fontfile#name\endcsname \expandafter\font_helpers_set_fallbacks_nop\lastnamedcs \else
- \let\m_font_fallbacks\empty\fi}
+ \lettonothing\m_font_fallbacks\fi}
\def\font_helpers_set_goodies_nop#name%
{\ifcsname\??fontfile#name\s!goodies\endcsname \edef\m_font_goodies{\lastnamedcs}\orelse
\ifcsname\??fontfile#name\endcsname \expandafter\font_helpers_set_goodies_nop\lastnamedcs \else
- \let\m_font_goodies\empty\fi}
+ \lettonothing\m_font_goodies\fi}
\def\font_helpers_set_designsize_nop#name%
{\ifcsname\??fontfile#name\s!designsize\endcsname \edef\m_font_designsize{\lastnamedcs}\orelse
\ifcsname\??fontfile#name\endcsname \expandafter\font_helpers_set_designsize_nop\lastnamedcs \else
- \let\m_font_designsize\empty\fi}
+ \lettonothing\m_font_designsize\fi}
\def\font_helpers_update_font_parameters_yes
{\font_helpers_set_features_yes \somefontname
@@ -379,6 +379,6 @@
% bonus
-% \currentfontinstancespec % define ad the lua end
+% \currentfontinstancespec % defined at the lua end
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-fmp.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-fmp.lmt
index f35c96f49ed..dc70a70e842 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-fmp.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-fmp.lmt
@@ -8,8 +8,13 @@ if not modules then modules = { } end modules ['font-fmp'] = {
-- We only need to pick up the filename and optionally the enc file as we only use
-- them for old school virtual math fonts. We might as well drop this completely.
--- This used to be a backend module but the code is rather generic so we just put it
--- here now.
+-- This used to be a backend module but the code is rather generic so for now we
+-- just put it here.
+--
+-- As Type 1 is kind of obsolete I don't expect usage of those fonts in ways that
+-- are not yet covered. Actually, we don't need map files at all because we read the
+-- afm files. Maybe for math but there at some point we'll ditch the virtual old
+-- school variants because afaik ConTeXt users are not using these any longer.
local find, match, splitlines = string.find, string.match, string.splitlines
@@ -99,7 +104,10 @@ function mappings.loadline(how,line)
end
function mappings.reset()
- lpdf.setmapfile("") -- tricky ... backend related
+ local setmapfile = lpdf and lpdf.setmapfile
+ if setmapfile then
+ setmapfile("") -- tricky ... backend related
+ end
end
mappings.getentry = getentry
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-hsh.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-hsh.lmt
new file mode 100644
index 00000000000..594f4733274
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-hsh.lmt
@@ -0,0 +1,397 @@
+if not modules then modules = { } end modules ['font-hsh'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local rawget = rawget
+
+local setmetatableindex = table.setmetatableindex
+local currentfont = font and font.current -- used in the web service
+local allocate = utilities.storage.allocate
+
+local fonts = fonts
+local hashes = fonts.hashes or allocate()
+fonts.hashes = hashes
+
+-- todo: autoallocate ... just create on the fly .. use constructors.keys (problem: plurals)
+
+local identifiers = hashes.identifiers or allocate()
+local characters = hashes.characters or allocate() -- chardata
+local descriptions = hashes.descriptions or allocate()
+local parameters = hashes.parameters or allocate()
+local mathparameters = hashes.mathparameters or allocate()
+local properties = hashes.properties or allocate()
+local resources = hashes.resources or allocate()
+local spacings = hashes.spacings or allocate()
+local spaces = hashes.spaces or allocate()
+local quads = hashes.quads or allocate() -- maybe also spacedata
+local xheights = hashes.xheights or allocate()
+local csnames = hashes.csnames or allocate() -- namedata
+local features = hashes.features or allocate()
+local marks = hashes.marks or allocate()
+local classes = hashes.classes or allocate()
+local italics = hashes.italics or allocate()
+local lastmathids = hashes.lastmathids or allocate()
+local dynamics = hashes.dynamics or allocate()
+local unicodes = hashes.unicodes or allocate()
+local unislots = hashes.unislots or allocate()
+local originals = hashes.originals or allocate()
+local modes = hashes.modes or allocate()
+local variants = hashes.variants or allocate()
+
+hashes.characters = characters
+hashes.descriptions = descriptions
+hashes.parameters = parameters
+hashes.mathparameters = mathparameters
+hashes.properties = properties
+hashes.resources = resources
+hashes.spacings = spacings
+hashes.spaces = spaces
+hashes.quads = quads hashes.emwidths = quads
+hashes.xheights = xheights hashes.exheights = xheights
+hashes.csnames = csnames
+hashes.features = features
+hashes.marks = marks
+hashes.classes = classes
+hashes.italics = italics
+hashes.lastmathids = lastmathids
+hashes.dynamics = dynamics
+hashes.unicodes = unicodes
+hashes.unislots = unislots
+hashes.originals = originals
+hashes.modes = modes
+hashes.variants = variants
+
+local nodepool = nodes and nodes.pool
+local dummyglyph = nodepool and nodepool.register(nodepool.glyph())
+
+local nulldata = allocate {
+ name = "nullfont",
+ characters = { },
+ descriptions = { },
+ properties = {
+ designsize = 786432, -- really ? maybe move to 655360 instead
+ },
+ parameters = { -- lmromanregular @ 12pt
+ slantperpoint = 0,
+ spacing = {
+ width = 256377,
+ stretch = 128188,
+ shrink = 85459,
+ extra = 85459,
+ },
+ quad = 786432,
+ size = 786432,
+ slant = 0, -- 1
+ space = 256377, -- 2
+ spacestretch = 128188, -- 3
+ spaceshrink = 85459, -- 4
+ xheight = 338952, -- 5
+ quad = 786432, -- 6
+ extraspace = 85459, -- 7
+ },
+}
+
+fonts.nulldata = nulldata
+
+fonts.constructors.enhanceparameters(nulldata.parameters) -- official copies for us
+
+setmetatableindex(identifiers, function(t,k)
+ return k == true and identifiers[currentfont()] or nulldata
+end)
+
+if font then
+
+ -- to be used
+
+ local define = font.define
+ local setfont = font.setfont
+ local frozen = font.frozen
+
+ function fonts.reserveid(fontdata)
+ return define(fontdata or nulldata)
+ end
+
+ function fonts.enhanceid(id,fontdata)
+ if not frozen(id) then
+ setfont(id,fontdata)
+ end
+ end
+
+end
+
+setmetatableindex(characters, function(t,k)
+ if k == true then
+ return characters[currentfont()]
+ else
+ local characters = identifiers[k].characters
+ t[k] = characters
+ return characters
+ end
+end)
+
+setmetatableindex(descriptions, function(t,k)
+ if k == true then
+ return descriptions[currentfont()]
+ else
+ local descriptions = identifiers[k].descriptions
+ t[k] = descriptions
+ return descriptions
+ end
+end)
+
+setmetatableindex(parameters, function(t,k)
+ if k == true then
+ return parameters[currentfont()]
+ else
+ local parameters = identifiers[k].parameters
+ t[k] = parameters
+ return parameters
+ end
+end)
+
+setmetatableindex(mathparameters, function(t,k)
+ if k == true then
+ return mathparameters[currentfont()]
+ else
+ local mathparameters = identifiers[k].mathparameters
+ t[k] = mathparameters
+ return mathparameters
+ end
+end)
+
+setmetatableindex(properties, function(t,k)
+ if k == true then
+ return properties[currentfont()]
+ else
+ local properties = identifiers[k].properties
+ t[k] = properties
+ return properties
+ end
+end)
+
+setmetatableindex(resources, function(t,k)
+ if k == true then
+ return resources[currentfont()]
+ else
+ local shared = identifiers[k].shared
+ local rawdata = shared and shared.rawdata
+ local resources = rawdata and rawdata.resources
+ t[k] = resources or false -- better than resolving each time
+ return resources
+ end
+end)
+
+setmetatableindex(features, function(t,k)
+ if k == true then
+ return features[currentfont()]
+ else
+ local shared = identifiers[k].shared
+ local features = shared and shared.features or { }
+ t[k] = features
+ return features
+ end
+end)
+
+local nospacing = {
+ width = 0,
+ stretch = 0,
+ shrink = 0,
+ extra = 0,
+}
+
+setmetatableindex(spacings, function(t,k)
+ if k == true then
+ return spacings[currentfont()]
+ else
+ local parameters = parameters[k]
+ local spacing = parameters and parameters.spacing or nospacing
+ t[k] = spacing
+ return spacing
+ end
+end)
+
+setmetatableindex(spaces, function(t,k)
+ if k == true then
+ return spaces[currentfont()]
+ else
+ local space = spacings[k].width
+ t[k] = space
+ return space
+ end
+end)
+
+setmetatableindex(marks, function(t,k)
+ if k == true then
+ return marks[currentfont()]
+ else
+ local resources = identifiers[k].resources or { }
+ local marks = resources.marks or { }
+ t[k] = marks
+ return marks
+ end
+end)
+
+setmetatableindex(classes, function(t,k)
+ if k == true then
+ return classes[currentfont()]
+ else
+ local resources = identifiers[k].resources or { }
+ local classes = resources.classes or { }
+ t[k] = classes
+ return classes
+ end
+end)
+
+setmetatableindex(quads, function(t,k)
+ if k == true then
+ return quads[currentfont()]
+ else
+ local parameters = rawget(parameters,k)
+ local quad
+ if parameters then
+ quad = parameters.quad
+ elseif dummyglyph then
+ dummyglyph.font = k
+ dummyglyph.char = 0x2014 -- emdash
+ quad = dummyglyph.width -- dirty trick
+ end
+ if not quad or quad == 0 then
+ quad = 655360 -- lm 10pt
+ end
+ t[k] = quad
+ return quad
+ end
+end)
+
+setmetatableindex(xheights, function(t,k)
+ if k == true then
+ return xheights[currentfont()]
+ else
+ local parameters = rawget(parameters,k)
+ local xheight
+ if parameters then
+ xheight = parameters.xheight
+ elseif dummyglyph then
+ dummyglyph.font = k
+ dummyglyph.char = 0x78 -- x
+ xheight = dummyglyph.height -- dirty trick
+ end
+ if not xheight or xheight == 0 then
+ xheight = 282460 -- lm 10pt
+ end
+ t[k] = xheight
+ return xheight
+ end
+end)
+
+setmetatableindex(italics, function(t,k) -- is test !
+ if k == true then
+ return italics[currentfont()]
+ else
+ local properties = identifiers[k].properties
+ local hasitalics = properties and properties.hasitalics
+ if hasitalics then
+ hasitalics = characters[k] -- convenient return
+ else
+ hasitalics = false
+ end
+ t[k] = hasitalics
+ return hasitalics
+ end
+end)
+
+setmetatableindex(dynamics, function(t,k)
+ if k == true then
+ return dynamics[currentfont()]
+ else
+ local shared = identifiers[k].shared
+ local dynamics = shared and shared.dynamics or false
+ t[k] = dynamics
+ return dynamics
+ end
+end)
+
+setmetatableindex(unicodes, function(t,k) -- always a unicode
+ if k == true then
+ return unicodes[currentfont()]
+ else
+ local resources = resources[k]
+ local unicodes = resources and resources.unicodes or { }
+ t[k] = unicodes
+ return unicodes
+ end
+end)
+
+setmetatableindex(originals, function(t,k) -- always a unicode
+ if k == true then
+ return originals[currentfont()]
+ else
+ local resolved = { }
+ setmetatableindex(resolved,function(t,name)
+ local u = unicodes[k][name]
+ local d = u and descriptions[k][u]
+ local v = d and d.unicode or u or 0 -- so we return notdef (at least for the moment)
+ t[name] = u
+ return v
+ end)
+ t[k] = resolved
+ return resolved
+ end
+end)
+
+setmetatableindex(unislots, function(t,k)
+ if k == true then
+ return unislots[currentfont()]
+ else
+ local characters = identifiers[k].characters
+ local resolved = setmetatableindex(function(t,k)
+ local c = characters[k]
+ local v = c and c.unicode or 0xFFFD
+ t[k] = v
+ return v -- can be a table !
+ end)
+ t[k] = resolved
+ return resolved
+ end
+end)
+
+setmetatableindex(modes, function(t,k)
+ if k == true then
+ return modes[currentfont()]
+ else
+ local mode = properties[k].mode or "base"
+ t[k] = mode
+ return mode
+ end
+end)
+
+setmetatableindex(variants, function(t,k)
+ if k == true then
+ return variants[currentfont()]
+ else
+ local resources = resources[k]
+ if resources then
+ local variants = resources.variants
+ if variants and next(variants) then
+ t[k] = variants
+ return variants
+ end
+ end
+ t[k] = false
+ return false
+ end
+end)
+
+if font then
+
+ function font.getfont(id)
+ return identifiers[id]
+ end
+
+end
+
+-- font.setfont = currentfont -- bah, no native 'setfont' as name
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-imp-braille.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-imp-braille.lmt
new file mode 100644
index 00000000000..79bb99f7c6a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-imp-braille.lmt
@@ -0,0 +1,135 @@
+if not modules then modules = { } end modules ['font-imp-braille'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA ADE",
+ copyright = "ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+if not context then return end
+
+-- require("char-brl.lmt") -- we delay this one
+
+-- we can omit spaces and tweak the math parameters instead
+
+-- callback.register("math_rule", function(kind,font,width,height,attr)
+-- return nodes.tonode(nodes.nuts.pool.rule(width,5*height,5*height))
+-- end)
+
+local braille = characters.braille -- so this one is nil
+
+local braille_math_rule do
+
+ local nuts = nodes.nuts
+ local tonut = nodes.tonut
+ local tonode = nodes.tonode
+ local nodepool = nuts.pool
+ local setattrlist = nuts.setattrlist
+ local hpack = nuts.hpack
+ -- local getwhd = nuts.getwhd
+ -- local setwhd = nuts.setwhd
+ -- local setoffsets = nuts.setoffsets
+ local newmathglyph = nuts.newmathglyph
+ local newleader = nodepool.leader
+
+ local braillerule
+
+ -- function(kind,font,width,height,attr)
+ -- return nodes.tonode(nodes.nuts.pool.rule(width,5*height,5*height))
+ -- end
+
+ braille_math_rule = function(kind,font,width,height,attr)
+ if not braillerule then
+ braillerule = braille.special("rule")
+ end
+ local attlst = tonut(attr)
+ local glyph = newmathglyph(font,braillerule,attlst)
+ local box = hpack(glyph)
+ --
+ -- local w, h, d = getwhd(box)
+ -- local t = (h + d) / 2
+ -- setwhd(box,w,t,t)
+ -- setoffsets(glyph,0,-t) -- setting the offset of the box messes up (visual) things
+ --
+ local leader = newleader(width,box)
+ local result = hpack(leader,width,"exactly")
+ setattrlist(leader,attlst)
+ return tonode(result)
+ end
+
+end
+
+local setmetatableindex = table.setmetatableindex
+
+local cache = table.setmetatableindex(function(t,w)
+ local v = table.setmetatableindex(function(t,u)
+ local v = { "offset", w, 0, u }
+ t[u] = v
+ return v
+ end)
+ t[w] = v
+ return v
+end)
+
+local function initialize(tfmdata,value)
+ if value then
+ if not braille then
+ require("char-brl.lmt")
+ braille = characters.braille
+ end
+ callback.register("math_rule", braille_math_rule)
+ local characters = tfmdata.characters
+ local numberdata = characters[braille.special("number")]
+ if numberdata then
+ local ismath = value ~= "text" and (value == "math" or tfmdata.mathparameters)
+ local list = ismath and braille.mathlist() or braille.textlist()
+ local unicode = ismath and braille.mathunicode or braille.textunicode
+ local width = numberdata.width
+ local height = numberdata.height
+ local depth = numberdata.depth
+ for i=1,#list do
+ local u = list[i]
+ local t = unicode(u)
+ local d = characters[u]
+ local w = 0
+ local c = { }
+ local n = #t
+ for i=1,n do
+ local ub = t[i]
+ local db = characters[ub]
+ if db then
+ c[i] = cache[w][ub]
+ w = w + width
+ end
+ end
+ if d then
+ d.width = n * width
+ d.height = height
+ d.depth = depth
+ d.commands = c
+ d.smaller = nil
+ else
+ characters[u] = {
+ width = n * width,
+ height = height,
+ depth = depth,
+ commands = c,
+ unicode = u,
+ }
+ end
+ end
+ characters[0xAD] = characters[45]
+ end
+ end
+end
+
+local specification = {
+ name = "braille",
+ description = "braille",
+ manipulators = {
+ base = initialize,
+ node = initialize,
+ }
+}
+
+fonts.handlers.otf.features.register(specification)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-imp-checks.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-imp-checks.lmt
new file mode 100644
index 00000000000..120f89c492e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-imp-checks.lmt
@@ -0,0 +1,40 @@
+if not modules then modules = { } end modules ['font-imp-checks'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA ADE",
+ copyright = "ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+if not context then return end
+
+local function initialize(tfmdata,value)
+ if value then
+ local characters = tfmdata.characters
+ if not characters[0x2012] then
+ local data = characters[0x2013]
+ local zero = characters[0x0030]
+ if data and zero then
+ local copy = table.copy(data)
+ local width = zero.width or 0
+ if width > 0 then
+ characters[0x2012] = copy
+ copy.effect = {
+ extend = width/copy.width
+ }
+ copy.width = width
+ end
+ end
+ end
+ end
+end
+
+fonts.handlers.otf.features.register {
+ name = "checkmissing",
+ description = "checkmissing",
+ manipulators = {
+ base = initialize,
+ node = initialize,
+ }
+}
+
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-imp-digits.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-imp-digits.lmt
new file mode 100644
index 00000000000..b350b774552
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-imp-digits.lmt
@@ -0,0 +1,62 @@
+if not modules then modules = { } end modules ['font-imp-digits'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA ADE",
+ copyright = "ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+if not context then return end
+
+local equaldigits = { }
+
+-- for i=48,57 do
+-- equaldigits[i] = fonts.helpers.newprivateslot(tonumber(i)..".equaldigits")
+-- end
+
+local function initialize(tfmdata,value)
+ if value then
+ local characters = tfmdata.characters
+ local wd, ht, dp = 0, 0, 0
+ for i=48,57 do
+ if not equaldigits[i] then
+ equaldigits[i] = fonts.helpers.newprivateslot(tonumber(i)..".equaldigits")
+ end
+ local c = characters[i]
+ local w = c.width or 0
+ local h = c.height or 0
+ local d = c.depth or 0
+ if w > wd then wd = w end
+ if h > ht then ht = h end
+ if d > dp then dp = d end
+ end
+ for i=48,57 do
+ -- fonts.helpers.addprivate(tfmdata,tonumber(i)..".equaldigits")
+ local u = equaldigits[i]
+ local c = characters[i]
+ characters[u] = table.setmetatableindex( {
+ height = ht,
+ depth = dp,
+ width = wd,
+ xoffset = (wd - (c.width or 0)) / 2,
+ }, c)
+ end
+ end
+end
+
+fonts.handlers.otf.features.register {
+ name = "equaldigits",
+ description = "equaldigits",
+ manipulators = {
+ base = initialize,
+ node = initialize,
+ }
+}
+
+fonts.handlers.otf.addfeature {
+ -- name = "tnum", -- let's not waste that one
+ name = "tabledigits",
+ type = "substitution",
+ nocheck = true,
+ data = equaldigits,
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-imp-effects.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-imp-effects.lmt
new file mode 100644
index 00000000000..f366bc89ed8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-imp-effects.lmt
@@ -0,0 +1,348 @@
+if not modules then modules = { } end modules ['font-imp-effects'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- todo: pickup from goodies: if type(effect) then ...
+
+local next, type, tonumber = next, type, tonumber
+local is_boolean = string.is_boolean
+
+local fonts = fonts
+
+local handlers = fonts.handlers
+local registerotffeature = handlers.otf.features.register
+local registerafmfeature = handlers.afm.features.register
+
+local settings_to_hash = utilities.parsers.settings_to_hash_colon_too
+
+local report_effect = logs.reporter("fonts","effect")
+local report_slant = logs.reporter("fonts","slant")
+local report_extend = logs.reporter("fonts","extend")
+local report_squeeze = logs.reporter("fonts","squeeze")
+
+local trace = false
+
+trackers.register("fonts.effect", function(v) trace = v end)
+trackers.register("fonts.slant", function(v) trace = v end)
+trackers.register("fonts.extend", function(v) trace = v end)
+trackers.register("fonts.squeeze",function(v) trace = v end)
+
+local function initializeslant(tfmdata,value)
+ value = tonumber(value)
+ if not value then
+ value = 0
+ elseif value > 1 then
+ value = 1
+ elseif value < -1 then
+ value = -1
+ end
+ if trace then
+ report_slant("applying %0.3f",value)
+ end
+ tfmdata.parameters.slantfactor = value
+end
+
+local specification = {
+ name = "slant",
+ description = "slant glyphs",
+ initializers = {
+ base = initializeslant,
+ node = initializeslant,
+ }
+}
+
+registerotffeature(specification)
+registerafmfeature(specification)
+
+local function initializeextend(tfmdata,value)
+ value = tonumber(value)
+ if not value then
+ value = 0
+ elseif value > 10 then
+ value = 10
+ elseif value < -10 then
+ value = -10
+ end
+ if trace then
+ report_extend("applying %0.3f",value)
+ end
+ tfmdata.parameters.extendfactor = value
+end
+
+local specification = {
+ name = "extend",
+ description = "scale glyphs horizontally",
+ initializers = {
+ base = initializeextend,
+ node = initializeextend,
+ }
+}
+
+registerotffeature(specification)
+registerafmfeature(specification)
+
+local function initializesqueeze(tfmdata,value)
+ value = tonumber(value)
+ if not value then
+ value = 0
+ elseif value > 10 then
+ value = 10
+ elseif value < -10 then
+ value = -10
+ end
+ if trace then
+ report_squeeze("applying %0.3f",value)
+ end
+ tfmdata.parameters.squeezefactor = value
+end
+
+local specification = {
+ name = "squeeze",
+ description = "scale glyphs vertically",
+ initializers = {
+ base = initializesqueeze,
+ node = initializesqueeze,
+ }
+}
+
+registerotffeature(specification)
+registerafmfeature(specification)
+
+local effects = {
+ inner = 0,
+ normal = 0,
+ outer = 1,
+ outline = 1,
+ both = 2,
+ hidden = 3,
+}
+
+local rules = {
+ "RadicalRuleThickness",
+ "OverbarRuleThickness",
+ "FractionRuleThickness",
+ "UnderbarRuleThickness",
+}
+
+-- radicals are not yet ok
+
+local function setmathparameters(tfmdata,characters,mathparameters,dx,dy,squeeze,multiplier)
+ -- hm, this was "if delta ~= 0 then" but delta was gone
+ if dy ~= 0 then
+ for i=1,#rules do
+ local name = rules[i]
+ local value = mathparameters[name]
+ if value then
+ mathparameters[name] = (squeeze or 1) * (value + dy)
+ end
+ end
+ end
+end
+
+local function initializeeffect(tfmdata,value)
+ local spec
+ if type(value) == "number" then
+ spec = { width = value }
+ else
+ spec = settings_to_hash(value)
+ end
+ local effect = spec.effect or "both"
+ local width = tonumber(spec.width) or 0
+ local mode = effects[effect]
+ if not mode then
+ report_effect("invalid effect %a",effect)
+ elseif width == 0 and mode == 0 then
+ report_effect("invalid width %a for effect %a",width,effect)
+ else
+ local parameters = tfmdata.parameters
+ local properties = tfmdata.properties
+ parameters.mode = mode
+ parameters.width = width * 1000
+ if is_boolean(spec.auto) == true then
+ local squeeze = 1 - width/20
+ local average = (1 - squeeze) * width * 100
+ spec.squeeze = squeeze
+ spec.extend = 1 + width/2
+ spec.wdelta = average
+ spec.hdelta = average/2
+ spec.ddelta = average/2
+ spec.vshift = average/2
+ end
+ local factor = tonumber(spec.factor) or 0
+ local hfactor = tonumber(spec.hfactor) or factor
+ local vfactor = tonumber(spec.vfactor) or factor
+ local delta = tonumber(spec.delta) or 1
+ local wdelta = tonumber(spec.wdelta) or delta
+ local hdelta = tonumber(spec.hdelta) or delta
+ local ddelta = tonumber(spec.ddelta) or hdelta
+ local vshift = tonumber(spec.vshift) or 0
+ local slant = spec.slant
+ local extend = spec.extend
+ local squeeze = spec.squeeze
+ if slant then
+ initializeslant(tfmdata,slant)
+ end
+ if extend then
+ initializeextend(tfmdata,extend)
+ end
+ if squeeze then
+ initializesqueeze(tfmdata,squeeze)
+ end
+ effect = {
+ effect = effect,
+ width = width,
+ factor = factor,
+ hfactor = hfactor,
+ vfactor = vfactor,
+ wdelta = wdelta,
+ hdelta = hdelta,
+ ddelta = ddelta,
+ vshift = vshift,
+ slant = tfmdata.parameters.slantfactor,
+ extend = tfmdata.parameters.extendfactor,
+ squeeze = tfmdata.parameters.squeezefactor,
+ }
+ properties.effect = effect
+ end
+end
+
+-- local show_effect = { "lua", function(f,c)
+-- report_effect("font id %i, char %C",f,c)
+-- inspect(fonts.hashes.characters[f][c])
+-- end }
+
+local function manipulateeffect(tfmdata)
+ local effect = tfmdata.properties.effect
+ if effect then
+ local characters = tfmdata.characters
+ local parameters = tfmdata.parameters
+ local mathparameters = tfmdata.mathparameters
+ local multiplier = effect.width * 100
+ local factor = parameters.factor
+ local hfactor = parameters.hfactor
+ local vfactor = parameters.vfactor
+ local wdelta = effect.wdelta * hfactor * multiplier
+ local hdelta = effect.hdelta * vfactor * multiplier
+ local ddelta = effect.ddelta * vfactor * multiplier
+ local vshift = effect.vshift * vfactor * multiplier
+ local squeeze = effect.squeeze
+ local hshift = wdelta / 2
+ local dx = multiplier * vfactor
+ local dy = vshift
+ local factor = (1 + effect.factor) * factor
+ local hfactor = (1 + effect.hfactor) * hfactor
+ local vfactor = (1 + effect.vfactor) * vfactor
+ parameters.hshift = hshift
+ parameters.vshift = vshift
+ --
+ -- For now we assume that the properties of parts wrt advance and such still
+ -- apply and that the extensible piece kicks in if needed. Beware of creating
+ -- virtual extensibles because these could get squeeze twice.
+ --
+ -- local allparts = { }
+ -- for unicode, character in next, characters do
+ -- local parts = character.parts
+ -- if parts then
+ -- for i=1,#parts do
+ -- allparts[parts[i].glyph] = true
+ -- end
+ -- end
+ -- end
+ --
+ for unicode, character in next, characters do
+ local oldwidth = character.width
+ local oldheight = character.height
+ local olddepth = character.depth
+ local olditalic = character.italic
+ local oldtopanchor = character.topanchor
+ local oldbottomanchor = character.bottomanchor
+ if oldwidth and oldwidth > 0 then
+ character.width = oldwidth + wdelta
+ end
+ if oldheight and oldheight > 0 then
+ character.height = oldheight + hdelta
+ end
+ if olddepth and olddepth > 0 then
+ character.depth = olddepth + ddelta
+ end
+ if olditalic or oldtopaccent or oldbottomaccent then
+ local factor = character.width / oldwidth
+ if olditalic and olditalic > 0 then
+ character.italic = olditalic * factor
+ end
+ if oldtopanchor and oldtopanchor > 0 then
+ character.topanchor = oldtopanchor * factor
+ end
+ if oldbottomanchor and oldbottomanchor > 0 then
+ character.bottomanchor = oldbottomanchor * factor
+ end
+ end
+ end
+ if mathparameters then
+ setmathparameters(tfmdata,characters,mathparameters,dx,dy,squeeze,multiplier)
+ end
+ parameters.factor = factor
+ parameters.hfactor = hfactor
+ parameters.vfactor = vfactor
+ if trace then
+ report_effect("applying")
+ report_effect(" effect : %s", effect.effect)
+ report_effect(" width : %s => %s", effect.width, multiplier)
+ report_effect(" factor : %s => %s", effect.factor, factor )
+ report_effect(" hfactor : %s => %s", effect.hfactor,hfactor)
+ report_effect(" vfactor : %s => %s", effect.vfactor,vfactor)
+ report_effect(" wdelta : %s => %s", effect.wdelta, wdelta)
+ report_effect(" hdelta : %s => %s", effect.hdelta, hdelta)
+ report_effect(" ddelta : %s => %s", effect.ddelta, ddelta)
+ end
+ end
+end
+
+local specification = {
+ name = "effect",
+ description = "apply effects to glyphs",
+ initializers = {
+ base = initializeeffect,
+ node = initializeeffect,
+ },
+ manipulators = {
+ base = manipulateeffect,
+ node = manipulateeffect,
+ },
+}
+
+registerotffeature(specification)
+registerafmfeature(specification)
+
+local function initializeoutline(tfmdata,value)
+ value = tonumber(value)
+ if not value then
+ value = 0
+ else
+ value = tonumber(value) or 0
+ end
+ local parameters = tfmdata.parameters
+ local properties = tfmdata.properties
+ parameters.mode = effects.outline
+ parameters.width = value * 1000
+ properties.effect = {
+ effect = effect,
+ width = width,
+ }
+end
+
+local specification = {
+ name = "outline",
+ description = "outline glyphs",
+ initializers = {
+ base = initializeoutline,
+ node = initializeoutline,
+ }
+}
+
+registerotffeature(specification)
+registerafmfeature(specification)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-imp-ligatures.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-imp-ligatures.lmt
new file mode 100644
index 00000000000..da5282428e8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-imp-ligatures.lmt
@@ -0,0 +1,158 @@
+if not modules then modules = { } end modules ['font-imp-ligatures'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- Not perfect (disc) but we have allternatives.
+
+local lpegmatch = lpeg.match
+local utfsplit = utf.split
+local settings_to_array = utilities.parsers.settings_to_array
+
+local fonts = fonts
+local otf = fonts.handlers.otf
+local registerotffeature = otf.features.register
+local addotffeature = otf.addfeature
+
+-- This is a quick and dirty hack.
+
+local lookups = { }
+local protect = { }
+local revert = { }
+local zwjchar = 0x200C
+local zwj = { zwjchar }
+
+addotffeature {
+ name = "blockligatures",
+ type = "chainsubstitution",
+ nocheck = true, -- because there is no 0x200C in the font
+ prepend = true, -- make sure we do it early
+ future = true, -- avoid nilling due to no steps yet
+ lookups = {
+ {
+ type = "multiple",
+ data = lookups,
+ },
+ },
+ data = {
+ rules = protect,
+ }
+}
+
+addotffeature {
+ name = "blockligatures",
+ type = "chainsubstitution",
+ nocheck = true, -- because there is no 0x200C in the font
+ append = true, -- this is done late
+ overload = false, -- we don't want to overload the previous definition
+ lookups = {
+ {
+ type = "ligature",
+ data = lookups,
+ },
+ },
+ data = {
+ rules = revert,
+ }
+}
+
+registerotffeature {
+ name = 'blockligatures',
+ description = 'block certain ligatures',
+}
+
+-- local splitter = lpeg.splitat(":")
+--
+-- local function blockligatures(str)
+-- local t = settings_to_array(str)
+-- for i=1,#t do
+-- local ti = t[i]
+-- local before, current, after = lpegmatch(splitter,ti)
+-- if current and after then -- before is returned when no match
+-- -- experimental joke
+-- if before then
+-- before = utfsplit(before)
+-- for i=1,#before do
+-- before[i] = { before[i] }
+-- end
+-- end
+-- if current then
+-- current = utfsplit(current)
+-- end
+-- if after then
+-- after = utfsplit(after)
+-- for i=1,#after do
+-- after[i] = { after[i] }
+-- end
+-- end
+-- else
+-- before = nil
+-- current = utfsplit(ti)
+-- after = nil
+-- end
+-- if #current > 1 then
+-- local one = current[1]
+-- local two = current[2]
+-- lookups[one] = { one, zwjchar }
+-- local one = { one }
+-- local two = { two }
+-- local new = #protect + 1
+-- protect[new] = {
+-- before = before,
+-- current = { one, two },
+-- after = after,
+-- lookups = { 1, false }, -- not shared !
+-- }
+-- revert[new] = {
+-- current = { one, zwj },
+-- after = { two },
+-- lookups = { 1, false }, -- not shared !
+-- }
+-- end
+-- end
+-- end
+
+local function blockligatures(str)
+ local t = settings_to_array(str)
+ for i=1,#t do
+ local ti = t[i]
+ local current = utfsplit(ti)
+ if #current > 1 then
+ local one = current[1]
+ local two = current[2]
+ lookups[one] = { one, zwjchar }
+ local one = { one }
+ local two = { two }
+ local new = #protect + 1
+ protect[new] = {
+ current = { one, two },
+ lookups = { 1, false }, -- not shared !
+ }
+ revert[new] = {
+ current = { one, zwj },
+ after = { two },
+ lookups = { 1, false }, -- not shared !
+ }
+ end
+ end
+end
+
+-- blockligatures("\0\0")
+
+otf.helpers.blockligatures = blockligatures
+
+-- blockligatures("fi,ff")
+-- blockligatures("fl")
+
+if context then
+
+ interfaces.implement {
+ name = "blockligatures",
+ arguments = "string",
+ actions = blockligatures,
+ }
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-imp-math.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-imp-math.lmt
index 277190f2410..bd445caeaa2 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-imp-math.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-imp-math.lmt
@@ -13,60 +13,62 @@ local helpers = fonts.helpers
local registerotffeature = fonts.handlers.otf.features.register
local setmetatableindex = table.setmetatableindex
+local sortedhash = table.sortedhash
+local copytable = table.copy
local texconditionals = tex.conditionals
-- tfmdata.properties.mathnolimitsmode = tonumber(value) or 0
-local splitter = lpeg.splitat(",",tonumber)
-local lpegmatch = lpeg.match
-
-local function initialize(tfmdata,value)
- local mathparameters = tfmdata.mathparameters
- if mathparameters then
- local sup, sub
- if type(value) == "string" then
- sup, sub = lpegmatch(splitter,value)
- if not sup then
- sub, sup = 0, 0
- elseif not sub then
- sub, sup = sup, 0
- end
- elseif type(value) == "number" then
- sup, sub = 0, value
- end
- if sup then
- mathparameters.NoLimitSupFactor = sup
- end
- if sub then
- mathparameters.NoLimitSubFactor = sub
- end
- end
-end
-
-registerotffeature {
- name = "mathnolimitsmode",
- description = "influence nolimits placement",
- initializers = {
- base = initialize,
- node = initialize,
- }
-}
-
--- this will become a mode in the engine
-
-local function initialize(tfmdata,value)
- tfmdata.properties.nostackmath = value and true
-end
+-- local splitter = lpeg.splitat(",",tonumber)
+-- local lpegmatch = lpeg.match
+--
+-- local function initialize(tfmdata,value)
+-- local mathparameters = tfmdata.mathparameters
+-- if mathparameters then
+-- local sup, sub
+-- if type(value) == "string" then
+-- sup, sub = lpegmatch(splitter,value) -- settings_to_array
+-- if not sup then
+-- sub, sup = 0, 0
+-- elseif not sub then
+-- sub, sup = sup, 0
+-- end
+-- elseif type(value) == "number" then
+-- sup, sub = 0, value
+-- end
+-- if sup then
+-- mathparameters.NoLimitSupFactor = sup
+-- end
+-- if sub then
+-- mathparameters.NoLimitSubFactor = sub
+-- end
+-- end
+-- end
+--
+-- registerotffeature {
+-- name = "mathnolimitsmode",
+-- description = "influence nolimits placement",
+-- initializers = {
+-- base = initialize,
+-- node = initialize,
+-- }
+-- }
-registerotffeature {
- name = "nostackmath",
- description = "disable math stacking mechanism",
- initializers = {
- base = initialize,
- node = initialize,
- }
-}
+-- this will become a mode in the engine -- done
+--
+-- local function initialize(tfmdata,value)
+-- tfmdata.properties.nostackmath = value and true
+-- end
+--
+-- registerotffeature {
+-- name = "nostackmath",
+-- description = "disable math stacking mechanism",
+-- initializers = {
+-- base = initialize,
+-- node = initialize,
+-- }
+-- }
-- A quick and dirty and low level implementation but okay for testing:
@@ -89,6 +91,7 @@ function fonts.helpers.mathscriptslots(tfmdata,textcode)
if coverage then
local okay = coverage[textcode]
if okay then
+ -- can be single or table
return okay
end
end
@@ -99,14 +102,14 @@ function fonts.helpers.mathscriptslots(tfmdata,textcode)
end
end
-local function manipulate(tfmdata,key,value)
- if texconditionals["c_font_compact"] then
+local function manipulate(tfmdata,value)
+ -- if texconditionals["c_font_compact"] then
+ if value then -- so basically always
local rawdata = tfmdata.shared.rawdata
local rawresources = rawdata and rawdata.resources
local rawfeatures = rawresources and rawresources.features
local basesubstitutions = rawfeatures and rawfeatures.gsub
local sequences = basesubstitutions and tfmdata.resources.sequences
-
if sequences then
local characters = tfmdata.characters
for s=1,#sequences do
@@ -120,15 +123,26 @@ local function manipulate(tfmdata,key,value)
for textcode, v in next, coverage do
local textdata = characters[textcode]
if textdata then
- local scriptcode = v[1]
- local scriptscriptcode = v[2]
- local scriptdata = characters[scriptcode]
- local scriptscriptdata = characters[scriptscriptcode]
- if scriptdata then
- textdata.smaller = scriptcode
+ local scriptcode, scriptscriptcode
+ local sstykind = type(v)
+ if sstykind == "table" then
+ scriptcode = v[1]
+ scriptscriptcode = v[2]
+ elseif sstykind == "number" then
+ scriptcode = v
+ scriptscriptcode = v
+ else
+ -- weird
end
- if scriptscriptdata then
- scriptdata.smaller = scriptscriptcode
+ if scriptcode then
+ local scriptdata = characters[scriptcode]
+ local scriptscriptdata = characters[scriptscriptcode]
+ if scriptdata and scriptdata ~= textdata then
+ textdata.smaller = scriptcode
+ if scriptscriptdata and scriptdata ~= scriptscriptdata then
+ scriptdata.smaller = scriptscriptcode
+ end
+ end
end
end
end
@@ -140,35 +154,45 @@ local function manipulate(tfmdata,key,value)
end
end
-local function initialize(tfmdata,key,value)
+local function initialize(tfmdata,value)
+ -- Here it really gets enabled as the scales are used.
if texconditionals["c_font_compact"] then
local rawdata = tfmdata.shared.rawdata
local rawresources = rawdata and rawdata.resources
local mathconstants = rawresources.mathconstants
if mathconstants then
local parameters = tfmdata.parameters
+ local properties = tfmdata.properties
parameters.textscale = 1000
parameters.scriptscale = mathconstants.ScriptPercentScaleDown * 10
parameters.scriptscriptscale = mathconstants.ScriptScriptPercentScaleDown * 10
+ properties.compactmath = true
end
end
end
-local specification = {
+-- local specification = {
+-- name = "compactmath",
+-- description = "use one math font",
+-- manipulators = {
+-- base = manipulate,
+-- node = manipulate,
+-- },
+-- initializers = {
+-- base = initialize,
+-- node = initialize,
+-- }
+-- }
+
+registerotffeature {
name = "compactmath",
description = "use one math font",
- manipulators = {
- base = manipulate,
- node = manipulate,
- },
initializers = {
- base = initialize,
- node = initialize,
+ base = function(...) manipulate(...) initialize(...) end,
+ node = function(...) manipulate(...) initialize(...) end,
}
}
-registerotffeature(specification)
-
-- The problem is that the traditional code path doesn't add an italic to the subscript,
-- simply because it assumes that the width has that already subtracted. So, we cannot
-- compensate in the following way. We're stuck with the fact that the texgyre fonts
@@ -199,28 +223,115 @@ registerotffeature(specification)
-- end
-- end
-local function initialize(tfmdata,key,value)
- if value then
+local function initialize(tfmdata,value)
+ if type(value) == "string" then
local rawdata = tfmdata.shared.rawdata
local rawresources = rawdata and rawdata.resources
local mathconstants = rawresources.mathconstants
if mathconstants then
- tfmdata.properties.oldmath = true
+ local bitmap = tex.stringtocodesbitmap(value,tex.mathcontrolcodes)
+ -- logs.report("mathfont","setting math control to %08X",bitmap)
+ tfmdata.properties.mathcontrol = bitmap
+ end
+ end
+end
+
+registerotffeature {
+ name = "mathcontrol",
+ description = "control specific old/new math handling",
+ initializers = {
+ base = initialize,
+ node = initialize,
+ }
+}
+
+local function initialize(tfmdata,value)
+ if value then
+ local validlookups, lookuplist = fonts.handlers.otf.collectlookups(tfmdata.shared.rawdata,"flac","math","dflt")
+ if validlookups then
+ -- it's quite likely just one step
+ local characters = tfmdata.characters
+ local changed = tfmdata.changed
+ for i=1,#lookuplist do
+ local lookup = lookuplist[i]
+ local steps = lookup.steps
+ local nofsteps = lookup.nofsteps
+ for i=1,nofsteps do
+ local coverage = steps[i].coverage
+ if coverage then
+ for k, v in next, coverage do
+ local c = characters[k]
+ local f = characters[v]
+ if c and f then
+ c.flataccent = v
+ if not f.unicode then
+ f.unicode = c.unicode
+ end
+ end
+ end
+ end
+ end
+ end
end
end
end
-local specification = {
- name = "oldmath",
- description = "deal with fake opentype fonts",
- -- manipulators = {
- -- base = manipulate,
- -- node = manipulate,
- -- },
+registerotffeature {
+ name = "flattenaccents",
+ description = "mapping accents to flat ones",
initializers = {
base = initialize,
node = initialize,
}
}
-registerotffeature(specification)
+-- todo: document our privates
+
+-- This horrible hack is needed because when opentype math showed up and math was
+-- added to unicode folks had forgotten about different script shapes so we not only
+-- have a retrospective variant selector but inconsistent defaults. What a mess it
+-- is. So the quick and dirty solution is:
+--
+-- add copies in private slots
+-- use a pseudo feature to access those
+-- and optionally afterwards replace the original slots
+
+-- local coverage = { }
+--
+-- local function initialize(tfmdata,value)
+-- if value then
+-- if not next(coverage) then
+-- for k, char in next, mathematics.alphabets.sr.tf.lcletters do
+-- coverage[char] = 0xFE800 + k
+-- end
+-- for k, char in next, mathematics.alphabets.sr.tf.ucletters do
+-- coverage[char] = 0xFE800 + k
+-- end
+-- fonts.handlers.otf.addfeature {
+-- name = "savemathscripts",
+-- type = "substitution",
+-- data = coverage,
+-- }
+-- end
+-- local characters = tfmdata.characters
+-- local descriptions = tfmdata.descriptions
+-- for char, private in next, coverage do
+-- local data = characters[char]
+-- if data and not characters[private] then
+-- -- otherwise we need a virtual
+-- characters [private] = copytable(data)
+-- descriptions[private] = copytable(descriptions[char])
+-- end
+-- end
+-- end
+-- end
+--
+-- registerotffeature {
+-- name = "copymathscripts",
+-- description = "copy math script",
+-- prepend = 1,
+-- initializers = {
+-- base = initialize,
+-- node = initialize,
+-- }
+-- }
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-imp-quality.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-imp-quality.lmt
new file mode 100644
index 00000000000..6637fa07f8f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-imp-quality.lmt
@@ -0,0 +1,676 @@
+if not modules then modules = { } end modules ['font-imp-quality'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv and hand-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+if not context then return end
+
+local next, type, tonumber = next, type, tonumber
+
+local fonts = fonts
+local utilities = utilities
+
+local handlers = fonts.handlers
+local otf = handlers.otf
+local afm = handlers.afm
+local registerotffeature = otf.features.register
+local registerafmfeature = afm.features.register
+
+local allocate = utilities.storage.allocate
+local getparameters = utilities.parsers.getparameters
+
+local implement = interfaces and interfaces.implement
+
+local trace_protrusion = false trackers.register("fonts.protrusion", function(v) trace_protrusion = v end)
+local trace_expansion = false trackers.register("fonts.expansion", function(v) trace_expansion = v end)
+
+local report_expansions = logs.reporter("fonts","expansions")
+local report_protrusions = logs.reporter("fonts","protrusions")
+
+-- -- -- -- -- --
+-- shared
+-- -- -- -- -- --
+
+local function get_class_and_vector(tfmdata,value,where) -- "expansions"
+ local g_where = tfmdata.goodies and tfmdata.goodies[where]
+ local f_where = fonts[where]
+ local g_classes = g_where and g_where.classes
+ local f_classes = f_where and f_where.classes
+ local class = (g_classes and g_classes[value]) or (f_classes and f_classes[value])
+ if class then
+ local class_vector = class.vector
+ local g_vectors = g_where and g_where.vectors
+ local f_vectors = f_where and f_where.vectors
+ local vector = (g_vectors and g_vectors[class_vector]) or (f_vectors and f_vectors[class_vector])
+ return class, vector
+ end
+end
+
+-- -- -- -- -- --
+-- expansion (hz)
+-- -- -- -- -- --
+
+local expansions = fonts.expansions or allocate()
+
+fonts.expansions = expansions
+
+local classes = expansions.classes or allocate()
+local vectors = expansions.vectors or allocate()
+
+expansions.classes = classes
+expansions.vectors = vectors
+
+classes.preset = {
+ stretch = 2,
+ shrink = 2,
+ step = .5,
+ factor = 1,
+}
+
+classes['quality'] = {
+ stretch = 2,
+ shrink = 2,
+ step = .5,
+ vector = 'default',
+ factor = 1,
+}
+
+vectors['default'] = {
+ [0x0041] = 0.5, -- A
+ [0x0042] = 0.7, -- B
+ [0x0043] = 0.7, -- C
+ [0x0044] = 0.5, -- D
+ [0x0045] = 0.7, -- E
+ [0x0046] = 0.7, -- F
+ [0x0047] = 0.5, -- G
+ [0x0048] = 0.7, -- H
+ [0x004B] = 0.7, -- K
+ [0x004D] = 0.7, -- M
+ [0x004E] = 0.7, -- N
+ [0x004F] = 0.5, -- O
+ [0x0050] = 0.7, -- P
+ [0x0051] = 0.5, -- Q
+ [0x0052] = 0.7, -- R
+ [0x0053] = 0.7, -- S
+ [0x0055] = 0.7, -- U
+ [0x0057] = 0.7, -- W
+ [0x005A] = 0.7, -- Z
+ [0x0061] = 0.7, -- a
+ [0x0062] = 0.7, -- b
+ [0x0063] = 0.7, -- c
+ [0x0064] = 0.7, -- d
+ [0x0065] = 0.7, -- e
+ [0x0067] = 0.7, -- g
+ [0x0068] = 0.7, -- h
+ [0x006B] = 0.7, -- k
+ [0x006D] = 0.7, -- m
+ [0x006E] = 0.7, -- n
+ [0x006F] = 0.7, -- o
+ [0x0070] = 0.7, -- p
+ [0x0071] = 0.7, -- q
+ [0x0073] = 0.7, -- s
+ [0x0075] = 0.7, -- u
+ [0x0077] = 0.7, -- w
+ [0x007A] = 0.7, -- z
+ [0x0032] = 0.7, -- 2
+ [0x0033] = 0.7, -- 3
+ [0x0036] = 0.7, -- 6
+ [0x0038] = 0.7, -- 8
+ [0x0039] = 0.7, -- 9
+}
+
+vectors['quality'] = vectors['default'] -- metatable ?
+
+-- Compression is new and used for a math experiment. Musical timestamp(s): November
+-- 2022, a cluster of live performances: RPWL (5), PT (7, yes!) and xPropaganda (10).
+
+local function initialize(tfmdata,value)
+ if value then
+ local class, vector = get_class_and_vector(tfmdata,value,"expansions")
+ if class then
+ if vector then
+ local stretch = class.stretch or 0
+ local shrink = class.shrink or 0
+ local step = class.step or 0
+ local factor = class.factor or 1
+ if trace_expansion then
+ report_expansions("setting class %a, vector %a, factor %a, stretch %a, shrink %a, step %a",
+ value,class.vector,factor,stretch,shrink,step)
+ end
+ tfmdata.parameters.expansion = {
+ stretch = 10 * stretch,
+ shrink = 10 * shrink,
+ step = 10 * step,
+ factor = factor,
+ }
+ local data = characters and characters.data
+ for i, chr in next, tfmdata.characters do -- todo unicode
+ local v = vector[i]
+ if data and not v then -- we could move the data test outside (needed for plain)
+ local d = data[i]
+ if d then
+ local s = d.shcode
+ if not s then
+ -- sorry
+ elseif type(s) == "table" then
+ v = ((vector[s[1]] or 0) + (vector[s[#s]] or 0)) / 2
+ else
+ v = vector[s] or 0
+ end
+ end
+ end
+ -- So, factor influences all shapes but we now obey zero when set!
+ if v then
+ if type(v) == "table" then
+ local e = v[1]
+ local c = v[2] or 0
+ if e ~= 0 then
+ chr.expansion = e*factor
+ end
+ if c ~= 0 then
+ chr.compression = c*factor
+ end
+ elseif v == 0 then
+ -- chr.expansion = 0
+ else
+ chr.expansion = v*factor
+ end
+ elseif factor ~= 1 then -- test is new
+ chr.expansion = factor
+ end
+ end
+ elseif trace_expansion then
+ report_expansions("unknown vector %a in class %a",class.vector,value)
+ end
+ elseif trace_expansion then
+ report_expansions("unknown class %a",value)
+ end
+ end
+end
+
+local specification = {
+ name = "expansion",
+ description = "apply hz optimization",
+ initializers = {
+ base = initialize,
+ node = initialize,
+ }
+}
+
+registerotffeature(specification)
+registerafmfeature(specification)
+
+fonts.goodies.register("expansions", function(...) return fonts.goodies.report("expansions", trace_expansion, ...) end)
+
+implement {
+ name = "setupfontexpansion",
+ arguments = "2 strings",
+ actions = function(class,settings) getparameters(classes,class,'preset',settings) end
+}
+
+-- special version for math 7/11/22
+
+classes.math = {
+ stretch = 2,
+ shrink = 2,
+ step = .5,
+ vector = 'math',
+ factor = 1,
+}
+
+vectors.math = {
+ [0x002B] = { 4, 0 }, -- +
+ [0x2212] = { 4, 0 }, -- -
+ [0x003C] = { 8, 0 }, -- <
+ [0x003D] = { 8, 0 }, -- =
+ [0x003E] = { 8, 0 }, -- >
+ [0x002F] = { 2, 0 }, -- /
+ [0x0028] = { 2, 0 }, -- (
+ [0x0029] = { 2, 0 }, -- )
+ [0x005B] = { 2, 0 }, -- [
+ [0x005D] = { 2, 0 }, -- ]
+}
+
+local function initialize(tfmdata,value)
+ if value then
+ local class, vector = get_class_and_vector(tfmdata,value,"expansions")
+ if class then
+ if vector then
+ local stretch = class.stretch or 0
+ local shrink = class.shrink or 0
+ local step = class.step or 0
+ local factor = class.factor or 1
+ if trace_expansion then
+ report_expansions("setting class %a, vector %a, factor %a, stretch %a, shrink %a, step %a",
+ value,class.vector,factor,stretch,shrink,step)
+ end
+ tfmdata.parameters.expansion = {
+ stretch = 10 * stretch,
+ shrink = 10 * shrink,
+ step = 10 * step,
+ factor = factor,
+ }
+ local characters = tfmdata.characters
+ for u, v in next, vector do
+ local chr = characters[u]
+ if type(v) == "table" then
+ local e = v[1]
+ local c = v[2] or 0
+ if e ~= 0 then
+ chr.expansion = e*factor
+ end
+ if c ~= 0 then
+ chr.compression = c*factor
+ end
+ elseif v ~= 0 then
+ chr.expansion = v*factor
+ end
+ end
+ elseif trace_expansion then
+ report_expansions("unknown vector %a in class %a",class.vector,value)
+ end
+ elseif trace_expansion then
+ report_expansions("unknown class %a",value)
+ end
+ end
+end
+
+registerotffeature {
+ name = "mathexpansion",
+ description = "apply hz optimization to math",
+ initializers = {
+ base = initialize,
+ node = initialize,
+ }
+}
+
+-- -- -- -- -- --
+-- protrusion
+-- -- -- -- -- --
+
+fonts.protrusions = allocate()
+local protrusions = fonts.protrusions
+
+protrusions.classes = allocate()
+protrusions.vectors = allocate()
+
+local classes = protrusions.classes
+local vectors = protrusions.vectors
+
+-- the values need to be revisioned
+
+classes.preset = {
+ factor = 1,
+ left = 1,
+ right = 1,
+}
+
+classes['pure'] = { vector = 'pure', factor = 1 }
+classes['punctuation'] = { vector = 'punctuation', factor = 1 }
+classes['alpha'] = { vector = 'alpha', factor = 1 }
+classes['quality'] = { vector = 'quality', factor = 1 }
+
+vectors['pure'] = {
+
+ [0x002C] = { 0, 1 }, -- comma
+ [0x002E] = { 0, 1 }, -- period
+ [0x003A] = { 0, 1 }, -- colon
+ [0x003B] = { 0, 1 }, -- semicolon
+ [0x002D] = { 0, 1 }, -- hyphen
+ [0x00AD] = { 0, 1 }, -- also hyphen
+ [0x2013] = { 0, 0.50 }, -- endash
+ [0x2014] = { 0, 0.33 }, -- emdash
+ [0x3001] = { 0, 1 }, -- ideographic comma 、
+ [0x3002] = { 0, 1 }, -- ideographic full stop 。
+ [0x060C] = { 0, 1 }, -- arabic comma ،
+ [0x061B] = { 0, 1 }, -- arabic semicolon ؛
+ [0x06D4] = { 0, 1 }, -- arabic full stop ۔
+
+}
+
+vectors['punctuation'] = {
+
+ [0x003F] = { 0, 0.20 }, -- ?
+ [0x00BF] = { 0.20, 0 }, -- ¿
+ [0x0021] = { 0, 0.20 }, -- !
+ [0x00A1] = { 0.20, 0, }, -- ¡
+ [0x0028] = { 0.05, 0 }, -- (
+ [0x0029] = { 0, 0.05 }, -- )
+ [0x005B] = { 0.05, 0 }, -- [
+ [0x005D] = { 0, 0.05 }, -- ]
+ [0x002C] = { 0, 0.70 }, -- comma
+ [0x002E] = { 0, 0.70 }, -- period
+ [0x003A] = { 0, 0.50 }, -- colon
+ [0x003B] = { 0, 0.50 }, -- semicolon
+ [0x002D] = { 0, 0.70 }, -- hyphen
+ [0x00AD] = { 0, 0.70 }, -- also hyphen
+ [0x2013] = { 0, 0.30 }, -- endash
+ [0x2014] = { 0, 0.20 }, -- emdash
+ [0x060C] = { 0, 0.70 }, -- arabic comma
+ [0x061B] = { 0, 0.50 }, -- arabic semicolon
+ [0x06D4] = { 0, 0.70 }, -- arabic full stop
+ [0x061F] = { 0, 0.20 }, -- ؟
+
+ -- todo: left and right quotes: .5 double, .7 single
+
+ [0x2039] = { 0.70, 0.70 }, -- left single guillemet ‹
+ [0x203A] = { 0.70, 0.70 }, -- right single guillemet ›
+ [0x00AB] = { 0.50, 0.50 }, -- left guillemet «
+ [0x00BB] = { 0.50, 0.50 }, -- right guillemet »
+
+ [0x2018] = { 0.70, 0.70 }, -- left single quotation mark ‘
+ [0x2019] = { 0, 0.70 }, -- right single quotation mark ’
+ [0x201A] = { 0.70, 0 }, -- single low-9 quotation mark ,
+ [0x201B] = { 0.70, 0 }, -- single high-reversed-9 quotation mark ‛
+ [0x201C] = { 0.50, 0.50 }, -- left double quotation mark “
+ [0x201D] = { 0, 0.50 }, -- right double quotation mark ”
+ [0x201E] = { 0.50, 0 }, -- double low-9 quotation mark „
+ [0x201F] = { 0.50, 0 }, -- double high-reversed-9 quotation mark ‟
+
+}
+
+vectors['alpha'] = {
+
+ [0x0041] = { .05, .05 }, -- A
+ [0x0046] = { 0, .05 }, -- F
+ [0x004A] = { .05, 0 }, -- J
+ [0x004B] = { 0, .05 }, -- K
+ [0x004C] = { 0, .05 }, -- L
+ [0x0054] = { .05, .05 }, -- T
+ [0x0056] = { .05, .05 }, -- V
+ [0x0057] = { .05, .05 }, -- W
+ [0x0058] = { .05, .05 }, -- X
+ [0x0059] = { .05, .05 }, -- Y
+
+ [0x006B] = { 0, .05 }, -- k
+ [0x0072] = { 0, .05 }, -- r
+ [0x0074] = { 0, .05 }, -- t
+ [0x0076] = { .05, .05 }, -- v
+ [0x0077] = { .05, .05 }, -- w
+ [0x0078] = { .05, .05 }, -- x
+ [0x0079] = { .05, .05 }, -- y
+
+}
+
+vectors['quality'] = table.merged(
+ vectors['punctuation'],
+ vectors['alpha']
+)
+
+-- As this is experimental code, users should not depend on it. The implications are still
+-- discussed on the ConTeXt Dev List and we're not sure yet what exactly the spec is (the
+-- next code is tested with a gyre font patched by / fea file made by Khaled Hosny). The
+-- double trick should not be needed it proper hanging punctuation is used in which case
+-- values < 1 can be used.
+--
+-- preferred (in context, usine vectors):
+--
+-- \definefontfeature[whatever][default][mode=node,protrusion=quality]
+--
+-- using lfbd and rtbd, with possibibility to enable only one side :
+--
+-- \definefontfeature[whocares][default][mode=node,protrusion=yes, opbd=yes,script=latn]
+-- \definefontfeature[whocares][default][mode=node,protrusion=right,opbd=yes,script=latn]
+--
+-- idem, using multiplier
+--
+-- \definefontfeature[whocares][default][mode=node,protrusion=2,opbd=yes,script=latn]
+-- \definefontfeature[whocares][default][mode=node,protrusion=double,opbd=yes,script=latn]
+--
+-- idem, using named feature file (less frozen):
+--
+-- \definefontfeature[whocares][default][mode=node,protrusion=2,opbd=yes,script=latn,featurefile=texgyrepagella-regularxx.fea]
+
+classes['double'] = { -- for testing opbd
+ factor = 2,
+ left = 1,
+ right = 1,
+}
+
+local function map_opbd_onto_protrusion(tfmdata,value,opbd)
+ local characters = tfmdata.characters
+ local descriptions = tfmdata.descriptions
+ local properties = tfmdata.properties
+ local parameters = tfmdata.parameters
+ local resources = tfmdata.resources
+ local rawdata = tfmdata.shared.rawdata
+ local lookuphash = rawdata.lookuphash
+ local lookuptags = resources.lookuptags
+ local script = properties.script
+ local language = properties.language
+ local units = parameters.units
+ local done, factor, left, right = false, 1, 1, 1
+ local class = classes[value]
+ if class then
+ factor = class.factor or 1
+ left = class.left or 1
+ right = class.right or 1
+ else
+ factor = tonumber(value) or 1
+ end
+ local lfactor = left * factor
+ local rfactor = right * factor
+ if trace_protrusion then
+ report_protrusions("left factor %0.3F, right factor %0.3F",lfactor,rfactor)
+ end
+ tfmdata.parameters.protrusion = {
+ factor = factor,
+ left = left,
+ right = right,
+ }
+ if opbd ~= "right" then
+ local validlookups, lookuplist = otf.collectlookups(rawdata,"lfbd",script,language)
+ if validlookups then
+ for i=1,#lookuplist do
+ local lookup = lookuplist[i]
+ local steps = lookup.steps
+ if steps then
+ if trace_protrusion then
+ report_protrusions("setting left using lfbd")
+ end
+ for i=1,#steps do
+ local step = steps[i]
+ local coverage = step.coverage
+ if coverage then
+ for k, v in next, coverage do
+ if v == true then
+ -- zero
+ else
+ local w = descriptions[k].width
+ local d = - v[1]
+ if w == 0 or d == 0 then
+ -- ignored
+ else
+ local p = lfactor * d/units
+ characters[k].leftprotrusion = p
+ if trace_protrusion then
+ report_protrusions("lfbd -> %0.3F %C",p,k)
+ end
+ end
+ end
+ end
+ end
+ end
+ done = true
+ end
+ end
+ end
+ end
+ if opbd ~= "left" then
+ local validlookups, lookuplist = otf.collectlookups(rawdata,"rtbd",script,language)
+ if validlookups then
+ for i=1,#lookuplist do
+ local lookup = lookuplist[i]
+ local steps = lookup.steps
+ if steps then
+ if trace_protrusion then
+ report_protrusions("setting right using rtbd")
+ end
+ for i=1,#steps do
+ local step = steps[i]
+ local coverage = step.coverage
+ if coverage then
+ for k, v in next, coverage do
+ if v == true then
+ -- zero
+ else
+ local w = descriptions[k].width
+ local d = - v[3]
+ if w == 0 or d == 0 then
+ -- ignored
+ else
+ local p = rfactor * d/units
+ characters[k].rightprotrusion = p
+ if trace_protrusion then
+ report_protrusions("rtbd -> %0.3F %C",p,k)
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ done = true
+ end
+ end
+ end
+end
+
+-- The opbd test is just there because it was discussed on the context development list. However,
+-- the mentioned fxlbi.otf font only has some kerns for digits. So, consider this feature not supported
+-- till we have a proper test font.
+
+local function initialize(tfmdata,value)
+ if value then
+ local opbd = tfmdata.shared.features.opbd
+ if opbd then
+ -- possible values: left right both yes no (experimental)
+ map_opbd_onto_protrusion(tfmdata,value,opbd)
+ else
+ local class, vector = get_class_and_vector(tfmdata,value,"protrusions")
+ if class then
+ if vector then
+ local factor = class.factor or 1
+ local left = class.left or 1
+ local right = class.right or 1
+ if trace_protrusion then
+ report_protrusions("setting class %a, vector %a, factor %a, left %a, right %a",
+ value,class.vector,factor,left,right)
+ end
+ local data = characters.data
+ local lfactor = left * factor
+ local rfactor = right * factor
+ if trace_protrusion then
+ report_protrusions("left factor %0.3F, right factor %0.3F",lfactor,rfactor)
+ end
+ tfmdata.parameters.protrusion = {
+ factor = factor,
+ left = left,
+ right = right,
+ }
+ for i, chr in next, tfmdata.characters do
+ local v = vector[i]
+ local pl = nil
+ local pr = nil
+ if v then
+ pl = v[1]
+ pr = v[2]
+ else
+ local d = data[i]
+ if d then
+ local s = d.shcode
+ if not s then
+ -- sorry
+ elseif type(s) == "table" then
+ local vl = vector[s[1]]
+ local vr = vector[s[#s]]
+ if vl then pl = vl[1] end
+ if vr then pr = vr[2] end
+ else
+ v = vector[s]
+ if v then
+ pl = v[1]
+ pr = v[2]
+ end
+ end
+ end
+ end
+ if pl and pl ~= 0 then
+ local p = pl * lfactor
+ chr.leftprotrusion = p
+ if trace_protrusion then
+ report_protrusions("left -> %0.3F %C ",p,i)
+ end
+ end
+ if pr and pr ~= 0 then
+ local p = pr * rfactor
+ chr.rightprotrusion = p
+ if trace_protrusion then
+ report_protrusions("right -> %0.3F %C",p,i)
+ end
+ end
+ end
+ elseif trace_protrusion then
+ report_protrusions("unknown vector %a in class %a",class.vector,value)
+ end
+ elseif trace_protrusion then
+ report_protrusions("unknown class %a",value)
+ end
+ end
+ end
+end
+
+local specification = {
+ name = "protrusion",
+ description = "l/r margin character protrusion",
+ initializers = {
+ base = initialize,
+ node = initialize,
+ }
+}
+
+registerotffeature(specification)
+registerafmfeature(specification)
+
+fonts.goodies.register("protrusions", function(...) return fonts.goodies.report("protrusions", trace_protrusion, ...) end)
+
+implement {
+ name = "setupfontprotrusion",
+ arguments = "2 strings",
+ actions = function(class,settings) getparameters(classes,class,'preset',settings) end
+}
+
+local function initialize(tfmdata,value)
+ local properties = tfmdata.properties
+ local parameters = tfmdata.parameters
+ if properties then
+ value = tonumber(value)
+ if value then
+ if value < 0 then
+ value = 0
+ elseif value > 10 then
+ report_expansions("threshold for %a @ %p limited to 10 pct",properties.fontname,parameters.size)
+ value = 10
+ end
+ if value > 5 then
+ report_expansions("threshold for %a @ %p exceeds 5 pct",properties.fontname,parameters.size)
+ end
+ end
+ properties.threshold = value or nil -- nil enforces default
+ end
+end
+
+local specification = {
+ name = "threshold",
+ description = "threshold for quality features",
+ initializers = {
+ base = initialize,
+ node = initialize,
+ }
+}
+
+registerotffeature(specification)
+registerafmfeature(specification)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-imp-sanitize.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-imp-sanitize.lmt
new file mode 100644
index 00000000000..84c42e78f30
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-imp-sanitize.lmt
@@ -0,0 +1,197 @@
+if not modules then modules = { } end modules ['font-san'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA ADE & śrīrāma",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- \definefontfeature[demo][sanitizer=demo]
+-- \definedfont[Serif*default,demo] test context test
+-- \definedfont[Serif*default] test context test
+
+local keys, insert, copytable = table.keys, table.insert, table.copy
+local utfvalues, utfbyte = utf.values, utf.byte
+
+local sanitizers = { }
+
+local trace = false
+local report = logs.reporter("fonts", "sanitizers")
+
+trackers.register("fonts.sanitizers", function(v) trace = v end)
+
+function fonts.registersanitizer(name,vector)
+ sanitizers[name] = vector
+end
+
+local function split(s)
+ local t = { }
+ for value in utfvalues(s) do
+ t[#t+1] = value
+ end
+ return t
+end
+
+local function wrap(t)
+ for i=1,#t do
+ t[i] = { t[i] }
+ end
+ return t
+end
+
+local function initializesanitizer(tfmdata,value)
+ local resources = tfmdata.resources
+ local sanitized = resources.sanitized
+ if not sanitized then
+ local sanitizer = false
+ local goodies = tfmdata.goodies
+ if goodies then
+ for i=1,#goodies do
+ local goodie = goodies[i]
+ local sanitizers = goodie.sanitizers
+ sanitizer = sanitizers and sanitizers[value]
+ if sanitizer then
+ report("using sanitizer %a from goodie file",value)
+ break
+ end
+ end
+ end
+ if not sanitizer then
+ sanitizer = sanitizers[value]
+ if sanitizer then
+ report("using sanitizer %a",value)
+ end
+ end
+ resources.sanitized = true
+ if sanitizer then
+ local mapping = sanitizer.mapping
+ if mapping then
+ local keys = keys(mapping)
+ local maps = { }
+ table.sort(keys, function(a,b) return a > b end)
+ for i = 1,#keys do
+ local k = keys[i]
+ keys[i] = split(k)
+ maps[i] = split(mapping[k])
+ end
+ for i=1,#maps do
+ local k = keys[i]
+ local m = maps[i]
+ if trace then
+ -- m = copytable(m)
+ -- insert(m,1,utfbyte("["))
+ -- insert(m, utfbyte("]"))
+ local t = { utfbyte("[") }
+ t[#t+1] = 0x200D -- zwnj
+ for i=1,#m do
+ t[#t+1] = m[i]
+ t[#t+1] = 0x200D -- zwnj
+ end
+ t[#t+1] = utfbyte("]")
+ end
+ maps[i] = { type = "multiple", data = { [k[1]] = m } }
+ keys[i] = { current = wrap(k) , lookups = { i } }
+ end
+ local specification = {
+ name = "sanitizer",
+ type = "chainsubstitution",
+ prepend = 1,
+ nocheck = true,
+ default = true,
+ lookups = maps,
+ data = { rules = keys },
+ }
+ local s = fonts.handlers.otf.enhancers.addfeature(
+ tfmdata,"sanitizer",specification, true
+ )
+ insert(resources.sequences,1,s)
+ end
+ end
+ end
+end
+
+-- has to come *after* devanagari because we need to push it in front
+-- ... it could be a built-in
+
+fonts.constructors.features.otf.register {
+ name = "sanitizer",
+ description = "inject sanitizer features",
+ initializers = {
+ node = initializesanitizer,
+ },
+}
+
+local dev2rkrf = {
+ ["के्र"] = "क्रे",
+ ["कै्र"] = "क्रै",
+ ["खे्र"] = "ख्रे",
+ ["खै्र"] = "ख्रै",
+ ["गे्र"] = "ग्रे",
+ ["गै्र"] = "ग्रै",
+ ["घे्र"] = "घ्रे",
+ ["घै्र"] = "घ्रै",
+ -- not required: placed here just to show how bad some fonts are :(
+ -- ["ङे्र"] = "ङ्रे",
+ -- ["ङै्र"] = "ङ्रै",
+ ["चे्र"] = "च्रे",
+ ["चै्र"] = "च्रै",
+ ["छे्र"] = "छ्रे",
+ ["छै्र"] = "छ्रै",
+ ["जे्र"] = "ज्रे",
+ ["जै्र"] = "ज्रै",
+ ["झे्र"] = "झ्रे",
+ ["झै्र"] = "झ्रै",
+ ["ञे्र"] = "ञ्रे",
+ ["ञै्र"] = "ञ्रै",
+ ["णे्र"] = "ण्रे",
+ ["णै्र"] = "ण्रै",
+ ["ते्र"] = "त्रे",
+ ["तै्र"] = "त्रै",
+ ["थे्र"] = "थ्रे",
+ ["थै्र"] = "थ्रै",
+ ["दे्र"] = "द्रे",
+ ["दै्र"] = "द्रै",
+ ["धे्र"] = "ध्रे",
+ ["धै्र"] = "ध्रै",
+ ["ने्र"] = "न्रे",
+ ["नै्र"] = "न्रै",
+ ["पे्र"] = "प्रे",
+ ["पै्र"] = "प्रै",
+ ["फे्र"] = "फ्रे",
+ ["फै्र"] = "फ्रै",
+ ["बे्र"] = "ब्रे",
+ ["बै्र"] = "ब्रै",
+ ["भे्र"] = "भ्रे",
+ ["भै्र"] = "भ्रै",
+ ["मे्र"] = "म्रे",
+ ["मै्र"] = "म्रै",
+ ["ये्र"] = "य्रे",
+ ["यै्र"] = "य्रै",
+ -- some fonts might need this, some might not: weird
+ -- for example: Shobhika does not need it but Noto Serif does :(
+ -- ["ले्र"] = "ल्रे",
+ -- ["लै्र"] = "ल्रै",
+ ["वे्र"] = "व्रे",
+ ["वै्र"] = "व्रै",
+ ["से्र"] = "स्रे",
+ ["सै्र"] = "स्रै",
+ ["शे्र"] = "श्रे",
+ ["शै्र"] = "श्रै",
+ ["षे्र"] = "ष्रे",
+ ["षै्र"] = "ष्रै",
+ ["हे्र"] = "ह्रे",
+ ["है्र"] = "ह्रै",
+ -- some fonts might need this, some might not: weird
+ -- ["ळे्र"] = "ळ्रे",
+ -- ["ळै्र"] = "ळ्रै",
+}
+
+local demomapping = {
+ luatex = "LuaTeX",
+ metapost = "MetaPost",
+ context = "ConTeXt",
+ metafun = "MetaFun",
+}
+
+fonts.registersanitizer("dev2rkrf", { mapping = dev2rkrf })
+fonts.registersanitizer("demo", { mapping = demomapping })
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-imp-scripts.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-imp-scripts.lmt
new file mode 100644
index 00000000000..97b11c91d36
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-imp-scripts.lmt
@@ -0,0 +1,188 @@
+if not modules then modules = { } end modules ['font-imp-scripts'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local getrange = characters.getrange
+
+local settings_to_hash = utilities.parsers.settings_to_hash
+
+if not context then return end
+
+-- the defaults are not yet ok
+
+local next, type, tonumber = next, type, tonumber
+local gmatch = string.gmatch
+local max = math.max
+
+local fonts = fonts
+local utilities = utilities
+
+local helpers = fonts.helpers
+local charcommand = helpers.commands.char
+local downcommand = helpers.commands.down
+local upcommand = helpers.commands.up
+
+local handlers = fonts.handlers
+local otf = handlers.otf
+local afm = handlers.afm
+local registerotffeature = otf.features.register
+local registerafmfeature = afm.features.register
+
+local settings_to_hash = utilities.parsers.settings_to_hash
+local sortedhash = table.sortedhash
+
+local handlers = fonts.handlers
+
+local sup = nil
+local sub = nil
+
+local function initialize(tfmdata,key,value)
+ --
+ if not sup then
+ sup = { }
+ sub = { }
+ for unicode, data in next, characters.data do
+ local specials = data.specials
+ if specials then
+ local what = specials[1]
+ if what == "super" then
+ sup[unicode] = specials[2]
+ elseif what == "sub" then
+ sub[unicode] = specials[2]
+ end
+ end
+ end
+ end
+ --
+ local spec
+ if value == true then
+ spec = { factor = 3/5, up = 5/4, down = 1/4 }
+ elseif type(value) == "number" then
+ spec = { factor = value, up = 5/4, down = 1/4 }
+ else
+ spec = settings_to_hash(value)
+ end
+ local factor = tonumber(spec.factor) or 3/5
+ local up = tonumber(spec.up) or 5/4
+ local down = tonumber(spec.down) or 1/4
+ --
+ local characters = tfmdata.characters
+ local parameters = tfmdata.parameters
+ local up = parameters.xheight * up
+ local down = -parameters.xheight * down
+ -- disable sups/subs
+ local function add(unicode,other,go_up)
+ local old = characters[other]
+ if old then
+ local shift = go_up and up or down
+ local width = (old.width or 0) * factor
+ local height = (old.height or 0) * factor + shift
+ local depth = go_up and 0 or max((old.depth or 0) * factor + down,0)
+ characters[unicode] = {
+ width = width,
+ height = height,
+ depth = depth,
+ commands = { { "offset", 0, shift, other, factor, factor } },
+ -- yoffset = shift,
+ -- xscale = factor,
+ -- yscale = factor,
+ -- commands = { { "slot", 0, other } }, -- { slotcommand[0][other] or charcommand[other] }
+ }
+ end
+ end
+ for unicode, other in sortedhash(sup) do
+ add(unicode,other,true)
+ end
+ for unicode, other in sortedhash(sub) do
+ add(unicode,other,false)
+ end
+end
+
+local specification = {
+ name = "scripts",
+ description = "add superiors and inferiors",
+ manipulators = {
+ base = initialize,
+ node = initialize,
+ }
+}
+
+registerotffeature(specification)
+registerafmfeature(specification)
+
+-- a different kind of scripts support
+
+local function initialize(tfmdata,key,value)
+ if value then
+ local detail = type(value) == "string" and settings_to_hash(value) or { }
+ local orientation = tonumber(detail.orientation) or 0
+ if orientation == 1 or orientation == 3 then
+ local characters = tfmdata.characters
+ local parameters = tfmdata.parameters
+ local emwidth = parameters.quad
+ local exheight = parameters.xheight
+ local ranges = detail.ranges
+ local downshift = exheight * (tonumber(detail.down) or 0)
+ local rightshift = exheight * (tonumber(detail.right) or 0)
+ local orientate
+ if orientation == 1 then
+ orientate = function(character)
+ local width = character.width or 0
+ local height = character.height or 0
+ local depth = character.depth or 0
+ character.width = height + depth + rightshift + rightshift
+ character.height = width - downshift
+ character.depth = shift
+ character.xoffset = depth + rightshift
+ character.yoffset = width - downshift
+ character.orientation = orientation
+ end
+ else
+ orientate = function(character)
+ local width = character.width or 0
+ local height = character.height or 0
+ local depth = character.depth or 0
+-- character.width = height + depth + rightshift + rightshift
+ character.height = width - downshift
+ character.depth = shift
+-- character.xoffset = height + rightshift
+-- character.yoffset = - downshift
+-- character.orientation = orientation
+ end
+ end
+ if ranges then
+ for s in gmatch(ranges,"[^, ]+") do
+ local start, stop, description, gaps = getrange(s,true)
+ if start and stop then
+ for unicode=start,stop do
+ local character = characters[unicode]
+ if character then
+ orientate(character)
+ end
+ end
+ end
+ end
+ else
+ for unicode, character in next, characters do
+ orientate(character)
+ end
+ end
+ end
+ end
+end
+
+local specification = {
+ name = "vertical",
+ description = "vertical",
+ manipulators = {
+ base = initialize,
+ node = initialize,
+ }
+}
+
+registerotffeature(specification)
+registerafmfeature(specification)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-imp-text.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-imp-text.lmt
new file mode 100644
index 00000000000..16edb2ef421
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-imp-text.lmt
@@ -0,0 +1,30 @@
+if not modules then modules = { } end modules ['font-imp-text'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv and hand-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local type = type
+
+local fonts = fonts
+local registerotffeature = fonts.handlers.otf.features.register
+
+local function initialize(tfmdata,value)
+ if type(value) == "string" then
+ tfmdata.properties.textcontrol = (tfmdata.properties.textcontrol or 0) | tex.stringtocodesbitmap(value,tex.textcontrolcodes)
+ end
+end
+
+local specification = {
+ name = "textcontrol",
+ description = "control specific text handling",
+ initializers = {
+ none = initialize,
+ base = initialize,
+ node = initialize,
+ }
+}
+
+registerotffeature(specification)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-imp-tracing.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-imp-tracing.lmt
index 59603c9ddd6..00e3aaa50cf 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-imp-tracing.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-imp-tracing.lmt
@@ -33,74 +33,125 @@ local v_frame = variables.frame
local v_empty = variables.empty
local v_none = variables.none
+-- d:width d:height d:depth d:rulethickness b:outline b:advance b:baseline s:color
+
+-- local function initialize(tfmdata,key,value)
+-- if value then
+-- local vfspecials = fonts.helpers.vfspecials
+-- local vfcommands = fonts.helpers.commands
+-- local backgrounds = vfspecials.backgrounds
+-- local outlines = vfspecials.outlines
+-- local characters = tfmdata.characters
+-- local rulecache = backgrounds
+-- local showchar = true
+-- local color = "palegray"
+-- if type(value) == "string" then
+-- value = settings_to_array(value)
+-- for i=1,#value do
+-- local v = value[i]
+-- if v == v_frame then
+-- rulecache = outlines
+-- elseif v == v_background then
+-- rulecache = backgrounds
+-- elseif v == v_empty then
+-- showchar = false
+-- elseif v == v_none then
+-- color = nil
+-- else
+-- color = v
+-- end
+-- end
+-- end
+-- local gray = color and { "startcolor", color } or nil
+-- local black = gray and { "stopcolor" } or nil
+-- for unicode, character in next, characters do
+-- local width = character.width or 0
+-- local height = character.height or 0
+-- local depth = character.depth or 0
+-- local rule = rulecache[height][depth][width]
+-- if showchar then
+-- local commands = character.commands
+-- if commands then
+-- if gray then
+-- character.commands = prependcommands (
+-- commands, gray, rule, black
+-- )
+-- else
+-- character.commands = prependcommands (
+-- commands, rule
+-- )
+-- end
+-- else
+-- local char = charcommand[unicode]
+-- if gray then
+-- character.commands = {
+-- gray, rule, black, char
+-- }
+-- else
+-- character.commands = {
+-- rule, char
+-- }
+-- end
+-- end
+-- else
+-- if gray then
+-- character.commands = {
+-- gray, rule, black
+-- }
+-- else
+-- character.commands = {
+-- rule
+-- }
+-- end
+-- end
+-- end
+-- end
+-- end
+
local function initialize(tfmdata,key,value)
if value then
local vfspecials = fonts.helpers.vfspecials
local vfcommands = fonts.helpers.commands
- local backgrounds = vfspecials.backgrounds
- local outlines = vfspecials.outlines
+ -- local backgrounds = vfspecials.backgrounds
+ -- local outlines = vfspecials.outlines
local characters = tfmdata.characters
- local rulecache = backgrounds
+ local rule = { "frame", true, true, true, false, false, false, false, "palegray" }
local showchar = true
- local color = "palegray"
if type(value) == "string" then
value = settings_to_array(value)
for i=1,#value do
local v = value[i]
if v == v_frame then
- rulecache = outlines
+ rule[6] = true
elseif v == v_background then
- rulecache = backgrounds
+ rule[6] = false
elseif v == v_empty then
showchar = false
elseif v == v_none then
- color = nil
+ rule[9] = false
else
- color = v
+ local thickness = string.todimen(v)
+ if thickness and thickness > 0 then
+ rule[5] = thickness
+ else
+ rule[9] = v
+ end
end
end
end
- local gray = color and { "startcolor", color } or nil
- local black = gray and { "stopcolor" } or nil
+ if not showchar then
+ rule = { rule }
+ end
for unicode, character in next, characters do
- local width = character.width or 0
- local height = character.height or 0
- local depth = character.depth or 0
- local rule = rulecache[height][depth][width]
if showchar then
local commands = character.commands
if commands then
- if gray then
- character.commands = prependcommands (
- commands, gray, rule, black
- )
- else
- character.commands = prependcommands (
- commands, rule
- )
- end
+ character.commands = prependcommands ( commands, rule )
else
- local char = charcommand[unicode]
- if gray then
- character.commands = {
- gray, rule, black, char
- }
- else
- character.commands = {
- rule, char
- }
- end
+ character.commands = { rule, charcommand[unicode] }
end
else
- if gray then
- character.commands = {
- gray, rule, black
- }
- else
- character.commands = {
- rule
- }
- end
+ character.commands = rule
end
end
end
@@ -127,7 +178,7 @@ local function initialize(tfmdata,key,value)
local vfspecials = fonts.helpers.vfspecials
local vfcommands = fonts.helpers.commands
local backgrounds = vfspecials.backgrounds
- local outlines = vfspecials.outlines
+ -- local outlines = vfspecials.outlines
local characters = tfmdata.characters
local rulecache = backgrounds
local push = vfcommands.push
@@ -139,9 +190,16 @@ local function initialize(tfmdata,key,value)
local blcolor = { "startcolor", "trace:3" } -- b / db
local tlcolor = { "startcolor", "trace:4" } -- y / dy
for unicode, character in next, characters do
- local mathkern = character.mathkern
- local italic = character.vert_italic or character.italic
- if mathkern or (italic and italic ~= 0) then
+ local mathkerns = character.mathkerns
+ local italic = character.vitalic or character.italic
+
+if italic ~= italic then
+ -- 8427 in pagella suddenly gets a "nan" assigned ... can this be a lua bug
+ -- test file : staircase-001.tex
+ italic = 0
+end
+
+ if mathkerns or (italic and italic ~= 0) then
local width = character.width or 0
local height = character.height or 0
local depth = character.depth or 0
@@ -151,15 +209,15 @@ local function initialize(tfmdata,key,value)
count = count + 1 list[count] = itcolor
count = count + 1 list[count] = push
count = count + 1 list[count] = { "offset", width + (italic < 0 and -italic or 0), 0 }
- count = count + 1 list[count] = rulecache[height][depth][abs(-italic)]
+ count = count + 1 list[count] = rulecache[height][depth][italic < 0 and -italic or italic]
count = count + 1 list[count] = pop
count = count + 1 list[count] = black
end
- if mathkern then
- local br = mathkern.bottom_right
- local tr = mathkern.top_right
- local bl = mathkern.bottom_left
- local tl = mathkern.top_left
+ if mathkerns then
+ local br = mathkerns.bottomright
+ local tr = mathkerns.topright
+ local bl = mathkerns.bottomleft
+ local tl = mathkerns.topleft
if br then
local done = false
for i=1,#br do
@@ -176,7 +234,7 @@ local function initialize(tfmdata,key,value)
end
count = count + 1 list[count] = push
count = count + 1 list[count] = { "offset", width + (k < 0 and k or 0), - depth }
- count = count + 1 list[count] = rulecache[h][0][abs(k)]
+ count = count + 1 list[count] = rulecache[h][0][k < 0 and -k or k]
count = count + 1 list[count] = pop
end
end
@@ -200,7 +258,7 @@ local function initialize(tfmdata,key,value)
end
count = count + 1 list[count] = push
count = count + 1 list[count] = { "offset", width + (k < 0 and k or 0), height - h }
- count = count + 1 list[count] = rulecache[h][0][abs(k)]
+ count = count + 1 list[count] = rulecache[h][0][k < 0 and k or k]
count = count + 1 list[count] = pop
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-ini.lmt
index 45e8f9e18a7..bc68fa83d4c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-ini.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-ini.lmt
@@ -10,8 +10,8 @@ if not modules then modules = { } end modules ['font-ini'] = {
<p>Not much is happening here.</p>
--ldx]]--
-local allocate = utilities.storage.allocate
-local sortedhash = table.sortedhash
+local sortedhash, setmetatableindex = table.sortedhash, table.setmetatableindex
+local allocate = utilities.storage.allocate
fonts = fonts or { }
local fonts = fonts
@@ -37,4 +37,63 @@ fonts.privateoffsets = {
keepnames = false, -- when set to true names are always kept (not for context)
}
+local effects = setmetatableindex(
+ function(t,slant)
+ local v = setmetatableindex(
+ function(t,squeeze)
+ local v = setmetatableindex(
+ function(t,extend)
+ local v = setmetatableindex(
+ function(t,mode)
+ local v = setmetatableindex(
+ function(t,line)
+ local v = {
+ slant = slant,
+ squeeze = squeeze,
+ extend = extend,
+ mode = mode,
+ line = line * 1000,
+ }
+ t[line] = v
+ return v
+ end)
+ t[mode] = v
+ return v
+ end)
+ t[extend] = v
+ return v
+ end)
+ t[squeeze] = v
+ return v
+ end)
+ t[slant] = v
+ return v
+ end)
+
+-- This is an experiment, part of math engine project (MS and HH) where we wondered
+-- how to deal with bad or missing alphabets. One solution is a character specific
+-- effect which is supported by the engine (in fact the backend). By using a table
+-- cache we limit checking. We use tweaks in font goodies to achieve it.
+--
+-- character.effect = fonts.effects[slant][squeeze][extend][mode][line]
+-- character.effect = fonts.toeffect { slant = .2 }
+
+fonts.effects = effects
+
+fonts.effects[0][1][1][0][0] = false
+
+function fonts.toeffect(t)
+ local slant = t.slant or 0
+ local squeeze = t.squeeze or 1
+ local extend = t.extend or 1
+ local mode = t.mode or 0
+ local line = t.line or 0
+ if slant or squeeze or extend or mode or line then
+ local effect = effects[slant][squeeze][extend][mode][line]
+ if effect then
+ return effect
+ end
+ end
+end
+
-- Also here now:
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-ini.mklx b/Master/texmf-dist/tex/context/base/mkxl/font-ini.mklx
index 557ac3c49e2..6efae2ae10b 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-ini.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-ini.mklx
@@ -333,7 +333,7 @@
\the\everybodyfont
\settrue\c_font_synchronize}
-\mutable\let\savedfont\empty
+\mutable\lettonothing\savedfont
\installmacrostack\savedfont
@@ -401,9 +401,9 @@
%D local (sometimes in the textflow) size. We store these dimensions in two
%D \DIMENSION\ registers. These registers are not to be misused in calculations.
-\ifdefined\globalbodyfontsize \else \newdimen\globalbodyfontsize \fi \globalbodyfontsize=12pt
-\ifdefined\localbodyfontsize \else \newdimen\localbodyfontsize \fi \localbodyfontsize =\globalbodyfontsize
-\ifdefined\bodyfontsize \else \newdimen\bodyfontsize \fi \bodyfontsize =\globalbodyfontsize
+\ifdefined\globalbodyfontsize \else \newdimension\globalbodyfontsize \fi \globalbodyfontsize=12pt
+\ifdefined\localbodyfontsize \else \newdimension\localbodyfontsize \fi \localbodyfontsize =\globalbodyfontsize
+\ifdefined\bodyfontsize \else \newdimension\bodyfontsize \fi \bodyfontsize =\globalbodyfontsize
%D When we assign for instance 12pt to a \DIMENSION\ register the \type {\the}'d
%D value comes out as 12.0pt, which is often not the way users specify the bodyfont
@@ -419,11 +419,11 @@
\fi}
\def\normalizebodyfontsize_indeed#macro#body%
- {\edef#macro{\clf_nbfs\dimexpr#body\relax}%
+ {\edef#macro{\clf_normalizedbodyfontsize\dimexpr#body\relax}%
\gletcsname\??fontnormalizedbody\number\dimexpr#body\endcsname#macro}
\permanent\def\thenormalizedbodyfontsize#body%
- {\clf_nbfs\dimexpr#body\relax}
+ {\clf_normalizedbodyfontsize\dimexpr#body\relax}
\mutable\edef\normalizedglobalbodyfontsize{\thenormalizedbodyfontsize\bodyfontsize}
\mutable\edef\normalizedlocalbodyfontsize {\thenormalizedbodyfontsize\bodyfontsize}
@@ -458,12 +458,60 @@
\installcorenamespace{mappedfontsize}
-\permanent\tolerant\protected\def\mapfontsize[#from]#spacer[#to]%
- {\ifarguments\or\or\defcsname\??mappedfontsize\the\dimexpr#from\relax\endcsname{#to}\fi}
+% \permanent\tolerant\protected\def\mapfontsize[#from]#spacer[#to]%
+% {\ifarguments\or\or\defcsname\??mappedfontsize\the\dimexpr#from\relax\endcsname{#to}\fi}
+%
+% \def\font_basics_set_mapped_fontsize#from%
+% {\ifcsname\??mappedfontsize\the\dimexpr#from\relax\endcsname
+% \lastnamedcs\else#from%
+% \fi}
+
+% will become: mapmathfontsize
+
+%letcsname\??mappedfontsize\s!text \endcsname\!!plusone
+\letcsname\??mappedfontsize\s!script \endcsname\!!plustwo
+\letcsname\??mappedfontsize\s!scriptscript\endcsname\!!plusthree
+
+\permanent\tolerant\protected\def\mapfontsize[#class]#spacer[#from]#spacer[#to]%
+ {\ifarguments
+ % ignore
+ \or
+ % reset
+ \letcsname\??mappedfontsize#class:1\endcsname\undefined
+ \letcsname\??mappedfontsize#class:2\endcsname\undefined
+ \letcsname\??mappedfontsize#class:3\endcsname\undefined
+ \or
+ % unsupported
+ \or
+ % set
+ \defcsname
+ \??mappedfontsize
+ #class:%
+ \begincsname\??mappedfontsize#from\endcsname
+ \endcsname{#to}%
+ \fi}
+
+\permanent\tolerant\protected\def\checkedmapfontsize[#class]#spacer[#from]#spacer[#to]%
+ {\ifcsname\??mappedfontsize#class:\begincsname\??mappedfontsize#from\endcsname\endcsname
+ % keep (user) value
+ \else
+ \mapfontsize[#class][#from][#to]%
+ \fi}
+
+\permanent\tolerant\def\mappedfontsize#class#from%
+ {\begincsname
+ \??mappedfontsize
+ #class:%
+ \begincsname\??mappedfontsize#from\endcsname
+ \endcsname}
\def\font_basics_set_mapped_fontsize#from%
- {\ifcsname\??mappedfontsize\the\dimexpr#from\relax\endcsname
- \lastnamedcs\else#from%
+ {\ifcsname\??mappedfontsize\fontclass:\fontface\endcsname
+ %\the\dimexpr\lastnamedcs\dimexpr#from\relax\relax
+ %\the\dimexpr\lastnamedcs\dimexpr\bodyfontsize\relax\relax
+ \the\dimexpr\lastnamedcs\dimexpr\normalizedbodyfontsize\relax\relax
+ \else % we could use default
+ #from%
\fi}
\installcorenamespace{fontbodyknown}
@@ -612,7 +660,8 @@
\def\font_basics_check_text_bodyfont_step#whatever#body% size can be empty (checking needed as \bf is already defined)
{\ifcsname#whatever\endcsname\else
- \permanent\setugvalue{#whatever}{#body}%
+ %\permanent\setugvalue{#whatever}{#body}%
+ \permanent\protected\gdefcsname#whatever\endcsname{#body}%
\fi}
\def\font_basics_check_text_bodyfont#style#alternative#size% size can be empty (checking needed as \bf is already defined)
@@ -656,19 +705,21 @@
% 4:x{\definedfont[Serif sa 4]x}\par
% 5:x{\definedfont[Serif sa 5]x}\par
-\permanent\def\safontscale{\number\dimexpr\v_font_size_absolute\relax}
-\permanent\def\mofontscale{\number\dimexpr\font_basics_set_mapped_fontsize\v_font_size_absolute\relax}
+% \permanent\def\safontscale{\number\dimexpr\v_font_size_absolute\relax}
+% \permanent\def\mofontscale{\number\dimexpr\font_basics_set_mapped_fontsize\v_font_size_absolute\relax}
\mutable\let\somefontname \s!unknown
\mutable\let\somefontspec \s!unknown
\mutable\let\somefontfile \s!unknown
\mutable\let\somefontsize \zerocount
-\mutable\let\somefontsizex\empty
-\mutable\let\somefontsizey\empty
-\newcount\scaledfontmode % also used at the lua end
-\newcount\scaledfontsize % also used at the lua end
-\newcount\lastfontid % also used at the lua end / tex end
+\mutable\lettonothing\somefontsizex
+\mutable\lettonothing\somefontsizey
+
+% \newinteger\scaledfontmode % font-lib.mklx
+% \newinteger\scaledfontsize % font-lib.mklx
+% \newinteger\lastfontid % font-lib.mklx
+
\newtoks \everydefinefont
\aliased\let\c_font_feature_inheritance_fontnone \zerocount % none
@@ -681,28 +732,29 @@
\setnewconstant\c_font_feature_inheritance_mode \c_font_feature_inheritance_default
-\newdimen \d_font_scaled_text_face
-\newdimen \d_font_scaled_font_size
+\newdimension \d_font_scaled_text_face
+\newdimension \d_font_scaled_font_size
\newconditional\c_font_body_scale
\newfraction \f_font_body_scale
\newconditional\c_font_compact
-\newcount \c_font_scaled_glyph_scale
+\newinteger \c_font_scaled_glyph_scale
\immutable\dimensiondef\d_font_scaled_default 10pt
-\newcount\c_font_future_glyph_scale
-
% todo: move all to lua: use localcall for resolving filename
-\newcount\c_font_future_glyph_scale
-\newcount\c_font_scaled_font_mode_saved
-\newcount\c_font_scaled_points
+% \newcountinteger\c_font_future_glyph_scale % font-lib.mklx
+% \newcountinteger\c_font_scaled_font_mode_saved % font-lib.mklx
+% \newcountinteger\c_font_scaled_points % font-lib.mklx
+
+\mutable\lettonothing\somefontspec
-\mutable\let\somefontspec \empty
\mutable\let\lastrawfontcall \relax
\mutable\let\lastglobalrawfontcall\relax
+\immutable\dimensiondef\d_font_default_size 10pt
+
\protected\def\font_helpers_low_level_define
{\ifconditional\c_font_compact
\expandafter\font_helpers_low_level_define_compact
@@ -713,9 +765,9 @@
\protected\def\font_helpers_low_level_define_normal#specification#csname%
{% we can now set more at the lua end
\glet\somefontname\defaultfontfile
- \let\somefontsize\empty
- \let\somefontsizex\empty
- \let\somefontsizey\empty
+ \lettonothing\somefontsize
+ \lettonothing\somefontsizex
+ \lettonothing\somefontsizey
\clf_definefont_one{\detokenize\expandafter{\normalexpanded{#specification}}}% the escapestring catches at \somedimen
% sets \scaledfontmode and \somefontname and \somefontsize
\ifcase\fontface\relax
@@ -733,8 +785,10 @@
\fi
%
\ifcase\scaledfontmode\relax
- % none, avoid the designsize if possible
- \d_font_scaled_font_size-\plusthousand\scaledpoint
+ % mkiv, fails with glyphscale:
+ % \d_font_scaled_font_size-\plusthousand\scaledpoint
+ % so we just assume
+ \d_font_scaled_font_size\d_font_default_size
\or
% at
\d_font_scaled_font_size\somefontsize
@@ -743,7 +797,7 @@
\d_font_scaled_font_size\v_font_size_absolute\relax
\d_font_scaled_font_size\currentfontbodysize\d_font_scaled_font_size % uses \somefontsize set by lua
\or
- % mo
+ % mo % mapped font size will go away
\d_font_scaled_font_size\font_basics_set_mapped_fontsize\v_font_size_absolute
\d_font_scaled_font_size\currentfontbodysize\d_font_scaled_font_size
\or
@@ -777,24 +831,6 @@
\fi
\font_helpers_update_font_parameters
\font_helpers_update_font_class_parameters
- %\writestatus{fonts}{low level define: #csname/\somefontfile/\number\d_font_scaled_font_size/\fontface/\number\d_font_scaled_text_face}%
-% \clf_definefont_two
-% \ifempty\fontclass\s!false\else\s!true\fi
-% {#csname}%
-% {\somefontfile}%
-% \d_font_scaled_font_size
-% \c_font_feature_inheritance_mode
-% {\m_font_class_features}%
-% {\m_font_features}%
-% {\m_font_class_fallbacks}%
-% {\m_font_fallbacks}%
-% \fontface
-% \d_font_scaled_text_face
-% {\m_font_class_goodies}%
-% {\m_font_goodies}%
-% {\m_font_class_designsize}%
-% {\m_font_designsize}%
-% \scaledfontmode
\clf_definefont_two
\ifempty\fontclass\s!false\else\s!true\fi
{#csname}%
@@ -815,7 +851,7 @@
\relax
\ifcase\scaledfontsize
%\scaledfontsize\plusone
- \let\somefontspec\empty
+ \lettonothing\somefontspec
\let\lastrawfontcall\relax
\mutable\letcsname#csname\endcsname\relax
\else
@@ -828,9 +864,9 @@
\protected\def\font_helpers_low_level_define_compact#specification#csname%
{% we can now set more at the lua end
\glet\somefontname\defaultfontfile
- \let\somefontsize\empty
- \let\somefontsizex\empty
- \let\somefontsizey\empty
+ \lettonothing\somefontsize
+ \lettonothing\somefontsizex
+ \lettonothing\somefontsizey
\clf_definefont_one{\detokenize\expandafter{\normalexpanded{#specification}}}% the escapestring catches at \somedimen
% sets \scaledfontmode and \somefontname and \somefontsize
\ifcase\fontface\relax
@@ -848,8 +884,10 @@
\fi
%
\ifcase\scaledfontmode\relax
- % none, avoid the designsize if possible
- \d_font_scaled_font_size-\plusthousand\scaledpoint
+ % mkiv, fails with glyphscale:
+ % \d_font_scaled_font_size-\plusthousand\scaledpoint
+ % so we just assume
+ \d_font_scaled_font_size\d_font_default_size
\or
% at
\d_font_scaled_font_size\somefontsize
@@ -890,7 +928,8 @@
\scaledfontmode\zerocount
\fi
\c_font_future_glyph_scale\numexpr\plushundred*\d_font_scaled_font_size/\maxcard\relax
- \glyphscale\numexpr\plushundred*\d_font_scaled_font_size/\maxcard\relax % needed ? for math i guess
+ % \glyphscale\numexpr\plushundred*\d_font_scaled_font_size/\maxcard\relax % needed ? for math i guess
+ \glyphscale\numexpr\c_font_future_glyph_scale % needed ? for math i guess
% \d_font_scaled_font_size\d_font_scaled_default
% \d_font_scaled_text_face\d_font_scaled_default
%
@@ -924,7 +963,7 @@
\relax
\ifcase\scaledfontsize
%\scaledfontsize\plusone
- \let\somefontspec\empty
+ \lettonothing\somefontspec
\let\lastrawfontcall\relax
\mutable\letcsname#csname\endcsname\relax
\else
@@ -932,25 +971,46 @@
%
\glyphscale
\ifnum\c_font_scaled_font_mode_saved>\plusfour
+ % \c_font_scaled_points is set when we pass the font to the engine
\numexpr\plusthousand*\dimexpr\d_font_scaled_default\relax/\c_font_scaled_points\relax
\else
\c_font_future_glyph_scale
\fi
- \ifempty\somefontsizex\else
- \edef\somefontsizex{\glyphxscale\somefontsizex\relax}% todo: inserts relax
- \fi
- \ifempty\somefontsizey\else
- \edef\somefontsizey{\glyphyscale\somefontsizey\relax}%
- \fi
- \ifempty\fontclass\else\global\fi
- \mutable\protected\edefcsname#csname\endcsname
- {\setfontid\the\fontid\csname#csname\endcsname\relax
- \glyphscale\the\glyphscale\relax
- \somefontsizex
- \somefontsizey}%
- %
+ % experiment
+ \glyphxscale\ifempty\somefontsizex\plusthousand\else\somefontsizex\fi\relax
+ \glyphyscale\ifempty\somefontsizey\plusthousand\else\somefontsizey\fi\relax
+ % experiment
\expandafter\let\expandafter\lastrawfontcall\csname#csname\endcsname
- \the\everydefinefont
+ \ifrelax\lastrawfontcall
+ \lettonothing\somefontspec
+ \else
+ %
+ % \ifempty\fontclass\else\global\fi
+ % \mutable\protected\edefcsname#csname\endcsname
+ % {\setfontid\the\fontid\csname#csname\endcsname\relax
+ % \glyphscale\the\glyphscale\relax
+ % \somefontsizex
+ % \somefontsizey}%
+ % \expandafter\let\expandafter\lastrawfontcall\csname#csname\endcsname
+ %
+ % \mutable\protected\edef\lastrawfontcall
+ % {\setfontid\the\fontid\csname#csname\endcsname\relax
+ % \glyphscale\the\glyphscale\relax
+ % \somefontsizex
+ % \somefontsizey}%
+ % \mutable\ifempty\fontclass\letcsname\else\gletcsname\fi#csname\endcsname\lastrawfontcall
+ %
+ \mutable\fontspecdef\lastrawfontcall
+ \lastnamedcs
+ % scale \glyphscale
+ % xscale \glyphxscale
+ % yscale \glyphyscale
+ all \glyphscale \glyphxscale \glyphyscale
+ \relax
+ \mutable\ifempty\fontclass\letcsname\else\gletcsname\fi#csname\endcsname\lastrawfontcall
+ %
+ \the\everydefinefont
+ \fi
\fi
\c_font_feature_inheritance_mode\c_font_feature_inheritance_default}
@@ -980,7 +1040,7 @@
\newif\ifskipfontcharacteristics \skipfontcharacteristicstrue
-\tracingfonts\plussix % <id: name @ size>
+% \tracingfonts\plussix % <id: name @ size>
%D When fontclasses are used, we define the font global, since namespaces are
%D used. Otherwise we parse the specs each time.
@@ -996,8 +1056,8 @@
\newconstant\c_fonts_auto_language
-\letvalue{\??fontslanguage\v!auto}\plusone % experimental
-%letvalue{\??fontslanguage\v!yes }\plustwo % less efficient, for experiments
+\letcsname\??fontslanguage\v!auto\endcsname\plusone % experimental
+%letcsname\??fontslanguage\v!yes \endcsname\plustwo % less efficient, for experiments
\appendtoks
\c_fonts_auto_language
@@ -1104,7 +1164,7 @@
\newconditional\c_font_auto_size \settrue\c_font_auto_size
-\mutable\let\lastfontidentifier\empty
+\mutable\lettonothing\lastfontidentifier
\def\v_font_identifier_basic{\??fontinstancebasic \lastfontidentifier-\fontsize-\fontface}
\def\v_font_identifier_class{\??fontinstanceclass\fontclass-\lastfontidentifier-\fontsize-\fontface}
@@ -1115,14 +1175,15 @@
% \def\v_font_identifier_class{\??fontinstanceclass\fontclass-\lastfontidentifier-\fontstyle-\fontsize} % no \fontface
\def\font_basics_define_font_without_parameters#identifier#2%
- {\c_font_feature_inheritance_mode\c_font_feature_inheritance_fontonly
+ {\relax % intercept lookahead, in case we scan for a number
+ \c_font_feature_inheritance_mode\c_font_feature_inheritance_fontonly
\edef\lastfontidentifier{#identifier}%
\let\v_font_size_relative\v_font_rscale_default
\let\v_font_size_absolute\fontbody
\font_helpers_low_level_define{#2}\v_font_identifier_basic
\csname\v_font_identifier_basic\endcsname
\setfalse\c_font_auto_size
- \setfontcharacteristics
+ \the\everyfont % \setfontcharacteristics
\the\everyfontswitch
\let\v_font_identifier_basic\v_font_identifier_basic_saved}
@@ -1143,7 +1204,7 @@
\csname\v_font_identifier_class\endcsname
\setfalse\c_font_auto_size
\ifskipfontcharacteristics \else
- \setfontcharacteristics
+ \the\everyfont % \setfontcharacteristics
\the\everyfontswitch
\fi
\let\v_font_identifier_class\v_font_identifier_class_saved}
@@ -1152,7 +1213,7 @@
{\csname\v_font_identifier_class\endcsname
\setfalse\c_font_auto_size
\ifskipfontcharacteristics \else
- \setfontcharacteristics
+ \the\everyfont % \setfontcharacteristics
\the\everyfontswitch
\fi
\let\v_font_identifier_class\v_font_identifier_class_saved}
@@ -1207,7 +1268,7 @@
\ifcsname\??fontenvironments \s!default\s!text \endcsname\lastnamedcs\else
\csname\??fontenvironments \s!default \endcsname \fi}
-\setvalue{\??fontenvironments\s!default}{1}
+\defcsname\??fontenvironments\s!default\endcsname{1}
%D In the following macros we use \type {\currentxfontsize} to hold the current
%D x||size of the font. This enables us to support for instance \type {\sl} inside a
@@ -1302,10 +1363,10 @@
% todo: class:size
% todo: make assignments global
-\letvalue\??fontenvironments\empty % so we default to empty
+\letcsname\??fontenvironments\endcsname\empty % so we default to empty
\permanent\def\bodyfontvariable#parameter%
- {\csname\??fontenvironments
+ {\begincsname\??fontenvironments
\ifcsname\??fontenvironments\fontclass\normalizedbodyfontsize#parameter\endcsname\fontclass\normalizedbodyfontsize#parameter\orelse
\ifcsname\??fontenvironments\fontclass #parameter\endcsname\fontclass #parameter\orelse
\ifcsname\??fontenvironments \normalizedbodyfontsize#parameter\endcsname \normalizedbodyfontsize#parameter\orelse
@@ -1318,14 +1379,22 @@
\ifcsname\??fontenvironments \normalizedbodyfontsize#parameter\endcsname\lastnamedcs\orelse
\ifcsname\??fontenvironments\s!default #parameter\endcsname\lastnamedcs\fi}
-\permanent\def\bodyfontsizevariable#size#parameter%
- {\csname\??fontenvironments
+\permanent\def\bodyfontsizevariable#size#parameter% used in s-fonts-show
+ {\begincsname\??fontenvironments
\ifcsname\??fontenvironments\fontclass#size#parameter\endcsname\fontclass#size#parameter\orelse
\ifcsname\??fontenvironments\fontclass #parameter\endcsname\fontclass #parameter\orelse
+ \ifcsname\??fontenvironments\v!all #size#parameter\endcsname\v!all #size#parameter\orelse
\ifcsname\??fontenvironments #size#parameter\endcsname #size#parameter\orelse
\ifcsname\??fontenvironments\s!default #parameter\endcsname\s!default #parameter\fi
\endcsname}
+\def\font_bodyfontvariable#parameter%
+ {\ifcsname\??fontenvironments\fontclass\normalizedbodyfontsize#parameter\endcsname\lastnamedcs\orelse
+ \ifcsname\??fontenvironments\fontclass #parameter\endcsname\lastnamedcs\orelse
+ \ifcsname\??fontenvironments\v!all \normalizedbodyfontsize#parameter\endcsname\lastnamedcs\orelse
+ \ifcsname\??fontenvironments \normalizedbodyfontsize#parameter\endcsname\lastnamedcs\orelse
+ \ifcsname\??fontenvironments\s!default #parameter\endcsname\lastnamedcs\fi}
+
\def\font_bodyfontsizevariable#size#parameter%
{\ifcsname\??fontenvironments\fontclass#size#parameter\endcsname\lastnamedcs\orelse
\ifcsname\??fontenvironments\fontclass #parameter\endcsname\lastnamedcs\orelse
@@ -1389,13 +1458,13 @@
\def\font_basics_define_body_font_environment_empty[#body][#settings][#dummy]%
{\push_macro_fontclass
- \let\fontclass\empty
+ \lettonothing\fontclass
\font_basics_define_body_font_environment_class[][#body][#settings]%
\pop_macro_fontclass}
\def\font_basics_define_body_font_environment_unset[#body][#dummya][#dummyb]%
{\push_macro_fontclass
- \let\fontclass\empty
+ \lettonothing\fontclass
\font_basics_define_body_font_environment_class[][#body][]%
\pop_macro_fontclass}
@@ -1538,7 +1607,7 @@
\protected\def\font_basics_define_body_font_class_given[#1][#2][#3]#4%
{\push_macro_fontclass
\doifelse{#4}\s!default
- {\let\fontclass\empty}
+ {\lettonothing\fontclass}
{\def\fontclass{#4}}%
\definebodyfont[#1][#2][#3]%
\pop_macro_fontclass}
@@ -1652,6 +1721,8 @@
%D Here the rest concerns rl or lr so in this case it is not a size specifier but
%D a directional one.
+%D no need for the: one two rest
+
\protected\def\font_basics_define_body_font_nop_mm[#one#two#rest=#value]% local
{%\ifcsname\s!mm\endcsname\else\font_basics_check_fontname_combination\s!mm{#one#two}{#rest}\fi
\letcsname\??fontinstanceclass\m_font_asked_body-\s!mm-#one#two#rest-1\endcsname\undefined
@@ -1846,8 +1917,8 @@
\edef\m_font_step{\font_bodyfontvariable\m_font_keyword}%
\normalexpanded{\font_helpers_set_font_set_font_option_body{#method}{\m_font_step}{#message}}%
\orelse\ifx\m_font_keyword\v!reset
- \let\fontstyle\empty % new 31/7/2006
- \let\fontsize \empty
+ \lettonothing\fontstyle % new 31/7/2006
+ \lettonothing\fontsize
\orelse\ifcsname\??fontstyle\m_font_keyword\endcsname
\let\fontstyle\m_font_keyword
\else
@@ -1879,7 +1950,7 @@
% we need to check the fontclass
\permanent\def\registerfontclass#class%
- {\letgvalue{\??fontclassyes#class}\v!yes} % global ?
+ {\gletcsname\??fontclassyes#class\endcsname\v!yes} % global ?
\permanent\def\setcurrentfontclass#class%
{\ifcsname\??fontclassyes#class\endcsname
@@ -1897,11 +1968,6 @@
\fi
-% \let\defaultfontstyle \s!rm
-% \let\defaultfontalternative\s!tf
-% \let\defaultfontsize \empty
-% \let\defaultfontface \!!zerocount
-
%D So far for synchronisation. (We can inline the following macros.)
\permanent\protected\def\setcurrentfont#body#style#alternative#size% not used
@@ -1974,7 +2040,7 @@
\fi
\setfalse\c_font_auto_size
\ifskipfontcharacteristics
- \setfontcharacteristics
+ \the\everyfont % \setfontcharacteristics
\the\everyfontswitch
\fi}
@@ -2124,10 +2190,10 @@
{\font_helpers_check_nested_x_fontsize
\font_helpers_set_current_font_xxx_alternative{#alternative}{5}\scriptscriptstyle
\currentxfontsize\plustwo
- \enforced\let\tx\empty
- \enforced\let\txx\empty}
+ \enforced\lettonothing\tx
+ \enforced\lettonothing\txx}
-%D This alterative is not really needed, but for old time's sake we keep it there.
+%D This alternative is not really needed, but for old time's sake we keep it there.
%D We can speed it up when needed.
\def\font_helpers_set_current_font_x_style_alternative #alternative{\csname#alternative\endcsname\tx}
@@ -2159,7 +2225,7 @@
\newconditional\c_font_inherit_scale
-\def\font_scale_inherit#1%
+\def\font_scale_inherit_normal#1%
{\begingroup
\scratchcounterone\fontid\font\relax
\currentxfontsize\plusone
@@ -2170,35 +2236,94 @@
\scratchcounterthree\fontid\font\relax
% parent -> x -> xx
% parent -> xx
- %
- % this can become \integerdef
- %
- \global\expandafter\chardef\csname\??fontscalex \number\scratchcounterone\endcsname\scratchcountertwo
- \global\expandafter\chardef\csname\??fontscalexx\number\scratchcounterone\endcsname\scratchcounterthree
- \global\expandafter\chardef\csname\??fontscalex \number\scratchcountertwo\endcsname\scratchcounterthree
- \global\expandafter\chardef\csname\??fontscalexx\number\scratchcountertwo\endcsname\scratchcounterthree
+ \global\expandafter\integerdef\csname\??fontscalex \number\scratchcounterone\endcsname\scratchcountertwo
+ \global\expandafter\integerdef\csname\??fontscalexx\number\scratchcounterone\endcsname\scratchcounterthree
+ \global\expandafter\integerdef\csname\??fontscalex \number\scratchcountertwo\endcsname\scratchcounterthree
+ \global\expandafter\integerdef\csname\??fontscalexx\number\scratchcountertwo\endcsname\scratchcounterthree
\endgroup
\setfontid\csname#1\number\fontid\font\endcsname}
-\def\font_scale_inherit_x
+\def\font_scale_inherit_normal_x
{\ifcsname\??fontscalex\number\fontid\font\endcsname
\setfontid\lastnamedcs
\else
- \font_scale_inherit\??fontscalex
+ \font_scale_inherit_normal\??fontscalex
\fi
\ifskipfontcharacteristics
- \setfontcharacteristics
+ \the\everyfont % \setfontcharacteristics
\the\everyfontswitch
\fi}
-\def\font_scale_inherit_xx
+\def\font_scale_inherit_normal_xx
{\ifcsname\??fontscalexx\number\fontid\font\endcsname
\setfontid\lastnamedcs
\else
- \font_scale_inherit\??fontscalexx
+ \font_scale_inherit_normal\??fontscalexx
+ \fi
+ \ifskipfontcharacteristics
+ \the\everyfont % \setfontcharacteristics
+ \the\everyfontswitch
+ \fi}
+
+\def\font_scale_inherit_compact#1%
+ {\begingroup
+ \scratchcounterone\fontid\font\relax
+ \currentxfontsize\plusone
+ \scratchcountertwo\numericscale\font_currentfontscale
+ \currentxfontsize\plustwo
+ \scratchcounterthree\numericscale\font_currentfontscale
+ % parent -> x -> xx
+ % parent -> xx
+ \global\expandafter\fontspecdef\csname\??fontscalex \number\scratchcounterone:\number\glyphscale\endcsname
+ \scratchcounterone
+ scale \numexpr\glyphscale*\scratchcountertwo/1000\relax
+ % scale \glyphscale
+ % xscale \scratchcountertwo
+ % yscale \scratchcountertwo
+ \relax
+ \global\expandafter\fontspecdef\csname\??fontscalexx\number\scratchcounterone:\number\glyphscale\endcsname
+ \scratchcounterone
+ scale \numexpr\glyphscale*\scratchcounterthree/1000\relax
+ % scale \glyphscale
+ % xscale \scratchcounterthree
+ % yscale \scratchcounterthree
+ \relax
+ \global\expandafter\fontspecdef\csname\??fontscalex \number\scratchcountertwo:\number\glyphscale\endcsname
+ \scratchcounterone
+ scale \numexpr\glyphscale*\scratchcounterthree/1000\relax
+ % scale \glyphscale
+ % xscale \scratchcounterthree
+ % yscale \scratchcounterthree
+ \relax
+ \global\expandafter\fontspecdef\csname\??fontscalexx\number\scratchcountertwo:\number\glyphscale\endcsname
+ \scratchcounterone
+ scale \numexpr\glyphscale*\scratchcounterthree/1000\relax
+ % scale \glyphscale
+ % xscale \scratchcounterthree
+ % yscale \scratchcounterthree
+ \relax
+ \endgroup
+ \csname#1\number\fontid\font:\number\glyphscale\endcsname}
+
+\def\font_scale_inherit_compact_x
+ {\ifcsname\??fontscalex\number\fontid\font:\number\glyphscale\endcsname
+ \lastnamedcs
+ \else
+ \font_scale_inherit_compact\??fontscalex
+ \fi
+ \ifskipfontcharacteristics
+ \the\everyfont % \setfontcharacteristics
+ \the\everyfontswitch
+ \fi}
+
+\def\font_scale_inherit_compact_xx
+ {\ifcsname\??fontscalexx\number\fontid\font:\number\glyphscale\endcsname
+ \lastnamedcs
+ \else
+ \font_scale_inherit_compact\??fontscalexx
\fi
\ifskipfontcharacteristics
- \setfontcharacteristics
+ \the\everyfont % \setfontcharacteristics
\the\everyfontswitch
\fi}
@@ -2219,7 +2344,11 @@
\ifmmode
\scriptstyle
\orelse\ifconditional\c_font_inherit_scale
- \font_scale_inherit_x
+ \ifconditional\c_font_compact
+ \font_scale_inherit_compact_x
+ \else
+ \font_scale_inherit_normal_x
+ \fi
\else
\font_scale_defined_x
\fi
@@ -2230,19 +2359,27 @@
\ifmmode
\scriptscriptstyle
\orelse\ifconditional\c_font_inherit_scale
- \font_scale_inherit_xx
+ \ifconditional\c_font_compact
+ \font_scale_inherit_compact_xx
+ \else
+ \font_scale_inherit_normal_xx
+ \fi
\else
\font_scale_defined_xx
\fi
- \enforced\let\tx \empty
- \enforced\let\txx\empty}
+ \enforced\lettonothing\tx
+ \enforced\lettonothing\txx}
\permanent\protected\def\sx
{\currentxfontsize\plusone
\ifmmode
\scriptstyle
\else
- \font_scale_inherit_x
+ \ifconditional\c_font_compact
+ \font_scale_inherit_compact_x
+ \else
+ \font_scale_inherit_normal_x
+ \fi
\fi
\enforced\let\tx\txx
\enforced\let\sx\sxx}
@@ -2252,12 +2389,16 @@
\ifmmode
\scriptscriptstyle
\else
- \font_scale_inherit_xx
+ \ifconditional\c_font_compact
+ \font_scale_inherit_compact_xx
+ \else
+ \font_scale_inherit_normal_xx
+ \fi
\fi
- \enforced\let\tx \empty
- \enforced\let\txx\empty
- \enforced\let\sx \empty
- \enforced\let\sxx\empty}
+ \enforced\lettonothing\tx
+ \enforced\lettonothing\txx
+ \enforced\lettonothing\sx
+ \enforced\lettonothing\sxx}
\permanent\protected\def\useinheritxsizes{\settrue \c_font_inherit_scale} % not yet public, playground for WS and me
\permanent\protected\def\usedefinedxsizes{\setfalse\c_font_inherit_scale} % not yet public, playground for WS and me
@@ -2274,6 +2415,8 @@
%D math families and finally we activate the default typeface and also set the font
%D specific parameters assigned to \type {\everybodyfont}.
+% todo: per class
+
\permanent\protected\def\textface {\currentbodyfontdimension\s!text }
\permanent\protected\def\scriptface {\currentbodyfontdimension\s!script }
\permanent\protected\def\scriptscriptface{\currentbodyfontdimension\s!scriptscript}
@@ -2301,6 +2444,28 @@
}%
\gletcsname\??fontbodyfaces\fontbody\endcsname\font_basics_set_faces}
+% \permanent\def\currentbodyfontdimension#parameter% there can be factors here
+% {\the\dimexpr
+% \ifcsname\??fontenvironments\fontclass\normalizedbodyfontsize#parameter\endcsname
+% \lastnamedcs
+% \orelse\ifcsname\??fontenvironments\fontclass\s!default#parameter\endcsname
+% \lastnamedcs
+% \dimexpr\normalizedbodyfontsize\relax
+% \orelse\ifcsname\??fontenvironments\normalizedbodyfontsize#parameter\endcsname
+% \lastnamedcs
+% \else
+% \csname\??fontenvironments\s!default#parameter\endcsname
+% \dimexpr\normalizedbodyfontsize\relax
+% \fi
+% \relax}
+
+% \setupbodyfontenvironment [all] [12pt] [x=4pt,small=4pt]
+% \setupbodyfontenvironment [pagella] [12pt] [x=4pt,small=4pt]
+%
+% \setupbodyfont[pagella,12pt]
+%
+% \starttext normal {\tx tx} {\small small} \stoptext
+
\permanent\def\currentbodyfontdimension#parameter% there can be factors here
{\the\dimexpr
\ifcsname\??fontenvironments\fontclass\normalizedbodyfontsize#parameter\endcsname
@@ -2308,6 +2473,8 @@
\orelse\ifcsname\??fontenvironments\fontclass\s!default#parameter\endcsname
\lastnamedcs
\dimexpr\normalizedbodyfontsize\relax
+ \orelse\ifcsname\??fontenvironments\v!all\normalizedbodyfontsize#parameter\endcsname
+ \lastnamedcs
\orelse\ifcsname\??fontenvironments\normalizedbodyfontsize#parameter\endcsname
\lastnamedcs
\else
@@ -2614,23 +2781,28 @@
\protected\def\font_basics_predefined#1%
{\font_basics_predefine{\??predefinedfont#1}{#1}}
-%D Handy helper:
-
-\permanent\protected\def\savedefinedfont[#1]% hm, how about scales
- {\bgroup
- \definedfont[#1]%
- \xdef\saveddefinedfontid {\number\fontid\font}%
- \xdef\saveddefinedfontname{\fontname\font}%
- \egroup}
-
-\mutable\def\saveddefinedfontid {\number\fontid\font}
-\mutable\def\saveddefinedfontname{\fontname\font}
+% %D Handy helper:
+%
+% % not used and also not okay wrt scales
+%
+% \permanent\protected\def\savedefinedfont[#1]% hm, how about scales
+% {\bgroup
+% \definedfont[#1]%
+% \xdef\saveddefinedfontid {\number\fontid\font}%
+% \xdef\saveddefinedfontname{\fontname\font}%
+% \egroup}
+%
+% \mutable\def\saveddefinedfontid {\number\fontid\font}
+% \mutable\def\saveddefinedfontname{\fontname\font}
%D Ugly helper:
\permanent\protected\def\saverunningstyleandcolor
{\enforced\permanent\protected\edef\restorerunningstyleandcolor
{\setfontid \number\fontid\font
+ \glyphscale \the\glyphscale
+ \glyphxscale \the\glyphxscale
+ \glyphyscale \the\glyphyscale
\c_attr_colormodel \the\c_attr_colormodel
\c_attr_color \the\c_attr_color
\c_attr_transparency\the\c_attr_transparency
@@ -2690,4 +2862,32 @@
\permanent\protected\def\usefontpath[#1]%
{\clf_addfontpath{#1}}
+%D Experiment (one can use a list):
+%D
+%D \starttyping
+%D \setupfonts
+%D [serif=dejavuserif*default,
+%D sans=dejavusans*default,
+%D mono=dejavusansmono*none]
+%D
+%D {\rm A \char1234\ B \char1236\ C}
+%D {\ss A \char1234\ B \char1236\ C}
+%D {\ss A \char1234\ B \char1236\ C}
+%D \stoptyping
+
+\appendtoks
+ \edef\m_list{\fontsparameter\s!serif}%
+ \ifempty\m_list\else
+ \registerfallbackfont[\s!serif][\m_list]%
+ \fi
+ \edef\m_list{\fontsparameter\s!sans}%
+ \ifempty\m_list\else
+ \registerfallbackfont[\s!sans][\m_list]%
+ \fi
+ \edef\m_list{\fontsparameter\s!mono}%
+ \ifempty\m_list\else
+ \registerfallbackfont[\s!mono][\m_list]%
+ \fi
+\to \everysetupfonts
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-lib.mklx b/Master/texmf-dist/tex/context/base/mkxl/font-lib.mklx
index 72c2d4ba9f5..6caf1daf8df 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-lib.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-lib.mklx
@@ -15,54 +15,71 @@
\unprotect
+\newinteger\scaledfontmode
+\newinteger\scaledfontsize
+\newinteger\lastfontid
+
+\newinteger\c_font_future_glyph_scale
+\newinteger\c_font_scaled_font_mode_saved
+\newinteger\c_font_scaled_points
+
+\ifdefined\globalbodyfontsize \else \newdimension\globalbodyfontsize \fi
+\ifdefined\localbodyfontsize \else \newdimension\localbodyfontsize \fi
+\ifdefined\bodyfontsize \else \newdimension\bodyfontsize \fi
+
\registerctxluafile{font-ini}{autosuffix}
\registerctxluafile{font-log}{}
\registerctxluafile{font-con}{autosuffix} % kind of early
%registerctxluafile{font-cft}{}
\registerctxluafile{font-enc}{}
\registerctxluafile{font-fmp}{autosuffix}
-\registerctxluafile{font-agl}{} % if needed we can comment this and delay loading
-\registerctxluafile{font-cid}{} % cid maps
-\registerctxluafile{font-map}{optimize}
+\registerctxluafile{font-agl}{} % if needed we can comment this and delay loading
+\registerctxluafile{font-cid}{} % cid maps
+\registerctxluafile{font-map}{}
% helpers
-\registerctxluafile{font-otr}{optimize} % opentype fontloader
-\registerctxluafile{font-web}{} % opentype fontloader
-\registerctxluafile{font-cff}{optimize} % quadratic outlines
-\registerctxluafile{font-ttf}{optimize} % cubic outlines
-\registerctxluafile{font-dsp}{optimize} % ... for this one
-\registerctxluafile{font-hsh}{} % hashes used by context
-\registerctxluafile{font-vir}{}
+\registerctxluafile{font-otr}{} % opentype fontloader
+\registerctxluafile{font-web}{} % opentype fontloader
+\registerctxluafile{font-cff}{autosuffix} % quadratic outlines
+\registerctxluafile{font-ttf}{autosuffix} % cubic outlines
+\registerctxluafile{font-dsp}{autosuffix}
+\registerctxluafile{font-hsh}{autosuffix} % hashes used by context
\registerctxluafile{font-vfc}{autosuffix}
-\registerctxluafile{font-prv}{} % needs hashes
-\registerctxluafile{font-nod}{optimize}
-\registerctxluafile{font-oti}{} % otf initialization
-\registerctxluafile{font-ott}{} % otf tables (first)
-\registerctxluafile{font-otl}{}
+\registerctxluafile{font-prv}{} % needs hashes
+\registerctxluafile{font-vir}{}
+\registerctxluafile{font-nod}{}
+\registerctxluafile{font-oti}{} % otf initialization
+\registerctxluafile{font-ott}{} % otf tables (first)
+\registerctxluafile{font-otl}{autosuffix}
\registerctxluafile{font-oto}{}
-\registerctxluafile{font-otj}{autosuffix,optimize}
+\registerctxluafile{font-otj}{autosuffix}
\registerctxluafile{font-oup}{}
\registerctxluafile{font-ota}{autosuffix}
-% \registerctxluafile{font-ots-pre-scale}{autosuffix,optimize}
-\registerctxluafile{font-ots}{autosuffix,optimize}
-\registerctxluafile{font-otd}{optimize}
+\registerctxluafile{font-ots}{autosuffix}
+\registerctxluafile{font-otd}{autosuffix}
\registerctxluafile{font-otc}{}
\registerctxluafile{font-oth}{}
-\registerctxluafile{font-osd}{}
+% \doifelsefileexists{font-osd-new.lmt}{
+% \registerctxluafile{font-osd-new}{autosuffix}
+% } {
+ \registerctxluafile{font-osd}{}
+% }
%registerctxluafile{font-osm}{}
\registerctxluafile{font-ogr}{autosuffix}
% we use otf code for type one
-\registerctxluafile{font-onr}{optimize}
-\registerctxluafile{font-one}{optimize}
+\registerctxluafile{font-onr}{autosuffix}
+\registerctxluafile{font-one}{autosuffix}
\registerctxluafile{font-afk}{}
+\registerctxluafile{font-txt}{autosuffix}
+
% tfm
-\registerctxluafile{font-tpk}{optimize}
-\registerctxluafile{font-tfm}{}
+\registerctxluafile{font-tpk}{autosuffix}
+\registerctxluafile{font-tfm}{autosuffix}
% name database
@@ -79,14 +96,12 @@
\registerctxluafile{node-fnt}{autosuffix} % here
-\registerctxluafile{font-mps}{autosuffix} % outline fun
-
\registerctxluafile{font-lua}{}
\registerctxluafile{font-enh}{autosuffix}
\registerctxluafile{good-ini}{}
-\registerctxluafile{good-gen}{}
+\registerctxluafile{good-gen}{autosuffix}
\registerctxluafile{good-ctx}{}
\registerctxluafile{good-mth}{autosuffix}
@@ -95,26 +110,25 @@
% extensions, order matters
-\registerctxluafile{font-imp-ligatures}{}
+\registerctxluafile{font-imp-checks}{autosuffix}
+\registerctxluafile{font-imp-ligatures}{autosuffix}
\registerctxluafile{font-imp-tex}{}
\registerctxluafile{font-imp-reorder}{}
-\registerctxluafile{font-imp-properties}{}
+\registerctxluafile{font-imp-properties}{autosuffix}
\registerctxluafile{font-imp-unicode}{}
+\registerctxluafile{font-imp-text}{autosuffix}
\registerctxluafile{font-imp-math}{autosuffix}
\registerctxluafile{font-imp-notused}{}
-\registerctxluafile{font-imp-effects}{}
-\registerctxluafile{font-imp-quality}{}
+\registerctxluafile{font-imp-effects}{autosuffix}
+\registerctxluafile{font-imp-quality}{autosuffix}
\registerctxluafile{font-imp-italics}{}
\registerctxluafile{font-imp-dimensions}{}
\registerctxluafile{font-imp-spacekerns}{}
\registerctxluafile{font-imp-tweaks}{}
\registerctxluafile{font-imp-combining}{}
-
-\doifelsefileexists{font-imp-scripts.lua} {
- \registerctxluafile{font-imp-scripts}{}
-} {
- % not yet, lmtx feature
-}
+\registerctxluafile{font-imp-scripts}{autosuffix}
+\registerctxluafile{font-imp-sanitize}{autosuffix} % fixes for indic fonts
+\registerctxluafile{font-imp-digits}{autosuffix}
\registerctxluafile{font-imp-tracing}{autosuffix} % comes last!
@@ -122,7 +136,7 @@
\registerctxluafile{font-aux}{}
-\registerctxluafile{font-lig}{} % only for experiments so try to avoid it
+\registerctxluafile{font-lig}{autosuffix} % only for experiments so try to avoid it
%D Some low level helpers
%D
@@ -153,4 +167,14 @@
\permanent \def\cleanfontname #1{\clf_cleanfontname{#1}}
\permanent\protected\def\setfontofid #1{\clf_setfontofid\numexpr#1\relax}
+%D I have to put it someplace, so here:
+%D
+%D \starttyping
+%D \definefontfeature[test][mode=plug,features=text]
+%D \definefont[FontA][Serif*test]
+%D \definefont[FontB][Serif*test]
+%D {\FontA aaa}{\FontB\glyphscale 1200 bbb}
+%D {\FontA aaa}{\FontB\glyphscale 1200 bbb}
+%D \stoptyping
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-lig.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-lig.lmt
new file mode 100644
index 00000000000..9a68b4697d3
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-lig.lmt
@@ -0,0 +1,41 @@
+if not modules then modules = { } end modules ['font-lig'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+}
+
+-- We keep this for compatibility reasons and demonstration purposes. We delay
+-- definition of the data table in order to save some memory.
+
+-- data['c'] = { 'a', 'b' }
+-- data['d'] = { 'c', 'c' }
+
+local next = next
+local setmetatableindex = table.setmetatableindex
+
+local data = { }
+
+setmetatableindex(data,function(t,k)
+ for first, seconds in next, characters.graphemes do
+ for second, combined in next, seconds do
+ data[combined] = { first, second }
+ end
+ end
+ setmetatableindex(data)
+ return t[k]
+end)
+
+local feature = {
+ name = "collapse",
+ type = "ligature",
+ prepend = true,
+ dataset = {
+ { data = data }, -- twice ?
+ { data = data },
+ }
+}
+
+-----.handlers.afm.addfeature(feature)
+fonts.handlers.otf.addfeature(feature)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-map.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-map.lmt
new file mode 100644
index 00000000000..be132138453
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-map.lmt
@@ -0,0 +1,518 @@
+if not modules then modules = { } end modules ['font-map'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local tonumber, next, type = tonumber, next, type
+
+local match, format, find, concat, gsub, lower = string.match, string.format, string.find, table.concat, string.gsub, string.lower
+local P, R, S, C, Ct, Cc, lpegmatch = lpeg.P, lpeg.R, lpeg.S, lpeg.C, lpeg.Ct, lpeg.Cc, lpeg.match
+local formatters = string.formatters
+local sortedhash, sortedkeys = table.sortedhash, table.sortedkeys
+
+local trace_loading = false trackers.register("fonts.loading", function(v) trace_loading = v end)
+local trace_mapping = false trackers.register("fonts.mapping", function(v) trace_mapping = v end)
+
+local report_fonts = logs.reporter("fonts","loading") -- not otf only
+
+-- force_ligatures was true for a while so that these emoji's with bad names work too
+
+local force_ligatures = false directives.register("fonts.mapping.forceligatures",function(v) force_ligatures = v end)
+
+local fonts = fonts or { }
+local mappings = fonts.mappings or { }
+fonts.mappings = mappings
+
+local allocate = utilities.storage.allocate
+
+local hex = R("AF","af","09")
+local hexfour = (hex*hex*hex^-2) / function(s) return tonumber(s,16) end
+local hexsix = (hex*hex*hex^-4) / function(s) return tonumber(s,16) end
+local dec = (R("09")^1) / tonumber
+local period = P(".")
+local unicode = (P("uni") + P("UNI")) * (hexfour * (period + P(-1)) * Cc(false) + Ct(hexfour^1) * Cc(true)) -- base planes
+local ucode = (P("u") + P("U") ) * (hexsix * (period + P(-1)) * Cc(false) + Ct(hexsix ^1) * Cc(true)) -- extended
+local index = P("index") * dec * Cc(false)
+
+local parser = unicode + ucode + index
+local parsers = { }
+
+local function makenameparser(str)
+ if not str or str == "" then
+ return parser
+ else
+ local p = parsers[str]
+ if not p then
+ p = P(str) * period * dec * Cc(false)
+ parsers[str] = p
+ end
+ return p
+ end
+end
+
+local f_single = formatters["%04X"]
+local f_double = formatters["%04X%04X"]
+local s_unknown = "FFFD"
+
+local function tounicode16(unicode)
+ if unicode < 0xD7FF or (unicode > 0xDFFF and unicode <= 0xFFFF) then
+ return f_single(unicode)
+ elseif unicode >= 0x00E000 and unicode <= 0x00F8FF then
+ return s_unknown
+ elseif unicode >= 0x0F0000 and unicode <= 0x0FFFFF then
+ return s_unknown
+ elseif unicode >= 0x100000 and unicode <= 0x10FFFF then
+ return s_unknown
+ elseif unicode >= 0x00D800 and unicode <= 0x00DFFF then
+ return s_unknown
+ else
+ unicode = unicode - 0x10000
+ return f_double((k//0x400)+0xD800,unicode%0x400+0xDC00)
+ end
+end
+
+local function tounicode16sequence(unicodes)
+ local t = { }
+ for l=1,#unicodes do
+ local u = unicodes[l]
+ if u < 0xD7FF or (u > 0xDFFF and u <= 0xFFFF) then
+ t[l] = f_single(u)
+ elseif unicode >= 0x00E000 and unicode <= 0x00F8FF then
+ t[l] = s_unknown
+ elseif unicode >= 0x0F0000 and unicode <= 0x0FFFFF then
+ t[l] = s_unknown
+ elseif unicode >= 0x100000 and unicode <= 0x10FFFF then
+ t[l] = s_unknown
+ -- elseif unicode >= 0x00D800 and unicode <= 0x00DFFF then
+ elseif unicode >= 0x00D7FF and unicode <= 0x00DFFF then
+ t[l] = s_unknown
+ else
+ u = u - 0x10000
+ t[l] = f_double((k//0x400)+0xD800,u%0x400+0xDC00)
+ end
+ end
+ return concat(t)
+end
+
+
+local hash = { }
+local conc = { }
+
+table.setmetatableindex(hash,function(t,k)
+ local v
+ if k < 0xD7FF or (k > 0xDFFF and k <= 0xFFFF) then
+ v = f_single(k)
+ else
+ local k = k - 0x10000
+ v = f_double((k//0x400)+0xD800,k%0x400+0xDC00)
+ end
+ t[k] = v
+ return v
+end)
+
+local function tounicode(k)
+ if type(k) == "table" then
+ local n = #k
+ for l=1,n do
+ conc[l] = hash[k[l]]
+ end
+ return concat(conc,"",1,n)
+ elseif k >= 0x00E000 and k <= 0x00F8FF then
+ return s_unknown
+ elseif k >= 0x0F0000 and k <= 0x0FFFFF then
+ return s_unknown
+ elseif k >= 0x100000 and k <= 0x10FFFF then
+ return s_unknown
+ -- elseif k >= 0x00D800 and k <= 0x00DFFF then
+ elseif k >= 0x00D7FF and k <= 0x00DFFF then
+ return s_unknown
+ else
+ return hash[k]
+ end
+end
+
+local function fromunicode16(str)
+ if #str == 4 then
+ return tonumber(str,16)
+ else
+ local l, r = match(str,"(....)(....)")
+ return 0x10000 + (tonumber(l,16)-0xD800)*0x400 + tonumber(r,16) - 0xDC00
+ end
+end
+
+-- Slightly slower:
+--
+-- local p = C(4) * (C(4)^-1) / function(l,r)
+-- if r then
+-- return (tonumber(l,16))*0x400 + tonumber(r,16) - 0xDC00
+-- else
+-- return tonumber(l,16)
+-- end
+-- end
+--
+-- local function fromunicode16(str)
+-- return lpegmatch(p,str)
+-- end
+
+mappings.makenameparser = makenameparser
+mappings.tounicode = tounicode
+mappings.tounicode16 = tounicode16
+mappings.tounicode16sequence = tounicode16sequence
+mappings.fromunicode16 = fromunicode16
+
+-- mozilla emoji has bad lig names: name = gsub(name,"(u[a-f0-9_]+)%-([a-f0-9_]+)","%1_%2")
+
+local ligseparator = P("_")
+local varseparator = P(".")
+local namesplitter = Ct(C((1 - ligseparator - varseparator)^1) * (ligseparator * C((1 - ligseparator - varseparator)^1))^0)
+
+-- maybe: ff fi fl ffi ffl => f_f f_i f_l f_f_i f_f_l
+
+-- local function test(name)
+-- local split = lpegmatch(namesplitter,name)
+-- print(string.formatters["%s: [% t]"](name,split))
+-- end
+
+-- test("i.f_")
+-- test("this")
+-- test("this.that")
+-- test("japan1.123")
+-- test("such_so_more")
+-- test("such_so_more.that")
+
+-- to be completed .. for fonts that use unicodes for ligatures which
+-- is a actually a bad thing and should be avoided in the first place
+
+do
+
+ local overloads = {
+ IJ = { name = "I_J", unicode = { 0x49, 0x4A }, mess = 0x0132 },
+ ij = { name = "i_j", unicode = { 0x69, 0x6A }, mess = 0x0133 },
+ ff = { name = "f_f", unicode = { 0x66, 0x66 }, mess = 0xFB00 },
+ fi = { name = "f_i", unicode = { 0x66, 0x69 }, mess = 0xFB01 },
+ fl = { name = "f_l", unicode = { 0x66, 0x6C }, mess = 0xFB02 },
+ ffi = { name = "f_f_i", unicode = { 0x66, 0x66, 0x69 }, mess = 0xFB03 },
+ ffl = { name = "f_f_l", unicode = { 0x66, 0x66, 0x6C }, mess = 0xFB04 },
+ fj = { name = "f_j", unicode = { 0x66, 0x6A } },
+ fk = { name = "f_k", unicode = { 0x66, 0x6B } },
+
+ -- endash = { name = "endash", unicode = 0x2013, mess = 0x2013 },
+ -- emdash = { name = "emdash", unicode = 0x2014, mess = 0x2014 },
+ }
+
+ local o = allocate { }
+
+ for k, v in next, overloads do
+ local name = v.name
+ local mess = v.mess
+ if name then
+ o[name] = v
+ end
+ if mess then
+ o[mess] = v
+ end
+ o[k] = v
+ end
+
+ mappings.overloads = o
+
+end
+
+function mappings.addtounicode(data,filename,checklookups,forceligatures)
+ local resources = data.resources
+ local unicodes = resources.unicodes
+ if not unicodes then
+ if trace_mapping then
+ report_fonts("no unicode list, quitting tounicode for %a",filename)
+ end
+ return
+ end
+ local properties = data.properties
+ local descriptions = data.descriptions
+ local overloads = mappings.overloads
+ -- we need to move this code
+ unicodes['space'] = unicodes['space'] or 32
+ unicodes['hyphen'] = unicodes['hyphen'] or 45
+ unicodes['zwj'] = unicodes['zwj'] or 0x200D
+ unicodes['zwnj'] = unicodes['zwnj'] or 0x200C
+ --
+ local private = fonts.constructors and fonts.constructors.privateoffset or 0xF0000 -- 0x10FFFF
+ local unicodevector = fonts.encodings.agl.unicodes or { } -- loaded runtime in context
+ local contextvector = fonts.encodings.agl.ctxcodes or { } -- loaded runtime in context
+ local missing = { }
+ local nofmissing = 0
+ local oparser = nil
+ local cidnames = nil
+ local cidcodes = nil
+ local cidinfo = properties.cidinfo
+ local usedmap = cidinfo and fonts.cid.getmap(cidinfo)
+ local uparser = makenameparser() -- hm, every time?
+ if usedmap then
+ oparser = usedmap and makenameparser(cidinfo.ordering)
+ cidnames = usedmap.names
+ cidcodes = usedmap.unicodes
+ end
+ local ns = 0
+ local nl = 0
+ --
+ -- in order to avoid differences between runs due to hash randomization we
+ -- run over a sorted list
+ --
+ local dlist = sortedkeys(descriptions)
+ --
+ -- for du, glyph in next, descriptions do
+ for i=1,#dlist do
+ local du = dlist[i]
+ local glyph = descriptions[du]
+ local name = glyph.name
+ if name then
+ local overload = overloads[name] or overloads[du]
+ if overload then
+ -- get rid of weird ligatures
+ -- glyph.name = overload.name
+ glyph.unicode = overload.unicode
+ else
+ local gu = glyph.unicode -- can already be set (number or table)
+ if not gu or gu == -1 or du >= private or (du >= 0xE000 and du <= 0xF8FF) or du == 0xFFFE or du == 0xFFFF then
+ local unicode = unicodevector[name] or contextvector[name]
+ if unicode then
+ glyph.unicode = unicode
+ ns = ns + 1
+ end
+ -- cidmap heuristics, beware, there is no guarantee for a match unless
+ -- the chain resolves
+ if (not unicode) and usedmap then
+ local foundindex = lpegmatch(oparser,name)
+ if foundindex then
+ unicode = cidcodes[foundindex] -- name to number
+ if unicode then
+ glyph.unicode = unicode
+ ns = ns + 1
+ else
+ local reference = cidnames[foundindex] -- number to name
+ if reference then
+ local foundindex = lpegmatch(oparser,reference)
+ if foundindex then
+ unicode = cidcodes[foundindex]
+ if unicode then
+ glyph.unicode = unicode
+ ns = ns + 1
+ end
+ end
+ if not unicode or unicode == "" then
+ local foundcodes, multiple = lpegmatch(uparser,reference)
+ if foundcodes then
+ glyph.unicode = foundcodes
+ if multiple then
+ nl = nl + 1
+ unicode = true
+ else
+ ns = ns + 1
+ unicode = foundcodes
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ -- a.whatever or a_b_c.whatever or a_b_c (no numbers) a.b_
+ --
+ -- It is not trivial to find a solution that suits all fonts. We tried several alternatives
+ -- and this one seems to work reasonable also with fonts that use less standardized naming
+ -- schemes. The extra private test is tested by KE and seems to work okay with non-typical
+ -- fonts as well.
+ --
+ if not unicode or unicode == "" then
+ local split = lpegmatch(namesplitter,name)
+ local nsplit = split and #split or 0 -- add if
+ if nsplit == 0 then
+ -- skip
+ elseif nsplit == 1 then
+ local base = split[1]
+ local u = unicodes[base] or unicodevector[base] or contextvector[name]
+ if not u then
+ -- skip
+ elseif type(u) == "table" then
+ -- unlikely
+ if u[1] < private then
+ unicode = u
+ glyph.unicode = unicode
+ end
+ elseif u < private then
+ unicode = u
+ glyph.unicode = unicode
+ end
+ else
+ local t = { }
+ local n = 0
+ for l=1,nsplit do
+ local base = split[l]
+ local u = unicodes[base] or unicodevector[base] or contextvector[name]
+ if not u then
+ break
+ elseif type(u) == "table" then
+ if u[1] >= private then
+ break
+ end
+ n = n + 1
+ t[n] = u[1]
+ else
+ if u >= private then
+ break
+ end
+ n = n + 1
+ t[n] = u
+ end
+ end
+ if n > 0 then
+ if n == 1 then
+ unicode = t[1]
+ else
+ unicode = t
+ end
+ glyph.unicode = unicode
+ end
+ end
+ nl = nl + 1
+ end
+ -- last resort (we might need to catch private here as well)
+ if not unicode or unicode == "" then
+ local foundcodes, multiple = lpegmatch(uparser,name)
+ if foundcodes then
+ glyph.unicode = foundcodes
+ if multiple then
+ nl = nl + 1
+ unicode = true
+ else
+ ns = ns + 1
+ unicode = foundcodes
+ end
+ end
+ end
+ -- check using substitutes and alternates
+ local r = overloads[unicode]
+ if r then
+ unicode = r.unicode
+ glyph.unicode = unicode
+ end
+ --
+ if not unicode then
+ missing[du] = true
+ nofmissing = nofmissing + 1
+ end
+ else
+ -- maybe a message or so
+ end
+ end
+ else
+ local overload = overloads[du]
+ if overload then
+ glyph.unicode = overload.unicode
+ elseif not glyph.unicode then
+ missing[du] = true
+ nofmissing = nofmissing + 1
+ end
+ end
+ end
+ if type(checklookups) == "function" then
+ checklookups(data,missing,nofmissing)
+ end
+
+ local unicoded = 0
+ local collected = fonts.handlers.otf.readers.getcomponents(data) -- neglectable overhead
+
+ local function resolve(glyph,u)
+ local n = #u
+ for i=1,n do
+ if u[i] > private then
+ n = 0
+ break
+ end
+ end
+ if n > 0 then
+ if n > 1 then
+ glyph.unicode = u
+ else
+ glyph.unicode = u[1]
+ end
+ unicoded = unicoded + 1
+ end
+ end
+
+ if not collected then
+ -- move on
+ elseif forceligatures or force_ligatures then
+ for i=1,#dlist do
+ local du = dlist[i]
+ if du >= private or (du >= 0xE000 and du <= 0xF8FF) then
+ local u = collected[du] -- always tables
+ if u then
+ resolve(descriptions[du],u)
+ end
+ end
+ end
+ else
+ for i=1,#dlist do
+ local du = dlist[i]
+ if du >= private or (du >= 0xE000 and du <= 0xF8FF) then
+ local glyph = descriptions[du]
+ if glyph.class == "ligature" and not glyph.unicode then
+ local u = collected[du] -- always tables
+ if u then
+ resolve(glyph,u)
+ end
+ end
+ end
+ end
+ end
+
+ if trace_mapping and unicoded > 0 then
+ report_fonts("%n ligature tounicode mappings deduced from gsub ligature features",unicoded)
+ end
+ if trace_mapping then
+ -- for unic, glyph in sortedhash(descriptions) do
+ for i=1,#dlist do
+ local du = dlist[i]
+ local glyph = descriptions[du]
+ local name = glyph.name or "-"
+ local index = glyph.index or 0
+ local unicode = glyph.unicode
+ if unicode then
+ if type(unicode) == "table" then
+ local unicodes = { }
+ for i=1,#unicode do
+ unicodes[i] = formatters("%U",unicode[i])
+ end
+ report_fonts("internal slot %U, name %a, unicode %U, tounicode % t",index,name,du,unicodes)
+ else
+ report_fonts("internal slot %U, name %a, unicode %U, tounicode %U",index,name,du,unicode)
+ end
+ else
+ report_fonts("internal slot %U, name %a, unicode %U",index,name,du)
+ end
+ end
+ end
+ if trace_loading and (ns > 0 or nl > 0) then
+ report_fonts("%s tounicode entries added, ligatures %s",nl+ns,ns)
+ end
+end
+
+-- local parser = makenameparser("Japan1")
+-- local parser = makenameparser()
+-- local function test(str)
+-- local b, a = lpegmatch(parser,str)
+-- print((a and table.serialize(b)) or b)
+-- end
+-- test("a.sc")
+-- test("a")
+-- test("uni1234")
+-- test("uni1234.xx")
+-- test("uni12349876")
+-- test("u123400987600")
+-- test("index1234")
+-- test("Japan1.123")
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-mat.mklx b/Master/texmf-dist/tex/context/base/mkxl/font-mat.mklx
index 3fc6275a65d..76f6f87b973 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-mat.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-mat.mklx
@@ -15,13 +15,40 @@
\unprotect
+%D The original (\MKIV) approach to bidi is that we have two extra families for
+%D regular, bold and pseudobold:
+%D
+%D regular normal=0 l2r=1 r2l=2
+%D bold normal=3 l2r=4 r2l=5
+%D pseudobold normal=6 l2r=7 r2l=8
+%D
+%D where l2r is just an alias. Because we're now using the mirror lookup (like
+%D we do a smaller lookup) in the engine we not just have:
+%D
+%D regular normal=0
+%D bold normal=3
+%D pseudobold normal=6
+%D
+%D And when one can wonder if pseudobold is needed (just bolden); we can then
+%D actually go down to only two families. It is one of these cases when it hurts
+%D to throw away a nice old mechanism that worked quite well so here we keep it
+%D commented. For what it's worth: this variant switches a bit faster too and
+%D produces less logging but I doubt if anyone will notice that.
+
+%D We now have bidi handled via a tweak in the goodie file which means that we
+%D could simplify the implementation and get rid of the (four) extra families
+%D needed. For now we retain the zero/three designation for mr/mb but that might
+%D go away. Actually we could drop the number of families in the engine to sixteen
+%D again or even four if we need the space for more classes or something else.
+
%D Be nice:
\ifdefined\??fontinstanceready \else \installcorenamespace{fontinstanceready} \fi
\ifdefined\??fontinstancebasic \else \installcorenamespace{fontinstancebasic} \fi
\ifdefined\??fontinstanceclass \else \installcorenamespace{fontinstanceclass} \fi
-%D The order 3 2 1 of size matters: needed for math-fbk relative size storage!
+%D The order 3 2 1 of size matters is historic and was needed for math-fbk relative
+%D size storage! It is no longer relevant.
%D \macros
%D {textonly}
@@ -35,7 +62,9 @@
%D We currently use only one math family but in the future we might consider using a
%D second one for bold math. For the moment we keep the \MKII\ method of using a
%D token register for definitions but we already dropped the text and symbols ones
-%D since they now live in the same family.
+%D since they now live in the same family. When we go always compact we can simplify
+%D the code even more. For previous implementations see the \MKIV\ code and the
+%D repository pre October 2022.
\newtoks \t_font_math_strategies
\newconditional\c_font_synchronize_math_fonts \settrue\c_font_synchronize_math_fonts
@@ -52,30 +81,21 @@
%D Because we want to keep mr=.. and mb=... settings (read: not break downward
%D compatibility by enforcing mrlr etc) we need a bit more code that optimal.
-% todo: \c_font_fam_mr
-
-\aliased\let\c_font_fam_mr \zerocount % math regular
-\aliased\let\c_font_fam_mr_lr\plusone % math regular l2r
-\aliased\let\c_font_fam_mr_rl\plustwo % math regular r2l
-
-\aliased\let\c_font_fam_mb \plusthree % math bold
-\aliased\let\c_font_fam_mb_lr\plusfour % math bold l2r
-\aliased\let\c_font_fam_mb_rl\plusfive % math bold r2l
+\aliased\let\c_font_fam_mr\zerocount % math regular
+\aliased\let\c_font_fam_mb\plusthree % math bold
\definesystemattribute[mathfamily][public]
-\newconditional\c_font_bidirectional_mathstrategy % can be default, not that much overhead: \settrue\c_font_bidirectional_mathstrategy
-\newconditional\c_font_complete_bold_mathstrategy \settrue\c_font_complete_bold_mathstrategy
+% when we are always true we can as well remove this test:
-% \frozen ...
+\newconditional\c_font_complete_bold_mathstrategy \settrue\c_font_complete_bold_mathstrategy
\immutable\def\mathtextsuffix {-text}
\immutable\def\mathscriptsuffix {-script}
\immutable\def\mathscriptscriptsuffix{-scriptscript}
-%D Beware: truefontname also does a fallback on defaultfontclass so there
-%D can be some interference here, which is why we use a different method
-%D for bold.
+%D Beware: truefontname also does a fallback on defaultfontclass so there can be
+%D some interference here, which is why we use a different method for bold.
\def\font_helpers_set_math_family_a
{\ifcsname\??fontinstanceready\fontclass -\fontbody-\s!mm-\fontfamily-\fontsize\endcsname \setfalse\c_font_auto_size
@@ -101,33 +121,40 @@
\settrue \c_font_auto_size
\fi}
-%def\mathsizesuffix{\ifcase\fontface\or\mathtextsuffix\or\mathscriptsuffix\or\mathscriptscriptsuffix\fi}
-\mutable\let\mathsizesuffix\empty
+\mutable\lettonothing\mathsizesuffix
\mutable\let\fontfamily\relax % for now public but it is a helper
+\newinteger\c_math_last_family_used
+
\def\font_helpers_set_math_family_indeed_normal#mrtag#family% \fontface etc are also used later on
{\let\savedfontbody\fontbody
\let\fontfamily#family%
+\c_math_last_family_used\zerocount
% the order is important as we depend on known id's when completing fonts
- % enabling is needed when we have fallbacks which spoils the families
- \let\mathsizesuffix\mathscriptscriptsuffix\let\fontface\!!plusthree
+ % enabling is needed when we have fallbacks which spoils the families; per
+ % mid 2022 this is no longer true as we do fallbacks differently
+ \let\mathsizesuffix\mathscriptscriptsuffix
+ \let\fontface\!!plusthree
\font_helpers_set_math_family_a\scriptscriptfont#mrtag\font % defines
- \font_helpers_set_math_family_a\scriptscriptfont#mrtag\font % enables
- \let\mathsizesuffix\mathscriptsuffix \let\fontface\!!plustwo
+ \font_helpers_set_math_family_a\scriptscriptfont#mrtag\font % enables / still needed ?
+ \let\mathsizesuffix\mathscriptsuffix
+ \let\fontface\!!plustwo
\font_helpers_set_math_family_a\scriptfont #mrtag\font % defines
- \font_helpers_set_math_family_a\scriptfont #mrtag\font % enables
- \let\mathsizesuffix\mathtextsuffix \let\fontface\!!plusone
+ \font_helpers_set_math_family_a\scriptfont #mrtag\font % enables / still needed ?
+ \let\mathsizesuffix\mathtextsuffix
+ \let\fontface\!!plusone
\font_helpers_set_math_family_a\textfont #mrtag\font % defines
- \font_helpers_set_math_family_a\textfont #mrtag\font % enables
- \let\mathsizesuffix\empty \let\fontface\!!zerocount
+ \font_helpers_set_math_family_a\textfont #mrtag\font % enables / still needed ?
+ \lettonothing\mathsizesuffix
+ \let\fontface\!!zerocount
\let\fontbody\savedfontbody
\setfalse\c_font_auto_size}
\def\font_helpers_set_math_family_set_scales_compact
{% these are used when no font setting is there, the settings come before setting the parameters
- % and are stored with the family
- \glyphtextscale \plusthousand
+ % and are stored with the family ... this is not really needed because the size is used otherwise
+ \glyphtextscale \plusthousand
\glyphscriptscale \numexpr\plusthousand*\dimexpr\scriptface \relax/\dimexpr\textface\relax\relax
\glyphscriptscriptscale \numexpr\plusthousand*\dimexpr\scriptscriptface\relax/\dimexpr\textface\relax\relax}
@@ -139,15 +166,18 @@
\def\font_helpers_set_math_family_indeed_compact#mrtag#family% \fontface etc are also used later on
{\let\savedfontbody\fontbody
\let\fontfamily#family%
+\c_math_last_family_used\zerocount
\font_helpers_set_math_family_set_scales_compact
% the order is important as we depend on known id's when completing fonts
% enabling is needed when we have fallbacks which spoils the families
- \let\mathsizesuffix\mathtextsuffix \let\fontface\!!plusone
+ \let\mathsizesuffix\mathtextsuffix
+ \let\fontface\!!plusone
\font_helpers_set_math_family_a\textfont #mrtag\font % defines
- \font_helpers_set_math_family_a\textfont #mrtag\font % enables
+ \font_helpers_set_math_family_a\textfont #mrtag\font % enables / still needed ?
\scriptfont #mrtag\font % reuses
\scriptscriptfont#mrtag\font % reuses
- \let\mathsizesuffix\empty \let\fontface\!!zerocount
+ \lettonothing\mathsizesuffix
+ \let\fontface\!!zerocount
\let\fontbody\savedfontbody
\setfalse\c_font_auto_size}
@@ -163,17 +193,22 @@
\let\defaultfontclass\fontclass % else truefontname falls back on the wrong one
\let\savedfontbody\fontbody
\let\fontfamily#familytag%
+\c_math_last_family_used\zerocount
\font_helpers_set_math_family_set_scales_normal
- \let\mathsizesuffix\mathscriptscriptsuffix\let\fontface\!!plusthree
+ \let\mathsizesuffix\mathscriptscriptsuffix
+ \let\fontface\!!plusthree
\font_helpers_set_math_family_bold_a\scriptscriptfont#mbfam#mrfam% defines
- \font_helpers_set_math_family_bold_a\scriptscriptfont#mbfam#mrfam% enables
- \let\mathsizesuffix\mathscriptsuffix \let\fontface\!!plustwo
+ \font_helpers_set_math_family_bold_a\scriptscriptfont#mbfam#mrfam% enables / still needed ?
+ \let\mathsizesuffix\mathscriptsuffix
+ \let\fontface\!!plustwo
\font_helpers_set_math_family_bold_a\scriptfont #mbfam#mrfam% defines
- \font_helpers_set_math_family_bold_a\scriptfont #mbfam#mrfam% enables
- \let\mathsizesuffix\mathtextsuffix \let\fontface\!!plusone
+ \font_helpers_set_math_family_bold_a\scriptfont #mbfam#mrfam% enables / still needed ?
+ \let\mathsizesuffix\mathtextsuffix
+ \let\fontface\!!plusone
\font_helpers_set_math_family_bold_a\textfont #mbfam#mrfam% defines
- \font_helpers_set_math_family_bold_a\textfont #mbfam#mrfam% enables
- \let\mathsizesuffix\empty \let\fontface\!!zerocount
+ \font_helpers_set_math_family_bold_a\textfont #mbfam#mrfam% enables / still needed ?
+ \lettonothing\mathsizesuffix
+ \let\fontface\!!zerocount
\let\fontbody\savedfontbody
\let\defaultfontclass\savedfontclass
\setfalse\c_font_auto_size}
@@ -183,12 +218,15 @@
\let\defaultfontclass\fontclass % else truefontname falls back on the wrong one
\let\savedfontbody\fontbody
\let\fontfamily#familytag%
- \let\mathsizesuffix\mathtextsuffix \let\fontface\!!plusone
+\c_math_last_family_used\zerocount
+ \let\mathsizesuffix\mathtextsuffix
+ \let\fontface\!!plusone
\font_helpers_set_math_family_bold_a\textfont #mbfam#mrfam% defines
- \font_helpers_set_math_family_bold_a\textfont #mbfam#mrfam% enables
- \scriptfont #mbfam\scriptfont #mrfam% reuses
- \scriptscriptfont#mbfam\scriptscriptfont#mrfam% reuses
- \let\mathsizesuffix\empty \let\fontface\!!zerocount
+ \font_helpers_set_math_family_bold_a\textfont #mbfam#mrfam% enables / still needed ?
+ \scriptfont #mbfam\textfont#mbfam% reuses
+ \scriptscriptfont#mbfam\textfont#mbfam% reuses
+ \lettonothing\mathsizesuffix
+ \let\fontface\!!zerocount
\let\fontbody\savedfontbody
\let\defaultfontclass\savedfontclass
\setfalse\c_font_auto_size}
@@ -255,36 +293,6 @@
%D little in restoring global states and, what's more important, we get rid of large
%D math parameter push/pop in tracingall when not needed.
-% \def\font_helpers_preset_math_family_indeed#fam#familytag%
-% {\expandafter\let\expandafter\v_font_math_one\csname\??fontinstanceclass\fontclass-\fontbody-\s!mm-#familytag-\fontsize-1\endcsname
-% \ifrelax\v_font_math_one
-% \font_helpers_preset_math_family_warning
-% \orelse\ifnum\fontid\textfont#fam=\fontid\v_font_math_one\else
-% \font_helpers_preset_math_family_indeed_changed#fam#familytag%
-% \fi}
-
-% \def\font_helpers_preset_math_family_warning
-% {\writestatus{fonts}{math: unset for global bodyfont \fontclass\space at \fontbody}}
-
-% \def\font_helpers_preset_math_family_indeed_changed_normal#fam#familytag%
-% {\font_helpers_set_math_family_set_scales_normal
-% \scriptscriptfont#fam\csname\??fontinstanceclass\fontclass-\fontbody-\s!mm-#familytag-\fontsize-3\endcsname
-% \scriptfont #fam\csname\??fontinstanceclass\fontclass-\fontbody-\s!mm-#familytag-\fontsize-2\endcsname
-% \textfont #fam\v_font_math_one}
-
-% \def\font_helpers_preset_math_family_indeed_changed_compact#fam#familytag%
-% {\font_helpers_set_math_family_set_scales_compact
-% \scriptscriptfont#fam\v_font_math_one
-% \scriptfont #fam\v_font_math_one
-% \textfont #fam\v_font_math_one}
-
-% \def\font_helpers_preset_math_family_indeed_changed
-% {\ifconditional\c_font_compact
-% \expandafter\font_helpers_preset_math_family_indeed_changed_compact
-% \else
-% \expandafter\font_helpers_preset_math_family_indeed_changed_normal
-% \fi}
-
\def\font_helpers_preset_math_family_indeed_normal#fam#familytag%
{\expandafter\let\expandafter\font_math_last_font\csname\??fontinstanceclass\fontclass-\fontbody-\s!mm-#familytag-\fontsize-1\endcsname
\font_math_last_font
@@ -329,87 +337,22 @@
%D 0 while in rl mode 0 is a copy of 1. There is no real overhead involved in this.
%D This also permits different font definitions for normal and mixed.
-\let\m_font_class_direction\empty
-\let\m_font_class_features \empty
-\let\m_font_class_fallbacks\empty
-\let\m_font_class_goodies \empty
-
-\let\m_font_direction\empty
-\let\m_font_features \empty
-\let\m_font_fallbacks\empty
-\let\m_font_goodies \empty
-
-\appendtoks % can be analyzed once
- % why here ..
- %\edef\m_font_class_direction{\ifcsname\??fontclass\fontclass\s!mm\s!direction\endcsname\csname\??fontclass\fontclass\s!mm\s!direction\endcsname\fi}%
- \edef\m_font_class_direction{\begincsname\??fontclass\fontclass\s!mm\s!direction\endcsname}%
- % ...
- \ifx\m_font_class_direction\v!both
- \settrue\c_font_bidirectional_mathstrategy
- \else
- \setfalse\c_font_bidirectional_mathstrategy
- \fi
-\to \t_font_math_strategies
-
-\def\font_helpers_bidirectional_mathstrategy_yes
- {\font_helpers_set_math_family\c_font_fam_mr_lr\s!mrlr
- \font_helpers_set_math_family\c_font_fam_mr_rl\s!mrrl
- \ifnum\fontid\textfont\c_font_fam_mr=\fontid\textfont\c_font_fam_mr_lr\else
- \font_helpers_bidirectional_mathstrategy_yes_changed
- \fi}
-
-\def\font_helpers_bidirectional_mathstrategy_yes_changed
- {\textfont \c_font_fam_mr\textfont \c_font_fam_mr_lr
- \scriptfont \c_font_fam_mr\scriptfont \c_font_fam_mr_lr
- \scriptscriptfont\c_font_fam_mr\scriptscriptfont\c_font_fam_mr_lr}
-
-\def\font_helpers_bidirectional_mathstrategy_nop
- {\font_helpers_set_math_family\c_font_fam_mr\s!mr
- \ifnum\fontid\textfont\c_font_fam_mr_rl=\fontid\textfont\c_font_fam_mr\else
- \font_helpers_bidirectional_mathstrategy_nop_changed
- \fi}
+\lettonothing\m_font_class_direction
+\lettonothing\m_font_class_features
+\lettonothing\m_font_class_fallbacks
+\lettonothing\m_font_class_goodies
-\def\font_helpers_bidirectional_mathstrategy_nop_changed
- {\textfont \c_font_fam_mr_lr\textfont \c_font_fam_mr
- \scriptfont \c_font_fam_mr_lr\scriptfont \c_font_fam_mr
- \scriptscriptfont\c_font_fam_mr_lr\scriptscriptfont\c_font_fam_mr
- \textfont \c_font_fam_mr_rl\textfont \c_font_fam_mr
- \scriptfont \c_font_fam_mr_rl\scriptfont \c_font_fam_mr
- \scriptscriptfont\c_font_fam_mr_rl\scriptscriptfont\c_font_fam_mr}
+\lettonothing\m_font_direction
+\lettonothing\m_font_features
+\lettonothing\m_font_fallbacks
+\lettonothing\m_font_goodies
\appendtoks
- \ifconditional\c_font_bidirectional_mathstrategy
- \font_helpers_bidirectional_mathstrategy_yes
- \else
- \font_helpers_bidirectional_mathstrategy_nop
- \fi
+ \font_helpers_set_math_family\c_font_fam_mr\s!mr
\to \t_font_math_strategies
-\def\font_helpers_complete_bold_mathstrategy_yes_bidi
- {\font_helpers_set_math_family_bold\c_font_fam_mb_lr\s!mblr\c_font_fam_mr_lr
- \font_helpers_set_math_family_bold\c_font_fam_mb_rl\s!mbrl\c_font_fam_mr_rl
- \ifnum\fontid\textfont\c_font_fam_mb=\fontid\textfont\c_font_fam_mb_lr\else
- \font_helpers_complete_bold_mathstrategy_yes_bidi_changed
- \fi}
-
-\def\font_helpers_complete_bold_mathstrategy_yes_bidi_changed
- {\textfont \c_font_fam_mb\textfont \c_font_fam_mb_lr
- \scriptfont \c_font_fam_mb\scriptfont \c_font_fam_mb_lr
- \scriptscriptfont\c_font_fam_mb\scriptscriptfont\c_font_fam_mb_lr}
-
\def\font_helpers_complete_bold_mathstrategy_yes
- {\font_helpers_set_math_family_bold\c_font_fam_mb\s!mb\c_font_fam_mr\relax
- \ifnum\fontid\textfont\c_font_fam_mb_rl=\fontid\textfont\c_font_fam_mb\else
- \font_helpers_complete_bold_mathstrategy_yes_changed
- \fi}
-
-\def\font_helpers_complete_bold_mathstrategy_yes_changed
- {\textfont \c_font_fam_mb_rl\textfont \c_font_fam_mb
- \scriptfont \c_font_fam_mb_rl\scriptfont \c_font_fam_mb
- \scriptscriptfont\c_font_fam_mb_rl\scriptscriptfont\c_font_fam_mb
- \textfont \c_font_fam_mb_lr\textfont \c_font_fam_mb
- \scriptfont \c_font_fam_mb_lr\scriptfont \c_font_fam_mb
- \scriptscriptfont\c_font_fam_mb_lr\scriptscriptfont\c_font_fam_mb}
+ {\font_helpers_set_math_family_bold\c_font_fam_mb\s!mb\c_font_fam_mr\relax}
\def\font_helpers_complete_bold_mathstrategy_nop
{\ifnum\fontid\textfont\c_font_fam_mb=\fontid\textfont\c_font_fam_mr\else
@@ -417,23 +360,13 @@
\fi}
\def\font_helpers_complete_bold_mathstrategy_nop_changed
- {\textfont \c_font_fam_mb \textfont \c_font_fam_mr
- \scriptfont \c_font_fam_mb \scriptfont \c_font_fam_mr
- \scriptscriptfont\c_font_fam_mb \scriptscriptfont\c_font_fam_mr
- \textfont \c_font_fam_mb_lr\textfont \c_font_fam_mr_lr
- \scriptfont \c_font_fam_mb_lr\scriptfont \c_font_fam_mr_lr
- \scriptscriptfont\c_font_fam_mb_lr\scriptscriptfont\c_font_fam_mr_lr
- \textfont \c_font_fam_mb_rl\textfont \c_font_fam_mr_rl
- \scriptfont \c_font_fam_mb_rl\scriptfont \c_font_fam_mr_rl
- \scriptscriptfont\c_font_fam_mb_rl\scriptscriptfont\c_font_fam_mr_rl}
+ {\textfont \c_font_fam_mb\textfont \c_font_fam_mr
+ \scriptfont \c_font_fam_mb\scriptfont \c_font_fam_mr
+ \scriptscriptfont\c_font_fam_mb\scriptscriptfont\c_font_fam_mr}
\def\font_helpers_apply_complete_bold_mathstrategy
{\ifconditional\c_font_complete_bold_mathstrategy
- \ifconditional\c_font_bidirectional_mathstrategy
- \font_helpers_complete_bold_mathstrategy_yes_bidi
- \else
- \font_helpers_complete_bold_mathstrategy_yes
- \fi
+ \font_helpers_complete_bold_mathstrategy_yes
\else
\font_helpers_complete_bold_mathstrategy_nop
\fi}
@@ -443,48 +376,31 @@
\to \t_font_math_strategies
\ifdefined\defaultmathfamily \else
- \setnewconstant\defaultmathfamily\zerocount
+ \setnewconstant\defaultmathfamily\zerocount % no longer used, always zero
\fi
\appendtoks
- \fam\defaultmathfamily % all characters and symbols are in this family
+ \fam\zerocount % all characters and symbols are in this family
\to \everymathematics
\protected\def\font_helpers_synchronize_math_family_mr
- {\c_attr_mathfamily\ifconditional\c_font_bidirectional_mathstrategy
- \ifconditional\c_math_right_to_left
- \plustwo
- \else
- \plusone
- \fi
- \else
- \zerocount
- \fi}
+ {\c_attr_mathfamily\zerocount
+ \font_helpers_synchronize_math_parameters_normal}
\protected\def\font_helpers_synchronize_math_family_mb
- {\c_attr_mathfamily\ifconditional\c_font_bidirectional_mathstrategy
- \ifconditional\c_math_right_to_left
- \ifconditional\c_font_pseudo_bold_math_state\pluseight\else\plusfive\fi
- \else
- \ifconditional\c_font_pseudo_bold_math_state\plusseven\else\plusfour\fi
- \fi
- \else
- \ifconditional\c_font_pseudo_bold_math_state\plussix\else\plusthree\fi
- \fi}
+ {\c_attr_mathfamily\ifconditional\c_font_pseudo_bold_math_state\plussix\else\plusthree\fi
+ \font_helpers_synchronize_math_parameters_bold}
\installcorenamespace{fontmathsynchronizer}
\installcorenamespace{fontmathstoredstrategy}
-\letvalue{\??fontmathsynchronizer\s!tf }\font_helpers_synchronize_math_family_mr
-\letvalue{\??fontmathsynchronizer\s!sl }\font_helpers_synchronize_math_family_mr
-\letvalue{\??fontmathsynchronizer\s!it }\font_helpers_synchronize_math_family_mr
-\letvalue{\??fontmathsynchronizer\s!bf }\font_helpers_synchronize_math_family_mb
-\letvalue{\??fontmathsynchronizer\s!bs }\font_helpers_synchronize_math_family_mb
-\letvalue{\??fontmathsynchronizer\s!bi }\font_helpers_synchronize_math_family_mb
-\letvalue{\??fontmathsynchronizer\empty}\font_helpers_synchronize_math_family_mr
-
-% \def\font_helpers_synchronize_math_family
-% {\csname\??fontmathsynchronizer\ifcsname\??fontmathsynchronizer\fontalternative\endcsname\fontalternative\fi\endcsname}
+\letcsname\??fontmathsynchronizer\s!tf \endcsname\font_helpers_synchronize_math_family_mr
+\letcsname\??fontmathsynchronizer\s!sl \endcsname\font_helpers_synchronize_math_family_mr
+\letcsname\??fontmathsynchronizer\s!it \endcsname\font_helpers_synchronize_math_family_mr
+\letcsname\??fontmathsynchronizer\s!bf \endcsname\font_helpers_synchronize_math_family_mb
+\letcsname\??fontmathsynchronizer\s!bs \endcsname\font_helpers_synchronize_math_family_mb
+\letcsname\??fontmathsynchronizer\s!bi \endcsname\font_helpers_synchronize_math_family_mb
+\letcsname\??fontmathsynchronizer\empty\endcsname\font_helpers_synchronize_math_family_mr
\def\font_helpers_synchronize_math_family
{\ifcsname\??fontmathsynchronizer\fontalternative\endcsname
@@ -501,7 +417,6 @@
\fi
\to \t_font_math_strategies
-%def\font_helpers_synchronize_math_bold_strategy{\csname\??fontmathstoredstrategy\fontclass\endcsname}
\def\font_helpers_synchronize_math_bold_strategy{\begincsname\??fontmathstoredstrategy\fontclass\endcsname}
\newconditional\c_font_pseudo_bold_math_state
@@ -573,10 +488,12 @@
\permanent\protected\def\autobigmath{\synchronizebigmathflag\plusone\synchronizebigmath}
\permanent\protected\def\bigmath {\synchronizebigmathflag\plustwo\synchronizebigmath}
-\mutable\let\bigmathfontsize\empty
+\mutable\lettonothing\bigmathfontsize
\permanent\protected\def\synchronizebigmath
- {\ifx\bigmathfontsize\fontsize
+ {\ifconditional\c_font_compact
+ % no need
+ \orelse\ifx\bigmathfontsize\fontsize
% already in sync
\else
\let\bigmathfontsize\fontsize
@@ -592,4 +509,75 @@
\synchronizebigmath
\fi}
+%D This is an experiment!
+
+\permanent\protected\def\mx {\ifmmode\scaledmathstyle\dimexpression\plusthousand*(\xtextface /\textface)\relax\fi}
+\permanent\protected\def\mxx{\ifmmode\scaledmathstyle\dimexpression\plusthousand*(\xxtextface/\textface)\relax\fi}
+
+% permanent\protected\def\setmscale#1{\ifmmode\scaledmathstyle\numericscale#1\relax\fi}
+
+\installcorenamespace{mscaled}
+
+\mutable\def\mathscalefactor{0.7} % 1/sqrt(2} = 0.70710678118655
+
+\newinteger\c_math_m_scaled \c_math_m_scaled\plusthousand
+
+\permanent\protected\def\setmscale#1%
+ {\ifmmode
+ \iftok{#1}{-}%
+ \c_math_m_scaled\numexpr(\numericscale\mathscalefactor)*\c_math_m_scaled/\plusthousand\relax
+ \orelse\iftok{#1}{=}%
+ \c_math_m_scaled\plusthousand
+ \else
+ \c_math_m_scaled\numericscale#1\relax
+ \fi
+ \scaledmathstyle\c_math_m_scaled
+ \fi}
+
+%D This is nasty, as the engine only stores the last set family parameters (per style) which
+%D in our case can be bold.
+
+\def\font_helpers_synchronize_math_parameters_normal
+ {\c_math_last_family_used\mathstylefontid\textstyle\zerocount
+ \textfont \c_font_fam_mr\textfont \c_font_fam_mr
+ \scriptfont \c_font_fam_mr\scriptfont \c_font_fam_mr
+ \scriptscriptfont\c_font_fam_mr\scriptscriptfont\c_font_fam_mr}
+
+\def\font_helpers_synchronize_math_parameters_bold
+ {\c_math_last_family_used\mathstylefontid\textstyle\zerocount
+ \textfont \c_attr_mathfamily\textfont \c_attr_mathfamily
+ \scriptfont \c_attr_mathfamily\scriptfont \c_attr_mathfamily
+ \scriptscriptfont\c_attr_mathfamily\scriptscriptfont\c_attr_mathfamily}
+
+\appendtoks
+ \ifnum\c_math_last_family_used=\mathstylefontid\textstyle\zerocount\else
+ \font_helpers_synchronize_math_parameters_normal
+ \fi
+\to\everybodyfont
+
+%D Something new, see type {type-imp-antykwa} for an example:
+
+% if we get more:
+
+% \installcorenamespace {fractionbar}
+% \installcorenamespace {radicalbar}
+
+% \def\installfractionbar#1#2{\defcsname\??fractionbar#1\endcsname{#2}}
+% \def\installradicalbar #1#2{\defcsname\??radicalbar #1\endcsname{#2}}
+
+% \def\fractionbarunicode{\ifcsname\??fractionbar\fontclass\endcsname\lastnamedcs\else\zerocount\fi}
+% \def\radicalbarunicode {\ifcsname\??radicalbar \fontclass\endcsname\lastnamedcs\else\zerocount\fi}
+
+\mutable\lettonothing\currentmathfontclass
+
+\def\math_synchronize_setup
+ {\let\currentmathfontclass\fontclass
+ \fastsetup\fontclass}
+
+\appendtoks
+ \ifx\fontclass\currentmathfontclass\else
+ \math_synchronize_setup
+ \fi
+\to \everymathematics
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-mpf.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-mpf.lmt
index b1e6a00dd55..18f3365db9a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-mpf.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-mpf.lmt
@@ -56,31 +56,35 @@ local function setmetaglyphs(category,fontid,unicode,specification)
local units = shapes.parameters.units
local scale = tfmdata.parameters.size / units
local shape = shapes.glyphs[unicode]
- --
- local llx, lly, urx, ury = unpack(shape.boundingbox)
- llx = llx * scale
- urx = urx * scale
- lly = lly * scale
- ury = ury * scale
- --
- local newdata = { }
- characters[unicode] = newdata -- so that we can register commands
- fonts.dropins.swapone("mps",tfmdata,shape,unicode)
- --
- local olddata = characters[unicode]
- newdata.width = urx - llx
- newdata.height = ury
- newdata.depth = -lly
- newdata.unicode = unicode
- -- commands = { { "offset", -llx, 0, newdata.commands[1][1], newdata.commands[1][2] } }
- if llx ~= 0 then
- newdata.commands = { { "offset", -llx, 0 }, newdata.commands[1] }
+ if shape then
+ --
+ local llx, lly, urx, ury = unpack(shape.boundingbox)
+ llx = llx * scale
+ urx = urx * scale
+ lly = lly * scale
+ ury = ury * scale
+ --
+ local newdata = { }
+ characters[unicode] = newdata -- so that we can register commands
+ fonts.dropins.swapone("mps",tfmdata,shape,unicode)
+ --
+ local olddata = characters[unicode]
+ newdata.width = urx - llx
+ newdata.height = ury
+ newdata.depth = -lly
+ newdata.unicode = unicode
+ -- commands = { { "offset", -llx, 0, newdata.commands[1][1], newdata.commands[1][2] } }
+ if llx ~= 0 then
+ newdata.commands = { { "offset", -llx, 0 }, newdata.commands[1] }
+ end
+ -- pass dimensions to lua
+ characters[unicode] = newdata
+ -- pass dimensions to tex
+ addcharacters(fontid, { characters = { [unicode] = newdata } })
+ return fontid, unicode
+ else
+ logs.report("metaglyph", "bad shape %U in font %i", unicode, fontid)
end
- -- pass dimensions to lua
- characters[unicode] = newdata
- -- pass dimensions to tex
- addcharacters(fontid, { characters = { [unicode] = newdata } })
- return fontid, unicode
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-ogr.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-ogr.lmt
index 698593ac7e0..3b4f9f86784 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-ogr.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-ogr.lmt
@@ -36,9 +36,14 @@ otf.pngenabled = true
-- what here and what in backend ...
+local report_fonts = logs.reporter("backend","fonts")
+local trace_fonts trackers.register("backend.fonts",function(v) trace_fonts = v end)
+
+local slotcommand = fonts.helpers.commands.slot
+
do
- -- This is a prelude to something better but I'm still experimenting.
+ -- This is a prelude to something better but I'm still experimenting. We should delay more.
local dropins = { }
fonts.dropins = dropins
@@ -59,7 +64,8 @@ do
local t_properties = t_tfmdata.properties
local d_tfmdata = setmetatableindex({ },t_tfmdata)
local d_properties = setmetatableindex({ },t_properties)
- d_properties.basefontname = "ContextRuntimeFont" .. droppedin
+ local d_basefontname = "ContextRuntimeFont" .. droppedin
+ d_properties.basefontname = d_basefontname
d_tfmdata.properties = d_properties
local d_characters = { } -- setmetatableindex({ },t_characters) -- hm, index vs unicode
local d_descriptions = { } -- setmetatableindex({ },t_descriptions) -- hm, index vs unicode
@@ -75,6 +81,9 @@ do
d_properties.indexdata = { indexdata, ... } -- can take quite some memory
local slot = #fonts + 1
fonts[slot] = { id = droppedin }
+ if trace_fonts then
+ report_fonts("registering dropin %a using method %a",d_basefontname,method)
+ end
return slot, droppedin, d_tfmdata, d_properties
end
@@ -84,9 +93,10 @@ do
if method and shapes then
local characters = tfmdata.characters
local descriptions = tfmdata.descriptions
- local droppedin, tfmdrop, dropchars, dropdescs, colrshapes
+ local droppedin, tfmdrop, dropchars, dropdescs, colrshapes, props
local idx = 255
local slot = 0
+ -- sorted ?
for k, v in next, characters do
local index = v.index
if index then
@@ -97,7 +107,7 @@ do
if idx >= 255 then
idx = 1
colrshapes = setmetatableindex({ },shapes)
- slot, droppedin, tfmdrop = dropins.provide(method,tfmdata,colrshapes)
+ slot, droppedin, tfmdrop, props = dropins.provide(method,tfmdata,colrshapes)
dropchars = tfmdrop.characters
dropdescs = tfmdrop.descriptions
else
@@ -105,7 +115,7 @@ do
end
colrshapes[idx] = shape -- so not: description
-- todo: prepend
- v.commands = { { "slot", slot, idx } }
+ v.commands = { slotcommand[slot][idx] }
-- hack to prevent that type 3 also gets 'use' flags .. todo
local c = { commands = false, index = idx, dropin = tfmdrop }
local d = { } -- { index = idx, dropin = tfmdrop }
@@ -122,46 +132,6 @@ do
end
end
--- function dropins.swap(method,tfmdata,shapes,...) -- by unicode
--- if method and shapes then
--- local characters = tfmdata.characters
--- local descriptions = tfmdata.descriptions
--- local droppedin, tfmdrop, dropchars, dropdescs, colrshapes
--- local idx = 255
--- local slot = 0
--- -- we can have a variant where shaped are by unicode and not by index
--- for k, v in next, characters do
--- local description = descriptions[k]
--- if description then
--- local shape = shapes[k]
--- if shape then
--- if idx >= 255 then
--- idx = 1
--- colrshapes = setmetatableindex({ },shapes)
--- slot, droppedin, tfmdrop = dropins.provide(method,tfmdata,colrshapes)
--- dropchars = tfmdrop.characters
--- dropdescs = tfmdrop.descriptions
--- else
--- idx = idx + 1
--- end
--- colrshapes[idx] = shape -- so not: description
--- -- todo: prepend
--- v.commands = { { "slot", slot, idx } }
--- -- hack to prevent that type 3 also gets 'use' flags .. todo
--- local c = { commands = false, index = idx, dropin = tfmdrop }
--- local d = { } -- index = idx, dropin = tfmdrop }
--- setmetatableindex(c,v)
--- setmetatableindex(d,description)
--- dropchars[idx] = c
--- dropdescs[idx] = d -- not needed
--- end
--- end
--- end
--- else
--- -- error
--- end
--- end
-
function dropins.swap(method,tfmdata,shapes) -- by unicode
if method and shapes then
local characters = tfmdata.characters
@@ -190,7 +160,7 @@ do
end
colrshapes[idx] = shape -- so not: description
-- todo: prepend
- v.commands = { { "slot", slot, idx } }
+ v.commands = { slotcommand[slot][idx] }
-- hack to prevent that type 3 also gets 'use' flags .. todo
local c = { commands = false, index = idx, dropin = tfmdrop }
local d = { } -- index = idx, dropin = tfmdrop }
@@ -238,7 +208,7 @@ do
end
colrshapes[idx] = shape.code -- so not: description
-- todo: prepend
- character.commands = { { "slot", slot, idx } }
+ character.commands = { slotcommand[slot][idx] }
-- hack to prevent that type 3 also gets 'use' flags .. todo
local c = { commands = false, index = idx, dropin = tfmdrop }
-- local d = { } -- index = idx, dropin = tfmdrop }
@@ -474,7 +444,7 @@ do -- this will move to its own module
end
--- This sits here for historcal reasons so for now we keep it here.
+-- This sits here for historical reasons so for now we keep it here.
local startactualtext = nil
local stopactualtext = nil
@@ -487,20 +457,8 @@ function otf.getactualtext(s)
return startactualtext(s), stopactualtext()
end
--- This is also somewhat specific.
-
-local color_direct = function() return false end
-local color_indirect = color_direct
-
-updaters.register("backend.update",function()
- color_direct = lpdf.fonts.color_direct
- color_indirect = lpdf.fonts.color_indirect
-end)
-
local sharedpalettes = { } do
- local register = attributes.colors.register
-
local colors = attributes.list[attributes.private('color')] or { }
local transparencies = attributes.list[attributes.private('transparency')] or { }
@@ -510,20 +468,10 @@ local sharedpalettes = { } do
local v = values[i]
if v == "textcolor" then
values[i] = false
- else
- local c = nil
- local t = nil
- if type(v) == "table" then
- c = register(name,"rgb",
- max(round((v.r or 0)*255),255)/255,
- max(round((v.g or 0)*255),255)/255,
- max(round((v.b or 0)*255),255)/255
- )
- else
- c = colors[v]
- t = transparencies[v]
- end
- values[i] = color_indirect(c,t)
+ elseif type(v) == "table" then
+ values[i] = { kind = "values", data = v }
+ else -- freezing
+ values[i] = { kind = "attributes", color = colors[v], transparency = transparencies[v] }
end
end
end
@@ -532,83 +480,73 @@ end
local initializeoverlay do
- local function autoconvert(t,k)
- local v = { }
- for i=1,#k do
- local p = k[i]
- v[i] = color_direct(p[1]/255, p[2]/255, p[3]/255)
- end
- t[k] = v
- return v
- end
-
initializeoverlay = function(tfmdata,kind,value) -- we really need the id ... todo
if value then
local resources = tfmdata.resources
local palettes = resources.colorpalettes
if palettes then
- --
- local converted = resources.converted
- if not converted then
- converted = setmetatableindex(autoconvert)
- resources.converted = converted
- end
- local colorvalues = sharedpalettes[value]
- local default = false -- so the text color (bad for icon overloads)
- if colorvalues then
- default = colorvalues[#colorvalues]
+ local colorvalues = false
+ local colordata = sharedpalettes[value]
+ if colordata and #colordata > 0 then
+ colorvalues = {
+ kind = "user",
+ data = colordata,
+ }
else
- colorvalues = converted[palettes[tonumber(value) or 1] or palettes[1]] or { }
- end
- local classes = #colorvalues
- if classes == 0 then
- return
+ colordata = palettes[tonumber(value) or 1] or palettes[1]
+ if colordata and #colordata > 0 then
+ colorvalues = {
+ kind = "font",
+ data = colordata,
+ }
+ end
end
- --
- local characters = tfmdata.characters
- local descriptions = tfmdata.descriptions
- local droppedin, tfmdrop, dropchars, dropdescs, colrshapes
- local idx = 255
- local slot = 0
- --
- -- maybe delay in which case we have less fonts as we can be sparse
- --
- for k, v in next, characters do
- local index = v.index
- if index then
- local description = descriptions[k]
- if description then
- local colorlist = description.colors
- if colorlist then
- if idx >= 255 then
- idx = 1
- colrshapes = { }
- slot, droppedin, tfmdrop = fonts.dropins.provide("color",tfmdata,colrshapes,colorvalues)
- dropchars = tfmdrop.characters
- dropdescs = tfmdrop.descriptions
- else
- idx = idx + 1
- end
- --
- colrshapes[idx] = description
- -- todo: use extender
- local u = { "use", 0 }
- for i=1,#colorlist do
- u[i+2] = colorlist[i].slot
+ if colorvalues then
+ local characters = tfmdata.characters
+ local descriptions = tfmdata.descriptions
+ local droppedin, tfmdrop, dropchars, dropdescs, colrshapes
+ local idx = 255
+ local slot = 0
+ --
+ -- maybe delay in which case we have less fonts as we can be sparse
+ --
+ for k, v in next, characters do
+ local index = v.index
+ if index then
+ local description = descriptions[k]
+ if description then
+ local colorlist = description.colors
+ if colorlist then
+ if idx >= 255 then
+ idx = 1
+ colrshapes = { }
+ slot, droppedin, tfmdrop = fonts.dropins.provide("color",tfmdata,colrshapes,colorvalues)
+ dropchars = tfmdrop.characters
+ dropdescs = tfmdrop.descriptions
+ else
+ idx = idx + 1
+ end
+ --
+ colrshapes[idx] = description
+ -- todo: use extender
+ local u = { "use", 0 }
+ for i=1,#colorlist do
+ u[i+2] = colorlist[i].slot
+ end
+ v.commands = { u, slotcommand[slot][idx] }
+ -- hack to prevent that type 3 also gets 'use' flags .. todo
+ local c = { commands = false, index = idx, dropin = tfmdata }
+ local d = { } -- index = idx, dropin = tfmdrop
+ setmetatableindex(c,v)
+ setmetatableindex(d,description)
+ dropchars[idx] = c
+ dropdescs[idx] = d -- not needed
end
- v.commands = { u, { "slot", slot, idx } }
- -- hack to prevent that type 3 also gets 'use' flags .. todo
- local c = { commands = false, index = idx, dropin = tfmdata }
- local d = { } -- index = idx, dropin = tfmdrop
- setmetatableindex(c,v)
- setmetatableindex(d,description)
- dropchars[idx] = c
- dropdescs[idx] = d -- not needed
end
end
end
+ return true
end
- return true
end
end
end
@@ -619,6 +557,7 @@ local initializeoverlay do
manipulators = {
base = initializeoverlay,
node = initializeoverlay,
+ plug = initializeoverlay,
}
}
@@ -696,6 +635,7 @@ local initializesvg do
manipulators = {
base = initializesvg,
node = initializesvg,
+ plug = initializesvg,
}
}
@@ -737,6 +677,7 @@ local initializepng do
manipulators = {
base = initializepng,
node = initializepng,
+ plug = initializepng,
}
}
@@ -746,6 +687,7 @@ local initializepng do
manipulators = {
base = initializepng,
node = initializepng,
+ plug = initializepng,
}
}
@@ -779,6 +721,7 @@ do
manipulators = {
base = initializecolor,
node = initializecolor,
+ plug = initializecolor,
}
}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-one.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-one.lmt
new file mode 100644
index 00000000000..453f611927a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-one.lmt
@@ -0,0 +1,847 @@
+if not modules then modules = { } end modules ['font-one'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>Some code may look a bit obscure but this has to do with the fact that we also use
+this code for testing and much code evolved in the transition from <l n='tfm'/> to
+<l n='afm'/> to <l n='otf'/>.</p>
+
+<p>The following code still has traces of intermediate font support where we handles
+font encodings. Eventually font encoding went away but we kept some code around in
+other modules.</p>
+
+<p>This version implements a node mode approach so that users can also more easily
+add features.</p>
+--ldx]]--
+
+local fonts, logs, trackers, containers, resolvers = fonts, logs, trackers, containers, resolvers
+
+local next, type, tonumber, rawget = next, type, tonumber, rawget
+local match, gsub = string.match, string.gsub
+local abs = math.abs
+local P, S, R, Cmt, C, Ct, Cs, Carg = lpeg.P, lpeg.S, lpeg.R, lpeg.Cmt, lpeg.C, lpeg.Ct, lpeg.Cs, lpeg.Carg
+local lpegmatch, patterns = lpeg.match, lpeg.patterns
+local sortedhash = table.sortedhash
+
+local trace_features = false trackers.register("afm.features", function(v) trace_features = v end)
+local trace_indexing = false trackers.register("afm.indexing", function(v) trace_indexing = v end)
+local trace_loading = false trackers.register("afm.loading", function(v) trace_loading = v end)
+local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end)
+
+local report_afm = logs.reporter("fonts","afm loading")
+
+local setmetatableindex = table.setmetatableindex
+local derivetable = table.derive
+
+local findbinfile = resolvers.findbinfile
+
+local privateoffset = fonts.constructors and fonts.constructors.privateoffset or 0xF0000 -- 0x10FFFF
+
+local definers = fonts.definers
+local readers = fonts.readers
+local constructors = fonts.constructors
+
+local afm = constructors.handlers.afm
+local pfb = constructors.handlers.pfb
+local otf = fonts.handlers.otf
+
+local otfreaders = otf.readers
+local otfenhancers = otf.enhancers
+
+local afmfeatures = constructors.features.afm
+local registerafmfeature = afmfeatures.register
+
+local afmenhancers = constructors.enhancers.afm
+local registerafmenhancer = afmenhancers.register
+
+afm.version = 1.513 -- incrementing this number one up will force a re-cache
+afm.cache = containers.define("fonts", "one", afm.version, true)
+afm.autoprefixed = true -- this will become false some day (catches texnansi-blabla.*)
+
+afm.helpdata = { } -- set later on so no local for this
+afm.syncspace = true -- when true, nicer stretch values
+
+local overloads = fonts.mappings.overloads
+
+local applyruntimefixes = fonts.treatments and fonts.treatments.applyfixes
+
+--[[ldx--
+<p>We cache files. Caching is taken care of in the loader. We cheat a bit by adding
+ligatures and kern information to the afm derived data. That way we can set them faster
+when defining a font.</p>
+
+<p>We still keep the loading two phased: first we load the data in a traditional
+fashion and later we transform it to sequences. Then we apply some methods also
+used in opentype fonts (like <t>tlig</t>).</p>
+--ldx]]--
+
+function afm.load(filename)
+ filename = resolvers.findfile(filename,'afm') or ""
+ if filename ~= "" and not fonts.names.ignoredfile(filename) then
+ local name = file.removesuffix(file.basename(filename))
+ local data = containers.read(afm.cache,name)
+ local attr = lfs.attributes(filename)
+ local size = attr and attr.size or 0
+ local time = attr and attr.modification or 0
+ --
+ local pfbfile = file.replacesuffix(name,"pfb")
+ local pfbname = resolvers.findfile(pfbfile,"pfb") or ""
+ if pfbname == "" then
+ pfbname = resolvers.findfile(file.basename(pfbfile),"pfb") or ""
+ end
+ local pfbsize = 0
+ local pfbtime = 0
+ if pfbname ~= "" then
+ local attr = lfs.attributes(pfbname)
+ pfbsize = attr.size or 0
+ pfbtime = attr.modification or 0
+ end
+ if not data or data.size ~= size or data.time ~= time or data.pfbsize ~= pfbsize or data.pfbtime ~= pfbtime then
+ report_afm("reading %a",filename)
+ data = afm.readers.loadfont(filename,pfbname)
+ if data then
+ afmenhancers.apply(data,filename)
+ -- otfreaders.addunicodetable(data) -- only when not done yet
+ fonts.mappings.addtounicode(data,filename)
+ otfreaders.stripredundant(data)
+ -- otfreaders.extend(data)
+ otfreaders.pack(data)
+ data.size = size
+ data.time = time
+ data.pfbsize = pfbsize
+ data.pfbtime = pfbtime
+ report_afm("saving %a in cache",name)
+ -- data.resources.unicodes = nil -- consistent with otf but here we save not much
+ data = containers.write(afm.cache, name, data)
+ data = containers.read(afm.cache,name)
+ end
+ end
+ if data then
+ -- constructors.addcoreunicodes(unicodes)
+ otfreaders.unpack(data)
+ otfreaders.expand(data) -- inline tables
+ otfreaders.addunicodetable(data) -- only when not done yet
+ otfenhancers.apply(data,filename,data)
+ if applyruntimefixes then
+ applyruntimefixes(filename,data)
+ end
+ end
+ return data
+ end
+end
+
+-- we run a more advanced analyzer later on anyway
+
+local uparser = fonts.mappings.makenameparser() -- each time
+
+local function enhance_unify_names(data, filename)
+ local unicodevector = fonts.encodings.agl.unicodes -- loaded runtime in context
+ local unicodes = { }
+ local names = { }
+ local private = data.private or privateoffset
+ local descriptions = data.descriptions
+ for name, blob in sortedhash(data.characters) do -- sorting is nicer for privates
+ local code = unicodevector[name] -- or characters.name_to_unicode[name]
+ if not code then
+ code = lpegmatch(uparser,name)
+ if type(code) ~= "number" then
+ code = private
+ private = private + 1
+ report_afm("assigning private slot %U for unknown glyph name %a",code,name)
+ end
+ end
+ local index = blob.index
+ unicodes[name] = code
+ names[name] = index
+ blob.name = name
+ descriptions[code] = {
+ boundingbox = blob.boundingbox,
+ width = blob.width,
+ kerns = blob.kerns,
+ index = index,
+ name = name,
+ }
+ end
+ for unicode, description in next, descriptions do
+ local kerns = description.kerns
+ if kerns then
+ local krn = { }
+ for name, kern in next, kerns do
+ local unicode = unicodes[name]
+ if unicode then
+ krn[unicode] = kern
+ else
+ -- print(unicode,name)
+ end
+ end
+ description.kerns = krn
+ end
+ end
+ data.characters = nil
+ data.private = private
+ local resources = data.resources
+ local filename = resources.filename or file.removesuffix(file.basename(filename))
+ resources.filename = resolvers.unresolve(filename) -- no shortcut
+ resources.unicodes = unicodes -- name to unicode
+ resources.marks = { } -- todo
+ -- resources.names = names -- name to index
+end
+
+local everywhere = { ["*"] = { ["*"] = true } } -- or: { ["*"] = { "*" } }
+local noflags = { false, false, false, false }
+
+local function enhance_normalize_features(data)
+ local ligatures = setmetatableindex("table")
+ local kerns = setmetatableindex("table")
+ local extrakerns = setmetatableindex("table")
+ for u, c in next, data.descriptions do
+ local l = c.ligatures
+ local k = c.kerns
+ local e = c.extrakerns
+ if l then
+ ligatures[u] = l
+ for u, v in next, l do
+ l[u] = { ligature = v }
+ end
+ c.ligatures = nil
+ end
+ if k then
+ kerns[u] = k
+ for u, v in next, k do
+ k[u] = v -- { v, 0 }
+ end
+ c.kerns = nil
+ end
+ if e then
+ extrakerns[u] = e
+ for u, v in next, e do
+ e[u] = v -- { v, 0 }
+ end
+ c.extrakerns = nil
+ end
+ end
+ local features = {
+ gpos = { },
+ gsub = { },
+ }
+ local sequences = {
+ -- only filled ones
+ }
+ if next(ligatures) then
+ features.gsub.liga = everywhere
+ data.properties.hasligatures = true
+ sequences[#sequences+1] = {
+ features = {
+ liga = everywhere,
+ },
+ flags = noflags,
+ name = "s_s_0",
+ nofsteps = 1,
+ order = { "liga" },
+ type = "gsub_ligature",
+ steps = {
+ {
+ coverage = ligatures,
+ },
+ },
+ }
+ end
+ if next(kerns) then
+ features.gpos.kern = everywhere
+ data.properties.haskerns = true
+ sequences[#sequences+1] = {
+ features = {
+ kern = everywhere,
+ },
+ flags = noflags,
+ name = "p_s_0",
+ nofsteps = 1,
+ order = { "kern" },
+ type = "gpos_pair",
+ steps = {
+ {
+ format = "kern",
+ coverage = kerns,
+ },
+ },
+ }
+ end
+ if next(extrakerns) then
+ features.gpos.extrakerns = everywhere
+ data.properties.haskerns = true
+ sequences[#sequences+1] = {
+ features = {
+ extrakerns = everywhere,
+ },
+ flags = noflags,
+ name = "p_s_1",
+ nofsteps = 1,
+ order = { "extrakerns" },
+ type = "gpos_pair",
+ steps = {
+ {
+ format = "kern",
+ coverage = extrakerns,
+ },
+ },
+ }
+ end
+ -- todo: compress kerns
+ data.resources.features = features
+ data.resources.sequences = sequences
+end
+
+local function enhance_fix_names(data)
+ for k, v in next, data.descriptions do
+ local n = v.name
+ local r = overloads[n]
+ if r then
+ local name = r.name
+ if trace_indexing then
+ report_afm("renaming characters %a to %a",n,name)
+ end
+ v.name = name
+ v.unicode = r.unicode
+ end
+ end
+end
+
+--[[ldx--
+<p>These helpers extend the basic table with extra ligatures, texligatures
+and extra kerns. This saves quite some lookups later.</p>
+--ldx]]--
+
+local addthem = function(rawdata,ligatures)
+ if ligatures then
+ local descriptions = rawdata.descriptions
+ local resources = rawdata.resources
+ local unicodes = resources.unicodes
+ -- local names = resources.names
+ for ligname, ligdata in next, ligatures do
+ local one = descriptions[unicodes[ligname]]
+ if one then
+ for _, pair in next, ligdata do
+ local two = unicodes[pair[1]]
+ local three = unicodes[pair[2]]
+ if two and three then
+ local ol = one.ligatures
+ if ol then
+ if not ol[two] then
+ ol[two] = three
+ end
+ else
+ one.ligatures = { [two] = three }
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+local function enhance_add_ligatures(rawdata)
+ addthem(rawdata,afm.helpdata.ligatures)
+end
+
+--[[ldx--
+<p>We keep the extra kerns in separate kerning tables so that we can use
+them selectively.</p>
+--ldx]]--
+
+-- This is rather old code (from the beginning when we had only tfm). If
+-- we unify the afm data (now we have names all over the place) then
+-- we can use shcodes but there will be many more looping then. But we
+-- could get rid of the tables in char-cmp then. Als, in the generic version
+-- we don't use the character database. (Ok, we can have a context specific
+-- variant).
+
+local function enhance_add_extra_kerns(rawdata) -- using shcodes is not robust here
+ local descriptions = rawdata.descriptions
+ local resources = rawdata.resources
+ local unicodes = resources.unicodes
+ local function do_it_left(what)
+ if what then
+ for unicode, description in next, descriptions do
+ local kerns = description.kerns
+ if kerns then
+ local extrakerns
+ for complex, simple in next, what do
+ complex = unicodes[complex]
+ simple = unicodes[simple]
+ if complex and simple then
+ local ks = kerns[simple]
+ if ks and not kerns[complex] then
+ if extrakerns then
+ extrakerns[complex] = ks
+ else
+ extrakerns = { [complex] = ks }
+ end
+ end
+ end
+ end
+ if extrakerns then
+ description.extrakerns = extrakerns
+ end
+ end
+ end
+ end
+ end
+ local function do_it_copy(what)
+ if what then
+ for complex, simple in next, what do
+ complex = unicodes[complex]
+ simple = unicodes[simple]
+ if complex and simple then
+ local complexdescription = descriptions[complex]
+ if complexdescription then -- optional
+ local simpledescription = descriptions[complex]
+ if simpledescription then
+ local extrakerns
+ local kerns = simpledescription.kerns
+ if kerns then
+ for unicode, kern in next, kerns do
+ if extrakerns then
+ extrakerns[unicode] = kern
+ else
+ extrakerns = { [unicode] = kern }
+ end
+ end
+ end
+ local extrakerns = simpledescription.extrakerns
+ if extrakerns then
+ for unicode, kern in next, extrakerns do
+ if extrakerns then
+ extrakerns[unicode] = kern
+ else
+ extrakerns = { [unicode] = kern }
+ end
+ end
+ end
+ if extrakerns then
+ complexdescription.extrakerns = extrakerns
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ -- add complex with values of simplified when present
+ do_it_left(afm.helpdata.leftkerned)
+ do_it_left(afm.helpdata.bothkerned)
+ -- copy kerns from simple char to complex char unless set
+ do_it_copy(afm.helpdata.bothkerned)
+ do_it_copy(afm.helpdata.rightkerned)
+end
+
+--[[ldx--
+<p>The copying routine looks messy (and is indeed a bit messy).</p>
+--ldx]]--
+
+local function adddimensions(data) -- we need to normalize afm to otf i.e. indexed table instead of name
+ if data then
+ for unicode, description in next, data.descriptions do
+ local bb = description.boundingbox
+ if bb then
+ local ht = bb[4]
+ local dp = -bb[2]
+ if ht == 0 or ht < 0 then
+ -- no need to set it and no negative heights, nil == 0
+ else
+ description.height = ht
+ end
+ if dp == 0 or dp < 0 then
+ -- no negative depths and no negative depths, nil == 0
+ else
+ description.depth = dp
+ end
+ end
+ end
+ end
+end
+
+local function copytotfm(data)
+ if data and data.descriptions then
+ local metadata = data.metadata
+ local resources = data.resources
+ local properties = derivetable(data.properties)
+ local descriptions = derivetable(data.descriptions)
+ local goodies = derivetable(data.goodies)
+ local characters = { }
+ local parameters = { }
+ local unicodes = resources.unicodes
+ --
+ for unicode, description in next, data.descriptions do -- use parent table
+ characters[unicode] = { }
+ end
+ --
+ local filename = constructors.checkedfilename(resources)
+ local fontname = metadata.fontname or metadata.fullname
+ local fullname = metadata.fullname or metadata.fontname
+ local endash = 0x2013
+ local emdash = 0x2014
+ local space = 0x0020 -- space
+ local spacer = "space"
+ local spaceunits = 500
+ --
+ local monospaced = metadata.monospaced
+ local charwidth = metadata.charwidth
+ local italicangle = metadata.italicangle
+ local charxheight = metadata.xheight and metadata.xheight > 0 and metadata.xheight
+ properties.monospaced = monospaced
+ parameters.italicangle = italicangle
+ parameters.charwidth = charwidth
+ parameters.charxheight = charxheight
+ -- nearly the same as otf, catches
+ local d_endash = descriptions[endash]
+ local d_emdash = descriptions[emdash]
+ local d_space = descriptions[space]
+ if not d_space or d_space == 0 then
+ d_space = d_endash
+ end
+ if d_space then
+ spaceunits, spacer = d_space.width or 0, "space"
+ end
+ if properties.monospaced then
+ if spaceunits == 0 and d_emdash then
+ spaceunits, spacer = d_emdash.width or 0, "emdash"
+ end
+ else
+ if spaceunits == 0 and d_endash then
+ spaceunits, spacer = d_emdash.width or 0, "endash"
+ end
+ end
+ if spaceunits == 0 and charwidth then
+ spaceunits, spacer = charwidth or 0, "charwidth"
+ end
+ if spaceunits == 0 then
+ spaceunits = tonumber(spaceunits) or 500
+ end
+ if spaceunits == 0 then
+ spaceunits = 500
+ end
+ --
+ parameters.slant = 0
+ parameters.space = spaceunits
+ parameters.spacestretch = 500
+ parameters.spaceshrink = 333
+ parameters.xheight = 400
+ parameters.quad = 1000
+ --
+ if italicangle and italicangle ~= 0 then
+ parameters.italicangle = italicangle
+ parameters.italicfactor = math.cos(math.rad(90+italicangle))
+ parameters.slant = - math.tan(italicangle*math.pi/180)
+ end
+ if monospaced then
+ parameters.spacestretch = 0
+ parameters.spaceshrink = 0
+ elseif afm.syncspace then
+ parameters.spacestretch = spaceunits/2
+ parameters.spaceshrink = spaceunits/3
+ end
+ parameters.extraspace = parameters.spaceshrink
+ if charxheight then
+ parameters.xheight = charxheight
+ else
+ -- same as otf
+ local x = 0x0078 -- x
+ if x then
+ local x = descriptions[x]
+ if x then
+ parameters.xheight = x.height
+ end
+ end
+ --
+ end
+ --
+ if metadata.sup then
+ local dummy = { 0, 0, 0 }
+ parameters[ 1] = metadata.designsize or 0
+ parameters[ 2] = metadata.checksum or 0
+ parameters[ 3],
+ parameters[ 4],
+ parameters[ 5] = unpack(metadata.space or dummy)
+ parameters[ 6] = metadata.quad or 0
+ parameters[ 7] = metadata.extraspace or 0
+ parameters[ 8],
+ parameters[ 9],
+ parameters[10] = unpack(metadata.num or dummy)
+ parameters[11],
+ parameters[12] = unpack(metadata.denom or dummy)
+ parameters[13],
+ parameters[14],
+ parameters[15] = unpack(metadata.sup or dummy)
+ parameters[16],
+ parameters[17] = unpack(metadata.sub or dummy)
+ parameters[18] = metadata.supdrop or 0
+ parameters[19] = metadata.subdrop or 0
+ parameters[20],
+ parameters[21] = unpack(metadata.delim or dummy)
+ parameters[22] = metadata.axisheight or 0
+ end
+ --
+ parameters.designsize = (metadata.designsize or 10)*65536
+ parameters.ascender = abs(metadata.ascender or 0)
+ parameters.descender = abs(metadata.descender or 0)
+ parameters.units = 1000
+ --
+ properties.spacer = spacer
+ properties.format = fonts.formats[filename] or "type1"
+ properties.filename = filename
+ properties.fontname = fontname
+ properties.fullname = fullname
+ properties.psname = fullname
+ properties.name = filename or fullname or fontname
+ properties.private = properties.private or data.private or privateoffset
+ --
+if not CONTEXTLMTXMODE or CONTEXTLMTXMODE == 0 then
+ properties.encodingbytes = 2
+end
+ --
+ if next(characters) then
+ return {
+ characters = characters,
+ descriptions = descriptions,
+ parameters = parameters,
+ resources = resources,
+ properties = properties,
+ goodies = goodies,
+ }
+ end
+ end
+ return nil
+end
+
+--[[ldx--
+<p>Originally we had features kind of hard coded for <l n='afm'/> files but since I
+expect to support more font formats, I decided to treat this fontformat like any
+other and handle features in a more configurable way.</p>
+--ldx]]--
+
+function afm.setfeatures(tfmdata,features)
+ local okay = constructors.initializefeatures("afm",tfmdata,features,trace_features,report_afm)
+ if okay then
+ return constructors.collectprocessors("afm",tfmdata,features,trace_features,report_afm)
+ else
+ return { } -- will become false
+ end
+end
+
+local function addtables(data)
+ local resources = data.resources
+ local lookuptags = resources.lookuptags
+ local unicodes = resources.unicodes
+ if not lookuptags then
+ lookuptags = { }
+ resources.lookuptags = lookuptags
+ end
+ setmetatableindex(lookuptags,function(t,k)
+ local v = type(k) == "number" and ("lookup " .. k) or k
+ t[k] = v
+ return v
+ end)
+ if not unicodes then
+ unicodes = { }
+ resources.unicodes = unicodes
+ setmetatableindex(unicodes,function(t,k)
+ setmetatableindex(unicodes,nil)
+ for u, d in next, data.descriptions do
+ local n = d.name
+ if n then
+ t[n] = u
+ end
+ end
+ return rawget(t,k)
+ end)
+ end
+ constructors.addcoreunicodes(unicodes) -- do we really need this?
+end
+
+local function afmtotfm(specification)
+ local afmname = specification.filename or specification.name
+ if specification.forced == "afm" or specification.format == "afm" then -- move this one up
+ if trace_loading then
+ report_afm("forcing afm format for %a",afmname)
+ end
+ else
+ local tfmname = findbinfile(afmname,"ofm") or ""
+ if tfmname ~= "" then
+ if trace_loading then
+ report_afm("fallback from afm to tfm for %a",afmname)
+ end
+ return -- just that
+ end
+ end
+ if afmname ~= "" then
+ -- weird, isn't this already done then?
+ local features = constructors.checkedfeatures("afm",specification.features.normal)
+ specification.features.normal = features
+ constructors.hashinstance(specification,true) -- also weird here
+ --
+ specification = definers.resolve(specification) -- new, was forgotten
+ local cache_id = specification.hash
+ local tfmdata = containers.read(constructors.cache, cache_id) -- cache with features applied
+ if not tfmdata then
+ local rawdata = afm.load(afmname)
+ if rawdata and next(rawdata) then
+ addtables(rawdata)
+ adddimensions(rawdata)
+ tfmdata = copytotfm(rawdata)
+ if tfmdata and next(tfmdata) then
+ local shared = tfmdata.shared
+ if not shared then
+ shared = { }
+ tfmdata.shared = shared
+ end
+ shared.rawdata = rawdata
+ shared.dynamics = { }
+ tfmdata.changed = { }
+ shared.features = features
+ shared.processes = afm.setfeatures(tfmdata,features)
+ end
+ elseif trace_loading then
+ report_afm("no (valid) afm file found with name %a",afmname)
+ end
+ tfmdata = containers.write(constructors.cache,cache_id,tfmdata)
+ end
+ return tfmdata
+ end
+end
+
+--[[ldx--
+<p>As soon as we could intercept the <l n='tfm'/> reader, I implemented an
+<l n='afm'/> reader. Since traditional <l n='pdftex'/> could use <l n='opentype'/>
+fonts with <l n='afm'/> companions, the following method also could handle
+those cases, but now that we can handle <l n='opentype'/> directly we no longer
+need this features.</p>
+--ldx]]--
+
+local function read_from_afm(specification)
+ local tfmdata = afmtotfm(specification)
+ if tfmdata then
+ tfmdata.properties.name = specification.name
+ tfmdata.properties.id = specification.id
+ tfmdata = constructors.scale(tfmdata, specification)
+ local allfeatures = tfmdata.shared.features or specification.features.normal
+ constructors.applymanipulators("afm",tfmdata,allfeatures,trace_features,report_afm)
+ fonts.loggers.register(tfmdata,'afm',specification)
+ end
+ return tfmdata
+end
+
+--[[ldx--
+<p>We have the usual two modes and related features initializers and processors.</p>
+--ldx]]--
+
+registerafmfeature {
+ name = "mode",
+ description = "mode",
+ initializers = {
+ base = otf.modeinitializer,
+ node = otf.modeinitializer,
+ }
+}
+
+registerafmfeature {
+ name = "features",
+ description = "features",
+ default = true,
+ initializers = {
+ node = otf.nodemodeinitializer,
+ base = otf.basemodeinitializer,
+ },
+ processors = {
+ node = otf.featuresprocessor,
+ }
+}
+
+-- readers
+
+fonts.formats.afm = "type1"
+fonts.formats.pfb = "type1"
+
+local function check_afm(specification,fullname)
+ local foundname = findbinfile(fullname, 'afm') or "" -- just to be sure
+ if foundname == "" then
+ foundname = fonts.names.getfilename(fullname,"afm") or ""
+ end
+ if fullname and foundname == "" and afm.autoprefixed then
+ local encoding, shortname = match(fullname,"^(.-)%-(.*)$") -- context: encoding-name.*
+ if encoding and shortname and fonts.encodings.known[encoding] then
+ shortname = findbinfile(shortname,'afm') or "" -- just to be sure
+ if shortname ~= "" then
+ foundname = shortname
+ if trace_defining then
+ report_afm("stripping encoding prefix from filename %a",afmname)
+ end
+ end
+ end
+ end
+ if foundname ~= "" then
+ specification.filename = foundname
+ specification.format = "afm"
+ return read_from_afm(specification)
+ end
+end
+
+function readers.afm(specification,method)
+ local fullname = specification.filename or ""
+ local tfmdata = nil
+ if fullname == "" then
+ local forced = specification.forced or ""
+ if forced ~= "" then
+ tfmdata = check_afm(specification,specification.name .. "." .. forced)
+ end
+ if not tfmdata then
+ local check_tfm = readers.check_tfm
+ method = (check_tfm and (method or definers.method or "afm or tfm")) or "afm"
+ if method == "tfm" then
+ tfmdata = check_tfm(specification,specification.name)
+ elseif method == "afm" then
+ tfmdata = check_afm(specification,specification.name)
+ elseif method == "tfm or afm" then
+ tfmdata = check_tfm(specification,specification.name) or check_afm(specification,specification.name)
+ else -- method == "afm or tfm" or method == "" then
+ tfmdata = check_afm(specification,specification.name) or check_tfm(specification,specification.name)
+ end
+ end
+ else
+ tfmdata = check_afm(specification,fullname)
+ end
+ return tfmdata
+end
+
+function readers.pfb(specification,method) -- only called when forced
+ local original = specification.specification
+ if trace_defining then
+ report_afm("using afm reader for %a",original)
+ end
+ specification.forced = "afm"
+ local function swap(name)
+ local value = specification[swap]
+ if value then
+ specification[swap] = gsub("%.pfb",".afm",1)
+ end
+ end
+ swap("filename")
+ swap("fullname")
+ swap("forcedname")
+ swap("specification")
+ return readers.afm(specification,method)
+end
+
+-- now we register them
+
+registerafmenhancer("unify names", enhance_unify_names)
+registerafmenhancer("add ligatures", enhance_add_ligatures)
+registerafmenhancer("add extra kerns", enhance_add_extra_kerns)
+registerafmenhancer("normalize features", enhance_normalize_features)
+registerafmenhancer("check extra features", otfenhancers.enhance)
+registerafmenhancer("fix names", enhance_fix_names)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-onr.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-onr.lmt
new file mode 100644
index 00000000000..d28c247df63
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-onr.lmt
@@ -0,0 +1,614 @@
+if not modules then modules = { } end modules ['font-onr'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>Some code may look a bit obscure but this has to do with the fact that we also use
+this code for testing and much code evolved in the transition from <l n='tfm'/> to
+<l n='afm'/> to <l n='otf'/>.</p>
+
+<p>The following code still has traces of intermediate font support where we handles
+font encodings. Eventually font encoding went away but we kept some code around in
+other modules.</p>
+
+<p>This version implements a node mode approach so that users can also more easily
+add features.</p>
+--ldx]]--
+
+local fonts, logs, trackers, resolvers = fonts, logs, trackers, resolvers
+
+local next, type, tonumber, rawset = next, type, tonumber, rawset
+local match, lower, gsub, strip, find = string.match, string.lower, string.gsub, string.strip, string.find
+local char, byte, sub = string.char, string.byte, string.sub
+local abs = math.abs
+----- bxor, rshift = bit32.bxor, bit32.rshift
+local P, S, R, V, Cmt, C, Ct, Cs, Carg, Cf, Cg, Cc = lpeg.P, lpeg.S, lpeg.R, lpeg.V, lpeg.Cmt, lpeg.C, lpeg.Ct, lpeg.Cs, lpeg.Carg, lpeg.Cf, lpeg.Cg, lpeg.Cc
+local lpegmatch, patterns = lpeg.match, lpeg.patterns
+
+local trace_indexing = false trackers.register("afm.indexing", function(v) trace_indexing = v end)
+local trace_loading = false trackers.register("afm.loading", function(v) trace_loading = v end)
+
+local report_afm = logs.reporter("fonts","afm loading")
+local report_pfb = logs.reporter("fonts","pfb loading")
+
+local handlers = fonts.handlers
+
+local afm = handlers.afm or { }
+handlers.afm = afm
+afm.version = 1.513 -- incrementing this number one up will force a re-cache
+
+local pfb = handlers.pfb or { }
+handlers.pfb = pfb
+pfb.version = 1.002
+
+local readers = afm.readers or { }
+afm.readers = readers
+
+--[[ldx--
+<p>We start with the basic reader which we give a name similar to the built in <l n='tfm'/>
+and <l n='otf'/> reader.</p>
+<p>We use a new (unfinished) pfb loader but I see no differences between the old
+and new vectors (we actually had one bad vector with the old loader).</p>
+--ldx]]--
+
+local get_indexes, get_shapes
+
+do
+
+ local decrypt
+
+ do
+
+ local r, c1, c2, n = 0, 0, 0, 0
+
+ local function step(c)
+ local cipher = byte(c)
+ -- local plain = bxor(cipher,rshift(r,8))
+ local plain = (cipher ~ ((r >> 8) & 0xFFFFFFFF))
+ -- r = ((cipher + r) * c1 + c2) % 65536
+ r = ((cipher + r) * c1 + c2) % 0x10000
+ return char(plain)
+ end
+
+ decrypt = function(binary,initial,seed)
+ r, c1, c2, n = initial, 52845, 22719, seed
+ binary = gsub(binary,".",step)
+ return sub(binary,n+1)
+ end
+
+ -- local pattern = Cs((P(1) / step)^1)
+ --
+ -- decrypt = function(binary,initial,seed)
+ -- r, c1, c2, n = initial, 52845, 22719, seed
+ -- binary = lpegmatch(pattern,binary)
+ -- return sub(binary,n+1)
+ -- end
+
+ end
+
+ local charstrings = P("/CharStrings")
+ local subroutines = P("/Subrs")
+ local encoding = P("/Encoding")
+ local dup = P("dup")
+ local put = P("put")
+ local array = P("array")
+ local name = P("/") * C((R("az","AZ","09")+S("-_."))^1)
+ local digits = R("09")^1
+ local cardinal = digits / tonumber
+ local spaces = P(" ")^1
+ local spacing = patterns.whitespace^0
+
+ local routines, vector, chars, n, m
+
+ local initialize = function(str,position,size)
+ n = 0
+ m = size
+ return position + 1
+ end
+
+ local setroutine = function(str,position,index,size,filename)
+ if routines[index] then
+ -- we have passed the end
+ return false
+ end
+ local forward = position + size
+ local stream = decrypt(sub(str,position+1,forward),4330,4)
+ routines[index] = { byte(stream,1,#stream) }
+ n = n + 1
+ if n >= m then
+ -- m should be index now but can we assume ordering?
+ return #str
+ end
+ return forward + 1
+ end
+
+ local setvector = function(str,position,name,size,filename)
+ local forward = position + tonumber(size)
+ if n >= m then
+ return #str
+ elseif forward < #str then
+ if n == 0 and name ~= ".notdef" then
+ report_pfb("reserving .notdef at index 0 in %a",filename) -- luatex needs that
+ n = n + 1
+ end
+ vector[n] = name
+ n = n + 1
+ return forward
+ else
+ return #str
+ end
+ end
+
+ local setshapes = function(str,position,name,size,filename)
+ local forward = position + tonumber(size)
+ local stream = sub(str,position+1,forward)
+ if n > m then
+ return #str
+ elseif forward < #str then
+ if n == 0 and name ~= ".notdef" then
+ report_pfb("reserving .notdef at index 0 in %a",filename) -- luatex needs that
+ n = n + 1
+ end
+ vector[n] = name
+ n = n + 1
+ chars [n] = decrypt(stream,4330,4)
+ return forward
+ else
+ return #str
+ end
+ end
+
+ local p_rd = spacing * (P("RD") + P("-|"))
+ local p_np = spacing * (P("NP") + P( "|"))
+ local p_nd = spacing * (P("ND") + P( "|"))
+
+ local p_filterroutines = -- dup <i> <n> RD or -| <n encrypted bytes> NP or |
+ (1-subroutines)^0 * subroutines * spaces * Cmt(cardinal,initialize)
+ * (Cmt(cardinal * spaces * cardinal * p_rd * Carg(1), setroutine) * p_np + (1-p_nd))^1
+
+ local p_filtershapes = -- /foo <n> RD <n encrypted bytes> ND
+ (1-charstrings)^0 * charstrings * spaces * Cmt(cardinal,initialize)
+ * (Cmt(name * spaces * cardinal * p_rd * Carg(1) , setshapes) * p_nd + P(1))^1
+
+ local p_filternames = Ct (
+ (1-charstrings)^0 * charstrings * spaces * Cmt(cardinal,initialize)
+ * (Cmt(name * spaces * cardinal * Carg(1), setvector) + P(1))^1
+ )
+
+ -- /Encoding 256 array
+ -- 0 1 255 {1 index exch /.notdef put} for
+ -- dup 0 /Foo put
+
+ local p_filterencoding =
+ (1-encoding)^0 * encoding * spaces * digits * spaces * array * (1-dup)^0
+ * Cf(
+ Ct("") * Cg(spacing * dup * spaces * cardinal * spaces * name * spaces * put)^1
+ ,rawset)
+
+ -- if one of first 4 not 0-9A-F then binary else hex
+
+ local key = spacing * P("/") * R("az","AZ")
+ local str = spacing * Cs { (P("(")/"") * ((1 - P("\\(") - P("\\)") - S("()")) + V(1))^0 * (P(")")/"") }
+ local num = spacing * (R("09") + S("+-."))^1 / tonumber
+ local arr = spacing * Ct (S("[{") * (num)^0 * spacing * S("]}"))
+ local boo = spacing * (P("true") * Cc(true) + P("false") * Cc(false))
+ local nam = spacing * P("/") * Cs(R("az","AZ")^1)
+
+ local p_filtermetadata = (
+ P("/") * Carg(1) * ( (
+ C("version") * str
+ + C("Copyright") * str
+ + C("Notice") * str
+ + C("FullName") * str
+ + C("FamilyName") * str
+ + C("Weight") * str
+ + C("ItalicAngle") * num
+ + C("isFixedPitch") * boo
+ + C("UnderlinePosition") * num
+ + C("UnderlineThickness") * num
+ + C("FontName") * nam
+ + C("FontMatrix") * arr
+ + C("FontBBox") * arr
+ + C("FontType") * num
+ ) ) / function (t,k,v) t[lower(k)] = v end
+ + P(1)
+ )^0 * Carg(1)
+
+ -- cache this?
+
+ local filecache = containers.define("fonts", "pfb", pfb.version, true)
+ local cleanname = fonts.handlers.otf.readers.helpers.cleanname
+
+ local caching = true -- mainly for MS and HH as they test huge files with many instances
+
+ local function loadpfbvector(filename,shapestoo,streams)
+ -- for the moment limited to encoding only
+
+ local fullname = resolvers.findfile(filename)
+
+ if not fullname or fullname == "" then
+ report_pfb("unknown file %a",filename)
+ return
+ end
+
+ local fileattr = lfs.attributes(fullname)
+ local filesize = fileattr and fileattr.size or 0
+ local filetime = fileattr and fileattr.modification or 0
+ local fileformat = "pfb"
+ local filehash = cleanname(file.basename(filename))
+
+ local names = nil
+ local encoding = nil
+ local metadata = nil
+ local glyphs = { }
+
+ local data = caching and containers.read(filecache,filehash)
+ if data and data.filetime == filetime and data.filesize == filesize and data.fileformat == fileformat then
+ names = data.names
+ encoding = data.encoding
+ metadata = data.metadata
+ end
+
+ if shapestoo or streams then
+ -- not cached
+ elseif names then
+ return names, encoding, glyphs, metadata
+ end
+
+ local data = io.loaddata(fullname)
+
+ if not data then
+ report_pfb("no data in %a",filename)
+ return
+ end
+
+ if not (find(data,"!PS-AdobeFont-",1,true) or find(data,"%!FontType1",1,true)) then
+ report_pfb("no font in %a",filename)
+ return
+ end
+
+ local ascii, binary = match(data,"(.*)eexec%s+......(.*)")
+
+ if not binary then
+ report_pfb("no binary data in %a",filename)
+ return
+ end
+
+ binary = decrypt(binary,55665,4)
+
+ if not encoding then
+ encoding = lpegmatch(p_filterencoding,ascii)
+ end
+ if not metadata then
+ metadata = lpegmatch(p_filtermetadata,ascii,1,{})
+ end
+
+ glyphs = { }
+ routines = { }
+ vector = { }
+ chars = { }
+
+ if shapestoo or streams then
+ -- io.savedata("foo.txt",binary)
+ lpegmatch(p_filterroutines,binary,1,filename)
+ lpegmatch(p_filtershapes, binary,1,filename)
+ local data = {
+ dictionaries = {
+ {
+ charstrings = chars,
+ charset = vector,
+ subroutines = routines,
+ }
+ },
+ }
+ local version = metadata.FontType or 1
+ -- only cff 1 in type 1 fonts
+ fonts.handlers.otf.readers.parsecharstrings(false,data,glyphs,true,"cff",streams,true,true)
+ elseif not names then
+ lpegmatch(p_filternames,binary,1,filename)
+ end
+
+ names = names or vector
+ routines = nil
+ vector = nil
+ chars = nil
+
+ if caching then
+ containers.write(filecache,filehash,{
+ filesize = filesize,
+ fileformat = fileformat,
+ filetime = filetime,
+ names = names,
+ encoding = encoding,
+ metadata = metadata,
+ })
+ end
+
+ return names, encoding, glyphs, metadata
+
+ end
+
+ pfb.loadvector = loadpfbvector
+
+ get_indexes = function(data,pfbname)
+ local vector = loadpfbvector(pfbname)
+ if vector then
+ local characters = data.characters
+ if trace_loading then
+ report_afm("getting index data from %a",pfbname)
+ end
+ for index=0,#vector do -- hm, zero, often space or notdef
+ local name = vector[index]
+ local char = characters[name]
+ if char then
+ if trace_indexing then
+ report_afm("glyph %a has index %a",name,index)
+ end
+ char.index = index
+ else
+ if trace_indexing then
+ report_afm("glyph %a has index %a but no data",name,index)
+ end
+ end
+ end
+ end
+ end
+
+ get_shapes = function(pfbname)
+ local vector, encoding, glyphs = loadpfbvector(pfbname,true)
+ return glyphs
+ end
+
+end
+
+--[[ldx--
+<p>We start with the basic reader which we give a name similar to the built in <l n='tfm'/>
+and <l n='otf'/> reader. We only need data that is relevant for our use. We don't support
+more complex arrangements like multiple master (obsolete), direction specific kerning, etc.</p>
+--ldx]]--
+
+local spacer = patterns.spacer
+local whitespace = patterns.whitespace
+local lineend = patterns.newline
+local spacing = spacer^0
+local number = spacing * S("+-")^-1 * (R("09") + S("."))^1 / tonumber
+local name = spacing * C((1 - whitespace)^1)
+local words = spacing * ((1 - lineend)^1 / strip)
+local rest = (1 - lineend)^0
+local fontdata = Carg(1)
+local semicolon = spacing * P(";")
+local plus = spacing * P("plus") * number
+local minus = spacing * P("minus") * number
+
+-- kern pairs
+
+local function addkernpair(data,one,two,value)
+ local chr = data.characters[one]
+ if chr then
+ local kerns = chr.kerns
+ if kerns then
+ kerns[two] = tonumber(value)
+ else
+ chr.kerns = { [two] = tonumber(value) }
+ end
+ end
+end
+
+local p_kernpair = (fontdata * P("KPX") * name * name * number) / addkernpair
+
+-- char metrics
+
+local chr = false
+local ind = 0
+
+local function start(data,version)
+ data.metadata.afmversion = version
+ ind = 0
+ chr = { }
+end
+
+local function stop()
+ ind = 0
+ chr = false
+end
+
+local function setindex(i)
+ if i < 0 then
+ ind = ind + 1 -- ?
+ else
+ ind = i
+ end
+ chr = {
+ index = ind
+ }
+end
+
+local function setwidth(width)
+ chr.width = width
+end
+
+local function setname(data,name)
+ data.characters[name] = chr
+end
+
+local function setboundingbox(boundingbox)
+ chr.boundingbox = boundingbox
+end
+
+local function setligature(plus,becomes)
+ local ligatures = chr.ligatures
+ if ligatures then
+ ligatures[plus] = becomes
+ else
+ chr.ligatures = { [plus] = becomes }
+ end
+end
+
+local p_charmetric = ( (
+ P("C") * number / setindex
+ + P("WX") * number / setwidth
+ + P("N") * fontdata * name / setname
+ + P("B") * Ct((number)^4) / setboundingbox
+ + P("L") * (name)^2 / setligature
+ ) * semicolon )^1
+
+local p_charmetrics = P("StartCharMetrics") * number * (p_charmetric + (1-P("EndCharMetrics")))^0 * P("EndCharMetrics")
+local p_kernpairs = P("StartKernPairs") * number * (p_kernpair + (1-P("EndKernPairs" )))^0 * P("EndKernPairs" )
+
+local function set_1(data,key,a) data.metadata[lower(key)] = a end
+local function set_2(data,key,a,b) data.metadata[lower(key)] = { a, b } end
+local function set_3(data,key,a,b,c) data.metadata[lower(key)] = { a, b, c } end
+
+-- Notice string
+-- EncodingScheme string
+-- MappingScheme integer
+-- EscChar integer
+-- CharacterSet string
+-- Characters integer
+-- IsBaseFont boolean
+-- VVector number number
+-- IsFixedV boolean
+
+local p_parameters = P(false)
+ + fontdata
+ * ((P("FontName") + P("FullName") + P("FamilyName"))/lower)
+ * words / function(data,key,value)
+ data.metadata[key] = value
+ end
+ + fontdata
+ * ((P("Weight") + P("Version"))/lower)
+ * name / function(data,key,value)
+ data.metadata[key] = value
+ end
+ + fontdata
+ * P("IsFixedPitch")
+ * name / function(data,pitch)
+ data.metadata.monospaced = toboolean(pitch,true)
+ end
+ + fontdata
+ * P("FontBBox")
+ * Ct(number^4) / function(data,boundingbox)
+ data.metadata.boundingbox = boundingbox
+ end
+ + fontdata
+ * ((P("CharWidth") + P("CapHeight") + P("XHeight") + P("Descender") + P("Ascender") + P("ItalicAngle"))/lower)
+ * number / function(data,key,value)
+ data.metadata[key] = value
+ end
+ + P("Comment") * spacing * ( P(false)
+ + (fontdata * C("DESIGNSIZE") * number * rest) / set_1 -- 1
+ + (fontdata * C("TFM designsize") * number * rest) / set_1
+ + (fontdata * C("DesignSize") * number * rest) / set_1
+ + (fontdata * C("CODINGSCHEME") * words * rest) / set_1 --
+ + (fontdata * C("CHECKSUM") * number * words * rest) / set_1 -- 2
+ + (fontdata * C("SPACE") * number * plus * minus * rest) / set_3 -- 3 4 5
+ + (fontdata * C("QUAD") * number * rest) / set_1 -- 6
+ + (fontdata * C("EXTRASPACE") * number * rest) / set_1 -- 7
+ + (fontdata * C("NUM") * number * number * number * rest) / set_3 -- 8 9 10
+ + (fontdata * C("DENOM") * number * number * rest) / set_2 -- 11 12
+ + (fontdata * C("SUP") * number * number * number * rest) / set_3 -- 13 14 15
+ + (fontdata * C("SUB") * number * number * rest) / set_2 -- 16 17
+ + (fontdata * C("SUPDROP") * number * rest) / set_1 -- 18
+ + (fontdata * C("SUBDROP") * number * rest) / set_1 -- 19
+ + (fontdata * C("DELIM") * number * number * rest) / set_2 -- 20 21
+ + (fontdata * C("AXISHEIGHT") * number * rest) / set_1 -- 22
+ )
+
+local fullparser = ( P("StartFontMetrics") * fontdata * name / start )
+ * ( p_charmetrics + p_kernpairs + p_parameters + (1-P("EndFontMetrics")) )^0
+ * ( P("EndFontMetrics") / stop )
+
+local infoparser = ( P("StartFontMetrics") * fontdata * name / start )
+ * ( p_parameters + (1-P("EndFontMetrics")) )^0
+ * ( P("EndFontMetrics") / stop )
+
+-- infoparser = ( P("StartFontMetrics") * fontdata * name / start )
+-- * ( p_parameters + (1-P("EndFontMetrics") - P("StartCharMetrics")) )^0
+-- * ( (P("EndFontMetrics") + P("StartCharMetrics")) / stop )
+
+local function read(filename,parser)
+ local afmblob = io.loaddata(filename)
+ if afmblob then
+ local data = {
+ resources = {
+ filename = resolvers.unresolve(filename),
+ version = afm.version,
+ creator = "context mkiv",
+ },
+ properties = {
+ hasitalics = false,
+ },
+ goodies = {
+ },
+ metadata = {
+ filename = file.removesuffix(file.basename(filename))
+ },
+ characters = {
+ -- a temporary store
+ },
+ descriptions = {
+ -- the final store
+ },
+ }
+ if trace_loading then
+ report_afm("parsing afm file %a",filename)
+ end
+ lpegmatch(parser,afmblob,1,data)
+ return data
+ else
+ if trace_loading then
+ report_afm("no valid afm file %a",filename)
+ end
+ return nil
+ end
+end
+
+function readers.loadfont(afmname,pfbname)
+ local data = read(resolvers.findfile(afmname),fullparser)
+ if data then
+ if not pfbname or pfbname == "" then
+ pfbname = resolvers.findfile(file.replacesuffix(file.nameonly(afmname),"pfb"))
+ end
+ if pfbname and pfbname ~= "" then
+ data.resources.filename = resolvers.unresolve(pfbname)
+ get_indexes(data,pfbname)
+ return data
+ else -- if trace_loading then
+ report_afm("no pfb file for %a",afmname)
+ -- better than loading the afm file: data.resources.filename = rawname
+ -- but that will still crash the backend so we just return nothing now
+ end
+ end
+end
+
+-- for now, todo: n and check with otf (no afm needed here)
+
+function readers.loadshapes(filename)
+ local fullname = resolvers.findfile(filename) or ""
+ if fullname == "" then
+ return {
+ filename = "not found: " .. filename,
+ glyphs = { }
+ }
+ else
+ return {
+ filename = fullname,
+ format = "opentype",
+ glyphs = get_shapes(fullname) or { },
+ units = 1000,
+ }
+ end
+end
+
+
+function readers.getinfo(filename)
+ local data = read(resolvers.findfile(filename),infoparser)
+ if data then
+ return data.metadata
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-ota.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-ota.lmt
index 6475c57e64b..157270ef18d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-ota.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-ota.lmt
@@ -42,7 +42,7 @@ local ischar = nuts.ischar
local isnextchar = nuts.isnextchar
----- isprevchar = nuts.isprevchar
-local end_of_math = nuts.end_of_math
+local endofmath = nuts.endofmath
local nodecodes = nodes.nodecodes
local disc_code = nodecodes.disc
@@ -216,8 +216,8 @@ function analyzers.setstate(head,font) -- latin
end
first = false
if id == math_code then
- -- current = end_of_math(current)
- nxt = getnext(end_of_math(current))
+ -- current = endofmath(current)
+ nxt = getnext(endofmath(current))
end
elseif id == disc_code then
-- always in the middle .. it doesn't make much sense to assign a property
@@ -231,7 +231,7 @@ function analyzers.setstate(head,font) -- latin
end
first = false
if id == math_code then
- current = end_of_math(current)
+ current = endofmath(current)
end
end
::NEXT::
@@ -430,8 +430,8 @@ function methods.arab(head,font,attr)
first = nil
end
if id == math_code then -- a bit duplicate as we test for glyphs twice
- -- current = end_of_math(current)
- nxt = getnext(end_of_math(current))
+ -- current = endofmath(current)
+ nxt = getnext(endofmath(current))
end
end
-- current = getnext(current)
@@ -560,8 +560,8 @@ do
wrapup()
end
if id == math_code then -- a bit duplicate as we test for glyphs twice
- -- current = end_of_math(current)
- nxt = getnext(end_of_math(current))
+ -- current = endofmath(current)
+ nxt = getnext(endofmath(current))
end
end
-- current = getnext(current)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-otd.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-otd.lmt
new file mode 100644
index 00000000000..3f1b212dbb3
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-otd.lmt
@@ -0,0 +1,284 @@
+if not modules then modules = { } end modules ['font-otd'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local type = type
+local match = string.match
+local sequenced = table.sequenced
+
+local trace_dynamics = false trackers.register("otf.dynamics", function(v) trace_dynamics = v end)
+local trace_applied = false trackers.register("otf.applied", function(v) trace_applied = v end)
+
+local report_otf = logs.reporter("fonts","otf loading")
+local report_process = logs.reporter("fonts","otf process")
+
+local allocate = utilities.storage.allocate
+
+local fonts = fonts
+local otf = fonts.handlers.otf
+local hashes = fonts.hashes
+local definers = fonts.definers
+local constructors = fonts.constructors
+local specifiers = fonts.specifiers
+
+local fontidentifiers = hashes.identifiers
+local fontresources = hashes.resources
+local fontproperties = hashes.properties
+local fontdynamics = hashes.dynamics
+
+local contextsetups = specifiers.contextsetups
+local contextnumbers = specifiers.contextnumbers
+local contextmerged = specifiers.contextmerged
+
+local setmetatableindex = table.setmetatableindex
+
+local a_to_script = { }
+local a_to_language = { }
+
+-- we can have a scripts hash in fonts.hashes
+
+function otf.setdynamics(font,attribute)
+ -- local features = contextsetups[contextnumbers[attribute]] -- can be moved to caller
+ local features = contextsetups[attribute]
+ if features then
+ local dynamics = fontdynamics[font]
+ dynamic = contextmerged[attribute] or 0
+ local script, language
+ if dynamic == 2 then -- merge
+ language = features.language or fontproperties[font].language or "dflt"
+ script = features.script or fontproperties[font].script or "dflt"
+ else -- if dynamic == 1 then -- replace
+ language = features.language or "dflt"
+ script = features.script or "dflt"
+ end
+ if script == "auto" then
+ -- checkedscript and resources are defined later so we cannot shortcut them -- todo: make installer
+ script = definers.checkedscript(fontidentifiers[font],fontresources[font],features)
+ end
+ local ds = dynamics[script] -- can be metatable magic (less testing)
+-- or dynamics.dflt
+ if not ds then
+ ds = { }
+ dynamics[script] = ds
+ end
+ local dsl = ds[language]
+-- or ds.dflt
+ if not dsl then
+ dsl = { }
+ ds[language] = dsl
+ end
+ local dsla = dsl[attribute]
+ if not dsla then
+ local tfmdata = fontidentifiers[font]
+ a_to_script [attribute] = script
+ a_to_language[attribute] = language
+ -- we need to save some values .. quite messy
+ local properties = tfmdata.properties
+ local shared = tfmdata.shared
+ local s_script = properties.script
+ local s_language = properties.language
+ local s_mode = properties.mode
+ local s_features = shared.features
+ properties.mode = "node"
+ properties.language = language
+ properties.script = script
+ properties.dynamics = true -- handy for tracing
+ shared.features = { }
+ -- end of save
+ local set = constructors.checkedfeatures("otf",features)
+ set.mode = "node" -- really needed
+ dsla = otf.setfeatures(tfmdata,set)
+ if trace_dynamics then
+ report_otf("setting dynamics %s: attribute %a, script %a, language %a, set %a",contextnumbers[attribute],attribute,script,language,set)
+ end
+ -- we need to restore some values
+ properties.script = s_script
+ properties.language = s_language
+ properties.mode = s_mode
+ shared.features = s_features
+ -- end of restore
+ dynamics[script][language][attribute] = dsla -- cache
+ elseif trace_dynamics then
+ -- report_otf("using dynamics %s: attribute %a, script %a, language %a",contextnumbers[attribute],attribute,script,language)
+ end
+ return dsla
+ end
+end
+
+function otf.scriptandlanguage(tfmdata,attr)
+ local properties = tfmdata.properties
+ if attr and attr > 0 then
+ return a_to_script[attr] or properties.script or "dflt", a_to_language[attr] or properties.language or "dflt"
+ else
+ return properties.script or "dflt", properties.language or "dflt"
+ end
+end
+
+-- we reimplement the dataset resolver
+
+local autofeatures = fonts.analyzers.features
+local featuretypes = otf.tables.featuretypes
+local defaultscript = otf.features.checkeddefaultscript
+local defaultlanguage = otf.features.checkeddefaultlanguage
+
+local resolved = { } -- we only resolve a font,script,language,attribute pair once
+local wildcard = "*"
+
+-- what about analyze in local and not in font
+
+-- needs checking: some added features can pass twice
+
+local P, C, Cc, lpegmatch = lpeg.P, lpeg.C, lpeg.Cc, lpeg.match
+
+local pattern = P("always") * (P(-1) * Cc(true) + P(":") * C((1-P(-1))^1))
+
+local function initialize(sequence,script,language,s_enabled,a_enabled,font,attr,dynamic,ra,autoscript,autolanguage)
+ local features = sequence.features
+ if features then
+ local order = sequence.order
+ if order then
+ local featuretype = featuretypes[sequence.type or "unknown"]
+ local lookupdone = false
+ for i=1,#order do --
+ local kind = order[i] --
+ local e_e
+ local a_e = a_enabled and a_enabled[kind] -- the value (location)
+ if a_e ~= nil then
+ e_e = a_e
+ else
+ e_e = s_enabled and s_enabled[kind] -- the value (font)
+ end
+ if e_e then
+ local usedattribute, usedscript, usedlanguage, usedlookup
+ local valid = type(e_e) == "string" and lpegmatch(pattern,e_e)
+ if valid then
+ -- we have hit always
+ usedattribute = autofeatures[kind] or false
+ usedlanguage = "*"
+ usedscript = "*"
+ usedlookup = { valid, usedattribute, sequence, kind }
+ else
+ -- we already checked for e_e
+ local scripts = features[kind] --
+ local languages = scripts[script] or scripts[wildcard]
+ if not languages and autoscript then
+ langages = defaultscript(featuretype,autoscript,scripts)
+ end
+ if languages then
+ -- we need detailed control over default because we want to trace
+ -- only first attribute match check, so we assume simple fina's
+ -- local valid = false
+ if languages[language] then
+ valid = e_e
+ elseif languages[wildcard] then
+ valid = e_e
+ elseif autolanguage and defaultlanguage(featuretype,autolanguage,languages) then
+ valid = e_e
+ end
+ end
+ if valid then
+ usedattribute = autofeatures[kind] or false
+ usedlanguage = script
+ usedscript = language
+ usedlookup = { valid, usedattribute, sequence, kind }
+ end
+ end
+ if not usedlookup then
+ -- go on
+ elseif lookupdone then
+ if trace_applied then
+ report_process(
+ "font %s, dynamic %a (%a), feature %a, script %a, language %a, lookup %a, value %a, nofsteps %a, lookup already set by %a",
+ font,attr or 0,dynamic,kind,usedscript,usedlanguage,sequence.name,valid,sequence.nofsteps,ra[#ra][4])
+ end
+ else
+ ra[#ra+1] = usedlookup
+ if trace_applied then
+ report_process(
+ "font %s, dynamic %a (%a), feature %a, script %a, language %a, lookup %a, value %a, nofsteps %a",
+ font,attr or 0,dynamic,kind,usedscript,usedlanguage,sequence.name,valid,sequence.nofsteps)
+ else
+ return -- no need to look further
+ end
+ lookupdone = true
+ end
+ end
+ end
+ end
+ end
+end
+
+-- there is some fuzzy language/script state stuff in properties (temporary)
+
+function otf.dataset(tfmdata,font,attr) -- attr only when explicit (as in special parbuilder)
+
+ local script, language, s_enabled, a_enabled, dynamic
+
+ if attr and attr ~= 0 then
+ dynamic = contextmerged[attr] or 0
+ -- local features = contextsetups[contextnumbers[attr]] -- could be a direct list
+ local features = contextsetups[attr]
+ a_enabled = features -- location based
+ if dynamic == 1 then -- or dynamic == -1 then
+ -- replace
+ language = features.language or "dflt"
+ script = features.script or "dflt"
+ elseif dynamic == 2 then -- or dynamic == -2 then
+ -- merge
+ local properties = tfmdata.properties
+ s_enabled = tfmdata.shared.features -- font based
+ language = features.language or properties.language or "dflt"
+ script = features.script or properties.script or "dflt"
+ else
+ -- error
+ local properties = tfmdata.properties
+ language = properties.language or "dflt"
+ script = properties.script or "dflt"
+ end
+ else
+ local properties = tfmdata.properties
+ language = properties.language or "dflt"
+ script = properties.script or "dflt"
+ s_enabled = tfmdata.shared.features -- can be made local to the resolver
+ dynamic = 0
+ end
+
+ local res = resolved[font]
+ if not res then
+ res = { }
+ resolved[font] = res
+ end
+ local rs = res[script]
+ if not rs then
+ rs = { }
+ res[script] = rs
+ end
+ local rl = rs[language]
+ if not rl then
+ rl = { }
+ rs[language] = rl
+ end
+ local ra = rl[attr]
+ if ra == nil then -- attr can be false
+ ra = {
+ -- indexed but we can also add specific data by key in:
+ }
+ rl[attr] = ra
+ local sequences = tfmdata.shared.reorderedsequences or tfmdata.resources.sequences
+ if sequences then
+ local autoscript = (s_enabled and s_enabled.autoscript ) or (a_enabled and a_enabled.autoscript )
+ local autolanguage = (s_enabled and s_enabled.autolanguage) or (a_enabled and a_enabled.autolanguage)
+ for s=1,#sequences do
+ -- just return nil or ra step
+ initialize(sequences[s],script,language,s_enabled,a_enabled,font,attr,dynamic,ra,autoscript,autolanguage)
+ end
+ end
+ end
+ return ra
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-otj.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-otj.lmt
index e9e9d524e4f..5ef3fd5c3a5 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-otj.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-otj.lmt
@@ -85,8 +85,8 @@ local tonut = nuts.tonut
local getnext = nuts.getnext
local getprev = nuts.getprev
local getid = nuts.getid
-local getfont = nuts.getfont
local getchar = nuts.getchar
+local getcharspec = nuts.getcharspec
local setchar = nuts.setchar
----- getxoffset = nuts.getxoffset
----- getyoffset = nuts.getyoffset
@@ -99,6 +99,8 @@ local yscaled = nuts.yscaled
local getboth = nuts.getboth
local getdisc = nuts.getdisc
local setdisc = nuts.setdisc
+local getreplace = nuts.getreplace
+local setreplace = nuts.setreplace
local setoffsets = nuts.setoffsets
local addxoffset = nuts.addxoffset
local addyoffset = nuts.addyoffset
@@ -111,21 +113,27 @@ local setwidth = nuts.setwidth
local getwidth = nuts.getwidth
local addxymargins = nuts.addxymargins -- we delegate scaling
local copynode = nuts.copy
+local setattrlist = nuts.setattrlist
local nextchar = nuts.traversers.char
local nextglue = nuts.traversers.glue
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local properties = nodes.properties.data
local fontkern = nuts.pool and nuts.pool.fontkern
local italickern = nuts.pool and nuts.pool.italickern
+local function somekern(makekern,amount,current)
+ local kern = makekern(amount)
+ setattrlist(kern,current)
+ return kern
+end
+
local useitalickerns = false
local useadvance = false
-local usezwjkerns = true -- when useadvance
directives.register("fonts.injections.useitalics", function(v)
if v then
@@ -510,8 +518,8 @@ local function dir(n)
end
local function showchar(n,nested)
- local char = getchar(n)
- report_injections("%wfont %s, char %U, glyph %c",nested and 2 or 0,getfont(n),char,char)
+ local char, font = getcharspec(n)
+ report_injections("%wfont %s, char %U, glyph %c",nested and 2 or 0,font,char,char)
end
local function show(n,what,nested,symbol)
@@ -659,12 +667,12 @@ end
-- addmargins(current,-leftkern)
-- elseif prev and getid(prev) == glue_code then
-- if useitalickerns then
--- head = insert_node_before(head,current,italickern(leftkern))
+-- head = insertnodebefore(head,current,italickern(leftkern))
-- else
-- setwidth(prev, getwidth(prev) + leftkern)
-- end
-- else
--- head = insert_node_before(head,current,fontkern(leftkern))
+-- head = insertnodebefore(head,current,fontkern(leftkern))
-- end
-- end
-- end
@@ -742,7 +750,7 @@ end
-- if useadvance then
-- addmargins(n,-leftkern)
-- else
--- pre = insert_node_before(pre,n,fontkern(leftkern))
+-- pre = insertnodebefore(pre,n,fontkern(leftkern))
-- done = true
-- end
-- end
@@ -763,7 +771,7 @@ end
-- if useadvance then
-- addmargins(n,-leftkern)
-- else
--- post = insert_node_before(post,n,fontkern(leftkern))
+-- post = insertnodebefore(post,n,fontkern(leftkern))
-- done = true
-- end
-- end
@@ -784,7 +792,7 @@ end
-- if useadvance then
-- addmargins(n,-leftkern)
-- else
--- replace = insert_node_before(replace,n,fontkern(leftkern))
+-- replace = insertnodebefore(replace,n,fontkern(leftkern))
-- done = true
-- end
-- end
@@ -842,12 +850,12 @@ local function inject_kerns_only_kerns(head,where)
leftkern = xscaled(current,leftkern)
if prev and getid(prev) == glue_code then
if useitalickerns then
- head = insert_node_before(head,current,italickern(leftkern))
+ head = insertnodebefore(head,current,italickern(leftkern))
else
setwidth(prev,getwidth(prev) + leftkern)
end
else
- head = insert_node_before(head,current,fontkern(leftkern))
+ head = insertnodebefore(head,current,somekern(fontkern,leftkern,current))
end
end
end
@@ -858,7 +866,7 @@ local function inject_kerns_only_kerns(head,where)
if i then
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- setlink(posttail,fontkern(xscaled(current,leftkern)))
+ setlink(posttail,somekern(fontkern,xscaled(current,leftkern),current))
done = true
end
end
@@ -868,7 +876,7 @@ local function inject_kerns_only_kerns(head,where)
if i then
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- setlink(replacetail,fontkern(xscaled(current,leftkern)))
+ setlink(replacetail,somekern(fontkern,xscaled(current,leftkern),current))
done = true
end
end
@@ -878,7 +886,7 @@ local function inject_kerns_only_kerns(head,where)
-- glyph|disc|glyph (special case)
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- replace = fontkern(xscaled(current,leftkern))
+ replace = somekern(fontkern,xscaled(current,leftkern),current)
done = true
end
end
@@ -906,7 +914,7 @@ local function inject_kerns_only_kerns(head,where)
if i then
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- pre = insert_node_before(pre,n,fontkern(xscaled(n,leftkern)))
+ pre = insertnodebefore(pre,n,somekern(fontkern,xscaled(n,leftkern),n))
done = true
end
end
@@ -922,7 +930,7 @@ local function inject_kerns_only_kerns(head,where)
if i then
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- post = insert_node_before(post,n,fontkern(xscaled(n,leftkern)))
+ post = insertnodebefore(post,n,somekern(fontkern,xscaled(n,leftkern),n))
done = true
end
end
@@ -938,7 +946,7 @@ local function inject_kerns_only_kerns(head,where)
if i then
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- replace = insert_node_before(replace,n,fontkern(xscaled(n,leftkern)))
+ replace = insertnodebefore(replace,n,somekern(fontkern,xscaled(n,leftkern),n))
done = true
end
end
@@ -1009,14 +1017,8 @@ local function inject_kerns_only_margins(head,where)
if i then
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- if usezwjkerns then
- replace = copynode(current)
- setchar(replace,0x200D) -- zwj
- addxymargins(replace,-leftkern)
- else
- replace = fontkern(xscaled(current,leftkern))
- end
- setdisc(prevdisc,pre,post,replace) -- setreplace
+ -- prev disc | current
+ addxymargins(current,-leftkern) -- NEEDS CHECKING
end
end
end
@@ -1141,23 +1143,23 @@ end
-- rightkern = 0
-- elseif prev and getid(prev) == glue_code then
-- if useitalickerns then
--- head = insert_node_before(head,current,italickern(leftkern))
+-- head = insertnodebefore(head,current,italickern(leftkern))
-- else
-- setwidth(prev,getwidth(prev)+leftkern)
-- end
-- else
--- head = insert_node_before(head,current,fontkern(leftkern))
+-- head = insertnodebefore(head,current,fontkern(leftkern))
-- end
-- end
-- if rightkern ~= 0 then
-- if next and getid(next) == glue_code then
-- if useitalickerns then
--- insert_node_after(head,current,italickern(rightkern))
+-- insertnodeafter(head,current,italickern(rightkern))
-- else
-- setwidth(next, getwidth(next)+rightkern)
-- end
-- else
--- insert_node_after(head,current,fontkern(rightkern))
+-- insertnodeafter(head,current,fontkern(rightkern))
-- end
-- end
-- end
@@ -1260,11 +1262,11 @@ end
-- end
-- else
-- if leftkern ~= 0 then
--- pre = insert_node_before(pre,n,fontkern(leftkern))
+-- pre = insertnodebefore(pre,n,fontkern(leftkern))
-- done = true
-- end
-- if rightkern ~= 0 then
--- insert_node_after(pre,n,fontkern(rightkern))
+-- insertnodeafter(pre,n,fontkern(rightkern))
-- done = true
-- end
-- end
@@ -1298,11 +1300,11 @@ end
-- end
-- else
-- if leftkern ~= 0 then
--- post = insert_node_before(post,n,fontkern(leftkern))
+-- post = insertnodebefore(post,n,fontkern(leftkern))
-- done = true
-- end
-- if rightkern ~= 0 then
--- insert_node_after(post,n,fontkern(rightkern))
+-- insertnodeafter(post,n,fontkern(rightkern))
-- done = true
-- end
-- end
@@ -1336,11 +1338,11 @@ end
-- end
-- else
-- if leftkern ~= 0 then
--- replace = insert_node_before(replace,n,fontkern(leftkern))
+-- replace = insertnodebefore(replace,n,fontkern(leftkern))
-- done = true
-- end
-- if rightkern ~= 0 then
--- insert_node_after(replace,n,fontkern(rightkern))
+-- insertnodeafter(replace,n,fontkern(rightkern))
-- done = true
-- end
-- end
@@ -1361,7 +1363,7 @@ end
-- if useadvance then
-- addmargins(pre,-rightkern)
-- else
--- pre = insert_node_before(pre,pre,fontkern(rightkern))
+-- pre = insertnodebefore(pre,pre,fontkern(rightkern))
-- done = true
-- end
-- end
@@ -1380,7 +1382,7 @@ end
-- if useadvance then
-- addmargins(replace,-rightkern)
-- else
--- replace = insert_node_before(replace,replace,fontkern(rightkern))
+-- replace = insertnodebefore(replace,replace,fontkern(rightkern))
-- done = true
-- end
-- end
@@ -1454,38 +1456,36 @@ local function inject_positions_only_kerns(head,where)
rightkern = 0
elseif prev and getid(prev) == glue_code then
if useitalickerns then
- head = insert_node_before(head,current,italickern(leftkern))
+ head = insertnodebefore(head,current,italickern(leftkern))
else
setwidth(prev,getwidth(prev)+leftkern)
end
else
- head = insert_node_before(head,current,fontkern(leftkern))
+ head = insertnodebefore(head,current,somekern(fontkern,leftkern,current))
end
end
if rightkern ~= 0 then
if next and getid(next) == glue_code then
if useitalickerns then
- insert_node_after(head,current,italickern(rightkern))
+ insertnodeafter(head,current,italickern(rightkern))
else
setwidth(next, getwidth(next)+rightkern)
end
else
- insert_node_after(head,current,fontkern(rightkern))
+ insertnodeafter(head,current,somekern(fontkern,rightkern,current))
end
end
- else
+ elseif next then
local i = p.emptyinjections
if i then
-- glyph|disc|glyph (special case)
local rightkern = i.rightkern
- if rightkern and rightkern ~= 0 then
- if next and getid(next) == disc_code then
- if replace then
- -- error, we expect an empty one
- else
- replace = fontkern(xscaled(current,rightkern)) -- maybe also leftkern
- done = true --KE
- end
+ if rightkern and rightkern ~= 0 and getid(next) == disc_code then
+ local replace = getreplace(next)
+ if replace then
+ -- can't happen
+ else
+ setreplace(next,somekern(fontkern,xscaled(current,rightkern),current))
end
end
end
@@ -1497,7 +1497,7 @@ local function inject_positions_only_kerns(head,where)
if i then
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- setlink(posttail,fontkern(xscaled(current,leftkern)))
+ setlink(posttail,somekern(fontkern,xscaled(current,leftkern),current))
done = true
end
end
@@ -1507,7 +1507,7 @@ local function inject_positions_only_kerns(head,where)
if i then
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- setlink(replacetail,fontkern(xscaled(current,leftkern)))
+ setlink(replacetail,somekern(fontkern,xscaled(current,leftkern),current))
done = true
end
end
@@ -1517,7 +1517,7 @@ local function inject_positions_only_kerns(head,where)
-- new .. okay?
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- replace = fontkern(xscaled(current,leftkern))
+ replace = somekern(fontkern,xscaled(current,leftkern),current)
done = true
end
end
@@ -1549,11 +1549,11 @@ local function inject_positions_only_kerns(head,where)
addyoffset(n,yscaled(n,yoffset))
end
if leftkern and leftkern ~= 0 then
- pre = insert_node_before(pre,n,fontkern(xscaled(n,leftkern)))
+ pre = insertnodebefore(pre,n,somekern(fontkern,xscaled(n,leftkern),n))
done = true
end
if rightkern and rightkern ~= 0 then
- insert_node_after(pre,n,fontkern(xscaled(n,rightkern)))
+ insertnodeafter(pre,n,somekern(fontkern,xscaled(n,rightkern),n))
done = true
end
end
@@ -1574,11 +1574,11 @@ local function inject_positions_only_kerns(head,where)
addyoffset(n,yscaled(n,yoffset))
end
if leftkern and leftkern ~= 0 then
- post = insert_node_before(post,n,fontkern(xscaled(n,leftkern)))
+ post = insertnodebefore(post,n,somekern(fontkern,xscaled(n,leftkern),n))
done = true
end
if rightkern and rightkern ~= 0 then
- insert_node_after(post,n,fontkern(xscaled(n,rightkern)))
+ insertnodeafter(post,n,somekern(fontkern,xscaled(n,rightkern),n))
done = true
end
end
@@ -1599,11 +1599,11 @@ local function inject_positions_only_kerns(head,where)
addyoffset(n,yscaled(n,yoffset))
end
if leftkern and leftkern ~= 0 then
- replace = insert_node_before(replace,n,fontkern(xscaled(n,leftkern)))
+ replace = insertnodebefore(replace,n,somekern(fontkern,xscaled(n,leftkern),n))
done = true
end
if rightkern and rightkern ~= 0 then
- insert_node_after(replace,n,fontkern(xscaled(n,rightkern)))
+ insertnodeafter(replace,n,somekern(fontkern,xscaled(n,rightkern),n))
done = true
end
end
@@ -1620,7 +1620,7 @@ local function inject_positions_only_kerns(head,where)
-- glyph|pre glyphs
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
- pre = insert_node_before(pre,pre,fontkern(xscaled(prevglyph,rightkern)))
+ pre = insertnodebefore(pre,pre,somekern(fontkern,xscaled(prevglyph,rightkern),prevglyph))
done = true
end
end
@@ -1634,7 +1634,7 @@ local function inject_positions_only_kerns(head,where)
-- glyph|replace glyphs
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
- replace = insert_node_before(replace,replace,fontkern(xscaled(prevglyph,rightkern)))
+ replace = insertnodebefore(replace,replace,somekern(fontkern,xscaled(prevglyph,rightkern),prevglyph))
done = true
end
end
@@ -1694,25 +1694,17 @@ local function inject_positions_only_margins(head,where)
if leftkern ~= 0 or rightkern ~= 0 or yoffset ~= 0 then
addxymargins(n,-leftkern,-rightkern,yoffset) -- also scales
end
- else
+ elseif next then
local i = p.emptyinjections
if i then
-- glyph|disc|glyph (special case)
local rightkern = i.rightkern
- if rightkern and rightkern ~= 0 then
- if next and getid(next) == disc_code then
- if replace then
- -- error, we expect an empty one
- else
- if usezwjkerns then
- replace = copynode(current)
- setchar(replace,0x200D) -- zwj
- addxymargins(replace,false,-rightkern)
- else
- replace = fontkern(xscaled(current,rightkern)) -- maybe also leftkern
- end
- done = true --KE
- end
+ if rightkern and rightkern ~= 0 and getid(next) == disc_code then
+ local replace = getreplace(next)
+ if replace then
+ -- can't happen
+ else
+ setreplace(next,somekern(fontkern,xscaled(current,rightkern),current))
end
end
end
@@ -1741,14 +1733,8 @@ local function inject_positions_only_margins(head,where)
-- new .. okay?
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- if usezwjkerns then
- replace = copynode(current)
- setchar(replace,0x200D) -- zwj
- addxymargins(replace,-leftkern)
- else
- replace = fontkern(xscaled(current,leftkern))
- end
- setdisc(prevdisc,pre,post,replace)
+ -- prev disc | current
+ addxymargins(current,-leftkern) -- NEEDS CHECKING
end
end
end
@@ -1934,8 +1920,8 @@ local function processmark(p,n,pn) -- p = basenode
--
-- todo: head and check for prev / next kern
--
- insert_node_before(n,n,fontkern(-wn))
- insert_node_after(n,n,fontkern(-wn))
+ insertnodebefore(n,n,somekern(fontkern,-wn,n))
+ insertnodeafter(n,n,somekern(fontkern,-wn,n))
end
end
end
@@ -2057,40 +2043,38 @@ local function inject_everything(head,where)
rightkern = 0
elseif prev and getid(prev) == glue_code then
if useitalickerns then
- head = insert_node_before(head,current,italickern(leftkern))
+ head = insertnodebefore(head,current,italickern(leftkern))
else
setwidth(prev, getwidth(prev) + leftkern)
end
else
- head = insert_node_before(head,current,fontkern(leftkern))
+ head = insertnodebefore(head,current,somekern(fontkern,leftkern,current))
end
end
if rightkern and rightkern ~= 0 then
rightkern = xscaled(current,rightkern)
if next and getid(next) == glue_code then
if useitalickerns then
- insert_node_after(head,current,italickern(rightkern))
+ insertnodeafter(head,current,italickern(rightkern))
else
setwidth(next, getwidth(next) + rightkern)
end
else
- insert_node_after(head,current,fontkern(rightkern))
+ insertnodeafter(head,current,somekern(fontkern,rightkern,current))
end
end
end
- else
+ elseif next then
local i = p.emptyinjections
if i then
-- glyph|disc|glyph (special case)
local rightkern = i.rightkern
- if rightkern and rightkern ~= 0 then
- if next and getid(next) == disc_code then
- if replace then
- -- error, we expect an empty one
- else
- replace = fontkern(xscaled(current,rightkern))
- done = true
- end
+ if rightkern and rightkern ~= 0 and getid(next) == disc_code then
+ local replace = getreplace(next)
+ if replace then
+ -- can't happen
+ else
+ setreplace(next,somekern(fontkern,xscaled(current,rightkern),current))
end
end
end
@@ -2103,7 +2087,7 @@ local function inject_everything(head,where)
if i then
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- setlink(posttail,fontkern(xscaled(current,leftkern)))
+ setlink(posttail,somekern(fontkern,xscaled(current,leftkern),current))
done = true
end
end
@@ -2113,7 +2097,7 @@ local function inject_everything(head,where)
if i then
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- setlink(replacetail,fontkern(xscaled(current,leftkern)))
+ setlink(replacetail,somekern(fontkern,xscaled(current,leftkern),current))
done = true
end
end
@@ -2122,7 +2106,7 @@ local function inject_everything(head,where)
if i then
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- replace = fontkern(xscaled(current,leftkern))
+ replace = somekern(fontkern,xscaled(current,leftkern),current)
done = true
end
end
@@ -2168,12 +2152,12 @@ local function inject_everything(head,where)
end
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- pre = insert_node_before(pre,n,fontkern(xscaled(n,leftkern)))
+ pre = insertnodebefore(pre,n,somekern(fontkern,xscaled(n,leftkern),n))
done = true
end
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
- insert_node_after(pre,n,fontkern(xscaled(n,rightkern)))
+ insertnodeafter(pre,n,somekern(fontkern,xscaled(n,rightkern),n))
done = true
end
if hasmarks then
@@ -2199,13 +2183,13 @@ local function inject_everything(head,where)
end
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- post = insert_node_before(post,n,fontkern(xscaled(n,leftkern)))
+ post = insertnodebefore(post,n,somekern(fontkern,xscaled(n,leftkern),n))
done = true
end
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
done = true
- insert_node_after(post,n,fontkern(xscaled(n,rightkern)))
+ insertnodeafter(post,n,somekern(fontkern,xscaled(n,rightkern),n))
end
if hasmarks then
local pm = i.markbasenode
@@ -2230,12 +2214,12 @@ local function inject_everything(head,where)
end
local leftkern = i.leftkern
if leftkern and leftkern ~= 0 then
- replace = insert_node_before(replace,n,fontkern(xscaled(n,leftkern)))
+ replace = insertnodebefore(replace,n,somekern(fontkern,xscaled(n,leftkern),n))
done = true
end
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
- insert_node_after(replace,n,fontkern(xscaled(n,rightkern)))
+ insertnodeafter(replace,n,somekern(fontkern,xscaled(n,rightkern),n))
done = true
end
if hasmarks then
@@ -2257,7 +2241,7 @@ local function inject_everything(head,where)
-- glyph|pre glyphs
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
- pre = insert_node_before(pre,pre,fontkern(xscaled(prevglyph,rightkern)))
+ pre = insertnodebefore(pre,pre,somekern(fontkern,xscaled(prevglyph,rightkern),prevglyph))
done = true
end
end
@@ -2271,7 +2255,7 @@ local function inject_everything(head,where)
-- glyph|replace glyphs
local rightkern = i.rightkern
if rightkern and rightkern ~= 0 then
- replace = insert_node_before(replace,replace,fontkern(xscaled(prevglyph,rightkern)))
+ replace = insertnodebefore(replace,replace,somekern(fontkern,xscaled(prevglyph,rightkern),prevglyph))
done = true
end
end
@@ -2419,14 +2403,13 @@ local function injectspaces(head)
for n in nextglue, head do
local prev, next = getspaceboth(n)
- local prevchar = prev and ischar(prev)
- local nextchar = next and ischar(next)
+ local prevchar, prevfont = getcharspec(prev)
+ local nextchar, nextfont = getcharspec(next)
if nextchar then
- local font = getfont(next)
- local trig = triggers[font]
+ local trig = triggers[nextfont]
if trig then
- if lastfont ~= font then
- updatefont(font,trig)
+ if lastfont ~= nextfont then
+ updatefont(nextfont,trig)
end
if rightkerns then
rightkern = rightkerns[nextchar]
@@ -2435,11 +2418,10 @@ local function injectspaces(head)
end
end
if prevchar then
- local font = getfont(prev)
- local trig = triggers[font]
+ local trig = triggers[prevfont]
if trig then
- if lastfont ~= font then
- updatefont(font,trig)
+ if lastfont ~= prevfont then
+ updatefont(prevfont,trig)
end
if leftkerns then
leftkern = leftkerns[prevchar]
@@ -2459,8 +2441,8 @@ local function injectspaces(head)
end
lnew = lnew * xscale
rnew = rnew * xscale
- head = insert_node_before(head,n,italickern(lnew))
- insert_node_after(head,n,italickern(rnew))
+ head = insertnodebefore(head,n,italickern(lnew))
+ insertnodeafter(head,n,italickern(rnew))
else
local new = old + (leftkern + rightkern) * factor
if trace_spaces then
@@ -2476,7 +2458,7 @@ local function injectspaces(head)
report_spaces("%C [%p + %p]",prevchar,old,new)
end
new = new * xscale
- insert_node_after(head,n,italickern(new)) -- tricky with traverse but ok
+ insertnodeafter(head,n,italickern(new)) -- tricky with traverse but ok
else
local new = old + leftkern * factor * xscale
if trace_spaces then
@@ -2495,7 +2477,7 @@ local function injectspaces(head)
if trace_spaces then
report_spaces("[%p + %p] %C",old,new,nextchar)
end
- insert_node_after(head,n,italickern(new))
+ insertnodeafter(head,n,italickern(new))
else
new = old + new
if trace_spaces then
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-otl.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-otl.lmt
new file mode 100644
index 00000000000..065a2c2eee3
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-otl.lmt
@@ -0,0 +1,912 @@
+if not modules then modules = { } end modules ['font-otl'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+}
+
+-- After some experimenting with an alternative loader (one that is needed for
+-- getting outlines in mp) I decided not to be compatible with the old (built-in)
+-- one. The approach used in font-otn is as follows: we load the font in a compact
+-- format but still very compatible with the ff data structures. From there we
+-- create hashes to access the data efficiently. The implementation of feature
+-- processing is mostly based on looking at the data as organized in the glyphs and
+-- lookups as well as the specification. Keeping the lookup data in the glyphs is
+-- very instructive and handy for tracing. On the other hand hashing is what brings
+-- speed. So, the in the new approach (the old one will stay around too) we no
+-- longer keep data in the glyphs which saves us a (what in retrospect looks a bit
+-- like) a reconstruction step. It also means that the data format of the cached
+-- files changes. What method is used depends on that format. There is no fundamental
+-- change in processing, and not even in data organation. Most has to do with
+-- loading and storage.
+
+-- todo: less tounicodes
+
+local lower = string.lower
+local type, next, tonumber, tostring, unpack = type, next, tonumber, tostring, unpack
+local abs = math.abs
+local derivetable, sortedhash = table.derive, table.sortedhash
+local formatters = string.formatters
+
+local setmetatableindex = table.setmetatableindex
+local allocate = utilities.storage.allocate
+local registertracker = trackers.register
+local registerdirective = directives.register
+local starttiming = statistics.starttiming
+local stoptiming = statistics.stoptiming
+local elapsedtime = statistics.elapsedtime
+local findbinfile = resolvers.findbinfile
+
+----- trace_private = false registertracker("otf.private", function(v) trace_private = v end)
+----- trace_subfonts = false registertracker("otf.subfonts", function(v) trace_subfonts = v end)
+local trace_loading = false registertracker("otf.loading", function(v) trace_loading = v end)
+local trace_features = false registertracker("otf.features", function(v) trace_features = v end)
+----- trace_dynamics = false registertracker("otf.dynamics", function(v) trace_dynamics = v end)
+----- trace_sequences = false registertracker("otf.sequences", function(v) trace_sequences = v end)
+----- trace_markwidth = false registertracker("otf.markwidth", function(v) trace_markwidth = v end)
+local trace_defining = false registertracker("fonts.defining", function(v) trace_defining = v end)
+
+local report_otf = logs.reporter("fonts","otf loading")
+
+local fonts = fonts
+local otf = fonts.handlers.otf
+
+otf.version = 3.133 -- beware: also sync font-mis.lua and in mtx-fonts
+otf.cache = containers.define("fonts", "otl", otf.version, true)
+otf.svgcache = containers.define("fonts", "svg", otf.version, true)
+otf.pngcache = containers.define("fonts", "png", otf.version, true)
+otf.pdfcache = containers.define("fonts", "pdf", otf.version, true)
+otf.mpscache = containers.define("fonts", "mps", otf.version, true)
+
+otf.svgenabled = false
+otf.pngenabled = false
+
+local otfreaders = otf.readers
+
+local hashes = fonts.hashes
+local definers = fonts.definers
+local readers = fonts.readers
+local constructors = fonts.constructors
+
+local otffeatures = constructors.features.otf
+local registerotffeature = otffeatures.register
+
+local otfenhancers = constructors.enhancers.otf
+local registerotfenhancer = otfenhancers.register
+
+local forceload = false
+local cleanup = 0 -- mk: 0=885M 1=765M 2=735M (regular run 730M)
+local syncspace = true
+local forcenotdef = false
+
+local privateoffset = fonts.constructors and fonts.constructors.privateoffset or 0xF0000 -- 0x10FFFF
+
+local applyruntimefixes = fonts.treatments and fonts.treatments.applyfixes
+
+local wildcard = "*"
+local default = "dflt"
+
+local formats = fonts.formats
+
+formats.otf = "opentype"
+formats.ttf = "truetype"
+formats.ttc = "truetype"
+
+registerdirective("fonts.otf.loader.cleanup", function(v) cleanup = tonumber(v) or (v and 1) or 0 end)
+registerdirective("fonts.otf.loader.force", function(v) forceload = v end)
+registerdirective("fonts.otf.loader.syncspace", function(v) syncspace = v end)
+registerdirective("fonts.otf.loader.forcenotdef", function(v) forcenotdef = v end)
+
+-- otfenhancers.patch("before","migrate metadata","cambria",function() end)
+
+registerotfenhancer("check extra features", function() end) -- placeholder
+
+-- Kai has memory problems on osx so here is an experiment (I only tested on windows as
+-- my test mac is old and gets no updates and is therefore rather useless.):
+
+local checkmemory = utilities.lua and utilities.lua.checkmemory
+local threshold = 100 -- MB
+local tracememory = false
+
+registertracker("fonts.otf.loader.memory",function(v) tracememory = v end)
+
+if not checkmemory then -- we need a generic plug (this code might move):
+
+ local collectgarbage = collectgarbage
+
+ checkmemory = function(previous,threshold) -- threshold in MB
+ local current = collectgarbage("count")
+ if previous then
+ local checked = (threshold or 64)*1024
+ if current - previous > checked then
+ collectgarbage("collect")
+ current = collectgarbage("count")
+ end
+ end
+ return current
+ end
+
+end
+
+function otf.load(filename,sub,instance)
+ local base = file.basename(file.removesuffix(filename))
+ local name = file.removesuffix(base) -- already no suffix
+ local attr = lfs.attributes(filename)
+ local size = attr and attr.size or 0
+ local time = attr and attr.modification or 0
+ -- sub can be number of string
+ if sub == "" then
+ sub = false
+ end
+ local hash = name
+ if sub then
+ hash = hash .. "-" .. sub
+ end
+ if instance then
+ hash = hash .. "-" .. instance
+ end
+ hash = containers.cleanname(hash)
+ local data = containers.read(otf.cache,hash)
+ local reload = not data or data.size ~= size or data.time ~= time or data.tableversion ~= otfreaders.tableversion
+ if forceload then
+ report_otf("forced reload of %a due to hard coded flag",filename)
+ reload = true
+ end
+ if reload then
+ report_otf("loading %a, hash %a",filename,hash)
+ --
+ starttiming(otfreaders,true)
+ data = otfreaders.loadfont(filename,sub or 1,instance) -- we can pass the number instead (if it comes from a name search)
+ if data then
+ -- todo: make this a plugin
+ local used = checkmemory()
+ local resources = data.resources
+ local svgshapes = resources.svgshapes
+ local pngshapes = resources.pngshapes
+ if cleanup == 0 then
+ checkmemory(used,threshold,tracememory)
+ end
+ if svgshapes then
+ resources.svgshapes = nil
+ if otf.svgenabled then
+ local timestamp = os.date()
+ -- work in progress ... a bit boring to do
+ containers.write(otf.svgcache,hash, {
+ svgshapes = svgshapes,
+ timestamp = timestamp,
+ })
+ data.properties.svg = {
+ hash = hash,
+ timestamp = timestamp,
+ }
+ end
+ if cleanup > 1 then
+ collectgarbage("collect")
+ else
+ checkmemory(used,threshold,tracememory)
+ end
+ end
+ if pngshapes then
+ resources.pngshapes = nil
+ if otf.pngenabled then
+ local timestamp = os.date()
+ -- work in progress ... a bit boring to do
+ containers.write(otf.pngcache,hash, {
+ pngshapes = pngshapes,
+ timestamp = timestamp,
+ })
+ data.properties.png = {
+ hash = hash,
+ timestamp = timestamp,
+ }
+ end
+ if cleanup > 1 then
+ collectgarbage("collect")
+ else
+ checkmemory(used,threshold,tracememory)
+ end
+ end
+ --
+ otfreaders.compact(data)
+ if cleanup == 0 then
+ checkmemory(used,threshold,tracememory)
+ end
+ otfreaders.rehash(data,"unicodes")
+ otfreaders.addunicodetable(data)
+ otfreaders.extend(data)
+ if cleanup == 0 then
+ checkmemory(used,threshold,tracememory)
+ end
+ if context then
+ otfreaders.condense(data)
+ end
+ otfreaders.pack(data)
+ report_otf("loading done")
+ report_otf("saving %a in cache",filename)
+ data = containers.write(otf.cache, hash, data)
+ if cleanup > 1 then
+ collectgarbage("collect")
+ else
+ checkmemory(used,threshold,tracememory)
+ end
+ stoptiming(otfreaders)
+ if elapsedtime then
+ report_otf("loading, optimizing, packing and caching time %s", elapsedtime(otfreaders))
+ end
+ if cleanup > 3 then
+ collectgarbage("collect")
+ else
+ checkmemory(used,threshold,tracememory)
+ end
+ data = containers.read(otf.cache,hash) -- this frees the old table and load the sparse one
+ if cleanup > 2 then
+ collectgarbage("collect")
+ else
+ checkmemory(used,threshold,tracememory)
+ end
+ else
+ stoptiming(otfreaders)
+ data = nil
+ report_otf("loading failed due to read error")
+ end
+ end
+ if data then
+ if trace_defining then
+ report_otf("loading from cache using hash %a",hash)
+ end
+ --
+ otfreaders.unpack(data)
+ otfreaders.expand(data) -- inline tables
+ otfreaders.addunicodetable(data) -- only when not done yet
+ --
+ otfenhancers.apply(data,filename,data) -- in context one can also use treatments
+ --
+ -- constructors.addcoreunicodes(data.resources.unicodes) -- still needed ?
+ --
+ if applyruntimefixes then
+ applyruntimefixes(filename,data) -- e.g. see treatments.lfg
+ end
+ --
+ data.metadata.math = data.resources.mathconstants
+ --
+ -- delayed tables (experiment)
+ --
+ local classes = data.resources.classes
+ if not classes then
+ local descriptions = data.descriptions
+ classes = setmetatableindex(function(t,k)
+ local d = descriptions[k]
+ local v = (d and d.class or "base") or false
+ t[k] = v
+ return v
+ end)
+ data.resources.classes = classes
+ end
+ --
+ end
+
+ return data
+end
+
+-- modes: node, base, none
+
+function otf.setfeatures(tfmdata,features)
+ local okay = constructors.initializefeatures("otf",tfmdata,features,trace_features,report_otf)
+ if okay then
+ return constructors.collectprocessors("otf",tfmdata,features,trace_features,report_otf)
+ else
+ return { } -- will become false
+ end
+end
+
+-- the first version made a top/mid/not extensible table, now we just
+-- pass on the variants data and deal with it in the tfm scaler (there
+-- is no longer an extensible table anyway)
+--
+-- we cannot share descriptions as virtual fonts might extend them (ok,
+-- we could use a cache with a hash
+--
+-- we already assign an empty table to characters as we can add for
+-- instance protruding info and loop over characters; one is not supposed
+-- to change descriptions and if one does so one should make a copy!
+
+-- local function best_done_here(tfmdata,characters,descriptions)
+-- local validlookups, lookuplist = fonts.handlers.otf.collectlookups(
+-- { resources = tfmdata.resources },"flac","math","dflt"
+-- )
+-- if validlookups then
+-- -- it's quite likely just one step
+-- for i=1,#lookuplist do
+-- local lookup = lookuplist[i]
+-- local steps = lookup.steps
+-- local nofsteps = lookup.nofsteps
+-- for i=1,nofsteps do
+-- local coverage = steps[i].coverage
+-- if coverage then
+-- for k, v in next, coverage do
+-- local f = characters[v]
+-- if f then
+-- local d = descriptions[k]
+-- local c = characters[k]
+-- if c then
+-- c.flataccent = v
+-- end
+-- if d then
+-- d.flataccent = v
+-- end
+-- if not f.unicode then
+-- f.unicode = c.unicode
+-- end
+-- end
+-- end
+-- end
+-- end
+-- end
+-- end
+-- end
+
+local function copytotfm(data,cache_id)
+ if data then
+ local metadata = data.metadata
+ local properties = derivetable(data.properties)
+ local descriptions = derivetable(data.descriptions)
+ local goodies = derivetable(data.goodies)
+ local characters = { } -- newtable if we knwo how many
+ local parameters = { }
+ local mathparameters = { }
+ --
+ local resources = data.resources
+ local unicodes = resources.unicodes
+ local spaceunits = 500
+ local spacer = "space"
+ local designsize = metadata.designsize or 100
+ local minsize = metadata.minsize or designsize
+ local maxsize = metadata.maxsize or designsize
+ local mathspecs = metadata.math
+ --
+ if designsize == 0 then
+ designsize = 100
+ minsize = 100
+ maxsize = 100
+ end
+ if mathspecs then
+ for name, value in next, mathspecs do
+ mathparameters[name] = value
+ end
+ end
+ for unicode in next, data.descriptions do -- use parent table
+ characters[unicode] = { }
+ end
+ if mathspecs then
+ for unicode, character in next, characters do
+ local d = descriptions[unicode] -- we could use parent table here
+ local m = d.math
+ if m then
+ --
+ local italic = m.italic
+ if italic and italic ~= 0 then
+ character.italic = italic
+ end
+ --
+ local variants = m.variants
+ local parts = m.parts
+ local partsitalic = m.partsitalic
+ local partsorientation = m.partsorientation
+ if variants then
+ local c = character
+ for i=1,#variants do
+ local un = variants[i]
+ c.next = un
+ c = characters[un]
+ end -- c is now last in chain
+ c.parts = parts
+ c.partsorientation = partsorientation
+ if partsitalic and partsitalic ~= 0 then
+ c.partsitalic = partsitalic
+ end
+ elseif parts then
+ character.parts = parts
+ character.partsorientation = partsorientation
+ if partsitalic and partsitalic ~= 0 then
+ character.partsitalic = partsitalic
+ end
+ end
+ --
+ local topanchor = m.topanchor or m.accent -- for now
+ if topanchor then
+ character.topanchor = topanchor
+ end
+ --
+ local kerns = m.kerns
+ if kerns then
+ character.mathkerns = kerns
+ end
+ end
+ end
+-- best_done_here(data,characters,descriptions)
+ end
+ -- we need a runtime lookup because of running from cdrom or zip, brrr (shouldn't
+ -- we use the basename then?)
+ local filename = constructors.checkedfilename(resources)
+ local fontname = metadata.fontname
+ local fullname = metadata.fullname or fontname
+ local psname = fontname or fullname
+ local subfont = metadata.subfontindex
+ local units = metadata.units or 1000
+ --
+ if units == 0 then -- catch bugs in fonts
+ units = 1000 -- maybe 2000 when ttf
+ metadata.units = 1000
+ report_otf("changing %a units to %a",0,units)
+ end
+ --
+ local monospaced = metadata.monospaced
+ local charwidth = metadata.averagewidth -- or unset
+ local charxheight = metadata.xheight -- or unset
+ local italicangle = metadata.italicangle
+ local hasitalics = metadata.hasitalics
+ properties.monospaced = monospaced
+ properties.hasitalics = hasitalics
+ parameters.italicangle = italicangle
+ parameters.charwidth = charwidth
+ parameters.charxheight = charxheight
+ --
+ local space = 0x0020
+ local emdash = 0x2014
+ if monospaced then
+ if descriptions[space] then
+ spaceunits, spacer = descriptions[space].width, "space"
+ end
+ if not spaceunits and descriptions[emdash] then
+ spaceunits, spacer = descriptions[emdash].width, "emdash"
+ end
+ if not spaceunits and charwidth then
+ spaceunits, spacer = charwidth, "charwidth"
+ end
+ else
+ if descriptions[space] then
+ spaceunits, spacer = descriptions[space].width, "space"
+ end
+ if not spaceunits and descriptions[emdash] then
+ spaceunits, spacer = descriptions[emdash].width/2, "emdash/2"
+ end
+ if not spaceunits and charwidth then
+ spaceunits, spacer = charwidth, "charwidth"
+ end
+ end
+ spaceunits = tonumber(spaceunits) or units/2
+ --
+ parameters.slant = 0
+ parameters.space = spaceunits -- 3.333 (cmr10)
+ parameters.spacestretch = 1*units/2 -- 500 -- 1.666 (cmr10)
+ parameters.spaceshrink = 1*units/3 -- 333 -- 1.111 (cmr10)
+ parameters.xheight = 2*units/5 -- 400
+ parameters.quad = units -- 1000
+ if spaceunits < 2*units/5 then
+ -- todo: warning
+ end
+ if italicangle and italicangle ~= 0 then
+ parameters.italicangle = italicangle
+ parameters.italicfactor = math.cos(math.rad(90+italicangle))
+ parameters.slant = - math.tan(italicangle*math.pi/180)
+ end
+ if monospaced then
+ parameters.spacestretch = 0
+ parameters.spaceshrink = 0
+ elseif syncspace then --
+ parameters.spacestretch = spaceunits/2
+ parameters.spaceshrink = spaceunits/3
+ end
+ parameters.extraspace = parameters.spaceshrink -- 1.111 (cmr10)
+ if charxheight then
+ parameters.xheight = charxheight
+ else
+ local x = 0x0078
+ if x then
+ local x = descriptions[x]
+ if x then
+ parameters.xheight = x.height
+ end
+ end
+ end
+ --
+ parameters.designsize = (designsize/10)*65536
+ parameters.minsize = (minsize /10)*65536
+ parameters.maxsize = (maxsize /10)*65536
+ parameters.ascender = abs(metadata.ascender or 0)
+ parameters.descender = abs(metadata.descender or 0)
+ parameters.units = units
+ parameters.vheight = metadata.defaultvheight
+ --
+ properties.space = spacer
+ properties.format = data.format or formats.otf
+ properties.filename = filename
+ properties.fontname = fontname
+ properties.fullname = fullname
+ properties.psname = psname
+ properties.name = filename or fullname
+ properties.subfont = subfont
+ --
+if not CONTEXTLMTXMODE or CONTEXTLMTXMODE == 0 then
+ --
+ properties.encodingbytes = 2
+elseif CONTEXTLMTXMODE then
+ local duplicates = resources and resources.duplicates
+ if duplicates then
+ local maxindex = data.nofglyphs or metadata.nofglyphs
+ if maxindex then
+ for u, d in sortedhash(duplicates) do
+ local du = descriptions[u]
+ if du then
+ for uu in sortedhash(d) do
+ maxindex = maxindex + 1
+ descriptions[uu].dupindex = du.index
+ descriptions[uu].index = maxindex
+ end
+ else
+ -- report_otf("no %U in font %a, duplicates ignored",u,filename)
+ end
+ end
+ end
+ end
+ --
+end
+ --
+ -- properties.name = specification.name
+ -- properties.sub = specification.sub
+ --
+ properties.private = properties.private or data.private or privateoffset
+ --
+ return {
+ characters = characters,
+ descriptions = descriptions,
+ parameters = parameters,
+ mathparameters = mathparameters,
+ resources = resources,
+ properties = properties,
+ goodies = goodies,
+ }
+ end
+end
+
+-- These woff files are a kind of joke in a tex environment because one can simply convert
+-- them to ttf/otf and use them as such (after all, we cache them too). The successor format
+-- woff2 is more complex so there we can as well call an external converter which in the end
+-- makes this code kind of obsolete before it's even used. Although ... it might become a
+-- more general conversion plug in.
+
+local converters = {
+ woff = {
+ cachename = "webfonts",
+ action = otf.readers.woff2otf,
+ }
+}
+
+-- We can get differences between daylight saving etc ... but it makes no sense to
+-- mess with trickery .. so be it when you use a different binary.
+
+local function checkconversion(specification)
+ local filename = specification.filename
+ local converter = converters[lower(file.suffix(filename))]
+ if converter then
+ local base = file.basename(filename)
+ local name = file.removesuffix(base)
+ local attr = lfs.attributes(filename)
+ local size = attr and attr.size or 0
+ local time = attr and attr.modification or 0
+ if size > 0 then
+ local cleanname = containers.cleanname(name)
+ local cachename = caches.setfirstwritablefile(cleanname,converter.cachename)
+ if not io.exists(cachename) or (time ~= lfs.attributes(cachename).modification) then
+ report_otf("caching font %a in %a",filename,cachename)
+ converter.action(filename,cachename) -- todo infoonly
+ lfs.touch(cachename,time,time)
+ end
+ specification.filename = cachename
+ end
+ end
+end
+
+local function otftotfm(specification)
+ local cache_id = specification.hash
+ local tfmdata = containers.read(constructors.cache,cache_id)
+ if not tfmdata then
+
+ checkconversion(specification) -- for the moment here
+
+ local name = specification.name
+ local sub = specification.sub
+ local subindex = specification.subindex
+ local filename = specification.filename
+ local features = specification.features.normal
+ local instance = specification.instance or (features and features.axis)
+ local rawdata = otf.load(filename,sub,instance)
+ if rawdata and next(rawdata) then
+ local descriptions = rawdata.descriptions
+ rawdata.lookuphash = { } -- to be done
+ tfmdata = copytotfm(rawdata,cache_id)
+ if tfmdata and next(tfmdata) then
+ -- at this moment no characters are assigned yet, only empty slots
+ local features = constructors.checkedfeatures("otf",features)
+ local shared = tfmdata.shared
+ if not shared then
+ shared = { }
+ tfmdata.shared = shared
+ end
+ shared.rawdata = rawdata
+ -- shared.features = features -- default
+ shared.dynamics = { }
+ -- shared.processes = { }
+ tfmdata.changed = { }
+ shared.features = features
+ shared.processes = otf.setfeatures(tfmdata,features)
+ end
+ end
+ containers.write(constructors.cache,cache_id,tfmdata)
+ end
+ return tfmdata
+end
+
+local function read_from_otf(specification)
+ local tfmdata = otftotfm(specification)
+ if tfmdata then
+ -- this late ? .. needs checking
+ tfmdata.properties.name = specification.name
+ tfmdata.properties.sub = specification.sub
+ tfmdata.properties.id = specification.id
+ --
+ tfmdata = constructors.scale(tfmdata,specification)
+ local allfeatures = tfmdata.shared.features or specification.features.normal
+ constructors.applymanipulators("otf",tfmdata,allfeatures,trace_features,report_otf)
+ constructors.setname(tfmdata,specification) -- only otf?
+ fonts.loggers.register(tfmdata,file.suffix(specification.filename),specification)
+ end
+ return tfmdata
+end
+
+-- local function checkmathsize(tfmdata,mathsize)
+-- local mathdata = tfmdata.shared.rawdata.metadata.math
+-- local mathsize = tonumber(mathsize)
+-- if mathdata then -- we cannot use mathparameters as luatex will complain
+-- local parameters = tfmdata.parameters
+-- parameters.scriptpercentage = mathdata.ScriptPercentScaleDown
+-- parameters.scriptscriptpercentage = mathdata.ScriptScriptPercentScaleDown
+-- parameters.mathsize = mathsize -- only when a number !
+-- -- print(mathdata.ScriptPercentScaleDown,mathdata.ScriptScriptPercentScaleDown)
+-- end
+-- end
+--
+-- registerotffeature {
+-- name = "mathsize",
+-- description = "apply mathsize specified in the font",
+-- initializers = {
+-- base = checkmathsize,
+-- node = checkmathsize,
+-- }
+-- }
+
+-- readers
+
+function otf.collectlookups(rawdata,kind,script,language)
+ if not kind then
+ return
+ end
+ if not script then
+ script = default
+ end
+ if not language then
+ language = default
+ end
+ local lookupcache = rawdata.lookupcache
+ if not lookupcache then
+ lookupcache = { }
+ rawdata.lookupcache = lookupcache
+ end
+ local kindlookup = lookupcache[kind]
+ if not kindlookup then
+ kindlookup = { }
+ lookupcache[kind] = kindlookup
+ end
+ local scriptlookup = kindlookup[script]
+ if not scriptlookup then
+ scriptlookup = { }
+ kindlookup[script] = scriptlookup
+ end
+ local languagelookup = scriptlookup[language]
+ if not languagelookup then
+ local sequences = rawdata.resources.sequences
+ local featuremap = { }
+ local featurelist = { }
+ if sequences then
+ for s=1,#sequences do
+ local sequence = sequences[s]
+ local features = sequence.features
+ if features then
+ features = features[kind]
+ if features then
+ -- features = features[script] or features[default] or features[wildcard]
+ features = features[script] or features[wildcard]
+ if features then
+ -- features = features[language] or features[default] or features[wildcard]
+ features = features[language] or features[wildcard]
+ if features then
+ if not featuremap[sequence] then
+ featuremap[sequence] = true
+ featurelist[#featurelist+1] = sequence
+ end
+ end
+ end
+ end
+ end
+ end
+ if #featurelist == 0 then
+ featuremap, featurelist = false, false
+ end
+ else
+ featuremap, featurelist = false, false
+ end
+ languagelookup = { featuremap, featurelist }
+ scriptlookup[language] = languagelookup
+ end
+ return unpack(languagelookup)
+end
+
+-- moved from font-oth.lua, todo: also afm
+
+local function getgsub(tfmdata,k,kind,value,script,language)
+ local shared = tfmdata.shared
+ local rawdata = shared and shared.rawdata
+ if rawdata then
+ local sequences = rawdata.resources.sequences
+ if sequences then
+ local properties = tfmdata.properties
+ local validlookups, lookuplist = otf.collectlookups(rawdata,kind,script or properties.script,language or properties.language)
+ if validlookups then
+ -- local choice = tonumber(value) or 1 -- no random here (yet)
+ for i=1,#lookuplist do
+ local lookup = lookuplist[i]
+ local steps = lookup.steps
+ local nofsteps = lookup.nofsteps
+ for i=1,nofsteps do
+ local coverage = steps[i].coverage
+ if coverage then
+ local found = coverage[k]
+ if found then
+ return found, lookup.type
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+otf.getgsub = getgsub -- returns value, gsub_kind
+
+function otf.getsubstitution(tfmdata,k,kind,value,script,language)
+ local found, kind = getgsub(tfmdata,k,kind,value,script,language)
+ if not found then
+ --
+ elseif kind == "gsub_single" then
+ return found
+ elseif kind == "gsub_alternate" then
+ local choice = tonumber(value) or 1 -- no random here (yet)
+ return found[choice] or found[1] or k
+ end
+ return k
+end
+
+otf.getalternate = otf.getsubstitution
+
+function otf.getmultiple(tfmdata,k,kind,value,script,language)
+ local found, kind = getgsub(tfmdata,k,kind,value,script,language)
+ if found and kind == "gsub_multiple" then
+ return found
+ end
+ return { k }
+end
+
+function otf.getkern(tfmdata,left,right,kind,value,script,language)
+ local kerns = getgsub(tfmdata,left,kind or "kern",true,script,language) -- for now we use getsub
+ if kerns then
+ local found = kerns[right]
+ local kind = type(found)
+ if kind == "table" then
+ found = found[1][3] -- can be more clever
+ elseif kind ~= "number" then
+ found = false
+ end
+ if found then
+ return found * tfmdata.parameters.factor
+ end
+ end
+ return 0
+end
+
+local function check_otf(forced,specification,suffix)
+ local name = specification.name
+ if forced then
+ name = specification.forcedname -- messy
+ end
+ local fullname = findbinfile(name,suffix) or ""
+ if fullname == "" then
+ fullname = fonts.names.getfilename(name,suffix) or ""
+ end
+ if fullname ~= "" and not fonts.names.ignoredfile(fullname) then
+ specification.filename = fullname
+ return read_from_otf(specification)
+ end
+end
+
+local function opentypereader(specification,suffix)
+ local forced = specification.forced or ""
+ if formats[forced] then
+ return check_otf(true,specification,forced)
+ else
+ return check_otf(false,specification,suffix)
+ end
+end
+
+readers.opentype = opentypereader -- kind of useless and obsolete
+
+function readers.otf(specification) return opentypereader(specification,"otf") end
+function readers.ttf(specification) return opentypereader(specification,"ttf") end
+function readers.ttc(specification) return opentypereader(specification,"ttf") end
+
+function readers.woff(specification)
+ checkconversion(specification)
+ opentypereader(specification,"")
+end
+
+-- this will be overloaded
+
+function otf.scriptandlanguage(tfmdata,attr)
+ local properties = tfmdata.properties
+ return properties.script or "dflt", properties.language or "dflt"
+end
+
+-- a little bit of abstraction
+
+local function justset(coverage,unicode,replacement)
+ coverage[unicode] = replacement
+end
+
+otf.coverup = {
+ stepkey = "steps",
+ actions = {
+ chainsubstitution = justset,
+ chainposition = justset,
+ substitution = justset,
+ alternate = justset,
+ multiple = justset,
+ kern = justset,
+ pair = justset,
+ single = justset,
+ ligature = function(coverage,unicode,ligature)
+ local first = ligature[1]
+ local tree = coverage[first]
+ if not tree then
+ tree = { }
+ coverage[first] = tree
+ end
+ for i=2,#ligature do
+ local l = ligature[i]
+ local t = tree[l]
+ if not t then
+ t = { }
+ tree[l] = t
+ end
+ tree = t
+ end
+ tree.ligature = unicode
+ end,
+ },
+ register = function(coverage,featuretype,format)
+ return {
+ format = format,
+ coverage = coverage,
+ }
+ end
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-ots.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-ots.lmt
index 37f76b258a7..e7fcfc57675 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-ots.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-ots.lmt
@@ -8,6 +8,11 @@ if not modules then modules = { } end modules ['font-ots'] = { -- sequences
}
--[[ldx--
+<p>I need to check the description at the microsoft site ... it has been improved
+so maybe there are some interesting details there. Most below is based on old and
+incomplete documentation and involved quite a bit of guesswork (checking with the
+abstract uniscribe of those days. But changing things is tricky!</p>
+
<p>This module is a bit more split up that I'd like but since we also want to test
with plain <l n='tex'/> it has to be so. This module is part of <l n='context'/>
and discussion about improvements and functionality mostly happens on the
@@ -162,13 +167,10 @@ local trace_testruns = false registertracker("otf.testruns", function
local forcediscretionaries = false
local forcepairadvance = false -- for testing
-directives.register("otf.forcediscretionaries",function(v)
- forcediscretionaries = v
-end)
+local repeatlastmultiple = context and true
-directives.register("otf.forcepairadvance",function(v)
- forcepairadvance = v
-end)
+directives.register("otf.forcediscretionaries", function(v) forcediscretionaries = v end)
+directives.register("otf.forcepairadvance", function(v) forcepairadvance = v end)
local report_direct = logs.reporter("fonts","otf direct")
local report_subchain = logs.reporter("fonts","otf subchain")
@@ -193,7 +195,6 @@ local getboth = nuts.getboth
local setboth = nuts.setboth
local getid = nuts.getid
local getstate = nuts.getstate
-local setsubtype = nuts.setsubtype
local getchar = nuts.getchar
local setchar = nuts.setchar
local getdisc = nuts.getdisc
@@ -210,41 +211,39 @@ local getscales = nuts.getscales
---------------------------------------------------------------------------------------
-- Beware: In ConTeXt components no longer are real components. We only keep track of
--- their positions because some complex ligatures might need that. For the moment we
--- use an x_ prefix because for now generic follows the other approach.
+-- their positions because some complex ligatures might need that.
-local copy_no_components = nuts.copy_no_components
-local copy_only_glyphs = nuts.copy_only_glyphs
-local count_components = nuts.count_components
-local set_components = nuts.set_components
-local get_components = nuts.get_components
-local flush_components = nuts.flush_components
+local components = nuts.components
+local copynocomponents = components.copynocomponents
+local copyonlyglyphs = components.copyonlyglyphs
+local countcomponents = components.count
+local setcomponents = components.set
+local getcomponents = components.get
+local flushcomponents = components.flush
---------------------------------------------------------------------------------------
local ischar = nuts.ischar
local isnextchar = nuts.isnextchar -- only makes sense when we know we need next
local isprevchar = nuts.isprevchar -- only makes sense when we know we need prev
-local usesfont = nuts.uses_font
-
-local insert_node_after = nuts.insert_after
-local copy_node = nuts.copy
-local copy_node_list = nuts.copy_list
-local remove_node = nuts.remove
-local find_node_tail = nuts.tail
-local flush_node_list = nuts.flush_list
-local flush_node = nuts.flush_node
-local end_of_math = nuts.end_of_math
-local start_of_par = nuts.start_of_par
+local usesfont = nuts.usesfont
+
+local insertnodeafter = nuts.insertafter
+local copynode = nuts.copy
+local copynodelist = nuts.copylist
+local removenode = nuts.remove
+local findnodetail = nuts.tail
+local flushnodelist = nuts.flushlist
+local flushnode = nuts.flushnode
+local endofmath = nuts.endofmath
+
+local startofpar = nuts.startofpar
local setmetatable = setmetatable
local setmetatableindex = table.setmetatableindex
local nextnode = nuts.traversers.node
------ zwnj = 0x200C
------ zwj = 0x200D
-
local nodecodes = nodes.nodecodes
local glyphcodes = nodes.glyphcodes
@@ -259,7 +258,6 @@ local lefttoright_code = nodes.dirvalues.lefttoright
local righttoleft_code = nodes.dirvalues.righttoleft
local discretionarydisc_code = nodes.disccodes.discretionary
-local ligatureglyph_code = glyphcodes.ligature
local injections = nodes.injections
local setmark = injections.setmark
@@ -294,9 +292,9 @@ local marks = false
local classes = false
local currentfont = false
local currentdynamic = false
-local currentscale = false
-local currentxscale = false
-local currentyscale = false
+local currentscale = 1000
+local currentxscale = 1000
+local currentyscale = 1000
local factor = 0
local threshold = 0
local checkmarks = false
@@ -320,12 +318,21 @@ local checkstep = (tracers and tracers.steppers.check) or function()
local registerstep = (tracers and tracers.steppers.register) or function() end
local registermessage = (tracers and tracers.steppers.message) or function() end
--- local function checkdisccontent(d)
--- local pre, post, replace = getdisc(d)
--- if pre then for n in traverse_id(glue_code,pre) do report("pre: %s",nodes.idstostring(pre)) break end end
--- if post then for n in traverse_id(glue_code,post) do report("pos: %s",nodes.idstostring(post)) break end end
--- if replace then for n in traverse_id(glue_code,replace) do report("rep: %s",nodes.idstostring(replace)) break end end
--- end
+do
+
+ local setchr = setchar
+ local direct = nil
+
+ setchar = function(n,c)
+ direct = fonts.collections.direct
+ setchar = function(n,c)
+ setchr(n,c)
+ direct(n)
+ end
+ setchar(n,c)
+ end
+
+end
local function logprocess(...)
if trace_steps then
@@ -383,7 +390,7 @@ local function cref(dataset,sequence,index)
return "no valid dataset"
end
local merged = sequence.merged and "merged " or ""
- if index then
+ if index and index > 1 then
return formatters["feature %a, type %a, %schain lookup %a, index %a"](
dataset[4],sequence.type,merged,sequence.name,index)
else
@@ -421,17 +428,17 @@ end
-- However, for arabic we need to keep them around for the sake of mark placement
-- and indices.
-local function flattendisk(head,disc)
+local function flattendisk(head,disc) -- happen seldom, otherwise can be a helper
local pre, post, replace, pretail, posttail, replacetail = getdisc(disc,true)
local prev, next = getboth(disc)
local ishead = head == disc
setdisc(disc)
- flush_node(disc)
+ flushnode(disc)
if pre then
- flush_node_list(pre)
+ flushnodelist(pre)
end
if post then
- flush_node_list(post)
+ flushnodelist(post)
end
if ishead then
if replace then
@@ -458,10 +465,10 @@ local function flattendisk(head,disc)
end
end
-local function appenddisc(disc,list)
+local function appenddisc(disc,list) -- happen seldom, otherwise can be a helper
local pre, post, replace, pretail, posttail, replacetail = getdisc(disc,true)
local posthead = list
- local replacehead = copy_node_list(list)
+ local replacehead = copynodelist(list)
if post then
setlink(posttail,posthead)
else
@@ -483,16 +490,15 @@ local function markstoligature(head,start,stop,char)
local next = getnext(stop)
setprev(start)
setnext(stop)
- local base = copy_no_components(start,copyinjection)
+ local base = copynocomponents(start,copyinjection)
if head == start then
head = base
end
resetinjection(base)
setchar(base,char)
- setsubtype(base,ligatureglyph_code)
- set_components(base,start)
+ setcomponents(base,start)
setlink(prev,base,next)
- flush_components(start)
+ flushcomponents(start)
return head, base
end
end
@@ -507,12 +513,14 @@ end
-- we can have more granularity here but for now we only do a simple check
-local no_left_ligature_code = 1
-local no_right_ligature_code = 2
-local no_left_kern_code = 4
-local no_right_kern_code = 8
+local glyphoptioncodes = tex.glyphoptioncodes
+
+local no_left_ligature_code = glyphoptioncodes.noleftligature
+local no_right_ligature_code = glyphoptioncodes.norightligature
+----- no_left_kern_code = glyphoptioncodes.noleftkern
+local no_right_kern_code = glyphoptioncodes.norightkern
-local has_glyph_option = nuts.has_glyph_option
+local hasglyphoption = nuts.hasglyphoption
-- in lmtx we need to check the components and can be slightly more clever
@@ -520,18 +528,18 @@ local function inhibited(start,stop)
for n in nextnode, start do
-- we asume glyph nodes
if n == start then
- if has_glyph_option(n,no_right_ligature_code) then
+ if hasglyphoption(n,no_right_ligature_code) then
return true
end
elseif n == stop then
- if has_glyph_option(n,no_left_ligature_code) then
+ if hasglyphoption(n,no_left_ligature_code) then
return true
else
return false
end
- elseif has_glyph_option(n,no_left_ligature_code) then
+ elseif hasglyphoption(n,no_left_ligature_code) then
return true
- elseif has_glyph_option(n,no_right_ligature_code) then
+ elseif hasglyphoption(n,no_right_ligature_code) then
return true
end
end
@@ -539,9 +547,10 @@ local function inhibited(start,stop)
end
local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfound,hasmarks) -- brr head
- if start == stop and getchar(start) == char then
+ if start == stop and getchar(start) == char and not hasmarks then
resetinjection(start)
setchar(start,char)
+ -- fonts.collections.direct(start)
return head, start
end
if inhibited(start,stop) then
@@ -552,15 +561,15 @@ local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfou
local comp = start
setprev(start)
setnext(stop)
- local base = copy_no_components(start,copyinjection)
+ local base = copynocomponents(start,copyinjection)
if start == head then
head = base
end
resetinjection(base)
setchar(base,char)
+ -- fonts.collections.direct(base)
setoptions(base,getoptions(start) | getoptions(stop)) -- maybe only lig options
- setsubtype(base,ligatureglyph_code)
- set_components(base,comp)
+ setcomponents(base,comp)
setlink(prev,base,next)
if not discfound then
local deletemarks = not skiphash or hasmarks
@@ -574,7 +583,7 @@ local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfou
local char = getchar(start)
if not marks[char] then
baseindex = baseindex + componentindex
- componentindex = count_components(start,marks)
+ componentindex = countcomponents(start,marks)
-- we can be more clever here: "not deletemarks or (skiphash and not skiphash[char])"
-- and such:
elseif not deletemarks then
@@ -583,9 +592,9 @@ local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfou
if trace_marks then
logwarning("%s: keep ligature mark %s, gets index %s",pref(dataset,sequence),gref(char),getligaindex(start))
end
- local n = copy_node(start)
+ local n = copynode(start)
copyinjection(n,start) -- is this ok ? we position later anyway
- head, current = insert_node_after(head,current,n) -- unlikely that mark has components
+ head, current = insertnodeafter(head,current,n) -- unlikely that mark has components
elseif trace_marks then
logwarning("%s: delete ligature mark %s",pref(dataset,sequence),gref(char))
end
@@ -610,7 +619,7 @@ local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfou
break
end
end
- flush_components(components)
+ flushcomponents(components)
else
-- discfound ... forget about marks .. probably no scripts that hyphenate and have marks
local discprev, discnext = getboth(discfound)
@@ -622,8 +631,8 @@ local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfou
if not replace then
-- looks like we never come here as it's not okay
local prev = getprev(base)
- -- local comp = get_components(base) -- already set
- local copied = copy_only_glyphs(comp)
+ -- local comp = getcomponents(base) -- already set
+ local copied = copyonlyglyphs(comp)
if pre then
setlink(discprev,pre)
else
@@ -640,7 +649,7 @@ local function toligature(head,start,stop,char,dataset,sequence,skiphash,discfou
setlink(prev,discfound,next)
setboth(base)
-- here components have a pointer so we can't free it!
- set_components(base,copied)
+ setcomponents(base,copied)
replace = base
if forcediscretionaries then
setdisc(discfound,pre,post,replace,discretionarydisc_code)
@@ -657,32 +666,69 @@ end
local function multiple_glyphs(head,start,multiple,skiphash,what,stop) -- what to do with skiphash matches here
local nofmultiples = #multiple
if nofmultiples > 0 then
+ local first = start
resetinjection(start)
setchar(start,multiple[1])
if nofmultiples > 1 then
- local sn = getnext(start)
- for k=2,nofmultiples do
+ -- local sn = getnext(start)
+ for i=2,nofmultiples do
-- untested:
--
-- while ignoremarks and marks[getchar(sn)] then
-- local sn = getnext(sn)
-- end
- local n = copy_node(start) -- ignore components
+ local n = copynode(start) -- ignore components
resetinjection(n)
- setchar(n,multiple[k])
- insert_node_after(head,start,n)
+ setchar(n,multiple[i])
+ insertnodeafter(head,start,n)
start = n
end
- if what == true then
- -- we're ok
- elseif what > 1 then
- local m = multiple[nofmultiples]
- for i=2,what do
- local n = copy_node(start) -- ignore components
- resetinjection(n)
- setchar(n,m)
- insert_node_after(head,start,n)
- start = n
+ end
+ if what ~= true then
+ -- This is just some experimental code; we might introduce gsub_extensible
+ -- some day instead. Beware: when we have a feature that mixes alternates and
+ -- multiples we need to make sure we don't handle the alternate string values
+ -- here.
+ local kind = type(what)
+ local m, f, l
+ if kind == "string" then
+ local what, n = string.match(what,"^repeat(.-)[:=](%d+)$")
+ if what == "middle" then
+ m = tonumber(n)
+ elseif what == "first" then
+ f = tonumber(n)
+ elseif what == "last" then
+ l = tonumber(n)
+ end
+ elseif kind == "table" then
+ -- won't happen because currently we don't split these values
+ m = what.middle
+ f = what.first
+ l = what.last
+ end
+ if f or m or l then
+ if m and m > 1 and nofmultiples == 3 then
+ local middle = getnext(first)
+ for i=2,m do
+ local n = copynode(middle) -- ignore components
+ resetinjection(n)
+ insertnodeafter(head,first,n)
+ end
+ end
+ if f and f > 1 then
+ for i=2,f do
+ local n = copynode(first) -- ignore components
+ resetinjection(n)
+ insertnodeafter(head,first,n)
+ end
+ end
+ if l and l > 1 then
+ for i=2,l do
+ local n = copynode(start) -- ignore components
+ resetinjection(n)
+ insertnodeafter(head,start,n)
+ start = n
+ end
end
end
end
@@ -777,7 +823,12 @@ end
-- simplified. Anyway, it can be way messier: marks that get removed as well as
-- marks that are kept.
+-- Blocking is nasty: (ff\zwj l) vs (ff\zwj l) vs (ffl) vs (f\zwj fl}
+
function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skiphash)
+ if start and hasglyphoption(start,no_right_ligature_code) then
+ return head, start, false, nil
+ end
local current = getnext(start)
if not current then
return head, start, false, nil
@@ -787,8 +838,8 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
if skiphash and skiphash[startchar] then
while current do
local nxt, char = isnextchar(current,currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
- if char then
- local lg = ligature[char]
+ if char and not hasglyphoption(current,no_left_ligature_code) then
+ local lg = not tonumber(ligature) and ligature[char]
if lg then
stop = current
ligature = lg
@@ -801,14 +852,14 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
end
end
if stop then
- local lig = ligature.ligature
- if lig then
+ local ligature = tonumber(ligature) or ligature.ligature
+ if ligature then
if trace_ligatures then
local stopchar = getchar(stop)
- head, start = markstoligature(head,start,stop,lig)
+ head, start = markstoligature(head,start,stop,ligature)
logprocess("%s: replacing %s upto %s by ligature %s case 1",pref(dataset,sequence),gref(startchar),gref(stopchar),gref(getchar(start)))
else
- head, start = markstoligature(head,start,stop,lig)
+ head, start = markstoligature(head,start,stop,ligature)
end
return head, start, true, false
else
@@ -823,8 +874,10 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
if char then
if skiphash and skiphash[char] then
current = nxt
+ elseif hasglyphoption(current,no_left_ligature_code) then
+ break
else
- local lg = ligature[char]
+ local lg = not tonumber(ligature) and ligature[char]
if lg then
if marks[char] then
hasmarks = true
@@ -852,26 +905,30 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
--
-- Challenge for Kai (latinmodern): \hyphenation{fii-f-f-iif} fiiffiif
--
- if discfound then
+ if tonumber(ligature) then
+ -- we're already done (endpoint reached)
+ elseif discfound then
+ -- todo: check for no right ligature
-- don't assume marks in a disc and we don't run over a disc (for now)
local pre, post, replace = getdisc(discfound)
local match
if replace then
local nxt, char = isnextchar(replace,currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
- if char and ligature[char] then
+ if char and ligature[char] and not hasglyphoption(replace,no_left_ligature_code) then
match = true
end
end
if not match and pre then
local nxt, char = isnextchar(pre,currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
- if char and ligature[char] then
+ if char and ligature[char] and not hasglyphoption(pre,no_left_ligature_code) then
match = true
end
end
-- is this test ok:
if not match and not pre or not replace then
- local nxt, char = isnextchar(getnext(discfound),currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
- if char and ligature[char] then
+ local ndf = getnext(discfound)
+ local nxt, char = isnextchar(ndf,currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
+ if char and ligature[char] and not hasglyphoption(ndf,no_left_ligature_code) then
match = true
end
end
@@ -881,9 +938,9 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
local prev = getprev(start)
if stop then
setnext(stop)
- local copy = copy_node_list(start)
+ local copy = copynodelist(start)
local tail = stop -- was: getprev(stop) -- Kai: needs checking on your samples
- local liat = find_node_tail(copy)
+ local liat = findnodetail(copy)
if pre then
setlink(liat,pre)
end
@@ -894,7 +951,7 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
replace = start
else
setnext(start)
- local copy = copy_node(start)
+ local copy = copynode(start)
if pre then
setlink(copy,pre)
end
@@ -914,27 +971,30 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
start = discfound
return head, start, true, true
end
+ ligature = ligature.ligature
+ else
+ ligature = ligature.ligature
end
- local lig = ligature.ligature
- if lig then
+ -- local ligature = tonumber(ligature) or ligature.ligature
+ if ligature then
if stop then
if trace_ligatures then
local stopchar = getchar(stop)
- -- head, start = toligature(head,start,stop,lig,dataset,sequence,skiphash,discfound,hasmarks)
- head, start = toligature(head,start,stop,lig,dataset,sequence,skiphash,false,hasmarks)
- logprocess("%s: replacing %s upto %s by ligature %s case 2",pref(dataset,sequence),gref(startchar),gref(stopchar),gref(lig))
+ -- head, start = toligature(head,start,stop,ligature,dataset,sequence,skiphash,discfound,hasmarks)
+ head, start = toligature(head,start,stop,ligature,dataset,sequence,skiphash,false,hasmarks)
+ logprocess("%s: replacing %s upto %s by ligature %s case 2",pref(dataset,sequence),gref(startchar),gref(stopchar),gref(ligature))
-- we can have a rare case of multiple disc in a lig but that makes no sense language wise but if really
-- needed we could backtrack if we're in a disc node
else
- -- head, start = toligature(head,start,stop,lig,dataset,sequence,skiphash,discfound,hasmarks)
- head, start = toligature(head,start,stop,lig,dataset,sequence,skiphash,false,hasmarks)
+ -- head, start = toligature(head,start,stop,ligature,dataset,sequence,skiphash,discfound,hasmarks)
+ head, start = toligature(head,start,stop,ligature,dataset,sequence,skiphash,false,hasmarks)
end
else
-- weird but happens (in some arabic font)
resetinjection(start)
- setchar(start,lig)
+ setchar(start,ligature)
if trace_ligatures then
- logprocess("%s: replacing %s by (no real) ligature %s case 3",pref(dataset,sequence),gref(startchar),gref(lig))
+ logprocess("%s: replacing %s by (no real) ligature %s case 3",pref(dataset,sequence),gref(startchar),gref(ligature))
end
end
return head, start, true, false
@@ -946,7 +1006,7 @@ function handlers.gsub_ligature(head,start,dataset,sequence,ligature,rlmode,skip
end
function handlers.gpos_single(head,start,dataset,sequence,kerns,rlmode,skiphash,step,injection)
- if has_glyph_option(start,no_right_kern_code) then
+ if hasglyphoption(start,no_right_kern_code) then
return head, start, false
else
local startchar = getchar(start)
@@ -967,7 +1027,7 @@ function handlers.gpos_single(head,start,dataset,sequence,kerns,rlmode,skiphash,
end
function handlers.gpos_pair(head,start,dataset,sequence,kerns,rlmode,skiphash,step,injection)
- if has_glyph_option(start,no_right_kern_code) then
+ if hasglyphoption(start,no_right_kern_code) then
return head, start, false
else
local snext = getnext(start)
@@ -1078,7 +1138,7 @@ function handlers.gpos_mark2base(head,start,dataset,sequence,markanchors,rlmode,
end
return head, start, true
elseif trace_bugs then
- -- onetimemessage(currentfont,basechar,"no base anchors",report_fonts)
+ -- onetimemessage(currentfont,basechar,"no base anchors")
logwarning("%s: mark %s is not anchored to %s",pref(dataset,sequence),gref(markchar),gref(basechar))
end
elseif trace_bugs then
@@ -1145,7 +1205,7 @@ function handlers.gpos_mark2ligature(head,start,dataset,sequence,markanchors,rlm
end
elseif trace_bugs then
-- logwarning("%s: char %s is missing in font",pref(dataset,sequence),gref(basechar))
- onetimemessage(currentfont,basechar,"no base anchors",report_fonts)
+ onetimemessage(currentfont,basechar,"no base anchors")
end
elseif trace_bugs then
logwarning("%s: prev node is no char, case %i",pref(dataset,sequence),1)
@@ -1310,7 +1370,7 @@ as less as needed but that would also make the code even more messy.</p>
-- To be done (example needed): what if > 1 steps
--- this is messy: do we need this disc checking also in alternaties?
+-- this is messy: do we need this disc checking also in alternates?
local function reportzerosteps(dataset,sequence)
logwarning("%s: no steps",cref(dataset,sequence))
@@ -1346,7 +1406,7 @@ function chainprocs.gsub_remove(head,start,stop,dataset,sequence,currentlookup,r
if trace_chains then
logprocess("%s: removing character %s",cref(dataset,sequence,chainindex),gref(getchar(start)))
end
- head, start = remove_node(head,start,true)
+ head, start = removenode(head,start,true)
return head, getprev(start), true
end
@@ -1475,6 +1535,9 @@ assume rather stupid ligatures (no complex disc nodes).</p>
-- compare to handlers.gsub_ligature which is more complex ... why
function chainprocs.gsub_ligature(head,start,stop,dataset,sequence,currentlookup,rlmode,skiphash,chainindex)
+ if start and hasglyphoption(start,no_right_ligature_code) then
+ return head, start, false, 0, false
+ end
local mapping = currentlookup.mapping
if mapping == nil then
mapping = getmapping(dataset,sequence,currentlookup)
@@ -1493,55 +1556,19 @@ function chainprocs.gsub_ligature(head,start,stop,dataset,sequence,currentlookup
local last = stop
local nofreplacements = 1
while current do
- -- todo: ischar ... can there really be disc nodes here?
--- local id = getid(current)
--- if id == disc_code then
--- if not discfound then
--- discfound = current
--- end
--- if current == stop then
--- break -- okay? or before the disc
--- else
--- current = getnext(current)
--- end
--- else
--- local schar = getchar(current)
--- if skiphash and skiphash[schar] then -- marks
--- -- if current == stop then -- maybe add this
--- -- break
--- -- else
--- current = getnext(current)
--- -- end
--- else
--- local lg = ligatures[schar]
--- if lg then
--- ligatures = lg
--- last = current
--- nofreplacements = nofreplacements + 1
--- if marks[char] then
--- hasmarks = true
--- end
--- if current == stop then
--- break
--- else
--- current = getnext(current)
--- end
--- else
--- break
--- end
--- end
--- end
- --
- local nxt, schar, id = isnextchar(current,currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
- if schar then
- if skiphash and skiphash[schar] then -- marks
+ local nxt, char, id = isnextchar(current,currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
+ if char then
+ if current and hasglyphoption(current,no_left_ligature_code) then
+ break
+ end
+ if skiphash and skiphash[char] then -- marks
-- if current == stop then -- maybe add this
-- break
-- else
current = nxt
-- end
- else
- local lg = ligatures[schar]
+ else
+ local lg = not tonumber(ligatures) and ligatures[char]
if lg then
ligatures = lg
last = current
@@ -1570,9 +1597,9 @@ function chainprocs.gsub_ligature(head,start,stop,dataset,sequence,currentlookup
else
break
end
- --
end
- local ligature = ligatures.ligature
+ -- we can avoid the tonumber as already done but messy
+ local ligature = tonumber(ligatures) or ligatures.ligature
if ligature then
if chainindex then
stop = last
@@ -1600,7 +1627,7 @@ end
function chainprocs.gpos_single(head,start,stop,dataset,sequence,currentlookup,rlmode,skiphash,chainindex)
-- we actually should check no_left_kern_code with next
- if not has_glyph_option(start,no_right_kern_code) then
+ if not hasglyphoption(start,no_right_kern_code) then
local mapping = currentlookup.mapping
if mapping == nil then
mapping = getmapping(dataset,sequence,currentlookup)
@@ -1630,7 +1657,7 @@ end
function chainprocs.gpos_pair(head,start,stop,dataset,sequence,currentlookup,rlmode,skiphash,chainindex) -- todo: injections ?
-- we actually should check no_left_kern_code with next
- if not has_glyph_option(start,no_right_kern_code) then
+ if not hasglyphoption(start,no_right_kern_code) then
local mapping = currentlookup.mapping
if mapping == nil then
mapping = getmapping(dataset,sequence,currentlookup)
@@ -1926,7 +1953,7 @@ function chainprocs.gpos_cursive(head,start,stop,dataset,sequence,currentlookup,
end
end
elseif trace_bugs then
- onetimemessage(currentfont,startchar,"no entry anchors",report_fonts)
+ onetimemessage(currentfont,startchar,"no entry anchors")
end
break
end
@@ -1982,7 +2009,7 @@ do if not userkern then -- generic
local setkern = nuts.setkern -- not injections.setkern
userkern = function(k)
- local n = copy_node(thekern)
+ local n = copynode(thekern)
setkern(n,k)
return n
end
@@ -1999,13 +2026,13 @@ local function checked(head)
if next then
setlink(kern,next)
end
- flush_node(current)
+ flushnode(current)
head = kern
current = next
else
local prev, next = getboth(current)
setlink(prev,kern,next)
- flush_node(current)
+ flushnode(current)
current = next
end
else
@@ -2022,14 +2049,11 @@ local function setdiscchecked(d,pre,post,replace)
setdisc(d,pre,post,replace)
end
-local noflags = { false, false, false, false }
-
-local function chainrun(head,start,last,dataset,sequence,rlmode,skiphash,ck)
+local function chainrun(head,start,last,dataset,sequence,rlmode,skiphash,ck,where)
local size = ck[5] - ck[4] + 1
local chainlookups = ck[6]
local done = false
-
-- current match
if chainlookups then
-- Lookups can be like { 1, false, 3 } or { false, 2 } or basically anything and
@@ -2040,21 +2064,31 @@ local function chainrun(head,start,last,dataset,sequence,rlmode,skiphash,ck)
-- if nofchainlookups > size then
-- -- bad rules
-- end
-
local chainlookup = chainlookups[1]
- for j=1,#chainlookup do
- local chainstep = chainlookup[j]
- local chainkind = chainstep.type
- local chainproc = chainprocs[chainkind]
- if chainproc then
- local ok
- head, start, ok = chainproc(head,start,last,dataset,sequence,chainstep,rlmode,skiphash)
- if ok then
- done = true
+ if chainlookup then
+ for j=1,#chainlookup do
+ local chainstep = chainlookup[j]
+ if chainstep then
+ local chainkind = chainstep.type
+ local chainproc = chainprocs[chainkind]
+ if chainproc then
+ local ok
+ -- HH: chainindex 1 added here (for KAI to check too), there are weird ligatures e.g.
+ -- char + mark -> char where mark has to disappear
+ -- head, start, ok = chainproc(head,start,last,dataset,sequence,chainstep,rlmode,skiphash,1)
+ head, start, ok = chainproc(head,start,last,dataset,sequence,chainstep,rlmode,skiphash)
+ if ok then
+ done = true
+ end
+ else
+ logprocess("%s: %s is not yet supported (1)",cref(dataset,sequence),chainkind)
+ end
+ else
+ logprocess("%s: has an issue (1)",cref(dataset,sequence))
end
- else
- logprocess("%s: %s is not yet supported (1)",cref(dataset,sequence),chainkind)
end
+ else
+ -- whatever
end
else
@@ -2095,23 +2129,28 @@ local function chainrun(head,start,last,dataset,sequence,rlmode,skiphash,ck)
if chainlookup then
for j=1,#chainlookup do
local chainstep = chainlookup[j]
- local chainkind = chainstep.type
- local chainproc = chainprocs[chainkind]
- if chainproc then
- local ok, n
- head, start, ok, n = chainproc(head,start,last,dataset,sequence,chainstep,rlmode,skiphash,i)
- -- messy since last can be changed !
- if ok then
- done = true
- if n and n > 1 and i + n > nofchainlookups then
- -- this is a safeguard, we just ignore the rest of the lookups
- i = size -- prevents an advance
- break
+ if chainstep then
+ local chainkind = chainstep.type
+ local chainproc = chainprocs[chainkind]
+ if chainproc then
+ local ok, n
+ head, start, ok, n = chainproc(head,start,last,dataset,sequence,chainstep,rlmode,skiphash,i)
+ -- messy since last can be changed !
+ if ok then
+ done = true
+ if n and n > 1 and i + n > nofchainlookups then
+ -- this is a safeguard, we just ignore the rest of the lookups
+ i = size -- prevents an advance
+ break
+ end
end
+ else
+ -- actually an error
+ logprocess("%s: %s is not yet supported (2)",cref(dataset,sequence),chainkind)
end
else
-- actually an error
- logprocess("%s: %s is not yet supported (2)",cref(dataset,sequence),chainkind)
+ logprocess("%s: has an issue (2)",cref(dataset,sequence))
end
end
else
@@ -2139,7 +2178,7 @@ local function chainrun(head,start,last,dataset,sequence,rlmode,skiphash,ck)
else
done = true
if trace_contexts then
- logprocess("%s: skipping match",cref(dataset,sequence))
+ logprocess("%s: skipping match @ %i",cref(dataset,sequence),where)
end
end
end
@@ -2169,6 +2208,8 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
local last = start
local prev = getprev(start)
local hasglue = false
+ local useddisc = nil -- new 2022-09-25
+ local usedstart = start -- new 2022-09-25
-- fishy: so we can overflow and then go on in the sweep?
-- todo : id can also be glue_code as we checked spaces
@@ -2239,7 +2280,7 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
tail = prev
setprev(current,sweepnode)
else
- tail = find_node_tail(head)
+ tail = findnodetail(head)
end
setnext(sweepnode,current)
setprev(head)
@@ -2310,6 +2351,7 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
if keepdisc then
keepdisc = false
if notmatchpost[current] ~= notmatchreplace[current] then
+-- print(notmatchpost[current],notmatchreplace[current])
backtrackdisc = current
end
-- we assume a simple text only replace (we could use nuts.count)
@@ -2330,15 +2372,14 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
end
end
end
+
local done = false
if lookaheaddisc then
-
local cf = start
local cl = getprev(lookaheaddisc)
local cprev = getprev(start)
local insertedmarks = 0
-
while cprev do
local nxt, char = isnextchar(cf,currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
if char and marks[char] then
@@ -2357,13 +2398,13 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
head = lookaheaddisc
end
local pre, post, replace = getdisc(lookaheaddisc)
- local new = copy_node_list(cf) -- br, how often does that happen
+ local new = copynodelist(cf) -- br, how often does that happen
local cnew = new
if pre then
- setlink(find_node_tail(cf),pre)
+ setlink(findnodetail(cf),pre)
end
if replace then
- local tail = find_node_tail(new)
+ local tail = findnodetail(new)
setlink(tail,replace)
end
for i=1,insertedmarks do
@@ -2377,14 +2418,14 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
end
if not notmatchpre[lookaheaddisc] then
local ok = false
- cf, start, ok = chainrun(cf,start,cl,dataset,sequence,rlmode,skiphash,ck)
+ cf, start, ok = chainrun(cf,start,cl,dataset,sequence,rlmode,skiphash,ck,1)
if ok then
done = true
end
end
if not notmatchreplace[lookaheaddisc] then
local ok = false
- new, cnew, ok = chainrun(new,cnew,clast,dataset,sequence,rlmode,skiphash,ck)
+ new, cnew, ok = chainrun(new,cnew,clast,dataset,sequence,rlmode,skiphash,ck,2)
if ok then
done = true
end
@@ -2395,16 +2436,16 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
setdisc(lookaheaddisc,cf,post,new)
end
start = getprev(lookaheaddisc)
+if done then -- new 2022-12-22 : discretionary-001.tex
+ useddisc = lookaheaddisc -- new 2022-09-25
+end
sweephead[cf] = getnext(clast) or false
sweephead[new] = getnext(cl) or false
-
elseif backtrackdisc then
-
local cf = getnext(backtrackdisc)
local cl = start
local cnext = getnext(start)
local insertedmarks = 0
-
while cnext do
local nxt, char = isnextchar(cnext,currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
if char and marks[char] then
@@ -2419,8 +2460,8 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
setprev(cf)
setnext(cl)
local pre, post, replace, pretail, posttail, replacetail = getdisc(backtrackdisc,true)
- local new = copy_node_list(cf)
- local cnew = find_node_tail(new)
+ local new = copynodelist(cf)
+ local cnew = findnodetail(new)
for i=1,insertedmarks do
cnew = getprev(cnew)
end
@@ -2430,14 +2471,14 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
end
if not notmatchpost[backtrackdisc] then
local ok = false
- cf, start, ok = chainrun(cf,start,last,dataset,sequence,rlmode,skiphash,ck)
+ cf, start, ok = chainrun(cf,start,last,dataset,sequence,rlmode,skiphash,ck,3)
if ok then
done = true
end
end
if not notmatchreplace[backtrackdisc] then
local ok = false
- new, cnew, ok = chainrun(new,cnew,clast,dataset,sequence,rlmode,skiphash,ck)
+ new, cnew, ok = chainrun(new,cnew,clast,dataset,sequence,rlmode,skiphash,ck,4)
if ok then
done = true
end
@@ -2458,33 +2499,60 @@ local function chaindisk(head,start,dataset,sequence,rlmode,skiphash,ck)
setdisc(backtrackdisc,pre,post,replace)
end
start = getprev(backtrackdisc)
+if done then -- new 2022-12-22 : discretionary-001.tex
+ useddisc = backtrackdisc -- new 2022-09-25
+end
sweephead[post] = getnext(clast) or false
sweephead[replace] = getnext(last) or false
-
else
local ok = false
- head, start, ok = chainrun(head,start,last,dataset,sequence,rlmode,skiphash,ck)
+ head, start, ok = chainrun(head,start,last,dataset,sequence,rlmode,skiphash,ck,5)
if ok then
done = true
end
end
-
- return head, start, done
+-- test case ?
+ if useddisc and start ~= usedstart then -- make this option per font -- new 2022-09-25
+ start = getnext(start) -- new 2022-09-25
+ end -- new 2022-09-25
+ return head, start, done, useddisc -- new 2022-09-25
end
-local function chaintrac(head,start,dataset,sequence,rlmode,skiphash,ck,match,discseen,sweepnode)
- local rule = ck[1]
- local lookuptype = ck[8] or ck[2]
- local nofseq = #ck[3]
- local first = ck[4]
- local last = ck[5]
- local char = getchar(start)
- logwarning("%s: rule %s %s at char %s for (%s,%s,%s) chars, lookuptype %a, %sdisc seen, %ssweeping",
- cref(dataset,sequence),rule,match and "matches" or "nomatch",
- gref(char),first-1,last-first+1,nofseq-last,lookuptype,
- discseen and "" or "no ", sweepnode and "" or "not ")
+local chaintrac do
+
+ local level = 0
+ local last = { }
+
+ chaintrac = function(head,start,dataset,sequence,rlmode,skiphash,ck,match,discseen,sweepnode)
+ if dataset then
+ level = level + 1
+ last[level] = start
+ local rule = ck[1]
+ local lookuptype = ck[8] or ck[2]
+ local nofseq = #ck[3] -- ck[3].n
+ local first = ck[4]
+ local last = ck[5]
+ local char = getchar(start)
+ logwarning("+ %i : %s: rule %s %s at char %s for (%s,%s,%s) chars, lookuptype %a, %sdisc seen, %ssweeping",
+ level,cref(dataset,sequence),rule,match and "matches" or "nomatch",
+ gref(char),first-1,last-first+1,nofseq-last,lookuptype,
+ discseen and "" or "no ", sweepnode and "" or "not ")
+ else
+ -- (start,done)
+ local what = start and "done" or "continue"
+ local where = head == last[level] and "same" or "different"
+ local char = getchar(head)
+ if char then
+ logwarning("- %i : %s at char %s, %s node",level,what,gref(char),where)
+ else
+ logwarning("- %i : %s, %s node",level,what,where)
+ end
+ level = level - 1
+ end
+ end
+
end
-- The next one is quite optimized but still somewhat slow, fonts like ebgaramond
@@ -2498,6 +2566,9 @@ end
-- the previous disc .. such be it (<before><disc><current=fl><after> with only f done)
local function handle_contextchain(head,start,dataset,sequence,contexts,rlmode,skiphash)
+ if not contexts then
+ return head, start, false
+ end
-- optimizing for rlmode gains nothing
local sweepnode = sweepnode
local sweeptype = sweeptype
@@ -2533,167 +2604,299 @@ local function handle_contextchain(head,start,dataset,sequence,contexts,rlmode,s
-- fonts can have many steps (each doing one check) or many contexts
-- todo: make a per-char cache so that we have small contexts (when we have a context
- -- n == 1 and otherwise it can be more so we can even distingish n == 1 or more)
+ -- n == 1 and otherwise it can be more so we can even distinguish n == 1 or more)
local nofcontexts = contexts.n -- #contexts
local startchar = nofcontext == 1 or ischar(start,currentfont) -- already checked
for k=1,nofcontexts do -- does this disc mess work well with n > 1
- local ck = contexts[k]
- local seq = ck[3]
- local f = ck[4] -- first current
+ local ck = contexts[k]
+ local seq = ck[3]
+ local f = ck[4] -- first current
+ local last = start
if not startchar or not seq[f][startchar] then
-- report("no hit in %a at %i of %i contexts",sequence.type,k,nofcontexts)
goto next
end
- local s = seq.n -- or #seq
- local l = ck[5] -- last current
- local current = start
- local last = start
-
+ local s = seq.n -- or #seq
if s == 1 then
- goto next
- end
+ -- bit weird case: why use a chain, but it is a hit
+ else
+ local l = ck[5] -- last current
+ local current = start
+ -- local last = start
- -- current match
+ -- current match
- if l > f then
- -- before/current/after | before/current | current/after
- local discfound -- = nil
- local n = f + 1
- last = startnext -- the second in current (first already matched)
- while n <= l do
- if postreplace and not last then
- last = getnext(sweepnode)
- sweeptype = nil
- end
- if last then
- local nxt, char, id = isnextchar(last,currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
- if char then
- if skiphash and skiphash[char] then
- skipped = true
- if trace_skips then
- show_skip(dataset,sequence,char,ck,classes[char])
- end
- last = nxt
- elseif seq[n][char] then
- if n < l then
+ if l > f then
+ -- before/current/after | before/current | current/after
+ local discfound -- = nil
+ local n = f + 1
+ last = startnext -- the second in current (first already matched)
+ while n <= l do
+ if postreplace and not last then
+ last = getnext(sweepnode)
+ sweeptype = nil
+ end
+ if last then
+ local nxt, char, id = isnextchar(last,currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
+ if char then
+ if skiphash and skiphash[char] then
+ skipped = true
+ if trace_skips then
+ show_skip(dataset,sequence,char,ck,classes[char])
+ end
last = nxt
- end
- n = n + 1
- elseif discfound then
- notmatchreplace[discfound] = true
- if notmatchpre[discfound] then
- goto next
+ elseif seq[n][char] then
+ if n < l then
+ last = nxt
+ end
+ n = n + 1
+ elseif discfound then
+ notmatchreplace[discfound] = true
+ if notmatchpre[discfound] then
+ goto next
+ else
+ break
+ end
else
- break
- end
- else
- goto next
- end
- elseif char == false then
- if discfound then
- notmatchreplace[discfound] = true
- if notmatchpre[discfound] then
goto next
+ end
+ elseif char == false then
+ if discfound then
+ notmatchreplace[discfound] = true
+ if notmatchpre[discfound] then
+ goto next
+ else
+ break
+ end
else
- break
+ goto next
end
- else
- goto next
- end
- elseif id == disc_code then
- -- elseif id == disc_code and (not discs or discs[last]) then
- discseen = true
- discfound = last
- notmatchpre[last] = nil
- notmatchpost[last] = true
- notmatchreplace[last] = nil
- local pre, post, replace = getdisc(last)
- if pre then
- local n = n
- while pre do
- if seq[n][getchar(pre)] then
- n = n + 1
- if n > l then
+ elseif id == disc_code then
+ -- elseif id == disc_code and (not discs or discs[last]) then
+ discseen = true
+ discfound = last
+ notmatchpre[last] = nil
+ notmatchpost[last] = true
+ notmatchreplace[last] = nil
+ local pre, post, replace = getdisc(last)
+ if pre then
+ local n = n
+ while pre do
+ if seq[n][getchar(pre)] then
+ n = n + 1
+ if n > l then
+ break
+ end
+ pre = getnext(pre)
+ else
+ notmatchpre[last] = true
break
end
- pre = getnext(pre)
- else
+ end
+ if n <= l then
notmatchpre[last] = true
- break
end
- end
- if n <= l then
+ else
notmatchpre[last] = true
end
+ if replace then
+ -- so far we never entered this branch
+ while replace do
+ if seq[n][getchar(replace)] then
+ n = n + 1
+ if n > l then
+ break
+ end
+ replace = getnext(replace)
+ else
+ notmatchreplace[last] = true
+ if notmatchpre[last] then
+ goto next
+ else
+ break
+ end
+ end
+ end
+ -- why here again
+ if notmatchpre[last] then
+ goto next
+ end
+ end
+ -- maybe only if match
+ last = nxt
else
- notmatchpre[last] = true
+ goto next
end
- if replace then
- -- so far we never entered this branch
- while replace do
- if seq[n][getchar(replace)] then
- n = n + 1
- if n > l then
- break
+ else
+ goto next
+ end
+ end
+ end
+
+ -- before
+
+ if f > 1 then
+ -- if startprev then -- new 2022-09-25
+ local prev = startprev
+ if prereplace and prev == checkdisc then
+ prev = getprev(sweepnode)
+ end
+ if prev then
+ local discfound -- = nil
+ local n = f - 1
+ while n >= 1 do
+ if prev then
+ local prv, char, id = isprevchar(prev,currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
+ if char then
+ if skiphash and skiphash[char] then
+ skipped = true
+ if trace_skips then
+ show_skip(dataset,sequence,char,ck,classes[char])
+ end
+ prev = prv
+ elseif seq[n][char] then
+ if n > 1 then
+ prev = prv
+ end
+ n = n - 1
+ elseif discfound then
+ notmatchreplace[discfound] = true
+ if notmatchpost[discfound] then
+ goto next
+ else
+ break
+ end
+ else
+ goto next
end
- replace = getnext(replace)
- else
- notmatchreplace[last] = true
- if notmatchpre[last] then
+ elseif char == false then
+ if discfound then
+ notmatchreplace[discfound] = true
+ if notmatchpost[discfound] then
+ goto next
+ end
+ else
goto next
+ end
+ break
+ elseif id == disc_code then
+ -- elseif id == disc_code and (not discs or discs[prev]) then
+ -- the special case: f i where i becomes dottless i ..
+ discseen = true
+ discfound = prev
+ notmatchpre[prev] = true
+ notmatchpost[prev] = nil
+ notmatchreplace[prev] = nil
+ local pre, post, replace, pretail, posttail, replacetail = getdisc(prev,true)
+ -- weird test: needs checking
+ if pre ~= start and post ~= start and replace ~= start then
+ if post then
+ local n = n
+ while posttail do
+ if seq[n][getchar(posttail)] then
+ n = n - 1
+ if posttail == post or n < 1 then
+ break
+ else
+ posttail = getprev(posttail)
+ end
+ else
+ notmatchpost[prev] = true
+ break
+ end
+ end
+ if n >= 1 then
+ notmatchpost[prev] = true
+ end
+ else
+ notmatchpost[prev] = true
+ end
+ if replace then
+ -- we seldom enter this branch (e.g. on brill efficient)
+ while replacetail do
+ if seq[n][getchar(replacetail)] then
+ n = n - 1
+ if replacetail == replace or n < 1 then
+ break
+ else
+ replacetail = getprev(replacetail)
+ end
+ else
+ notmatchreplace[prev] = true
+ if notmatchpost[prev] then
+ goto next
+ else
+ break
+ end
+ end
+ end
+ else
+ -- notmatchreplace[prev] = true -- not according to Kai
+ end
+ end
+ -- prev = getprev(prev)
+ prev = prv
+ -- elseif id == glue_code and seq[n][32] and isspace(prev,threshold,id) then
+ -- elseif seq[n][32] and spaces[prev] then
+ -- n = n - 1
+ -- prev = prv
+ elseif id == glue_code then
+ local sn = seq[n]
+ if (sn[32] and spaces[prev]) or sn[0xFFFC] then
+ n = n - 1
+ prev = prv
else
- break
+ goto next
end
+ elseif seq[n][0xFFFC] then
+ n = n - 1
+ prev = prv
+ else
+ goto next
end
- end
- -- why here again
- if notmatchpre[last] then
+ else
goto next
end
end
- -- maybe only if match
- last = nxt
else
goto next
end
- else
- goto next
- end
+ -- else -- new 2022-09-25
+ -- goto next -- new 2022-09-25
+ -- end -- new 2022-09-25
end
- end
- -- before
+ -- after
- if f > 1 then
- if startprev then
- local prev = startprev
- if prereplace and prev == checkdisc then
- prev = getprev(sweepnode)
+ if s > l then
+ local current = last and getnext(last)
+ if not current and postreplace then
+ current = getnext(sweepnode)
end
- if prev then
+ if current then
local discfound -- = nil
- local n = f - 1
- while n >= 1 do
- if prev then
- local prv, char, id = isprevchar(prev,currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
+ local n = l + 1
+ while n <= s do
+ if current then
+ local nxt, char, id = isnextchar(current,currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
if char then
if skiphash and skiphash[char] then
skipped = true
if trace_skips then
show_skip(dataset,sequence,char,ck,classes[char])
end
- prev = prv
+ current = nxt -- was absent
elseif seq[n][char] then
- if n > 1 then
- prev = prv
+ if n < s then -- new test
+ current = nxt -- was absent
end
- n = n - 1
+ n = n + 1
elseif discfound then
notmatchreplace[discfound] = true
- if notmatchpost[discfound] then
+ if notmatchpre[discfound] then
goto next
else
break
@@ -2704,239 +2907,109 @@ local function handle_contextchain(head,start,dataset,sequence,contexts,rlmode,s
elseif char == false then
if discfound then
notmatchreplace[discfound] = true
- if notmatchpost[discfound] then
+ if notmatchpre[discfound] then
goto next
+ else
+ break
end
else
goto next
end
- break
elseif id == disc_code then
- -- elseif id == disc_code and (not discs or discs[prev]) then
- -- the special case: f i where i becomes dottless i ..
- discseen = true
- discfound = prev
- notmatchpre[prev] = true
- notmatchpost[prev] = nil
- notmatchreplace[prev] = nil
- local pre, post, replace, pretail, posttail, replacetail = getdisc(prev,true)
- -- weird test: needs checking
- if pre ~= start and post ~= start and replace ~= start then
- if post then
- local n = n
- while posttail do
- if seq[n][getchar(posttail)] then
- n = n - 1
- if posttail == post or n < 1 then
- break
- else
- posttail = getprev(posttail)
- end
- else
- notmatchpost[prev] = true
+ -- elseif id == disc_code and (not discs or discs[current]) then
+ discseen = true
+ discfound = current
+ notmatchpre[current] = nil
+ notmatchpost[current] = true
+ notmatchreplace[current] = nil
+ local pre, post, replace = getdisc(current)
+ -- no detailed checking here, todo ?
+ if pre then
+ local n = n
+ while pre do
+ if seq[n][getchar(pre)] then
+ n = n + 1
+ if n > s then
break
+ else
+ pre = getnext(pre)
end
+ else
+ notmatchpre[current] = true
+ break
end
- if n >= 1 then
- notmatchpost[prev] = true
- end
- else
- notmatchpost[prev] = true
end
- if replace then
- -- we seldom enter this branch (e.g. on brill efficient)
- while replacetail do
- if seq[n][getchar(replacetail)] then
- n = n - 1
- if replacetail == replace or n < 1 then
- break
- else
- replacetail = getprev(replacetail)
- end
+ if n <= s then
+ notmatchpre[current] = true
+ end
+ else
+ notmatchpre[current] = true
+ end
+ if replace then
+ -- so far we never entered this branch
+ while replace do
+ if seq[n][getchar(replace)] then
+ n = n + 1
+ if n > s then
+ break
else
- notmatchreplace[prev] = true
- if notmatchpost[prev] then
- goto next
- else
- break
- end
+ replace = getnext(replace)
+ end
+ else
+ notmatchreplace[current] = true
+ if notmatchpre[current] then
+ goto next
+ else
+ break
end
end
- else
- -- notmatchreplace[prev] = true -- not according to Kai
end
+ else
+ -- notmatchreplace[current] = true -- not according to Kai
end
- -- prev = getprev(prev)
- prev = prv
- -- elseif id == glue_code and seq[n][32] and isspace(prev,threshold,id) then
- -- elseif seq[n][32] and spaces[prev] then
- -- n = n - 1
- -- prev = prv
+ current = getnext(current)
elseif id == glue_code then
local sn = seq[n]
- if (sn[32] and spaces[prev]) or sn[0xFFFC] then
- n = n - 1
- prev = prv
+ if (sn[32] and spaces[current]) or sn[0xFFFC] then
+ n = n + 1
+ current = nxt
else
goto next
end
elseif seq[n][0xFFFC] then
- n = n - 1
- prev = prv
- else
- goto next
- end
- else
- goto next
- end
- end
- else
- goto next
- end
- else
- goto next
- end
- end
-
- -- after
-
- if s > l then
- local current = last and getnext(last)
- if not current and postreplace then
- current = getnext(sweepnode)
- end
- if current then
- local discfound -- = nil
- local n = l + 1
- while n <= s do
- if current then
- local nxt, char, id = isnextchar(current,currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
- if char then
- if skiphash and skiphash[char] then
- skipped = true
- if trace_skips then
- show_skip(dataset,sequence,char,ck,classes[char])
- end
- current = nxt -- was absent
- elseif seq[n][char] then
- if n < s then -- new test
- current = nxt -- was absent
- end
- n = n + 1
- elseif discfound then
- notmatchreplace[discfound] = true
- if notmatchpre[discfound] then
- goto next
- else
- break
- end
- else
- goto next
- end
- elseif char == false then
- if discfound then
- notmatchreplace[discfound] = true
- if notmatchpre[discfound] then
- goto next
- else
- break
- end
- else
- goto next
- end
- elseif id == disc_code then
- -- elseif id == disc_code and (not discs or discs[current]) then
- discseen = true
- discfound = current
- notmatchpre[current] = nil
- notmatchpost[current] = true
- notmatchreplace[current] = nil
- local pre, post, replace = getdisc(current)
- -- no detailed checking here, todo ?
- if pre then
- local n = n
- while pre do
- if seq[n][getchar(pre)] then
- n = n + 1
- if n > s then
- break
- else
- pre = getnext(pre)
- end
- else
- notmatchpre[current] = true
- break
- end
- end
- if n <= s then
- notmatchpre[current] = true
- end
- else
- notmatchpre[current] = true
- end
- if replace then
- -- so far we never entered this branch
- while replace do
- if seq[n][getchar(replace)] then
- n = n + 1
- if n > s then
- break
- else
- replace = getnext(replace)
- end
- else
- notmatchreplace[current] = true
- if notmatchpre[current] then
- goto next
- else
- break
- end
- end
- end
- else
- -- notmatchreplace[current] = true -- not according to Kai
- end
- current = getnext(current)
- elseif id == glue_code then
- local sn = seq[n]
- if (sn[32] and spaces[current]) or sn[0xFFFC] then
n = n + 1
current = nxt
else
goto next
end
- elseif seq[n][0xFFFC] then
- n = n + 1
- current = nxt
else
goto next
end
- else
- goto next
end
+ else
+ goto next
end
- else
- goto next
end
end
-
if trace_contexts then
chaintrac(head,start,dataset,sequence,rlmode,skipped and skiphash,ck,true,discseen,sweepnode)
end
if discseen or sweepnode then
+ -- When we process a disc we can collapse and therefore we backtrack one node (start) and
+ -- reprocess. This is needed because there might be more in the collapsed list.
head, start, done = chaindisk(head,start,dataset,sequence,rlmode,skipped and skiphash,ck)
else
- head, start, done = chainrun(head,start,last,dataset,sequence,rlmode,skipped and skiphash,ck)
+ head, start, done = chainrun(head,start,last,dataset,sequence,rlmode,skipped and skiphash,ck,6)
+ end
+ if trace_contexts then
+ chaintrac(start,done)
end
if done then
break
-- else
-- next context
end
- ::next::
- -- if trace_chains then
- -- chaintrac(head,start,dataset,sequence,rlmode,skipped and skiphash,ck,false,discseen,sweepnode)
- -- end
+ ::next::
end
if discseen then
notmatchpre = { }
@@ -2955,21 +3028,46 @@ handlers.gsub_reversecontextchain = handle_contextchain
handlers.gpos_contextchain = handle_contextchain
handlers.gpos_context = handle_contextchain
--- this needs testing
+-- local function chained_contextchain(head,start,stop,dataset,sequence,currentlookup,rlmode,skiphash)
+-- local steps = currentlookup.steps
+-- local nofsteps = currentlookup.nofsteps
+-- if nofsteps > 1 then
+-- reportmoresteps(dataset,sequence)
+-- end
+-- -- probably wrong
+-- local l = steps[1].coverage[getchar(start)]
+-- if l then
+-- return handle_contextchain(head,start,dataset,sequence,l,rlmode,skiphash)
+-- else
+-- return head, start, false
+-- end
+-- end
+
+-- new 2022-09-25
local function chained_contextchain(head,start,stop,dataset,sequence,currentlookup,rlmode,skiphash)
local steps = currentlookup.steps
local nofsteps = currentlookup.nofsteps
- if nofsteps > 1 then
- reportmoresteps(dataset,sequence)
- end
- -- probably wrong
- local l = steps[1].coverage[getchar(start)]
- if l then
- return handle_contextchain(head,start,dataset,sequence,l,rlmode,skiphash)
+ local char = getchar(start)
+ if nofsteps == 1 then
+ local s = steps[1]
+ local l = s.coverage[char]
+ if l then
+ return handle_contextchain(head,start,dataset,sequence,l,rlmode,skiphash)
+ end
else
- return head, start, false
+ for i=1,nofsteps do
+ local s = steps[i]
+ local l = s.coverage[char]
+ if l then
+ local h, s, d = handle_contextchain(head,start,dataset,sequence,l,rlmode,skiphash)
+ if d then
+ return h, s, d
+ end
+ end
+ end
end
+ return head, start, false
end
chainprocs.gsub_context = chained_contextchain
@@ -3108,7 +3206,7 @@ do -- overcome local limit
end
-- Functions like kernrun, comprun etc evolved over time and in the end look rather
--- complex. It's a bit of a compromis between extensive copying and creating subruns.
+-- complex. It's a bit of a compromise between extensive copying and creating subruns.
-- The logic has been improved a lot by Kai and Ivo who use complex fonts which
-- really helped to identify border cases on the one hand and get insight in the diverse
-- ways fonts implement features (not always that consistent and efficient). At the same
@@ -3215,7 +3313,8 @@ local function kernrun(disc,k_run,...)
if done and trace_testruns then
report_disc("done",disc)
end
- return nextstart, done
+ -- return nextstart, done
+ return nextstart
end
-- fonts like ebgaramond do ligatures this way (less efficient than e.g. dejavu which
@@ -3268,7 +3367,8 @@ local function comprun(disc,c_run,...) -- vararg faster than the whole list
setdisc(disc,pre,post,replace)
end
--
- return getnext(disc), renewed
+ -- return getnext(disc), renewed
+ return getnext(disc)
end
-- if we can hyphenate in a lig then unlikely a lig so we
@@ -3323,7 +3423,7 @@ local function testrun(disc,t_run,c_run,...)
next = getnext(tail)
setnext(tail)
setprev(head)
- local new = copy_node_list(head)
+ local new = copynodelist(head)
if posttail then
setlink(posttail,head)
else
@@ -3396,7 +3496,8 @@ local function testrun(disc,t_run,c_run,...)
end
end
-- next can have changed (copied list)
- return getnext(disc), renewed
+ -- return getnext(disc), renewed
+ return getnext(disc)
end
-- 1{2{\oldstyle\discretionary{3}{4}{5}}6}7\par
@@ -3474,7 +3575,7 @@ local function t_run_single(start,stop,lookupcache)
while s do
local nxt, char = isnextchar(s,currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
if char then
- local lg = lookupmatch[char]
+ local lg = not tonumber(lookupmatch) and lookupmatch[char]
if lg then
if sstop then
d = 1
@@ -3504,7 +3605,7 @@ local function t_run_single(start,stop,lookupcache)
break
end
end
- if l and l.ligature then -- so we test for ligature
+ if l and (tonumber(l) or l.ligature) then -- so we test for ligature
lastd = d
end
end
@@ -3618,7 +3719,7 @@ local function t_run_multiple(start,stop,steps,nofsteps)
while s do
local nxt, char = isnextchar(s,currentfont,currentdynamic,currentscale,currentxscale,currentyscale)
if char then
- local lg = lookupmatch[char]
+ local lg = not tonumber(lookupmatch) and lookupmatch[char]
if lg then
if sstop then
d = 1
@@ -3648,7 +3749,7 @@ local function t_run_multiple(start,stop,steps,nofsteps)
break
end
end
- if l and l.ligature then
+ if l and (tonumber(l) or l.ligature) then
lastd = d
end
end
@@ -3759,7 +3860,14 @@ do
-- about 15% on arabtype .. then moving the a test also saves a bit (even when
-- often a is not set at all so that one is a bit debatable
- local otfdataset = nil -- todo: make an installer
+ -- local otfdataset = nil
+ local otfdataset
+
+ otfdataset = function(...)
+ -- delayed alias
+ otfdataset = otf.dataset
+ return otfdataset(...)
+ end
local getfastdisc = { __index = function(t,k)
local v = usesfont(k,currentfont)
@@ -3783,9 +3891,9 @@ do
if nesting == 1 then
currentfont = font
currentdynamic = dynamic
- currentscale = false
- currentxscale = false
- currentyscale = false
+ currentscale = 1000
+ currentxscale = 1000
+ currentyscale = 1000
tfmdata = fontdata[font]
descriptions = tfmdata.descriptions -- only needed in gref so we could pass node there instead
characters = tfmdata.characters -- but this branch is not entered that often anyway
@@ -3796,11 +3904,11 @@ do
factor = getthreshold(font)
checkmarks = tfmdata.properties.checkmarks
- if not otfdataset then
- otfdataset = otf.dataset
- end
+ -- if not otfdataset then
+ -- otfdataset = otf.dataset
+ -- end
- discs = fastdisc and n and n > 1 and setmetatable({},getfastdisc) -- maybe inline
+ discs = fastdisc and n and n > 1 and setmetatable({},getfastdisc)
spaces = setmetatable({},getfastspace)
elseif currentfont ~= font then
@@ -3817,7 +3925,7 @@ do
local initialrl = 0
- if getid(head) == par_code and start_of_par(head) then
+ if getid(head) == par_code and startofpar(head) then
initialrl = pardirstate(head)
elseif direction == righttoleft_code then
initialrl = -1
@@ -3834,7 +3942,7 @@ do
-- We don't goto the next node when a disc node is created so that we can then treat
-- the pre, post and replace. It's a bit of a hack but works out ok for most cases.
- for s=1,#datasets do
+ for s=1,#datasets do -- todo: datasets.n
local dataset = datasets[s]
local state = dataset[2]
local sequence = dataset[3] -- sequences[s] -- also dataset[5]
@@ -3847,12 +3955,11 @@ do
local steps = sequence.steps
local nofsteps = sequence.nofsteps
local skiphash = sequence.skiphash
-
if not steps then
-- This permits injection, watch the different arguments. Watch out, the arguments passed
-- are not frozen as we might extend or change this. Is this used at all apart from some
-- experiments?
- local h, ok = handler(head,dataset,sequence,initialrl,font,dynamic) -- less arguments now
+ local h = handler(head,dataset,sequence,initialrl,font,dynamic) -- less arguments now
if h and h ~= head then
head = h
end
@@ -3862,7 +3969,7 @@ do
-- the before and after lists in the loader. But first I need to see a font that uses multiple
-- matches.
--
- local start = find_node_tail(head)
+ local start = findnodetail(head)
local rlmode = 0 -- how important is this .. do we need to check for dir?
local merged = steps.merged
while start do
@@ -3925,28 +4032,24 @@ do
start = nxt
elseif id == disc_code then
if not discs or discs[start] == true then
- local ok
if gpossing then
- start, ok = kernrun(start,k_run_single, lookupcache,step,dataset,sequence,rlmode,skiphash,handler)
+ start = kernrun(start,k_run_single, lookupcache,step,dataset,sequence,rlmode,skiphash,handler)
elseif forcetestrun then
- start, ok = testrun(start,t_run_single,c_run_single,lookupcache,step,dataset,sequence,rlmode,skiphash,handler)
+ start = testrun(start,t_run_single,c_run_single,lookupcache,step,dataset,sequence,rlmode,skiphash,handler)
else
- start, ok = comprun(start,c_run_single, lookupcache,step,dataset,sequence,rlmode,skiphash,handler)
+ start = comprun(start,c_run_single, lookupcache,step,dataset,sequence,rlmode,skiphash,handler)
end
- -- if ok then
- -- done = true
- -- end
else
start = nxt
end
elseif id == math_code then
- start = getnext(end_of_math(start))
+ start = getnext(endofmath(start))
elseif id == dir_code then
topstack, rlmode = txtdirstate(start,dirstack,topstack,rlparmode)
start = nxt
- -- elseif id == par_code and start_of_par(start) then
+ -- elseif id == par_code and startofpar(start) then
-- rlparmode, rlmode = pardirstate(start)
- -- start = nxt
+ -- start = nxt
else
start = nxt
end
@@ -3995,23 +4098,22 @@ do
start = nxt
elseif id == disc_code then
if not discs or discs[start] == true then
- local ok
if gpossing then
- start, ok = kernrun(start,k_run_multiple, steps,nofsteps,dataset,sequence,rlmode,skiphash,handler)
+ start = kernrun(start,k_run_multiple, steps,nofsteps,dataset,sequence,rlmode,skiphash,handler)
elseif forcetestrun then
- start, ok = testrun(start,t_run_multiple,c_run_multiple,steps,nofsteps,dataset,sequence,rlmode,skiphash,handler)
+ start = testrun(start,t_run_multiple,c_run_multiple,steps,nofsteps,dataset,sequence,rlmode,skiphash,handler)
else
- start, ok = comprun(start,c_run_multiple, steps,nofsteps,dataset,sequence,rlmode,skiphash,handler)
+ start = comprun(start,c_run_multiple, steps,nofsteps,dataset,sequence,rlmode,skiphash,handler)
end
else
start = nxt
end
elseif id == math_code then
- start = getnext(end_of_math(start))
+ start = getnext(endofmath(start))
elseif id == dir_code then
topstack, rlmode = txtdirstate(start,dirstack,topstack,rlparmode)
start = nxt
- -- elseif id == par_code and start_of_par(start) then
+ -- elseif id == par_code and startofpar(start) then
-- rlparmode, rlmode = pardirstate(start)
-- start = nxt
else
@@ -4039,9 +4141,9 @@ do
currentfont = font
currentdynamic = false
- currentscale = false
- currentxscale = false
- currentyscale = false
+ currentscale = 1000
+ currentxscale = 1000
+ currentyscale = 1000
tfmdata = fontdata[font]
descriptions = tfmdata.descriptions -- only needed in gref so we could pass node there instead
characters = tfmdata.characters -- but this branch is not entered that often anyway
@@ -4123,13 +4225,13 @@ do
-- a different font|state or glue (happens often)
start = nxt
elseif id == math_code then
- start = getnext(end_of_math(start))
+ start = getnext(endofmath(start))
elseif id == dir_code then
topstack, rlmode = txtdirstate(start,dirstack,topstack,rlparmode)
start = nxt
- -- elseif id == par_code and start_of_par(start) then
+ -- elseif id == par_code and startofpar(start) then
-- rlparmode, rlmode = pardirstate(start)
- -- start = nxt
+ -- start = nxt
else
start = nxt
end
@@ -4144,49 +4246,60 @@ end
-- so far
-local plugins = { }
-otf.plugins = plugins
+do
-local report = logs.reporter("fonts")
+ local plugins = { }
+ otf.plugins = plugins
-function otf.registerplugin(name,f)
- if type(name) == "string" and type(f) == "function" then
- plugins[name] = { name, f }
- report()
- report("plugin %a has been loaded, please be aware of possible side effects",name)
- report()
- if logs.pushtarget then
- logs.pushtarget("log")
- end
- report("Plugins are not officially supported unless stated otherwise. This is because")
- report("they bypass the regular font handling and therefore some features in ConTeXt")
- report("(especially those related to fonts) might not work as expected or might not work")
- report("at all. Some plugins are for testing and development only and might change")
- report("whenever we feel the need for it.")
- report()
- if logs.poptarget then
- logs.poptarget()
+ local report = logs.reporter("fonts")
+ local warned = false
+ local okay = { text = true }
+
+ function otf.registerplugin(name,f)
+ if type(name) == "string" and type(f) == "function" then
+ plugins[name] = { name, f }
+ if okay[name] then
+ -- no warning (e.g. the diagnostic text plugin)
+ else
+ report("plugin %a has been loaded, please be aware of possible side effects",name)
+ if not warned then
+ if logs.pushtarget then
+ logs.pushtarget("log")
+ end
+ report("Plugins are not officially supported unless stated otherwise. This is because")
+ report("they bypass the regular font handling and therefore some features in ConTeXt")
+ report("(especially those related to fonts) might not work as expected or might not work")
+ report("at all. Some plugins are for testing and development only and might change")
+ report("whenever we feel the need for it.")
+ report()
+ if logs.poptarget then
+ logs.poptarget()
+ end
+ warned = true
+ end
+ end
end
end
-end
-function otf.plugininitializer(tfmdata,value)
- if type(value) == "string" then
- tfmdata.shared.plugin = plugins[value]
+ function otf.plugininitializer(tfmdata,value)
+ if type(value) == "string" then
+ tfmdata.shared.plugin = plugins[value]
+ end
end
-end
-function otf.pluginprocessor(head,font,dynamic,direction) -- n
- local s = fontdata[font].shared
- local p = s and s.plugin
- if p then
- if trace_plugins then
- report_process("applying plugin %a",p[1])
+ function otf.pluginprocessor(head,font,dynamic,direction) -- n
+ local s = fontdata[font].shared
+ local p = s and s.plugin
+ if p then
+ if trace_plugins then
+ report_process("applying plugin %a",p[1])
+ end
+ return p[2](head,font,dynamic,direction)
+ else
+ return head, false
end
- return p[2](head,font,dynamic,direction)
- else
- return head, false
end
+
end
function otf.featuresinitializer(tfmdata,value)
@@ -4208,8 +4321,8 @@ registerotffeature {
}
}
--- Moved here (up) a bit. This doesn't really belong in generic so it will
--- move to a context module some day.
+-- Moved here (up) a bit. This doesn't really belong in generic so it will move to a
+-- context module some day.
local function markinitializer(tfmdata,value)
local properties = tfmdata.properties
@@ -4231,245 +4344,9 @@ registerotffeature {
-- we use a different call:
--
-- function(head,dataset,sequence,initialrl,font,dynamic)
--- return head, done
+-- return head
-- end
--
-- Also see (!!).
otf.handlers = handlers
-
-if context then
- return
-else
- -- todo: move the following code someplace else
-end
-
-local setspacekerns = nodes.injections.setspacekerns if not setspacekerns then os.exit() end
-
-local tag = "kern"
-
--- if fontfeatures then
-
--- function handlers.trigger_space_kerns(head,dataset,sequence,initialrl,font,dynamic)
--- local features = fontfeatures[font]
--- local enabled = features and features.spacekern and features[tag]
--- if enabled then
--- setspacekerns(font,sequence)
--- end
--- return head, enabled
--- end
-
--- else -- generic (no hashes)
-
- function handlers.trigger_space_kerns(head,dataset,sequence,initialrl,font,dynamic)
- local shared = fontdata[font].shared
- local features = shared and shared.features
- local enabled = features and features.spacekern and features[tag]
- if enabled then
- setspacekerns(font,sequence)
- end
- return head, enabled
- end
-
--- end
-
--- There are fonts out there that change the space but we don't do that kind of
--- things in TeX.
-
-local function hasspacekerns(data)
- local resources = data.resources
- local sequences = resources.sequences
- local validgpos = resources.features.gpos
- if validgpos and sequences then
- for i=1,#sequences do
- local sequence = sequences[i]
- local steps = sequence.steps
- if steps and sequence.features[tag] then
- local kind = sequence.type
- if kind == "gpos_pair" or kind == "gpos_single" then
- for i=1,#steps do
- local step = steps[i]
- local coverage = step.coverage
- local rules = step.rules
- if rules then
- -- not now: analyze (simple) rules
- elseif not coverage then
- -- nothing to do
- elseif kind == "gpos_single" then
- -- maybe a message that we ignore
- elseif kind == "gpos_pair" then
- local format = step.format
- if format == "move" or format == "kern" then
- local kerns = coverage[32]
- if kerns then
- return true
- end
- for k, v in next, coverage do
- if v[32] then
- return true
- end
- end
- elseif format == "pair" then
- local kerns = coverage[32]
- if kerns then
- for k, v in next, kerns do
- local one = v[1]
- if one and one ~= true then
- return true
- end
- end
- end
- for k, v in next, coverage do
- local kern = v[32]
- if kern then
- local one = kern[1]
- if one and one ~= true then
- return true
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- return false
-end
-
-otf.readers.registerextender {
- name = "spacekerns",
- action = function(data)
- data.properties.hasspacekerns = hasspacekerns(data)
- end
-}
-
-local function spaceinitializer(tfmdata,value) -- dynamic
- local resources = tfmdata.resources
- local spacekerns = resources and resources.spacekerns
- if value and spacekerns == nil then
- local rawdata = tfmdata.shared and tfmdata.shared.rawdata
- local properties = rawdata.properties
- if properties and properties.hasspacekerns then
- local sequences = resources.sequences
- local validgpos = resources.features.gpos
- if validgpos and sequences then
- local left = { }
- local right = { }
- local last = 0
- local feat = nil
- for i=1,#sequences do
- local sequence = sequences[i]
- local steps = sequence.steps
- if steps then
- -- we don't support space kerns in other features
- local kern = sequence.features[tag]
- if kern then
- local kind = sequence.type
- if kind == "gpos_pair" or kind == "gpos_single" then
- if feat then
- for script, languages in next, kern do
- local f = feat[script]
- if f then
- for l in next, languages do
- f[l] = true
- end
- else
- feat[script] = languages
- end
- end
- else
- feat = kern
- end
- for i=1,#steps do
- local step = steps[i]
- local coverage = step.coverage
- local rules = step.rules
- if rules then
- -- not now: analyze (simple) rules
- elseif not coverage then
- -- nothing to do
- elseif kind == "gpos_single" then
- -- makes no sense in TeX
- elseif kind == "gpos_pair" then
- local format = step.format
- if format == "move" or format == "kern" then
- local kerns = coverage[32]
- if kerns then
- for k, v in next, kerns do
- right[k] = v
- end
- end
- for k, v in next, coverage do
- local kern = v[32]
- if kern then
- left[k] = kern
- end
- end
- elseif format == "pair" then
- local kerns = coverage[32]
- if kerns then
- for k, v in next, kerns do
- local one = v[1]
- if one and one ~= true then
- right[k] = one[3]
- end
- end
- end
- for k, v in next, coverage do
- local kern = v[32]
- if kern then
- local one = kern[1]
- if one and one ~= true then
- left[k] = one[3]
- end
- end
- end
- end
- end
- end
- last = i
- end
- else
- -- no steps ... needed for old one ... we could use the basekerns
- -- instead
- end
- end
- end
- left = next(left) and left or false
- right = next(right) and right or false
- if left or right then
- spacekerns = {
- left = left,
- right = right,
- }
- if last > 0 then
- local triggersequence = {
- -- no steps, see (!!)
- features = { [tag] = feat or { dflt = { dflt = true, } } },
- flags = noflags,
- name = "trigger_space_kerns",
- order = { tag },
- type = "trigger_space_kerns",
- left = left,
- right = right,
- }
- insert(sequences,last,triggersequence)
- end
- end
- end
- end
- resources.spacekerns = spacekerns
- end
- return spacekerns
-end
-
-registerotffeature {
- name = "spacekern",
- description = "space kern injection",
- default = true,
- initializers = {
- node = spaceinitializer,
- },
-}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-phb-imp-binary.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-phb-imp-binary.lmt
new file mode 100644
index 00000000000..39a6057ea90
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-phb-imp-binary.lmt
@@ -0,0 +1,114 @@
+if not modules then modules = { } end modules ['font-phb-imp-binary'] = {
+ version = 1.000, -- 2016.10.10,
+ comment = "companion to font-txt.mkiv",
+ author = "Hans Hagen",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+}
+
+-- The hb library comes in versions and the one I tested in 2016 was part of the inkscape
+-- suite. In principle one can have incompatibilities due to updates but that is the nature
+-- of a library. When a library ie expected one has better use the system version, if only
+-- to make sure that different programs behave the same.
+--
+-- The main reason for testing this approach was that when Idris was working on his fonts,
+-- we wanted to know how different shapers deal with it and the hb command line program
+-- could provide uniscribe output. For the context shaper uniscribe is the reference, also
+-- because Idris started out with Volt a decade ago.
+--
+-- This file uses the indirect approach by calling the executable. This file uses context
+-- features and is not generic.
+
+local next, tonumber, pcall = next, tonumber, pcall
+
+local concat = table.concat
+local reverse = table.reverse
+local formatters = string.formatters
+local removefile = os.remove
+local resultof = os.resultof
+local savedata = io.savedata
+
+local report = utilities.hb.report or print
+local packtoutf8 = utilities.hb.helpers.packtoutf8
+
+-- output : [index=cluster@x_offset,y_offset+x_advance,y_advance|...]
+-- result : { index, cluster, x_offset, y_offset, x_advance, y_advance }
+
+local P, Ct, Cc = lpeg.P, lpeg.Ct, lpeg.Cc
+local lpegmatch = lpeg.match
+
+local zero = Cc(0)
+local number = lpeg.patterns.integer / tonumber + zero
+local index = lpeg.patterns.cardinal / tonumber
+local cluster = index
+local offset = (P("@") * number * (P(",") * number + zero)) + zero * zero
+local advance = (P("+") * number * (P(",") * number + zero)) + zero * zero
+local glyph = Ct(index * P("=") * cluster * offset * advance)
+local pattern = Ct(P("[") * (glyph * P("|")^-1)^0 * P("]"))
+
+local shapers = {
+ native = "ot,uniscribe,fallback",
+ uniscribe = "uniscribe,ot,fallback",
+ fallback = "fallback"
+}
+
+local runner = sandbox.registerrunner {
+ method = "resultof",
+ name = "harfbuzz",
+ -- program = {
+ -- windows = "hb-shape.exe",
+ -- unix = "hb-shape"
+ -- },
+ program = "hb-shape",
+ checkers = {
+ shaper = "string",
+ features = "string",
+ script = "string",
+ language = "string",
+ direction = "string",
+ textfile = "writable",
+ fontfile = "readable",
+ },
+ template = string.longtostring [[
+ --shaper=%shaper%
+ --output-format=text
+ --no-glyph-names
+ --features="%features%"
+ --script=%script%
+ --language=%language%
+ --direction=%direction%
+ --text-file=%textfile%
+ --font-file=%fontfile%
+ ]],
+}
+
+local tempfile = "font-phb.tmp"
+local reported = false
+
+function utilities.hb.methods.binary(font,data,rlmode,text,leading,trailing)
+ if runner then
+ savedata(tempfile,packtoutf8(text,leading,trailing))
+ local result = runner {
+ shaper = shapers[data.shaper] or shapers.native,
+ features = data.features,
+ script = data.script or "dflt",
+ language = data.language or "dflt",
+ direction = rlmode < 0 and "rtl" or "ltr",
+ textfile = tempfile,
+ fontfile = data.filename,
+ }
+ removefile(tempfile)
+ if result then
+ -- return jsontolua(result)
+ result = lpegmatch(pattern,result) -- { index cluster xo yo xa ya }
+ if rlmode < 0 then
+ return reverse(result) -- we can avoid this
+ else
+ return result
+ end
+ end
+ elseif reported then
+ report("no runner available")
+ reported = true
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-phb-imp-internal.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-phb-imp-internal.lmt
new file mode 100644
index 00000000000..fb2251abe40
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-phb-imp-internal.lmt
@@ -0,0 +1,160 @@
+if not modules then modules = { } end modules ['font-phb-imp-internal'] = {
+ version = 1.000, -- 2016.10.10,
+ comment = "companion to font-txt.mkiv",
+ original = "derived from font-phb-imp-library",
+ author = "Hans Hagen",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+}
+
+-- The hb library comes in versions and the one I tested in 2016 was part of the inkscape
+-- suite. In principle one can have incompatibilities due to updates but that is the nature
+-- of a library. When a library ie expected one has better use the system version, if only
+-- to make sure that different programs behave the same.
+--
+-- The main reason for testing this approach was that when Idris was working on his fonts,
+-- we wanted to know how different shapers deal with it and the hb command line program
+-- could provide uniscribe output. For the context shaper uniscribe is the reference, also
+-- because Idris started out with Volt a decade ago.
+--
+-- We treat the lib as a black box as it should be. At some point Kai Eigner made an ffi
+-- binding and that one was adapted to the plugin approach of context. It saved me the
+-- trouble of looking at source files to figure it all out. Below is the adapted code.
+--
+-- This is basically the ffi variant but with the hb function calls delegated to a simple
+-- runtime library. That library was a side effect of playing a day with delayed loading
+-- like ffi does in luametatex, which seems to work ok for what we call optional libraries
+-- in lmtx. I didn't really test the next code well (and will probably do that when Idris
+-- needs some comparison with uniscribe etc). There are nowadays probably other ways to do
+-- this but this is what we had and so we can keep the test code that has been around for
+-- a while (which is needed because some old articles need it.)
+--
+-- The following setup doesn't really fit into the way we set up internal libraries
+-- but if isn't used in the same sense anyway so we stick to what we already had in
+-- the ffi variant (also because it uses helpers here and we want to keep the client
+-- variant too). We don't need to be generic as other macro packages follow a different
+-- route.
+--
+-- Last time I checked "fiets" got no ligature with the "ot" shaper but it did get one
+-- with the "uniscribe" shaper ... somewhat puzzling .. but "effe" worked okay. Maybe
+-- there is some built-in heuristic interfering? When Idris an I tested fonts we had
+-- similar differences with arabic so maybe we miss a point here.
+--
+-- native font plugin > hb > string : fi-
+-- font plugin > hb > text : U+00066 U+00069 U+0002D
+-- font plugin > hb > result : U+00066 U+00069 U+0002D
+--
+-- uniscribe font plugin > hb > string : fi-
+-- font plugin > hb > text : U+00066 U+00069 U+0002D
+-- font plugin > hb > result : U+0FB01 U+0002D
+--
+-- native font plugin > hb > string : ets
+-- font plugin > hb > text : U+00065 U+00074 U+00073
+-- font plugin > hb > result : U+00065 U+00074 U+00073
+--
+-- uniscribe font plugin > hb > string : ets
+-- font plugin > hb > text : U+00065 U+00074 U+00073
+-- font plugin > hb > result : U+00065 U+00074 U+00073
+--
+-- native font plugin > hb > string : fiets
+-- font plugin > hb > text : U+00066 U+00069 U+00065 U+00074 U+00073
+-- font plugin > hb > result : U+00066 U+00069 U+00065 U+00074 U+00073
+--
+-- uniscribe font plugin > hb > string : fiets
+-- font plugin > hb > text : U+00066 U+00069 U+00065 U+00074 U+00073
+-- font plugin > hb > result : U+0FB01 U+00065 U+00074 U+00073
+
+local report = utilities.hb.report or print
+
+local hblib = optional and (optional.hb or optional.test)
+
+if not hblib then
+ report("no hblib found, you can try the ffi variant")
+ return
+end
+
+local hb_initialize = hblib.initialize
+local hb_getversion = hblib.getversion
+local hb_getshapers = hblib.getshapers
+local hb_loadfont = hblib.loadfont
+local hb_shapestring = hblib.shapestring
+
+if not hb_initialize then
+ report("no functions in hblib found, you can try the ffi variant")
+ return
+end
+
+local loaddata = io.loaddata
+local findlib = resolvers.findlib
+local concat = table.concat
+local utfchar = utf.char
+local packtoutf8 = utilities.hb.helpers.packtoutf8
+local packtoutf32 = utilities.hb.helpers.packtoutf32
+local report = utilities.hb.report or print
+local fontdata = fonts.hashes.identifiers
+local initialized = nil
+local loaded = { }
+local shared = { }
+local libname = os.name == "windows" and "libharfbuzz-0" or "libharfbuzz"
+
+local shapers = {
+ native = { "ot", "uniscribe", "fallback" },
+ uniscribe = { "uniscribe", "ot", "fallback" },
+ -- uniscribe = { "uniscribe", "fallback" }, -- stalls without fallback when no uniscribe present
+ fallback = { "fallback" },
+}
+
+local mode = 32
+
+function utilities.hb.methods.internal(font,data,rlmode,text,leading,trailing)
+ if initialized == nil then
+ local filename = findlib(libname)
+ initialized = hb_initialize(filename)
+ if initialized then
+ report("using hb library version %a, supported shapers: %,t",hb_getversion(),hb_getshapers())
+ else
+ report("unable to locate hb library")
+ initialize = false
+ end
+ end
+ if initialized then
+ local instance = loaded[font]
+ if instance == nil then
+ local tfmdata = fontdata[font]
+ local resources = tfmdata.resources
+ local filename = resources.filename
+ instance = shared[filename]
+ if instance == nil then
+ local wholefont = loaddata(filename)
+ if wholefont then
+ instance = hb_loadfont(font,wholefont)
+ end
+ if not instance then
+ instance = false
+ end
+ shared[filename] = instance
+ end
+ loaded[font] = instance
+ end
+ if instance then
+ if mode ==32 then
+ text = packtoutf32(text,leading,trailing)
+ else
+ text = packtoutf8(text,leading,trailing) -- doesn't work ok (no time not to figure it out)
+ end
+ local result = hb_shapestring (
+ instance,
+ data.script or "dflt",
+ data.language or "dflt",
+ rlmode < 0 and "rtl" or "ltr",
+ shapers[data.shaper] or shapers.native,
+ data.featureset or { },
+ text,
+ rlmode < 0,
+ mode
+ )
+ -- inspect(result)
+ return result
+ end
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-phb.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-phb.lmt
new file mode 100644
index 00000000000..67b068885b9
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-phb.lmt
@@ -0,0 +1,560 @@
+if not modules then modules = { } end modules ['font-phb'] = {
+ version = 1.000, -- 2016.10.10,
+ comment = "companion to font-txt.mkiv",
+ original = "derived from a prototype by Kai Eigner",
+ author = "Hans Hagen", -- so don't blame KE
+ copyright = "TAT Zetwerk / PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+}
+
+-- Some (historic) explanation can be found in the font-phb.lua file. To summarize:
+-- this code kind of old and originates from the times that Idris was making a font
+-- that should work with context and uniscribe. When we started with mkiv there were
+-- no libraries, but at some point Kai Eigner made an ffi interface to the harfbuzz
+-- library that showed up. His code was adapted to ConTeXt so that we could test
+-- Idris fonts (the library could use uniscribe which served as refeence for his
+-- fonts). Some experiences were was wrapped up in articles. Interesting was that
+-- sometimes context, uniscribe and/or native hb could not agree on how to interpret
+-- font features and subtle differences could occur.
+--
+-- This file is made from font-phb.lua and I stripped the components code because
+-- it made no sense. The files were eventually added because I did some cleanup and
+-- didn't want to carry old stuff around without also sort of maintaining it. I can
+-- probably strip away even more code. I might pick up this thread when Idris picks
+-- up his font making.
+--
+-- Todo: use the new (context) advance and offset features.
+
+local next, tonumber, pcall, rawget = next, tonumber, pcall, rawget
+
+local concat = table.concat
+local sortedhash = table.sortedhash
+local formatters = string.formatters
+
+local fonts = fonts
+local otf = fonts.handlers.otf
+local texthandler = otf.texthandler
+
+local fontdata = fonts.hashes.identifiers
+
+local nuts = nodes.nuts
+local tonode = nuts.tonode
+local tonut = nuts.tonut
+
+local remove_node = nuts.remove
+
+local getboth = nuts.getboth
+local getnext = nuts.getnext
+local setnext = nuts.setnext
+local getprev = nuts.getprev
+local setprev = nuts.setprev
+local getid = nuts.getid
+local getchar = nuts.getchar
+local setchar = nuts.setchar
+local setlink = nuts.setlink
+local setoffsets = nuts.setoffsets
+local getwidth = nuts.getwidth
+local setwidth = nuts.setwidth
+
+local copy_node = nuts.copy
+local find_tail = nuts.tail
+
+local nodepool = nuts.pool
+local new_kern = nodepool.fontkern
+local new_glyph = nodepool.glyph
+
+local nodecodes = nodes.nodecodes
+local glyph_code = nodecodes.glyph
+local glue_code = nodecodes.glue
+
+local skipped = {
+ -- we assume that only valid features are set but maybe we need a list
+ -- of valid hb features as there can be many context specific ones
+ mode = true,
+ features = true,
+ language = true,
+ script = true,
+}
+
+local seenspaces = {
+ [0x0020] = true,
+ [0x00A0] = true,
+ [0x0009] = true, -- indeed
+ [0x000A] = true, -- indeed
+ [0x000D] = true, -- indeed
+}
+
+-- helpers
+
+local helpers = { }
+local methods = { }
+local initialized = { } -- we don't polute the shared table
+
+local method = "internal" -- a bit misleading name: it's the optional module
+local shaper = "native" -- "uniscribe"
+local report = logs.reporter("font plugin","hb")
+
+utilities.hb = {
+ methods = methods,
+ helpers = helpers,
+ report = report,
+}
+
+do
+
+ local toutf8 = string.toutf8
+ local toutf32 = string.toutf32
+
+ function helpers.packtoutf8(text,leading,trailing)
+ if leading then
+ text[0] = 32
+ end
+ if trailing then
+ text[#text+1] = 32
+ end
+ return toutf8(text)
+ end
+
+ function helpers.packtoutf32(text,leading,trailing)
+ if leading then
+ text[0] = 32
+ end
+ if trailing then
+ text[#text+1] = 32
+ end
+ return toutf32(text)
+ end
+
+end
+
+local function initialize(font)
+
+ local tfmdata = fontdata[font]
+ local resources = tfmdata.resources
+ local shared = tfmdata.shared
+ local filename = resources.filename
+ local features = shared.features
+ local descriptions = shared.rawdata.descriptions
+ local characters = tfmdata.characters
+ local featureset = { }
+ local copytochar = shared.copytochar -- indextounicode
+ local spacewidth = nil -- unscaled
+ local factor = tfmdata.parameters.factor
+ local marks = resources.marks or { }
+
+ -- could be shared but why care about a few extra tables
+
+ if not copytochar then
+ copytochar = { }
+ -- let's make sure that we have an indexed table and not a hash
+ local max = 0
+ for k, v in next, descriptions do
+ if v.index > max then
+ max = v.index
+ end
+ end
+ for i=0,max do
+ copytochar[i] = i
+ end
+ -- the normal mapper
+ for k, v in next, descriptions do
+ copytochar[v.index] = k
+ end
+ shared.copytochar = copytochar
+ end
+
+ -- independent from loop as we have unordered hashes
+
+ if descriptions[0x0020] then
+ spacewidth = descriptions[0x0020].width
+ elseif descriptions[0x00A0] then
+ spacewidth = descriptions[0x00A0].width
+ end
+
+ for k, v in sortedhash(features) do
+ if #k > 4 then
+ -- unknown ones are ignored anyway but we can assume that the current
+ -- (and future) extra context features use more verbose names
+ elseif skipped[k] then
+ -- we don't want to pass language and such so we block a few features
+ -- explicitly
+ elseif v == "yes" or v == true then
+ featureset[#featureset+1] = k .. "=1" -- cf command line (false)
+ elseif v == "no" or v == false then
+ featureset[#featureset+1] = k .. "=0" -- cf command line (true)
+ elseif type(v) == "number" then
+ featureset[#featureset+1] = k .. "=" .. v -- cf command line (alternate)
+ else
+ -- unset
+ end
+ end
+
+ local data = {
+ language = features.language, -- do we need to uppercase and padd to 4 ?
+ script = features.script, -- do we need to uppercase and padd to 4 ?
+ features = #featureset > 0 and concat(featureset,",") or "", -- hash
+ featureset = #featureset > 0 and featureset or nil,
+ copytochar = copytochar,
+ spacewidth = spacewidth,
+ filename = filename,
+ marks = marks,
+ factor = factor,
+ characters = characters, -- the loaded font (we use its metrics which is more accurate)
+ method = features.method or method,
+ shaper = features.shaper or shaper,
+ }
+ initialized[font] = data
+ return data
+end
+
+-- In many cases this gives compatible output but especially with respect to spacing and user
+-- discretionaries that mix fonts there can be different outcomes. We also have no possibility
+-- to tweak and cheat. Of course one can always run a normal node mode pass with specific
+-- features first but then one can as well do all in node mode. So .. after a bit of playing
+-- around I redid this one from scratch and also added tracing.
+
+local trace_colors = false trackers.register("fonts.plugins.hb.colors", function(v) trace_colors = v end)
+local trace_details = false trackers.register("fonts.plugins.hb.details",function(v) trace_details = v end)
+local check_id = false
+
+local setcolor = nodes.tracers.colors.set
+local resetcolor = nodes.tracers.colors.reset
+
+table.setmetatableindex(methods,function(t,k)
+ local l = "font-phb-imp-" .. k .. ".lmt"
+ report("start loading method %a from %a",k,l)
+ dofile(resolvers.findfile(l))
+ local v = rawget(t,k)
+ if v then
+ report("loading method %a succeeded",k)
+ else
+ report("loading method %a failed",k)
+ v = function() return { } end
+ end
+ t[k] = v
+ return v
+end)
+
+local inandout do
+
+ local utfbyte = utf.byte
+ local utfchar = utf.char
+ local utf3208 = utf.utf32_to_utf8_le
+
+ inandout = function(text,result,first,last,copytochar)
+ local s = { }
+ local t = { }
+ local r = { }
+ local f = formatters["%05U"]
+ for i=1,#text do
+ local c = text[i]
+ -- t[#t+1] = f(utfbyte(utf3208(c)))
+ s[#s+1] = utfchar(c)
+ t[#t+1] = f(c)
+ end
+ for i=first,last do
+ r[#r+1] = f(copytochar[result[i][1]])
+ end
+ return s, t, r
+ end
+
+end
+
+local function harfbuzz(head,font,dynamic,rlmode,start,stop,text,leading,trailing)
+ local data = initialized[font]
+
+ if not data then
+ data = initialize(font)
+ end
+
+ if check_id then
+ if getid(start) ~= glyph_code then
+ report("error: start is not a glyph")
+ return head
+ elseif getid(stop) ~= glyph_code then
+ report("error: stop is not a glyph")
+ return head
+ end
+ end
+ local size = #text -- original text, without spaces
+ local result = methods[data.method](font,data,rlmode,text,leading,trailing)
+ local length = result and #result or 0
+
+ if length == 0 then
+ -- report("warning: no result")
+ return head
+ end
+
+ local factor = data.factor
+ local marks = data.marks
+ local spacewidth = data.spacewidth
+ local copytochar = data.copytochar
+ local characters = data.characters
+
+ -- the text analyzer is only partially clever so we must assume that we get
+ -- inconsistent lists
+
+ -- we could check if something has been done (replacement or kern or so) but
+ -- then we pass around more information and need to check a lot and spaces
+ -- are kind of spoiling that game (we need a different table then) .. more
+ -- pain than gain
+
+ -- we could play with 0xFFFE as boundary
+
+ local current = start
+ local prev = nil
+ local glyph = nil
+
+ local first = 1
+ local last = length
+ local next = nil -- todo: keep track of them
+ local prev = nil -- todo: keep track of them
+
+ if leading then
+ first = first + 1
+ end
+ if trailing then
+ last = last - 1
+ end
+
+ local position = first
+ local cluster = 0
+ local glyph = nil
+ local index = 0
+ local count = 1
+ local saved = nil
+
+ if trace_details then
+ report("start run, original size: %i, result index: %i upto %i",size,first,last)
+ local s, t, r = inandout(text,result,first,last,copytochar)
+ report("method : %s",data.method)
+ report("shaper : %s",data.shaper)
+ report("string : %t",s)
+ report("text : % t",t)
+ report("result : % t",r)
+ end
+
+ -- okay, after some experiments, it became clear that more complex code aimed at
+ -- optimization doesn't pay off as complexity also demands more testing
+
+ for i=first,last do
+ local r = result[i]
+ local unicode = copytochar[r[1]] -- can be private of course
+ --
+ cluster = r[2] + 1 -- starts at zero
+ --
+ if position == cluster then
+ if i == first then
+ index = 1
+ if trace_details then
+ report("[%i] position: %i, cluster: %i, index: %i, starting",i,position,cluster,index)
+ end
+ else
+ index = index + 1
+ if trace_details then
+ report("[%i] position: %i, cluster: %i, index: %i, next step",i,position,cluster,index)
+ end
+ end
+ elseif position < cluster then
+ -- a new cluster
+ current = getnext(current)
+ position = position + 1
+ size = size - 1
+ for p=position,cluster-1 do
+ head, current = remove_node(head,current,true)
+ if trace_details then
+ report("[%i] position: %i, cluster: %i, index: -, removing node",i,p,cluster)
+ end
+ size = size - 1
+ end
+ position = cluster
+ index = 1
+ glyph = nil
+ if trace_details then
+ report("[%i] position: %i, cluster: %i, index: %i, arriving",i,cluster,position,index)
+ end
+ else -- maybe a space got properties
+ if trace_details then
+ report("position: %i, cluster: %i, index: %i, quitting due to fatal inconsistency",position,cluster,index)
+ end
+ return head
+ end
+ local copied = false
+ if glyph then
+ if trace_details then
+ report("[%i] position: %i, cluster: %i, index: %i, copying glyph, unicode %U",i,position,cluster,index,unicode)
+ end
+ local g = copy_node(glyph)
+ if trace_colors then
+ resetcolor(g)
+ end
+ setlink(current,g,getnext(current))
+ current = g
+ copied = true
+ else
+ if trace_details then
+ report("[%i] position: %i, cluster: %i, index: %i, using glyph, unicode %U",i,position,cluster,index,unicode)
+ end
+ glyph = current
+ end
+ --
+ if not current then
+ if trace_details then
+ report("quitting due to unexpected end of node list")
+ end
+ return head
+ end
+ --
+ local id = getid(current)
+ if id ~= glyph_code then
+ if trace_details then
+ report("glyph expected in node list")
+ end
+ return head
+ end
+ --
+ -- really, we can get a tab (9), lf (10), or cr(13) back in cambria .. don't ask me why
+ --
+ local prev, next = getboth(current)
+ --
+ -- assign glyph: first in run
+ --
+ setchar(current,unicode)
+ if trace_colors then
+ count = (count == 8) and 1 or count + 1
+ setcolor(current,"trace:"..count)
+ end
+ --
+ local x_offset = r[3] -- r.dx
+ local y_offset = r[4] -- r.dy
+ local x_advance = r[5] -- r.ax
+ ----- y_advance = r[6] -- r.ay
+ local left = 0
+ local right = 0
+ local dx = 0
+ local dy = 0
+ if trace_details then
+ if x_offset ~= 0 or y_offset ~= 0 or x_advance ~= 0 then -- or y_advance ~= 0
+ report("[%i] position: %i, cluster: %i, index: %i, old, xoffset: %p, yoffset: %p, xadvance: %p, width: %p",
+ i,position,cluster,index,x_offset*factor,y_offset*factor,x_advance*factor,characters[unicode].width)
+ end
+ end
+ if y_offset ~= 0 then
+ dy = y_offset * factor
+ end
+ if rlmode >= 0 then
+ -- l2r marks and rest
+ if x_offset ~= 0 then
+ dx = x_offset * factor
+ end
+ local width = characters[unicode].width
+ local delta = x_advance * factor
+ if delta ~= width then
+ -- right = -(delta - width)
+ right = delta - width
+ end
+ elseif marks[unicode] then -- why not just the next loop
+ -- r2l marks
+ if x_offset ~= 0 then
+ dx = -x_offset * factor
+ end
+ else
+ -- r2l rest
+ local width = characters[unicode].width
+ local delta = (x_advance - x_offset) * factor
+ if delta ~= width then
+ left = delta - width
+ end
+ if x_offset ~= 0 then
+ right = x_offset * factor
+ end
+ end
+ if copied or dx ~= 0 or dy ~= 0 then
+ setoffsets(current,dx,dy)
+ end
+ if left ~= 0 then
+ setlink(prev,new_kern(left),current) -- insertbefore
+ if current == head then
+ head = prev
+ end
+ end
+ if right ~= 0 then
+ local kern = new_kern(right)
+ setlink(current,kern,next)
+ current = kern
+ end
+ if trace_details then
+ if dy ~= 0 or dx ~= 0 or left ~= 0 or right ~= 0 then
+ report("[%i] position: %i, cluster: %i, index: %i, new, xoffset: %p, yoffset: %p, left: %p, right: %p",i,position,cluster,index,dx,dy,left,right)
+ end
+ end
+ end
+ --
+ if trace_details then
+ report("[-] position: %i, cluster: %i, index: -, at end",position,cluster)
+ end
+ if size > 1 then
+ current = getnext(current)
+ for i=1,size-1 do
+ if trace_details then
+ report("[-] position: %i + %i, cluster: -, index: -, removing node",position,i)
+ end
+ head, current = remove_node(head,current,true)
+ end
+ end
+ --
+ -- We see all kind of interesting spaces come back (like tabs in cambria) so we do a bit of
+ -- extra testing here.
+ --
+ if leading then
+ local r = result[1]
+ local unicode = copytochar[r[1]]
+ if seenspaces[unicode] then
+ local x_advance = r[5]
+ local delta = x_advance - spacewidth
+ if delta ~= 0 then
+ -- nothing to do but jump one slot ahead
+ local prev = getprev(start)
+ if getid(prev) == glue_code then
+ local dx = delta * factor
+ setwidth(prev,getwidth(prev) + dx)
+ if trace_details then
+ report("compensating leading glue by %p due to codepoint %U",dx,unicode)
+ end
+ else
+ report("no valid leading glue node")
+ end
+ end
+ end
+ end
+ --
+ if trailing then
+ local r = result[length]
+ local unicode = copytochar[r[1]]
+ if seenspaces[unicode] then
+ local x_advance = r[5]
+ local delta = x_advance - spacewidth
+ if delta ~= 0 then
+ local next = getnext(stop)
+ if getid(next) == glue_code then
+ local dx = delta * factor
+ setwidth(next,getwidth(next) + dx)
+ if trace_details then
+ report("compensating trailing glue by %p due to codepoint %U",dx,unicode)
+ end
+ else
+ report("no valid trailing glue node")
+ end
+ end
+ end
+ end
+ --
+ if trace_details then
+ report("run done")
+ end
+ return head
+end
+
+otf.registerplugin("harfbuzz",function(head,font,dynamic,direction)
+ return texthandler(head,font,dynamic,direction,harfbuzz)
+end)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-pre.mkxl b/Master/texmf-dist/tex/context/base/mkxl/font-pre.mkxl
index e6e6930e1a8..701362dced2 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-pre.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-pre.mkxl
@@ -47,12 +47,21 @@
%
% dtls flac :math
+%D The missing feature:
+%D
+%D \starttyping
+%D \ruledhbox{\char"2012}\par % figuredash
+%D \ruledhbox{0}\par
+%D \stoptyping
+
\definefontfeature
[always]
[mode=node, % we had 'auto', but let's try 'node' for a while and see what the impact is
script=auto, % on speed; 'base' just doesn't play well with dynamics; some day we can even
autoscript=position,
autolanguage=position,
+ textcontrol=collapsehyphens,
+ checkmissing=yes,
kern=yes, % consider skipping the base passes when no base mode is used
mark=yes,
mkmk=yes,
@@ -61,14 +70,24 @@
\definefontfeature
[default]
[always]
- [liga=yes,
-% ccmp=yes, % maybe too
-% locl=yes, % maybe too
-% calt=yes, % maybe too
-% clig=yes, % maybe too
-% rlig=yes, % maybe too
- tlig=yes,
- trep=yes] % texligatures=yes,texquotes=yes
+ [liga=yes]
+
+ % ccmp=yes, % maybe too
+ % locl=yes, % maybe too
+ % calt=yes, % maybe too
+ % clig=yes, % maybe too
+ % rlig=yes, % maybe too
+ % tlig=yes, % no longer default (texligatures=yes)
+ % trep=yes, % no longer default (texquotes=yes)
+
+% if needed users can add this to a local cont-loc.mkxl in texmf-local:
+
+% \definefontfeature
+% [default]
+% [default]
+% [textcontrol=,
+% tlig=yes,
+% trep=yes]
\definefontfeature
[original] % a clone of default so we can revert
@@ -77,17 +96,13 @@
\definefontfeature
[smallcaps]
[always]
- [smcp=yes,
- tlig=yes,
- trep=yes] % texligatures=yes,texquotes=yes
+ [smcp=yes]
\definefontfeature
[oldstyle]
[always]
[onum=yes,
- liga=yes,
- tlig=yes,
- trep=yes] % texligatures=yes,texquotes=yes
+ liga=yes]
\definefontfeature
[inlinenumbers]
@@ -114,9 +129,7 @@
\definefontfeature % == default unless redefined
[ligatures]
[always]
- [liga=yes,
- tlig=yes,
- trep=yes]
+ [liga=yes]
\definefontfeature
[letterspacing]
@@ -131,20 +144,15 @@
[complete]
[always]
[compose=yes,
- liga=yes,
-% ccmp=yes,
-% locl=yes,
-% calt=yes,
-% clig=yes,
-% rlig=yes,
- tlig=yes,
- trep=yes]
+ liga=yes]
\definefontfeature
[none]
[mode=none,
features=no]
+% \definefontfeature[none][none][textcontrol=collapsehyphens]
+
\definefontfeature
[semitic-complete]
[mode=node,analyze=yes,language=dflt,ccmp=yes,
@@ -171,7 +179,7 @@
\definefontfeature
[syriac]
[arabic]
- [fin2=yes,fin3=yes,med2=yes]
+ [fin2=yes,fin3=yes,med2=yes] % script=syrc
\definefontfeature
[reordercombining]
@@ -193,13 +201,18 @@
[semitic-simple]
[script=hebr]
-% indic
+% indic:
+%
+% conjuncts : auto | continue | quit (default)
+% movematra : auto | leftbeforebase | default
\definefontfeature
[indic-common]
[mode=node,
language=dflt,
% localized
+ indic=auto, % we need to handle fuzzy fonts
+ % localized
locl=yes,
% positioning
kern=yes,
@@ -398,74 +411,38 @@
[mathematics]
[mode=base,
% mode=none, % better, maybe do this last
- kern=yes,
- % liga=yes, % makes no sense
- % tlig=yes, % makes no sense
- % trep=yes, % makes no sense
- mathnolimitsmode={0,800}, % this looks okay on the average font
+ kern=yes, % =force
+ % flac=yes, % handled differently
+ % liga=yes, % makes no sense
mathalternates=yes,
- mathitalics=yes, % we pass them
- mathdimensions=all,
+ % mathitalics=yes, % we pass them
+ % mathdimensions=all,
% mathkerns=yes,
% staircase=yes,
compactmath=yes,
+ flattenaccents=yes,
% mathgaps=yes,
+ mathexpansion=math,
language=dflt,
script=math]
-\definefontfeature
- [oldmath]
- [oldmath=yes]
-
\ifdefined\mathnolimitsmode
\mathnolimitsmode\plusone % font driven (only opentype)
\fi
-\mathitalicsmode\plusone % 1 : add to simple noad
-%mathitalicsmode\plusthree % 2 : add italic kerns for diagnostics
-
-% \adaptfontfeature[*math*][mathnolimitsmode=1000] % only subscript
+% \ifdefined\variablefam
+% \variablefam 63
+% \fi
\definefontfeature
- [mathematics-l2r]
- [mathematics]
- []
+ [collapseitalics]
+ [collapseitalics=yes]
-\definefontfeature
- [mathematics-r2l]
- [mathematics]
- [rtlm=yes,
- locl=yes]
+\definefontfeature[virtualmath] [mathematics]
-\definefontfeature[virtualmath] [mathematics]
-\definefontfeature[virtualmath-l2r] [mathematics-l2r]
-\definefontfeature[virtualmath-r2l] [mathematics-r2l]
-
-\definefontfeature[math-text] [mathematics] [ssty=no]
-\definefontfeature[math-script] [mathematics] [ssty=1,mathsize=yes]
-\definefontfeature[math-scriptscript] [mathematics] [ssty=2,mathsize=yes]
-
-\definefontfeature[math-text-l2r] [mathematics-l2r] [ssty=no]
-\definefontfeature[math-script-l2r] [mathematics-l2r] [ssty=1,mathsize=yes]
-\definefontfeature[math-scriptscript-l2r] [mathematics-l2r] [ssty=2,mathsize=yes]
-
-\definefontfeature[math-text-r2l] [mathematics-r2l] [ssty=no]
-\definefontfeature[math-script-r2l] [mathematics-r2l] [ssty=1,mathsize=yes]
-\definefontfeature[math-scriptscript-r2l] [mathematics-r2l] [ssty=2,mathsize=yes]
-
-% this will go away: could be a mode in the engine
-
-\definefontfeature[math-nostack-text] [math-text] [nostackmath=yes]
-\definefontfeature[math-nostack-script] [math-script] [nostackmath=yes]
-\definefontfeature[math-nostack-scriptscript][math-scriptscript][nostackmath=yes]
-
-% \definefontfeature[mathtext] [math-text]
-% \definefontfeature[mathscript] [math-script]
-% \definefontfeature[mathscriptscript] [math-scriptscript]
-
-% \definefontfeature
-% [missing]
-% [missing=yes]
+\definefontfeature[math-text] [mathematics] [ssty=no]
+\definefontfeature[math-script] [mathematics] [ssty=1]
+\definefontfeature[math-scriptscript] [mathematics] [ssty=2]
%D Nice to have too:
@@ -486,6 +463,27 @@
% [boldened]
% [extend=1.2]
+%D Tweaks:
+%D
+%D \starttyping
+%D \setupbodyfont[dejavu]
+%D
+%D \starttext
+%D \startTEXpage[align={tolerant,stretch},offset=1ex]
+%D {\addff{camelcasing} \samplefile{tufte}\par}
+%D {\addff{uppercasing} \samplefile{tufte}\par}
+%D {\addff{lowercasing} \samplefile{tufte}\par}
+%D {\addff{primes} 123'345''\par}
+%D \stopTEXpage
+%D \stoptext
+%D \stoptyping
+
+\definefontfeature[primes] [primes=yes] % text
+\definefontfeature[uppercasing][uppercasing=yes]
+\definefontfeature[lowercasing][lowercasing=yes]
+\definefontfeature[camelcasing][camelcasing=yes]
+\definefontfeature[tabledigits][tabledigits=yes,tnum=yes]
+
%D Neat:
% By eye:
@@ -863,6 +861,12 @@
\permanent\protected\def\setsuperiors{\doaddfeature{f:superiors}}
\permanent\protected\def\setfractions{\doaddfeature{f:fractions}}
+\permanent\protected\def\resetsmallcaps{\dosubtractfeature{f:smallcaps}}
+\permanent\protected\def\resetoldstyle {\dosubtractfeature{f:oldstyle}}
+\permanent\protected\def\resettabular {\dosubtractfeature{f:tabular}}
+\permanent\protected\def\resetsuperiors{\dosubtractfeature{f:superiors}}
+\permanent\protected\def\resetfractions{\dosubtractfeature{f:fractions}}
+
% \permanent\protected\def\frc#1#2%
% {\dontleavehmode
% \begingroup
@@ -899,15 +903,22 @@
\pushoverloadmode
-\let\infofont \relax
-\let\infofontbold \relax
-\let\smallinfofont \relax
-\let\smallinfofontbold\relax
+% \let\infofont \relax
+% \let\infofontbold \relax
+% \let\smallinfofont \relax
+% \let\smallinfofontbold\relax
+%
+% \definefont[infofont] [file:dejavusansmono*none at 6pt]
+% \definefont[infofontbold] [file:dejavusansmono-bold*none at 6pt]
+% \definefont[smallinfofont] [file:dejavusansmono*none at 3pt]
+% \definefont[smallinfofontbold][file:dejavusansmono-bold*none at 3pt]
+%
+% after testing for quite a while moved from cont-loc.mkxl
-\definefont[infofont] [file:dejavusansmono*none at 6pt]
-\definefont[infofontbold] [file:dejavusansmono-bold*none at 6pt]
-\definefont[smallinfofont] [file:dejavusansmono*none at 3pt]
-\definefont[smallinfofontbold][file:dejavusansmono-bold*none at 3pt]
+\protected\def\infofont {\definefrozenfont[infofont] [file:dejavusansmono*none at 6pt]\infofont}
+\protected\def\infofontbold {\definefrozenfont[infofontbold] [file:dejavusansmono-bold*none at 6pt]\infofontbold}
+\protected\def\smallinfofont {\definefrozenfont[smallinfofont] [file:dejavusansmono*none at 3pt]\smallinfofont}
+\protected\def\smallinfofontbold{\definefrozenfont[smallinfofontbold][file:dejavusansmono-bold*none at 3pt]\smallinfofontbold}
%D Optimization (later we overload in math). Also needed in order to get \type {\ss}
%D properly defined.
@@ -940,11 +951,9 @@
\startsetups experiment:fonts:compact
\settrue\c_font_compact
-
% \definefontfeature[virtualmath] [mathematics] [compactmath=yes]
% \definefontfeature[virtualmath-l2r] [mathematics-l2r][compactmath=yes]
% \definefontfeature[virtualmath-r2l] [mathematics-r2l][compactmath=yes]
-
% \definefontfeature[math-text] [mathematics] [compactmath=yes]
% \definefontfeature[math-script] [mathematics] [compactmath=yes]
% \definefontfeature[math-scriptscript] [mathematics] [compactmath=yes]
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-sel.mklx b/Master/texmf-dist/tex/context/base/mkxl/font-sel.mklx
index a25b7fab7c5..9e5c53894e1 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-sel.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-sel.mklx
@@ -269,7 +269,7 @@
\edef\currentselectfont{\expandnamespacevalue\??fontshortstyle{#style}\s!rm}%
\setupcurrentselectfont[#settings]%
\else
- \let\currentselectfont\empty
+ \lettonothing\currentselectfont
\setupcurrentselectfont[#style]%
\fi}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-set.mklx b/Master/texmf-dist/tex/context/base/mkxl/font-set.mklx
index fd6a2f1ff51..421217c8b98 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-set.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-set.mklx
@@ -34,7 +34,7 @@
% \enablemode[lmmath]
-\let\m_font_fallback_name\empty
+\lettonothing\m_font_fallback_name
% keep as reference:
%
@@ -43,10 +43,14 @@
% \clf_resetnullfont % in luatex 0.70 this will also do the previous
% \glet\font_preloads_reset_nullfont\relax}
+% \def\font_preload_check_mode
+% {\doifelsemode{lmmath}
+% {\def\m_font_fallback_name{modern-designsize-virtual}}% this will stay
+% {\def\m_font_fallback_name{modern-designsize}}% % this might become 'modern'
+% \glet\font_preload_check_mode\relax}
+
\def\font_preload_check_mode
- {\doifelsemode{lmmath}
- {\def\m_font_fallback_name{modern-designsize-virtual}}% this will stay
- {\def\m_font_fallback_name{modern-designsize}}% % this might become 'modern'
+ {\def\m_font_fallback_name{modern}%
\glet\font_preload_check_mode\relax}
\def\font_preload_default_fonts
@@ -88,7 +92,7 @@
{\glet\font_preload_default_fonts_tt\relax
\glet\font_preload_default_fonts_mm\relax
\glet\font_preloads_third_stage \relax
-% \glet\font_preloads_fourth_stage \relax
+ \glet\font_preloads_fourth_stage \relax
}
\def\font_preloads_zero_stage_indeed
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-sol.mklx b/Master/texmf-dist/tex/context/base/mkxl/font-sol.mklx
index 8f3d3d712cb..064f39b9d1d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-sol.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-sol.mklx
@@ -107,11 +107,11 @@
}%
\relax}
-\let\currentfontsolution\empty
+\lettonothing\currentfontsolution
\permanent\protected\def\resetfontsolution % resets all
{\clf_resetfontsolution
- \let\currentfontsolution\empty}
+ \lettonothing\currentfontsolution}
\permanent\protected\def\startfontsolution % [#1]
{\pushmacro\currentfontsolution
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-sty.mklx b/Master/texmf-dist/tex/context/base/mkxl/font-sty.mklx
index 503356a4a88..49fa52d3882 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-sty.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-sty.mklx
@@ -142,8 +142,8 @@
%D These commands are not grouped! Grouping is most probably done by the calling
%D macro's and would lead to unnecessary overhead.
-\let\m_current_convert_font \empty
-\let\m_current_convert_font_dt\empty
+\lettonothing\m_current_convert_font
+\lettonothing\m_current_convert_font_dt
\permanent\protected\def\doconvertfont#specification% takes second argument / this command is obsolete
{\edef\m_current_convert_font{#specification}%
@@ -180,7 +180,7 @@
\setfalse\fontattributeisset
-\mutable\let\currentdetokenizedstyleparameter\empty
+\mutable\lettonothing\currentdetokenizedstyleparameter
\permanent\protected\def\dousestyleparameter#value%
{\edef\currentstyleparameter{#value}%
@@ -231,12 +231,12 @@
\c!method=\v!command]
\appendtoks
- \letvalue{\??stylecheck\currentstyle}\relax
+ \letcsname\??stylecheck\currentstyle\endcsname\relax
\edef\p_method{\styleparameter\c!method}%
\ifx\p_method\v!command
- \frozen\instance\setuevalue{\e!start\currentstyle}{\font_styles_apply_start{\currentstyle}}%
- \frozen\instance\setuevalue{\e!stop \currentstyle}{\font_styles_apply_stop}%
- \frozen\instance\setuevalue {\currentstyle}{\font_styles_apply_grouped{\currentstyle}}% no longer groupedcommand here
+ \frozen\instance\protected\edefcsname\e!start\currentstyle\endcsname{\font_styles_apply_start{\currentstyle}}%
+ \frozen\instance\protected\edefcsname\e!stop \currentstyle\endcsname{\font_styles_apply_stop}%
+ \frozen\instance\protected\edefcsname \currentstyle\endcsname{\font_styles_apply_grouped{\currentstyle}}% no longer groupedcommand here
\fi
\to \everydefinestyle
@@ -248,7 +248,7 @@
{\endgroup}
\protected\def\font_styles_apply_grouped#name% assumes that the next is { or \bgroup
- {\bgroup
+ {\bgroup % \beginsimplegroup
\def\currentstyle{\font_styles_use_defined{#name}}%
\afterassignment\currentstyle
\let\nexttoken}
@@ -259,8 +259,8 @@
\protected\def\font_styles_use_generic#specification%
{\let\currentstyle\s!unknown % reasonable generic tag
- \letstyleparameter\c!style\empty
- \letstyleparameter\c!color\empty
+ \resetstyleparameter\c!style
+ \resetstyleparameter\c!color
\setupcurrentstyle[#specification]%
\usestylestyleandcolor\c!style\c!color}
@@ -281,20 +281,20 @@
\fi
\endcsname{#name}}
-\setvalue{\??styleargument1}#name%
+\defcsname\??styleargument1\endcsname#name%
{\expandafter\triggergroupedcommandcs\begincsname#name\endcsname}
-\setvalue{\??styleargument2}#name%
+\defcsname\??styleargument2\endcsname#name%
{\triggergroupedcommand{\font_styles_use_defined{#name}}} % or {\font_styles_apply_grouped{#name}}
-\setvalue{\??styleargument3}#specification%
+\defcsname\??styleargument3\endcsname#specification%
{\doifelseassignment{#specification}\font_styles_assignment\font_styles_direct{#specification}}
-\setvalue{\??styleargument4}#name%
+\defcsname\??styleargument4\endcsname#name%
{\expandafter\triggergroupedcommandcs\begincsname\??stylehack#name\endcsname}
-\setvalue{\??stylehack\s!math}% dirty trick
- {\groupedcommand\normalstartimath\normalstopimath}
+\defcsname\??stylehack\s!math\endcsname% dirty trick
+ {\groupedcommandcs\normalstartimath\normalstopimath}
% \def\font_styles_assignment#specification{\groupedcommand{\font_styles_use_generic{#specification}}{}}
% \def\font_styles_direct #specification{\groupedcommand{\definedfont[#specification]}{}}
@@ -322,13 +322,13 @@
{\endgroup
\autoinsertnextspace} % will be configurable, maybe also in \definestartstop
-\setvalue{\??styleenvironment1}#name%
+\defcsname\??styleenvironment1\endcsname#name%
{\csname#name\endcsname}
-\setvalue{\??styleenvironment2}#name%
+\defcsname\??styleenvironment2\endcsname#name%
{\font_styles_use_defined{#name}}
-\setvalue{\??styleenvironment3}#specification%
+\defcsname\??styleenvironment3\endcsname#specification%
{\doifelseassignment{#specification}\font_styles_start_assignment\font_styles_start_direct{#specification}}
\def\font_styles_start_assignment#specification{\font_styles_use_generic{#specification}}
@@ -346,6 +346,12 @@
% {\bf test \mine test \sl test \mine test \bs oeps \mine oeps {\tt test \mine \bf test}}
+% too messy for this:
+%
+% \definestylecollection[mine]
+% \definestyleinstance[mine][tt][tf][\nohyphencollapsing]
+% {\tt\mine test--test \bf test--test}
+
\installcorenamespace{stylecollection}
\permanent\tolerant\protected\def\definestylecollection[#name]%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-sym.mklx b/Master/texmf-dist/tex/context/base/mkxl/font-sym.mklx
index c908ad849d3..9e6482c8dd7 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-sym.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-sym.mklx
@@ -56,19 +56,17 @@
% potential generalization:
%
-% \letvalue{\??fontfile:t:\s!rm}\s!Serif
-% \letvalue{\??fontfile:t:\s!ss}\s!Sans
-% \letvalue{\??fontfile:t:\s!tt}\s!Mono
-%
-% \letvalue{\??fontfile:a:\s!rm}\s!Regular
-% \letvalue{\??fontfile:a:\s!ss}\s!Support
-% \letvalue{\??fontfile:a:\s!tt}\s!Type
-%
-% \letvalue{\??fontfile:s:\s!bf}\s!Bold
-% \letvalue{\??fontfile:s:\s!sl}\s!Slanted
-% \letvalue{\??fontfile:s:\s!it}\s!Italic
-% \letvalue{\??fontfile:s:\s!bs}\s!BoldSlanted
-% \letvalue{\??fontfile:s:\s!bi}\s!BoldItalic
+% \letcsname\??fontfile:t:\s!rm\endcsname\s!Serif
+% \letcsname\??fontfile:t:\s!ss\endcsname\s!Sans
+% \letcsname\??fontfile:t:\s!tt\endcsname\s!Mono
+% \letcsname\??fontfile:a:\s!rm\endcsname\s!Regular
+% \letcsname\??fontfile:a:\s!ss\endcsname\s!Support
+% \letcsname\??fontfile:a:\s!tt\endcsname\s!Type
+% \letcsname\??fontfile:s:\s!bf\endcsname\s!Bold
+% \letcsname\??fontfile:s:\s!sl\endcsname\s!Slanted
+% \letcsname\??fontfile:s:\s!it\endcsname\s!Italic
+% \letcsname\??fontfile:s:\s!bs\endcsname\s!BoldSlanted
+% \letcsname\??fontfile:s:\s!bi\endcsname\s!BoldItalic
%
% \def\v_font_string_a{\executeifdefined{\??fontfile:t:\fontstyle}\s!Serif}
% \def\v_font_string_a{\executeifdefined{\??fontfile:t:\fontstyle}\s!Serif}
@@ -129,9 +127,9 @@
\installcorenamespace{symbolfont}
-\mutable\let\skedsymbolfont \empty % for diagnostics
-\mutable\let\currentsymbolfont\empty
-\mutable\let\askedsymbolfont \empty
+\mutable\lettonothing\skedsymbolfont % for diagnostics
+\mutable\lettonothing\currentsymbolfont
+\mutable\lettonothing\askedsymbolfont
\permanent\protected\def\setscaledstyledsymbolicfont#1#2#3% quite a slowdown, glyphfontfile
{\edef\askedsymbolfont{\truefontname{\glyphfontfile{#3}} at \the\dimexpr#2\dimexpr\currentfontbodyscale\dimexpr#1}%
@@ -170,6 +168,17 @@
\currentsymbolfont
\gletcsname\??symbolfont\askedsymbolfont\endcsname\lastrawfontcall}
+% \definefontfeature[colored][colr=yes]
+% \definefontsynonym[flags][file:BabelStoneFlagsDual.ttf*colored]
+% \definesymbol[BR][{\getnamedglyphdirect {flags}{br}}]
+% \definesymbol[PT][{\getnamedglyphdirect {flags}{pt}}]
+% \definesymbol[BR][{\getnamedglyphdirectscaled{.7}{flags}{br}}]
+% \definesymbol[PT][{\getnamedglyphdirectscaled{.7}{flags}{pt}}]
+%
+% \def\glyphscaled#1{\cldcontext{math.floor(\the\glyphscale*#1)}\relax}
+% \definesymbol[BR][{\glyphscale\glyphscaled{.7}\getnamedglyphdirect{flags}{br}}]
+% \definesymbol[PT][{\glyphscale\glyphscaled{.7}\getnamedglyphdirect{flags}{pt}}]
+
\permanent\protected\def\getnamedglyphstyled#fontname#character{{\setstyledsymbolicfont{#fontname}\clf_fontchar{#character}}}
\permanent\protected\def\getnamedglyphdirect#fontname#character{{\setdirectsymbolicfont{#fontname}\clf_fontchar{#character}}}
\permanent\protected\def\getglyphstyled #fontname#character{{\setstyledsymbolicfont{#fontname}\doifelsenumber{#character}\char\donothing#character}}
@@ -177,6 +186,9 @@
\permanent\protected\def\resolvedglyphstyled#fontname#character{{\setstyledsymbolicfont{#fontname}\clf_tochar{#character}}}
\permanent\protected\def\resolvedglyphdirect#fontname#character{{\setdirectsymbolicfont{#fontname}\clf_tochar{#character}}}
+\permanent\protected\def\getnamedglyphdirectscaled#scale#fontname#character%
+ {{\setscaleddirectsymbolicfont\fontbody{#scale}{#fontname}\clf_fontchar{#character}}}
+
% this one is wrong:
\permanent\protected\def\getscaledglyph#scale#name#content%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-tex.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-tex.lmt
index c960953a700..2d21687df7e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-tex.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-tex.lmt
@@ -6,22 +6,23 @@ if not modules then modules = { } end modules ['font-mpf'] = {
license = "see context related readme files"
}
-local formatters = string.formatters
-local sortedhash = table.sortedhash
+local formatters = string.formatters
+local sortedhash = table.sortedhash
-local addcharacters = fonts.constructors.addcharacters
-local fontdata = fonts.hashes.identifiers
+local addcharacters = fonts.constructors.addcharacters
+local fontdata = fonts.hashes.identifiers
+local fontchars = fonts.hashes.characters
-local otf = fonts.handlers.otf
-local otfregister = otf.features.register
+local otf = fonts.handlers.otf
+local otfregister = otf.features.register
------ getshapes = fonts.dropins.getshapes
+----- getshapes = fonts.dropins.getshapes
-local register = fonts.collections.register
-local checkenabled = fonts.collections.checkenabled
-local newprivateslot = fonts.helpers.newprivateslot
+local register = fonts.collections.register
+local checkenabled = fonts.collections.checkenabled
+local newprivateslot = fonts.helpers.newprivateslot
-local currentfont = font.current
+local currentfont = font.current
-- hm, seems to gobble the first \char
@@ -34,7 +35,7 @@ local function makeglyphbox(char,spec)
width = b.width,
height = b.height,
depth = b.depth,
- objnum = tex.saveboxresource(b,nil,nil,true),
+ objnum = tex.boxresources.save(b,nil,nil,true),
}
end
@@ -84,6 +85,32 @@ local function setboxglyph(specification)
end
end
+local function setboxdirectly(font,unicode,box) -- hash based on wd/ht/dp
+ if box then
+ local tfmdata = fontdata[font]
+ local glyphboxes = (tfmdata.glyphboxes or 0) + 1
+ tfmdata.glyphboxes = glyphboxes
+ local private = newprivateslot(formatters["BG:%05X"](glyphboxes))
+ local newdata = {
+ width = box.width or 0,
+ height = box.height or 0,
+ depth = box.depth or 0,
+ unicode = unicode,
+ objnum = tex.boxresources.save(box,nil,nil,true),
+ }
+ local specification = {
+ code = newdata
+ }
+ tfmdata.characters[private] = newdata
+ addcharacters(font, { characters = { [private] = newdata } })
+ fonts.dropins.swapone("box",tfmdata,specification,private)
+ checkenabled()
+ return private
+ end
+end
+
+fonts.helpers.setboxdirectly = setboxdirectly
+
local boxes = table.setmetatableindex("table")
function fonts.helpers.registerglyphbox(specification)
@@ -158,3 +185,34 @@ fonts.handlers.otf.features.register {
-- fonts.helpers.registerboxglyph { category = "demo", unicode = 104 }
-- fonts.helpers.registerboxglyph { category = "demo", unicode = 105 }
-- fonts.helpers.registerboxglyph { category = "demo", unicode = 106 }
+
+local callbacks = fonts.callbacks or { }
+fonts.callbacks = callbacks
+
+function callbacks.devirtualize(chardata,f,c)
+ if chardata.commands then
+ local h = node.hpack(nodes.pool.glyph(f,c))
+ local p = setboxdirectly(f,c,h)
+ chardata.oldcommands = chardata.commands
+ chardata.commands = { { "char", p } }
+ chardata.callback = false
+ end
+end
+
+local function processcallback(f,c)
+ local characters = fontchars[f]
+ local chardata = characters[c]
+ if chardata then
+ local callback = chardata.callback
+ if callback then
+ local action = type(callback) == "function" and callback or callbacks[callback]
+ if action then
+ action(chardata,f,c)
+ end
+ end
+ end
+end
+
+callback.register("process_character",processcallback)
+
+callbacks.callback = processcallback
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-tfm.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-tfm.lmt
new file mode 100644
index 00000000000..9fce8fc5fae
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-tfm.lmt
@@ -0,0 +1,682 @@
+if not modules then modules = { } end modules ['font-tfm'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+if not context then return end -- use luatex-fonts-tfm.lua instead
+
+local next, type = next, type
+local match, format = string.match, string.format
+local concat, sortedhash = table.concat, table.sortedhash
+local idiv = number.idiv
+
+local trace_defining = false trackers.register("fonts.defining", function(v) trace_defining = v end)
+local trace_features = false trackers.register("tfm.features", function(v) trace_features = v end)
+
+local report_defining = logs.reporter("fonts","defining")
+local report_tfm = logs.reporter("fonts","tfm loading")
+
+local findbinfile = resolvers.findbinfile
+local setmetatableindex = table.setmetatableindex
+
+local fonts = fonts
+local handlers = fonts.handlers
+local helpers = fonts.helpers
+local readers = fonts.readers
+local constructors = fonts.constructors
+local encodings = fonts.encodings
+
+local tfm = constructors.handlers.tfm
+tfm.version = 1.000
+tfm.maxnestingdepth = 5
+tfm.maxnestingsize = 65536*1024
+
+local otf = fonts.handlers.otf
+local otfenhancers = otf.enhancers
+
+local tfmfeatures = constructors.features.tfm
+local registertfmfeature = tfmfeatures.register
+
+local tfmenhancers = constructors.enhancers.tfm
+local registertfmenhancer = tfmenhancers.register
+
+local charcommand = helpers.commands.char
+
+constructors.resolvevirtualtoo = false -- wil be set in font-ctx.lua
+
+fonts.formats.tfm = "type1" -- we need to have at least a value here
+fonts.formats.ofm = "type1" -- we need to have at least a value here
+
+--[[ldx--
+<p>The next function encapsulates the standard <l n='tfm'/> loader as
+supplied by <l n='luatex'/>.</p>
+--ldx]]--
+
+-- this might change: not scaling and then apply features and do scaling in the
+-- usual way with dummy descriptions but on the other hand .. we no longer use
+-- tfm so why bother
+
+-- ofm directive blocks local path search unless set; btw, in context we
+-- don't support ofm files anyway as this format is obsolete
+
+-- we need to deal with nested virtual fonts, but because we load in the
+-- frontend we also need to make sure we don't nest too deep (esp when sizes
+-- get large)
+--
+-- (VTITLE Example of a recursion)
+-- (MAPFONT D 0 (FONTNAME recurse)(FONTAT D 2))
+-- (CHARACTER C A (CHARWD D 1)(CHARHT D 1)(MAP (SETRULE D 1 D 1)))
+-- (CHARACTER C B (CHARWD D 2)(CHARHT D 2)(MAP (SETCHAR C A)))
+-- (CHARACTER C C (CHARWD D 4)(CHARHT D 4)(MAP (SETCHAR C B)))
+--
+-- we added the same checks as below to the luatex engine
+
+function tfm.setfeatures(tfmdata,features)
+ local okay = constructors.initializefeatures("tfm",tfmdata,features,trace_features,report_tfm)
+ if okay then
+ return constructors.collectprocessors("tfm",tfmdata,features,trace_features,report_tfm)
+ else
+ return { } -- will become false
+ end
+end
+
+local depth = { } -- table.setmetatableindex("number")
+
+-- Normally we just load the tfm data and go on. However there was some demand for
+-- loading good old tfm /pfb files where afm files were lacking and even enc files
+-- of dubious quality so we now support loading such (often messy) setups too.
+--
+-- Because such fonts also use (ugly) tweaks achieve some purpose (like swapping
+-- accents) we need to delay the unicoding actions till after the features have been
+-- applied.
+--
+-- It must be noted that in ConTeXt we don't expect this to be used at all. Here is
+-- example:
+--
+-- tfm metrics + pfb vector for index + pfb file for shapes
+--
+-- \font\foo=file:csr10.tfm:reencode=auto;mode=node;liga=yes;kern=yes
+--
+-- tfm metrics + pfb vector for index + enc file for tfm mapping + pfb file for shapes
+--
+-- \font\foo=file:csr10.tfm:reencode=csr.enc;mode=node;liga=yes;kern=yes
+--
+-- tfm metrics + enc file for mapping to tfm + bitmaps shapes
+--
+-- \font\foo=file:csr10.tfm:reencode=csr.enc;bitmap=yes;mode=node;liga=yes;kern=yes
+--
+-- One can add features:
+--
+-- fonts.handlers.otf.addfeature {
+-- name = "czechdqcheat",
+-- type = "substitution",
+-- data = {
+-- quotedblright = "csquotedblright",
+-- },
+-- }
+--
+-- So "czechdqcheat=yes" is then a valid feature. And yes, it's a cheat.
+
+local loadtfmvf = tfm.readers.loadtfmvf
+
+local function read_from_tfm(specification)
+ local filename = specification.filename
+ local size = specification.size
+ depth[filename] = (depth[filename] or 0) + 1
+ if trace_defining then
+ report_defining("loading tfm file %a at size %s",filename,size)
+ end
+ local tfmdata = loadtfmvf(filename,size)
+ if tfmdata then
+
+ local features = specification.features and specification.features.normal or { }
+ local features = constructors.checkedfeatures("tfm",features)
+ specification.features.normal = features
+
+ -- If reencode returns a new table, we assume that we're doing something
+ -- special. An 'auto' reencode picks up its vector from the pfb file.
+
+ local getmapentry = fonts.mappings.getentry
+
+ if getmapentry and not features.reencode then
+ -- This can happen multiple times but not that often so we don't
+ -- optimize this.
+ local encoding, pfbfile, encfile = getmapentry(filename)
+ if encoding and pfbfile then
+ features.reencode = encfile
+ features.pfbfile = pfbfile
+ end
+ end
+ local newtfmdata = (depth[filename] == 1) and tfm.reencode(tfmdata,specification)
+ if newtfmdata then
+ tfmdata = newtfmdata
+ end
+
+ local resources = tfmdata.resources or { }
+ local properties = tfmdata.properties or { }
+ local parameters = tfmdata.parameters or { }
+ local shared = tfmdata.shared or { }
+ --
+ shared.features = features
+ shared.resources = resources
+ --
+ properties.id = specification.id
+ properties.name = tfmdata.name -- todo: fallback
+ properties.fontname = tfmdata.fontname -- todo: fallback
+ properties.psname = tfmdata.psname -- todo: fallback
+ properties.fullname = tfmdata.fullname -- todo: fallback
+ properties.filename = specification.filename -- todo: fallback
+ properties.format = tfmdata.format or fonts.formats.tfm -- better than nothing
+ properties.usedbitmap = tfmdata.usedbitmap
+ properties.designsize = tfmdata.designsize -- let's be nice
+ parameters.designsize = tfmdata.designsize -- needed because of pdf position synchronzing
+ --
+ if getmapentry and newtfmdata then
+ properties.filename = features.pfbfile
+ end
+ --
+ tfmdata.properties = properties
+ tfmdata.resources = resources
+ tfmdata.parameters = parameters
+ tfmdata.shared = shared
+ --
+ shared.rawdata = { resources = resources }
+ shared.features = features
+ --
+ -- The next branch is only entered when we have a proper encoded file i.e.
+ -- unicodes and such. It really nakes no sense to do feature juggling when
+ -- we have no names and unicodes.
+ --
+ if newtfmdata then
+ --
+ -- Some opentype processing assumes these to be present:
+ --
+ if not resources.marks then
+ resources.marks = { }
+ end
+ if not resources.sequences then
+ resources.sequences = { }
+ end
+ if not resources.features then
+ resources.features = {
+ gsub = { },
+ gpos = { },
+ }
+ end
+ if not tfmdata.changed then
+ tfmdata.changed = { }
+ end
+ if not tfmdata.descriptions then
+ tfmdata.descriptions = tfmdata.characters
+ end
+ --
+ -- It might be handy to have this:
+ --
+ otf.readers.addunicodetable(tfmdata)
+ --
+ -- We make a pseudo opentype font, e.g. kerns and ligatures etc:
+ --
+ tfmenhancers.apply(tfmdata,filename)
+ --
+ -- Now user stuff can kick in.
+ --
+ constructors.applymanipulators("tfm",tfmdata,features,trace_features,report_tfm)
+ --
+ -- As that can also mess with names and such, we are now ready for finalizing
+ -- the unicode information. This is a different order that for instance type one
+ -- (afm) files. First we try to deduce unicodes from already present information.
+ --
+ otf.readers.unifymissing(tfmdata)
+ --
+ -- Next we fill in the gaps, based on names from teh agl. Probably not much will
+ -- happen here.
+ --
+ fonts.mappings.addtounicode(tfmdata,filename)
+ --
+ local tounicode = fonts.mappings.tounicode
+ for unicode, v in next, tfmdata.characters do
+ local u = v.unicode
+ if u then
+ v.tounicode = tounicode(u)
+ end
+ end
+ --
+ -- However, when we use a bitmap font those vectors can't be constructed because
+ -- that information is not carried with those fonts (there is no name info, nor
+ -- proper index info, nor unicodes at that end). So, we provide it ourselves.
+ --
+ if tfmdata.usedbitmap then
+ tfm.addtounicode(tfmdata)
+ end
+ end
+ --
+ shared.processes = next(features) and tfm.setfeatures(tfmdata,features) or nil
+ --
+ fonts.loggers.register(tfmdata,'tfm',specification)
+ --
+ if size < 0 then
+ size = idiv(65536 * -size,100)
+ end
+
+ parameters.factor = 1 -- already scaled
+ parameters.units = 1000 -- just in case
+ parameters.size = size
+ parameters.slant = parameters.slant or parameters[1] or 0
+ parameters.space = parameters.space or parameters[2] or 0
+ parameters.spacestretch = parameters.spacestretch or parameters[3] or 0
+ parameters.spaceshrink = parameters.spaceshrink or parameters[4] or 0
+ parameters.xheight = parameters.xheight or parameters[5] or 0
+ parameters.quad = parameters.quad or parameters[6] or 0
+ parameters.extraspace = parameters.extraspace or parameters[7] or 0
+ --
+ constructors.enhanceparameters(parameters) -- official copies for us
+ --
+ properties.private = properties.private or tfmdata.private or privateoffset
+ --
+ if newtfmdata then
+ --
+ -- We do nothing as we assume flat tfm files. It would become real messy
+ -- otherwise and I don't have something for testing on my system anyway.
+ --
+ else
+ -- already loaded
+ local fonts = tfmdata.fonts
+ if fonts then
+ for i=1,#fonts do
+ local font = fonts[i]
+ local id = font.id
+ if not id then
+ local name = font.name
+ local size = font.size
+ if name and size then
+ local data, id = constructors.readanddefine(name,size)
+ if id then
+ font.id = id
+ font.name = nil
+ font.size = nil
+ end
+ end
+ end
+ end
+ end
+ end
+ --
+ properties.haskerns = true
+ properties.hasligatures = true
+ properties.hasitalics = true
+ resources.unicodes = { }
+ resources.lookuptags = { }
+ --
+ depth[filename] = depth[filename] - 1
+ --
+ return tfmdata
+ else
+ depth[filename] = depth[filename] - 1
+ end
+end
+
+local function check_tfm(specification,fullname) -- we could split up like afm/otf
+ local foundname = findbinfile(fullname, 'tfm') or ""
+ if foundname == "" then
+ foundname = findbinfile(fullname, 'ofm') or "" -- not needed in context
+ end
+ if foundname == "" then
+ foundname = fonts.names.getfilename(fullname,"tfm") or ""
+ end
+ if foundname ~= "" then
+ specification.filename = foundname
+ specification.format = "ofm"
+ return read_from_tfm(specification)
+ elseif trace_defining then
+ report_defining("loading tfm with name %a fails",specification.name)
+ end
+end
+
+readers.check_tfm = check_tfm
+
+function readers.tfm(specification)
+ local fullname = specification.filename or ""
+ if fullname == "" then
+ local forced = specification.forced or ""
+ if forced ~= "" then
+ fullname = specification.name .. "." .. forced
+ else
+ fullname = specification.name
+ end
+ end
+ return check_tfm(specification,fullname)
+end
+
+readers.ofm = readers.tfm
+
+-- The reencoding acts upon the 'reencode' feature which can have values 'auto' or
+-- an enc file. You can also specify a 'pfbfile' feature (but it defaults to the
+-- tfm filename) and a 'bitmap' feature. When no enc file is given (auto) we will
+-- get the vectors from the pfb file.
+
+do
+
+ local outfiles = { }
+
+ local tfmcache = table.setmetatableindex(function(t,tfmdata)
+ local id = font.define(tfmdata)
+ t[tfmdata] = id
+ return id
+ end)
+
+ local encdone = table.setmetatableindex("table")
+
+ function tfm.reencode(tfmdata,specification)
+
+ local features = specification.features
+
+ if not features then
+ return
+ end
+
+ local features = features.normal
+
+ if not features then
+ return
+ end
+
+ local tfmfile = file.basename(tfmdata.name)
+ local encfile = features.reencode -- or features.enc
+ local pfbfile = features.pfbfile -- or features.pfb
+ local bitmap = features.bitmap -- or features.pk
+
+ if not encfile then
+ return
+ end
+
+ local pfbfile = pfbfile or outfiles[tfmfile]
+
+ if pfbfile == nil then
+ if bitmap then
+ pfbfile = false
+ elseif type(pfbfile) ~= "string" then
+ pfbfile = tfmfile
+ end
+ if type(pfbfile) == "string" then
+ pfbfile = file.addsuffix(pfbfile,"pfb")
+ -- pdf.mapline(tfmfile .. "<" .. pfbfile)
+ report_tfm("using type1 shapes from %a for %a",pfbfile,tfmfile)
+ else
+ report_tfm("using bitmap shapes for %a",tfmfile)
+ pfbfile = false -- use bitmap
+ end
+ outfiles[tfmfile] = pfbfile
+ end
+
+ local encoding = false
+ local vector = false
+ if type(pfbfile) == "string" then
+ local pfb = constructors.handlers.pfb
+ if pfb and pfb.loadvector then
+ local v, e = pfb.loadvector(pfbfile)
+ if v then
+ vector = v
+ end
+ if e then
+ encoding = e
+ end
+ end
+ end
+ if type(encfile) == "string" and encfile ~= "auto" then
+ encoding = fonts.encodings.load(file.addsuffix(encfile,"enc"))
+ if encoding then
+ encoding = encoding.vector
+ end
+ end
+ if not encoding then
+ report_tfm("bad encoding for %a, quitting",tfmfile)
+ return
+ end
+
+ local unicoding = fonts.encodings.agl and fonts.encodings.agl.unicodes
+ local virtualid = tfmcache[tfmdata]
+ local tfmdata = table.copy(tfmdata) -- good enough for small fonts
+ local characters = { }
+ local originals = tfmdata.characters
+ local indices = { }
+ local parentfont = { "font", 1 } -- can be zero (self referencing)
+ local private = tfmdata.privateoffset or constructors.privateoffset
+ local reported = encdone[tfmfile][encfile] -- bah, encdone for tfm or pfb ?
+ -- create characters table
+
+ -- vector : pfbindex -> name
+ -- encoding : tfmindex -> name
+
+ -- we store the order also because some tex encodings (see math-vfu) needs
+ -- that for remapping with non standard glyphs names cq. lack of unicode
+ -- slot information
+
+ for k, v in next, originals do
+ v.order = k
+ end
+
+ local backmap = vector and table.swapped(vector)
+ local done = { } -- prevent duplicate
+
+ for tfmindex, name in sortedhash(encoding) do -- predictable order
+ local original = originals[tfmindex]
+ if original then
+ local unicode = unicoding[name]
+ if unicode then
+ original.unicode = unicode
+ else
+ unicode = private
+ private = private + 1
+ if trace_defining and not reported then
+ report_tfm("glyph %a in font %a with encoding %a gets unicode %U",name,tfmfile,encfile,unicode)
+ end
+ end
+ characters[unicode] = original
+ indices[tfmindex] = unicode
+ original.name = name -- so one can lookup weird names
+ if backmap then
+ original.index = backmap[name] -- the pfb index
+ else -- probably bitmap
+ original.commands = { parentfont, charcommand[tfmindex] } -- or "slot"
+ original.oindex = tfmindex
+ end
+ done[name] = true
+ elseif not done[name] then
+ report_tfm("bad index %a in font %a with name %a",tfmindex,tfmfile,name)
+ end
+ end
+
+ encdone[tfmfile][encfile] = true
+
+ -- redo kerns and ligatures
+
+-- for k, v in next, characters do
+-- print(k,v.width)
+-- end
+
+ for k, v in next, characters do
+ local kerns = v.kerns
+ if kerns then
+ local t = { }
+ for k, v in next, kerns do
+ local i = indices[k]
+ if i then
+ t[i] = v
+ end
+ end
+ v.kerns = next(t) and t or nil
+ end
+ local ligatures = v.ligatures
+ if ligatures then
+ local t = { }
+ for k, v in next, ligatures do
+ local i = indices[k]
+ if i then
+ t[i] = v
+ v.char = indices[v.char]
+ end
+ end
+ v.ligatures = next(t) and t or nil
+ end
+ local parts = v.parts
+ if parts then
+ local t = { }
+ for i=1,#parts do
+ local p = parts[i]
+ local g = p.glyph
+ t[i] = {
+ glyph = indices[g] or g,
+ extender = p.extender,
+ }
+ end
+ v.parts = t
+ end
+ local next = v.next
+ if next then
+ v.next = indices[next]
+ end
+ end
+
+ -- wrap up
+
+ tfmdata.fonts = { { id = virtualid } }
+ tfmdata.characters = characters
+ tfmdata.fullname = tfmdata.fullname or tfmdata.name
+ tfmdata.psname = file.nameonly(pfbfile or tfmdata.name)
+ tfmdata.filename = pfbfile
+ -- tfmdata.format = bitmap and "type3" or "type1"
+ tfmdata.format = "type1"
+ tfmdata.usedbitmap = bitmap and virtualid
+ tfmdata.private = private
+
+ return tfmdata
+ end
+
+end
+
+-- Now we implement the regular features handlers. We need to convert the
+-- tfm specific structures to opentype structures. In basemode they are
+-- converted back so that is a bit of a waste but it's fast enough.
+
+do
+
+ local everywhere = { ["*"] = { ["*"] = true } } -- or: { ["*"] = { "*" } }
+ local noflags = { false, false, false, false }
+
+ local function enhance_normalize_features(data)
+ local ligatures = setmetatableindex("table")
+ local kerns = setmetatableindex("table")
+ local characters = data.characters
+ for u, c in next, characters do
+ local l = c.ligatures
+ local k = c.kerns
+ if l then
+ ligatures[u] = l
+ for u, v in next, l do
+ l[u] = { ligature = v.char }
+ end
+ c.ligatures = nil
+ end
+ if k then
+ kerns[u] = k
+ for u, v in next, k do
+ k[u] = v -- { v, 0 }
+ end
+ c.kerns = nil
+ end
+ end
+
+ for u, l in next, ligatures do
+ for k, v in next, l do
+ local vl = v.ligature
+ local dl = ligatures[vl]
+ if dl then
+ for kk, vv in next, dl do
+ v[kk] = vv -- table.copy(vv)
+ end
+ end
+ end
+ end
+
+ local features = {
+ gpos = { },
+ gsub = { },
+ }
+ local sequences = {
+ -- only filled ones
+ }
+ if next(ligatures) then
+ features.gsub.liga = everywhere
+ data.properties.hasligatures = true
+ sequences[#sequences+1] = {
+ features = {
+ liga = everywhere,
+ },
+ flags = noflags,
+ name = "s_s_0",
+ nofsteps = 1,
+ order = { "liga" },
+ type = "gsub_ligature",
+ steps = {
+ {
+ coverage = ligatures,
+ },
+ },
+ }
+ end
+ if next(kerns) then
+ features.gpos.kern = everywhere
+ data.properties.haskerns = true
+ sequences[#sequences+1] = {
+ features = {
+ kern = everywhere,
+ },
+ flags = noflags,
+ name = "p_s_0",
+ nofsteps = 1,
+ order = { "kern" },
+ type = "gpos_pair",
+ steps = {
+ {
+ format = "kern",
+ coverage = kerns,
+ },
+ },
+ }
+ end
+ data.resources.features = features
+ data.resources.sequences = sequences
+ data.shared.resources = data.shared.resources or resources
+ end
+
+ registertfmenhancer("normalize features", enhance_normalize_features)
+ registertfmenhancer("check extra features", otfenhancers.enhance)
+
+end
+
+-- As with type one (afm) loading, we just use the opentype ones:
+
+registertfmfeature {
+ name = "mode",
+ description = "mode",
+ initializers = {
+ base = otf.modeinitializer,
+ node = otf.modeinitializer,
+ }
+}
+
+registertfmfeature {
+ name = "features",
+ description = "features",
+ default = true,
+ initializers = {
+ base = otf.basemodeinitializer,
+ node = otf.nodemodeinitializer,
+ },
+ processors = {
+ node = otf.featuresprocessor,
+ }
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-tpk.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-tpk.lmt
new file mode 100644
index 00000000000..fc6789402fa
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-tpk.lmt
@@ -0,0 +1,1397 @@
+if not modules then modules = { } end modules ['font-tpk'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to font-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- The bitmap loader is more or less derived from the luatex version (taco)
+-- which is derived from pdftex (thanh) who uses code from dvips (thomas)
+-- adapted by piet ... etc. The tfm and vf readers are also derived from
+-- luatex. All do things a bit more luaish and errors are of course mine.
+
+local next = next
+----- extract, band, lshift, rshift = bit32.extract, bit32.band, bit32.lshift, bit32.rshift
+----- idiv = number.idiv
+local char = string.char
+local concat, insert, remove, copy = table.concat, table.insert, table.remove, table.copy
+local tobitstring = number.tobitstring
+local formatters = string.formatters
+local round = math.round
+
+local streams = utilities.streams
+local openstream = streams.open
+local streamsize = streams.size
+local readcardinal1 = streams.readcardinal1
+local readcardinal2 = streams.readcardinal2
+local readcardinal3 = streams.readcardinal3
+local readcardinal4 = streams.readcardinal4
+local readinteger1 = streams.readinteger1
+local readinteger2 = streams.readinteger2
+local readinteger3 = streams.readinteger3
+local readinteger4 = streams.readinteger4
+local readbyte = streams.readbyte
+local readbytes = streams.readbytes
+local readstring = streams.readstring
+local skipbytes = streams.skipbytes
+local getposition = streams.getposition
+local setposition = streams.setposition
+
+if not fonts then fonts = { handlers = { tfm = { } } } end
+
+local handlers = fonts.handlers
+local tfm = handlers.tfm or { }
+handlers.tfm = tfm
+tfm.version = 1.006
+
+local readers = tfm.readers or { }
+tfm.readers = readers
+
+-- Performance is no real issue here so I didn't optimize too much. After
+-- all, these files are small and we mostly use opentype or type1 fonts.
+
+do
+
+ local function readbitmap(glyph,s,flagbyte)
+
+ local inputbyte = 0
+ local bitweight = 0
+ local dynf = 0
+ local remainder = 0
+ local realfunc = nil
+ local repeatcount = 0
+
+ local function getnyb() -- can be inlined
+ if bitweight == 0 then
+ bitweight = 16
+ inputbyte = readbyte(s)
+ -- return extract(inputbyte,4,4)
+ return (inputbyte >> 4) & 0xF
+ else
+ bitweight = 0
+ return inputbyte & 15
+ end
+ end
+
+ local function getbit() -- can be inlined
+ -- bitweight = rshift(bitweight,1)
+ bitweight = (bitweight >> 1) & 0xFFFFFFFF
+ if bitweight == 0 then -- actually we can check for 1
+ inputbyte = readbyte(s)
+ bitweight = 128
+ end
+ return inputbyte & bitweight
+ end
+
+ local function pkpackednum()
+ local i = getnyb(s)
+ if i == 0 then
+ repeat
+ j = getnyb()
+ i = i + 1
+ until (j ~= 0)
+ if i > 3 then
+ return handlehuge(i,j)
+ else
+ for i=1,i do
+ j = j * 16 + getnyb()
+ end
+ return j - 15 + (13 - dynf) * 16 + dynf
+ end
+ elseif i <= dynf then
+ return i
+ elseif i < 14 then
+ return (i - dynf - 1) * 16 + getnyb() + dynf + 1
+ elseif i == 14 then
+ repeatcount = pkpackednum()
+ else
+ repeatcount = 1
+ end
+ return realfunc()
+ end
+
+ local function rest()
+ if remainder < 0 then
+ remainder = -remainder
+ return 0
+ elseif remainder > 4000 then
+ remainder = 4000 - remainder
+ return 4000
+ elseif remainder > 0 then
+ local i = remainder
+ remainder = 0
+ realfunc = pkpackednum
+ return i
+ else
+ -- error = "pk issue that shouldn't happen"
+ return 0
+ end
+ end
+
+ local function handlehuge(i,j)
+ while i ~= 0 do
+ -- j = lshift(j,4) + getnyb()
+ j = ((j << 4) & 0xFFFFFFFF) + getnyb()
+ i = i - 1
+ end
+ remainder = j - 15 + (13 - dynf) * 16 + dynf
+ realfunc = rest
+ return rest()
+ end
+
+ local gpower = { [0] =
+ 0, 1, 3, 7, 15, 31, 63, 127,
+ 255, 511, 1023, 2047, 4095, 8191, 16383, 32767,
+ 65535
+ }
+
+ local raster = { }
+ local r = 0
+ glyph.stream = raster
+
+ local xsize = glyph.xsize
+ local ysize = glyph.ysize
+ local word = 0
+ local wordweight = 0
+ local wordwidth = (xsize + 15) // 16
+ local rowsleft = 0
+ local turnon = (flagbyte & 8) == 8 and true or false
+ local hbit = 0
+ local count = 0
+ --
+ realfunc = pkpackednum
+ dynf = flagbyte // 16
+ --
+ if dynf == 14 then
+ bitweight = 0
+ for i=1,ysize do
+ word = 0
+ wordweight = 32768
+ for j=1,xsize do
+ if getbit() ~= 0 then
+ word = word + wordweight
+ end
+ -- wordweight = rshift(wordweight,1)
+ wordweight = (wordweight >> 1) & 0xFFFFFFFF
+ if wordweight == 0 then
+ r = r + 1
+ raster[r] = word
+ word = 0
+ wordweight = 32768
+ end
+ end
+ if wordweight ~= 32768 then
+ r = r + 1
+ raster[r] = word
+ end
+ end
+ else
+ rowsleft = ysize
+ hbit = xsize
+ repeatcount = 0
+ wordweight = 16
+ word = 0
+ bitweight = 0
+ while rowsleft > 0 do
+ count = realfunc()
+ while count ~= 0 do
+ if count < wordweight and count < hbit then
+ if turnon then
+ word = word + gpower[wordweight] - gpower[wordweight - count]
+ end
+ hbit = hbit - count
+ wordweight = wordweight - count
+ count = 0
+ elseif count >= hbit and hbit <= wordweight then
+ if turnon then
+ word = word + gpower[wordweight] - gpower[wordweight - hbit]
+ end
+ r = r + 1
+ raster[r] = word
+ for i=1,repeatcount*wordwidth do
+ r = r + 1
+ raster[r] = raster[r - wordwidth]
+ end
+ rowsleft = rowsleft - repeatcount - 1
+ repeatcount = 0
+ word = 0
+ wordweight = 16
+ count = count - hbit
+ hbit = xsize
+ else
+ if turnon then
+ word = word + gpower[wordweight]
+ end
+ r = r + 1
+ raster[r] = word
+ word = 0
+ count = count - wordweight
+ hbit = hbit - wordweight
+ wordweight = 16
+ end
+ end
+ turnon = not turnon
+ end
+ if rowsleft ~= 0 or hbit ~= xsize then
+ print("ERROR",rowsleft,hbit,xsize)
+ -- error = "error while unpacking, more bits than required"
+ end
+ end
+
+ end
+
+ function readers.showpk(glyph)
+ local xsize = glyph.xsize
+ local ysize = glyph.ysize
+ local stream = glyph.stream
+ local result = { }
+ local rr = { }
+ local r = 0
+ local s = 0
+ local cw = (xsize+ 7) // 8
+ local rw = (xsize+15) // 16
+ local extra = 2 * rw == cw
+ local b
+ for y=1,ysize do
+ r = 0
+ for x=1,rw-1 do
+ s = s + 1 ; b = stream[s]
+ r = r + 1 ; rr[r] = tobitstring(b,16,16)
+ end
+ s = s + 1 ; b = stream[s]
+ if extra then
+ r = r + 1 ; rr[r] = tobitstring(b,16,16)
+ else
+ -- r = r + 1 ; rr[r] = tobitstring(extract(b,8+(8-cw),cw),cw,cw)
+ r = r + 1 ; rr[r] = tobitstring((b >> (8+(8-cw))) &~ (-1 << cw),cw,cw)
+ end
+ result[y] = concat(rr)
+ end
+ return concat(result,"\n")
+ end
+
+ local template = formatters [ [[
+%.3N 0 %i %i %i %i d1
+q
+%i 0 0 %i %i %i cm
+BI
+ /W %i
+ /H %i
+ /IM true
+ /BPC 1
+ /D [1 0]
+ID %t
+EI
+Q]] ]
+
+ function readers.pktopdf(glyph,data,factor)
+ local width = data.width * factor
+ local xsize = glyph.xsize or 0
+ local ysize = glyph.ysize or 0
+ local xoffset = glyph.xoffset or 0
+ local yoffset = glyph.yoffset or 0
+ local stream = glyph.stream
+
+ local dpi = 1
+ local newdpi = 1
+
+ local xdpi = dpi * xsize / newdpi
+ local ydpi = dpi * ysize / newdpi
+
+ local llx = - xoffset
+ local lly = yoffset - ysize + 1
+ local urx = llx + xsize + 1
+ local ury = lly + ysize
+
+ local result = { }
+ local r = 0
+ local s = 0
+ local cw = (xsize+ 7) // 8
+ local rw = (xsize+15) // 16
+ local extra = 2 * rw == cw
+ local b
+ for y=1,ysize do
+ for x=1,rw-1 do
+ s = s + 1 ; b = stream[s]
+ -- r = r + 1 ; result[r] = char(extract(b,8,8),extract(b,0,8))
+ r = r + 1 ; result[r] = char((b >> 8) & 0xFF,b & 0xFF)
+ end
+ s = s + 1 ; b = stream[s]
+ if extra then
+ -- r = r + 1 ; result[r] = char(extract(b,8,8),extract(b,0,8))
+ r = r + 1 ; result[r] = char((b >> 8) & 0xFF,b & 0xFF)
+ else
+ -- r = r + 1 ; result[r] = char(extract(b,8,8))
+ r = r + 1 ; result[r] = char((b >> 8) & 0xFF)
+ end
+ end
+ return template(width,llx,lly,urx,ury,xdpi,ydpi,llx,lly,xsize,ysize,result), width
+ end
+
+ function readers.loadpk(filename)
+ local s = openstream(filename)
+ local preamble = readcardinal1(s)
+ local version = readcardinal1(s)
+ local comment = readstring(s,readcardinal1(s))
+ local designsize = readcardinal4(s)
+ local checksum = readcardinal4(s)
+ local hppp = readcardinal4(s)
+ local vppp = readcardinal4(s)
+ if preamble ~= 247 or version ~= 89 or not vppp then
+ return { error = "invalid preamble" }
+ end
+ local glyphs = { }
+ local data = {
+ designsize = designsize,
+ comment = comment,
+ hppp = hppp,
+ vppp = vppp,
+ glyphs = glyphs,
+ }
+ while true do
+ local flagbyte = readcardinal1(s)
+ if flagbyte < 240 then
+ local c = flagbyte & 7
+ local length, index, width, pixels, xsize, ysize, xoffset, yoffset
+ if c >= 0 and c <= 3 then
+ length = (flagbyte & 7) * 256 + readcardinal1(s) - 3
+ index = readcardinal1(s)
+ width = readinteger3(s)
+ pixels = readcardinal1(s)
+ xsize = readcardinal1(s)
+ ysize = readcardinal1(s)
+ xoffset = readcardinal1(s)
+ yoffset = readcardinal1(s)
+ if xoffset > 127 then
+ xoffset = xoffset - 256
+ end
+ if yoffset > 127 then
+ yoffset = yoffset - 256
+ end
+ elseif c >= 4 and c <= 6 then
+ length = (flagbyte & 3) * 65536 + readcardinal1(s) * 256 + readcardinal1(s) - 4
+ index = readcardinal1(s)
+ width = readinteger3(s)
+ pixels = readcardinal2(s)
+ xsize = readcardinal2(s)
+ ysize = readcardinal2(s)
+ xoffset = readcardinal2(s)
+ yoffset = readcardinal2(s)
+ else -- 7
+ length = readcardinal4(s) - 9
+ index = readcardinal4(s)
+ width = readinteger4(s)
+ pixels = readcardinal4(s)
+ readcardinal4(s)
+ xsize = readcardinal4(s)
+ ysize = readcardinal4(s)
+ xoffset = readcardinal4(s)
+ yoffset = readcardinal4(s)
+ end
+ local glyph = {
+ index = index,
+ width = width,
+ pixels = pixels,
+ xsize = xsize,
+ ysize = ysize,
+ xoffset = xoffset,
+ yoffset = yoffset,
+ }
+ if length <= 0 then
+ data.error = "bad packet"
+ return data
+ end
+ readbitmap(glyph,s,flagbyte)
+ glyphs[index] = glyph
+ elseif flagbyte == 240 then
+ -- k[1] x[k]
+ skipbytes(s,readcardinal1(s))
+ elseif flagbyte == 241 then
+ -- k[2] x[k]
+ skipbytes(s,readcardinal2(s)*2)
+ elseif flagbyte == 242 then
+ -- k[3] x[k]
+ skipbytes(s,readcardinal3(s)*3)
+ elseif flagbyte == 243 then
+ -- k[4] x[k]
+ skipbytes(s,readcardinal4(s)*4) -- readinteger4
+ elseif flagbyte == 244 then
+ -- y[4]
+ skipbytes(s,4)
+ elseif flagbyte == 245 then
+ break
+ elseif flagbyte == 246 then
+ -- nop
+ else
+ data.error = "unknown pk command"
+ break
+ end
+ end
+ return data
+ end
+
+end
+
+do
+
+ local leftboundary = -1
+ local rightboundary = -2
+ local boundarychar = 65536
+
+ local function toparts(extensible)
+ local top = extensible.top or 0
+ local middle = extensible.middle or 0
+ local extender = extensible.extender or 0
+ local bottom = extensible.bottom or 0
+ local extend = extender ~= 0 and { glyph = extender, extender = 1 }
+ if bottom == 0 and top == 0 and middle == 0 then
+ if extend then
+ return {
+ { glyph = extender },
+ extend,
+ }
+ end
+ else
+ local list = { }
+ local l = 0
+ if bottom ~= 0 then
+ l = l + 1 ; list[l] = { glyph = bottom }
+ end
+ if extend then
+ l = l + 1 ; list[l] = extend
+ end
+ if middle ~= 0 then
+ l = l + 1 ; list[l] = { glyph = middle }
+ if extend then
+ l = l + 1 ; list[l] = extend
+ end
+ end
+ if top ~= 0 then
+ l = l + 1 ; list[l] = { glyph = top }
+ end
+ return list
+ end
+ end
+
+ -- We don't cache because we hardly load tfm files multiple times and we need
+ -- to copy them anyway.
+
+ tfm.cache = containers.define("fonts", "tfm", tfm.version, true, true) -- reload: true
+
+ local filecache = tfm.cache
+ local cleanname = fonts.handlers.otf.readers.helpers.cleanname
+
+ local caching = true -- mainly for MS and HH as they test huge files with many instances
+
+ function readers.loadtfm(filename)
+ local data
+ --
+ local fileattr = lfs.attributes(filename)
+ local filesize = fileattr and fileattr.size or 0
+ local filetime = fileattr and fileattr.modification or 0
+ local fileformat = "tfm"
+ local filehash = cleanname(file.basename(filename))
+ --
+ data = caching and containers.read(filecache,filehash)
+ --
+ if data and data.filetime == filetime and data.filesize == filesize and data.fileformat == fileformat then
+ return data
+ end
+ --
+ local function someerror(m)
+ if not data then
+ data = { }
+ end
+ data.error = m or "fatal error"
+ return data
+ end
+ --
+ local s = openstream(filename)
+ if not s then
+ return someerror()
+ end
+ --
+ local wide = false
+ local header = 0
+ local max = 0
+ local size = streamsize(s)
+ local glyphs = table.setmetatableindex(function(t,k)
+ local v = {
+ -- we default because boundary chars have no dimension s
+ width = 0,
+ height = 0,
+ depth = 0,
+ italic = 0,
+ }
+ t[k] = v
+ return v
+ end)
+ local parameters = { }
+ local direction = 0
+ --
+ local lf, lh, bc, ec, nw, nh, nd, ni, nl, nk, ne, np
+ --
+ lf = readcardinal2(s)
+ if lf ~= 0 then
+ header = 6
+ max = 255
+ wide = false
+ lh = readcardinal2(s)
+ bc = readcardinal2(s)
+ ec = readcardinal2(s)
+ nw = readcardinal2(s)
+ nh = readcardinal2(s)
+ nd = readcardinal2(s)
+ ni = readcardinal2(s)
+ nl = readcardinal2(s)
+ nk = readcardinal2(s)
+ ne = readcardinal2(s)
+ np = readcardinal2(s)
+ else
+ header = 14
+ max = 65535
+ wide = readcardinal4(s) == 0
+ if not wide then
+ return someerror("invalid format")
+ end
+ lf = readcardinal4(s)
+ lh = readcardinal4(s)
+ bc = readcardinal4(s)
+ ec = readcardinal4(s)
+ nw = readcardinal4(s)
+ nh = readcardinal4(s)
+ nd = readcardinal4(s)
+ ni = readcardinal4(s)
+ nl = readcardinal4(s)
+ nk = readcardinal4(s)
+ ne = readcardinal4(s)
+ np = readcardinal4(s)
+ direction = readcardinal4(s)
+ end
+ if (bc > ec + 1) or (ec > max) then
+ return someerror("file is too small")
+ end
+ if bc > max then
+ bc, ec = 1, 0
+ end
+ local nlw = (wide and 2 or 1) * nl
+ local neew = (wide and 2 or 1) * ne
+ local ncw = (wide and 2 or 1) * (ec - bc + 1)
+ if lf ~= (header + lh + ncw + nw + nh + nd + ni + nlw + nk + neew + np) then
+ return someerror("file is too small")
+ end
+ if nw == 0 or nh == 0 or nd == 0 or ni == 0 then
+ return someerror("no glyphs")
+ end
+ if lf * 4 > size then
+ return someerror("file is too small")
+ end
+ local slh = lh
+ if lh < 2 then
+ return someerror("file is too small")
+ end
+ local checksum = readcardinal4(s)
+ local designsize = readcardinal2(s)
+ designsize = designsize * 256 + readcardinal1(s)
+ -- designsize = designsize * 16 + rshift(readcardinal1(s),4)
+ designsize = designsize * 16 + (readcardinal1(s) >> 4)
+ if designsize < 0xFFFF then
+ return someerror("weird designsize")
+ end
+ --
+ local alpha = 16
+ local z = designsize
+ while z >= 040000000 do
+ -- z = rshift(z,1)
+ z = (z >> 1) & 0xFFFFFFFF
+ alpha = alpha + alpha
+ end
+ local beta = 256 // alpha
+ alpha = alpha * z
+ --
+ local function readscaled()
+ local a, b, c, d = readbytes(s,4)
+ -- local n = idiv(rshift(rshift(d*z,8)+c*z,8)+b*z,beta)
+ local n = (((((((d * z) >> 8) & 0xFFFFFFFF) + c * z) >> 8) & 0xFFFFFFFF) + b * z) // beta
+ if a == 0 then
+ return n
+ elseif a == 255 then
+ return n - alpha
+ else
+ return 0
+ end
+ end
+ --
+ local function readunscaled()
+ local a, b, c, d = readbytes(s,4)
+ if a > 127 then
+ a = a - 256
+ end
+ -- return a * 0xFFFFF + b * 0xFFF + c * 0xF + rshift(d,4)
+ return a * 0xFFFFF + b * 0xFFF + c * 0xF + ((d >> 4) & 0xFFFFFFFF)
+ end
+ --
+ while lh > 2 do -- can be one-liner
+ skipbytes(s,4)
+ lh = lh - 1
+ end
+ local saved = getposition(s)
+ setposition(s,(header + slh + ncw) * 4 + 1)
+ local widths = { } for i=0,nw-1 do widths [i] = readscaled() end
+ local heights = { } for i=0,nh-1 do heights[i] = readscaled() end
+ local depths = { } for i=0,nd-1 do depths [i] = readscaled() end
+ local italics = { } for i=0,ni-1 do italics[i] = readscaled() end
+ if widths[0] ~= 0 or heights[0] ~= 0 or depths[0] ~= 0 then
+ return someerror("invalid dimensions")
+ end
+ --
+ local blabel = nl
+ local bchar = boundarychar
+ --
+ local ligatures = { }
+ if nl > 0 then
+ for i=0,nl-1 do
+ local a, b, c, d = readbytes(s,4)
+ ligatures[i] = {
+ skip = a,
+ nxt = b,
+ op = c,
+ rem = d,
+ }
+ if a > 128 then
+ if 256 * c + d >= nl then
+ return someerror("invalid ligature table")
+ end
+ if a == 255 and i == 0 then
+ bchar = b
+ end
+ else
+ if c < 128 then
+ -- whatever
+ elseif 256 * (c - 128) + d >= nk then
+ return someerror("invalid ligature table")
+ end
+ if (a < 128) and (i - 0 + a + 1 >= nl) then
+ return someerror("invalid ligature table")
+ end
+ end
+ if a == 255 then
+ blabel = 256 * c + d
+ end
+ end
+ end
+ local allkerns = { }
+ for i=0,nk-1 do
+ allkerns[i] = readscaled()
+ end
+ local extensibles = { }
+ for i=0,ne-1 do
+ extensibles[i] = wide and {
+ top = readcardinal2(s),
+ middle = readcardinal2(s),
+ bottom = readcardinal2(s),
+ extender = readcardinal2(s),
+ } or {
+ top = readcardinal1(s),
+ middle = readcardinal1(s),
+ bottom = readcardinal1(s),
+ extender = readcardinal1(s),
+ }
+ end
+ for i=1,np do
+ if i == 1 then
+ parameters[i] = readunscaled()
+ else
+ parameters[i] = readscaled()
+ end
+ end
+ for i=1,7 do
+ if not parameters[i] then
+ parameters[i] = 0
+ end
+ end
+ --
+ setposition(s,saved)
+ local extras = false
+ if blabel ~= nl then
+ local k = blabel
+ while true do
+ local l = ligatures[k]
+ local skip = l.skip
+ if skip <= 128 then
+ -- if l.op >= 128 then
+ -- extras = true -- kern
+ -- else
+ extras = true -- ligature
+ -- end
+ end
+ if skip == 0 then
+ k = k + 1
+ else
+ if skip >= 128 then
+ break
+ end
+ k = k + skip + 1
+ end
+ end
+ end
+ if extras then
+ local ligas = { }
+ local kerns = { }
+ local k = blabel
+ while true do
+ local l = ligatures[k]
+ local skip = l.skip
+ if skip <= 128 then
+ local nxt = l.nxt
+ local op = l.op
+ local rem = l.rem
+ if op >= 128 then
+ kerns[nxt] = allkerns[256 * (op - 128) + rem]
+ else
+ ligas[nxt] = { type = op * 2 + 1, char = rem }
+ end
+ end
+ if skip == 0 then
+ k = k + 1
+ else
+ if skip >= 128 then
+ break;
+ end
+ k = k + skip + 1
+ end
+ end
+ if next(kerns) then
+ local glyph = glyphs[leftboundary]
+ glyph.kerns = kerns
+ glyph.remainder = 0
+ end
+ if next(ligas) then
+ local glyph = glyphs[leftboundary]
+ glyph.ligatures = ligas
+ glyph.remainder = 0
+ end
+ end
+ for i=bc,ec do
+ local glyph, width, height, depth, italic, tag, remainder
+ if wide then
+ width = readcardinal2(s)
+ height = readcardinal1(s)
+ depth = readcardinal1(s)
+ italic = readcardinal1(s)
+ tag = readcardinal1(s)
+ remainder = readcardinal2(s)
+ else
+ width = readcardinal1(s)
+ height = readcardinal1(s)
+ -- depth = extract(height,0,4)
+ depth = height & 0xF
+ -- height = extract(height,4,4)
+ height = (height >> 4) & 0xF
+ italic = readcardinal1(s)
+ -- tag = extract(italic,0,2)
+ tag = italic & 0x03
+ -- italic = extract(italic,2,6)
+ italic = (italic >> 2) & 0xFF
+ remainder = readcardinal1(s)
+ end
+ if width == 0 then
+ -- nothing
+ else
+ if width >= nw or height >= nh or depth >= nd or italic >= ni then
+ return someerror("invalid dimension index")
+ end
+ local extensible, nextinsize
+ if tag == 0 then
+ -- nothing special
+ else
+ local r = remainder
+ if tag == 1 then
+ if r >= nl then
+ return someerror("invalid ligature index")
+ end
+ elseif tag == 2 then
+ if r < bc or r > ec then
+ return someerror("invalid chain index")
+ end
+ while r < i do
+ local g = glyphs[r]
+ if g.tag ~= list_tag then
+ break
+ end
+ r = g.remainder
+ end
+ if r == i then
+ return someerror("cycles in chain")
+ end
+ nextinsize = r
+ elseif tag == 3 then
+ if r >= ne then
+ return someerror("bad extensible")
+ end
+ extensible = extensibles[r] -- remainder ?
+ remainder = 0
+ end
+ end
+ local glyph = {
+ width = widths [width],
+ height = heights[height],
+ depth = depths [depth],
+ italic = italics[italic],
+ tag = tag,
+ -- index = i,
+ remainder = remainder,
+ extensible = extensible,
+ next = nextinsize,
+ }
+ if extensible then
+ extensible = toparts(extensible)
+ if extensible then
+ glyph.parts = extensible
+ glyph.partsorientation = "vertical"
+ glyph.partsitalic = glyph.italic
+ end
+ end
+ glyphs[i] = glyph
+ end
+ end
+ for i=bc,ec do
+ local glyph = glyphs[i]
+ if glyph.tag == 1 then
+ -- ligature
+ local k = glyph.remainder
+ local l = ligatures[k]
+ if l.skip > 128 then
+ k = 256 * l.op + l.rem
+ end
+ local ligas = { }
+ local kerns = { }
+ while true do
+ local l = ligatures[k]
+ local skip = l.skip
+ if skip <= 128 then
+ local nxt = l.nxt
+ local op = l.op
+ local rem = l.rem
+ if op >= 128 then
+ local kern = allkerns[256 * (op - 128) + rem]
+ if nxt == bchar then
+ kerns[rightboundary] = kern
+ end
+ kerns[nxt] = kern
+ else
+ local ligature = { type = op * 2 + 1, char = rem }
+ if nxt == bchar then
+ ligas[rightboundary] = ligature
+ end
+ ligas[nxt] = ligature -- shared
+ end
+ end
+ if skip == 0 then
+ k = k + 1
+ else
+ if skip >= 128 then
+ break
+ end
+ k = k + skip + 1
+ end
+ end
+ if next(kerns)then
+ glyph.kerns = kerns
+ glyph.remainder = 0
+ end
+ if next(ligas) then
+ glyph.ligatures = ligas
+ glyph.remainder = 0
+ end
+ end
+ end
+ --
+ if bchar ~= boundarychar then
+ glyphs[rightboundary] = copy(glyphs[bchar])
+ end
+ --
+ -- for k, v in next, glyphs do
+ -- v.tag = nil
+ -- v.remainder = nil
+ -- end
+ --
+ data = {
+ name = file.nameonly(filename),
+ fontarea = file.pathpart(filename),
+ glyphs = glyphs,
+ parameters = parameters,
+ designsize = designsize,
+ size = designsize,
+ direction = direction,
+ -- checksum = checksum,
+ -- embedding = "unknown",
+ -- extend = 1000,
+ -- slant = 0,
+ -- squeeze = 0,
+ -- format = "unknown",
+ -- identity = "unknown",
+ -- mode = 0,
+ -- streamprovider = 0,
+ -- tounicode = 0,
+ -- type = "unknown",
+ -- units_per_em = 0,
+ -- used = false,
+ -- width = 0,
+ -- writingmode = "unknown",
+ }
+ --
+ data.filesize = filesize
+ data.fileformat = fileformat
+ data.filetime = filetime
+ if caching then
+ containers.write(filecache,filehash,data)
+ end
+ --
+ return data
+ end
+
+end
+
+do
+
+ local pushcommand = fonts.helpers.commands.push
+ local popcommand = fonts.helpers.commands.pop
+ local slotcommand = fonts.helpers.commands.slot
+
+ local w, x, y, z, f
+ local stack
+ local s, result, r
+ local alpha, beta, z
+
+ local function scaled1()
+ local a = readbytes(s,1)
+ if a == 0 then
+ return 0
+ elseif a == 255 then
+ return - alpha
+ else
+ return 0 -- error
+ end
+ end
+
+ local function scaled2()
+ local a, b = readbytes(s,2)
+ local sw = (b*z) // beta
+ if a == 0 then
+ return sw
+ elseif a == 255 then
+ return sw - alpha
+ else
+ return 0 -- error
+ end
+ end
+
+ local function scaled3()
+ local a, b, c = readbytes(s,3)
+ -- local sw = idiv(rshift(c*z,8)+b*z,beta)
+ local sw = ((((c * z) >> 8) & 0xFFFFFFFF) + b * z) // beta
+ if a == 0 then
+ return sw
+ elseif a == 255 then
+ return sw - alpha
+ else
+ return 0 -- error
+ end
+ end
+
+ local function scaled4()
+ local a, b, c, d = readbytes(s,4)
+ -- local sw = idiv( rshift(rshift(d*z,8)+(c*z),8)+b*z,beta)
+ local sw = (((((d * z) >> 8) & 0xFFFFFFFF + (c * z)) >> 8) & 0xFFFFFFFF + b * z) // beta
+ if a == 0 then
+ return sw
+ elseif a == 255 then
+ return sw - alpha
+ else
+ return 0 -- error
+ end
+ end
+
+ local function dummy()
+ end
+
+ local actions = {
+
+ [128] = function() r = r + 1 result[r] = slotcommand[f or 1][readcardinal1(s)] p = p + 1 end,
+ [129] = function() r = r + 1 result[r] = slotcommand[f or 1][readcardinal2(s)] p = p + 2 end,
+ [130] = function() r = r + 1 result[r] = slotcommand[f or 1][readcardinal3(s)] p = p + 3 end,
+ [131] = function() r = r + 1 result[r] = slotcommand[f or 1][readcardinal4(s)] p = p + 4 end,
+
+ [132] = function()
+ r = r + 1
+ result[r] = { "rule", scaled4(), scaled4() }
+ p = p + 8
+ end,
+
+ [133] = function()
+ r = r + 1 result[r] = pushcommand
+ r = r + 1 result[r] = slotcommand[f or 1][readcardinal1(s)]
+ r = r + 1 result[r] = popcommand
+ p = p + 1
+ end,
+ [134] = function()
+ r = r + 1 result[r] = pushcommand
+ r = r + 1 result[r] = slotcommand[f or 1][readcardinal2(s)]
+ r = r + 1 result[r] = popcommand
+ p = p + 2
+ end,
+ [135] = function()
+ r = r + 1 result[r] = pushcommand
+ r = r + 1 result[r] = slotcommand[f or 1][readcardinal3(s)]
+ r = r + 1 result[r] = popcommand
+ p = p + 3
+ end,
+ [136] = function()
+ r = r + 1 result[r] = pushcommand
+ r = r + 1 result[r] = slotcommand[f or 1][readcardinal4(s)]
+ r = r + 1 result[r] = popcommand
+ p = p + 4
+ end,
+
+ [137] = function()
+ r = r + 1 result[r] = pushcommand
+ r = r + 1 result[r] = { "rule", scaled4(), scaled4() }
+ r = r + 1 result[r] = popcommand
+ p = p + 8
+ end,
+
+ [138] = dummy, -- nop
+ [139] = dummy, -- bop
+ [140] = dummy, -- eop
+
+ [141] = function()
+ insert(stack, { w, x, y, z })
+ r = r + 1
+ result[r] = pushcommand
+ end,
+ [142] = function()
+ local t = remove(stack)
+ if t then
+ w, x, y, z = t[1], t[2], t[3], t[4]
+ r = r + 1
+ result[r] = popcommand
+ end
+ end,
+
+ [143] = function() r = r + 1 result[r] = { "right", scaled1() } p = p + 1 end,
+ [144] = function() r = r + 1 result[r] = { "right", scaled2() } p = p + 2 end,
+ [145] = function() r = r + 1 result[r] = { "right", scaled3() } p = p + 3 end,
+ [146] = function() r = r + 1 result[r] = { "right", scaled4() } p = p + 4 end,
+
+ [148] = function() w = scaled1() r = r + 1 result[r] = { "right", w } p = p + 1 end,
+ [149] = function() w = scaled2() r = r + 1 result[r] = { "right", w } p = p + 2 end,
+ [150] = function() w = scaled3() r = r + 1 result[r] = { "right", w } p = p + 3 end,
+ [151] = function() w = scaled4() r = r + 1 result[r] = { "right", w } p = p + 4 end,
+
+ [153] = function() x = scaled1() r = r + 1 result[r] = { "right", x } p = p + 1 end,
+ [154] = function() x = scaled2() r = r + 1 result[r] = { "right", x } p = p + 2 end,
+ [155] = function() x = scaled3() r = r + 1 result[r] = { "right", x } p = p + 3 end,
+ [156] = function() x = scaled4() r = r + 1 result[r] = { "right", x } p = p + 4 end,
+
+ [157] = function() r = r + 1 result[r] = { "down", scaled1() } p = p + 1 end,
+ [158] = function() r = r + 1 result[r] = { "down", scaled2() } p = p + 2 end,
+ [159] = function() r = r + 1 result[r] = { "down", scaled3() } p = p + 3 end,
+ [160] = function() r = r + 1 result[r] = { "down", scaled4() } p = p + 4 end,
+
+ [162] = function() y = scaled1() r = r + 1 result[r] = { "down", y } p = p + 1 end,
+ [163] = function() y = scaled2() r = r + 1 result[r] = { "down", y } p = p + 2 end,
+ [164] = function() y = scaled3() r = r + 1 result[r] = { "down", y } p = p + 3 end,
+ [165] = function() y = scaled3() r = r + 1 result[r] = { "down", y } p = p + 4 end,
+
+ [167] = function() z = scaled1() r = r + 1 ; result[r] = { "down", z } p = p + 4 end,
+ [168] = function() z = scaled2() r = r + 1 ; result[r] = { "down", z } p = p + 4 end,
+ [169] = function() z = scaled3() r = r + 1 ; result[r] = { "down", z } p = p + 4 end,
+ [170] = function() z = scaled4() r = r + 1 ; result[r] = { "down", z } p = p + 4 end,
+
+ [147] = function() r = r + 1 result[r] = { "right", w } end,
+ [152] = function() r = r + 1 result[r] = { "right", x } end,
+ [161] = function() r = r + 1 result[r] = { "down", y } end,
+ [166] = function() r = r + 1 result[r] = { "down", z } end,
+
+ [235] = function() f = readcardinal1(s) p = p + 1 end,
+ [236] = function() f = readcardinal2(s) p = p + 3 end,
+ [237] = function() f = readcardinal3(s) p = p + 3 end,
+ [238] = function() f = readcardinal4(s) p = p + 4 end,
+
+ [239] = function() local n = readcardinal1(s) r = r + 1 result[r] = { "special", readstring(s,n) } p = p + 1 + n end,
+ [240] = function() local n = readcardinal2(s) r = r + 1 result[r] = { "special", readstring(s,n) } p = p + 2 + n end,
+ [241] = function() local n = readcardinal3(s) r = r + 1 result[r] = { "special", readstring(s,n) } p = p + 3 + n end,
+ [242] = function() local n = readcardinal4(s) r = r + 1 result[r] = { "special", readstring(s,n) } p = p + 4 + n end,
+
+ [250] = function() local n = readcardinal1(s) r = r + 1 result[r] = { "pdf", readstring(s,n) } p = p + 1 + n end,
+ [251] = function() local n = readcardinal2(s) r = r + 1 result[r] = { "pdf", readstring(s,n) } p = p + 2 + n end,
+ [252] = function() local n = readcardinal3(s) r = r + 1 result[r] = { "pdf", readstring(s,n) } p = p + 3 + n end,
+ [253] = function() local n = readcardinal4(s) r = r + 1 result[r] = { "pdf", readstring(s,n) } p = p + 4 + n end,
+
+ }
+
+ table.setmetatableindex(actions,function(t,cmd)
+ local v
+ if cmd >= 0 and cmd <= 127 then
+ v = function()
+ if f == 0 then
+ f = 1
+ end
+ r = r + 1 ; result[r] = slotcommand[f][cmd]
+ end
+ elseif cmd >= 171 and cmd <= 234 then
+ cmd = cmd - 170
+ v = function()
+ r = r + 1 ; result[r] = { "font", cmd }
+ end
+ else
+ v = dummy
+ end
+ t[cmd] = v
+ return v
+ end)
+
+ function readers.loadvf(filename,data)
+ --
+ local function someerror(m)
+ if not data then
+ data = { }
+ end
+ data.error = m or "fatal error"
+ return data
+ end
+ --
+ s = openstream(filename)
+ if not s then
+ return someerror()
+ end
+ --
+ local cmd = readcardinal1(s)
+ if cmd ~= 247 then
+ return someerror("bad preamble")
+ end
+ cmd = readcardinal1(s)
+ if cmd ~= 202 then
+ return someerror("bad version")
+ end
+ local header = readstring(s,readcardinal1(s))
+ local checksum = readcardinal4(s)
+ local designsize = readcardinal4(s) // 16
+ local fonts = data and data.fonts or { }
+ local glyphs = data and data.glyphs or { }
+ --
+ alpha = 16
+ z = designsize
+ while z >= 040000000 do
+ -- z = rshift(z,1)
+ z = (z >> 1) & 0xFFFFFFFF
+ alpha = alpha + alpha
+ end
+ beta = 256 // alpha
+ alpha = alpha * z
+ --
+ cmd = readcardinal1(s)
+ while true do
+ local n
+ if cmd == 243 then
+ n = readcardinal1(s) + 1
+ elseif cmd == 244 then
+ n = readcardinal2(s) + 1
+ elseif cmd == 245 then
+ n = readcardinal3(s) + 1
+ elseif cmd == 246 then
+ n = readcardinal4(s) + 1
+ else
+ break
+ end
+ local checksum = skipbytes(s,4)
+ local size = scaled4()
+ local designsize = readcardinal4(s) // 16
+ local pathlen = readcardinal1(s)
+ local namelen = readcardinal1(s)
+ local path = readstring(s,pathlen)
+ local name = readstring(s,namelen)
+ fonts[n] = { path = path, name = name, size = size }
+ cmd = readcardinal1(s)
+ end
+ local index = 0
+ while cmd and cmd <= 242 do
+ local width = 0
+ local length = 0
+ local checksum = 0
+ if cmd == 242 then
+ length = readcardinal4(s)
+ checksum = readcardinal4(s)
+ width = readcardinal4(s)
+ else
+ length = cmd
+ checksum = readcardinal1(s)
+ width = readcardinal3(s)
+ end
+ w, x, y, z, f = 0, 0, 0, 0, false
+ stack, result, r, p = { }, { }, 0, 0
+ while p < length do
+ local cmd = readcardinal1(s)
+ p = p + 1
+ actions[cmd]()
+ end
+ local glyph = glyphs[index]
+ if glyph then
+ glyph.width = width
+ glyph.commands = result
+ else
+ glyphs[index] = {
+ width = width,
+ commands = result,
+ }
+ end
+ index = index + 1
+ if #stack > 0 then
+ -- error: more pushes than pops
+ end
+ if packet_length ~= 0 then
+ -- error: invalid packet length
+ end
+ cmd = readcardinal1(s)
+ end
+ if readcardinal1(s) ~= 248 then
+ -- error: no post
+ end
+ s, result, r = nil, nil, nil
+ if data then
+ data.glyphs = data.glyphs or glyphs
+ data.fonts = data.fonts or fonts
+ return data
+ else
+ return {
+ name = file.nameonly(filename),
+ fontarea = file.pathpart(filename),
+ glyphs = glyphs,
+ designsize = designsize,
+ header = header,
+ fonts = fonts,
+ }
+ end
+ end
+
+ -- the replacement loader (not sparse):
+
+ function readers.loadtfmvf(tfmname,size)
+ local vfname = file.addsuffix(file.nameonly(tfmfile),"vf")
+ local tfmfile = tfmname
+ local vffile = resolvers.findbinfile(vfname,"ovf")
+ if tfmfile and tfmfile ~= "" then
+ if size < 0 then
+ size = (65536 * -size) // 100
+ end
+ local data = readers.loadtfm(tfmfile)
+ if data.error then
+ return data
+ end
+ if vffile and vffile ~= "" then
+ data = readers.loadvf(vffile,data)
+ if data.error then
+ return data
+ end
+ end
+ local designsize = data.designsize
+ local glyphs = data.glyphs
+ local parameters = data.parameters
+ local fonts = data.fonts
+ if size ~= designsize then
+ local factor = size / designsize
+ for index, glyph in next, glyphs do
+ if next(glyph) then
+ glyph.width = round(factor*glyph.width)
+ glyph.height = round(factor*glyph.height)
+ glyph.depth = round(factor*glyph.depth)
+ local italic = glyph.italic
+ if italic == 0 then
+ glyph.italic = nil
+ else
+ glyph.italic = round(factor*glyph.italic)
+ end
+ --
+ local kerns = glyph.kerns
+ if kerns then
+ for index, kern in next, kerns do
+ kerns[index] = round(factor*kern)
+ end
+ end
+ --
+ local commands = glyph.commands
+ if commands then
+ for i=1,#commands do
+ local c = commands[i]
+ local t = c[1]
+ if t == "down" or t == "right" then
+ c[2] = round(factor*c[2])
+ elseif t == "rule" then
+ c[2] = round(factor*c[2])
+ c[3] = round(factor*c[3])
+ end
+ end
+ end
+ else
+ glyphs[index] = nil
+ end
+ end
+ for i=2,30 do
+ local p = parameters[i]
+ if p then
+ parameters[i] = round(factor*p)
+ else
+ break
+ end
+ end
+ if fonts then
+ for k, v in next, fonts do
+ v.size = round(factor*v.size)
+ end
+ end
+ else
+ for index, glyph in next, glyphs do
+ if next(glyph) then
+ if glyph.italic == 0 then
+ glyph.italic = nil
+ end
+ else
+ glyphs[index] = nil
+ end
+ end
+ end
+ --
+ parameters.slant = parameters[1]
+ parameters.space = parameters[2]
+ parameters.spacestretch = parameters[3]
+ parameters.spaceshrink = parameters[4]
+ parameters.xheight = parameters[5]
+ parameters.quad = parameters[6]
+ parameters.extraspace = parameters[7]
+ --
+ for i=1,7 do
+ parameters[i] = nil -- so no danger for async
+ end
+ --
+ data.characters = glyphs
+ data.glyphs = nil
+ data.size = size
+ -- we assume type1 for now ... maybe the format should be unknown
+ data.filename = tfmfile -- file.replacesuffix(tfmfile,"pfb")
+ data.format = "unknown"
+ --
+ return data
+ end
+ end
+
+end
+
+-- inspect(readers.loadtfmvf(resolvers.findfile("mi-iwonari.tfm")))
+-- inspect(readers.loadtfm(resolvers.findfile("texnansi-palatinonova-regular.tfm")))
+-- inspect(readers.loadtfm(resolvers.findfile("cmex10.tfm")))
+-- inspect(readers.loadtfm(resolvers.findfile("cmr10.tfm")))
+-- local t = readers.loadtfmvf("texnansi-lte50019.tfm")
+-- inspect(t)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-ttf.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-ttf.lmt
new file mode 100644
index 00000000000..fa0e3c494bd
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-ttf.lmt
@@ -0,0 +1,1496 @@
+if not modules then modules = { } end modules ['font-ttf'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to font-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- This version is different from previous in the sense that we no longer store
+-- contours but keep points and contours (endpoints) separate for a while
+-- because later on we need to apply deltas and that is easier on a list of
+-- points.
+
+-- The code is a bit messy. I looked at the ff code but it's messy too. It has
+-- to do with the fact that we need to look at points on the curve and control
+-- points in between. This also means that we start at point 2 and have to look
+-- at point 1 when we're at the end. We still use a ps like storage with the
+-- operator last in an entry. It's typical code that evolves stepwise till a
+-- point of no comprehension.
+
+-- For deltas we need a rather complex loop over points that can have holes and
+-- be less than nofpoints and even can have duplicates and also the x and y value
+-- lists can be shorter than etc. I need fonts in order to complete this simply
+-- because I need to visualize in order to understand (what the standard tries
+-- to explain).
+
+-- 0 point then none applied
+-- 1 points then applied to all
+-- otherwise inferred deltas using nearest
+-- if no lower point then use highest referenced point
+-- if no higher point then use lowest referenced point
+-- factor = (target-left)/(right-left)
+-- delta = (1-factor)*left + factor * right
+
+local next, type, unpack = next, type, unpack
+----- band, rshift = bit32.band, bit32.rshift
+local sqrt, round, abs, min, max = math.sqrt, math.round, math.abs, math.min, math.max
+local char, rep = string.char, string.rep
+local concat = table.concat
+local setmetatableindex = table.setmetatableindex
+
+local report = logs.reporter("otf reader","ttf")
+
+local trace_deltas = false
+
+local readers = fonts.handlers.otf.readers
+local streamreader = readers.streamreader
+
+local setposition = streamreader.setposition
+local getposition = streamreader.getposition
+local skipbytes = streamreader.skip
+local readbyte = streamreader.readcardinal1 -- 8-bit unsigned integer
+local readushort = streamreader.readcardinal2 -- 16-bit unsigned integer
+local readulong = streamreader.readcardinal4 -- 24-bit unsigned integer
+local readchar = streamreader.readinteger1 -- 8-bit signed integer
+local readshort = streamreader.readinteger2 -- 16-bit signed integer
+local read2dot14 = streamreader.read2dot14 -- 16-bit signed fixed number with the low 14 bits of fraction (2.14) (F2DOT14)
+local readinteger = streamreader.readinteger1
+local readcardinaltable = streamreader.readcardinaltable
+local readintegertable = streamreader.readintegertable
+
+directives.register("fonts.streamreader",function()
+
+ streamreader = utilities.streams
+
+ setposition = streamreader.setposition
+ getposition = streamreader.getposition
+ skipbytes = streamreader.skip
+ readbyte = streamreader.readcardinal1
+ readushort = streamreader.readcardinal2
+ readulong = streamreader.readcardinal4
+ readchar = streamreader.readinteger1
+ readshort = streamreader.readinteger2
+ read2dot14 = streamreader.read2dot14
+ readinteger = streamreader.readinteger1
+ readcardinaltable = streamreader.readcardinaltable
+ readintegertable = streamreader.readintegertable
+
+end)
+
+local short = 2
+local ushort = 2
+local ulong = 4
+
+local helpers = readers.helpers
+local gotodatatable = helpers.gotodatatable
+
+local function mergecomposites(glyphs,shapes)
+
+ -- todo : deltas
+
+ local function merge(index,shape,components)
+ local contours = { }
+ local points = { }
+ local nofcontours = 0
+ local nofpoints = 0
+ local offset = 0
+ local deltas = shape.deltas
+ for i=1,#components do
+ local component = components[i]
+ local subindex = component.index
+ local subshape = shapes[subindex]
+ local subcontours = subshape.contours
+ local subpoints = subshape.points
+ if not subcontours then
+ local subcomponents = subshape.components
+ if subcomponents then
+ subcontours, subpoints = merge(subindex,subshape,subcomponents)
+ end
+ end
+ if subpoints then
+ local matrix = component.matrix
+ local xscale = matrix[1]
+ local xrotate = matrix[2]
+ local yrotate = matrix[3]
+ local yscale = matrix[4]
+ local xoffset = matrix[5]
+ local yoffset = matrix[6]
+ local count = #subpoints
+ if xscale == 1 and yscale == 1 and xrotate == 0 and yrotate == 0 then
+ for i=1,count do
+ local p = subpoints[i]
+ nofpoints = nofpoints + 1
+ points[nofpoints] = {
+ p[1] + xoffset,
+ p[2] + yoffset,
+ p[3]
+ }
+ end
+ else
+ for i=1,count do
+ local p = subpoints[i]
+ local x = p[1]
+ local y = p[2]
+ nofpoints = nofpoints + 1
+ points[nofpoints] = {
+ -- unifractur : u n
+ -- seguiemj : 0x270E 0x2710
+ xscale * x + xrotate * y + xoffset,
+ yscale * y + yrotate * x + yoffset,
+-- xscale * x + yrotate * y + xoffset,
+-- xrotate * x + yscale * y + yoffset,
+ p[3]
+ }
+ end
+ end
+ local subcount = #subcontours
+ if subcount == 1 then
+ nofcontours = nofcontours + 1
+ contours[nofcontours] = offset + subcontours[1]
+ else
+ for i=1,#subcontours do
+ nofcontours = nofcontours + 1
+ contours[nofcontours] = offset + subcontours[i]
+ end
+ end
+ offset = offset + count
+ else
+ report("missing contours composite %s, component %s of %s, glyph %s",index,i,#components,subindex)
+ end
+ end
+ shape.points = points -- todo : phantom points
+ shape.contours = contours
+ shape.components = nil
+ return contours, points
+ end
+
+ for index=0,#glyphs do
+ local shape = shapes[index]
+ if shape then
+ local components = shape.components
+ if components then
+ merge(index,shape,components)
+ end
+ end
+ end
+
+end
+
+local function readnothing(f)
+ return {
+ type = "nothing",
+ }
+end
+
+-- begin of converter
+
+local function curveto(m_x,m_y,l_x,l_y,r_x,r_y) -- todo: inline this
+ return
+ l_x + 2/3 *(m_x-l_x), l_y + 2/3 *(m_y-l_y),
+ r_x + 2/3 *(m_x-r_x), r_y + 2/3 *(m_y-r_y),
+ r_x, r_y, "c"
+end
+
+-- We could omit the operator which saves some 10%:
+--
+-- #2=lineto #4=quadratic #6=cubic #3=moveto (with "m")
+--
+-- This is tricky ... something to do with phantom points .. however, the hvar
+-- and vvar tables should take care of the width .. the test font doesn't have
+-- those so here we go then (we need a flag for hvar).
+--
+-- h-advance left-side-bearing v-advance top-side-bearing
+--
+-- We had two loops (going backward) but can do it in one loop .. but maybe we
+-- should only accept fonts with proper hvar tables.
+
+-- dowidth is kind of hack ... fonts are not always ok wrt these extra points
+
+local xv = { } -- we share this cache
+local yv = { } -- we share this cache
+
+local function applyaxis(glyph,shape,deltas,dowidth)
+ local points = shape.points
+ if points then
+ local nofpoints = #points
+ local dw = 0
+ local dl = 0
+ for i=1,#deltas do
+ local deltaset = deltas[i]
+ local xvalues = deltaset.xvalues
+ local yvalues = deltaset.yvalues
+ if xvalues and yvalues then
+ local dpoints = deltaset.points
+ local factor = deltaset.factor
+ if dpoints then
+ local cnt = #dpoints
+ if dowidth then
+ cnt = cnt - 4
+ end
+ if cnt > 0 then
+ -- Not the most efficient solution but we seldom do this. We
+ -- actually need to avoid the extra points here but I'll deal
+ -- with that when needed.
+ local contours = shape.contours
+ local nofcontours = #contours
+ local first = 1
+ local firstindex = 1
+ for contour=1,nofcontours do
+ local last = contours[contour]
+ if last >= first then
+ local lastindex = cnt
+ if firstindex < cnt then
+ for currentindex=firstindex,cnt do
+ local found = dpoints[currentindex]
+ if found <= first then
+ firstindex = currentindex
+ end
+ if found == last then
+ lastindex = currentindex
+ break
+ elseif found > last then
+ -- \definefontfeature[book][default][axis={weight=800}]
+ -- \definefont[testfont][file:Commissioner-vf-test.ttf*book]
+ -- \testfont EΘÄΞ
+ while lastindex > 1 and dpoints[lastindex] > last do
+ lastindex = lastindex - 1
+ end
+ --
+ break
+ end
+ end
+ end
+ -- print("unicode: ",glyph.unicode or "?")
+ -- print("contour: ",first,contour,last)
+ -- print("index : ",firstindex,lastindex,cnt)
+ -- print("points : ",dpoints[firstindex],dpoints[lastindex])
+ local function find(i)
+ local prv = lastindex
+ for j=firstindex,lastindex do
+ local nxt = dpoints[j] -- we could save this lookup when we return it
+ if nxt == i then
+ return false, j, false
+ elseif nxt > i then
+ return prv, false, j
+ end
+ prv = j
+ end
+ return prv, false, firstindex
+ end
+ -- We need the first and last points untouched so we first
+ -- collect data.
+ for point=first,last do
+ local d1, d2, d3 = find(point)
+ local p2 = points[point]
+ if d2 then
+ xv[point] = xvalues[d2]
+ yv[point] = yvalues[d2]
+ else
+ local n1 = dpoints[d1]
+ local n3 = dpoints[d3]
+ -- Some day I need to figure out these extra points but
+ -- I'll wait till the standard is more clear and fonts
+ -- become better (ntg-context: fraunces.ttf > abcdef).
+ if n1 > nofpoints then
+ n1 = nofpoints
+ end
+ if n3 > nofpoints then
+ n3 = nofpoints
+ end
+ --
+ local p1 = points[n1]
+ local p3 = points[n3]
+ local p1x = p1[1]
+ local p2x = p2[1]
+ local p3x = p3[1]
+ local p1y = p1[2]
+ local p2y = p2[2]
+ local p3y = p3[2]
+ local x1 = xvalues[d1]
+ local y1 = yvalues[d1]
+ local x3 = xvalues[d3]
+ local y3 = yvalues[d3]
+ --
+ local fx
+ local fy
+ --
+ if p1x == p3x then
+ if x1 == x3 then
+ fx = x1
+ else
+ fx = 0
+ end
+ elseif p2x <= min(p1x,p3x) then
+ if p1x < p3x then
+ fx = x1
+ else
+ fx = x3
+ end
+ elseif p2x >= max(p1x,p3x) then
+ if p1x > p3x then
+ fx = x1
+ else
+ fx = x3
+ end
+ else
+ fx = (p2x - p1x)/(p3x - p1x)
+-- fx = round(fx)
+ fx = (1 - fx) * x1 + fx * x3
+ end
+ --
+ if p1y == p3y then
+ if y1 == y3 then
+ fy = y1
+ else
+ fy = 0
+ end
+ elseif p2y <= min(p1y,p3y) then
+ if p1y < p3y then
+ fy = y1
+ else
+ fy = y3
+ end
+ elseif p2y >= max(p1y,p3y) then
+ if p1y > p3y then
+ fy = y1
+ else
+ fy = y3
+ end
+ else
+ fy = (p2y - p1y)/(p3y - p1y)
+-- fy = round(fy)
+ fy = (1 - fy) * y1 + fy * y3
+ end
+ -- -- maybe:
+ -- if p1y ~= p3y then
+ -- fy = (p2y - p1y)/(p3y - p1y)
+ -- fy = (1 - fy) * y1 + fy * y3
+ -- elseif abs(p1y-p2y) < abs(p3y-p2y) then
+ -- fy = y1
+ -- else
+ -- fy = y3
+ -- end
+ --
+ xv[point] = fx
+ yv[point] = fy
+ end
+ end
+ if lastindex < cnt then
+ firstindex = lastindex + 1
+ end
+ end
+ first = last + 1
+ end
+
+ for i=1,nofpoints do
+ local pi = points[i]
+ local fx = xv[i]
+ local fy = yv[i]
+ if fx ~= 0 then
+ pi[1] = pi[1] + factor * fx
+ end
+ if fy ~= 0 then
+ pi[2] = pi[2] + factor * fy
+ end
+ end
+ else
+ report("bad deltapoint data, maybe a missing hvar table")
+ end
+ else
+ for i=1,nofpoints do
+ local p = points[i]
+ local x = xvalues[i]
+ if x then
+ local y = yvalues[i]
+ if x ~= 0 then
+ p[1] = p[1] + factor * x
+ end
+ if y ~= 0 then
+ p[2] = p[2] + factor * y
+ end
+ else
+ break
+ end
+ end
+ end
+ if dowidth then
+ local h = nofpoints + 2 -- weird, the example font seems to have left first
+ local l = nofpoints + 1
+ ----- v = nofpoints + 3
+ ----- t = nofpoints + 4
+ local x = xvalues[h]
+ if x then
+ dw = dw + factor * x
+ end
+ local x = xvalues[l]
+ if x then
+ dl = dl + factor * x
+ end
+ end
+ end
+ end
+ -- for i=1,nofpoints do
+ -- local p = points[i]
+ -- p[1] = round(p[1])
+ -- p[2] = round(p[2])
+ -- end
+ if dowidth then
+ local width = glyph.width or 0
+ -- local lsb = glyph.lsb or 0
+ glyph.width = width + dw - dl
+ end
+ else
+ report("no points for glyph %a",glyph.name)
+ end
+end
+
+-- round or not ?
+
+-- local quadratic = true -- both methods work, todo: install a directive
+local quadratic = false
+
+local function contours2outlines_normal(glyphs,shapes) -- maybe accept the bbox overhead
+-- for index=1,#glyphs do
+ for index=0,#glyphs-1 do
+ local shape = shapes[index]
+ if shape then
+ local glyph = glyphs[index]
+ local contours = shape.contours
+ local points = shape.points
+ if contours then
+ local nofcontours = #contours
+ local segments = { }
+ local nofsegments = 0
+ glyph.segments = segments
+ if nofcontours > 0 then
+ local px = 0
+ local py = 0
+ local first = 1
+ for i=1,nofcontours do
+ local last = contours[i]
+ if last >= first then
+ local first_pt = points[first]
+ local first_on = first_pt[3]
+ -- todo no new tables but reuse lineto and quadratic
+ if first == last then
+ first_pt[3] = "m" -- "moveto"
+ nofsegments = nofsegments + 1
+ segments[nofsegments] = first_pt
+ else -- maybe also treat n == 2 special
+ local first_on = first_pt[3]
+ local last_pt = points[last]
+ local last_on = last_pt[3]
+ local start = 1
+ local control_pt = false
+ if first_on then
+ start = 2
+ else
+ if last_on then
+ first_pt = last_pt
+ else
+ first_pt = { (first_pt[1]+last_pt[1])/2, (first_pt[2]+last_pt[2])/2, false }
+ end
+ control_pt = first_pt
+ end
+ local x = first_pt[1]
+ local y = first_pt[2]
+ if not done then
+ xmin = x
+ ymin = y
+ xmax = x
+ ymax = y
+ done = true
+ end
+ nofsegments = nofsegments + 1
+ segments[nofsegments] = { x, y, "m" } -- "moveto"
+ if not quadratic then
+ px = x
+ py = y
+ end
+ local previous_pt = first_pt
+ for i=first,last do
+ local current_pt = points[i]
+ local current_on = current_pt[3]
+ local previous_on = previous_pt[3]
+ if previous_on then
+ if current_on then
+ -- both normal points
+ local x, y = current_pt[1], current_pt[2]
+ nofsegments = nofsegments + 1
+ segments[nofsegments] = { x, y, "l" } -- "lineto"
+ if not quadratic then
+ px, py = x, y
+ end
+ else
+ control_pt = current_pt
+ end
+ elseif current_on then
+ local x1 = control_pt[1]
+ local y1 = control_pt[2]
+ local x2 = current_pt[1]
+ local y2 = current_pt[2]
+ nofsegments = nofsegments + 1
+ if quadratic then
+ segments[nofsegments] = { x1, y1, x2, y2, "q" } -- "quadraticto"
+ else
+ x1, y1, x2, y2, px, py = curveto(x1, y1, px, py, x2, y2)
+ segments[nofsegments] = { x1, y1, x2, y2, px, py, "c" } -- "curveto"
+ end
+ control_pt = false
+ else
+ local x2 = (previous_pt[1]+current_pt[1])/2
+ local y2 = (previous_pt[2]+current_pt[2])/2
+ local x1 = control_pt[1]
+ local y1 = control_pt[2]
+ nofsegments = nofsegments + 1
+ if quadratic then
+ segments[nofsegments] = { x1, y1, x2, y2, "q" } -- "quadraticto"
+ else
+ x1, y1, x2, y2, px, py = curveto(x1, y1, px, py, x2, y2)
+ segments[nofsegments] = { x1, y1, x2, y2, px, py, "c" } -- "curveto"
+ end
+ control_pt = current_pt
+ end
+ previous_pt = current_pt
+ end
+ if first_pt == last_pt then
+ -- we're already done, probably a simple curve
+ else
+ nofsegments = nofsegments + 1
+ local x2 = first_pt[1]
+ local y2 = first_pt[2]
+ if not control_pt then
+ segments[nofsegments] = { x2, y2, "l" } -- "lineto"
+ elseif quadratic then
+ local x1 = control_pt[1]
+ local y1 = control_pt[2]
+ segments[nofsegments] = { x1, y1, x2, y2, "q" } -- "quadraticto"
+ else
+ local x1 = control_pt[1]
+ local y1 = control_pt[2]
+ x1, y1, x2, y2, px, py = curveto(x1, y1, px, py, x2, y2)
+ segments[nofsegments] = { x1, y1, x2, y2, px, py, "c" } -- "curveto"
+ -- px, py = x2, y2
+ end
+ end
+ end
+ end
+ first = last + 1
+ end
+ end
+ end
+ end
+ end
+end
+
+local function contours2outlines_shaped(glyphs,shapes,keepcurve)
+-- for index=1,#glyphs do
+ for index=0,#glyphs-1 do
+ local shape = shapes[index]
+ if shape then
+ local glyph = glyphs[index]
+ local contours = shape.contours
+ local points = shape.points
+ if contours then
+ local nofcontours = #contours
+ local segments = keepcurve and { } or nil
+ local nofsegments = 0
+ if keepcurve then
+ glyph.segments = segments
+ end
+ if nofcontours > 0 then
+ local xmin, ymin, xmax, ymax, done = 0, 0, 0, 0, false
+ local px, py = 0, 0 -- we could use these in calculations which saves a copy
+ local first = 1
+ for i=1,nofcontours do
+ local last = contours[i]
+ if last >= first then
+ local first_pt = points[first]
+ local first_on = first_pt[3]
+ -- todo no new tables but reuse lineto and quadratic
+ if first == last then
+ -- this can influence the boundingbox
+ if keepcurve then
+ first_pt[3] = "m" -- "moveto"
+ nofsegments = nofsegments + 1
+ segments[nofsegments] = first_pt
+ end
+ else -- maybe also treat n == 2 special
+ local first_on = first_pt[3]
+ local last_pt = points[last]
+ local last_on = last_pt[3]
+ local start = 1
+ local control_pt = false
+ if first_on then
+ start = 2
+ else
+ if last_on then
+ first_pt = last_pt
+ else
+ first_pt = { (first_pt[1]+last_pt[1])/2, (first_pt[2]+last_pt[2])/2, false }
+ end
+ control_pt = first_pt
+ end
+ local x = first_pt[1]
+ local y = first_pt[2]
+ if not done then
+ xmin, ymin, xmax, ymax = x, y, x, y
+ done = true
+ else
+ if x < xmin then xmin = x elseif x > xmax then xmax = x end
+ if y < ymin then ymin = y elseif y > ymax then ymax = y end
+ end
+ if keepcurve then
+ nofsegments = nofsegments + 1
+ segments[nofsegments] = { x, y, "m" } -- "moveto"
+ end
+ if not quadratic then
+ px = x
+ py = y
+ end
+ local previous_pt = first_pt
+ for i=first,last do
+ local current_pt = points[i]
+ local current_on = current_pt[3]
+ local previous_on = previous_pt[3]
+ if previous_on then
+ if current_on then
+ -- both normal points
+ local x = current_pt[1]
+ local y = current_pt[2]
+ if x < xmin then xmin = x elseif x > xmax then xmax = x end
+ if y < ymin then ymin = y elseif y > ymax then ymax = y end
+ if keepcurve then
+ nofsegments = nofsegments + 1
+ segments[nofsegments] = { x, y, "l" } -- "lineto"
+ end
+ if not quadratic then
+ px = x
+ py = y
+ end
+ else
+ control_pt = current_pt
+ end
+ elseif current_on then
+ local x1 = control_pt[1]
+ local y1 = control_pt[2]
+ local x2 = current_pt[1]
+ local y2 = current_pt[2]
+ if quadratic then
+ if x1 < xmin then xmin = x1 elseif x1 > xmax then xmax = x1 end
+ if y1 < ymin then ymin = y1 elseif y1 > ymax then ymax = y1 end
+ if keepcurve then
+ nofsegments = nofsegments + 1
+ segments[nofsegments] = { x1, y1, x2, y2, "q" } -- "quadraticto"
+ end
+ else
+ x1, y1, x2, y2, px, py = curveto(x1, y1, px, py, x2, y2)
+ if x1 < xmin then xmin = x1 elseif x1 > xmax then xmax = x1 end
+ if y1 < ymin then ymin = y1 elseif y1 > ymax then ymax = y1 end
+ if x2 < xmin then xmin = x2 elseif x2 > xmax then xmax = x2 end
+ if y2 < ymin then ymin = y2 elseif y2 > ymax then ymax = y2 end
+ if px < xmin then xmin = px elseif px > xmax then xmax = px end
+ if py < ymin then ymin = py elseif py > ymax then ymax = py end
+ if keepcurve then
+ nofsegments = nofsegments + 1
+ segments[nofsegments] = { x1, y1, x2, y2, px, py, "c" } -- "curveto"
+ end
+ end
+ control_pt = false
+ else
+ local x2 = (previous_pt[1]+current_pt[1])/2
+ local y2 = (previous_pt[2]+current_pt[2])/2
+ local x1 = control_pt[1]
+ local y1 = control_pt[2]
+ if quadratic then
+ if x1 < xmin then xmin = x1 elseif x1 > xmax then xmax = x1 end
+ if y1 < ymin then ymin = y1 elseif y1 > ymax then ymax = y1 end
+ if keepcurve then
+ nofsegments = nofsegments + 1
+ segments[nofsegments] = { x1, y1, x2, y2, "q" } -- "quadraticto"
+ end
+ else
+ x1, y1, x2, y2, px, py = curveto(x1, y1, px, py, x2, y2)
+ if x1 < xmin then xmin = x1 elseif x1 > xmax then xmax = x1 end
+ if y1 < ymin then ymin = y1 elseif y1 > ymax then ymax = y1 end
+ if x2 < xmin then xmin = x2 elseif x2 > xmax then xmax = x2 end
+ if y2 < ymin then ymin = y2 elseif y2 > ymax then ymax = y2 end
+ if px < xmin then xmin = px elseif px > xmax then xmax = px end
+ if py < ymin then ymin = py elseif py > ymax then ymax = py end
+ if keepcurve then
+ nofsegments = nofsegments + 1
+ segments[nofsegments] = { x1, y1, x2, y2, px, py, "c" } -- "curveto"
+ end
+ end
+ control_pt = current_pt
+ end
+ previous_pt = current_pt
+ end
+ if first_pt == last_pt then
+ -- we're already done, probably a simple curve
+ elseif not control_pt then
+ if keepcurve then
+ nofsegments = nofsegments + 1
+ segments[nofsegments] = { first_pt[1], first_pt[2], "l" } -- "lineto"
+ end
+ else
+ local x1 = control_pt[1]
+ local y1 = control_pt[2]
+ local x2 = first_pt[1]
+ local y2 = first_pt[2]
+ if x1 < xmin then xmin = x1 elseif x1 > xmax then xmax = x1 end
+ if y1 < ymin then ymin = y1 elseif y1 > ymax then ymax = y1 end
+ if quadratic then
+ if keepcurve then
+ nofsegments = nofsegments + 1
+ segments[nofsegments] = { x1, y1, x2, y2, "q" } -- "quadraticto"
+ end
+ else
+ x1, y1, x2, y2, px, py = curveto(x1, y1, px, py, x2, y2)
+ if x2 < xmin then xmin = x2 elseif x2 > xmax then xmax = x2 end
+ if y2 < ymin then ymin = y2 elseif y2 > ymax then ymax = y2 end
+ if px < xmin then xmin = px elseif px > xmax then xmax = px end
+ if py < ymin then ymin = py elseif py > ymax then ymax = py end
+ if keepcurve then
+ nofsegments = nofsegments + 1
+ segments[nofsegments] = { x1, y1, x2, y2, px, py, "c" } -- "curveto"
+ end
+ -- px, py = x2, y2
+ end
+ end
+ end
+ end
+ first = last + 1
+ end
+ -- See readers.hvar where we set the delta lsb as well as the adapted
+ -- width. At this point we do know the boundingbox's llx. The xmax is
+ -- not that relevant. It needs more testing!
+ --
+ xmin = glyph.boundingbox[1]
+ --
+ local dlsb = glyph.dlsb
+ if dlsb then
+ xmin = xmin + dlsb
+ glyph.dlsb = nil -- save space
+ end
+ --
+ glyph.boundingbox = { round(xmin), round(ymin), round(xmax), round(ymax) }
+ end
+ end
+ end
+ end
+end
+
+-- optimize for zero
+
+local c_zero = char(0)
+local s_zero = char(0,0)
+
+-- local shorthash = setmetatableindex(function(t,k)
+-- -- t[k] = char(band(rshift(k,8),0xFF),band(k,0xFF)) return t[k]
+-- t[k] = char((k >> 8) & 0xFF,k & 0xFF) return t[k]
+-- end)
+
+local function toushort(n)
+ -- return char(band(rshift(n,8),0xFF),band(n,0xFF))
+ return char((n >> 8) & 0xFF,n & 0xFF)
+ -- return shorthash[n]
+end
+
+local function toshort(n)
+ if n < 0 then
+ n = n + 0x10000
+ end
+ -- return char(band(rshift(n,8),0xFF),band(n,0xFF))
+ return char((n >> 8) & 0xFF,n & 0xFF)
+ -- return shorthash[n]
+end
+
+-- todo: we can reuse result, xpoints and ypoints
+
+local chars = setmetatableindex(function(t,k)
+ for i=0,255 do local v = char(i) t[i] = v end return t[k]
+end)
+
+local function repackpoints(glyphs,shapes)
+ local noboundingbox = { 0, 0, 0, 0 }
+ local result = { } -- reused
+ local xpoints = { } -- reused
+ local ypoints = { } -- reused
+ for index=0,#glyphs do
+ local shape = shapes[index]
+ if shape then
+ local r = 0
+ local glyph = glyphs[index]
+ local contours = shape.contours
+ local nofcontours = contours and #contours or 0
+ local boundingbox = glyph.boundingbox or noboundingbox
+ r = r + 1 result[r] = toshort(nofcontours)
+ r = r + 1 result[r] = toshort(boundingbox[1]) -- xmin
+ r = r + 1 result[r] = toshort(boundingbox[2]) -- ymin
+ r = r + 1 result[r] = toshort(boundingbox[3]) -- xmax
+ r = r + 1 result[r] = toshort(boundingbox[4]) -- ymax
+ if nofcontours > 0 then
+ for i=1,nofcontours do
+ r = r + 1 result[r] = toshort(contours[i]-1)
+ end
+ r = r + 1 result[r] = s_zero -- no instructions
+ local points = shape.points
+ local currentx = 0
+ local currenty = 0
+ -- local xpoints = { }
+ -- local ypoints = { }
+ local x = 0
+ local y = 0
+ local lastflag = nil
+ local nofflags = 0
+ for i=1,#points do
+ local pt = points[i]
+ local px = pt[1]
+ local py = pt[2]
+ local fl = pt[3] and 0x01 or 0x00
+ if px == currentx then
+ fl = fl + 0x10
+ else
+ local dx = round(px - currentx)
+ x = x + 1
+ if dx < -255 or dx > 255 then
+ xpoints[x] = toshort(dx)
+ elseif dx < 0 then
+ fl = fl + 0x02
+ -- xpoints[x] = char(-dx)
+ xpoints[x] = chars[-dx]
+ elseif dx > 0 then
+ fl = fl + 0x12
+ -- xpoints[x] = char(dx)
+ xpoints[x] = chars[dx]
+ else
+ fl = fl + 0x02
+ xpoints[x] = c_zero
+ end
+ end
+ if py == currenty then
+ fl = fl + 0x20
+ else
+ local dy = round(py - currenty)
+ y = y + 1
+ if dy < -255 or dy > 255 then
+ ypoints[y] = toshort(dy)
+ elseif dy < 0 then
+ fl = fl + 0x04
+ -- ypoints[y] = char(-dy)
+ ypoints[y] = chars[-dy]
+ elseif dy > 0 then
+ fl = fl + 0x24
+ -- ypoints[y] = char(dy)
+ ypoints[y] = chars[dy]
+ else
+ fl = fl + 0x04
+ ypoints[y] = c_zero
+ end
+ end
+ currentx = px
+ currenty = py
+ if lastflag == fl then
+ if nofflags == 255 then
+ -- This happens in koeieletters!
+ lastflag = lastflag + 0x08
+ r = r + 1 result[r] = char(lastflag,nofflags-1)
+ nofflags = 1
+ lastflag = fl
+ else
+ nofflags = nofflags + 1
+ end
+ else -- if > 255
+ if nofflags == 1 then
+ -- r = r + 1 result[r] = char(lastflag)
+ r = r + 1 result[r] = chars[lastflag]
+ elseif nofflags == 2 then
+ r = r + 1 result[r] = char(lastflag,lastflag)
+ elseif nofflags > 2 then
+ lastflag = lastflag + 0x08
+ r = r + 1 result[r] = char(lastflag,nofflags-1)
+ end
+ nofflags = 1
+ lastflag = fl
+ end
+ end
+ if nofflags == 1 then
+ -- r = r + 1 result[r] = char(lastflag)
+ r = r + 1 result[r] = chars[lastflag]
+ elseif nofflags == 2 then
+ r = r + 1 result[r] = char(lastflag,lastflag)
+ elseif nofflags > 2 then
+ lastflag = lastflag + 0x08
+ r = r + 1 result[r] = char(lastflag,nofflags-1)
+ end
+ -- r = r + 1 result[r] = concat(xpoints)
+ -- r = r + 1 result[r] = concat(ypoints)
+ r = r + 1 result[r] = concat(xpoints,"",1,x)
+ r = r + 1 result[r] = concat(ypoints,"",1,y)
+ end
+ -- can be helper or delegated to user
+ local stream = concat(result,"",1,r)
+ local length = #stream
+ local padding = ((length+3) // 4) * 4 - length
+ if padding > 0 then
+ -- stream = stream .. rep("\0",padding) -- can be a repeater
+ if padding == 1 then
+ padding = "\0"
+ elseif padding == 2 then
+ padding = "\0\0"
+ else
+ padding = "\0\0\0"
+ end
+ padding = stream .. padding
+ end
+ glyph.stream = stream
+ end
+ end
+end
+
+-- end of converter
+
+local flags = { }
+
+local function readglyph(f,nofcontours) -- read deltas here, saves space
+ local points = { }
+ -- local instructions = { }
+ local contours = { } -- readintegertable(f,nofcontours,short)
+ for i=1,nofcontours do
+ contours[i] = readshort(f) + 1
+ end
+ local nofpoints = contours[nofcontours]
+ local nofinstructions = readushort(f)
+ skipbytes(f,nofinstructions)
+ -- because flags can repeat we don't know the amount ... in fact this is
+ -- not that efficient (small files but more mem)
+ local i = 1
+ while i <= nofpoints do
+ local flag = readbyte(f)
+ flags[i] = flag
+ if (flag & 0x08) ~= 0 then
+ local n = readbyte(f)
+ if n == 1 then
+ i = i + 1
+ flags[i] = flag
+ else
+ for j=1,n do
+ i = i + 1
+ flags[i] = flag
+ end
+ end
+ end
+ i = i + 1
+ end
+ -- first come the x coordinates, and next the y coordinates and they
+ -- can be repeated
+ local x = 0
+ for i=1,nofpoints do
+ local flag = flags[i]
+ -- local short = (flag & 0x02) ~= 0
+ -- local same = (flag & 0x10) ~= 0
+ if (flag & 0x02) ~= 0 then
+ if (flag & 0x10) ~= 0 then
+ x = x + readbyte(f)
+ else
+ x = x - readbyte(f)
+ end
+ elseif (flag & 0x10) ~= 0 then
+ -- copy
+ else
+ x = x + readshort(f)
+ end
+ points[i] = { x, 0, (flag & 0x01) ~= 0 }
+ end
+ local y = 0
+ for i=1,nofpoints do
+ local flag = flags[i]
+ -- local short = (flag & 0x04) ~= 0
+ -- local same = (flag & 0x20) ~= 0
+ if (flag & 0x04) ~= 0 then
+ if (flag & 0x20) ~= 0 then
+ y = y + readbyte(f)
+ else
+ y = y - readbyte(f)
+ end
+ elseif (flag & 0x20) ~= 0 then
+ -- copy
+ else
+ y = y + readshort(f)
+ end
+ points[i][2] = y
+ end
+ return {
+ type = "glyph",
+ points = points,
+ contours = contours,
+ nofpoints = nofpoints,
+ }
+end
+
+local function readcomposite(f)
+ local components = { }
+ local nofcomponents = 0
+ local instructions = false
+ while true do
+ local flags = readushort(f)
+ local index = readushort(f)
+ ----- f_words = (flags & 0x0001) ~= 0
+ local f_xyarg = (flags & 0x0002) ~= 0
+ ----- f_round = (flags & 0x0006) ~= 0 -- 2 + 4
+ ----- f_scale = (flags & 0x0008) ~= 0
+ ----- f_reserved = (flags & 0x0010) ~= 0
+ ----- f_more = (flags & 0x0020) ~= 0
+ ----- f_xyscale = (flags & 0x0040) ~= 0
+ ----- f_matrix = (flags & 0x0080) ~= 0
+ ----- f_instruct = (flags & 0x0100) ~= 0
+ ----- f_usemine = (flags & 0x0200) ~= 0
+ ----- f_overlap = (flags & 0x0400) ~= 0
+ local f_offset = (flags & 0x0800) ~= 0
+ ----- f_uoffset = (flags & 0x1000) ~= 0
+ local xscale = 1
+ local xrotate = 0
+ local yrotate = 0
+ local yscale = 1
+ local xoffset = 0
+ local yoffset = 0
+ local base = false
+ local reference = false
+ if f_xyarg then
+ if (flags & 0x0001) ~= 0 then -- f_words
+ xoffset = readshort(f)
+ yoffset = readshort(f)
+ else
+ xoffset = readchar(f) -- signed byte, stupid name
+ yoffset = readchar(f) -- signed byte, stupid name
+ end
+ else
+ if (flags & 0x0001) ~= 0 then -- f_words
+ base = readshort(f)
+ reference = readshort(f)
+ else
+ base = readchar(f) -- signed byte, stupid name
+ reference = readchar(f) -- signed byte, stupid name
+ end
+ end
+ if (flags & 0x0008) ~= 0 then -- f_scale
+ xscale = read2dot14(f)
+ yscale = xscale
+ if f_xyarg and f_offset then
+ xoffset = xoffset * xscale
+ yoffset = yoffset * yscale
+ end
+ elseif (flags & 0x0040) ~= 0 then -- f_xyscale
+ xscale = read2dot14(f)
+ yscale = read2dot14(f)
+ if f_xyarg and f_offset then
+ xoffset = xoffset * xscale
+ yoffset = yoffset * yscale
+ end
+ elseif (flags & 0x0080) ~= 0 then -- f_matrix
+ xscale = read2dot14(f) -- xxpart
+ xrotate = read2dot14(f) -- yxpart
+ yrotate = read2dot14(f) -- xypart
+ yscale = read2dot14(f) -- yypart
+ if f_xyarg and f_offset then
+ xoffset = xoffset * sqrt(xscale ^2 + yrotate^2) -- was xrotate
+ yoffset = yoffset * sqrt(xrotate^2 + yscale ^2) -- was yrotate
+ end
+ end
+ nofcomponents = nofcomponents + 1
+ components[nofcomponents] = {
+ index = index,
+ usemine = (flags & 0x0200) ~= 0, -- f_usemine
+ round = (flags & 0x0006) ~= 0, -- f_round,
+ base = base,
+ reference = reference,
+ matrix = { xscale, xrotate, yrotate, yscale, xoffset, yoffset },
+ }
+ if (flags & 0x0100) ~= 0 then
+ instructions = true
+ end
+ if (flags & 0x0020) == 0 then -- f_more
+ break
+ end
+ end
+ return {
+ type = "composite",
+ components = components,
+ }
+end
+
+-- function readers.cff(f,offset,glyphs,doshapes) -- false == no shapes (nil or true otherwise)
+
+-- The glyf table depends on the loca table. We have one entry to much
+-- in the locations table (the last one is a dummy) because we need to
+-- calculate the size of a glyph blob from the delta, although we not
+-- need it in our usage (yet). We can remove the locations table when
+-- we're done (todo: cleanup finalizer).
+
+function readers.loca(f,fontdata,specification)
+ if specification.glyphs then
+ local datatable = fontdata.tables.loca
+ if datatable then
+ -- locations are relative to the glypdata table (glyf)
+ local offset = fontdata.tables.glyf.offset
+ local format = fontdata.fontheader.indextolocformat
+ local profile = fontdata.maximumprofile
+ local nofglyphs = profile and profile.nofglyphs
+ local locations = { }
+ setposition(f,datatable.offset)
+ if format == 1 then
+ if not nofglyphs then
+ nofglyphs = (datatable.length // 4) - 1
+ end
+ for i=0,nofglyphs do
+ locations[i] = offset + readulong(f)
+ end
+ fontdata.nofglyphs = nofglyphs
+ else
+ if not nofglyphs then
+ nofglyphs = (datatable.length // 2) - 1
+ end
+ for i=0,nofglyphs do
+ locations[i] = offset + readushort(f) * 2
+ end
+ end
+ fontdata.nofglyphs = nofglyphs
+ fontdata.locations = locations
+ end
+ end
+end
+
+function readers.glyf(f,fontdata,specification) -- part goes to cff module
+ local tableoffset = gotodatatable(f,fontdata,"glyf",specification.glyphs)
+ if tableoffset then
+ local locations = fontdata.locations
+ if locations then
+ local glyphs = fontdata.glyphs
+ local nofglyphs = fontdata.nofglyphs
+ local filesize = fontdata.filesize
+ local nothing = { 0, 0, 0, 0 }
+ local shapes = { }
+ local loadshapes = specification.shapes or specification.instance or specification.streams
+ for index=0,nofglyphs-1 do
+ local location = locations[index]
+ local length = locations[index+1] - location
+ if location >= filesize then
+ report("discarding %s glyphs due to glyph location bug",nofglyphs-index+1)
+ fontdata.nofglyphs = index - 1
+ fontdata.badfont = true
+ break
+ elseif length > 0 then
+ setposition(f,location)
+ local nofcontours = readshort(f)
+ glyphs[index].boundingbox = {
+ readshort(f), -- xmin
+ readshort(f), -- ymin
+ readshort(f), -- xmax
+ readshort(f), -- ymax
+ }
+ if not loadshapes then
+ -- save space
+ elseif nofcontours == 0 then
+ shapes[index] = readnothing(f)
+ elseif nofcontours > 0 then
+ shapes[index] = readglyph(f,nofcontours)
+ else
+ shapes[index] = readcomposite(f,nofcontours)
+ end
+ else
+ if loadshapes then
+ shapes[index] = readnothing(f)
+ end
+ glyphs[index].boundingbox = nothing
+ end
+ end
+ if loadshapes then
+ if readers.gvar then
+ readers.gvar(f,fontdata,specification,glyphs,shapes)
+ end
+ mergecomposites(glyphs,shapes)
+ if specification.instance then
+ if specification.streams then
+ repackpoints(glyphs,shapes)
+ else
+ contours2outlines_shaped(glyphs,shapes,specification.shapes)
+ end
+ elseif specification.shapes then
+ if specification.streams then
+ repackpoints(glyphs,shapes)
+ else
+ contours2outlines_normal(glyphs,shapes)
+ end
+ elseif specification.streams then
+ repackpoints(glyphs,shapes)
+ end
+ end
+ end
+ end
+end
+
+-- gvar is a bit crazy format and one can really wonder if the bit-jugling obscurity
+-- is still needed in these days .. cff is much nicer with these blends while the ttf
+-- coding variant looks quite horrible
+
+local function readtuplerecord(f,nofaxis)
+ local record = { }
+ for i=1,nofaxis do
+ record[i] = read2dot14(f)
+ end
+ return record
+end
+
+-- (1) the first is a real point the rest deltas
+-- (2) points can be present more than once (multiple deltas then)
+
+local function readpoints(f)
+ local count = readbyte(f)
+ if count == 0 then
+ -- second byte not used, deltas for all point numbers
+ return nil, 0 -- todo
+ else
+ if count < 128 then
+ -- no second byte, use count
+ elseif (count & 0x80) ~= 0 then
+ count = (count & 0x7F) * 256 + readbyte(f)
+ else
+ -- bad news
+ end
+ local points = { }
+ local p = 0
+ local n = 1 -- indices
+ while p < count do
+ local control = readbyte(f)
+ local runreader = (control & 0x80) ~= 0 and readushort or readbyte
+ local runlength = (control & 0x7F)
+ for i=1,runlength+1 do
+ n = n + runreader(f)
+ p = p + 1
+ points[p] = n
+ end
+ end
+ return points, p
+ end
+end
+
+local function readdeltas(f,nofpoints)
+ local deltas = { }
+ local p = 0
+ while nofpoints > 0 do
+ local control = readbyte(f)
+ if control then
+ local allzero = (control & 0x80) ~= 0
+ local runlength = (control & 0x3F) + 1
+ if allzero then
+ for i=1,runlength do
+ p = p + 1
+ deltas[p] = 0
+ end
+ else
+ local runreader = (control & 0x40) ~= 0 and readshort or readinteger
+ for i=1,runlength do
+ p = p + 1
+ deltas[p] = runreader(f)
+ end
+ end
+ nofpoints = nofpoints - runlength
+ else
+ -- it happens
+ break
+ end
+ end
+ -- saves space
+ if p > 0 then
+ return deltas
+ else
+ -- forget about all zeros
+ end
+end
+
+function readers.gvar(f,fontdata,specification,glyphdata,shapedata)
+ -- this is one of the messiest tables
+ local instance = specification.instance
+ if not instance then
+ return
+ end
+ local factors = specification.factors
+ if not factors then
+ return
+ end
+ local tableoffset = gotodatatable(f,fontdata,"gvar",specification.variable or specification.shapes)
+ if tableoffset then
+ local version = readulong(f) -- 1.0
+ local nofaxis = readushort(f)
+ local noftuples = readushort(f)
+ local tupleoffset = tableoffset + readulong(f)
+ local nofglyphs = readushort(f)
+ local flags = readushort(f)
+ local dataoffset = tableoffset + readulong(f)
+ local data = { }
+ local tuples = { }
+ local glyphdata = fontdata.glyphs
+ local dowidth = not fontdata.variabledata.hvarwidths
+ -- there is one more offset (so that one can calculate the size i suppose)
+ -- so we could test for overflows but we simply assume sane font files
+ if (flags & 0x0001) ~= 0 then
+ for i=1,nofglyphs+1 do
+ data[i] = dataoffset + readulong(f)
+ end
+ else
+ for i=1,nofglyphs+1 do
+ data[i] = dataoffset + 2*readushort(f)
+ end
+ end
+ --
+ if noftuples > 0 then
+ setposition(f,tupleoffset)
+ for i=1,noftuples do
+ tuples[i] = readtuplerecord(f,nofaxis)
+ end
+ end
+ local nextoffset = false
+ local startoffset = data[1]
+ for i=1,nofglyphs do -- hm one more cf spec
+ nextoffset = data[i+1]
+ local glyph = glyphdata[i-1]
+ local name = trace_deltas and glyph.name
+ if startoffset == nextoffset then
+ if name then
+ report("no deltas for glyph %a",name)
+ end
+ else
+ local shape = shapedata[i-1] -- todo 0
+ if not shape then
+ if name then
+ report("no shape for glyph %a",name)
+ end
+ else
+ lastoffset = startoffset
+ setposition(f,startoffset)
+ local flags = readushort(f)
+ local count = (flags & 0x0FFF)
+ local offset = startoffset + readushort(f) -- to serialized
+ local deltas = { }
+ local allpoints = (shape.nofpoints or 0) -- + 1
+ local shared = false
+ local nofshared = 0
+ if (flags & 0x8000) ~= 0 then -- has shared points
+ -- go to the packed stream (get them once)
+ local current = getposition(f)
+ setposition(f,offset)
+ shared, nofshared = readpoints(f)
+ offset = getposition(f)
+ setposition(f,current)
+ -- and back to the table
+ end
+ for j=1,count do
+ local size = readushort(f) -- check
+ local flags = readushort(f)
+ local index = (flags & 0x0FFF)
+ local haspeak = (flags & 0x8000) ~= 0
+ local intermediate = (flags & 0x4000) ~= 0
+ local private = (flags & 0x2000) ~= 0
+ local peak = nil
+ local start = nil
+ local stop = nil
+ local xvalues = nil
+ local yvalues = nil
+ local points = shared -- we default to shared
+ local nofpoints = nofshared -- we default to shared
+ -- local advance = 4
+ if haspeak then
+ peak = readtuplerecord(f,nofaxis)
+ -- advance = advance + 2*nofaxis
+ else
+ if index+1 > #tuples then
+ report("error, bad tuple index",index)
+ end
+ peak = tuples[index+1] -- hm, needs checking, only peak?
+ end
+ if intermediate then
+ start = readtuplerecord(f,nofaxis)
+ stop = readtuplerecord(f,nofaxis)
+ -- advance = advance + 4*nofaxis
+ end
+ -- get the deltas
+ if size > 0 then
+ local current = getposition(f)
+ -- goto the packed stream
+ setposition(f,offset)
+ if private then
+ points, nofpoints = readpoints(f)
+ end -- else
+ if nofpoints == 0 then
+ nofpoints = allpoints + 4
+ end
+ if nofpoints > 0 then
+ -- a nice test is to do only one
+ xvalues = readdeltas(f,nofpoints)
+ yvalues = readdeltas(f,nofpoints)
+ end
+ -- resync offset
+ offset = offset + size
+ -- back to the table
+ setposition(f,current)
+ end
+ if not xvalues and not yvalues then
+ points = nil
+ end
+ local s = 1
+ for i=1,nofaxis do
+ local f = factors[i]
+ local peak = peak and peak [i] or 0
+ -- local start = start and start[i] or 0
+ -- local stop = stop and stop [i] or 0
+ local start = start and start[i] or (peak < 0 and peak or 0)
+ local stop = stop and stop [i] or (peak > 0 and peak or 0) -- or 1 ?
+-- local stop = stop and stop [i] or (peak > 0 and peak or 1) -- or 1 ?
+ -- do we really need these tests ... can't we assume sane values
+ if start > peak or peak > stop then
+ -- * 1
+ elseif start < 0 and stop > 0 and peak ~= 0 then
+ -- * 1
+ elseif peak == 0 then
+ -- * 1
+ elseif f < start or f > stop then
+ -- * 0
+ s = 0
+ break
+ elseif f < peak then
+ s = s * (f - start) / (peak - start)
+ elseif f > peak then
+ s = s * (stop - f) / (stop - peak)
+ else
+ -- * 1
+ end
+ end
+ if s == 0 then
+ if name then
+ report("no deltas applied for glyph %a",name)
+ end
+ else
+ deltas[#deltas+1] = {
+ factor = s,
+ points = points,
+ xvalues = xvalues,
+ yvalues = yvalues,
+ }
+ end
+ end
+ if shape.type == "glyph" then
+ applyaxis(glyph,shape,deltas,dowidth)
+ else
+ -- todo: args_are_xy_values mess .. i have to be really bored
+ -- and motivated to deal with it
+ shape.deltas = deltas
+ end
+ end
+ end
+ startoffset = nextoffset
+ end
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-txt.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-txt.lmt
new file mode 100644
index 00000000000..aae69ddd383
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-txt.lmt
@@ -0,0 +1,570 @@
+if not modules then modules = { } end modules ['font-txt'] = {
+ version = 1.001,
+ comment = "companion to font-ini.mkiv",
+ original = "derived from a prototype by Kai Eigner",
+ author = "Hans Hagen", -- so don't blame KE
+ copyright = "TAT Zetwerk / PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- The next code is derived from a snippet handler prototype by Kai Eigner and
+-- resembles the main loop of the Lua font handler but I decided use a more generic
+-- (and pluggable) approach and not hook it into the already present opentype
+-- handler. This is cleaner as it cannot interfere with the Lua font processor
+-- (which does some more things) and is also better performance wise. It also makes
+-- it possible to support other handlers as history has proven that there are no
+-- universal solution in computer land. Most of the disc logic is kept but done
+-- slightly different.
+--
+-- The code is heavily optimized and generalized so there can be errors. As
+-- mentioned, the plug mode can be used for alternative font handlers. A font is
+-- still loaded but the node and base mode handlers are ignored. Plugins are
+-- unlikely to work well in context as they can mess up attribute driven subsystem,
+-- so they are not officially supported. The language and script options are
+-- available in the usual way.
+--
+-- The code collects snippets, either or not with spacing around them and partially
+-- running over disc nodes. The r2l "don't assume disc and collect larger chunks" is
+-- not robust so I got rid of that branch. This is somewhat similar to the Lua font
+-- handler.
+--
+-- An alternative is to run over longer strings with dummy chars (unicode objects) as
+-- markers for whatever is in the list but that becomes tricky with mixed fonts and
+-- reconstruction becomes a bit of a mess then, especially because disc nodes force
+-- us to backtrack and look at several solutions. It also has a larger memory
+-- footprint. Some tests demonstrated that it has no gain and only adds complexity.
+--
+-- This (derived) variant is better suited for context and seems to work ok in the
+-- generic variant. I also added some context specific tracing to the code. This
+-- variant uses the plug model provided in the context font system. So, in context,
+-- using the built in Lua handler is the better alternative, also because it has
+-- extensive tracing features. Context users would loose additional functionality
+-- that has been provided for a decade and therefore plugins are not officially
+-- supported (at least not by me, unless I use them myself).
+--
+-- There is no checking here for already processed characters so best not mix this
+-- variant with code that does similar things. If this code evolves depends on the
+-- useability. Kai's code can now be found on github where it is used with a harfbuzz
+-- library. We add this kind of stuff because occasionally we compare engines and
+-- Kai sends me examples and I then need to check context.
+--
+-- One important difference between Kai's approach and the one used in ConTeXt is
+-- that we use utf-32 instead of utf-8. Once I figured out that clusters were just
+-- indices into the original text that made more sense. The first implementation
+-- used the command line tool (binary), then I went for ffi (library).
+--
+-- Beware: this file only implements the framework for plugins. Plugins themselves
+-- are in other files (e.g. font-phb*.lua). On the todo list is a uniscribe plugin
+-- because that is after all the reference for opentype support, but that interface
+-- needs a bit more work (so it might never happen).
+--
+-- Usage: see m-fonts-plugins.mkiv. As it's a nice test for ffi support that file
+-- migth be added to the distribution somewhere in the middle of 2017 when the ffi
+-- interface has been tested a bit more. Okay, it's 2012 now and we're way past that
+-- date but we never had a reason for adding it to the ConTeXt distribution. It
+-- should still work okay because I occasionally checked it against progress made in
+-- the engines and used newer helpers.
+--
+-- Here is an example of usage:
+--
+-- \starttext
+-- \definefontfeature[test][mode=plug,features=text]
+-- \start
+-- \showfontkerns
+-- \definedfont[Serif*test]
+-- \input tufte \par
+-- \stop
+-- \stoptext
+
+local fonts = fonts
+local otf = fonts.handlers.otf
+local nodes = nodes
+
+local utfchar = utf.char
+
+local nuts = nodes.nuts
+
+local getnext = nuts.getnext
+local setnext = nuts.setnext
+local getprev = nuts.getprev
+local setprev = nuts.setprev
+local getid = nuts.getid
+local getsubtype = nuts.getsubtype
+local getfont = nuts.getfont
+local getchar = nuts.getchar
+local getdisc = nuts.getdisc
+local setdisc = nuts.setdisc
+local getboth = nuts.getboth
+local getscales = nuts.getscales
+local setlink = nuts.setlink
+local getkern = nuts.getkern
+local getwidth = nuts.getwidth
+
+local ischar = nuts.ischar
+local isglyph = nuts.isglyph
+local usesfont = nuts.usesfont
+
+local copy_node_list = nuts.copylist
+local find_node_tail = nuts.tail
+local flushlist = nuts.flushlist
+local freenode = nuts.free
+local endofmath = nuts.endofmath
+
+local startofpar = nuts.startofpar
+
+local nodecodes = nodes.nodecodes
+
+local glyph_code = nodecodes.glyph
+local glue_code = nodecodes.glue
+local disc_code = nodecodes.disc
+local kern_code = nodecodes.kern
+local math_code = nodecodes.math
+local dir_code = nodecodes.dir
+local par_code = nodecodes.par
+
+local righttoleft_code = nodes.dirvalues.righttoleft
+
+local txtdirstate = otf.helpers.txtdirstate
+local pardirstate = otf.helpers.pardirstate
+
+local fonthashes = fonts.hashes
+local fontdata = fonthashes.identifiers
+
+local function deletedisc(head)
+ local current = head
+ local next = nil
+ while current do
+ next = getnext(current)
+ if getid(current) == disc_code then
+ local pre, post, replace, pre_tail, post_tail, replace_tail = getdisc(current,true)
+ setdisc(current)
+ if pre then
+ flushlist(pre)
+ end
+ if post then
+ flushlist(post)
+ end
+ local p, n = getboth(current)
+ if replace then
+ if current == head then
+ head = replace
+ setprev(replace) -- already nil
+ else
+ setlink(p,replace)
+ end
+ setlink(replace_tail,n) -- was: setlink(n,replace_tail)
+ elseif current == head then
+ head = n
+ setprev(n)
+ else
+ setlink(p,n)
+ end
+ freenode(current)
+ end
+ current = next
+ end
+ return head
+end
+
+-- As we know that we have the same font we can probably optimize this a bit more.
+-- Although we can have more in disc nodes than characters and kerns we only support
+-- those two types.
+
+local function eqnode(n,m) -- no real improvement in speed
+ local n_char = isglyph(n)
+ if n_char then
+ return n_char == ischar(m,getfont(n))
+ elseif n_id == kern_code then
+ return getkern(n) == getkern(m)
+ end
+end
+
+local function equalnode(n,m)
+ if not n then
+ return not m
+ elseif not m then
+ return false
+ end
+ local n_char, n_id = isglyph(n)
+ if n_char then
+ return n_char == ischar(m,n_id) -- n_id == n_font
+ elseif n_id == whatsit_code then
+ return false
+ elseif n_id == glue_code then
+ return true
+ elseif n_id == kern_code then
+ return getkern(n) == getkern(m)
+ elseif n_id == disc_code then
+ local n_pre, n_post, n_replace = getdisc(n)
+ local m_pre, m_post, m_replace = getdisc(m)
+ while n_pre and m_pre do
+ if not eqnode(n_pre,m_pre) then
+ return false
+ end
+ n_pre = getnext(n_pre)
+ m_pre = getnext(m_pre)
+ end
+ if n_pre or m_pre then
+ return false
+ end
+ while n_post and m_post do
+ if not eqnode(n_post,m_post) then
+ return false
+ end
+ n_post = getnext(n_post)
+ m_post = getnext(m_post)
+ end
+ if n_post or m_post then
+ return false
+ end
+ while n_replace and m_replace do
+ if not eqnode(n_replace,m_replace) then
+ return false
+ end
+ n_replace = getnext(n_replace)
+ m_replace = getnext(m_replace)
+ end
+ if n_replace or m_replace then
+ return false
+ end
+ return true
+ end
+ return false
+end
+
+-- The spacing hackery is not nice. The text can get leading and trailing spaces
+-- and even mid spaces while the start and stop nodes not always are glues then
+-- so the plugin really needs to do some testing there. We could pass more context
+-- but it doesn't become much better.
+--
+-- The attribute gets passed for tracing purposes. We could support it (not that
+-- hard to do) but as we don't test strickly for fonts (in disc nodes) we are not
+-- compatible anyway. It would also mean more testing. So, don't use this mixed
+-- with node and base mode in context.
+--
+-- We don't distinguish between modes in treatment (so no r2l assumptions) and
+-- no cheats for scripts that might not use discretionaries. Such hacks can work
+-- in predictable cases but in context one can use a mix all kind of things and
+-- users do that. On the other hand, we do support longer glyph runs in both modes
+-- so there we gain a bit.
+
+do
+
+ local currentscale, currentxscale, currentyscale
+
+ local function texthandler(head,font,dynamic,rlmode,handler,startspacing,stopspacing,nesting)
+ if not head then
+ return
+ end
+ if startspacing == nil then
+ startspacing = false
+ end
+ if stopspacing == nil then
+ stopspacing = false
+ end
+
+ if getid(head) == par_code and startofpar(head) then
+ rlmode = pardirstate(head)
+ elseif rlmode == righttoleft_code then
+ rlmode = -1
+ else
+ rlmode = 0
+ end
+
+ local dirstack = { }
+ local rlparmode = 0
+ local topstack = 0
+ local text = { }
+ local size = 0
+ local current = head
+ local start = nil
+ local stop = nil
+ local startrlmode = rlmode
+
+ local function handle(leading,trailing) -- what gets passed can become configureable: e.g. utf 8
+ local stop = current or start -- hm, what with outer stop
+ if getid(stop) ~= glyph_code then
+ stop = getprev(stop)
+ end
+ head = handler(head,font,dynamic,rlmode,start,stop,text,leading,trailing) -- handler can adapt text
+ size = 0
+ text = { }
+ start = nil
+ end
+
+ while current do
+ local char, id = ischar(current,font,dynamic,currentscale,currentxscale,currentyscale)
+ if char then
+ if not start then
+ start = current
+ startrlmode = rlmode
+ end
+ local char = getchar(current)
+ size = size + 1
+ text[size] = char
+ current = getnext(current)
+ elseif char == false then
+ -- so a mixed font
+ if start and size > 0 then
+ handle(startspacing,false)
+ end
+ startspacing = false
+ local s, sx, sy = getscales(current)
+ if s ~= currentscale or sx ~= currentxscale or sy ~= currentyscale then
+ if start and size > 0 then
+ handle(startspacing,false)
+ end
+ startspacing = false
+ currentscale, currentxscale, currentyscale = s, sx, sy
+ -- todo: safeguard against a loop
+ else
+ current = getnext(current)
+ currentscale, currentxscale, currentyscale = false, false, false
+ end
+ elseif id == glue_code then
+ -- making this branch optional i.e. always use the else doesn't really
+ -- make a difference in performance (in hb) .. tricky anyway as we can
+ local width = getwidth(current)
+ if width > 0 then
+ if start and size > 0 then
+ handle(startspacing,true)
+ end
+ startspacing = true
+ stopspacing = false
+ else
+ if start and size > 0 then
+ head = handle(startspacing)
+ end
+ startspacing = false
+ stopspacing = false
+ end
+ current = getnext(current)
+ elseif id == disc_code and usesfont(current,font) then -- foo|-|bar : has hbox
+ -- This looks much like the original code but I don't see a need to optimize
+ -- for e.g. deva or r2l fonts. If there are no disc nodes then we won't see
+ -- this branch anyway and if there are, we should just deal with them.
+ --
+ -- There is still some weird code here ... start/stop and such. When I'm in
+ -- the mood (or see a need) I'll rewrite this bit.
+
+ -- bug: disc in last word moves to end (in practice not an issue as one
+ -- doesn't want a break there)
+
+ local pre = nil
+ local post = nil
+ local currentnext = getnext(current)
+ local current_pre, current_post, current_replace = getdisc(current)
+ setdisc(current) -- why, we set it later
+ if start then
+ pre = copy_node_list(start,current)
+ stop = getprev(current)
+ -- why also current and not:
+ -- pre = copy_node_list(start,stop)
+ if start == head then
+ head = current
+ end
+ setlink(getprev(start),current)
+ setlink(stop,current_pre)
+ current_pre = start
+ setprev(current_pre)
+ start = nil
+ stop = nil
+ startrlmode = rlmode
+ end
+ while currentnext do
+ local char, id = ischar(currentnext,font)
+ if char or id == disc_code then
+ stop = currentnext
+ currentnext = getnext(currentnext)
+ elseif id == glue_code then
+ local width = getwidth(currentnext)
+ if width and width > 0 then
+ stopspacing = true
+ else
+ stopspacing = false
+ end
+ break
+ else
+ break
+ end
+ end
+ if stop then
+ local currentnext = getnext(current)
+ local stopnext = getnext(stop)
+ post = copy_node_list(currentnext,stopnext)
+ if current_post then
+ setlink(find_node_tail(current_post),currentnext)
+ else
+ setprev(currentnext)
+ current_post = currentnext
+ end
+ setlink(current,stopnext)
+ setnext(stop)
+ stop = nil
+ end
+ if pre then
+ setlink(find_node_tail(pre),current_replace)
+ current_replace = pre
+ pre = nil
+ end
+ if post then
+ if current_replace then
+ setlink(find_node_tail(current_replace),post)
+ else
+ current_replace = post
+ end
+ post = nil
+ end
+ size = 0 -- hm, ok, start is also nil now
+ text = { }
+ if current_pre then
+ current_pre = texthandler(current_pre,font,dynamic,rlmode,handler,startspacing,false,"pre")
+ end
+ if current_post then
+ current_post = texthandler(current_post,font,dynamic,rlmode,handler,false,stopspacing,"post")
+ end
+ if current_replace then
+ current_replace = texthandler(current_replace,font,dynamic,rlmode,handler,startspacing,stopspacing,"replace")
+ end
+ startspacing = false
+ stopspacing = false
+ local cpost = current_post and find_node_tail(current_post)
+ local creplace = current_replace and find_node_tail(current_replace)
+ local cpostnew = nil
+ local creplacenew = nil
+ local newcurrent = nil
+ while cpost and equalnode(cpost,creplace) do
+ cpostnew = cpost
+ creplacenew = creplace
+ if creplace then
+ creplace = getprev(creplace)
+ end
+ cpost = getprev(cpost)
+ end
+ if cpostnew then
+ if cpostnew == current_post then
+ current_post = nil
+ else
+ setnext(getprev(cpostnew))
+ end
+ flushlist(cpostnew)
+ if creplacenew == current_replace then
+ current_replace = nil
+ else
+ setnext(getprev(creplacenew))
+ end
+ local c = getnext(current)
+ setlink(current,creplacenew)
+ local creplacenewtail = find_node_tail(creplacenew)
+ setlink(creplacenewtail,c)
+ newcurrent = creplacenewtail
+ end
+ current_post = current_post and deletedisc(current_post)
+ current_replace = current_replace and deletedisc(current_replace)
+ local cpre = current_pre
+ local creplace = current_replace
+ local cprenew = nil
+ local creplacenew = nil
+ while cpre and equalnode(cpre, creplace) do
+ cprenew = cpre
+ creplacenew = creplace
+ if creplace then
+ creplace = getnext(creplace)
+ end
+ cpre = getnext(cpre)
+ end
+ if cprenew then
+ cpre = current_pre
+ current_pre = getnext(cprenew)
+ if current_pre then
+ setprev(current_pre)
+ end
+ setnext(cprenew)
+ flushlist(cpre)
+ creplace = current_replace
+ current_replace = getnext(creplacenew)
+ if current_replace then
+ setprev(current_replace)
+ end
+ setlink(getprev(current),creplace)
+ if current == head then
+ head = creplace
+ end
+ setlink(creplacenew,current)
+ end
+ setdisc(current,current_pre,current_post,current_replace)
+ current = currentnext
+ else
+ if start and size > 0 then
+ handle(startspacing,stopspacing)
+ end
+ startspacing = false
+ stopspacing = false
+ if id == math_code then
+ current = getnext(endofmath(current))
+ elseif id == dir_code then
+ startspacing = false
+ topstack, rlmode = txtdirstate(current,dirstack,topstack,rlparmode)
+ current = getnext(current)
+ -- elseif id == par_code and startofpar(current) then
+ -- startspacing = false
+ -- rlparmode, rlmode = pardirstate(current)
+ -- current = getnext(current)
+ else
+ current = getnext(current)
+ end
+ end
+ end
+ if start and size > 0 then
+ handle(startspacing,stopspacing)
+ end
+ return head, true
+ end
+
+ function fonts.handlers.otf.texthandler(head,font,dynamic,direction,action)
+ currentscale = false
+ currentxscale = false
+ currentyscale = false
+ if action then
+ return texthandler(head,font,dynamic,direction == righttoleft_code and -1 or 0,action)
+ else
+ return head, false
+ end
+ end
+
+ -- Next comes a tracer plug into context.
+
+ ----- texthandler = fonts.handlers.otf.texthandler
+ local report_text = logs.reporter("otf plugin","text")
+ local nofruns = 0
+ local nofsnippets = 0
+ local f_unicode = string.formatters["%U"]
+
+ local function showtext(head,font,dynamic,rlmode,start,stop,list,before,after)
+ if list then
+ nofsnippets = nofsnippets + 1
+ local plus = { }
+ for i=1,#list do
+ local u = list[i]
+ list[i] = utfchar(u)
+ plus[i] = f_unicode(u)
+ end
+ report_text("%03i : [%s] %t [%s]-> % t", nofsnippets, before and "+" or "-", list, after and "+" or "-", plus)
+ else
+ report_text()
+ report_text("invalid list")
+ report_text()
+ end
+ return head, false
+ end
+
+ fonts.handlers.otf.registerplugin("text",function(head,font,dynamic,direction)
+ nofruns = nofruns + 1
+ nofsnippets = 0
+ report_text("start run %i",nofruns)
+ local h, d = texthandler(head,font,dynamic,direction,showtext)
+ report_text("stop run %i",nofruns)
+ return h, d
+ end)
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-unk.mkxl b/Master/texmf-dist/tex/context/base/mkxl/font-unk.mkxl
index 986a5c9bfa2..e44803ecc46 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-unk.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-unk.mkxl
@@ -42,11 +42,12 @@
\definefontsynonym [MonoCaps] [unknown]
\definefontsynonym [MathRoman] [unknown]
-\definefontsynonym [MathRomanL2R] [MathRoman]
-\definefontsynonym [MathRomanR2L] [MathRoman]
\definefontsynonym [MathRomanBold] [MathRoman]
-\definefontsynonym [MathRomanBoldL2R] [MathRomanBold]
-\definefontsynonym [MathRomanBoldR2L] [MathRomanBold]
+
+\definefontsynonym [MathRomanL2R] [MathRoman] % obsolete
+\definefontsynonym [MathRomanR2L] [MathRoman] % obsolete
+\definefontsynonym [MathRomanBoldL2R] [MathRomanBold] % obsolete
+\definefontsynonym [MathRomanBoldR2L] [MathRomanBold] % obsolete
\definefontsynonym [Handwriting] [unknown]
\definefontsynonym [Calligraphic] [unknown]
@@ -110,7 +111,7 @@
\s!sl=SerifSlanted sa 1,
\s!bi=SerifBoldItalic sa 1,
\s!bs=SerifBoldSlanted sa 1,
- \s!sc=SerifCaps sa 1]
+ \s!sc=SerifCaps sa 1] % obsolete, is a font feature now
\definebodyfont [default] [ss]
[\s!tf=Sans sa 1,
@@ -119,7 +120,7 @@
\s!sl=SansSlanted sa 1,
\s!bi=SansBoldItalic sa 1,
\s!bs=SansBoldSlanted sa 1,
- \s!sc=SansCaps sa 1]
+ \s!sc=SansCaps sa 1] % obsolete, is a font feature now
\definebodyfont [default] [tt]
[\s!tf=Mono sa 1,
@@ -128,20 +129,24 @@
\s!sl=MonoSlanted sa 1,
\s!bi=MonoBoldItalic sa 1,
\s!bs=MonoBoldSlanted sa 1,
- \s!sc=MonoCaps sa 1]
+ \s!sc=MonoCaps sa 1] % obsolete, is a font feature now
+
+% \definebodyfont [default] [mm]
+% [\s!mr =MathRoman mo 1,
+% \s!mrlr=MathRomanL2R mo 1,
+% \s!mrrl=MathRomanR2L mo 1,
+% \s!mb =MathRomanBold mo 1,
+ % \s!mblr=MathRomanBoldL2R mo 1,
+% \s!mbrl=MathRomanBoldR2L mo 1]
\definebodyfont [default] [mm]
- [\s!mr =MathRoman mo 1,
- \s!mrlr=MathRomanL2R mo 1,
- \s!mrrl=MathRomanR2L mo 1,
- \s!mb =MathRomanBold mo 1,
- \s!mblr=MathRomanBoldL2R mo 1,
- \s!mbrl=MathRomanBoldR2L mo 1]
-
-\definebodyfont [default] [hw]
+ [\s!mr=MathRoman mo 1,
+ \s!mb=MathRomanBold mo 1]
+
+\definebodyfont [default] [hw] % only for lucida, can be just a typeface
[\s!tf=Handwriting sa 1]
-\definebodyfont [default] [cg]
+\definebodyfont [default] [cg] % only for lucida, can be just a typeface
[\s!tf=Calligraphy sa 1]
%D These definitions come into action as soon as names are mapped onto real file
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-var.mklx b/Master/texmf-dist/tex/context/base/mkxl/font-var.mklx
index 421521f50f5..aeec18054d4 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-var.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-var.mklx
@@ -38,17 +38,19 @@
\immutable\def\defaultfontbody {\normalizedbodyfontsize}
\immutable\let\defaultfontstyle \s!rm
\immutable\let\defaultfontalternative\s!tf
-\immutable\let\defaultfontsize \empty
\immutable\let\defaultfontface \!!zerocount
-\mutable\let\globalfontclass\empty
-\mutable\let\fontclass \empty
+\immutable\lettonothing\defaultfontsize
+
\mutable\let\fontbody \defaultfontbody
\mutable\let\fontstyle \defaultfontstyle
\mutable\let\fontalternative\defaultfontalternative
\mutable\let\fontsize \defaultfontsize
\mutable\let\fontface \!!zerocount
+\mutable\lettonothing\globalfontclass
+\mutable\lettonothing\fontclass
+
\installmacrostack\fontstyle
% we can use an indirect mapping for fontclasses (map string onto numbers) and indeed this
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-vfc.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-vfc.lmt
index 9330bdea0b2..6e9cd401350 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-vfc.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-vfc.lmt
@@ -18,25 +18,35 @@ local setmetatableindex = table.setmetatableindex
-- Helpers dealing with virtual fonts: beware, these are final values so
-- don't change the content of tables fetched from here!
-local push = { "push" }
-local pop = { "pop" }
-local dummy = { "comment" }
+local pushcommand = { "push" }
+local popcommand = { "pop" }
+local dummycommand = { "comment" }
+
+local slotcommand = setmetatableindex(function(t,k)
+ local v = setmetatableindex(function(tt,kk)
+ local vv = { "slot", k, kk }
+ tt[kk] = vv
+ return vv
+ end)
+ t[k] = v
+ return v
+end)
function helpers.prependcommands(commands,...)
- insert(commands,1,push)
+ insert(commands,1,pushcommand)
for i=select("#",...),1,-1 do
local s = (select(i,...))
if s then
insert(commands,1,s)
end
end
- insert(commands,pop)
+ insert(commands,popcommand)
return commands
end
function helpers.appendcommands(commands,...)
- insert(commands,1,push)
- insert(commands,pop)
+ insert(commands,1,pushcommand)
+ insert(commands,popcommand)
for i=1,select("#",...) do
local s = (select(i,...))
if s then
@@ -47,20 +57,20 @@ function helpers.appendcommands(commands,...)
end
function helpers.prependcommandtable(commands,t)
- insert(commands,1,push)
+ insert(commands,1,pushcommand)
for i=#t,1,-1 do
local s = t[i]
if s then
insert(commands,1,s)
end
end
- insert(commands,pop)
+ insert(commands,popcommand)
return commands
end
function helpers.appendcommandtable(commands,t)
- insert(commands,1,push)
- insert(commands,pop)
+ insert(commands,1,pushcommand)
+ insert(commands,popcommand)
for i=1,#t do
local s = t[i]
if s then
@@ -71,20 +81,38 @@ function helpers.appendcommandtable(commands,t)
end
helpers.commands = utilities.storage.allocate {
- char = setmetatableindex(function(t,k) local v = { "slot", 0, k } t[k] = v return v end),
- right = setmetatableindex(function(t,k) local v = { "right", k } t[k] = v return v end),
- left = setmetatableindex(function(t,k) local v = { "left", k } t[k] = v return v end),
- down = setmetatableindex(function(t,k) local v = { "down", k } t[k] = v return v end),
- up = setmetatableindex(function(t,k) local v = { "up", k } t[k] = v return v end),
- push = push,
- pop = pop,
- dummy = dummy,
+ char = setmetatableindex(function(t,k) local v = { "char", k } t[k] = v return v end),
+ stay = setmetatableindex(function(t,k) local v = { "stay", k } t[k] = v return v end),
+ right = setmetatableindex(function(t,k) local v = { "right", k } t[k] = v return v end),
+ left = setmetatableindex(function(t,k) local v = { "left", k } t[k] = v return v end),
+ down = setmetatableindex(function(t,k) local v = { "down", k } t[k] = v return v end),
+ up = setmetatableindex(function(t,k) local v = { "up", k } t[k] = v return v end),
+ push = pushcommand,
+ pop = popcommand,
+ dummy = dummycommand,
+ slot = slotcommand,
}
+local codeinjections = backends.codeinjections
+local vfstartcolor = codeinjections.vfstartcolor
+local vfstopcolor = codeinjections.vfstopcolor
+----- vfliteral = codeinjections.vfliteral
+
helpers.vfinjectors = {
- -- backend specific: startcolor, stopcolor etc
+ -- startcolor = function(h,v,packet) codeinjections.vfstartcolor(h,v,packet) end,
+ -- stopcolor = function(h,v,packet) codeinjections.vfstartcolor(h,v,packet) end,
+ -- literal = function(h,v,packet) codeinjections.vfliteral (h,v,packer) end,
+ startcolor = function(h,v,packet) vfstartcolor(h,v,packet) end,
+ stopcolor = function(h,v,packet) vfstopcolor (h,v,packet) end,
+ -- literal = function(h,v,packet) vfliteral (h,v,packer) end,
}
+updaters.register("backends.injections.latebindings",function()
+ vfstartcolor = backends.codeinjections.vfstartcolor
+ vfstopcolor = backends.codeinjections.vfstopcolor
+ -- vfliteral = backends.codeinjections.vfliteral
+end)
+
-- maybe round()
local defaultline = 16384
@@ -94,7 +122,7 @@ helpers.vfspecials = {
backgrounds = setmetatableindex(function(t,h)
local v = setmetatableindex(function(t,d)
local v = setmetatableindex(function(t,w)
- local v = { "frame", w, h, d, defaultline, true, true }
+ local v = { "frame", w, h, d, defaultline, false, false }
t[w] = v
return v
end)
@@ -108,7 +136,7 @@ helpers.vfspecials = {
outlines = setmetatableindex(function(t,h)
local v = setmetatableindex(function(t,d)
local v = setmetatableindex(function(t,w)
- local v = { "frame", w, h, d, defaultline, false, true }
+ local v = { "frame", w, h, d, defaultline, true, false }
t[w] = v
return v
end)
@@ -153,21 +181,28 @@ local scaled = {
-- additional ones are never scaled (color etc)
}
+-- normally we don't have these, and if so, only in old school fonts
+-- in which case we don't have extensions so ...
+
function helpers.scalecommands(list,hdelta,vdelta)
local n = #list
for i=1,n do
- local key = list[i][1]
- if scaled[list[i][1]] then
+ local cmd = list[i]
+ if scaled[cmd[1]] then
local result = { }
for i=1,n do
local cmd = list[i]
- local key = ivc[1]
+ local key = cmd[1]
if key == "right" or key == "left" then
result[i] = { key, cmd[2]*hdelta }
elseif key == "down" or key == "up" then
result[i] = { key, cmd[2]*vdelta }
- elseif key == "offset" or key == "rule" then
+ elseif key == "offset" then
+ result[i] = { key, cmd[2]*hdelta, cmd[3]*vdelta, cmd[4], cmd[5], cmd[6] }
+ elseif key == "rule" then
result[i] = { key, cmd[2]*hdelta, cmd[3]*vdelta }
+ elseif key == "line" then
+ result[i] = { key, cmd[2]*hdelta, cmd[3]*vdelta, cmd[4]*vdelta, cmd[5] }
-- elseif key == "frame" then
-- result[i] = cmd -- already scaled, for now
else
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-vir.lmt b/Master/texmf-dist/tex/context/base/mkxl/font-vir.lmt
index f60639d6ad8..84da09064e1 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-vir.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/font-vir.lmt
@@ -38,6 +38,8 @@ vf.whatever = whatever
vf.helpers = helpers
vf.predefined = predefined
+local slotcommand = predefined.slot
+
setmetatableindex(whatever, function(t,k) local v = { } t[k] = v return v end)
local function checkparameters(g,f)
@@ -78,7 +80,7 @@ local function combine_assign(g, name, from, to, start, force)
for i=from,to do
if fc[i] and (force or not gc[i]) then
gc[i] = fastcopy(fc[i],true) -- can be optimized
- gc[i].commands = { { "slot", hn, start } }
+ gc[i].commands = { slotcommand[hn][start] }
gd[i] = fd[i]
end
start = start + 1
@@ -107,7 +109,7 @@ local function combine_names(g,name,force)
for k, v in next, fc do
if force or not gc[k] then
gc[k] = fastcopy(v,true)
- gc[k].commands = { { "slot", hn, k } }
+ gc[k].commands = { slotcommand[hn][k] }
gd[i] = fd[i]
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/good-gen.lmt b/Master/texmf-dist/tex/context/base/mkxl/good-gen.lmt
new file mode 100644
index 00000000000..49b37930470
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/good-gen.lmt
@@ -0,0 +1,220 @@
+if not modules then modules = { } end modules ['good-gen'] = {
+ version = 1.000,
+ comment = "companion to font-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- depends on ctx
+
+local type, next = type, next
+local lower = string.lower
+local filesuffix, replacesuffix = file.suffix, file.replacesuffix
+local fonts = fonts
+
+----- trace_goodies = false trackers.register("fonts.goodies", function(v) trace_goodies = v end)
+----- report_goodies = logs.reporter("fonts","goodies")
+
+local allocate = utilities.storage.allocate
+local texsp = tex.sp
+local fontgoodies = fonts.goodies or { }
+local findfile = resolvers.findfile
+
+
+local typefaces = fonts.typefaces or { }
+fonts.typefaces = typefaces
+
+-- the following takes care of explicit file specifications
+--
+-- files = {
+-- name = "antykwapoltawskiego",
+-- list = {
+-- ["AntPoltLtCond-Regular.otf"] = {
+-- -- name = "antykwapoltawskiego",
+-- style = "regular",
+-- weight = "light",
+-- width = "condensed",
+-- },
+-- },
+-- }
+
+-- files
+
+local function initialize(goodies)
+ local files = goodies.files
+ if files then
+ fonts.names.register(files)
+ end
+end
+
+fontgoodies.register("files", initialize)
+
+-- some day we will have a define command and then we can also do some
+-- proper tracing
+--
+-- fonts.typefaces["antykwapoltawskiego-condensed"] = {
+-- shortcut = "rm",
+-- shape = "serif",
+-- fontname = "antykwapoltawskiego",
+-- normalweight = "light",
+-- boldweight = "medium",
+-- width = "condensed",
+-- size = "default",
+-- features = "default",
+-- }
+
+local function initialize(goodies)
+ local typefaces = goodies.typefaces
+ if typefaces then
+ local ft = fonts.typefaces
+ for k, v in next, typefaces do
+ ft[k] = v
+ end
+ end
+end
+
+fontgoodies.register("typefaces", initialize)
+
+local compositions = { }
+
+function fontgoodies.getcompositions(tfmdata)
+ return compositions[file.nameonly(tfmdata.properties.filename or "")]
+end
+
+local function initialize(goodies)
+ local gc = goodies.compositions
+ if gc then
+ for k, v in next, gc do
+ compositions[k] = v
+ end
+ end
+end
+
+fontgoodies.register("compositions", initialize)
+
+-- extra treatments (on top of defaults): \loadfontgoodies[mytreatments]
+
+local treatmentdata = fonts.treatments.data
+
+local function initialize(goodies)
+ local treatments = goodies.treatments
+ if treatments then
+ for name, data in next, treatments do
+ treatmentdata[name] = data -- always wins
+ end
+ end
+end
+
+fontgoodies.register("treatments", initialize)
+
+local filenames = fontgoodies.filenames or allocate()
+fontgoodies.filenames = filenames
+
+local filedata = filenames.data or allocate()
+filenames.data = filedata
+
+local function initialize(goodies) -- design sizes are registered global
+ local fn = goodies.filenames
+ if fn then
+ for usedname, alternativenames in next, fn do
+ filedata[usedname] = alternativenames
+ end
+ end
+end
+
+fontgoodies.register("filenames", initialize)
+
+function fontgoodies.filenames.resolve(name)
+ local fd = filedata[name]
+ if fd and findfile(name) == "" then
+ for i=1,#fd do
+ local fn = fd[i]
+ if findfile(fn) ~= "" then
+ return fn
+ end
+ end
+ elseif filesuffix(name) == "any" then
+ -- This is a bit weird place but it's a kind of fallback option in case
+ -- we can't resolve due to a name conflict.
+ local sequence = fonts.readers.sequence
+ for i=1,#sequence do
+ local fn = replacesuffix(name,sequence[i])
+ if findfile(fn) ~= "" then
+ return fn
+ end
+ end
+ else
+ -- no lookup, just use the regular mechanism
+ end
+ return name
+end
+
+local designsizes = fontgoodies.designsizes or allocate()
+fontgoodies.designsizes = designsizes
+
+local designdata = designsizes.data or allocate()
+designsizes.data = designdata
+
+local function initialize(goodies) -- design sizes are registered global
+ local gd = goodies.designsizes
+ if gd then
+ for name, data in next, gd do
+ local ranges = { }
+ for size, file in next, data do
+ if size ~= "default" then
+ ranges[#ranges+1] = { texsp(size), file } -- also lower(file)
+ end
+ end
+ table.sort(ranges,function(a,b) return a[1] < b[1] end)
+ designdata[lower(name)] = { -- overloads, doesn't merge!
+ default = data.default,
+ ranges = ranges,
+ }
+ end
+ end
+end
+
+fontgoodies.register("designsizes", initialize)
+
+function fontgoodies.designsizes.register(name,size,specification)
+ local d = designdata[name]
+ if not d then
+ d = {
+ ranges = { },
+ default = nil, -- so we have no default set
+ }
+ designdata[name] = d
+ end
+ if size == "default" then
+ d.default = specification
+ else
+ if type(size) == "string" then
+ size = texsp(size) -- hm
+ end
+ local ranges = d.ranges
+ ranges[#ranges+1] = { size, specification }
+ end
+end
+
+function fontgoodies.designsizes.filename(name,spec,size,force) -- returns nil of no match
+ local data = designdata[lower(name)]
+ if data then
+ if not spec or spec == "" or spec == "default" then
+ return data.default
+ elseif not force and texconditionals["c_font_compact"] then
+ return data.default
+ elseif spec == "auto" then
+ local ranges = data.ranges
+ if ranges then
+ for i=1,#ranges do
+ local r = ranges[i]
+ if r[1] >= size then -- todo: rounding so maybe size - 100
+ return r[2]
+ end
+ end
+ end
+ return data.default or (ranges and ranges[#ranges][2])
+ end
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/good-mth.lmt b/Master/texmf-dist/tex/context/base/mkxl/good-mth.lmt
index 87b6787df6a..6b0c320b247 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/good-mth.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/good-mth.lmt
@@ -21,181 +21,21 @@ local fontgoodies = fonts.goodies or { }
local fontcharacters = fonts.hashes.characters
-local trace_defining = false trackers.register("math.defining", function(v) trace_defining = v end)
+local trace_defining = false trackers.register ("math.defining", function(v) trace_defining = v end)
+local use_math_goodies = true directives.register("math.nogoodies", function(v) use_math_goodies = not v end)
local report_math = logs.reporter("mathematics","initializing")
local nuts = nodes.nuts
-
local setlink = nuts.setlink
local nodepool = nuts.pool
-
local new_kern = nodepool.kern
local new_glyph = nodepool.glyph
local new_hlist = nodepool.hlist
local new_vlist = nodepool.vlist
-local insert_node_after = nuts.insert_after
-
-local helpers = fonts.helpers
-local upcommand = helpers.commands.up
-local rightcommand = helpers.commands.right
-local charcommand = helpers.commands.char
-local prependcommands = helpers.prependcommands
-
--- experiment, we have to load the definitions immediately as they precede
--- the definition so they need to be initialized in the typescript
-
-local function withscriptcode(tfmdata,unicode,data,action)
- if type(unicode) == "string" then
- local p, u = match(unicode,"^(.-):(.-)$")
- if u then
- u = tonumber(u)
- if u then
- local slots = fonts.helpers.mathscriptslots(tfmdata,u)
- if slots then
- if p == "*" then
- action(u,data)
- for i=1,#slots do
- action(slots[i],data)
- end
- else
- p = tonumber(p)
- if p then
- action(slots[p],data)
- end
- end
- end
- end
- end
- else
- action(unicode,data)
- end
-end
-
-local function finalize(tfmdata,feature,value)
--- if tfmdata.mathparameters then -- funny, cambria text has this
- local goodies = tfmdata.goodies
- if goodies then
- local virtualized = mathematics.virtualized
- for i=1,#goodies do
- local goodie = goodies[i]
- local mathematics = goodie.mathematics
- local dimensions = mathematics and mathematics.dimensions
- if dimensions then
- if trace_defining then
- report_math("overloading dimensions in %a @ %p",tfmdata.properties.fullname,tfmdata.parameters.size)
- end
- local characters = tfmdata.characters
- local descriptions = tfmdata.descriptions
- local parameters = tfmdata.parameters
- local factor = parameters.factor
- local hfactor = parameters.hfactor
- local vfactor = parameters.vfactor
- --
- tfmdata.type = "virtual"
- tfmdata.properties.virtualized = true
- --
- local function overloadone(unicode,data)
- local character = characters[unicode]
- if not character then
- local c = virtualized[unicode]
- if c then
- character = characters[c]
- end
- end
- if character then
- local width = data.width
- local height = data.height
- local depth = data.depth
- if trace_defining and (width or height or depth) then
- report_math("overloading dimensions of %C, width %p, height %p, depth %p",
- unicode,width or 0,height or 0,depth or 0)
- end
- if width then character.width = width * hfactor end
- if height then character.height = height * vfactor end
- if depth then character.depth = depth * vfactor end
- --
- local xoffset = data.xoffset
- local yoffset = data.yoffset
- if xoffset == "llx" then
- local d = descriptions[unicode]
- if d then
- xoffset = - d.boundingbox[1] * hfactor
- character.width = character.width + xoffset
- xoffset = rightcommand[xoffset]
- else
- xoffset = nil
- end
- elseif xoffset and xoffset ~= 0 then
- xoffset = rightcommand[xoffset * hfactor]
- else
- xoffset = nil
- end
- if yoffset and yoffset ~= 0 then
- yoffset = upcommand[yoffset * vfactor]
- else
- yoffset = nil
- end
- if xoffset or yoffset then
- local commands = characters.commands
- if commands then
- prependcommands(commands,yoffset,xoffset)
- else
- local slot = charcommand[unicode]
- if xoffset and yoffset then
- character.commands = { xoffset, yoffset, slot }
- elseif xoffset then
- character.commands = { xoffset, slot }
- else
- character.commands = { yoffset, slot }
- end
- end
- end
- elseif trace_defining then
- report_math("no overloading dimensions of %C, not in font",unicode)
- end
- end
- local function overload(dimensions)
- for unicode, data in next, dimensions do
- withscriptcode(tfmdata,unicode,data,overloadone)
- end
- end
- if value == nil then
- value = { "default" }
- end
- if value == "all" or value == true then
- for name, value in next, dimensions do
- overload(value)
- end
- else
- if type(value) == "string" then
- value = utilities.parsers.settings_to_array(value)
- end
- if type(value) == "table" then
- for i=1,#value do
- local d = dimensions[value[i]]
- if d then
- overload(d)
- end
- end
- end
- end
- end
- end
- end
-end
-
-registerotffeature {
- name = "mathdimensions",
- description = "manipulate math dimensions",
- -- default = true,
- manipulators = {
- base = finalize,
- node = finalize,
- }
-}
+local insertnodeafter = nuts.insertafter
local function initialize(goodies)
local mathgoodies = goodies.mathematics
@@ -224,122 +64,6 @@ end
fontgoodies.register("mathematics", initialize)
--- local enabled = false directives.register("fontgoodies.mathkerning",function(v) enabled = v end)
-
-local function initialize(tfmdata)
--- if enabled and tfmdata.mathparameters then -- funny, cambria text has this
- if tfmdata.mathparameters then -- funny, cambria text has this
- local goodies = tfmdata.goodies
- if goodies then
- local characters = tfmdata.characters
- if characters[0x1D44E] then -- 119886
- -- we have at least an italic a
- for i=1,#goodies do
- local mathgoodies = goodies[i].mathematics
- if mathgoodies then
- local kerns = mathgoodies.kerns
- if kerns then
- local function kernone(unicode,data)
- local chardata = characters[unicode]
- if chardata and (not chardata.mathkerns or data.force) then
- chardata.mathkerns = data
- end
- end
- for unicode, data in next, kerns do
- withscriptcode(tfmdata,unicode,data,kernone)
- end
- return
- end
- end
- end
- else
- return -- no proper math font anyway
- end
- end
- end
-end
-
-registerotffeature {
- name = "mathkerns",
- description = "math kerns",
- -- default = true,
- initializers = {
- base = initialize,
- node = initialize,
- }
-}
-
--- math italics (not really needed)
---
--- it would be nice to have a \noitalics\font option
-
-local function initialize(tfmdata)
- local goodies = tfmdata.goodies
- if goodies then
- local shared = tfmdata.shared
- for i=1,#goodies do
- local mathgoodies = goodies[i].mathematics
- if mathgoodies then
- local mathitalics = mathgoodies.italics
- if mathitalics then
- local properties = tfmdata.properties
- if properties.setitalics then
- mathitalics = mathitalics[file.nameonly(properties.name)] or mathitalics
- if mathitalics then
- if trace_goodies then
- report_goodies("loading mathitalics for font %a",properties.name)
- end
- local corrections = mathitalics.corrections
- local defaultfactor = mathitalics.defaultfactor
- -- properties.mathitalic_defaultfactor = defaultfactor -- we inherit outer one anyway (name will change)
- if corrections then
- fontgoodies.registerpostprocessor(tfmdata, function(tfmdata) -- this is another tfmdata (a copy)
- -- better make a helper so that we have less code being defined
- local properties = tfmdata.properties
- local parameters = tfmdata.parameters
- local characters = tfmdata.characters
- properties.mathitalic_defaultfactor = defaultfactor
- properties.mathitalic_defaultvalue = defaultfactor * parameters.quad
- if trace_goodies then
- report_goodies("assigning mathitalics for font %a",properties.name)
- end
- local quad = parameters.quad
- local hfactor = parameters.hfactor
- for k, v in next, corrections do
- local c = characters[k]
- if c then
- if v > -1 and v < 1 then
- c.italic = v * quad
- else
- c.italic = v * hfactor
- end
- else
- report_goodies("invalid mathitalics entry %U for font %a",k,properties.name)
- end
- end
- end)
- end
- return -- maybe not as these can accumulate
- end
- end
- end
- end
- end
- end
-end
-
-registerotffeature {
- name = "mathitalics",
- description = "additional math italic corrections",
- -- default = true,
- initializers = {
- base = initialize,
- node = initialize,
- }
-}
-
--- fontgoodies.register("mathitalics", initialize)
-
local function mathradicalaction(n,h,v,font,mchar,echar)
local characters = fontcharacters[font]
local mchardata = characters[mchar]
@@ -365,7 +89,7 @@ local function mathradicalaction(n,h,v,font,mchar,echar)
local kern = new_kern(height-v)
list = setlink(kern,list)
local list = new_vlist(kern)
- insert_node_after(n,n,list)
+ insertnodeafter(n,n,list)
end
local function mathhruleaction(n,h,v,font,bchar,mchar,echar)
@@ -401,7 +125,7 @@ local function mathhruleaction(n,h,v,font,bchar,mchar,echar)
local kern = new_kern(height-v)
list = setlink(kern,list)
local list = new_vlist(kern)
- insert_node_after(n,n,list)
+ insertnodeafter(n,n,list)
end
local function initialize(tfmdata)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/grph-epd.lmt b/Master/texmf-dist/tex/context/base/mkxl/grph-epd.lmt
new file mode 100644
index 00000000000..505599fff18
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/grph-epd.lmt
@@ -0,0 +1,58 @@
+if not modules then modules = { } end modules ['grph-epd'] = {
+ version = 1.001,
+ comment = "companion to grph-epd.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local variables = interfaces.variables
+local settings_to_hash = utilities.parsers.settings_to_hash
+local codeinjections = backends.registered.pdf.codeinjections
+
+local trace = false trackers.register("figures.merging", function(v) trace = v end)
+
+local report = logs.reporter("backend","merging")
+
+local function mergegoodies(optionlist)
+ local options = settings_to_hash(optionlist)
+ local yes = options[variables.yes]
+ local all = options[variables.all]
+ if next(options) then
+ report("% t",table.sortedkeys(options))
+ end
+ if all or yes or options[variables.reference] then
+ codeinjections.mergereferences()
+ end
+ if all or options[variables.comment] then
+ codeinjections.mergecomments()
+ end
+ if all or yes or options[variables.bookmark] then
+ codeinjections.mergebookmarks()
+ end
+ if all or options[variables.field] then
+ codeinjections.mergefields()
+ end
+ if all or options[variables.layer] then
+ codeinjections.mergeviewerlayers()
+ end
+ if all or options[variables.media] then
+ codeinjections.mergerenditions()
+ end
+ codeinjections.flushmergelayer()
+end
+
+function figures.mergegoodies(optionlist)
+ -- todo: we can use runlocal instead
+ context.stepwise(function()
+ -- we use stepwise because we might need to define symbols
+ -- for stamps that have no default appearance
+ mergegoodies(optionlist)
+ end)
+end
+
+interfaces.implement {
+ name = "figure_mergegoodies",
+ actions = figures.mergegoodies,
+ arguments = "string"
+}
diff --git a/Master/texmf-dist/tex/context/base/mkiv/grph-epd.lua b/Master/texmf-dist/tex/context/base/mkxl/grph-epd.lua
index 0993270f14a..0993270f14a 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/grph-epd.lua
+++ b/Master/texmf-dist/tex/context/base/mkxl/grph-epd.lua
diff --git a/Master/texmf-dist/tex/context/base/mkxl/grph-epd.mkxl b/Master/texmf-dist/tex/context/base/mkxl/grph-epd.mkxl
index 7ff9b86756e..a26ee3235f0 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/grph-epd.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/grph-epd.mkxl
@@ -15,11 +15,11 @@
\unprotect
-\registerctxluafile{grph-epd}{}
+\registerctxluafile{grph-epd}{autosuffix}
% hm, this one is globally overloaded
-\mutable\let\mergedfigurereference\empty
+\mutable\lettonothing\mergedfigurereference
\defineoverlay[system:graphics:epdf][\directsetup{system:graphics:epdf}]
diff --git a/Master/texmf-dist/tex/context/base/mkxl/grph-fig.mkxl b/Master/texmf-dist/tex/context/base/mkxl/grph-fig.mkxl
index 92d2c7dc69a..e25c9cf3291 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/grph-fig.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/grph-fig.mkxl
@@ -31,7 +31,7 @@
\newconstant\c_grph_buffers_mode
-\mutable\let\lasttypesetbuffer\empty
+\mutable\lettonothing\lasttypesetbuffer
\permanent\protected\def\typesetbuffer {\bgroup\setconstant\c_grph_buffers_mode\plusone \grph_buffers_typeset}
\permanent\protected\def\typesetbufferonly{\bgroup\setconstant\c_grph_buffers_mode\zerocount\grph_buffers_typeset}
@@ -78,7 +78,9 @@
\installcorenamespace{typesettingfile}
\tolerant\permanent\protected\def\definetypesetting[#1]#*[#2]#*[#3]% <name> options settings-a
- {\ifparameter#1\or\setuvalue{\??typesettingfile#1}{\grph_typesetting_process_indeed{#2}{#3}}\fi}
+ {\ifparameter#1\or
+ \frozen\instance\protected\defcsname\??typesettingfile#1\endcsname{\grph_typesetting_process_indeed{#2}{#3}}%
+ \fi}
\tolerant\permanent\protected\def\typesetfile[#1]#*[#2]#*[#3]% <name> filename settings-b | filename options settings
{\ifcsname\??typesettingfile#1\endcsname
@@ -100,45 +102,57 @@
\endgroup}
%D Whatever ... hardly used ... but historic ... needs checking ... will probably
-%D become m-fig-nn.mkiv .. or I will extend it cq. clean it up when I needed it.
-%D After all, it's documented in old manuals.
-
-\newcount\c_grph_steps_reference
-\newdimen\d_grph_steps_x
-\newdimen\d_grph_steps_y
-\newbox \b_grph_steps_colorbar
+%D become m-fig-nn.mkiv .. or I will extend it cq. clean it up when I needed it;
+%D after all, it's documented in old manuals.
+%D
+%D \stoptyping
+%D \startfigure[mycow][t:/sources/cow.pdf][width=4cm]
+%D % one can also use layers
+%D \stopfigure
+%D
+%D \externalfigure[mycow]
+%D \stoptyping
+
+\newinteger \c_grph_steps_reference
+\newdimension\d_grph_steps_x
+\newdimension\d_grph_steps_y
+\newbox \b_grph_steps_colorbar
\ifdefined\referring\else \mutable\let\referring\relax \fi
\ifdefined\marking \else \mutable\let\marking \relax \fi
\ifdefined\remark \else \mutable\let\remark \relax \fi
\ifdefined\colorbar \else \mutable\let\colorbar \relax \fi
-\tolerant\protected\def\grph_steps_place_figure#1#2#3#4[#5]%
- {\hpack
- {\setbox\scratchbox\hpack
- {\useexternalfigure[\s!dummy][#2][#3,#5]%
- \externalfigure[\s!dummy]}%
- \grph_steps_calculate
- \startpositioning
- \enforced\let\referring\grph_steps_one_referring
- \enforced\let\marking \grph_steps_one_marking
- \enforced\let\remark \grph_steps_one_remark
- \enforced\let\colorbar \grph_steps_one_colorbar
- \position(0,0){\box\scratchbox}%
- \linewidth\onepoint
- \setuppositioning
- [\c!unit=pt,%
- \c!xscale=\withoutpt\the\d_grph_steps_x,%
- \c!yscale=\withoutpt\the\d_grph_steps_y,%
- \c!factor=1]%
- \ignorespaces#4%
- \enforced\let\referring\grph_steps_two_referring
- \enforced\let\marking \grph_steps_two_marking
- \enforced\let\remark \grph_steps_two_remark
- \enforced\let\colorbar \grph_steps_two_colorbar
- \ignorespaces#4\removeunwantedspaces % or just grab #4 unspaced
- \stoppositioning
- \ifvoid\b_grph_steps_colorbar\else\box\b_grph_steps_colorbar\fi}} % not really needed
+\tolerant\protected\def\grph_steps_place_figure#1#2#3#4#5%
+ {\hbox\bgroup
+ \setbox\scratchbox\hbox % somehow a space creeps in
+ {% we can use \nospaces\plusone
+ \useexternalfigure[\s!dummy][#2][#3,#5]%
+ \externalfigure[\s!dummy]}%
+ \setbox\scratchbox\hbox
+ {\externalfigure[#2][#3,#5]}%
+ \grph_steps_calculate
+ \startpositioning
+ \enforced\let\referring\grph_steps_one_referring
+ \enforced\let\marking \grph_steps_one_marking
+ \enforced\let\remark \grph_steps_one_remark
+ \enforced\let\colorbar \grph_steps_one_colorbar
+ \position(0,0){\box\scratchbox}%
+ \linewidth\onepoint
+ \setuppositioning
+ [\c!unit=pt,%
+ \c!xscale=\toscaled\d_grph_steps_x,%
+ \c!yscale=\toscaled\d_grph_steps_y,%
+ \c!factor=1]%
+ \ignorespaces#4%
+ \enforced\let\referring\grph_steps_two_referring
+ \enforced\let\marking \grph_steps_two_marking
+ \enforced\let\remark \grph_steps_two_remark
+ \enforced\let\colorbar \grph_steps_two_colorbar
+ \ignorespaces#4\removeunwantedspaces % or just grab #4 unspaced
+ \stoppositioning
+ \ifvoid\b_grph_steps_colorbar\else\box\b_grph_steps_colorbar\fi
+ \egroup}
\protected\def\grph_steps_one_referring(#1,#2)#*(#3,#4)#*[#5]%
{\position(#1,#2){\grph_steps_goto(#3,#4){\externalfigureparameter\c!frames}[#5]}}
@@ -174,10 +188,12 @@
{\grph_steps_test_figure{#1}{#2}{#3}{#4}%
\letexternalfigureparameter\c!frames\v!on}%
{\letexternalfigureparameter\c!frames\v!off}%
- \setvalue{\??externalfigureinstance#1}%
- {\grph_steps_place_figure{#1}{#2}{#3}{#4}}}
+ \tolerant\defcsname\??externalfigureinstance#1\endcsname[##1]%
+ {\grph_steps_place_figure{#1}{#2}{#3}{#4}{##1}%
+ % this is a dirty hack but ok for an old macro
+ \enforced\let\figurestatus\plusone}}
-\aliased\let\stopfigure\relax
+\permanent\protected\lettonothing\stopfigure
\ifdefined\referring \else \let\referring\relax \fi
\ifdefined\marking \else \let\marking \relax \fi
@@ -203,9 +219,9 @@
\position(0,0)
{\basegrid
[\c!nx=\externalfigureparameter\c!xmax,%
- \c!dx=\withoutpt\the\d_grph_steps_x,%
+ \c!dx=\toscaled\d_grph_steps_x,%
\c!ny=\externalfigureparameter\c!ymax,%
- \c!dy=\withoutpt\the\d_grph_steps_y,%
+ \c!dy=\toscaled\d_grph_steps_y,%
\c!xstep=1,%
\c!ystep=1,%
\c!scale=1,%
@@ -213,8 +229,8 @@
\c!unit=pt]}%
\setuppositioning
[\c!unit=pt,%
- \c!xscale=\withoutpt\the\d_grph_steps_x,%
- \c!yscale=\withoutpt\the\d_grph_steps_y,%
+ \c!xscale=\toscaled\d_grph_steps_x,%
+ \c!yscale=\toscaled\d_grph_steps_y,%
\c!factor=1]%
\linewidth\onepoint
\ignorespaces#4\removeunwantedspaces % or just grab #4 unspaced
@@ -248,7 +264,7 @@
\definesystemconstant{vwb}
\tolerant\protected\def\grph_steps_three_referring(#1,#2)#*(#3,#4)#*[#5]%
- {\advance\c_grph_steps_reference\plusone
+ {\advanceby\c_grph_steps_reference\plusone
\position(#1,#2)
{\hbox{\the\c_grph_steps_reference}}%
\position(#1,#2)
@@ -275,15 +291,15 @@
\setexternalfigureparameter\c!ymax{24}%
\fi
\d_grph_steps_y\figureheight
- \divide\d_grph_steps_y \externalfigureparameter\c!ymax
+ \divideby\d_grph_steps_y \externalfigureparameter\c!ymax
\d_grph_steps_x\d_grph_steps_y
\scratchdimen\figurewidth
- \advance\scratchdimen\d_grph_steps_y
- \divide \scratchdimen\d_grph_steps_y
+ \advanceby\scratchdimen\d_grph_steps_y
+ \divideby \scratchdimen\d_grph_steps_y
\setexternalfigureparameter\c!xmax{\number\scratchdimen}%
\else
- \d_grph_steps_x\figurewidth \divide\d_grph_steps_x \externalfigureparameter\c!xmax\relax
- \d_grph_steps_y\figureheight \divide\d_grph_steps_y \externalfigureparameter\c!ymax\relax
+ \d_grph_steps_x\figurewidth \divideby\d_grph_steps_x \externalfigureparameter\c!xmax\relax
+ \d_grph_steps_y\figureheight \divideby\d_grph_steps_y \externalfigureparameter\c!ymax\relax
\fi}
\tolerant\def\grph_steps_comment#1(#2,#3)#*(#4,#5)#*[#6]#*#:#7% {kader}(x,y)(h,b)[...]{tekst}
@@ -298,7 +314,7 @@
{\gotobox{\vpack{\grph_steps_area(#1,#2)#3{}}}[#4]}
\tolerant\def\grph_steps_text#1(#2,#3)#*(#4,#5)#*[#6]%
- {\advance\c_grph_steps_reference\plusone
+ {\advanceby\c_grph_steps_reference\plusone
\hbox % \hpack ?
{\quad
\thisissomeinternal\s!vwb{#6}%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/grph-inc.lmt b/Master/texmf-dist/tex/context/base/mkxl/grph-inc.lmt
index 4fa562cb8cd..e55ac471b1e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/grph-inc.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/grph-inc.lmt
@@ -78,9 +78,10 @@ local resolveprefix = resolvers.resolve
local texgetbox = tex.getbox
local texsetbox = tex.setbox
-local hpack = node.hpack
+local hpack = nodes.hpack
local new_latelua = nodes.pool.latelua
+local new_hlist = nodes.pool.hlist
local context = context
@@ -174,8 +175,8 @@ local imagekeys = {
}
local imagesizes = {
- art = true, bleed = true, crop = true,
- media = true, none = true, trim = true,
+ art = true, bleed = true, crop = true,
+ media = true, none = true, trim = true,
}
local imagetypes = { [0] =
@@ -190,26 +191,28 @@ images.keys = imagekeys
images.types = imagetypes
images.sizes = imagesizes
+local codeinjections = backends.codeinjections
+
local function createimage(specification)
- return backends.codeinjections.newimage(specification)
+ return codeinjections.newimage(specification)
end
local function copyimage(specification)
- return backends.codeinjections.copyimage(specification)
+ return codeinjections.copyimage(specification)
end
local function scanimage(specification)
- return backends.codeinjections.scanimage(specification)
+ return codeinjections.scanimage(specification)
end
local function embedimage(specification)
- -- write the image to file
- return backends.codeinjections.embedimage(specification)
+ -- write the image to file
+ return codeinjections.embedimage(specification)
end
local function wrapimage(specification)
-- create an image rule
- return backends.codeinjections.wrapimage(specification)
+ return codeinjections.wrapimage(specification)
end
images.create = createimage
@@ -303,9 +306,10 @@ local remappers = allocate() figures.remappers = remappers
local converters = allocate() figures.converters = converters
local identifiers = allocate() figures.identifiers = identifiers
local programs = allocate() figures.programs = programs
+local conversions = allocate() figures.conversions = conversions
-local defaultformat = "pdf"
-local defaultprefix = "m_k_i_v_"
+local defaultformat <const> = "pdf"
+local defaultprefix <const> = "m_k_i_v_"
figures.localpaths = allocate {
".", "..", "../.."
@@ -321,7 +325,8 @@ local figure_paths = allocate(table.copy(figures.localpaths))
figures.paths = figure_paths
local figures_order = allocate {
- "pdf", "mps", "jpg", "png", "jp2", "jbig", "svg", "eps", "tif", "gif", "mov", "buffer", "tex", "cld", "auto",
+ -- "mov" is gone
+ "pdf", "mps", "jpg", "png", "jp2", "jbig", "svg", "eps", "tif", "gif", "buffer", "tex", "cld", "auto",
}
local figures_formats = allocate { -- magic and order will move here
@@ -335,7 +340,7 @@ local figures_formats = allocate { -- magic and order will move here
["eps"] = { list = { "eps", "ai" } },
["gif"] = { list = { "gif" } },
["tif"] = { list = { "tif", "tiff" } },
- ["mov"] = { list = { "mov", "flv", "mp4" } }, -- "avi" is not supported
+ -- ["mov"] = { list = { "mov", "flv", "mp4" } }, -- "avi" is not supported
["buffer"] = { list = { "tmp", "buffer", "buf" } },
["tex"] = { list = { "tex" } },
["cld"] = { list = { "cld" } },
@@ -440,14 +445,14 @@ function figures.setorder(list) -- can be table or string
end
end
-local function guessfromstring(str)
+local function guessfromstring(str,name)
if str then
for i=1,#figures_magics do
local pattern = figures_magics[i]
if lpegmatch(pattern.pattern,str) then
local format = pattern.format
- if trace_figures then
- report_inclusion("file %a has format %a",filename,format)
+ if trace_figures and name then
+ report_inclusion("file %a has format %a",name,format)
end
return format
end
@@ -554,6 +559,11 @@ function figures.setpaths(locationset,pathlist)
end
end
end
+ -- new
+ if environment.arguments.path then
+ table.insert(t,1,environment.arguments.path)
+ end
+ --
figure_paths = t
last_pathlist = pathlist
figures.paths = figure_paths
@@ -587,6 +597,7 @@ local function new() -- we could use metatables status -> used -> request but it
controls = false,
display = false,
mask = false,
+ crop = false,
conversion = false,
resolution = false,
color = false,
@@ -671,6 +682,13 @@ function figures.current()
return callstack[#callstack] or lastfiguredata
end
+function figures.setconversion(format,conversion)
+ if conversion == "reset" or conversion == "" then
+ conversion = nil
+ end
+ conversions[format] = conversion
+end
+
local function get(category,tag,default)
local value = lastfiguredata and lastfiguredata[category]
value = value and value[tag]
@@ -766,18 +784,23 @@ local function register(askedname,specification)
local conversion = wipe(specification.conversion)
local resolution = wipe(specification.resolution)
local arguments = wipe(specification.arguments)
+ local crop = wipe(specification.crop)
local newformat = conversion
if not newformat or newformat == "" then
newformat = defaultformat
end
+ --
+ conversion = conversions[format] or conversion
+ --
if trace_conversion then
- report_inclusion("checking conversion of %a, fullname %a, old format %a, new format %a, conversion %a, resolution %a, arguments %a",
+ report_inclusion("checking conversion of %a, fullname %a, old format %a, new format %a, conversion %a, resolution %a, crop %a, arguments %a",
askedname,
specification.fullname,
format,
newformat,
conversion or "default",
resolution or "default",
+ crop or "default",
arguments or ""
)
end
@@ -793,7 +816,7 @@ local function register(askedname,specification)
end
end
-- end of quick hack
- local converter = (not remapper) and (newformat ~= format or resolution or arguments) and converters[format]
+ local converter = (not remapper) and (newformat ~= format or resolution or arguments) and converters[format] -- no crop here
if converter then
local okay = converter[newformat]
if okay then
@@ -813,6 +836,10 @@ local function register(askedname,specification)
local oldname = specification.fullname
local newpath = file.dirname(oldname)
local oldbase = file.basename(oldname)
+ local runpath = environment.arguments.runpath
+ if runpath and runpath ~= "" and newpath == environment.arguments.path then
+ newpath = runpath
+ end
--
-- problem: we can have weird filenames, like a.b.c (no suffix) and a.b.c.gif
-- so we cannot safely remove a suffix (unless we do that for known suffixes)
@@ -853,6 +880,10 @@ local function register(askedname,specification)
if arguments then
hash = hash .. "[a:" .. arguments .. "]"
end
+ if crop then
+ hash = hash .. "[c:" .. crop .. "]"
+ end
+ newbase = gsub(newbase,"%.","_") -- nicer to have no suffix in the name
if hash ~= "" then
newbase = newbase .. "_" .. md5.hex(hash)
end
@@ -877,7 +908,7 @@ local function register(askedname,specification)
if trace_conversion then
report_inclusion("converting %a (%a) from %a to %a",askedname,oldname,format,newformat)
end
- converter(oldname,newname,resolution or "", arguments or "")
+ converter(oldname,newname,resolution or "", arguments or "",specification) -- in retrospect a table
else
if trace_conversion then
report_inclusion("no need to convert %a (%a) from %a to %a",askedname,oldname,format,newformat)
@@ -971,18 +1002,19 @@ local function locate(request) -- name, format, cache
local askedconversion = request.conversion
local askedresolution = request.resolution
local askedarguments = request.arguments
+ local askedcrop = request.crop
local askedhash = f_hash_part(
askedname,
askedconversion or "default",
askedresolution or "default",
+ askedcrop or "default",
askedarguments or ""
)
- local foundname = figures_found[askedhash]
+ local foundname = figures_found[askedhash]
if foundname then
return foundname
end
--
- --
local askedformat = request.format
if not askedformat or askedformat == "" or askedformat == "unknown" then
askedformat = file.suffix(askedname) or ""
@@ -1004,14 +1036,30 @@ local function locate(request) -- name, format, cache
end
else
local foundname = resolvers.findbinfile(askedname)
- if not foundname or not isfile(foundname) then -- foundname can be dummy
+ -- we need a neutral isfile
+ if foundname then
+ if hashed.scheme == "file" and not isfile(foundname) then
+ foundname = false
+ end
+ end
+ if not foundname then -- foundname can be dummy
if trace_figures then
report_inclusion("unknown url %a",askedname)
end
-- url not found
return register(askedname)
end
- local guessedformat = figures.guess(foundname)
+ -- ok for now but we need a loadbinfile option to emulate a file
+ -- so that we justy share it .. we now rely on os caching of files
+ -- but normally scheme based files are not that large anyway
+ local guessedformat = false
+ if hashed.scheme == "file" then
+ guessedformat = figures.guess(foundname)
+ else
+ -- kind of costly: todo pseudo file and just acccess
+ local found, data = resolvers.loadbinfile(foundname)
+ guessedformat = figures.guessfromstring(data)
+ end
if askedformat ~= guessedformat then
if trace_figures then
report_inclusion("url %a has unknown format",askedname)
@@ -1029,6 +1077,7 @@ local function locate(request) -- name, format, cache
cache = askedcache,
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments,
})
end
@@ -1066,6 +1115,7 @@ local function locate(request) -- name, format, cache
conversion = askedconversion,
resolution = askedresolution,
arguments = askedarguments,
+ crop = askedcrop,
internal = internal,
})
elseif quitscanning then
@@ -1086,6 +1136,7 @@ local function locate(request) -- name, format, cache
cache = askedcache,
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments,
})
end
@@ -1105,6 +1156,7 @@ local function locate(request) -- name, format, cache
cache = askedcache,
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments,
})
end
@@ -1119,6 +1171,7 @@ local function locate(request) -- name, format, cache
cache = askedcache,
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments,
})
end
@@ -1143,6 +1196,7 @@ local function locate(request) -- name, format, cache
cache = askedcache,
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments,
})
end
@@ -1178,6 +1232,7 @@ local function locate(request) -- name, format, cache
cache = askedcache,
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments
})
end
@@ -1206,6 +1261,7 @@ local function locate(request) -- name, format, cache
cache = askedcache,
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments,
})
end
@@ -1231,6 +1287,7 @@ local function locate(request) -- name, format, cache
cache = askedcache,
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments,
})
end
@@ -1241,6 +1298,7 @@ local function locate(request) -- name, format, cache
return register(askedname, { -- these two are needed for hashing 'found'
conversion = askedconversion,
resolution = askedresolution,
+ crop = askedcrop,
arguments = askedarguments,
})
end
@@ -1269,8 +1327,7 @@ function figures.identify(data)
for i=1,#list do
local identifier = list[i]
local data = identifier(data)
--- if data and (not data.status and data.status.status > 0) then
- if data and (not data.status and data.status.status > 0) then
+ if data and data.status and (not data.status and data.status.status > 0) then
break
end
end
@@ -1373,7 +1430,7 @@ end
function figures.dummy(data)
data = data or callstack[#callstack] or lastfiguredata
local dr, du, nr = data.request, data.used, figures.boxnumber
- local box = hpack(node.new("hlist")) -- we need to set the dir (luatex 0.60 buglet)
+ local box = hpack(new_hlist()) -- we need to set the dir (luatex 0.60 buglet)
du.width = du.width or figures.defaultwidth
du.height = du.height or figures.defaultheight
du.depth = du.depth or figures.defaultdepth
@@ -1448,13 +1505,14 @@ end
local pagecount = { }
-function checkers.generic(data)
+function checkers.generic(data) -- called by checkers.pdf/png/jpg
local dr, du, ds = data.request, data.used, data.status
local name = du.fullname or "unknown generic"
local page = du.page or dr.page
local size = dr.size or "crop"
local color = dr.color or "natural"
local mask = dr.mask or "none"
+ local crop = dr.crop or "none"
local conversion = dr.conversion
local resolution = dr.resolution
local arguments = dr.arguments
@@ -1476,6 +1534,7 @@ function checkers.generic(data)
size,
color,
mask,
+ crop,
conversion,
resolution,
arguments
@@ -1643,35 +1702,35 @@ includers.nongeneric = includers_nongeneric
-- -- -- mov -- -- --
-function checkers.mov(data)
- local dr, du, ds = data.request, data.used, data.status
- local width = todimen(dr.width or figures.defaultwidth)
- local height = todimen(dr.height or figures.defaultheight)
- local foundname = du.fullname
- dr.width, dr.height = width, height
- du.width, du.height, du.foundname = width, height, foundname
- if trace_inclusion then
- report_inclusion("including movie %a, width %p, height %p",foundname,width,height)
- end
- -- we need to push the node.write in between ... we could make a shared helper for this
- ctx_startfoundexternalfigure(width .. "sp",height .. "sp")
- context(function()
- nodeinjections.insertmovie {
- width = width,
- height = height,
- factor = bpfactor,
- ["repeat"] = dr["repeat"],
- controls = dr.controls,
- preview = dr.preview,
- label = dr.label,
- foundname = foundname,
- }
- end)
- ctx_stopfoundexternalfigure()
- return data
-end
-
-includers.mov = includers.nongeneric
+-- function checkers.mov(data)
+-- local dr, du, ds = data.request, data.used, data.status
+-- local width = todimen(dr.width or figures.defaultwidth)
+-- local height = todimen(dr.height or figures.defaultheight)
+-- local foundname = du.fullname
+-- dr.width, dr.height = width, height
+-- du.width, du.height, du.foundname = width, height, foundname
+-- if trace_inclusion then
+-- report_inclusion("including movie %a, width %p, height %p",foundname,width,height)
+-- end
+-- -- we need to push the node.write in between ... we could make a shared helper for this
+-- ctx_startfoundexternalfigure(width .. "sp",height .. "sp")
+-- context(function()
+-- nodeinjections.insertmovie {
+-- width = width,
+-- height = height,
+-- factor = bpfactor,
+-- ["repeat"] = dr["repeat"],
+-- controls = dr.controls,
+-- preview = dr.preview,
+-- label = dr.label,
+-- foundname = foundname,
+-- }
+-- end)
+-- ctx_stopfoundexternalfigure()
+-- return data
+-- end
+--
+-- includers.mov = includers.nongeneric
-- -- -- mps -- -- --
@@ -2071,6 +2130,7 @@ implement {
{ "preview" },
{ "display" },
{ "mask" },
+ { "crop" },
{ "conversion" },
{ "resolution" },
{ "color" },
@@ -2158,3 +2218,94 @@ implement {
end
end
}
+
+implement {
+ name = "setfigureconversion",
+ arguments = "2 strings",
+ actions = figures.setconversion
+}
+
+-- for the moment we keep this here:
+
+do
+
+ local stores = setmetatableindex("table")
+ local defaultwidth = 6553600 -- maybe bp
+
+ function images.resetstore(name)
+ stores[name] = { }
+ end
+
+ local function resetdata(name,n)
+ local store = stores[name]
+ store[n] = false
+ end
+
+ local function storedata(name,data)
+ local store = stores[name]
+ store[#store+1] = data
+ return #store
+ end
+
+ local function fetchdata(name,n)
+ local store = stores[name]
+ return store and store[n]
+ end
+
+ images.storedata = storedata
+ images.fetchdata = fetchdata
+ images.resetdata = resetdata
+
+ -- function images.filetostore(name,kind,filename)
+ -- return storedata(name, {
+ -- data = io.loaddata(filename),
+ -- kind = kind or file.suffix(filename),
+ -- })
+ -- end
+ --
+ -- function images.datatostore(name,kind,data)
+ -- return storedata(name, {
+ -- data = data,
+ -- kind = kind,
+ -- })
+ -- end
+
+ -- local embedimage = images.embed
+ -- local wrapimage = images.wrap
+
+ function images.embedfromstore(name,n,reset)
+ local blob = fetchdata(name,n)
+ if blob then
+ local kind = blob.kind
+ if kind then
+ local identify = graphics.identifiers[kind]
+ local inject = backends.codeinjections[kind]
+ if identify and inject then
+ local info = blob.info or identify(blob.data,"string") -- could already be done
+ if info then
+ info.width = defaultwidth
+ info.height = (info.ysize /info.xsize) * defaultwidth
+ local image = blob.image
+ if not image then
+ image = inject(info,"string")
+ blob.image = image
+ end
+ image.width = info.width
+ image.height = info.height
+ context(wrapimage(image))
+ -- if reset then
+ -- resetdata(name,n)
+ -- end
+ end
+ end
+ end
+ end
+ end
+
+ implement {
+ name = "embedimagefromstore",
+ arguments = { "string", "integer", "boolean" },
+ actions = images.embedfromstore,
+ }
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/grph-inc.mkxl b/Master/texmf-dist/tex/context/base/mkxl/grph-inc.mkxl
index 3c2e8e5c1d9..b8fd40a8991 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/grph-inc.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/grph-inc.mkxl
@@ -114,14 +114,15 @@
\c!ownerpassword =,
\c!compact =,
\c!cmyk =,
+ \c!crop =\v!yes,
]
%D Defining figures.
-\newcount\c_grph_include_nesting
+\newinteger\c_grph_include_nesting
-\newtoks \everyexternalfigureresets % for the moment still public
-\newtoks \everyexternalfigurechecks % for the moment still public
+\newtoks \everyexternalfigureresets % for the moment still public
+\newtoks \everyexternalfigurechecks % for the moment still public
% \useexternalfigure[alpha][cow]
% \useexternalfigure[beta] [cow] [width=1cm]
@@ -210,12 +211,12 @@
\fi}
\def\grph_include_use_indeed#1#2#3#4%
- {\dodoglobal\setvalue{\??externalfigureinstance#1}{\grph_include_setup{#2}{#3}{#4}}%
+ {\dodoglobal\defcsname\??externalfigureinstance#1\endcsname{\grph_include_setup{#2}{#3}{#4}}%
\grph_include_analyze_collection[#2][#4]}
% inclusion
-\permanent\tolerant\protected\def\externalfigure[#1]#*[#2]#*[#3]%
+\permanent\tolerant\protected\def\externalfigure[#1]#,[#2]#,[#3]%
{\ifhastok={#2}%
\grph_include_place[#1][][#2]%
\else
@@ -273,7 +274,7 @@
\def\grph_include_place[#1][#2][#3]% [label][file][settings] | [file][settings] | [file][parent][settings]
{\bgroup
- \advance\c_grph_include_nesting\plusone
+ \advanceby\c_grph_include_nesting\plusone
\edef\currentexternalfigure{\the\c_grph_include_nesting}%
\checkexternalfigureparent % each inherits from the root
%
@@ -332,6 +333,7 @@
compact {\externalfigureparameter\c!compact}% experiment, share fonts
userpassword {\externalfigureparameter\c!userpassword}%
ownerpassword{\externalfigureparameter\c!ownerpassword}%
+ crop {\externalfigureparameter\c!crop}%
\ifempty\p_width \else
width \dimexpr\p_width\relax
\fi
@@ -405,6 +407,9 @@
\dostoptagged
\egroup}
+\permanent\protected\def\setfigureconversion[#1]#*[#2]%
+ {\clf_setfigureconversion{#1}{#2}}
+
%D Next we provide a cross referenced scale-up mechanism:
\def\strc_references_cross_forward#1#2%
@@ -601,11 +606,17 @@
%D Internal graphics are handled at the \TEX\ end:
+% strut=none also avoids the \noindent! otherwise we're in hmode when
+% blank happens and we get a lineskip
+
\def\grph_include_process_tex#1%
{\framed
- [\c!strut=\v!no,\c!align=\v!normal,\c!frame=\v!off,
+ [\c!strut=\v!none,\c!align=\v!normal,\c!frame=\v!off,
\c!offset=\v!overlay,\c!width=\v!fit,\c!height=\v!fit]
- {\blank[\v!disable]#1\endgraf\removelastskip}} % disable should stay here!
+ {\blank[\v!disable]%
+ #1\endgraf
+ \removelastskip}} % disable should stay here!
+
% used al lua end:
@@ -709,11 +720,8 @@
\mutable\let\feedbackexternalfigure\relax % hook
-\permanent\protected\def\getfiguredimensions
- {\dodoubleempty\grph_include_get_dimensions}
-
-\def\grph_include_get_dimensions[#1][#2]%
- {\startnointerference
+\permanent\tolerant\protected\def\getfiguredimensions[#1]#*[#2]%
+ {\startnointerference % we can use \nospaces\plusone
\settrue\c_grph_include_test_only
\externalfigure[#1][#2,\c!display=,\c!mask=,\c!object=\v!no]%
\stopnointerference}
@@ -780,10 +788,10 @@
\newconditional\c_grph_include_in_collection
-\newdimen\d_grph_include_collection_minwidth
-\newdimen\d_grph_include_collection_maxwidth
-\newdimen\d_grph_include_collection_minheight
-\newdimen\d_grph_include_collection_maxheight
+\newdimension \d_grph_include_collection_minwidth
+\newdimension \d_grph_include_collection_maxwidth
+\newdimension \d_grph_include_collection_minheight
+\newdimension \d_grph_include_collection_maxheight
\def\grph_include_analyze_collection[#1][#2]%
{\ifconditional\c_grph_include_in_collection
@@ -798,7 +806,7 @@
\ifdim\scratchdimen<\d_grph_include_collection_minheight \d_grph_include_collection_minheight\scratchdimen \fi
\fi}
-\mutable\let\currentexternalfigurecollection\empty
+\mutable\lettonothing\currentexternalfigurecollection
\permanent\protected\def\startexternalfigurecollection[#1]%
{\begingroup
@@ -855,16 +863,16 @@
% Experimental (will become cleaner):
\permanent\tolerant\protected\def\includesvgfile[#1]#*[#2]%
- {\dontleavehmode\begingroup
+ {\hbox\bgroup % no \dontleavehmode
\getdummyparameters[\c!offset=\zeropoint,#2]%
\clf_includesvgfile{#1}\dimexpr\dummyparameter\c!offset\relax
- \endgroup}
+ \egroup}
\permanent\tolerant\protected\def\includesvgbuffer[#1]#*[#2]%
- {\dontleavehmode\begingroup
+ {\hbox\bgroup % no \dontleavehmode
\getdummyparameters[\c!offset=\zeropoint,#2]%
\clf_includesvgbuffer{#1}\dimexpr\dummyparameter\c!offset\relax
- \endgroup}
+ \egroup}
% Bonus:
diff --git a/Master/texmf-dist/tex/context/base/mkxl/grph-pat.mkxl b/Master/texmf-dist/tex/context/base/mkxl/grph-pat.mkxl
index 92fd5ad749a..3b51dc25873 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/grph-pat.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/grph-pat.mkxl
@@ -64,7 +64,7 @@
\endgroup}
\permanent\tolerant\protected\def\applypattern[#1]#*[#2]%
- {\hbox\bgroup
+ {\hpack\bgroup
\letdummyparameter\c!name \s!dummy
\letdummyparameter\c!width \zeropoint
\letdummyparameter\c!height\zeropoint
diff --git a/Master/texmf-dist/tex/context/base/mkxl/grph-raw.mkxl b/Master/texmf-dist/tex/context/base/mkxl/grph-raw.mkxl
index 66194551bfc..c84a3682fd3 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/grph-raw.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/grph-raw.mkxl
@@ -59,6 +59,6 @@
\permanent\protected\def\startbitmapimage[#1]#2\stopbitmapimage
{\bitmapimage[#1]{#2}}
-\aliased\let\stopbitmapimage\relax
+\permanent\protected\lettonothing\stopbitmapimage
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/grph-rul.lmt b/Master/texmf-dist/tex/context/base/mkxl/grph-rul.lmt
index d8da5f76054..c33319658a1 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/grph-rul.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/grph-rul.lmt
@@ -22,6 +22,8 @@ local tonode = nuts.tonode
local getattribute = tex.getattribute
+local direct_value = tokens.values.direct
+
local a_color = attributes.private('color')
local a_transparency = attributes.private('transparency')
local a_colormodel = attributes.private('colormodel')
@@ -29,20 +31,19 @@ local a_colormodel = attributes.private('colormodel')
local floor = math.floor
local getrandom = utilities.randomizer.get
-do
-
- local function unsupported() end
-
- ruleactions.mp = unsupported
- ruleactions.fill = unsupported
- ruleactions.draw = unsupported
- ruleactions.stroke = unsupported
- ruleactions.box = unsupported
-
-end
+updaters.register("backends.injections.latebindings",function()
+ local codeinjections = backends.codeinjections
+ ruleactions.mp = codeinjections.ruleactionmp
+ ruleactions.fill = codeinjections.ruleactionfill
+ ruleactions.draw = codeinjections.ruleactiondraw
+ ruleactions.stroke = codeinjections.ruleactionstroke
+ ruleactions.box = codeinjections.ruleactionbox
+end)
interfaces.implement {
name = "frule",
+ public = true,
+ protected = true,
arguments = { {
{ "width", "dimension" },
{ "height", "dimension" },
@@ -64,34 +65,37 @@ interfaces.implement {
else
setattrlist(rule,true)
end
- context(tonode(rule)) -- will become context.nodes.flush
+ context(tonode(rule))
end
}
interfaces.implement {
- name = "outlinerule",
- public = true,
+ name = "roundedoutline",
protected = true,
- arguments = { {
- { "width", "dimension" },
- { "height", "dimension" },
- { "depth", "dimension" },
- { "line", "dimension" },
- } } ,
- actions = function(t)
- local rule = outlinerule(t.width,t.height,t.depth,t.line)
+ arguments = { "dimension", "dimension", "dimension", "dimension", "dimension", "string" },
+ actions = function(w,h,d,l,r,c)
+ local rule = userrule {
+ width = w,
+ height = h,
+ depth = d,
+ line = l,
+ radius = r,
+ corner = c,
+ }
setattrlist(rule,true)
- context(tonode(rule)) -- will become context.nodes.flush
+ context(tonode(rule))
end
}
interfaces.implement {
name = "framedoutline",
+ -- public = true,
+ -- protected = true,
arguments = { "dimension", "dimension", "dimension", "dimension" },
actions = function(w,h,d,l)
local rule = outlinerule(w,h,d,l)
setattrlist(rule,true)
- context(tonode(rule)) -- will become context.nodes.flush
+ context(tonode(rule))
end
}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/grph-rul.mkxl b/Master/texmf-dist/tex/context/base/mkxl/grph-rul.mkxl
index 034e91734e3..5c192e3453c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/grph-rul.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/grph-rul.mkxl
@@ -17,7 +17,7 @@
\unprotect
-\permanent\protected\def\frule{\relax\clf_frule} % will become a public implementer
+% \permanent\protected\def\frule{\relax\clf_frule} % will become a public implementer
% just for fun:
diff --git a/Master/texmf-dist/tex/context/base/mkxl/grph-trf.lmt b/Master/texmf-dist/tex/context/base/mkxl/grph-trf.lmt
index f68d6a6a807..7ca15e2a067 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/grph-trf.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/grph-trf.lmt
@@ -10,8 +10,19 @@ if not modules then modules = { } end modules ['grph-trf'] = {
local sind, cosd, tand, abs = math.sind, math.cosd, math.tand, math.abs
+local isdimen = tex.isdimen
local setdimension = tex.setdimensionvalue
+local d_grph_rotate_x_size = isdimen("d_grph_rotate_x_size")
+local d_grph_rotate_y_size = isdimen("d_grph_rotate_y_size")
+local d_grph_rotate_x_position = isdimen("d_grph_rotate_x_position")
+local d_grph_rotate_y_position = isdimen("d_grph_rotate_y_position")
+local d_grph_rotate_x_offset = isdimen("d_grph_rotate_x_offset")
+local d_grph_rotate_y_offset = isdimen("d_grph_rotate_y_offset")
+local d_grph_rotate_new_width = isdimen("d_grph_rotate_new_width")
+local d_grph_rotate_new_height = isdimen("d_grph_rotate_new_height")
+local d_grph_rotate_new_depth = isdimen("d_grph_rotate_new_depth")
+
local function analyzerotate(rotation,width,height,depth,total,notfit,obeydepth)
--
-- print(rotation,width,height,depth,notfit,obeydepth)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/grph-trf.mkxl b/Master/texmf-dist/tex/context/base/mkxl/grph-trf.mkxl
index c7e0f5e2f21..53080b6a13f 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/grph-trf.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/grph-trf.mkxl
@@ -26,15 +26,28 @@
\registerctxluafile{grph-trf}{autosuffix}
+% See below
+
+\newdimension\d_grph_rotate_x_size
+\newdimension\d_grph_rotate_y_size
+\newdimension\d_grph_rotate_x_offset
+\newdimension\d_grph_rotate_y_offset
+\newdimension\d_grph_rotate_x_position
+\newdimension\d_grph_rotate_y_position
+
+\newdimension\d_grph_rotate_new_width
+\newdimension\d_grph_rotate_new_height
+\newdimension\d_grph_rotate_new_depth
+
% local:
-\newdimen\d_grph_scale_x_size
-\newdimen\d_grph_scale_y_size
-\newdimen\d_grph_scale_x_offset
-\newdimen\d_grph_scale_y_offset
+\newdimension\d_grph_scale_x_size
+\newdimension\d_grph_scale_y_size
+\newdimension\d_grph_scale_x_offset
+\newdimension\d_grph_scale_y_offset
-\newdimen\d_grph_scale_h_size
-\newdimen\d_grph_scale_v_size
+\newdimension\d_grph_scale_h_size
+\newdimension\d_grph_scale_v_size
\newconditional\c_grph_scale_done
\newconditional\c_grph_scale_scaling_done
@@ -42,28 +55,28 @@
\newconditional\c_grph_scale_swap_factor
-\newdimen\d_grph_scale_wd
-\newdimen\d_grph_scale_ht
-\newdimen\d_grph_scale_dp
+\newdimension\d_grph_scale_wd
+\newdimension\d_grph_scale_ht
+\newdimension\d_grph_scale_dp
% global
-\newdimen\d_grph_scale_used_x_size
-\newdimen\d_grph_scale_used_y_size
+\newdimension\d_grph_scale_used_x_size
+\newdimension\d_grph_scale_used_y_size
-\newcount\c_grph_scale_used_x_scale
-\newcount\c_grph_scale_used_y_scale
+\newinteger\c_grph_scale_used_x_scale
+\newinteger\c_grph_scale_used_y_scale
-\let \m_grph_scale_used_x_scale\!!plusone
-\let \m_grph_scale_used_y_scale\!!plusone
+\let\m_grph_scale_used_x_scale\!!plusone
+\let\m_grph_scale_used_y_scale\!!plusone
-\newdimen\d_grph_scale_outer_v_size % we cannot manipulate any global vsize !
+\newdimension\d_grph_scale_outer_v_size % we cannot manipulate any global vsize !
% scratch:
-\let\m_grph_scale_temp \empty
-\let\m_grph_scale_temp_x\empty
-\let\m_grph_scale_temp_y\empty
+\lettonothing\m_grph_scale_temp
+\lettonothing\m_grph_scale_temp_x
+\lettonothing\m_grph_scale_temp_y
% public:
@@ -104,10 +117,10 @@
{\bgroup
% this is quite common so we might make this a helper
\ifarguments
- \let\currentscale\empty
+ \lettonothing\currentscale
\or
\ifhastok={#1}%
- \let\currentscale\empty
+ \lettonothing\currentscale
\setupcurrentscale[#1]%
\else
\edef\currentscale{#1}%
@@ -117,7 +130,7 @@
\setupcurrentscale[#2]%
\fi
%
- \dowithnextboxcs\grph_scale_finish\hbox}
+ \dowithnextboxcs\grph_scale_finish\naturalhbox} % intercept direction
\def\grph_scale_finish
{% todo: p_scale_
@@ -558,7 +571,7 @@
{\hbox}
\def\grph_scale_fast_yes#1%
- {\edef\finalscaleboxxscale{\withoutpt\the\dimexpr#1\onepoint/1000\relax}% brrr
+ {\edef\finalscaleboxxscale{\toscaled\dimexpr#1\onepoint/1000\relax}% brrr
\let\finalscaleboxyscale\finalscaleboxxscale
\dowithnextboxcs\grph_scale_fast_finish\hbox} % container ?
@@ -645,11 +658,11 @@
\scratchheight\dimexpr\ht\nextbox/\clippingparameter\c!ny\relax
\scratchyoffset\dimexpr-\clippingparameter\c!y\scratchheight-\clippingparameter\c!sy\scratchheight+\scratchheight\relax
\scratchheight\clippingparameter\c!sy\scratchheight
- \advance\scratchyoffset \ht\nextbox
+ \advanceby\scratchyoffset \ht\nextbox
\fi
\setbox\nextbox\naturalhpack
- {\advance\scratchxoffset -\clippingparameter\c!leftoffset \relax
- \advance\scratchyoffset -\clippingparameter\c!bottomoffset\relax
+ {\advanceby\scratchxoffset -\clippingparameter\c!leftoffset \relax
+ \advanceby\scratchyoffset -\clippingparameter\c!bottomoffset\relax
\hskip-\scratchxoffset
\lower\scratchyoffset
\box\nextbox}%
@@ -657,8 +670,8 @@
\ht\nextbox\zeropoint
\dp\nextbox\zeropoint
\setbox\nextbox\naturalhpack
- {\advance\scratchwidth \dimexpr\clippingparameter\c!leftoffset +\clippingparameter\c!rightoffset\relax
- \advance\scratchheight\dimexpr\clippingparameter\c!bottomoffset+\clippingparameter\c!topoffset \relax
+ {\advanceby\scratchwidth \dimexpr\clippingparameter\c!leftoffset +\clippingparameter\c!rightoffset\relax
+ \advanceby\scratchheight\dimexpr\clippingparameter\c!bottomoffset+\clippingparameter\c!topoffset \relax
\dostartclipping{\clippingparameter\c!mp}\scratchwidth\scratchheight
\box\nextbox
\dostopclipping}%
@@ -758,28 +771,28 @@
%D register and these are actually kind of constants not used in further
%D calculations):
-\mutable\dimendef\d_grph_rotate_x_size \zeropoint
-\mutable\dimendef\d_grph_rotate_y_size \zeropoint
-\mutable\dimendef\d_grph_rotate_x_offset \zeropoint
-\mutable\dimendef\d_grph_rotate_y_offset \zeropoint
-\mutable\dimendef\d_grph_rotate_x_position\zeropoint
-\mutable\dimendef\d_grph_rotate_y_position\zeropoint
-
-\mutable\dimendef\d_grph_rotate_new_width \zeropoint
-\mutable\dimendef\d_grph_rotate_new_height\zeropoint
-\mutable\dimendef\d_grph_rotate_new_depth \zeropoint
+% mutable\dimendef\d_grph_rotate_x_size \zeropoint
+% mutable\dimendef\d_grph_rotate_y_size \zeropoint
+% mutable\dimendef\d_grph_rotate_x_offset \zeropoint
+% mutable\dimendef\d_grph_rotate_y_offset \zeropoint
+% mutable\dimendef\d_grph_rotate_x_position\zeropoint
+% mutable\dimendef\d_grph_rotate_y_position\zeropoint
+%
+% mutable\dimendef\d_grph_rotate_new_width \zeropoint
+% mutable\dimendef\d_grph_rotate_new_height\zeropoint
+% mutable\dimendef\d_grph_rotate_new_depth \zeropoint
%D These aren't:
-\newdimen\d_grph_rotate_used_height
+\newdimension\d_grph_rotate_used_height
-\newdimen\d_grph_rotate_width
-\newdimen\d_grph_rotate_height
-\newdimen\d_grph_rotate_depth
+\newdimension\d_grph_rotate_width
+\newdimension\d_grph_rotate_height
+\newdimension\d_grph_rotate_depth
-\newdimen\d_grph_rotate_saved_width
-\newdimen\d_grph_rotate_saved_height
-\newdimen\d_grph_rotate_saved_depth
+\newdimension\d_grph_rotate_saved_width
+\newdimension\d_grph_rotate_saved_height
+\newdimension\d_grph_rotate_saved_depth
\newconditional\c_grph_rotate_obey_depth
\newconditional\c_grph_rotate_not_fit
@@ -795,8 +808,8 @@
\c!offset=\v!overlay,
\c!frame=\v!off]
-\let\p_rotation_location\empty
-\let\p_rotation_rotation\empty
+\lettonothing\p_rotation_location
+\lettonothing\p_rotation_rotation
\permanent\tolerant\protected\def\rotate[#1]% \bgroup: \rotate kan argument zijn
{\bgroup
diff --git a/Master/texmf-dist/tex/context/base/mkxl/hand-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/hand-ini.mkxl
index 3fd82f239b4..3a4193f1aba 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/hand-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/hand-ini.mkxl
@@ -73,7 +73,7 @@
% \def\fonthandlingerror{\writestatus\m!fonts{font handling is replaced by features in mkiv}}
%
-% \let\fonthandling\empty
+% \lettonothing\fonthandling
%
% \protected\def\startfonthandling #1{\fonthandlingerror\fonthandlingerror\gobbleuntil\stopfonthandling} % can't happen
% \protected\def\definefonthandling {\dotripleempty\dodefinefonthandling}
@@ -107,7 +107,7 @@
%D New in \LMTX: can be used grouped.
-\permanent\protected\def\noexpansion {\bitwiseflip\glyphoptions\noexpansioncode}
-\permanent\protected\def\noprotrusion{\bitwiseflip\glyphoptions\noprotrusioncode}
+\permanent\protected\def\noexpansion {\bitwiseflip\glyphoptions\noexpansionglyphoptioncode}
+\permanent\protected\def\noprotrusion{\bitwiseflip\glyphoptions\noprotrusionglyphoptioncode}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/java-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/java-ini.mkxl
index f0e260eeaa3..c3a3b817c0b 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/java-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/java-ini.mkxl
@@ -100,7 +100,6 @@
\permanent\protected\def\startJScode
{\begingroup
- \obeylualines
\obeyluatokens
\enforced\let\u\m_java_escape_u
\java_start_code}
@@ -108,11 +107,10 @@
\def\java_start_code#1\stopJScode
{\normalexpanded{\endgroup\clf_storejavascriptcode{#1}}}
-\aliased\let\stopJScode\relax
+\permanent\protected\lettonothing\stopJScode
\permanent\protected\def\startJSpreamble
{\begingroup
- \obeylualines
\obeyluatokens
\enforced\let\u\m_java_escape_u
\java_start_preamble}
@@ -120,7 +118,7 @@
\def\java_start_preamble#1\stopJSpreamble
{\normalexpanded{\endgroup\clf_storejavascriptpreamble{#1}}}
-\aliased\let\stopJSpreamble\relax
+\permanent\protected\lettonothing\stopJSpreamble
\permanent\protected\def\setJSpreamble #1#2{\clf_setjavascriptpreamble {#1}{#2}}
\permanent\protected\def\addtoJSpreamble#1#2{\clf_addtojavascriptpreamble{#1}{#2}}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/l-number.lmt b/Master/texmf-dist/tex/context/base/mkxl/l-number.lmt
new file mode 100644
index 00000000000..e13ac8260f1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/l-number.lmt
@@ -0,0 +1,105 @@
+if not modules then modules = { } end modules ['l-number'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- See l-number.lua for the more generic (also 5.2) versions of the
+-- functions below ... that file evolved over time.
+
+local tonumber = tonumber
+local format = string.format
+local concat = table.concat
+local floor = math.floor
+
+number = number or { }
+local number = number
+
+-- print(number.tobitstring(8))
+-- print(number.tobitstring(14))
+-- print(number.tobitstring(66))
+-- print(number.tobitstring(0x00))
+-- print(number.tobitstring(0xFF))
+-- print(number.tobitstring(46260767936,4))
+
+local t = {
+ "0", "0", "0", "0", "0", "0", "0", "0",
+ "0", "0", "0", "0", "0", "0", "0", "0",
+ "0", "0", "0", "0", "0", "0", "0", "0",
+ "0", "0", "0", "0", "0", "0", "0", "0",
+}
+
+function number.tobitstring(b,m,w)
+ if not w then
+ w = 32
+ end
+ local n = w
+ for i=0,w-1 do
+ local v = (b>>i) & 0x1 -- bextract(b,i)
+ local k = w - i
+ if v == 1 then
+ n = k
+ t[k] = "1"
+ else
+ t[k] = "0"
+ end
+ end
+ if w then
+ return concat(t,"",1,w)
+ elseif m then
+ m = 33 - m * 8
+ if m < 1 then
+ m = 1
+ end
+ return concat(t,"",1,m)
+ elseif n < 8 then
+ return concat(t)
+ elseif n < 16 then
+ return concat(t,"",9)
+ elseif n < 24 then
+ return concat(t,"",17)
+ else
+ return concat(t,"",25)
+ end
+end
+
+function number.valid(str,default)
+ return tonumber(str) or default or nil
+end
+
+function number.toevenhex(n)
+ local s = format("%X",n)
+ if #s % 2 == 0 then
+ return s
+ else
+ return "0" .. s
+ end
+end
+
+function number.bytetodecimal(b)
+ local d = floor(b * 100 / 255 + 0.5)
+ if d > 100 then
+ return 100
+ elseif d < -100 then
+ return -100
+ else
+ return d
+ end
+end
+
+function number.decimaltobyte(d)
+ local b = floor(d * 255 / 100 + 0.5)
+ if b > 255 then
+ return 255
+ elseif b < -255 then
+ return -255
+ else
+ return b
+ end
+end
+
+function number.idiv(i,d)
+ return i // d
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/l-unicode.lmt b/Master/texmf-dist/tex/context/base/mkxl/l-unicode.lmt
new file mode 100644
index 00000000000..f2c94b1c2d2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/l-unicode.lmt
@@ -0,0 +1,808 @@
+if not modules then modules = { } end modules ['l-unicode'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to luat-lib.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- See l-unicode.lua for the more generic (also 5.2) versions of the
+-- functions below ... that file evolved over time.
+--
+-- In lua 5.3+ we have:
+--
+-- utf8.char(···) : concatinated
+-- utf8.charpatt : "[\0-\x7F\xC2-\xF4][\x80-\xBF]*"
+-- utf8.codes(s) : for p, c in utf8.codes(s) do body end
+-- utf8.codepoint(s [, i [, j]])
+-- utf8.len(s [, i])
+-- utf8.offset(s, n [, i])
+
+utf = utf or { }
+unicode = nil
+
+local type = type
+local char, byte, format, sub, gmatch, rep = string.char, string.byte, string.format, string.sub, string.gmatch, string.rep
+local concat = table.concat
+local P, C, R, Cs, Ct, Cmt, Cc, Carg, Cp = lpeg.P, lpeg.C, lpeg.R, lpeg.Cs, lpeg.Ct, lpeg.Cmt, lpeg.Cc, lpeg.Carg, lpeg.Cp
+
+local lpegmatch = lpeg.match
+local patterns = lpeg.patterns
+local tabletopattern = lpeg.utfchartabletopattern
+
+local finder = lpeg.finder
+local replacer = lpeg.replacer
+
+local p_utftype = patterns.utftype
+local p_utfstricttype = patterns.utfstricttype
+local p_utfoffset = patterns.utfoffset
+local p_utf8character = patterns.utf8character
+local p_utf8char = patterns.utf8char
+local p_utf8byte = patterns.utf8byte
+local p_utfbom = patterns.utfbom
+local p_newline = patterns.newline
+local p_whitespace = patterns.whitespace
+
+local utfchar = string.utfcharacter
+local utfbyte = string.utfvalue
+local utflength = string.utflength
+local utfcharacters = string.utfcharacters
+local utfbytepairs = string.bytepairs
+
+-- string.utfvalues
+-- string.characters
+-- string.characterpairs
+-- string.bytes
+-- string.utflength
+-- string.utfvalues
+
+utf.char = utfchar
+utf.byte = utfbyte
+utf.len = utflength
+utf.length = utflength
+utf.characters = utfcharacters
+utf.bytepairs = utfbytepairs
+
+function utf.filetype(data)
+ return data and lpegmatch(p_utftype,data) or "unknown"
+end
+
+do
+
+ local toentities = Cs (
+ (
+ patterns.utf8one
+ + (
+ patterns.utf8two
+ + patterns.utf8three
+ + patterns.utf8four
+ ) / function(s) local b = utfbyte(s) if b < 127 then return s else return format("&#%X;",b) end end
+ )^0
+ )
+
+ patterns.toentities = toentities
+
+ function utf.toentities(str)
+ return lpegmatch(toentities,str)
+ end
+
+end
+
+do
+
+ local one = P(1)
+ local two = C(1) * C(1)
+ local four = C(R(utfchar(0xD8),utfchar(0xFF))) * C(1) * C(1) * C(1)
+
+ local pattern =
+ P("\254\255") * Cs( (
+ four / function(a,b,c,d)
+ local ab = 0xFF * byte(a) + byte(b)
+ local cd = 0xFF * byte(c) + byte(d)
+ return utfchar((ab-0xD800)*0x400 + (cd-0xDC00) + 0x10000)
+ end
+ + two / function(a,b)
+ return utfchar(byte(a)*256 + byte(b))
+ end
+ + one
+ )^1 )
+ + P("\255\254") * Cs( (
+ four / function(b,a,d,c)
+ local ab = 0xFF * byte(a) + byte(b)
+ local cd = 0xFF * byte(c) + byte(d)
+ return utfchar((ab-0xD800)*0x400 + (cd-0xDC00) + 0x10000)
+ end
+ + two / function(b,a)
+ return utfchar(byte(a)*256 + byte(b))
+ end
+ + one
+ )^1 )
+
+ function string.toutf(s) -- in string namespace
+ return lpegmatch(pattern,s) or s -- todo: utf32
+ end
+
+end
+
+do
+
+ local validatedutf = Cs (
+ (
+ patterns.utf8one
+ + patterns.utf8two
+ + patterns.utf8three
+ + patterns.utf8four
+ + P(1) / "�"
+ )^0
+ )
+
+ patterns.validatedutf = validatedutf
+
+ function utf.is_valid(str)
+ return type(str) == "string" and lpegmatch(validatedutf,str) or false
+ end
+
+end
+
+if not utf.sub then
+
+ -- also negative indices, upto 10 times slower than a c variant
+
+ local b, e, n, first, last = 0, 0, 0, 0, 0
+
+ local function slide_zero(s,p)
+ n = n + 1
+ if n >= last then
+ e = p - 1
+ else
+ return p
+ end
+ end
+
+ local function slide_one(s,p)
+ n = n + 1
+ if n == first then
+ b = p
+ end
+ if n >= last then
+ e = p - 1
+ else
+ return p
+ end
+ end
+
+ local function slide_two(s,p)
+ n = n + 1
+ if n == first then
+ b = p
+ else
+ return true
+ end
+ end
+
+ local pattern_zero = Cmt(p_utf8character,slide_zero)^0
+ local pattern_one = Cmt(p_utf8character,slide_one )^0
+ local pattern_two = Cmt(p_utf8character,slide_two )^0
+
+ local pattern_first = C(p_utf8character)
+
+ function utf.sub(str,start,stop)
+ if not start then
+ return str
+ end
+ if start == 0 then
+ start = 1
+ end
+ if not stop then
+ if start < 0 then
+ local l = utflength(str) -- we can inline this function if needed
+ start = l + start
+ else
+ start = start - 1
+ end
+ b, n, first = 0, 0, start
+ lpegmatch(pattern_two,str)
+ if n >= first then
+ return sub(str,b)
+ else
+ return ""
+ end
+ end
+ if start < 0 or stop < 0 then
+ local l = utf.length(str)
+ if start < 0 then
+ start = l + start
+ if start <= 0 then
+ start = 1
+ else
+ start = start + 1
+ end
+ end
+ if stop < 0 then
+ stop = l + stop
+ if stop == 0 then
+ stop = 1
+ else
+ stop = stop + 1
+ end
+ end
+ end
+ if start == 1 and stop == 1 then
+ return lpegmatch(pattern_first,str) or ""
+ elseif start > stop then
+ return ""
+ elseif start > 1 then
+ b, e, n, first, last = 0, 0, 0, start - 1, stop
+ lpegmatch(pattern_one,str)
+ if n >= first and e == 0 then
+ e = #str
+ end
+ return sub(str,b,e)
+ else
+ b, e, n, last = 1, 0, 0, stop
+ lpegmatch(pattern_zero,str)
+ if e == 0 then
+ e = #str
+ end
+ return sub(str,b,e)
+ end
+ end
+
+ -- local n = 100000
+ -- local str = string.rep("123456àáâãäå",100)
+ --
+ -- for i=-15,15,1 do
+ -- for j=-15,15,1 do
+ -- if utf.xsub(str,i,j) ~= utf.sub(str,i,j) then
+ -- print("error",i,j,"l>"..utf.xsub(str,i,j),"s>"..utf.sub(str,i,j))
+ -- end
+ -- end
+ -- if utf.xsub(str,i) ~= utf.sub(str,i) then
+ -- print("error",i,"l>"..utf.xsub(str,i),"s>"..utf.sub(str,i))
+ -- end
+ -- end
+
+ -- print(" 1, 7",utf.xsub(str, 1, 7),utf.sub(str, 1, 7))
+ -- print(" 0, 7",utf.xsub(str, 0, 7),utf.sub(str, 0, 7))
+ -- print(" 0, 9",utf.xsub(str, 0, 9),utf.sub(str, 0, 9))
+ -- print(" 4 ",utf.xsub(str, 4 ),utf.sub(str, 4 ))
+ -- print(" 0 ",utf.xsub(str, 0 ),utf.sub(str, 0 ))
+ -- print(" 0, 0",utf.xsub(str, 0, 0),utf.sub(str, 0, 0))
+ -- print(" 4, 4",utf.xsub(str, 4, 4),utf.sub(str, 4, 4))
+ -- print(" 4, 0",utf.xsub(str, 4, 0),utf.sub(str, 4, 0))
+ -- print("-3, 0",utf.xsub(str,-3, 0),utf.sub(str,-3, 0))
+ -- print(" 0,-3",utf.xsub(str, 0,-3),utf.sub(str, 0,-3))
+ -- print(" 5,-3",utf.xsub(str,-5,-3),utf.sub(str,-5,-3))
+ -- print("-3 ",utf.xsub(str,-3 ),utf.sub(str,-3 ))
+
+end
+
+function utf.remapper(mapping,option,action) -- static also returns a pattern
+ local variant = type(mapping)
+ if variant == "table" then
+ action = action or mapping
+ if option == "dynamic" then
+ local pattern = false
+ table.setmetatablenewindex(mapping,function(t,k,v) rawset(t,k,v) pattern = false end)
+ return function(str)
+ if not str or str == "" then
+ return ""
+ else
+ if not pattern then
+ pattern = Cs((tabletopattern(mapping)/action + p_utf8character)^0)
+ end
+ return lpegmatch(pattern,str)
+ end
+ end
+ elseif option == "pattern" then
+ return Cs((tabletopattern(mapping)/action + p_utf8character)^0)
+ -- elseif option == "static" then
+ else
+ local pattern = Cs((tabletopattern(mapping)/action + p_utf8character)^0)
+ return function(str)
+ if not str or str == "" then
+ return ""
+ else
+ return lpegmatch(pattern,str)
+ end
+ end, pattern
+ end
+ elseif variant == "function" then
+ if option == "pattern" then
+ return Cs((p_utf8character/mapping + p_utf8character)^0)
+ else
+ local pattern = Cs((p_utf8character/mapping + p_utf8character)^0)
+ return function(str)
+ if not str or str == "" then
+ return ""
+ else
+ return lpegmatch(pattern,str)
+ end
+ end, pattern
+ end
+ else
+ -- is actually an error
+ return function(str)
+ return str or ""
+ end
+ end
+end
+
+-- local remap = utf.remapper { a = 'd', b = "c", c = "b", d = "a" }
+-- print(remap("abcd 1234 abcd"))
+
+function utf.replacer(t) -- no precheck, always string builder
+ local r = replacer(t,false,false,true)
+ return function(str)
+ return lpegmatch(r,str)
+ end
+end
+
+function utf.subtituter(t) -- with precheck and no building if no match
+ local f = finder (t)
+ local r = replacer(t,false,false,true)
+ return function(str)
+ local i = lpegmatch(f,str)
+ if not i then
+ return str
+ elseif i > #str then
+ return str
+ else
+ -- return sub(str,1,i-2) .. lpegmatch(r,str,i-1) -- slower
+ return lpegmatch(r,str)
+ end
+ end
+end
+
+-- inspect(utf.split("a b c d"))
+-- inspect(utf.split("a b c d",true))
+
+local utflinesplitter = p_utfbom^-1 * lpeg.tsplitat(p_newline)
+local utfcharsplitter_ows = p_utfbom^-1 * Ct(C(p_utf8character)^0)
+local utfcharsplitter_iws = p_utfbom^-1 * Ct((p_whitespace^1 + C(p_utf8character))^0)
+local utfcharsplitter_raw = Ct(C(p_utf8character)^0)
+
+patterns.utflinesplitter = utflinesplitter
+
+function utf.splitlines(str)
+ return lpegmatch(utflinesplitter,str or "")
+end
+
+function utf.split(str,ignorewhitespace) -- new
+ if ignorewhitespace then
+ return lpegmatch(utfcharsplitter_iws,str or "")
+ else
+ return lpegmatch(utfcharsplitter_ows,str or "")
+ end
+end
+
+function utf.totable(str) -- keeps bom
+ return lpegmatch(utfcharsplitter_raw,str)
+end
+
+-- 0 EF BB BF UTF-8
+-- 1 FF FE UTF-16-little-endian
+-- 2 FE FF UTF-16-big-endian
+-- 3 FF FE 00 00 UTF-32-little-endian
+-- 4 00 00 FE FF UTF-32-big-endian
+--
+-- \000 fails in <= 5.0 but is valid in >=5.1 where %z is depricated
+
+-- utf.name = {
+-- [0] = 'utf-8',
+-- [1] = 'utf-16-le',
+-- [2] = 'utf-16-be',
+-- [3] = 'utf-32-le',
+-- [4] = 'utf-32-be'
+-- }
+
+function utf.magic(f) -- not used
+ local str = f:read(4) or ""
+ local off = lpegmatch(p_utfoffset,str)
+ if off < 4 then
+ f:seek('set',off)
+ end
+ return lpegmatch(p_utftype,str)
+end
+
+local utf_16_be_getbom = patterns.utfbom_16_be^-1
+local utf_16_le_getbom = patterns.utfbom_16_le^-1
+local utf_32_be_getbom = patterns.utfbom_32_be^-1
+local utf_32_le_getbom = patterns.utfbom_32_le^-1
+
+local utf_16_be_linesplitter = utf_16_be_getbom * lpeg.tsplitat(patterns.utf_16_be_nl)
+local utf_16_le_linesplitter = utf_16_le_getbom * lpeg.tsplitat(patterns.utf_16_le_nl)
+local utf_32_be_linesplitter = utf_32_be_getbom * lpeg.tsplitat(patterns.utf_32_be_nl)
+local utf_32_le_linesplitter = utf_32_le_getbom * lpeg.tsplitat(patterns.utf_32_le_nl)
+
+local more = 0
+
+local p_utf16_to_utf8_be = C(1) * C(1) /function(left,right)
+ local now = 256*byte(left) + byte(right)
+ if more > 0 then
+ now = (more-0xD800)*0x400 + (now-0xDC00) + 0x10000
+ more = 0
+ return utfchar(now)
+ elseif now >= 0xD800 and now <= 0xDBFF then
+ more = now
+ return "" -- else the c's end up in the stream
+ else
+ return utfchar(now)
+ end
+end
+
+local p_utf16_to_utf8_le = C(1) * C(1) /function(right,left)
+ local now = 256*byte(left) + byte(right)
+ if more > 0 then
+ now = (more-0xD800)*0x400 + (now-0xDC00) + 0x10000
+ more = 0
+ return utfchar(now)
+ elseif now >= 0xD800 and now <= 0xDBFF then
+ more = now
+ return "" -- else the c's end up in the stream
+ else
+ return utfchar(now)
+ end
+end
+
+local p_utf32_to_utf8_be = C(1) * C(1) * C(1) * C(1) /function(a,b,c,d)
+ return utfchar(256*256*256*byte(a) + 256*256*byte(b) + 256*byte(c) + byte(d))
+end
+
+local p_utf32_to_utf8_le = C(1) * C(1) * C(1) * C(1) /function(a,b,c,d)
+ return utfchar(256*256*256*byte(d) + 256*256*byte(c) + 256*byte(b) + byte(a))
+end
+
+p_utf16_to_utf8_be = P(true) / function() more = 0 end * utf_16_be_getbom * Cs(p_utf16_to_utf8_be^0)
+p_utf16_to_utf8_le = P(true) / function() more = 0 end * utf_16_le_getbom * Cs(p_utf16_to_utf8_le^0)
+p_utf32_to_utf8_be = P(true) / function() more = 0 end * utf_32_be_getbom * Cs(p_utf32_to_utf8_be^0)
+p_utf32_to_utf8_le = P(true) / function() more = 0 end * utf_32_le_getbom * Cs(p_utf32_to_utf8_le^0)
+
+patterns.utf16_to_utf8_be = p_utf16_to_utf8_be
+patterns.utf16_to_utf8_le = p_utf16_to_utf8_le
+patterns.utf32_to_utf8_be = p_utf32_to_utf8_be
+patterns.utf32_to_utf8_le = p_utf32_to_utf8_le
+
+local utf16_to_utf8_be = function(s)
+ if s and s ~= "" then
+ return lpegmatch(p_utf16_to_utf8_be,s)
+ else
+ return s
+ end
+end
+
+local utf16_to_utf8_be_t = function(t)
+ if not t then
+ return nil
+ elseif type(t) == "string" then
+ t = lpegmatch(utf_16_be_linesplitter,t)
+ end
+ for i=1,#t do
+ local s = t[i]
+ if s ~= "" then
+ t[i] = lpegmatch(p_utf16_to_utf8_be,s)
+ end
+ end
+ return t
+end
+
+local utf16_to_utf8_le = function(s)
+ if s and s ~= "" then
+ return lpegmatch(p_utf16_to_utf8_le,s)
+ else
+ return s
+ end
+end
+
+local utf16_to_utf8_le_t = function(t)
+ if not t then
+ return nil
+ elseif type(t) == "string" then
+ t = lpegmatch(utf_16_le_linesplitter,t)
+ end
+ for i=1,#t do
+ local s = t[i]
+ if s ~= "" then
+ t[i] = lpegmatch(p_utf16_to_utf8_le,s)
+ end
+ end
+ return t
+end
+
+local utf32_to_utf8_be = function(s)
+ if s and s ~= "" then
+ return lpegmatch(p_utf32_to_utf8_be,s)
+ else
+ return s
+ end
+end
+
+local utf32_to_utf8_be_t = function(t)
+ if not t then
+ return nil
+ elseif type(t) == "string" then
+ t = lpegmatch(utf_32_be_linesplitter,t)
+ end
+ for i=1,#t do
+ local s = t[i]
+ if s ~= "" then
+ t[i] = lpegmatch(p_utf32_to_utf8_be,s)
+ end
+ end
+ return t
+end
+
+local utf32_to_utf8_le = function(s)
+ if s and s ~= "" then
+ return lpegmatch(p_utf32_to_utf8_le,s)
+ else
+ return s
+ end
+end
+
+local utf32_to_utf8_le_t = function(t)
+ if not t then
+ return nil
+ elseif type(t) == "string" then
+ t = lpegmatch(utf_32_le_linesplitter,t)
+ end
+ for i=1,#t do
+ local s = t[i]
+ if s ~= "" then
+ t[i] = lpegmatch(p_utf32_to_utf8_le,s)
+ end
+ end
+ return t
+end
+
+utf.utf16_to_utf8_le_t = utf16_to_utf8_le_t
+utf.utf16_to_utf8_be_t = utf16_to_utf8_be_t
+utf.utf32_to_utf8_le_t = utf32_to_utf8_le_t
+utf.utf32_to_utf8_be_t = utf32_to_utf8_be_t
+
+utf.utf16_to_utf8_le = utf16_to_utf8_le
+utf.utf16_to_utf8_be = utf16_to_utf8_be
+utf.utf32_to_utf8_le = utf32_to_utf8_le
+utf.utf32_to_utf8_be = utf32_to_utf8_be
+
+function utf.utf8_to_utf8_t(t)
+ return type(t) == "string" and lpegmatch(utflinesplitter,t) or t
+end
+
+function utf.utf16_to_utf8_t(t,endian)
+ return endian and utf16_to_utf8_be_t(t) or utf16_to_utf8_le_t(t) or t
+end
+
+function utf.utf32_to_utf8_t(t,endian)
+ return endian and utf32_to_utf8_be_t(t) or utf32_to_utf8_le_t(t) or t
+end
+
+do
+
+ local function little(b)
+ if b < 0x10000 then
+ return char(b%256,(b>>8))
+ else
+ b = b - 0x10000
+ local b1 = (b>>10) + 0xD800
+ local b2 = b%1024 + 0xDC00
+ return char(b1%256,(b1>>8),b2%256,(b2>>8))
+ end
+ end
+
+ local function big(b)
+ if b < 0x10000 then
+ return char((b>>8),b%256)
+ else
+ b = b - 0x10000
+ local b1 = (b>>10) + 0xD800
+ local b2 = b%1024 + 0xDC00
+ return char((b1>>8),b1%256,(b2>>8),b2%256)
+ end
+ end
+
+ local l_remap = Cs((p_utf8byte/little+P(1)/"")^0)
+ local b_remap = Cs((p_utf8byte/big +P(1)/"")^0)
+
+ local function utf8_to_utf16_be(str,nobom)
+ if nobom then
+ return lpegmatch(b_remap,str)
+ else
+ return char(254,255) .. lpegmatch(b_remap,str)
+ end
+ end
+
+ local function utf8_to_utf16_le(str,nobom)
+ if nobom then
+ return lpegmatch(l_remap,str)
+ else
+ return char(255,254) .. lpegmatch(l_remap,str)
+ end
+ end
+
+ utf.utf8_to_utf16_be = utf8_to_utf16_be
+ utf.utf8_to_utf16_le = utf8_to_utf16_le
+
+ function utf.utf8_to_utf16(str,littleendian,nobom)
+ if littleendian then
+ return utf8_to_utf16_le(str,nobom)
+ else
+ return utf8_to_utf16_be(str,nobom)
+ end
+ end
+
+end
+
+local pattern = Cs (
+ (p_utf8byte / function(unicode ) return format( "0x%04X", unicode) end) *
+ (p_utf8byte * Carg(1) / function(unicode,separator) return format("%s0x%04X",separator,unicode) end)^0
+)
+
+function utf.tocodes(str,separator)
+ return lpegmatch(pattern,str,1,separator or " ")
+end
+
+function utf.ustring(s)
+ return format("U+%05X",type(s) == "number" and s or utfbyte(s))
+end
+
+function utf.xstring(s)
+ return format("0x%05X",type(s) == "number" and s or utfbyte(s))
+end
+
+function utf.toeight(str)
+ if not str or str == "" then
+ return nil
+ end
+ local utftype = lpegmatch(p_utfstricttype,str)
+ if utftype == "utf-8" then
+ return sub(str,4) -- remove the bom
+ elseif utftype == "utf-16-be" then
+ return utf16_to_utf8_be(str) -- bom gets removed
+ elseif utftype == "utf-16-le" then
+ return utf16_to_utf8_le(str) -- bom gets removed
+ else
+ return str
+ end
+end
+
+do
+
+ local p_nany = p_utf8character / ""
+ local cache = { }
+
+ function utf.count(str,what)
+ if type(what) == "string" then
+ local p = cache[what]
+ if not p then
+ p = Cs((P(what)/" " + p_nany)^0)
+ cache[p] = p
+ end
+ return #lpegmatch(p,str)
+ else -- 4 times slower but still faster than / function
+ return #lpegmatch(Cs((P(what)/" " + p_nany)^0),str)
+ end
+ end
+
+end
+
+utf.values = string.utfvalues
+
+function utf.chrlen(u) -- u is number
+ return
+ (u < 0x80 and 1) or
+ (u < 0xE0 and 2) or
+ (u < 0xF0 and 3) or
+ (u < 0xF8 and 4) or
+ (u < 0xFC and 5) or
+ (u < 0xFE and 6) or 0
+end
+
+-- hashing saves a little but not that much in practice
+--
+-- local utf32 = table.setmetatableindex(function(t,k) local v = toutf32(k) t[k] = v return v end)
+
+do
+
+ local extract = bit32.extract
+ local char = string.char
+
+ function utf.toutf32string(n)
+ if n <= 0xFF then
+ return
+ char(n) ..
+ "\000\000\000"
+ elseif n <= 0xFFFF then
+ return
+ char(extract(n, 0,8)) ..
+ char(extract(n, 8,8)) ..
+ "\000\000"
+ elseif n <= 0xFFFFFF then
+ return
+ char(extract(n, 0,8)) ..
+ char(extract(n, 8,8)) ..
+ char(extract(n,16,8)) ..
+ "\000"
+ else
+ return
+ char(extract(n, 0,8)) ..
+ char(extract(n, 8,8)) ..
+ char(extract(n,16,8)) ..
+ char(extract(n,24,8))
+ end
+ end
+
+end
+
+-- goodie:
+
+function string.utfpadd(s,n)
+ if n and n ~= 0 then
+ local l = utflength(s)
+ if n > 0 then
+ local d = n - l
+ if d > 0 then
+ return rep(c or " ",d) .. s
+ end
+ else
+ local d = - n - l
+ if d > 0 then
+ return s .. rep(c or " ",d)
+ end
+ end
+ end
+ return s
+end
+
+-- goodies
+
+do
+
+ lpeg.UP = P
+
+ function lpeg.US(str)
+ local p = P(false)
+ for uc in utfcharacters(str) do
+ p = p + P(uc)
+ end
+ return p
+ end
+
+ local range = p_utf8byte * p_utf8byte + Cc(false) -- utf8byte is already a capture
+
+ function lpeg.UR(str,more)
+ local first, last
+ if type(str) == "number" then
+ first = str
+ last = more or first
+ else
+ first, last = lpegmatch(range,str)
+ if not last then
+ return P(str)
+ end
+ end
+ if first == last then
+ return P(str)
+ end
+ if not utfchar then
+ utfchar = utf.char -- maybe delayed
+ end
+ if utfchar and (last - first < 8) then -- a somewhat arbitrary criterium
+ local p = P(false)
+ for i=first,last do
+ p = p + P(utfchar(i))
+ end
+ return p -- nil when invalid range
+ else
+ local f = function(b)
+ return b >= first and b <= last
+ end
+ -- tricky, these nested captures
+ return p_utf8byte / f -- nil when invalid range
+ end
+ end
+
+ -- print(lpeg.match(lpeg.Cs((C(lpeg.UR("αω"))/{ ["χ"] = "OEPS" })^0),"αωχαω"))
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-def.mkxl b/Master/texmf-dist/tex/context/base/mkxl/lang-def.mkxl
index 85c1f3ac775..cd5fd4ba34e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lang-def.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-def.mkxl
@@ -269,12 +269,50 @@
\c!rightquotation=\leftguillemot,
\c!date={\v!day,{.},\space,\v!month,\space,\v!year}]
+\installlanguage % for now we copy from slovenian
+ [\s!sq]
+ [\c!command=\v!no,
+ \s!lefthyphenmin=2,
+ \s!righthyphenmin=2,
+ \c!spacing=\v!packed,
+ \c!leftsentence=\hbox{\endash\space},
+ \c!rightsentence=\hbox{\space\endash},
+ \c!leftsubsentence=\endash,
+ \c!rightsubsentence=\endash,
+ \c!leftquote=\guilsingleright,
+ \c!rightquote=\guilsingleleft,
+ \c!leftquotation=\rightguillemot,
+ \c!rightquotation=\leftguillemot,
+ \c!date={\v!day,{.},\space,\v!month,\space,\v!year}]
+
+\installlanguage
+ [\s!hy]
+ [\c!spacing=\v!packed,
+ \c!leftsentence=\endash, % *sentences not confirmed
+ \c!rightsentence=\endash,
+ \c!leftsubsentence=\endash,
+ \c!rightsubsentence=\endash,
+ \c!leftquote=\guilsingleleft,
+ \c!rightquote=\guilsingleright,
+ \c!leftquotation=\leftguillemot
+ \c!rightquotation=\rightguillemot
+ \c!date={\v!day,\space,\v!month,\space,\v!year}, % word
+ % \c!date={\v!day,{.},\v!month,{.},\v!year}, % numbers
+ \s!patterns=\s!hy,
+ \s!lefthyphenmin=2,
+ \s!righthyphenmin=2]
+
\installlanguage [\s!polish] [\s!pl]
\installlanguage [\s!czech] [\s!cs]
\installlanguage [\s!slovak] [\s!sk]
\installlanguage [\s!croatian] [\s!hr]
\installlanguage [\s!slovenian] [\s!sl]
\installlanguage [slovene] [\s!sl] % both possible (mojca: still needed?)
+\installlanguage [\s!albanian] [\s!sq]
+\installlanguage [\s!armenian] [\s!hy]
+
+\installlanguage [\s!hye] [\s!hy] % Eastern Armenian
+\installlanguage [\s!hyw] [\s!hy] % Western Armenian
% Cyrillic Languages
@@ -350,6 +388,21 @@
\c!rightquotation=\upperrightdoublesixquote,
\c!date={\v!day,\space,\v!month,\space,\v!year}]
+\installlanguage
+ [\s!bg]
+ [\s!lefthyphenmin=2,
+ \s!righthyphenmin=2,
+ \c!spacing=\v!packed,
+ \c!leftsentence=\leftguillemot,
+ \c!rightsentence=\rightguillemot,
+ \c!leftsubsentence=\lowerleftdoubleninequote,
+ \c!rightsubsentence=\upperrightdoubleninequote,
+ \c!leftquote=\lowerleftsingleninequote,
+ \c!rightquote=\upperrightsinglesixquote,
+ \c!leftquotation=\lowerleftdoubleninequote,
+ \c!rightquotation=\upperrightdoublesixquote,
+ \c!date={\v!day,\space,\v!month,\space,\v!year}]
+
\installlanguage [\s!russian] [\s!ru]
\installlanguage [\s!ukrainian] [\s!ua]
\installlanguage [\s!belarussian][\s!be]
@@ -357,6 +410,7 @@
\installlanguage [\s!sr-latn] [\s!sr]
\installlanguage [\s!sr-cyrl] [\s!sr]
\installlanguage [\s!macedonian] [\s!mk]
+\installlanguage [\s!bulgarian] [\s!bg]
% Uralic Languages: Cheremiss, Estonian, Finnish, Karelian, Laap,
@@ -486,7 +540,7 @@
\installlanguage [\s!arabic] [\s!ar]
\installlanguage
- [\s!pe]
+ [\s!farsi]
[\c!spacing=\v!broad,
\c!leftsentence=\emdash,
\c!rightsentence=\emdash,
@@ -498,9 +552,9 @@
\c!rightquotation=\rightguillemot,
\c!date={\v!day,\space,\v!month,\space,\v!year}]
-\installlanguage [\s!persian] [\s!pe]
-\installlanguage [\s!fa] [\s!pe] % these two are redundant but sometimes might
-\installlanguage [\s!farsi] [\s!fa] % sound more natural .. best set labels to 'pe'
+\installlanguage [\s!fa] [\s!farsi]
+\installlanguage [\s!persian] [\s!farsi]
+\installlanguage [\s!pe] [\s!farsi]
% Just aliases to "ar" for now
@@ -538,21 +592,23 @@
% Artificial Languages: Esperanto
\installlanguage
- [\s!esperanto]
- [%\c!spacing=\v!packed,
- %\c!leftsentence=\emdash,
- %\c!rightsentence=\emdash,
- %\c!leftsubsentence=\emdash,
- %\c!rightsubsentence=\emdash,
- %\c!leftquote=\lowerleftdoubleninequote,
- %\c!rightquote=\upperrightdoublesixquote,
- %\c!leftquotation=\lowerleftdoubleninequote,
- %\c!rightquotation=\upperrightdoublesixquote,
- %\c!date={\v!year,~m.,\space,\v!month,\space,\v!day,~d.},
+ [\s!eo]
+ [\c!spacing=\v!packed,
+ \c!leftsentence=\endash,
+ \c!rightsentence=\endash,
+ \c!leftsubsentence=\endash,
+ \c!rightsubsentence=\endash,
+ \c!leftquote=\upperleftsinglesixquote, %U+2018,
+ \c!rightquote=\upperrightsingleninequote, %U+2019,
+ \c!leftquotation=\upperleftdoublesixquote, %U+201C,
+ \c!rightquotation=\upperrightdoubleninequote, %U+201D,
+ \c!date={\v!day,-a\space de\space,\v!month,\space \v!year},
\s!patterns=eo,
\s!lefthyphenmin=2,
\s!righthyphenmin=2]
+\installlanguage[\s!esperanto][\c!default=\s!eo]
+
% Baltic Languages: Lettish/Latvian, Lietuvių/Lithuanian
\installlanguage
@@ -622,7 +678,7 @@
% Greek
\installlanguage
- [\s!gr]
+ [\s!gr] % grc el-monotonic-greek.tex
[\c!spacing=\v!packed,
\c!leftsentence=\emdash,
\c!rightsentence=\emdash,
@@ -633,7 +689,7 @@
\c!leftquotation=«,
\c!rightquotation=»,
\c!date={\v!day\space\v!month\space\v!year},
- \s!patterns=\s!agr] % ok?
+ \s!patterns=\s!gr]
\installlanguage [\s!greek] [\s!gr]
@@ -808,7 +864,31 @@
\installlanguage [\s!thai] [\s!th]
-%D Malayalam (needs to be checked)
+%D Indic languages (śrīrāman)
+%
+%
+%D Sanskit (someone needs to define the parameters):
+%D
+%D The file \type {lang-sa.lua} contains sanskrit hyphenation patterns for devanagari,
+%D bengali, telugu, kannada, malayalam and roman(iast.
+
+\installlanguage
+ [\s!sa]
+ [\c!spacing=\v!broad,
+ \c!leftsentence=\endash,
+ \c!rightsentence=\endash,
+ \c!leftsubsentence=\emdash,
+ \c!rightsubsentence=\emdash,
+ \c!leftquote=\upperleftsinglesixquote,
+ \c!rightquote=\upperrightsingleninequote,
+ \c!leftquotation=\upperleftdoublesixquote,
+ \c!rightquotation=\upperrightdoubleninequote,
+ \c!date={\v!month,\space,\v!day,{,\space},\v!year},
+ \s!patterns=\s!sa,
+ \s!lefthyphenmin=1,
+ \s!righthyphenmin=1]
+
+%D Malayalam needs some fine-tuning
\installlanguage
[\s!ml]
@@ -826,7 +906,22 @@
\s!lefthyphenmin=2,
\s!righthyphenmin=3]
-\installlanguage [\s!malayalam] [\s!ml]
+\installlanguage [\s!ml][\c!default=\s!sa,\s!patterns=\s!ml]
+\installlanguage [\s!ta][\c!default=\s!sa,\s!patterns=ta]
+\installlanguage [\s!kn][\c!default=\s!sa,\s!patterns=kn]
+\installlanguage [\s!te][\c!default=\s!sa,\s!patterns=te]
+\installlanguage [\s!gu][\c!default=\s!sa,\s!patterns=gu]
+\installlanguage [\s!bn][\c!default=\s!sa,\s!patterns=bn]
+\installlanguage [\s!hi][\c!default=\s!sa,\s!patterns=hi]
+
+\installlanguage [\s!tamil] [\s!ta]
+\installlanguage [\s!kannada] [\s!kn]
+\installlanguage [\s!telugu] [\s!te]
+\installlanguage [\s!gujarati] [\s!gu]
+\installlanguage [\s!hindi] [\s!hi]
+\installlanguage [\s!bengali] [\s!bn]
+\installlanguage [\s!sanskrit] [\s!sa]
+\installlanguage [\s!malayalam][\s!ml]
%D Todo: generate this one from languages.data
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-dis.lmt b/Master/texmf-dist/tex/context/base/mkxl/lang-dis.lmt
index 263225691f0..36fea59c02d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lang-dis.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-dis.lmt
@@ -26,6 +26,7 @@ local getsubtype = nuts.getsubtype
local setsubtype = nuts.setsubtype
local getchar = nuts.getchar
local setchar = nuts.setchar
+local getdiscpart = nuts.getdiscpart
local getdisc = nuts.getdisc
local setdisc = nuts.setdisc
local getlanguage = nuts.getlanguage
@@ -36,10 +37,10 @@ local isglyph = nuts.isglyph
local copy_node = nuts.copy
local remove_node = nuts.remove
-local flush_list = nuts.flush_list
-local flush_node = nuts.flush_node
+----- flushnode = nuts.flushnode
local nextdisc = nuts.traversers.disc
+local nextglyph = nuts.traversers.glyph
local new_disc = nuts.pool.disc
@@ -49,6 +50,12 @@ local disccodes = nodes.disccodes
local disc_code = nodecodes.disc
local glyph_code = nodecodes.glyph
+local discoptioncodes = tex.discoptioncodes
+local pre_part_code = discoptioncodes.pre
+local post_part_code = discoptioncodes.post
+local replace_part_code = discoptioncodes.replace
+local always_part_code = discoptioncodes.always
+
local explicitdisc_code = disccodes.explicit
local a_visualize = attributes.private("visualizediscretionary")
@@ -77,6 +84,20 @@ function languages.visualizediscretionaries(head)
end
end
end
+ for g in nextglyph, head do
+ if getattr(g,a_visualize) then
+ local c = getdiscpart(g)
+ if c == pre_part_code then
+ setlistcolor(g,"darkmagenta")
+ elseif c == post_part_code then
+ setlistcolor(g,"darkcyan")
+ elseif c == replace_part_code then
+ setlistcolor(g,"darkyellow")
+ elseif c == always_part_code then
+ setlistcolor(g,"darkgray")
+ end
+ end
+ end
return head
end
@@ -124,12 +145,12 @@ end
local wiped = 0
-local flatten_discretionaries = nuts.flatten_discretionaries -- todo in nodes
+local flattendiscretionaries = nuts.flattendiscretionaries -- todo in nodes
--- if flatten_discretionaries then
+-- if flattendiscretionaries then
function languages.flatten(head)
- local h, n = flatten_discretionaries(head)
+ local h, n = flattendiscretionaries(head)
wiped = wiped + n
return h, n > 0
end
@@ -152,7 +173,7 @@ local flatten_discretionaries = nuts.flatten_discretionaries -- todo in nodes
-- head = h
-- end
-- wiped = wiped + 1
--- flush_node(delayed)
+-- flushnode(delayed)
-- return head
-- end
--
@@ -184,7 +205,7 @@ local flatten = languages.flatten
nodes.handlers.flattenline = flatten
function nodes.handlers.flatten(head,where)
- if head and (where == "box" or where == "adjusted_hbox") then
+ if head and (where == "box" or where == "adjustedhbox") then
return flatten(head)
end
return head
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-frq.mkxl b/Master/texmf-dist/tex/context/base/mkxl/lang-frq.mkxl
index 6b9853af574..7a35b8d510a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lang-frq.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-frq.mkxl
@@ -94,7 +94,7 @@
\permanent\protected\def\startcharactertable[#1]#2\stopcharactertable % \dimexpr has fuzzy lookahead
{\startnointerference
\gdefcsname\??frequencywidths#1\endcsname{#2}% the width vector
- \scratchcounter\zerocount \def\charfreq##1 ##2 {\advance\scratchcounter\plusone} #2%
+ \scratchcounter\zerocount \def\charfreq##1 ##2 {\advanceby\scratchcounter\plusone} #2%
\xdefcsname\??frequencycounts#1\endcsname{\the\scratchcounter}% the character count
\stopnointerference}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-hup.lmt b/Master/texmf-dist/tex/context/base/mkxl/lang-hup.lmt
new file mode 100644
index 00000000000..2099f9d1b7c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-hup.lmt
@@ -0,0 +1,264 @@
+if not modules then modules = { } end modules ['lang-hup'] = {
+ version = 1.001,
+ comment = "companion to lang-hup.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local type, next = type, next
+local utfchar = utf.char
+local concat, sortedhash = table.concat, table.sortedhash
+local basename = file.basename
+
+local status = status
+local nodes = nodes
+
+local is_letter = characters.is_letter
+local is_hyphenator = characters.is_hyphenator
+
+local specialskips = nodes.specialskipcodes
+local nodecodes = nodes.nodecodes
+local disc_code = nodecodes.disc
+local glyph_code = nodecodes.glyph
+local glue_code = nodecodes.glue
+local hlist_code = nodecodes.hlist
+local kern_code = nodecodes.kern
+local par_code = nodecodes.par
+local line_code = nodes.listcodes.line
+local fontkern_code = nodes.kerncodes.fontkern
+local nuts = nodes.nuts
+local getlist = nuts.getlist
+local getnext = nuts.getnext
+local getprev = nuts.getprev
+local getid = nuts.getid
+local getsubtype = nuts.getsubtype
+local getreplace = nuts.getreplace
+local getdiscpart = nuts.getdiscpart
+local isnextglyph = nuts.isnextglyph
+local nexthlist = nuts.traversers.list
+local nextglyph = nuts.traversers.glyph
+local traverse = nuts.traverse
+
+local setcolor = nodes.tracers.colors.set
+local setaction = nodes.tasks.setaction
+
+local hash = table.setmetatableindex("number")
+
+local report = logs.reporter("hyphenated")
+local trace_detail = false
+
+local characters = fonts.hashes.characters
+
+local word = { }
+local w = 0
+
+----- function collect(word,head)
+local function collect(head)
+ local last = nil
+ while head do
+ local nxt, char, id = isnextglyph(head)
+ if char then
+ local u = characters[id][char].unicode -- we could cache it
+ if type(u) == "table" then
+ for i=1,#u do
+ local c = u[i]
+ if is_letter[c] or is_hyphenator[c] then
+ -- word[#word+1] = utfchar(c)
+ w = w + 1 ; word[w] = utfchar(c)
+ end
+ end
+ else
+ local c = u or char
+ if is_letter[c] or is_hyphenator[c] then
+ -- word[#word+1] = utfchar(c)
+ w = w + 1 ; word[w] = utfchar(c)
+ end
+ end
+ last = head
+ elseif id == disc_code then
+ -- collect(word,getreplace(head))
+ collect(getreplace(head))
+ elseif id == kern_code and getsubtype(head,fontkern_code) then
+ -- we're ok
+ else
+ break
+ end
+ head = nxt
+ end
+ return last and getdiscpart(last) == 1
+end
+
+local function getpostpart(current)
+ for n, id, subtype in traverse(current) do
+ if id == glue_code then
+ if not specialskips[subtype] then
+ break
+ end
+ elseif id == glyph_code or id == disc_code then
+ return n
+ elseif id ~= par_code then
+ break
+ end
+ end
+end
+
+local function findprepart(current)
+ for n, id, subtype in traverse(current,true,true) do
+ if id == glue_code then
+ if not specialskips[subtype] then
+ break
+ end
+ elseif id == glyph_code and getdiscpart(n) == 1 then
+ return n
+ else
+ break
+ end
+ end
+end
+
+local function getprepart(disc)
+ local back = disc
+ for n, id, subtype in traverse(getprev(disc),true) do
+ if id == glyph_code or id == disc_code or (id == kern_code and subtype == fontkern_code) then
+ back = n
+ else
+ return back
+ end
+ end
+ return back
+end
+
+function nodes.handlers.showhyphenation(head)
+ -- local word = { }
+ w = 0
+ for current, id, subtype, list in nexthlist, head do
+ if list and subtype == line_code then
+ -- if #word > 0 then
+ if w > 0 then
+ local after = getpostpart(list)
+ -- local more = collect(word,after)
+ local more = collect(after)
+ if more then
+ goto skip
+ else
+ -- local result = concat(word)
+ local result = concat(word,"",1,w)
+ if trace_detail then
+ local r = status.readstate
+ report("around line %s in file %s: %s",r.linenumber or "-",basename(r.filename),result)
+ end
+ hash[result] = hash[result] + 1
+ -- word = { }
+ w = 0
+ end
+ end
+ local last = findprepart(list)
+ if last then
+ local before = getprepart(last)
+ -- collect(word,before)
+ collect(before)
+ end
+ ::skip::
+ end
+ end
+ return head
+end
+
+local initialize initialize = function()
+ logs.registerfinalactions(function()
+ logs.startfilelogging(report,"hyphenated words")
+ if hash and next(hash) then
+ local oldname = file.nameonly(tex.jobname) .. "-hyphenated-words-old.txt"
+ local newname = file.nameonly(tex.jobname) .. "-hyphenated-words-new.txt"
+ local old = string.splitlines(string.strip(io.loaddata(oldname) or "")) or { }
+ local hsh = table.tohash(old)
+ local new = { }
+ for word, count in sortedhash(hash) do
+ report("%4i : %s",count,word)
+ if not hsh[word] then
+ new[#new+1] = word
+ end
+ end
+ logs.stopfilelogging()
+ report("old word list : %a",oldname)
+ report("new word list : %a",newname)
+ report("to be checked : %a",#new)
+ io.savedata(newname,concat(new,"\n"))
+ else
+ report("nothing hyphenated")
+ logs.stopfilelogging()
+ end
+ end)
+ --
+ statistics.register("hyphenation",function()
+ local n = 0
+ local m = 0
+ for k, v in sortedhash(hash) do
+ n = n + 1
+ m = m + v
+ end
+ return string.format("%i hyphenated words, %i unique words",m,n)
+ end)
+ initialize = false
+end
+
+trackers.register("hyphenation.applied", function(v)
+ setaction("finalizers","nodes.handlers.showhyphenation",v)
+ if v and initialize then
+ initialize()
+ end
+end)
+
+trackers.register("hyphenation.applied.console", function(v)
+ setaction("finalizers","nodes.handlers.showhyphenation",v)
+ trace_detail = v
+ if v and initialize then
+ initialize()
+ end
+end)
+
+-- local c, f = isglyph(current)
+-- local char = chardata[f][c]
+-- if char and type(char.unicode) == "table" then -- hackery test
+
+local ligature_code = 0x8000 + nodes.glyphcodes.ligature
+local ligature_mode = false
+
+local color_n = { "red", "green", "blue" }
+local color_l = { "darkred", "darkgreen", "darkblue" }
+
+function nodes.handlers.visualizehyphenation(head)
+ for current, id, subtype, list in nexthlist, head do
+ if list and subtype == line_code then
+ if ligature_mode then
+ for n in nextglyph, list do
+ local d = getdiscpart(n)
+ local s = getsubtype(n)
+ if d > 0 and d < 4 then
+ if s == ligature_code then
+ setcolor(n,color_l[d])
+ else
+ setcolor(n,color_n[d])
+ end
+ elseif s == ligature_code then
+ setcolor(n,"darkgray")
+ end
+ end
+ else
+ for n in nextglyph, list do
+ local d = getdiscpart(n)
+ if d > 0 and d < 4 then
+ setcolor(n,color_n[d])
+ end
+ end
+ end
+ end
+ end
+ return head
+end
+
+trackers.register("hyphenation.applied.visualize", { true, false, "ligatures" }, function(v)
+ setaction("finalizers","nodes.handlers.visualizehyphenation",v)
+ ligature_mode = v == "ligatures"
+end)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-hup.mkxl b/Master/texmf-dist/tex/context/base/mkxl/lang-hup.mkxl
new file mode 100644
index 00000000000..444863cc599
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-hup.mkxl
@@ -0,0 +1,34 @@
+%D \module
+%D [ file=lang-hup,
+%D version=2021.03.19,
+%D title=\CONTEXT\ Language Macros,
+%D subtitle=Hyphenation tracing,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Language Macros / hyphenation tracing}
+
+\unprotect
+
+\registerctxluafile{lang-hup}{autosuffix}
+
+%D \starttyping
+%D \starttext
+%D
+%D \enabletrackers[hyphenation.applied]
+%D \enabletrackers[hyphenation.applied.console]
+%D
+%D \dontcomplain \dostepwiserecurse{0}{15}{1}{
+%D {\advanceby\hsize -#1cm \input tufte \par}
+%D }
+%D
+%D \stoptext
+%D \stoptyping
+
+\protect \endinput
+
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-hyp.lmt b/Master/texmf-dist/tex/context/base/mkxl/lang-hyp.lmt
index c356dbf3c47..1ac2604f209 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lang-hyp.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-hyp.lmt
@@ -656,12 +656,12 @@ if context then
local setprev = nuts.setprev
local setnext = nuts.setnext
- local insert_before = nuts.insert_before
- local insert_after = nuts.insert_after
+ local insertbefore = nuts.insertbefore
+ local insertafter = nuts.insertafter
local copy_node = nuts.copy
- local copy_list = nuts.copy_list
+ local copylist = nuts.copylist
local remove_node = nuts.remove
- local end_of_math = nuts.end_of_math
+ local endofmath = nuts.endofmath
local node_tail = nuts.tail
local nexthlist = nuts.traversers.hlist
@@ -1014,7 +1014,7 @@ featureset.hyphenonly = hyphenonly == v_yes
-- [nodecodes.rule] = true,
-- [nodecodes.dir] = true,
-- [nodecodes.whatsit] = true,
- -- [nodecodes.ins] = true,
+ -- [nodecodes.insert] = true,
-- [nodecodes.adjust] = true,
--
-- [nodecodes.math] = true,
@@ -1044,8 +1044,8 @@ featureset.hyphenonly = hyphenonly == v_yes
local stop = nil
local word = { } -- we reuse this table
local size = 0
- local leftchar = false
- local rightchar = false -- utfbyte("-")
+ -- local leftchar = false
+ -- local rightchar = false -- utfbyte("-")
local leftexchar = false
local rightexchar = false -- utfbyte("-")
local leftmin = 0
@@ -1087,7 +1087,7 @@ featureset.hyphenonly = hyphenonly == v_yes
nuts.setvisual(p,"penalty")
end
last = getprev(last)
- first, last = insert_after(first,last,p)
+ first, last = insertafter(first,last,p)
end
local function synchronizefeatureset(a)
@@ -1245,7 +1245,7 @@ featureset.hyphenonly = hyphenonly == v_yes
local glyph = copy_node(stop)
setchar(glyph,characters[replacement])
if head then
- insert_after(current,current,glyph)
+ insertafter(current,current,glyph)
else
head = glyph
end
@@ -1256,7 +1256,7 @@ featureset.hyphenonly = hyphenonly == v_yes
local glyph = copy_node(stop)
setchar(glyph,characters[list[i]])
if head then
- insert_after(current,current,glyph)
+ insertafter(current,current,glyph)
else
head = glyph
end
@@ -1265,7 +1265,7 @@ featureset.hyphenonly = hyphenonly == v_yes
end
if rightchar then
local glyph = copy_node(stop)
- insert_after(current,current,glyph)
+ insertafter(current,current,glyph)
setchar(glyph,rightchar)
end
return head
@@ -1291,7 +1291,7 @@ featureset.hyphenonly = hyphenonly == v_yes
setattrlist(disc,attrnode)
end
-- could be a replace as well
- insert_before(first,current,disc)
+ insertbefore(first,current,disc)
elseif type(r) == "table" then
local disc = new_disc()
local pre = r[1]
@@ -1325,7 +1325,7 @@ featureset.hyphenonly = hyphenonly == v_yes
if attrnode then
setattrlist(disc,attrnode)
end
- insert_before(first,current,disc)
+ insertbefore(first,current,disc)
else
setchar(current,characters[r])
if i < rsize then
@@ -1340,14 +1340,13 @@ featureset.hyphenonly = hyphenonly == v_yes
first, current = remove_node(first,current,true)
end
end
-
end
local function inject(leftchar,rightchar,code,attrnode)
if first ~= current then
local disc = new_disc()
first, current, glyph = remove_node(first,current)
- first, current = insert_before(first,current,disc)
+ first, current = insertbefore(first,current,disc)
if trace_visualize then
setcolor(glyph,"darkred") -- these get checked
setcolor(disc,"darkgreen") -- in the colorizer
@@ -1372,7 +1371,7 @@ featureset.hyphenonly = hyphenonly == v_yes
local function injectseries(current,last,next,attrnode)
local disc = new_disc()
local start = current
- first, current = insert_before(first,current,disc)
+ first, current = insertbefore(first,current,disc)
setprev(start)
setnext(last)
if next then
@@ -1380,7 +1379,7 @@ featureset.hyphenonly = hyphenonly == v_yes
else
setnext(current)
end
- local pre = copy_list(start)
+ local pre = copylist(start)
local post = nil
local replace = start
setdisc(disc,pre,post,replace,automaticdisc_code,hyphenpenalty) -- ex ?
@@ -1547,10 +1546,10 @@ featureset.hyphenonly = hyphenonly == v_yes
skipping = true
end
-- elseif strict and strict[id] then
- -- current = id == math_code and getnext(end_of_math(current)) or getnext(current)
+ -- current = id == math_code and getnext(endofmath(current)) or getnext(current)
-- size = 0
else
- current = id == math_code and getnext(end_of_math(current)) or getnext(current)
+ current = id == math_code and getnext(endofmath(current)) or getnext(current)
end
if size > 0 then
if dictionary and size > charmin and leftmin + rightmin <= size then
@@ -1645,7 +1644,7 @@ featureset.hyphenonly = hyphenonly == v_yes
function hyphenators.handler(head,groupcode)
if usedmethod then
- if optimize and (groupcode == "hbox" or groupcode == "adjusted_hbox") then
+ if optimize and (groupcode == "hbox" or groupcode == "adjustedhbox") then
if getcount("hyphenstate") > 0 then
forced = false
return usedmethod(head)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-hyp.mkxl b/Master/texmf-dist/tex/context/base/mkxl/lang-hyp.mkxl
index 87423d6d365..355804ca3fb 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lang-hyp.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-hyp.mkxl
@@ -43,7 +43,7 @@
%D and such are now more or less default in \CONTEXT\ so we can simplify some of the
%D code. We also use the new penalty mechanism.
-\newcount\compoundhyphenpenalty
+\newinteger\compoundhyphenpenalty
% \ifcase\contextlmtxmode
% \hyphenpenaltymode\plusfour
@@ -62,15 +62,29 @@
\installcorenamespace{hyphenation}
\installcorenamespace{hyphenationfeatures}
-\installparameterhandler \??hyphenation {hyphenation}
-\installsetuphandler \??hyphenation {hyphenation}
+\installparameterhandler \??hyphenation {hyphenation}
+\installrootparameterhandler \??hyphenation {hyphenation}
+\installsetuphandler \??hyphenation {hyphenation}
+
+% \installbasicsetuphandler \??hyphenation {hyphenation}
\setuphyphenation
[\c!method=\s!default,
+ \c!hyphens=\v!yes,
\s!righthyphenchar=0, % number tzt g: etc
\s!lefthyphenchar=0] % number
\appendtoks
+ % \edef\p_hyphens{\roothyphenationparameter\c!hyphens}%
+ \edef\p_hyphens{\hyphenationparameter\c!hyphens}%
+ \ifx\p_hyphens\v!no
+ \nohyphencollapsing
+ \else
+ \dohyphencollapsing
+ \fi
+\to \everysetuphyphenation
+
+\appendtoks
\clf_sethyphenationmethod{\hyphenationparameter\c!method}%
\to \everysetuphyphenation
@@ -93,19 +107,19 @@
% [\c!method=\s!traditional] % no translations
\permanent\tolerant\protected\def\definehyphenationfeatures[#1]#*[#2]%
- {\begingroup
- \letdummyparameter\c!characters \empty % maybe \s!characters
- \letdummyparameter\c!hyphens \empty % maybe \s!hyphens
- \letdummyparameter\c!joiners \empty % maybe \s!joiners
- \letdummyparameter\c!rightwords \zerocount % maybe \s!rightwords
- \letdummyparameter\s!lefthyphenmin \zerocount
- \letdummyparameter\s!righthyphenmin \zerocount
- \letdummyparameter\s!hyphenmin \zerocount
- \letdummyparameter\s!lefthyphenchar \zerocount
- \letdummyparameter\s!righthyphenchar\zerocount
- \letdummyparameter\c!alternative \empty
- \letdummyparameter\c!rightedge \empty
- \letdummyparameter\c!rightchars \empty
+ {\begingroup % maybe simple handler
+ \resetdummyparameter\c!characters % maybe \s!characters
+ \resetdummyparameter\c!hyphens % maybe \s!hyphens
+ \resetdummyparameter\c!joiners % maybe \s!joiners
+ \letdummyparameter \c!rightwords \zerocount % maybe \s!rightwords
+ \letdummyparameter \s!lefthyphenmin \zerocount
+ \letdummyparameter \s!righthyphenmin \zerocount
+ \letdummyparameter \s!hyphenmin \zerocount
+ \letdummyparameter \s!lefthyphenchar \zerocount
+ \letdummyparameter \s!righthyphenchar\zerocount
+ \resetdummyparameter\c!alternative
+ \resetdummyparameter\c!rightedge
+ \resetdummyparameter\c!rightchars
\getdummyparameters[#2]%
\clf_definehyphenationfeatures
{#1}%
@@ -196,9 +210,6 @@
% \sethyphenationfeatures
% [default,fences]
-% \setuphyphenation % will be default
-% [method=expanded]
-
\protect \endinput
% \starttext
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/lang-ini.lmt
index 5f2dd1a55d3..64f1e82d029 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lang-ini.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-ini.lmt
@@ -10,18 +10,20 @@ if not modules then modules = { } end modules ['lang-ini'] = {
-- discard language when redefined
-- 002D : hyphen-minus (ascii)
+-- 002D : hyphen-minus (ascii)
-- 2010 : hyphen
-- 2011 : nonbreakable hyphen
-- 2013 : endash (compound hyphen)
---~ language:hyphenation(string) string = language:hyphenation() language:clear_hyphenation()
-
-- todo: no foo:bar but foo(bar,...)
+-- https://wortschatz.uni-leipzig.de/de/download/German : lots of lists
+
local type, tonumber, next = type, tonumber, next
-local utfbyte = utf.byte
+local utfbyte, utflength = utf.byte, utf.length
local format, gsub, gmatch, find = string.format, string.gsub, string.gmatch, string.find
-local concat, sortedkeys, sortedpairs, keys, insert = table.concat, table.sortedkeys, table.sortedpairs, table.keys, table.insert
+local concat, sortedkeys, sortedhash, keys, insert, tohash = table.concat, table.sortedkeys, table.sortedhash, table.keys, table.insert, table.tohash
+local setmetatableindex = table.setmetatableindex
local utfvalues, strip, utfcharacters = string.utfvalues, string.strip, utf.characters
local context = context
@@ -29,11 +31,14 @@ local commands = commands
local implement = interfaces.implement
local settings_to_array = utilities.parsers.settings_to_array
-local settings_to_set = utilities.parsers.settings_to_set
+local settings_to_set = utilities.parsers.settings_to_set
local trace_patterns = false trackers.register("languages.patterns", function(v) trace_patterns = v end)
+local trace_goodies = false trackers.register("languages.goodies", function(v) trace_goodies = v end)
+local trace_applied = false trackers.register("languages.applied", function(v) trace_applied = v end)
local report_initialization = logs.reporter("languages","initialization")
+local report_goodies = logs.reporter("languages","goodies")
local prehyphenchar = language.prehyphenchar -- global per language
local posthyphenchar = language.posthyphenchar -- global per language
@@ -94,6 +99,9 @@ local function tolang(what) -- returns lang object
if not what then
what = currentlanguage()
end
+ if type(what) == "userdata" then
+ return what
+ end
local tag = numbers[what]
local data = tag and registered[tag] or registered[what]
if data then
@@ -114,7 +122,7 @@ function languages.getdata(tag) -- or number
end
end
--- languages.tolang = tolang
+languages.tolang = tolang
-- patterns=en
-- patterns=en,de
@@ -156,11 +164,16 @@ local function sethjcodes(instance,loaded,what,factor)
loaded.codehash = h
end
--
- local function setcode(l)
- local u = uccodes[l]
+ local function setcode(code)
+ local l = lccodes[code] -- just in case we get a mixture
+ local u = uccodes[code] -- just in case we get a mixture
local s = l
+ if type(s) ~= "number" then
+ l = code
+ s = code
+ end
if hjcounts then
- local c = hjcounts[l]
+ local c = hjcounts[s]
if c then
c = c.count
if not c then
@@ -178,20 +191,30 @@ local function sethjcodes(instance,loaded,what,factor)
end
end
sethjcode(instance,l,s)
- h[l] = s
if u ~= l and type(u) == "number" then
sethjcode(instance,u,s)
- h[u] = lccodes[l]
+ h[u] = s
end
end
--
local s = tex.savinghyphcodes
tex.savinghyphcodes = 0
if type(c) == "table" then
- for l in next, c do
- setcode(utfbyte(l))
+ if #c > 0 then
+ -- list: { U, U, U, "chr", "chr", ... }
+ for i=1,#c do
+ local v = c[i]
+ setcode(type(v) == "string" and utfbyte(v) or v)
+ end
+ else
+ -- hash: { ["chr"] = true, ... }
+ for k, v in sortedhash(c) do
+ if v then
+ setcode(utfbyte(k))
+ end
+ end
end
- else
+ elseif type(c) == "string" then
for l in utfvalues(c) do
setcode(l)
end
@@ -200,9 +223,35 @@ local function sethjcodes(instance,loaded,what,factor)
end
end
+local function addhjcodestoinstance(instance,characters)
+ if type(characters) == "table" then
+ local nofcharacters = #characters
+ if nofcharacters > 0 then
+ -- list: { U, U, U, "chr", "chr", ... }
+ for i=1,nofcharacters do
+ local v = characters[i]
+ local h = type(v) == "string" and utfbyte(v) or v
+ sethjcode(instance,h,h)
+ end
+ else
+ -- hash: { ["chr"] = true, ... }
+ for k, v in next, characters do
+ if v then
+ local h = type(k) == "string" and utfbyte(k) or k
+ sethjcode(instance,h,h)
+ end
+ end
+ end
+ elseif type(characters) == "string" then
+ for h in utfvalues(characters) do
+ sethjcode(instance,h,h)
+ end
+ end
+end
+
-- 2'2 conflicts with 4' ... and luatex barks on it
-local P, R, Cs, Ct, lpegmatch, lpegpatterns = lpeg.P, lpeg.R, lpeg.Cs, lpeg.Ct, lpeg.match, lpeg.patterns
+local P, S, R, C, Cs, Ct, lpegmatch, lpegpatterns = lpeg.P, lpeg.S, lpeg.R, lpeg.C, lpeg.Cs, lpeg.Ct, lpeg.match, lpeg.patterns
local utfsplit = utf.split
@@ -316,8 +365,8 @@ local function loaddefinitions(tag,specification)
if trace_patterns then
report_initialization("clearing patterns for language %a",tag)
end
- instance:clear_patterns()
- instance:clear_hyphenation()
+ instance:clearpatterns()
+ instance:clearhyphenation()
ploaded = { }
eloaded = { }
elseif not dataused[definition] then
@@ -358,12 +407,12 @@ local function loaddefinitions(tag,specification)
end
if #ploaded > 0 then
-- why not always clear
- instance:clear_patterns()
+ instance:clearpatterns()
instance:patterns(unique(tag,requested,ploaded))
end
if #eloaded > 0 then
-- why not always clear
- instance:clear_hyphenation()
+ instance:clearhyphenation()
instance:hyphenation(concat(eloaded," "))
end
if type(shared) == "string" then
@@ -450,65 +499,6 @@ function languages.unload(tag)
end
end
-if environment.initex then
-
- function languages.getnumber()
- return 0
- end
-
-else
-
- function languages.getnumber(tag,default,patterns,factor)
- local l = registered[tag]
- if l then
- if l.dirty then
- l.factor = factor == v_yes and true or false
- if trace_patterns then
- report_initialization("checking patterns for %a with default %a",tag,default)
- end
- -- patterns is already resolved to parent patterns if applicable
- if patterns and patterns ~= "" then
- if l.patterns ~= patterns then
- l.patterns = patterns
- if trace_patterns then
- report_initialization("loading patterns for %a using specification %a",tag,patterns)
- end
- loaddefinitions(tag,l)
- else
- -- unchanged
- end
- elseif l.patterns == "" then
- l.patterns = tag
- if trace_patterns then
- report_initialization("loading patterns for %a using tag",tag)
- end
- local ok = loaddefinitions(tag,l)
- if not ok and tag ~= default then
- l.patterns = default
- if trace_patterns then
- report_initialization("loading patterns for %a using default",tag)
- end
- loaddefinitions(tag,l)
- end
- end
- l.loaded = true
- l.dirty = false
- end
- return l.number
- else
- return 0
- end
- end
-
- numbers[0] = "null"
-
- registered.null = {
- number = 0,
- instance = new_language(0),
- }
-
-end
-
-- not that usefull, global values
function languages.prehyphenchar (what) return prehyphenchar (tolang(what)) end
@@ -524,13 +514,22 @@ function languages.postexhyphenchar(what) return postexhyphenchar(tolang(what))
-- e['user-friendly'] = 'user=friend-ly'
-- e['exceptionally-friendly'] = 'excep-tionally=friend-ly'
-local invalid = { "{", "}", "-" }
+local invalid = { "{", "}", "(", ")", "-", " " }
local function collecthjcodes(data,str)
local found = data.extras and data.extras.characters or { }
- for s in utfcharacters(str) do
- if not found[s] then
- found[s] = true
+ if type(str) == "string" then
+ for s in utfcharacters(str) do
+ if not found[s] then
+ found[s] = true
+ end
+ end
+ elseif type(str) == "table" then
+ for i=1,#str do
+ local s = str[i]
+ if not found[s] then
+ found[s] = true
+ end
end
end
for i=1,#invalid do -- less checks this way
@@ -564,6 +563,30 @@ function languages.setexceptions(tag,str)
end
end
+function languages.setpatterns(tag,str)
+ local data, instance = resolve(tag)
+ if data then
+ str = strip(str) -- we need to strip leading spaces
+ collecthjcodes(data,str)
+ instance:patterns(str)
+ end
+end
+
+local function setwordhandler(tag,action)
+ local data, instance = resolve(tag)
+ if data then
+ instance:setwordhandler(action)
+ end
+end
+
+languages.setwordhandler = setwordhandler
+
+function languages.setoptions(tag,str)
+ languages.addgoodiesdata(tag,{ { words = str } })
+ -- for now:
+ languages.setgoodieshandler { tag = tag, goodies = tag }
+end
+
function languages.hyphenate(tag,str)
-- todo: does this still work?
local data, instance = resolve(tag)
@@ -574,6 +597,878 @@ function languages.hyphenate(tag,str)
end
end
+-- This code is here for some testing (and discussion) but it might end up in its
+-- own module. I wrote it after listening to the end March 2021 live concert of
+-- Mandoki Soulmates: Hungarian Pictures (music is the greatest unifier) with his
+-- usual incredible international lineup. After that, and realizing that we needed
+-- to deal better with some language issues as follow up on a mailing list thread, I
+-- needed only a few loops of relistening the concert to implement it. In
+-- restrospect this was a language feature that should have been there a while ago.
+
+local expand ; do
+
+ local nuts = nodes.nuts
+ local nextglyph = nuts.traversers.glyph
+ local setoptions = nuts.setoptions
+
+ local getnext = nuts.getnext
+ local getprev = nuts.getprev
+ local setchar = nuts.setchar
+ local setnext = nuts.setnext
+ local setlink = nuts.setlink
+ local setfield = nuts.setfield
+ local setdisc = nuts.setdisc
+ local getprop = nuts.getprop
+ local setprop = nuts.setprop
+ local setattrlist = nuts.setattrlist
+
+ local new_disc = nuts.pool.disc
+ local new_glyph = nuts.pool.glyph
+ local copy_node = nuts.copy
+ local flushlist = nuts.flushlist
+
+ local glyphoptioncodes = tex.glyphoptioncodes
+
+ local lower = characters.lower
+ local replacer = utf.replacer
+ local utfchartabletopattern = lpeg.utfchartabletopattern
+
+ local report = logs.reporter("languages","goodies")
+
+ -- can be shared
+
+ local goodiesdata = setmetatableindex(function(t,k)
+ local v = {
+ properties = { },
+ replacements = { },
+ characters = { },
+ exceptions = { },
+ substitutions = { },
+ }
+ t[k] = v
+ return v
+ end)
+
+ -- can be a helper
+
+ local compound_disc_code = tex.discoptioncodes.preword | tex.discoptioncodes.postword
+
+ local function setcompound(current,id,first,last,lh,rh,hyphen)
+ local prev = getprev(current)
+ -- local language = tolang(id)
+ -- local prechar = prehyphenchar(language)
+ -- local postchar = posthyphenchar(language)
+ local prechar = prehyphenchar(id)
+ local postchar = posthyphenchar(id)
+ local pre = prechar and copy_node(current)
+ local post = postchar and copy_node(current)
+ local replace = hyphen and prechar and copy_node(current)
+ local disc = new_disc()
+ if pre then
+ setchar(pre,prechar)
+ end
+ if post then
+ setchar(post,postchar)
+ end
+ if replace then
+ setchar(replace,prechar)
+ end
+ setattrlist(disc,current)
+ setoptions(disc,0x3) -- todo foo_code
+ setdisc(disc,pre,post,replace)
+ setlink(prev,disc,current)
+ if lh then
+ setfield(first,"rhmin",rh)
+ end
+
+ if rh then
+ setfield(current,"lhmin",lh)
+ end
+
+ end
+
+ local setcompounds = setmetatableindex(function(t,l)
+ local v = setmetatableindex(function(t,r)
+ local v = function(current,id,first,last) return setcompound(current,id,first,last,l,r) end
+ t[r] = v
+ return v
+ end)
+ t[l] = v
+ return v
+ end)
+
+ local sethyphens = setmetatableindex(function(t,l)
+ local v = setmetatableindex(function(t,r)
+ local v = function(current,id,first,last) return setcompound(current,id,first,last,l,r,true) end
+ t[r] = v
+ return v
+ end)
+ t[l] = v
+ return v
+ end)
+
+ local function replaceword(first,last,old,new,oldlen)
+ local oldlen = utflength(old)
+ local newlen = utflength(new)
+ if newlen == 0 then
+ -- forget about it
+ elseif newlen <= oldlen then
+ for s in utfvalues(new) do
+ setchar(first,s)
+ first = getnext(first)
+ end
+ if newlen < oldlen then
+ -- first is one ahead
+ local after = getnext(last)
+ local before = getprev(first)
+ setnext(last)
+ setlink(before,after)
+ flushlist(first)
+ end
+ else
+ local i = 0
+ local l = getnext(last)
+ for s in utfvalues(new) do
+ i = i + 1
+ if i > oldlen then
+ local g = copy_node(first)
+ setlink(first,g,l)
+ setchar(g,s)
+ first = g
+ elseif i == oldlen then
+ setchar(first,s)
+ else
+ setchar(first,s)
+ first = getnext(first)
+ end
+ end
+ end
+ end
+
+ -- local optioncodes = table.copy(glyphoptioncodes)
+ --
+ -- optioncodes.nokerns = optioncodes.noleftkern | optioncodes.norightkern
+ -- optioncodes.noligatures = optioncodes.noleftligature | optioncodes.norightligature
+
+ local lh, rh = false, false
+
+ local cache = setmetatableindex(function(t,k)
+ local v = 0
+ if k == "compound" then
+ v = setcompounds[lh][rh]
+ elseif k == "hyphen" then
+ v = sethyphens[lh][rh]
+ else
+ v = 0
+ for s in gmatch(k,"%w+") do
+ local o = glyphoptioncodes[s]
+ -- local o = optioncodes[s]
+ if o then
+ v = v | o
+ end
+ end
+ end
+ t[k] = v
+ return v
+ end)
+
+ local function checkglyphproperties(options)
+ -- we sort, just to be sure
+ for word, list in sortedhash(options) do
+ if type(list) == "string" then
+ options[word] = options[list]
+ else
+ for index, option in sortedhash(list) do
+ if type(option) == "string" then
+ list[index] = cache[option]
+ end
+ end
+ end
+ end
+ end
+
+ -- statistics.starttiming(languages)
+ -- statistics.stoptiming(languages)
+
+ -- 1: restart 2: exceptions+patterns 3: patterns *: next word
+
+ local sequencers = utilities.sequencers
+ local newsequencer = sequencers.new
+ local appendgroup = sequencers.appendgroup
+ local prependaction = sequencers.prependaction
+ local appendaction = sequencers.appendaction
+ local enableaction = sequencers.enableaction
+ local disableaction = sequencers.disableaction
+
+ local template = {
+ arguments = "s",
+ returnvalues = "r,i",
+ results = "r,i",
+ }
+
+ local registeredactions = setmetatableindex ( function(t,tag)
+ local actions = newsequencer(template)
+ appendgroup(actions,"user")
+ t[tag] = actions
+ return actions
+ end )
+
+ languages.registeredactions = registeredactions
+
+ function languages.installhandler(tag,func)
+ local todo = not rawget(registeredactions,tag)
+ local actions = registeredactions[tag]
+ appendaction(actions,"user",func)
+ enableaction(actions,func)
+ report("installing handler %a for language %a",func,tag)
+ if todo then
+ setwordhandler(tag,function(n,original,remapped,length,first,last)
+ local runner = actions.runner
+ if runner then
+ if getprop(first,"replaced") then
+ -- maybe some deadcycles
+ else
+ local r, result = runner(original)
+ if not r or original == r then
+ return result or 0
+ else
+ setprop(first,"replaced",true)
+ replaceword(first,last,original,r,length)
+ return 1
+ end
+ end
+ end
+ return 2
+ end)
+ end
+ end
+
+ local appliedoptions = setmetatableindex("table")
+ languages.appliedoptions = appliedoptions
+
+ languages.setgoodieshandler = function(specification) -- will become a table specifier
+ if type(specification) == "table" then
+ local tag = specification.tag
+ local goodies = specification.goodies or tag
+ local result = specification.result or 2
+ local data = goodiesdata[goodies]
+ local properties = data.properties
+ local replacements = data.replacements
+ local substitutions = data.substitutions
+ local characters = data.characters
+ local exceptions = data.exceptions
+ local replacer = nil
+ local substituter = nil
+ local d, instance = resolve(tag)
+ local done = false
+ -- check if something at all
+ if type(characters) == "table" and characters and next(characters) then
+ addhjcodestoinstance(instance,characters)
+ if trace_goodies then
+ report_goodies("registering %a characters for %a",goodies,tag)
+ end
+ done = true
+ end
+ if type(properties) == "table" and next(properties) then
+ checkglyphproperties(properties) -- checks in place!
+ if trace_goodies then
+ report_goodies("registering %a properties for %a",goodies,tag)
+ end
+ done = true
+ end
+ if type(replacements) == "table" and next(replacements) then
+ replacer = Cs((utfchartabletopattern(replacements) / replacements + 1)^0)
+ if trace_goodies then
+ report_goodies("registering %a replacer for %a",goodies,tag)
+ end
+ done = true
+ end
+ if type(substitutions) == "table" and next(substitutions) then
+ substituter = Cs((utfchartabletopattern(substitutions) / substitutions + 1)^0)
+ if trace_goodies then
+ report_goodies("registering %a substitutor for %a",goodies,tag)
+ end
+ done = true
+ end
+ if type(exceptions) == "table" and next(exceptions) then
+ done = true
+ else
+ exceptions = false
+ end
+ if done then
+ local registered = registeredactions[tag]
+ local applied = appliedoptions[tag]
+ setwordhandler(tag,function(n,original,remapped,length,first,last)
+ local runner = registered.runner
+ if runner then
+ if getprop(first,"replaced") then
+ -- maybe some deadcycles
+ else
+ local r, result = runner(original)
+ if not r then
+ if trace_goodies then
+ report_goodies("kept by runner: %s => %s, result %i",original,remapped, result or 0)
+ end
+ return result or 0
+ elseif original == r then
+ if result then
+ if trace_goodies then
+ report_goodies("kept by runner: %s => %s, result %i",original,remapped, result)
+ end
+ return result
+ else
+ if trace_goodies then
+ report_goodies("kept by runner: %s => %s, continue",original,remapped)
+ end
+ end
+ else
+ if trace_goodies then
+ report_goodies("replaced by runner: %s => %s => %s, restart",original,remapped,r)
+ end
+ setprop(first,"replaced",true)
+ replaceword(first,last,original,r,length)
+ return 1
+ end
+ end
+ end
+ local result = 2
+ local o = properties[remapped]
+ ::again::
+ if o then
+ if trace_goodies then
+ report("properties: %s %s",original,remapped)
+ end
+ if trace_applied then
+ applied[original] = (applied[original] or 0) + 1
+ end
+ local index = 0
+ for g, c in nextglyph, first do
+ index = index + 1
+ local oi = o[index]
+ if oi then
+ if type(oi) == "function" then
+ oi(g,n,first,last) -- maybe return value
+ result = 1
+ else
+ setoptions(g,oi)
+ end
+ end
+ if g == last then
+ break
+ end
+ end
+ return result
+ end
+ if replacer then
+ -- todo: check lengths so that we can avoid a check
+ if getprop(first,"replaced") then
+ -- maybe some deadcycles
+ else
+ local r = lpegmatch(replacer,original)
+ if original == r then
+ if trace_goodies then
+ report_goodies("kept: %s => %s",original,remapped)
+ end
+ else
+ if trace_goodies then
+ report_goodies("replaced: %s => %s => %s",original,remapped,r)
+ end
+ setprop(first,"replaced",true)
+ replaceword(first,last,original,r,length)
+ result = 1
+ end
+ end
+ return result
+ end
+ if substituter then
+ if getprop(first,"replaced") then
+ -- maybe some deadcycles
+ else
+ local r = lpegmatch(substituter,original)
+ if original == r then
+ if trace_goodies then
+ report_goodies("kept: %s => %s",original,remapped)
+ end
+ else
+ if trace_goodies then
+ report_goodies("substituted: %s => %s => %s",original,remapped,r)
+ end
+ setprop(first,"replaced",true)
+ if not properties[r] then
+ o = expand(r)
+ properties[original] = o
+ goto again
+ end
+ end
+ end
+ end
+ if exceptions then
+ local exception = exceptions[original]
+ if exception then
+ if trace_goodies then
+ report_goodies("exception: %s => %s",original,exception)
+ end
+ result = exception
+ else
+ result = 3
+ end
+ return result
+ end
+ if trace_goodies then
+ report_goodies("ignored: %s => %s",original,remapped)
+ end
+ return result
+ end)
+ elseif trace_goodies then
+ report_goodies("nothing useable in %a for %a",goodies,tag)
+ end
+ else
+ setwordhandler(tag)
+ end
+ end
+
+ local norightligature_option = glyphoptioncodes.norightligature
+ local noleftligature_option = glyphoptioncodes.noleftligature
+ local norightkern_option = glyphoptioncodes.norightkern
+ local noleftkern_option = glyphoptioncodes.noleftkern
+
+ local function applyaction(oc,v,n)
+ if oc == "noligature" then
+ if n > 0 then
+ local vv = v[n-1]
+ if vv then
+ v[n-1] = vv | norightligature_option
+ else
+ v[n-1] = norightligature_option
+ end
+ end
+ v[n] = noleftligature_option
+ elseif oc == "compound" then
+ if n > 1 then
+ -- v[n] = setcompound
+ v[n] = setcompounds[lh][rh]
+ return true
+ end
+ elseif oc == "hyphen" then
+ if n > 1 then
+ v[n] = sethyphens[lh][rh]
+ return true
+ end
+ elseif oc == "nokern" then
+ if n > 0 then
+ local vv = v[n-1]
+ if vv then
+ v[n-1] = vv | norightkern_option
+ else
+ v[n-1] = norightkern_option
+ end
+ end
+ v[n] = noleftkern_option
+ elseif oc == "noleftkern" then
+ v[n] = noleftkern_option
+ elseif oc == "norightkern" then
+ if n > 0 then
+ local vv = v[n-1]
+ if vv then
+ v[n-1] = vv | norightkern_option
+ else
+ v[n-1] = norightkern_option
+ end
+ end
+ else
+ for s in gmatch(oc,"%w+") do
+ if applyaction(s,v,n) then
+ return
+ end
+ end
+ end
+ end
+
+ -- a|b : a:norightligature b:noleftligature
+ -- a=b : a:norightkern b:noleftkern
+ -- a<b : b:noleftkern
+ -- a>b : a:norightkern
+ -- a-b : hyphen
+ -- a+b : compound
+
+ local actions = {
+ ["|"] = "noligature",
+ ["="] = "nokern",
+ ["<"] = "noleftkern",
+ [">"] = "norightkern",
+ ["+"] = "compound",
+ ["-"] = "hyphen",
+ }
+
+ local function analyzed(m,a,t,k)
+ local v = { }
+ local n = 1
+ if m == true then
+ for c in gmatch(k,".") do
+ local ac = a[c]
+ if not ac then
+ n = n + 1
+ else
+ applyaction(ac,v,n)
+ end
+ end
+ elseif type(m) == "number" then
+ local i = 0
+ for c in gmatch(k,".") do
+ local ac = a[c]
+ if not ac then
+ n = n + 1
+ else
+ i = i + 1
+ if i == m then
+ applyaction(ac,v,n)
+ break
+ end
+ end
+ end
+ elseif type(m) == "table" then
+ -- happens here, otherwise no stable caching key, we could hash these too
+ m = tohash(m)
+ local i = 0
+ for c in gmatch(k,".") do
+ local ac = a[c]
+ if not ac then
+ n = n + 1
+ else
+ i = i + 1
+ if m[i] then
+ applyaction(ac,v,n)
+ end
+ end
+ end
+ else
+ -- error
+ end
+ t[k] = v
+ return v
+ end
+
+ local cache = setmetatableindex(function(t,m)
+ local v = setmetatableindex(function(t,a)
+ local v = setmetatableindex(function(t,k)
+ return analyzed(m,a,t,k)
+ end)
+ t[m] = v
+ return v
+ end)
+ t[m] = v
+ return v
+ end)
+
+ expand = function(str)
+ return analyzed(true,actions,{},str)
+ end
+
+ -- maybe also a skip symbol
+
+ local replace1 = Cs ( ( S("|=<>+-.0123456789")/"" + lpegpatterns.utf8character )^0 )
+ local replace2 = Cs ( ( S("|=<>+-.0123456789") + lpegpatterns.utf8character/".")^0 )
+
+ local function stripped(str)
+ -- todo : lpeg
+ str = gsub(str,"%-%-[^\n]*\n","")
+ str = gsub(str,"%%[^\n]*\n","")
+ str = gsub(str,"%s+"," ")
+ str = gsub(str,"^%s+","")
+ str = gsub(str,"%s+$","")
+ return str
+ end
+
+ local registerexceptions do
+
+ local lbrace = P("{")
+ local rbrace = P("}")
+ local lbracket = P("[")
+ local rbracket = P("]")
+ local lparent = P("(")
+ local rparent = P(")")
+ local hyphen = P("-")
+
+ local p = Cs ( (
+ lbrace * ((1-rbrace)^0) * rbrace
+ * lbrace * ((1-rbrace)^0) * rbrace
+ * lbrace * C((1-rbrace)^0) * rbrace * (lparent * C((1-rparent)^0) * rparent)^0 / function(a,b) return b or a end
+ + (lbracket * (1-rbracket)^0 * rbracket) / ""
+ + hyphen / ""
+ + lpegpatterns.utf8character
+ )^0 )
+
+ registerexceptions = function(target,str)
+ local kind = type(str)
+ if kind == "string" then
+ for v in gmatch(stripped(str),"%S+") do
+ local k = lpegmatch(p,v)
+ if k ~= v then
+ target[k] = v
+ end
+ end
+ elseif kind == "table" then
+ local n = #str
+ if n > 0 then
+ for i=1,n do
+ local v = str[i]
+ local k = lpegmatch(p,v)
+ if k ~= v then
+ target[k] = v
+ end
+ end
+ else
+ -- maybe check for sanity
+ for k, v in next, str do
+ target[k] = v
+ end
+ end
+ end
+ end
+
+ end
+
+ function languages.strippedgoodiewords(str)
+ return lpegmatch(replace1,stripped(str))
+ end
+
+ local splitter = lpeg.tsplitat(" ")
+
+ local function addgoodies(tag,list,filename)
+ local np = 0
+ local nd = 0
+ local nw = 0
+ local nl = #list
+ --
+ local data = goodiesdata[tag]
+ local properties = data.properties
+ local replacements = data.replacements
+ local substitutions = data.substitutions
+ local characters = data.characters
+ local exceptions = data.exceptions
+ if filename then
+ if not data.goodies then
+ data.goodies = { }
+ end
+ insert(data.goodies,filename)
+ end
+ --
+ lh = false
+ rh = false
+ --
+ for i=1,nl do
+ local l = list[i]
+ if type(l) == "table" then
+ local w = l.words
+ local p = l.patterns
+ local s = l.substitutions
+ local c = l.characters
+ local e = l.exceptions
+ lh = l.left or false -- for practical reasons these are semi-global
+ rh = l.right or false -- for practical reasons these are semi-global
+ if c then
+ for v in utfvalues(c) do
+ characters[v] = true
+ end
+ end
+ if w then
+ local prefixes = l.prefixes
+ local nofprefixes = 0
+ local suffixes = l.suffixes
+ local nofsuffixes = 0
+ if prefixes then
+ prefixes = lpegmatch(splitter,lower(stripped(prefixes)))
+ nofprefixes = #prefixes
+ end
+ if suffixes then
+ suffixes = lpegmatch(splitter,lower(stripped(suffixes)))
+ nofsuffixes = #suffixes
+ end
+ w = lower(stripped(w))
+ if p then
+ local pattern = Cs((utfchartabletopattern(p) / p + 1)^0)
+ w = lpegmatch(pattern,w)
+ np = np + 1
+ else
+ nd = nd + 1
+ end
+ local m = l.matches
+ if not m then
+ m = true
+ end
+ local a = l.actions
+ if a then
+ setmetatableindex(a,actions)
+ else
+ a = actions
+ end
+ local cach = cache[m][a]
+ if nofprefixes > 0 then
+ if nofsuffixes > 0 then
+ for wrd in gmatch(w,"%S+") do
+ properties[lpegmatch(replace1,wrd)] = cach[lpegmatch(replace2,wrd)]
+ nw = nw + 1
+ for i=1,nofprefixes do
+ local tmp = prefixes[i] .. wrd
+ for i=1,nofsuffixes do
+ local str = tmp .. suffixes[i]
+ properties[lpegmatch(replace1,str)] = cach[lpegmatch(replace2,str)]
+ nw = nw + 1
+ end
+ end
+ end
+ else
+ for wrd in gmatch(w,"%S+") do
+ properties[lpegmatch(replace1,wrd)] = cach[lpegmatch(replace2,wrd)]
+ nw = nw + 1
+ for i=1,nofprefixes do
+ local str = prefixes[i] .. wrd
+ properties[lpegmatch(replace1,str)] = cach[lpegmatch(replace2,str)]
+ nw = nw + 1
+ end
+ end
+ end
+ elseif nofsuffixes > 0 then
+ for wrd in gmatch(w,"%S+") do
+ properties[lpegmatch(replace1,wrd)] = cach[lpegmatch(replace2,wrd)]
+ nw = nw + 1
+ for i=1,nofsuffixes do
+ local str = wrd .. suffixes[i]
+ properties[lpegmatch(replace1,str)] = cach[lpegmatch(replace2,str)]
+ nw = nw + 1
+ end
+ end
+ else
+ for wrd in gmatch(w,"%S+") do
+ properties[lpegmatch(replace1,wrd)] = cach[lpegmatch(replace2,wrd)]
+ nw = nw + 1
+ end
+ end
+ elseif s then
+ for k, v in next, s do
+ substitutions[k] = v
+ end
+ elseif p then
+ for k, v in next, p do
+ replacements[k] = v
+ end
+ elseif e then
+ registerexceptions(exceptions,e)
+ end
+ end
+ end
+
+ lh = false
+ rh = false
+
+ return { np = np, nd = nd, nw = nw, nl = nl }
+ end
+
+ function languages.goodiefiles(tag)
+ local d = goodiesdata[tag]
+ return d and d.goodies
+ end
+
+ function languages.addgoodiesfile(tag,filename)
+ local fullname = resolvers.findfile(file.addsuffix(filename,"llg")) or ""
+ if fullname == "" then
+ report_goodies("file %a is not found",filename)
+ else
+ local list = table.load(fullname)
+ if not list then
+ report_goodies("file %a is invalid",fullname)
+ else
+ list = list.options
+ if not list then
+ report_goodies("file %a has no options",fullname)
+ else
+ local ok = addgoodies(tag,list,filename)
+ report_goodies("tag %a, file %a loaded, %i lists, %i via patterns, %i direct, %i words",
+ tag,fullname,ok.nl,ok.np,ok.nd,ok.nw)
+ end
+ end
+ end
+ end
+
+ function languages.addgoodiesdata(tag,list)
+ local ok = addgoodies(tag,list)
+ report_goodies("tag %a, data loaded, %i lists, %i via patterns, %i direct, %i words",
+ tag,ok.nl,ok.np,ok.nd,ok.nw)
+ end
+
+end
+
+if environment.initex then
+
+ function languages.getnumber()
+ return 0
+ end
+
+else
+
+ function languages.getnumber(tag,default,patterns,goodies,factor)
+ local l = registered[tag]
+ if l then
+ if l.dirty then
+ l.factor = factor == v_yes and true or false
+ if trace_patterns then
+ report_initialization("checking patterns for %a with default %a",tag,default)
+ end
+ -- patterns is already resolved to parent patterns if applicable
+ if patterns and patterns ~= "" then
+ if l.patterns ~= patterns then
+ l.patterns = patterns
+ if trace_patterns then
+ report_initialization("loading patterns for %a using specification %a",tag,patterns)
+ end
+ loaddefinitions(tag,l)
+ else
+ -- unchanged
+ end
+ elseif l.patterns == "" then
+ l.patterns = tag
+ if trace_patterns then
+ report_initialization("loading patterns for %a using tag",tag)
+ end
+ local ok = loaddefinitions(tag,l)
+ if not ok and tag ~= default then
+ l.patterns = default
+ if trace_patterns then
+ report_initialization("loading patterns for %a using default",tag)
+ end
+ loaddefinitions(tag,l)
+ end
+ end
+ if goodies and goodies ~= "" then
+ goodies = settings_to_array(goodies)
+ for i=1,#goodies do
+ local goodie = goodies[i]
+ -- we can cache this but it doesn't pay off to do so
+ languages.addgoodiesfile(tag,goodie)
+ end
+ languages.setgoodieshandler {
+ tag = tag,
+ goodies = tag,
+ }
+ end
+ l.loaded = true
+ l.dirty = false
+ end
+ return l.number
+ else
+ return 0
+ end
+ end
+
+ numbers[0] = "null"
+
+ registered.null = {
+ number = 0,
+ instance = new_language(0),
+ }
+
+end
+
-- hyphenation.define ("zerolanguage")
-- hyphenation.loadpatterns ("zerolanguage") -- else bug
-- hyphenation.loadexceptions("zerolanguage") -- else bug
@@ -582,7 +1477,7 @@ languages.logger = languages.logger or { }
function languages.logger.report()
local result, r = { }, 0
- for tag, l in sortedpairs(registered) do
+ for tag, l in sortedhash(registered) do
if l.loaded then
r = r + 1
result[r] = format("%s:%s:%s",tag,l.parent,l.number)
@@ -617,7 +1512,7 @@ end)
implement {
name = "languagenumber",
actions = { languages.getnumber, context },
- arguments = "4 strings"
+ arguments = "5 strings"
}
implement {
@@ -650,6 +1545,18 @@ implement {
}
implement {
+ name = "setlanguagepatterns",
+ actions = languages.setpatterns,
+ arguments = "2 strings"
+}
+
+implement {
+ name = "setlanguageoptions",
+ actions = languages.setoptions,
+ arguments = "2 strings"
+}
+
+implement {
name = "currentprehyphenchar",
actions = function()
local c = prehyphenchar(tolang())
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/lang-ini.mkxl
index 5df975c661f..1f4b741c292 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lang-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-ini.mkxl
@@ -58,9 +58,9 @@
%D \startmode[*nl] dutch \stopmode}
%D \stoptyping
-\mutable\let\askedlanguage \empty
-\mutable\let\currentlanguage \empty
-\mutable\let\currentmainlanguage\empty
+\mutable\lettonothing\askedlanguage
+\mutable\lettonothing\currentlanguage
+\mutable\lettonothing\currentmainlanguage
%D \macros
%D {defaultlanguage,languageparameter,specificlanguageparameter}
@@ -191,7 +191,7 @@
% \language[#1] gave unwanted side effect of loading language specifics
-\mutable\let\currentsetuplanguage\empty
+\mutable\lettonothing\currentsetuplanguage
\permanent\tolerant\protected\def\installlanguage[#1]#*[#2]%
{\ifcondition\validassignment{#2}%
@@ -210,7 +210,7 @@
\fi}
\def\lang_basics_install_indeed#1#2%
- {\ifcstok{\specificlanguageparameter{#1}\c!command}\v!no\orelse\ifcsname#1\endcsname\else
+ {\ifcstok{\specificlanguageparameter{#1}\c!define}\v!no\orelse\ifcsname#1\endcsname\else
\frozen\instance\protected\defcsname#1\endcsname{\lang_basics_set_current[#2]}%
\fi}
@@ -268,10 +268,13 @@
\setuplanguage
[\s!default]
[\s!patterns=,
+ \s!goodies=,
\s!lefthyphenmin=2,
\s!righthyphenmin=2,
\s!lefthyphenchar=-1,
\s!righthyphenchar=45,
+ \s!explicitlefthyphenchar=\languageparameter\s!lefthyphenchar,
+ \s!explicitrighthyphenchar=\languageparameter\s!righthyphenchar,
% used in compound i.e. interfaced with c! and can be anything so no numbers
\c!lefthyphen=,
\c!righthyphen=-,
@@ -369,16 +372,17 @@
{\currentlanguage}%
{\defaultlanguage\currentlanguage}%
{\languageparameter\s!patterns}%
+ {\languageparameter\s!goodies}%
{\languageparameter\c!factor}%
\relax
\normallanguage\csname\??languagenumbers\currentlanguage\endcsname}
\let\lang_basics_synchronize_nop\zerocount % not loaded anyway
-\letvalue{\??languagenumbers}\lang_basics_synchronize_nop % initime
+\letcsname\??languagenumbers\endcsname\lang_basics_synchronize_nop % initime
\appendtoks
- \letvalue{\??languagenumbers}\lang_basics_synchronize_yes % runtime
+ \letcsname\??languagenumbers\endcsname\lang_basics_synchronize_yes % runtime
\to \everydump
\def\lang_basics_synchronize
@@ -391,8 +395,8 @@
\the\everylanguage
\relax}
-\newcount\hyphenstate
-\newcount\hyphenminoffset
+\newinteger\hyphenstate
+\newinteger\hyphenminoffset
% This is the old implementation: a hack that sets the min values, because we want
% to keep the language set:
@@ -416,30 +420,81 @@
% \uchyph\plusone :
-% \chardef \completehyphenationmodecode \numexpr
-\permanent \integerdef \completehyphenationmodecode \numexpr
- \normalhyphenationmodecode % \discretionary
- + \automatichyphenationmodecode % -
- + \explicithyphenationmodecode % \-
- + \syllablehyphenationmodecode % pattern driven
- + \uppercasehyphenationmodecode % replaces \uchyph
- + \compoundhyphenationmodecode % replaces \compoundhyphenmode
- % \strictstarthyphenationmodecode % replaces \hyphenationbounds (strict = original tex)
- % \strictendhyphenationmodecode % replaces \hyphenationbounds (strict = original tex)
- + \automaticpenaltyhyphenationmodecode % replaces \hyphenpenaltymode (otherwise use \exhyphenpenalty)
- + \explicitpenaltyhyphenationmodecode % replaces \hyphenpenaltymode (otherwise use \exhyphenpenalty)
- + \permitgluehyphenationmodecode % turn glue into kern in \discretionary
- + \permitallhyphenationmodecode % okay, let's be even more tolerant
- + \permitmathreplacehyphenationmodecode % and again we're more permissive
+% \chardef \completehyphenationcode \numexpr
+\permanent \integerdef \completehyphenationcode \numexpr
+ \normalhyphenationcode % \discretionary
+ + \automatichyphenationcode % -
+ + \explicithyphenationcode % \-
+ + \syllablehyphenationcode % pattern driven
+ + \uppercasehyphenationcode % replaces \uchyph
+ + \compoundhyphenationcode % replaces \compoundhyphenmode
+ % \strictstarthyphenationcode % replaces \hyphenationbounds (strict = original tex)
+ % \strictendhyphenationcode % replaces \hyphenationbounds (strict = original tex)
+ + \automaticpenaltyhyphenationcode % replaces \hyphenpenaltymode (otherwise use \exhyphenpenalty)
+ + \explicitpenaltyhyphenationcode % replaces \hyphenpenaltymode (otherwise use \exhyphenpenalty)
+ + \permitgluehyphenationcode % turn glue into kern in \discretionary
+ + \permitallhyphenationcode % okay, let's be even more tolerant
+ + \permitmathreplacehyphenationcode % and again we're more permissive
+ + \forcehandlerhyphenationcode % kick in the handler (could be an option)
+ + \feedbackcompoundhyphenationcode % feedback compound snippets
+ + \ignoreboundshyphenationcode % just in case we have hyphens at the edges
+ + \collapsehyphenationcode % collapse -- and ---
\relax
-\permanent\protected\def\dohyphens{\hyphenationmode\completehyphenationmodecode}
-\permanent\protected\def\nohyphens{\hyphenationmode\zerocount}
+\permanent \integerdef \partialhyphenationcode \numexpr
+ \ignoreboundshyphenationcode % just in case we have hyphens at the edges
+% + \explicithyphenationcode % \-
+ + \collapsehyphenationcode % collapse -- and ---
+\relax
+
+\hccode"002D "002D
+
+\permanent\protected\def\keephyphensequences
+ {\hccode"2010 \zerocount
+ \hccode"2013 \zerocount
+ \hccode"2014 \zerocount}
+
+\permanent\protected\def\collapsehyphensequences
+ {\hccode"2010 "2010\relax
+ \hccode"2013 "2013\relax
+ \hccode"2014 "2014\relax}
+
+\collapsehyphensequences
+
+% maybe a (un)setter for handlers
+
+\permanent\protected\def\dohyphens {\hyphenationmode\completehyphenationcode}
+\permanent\protected\def\nohyphens {\hyphenationmode\partialhyphenationcode}
+
+% \permanent\protected\def\dohyphens
+% {\ifbitwiseand\hyphenationmode\collapsehyphenationcode
+% \hyphenationmode\completehyphenationcode
+% \else
+% \hyphenationmode\numexpr\completehyphenationcode-\collapsehyphenationcode\relax
+% \fi}
+
+% \permanent\protected\def\nohyphens
+% {\ifbitwiseand\hyphenationmode\collapsehyphenationcode
+% \hyphenationmode\partialhyphenationcode
+% \else
+% \hyphenationmode\numexpr\partialhyphenationcode-\collapsehyphenationcode\relax
+% \fi}
+
+\permanent\protected\def\dohyphencollapsing{\hyphenationmode\bitwiseflip\hyphenationmode \collapsehyphenationcode}
+\permanent\protected\def\nohyphencollapsing{\hyphenationmode\bitwiseflip\hyphenationmode-\collapsehyphenationcode}
+
+\permanent\protected\def\doexplicithyphens{\hyphenationmode\bitwiseflip\hyphenationmode \explicithyphenationcode}
+\permanent\protected\def\noexplicithyphens{\hyphenationmode\bitwiseflip\hyphenationmode-\explicithyphenationcode}
\permanent\protected\def\usehyphensparameter#1%
{\edef\p_hyphens{#1\c!hyphens}%
- \ifx\p_hyhens\v!no
- \nohyphens
+ \ifx\p_hyphens\v!no
+ \ifbitwiseand\hyphenationmode\collapsehyphenationcode
+ \nohyphens
+ \else
+ \nohyphens
+ \nohyphencollapsing
+ \fi
\fi}
\dohyphens
@@ -447,26 +502,37 @@
%D The rest stays the same as in mkiv:
\permanent\protected\def\lesshyphens
- {\advance\hyphenminoffset\plusone
+ {\advanceby\hyphenminoffset\plusone
\lang_basics_synchronize_min_max}
\permanent\protected\def\morehyphens
{\ifcase\hyphenminoffset \else
- \advance\hyphenminoffset\minusone
+ \advanceby\hyphenminoffset\minusone
\fi
\lang_basics_synchronize_min_max}
+% \protected\def\lang_basics_synchronize_min_max % maybe store this at the lua end
+% {% these values are stored along with glyph nodes
+% \lefthyphenmin \numexpr0\languageparameter\s!lefthyphenmin +\hyphenminoffset\relax
+% \righthyphenmin\numexpr0\languageparameter\s!righthyphenmin+\hyphenminoffset\relax
+% \hyphenationmin\numexpr0\languageparameter\s!hyphenmin\relax
+% % these values are stored with the language (global!)
+% \prehyphenchar \languageparameter\s!righthyphenchar\relax
+% \posthyphenchar\languageparameter\s!lefthyphenchar \relax}
+
\protected\def\lang_basics_synchronize_min_max % maybe store this at the lua end
{% these values are stored along with glyph nodes
\lefthyphenmin \numexpr0\languageparameter\s!lefthyphenmin +\hyphenminoffset\relax
\righthyphenmin\numexpr0\languageparameter\s!righthyphenmin+\hyphenminoffset\relax
\hyphenationmin\numexpr0\languageparameter\s!hyphenmin\relax
% these values are stored with the language (global!)
- \prehyphenchar \languageparameter\s!righthyphenchar\relax
- \posthyphenchar\languageparameter\s!lefthyphenchar \relax}
+ \prehyphenchar \languageparameter\s!righthyphenchar\relax
+ \posthyphenchar \languageparameter\s!lefthyphenchar \relax
+ \preexhyphenchar \languageparameter\s!explicitrighthyphenchar\relax
+ \postexhyphenchar\languageparameter\s!explicitlefthyphenchar \relax}
\appendtoks
- \lang_basics_synchronize_min_max
+ \lang_basics_synchronize_min_max % todo: also sync when already in language
\to \everylanguage
\permanent\protected\def\unhyphenated
@@ -478,7 +544,7 @@
%D You can setup the default language to reset settings.
-\mutable\let\currentlanguagesetups\empty
+\mutable\lettonothing\currentlanguagesetups
\appendtoks
\edef\currentlanguagesetups{\languageparameter\c!setups}%
@@ -562,7 +628,7 @@
\popoverloadmode
-\newcount\mainlanguagenumber
+\newinteger\mainlanguagenumber
%D Beware: you might need to use \type {\dontleavehmode} outside and|/|or \type {\par}
%D inside the group!
@@ -734,10 +800,22 @@
\clf_setlanguageexceptions{\askedlanguage}{#2}%
\endgroup}
+\permanent\let\stoppatterns\relax
+
+\tolerant\permanent\protected\def\startpatterns[#1]#:#2\stoppatterns
+ {\begingroup
+ \edef\askedlanguage{\reallanguagetag{#1}}%
+ \ifempty\askedlanguage
+ \let\askedlanguage\currentlanguage
+ \fi
+ \clf_setlanguagepatterns{\askedlanguage}{#2}%
+ \endgroup}
+
+
\pushoverloadmode
-\permanent\protected\def\hyphenation
- {\clf_setlanguageexceptions{\currentlanguage}}
+\permanent\protected\def\hyphenation{\clf_setlanguageexceptions{\currentlanguage}}
+\permanent\protected\def\patterns {\clf_setlanguagepatterns {\currentlanguage}}
\popoverloadmode
@@ -749,10 +827,14 @@
\protected\def\lang_basics_traced_discretionary#1#2#3#4%
{\normaldiscretionary#1{\darkred#2}{\darkgreen#3}{\darkblue#4}}
+\def\lang_basics_trace_discretionary_yes{\enforced\let\discretionary\traceddiscretionary} % indirect because of overload
+\def\lang_basics_trace_discretionary_nop{\enforced\let\discretionary\normaldiscretionary} % indirect because of overload
+
+
\installtextracker
{discretionaries}
- {\enforced\let\discretionary\traceddiscretionary}
- {\enforced\let\discretionary\normaldiscretionary}
+ {\lang_basics_trace_discretionary_yes}
+ {\lang_basics_trace_discretionary_nop}
\permanent\protected\def\samplediscretionary
{\traceddiscretionary
@@ -773,15 +855,56 @@
%D {ef{\norightligaturing f}icient ff fi}\par
%D \stoptyping
-\immutable\chardef\nokerningcode \numexpr\noleftkerncode +\norightkerncode \relax
-\immutable\chardef\noligaturingcode\numexpr\noleftligaturecode+\norightligaturecode\relax
+\immutable\chardef\nokerningcode \numexpr\noleftkernglyphoptioncode +\norightkernglyphoptioncode \relax
+\immutable\chardef\noligaturingcode\numexpr\noleftligatureglyphoptioncode+\norightligatureglyphoptioncode\relax
\permanent\protected\def\nokerning {\bitwiseflip\glyphoptions\nokerningcode}
\permanent\protected\def\noligaturing{\bitwiseflip\glyphoptions\noligaturingcode}
-\permanent\protected\def\noleftkerning {\bitwiseflip\glyphoptions\noleftkerncode}
-\permanent\protected\def\noleftligaturing {\bitwiseflip\glyphoptions\noleftligaturecode}
-\permanent\protected\def\norightkerning {\bitwiseflip\glyphoptions\norightkerncode}
-\permanent\protected\def\norightligaturing{\bitwiseflip\glyphoptions\norightligaturecode}
+\permanent\protected\def\noleftkerning {\bitwiseflip\glyphoptions\noleftkernglyphoptioncode}
+\permanent\protected\def\noleftligaturing {\bitwiseflip\glyphoptions\noleftligatureglyphoptioncode}
+\permanent\protected\def\norightkerning {\bitwiseflip\glyphoptions\norightkernglyphoptioncode}
+\permanent\protected\def\norightligaturing{\bitwiseflip\glyphoptions\norightligatureglyphoptioncode}
+
+% This is not really language related but let's define it here:
+
+\permanent\protected\def\noitaliccorrection{\bitwiseflip\glyphoptions\noitaliccorrectionglyphoptioncode}
+
+%D Also \LMTX:
+
+% \startlanguageoptions[de]
+% Zapf|innovation
+% \stoplanguageoptions
+
+\permanent\let\stoplanguageoptions\relax
+
+\permanent\protected\def\startlanguageoptions
+ {\begingroup
+ \catcode`|\othercatcode
+ \lang_startlanguageoptions}
+
+\tolerant\def\lang_startlanguageoptions[#1]#:#2\stoplanguageoptions
+ {\edef\askedlanguage{\reallanguagetag{#1}}%
+ \ifempty\askedlanguage
+ \let\askedlanguage\currentlanguage
+ \fi
+ \clf_setlanguageoptions{\askedlanguage}{#2}%
+ \endgroup}
+
+% \startluacode
+% table.save("oeps-fixes.llg", {
+% name = "demo",
+% options = {
+% { patterns = { fio = "f|io" }, words = [[ fioot fiots ]] },
+% { patterns = { fio = "t|h" }, words = [[ this that ]] },
+% },
+% })
+% \stopluacode
+%
+% \setuplanguage[en][goodies={oeps-fixes.llg}] \setupbodyfont[ebgaramond]
+%
+% \starttext
+% fiets fiots fiats fioot this that
+% \stoptext
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-lab.lmt b/Master/texmf-dist/tex/context/base/mkxl/lang-lab.lmt
new file mode 100644
index 00000000000..b82721b7656
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-lab.lmt
@@ -0,0 +1,195 @@
+if not modules then modules = { } end modules ['lang-lab'] = {
+ version = 1.001,
+ comment = "companion to lang-lab.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format, find = string.format, string.find
+local next, rawget, type = next, rawget, type
+local lpegmatch = lpeg.match
+local formatters = string.formatters
+
+local prtcatcodes = catcodes.numbers.prtcatcodes -- todo: use different method
+
+local trace_labels = false trackers.register("languages.labels", function(v) trace_labels = v end)
+local report_labels = logs.reporter("languages","labels")
+
+languages.labels = languages.labels or { }
+local labels = languages.labels
+
+local context = context
+local implement = interfaces.implement
+
+local variables = interfaces.variables
+local settings_to_array = utilities.parsers.settings_to_array
+
+local splitter = lpeg.splitat(":")
+
+local function split(tag)
+ return lpegmatch(splitter,tag)
+end
+
+labels.split = split
+
+-- We don't store labels at the \LUA\ end because we want to obey grouping. Otherwise we
+-- would need to start using tables that relate to the group level.
+
+local contextsprint = context.sprint
+
+local f_setlabeltextpair = formatters["\\setlabeltextpair{%s}{%s}{%s}{%s}{%s}"]
+local f_key_key = formatters["\\v!%s:\\v!%s"]
+local f_key_raw = formatters["\\v!%s:%s"]
+local f_raw_key = formatters["%s:\\v!%s"]
+local f_raw_raw = formatters["%s:%s"]
+local f_key = formatters["\\v!%s"]
+local f_raw = formatters["%s"]
+
+local function definelanguagelabels(data,class,tag,rawtag)
+ for language, text in next, data.labels do
+ if text == "" then
+ -- skip
+ elseif type(text) == "table" then
+ contextsprint(prtcatcodes,f_setlabeltextpair(class,language,tag,text[1],text[2]))
+ if trace_labels then
+ report_labels("language %a, defining label %a as %a and %a",language,rawtag,text[1],text[2])
+ end
+ else
+ contextsprint(prtcatcodes,f_setlabeltextpair(class,language,tag,text,""))
+ if trace_labels then
+ report_labels("language %a, defining label %a as %a",language,rawtag,text)
+ end
+ end
+ end
+end
+
+-- local function definelanguagelabels(data,class,tag,rawtag)
+-- local setlabeltextopair = context.setlabeltextpair
+-- context.pushcatcodes("prt")
+-- for language, text in next, data.labels do
+-- if text == "" then
+-- -- skip
+-- elseif type(text) == "table" then
+-- setlabeltextopair(class,language,tag,text[1],text[2])
+-- if trace_labels then
+-- report_labels("language %a, defining label %a as %a and %a",language,rawtag,text[1],text[2])
+-- end
+-- else
+-- setlabeltextopair(class,language,tag,text,"")
+-- if trace_labels then
+-- report_labels("language %a, defining label %a as %a",language,rawtag,text)
+-- end
+-- end
+-- end
+-- context.popcatcodes()
+-- end
+
+function labels.define(class,name,prefixed)
+ local list = languages.data.labels[name]
+ if list then
+ report_labels("defining label set %a",name)
+ for tag, data in next, list do
+ tag = variables[tag] or tag
+ if data.hidden then
+ -- skip
+ elseif prefixed then
+ local first, second = lpegmatch(splitter,tag)
+ if second then
+ if rawget(variables,first) then
+ if rawget(variables,second) then
+ definelanguagelabels(data,class,f_key_key(first,second),tag)
+ else
+ definelanguagelabels(data,class,f_key_raw(first,second),tag)
+ end
+ elseif rawget(variables,second) then
+ definelanguagelabels(data,class,f_raw_key(first,second),tag)
+ else
+ definelanguagelabels(data,class,f_raw_raw(first,second),tag)
+ end
+ elseif rawget(variables,rawtag) then
+ definelanguagelabels(data,class,f_key(tag),tag)
+ else
+ definelanguagelabels(data,class,tag,tag)
+ end
+ else
+ definelanguagelabels(data,class,tag,tag)
+ end
+ end
+ else
+ report_labels("unknown label set %a",name)
+ end
+end
+
+-- function labels.check()
+-- for category, list in next, languages.data.labels do
+-- for tag, specification in next, list do
+-- for language, text in next, specification.labels do
+-- if type(text) == "string" and find(text,",") then
+-- report_labels("warning: label with comma found, category %a, language %a, tag %a, text %a",
+-- category, language, tag, text)
+-- end
+-- end
+-- end
+-- end
+-- end
+--
+-- labels.check()
+
+-- interface
+
+interfaces.implement {
+ name = "definelabels",
+ actions = labels.define,
+ arguments = { "string", "string", "boolean" }
+}
+
+-- function commands.setstrippedtextprefix(str)
+-- context(string.strip(str))
+-- end
+
+-- list : { "a", "b", "c" }
+-- separator : ", "
+-- last : " and "
+
+-- text : "a,b,c"
+-- separators : "{, },{ and }"
+
+local function concatcommalist(settings) -- it's too easy to forget that this one is there
+ local list = settings.list or settings_to_array(settings.text or "")
+ local size = #list
+ local command = settings.command and context[settings.command] or context
+ if size > 1 then
+ local separator, last = " ", " "
+ if settings.separators then
+ local set = settings_to_array(settings.separators)
+ separator = set[1] or settings.separator or separator
+ last = set[2] or settings.last or last
+ else
+ separator = settings.separator or separator
+ last = settings.last or last
+ end
+ command(list[1])
+ for i=2,size-1 do
+ context(separator)
+ command(list[i])
+ end
+ context(last)
+ end
+ if size > 0 then
+ command(list[size])
+ end
+end
+
+implement {
+ name = "concatcommalist",
+ actions = concatcommalist,
+ arguments = {
+ {
+ { "text" },
+ { "separators" },
+ { "separator" },
+ { "last" },
+ }
+ }
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-lab.mkxl b/Master/texmf-dist/tex/context/base/mkxl/lang-lab.mkxl
index 369049ed162..a1d758f0979 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lang-lab.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-lab.mkxl
@@ -13,7 +13,7 @@
\writestatus{loading}{ConTeXt Language Macros / Labels}
-\registerctxluafile{lang-lab}{}
+\registerctxluafile{lang-lab}{autosuffix}
\registerctxluafile{lang-txt}{}
\unprotect
@@ -21,7 +21,7 @@
%D Left-overs:
\ifdefined\sixperemspace \else
- \permanent\def\sixperemspace{\normalUchar"2006}
+ \permanent\edef\sixperemspace{\normalUchar"2006}
\fi
%D In this module we deal with language dependant labels and prefixes, like in {\em
@@ -60,7 +60,7 @@
\installcorenamespace{label}
-% \let\currentlabelcategory\empty
+% \lettonothing\currentlabelcategory
\permanent\tolerant\protected\def\definelabelclass[#1]#*[#2]%
{\normalexpanded
@@ -77,17 +77,18 @@
% hm, not interfaced
-\mutable\let\thetextprefix\empty
+\mutable\lettonothing\thetextprefix
\mutable\let\currenttextprefixclass\s!unknown
-\mutable\let\currenttextprefixname \empty
\mutable\let\currenttextprefixtag \s!unknown
+\mutable\lettonothing\currenttextprefixname
+
\protected\def\lang_labels_define_class_indeed#1#2#3#4#5#6#7#8#9%
- {\permanent\instance\protected\defcsname setup#1text\endcsname{\protecttextprefixes#2\def\currenttextprefixclass{#1}\lang_labels_text_prefix_setup}%
- \permanent\instance\protected\defcsname preset#1text\endcsname{\protecttextprefixes 1\def\currenttextprefixclass{#1}\lang_labels_text_prefix_setup}%
- \permanent\instance\protected\defcsname copy#1text\endcsname{\protecttextprefixes 1\def\currenttextprefixclass{#1}\lang_labels_text_prefix_copy }%
- \permanent\instance\protected\defcsname start#1text\endcsname{\protecttextprefixes 1\def\currenttextprefixclass{#1}\lang_labels_text_prefix_start[#1]}%
+ {\permanent\instance\protected\defcsname setup#1text\endcsname{\protecttextprefixes #2\def\currenttextprefixclass{#1}\lang_labels_text_prefix_setup}%
+ \permanent\instance\protected\defcsname preset#1text\endcsname{\protecttextprefixes\plusone\def\currenttextprefixclass{#1}\lang_labels_text_prefix_setup}%
+ \permanent\instance\protected\defcsname copy#1text\endcsname{\protecttextprefixes\plusone\def\currenttextprefixclass{#1}\lang_labels_text_prefix_copy }%
+ \permanent\instance\protected\defcsname start#1text\endcsname{\protecttextprefixes\plusone\def\currenttextprefixclass{#1}\lang_labels_text_prefix_start[#1]}%
\permanent\instance \letcsname stop#1text\endcsname \relax
\permanent\instance\def#4{\reallanguagetag{\defaultlanguage\currentmainlanguage}}%
\ifnum#2=\plustwo % used for math and tags
@@ -223,8 +224,8 @@
\expandafter\lang_labels_text_prefix_assign_dumb
\fi{#1}}
-\let\m_lang_labels_left \empty
-\let\m_lang_labels_right\empty
+\lettonothing\m_lang_labels_left
+\lettonothing\m_lang_labels_right
\def\lang_labels_text_prefix_assign_yes#1[#2,#3,#4]%
{\def\m_lang_labels_left {#2}% no longer an edef ... else \Word undefined expansion issues
@@ -278,7 +279,7 @@
\definelabelclass [head] [0] % titles
\definelabelclass [label] [0] % texts
-\definelabelclass [mathlabel] [0] % functions
+\definelabelclass [mathlabel] [2] % functions
\definelabelclass [taglabel] [2] % tags
\clf_definelabels{head}{titles}\s!true\relax
@@ -365,10 +366,10 @@
last {\detokenize\expandafter{\normalexpanded{\labeltext{and-2}}}}%
\relax}
-\setuplabeltext [\s!nl] [and-1={{, }}, and-2={{ en }}] % 1, 2 en 3
-\setuplabeltext [\s!en] [and-1={{, }}, and-2={{, }}] % 1, 2, 3
-\setuplabeltext [\s!de] [and-1={{, }}, and-2={{ und }}] % 1, 2 und 3
-\setuplabeltext [\s!hr] [and-1={{, }}, and-2={{ i }}] % 1, 2 i 3
+\setuplabeltext [\s!nl] [and-1={{, }},and-2={{ en }}] % 1, 2 en 3
+\setuplabeltext [\s!en] [and-1={{, }},and-2={{, }}] % 1, 2, 3
+\setuplabeltext [\s!de] [and-1={{, }},and-2={{ und }}] % 1, 2 und 3
+\setuplabeltext [\s!hr] [and-1={{, }},and-2={{ i }}] % 1, 2 i 3
%D Goodie (handy at \LUA\ end):
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-mis.mkxl b/Master/texmf-dist/tex/context/base/mkxl/lang-mis.mkxl
index 7b6c9085736..374379a0b3f 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lang-mis.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-mis.mkxl
@@ -119,27 +119,10 @@
%D \installdiscretionary | -
%D \stoptyping
%D
-%D Some alternative definitions are:
-%D
-%D \startbuffer
-%D \installdiscretionary * -
-%D \installdiscretionary + -
-%D \installdiscretionary / -
-%D \installdiscretionary ~ -
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D after which we can say:
-%D
-%D \start \getbuffer
-%D \starttest
-%D \test {test**test**test}
-%D \test {test++test++test}
-%D \test {test//test//test}
-%D \test {test~~test~~test}
-%D \stoptest
-%D \stop
+%D We used to have an installable mechanism but in the perspective of \MKIV\ and
+%D especialy \LMTX\ it no longer makes sense to complicate the code, so from now on
+%D we only deal with the active bar. Older code can be seen in the archives. It also
+%D means that we now just hardcode the bar. We also deal with math differently.
%D \macros
%D {compoundhyphen}
@@ -163,7 +146,6 @@
\ifdefined\postwordbreak\else \permanent\protected\def\postwordbreak {\penalty\zerocount \hskip\zeropoint\relax} \fi
\ifdefined\hspaceamount \else \def\hspaceamount#1#2{.16667\emwidth} \fi % will be overloaded
-%frozen\protected\def\permithyphenation{\ifhmode\prewordbreak\fi} % doesn't remove spaces
\permanent\protected\def\permithyphenation{\ifhmode\wordboundary\fi} % doesn't remove spaces
%D \macros
@@ -173,7 +155,7 @@
%D In the previous macros we provided two hooks which can be used to support nested
%D sub||sentences. In \CONTEXT\ these hooks are used to insert a small space when
%D needed.
-
+%D
%D The following piece of code is a torture test compound handling. The \type
%D {\relax} before the \type {\ifmmode} is needed because of the alignment scanner
%D (in \ETEX\ this problem is not present because there a protected macro is not
@@ -186,22 +168,10 @@
%D \stopformula
\installcorenamespace{discretionaryaction}
-\installcorenamespace{discretionarytext}
-\installcorenamespace{discretionarymath}
-\installcorenamespace{discretionaryboth}
\installcorenamespace{discretionarymode}
-\permanent\protected\def\installdiscretionary#1#2%
- {\edefcsname\??discretionarymath\detokenize{#1}\endcsname{\detokenize{#1}}% ?
- \defcsname \??discretionarytext\detokenize{#1}\endcsname{#2}%
- \defcsname \??discretionaryboth\detokenize{#1}\endcsname{\lang_discretionaries_command#1}%
- \scratchcounter\expandafter`\detokenize{#1}%
- \expandafter\uedcatcodecommand\expandafter\ctxcatcodes\expandafter\scratchcounter\csname\??discretionaryboth\detokenize{#1}\endcsname}
-
-\permanent\protected\def\handlemathmodediscretionary#1{\ifcsname\??discretionarymath\detokenize{#1}\endcsname\lastnamedcs}
-\permanent\protected\def\handletextmodediscretionary#1{\ifcsname\??discretionarytext\detokenize{#1}\endcsname\lastnamedcs}
-
-\permanent\protected\def\installdiscretionaries#1#2{\writestatus\m!system{use \string \installdiscretionary}} % obsolete
+\aliased\let\installdiscretionaries\gobbletwoarguments % this alias will go
+\aliased\let\installdiscretionary \gobbletwoarguments % this alias will go
\setnewconstant\discretionarymode\plusone
@@ -209,25 +179,22 @@
\permanent\protected\def\obeydiscretionaries {\discretionarymode\plusone}
\def\lang_discretionaries_command
- {% if direct if, we need \relax for lookahead in math mode
- \csname\??discretionarymode
+ {\begincsname\??discretionarymode
\ifcase\discretionarymode
n%
- \orelse\ifmmode
- m%
\else
t%
\fi
\endcsname}
-\setvalue{\??discretionarymode n}#1%
- {\detokenize{#1}}
+% \catcode\barasciicode\activecatcode
+% \amcode \barasciicode\othercatcode
-%D The macro \type{\lang_discretionaries_check_before} takes care of loners like
-%D \type{||word}, while it counterpart \type {\lang_discretionaries_check_after} is
-%D responsible for handling the comma.
+\letcatcodecommand\ctxcatcodes\barasciicode\lang_discretionaries_command
-\newsignal\d_lang_discretionaries_breakpoint % todo: never consulted so maybe obsolete
+%D The macro \type {\lang_discretionaries_check_before} takes care of loners like
+%D \type {||word}, while it counterpart \type {\lang_discretionaries_check_after} is
+%D responsible for handling the comma.
\newconditional\punctafterdiscretionary
\newconditional\spaceafterdiscretionary
@@ -259,73 +226,58 @@
\ifx :\nexttoken \settrue \punctafterdiscretionary \orelse
\ifx ;\nexttoken \settrue \punctafterdiscretionary \fi}
-\letvalue{\??discretionarymode m}\handlemathmodediscretionary
+\edefcsname\??discretionarymode n\endcsname
+ {\detokenize{|}}
-\setvalue{\??discretionarymode t}#1%
+\defcsname\??discretionarymode t\endcsname#1|%
{\bgroup
- \let\nextnextnext\egroup
- \def\next##1#1%
- {\def\next{\activedododotextmodediscretionary#1{##1}}%
- \futurelet\nexttoken\next}%
- \next}
+ \def\next{\lang_discretionaries_handle{#1}}%
+ \futurelet\nexttoken\next}%
-\let\lang_discretionaries_token \relax
-\let\lang_discretionaries_action\relax
-
-\permanent\protected\def\activedododotextmodediscretionary#1#2%
- {\edef\lang_discretionaries_token{\detokenize{#2}}%
- \def\lang_discretionaries_action{\handletextmodediscretionary{#1}}%
+\permanent\protected\def\lang_discretionaries_handle#1%
+ {\edef\lang_discretionaries_token{\detokenize{#1}}%
\lang_discretionaries_check_after
\ifempty\lang_discretionaries_token
- \ifx#1\nexttoken % takes care of ||| and +++ and ......
- \ifcsname\??discretionaryaction\string#1\endcsname
+ \ifx|\nexttoken % takes care of |||
+ \ifcsname\??discretionaryaction\string|\endcsname
\lastnamedcs
\orelse\ifconditional\spaceafterdiscretionary
- %\prewordbreak\hbox{\string#1}\relax
- \wordboundary\hbox{\string#1}\relax
+ \wordboundary\hbox{\letterbar}\relax
\orelse\ifconditional\punctafterdiscretionary
- %\prewordbreak\hbox{\string#1}\relax
- \wordboundary\hbox{\string#1}\wordboundary
+ \wordboundary\hbox{\letterbar}\wordboundary
\else
- %\prewordbreak\hbox{\string#1}\prewordbreak
- \wordboundary\hbox{\string#1}\wordboundary
+ \wordboundary\hbox{\letterbar}\wordboundary
\fi
- \def\nextnextnext{\afterassignment\egroup\let\next=}%
+ \def\next{\afterassignment\egroup\let\next=}%
\else
\lang_discretionaries_check_before
- % the next line has been changed (20050203)
- % \prewordbreak\hbox{\lang_discretionaries_action\nexttoken}\postwordbreak
- % but an hbox blocks a possible \discretionary
\ifcsname\??discretionaryaction\endcsname
\lastnamedcs
\orelse\ifconditional\spaceafterdiscretionary
- %\prewordbreak\lang_discretionaries_action\relax
- \wordboundary\lang_discretionaries_action\relax
+ \wordboundary\defaultdiscretionaryhyphen\relax
\orelse\ifconditional\punctafterdiscretionary
- %\prewordbreak\lang_discretionaries_action\relax
- \wordboundary\lang_discretionaries_action\relax
+ \wordboundary\defaultdiscretionaryhyphen\relax
\else
- %\prewordbreak\lang_discretionaries_action\prewordbreak
- \wordboundary\lang_discretionaries_action\wordboundary
+ \wordboundary\defaultdiscretionaryhyphen\wordboundary
\fi
+ \let\next\egroup
\fi
\orelse\ifcsname\??discretionaryaction\lang_discretionaries_token\endcsname
\lastnamedcs
+ \let\next\egroup
\else
\lang_discretionaries_check_before
\ifconditional\spaceafterdiscretionary
- %\prewordbreak\hbox{#2}\relax
- \wordboundary\hbox{#2}\relax
+ \wordboundary\hbox{#1}\relax
\orelse\ifconditional\punctafterdiscretionary
- %\prewordbreak\hbox{#2}\relax
- \wordboundary\hbox{#2}\relax
+ \wordboundary\hbox{#1}\relax
\else
- %\prewordbreak\discretionary{\hbox{#2}}{}{\hbox{#2}}\postwordbreak
- \wordboundary\discretionary{\hbox{#2}}{}{\hbox{#2}}\wordboundary
- %\discretionary options \plusthree{\hbox{#2}}{}{\hbox{#2}}%
+ \wordboundary\discretionary{\hbox{#1}}{}{\hbox{#1}}\wordboundary
+ %\discretionary options \plusthree{\hbox{#1}}{}{\hbox{#1}}%
\fi
+ \let\next\egroup
\fi
- \nextnextnext}
+ \next}
%D \macros
%D {directdiscretionary}
@@ -334,7 +286,7 @@
%D use the more direct approach:
\permanent\protected\def\directdiscretionary
- {\csname\??discretionarymode
+ {\begincsname\??discretionarymode
\ifcase\discretionarymode
n%
\else
@@ -343,7 +295,7 @@
\endcsname}
\permanent\protected\def\indirectdiscretionary
- {\csname\??discretionarymode
+ {\begincsname\??discretionarymode
\ifcase\discretionarymode
n%
\else
@@ -351,17 +303,14 @@
\fi
\endcsname}
-\setuvalue{\??discretionarymode d}#1%
- {\edef\lang_discretionaries_token{\detokenize{#1}}%
- \let\lang_discretionaries_action\compoundhyphen
- \ifcsname\??discretionaryaction\lang_discretionaries_token\endcsname
+\protected\defcsname\??discretionarymode d\endcsname#1%
+ {\ifcsname\??discretionaryaction\detokenize{#1}\endcsname
\expandafter\lastnamedcs
\else
\expandafter\indirectdiscretionary
\fi{#1}}
-\setuvalue{\??discretionarymode i}#1%
- %{\prewordbreak\discretionary{\hbox{#1}}{}{\hbox{#1}}\postwordbreak}
+\protected\defcsname\??discretionarymode i\endcsname#1%
{\wordboundary\discretionary{\hbox{#1}}{}{\hbox{#1}}\wordboundary}
%{\discretionary options \plusthree{\hbox{#1}}{}{\hbox{#1}}}
@@ -387,13 +336,10 @@
\def\lang_discretionaries_hyphen_like#1#2%
{\ifconditional\spaceafterdiscretionary
- %prewordbreak\hbox{#1}\relax
\wordboundary\hbox{#1}\relax
\orelse\ifconditional\punctafterdiscretionary
- %prewordbreak\hbox{#1}\relax
\wordboundary\hbox{#1}\relax
\else
- %\prewordbreak#2\postwordbreak % was prewordbreak
\wordboundary#2\wordboundary
\fi}
@@ -411,78 +357,55 @@
\definetextmodediscretionary (
{\ifdim\lastskip>\zeropoint
- %(\prewordbreak
(\wordboundary
\else
- %\prewordbreak\discretionary{}{(-}{(}\prewordbreak
\wordboundary\discretionary{}{(-}{(}\wordboundary
%\discretionary options \plusthree{}{(-}{(}%
\fi}
\definetextmodediscretionary ~
- %{\prewordbreak\discretionary{-}{}{\thinspace}\postwordbreak}
{\wordboundary\discretionary{-}{}{\thinspace}\wordboundary}
%{\discretionary options \plusthree{-}{}{\thinspace}}
\definetextmodediscretionary '
- %{\prewordbreak\discretionary{-}{}{'}\postwordbreak}
{\wordboundary\discretionary{-}{}{'}\wordboundary}
%{\discretionary options \plusthree{-}{}{'}}
\definetextmodediscretionary ^
- %{\prewordbreak\discretionary{\hbox{\normalstartimath|\normalstopimath}}{}{\hbox{\normalstartimath|\normalstopimath}}%
- % \postwordbreak} % bugged
{\wordboundary
\discretionary{\hbox{\normalstartimath|\normalstopimath}}{}{\hbox{\normalstartimath|\normalstopimath}}%
\wordboundary} % bugged
%{\discretionary options \plusthree{\hbox{\normalstartimath|\normalstopimath}}{}{\hbox{\normalstartimath|\normalstopimath}}}
\definetextmodediscretionary <
- %{\beginofsubsentence\prewordbreak\beginofsubsentencespacing
{\beginofsubsentence\wordboundary\beginofsubsentencespacing
\aftergroup\ignorespaces} % tricky, we need to go over the \nextnextnext
\definetextmodediscretionary >
{\removeunwantedspaces
- %\endofsubsentencespacing\prewordbreak\endofsubsentence}
\endofsubsentencespacing\wordboundary\endofsubsentence}
\definetextmodediscretionary =
{\removeunwantedspaces
- %\prewordbreak\midsentence\prewordbreak
\wordboundary\midsentence\wordboundary
\aftergroup\ignorespaces}
% french
-%definetextmodediscretionary : {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{:}:}
-%definetextmodediscretionary ; {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{;};}
-%definetextmodediscretionary ? {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{?}?}
-%definetextmodediscretionary ! {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{!}!}
-
\definetextmodediscretionary : {\removeunwantedspaces\wordboundary\kern\hspaceamount\empty{:}:}
\definetextmodediscretionary ; {\removeunwantedspaces\wordboundary\kern\hspaceamount\empty{;};}
\definetextmodediscretionary ? {\removeunwantedspaces\wordboundary\kern\hspaceamount\empty{?}?}
\definetextmodediscretionary ! {\removeunwantedspaces\wordboundary\kern\hspaceamount\empty{!}!}
-%definetextmodediscretionary * {\prewordbreak\discretionary{-}{}{\kern.05\emwidth}\prewordbreak}
\definetextmodediscretionary * {\wordboundary\discretionary{-}{}{\kern.05\emwidth}\wordboundary}
% spanish
-%definetextmodediscretionary ?? {\prewordbreak\questiondown}
-%definetextmodediscretionary !! {\prewordbreak\exclamdown}
-
\definetextmodediscretionary ?? {\wordboundary\questiondown}
\definetextmodediscretionary !! {\wordboundary\exclamdown}
-%D \installdiscretionary | +
-%D \installdiscretionary + =
-
\permanent\protected\def\defaultdiscretionaryhyphen{\compoundhyphen}
-\installdiscretionary | \defaultdiscretionaryhyphen % installs in ctx and prt will fall back on it
-
%D \macros
%D {fakecompoundhyphen}
%D
@@ -500,7 +423,7 @@
\def\lang_compounds_fake_hyphen
{\enforced\permanent\protected\def##1|%
{\doifelsenothing{##1}\compoundhyphen{##1}%
- \kern\d_lang_discretionaries_breakpoint
+ \wordboundary % was a signal
\allowbreak}}
%D \macros
@@ -549,9 +472,9 @@
%D so test\compound{}test can be used instead of test||test
%D \stoptyping
-\bgroup
-
- \catcode\barasciicode\activecatcode
+% \bgroup
+%
+% \catcode\barasciicode\activecatcode
\permanent\protected\gdef\compound#1{|#1|}
@@ -559,7 +482,7 @@
\enforced\permanent\protected\def|#1|{\ifx#1\empty\empty-\else#1\fi}%
\to \everysimplifycommands
-\egroup
+% \egroup
%D Here we hook some code into the clean up mechanism needed for verbatim data.
@@ -583,4 +506,6 @@
{\ifnum\posthyphenchar>\zerocount\char\posthyphenchar\fi}%
{\ifnum\posthyphenchar>\zerocount\char\posthyphenchar\fi}}
+% \setcatcodetable\prtcatcodes % because we activated the bar
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-rep.lmt b/Master/texmf-dist/tex/context/base/mkxl/lang-rep.lmt
new file mode 100644
index 00000000000..fcaff523a35
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-rep.lmt
@@ -0,0 +1,467 @@
+if not modules then modules = { } end modules ['lang-rep'] = {
+ version = 1.001,
+ comment = "companion to lang-rep.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- A BachoTeX 2013 experiment, probably not that useful. Eventually I used a simpler
+-- more generic example. I'm sure no one ever notices of even needs this code.
+--
+-- As a follow up on a question by Alan about special treatment of dropped caps I wonder
+-- if I can make this one more clever (probably in a few more dev steps). For instance
+-- injecting nodes or replacing nodes. It's a prelude to a kind of lpeg for nodes,
+-- although (given experiences so far) we don't really need that. After all, each problem
+-- is somewhat unique.
+
+local type, tonumber, next = type, tonumber, next
+local gmatch, gsub = string.gmatch, string.gsub
+local utfbyte, utfsplit = utf.byte, utf.split
+local P, C, U, Cc, Ct, Cs, lpegmatch = lpeg.P, lpeg.C, lpeg.patterns.utf8character, lpeg.Cc, lpeg.Ct, lpeg.Cs, lpeg.match
+local find = string.find
+
+local zwnj = 0x200C
+local grouped = P("{") * ( Ct((U/utfbyte-P("}"))^1) + Cc(false) ) * P("}")-- grouped
+local splitter = Ct((
+ #P("{") * (
+ P("{}") / function() return zwnj end
+ + Ct(Cc("discretionary") * grouped * grouped * grouped)
+ + Ct(Cc("noligature") * grouped)
+ )
+ + U/utfbyte
+ )^1)
+
+local stripper = P("{") * Cs((1-P(-2))^0) * P("}") * P(-1)
+
+local trace_replacements = false trackers.register("languages.replacements", function(v) trace_replacements = v end)
+local trace_details = false trackers.register("languages.replacements.details", function(v) trace_details = v end)
+
+local report_replacement = logs.reporter("languages","replacements")
+
+local glyph_code = nodes.nodecodes.glyph
+local glue_code = nodes.nodecodes.glue
+
+local spaceskip_code = nodes.gluecodes.spaceskip
+local xspaceskip_code = nodes.gluecodes.xspaceskip
+
+local nuts = nodes.nuts
+
+local getnext = nuts.getnext
+local getprev = nuts.getprev
+local getattr = nuts.getattr
+local getid = nuts.getid
+local getsubtype = nuts.getsubtype
+local getchar = nuts.getchar
+local isglyph = nuts.isglyph
+
+local setlink = nuts.setlink
+local setnext = nuts.setnext
+local setprev = nuts.setprev
+local setchar = nuts.setchar
+local setattrlist = nuts.setattrlist
+local setoptions = nuts.setoptions
+
+local glyphoptioncodes = tex.glyphoptioncodes
+local norightligature_option = glyphoptioncodes.norightligature
+local noleftligature_option = glyphoptioncodes.noleftligature
+
+local insertbefore = nuts.insertbefore
+local insertafter = nuts.insertafter
+local remove_node = nuts.remove
+local copy_node = nuts.copy
+local flushlist = nuts.flushlist
+
+local nodepool = nuts.pool
+local new_disc = nodepool.disc
+
+local texsetattribute = tex.setattribute
+local unsetvalue = attributes.unsetvalue
+
+local enableaction = nodes.tasks.enableaction
+
+local v_reset = interfaces.variables.reset
+
+local implement = interfaces.implement
+
+local processors = typesetters.processors
+local splitprocessor = processors.split
+
+local replacements = languages.replacements or { }
+languages.replacements = replacements
+
+local a_replacements = attributes.private("replacements")
+
+local lists = { }
+local last = 0
+local trees = { }
+
+table.setmetatableindex(lists,function(lists,name)
+ last = last + 1
+ local list = { }
+ local data = { name = name, list = list, attribute = last }
+ lists[last] = data
+ lists[name] = data
+ trees[last] = list
+ return data
+end)
+
+lists[v_reset].attribute = unsetvalue -- so we discard 0
+
+-- todo: glue kern attr
+
+local function add(root,word,replacement)
+ local processor, replacement = splitprocessor(replacement,true) -- no check
+ replacement = lpegmatch(stripper,replacement) or replacement
+ local list = utfsplit(word) -- ,true)
+ local size = #list
+ for i=1,size do
+ local l = utfbyte(list[i])
+ if not root[l] then
+ root[l] = { }
+ end
+ if i == size then
+ local special = find(replacement,"{",1,true)
+ local newlist = lpegmatch(splitter,replacement)
+ root[l].final = {
+ word = word,
+ replacement = replacement,
+ processor = processor,
+ oldlength = size,
+ newcodes = newlist,
+ special = special,
+ }
+ end
+ root = root[l]
+ end
+end
+
+function replacements.add(category,word,replacement)
+ local root = lists[category].list
+ if type(word) == "table" then
+ for word, replacement in next, word do
+ add(root,word,replacement)
+ end
+ else
+ add(root,word,replacement or "")
+ end
+end
+
+-- local strip = lpeg.stripper("{}")
+
+function languages.replacements.addlist(category,list)
+ local root = lists[category].list
+ if type(list) == "string" then
+ for new in gmatch(list,"%S+") do
+ local old = gsub(new,"[{}]","")
+ -- local old = lpegmatch(strip,new)
+ add(root,old,new)
+ end
+ else
+ for i=1,#list do
+ local new = list[i]
+ local old = gsub(new,"[{}]","")
+ -- local old = lpegmatch(strip,new)
+ add(root,old,new)
+ end
+ end
+end
+
+local function tonodes(list,template)
+ local head, current
+ for i=1,#list do
+ local new = copy_node(template)
+ setchar(new,list[i])
+ if head then
+ head, current = insertafter(head,current,new)
+ else
+ head, current = new, new
+ end
+ end
+ return head
+end
+
+local ispunctuation = characters.is_punctuation
+
+-- We can try to be clever and use the fact that there is no match to skip
+-- over to the next word but it is gives fuzzy code so for now I removed
+-- that optimization (when I really need a high performance version myself
+-- I will look into it (but so far I never used this mechanism myself).
+--
+-- We used to have the hit checker as function but is got messy when checks
+-- for punctuation was added.
+
+local function replace(head,first,last,final,hasspace,overload)
+ local current = first
+ local prefirst = getprev(first) or head
+ local postlast = getnext(last)
+ local oldlength = final.oldlength
+ local newcodes = final.newcodes
+ local newlength = newcodes and #newcodes or 0
+ if trace_replacements then
+ report_replacement("replacing word %a by %a",final.word,final.replacement)
+ end
+ if hasspace or final.special then
+ -- It's easier to delete and insert so we do just that. On the todo list is
+ -- turn injected spaces into glue but easier might be to let the char break
+ -- handler do that ...
+ local prev = getprev(current)
+ local next = getnext(last)
+ local list = current
+ setnext(last)
+ setlink(prev,next)
+ current = prev
+ if not current then
+ head = nil
+ end
+ local i = 1
+ while i <= newlength do
+ local codes = newcodes[i]
+ if type(codes) == "table" then
+ local method = codes[1]
+ if method == "discretionary" then
+ local pre, post, replace = codes[2], codes[3], codes[4]
+ if pre then
+ pre = tonodes(pre,first)
+ end
+ if post then
+ post = tonodes(post,first)
+ end
+ if replace then
+ replace = tonodes(replace,first)
+ end
+ -- todo: also set attr
+ local new = new_disc(pre,post,replace)
+ setattrlist(new,first)
+ head, current = insertafter(head,current,new)
+ elseif method == "noligature" then
+ -- not that efficient to copy but ok for testing
+ local list = codes[2]
+ if list then
+ local n = #list
+ for i=1,n do
+ local new = copy_node(first)
+ setchar(new,list[i])
+ if i == 1 then
+ setoptions(new,norightligature_option)
+ elseif i == n then
+ setoptions(new,glyphoptioncodes.noleftligature | norightligature_option)
+ else
+ setoptions(new,glyphoptioncodes.noleftligature)
+ end
+ head, current = insertafter(head,current,new)
+ end
+ else
+ -- local new = copy_node(first)
+ -- setchar(new,zwnj)
+ -- head, current = insertafter(head,current,new)
+ setoptions(current,norightligature_option)
+ end
+ else
+ report_replacement("unknown method %a",method or "?")
+ end
+ else
+ local new = copy_node(first)
+ setchar(new,codes)
+ head, current = insertafter(head,current,new)
+ end
+ i = i + 1
+ end
+ flushlist(list)
+ elseif newlength == 0 then
+ -- we overload
+ elseif oldlength == newlength then
+ if final.word ~= final.replacement then
+ for i=1,newlength do
+ setchar(current,newcodes[i])
+ current = getnext(current)
+ end
+ end
+ current = getnext(final)
+ elseif oldlength < newlength then
+ for i=1,newlength-oldlength do
+ local n = copy_node(current)
+ setchar(n,newcodes[i])
+ head, current = insertbefore(head,current,n)
+ current = getnext(current)
+ end
+ for i=newlength-oldlength+1,newlength do
+ setchar(current,newcodes[i])
+ current = getnext(current)
+ end
+ else
+ for i=1,oldlength-newlength do
+ head, current = remove_node(head,current,true)
+ end
+ for i=1,newlength do
+ setchar(current,newcodes[i])
+ current = getnext(current)
+ end
+ end
+ if overload then
+ overload(final,getnext(prefirst),getprev(postlast))
+ end
+ return head, postlast
+end
+
+-- we handle just one space
+
+function replacements.handler(head)
+ local current = head
+ local overload = attributes.applyoverloads
+ local mode = false -- we're in word or punctuation mode
+ local wordstart = false
+ local wordend = false
+ local prevend = false
+ local prevfinal = false
+ local tree = false
+ local root = false
+ local hasspace = false
+ while current do
+ local id = getid(current) -- or use the char getter
+ if id == glyph_code then
+ local a = getattr(current,a_replacements)
+ if a then
+ -- we have a run
+ tree = trees[a]
+ if tree then
+ local char = getchar(current)
+ local punc = ispunctuation[char]
+ if mode == "punc" then
+ if not punc then
+ if root then
+ local final = root.final
+ if final then
+ head = replace(head,wordstart,wordend,final,hasspace,overload)
+ elseif prevfinal then
+ head = replace(head,wordstart,prevend,prevfinal,hasspace,overload)
+ end
+ prevfinal = false
+ root = false
+ end
+ mode = "word"
+ end
+ elseif mode == "word" then
+ if punc then
+ if root then
+ local final = root.final
+ if final then
+ head = replace(head,wordstart,wordend,final,hasspace,overload)
+ elseif prevfinal then
+ head = replace(head,wordstart,prevend,prevfinal,hasspace,overload)
+ end
+ prevfinal = false
+ root = false
+ end
+ mode = "punc"
+ end
+ else
+ mode = punc and "punc" or "word"
+ end
+ if root then
+ root = root[char]
+ if root then
+ wordend = current
+ end
+ else
+ if prevfinal then
+ head = replace(head,wordstart,prevend,prevfinal,hasspace,overload)
+ prevfinal = false
+ end
+ root = tree[char]
+ if root then
+ wordstart = current
+ wordend = current
+ prevend = false
+ hasspace = false
+ end
+ end
+ else
+ root= false
+ end
+ else
+ tree = false
+ end
+ current = getnext(current)
+ elseif root then
+ local final = root.final
+ if mode == "word" and id == glue_code then
+ local s = getsubtype(current)
+ if s == spaceskip_code or s == xspaceskip_code then
+ local r = root[32] -- maybe more types
+ if r then
+ if not prevend then
+ local f = root.final
+ if f then
+ prevend = wordend
+ prevfinal = f
+ end
+ end
+ wordend = current
+ root = r
+ hasspace = true
+ goto moveon
+ end
+ end
+ end
+ if final then
+ head, current = replace(head,wordstart,wordend,final,hasspace,overload)
+ elseif prevfinal then
+ head, current = replace(head,wordstart,prevend,prevfinal,hasspace,overload)
+ end
+ prevfinal = false
+ root = false
+ ::moveon::
+ current = getnext(current)
+ else
+ current = getnext(current)
+ end
+ end
+ if root then
+ local final = root.final
+ if final then
+ head = replace(head,wordstart,wordend,final,hasspace,overload)
+ elseif prevfinal then
+ head = replace(head,wordstart,prevend,prevfinal,hasspace,overload)
+ end
+ end
+ return head
+end
+
+local enabled = false
+
+function replacements.set(n)
+ if n == v_reset then
+ n = unsetvalue
+ else
+ n = lists[n].attribute
+ if not enabled then
+ enableaction("processors","languages.replacements.handler")
+ if trace_replacements then
+ report_replacement("enabling replacement handler")
+ end
+ enabled = true
+ end
+ end
+ texsetattribute(a_replacements,n)
+end
+
+-- interface
+
+implement {
+ name = "setreplacements",
+ actions = replacements.set,
+ arguments = "string"
+}
+
+implement {
+ name = "addreplacements",
+ actions = replacements.add,
+ arguments = "3 strings",
+}
+
+implement {
+ name = "addreplacementslist",
+ actions = replacements.addlist,
+ arguments = "2 strings",
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-rep.mkxl b/Master/texmf-dist/tex/context/base/mkxl/lang-rep.mkxl
index 36e48424249..03b761bb746 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lang-rep.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-rep.mkxl
@@ -19,7 +19,7 @@
\unprotect
-\registerctxluafile{lang-rep}{}
+\registerctxluafile{lang-rep}{autosuffix}
\definesystemattribute[replacements][public,global]
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-tra.lmt b/Master/texmf-dist/tex/context/base/mkxl/lang-tra.lmt
new file mode 100644
index 00000000000..2591659280a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-tra.lmt
@@ -0,0 +1,372 @@
+if not modules then modules = { } end modules ['lang-tra'] = {
+ version = 1.001,
+ comment = "companion to lang-tra.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- The indic transliterations was researched by kauśika and after some experiments
+-- we settled on the current approach (mappings and a more specific lpeg).
+
+-- Todo: initial and final in addition to mapping so that we can do hebrew and
+-- such.
+
+local concat, setmetatableindex = table.concat, table.setmetatableindex
+local nospaces = string.nospaces
+local utfbyte, utfchar, utfsplit, utfvalues = utf.byte, utf.char, utf.split, utf.values
+local C, Cc, Cs, lpegmatch = lpeg.C, lpeg.Cc, lpeg.Cs, lpeg.match
+local utfchartabletopattern = lpeg.utfchartabletopattern
+local utfcharacterpattern = lpeg.patterns.utf8character
+
+local nuts = nodes.nuts
+
+local nextchar = nuts.traversers.char
+
+local getattr = nuts.getattr
+local setchar = nuts.setchar
+local getnext = nuts.getnext
+local isnextchar = nuts.isnextchar
+
+local insertafter = nuts.insertafter
+local copynode = nuts.copy
+local removenode = nuts.remove
+
+local texsetattribute = tex.setattribute
+
+local registervalue = attributes.registervalue
+local getvalue = attributes.getvalue
+
+local transliteration = { }
+languages.transliteration = transliteration
+
+local a_transliteration = attributes.private("transliteration")
+local unsetvalue = attributes.unsetvalue
+
+local implement = interfaces.implement
+local context = context
+
+local zwj = utf.char(0x200D)
+
+-- local lastmapping = 0
+local loadedmappings = { }
+local loadedlibraries = { }
+local exceptions = { }
+
+local report = logs.reporter("transliteration")
+local trace = false trackers.register("languages.transliteration", function(v) trace = v end)
+
+local converters = {
+-- ["iast to deva"] = function(m)
+-- local t_svara = m.svara
+-- local p_svara = utfchartabletopattern(t_svara)
+-- local t_vyanjana = m.vyanjana
+-- local p_vyanjana = utfchartabletopattern(t_vyanjana)
+-- local t_maatra = m.maatra
+-- local p_maatra = utfchartabletopattern(t_maatra)
+-- local t_viraama = m.viraama
+-- local p_viraama = utfchartabletopattern(t_viraama)
+-- local t_boundary = m.boundary
+-- local p_boundary = utfchartabletopattern(t_boundary)
+-- local t_yogavaaha = m.yogavaaha
+-- local p_yogavaaha = utfchartabletopattern(t_yogavaaha)
+-- local p_svara_boundary = 1 - p_svara - p_vyanjana - p_yogavaaha
+-- local p = Cs ( (
+-- p_svara / t_svara
+-- + p_vyanjana / t_vyanjana
+-- + p_viraama / t_viraama
+-- + p_yogavaaha / t_yogavaaha
+-- + C(utfcharacterpattern)
+-- )^0 )
+-- return function(s)
+-- -- for now
+-- -- s = zwj .. s
+-- --
+-- return lpegmatch(p,s) or s
+-- end
+-- end,
+ ["mapping"] = function(m)
+ local t_mapping = m.mapping
+ if t_mapping then
+ local t_exceptions = m.exceptions
+ local p = Cs ( (
+ utfchartabletopattern(t_mapping) / t_mapping
+ + C(utfcharacterpattern)
+ )^0 )
+ -- lpeg.print(p)
+ return function(s,e)
+ return (e and e[s]) or t_exceptions[s] or lpegmatch(p,s) or s
+ end
+ else
+ return false
+ end
+ end,
+ ["default"] = function(m)
+ local t_exceptions = m.exceptions
+ return function(s,e)
+ return (e and e[s]) or t_exceptions[s] or s
+ end
+ end,
+}
+
+function transliteration.use(library)
+ local lib = loadedlibraries[library]
+ if lib == nil then
+ -- todo: use library loader
+ local data = require("lang-imp-" .. library)
+ if data then
+ local transliterations = data.transliterations
+ if transliterations then
+ for name, d in table.sortedhash(transliterations) do
+ local vector = d.vector
+ if not d.exceptions then
+ d.exceptions = { }
+ end
+ if vector then
+ report("vector %a in %a is %sloaded",name,library," already")
+ else
+ d.vector = (converters[name] or converters.mapping or converters.default)(d)
+ or (converters.default)(d)
+ report("vector %a in set %a is %sloaded",name,library,"")
+ end
+ d.library = library
+ d.name = name
+ d.mapping = nil -- for now, saves memory
+ loadedmappings[name] = d
+ loadedmappings[nospaces(name)] = d
+ end
+ else
+ report("library %a has no transliterations",library)
+ end
+ loadedlibraries[library] = data
+ else
+ loadedlibraries[library] = false
+ end
+ end
+end
+
+local enable = false
+
+enable = function()
+ nodes.tasks.enableaction("processors", "languages.transliteration.handler")
+ enable = false
+end
+
+function transliteration.register(parent,name)
+ local p = exceptions[parent]
+ if p then
+ if trace then
+ report("%a has exceptions that default to %a",name,parent)
+ end
+ exceptions[name] = setmetatableindex({ },p)
+ else
+ if trace then
+ report("%a has independent exceptions",name)
+ end
+ exceptions[name] = { }
+ end
+end
+
+function transliteration.set(name,vector)
+ if enable then
+ enable()
+ end
+ local a = registervalue(a_transliteration, {
+ m = loadedmappings[vector],
+ e = exceptions[name],
+ })
+ if trace then
+ report("setting transliteration %i, name %a, vector %a",a,name,vector)
+ end
+ texsetattribute(a_transliteration,a)
+end
+
+function transliteration.exception(name,old,new)
+ local m = loadedmappings[name]
+ if m then
+ m.exceptions[old] = new
+ else
+ local e = exceptions[name]
+ if not e then
+ e = { }
+ exceptions[name] = e
+ end
+ e[old] = new
+ end
+end
+
+-- When there is need I will improve the performance of the next handler.
+
+function transliteration.handler(head)
+ local aprev = nil
+ local vector = nil
+ local except = nil
+ local current = head
+ local first = nil
+ local last = nil
+ local list = { }
+ local size = 0
+
+ -- we need a more clever one: run over small ranges in order to keep colors etc
+
+ -- actually we can generalize the replacer elsewhere
+
+ local function flush(nxt)
+ if vector then
+ -- we can do some optimization here by having the split as replacement
+ local old = concat(list,"",1,size)
+ local new = vector(old,except)
+ if old ~= new then
+ if trace then
+ report("old: %s",old)
+ report("new: %s",new)
+ end
+ local c = first
+ local x = false
+ for s in utfvalues(new) do
+ if x then
+ head, c = insertafter(head,c,copynode(first))
+ setchar(c,s)
+ else
+ setchar(c,s)
+ if c == last then
+ x = true
+ else
+ c = getnext(c)
+ end
+ end
+ end
+ if not x then
+ while c do
+ head, c = removenode(head,c,true)
+ if c == nxt then
+ break
+ end
+ end
+ end
+ end
+ end
+ end
+
+ while current do
+ local nxt, chr, more = isnextchar(current)
+ if chr then
+ local a = getattr(current,a_transliteration)
+ if a then
+ if a ~= aprev then
+ if first then
+ flush(nxt)
+ first = nil
+ size = 0
+ end
+ aprev = a
+ local data = getvalue(a_transliteration,a)
+ if data then
+ local m = data.m
+ if m then
+ vector = m.vector
+ except = data.e
+ else
+ vector = nil
+ except = nil
+ end
+ else
+ vector = nil
+ except = nil
+ end
+ end
+ if not first then
+ first = current
+ end
+ last = current
+ size = size + 1
+ list[size] = utfchar(chr)
+ if not more then
+ flush(nxt)
+ first = nil
+ size = 0
+ -- we can go ahead one next
+ end
+ else
+ if first then
+ flush(nxt)
+ first = nil
+ size = 0
+ end
+ end
+ end
+ current = nxt
+ end
+ if first then
+ flush(nxt)
+ end
+ return head
+end
+
+interfaces.implement {
+ name = "usetransliteration",
+ public = true,
+ protected = true,
+ arguments = "optional",
+ actions = transliteration.use,
+}
+
+implement {
+ name = "settransliteration",
+ arguments = "2 strings",
+ actions = transliteration.set,
+}
+
+implement {
+ name = "registertransliteration",
+ arguments = "3 strings",
+ actions = transliteration.register,
+}
+
+implement {
+ name = "transliterationexception",
+ arguments = "3 strings",
+ actions = transliteration.exception,
+}
+
+nodes.tasks.prependaction("processors", "normalizers", "languages.transliteration.handler", nil, "nut", "disabled" )
+
+local function transliterate(scheme,str)
+ if str and str ~= "" then
+ local m = loadedmappings[scheme]
+ local c = m and m.vector
+ context(c and c(str) or str)
+ end
+end
+
+local getbuffer = buffers.getcontent
+
+implement {
+ name = "transliterate",
+ public = true,
+ protected = true,
+ arguments = { "optional", "string" },
+ actions = transliterate,
+}
+
+implement {
+ name = "transliteratebuffer",
+ public = true,
+ protected = true,
+ arguments = { "optional", "string" },
+ actions = function(scheme,name) transliterate(scheme,getbuffer(name)) end,
+}
+
+implement {
+ name = "transliterated",
+ public = true,
+ arguments = { "optional", "string" },
+ actions = transliterate,
+}
+
+implement {
+ name = "transliteratedbuffer",
+ public = true,
+ arguments = { "optional", "string" },
+ actions = function(scheme,name) transliterate(scheme,getbuffer(name)) end,
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-tra.mkxl b/Master/texmf-dist/tex/context/base/mkxl/lang-tra.mkxl
index b087832e04b..66a020a141d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lang-tra.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-tra.mkxl
@@ -13,30 +13,74 @@
\writestatus{loading}{ConTeXt Language Macros / Transliteration}
-\registerctxluafile{lang-tra}{}
+\registerctxluafile{lang-tra}{autosuffix}
\unprotect
+\installcorenamespace {transliteration}
+
+\installcommandhandler \??transliteration {transliteration} \??transliteration
+
\definesystemattribute[transliteration][public,global]
-\installcorenamespace {transliteration}
+\newtoks\everytransliterations
+
+\appendtoks
+ \disablediscretionaries
+ % \let~=\lettertilde
+ \enforced\letcharcode\tildeasciicode\lettertilde
+ % \let|=\letterbar
+ % \enforced\letcharcode\barasciicode\letterbar
+\to \everytransliterations
-\permanent\tolerant\protected\def\definetransliteration[#1]#*[#2]%
- {\clf_definedtransliteration{#1}{#2}}
+\def\lang_transliteration_common
+ {\usetransliterationstyleandcolor\c!style\c!color
+ \uselanguageparameter\transliterationparameter
+ \clf_settransliteration{\currenttransliteration}{\transliterationparameter\c!vector}%
+ \the\everytransliterations}
-\permanent\protected\def\settransliteration[#1]%
- {\clf_settransliteration{#1}}
+\permanent\tolerant\protected\def\settransliteration[#1]#;#2%
+ {\edef\currenttransliteration{#1#2}%
+ \lang_transliteration_common}
-\permanent\protected\def\starttransliteration[#1]%
+\permanent\protected\def\transliterationexception[#1]#2#3%
+ {\clf_transliterationexception{#1}{#2}{#3}}
+
+\permanent\tolerant\protected\def\starttransliteration[#1]#*[#2]%
{\begingroup
- \clf_settransliteration{#1}}
+ \edef\currenttransliteration{#1}%
+ \ifparameter#2\or
+ \setupcurrenttransliteration[#2]%
+ \fi
+ \transliterationparameter\c!before\relax
+ \lang_transliteration_common}
\permanent\protected\def\stoptransliteration
- {\endgroup}
+ {\transliterationparameter\c!after\relax
+ \endgroup}
+
+\permanent\tolerant\protected\def\transliteration[#1]#;#2%
+ {\groupedcommand
+ {\edef\currenttransliteration{#1#2}%
+ \lang_transliteration_common
+ \transliterationparameter\c!left\relax}
+ {\transliterationparameter\c!right\relax}}
+
+\appendtoks
+ \clf_registertransliteration{\currenttransliterationparent}{\currenttransliteration}%
+ \ifcstok{\transliterationparameter\c!define}\v!yes
+ \frozen\protected\instance\edefcsname\e!start\currenttransliteration\endcsname{\starttransliteration[\currenttransliteration]}%
+ \frozen\protected\instance\edefcsname\e!stop \currenttransliteration\endcsname{\stoptransliteration}%
+ \frozen\protected\instance\edefcsname \currenttransliteration\endcsname{\transliteration[\currenttransliteration]}%
+ \fi
+\to \everydefinetransliteration
\permanent\protected\def\resettransliteration
{\c_attr_transliteration\attributeunsetvalue}
+\setuptransliteration
+ [\c!define=\v!yes]
+
\appendtoks
\resettransliteration
\to \everyinitializeverbatim
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-url.lmt b/Master/texmf-dist/tex/context/base/mkxl/lang-url.lmt
new file mode 100644
index 00000000000..b918464d032
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-url.lmt
@@ -0,0 +1,259 @@
+if not modules then modules = { } end modules ['lang-url'] = {
+ version = 1.001,
+ comment = "companion to lang-url.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local next = next
+local utfcharacters, utfbyte, utfchar = utf.characters, utf.byte, utf.char
+local min, max = math.min, math.max
+local setmetatableindex = table.setmetatableindex
+
+local context = context
+local ctx_pushcatcodes = context.pushcatcodes
+local ctx_popcatcodes = context.popcatcodes
+
+local implement = interfaces.implement
+local variables = interfaces.variables
+
+local v_before = variables.before
+local v_after = variables.after
+
+local is_letter = characters.is_letter
+
+--[[
+<p>Hyphenating <l n='url'/>'s is somewhat tricky and a matter of taste. I did
+consider using a dedicated hyphenation pattern or dealing with it by node
+parsing, but the following solution suits as well. After all, we're mostly
+dealing with <l n='ascii'/> characters.</p>
+]]--
+
+local urls = { }
+languages.urls = urls
+
+local characters = utilities.storage.allocate {
+ ["!"] = "before",
+ ['"'] = "before",
+ ["#"] = "before",
+ ["$"] = "before",
+ ["%"] = "before",
+ ["&"] = "before",
+ ["("] = "before",
+ ["*"] = "before",
+ ["+"] = "before",
+ [","] = "before",
+ ["-"] = "before",
+ ["."] = "before",
+ ["/"] = "before",
+ [":"] = "before",
+ [";"] = "before",
+ ["<"] = "before",
+ ["="] = "before",
+ [">"] = "before",
+ ["?"] = "before",
+ ["@"] = "before",
+ ["["] = "before",
+ ["\\"] = "before",
+ ["^"] = "before",
+ ["_"] = "before",
+ ["`"] = "before",
+ ["{"] = "before",
+ ["|"] = "before",
+ ["~"] = "before",
+
+ ["'"] = "after",
+ [")"] = "after",
+ ["]"] = "after",
+ ["}"] = "after",
+}
+
+local mapping = utilities.storage.allocate {
+ -- [utfchar(0xA0)] = "~", -- nbsp (catch)
+}
+
+urls.characters = characters
+urls.mapping = mapping
+urls.lefthyphenmin = 2
+urls.righthyphenmin = 3
+urls.discretionary = nil
+urls.packslashes = false
+
+directives.register("hyphenators.urls.packslashes",function(v) urls.packslashes = v end)
+
+local trace = false trackers.register("hyphenators.urls",function(v) trace = v end)
+local report = logs.reporter("hyphenators","urls")
+
+-- local ctx_a = context.a
+-- local ctx_b = context.b
+-- local ctx_d = context.d
+-- local ctx_c = context.c
+-- local ctx_l = context.l
+-- local ctx_C = context.C
+-- local ctx_L = context.L
+
+-- local function action(hyphenatedurl,str,left,right,disc)
+-- --
+-- left = max( left or urls.lefthyphenmin, 2)
+-- right = min(#str-(right or urls.righthyphenmin)+2,#str)
+-- disc = disc or urls.discretionary
+-- --
+-- local word = nil
+-- local prev = nil
+-- local pack = urls.packslashes
+-- local length = 0
+-- --
+-- for char in utfcharacters(str) do
+-- length = length + 1
+-- char = mapping[char] or char
+-- local b = utfbyte(char)
+-- if prev == char and prev == "/" then
+-- ctx_c(b)
+-- elseif char == disc then
+-- ctx_d()
+-- else
+-- if prev == "/" then
+-- ctx_d()
+-- end
+-- local how = characters[char]
+-- if how == v_before then
+-- word = false
+-- ctx_b(b)
+-- elseif how == v_after then
+-- word = false
+-- ctx_a(b)
+-- else
+-- local letter = is_letter[char]
+-- if length <= left or length >= right then
+-- if word and letter then
+-- ctx_L(b)
+-- else
+-- ctx_C(b)
+-- end
+-- elseif word and letter then
+-- ctx_l(b)
+-- else
+-- ctx_c(b)
+-- end
+-- word = letter
+-- end
+-- end
+-- if pack then
+-- prev = char
+-- else
+-- prev = nil
+-- end
+-- end
+-- end
+
+local function action(hyphenatedurl,str,left,right,disc)
+ --
+ left = max( left or urls.lefthyphenmin, 2)
+ right = min(#str-(right or urls.righthyphenmin)+2,#str)
+ disc = disc or urls.discretionary
+ --
+ local word = nil
+ local pack = urls.packslashes
+ local length = 0
+ local list = utf.split(str)
+ local size = #list
+ local prev = nil
+
+ for i=1,size do
+ local what = nil
+ local dodi = false
+ local char = list[i]
+ length = length + 1
+ char = mapping[char] or char
+ if char == disc then
+ dodi = true
+ elseif pack and char == "/" and (list[i+1] == "/" or prev == "/") then
+ what = "c"
+ else
+ local how = characters[char]
+ if how == v_before then
+ what = "b"
+ elseif how == v_after then
+ word = false
+ what = "a"
+ else
+ local letter = is_letter[char]
+ if length <= left or length >= right then
+ if word and letter then
+ what = "L"
+ else
+ what = "C"
+ end
+ elseif word and letter then
+ what = "l"
+ else
+ what = "c"
+ end
+ word = letter
+ end
+ end
+ if dodi then
+ list[i] = "\\lang_url_d "
+ else
+ list[i] = "\\lang_url_" .. what .. "{" .. utfbyte(char) .. "}"
+ end
+ prev = char
+ end
+ if trace then
+ report("old : %s",str)
+ report("new : %t",list)
+ end
+ ctx_pushcatcodes("prtcatcodes")
+ context("%t",list)
+ ctx_popcatcodes()
+end
+
+-- urls.action = function(_,...) action(...) end -- sort of obsolete
+
+table.setmetatablecall(hyphenatedurl,action) -- watch out: a caller
+
+-- todo, no interface in mkiv yet
+
+local registerfunction = context.functions.register
+local unregisterfunction = context.functions.unregister
+local savelua = token.savelua
+
+local function restorevalues(savedchars,restore)
+ for k, v in next, savedchars do
+ characters[k] = v
+ end
+ unregisterfunction(restore)
+end
+
+function urls.setcharacters(str,value) -- 1, 2 == before, after
+ local savedchars = { }
+ local newvalue = value or v_before
+ for s in utfcharacters(str) do
+ local oldvalue = characters[s]
+ if oldvalue ~= newvalue then
+ savedchars[s] = oldvalue
+ characters[s] = newvalue
+ end
+ end
+ if next(savedchars) then
+ local restore = nil
+ restore = registerfunction(function() restorevalues(savedchars,restore) end)
+ savelua(restore)
+ end
+end
+
+-- .urls.setcharacters("')]}",2)
+
+implement {
+ name = "sethyphenatedurlcharacters",
+ actions = urls.setcharacters,
+ arguments = "2 strings",
+}
+
+implement {
+ name = "hyphenatedurl",
+ scope = "private",
+ actions = function(...) action(hyphenatedurl,...) end,
+ arguments = { "string", "integer", "integer", "string" }
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lang-url.mkxl b/Master/texmf-dist/tex/context/base/mkxl/lang-url.mkxl
index 04a55fcf93f..2d41c6c3258 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lang-url.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/lang-url.mkxl
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\registerctxluafile{lang-url}{}
+\registerctxluafile{lang-url}{autosuffix}
\unprotect
@@ -57,13 +57,15 @@
\enforced\let\{\letterleftbrace
\enforced\let\}\letterrightbrace
\enforced\let\|\letterbar
- \enforced\let~=\lettertilde
- \enforced\let|=\letterbar
+ % \enforced\let~=\lettertilde
+ % \enforced\let|=\letterbar
+ \enforced\letcharcode\tildeasciicode\lettertilde
+ \enforced\letcharcode\barasciicode \letterbar
\enforced\let\Ux\eUx
\to \everyhyphenatedurl
-\mutable\let\hyphenatedurlseparator \empty % \periodcentered
-\mutable\let\hyphenatedurldiscretionary\empty
+\mutable\lettonothing\hyphenatedurlseparator % \periodcentered
+\mutable\lettonothing\hyphenatedurldiscretionary
\setnewconstant\hyphenatedurllefthyphenmin \plusthree
\setnewconstant\hyphenatedurlrighthyphenmin\plusthree
diff --git a/Master/texmf-dist/tex/context/base/mkxl/layo-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/layo-ini.lmt
index 1570075d9a1..2d922b16a08 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/layo-ini.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/layo-ini.lmt
@@ -12,6 +12,9 @@ if not modules then modules = { } end modules ['layo-ini'] = {
local texgetcount = tex.getcount
local conditionals = tex.conditionals
+local c_realpageno = tex.iscount("realpageno")
+local c_pagenoshift = tex.iscount("pagenoshift")
+
layouts = {
status = { },
}
@@ -26,14 +29,14 @@ function status.leftorrightpageaction(left,right)
return left, right
elseif conditionals.layoutissinglesided then
return left, right
- elseif texgetcount("pagenoshift") % 2 == 0 then
- if texgetcount("realpageno") % 2 == 0 then
+ elseif texgetcount(c_pagenoshift) % 2 == 0 then
+ if texgetcount(c_realpageno) % 2 == 0 then
return right, left
else
return left, right
end
else
- if texgetcount("realpageno") % 2 == 0 then
+ if texgetcount(c_realpageno) % 2 == 0 then
return left, right
else
return right, left
@@ -46,10 +49,10 @@ function status.isleftpage(r)
return false
elseif conditionals.layoutissinglesided then
return false
- elseif texgetcount("pagenoshift") % 2 == 0 then
- return (r or texgetcount("realpageno")) % 2 == 0
+ elseif texgetcount(c_pagenoshift) % 2 == 0 then
+ return (r or texgetcount(c_realpageno)) % 2 == 0
else
- return not (r or texgetcount("realpageno")) % 2 == 0
+ return not (r or texgetcount(c_realpageno)) % 2 == 0
end
end
@@ -96,8 +99,12 @@ function layouts.setupcanvas(specification)
canvas.marked = specification.print
--
local copies = specification.copies
- if type(copies) == "number" and copies < 2 then
- canvas.copies = false
+ if type(copies) == "number" then
+ if copies < 2 then
+ canvas.copies = false
+ else
+ canvas.copies = copies
+ end
end
--
local doublesided = specification.doublesided
diff --git a/Master/texmf-dist/tex/context/base/mkxl/layo-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/layo-ini.mkxl
index 73b7e978e16..a3ed6236ba4 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/layo-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/layo-ini.mkxl
@@ -22,8 +22,8 @@
\ifdefined\layoutisdoublesided \else \newconditional\layoutisdoublesided \fi
\ifdefined\layoutissinglesided \else \newconditional\layoutissinglesided \fi
-\ifdefined\pagenoshift \else \newcount \pagenoshift \fi
-\ifdefined\realpageno \else \newcount \realpageno \fi
+\ifdefined\pagenoshift \else \newinteger \pagenoshift \fi
+\ifdefined\realpageno \else \newinteger \realpageno \fi
\registerctxluafile{layo-ini}{autosuffix}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-curl.lmt b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-curl.lmt
index b307397948c..0aa6d0855bd 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-curl.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-curl.lmt
@@ -19,6 +19,7 @@ if not curllib then return end
local next, type = next, type
local lower, gsub = string.lower, string.gsub
+local dirname = file.dirname
local mapping = {
["acceptencoding"] = 102,
@@ -272,12 +273,17 @@ local function fetch(options)
o[index] = value
end
end
+ -- if o.capath == true then
+ -- o.capath = libpath
+ -- end
return curl_fetch(o)
elseif t == "string" then
return curl_fetch { [mapping.url] = options }
else
report("invalid argument")
end
+ else
+ report("no curl library loaded")
end
end
@@ -286,10 +292,19 @@ local curl = {
escape = function (s) return okay() and curl_escape (s) end,
unescape = function (s) return okay() and curl_unescape (s) end,
fetch = fetch,
+ libfile = libfile,
+ libpath = dirname(libfile),
}
-- inspect(curl.fetch("http://www.pragma-ade.com/index.html"))
-- inspect(curl.fetch { url = "http://www.pragma-ade.com/index.html" })
+--
+-- inspect(curl.fetch {
+-- url = "https://www.ctan.org/json/2.0/packages",
+-- sslverifyhost = 0,
+-- sslverifypeer = 0,
+-- -- capath = true
+-- } )
package.loaded[libname] = curl
diff --git a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-foreign.lmt b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-foreign.lmt
new file mode 100644
index 00000000000..7b177307850
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-foreign.lmt
@@ -0,0 +1,65 @@
+if not modules then modules = { } end modules ['libs-imp-foreign'] = {
+ version = 1.001,
+ comment = "companion to luat-imp-foreign.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- See libs-imp-foreign.mkxl for some comments.
+
+local report = logs.reporter("foreign")
+
+local libname = "foreign"
+----- libfile = "libffi-7"
+local libfile = "libffi*"
+----- libfile = "d:/inkscape/bin/libffi-7.dll" -- libffi*
+
+local libforeign = resolvers.libraries.validoptional(libname)
+
+if package.loaded[libname] then
+ return package.loaded[libname]
+end
+
+local function okay()
+ -- Don't worry, when one overloads this flag the engine will abort with an
+ -- error message anyway, but it's less nice.
+ if not status.permit_loadlib then
+ report()
+ report("opening foreign libraries is not enabled")
+ report()
+ os.exit()
+ elseif libforeign and resolvers.libraries.optionalloaded(libname,libfile) then
+ okay = function() return true end
+ else
+ okay = function() return false end
+ end
+ return okay()
+end
+
+local foreignload = libforeign.load
+
+local foreign = {
+ types = libforeign.types,
+ abivalues = libforeign.abivalues,
+ totable = libforeign.totable,
+ newbuffer = libforeign.newbuffer,
+ getbuffer = libforeign.getbuffer,
+ load = function(name)
+ if okay() then
+ local fullname = resolvers.findlib(name)
+ if fullname and fullname ~= "" then
+ return foreignload(fullname)
+ else
+ -- report an error
+ end
+ end
+ end,
+}
+
+-- In due time I'll add the struct and array methods using Lua 5.4 features.
+
+package .loaded[libname] = foreign
+optional.loaded[libname] = foreign
+
+return foreign
diff --git a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-foreign.mkxl b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-foreign.mkxl
new file mode 100644
index 00000000000..5c266358629
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-foreign.mkxl
@@ -0,0 +1,204 @@
+% permitloadlib=true
+
+%D \module
+%D [ file=libs-imp-foreign,
+%D version=2021.03.10,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=Basic FFI,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This module was added as a side track of a user wanting to run a library that is
+%D not (has support) built in. In order to identify issues I wondered if we could
+%D have an additional feature to the already present optional libraries (of course
+%D with the usual loadlib protection. Keep in mind that loading libraries creates a
+%D dependency and an api can change. And in a long term program like any \TEX\
+%D program we don't want that (at least I don't want users to be forced to install
+%D lots of additional source code and dependencies in order to compile \LUAMETATEX\
+%D successfully.
+%D
+%D So, I looked around for alternatives to ffi and ran into the (stable since 5
+%D years) alien module (by Fabio Mascarenhas) that uses the rather portable libffi
+%D but it does have some dependencies. For callbacks you need to set some parameters
+%D normally dealt with when configuring and compiling which does creates a
+%D dependency. So, in the end I just took its keyword driven approach but wrapped it
+%D in alternative code that more matches other modules and assumes \LUA\ 5.4.
+%D
+%D Additional features like arrays and structs will be implemented when we need them
+%D using modern \LUA\ 5.4 features (string packing, toclose, etc). For now I
+%D consider all this an experiment and will pick up the thread when I have an
+%D example.
+%D
+%D So, how far do we go? I think as soon as a library becomes more complex, say with
+%D multi|-|dimensional arrays one should just write a proper interface. So we limit
+%D ourselves here. One problem with more complex datastructures is that it opens the
+%D door to abuse thanks to uncontrolled memory access.
+
+\registerctxluafile{libs-imp-foreign}{autosuffix}
+
+\continueifinputfile{libs-imp-foreign.mkxl}
+
+%D The difference in performance is not that significant because the time spent in
+%D the called function is the bottleneck here.
+
+\usemodule[article-basic] \setupbodyfont[8pt] \noheaderandfooterlines
+
+\starttext
+
+\startluacode
+
+ local NC, BC, NR = context.NC, context.BC, context.NR
+
+ function document.identify(kpse,set_program_name,find_file)
+ context.starttabulate { "|l|lp|" }
+ BC() context.type("kpse") NC() context.typ(tostring(kpse)) NC() NR()
+ BC() context.type("set_program_name") NC() context.typ(tostring(set_program_name)) NC() NR()
+ BC() context.type("find_file") NC() context.typ(tostring(find_file)) NC() NR()
+ context.stoptabulate()
+ end
+
+ function document.lookup(find_file,filename,filetype,present,n)
+
+ local c = os.clock()
+ for i=1,n do
+ if find_file(filename,filetype,present) then
+ -- okay
+ end
+ end
+ c = os.clock() - c
+
+ context.starttabulate()
+ BC() context("asked") NC() context.type(filename) NC() NR()
+ BC() context("found") NC() context.type(find_file(filename,filetype,present)) NC() NR()
+ if n > 0 then
+ BC() context("times") NC() context(n) NC() NR()
+ BC() context("seconds") NC() context(" %0.3f",c) NC() NR()
+ BC() context("lookup") NC() context(" %0.6f",c/n) NC() NR()
+ end
+ context.stoptabulate()
+ end
+\stopluacode
+
+\starttitle[title=kpse via foreign]
+
+\startluacode
+
+ local foreign = optional.loaded.foreign
+
+ local kplib = (os.platform == "win64" and "kpathsea*w64")
+ or (os.platform == "win32" and "kpathsea*w32")
+ or "libkpathsea"
+
+ local kpse = foreign.load(kplib)
+
+ local set_program_name = kpse:register {
+ name = "kpse_set_program_name",
+ arguments = { "string", "string" }
+ }
+
+ local find_file = kpse:register {
+ name = "kpse_find_file",
+ arguments = { "string", "int", "int" },
+ result = "string",
+ }
+ local path_expand = kpse:register {
+ name = "kpse_path_expand",
+ arguments = { "string" },
+ result = "string",
+ }
+ local all_path_search = kpse:register {
+ name = "kpse_all_path_search",
+ arguments = { "string", "string" },
+ result = "pointer",
+ finalizer = function(p)
+ return foreign.totable(p,"string") -- unknown n, so NULL terminated
+ end
+ }
+
+ -- print(kpse)
+ -- print(set_program_name)
+ -- print(kpse:registered("kpse_set_program_name"))
+ -- print(kpse:available("kpse_set_program_name"))
+ -- print(kpse:available("set_program_name"))
+ -- print(kpse:available("kpse_find_file"))
+
+ -- inspect(kpse:registered ())
+ -- inspect(foreign.types())
+ -- inspect(foreign.abivalues())
+
+ local set_program_name = kpse:registered("kpse_set_program_name")
+ local find_file = kpse:registered("kpse_find_file")
+
+ set_program_name("luatex","luatex")
+
+ document.lookup(find_file, "libs-imp-foreign.mkxl", 26, 0, 100000)
+ document.lookup(find_file, "oeps.tex", 26, 0, 10000)
+ document.lookup(find_file, "metafun.mp", 16, 0, 5000)
+ document.lookup(find_file, "logo10.afm", 4, 0, 2500)
+
+ document.identify(kpse, set_program_name, find_file)
+
+ -- set_program_name("pdftex","pdftex")
+ --
+ -- local t = path_expand("$TEXINPUTS")
+ -- local p = all_path_search(t,"oeps.tex")
+ --
+ -- inspect(t)
+ -- inspect(p)
+
+\stopluacode
+
+\stoptitle
+
+\registerctxluafile{libs-imp-kpse}{autosuffix}
+
+\starttitle[title=kpse via optional / string]
+
+\startluacode
+
+ local kpse = optional.loaded.kpse
+
+ local set_program_name = kpse.set_program_name
+ local find_file = kpse.find_file
+
+ kpse.set_program_name("luatex")
+
+ document.lookup(find_file, "libs-imp-foreign.mkxl", "tex", false, 100000)
+ document.lookup(find_file, "oeps.tex", "tex", false, 10000)
+ document.lookup(find_file, "metafun.mp", "mp", false, 5000)
+ document.lookup(find_file, "logo10.afm", "afm", false, 2500)
+
+ document.identify(kpse, set_program_name, find_file)
+
+\stopluacode
+
+\stoptitle
+
+\starttitle[title=kpse via optional / number]
+
+\startluacode
+
+ local kpse = optional.loaded.kpse
+
+ local set_program_name = kpse.set_program_name
+ local find_file = kpse.find_file
+
+ kpse.set_program_name("luatex")
+
+ document.lookup(find_file, "libs-imp-foreign.mkxl", 26, false, 100000)
+ document.lookup(find_file, "oeps.tex", 26, false, 10000)
+ document.lookup(find_file, "metafun.mp", 16, false, 5000)
+ document.lookup(find_file, "logo10.afm", 4, false, 2500)
+
+ document.identify(kpse, set_program_name, find_file)
+
+\stopluacode
+
+\stoptitle
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-graphicsmagick.lmt b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-graphicsmagick.lmt
index 6f5d1d967fd..f70261366b7 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-graphicsmagick.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-graphicsmagick.lmt
@@ -55,15 +55,21 @@ function graphicsmagick.convert(specification)
--
report("run %s, input file %a, outputfile %a",nofruns,inputname,outputname)
--
- gm_execute { inputfile = inputname, outputfile = outputname }
+ specification.inputfile = inputname
+ specification.outputfile = outputname
+ --
+ local okay, detail = gm_execute(specification)
+ if not okay then
+ report("error %a",detail)
+ end
--
statistics.stoptiming(graphicsmagick)
end
end
-function graphicsmagick.statistics(report)
+function graphicsmagick.statistics(feedback)
local runtime = statistics.elapsedtime(graphicsmagick)
- if report then
+ if feedback then
report("nofruns %s, runtime %s",nofruns,runtime)
else
return {
diff --git a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-imagemagick.lmt b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-imagemagick.lmt
new file mode 100644
index 00000000000..cce632eb389
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-imagemagick.lmt
@@ -0,0 +1,94 @@
+if not modules then modules = { } end modules ['libs-imp-imagemagick'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+}
+
+-- \registerctxluafile{libs-imp-imagemagick}{autosuffix}
+-- \starttext
+-- \startluacode
+-- utilities.imagemagick.convert {
+-- inputname = "hacker.jpg",
+-- outputname = "m_k_v_i_hacker.png",
+-- options = { "-rotate", 90, "-noise", 2 },
+-- }
+-- context.externalfigure { "hacker.png" }
+-- \stopluacode
+-- \stoptext
+
+local libname = "imagemagick"
+local libfile = { "CORE_RL_MagickCore_", "CORE_RL_MagickWand_" }
+
+local imlib = resolvers.libraries.validoptional(libname)
+
+if not imlib then return end
+
+local function okay()
+ if resolvers.libraries.optionalloaded(libname,libfile) then
+ okay = function() return true end
+ else
+ okay = function() return false end
+ end
+ return okay()
+end
+
+local imagemagick = utilities.imagemagick or { }
+utilities.imagemagick = imagemagick
+
+local im_execute = imlib.execute
+local nofruns = 0
+local report = logs.reporter(libname)
+
+function imagemagick.convert(specification)
+ if okay() then
+ --
+ nofruns = nofruns + 1
+ statistics.starttiming(imagemagick)
+ --
+ local inputname = specification.inputname
+ if not inputname or inputname == "" then
+ report("invalid run %s, no inputname specified",nofruns)
+ statistics.stoptiming(imagemagick)
+ return false
+ end
+ local outputname = specification.outputname
+ if not outputname or outputname == "" then
+ outputname = file.replacesuffix(inputname,"pdf")
+ end
+ --
+ if not lfs.isfile(inputname) then
+ report("invalid run %s, input file %a is not found",nofruns,inputname)
+ statistics.stoptiming(imagemagick)
+ return false
+ end
+ --
+ report("run %s, input file %a, outputfile %a",nofruns,inputname,outputname)
+ --
+ specification.inputfile = inputname
+ specification.outputfile = outputname
+ --
+ local okay, detail = im_execute(specification)
+ if not okay then
+ report("error %a (make sure options start with one -) ",detail)
+ end
+ --
+ statistics.stoptiming(imagemagick)
+ end
+end
+
+function imagemagick.statistics(feedback)
+ local runtime = statistics.elapsedtime(imagemagick)
+ if feedback then
+ report("nofruns %s, runtime %s",nofruns,runtime)
+ else
+ return {
+ runtime = runtime,
+ nofruns = nofruns,
+ }
+ end
+end
+
+-- imagemagick.convert { inputname = "t:/sources/hacker.jpg", outputname = "e:/tmp/hacker.png" }
+-- imagemagick.statistics(true)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-lz4.lmt b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-lz4.lmt
new file mode 100644
index 00000000000..2367a640dc5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-lz4.lmt
@@ -0,0 +1,46 @@
+if not modules then modules = { } end modules ['libs-imp-lz4'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- https://packages.msys2.org/package/mingw-w64-x86_64-lz4?repo=mingw64
+
+-- Instead of linking in libs like this we now do them optional. After all, once
+-- we start adding more and more stuff statically we en dup with a mess.
+
+local libname = "lz4"
+local libfile = "liblz4"
+
+local lz4lib = resolvers.libraries.validoptional(libname)
+
+if not lz4lib then return end
+
+local lz4_compress = lz4lib.compress
+----- lz4_decompress = lz4lib.decompress
+local lz4_decompresssize = lz4lib.decompresssize
+local lz4_framecompress = lz4lib.framecompress
+local lz4_framedecompress = lz4lib.framedecompress
+
+local function okay()
+ if resolvers.libraries.optionalloaded(libname,libfile) then
+ okay = function() return true end
+ else
+ okay = function() return false end
+ end
+ return okay()
+end
+
+local lz4 = {
+ compress = function (...) return okay() and lz4_compress (...) end,
+ -- decompress = function (...) return okay() and lz4_decompress (...) end,
+ decompresssize = function (...) return okay() and lz4_decompresssize (...) end,
+ framecompress = function (...) return okay() and lz4_framecompress (...) end,
+ framedecompress = function (...) return okay() and lz4_framedecompress(...) end,
+}
+
+package.loaded[libname] = lz4
+
+return lz4
diff --git a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-lzma.lmt b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-lzma.lmt
new file mode 100644
index 00000000000..eeecaf35369
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-lzma.lmt
@@ -0,0 +1,54 @@
+if not modules then modules = { } end modules ['libs-imp-lzma'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- Instead of linking in libs like this we now do them optional. After all, once
+-- we start adding more and more stuff statically we en dup with a mess.
+
+-- e:\tex-context\tex\texmf-win64\bin\lib\luametatex\lzma\liblzma.dll
+
+local libname = "lzma"
+local libfile = "liblzma"
+
+local lzmalib = resolvers.libraries.validoptional(libname)
+
+if not lzmalib then return end
+
+local lzma_compress = lzmalib.compress
+local lzma_decompress = lzmalib.decompress
+
+local function okay()
+ if resolvers.libraries.optionalloaded(libname,libfile) then
+ okay = function() return true end
+ else
+ okay = function() return false end
+ end
+ return okay()
+end
+
+local lzma = {
+ compress = function (...) return okay() and lzma_compress (...) end,
+ decompress = function (...) return okay() and lzma_decompress (...) end,
+}
+
+package.loaded[libname] = lzma
+
+-- local raw = io.loaddata("e:/luatex/luametatex-source.tar")
+-- local old = io.loaddata("e:/luatex/luametatex-source.tar.xz")
+-- local new = lzma.decompress(old)
+-- local xz1 = lzma.compress(raw,9)
+-- local xz2 = lzma.decompress(xz1)
+
+-- print("raw",raw and #raw)
+-- print("old",old and #old)
+-- print("new",new and #new)
+-- print("chk",new == raw)
+-- print("xz1",xz1 and #xz1)
+-- print("xz2",xz2 and #xz2)
+-- print("chk",xz2 == raw)
+
+return lzma
diff --git a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-lzo.lmt b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-lzo.lmt
new file mode 100644
index 00000000000..1cc84a9e388
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-lzo.lmt
@@ -0,0 +1,37 @@
+if not modules then modules = { } end modules ['libs-imp-lzo'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- https://packages.msys2.org/package/mingw-w64-x86_64-lzo2?repo=mingw64
+
+local libname = "lzo"
+local libfile = "liblzo"
+
+local lzolib = resolvers.libraries.validoptional(libname)
+
+if not lzolib then return end
+
+local lzo_compress = lzolib.compress
+local lzo_decompresssize = lzolib.decompresssize
+
+local function okay()
+ if resolvers.libraries.optionalloaded(libname,libfile) then
+ okay = function() return true end
+ else
+ okay = function() return false end
+ end
+ return okay()
+end
+
+local lzo = {
+ compress = function (...) return okay() and lzo_compress (...) end,
+ decompresssize = function (...) return okay() and lzo_decompresssize(...) end,
+}
+
+package.loaded[libname] = lzo
+
+return lzo
diff --git a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-mujs.mkxl b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-mujs.mkxl
index a8fe5801f39..5a64f6fc8c4 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-mujs.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-mujs.mkxl
@@ -31,7 +31,6 @@
\protected\def\startecmacode % \stopecmacode
{\begingroup
- \obeylualines
\obeyluatokens
\luat_start_ecma_code_indeed}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-zint.lmt b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-zint.lmt
index 2c346ae7d5f..0ae3b12967d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-zint.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-zint.lmt
@@ -28,8 +28,9 @@ utilities.zint = zint
local zintlib_execute = zintlib.execute
-local next, type, unpack = next, type, unpack
+local next, type, unpack, rawget = next, type, unpack, rawget
local lower, gsub = string.lower, string.gsub
+local formatters = string.formatters
local mapping = {
["code 11"] = 1, ["pharma one-track"] = 51, ["aztec code"] = 92,
@@ -65,6 +66,12 @@ local mapping = {
["logmars"] = 50, ["kix code"] = 90, ["rmqr"] = 145,
}
+for k, v in table.sortedhash(mapping) do
+ mapping[gsub(lower(k),"[^a-z0-9]","")]= v
+end
+
+mapping.qr = mapping.qrcode
+
table.setmetatableindex(mapping,function(t,k)
local s = gsub(lower(k),"[^a-z0-9]","")
local v = rawget(t,s) or false
@@ -72,21 +79,52 @@ table.setmetatableindex(mapping,function(t,k)
return v
end)
+-- local options = {
+-- -- DATA_MODE = 0 -- Binary
+-- -- UNICODE_MODE = 1 -- UTF-8
+-- -- GS1_MODE = 2 -- GS1
+-- -- GS1PARENS_MODE = 16 -- process parentheses as GS1 AI delimiters (instead of square brackets)
+-- square = 100 -- DM_SQUARE : only consider square versions on automatic symbol size selection
+-- -- DMRE = 101 -- DM_DMRE : consider DMRE versions on automatic symbol size selection
+-- }
+
local report = logs.reporter("zint")
local context = context
local shown = false
+local sqrt = math.sqrt
+
+local f_rectangle = formatters["( unitsquare xyscaled (%N,-%N) shifted (%N,-%N) )"]
+local f_hexagon = formatters["( fullhexagon scaled %N shifted (%N,-%N) )"]
+local f_circle = formatters["( fullcircle scaled %N shifted (%N,-%N) )"]
+local f_string = formatters['draw textext("%s") scaled (%N/10) shifted (%N,-%N);']
------ f_rectangle = string.formatters["%sofill unitsquare xysized (%N,%N) shifted (%N,%N);"]
+local aliases = {
+ isbnx = "isbn",
+ ISBNX = "ISBN",
+}
local function execute(specification)
if okay() then
- local code = specification.code
- local text = specification.text
+ local code = specification.code
+ local text = specification.text
+ local option = specification.option
+ --
+ if option then
+ option = gsub(option,"^%-+","")
+ end
+ specification.option = option
+ --
if code then
+ code = aliases[code] or code
+ --
+ if lower(code) == "isbn" then
+ specification.text = text and gsub(text,"[^%d]","") or ""
+ end
+ --
local id = mapping[code]
if id then
specification.code = id
- local result = zintlib_execute(specification)
+ local result, detail = zintlib_execute(specification)
if result then
-- not that fast but if needed we can speed it up
context.startMPcode()
@@ -98,36 +136,39 @@ local function execute(specification)
local n = #rectangles
for i=1,n do
local r = rectangles[i]
- context("%sofill unitsquare xysized (%N,%N) shifted (%N,%N);",
- i == n and "d" or "n",r[3],r[4],r[1],r[2])
- -- rectangles[i] = f_rectangle(i == n and "d" or "n",r[3],r[4],r[1],r[2])
+ rectangles[i] = f_rectangle(r[3],r[4],r[1],r[2])
end
- -- context("% t",rectangles)
+ context("fill % && t && cycle;",rectangles)
end
if hexagons then
local n = #hexagons
- for i=1,#hexagons do
- context("%sofill (%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--cycle;",
- i == n and "d" or "n",unpack(hexagons[i]))
+ local s = sqrt(2) / 2 -- can be finetuned if needed
+ for i=1,n do
+ local h = hexagons[i]
+ hexagons[i] = f_hexagon(s*h[3],h[1],h[2])
end
+ context("fill % && t && cycle;",hexagons)
end
if circles then
local n = #circles
- for i=1,#circles do
+ for i=1,n do
local c = circles[i]
- context("%sofill unitcircle scaled %N shifted (%N,%N);",
- i == n and "d" or "n",c[3],c[1],c[2])
+ circles[i] = f_circle(c[3],c[1],c[2])
end
+ context("eofill % && t && cycle;",circles)
end
if strings then
-- We set the font at the encapsulating level.
- for i=1,#strings do
+ local n = #strings
+ for i=1,n do
local s = strings[i]
- context('draw textext("%s") scaled (%N/10) shifted (%N,%N);',
- s[4],s[3],s[1],s[2])
+ strings[i] = f_string(s[4],s[3],s[1],s[2])
end
+ context("% t",strings)
end
context.stopMPcode()
+ else
+ report("something went wrong: %s",detail or "unknown error")
end
else
report("unknown barcode alternative %a",code)
@@ -156,6 +197,7 @@ interfaces.implement {
{
{ "code" },
{ "text" },
+ { "option" },
}
}
}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-zint.mkxl b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-zint.mkxl
index b2adf05ad82..9905e047095 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-zint.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-zint.mkxl
@@ -11,16 +11,18 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D Using \type {zint} seems to be the easiest way to generate
-%D (PDF417) barcodes so therefore we now have this module. There
-%D are proper (also windows) binaries at:
+%D Using \type {zint} seems to be the easiest way to generate (PDF417) barcodes so
+%D therefore we now have this module. There are proper (also windows) binaries at:
%D
%D \starttyping
%D http://www.zint.org.uk
%D \stoptyping
%D
-%D There is a bit more code than needed as we want to be able to
-%D feed names.
+%D There is a bit more code than needed as we want to be able to feed names.
+%D
+%D % e:\tex-context\tex\texmf-win64\bin\lib\luametatex\zint\libzint.dll
+
+% \enabletrackers[*res*]
\registerctxluafile{libs-imp-zint}{autosuffix}
@@ -32,13 +34,14 @@
{\bgroup
\usedzintfont
\getdummyparameters
- [\c!alternative=,\c!text=,#1]%
+ [\c!alternative=,\c!text=,\c!option=,#1]%
\scale
[#1]%
{\clf_zint
- code {\dummyparameter\c!alternative}
- text {\dummyparameter\c!text}
- \relax}
+ code {\dummyparameter\c!alternative}
+ text {\dummyparameter\c!text}
+ option {\dummyparameter\c!option}
+ \relax}%
\egroup}
\protect
@@ -47,18 +50,78 @@
\starttext
-% \dorecurse{1000}{
+\dontcomplain
+
+% \dorecurse{1}{
+% \startTEXpage
+% \barcode[alternative=PDF417,text={Hans Hagen}]%
+% \blank
+% \barcode[alternative=PDF417,text={Ton Otten}]%
+% \blank
+% \barcode[alternative=ISBN,text=9789490688011]%
+% \blank
+% \barcode[alternative=isbn,text=9789490688011,width=3cm]%
+% \blank
+% \dontleavehmode
+% \barcode[alternative=qr code,text={This is ConTeXt MKIV : #1}]
+% \barcode[alternative=qr code,text={This is ConTeXt LMTX}]
+% \barcode[alternative=qr code,text={\cldloadfile{tufte}},width=3cm]
+% \blank
+% \barcode[alternative=datamatrix,text=whatever,width=3cm,option=square]
+% \scale[width=3cm,height=3cm]{\barcode[alternative=datamatrix,text=whatever,width=3cm,option=square]}
+% \barcode[alternative=datamatrix,text={helloworld}]
+% \barcode[alternative=datamatrix,text={hello world}]
+% \stopTEXpage
+% }
+
\startTEXpage
- \barcode[alternative=PDF417,text={Hans Hagen}]%
- \blank
- \barcode[alternative=PDF417,text={Ton Otten}]%
- \blank
- \barcode[alternative=ISBN,text=9789490688011]%
- \blank
- \barcode[alternative=isbn,text=9789490688011,width=3cm]%
+ \startluacode
+ for i=1,100 do
+ context.dontleavehmode()
+ context.barcode {
+ alternative = "datamatrix",
+ text = string.rep("!",i),
+ }
+ context.space()
+ context.allowbreak()
+ end
+ \stopluacode
+ \stopTEXpage
+
+ \startTEXpage
+ \startluacode
+ for i=1,100 do
+ context.dontleavehmode()
+ context.barcode {
+ alternative = "datamatrix",
+ text = string.rep("!",i),
+ option = "square",
+ }
+ context.space()
+ context.allowbreak()
+ end
+ \stopluacode
\stopTEXpage
-% }
+ \startluacode
+ for i=1,25 do
+ context.startTEXpage()
+ context.dontleavehmode()
+ context(i)
+ context.space()
+ context.barcode {
+ alternative = "datamatrix",
+ text = string.rep("!",i),
+ }
+ context.space()
+ context.barcode {
+ alternative = "datamatrix",
+ text = string.rep("!",i),
+ option = "square",
+ }
+ context.stopTEXpage()
+ end
+ \stopluacode
\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkxl/libs-imp-zstd.lmt b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-zstd.lmt
new file mode 100644
index 00000000000..958c34cc45c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/libs-imp-zstd.lmt
@@ -0,0 +1,98 @@
+if not modules then modules = { } end modules ['libs-imp-zstd'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- Instead of linking in libs like this we now do them optional. After all, once
+-- we start adding more and more stuff statically we en dup with a mess. In fact,
+-- this lib was the reason for no longer embedding lzo and lz4.
+
+-- c:/data/develop/tex-context/tex/texmf-win64/bin/lib/luametatex/lua/copies/curl/libzstd.dll
+
+-- require("libs-imp-zstd.lmt") -- only loads
+--
+-- local zstd = require("zstd") -- activates
+--
+-- local data = io.loaddata("t:/sources/char-def.lua")
+-- local comp = zstd.compress (data)
+-- local back = zstd.decompress(comp)
+--
+-- print(#data,#comp,#back,#back==#data)
+
+local libname = "zstd"
+local libfile = "libzstd"
+
+local zstdlib = resolvers.libraries.validoptional(libname)
+
+if not zstdlib then return end
+
+local zstd_compress = zstdlib.compress
+local zstd_decompress = zstdlib.decompress
+
+local function okay()
+ if resolvers.libraries.optionalloaded(libname,libfile) then
+ okay = function() return true end
+ else
+ okay = function() return false end
+ end
+ return okay()
+end
+
+local zstd = {
+ compress = function (s) return okay() and zstd_compress (s) end,
+ decompress = function (s) return okay() and zstd_decompress(s) end,
+}
+
+package.loaded[libname] = zstd
+
+return zstd
+
+-- local foreign = optional.loaded.foreign
+-- local newbuffer = foreign.newbuffer
+-- local getbuffer = foreign.getbuffer
+--
+-- local zstd = foreign.load("libzstd")
+--
+-- local ZSTD_compressBound = zstd:register {
+-- name = "ZSTD_compressBound",
+-- result = "int",
+-- arguments = { "int" },
+-- }
+--
+-- local ZSTD_getFrameContentSize = zstd:register {
+-- name = "ZSTD_getFrameContentSize",
+-- result = "int",
+-- arguments = { "pointer", "int" },
+-- }
+--
+-- local ZSTD_compress = zstd:register {
+-- name = "ZSTD_compress",
+-- result = "int",
+-- arguments = { "pointer", "int", "string", "int", "int" },
+-- arguments = { "pointer", "int", "pointer", "int", "int" },
+-- }
+--
+-- local ZSTD_decompress = zstd:register {
+-- name = "ZSTD_decompress",
+-- result = "int",
+-- arguments = { "pointer", "int", "string", "int" },
+-- }
+--
+-- local function zstd_compress(source,level)
+-- local sourcesize = #source
+-- local targetsize = ZSTD_compressBound(sourcesize)
+-- local target = newbuffer(targetsize)
+-- local result = ZSTD_compress(target,targetsize,source,sourcesize,tonumber(level) or 3)
+-- return getbuffer(target,result)
+-- end
+--
+-- local function zstd_decompress(source)
+-- local sourcesize = #source
+-- local targetsize = ZSTD_getFrameContentSize(source,sourcesize)
+-- local target = newbuffer(targetsize)
+-- local result = ZSTD_decompress(target,targetsize,source,sourcesize)
+-- return getbuffer(target,result)
+-- end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/libs-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/libs-ini.lmt
new file mode 100644
index 00000000000..4ce0e8e503d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/libs-ini.lmt
@@ -0,0 +1,206 @@
+if not modules then modules = { } end modules ['libs-ini'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- This is a loader for optional libraries in luametatex with context lmtx. It's
+-- kind of experimental. We also use a different locator than in mkiv because we
+-- don't support loading lua libraries and swiglibs any more. Of course one can try
+-- the regular lua loaders but we just assume that a user then knows what (s)he is
+-- doing. At some point this variant will divert more from the original loader
+-- file 'libs-ini.lua'.
+
+local type, unpack = type, unpack
+local find = string.find
+
+-- here we implement the resolver
+
+local nameonly = file.nameonly
+local joinfile = file.join
+local addsuffix = file.addsuffix
+local qualifiedpath = file.is_qualified_path
+
+local isfile = lfs.isfile
+
+local findfile = resolvers.findfile
+local expandpaths = resolvers.expandedpathlistfromvariable
+
+local report = logs.reporter("resolvers","libraries")
+local trace = false
+local silent = false
+
+trackers.register("resolvers.lib", function(v) trace = v end)
+trackers.register("resolvers.lib.silent", function(v) silent = v end)
+
+local function findlib(required) -- todo: cache
+ local suffix = os.libsuffix or "so"
+ if not qualifiedpath(required) then
+ local list = directives.value("system.librarynames" )
+ local only = nameonly(required)
+ if type(list) == "table" then
+ list = list[only]
+ if type(list) ~= "table" then
+ list = { only }
+ end
+ else
+ list = { only }
+ end
+ if trace then
+ report("using lookup list for library %a: % | t",only,list)
+ end
+ for i=1,#list do
+ local name = list[i]
+ local found = findfile(name,"lib")
+ if not found or found == "" then
+ found = findfile(addsuffix(name,suffix),"lib")
+ end
+ if found and found ~= "" then
+ if trace then
+ report("library %a resolved via %a path to %a",name,"tds lib",found)
+ end
+ return found
+ end
+ end
+ if expandpaths then
+ local list = expandpaths("PATH")
+ local base = addsuffix(only,suffix)
+ for i=1,#list do
+ local full = joinfile(list[i],base)
+ local found = isfile(full) and full
+ if found and found ~= "" then
+ if trace then
+ report("library %a resolved via %a path to %a",full,"system",found)
+ end
+ return found
+ end
+ end
+ end
+ elseif isfile(addsuffix(required,suffix)) then
+ if trace then
+ report("library with qualified name %a %sfound",required,"")
+ end
+ return required
+ else
+ if trace then
+ report("library with qualified name %a %sfound",required,"not ")
+ end
+ end
+ return false
+end
+
+local foundlibraries = table.setmetatableindex(function(t,k)
+ local v = findlib(k)
+ t[k] = v
+ return v
+end)
+
+function resolvers.findlib(required)
+ return foundlibraries[required]
+end
+
+-- here we implement the loader
+
+local libraries = { }
+resolvers.libraries = libraries
+
+local report = logs.reporter("optional")
+
+if optional then optional.loaded = { } end
+
+function libraries.validoptional(name)
+ local thelib = optional and optional[name]
+ if not thelib then
+ -- forget about it, no message here
+ elseif thelib.initialize then
+ return thelib
+ else
+ report("invalid optional library %a",libname)
+ end
+end
+
+function libraries.optionalloaded(name,libnames)
+ local thelib = optional and optional[name]
+ if not thelib then
+ report("no optional %a library found",name)
+ else
+ local thelib_initialize = thelib.initialize
+ if not thelib_initialize then
+ report("invalid optional library %a",name)
+ else
+ if type(libnames) == "string" then
+ libnames = { libnames }
+ end
+ if type(libnames) == "table" then
+ for i=1,#libnames do
+ local libname = libnames[i]
+ local filename = foundlibraries[libname]
+ if filename and filename ~= "" then
+ libnames[i] = filename
+ else
+ report("unable to locate library %a",libname)
+ return
+ end
+ end
+ local initialized = thelib_initialize(unpack(libnames))
+ if not initialized then
+ report("unable to initialize library '% + t'",libnames)
+ elseif not silent then
+ report("using library '% + t'",libnames)
+ end
+ return initialized
+ end
+ end
+ end
+end
+
+-- local patterns = {
+-- "libs-imp-%s.mkxl",
+-- "libs-imp-%s.mklx",
+-- }
+--
+-- local function action(name,foundname)
+-- -- could be one command
+-- context.startreadingfile()
+-- context.input(foundname)
+-- context.stopreadingfile()
+-- end
+--
+-- interfaces.implement {
+-- name = "uselibrary",
+-- arguments = "string"
+-- actions = function(name)
+-- resolvers.uselibrary {
+-- category = "color definition",
+-- name = name,
+-- patterns = patterns,
+-- action = action,
+-- onlyonce = true,
+-- }
+-- end
+-- }
+
+-- We overload the standard 'require' function. Because we're in LuaMetaTeX we are
+-- more likely to find 'lmt' files when we deal with the TeX and MetaPost part but
+-- user files likely have the 'lua' suffix.
+
+do
+
+ local dofile = dofile
+ local savedrequire = require
+
+ function require(name,version)
+ if find(name,"%.lua$") or find(name,"%.lmt$") then
+ local m = dofile(findfile(name))
+ if m then
+ package.loaded[name] = m
+ return m
+ end
+ else
+ return savedrequire(name)
+ end
+ end
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/libs-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/libs-ini.mkxl
index d77046fbffe..bc1fe92e0e8 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/libs-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/libs-ini.mkxl
@@ -11,10 +11,12 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\registerctxluafile{libs-ini}{} % shared with mkiv
+\registerctxluafile{libs-ini}{autosuffix}
-\registerctxluafile{libs-imp-curl}{autosuffix}
-\registerctxluafile{libs-imp-ghostscript}{autosuffix}
+% These are used by the graphic converters:
+
+\registerctxluafile{libs-imp-curl} {autosuffix}
+\registerctxluafile{libs-imp-ghostscript} {autosuffix}
\registerctxluafile{libs-imp-graphicsmagick}{autosuffix}
% These are loaded on demand:
@@ -22,11 +24,16 @@
% \registerctxluafile{libs-imp-mysql}{autosuffix}
% \registerctxluafile{libs-imp-sqlite}{autosuffix}
% \registerctxluafile{libs-imp-postgress}{autosuffix}
+
+% \registerctxluafile{libs-imp-lzo}{autosuffix}
+% \registerctxluafile{libs-imp-lz4}{autosuffix}
+% \registerctxluafile{libs-imp-zstd}{autosuffix}
+
% \registerctxluafile{libs-imp-kpse}{autosuffix}
+% \registerctxluafile{libs-imp-hb}{autosuffix}
\unprotect
-% \permanent\protected\def\uselibrary[#1]%
-% {\clf_uselibrary{#1}}
+% \permanent\protected\def\uselibrary[#1]{\clf_uselibrary{#1}}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-ano.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-ano.lmt
index 86bcd4ad5dd..55b145730b8 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-ano.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-ano.lmt
@@ -10,8 +10,16 @@ if not modules then modules = { } end modules ['lpdf-ano'] = {
-- todo: /AA << WC << ... >> >> : WillClose actions etc
--- internal references are indicated by a number (and turned into <autoprefix><number>)
--- we only flush internal destinations that are referred
+-- Internal references are indicated by a number (and turned into <autoprefix><number>)
+-- we only flush internal destinations that are referred.
+
+-- In the end one can wonder if it was worth the effort to keep up with annotations.
+-- Where acrobat at least supports most (can differ per version) other viewers
+-- support partial. For instance sumatra (that I use for testing) can open an
+-- external links but doesn't go to the page. So don't report issues before making
+-- sure that it's not your browser that fails. One cannto complain about what comes
+-- for free (browsers) but one should also not praise non commercial software to
+-- much without looking critical at how it performs.
local next, tostring, tonumber, rawget, type = next, tostring, tonumber, rawget, type
local rep, format, find = string.rep, string.format, string.find
@@ -20,8 +28,6 @@ local lpegmatch = lpeg.match
local formatters = string.formatters
local sortedkeys, concat = table.sortedkeys, table.concat
-local backends, lpdf = backends, lpdf
-
local trace_references = false trackers.register("references.references", function(v) trace_references = v end)
local trace_destinations = false trackers.register("references.destinations", function(v) trace_destinations = v end)
local trace_bookmarks = false trackers.register("references.bookmarks", function(v) trace_bookmarks = v end)
@@ -45,9 +51,10 @@ local settings_to_array = utilities.parsers.settings_to_array
local allocate = utilities.storage.allocate
local setmetatableindex = table.setmetatableindex
-local nodeinjections = backends.pdf.nodeinjections
-local codeinjections = backends.pdf.codeinjections
-local registrations = backends.pdf.registrations
+local pdfbackend = backends.registered.pdf
+local nodeinjections = pdfbackend.nodeinjections
+local codeinjections = pdfbackend.codeinjections
+local registrations = pdfbackend.registrations
local javascriptcode = interactions.javascripts.code
@@ -74,6 +81,7 @@ local getpos = jobpositions.getpos
local gethpos = jobpositions.gethpos
local getvpos = jobpositions.getvpos
+local lpdf = lpdf
local pdfdictionary = lpdf.dictionary
local pdfarray = lpdf.array
local pdfreference = lpdf.reference
@@ -85,21 +93,15 @@ local pdfaddtonames = lpdf.addtonames
local pdfaddtopageattributes = lpdf.addtopageattributes
local pdfrectangle = lpdf.rectangle
-local pdfflushobject
-local pdfshareobjectreference
-local pdfreserveobject
-local pdfpagereference
-local pdfdelayedobject
-local pdfregisterannotation
+local pdfflushobject = lpdf.flushobject
+local pdfshareobjectreference = lpdf.shareobjectreference
+local pdfreserveobject = lpdf.reserveobject
+local pdfpagereference = lpdf.pagereference
+local pdfdelayedobject = lpdf.delayedobject
-updaters.register("backend.update.lpdf",function()
- pdfflushobject = lpdf.flushobject
- pdfshareobjectreference = lpdf.shareobjectreference
- pdfreserveobject = lpdf.reserveobject
- pdfpagereference = lpdf.pagereference
- pdfdelayedobject = lpdf.delayedobject
- pdfregisterannotation = lpdf.registerannotation
-end)
+-- defined later on:
+
+local pdfregisterannotation
-- todo: 3dview
@@ -118,6 +120,10 @@ local pdf_named = pdfconstant("Named")
local autoprefix = "#"
local usedautoprefixes = { }
+function codeinjections.setautoprefix(prefix)
+ autoprefix = prefix ~= "" and prefix or autoprefix
+end
+
local function registerautoprefix(name)
local internal = autoprefix .. name
if usedautoprefixes[internal] == nil then
@@ -392,6 +398,8 @@ local v_minheight = variables.minheight
local v_fit = variables.fit
local v_tight = variables.tight
+local c_realpageno = tex.iscount("realpageno")
+
-- nicer is to create dictionaries and set properties but it's a bit overkill
-- The problem with the following settings is that they are guesses: we never know
@@ -472,7 +480,7 @@ end)
local function flushdestination(specification)
local names = specification.names
local view = specification.view
- local r = pdfpagereference(texgetcount("realpageno"))
+ local r = pdfpagereference(texgetcount(c_realpageno))
if (references.innermethod ~= v_name) and (view == defaultview or not view or view == "") then
r = pagedestinations[r]
else
@@ -760,6 +768,8 @@ local nofused = 0
local nofspecial = 0
local share = true
+local refobjects = { }
+
local f_annot = formatters["<< /Type /Annot %s /Rect [ %.6N %.6N %.6N %.6N ] >>"]
local f_quadp = formatters["<< /Type /Annot %s /QuadPoints [ %s ] /Rect [ %.6N %.6N %.6N %.6N ] >>"]
@@ -809,8 +819,18 @@ local function finishreference(specification)
else
specifier = f_annot(prerolled,llx,lly,urx,ury)
end
+ local objref = hashed[specifier]
+ local refatt = specification.reference
+ specification.objref = objref
nofused = nofused + 1
- return pdfregisterannotation(hashed[specifier])
+ if refatt then
+ refobjects[refatt] = objref
+ end
+ return pdfregisterannotation(objref)
+end
+
+function codeinjections.getrefobj(refatt) -- bad name but experiment anyway
+ return refobjects[refatt]
end
local function finishannotation(specification)
@@ -824,18 +844,20 @@ local function finishannotation(specification)
pdfdelayedobject(annot,objref)
else
objref = pdfdelayedobject(annot)
+ specification.objref = objref
end
nofspecial = nofspecial + 1
return pdfregisterannotation(objref)
end
-function nodeinjections.reference(width,height,depth,prerolled,mesh)
+function nodeinjections.reference(reference,width,height,depth,prerolled,mesh)
if prerolled then
if trace_references then
report_references("link: width %p, height %p, depth %p, prerolled %a",width,height,depth,prerolled)
end
return new_latelua {
action = finishreference,
+ reference = reference,
width = width,
height = height,
depth = depth,
@@ -868,15 +890,16 @@ end
local annotations = nil
-function lpdf.registerannotation(n)
+pdfregisterannotation = function(n)
if annotations then
annotations[#annotations+1] = pdfreference(n)
else
annotations = pdfarray { pdfreference(n) } -- no need to use lpdf.array cum suis
end
+ return n
end
-pdfregisterannotation = lpdf.registerannotation
+lpdf.registerannotation = pdfregisterannotation
function lpdf.annotationspecification()
if annotations then
@@ -1070,7 +1093,7 @@ end
function specials.deltapage(var,actions)
local p = tonumber(var.operation)
if p then
- p = references.checkedrealpage(p + texgetcount("realpageno"))
+ p = references.checkedrealpage(p + texgetcount(c_realpageno))
return pdflinkpage(p)
end
end
@@ -1219,31 +1242,6 @@ function executers.show(arguments)
}
end
-local pdf_movie = pdfconstant("Movie")
-local pdf_start = pdfconstant("Start")
-local pdf_stop = pdfconstant("Stop")
-local pdf_resume = pdfconstant("Resume")
-local pdf_pause = pdfconstant("Pause")
-
-local function movie_or_sound(operation,arguments)
- arguments = (type(arguments) == "table" and arguments) or settings_to_array(arguments)
- return pdfdictionary {
- S = pdf_movie,
- T = format("movie %s",arguments[1] or "noname"),
- Operation = operation,
- }
-end
-
-function executers.startmovie (arguments) return movie_or_sound(pdf_start ,arguments) end
-function executers.stopmovie (arguments) return movie_or_sound(pdf_stop ,arguments) end
-function executers.resumemovie(arguments) return movie_or_sound(pdf_resume,arguments) end
-function executers.pausemovie (arguments) return movie_or_sound(pdf_pause ,arguments) end
-
-function executers.startsound (arguments) return movie_or_sound(pdf_start ,arguments) end
-function executers.stopsound (arguments) return movie_or_sound(pdf_stop ,arguments) end
-function executers.resumesound(arguments) return movie_or_sound(pdf_resume,arguments) end
-function executers.pausesound (arguments) return movie_or_sound(pdf_pause ,arguments) end
-
function specials.action(var)
local operation = var.operation
if var.operation and operation ~= "" then
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-aux.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-aux.lmt
index 91636ad04e0..441f4cf9c3a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-aux.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-aux.lmt
@@ -11,7 +11,7 @@ local format, concat = string.format, table.concat
local utfchar, utfbyte, char = utf.char, utf.byte, string.char
local lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns
local P, C, R, S, Cc, Cs, V = lpeg.P, lpeg.C, lpeg.R, lpeg.S, lpeg.Cc, lpeg.Cs, lpeg.V
-local rshift = bit32.rshift
+----- rshift = bit32.rshift
lpdf = lpdf or { }
@@ -23,7 +23,8 @@ local cache = table.setmetatableindex(function(t,k) -- can be made weak
v = format("%04x",v)
else
v = v - 0x10000
- v = format("%04x%04x",rshift(v,10)+0xD800,v%1024+0xDC00)
+ -- v = format("%04x%04x",rshift(v,10)+0xD800,v%1024+0xDC00)
+ v = format("%04x%04x",(v >> 10) + 0xD800,v%1024+0xDC00)
end
t[k] = v
return v
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-col.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-col.lmt
index ea60e0551d8..c1499b75e4e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-col.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-col.lmt
@@ -13,35 +13,29 @@ local concat = table.concat
local round = math.round
local formatters = string.formatters
-local backends, lpdf, nodes = backends, lpdf, nodes
-
local allocate = utilities.storage.allocate
-local nodeinjections = backends.pdf.nodeinjections
-local codeinjections = backends.pdf.codeinjections
-local registrations = backends.pdf.registrations
+local pdfbackend = backends.registered.pdf
+local nodeinjections = pdfbackend.nodeinjections
+local codeinjections = pdfbackend.codeinjections
+local registrations = pdfbackend.registrations
+local nodes = nodes
local nodepool = nodes.nuts.pool
local register = nodepool.register
local setstate = nodepool.setstate
+local lpdf = lpdf
local pdfconstant = lpdf.constant
local pdfdictionary = lpdf.dictionary
local pdfarray = lpdf.array
local pdfreference = lpdf.reference
local pdfverbose = lpdf.verbose
-local pdfflushobject
-local pdfdelayedobject
-local pdfflushstreamobject
-local pdfshareobjectreference
-
-updaters.register("backend.update.lpdf",function()
- pdfflushobject = lpdf.flushobject
- pdfdelayedobject = lpdf.delayedobject
- pdfflushstreamobject = lpdf.flushstreamobject
- pdfshareobjectreference = lpdf.shareobjectreference
-end)
+local pdfflushobject = lpdf.flushobject
+local pdfdelayedobject = lpdf.delayedobject
+local pdfflushstreamobject = lpdf.flushstreamobject
+local pdfshareobjectreference = lpdf.shareobjectreference
local addtopageattributes = lpdf.addtopageattributes
local adddocumentcolorspace = lpdf.adddocumentcolorspace
@@ -553,7 +547,9 @@ end
lpdf.color = lpdfcolor
interfaces.implement {
- name = "lpdf_color",
+ name = "pdfcolor",
+ public = true,
+ untraced = true,
actions = { lpdfcolor, context },
arguments = "integer"
}
@@ -585,7 +581,7 @@ function lpdf.pdfcolor(attribute) -- bonus, for pgf and friends
return lpdfcolor(1,attribute)
end
-function lpdf.transparency(ct,default) -- kind of overlaps with transparencycode
+local function lpdftransparency(ct,default) -- kind of overlaps with transparencycode
-- beware, we need this hack because normally transparencies are not
-- yet registered and therefore the number is not not known ... we
-- might use the attribute number itself in the future
@@ -601,6 +597,8 @@ function lpdf.transparency(ct,default) -- kind of overlaps with transparencycode
end
end
+lpdf.transparency = lpdftransparency
+
function lpdf.colorvalue(model,ca,default)
local cv = colorsvalue(ca)
if cv then
@@ -673,11 +671,10 @@ end
-- by registering we getconversion for free (ok, at the cost of overhead)
local intransparency = false
-local pdfcolor = lpdf.color
function lpdf.rgbcode(model,r,g,b)
if colors.supported then
- return pdfcolor(model,registercolor(nil,'rgb',r,g,b))
+ return lpdfcolor(model,registercolor(nil,'rgb',r,g,b))
else
return ""
end
@@ -685,7 +682,7 @@ end
function lpdf.cmykcode(model,c,m,y,k)
if colors.supported then
- return pdfcolor(model,registercolor(nil,'cmyk',c,m,y,k))
+ return lpdfcolor(model,registercolor(nil,'cmyk',c,m,y,k))
else
return ""
end
@@ -693,7 +690,7 @@ end
function lpdf.graycode(model,s)
if colors.supported then
- return pdfcolor(model,registercolor(nil,'gray',s))
+ return lpdfcolor(model,registercolor(nil,'gray',s))
else
return ""
end
@@ -701,7 +698,7 @@ end
function lpdf.spotcode(model,n,f,d,p)
if colors.supported then
- return pdfcolor(model,registercolor(nil,'spot',n,f,d,p)) -- incorrect
+ return lpdfcolor(model,registercolor(nil,'spot',n,f,d,p)) -- incorrect
else
return ""
end
@@ -727,18 +724,12 @@ end
do
- local pdfprint, pdfcolor, pdftransparency
-
- updaters.register("backend.update.lpdf",function()
- pdfprint = lpdf.print
- pdfcolor = lpdf.color
- pdftransparency = lpdf.transparency
- end)
+ local lpdfprint = lpdf.print
local c_cache = setmetatableindex(function(t,m)
-- We inherit the outer transparency.
local v = setmetatableindex(function(t,c)
- local p = "q " .. pdfcolor(m,c)
+ local p = "q " .. lpdfcolor(m,c)
t[c] = p
return p
end)
@@ -747,10 +738,10 @@ do
end)
local t_cache = setmetatableindex(function(t,transparency)
- local p = pdftransparency(transparency)
+ local p = lpdftransparency(transparency)
local v = setmetatableindex(function(t,colormodel)
local v = setmetatableindex(function(t,color)
- local v = "q " .. pdfcolor(colormodel,color) .. " " .. p
+ local v = "q " .. lpdfcolor(colormodel,color) .. " " .. p
t[color] = v
return v
end)
@@ -761,35 +752,29 @@ do
return v
end)
- updaters.register("backend.update.lpdf",function()
-
- local vfinjectors = fonts.helpers.vfinjectors
-
- vfinjectors.pdf = function(pos_h,pos_v,packet)
- pdfprint(packet[2],packet[3])
- end
-
- vfinjectors.startcolor = function(pos_h,pos_v,packet)
- local color = type(packet) == "table" and packet[2] or packet
- if color then
- local m, c = colortoattributes(color)
- local t = transparencytoattribute(color)
- if t and t ~= unsetvalue then
- pdfprint("page", t_cache[t][m][c]) -- "q " .. pdfcolor(m,c) .. " " .. pdftransparency(t)
- else
- pdfprint("page", c_cache[m][c]) -- "q " .. pdfcolor(m,c))
- end
+ -- function codeinjections.vfliteral(pos_h,pos_v,packet)
+ -- lpdfprint(packet[2],packet[3])
+ -- end
+
+ function codeinjections.vfstartcolor(pos_h,pos_v,packet)
+ local color = type(packet) == "table" and packet[2] or packet
+ if color then
+ local m, c = colortoattributes(color)
+ local t = transparencytoattribute(color)
+ if t and t ~= unsetvalue then
+ lpdfprint("page", t_cache[t][m][c]) -- "q " .. lpdfcolor(m,c) .. " " .. lpdftransparency(t)
else
- pdfprint("page", "q")
+ lpdfprint("page", c_cache[m][c]) -- "q " .. lpdfcolor(m,c))
end
+ else
+ lpdfprint("page", "q")
end
+ end
- vfinjectors.stopcolor = function()
- -- pdfprint("text", "Q")
- pdfprint("page", "Q")
- end
-
- end)
+ function codeinjections.vfstopcolor()
+ -- lpdfprint("text", "Q")
+ lpdfprint("page", "Q")
+ end
end
@@ -797,19 +782,16 @@ end
do
- local color = lpdf.color
- local transparency = lpdf.transparency
-
local fonts = { }
lpdf.fonts = fonts
fonts.color_indirect = function(c,t)
if c and t then
- return color(1,c) .. " " .. transparency(t)
+ return lpdfcolor(1,c) .. " " .. lpdftransparency(t)
elseif c then
- return color(1,c)
+ return lpdfcolor(1,c)
elseif t then
- return transparency(t)
+ return lpdftransparency(t)
else
return false
end
@@ -818,8 +800,8 @@ do
local colors = attributes.colors
local rgbtocmyk = colors.rgbtocmyk
- local f_cmyk = formatters["%.3N %.3f %.3N %.3N k"]
- local f_rgb = formatters["%.3N %.3f %.3N rg"]
+ local f_cmyk = formatters["%.3N %.3N %.3N %.3N k"]
+ local f_rgb = formatters["%.3N %.3N %.3N rg"]
local f_gray = formatters["%.3N g"]
fonts.color_direct = function(r,g,b)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-emb.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-emb.lmt
index 4337e5931dd..f63dcf6ef75 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-emb.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-emb.lmt
@@ -38,8 +38,6 @@ local format = string.format
local concat, sortedhash, sort = table.concat, table.sortedhash, table.sort
local utfchar = utf.char
local random, round, max, abs, ceiling = math.random, math.round, math.max, math.abs, math.ceiling
-local extract, lshift, rshift, band, bor = bit32.extract, bit32.lshift, bit32.rshift, bit32.band, bit32.bor
-local idiv = number.idiv
local setmetatableindex = table.setmetatableindex
local pdfnull = lpdf.null
@@ -49,15 +47,9 @@ local pdfconstant = lpdf.constant
local pdfstring = lpdf.string
local pdfreference = lpdf.reference
-local pdfreserveobject
-local pdfflushobject
-local pdfflushstreamobject
-
-updaters.register("backend.update.lpdf",function()
- pdfreserveobject = lpdf.reserveobject
- pdfflushobject = lpdf.flushobject
- pdfflushstreamobject = lpdf.flushstreamobject
-end)
+local pdfreserveobject = lpdf.reserveobject
+local pdfflushobject = lpdf.flushobject
+local pdfflushstreamobject = lpdf.flushstreamobject
local report_fonts = logs.reporter("backend","fonts")
@@ -68,7 +60,8 @@ local dimenfactors = number.dimenfactors
local bpfactor = dimenfactors.bp
local ptfactor = dimenfactors.pt
-trackers.register("backend.pdf.fonts",function(v) trace_fonts = v end)
+trackers.register("backend.fonts", function(v) trace_fonts = v end)
+trackers.register("backend.fonts.details",function(v) trace_details = v end)
local readers = fonts.handlers.otf.readers
local getinfo = readers.getinfo
@@ -82,37 +75,47 @@ local getmapentry = fonts.mappings.getentry
-- needs checking: signed vs unsigned
+-- todo: use streams.tocardinal4 etc
+
local tocardinal1 = char
local function tocardinal2(n)
- return char(extract(n,8,8),extract(n,0,8))
+ -- return char(extract8(n,8),extract8(n,0))
+ return char((n>>8)&0xFF,(n>>0)&0xFF)
end
local function tocardinal3(n)
- return char(extract(n,16,8),extract(n,8,8),extract(n,0,8))
+ -- return char(extract8(n,16),extract8(n,8),extract8(n,0))
+ return char((n>>16)&0xFF,(n>>8)&0xFF,(n>>0)&0xFF)
end
local function tocardinal4(n)
- return char(extract(n,24,8),extract(n,16,8),extract(n,8,8),extract(n,0,8))
+ -- return char(extract8(n,24),extract8(n,16),extract8(n,8),extract8(n,0))
+ return char((n>>24)&0xFF,(n>>16)&0xFF,(n>>8)&0xFF,(n>>0)&0xFF)
end
local function tointeger2(n)
- return char(extract(n,8,8),extract(n,0,8))
+ -- return char(extract8(n,8),extract8(n,0))
+ return char((n>>8)&0xFF,(n>>0)&0xFF)
end
local function tointeger3(n)
- return char(extract(n,16,8),extract(n,8,8),extract(n,0,8))
+ -- return char(extract8(n,16),extract8(n,8),extract8(n,0))
+ return char((n>>16)&0xFF,(n>>8)&0xFF,(n>>0)&0xFF)
end
local function tointeger4(n)
- return char(extract(n,24,8),extract(n,16,8),extract(n,8,8),extract(n,0,8))
+ -- return char(extract8(n,24),extract8(n,16),extract8(n,8),extract8(n,0))
+ return char((n>>24)&0xFF,(n>>16)&0xFF,(n>>8)&0xFF,(n>>0)&0xFF)
end
local function tocardinal8(n)
- local l = idiv(n,0x100000000)
+ local l = n // 0x100000000
local r = n % 0x100000000
- return char(extract(l,24,8),extract(l,16,8),extract(l,8,8),extract(l,0,8),
- extract(r,24,8),extract(r,16,8),extract(r,8,8),extract(r,0,8))
+ -- return char(extract8(l,24) & 0xFF,extract8(l,16) & 0xFF,extract8(l,8) & 0xFF,extract8(l,0) & 0xFF,
+ -- extract8(r,24) & 0xFF,extract8(r,16) & 0xFF,extract8(r,8) & 0xFF,extract8(r,0) & 0xFF)
+ return char((l>>24)&0xFF,(l>>16)&0xFF,(l>>8)&0xFF,(l>>0)&0xFF,
+ (r>>24)&0xFF,(r>>16)&0xFF,(r>>8)&0xFF,(r>>0)&0xFF)
end
-- A couple of shared helpers.
@@ -130,7 +133,7 @@ do
local tounicode = fonts.mappings.tounicode
-local tounicode_template = [[
+local tounicode_template <const> = [[
%%!PS-Adobe-3.0 Resource-CMap
%%%%DocumentNeededResources: ProcSet (CIDInit)
%%%%IncludeResource: ProcSet (CIDInit)
@@ -176,7 +179,7 @@ end
if unicode then
unicode = tounicode(unicode)
else
- unicode = "FFFD"
+ unicode = "FFFD" -- wide only
end
mapping[length] = f_mapping(index,unicode)
end
@@ -189,11 +192,11 @@ end
return blob
end
- widtharray = function(details,indices,maxindex,units)
+ widtharray = function(details,indices,maxindex,units,correction)
local widths = pdfarray()
- local length = 0
- local factor = 10000 / units
if maxindex > 0 then
+ local length = 0
+ local factor = 10000 / (units * (correction or 1))
local lastindex = -1
local sublist = nil
for index=1,maxindex do
@@ -201,8 +204,10 @@ end
if data then
local width = data.width -- hm, is inaccurate for cff, so take from elsewhere
if width then
- -- width = round(width * 10000 / units) / 10
- width = round(width * factor) / 10
+ if correction then
+ -- width = round(width * 10000 / units) / 10
+ width = round(width * factor) / 10
+ end
else
width = 0
end
@@ -226,42 +231,61 @@ end
return widths
end
- collectindices = function(descriptions,indices)
+ -- we need to go through indices because descriptions can be different (take
+ -- basemode remappings)
+
+ collectindices = function(descriptions,indices,used,hash)
local minindex = 0xFFFF
local maxindex = 0
local reverse = { }
- -- todo: already at definition time trigger copying streams
- -- and add extra indices ... first i need a good example of
- -- a clash
- -- for unicode, data in next, descriptions do
- -- local i = data.index or unicode
- -- if reverse[i] then
- -- print("CLASH")
- -- else
- -- reverse[i] = data
- -- end
- -- end
+ local copies = { }
+ local include = { }
+ local resolved = { }
+
+ setmetatable(used,nil) -- prevent more index allocations
for unicode, data in next, descriptions do
- reverse[data.index or unicode] = data
+ local index = data.index
+ reverse[index or unicode] = data
+ if used[index] and data.dupindex then
+ copies[index] = data.dupindex
+ end
end
- for index in next, indices do
- if index > maxindex then
- maxindex = index
+ for index, usedindex in next, indices do
+ if usedindex > maxindex then
+ maxindex = usedindex
end
- if index < minindex then
- minindex = index
+ if usedindex < minindex then
+ minindex = usedindex
end
- indices[index] = reverse[index]
+ include[usedindex] = copies[index] or index
+ resolved[usedindex] = reverse[index]
end
if minindex > maxindex then
minindex = maxindex
end
- return indices, minindex, maxindex
+ if trace_details then
+ report_fonts("embedded: hash %a, minindex %i, maxindex %i",hash,minindex,maxindex)
+ for k, v in sortedhash(include) do
+ local d = resolved[k]
+ if d.dupindex then
+ report_fonts(" 0x%04X : 0x%04X (duplicate 0x%05X)",k,v,d.index)
+ else
+ report_fonts(" 0x%04X : 0x%04X",k,v)
+ end
+ end
+ end
+ return resolved, include, minindex, maxindex
end
includecidset = false
forcecidset = false -- for private testing only
+ function lpdf.setincludecidset(v)
+ -- incredible ... it's obselete, no viewer needs it so why still this crap
+ -- so in the end it had to be introduced again
+ includecidset = v
+ end
+
directives.register("backend.pdf.forcecidset",function(v)
forcecidset = v
end)
@@ -269,16 +293,16 @@ end
tocidsetdictionary = function(indices,min,max)
if includecidset or forcecidset then
local b = { }
- local m = idiv(max+7,8)
+ local m = (max + 7) // 8
for i=0,max do
b[i] = 0
end
- b[0] = bor(b[0],lshift(1,7)) -- force notdef into the file
+ b[0] = b[0] | (1 << 7) -- force notdef into the file
for i=min,max do
if indices[i] then
- local bi = idiv(i,8)
+ local bi = i // 8
local ni = i % 8
- b[bi] = bor(b[bi],lshift(1,7-ni))
+ b[bi] = b[bi] | (1 << (7-ni))
end
end
b = char(unpack(b,0,#b))
@@ -425,7 +449,7 @@ do
"fullname", "postscriptname",
}
- local template = [[
+ local template <const> = [[
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
@@ -473,12 +497,12 @@ do
local i = 1
local k = 0
while i <= count do
- i = lshift(i,1)
+ i = i << 1
k = k + 1
end
- local searchrange = lshift(i,3)
+ local searchrange = i << 3
local entryselector = k - 1
- local rangeshift = lshift(count,4) - lshift(i,3)
+ local rangeshift = (count << 4) - (i << 3)
local index = {
tocardinal4(0x00010000), -- tables.version
tocardinal2(count),
@@ -495,7 +519,7 @@ do
if data then
local csum = checksum(data)
local dlength = #data
- local length = idiv(dlength+3,4) * 4
+ local length = ((dlength + 3) // 4) * 4
local padding = length - dlength
nl = nl + 1 ; list[nl] = data
for i=1,padding do
@@ -694,8 +718,9 @@ do
local indices = details.indices
local metabbox = { fontheader.xmin, fontheader.ymin, fontheader.xmax, fontheader.ymax }
local indices,
+ include,
minindex,
- maxindex = collectindices(descriptions,indices)
+ maxindex = collectindices(descriptions,indices,details.used,details.hash)
local glyphstreams = tablecreators.glyf(fontfile)
local locations = tablecreators.loca(fontfile)
local horizontals = tablecreators.hmtx(fontfile)
@@ -728,7 +753,7 @@ do
report_fonts("missing .notdef in font %a",basefontname)
end
-- todo: use a rep for h/v
- for index=1,minindex-1 do
+ for index=1,minindex-1 do -- no needed in new low range
locations[index] = lastoffset
h = h + 1 ; horizontals[h] = zero4
if vertical then
@@ -736,18 +761,19 @@ do
end
end
end
+
for index=minindex,maxindex do
locations[index] = lastoffset
local data = indices[index]
if data then
- local blob = blobs[index] -- we assume padding
+ local blob = blobs[include[index]] -- we assume padding
if blob and #blob > 0 then
g = g + 1 ; glyphstreams[g] = blob
- h = h + 1 ; horizontals [h] = tocardinal2(data.width or 0)
- h = h + 1 ; horizontals [h] = tocardinal2(data.boundingbox[1])
+ h = h + 1 ; horizontals [h] = tocardinal2(round(data.width or 0))
+ h = h + 1 ; horizontals [h] = tocardinal2(round(data.boundingbox[1]))
if vertical then
- v = v + 1 ; verticals[v] = tocardinal2(data.height or 0)
- v = v + 1 ; verticals[v] = tocardinal2(data.boundingbox[3])
+ v = v + 1 ; verticals[v] = tocardinal2(round(data.height or 0)) -- how about depth
+ v = v + 1 ; verticals[v] = tocardinal2(round(data.boundingbox[3]))
end
streamoffset = streamoffset + #blob
lastoffset = tocardinal4(streamoffset)
@@ -765,6 +791,7 @@ do
end
end
end
+
locations[maxindex+1] = lastoffset -- cf spec
--
local nofglyphs = maxindex + 1 -- include zero
@@ -799,7 +826,7 @@ do
--
local units = metadata.units
local basefont = pdfconstant(basefontname)
- local widths = widtharray(details,indices,maxindex,units)
+ local widths = widtharray(details,indices,maxindex,units,1)
local object = details.objectnumber
local tounicode = tounicodedictionary(details,indices,maxindex,basefontname,true)
local tocidset = tocidsetdictionary(indices,minindex,maxindex)
@@ -846,6 +873,7 @@ do
FontName = basefont,
Flags = 4,
FontBBox = fontbbox,
+-- FontMatrix = pdfarray { 0.001, 0, 0, 0.001, 0, 0 },
Ascent = scale(ascender),
Descent = scale(descender),
ItalicAngle = round(italicangle or 0),
@@ -853,7 +881,7 @@ do
StemV = scale(stemv),
XHeight = scale(xheight),
FontFile2 = pdfreference(pdfflushstreamobject(fontdata)),
- CIDSet = tocidset,
+ CIDSet = tocidset, -- no longer needed but verifyers want it
Metadata = fontmeta and pdfreference(pdfflushstreamobject(fontmeta)) or nil,
}
local parent = pdfdictionary {
@@ -905,21 +933,21 @@ do
todictinteger = function(n)
if not n then
- return char(band(139,0xFF))
+ return char(139 & 0xFF)
elseif n >= -107 and n <= 107 then
- return char(band(n + 139,0xFF))
+ return char((n + 139) & 0xFF)
elseif n >= 108 and n <= 1131 then
n = 0xF700 + n - 108
- return char(band(rshift(n,8),0xFF),band(n,0xFF))
+ return char((n >> 8) & 0xFF, n & 0xFF)
elseif n >= -1131 and n <= -108 then
n = 0xFB00 - n - 108
- return char(band(rshift(n,8),0xFF),band(n,0xFF))
+ return char((n >> 8) & 0xFF, n & 0xFF)
elseif n >= -32768 and n <= 32767 then
- -- return int2tag .. tointeger2(n)
- return char(28,extract(n,8,8),extract(n,0,8))
+ -- return char(28,extract8(n,8),extract8(n,0))
+ return char(28,(n>>8)&0xFF,(n>>0)&0xFF)
else
- -- return int4tag .. tointeger4(n)
- return char(29,extract(n,24,8),extract(n,16,8),extract(n,8,8),extract(n,0,8))
+ -- return char(29,extract8(n,24&0xFF,extract8(n,16),extract8(n,8),extract8(n,0))
+ return char(29,(n>>24)&0xFF,(n>>16)&0xFF,(n>>8)&0xFF,(n>>0)&0xFF)
end
end
@@ -933,11 +961,11 @@ do
-- elseif n >= -1131 and n <= 1131 then
-- return encoder[n]
-- elseif n >= -32768 and n <= 32767 then
- -- -- return int2tag .. tointeger2(n)
- -- return char(28,extract(n,8,8),extract(n,0,8))
+ -- -- return char(28,extract8(n,8),extract8(n,0))
+ -- return char(28,(n>>8)&0xFF,(n>>0)&0xFF)
-- else
- -- -- return int4tag .. tointeger4(n)
- -- return char(29,extract(n,24,8),extract(n,16,8),extract(n,8,8),extract(n,0,8))
+ -- -- return char(29,extract8(n,24),extract8(n,16),extract8(n,8),extract8(n,0))
+ -- return char(29,(n>>24)&0xFF,(n>>16)&0xFF,(n>>8)&0xFF,(n>>0)&0xFF)
-- end
-- end
@@ -945,7 +973,6 @@ do
return int4tag .. tointeger4(n)
end
- local e = false
local z = byte("0")
local dp = 10
local ep = 11
@@ -959,6 +986,7 @@ do
local s = fg(v)
local t = { [0] = realtag }
local n = 0
+ local e = false
for s in gmatch(s,".") do
if s == "e" or s == "E" then
e = true
@@ -1001,6 +1029,73 @@ do
return t
end
+ -- -- An alternative
+ --
+ -- local fg = formatters["%0.14gE%i"]
+ --
+ -- todictreal = function(v)
+ -- local E = 0
+ -- if v >= 10.0 then
+ -- while v >= 10.0 do
+ -- v = v / 10.0
+ -- E = E + 1
+ -- end
+ -- elseif v < 1.0 then
+ -- while v < 1.0 do
+ -- v = v * 10.0
+ -- E = E - 1
+ -- end
+ -- end
+ -- local s = fg(v,E)
+ -- local t = { [0] = realtag }
+ -- local n = 0
+ -- local e = false
+ -- for s in gmatch(s,".") do
+ -- if s == "e" or s == "E" then
+ -- e = true
+ -- elseif s == "+" then
+ -- -- skip
+ -- elseif s == "-" then
+ -- n = n + 1
+ -- if e then
+ -- t[n] = em
+ -- e = false
+ -- else
+ -- t[n] = mn
+ -- end
+ -- else
+ -- if e then
+ -- n = n + 1
+ -- t[n] = ep
+ -- e = false
+ -- end
+ -- n = n + 1
+ -- if s == "." then
+ -- t[n] = dp
+ -- else
+ -- t[n] = byte(s) - z
+ -- end
+ -- end
+ -- end
+ -- n = n + 1
+ -- t[n] = es
+ -- if (n % 2) ~= 0 then
+ -- n = n + 1
+ -- t[n] = es
+ -- end
+ -- local j = 0
+ -- for i=1,n,2 do
+ -- j = j + 1
+ -- t[j] = char(t[i]*0x10+t[i+1])
+ -- end
+ -- -- print(v,s)
+ -- -- for i=0,j do
+ -- -- print(string.format("%02X",utf.byte(t[i])))
+ -- -- end
+ -- t = concat(t,"",0,j)
+ -- return t
+ -- end
+
todictnumber = function(n)
if not n or n == 0 then
return todictinteger(0)
@@ -1037,7 +1132,8 @@ do
local function todictdeltas(t)
local r = { }
for i=1,#t do
- r[i] = todictnumber(t[i]-(t[i-1] or 0))
+-- r[i] = todictnumber(t[i]-(t[i-1] or 0))
+ r[i] = todictnumber(t[i]+(t[i-1] or 0))
end
return concat(r)
end
@@ -1114,7 +1210,7 @@ do
--
local charstrings = fontfile.charstrings
local nofglyphs = #charstrings + 1
- local fontmatrix = { 0.001, 0, 0, 0.001, 0, 0 } -- todo
+-- local fontmatrix = { 0.001, 0, 0, 0.001, 0, 0 } -- todo
local fontbbox = fontfile.fontbbox
local defaultwidth = cffinfo.defaultwidth or 0
local nominalwidth = cffinfo.nominalwidth or 0
@@ -1127,6 +1223,8 @@ do
local bluefuzz = cffinfo.bluefuzz
local stdhw = cffinfo.stdhw
local stdvw = cffinfo.stdvw
+ local stemsnaph = cffinfo.stemsnaph
+ local stemsnapv = cffinfo.stemsnapv
--
if defaultwidth == 0 then defaultwidth = nil end
if nomimalwidth == 0 then nominalwidth = nil end
@@ -1137,8 +1235,10 @@ do
if bluescale then bluescale = todictnumber(bluescale) end
if blueshift then blueshift = todictnumber(blueshift) end
if bluefuzz then bluefuzz = todictnumber(bluefuzz) end
- if stdhw then stdhw = todictdeltas(stdhw) end
- if stdvw then stdvw = todictdeltas(stdvw) end
+ if stemsnaph then stemsnaph = todictarray(stemsnaph) end
+ if stemsnapv then stemsnapv = todictarray(stemsnapv) end
+ if stdhw then stdhw = todictnumber(stdhw) end
+ if stdvw then stdvw = todictnumber(stdvw) end
--
local fontversion = todictstring(fontfile,fontheader.fontversion or "uknown version")
local familyname = todictstring(fontfile,cffinfo.familyname or names.family or basefontname)
@@ -1151,7 +1251,7 @@ do
local underlineposition = todictnumber(cffinfo.underlineposition)
local underlinethickness = todictnumber(cffinfo.underlinethickness)
local charstringtype = todictnumber(2)
- local fontmatrix = todictarray(fontmatrix)
+-- local fontmatrix = todictarray(fontmatrix)
local ros = todictstring(fontfile,"Adobe") -- registry
.. todictstring(fontfile,"Identity") -- identity
.. todictnumber(0) -- supplement
@@ -1165,18 +1265,21 @@ do
--
local defaultwidthx = todictnumber(defaultwidth)
local nominalwidthx = todictnumber(nominalwidth)
+ -- the order of the blues is important!
local private = ""
- .. (defaultwidthx and (defaultwidthx .. todictkey(20)) or "")
- .. (nominalwidthx and (nominalwidthx .. todictkey(21)) or "")
- .. (bluevalues and (bluevalues .. todictkey(6)) or "")
- .. (otherblues and (otherblues .. todictkey(7)) or "")
- .. (familyblues and (familyblues .. todictkey(8)) or "")
- .. (familyotherblues and (familyotherblues .. todictkey(9)) or "")
- .. (bluescale and (bluescale .. todictkey(12,9)) or "")
- .. (blueshift and (blueshift .. todictkey(12,10)) or "")
- .. (bluefuzz and (bluefuzz .. todictkey(12,11)) or "")
- .. (stdhw and (stdhw .. todictkey(12,12)) or "")
- .. (stdvw and (stdvw .. todictkey(12,13)) or "")
+ .. (bluevalues and (bluevalues .. todictkey( 6)) or "")
+ .. (otherblues and (otherblues .. todictkey( 7)) or "")
+ .. (familyblues and (familyblues .. todictkey( 8)) or "")
+ .. (familyotherblues and (familyotherblues .. todictkey( 9)) or "")
+ .. (bluescale and (bluescale .. todictkey(12, 9)) or "")
+ .. (blueshift and (blueshift .. todictkey(12,10)) or "")
+ .. (bluefuzz and (bluefuzz .. todictkey(12,11)) or "")
+ .. (stdhw and (stdhw .. todictkey(10)) or "")
+ .. (stdvw and (stdvw .. todictkey(11)) or "")
+ .. (stemsnaph and (stemsnaph .. todictkey(12,12)) or "")
+ .. (stemsnapv and (stemsnapv .. todictkey(12,13)) or "")
+ .. (defaultwidthx and (defaultwidthx .. todictkey(20)) or "")
+ .. (nominalwidthx and (nominalwidthx .. todictkey(21)) or "")
local privatesize = todictnumber(#private)
local privatespec = privatesize .. privateoffset
--
@@ -1219,7 +1322,7 @@ do
.. underlineposition .. todictkey(12, 3)
.. underlinethickness .. todictkey(12, 4)
.. charstringtype .. todictkey(12, 6)
- .. fontmatrix .. todictkey(12, 7)
+-- .. fontmatrix .. todictkey(12, 7)
.. strokewidth .. todictkey(12, 8)
.. topvars
}
@@ -1246,6 +1349,10 @@ do
--
-- fdselect
--
+ -- see printer mail thread / experiments with Leah Neukirchen: some printers
+ -- (probaby with an old GS on board) need this matrix because oitherwise they
+ -- accumulate the top one (resulting in very tiny invisible results)
+ --
local fdselect =
tocardinal1(3) -- format
.. tocardinal2(1) -- n of ranges
@@ -1253,7 +1360,7 @@ do
.. tocardinal2(0) -- first gid
.. tocardinal1(0) -- fd index
-- entry 2
--- .. tocardinal2(fontfile.sparsemax-1) -- sentinel
+ -- .. tocardinal2(fontfile.sparsemax-1) -- sentinel
.. tocardinal2(fontfile.sparsemax) -- sentinel
--
fdselectoffset = todictoffset(offset)
@@ -1275,8 +1382,8 @@ do
offset = writestring(target,private,offset,"private")
--
local fdarray = {
- fontname .. todictkey(12,38)
- .. privatespec .. todictkey(18)
+ fontname .. todictkey(12,38)
+ .. privatespec .. todictkey(18) -- case 1
}
fdarrayoffset = todictoffset(offset)
offset = writeindex(target,fdarray,offset,"fdarray")
@@ -1288,19 +1395,18 @@ do
.. charsetoffset .. todictkey(15)
.. fdarrayoffset .. todictkey(12,36)
.. fdselectoffset .. todictkey(12,37)
- .. privatespec .. todictkey(18)
+ .. privatespec .. todictkey(18) -- case 2
target[dictof] = topdict .. topvars
--
target = concat(target)
-- if trace_details then
- -- local name = "temp.cff"
- -- report_fonts("saving %a",name)
- -- io.savedata(name,target)
- -- inspect(fonts.handlers.otf.readers.cffcheck(name))
+ -- local name = "temp.cff"
+ -- report_fonts("saving %a",name)
+ -- io.savedata(name,target)
+ -- inspect(fonts.handlers.otf.readers.cffcheck(name))
-- end
return target
end
-
end
-- todo: check widths (missing a decimal)
@@ -1313,31 +1419,85 @@ do
local blobs = streams.streams
local fontheader = streams.fontheader
local maximumprofile = streams.maximumprofile
- local names = streams.names
+ local names = streams.names -- not used
local descriptions = details.rawdata.descriptions
local metadata = details.rawdata.metadata
local indices = details.indices
+ local used = details.used
+ local usedfonts = details.usedfonts -- in case of multiple loaded t1 fonts with no common description
local metabbox = { fontheader.xmin, fontheader.ymin, fontheader.xmax, fontheader.ymax }
local correction = 1
-
- -- (*) We share code with type1 and when we have old school tfm with
- -- pfb but without descriptions we're kind of toast.
-
if not descriptions or not next(descriptions) then
- -- This is good enough, we only need indices and widths.
- descriptions = details.fontdata.characters
- -- This is a hack, we have no basepoints.
- correction = details.fontdata.parameters.size / 1000
- -- And this needs checking.
- correction = correction * bpfactor / ptfactor
- metadata = { }
+ -- (*) We share code with type1 and when we have old school tfm with pfb shapes
+ -- we don't have descriptions, so we need to construct these. This could be done
+ -- earlier but then we lack info about sharing. Horrible hackery. If Type1 wasn't
+ -- obsolete I'd make a dedicated mainwriter that does the index and width collect
+ -- more efficient but there is no gain now.
+ if true then
+ descriptions = { }
+ setmetatable(indices,nil)
+ setmetatable(used,nil)
+ for u in next, usedfonts do
+ local param = fonts.hashes.parameters[u]
+ local chars = fonts.hashes.characters[u]
+ local units = 1000 -- to be checked (picked up)
+ correction = param.size / 1000
+ -- correction = correction * bpfactor / ptfactor
+ local factor = 1000 / (units * correction)
+ if false then
+-- if true then
+ for k, v in sortedhash(chars) do
+ if descriptions[k] then
+ local w1 = descriptions[k].width
+ local w2 = round((v.advance or v.width or 0) * factor)
+ if w1 ~= w2 then
+ local w = v.advance or v.width or 0
+ print(
+ u,k,utf.char(k),
+ w1,w2,
+ ((v.advance or v.width or 0)*param.designsize/param.size) / 1000
+ )
+ end
+ else
+ descriptions[k] = {
+ index = v.index,
+ width = round((v.advance or v.width or 0) * factor),
+ unicode = v.unicode,
+ }
+ end
+ end
+ else
+ for k, v in next, chars do
+ if descriptions[k] then
+ -- done
+ else
+ local index = v.index
+ if indices[index] or used[index] then -- play safe
+ descriptions[k] = {
+ index = index,
+ width = round((v.advance or v.width or 0) * factor),
+ unicode = v.unicode,
+ }
+ end
+ end
+ end
+ end
+ end
+ correction = false
+ else
+ -- This is tricky as it can be the wrong one and incomplete so a first come
+ -- and go issue. The basepoint correction needs checking.
+ descriptions = details.fontdata.characters
+ correction = details.fontdata.parameters.size / 1000
+ correction = correction * bpfactor / ptfactor
+ end
+ metadata = { }
end
-
--
-
local indices,
+ include,
minindex,
- maxindex = collectindices(descriptions,indices)
+ maxindex = collectindices(descriptions,indices,used,details.hash)
local streamoffset = 0
local glyphstreams,
charmappings = tablecreators.cff(fontfile)
@@ -1357,9 +1517,14 @@ do
if minindex == 0 then
minindex = 1
end
+ --
for index=minindex,maxindex do
- if indices[index] then
- local blob = blobs[index] or "\14"
+ local idx = include[index]
+ if idx then
+ local blob = blobs[idx]
+ if not blob then
+ blob = "\14"
+ end
sparsemax = sparsemax + 1
glyphstreams[sparsemax] = blob
charmappings[sparsemax] = tocardinal2(index)
@@ -1379,10 +1544,16 @@ do
--
fontfile = closefontfile(fontfile)
--
- local units = fontheader.units or metadata.units
-
+ local units = fontheader.units or metadata.units
+ if units ~= 1000 then
+ -- maybe only otf
+ -- public sans has 2000 so we need to mess different from e.g. ttf
+ report_fonts("width units in %a are %i, forcing 1000 instead",basefontname,units)
+ units = 1000
+ end
+ --
local basefont = pdfconstant(basefontname)
- local widths = widtharray(details,indices,maxindex,units * correction)
+ local widths = widtharray(details,indices,maxindex,units,correction)
local object = details.objectnumber
local tounicode = tounicodedictionary(details,indices,maxindex,basefontname,true)
local tocidset = tocidsetdictionary(indices,minindex,maxindex)
@@ -1396,7 +1567,7 @@ do
if stemv then
stemv = (stemv/65)^2 + 50
else
--- stemv = 2
+ -- stemv = 2
end
--
local function scale(n)
@@ -1431,6 +1602,7 @@ do
FontName = basefont,
Flags = 4,
FontBBox = fontbbox,
+-- FontMatrix = pdfarray { 0.001, 0, 0, 0.001, 0, 0 },
Ascent = scale(ascender),
Descent = scale(descender),
ItalicAngle = round(italicangle or 0),
@@ -1502,7 +1674,7 @@ do
local f_image_w = formatters["%.6N 0 d0 %s"]
local f_image_d = formatters["%.6N 0 d0 1 0 0 1 0 %.6N cm /%s Do"]
local f_stream = formatters["%.6N 0 d0 %s"]
- local f_stream_c = formatters["%.6N 0 0 0 0 0 d1 %s"]
+ local f_stream_c = formatters["%.6N 0 0 0 0 0 d1 %s"] -- last four bbox
local f_stream_d = formatters["%.6N 0 d0 1 0 0 1 0 %.6N cm %s"]
-- local f_stream_s = formatters["%.6N 0 0 %.6N 0 0 cm /%s Do"]
@@ -1522,7 +1694,7 @@ do
-- pk inclusion (not really tested but not really used either)
function methods.pk(filename)
- local pkfullname = resolvers.findpk(basedfontname,resolution)
+ local pkfullname = resolvers.findpk(filename,resolution)
if not pkfullname or pkfullname == "" then
return
end
@@ -1619,6 +1791,7 @@ do
local xforms = pdfdictionary()
local nofglyphs = 0
local scale = 10 * details.parameters.size/details.parameters.designsize
+ scale = scale * (7200/7227) -- test on extensibles
local units = details.parameters.units
local function boxtopdf(image,data) -- image == glyph
nofglyphs = nofglyphs + 1
@@ -1781,6 +1954,47 @@ do
end
end
+ local function registercolors(hash)
+ local kind = hash.kind
+ local data = hash.data
+ local direct = lpdf.fonts.color_direct
+ local indirect = lpdf.fonts.color_indirect
+ if kind == "font" then
+ return setmetatableindex(function(t,k)
+ local h = data[k]
+ local v = h and direct(h[1]/255,h[2]/255,h[3]/255) or false
+ t[k] = v
+ return v
+ end)
+ elseif kind == "user" then
+ return setmetatableindex(function(t,k)
+ local list = data[k]
+ local v
+ if list then
+ local kind = list.kind
+ if kind == "values" then
+ local d = list.data
+ v = direct(d.r or 0,d.g or 0,d.b or 0)
+ elseif kind == "attributes" then
+ v = indirect(list.color,list.transparency)
+ else
+ v = false -- textcolor
+ end
+ else
+ v = false -- textcolor
+ end
+ t[k] = v
+ return v
+ end)
+ else
+ return { }
+ end
+ end
+
+ -- we register way too much ... we can delay the t3 definition
+
+ local usedcharacters = lpdf.usedcharacters
+
function methods.color(filename,details)
local colrshapes = details.properties.indexdata[1]
local colrvalues = details.properties.indexdata[2]
@@ -1793,26 +2007,35 @@ do
local dropid = dropdata.properties.id
local dropunits = dropdata.parameters.units -- shared
local descriptions = dropdata.descriptions
+ local directcolors = registercolors(colrvalues)
+ local fontslots = usedcharacters[dropid]
usedfonts[dropid] = dropid
local w = description.width or 0
local s = #colorlist
- local l = nil
+ local l = false
local t = { f_width(w) }
local n = 1
- local d = colrvalues[#colrvalues]
+ local d = #colrvalues
for i=1,s do
local entry = colorlist[i]
- local v = colrvalues[entry.class] or d
- if v and l ~= v then
- n = n + 1 ; t[n] = v
- l = v
+ local class = entry.class or d
+ if class then
+ -- false is textcolor (we should actually go back)
+ local c = directcolors[class]
+ if c and l ~= c then
+ n = n + 1 ; t[n] = c
+ l = c
+ end
end
local e = descriptions[entry.slot]
if e then
- n = n + 1 ; t[n] = f_char(dropid,e.index)
+ n = n + 1 ; t[n] = f_char(dropid,fontslots[e.index])
end
end
- return concat(t," "), w / dropunits
+ -- we're not going to hash this ... could be done if needed (but who mixes different
+ -- color schemes ...)
+ t = concat(t," ")
+ return t, w / dropunits
end
end
local function getresources()
@@ -1833,7 +2056,7 @@ do
if not method then
return
end
- local glyphs, scalefactor, glyphtopdf, reset, getresources = method(basedfontname,details)
+ local glyphs, scalefactor, glyphtopdf, reset, getresources = method(basefontname,details)
if not glyphs then
return
end
@@ -1842,8 +2065,9 @@ do
local factor = parameters.factor -- normally 1
local fontmatrix = pdfarray { scalefactor, 0, 0, scalefactor, 0, 0 }
local indices,
+ include,
minindex,
- maxindex = collectindices(details.fontdata.characters,details.indices)
+ maxindex = collectindices(details.fontdata.characters,details.indices,details.used,details.hash)
local widths = pdfarray()
local differences = pdfarray()
local charprocs = pdfdictionary()
@@ -1873,7 +2097,7 @@ do
for index, data in sortedhash(indices) do
local name = f_index(index)
- local glyph = glyphs[index]
+ local glyph = glyphs[include[index]]
if glyph then
local stream, width = glyphtopdf(glyph,data)
if stream then
@@ -1951,7 +2175,7 @@ local loadstreamdata = fonts.handlers.otf.loadstreamdata
-- we can actually now number upwards (so not use fontid in /F)
-local objects = setmetatableindex(function(t,k)
+local objects = setmetatableindex(lpdf.usedfontobjects,function(t,k) -- defined in lpdf-lmt.lmt
local v
if type(k) == "number" then
local h = getstreamhash(k)
@@ -1974,7 +2198,7 @@ end)
local n = 0
-local names = setmetatableindex(function(t,k)
+local names = setmetatableindex(lpdf.usedfontnames,function(t,k) -- defined in lpdf-lmt.lmt
local v
if type(k) == "number" then
local h = getstreamhash(k)
@@ -1998,6 +2222,13 @@ function lpdf.flushfonts()
statistics.starttiming(objects)
+ -- We loop over used characters (old approach, when we wanted to be equivalent wrt
+ -- indices with luatex) but can also decide to use usedindices. However, we then
+ -- don't have the id.
+
+ -- we can combine the two for loops .. todo
+-- inspect(lpdf.usedcharacters)
+
for fontid, used in sortedhash(lpdf.usedcharacters) do
-- for a bitmap we need a different hash unless we stick to a fixed high
@@ -2012,6 +2243,7 @@ function lpdf.flushfonts()
local resources = fontdata.resources
local properties = fontdata.properties -- writingmode and type3
local parameters = fontdata.parameters -- used in type3
+-- print("before",fontid,hash,parent,rawdata)
if not rawdata then
-- we have a virtual font that loaded directly ... at some point i will
-- sort this out (in readanddefine we need to do a bit more) .. the problem
@@ -2037,6 +2269,8 @@ function lpdf.flushfonts()
fontdata = fontdata,
filename = resources.filename or properties.filename or "unset",
indices = { },
+ usedfonts = { [fontid] = true },
+ used = used,
rawdata = rawdata,
properties = properties, -- we assume consistency
parameters = parameters, -- we assume consistency
@@ -2049,10 +2283,12 @@ function lpdf.flushfonts()
noffonts = noffonts + 1
end
end
+-- print("after ",fontid,hash,parent)
if parent then
+ parent.usedfonts[fontid] = true
local indices = parent.indices
- for k in next, used do
- indices[k] = true
+ for k, v in next, used do
+ indices[k] = v
end
end
end
@@ -2063,21 +2299,23 @@ function lpdf.flushfonts()
for hash, details in sortedhash(mainfonts) do
local filename = details.filename
if next(details.indices) then
- if trace_fonts then
- report_fonts("embedding %a hashed as %a",filename,hash)
- end
local properties = details.properties
local bitmap = properties.usedbitmap
local method = properties.method -- will be pk | pdf | svg | ...
+ if trace_fonts then
+ if method then
+ report_fonts("embedding %a hashed as %a using method %a",filename,hash,method)
+ else
+ report_fonts("embedding %a hashed as %a",filename,hash)
+ end
+ end
if bitmap or method then
local format = "type3"
local writer = mainwriters[format]
- if writer then
- if trace_fonts then
- report_fonts("using main writer %a",format)
- end
- writer(details)
+ if trace_fonts then
+ report_fonts("using main writer %a",format)
end
+ writer(details)
else
local format = properties.format
local writer = mainwriters[format]
@@ -2189,7 +2427,10 @@ function lpdf.flushfonts()
-- report_fonts("no indices for %a",filename)
end
if trace_fonts then
- report_fonts("embedded indices: % t",table.sortedkeys(details.indices))
+ local indices = details.indices
+ if indices and next(indices) then
+ report_fonts("embedded indices: % t",table.sortedkeys(details.indices))
+ end
end
mainfonts[details.hash] = false -- done
end
@@ -2206,15 +2447,6 @@ end)
-- this is temporary
-function lpdf.setomitcidset(v)
- -- dummy: no longer needed
- includecidset = not toboolean(v)
-end
-
-function lpdf.setomitcharset(v)
- -- dummy
-end
-
function lpdf.getfontobjectnumber(k)
return objects[k]
end
@@ -2223,11 +2455,4 @@ function lpdf.getfontname(k)
return names[k]
end
--- local done = false -- todo:
-
--- updaters.register("backend.update",function()
--- if not done then
- lpdf.registerdocumentfinalizer(lpdf.flushfonts,1,"wrapping up fonts")
--- done = true
--- end
--- end)
+lpdf.registerdocumentfinalizer(lpdf.flushfonts,1,"wrapping up fonts")
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-epa.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-epa.lmt
index b37e9c0432a..26bb9f70318 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-epa.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-epa.lmt
@@ -17,7 +17,6 @@ local concat, merged = table.concat, table.merged
local abs = math.abs
local expandname = file.expandname
local allocate = utilities.storage.allocate
-local bor, band = bit32.bor, bit32.band
local isfile = lfs.isfile
local trace_links = false trackers.register("figures.links", function(v) trace_links = v end)
@@ -30,27 +29,22 @@ local report_comment = logs.reporter("backend","comment")
local report_field = logs.reporter("backend","field")
local report_outline = logs.reporter("backend","outline")
-local lpdf = lpdf
-local backends = backends
local context = context
-local nodeinjections = backends.pdf.nodeinjections
+local pdfbackend = backends.registered.pdf
+local nodeinjections = pdfbackend.nodeinjections
+local codeinjections = pdfbackend.codeinjections
+----- registrations = pdfbackend.registrations
local setmacro = tokens.setters.macro
+local lpdf = lpdf
local pdfarray = lpdf.array
local pdfdictionary = lpdf.dictionary
local pdfconstant = lpdf.constant
local pdfreference = lpdf.reference
-
-local pdfreserveobject
-local pdfgetpos
-
-updaters.register("backend.update.lpdf",function()
- pdfreserveobject = lpdf.reserveobject
- pdfgetpos = lpdf.getpos
-end)
-
+local pdfreserveobject = lpdf.reserveobject
+local pdfgetpos = lpdf.getpos
local pdfcopyboolean = lpdf.copyboolean
local pdfcopyunicode = lpdf.copyunicode
local pdfcopyarray = lpdf.copyarray
@@ -70,7 +64,6 @@ local loadpdffile = lpdf.epdf.load
local nameonly = file.nameonly
local variables = interfaces.variables
-local codeinjections = backends.pdf.codeinjections
----- urlescaper = lpegpatterns.urlescaper
----- utftohigh = lpegpatterns.utftohigh
local escapetex = characters.filters.utf.private.escape
@@ -85,7 +78,7 @@ local layerspec = {
"epdfcontent"
}
-local getpos = function() getpos = backends.codeinjections.getpos return getpos() end
+local getpos = function() getpos = codeinjections.getpos return getpos() end
local collected = allocate()
local tobesaved = allocate()
@@ -548,7 +541,7 @@ local annotationflags = lpdf.flags.annotations
local function copyF(v,lock) -- todo: bxor 24
if lock then
- v = bor(v or 0,annotationflags.ReadOnly + annotationflags.Locked + annotationflags.LockedContents)
+ v = (v or 0) | (annotationflags.ReadOnly + annotationflags.Locked + annotationflags.LockedContents)
end
if v then
return pdfcopyinteger(v)
@@ -556,7 +549,7 @@ local function copyF(v,lock) -- todo: bxor 24
end
-- Speed is not really an issue so we don't optimize this code too much. In the end (after
--- testing we end up with less code that we started with.
+-- testing) we ended up with less code that we started with.
function codeinjections.mergecomments(specification)
local specification, fullname, document = validdocument(specification)
@@ -715,7 +708,7 @@ local function flagstoset(flag,flags)
local t = { }
if flags then
for k, v in next, flags do
- if band(flag,v) ~= 0 then
+ if (flag & v) ~= 0 then
t[k] = true
end
end
@@ -874,6 +867,33 @@ function codeinjections.mergefields(specification)
end
end
+-- The crappy parts of pdf .. too unpredictable.
+
+function codeinjections.mergerenditions(specification)
+-- local specification, fullname, document = validdocument(specification)
+-- if not document then
+-- return ""
+-- end
+-- local pagenumber = specification.page or 1
+-- local pagedata = document.pages[pagenumber]
+-- local annotations = pagedata and pagedata.Annots
+-- if annotations and #annotations > 0 then
+-- local llx, lly, urx, ury, width, height, xscale, yscale = getmediasize(specification,pagedata,xscale,yscale)
+-- initializelayer(height,width)
+-- --
+-- for i=1,#annotations do
+-- -- we keep the order
+-- local annotation = annotations[i]
+-- if annotation then
+-- local subtype = annotation.Subtype
+-- if subtype == "Screen" then
+-- print("not done")
+-- end
+-- end
+-- end
+-- end
+end
+
-- Beware, bookmarks can be in pdfdoc encoding or in unicode. However, in mkiv we
-- write out the strings in unicode (hex). When we read them in, we check for a bom
-- and convert to utf.
@@ -1021,7 +1041,7 @@ function codeinjections.mergebookmarks(specification)
end
if specification then
local fullname = specification.fullname
- local bookmarks = backends.codeinjections.getbookmarks(fullname)
+ local bookmarks = codeinjections.getbookmarks(fullname)
local realpage = tonumber(specification.page) or 1
for i=1,#bookmarks do
local b = bookmarks[i]
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-fld.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-fld.lmt
index eacbb085d88..3077b19c006 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-fld.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-fld.lmt
@@ -62,22 +62,20 @@ local trace_fields = false trackers.register("backends.fields", function(v) tra
local report_fields = logs.reporter("backend","fields")
-local backends, lpdf = backends, lpdf
-
local variables = interfaces.variables
local context = context
local references = structures.references
local settings_to_array = utilities.parsers.settings_to_array
-local pdfbackend = backends.pdf
-
+local pdfbackend = backends.registered.pdf
local nodeinjections = pdfbackend.nodeinjections
local codeinjections = pdfbackend.codeinjections
local registrations = pdfbackend.registrations
local registeredsymbol = codeinjections.registeredsymbol
+local lpdf = lpdf
local pdfstream = lpdf.stream
local pdfdictionary = lpdf.dictionary
local pdfarray = lpdf.array
@@ -86,28 +84,17 @@ local pdfunicode = lpdf.unicode
local pdfstring = lpdf.string
local pdfconstant = lpdf.constant
local pdfaction = lpdf.action
-
-local pdfflushobject
-local pdfshareobjectreference
-local pdfshareobject
-local pdfreserveobject
-local pdfpagereference
-local pdfmajorversion
-
-updaters.register("backend.update.lpdf",function()
- pdfflushobject = lpdf.flushobject
- pdfshareobjectreference = lpdf.shareobjectreference
- pdfshareobject = lpdf.shareobject
- pdfreserveobject = lpdf.reserveobject
- pdfpagereference = lpdf.pagereference
- pdfmajorversion = lpdf.majorversion
-end)
-
+local pdfflushobject = lpdf.flushobject
+local pdfshareobjectreference = lpdf.shareobjectreference
+local pdfshareobject = lpdf.shareobject
+local pdfreserveobject = lpdf.reserveobject
+local pdfpagereference = lpdf.pagereference
+local pdfmajorversion = lpdf.majorversion
local pdfcolor = lpdf.color
local pdfcolorvalues = lpdf.colorvalues
local pdflayerreference = lpdf.layerreference
-local hpack_node = node.hpack
+local hpack_node = nodes.hpack
local submitoutputformat = 0 -- 0=unknown 1=HTML 2=FDF 3=XML => not yet used, needs to be checked
@@ -685,7 +672,7 @@ end
local fields, radios, clones, fieldsets, calculationset = { }, { }, { }, { }, nil
-local xfdftemplate = [[
+local xfdftemplate <const> = [[
<?xml version='1.0' encoding='UTF-8'?>
<xfdf xmlns='http://ns.adobe.com/xfdf/'>
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-fmt.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-fmt.lmt
index c6a3f25ff5e..7ceacc62d68 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-fmt.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-fmt.lmt
@@ -19,15 +19,16 @@ local trace_variables = false trackers.register("backend.variables", function(v
local report_backend = logs.reporter("backend","profiles")
-local backends, lpdf = backends, lpdf
-
-local codeinjections = backends.pdf.codeinjections
+local pdfbackend = backends.registered.pdf
+----- nodeinjections = pdfbackend.nodeinjections
+local codeinjections = pdfbackend.codeinjections
local variables = interfaces.variables
local viewerlayers = attributes.viewerlayers
local colors = attributes.colors
local transparencies = attributes.transparencies
+local lpdf = lpdf
local pdfdictionary = lpdf.dictionary
local pdfarray = lpdf.array
local pdfconstant = lpdf.constant
@@ -903,12 +904,6 @@ function codeinjections.setformat(s)
majorversion,minorversion)
end
--
- -- cid sets can always omitted now, but those validators still complain so let's
- -- for a while keep it (for luigi):
- --
- lpdf.setomitcidset (formatspecification.include_cidsets == false and 1 or 0) -- why a number
- lpdf.setomitcharset(formatspecification.include_charsets == false and 1 or 0) -- why a number
- --
-- maybe block by pdf version
--
codeinjections.settaggingsupport(formatspecification.tagging)
@@ -919,6 +914,11 @@ function codeinjections.setformat(s)
-- rgb = spec.rgb_colors and variables.yes or variables.no,
-- }
--
+ local rgb = spec.rgb_colors and variables.yes or variables.no
+ local cmy = spec.cmyk_colors and variables.yes or variables.no
+ report_backend("permitted colorspaces: rgb %a, cmyk %a",rgb,cmy)
+ -- token.expandmacro ("colo_force_colormodel",true,rgb,true,cmy)
+ --
colors.forcesupport(
spec.gray_scale or false,
spec.rgb_colors or false,
@@ -958,6 +958,8 @@ function codeinjections.setformat(s)
report_backend("error, format is already set to %a, ignoring %a",formatname,noname.format)
end
end
+ -- we could just pass the spec to the backend
+ lpdf.setincludecidset(spec.include_cidsets)
else
report_backend("error, format %a is not supported",format)
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-fnt.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-fnt.lmt
index ee16303b060..36f2961055a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-fnt.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-fnt.lmt
@@ -13,12 +13,7 @@ local tonumber, rawget = tonumber, rawget
local pdfe = lpdf.epdf
local pdfreference = lpdf.reference
-
-local pdfreserveobject
-
-updaters.register("backend.update.lpdf",function()
- pdfreserveobject = lpdf.reserveobject
-end)
+local pdfreserveobject = lpdf.reserveobject
local tobemerged = { }
local trace_merge = false trackers.register("graphics.fonts",function(v) trace_merge = v end)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-grp.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-grp.lmt
index 6adbe8c3c91..585d114599a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-grp.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-grp.lmt
@@ -11,28 +11,21 @@ local formatters, gsub = string.formatters, string.gsub
local concat = table.concat
local round = math.round
-local backends, lpdf = backends, lpdf
-
-local nodeinjections = backends.pdf.nodeinjections
-
local colors = attributes.colors
local basepoints = number.dimenfactors.bp
-local nodeinjections = backends.pdf.nodeinjections
-local codeinjections = backends.pdf.codeinjections
-local registrations = backends.pdf.registrations
+local pdfbackend = backends.registered.pdf
+local nodeinjections = pdfbackend.nodeinjections
+local codeinjections = pdfbackend.codeinjections
+local registrations = pdfbackend.registrations
+local lpdf = lpdf
local pdfdictionary = lpdf.dictionary
local pdfarray = lpdf.array
local pdfconstant = lpdf.constant
local pdfboolean = lpdf.boolean
local pdfreference = lpdf.reference
-
-local pdfflushobject
-
-updaters.register("backend.update.lpdf",function()
- pdfflushobject = lpdf.flushobject
-end)
+local pdfflushobject = lpdf.flushobject
local createimage = images.create
local wrapimage = images.wrap
@@ -113,70 +106,174 @@ end
-- we could derive the colorspace if we strip the data
-- and divide by x*y
-local template = "q BI %s ID %s > EI Q"
-local factor = 72/300
+-- todo: map onto png
-function nodeinjections.injectbitmap(t)
- -- encoding is ascii hex, no checking here
- local xresolution, yresolution = t.xresolution or 0, t.yresolution or 0
- if xresolution == 0 or yresolution == 0 then
- return -- fatal error
- end
- local colorspace = t.colorspace
- if colorspace ~= "rgb" and colorspace ~= "cmyk" and colorspace ~= "gray" then
- -- not that efficient but ok
- local d = gsub(t.data,"[^0-9a-f]","")
- local b = math.round(#d / (xresolution * yresolution))
- if b == 2 then
- colorspace = "gray"
- elseif b == 6 then
- colorspace = "rgb"
- elseif b == 8 then
- colorspace = "cmyk"
+
+do
+
+ local template = "q BI %s ID %s > EI Q"
+ local factor = 72/300
+
+ local methods = { }
+
+ methods.hex = function(t)
+ -- encoding is ascii hex, no checking here
+ local xresolution, yresolution = t.xresolution or 0, t.yresolution or 0
+ if xresolution == 0 or yresolution == 0 then
+ return -- fatal error
end
+ local colorspace = t.colorspace
+ if colorspace ~= "rgb" and colorspace ~= "cmyk" and colorspace ~= "gray" then
+ -- not that efficient but ok
+ local d = gsub(t.data,"[^0-9a-f]","")
+ local b = round(#d / (xresolution * yresolution))
+ if b == 2 then
+ colorspace = "gray"
+ elseif b == 6 then
+ colorspace = "rgb"
+ elseif b == 8 then
+ colorspace = "cmyk"
+ end
+ end
+ colorspace = lpdf.colorspaceconstants[colorspace]
+ if not colorspace then
+ return -- fatal error
+ end
+ --the original length L is required for pdf 2.0 (4096 max)
+ local d = pdfdictionary {
+ W = xresolution,
+ H = yresolution,
+ CS = colorspace,
+ BPC = 8,
+ F = pdfconstant("AHx"),
+ -- CS = nil,
+ -- BPC = 1,
+ -- IM = true,
+ }
+ -- for some reasons it only works well if we take a 1bp boundingbox
+ local urx, ury = 1/basepoints, 1/basepoints
+ -- urx = (xresolution/300)/basepoints
+ -- ury = (yresolution/300)/basepoints
+ local width, height = t.width or 0, t.height or 0
+ if width == 0 and height == 0 then
+ width = factor * xresolution / basepoints
+ height = factor * yresolution / basepoints
+ elseif width == 0 then
+ width = height * xresolution / yresolution
+ elseif height == 0 then
+ height = width * yresolution / xresolution
+ end
+ local a = pdfdictionary {
+ BBox = pdfarray { 0, 0, round(urx * basepoints), round(ury * basepoints) }
+ }
+ local image = createimage {
+ stream = formatters[template](d(),t.data),
+ width = width,
+ height = height,
+ bbox = { 0, 0, round(urx), round(ury) },
+ attr = a(),
+ nobbox = true,
+ }
+ return wrapimage(image)
end
- colorspace = lpdf.colorspaceconstants[colorspace]
- if not colorspace then
- return -- fatal error
+
+ -- local lpegmatch = lpeg.match
+ -- local pattern = lpeg.Cs((lpeg.patterns.space/"" + lpeg.patterns.hextobyte)^0)
+
+ local zlibcompress = xzip.compress
+ local hextocharacters = string.hextocharacters
+ local compresslevel = 3
+
+ methods.png = function(t)
+ -- encoding is ascii hex, no checking here
+ local xresolution = t.xresolution or 0
+ local yresolution = t.yresolution or 0
+ local data = t.data or ""
+ if xresolution == 0 or yresolution == 0 or data == "" then
+ return -- fatal error
+ end
+ data = hextocharacters(data)
+ if not data then
+ return
+ end
+ local colorspace = t.colorspace
+ local colordepth = 8
+ local colors = 1
+-- if colorspace ~= "rgb" and colorspace ~= "gray" then
+-- -- not that efficient but ok
+-- local d = gsub(t.data,"[^0-9a-f]","")
+-- local b = round(#d / (xresolution * yresolution))
+-- if b == 2 then
+-- colorspace = "gray"
+-- colors = 1
+-- elseif b == 6 then
+-- colorspace = "rgb"
+-- colors = 3
+-- elseif b == 8 then
+-- return -- for now, todo: convert
+-- end
+-- end
+ if colorspace ~= "rgb" and colorspace ~= "gray" then
+ local b = round(#data / (xresolution * yresolution))
+ if b == 1 then
+ colorspace = "gray"
+ colors = 1
+ elseif b == 3 then
+ colorspace = "rgb"
+ colors = 3
+ elseif b == 4 then
+ return -- for now, todo: convert
+ end
+ end
+ colorspace = lpdf.colorspaceconstants[colorspace]
+ if not colorspace then
+ return -- fatal error
+ end
+ local width = t.width
+ local height = t.height
+ if width == 0 and height == 0 then
+ width = factor * xresolution / basepoints
+ height = factor * yresolution / basepoints
+ elseif width == 0 then
+ width = height * xresolution / yresolution
+ elseif height == 0 then
+ height = width * yresolution / xresolution
+ end
+ -- data = zlibcompress(lpegmatch(pattern,data),compresslevel)
+ data = zlibcompress(data,compresslevel)
+ local xobject = pdfdictionary {
+ Type = pdfconstant("XObject"),
+ Subtype = pdfconstant("Image"),
+ Width = xresolution,
+ Height = yresolution,
+ BitsPerComponent = 8,
+ ColorSpace = colorspace,
+ Length = #data,
+ Filter = pdfconstant("FlateDecode"),
+ }
+ local image = createimage {
+-- bbox = { 0, 0, round(width/xresolution), round(height/yresolution) }, -- mandate
+ bbox = { 0, 0, round(width), round(height) }, -- mandate
+ width = round(width),
+ height = round(height),
+ nolength = true,
+ nobbox = true,
+ notype = true,
+ stream = data,
+ attr = xobject(),
+ }
+ return wrapimage(image)
end
- local d = pdfdictionary {
- W = xresolution,
- H = yresolution,
- CS = colorspace,
- BPC = 8,
- F = pdfconstant("AHx"),
- -- CS = nil,
- -- BPC = 1,
- -- IM = true,
- }
- -- for some reasons it only works well if we take a 1bp boundingbox
- local urx, ury = 1/basepoints, 1/basepoints
- -- urx = (xresolution/300)/basepoints
- -- ury = (yresolution/300)/basepoints
- local width, height = t.width or 0, t.height or 0
- if width == 0 and height == 0 then
- width = factor * xresolution / basepoints
- height = factor * yresolution / basepoints
- elseif width == 0 then
- width = height * xresolution / yresolution
- elseif height == 0 then
- height = width * yresolution / xresolution
+
+ function nodeinjections.injectbitmap(t)
+ if t.colorspace == "cmyk" then
+ return methods.hex(t)
+ else
+ return (methods[t.format or "hex"] or methods.hex)(t)
+ end
end
- local a = pdfdictionary {
- BBox = pdfarray { 0, 0, urx * basepoints, ury * basepoints }
- }
- local image = createimage {
- stream = formatters[template](d(),t.data),
- width = width,
- height = height,
- bbox = { 0, 0, urx, ury },
- attr = a(),
- nobbox = true,
- }
- return wrapimage(image)
-end
--- general graphic helpers
+end
function codeinjections.setfigurealternative(data,figure)
local request = data.request
@@ -287,8 +384,9 @@ function lpdf.registerpattern(specification)
},
}
- local resources = lpdf.collectedresources{ patterns = false }
- local attributes = d()
+ -- local resources = lpdf.collectedresources{ patterns = false } -- we don't want duplicates, so no serialize here:
+ local resources = lpdf.collectedresources{ patterns = false, serialize = false }
+ local attributes = d -- () -- we need to check for patterns
local onlybounds = 1
local patternobj = saveboxresource(specification.number,attributes,resources,true,onlybounds)
lpdf.adddocumentpattern("Pt" .. nofpatterns,lpdf.reference(patternobj ))
@@ -299,4 +397,4 @@ function lpdf.patternstream(n,width,height)
return f_pattern("Pt" .. n,width*basepoints,height*basepoints)
end
-backends.pdf.codeinjections.registerpattern = lpdf.registerpattern
+codeinjections.registerpattern = lpdf.registerpattern
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-img.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-img.lmt
index 50034c36025..c241ccdb72a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-img.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-img.lmt
@@ -11,19 +11,29 @@ if not modules then modules = { } end modules ['lpdf-img'] = {
-- At some point we can also use it for fonts. For small images performance is ok
-- with pure lua but for bigger images we can use some helpers. Normally in a
-- typesetting workflow non-interlaced images are used. One should convert
--- interlaced images to more efficient non-interlaced ones (ok, we can cache
--- them if needed).
+-- interlaced images to more efficient non-interlaced ones (ok, we can cache them if
+-- needed).
--
--- The \LUA\ code is slightly optimized so we could have done with less lines if
--- we wanted but best gain a little. The idea is that we collect striped (in stages)
--- so that we can play with substitutions.
+-- The \LUA\ code is slightly optimized so we could have done with less lines if we
+-- wanted but best gain a little. The idea is that we collect striped (in stages) so
+-- that we can play with substitutions. We keep this variant commented but not
+-- embedding it saves some 14K bytecode in the format.
+--
+-- We keep the \LUA\ code commented because it is what I started with from the \PNG\
+-- specification. It was one fo the first things needed for dropping the backend so
+-- actually this was part of the first \LUA\ based \PDF\ backend, the one that for a
+-- while was part of \MKIV. That bit of development was not widely advertized and
+-- just for me to make the transition and prove that it could be done. At some point
+-- I decided to not provide a generic backend so that cdoe went away. Reminder:
+-- there ended up some code here that was needed for font related png too (and I'd
+-- already forgotten about: I need to document that).
local type = type
local concat, move = table.concat, table.move
local ceil, min = math.ceil, math.min
local char, byte, find, gmatch = string.char, string.byte, string.find, string.gmatch
-local idiv = number.idiv
-local band, rshift = bit32.band, bit32.rshift
+----- idiv = number.idiv
+----- band, rshift = bit32.band, bit32.rshift
local loaddata = io.loaddata
local setmetatableindex = table.setmetatableindex
@@ -45,21 +55,16 @@ local pdfconstant = lpdf.constant
local pdfstring = lpdf.string
local pdfreference = lpdf.reference
local pdfverbose = lpdf.verbose
+local pdfflushstreamobject = lpdf.flushstreamobject
+local pdfmajorversion = lpdf.majorversion
+local pdfminorversion = lpdf.minorversion
-local pdfflushstreamobject
-local pdfmajorversion
-local pdfminorversion
-
-updaters.register("backend.update.lpdf",function()
- pdfflushstreamobject = lpdf.flushstreamobject
- pdfmajorversion = lpdf.majorversion
- pdfminorversion = lpdf.minorversion
-end)
+local codeinjections = backends.registered.pdf.codeinjections
local createimage = images.create
-local zlibcompress = (xzip or zlib).compress
-local zlibdecompress = (xzip or zlib).decompress
+local zlibcompress = xzip.compress
+local zlibdecompress = xzip.decompress
local trace = false
@@ -72,14 +77,36 @@ trackers.register("graphics.backend", function(v) trace = v end)
local injectors = { }
lpdf.injectors = injectors
--- todo: load from a virtual file
+-- local function loadcontent(filename,method)
+-- return method == "string" and filename or loaddata(filename)
+-- end
+
+-- local function newcontent(filename,method)
+-- return newreader(filename,method)
+-- end
-local function loadcontent(filename,method)
- return method == "string" and filename or loaddata(filename)
+local function loadcontent(filename,method,wipe)
+ if method == "string" then
+ return filename
+ else
+ local found, data = resolvers.loadbinfile(filename)
+ if wipe then
+ resolvers.cleanupbinfile(filename)
+ end
+ return data
+ end
end
-local function newcontent(filename,method)
- return newreader(filename,method)
+local function newcontent(filename,method,wipe)
+ if method == "string" then
+ return newreader(filename,method)
+ else
+ local found, data = resolvers.loadbinfile(filename)
+ if wipe then
+ resolvers.cleanupbinfile(filename)
+ end
+ return newreader(data or "", "string")
+ end
end
--
@@ -115,7 +142,7 @@ do
local xsize = specification.xsize
local ysize = specification.ysize
local colordepth = specification.colordepth
- local content = loadcontent(filename,method)
+ local content = loadcontent(filename,method,true)
local xobject = pdfdictionary {
Type = pdfconstant("XObject"),
Subtype = pdfconstant("Image"),
@@ -157,7 +184,7 @@ do
-- todo: set filename
local xsize = specification.xsize
local ysize = specification.ysize
- local content = loadcontent(filename,method)
+ local content = loadcontent(filename,method,true)
local xobject = pdfdictionary {
Type = pdfconstant("XObject"),
Subtype = pdfconstant("Image"),
@@ -197,6 +224,7 @@ do
local pnginterlace = pngdecode.interlace
local pngexpand = pngdecode.expand
local pngtocmyk = pngdecode.tocmyk
+ local pngtomask = pngdecode.tomask
local filtermask, decodemask, decodestrip, transpose, expand, tocmyk
@@ -205,7 +233,7 @@ do
local function newoutput(size)
if newindex then
- return newindex(size,0)
+ return newindex(size,char(0))
end
local t = newtable and newtable(size,0) or { }
for i=1,size do
@@ -250,10 +278,10 @@ do
end
elseif filter == 3 then
for j=n+1,n+bpp do
- t[j] = (t[j] + idiv(t[j-len],2)) % 256
+ t[j] = (t[j] + (t[j-len] // 2)) % 256
end
for j=n+bpp+1,n+m do
- t[j] = (t[j] + idiv(t[j-bpp] + t[j-len],2)) % 256
+ t[j] = (t[j] + (t[j-bpp] + t[j-len]) // 2) % 256
end
elseif filter == 4 then
for j=n+1,n+bpp do
@@ -282,95 +310,95 @@ do
return t
end
- local filtermask_l = function (content,xsize,ysize,colordepth,colorspace,hasfilter)
- local mask = { }
- local bytes = colordepth == 16 and 2 or 1
- local bpp = colorspace == "DeviceRGB" and 3 or 1
- local length = #content
- local size = ysize * xsize * ((bpp+1)*bytes + (hasfilter and 1 or 0))
- local n = 1
- local l = 1
- if bytes == 2 then
- if bpp == 1 then
- for i=1,ysize do
- if hasfilter then
- content[n] = "" ; n = n + 1
- end
- for j=1,xsize do
- content[n] = chars[content[n]] ; n = n + 1
- content[n] = chars[content[n]] ; n = n + 1
- mask[l] = chars[content[n]] ; l = l + 1
- content[n] = "" ; n = n + 1
- mask[l] = chars[content[n]] ; l = l + 1
- content[n] = "" ; n = n + 1
- end
- end
- elseif bpp == 3 then
- for i=1,ysize do
- if hasfilter then
- content[n] = "" ; n = n + 1
- end
- for j=1,xsize do
- content[n] = chars[content[n]] ; n = n + 1
- content[n] = chars[content[n]] ; n = n + 1
- content[n] = chars[content[n]] ; n = n + 1
- content[n] = chars[content[n]] ; n = n + 1
- content[n] = chars[content[n]] ; n = n + 1
- content[n] = chars[content[n]] ; n = n + 1
- mask[l] = chars[content[n]] ; l = l + 1
- content[n] = "" ; n = n + 1
- mask[l] = chars[content[n]] ; l = l + 1
- content[n] = "" ; n = n + 1
- end
- end
- else
- return "", ""
- end
- else
- if bpp == 1 then
- for i=1,ysize do
- if hasfilter then
- content[n] = "" ; n = n + 1
- end
- for j=1,xsize do
- content[n] = chars[content[n]] ; n = n + 1
- mask[l] = chars[content[n]] ; l = l + 1
- content[n] = "" ; n = n + 1
- end
- end
- elseif bpp == 3 then
- for i=1,ysize do
- if hasfilter then
- content[n] = "" ; n = n + 1
- end
- for j=1,xsize do
- content[n] = chars[content[n]] ; n = n + 1
- content[n] = chars[content[n]] ; n = n + 1
- content[n] = chars[content[n]] ; n = n + 1
- mask[l] = chars[content[n]] ; l = l + 1
- content[n] = "" ; n = n + 1
- end
- end
- else
- return "", ""
- end
- end
- return concat(content), concat(mask)
- end
-
- local decodemask_l = function(content,xsize,ysize,colordepth,colorspace)
- local bytes = colordepth == 16 and 2 or 1
- local bpp = colorspace == "DeviceRGB" and 3 or 1
- local slice = bytes*(bpp+1)
- local length = #content
- local size = ysize * xsize * ((bpp+1)*bytes + 1) -- assume filter
- content = openstring(content)
- content = readbytetable(content,length)
- setmetatableindex(content,zero)
- applyfilter(content,xsize,ysize,slice)
- content, mask = filtermask(content,xsize,ysize,colordepth,colorspace,true)
- return content, mask
- end
+ -- local filtermask_l = function (content,xsize,ysize,colordepth,colorspace,hasfilter)
+ -- local mask = { }
+ -- local bytes = colordepth == 16 and 2 or 1
+ -- local bpp = colorspace == "DeviceRGB" and 3 or 1
+ -- local length = #content
+ -- local size = ysize * xsize * ((bpp+1)*bytes + (hasfilter and 1 or 0))
+ -- local n = 1
+ -- local l = 1
+ -- if bytes == 2 then
+ -- if bpp == 1 then
+ -- for i=1,ysize do
+ -- if hasfilter then
+ -- content[n] = "" ; n = n + 1
+ -- end
+ -- for j=1,xsize do
+ -- content[n] = chars[content[n]] ; n = n + 1
+ -- content[n] = chars[content[n]] ; n = n + 1
+ -- mask[l] = chars[content[n]] ; l = l + 1
+ -- content[n] = "" ; n = n + 1
+ -- mask[l] = chars[content[n]] ; l = l + 1
+ -- content[n] = "" ; n = n + 1
+ -- end
+ -- end
+ -- elseif bpp == 3 then
+ -- for i=1,ysize do
+ -- if hasfilter then
+ -- content[n] = "" ; n = n + 1
+ -- end
+ -- for j=1,xsize do
+ -- content[n] = chars[content[n]] ; n = n + 1
+ -- content[n] = chars[content[n]] ; n = n + 1
+ -- content[n] = chars[content[n]] ; n = n + 1
+ -- content[n] = chars[content[n]] ; n = n + 1
+ -- content[n] = chars[content[n]] ; n = n + 1
+ -- content[n] = chars[content[n]] ; n = n + 1
+ -- mask[l] = chars[content[n]] ; l = l + 1
+ -- content[n] = "" ; n = n + 1
+ -- mask[l] = chars[content[n]] ; l = l + 1
+ -- content[n] = "" ; n = n + 1
+ -- end
+ -- end
+ -- else
+ -- return "", ""
+ -- end
+ -- else
+ -- if bpp == 1 then
+ -- for i=1,ysize do
+ -- if hasfilter then
+ -- content[n] = "" ; n = n + 1
+ -- end
+ -- for j=1,xsize do
+ -- content[n] = chars[content[n]] ; n = n + 1
+ -- mask[l] = chars[content[n]] ; l = l + 1
+ -- content[n] = "" ; n = n + 1
+ -- end
+ -- end
+ -- elseif bpp == 3 then
+ -- for i=1,ysize do
+ -- if hasfilter then
+ -- content[n] = "" ; n = n + 1
+ -- end
+ -- for j=1,xsize do
+ -- content[n] = chars[content[n]] ; n = n + 1
+ -- content[n] = chars[content[n]] ; n = n + 1
+ -- content[n] = chars[content[n]] ; n = n + 1
+ -- mask[l] = chars[content[n]] ; l = l + 1
+ -- content[n] = "" ; n = n + 1
+ -- end
+ -- end
+ -- else
+ -- return "", ""
+ -- end
+ -- end
+ -- return concat(content), concat(mask)
+ -- end
+
+ -- local decodemask_l = function(content,xsize,ysize,colordepth,colorspace)
+ -- local bytes = colordepth == 16 and 2 or 1
+ -- local bpp = colorspace == "DeviceRGB" and 3 or 1
+ -- local slice = bytes*(bpp+1)
+ -- local length = #content
+ -- local size = ysize * xsize * ((bpp+1)*bytes + 1) -- assume filter
+ -- content = openstring(content)
+ -- content = readbytetable(content,length)
+ -- setmetatableindex(content,zero)
+ -- applyfilter(content,xsize,ysize,slice)
+ -- content, mask = filtermask(content,xsize,ysize,colordepth,colorspace,true)
+ -- return content, mask
+ -- end
local filtermask_c = function(content,xsize,ysize,colordepth,colorspace)
local bytes = colordepth == 16 and 2 or 1
@@ -388,12 +416,12 @@ do
return pngsplitmask(content,xsize,ysize,bpp,bytes,mask,filter)
end
- local function decodestrip_l(s,nx,ny,slice)
- local input = readbytetable(s,ny*(nx*slice+1))
- setmetatableindex(input,zero)
- applyfilter(input,nx,ny,slice)
- return input, true
- end
+ -- local function decodestrip_l(s,nx,ny,slice)
+ -- local input = readbytetable(s,ny*(nx*slice+1))
+ -- setmetatableindex(input,zero)
+ -- applyfilter(input,nx,ny,slice)
+ -- return input, true
+ -- end
local function decodestrip_c(s,nx,ny,slice)
local input = readstring(s,ny*(nx*slice+1))
@@ -409,204 +437,204 @@ do
local xblock = { 8, 4, 4, 2, 2, 1, 1 }
local yblock = { 8, 8, 4, 4, 2, 2, 1 }
- local function transpose_l(xsize,ysize,slice,pass,input,output,filter)
- local xstart = xstart[pass]
- local xstep = xstep[pass]
- local ystart = ystart[pass]
- local ystep = ystep[pass]
- local nx = idiv(xsize + xstep - xstart - 1,xstep)
- local ny = idiv(ysize + ystep - ystart - 1,ystep)
- local offset = filter and 1 or 0
- local xstep = xstep * slice
- local xstart = xstart * slice
- local xsize = xsize * slice
- local target = ystart * xsize + xstart + 1
- local ystep = ystep * xsize
- local start = 1
- local plus = nx * xstep
- local step = plus - xstep
- if not output then
- output = newoutput(xsize*(parts or slice)*ysize)
- end
- if slice == 1 then
- for j=0,ny-1 do
- start = start + offset
- local target = target + j * ystep
- for target=target,target+step,xstep do
- output[target] = input[start]
- start = start + slice
- end
- end
- elseif slice == 2 then
- for j=0,ny-1 do
- start = start + offset
- local target = target + j * ystep
- for target=target,target+step,xstep do
- output[target] = input[start]
- output[target+1] = input[start+1]
- start = start + slice
- end
- end
- elseif slice == 3 then
- for j=0,ny-1 do
- start = start + offset
- local target = target + j * ystep
- for target=target,target+step,xstep do
- output[target] = input[start]
- output[target+1] = input[start+1]
- output[target+2] = input[start+2]
- start = start + slice
- end
- end
- elseif slice == 4 then
- for j=0,ny-1 do
- start = start + offset
- local target = target + j * ystep
- for target=target,target+step,xstep do
- output[target] = input[start]
- output[target+1] = input[start+1]
- output[target+2] = input[start+2]
- output[target+3] = input[start+3]
- start = start + slice
- end
- end
- else
- local delta = slice - 1
- for j=0,ny-1 do
- start = start + offset
- local target = target + j * ystep
- for target=target,target+step,xstep do
- move(input,start,start+delta,target,output)
- start = start + slice
- end
- end
- end
- return output;
- end
+ -- local function transpose_l(xsize,ysize,slice,pass,input,output,filter)
+ -- local xstart = xstart[pass]
+ -- local xstep = xstep[pass]
+ -- local ystart = ystart[pass]
+ -- local ystep = ystep[pass]
+ -- local nx = idiv(xsize + xstep - xstart - 1,xstep)
+ -- local ny = idiv(ysize + ystep - ystart - 1,ystep)
+ -- local offset = filter and 1 or 0
+ -- local xstep = xstep * slice
+ -- local xstart = xstart * slice
+ -- local xsize = xsize * slice
+ -- local target = ystart * xsize + xstart + 1
+ -- local ystep = ystep * xsize
+ -- local start = 1
+ -- local plus = nx * xstep
+ -- local step = plus - xstep
+ -- if not output then
+ -- output = newoutput(xsize*(parts or slice)*ysize)
+ -- end
+ -- if slice == 1 then
+ -- for j=0,ny-1 do
+ -- start = start + offset
+ -- local target = target + j * ystep
+ -- for target=target,target+step,xstep do
+ -- output[target] = input[start]
+ -- start = start + slice
+ -- end
+ -- end
+ -- elseif slice == 2 then
+ -- for j=0,ny-1 do
+ -- start = start + offset
+ -- local target = target + j * ystep
+ -- for target=target,target+step,xstep do
+ -- output[target] = input[start]
+ -- output[target+1] = input[start+1]
+ -- start = start + slice
+ -- end
+ -- end
+ -- elseif slice == 3 then
+ -- for j=0,ny-1 do
+ -- start = start + offset
+ -- local target = target + j * ystep
+ -- for target=target,target+step,xstep do
+ -- output[target] = input[start]
+ -- output[target+1] = input[start+1]
+ -- output[target+2] = input[start+2]
+ -- start = start + slice
+ -- end
+ -- end
+ -- elseif slice == 4 then
+ -- for j=0,ny-1 do
+ -- start = start + offset
+ -- local target = target + j * ystep
+ -- for target=target,target+step,xstep do
+ -- output[target] = input[start]
+ -- output[target+1] = input[start+1]
+ -- output[target+2] = input[start+2]
+ -- output[target+3] = input[start+3]
+ -- start = start + slice
+ -- end
+ -- end
+ -- else
+ -- local delta = slice - 1
+ -- for j=0,ny-1 do
+ -- start = start + offset
+ -- local target = target + j * ystep
+ -- for target=target,target+step,xstep do
+ -- move(input,start,start+delta,target,output)
+ -- start = start + slice
+ -- end
+ -- end
+ -- end
+ -- return output;
+ -- end
local transpose_c = pnginterlace
-- print(band(rshift(v,4),0x03),extract(v,4,2))
-- print(band(rshift(v,6),0x03),extract(v,6,2))
- local function expand_l(t,xsize,ysize,parts,run,factor,filter)
- local size = ysize * xsize + 1 -- a bit of overshoot, needs testing, probably a few bytes us ok
- local xline = filter and (run+1) or run
- local f = filter and 1 or 0
- local l = xline - 1
- local n = 1
- local o = newoutput(size)
- local k = 0
- if factor then
- if parts == 4 then
- for i=1,ysize do
- for j=n+f,n+l do
- local v = t[j]
- if v == 0 then
- k = k + 2
- else
- k = k + 1 ; o[k] = extract4(v,4) * 0x11
- k = k + 1 ; o[k] = extract4(v,0) * 0x11
- end
- end
- k = i * xsize
- n = n + xline
- end
- elseif parts == 2 then
- for i=1,ysize do
- for j=n+f,n+l do
- local v = t[j]
- if v == 0 then
- k = k + 4
- else
- k = k + 1 ; o[k] = extract2(v,6) * 0x55
- k = k + 1 ; o[k] = extract2(v,4) * 0x55
- k = k + 1 ; o[k] = extract2(v,2) * 0x55
- k = k + 1 ; o[k] = extract2(v,0) * 0x55
- end
- end
- k = i * xsize
- n = n + xline
- end
- else
- for i=1,ysize do
- for j=n+f,n+l do
- local v = t[j]
- if v == 0 then
- k = k + 8
- else
- k = k + 1 ; if band(v,0x80) ~= 0 then o[k] = 0xFF end -- o[k] = extract1(v,7) * 0xFF
- k = k + 1 ; if band(v,0x40) ~= 0 then o[k] = 0xFF end -- o[k] = extract1(v,6) * 0xFF
- k = k + 1 ; if band(v,0x20) ~= 0 then o[k] = 0xFF end -- o[k] = extract1(v,5) * 0xFF
- k = k + 1 ; if band(v,0x10) ~= 0 then o[k] = 0xFF end -- o[k] = extract1(v,4) * 0xFF
- k = k + 1 ; if band(v,0x08) ~= 0 then o[k] = 0xFF end -- o[k] = extract1(v,3) * 0xFF
- k = k + 1 ; if band(v,0x04) ~= 0 then o[k] = 0xFF end -- o[k] = extract1(v,2) * 0xFF
- k = k + 1 ; if band(v,0x02) ~= 0 then o[k] = 0xFF end -- o[k] = extract1(v,1) * 0xFF
- k = k + 1 ; if band(v,0x01) ~= 0 then o[k] = 0xFF end -- o[k] = extract1(v,0) * 0xFF
- end
- end
- k = i * xsize
- n = n + xline
- end
- end
- else
- if parts == 4 then
- for i=1,ysize do
- for j=n+f,n+l do
- local v = t[j]
- if v == 0 then
- k = k + 2
- else
- k = k + 1 ; o[k] = extract4(v,4)
- k = k + 1 ; o[k] = extract4(v,0)
- end
- end
- k = i * xsize
- n = n + xline
- end
- elseif parts == 2 then
- for i=1,ysize do
- for j=n+f,n+l do
- local v = t[j]
- if v == 0 then
- k = k + 4
- else
- k = k + 1 ; o[k] = extract2(v,6)
- k = k + 1 ; o[k] = extract2(v,4)
- k = k + 1 ; o[k] = extract2(v,2)
- k = k + 1 ; o[k] = extract2(v,0)
- end
- end
- k = i * xsize
- n = n + xline
- end
- else
- for i=1,ysize do
- for j=n+f,n+l do
- local v = t[j]
- if v == 0 then
- k = k + 8
- else
- k = k + 1 ; if band(v,0x80) ~= 0 then o[k] = 1 end -- o[k] = extract1(v,7)
- k = k + 1 ; if band(v,0x40) ~= 0 then o[k] = 1 end -- o[k] = extract1(v,6)
- k = k + 1 ; if band(v,0x20) ~= 0 then o[k] = 1 end -- o[k] = extract1(v,5)
- k = k + 1 ; if band(v,0x10) ~= 0 then o[k] = 1 end -- o[k] = extract1(v,4)
- k = k + 1 ; if band(v,0x08) ~= 0 then o[k] = 1 end -- o[k] = extract1(v,3)
- k = k + 1 ; if band(v,0x04) ~= 0 then o[k] = 1 end -- o[k] = extract1(v,2)
- k = k + 1 ; if band(v,0x02) ~= 0 then o[k] = 1 end -- o[k] = extract1(v,1)
- k = k + 1 ; if band(v,0x01) ~= 0 then o[k] = 1 end -- o[k] = extract1(v,0)
- end
- end
- k = i * xsize
- n = n + xline
- end
- end
- end
- for i=size,xsize * ysize +1,-1 do
- o[i] = nil
- end
- return o, false
- end
+ -- local function expand_l(t,xsize,ysize,parts,run,factor,filter)
+ -- local size = ysize * xsize + 1 -- a bit of overshoot, needs testing, probably a few bytes us ok
+ -- local xline = filter and (run+1) or run
+ -- local f = filter and 1 or 0
+ -- local l = xline - 1
+ -- local n = 1
+ -- local o = newoutput(size)
+ -- local k = 0
+ -- if factor then
+ -- if parts == 4 then
+ -- for i=1,ysize do
+ -- for j=n+f,n+l do
+ -- local v = t[j]
+ -- if v == 0 then
+ -- k = k + 2
+ -- else
+ -- k = k + 1 ; o[k] = extract4(v,4) * 0x11
+ -- k = k + 1 ; o[k] = extract4(v,0) * 0x11
+ -- end
+ -- end
+ -- k = i * xsize
+ -- n = n + xline
+ -- end
+ -- elseif parts == 2 then
+ -- for i=1,ysize do
+ -- for j=n+f,n+l do
+ -- local v = t[j]
+ -- if v == 0 then
+ -- k = k + 4
+ -- else
+ -- k = k + 1 ; o[k] = extract2(v,6) * 0x55
+ -- k = k + 1 ; o[k] = extract2(v,4) * 0x55
+ -- k = k + 1 ; o[k] = extract2(v,2) * 0x55
+ -- k = k + 1 ; o[k] = extract2(v,0) * 0x55
+ -- end
+ -- end
+ -- k = i * xsize
+ -- n = n + xline
+ -- end
+ -- else
+ -- for i=1,ysize do
+ -- for j=n+f,n+l do
+ -- local v = t[j]
+ -- if v == 0 then
+ -- k = k + 8
+ -- else
+ -- k = k + 1 ; if band(v,0x80) ~= 0 then o[k] = 0xFF end -- o[k] = extract1(v,7) * 0xFF
+ -- k = k + 1 ; if band(v,0x40) ~= 0 then o[k] = 0xFF end -- o[k] = extract1(v,6) * 0xFF
+ -- k = k + 1 ; if band(v,0x20) ~= 0 then o[k] = 0xFF end -- o[k] = extract1(v,5) * 0xFF
+ -- k = k + 1 ; if band(v,0x10) ~= 0 then o[k] = 0xFF end -- o[k] = extract1(v,4) * 0xFF
+ -- k = k + 1 ; if band(v,0x08) ~= 0 then o[k] = 0xFF end -- o[k] = extract1(v,3) * 0xFF
+ -- k = k + 1 ; if band(v,0x04) ~= 0 then o[k] = 0xFF end -- o[k] = extract1(v,2) * 0xFF
+ -- k = k + 1 ; if band(v,0x02) ~= 0 then o[k] = 0xFF end -- o[k] = extract1(v,1) * 0xFF
+ -- k = k + 1 ; if band(v,0x01) ~= 0 then o[k] = 0xFF end -- o[k] = extract1(v,0) * 0xFF
+ -- end
+ -- end
+ -- k = i * xsize
+ -- n = n + xline
+ -- end
+ -- end
+ -- else
+ -- if parts == 4 then
+ -- for i=1,ysize do
+ -- for j=n+f,n+l do
+ -- local v = t[j]
+ -- if v == 0 then
+ -- k = k + 2
+ -- else
+ -- k = k + 1 ; o[k] = extract4(v,4)
+ -- k = k + 1 ; o[k] = extract4(v,0)
+ -- end
+ -- end
+ -- k = i * xsize
+ -- n = n + xline
+ -- end
+ -- elseif parts == 2 then
+ -- for i=1,ysize do
+ -- for j=n+f,n+l do
+ -- local v = t[j]
+ -- if v == 0 then
+ -- k = k + 4
+ -- else
+ -- k = k + 1 ; o[k] = extract2(v,6)
+ -- k = k + 1 ; o[k] = extract2(v,4)
+ -- k = k + 1 ; o[k] = extract2(v,2)
+ -- k = k + 1 ; o[k] = extract2(v,0)
+ -- end
+ -- end
+ -- k = i * xsize
+ -- n = n + xline
+ -- end
+ -- else
+ -- for i=1,ysize do
+ -- for j=n+f,n+l do
+ -- local v = t[j]
+ -- if v == 0 then
+ -- k = k + 8
+ -- else
+ -- k = k + 1 ; if band(v,0x80) ~= 0 then o[k] = 1 end -- o[k] = extract1(v,7)
+ -- k = k + 1 ; if band(v,0x40) ~= 0 then o[k] = 1 end -- o[k] = extract1(v,6)
+ -- k = k + 1 ; if band(v,0x20) ~= 0 then o[k] = 1 end -- o[k] = extract1(v,5)
+ -- k = k + 1 ; if band(v,0x10) ~= 0 then o[k] = 1 end -- o[k] = extract1(v,4)
+ -- k = k + 1 ; if band(v,0x08) ~= 0 then o[k] = 1 end -- o[k] = extract1(v,3)
+ -- k = k + 1 ; if band(v,0x04) ~= 0 then o[k] = 1 end -- o[k] = extract1(v,2)
+ -- k = k + 1 ; if band(v,0x02) ~= 0 then o[k] = 1 end -- o[k] = extract1(v,1)
+ -- k = k + 1 ; if band(v,0x01) ~= 0 then o[k] = 1 end -- o[k] = extract1(v,0)
+ -- end
+ -- end
+ -- k = i * xsize
+ -- n = n + xline
+ -- end
+ -- end
+ -- end
+ -- for i=size,xsize * ysize +1,-1 do
+ -- o[i] = nil
+ -- end
+ -- return o, false
+ -- end
local expand_c = pngexpand
@@ -672,8 +700,8 @@ do
local xstep = xstep[pass]
local ystart = ystart[pass]
local ystep = ystep[pass]
- local nx = idiv(xsize + xstep - xstart - 1,xstep)
- local ny = idiv(ysize + ystep - ystart - 1,ystep)
+ local nx = (xsize + xstep - xstart - 1) // xstep
+ local ny = (ysize + ystep - ystart - 1) // ystep
if nx > 0 and ny > 0 then
local input, filter
if parts then
@@ -715,164 +743,177 @@ do
return r
end
- local function createmask_l(content,palette,transparent,xsize,ysize,colordepth,colorspace)
- if palette then
- local r = expandvector(transparent)
- local size = xsize*ysize
- local len = ceil(xsize*colordepth/8) + 1
- local o = newoutput(xsize*ysize)
- local u = setmetatableindex(zero)
- content = zlibdecompress(content)
- content = openstring(content)
- for i=0,ysize-1 do
- local t = readbytetable(content,len)
- local k = i * xsize
- local filter = t[1]
- if filter == 0 then
- elseif filter == 1 then
- for j=3,len do
- t[j] = (t[j] + t[j-1]) % 256
- end
- elseif filter == 2 then
- for j=2,len do
- t[j] = (t[j] + u[j]) % 256
- end
- elseif filter == 3 then
- local j = 2
- t[j] = (t[j] + idiv(u[j],2)) % 256
- for j=3,len do
- t[j] = (t[j] + idiv(t[j-1] + u[j],2)) % 256
- end
- elseif filter == 4 then
- local j = 2
- local p = j - len
- local b = t[p]
- if b < 0 then
- b = - b
- end
- if b > 0 then
- t[j] = (t[j] + b) % 256
- end
- for j=3,len do
- local p = j - len
- local a = t[j-1]
- local b = t[p]
- local c = t[p-1]
- local pa = b - c
- local pb = a - c
- local pc = pa + pb
- if pa < 0 then pa = - pa end
- if pb < 0 then pb = - pb end
- if pc < 0 then pc = - pc end
- t[j] = (t[j] + ((pa <= pb and pa <= pc and a) or (pb <= pc and b) or c)) % 256
- end
- end
- if colordepth == 8 then
- for j=2,len do
- local v = t[j]
- k = k + 1 ; o[k] = r[v]
- end
- elseif colordepth == 4 then
- for j=2,len do
- local v = t[j]
- k = k + 1 ; o[k] = r[extract4(v,4)]
- k = k + 1 ; o[k] = r[extract4(v,0)]
- end
- elseif colordepth == 2 then
- for j=2,len do
- local v = t[j]
- k = k + 1 ; o[k] = r[extract2(v,6)]
- k = k + 1 ; o[k] = r[extract2(v,4)]
- k = k + 1 ; o[k] = r[extract2(v,2)]
- k = k + 1 ; o[k] = r[extract2(v,0)]
- end
- else
- for j=2,len do
- local v = t[j]
- k = k + 1 ; o[k] = r[extract1(v,7)]
- k = k + 1 ; o[k] = r[extract1(v,6)]
- k = k + 1 ; o[k] = r[extract1(v,5)]
- k = k + 1 ; o[k] = r[extract1(v,4)]
- k = k + 1 ; o[k] = r[extract1(v,3)]
- k = k + 1 ; o[k] = r[extract1(v,2)]
- k = k + 1 ; o[k] = r[extract1(v,1)]
- k = k + 1 ; o[k] = r[extract1(v,0)]
- end
- end
- u = t
- end
- return concat(o,"",1,size)
- end
- end
+ -- local function createmask_l(content,palette,transparent,xsize,ysize,colordepth,colorspace)
+ -- if palette then
+ -- local r = expandvector(transparent)
+ -- local size = xsize*ysize
+ -- local len = ceil(xsize*colordepth/8) + 1
+ -- local o = newoutput(xsize*ysize)
+ -- local u = setmetatableindex(zero)
+ -- content = zlibdecompress(content)
+ -- content = openstring(content)
+ -- for i=0,ysize-1 do
+ -- local t = readbytetable(content,len)
+ -- local k = i * xsize
+ -- local filter = t[1]
+ -- if filter == 0 then
+ -- elseif filter == 1 then
+ -- for j=3,len do
+ -- t[j] = (t[j] + t[j-1]) % 256
+ -- end
+ -- elseif filter == 2 then
+ -- for j=2,len do
+ -- t[j] = (t[j] + u[j]) % 256
+ -- end
+ -- elseif filter == 3 then
+ -- local j = 2
+ -- t[j] = (t[j] + idiv(u[j],2)) % 256
+ -- for j=3,len do
+ -- t[j] = (t[j] + idiv(t[j-1] + u[j],2)) % 256
+ -- end
+ -- elseif filter == 4 then
+ -- local j = 2
+ -- local p = j - len
+ -- local b = t[p]
+ -- if b < 0 then
+ -- b = - b
+ -- end
+ -- if b > 0 then
+ -- t[j] = (t[j] + b) % 256
+ -- end
+ -- for j=3,len do
+ -- local p = j - len
+ -- local a = t[j-1]
+ -- local b = t[p]
+ -- local c = t[p-1]
+ -- local pa = b - c
+ -- local pb = a - c
+ -- local pc = pa + pb
+ -- if pa < 0 then pa = - pa end
+ -- if pb < 0 then pb = - pb end
+ -- if pc < 0 then pc = - pc end
+ -- t[j] = (t[j] + ((pa <= pb and pa <= pc and a) or (pb <= pc and b) or c)) % 256
+ -- end
+ -- end
+ -- if colordepth == 8 then
+ -- for j=2,len do
+ -- local v = t[j]
+ -- k = k + 1 ; o[k] = r[v]
+ -- end
+ -- elseif colordepth == 4 then
+ -- for j=2,len do
+ -- local v = t[j]
+ -- k = k + 1 ; o[k] = r[extract4(v,4)]
+ -- k = k + 1 ; o[k] = r[extract4(v,0)]
+ -- end
+ -- elseif colordepth == 2 then
+ -- for j=2,len do
+ -- local v = t[j]
+ -- k = k + 1 ; o[k] = r[extract2(v,6)]
+ -- k = k + 1 ; o[k] = r[extract2(v,4)]
+ -- k = k + 1 ; o[k] = r[extract2(v,2)]
+ -- k = k + 1 ; o[k] = r[extract2(v,0)]
+ -- end
+ -- else
+ -- for j=2,len do
+ -- local v = t[j]
+ -- k = k + 1 ; o[k] = r[extract1(v,7)]
+ -- k = k + 1 ; o[k] = r[extract1(v,6)]
+ -- k = k + 1 ; o[k] = r[extract1(v,5)]
+ -- k = k + 1 ; o[k] = r[extract1(v,4)]
+ -- k = k + 1 ; o[k] = r[extract1(v,3)]
+ -- k = k + 1 ; o[k] = r[extract1(v,2)]
+ -- k = k + 1 ; o[k] = r[extract1(v,1)]
+ -- k = k + 1 ; o[k] = r[extract1(v,0)]
+ -- end
+ -- end
+ -- u = t
+ -- end
+ -- return concat(o,"",1,size)
+ -- end
+ -- end
+
+ -- We had this for a while (the reference now):
+ --
+ -- local function createmask_c(content,palette,transparent,xsize,ysize,colordepth,colorspace)
+ -- if palette then
+ -- local r = expandvector(transparent)
+ -- local size = xsize*ysize
+ -- local len = ceil(xsize*colordepth/8)
+ -- local o = newoutput(size)
+ -- content = zlibdecompress(content)
+ -- content = pngapplyfilter(content,len,ysize,1) -- nostrip (saves copy)
+ -- content = openstring(content)
+ -- for i=0,ysize-1 do
+ -- local t = readbytetable(content,len)
+ -- local k = i * xsize
+ -- if colordepth == 8 then
+ -- for j=1,len do
+ -- local v = t[j]
+ -- k = k + 1 ; o[k] = r[v]
+ -- end
+ -- elseif colordepth == 4 then
+ -- for j=1,len do
+ -- local v = t[j]
+ -- k = k + 1 ; o[k] = r[(v >> 4) & 0x0F] -- r[extract4(v,4)]
+ -- k = k + 1 ; o[k] = r[(v >> 0) & 0x0F] -- r[extract4(v,0)]
+ -- end
+ -- elseif colordepth == 2 then
+ -- for j=1,len do
+ -- local v = t[j]
+ -- k = k + 1 ; o[k] = r[(v >> 6) & 0x03] -- r[extract2(v,6)]
+ -- k = k + 1 ; o[k] = r[(v >> 4) & 0x03] -- r[extract2(v,4)]
+ -- k = k + 1 ; o[k] = r[(v >> 2) & 0x03] -- r[extract2(v,2)]
+ -- k = k + 1 ; o[k] = r[(v >> 0) & 0x03] -- r[extract2(v,0)]
+ -- end
+ -- else
+ -- for j=1,len do
+ -- local v = t[j]
+ -- k = k + 1 ; o[k] = r[(v >> 7) & 0x01] -- r[extract1(v,7)]
+ -- k = k + 1 ; o[k] = r[(v >> 6) & 0x01] -- r[extract1(v,6)]
+ -- k = k + 1 ; o[k] = r[(v >> 5) & 0x01] -- r[extract1(v,5)]
+ -- k = k + 1 ; o[k] = r[(v >> 4) & 0x01] -- r[extract1(v,4)]
+ -- k = k + 1 ; o[k] = r[(v >> 3) & 0x01] -- r[extract1(v,3)]
+ -- k = k + 1 ; o[k] = r[(v >> 2) & 0x01] -- r[extract1(v,2)]
+ -- k = k + 1 ; o[k] = r[(v >> 1) & 0x01] -- r[extract1(v,1)]
+ -- k = k + 1 ; o[k] = r[(v >> 0) & 0x01] -- r[extract1(v,0)]
+ -- end
+ -- end
+ -- end
+ -- return concat(o,"",1,size)
+ -- end
+ -- end
+ --
+ -- But this is nicer for memory usage:
local function createmask_c(content,palette,transparent,xsize,ysize,colordepth,colorspace)
if palette then
- local r = expandvector(transparent)
- local size = xsize*ysize
- local len = ceil(xsize*colordepth/8)
- local o = newoutput(size)
- content = zlibdecompress(content)
- content = pngapplyfilter(content,len,ysize,1) -- nostrip (saves copy)
- content = openstring(content)
- for i=0,ysize-1 do
- local t = readbytetable(content,len)
- local k = i * xsize
- if colordepth == 8 then
- for j=1,len do
- local v = t[j]
- k = k + 1 ; o[k] = r[v]
- end
- elseif colordepth == 4 then
- for j=1,len do
- local v = t[j]
- k = k + 1 ; o[k] = r[extract4(v,4)]
- k = k + 1 ; o[k] = r[extract4(v,0)]
- end
- elseif colordepth == 2 then
- for j=1,len do
- local v = t[j]
- k = k + 1 ; o[k] = r[extract2(v,6)]
- k = k + 1 ; o[k] = r[extract2(v,4)]
- k = k + 1 ; o[k] = r[extract2(v,2)]
- k = k + 1 ; o[k] = r[extract2(v,0)]
- end
- else
- for j=1,len do
- local v = t[j]
- k = k + 1 ; o[k] = r[extract1(v,7)]
- k = k + 1 ; o[k] = r[extract1(v,6)]
- k = k + 1 ; o[k] = r[extract1(v,5)]
- k = k + 1 ; o[k] = r[extract1(v,4)]
- k = k + 1 ; o[k] = r[extract1(v,3)]
- k = k + 1 ; o[k] = r[extract1(v,2)]
- k = k + 1 ; o[k] = r[extract1(v,1)]
- k = k + 1 ; o[k] = r[extract1(v,0)]
- end
- end
- end
- return concat(o,"",1,size)
- end
- end
-
- local function tocmyk_l(content,colordepth)
- local l = #content
- local t = { }
- local n = 0
- if colordepth == 8 then
- for i=1,l,3 do
- local r, g, b = byte(content,i,i+2)
- n = n + 1 ; t[n] = char(255-r,255-g,255-b,0) -- a tad faster than chars[...]
- end
- else
- for i=1,l,6 do
- local r1, r2, g1, g2, b1, b2 = byte(content,i,i+5)
- n = n + 1 ; t[n] = char(255-r1,255-r2,255-g1,255-g2,255-b1,255-b2,0,0)
- end
+ local len = ceil(xsize*colordepth/8)
+ content = zlibdecompress(content)
+ content = pngapplyfilter(content,len,ysize,1) -- nostrip (saves copy)
+ return pngtomask(content,transparent,xsize,ysize,colordepth)
end
- return concat(t)
end
- local tocmyk_c = pngtocmyk or tocmyk_l
+ -- local function tocmyk_l(content,colordepth)
+ -- local l = #content
+ -- local t = { }
+ -- local n = 0
+ -- if colordepth == 8 then
+ -- for i=1,l,3 do
+ -- local r, g, b = byte(content,i,i+2)
+ -- n = n + 1 ; t[n] = char(255-r,255-g,255-b,0) -- a tad faster than chars[...]
+ -- end
+ -- else
+ -- for i=1,l,6 do
+ -- local r1, r2, g1, g2, b1, b2 = byte(content,i,i+5)
+ -- n = n + 1 ; t[n] = char(255-r1,255-r2,255-g1,255-g2,255-b1,255-b2,0,0)
+ -- end
+ -- end
+ -- return concat(t)
+ -- end
+
+ local tocmyk_c = pngtocmyk
local function converttocmyk(content,colorspace,colordepth)
if colorspace == "DeviceRGB" and colordepth == 8 or colordepth == 16 then
@@ -885,16 +926,16 @@ do
return content, colorspace
end
- local function switch(v)
- if v then
- filtermask = filtermask_l
- decodemask = decodemask_l
- decodestrip = decodestrip_l
- transpose = transpose_l
- expand = expand_l
- createmask = createmask_l
- tocmyk = tocmyk_l
- else
+ -- local function switch(v)
+ -- if v then
+ -- filtermask = filtermask_l
+ -- decodemask = decodemask_l
+ -- decodestrip = decodestrip_l
+ -- transpose = transpose_l
+ -- expand = expand_l
+ -- createmask = createmask_l
+ -- tocmyk = tocmyk_l
+ -- else
filtermask = filtermask_c
decodemask = decodemask_c
decodestrip = decodestrip_c
@@ -902,15 +943,15 @@ do
expand = expand_c
createmask = createmask_c
tocmyk = tocmyk_c
- end
- end
+ -- end
+ -- end
- if pngapplyfilter then
- switch(false)
- directives.register("graphics.png.purelua",switch)
- else
- switch(true)
- end
+ -- if pngapplyfilter then
+ -- switch(false)
+ -- directives.register("graphics.png.purelua",switch)
+ -- else
+ -- switch(true)
+ -- end
local alwaysdecode = false -- trucky with palettes
local compresslevel = 3
@@ -955,7 +996,7 @@ do
if not idat then
return
end
- local pngfile = newcontent(filename,method)
+ local pngfile = newcontent(filename,method,true)
if not pngfile then
return
end
@@ -1125,7 +1166,7 @@ do
palette = pdfarray {
pdfconstant("Indexed"),
pdfconstant(colorspace),
- idiv(#palette,nofbytes),
+ #palette // nofbytes,
pdfreference(pdfflushstreamobject(palette)),
}
end
@@ -1140,6 +1181,7 @@ do
Filter = filter,
ColorSpace = palette or pdfconstant(colorspace),
Length = #content,
+-- Decode = pdfarray { 0, .5, 0, .5, 0, .5 } -- darker (test for luatex list)
} + specification.attr
if mask then
local d = pdfdictionary {
@@ -1149,6 +1191,7 @@ do
Height = ysize,
BitsPerComponent = palette and 8 or colordepth,
ColorSpace = pdfconstant("DeviceGray"),
+-- Decode = pdfarray { 0, .5, 0, .5, 0, .5 }, -- lighter (test for luatex list)
}
xobject.SMask = pdfreference(pdfflushstreamobject(mask,d()))
end
@@ -1200,38 +1243,41 @@ do
s = - s
end
if s > 0 then
- if s == 1 then
- for i=1,y do
- local r = d[i]
- for j=1,x do
- n = n + 1 ; t[n] = chars[r[j]]
- end
- end
- elseif s == 2 then
- for i=1,y do
- local r = d[i]
- for j=1,x do
- local c = r[j]
- n = n + 1 ; t[n] = chars[c[1]]
- n = n + 1 ; t[n] = chars[c[2]]
- n = n + 1 ; t[n] = chars[c[3]]
- -- n = n + 1 ; t[n] = char(c[1],c[2],c[3]) -- test this
- end
- end
- elseif s == 3 then
- for i=1,y do
- local r = d[i]
- for j=1,x do
- local c = r[j]
- n = n + 1 ; t[n] = chars[c[1]]
- n = n + 1 ; t[n] = chars[c[2]]
- n = n + 1 ; t[n] = chars[c[3]]
- n = n + 1 ; t[n] = chars[c[4]]
- -- n = n + 1 ; t[n] = char(c[1],c[2],c[3],c[4]) -- test this
- end
- end
- end
- return concat(t)
+ -- if true then
+ return string.packrowscolumns(d)
+ -- end
+ -- if s == 1 then
+ -- for i=1,y do
+ -- local r = d[i]
+ -- for j=1,x do
+ -- n = n + 1 ; t[n] = chars[r[j]]
+ -- end
+ -- end
+ -- elseif s == 2 then
+ -- for i=1,y do
+ -- local r = d[i]
+ -- for j=1,x do
+ -- local c = r[j]
+ -- n = n + 1 ; t[n] = chars[c[1]]
+ -- n = n + 1 ; t[n] = chars[c[2]]
+ -- n = n + 1 ; t[n] = chars[c[3]]
+ -- -- n = n + 1 ; t[n] = char(c[1],c[2],c[3]) -- test this
+ -- end
+ -- end
+ -- elseif s == 3 then
+ -- for i=1,y do
+ -- local r = d[i]
+ -- for j=1,x do
+ -- local c = r[j]
+ -- n = n + 1 ; t[n] = chars[c[1]]
+ -- n = n + 1 ; t[n] = chars[c[2]]
+ -- n = n + 1 ; t[n] = chars[c[3]]
+ -- n = n + 1 ; t[n] = chars[c[4]]
+ -- -- n = n + 1 ; t[n] = char(c[1],c[2],c[3],c[4]) -- test this
+ -- end
+ -- end
+ -- end
+ -- return concat(t)
else
local z = d[0] and 0 or 1
if s == -1 then
@@ -1273,7 +1319,7 @@ do
elseif colorspace == 2 then
colorspace = "DeviceRGB"
elseif colorspace == 3 then
- colorspace = "DeviceCMYK"
+ colorspace = "DeviceCMYK"
end
local colordepth = (specification.colordepth or 2) == 16 or 8
local index = specification.index
@@ -1309,8 +1355,10 @@ do
}
xobject.SMask = pdfreference(pdfflushstreamobject(pack(specification,"mask"),d()))
end
+ local w = specification.width
+ local h = specification.height
return createimage {
- bbox = { 0, 0, specification.width/xsize, specification.height/ysize }, -- mandate
+ bbox = { 0, 0, w and (w/xsize) or xsize, h and (h/ysize) or ysize }, -- mandate
-- nolength = true,
nobbox = true,
notype = true,
@@ -1319,7 +1367,7 @@ do
}
end
- backends.pdf.codeinjections.bitmap = injectors.bitmap
+ codeinjections.bitmap = injectors.bitmap
end
@@ -1346,6 +1394,6 @@ end
-- return true
-- end
-backends.pdf.codeinjections.jpg = lpdf.injectors.jpg
-backends.pdf.codeinjections.jp2 = lpdf.injectors.jp2
-backends.pdf.codeinjections.png = lpdf.injectors.png
+codeinjections.jpg = lpdf.injectors.jpg
+codeinjections.jp2 = lpdf.injectors.jp2
+codeinjections.png = lpdf.injectors.png
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-ini.lmt
index 27625606aa6..d4b0ccc64e4 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-ini.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-ini.lmt
@@ -7,10 +7,57 @@ if not modules then modules = { } end modules ['lpdf-ini'] = {
license = "see context related readme files"
}
--- beware of "too many locals" here
+-- This file is the starting point for PDF related features. Although quite a bit
+-- evolved over time, most of what we do in MkIV and LMTX already was available in
+-- MkII (with e.g. pdfTeX) anyway, but it was implemented in TeX. We're talking of
+-- arbitrary annotations, media like audio and video, widgets (aka forms) with
+-- chains and appearances, comments, attachments, javascript based manipulation of
+-- layers, graphic trickery like shading, color spaces, transparancy, flash stuff,
+-- executing commands, accessing the interface, etc. In that respect there isn't
+-- much really new here, after all MkII was there before the turn of the century,
+-- but it's just more fun to maintain it in Lua than in low level TeX. Also, because
+-- we no longer deal with other engines, there is no need to go low level TeX, which
+-- makes for better code.
+--
+-- However, over the decades PDF evolved and it shows. For instance audio and video
+-- support changed and became worse. Some things were dropped (smil, flash, movies,
+-- audio). Using appearances for widgets became a pain because it sort of assumes
+-- that you construct these forms in acrobat which then leads to bugs becoming
+-- features which means that certain things simply don't work (initializations,
+-- chained widgets, funny dingabt defaults, etc), probably because they never were
+-- tested when viewers evolved.
+--
+-- Attachment are also a fragile bit. And comments that at some point became
+-- dependent on rendering annotations ... it all deserves no beauty price because
+-- reliable simplicity was replaced by unreliable complexity. Something that might
+-- work today often didn't in the past and might fail in the future, if only because
+-- it more relates to the viewer user interface, maybe changing security demands or
+-- whatever. We cannot predict this. A side effect is that we keep adapting and even
+-- worse, have to remove features that originally were expected to stay (media
+-- stuff). To some extend it's a waste of time to get it all supported, also because
+-- the open source viewers lag behind. It makes no sense to keep tons of code
+-- arround that will never be used (again).
+--
+-- Also, I don't think that these PDF features were added with something else than
+-- Acrobat in mind: a flexible system like TeX that actually could inject these low
+-- level features right from the moment that they showed up (and before they were
+-- fully tested) is not mainstream enough to be taken into account. One cannot blame
+-- a commercial product for its own priorities. The evolution of the web might also
+-- have interfered with the agendas.
+--
+-- As a consequence, the code that we use is spread over files and it might change
+-- over time as we try to adapt. But it's easy for the mentioned features to fix one
+-- aspect and break another. Eventually we might see more of these fancy features to
+-- be removed because they make no sense on the long run, than such features being
+-- added. In retrospect maybe many such features were just experiments: anchored in
+-- time for throw away documents (like presentations), never meant to be used on the
+-- long term. In that respect PDF is a disappointment.
+
+-- Comment: beware of "too many locals" problem here.
local setmetatable, getmetatable, type, next, tostring, tonumber, rawset = setmetatable, getmetatable, type, next, tostring, tonumber, rawset
-local char, byte, format, gsub, concat, match, sub, gmatch = string.char, string.byte, string.format, string.gsub, table.concat, string.match, string.sub, string.gmatch
+local concat = table.concat
+local char, byte, format, sub, tohex = string.char, string.byte, string.format, string.sub, string.tohex
local utfchar, utfbyte, utfvalues = utf.char, utf.byte, utf.values
local sind, cosd, max, min = math.sind, math.cosd, math.max, math.min
local sort, sortedhash = table.sort, table.sortedhash
@@ -18,37 +65,24 @@ local P, C, R, S, Cc, Cs, V = lpeg.P, lpeg.C, lpeg.R, lpeg.S, lpeg.Cc, lpeg.Cs,
local lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns
local formatters = string.formatters
local isboolean = string.is_boolean
-local rshift = bit32.rshift
local report_objects = logs.reporter("backend","objects")
local report_finalizing = logs.reporter("backend","finalizing")
local report_blocked = logs.reporter("backend","blocked")
-local implement = interfaces.implement
-
+local implement = interfaces and interfaces.implement
local context = context
-- In ConTeXt MkIV we use utf8 exclusively so all strings get mapped onto a hex
-- encoded utf16 string type between <>. We could probably save some bytes by using
--- strings between () but then we end up with escaped ()\ too.
+-- strings between () but then we end up with escaped ()\ characters too.
pdf = type(pdf) == "table" and pdf or { }
local factor = number.dimenfactors.bp
-local codeinjections = { }
-local nodeinjections = { }
-
-local backends = backends
-
-local pdfbackend = {
- comment = "backend for directly generating pdf output",
- nodeinjections = nodeinjections,
- codeinjections = codeinjections,
- registrations = { },
- tables = { },
-}
-
-backends.pdf = pdfbackend
+local pdfbackend = backends and backends.registered.pdf or { }
+local codeinjections = pdfbackend.codeinjections
+local nodeinjections = pdfbackend.nodeinjections
lpdf = lpdf or { }
local lpdf = lpdf
@@ -62,34 +96,51 @@ end)
local trace_finalizers = false trackers.register("backend.finalizers", function(v) trace_finalizers = v end)
local trace_resources = false trackers.register("backend.resources", function(v) trace_resources = v end)
+do
+
+ -- This is for a future feature (still under investigation and consideration). So,
+ -- it is work in progress (and brings a harmless overhead for now).
+
+ local initializers = { }
+
+ function lpdf.registerinitializer(initialize)
+ initializers[#initializers+1] = initialize
+ end
+
+ function lpdf.initialize(f)
+ for i=1,#initializers do
+ initializers[i]()
+ end
+ end
+
+end
+
local pdfreserveobject
local pdfimmediateobject
-updaters.register("backend.update.lpdf",function()
- pdfreserveobject = lpdf.reserveobject
- pdfimmediateobject = lpdf.immediateobject
+updaters.register("backends.pdf.latebindings",function()
+ pdfreserveobject = lpdf.reserveobject
+ pdfimmediateobject = lpdf.immediateobject
end)
do
- updaters.register("backend.update.lpdf",function()
+ local pdfgetmatrix, pdfhasmatrix, pdfgetpos
+
+ updaters.register("backends.pdf.latebindings",function()
job.positions.registerhandlers {
getpos = drivers.getpos,
getrpos = drivers.getrpos,
gethpos = drivers.gethpos,
getvpos = drivers.getvpos,
}
- lpdf.getpos = drivers.getpos
- end)
-
- local pdfgetmatrix, pdfhasmatrix, pdfgetpos
-
- updaters.register("backend.update.lpdf",function()
pdfgetmatrix = lpdf.getmatrix
pdfhasmatrix = lpdf.hasmatrix
- pdfgetpos = lpdf.getpos
+ pdfgetpos = drivers.getpos
end)
+ function lpdf.getpos() return pdfgetpos() end
+
-- local function transform(llx,lly,urx,ury,rx,sx,sy,ry)
-- local x1 = llx * rx + lly * sy
-- local y1 = llx * sx + lly * ry
@@ -146,27 +197,6 @@ do
end
--- we could use a hash of predefined unicodes
-
--- local function tosixteen(str) -- an lpeg might be faster (no table)
--- if not str or str == "" then
--- return "<feff>" -- not () as we want an indication that it's unicode
--- else
--- local r, n = { "<feff" }, 1
--- for b in utfvalues(str) do
--- n = n + 1
--- if b < 0x10000 then
--- r[n] = format("%04x",b)
--- else
--- r[n] = format("%04x%04x",rshift(b,10),b%1024+0xDC00)
--- end
--- end
--- n = n + 1
--- r[n] = ">"
--- return concat(r)
--- end
--- end
-
local tosixteen, fromsixteen, topdfdoc, frompdfdoc, toeight, fromeight
do
@@ -177,8 +207,7 @@ do
v = format("%04x",v)
else
v = v - 0x10000
- v = format("%04x%04x",rshift(v,10)+0xD800,v%1024+0xDC00)
- -- v = format("%04x%04x",rshift(v-0x10000,10)+0xD800,v%1024+0xDC00)
+ v = format("%04x%04x",(v>>10)+0xD800,v%1024+0xDC00)
end
t[k] = v
return v
@@ -194,6 +223,8 @@ do
end
end
+ -- we could make a helper for this
+
local more = 0
local pattern = C(4) / function(s) -- needs checking !
@@ -220,8 +251,8 @@ do
end
end
- local toregime = regimes.toregime
- local fromregime = regimes.fromregime
+ local toregime = regimes and regimes.toregime
+ local fromregime = regimes and regimes.fromregime
local escaped = Cs(Cc("(") * (S("\\()\n\r\t\b\f")/"\\%0" + P(1))^0 * Cc(")"))
topdfdoc = function(str,default)
@@ -323,22 +354,54 @@ do
end
+local pdfescaped do
+
+ local replacer = S("\0\t\n\r\f ()[]{}/%%#\\") / {
+ ["\00"]="#00",
+ ["\09"]="#09",
+ ["\10"]="#0a",
+ ["\12"]="#0c",
+ ["\13"]="#0d",
+ [ " " ]="#20",
+ [ "#" ]="#23",
+ [ "%" ]="#25",
+ [ "(" ]="#28",
+ [ ")" ]="#29",
+ [ "/" ]="#2f",
+ [ "[" ]="#5b",
+ [ "\\"]="#5c",
+ [ "]" ]="#5d",
+ [ "{" ]="#7b",
+ [ "}" ]="#7d",
+ } + P(1)
+
+ local p_escaped_1 = Cs(Cc("/") * replacer^0)
+ local p_escaped_2 = Cs( replacer^0)
+
+ pdfescaped = function(str,slash)
+ return lpegmatch(slash and p_escaped_1 or p_escaped_2,str) or str
+ end
+
+ lpdf.escaped = pdfescaped
+
+end
+
local tostring_a, tostring_d
do
- local f_key_null = formatters["/%s null"]
- local f_key_value = formatters["/%s %s"]
- -- local f_key_dictionary = formatters["/%s << % t >>"]
+ local f_key_null = formatters["%s null"]
+ local f_key_value = formatters["%s %s"]
+ -- local f_key_dictionary = formatters["%s << % t >>"]
-- local f_dictionary = formatters["<< % t >>"]
- local f_key_dictionary = formatters["/%s << %s >>"]
+ local f_key_dictionary = formatters["%s << %s >>"]
local f_dictionary = formatters["<< %s >>"]
- -- local f_key_array = formatters["/%s [ % t ]"]
+ -- local f_key_array = formatters["%s [ % t ]"]
-- local f_array = formatters["[ % t ]"]
- local f_key_array = formatters["/%s [ %s ]"]
+ local f_key_array = formatters["%s [ %s ]"]
local f_array = formatters["[ %s ]"]
- local f_key_number = formatters["/%s %N"] -- always with max 9 digits and integer is possible
- local f_tonumber = formatters["%N"] -- always with max 9 digits and integer is possible
+ local f_key_number = formatters["%s %N"] -- always with max 9 digits and integer is possible
+ local f_tonumber = formatters["%N"] -- always with max 9 digits and integer is possible
tostring_d = function(t,contentonly,key)
if next(t) then
@@ -363,6 +426,9 @@ do
local v = t[k]
local tv = type(v)
-- mostly tables
+ --
+ k = pdfescaped(k,true)
+ --
if tv == "table" then
-- local mv = getmetatable(v)
-- if mv and mv.__lpdftype then
@@ -393,7 +459,7 @@ do
if contentonly then
return r
elseif key then
- return f_key_dictionary(key,r)
+ return f_key_dictionary(pdfescaped(key,true),r)
else
return f_dictionary(r)
end
@@ -443,7 +509,7 @@ do
if contentonly then
return r
elseif key then
- return f_key_array(key,r)
+ return f_key_array(pdfescaped(key,true),r)
else
return f_array(r)
end
@@ -620,29 +686,10 @@ do
for i=-1,9 do cache[i] = pdfnumber(i) end
- local replacer = S("\0\t\n\r\f ()[]{}/%%#\\") / {
- ["\00"]="#00",
- ["\09"]="#09",
- ["\10"]="#0a",
- ["\12"]="#0c",
- ["\13"]="#0d",
- [ " " ]="#20",
- [ "#" ]="#23",
- [ "%" ]="#25",
- [ "(" ]="#28",
- [ ")" ]="#29",
- [ "/" ]="#2f",
- [ "[" ]="#5b",
- [ "\\"]="#5c",
- [ "]" ]="#5d",
- [ "{" ]="#7b",
- [ "}" ]="#7d",
- } + P(1)
-
- local escaped = Cs(Cc("/") * replacer^0)
+ local escaped = lpdf.escaped
local cache = table.setmetatableindex(function(t,k)
- local v = setmetatable({ lpegmatch(escaped,k) }, mt_c)
+ local v = setmetatable({ escaped(k,true) }, mt_c)
t[k] = v
return v
end)
@@ -654,12 +701,6 @@ do
return cache[str]
end
- local escaped = Cs(replacer^0)
-
- function lpdf.escaped(str)
- return lpegmatch(escaped,str) or str
- end
-
end
local pdfnull, pdfboolean, pdfreference, pdfverbose
@@ -725,6 +766,8 @@ lpdf.reference = pdfreference
lpdf.verbose = pdfverbose
lpdf.literal = pdfliteral
+if not callbacks then return lpdf end
+
-- three priority levels, default=2
local pagefinalizers = { { }, { }, { } }
@@ -748,6 +791,8 @@ end
resetpageproperties()
+lpdf.registerinitializer(resetpageproperties)
+
local function addtopageresources (k,v) pageresources [k] = v end
local function addtopageattributes (k,v) pageattributes [k] = v end
local function addtopagesattributes(k,v) pagesattributes[k] = v end
@@ -807,13 +852,12 @@ function lpdf.finalizepage(shipout)
end
end
+local finalized = false
+
function lpdf.finalizedocument()
- if not environment.initex then
+ if not environment.initex and not finalized then
run(documentfinalizers,"document")
- function lpdf.finalizedocument()
- -- report_finalizing("serious error: the document is finalized multiple times")
- function lpdf.finalizedocument() end
- end
+ finalized = true
end
end
@@ -868,7 +912,6 @@ do
local function flushcatalog()
if checkcatalog() then
catalog.Type = nil
--- pdfsetcatalog(catalog())
end
end
@@ -928,6 +971,12 @@ do
local d_extgstates, d_colorspaces, d_patterns, d_shades
local p_extgstates, p_colorspaces, p_patterns, p_shades
+ lpdf.registerinitializer(function()
+ r_extgstates = nil ; r_colorspaces = nil ; r_patterns = nil ; r_shades = nil ;
+ d_extgstates = nil ; d_colorspaces = nil ; d_patterns = nil ; d_shades = nil ;
+ p_extgstates = nil ; p_colorspaces = nil ; p_patterns = nil ; p_shades = nil ;
+ end)
+
local function checkextgstates () if d_extgstates then addtopageresources("ExtGState", p_extgstates ) end end
local function checkcolorspaces() if d_colorspaces then addtopageresources("ColorSpace",p_colorspaces) end end
local function checkpatterns () if d_patterns then addtopageresources("Pattern", p_patterns ) end end
@@ -946,7 +995,7 @@ do
local pdfgetfontobjectnumber
- updaters.register("backend.update.lpdf",function()
+ updaters.register("backends.pdf.latebindings",function()
pdfgetfontobjectnumber = lpdf.getfontobjectnumber
end)
@@ -1051,73 +1100,6 @@ function lpdf.rotationcm(a)
return format("%.6F %.6F %.6F %.6F 0 0 cm",c,s,-s,c)
end
--- ! -> universaltime
-
-do
-
- -- It's a bit of a historical mess here.
-
- local osdate, ostime, ostimezone = os.date, os.time, os.timezone
-
- local metadata = nil
- local timestamp = osdate("%Y-%m-%dT%X") .. ostimezone(true)
-
- function lpdf.getmetadata()
- if not metadata then
- local contextversion = environment.version
- local luatexversion = format("%1.2f",LUATEXVERSION)
- local luatexfunctionality = tostring(LUATEXFUNCTIONALITY)
- metadata = {
- producer = format("LuaTeX-%s",luatexversion),
- creator = format("LuaTeX %s %s + ConTeXt LMTX %s",luatexversion,luatexfunctionality,contextversion),
- luatexversion = luatexversion,
- contextversion = contextversion,
- luatexfunctionality = luatexfunctionality,
- luaversion = tostring(LUAVERSION),
- platform = os.platform,
- time = timestamp,
- }
- end
- return metadata
- end
-
- function lpdf.settime(n)
- if n then
- n = converters.totime(n)
- if n then
- converters.settime(n)
- timestamp = osdate("%Y-%m-%dT%X") .. ostimezone(true) -- probably not ok
- end
- end
- if metadata then
- metadata.time = timestamp
- end
- return timestamp
- end
-
- lpdf.settime(tonumber(resolvers.variable("start_time")) or tonumber(resolvers.variable("SOURCE_DATE_EPOCH"))) -- bah
-
- function lpdf.pdftimestamp(str)
- local t = type(str)
- if t == "string" then
- local Y, M, D, h, m, s, Zs, Zh, Zm = match(str,"^(%d%d%d%d)%-(%d%d)%-(%d%d)T(%d%d):(%d%d):(%d%d)([%+%-])(%d%d):(%d%d)$")
- return Y and format("D:%s%s%s%s%s%s%s%s'%s'",Y,M,D,h,m,s,Zs,Zh,Zm)
- else
- return osdate("D:%Y%m%d%H%M%S",t == "number" and str or ostime()) -- maybe "!D..." : universal time
- end
- end
-
- function lpdf.id(date)
- local banner = environment.jobname or tex.jobname or "unknown"
- if not date then
- return banner
- else
- return format("%s | %s",banner,timestamp)
- end
- end
-
-end
-
-- return nil is nicer in test prints
function lpdf.checkedkey(t,key,variant)
@@ -1196,15 +1178,16 @@ end
-- return formatters["BT /Span << /ActualText (CONTEXT) >> BDC [<feff>] TJ % t EMC ET"](code)
-do
+if implement then
local f_actual_text_p = formatters["BT /Span << /ActualText <feff%s> >> BDC %s EMC ET"]
local f_actual_text_b = formatters["BT /Span << /ActualText <feff%s> >> BDC"]
- local s_actual_text_e = "EMC ET"
local f_actual_text_b_not = formatters["/Span << /ActualText <feff%s> >> BDC"]
- local s_actual_text_e_not = "EMC"
local f_actual_text = formatters["/Span <</ActualText %s >> BDC"]
+ local s_actual_text_e <const> = "EMC ET"
+ local s_actual_text_e_not <const> = "EMC"
+
local context = context
local pdfdirect = nodes.pool.directliteral -- we can use nuts.write deep down
local tounicode = fonts.mappings.tounicode
@@ -1257,19 +1240,24 @@ do
end
--- interface
+-- Bah, tikz uses \immediate for some reason which is probably a bug, so the usage
+-- will deal with that. However, we will not provide the serialization.
+
+if implement then
+
+ implement { name = "pdfbackendcurrentresources", public = true, untraced = true, actions = { lpdf.collectedresources, context } }
+ implement { name = "pdfbackendsetcatalog", usage = "value", public = true, protected = true, arguments = "2 arguments", actions = lpdf.addtocatalog }
+ implement { name = "pdfbackendsetinfo", usage = "value", public = true, protected = true, arguments = "2 arguments", actions = function(a,b,c) lpdf.addtoinfo(a,b,c) end } -- gets adapted
+ implement { name = "pdfbackendsetname", usage = "value", public = true, protected = true, arguments = "2 arguments", actions = lpdf.addtonames }
+ implement { name = "pdfbackendsetpageattribute", usage = "value", public = true, protected = true, arguments = "2 arguments", actions = lpdf.addtopageattributes }
+ implement { name = "pdfbackendsetpagesattribute", usage = "value", public = true, protected = true, arguments = "2 arguments", actions = lpdf.addtopagesattributes }
+ implement { name = "pdfbackendsetpageresource", usage = "value", public = true, protected = true, arguments = "2 arguments", actions = lpdf.addtopageresources }
+ implement { name = "pdfbackendsetextgstate", usage = "value", public = true, protected = true, arguments = "2 arguments", actions = function(a,b) lpdf.adddocumentextgstate (a,pdfverbose(b)) end }
+ implement { name = "pdfbackendsetcolorspace", usage = "value", public = true, protected = true, arguments = "2 arguments", actions = function(a,b) lpdf.adddocumentcolorspace(a,pdfverbose(b)) end }
+ implement { name = "pdfbackendsetpattern", usage = "value", public = true, protected = true, arguments = "2 arguments", actions = function(a,b) lpdf.adddocumentpattern (a,pdfverbose(b)) end }
+ implement { name = "pdfbackendsetshade", usage = "value", public = true, protected = true, arguments = "2 arguments", actions = function(a,b) lpdf.adddocumentshade (a,pdfverbose(b)) end }
-implement { name = "lpdf_collectedresources", actions = { lpdf.collectedresources, context } }
-implement { name = "lpdf_addtocatalog", arguments = "2 strings", actions = lpdf.addtocatalog }
-implement { name = "lpdf_addtoinfo", arguments = "2 strings", actions = function(a,b,c) lpdf.addtoinfo(a,b,c) end } -- gets adapted
-implement { name = "lpdf_addtonames", arguments = "2 strings", actions = lpdf.addtonames }
-implement { name = "lpdf_addtopageattributes", arguments = "2 strings", actions = lpdf.addtopageattributes }
-implement { name = "lpdf_addtopagesattributes", arguments = "2 strings", actions = lpdf.addtopagesattributes }
-implement { name = "lpdf_addtopageresources", arguments = "2 strings", actions = lpdf.addtopageresources }
-implement { name = "lpdf_adddocumentextgstate", arguments = "2 strings", actions = function(a,b) lpdf.adddocumentextgstate (a,pdfverbose(b)) end }
-implement { name = "lpdf_adddocumentcolorspace", arguments = "2 strings", actions = function(a,b) lpdf.adddocumentcolorspace(a,pdfverbose(b)) end }
-implement { name = "lpdf_adddocumentpattern", arguments = "2 strings", actions = function(a,b) lpdf.adddocumentpattern (a,pdfverbose(b)) end }
-implement { name = "lpdf_adddocumentshade", arguments = "2 strings", actions = function(a,b) lpdf.adddocumentshade (a,pdfverbose(b)) end }
+end
-- more helpers: copy from lepd to lpdf
@@ -1331,11 +1319,16 @@ end
do
- -- This is obsolete but old viewers might still use it as directive
- -- for what to send to a postscript printer.
+ -- This is obsolete but old viewers might still use it as directive for what to
+ -- send to a postscript printer.
local a_procset, d_procset
+ lpdf.registerinitializer(function()
+ a_procset = nil
+ d_procset = nil
+ end)
+
function lpdf.procset(dict)
if not a_procset then
a_procset = pdfarray {
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-lmt.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-lmt.lmt
index fbc002a9327..1d47c162071 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-lmt.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-lmt.lmt
@@ -7,17 +7,17 @@ if not modules then modules = { } end modules ['lpdf-lmt'] = {
license = "see context related readme files"
}
--- The code below was originally in back-lpd.lua but it makes more sense in
--- this namespace. I will rename variables.
---
--- There is no way that a lua based backend can compete with the original one
--- for relative simple text runs. And we're talking seconds here on say 500
--- pages with paragraphs alternativng between three fonts and colors. But such
+-- The code below was originally in back-lpd.lua but it makes more sense in this
+-- namespace. I will rename variables.
+
+-- There is no way that a lua based backend can compete performance wise with the
+-- original one for relative simple text runs. And we're talking seconds here on say
+-- 500 pages with paragraphs alternativng between three fonts and colors. But such
-- documents are rare so in practice we are quite okay, especially because in
--- ConTeXt we can gain quite a bit elsewhere. So, when we loose 30% on such
--- simple documents, we break even on for instance the manual, and gain 30% on
--- Thomas's turture test (also for other reasons). But .. who knows what magic
--- I can cook up in due time.
+-- ConTeXt we can gain quite a bit elsewhere. So, when we loose 30% on such simple
+-- documents, we break even on for instance the manual, and gain 30% on Thomas's
+-- turture test (also for other reasons). But .. who knows what magic I can cook up
+-- in due time.
-- If you consider this complex, watch:
--
@@ -35,70 +35,81 @@ if not modules then modules = { } end modules ['lpdf-lmt'] = {
local type, next, unpack, tonumber, rawget = type, next, unpack, tonumber, rawget
local char, rep, find = string.char, string.rep, string.find
local formatters, splitupstring = string.formatters, string.splitup
-local band, extract = bit32.band, bit32.extract
local concat, sortedhash = table.concat, table.sortedhash
local setmetatableindex = table.setmetatableindex
local loaddata = io.loaddata
-local bpfactor = number.dimenfactors.bp
-
--- local md5HEX = md5.HEX
-local osuuid = os.uuid
-local zlibcompress = (xzip or zlib).compress
-
-local nuts = nodes.nuts
-local tonut = nodes.tonut
-
-local pdfreference = lpdf.reference
-local pdfdictionary = lpdf.dictionary
-local pdfarray = lpdf.array
-local pdfconstant = lpdf.constant
-local pdfliteral = lpdf.literal -- not to be confused with a whatsit!
-
-local pdfreserveobject
-local pdfpagereference
-local pdfflushobject
-local pdfsharedobject
-local pdfflushstreamobject
-local pdfdeferredobject
-local pdfimmediateobject
-
-local pdfgetfontname
-local pdfgetfontobjectnumber
-
-local pdfgetpagereference
-
-updaters.register("backend.update.lpdf",function()
- pdfreserveobject = lpdf.reserveobject
- pdfpagereference = lpdf.pagereference
- pdfflushobject = lpdf.flushobject
- pdfsharedobject = lpdf.shareobjectreference
- pdfflushstreamobject = lpdf.flushstreamobject
- pdfdeferredobject = lpdf.deferredobject
- pdfimmediateobject = lpdf.immediateobject
- --
- pdfgetfontname = lpdf.getfontname
- pdfgetfontobjectnumber = lpdf.getfontobjectnumber
- --
- pdfgetpagereference = lpdf.getpagereference
-end)
-
-local pdf_pages = pdfconstant("Pages")
-local pdf_page = pdfconstant("Page")
-local pdf_xobject = pdfconstant("XObject")
-local pdf_form = pdfconstant("Form")
-
-local fonthashes = fonts.hashes
-local characters = fonthashes.characters
-local descriptions = fonthashes.descriptions
-local parameters = fonthashes.parameters
-local properties = fonthashes.properties
-
-local report = logs.reporter("backend")
-local report_objects = logs.reporter("backend","objects")
+local bpfactor <const> = number.dimenfactors.bp
+
+local osuuid = os.uuid
+local zlibcompresssize = xzip.compresssize
+
+local nuts = nodes.nuts
+local tonut = nodes.tonut
+local tonode = nuts.tonode
+
+local pdfreference = lpdf.reference
+local pdfdictionary = lpdf.dictionary
+local pdfarray = lpdf.array
+local pdfconstant = lpdf.constant
+local pdfliteral = lpdf.literal -- not to be confused with a whatsit!
+
+local pdfreserveobject -- forward reference
+local pdfpagereference -- forward reference
+local pdfgetpagereference -- forward reference
+local pdfsharedobject -- forward reference
+local pdfflushobject -- forward reference
+local pdfflushstreamobject -- forward reference
+local pdfdeferredobject -- forward reference
+local pdfimmediateobject -- forward reference
+
+local pdfincludeimage -- forward reference
+
+local pdf_pages = pdfconstant("Pages")
+local pdf_page = pdfconstant("Page")
+local pdf_xobject = pdfconstant("XObject")
+local pdf_form = pdfconstant("Form")
+local pdf_pattern = pdfconstant("Pattern")
+
+local fonthashes = fonts.hashes
+local characters = fonthashes.characters
+local descriptions = fonthashes.descriptions
+local parameters = fonthashes.parameters
+local properties = fonthashes.properties
+
+local report = logs.reporter("backend")
+local report_objects = logs.reporter("backend","objects")
+local report_fonts = logs.reporter("backend","fonts")
+local report_encryption = logs.reporter("backend","encryption")
+
+local trace_objects = false trackers.register("backend.objects", function(v) trace_objects = v end)
+local trace_details = false trackers.register("backend.details", function(v) trace_details = v end)
+local trace_indices = false trackers.register("backend.fonts.details", function(v) trace_indices = v end)
+
+-- These two tables used a font id as index and will be metatabled in lpdf-emb.lmt:
+
+local usedfontnames = { }
+local usedfontobjects = { }
+
+lpdf.usedfontnames = usedfontnames
+lpdf.usedfontobjects = usedfontobjects
+
+-- experiment:
+
+local function compressdata(data,size)
+ local guess = ((size // 4096) + 1) * 2048
+ local comp = zlibcompresssize(data,guess,3)
+ -- if comp then
+ -- report()
+ -- report("size %i, guess %i, result %i => %s / %s",size,guess,#comp,guess>=#comp and "hit" or "miss")
+ -- report()
+ -- end
+ return comp
+end
-local trace_objects = false trackers.register("backend.objects", function(v) trace_objects = v end)
-local trace_details = false trackers.register("backend.details", function(v) trace_details = v end)
+-- local function compressdata(data,size)
+-- return zlibcompress(data,3)
+-- end
-- we collect them:
@@ -106,8 +117,10 @@ local flushers = { }
-- used variables
-local pdf_h, pdf_v
-local need_tm, need_tf, cur_tmrx, cur_factor, cur_f, cur_e
+local pdf_h = 0
+local pdf_v = 0
+
+local need_tm, need_tf, need_font, cur_tmrx, cur_factor
local need_width, need_mode, done_width, done_mode
local mode
local f_pdf_cur, f_pdf, fs_cur, fs, f_cur, f_x_scale, f_y_scale
@@ -116,11 +129,14 @@ local usedfonts, usedxforms, usedximages, usedxgroups
local getxformname, getximagename
local boundingbox, shippingmode, objectnumber
local tmrx, tmry, tmsx, tmsy, tmtx, tmty
-local cmrx, cmry, cmsx, cmsy, cmtx, cmty
+----- cmrx, cmry, cmsx, cmsy, cmtx, cmty
+local cmrx, cmry, cmtx, cmty
local tmef
+local c_effect
local function usefont(t,k) -- a bit redundant hash
- local v = pdfgetfontname(k)
+ -- local v = pdfgetfontname(k)
+ local v = usedfontnames[k]
t[k] = v
return v
end
@@ -128,7 +144,7 @@ end
local function reset_variables(specification)
pdf_h, pdf_v = 0, 0
cmrx, cmry = 1.0, 1.0
- cmsx, cmsy = 0.0, 0.0
+ -- cmsx, cmsy = 0.0, 0.0
cmtx, cmty = 0.0, 0.0
tmrx, tmry = 1.0, 1.0
tmsx, tmsy = 0.0, 0.0
@@ -136,6 +152,7 @@ local function reset_variables(specification)
tmef = 1.0
need_tm = false
need_tf = false
+ need_font = true
need_width = 0
need_mode = 0
done_width = false
@@ -152,10 +169,9 @@ local function reset_variables(specification)
f_x_scale = 1.0
f_y_scale = 1.0
cur_factor = 0
- cur_f = false
- cur_e = false
tj_delta = 0.0
cw = 0.0
+ c_effect = nil
usedfonts = setmetatableindex(usefont)
usedxforms = { }
usedximages = { }
@@ -175,23 +191,59 @@ end
-- fonts
local fontcharacters
-local fontdescriptions
+----- fontdescriptions
local fontparameters
local fontproperties
-local usedcharacters = setmetatableindex("table")
local pdfcharacters
+local getstreamhash = fonts.handlers.otf.getstreamhash
+
+local usedfontstreams = { }
+
+local usedindices = setmetatableindex(function(t,k)
+ local n = 0
+-- n = 31
+ local v = setmetatableindex(function(tt,kk)
+ if n >= 0xFFFF then
+ report_fonts("registering character index: overflow in hash %a, todo: use overflow font")
+ else
+ n = n + 1
+ end
+ if trace_indices then
+ report_fonts("registering character index: hash %a, charindex 0x%05X, slotindex 0x%04X",k,kk,n)
+ end
+ local vv = n
+ tt[kk] = vv
+ return vv
+ end)
+ t[k] = v
+ return v
+end)
+
+local usedcharacters = setmetatableindex(function(t,k)
+ local h, d = getstreamhash(k)
+ if trace_indices then
+ report_fonts("registering index table: hash %a, fontid %i",h,k)
+ end
+ usedfontstreams[h] = d
+ local v = usedindices[h]
+ t[k] = v
+ return v
+end)
+
+lpdf.usedfontstreams = usedfontstreams -- [streamhash] -> fontdata
+lpdf.usedcharacters = usedcharacters -- [fontid] -> indices
+lpdf.usedindices = usedindices -- [streamhash][index] -> realindex (can also be dupindex)
+
local horizontalmode = true
local scalefactor = 1
local threshold = 655360
-local thresfactor = 100
+----- thresfactor = 100
local tjfactor = 100 / 65536
-lpdf.usedcharacters = usedcharacters
-
function flushers.updatefontstate(font)
fontcharacters = characters[font]
- fontdescriptions = descriptions[font]
+ -- fontdescriptions = descriptions[font]
fontparameters = parameters[font]
fontproperties = properties[font]
local size = fontparameters.size -- or bad news
@@ -213,9 +265,10 @@ function flushers.updatefontstate(font)
end
end
--- helpers
+-- helpers (maybe in collapse mode we have to go %.9N)
local f_cm = formatters["%.6N %.6N %.6N %.6N %.6N %.6N cm"]
+local f_cz = formatters["%.6N 0 0 %.6N %.6N %.6N cm"]
local f_tm = formatters["%.6N %.6N %.6N %.6N %.6N %.6N Tm"]
local saved_text_pos_v = 0
@@ -226,8 +279,10 @@ local function begin_text()
saved_text_pos_v = pdf_v
b = b + 1 ; buffer[b] = "BT"
need_tf = true
+ need_font = true
need_width = 0
need_mode = 0
+ c_effect = nil
mode = "text"
end
@@ -246,28 +301,32 @@ local function end_text()
mode = "page"
end
-local saved_chararray_pos_h
-local saved_chararray_pos_v
+local begin_chararray, end_chararray do
-local saved_b = 0
+ local saved_chararray_pos_h
+ local saved_chararray_pos_v
-local function begin_chararray()
- saved_chararray_pos_h = pdf_h
- saved_chararray_pos_v = pdf_v
- cw = horizontalmode and saved_chararray_pos_h or - saved_chararray_pos_v
- tj_delta = 0
- saved_b = b
- b = b + 1 ; buffer[b] = " ["
- mode = "chararray"
-end
+ local saved_b = 0
+
+ begin_chararray = function()
+ saved_chararray_pos_h = pdf_h
+ saved_chararray_pos_v = pdf_v
+ cw = horizontalmode and saved_chararray_pos_h or - saved_chararray_pos_v
+ tj_delta = 0
+ saved_b = b
+ b = b + 1 ; buffer[b] = " ["
+ mode = "chararray"
+ end
+
+ end_chararray = function()
+ b = b + 1 ; buffer[b] = "] TJ"
+ buffer[saved_b] = concat(buffer,"",saved_b,b)
+ b = saved_b
+ pdf_h = saved_chararray_pos_h
+ pdf_v = saved_chararray_pos_v
+ mode = "text"
+ end
-local function end_chararray()
- b = b + 1 ; buffer[b] = "] TJ"
- buffer[saved_b] = concat(buffer,"",saved_b,b)
- b = saved_b
- pdf_h = saved_chararray_pos_h
- pdf_v = saved_chararray_pos_v
- mode = "text"
end
local function begin_charmode()
@@ -304,7 +363,8 @@ end
local function pdf_set_pos(h,v)
local move = calc_pdfpos(h,v)
if move then
- b = b + 1 ; buffer[b] = f_cm(cmrx, cmsx, cmsy, cmry, cmtx*bpfactor, cmty*bpfactor)
+ -- b = b + 1 ; buffer[b] = f_cm(cmrx, cmsx, cmsy, cmry, cmtx*bpfactor, cmty*bpfactor)
+ b = b + 1 ; buffer[b] = f_cz(cmrx, cmry, cmtx*bpfactor, cmty*bpfactor)
pdf_h = pdf_h + cmtx
pdf_v = pdf_v + cmty
end
@@ -336,7 +396,8 @@ local function pdf_reset_pos()
return
end
end
- b = b + 1 ; buffer[b] = f_cm(cmrx, cmsx, cmsy, cmry, cmtx*bpfactor, cmty*bpfactor)
+ -- b = b + 1 ; buffer[b] = f_cm(cmrx, cmsx, cmsy, cmry, cmtx*bpfactor, cmty*bpfactor)
+ b = b + 1 ; buffer[b] = f_cz(cmrx, cmry, cmtx*bpfactor, cmty*bpfactor)
pdf_h = pdf_h + cmtx
pdf_v = pdf_v + cmty
end
@@ -344,7 +405,8 @@ end
local function pdf_set_pos_temp(h,v)
local move = calc_pdfpos(h,v)
if move then
- b = b + 1 ; buffer[b] = f_cm(cmrx, cmsx, cmsy, cmry, cmtx*bpfactor, cmty*bpfactor)
+ -- b = b + 1 ; buffer[b] = f_cm(cmrx, cmsx, cmsy, cmry, cmtx*bpfactor, cmty*bpfactor)
+ b = b + 1 ; buffer[b] = f_cz(cmrx, cmry, cmtx*bpfactor, cmty*bpfactor)
end
end
@@ -412,42 +474,18 @@ do
-- as fontparameters already has checked / set it we can also have a variable
-- for it so
- local naturalwidth = nil
- local hshift = false
- local vshift = false
-
- -- local naturalwidths = setmetatableindex(function(t,font)
- -- local d = descriptions[font]
- -- local c = characters[font]
- -- local f = parameters[font].hfactor or parameters[font].factor
- -- local v = setmetatableindex(function(t,char)
- -- local w
- -- local e = d and d[char]
- -- if e then
- -- w = e.width
- -- if w then
- -- w = w * f
- -- end
- -- end
- -- if not w then
- -- e = c and c[char]
- -- if e then
- -- w = e.width or 0
- -- end
- -- end
- -- if not w then
- -- w = 0
- -- end
- -- t[char] = w
- -- return w
- -- end)
- -- t[font] = v
- -- return v
- -- end)
+ local characterwidth = nil
+ -- local descriptionwidth = nil
+ local hshift = false
+ local vshift = false
+
+ -- The width array uses the original dimensions! This is different from e.g.
+ -- luatex where we have more widths arrays and these reflect the cheated
+ -- widths (goes wrong elsewhere).
-- when changing this, check math: compact-001.tex (rule width)
- local naturalwidths = setmetatableindex(function(t,font)
+ local characterwidths = setmetatableindex(function(t,font)
local d = descriptions[font]
local c = characters[font]
local f = parameters[font].hfactor or parameters[font].factor
@@ -455,7 +493,17 @@ do
local w
local e = c and c[char]
if e then
- w = e.width or 0
+-- w = e.width or 0
+-- local a = e.advance
+-- if a then
+-- w = a
+-- end
+ local a = e.advance
+ if a then
+ w = a
+ else
+ w = e.width or 0
+ end
end
if not w then
e = d and d[char]
@@ -476,36 +524,77 @@ do
return v
end)
- local function setup_fontparameters(font,factor,f,e,sx,sy)
- local slant = fontparameters.slantfactor or 0
- local extend = fontparameters.extendfactor or 1
- local squeeze = fontparameters.squeezefactor or 1
- local expand = 1 + factor / 1000000
- local format = fontproperties.format
- if e then
- extend = extend * e
- end
- tmef = expand
- tmrx = expand * extend
- tmsy = slant
- tmry = squeeze
- need_width = fontparameters.width or 0
- need_mode = fontparameters.mode or 0
+ -- it's about time to get rid of the pdftex based model but i'll wait with that till after
+ -- the first release so that we have some test period ... when we go compact even less
+
+ -- the descriptions are used for the width array
+
+ local collapse = true
+
+ experiments.register("backend.pdf.collapsefonts",function(v)
+ collapse = v
+ end)
+
+ local function setup_fontparameters(font,factor,sx,sy,effect)
+ local format = fontproperties.format
+ local expand = 1 + factor / 1000000
+ tmef = expand
+
+ -- local slant = fontparameters.slantfactor or 0
+ -- local squeeze = fontparameters.squeezefactor or 1
+ -- local extend = fontparameters.extendfactor or 1
+ -- tmrx = extend * expand
+ -- tmry = squeeze
+ -- tmsy = slant
+ -- need_width = fontparameters.width or 0
+ -- need_mode = fontparameters.mode or 0
+
+ if effect then
+ if effect ~= c_effect then
+ tmsy = effect.slant or fontparameters.slantfactor or 0
+ tmry = effect.squeeze or fontparameters.squeezefactor or 1
+ tmrx = effect.extend or fontparameters.extendfactor or 1
+ need_mode = effect.mode or fontparameters.mode or 0
+ need_width = effect.line or fontparameters.width or 0 -- scale sensitive!
+ c_effect = effect
+ else
+ -- we could check if effects have changed but effects use unique tables; for
+ -- now they win over font effects (only used in math)
+ end
+ else
+ tmsy = fontparameters.slantfactor or 0
+ tmry = fontparameters.squeezefactor or 1
+ tmrx = fontparameters.extendfactor or 1
+ need_mode = fontparameters.mode or 0
+ need_width = fontparameters.width or 0
+ c_effect = nil
+ end
+
+ tmrx = expand * tmrx
+
f_cur = font
f_pdf = usedfonts[font] -- cache
cur_factor = factor
- cur_f = f
- cur_e = e
tj_delta = 0
- f_x_scale = 1.0
- f_y_scale = 1.0
- fs = fontparameters.size * bpfactor
- if f then
- fs = fs * f
- end
- -- kind of special:
- if format == "opentype" or format == "type1" then
- fs = fs * 1000 / fontparameters.units -- can we avoid this ?
+ cw = 0
+ --
+ fs = fontparameters.size * bpfactor
+ if collapse then
+ local sc = fs / 10
+ -- kind of special:
+ if format == "opentype" or format == "type1" then
+ sc = sc * 1000 / fontparameters.units -- can we avoid this ?
+ end
+ --
+ fs = 10
+ --
+ tmrx = tmrx * sc
+ tmry = tmry * sc
+ else
+ -- kind of special:
+ if format == "opentype" or format == "type1" then
+ fs = fs * 1000 / fontparameters.units -- can we avoid this ?
+ end
end
--
f_x_scale = sx
@@ -517,7 +606,8 @@ do
tmry = tmry * f_y_scale
end
--
- naturalwidth = naturalwidths[font]
+ characterwidth = characterwidths[font]
+ -- descriptionwidth = descriptionwidths[font]
--
hshift = fontparameters.hshift
vshift = fontparameters.vshift
@@ -532,6 +622,9 @@ do
local width_factor = 72.27 / 72000.0
+ local last_fs
+ local last_fpdf
+
local function set_font()
-- if need_width and need_width ~= 0 then
if need_width ~= 0 then
@@ -549,7 +642,13 @@ do
b = b + 1 ; buffer[b] = s_mode
done_mode = false
end
- b = b + 1 ; buffer[b] = f_font(f_pdf,fs)
+ -- no need when the same
+ if need_font or last_fs ~= fs or last_pdf ~= f_pdf then
+ b = b + 1 ; buffer[b] = f_font(f_pdf,fs)
+ last_fs = fs
+ last_pdf = f_pdf
+ need_font = false
+ end
f_pdf_cur = f_pdf
fs_cur = fs
need_tf = false
@@ -589,32 +688,67 @@ do
return v
end)
- -- local trace_threshold = false trackers.register("backends.pdf.threshold", function(v) trace_threshold = v end)
+ local trace_threshold = false trackers.register("backends.pdf.threshold", function(v) trace_threshold = v end)
- -- local f_skip = formatters["%.2N"]
+ ----- f_skip = formatters["%.2N"]
-- I will redo this mess ... we no longer have the mkiv pdf generator that we used in
-- luatex (a precursor to lmtx and also for comparison) but only in lmtx now so ...
-- time to move on I guess.
- flushers.character = function(current,pos_h,pos_v,pos_r,font,char,data,f,e,factor,sx,sy) -- ,naturalwidth,width)
- if sx ~= f_x_scale or sy ~= f_y_scale or need_tf or font ~= f_cur or f_pdf ~= f_pdf_cur or fs ~= fs_cur or mode == "page" then
+ -- factor is for hz
+
+ flushers.character = function(current,pos_h,pos_v,pos_r,font,char,data,csx,csy,factor,sx,sy) -- ,naturalwidth,width)
+
+ local s = data.scale
+ local x = data.xoffset
+ local y = data.yoffset
+ if s then
+ sx = s * sx
+ sy = s * sy
+ end
+ if csx then
+ sx = sx * csx
+ csx = 1
+ end
+ if csy then
+ sy = sy * csy
+ csy = 1
+ end
+
+ local effect = data.effect
+
+ -- if sx ~= f_x_scale or sy ~= f_y_scale or need_tf or font ~= f_cur or f_pdf ~= f_pdf_cur or fs ~= fs_cur then
+ if sx ~= f_x_scale or sy ~= f_y_scale or need_tf or font ~= f_cur or f_pdf ~= f_pdf_cur or fs ~= fs_cur
+ or mode == "page"
+ or effect ~= c_effect
+ then
pdf_goto_textmode()
- setup_fontparameters(font,factor,f,e,sx,sy)
+ setup_fontparameters(font,factor,sx,sy,effect) -- too often due to page
set_font()
- elseif cur_tmrx ~= tmrx or cur_factor ~= factor or cur_f ~= f or cur_e ~= e then
- setup_fontparameters(font,factor,f,e,sx,sy)
+ -- elseif mode == "page" then
+ -- pdf_goto_textmode()
+ -- set_font()
+ elseif cur_tmrx ~= tmrx or cur_factor ~= factor then
+ setup_fontparameters(font,factor,sx,sy,effect)
need_tm = true
end
+ if x then
+ pos_h = pos_h + x * tmef * f_x_scale
+ end
+ if y then
+ pos_v = pos_v + y * f_y_scale
+ end
+
local move = calc_pdfpos(pos_h,pos_v)
- -- if trace_threshold then
- -- report(
- -- "font %i, char %C, factor %i, naturalwidth %p, move %l, tm %l, hpos %p, delta %p, threshold %p, cw %p",
- -- font,char,factor,naturalwidth[char],move,need_tm,pos_h,tj_delta,threshold,cw
- -- )
- -- end
+ if trace_threshold then
+ report_fonts(
+ "before: font %i, char %C, factor %i, naturalwidth %p, move %l, tm %l, hpos %p, delta %p, threshold %p, cw %p",
+ font,char,factor,characterwidth[char],move,need_tm,pos_h,tj_delta,threshold,cw
+ )
+ end
if move or need_tm then
if not need_tm then
@@ -635,7 +769,6 @@ do
if hshift then pos_h = pos_h + hshift end
if vshift then pos_v = pos_v - vshift end
-
if need_tm then
pdf_goto_textmode()
set_textmatrix(pos_h,pos_v)
@@ -643,7 +776,7 @@ do
move = calc_pdfpos(pos_h,pos_v)
end
if move then
- local d = tj_delta * scalefactor / f_x_scale
+ local d = tj_delta * scalefactor / (tmef * f_x_scale)
if d <= -0.5 or d >= 0.5 then
if mode == "char" then
end_charmode()
@@ -654,28 +787,28 @@ do
end
end
+ if trace_threshold then
+ report_fonts(
+ "after : font %i, char %C, factor %i, naturalwidth %p, move %l, tm %l, hpos %p, delta %p, threshold %p, cw %p",
+ font,char,factor,characterwidth[char],move,need_tm,pos_h,tj_delta,threshold,cw
+ )
+ end
+
if mode == "chararray" then
begin_charmode()
end
- cw = cw + naturalwidth[char] * tmef * f_x_scale
+ cw = cw + characterwidth[char] * tmef * f_x_scale
- local index = data.index or char
+ local slot = pdfcharacters[data.index or char] -- registers usage
- b = b + 1 ; buffer[b] = font > 0 and h_hex_4[index] or h_hex_2[index]
-
- if not pdfcharacters[index] then
- pdfcharacters[index] = true
- end
+ b = b + 1 ; buffer[b] = font > 0 and h_hex_4[slot] or h_hex_2[slot]
end
flushers.fontchar = function(font,char,data)
local dummy = usedfonts[font]
- local index = data.index or char
- if not pdfcharacters[index] then
- pdfcharacters[index] = true
- end
+ local slot = pdfcharacters[data.index or char] -- registers usage
return dummy
end
@@ -794,9 +927,9 @@ do
local nodeproperties = nodes.properties.data
- local s_matrix_0 = "1 0 0 1 0 0 cm"
- local f_matrix_2 = formatters["%.6N 0 0 %.6N 0 0 cm"]
- local f_matrix_4 = formatters["%.6N %.6N %.6N %.6N 0 0 cm"]
+ local s_matrix_0 <const> = "1 0 0 1 0 0 cm"
+ local f_matrix_2 = formatters["%.6N 0 0 %.6N 0 0 cm"]
+ local f_matrix_4 = formatters["%.6N %.6N %.6N %.6N 0 0 cm"]
local flushsetmatrix = function(current,pos_h,pos_v)
local p = nodeproperties[current]
@@ -965,16 +1098,22 @@ local localconverter = nil -- will be set
local flushimage do
- local rulecodes = nodes.rulecodes
- local newrule = nodes.pool.rule
+ local pdfbackend = backends.registered.pdf
+ local nodeinjections = pdfbackend.nodeinjections
+ local codeinjections = pdfbackend.codeinjections
+
+ local newimagerule = nuts.pool.imagerule
+ local newboxrule = nuts.pool.boxrule
local setprop = nuts.setprop
local getprop = nuts.getprop
+ local setattrlist = nuts.setattrlist
local getwhd = nuts.getwhd
- local flushlist = nuts.flush_list
+ local flushlist = nuts.flushlist
local getdata = nuts.getdata
+ local rulecodes = nodes.rulecodes
local normalrule_code = rulecodes.normal
local boxrule_code = rulecodes.box
local imagerule_code = rulecodes.image
@@ -985,6 +1124,7 @@ local flushimage do
local fractionrule_code = rulecodes.fraction
local radicalrule_code = rulecodes.radical
local outlinerule_code = rulecodes.outline
+ ----- virtualrule_code = rulecodes.virtual
local processrule = nodes.rules.process
@@ -992,8 +1132,8 @@ local flushimage do
local f_im = formatters["/Im%d Do"]
local f_gr = formatters["/Gp%d Do"]
- local s_b = "q"
- local s_e = "Q"
+ local s_b <const> = "q"
+ local s_e <const> = "Q"
local f_v = formatters["[] 0 d 0 J %.6N w 0 0 m %.6N 0 l S"]
local f_h = formatters["[] 0 d 0 J %.6N w 0 0 m 0 %.6N l S"]
@@ -1021,13 +1161,19 @@ local flushimage do
lpdf.getxformname = getxformname
- local function saveboxresource(box,attributes,resources,immediate,kind,margin)
+ local pdfcollectedresources = lpdf.collectedresources
+
+ function codeinjections.saveboxresource(box,attributes,resources,immediate,kind,margin,onum)
n = n + 1
local immediate = true
local margin = margin or 0 -- or dimension
- local objnum = pdfreserveobject()
+ local objnum = onum or pdfreserveobject()
local list = tonut(type(box) == "number" and tex.takebox(box) or box)
--
+ if resources == true then
+ resources = pdfcollectedresources()
+ end
+ --
local width, height, depth = getwhd(list)
--
local l = {
@@ -1043,6 +1189,11 @@ local flushimage do
index = objnum,
objnum = objnum,
}
+ local r = boxresources[objnum]
+ if r then
+ flushlist(l.list)
+ l.list = nil -- added
+ end
boxresources[objnum] = l
if immediate then
localconverter(list,"xform",objnum,l)
@@ -1054,7 +1205,7 @@ local flushimage do
return objnum
end
- local function useboxresource(index,wd,ht,dp)
+ function nodeinjections.useboxresource(index,wd,ht,dp)
local l = boxresources[index]
if l then
if wd or ht or dp then
@@ -1062,10 +1213,10 @@ local flushimage do
else
wd, ht, dp = l.width, l.height, l.depth
end
- local rule = newrule(wd,ht,dp) -- newboxrule
- rule.subtype = boxrule_code
- setprop(tonut(rule),"index",index)
- return rule, wd, ht, dp
+ local rule = newboxrule(wd,ht,dp)
+ setattrlist(rule,true)
+ setprop(rule,"index",index)
+ return tonode(rule), wd, ht, dp
else
report("no box resource %S",index)
end
@@ -1080,21 +1231,15 @@ local flushimage do
end
end
- local function getboxresourcebox(index)
+ nodeinjections.getboxresourcedimensions = getboxresourcedimensions
+
+ function codeinjections.getboxresourcebox(index)
local l = boxresources[index]
if l then
return l.list
end
end
- -- updaters.register("backend.update.tex",function()
- updaters.register("backend.update.lpdf",function()
- tex.saveboxresource = saveboxresource
- tex.useboxresource = useboxresource
- tex.getboxresourcedimensions = getboxresourcedimensions
- tex.getboxresourcebox = getboxresourcebox
- end)
-
-- a bit of a mess: index is now objnum but that has to change to a proper index
-- ... an engine inheritance
@@ -1125,10 +1270,11 @@ local flushimage do
usedxforms[objnum] = true
pdf_goto_pagemode()
calc_pdfpos(pos_h,pos_v)
- tx = cmtx * bpfactor
- ty = cmty * bpfactor
+ local tx = cmtx * bpfactor
+ local ty = cmty * bpfactor
b = b + 1 ; buffer[b] = s_b
- b = b + 1 ; buffer[b] = f_cm(rx,0,0,ry,tx,ty)
+ -- b = b + 1 ; buffer[b] = f_cm(rx,0,0,ry,tx,ty)
+ b = b + 1 ; buffer[b] = f_cz(rx, ry,tx,ty)
b = b + 1 ; buffer[b] = f_fm(name)
b = b + 1 ; buffer[b] = s_e
end
@@ -1176,7 +1322,7 @@ local flushimage do
BBox = pdfarray(bbox),
Resources = lpdf.collectedresources { serialize = false },
}
- local objnum = pdfflushstreamobject(content,wrapper,false)
+ local objnum = pdfflushstreamobject(content,wrapper,false) -- why not compressed ?
groups = groups + 1
usedxgroups[groups] = objnum
return f_gr(groups)
@@ -1187,12 +1333,6 @@ local flushimage do
-- end of experiment
- local pdfincludeimage
-
- updaters.register("backend.update.lpdf",function()
- pdfincludeimage = lpdf.includeimage
- end)
-
local function flushpdfximage(current,pos_h,pos_v,pos_r,size_h,size_v)
local width,
@@ -1230,11 +1370,11 @@ local flushimage do
rx, ry = bpfactor, bpfactor
end
- if band(transform,7) > 3 then
+ if (transform & 7) > 3 then
-- mirror
rx, tx = -rx, -tx
end
- local t = band(transform + rotation,3)
+ local t = (transform + rotation) & 3
if t == 0 then
-- nothing
elseif t == 1 then
@@ -1257,11 +1397,11 @@ local flushimage do
local t = transform + rotation
- if band(transform,7) > 3 then
+ if (transform & 7) > 3 then
t = t + 1
end
- t = band(t,3)
+ t = t & 3
if t == 0 then
-- no transform
@@ -1318,7 +1458,6 @@ local flushimage do
-- to be sorted out
-- local ty = pos_v - depth
local ty = pos_v -- we assume that depth is dealt with in the caller (for now)
-
usedximages[index] = objnum
pdf_goto_pagemode()
@@ -1344,15 +1483,13 @@ local flushimage do
-- small sizes which is needed for inaccurate viewers.
flushers.rule = function(current,pos_h,pos_v,pos_r,size_h,size_v,subtype)
-
if subtype == emptyrule_code then
return
elseif subtype == boxrule_code then
return flushpdfxform(current,pos_h,pos_v,pos_r,size_h,size_v)
elseif subtype == imagerule_code then
return flushpdfximage(current,pos_h,pos_v,pos_r,size_h,size_v)
- end
- if subtype == userrule_code or subtype >= overrule_code and subtype <= radicalrule_code then
+ elseif subtype == userrule_code or (subtype >= overrule_code and subtype <= radicalrule_code) then
pdf_goto_pagemode()
b = b + 1 ; buffer[b] = s_b
pdf_set_pos_temp(pos_h,pos_v)
@@ -1363,15 +1500,24 @@ local flushimage do
pdf_goto_pagemode()
- -- local saved_b = b
-
b = b + 1 ; buffer[b] = s_b
local dim_h = size_h * bpfactor
local dim_v = size_v * bpfactor
local rule
-
- if dim_v <= one_bp then
+ --
+ -- this fails for showglyphs so and i have no reason to look into it now and rectangles
+ -- do a better job anyway
+ --
+ if subtype == outlinerule_code then
+ local linewidth = getdata(current)
+ pdf_set_pos_temp(pos_h,pos_v)
+ if linewidth > 0 then
+ rule = f_w(linewidth * bpfactor,dim_h,dim_v)
+ else
+ rule = f_o(dim_h,dim_v)
+ end
+ elseif dim_v <= one_bp then
pdf_set_pos_temp(pos_h,pos_v + 0.5 * size_v)
rule = f_v(dim_v,dim_h)
elseif dim_h <= one_bp then
@@ -1379,24 +1525,12 @@ local flushimage do
rule = f_h(dim_h,dim_v)
else
pdf_set_pos_temp(pos_h,pos_v)
- if subtype == outlinerule_code then
- local linewidth = getdata(current)
- if linewidth > 0 then
- rule = f_w(linewidth * bpfactor,dim_h,dim_v)
- else
- rule = f_o(dim_h,dim_v)
- end
- else
- rule = f_f(dim_h,dim_v)
- end
+ rule = f_f(dim_h,dim_v)
end
b = b + 1 ; buffer[b] = rule
b = b + 1 ; buffer[b] = s_e
- -- buffer[saved_b] = concat(buffer," ",saved_b,b)
- -- b = saved_b
-
end
flushers.simplerule = function(pos_h,pos_v,pos_r,size_h,size_v)
@@ -1440,7 +1574,7 @@ local flushimage do
local d = -depth + half
local w = width - line
local t = total - line
- if baseline then
+ if baseline and w > 0 then
rule = f_y(line,half,d,w,t,half,w)
else
rule = f_x(line,half,d,w,t)
@@ -1458,7 +1592,7 @@ end
--- basics
-local wrapup, registerpage do
+local wrapupdocument, registerpage do
local pages = { }
local maxkids = 10
@@ -1492,11 +1626,12 @@ local wrapup, registerpage do
return list
end
- function lpdf.setpageorder(mapping)
+ function lpdf.setpageorder(mapping,p)
-- mapping can be a hash so:
local list = table.sortedkeys(mapping)
local n = #list
- if n == nofpages then
+ local nop = p or nofpages
+ if n == nop then
local done = { }
local hash = { }
for i=1,n do
@@ -1514,7 +1649,7 @@ local wrapup, registerpage do
end
pages = done
else
- report("invalid page order, %i entries expected",nofpages)
+ report("invalid page order, %i entries expected",nop)
end
end
@@ -1533,7 +1668,7 @@ local wrapup, registerpage do
-- lpdf.setpageorder(t)
-- end
- wrapup = function(driver)
+ wrapupdocument = function(driver)
-- hook (to reshuffle pages)
local pagetree = { }
@@ -1604,13 +1739,10 @@ local wrapup, registerpage do
pdfflushobject(page.objnum,object)
end
lpdf.addtocatalog("Pages",pdfreference(parent))
-
end
end
-pdf_h, pdf_v = 0, 0
-
local function initialize(driver,details)
reset_variables(details)
reset_buffer()
@@ -1621,7 +1753,309 @@ end
-- todo: more clever resource management: a bit tricky as we can inject
-- stuff in the page stream
-local compact = false
+local compact = false
+local encryptstream = false
+local encryptobject = false
+local encdict = nil
+local majorversion = 1
+local minorversion = 7
+
+-- Encryption
+
+-- This stuff is poorly documented so it took a while to figure out a way that made
+-- loading in a few programe working. Of course one you see the solution one can
+-- claim that it's easy and trivial. In the end we could even make acrobat accepting
+-- the file: it doesn't like the catalog to be in an object stream which to me
+-- smells like a bug.
+
+do
+
+ -- move up (some already) or better: lpdf-aes.lmt or so
+
+ local byte, sub, bytes, tohex, tobytes = string.byte, string.sub, string.bytes, string.tohex, string.tobytes
+ local P, S, V, Cs, lpegmatch, patterns = lpeg.P, lpeg.S, lpeg.V, lpeg.Cs, lpeg.match, lpeg.patterns
+
+ local digest256 = sha2.digest256
+ local digest384 = sha2.digest384
+ local digest512 = sha2.digest512
+
+ local aesencode = aes.encode
+ local aesdecode = aes.decode
+ local aesrandom = aes.random
+
+ -- random and padding functions are gone here
+
+ local function validpassword(str)
+ return #str > 127 and sub(str,1,127) or str
+ end
+
+ local encryptionkey = false
+ local objectparser = false
+
+ do
+
+ local function ps_encrypt(str)
+ -- string is already unescaped
+ str = aesencode(str,encryptionkey,true,true,true)
+ return "<" .. tohex(str) .. ">"
+ end
+
+ local function hex_encrypt(str)
+ -- string needs to be decoded
+ str = tobytes(str)
+ str = aesencode(str,encryptionkey,true,true,true)
+ return "<" .. tohex(str) .. ">"
+ end
+
+ local whitespace = S("\000\009\010\012\013\032")^1
+ local anything = patterns.anything
+ local space = patterns.space
+ local spacing = whitespace^0
+ local newline = patterns.eol
+ local cardinal = patterns.cardinal
+
+ local p_psstring = (
+ P("(")
+ * Cs(P { ( P("\\")/"" * anything + P("(") * V(1) * P(")") + (1 - P(")")) )^0 })
+ * P(")")
+ ) / ps_encrypt
+
+ local p_hexstring = (
+ P("<")
+ * Cs((1-P(">"))^1)
+ * P(">")
+ ) / hex_encrypt
+
+ local p_comment = P("%") * (1-newline)^1 * newline^1
+ local p_name = P("/") * (1 - whitespace - S("<>/[]()"))^1
+ local p_number = patterns.number
+ local p_boolean = P("true") + P("false")
+ local p_null = P("null")
+ local p_reference = cardinal * spacing * cardinal * spacing * P("R")
+
+ local p_other = p_name + p_reference + p_psstring + p_hexstring + p_number
+ + p_boolean + p_null + p_comment
+
+ local p_dictionary = { "dictionary",
+ dictionary = (
+ P("<<")
+ * (spacing * p_name * spacing * V("whatever"))^0
+ * spacing
+ * P(">>")
+ ),
+ array = (
+ P("[")
+ * (spacing * V("whatever"))^0
+ * spacing
+ * P("]")
+ ),
+ whatever = (
+ V("dictionary")
+ + V("array")
+ + p_other
+ ),
+ }
+
+ local p_object = P { "object",
+ dictionary = p_dictionary.dictionary,
+ array = p_dictionary.array,
+ whatever = p_dictionary.whatever,
+ object = spacing * (V("dictionary") + V("array") + p_other)
+ }
+
+ -- local p_object = cardinal
+ -- * spacing
+ -- * cardinal
+ -- * spacing
+ -- * P("obj")
+ -- * p_object
+ -- * P(1)^0
+ --
+ -- objectparser = Cs(p_object^1)
+
+ objectparser = Cs(p_object^1)
+
+ end
+
+ local function makehash(password,salt,userkey)
+ local k = digest256(password .. salt .. (userkey or ""))
+ local n = 0
+ while true do
+ local k1 = rep(password .. k .. (userkey or ""),64)
+ local k2 = sub(k,1,16)
+ local iv = sub(k,17,32)
+ local e = aesencode(k1,k2,iv)
+ local m = 0
+ local i = 1
+ for b in bytes(e) do
+ m = m + b
+ if i == 16 then
+ break
+ else
+ i = i + 1
+ end
+ end
+ m = m % 3
+ if m == 0 then
+ k = digest256(e)
+ elseif m == 1 then
+ k = digest384(e)
+ else
+ k = digest512(e)
+ end
+ n = n + 1
+ if n >= 64 and byte(sub(e,-1)) <= (n - 32) then
+ break
+ end
+ end
+ return sub(k,1,32)
+ end
+
+ local options = {
+ -- unknown = 0x0001, -- bit 1
+ -- unknown = 0x0002, -- bit 2
+ print = 0x0004, -- bit 3
+ modify = 0x0008, -- bit 4
+ extract = 0x0010, -- bit 5
+ add = 0x0020, -- bit 6
+ -- unknown = 0x0040, -- bit 7
+ -- unknown = 0x0080, -- bit 8
+ fillin = 0x0100, -- bit 9
+ access = 0x0200, -- bit 10
+ assemble = 0x0400, -- bit 11
+ quality = 0x0800, -- bit 12
+ -- unknown = 0x1000, -- bit 13
+ -- unknown = 0x2000, -- bit 14
+ -- unknown = 0x4000, -- bit 15
+ -- unknown = 0x8000, -- bit 16
+ }
+
+ -- 1111 0000 1100 0011
+
+ local mandate = 0x0200
+ local defaults = options.print | options.extract | options.quality
+
+ -- majorversion = 2
+ -- minorversion = 0
+
+ function lpdf.setencryption(specification)
+ if not encryptstream then
+ local ownerpassword = specification.ownerpassword
+ local userpassword = specification.userpassword
+ local optionlist = specification.permissions
+ if type(ownerpassword) == "string" and ownerpassword ~= "" then
+ --
+ if type(userpassword) ~= "string" then
+ userpassword = ""
+ end
+ userpassword = validpassword(userpassword)
+ ownerpassword = validpassword(ownerpassword)
+ --
+ encryptionkey = aesrandom(32) -- used earlier on
+ --
+ local permissions = mandate
+ if optionlist then
+ optionlist = utilities.parsers.settings_to_array(optionlist)
+ for i=1,#optionlist do
+ local p = options[optionlist[i]]
+ if p then
+ permissions = permissions | p
+ end
+ end
+ else
+ permissions = permissions | defaults
+ end
+ --
+ permissions = permissions | 0xF0C3 -- needs work
+ --
+ optionlist = { }
+ for k, v in sortedhash(options) do
+ if permissions & v == v then
+ optionlist[#optionlist+1] = k
+ end
+ end
+ --
+ local uservalidationsalt = aesrandom(8)
+ local userkeysalt = aesrandom(8)
+ local userhash = makehash(userpassword,uservalidationsalt)
+ local userkey = userhash .. uservalidationsalt .. userkeysalt -- U
+ local userintermediate = makehash(userpassword,userkeysalt)
+ local useraes = aesencode(encryptionkey,userintermediate) -- UE
+ --
+ local ownervalidationsalt = aesrandom(8)
+ local ownerkeysalt = aesrandom(8)
+ local ownerhash = makehash(ownerpassword,ownervalidationsalt,userkey)
+ local ownerkey = ownerhash .. ownervalidationsalt .. ownerkeysalt -- O
+ local ownerintermediate = makehash(ownerpassword,ownerkeysalt,userkey)
+ local owneraes = aesencode(encryptionkey,ownerintermediate) -- OE
+ --
+ -- still not ok test in qpdf
+ --
+ local permissionsstring = sio.tocardinal4(0xFFFFFFFF)
+ .. sio.tocardinal4(permissions)
+ .. "T" -- EncryptMetadata
+ .. "adb"
+ .. aesrandom(4)
+ local permissionsaes = aesencode(permissionsstring,encryptionkey)
+ --
+ permissionsaes = tohex(permissionsaes)
+ userkey = tohex(userkey)
+ ownerkey = tohex(ownerkey)
+ useraes = tohex(useraes)
+ owneraes = tohex(owneraes)
+ --
+ encdict = pdfdictionary {
+ Filter = pdfconstant("Standard"),
+ V = 5, -- variant
+ R = 6, -- revision
+ Length = 256, -- not needed
+ StmF = pdfconstant("StdCF"),
+ StrF = pdfconstant("StdCF"),
+ P = permissions,
+ Perms = pdfliteral(permissionsaes,true), -- #16
+ U = pdfliteral(userkey, true), -- #48
+ O = pdfliteral(ownerkey, true), -- #48
+ UE = pdfliteral(useraes, true), -- #32
+ OE = pdfliteral(owneraes, true), -- #32
+ CF = {
+ StdCF = {
+ AuthEvent = pdfconstant("DocOpen"),
+ CFM = pdfconstant("AESV3"),
+ Length = 32, -- #encryptionkey
+ }
+ },
+ -- bonus
+ EncryptMetadata = true,
+ }
+ --
+ encryptstream = function(str)
+ return aesencode(str,encryptionkey,true,true,true) -- random-iv add-iv add-padding
+ end
+ encryptobject = function(obj)
+ if obj then
+ if type(obj) == "table" then
+ obj = obj()
+ end
+ return lpegmatch(objectparser,obj) or obj
+ end
+ end
+ --
+ report_encryption("stream objects get encrypted")
+ if not objectstream then
+ report_encryption("strings are not encrypted, enable object streams")
+ end
+ report_encryption("permissions: % t",optionlist)
+ if userpassword == "" then
+ report_encryption("no user password")
+ end
+ --
+ end
+ end
+ end
+
+ backends.registered.pdf.codeinjections.setencryption = lpdf.setencryption
+
+end
do
@@ -1677,12 +2111,16 @@ do
end
end)
-
end
local flushdeferred -- defined later
local level = 0
+local state = true
+
+function lpdf.setpagestate(s)
+ state = s
+end
local finalize do
@@ -1694,12 +2132,16 @@ local finalize do
finalize = function(driver,details)
+ if not details then
+ report("something is wrong, no details in 'finalize'")
+ end
+
level = level + 1
pdf_goto_pagemode() -- for now
local objnum = details.objnum
- local specification = details.specification
+ local specification = details.specification or { }
local content = concat(buffer,"\n",1,b)
@@ -1713,7 +2155,8 @@ local finalize do
if next(usedfonts) then
fonts = pdfdictionary { }
for k, v in next, usedfonts do
- fonts[f_font(v)] = pdfreference(pdfgetfontobjectnumber(k)) -- we can overload for testing
+-- fonts[f_font(v)] = pdfreference(pdfgetfontobjectnumber(k)) -- we can overload for testing
+ fonts[f_font(v)] = pdfreference(usedfontobjects[k]) -- we can overload for testing
end
end
@@ -1756,7 +2199,7 @@ local finalize do
boundingbox[4] * bpfactor,
}
- local contentsobj = pdfflushstreamobject(content,false,false)
+ local contentsobj = pdfflushstreamobject(content,false,true)
pageattributes.Type = pdf_page
pageattributes.Contents = pdfreference(contentsobj)
@@ -1769,6 +2212,10 @@ local finalize do
-- resources can be indirect
+if state == "ignore" or state == false then
+
+else
+
registerpage(pageattributes)
lpdf.finalizepage(true)
@@ -1783,6 +2230,8 @@ local finalize do
if CropBox then pageattributes.CropBox = pdfsharedobject(CropBox ) end
if BleedBox then pageattributes.BleedBox = pdfsharedobject(BleedBox) end
+end
+
else
local xformtype = specification.type or 0
@@ -1821,9 +2270,16 @@ local finalize do
wrapper.Matrix = pdfarray { 1, 0, 0, 1, 0, 0 }
end
- -- todo: additional = resources
+ local patterns = true
- local boxresources = lpdf.collectedresources { serialize = false }
+ if attributes.Type and attributes.Type == pdf_pattern then
+ patterns = false
+ end
+
+ local boxresources = lpdf.collectedresources {
+ patterns = patterns,
+ serialize = false,
+ }
boxresources.Font = fonts
boxresources.XObject = xforms
@@ -1831,7 +2287,7 @@ local finalize do
-- wrapper.Resources = pdfreference(pdfflushobject(boxresources))
if resources ~= "" then
- boxresources = boxresources + resources
+ boxresources = boxresources + resources
end
if attributes ~= "" then
wrapper = wrapper + attributes
@@ -1840,7 +2296,7 @@ local finalize do
wrapper.Resources = next(boxresources) and boxresources or nil
wrapper.ProcSet = lpdf.procset()
- pdfflushstreamobject(content,wrapper,false,specification.objnum)
+ pdfflushstreamobject(content,wrapper,true,specification.objnum)
end
@@ -1866,17 +2322,6 @@ local finalize do
end
-updaters.register("backend.update",function()
- local saveboxresource = tex.boxresources.save
- --
- -- also in lpdf-res .. brrr .. needs fixing
- --
- backends.codeinjections.registerboxresource = function(n,offset)
- local r = saveboxresource(n,nil,nil,false,0,offset or 0)
- return r
- end
-end)
-
-- now comes the pdf file handling
local objects = { }
@@ -1892,9 +2337,6 @@ local cache = false
local info = ""
local catalog = ""
local lastdeferred = false
-local majorversion = 1
-local minorversion = 7
-local trailerid = true
directives.register("backend.pdf.threshold",function(v)
if v then
@@ -1918,8 +2360,8 @@ local f_stream_b_d_u = formatters["%i 0 obj\010<< %s /Length %i >>\010stream\010
local f_stream_b_d_c = formatters["%i 0 obj\010<< %s /Filter /FlateDecode /Length %i >>\010stream\010"]
local f_stream_b_d_r = formatters["%i 0 obj\010<< %s >>\010stream\010"]
------ s_object_e = "\010endobj\010"
-local s_stream_e = "\010endstream\010endobj\010"
+----- s_object_e <const> = "\010endobj\010"
+local s_stream_e <const> = "\010endstream\010endobj\010"
do
@@ -2019,23 +2461,30 @@ local addtocache, flushcache, cache do
First = #list + 1,
}
objects[cache] = offset
- local b = nil
- local e = s_stream_e
+ local fb
if compress then
- local comp = zlibcompress(data,3)
- if comp and #comp < #data then
+ local size = #data
+ local comp = compressdata(data,size)
+ if comp and #comp < size then
data = comp
- b = f_stream_b_d_c(cache,strobj(),#data)
+ fb = f_stream_b_d_c
else
- b = f_stream_b_d_u(cache,strobj(),#data)
+ fb = f_stream_b_d_u
end
else
- b = f_stream_b_d_u(cache,strobj(),#data)
+ fb = f_stream_b_d_u
+ end
+ local size = #data
+ if encryptstream then
+ data = encryptstream(data)
+ size = #data
end
+ local b = fb(cache,strobj(),size)
+ local e = s_stream_e
flush(f,b)
flush(f,data)
flush(f,e)
- offset = offset + #b + #data + #e
+ offset = offset + #b + size + #e
data, d = { }, 0
list, l = { }, 0
coffset = 0
@@ -2047,13 +2496,14 @@ end
do
- local names = { }
- local cache = { }
- local nofpages = 0
+ local names = { }
+ local cache = { }
+ local nofpages = 0
- local texgetcount = tex.getcount
+ local texgetcount = tex.getcount
+ local c_realpageno = tex.iscount("realpageno")
- function lpdf.reserveobject(name)
+ pdfreserveobject = function(name)
nofobjects = nofobjects + 1
objects[nofobjects] = false
if name then
@@ -2067,22 +2517,26 @@ do
return nofobjects
end
- function lpdf.pagereference(n,complete) -- true | false | nil | n [true,false]
- if nofpages == 0 then
- nofpages = structures.pages.nofpages
- if nofpages == 0 then
- nofpages = 1
- end
- end
+ pdfpagereference = function(n,complete) -- true | false | nil | n [true,false]
if n == true or not n then
complete = n
- n = texgetcount("realpageno")
+ n = texgetcount(c_realpageno)
end
- local r = n > nofpages and pdfgetpagereference(nofpages) or pdfgetpagereference(n)
+ if n > nofpages then
+ nofpages = n
+ end
+ local r = pdfgetpagereference(n)
return complete and pdfreference(r) or r
end
- function lpdf.nofpages()
+ lpdf.reserveobject = pdfreserveobject
+ lpdf.pagereference = pdfpagereference
+
+ function lpdf.lastreferredpage()
+ return nofpages
+ end
+
+ function lpdf.nofpages() -- this will change: document nofpages
return structures.pages.nofpages
end
@@ -2100,7 +2554,7 @@ do
return n
end
- function lpdf.flushobject(name,data)
+ pdfflushobject = function(name,data)
if data then
local named = names[name]
if named then
@@ -2128,7 +2582,7 @@ do
end
end
- function lpdf.flushstreamobject(data,dict,compressed,objnum) -- default compressed
+ pdfflushstreamobject = function(data,dict,compressed,objnum) -- default compressed
if trace_objects then
report_objects("flushing stream object of %s bytes",#data)
end
@@ -2136,15 +2590,16 @@ do
local kind = compressed == "raw" and "raw" or "stream"
local nolength = nil
if compressed == "raw" then
- compressed = nil
+ compressed = false
nolength = true
-- data = string.formatters["<< %s >>stream\n%s\nendstream"](attr,data)
end
+
return pdfdeferredobject {
objnum = objnum,
immediate = true,
nolength = nolength,
- compresslevel = compressed == false and 0 or nil,
+ compresslevel = compressed,
type = "stream",
string = data,
attr = (dtype == "string" and dict) or (dtype == "table" and dict()) or nil,
@@ -2159,7 +2614,7 @@ do
return pdfdeferredobject {
objnum = objnum,
immediate = true,
- compresslevel = compressed == false and 0 or nil,
+ compresslevel = compressed,
type = "stream",
file = filename,
attr = (dtype == "string" and dict) or (dtype == "table" and dict()) or nil,
@@ -2182,7 +2637,7 @@ do
end
end
- function lpdf.shareobjectreference(content)
+ pdfsharedobject = function(content)
if content == nil then
-- invalid object not created
else
@@ -2201,6 +2656,11 @@ do
end
end
+ lpdf.flushobject = pdfflushobject
+ lpdf.flushstreamobject = pdfflushstreamobject
+ lpdf.shareobjectreference = pdfsharedobject
+ lpdf.sharedobject = pdfsharedobject
+
end
local pages = table.setmetatableindex(function(t,k)
@@ -2209,15 +2669,20 @@ local pages = table.setmetatableindex(function(t,k)
return v
end)
-function lpdf.getpagereference(n)
+pdfgetpagereference = function(n)
return pages[n]
end
+lpdf.getpagereference = pdfgetpagereference
+
local function flushnormalobj(data,n)
if not n then
nofobjects = nofobjects + 1
n = nofobjects
end
+ if encryptobject then
+ data = encryptobject(data)
+ end
data = f_object(n,data)
if level == 0 then
objects[n] = offset
@@ -2244,49 +2709,84 @@ local function flushstreamobj(data,n,dict,comp,nolength)
n = nofobjects
end
local size = #data
+ if comp ~= false then
+ comp = compress and size > threshold
+ end
+ if encryptobject then
+ dict = encryptobject(dict)
+ end
if level == 0 then
local b = nil
local e = s_stream_e
if nolength then
- b = f_stream_b_d_r(n,dict)
- elseif comp ~= false and compress and size > threshold then
- local compdata = zlibcompress(data,3)
- if compdata then
- local compsize = #compdata
- if compsize > size - threshold then
- b = dict and f_stream_b_d_u(n,dict,size) or f_stream_b_n_u(n,size)
+ -- probleem: we need to adapt length!
+ b = f_stream_b_d_r(n,dict) -- raw object, already treated
+ if encryptstream then
+ print("check length")
+ data = encryptstream(data)
+ size = #data
+ end
+ else
+ if comp then
+ local compdata = compressdata(data,size)
+ if compdata then
+ local compsize = #compdata
+ if compsize <= size - threshold then
+ data = compdata
+ size = compsize
+ else
+ comp = false
+ end
else
- data = compdata
- b = dict and f_stream_b_d_c(n,dict,compsize) or f_stream_b_n_c(n,compsize)
+ comp = false
end
+ end
+ if encryptstream then
+ data = encryptstream(data)
+ size = #data
+ end
+ if comp then
+ b = dict and f_stream_b_d_c(n,dict,size) or f_stream_b_n_c(n,size)
else
b = dict and f_stream_b_d_u(n,dict,size) or f_stream_b_n_u(n,size)
end
- else
- b = dict and f_stream_b_d_u(n,dict,size) or f_stream_b_n_u(n,size)
end
flush(f,b)
flush(f,data)
flush(f,e)
objects[n] = offset
- offset = offset + #b + #data + #e
+ offset = offset + #b + size + #e
else
if nolength then
- data = f_stream_d_r(n,dict,data)
- elseif comp ~= false and compress and size > threshold then
- local compdata = zlibcompress(data,3)
- if compdata then
- local compsize = #compdata
- if compsize > size - threshold then
- data = dict and f_stream_d_u(n,dict,size,data) or f_stream_n_u(n,size,data)
+ if encryptstream then
+ print("check length")
+ data = encryptstream(data)
+ end
+ data = f_stream_d_r(n,dict,data) -- raw object, already treated
+ else
+ if comp then
+ local compdata = compressdata(data,size)
+ if compdata then
+ local compsize = #compdata
+ if compsize <= size - threshold then
+ data = compdata
+ size = compsize
+ else
+ comp = false
+ end
else
- data = dict and f_stream_d_c(n,dict,compsize,compdata) or f_stream_n_c(n,compsize,compdata)
+ comp = false
end
+ end
+ if encryptstream then
+ data = encryptstream(data)
+ size = #data
+ end
+ if comp then
+ data = dict and f_stream_d_c(n,dict,size,data) or f_stream_n_c(n,size,data)
else
data = dict and f_stream_d_u(n,dict,size,data) or f_stream_n_u(n,size,data)
end
- else
- data = dict and f_stream_d_u(n,dict,size,data) or f_stream_n_u(n,size,data)
end
if not lastdeferred then
lastdeferred = n
@@ -2312,7 +2812,7 @@ flushdeferred = function() -- was forward defined
end
end
-function lpdf.immediateobject(a,b,c,d)
+pdfimmediateobject = function(a,b,c,d)
local kind --, immediate
local objnum, data, attr, filename
local compresslevel, objcompression, nolength
@@ -2375,7 +2875,7 @@ function lpdf.immediateobject(a,b,c,d)
end
-- todo: immediate
if kind == "stream" then
- flushstreamobj(data,objnum,attr,compresslevel and compresslevel > 0 or nil,nolength)
+ flushstreamobj(data,objnum,attr,compresslevel,nolength) -- nil == auto
elseif objectstream and objcompression ~= false then
addtocache(objnum,data)
else
@@ -2384,7 +2884,10 @@ function lpdf.immediateobject(a,b,c,d)
return objnum
end
-lpdf.deferredobject = lpdf.immediateobject
+pdfdeferredobject = pdfimmediateobject
+
+lpdf.deferredobject = pdfimmediateobject
+lpdf.immediateobject = pdfimmediateobject
-- In lua 5.4 the methods are now moved one metalevel deeper so we need to get them
-- from mt.__index instead. (I did get that at first.) It makes for a slightly (imo)
@@ -2411,9 +2914,22 @@ local openfile, closefile do
local close = false
local update = false
- -- local removefile = os.remove
+ directives.enable("backend.pdf.inmemory", function(v) inmemory = true end)
+
+ -- local banner <const> = "%\xCC\xD5\xC1\xD4\xC5\xD8\xD0\xC4\xC6\010" -- LUATEXPDF (+128)
+ local banner <const> = "%\xC3\xCF\xCE\xD4\xC5\xD8\xD4\xD0\xC4\xC6\010" -- CONTEXTPDF (+128)
openfile = function(filename)
+ --
+ local arguments = environment.arguments
+ if arguments.ownerpassword then
+ lpdf.setencryption {
+ ownerpassword = arguments.ownerpassword,
+ userpassword = arguments.userpassword,
+ permissions = arguments.permissions,
+ }
+ end
+ --
if inmemory then
local n = 0
f = { }
@@ -2443,7 +2959,9 @@ local openfile, closefile do
else
f = io.open(filename,"wb")
if not f then
- -- message
+ report()
+ report("quitting because file %a cannot be opened for writing",filename)
+ report()
os.exit()
end
-- f:setvbuf("full",64*1024)
@@ -2455,12 +2973,10 @@ local openfile, closefile do
f:write(s)
end
end
- local v = f_pdf_tag(majorversion,minorversion)
- -- local b = "%\xCC\xD5\xC1\xD4\xC5\xD8\xD0\xC4\xC6\010" -- LUATEXPDF (+128)
- local b = "%\xC3\xCF\xCE\xD4\xC5\xD8\xD4\xD0\xC4\xC6\010" -- CONTEXTPDF (+128)
- flush(f,v)
- flush(f,b)
- offset = offset + #v + #b
+ local version = f_pdf_tag(majorversion,minorversion)
+ flush(f,version)
+ flush(f,banner)
+ offset = offset + #version + #banner
end
closefile = function(abort)
@@ -2486,15 +3002,17 @@ local openfile, closefile do
local xrefoffset = offset
local lastfree = 0
local noffree = 0
+ --
+ local os = objectstream
+ if encryptstream then
+ objectstream = false
+ end
local catalog = lpdf.getcatalog()
+ objectstream = os
+ --
local info = lpdf.getinfo()
- if trailerid == true then
- trailerid = md5.HEX(osuuid())
- elseif trailerid and #trailerid > 32 then
- trailerid = md5.HEX(trailerid)
- else
- trailerid = false
- end
+ local trailerid = lpdf.gettrailerid()
+
if objectstream then
flushdeferred()
flushcache()
@@ -2520,8 +3038,8 @@ local openfile, closefile do
if strm then
o = -o
end
- c1 = extract(o,8,8)
- c2 = extract(o,0,8)
+ c1 = (o>>8)&0xFF
+ c2 = (o>>0)&0xFF
if strm then
objects[i] = char(2,c1,c2,streams[o][i])
else
@@ -2533,8 +3051,8 @@ local openfile, closefile do
for i=nofobjects,1,-1 do
local o = objects[i]
if not o then
- local f1 = extract(lastfree,8,8)
- local f2 = extract(lastfree,0,8)
+ local f1 = (lastfree>>8)&0xFF
+ local f2 = (lastfree>>0)&0xFF
objects[i] = char(0,f1,f2,0)
lastfree = i
end
@@ -2551,9 +3069,9 @@ local openfile, closefile do
if strm then
o = -o
end
- c1 = extract(o,16,8)
- c2 = extract(o, 8,8)
- c3 = extract(o, 0,8)
+ c1 = (o>>16)&0xFF
+ c2 = (o>> 8)&0xFF
+ c3 = (o>> 0)&0xFF
if strm then
objects[i] = char(2,c1,c2,c3,streams[o][i])
else
@@ -2565,9 +3083,9 @@ local openfile, closefile do
for i=nofobjects,1,-1 do
local o = objects[i]
if not o then
- local f1 = extract(lastfree,16,8)
- local f2 = extract(lastfree, 8,8)
- local f3 = extract(lastfree, 0,8)
+ local f1 = (lastfree>>16)&0xFF
+ local f2 = (lastfree>> 8)&0xFF
+ local f3 = (lastfree>> 0)&0xFF
objects[i] = char(0,f1,f2,f3,0)
lastfree = i
end
@@ -2584,10 +3102,10 @@ local openfile, closefile do
if strm then
o = -o
end
- c1 = extract(o,24,8)
- c2 = extract(o,16,8)
- c3 = extract(o, 8,8)
- c4 = extract(o, 0,8)
+ c1 = (o>>24)&0xFF
+ c2 = (o>>16)&0xFF
+ c3 = (o>> 8)&0xFF
+ c4 = (o>> 0)&0xFF
if strm then
objects[i] = char(2,c1,c2,c3,c4,streams[o][i])
else
@@ -2599,10 +3117,10 @@ local openfile, closefile do
for i=nofobjects,1,-1 do
local o = objects[i]
if not o then
- local f1 = extract(lastfree,24,8)
- local f2 = extract(lastfree,16,8)
- local f3 = extract(lastfree, 8,8)
- local f4 = extract(lastfree, 0,8)
+ local f1 = (lastfree>>24)&0xFF
+ local f2 = (lastfree>>16)&0xFF
+ local f3 = (lastfree>> 8)&0xFF
+ local f4 = (lastfree>> 0)&0xFF
objects[i] = char(0,f1,f2,f3,f4,0)
lastfree = i
end
@@ -2611,36 +3129,72 @@ local openfile, closefile do
end
objects[0] = rep("\0",1+nofbytes+1)
local data = concat(objects,"",0,nofobjects)
+ local size = #data
local xref = pdfdictionary {
- Type = pdfconstant("XRef"),
- Size = nofobjects + 1,
- W = pdfarray { 1, nofbytes, 1 },
- Root = catalog,
- Info = info,
- ID = trailerid and pdfarray { pdfliteral(trailerid,true), pdfliteral(trailerid,true) } or nil,
+ Type = pdfconstant("XRef"),
+ Size = nofobjects + 1,
+ W = pdfarray { 1, nofbytes, 1 },
+ Root = catalog,
+ Info = info,
+ ID = trailerid and pdfarray { pdfliteral(trailerid,true), pdfliteral(trailerid,true) } or nil,
+ Encrypt = encdict or nil,
}
- if compress then
- local comp = zlibcompress(data,3)
- if comp then
- data = comp
- flush(f,f_stream_b_d_c(nofobjects,xref(),#data))
+ local fb
+ -- if encryptstream then
+ -- if compress then
+ -- local comp = compressdata(data,size)
+ -- if comp then
+ -- data = comp
+ -- size = #data
+ -- fb = f_stream_b_d_c
+ -- xref.Filter = pdfarray {
+ -- pdfconstant("Crypt"), -- identity
+ -- pdfconstant("FlateDecode")
+ -- }
+ -- else
+ -- xref.Filter = pdfconstant("Crypt") -- identity
+ -- end
+ -- else
+ -- xref.Filter = pdfconstant("Crypt") -- identity
+ -- end
+ -- fb = f_stream_b_d_u
+ -- else
+ if compress then
+ local comp = compressdata(data,size)
+ if comp then
+ data = comp
+ size = #data
+ fb = f_stream_b_d_c
+ else
+ fb = f_stream_b_d_u
+ end
else
- flush(f,f_stream_b_d_u(nofobjects,xref(),#data))
+ fb = f_stream_b_d_u
end
- else
- flush(f,f_stream_b_d_u(nofobjects,xref(),#data))
- end
+ -- end
+ -- no encryption of data here
+ flush(f,fb(nofobjects,xref(),size))
flush(f,data)
flush(f,s_stream_e)
flush(f,f_startxref(xrefoffset))
else
flushdeferred()
+ --
+ -- if encryptstream then
+ -- -- unencrypted !
+ -- local eo = encryptobject
+ -- encryptobject = false
+ -- encdict = pdfreference(pdfimmediateobject(tostring(encdict)))
+ -- encryptobject = eo
+ -- end
+ --
xrefoffset = offset
flush(f,f_xref(nofobjects+1))
local trailer = pdfdictionary {
- Size = nofobjects+1,
- Root = catalog,
- Info = info,
+ Size = nofobjects + 1,
+ Root = catalog,
+ Info = info,
+ Encrypt = encdict or nil,
}
for i=1,nofobjects do
local o = objects[i]
@@ -2676,20 +3230,22 @@ end
-- For the moment we overload it here, although back-fil.lua eventually will
-- be merged with back-pdf as it's pdf specific, or maybe back-imp-pdf or so.
-do -- updaters.register("backend.update.pdf",function()
+do
-- We overload img but at some point it will even go away, so we just
-- reimplement what we need in context. This will change completely i.e.
-- we will drop the low level interface!
- local codeinjections = backends.pdf.codeinjections
+ local pdfbackend = backends.registered.pdf
+ local nodeinjections = pdfbackend.nodeinjections
+ local codeinjections = pdfbackend.codeinjections
local imagetypes = images.types -- pdf png jpg jp2 jbig2 stream
local img_none = imagetypes.none
- local rulecodes = nodes.rulecodes
-
- local setprop = nodes.nuts.setprop
+ local newimagerule = nuts.pool.imagerule
+ local setattrlist = nuts.setattrlist
+ local setprop = nuts.setprop
local report_images = logs.reporter("backend","images")
@@ -2697,7 +3253,6 @@ do -- updaters.register("backend.update.pdf",function()
local indices = { }
local bpfactor = number.dimenfactors.bp
- local imagerule_code = rulecodes.image
function codeinjections.newimage(specification)
return specification
@@ -2707,7 +3262,8 @@ do -- updaters.register("backend.update.pdf",function()
return setmetatableindex(original)
end
- function codeinjections.scanimgage(specification)
+ function codeinjections.scanimage(specification)
+ -- placeholder, doesn't give back dimensions etc but will be plugged in
return specification
end
@@ -2763,8 +3319,7 @@ do -- updaters.register("backend.update.pdf",function()
specification.type = kind
specification.kind = kind
end
- local compress = compresslevel and compresslevel > 0 or nil
- flushstreamobj(stream,objnum,dict,compress,nolength)
+ flushstreamobj(stream,objnum,dict,compresslevel,nolength)
specification.objnum = objnum
specification.rotation = specification.rotation or 0
specification.orientation = specification.orientation or 0
@@ -2786,17 +3341,17 @@ do -- updaters.register("backend.update.pdf",function()
embedimage(specification)
end
--
- local width = specification.width or 0
- local height = specification.height or 0
- local depth = specification.depth or 0
- -- newimagerule
- local n = nodes.pool.rule(width,height,depth)
- n.subtype = imagerule_code
- setprop(tonut(n),"index",specification.index)
- return n
+ local n = newimagerule(
+ specification.width or 0,
+ specification.height or 0,
+ specification.depth or 0
+ )
+ setattrlist(n,true)
+ setprop(n,"index",specification.index)
+ return tonode(n)
end
- function lpdf.includeimage(index)
+ pdfincludeimage = function(index)
local specification = indices[index]
if specification then
local bbox = specification.bbox
@@ -2818,109 +3373,9 @@ do -- updaters.register("backend.update.pdf",function()
end
end
-end -- )
-
-do -- updaters.register("backend.update.lpdf",function()
-
- -- todo: an md5 or sha2 hash can save space
- -- todo: make a type 3 font instead
- -- todo: move to lpdf namespace
+ lpdf.includeimage = pdfincludeimage
- local pdfimage
- local newpdf
- local openpdf
- local closepdf
- local copypage
-
-
- updaters.register("backend.update.lpdf",function()
- pdfimage = lpdf.epdf.image
- newpdf = pdfimage.new
- openpdf = pdfimage.open
- closepdf = pdfimage.close
- copypage = pdfimage.copy
- end)
-
- local embedimage = images.embed
-
- local nofstreams = 0
- local topdf = { }
- local toidx = { }
-
- local function storedata_s(pdf)
- local idx = toidx[pdf]
- if not idx then
- nofstreams = nofstreams + 1
- idx = nofstreams
- toidx[pdf] = nofstreams
- topdf[idx] = pdf
- end
- return idx
- end
-
- local function vfimage_s(id,wd,ht,dp,pos_h,pos_v)
- local index = topdf[id]
- if type(index) == "string" then
- local pdfdoc = newpdf(index,#index)
- local image = copypage(pdfdoc)
- local bbox = image.bbox
- image.width = bbox[3] - bbox[1]
- image.height = bbox[4] - bbox[2]
- embedimage(image)
- index = image.index
- topdf[id] = index
- end
- flushimage(index,wd,ht,dp,pos_h,pos_v)
- end
-
- local function storedata_n(name,page)
- local idx = toidx[pdf]
- if not idx then
- nofstreams = nofstreams + 1
- idx = nofstreams
- toidx[pdf] = nofstreams
- topdf[idx] = pdf
- end
- return idx
- end
-
- -- We need to have a way to close such a pdf ... esp for fonts.
-
- local pdfdocs = { }
-
- local function vfimage_n(name,page,wd,ht,dp,pos_h,pos_v)
- local d = pdfdocs[name]
- if not d then
- d = { doc = openpdf(name), pages = { } }
- pdfdocs[name] = d
- end
- local index = d.pages[page]
- if not index then
- local image = copypage(d.doc,page)
- local bbox = image.bbox
- image.width = bbox[3] - bbox[1]
- image.height = bbox[4] - bbox[2]
- embedimage(image)
- index = image.index
- d.pages[page] = index
- end
- flushimage(index,wd,ht,dp,pos_h,pos_v)
- end
-
- function lpdf.pdfvfimage(wd,ht,dp,data,name)
- if type(data) == "number" then
- return { "lua", function(font,char,pos_h,pos_v)
- vfimage_n(name,data,wd,ht,dp,pos_h,pos_v)
- end }
- else
- return { "lua", function(font,char,pos_h,pos_v)
- local id = storedata_s(data)
- vfimage_s(id,wd,ht,dp,pos_h,pos_v)
- end }
- end
- end
-
-end -- )
+end
-- The driver.
@@ -2937,18 +3392,23 @@ do
return pdfname
end
- -- todo: prevent twice
+-- local outputfilename ; do -- old todo usedname in ^^
+-- local filename = nil
+-- outputfilename = function(driver,usedname)
+-- if usedname and usedname ~= "" then
+-- filename = addsuffix(usedname,"pdf")
+-- elseif not filename or filename == "" then
+-- filename = addsuffix(tex.jobname,"pdf")
+-- end
+-- return filename
+-- end
+-- end
+ -- todo: prevent twice
local function prepare(driver)
if not environment.initex then
- -- install new functions in pdf namespace
--- updaters.apply("backend.update.pdf")
- -- install new functions in lpdf namespace
- updaters.apply("backend.update.lpdf")
- -- adapt existing shortcuts to lpdf namespace
--- updaters.apply("backend.update.tex")
--- -- adapt existing shortcuts to tex namespace
- updaters.apply("backend.update")
+ --
+ backends.initialize("pdf") -- also does bindings
--
pdfname = tex.jobname .. ".pdf"
openfile(pdfname)
@@ -2957,6 +3417,7 @@ do
if pdfname then
lpdf.finalizedocument()
closefile()
+ pdfname = nil
end
end)
--
@@ -2965,14 +3426,27 @@ do
lpdf.finalizepage(true)
end
end)
- -- --
- lpdf.registerdocumentfinalizer(wrapup,nil,"wrapping up")
+ --
+ lpdf.registerdocumentfinalizer(wrapupdocument,nil,"wrapping up")
--
statistics.register("result saved in file", function()
local outputfilename = environment.outputfilename or environment.jobname or tex.jobname or "<unset>"
+ outputfilename = string.gsub(outputfilename,"^%./+","") -- todo: make/use a helper
return string.format("%s.%s, compresslevel %s, objectcompresslevel %s",outputfilename,"pdf",lpdf.getcompression())
end)
--
+ luatex.registerstopactions(function()
+ if pdfname then
+ local r = lpdf.lastreferredpage() -- somehow referenced
+ local s = lpdf.getnofpages() -- in page tree, saved in file
+ local t = lpdf.nofpages() -- in tuc file
+ if r > s then
+ report()
+ report("referred pages: %i, saved pages %i, pages from tuc file: %i, possible corrupt file",r,s,t)
+ report()
+ end
+ end
+ end)
end
converter = drivers.converters.lmtx
useddriver = driver
@@ -2996,8 +3470,13 @@ do
converter(driver,texgetbox(boxnumber),"page")
end
- localconverter = function(...)
- converter(useddriver,...)
+-- localconverter = function(...)
+-- print(...) -- ok when we add this
+-- converter(useddriver,...) -- otherwise nil .. lua bug
+-- end
+
+ localconverter = function(a,b,c,d)
+ converter(useddriver,a,b,c,d)
end
drivers.install {
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-mis.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-mis.lmt
index afb149d8af7..a3a78c49ff8 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-mis.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-mis.lmt
@@ -20,15 +20,15 @@ local format, gsub, formatters = string.format, string.gsub, string.formatters
local concat, flattened = table.concat, table.flattened
local settings_to_array = utilities.parsers.settings_to_array
-local backends, lpdf, nodes = backends, lpdf, nodes
-
-local nodeinjections = backends.pdf.nodeinjections
-local codeinjections = backends.pdf.codeinjections
-local registrations = backends.pdf.registrations
+local pdfbackend = backends and backends.registered.pdf or { }
+local nodeinjections = pdfbackend.nodeinjections
+local codeinjections = pdfbackend.codeinjections
+local registrations = pdfbackend.registrations
local getpagedimensions = layouts.getpagedimensions
local getcanvas = layouts.getcanvas
+local nodes = nodes
local nuts = nodes.nuts
local copy_node = nuts.copy
@@ -36,6 +36,7 @@ local nodepool = nuts.pool
local setstate = nodepool.setstate
local register = nodepool.register
+local lpdf = lpdf
local pdfdictionary = lpdf.dictionary
local pdfarray = lpdf.array
local pdfconstant = lpdf.constant
@@ -44,26 +45,16 @@ local pdfunicode = lpdf.unicode
local pdfverbose = lpdf.verbose
local pdfstring = lpdf.string
local pdfaction = lpdf.action
+local pdfflushobject = lpdf.flushobject
+local pdfflushstreamobject = lpdf.flushstreamobject
+local pdfminorversion = lpdf.minorversion
-local pdfflushobject
-local pdfflushstreamobject
-local pdfminorversion
-
-updaters.register("backend.update.lpdf",function()
- pdfflushobject = lpdf.flushobject
- pdfflushstreamobject = lpdf.flushstreamobject
- pdfminorversion = lpdf.minorversion
-end)
-
-local formattedtimestamp = lpdf.pdftimestamp
local adddocumentextgstate = lpdf.adddocumentextgstate
local addtocatalog = lpdf.addtocatalog
local addtoinfo = lpdf.addtoinfo
local addtopageattributes = lpdf.addtopageattributes
local addtonames = lpdf.addtonames
-local pdfgetmetadata = lpdf.getmetadata
-
local texset = tex.set
local variables = interfaces.variables
@@ -195,80 +186,9 @@ end
lpdf.registerpagefinalizer (flushpageactions, "page actions")
lpdf.registerdocumentfinalizer(flushdocumentactions,"document actions")
---- info : this can change and move elsewhere
-
-local identity = { }
-
-function codeinjections.setupidentity(specification)
- for k, v in next, specification do
- if v ~= "" then
- identity[k] = v
- end
- end
-end
+-- the code above will move to scrn-ini
-function codeinjections.getidentityvariable(name)
- return identity[name]
-end
-
-local done = false -- using "setupidentity = function() end" fails as the meaning is frozen in register
-
-local function setupidentity()
- if not done then
- local metadata = pdfgetmetadata()
- local creator = metadata.creator
- local version = metadata.contextversion
- local time = metadata.time
- local jobname = environment.jobname or tex.jobname or "unknown"
- --
- local title = identity.title
- if not title or title == "" then
- title = tex.jobname
- end
- addtoinfo("Title", pdfunicode(title), title)
- local subtitle = identity.subtitle or ""
- if subtitle ~= "" then
- addtoinfo("Subject", pdfunicode(subtitle), subtitle)
- end
- local author = identity.author or ""
- if author ~= "" then
- addtoinfo("Author", pdfunicode(author), author) -- '/Author' in /Info, 'Creator' in XMP
- end
- addtoinfo("Creator", pdfunicode(creator), creator)
- addtoinfo("CreationDate", pdfstring(formattedtimestamp(time)))
- local date = identity.date or ""
- local pdfdate = date and formattedtimestamp(date)
- if pdfdate then
- addtoinfo("ModDate", pdfstring(pdfdate), date)
- else
- -- users should enter the date in 2010-01-19T23:27:50+01:00 format
- -- and if not provided that way we use the creation time instead
- addtoinfo("ModDate", pdfstring(formattedtimestamp(time)),time)
- end
- local keywords = identity.keywords or ""
- if keywords ~= "" then
- keywords = concat(settings_to_array(keywords), " ")
- addtoinfo("Keywords", pdfunicode(keywords), keywords)
- end
- local id = lpdf.id()
- addtoinfo("ID", pdfstring(id), id) -- needed for pdf/x
- --
- addtoinfo("ConTeXt.Version",version)
- addtoinfo("ConTeXt.Time",os.date("%Y-%m-%d %H:%M"))
- addtoinfo("ConTeXt.Jobname",jobname)
- addtoinfo("ConTeXt.Url","www.pragma-ade.com")
- addtoinfo("ConTeXt.Support","contextgarden.net")
- addtoinfo("TeX.Support","tug.org")
- --
- done = true
- else
- -- no need for a message
- end
-end
-
-lpdf.registerpagefinalizer(setupidentity,"identity")
-
--- or when we want to be able to set things after pag e1:
+-- or when we want to be able to set things after page 1:
--
-- lpdf.registerdocumentfinalizer(setupidentity,1,"identity")
@@ -363,7 +283,7 @@ local pagespecs = {
[v_doublesided] = {
mode = "UseNone",
layout = "TwoColumnRight",
- fit = true,
+ fit = true,
},
[v_singlesided] = {
mode = "UseNone"
@@ -447,7 +367,6 @@ local function documentspecification()
end
end
end
-
-- maybe interfaces.variables
local layout = spec.layout
local mode = spec.mode
@@ -619,6 +538,8 @@ local function featurecreep()
conversion = getset("structure:conversions",p.block,conversionset,1,"numbers")
end
end
+ -- If needed we can do some preroll on a prefix (label) but this is a rather useless
+ -- feature (creep) anyway so why bother.
conversion = conversion and map[conversion] or map.numbers
if number == 1 or oldlabel ~= label or oldconversion ~= conversion then
list[#list+1] = i - 1 -- pdf starts numbering at 0
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-mov.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-mov.lmt
deleted file mode 100644
index 42ba6fb008f..00000000000
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-mov.lmt
+++ /dev/null
@@ -1,68 +0,0 @@
-if not modules then modules = { } end modules ['lpdf-mov'] = {
- version = 1.001,
- comment = "companion to lpdf-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local format = string.format
-
-local lpdf = lpdf
-local context = context
-
-local nodeinjections = backends.pdf.nodeinjections
-local pdfconstant = lpdf.constant
-local pdfdictionary = lpdf.dictionary
-local pdfarray = lpdf.array
-local pdfborder = lpdf.border
-local write_node = node.write
-
-function nodeinjections.insertmovie(specification)
- -- managed in figure inclusion: width, height, factor, repeat, controls, preview, label, foundname
- local width = specification.width
- local height = specification.height
- local factor = specification.factor or number.dimenfactors.bp
- local moviedict = pdfdictionary {
- F = specification.foundname,
- Aspect = pdfarray { factor * width, factor * height },
- Poster = (specification.preview and true) or false,
- }
- local controldict = pdfdictionary {
- ShowControls = (specification.controls and true) or false,
- Mode = (specification["repeat"] and pdfconstant("Repeat")) or nil,
- }
- local bs, bc = pdfborder()
- local action = pdfdictionary {
- Subtype = pdfconstant("Movie"),
- Border = bs,
- C = bc,
- T = format("movie %s",specification.label),
- Movie = moviedict,
- A = controldict,
- }
- write_node(nodeinjections.annotation(width,height,0,action())) -- test: context(...)
-end
-
-function nodeinjections.insertsound(specification)
- -- managed in interaction: repeat, label, foundname
- local soundclip = interactions.soundclips.soundclip(specification.label)
- if soundclip then
- local controldict = pdfdictionary {
- Mode = (specification["repeat"] and pdfconstant("Repeat")) or nil
- }
- local sounddict = pdfdictionary {
- F = soundclip.filename
- }
- local bs, bc = pdfborder()
- local action = pdfdictionary {
- Subtype = pdfconstant("Movie"),
- Border = bs,
- C = bc,
- T = format("sound %s",specification.label),
- Movie = sounddict,
- A = controldict,
- }
- write_node(nodeinjections.annotation(0,0,0,action())) -- test: context(...)
- end
-end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-pde.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-pde.lmt
index 7fb14ada262..68712d58d9d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-pde.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-pde.lmt
@@ -80,13 +80,12 @@ local getversion = pdfe.getversion
local getbox = pdfe.getbox
local getstatus = pdfe.getstatus
local unencrypt = pdfe.unencrypt
-
local dictionarytotable = pdfe.dictionarytotable
local arraytotable = pdfe.arraytotable
local pagestotable = pdfe.pagestotable
local readwholestream = pdfe.readwholestream
-
local getfromreference = pdfe.getfromreference
+local getfromobject = pdfe.getfromobject
local report_epdf = logs.reporter("epdf")
@@ -121,6 +120,8 @@ encryptioncodes = allocate(swapped(encryptioncodes,encryptioncodes)
pdfe.objectcodes = objectcodes
pdfe.encryptioncodes = encryptioncodes
+-- lpdf_epdf.objectcodes = objectcodes
+
local null_object_code = objectcodes.null
local reference_object_code = objectcodes.reference
@@ -136,47 +137,6 @@ local dictionary_object_code = objectcodes.dictionary
local stream_object_code = objectcodes.stream
local reference_object_code = objectcodes.reference
-local checked_access
-local get_flagged -- from pdfe -> lpdf
-
-if lpdf.dictionary then
-
- -- we're in context
-
- local pdfdictionary = lpdf.dictionary
- local pdfarray = lpdf.array
- local pdfconstant = lpdf.constant
- local pdfstring = lpdf.string
- local pdfunicode = lpdf.unicode
-
- get_flagged = function(t,f,k)
- local tk = t[k] -- triggers resolve
- local fk = f[k]
- if not fk then
- return tk
- elseif fk == "name" then
- return pdfconstant(tk)
- elseif fk == "array" then
- return pdfarray(tk)
- elseif fk == "dictionary" then
- return pdfarray(tk)
- elseif fk == "rawtext" then
- return pdfstring(tk)
- elseif fk == "unicode" then
- return pdfunicode(tk)
- else
- return tk
- end
- end
-
-else
-
- get_flagged = function(t,f,k)
- return t[k]
- end
-
-end
-
-- We need to convert the string from utf16 although there is no way to
-- check if we have a regular string starting with a bom. So, we have
-- na dilemma here: a pdf doc encoded string can be invalid utf.
@@ -198,6 +158,13 @@ local some_reference
local some_string = lpdf.frombytes
+function lpdf_epdf.objecttype(object)
+ if type(object) == "table" then
+ local kind = object.__type__
+ return kind and objectcodes[kind]
+ end
+end
+
local function get_value(document,t,key)
if not key then
return
@@ -220,22 +187,131 @@ local function get_value(document,t,key)
elseif kind == dictionary_object_code then
return some_dictionary(value[2],document)
elseif kind == stream_object_code then
- return some_stream(value,document)
+ return some_stream(value,value[2],document) -- needs checking
elseif kind == reference_object_code then
return some_reference(value,document)
end
return value
end
+local checked_access
+local get_flagged -- from pdfe -> lpdf
+
+if lpdf.dictionary then
+
+ -- these are used in mtx-pdf.lua
+
+ local pdfdictionary = lpdf.dictionary
+ local pdfarray = lpdf.array
+ local pdfconstant = lpdf.constant
+ local pdfreference = lpdf.reference
+ local pdfliteral = lpdf.literal
+
+ local copy_array, copy_dictionary
+
+ local function copyobject(object,key,value)
+ if not value then
+ value = object.__raw__[key]
+ end
+ local t = type(value)
+ if t == "string" then
+ return pdfconstant(value)
+ elseif t ~= "table" then
+ return value
+ end
+ local kind = value[1]
+ if kind == name_object_code then
+ return pdfconstant(value[2])
+ elseif kind == string_object_code then
+ return pdfliteral(value[2],value[3])
+ elseif kind == array_object_code then
+ return copyarray(object[key])
+ elseif kind == dictionary_object_code then
+ return copydictionary(object[key])
+ elseif kind == null_object_code then
+ return pdfnull()
+ elseif kind == reference_object_code then
+ return pdfreference(value[3])
+ else
+ -- report("weird: %s", objecttypes[kind] or "?")
+ end
+ end
+
+ copyarray = function(object)
+ local target = pdfarray()
+ local source = object.__raw__
+ for i=1,#source do
+ target[i] = copyobject(object,i,source[i])
+ end
+ return target
+ end
+
+ copydictionary = function(object)
+ local target = pdfdictionary()
+ local source = object.__raw__
+ for key, value in sortedhash(source) do
+ target[key] = copyobject(object,key,value)
+ end
+ return target
+ end
+
+ get_flagged = function(t,f)
+ local kind = t.__type__
+ if kind == name_object_code then
+ return pdfconstant(f)
+ elseif kind == array_object_code then
+ return copyarray(t)
+ elseif kind == dictionary_object_code then
+ return copydictionary(t)
+ elseif kind == stream_object_code then
+ return copydictionary(t)
+ elseif kind == string_object_code then
+ return pdfunicode(f)
+ elseif kind == null_object_code then
+ return pdfnull()
+ elseif kind == reference_object_code then
+ return pdfreference(t[3])
+ else
+ return f
+ end
+ end
+
+ function lpdf_epdf.verboseobject(document,n)
+ if document and n then
+ local object = document.objects[n]
+ if object then
+ local t = { n .. " 0 obj" }
+ if lpdf.epdf.objecttype(object) == "stream" then
+ t[#t+1] = object("dictionary")()
+ t[#t+1] = "stream"
+ t[#t+1] = tostring(object(true))
+ t[#t+1] = "endstream"
+ else
+ t[#t+1] = tostring(object())
+ end
+ t[#t+1] = "endobj"
+ return concat(t,"\n")
+ end
+ end
+ end
+
+else
+
+ get_flagged = function(t,f)
+ return t[k] -- hm
+ end
+
+end
+
some_dictionary = function (d,document)
local f = dictionarytotable(d,true)
local t = setmetatable({ __raw__ = f, __type__ = dictionary_object_code }, {
- __index = function(t,k)
- return get_value(document,f,k)
- end,
- __call = function(t,k)
- return get_flagged(t,f,k)
- end,
+ __index = function(t,k)
+ return get_value(document,f,k)
+ end,
+ __call = function(t)
+ return get_flagged(t,f)
+ end,
} )
return t, "dictionary"
end
@@ -247,8 +323,8 @@ some_array = function (a,document)
__index = function(t,k)
return get_value(document,f,k)
end,
- __call = function(t,k)
- return get_flagged(t,f,k)
+ __call = function(t)
+ return get_flagged(t,f)
end,
__len = function(t,k)
return n
@@ -263,8 +339,10 @@ some_stream = function(s,d,document)
__index = function(t,k)
return get_value(document,f,k)
end,
- __call = function(t,raw)
- if raw == false then
+ __call = function(t,how)
+ if how == "dictionary" then
+ return get_flagged(t,f)
+ elseif how == false then
return readwholestream(s,false) -- original
else
return readwholestream(s,true) -- uncompressed
@@ -284,7 +362,10 @@ some_reference = function(r,document)
elseif kind == array_object_code then
cached = some_array(object,document)
elseif kind == stream_object_code then
+ -- optionally not cached
cached = some_stream(object,b,document)
+ elseif kind == string_object_code then
+ cached = some_string(object,document)
else
cached = { kind, object, b, c }
-- really cache this?
@@ -295,6 +376,20 @@ some_reference = function(r,document)
return cached
end
+local function some_object(document,n)
+ local kind, object, b, c = getfromobject(document.__data__,n)
+ if kind == dictionary_object_code then
+ return some_dictionary(object,document)
+ elseif kind == array_object_code then
+ return some_array(object,document)
+ elseif kind == stream_object_code then
+ return some_stream(object,b,document)
+ else
+ -- really cache this?
+ return { kind, object, b, c }
+ end
+end
+
local resolvers = { }
lpdf_epdf.resolvers = resolvers
@@ -422,7 +517,7 @@ function resolvers.pages(document)
__xrefs__[pagedata] = pagereference
__cache__[pagereference] = pagedata
else
- report_epdf("missing pagedata for page %i, case %i",pagenumber,1)
+ report_epdf("missing pagedata for page %i, case %i",pagenumber,1)
end
else
report_epdf("missing pagedata for page %i, case %i",pagenumber,2)
@@ -462,12 +557,14 @@ function lpdf_epdf.load(filename,userpassword,ownerpassword,fromstring)
__data__ = false
end
if __data__ then
+ local __cache__ = { }
+ local __xrefs__ = { }
document = {
filename = filename,
nofcopied = 0,
copied = { },
- __cache__ = { },
- __xrefs__ = { },
+ __cache__ = __cache__,
+ __xrefs__ = __xrefs__,
__fonts__ = { },
__copied__ = { },
__data__ = __data__,
@@ -481,6 +578,17 @@ function lpdf_epdf.load(filename,userpassword,ownerpassword,fromstring)
document.majorversion, document.minorversion = getversion(__data__)
--
document.nofpages = getnofpages(__data__)
+ -- we could also use cached but this proxy hides it
+ -- setmetatableindex(__cache__,function(t,objnum)
+ document.objects = setmetatableindex(function(t,objnum)
+ local cached = __cache__[objnum]
+ if not cached then
+ cached = some_object(document,objnum)
+ __cache__[objnum] = cached
+ __xrefs__[cached] = objnum
+ end
+ return cached
+ end)
else
document = false
end
@@ -841,17 +949,10 @@ if images then do
local pdfnull = lpdf.null
local pdfliteral = lpdf.literal
- local pdfreserveobject
- local shareobjectreference
- local pdfflushobject
- local pdfflushstreamobject
-
- updaters.register("backend.update.lpdf",function()
- pdfreserveobject = lpdf.reserveobject
- shareobjectreference = lpdf.shareobjectreference
- pdfflushobject = lpdf.flushobject
- pdfflushstreamobject = lpdf.flushstreamobject
- end)
+ local pdfreserveobject = lpdf.reserveobject
+ local shareobjectreference = lpdf.shareobjectreference
+ local pdfflushobject = lpdf.flushobject
+ local pdfflushstreamobject = lpdf.flushstreamobject
local report = logs.reporter("backend","xobjects")
@@ -989,6 +1090,7 @@ if images then do
copydictionary = function (xref,copied,object)
local target = pdfdictionary()
local source = object.__raw__
+ -- hm .. no need to sort here as we create a hash
-- for key, value in next, source do
for key, value in sortedhash(source) do
if plugins then
@@ -1182,11 +1284,11 @@ if images then do
end
lpdf_epdf.image = {
- open = openpdf,
- close = closepdf,
- new = newpdf,
- query = querypdf,
- copy = copypage,
+ open = openpdf,
+ close = closepdf,
+ new = newpdf,
+ query = querypdf,
+ copy = copypage,
}
-- lpdf.injectors.pdf = function(specification)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-ren.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-ren.lmt
index 3794250d9ea..ea34505fab9 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-ren.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-ren.lmt
@@ -14,11 +14,11 @@ local formatters = string.formatters
local settings_to_array = utilities.parsers.settings_to_array
local getrandom = utilities.randomizer.get
-local backends, lpdf, nodes, node = backends, lpdf, nodes, node
+local pdfbackend = backends.registered.pdf
+local nodeinjections = pdfbackend.nodeinjections
+local codeinjections = pdfbackend.codeinjections
+local registrations = pdfbackend.registrations
-local nodeinjections = backends.pdf.nodeinjections
-local codeinjections = backends.pdf.codeinjections
-local registrations = backends.pdf.registrations
local viewerlayers = attributes.viewerlayers
local references = structures.references
@@ -36,26 +36,22 @@ local v_reset = variables.reset
local v_auto = variables.auto
local v_random = variables.random
+local lpdf = lpdf
local pdfconstant = lpdf.constant
local pdfdictionary = lpdf.dictionary
local pdfarray = lpdf.array
local pdfreference = lpdf.reference
-
-local pdfflushobject
-local pdfreserveobject
-
-updaters.register("backend.update.lpdf",function()
- pdfflushobject = lpdf.flushobject
- pdfreserveobject = lpdf.reserveobject
-end)
-
+local pdfflushobject = lpdf.flushobject
+local pdfreserveobject = lpdf.reserveobject
local addtopageattributes = lpdf.addtopageattributes
local addtopageresources = lpdf.addtopageresources
local addtocatalog = lpdf.addtocatalog
local escaped = lpdf.escaped
+local nodes = nodes
local nuts = nodes.nuts
+
local copy_node = nuts.copy
local nodepool = nuts.pool
@@ -98,7 +94,8 @@ local pagelayers, pagelayersreference, cache = nil, nil, { }
local alphabetic = { }
local escapednames = table.setmetatableindex(function(t,k)
- local v = escaped(k)
+-- local v = escaped(k)
+ local v = escaped(k,true)
t[k] = v
return v
end)
@@ -155,7 +152,8 @@ local function useviewerlayer(name) -- move up so that we can use it as local
else
hidelayers[#hidelayers+1] = nr
end
- pagelayers[escapednames[tag]] = dr -- check
+ -- pagelayers[escapednames[tag]] = dr -- check
+ pagelayers[tag] = dr -- check
else
-- todo: message
end
@@ -245,7 +243,8 @@ function executers.togglelayer(arguments) return setlayer(pdf_toggle,arguments)
-- injection
-local f_bdc = formatters["/OC /%s BDC"]
+-- local f_bdc = formatters["/OC /%s BDC"]
+local f_bdc = formatters["/OC %s BDC"]
local s_emc = "EMC"
function codeinjections.startlayer(name) -- used in mp
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-res.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-res.lmt
deleted file mode 100644
index d3c591343fc..00000000000
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-res.lmt
+++ /dev/null
@@ -1,41 +0,0 @@
-if not modules then modules = { } end modules ['lpdf-res'] = {
- version = 1.001,
- comment = "companion to lpdf-ini.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local codeinjections = backends.codeinjections
-
-local nuts = nodes.nuts
-local tonut = nodes.tonut
-
-local setwhd = nuts.setwhd
-local setlist = nuts.setlist
-
-local new_hlist = nuts.pool.hlist
-
-local boxresources = tex.boxresources
-local saveboxresource = boxresources.save
-local useboxresource = boxresources.use
-local getboxresourcedimensions = boxresources.getdimensions
-
-local pdfcollectedresources = lpdf.collectedresources
-
-function codeinjections.registerboxresource(n,offset)
- local r = saveboxresource(n,nil,pdfcollectedresources(),true,0,offset or 0) -- direct, todo: accept functions as attr/resources
- return r
-end
-
-function codeinjections.restoreboxresource(index)
- local hbox = new_hlist()
- local list, wd, ht, dp = useboxresource(index)
- setlist(hbox,tonut(list))
- setwhd(hbox,wd,ht,dp)
- return hbox -- so we return a nut !
-end
-
-function codeinjections.boxresourcedimensions(index)
- return getboxresourcedimensions(index)
-end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-rul.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-rul.lmt
index efcc6207372..4efa17bb0bc 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-rul.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-rul.lmt
@@ -6,8 +6,10 @@ if not modules then modules = { } end modules ['lpdf-rul'] = {
license = "see context related readme files"
}
-local tonumber, next, type = tonumber, next, type
-local concat = table.concat
+-- todo: split backend and pdf
+
+local tonumber, tostring, next, type = tonumber, tostring, next, type
+local concat, setmetatableindex = table.concat, table.setmetatableindex
local attributes = attributes
local nodes = nodes
@@ -31,12 +33,25 @@ local floor = math.floor
local getrandom = utilities.randomizer.get
local formatters = string.formatters
+local setdimen = tex.setdimen
+local isdimen = tex.isdimen
+local setmacro = tokens.setters.macro
+
+local codeinjections = backends.registered.pdf.codeinjections
+
+local d_rule_width = isdimen("d_rule_width")
+local d_rule_height = isdimen("d_rule_height")
+local d_rule_depth = isdimen("d_rule_depth")
+local d_rule_h = isdimen("d_rule_h")
+local d_rule_v = isdimen("d_rule_v")
+local d_rule_line = isdimen("d_rule_line")
+local d_rule_offset = isdimen("d_rule_offset")
+local d_rule_factor = isdimen("d_rule_factor")
+
-- This is very pdf specific. Maybe move some to lpdf-rul.lua some day.
local pdfprint ; pdfprint = function(...) pdfprint = lpdf.print return pdfprint(...) end
--- updaters.register("backend.update",function() pdfprint = lpdf.print end)
-
do
local simplemetapost = metapost.simple
@@ -48,7 +63,7 @@ do
-- local maxcachesize = 8*1024
-- local cachethreshold = 1024/2
- local cache = table.setmetatableindex(function(t,k)
+ local cache = setmetatableindex(function(t,k)
local v = simplemetapost("rulefun",k) -- w, h, d
cachesize = cachesize + #v
if cachesize > maxcachesize then
@@ -70,49 +85,82 @@ do
local replacer = utilities.templates.replacer
-- todo: RuleColor -> just string ?
-
- local predefined = {
+ -- todo: fetch them instead fo push them
+
+-- local predefined = {
+-- ["fake:word"] = replacer [[
+-- FakeWord(%width%,%height%,%depth%,%line%,%color%);
+-- ]],
+-- ["fake:rule"] = replacer[[
+-- %initializations%
+-- FakeRule(%width%,%height%,%depth%,%line%,%color%);
+-- ]],
+-- ["fake:rest"] = replacer [[
+-- RuleDirection := "%direction%" ;
+-- RuleOption := "%option%" ;
+-- RuleWidth := %width% ;
+-- RuleHeight := %height% ;
+-- RuleDepth := %depth% ;
+-- RuleH := %h% ;
+-- RuleV := %v% ;
+-- RuleThickness := %line% ;
+-- RuleFactor := %factor% ;
+-- RuleOffset := %offset% ;
+-- def RuleColor = %color% enddef ;
+-- %data%;
+-- ]]
+-- }
+
+ local predefined = {
["fake:word"] = replacer [[
-FakeWord(%width%,%height%,%depth%,%line%,%color%);
+FakeWord(RuleWidth,RuleHeight,RuleDepth,RuleThickness,RuleColor);
]],
["fake:rule"] = replacer[[
%initializations%
-FakeRule(%width%,%height%,%depth%,%line%,%color%);
+FakeRule(RuleWidth,RuleHeight,RuleDepth,RuleThickness,RuleColor);
]],
["fake:rest"] = replacer [[
-RuleDirection := "%direction%" ;
-RuleOption := "%option%" ;
-RuleWidth := %width% ;
-RuleHeight := %height% ;
-RuleDepth := %depth% ;
-RuleH := %h% ;
-RuleV := %v% ;
-RuleThickness := %line% ;
-RuleFactor := %factor% ;
-RuleOffset := %offset% ;
-def RuleColor = %color% enddef ;
%data%;
]]
}
local initialized = false ;
- local rule_mp = function(p,h,v,i,n)
- local name = p.name or "fake:rest"
- local code = (predefined[name] or predefined["fake:rest"]) {
+ local function rule_mp(p,h,v,i,n)
+ local name = p.name or "fake:rest"
+ local ht = p.height or 0
+ local dp = p.depth or 0
+ local total = ht + dp
+ local code = (predefined[name] or predefined["fake:rest"]) {
data = p.data or "",
- width = p.width * bpfactor,
- height = p.height * bpfactor,
- depth = p.depth * bpfactor,
- factor = (p.factor or 0) * bpfactor, -- needs checking
- offset = p.offset or 0,
- line = (p.line or 65536) * bpfactor,
- color = mpcolor(p.ma,p.ca,p.ta),
- option = p.option or "",
- direction = p.direction or lefttoright_code,
- h = h * bpfactor,
- v = v * bpfactor,
+ -- -- width = p.width * bpfactor,
+ -- -- height = p.height * bpfactor,
+ -- -- depth = p.depth * bpfactor,
+ -- width = h * bpfactor,
+ -- height = v * bpfactor * ht / total,
+ -- depth = v * bpfactor * dp / total,
+ -- factor = (p.factor or 0) * bpfactor, -- needs checking
+ -- offset = p.offset or 0,
+ -- line = (p.line or 65536) * bpfactor,
+ -- color = mpcolor(p.ma,p.ca,p.ta),
+ -- option = p.option or "",
+ -- direction = p.direction or lefttoright_code,
+ -- h = h * bpfactor,
+ -- v = v * bpfactor,
}
+ --
+ setdimen("d_rule_width", h)
+ setdimen("d_rule_height", v * ht / total)
+ setdimen("d_rule_depth", v * dp / total)
+ setdimen("d_rule_h", h)
+ setdimen("d_rule_v", v)
+ setdimen("d_rule_line", p.line or 65536)
+ setdimen("d_rule_offset", (p.offset or 0) * 65536)
+ setdimen("d_rule_factor", (p.factor or 0)) -- needs checking
+ setmacro("m_rule_option", p.option or "")
+ setmacro("m_rule_direction", p.direction or lefttoright_code)
+ setmacro("m_rule_color", mpcolor(p.ma,p.ca,p.ta))
+ --
if not initialized then
initialized = true
simplemetapost("rulefun",formatters["randomseed := %s;"](getrandom("rulefun",0,4095)))
@@ -129,9 +177,7 @@ def RuleColor = %color% enddef ;
end
end
- updaters.register("backend.update.lpdf",function()
- ruleactions.mp = rule_mp
- end)
+ codeinjections.ruleactionmp = rule_mp
end
@@ -141,195 +187,241 @@ do
-- course one can use mp instead. It could be improved but at the cost of more
-- code than I'm willing to add for something hardly used.
- local function round(p,kind)
- local method = tonumber(p.corner) or 0
- if method < 0 or method > 27 then
- method = 0
+ local linemapping = {
+ [interfaces.variables.round] = "ltrb",
+ [ "0"] = "ltrb", ["ltrb"] = "ltrb", ["trbl"] = "ltrb", ["rblt"] = "ltrb", ["bltr"] = "ltrb",
+ --
+ ["1"] = "ltrb", ["2"] = "ltrb", ["3"] = "ltrb", ["4"] = "ltrb",
+ ["5"] = "ltrb", ["6"] = "ltrb", ["7"] = "ltrb", ["8"] = "ltrb",
+ --
+ [ "9"] = "lbr", ["lbr"] = "lbr", ["rbl"] = "lbr",
+ ["10"] = "tlb", ["tlb"] = "tlb", ["blt"] = "tlb",
+ ["11"] = "ltr", ["ltr"] = "ltr", ["rtl"] = "lrt",
+ ["12"] = "lbr", ["lbr"] = "lbr", ["rbl"] = "lbr",
+ --
+ ["13"] = "rt", ["rt"] = "rt", ["tr"] = "rt",
+ ["14"] = "rb", ["rb"] = "rb", ["br"] = "rb",
+ ["15"] = "bl", ["bl"] = "bl", ["lb"] = "bl",
+ ["16"] = "tl", ["tl"] = "tl", ["lt"] = "tl",
+ --
+ ["32"] = "lr", ["lr"] = "lr", ["rl"] = "lr",
+ ["33"] = "tb", ["tb"] = "tb", ["bt"] = "tb",
+ --
+ ["28"] = "l", ["l"] = "l",
+ ["29"] = "r", ["r"] = "r",
+ ["30"] = "b", ["b"] = "b",
+ ["31"] = "t", ["t"] = "t",
+ }
+
+ local roundmapping = {
+ [interfaces.variables.round] = "ltrb",
+ [ "0"] = "ltrb", ["ltrb"] = "ltrb", ["trbl"] = "ltrb", ["rblt"] = "ltrb", ["bltr"] = "ltrb",
+ --
+ [ "9"] = "lbr", ["lbr"] = "lbr", ["rbl"] = "lbr",
+ ["10"] = "tlb", ["tlb"] = "tlb", ["blt"] = "tlb",
+ ["11"] = "ltr", ["ltr"] = "ltr", ["rtl"] = "lrt",
+ ["12"] = "lbr", ["lbr"] = "lbr", ["rbl"] = "lbr",
+ --
+ ["13"] = "rt", ["rt"] = "rt", ["tr"] = "rt",
+ ["14"] = "rb", ["rb"] = "rb", ["br"] = "rb",
+ ["15"] = "bl", ["bl"] = "bl", ["lb"] = "bl",
+ ["16"] = "tl", ["tl"] = "tl", ["lt"] = "tl",
+ --
+ ["32"] = "lr", ["lr"] = "lr", ["rl"] = "lr",
+ ["33"] = "tb", ["tb"] = "tb", ["bt"] = "tb",
+ --
+ ["28"] = "l", ["l"] = "l",
+ ["29"] = "r", ["r"] = "r",
+ ["30"] = "b", ["b"] = "b",
+ ["31"] = "t", ["t"] = "t",
+ }
+
+ setmetatableindex(linemapping,function(t,k)
+ local v = tonumber(k)
+ if v then
+ v = tostring(v)
+ else
+ v = "ltrb"
+ end
+ t[k] = v
+ return v
+ end)
+
+ setmetatableindex(roundmapping,function(t,k)
+ local v = tonumber(k)
+ if v then
+ v = tostring(v)
+ else
+ v = "ltrb"
end
+ t[k] = v
+ return v
+ end)
+
+ local function round(p,kind,corner)
local width = p.width or 0
local height = p.height or 0
local depth = p.depth or 0
- local total = height + depth
local radius = p.radius or 655360
- local line = p.line or 65536
- local how = (method > 8 or kind ~= "fill") and "S" or "f"
+ local line = (p.line or 65536) * bpfactor
local half = line / 2
- local xmin = half * bpfactor
- local xmax = ( width - half) * bpfactor
- local ymax = ( height - half) * bpfactor
- local ymin = (-depth + half) * bpfactor
- local full = ( radius + half)
- local xxmin = full * bpfactor
- local xxmax = ( width - full) * bpfactor
- local yymax = ( height - full) * bpfactor
- local yymin = (-depth + full) * bpfactor
- line = line * bpfactor
- if xxmin <= xxmax and yymin <= yymax then
- local list = nil
- if method == 0 then
- list = {
- "q", line, "w", xxmin, ymin, "m", xxmax, ymin, "l", xmax, ymin, xmax, yymin, "y",
- xmax, yymax, "l", xmax, ymax, xxmax, ymax, "y", xxmin, ymax, "l", xmin, ymax,
- xmin, yymax, "y", xmin, yymin, "l", xmin, ymin, xxmin, ymin, "y", "h", how, "Q",
- }
- elseif method == 1 then
+ local xxmin = 0
+ local xxmax = width * bpfactor
+ local yymax = height * bpfactor
+ local yymin = -depth * bpfactor
+ local xmin = xxmin + half
+ local xmax = xxmax - half
+ local ymax = yymax - half
+ local ymin = yymin + half
+ local list = nil
+ if radius == 0 then
+ local method = linemapping[corner]
+ if method == "ltrb" then
list = {
- "q", line, "w", xxmin, ymin, "m", xxmax, ymin, "l", xmax, ymin, xmax, yymin, "y",
- xmax, ymax, "l", xmin, ymax, "l", xmin, yymin, "l", xmin, ymin, xxmin, ymin, "y",
- "h", how, "Q",
+ "q", line, "w", xmin, ymin, "m", xmax, ymin, "l", xmax, ymax, "l", xmin, ymax,
+ kind == "fill" and "l h f Q" or "l h S Q"
}
- elseif method == 2 then
- list = {
- "q", line, "w", xxmin, ymin, "m", xmax, ymin, "l", xmax, ymax, "l", xxmin, ymax,
- "l", xmin, ymax, xmin, yymax, "y", xmin, yymin, "l", xmin, ymin, xxmin, ymin,
- "y", "h", how, "Q",
- }
- elseif method == 3 then
- list = {
- "q", line, "w", xmin, ymin, "m", xmax, ymin, "l", xmax, yymax, "l", xmax, ymax,
- xxmax, ymax, "y", xxmin, ymax, "l", xmin, ymax, xmin, yymax, "y", xmin, ymin,
- "l", "h", how, "Q",
- }
-
- elseif method == 4 then
- list = {
- "q", line, "w", xmin, ymin, "m", xxmax, ymin, "l", xmax, ymin, xmax, yymin, "y",
- xmax, yymax, "l", xmax, ymax, xxmax, ymax, "y", xmin, ymax, "l", xmin, ymin, "l",
- "h", how, "Q",
- }
- elseif method == 5 then
- list = {
- "q", line, "w", xmin, ymin, "m", xmax, ymin, "l", xmax, yymax, "l", xmax, ymax,
- xxmax, ymax, "y", xmin, ymax, "l", xmin, ymin, "l", "h", how, "Q",
- }
- elseif method == 6 then
- list = {
- "q", line, "w", xmin, ymin, "m", xxmax, ymin, "l", xmax, ymin, xmax, yymin, "y",
- xmax, ymax, "l", xmin, ymax, "l", xmin, ymin, "l", "h", how, "Q",
- }
- elseif method == 7 then
- list = {
- "q", line, "w", xxmin, ymin, "m", xmax, ymin, "l", xmax, ymax, "l", xmin, ymax,
- "l", xmin, yymin, "l", xmin, ymin, xxmin, ymin, "y", "h", how, "Q",
- }
- elseif method == 8 then
- list = {
- "q", line, "w", xmin, ymin, "m", xmax, ymin, "l", xmax, ymax, "l", xxmin, ymax,
- "l", xmin, ymax, xmin, yymax, "y", xmin, ymin, "l", "h", how, "Q",
- }
- elseif method == 9 then
- list = {
- "q", line, "w", xmin, ymax, "m", xmin, yymin, "l", xmin, ymin, xxmin, ymin, "y",
- xxmax, ymin, "l", xmax, ymin, xmax, yymin, "y", xmax, ymax, "l", how, "Q",
- }
- elseif method == 10 then
- list = {
- "q", line, "w", xmax, ymax, "m", xxmin, ymax, "l", xmin, ymax, xmin, yymax, "y",
- xmin, yymin, "l", xmin, ymin, xxmin, ymin, "y", xmax, ymin, "l", how, "Q",
- }
- elseif method == 11 then
- list = {
- "q", line, "w", xmax, ymin, "m", xmax, yymax, "l", xmax, ymax, xxmax, ymax, "y",
- xxmin, ymax, "l", xmin, ymax, xmin, yymax, "y", xmin, ymin, "l", how, "Q",
- }
- elseif method == 12 then
- list = {
- "q", line, "w", xmin, ymax, "m", xxmax, ymax, "l", xmax, ymax, xmax, yymax, "y",
- xmax, yymin, "l", xmax, ymin, xxmax, ymin, "y", xmin, ymin, "l", how, "Q",
- }
- elseif method == 13 then
- list = {
- "q", line, "w", xmin, ymax, "m", xxmax, ymax, "l", xmax, ymax, xmax, yymax, "y",
- xmax, ymin, "l", how, "Q",
- }
- elseif method == 14 then
- list = {
- "q", line, "w", xmax, ymax, "m", xmax, yymin, "l", xmax, ymin, xxmax, ymin, "y",
- xmin, ymin, "l", how, "Q",
- }
- elseif method == 15 then
- list = {
- "q", line, "w", xmax, ymin, "m", xxmin, ymin, "l", xmin, ymin, xmin, yymin, "y",
- xmin, ymax, "l", how, "Q",
- }
- elseif method == 16 then
- list = {
- "q", line, "w", xmin, ymin, "m", xmin, yymax, "l", xmin, ymax, xxmin, ymax, "y",
- xmax, ymax, "l", how, "Q",
- }
- elseif method == 17 then
- list = {
- "q", line, "w", xxmax, ymax, "m", xmax, ymax, xmax, yymax, "y", how, "Q",
- }
- elseif method == 18 then
- list = {
- "q", line, "w", xmax, yymin, "m", xmax, ymin, xxmax, ymin, "y", how, "Q",
- }
- elseif method == 19 then
- list = {
- "q", line, "w", xxmin, ymin, "m", xmin, ymin, xmin, yymin, "y", how, "Q",
- }
- elseif method == 20 then
- list = {
- "q", line, "w", xmin, yymax, "m", xmin, ymax, xxmin, ymax, "y", how, "Q",
- }
- elseif method == 21 then
- list = {
- "q", line, "w", xxmax, ymax, "m", xmax, ymax, xmax, yymax, "y", xmin, yymax, "m",
- xmin, ymax, xxmin, ymax, "y", how, "Q",
- }
- elseif method == 22 then
- list = {
- "q", line, "w", xxmax, ymax, "m", xmax, ymax, xmax, yymax, "y", xmax, yymin, "m",
- xmax, ymin, xxmax, ymin, "y", how, "Q",
- }
- elseif method == 23 then
- list = {
- "q", line, "w", xmax, yymin, "m", xmax, ymin, xxmax, ymin, "y", xxmin, ymin, "m",
- xmin, ymin, xmin, yymin, "y", how, "Q",
- }
- elseif method == 24 then
- list = {
- "q", line, "w", xxmin, ymin, "m", xmin, ymin, xmin, yymin, "y", xmin, yymax, "m",
- xmin, ymax, xxmin, ymax, "y", how, "Q",
- }
- elseif method == 25 then
- list = {
- "q", line, "w", xxmax, ymax, "m", xmax, ymax, xmax, yymax, "y", xmax, yymin, "m",
- xmax, ymin, xxmax, ymin, "y", xxmin, ymin, "m", xmin, ymin, xmin, yymin, "y",
- xmin, yymax, "m", xmin, ymax, xxmin, ymax, "y", how, "Q",
- }
- elseif method == 26 then
+ elseif method == "l" then
+ list = { "q", line, "w", xmin, yymin, "m", xmin, yymax, "l S Q" }
+ elseif method == "r" then
+ list = { "q", line, "w", xmax, yymin, "m", xmax, yymax, "l S Q" }
+ elseif method == "b" then
+ list = { "q", line, "w", xxmin, ymin, "m", xxmax, ymin, "l S Q" }
+ elseif method == "t" then
+ list = { "q", line, "w", xxmin, ymax, "m", xxmax, ymax, "l S Q" }
+ elseif method == "lr" then
+ list = { "q", line, "w", xmin, yymin, "m", xmin, yymax, "l", xmax, yymin, "m", xmax, yymax, "l S Q" }
+ elseif method == "tb" then
+ list = { "q", line, "w", xxmin, ymin, "m", xxmax, ymin, "l", xxmin, ymax, "m", xxmax, ymax, "l S Q" }
+ elseif method == "lbr" then
+ list = { "q", line, "w", xmin, yymax, "m", xmin, ymin, "l", xmax, ymin, "l", xmax, yymax, "l S Q" }
+ elseif method == "tlb" then
+ list = { "q", line, "w", xxmax, ymax, "m", xmin, ymax, "l", xmin, ymin, "l", xxmax, ymin, "l S Q" }
+ elseif method == "ltr" then
+ list = { "q", line, "w", xmin, yymin, "m", xmin, ymax, "l", xmax, ymax, "l", xmax, yymin, "l S Q" }
+ elseif method == "lbr" then
+ list = { "q", line, "w", xxmin, ymax, "m", xmax, ymax, "l", xmax, ymin, "l", xxmin, ymin, "l S Q" }
+ elseif method == "rt" then
+ list = { "q", line, "w", xxmin, ymax, "m", xmax, ymax, "l", xmax, yymin, "l S Q" }
+ elseif method == "rb" then
+ list = { "q", line, "w", xmax, yymax, "m", xmax, ymin, "l", xxmin, ymin, "l S Q" }
+ elseif method == "bl" then
+ list = { "q", line, "w", xxmax, ymin, "m", xmin, ymin, "l", xmin, yymax, "l S Q" }
+ elseif method == "tl" then
+ list = { "q", line, "w", xmin, yymin, "m", xmin, ymax, "l", xxmax, ymax, "l S Q" }
+ else
+ return
+ end
+ else
+ local method = roundmapping[corner]
+ local done = kind ~= "fill" and "h S Q" or "h f Q" -- todo
+ local full = ( radius + half)
+ local xxxmin = full * bpfactor
+ local xxxmax = ( width - full) * bpfactor
+ local yyymax = ( height - full) * bpfactor
+ local yyymin = (-depth + full) * bpfactor
+ if xxxmin > xxxmax or yyymin > yyymax then
+ return
+ elseif method == "ltrb" then
list = {
- "q", line, "w", xmax, yymin, "m", xmax, ymin, xxmax, ymin, "y", xmin, yymax, "m",
- xmin, ymax, xxmin, ymax, "y", how, "Q",
+ "q", line, "w", xxxmin, ymin, "m", xxxmax, ymin, "l", xmax, ymin, xmax, yyymin, "y", xmax, yyymax, "l", xmax, ymax, xxxmax, ymax, "y",
+ xxxmin, ymax, "l", xmin, ymax, xmin, yyymax, "y", xmin, yyymin, "l", xmin, ymin, xxxmin, ymin, "y", done,
}
-
- elseif method == 27 then
+ elseif method == "1" then -- ll lr
+ list = { "q", line, "w", xxxmin, ymin, "m", xxxmax, ymin, "l", xmax, ymin, xmax, yyymin, "y", xmax, ymax, "l", xmin, ymax, "l", xmin, yyymin, "l", xmin, ymin, xxxmin, ymin, "y", done }
+ elseif method == "2" then -- ll ul
+ list = { "q", line, "w", xxxmin, ymin, "m", xmax, ymin, "l", xmax, ymax, "l", xxxmin, ymax, "l", xmin, ymax, xmin, yyymax, "y", xmin, yyymin, "l", xmin, ymin, xxxmin, ymin, "y", done }
+ elseif method == "3" then -- ul ur
+ list = { "q", line, "w", xmin, ymin, "m", xmax, ymin, "l", xmax, yyymax, "l", xmax, ymax, xxxmax, ymax, "y", xxxmin, ymax, "l", xmin, ymax, xmin, yyymax, "y", xmin, ymin, "l", done }
+ elseif method == "4" then -- ur lr
+ list = { "q", line, "w", xmin, ymin, "m", xxxmax, ymin, "l", xmax, ymin, xmax, yyymin, "y", xmax, yyymax, "l", xmax, ymax, xxxmax, ymax, "y", xmin, ymax, "l", xmin, ymin, "l", done }
+ elseif method == "5" then -- ur
+ list = { "q", line, "w", xmin, ymin, "m", xmax, ymin, "l", xmax, yyymax, "l", xmax, ymax, xxxmax, ymax, "y", xmin, ymax, "l", xmin, ymin, "l", done }
+ elseif method == "6" then -- lr
+ list = { "q", line, "w", xmin, ymin, "m", xxxmax, ymin, "l", xmax, ymin, xmax, yyymin, "y", xmax, ymax, "l", xmin, ymax, "l", xmin, ymin, "l", done }
+ elseif method == "7" then -- ur
+ list = { "q", line, "w", xxxmin, ymin, "m", xmax, ymin, "l", xmax, ymax, "l", xmin, ymax, "l", xmin, yyymin, "l", xmin, ymin, xxxmin, ymin, "y", done } -- outlier
+ elseif method == "8" then -- ul
+ list = { "q", line, "w", xmin, ymin, "m", xmax, ymin, "l", xmax, ymax, "l", xxxmin, ymax, "l", xmin, ymax, xmin, yyymax, "y", xmin, ymin, "l", done }
+ elseif method == "lbr" then
+ list = { "q", line, "w", xmin, yymax, "m", xmin, yyymin, "l", xmin, ymin, xxxmin, ymin, "y", xxxmax, ymin, "l", xmax, ymin, xmax, yyymin, "y", xmax, yymax, "l S Q" }
+ elseif method == "tlb" then
+ list = { "q", line, "w", xxmax, ymax, "m", xxxmin, ymax, "l", xmin, ymax, xmin, yyymax, "y", xmin, yyymin, "l", xmin, ymin, xxxmin, ymin, "y", xxmax, ymin, "l S Q" }
+ elseif method == "ltr" then
+ list = { "q", line, "w", xmax, yymin, "m", xmax, yyymax, "l", xmax, ymax, xxxmax, ymax, "y", xxxmin, ymax, "l", xmin, ymax, xmin, yyymax, "y", xmin, yymin, "l S Q" }
+ elseif method == "lbr" then
+ list = { "q", line, "w", xxmin, ymax, "m", xxxmax, ymax, "l", xmax, ymax, xmax, yyymax, "y", xmax, yyymin, "l", xmax, ymin, xxxmax, ymin, "y", xxmin, ymin, "l S Q" }
+ elseif method == "lr" then
+ list = { "q", line, "w", xxxmin, ymin, "m", xmin, ymin, xmin, yyymin, "y", xmin, yyymax, "l", xmin, ymax, xxxmin, ymax, "y",
+ xxxmax, ymax, "m", xmax, ymax, xmax, yyymax, "y", xmax, yyymin, "l", xmax, ymin, xxxmax, ymin, "y S Q" }
+ elseif method == "tb" then
+ list = { "q", line, "w", xmax, yyymin, "m", xmax, ymin, xxxmax, ymin, "y", xxxmin, ymin, "l", xmin, ymin, xmin, yyymin, "y",
+ xmax, yyymax, "m", xmax, ymax, xxxmax, ymax, "y", xxxmin, ymax, "l", xmin, ymax, xmin, yyymax, "y S Q" }
+ elseif method == "rt" then
+ list = { "q", line, "w", xxmin, ymax, "m", xxxmax, ymax, "l", xmax, ymax, xmax, yyymax, "y", xmax, yymin, "l S Q" }
+ elseif method == "rb" then
+ list = { "q", line, "w", xmax, yymax, "m", xmax, yyymin, "l", xmax, ymin, xxxmax, ymin, "y", xxmin, ymin, "l S Q" }
+ elseif method == "bl" then
+ list = { "q", line, "w", xxmax, ymin, "m", xxxmin, ymin, "l", xmin, ymin, xmin, yyymin, "y", xmin, yymax, "l S Q" }
+ elseif method == "tl" then
+ list = { "q", line, "w", xmin, yymin, "m", xmin, yyymax, "l", xmin, ymax, xxxmin, ymax, "y", xxmax, ymax, "l S Q" }
+ elseif method == "17" then -- urx
+ list = { "q", line, "w", xxxmax, ymax, "m", xmax, ymax, xmax, yyymax, "y S Q" }
+ elseif method == "18" then -- lrt
+ list = { "q", line, "w", xmax, yyymin, "m", xmax, ymin, xxxmax, ymin, "y S Q" }
+ elseif method == "19" then -- llx
+ list = { "q", line, "w", xxxmin, ymin, "m", xmin, ymin, xmin, yyymin, "y S Q" }
+ elseif method == "20" then -- urx
+ list = { "q", line, "w", xmin, yyymax, "m", xmin, ymax, xxxmin, ymax, "y S Q" }
+ elseif method == "21" then -- ulx urx
+ list = { "q", line, "w", xmax, yyymax, "m", xmax, ymax, xxxmax, ymax, "y", xxxmin, ymax, "m", xmin, ymax, xmin, yyymax, "y S Q" }
+ elseif method == "22" then -- urt lrt
+ list = { "q", line, "w", xxxmax, ymax, "m", xmax, ymax, xmax, yyymax, "y", xmax, yyymin, "m", xmax, ymin, xxxmax, ymin, "y S Q" }
+ elseif method == "23" then -- llx lrx
+ list = { "q", line, "w", xmax, yyymin, "m", xmax, ymin, xxxmax, ymin, "y", xxxmin, ymin, "m", xmin, ymin, xmin, yyymin, "y S Q" }
+ elseif method == "24" then -- ulx llx
+ list = { "q", line, "w", xxxmin, ymin, "m", xmin, ymin, xmin, yyymin, "y", xmin, yyymax, "m", xmin, ymax, xxxmin, ymax, "y S Q" }
+ elseif method == "25" then -- llx lrx urx ulx
list = {
- "q", line, "w", xxmax, ymax, "m", xmax, ymax, xmax, yymax, "y", xxmin, ymin, "m",
- xmin, ymin, xmin, yymin, "y", how, "Q",
+ "q", line, "w", xxxmax, ymax, "m", xmax, ymax, xmax, yyymax, "y", xmax, yyymin, "m", xmax, ymin, xxxmax, ymin, "y", xxxmin, ymin, "m",
+ xmin, ymin, xmin, yyymin, "y", xmin, yyymax, "m", xmin, ymax, xxxmin, ymax, "y S Q",
}
+ elseif method == "26" then
+ list = { "q", line, "w", xmax, yyymin, "m", xmax, ymin, xxxmax, ymin, "y", xmin, yyymax, "m", xmin, ymax, xxxmin, ymax, "y S Q" }
+ elseif method == "27" then
+ list = { "q", line, "w", xxxmax, ymax, "m", xmax, ymax, xmax, yyymax, "y", xxxmin, ymin, "m", xmin, ymin, xmin, yyymin, "y S Q" }
+ elseif method == "l" then
+ list = { "q", line, "w", xxxmin, ymin, "m", xmin, ymin, xmin, yyymin, "y", xmin, yyymax, "l", xmin, ymax, xxxmin, ymax, "y S Q" }
+ elseif method == "r" then
+ list = { "q", line, "w", xxxmax, ymax, "m", xmax, ymax, xmax, yyymax, "y", xmax, yyymin, "l", xmax, ymin, xxxmax, ymin, "y S Q" }
+ elseif method == "b" then
+ list = { "q", line, "w", xmax, yyymin, "m", xmax, ymin, xxxmax, ymin, "y", xxxmin, ymin, "l", xmin, ymin, xmin, yyymin, "y S Q" }
+ elseif method == "t" then
+ list = { "q", line, "w", xmax, yyymax, "m", xmax, ymax, xxxmax, ymax, "y", xxxmin, ymax, "l", xmin, ymax, xmin, yyymax, "y S Q" }
+ else
+ return
end
- pdfprint("direct",concat(list," "))
end
+ pdfprint("direct",concat(list," "))
end
- local f_rectangle = formatters["%.6N w %.6N %.6N %.6N %.6N re %s"]
- local f_baselined = formatters["%.6N w %.6N %.6N %.6N %.6N re s %.6N %.6N m %.6N %.6N l s"]
- local f_dashlined = formatters["%.6N w %.6N %.6N %.6N %.6N re s [%.6N %.6N] 2 d %.6N %.6N m %.6N %.6N l s"]
+ local f_rectangle = formatters["q %.6N w %.6N %.6N %.6N %.6N re %s Q"]
+ local f_baselined = formatters["q %.6N w %.6N %.6N %.6N %.6N re s %.6N %.6N m %.6N %.6N l s Q"]
+ local f_dashlined = formatters["q %.6N w %.6N %.6N %.6N %.6N re s [%.6N %.6N] 2 d %.6N %.6N m %.6N %.6N l s Q"]
+ local f_dashtwice = formatters["q %.6N w %.6N %.6N %.6N %.6N re s [%.6N %.6N] 2 d %.6N %.6N m %.6N %.6N l s %.6N %.6N m %.6N %.6N l s Q"]
local f_radtangle = formatters[
-[[%.6N w %.6N %.6N m
+[[q %.6N w %.6N %.6N m
%.6N %.6N l %.6N %.6N %.6N %.6N y
%.6N %.6N l %.6N %.6N %.6N %.6N y
%.6N %.6N l %.6N %.6N %.6N %.6N y
%.6N %.6N l %.6N %.6N %.6N %.6N y
-h %s]]
+h %s Q]]
]
local rule_any = function(p,h,v,i,n)
- if p.corner then
- return round(p,i)
+ local corner = p.corner
+ if corner then
+ return round(p,i,corner)
else
local l = (p.line or 65536)*bpfactor
local r = p and (p.radius or 0)*bpfactor or 0
@@ -359,30 +451,30 @@ h %s]]
local h = h * bpfactor
local d = d * bpfactor
local o = l / 2
- if (d >= 0 and h >= 0) or (d <= 0 and h <= 0) then
+ local u = p.double
+ if p.baseline ~= false and ((d >= 0 and h >= 0) or (d <= 0 and h <= 0)) then
local dashed = tonumber(p.dashed)
if dashed and dashed > 5*line then
dashed = dashed * bpfactor
local delta = (w - 2*dashed*floor(w/(2*dashed)))/2
- pdfprint("direct",f_dashlined(l,o,o,w-l,h+d-l,dashed,dashed,delta,d,w-delta,d))
+ if u then
+ u = u * bpfactor
+ pdfprint("direct",f_dashtwice(l,o,o,w-l,h+d-l,dashed,dashed,delta,d,w-delta,d,delta,d+u,w-delta,d+u))
+ else
+ pdfprint("direct",f_dashlined(l,o,o,w-l,h+d-l,dashed,dashed,delta,d,w-delta,d))
+ end
else
pdfprint("direct",f_baselined(l,o,o,w-l,h+d-l,0,d,w,d))
end
else
- pdfprint("direct",f_rectangle(l,o,o,w-l,h+d-l))
+ pdfprint("direct",f_rectangle(l,o,o,w-l,h+d-l,"s"))
end
end
- updaters.register("backend.update.lpdf",function()
- ruleactions.fill = rule_any
- ruleactions.draw = rule_any
- ruleactions.stroke = rule_any
- ruleactions.box = rule_box
- end)
+ codeinjections.ruleactionfill = rule_any
+ codeinjections.ruleactiondraw = rule_any
+ codeinjections.ruleactionstroke = rule_any
+ codeinjections.ruleactionbox = rule_box
end
-
- ruleactions.mp = unsupported
-
-
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-tag.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-tag.lmt
index 44a84ea59bb..f6a881208f3 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-tag.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-tag.lmt
@@ -18,16 +18,14 @@ local trace_info = false trackers.register("structures.tags.info", function(v)
local report_tags = logs.reporter("backend","tags")
-local backends = backends
-local lpdf = lpdf
-local nodes = nodes
-
-local nodeinjections = backends.pdf.nodeinjections
-local codeinjections = backends.pdf.codeinjections
+local pdfbackend = backends.registered.pdf
+local nodeinjections = pdfbackend.nodeinjections
+local codeinjections = pdfbackend.codeinjections
local enableaction = nodes.tasks.enableaction
local disableaction = nodes.tasks.disableaction
+local lpdf = lpdf
local pdfdictionary = lpdf.dictionary
local pdfarray = lpdf.array
local pdfboolean = lpdf.boolean
@@ -39,18 +37,13 @@ local pdfmakenametree = lpdf.makenametree
local addtocatalog = lpdf.addtocatalog
local addtopageattributes = lpdf.addtopageattributes
-local pdfflushobject
-local pdfreserveobject
-local pdfpagereference
-
-updaters.register("backend.update.lpdf",function()
- pdfflushobject = lpdf.flushobject
- pdfreserveobject = lpdf.reserveobject
- pdfpagereference = lpdf.pagereference
-end)
+local pdfflushobject = lpdf.flushobject
+local pdfreserveobject = lpdf.reserveobject
+local pdfpagereference = lpdf.pagereference
local texgetcount = tex.getcount
+local nodes = nodes
local nodecodes = nodes.nodecodes
local hlist_code = nodecodes.hlist
@@ -87,6 +80,8 @@ local parent_ref -- delayed
local root -- delayed
local names = { }
local tree = { }
+local firstintree = false
+local lastintree = false
local elements = { }
local structurestags = structures.tags
@@ -139,24 +134,59 @@ end
-- mostly the same as the annotations tree
+local usenamespace = false experiments.register("structures.tags.namespaces", function(v) usenamespace = v end)
+
+local namespaceurls = {
+ mathml = "http://www.w3.org/1998/Math/MathML",
+}
+
local function finishstructure()
if root and #structure_kids > 0 then
local nums = pdfarray()
local n = 0
- for i=1,#tree do
- n = n + 1 ; nums[n] = i - 1
- n = n + 1 ; nums[n] = pdfreference(pdfflushobject(tree[i]))
+ for i=firstintree,lastintree do
+ local ti = tree[i]
+ if ti then
+ n = n + 1 ; nums[n] = i - 1
+ n = n + 1 ; nums[n] = pdfreference(pdfflushobject(ti))
+ else
+ report_tags("beware: missing page %i in tree", i)
+ end
end
local parenttree = pdfdictionary {
Nums = nums
}
local idtree = pdfmakenametree(names)
--
- local rolemap = pdfdictionary()
+ local rolemaps = usenamespace and { }
+ local rolemap = pdfdictionary() -- main one
for k, v in next, usedmapping do
k = usedlabels[k] or k
local p = properties[k]
- rolemap[k] = pdfconstant(p and p.pdf or "Span") -- or "Div"
+ if not p then
+ print("UNDEFINED", k)
+ end
+ local n = p and p.namespace
+ if rolemaps and n then
+ local r = rolemaps[n]
+ if not r then
+ r = pdfdictionary()
+ rolemaps[n] = r
+ end
+ r[k] = pdfconstant(k) -- maybe other tag
+ else
+ rolemap[k] = pdfconstant(p and p.pdf or "Span") -- or "Div"
+ end
+ end
+ local namespaces = rolemaps and next(rolemaps) and pdfarray { } or nil
+ if namespaces then
+ for k, v in table.sortedhash(rolemaps) do
+ namespaces[#namespaces+1] = pdfdictionary {
+ Type = pdfconstant("Namespace"),
+ NS = pdfunicode(namespaceurls[k] or k),
+ RoleMapNS = v,
+ }
+ end
end
local structuretree = pdfdictionary {
Type = pdfconstant("StructTreeRoot"),
@@ -164,6 +194,7 @@ local function finishstructure()
ParentTree = pdfreference(pdfflushobject(parent_ref,parenttree)),
IDTree = idtree,
RoleMap = rolemap, -- sorted ?
+ Namespaces = namespaces,
}
pdfflushobject(structure_ref,structuretree)
addtocatalog("StructTreeRoot",pdfreference(structure_ref))
@@ -179,7 +210,20 @@ local function finishstructure()
end
--
for fulltag, element in sortedhash(elements) do -- sorting is easier on comparing pdf
- pdfflushobject(element.knum,element.kids)
+ local kids = element.kids
+ -- if element.tag == "link" then
+ -- local d = kids[2]
+ -- if type(d) == "table" then
+ -- local refatt = element.refatt
+ -- if refatt then
+ -- local refobj = codeinjections.getrefobj(refatt)
+ -- if refobj then
+ -- d.Obj = pdfreference(refobj)
+ -- end
+ -- end
+ -- end
+ -- end
+ pdfflushobject(element.knum,kids)
end
end
end
@@ -191,12 +235,26 @@ local index, pageref, pagenum, list = 0, nil, 0, nil
local pdf_mcr = pdfconstant("MCR")
local pdf_struct_element = pdfconstant("StructElem")
local pdf_s = pdfconstant("S")
+local pdf_objr = pdfconstant("OBJR")
local function initializepage()
index = 0
pagenum = texgetcount("realpageno")
pageref = pdfreference(pdfpagereference(pagenum))
list = pdfarray()
+ -- hm, can be later than 1
+ if not firstintree then
+ if pagenum > 1 then
+ report_tags("beware: first page in tree is %i", pagenum)
+ end
+ firstintree = pagenum
+ lastintree = pagenum
+ end
+ if pagenum > lastintree then
+ lastintree = pagenum
+ else
+ -- report_tags("beware: page order problem in tree at page %i", pagenum)
+ end
tree[pagenum] = list -- we can flush after done, todo
end
@@ -237,7 +295,7 @@ local function makeelement(fulltag,parent)
local attributes = nil
if tagname == "ignore" then
return false
- elseif tagname == "mstackertop" or tagname == "mstackerbot" or tagname == "mstackermid"then
+ elseif tagname == "mstackertop" or tagname == "mstackerbot" or tagname == "mstackermid" then
-- TODO
return true
elseif tagname == "tabulatecell" then
@@ -324,7 +382,10 @@ end
local f_BDC = formatters["/%s <</MCID %s>> BDC"]
-local function makecontent(parent,id,specification)
+local a_destination = attributes.private('destination')
+local a_reference = attributes.private('reference')
+
+local function makecontent(start,parent,id,specification)
local tag = parent.tag
local kids = parent.kids
local last = index
@@ -341,6 +402,16 @@ local function makecontent(parent,id,specification)
kids[#kids+1] = d
elseif pagenum == parent.pnum then
kids[#kids+1] = last
+ -- if tag == "link" then
+ -- local ra = getattr(start,a_reference)
+ -- if ra then
+ -- parent.refatt = ra
+ -- kids[#kids+1] = pdfdictionary {
+ -- Type = pdf_objr,
+ -- Obj = pdfreference(0),
+ -- }
+ -- end
+ -- end
else
local d = pdfdictionary {
Type = pdf_mcr,
@@ -366,15 +437,25 @@ end
local EMCliteral = nil
local visualize = nil
+local enabled = true
+
+updaters.register("tagging.state.disable",function() enabled = false end)
+updaters.register("tagging.state.enable", function() enabled = true end)
+
function nodeinjections.addtags(head)
+ if not enabled then
+ return
+ end
+
if not EMCliteral then
EMCliteral = register(setstate("EMC"))
end
- local last = nil
- local ranges = { }
- local range = nil
+ local last = nil
+ local ranges = { }
+ local range = nil
+ local nofranges = 0
if not root then
structure_kids = pdfarray()
@@ -388,28 +469,23 @@ function nodeinjections.addtags(head)
for n, id in nextnode, head do
if id == glyph_code then
-- maybe also disc
-if getchar(n) ~= 0 then
- local at = getattr(n,a_tagged) or false -- false: pagebody or so, so artifact
- -- if not at then
- -- range = nil
- -- elseif ...
- if last ~= at then
- range = { at, "glyph", n, n, list } -- attr id start stop list
- ranges[#ranges+1] = range
- last = at
- elseif range then
- range[4] = n -- stop
+ if getchar(n) ~= 0 then
+ local at = getattr(n,a_tagged) or false -- false: pagebody or so, so artifact
+ if last ~= at then
+ range = { at, "glyph", n, n, list } -- attr id start stop list
+ nofranges = nofranges + 1
+ ranges[nofranges] = range
+ last = at
+ elseif range then
+ range[4] = n -- stop
+ end
end
-end
elseif id == hlist_code or id == vlist_code then
local at = getattr(n,a_image)
if at then
local at = getattr(n,a_tagged) or false -- false: pagebody or so, so artifact
- -- if not at then
- -- range = nil
- -- else
- ranges[#ranges+1] = { at, "image", n, n, list } -- attr id start stop list
- -- end
+ nofranges = nofranges + 1
+ ranges[nofranges] = { at, "image", n, n, list } -- attr id start stop list
last = nil
else
local list = getlist(n)
@@ -429,7 +505,7 @@ end
-- inspect(ranges)
if trace_tags then
- for i=1,#ranges do
+ for i=1,nofranges do
local range = ranges[i]
local attr = range[1]
local id = range[2]
@@ -471,7 +547,12 @@ end
end
end
- for i=1,#ranges do
+-- local function inject(start,stop,list,literal,left,right)
+-- setlink(getprev(start) or list or true,literal,left or true,start)
+-- setlink(stop,right or true,copy_node(EMCliteral),getnext(stop))
+-- end
+
+ for i=1,nofranges do
local range = ranges[i]
local attr = range[1]
@@ -516,7 +597,7 @@ end
end
end
if prev then
- literal = setstate(makecontent(prev,id,specification))
+ literal = setstate(makecontent(start,prev,id,specification))
elseif ignore then
literal = setstate(makeignore(specification))
else
@@ -662,7 +743,7 @@ end
-- -- else
-- prev = prv
-- r = r + 1
--- result[r] = makecontent(prev,id)
+-- result[r] = makecontent(start,prev,id)
-- -- end
-- end
--
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-u3d.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-u3d.lmt
index 6e02fde3044..5307818d07e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-u3d.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-u3d.lmt
@@ -21,10 +21,9 @@ local tonumber = tonumber
local formatters, find = string.formatters, string.find
local cos, sin, sqrt, pi, atan2, abs = math.cos, math.sin, math.sqrt, math.pi, math.atan2, math.abs
-local backends, lpdf = backends, lpdf
-
-local nodeinjections = backends.pdf.nodeinjections
+local nodeinjections = backends.registered.pdf.nodeinjections
+local lpdf = lpdf
local pdfconstant = lpdf.constant
local pdfboolean = lpdf.boolean
local pdfunicode = lpdf.unicode
@@ -32,14 +31,8 @@ local pdfdictionary = lpdf.dictionary
local pdfarray = lpdf.array
local pdfnull = lpdf.null
local pdfreference = lpdf.reference
-
-local pdfflushstreamobject
-local pdfflushstreamfileobject
-
-updaters.register("backend.update.lpdf",function()
- pdfflushstreamobject = lpdf.flushstreamobject
- pdfflushstreamfileobject = lpdf.flushstreamfileobject
-end)
+local pdfflushstreamobject = lpdf.flushstreamobject
+local pdfflushstreamfileobject = lpdf.flushstreamfileobject
local checkedkey = lpdf.checkedkey
local limited = lpdf.limited
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-wid.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-wid.lmt
index 268ca119e02..3047402bc93 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-wid.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-wid.lmt
@@ -23,6 +23,10 @@ if not modules then modules = { } end modules ['lpdf-wid'] = {
-- the other fragile bit. And, now that adobe quits flash in 2020 we're without any
-- video anyway. Also, it won't play on all platforms and devices so let's wait for
-- html5 media in pdf then.
+--
+-- See mail by Michal Vlasák to the mailing list that discusses current support in
+-- viewers and also mentions (and submitted) a few fixes wrt embedding media. The
+-- old sound and movie features are gone.
local tonumber, next = tonumber, next
local gmatch, gsub, find, lower = string.gmatch, string.gsub, string.find, string.lower
@@ -36,16 +40,17 @@ local sortedhash, sortedkeys = table.sortedhash, table.sortedkeys
local report_media = logs.reporter("backend","media")
local report_attachment = logs.reporter("backend","attachment")
-local backends = backends
-local lpdf = lpdf
-local nodes = nodes
local context = context
local texgetcount = tex.getcount
+local getmacro = tokens.getters.macro
+
+local hpacknode = nodes.hpack
-local nodeinjections = backends.pdf.nodeinjections
-local codeinjections = backends.pdf.codeinjections
-local registrations = backends.pdf.registrations
+local pdfbackend = backends.registered.pdf
+local nodeinjections = pdfbackend.nodeinjections
+local codeinjections = pdfbackend.codeinjections
+local registrations = pdfbackend.registrations
local executers = structures.references.executers
local variables = interfaces.variables
@@ -55,6 +60,12 @@ local v_auto = variables.auto
local v_embed = variables.embed
local v_max = variables.max
local v_yes = variables.yes
+local v_no = variables.no
+local v_compress = variables.compress
+local v_list = variables.list
+local v_title = variables.title
+
+local lpdf = lpdf
local pdfconstant = lpdf.constant
local pdfnull = lpdf.null
@@ -70,25 +81,12 @@ local pdfborder = lpdf.border
local pdftransparencyvalue = lpdf.transparencyvalue
local pdfcolorvalues = lpdf.colorvalues
-local pdfflushobject
-local pdfflushstreamobject
-local pdfflushstreamfileobject
-local pdfreserveobject
-local pdfpagereference
-local pdfshareobjectreference
-
-updaters.register("backend.update.lpdf",function()
- pdfflushobject = lpdf.flushobject
- pdfflushstreamobject = lpdf.flushstreamobject
- pdfflushstreamfileobject = lpdf.flushstreamfileobject
- pdfreserveobject = lpdf.reserveobject
- pdfpagereference = lpdf.pagereference
- pdfshareobjectreference = lpdf.shareobjectreference
-end)
-
-
-local hpack_node = node.hpack
-local write_node = node.write -- test context(...) instead
+local pdfflushobject = lpdf.flushobject
+local pdfflushstreamobject = lpdf.flushstreamobject
+local pdfflushstreamfileobject = lpdf.flushstreamfileobject
+local pdfreserveobject = lpdf.reserveobject
+local pdfpagereference = lpdf.pagereference
+local pdfshareobjectreference = lpdf.shareobjectreference
-- symbols
@@ -267,7 +265,7 @@ local function flushembeddedfiles()
for tag, reference in sortedhash(filestreams) do
if not reference then
report_attachment("unreferenced file, tag %a",tag)
- elseif referenced[tag] == "hidden" then
+ elseif referenced[tag] == "hidden" or referenced[tag] == "forced" then
e[#e+1] = pdfstring(tag)
e[#e+1] = reference -- already a reference
f[#f+1] = reference -- collect all file description references
@@ -377,6 +375,9 @@ function codeinjections.embedfile(specification)
}
local r = pdfreference(pdfflushobject(d))
filestreams[hash] = r
+ if specification.forcereference == true then
+ referenced[hash] = "forced"
+ end
return r
end
end
@@ -459,12 +460,12 @@ function nodeinjections.attachfile(specification)
AP = appearance,
OC = analyzelayer(specification.layer),
-- F = pdfnull(), -- another rediculous need to satisfy validation
- F = bit32.band(bit32.bor(flags,4),(1023-1-2-32-256)), -- set 3, clear 1,2,6,9; PDF 32000-1, p385
+ F = (flags | 4) & (1023-1-2-32-256), -- set 3, clear 1,2,6,9; PDF 32000-1, p385
}
local width = specification.width or 0
local height = specification.height or 0
local depth = specification.depth or 0
- local box = hpack_node(nodeinjections.annotation(width,height,depth,d()))
+ local box = hpacknode(nodeinjections.annotation(width,height,depth,d()))
box.width = width
box.height = height
box.depth = depth
@@ -565,12 +566,12 @@ function nodeinjections.comment(specification) -- brrr: seems to be done twice
Parent = pdfreference(nd),
}
d.Popup = pdfreference(nc)
- box = hpack_node(
+ box = hpacknode(
nodeinjections.annotation(0,0,0,d(),nd),
nodeinjections.annotation(width,height,depth,c(),nc)
)
else
- box = hpack_node(nodeinjections.annotation(width,height,depth,d()))
+ box = hpacknode(nodeinjections.annotation(width,height,depth,d()))
end
box.width = width -- redundant
box.height = height -- redundant
@@ -617,32 +618,45 @@ end
local ms, mu, mf = { }, { }, { }
local function delayed(label)
- local a = pdfreserveobject()
- mu[label] = a
- return pdfreference(a)
+ local reserved = mu[label]
+ if not reserved then
+ reserved = pdfreserveobject()
+ mu[label] = reserved
+ end
+ return pdfreference(reserved)
+end
+
+local function checkedreference(ref)
+ local set, bug = structures.references.identify("",ref)
+ if not bug and #set > 0 then
+ return pdfaction(set)
+ end
end
local function insertrenderingwindow(specification)
- local label = specification.label
- -- local openpage = specification.openpage
- -- local closepage = specification.closepage
- if specification.option == v_auto then
- if openpageaction then
- -- \handlereferenceactions{\v!StartRendering{#2}}
+ local actions = nil
+ local label = specification.label
+ local openpage = specification.openpage
+ local closepage = specification.closepage
+ local option = settings_to_hash(specification.option)
+ if option[v_auto] then
+ if not openpage or openpage == "" then
+ openpage = variables.StartCurrentRendering
end
- if closepageaction then
- -- \handlereferenceactions{\v!StopRendering {#2}}
+ if not closepage or closepage == "" then
+ closepage = variables.StopCurrentRendering
end
end
- local actions = nil
+ openpage = checkedreference(openpage)
+ closepage = checkedreference(closepage)
if openpage or closepage then
actions = pdfdictionary {
- PO = (openpage and lpdfaction(openpage )) or nil,
- PC = (closepage and lpdfaction(closepage)) or nil,
+ PO = openpage,
+ PC = closepage,
}
end
local page = tonumber(specification.page) or texgetcount("realpageno") -- todo
- local r = mu[label] or pdfreserveobject() -- why the reserve here?
+ local r = mu[label] or pdfreserveobject() -- reserve, child refers to parent
local a = pdfdictionary {
S = pdfconstant("Rendition"),
R = mf[label],
@@ -654,136 +668,138 @@ local function insertrenderingwindow(specification)
Subtype = pdfconstant("Screen"),
P = pdfreference(pdfpagereference(page)),
A = a, -- needed in order to make the annotation clickable (i.e. don't bark)
+ T = pdfunicode(label), -- for JS
Border = bs,
C = bc,
AA = actions,
}
local width = specification.width or 0
local height = specification.height or 0
- if height == 0 or width == 0 then
- -- todo: sound needs no window
- end
- write_node(nodeinjections.annotation(width,height,0,d(),r)) -- save ref
+ context(nodeinjections.annotation(width,height,0,d(),r)) -- save ref
return pdfreference(r)
end
-- some dictionaries can have a MH (must honor) or BE (best effort) capsule
local function insertrendering(specification)
- local label = specification.label
+ local label = specification.label
local option = settings_to_hash(specification.option)
if not mf[label] then
local filename = specification.filename
- local isurl = find(filename,"://",1,true)
- local mimetype = specification.mimetype or specification.mime
- -- local start = pdfdictionary {
- -- Type = pdfconstant("MediaOffset"),
- -- S = pdfconstant("T"), -- time
- -- T = pdfdictionary { -- time
- -- Type = pdfconstant("Timespan"),
- -- S = pdfconstant("S"),
- -- V = 3, -- time in seconds
- -- },
- -- }
- -- local start = pdfdictionary {
- -- Type = pdfconstant("MediaOffset"),
- -- S = pdfconstant("F"), -- frame
- -- F = 100 -- framenumber
- -- }
- -- local start = pdfdictionary {
- -- Type = pdfconstant("MediaOffset"),
- -- S = pdfconstant("M"), -- mark
- -- M = "somemark",
- -- }
- -- local parameters = pdfdictionary {
- -- BE = pdfdictionary {
- -- B = start,
- -- }
- -- }
- -- local parameters = pdfdictionary {
- -- Type = pdfconstant(MediaPermissions),
- -- TF = pdfstring("TEMPALWAYS") }, -- TEMPNEVER TEMPEXTRACT TEMPACCESS TEMPALWAYS
- -- }
- local descriptor = pdfdictionary {
- Type = pdfconstant("Filespec"),
- F = filename,
- }
- if isurl then
- descriptor.FS = pdfconstant("URL")
- elseif option[v_embed] then
- descriptor.EF = codeinjections.embedfile {
- file = filename,
- mimetype = mimetype, -- yes or no
- compress = false,
+ if filename and filename ~= "" then
+ local isurl = find(filename,"://",1,true)
+ local mimetype = specification.mimetype or specification.mime
+ -- local start = pdfdictionary {
+ -- Type = pdfconstant("MediaOffset"),
+ -- S = pdfconstant("T"), -- time
+ -- T = pdfdictionary { -- time
+ -- Type = pdfconstant("Timespan"),
+ -- S = pdfconstant("S"),
+ -- V = 3, -- time in seconds
+ -- },
+ -- }
+ -- local start = pdfdictionary {
+ -- Type = pdfconstant("MediaOffset"),
+ -- S = pdfconstant("F"), -- frame
+ -- F = 100 -- framenumber
+ -- }
+ -- local start = pdfdictionary {
+ -- Type = pdfconstant("MediaOffset"),
+ -- S = pdfconstant("M"), -- mark
+ -- M = "somemark",
+ -- }
+ -- local parameters = pdfdictionary {
+ -- BE = pdfdictionary {
+ -- B = start,
+ -- }
+ -- }
+ local parameters = pdfdictionary {
+ Type = pdfconstant("MediaPermissions"),
+ TF = pdfstring("TEMPALWAYS"), -- TEMPNEVER TEMPEXTRACT TEMPACCESS TEMPALWAYS / needed for acrobat/wmp
}
+ local descriptor = pdfdictionary {
+ Type = pdfconstant("Filespec"),
+ F = filename,
+ }
+ if isurl then
+ descriptor.FS = pdfconstant("URL")
+ descriptor = pdfreference(pdfflushobject(descriptor))
+ elseif option[v_embed] then
+ descriptor = codeinjections.embedfile {
+ file = filename,
+ mimetype = mimetype, -- yes or no
+ title = option[v_title],
+ compress = option[v_compress] or false,
+ forcereference = option[v_list] ~= v_no,
+ }
+ end
+ local clip = pdfdictionary {
+ Type = pdfconstant("MediaClip"),
+ S = pdfconstant("MCD"),
+ N = label,
+ CT = mimetype,
+ Alt = pdfarray { "", "file not found" }, -- language id + message
+ D = descriptor,
+ P = pdfreference(pdfflushobject(parameters)),
+ }
+ local rendition = pdfdictionary {
+ Type = pdfconstant("Rendition"),
+ S = pdfconstant("MR"),
+ N = pdfunicode(label),
+ C = pdfreference(pdfflushobject(clip)),
+ }
+ mf[label] = pdfreference(pdfflushobject(rendition))
end
- local clip = pdfdictionary {
- Type = pdfconstant("MediaClip"),
- S = pdfconstant("MCD"),
- N = label,
- CT = mimetype,
- Alt = pdfarray { "", "file not found" }, -- language id + message
- D = pdfreference(pdfflushobject(descriptor)),
- -- P = pdfreference(pdfflushobject(parameters)),
- }
- local rendition = pdfdictionary {
- Type = pdfconstant("Rendition"),
- S = pdfconstant("MR"),
- N = label,
- C = pdfreference(pdfflushobject(clip)),
- }
- mf[label] = pdfreference(pdfflushobject(rendition))
- end
-end
-
-local function insertrenderingobject(specification) -- todo
- local label = specification.label
- if not mf[label] then
- report_media("unknown medium, label %a",label)
- local clip = pdfdictionary { -- does not work that well one level up
- Type = pdfconstant("MediaClip"),
- S = pdfconstant("MCD"),
- N = label,
- D = pdfreference(unknown), -- not label but objectname, hm .. todo?
- }
- local rendition = pdfdictionary {
- Type = pdfconstant("Rendition"),
- S = pdfconstant("MR"),
- N = label,
- C = pdfreference(pdfflushobject(clip)),
- }
- mf[label] = pdfreference(pdfflushobject(rendition))
end
end
function codeinjections.processrendering(label)
local specification = interactions.renderings.rendering(label)
- if not specification then
- -- error
- elseif specification.type == "external" then
+ if specification then
insertrendering(specification)
else
- insertrenderingobject(specification)
+ -- error
end
end
+-- needed mapping for access from JS
+
+local function flushrenderings()
+ if next(mf) then
+ local r = pdfarray()
+ for label, reference in sortedhash(mf) do
+ r[#r+1] = pdfunicode(label)
+ r[#r+1] = reference -- already a reference
+ end
+ lpdf.addtonames("Renditions",pdfreference(pdfflushobject(pdfdictionary{ Names = r })))
+ end
+end
+
+lpdf.registerdocumentfinalizer(flushrenderings,"renderings")
+
function codeinjections.insertrenderingwindow(specification)
local label = specification.label
codeinjections.processrendering(label)
ms[label] = insertrenderingwindow(specification)
end
-local function set(operation,arguments)
- codeinjections.processrendering(arguments)
- return pdfdictionary {
- S = pdfconstant("Rendition"),
- OP = operation,
- R = mf[arguments],
- AN = ms[arguments] or delayed(arguments),
- }
+local function set(operation,label)
+ if not label or label == "" then
+ -- This one is local to the window so unlikely to be set.
+ label = getmacro("currentrendering")
+ end
+ if label and label ~= "" then
+ codeinjections.processrendering(label)
+ return pdfdictionary {
+ S = pdfconstant("Rendition"),
+ OP = operation,
+ R = mf[label],
+ AN = ms[label] or delayed(label),
+ }
+ end
end
-function executers.startrendering (arguments) return set(0,arguments) end
-function executers.stoprendering (arguments) return set(1,arguments) end
-function executers.pauserendering (arguments) return set(2,arguments) end
-function executers.resumerendering(arguments) return set(3,arguments) end
+function executers.startrendering (label) return set(0,label) end
+function executers.stoprendering (label) return set(1,label) end
+function executers.pauserendering (label) return set(2,label) end
+function executers.resumerendering(label) return set(3,label) end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lpdf-xmp.lmt b/Master/texmf-dist/tex/context/base/mkxl/lpdf-xmp.lmt
index 313488a3945..e147c796fe0 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lpdf-xmp.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/lpdf-xmp.lmt
@@ -8,10 +8,13 @@ if not modules then modules = { } end modules ['lpdf-xmp'] = {
}
local tostring, type = tostring, type
-local format, gsub = string.format, string.gsub
+local format, gsub, match = string.format, string.gsub, string.match
+local concat = table.concat
+local settings_to_array = utilities.parsers.settings_to_array
local utfchar = utf.char
local xmlfillin = xml.fillin
local md5HEX = md5.HEX
+local osdate, ostime, ostimezone, osuuid = os.date, os.time, os.timezone, os.uuid
local trace_xmp = false trackers.register("backend.xmp", function(v) trace_xmp = v end)
local trace_info = false trackers.register("backend.info", function(v) trace_info = v end)
@@ -19,21 +22,17 @@ local trace_info = false trackers.register("backend.info", function(v) trace_in
local report_xmp = logs.reporter("backend","xmp")
local report_info = logs.reporter("backend","info")
-local backends, lpdf = backends, lpdf
-
-local codeinjections = backends.pdf.codeinjections -- normally it is registered
+local backends = backends
+local pdfbackend = backends.registered.pdf
+local codeinjections = pdfbackend.codeinjections
+local lpdf = lpdf
local pdfdictionary = lpdf.dictionary
local pdfconstant = lpdf.constant
+local pdfunicode = lpdf.unicode
+local pdfstring = lpdf.string
local pdfreference = lpdf.reference
-
-local pdfgetmetadata = lpdf.getmetadata
-
-local pdfflushstreamobject
-
-updaters.register("backend.update.lpdf",function()
- pdfflushstreamobject = lpdf.flushstreamobject
-end)
+local pdfflushstreamobject = lpdf.flushstreamobject
-- The XMP packet wrapper is kind of fixed, see page 10 of XMPSpecificationsPart1.pdf from
-- XMP-Toolkit-SDK-CC201607.zip. So we hardcode the id.
@@ -45,7 +44,8 @@ local xpacket = format ( [[
<?xpacket end="w"?>]], utfchar(0xFEFF) )
-local mapping = {
+local unknown = { false, false }
+local mapping = table.setmetatableindex ( {
-- user defined keys (pdfx:)
["ConTeXt.Jobname"] = { "context", "rdf:Description/pdfx:ConTeXt.Jobname" },
["ConTeXt.Time"] = { "date", "rdf:Description/pdfx:ConTeXt.Time" },
@@ -64,10 +64,11 @@ local mapping = {
["Producer"] = { "metadata","rdf:Description/pdf:Producer" },
-- ["Trapped"] = { "pdf", "rdf:Description/pdf:Trapped" }, -- '/False' in /Info, but 'False' in XMP
-- Dublin Core schema
- ["Author"] = { "metadata","rdf:Description/dc:creator/rdf:Seq/rdf:li" },
["Format"] = { "metadata","rdf:Description/dc:format" }, -- optional, but nice to have
- ["Subject"] = { "metadata","rdf:Description/dc:description/rdf:Alt/rdf:li" },
- ["Title"] = { "metadata","rdf:Description/dc:title/rdf:Alt/rdf:li" },
+ -- These were dc:.../rdf:Seq/rdf:li but there was a (invalidating) bug in the iso
+ ["Author"] = { "metadata","rdf:Description/dc:creator" },
+ ["Subject"] = { "metadata","rdf:Description/dc:description" },
+ ["Title"] = { "metadata","rdf:Description/dc:title" },
-- XMP Basic schema
["CreateDate"] = { "date", "rdf:Description/xmp:CreateDate" },
["CreationDate"] = { "date", "rdf:Description/xmp:CreationDate" }, -- dummy
@@ -94,72 +95,113 @@ local mapping = {
["AuthorsPosition"] = { "metadata", "rdf:Description/photoshop:AuthorsPosition" },
["Copyright"] = { "metadata", "rdf:Description/photoshop:Copyright" },
["CaptionWriter"] = { "metadata", "rdf:Description/photoshop:CaptionWriter" },
-}
+}, function() return unknown end )
-local included = backends.included
-local lpdfid = lpdf.id
-function lpdf.id() -- overload of ini
- return lpdfid(included.date)
-end
+local metadata = nil
+local trailerid = true
+local creationdate = false
+local modificationdate = false
-local trailerid = nil
-local dates = nil
+local function pdftimestamp(str)
+ local t = type(str)
+ if t == "string" then
+ local Y, M, D, h, m, s, Zs, Zh, Zm = match(str,"^(%d%d%d%d)%-(%d%d)%-(%d%d)T(%d%d):(%d%d):(%d%d)([%+%-])(%d%d):(%d%d)$")
+ return Y and format("D:%s%s%s%s%s%s%s%s'%s'",Y,M,D,h,m,s,Zs,Zh,Zm)
+ else
+ return osdate("D:%Y%m%d%H%M%S",t == "number" and str or ostime()) -- maybe "!D..." : universal time
+ end
+end
-local function update()
- if trailer_id then
- local b = toboolean(trailer_id) or trailer_id == ""
- if b then
- trailer_id = "This file is processed by ConTeXt and LuaTeX."
- else
- trailer_id = tostring(trailer_id)
- end
- local h = md5HEX(trailer_id)
- if b then
- report_info("using frozen trailer id")
- else
- report_info("using hashed trailer id %a (%a)",trailer_id,h)
- end
- trailerid = format("[<%s> <%s>]",h,h)
+local function pdfgetmetadata()
+ if not metadata then
+ local contextversion = environment.version
+ local luatexversion = format("%1.2f",LUATEXVERSION)
+ local luatexfunctionality = tostring(LUATEXFUNCTIONALITY)
+ local jobname = environment.jobname or tex.jobname or "unknown"
+ local documentid = trailerid and ("uuid:" .. osuuid()) or "no unique document id here"
+ local instanceid = trailerid and ("uuid:" .. osuuid()) or "no unique instance id here"
+ metadata = creationdate and {
+ producer = format("LuaMetaTeX-%s",luatexversion),
+ creator = format("LuaMetaTeX %s %s + ConTeXt LMTX %s",luatexversion,luatexfunctionality,contextversion),
+ luatexversion = luatexversion,
+ contextversion = contextversion,
+ luatexfunctionality = luatexfunctionality,
+ luaversion = tostring(LUAVERSION),
+ platform = os.platform,
+ creationdate = creationdate,
+ modificationdate = modificationdate,
+ id = format("%s | %s",jobname,creationdate),
+ documentid = documentid,
+ instanceid = instanceid,
+ jobname = jobname,
+ } or {
+ producer = "LuaMetaTeX",
+ creator = "LuaMetaTeX + ConTeXt LMTX",
+ id = jobname,
+ documentid = documentid,
+ instanceid = instanceid,
+ jobname = jobname,
+ }
+ -- inspect(metadata)
end
- --
- local t = type(dates)
- if t == "number" or t == "string" then
- local d = converters.totime(dates)
- if d then
- included.date = true
- included.id = "fake"
- report_info("forced date/time information %a will be used",lpdf.settime(d))
- trailerid = false
- elseif t == "string" then
- dates = toboolean(dates)
- included.date = dates
- if dates ~= false then
- included.id = true
- else
- report_info("no date/time but fake id information will be added")
- trailerid = true
- included.id = "fake"
+ return metadata
+end
+
+local function pdfsetmetadate(n,both)
+ if n then
+ n = converters.totime(n)
+ if n then
+ creationdate = osdate("%Y-%m-%dT%H:%M:%S",ostime(n)) .. ostimezone()
+ if both then
+ modificationdate = creationdate
end
end
end
+ return creationdate
+end
+
+lpdf.pdftimestamp = pdftimestamp
+
+function lpdf.gettrailerid()
+ if trailerid == true then
+ return md5.HEX(osuuid())
+ elseif type(trailerid) == "string" then
+ return md5.HEX(trailerid)
+ else
+ return false
+ end
end
-lpdf.registerdocumentfinalizer(update,"trailer id and dates",1)
+-- string: use that, true: uuid, false: nothing
-directives.register("backend.trailerid", function(v) trailerid = v end)
-directives.register("backend.date", function(v) dates = v end)
+directives.register("backend.trailerid", function(v)
+ trailerid = type(v) and v or toboolean(v)
+end)
+
+-- year-mm-dd : use that for creation and modification
-local function permitdetail(what)
- local m = mapping[what]
- if m then
- return included[m[1]] and m[2]
+local function setdates(v)
+ local t = type(v)
+ if t == "number" or t == "string" then
+ local d = converters.totime(v)
+ if d then
+ report_info("forced date/time information %a will be used",pdfsetmetadate(d,true))
+ return
+ end
+ end
+ if toboolean(v) then
+ creationdate = osdate("%Y-%m-%dT%H:%M:%S") .. ostimezone()
+ modificationdate = creationdate
else
- return included[what] and true or false
+ creationdate = false
+ modificationdate = false
end
end
-lpdf.permitdetail = permitdetail
+setdates(true)
+
+directives.register("backend.date", setdates)
-- maybe some day we will load the xmp file at runtime
@@ -200,7 +242,7 @@ local function valid_xmp()
end
function lpdf.addxmpinfo(tag,value,check)
- local pattern = permitdetail(tag)
+ local pattern = mapping[tag][2]
if type(pattern) == "string" then
xmlfillin(xmp or valid_xmp(),pattern,value,check)
end
@@ -212,12 +254,12 @@ local pdfaddtoinfo = lpdf.addtoinfo
local pdfaddxmpinfo = lpdf.addxmpinfo
function lpdf.addtoinfo(tag,pdfvalue,strvalue)
- local pattern = permitdetail(tag)
- if pattern then
+ local pattern = mapping[tag][2]
+ if pattern or strvalue == true then
pdfaddtoinfo(tag,pdfvalue)
end
if type(pattern) == "string" then
- local value = strvalue or gsub(tostring(pdfvalue),"^%((.*)%)$","%1") -- hack
+ local value = (type(strvalue) == "string" and strvalue) or gsub(tostring(pdfvalue),"^%((.*)%)$","%1") -- hack
if trace_info then
report_info("set %a to %a",tag,value)
end
@@ -239,23 +281,91 @@ end
-- flushing
-local add_xmp_blob = true directives.register("backend.xmp",function(v) add_xmp_blob = v end)
+local add_xmp_blob = true
+local indentity_done = false -- using "setupidentity = function() end" fails as the meaning is frozen in register
+
+local function setupidentity()
+ if not done then
+ --
+ local identity = interactions.general.getidentity()
+ local title = identity.title
+ local subtitle = identity.subtitle
+ local author = identity.author
+ local date = identity.date
+ local keywords = identity.keywords
+ --
+ if date and date ~= "" then
+ pdfsetmetadate(date)
+ end
+ if keywords then
+ keywords = concat(settings_to_array(keywords), " ")
+ end
+ --
+ local metadata = pdfgetmetadata()
+ local creator = metadata.creator
+ local contextversion = metadata.contextversion
+ local id = metadata.id
+ local jobname = metadata.jobname
+ local creator = metadata.creator
+ local creation = metadata.creationdate
+ local modification = metadata.modificationdate
+ --
+ if creator then
+ pdfaddtoinfo("Creator",pdfunicode(creator),creator)
+ end
+ if creation then
+ pdfaddtoinfo("CreationDate",pdfstring(pdftimestamp(creation)),creation)
+ end
+ if modification then
+ pdfaddtoinfo("ModDate",pdfstring(pdftimestamp(modification)),modification)
+ end
+ if id then
+ pdfaddtoinfo("ID",pdfstring(id),id) -- needed for pdf/x
+ end
+ --
+ if title ~= "" then
+ pdfaddtoinfo("Title",pdfunicode(title),title)
+ end
+ if subtitle ~= "" then
+ pdfaddtoinfo("Subject",pdfunicode(subtitle),subtitle)
+ end
+ if author ~= "" then
+ pdfaddtoinfo("Author",pdfunicode(author),author) -- '/Author' in /Info, 'Creator' in XMP
+ end
+ if keywords and keywords ~= "" then
+ pdfaddtoinfo("Keywords",pdfunicode(keywords),keywords)
+ end
+ --
+ if contextversion then
+ pdfaddtoinfo("ConTeXt.Version",contextversion)
+ end
+ if creation then
+ pdfaddtoinfo("ConTeXt.Time",creation)
+ end
+ if jobname then
+ pdfaddtoinfo("ConTeXt.Jobname",jobname)
+ end
+ --
+ pdfaddtoinfo("ConTeXt.Url","www.pragma-ade.com")
+ pdfaddtoinfo("ConTeXt.Support","contextgarden.net")
+ pdfaddtoinfo("TeX.Support","tug.org")
+ --
+ done = true
+ else
+ -- no need for a message
+ end
+end
local function flushxmpinfo()
commands.pushrandomseed()
- commands.setrandomseed(os.time())
+ commands.setrandomseed(ostime())
- local documentid = "no unique document id here"
- local instanceid = "no unique instance id here"
local metadata = pdfgetmetadata()
local time = metadata.time
local producer = metadata.producer
local creator = metadata.creator
-
- if included.id ~= "fake" then
- documentid = "uuid:" .. os.uuid()
- instanceid = "uuid:" .. os.uuid()
- end
+ local documentid = metadata.documentid
+ local instanceid = metadata.instanceid
pdfaddtoinfo("Producer",producer)
pdfaddtoinfo("Creator",creator)
@@ -297,15 +407,14 @@ local function flushxmpinfo()
end
local r = pdfflushstreamobject(blob,md,false) -- uncompressed
lpdf.addtocatalog("Metadata",pdfreference(r))
+
end
commands.poprandomseed() -- hack
end
--- this will be enabled when we can inhibit compression for a stream at the lua end
-
+lpdf.registerpagefinalizer(setupidentity,"identity")
lpdf.registerdocumentfinalizer(flushxmpinfo,1,"metadata")
-directives.register("backend.verbosexmp", function(v)
- verbose = v
-end)
+directives.register("backend.xmp", function(v) add_xmp_blob = v end)
+directives.register("backend.verbosexmp", function(v) verbose = v end)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/luat-bas.mkxl b/Master/texmf-dist/tex/context/base/mkxl/luat-bas.mkxl
index 0add4ce6926..20d6c88fcab 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/luat-bas.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/luat-bas.mkxl
@@ -23,9 +23,8 @@
\registerctxluafile{l-string} {}
\registerctxluafile{l-table} {}
\registerctxluafile{l-boolean} {}
-\registerctxluafile{l-number} {}
+\registerctxluafile{l-number} {autosuffix}
\registerctxluafile{l-math} {}
-%registerctxluafile{l-aux} {}
\registerctxluafile{l-io} {}
\registerctxluafile{l-os} {}
\registerctxluafile{l-file} {}
@@ -33,8 +32,7 @@
\registerctxluafile{l-md5} {}
\registerctxluafile{l-sha} {}
\registerctxluafile{l-dir} {}
-\registerctxluafile{l-unicode} {optimize}
-%registerctxluafile{l-utils} {}
+\registerctxluafile{l-unicode} {autosuffix}
\registerctxluafile{l-url} {}
\registerctxluafile{l-set} {}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/luat-cnf.lmt b/Master/texmf-dist/tex/context/base/mkxl/luat-cnf.lmt
new file mode 100644
index 00000000000..ea9eb0d8937
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/luat-cnf.lmt
@@ -0,0 +1,227 @@
+if not modules then modules = { } end modules ['luat-cnf'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local type = type
+local format, concat = string.format, table.concat
+
+local report = logs.reporter("system")
+
+luatex = luatex or { }
+local luatex = luatex
+
+texconfig.functionsize = 32768
+texconfig.propertiessize = 10000
+
+-- These lists need updating! If we decide to keep them at all.
+
+local stub = [[
+
+-- checking
+
+storage = storage or { }
+luatex = luatex or { }
+
+-- as soon as possible
+
+texconfig.functionsize = 32768
+texconfig.propertiessize = 10000
+
+luatex.starttime = os.gettimeofday()
+
+-- this will happen after the format is loaded
+
+function texconfig.init()
+
+ -- development
+
+ local builtin, globals = { }, { }
+
+ libraries = { -- we set it here as we want libraries also 'indexed'
+ basiclua = {
+ -- always
+ "string", "table", "coroutine", "debug", "file", "io", "lpeg", "math", "os", "package",
+ -- bonus
+ "bit32", "utf8",
+ },
+ basictex = {
+ -- always
+ "callback", "font", "lua", "node", "status", "tex", "texconfig", "texio", "token",
+ -- not in luametatex
+ "img", "pdf", "lang",
+ -- in luametatex
+ "language",
+ },
+ extralua = {
+ -- not in luametatex
+ "unicode", "utf", "gzip", "zip", "zlib",
+ -- in luametatex
+ "xzip", "xmath", "xcomplex", "xdecimal", "basexx",
+ -- maybe some day in luametatex
+ "lz4", "lzo",
+ -- always (mime can go)
+ "lfs","socket", "mime", "md5", "sha2", "fio", "sio",
+ },
+ extratex = {
+ -- not in luametatex
+ "kpse",
+ -- always
+ "pdfe", "mplib",
+ -- in luametatex
+ "pdfdecode", "pngdecode",
+ },
+ obsolete = {
+ "epdf",
+ "fontloader", -- can be filled by luat-log
+ "kpse",
+ },
+ functions = {
+ "assert", "pcall", "xpcall", "error", "collectgarbage",
+ "dofile", "load","loadfile", "require", "module",
+ "getmetatable", "setmetatable",
+ "ipairs", "pairs", "rawequal", "rawget", "rawset", "next",
+ "tonumber", "tostring",
+ "type", "unpack", "select", "print",
+ },
+ builtin = builtin, -- to be filled
+ globals = globals, -- to be filled
+ }
+
+ for k, v in next, _G do
+ globals[k] = tostring(v)
+ end
+
+ local function collect(t,fnc)
+ local lib = { }
+ for k, v in next, t do
+ if fnc then
+ lib[v] = _G[v]
+ else
+ local keys = { }
+ local gv = _G[v]
+ local tv = type(gv)
+ if tv == "table" then
+ for k, v in next, gv do
+ keys[k] = tostring(v) -- true -- by tostring we cannot call overloads functions (security)
+ end
+ end
+ lib[v] = keys
+ builtin[v] = keys
+ end
+ end
+ return lib
+ end
+
+ libraries.basiclua = collect(libraries.basiclua)
+ libraries.basictex = collect(libraries.basictex)
+ libraries.extralua = collect(libraries.extralua)
+ libraries.extratex = collect(libraries.extratex)
+ libraries.functions = collect(libraries.functions,true)
+ libraries.obsolete = collect(libraries.obsolete)
+
+ -- shortcut and helper
+
+ local setbytecode = lua.setbytecode
+ local getbytecode = lua.getbytecode
+ local callbytecode = lua.callbytecode or function(i)
+ local b = getbytecode(i)
+ if type(b) == "function" then
+ b()
+ return true
+ else
+ return false
+ end
+ end
+
+ local function init(start)
+ local i = start
+ local t = os.clock()
+ while true do
+ -- local b = callbytecode(i)
+ local e, b = pcall(callbytecode,i)
+ if not e then
+ print(string.format("fatal error : unable to load bytecode register %%i, maybe wipe the cache first\n",i))
+ os.exit()
+ end
+ if b then
+ setbytecode(i,nil) ;
+ i = i + 1
+ else
+ break
+ end
+ end
+ return i - start, os.clock() - t
+ end
+
+ -- the stored tables and modules
+
+ storage.noftables , storage.toftables = init(0)
+ storage.nofmodules, storage.tofmodules = init(%s)
+
+ if modules then
+ local loaded = package.loaded
+ for module, _ in next, modules do
+ loaded[module] = true
+ end
+ end
+
+ texconfig.init = function() end
+
+end
+
+CONTEXTLMTXMODE = 1
+
+-- we provide a qualified path
+
+callback.register('find_format_file',function(name)
+ texconfig.formatname = name
+ return name
+end)
+
+-- done, from now on input and callbacks are internal
+]]
+
+local keys = {
+ "buffersize", "expandsize", "filesize", "fontsize", "hashsize", "inputsize",
+ "languagesize", "marksize", "insertsize", "nestsize", "nodesize", "parametersize", "poolsize",
+ "savesize", "stringsize", "tokensize", "errorlinesize", "halferrorlinesize",
+}
+
+local function makestub()
+ local name = environment.jobname .. ".lui"
+ report("creating stub file %a using directives:",name)
+ report()
+ firsttable = firsttable or lua.firstbytecode
+ local t = {
+ "-- This file is generated, don't change it!\n"
+ }
+ for i=1,#keys do
+ local target = keys[i]
+ local key = "luametatex." .. target
+ local val = directives.value(key)
+ if type(val) == "number" then
+ val = { size = val }
+ end
+ if type(val) == "table" then
+ local s = { }
+ local v = val.size if v then s[#s+1] = format("size = %10i",v) end
+ local v = val.plus if v then s[#s+1] = format("plus = %10i",v) end
+ local v = val.step if v then s[#s+1] = format("step = %10i",v) end
+ if #s > 0 then
+ s = format("%-17s = { %s }",target,concat(s,", "))
+ report(" %s",s)
+ t[#t+1] = "texconfig." .. s
+ end
+ end
+ end
+ t[#t+1] = ""
+ t[#t+1] = format(stub,firsttable)
+ io.savedata(name,concat(t,"\n"))
+ report()
+end
+
+lua.registerinitexfinalizer(makestub,"create stub file")
diff --git a/Master/texmf-dist/tex/context/base/mkxl/luat-cod.lmt b/Master/texmf-dist/tex/context/base/mkxl/luat-cod.lmt
index 49d90777df6..f96f5c57757 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/luat-cod.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/luat-cod.lmt
@@ -17,32 +17,31 @@ local texconfig, lua = texconfig, lua
-- some basic housekeeping
-texconfig.kpse_init = false -- not needed in lmtx
-texconfig.shell_escape = 't' -- not needed in lmtx
-
-texconfig.max_in_open = 2000
-texconfig.nest_size = 10000
-texconfig.param_size = 100000
-texconfig.save_size = 500000
-texconfig.stack_size = 100000
-texconfig.buffer_size = 10000000
-texconfig.token_size = 10000000
-texconfig.node_size = 50000000
-
-texconfig.max_print_line = 100000
-texconfig.max_strings = 500000
-texconfig.max_pool = 10000000
-
-texconfig.hash_extra = 200000
-
-texconfig.expand_depth = 10000
-texconfig.function_size = 32768
-texconfig.properties_size = 10000
-texconfig.error_line = 250
-texconfig.half_error_line = 125
-
-texconfig.level_max = 500
-texconfig.level_chr = 46 -- period
+---------.kpse_init = false -- not needed in lmtx
+---------.shell_escape = 't' -- not needed in lmtx
+
+-- texconfig.max_in_open = 2000
+-- texconfig.nest_size = 10000
+-- texconfig.param_size = 100000
+-- texconfig.save_size = 500000
+-- texconfig.stack_size = 100000
+-- texconfig.buffer_size = 10000000
+-- texconfig.token_size = 10000000
+-- texconfig.token_size = { size = 10000000, step = 2000000 }
+-- texconfig.node_size = 50000000
+
+---------.max_print_line = 100000
+-- texconfig.max_strings = 500000
+-- texconfig.max_strings = { size = 600000, step = 200000 }
+-- texconfig.max_pool = 10000000
+-- texconfig.hash_extra = 250000
+-- texconfig.expand_depth = 10000
+
+-- texconfig.error_line = 250
+-- texconfig.half_error_line = 125
+
+texconfig.functionsize = 32768
+texconfig.propertiessize = 10000
-- registering bytecode chunks
@@ -94,34 +93,12 @@ function lua.registercode(filename,options)
lua.lastbytecode = n
end
elseif environment.initex then
- texio.write_nl(format("\nerror loading file: %s (aborting)",filename))
+ texio.writenl(format("\nerror loading file: %s (aborting)",filename))
os.exit()
end
end
end
-local finalizers = { }
-
-function lua.registerfinalizer(f,comment)
- comment = comment or "unknown"
- if type(f) == "function" then
- finalizers[#finalizers+1] = { action = f, comment = comment }
- else
- print(format("\nfatal error: invalid finalizer, action: %s\n",comment))
- os.exit()
- end
-end
-
-function lua.finalize(logger)
- for i=1,#finalizers do
- local finalizer = finalizers[i]
- finalizer.action()
- if logger then
- logger("finalize action: %s",finalizer.comment)
- end
- end
-end
-
-- A first start with environments. This will be overloaded later.
environment = environment or { }
@@ -161,9 +138,7 @@ if LUATEXFORMATID == nil then
LUATEXFORMATID = status.format_id or 0
end
-if JITSUPPORTED == nil then
- JITSUPPORTED = false
-end
+JITSUPPORTED = false
if INITEXMODE == nil then
INITEXMODE = status.run_state == 0 -- initializing updating production
@@ -176,6 +151,37 @@ environment.jitsupported = JITSUPPORTED
environment.initex = INITEXMODE
environment.initexmode = INITEXMODE
+if INITEXMODE then
+
+ local finalizers = { }
+
+ function lua.registerinitexfinalizer(f,comment)
+ comment = comment or "unknown"
+ if type(f) == "function" then
+ finalizers[#finalizers+1] = { action = f, comment = comment }
+ else
+ print(format("\nfatal error: invalid finalizer, action: %s\n",comment))
+ os.exit()
+ end
+ end
+
+ function lua.finalizeinitex(logger)
+ for i=1,#finalizers do
+ local finalizer = finalizers[i]
+ finalizer.action()
+ if logger then
+ logger("finalize action: %s",finalizer.comment)
+ end
+ end
+ end
+
+else
+
+ function lua.registerinitexfinalizer() end
+ function lua.finalizeinitex () end
+
+end
+
-- if INITEXMODE then
-- -- we have about that amount so we preallocate then which gives less
-- -- reallocations (we're talking tiny record so no real gain)
@@ -284,7 +290,10 @@ local function open_data_file(name)
return {
reader = function()
return f:read("*line")
- end
+ end,
+ -- close = function()
+ -- f:close()
+ -- end
}
else
return false
@@ -301,7 +310,7 @@ callback.register("trace_memory", function(what,success)
logs.report("tex memory","bumping category %a %s, details: %s",
what,success,table.sequenced(status["get"..what.."state"]()))
elseif texio then
- texio.write_nl(format("bumping tex '%s' memory %s",
+ texio.writenl(format("bumping tex '%s' memory %s",
what,success))
end
-- os.exit()
diff --git a/Master/texmf-dist/tex/context/base/mkxl/luat-fio.lmt b/Master/texmf-dist/tex/context/base/mkxl/luat-fio.lmt
index c70ed54e4aa..ce8b5ab278b 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/luat-fio.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/luat-fio.lmt
@@ -9,11 +9,6 @@ if not modules then modules = { } end modules ['luat-fio'] = {
local format = string.format
local concat = table.concat
-texconfig.kpse_init = false -- can go away
-texconfig.shell_escape = 't' -- can go away
-texconfig.max_print_line = 100000 -- can go away
-texconfig.max_in_open = 1000 -- can go away
-
if not resolvers.initialized() then
resolvers.reset()
@@ -32,7 +27,7 @@ if not resolvers.initialized() then
local ioflush = io.flush
local ioread = io.read
- local writenl = texio.write_nl
+ local writenl = texio.writenl
local function terminal()
writenl("\ntex console > ")
@@ -85,8 +80,8 @@ if not resolvers.initialized() then
return name
end
- register('find_log_file' , find_any_file, true)
- register('find_format_file', find_any_file, true)
+ register('find_log_file' , find_any_file, true) -- why do we have this callback if we just return the name
+ register('find_format_file', find_any_file, true) -- why do we have this callback if we just return the name
-- register('find_data_file' , find_data_file, true)
register('open_data_file' , open_data_file, true)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/luat-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/luat-ini.lmt
index 3bfd191b981..3202ea42b1a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/luat-ini.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/luat-ini.lmt
@@ -25,20 +25,12 @@ if not global then
global = _G
end
-LUATEXVERSION = status.luatex_version/100
- + tonumber(status.luatex_revision)/10000
-
-LUATEXENGINE = status.luatex_engine and string.lower(status.luatex_engine)
- or (string.find(status.banner,"LuajitTeX",1,true) and "luajittex" or "luatex")
-
+LUATEXVERSION = status.luatex_version/100 + tonumber(status.luatex_revision)/10000
+LUATEXENGINE = string.lower(status.luatex_engine or "luametatex")
LUATEXFUNCTIONALITY = status.development_id or 6346
-
LUATEXFORMATID = status.format_id or 0
-
-JITSUPPORTED = LUATEXENGINE == "luajittex" or jit
-
+JITSUPPORTED = false
INITEXMODE = status.ini_version
-
CONTEXTLMTXMODE = 1
function os.setlocale()
diff --git a/Master/texmf-dist/tex/context/base/mkxl/luat-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/luat-ini.mkxl
index 9a78c3934c4..d1a84f60cc3 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/luat-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/luat-ini.mkxl
@@ -21,21 +21,18 @@
%D will keep code outside \TEX\ files as much as possible. The solutions evolved
%D with the engine but one can find some history in the \MKIV\ files and articles.
-%ifdefined\setnaturalcatcodes \else \let\setnaturalcatcodes\relax \fi
-\ifdefined\obeylualines \else \let\obeylualines \relax \fi
-\ifdefined\obeyluatokens \else \let\obeyluatokens \relax \fi
+\ifdefined\obeyluatokens \else \let\obeyluatokens\relax \fi
%D A few more goodies:
-\aliased\let\stoplua \relax % tex catcodes
-\aliased\let\stopluacode\relax % lua catcodes
+\permanent\protected\lettonothing\stoplua % tex catcodes
+\permanent\protected\lettonothing\stopluacode % lua catcodes
-%D In the meantime the \LUATEX\ interface has become stable but we still
-%D see traces of old here (needs checking).
+%D In the meantime the \LUATEX\ interface has become stable but we still see traces
+%D of old here (needs checking).
\permanent\protected\def\startlua % \stoplua
{\begingroup
- \obeylualines
\luat_start_lua_indeed}
\def\luat_start_lua_indeed#1\stoplua
@@ -43,7 +40,6 @@
\permanent\protected\def\startluacode % \stopluacode
{\begingroup
- \obeylualines
\obeyluatokens
\luat_start_lua_code_indeed}
@@ -58,14 +54,37 @@
\ifdefined\obeyspaces \else \let\obeyspaces \relax \fi
\ifdefined\obeyedspace \else \let\obeyedspace \relax \fi
-\aliased\let\obeylualines\relax % not used, will go away
-
\newtoks\everyluacode
%D It is nicer for checking with \type {s-system-macros} if we have some meaning:
\pushoverloadmode
- \let\-\explicitdiscretionary
+
+ % We anyway need this:
+
+ \permanent\protected\def\superexplicitdiscretionary
+ {\begingroup
+ \hyphenationmode\explicithyphenationmodecode\explicitdiscretionary
+ \endgroup}
+
+ % Conceptually the best:
+
+ \aliased\let\-\explicitdiscretionary
+
+ % But we could do this to be compatible:
+
+ % \permanent\protected\def\-{\begingroup\hyphenationmode\explicithyphenationmodecode\explicitdiscretionary\endgroup}
+
+ % Or maybe even this:
+
+ % \aliased\let\lang_explicit_discretionary_nop\explicitdiscretionary
+ %
+ % \permanent\protected\def\lang_explicit_discretionary_yes-%
+ % {\superexplicitdiscretionary}
+ %
+ % \permanent\protected\def\-%
+ % {\doifelsenextcharcs-\lang_explicit_discretionary_yes\lang_explicit_discretionary_nop}
+
\popoverloadmode
\ifdefined\n \else \mutable\def\n{n} \fi \ifdefined\r \else \mutable\def\r{r} \fi
@@ -168,7 +187,6 @@
\permanent\protected\def\startluaparameterset[#1]% \stopluaparameterset
{\begingroup
- \obeylualines
\obeyluatokens
\luat_start_lua_parameter_set{#1}}
@@ -176,7 +194,7 @@
{\ctxlua{parametersets["#1"]={#2}}%
\endgroup}
-\aliased\let\stopluaparameterset\relax
+\permanent\protected\lettonothing\stopluaparameterset
\permanent\def\luaparameterset#1#2{\ctxlua{parametersets["#1"]={#2} context("#1")}}
@@ -207,7 +225,6 @@
\permanent\protected\def\ctxluacode
{\begingroup
- \obeylualines
\obeyluatokens
\catcode\leftbraceasciicode \plusone
\catcode\rightbraceasciicode\plustwo
@@ -237,7 +254,7 @@
\installsystemnamespace{ctxfunction}
\permanent\protected\def\startctxfunctiondefinition #1 % \stopctxfunctiondefinition
- {\begingroup \obeylualines \obeyluatokens \luat_start_lua_function_definition_indeed{#1}}
+ {\begingroup \obeyluatokens \luat_start_lua_function_definition_indeed{#1}}
\installsystemnamespace{luafunction}
@@ -250,15 +267,15 @@
{\expandafter\chardef\csname\??luafunction#1\endcsname#2\relax
\edefcsname#1\endcsname{\noexpand\luafunction\csname\??luafunction#1\endcsname}}
-\aliased\let\stopctxfunctiondefinition\relax
+\permanent\protected\lettonothing\stopctxfunctiondefinition
\permanent\protected\def\startctxfunction #1 % \stopctxfunction
- {\begingroup \obeylualines \obeyluatokens \luat_start_lua_function_indeed{#1}}
+ {\begingroup \obeyluatokens \luat_start_lua_function_indeed{#1}}
\def\luat_start_lua_function_indeed#1#2\stopctxfunction
{\endgroup\edefcsname\??ctxfunction#1\endcsname{\noexpand\luafunction\ctxcommand{ctxfunction(\!!bs#2\!!es)}\relax}}
-\aliased\let\stopctxfunction\relax
+\permanent\protected\lettonothing\stopctxfunction
\permanent\def\ctxfunction#1%
{\begincsname\??ctxfunction#1\endcsname}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/luat-lib.mkxl b/Master/texmf-dist/tex/context/base/mkxl/luat-lib.mkxl
index 61f9ccfd0fd..cb161cafa7c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/luat-lib.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/luat-lib.mkxl
@@ -15,19 +15,19 @@
\registerctxluafile{util-str}{}
\registerctxluafile{util-tab}{}
-\registerctxluafile{util-fil}{optimize}
-\registerctxluafile{util-sac}{optimize}
+\registerctxluafile{util-fil}{autosuffix}
+\registerctxluafile{util-sac}{autosuffix}
\registerctxluafile{util-sto}{} % could also be done in trac-deb.mkiv
-\registerctxluafile{util-pck}{}
+\registerctxluafile{util-pck}{autosuffix}
\registerctxluafile{util-prs}{}
\registerctxluafile{util-fmt}{}
\registerctxluafile{util-dim}{}
-\registerctxluafile{trac-set}{}
+\registerctxluafile{trac-set}{autosuffix}
\registerctxluafile{luat-log}{autosuffix}
\registerctxluafile{trac-inf}{autosuffix}
\registerctxluafile{util-lua}{}
-\registerctxluafile{util-deb}{} % could also be done in trac-deb.mkiv
+\registerctxluafile{util-deb}{autosuffix}
\registerctxluafile{util-tpl}{} % needs tracker
\registerctxluafile{util-seq}{}
@@ -46,6 +46,7 @@
\registerctxluafile{util-soc-imp-tp} {}
\registerctxluafile{util-zip}{}
+\registerctxluafile{util-tar}{}
\registerctxluafile{data-ini}{}
\registerctxluafile{data-exp}{}
@@ -60,8 +61,10 @@
\registerctxluafile{data-pre}{} % after data-res
\registerctxluafile{data-bin}{} % before data-tex
\registerctxluafile{data-tex}{} % after data-pre
-\registerctxluafile{data-vir}{}
+\registerctxluafile{data-vir}{autosuffix}
\registerctxluafile{data-zip}{}
+\registerctxluafile{data-dec}{}
+\registerctxluafile{data-tar}{}
%registerctxluafile{data-crl}{}
\registerctxluafile{data-sch}{}
\registerctxluafile{data-tre}{}
@@ -72,9 +75,9 @@
\registerctxluafile{data-aux}{}
\registerctxluafile{luat-cbk}{autosuffix}
-\registerctxluafile{luat-run}{}
+\registerctxluafile{luat-run}{autosuffix}
\registerctxluafile{luat-fio}{autosuffix}
-\registerctxluafile{luat-cnf}{}
+\registerctxluafile{luat-cnf}{autosuffix,initexonly}
\registerctxluafile{luat-lua}{}
\registerctxluafile{luat-sto}{}
\registerctxluafile{luat-ini}{autosuffix}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/luat-log.lmt b/Master/texmf-dist/tex/context/base/mkxl/luat-log.lmt
index 522f4ac4ff6..0c2405b7598 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/luat-log.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/luat-log.lmt
@@ -14,7 +14,8 @@ if not modules then modules = { } end modules ['luat-log'] = {
-- mtxrun.
--
-- We use different targets: "terminal" "logfile", "both" and have no number
--- channel.
+-- channel. Actually, the log channels are now numeric (1,2,3) as with other
+-- symbolics.
local next, type, select, print = next, type, select, print
local format, gmatch, find = string.format, string.gmatch, string.find
@@ -24,8 +25,9 @@ local utfchar = utf.char
local datetime = os.date
local openfile = io.open
-local write_nl = texio.write_nl
-local write = texio.write
+local writenl = texio.writeselectornl
+local writelf = texio.writeselectorlf
+local write = texio.writeselector
local setmetatableindex = table.setmetatableindex
local formatters = string.formatters
@@ -119,14 +121,17 @@ do
status_yes = formatters["%-15s : %s\n"],
status_nop = formatters["%-15s :\n"],
},
- targets = setmetatableindex( {
- logfile = "logfile",
- log = "logfile",
- file = "logfile",
- console = "terminal",
- terminal = "terminal",
- both = "terminal_and_logfile",
- }, function(t,k) t[k] = "terminal_and_logfile" end),
+ targets = setmetatableindex( { -- 1, 2, 3,
+ logfile = 2,
+ log = 2,
+ file = 2,
+ console = 1,
+ terminal = 1,
+ both = 3,
+ },
+ function(t,k)
+ local v = 3 t[k] = v return v
+ end),
},
ansi = {
formats = {
@@ -141,14 +146,14 @@ do
status_yes = formatters["%-15s : %s\n"],
status_nop = formatters["%-15s :\n"],
},
- targets = setmetatableindex( {
+ targets = setmetatableindex( { 1, 1, 1,
logfile = false,
log = false,
file = false,
- console = "terminal",
- terminal = "terminal",
- both = "terminal",
- }, function(t,k) t[k] = "terminal" end),
+ console = 1,
+ terminal = 1,
+ both = 1,
+ }, function(t,k) local v = 1 t[k] = v return v end),
}
}
@@ -161,13 +166,14 @@ do
writer = function(...)
if target then
- write_nl(target,...)
+ writenl(target,...)
end
end
newline = function()
if target then
- write_nl(target,"\n")
+ writelf(target)
+ -- writenl(target,"")
end
end
@@ -175,13 +181,13 @@ do
if not target then
-- ignore
elseif c ~= nil then
- write_nl(target,report_yes(translations[a],formatters[formats[b]](c,...)))
+ writenl(target,report_yes(translations[a],formatters[formats[b]](c,...)))
elseif b then
- write_nl(target,report_yes(translations[a],formats[b]))
+ writenl(target,report_yes(translations[a],formats[b]))
elseif a then
- write_nl(target,report_nop(translations[a]))
+ writenl(target,report_nop(translations[a]))
else
- write_nl(target,"\n")
+ writenl(target)
end
end
@@ -203,13 +209,13 @@ do
if not target then
-- ignore
elseif c ~= nil then
- write_nl(target,subreport_yes(translations[a],translations[s],formatters[formats[b]](c,...)))
+ writenl(target,subreport_yes(translations[a],translations[s],formatters[formats[b]](c,...)))
elseif b then
- write_nl(target,subreport_yes(translations[a],translations[s],formats[b]))
+ writenl(target,subreport_yes(translations[a],translations[s],formats[b]))
elseif a then
- write_nl(target,subreport_nop(translations[a],translations[s]))
+ writenl(target,subreport_nop(translations[a],translations[s]))
else
- write_nl(target,"\n")
+ writenl(target)
end
end
@@ -231,13 +237,13 @@ do
if not target then
-- ignore
elseif c ~= nil then
- write_nl(target,status_yes(translations[a],formatters[formats[b]](c,...)))
+ writenl(target,status_yes(translations[a],formatters[formats[b]](c,...)))
elseif b then
- write_nl(target,status_yes(translations[a],formats[b]))
+ writenl(target,status_yes(translations[a],formats[b]))
elseif a then
- write_nl(target,status_nop(translations[a]))
+ writenl(target,status_nop(translations[a]))
else
- write_nl(target,"\n")
+ writenl(target)
end
end
@@ -248,7 +254,7 @@ do
whereto = "both"
target = targets[whereto]
end
- if target == "terminal" or target == "terminal_and_logfile" then
+ if target == targets.both or target == targets.terminal then
logs.flush = io.flush
else
logs.flush = ignore
@@ -277,8 +283,8 @@ do
end
setprocessor = function(f)
- local writeline = write_nl
- write_nl = function(target,...)
+ local writeline = writenl
+ writenl = function(target,...)
if target then
writeline(target,f(...))
end
@@ -620,25 +626,39 @@ if package.helpers.report then
package.helpers.report = logs.reporter("package loader") -- when used outside mtxrun
end
+-- logs.errors=missing references,missing characters
+-- logs.errors=characters
+-- logs.errors=missing
+-- logs.errors=*
+-- logs.quitonerror=missing modules
+
do
local finalactions = { }
local fatalerrors = { }
local possiblefatal = { }
+ local quitonerror = { }
local loggingerrors = false
function logs.loggingerrors()
return loggingerrors
end
- directives.register("logs.errors",function(v)
+ local function register(v)
loggingerrors = v
if type(v) == "string" then
- fatalerrors = settings_to_hash(v)
+ local target = settings_to_hash(v)
+ for k, v in next, target do
+ target[k] = string.topattern(k)
+ end
+ return target
else
- fatalerrors = { }
+ return { }
end
- end)
+ end
+
+ directives.register("logs.errors", function(v) fatalerrors = register(v) end)
+ directives.register("logs.quitonerror",function(v) quitonerror = register(v) end)
function logs.registerfinalactions(...)
insert(finalactions,...) -- so we can force an order if needed
@@ -648,6 +668,7 @@ do
local report = nil
local state = nil
local target = nil
+ local fatal = false
local function startlogging(t,r,w,s)
target = t
@@ -678,6 +699,10 @@ do
end
poptarget()
state = oldstate
+ if fatal then
+ logs.report("error logging","error marked as fatal")
+ luatex.abort()
+ end
end
function logs.startfilelogging(...)
@@ -698,6 +723,18 @@ do
end
if fatalerrors[w] then
possiblefatal[w] = true
+ else
+ for k, v in next, quitonerror do
+ if find(w,v) then
+ fatal = true
+ end
+ end
+ for k, v in next, fatalerrors do
+ if find(w,v) then
+ possiblefatal[w] = true
+ break
+ end
+ end
end
return startlogging("terminal",r,w,...)
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/luat-run.lmt b/Master/texmf-dist/tex/context/base/mkxl/luat-run.lmt
new file mode 100644
index 00000000000..f6b2ea06368
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/luat-run.lmt
@@ -0,0 +1,306 @@
+if not modules then modules = { } end modules ['luat-run'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local next = next
+local find = string.find
+local insert, remove = table.insert, table.remove
+local osexit = os.exit
+
+-- trace_job_status is also controlled by statistics.enable that is set via the directive system.nostatistics
+
+local trace_lua_dump = false trackers.register("system.dump", function(v) trace_lua_dump = v end)
+local trace_temp_files = false trackers.register("system.tempfiles", function(v) trace_temp_files = v end)
+local trace_job_status = true trackers.register("system.jobstatus", function(v) trace_job_status = v end)
+local trace_tex_status = false trackers.register("system.texstatus", function(v) trace_tex_status = v end)
+
+local report_lua = logs.reporter("system","lua")
+local report_tex = logs.reporter("system","status")
+local report_tempfiles = logs.reporter("resolvers","tempfiles")
+
+luatex = luatex or { }
+local luatex = luatex
+local synctex = luatex.synctex
+
+if not synctex then
+ synctex = table.setmetatableindex(function() return function() end end)
+ luatex.synctex = synctex
+end
+
+local startactions = { }
+local stopactions = { }
+local dumpactions = { }
+local pageactions = { }
+
+function luatex.registerstartactions(...) insert(startactions, ...) end
+function luatex.registerstopactions (...) insert(stopactions, ...) end
+function luatex.registerdumpactions (...) insert(dumpactions, ...) end
+function luatex.registerpageactions (...) insert(pageactions, ...) end
+
+local setexitcode = lua.setexitcode or status.setexitcode or function() end
+
+local function start_run()
+ if logs.start_run then
+ logs.start_run()
+ end
+ -- logs.report("engine","%s version %s, format id %s",LUATEXENGINE,LUATEXVERSION,LUATEXFORMATID)
+ for i=1,#startactions do
+ startactions[i]()
+ end
+end
+
+local function stop_run(badrun)
+ for i=1,#stopactions do
+ stopactions[i]()
+ end
+ local quit = logs.finalactions()
+ if trace_job_status then
+ statistics.show()
+ end
+ if trace_tex_status then
+ logs.newline()
+ for k, v in table.sortedhash(status.list()) do
+ if type(v) ~= "table" then
+ report_tex("%S=%S",k,v)
+ end
+ end
+ end
+ if quit then
+ setexitcode(1)
+ if type(quit) == "table" then
+ logs.newline()
+ report_tex("quitting due to: %, t",quit)
+ logs.newline()
+ end
+ elseif badrun and badrun > 0 then
+ setexitcode(1)
+ end
+ if logs.stop_run then
+ logs.stop_run()
+ end
+end
+
+-- watch out for synctex here:
+
+function callbacks.functions.start_page_number()
+ synctex.start()
+ logs.start_page_number()
+end
+
+function callbacks.functions.stop_page_number()
+ logs.stop_page_number()
+ for i=1,#pageactions do
+ pageactions[i]()
+ end
+ synctex.stop()
+end
+
+local function pre_dump_actions()
+ for i=1,#dumpactions do
+ dumpactions[i]()
+ end
+ lua.finalizeinitex(trace_lua_dump and report_lua or nil)
+end
+
+local function wrapup_synctex()
+ synctex.wrapup()
+end
+
+-- For Taco ...
+
+local sequencers = utilities.sequencers
+local appendgroup = sequencers.appendgroup
+local appendaction = sequencers.appendaction
+local wrapupactions = sequencers.new { }
+local cleanupactions = sequencers.new { }
+
+appendgroup(wrapupactions,"system")
+appendgroup(wrapupactions,"user")
+
+appendgroup(cleanupactions,"system")
+appendgroup(cleanupactions,"user")
+
+local function wrapup_run(someerror)
+ local runner = wrapupactions.runner
+ if runner then
+ runner(someerror) -- we could use the error flag in lmtx
+ end
+end
+
+local function cleanup_run()
+ local runner = cleanupactions.runner
+ if runner then
+ runner()
+ end
+end
+
+function luatex.wrapup(action)
+ appendaction(wrapupactions,"user",action)
+end
+
+function luatex.cleanup(action)
+ appendaction(cleanupactions,"user",action)
+end
+
+function luatex.abort()
+ cleanup_run()
+ setexitcode(1)
+ osexit(1)
+end
+
+appendaction(wrapupactions,"system",synctex.wrapup)
+
+-- this can be done later
+
+callbacks.register('start_run', start_run, "actions performed at the beginning of a run")
+callbacks.register('stop_run', stop_run, "actions performed at the end of a run")
+callbacks.register("pre_dump", pre_dump_actions, "lua related finalizers called before we dump the format") -- comes after \everydump
+callbacks.register('wrapup_run', wrapup_run, "actions performed after closing files")
+
+-- an example:
+
+local tempfiles = { }
+
+function luatex.registertempfile(name,extrasuffix,keep) -- namespace might change
+ if extrasuffix then
+ name = name .. ".mkiv-tmp" -- maybe just .tmp
+ end
+ if trace_temp_files and not tempfiles[name] then
+ if keep then
+ report_tempfiles("%s temporary file %a","registering",name)
+ else
+ report_tempfiles("%s temporary file %a","unregistering",name)
+ end
+ end
+ tempfiles[name] = keep or false
+ return name
+end
+
+function luatex.cleanuptempfiles()
+ for name, keep in next, tempfiles do
+ if not keep then
+ if trace_temp_files then
+ report_tempfiles("%s temporary file %a","removing",name)
+ end
+ os.remove(name)
+ end
+ end
+ tempfiles = { }
+end
+
+luatex.registerstopactions(luatex.cleanuptempfiles)
+
+-- Reporting filenames has been simplified since lmtx because we don't need the
+-- traditional () {} <> etc methods (read: that directive option was never chosen).
+
+local report_open = logs.reporter("open source")
+local report_close = logs.reporter("close source")
+local report_load = logs.reporter("load resource")
+
+local register = callbacks.register
+
+local level = 0
+local total = 0
+local stack = { }
+
+function luatex.currentfile()
+ return stack[#stack] or tex.jobname
+end
+
+local function report_start(name,rest)
+ if rest then
+ -- luatex
+ if name ~= 1 then
+ insert(stack,false)
+ return
+ end
+ name = rest
+ end
+ if find(name,"virtual://",1,true) then
+ insert(stack,false)
+ else
+ insert(stack,name)
+ total = total + 1
+ level = level + 1
+ -- report_open("%i > %i > %s",level,total,name or "?")
+ report_open("level %i, order %i, name %a",level,total,name or "?")
+ synctex.setfilename(name)
+ end
+end
+
+local function report_stop()
+ local name = remove(stack)
+ if name then
+ -- report_close("%i > %i > %s",level,total,name or "?")
+ report_close("level %i, order %i, name %a",level,total,name or "?")
+ level = level - 1
+ name = stack[#stack]
+-- synctex.setfilename(stack[#stack] or tex.jobname)
+ if name then
+ synctex.setfilename(name)
+ end
+ end
+end
+
+local function report_none()
+end
+
+register("start_file",report_start)
+register("stop_file", report_stop)
+
+directives.register("system.reportfiles", function(v)
+ if v then
+ register("start_file",report_start)
+ register("stop_file", report_stop)
+ else
+ register("start_file",report_none)
+ register("stop_file", report_none)
+ end
+end)
+
+-- start_run doesn't work
+
+-- luatex.registerstartactions(function()
+-- if environment.arguments.sandbox then
+-- sandbox.enable()
+-- end
+-- end)
+
+local report = logs.reporter("csname overload")
+local reported = { }
+
+callback.register("handle_overload", function(fatal,overload,csname,flags)
+ if not reported[csname] then
+ logs.newline()
+ local readstate = status.readstate
+ local filename = readstate.filename
+ local linenumber = readstate.linenumber
+ local flags = tokens.flags and tokens.flags(csname) or { }
+ if filename and linenumber then
+ report("%s, protection level %i, control sequence %a, properties '% t', file %a, line %i",
+ fatal and "fatal error" or "warning",overload,csname,flags,filename,linenumber)
+ else
+ report("%s, protection level %i, control sequence %a, properties '% t'",
+ fatal and "fatal error" or "warning",overload,csname,flags)
+ end
+ reported[csname] = true
+ logs.newline()
+ if fatal then
+ cleanup_run()
+ setexitcode(1)
+ osexit(1)
+ end
+ end
+end)
+
+-- bonus
+
+if environment.initex then
+
+ luatex.registerdumpactions(statistics.showmemory)
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/luat-usr.mkxl b/Master/texmf-dist/tex/context/base/mkxl/luat-usr.mkxl
index 199d22b8e6f..04aa520b34c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/luat-usr.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/luat-usr.mkxl
@@ -60,7 +60,6 @@
%
\frozen\instance\protected\xdefcsname\s!start#1\s!code\endcsname
{\begingroup
- \obeylualines
\obeyluatokens
\csname\??luacode#1\endcsname}%
%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lxml-ctx.mkxl b/Master/texmf-dist/tex/context/base/mkxl/lxml-ctx.mkxl
index f4b2edc798f..8515e618730 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lxml-ctx.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/lxml-ctx.mkxl
@@ -20,9 +20,9 @@
\unprotect
-\settrue \xmllshowbuffer
-\setfalse\xmllshowtitle
-\settrue \xmllshowwarning
+\settrue \xmllshowbuffertoo
+\setfalse\xmllshowtitletoo
+\settrue \xmllshowwarningtoo
\definehead
[lshowtitle]
@@ -35,10 +35,10 @@
\permanent\protected\def\xmllshow#1%
{\ctxlua{xml.ctx.tshow {
pattern = \!!bs\detokenize{#1}\!!es,
- \ifconditional\xmllshowtitle
+ \ifconditional\xmllshowtitletoo
title = "lshowtitle",
\fi
- \ifconditional\xmllshowwarning
+ \ifconditional\xmllshowwarningtoo
warning = true,
\fi
} }}
@@ -46,11 +46,11 @@
\permanent\protected\def\xmllshowbuffer#1#2#3%
{\ctxlua{xml.ctx.tshow {
pattern = \!!bs\detokenize{#2}\!!es,
- \ifconditional\xmllshowbuffer
+ \ifconditional\xmllshowbuffertoo
xmlroot = "#1",
attribute = "#3",
\fi
- \ifconditional\xmllshowwarning
+ \ifconditional\xmllshowwarningtoo
warning = true,
\fi
} }}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/lxml-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/lxml-ini.mkxl
index 01d0f883f96..be249c1f3bd 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/lxml-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/lxml-ini.mkxl
@@ -195,6 +195,23 @@
%xmlpopdocument
\endgroup}
+% This still doesn't solve a problem with weird grouping (start inside xml and
+% end outside, so one has to do proper grouping inside xml mode).
+%
+% \def\lxml_process#1#2#3#4#5% flag \loader id name what initializersetup
+% {%\begingroup
+% \pushmacro\xmldocument
+% \edef\xmldocument{#3}% #2 can be \xmldocument and set as such
+% #2{#3}{#4}%
+% \pushcatcodetable
+% \setcatcodetable\notcatcodes
+% \doifelsenothing{#5}%
+% {\xmlsetup{#3}{xml:process}}%
+% {\xmlsetup{#3}{#5}}%
+% \popcatcodetable
+% \popmacro\xmldocument
+% }%\endgroup}
+
\permanent\protected\def\xmlprocessfile {\lxml_process\plusone \xmlload}
\permanent\protected\def\xmlprocessdata {\lxml_process\zerocount\xmlloaddata}
\permanent\protected\def\xmlprocessbuffer{\lxml_process\zerocount\xmlloadbuffer}
@@ -256,7 +273,7 @@
\doinitializeverbatim
\beginofverbatimlines}
-\aliased\let\stopxmldisplayverbatim\relax
+\permanent\protected\lettonothing\stopxmldisplayverbatim
\permanent\tolerant\protected\def\startxmlinlineverbatim[#1]%
{\begingroup
@@ -269,7 +286,7 @@
\enforced\let\stopxmlinlineverbatim\endgroup
\doinitializeverbatim}
-\aliased\let\stopxmlinlineverbatim\relax
+\permanent\protected\lettonothing\stopxmlinlineverbatim
% processing instructions
@@ -305,10 +322,10 @@
\installdirectcommandhandler \??xml {xml}
-\letvalue{\??xmldefaults\v!normal}\zerocount
-\letvalue{\??xmldefaults\v!none }\zerocount
-\letvalue{\??xmldefaults\v!text }\plusone
-\letvalue{\??xmldefaults\v!hidden}\plustwo
+\letcsname\??xmldefaults\v!normal\endcsname\zerocount
+\letcsname\??xmldefaults\v!none \endcsname\zerocount
+\letcsname\??xmldefaults\v!text \endcsname\plusone
+\letcsname\??xmldefaults\v!hidden\endcsname\plustwo
\permanent\protected\def\xmldefaulttotext
{\ifcase\xmlprocessingmode
@@ -334,7 +351,7 @@
\doif{\directxmlparameter\c!entities}\v!yes\clf_xmlloadentities
\to \everysetupxml
-\permanent\def\xmlmapvalue #1#2#3{\setvalue{\??xmlmapvalue#1:#2}{#3}} % keep #3 to grab spaces
+\permanent\def\xmlmapvalue #1#2#3{\defcsname\??xmlmapvalue#1:#2\endcsname{#3}} % keep #3 to grab spaces
\permanent\def\xmldoifelsevalue #1#2{\ifcsname\??xmlmapvalue#1:#2\endcsname\expandafter\firstoftwoarguments\else\expandafter\secondoftwoarguments\fi}
\permanent\def\xmlvalue#1#2% #3
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-acc.mklx b/Master/texmf-dist/tex/context/base/mkxl/math-acc.mklx
index 9d86566302b..6e25c413fe3 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-acc.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-acc.mklx
@@ -18,136 +18,149 @@
\unprotect
-% This module permits overloading of accents so that we can do fancy things. The
-% implementation is similar to stackers. By default accenst are defined in a simple
-% way. Contrary to extensibles accents cannot grow indefinitely. Alas the
-% implementation of accents is different too, in the sense that they are
-% prepositioned i.e. are already raised. (In my opinion for no real reason as they
-% need to adapt anyway).
-%
-% $ \ruledhbox{$H$} \hat{H} \ruledhbox{$\widehat{H}$} \widehat{H} $
-%
-% One alternative is:
-%
-% \definemathoverextensible [top] [hoed] ["FE302]
-% \definemathoverextensible [top] [slang] ["FE303]
-%
-% $ \hoed{H} \ruledhbox{$\hoed{H}$} \ruledhbox{$\hoed{\tf H}$} \slang{H} $
-%
-% But that nills the italic correction (and I'm in nood to mess with that again).
-%
-% \definemathaccents [myaccents] [color=darkred]
-% \definemathtopaccent [myaccents] [mywidehat] ["0302]
-%
-% $ \hat{H} \widehat{H} \mywidehat{H} $
-
+%D This module permits overloading of accents so that we can do fancy things. The
+%D implementation is similar to stackers. By default accenst are defined in a simple
+%D way. Contrary to extensibles accents cannot grow indefinitely. Alas the
+%D implementation of accents is different too, in the sense that they are
+%D prepositioned i.e. are already raised. (In my opinion for no real reason as they
+%D need to adapt anyway).
+%D
+%D In \MKIV\ we used virtual characters in the "FE* range but in \LMTX\ we do it a bit
+%D different as we have a more powerful virtual subsystem. For details on the older
+%D but neat approach see the lua and mkiv files.
+%D
%D Older implementations are kept in the \MKII\ and \MKIV\ modules for educational
%D purposes.
\installcorenamespace{mathaccents}
-\installcommandhandler \??mathaccents {mathaccents} \??mathaccents
+\installcommandhandler \??mathaccents {mathaccent} \??mathaccents
+
+\aliased\let\setupmathaccents\setupmathaccent
\setupmathaccents
[\c!top=,
\c!bottom=,
\c!mathstyle=,
\c!color=,
+ \c!stretch=\v!no,
\c!define=\v!yes] % not used
-\definemathaccents
+\definemathaccent
[\v!both]
-\definemathaccents
+\definemathaccent
[\v!top]
[\v!both]
-\definemathaccents
+\definemathaccent
[\v!bottom]
[\v!both]
\permanent\tolerant\protected\def\definemathtopaccent[#1]#*[#2]#*[#3]% class name top
{\ifparameter#3\or
- \frozen\instance\setuevalue{#2}{\math_accents_make_double {#1}\plusone{\number#3}\zerocount}%
+ \frozen\protected\instance\edefcsname#2\endcsname{\math_accent_make_double {#1}\plusone{\number#3}\zerocount}%
\else
- \frozen\instance\setuevalue{#1}{\math_accents_make_double\noexpand\currentmathaccents\plusone{\number#2}\zerocount}%
+ \frozen\protected\instance\edefcsname#1\endcsname{\math_accent_make_double\noexpand\currentmathaccent\plusone{\number#2}\zerocount}%
\fi}
\permanent\tolerant\protected\def\definemathbottomaccent[#1]#*[#2]#*[#3]% class name bottom
{\ifparameter#3\or
- \frozen\instance\setuevalue{#2}{\math_accents_make_double {#1}\plustwo\zerocount{\number#3}}%
+ \frozen\protected\instance\edefcsname#2\endcsname{\math_accent_make_double {#1}\plustwo\zerocount{\number#3}}%
\else
- \frozen\instance\setuevalue{#1}{\math_accents_make_double\noexpand\currentmathaccents\plustwo\zerocount{\number#2}}%
+ \frozen\protected\instance\edefcsname#1\endcsname{\math_accent_make_double\noexpand\currentmathaccent\plustwo\zerocount{\number#2}}%
\fi}
\permanent\tolerant\protected\def\definemathdoubleaccent[#1]#*[#2]#*[#3]#*[#4]% class name top bottom
{\ifparameter#4\or
- \frozen\instance\setuevalue{#2}{\math_accents_make_double {#1}\plusthree{\number#3}{\number#4}}%
+ \frozen\protected\instance\edefcsname#2\endcsname{\math_accent_make_double {#1}\plusthree{\number#3}{\number#4}}%
\else
- \frozen\instance\setuevalue{#1}{\math_accents_make_double\noexpand\currentmathaccents\plusthree{\number#2}{\number#3}}%
+ \frozen\protected\instance\edefcsname#1\endcsname{\math_accent_make_double\noexpand\currentmathaccent\plusthree{\number#2}{\number#3}}%
\fi}
-\let\math_accents_color_pop\donothing
-
-\def\math_accents_color_push_yes
- {\pushcolor[\p_math_accent_color]%
- \let\math_accents_color_pop\popcolor}
-
-\def\math_accents_color_push_nop
- {\let\math_accents_color_pop\donothing}
-
-\protected\def\math_accents_make_double#class#kind#top#bottom#content%
- {\begingroup
- \edef\currentmathaccents {#class}%
- \edef\p_math_accent_color{\mathaccentsparameter\c!color}%
- \startusemathstyleparameter\mathaccentsparameter
- \ifempty\p_math_accent_color
- \math_accents_color_push_nop
- \else
- \math_accents_color_push_yes
- \fi
+\installlocalcurrenthandler \??mathaccents {mathaccent}
+
+\tolerant\protected\def\math_accent_make_double#class#kind#top#bottom#*[#settings]#:#content%
+ {\beginmathgroup
+ \setlocalmathaccentcurrent{#class}% \edef\currentmathaccent{#class}%
+ \startusemathstyleparameter\mathaccentparameter\c!mathstyle
+ \setupcurrentmathaccent[#settings]%
+ \edef\m_fixed{\ifcstok{\mathaccentparameter\c!stretch}\v!yes\else\s!fixed\fi}%
+ \Umathaccent
+ \usedcolorparameterattributes{\mathaccentparameter\c!color}%
+ % nooverflow % there is never na overflow anyway but we do accept thekey
\ifcase#kind\or
- \Umathaccent \fam\zerocount#top
+ top \m_fixed
+ \fam\zerocount#top
\or
- \Umathaccent bottom \fam\zerocount#bottom
+ bottom \m_fixed
+ \fam\zerocount#bottom
\or
- \Umathaccent both \fam\zerocount#top
- \fam\zerocount#bottom
+ both \m_fixed
+ \fam\zerocount#top
+ \fam\zerocount#bottom
\fi
- {\math_accents_color_pop#content}%
+ {\ifconditional\c_math_accent_auto_dotless\mathdotless\fi#content}%
\stopusemathstyleparameter
- \endgroup}
+ \endmathgroup}
%D Relative new:
-\newconditional\c_math_accents_auto_dotless \settrue\c_math_accents_auto_dotless % cf opentype math
-
-\aliased\let\normalgrave\grave \permanent\protected\def\dotlessgrave#1{\normalgrave{\mathdotless#1}}
-\aliased\let\normalddot \ddot \permanent\protected\def\dotlessddot #1{\normalddot {\mathdotless#1}}
-\aliased\let\normalbar \bar \permanent\protected\def\dotlessbar #1{\normalbar {\mathdotless#1}}
-\aliased\let\normalacute\acute \permanent\protected\def\dotlessacute#1{\normalacute{\mathdotless#1}}
-\aliased\let\normalhat \hat \permanent\protected\def\dotlesshat #1{\normalhat {\mathdotless#1}}
-\aliased\let\normalcheck\check \permanent\protected\def\dotlesscheck#1{\normalcheck{\mathdotless#1}}
-\aliased\let\normalbreve\breve \permanent\protected\def\dotlessbreve#1{\normalbreve{\mathdotless#1}}
-\aliased\let\normaldot \dot \permanent\protected\def\dotlessdot #1{\normaldot {\mathdotless#1}}
-\aliased\let\normalring \ring \permanent\protected\def\dotlessring #1{\normalring {\mathdotless#1}}
-\aliased\let\normaltilde\tilde \permanent\protected\def\dotlesstilde#1{\normaltilde{\mathdotless#1}}
-\aliased\let\normaldddot\dddot \permanent\protected\def\dotlessdddot#1{\normaldddot{\mathdotless#1}}
-
-\def\math_accents_auto_dotless#1#2{\ifconditional\c_math_accents_auto_dotless\expandafter#2\else\expandafter#1\fi}
-
-\permanent\protected\def\grave {\math_accents_auto_dotless\normalgrave \dotlessgrave }
-\permanent\protected\def\ddot {\math_accents_auto_dotless\normalddot \dotlessddot }
-\permanent\protected\def\bar {\math_accents_auto_dotless\normalbar \dotlessbar }
-\permanent\protected\def\acute {\math_accents_auto_dotless\normalacute \dotlessacute }
-\permanent\protected\def\hat {\math_accents_auto_dotless\normalhat \dotlesshat }
-\permanent\protected\def\check {\math_accents_auto_dotless\normalcheck \dotlesscheck }
-\permanent\protected\def\breve {\math_accents_auto_dotless\normalbreve \dotlessbreve }
-\permanent\protected\def\dot {\math_accents_auto_dotless\normaldot \dotlessdot }
-\permanent\protected\def\ring {\math_accents_auto_dotless\normalring \dotlessring }
-\permanent\protected\def\tilde {\math_accents_auto_dotless\normaltilde \dotlesstilde }
-\permanent\protected\def\dddot {\math_accents_auto_dotless\normaldddot \dotlessdddot }
+\newconditional\c_math_accent_auto_dotless \settrue\c_math_accent_auto_dotless % cf opentype math
+
+% \aliased\let\normalgrave\grave
+% \aliased\let\normalddot \ddot
+% \aliased\let\normalbar \bar
+% \aliased\let\normalacute\acute
+% \aliased\let\normalhat \hat \aliased\let\normalwidehat \widehat
+% \aliased\let\normalcheck\check
+% \aliased\let\normalbreve\breve
+% \aliased\let\normaldot \dot
+% \aliased\let\normalring \ring
+% \aliased\let\normaltilde\tilde
+% \aliased\let\normaldddot\dddot
+
+\pushoverloadmode
+
+% These retain the given unicode values ... but can stretch when configured
+% to do so: \setupmathaccent[\v!top][\c!stretch=\v!yes]
+
+\definemathtopaccent[\v!top][grave]["0060] % these are old school
+\definemathtopaccent[\v!top][ddot] ["00A8]
+\definemathtopaccent[\v!top][bar] ["00AF]
+\definemathtopaccent[\v!top][acute]["00B4]
+\definemathtopaccent[\v!top][hat] ["02C6]
+\definemathtopaccent[\v!top][check]["02C7]
+\definemathtopaccent[\v!top][breve]["02D8]
+\definemathtopaccent[\v!top][dot] ["02D9]
+\definemathtopaccent[\v!top][ring] ["02DA]
+\definemathtopaccent[\v!top][tilde]["02DC]
+\definemathtopaccent[\v!top][dddot]["20DB]
+
+\definemathaccent
+ [\v!top:\v!stretch]
+ [\v!top]
+ [\c!stretch=\v!yes]
+
+%D We have a problem. We can use stackers but then we need to adapt the dimensions
+%D which is font dependent. So, for now we keep them as accents.
+
+\definemathtopaccent[\v!top:\v!stretch][widegrave]["0300] % these are generic modern
+\definemathtopaccent[\v!top:\v!stretch][wideddot] ["0308]
+\definemathtopaccent[\v!top:\v!stretch][widebar] ["0304]
+\definemathtopaccent[\v!top:\v!stretch][wideacute]["0301]
+\definemathtopaccent[\v!top:\v!stretch][widehat] ["0302]
+\definemathtopaccent[\v!top:\v!stretch][widecheck]["030C]
+\definemathtopaccent[\v!top:\v!stretch][widebreve]["0306]
+\definemathtopaccent[\v!top:\v!stretch][widedot] ["0307]
+\definemathtopaccent[\v!top:\v!stretch][widering] ["030A]
+\definemathtopaccent[\v!top:\v!stretch][widetilde]["0303]
+\definemathtopaccent[\v!top:\v!stretch][widedddot]["20DB]
+
+\definemathtopaccent[\v!top:\v!stretch][vec] ["20D7] % clumsy notation for vectors
\aliased\let\mathring\ring % for a while
+\popoverloadmode
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-act.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-act.lmt
index 9da79976484..370415c8185 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-act.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-act.lmt
@@ -9,24 +9,46 @@ if not modules then modules = { } end modules ['math-act'] = {
-- Here we tweak some font properties (if needed). The commented sections
-- have been removed (no longer viable) but can be found in the .lua variant.
-local type, next = type, next
-local fastcopy, insert, remove = table.fastcopy, table.insert, table.remove
+-- The tweaks here evolved from experiments with, discussions about and upgrades of
+-- the math subsystem, a project that Mikael Sundvist and I started end 2021 and
+-- that is still ongoing in 2023 (and probably beyond as we find new challenges as
+-- we go).
+
+local type, next, tonumber = type, next, tonumber
+local fastcopy, copytable, insert, remove, concat = table.fastcopy, table.copy, table.insert, table.remove, table.concat
local formatters = string.formatters
+local byte = string.byte
+local setmetatableindex, sortedkeys, sortedhash = table.setmetatableindex, table.sortedkeys, table.sortedhash
+local lpegmatch = lpeg.match
local trace_defining = false trackers.register("math.defining", function(v) trace_defining = v end)
local trace_collecting = false trackers.register("math.collecting", function(v) trace_collecting = v end)
+local trace_tweaking = false trackers.register("math.tweaks", function(v) trace_tweaking = v end)
local report_math = logs.reporter("mathematics","initializing")
+local report_mathtweak = logs.reporter("mathematics","tweak")
+
+local getfontoffamily = tex.getfontoffamily
+local texget = tex.get
+local fontcharacters = fonts.hashes.characters
+local chardata = characters.data
+local extensibles = mathematics.extensibles
local context = context
local commands = commands
local mathematics = mathematics
local texsetdimen = tex.setdimen
+local texisdimen = tex.isdimen
local abs = math.abs
+local blocks = characters.blocks
+local stepper = utilities.parsers.stepper
+
local helpers = fonts.helpers
local upcommand = helpers.commands.up
+local downcommand = helpers.commands.down
local rightcommand = helpers.commands.right
+local leftcommand = helpers.commands.left
local charcommand = helpers.commands.char
local prependcommands = helpers.prependcommands
@@ -37,6 +59,14 @@ local appendaction = sequencers.appendaction
local fontchars = fonts.hashes.characters
local fontproperties = fonts.hashes.properties
+local mathgaps = mathematics.gaps
+
+local d_scratchleftoffset = texisdimen("scratchleftoffset")
+local d_scratchrightoffset = texisdimen("scratchrightoffset")
+
+local use_math_goodies = true directives.register("math.nogoodies", function(v) use_math_goodies = not v end)
+local checkitalics = false trackers .register("math.checkitalics", function(v) checkitalics = v end)
+
local mathfontparameteractions = sequencers.new {
name = "mathparameters",
arguments = "target,original",
@@ -46,20 +76,56 @@ appendgroup("mathparameters","before") -- user
appendgroup("mathparameters","system") -- private
appendgroup("mathparameters","after" ) -- user
-function fonts.constructors.assignmathparameters(original,target)
+function fonts.constructors.assignmathparameters(original,target) -- wrong way around
local runner = mathfontparameteractions.runner
if runner then
runner(original,target)
end
end
-function mathematics.initializeparameters(target,original)
+-- we need a better reset because the following will scale
+
+local undefined <const> = 0x3FFFFFFF -- maxdimen or undefined_math_parameter
+
+function mathematics.initializeparameters(target,original,nodimensions)
local mathparameters = original.mathparameters
if mathparameters and next(mathparameters) then
- mathparameters = mathematics.dimensions(mathparameters)
- if not mathparameters.SpaceBeforeScript then
- mathparameters.SpaceBeforeScript = mathparameters.SpaceAfterScript
+ if nodimensions ~= "noscale" then
+ mathparameters = mathematics.dimensions(mathparameters)
end
+ --
+ -- if not mathparameters.MinConnectorOverlap then mathparameters.MinConnectorOverlap = undefined end
+ if not mathparameters.SubscriptShiftDownWithSuperscript then mathparameters.SubscriptShiftDownWithSuperscript = mathparameters.SubscriptShiftDown * 1.5 end
+ -- if not mathparameters.FractionDelimiterSize then mathparameters.FractionDelimiterSize = undefined end
+ -- if not mathparameters.FractionDelimiterDisplayStyleSize then mathparameters.FractionDelimiterDisplayStyleSize = undefined end
+ -- if not mathparameters.SkewedDelimiterTolerance then mathparameters.SkewedDelimiterTolerance = undefined end
+ -- some more can be undefined:
+ if not mathparameters.PrimeRaisePercent then mathparameters.PrimeRaisePercent = 0 end
+ if not mathparameters.PrimeRaiseComposedPercent then mathparameters.PrimeRaiseComposedPercent = 0 end
+ if not mathparameters.PrimeShiftUp then mathparameters.PrimeShiftUp = mathparameters.SuperscriptShiftUp end
+ if not mathparameters.PrimeBaselineDropMax then mathparameters.PrimeBaselineDropMax = mathparameters.SuperscriptBaselineDropMax end
+ if not mathparameters.PrimeShiftUpCramped then mathparameters.PrimeShiftUpCramped = mathparameters.SuperscriptShiftUpCramped end
+ if not mathparameters.PrimeSpaceAfter then mathparameters.PrimeSpaceAfter = 0 end
+ if not mathparameters.PrimeWidthPercent then mathparameters.PrimeWidthPercent = 50 end
+ if not mathparameters.SpaceBeforeScript then mathparameters.SpaceBeforeScript = mathparameters.SpaceAfterScript end
+ if not mathparameters.NoLimitSupFactor then mathparameters.NoLimitSupFactor = 0 end
+ if not mathparameters.NoLimitSubFactor then mathparameters.NoLimitSubFactor = 0 end
+ if not mathparameters.AccentTopShiftUp then mathparameters.AccentTopShiftUp = 0 end
+ if not mathparameters.AccentBottomShiftDown then mathparameters.AccentBottomShiftDown = 0 end
+ if not mathparameters.FlattenedAccentTopShiftUp then mathparameters.AccentTopShiftUp = 0 end
+ if not mathparameters.FlattenedAccentBottomShiftDown then mathparameters.AccentBottomShiftDown = 0 end
+ if not mathparameters.AccentBaseDepth then mathparameters.AccentBaseDepth = 0 end
+ if not mathparameters.AccentFlattenedBaseDepth then mathparameters.AccentFlattenedBaseDepth = 0 end
+ if not mathparameters.AccentTopOvershoot then mathparameters.AccentTopOvershoot = 0 end
+ if not mathparameters.AccentBottomOvershoot then mathparameters.AccentBottomOvershoot = 0 end
+ if not mathparameters.AccentSuperscriptDrop then mathparameters.AccentSuperscriptDrop = 0 end
+ if not mathparameters.AccentSuperscriptPercent then mathparameters.AccentSuperscriptPercent = 0 end
+ if not mathparameters.AccentExtendMargin then mathparameters.AccentExtendMargin = 50 end
+ if not mathparameters.DelimiterPercent then mathparameters.DelimiterPercent = 100 end
+ if not mathparameters.DelimiterShortfall then mathparameters.DelimiterShortfall = 0 end
+ if not mathparameters.RadicalKernAfterExtensible then mathparameters.RadicalKernAfterExtensible = 0 end
+ if not mathparameters.RadicalKernBeforeExtensible then mathparameters.RadicalKernBeforeExtensible = 0 end
+ --
target.mathparameters = mathparameters
end
end
@@ -74,182 +140,3651 @@ local how = {
RadicalDegreeBottomRaisePercent = "unscaled",
NoLimitSupFactor = "unscaled",
NoLimitSubFactor = "unscaled",
+ PrimeRaisePercent = "unscaled",
+ PrimeRaiseComposedPercent = "unscaled",
+ PrimeWidthPercent = "unscaled",
+ AccentTopOvershoot = "unscaled",
+ AccentBottomOvershoot = "unscaled",
+ AccentSuperscriptPercent = "unscaled",
+ DelimiterPercent = "unscaled",
+ --
+ RadicalRuleThickness = "vertical",
+ OverbarRuleThickness = "vertical",
+ FractionRuleThickness = "vertical",
+ UnderbarRuleThickness = "vertical",
}
+local function scaleparameters(mathparameters,parameters)
+ if mathparameters and next(mathparameters) and parameters then
+ local factor = parameters.factor
+ local hfactor = parameters.hfactor
+ local vfactor = parameters.vfactor
+ for name, value in next, mathparameters do
+ local h = how[name]
+ if h == "unscaled" then
+ -- kept
+ elseif h == "horizontal" then
+ value = value * hfactor
+ elseif h == "vertical" then
+ value = value * vfactor
+ else
+ value = value * factor
+ end
+ mathparameters[name] = value
+ end
+ end
+end
+
function mathematics.scaleparameters(target,original)
if not target.properties.math_is_scaled then
+ scaleparameters(target.mathparameters,target.parameters)
+ target.properties.math_is_scaled = true
+ end
+end
+
+-- AccentBaseHeight vs FlattenedAccentBaseHeight
+
+-- function mathematics.checkaccentbaseheight(target,original)
+-- local mathparameters = target.mathparameters
+-- if mathparameters and mathparameters.AccentBaseHeight == 0 then
+-- if trace_defining then
+-- report_math("zero AccentBaseHeight corrected %a @ %p",target.properties.fullname,target.parameters.size)
+-- end
+-- mathparameters.AccentBaseHeight = target.parameters.xheight -- needs checking
+-- end
+-- end
+
+function mathematics.overloadparameters(target,original)
+ if use_math_goodies then
local mathparameters = target.mathparameters
if mathparameters and next(mathparameters) then
- local parameters = target.parameters
- local factor = parameters.factor
- local hfactor = parameters.hfactor
- local vfactor = parameters.vfactor
- for name, value in next, mathparameters do
- local h = how[name]
- if h == "unscaled" then
- -- kept
- elseif h == "horizontal" then
- value = value * hfactor
- elseif h == "vertical"then
- value = value * vfactor
- else
- value = value * factor
+ local goodies = target.goodies
+ if goodies then
+ for i=1,#goodies do
+ local goodie = goodies[i]
+ local mathematics = goodie.mathematics
+ if mathematics then
+ local parameters = mathematics.parameters
+ local bigslots = mathematics.bigslots or mathematics.bigs
+ if parameters then
+ if trace_defining then
+ report_math("overloading math parameters in %a @ %p",target.properties.fullname,target.parameters.size)
+ end
+ for name, value in next, parameters do
+ local tvalue = type(value)
+ local oldvalue = mathparameters[name]
+ local newvalue = oldvalue
+ if tvalue == "number" then
+ newvalue = value
+ elseif tvalue == "string" then
+ -- delay till all set
+ elseif tvalue == "function" then
+ newvalue = value(oldvalue,target,original)
+ elseif not tvalue then
+ newvalue = nil
+ end
+ if trace_defining and oldvalue ~= newvalue then
+ report_math("overloading math parameter %a: %S => %S",name,oldvalue or 0,newvalue)
+ end
+ mathparameters[name] = newvalue
+ end
+ for name, value in next, parameters do
+ local tvalue = type(value)
+ if tvalue == "string" then
+ local newvalue = mathparameters[value]
+ if not newvalue then
+ local code = loadstring("return " .. value,"","t",mathparameters)
+ if type(code) == "function" then
+ local okay, v = pcall(code)
+ if okay then
+ newvalue = v
+ end
+ end
+ end
+ if newvalue then
+ -- split in number and string
+ mathparameters[name] = newvalue
+ elseif trace_defining then
+ report_math("ignoring math parameter %a: %S",name,value)
+ end
+ end
+ end
+ end
+ if bigslots then
+ target.bigslots = bigslots
+ end
+ end
end
- mathparameters[name] = value
end
end
- target.properties.math_is_scaled = true
end
end
--- AccentBaseHeight vs FlattenedAccentBaseHeight
+-- a couple of predefined tweaks:
-function mathematics.checkaccentbaseheight(target,original)
- local mathparameters = target.mathparameters
- if mathparameters and mathparameters.AccentBaseHeight == 0 then
- mathparameters.AccentBaseHeight = target.parameters.x_height -- needs checking
+local datasets = { }
+local mathtweaks = { datasets = datasets }
+mathematics.tweaks = mathtweaks
+
+-- can be a common helper:
+
+local f_u = formatters["%U"]
+
+local function unicodecharlist(t)
+ local r = { }
+ local n = 0
+ for u in sortedhash(t) do
+ n = n + 1 ; r[n] = f_u(u)
end
+ return concat(r," ")
end
-function mathematics.checkprivateparameters(target,original)
- local mathparameters = target.mathparameters
- if mathparameters then
+local function report_tweak(fmt,target,original,...)
+ if fmt then
+ local metadata = (original and original.shared.rawdata.metadata) or
+ (target and target .shared.rawdata.metadata)
local parameters = target.parameters
- local properties = target.properties
if parameters then
- local size = parameters.size
- if size then
- if not mathparameters.FractionDelimiterSize then
- mathparameters.FractionDelimiterSize = 1.01 * size
+ report_mathtweak(
+ "%a, size %P, math size %i, %s",
+ metadata and metadata.fontname or "unknown",
+ parameters.size or 655360,
+ parameters.mathsize or 1,
+ string.formatters[fmt](...)
+ )
+ else
+ print("something is wrong")
+ end
+ else
+ report_mathtweak("")
+ end
+end
+
+local function feedback_tweak(tweak,target,original,done)
+ if not done or (type(done) == "table" and not next(done)) then
+if trace_tweaking then -- for now
+ report_tweak("no need for %a",target,original,tweak)
+end
+ elseif trace_tweaking then
+ report_tweak("tweak %a applied to: %s",target,original,tweak,unicodecharlist(done))
+ end
+end
+
+mathtweaks.subsets = {
+ acenorsuvxz = { 0x1D44E, 0x1D450, 0x1D452, 0x1D45B, 0x1D45C, 0x1D45F, 0x1D460, 0x1D462, 0x1D463, 0x1D465, 0x1D467 },
+ bhklt = { 0x1D44F, 0x1D455, 0x1D458, 0x1D459, 0x1D461 },
+ d = { 0x1D451 },
+ f = { 0x1D453 },
+ gjqy = { 0x1D454, 0x1D457, 0x1D45E, 0x1D466 },
+ i = { 0x1D456 },
+ mw = { 0x1D45A, 0x1D464 },
+ p = { 0x1D45D },
+ dotless = { 0x00049, 0x0004A, 0x00131, 0x00237, 0x1D6A4, 0x1D6A5 },
+ integrals = { 0x0222B, 0x0222C, 0x0222D, 0x0222E, 0x0222F, 0x02230, 0x02231, 0x02232, 0x02233, 0x02A0B, 0x02A0C, 0x02A0D, 0x02A0E, 0x02A0F, 0x02A10, 0x02A11, 0x02A12, 0x02A13, 0x02A14, 0x02A15, 0x02A16, 0x02A17, 0x02A18, 0x02A19, 0x02A1A, 0x02A1B, 0x02A1C, 0x02320, 0x02321 },
+ horizontalfences = { 0x0203E, 0x023B4, 0x023B5, 0x023DC, 0x023DD, 0x023DE, 0x023DF, 0x023E0, 0x023E1 }, -- not really used
+}
+
+local function getalso(target,original)
+ local also = target.tweakalso -- maybe
+ if not also then
+ also = { }
+ -- for k, v in sortedhash(target.characters) do
+ for k, v in next, target.characters do
+ local u = v.unicode
+ if u and k ~= u then
+ local a = also[u]
+ if a then
+ a[#a+1] = k
+ else
+ also[u] = { k }
+ end
+ end
+ end
+ target.tweakalso = also
+ end
+ return also
+end
+
+-- {
+-- tweak = "dimensions",
+-- list = {
+-- ["lowercasegreeksansserifbolditalic"] = {
+-- -- delta = 0x003B1 - 0x1D7AA,
+-- slant = -0.2,
+-- line = 0.1,
+-- mode = 1,
+-- width = 0.675,
+-- -- scale = 0.975,
+-- squeeze = 0.975,
+-- extend = .7,
+-- },
+-- },
+-- },
+
+ -- ["0x7C.variants.*"] = { squeeze = 0.10, height = 0.10, depth = 0.10 },
+
+local detail do
+
+ local splitter = lpeg.tsplitat(".")
+
+ detail = function(characters,k)
+ if type(k) == "string" then
+ local t = lpegmatch(splitter,k)
+ local n = #t
+ if n > 0 then
+ local base = tonumber(t[1]) or tonumber(t[1],16)
+ if base then
+ local c = characters[base]
+ if c and n > 1 then
+ local list = t[2]
+ if list == "parts" then
+ local nxt = c.next
+ while nxt do
+ c = characters[nxt]
+ nxt = c.next
+ end
+ c = c.parts
+ if c then
+ local index = t[3]
+ if index == "*" then
+ return t
+ else
+ if index == "top" then
+ index = #c
+ elseif index == "bottom" then
+ index = 1
+ else
+ index = tonumber(index)
+ end
+ if index then
+ c = c[index]
+ if c then
+ return c.glyph
+ end
+ end
+ end
+ end
+ elseif list == "variants" then
+ local index = t[3]
+ if index == "*" then
+ local t = { }
+ local nxt = c.next
+ while nxt do
+ t[#t+1] = nxt
+ c = characters[nxt]
+ nxt = c.next
+ end
+ return t
+ else
+ index = tonumber(index)
+ if index then
+ local nxt = c.next
+ while nxt and index > 1 do
+ c = characters[nxt]
+ nxt = c.next
+ index = index - 1
+ end
+ return nxt
+ end
+ end
+ end
+ end
+ end
+ end
+ else
+ return k
+ end
+ end
+
+end
+
+-- This temporary tweak was used when we (MS & HH) were fixing the Latin Modern
+-- parameters that relate to script placement. We started from the original cmr
+-- ratios combined with the formal specification and ended up with the following
+-- values. In the end we rejected this tweak and setteled for checking and fixing:
+--
+-- SubscriptShiftDown
+-- SubscriptShiftDownWithSuperscript
+-- SuperscriptShiftUp
+-- SuperscriptShiftUpCramped
+--
+-- because it looks a bit arbitrary what values are set. We keep the code below
+-- as documentation.
+
+-- do
+-- -- modern
+-- --
+-- -- local factors = {
+-- -- scripts = {
+-- -- SubscriptBaselineDropMin = 0.116,
+-- -- SubscriptShiftDown = 0.348,
+-- -- SubscriptShiftDownWithSuperscript = 0.573,
+-- -- SubscriptTopMax = 0.800,
+-- -- SuperscriptBaselineDropMax = 0.896,
+-- -- SuperscriptBottomMaxWithSubscript = 0.800,
+-- -- SuperscriptBottomMin = 0.250,
+-- -- SuperscriptShiftUp = 0.958,
+-- -- SuperscriptShiftUpCramped = 0.958,
+-- -- }
+-- -- }
+--
+-- -- -- cambria
+-- --
+-- -- local factors = {
+-- -- scripts = {
+-- -- SubscriptBaselineDropMin = 0.279,
+-- -- SubscriptShiftDown = 0.364,
+-- -- SubscriptShiftDownWithSuperscript = 0.547,
+-- -- SubscriptTopMax = 0.662,
+-- -- SuperscriptBaselineDropMax = 0.401,
+-- -- SuperscriptBottomMaxWithSubscript = 0.667,
+-- -- SuperscriptBottomMin = 0.208,
+-- -- SuperscriptShiftUp = 0.654,
+-- -- SuperscriptShiftUpCramped = 0.654,
+-- -- }
+-- -- }
+--
+-- -- after some tests and inspection
+-- --
+--
+-- local factors = {
+-- scripts = {
+-- SubscriptBaselineDropMin = 0.100, -- harmless but small (seldom triggered)
+-- SubscriptShiftDown = 0.400, -- by inspection in several files
+-- SubscriptShiftDownWithSuperscript = 0.400, -- as above
+-- SubscriptTopMax = 0.800, -- Microsoft recommendation
+-- SuperscriptBaselineDropMax = 0.100, -- see SubscriptBaselineDropMin
+-- SuperscriptBottomMaxWithSubscript = 0.800, -- Microsoft recommendation
+-- SuperscriptBottomMin = 0.250, -- Microsoft recommendation
+-- SuperscriptShiftUp = 0.650, -- by inspection, but also a bit gamble
+-- SuperscriptShiftUpCramped = 0.650, -- see above, non-TeX
+-- }
+-- }
+--
+-- datasets.fixparameters = factors
+--
+-- function mathtweaks.fixparameters(target,original,parameters)
+-- local mathparameters = target.mathparameters
+-- if mathparameters and next(mathparameters) then
+-- local xheight = target.parameters.xheight
+-- -- todo : options
+-- for k, v in next, factors.scripts do
+-- mathparameters[k] = v * xheight
+-- end
+-- end
+-- end
+--
+-- end
+
+do
+
+ local stepper = utilities.parsers.stepper
+ local count = 0
+ local toeffect = fonts.toeffect
+ local privateslot = fonts.helpers.privateslot
+
+ local function adapt(list,target,original,targetcharacters,originalcharacters,k,v,compact,n)
+ k = mathgaps[k] or k
+ local character = targetcharacters[k]
+ if character then
+-- if not character.tweaked then -- todo: add a force
+ local t = type(v)
+ if t == "number" then
+ v = list[v]
+ t = type(v)
+ end
+ if t == "table" and next(v) then
+
+ local axis = tonumber(v.axis)
+ if axis then
+ axis = target.mathparameters.AxisHeight * axis
+ end
+
+ local factor = v.factor
+ if factor then
+ local m = v
+ v = setmetatableindex({
+ width = factor,
+ height = factor,
+ depth = factor,
+ squeeze = factor,
+ extend = factor,
+ }, v)
+ end
+ local originalslot = v.original
+ if not originalslot then
+ local delta = v.delta
+ if delta then
+ originalslot = k + delta
+ end
+ end
+ if originalslot then
+ originalslot = mathgaps[originalslot] or originalslot
+ local data = targetcharacters[originalslot]
+ if data then
+ data = copytable(data)
+ data.unicode = originalslot
+ targetcharacters[k] = data
+ character = data
+ else
+ report_mathtweak("no slot %U",originalslot)
+ return
+ end
+ end
+ --
+ local width = character.width
+ local height = character.height
+ local depth = character.depth
+ local italic = character.italic
+ local topanchor = character.topanchor
+ local bottomanchor = character.bottomanchor
+ --
+ local widthfactor = v.width
+ local heightfactor = v.height
+ local depthfactor = v.depth
+ local italicfactor = v.italic
+ local anchorfactor = v.anchor
+ local advancefactor = v.advance
+ local xoffsetfactor = v.xoffset
+ local yoffsetfactor = v.yoffset
+ local scalefactor = v.scale
+ local total = (height or 0) + (depth or 0)
+ if scalefactor ~= 1 then
+ character.scale = scalefactor
+ end
+ if width and width ~= 0 then
+ if advancefactor then
+ character.advance = advancefactor * width
+ else
+ character.advance = character.advance or width -- so advance is oldwidth
+ end
+ if widthfactor then
+ character.width = widthfactor * width
+ end
+ if xoffsetfactor then
+ character.xoffset = xoffsetfactor * width
+ end
+ end
+ if height and height ~= 0 then
+ if heightfactor then
+ character.height = heightfactor * height
+ end
+ end
+ if depth and depthfactor then
+ character.depth = depthfactor * depth
+ end
+ if yoffsetfactor then
+ character.yoffset = yoffsetfactor * total
+ end
+
+ if axis then
+ character.height = (character.height or 0) - axis
+ character.depth = (character.depth or 0) + axis
+ character.yoffset = (character.yoffset or 0) + axis
+ end
+
+ if italicfactor then
+ if italic then
+ character.italic = italicfactor * italic
+ elseif width and italicfactor ~= 1 then
+ character.italic = italicfactor * width
+ end
+ end
+ if anchorfactor then
+ character.topanchor = anchorfactor * (topanchor or width)
+ end
+-- if anchorfactor then
+-- character.bottomaccent = anchorfactor * (bottomanchor or width)
+-- end
+ -- begin experiment
+ local line = v.wline
+ if line then
+ local parameters = target.parameters
+ v.line = parameters.hfactor * line / parameters.units
+ end
+ -- end experiment
+ character.effect = toeffect(v) -- todo: move wline test inside here
+ -- begin experiment
+ v.line = line
+ -- end experiment
+ if trace_tweaking then
+ report_tweak("adapting dimensions of %U ",target,original,k)
+ end
+ -- missing when private
+ local originaldata = originalcharacters[k] -- or targetcharacters[k]
+ local smaller = originaldata and originaldata.smaller
+ if compact and smaller and smaller ~= k then
+ adapt(list,target,original,targetcharacters,originalcharacters,smaller,v,compact,n+1)
+ end
+ count = count + 1
+ else
+ report_mathtweak("invalid dimension entry %U",k)
+ end
+-- character.tweaked = true
+ if v.all then
+ local nxt = character.next
+ if nxt then
+ adapt(list,target,original,targetcharacters,originalcharacters,nxt,v,compact,n)
+ else
+ local parts = character.parts
+ if parts then
+ for i=1,#parts do
+ adapt(list,target,original,targetcharacters,originalcharacters,parts[i],v,compact,n)
+ end
+ end
+ end
+ end
+-- end
+ else
+ report_tweak("no character %U",target,original,k)
+ end
+ end
+
+ function mathtweaks.dimensions(target,original,parameters)
+ local list = parameters.list
+ if list then
+ local targetcharacters = target.characters
+ local originalcharacters = original.characters
+ local compact = target.parameters.textscale and true or false
+ count = 0
+ for k, v in sortedhash(list) do
+ local t = type(k)
+ if t == "number" then
+ adapt(list,target,original,targetcharacters,originalcharacters,k,v,compact,1)
+ elseif t == "string" then
+ local d = privateslot(k) or detail(targetcharacters,k) -- watch the private here
+ local t = type(d)
+ if t == "table" then
+ for i=1,#d do
+ adapt(list,target,original,targetcharacters,originalcharacters,d[i],v,compact,1)
+ end
+ elseif t == "number" then
+ adapt(list,target,original,targetcharacters,originalcharacters,d,v,compact,1)
+ elseif d then
+ -- some kind of error
+ else
+ local r = blocks[k]
+ if r then
+ local done = false
+ for i=r.first,r.last do
+ adapt(list,target,original,targetcharacters,originalcharacters,i,v,compact,1)
+ end
+ else
+ stepper(k,function(n)
+ adapt(list,target,original,targetcharacters,originalcharacters,n,v,compact,1)
+ end)
+ end
+ end
+ -- elseif t == "table" then
+ -- for i=1,#t do
+ -- adapt(list,target,original,targetcharacters,originalcharacters,t[i],v,compact,1)
+ -- end
+ end
+ end
+ if trace_tweaking and count > 0 then
+ report_mathtweak("%i dimensions adapted",count)
+ end
+ end
+ end
+
+end
+
+do
+
+ function mathtweaks.message(target,original,parameters)
+ report_mathtweak(parameters.text or "no message")
+ end
+
+ function mathtweaks.showinfo(target,original,parameters)
+ local mathparameters = target.mathparameters
+ for k, v in sortedhash(mathparameters) do
+ report_mathtweak("%s : %s",k,v)
+ end
+ end
+
+end
+
+
+do
+
+ function mathtweaks.wipevariants(target,original,parameters)
+ local list = parameters.list
+ if list then
+ local targetcharacters = target.characters
+ -- local originalcharacters = original.characters
+ local count = 0
+ -- local also = getalso(target,original)
+ local done = false
+ for k, v in sortedhash(list) do
+ local ori = targetcharacters[k]
+ local nxt = ori.next
+ local cnt = v
+ if nxt then
+ local prt = nil
+ local lst = { }
+ while nxt do
+ local chr = targetcharacters[nxt]
+ lst[#lst+1] = chr
+ nxt = chr.next
+ if not nxt then
+ prt = chr.parts
+ break
+ end
+ end
+ if prt then
+ count = count + 1
+ if cnt ~= "*" then
+ if #lst < cnt then
+ cnt = #lst
+ end
+ ori = lst[cnt]
+ end
+ ori.parts = prt
+ end
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[k] = true
+ else
+ done = { [k] = true }
+ end
+ end
+ end
+ feedback_tweak("wipevariants",target,original,done)
+ end
+ end
+
+end
+
+do
+
+ function mathtweaks.replace(target,original,parameters)
+ local list = parameters.list
+ if list then
+ local targetcharacters = target.characters
+ local originalcharacters = original.characters
+ local unicodes = original.resources.unicodes
+ if unicodes then
+ local count = 0
+ for k, v in sortedhash(list) do
+ if type(v) == "string" then
+ v = unicodes[v]
+ end
+ if type(v) == "number" then
+ targetcharacters[mathgaps[k] or k] = targetcharacters[mathgaps[v] or v]
+ count = count + 1
+ end
+ end
+ if trace_tweaking and count > 0 then
+ report_tweak("%i permanent replacements",target,original,count)
+ end
+ end
+ end
+ end
+
+ function mathtweaks.substitute(target,original,parameters)
+ local list = parameters.list
+ if list then
+ local targetcharacters = target.characters
+ local originalcharacters = original.characters
+ local getsubstitution = fonts.handlers.otf.getsubstitution
+ local count = 0
+ for k, v in next, list do -- no need for sortedhash(list) unless we report
+ local sub = getsubstitution(original,k,v,true)
+ if sub then
+ targetcharacters[mathgaps[k] or k] = targetcharacters[mathgaps[sub] or sub]
+ count = count + 1
+ end
+ end
+ if trace_tweaking and count > 0 then
+ report_tweak("%i permanent substitutions",target,original,count)
+ end
+ end
+ end
+
+end
+
+do
+
+ -- maybe we'll have a different name
+
+ function mathtweaks.kernpairs(target,original,parameters)
+ local list = parameters.list
+ if list then
+ local targetcharacters = target.characters
+ local originalcharacters = original.characters
+ local done = false
+
+ local function add(v,n)
+ local chardata = targetcharacters[mathgaps[n] or n]
+ if chardata then
+ local width = chardata.width
+ if width then
+ local kerns = chardata.kerns or { }
+ for kk, vv in next, v do
+-- for kk, vv in sortedhash(v) do
+ stepper(kk,function(nn) -- todo: also make stepper accept a table
+ local t = mathgaps[nn] or nn
+ if t then
+ kerns[t] = vv * width
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[t] = true
+ else
+ done = { [t] = true }
+ end
+ end
+ end)
+ end
+ chardata.kerns = kerns
+ end
+ end
+ end
+
+ for k, v in next, list do -- no need for sortedhash(list) unless we report
+ stepper(k,function(n) -- todo: also make stepper accept a table
+ add(v,n)
+ end)
+ end
+
+-- for k, v in next, list do -- no need for sortedhash(list) unless we report
+-- local chardata = targetcharacters[mathgaps[k] or k]
+-- if chardata then
+-- local width = chardata.width
+-- if width then
+-- local kerns = chardata.kerns or { }
+-- for kk, vv in next, v do
+-- local t = mathgaps[kk] or kk
+-- if t then
+-- kerns[t] = vv * width
+-- count = count + 1
+-- end
+-- end
+-- chardata.kerns = kerns
+-- end
+-- end
+-- end
+
+ feedback_tweak("kernpairs",target,original,done)
+ end
+ end
+
+end
+
+do
+
+ local nps = fonts.helpers.newprivateslot
+
+ local list = {
+ { 0x2032, nps("delimited ghost 0x2032"), 1 },
+ { 0x2033, nps("delimited ghost 0x2033"), 2, 0x2032 },
+ { 0x2034, nps("delimited ghost 0x2034"), 3, 0x2032 },
+ { 0x2057, nps("delimited ghost 0x2057"), 4, 0x2032 },
+ { 0x2035, nps("delimited ghost 0x2035"), 1 },
+ { 0x2036, nps("delimited ghost 0x2036"), 2, 0x2035 },
+ { 0x2037, nps("delimited ghost 0x2037"), 3, 0x2035 },
+ }
+
+ datasets.fixprimes = list
+
+ function mathtweaks.fixprimes(target,original,parameters)
+ local targetcharacters = target.characters
+ local factor = parameters.factor or 1
+ local fake = tonumber(parameters.fake)
+ for i=1,#list do
+ local entry = list[i]
+ local unicode = entry[1]
+ local count = entry[3]
+ local used = fonts.handlers.otf.getsubstitution(target,unicode,"ssty",true,"math","dflt") or unicode
+ local data = targetcharacters[used]
+ if data then
+ targetcharacters[unicode] = data
+ local oldheight = data.height or 0
+ local newheight = factor * oldheight
+ data.yoffset = newheight - (oldheight or 0)
+ data.height = newheight
+ data.smaller = nil
+ elseif not fake then
+ report_tweak("missing %i prime %U",target,original,count,unicode)
+ end
+ end
+ if fake then
+ for i=1,#list do
+ local entry = list[i]
+ local count = entry[3]
+ if count > 1 then
+ local unicode = entry[1]
+ local original = entry[4]
+ local data = targetcharacters[original]
+ if data then
+ local oldwidth = data.width
+ local xoffset = fake * oldwidth
+ local newwidth = oldwidth + (count - 1) * xoffset
+ targetcharacters[unicode] = {
+ width = newwidth,
+ height = data.height,
+ unicode = unicode,
+ commands = {
+ { "offset", 0, 0, original },
+ { "offset", xoffset, 0, original },
+ count > 2 and { "offset", 2 * xoffset, 0, original } or nil,
+ count > 3 and { "offset", 3 * xoffset, 0, original } or nil,
+ },
+ }
+ end
+ end
+ end
+ end
+ end
+
+ function mathtweaks.addprimed(target,original,parameters)
+ local characters = target.characters
+ for i=1,#list do
+ local entry = list[i]
+ local basecode = entry[1]
+ local movecode = entry[2]
+ local basedata = characters[basecode]
+ if basedata then
+ local baseheight = basedata.height or 0
+ local basewidth = basedata.width or 0
+ local used = baseheight
+ local total = baseheight
+ characters[movecode] = { -- todo:share
+ width = basewidth,
+ height = used,
+ unicode = basecode, -- 0xFFFD or space or so
+ -- callback = "devirtualize",
+ commands = {
+ downcommand[used],
+ { "rule", used, 0 },
+ },
+ }
+ basedata.partsorientation = "vertical"
+ basedata.parts = {
+ {
+ advance = used,
+ ["end"] = used,
+ extender = 1,
+ glyph = movecode,
+ start = used,
+ },
+ {
+ advance = total,
+ ["end"] = 0,
+ glyph = basecode,
+ start = total,
+ },
+ }
+ if trace_tweaking then
+ report_tweak("primed %U added",target,original,basecode)
+ end
+ end
+ end
+ end
+
+end
+
+do
+
+ local nps = fonts.helpers.newprivateslot
+
+ local privates = {
+ [0x2212] = nps("unary minus"),
+ [0x002B] = nps("unary plus"),
+ [0x00B1] = nps("unary plus minus"),
+ [0x2213] = nps("unary minus plus"),
+ }
+
+ -- these are the values tested with texgyre-bonum
+
+ local predefined = {
+ ["unary minus"] = {
+ original = 0x2212,
+ extend = .5,
+ width = .5,
+ unicode = 0x002D, -- hyphen minus
+ },
+ ["unary plus"] = {
+ original = 0x002B,
+ extend = .5,
+ squeeze = .5,
+ width = .5,
+ height = .5,
+ yoffset = .2,
+ mode = 2,
+ wline = .5,
+ unicode = 0x002B,
+ },
+ ["unary plus minus"] = {
+ original = 0x00B1,
+ extend = .5,
+ squeeze = .5,
+ width = .5,
+ height = .5,
+ yoffset = .2,
+ mode = 2,
+ wline = .5,
+ },
+ ["unary minus plus"] = {
+ original = 0x2213,
+ extend = .5,
+ squeeze = .5,
+ width = .5,
+ height = .5,
+ yoffset = .2,
+ mode = 2,
+ wline = .5,
+ },
+ }
+
+ -- {
+ -- tweak = "addprivates",
+ -- list = {
+ -- -- for specific parameters see act file
+ -- ["unary minus"] = { preset = "unary minus" },
+ -- ["unary plus"] = { preset = "unary plus" },
+ -- ["unary plus minus"] = { preset = "unary plus minus" },
+ -- ["unary minus plus"] = { preset = "unary minus plus" },
+ -- },
+ -- },
+
+ function mathtweaks.addprivates(target,original,parameters)
+ local list = parameters.list or predefined
+ if list then
+ local targetcharacters = target.characters
+ local targetparameters = target.parameters
+ local originalcharacters = original.characters
+ local processedprivates = { }
+ for name, v in sortedhash(list) do
+ if type(v) == "table" then
+ local preset = v.preset
+ if preset then
+ local p = predefined[preset]
+ if p then
+ v = table.combine(p,v)
+ p.preset = nil
+ else
+ goto next
+ end
+ end
+ local charslot = v.original
+ if charslot then
+ local chardata = targetcharacters[charslot]
+ if chardata then
+ local clonedata = copytable(chardata)
+ local cloneslot = nps(name)
+ local unicode = v.unicode or clonedata.unicode
+ clonedata.uncode = unicode
+ targetcharacters[cloneslot] = clonedata
+ if trace_tweaking then
+ report_tweak("cloning %a from %C into %U with tounicode %U",target,original,name,charslot,cloneslot,unicode)
+ end
+ end
+ processedprivates[name] = v
+ end
+ ::next::
+ end
+ end
+ mathtweaks.dimensions(target,original,{
+ tweak = parameters.tweak,
+ list = processedprivates,
+ })
+ end
+ end
+
+end
+
+-- do
+--
+-- function mathtweaks.fixanchors(target,original,parameters)
+-- local targetcharacters= target.characters
+-- local factor = tonumber(parameters.factor) or 0
+-- if factor ~= 0 then
+-- local done = false
+-- for k, v in next, targetcharacters do
+-- local a = v.topanchor
+-- if a and a > 0 then
+-- v.topanchor = a * factor
+-- count = count + 1
+-- if not trace_tweaking then
+-- done = true
+-- elseif done then
+-- done[u] = true
+-- else
+-- done = { [u] = true }
+-- end
+-- end
+-- end
+-- end
+-- feedback_tweak("fixanchors",target,original,done)
+-- end
+--
+-- end
+
+-- do
+--
+-- -- actually this should be a an engine feature driven by category because we don't
+-- -- want this in display mode .. only a test for MS and HH
+--
+-- local issymbol = characters.is_symbol
+--
+-- function mathtweaks.oldstylemath(target,original,parameters)
+-- local chardata = characters.data
+-- local characters = target.characters
+-- local axis = target.mathparameters.AxisHeight
+-- local delta = (parameters.factor or .1) * axis
+-- target.mathparameters.AxisHeight = (axis - delta)
+-- for k, v in sortedhash(characters) do
+-- if issymbol[k] then -- quick hack, engine knows
+-- v.yoffset = -delta
+-- v.height = (v.height or 0) - delta
+-- v.depth = (v.depth or 0) - delta
+-- end
+-- end
+-- end
+--
+-- function mathtweaks.oldstylemath(target,original,parameters)
+-- -- not relevant
+-- end
+--
+-- end
+
+do
+
+ function mathtweaks.simplifykerns(target,original,parameters)
+ local characters = target.characters
+ local done = false
+ -- for u, v in sortedhash(characters) do
+ for u, v in next, characters do
+ local mathkerns = v.mathkerns
+ if mathkerns then
+ local k = mathkerns.topleft
+ if k then
+ k = k[#k].kern
+ if k then
+ v.topleft = k
+ end
+ end
+ local k = mathkerns.topright
+ if k then
+ k = k[#k].kern
+ if k then
+ v.topright = k
+ end
+ end
+ local k = mathkerns.bottomleft
+ if k then
+ k = k[1].kern -- todo get value at baseline
+ if k then
+ v.bottomleft = k
+ end
+ end
+ local k = mathkerns.bottomright
+ if k then
+ k = k[1].kern -- todo get value at baseline
+ if k then
+ v.bottomright = k
+ end
+ end
+ v.mathkerns = nil
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[u] = true
+ else
+ done = { [u] = true }
+ end
+ end
+ end
+ feedback_tweak("simplifykerns",target,original,done)
+ end
+
+end
+
+do
+
+ local function wipe(whatever,target,original,parameters,field,move,integrals)
+ local targetcharacters = target.characters
+ local targetdescriptions = target.descriptions
+ local factor = target.parameters.factor
+ local correct = parameters.correct
+ local done = false
+ local function getllx(u)
+ local d = targetdescriptions[u]
+ if d then
+ local b = d.boundingbox
+ if b then
+ local llx = b[1]
+ if llx < 0 then
+ return - llx
+ end
+ end
+ end
+ return false
+ end
+ local function step(s)
+ while s do
+ local u = mathgaps[s] or s
+ local c = targetcharacters[u]
+ if c then
+ if field == "topanchor" then
+ if c.topanchor then
+ c.topanchor = nil
+ else
+ goto smaller
+ end
+ else
+ local okay = false
+ local italic = c.italic
+ if move and not c.advance then -- advance check prevents double move
+ local width = c.width or 0
+ c.advance = width
+ if correct then
+ local llx = getllx(u)
+ if llx then
+ local topanchor = c.topanchor
+ llx = llx * factor
+ width = width + llx
+ c.xoffset = llx
+ if topanchor then
+ c.topanchor = topanchor + llx
+ end
+ -- too bad (schola e^x):
+ -- c.bottomleft = (c.bottomleft or 0) - llx
+ -- c.topleft = (c.topleft or 0) - llx
+ okay = true
+ end
+ end
+ if italic and italic ~= 0 then
+ c.width = width + italic
+ c.bottomright = - italic
+ okay = true
+ else
+ c.width = width
+ end
+ end
+ if italic then
+ c.italic = nil
+ okay = true
+ end
+ if okay then
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[u] = true
+ else
+ done = { [u] = true }
+ end
+ else
+ goto smaller
+ end
+ end
+ goto smaller
+ ::smaller::
+ s = c.smaller
+ ::variants::
+ -- no italics here anyway but we could check them some day
+ else
+ break
+ end
+ end
+ end
+ local list = parameters.list -- todo: ranges
+ if list == "letters" or parameters.letters then
+ local chardata = characters.data
+ -- for k, v in sortedhash(targetcharacters) do
+ for k, v in next, targetcharacters do
+ if v.italic then
+ local d = chardata[v.unicode]
+ local c = d and d.category
+ if c == "ll" or c == "lu" then
+ step(k)
+ end
+ end
+ end
+ return
+ elseif not list or list == "all" or list == true or parameters.all then
+ list = sortedkeys(targetcharacters)
+ elseif type(list) == "string" then
+ list = { list }
+ end
+ for i=1,#list do
+ local l = list[i]
+ local t = type(l)
+ if not l then
+ -- can be false
+ elseif t == "table" then
+ for i=1,#l do
+ step(l[i])
+ end
+ elseif t == "number" then
+ step(l)
+ else
+ local r = blocks[l]
+ if r then
+ for i=r.first,r.last do
+ step(i)
+ end
+ else
+ stepper(l,step)
+ end
+ end
+ end
+ feedback_tweak(whatever,target,original,done)
+ end
+
+ function mathtweaks.wipeanchors(target,original,parameters)
+ wipe("wipeanchors",target,original,parameters,"topanchor")
+ end
+
+ function mathtweaks.wipeitalics(target,original,parameters)
+ if not checkitalics then
+ wipe("wipeitalics",target,original,parameters,"italic")
+ end
+ end
+
+ function mathtweaks.moveitalics(target,original,parameters)
+ wipe("moveitalics",target,original,parameters,"italic",true)
+ end
+
+ -- function mathtweaks.fixdigits(target,original,parameters)
+ -- mathtweaks.fixanchors(target,original,{ list = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } })
+ -- end
+
+end
+
+do
+
+ function mathtweaks.topanchors(target,original,parameters)
+ local characters = target.characters
+ local list = parameters.list
+ if list then
+ local done = false
+ for u, v in sortedhash(list) do
+ local c = characters[k]
+ if c then
+ local w = c.width
+ if w and w ~= 0 then
+ c.topanchor = v * w
+ if trace_tweaking then
+ -- todo
+ end
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[u] = true
+ else
+ done = { [u] = true }
+ end
+ end
+ end
+ end
+ feedback_tweak("topanchors",target,original,done)
+ end
+ end
+
+ function mathtweaks.movelimits(target,original,parameters)
+ local characters = target.characters
+ local list = parameters.list
+ if list then
+ local factor = parameters.factor or 1
+ local also = getalso(target,original)
+ local done = { }
+ local function relocate(u,factor)
+ if done[u] then
+ return
+ end
+ done[u] = true
+ local c = characters[u]
+ if c then
+ local italic = c.italic
+ if italic then
+ if italic ~= 0 then
+ local width = c.width or 0
+ local half = (italic/2) * factor
+ c.topanchor = width + half
+ c.bottomanchor = width - half
+ c.bottomright = - italic * (parameters.icfactor or 1)
+ if trace_tweaking then
+ -- todo
+ end
+ end
+ c.italic = nil
+ end
+ local s = c.smaller
+ if s then
+ relocate(s,factor)
+ end
+ local n = c.next
+ if n then
+ relocate(n,factor)
+ end
+ -- Kind of tricky: we configure the engine to use the vitalic
+ -- so when we tweak we need to set that to zero.
+ local parts = c.parts
+ local italic = c.partsitalic
+ if parts and italic then
+ if italic ~= 0 then
+ local tchar = characters[parts[#parts].glyph]
+ local bchar = characters[parts[1].glyph]
+ local width = tchar.width or 0
+ local half = (italic/2) * factor
+ tchar.topanchor = width + half
+ bchar.bottomanchor = width - half
+ bchar.bottomright = - italic
+ if trace_tweaking then
+ -- todo
+ end
+ tchar.italic = nil
+ bchar.italic = nil
+ end
+ c.vitalic = nil
+ end
+ if also then
+ local a = also[u]
+ if a then
+ for i=1,#a do
+ relocate(a[i],factor)
+ end
+ end
+ end
+ end
+ end
+ if #list > 0 then
+ for i=1,#list do
+ relocate(list[i],factor)
+ end
+ else
+ for k, v in sortedhash(list) do
+ relocate(k,tonumber(v) or factor)
+ end
+ end
+ feedback_tweak("movelimits",target,original,done)
+ end
+ end
+
+end
+
+do
+
+ -- musical timestamp: March 2022, Antonio Sanches (Bad Hombre), live performance in NL
+
+ function mathtweaks.kerns(target,original,parameters)
+ local kerns = parameters.list
+ if kerns then
+ local characters = target.characters
+ local done = false
+ local function setone(uc,data)
+ local function set(unicode)
+ unicode = mathgaps[unicode] or unicode
+ local chardata = characters[unicode]
+ if chardata then
+ local width = chardata.width or 0
+ local k = data.topleft ; if k and k ~= 0 then chardata.topleft = k * width end
+ local k = data.topright ; if k and k ~= 0 then chardata.topright = k * width end
+ local k = data.bottomleft ; if k and k ~= 0 then chardata.bottomleft = k * width end
+ local k = data.bottomright ; if k and k ~= 0 then chardata.bottomright = k * width end
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[unicode] = true
+ else
+ done = { [unicode] = true }
+ end
+ end
+ end
+ local unicode = detail(characters,uc)
+ if type(unicode) == "table" then
+ for i=1,#unicode do
+ set(unicode[i])
+ end
+ elseif unicode then
+ set(unicode)
+ end
+ end
+ for unicode, data in next, kerns do
+ setone(unicode,data) -- withscriptcode(tfmdata,unicode,data,kernone)
+ -- also smaller
+ end
+ feedback_tweak("kerns",target,original,done)
+ end
+ end
+
+end
+
+do
+
+ function mathtweaks.margins(target,original,parameters)
+ local margins = parameters.list
+ if margins then
+ local characters = target.characters
+ local done = false
+ local function setone(unicode,data)
+ unicode = mathgaps[unicode] or unicode
+ local chardata = characters[unicode]
+ if chardata then
+ local width = chardata.width or 0
+ local total = (chardata.height or 0) + (chardata.depth or 0)
+ local k = data.left ; if k and k ~= 0 then chardata.leftmargin = k * width end
+ local k = data.right ; if k and k ~= 0 then chardata.rightmargin = k * width end
+ local k = data.top ; if k and k ~= 0 then chardata.topmargin = k * total end
+ local k = data.bottom ; if k and k ~= 0 then chardata.bottommargin = k * total end
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[unicode] = true
+ else
+ done = { [unicode] = true }
+ end
+ end
+ end
+ for unicode, data in next, margins do
+ setone(unicode,data) -- withscriptcode(tfmdata,unicode,data,kernone)
+ -- also smaller
+ end
+ feedback_tweak("margins",target,original,done)
+ end
+ end
+
+end
+
+do
+
+ -- musical timestamp: June 2022, Porcupine Tree - Rats Return
+
+ -- we can actually share these and flag them as being tweaked
+
+ local function scale(t,width,total)
+ local r = { }
+ for i=1,#t do
+ local ti = t[i]
+ local kern = ti.kern
+ local height = ti.height
+ if kern then
+ kern = width * kern
+ end
+ if height then
+ height = total * height
+ end
+ r[i] = {
+ kern = kern or 0,
+ height = height or 0,
+ }
+ end
+ return r
+ end
+
+ function mathtweaks.staircase(target,original,parameters)
+ local kerns = parameters.list
+ if kerns then
+ local characters = target.characters
+ local function kernone(unicode,data)
+ local chardata = characters[mathgaps[unicode] or unicode]
+ local total = (chardata.height or 0) + (chardata.depth or 0)
+ local width = chardata.width or 0
+ if data then
+ local tl = data.topleft ; if tl then tl = scale(tl,width,total) end
+ local tr = data.topright ; if tr then tr = scale(tr,width,total) end
+ local bl = data.bottomleft ; if bl then bl = scale(bl,width,total) end
+ local br = data.bottomright ; if br then br = scale(br,width,total) end
+ chardata.mathkerns = {
+ topleft = tl,
+ ropright = tr,
+ bottomleft = bl,
+ bottomright = br,
+ }
+ else
+ chardata.mathkerns = nil
+ end
+ end
+ for unicode, data in next, kerns do
+ kernone(unicode,data) -- withscriptcode(tfmdata,unicode,data,kernone)
+ -- also smaller
+ end
+ end
+ end
+
+end
+
+do
+
+ -- local list = {
+ -- [0x203E] = { factor = .4 }, -- overbar
+ -- [0x203E] = { factor = .7 }, -- underbar
+ -- [0x23DE] = { factor = .4 }, -- overbrace
+ -- [0x23DF] = { factor = .7 }, -- underbrace
+ -- [0x23DC] = { factor = .4 }, -- overparent
+ -- [0x23DD] = { factor = .7 }, -- underparent
+ -- [0x23B4] = { factor = .4 }, -- overbracket
+ -- [0x23B5] = { factor = .7 }, -- underbracket
+ -- }
+
+ -- We can patch the dimensions in-place or we can use additional characters in
+ -- the private namespace.
+
+ -- local addprivate = fonts.helpers.addprivate
+ -- local newnextglyph = addprivate(target,formatters["M-N-%H"](nextglyph),newnextdata)
+
+ local nps = fonts.helpers.newprivateslot
+
+ local umbracepiece = nps("um brace piece") -- will be created
+ local lmbracepiece = nps("lm brace piece") -- will be created
+ local cmbracepiece = nps("cm brace piece") -- will be created : center piece for brace builder hack
+
+ local ulbracepiece = nps("ul brace piece")
+ local urbracepiece = nps("ur brace piece")
+ local llbracepiece = nps("ll brace piece")
+ local lrbracepiece = nps("lr brace piece")
+
+ local over = { factor = "over" }
+ local under = { factor = "under" }
+
+ local candidates = {
+ over = {
+ [0x203E] = over, -- overbar
+ [0x23DE] = over, -- overbrace
+ [0x23DC] = over, -- overparent
+ [0x23B4] = over, -- overbracket
+ },
+ under = {
+ [0x23DF] = under, -- underbrace
+ [0x23DD] = under, -- underparent
+ [0x23B5] = under, -- underbracket
+ },
+ accent = {
+ [0x0300] = over, -- widegrave
+ [0x0308] = over, -- wideddot
+ [0x0304] = over, -- widebar
+ [0x0301] = over, -- wideacute
+ [0x0302] = over, -- widehat
+ [0x030C] = over, -- widecheck
+ [0x0306] = over, -- widebreve
+ [0x0307] = over, -- widedot
+ [0x030A] = over, -- widering
+ [0x0303] = over, -- widetilde
+ [0x20DB] = over, -- widedddot
+ },
+ }
+
+ datasets.accentdimensions = candidates
+
+ local function adapt(c,factor,baseheight,basedepth)
+-- if not c.tweaked then
+ local height = c.height or 0
+ local depth = c.depth or 0
+ local yoffset = 0
+ if factor == "over" then
+ local h = height - baseheight
+ yoffset = h - height
+ height = h
+ depth = depth - baseheight
+ elseif factor == "under" then
+ local d = depth - basedepth
+ yoffset = depth - d
+ depth = d
+ height = height - baseheight
+ elseif height > 0 then
+ local h = tonumber(factor) * height
+ yoffset = h - height
+ height = h
+ elseif depth > 0 then
+ local d = tonumber(factor) * depth
+ yoffset = depth - d
+ depth = d
+ end
+ c.yoffset = yoffset ~= 0 and yoffset or nil
+ c.height = height > 0 and height or nil
+ c.depth = depth > 0 and depth or nil
+-- c.tweaked = true
+-- end
+ end
+
+ local function process(target,original,characters,list,baseheight,basedepth)
+ if list then
+ for k, v in sortedhash(list) do -- sort for tracing
+ local c = characters[k]
+ if c and not c.yoffset then
+ local factor = v.factor
+ if factor then
+ adapt(c,factor,baseheight,basedepth)
+ local nc = c.next
+ local nv = 0
+ local ns = 0
+ while nc do
+ local c = characters[nc]
+ if c then
+ adapt(c,factor,baseheight,basedepth)
+ nv = nv + 1
+ nc = c.next
+ if not nc then
+ local hv = c.parts
+ if hv then
+ for i=1,#hv do
+ local c = characters[hv[i].glyph]
+ if c then
+ adapt(c,factor,baseheight,basedepth)
+ ns = ns + 1
+ end
+ end
+ end
+ break
+ end
+ else
+ break
+ end
+ end
+ if trace_tweaking then
+ report_tweak("adapting extensible (%i sizes, %i parts) %U",target,original,k,nv,ns)
+ end
+ end
+ end
+ end
+ end
+ end
+
+ function mathtweaks.accentdimensions(target,original,parameters)
+ local list = parameters.list or { "over", "under" }
+ if list then
+ local characters = target.characters
+ local baseheight = target.mathparameters.AccentBaseHeight or 0
+ local basedepth = target.mathparameters.AccentBaseDepth or 0
+ for k, v in sortedhash(list) do -- sort for tracing
+ local t = type(v)
+ if t == "string" then
+ v = candidates[v]
+ t = type(v)
+ end
+ if t == "table" then
+ process(target,original,characters,v,baseheight,basedepth)
+ end
+ end
+ end
+ end
+
+end
+
+do
+
+ local addprivate = fonts.helpers.addprivate
+ local privateslot = fonts.helpers.privateslot
+
+ -- function mathtweaks.addrules(target,original,parameters)
+ -- local characters = target.characters
+ -- local height = target.mathparameters.OverbarRuleThickness
+ -- local depth = target.mathparameters.UnderbarRuleThickness
+ -- local width = target.parameters.emwidth/2
+ -- local step = 0.8 * width
+ -- characters[0x203E] = { -- over
+ -- width = width,
+ -- height = height,
+ -- depth = 0,
+ -- unicode = 0x203E,
+ -- commands = { { "rule", height, width } },
+ -- parts = {
+ -- { advance = width, ["end"] = step, glyph = 0x203E, start = 0 },
+ -- { advance = width, ["end"] = 0, glyph = 0x203E, start = step, extender = 1 },
+ -- }
+ -- }
+ -- characters[0x0332] = { -- under
+ -- width = width,
+ -- height = 0,
+ -- depth = depth,
+ -- yoffset = -depth,
+ -- unicode = 0x0332,
+ -- commands = { { "rule", height, width } },
+ -- parts = {
+ -- { advance = width, ["end"] = step, glyph = 0x0332, start = 0 },
+ -- { advance = width, ["end"] = 0, glyph = 0x0332, start = step, extender = 1 },
+ -- }
+ -- }
+ -- end
+
+ function mathtweaks.addrules(target,original,parameters)
+ local characters = target.characters
+ local thickness = target.mathparameters.OverbarRuleThickness
+ local width = target.parameters.emwidth / 2
+ local step = 0.8 * width
+ characters[0x203E] = { -- over
+ width = width,
+ height = thickness / 2,
+ depth = thickness / 2,
+ yoffset = - thickness / 2,
+ unicode = 0x203E,
+ commands = { { "rule", thickness, width } },
+ parts = {
+ { advance = width, ["end"] = step, glyph = 0x203E, start = 0 },
+ { advance = width, ["end"] = 0, glyph = 0x203E, start = step, extender = 1 },
+ },
+ partsorientation = "horizontal",
+ }
+ --
+ characters[0x0332] = characters[0x203E]
+ --
+ -- lucida lacks them ...
+ --
+ local half = thickness / 2
+ local double = thickness * 2
+ --
+ if not characters[0x23B4] then
+ local tpiece = addprivate(target,"bracket-piece-top",{
+ width = thickness,
+ height = half,
+ depth = double,
+ yoffset = - double,
+ commands = { { "rule", thickness * 2.5, thickness } },
+ })
+ characters[0x23B4] = { -- over
+ width = width,
+ height = half,
+ depth = double,
+ unicode = 0x23B4,
+ commands = { { "rule", thickness, width } },
+ parts = {
+ { advance = thickness, glyph = tpiece, ["end"] = 0, start = half },
+ { advance = width, glyph = 0x203E, ["end"] = step, start = step, extender = 1 },
+ { advance = thickness, glyph = tpiece, ["end"] = half, start = 0 },
+ },
+ partsorientation = "horizontal",
+ }
+ end
+ if not characters[0x23B5] then
+ local bpiece = addprivate(target,"bracket-piece-bottom",{
+ width = thickness,
+ height = double,
+ depth = half,
+ yoffset = - half,
+ commands = { { "rule", thickness * 2.5, thickness } },
+ })
+ characters[0x23B5] = { -- over
+ width = width,
+ height = double,
+ depth = half,
+ unicode = 0x23B5,
+ commands = { { "rule", thickness, width } },
+ parts = {
+ { advance = thickness, glyph = bpiece, ["end"] = 0, start = half },
+ { advance = width, glyph = 0x203E, ["end"] = step, start = step, extender = 1 },
+ { advance = thickness, glyph = bpiece, ["end"] = half, start = 0 },
+ },
+ partsorientation = "horizontal",
+ }
+ end
+ --
+ end
+
+ local force = false experiments.register("math.arrows", function(v) force = v end)
+
+ local function tighten(target,unicode,left,right,squeeze,yoffset)
+ local name = string.formatters["math tightened %U %.3N %.3N %.3N %.3N"](unicode,left,right,squeeze,yoffset)
+ local slot = privateslot(target,name)
+ if not slot then
+ local characters = target.characters
+ local data = copytable(characters[unicode])
+ local width = data.width
+ data.advance = width
+ data.width = width * (1-left-right)
+ data.xoffset = width * -left
+ if squeeze ~= 1 then
+ data.effect = { squeeze = squeeze }
+ end
+ if yoffset ~= 0 then
+ data.yoffset = (data.height or 0) * yoffset
+ end
+ slot = addprivate(target,name,data)
+ end
+ return slot
+ end
+
+ local function create(target,unicode,list,overloads)
+ local characters = target.characters
+ local chardata = characters[unicode]
+ if chardata then
+ local endpoint = unicode
+ while chardata.next do
+ chardata = characters[chardata.next]
+ end
+ if chardata and (force or overloads[unicode] == false or not chardata.parts) then
+ if not list then
+ -- chardata.parts = nil -- when we test
+ chardata.parts = { { glyph = unicode } }
+ else
+ local overload = overloads[unicode]
+ local parts = { }
+ for i=1,#list do
+ local part = list[i]
+ local glyph = part.glyph or unicode
+ local check = overloads[glyph]
+ local left = (check and check.left ) or part.left or 0
+ local right = (check and check.right ) or part.right or 0
+ local squeeze = check and check.squeeze or 1
+ local yoffset = check and check.yoffset or 0
+ if left~= 0 or right ~= 0 or squeeze ~= 1 or yoffset ~= 0 then
+ glyph = tighten(target,glyph,left,right,squeeze,yoffset)
+ end
+ local width = characters[glyph].width
+ local step = width/2
+ if part.extensible then
+ parts[#parts+1] = {
+ advance = width,
+ glyph = glyph,
+ ["end"] = step,
+ start = step,
+ extender = 1,
+ }
+ else
+ parts[#parts+1] = {
+ advance = width,
+ glyph = glyph,
+ ["end"] = 0,
+ start = step,
+ }
+ end
+ end
+ if #parts == #list then
+ chardata.parts = parts
+ end
end
- if not mathparameters.FractionDelimiterDisplayStyleSize then
- mathparameters.FractionDelimiterDisplayStyleSize = 2.40 * size
+ end
+ end
+ end
+
+ -- Unicode math lacks the arrow snippet while it does have fence snippets. Also, some
+ -- fonts have a relbar that doesn't match the double arrow.
+ --
+ -- {
+ -- tweak = "addarrows",
+ -- list = { [0x3D] = { squeeze = .85, yoffset = .0975 } }
+ -- },
+ --
+ -- We have no begin and end snippet, so I played with centering and rules at the edges
+ --
+ -- [0x21A9] = { -- hookleftarrow
+ -- { glyph = 0x2212, left = slack, extensible = true },
+ -- { glyph = 0x21A9, right = slack },
+ -- { glyph = 0x2212, right = slack, extensible = true },
+ -- }
+ --
+ -- but in the end rejected it.
+
+ local function initialize(left, right, slack)
+ -- We save some space with locals. When no glyph is given the unicode itself is
+ -- used which also saves some.
+ local single = { glyph = 0x2212, left = slack, right = slack, extensible = true }
+ local double = { glyph = 0x003D, left = slack, right = slack, extensible = true }
+ local triple = { glyph = 0x2261, left = slack, right = slack, extensible = true }
+ ----- spacer = { glyph = 0x0020, left = slack, right = slack, extensible = true }
+ local slackslack = { left = slack, right = slack }
+ local leftslack = { left = left, right = slack }
+ local slackright = { left = slack, right = right }
+ ----- centered = { spacer, { }, spacer }
+ local centered = false -- the luametatex engine does this
+ local singleright = { single, slackright }
+ local leftsingle = { leftslack, single }
+ return {
+ --
+ [0x002D] = { { left = slack, right = slack, glyph = 0x2212 }, single }, -- rel
+ --
+ [0x2190] = leftsingle, -- leftarrow
+ [0x219E] = leftsingle, -- twoheadleftarrow
+ [0x21BC] = leftsingle, -- leftharpoonup
+ [0x21BD] = leftsingle, -- leftharpoondown
+ --
+ [0x2192] = singleright, -- rightarrow
+ [0x21A0] = singleright, -- twoheadrightarrow
+ [0x21C0] = singleright, -- rightharpoonup
+ [0x21C1] = singleright, -- rightharpoondown
+ --
+ [0x003D] = { slackslack, double }, -- equaltext
+ [0x2261] = { slackslack, triple }, -- triplerel
+ [0x27F8] = { leftslack, double }, -- Leftarrow
+ [0x27F9] = { double, slackright }, -- Rightarrow
+ --
+ [0x21A9] = centered, -- hookleftarrow
+ [0x21AA] = centered, -- hookrightarrow
+ [0x21CB] = centered, -- leftrightharpoons
+ [0x21CC] = centered, -- rightleftharpoons
+ [0x21C4] = centered, -- rightoverleftarrow
+ [0x21C6] = centered, -- leftoverrightarrow
+ [0x21A6] = centered, -- mapsto
+ --
+ [0x203E] = { slackslack, { left = slack, right = slack, extensible = true } }, -- bar
+ --
+ [0x27F7] = { { glyph = 0x2190, left = left, right = slack }, single, { glyph = 0x2192, left = slack, right = right } }, -- leftrightarrow rightleftarrow
+ [0x27FA] = { { glyph = 0x27F8, left = left, right = slack }, double, { glyph = 0x27F9, left = slack, right = right } }, -- Leftrightarrow Rightleftarrow
+ }
+ end
+
+ datasets.addarrows = { }
+
+ function mathtweaks.addarrows(target,original,parameters)
+ local overloads = parameters.list or { } -- { [unicode] = { left = .1, right = .1 } }
+ local left = parameters.left or 0.05
+ local right = parameters.right or 0.05
+ local slack = parameters.slack or 0.1
+ local arrows = initialize(left,right,slack)
+ -- inspect(arrows)
+ for unicode, list in sortedhash(arrows) do
+ create(target,unicode,list,overloads)
+ end
+ datasets.addarrows = sortedkeys(arrows)
+ if trace_tweaking then
+ report_tweak("arrows added",target,original)
+ end
+ end
+
+end
+
+do -- this could be combined with the previous
+
+ function mathtweaks.addparts(target,original,parameters)
+ local characters = target.characters
+ local list = parameters.list
+ if list then
+ for unicode, data in sortedhash(list) do
+ local template = data.template
+ if template then
+ local source = characters[template]
+ local target = characters[unicode]
+ if source and target then
+ local sequence = data.sequence
+ if sequence then
+ local parts = source.parts
+ if parts then
+ local p = { }
+ for i=1,#sequence do
+ local step = sequence[i]
+ local glyph = step.glyph
+ if glyph == "first" or glyph == "last" then
+ local g = glyph == "first" and 1 or #parts
+ local c = fastcopy(parts[g])
+ local f = step.factor
+ if f then
+ c["end"] = f * (c["end"] or 0)
+ c.start = f * (c.start or 0)
+ end
+ p[#p+1] = c
+ else
+ local c = characters[glyph]
+ if c then
+ p[#p+1] = {
+ glyph = glyph,
+ advance = c.width,
+ start = 0,
+ ["end"] = 0,
+ }
+ end
+ end
+ end
+ if #p > 0 then
+ target.parts = p
+ if not data.horizontal then
+ target.partsorientation = "vertical"
+ end
+ end
+ end
+ end
+ end
end
- elseif properties then
- report_math("invalid parameters in font %a",properties.fullname or "?")
+ end
+ end
+ end
+
+end
+
+function mathtweaks.action(target,original,parameters)
+ local action = parameters.action
+ if type(action) == "function" then
+ action(target,original,parameters)
+ end
+end
+
+do
+
+ local list = {
+ { 0x00A0, "s", 1 }, -- nbsp
+ { 0x2000, "q", 1/2 }, -- enquad
+ { 0x2001, "q", 1 }, -- emquad
+ { 0x2002, "q", 1/2 }, -- enspace
+ { 0x2003, "q", 1 }, -- emspace
+ { 0x2004, "q", 1/3 }, -- threeperemspace
+ { 0x2005, "q", 1/4 }, -- fourperemspace
+ { 0x2006, "q", 1/6 }, -- sixperemspace
+ { 0x2007, "c", byte('0') }, -- figurespace
+ { 0x2008, "c", byte('.') }, -- punctuationspace
+ { 0x2009, "q", 1/8 }, -- breakablethinspace
+ { 0x200A, "q", 1/8 }, -- hairspace
+ { 0x200B, "q", 0 }, -- zerowidthspace
+ { 0x202F, "q", 1/8 }, -- narrownobreakspace
+ { 0x205F, "s", 1/2 }, -- math thinspace
+ }
+
+ datasets.checkspacing = list
+
+ function mathtweaks.checkspacing(target,original,parameters)
+ local characters = target.characters
+ local parameters = target.parameters
+ for i=1,#list do
+ local entry = list[i]
+ local unicode = entry[1]
+ local data = characters[unicode]
+ if not data then
+ local method = entry[2]
+ local fraction = entry[3]
+ local width = 0
+ local height = 0
+ -- local depth = 0
+ if method == "c" then
+ local template = characters[fraction]
+ width = template.width
+ height = template.height
+ -- depth = template.depth
+ elseif method == "s" then
+ width = fraction * parameters.space -- space
+ height = 0
+ -- depth = 0
+ else
+ width = fraction * parameters.quad -- quad
+ height = 0
+ -- depth = 0
+ end
+ if trace_tweaking then
+ report_tweak("setting width of %U to %p",target,original,unicode,width)
+ end
+ characters[unicode] = {
+ width = width,
+ -- advance = width,
+ height = height,
+ -- depth = depth,
+ unicode = unicode,
+ commands = {
+ -- { "slot", 0, 32 },
+ },
+ }
+ end
+ end
+ end
+
+end
+
+do
+
+ -- mirror
+ -- smaller
+
+ local nps = fonts.helpers.newprivateslot
+
+ local radicalbarextender = nps("radical bar extender") -- we reserve it here
+
+ local list = {
+ 0x221A,
+ }
+
+ local function fix(target,original,characters,unicode)
+ local data = characters[unicode]
+ if data then
+ local height = data.height or 0
+ local depth = data.depth or 0
+ if depth > height then
+ if trace_tweaking then
+ report_tweak("swapping height and depth of radical %U",target,original,unicode)
+ end
+ data.height = depth
+ data.depth = height
+ if data.rorrim then
+ -- the original does the magic
+ else
+ data.yoffset = depth - height
+ end
+ end
+ local smaller = data.smaller
+ if smaller then
+ fix(target,original,characters,smaller)
+ end
+ local mirror = data.mirror
+ if mirror then
+ fix(target,original,characters,mirror)
+ end
+ end
+ end
+
+ function mathtweaks.fixradicals(target,original,parameters)
+ local characters = target.characters
+ for i=1,#list do
+ local unicode = list[i]
+ fix(target,original,characters,unicode)
+ end
+ end
+
+ local function fix(target,original,characters,u,l)
+ local data = characters[u]
+ if data then
+ data.innerlocation = l.location == "right" and 2 or 1
+ data.innerxoffset = (l.hfactor or 1) * (data.width or 0)
+ data.inneryoffset = (l.vfactor or 1) * ((data.height or 0) + (data.depth or 0))
+ end
+ end
+
+ function mathtweaks.radicaldegreeanchors(target,original,parameters)
+ local list = parameters.list
+ if list then
+ local characters = target.characters
+ for unicode, l in sortedhash(list) do -- resolve variants
+ local u = detail(characters,unicode) or unicode
+ if type(u) == "table" then
+ for i=1,#u do
+ fix(target,original,characters,u[i],l)
+ end
+ else
+ fix(target,original,characters,u,l)
+ end
+ end
+ end
+ end
+
+end
+
+do
+
+ local done = nil
+
+ local function fix(target,original,characters,unicode,axis)
+ if done[unicode] then
+ return
+ end
+ done[unicode] = true
+ local data = characters[unicode]
+ if data then
+ local height = data.height or 0
+ local depth = data.depth or 0
+ if trace_tweaking then
+ report_tweak("swapping height and depth of %U",target,original,unicode)
+ end
+ local half = (height + depth)/2
+ if data.rorrim then
+ -- the original does the magic
else
- report_math("invalid parameters in font")
+ data.yoffset = depth - (half - axis)
+ end
+ height = half + axis
+ depth = half - axis
+ data.height = height
+ data.depth = depth
+ local smaller = data.smaller
+ if smaller then
+ fix(target,original,characters,smaller,axis)
+ end
+ local mirror = data.mirror
+ if mirror then
+ fix(target,original,characters,mirror,axis)
+ end
+ local next = data.next
+ if next then
+ fix(target,original,characters,next,axis)
+ end
+ end
+ end
+
+ function mathtweaks.fixoldschool(target,original,parameters)
+ local characters = target.characters
+ local list = mathtweaks.subsets.integrals
+ local also = getalso(target,original)
+ local axis = target.mathparameters.AxisHeight
+ done = { }
+ for i=1,#list do
+ local unicode = list[i]
+ fix(target,original,characters,unicode,axis)
+ end
+ if also then
+ local a = also[u]
+ if a then
+ for i=1,#a do
+ fix(target,original,characters,a[i],axis)
+ end
+ end
+ end
+ done = nil
+ end
+
+ -- After the next one I rewarded myself by (again) watching Joe Parrish interpretation
+ -- of Shostakovich 10 Mvmt. II - Metal several times (video on yt, track on bandcamp)
+ -- ... timestamp: awaiting the new Albion (Official) single; their work comes in parts.
+
+ function mathtweaks.fixintegrals(target,original,parameters)
+ local characters = target.characters
+ local integral = characters[0x222B]
+ if integral and not integral.parts then
+ local top = characters[0x2320]
+ local mid = characters[0x23AE]
+ local bot = characters[0x2321]
+ if top and mid and bot then
+ top = top.height
+ mid = mid.height
+ bot = bot.height
+ integral.partsitalic = integral.italic
+ integral.parts = {
+ { advance = bot, ["end"] = bot/3, glyph = 0x2321, start = bot/3 },
+ { advance = mid, ["end"] = mid/2, glyph = 0x23AE, start = mid/2, extender = 1 },
+ { advance = top, ["end"] = top/3, glyph = 0x2320, start = top/3 },
+ }
+ integral.partsorientation = "vertical"
+ if trace_tweaking then
+ report_tweak("fixing the integral extensible",target,original)
+ end
end
- elseif properties then
- report_math("no parameters in font %a",properties.fullname or "?")
else
- report_math("no parameters and properties in font")
+ report_tweak("no need to fix the integral extensible",target,original)
end
end
+
end
-function mathematics.overloadparameters(target,original)
- local mathparameters = target.mathparameters
- if mathparameters and next(mathparameters) then
- local goodies = target.goodies
- if goodies then
- for i=1,#goodies do
- local goodie = goodies[i]
- local mathematics = goodie.mathematics
- local parameters = mathematics and mathematics.parameters
- if parameters then
- if trace_defining then
- report_math("overloading math parameters in %a @ %p",target.properties.fullname,target.parameters.size)
- end
- for name, value in next, parameters do
- local tvalue = type(value)
- if tvalue == "string" then
- report_math("comment for math parameter %a: %s",name,value)
+do
+
+ local list = { 0x2061, 0x2062, 0x2063, 0x2064 }
+
+ datasets.wipecues = list
+
+ function mathtweaks.wipecues(target,original,parameters)
+ local characters = target.characters
+ local tobewiped = parameters.list or list
+ local done = false
+ for i=1,#tobewiped do
+ local unicode = tobewiped[i]
+ characters[unicode] = {
+ width = 0,
+ height = 0,
+ depth = 0,
+ unicode = unicode,
+ }
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[unicode] = true
+ else
+ done = { [unicode] = true }
+ end
+ end
+ feedback_tweak("wipecues",target,original,done)
+ end
+
+end
+
+do
+
+ local mapping = {
+ [0x002F] = 0x2044,
+ }
+
+ datasets.fixslashes = mapping
+
+ function mathtweaks.fixslashes(target,original,parameters)
+ local characters = target.characters
+ -- local done = false
+ for normal, weird in sortedhash(mapping) do
+ local normalone = characters[normal]
+ local weirdone = characters[weird]
+ if normalone and weirdone and not normalone.next then
+ normalone.next = weirdone.next
+ -- if not trace_tweaking then
+ -- done = true
+ -- elseif done then
+ -- done[normal] = true
+ -- else
+ -- done = { [normal] = true }
+ -- end
+ end
+ weirdone = copytable(normalone)
+ characters[weird] = weirdone
+ weirdone.unicode = weird
+ end
+ -- feedback_tweak("fixslashes",target,original,done)
+ if trace_tweaking then
+ report_tweak("slashes fixed",target,original)
+ end
+ end
+
+end
+
+do -- see pagella for an extensive example
+
+ local nps = fonts.helpers.newprivateslot
+
+ local mapping = {
+ [0x0300] = { 0x0060, false, nps("flat 0x0060 1") },
+ [0x0308] = { 0x00A8, false, nps("flat 0x00A8 1") },
+ [0x0304] = { 0x00AF, false, nps("flat 0x00AF 1") },
+ [0x0301] = { 0x00B4, false, nps("flat 0x00B4 1") },
+ [0x0302] = { 0x02C6, true, nps("flat 0x02C6 1") },
+ [0x030C] = { 0x02C7, true, nps("flat 0x02C7 1") },
+ [0x0306] = { 0x02D8, false, nps("flat 0x02D8 1") },
+ [0x0307] = { 0x02D9, false, nps("flat 0x02D9 1") },
+ [0x030A] = { 0x02DA, false, nps("flat 0x02DA 1") },
+ [0x0303] = { 0x02DC, true, nps("flat 0x02DC 1") },
+ [0x20DB] = { 0x20DB, false, nps("flat 0x20DB 1") },
+ }
+
+ datasets.fixaccents = mapping
+ datasets.extendaccents = mapping
+ datasets.flattenaccents = mapping
+ datasets.copyaccents = mapping
+
+ function mathtweaks.fixaccents(target,original,parameters)
+ local characters = target.characters
+ local done = false
+ for stretching, entry in sortedhash(mapping) do
+ local alias = entry[1]
+ local stretchingdata = characters[stretching]
+ if stretchingdata and stretchingdata.width == 0 then
+ local topanchor = stretchingdata.topanchor or 0
+ local width = -topanchor
+ topanchor = width/2
+ stretchingdata.width = width
+ stretchingdata.advance = 0
+ stretchingdata.topanchor = topanchor
+ stretchingdata.commands = { rightcommand[width + topanchor], charcommand[stretching] }
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[stretching] = true
+ else
+ done = { [stretching] = true }
+ end
+ end
+ end
+ feedback_tweak("fixaccents",target,original,done)
+ end
+
+ -- all true|number false
+
+ function mathtweaks.extendaccents(target,original,parameters)
+ local characters = target.characters
+ local all = parameters.all
+ local count = tonumber(all)
+ local done = false
+ for stretching, entry in sortedhash(mapping) do
+ local extend = entry[2]
+ if extend then
+ local last = characters[stretching]
+ local cnt = 1
+ local okay = false
+ while last do
+ if all or (count and cnt > count) then
+ last.extensible = true
+ local flataccent = last.flataccent
+ if flataccent then
+ characters[flataccent].extensible = true
+ okay = true
+ end
+ end
+ local n = last.next
+ if n then
+ last = characters[n]
+ else
+ last.extensible = true
+ local flataccent = last.flataccent
+ if flataccent then
+ characters[flataccent].extensible = true
+ okay = true
+ end
+ break
+ end
+ cnt = cnt + 1
+ end
+ if okay then
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[stretching] = true
+ else
+ done = { [stretching] = true }
+ end
+ end
+ end
+ end
+ feedback_tweak("extendaccents",target,original,done)
+ end
+
+ -- force true false
+ -- height factor 0.8
+ -- offset factor 0.9|calculated
+ -- squeeze factor 0.1|calculated
+
+ function mathtweaks.flattenaccents(target,original,parameters)
+ local characters = target.characters
+ local force = parameters.force
+ local squeeze = parameters.squeeze or 0.8
+ local ofactor = parameters.offset or (squeeze/2)
+ local hfactor = parameters.height or (1 - ofactor)
+ local done = false
+ for stretching, entry in sortedhash(mapping) do
+ local last = characters[stretching]
+ while last do
+ if force or not last.flataccent then
+ local slot = entry[3]
+ local data = copytable(last)
+ local height = data.height or 0
+ data.effect = { squeeze = squeeze }
+ data.height = hfactor * height
+ data.yoffset = ofactor * height
+ characters[slot] = data
+ last.flataccent = slot
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[stretching] = true
+ else
+ done = { [stretching] = true }
+ end
+ end
+ local n = last.next
+ if n then
+ last = characters[n]
+ else
+ break
+ end
+ end
+ end
+ feedback_tweak("flattenaccents",target,original,done)
+ end
+
+ function mathtweaks.copyaccents(target,original,parameters)
+ local characters = target.characters
+ local done = false
+ for stretching, entry in sortedhash(mapping) do
+ local alias = entry[1]
+ if alias ~= stretching then
+ local stretchingdata = characters[stretching]
+ if stretchingdata then
+ -- we need to nil [x|y]offsets
+ characters[alias] = {
+ width = stretchingdata.width,
+ height = stretchingdata.height,
+ depth = stretchingdata.depth,
+ next = stretchingdata.next,
+ commands = { charcommand[stretching] },
+ topanchor = stretchingdata.topanchor,
+ -- unicode = stretching, -- when we alias to combiners
+ unicode = alias, -- when we keep the original
+ }
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[stretching] = true
+ else
+ done = { [stretching] = true }
+ end
+ end
+ end
+ end
+ feedback_tweak("copyaccents",target,original,done)
+ end
+
+end
+
+do
+
+ local single <const> = 0x003D
+ local double <const> = 0x2A75
+ local triple <const> = 0x2A76
+
+ function mathtweaks.addequals(target,original,parameters)
+ local characters = target.characters
+ local basechar = characters[single]
+ local width = basechar.width
+ local height = basechar.height
+ local depth = basechar.depth
+ local advance = (parameters.advance or 1/20) * width
+ local char = charcommand[single]
+ local left = leftcommand[advance]
+ characters[double] = {
+ unicode = double,
+ width = 2*width - 1*advance,
+ height = height,
+ depth = depth,
+-- callback = "devirtualize",
+ commands = { char, left, char },
+ }
+ characters[triple] = {
+ unicode = triple,
+ width = 3*width - 2*advance,
+ height = height,
+ depth = depth,
+-- callback = "devirtualize",
+ commands = { char, left, char, left, char },
+ }
+ if trace_tweaking then
+ report_tweak("double %U and triple %U equals added",target,original,double,triple)
+ end
+ end
+
+end
+
+do
+
+ -- If we really want, we can have variants that also match radicals but in practice
+ -- radicals and actuarians are never seen together. We could also have a smaller
+ -- extender.
+
+ local nps = fonts.helpers.newprivateslot
+
+ local radical <const> = 0x0221A
+ local actuarian <const> = nps("delimited right annuity") -- 0x020E7
+ local nairautca <const> = nps("delimited left annuity" )
+ local placehold <const> = nps("delimited ghost annuity")
+
+ function mathtweaks.addactuarian(target,original,parameters)
+ local characters = target.characters
+ local parameters = target.parameters
+ local linewidth = target.MathConstants.RadicalRuleThickness -- make option
+ local basechar = characters[radical]
+ local baseheight = (basechar.height or 0)/2
+ local basedepth = (basechar.depth or 0)/2
+ local basetotal = baseheight + basedepth
+ local used = baseheight
+ --
+ characters[0x020E7] = {
+ width = 6*linewidth,
+ height = baseheight,
+ depth = basedepth,
+ unicode = actuarian,
+ callback = "devirtualize",
+ commands = {
+ upcommand[baseheight-4*linewidth],
+ { "rule", linewidth, 4*linewidth },
+ downcommand[basetotal/2-linewidth],
+ { "rule", basetotal/2, linewidth },
+ },
+ }
+ --
+ characters[actuarian] = {
+ width = 2*linewidth,
+ height = baseheight,
+ depth = basedepth,
+ unicode = actuarian,
+ callback = "devirtualize",
+ commands = {
+ downcommand[basedepth],
+ { "rule", basetotal, linewidth },
+ },
+ parts = {
+ {
+ advance = basetotal,
+ ["end"] = used,
+ glyph = actuarian,
+ start = 0,
+ },
+ {
+ advance = basetotal,
+ ["end"] = 0,
+ extender = 1,
+ glyph = actuarian,
+ start = used,
+ },
+ }
+ }
+ characters[placehold] = {
+ width = 2*linewidth,
+ height = baseheight,
+ depth = basedepth,
+ unicode = actuarian, -- whatever
+ callback = "devirtualize",
+ commands = {
+ rightcommand[linewidth],
+ downcommand[basedepth],
+ { "rule", basetotal, 0 },
+ },
+ }
+ characters[nairautca] = {
+ width = 2*linewidth,
+ height = baseheight,
+ depth = basedepth,
+ unicode = actuarian, -- whatever
+ callback = "devirtualize",
+ -- commands = {
+ -- rightcommand[linewidth],
+ -- downcommand[basedepth],
+ -- { "rule", basetotal, linewidth },
+ -- },
+ commands = {
+ rightcommand[linewidth],
+ upcommand[baseheight-4*linewidth],
+ { "rule", 4*linewidth, linewidth },
+ },
+ parts = {
+ {
+ advance = basetotal,
+ ["end"] = used,
+ extender = 1,
+ glyph = placehold,
+ start = 0,
+ },
+ {
+ advance = basetotal,
+ ["end"] = 0,
+ glyph = nairautca,
+ start = used,
+ },
+ }
+ }
+ if trace_tweaking then
+ report_tweak("actuarian %U added",target,original,actuarian)
+ end
+ end
+
+end
+
+do
+
+ -- todo: make callback because we can delay it but then we need to stack
+ -- callbacks
+
+ local nps = fonts.helpers.newprivateslot
+
+ local list = {
+ -- { 0x0300, nps("delimited right grave"), nps("delimited ghost grave") },
+ { 0x0308, nps("delimited right ddot"), nps("delimited ghost ddot") },
+ { 0x0304, nps("delimited right bar"), nps("delimited ghost bar") },
+ -- { 0x0301, nps("delimited right acute"), nps("delimited ghost acute") },
+ { 0x0302, nps("delimited right hat"), nps("delimited ghost hat") },
+ { 0x030C, nps("delimited right check"), nps("delimited ghost check") },
+ { 0x0306, nps("delimited right breve"), nps("delimited ghost breve") },
+ { 0x0307, nps("delimited right dot"), nps("delimited ghost dot") },
+ { 0x030A, nps("delimited right ring"), nps("delimited ghost ring") },
+ { 0x0303, nps("delimited right tilde"), nps("delimited ghost tilde") },
+ { 0x20DB, nps("delimited right dddot"), nps("delimited ghost dddot") },
+ { 0x2020, nps("delimited right dagger"), nps("delimited ghost dagger") },
+ { 0x2021, nps("delimited right ddagger"), nps("delimited ghost ddagger") },
+ { 0x2217, nps("delimited right ast"), nps("delimited ghost ast") },
+ { 0x22C6, nps("delimited right star"), nps("delimited ghost star") },
+
+ { 0x231C, nps("delimited left upper corner"), nps("delimited ghost upper corner") },
+ { 0x231D, nps("delimited right upper corner"), nps("delimited ghost upper corner") },
+ { 0x231E, nps("delimited left lower corner"), nps("delimited ghost lower corner"), true },
+ { 0x231F, nps("delimited right lower corner"), nps("delimited ghost lower corner"), true },
+ }
+
+ function mathtweaks.addfourier(target,original,parameters)
+ local characters = target.characters
+ for i=1,#list do
+ local entry = list[i]
+ local basecode = entry[1]
+ local fouriercode = entry[2]
+ local movecode = entry[3]
+ local reverse = entry[4]
+ local basechar = characters[basecode]
+ if basechar then
+ local scale = parameters.scale or 1
+ local variant = parameters.variant
+ if variant then
+ for i=1,variant do
+ local okay = basechar.next
+ if okay then
+ basecode = okay
+ basechar = characters[basecode]
else
- local oldvalue = mathparameters[name]
- local newvalue = oldvalue
- if oldvalue then
- if tvalue == "number" then
- newvalue = value
- elseif tvalue == "function" then
- newvalue = value(oldvalue,target,original)
- elseif not tvalue then
- newvalue = nil
+ break
+ end
+ end
+ end
+ local baseheight = scale * (basechar.height or 0)
+ local basedepth = scale * (basechar.depth or 0)
+ local basewidth = scale * (basechar.width or 0)
+ local used = baseheight/2
+ local total = baseheight + basedepth
+if reverse then
+ used = total / 2 -- basedepth / 2
+end
+ characters[movecode] = {
+ width = basewidth,
+ height = used,
+ unicode = basecode,
+ -- callback = "devirtualize",
+ commands = {
+ downcommand[used],
+ { "rule", used, 0 },
+ },
+ }
+ local parts = {
+ {
+ advance = used,
+ ["end"] = used,
+ extender = 1,
+ glyph = movecode,
+ start = used,
+ },
+ {
+ advance = total,
+ ["end"] = 0,
+ glyph = fouriercode,
+ start = total,
+ },
+ }
+ if reverse then
+ parts[1], parts[2] = parts[2], parts[1]
+ end
+ characters[fouriercode] = {
+ width = basewidth,
+ height = baseheight,
+ depth = basedepth,
+ unicode = basecode,
+ -- callback = "devirtualize",
+ commands = {
+ scale == 1 and charcommand[basecode] or { "slot", 0, basecode, scale, scale },
+ },
+ partsorientation = "vertical",
+ parts = parts,
+ }
+ if trace_tweaking then
+ report_tweak("fourier %U added using %U",target,original,basecode,fouriercode)
+ end
+ end
+ end
+ end
+
+end
+
+do
+
+ -- \im{\left\Uchar"007C \frac{1}{2} \right\Uchar"007C}
+ -- \im{\left\Uchar"2016 \frac{1}{2} \right\Uchar"2016}
+ -- \im{\left\Uchar"2980 \frac{1}{2} \right\Uchar"2980}
+
+ local single <const> = 0x007C
+ local double <const> = 0x2016
+ local triple <const> = 0x2980
+
+ -- local nps = fonts.helpers.newprivateslot
+ --
+ -- local function variantlist(characters,unicode,chardata,what,total,used)
+ -- local parenthesis = characters[0x28].next
+ -- local width = chardata.width
+ -- local height = chardata.height
+ -- local depth = chardata.depth
+ -- local total = height + depth
+ -- local count = 1
+ -- while parenthesis do
+ -- local private = nps(what .. " size " .. count)
+ -- local pardata = characters[parenthesis]
+ -- local parheight = pardata.height
+ -- local pardepth = pardata.depth
+ -- local scale = (parheight+pardepth)/total
+ -- local offset = - pardepth + scale * depth
+ -- chardata.next = private
+ -- chardata = {
+ -- unicode = unicode,
+ -- width = width,
+ -- height = parheight,
+ -- depth = pardepth,
+ -- commands = {
+ -- { "offset", 0, offset, unicode, 1, scale }
+ -- },
+ -- }
+ -- characters[private] = chardata
+ -- parenthesis = pardata.next
+ -- if paranthesis then
+ -- pardata = characters[parenthesis]
+ -- end
+ -- count = count + 1
+ -- end
+ -- chardata.parts = {
+ -- {
+ -- advance = total,
+ -- ["end"] = used,
+ -- glyph = unicode,
+ -- start = 0,
+ -- -- start = used/5,
+ -- },
+ -- {
+ -- advance = total,
+ -- -- ["end"] = 0,
+ -- ["end"] = used/5, -- prevents small gap with inward curved endpoints
+ -- extender = 1,
+ -- glyph = unicode,
+ -- start = used,
+ -- },
+ -- }
+ -- chardata.partsorientation = "vertical"
+ -- end
+
+ local function variantlist(unicode,chardata,total,used)
+ chardata.varianttemplate = 0x0028
+ chardata.parts = {
+ {
+ advance = total,
+ ["end"] = used,
+ glyph = unicode,
+ start = 0,
+ -- start = used/5,
+ },
+ {
+ advance = total,
+ -- ["end"] = 0,
+ ["end"] = used/5, -- prevents small gap with inward curved endpoints
+ extender = 1,
+ glyph = unicode,
+ start = used,
+ },
+ }
+ chardata.partsorientation = "vertical"
+ end
+
+ function mathtweaks.addbars(target,original,parameters)
+ local characters = target.characters
+ local basechar = characters[single]
+ local width = basechar.width
+ local height = basechar.height
+ local depth = basechar.depth
+ local advance = (parameters.advance or 1/10) * width
+ local used = 1.2*height -- large overlap because no smaller pieces
+ local total = height + depth
+ --
+ -- variantlist(characters,single,basechar,"single bar",total,used)
+ variantlist(single,basechar,total,used)
+ --
+ basechar = {
+ unicode = double,
+ width = 2*width - 1*advance,
+ height = height,
+ depth = depth,
+-- callback = "devirtualize",
+ commands = {
+ charcommand[single],
+ leftcommand[advance],
+ charcommand[single],
+ },
+ }
+ characters[double] = basechar
+ -- variantlist(characters,double,basechar,"double bar",total,used)
+ variantlist(double,basechar,total,used)
+ --
+ basechar = {
+ unicode = triple,
+ width = 3*width - 2*advance,
+ height = height,
+ depth = depth,
+-- callback = "devirtualize",
+ commands = {
+ charcommand[single],
+ leftcommand[advance],
+ charcommand[single],
+ leftcommand[advance],
+ charcommand[single],
+ },
+ }
+ characters[triple] = basechar
+ -- variantlist(characters,triple,basechar,"triple bar",total,used)
+ variantlist(triple,basechar,total,used)
+ --
+ if trace_tweaking then
+ report_tweak("single, double and triple bars added",target,original)
+ end
+ end
+
+end
+
+do
+
+ -- lucida: \im{\cdot \ldot \cdots \ldots}
+
+ local snormal <const> = 0x002E
+ local sraised <const> = 0x22C5
+
+ local tnormal <const> = 0x2026
+ local traised <const> = 0x22EF
+
+ function mathtweaks.fixellipses(target,original,parameters)
+ local characters = target.characters
+ local function fix(normal,raised)
+ local normaldata = characters[normal]
+ if normaldata then
+ local raiseddata = copytable(normaldata)
+ characters[raised] = raiseddata
+ raiseddata.unicode = raised
+ local height = raiseddata.height
+ local yoffset = (parameters.yoffset or 2) * height
+ raiseddata.yoffset = yoffset
+ raiseddata.height = height + yoffset
+ if trace_tweaking then
+ report_tweak("taking %U from %U",target,original,raised,normal)
+ end
+ end
+ end
+ fix(snormal,sraised)
+ fix(tnormal,traised)
+ end
+
+end
+
+do
+
+ -- For Ton, who needs the high minus and plus for calculator signs in Dutch
+ -- school math books.
+
+ local list = {
+ { 0x207A, 0x002B, true },
+ { 0x207B, 0x2212, true },
+ { 0x208A, 0x002B, false },
+ { 0x208B, 0x2212, false },
+ }
+
+ datasets.addscripts = list
+
+ local function add(target,original,characters,unicode,template,super,baseheight,scale)
+ if not characters[unicode] then
+ local origdata = characters[template]
+ if origdata then
+ local width = scale * (origdata.width or 0)
+ local height = scale * (origdata.height or 0)
+ local depth = scale * (origdata.depth or 0)
+ local half = - (height + depth) / 2
+ local offset = super and baseheight/2 or -baseheight/4
+ characters[unicode] = {
+ width = width,
+ height = height + offset,
+ depth = depth - offset,
+ unicode = unicode,
+ commands = {
+ { "offset", 0, offset, template, scale, scale }
+ },
+ }
+ if trace_tweaking then
+ report_tweak("adding script %U scaled %0.3f",target,original,unicode,scale)
+ end
+ -- no need for smaller
+ end
+ end
+ end
+
+ function mathtweaks.addscripts(target,original,parameters)
+ local characters = target.characters
+ local baseheight = target.mathparameters.AccentBaseHeight
+ local scaledown = parameters.scale or target.mathparameters.ScriptScriptPercentScaleDown / 100
+ for i=1,#list do
+ local entry = list[i]
+ if entry then
+ add(target,original,characters,entry[1],entry[2],entry[3],baseheight,scaledown)
+ end
+ end
+ end
+
+end
+
+do
+
+ -- We started with the list that xits has in rtlm but most of them can be derived from
+ -- the database, and others need to be added.
+
+ -- Checked while watching/listening to Dave Matthews Band: The Central Park Concert
+ -- (with superb solos by Warren Haynes), a DVD I bought around when we started with the
+ -- LUATEX advanture.
+
+ local mirrors = {
+
+ [0x0002F] = true, -- slashes
+ [0x0005C] = true,
+ [0x000F7] = true,
+ [0x02044] = true,
+ [0x02215] = true,
+
+ [0x02032] = true, -- primes
+ [0x02033] = true,
+ [0x02034] = true,
+ [0x02057] = true,
+ [0x02035] = true,
+ [0x02036] = true,
+ [0x02037] = true,
+
+ [0x0221A] = true, -- radicals
+ [0x0221B] = true,
+ [0x0221C] = true,
+ [0x0221D] = true,
+
+ [0x0222B] = true, -- integrals
+ [0x0222C] = true,
+ [0x0222D] = true,
+ [0x0222E] = true,
+ [0x0222F] = true,
+ [0x02230] = true,
+ [0x02231] = true,
+ [0x02232] = true,
+ [0x02233] = true,
+
+ [0x02A0A] = true, -- seen in xits (to be checked)
+ [0x02A0B] = true,
+ [0x02A0C] = true,
+ [0x02A0D] = true,
+ [0x02A0E] = true,
+
+ [0x02140] = true,
+ [0x02201] = true,
+ [0x02202] = true,
+ [0x02203] = true,
+ [0x02204] = true,
+ [0x02211] = true,
+
+ [0x02239] = true,
+ [0x0225F] = true,
+ [0x0228C] = true,
+ [0x022A7] = true,
+ [0x022AA] = true,
+ [0x022AC] = true,
+ [0x022AD] = true,
+ [0x022AE] = true,
+ [0x022AF] = true,
+ [0x022F5] = true,
+ [0x022F8] = true,
+ [0x022F9] = true,
+ [0x022FF] = true,
+ [0x02320] = true,
+ [0x02321] = true,
+ [0x027C0] = true,
+ [0x029DC] = true,
+ [0x029F4] = true,
+
+ [0x02A0F] = true,
+ [0x02A10] = true,
+ [0x02A11] = true,
+ [0x02A12] = true,
+ [0x02A13] = true,
+ [0x02A14] = true,
+ [0x02A15] = true,
+ [0x02A16] = true,
+ [0x02A17] = true,
+ [0x02A18] = true,
+ [0x02A19] = true,
+ [0x02A1A] = true,
+ [0x02A1B] = true,
+ [0x02A1C] = true,
+ [0x02A20] = true,
+
+ [0x02A74] = true,
+ [0x02AA3] = true,
+ [0x02AE2] = true,
+ [0x02AE6] = true,
+ [0x1D715] = true,
+ }
+
+ local new = fonts.helpers.newprivateslot
+
+ local function add(target,original,characters,unicode,what)
+ local data = characters[unicode]
+ if data then
+ if not data.mirror then
+ local slot = new("mirror."..unicode)
+ local mirror = copytable(data)
+ data.mirror = slot
+ mirror.rorrim = unicode -- so we can check later
+ mirror.commands = {
+ { "offset", data.width, 0, unicode, -1, 1 }
+ }
+ if trace_tweaking then
+ report_tweak("adding mirror %U (%s)",target,original,unicode,what)
+ end
+ characters[slot] = mirror
+ elseif trace_tweaking then
+ report_tweak("skipping mirror %U (%s)",target,original,unicode,what)
+ end
+ local parts = data.parts
+ if parts then
+ for i=1,#parts do
+ add(target,original,characters,parts[i],"hpart")
+ end
+ end
+ local smaller = data.smaller
+ if smaller then
+ add(target,original,characters,"smaller")
+ end
+ local next = data.next
+ if next then
+ add(target,original,characters,next,"next")
+ end
+ end
+ end
+
+ -- todo: also check the rtlm table if present
+
+ function mathtweaks.addmirrors(target,original,parameters)
+ local characters = target.characters
+ -- for unicode, detail in sortedhash(characters) do
+ for unicode, detail in next, characters do
+ local data = chardata[unicode]
+ if data and data.mirror then
+ add(target,original,characters,unicode,"mirror")
+ end
+ end
+ for unicode, detail in sortedhash(mirrors) do
+ if characters[unicode] then
+ add(target,original,characters,unicode,"character")
+ elseif trace_tweaking then
+ report_tweak("ignoring mirror %U (%s)",target,original,unicode,what)
+ end
+ end
+ end
+
+end
+
+do
+
+ local reported = { }
+
+ function mathtweaks.version(target,original,parameters)
+ local metadata = original.shared.rawdata.metadata
+ if metadata then
+ local version = string.strip(metadata.version or "") -- some have trailing spaces
+ if version then
+ local expected = parameters.expected
+ local fontname = metadata.fontname or false
+ local message = parameters.message
+ -- version = tonumber(string.match(version,"%d+.%d+"))
+ if version ~= expected and not reported[fontname] then
+ report_tweak("version %a found, version %a expected",target,original,version,expected)
+ elseif trace_tweaking then
+ report_tweak("version %a found",target,original,version)
+ end
+ if message and message ~= "" and not reported[fontname] then
+ report_tweak()
+ report_tweak("%s",target,original,message)
+ report_tweak()
+ end
+ reported[fontname] = true
+ target.tweakversion = version
+ end
+ end
+ end
+
+end
+
+do
+
+ function mathtweaks.parameters(target,original,parameters)
+ local newparameters = parameters.list
+ local oldparameters = target.mathparameters
+ if newparameters and oldparameters then
+ newparameters = copytable(newparameters)
+ scaleparameters(newparameters,target.parameters)
+ for name, newvalue in next, newparameters do
+ oldparameters[name] = newvalue
+ end
+ end
+ end
+
+ function mathtweaks.bigslots(target,original,parameters)
+ local list = parameters.list
+ if list then
+ target.bigslots = list
+ end
+ end
+
+end
+
+-- do
+--
+-- function mathtweaks.diagnose(target,original,parameters)
+-- local characters = target.characters
+-- for k, v in sortedhash(characters) do
+-- local italic = v.italic
+-- if italic then
+-- report_tweak("italics: %C %p",target,original,k,italic)
+-- end
+-- end
+-- end
+--
+-- end
+
+do
+
+ function mathtweaks.setoptions(target,original,parameters)
+ local setlist = parameters.set or parameters.list
+ local resetlist = parameters.reset
+ if setlist or resetlist then
+ local properties = target.properties
+ local codes = tex.mathcontrolcodes
+ local oldcontrol = texget("mathfontcontrol")
+ local newcontrol = oldcontrol
+ -- todo: reset
+ if resetlist then
+ for i=1,#resetlist do
+ local v = tonumber(codes[resetlist[i]])
+ if v then
+ newcontrol = newcontrol & (not v)
+ end
+ end
+ end
+ if setlist then
+ for i=1,#setlist do
+ local v = tonumber(codes[setlist[i]])
+ if v then
+ newcontrol = newcontrol | v
+ end
+ end
+ end
+ newcontrol = newcontrol | codes.usefontcontrol
+ properties.mathcontrol = newcontrol
+ target.mathcontrol = newcontrol
+ if trace_tweaking then
+ report_tweak("forcing math font options 0x%08X instead of 0x%08X",target,original,newcontrol,oldcontrol)
+ end
+ end
+ end
+
+end
+
+do
+
+ function mathtweaks.setovershoots(target,original,parameters)
+ local list = parameters.list
+ if list then
+ local characters = target.characters
+ local emwidth = target.parameters.quad
+ local done = false
+ for i=1,#list do
+ local entry = list[i]
+ local target = entry.target
+ local top = entry.topovershoot
+ local quad = entry.quad
+ if target and top then
+ local range = blocks[target]
+ if range then
+ if quad then
+ quad = emwidth
+ end
+ for r = range.first, range.last do
+ local unicode = mathgaps[r] or r
+ local data = characters[unicode]
+ if data then
+ data.topovershoot = top * (quad or data.width or 0)
+ if not trace_tweaking then
+ done = true
+ elseif done then
+ done[r] = true
+ else
+ done = { [r] = true }
end
- if trace_defining and oldvalue ~= newvalue then
- report_math("overloading math parameter %a: %S => %S",name,oldvalue,newvalue)
+ end
+ end
+ end
+ end
+ end
+ feedback_tweak("setovershoots",target,original,done)
+ end
+ end
+
+ -- there is no real need for thios but let's play nice with memory anyway
+
+ local efindex = 0
+ local effects = setmetatableindex (function (t,k)
+ efindex = efindex + 1
+ local v = "tweakreplacealphabets" .. efindex
+ local e = fonts.specifiers.presetcontext(v,"",k)
+ -- print(k,v,e)
+ t[k] = v
+ return v
+ end)
+
+ function mathtweaks.replacealphabets(target,original,parameters)
+ local list = parameters.list
+ if list then
+ local features = target.specification.features.normal
+ local definedfont = fonts.definers.internal
+ local copiedglyph = fonts.handlers.vf.math.copy_glyph
+ -- does a deep copy, including parts and so
+ local getsubstitution = fonts.handlers.otf.getsubstitution
+ local fontdata = fonts.hashes.identifiers
+ --
+ local fonts = target.fonts
+ local size = target.size
+ local characters = target.characters
+ if not fonts then
+ fonts = { }
+ target.fonts = fonts
+ end
+ if #fonts == 0 then
+ fonts[1] = { id = 0, size = size } -- self, will be resolved later
+ end
+ for i=1,#list do
+ local entry = list[i]
+ local filename = entry.filename or parameters.filename
+ local feature = entry.feature
+ local thesource = entry.source
+ local thetarget = entry.target or thesource
+ if thesource and thetarget then
+ local sourcerange = type(thesource) == "table" and thesource or blocks[thesource] -- .gaps
+ local targetrange = type(thetarget) == "table" and thetarget or blocks[thetarget] -- .gaps
+ if sourcerange and targetrange then
+ local firsttarget = targetrange.first
+ local firstsource = sourcerange.first
+ local lastsource = sourcerange.last or firstsource
+ if firstsource and firsttarget then
+ local offset = firsttarget - firstsource
+ if filename then
+ local rscale = entry.rscale or 1 -- todo
+ size = size * rscale -- maybe use scale in vf command
+ -- load font, todo: set language and script, the effect hack is ugly
+ local fullname = filename
+ local effect = features.effect
+ if effect then
+ fullname = fullname .. "*" .. effects["effect={"..effect.."}"]
+ end
+ local id = definedfont {
+ name = fullname,
+ size = size,
+ }
+ local chars = fontchars[id]
+ local dropin = fontdata[id]
+ local index = false
+ for i=1,#fonts do
+ local f = fonts[i]
+ if f.id == id and f.size == size then
+ index = i
+ break
+ end
+ end
+ if not index then
+ index = #fonts + 1
+ fonts[index] = { id = id, size = size }
+ end
+ -- copy characters
+ for s=firstsource,lastsource do
+ local t = s + offset
+ local sourceunicode = mathgaps[s] or s
+ if chars[sourceunicode] then
+ local targetunicode = mathgaps[t] or t
+ if feature then
+ sourceunicode = getsubstitution(dropin,sourceunicode,feature,true,"math","dflt") or sourceunicode
+ end
+-- if trace_tweaking then
+-- report_tweak("copying %s %U from file %a to %s %U",target,original,thesource,sourceunicode,filename,thetarget,targetunicode)
+-- end
+ characters[targetunicode] = copiedglyph(target,characters,chars,sourceunicode,index)
+ end
+ end
+ --
+ local inherit = entry.inherit
+ if inherit then
+ local mathparameters = target.mathparameters
+ local dropparameters = fontdata[id].mathparameters
+ if dropparameters then
+ for name in sortedhash(inherit) do
+ local value = dropparameters[name]
+ if value then
+ mathparameters[name] = value
+ end
+ end
+ end
+ end
+ --
+ elseif feature then
+ for s=firstsource,lastsource do
+ local t = s + offset
+ local sourceunicode = mathgaps[s] or s
+ local targetunicode = mathgaps[t] or t
+ local variant = getsubstitution(original,sourceunicode,feature,true,"math","dflt")
+ local data = characters[variant]
+ if data then
+-- if trace_tweaking then
+-- report_tweak("copying %s %U from feature %a to %s %U",target,original,thesource,sourceunicode,feature,thetarget,targetunicode)
+-- end
+ characters[targetunicode] = copytable(data)
+ end
end
else
- report_math("invalid math parameter %a",name)
+ for s=firstsource,lastsource do
+ local t = s + offset
+ local sourceunicode = mathgaps[s] or s
+ local targetunicode = mathgaps[t] or t
+ if sourceunicode ~= targetunicode then
+ local data = characters[sourceunicode]
+ if data then
+-- if trace_tweaking then
+-- report_tweak("copying %s %U to %s %U",target,original,thesource,sourceunicode,thetarget,targetunicode)
+-- end
+ characters[targetunicode] = copytable(data)
+ end
+ end
+ end
end
- mathparameters[name] = newvalue
+ else
+ -- error
end
end
end
end
end
end
+
+ function mathtweaks.fallbacks(target,original,parameters)
+ local fallbacks = target.specification.fallbacks
+ if fallbacks then
+ local definitions = fonts.collections.definitions[fallbacks]
+ if definitions then
+ local list = { }
+ for i=1,#definitions do
+ local definition = definitions[i]
+ -- local check = definition.check
+ -- local force = definition.force
+ local first = definition.start
+ local last = definition.stop
+ local offset = definition.offset or first
+ list[#list+1] = {
+ filename = definition.font,
+ rscale = definition.rscale or 1,
+ source = { first = first, last = last },
+ target = { first = offset, last = offset + (last - first) },
+ }
+ end
+ mathtweaks.replacealphabets(target,original,{
+ tweak = "replacealphabets",
+ list = list,
+ } )
+ end
+ end
+ end
+
end
-local function applytweaks(when,target,original)
- local goodies = original.goodies
- if goodies then
- for i=1,#goodies do
- local goodie = goodies[i]
- local mathematics = goodie.mathematics
- local tweaks = mathematics and mathematics.tweaks
- if type(tweaks) == "table" then
- tweaks = tweaks[when]
- if type(tweaks) == "table" then
- if trace_defining then
- report_math("tweaking math of %a @ %p (%s)",target.properties.fullname,target.parameters.size,when)
+local apply_tweaks = true directives.register("math.applytweaks", function(v) apply_tweaks = v end)
+local applied_tweaks = 0
+
+local function tweaklist(target,original,tweaks)
+ if type(tweaks) == "table" then
+ for i=1,#tweaks do
+ local tweak = tweaks[i]
+ if type(tweak) == "table" then
+ local action = mathtweaks[tweak.tweak or ""]
+ if action then
+ local feature = tweak.feature
+ local features = target.specification.features.normal
+ if feature == nil or features[feature] then
+ local version = tweak.version
+ if version and version ~= target.tweakversion then
+ report_math("skipping tweak %a version %a",tweak.tweak,version)
+ elseif original then
+ action(target,original,tweak)
+ else
+ action(target,tweak)
+ end
end
- for i=1,#tweaks do
- local tweak= tweaks[i]
- local tvalue = type(tweak)
- if tvalue == "function" then
- tweak(target,original)
+ end
+ end
+ end
+ end
+end
+
+function mathtweaks.tweaks(target,original,parameters)
+ tweaklist(target,original,parameters.list)
+end
+
+local function applytweaks(when,target,original)
+ if apply_tweaks then
+ local goodies = original.goodies
+ if goodies then
+ local tweaked = target.tweaked or { }
+ if tweaked[when] then
+ if trace_defining then
+ report_math("tweaking math of %a @ %p (%s: %s)",target.properties.fullname,target.parameters.size,when,"done")
+ end
+ else
+ for i=1,#goodies do
+ local goodie = goodies[i]
+ local mathematics = goodie.mathematics
+ local tweaks = mathematics and mathematics.tweaks
+ if type(tweaks) == "table" then
+ statistics.starttiming(mathtweaks)
+ applied_tweaks = applied_tweaks + 1
+ tweaks = tweaks[when]
+ if trace_defining then
+ report_math("tweaking math of %a @ %p (%s: %s)",target.properties.fullname,target.parameters.size,when,"okay")
end
+ tweaklist(target,original,tweaks)
end
+ statistics.stoptiming(mathtweaks)
end
+ tweaked[when] = true
+ target.tweaked = tweaked
end
end
+ else
+ report_math("not tweaking math of %a @ %p (%s)",target.properties.fullname,target.parameters.size,when)
end
end
+local function tweakable(target)
+ local mathparameters = target.mathparameters
+-- local features = target.specification.features
+-- local mathscript = features and features.normal and features.normal.script == "math"
+-- return mathparameters and mathscript -- and target,properties.hasmath
+ return mathparameters
+end
+
function mathematics.tweakbeforecopyingfont(target,original)
- local mathparameters = target.mathparameters -- why not hasmath
- if mathparameters then
+ if use_math_goodies and tweakable(target) then
applytweaks("beforecopying",target,original)
end
end
function mathematics.tweakaftercopyingfont(target,original)
- local mathparameters = target.mathparameters -- why not hasmath
- if mathparameters then
+ if use_math_goodies and tweakable(target) then
applytweaks("aftercopying",target,original)
end
end
-sequencers.appendaction("mathparameters","system","mathematics.scaleparameters")
-sequencers.appendaction("mathparameters","system","mathematics.checkaccentbaseheight") -- should go in lfg instead
-sequencers.appendaction("mathparameters","system","mathematics.checkprivateparameters") -- after scaling !
-sequencers.appendaction("mathparameters","system","mathematics.overloadparameters")
+statistics.register("math tweaking time",function()
+ if applied_tweaks > 0 then
+ return string.format("%s seconds, %s math goodie tables", statistics.elapsedtime(mathtweaks),applied_tweaks)
+ end
+end)
-sequencers.appendaction("beforecopyingcharacters","system","mathematics.tweakbeforecopyingfont")
-sequencers.appendaction("aftercopyingcharacters", "system","mathematics.tweakaftercopyingfont")
+do
--- no, it's a feature now (see good-mth):
---
--- sequencers.appendaction("aftercopyingcharacters", "system","mathematics.overloaddimensions")
+ local defaults = {
+ {
+ source = "uppercasescript",
+ target = "uppercasecalligraphic",
+ },
+ {
+ source = "lowercasescript",
+ target = "lowercasecalligraphic",
+ },
+ {
+ source = "uppercaseboldscript",
+ target = "uppercaseboldcalligraphic",
+ },
+ {
+ source = "lowercaseboldscript",
+ target = "lowercaseboldcalligraphic",
+ },
+ }
--- a couple of predefined tweaks:
+ local reported = table.setmetatableindex("table")
+
+ function mathematics.checkaftercopyingfont(target,original)
+ if tweakable(target) then
+ local chardata = characters.data
+ local characters = target.characters
+ --
+ for i=1,#defaults do
+ -- we assume no ssty here yet .. todo
+ local default = defaults[i]
+ local block = blocks[default.target]
+ local first = block.first
+ local last = block.last
+ if not characters[mathgaps[first] or last] then
+ mathtweaks.replacealphabets(target,original,{
+ tweak = "replacealphabets",
+ list = { default }
+ })
+ end
+ end
+ --
+ local addvariant = mathematics.addvariant
+ local function register(old,new)
+ for i, cold in next, old do
+ local cnew = new[i]
+ addvariant(target,cold,cold,0xFE00)
+ addvariant(target,cnew,cnew,0xFE01)
+ addvariant(target,cnew,cold,0xFE00)
+ addvariant(target,cold,cnew,0xFE01)
+ end
+ end
+ local sr = mathematics.alphabets.sr.tf
+ local ca = mathematics.alphabets.ca.tf
+ register(sr.ucletters,ca.ucletters)
+ register(sr.lcletters,ca.lcletters)
+ --
+ if checkitalics then
+ local italics = 0
+ local metadata = original.shared.rawdata.metadata
+ local fontname = metadata and metadata.fontname or false
+ -- for k, v in sortedhash(characters) do
+ for k, v in next, characters do
+ local italic = v.italic
+ if italic then
+ local unicode = v.unicode
+ if unicode and not reported[fontname][unicode] then -- there can be variants
+ local data = chardata[unicode]
+ local description = data.description or ""
+ local category = data.category or "--"
+ report_tweak("italics: %C %p %s %s",target,original,k,italic,category,description)
+ reported[fontname][unicode] = true
+ end
+ italics = italics + 1
+ end
+ end
+ if italics > 0 then
+ report_tweak("still has %i italics",target,original,italics)
+ goto NEXTSTEP
+ end
+ end
-local tweaks = { }
-mathematics.tweaks = tweaks
+ target.properties.mathitalics = false
+ target.properties.textitalics = false
+ ::NEXTSTEP::
+ -- more to come
+ end
+ end
--- helpers
+end
-local setmetatableindex = table.setmetatableindex
+function mathematics.beforepassingfonttotex(target)
+ if tweakable(target) then
+ applytweaks("beforepassing",target,target)
+ end
+end
-local getfontoffamily = tex.getfontoffamily
+sequencers.appendaction("mathparameters","system","mathematics.overloadparameters")
+sequencers.appendaction("mathparameters","system","mathematics.scaleparameters")
+----------.appendaction("mathparameters","system","mathematics.checkaccentbaseheight") -- should go in lfg instead
+----------.appendaction("mathparameters","system","mathematics.checkprivateparameters") -- after scaling !
-local fontcharacters = fonts.hashes.characters
-local extensibles = utilities.storage.allocate()
-fonts.hashes.extensibles = extensibles
+sequencers.appendaction("beforecopyingcharacters","system","mathematics.tweakbeforecopyingfont")
+sequencers.appendaction("aftercopyingcharacters", "system","mathematics.tweakaftercopyingfont")
+sequencers.appendaction("aftercopyingcharacters", "system","mathematics.checkaftercopyingfont")
+sequencers.appendaction("beforepassingfonttotex", "system","mathematics.beforepassingfonttotex")
-local chardata = characters.data
-local extensibles = mathematics.extensibles
+-- no, it's a feature now (see good-mth):
+--
+-- sequencers.appendaction("aftercopyingcharacters", "system","mathematics.overloaddimensions")
-- we use numbers at the tex end (otherwise we could stick to chars)
@@ -261,6 +3796,8 @@ local e_unknown = extensibles.unknown
local unknown = { e_unknown, false, false }
+-- top curly bracket: 23DE
+
local function extensiblecode(font,unicode)
local characters = fontcharacters[font]
local character = characters[unicode]
@@ -279,15 +3816,7 @@ local function extensiblecode(font,unicode)
if not char then
return unknown
end
- if character.horiz_variants then
- if character.vert_variants then
- return { e_mixed, code, character }
- else
- local m = char.mathextensible
- local e = m and extensibles[m]
- return e and { e, code, character } or unknown
- end
- elseif character.vert_variants then
+ if character.parts then
local m = char.mathextensible
local e = m and extensibles[m]
return e and { e, code, character } or unknown
@@ -329,19 +3858,19 @@ local function horizontalcode(family,unicode)
local loffset = 0
local roffset = 0
if kind == e_left then
- local charlist = data[3].horiz_variants
+ local charlist = data[3].parts
if charlist then
local left = charlist[1]
loffset = abs((left["start"] or 0) - (left["end"] or 0))
end
elseif kind == e_right then
- local charlist = data[3].horiz_variants
+ local charlist = data[3].parts
if charlist then
local right = charlist[#charlist]
roffset = abs((right["start"] or 0) - (right["end"] or 0))
end
elseif kind == e_horizontal then
- local charlist = data[3].horiz_variants
+ local charlist = data[3].parts
if charlist then
local left = charlist[1]
local right = charlist[#charlist]
@@ -355,124 +3884,68 @@ end
mathematics.extensiblecode = extensiblecode
mathematics.horizontalcode = horizontalcode
-interfaces.implement {
+interfaces.implement { -- can be public with two times "integerargument"
name = "extensiblecode",
arguments = { "integer", "integer" },
actions = { extensiblecode, context }
}
-interfaces.implement {
+interfaces.implement { -- can be public with two times "integerargument"
name = "horizontalcode",
arguments = { "integer", "integer" },
actions = function(family,unicode)
local kind, loffset, roffset = horizontalcode(family,unicode)
- texsetdimen("scratchleftoffset", loffset)
- texsetdimen("scratchrightoffset",roffset)
+ texsetdimen(d_scratchleftoffset, loffset)
+ texsetdimen(d_scratchrightoffset,roffset)
context(kind)
end
}
-
-local stack = { }
-
-function mathematics.registerfallbackid(n,id,name)
- if trace_collecting then
- report_math("resolved fallback font %i, name %a, id %a, used %a",
- n,name,id,fontproperties[id].fontname)
+function mathematics.variantcode(unicode,variant)
+ local data = fontcharacters[getfontoffamily(texget("fam"))]
+ local char = data and data[unicode]
+ if char then
+ for i=1,variant do
+ local next = char.next
+ if next then
+ unicode = next
+ char = data[next]
+ else
+ break
+ end
+ end
end
- stack[#stack][n] = id
+ return unicode
end
-interfaces.implement { -- will be shared with text
- name = "registerfontfallbackid",
- arguments = { "integer", "integer", "string" },
- actions = mathematics.registerfallbackid,
-}
-
-function mathematics.resolvefallbacks(target,specification,fallbacks)
- local definitions = fonts.collections.definitions[fallbacks]
- if definitions then
- local size = specification.size -- target.size
- local list = { }
- insert(stack,list)
- context.pushcatcodes("prt") -- context.unprotect()
- for i=1,#definitions do
- local definition = definitions[i]
- local name = definition.font
- local features = definition.features or ""
- local size = size * (definition.rscale or 1)
- context.font_fallbacks_register_math(i,name,features,size)
- if trace_collecting then
- report_math("registering fallback font %i, name %a, size %a, features %a",i,name,size,features)
- end
- end
- context.popcatcodes()
- end
-end
-
-function mathematics.finishfallbacks(target,specification,fallbacks)
- local list = remove(stack)
- if list and #list > 0 then
- local definitions = fonts.collections.definitions[fallbacks]
- if definitions and #definitions > 0 then
- if trace_collecting then
- report_math("adding fallback characters to font %a",specification.hash)
- end
- local definedfont = fonts.definers.internal
- local copiedglyph = fonts.handlers.vf.math.copy_glyph
- local fonts = target.fonts
- local size = specification.size -- target.size
- local characters = target.characters
- if not fonts then
- fonts = { }
- target.fonts = fonts
- end
- if #fonts == 0 then
- fonts[1] = { id = 0, size = size } -- self, will be resolved later
- end
- local done = { }
- for i=1,#definitions do
- local definition = definitions[i]
- local name = definition.font
- local start = definition.start
- local stop = definition.stop
- local gaps = definition.gaps
- local check = definition.check
- local force = definition.force
- local rscale = definition.rscale or 1
- local offset = definition.offset or start
- local id = list[i]
- if id then
- local index = #fonts + 1
- fonts[index] = { id = id, size = size }
- local chars = fontchars[id]
- local function remap(unic,unicode,gap)
- if check and not chars[unicode] then
- return
- end
- if force or (not done[unic] and not characters[unic]) then
- if trace_collecting then
- report_math("replacing math character %C by %C using vector %a and font id %a for %a%s%s",
- unic,unicode,fallbacks,id,fontproperties[id].fontname,check and ", checked",gap and ", gap plugged")
- end
- characters[unic] = copiedglyph(target,characters,chars,unicode,index)
- done[unic] = true
- end
- end
- local step = offset - start
- for unicode = start, stop do
- remap(unicode + step,unicode,false)
- end
- if gaps then
- for unic, unicode in next, gaps do
- remap(unic,unicode,true)
- remap(unicode,unicode,true)
- end
- end
- end
+function mathematics.variantcount(unicode)
+ local data = fontcharacters[getfontoffamily(texget("fam"))]
+ local char = data and data[unicode]
+ local count = 0
+ if char then
+ while true do
+ local next = char.next
+ if next then
+ count = count + 1
+ char = data[next]
+ else
+ break
end
- elseif trace_collecting then
- report_math("no fallback characters added to font %a",specification.hash)
end
end
+ return count
end
+
+interfaces.implement {
+ name = "mathvariantcode",
+ public = true,
+ arguments = { "integer", "integer" },
+ actions = { mathematics.variantcode, context },
+}
+
+interfaces.implement {
+ name = "mathvariantcount",
+ public = true,
+ arguments = "integer",
+ actions = { mathematics.variantcount, context },
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-ali.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-ali.lmt
new file mode 100644
index 00000000000..87ea67c727c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-ali.lmt
@@ -0,0 +1,292 @@
+if not modules then modules = { } end modules ['math-ali'] = {
+ version = 1.001,
+ comment = "companion to math-ali.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local unpack = unpack
+local gsub = string.gsub
+local sort, keys = table.sort, table.keys
+local settings_to_array = utilities.parsers.settings_to_array
+local P, R, S, C, Cc, Ct, Cs = lpeg.P, lpeg.R, lpeg.S, lpeg.C, lpeg.Cc, lpeg.Ct, lpeg.Cs
+local lpegmatch = lpeg.match
+
+local context = context
+
+do
+
+ local rows = utilities.parsers.groupedsplitat(";")
+ local cols = utilities.parsers.groupedsplitat(",")
+
+ local actions = {
+ transpose = function(m)
+ local t = { }
+ for j=1,#m[1] do
+ local r = { }
+ for i=1,#m do
+ r[i] = m[i][j]
+ end
+ t[j] = r
+ end
+ return t
+ end,
+ negate = function(m)
+ for i=1,#m do
+ local mi = m[i]
+ for j=1,#mi do
+ mi[j] = - mi[j]
+ end
+ end
+ return m
+ end,
+ scale = function(m,s)
+ s = tonumber(s)
+ if s then
+ for i=1,#m do
+ local mi = m[i]
+ for j=1,#mi do
+ mi[j] = s*mi[j]
+ end
+ end
+ end
+ return m
+ end,
+ }
+
+ local useractions = {
+ }
+
+ interfaces.implement {
+ name = "simplematrix",
+ arguments = "2 strings",
+ actions = function(method,data)
+ local m = lpegmatch(rows,(gsub(data,"%s+"," ")))
+ for i=1,#m do
+ m[i] = lpegmatch(cols,m[i])
+ end
+ local methods = settings_to_array(method)
+ for i=1,#methods do
+ local detail = settings_to_array(methods[i])
+ local method = detail[1]
+ local action = actions[method] or useractions[method]
+ if action then
+ m = action(m,unpack(detail,2)) or m
+ end
+ end
+ for i=1,#m do
+ context("\\NC %{ \\NC }t \\NR",m[i])
+ end
+ end
+ }
+
+ function mathematics.registersimplematrix(name,action)
+ if type(action) == "function" then
+ useractions[name] = action
+ end
+ end
+
+ -- \cases{1, x>0 ; -1, x<0 }
+
+ interfaces.implement {
+ name = "simplecases",
+ arguments = "2 strings",
+ actions = function(method,data)
+ -- no methods yet
+ local m = lpegmatch(rows,(gsub(data,"%s+"," ")))
+ for i=1,#m do
+ m[i] = lpegmatch(cols,m[i])
+ end
+ for i=1,#m do
+ context("\\NC %{ \\NC }t \\NR",m[i])
+ end
+ end
+ }
+
+end
+
+do
+
+ local relations = {
+ ["<"] = "<", [">"] = ">",
+ ["!<"] = "≮", ["!>"] = "≯",
+ ["<<"] = "≪", [">>"] = "≫",
+ ["="] = "=", ["=="] = "=",
+ ["<>"] = "≠", ["!="] = "≠",
+ ["<="] = "≤", [">="] = "≥",
+ ["=<"] = "≦", ["=>"] = "≧",
+ ["!=<"] = "≰", ["!=>"] = "≱",
+ ["~"] = "≈", ["~~"] = "≈",
+ }
+
+ for k, v in next, table.copy(relations) do relations[v] = v end
+
+ -- local binaries = {
+ -- ["+"] = "+",
+ -- ["-"] = "-",
+ -- ["/"] = "/",
+ -- ["*"] = "",
+ -- }
+
+ local separators = {
+ [","] = true,
+ [";"] = true,
+ }
+
+ local alternatives = {
+ -- not that many
+ }
+
+ local p_sign = S("-+")
+ local p_script = S("^")^1
+ local p_number = R("09","..")^1 + lpeg.patterns.nestedbraces
+ local p_alpha = R("az","AZ")^1
+ local p_variable = p_alpha * (P("_") * (p_number + p_alpha))^-1
+
+ local spacing = P(" ")^0
+ local script = Cs(p_script * Cc("{") * p_sign^0 * (p_number + p_variable) * Cc("}"))
+ local sign = C(p_sign) + Cc("+")
+ local number = C(p_number)
+ local variable = C(p_variable)
+ -- local binary = lpeg.utfchartabletopattern(binaries) / binaries
+ local relation = lpeg.utfchartabletopattern(relations) / relations
+ local separator = lpeg.utfchartabletopattern(separators)
+
+ local snippet = Ct (
+ (
+ spacing * sign * spacing * number * spacing * variable
+ + spacing * sign * spacing * number * spacing * Cc(false)
+ + spacing * sign * spacing * Cc(false) * spacing * variable
+ ) * (script + Cc(false))
+ )
+
+ local parser = Ct ( Ct (
+ ( Ct ( snippet^1 ) * spacing * relation )^1
+ * ( Ct ( snippet^1 ) * spacing * separator^0 )
+ )^1 )
+
+ local num = "!"
+
+ local ctx_NC, ctx_NR = context.NC, context.NR
+ local ctx_typ = context.typ
+ local ctx_ord, ctx_rel = context.mathord, context.mathrel
+
+ local clean = table.setmetatableindex(function(t,k)
+ local v = gsub(k,"[{}]","")
+ t[k] = v
+ return v
+ end)
+
+ alternatives.equationsystem = function(action,str)
+ local rows = lpegmatch(parser,str)
+ if not rows then
+ ctx_typ("bad system, case 1: %s",1,str)
+ return
+ end
+ local nrow = #rows
+ local all = table.setmetatableindex("table")
+ for r=1,nrow do
+ local row = rows[r]
+ for s=1,#row,2 do
+ local set = row[s]
+ for v=1,#set do
+ local vvv = set[v]
+ local var = vvv[3]
+ if not var then
+ var = num
+ end
+ if set[var] then
+ print("bad system, two constants")
+ end
+ set[var] = set[v]
+ all[s][var] = true
+ set[v] = nil
+ end
+ end
+ end
+ --
+ local cnt = #rows[1]
+ for r=1,nrow do
+ if #rows[r] ~= cnt then
+ ctx_typ("bad system, case %i: %s",2,str)
+ return
+ end
+ end
+ for r=1,#rows[1] do
+ local a = keys(all[r])
+ sort(a,function(a,b)
+ return clean[a] < clean[b]
+ end)
+ all[r] = a
+ end
+ --
+ for r=1,nrow do
+ local row = rows[r]
+ for r=1,#row do
+ local set = row[r]
+ local how = all[r]
+ if #how > 0 then
+ -- local done = false
+ for i=1,#how do
+ local k = how[i]
+ local e = set[k]
+ if e then
+ ctx_NC()
+ -- if not done and e[1] == "+" then
+ if i == 1 and e[1] == "+" then
+ -- ctx_ord("")
+ -- ctx_hphantom(e[1])
+ -- ctx_ord("")
+ else
+ ctx_ord("")
+ context(e[1])
+ ctx_ord("")
+ -- done = true
+ end
+ ctx_NC()
+ if e[2] then
+ context(e[2])
+ -- done = true
+ end
+ if e[3] then
+ context(e[3])
+ -- done = true
+ end
+ if e[4] then
+ context(e[4])
+ -- done = true
+ end
+ else
+ ctx_NC()
+ -- ctx_mathord("")
+ ctx_NC()
+ end
+ end
+ else
+ ctx_NC()
+ ctx_ord("")
+ context(set)
+ ctx_ord("")
+ end
+ end
+ ctx_NR()
+ end
+ end
+
+ interfaces.implement {
+ name = "simplealign",
+ -- public = true,
+ protected = true,
+ arguments = "3 strings",
+ actions = function(alternative,action,str)
+ local a = alternatives[alternative]
+ if a then
+ a(action,str)
+ else
+ context(str)
+ end
+ end
+ }
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-ali.mkxl b/Master/texmf-dist/tex/context/base/mkxl/math-ali.mkxl
index 2007ed83ccf..baaa4666a85 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-ali.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-ali.mkxl
@@ -15,6 +15,8 @@
\unprotect
+\registerctxluafile{math-ali}{autosuffix}
+
%D The code here has been moved from other files. Beware: the \MKII\ and \MKIV\ code
%D is not gathered in files with the same name. In the meantime this code has been
%D adapted to \MKIV\ but more is possible. The code is somewhat complicated by the
@@ -27,96 +29,201 @@
% matrix : ok
% substack :
+% Alignment overhaul timestamp: around watching GhostNote Live in Utrecht 2022
+% (energizing funky professionalism).
+
+%D The following macros are moved to this module because here we deal mostly with
+%D alignment issues. In principle one should see strc-mat, math-ini and math-ali as
+%D a close operation. The \type {\displaywidth} is only known inside a display
+%D formula, so we need to catch it when still zero.
+
+\permanent\def\checkeddisplaywidth % hsize if zero
+ {\dimexpr
+ \ifzeropt\displaywidth
+ \hsize
+ \else
+ \displaywidth
+ \fi
+ \relax}
+
+\permanent\def\maximizeddisplaywidth % larger than zero but within hsize
+ {\dimexpr
+ \ifzeropt\displaywidth
+ \hsize
+ \orelse\ifdim\displaywidth>\hsize
+ \hsize
+ \else
+ \displaywidth
+ \fi
+ \relax}
+
%D \macros
%D {definemathalignment, setupmathalignment, startmathalignment}
%D
%D Modules may provide additional alignment features. The following kind of plain
%D mechanisms are provided by the core.
-\newtoks\t_math_align_a
-\newtoks\t_math_align_b
-\newtoks\t_math_align_c
+% \startformula
+% \startalign[m=3, n=2, align={1:right,2:left},distance=2em]
+% \NC 1.1 \NC = 1.2 \NC 2.1 \NC = 2.2 \NC 3.1 \NC = 3.2 \NR
+% \NC 1 \NC = 1 \NC 2 \NC = 2 \NC 3 \NC = 3 \NR
+% \NC 1.1 \NC = 1.2 \NC 2.1 \NC = 2.2 \NC 3.1 \NC = 3.2 \NR
+% \stopalign
+% \stopformula
+
+\newtoks \mathdisplayaligntweaks
+
+\newtoks \t_math_align_a
+\newtoks \t_math_align_b
+\newtoks \t_math_align_c
+\newgluespec \d_math_eqalign_distance
+\newgluespec \d_math_eqalign_rulethickness
+\newdimension\d_math_eqalign_number_distance
+\newinteger \c_math_eqalign_repeat
-\newskip\d_math_eqalign_distance
-\newskip\d_math_eqalign_rulethickness
+\mutable\def\displayopenupvalue{.25\bodyfontsize}
\protected\def\math_eqalign_distance
- {\relax
- \ifdim\d_math_eqalign_distance>\zeropoint
- % \hskip\d_math_eqalign_distance
- \tabskip\d_math_eqalign_distance
- \fi
+ {%global\expandafter\integerdef\csname\??mathbeginclass\the\c_math_eqalign_column\endcsname\mathbegincode
+ \global\expandafter\integerdef\csname\??mathendclass \the\c_math_eqalign_column\endcsname\mathendcode
\mathalignmentparameter\c!separator
\relax}
-\mutable\def\displayopenupvalue{.25\bodyfontsize}
-
\def\math_build_eqalign
{\scratchtoks\emptytoks
\d_math_eqalign_distance\mathalignmentparameter\c!distance\relax
+ \ifcstok{\mathalignmentparameter\c!align}\v!auto
+ \d_math_eqalign_number_distance\mathalignmentparameter\c!numberdistance\relax
+ \letmathalignmentparameter\c!align\v!middle
+ \else
+ \d_math_eqalign_number_distance\zeropoint
+ \fi
\scratchcounterone\mathalignmentparameter\c!m
\scratchcountertwo\mathalignmentparameter\c!n
- \etoksapp\scratchtoks{\the\t_math_align_a}%
+ \toksapp\scratchtoks\t_math_align_a
+ \toksapp\scratchtoks{\global\c_math_eqalign_repeat\zerocount}%
\scratchcounter\plusone
\dorecurse{\numexpr\scratchcounterone*\scratchcountertwo-\plusone\relax}
{\ifnum\scratchcounter=\scratchcountertwo
\scratchcounter\plusone
- \etoksapp\scratchtoks{\math_eqalign_distance}%
- \etoksapp\scratchtoks{\global\c_math_eqalign_column\zerocount}%
+ % preamble expansion hell ...
+ \toksapp\scratchtoks {\tabskip\d_math_eqalign_distance}%
+ % so ...
+ \toksapp\scratchtoks {\relax\math_eqalign_distance}%
+ \etoksapp\scratchtoks{\global\advanceby\c_math_eqalign_repeat\the\scratchcountertwo\relax}%
\else
- \advance\scratchcounter\plusone
+ \advanceby\scratchcounter\plusone
\fi
- \etoksapp\scratchtoks{\the\t_math_align_b}}%
- \etoksapp\scratchtoks{\the\t_math_align_c}}
+ \toksapp\scratchtoks\t_math_align_b}%
+ \toksapp\scratchtoks\t_math_align_c
+ \toksapp\scratchtoks{\global\c_math_eqalign_repeat\zerocount}}
-\def\math_math_in_eqalign#1%
- {\startforceddisplaymath
+\def\math_eqalign_set_defaults
+ {\normalbaselines % hm, spacing ?
+ \mathsurround\zeropoint
+ \tabskip\zeropoint
+ \everycr\emptytoks}
+
+%installcorenamespace{mathbeginclass} % not needed currently
+\installcorenamespace{mathendclass}
+
+%global\expandafter\integerdef\csname\??mathbeginclass\the\zerocount\endcsname\mathbegincode
+\global\expandafter\integerdef\csname\??mathendclass \the\zerocount\endcsname\mathendcode
+
+\protected\def\math_math_in_eqalign#1%
+ {\mathbeginclass\ifcsname\??mathendclass\the\numexpr\c_math_eqalign_column-\plusone\relax\endcsname\lastnamedcs\else\mathunsetcode\fi
+ \startforceddisplaymath
\tabskip\zeropoint
\everycr\emptytoks
- {{}#1{}}%
- \stopforceddisplaymath}
+ #1%
+ \stopforceddisplaymath
+ \ifnum\lastrightclass<\mathunsetcode
+ %global\expandafter\integerdef\csname\??mathbeginclass\the\c_math_eqalign_column\endcsname\lastleftclass
+ \global\expandafter\integerdef\csname\??mathendclass \the\c_math_eqalign_column\endcsname\lastrightclass
+ \fi
+ }
-\def\math_text_in_eqalign#1%
- {\startimath
+\noaligned\protected\def\math_text_in_eqalign#1%
+ {\mathbeginclass\mathordcode
+ \mathendclass \mathordcode
+ \startimath
\tabskip\zeropoint
\everycr\emptytoks
#1%
\stopimath}
-\permanent\protected\def\eqalign#1% why no halign here, probably because of displaywidth
- {\emptyhbox % why no \dontleavehmode
- \mskip\thinmuskip
- \vcenter
- {\math_openup\displayopenupvalue % was: \openup\jot
- \mathsurround\zeropoint
- \ialign{%
- \strut
- \hfil
- \startforceddisplaymath{\alignmark\alignmark}\stopforceddisplaymath
- \aligntab
- \startforceddisplaymath{{}\alignmark\alignmark{}}\stopforceddisplaymath
- \hfil\crcr
- #1\crcr}%
- }%
- \mskip\thinmuskip}
-
-% preamble is scanned for tabskips so we need the span to prevent an error message
-
-\setnewconstant\eqalignmode\plusone
-
-% use zeroskipplusfill
+% the preamble is scanned for tabskips so we need the span to prevent an error
+% message but we can probably do without that hack now .. best not change this
+% now .. what works now keeps working
+
+\setnewconstant\c_strc_formulas_check_width\plusone
+
+\newboundary\c_math_align_l_marker
+\newboundary\c_math_align_r_marker
+
+% formula : numbermethod down : default
+% formula : numberlocation overlay : option
+% mathalign : align ..| auto :
+% mathalign : adaptive yes : synchronize glue
+
+% \startplaceformula
+% \startformula[numbermethod=down,numberlocation=normal]
+% \medmuskip 4mu plus 2mu minus 2mu \showmakeup[mathglue]\showglyphs\showboxes
+% \startalign[adaptive=yes,align=auto]
+% \NC aaa+x+xxxxxxxx+x+xxxx \EQ x+xxx \NR[eq:two:zz]
+% \NC x+x \EQ x+x+x+xxx+x+x+xxx+xx+xx \NR[eq:two:xx]
+% \stopalign
+% \stopformula
+% \stopplaceformula
+%
+% \startplaceformula
+% \startformula[numbermethod=normal,numberlocation=normal]
+% \medmuskip 4mu plus 2mu minus 2mu \showmakeup[mathglue]\showglyphs\showboxes
+% \startalign[adaptive=no,align=middle]
+% \NC aaa+x+xxxxxxxx+x+xxxx \EQ x+xxx \NR[eq:two:zz]
+% \NC x+x \EQ x+x+x+xxx+x+x+xxx+xx+xx \NR[eq:two:xx]
+% \stopalign
+% \stopformula
+% \stopplaceformula
+
+\newconditional\c_math_align_overflow_mode \settrue\c_math_align_overflow_mode
+\newconditional\c_math_align_reformat_mode \settrue\c_math_align_reformat_mode
+\newconditional\c_strc_formulas_overlay_number \settrue\c_strc_formulas_overlay_number
+
+\protected\def\math_text_in_align
+ {\scratchcounter\numexpr\c_math_eqalign_row+\plusone\relax
+ \usemathalignmentstyleandcolor\c!textstyle\c!textcolor
+ \usemathalignmentstyleandcolor{\c!textstyle:\the\scratchcounter}{\c!textcolor:\the\scratchcounter}%
+ \mathalignmentparameter\c!text
+ \mathalignmentparameter{\c!text:\the\scratchcounter}}
+
+\def\math_align_initialize_class_states
+ {}
+
+\def\math_align_reset_class_states
+ {\lastleftclass \mathbegincode
+ \lastrightclass\mathendcode}
-\def\math_prepare_r_eqalign_no
- {\t_math_align_a
- {\strut
- \tabskip\zeropoint
- \alignmark\alignmark % for picking up the number
+\def\math_prepare_l_eqalign_no % \checkeddisplaymath
+ {\math_align_initialize_class_states
+ \t_math_align_a
+ {\relax
+ \strut
+ \math_text_in_align
+ \aligncontent % for picking up the number
+ \ifnum\c_strc_math_ragged_status=\plusthree
+ \tabskip\zeropoint\relax
+ \else
+ \tabskip\centeringskip
+ \fi
+ \boundary\c_math_align_l_marker
+ \math_align_reset_class_states
\aligntab
\math_first_in_eqalign
\hfil
\math_left_of_eqalign
\span
- \math_math_in_eqalign{\alignmark\alignmark}%
+ \math_math_in_eqalign{\aligncontent}%
\math_right_of_eqalign
\tabskip\zeropoint}%
\t_math_align_b
@@ -124,48 +231,60 @@
\math_next_in_eqalign
\math_left_of_eqalign
\span
- \math_math_in_eqalign{\alignmark\alignmark}%
+ \math_math_in_eqalign{\aligncontent}%
\math_right_of_eqalign
\tabskip\zeropoint}%
- \ifnum\mathraggedstatus=\plusone
+ \ifnum\c_strc_math_ragged_status=\plusthree
\t_math_align_c
{\hfil
+ \tabskip\zeropoint
\aligntab
\span
- \math_text_in_eqalign{\alignmark\alignmark}%
+ \boundary\c_math_align_r_marker
+ \math_alignment_rbox{\aligncontent}%
\tabskip\zeropoint}%
- \orelse\ifnum\mathraggedstatus=\plusthree
+ \orelse\ifnum\c_strc_math_ragged_status=\plusone
\t_math_align_c
{\hfil
- \tabskip\zeropoint\s!plus 1\s!fill
+ \tabskip\stretchingfillskip
\aligntab
\span
- \math_text_in_eqalign{\alignmark\alignmark}%
+ \boundary\c_math_align_r_marker
+ \math_alignment_rbox{\aligncontent}%
\tabskip\zeropoint}%
\else
\t_math_align_c
{\hfil
- \tabskip\centering
+ \tabskip\centeringskip
\aligntab
\span
- \llap{\math_text_in_eqalign{\alignmark\alignmark}}%
+ \boundary\c_math_align_r_marker
+ \math_alignment_rbox{\aligncontent}%
\tabskip\zeropoint}%
\fi
\math_build_eqalign
\the\mathdisplayaligntweaks
- \tabskip\centering}
+ \tabskip\zeropoint
+ \ifnum\c_strc_math_ragged_status=\plusthree
+ \tabskip\stretchingfillskip
+ \fi}
-\def\math_prepare_l_eqalign_no % \checkeddisplaymath
- {\t_math_align_a
- {\strut
- \tabskip\zeropoint
- \alignmark\alignmark % for picking up the number
+\def\math_prepare_r_eqalign_no
+ {\math_align_initialize_class_states
+ \t_math_align_a
+ {\relax
+ \strut
+ \math_text_in_align
+ \tabskip\centeringskip
+ \aligncontent % for picking up the number
+ \boundary\c_math_align_l_marker
+ \math_align_reset_class_states
\aligntab
\math_first_in_eqalign
\hfil
\math_left_of_eqalign
\span
- \math_math_in_eqalign{\alignmark\alignmark}%
+ \math_math_in_eqalign{\aligncontent}%
\math_right_of_eqalign
\tabskip\zeropoint}%
\t_math_align_b
@@ -173,108 +292,134 @@
\math_next_in_eqalign
\math_left_of_eqalign
\span
- \math_math_in_eqalign{\alignmark\alignmark}%
+ \math_math_in_eqalign{\aligncontent}%
\math_right_of_eqalign
\tabskip\zeropoint}%
- \ifnum\mathraggedstatus=\plusone
+ \ifnum\c_strc_math_ragged_status=\plusthree
\t_math_align_c
{\hfil
\aligntab
- \kern-\displaywidth
+ \hfill % the only one !
\span
- \rlap{\math_text_in_eqalign{\alignmark\alignmark}}%
- \tabskip\displaywidth}%
- \orelse\ifnum\mathraggedstatus=\plusthree
- \t_math_align_c
- {\hfil
- \tabskip\zeropoint\s!plus 1\s!fill
- \aligntab
- \kern-\displaywidth
- \span
- \math_rlap{\math_text_in_eqalign{\alignmark\alignmark}}%
- \tabskip\displaywidth}%
+ \boundary\c_math_align_r_marker
+ \math_alignment_lbox{\aligncontent}%
+ \tabskip\zeropoint}%
+ \orelse\ifnum\c_strc_math_ragged_status=\plusone
+ \ifnum\c_strc_math_number_variant=\plusone
+ \t_math_align_c
+ {\hfil
+ \tabskip\stretchingfillskip
+ \aligntab
+ \span
+ \boundary\c_math_align_r_marker
+ \math_alignment_lbox{\aligncontent}%
+ \tabskip\zeropoint}%
+ \else
+ \t_math_align_c
+ {\hfil
+ \tabskip\zeropoint
+ \aligntab
+ \span
+ \boundary\c_math_align_r_marker
+ \math_alignment_lbox{\aligncontent}%
+ \tabskip\stretchingfillskip}%
+ \fi
\else
\t_math_align_c
{\hfil
- \tabskip\centering
+ \tabskip\centeringskip % fails in some cases
\aligntab
- \kern-\displaywidth
\span
- \rlap{\math_text_in_eqalign{\alignmark\alignmark}}%
- \tabskip\displaywidth}%
+ \boundary\c_math_align_r_marker
+ \math_alignment_lbox{\aligncontent}%
+ \tabskip\zeropoint}%
\fi
\math_build_eqalign
\the\mathdisplayaligntweaks
- \tabskip\centering}
+ \tabskip\zeropoint}
-\def\math_halign_checked
- {\halign \ifcase\eqalignmode \or to \checkeddisplaywidth \fi}
+% \def\math_halign_checked_nop
+% {\halign
+% \ifconditional\c_math_align_overflow_mode
+% callback
+% attr
+% \mathnumberlocationattribute
+% \numexpr\ifconditional\c_math_align_reformat_mode\plusfour\else\plustwo\fi * \plussixteen\relax % just a signal
+% \fi}
+%
+% \def\math_halign_checked_yes
+% {\math_halign_checked_nop
+% \ifcase\c_strc_formulas_check_width\else
+% to \checkeddisplaywidth
+% \fi}
+%
+% \def\math_halign_checked
+% {\ifnum\c_strc_formulas_place_number_mode =\plusthree \math_halign_checked_yes \orelse
+% \ifnum\c_strc_formulas_number_mode =\plusthree \math_halign_checked_yes \orelse
+% \ifnum\c_strc_formulas_sub_number_mode =\plusthree \math_halign_checked_yes \orelse
+% \ifnum\c_strc_formulas_nested_number_mode=\plusthree \math_halign_checked_yes \else
+% \math_halign_checked_nop \fi}
-\def\math_both_eqalign_no_normal#1#2%
- {\ifmmode
- \the\mathdisplayaligntweaks
- \vcenter\bgroup
- \enforced\let\math_finish_eqalign_no\egroup
- \else
- \enforced\let\math_finish_eqalign_no\relax
- \fi
- #1%
- \math_halign_checked\expandafter\bgroup\the\scratchtoks\crcr#2\crcr\egroup
- \math_finish_eqalign_no}
+\def\math_halign_checked
+ {\enablematrixalign
+ \halign
+ \ifconditional\c_math_align_overflow_mode
+ callback
+ \s!attr
+ \mathnumberlocationattribute
+ \numexpr\ifconditional\c_math_align_reformat_mode\plusfour\else\plustwo\fi * \plussixteen\relax % just a signal
+ \fi
+ \ifcase\c_strc_formulas_check_width\else
+ to \checkeddisplaywidth
+ \fi}
\installcorenamespace {mathalignlocation}
-\defcsname\??mathalignlocation\v!top \endcsname{\let\math_alignment_halign_method\halign\tpack}
-\defcsname\??mathalignlocation\v!bottom\endcsname{\let\math_alignment_halign_method\halign\vpack}
-\defcsname\??mathalignlocation\v!center\endcsname{\let\math_alignment_halign_method\halign\vcenter}
-
-\let\math_alignment_halign_method\relax
+\defcsname\??mathalignlocation\v!top \endcsname{\tpack }
+\defcsname\??mathalignlocation\v!bottom\endcsname{\vpack }
+\defcsname\??mathalignlocation\v!center\endcsname{\vcenter}
-\def\math_both_eqalign_no_aligned#1%
- {\let\math_alignment_halign_method\math_halign_checked
- \ifmmode
- \the\mathdisplayaligntweaks
- \global\mathnumberstatus\plusone
- \ifcase\mathraggedstatus
- \def\math_finish_eqalign_no{\crcr\egroup}%
- \else % we're in a mathbox
- \ifcsname\??mathalignlocation\mathalignmentparameter\c!location\endcsname
- \lastnamedcs % top|bottom|center as suggested by HM
- \else
- \vcenter
- \fi
- \bgroup
- \def\math_finish_eqalign_no{\crcr\egroup\egroup}%
- \fi
- \fi
- #1%
- \math_alignment_halign_method\expandafter\bgroup\the\scratchtoks\crcr}
+%D Here we implement the user interface part. We start with basic math alignments:
-\def\math_rlap#1%
- {\setbox\scratchbox\hbox{#1}%
- \ifdim\wd\scratchbox>\d_math_number_correction
- \global\d_math_number_correction\wd\scratchbox
- \fi
- \box\scratchbox
- \global\mathnumberstatus\plustwo}
+\newinteger \c_math_eqalign_column
+\newinteger \c_math_eqalign_row
+\newconditional\c_math_eqalign_first
-\def\math_handle_eqalign_no_r_normal {\math_both_eqalign_no_normal \math_prepare_r_eqalign_no}
-\def\math_handle_eqalign_no_l_normal {\math_both_eqalign_no_normal \math_prepare_l_eqalign_no}
-\def\math_handle_eqalign_no_r_aligned{\math_both_eqalign_no_aligned\math_prepare_r_eqalign_no}
-\def\math_handle_eqalign_no_l_aligned{\math_both_eqalign_no_aligned\math_prepare_l_eqalign_no}
-\def\math_finish_eqalign_no {\crcr\egroup}
+\newtoks \everymathalignment
+\newtoks \everymathalignmentdone
-\aliased\let\reqalignno\relax % just in case someone used that
-\aliased\let\leqalignno\relax % just in case someone used that
-\aliased\let\eqalignno \relax % just in case someone used that
+\newdimension \d_math_eqalign_number_threshold
-%D Here we implement the user interface part. We start with basic math alignments:
+\definesystemattribute[mathnumberlocation] [public]
+\definesystemattribute[mathnumberthreshold][public]
-\newcount \c_math_eqalign_column
-\newconditional\c_math_eqalign_first
+\protected\def\math_alignment_lbox#1%
+ {\begingroup
+ \setbox\scratchbox\hbox{\resetformulaparameter\c!location#1}%
+ \ifzeropt\wd\scratchbox\else
+ %\enablematrixalign
+ \hpack
+ \s!attr \mathnumberlocationattribute \numexpr\c_strc_math_ragged_status * \plussixteen + \plusone\relax
+ \s!attr \mathnumberthresholdattribute \numexpr\d_math_eqalign_number_threshold\relax
+ {\strc_formulas_add_distance \plustwo\v!left\mathalignmentparameter
+ \box\scratchbox}%
+ \fi
+ \global\d_math_eqalign_number_threshold\zeropoint % move to begin of row
+ \endgroup}
-\newtoks \everymathalignment
-\newtoks \everymathalignmentdone
+\protected\def\math_alignment_rbox#1%
+ {\begingroup
+ \setbox\scratchbox\hbox{\resetformulaparameter\c!location#1}%
+ \ifzeropt\wd\scratchbox\else
+ %\enablematrixalign
+ \hpack
+ \s!attr \mathnumberlocationattribute \numexpr\c_strc_math_ragged_status * \plussixteen + \plustwo\relax
+ \s!attr \mathnumberthresholdattribute \numexpr\d_math_eqalign_number_threshold\relax
+ {\box\scratchbox
+ \strc_formulas_add_distance \plustwo\v!right\mathalignmentparameter}%
+ \fi
+ \global\d_math_eqalign_number_threshold\zeropoint % move to begin of row
+ \endgroup}
\permanent\tolerant\protected\def\math_alignment_NN[#1]#*[#2]%
{\aligntab
@@ -326,6 +471,7 @@
\enforced\let\NR\math_alignment_NR
\enforced\let\TB\math_common_TB
\global\settrue\c_math_eqalign_first
+ \global\s_strc_math_alignment_inbetween\zeroskip
\to \everymathalignment
\appendtoks
@@ -334,11 +480,9 @@
\pop_macro_EQ
\pop_macro_NN
\pop_macro_NC
+ \global\s_strc_math_alignment_inbetween\zeroskip
\to \everymathalignmentdone
-\let\math_alignment_snap_start\relax
-\let\math_alignment_snap_stop \relax
-
% % experimental:
%
% \def\math_alignment_snap_start
@@ -367,29 +511,76 @@
% \begingroup not permitted ($$...assignments...\halign... ).. check in luametatex
+% \definemathmatrix
+% [pmatrix]
+% [matrix:parentheses]
+% % [align=1:right]
+% [align=all:right]
+% % [align=2:right]
+% % [align={1:left,2:middle,3:right}]
+
+\newgluespec\s_strc_math_alignment_inbetween
+
+\def\strc_math_setup_spacing_aligned#1%
+ {\begingroup
+ % here we abuse the whitespace setter
+ \edef\v_spac_whitespace_current{#1\c!spaceinbetween}%
+ \ifempty\v_spac_whitespace_current
+ \global\s_strc_math_alignment_inbetween\zeroskip
+ \else
+ \spac_whitespace_setup
+ \global\s_strc_math_alignment_inbetween\parskip
+ \fi
+ \endgroup}
+
\permanent\tolerant\protected\def\math_alignment_start[#1]#*[#2]%
- {\edef\currentmathalignment{#1}%
+ {\begingroup
+ \edef\currentmathalignment{#1}%
\ifarguments\or\or
- \setupmathalignment[#1][#2]% bad! ungrouped
+ \setupmathalignment[#1][#2]%
+ \fi
+ \ifcstok{\mathalignmentparameter\c!adaptive}\v!yes
+ \settrue\c_math_align_reformat_mode
+ \else
+ \setfalse\c_math_align_reformat_mode
\fi
\math_alignment_snap_start
\the\everymathalignment
+ \c_math_eqalign_row \zerocount
\c_math_eqalign_column\zerocount
\edef\p_math_alignment_number{\mathalignmentparameter\c!number}%
\processcommacommand
[\mathalignmentparameter\c!align]%
- {\advance\c_math_eqalign_column\plusone\math_eqalign_set_column}% takes argument
+ {\advanceby\c_math_eqalign_column\plusone\math_eqalign_set_column}% takes argument
\global\c_math_eqalign_column\plusone
+ \strc_math_setup_spacing_aligned\mathalignmentparameter
\dostarttagged\t!math\empty
\dostarttagged\t!mtable\currentmathalignment
- \numberedeqalign}
+ % is this check still valid?
+ \ifmmode
+ % we're always in mathmode
+ \the\mathdisplayaligntweaks
+ \ifcsname\??mathalignlocation\mathalignmentparameter\c!location\endcsname
+ \lastnamedcs % top|bottom|center as suggested by HM
+ \else
+ \vcenter
+ \fi
+ \fi
+ \bgroup
+ \ifcstok{\formulaparameter\c!location}\v!left
+ \math_prepare_l_eqalign_no
+ \else
+ \math_prepare_r_eqalign_no
+ \fi
+ \math_halign_checked\expandafter\bgroup\the\scratchtoks\crcr}
\def\math_alignment_stop % can be protected
- {\math_finish_eqalign_no
+ {\crcr\egroup\egroup
\dostoptagged
\dostoptagged
\the\everymathalignmentdone
- \math_alignment_snap_stop}
+ \math_alignment_snap_stop
+ \endgroup}
\installcorenamespace{mathalignment}
\installcorenamespace{mathalignmentvariant}
@@ -397,19 +588,37 @@
\installcommandhandler \??mathalignment {mathalignment} \??mathalignment
\appendtoks
- \frozen\instance\setuevalue{\e!start\currentmathalignment}{\math_alignment_start[\currentmathalignment]}%
- \frozen\instance\setvalue {\e!stop \currentmathalignment}{\math_alignment_stop}%
+ \frozen\protected\instance\edefcsname\e!start\currentmathalignment\endcsname{\math_alignment_start[\currentmathalignment]}%
+ \noaligned\frozen\protected\instance \defcsname\e!stop \currentmathalignment\endcsname{\math_alignment_stop}%
\to \everydefinemathalignment
+% to be tested
+%
+% \appendtoks
+% \frozen\instance\protected\defcsname\e!start\currentmathalignment\endcsname{\math_alignment_start[\currentmathalignment]}%
+% \noaligned\frozen\instance\protected\defcsname\e!stop \currentmathalignment\endcsname{\math_alignment_stop}%
+% \to \everydefinemathalignment
+
\setupmathalignment
[\c!n=2,
\c!m=1,
\c!distance=\emwidth,
+ \c!spaceinbetween=\formulaparameter\c!spaceinbetween,
+ \c!numberthreshold=\zeropoint,
\c!grid=\v!math]
\definemathalignment[align] % default case (this is what amstex users expect)
\definemathalignment[\v!mathalignment] % prefered case (this is cleaner, less clashing)
+% this needs some consideration, it might be obsolete now:
+
+\protected\def\math_display_align_hack
+ {\everycr{\noalign{\penalty\interdisplaylinepenalty}}}
+
+\appendtoks
+ \math_display_align_hack
+\to \mathdisplayaligntweaks
+
% special case.. in case one mistypes ..
\ifdefined \startalignment
@@ -456,29 +665,33 @@
%
-\permanent\protected\def\numberedeqalign
- {\doifelse{\formulaparameter\c!location}\v!left
- \math_handle_eqalign_no_l_aligned
- \math_handle_eqalign_no_r_aligned}
-
\def\math_first_in_eqalign
{\global\c_math_eqalign_column\plusone
+ \global\advanceby\c_math_eqalign_row\plusone
\dostarttagged\t!mtablerow \empty
\dostarttagged\t!mtablecell\empty}
\def\math_next_in_eqalign
- {\global\advance\c_math_eqalign_column\plusone
+ {\global\advanceby\c_math_eqalign_column\plusone
\dostoptagged % finish cell
\dostarttagged\t!mtablecell\empty}
\def\math_left_of_eqalign
{\ifcsname\??mathalignmentvariant\number\c_math_eqalign_column\endcsname
\ifcase\lastnamedcs \or \relax \or \hfill \or \hfill \fi
+ \orelse\ifcsname\??mathalignmentvariant\number\zerocount\endcsname
+ \ifcase\lastnamedcs \or \relax \or \hfill \or \hfill \fi
+ \orelse\ifcsname\??mathalignmentvariant\number\numexpr\c_math_eqalign_column-\c_math_eqalign_repeat\relax\endcsname
+ \ifcase\lastnamedcs \or \relax \or \hfill \or \hfill \fi
\fi}
\def\math_right_of_eqalign
{\ifcsname\??mathalignmentvariant\number\c_math_eqalign_column\endcsname
\ifcase\lastnamedcs \or \hfill \or \relax \or \hfill \fi
+ \orelse\ifcsname\??mathalignmentvariant\number\zerocount\endcsname
+ \ifcase\lastnamedcs \or \hfill \or \relax \or \hfill \fi
+ \orelse\ifcsname\??mathalignmentvariant\number\numexpr\c_math_eqalign_column-\c_math_eqalign_repeat\relax\endcsname
+ \ifcase\lastnamedcs \or \hfill \or \relax \or \hfill \fi
\fi}
\newconditional\c_math_alignment_local_number % not used but when true puts in front (todo)
@@ -503,17 +716,37 @@
\fi
\fi}
-\def\math_eqalign_set_column#1% we could just add to the preamble (as with other alignments)
- {\expandafter\chardef\csname\??mathalignmentvariant\number\c_math_eqalign_column\expandafter\expandafter\expandafter\endcsname
- \ifcsname\??mathalignmentvariant#1\endcsname\lastnamedcs\else\zerocount\fi\relax}
+\protected\def\math_eqalign_set_column_indeed[#1:#2:#3]% we don't really check for all (so * will do too) ... yet
+ {\ifcstok{#2}\emptytoks
+ % current counter
+ \orelse\ifchknum#1\or
+ \c_math_eqalign_column#1\relax
+ \else
+ \c_math_eqalign_column\zerocount
+ \fi
+ \expandafter\integerdef\csname\??mathalignmentvariant\number\c_math_eqalign_column\endcsname
+ \ifcsname\??mathalignmentvariant#2\endcsname\lastnamedcs\else\zerocount\fi\relax}
-\letvalue{\??mathalignmentvariant\v!normal}\zerocount
-\letvalue{\??mathalignmentvariant\v!left }\plusone
-\letvalue{\??mathalignmentvariant\v!right }\plustwo
-\letvalue{\??mathalignmentvariant\v!middle}\plusthree
+\def\math_eqalign_set_column#1%
+ {\normalexpanded{\math_eqalign_set_column_indeed[#1::]}}
-\permanent\protected\def\math_align_NR_generic[#1][#2]%
- {\strc_formulas_place_number_nested{#1}{#2}\crcr}
+\def\math_eqalign_set_columns_step
+ {\advanceby\c_math_eqalign_column\plusone
+ %\c_math_matrix_columns\c_math_eqalign_column
+ \math_eqalign_set_column}
+
+\def\math_eqalign_set_columns#1%
+ {\c_math_eqalign_column\zerocount
+ \rawprocesscommacommand[#1]\math_eqalign_set_columns_step}
+
+% can't we reuse these numbers ?
+
+\letcsname\??mathalignmentvariant\v!normal \endcsname\zerocount
+\letcsname\??mathalignmentvariant\v!flushright\endcsname\plusone
+\letcsname\??mathalignmentvariant\v!left \endcsname\plusone
+\letcsname\??mathalignmentvariant\v!right \endcsname\plustwo
+\letcsname\??mathalignmentvariant\v!flushleft \endcsname\plustwo
+\letcsname\??mathalignmentvariant\v!middle \endcsname\plusthree
%D \starttyping
%D \placeformula[eqn0]\startformula \startalign[n=1] a\NR \stopalign \stopformula See \in[eqn0]
@@ -523,17 +756,6 @@
%D \stoptyping
%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
@@ -658,45 +880,102 @@
\setupmathcases
[\c!distance=\emwidth,
\c!strut=\v!yes, % new
- \c!numberdistance=2.5\emwidth,
- \c!left={\left\{\mskip\thinmuskip},
- \c!right={\right.}]
+ \c!spaceinbetween=\mathalignmentparameter\c!spaceinbetween,
+ %\c!numberdistance=2.5\emwidth,
+ \c!numberdistance=\zeropoint]
\appendtoks
\frozen\instance\protected\edefcsname\e!start\currentmathcases\endcsname{\math_cases_start[\currentmathcases]}%
\frozen\instance \defcsname \e!stop \currentmathcases\endcsname{\math_cases_stop}%
\to \everydefinemathcases
-\permanent\protected\def\math_cases_NC_zero
- {\math_cases_NC}
+%D Why not \unknown:
+%D
+%D \starttyping
+%D \definemathcases[mycases][simplecommand=mycases]
+%D
+%D \startformula
+%D \startmycases
+%D \NC 1 \NC x>0 \NR
+%D \NC -1 \NC x<0 \NR
+%D \stopmycases
+%D \stopformula
+%D
+%D \startformula
+%D \mycases{1,x>0;-1,x<0}
+%D \stopformula
+%D \stoptyping
-\permanent\protected\def\math_cases_MC_zero
- {\math_cases_NC
- \ifmmode\else
- \startimath
- \enforced\let\math_cases_end_math\stopimath
- \fi}
+\permanent\tolerant\protected\def\math_cases_simple[#1]#*[#2]#:#3%
+ {\begingroup
+ \edef\currentmathcases{#1}%
+ \setupcurrentmathcases[#2]%
+ \math_cases_start[\currentmathcases]%
+ \clf_simplecases{\mathcasesparameter\c!action}{#3}%
+ \math_cases_stop
+ \endgroup}
-\let\math_cases_end_math\relax
+\appendtoks
+ \edef\p_simplecommand{\mathcasesparameter\c!simplecommand}%
+ \ifempty\p_simplecommand\else
+ \frozen\protected\instance\edefcsname\p_simplecommand\endcsname{\math_cases_simple[\currentmathcases]}%
+ \fi
+\to \everydefinemathcases
-\permanent\protected\def\math_cases_NR_zero
- {\unskip
- \math_cases_end_math
+\let\math_cases_strut\relax
+
+\newinteger\c_math_cases_nc
+
+\def\math_cases_NC_zero
+ {\ifmmode\else\startimath\fi}
+
+\def\math_cases_NC_one
+ {\ifmmode\stopimath\fi
\aligntab
- \global\enforced\let\math_cases_NC\math_cases_NC_first
- \dodirectdoubleempty\math_cases_NR}
+ \ifmmode\else\startimath\fi}
+
+\def\math_cases_NC_two
+ {\ifmmode\stopimath\fi}
+
+\def\math_cases_TC_zero
+ {}
-\permanent\protected\def\math_cases_NC_first
- {\global\enforced\let\math_cases_NC\math_cases_NC_second}
+\def\math_cases_TC_one
+ {\ifmmode\stopimath\fi
+ \aligntab}
-\permanent\protected\def\math_cases_NC_second
- {\math_cases_end_math\aligntab}
+\permanent\protected\def\math_cases_NC
+ {\ifcase\c_math_cases_nc
+ \expandafter\math_cases_NC_zero
+ \or
+ \expandafter\math_cases_NC_one
+ \or
+ \expandafter\math_cases_NC_zero
+ \else
+ % error
+ \fi
+ \global\advanceby\c_math_cases_nc\plusone}
-\let\math_cases_NR\math_align_NR_generic
+\permanent\protected\def\math_cases_TC
+ {\ifcase\c_math_cases_nc
+ \expandafter\math_cases_TC_zero
+ \or
+ \expandafter\math_cases_TC_one
+ \or
+ \expandafter\math_cases_TC_two
+ \else
+ % error
+ \fi
+ \global\advanceby\c_math_cases_nc\plusone}
-\installmacrostack\math_cases_NC
+\noaligned\tolerant\permanent\protected\def\math_cases_NR[#1]#*[#2]%
+ {\unskip
+ \ifmmode\stopimath\fi
+ \aligntab
+ \global\c_math_cases_nc\zerocount
+ \strc_formulas_place_number_nested{#1}{#2}\crcr}
-\let\math_cases_strut\relax
+\installglobalmacrostack\c_math_cases_nc
\permanent\tolerant\protected\def\math_cases_start[#1]#*[#2]%
{\begingroup
@@ -710,58 +989,79 @@
\else
\enforced\let\math_cases_strut\relax
\fi
+ \push_macro_c_math_cases_nc
+ \mathatom \s!class \mathwrappedcode \bgroup
+ \scratchdimen\mathcasesparameter\c!leftmargin\relax
+ \ifzeropt\scratchdimen\else\kern\scratchdimen\fi
\mathcasesparameter\c!left
+ \math_fenced_start_wrap{\mathcasesparameter\c!fences}%
+ \mathatom \s!class \mathconstructcode \bgroup
\vcenter\bgroup
- \push_macro_math_cases_NC
- % \enforced\let\endmath\relax
- \enforced\let\NC\math_cases_NC_zero
- \enforced\let\MC\math_cases_MC_zero
- \enforced\let\NR\math_cases_NR_zero
+ \enforced\let\MC\math_cases_NC
+ \enforced\let\NC\math_cases_NC
+ \enforced\let\NR\math_cases_NR
+ \enforced\let\TC\math_cases_TC
\enforced\let\TB\math_common_TB
- \global\enforced\let\math_cases_NC\math_cases_NC_first
- \normalbaselines
- \mathsurround\zeropoint
- \everycr\emptytoks
- \tabskip\zeropoint
+ \math_eqalign_set_defaults
\global\c_math_eqalign_column\plusone
- \halign\bgroup
- \startimath
+ \global\c_math_eqalign_row\plusone
+ \global\c_math_cases_nc\zerocount
+ \strc_math_setup_spacing_aligned\mathcasesparameter
+ \enablematrixalign
+ \halign callback \s!attr \mathnumberlocationattribute \zerocount \bgroup % use \indexofregister here
+ \ifmmode\else\startimath\fi
\mathcasesparameter\c!style
- \alignmark\alignmark
- \stopimath
+ \aligncontent
+ \ifmmode\stopimath\fi
\hfil
\aligntab
- \hskip\mathcasesparameter\c!distance\relax
- \pop_macro_math_cases_NC
+ \kern\mathcasesparameter\c!distance\relax % hskip
\math_cases_strut % looks better
- \alignmark\alignmark
+ \aligncontent
\hfil
\aligntab
- \hskip\mathcasesparameter\c!numberdistance\relax
- % \let\formuladistance\!!zeropoint
- \span\math_text_in_eqalign{\alignmark\alignmark}%
+ \kern\mathcasesparameter\c!numberdistance\relax % hskip
+ \span\math_text_in_eqalign{\aligncontent}%
\crcr} % todo: number
-% When we have just protected we get an extra row but we can no flag
-% this as a proper alignment related command which means that uit gets
-% expanded.
-
\noaligned\permanent\protected\def\math_cases_stop
{\crcr
\egroup
- \pop_macro_math_cases_NC
\egroup
- \mathcasesparameter\c!right
+ \egroup
+ \math_fenced_stop_wrap
+ \mathcasesparameter\c!right\relax
+ \scratchdimen\mathcasesparameter\c!rightmargin\relax
+ \ifzeropt\scratchdimen\else\kern\scratchdimen\fi
+ \egroup
+ \pop_macro_c_math_cases_nc
\endgroup}
+% \definemathfence [cases] [\c!left="007B,\c!right=\v!none]
+% \definemathfence [sesac] [\c!left=\v!none,\c!right="007D]
+
\definemathcases[cases]
\definemathcases[\v!mathcases]
+% This might become key=cases in the end:
+
+\setupmathcases
+% [cases]
+ [\c!leftmargin=\zeropoint,
+ \c!rightmargin=\zeropoint,
+ \c!left=,
+ \c!right=,
+ \c!fences=cases]
+
+\definemathcases
+ [sesac]
+ [\c!fences=sesac]
+
%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 \NC 2 \NC y > 0 \NR
+%D \NC 7 \NC x = 7 \NR[+]
+%D \NC 4 \TC otherwise \NR
%D \stopcases \stopformula
%D \stopbuffer
%D
@@ -769,9 +1069,9 @@
%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 \NC 2 \NC y > 0 \NR[+]
+%D \NC 7 \NC x = 7 \NR
+%D \NC 4 \TC otherwise \NR
%D \stopcases \stopformula
%D \stopbuffer
%D
@@ -779,9 +1079,9 @@
%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 \NC 2 \NC y > 0 \NR
+%D \NC 7 \NC x = 7 \NR
+%D \NC 4 \TC otherwise \NR
%D \stopcases \stopformula
%D \stopbuffer
%D
@@ -789,9 +1089,9 @@
%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 \NC 2 \NC y > 0 \NR
+%D \NC 7 \NC x = 7 \NR
+%D \NC 4 \TC otherwise \NR
%D \stopcases \stopformula
%D \stopbuffer
%D
@@ -804,15 +1104,21 @@
%D different which is a side effect of getting the tagging right. In
%D retrospect the main alignment could be done this way but \unknown
+%D In the end is is way easier to not use alignments and just paste boxes together
+%D but let's be a bit texie.
+
\installcorenamespace{mathmatrix}
\installcommandhandler \??mathmatrix {mathmatrix} \??mathmatrix
\setupmathmatrix
[\c!distance=\emwidth,
+ \c!fences=,
\c!left=,
\c!right=,
\c!align=\v!middle,
+ \c!leftmargin=\zeropoint,
+ \c!rightmargin=\zeropoint,
\c!rulecolor=,
\c!rulethickness=\linewidth]
@@ -822,8 +1128,12 @@
\frozen\instance \defcsname \e!stop \currentmathmatrix\endcsname{\math_matrix_stop}% no u else lookahead problem
\to \everydefinemathmatrix
+\newinteger\c_math_matrix_columns
+
\def\math_matrix_start_table
{\global\c_math_eqalign_column\zerocount
+ \global\c_math_eqalign_row\zerocount
+ \global\c_math_matrix_columns\zerocount
\dostarttagged\t!math\empty
\dostarttagged\t!mtable\empty}
@@ -831,16 +1141,11 @@
{\dostoptagged
\dostoptagged}
-% \def\math_matrix_start_row
-% {\noalign{\global\c_math_eqalign_column\zerocount}%
-% \dostarttagged\t!mtablerow\empty}
-%
-% \def\math_matrix_stop_row
-% {\dostoptagged}
-
\def\math_matrix_start_row
{\beginlocalcontrol
+ \global\c_math_matrix_columns\c_math_eqalign_column
\global\c_math_eqalign_column\zerocount
+ \global\advanceby\c_math_eqalign_row\plusone
\dostarttagged\t!mtablerow\empty
\endlocalcontrol}
@@ -855,7 +1160,6 @@
\math_left_of_eqalign
\startimath
\math_matrix_set_style
- \tabskip\zeropoint
\everycr\emptytoks}
\protected\def\math_matrix_stop_cell
@@ -864,34 +1168,164 @@
\hss
\dostoptagged}
+% \dorecurse{10}{test }
+%
+% \startformula
+% \startmatrix[left=\left(,right=\right)]
+% \NC x \NC \NC yy \NC \NC zzz \NR
+% \NC x \NC \dots \NC yy \NC \dots \NC zzz \NR
+% \HF[2] \NR
+% \NC x \NC \dots \NC yy \NC \dots \NC zzz \NR
+% \HF \NR
+% \NC x \NC \dots \NC yy \NC \dots \NC zzz \NR
+% \NC \HF[2] \NR
+% \NC x \NC \dots \NC yy \NC \dots \NC zzz \NR
+% \NC \NC \HF[2][rule] \NR
+% \NC x \NC \dots \NC yy \NC \dots \NC zzz \NR
+% \HL
+% \NC x \VL \dots \VL yy \NC \dots \VL zzz \NR
+% \NC x \VL \dots \VL yy \NC \dots \VL zzz \NR
+% \HL
+% \stopmatrix
+% \stopformula
+%
+% \dorecurse{10}{test }
+%
+% \startformula
+% \startmatrix[left=\left(,right=\right)]
+% \NC \TT \ttx 1 \NC \TT \ttx 2 \NC \TT \ttx 3 \NC \NR
+% \LT \ttx 1 \NC a \NC \dots \NC aa \NC \dots \NC aaa \RT \ttx 1 \NR
+% \LT \ttx 2 \NC b \NC \dots \NC bb \NC \dots \NC bbb \RT \ttx 2 \NR
+% \LT \ttx 3 \NC c \NC \dots \NC cc \NC \dots \NC ccc \RT \ttx 3 \NR
+% \NC \BT \ttx 1 \NC \BT \ttx 2 \NC \BT \ttx 3 \NC \NR
+% \stopmatrix
+% \stopformula
+%
+% \dorecurse{10}{test }
+%
+% \startformula
+% \startmatrix[left=\left(,right=\right)]
+% \NC \TT \ttx 1 \NC \TT \ttx 2 \NC \TT \ttx 3 \NR
+% \LT \ttx 1 \NC a \NC \dots \NC aa \NC \dots \NC aaa \NR
+% \LT \ttx 2 \NC b \NC \dots \NC bb \NC \dots \NC bbb \NR
+% \LT \ttx 3 \NC c \NC \dots \NC cc \NC \dots \NC ccc \NR
+% \NC \BT \ttx 1 \NC \BT \ttx 2 \NC \BT \ttx 3 \NR
+% \stopmatrix
+% \stopformula
+%
+% \dorecurse{10}{test }
+
+\newtoks\everymathmatrix
+
+\tolerant\permanent\def\math_matrix_HF[#1]#*[#2]% [n] [name] | [name] | [n]
+ {\expandedloop
+ \plusone
+ \numexpr\ifchknum#1\or#1\else(\c_math_matrix_columns+\minusone)\fi*\plustwo\relax
+ \plusone
+ {\omit\span}%
+ \normalexpanded{\filler[%
+ \ifcsname\??filleralternative matrix:#1\endcsname matrix:#1\orelse
+ \ifcsname\??filleralternative matrix:#2\endcsname matrix:#2\orelse
+ \ifcsname\??filleralternative #1\endcsname #1\orelse
+ \ifcsname\??filleralternative #2\endcsname #2\else
+ matrix:\v!normal\fi
+ ]}}
+
+\appendtoks
+ \enforced\let\HF\math_matrix_HF
+\to \everymathmatrix
+
+\definefiller
+ [matrix:\v!normal]
+ [\c!symbol=\textperiod,
+ \c!style=\v!normal,
+ \c!method=\v!broad,
+ \c!width=\emwidth,
+ \c!leftmargin=-.1\emwidth,
+ \c!rightmargin=-.1\emwidth]
+
+\definefiller
+ [matrix:\v!middle]
+ [\c!symbol=\textperiod,
+ \c!style=\v!normal,
+ \c!method=\v!middle,
+ \c!width=\emwidth,
+ \c!leftmargin=.5\emwidth,
+ \c!rightmargin=.5\emwidth]
+
+\definefiller
+ [matrix:ldots]
+ [matrix:\v!normal]
+
+\definefiller
+ [matrix:cdots]
+ [matrix:\v!normal]
+ [\c!symbol=\cdot]
+
% We could construct a preamble with alignment and such embedded but the number
% of matrices with many rows is normally so low that it doesn't pay of at all.
-\protected\def\math_matrix_distance
+\newconditional\c_math_matrix_first
+\newconstant \c_math_matrix_anchor_mode
+
+% enabled : 1
+% left/both : 2
+% right/both : 4
+
+\permanent\protected\def\setmathmatrixanchoring[#1]%
+ {\c_math_matrix_anchor_mode\zerocount
+ \processaction
+ [#1]%
+ [\v!both=>\c_math_matrix_anchor_mode\plusone,%
+ \v!yes=>\c_math_matrix_anchor_mode\plusone]}
+
+\def\math_matrix_anchor
+ {\ifcase\c_math_matrix_anchor_mode\else
+ \markanchor{matrix}{\numexpr\c_math_eqalign_column+\plusone\relax}\c_math_eqalign_row
+ \fi}
+
+\protected\def\math_matrix_anchor_first
{\relax
- \ifdim\d_math_eqalign_distance>\zeropoint
- \hskip\d_math_eqalign_distance
- \fi
- \relax}
+ \ifcase\c_math_matrix_anchor_mode\else
+ \math_matrix_anchor
+ % \ifdim\d_math_eqalign_distance>\zeropoint
+ % \ifbitwiseand\c_math_matrix_anchor_mode\plustwo
+ % \kern.5\d_math_eqalign_distance
+ % \fi
+ % \fi
+ \fi}
+
+\protected\def\math_matrix_anchor_last
+ {\relax
+ \ifcase\c_math_matrix_anchor_mode\else
+ % \ifdim\d_math_eqalign_distance>\zeropoint
+ % \ifbitwiseand\c_math_matrix_anchor_mode\plusfour
+ % \kern.5\d_math_eqalign_distance
+ % \fi
+ % \fi
+ \math_matrix_anchor
+ \fi}
\def\math_matrix_preamble
{\math_matrix_strut
- \global\advance\c_math_eqalign_column\plusone
+ \math_matrix_anchor_first
+ \global\advanceby\c_math_eqalign_column\plusone
\math_matrix_start_cell
- \alignmark\alignmark
+ \aligncontent
\math_matrix_stop_cell
\aligntab
\aligntab
- \math_matrix_distance
- \global\advance\c_math_eqalign_column\plusone
+ \math_matrix_anchor
+ \kern.5\d_math_eqalign_distance % hskip
+ \aligncontent
+ \aligntab
+ \global\advanceby\c_math_eqalign_column\plusone
\math_matrix_start_cell
- \alignmark\alignmark
+ \aligncontent
\math_matrix_stop_cell}
-\newconditional\c_math_matrix_first
-
\permanent\protected\def\math_matrix_NR
- {\aligntab\omit
+ {\math_matrix_anchor_last
\math_matrix_stop_row
\math_matrix_pickup
\crcr
@@ -906,18 +1340,16 @@
\permanent\protected\def\math_matrix_pickup{\global\settrue \c_math_matrix_first}
\permanent\protected\def\math_matrix_NC_yes{\global\setfalse\c_math_matrix_first}
-\permanent\protected\def\math_matrix_NC_nop{\aligntab} % avoids lookahead
-
-% \def\math_matrix_stop_wrapup
-% {\crcr
-% \strut
-% \crcr
-% \noalign{\vskip-\struthtdp}}
+\permanent\protected\def\math_matrix_NC_nop{\aligntab\aligntab} % avoids lookahead
\def\math_matrix_check_rule_step#1%
- {\doifelsenumber{#1}
- {\scratchdimen#1\d_math_eqalign_rulethickness}
- {\edef\p_rulecolor{#1}}}
+ {\ifchkdim#1\or
+ \scratchdimen#1\relax
+ \orelse\ifchknum#1\or
+ \scratchdimen#1\d_math_eqalign_rulethickness
+ \else
+ \edef\p_rulecolor{#1}
+ \fi}
\def\math_matrix_check_rule[#1]%
{\d_math_eqalign_rulethickness\mathmatrixparameter\c!rulethickness\relax
@@ -930,45 +1362,299 @@
\dousecolorparameter\p_rulecolor
\fi}
+% These offset are an experiment so we abuse some existing keys or we have to
+% cook up new ones. Maybe we then should provide small medium big halfline etc.
+% but all depends on actual demand for this feature.
+
+% Musical timestamp VL, NL, SL: Bad Hombre II by Antonio Sanches
+%
+% \startformula
+% \startmatrix[left=\left(,right=\right)]
+% \NC 0 \NL 0 \NC 0 \NC 2x \NC 1 \NC 0 \NC 0 \NL \NR
+% \NC 0 \VL 0 \NC 0 \NC 0 \NC 2x \NC 0 \NC 0 \NL \NR
+% \NC 0 \VL 0 \NC 0 \NC 0 \NC 0 \NC 3x \NC 0 \NL \NR
+% \NC 0 \NL 0 \NC 0 \NC 0 \NC 0 \NC 0 \NC 4x \VL \NR
+% \stopmatrix
+% \stopformula
+%
+% \startformula
+% \startmatrix[left=\left(,right=\right)]
+% \SL[3] \NL \NL \NL \NL \NL \NR
+% \VL 2x \NL 1 \NL 0 \VL 0 \NL 0 \NL 0 \NL 0 \NL \NR
+% \VL 0 \NL 2x \NL 1 \VL 0 \NL 0 \NL 0 \NL 0 \NL \NR
+% \VL 0 \NL 0 \NL 2x \VL 0 \NL 0 \NL 0 \NL 0 \NL \NR
+% \SL[5] \NL \NL \NL \NR
+% \NL 0 \NL 0 \NL 0 \VL 2x \NL 1 \VL 0 \NL 0 \NL \NR
+% \NL 0 \NL 0 \NL 0 \VL 0 \NL 2x \VL 0 \NL 0 \NL \NR
+% \NL \NL \NL \SL[3] \NL \NL \NR
+% \NL 0 \NL 0 \NL 0 \NL 0 \NL 0 \VL 3x \VL 0 \NL \NR
+% \NL \NL \NL \NL \NL \SL[2] \NL \NR
+% \NL 0 \NL 0 \NL 0 \NL 0 \NL 0 \NL 0 \VL 3x \VL \NR
+% \NL \NL \NL \NL \NL \NL \SL[1] \NL \NR
+% \stopmatrix
+% \stopformula
+
+\definesystemattribute[mathalignmentvrule][public]
+\definesystemattribute[mathalignmenthrule][public]
+
+\setupmathmatrix
+ [%c!toffset=\zeropoint,
+ \c!toffset=.25\exheight,
+ \c!boffset=\mathmatrixparameter\c!toffset]
+
\noaligned\permanent\tolerant\protected\def\math_matrix_HL[#1]#*%
{\noalign\bgroup
\math_matrix_check_rule[#1]%
- \divide\scratchdimen\plustwo
- \autorule\s!height\scratchdimen\s!depth\scratchdimen\relax
+ \divideby\scratchdimen\plustwo
+ \ifdim\scratchdimen>\zeropoint
+ % \autorule\s!height\scratchdimen\s!depth\scratchdimen\relax
+ \scratchdistance\mathmatrixparameter\c!toffset\relax
+ \ifdim\scratchdistance>\zeropoint
+ \nohrule
+ \s!attr \mathalignmentvruleattribute\plustwo
+ \s!height\scratchdistance
+ \s!depth \zeropoint
+ \relax
+ \fi
+ \hrule
+ \s!attr \mathalignmentvruleattribute\plusthree
+ \s!height\scratchdimen
+ \s!depth \scratchdimen
+ \relax
+ \scratchdistance\mathmatrixparameter\c!boffset\relax
+ \ifdim\scratchdistance>\zeropoint
+ \nohrule
+ \s!attr \mathalignmentvruleattribute\plusfour
+ \s!height\zeropoint
+ \s!depth \scratchdistance
+ \relax
+ \fi
+ \else
+ % zero dimensions disable the rule
+ \fi
\egroup}
+\protected\def\math_matrix_vertical_rule_indeed#1#2%
+ {\math_matrix_check_rule[#2]%
+ \enablematrixrules
+ #1
+ \s!attr \mathalignmentvruleattribute\plusone
+ \s!width \scratchdimen
+ \s!top -\dimexpr\mathmatrixparameter\c!toffset\relax
+ \s!bottom-\dimexpr\mathmatrixparameter\c!boffset\relax
+ \relax}
+
+\protected\def\math_matrix_vertical_rule_yes{\math_matrix_vertical_rule_indeed\vrule }
+\protected\def\math_matrix_vertical_rule_nop{\math_matrix_vertical_rule_indeed\novrule}
+
+\installcorenamespace{mathmatrixrulealternative}
+
+\newboundary\c_math_matrix_vl_boundary
+%newboundary\c_math_matrix_sl_boundary
+
+\protected\def\math_matrix_horizontal_rule_indeed#1#2%
+ {\math_matrix_check_rule[#2]%
+ \global\setfalse\c_math_matrix_first
+ \global\settrue\c_math_matrix_sl_seen
+ \enablematrixrules
+ \leaders#1%
+ \s!attr \mathalignmenthruleattribute\plusone
+ \s!height .5\scratchdimen
+ \s!depth .5\scratchdimen
+ % \s!top -\dimexpr\mathmatrixparameter\c!toffset\relax
+ % \s!bottom-\dimexpr\mathmatrixparameter\c!boffset\relax
+ \hfilll
+ \kern\dimexpr.5\d_math_eqalign_distance\relax
+ \aligntab}
+
+\protected\def\math_matrix_horizontal_rule_yes{\math_matrix_horizontal_rule_indeed\hrule }
+\protected\def\math_matrix_horizontal_rule_nop{\math_matrix_horizontal_rule_indeed\nohrule}
+
+\def\math_matrix_hrule_progress_rest#1%
+ {\expandedloop
+ \plusone
+ \numexpr(\ifchknum#1\or#1\else\c_math_matrix_columns\fi)*\plustwo+\minusone\relax
+ \plusone
+ {\span\omit}}%
+
+\def\math_matrix_hrule_progress_first#1%
+ {\expandedloop
+ \plusone
+ \numexpr(\ifchknum#1\or#1\else\c_math_matrix_columns\fi+\minusone)*\plustwo+\plusone\relax
+ \plusone
+ {\span\omit}}%
+
+\def\math_matrix_hrule_progress
+ {\NL
+ \ifconditional\c_math_matrix_first
+ \expandafter\math_matrix_hrule_progress_first
+ \else
+ \expandafter\math_matrix_hrule_progress_rest
+ \fi}
+
+\tolerant\permanent\protected\def\SL[#1]#*[#2]#*% [n] [name] | [name] | [n]
+ {\ifcsname\??mathmatrixrulealternative#2\endcsname
+ \lastnamedcs{#1}{#2}%
+ \orelse\ifcsname\??mathmatrixrulealternative#1\endcsname
+ \lastnamedcs{#2}{#1}%
+ \else
+ \csname\??mathmatrixrulealternative\v!auto\endcsname{#1}{#2}%
+ \fi}
+
+\defcsname\??mathmatrixrulealternative\v!auto\endcsname#1#2%
+ {\math_matrix_hrule_progress{#1}%
+ % \ifzero\c_math_matrix_first
+ % \kern-\dimexpr\linewidth\relax
+ % \else
+ % \kern-\dimexpr.5\d_math_eqalign_distance+\linewidth\relax
+ % \fi
+ \kern-\dimexpr\ifzero\c_math_matrix_first\else.5\d_math_eqalign_distance+\fi\linewidth\relax
+ \math_matrix_horizontal_rule_yes{#2}%
+ %boundary\c_math_matrix_sl_boundary
+ \enforced\let\NR\math_matrix_NL_NR}
+
\permanent\tolerant\protected\def\math_matrix_VL[#1]#*%
+ {\span\omit
+ \ifconditional\c_math_matrix_first\else
+ \kern.5\d_math_eqalign_distance % hskip
+ \fi
+ \math_matrix_vertical_rule_yes{#1}%
+ \kern.5\d_math_eqalign_distance % hskip
+ \global\setfalse\c_math_matrix_first
+ \aligntab
+ \boundary\c_math_matrix_vl_boundary
+ \enforced\let\NR\math_matrix_NL_NR
+ }
+
+\permanent\tolerant\protected\def\math_matrix_NL[#1]#*%
+ {\span\omit
+ \ifconditional\c_math_matrix_first\else
+ \kern.5\d_math_eqalign_distance % hskip
+ \fi
+ \math_matrix_vertical_rule_nop{#1}%
+ \kern.5\d_math_eqalign_distance % hskip
+ \global\setfalse\c_math_matrix_first
+ \aligntab
+ \boundary\c_math_matrix_vl_boundary
+ \enforced\let\NR\math_matrix_NL_NR}
+
+\permanent\protected\def\math_matrix_NL_NR
+ {\ifnum\lastboundary=\c_math_matrix_vl_boundary
+ \ifconditional \c_math_matrix_sl_seen
+ \kern-1.5\d_math_eqalign_distance % hskip
+ \else
+ \kern-.5\d_math_eqalign_distance % hskip
+ \fi
+ \fi
+ \math_matrix_anchor_last
+ \math_matrix_stop_row
+ \math_matrix_pickup
+ \crcr
+ \math_matrix_start_row}
+
+\appendtoks
+ \enforced\let\NL\math_matrix_NL
+ \global\setfalse\c_math_matrix_sl_seen
+\to \everymathmatrix
+
+\permanent\tolerant\protected\def\math_matrix_VC[#1]#*%
{\NC
- \math_matrix_check_rule[#1]%
- \divide\d_math_eqalign_distance\plustwo
- \hskip-\d_math_eqalign_distance
- \autorule\s!width\scratchdimen\relax
- \hskip-\d_math_eqalign_distance
+ \math_matrix_vertical_rule_yes{#1}%
\NC}
-\newtoks\everymathmatrix
+\permanent\tolerant\protected\def\math_matrix_VT[#1]#*%
+ {\span\omit
+ \math_matrix_vertical_rule_yes{#1}%
+ \aligntab}
+
+\def\math_matrix_start_row
+ {\beginlocalcontrol
+ \global\c_math_matrix_columns\c_math_eqalign_column
+ \global\c_math_eqalign_column\zerocount
+ \global\advanceby\c_math_eqalign_row\plusone
+ \dostarttagged\t!mtablerow\empty
+ \endlocalcontrol}
\appendtoks
\enforced\let\NR\math_matrix_NR
\enforced\let\NC\math_matrix_NC
\enforced\let\MC\math_matrix_NC
- \enforced\let\HL\math_matrix_HL
- \enforced\let\VL\math_matrix_VL
+ \enforced\let\HL\math_matrix_HL % like the old ones
+ \enforced\let\VL\math_matrix_VL % like the old ones
+ \enforced\let\VC\math_matrix_VC % bonus, extra column
+ \enforced\let\VT\math_matrix_VT % bonus, idem but tight
\enforced\let\TB\math_common_TB
\to \everymathmatrix
+\definesystemattribute[mathmatrixornament][public]
+
+\newdimension\d_math_matrix_margin_l
+\newdimension\d_math_matrix_margin_r
+\newdimension\d_math_matrix_margin_t
+\newdimension\d_math_matrix_margin_b
+
+\newboundary \c_math_matrix_ornament_l
+\newboundary \c_math_matrix_ornament_r
+\newboundary \c_math_matrix_ornament_t
+\newboundary \c_math_matrix_ornament_b
+
+% anchors are wrong now
+
+\newconditional\c_math_matrix_text
+\newconditional\c_math_matrix_text_l
+\newconditional\c_math_matrix_text_r
+\newconditional\c_math_matrix_text_t
+\newconditional\c_math_matrix_text_b
+
+\def\math_matrix_ornaments#1#2%
+ {\NC
+ \enablematrixornaments
+ \global\settrue\c_math_matrix_text
+ \global\settrue#1
+ \boundary#2%
+ \ignorespaces}
+
+\permanent\protected\def\math_matrix_LT{\math_matrix_ornaments\c_math_matrix_text_l\c_math_matrix_ornament_l}
+\permanent\protected\def\math_matrix_RT{\math_matrix_ornaments\c_math_matrix_text_r\c_math_matrix_ornament_r}
+\permanent\protected\def\math_matrix_TT{\math_matrix_ornaments\c_math_matrix_text_t\c_math_matrix_ornament_t}
+\permanent\protected\def\math_matrix_BT{\math_matrix_ornaments\c_math_matrix_text_b\c_math_matrix_ornament_b}
+
+\appendtoks
+ \global\setfalse\c_math_matrix_text
+ \global\setfalse\c_math_matrix_text_l
+ \global\setfalse\c_math_matrix_text_r
+ \global\setfalse\c_math_matrix_text_t
+ \global\setfalse\c_math_matrix_text_b
+ \enforced\let\LT\math_matrix_LT
+ \enforced\let\RT\math_matrix_RT
+ \enforced\let\TT\math_matrix_TT
+ \enforced\let\BT\math_matrix_BT
+\to \everymathmatrix
+
\def\math_matrix_start_processing
- {\dontleavehmode
+ {\ifmmode
+ \mathatom \s!class \mathwrappedcode
+ \else
+ \dontleavehmode
+ \fi
\bgroup
+ \d_math_matrix_margin_l\mathmatrixparameter\c!leftmargin \relax
+ \d_math_matrix_margin_r\mathmatrixparameter\c!rightmargin\relax
+ \d_math_matrix_margin_t\strutdp
+ \d_math_matrix_margin_b\strutht
+ %\tabskip.5\d_math_eqalign_distance
\tabskip\zeropoint
\math_matrix_pickup
\the\everymathmatrix
%
- % \enforced\let\endmath\relax
- %
\setbox\nextbox\vbox\bgroup
\math_matrix_start_table
- \halign \bgroup
+ \halign
+ callback
+ \s!attr \mathmatrixornamentattribute "10
+ \s!attr \mathalignmentvruleattribute \plusone
+ \s!attr \mathalignmenthruleattribute \plusone
+ \bgroup
% preamble
\span\math_matrix_preamble
% done
@@ -981,9 +1667,9 @@
\egroup
\math_matrix_stop_table
\egroup
- \mathmatrixleft
+ \mathmatrixleft % experimental hook
\math_matrix_finish_nextbox
- \mathmatrixright
+ \mathmatrixright % experimental hook
\egroup}
\let\math_matrix_strut \strut
@@ -1004,21 +1690,8 @@
% \edef\p_rulecolor{\mathmatrixparameter\c!rulecolor}
\edef\math_matrix_set_style{\mathmatrixparameter\c!style}}
-\def\math_matrix_set_defaults
- {\normalbaselines % hm, spacing ?
- \mathsurround\zeropoint
- \tabskip\zeropoint}
-
-\def\math_matrix_set_columns_step
- {\advance\c_math_eqalign_column\plusone
- %\c_math_matrix_columns\c_math_eqalign_column
- \math_eqalign_set_column}
-
-\def\math_matrix_set_columns
- {\c_math_eqalign_column\zerocount
- \rawprocesscommacommand[\mathmatrixparameter\c!align]\math_matrix_set_columns_step}
-
-\newcount\c_math_eqalign_column_saved
+\newinteger\c_math_eqalign_column_saved
+\newinteger\c_math_eqalign_row_saved
% \installglobalmacrostack\c_math_matrix_first
@@ -1026,18 +1699,20 @@
{\begingroup
\globalpushmacro\c_math_matrix_first % hm, does that work?
\c_math_eqalign_column_saved\c_math_eqalign_column
+ \c_math_eqalign_row_saved\c_math_eqalign_row
\globalpushmacro\c_math_eqalign_first
\edef\currentmathmatrix{#1}%
\setupcurrentmathmatrix[#2]%
\math_matrix_check_settings
- \math_matrix_set_defaults
- \math_matrix_set_columns
+ \math_eqalign_set_defaults
+ \math_eqalign_set_columns{\mathmatrixparameter\c!align}%
\math_matrix_start_processing}
\def\math_matrix_stop
{\math_matrix_stop_processing
\globalpushmacro\c_math_eqalign_first
\global\c_math_eqalign_column\c_math_eqalign_column_saved
+ \global\c_math_eqalign_row\c_math_eqalign_row_saved
\globalpopmacro\c_math_matrix_first
\endgroup}
@@ -1050,25 +1725,47 @@
\installcorenamespace{mathmatrixalignlocation}
-\mutable\let\mathmatrixleft \empty % experimental hook
-\mutable\let\mathmatrixright\empty % experimental hook
+\mutable\lettonothing\mathmatrixleft % experimental hook
+\mutable\lettonothing\mathmatrixright % experimental hook
-\setvalue{\??mathmatrixalignlocation\v!top }{\raise\dimexpr(\nextboxdp-\nextboxht)/2 +\mathaxisheight\mathstyle\relax}
-\setvalue{\??mathmatrixalignlocation\v!high }{\raise\dimexpr(\nextboxdp-\nextboxht)/2\relax}
-\setvalue{\??mathmatrixalignlocation\v!center}{\relax}
-\setvalue{\??mathmatrixalignlocation\v!lohi} {\relax}
-\setvalue{\??mathmatrixalignlocation\v!normal}{\relax}
-\setvalue{\??mathmatrixalignlocation\v!bottom}{\lower\dimexpr(\nextboxdp-\nextboxht)/2 +\mathaxisheight\mathstyle\relax}
-\setvalue{\??mathmatrixalignlocation\v!low }{\lower\dimexpr(\nextboxdp-\nextboxht)/2\relax}
+\defcsname\??mathmatrixalignlocation\v!top \endcsname{\raise\dimexpr(\nextboxdp-\nextboxht)/2 +\mathaxisheight\mathstyle\relax}
+\defcsname\??mathmatrixalignlocation\v!high \endcsname{\raise\dimexpr(\nextboxdp-\nextboxht)/2\relax}
+\defcsname\??mathmatrixalignlocation\v!center\endcsname{\relax}
+\defcsname\??mathmatrixalignlocation\v!lohi \endcsname{\relax}
+\defcsname\??mathmatrixalignlocation\v!normal\endcsname{\relax}
+\defcsname\??mathmatrixalignlocation\v!bottom\endcsname{\lower\dimexpr(\nextboxdp-\nextboxht)/2 +\mathaxisheight\mathstyle\relax}
+\defcsname\??mathmatrixalignlocation\v!low \endcsname{\lower\dimexpr(\nextboxdp-\nextboxht)/2\relax}
\def\math_matrix_finish_nextbox
- {\begincsname\??mathmatrixalignlocation\mathmatrixparameter\c!location\endcsname\hbox\bgroup
+ {\scratchcounter\mathstyle\relax
+ \scratchwidth\wd\nextbox
+ \setbox\scratchbox\begincsname\??mathmatrixalignlocation\mathmatrixparameter\c!location\endcsname\hbox\bgroup
\normalstartimath
- \mathmatrixparameter\c!left
- \vcenter{\box\nextbox}%
- \mathmatrixparameter\c!right
+ \Ustyle\scratchcounter
+ \ifzeropt\d_math_matrix_margin_l\else\kern\d_math_matrix_margin_l\fi
+ \mathmatrixparameter\c!left\relax
+ \math_fenced_start_wrap{\mathmatrixparameter\c!fences}%
+ \mathatom \s!class \mathconstructcode {\vcenter{\box\nextbox}}% \was \vcenter
+ \math_fenced_stop_wrap
+ \mathmatrixparameter\c!right\relax
+ \ifzeropt\d_math_matrix_margin_r\else\kern\d_math_matrix_margin_r\fi
\normalstopimath
- \egroup}
+ \egroup
+ \ifconditional\c_math_matrix_text
+ \ifcstok{\mathmatrixparameter\c!left\mathmatrixparameter\c!right}\emptytoks\else
+ \scratchdistance\dimexpr(\wd\scratchbox-\scratchwidth)/\plustwo\relax
+ \advanceby\d_math_matrix_margin_l\scratchdistance
+ \advanceby\d_math_matrix_margin_r\scratchdistance
+ \clf_shiftmatrixornaments\scratchbox
+ \fi
+ \fi
+ \ifconditional\c_math_matrix_text_b
+ \dp\scratchbox\dimexpr\dp\scratchbox+\lineheight\relax
+ \fi
+ \ifconditional\c_math_matrix_text_t
+ \ht\scratchbox\dimexpr\ht\scratchbox+\lineheight\relax
+ \fi
+ \box\scratchbox}
\definemathmatrix[matrix]
\definemathmatrix[\v!mathmatrix]
@@ -1210,25 +1907,37 @@
{\math_matrix_stop
\endgroup}
-%D The following code is derived from Aditya's simplematrix prototype but
-%D adapted to regular mathmatrices (which saves some code so it can go into
-%D the core):
-
-\def\math_matrix_simple_row#1%
- {\rawprocesscommalist[#1]\math_matrix_simple_col
- \toksapp\scratchtoks{\NR}}
-
-\def\math_matrix_simple_col#1%
- {\toksapp\scratchtoks{\NC#1}}
+%D The following code is derived from Aditya's simplematrix prototype but adapted to
+%D regular mathmatrices. With a little help from \LUA\ we now have this:
+%D
+%D \startbuffer
+%D \definemathmatrix [Pmatrix] [matrix:parentheses]
+%D [align={all:right},
+%D simplecommand=Pmatrix]
+%D
+%D \definemathmatrix [Tmatrix] [Pmatrix]
+%D [action=transpose,
+%D simplecommand=Tmatrix]
+%D
+%D \definemathmatrix [Nmatrix] [Pmatrix]
+%D [action=negate,
+%D simplecommand=Nmatrix]
+%D
+%D \startformula
+%D \Pmatrix{ -1, 2, 3; 4,-5, 6; 7, 8,-9 } \neq
+%D \Tmatrix{ -1, 2, 3; 4,-5, 6; 7, 8,-9 } \neq
+%D \Nmatrix{ -1, 2, 3; 4,-5, 6; 7, 8,-9 }
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
\permanent\tolerant\protected\def\math_matrix_simple[#1]#*[#2]#:#3%
{\begingroup
\edef\currentmathmatrix{#1}%
\setupcurrentmathmatrix[#2]%
- \scratchtoks\emptytoks
- \processlist[];\math_matrix_simple_row[#3]%
\math_matrix_start[\currentmathmatrix]%
- \the\scratchtoks
+ \clf_simplematrix{\mathmatrixparameter\c!action}{#3}%
\math_matrix_stop
\endgroup}
@@ -1237,17 +1946,40 @@
\appendtoks
\edef\p_simplecommand{\mathmatrixparameter\c!simplecommand}%
\ifempty\p_simplecommand\else
- \frozen\instance\setuevalue{\p_simplecommand}{\math_matrix_simple[\currentmathmatrix]}%
+ \frozen\protected\instance\edefcsname\p_simplecommand\endcsname{\math_matrix_simple[\currentmathmatrix]}%
\fi
\to \everydefinemathmatrix
%D And predefine some matrices:
-\definemathmatrix[matrix:parentheses][\c!left={\left(\mskip\thinmuskip},\c!right={\mskip\thinmuskip\right)},\c!align=\v!middle]
-\definemathmatrix[matrix:brackets] [\c!left={\left[\mskip\thinmuskip},\c!right={\mskip\thinmuskip\right]},\c!align=\v!middle]
-\definemathmatrix[matrix:bars] [\c!left={\left|\mskip\thinmuskip},\c!right={\mskip\thinmuskip\right|},\c!align=\v!middle]
+% \definemathmatrix[matrix:parentheses][\c!left={\left(\mskip\thinmuskip},\c!right={\mskip\thinmuskip\right)},\c!align=\v!middle]
+% \definemathmatrix[matrix:brackets] [\c!left={\left[\mskip\thinmuskip},\c!right={\mskip\thinmuskip\right]},\c!align=\v!middle]
+% \definemathmatrix[matrix:bars] [\c!left={\left|\mskip\thinmuskip},\c!right={\mskip\thinmuskip\right|},\c!align=\v!middle]
+
+\definemathmatrix
+ [matrix:brackets]
+ [\c!fences=bracket,
+ \c!align=\v!middle]
-\definemathmatrix[thematrix][matrix:parentheses][\c!simplecommand=thematrix]
+\definemathmatrix
+ [matrix:parentheses]
+ [\c!fences=parenthesis,
+ \c!align=\v!middle]
+
+\definemathmatrix
+ [matrix:bars]
+ [\c!fences=bar,
+ \c!align=\v!middle]
+
+\definemathmatrix
+ [matrix:braces]
+ [\c!fences=brace,
+ \c!align=\v!middle]
+
+\definemathmatrix
+ [thematrix]
+ [matrix:parentheses]
+ [\c!simplecommand=thematrix]
%D \startbuffer
%D \startformula
@@ -1269,6 +2001,30 @@
%D
%D \typebuffer \getbuffer
+%D Mikael needed this matrix in one of his advanced math courses that ran begin april 2022
+%D where new concepts were introduced:
+
+% \definemathfence
+% [tekcarb]
+% [\c!left="005D,\c!right="005B]
+
+\definemathmatrix
+ [xıɹʇɐɯ]
+ [\c!fences=tekcarb]
+
+%D Fortunately we were read for it:
+%D
+%D \startbuffer
+%D \startformula
+%D \startxıɹʇɐɯ
+%D \NC a_1 \NC b_1 \NC c_1 \NR
+%D \NC a_2 \NC b_2 \NC c_2 \NR
+%D \stopxıɹʇɐɯ
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
%D \macros
%D {startintertext}
%D
@@ -1339,7 +2095,7 @@
\enforced\let\NC\relax
\enforced\let\MC\relax
\enforced\let\NR\crcr
- \halign\bgroup\hfil\normalstartimath\scriptstyle\alignmark\alignmark\normalstopimath\hfil\crcr}
+ \halign\bgroup\hfil\normalstartimath\scriptstyle\aligncontent\normalstopimath\hfil\crcr}
\noaligned\permanent\protected\def\stopsubstack
{\crcr
@@ -1347,146 +2103,51 @@
\egroup
\endgroup}
-% %D \macros
-% %D {bordermatrix}
-% %D
-% %D In \PLAIN\ \TEX\ the width of a parenthesis is stored in
-% %D the \DIMENSION\ \type{\mathparentwd}. This value is derived from
-% %D the width of \type{\tenrm B}, so let's take care of it now:
-%
-% \ifdefined\mathparentwd \else \newdimen\mathparentwd \fi
-%
-% \let\normalbordermatrix\bordermatrix % move that code to here instead
-%
-% \protected\def\bordermatrix
-% {\begingroup
-% \setbox\scratchbox\hbox{\mr\char"239C}%
-% \global\mathparentwd\wd\scratchbox
-% \endgroup
-% \normalbordermatrix}
-%
-% \def\bordermatrix
-% {\begingroup
-% \mr
-% \global\mathparentwd\fontcharwd\font"239C\relax
-% \endgroup
-% \normalbordermatrix}
-
%D \macros{overset, underset}
%D
-%D The macros \type{\overset} and \type{\underset} are provided by
-%D \AMS\ packages in \LATEX. These macro allows you to place a symbol
-%D above or below another symbol, irrespective of whether the other
-%D symbol is a relation or something else, and without influencing the
-%D spacing. For most cases there is a better way to do such things
-%D (declaring a math command with limop option, or using accents), but
-%D occasionally these macros can be useful, for example:
-%D
-%D \startbuffer
-%D \startformula
-%D \overset{*}{X} \underset{*}{X}
-%D \stopformula
-%D \stopbuffer
-%D \typebuffer \getbuffer
-%D
-%D Use these macros sparingly. Remember, \TEX\ was designed for
-%D mathematics, so there is usually a proper method for typesetting
-%D common math notation.
+%D The macros \type {\overset} and \type {\underset} are provided by \AMS\ packages
+%D in \LATEX. These macro allows you to place a symbol above or below another
+%D symbol, irrespective of whether the other symbol is a relation or something else,
+%D and without influencing the spacing. Because in \LUAMETATEX\ we're less limited,
+%D we have rather simple definitions compared to \MKIV. One cna also do:
%D
-%D These macros are a cleaner version of \type {\binrel@} and
-%D \type {\binrel@@} macros in \AMSTEX\ packages.
-
-\def\math_binrel_apply#1%
- {\begingroup
- \setbox\scratchbox\hbox
- {\thinmuskip 0mu
- \medmuskip -1mu
- \thickmuskip -1mu
- \setbox\scratchbox\hbox{\normalstartimath#1\mathsurround\zeropoint\normalstopimath}%
- \kern-\wd\scratchbox
- \normalstartimath{}#1{}\mathsurround\zeropoint\normalstopimath}%
- \ifdim\wd\scratchbox<\zeropoint
- \endgroup
- \expandafter\mathbin
- \orelse\ifdim\wd\scratchbox>\zeropoint
- \endgroup
- \doubleexpandafter\mathrel
- \else
- \endgroup
- \doubleexpandafter\firstofoneargument
- \fi}
-
-\permanent\protected\def\overset#1#2%
- {\math_binrel_apply{#2}{\mathop{\kern\zeropoint#2}\limits\normalsuperscript{#1}}}
+%D \starttyping
+%D $b\limits^a$
+%D $<\limits^a$
+%D \stoptyping
-\permanent\protected\def\underset#1#2%
- {\math_binrel_apply{#2}{\mathop{\kern\zeropoint#2}\limits\normalsubscript {#1}}}
+\permanent\protected\def\overset #1#2{\mathrel{#2}\limits\normalsuperscript{#1}}
+\permanent\protected\def\underset#1#2{\mathrel{#2}\limits\normalsubscript {#1}}
%D The following code comes from \type {math-str.mkiv}.
%D
-%D Here we implement a basic math alignment mechanism. Numbers are also handled. The macros
-%D \type {\startinnermath} and \type {\stopinnermath} can be overloaded in specialized
-%D modules.
+%D Here we implement a basic math alignment mechanism. Numbers are also handled. The
+%D macros \type {\startinnermath} and \type {\stopinnermath} can be overloaded in
+%D specialized modules.
\installcorenamespace{mathinnerstart}
\installcorenamespace{mathinnerstop}
-% \protected\def\startinnermath{\csname\??mathinnerstart\formulaparameter\c!align\endcsname}
-% \protected\def\stopinnermath {\csname\??mathinnerstop \formulaparameter\c!align\endcsname}
-
\permanent\protected\def\startinnermath{\expandnamespaceparameter\??mathinnerstart\formulaparameter\c!align\v!normal}
\permanent\protected\def\stopinnermath {\expandnamespaceparameter\??mathinnerstop \formulaparameter\c!align\v!normal}
-\permanent\protected\def\mathinnerstrut
- {\doif{\formulaparameter\c!strut}\v!yes\strut}
-
\permanent\protected\def\defineinnermathhandler#1#2#3%
{\defcsname\??mathinnerstart#1\endcsname{#2}%
\defcsname\??mathinnerstop #1\endcsname{#3}}
-\installtextracker
- {formulas.boxes}
- {\enforced\let\math_hbox\ruledhbox}
- {\enforced\let\math_hbox\hbox}
-
-\let\math_hbox\hbox
+\def\strc_math_flush_number_box{\box\b_strc_formulas_number}
-\newconstant\mathraggedstatus % normal left center right
-\newconstant\mathnumberstatus % nothing normal shift_right
+% \newdimension \d_strc_math_display_width
+% \newdimension \d_strc_math_indent
+% \newconditional\c_strc_math_indent
-\newdimen\d_math_number_correction
-
-\def\math_box_llapped_math_no
- {\ifcase\mathraggedstatus\or
- \box\b_strc_formulas_number
- \or
- \llap{\box\b_strc_formulas_number}%
- \or
- \llap{\box\b_strc_formulas_number}%
- \fi}
-
-\def\math_box_rlapped_math_no
- {\ifcase\mathraggedstatus\or
- \rlap{\box\b_strc_formulas_number}%
- \or
- \rlap{\box\b_strc_formulas_number}%
- \or
- \box\b_strc_formulas_number
- \fi}
-
-\newconditional\c_strc_math_has_number
\newconditional\c_strc_math_display_overflow
\newconstant \c_strc_math_number_location
-\newdimen \d_strc_math_number_width
-\newdimen \d_strc_math_display_width
-\newbox \b_strc_math_display
+\newconstant \c_strc_math_number_variant
\newconstant \c_strc_formulas_frame_mode
-\newdimen \d_strc_math_indent
-\newconditional\c_strc_math_indent
-
-\newdimen\d_strc_math_framed_width
+\newdimension \d_strc_math_framed_width
-\setvalue{\??formulaoption\v!frame}%
+\defcsname\??formulaoption\v!frame\endcsname
{\edef\p_frame{\formulaparameter\c!frame}%
\ifx\p_frame\v!number
\c_strc_formulas_frame_mode\plustwo % inside frame
@@ -1496,27 +2157,137 @@
% mode: 0=no frame | 1=number inside frame | 2=number outside frame
-\def\strc_math_flush_aligned
- {\ifcase\c_strc_math_vertical
- \ifcase\mathraggedstatus\or\hfill\or\hfill\fi
- \box\b_strc_math_display
- \ifcase\mathraggedstatus\or\or\hfill\or\hfill\fi
- \else
- \ifconditional\c_strc_math_indent
- \ifzeropt\d_strc_math_indent\else
- \hangafter\plusone
- \hangindent\d_strc_math_indent
+% it is a bit of a mess because we solve all kind of bordercases but at some
+% point it will become clean
+
+\def\strc_math_flush_aligned_boxed_direct_yes
+ {\dontleavehmode
+ \box\b_strc_math_display
+ \llap{\box\b_strc_formulas_number}}
+
+\def\strc_math_flush_aligned_boxed_direct_nop
+ {\dontleavehmode
+ \box\b_strc_math_display}
+
+\def\strc_math_flush_aligned_left_number_indeed
+ {\ifvoid\b_strc_formulas_number\else
+ \scratchwidth\wd\b_strc_formulas_number
+ \setbox\b_strc_formulas_number\hbox to \displaywidth{\hss\hbox{\box\b_strc_formulas_number}}%
+ \ifcase\c_strc_math_number_location\or
+ \boxxoffset\b_strc_formulas_number\dimexpr-\displaywidth+\scratchwidth\relax
+ \boxyoffset\b_strc_formulas_number-\d_strc_math_first_height
+ \htdp\b_strc_formulas_number\zeropoint
+ \box\b_strc_formulas_number % left
+ \fi
+ \fi}
+
+\def\strc_math_flush_aligned_right_number_indeed
+ {\ifvoid\b_strc_formulas_number\else
+ \scratchwidth\wd\b_strc_formulas_number
+ \setbox\b_strc_formulas_number\hbox to \displaywidth{\hss\hbox{\box\b_strc_formulas_number}}%
+ \ifcase\c_strc_math_number_location\or\else
+ \boxyoffset\b_strc_formulas_number\d_strc_math_last_depth
+ \htdp\b_strc_formulas_number\zeropoint
+ \box\b_strc_formulas_number % right
+ \fi
+ \fi}
+
+\protected\def\strc_math_flush_aligned_indeed
+ {\ifcase\c_strc_math_ragged_status
+ % align: error
+ \strc_math_flush_aligned_boxed_direct_yes
+ \or
+ % align: flushleft, number right
+ \strc_math_flush_aligned_boxed_direct_yes
+ \or
+ % align: middle
+ \ifnum\c_strc_math_split_mode=\c_strc_math_line_mode
+ \leftskip \zeropoint
+ \rightskip\zeropoint
+ \strc_math_flush_aligned_boxed_direct_yes
+ \orelse\ifnum\c_strc_math_split_mode=\c_strc_math_wrap_mode
+ \dontleavehmode
+ \vbox\bgroup
+ \strc_math_flush_aligned_left_number_indeed
+ \unvbox\b_strc_math_display
+ \strc_math_flush_aligned_right_number_indeed
+ \egroup
+ \orelse\ifhmode
+ % untested
+ \dontleavehmode
+ \strc_math_flush_aligned_left_number_indeed
+ \box\b_strc_math_display
+ \strc_math_flush_aligned_right_number_indeed
+ \orelse\ifvbox\b_strc_math_display
+ \strc_math_flush_aligned_left_number_indeed
+ \unvbox\b_strc_math_display
+ \strc_math_flush_aligned_right_number_indeed
+ \else
+ % untested
+ \dontleavehmode
+ \strc_math_flush_aligned_left_number_indeed
+ \box\b_strc_math_display
+ \strc_math_flush_aligned_right_number_indeed
+ \fi
+ \or
+ % align: flushright
+ % packaged, number (kind of ugly as we now stick in the margin)
+ \ifcase\c_strc_math_n_of_lines\or
+ \dontleavehmode
+ \kern-\wd\b_strc_formulas_number
+ \box\b_strc_math_display
+ \ifcase\c_strc_math_n_of_lines\or
+ \box\b_strc_formulas_number
+ \else
+ \llap{\box\b_strc_formulas_number}%
\fi
+ \orelse\iftrue % can become option
+ \ifdim\d_strc_math_last_width>\wd\b_strc_formulas_number
+ \ifdim\d_strc_math_max_width<\d_strc_math_last_width
+ \strc_math_flush_aligned_boxed_direct_yes
+ \else
+ \dontleavehmode
+ \kern-\wd\b_strc_formulas_number
+ \box\b_strc_math_display
+ \box\b_strc_formulas_number
+ \fi
+ \else
+ % delay number till later
+ \strc_math_flush_aligned_boxed_direct_nop
+ \fi
+ \else
+ % delay number till later
+ \strc_math_flush_aligned_boxed_direct_nop
\fi
- \edef\p_interlinespace{\formulaparameter\c!interlinespace}%
- \ifempty\p_interlinespace\else\baselineskip\p_interlinespace\fi
- \global\d_strc_math_indent\zeropoint
- \ifcase\mathraggedstatus\or\raggedleft\or\raggedcenter\or\raggedright\fi
- \unhbox\b_strc_math_display
+ \fi
+ \ifvmode
+ \nointerlineskip
+ \fi}
+
+\protected\def\strc_math_flush_aligned_simple
+ {\ifcase\c_strc_math_ragged_status\or\or\hfill\or\hfill\fi
+ \box\b_strc_math_display
+ \ifcase\c_strc_math_ragged_status\or\hfill\or\hfill\or\fi}
+
+\protected\def\strc_math_flush_aligned
+ {\ifnum\c_strc_math_split_mode=\c_strc_math_line_mode
+ \strc_math_flush_aligned_simple
+ \orelse\ifconditional\c_strc_math_indent
+ % in this case the already set text align is overloaded
+ \strc_math_setup_align_auto
+ \strc_math_flush_aligned_indeed
+ \else
+ % normally we don't end up here
+ \strc_math_setup_spacing_aligned\mathalignmentparameter
+ \begingroup
+ \forgetall
+ \unhbox\b_strc_math_display
+ \par
+ \endgroup
\fi}
\def\strc_math_flush_box_normal
- {\ifcase\c_strc_math_vertical
+ {\ifnum\c_strc_math_split_mode=\c_strc_math_line_mode
\hbox to \displaywidth\bgroup
\strc_math_flush_aligned
\egroup
@@ -1529,9 +2300,9 @@
\setformulaframedparameter\c!align{\formulaparameter\c!align}%
\letformulaframedparameter\c!strut\v!no
\d_framed_formula\ht\b_strc_math_display
- \ifcase\mathraggedstatus\or\hfill\or\hfill \fi
+ \ifcase\c_strc_math_ragged_status\or \or\hfill\or\hfill\fi
\inheritedformulaframedframed{\box\b_strc_math_display}%
- \ifcase\mathraggedstatus\or \or\hfill\or\hfill\fi}
+ \ifcase\c_strc_math_ragged_status\or\hfill\or\hfill \fi}
\def\strc_math_flush_box_framed_display
{\let\currentformulaframed\currentformula
@@ -1541,7 +2312,7 @@
\def\strc_math_flush_box_framed_fit_inline
{\let\currentformulaframed\currentformula
- \letformulaframedparameter\c!location\empty
+ \resetformulaframedparameter\c!location
\letformulaframedparameter\c!width\v!fit
\strc_math_flush_box_framed_common}
@@ -1553,6 +2324,9 @@
% combiners
+\def\strc_math_flush_number_box_left {\ifconditional\c_strc_formulas_overlay_number\rlap\fi{\strc_math_flush_number_box}}
+\def\strc_math_flush_number_box_right{\ifconditional\c_strc_formulas_overlay_number\llap\fi{\strc_math_flush_number_box}}
+
\def\strc_math_flush_box
{\ifcase\c_strc_formulas_frame_mode
\strc_math_flush_box_normal
@@ -1563,10 +2337,10 @@
\def\strc_math_number_right_normal
{\strc_math_flush_aligned
\hss % hss makes room for number
- \math_box_llapped_math_no}
+ \strc_math_flush_number_box_right}
\def\strc_math_number_left_normal
- {\math_box_rlapped_math_no
+ {\strc_math_flush_number_box_left
\strc_math_flush_aligned
\hss} % hss makes room for number
@@ -1577,10 +2351,10 @@
\strc_math_flush_box_framed_display
\fi
\hss % hss makes room for number
- \math_box_llapped_math_no}
+ \strc_math_flush_number_box}
\def\strc_math_number_left_normal_outside
- {\math_box_rlapped_math_no
+ {\strc_math_flush_number_box
\hss % hss makes room for number
\ifconditional\c_strc_formulas_tight
\strc_math_flush_box_framed_fit_display
@@ -1592,13 +2366,13 @@
{\setbox\b_strc_math_display\hpack to \dimexpr\displaywidth-\d_framed_locator_lo-\d_framed_locator_ro\relax\bgroup
\strc_math_flush_aligned
\hss
- \math_box_llapped_math_no
+ \strc_math_flush_number_box
\egroup
\strc_math_flush_box_framed_fit_inline}
\def\strc_math_number_left_normal_inside
{\setbox\b_strc_math_display\hpack to \dimexpr\displaywidth-\d_framed_locator_lo-\d_framed_locator_ro\relax\bgroup
- \math_box_rlapped_math_no
+ \strc_math_flush_number_box
\hss
\strc_math_flush_aligned
\egroup
@@ -1610,14 +2384,14 @@
\par
\hpack to \displaywidth\bgroup
\hss
- \math_box_llapped_math_no
+ \strc_math_flush_number_box_right
\egroup
\egroup}
\def\strc_math_number_left_overflow
{\vpack\bgroup
\hpack to \displaywidth\bgroup
- \math_box_rlapped_math_no
+ \strc_math_flush_number_box_left
\hss
\egroup
\strc_math_flush_box
@@ -1629,14 +2403,14 @@
%\hskip\zeropoint % nicely breaks the line without introducing funny vertical spacing ... why o why
\hpack to \displaywidth\bgroup
\hss
- \math_box_llapped_math_no
+ \strc_math_flush_number_box
\egroup
\egroup}
\def\strc_math_number_left_overflow_outside
{\vpack\bgroup
\hpack to \dimexpr\displaywidth-\d_framed_locator_lo\relax\bgroup
- \math_box_rlapped_math_no
+ \strc_math_flush_number_box
\hss
\egroup
\hskip\zeropoint % nicely breaks the line without introducing funny vertical spacing ... why o why
@@ -1648,8 +2422,8 @@
\box\b_strc_math_display
\hpack to \displaywidth\bgroup
\hss
- \math_box_llapped_math_no
- \hskip\d_framed_locator_ro
+ \strc_math_flush_number_box
+ \kern\d_framed_locator_ro
\egroup
\egroup
\strc_math_flush_box_framed_fit_inline}
@@ -1657,8 +2431,8 @@
\def\strc_math_number_left_overflow_inside
{\setbox\b_strc_math_display\vpack\bgroup
\hpack to \displaywidth\bgroup
- % \hskip\d_framed_locator_lo
- \math_box_rlapped_math_no
+ % \kern\d_framed_locator_lo
+ \strc_math_flush_number_box
\hss
\egroup
\box\b_strc_math_display
@@ -1667,17 +2441,28 @@
% checkers
+\setupmathalignment
+ [\c!numberdistance=\formulaparameter\c!numberdistance]
+
+\protected\def\d_strc_math_total_display_width
+ {\dimexpr
+ \d_strc_math_display_width+\wd\b_strc_formulas_number
+ \ifconditional\c_strc_formulas_overlay_number
+ \ifcase\c_strc_math_ragged_status\or\or+\wd\b_strc_formulas_number\or\fi
+ \fi
+ \relax}
+
\def\strc_math_number_check
{\d_strc_math_display_width\wd\b_strc_math_display
\ifconditional\c_strc_formulas_tight
- \ifdim\d_strc_math_display_width>\displaywidth
+ \ifdim\d_strc_math_total_display_width>\displaywidth
\settrue\c_strc_math_display_overflow
\else
- \displaywidth\d_strc_math_display_width
+ \displaywidth\d_strc_math_total_display_width
\setfalse\c_strc_math_display_overflow
\fi
\else
- \ifdim\d_strc_math_display_width>\displaywidth
+ \ifdim\dimexpr\d_strc_math_total_display_width+\formulaparameter\c!numberthreshold\relax>\displaywidth
\settrue\c_strc_math_display_overflow
\else
\setfalse\c_strc_math_display_overflow
@@ -1686,13 +2471,13 @@
\def\strc_math_number_check_outside
{\d_strc_math_display_width\naturalwd\b_strc_math_display
- \ifdim\dimexpr\d_strc_math_display_width+\d_framed_locator_lo+\d_framed_locator_ro\relax>\displaywidth
+ \ifdim\dimexpr\d_strc_math_total_display_width+\d_framed_locator_lo+\d_framed_locator_ro\relax>\displaywidth
\settrue\c_strc_math_display_overflow
\else
\setfalse\c_strc_math_display_overflow
\fi
% still ok?
- \ifnum\mathraggedstatus=\plustwo
+ \ifnum\c_strc_math_ragged_status=\plustwo
\d_strc_math_framed_width\dimexpr\displaywidth-2\wd\b_strc_formulas_number\relax
\else
\d_strc_math_framed_width\dimexpr\displaywidth- \wd\b_strc_formulas_number\relax
@@ -1713,7 +2498,7 @@
\def\strc_math_traced_state_yes
{\llap{\setbox\scratchbox\hbox{\infofont
- \ifcase\mathraggedstatus unset\or right\or middle\or left\fi
+ \ifcase\c_strc_math_ragged_status unset\or flushleft\or middle\or flushright\fi
\space
\ifcase\c_strc_formulas_frame_mode no\or out\or in\fi
\space
@@ -1729,25 +2514,89 @@
% packaging
+\installcorenamespace{mathboxlocation}
+
+\defcsname\??mathboxlocation\v!left \endcsname
+ {\c_strc_math_number_location\plusone}
+\defcsname\??mathboxlocation\v!flushright\endcsname
+ {\c_strc_math_number_location\plusone}
+
+\defcsname\??mathboxlocation\v!right\endcsname
+ {\c_strc_math_number_location\plustwo}
+\defcsname\??mathboxlocation\v!flushleft\endcsname
+ {\c_strc_math_number_location\plustwo}
+
+\defcsname\??mathboxlocation\v!atrightmargin\endcsname
+ {\c_strc_math_number_location\plustwo
+ \c_strc_math_number_variant \plusone}
+
\protected\def\strc_math_box_start#1%
- {\hsize\displaywidth % \checkeddisplaymath
- \global\mathnumberstatus\plusone
- \mathraggedstatus#1\relax
- %
- \global\d_math_number_correction\zeropoint
- %
- \edef\p_location{\formulaparameter\c!location}%
+ {\c_strc_math_ragged_status#1\relax % already set
\useformulacolorparameter\c!color
- \c_strc_math_number_location\ifx\p_location\v!left\plusone\orelse\ifx\p_location\v!right\plustwo\else\zerocount\fi
+ \c_strc_math_number_location\zerocount
+ \c_strc_math_number_variant \zerocount
+ \begincsname\??mathboxlocation\formulaparameter\c!location\endcsname
+ %
+ % We collect the math formula in an hbox. Dimensions don't really play
+ % a role yet but beware of nesting!
%
- %\strc_formulas_place_number % not here as we can have inner alignment numbers
\dontcomplain
- \setbox\b_strc_math_display\math_hbox\bgroup % \checkeddisplaymath
- \mathinnerstrut
+ %\holdingmigrations\plusfour
+ \setbox\b_strc_math_display\hbox retain \plusfour\bgroup
\startforceddisplaymath}
+\protected\def\strc_math_box_stop
+ {\stopforceddisplaymath
+ \egroup
+ % preroll left and right offsets
+ \ifcase\c_strc_formulas_frame_mode
+ % no frame
+ \else
+ \strc_math_number_check_offsets
+ \fi
+ \ifcase\c_strc_formulas_frame_mode
+ \strc_math_number_check
+ \or
+ \strc_math_number_check_outside
+ \else
+ \strc_math_number_check_inside
+ \fi
+ \strc_math_traced_state
+ \ifnum\c_strc_math_split_mode=\c_strc_math_line_mode
+ \noindent % \noindentation % not \dontleavehmode
+ \hbox to \displaywidth \bgroup
+ \else
+ \bgroup
+ \strc_math_show_margins
+ \fi
+ \ifcase\c_strc_math_number_location
+ \strc_math_flush_box
+ \or % number left
+ \ifzeropt\wd\b_strc_formulas_number
+ \strc_math_flush_number_no
+ \else
+ \strc_math_flush_number_left
+ \fi
+ \else % number right
+ \ifzeropt\wd\b_strc_formulas_number
+ \strc_math_flush_number_no
+ \else
+ \strc_math_flush_number_right
+ \fi
+ \fi
+ \egroup}
+
+\defineinnermathhandler\v!left {\strc_math_box_start\plusthree}{\strc_math_box_stop}
+\defineinnermathhandler\v!flushright{\strc_math_box_start\plusthree}{\strc_math_box_stop}
+\defineinnermathhandler\v!right {\strc_math_box_start\plusone }{\strc_math_box_stop}
+\defineinnermathhandler\v!flushleft {\strc_math_box_start\plusone }{\strc_math_box_stop}
+\defineinnermathhandler\v!center {\strc_math_box_start\plustwo }{\strc_math_box_stop}
+\defineinnermathhandler\v!middle {\strc_math_box_start\plustwo }{\strc_math_box_stop}
+\defineinnermathhandler\v!normal {\strc_math_box_start\plustwo }{\strc_math_box_stop}
+\defineinnermathhandler\v!atmargin {\strc_math_box_start\plusfour }{\strc_math_box_stop}
+
\def\strc_math_flush_number_no
- {\ifcase\c_strc_math_vertical
+ {\ifnum\c_strc_math_split_mode=\c_strc_math_line_mode
\ifconditional\c_strc_math_display_overflow
\ifcase\c_strc_formulas_frame_mode
\strc_math_flush_box_normal
@@ -1774,7 +2623,7 @@
\fi}
\def\strc_math_flush_number_left
- {\ifcase\c_strc_math_vertical
+ {\ifnum\c_strc_math_split_mode=\c_strc_math_line_mode
\ifconditional\c_strc_math_display_overflow
\ifcase\c_strc_formulas_frame_mode
\strc_math_number_left_overflow
@@ -1793,13 +2642,13 @@
\fi
\fi
\else
- \box\b_strc_formulas_number
- \hfill
- \strc_math_flush_aligned
+ % \box\b_strc_formulas_number
+ % \hfill
+ \strc_math_flush_aligned % we flush in here, otherwise wrong positioning of number (we need to unvbox)
\fi}
\def\strc_math_flush_number_right
- {\ifcase\c_strc_math_vertical
+ {\ifnum\c_strc_math_split_mode=\c_strc_math_line_mode
\ifconditional\c_strc_math_display_overflow
\ifcase\c_strc_formulas_frame_mode
\strc_math_number_right_overflow
@@ -1819,86 +2668,10 @@
\fi
\else
\strc_math_flush_aligned
- \hfill
- \box\b_strc_formulas_number
+ % \hfill
+ % \box\b_strc_formulas_number % we flush in here
\fi}
-\protected\def\strc_math_box_stop
- {\stopforceddisplaymath
- \egroup
- % check number
- \d_strc_math_number_width\wd\b_strc_formulas_number
- %
- \ifcase\mathnumberstatus
- \setfalse\c_strc_math_has_number
- \or\ifzeropt\d_strc_math_number_width
- \setfalse\c_strc_math_has_number
- \else
- \settrue\c_strc_math_has_number
- \fi\fi
- % preroll left and right offsets
- \ifcase\c_strc_formulas_frame_mode
- % no frame
- \else
- \strc_math_number_check_offsets
- \fi
- \ifcase\c_strc_formulas_frame_mode
- \strc_math_number_check
- \or
- \strc_math_number_check_outside
- \else
- \strc_math_number_check_inside
- \fi
- \noindent % \noindentation % not \dontleavehmode
- \hskip\d_strc_formulas_display_margin_left % was kern but that doesn't indent
- \strc_math_traced_state
- \ifcase\c_strc_math_vertical
- \hbox to \displaywidth \bgroup
- \or
- \vbox \bgroup \hsize\displaywidth
- \or
- \bgroup \hsize\displaywidth
- \fi
- \ifcase\mathnumberstatus
- \strc_math_flush_box
- \or % status 1
- \ifcase\c_strc_math_number_location
- \strc_math_flush_box
- \or % number left
- \ifzeropt\wd\b_strc_formulas_number
- \strc_math_flush_number_no
- \else
- \strc_math_flush_number_left
- \fi
- \else % number right
- \ifzeropt\wd\b_strc_formulas_number
- \strc_math_flush_number_no
- \else
- \strc_math_flush_number_right
- \fi
- \fi
- \or % status 2
- \hskip\d_math_number_correction % probably no longer used
- \strc_math_flush_box
- \hss
- \else
- \strc_math_flush_box
- \fi
- \ifcase\c_strc_math_vertical
- \or
- \or
- \par
- \fi
- \egroup}
-
-\defineinnermathhandler\v!left {\strc_math_box_start\plusone }{\strc_math_box_stop}
-\defineinnermathhandler\v!middle {\strc_math_box_start\plustwo }{\strc_math_box_stop}
-\defineinnermathhandler\v!right {\strc_math_box_start\plusthree}{\strc_math_box_stop}
-\defineinnermathhandler\v!flushleft {\strc_math_box_start\plusthree}{\strc_math_box_stop}
-\defineinnermathhandler\v!center {\strc_math_box_start\plustwo }{\strc_math_box_stop}
-\defineinnermathhandler\v!flushright{\strc_math_box_start\plusone }{\strc_math_box_stop}
-\defineinnermathhandler\v!normal {\strc_math_box_start\plustwo }{\strc_math_box_stop}
-
%D Some inline math tweak.
\appendtoks
@@ -1947,6 +2720,229 @@
{\afterdisplayspace
\endgroup}
+%D Kind of new (February 2022):
+
+\installcorenamespace {maththreshold}
+
+\setupmathematics[\c!threshold=\zeropoint]
+
+\permanent\protected\def\installmaththreshold#1#2%
+ {\expandafter\gluespecdef\csname\??maththreshold#1\endcsname#2\relax}
+
+\installmaththreshold\v!none {\zeropoint}
+\installmaththreshold\v!small {3\emwidth plus 0.50\emwidth minus 0.25\emwidth}
+\installmaththreshold\v!medium{4\emwidth plus 0.75\emwidth minus 0.50\emwidth}
+\installmaththreshold\v!big {5\emwidth plus 1.00\emwidth minus 0.75\emwidth}
+
+\appendtoks
+ \edef\p_threshold{\mathematicsparameter\c!threshold}%
+ \maththreshold\ifcsname\??maththreshold\p_threshold\endcsname\lastnamedcs\else\p_threshold\fi\relax
+% \to \everymath % \everymathematics
+\to \everymathematics
+
+%D Here is simple alignment mechanism:
+
+\installcorenamespace{mathsimplealign}
+
+\installcommandhandler \??mathsimplealign {mathsimplealign} \??mathsimplealign
+
+\setupmathsimplealign
+ [\c!distance=\v!math,
+ \c!leftmargin=\zeropoint,
+ \c!rightmargin=\zeropoint,
+ \c!left=,
+ \c!right=,
+ \c!strut=\v!yes,
+ \c!spaceinbetween=\mathalignmentparameter\c!spaceinbetween,
+ \c!align=\v!all:\v!middle,
+ \c!textdistance=.25\emwidth]
+
+\appendtoks
+ \frozen\instance\protected\edefcsname\e!start\currentmathsimplealign\endcsname{\math_simplealign_start[\currentmathsimplealign]}%
+ \frozen\instance \defcsname \e!stop \currentmathsimplealign\endcsname{\math_simplealign_stop}%
+\to \everydefinemathsimplealign
+
+\permanent\protected\def\math_simplealign_NC
+ {\aligntab}
+
+\permanent\protected\def\math_simplealign_EQ
+ {\aligntab=\aligntab}
+
+\noaligned\tolerant\permanent\protected\def\math_simplealign_NR[#1]#*[#2]%
+ {\unskip
+ \strc_formulas_place_number_nested{#1}{#2}\crcr}
+
+\permanent\tolerant\protected\def\math_simplealign_start[#1]#*[#2]%
+ {\begingroup
+ \edef\currentmathsimplealign{#1}%
+ \ifarguments\or\or
+ \setupcurrentmathsimplealign[#2]%
+ \fi
+ \edef\p_strut{\mathsimplealignparameter\c!strut}%
+ \ifx\p_strut\v!yes
+ \enforced\let\math_align_strut\strut
+ \else
+ \enforced\let\math_align_strut\relax
+ \fi
+ \mathatom \s!class \mathwrappedcode \bgroup
+ \scratchdimen\mathsimplealignparameter\c!leftmargin\relax
+ \ifzeropt\scratchdimen\else\kern\scratchdimen\fi
+ \mathsimplealignparameter\c!left\relax
+ \math_fenced_start_wrap{\mathsimplealignparameter\c!fences}%
+ \mathatom \s!class \mathconstructcode \bgroup
+ \vcenter\bgroup
+ \enforced\let\MC\math_simplealign_NC
+ \enforced\let\NC\math_simplealign_NC
+ \enforced\let\NR\math_simplealign_NR
+ \enforced\let\EQ\math_simplealign_EQ
+ \enforced\let\TB\math_common_TB
+ \math_eqalign_set_defaults
+ \math_eqalign_set_columns{\mathsimplealignparameter\c!align}%
+ \global\c_math_eqalign_column\zerocount
+ \global\c_math_eqalign_row\plusone
+ \edef\m_simplealign_distance{\mathsimplealignparameter\c!distance}%
+ \strc_math_setup_spacing_aligned\mathcasesparameter
+ \enablematrixalign
+ \halign callback \s!attr \mathnumberlocationattribute \zerocount \bgroup
+ \global\c_math_eqalign_column\zerocount
+ \global\advanceby\c_math_eqalign_row\zerocount
+ \ignorespaces
+ \aligncontent % dummy
+ \removeunwantedspaces
+ \lastleftclass \mathbegincode
+ \lastrightclass\mathendcode
+ \aligntab
+ \global\advanceby\c_math_eqalign_column\plusone
+ \math_left_of_eqalign % \hfil
+ \ignorespaces
+ \math_align_strut
+ \startforceddisplaymath
+ \aligncontent
+ \stopforceddisplaymath
+ \removeunwantedspaces
+ \math_right_of_eqalign % \hfil
+ \aligntab
+ \aligntab
+ \global\advanceby\c_math_eqalign_column\plusone
+ \math_left_of_eqalign % \hfil
+ \ifx\m_simplealign_distance\v!math
+ \mathbeginclass\lastrightclass
+ \else
+ \kern\m_simplealign_distance
+ \fi
+ \ignorespaces
+ \math_align_strut
+ \startforceddisplaymath
+ \aligncontent
+ \stopforceddisplaymath
+ \removeunwantedspaces
+ \math_right_of_eqalign % \hfil
+ \crcr}
+
+\noaligned\permanent\protected\def\math_simplealign_stop
+ {\crcr
+ \egroup
+ \egroup
+ \egroup
+ \math_fenced_stop_wrap
+ \mathsimplealignparameter\c!right\relax
+ \scratchdimen\mathsimplealignparameter\c!rightmargin\relax
+ \ifzeropt\scratchdimen\else\kern\scratchdimen\fi
+ \setbox\scratchbox\hbox{\mathsimplealignparameter\c!text}%
+ \ifvoid\scratchbox\else
+ \kern\mathsimplealignparameter\c!textdistance % hskip
+ \vcenter{\box\scratchbox}%
+ \fi
+ \egroup
+ \endgroup}
+
+%D It's not that spectacular apart from spacing being proper inter atom spacing
+%D using one of the new \LUAMETATEX\ mechanisms.
+%D
+%D \starttyping
+%D \definemathsimplealign
+%D [whatever]
+%D [left={\startmathfenced[sesac]},
+%D right=\stopmathfenced]
+%D
+%D % distance=math,
+%D % distance=\zeropoint,
+%D % distance=1cm,
+%D % align={all:left}]
+%D
+%D \startformula
+%D \startwhatever[text=simple]
+%D \NC x \NC = \NC r \NC \cos\theta \NR
+%D \NC y \NC = \NC \frac{1}{2} \NC \sin\theta \NR
+%D \NC 9 \NC = \NC 123 \NC \sin\theta \NR
+%D \stopwhatever
+%D \stopformula
+%D \stoptyping
+
+%D Usage \type {\sum _ {\mstack {i \in V_{0}, i \neq j}}}, documented by Mikael:
+
+\permanent\protected\def\mstack#1% todo: make it configurable
+ {\begingroup
+ \scratchtoks\emptytoks \setcharstrut(\relax
+ \processcommalist[#1]{\iftok\scratchtoks\emptytoks\else\toksapp\scratchtoks{\mathstrut\NR}\fi\toksapp\scratchtoks}%
+ \expandafter\startsubstack\the\scratchtoks\mathstrut\stopsubstack
+ \endgroup}
+
+%D Similar to simplecases:
+%D
+%D \starttyping
+%D \startformula
+%D \equationsystem {
+%D {(1-a)}x^{2x} - 3y_2 + 14z = 2 + x,
+%D {(1-a)}x^2 - 3y_2 + 4z <= 62,
+%D {(1-a)}x^a - 3y_2 + 4z >= 12,
+%D {(1-a)}x^{2a} - 3y_2 + 24z != 4,
+%D x^^2 - 3y_2 + 4z ~ 1,
+%D x^^2 - 3y_2 + 4z ≠ 1,
+%D -2x - 4z <> 10,
+%D }
+%D \stopformula
+%D \stoptyping
+
+\permanent\tolerant\protected\def\math_align_simple[#1]#*[#2]#:#3%
+ {\begingroup
+ \edef\currentmathsimplealign{#1}%
+ \setupcurrentmathsimplealign[#2]%
+ \math_simplealign_start[\currentmathsimplealign]%
+ \clf_simplealign{\mathsimplealignparameter\c!alternative}{\mathsimplealignparameter\c!action}{#3}%
+ \math_simplealign_stop
+ \endgroup}
+
+\appendtoks
+ \edef\p_simplecommand{\mathsimplealignparameter\c!simplecommand}%
+ \ifempty\p_simplecommand\else
+ \frozen\protected\instance\edefcsname\p_simplecommand\endcsname{\math_align_simple[\currentmathsimplealign]}%
+ \fi
+\to \everydefinemathsimplealign
+
+\definemathsimplealign % new !
+ [equationsystem]
+ [\c!simplecommand=equationsystem,
+ \c!alternative=equationsystem, % for the moment we use this key
+ \c!align={all:right},
+ \c!distance=\v!math,
+ \c!left=,
+ \c!right=]
+
+\definemathsimplealign
+ [lequationsystem]
+ [equationsystem]
+ [\c!simplecommand=lequationsystem,
+ \c!left={\startmathfenced[cases]},
+ \c!right=\stopmathfenced]
+
+\definemathsimplealign
+ [requationsystem]
+ [equationsystem]
+ [\c!simplecommand=requationsystem,
+ \c!left={\startmathfenced[sesac]},
+ \c!right=\stopmathfenced]
+
\protect \endinput
% \placeformula \startformula[-] \startmatrix
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-brl.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-brl.lmt
new file mode 100644
index 00000000000..ad934635066
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-brl.lmt
@@ -0,0 +1,526 @@
+return {
+ ["comment"]="taken from blog by Murray Sargent as well as wikipedia",
+ ["copyright"]="unknown",
+ ["nemeth"]={
+ [33]="⠯",
+ [35]="⠨⠼",
+ [36]="⠈⠎",
+ [37]="⠈⠴",
+ [38]="⠸⠯",
+ [39]="⠄",
+ [40]="⠷",
+ [41]="⠾",
+ [42]="⠈⠼",
+ [43]="⠬",
+ [44]="⠠",
+ [45]="⠸⠤",
+ [46]="⠸⠲",
+ [47]="⠸⠌",
+ [58]="⠸⠒",
+ [59]="⠸⠆",
+ [60]="⠀⠐⠅⠀",
+ [61]="⠀⠨⠅⠀",
+ [62]="⠀⠨⠂⠀",
+ [63]="⠸⠦",
+ [64]="⠈⠁",
+ [91]="⠈⠷",
+ [92]="⠸⠡",
+ [93]="⠈⠾",
+ [94]="⠸⠣",
+ [123]="⠨⠷",
+ [124]="⠡",
+ [125]="⠨⠾",
+ [126]="⠈⠱",
+ [162]="⠈⠉",
+ [163]="⠈⠇",
+ [167]="⠈⠠⠎",
+ [169]="⠷⠠⠉⠾",
+ [174]="⠷⠠r⠾",
+ [176]="⠘⠨⠡",
+ [177]="⠬⠤",
+ [182]="⠈⠠⠏",
+ [183]="⠡",
+ [215]="⠈⠡",
+ [247]="⠨⠌",
+ [913]="⠨⠠⠁",
+ [914]="⠨⠠⠃",
+ [915]="⠨⠠⠛",
+ [916]="⠨⠠⠙",
+ [917]="⠨⠠⠑",
+ [918]="⠨⠠⠵",
+ [919]="⠨⠠⠱",
+ [920]="⠨⠠⠹",
+ [921]="⠨⠠⠊",
+ [922]="⠨⠠⠅",
+ [923]="⠨⠠⠇",
+ [924]="⠨⠠⠍",
+ [925]="⠨⠠⠝",
+ [926]="⠨⠠⠭",
+ [927]="⠨⠠⠕",
+ [928]="⠨⠠⠏",
+ [929]="⠨⠠⠗",
+ [931]="⠨⠠⠎",
+ [932]="⠨⠠⠞",
+ [933]="⠨⠠⠥",
+ [934]="⠨⠠⠋",
+ [935]="⠨⠠⠯",
+ [936]="⠨⠠⠽",
+ [937]="⠨⠠⠺",
+ [945]="⠨⠁",
+ [946]="⠨⠃",
+ [947]="⠨⠛",
+ [948]="⠨⠙",
+ [949]="⠨⠈⠑",
+ [950]="⠨⠵",
+ [951]="⠨⠱",
+ [952]="⠨⠹",
+ [953]="⠨⠊",
+ [954]="⠨⠅",
+ [955]="⠨⠇",
+ [956]="⠨⠍",
+ [957]="⠨⠝",
+ [958]="⠨⠭",
+ [959]="⠨⠕",
+ [960]="⠨⠏",
+ [961]="⠨⠗",
+ [962]="⠨⠒",
+ [963]="⠨⠎",
+ [964]="⠨⠞",
+ [965]="⠨⠥",
+ [966]="⠨⠈⠋",
+ [967]="⠨⠯",
+ [968]="⠨⠽",
+ [969]="⠨⠺",
+ [977]="⠨⠈⠹",
+ [981]="⠨⠋",
+ [982]="⠨⠈⠏",
+ [1008]="⠨⠈⠅",
+ [1013]="⠨⠑",
+ [8212]="⠤⠤",
+ [8213]="⠤⠤⠤⠤",
+ [8216]="⠠⠦",
+ [8217]="⠴⠠",
+ [8220]="⠦",
+ [8221]="⠴",
+ [8224]="⠸⠻",
+ [8225]="⠸⠸⠻",
+ [8226]="⠔⠔",
+ [8230]="⠄⠄⠄",
+ [8240]="⠈⠴⠴",
+ [8241]="⠈⠴⠴⠴",
+ [8242]="⠄",
+ [8243]="⠄⠄",
+ [8463]="⠈⠓",
+ [8467]="⠈⠇",
+ [8491]="⠈⠠⠁",
+ [8592]="⠀⠫⠪⠒⠒⠀",
+ [8593]="⠀⠫⠣⠒⠒⠕⠀",
+ [8594]="⠀⠫⠒⠒⠕⠀",
+ [8595]="⠀⠫⠩⠒⠒⠕⠀",
+ [8596]="⠀⠫⠪⠒⠒⠕⠀",
+ [8597]="⠀⠫⠣⠪⠒⠒⠕⠀",
+ [8598]="⠀⠫⠘⠪⠒⠒⠀",
+ [8599]="⠀⠫⠘⠒⠒⠕⠀",
+ [8600]="⠀⠫⠰⠒⠒⠕⠀",
+ [8601]="⠀⠫⠰⠪⠒⠒⠀",
+ [8602]="⠀⠳⠈⠫⠪⠒⠒⠻⠀",
+ [8603]="⠀⠳⠈⠫⠒⠒⠕⠻⠀",
+ [8604]="⠀⠫⠪⠔⠒⠢⠀",
+ [8605]="⠀⠫⠔⠒⠢⠕⠀",
+ [8606]="⠀⠫⠪⠪⠒⠒⠀",
+ [8607]="⠀⠫⠣⠒⠒⠕⠕⠀",
+ [8608]="⠀⠫⠒⠒⠕⠕⠀",
+ [8609]="⠀⠫⠩⠒⠒⠕⠕⠀",
+ [8610]="⠀⠫⠪⠒⠒⠠⠽⠀",
+ [8611]="⠀⠫⠠⠯⠒⠒⠕⠀",
+ [8612]="⠀⠫⠪⠒⠒⠳⠀",
+ [8613]="⠀⠫⠣⠳⠒⠒⠕⠀",
+ [8614]="⠀⠫⠳⠒⠒⠕⠀",
+ [8615]="⠀⠫⠩⠳⠒⠒⠕⠀",
+ [8616]="⠀⠫⠣⠪⠒⠒⠕⠳⠀",
+ [8617]="⠀⠫⠪⠒⠒⠈⠽⠀",
+ [8618]="⠀⠫⠈⠯⠒⠒⠕⠀",
+ [8621]="⠀⠫⠪⠔⠒⠢⠕⠀",
+ [8622]="⠀⠳⠈⠫⠪⠒⠒⠕⠻⠀",
+ [8623]="⠀⠫⠩⠔⠢⠔⠕⠀",
+ [8628]="⠀⠫⠩⠠⠳⠒⠕⠀",
+ [8629]="⠀⠫⠪⠒⠈⠳⠀",
+ [8634]="⠀⠫⠢⠔⠕⠀",
+ [8635]="⠀⠫⠪⠢⠔⠀",
+ [8636]="⠀⠫⠈⠪⠒⠒⠀",
+ [8637]="⠀⠫⠠⠪⠒⠒⠀",
+ [8638]="⠀⠫⠣⠒⠒⠠⠕⠀",
+ [8639]="⠀⠫⠣⠒⠒⠈⠕⠀",
+ [8640]="⠀⠫⠒⠒⠈⠕⠀",
+ [8641]="⠀⠫⠒⠒⠠⠕⠀",
+ [8642]="⠀⠫⠩⠒⠒⠈⠕⠀",
+ [8643]="⠀⠫⠩⠒⠒⠠⠕⠀",
+ [8644]="⠀⠫⠒⠒⠕⠫⠪⠒⠒⠀",
+ [8645]="⠀⠫⠣⠒⠒⠕⠐⠫⠩⠒⠒⠕⠀",
+ [8646]="⠀⠫⠪⠒⠒⠫⠒⠒⠕⠀",
+ [8647]="⠀⠫⠪⠒⠒⠫⠪⠒⠒⠀",
+ [8648]="⠀⠫⠣⠒⠒⠕⠐⠫⠣⠒⠒⠕⠀",
+ [8649]="⠀⠫⠒⠒⠕⠫⠒⠒⠕⠀",
+ [8650]="⠀⠫⠩⠒⠒⠕⠐⠫⠩⠒⠒⠕⠀",
+ [8651]="⠀⠫⠈⠪⠒⠒⠫⠒⠒⠠⠕⠀",
+ [8652]="⠀⠫⠒⠒⠈⠕⠫⠠⠪⠒⠒⠀",
+ [8653]="⠀⠳⠈⠫⠪⠶⠶⠻⠀",
+ [8654]="⠀⠳⠈⠫⠪⠶⠶⠕⠻⠀",
+ [8655]="⠀⠳⠈⠫⠶⠶⠕⠻⠀",
+ [8656]="⠀⠫⠪⠶⠶⠀",
+ [8657]="⠀⠫⠣⠶⠶⠕⠀",
+ [8658]="⠀⠫⠶⠶⠕⠀",
+ [8659]="⠀⠫⠩⠶⠶⠕⠀",
+ [8660]="⠀⠫⠪⠶⠶⠕⠀",
+ [8661]="⠀⠫⠣⠪⠶⠶⠕⠀",
+ [8662]="⠀⠫⠘⠪⠶⠶⠀",
+ [8663]="⠀⠫⠘⠶⠶⠕⠀",
+ [8664]="⠀⠫⠰⠶⠶⠕⠀",
+ [8665]="⠀⠫⠰⠪⠶⠶⠀",
+ [8666]="⠀⠫⠪⠸⠸⠀",
+ [8667]="⠀⠫⠸⠸⠕⠀",
+ [8668]="⠀⠫⠪⠢⠤⠔⠒⠢⠀",
+ [8669]="⠀⠫⠢⠤⠔⠒⠢⠕⠀",
+ [8670]="⠀⠳⠳⠈⠫⠣⠒⠒⠕⠻⠀",
+ [8671]="⠀⠳⠳⠈⠫⠩⠒⠒⠕⠻⠀",
+ [8672]="⠀⠫⠪⠒⠀⠒⠀",
+ [8673]="⠀⠫⠣⠒⠀⠒⠕⠀",
+ [8674]="⠀⠫⠒⠀⠒⠕⠀",
+ [8675]="⠀⠫⠩⠒⠀⠒⠕⠀",
+ [8676]="⠀⠳⠫⠪⠒⠒⠀",
+ [8677]="⠀⠫⠒⠒⠕⠳⠀",
+ [8692]="⠀⠨⠡⠈⠫⠒⠒⠕⠻⠀",
+ [8693]="⠀⠫⠩⠒⠒⠕⠐⠫⠣⠒⠒⠕⠀",
+ [8694]="⠀⠫⠒⠒⠕⠫⠒⠒⠕⠫⠒⠒⠕⠀",
+ [8695]="⠀⠳⠈⠫⠪⠒⠒⠻⠀",
+ [8696]="⠀⠳⠈⠫⠒⠒⠕⠻⠀",
+ [8697]="⠀⠳⠈⠫⠪⠒⠒⠕⠻⠀",
+ [8698]="⠀⠳⠳⠈⠫⠪⠒⠒⠻⠀",
+ [8699]="⠀⠳⠳⠈⠫⠒⠒⠕⠻⠀",
+ [8700]="⠀⠳⠳⠈⠫⠪⠒⠒⠕⠻⠀",
+ [8704]="⠈⠯",
+ [8706]="⠈⠙",
+ [8707]="⠈⠿",
+ [8708]="⠌⠈⠿",
+ [8709]="⠸⠴",
+ [8711]="⠨⠫",
+ [8712]="⠀⠈⠑⠀",
+ [8713]="⠀⠌⠈⠑⠀",
+ [8715]="⠀⠈⠢⠀",
+ [8716]="⠀⠌⠈⠢⠀",
+ [8718]="⠸⠳",
+ [8721]="⠨⠠⠎",
+ [8722]="⠤",
+ [8723]="⠤⠬",
+ [8724]="⠐⠬⠣⠡⠻",
+ [8725]="⠸⠌",
+ [8727]="⠈⠼",
+ [8728]="⠨⠡",
+ [8730]="⠜",
+ [8731]="⠣⠒⠜",
+ [8732]="⠣⠲⠜",
+ [8733]="⠀⠸⠿⠀",
+ [8734]="⠠⠿",
+ [8735]="⠫⠪⠨⠗⠻",
+ [8736]="⠫⠪",
+ [8737]="⠫⠪⠈⠫⠁⠻",
+ [8739]="⠀⠳⠀",
+ [8740]="⠀⠌⠳⠀",
+ [8741]="⠀⠫⠇⠀",
+ [8742]="⠀⠌⠫⠇⠀",
+ [8743]="⠈⠩",
+ [8744]="⠈⠬",
+ [8745]="⠨⠩",
+ [8746]="⠨⠬",
+ [8747]="⠮",
+ [8748]="⠮⠮",
+ [8749]="⠮⠮⠮",
+ [8750]="⠮⠈⠫⠉⠻",
+ [8754]="⠮⠈⠫⠪⠢⠔⠻",
+ [8755]="⠮⠈⠫⠢⠔⠕⠻",
+ [8756]="⠀⠠⠡⠀",
+ [8757]="⠀⠈⠌⠀",
+ [8758]="⠀⠐⠂⠀",
+ [8759]="⠀⠰⠆⠀",
+ [8760]="⠨⠤",
+ [8761]="⠀⠤⠐⠂⠀",
+ [8762]="⠀⠐⠤⠩⠡⠡⠣⠡⠡⠻⠀",
+ [8763]="⠀⠐⠈⠱⠩⠡⠣⠡⠻⠀",
+ [8764]="⠀⠈⠱⠀",
+ [8765]="⠀⠠⠱⠀",
+ [8770]="⠀⠱⠈⠱⠀",
+ [8771]="⠀⠈⠱⠱⠀",
+ [8773]="⠀⠈⠱⠨⠅⠀",
+ [8776]="⠀⠈⠱⠈⠱⠀",
+ [8778]="⠀⠈⠱⠈⠱⠱⠀",
+ [8779]="⠀⠈⠱⠈⠱⠈⠱⠀",
+ [8780]="⠀⠠⠱⠨⠅⠀",
+ [8781]="⠀⠫⠠⠫⠈⠀",
+ [8782]="⠀⠈⠣⠠⠣⠀",
+ [8783]="⠀⠈⠣⠱⠀",
+ [8784]="⠀⠐⠨⠅⠣⠡⠻⠀",
+ [8785]="⠀⠐⠨⠅⠩⠡⠣⠡⠻⠀",
+ [8788]="⠀⠐⠂⠨⠅⠀",
+ [8789]="⠀⠨⠅⠐⠂⠀",
+ [8790]="⠀⠨⠡⠈⠨⠅⠻⠀",
+ [8791]="⠀⠐⠨⠅⠣⠨⠡⠻⠀",
+ [8792]="⠀⠐⠨⠅⠣⠫⠁⠻⠀",
+ [8793]="⠀⠐⠨⠅⠣⠸⠣⠻⠀",
+ [8794]="⠀⠐⠨⠅⠣⠸⠩⠻⠀",
+ [8795]="⠀⠐⠨⠅⠣⠫⠎⠻⠀",
+ [8796]="⠀⠐⠨⠅⠣⠫⠞⠻⠀",
+ [8797]="⠀⠐⠨⠅⠣⠙⠑⠋⠻⠀",
+ [8798]="⠀⠐⠨⠅⠣⠍⠻⠀",
+ [8799]="⠀⠐⠨⠅⠣⠸⠢⠻⠀",
+ [8800]="⠀⠌⠨⠅⠀",
+ [8801]="⠀⠸⠇⠀",
+ [8802]="⠀⠌⠸⠇⠀",
+ [8804]="⠀⠐⠅⠱⠀",
+ [8805]="⠀⠨⠂⠱⠀",
+ [8806]="⠀⠐⠅⠨⠅⠀",
+ [8807]="⠀⠨⠂⠨⠅⠀",
+ [8808]="⠀⠐⠅⠌⠨⠅⠀",
+ [8809]="⠀⠨⠂⠌⠨⠅⠀",
+ [8810]="⠀⠐⠅⠈⠐⠅⠻⠀",
+ [8811]="⠀⠨⠂⠈⠨⠂⠻⠀",
+ [8813]="⠀⠌⠈⠣⠠⠣⠀",
+ [8814]="⠀⠌⠐⠅⠀",
+ [8815]="⠀⠌⠨⠂⠀",
+ [8816]="⠀⠌⠐⠅⠱⠀",
+ [8817]="⠀⠌⠨⠂⠱⠀",
+ [8818]="⠀⠐⠅⠈⠱⠀",
+ [8819]="⠀⠨⠂⠈⠱⠀",
+ [8820]="⠀⠌⠐⠅⠈⠱⠀",
+ [8821]="⠀⠌⠨⠂⠈⠱⠀",
+ [8822]="⠀⠐⠅⠨⠂⠀",
+ [8823]="⠀⠨⠂⠐⠅⠀",
+ [8824]="⠀⠌⠐⠅⠨⠂⠀",
+ [8825]="⠀⠌⠨⠂⠐⠅⠀",
+ [8826]="⠀⠨⠐⠅⠀",
+ [8827]="⠀⠨⠨⠂⠀",
+ [8830]="⠀⠨⠐⠅⠈⠱⠀",
+ [8831]="⠀⠨⠨⠂⠈⠱⠀",
+ [8834]="⠀⠸⠐⠅⠀",
+ [8835]="⠀⠸⠨⠂⠀",
+ [8836]="⠀⠌⠸⠐⠅⠀",
+ [8837]="⠀⠌⠸⠨⠂⠀",
+ [8838]="⠀⠸⠐⠅⠱⠀",
+ [8839]="⠀⠸⠨⠂⠱⠀",
+ [8840]="⠀⠌⠸⠐⠅⠱⠀",
+ [8841]="⠀⠌⠸⠨⠂⠱⠀",
+ [8842]="⠀⠸⠐⠅⠌⠱⠀",
+ [8843]="⠀⠸⠨⠂⠌⠱⠀",
+ [8844]="⠨⠬⠈⠫⠪⠒⠻",
+ [8845]="⠡⠈⠨⠬⠻",
+ [8846]="⠬⠈⠨⠬⠻",
+ [8853]="⠫⠉⠸⠫⠬⠻",
+ [8854]="⠫⠉⠸⠫⠤⠻",
+ [8855]="⠫⠉⠸⠫⠈⠡⠻",
+ [8856]="⠫⠉⠸⠫⠸⠌⠻",
+ [8857]="⠫⠉⠸⠫⠡⠻",
+ [8859]="⠫⠉⠸⠫⠈⠼⠻",
+ [8860]="⠫⠉⠸⠫⠨⠅⠻",
+ [8861]="⠫⠉⠸⠫⠤⠤⠻",
+ [8862]="⠫⠲⠸⠫⠬⠻",
+ [8863]="⠫⠲⠸⠫⠤⠻",
+ [8864]="⠫⠲⠸⠫⠈⠡⠻",
+ [8865]="⠫⠲⠸⠫⠡⠻",
+ [8866]="⠀⠫⠳⠒⠀",
+ [8867]="⠀⠫⠒⠳⠀",
+ [8868]="⠀⠫⠩⠳⠒⠀",
+ [8869]="⠀⠫⠏⠀ or ⠀⠫⠣⠳⠒⠀",
+ [8886]="⠀⠫⠨⠡⠒⠡⠀",
+ [8887]="⠀⠫⠡⠒⠨⠡⠀",
+ [8888]="⠀⠫⠒⠨⠡⠀",
+ [8895]="⠫⠞⠨⠗⠻",
+ [8901]="⠡",
+ [8902]="⠫⠎",
+ [8909]="⠀⠠⠱⠱⠀",
+ [8918]="⠀⠡⠈⠐⠅⠻⠀",
+ [8919]="⠀⠡⠈⠨⠂⠻⠀",
+ [8920]="⠀⠐⠅⠈⠐⠅⠈⠐⠅⠻⠀",
+ [8921]="⠀⠨⠂⠈⠨⠂⠈⠨⠂⠻⠀",
+ [8924]="⠀⠱⠐⠅⠀",
+ [8925]="⠀⠱⠨⠂⠀",
+ [8942]="⠀⠩⠒⠒⠒⠀",
+ [8943]="⠀⠒⠒⠒",
+ [8944]="⠀⠘⠒⠒⠒⠀",
+ [8945]="⠀⠰⠒⠒⠒⠀",
+ [8946]="⠀⠱⠈⠈⠑⠻⠀",
+ [8949]="⠀⠐⠈⠑⠣⠡⠻⠀",
+ [8950]="⠀⠱⠈⠑⠀",
+ [8954]="⠀⠱⠈⠈⠢⠻⠀",
+ [8957]="⠀⠱⠈⠢⠀",
+ [8968]="⠈⠘⠷",
+ [8969]="⠈⠘⠾",
+ [8970]="⠈⠰⠷",
+ [8971]="⠈⠰⠾",
+ [8994]="⠀⠫⠁⠀",
+ [8995]="⠀⠫⠄⠀",
+ [9632]="⠫⠸⠲",
+ [9633]="⠫⠲",
+ [9644]="⠫⠸⠗",
+ [9645]="⠫⠗",
+ [9650]="⠫⠸⠞",
+ [9651]="⠫⠞",
+ [9660]="⠸⠨⠫",
+ [9675]="⠫⠉",
+ [9679]="⠫⠸⠉",
+ [9707]="⠫⠲⠸⠫⠳⠻",
+ [10178]="⠀⠫⠏⠀",
+ [10179]="⠀⠨⠡⠈⠸⠐⠅⠻⠀",
+ [10180]="⠀⠨⠡⠈⠸⠨⠂⠻⠀",
+ [10204]="⠀⠫⠨⠡⠒⠒⠀",
+ [10205]="⠀⠫⠳⠒⠒⠀",
+ [10206]="⠀⠫⠒⠒⠳⠀",
+ [10207]="⠫⠣⠳⠒⠒⠨⠡",
+ [10214]="⠈⠸⠷",
+ [10215]="⠈⠸⠾",
+ [10216]="⠨⠨⠷",
+ [10217]="⠨⠨⠾",
+ [10229]="⠀⠫⠪⠒⠒⠒⠀",
+ [10230]="⠀⠫⠒⠒⠒⠕⠀",
+ [10231]="⠀⠫⠪⠒⠒⠒⠕⠀",
+ [10232]="⠀⠫⠪⠶⠶⠶⠀",
+ [10233]="⠀⠫⠶⠶⠶⠕⠀",
+ [10234]="⠀⠫⠪⠶⠶⠶⠕⠀",
+ [10235]="⠀⠫⠪⠒⠒⠒⠳⠀",
+ [10236]="⠀⠫⠳⠒⠒⠒⠕⠀",
+ [10237]="⠀⠫⠪⠶⠶⠶⠳⠀",
+ [10238]="⠀⠫⠳⠶⠶⠶⠕⠀",
+ [10239]="⠀⠫⠢⠤⠔⠒⠢⠤⠔⠒⠢⠕⠀",
+ [10529]="⠀⠫⠘⠪⠒⠒⠕⠀",
+ [10530]="⠀⠫⠰⠪⠒⠒⠕⠀",
+ [10627]="⠨⠸⠷",
+ [10628]="⠨⠸⠾",
+ [10641]="⠡⠈⠨⠨⠷⠻",
+ [10642]="⠡⠈⠨⠨⠾⠻",
+ [10692]="⠫⠲⠸⠫⠔⠻",
+ [10693]="⠫⠲⠸⠫⠢⠻",
+ [10694]="⠫⠲⠸⠫⠈⠼⠻",
+ [10698]="⠐⠫⠞⠣⠡⠻",
+ [10699]="⠫⠞⠱",
+ [10700]="⠫⠞⠎",
+ [10726]="⠫⠳⠶⠶⠳",
+ [10764]="⠮⠮⠮⠮",
+ [10765]="⠮⠈⠱⠻",
+ [10766]="⠮⠈⠱⠱⠻",
+ [10774]="⠮⠈⠫⠲⠻",
+ [10776]="⠮⠈⠈⠡⠻",
+ [10777]="⠮⠈⠨⠩⠻",
+ [10778]="⠮⠈⠨⠬⠻",
+ [10779]="⠣⠮",
+ [10780]="⠩⠮",
+ [10786]="⠐⠬⠣⠨⠡⠻",
+ [10787]="⠐⠬⠣⠸⠣⠻",
+ [10788]="⠐⠬⠣⠈⠱⠻",
+ [10789]="⠐⠬⠩⠡⠻",
+ [10794]="⠐⠱⠩⠡⠻",
+ [10800]="⠐⠈⠡⠣⠡⠻",
+ [10801]="⠈⠡⠱",
+ [10808]="⠫⠉⠸⠫⠨⠌⠻",
+ [10809]="⠫⠞⠸⠫⠬⠻",
+ [10810]="⠫⠞⠸⠫⠤⠻",
+ [10811]="⠫⠞⠸⠫⠈⠡⠻",
+ [10816]="⠡⠈⠨⠩⠻",
+ [10817]="⠤⠈⠨⠬⠻",
+ [10818]="⠱⠨⠬",
+ [10819]="⠱⠨⠩",
+ [10833]="⠐⠈⠩⠣⠡⠻",
+ [10834]="⠐⠈⠬⠣⠡⠻",
+ [10844]="⠱⠈⠈⠩⠻",
+ [10845]="⠱⠈⠈⠬⠻",
+ [10846]="⠱⠱⠈⠩",
+ [10847]="⠈⠩⠱",
+ [10848]="⠈⠩⠱⠱",
+ [10850]="⠱⠱⠈⠬",
+ [10851]="⠈⠬⠱⠱",
+ [10854]="⠀⠐⠨⠅⠩⠡⠻⠀",
+ [10855]="⠀⠐⠸⠇⠣⠡⠻⠀",
+ [10858]="⠀⠐⠈⠱⠣⠡⠻⠀",
+ [10860]="⠀⠈⠱⠱⠈⠱⠀",
+ [10861]="⠀⠐⠈⠱⠨⠅⠣⠡⠻⠀",
+ [10862]="⠀⠐⠨⠅⠣⠈⠼⠻⠀",
+ [10863]="⠀⠐⠈⠱⠈⠱⠣⠸⠣⠻⠀",
+ [10864]="⠀⠈⠱⠈⠱⠨⠅⠀",
+ [10865]="⠀⠨⠅⠬⠀",
+ [10866]="⠀⠬⠨⠅⠀",
+ [10867]="⠀⠨⠅⠈⠱⠀",
+ [10868]="⠀⠐⠂⠐⠂⠨⠅⠀",
+ [10869]="⠀⠨⠅⠨⠅⠀",
+ [10870]="⠀⠨⠅⠨⠅⠨⠅⠀",
+ [10871]="⠀⠐⠨⠅⠩⠡⠡⠣⠡⠡⠻⠀",
+ [10872]="⠀⠐⠸⠇⠣⠡⠡⠡⠡⠻⠀",
+ [10873]="⠀⠐⠅⠈⠨⠡⠻⠀",
+ [10874]="⠀⠨⠂⠈⠨⠡⠻⠀",
+ [10875]="⠀⠐⠐⠅⠣⠸⠦⠻⠀",
+ [10876]="⠀⠐⠨⠂⠣⠸⠦⠻⠀",
+ [10885]="⠀⠐⠅⠈⠱⠈⠱⠀",
+ [10886]="⠀⠨⠂⠈⠱⠈⠱⠀",
+ [10891]="⠀⠐⠅⠨⠅⠨⠂⠀",
+ [10892]="⠀⠨⠂⠨⠅⠐⠅⠀",
+ [10893]="⠀⠐⠅⠈⠱⠱⠀",
+ [10894]="⠀⠨⠂⠈⠱⠱⠀",
+ [10895]="⠀⠐⠅⠈⠱⠨⠂⠀",
+ [10896]="⠀⠨⠂⠈⠱⠐⠅⠀",
+ [10897]="⠀⠐⠅⠨⠂⠨⠅⠀",
+ [10898]="⠀⠨⠂⠐⠅⠨⠅⠀",
+ [10905]="⠀⠨⠅⠐⠅⠀",
+ [10906]="⠀⠨⠅⠨⠂⠀",
+ [10909]="⠀⠈⠱⠐⠅⠀",
+ [10910]="⠀⠈⠱⠨⠂⠀",
+ [10911]="⠀⠈⠱⠐⠅⠨⠅⠀",
+ [10912]="⠀⠈⠱⠨⠂⠨⠅⠀",
+ [10926]="⠀⠈⠣⠨⠅⠀",
+ [10927]="⠀⠨⠐⠅⠱⠀",
+ [10928]="⠀⠨⠨⠂⠱⠀",
+ [10929]="⠀⠨⠐⠅⠌⠱⠀",
+ [10930]="⠀⠨⠨⠂⠌⠱⠀",
+ [10931]="⠀⠨⠐⠅⠨⠅⠀",
+ [10932]="⠀⠨⠨⠂⠨⠅⠀",
+ [10933]="⠀⠨⠐⠅⠌⠨⠅⠀",
+ [10934]="⠀⠨⠨⠂⠌⠨⠅⠀",
+ [10935]="⠀⠨⠐⠅⠈⠱⠈⠱⠀",
+ [10936]="⠀⠨⠨⠂⠈⠱⠈⠱⠀",
+ [10937]="⠀⠨⠐⠅⠌⠈⠱⠈⠱⠀",
+ [10938]="⠀⠨⠨⠂⠌⠈⠱⠈⠱⠀",
+ [10939]="⠀⠨⠐⠅⠈⠨⠐⠅⠻⠀",
+ [10940]="⠀⠨⠨⠂⠈⠨⠨⠂⠻⠀",
+ [10941]="⠀⠡⠈⠸⠐⠅⠻⠀",
+ [10942]="⠀⠡⠈⠸⠨⠂⠻⠀",
+ [10943]="⠀⠐⠸⠐⠅⠩⠬⠻⠀",
+ [10944]="⠀⠐⠸⠨⠂⠩⠬⠻⠀",
+ [10945]="⠀⠐⠸⠐⠅⠩⠈⠡⠻⠀",
+ [10946]="⠀⠐⠸⠨⠂⠩⠈⠡⠻⠀",
+ [10949]="⠀⠸⠐⠅⠨⠅⠀",
+ [10950]="⠀⠸⠨⠂⠨⠅⠀",
+ [10951]="⠀⠸⠐⠅⠈⠱⠀",
+ [10952]="⠀⠸⠨⠂⠈⠱⠀",
+ [10953]="⠀⠸⠐⠅⠈⠱⠈⠱⠀",
+ [10954]="⠀⠸⠨⠂⠈⠱⠈⠱⠀",
+ [10955]="⠀⠸⠐⠅⠌⠨⠅⠀",
+ [10956]="⠀⠸⠨⠂⠌⠨⠅⠀",
+ [10963]="⠀⠸⠐⠅⠸⠨⠂⠀",
+ [10964]="⠀⠸⠨⠂⠸⠐⠅⠀",
+ [10965]="⠀⠸⠐⠅⠸⠐⠅⠀",
+ [10966]="⠀⠸⠨⠂⠸⠨⠂⠀",
+ [10967]="⠀⠸⠨⠂⠐⠸⠐⠅⠀",
+ [10991]="⠀⠫⠩⠨⠡⠒⠒⠀",
+ [10992]="⠀⠫⠣⠨⠡⠒⠒⠀",
+ [10993]="⠀⠫⠣⠨⠡⠒⠒⠳⠀",
+ [10994]="⠀⠱⠈⠫⠇⠻⠀",
+ [10995]="⠀⠈⠱⠈⠫⠇⠻⠀",
+ [10996]="⠀⠳⠳⠳⠀",
+ [11039]="⠫⠸⠢",
+ [11040]="⠫⠢",
+ [11041]="⠫⠖",
+ [11042]="⠫⠸⠖",
+ [11052]="⠫⠸⠑",
+ [11053]="⠫⠑",
+ [11056]="⠀⠨⠡⠈⠫⠪⠒⠒⠻⠀",
+ [11057]="⠀⠫⠪⠒⠒⠫⠪⠒⠒⠫⠪⠒⠒⠀",
+ [11058]="⠀⠫⠪⠒⠒⠈⠫⠉⠸⠫⠬⠻⠀",
+ [11203]="⠫⠸⠦",
+ },
+ ["source"]="https://devblogs.microsoft.com/math-in-office/unicode-math-braille-sequences/",
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-com.mkxl b/Master/texmf-dist/tex/context/base/mkxl/math-com.mkxl
new file mode 100644
index 00000000000..27f014d4409
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-com.mkxl
@@ -0,0 +1,89 @@
+%D \module
+%D [ file=math-com,
+%D version=2022.07.17,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Combinations,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Initializations}
+
+%D This module might be extended.
+
+\unprotect
+
+% \startcombination[2*2]
+% \startcontent
+% \startplaceformula\startformula[width=\combinationwidth,title=a]1+x\stopformula\stopplaceformula
+% \stopcontent
+% \startcaption\stopcaption
+% \startcontent
+% \startplaceformula\startformula[width=\combinationwidth,title=b]2+x\stopformula\stopplaceformula
+% \stopcontent
+% \startcaption\stopcaption
+% \startcontent
+% \startplaceformula\startformula[width=\combinationwidth,xxxxx=c]3+x\stopformula\stopplaceformula
+% \stopcontent
+% \startcaption\stopcaption
+% \startcontent
+% \startplaceformula\startformula[width=\combinationwidth,title=d]4+x\stopformula\stopplaceformula
+% \stopcontent
+% \startcaption\stopcaption
+% \stopcombination
+%
+% \startplaceformula[a]
+% \startcombination[formula][nx=2,ny=2]
+% \startformula[width=\combinationwidth,title=a]1+x\stopformula
+% \startformula[width=\combinationwidth,title=b]2+x\stopformula
+% \startformula[width=\combinationwidth,xxxxx=c]3+x\stopformula
+% \startformula[width=\combinationwidth,title=d]4+x\stopformula
+% \stopcombination
+% \stopplaceformula
+%
+% \startplaceformula[a]
+% \startformulacombination[nx=2,ny=2]
+% \startformula[width=\combinationwidth,title=a]1+x\stopformula
+% \startformula[width=\combinationwidth,title=b]2+x\stopformula
+% \startformula[width=\combinationwidth,xxxxx=c]3+x\stopformula
+% \startformula[width=\combinationwidth,title=d]4+x\stopformula
+% \stopformulacombination
+% \stopplaceformula
+
+\defcsname\??combinationmethod\v!formula\endcsname
+ {\vcenter}
+
+\defcsname\??combinationmethod\v!formula:\v!start\endcsname
+ {\startformula
+ \dostarttagged\t!formulaset\empty
+ \global\settrue\c_strc_formulas_inside_formulas
+ \bgroup
+ \setupformulas[\c!width=\combinationwidth]%
+ \enforced\tolerant\protected\def\startformula[##1]%
+ {\startcontent
+ \strc_formulas_nested_formula_start[\c!width=\combinationwidth,##1]}%
+ \enforced\protected\def\stopformula
+ {\normalexpanded
+ {\strc_formulas_nested_formula_stop
+ \stopcontent
+ \startcaption
+ \formulaparameter\c!title
+ \stopcaption}}}
+
+\defcsname\??combinationmethod\v!formula:\v!stop\endcsname
+ {\egroup
+ \global\setfalse\c_strc_formulas_inside_formulas
+ \dostoptagged
+ \stopformula
+ \the\everyresetformulas}
+
+\definecombination[\v!formula][method=formula,width=\hsize]
+
+\protected\def\startformulacombination{\startcombination[\v!formula]}
+\protected\def\stopformulacombination {\stopcombination}
+
+\protect
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-def.mkxl b/Master/texmf-dist/tex/context/base/mkxl/math-def.mkxl
index 1f3da649d1d..be33bac8619 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-def.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-def.mkxl
@@ -18,61 +18,61 @@
\pushoverloadmode % cap etc
\startluacode
- mathematics.define(\number\defaultmathfamily)
+ mathematics.define()
-- mathematics.xml.registerentities()
\stopluacode
\popoverloadmode
-\activatemathcharacters
-
-%D The \mfunction macro is an alternative for \hbox with a controlable font
-%D switch.
-
-\definemathcommand [arccos] [nolop] {\mfunctionlabeltext{arccos}}
-\definemathcommand [arcsin] [nolop] {\mfunctionlabeltext{arcsin}}
-\definemathcommand [arctan] [nolop] {\mfunctionlabeltext{arctan}}
-\definemathcommand [arccosh] [nolop] {\mfunctionlabeltext{arccosh}}
-\definemathcommand [arcsinh] [nolop] {\mfunctionlabeltext{arcsinh}}
-\definemathcommand [arctanh] [nolop] {\mfunctionlabeltext{arctanh}}
-\definemathcommand [acos] [nolop] {\mfunctionlabeltext{acos}}
-\definemathcommand [asin] [nolop] {\mfunctionlabeltext{asin}}
-\definemathcommand [atan] [nolop] {\mfunctionlabeltext{atan}}
-\definemathcommand [arg] [nolop] {\mfunctionlabeltext{arg}}
-\definemathcommand [cosh] [nolop] {\mfunctionlabeltext{cosh}}
-\definemathcommand [cos] [nolop] {\mfunctionlabeltext{cos}}
-\definemathcommand [coth] [nolop] {\mfunctionlabeltext{coth}}
-\definemathcommand [cot] [nolop] {\mfunctionlabeltext{cot}}
-\definemathcommand [csc] [nolop] {\mfunctionlabeltext{csc}}
-\definemathcommand [deg] [nolop] {\mfunctionlabeltext{deg}}
-\definemathcommand [det] [limop] {\mfunctionlabeltext{det}}
-\definemathcommand [dim] [nolop] {\mfunctionlabeltext{dim}}
-\definemathcommand [exp] [nolop] {\mfunctionlabeltext{exp}}
-\definemathcommand [gcd] [limop] {\mfunctionlabeltext{gcd}}
-\definemathcommand [hom] [nolop] {\mfunctionlabeltext{hom}}
-\definemathcommand [inf] [limop] {\mfunctionlabeltext{inf}}
-\definemathcommand [injlim] [limop] {\mfunctionlabeltext{injlim}}
-\definemathcommand [ker] [nolop] {\mfunctionlabeltext{ker}}
-\definemathcommand [lg] [nolop] {\mfunctionlabeltext{lg}}
-\definemathcommand [liminf] [limop] {\mfunctionlabeltext{liminf}}
-\definemathcommand [limsup] [limop] {\mfunctionlabeltext{limsup}}
-\definemathcommand [lim] [limop] {\mfunctionlabeltext{lim}}
-\definemathcommand [ln] [nolop] {\mfunctionlabeltext{ln}}
-\definemathcommand [log] [nolop] {\mfunctionlabeltext{log}}
-\definemathcommand [median] [limop] {\mfunctionlabeltext{median}}
-\definemathcommand [max] [limop] {\mfunctionlabeltext{max}}
-\definemathcommand [min] [limop] {\mfunctionlabeltext{min}}
-\definemathcommand [mod] [limop] {\mfunctionlabeltext{mod}}
-%definemathcommand [div] [limop] {\mfunctionlabeltext{div}} % overloads \div symbol
-\definemathcommand [projlim] [limop] {\mfunctionlabeltext{projlim}}
-\definemathcommand [Pr] [limop] {\mfunctionlabeltext{Pr}}
-\definemathcommand [sec] [nolop] {\mfunctionlabeltext{sec}}
-\definemathcommand [sinh] [nolop] {\mfunctionlabeltext{sinh}}
-\definemathcommand [sin] [nolop] {\mfunctionlabeltext{sin}}
-\definemathcommand [sup] [limop] {\mfunctionlabeltext{sup}}
-\definemathcommand [tanh] [nolop] {\mfunctionlabeltext{tanh}}
-\definemathcommand [tan] [nolop] {\mfunctionlabeltext{tan}}
-\definemathcommand [diff] {\mfunctionlabeltext{diff}}
+% \activatemathcharacters
+
+%D The \mfunction macro is an alternative for \hbox with a controlable font switch.
+
+\definemathfunction [arccos]
+\definemathfunction [arcsin]
+\definemathfunction [arctan]
+\definemathfunction [arccosh]
+\definemathfunction [arcsinh]
+\definemathfunction [arctanh]
+\definemathfunction [acos]
+\definemathfunction [asin]
+\definemathfunction [atan]
+\definemathfunction [arg]
+\definemathfunction [cosh]
+\definemathfunction [cos]
+\definemathfunction [coth]
+\definemathfunction [cot]
+\definemathfunction [csc]
+\definemathfunction [deg]
+\definemathfunction [det] [\c!mathlimits=\v!yes]
+\definemathfunction [dim]
+\definemathfunction [exp]
+\definemathfunction [gcd] [\c!mathlimits=\v!yes]
+\definemathfunction [hom]
+\definemathfunction [inf] [\c!mathlimits=\v!auto]
+\definemathfunction [inv] [\c!mathlimits=\v!auto]
+\definemathfunction [injlim] [\c!mathlimits=\v!auto]
+\definemathfunction [ker]
+\definemathfunction [lg]
+\definemathfunction [liminf] [\c!mathlimits=\v!auto]
+\definemathfunction [limsup] [\c!mathlimits=\v!auto]
+\definemathfunction [lim] [\c!mathlimits=\v!auto]
+\definemathfunction [ln]
+\definemathfunction [log]
+\definemathfunction [median] [\c!mathlimits=\v!yes]
+\definemathfunction [max] [\c!mathlimits=\v!auto]
+\definemathfunction [min] [\c!mathlimits=\v!auto]
+\definemathfunction [mod] [\c!mathlimits=\v!yes]
+%definemathfunction [div] [\c!mathlimits=\v!yes]
+\definemathfunction [projlim] [\c!mathlimits=\v!auto]
+\definemathfunction [Pr] [\c!mathlimits=\v!yes]
+\definemathfunction [sec]
+\definemathfunction [sinh]
+\definemathfunction [sin]
+\definemathfunction [sup] [\c!mathlimits=\v!auto]
+\definemathfunction [tanh]
+\definemathfunction [tan]
+\definemathfunction [diff]
\aliased\let\normalmatharg\arg % todo: maybe automatically
@@ -104,15 +104,14 @@
%D equalscoloncolon, coloncolonapprox, approxcoloncolon,
%D colonsim, simcoloncolon}
%D
-%D The following colon related definitions are provided by Aditya
-%D Mahajan who derived them from \type {mathtools.sty} and \type
-%D {colonequals.sty}. This will be redone as part of the overhaul
-%D and font updates.
+%D The following colon related definitions are provided by Aditya Mahajan who
+%D derived them from \type {mathtools.sty} and \type {colonequals.sty}. This will be
+%D redone as part of the overhaul and font updates.
%D
-%D In $a := b$ the colon is not vertically centered with the equal
-%D to. Also the distance between colon and equal to is a bit large.
-%D So, we define a vertically centered colon \tex {centercolon} and
-%D a few macros for colon and double colon relation symbols.
+%D In $a := b$ the colon is not vertically centered with the equal to. Also the
+%D distance between colon and equal to is a bit large. So, we define a vertically
+%D centered colon \tex {centercolon} and a few macros for colon and double colon
+%D relation symbols.
%D
%D \startlines
%D \formula {A \centercolon B}
@@ -140,28 +139,28 @@
\pushoverloadmode
-\definemathcommand [colonsep] {\mkern-1.2mu}
-\definemathcommand [doublecolonsep] {\mkern-0.9mu}
-
-\definemathcommand [centercolon] [rel] {\mathstylevcenteredhbox\colon}
-\definemathcommand [colonminus] [rel] {\centercolon\colonsep\mathrel{-}}
-%definemathcommand [minuscolon] [rel] {\mathrel{-}\colonsep\centercolon} % native char
-%definemathcommand [colonequals] [rel] {\centercolon\colonsep=} % native char
-%definemathcommand [equalscolon] [rel] {=\centercolon\colonsep} % native char
-\definemathcommand [colonapprox] [rel] {\centercolon\colonsep\approx}
-\definemathcommand [approxcolon] [rel] {\approx\centercolon\colonsep}
-\definemathcommand [colonsim] [rel] {\centercolon\colonsep\sim}
-\definemathcommand [simcolon] [rel] {\sim\centercolon\colonsep}
-
-\definemathcommand [coloncolon] [rel] {\centercolon\doublecolonsep\centercolon}
-\definemathcommand [coloncolonminus] [rel] {\coloncolon\colonsep\mathrel{-}}
-\definemathcommand [minuscoloncolon] [rel] {\mathrel{-}\colonsep\coloncolon}
-\definemathcommand [coloncolonequals] [rel] {\coloncolon\colonsep=} % native char
-\definemathcommand [equalscoloncolon] [rel] {=\coloncolon\colonsep}
-\definemathcommand [coloncolonapprox] [rel] {\coloncolon\colonsep\approx}
-\definemathcommand [approxcoloncolon] [rel] {\approx\coloncolon\colonsep}
-\definemathcommand [coloncolonsim] [rel] {\coloncolon\colonsep\sim}
-\definemathcommand [simcoloncolon] [rel] {\sim\coloncolon\colonsep}
+\definemathcommand [colonsep] {\mkern-1.2mu}
+\definemathcommand [doublecolonsep] {\mkern-0.9mu}
+
+\definemathcommand [centercolon] [\s!relation] {\mathstylevcenteredhbox\colon}
+\definemathcommand [colonminus] [\s!relation] {\centercolon\colonsep\mathrel{-}}
+%definemathcommand [minuscolon] [\s!relation] {\mathrel{-}\colonsep\centercolon} % native char
+%definemathcommand [colonequals] [\s!relation] {\centercolon\colonsep=} % native char
+%definemathcommand [equalscolon] [\s!relation] {=\centercolon\colonsep} % native char
+\definemathcommand [colonapprox] [\s!relation] {\centercolon\colonsep\approx}
+\definemathcommand [approxcolon] [\s!relation] {\approx\centercolon\colonsep}
+\definemathcommand [colonsim] [\s!relation] {\centercolon\colonsep\sim}
+\definemathcommand [simcolon] [\s!relation] {\sim\centercolon\colonsep}
+
+\definemathcommand [coloncolon] [\s!relation] {\centercolon\doublecolonsep\centercolon}
+\definemathcommand [coloncolonminus] [\s!relation] {\coloncolon\colonsep\mathrel{-}}
+\definemathcommand [minuscoloncolon] [\s!relation] {\mathrel{-}\colonsep\coloncolon}
+\definemathcommand [coloncolonequals] [\s!relation] {\coloncolon\colonsep=} % native char
+\definemathcommand [equalscoloncolon] [\s!relation] {=\coloncolon\colonsep}
+\definemathcommand [coloncolonapprox] [\s!relation] {\coloncolon\colonsep\approx}
+\definemathcommand [approxcoloncolon] [\s!relation] {\approx\coloncolon\colonsep}
+\definemathcommand [coloncolonsim] [\s!relation] {\coloncolon\colonsep\sim}
+\definemathcommand [simcoloncolon] [\s!relation] {\sim\coloncolon\colonsep}
\popoverloadmode
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-del.mkxl b/Master/texmf-dist/tex/context/base/mkxl/math-del.mkxl
index 07e6d794874..35d71460baa 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-del.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-del.mkxl
@@ -31,10 +31,10 @@
% Actually we can do better now with lua hacks.
-\newcount\c_math_delimiter_nesting
+\newinteger\c_math_delimiter_nesting
-\permanent\protected\def\leftfakedelimiter {\advance\c_math_delimiter_nesting\minusone\gobbleoneargument}
-\permanent\protected\def\rightfakedelimiter{\advance\c_math_delimiter_nesting\plusone \gobbleoneargument}
+\permanent\protected\def\leftfakedelimiter {\advanceby\c_math_delimiter_nesting\minusone\gobbleoneargument}
+\permanent\protected\def\rightfakedelimiter{\advanceby\c_math_delimiter_nesting\plusone \gobbleoneargument}
\permanent\protected\def\checkdelimiters#1%
{\c_math_delimiter_nesting\zerocount
@@ -66,7 +66,7 @@
% A new experiment:
% Hm, we already have \definemathextensible so we need to preserve that one. We now
-% use \definemathdelimiter.
+% use \definemathdelimiter. This mechanism will probably disappear so don't use it!
\installcorenamespace {mathdelimiter}
@@ -85,11 +85,12 @@
\appendtoks
\ifcstok{\mathdelimiterparameter\c!define}\v!yes
+ % we can intercept auto here
\frozen\instance\setuevalue\currentmathdelimiter{\mathdelimiter[\currentmathdelimiter]}%
\fi
\to \everydefinemathdelimiter
-\permanent\tolerant\protected\def\mathdelimiter[#1]#*[#2]%
+\permanent\tolerant\protected\def\mathdelimiter[#1]#*[#2]% so not really used (for now)
{\mathop
{\edef\currentmathdelimiter{#1}%
\iftok{#2}\emptytoks
@@ -118,7 +119,11 @@
\mskip\p_rightoffset
\fi}}
-\definemathdelimiter[integral][\c!symbol="222B]
+% \definemathdelimiter[integral][\c!symbol="222B]
+
+\permanent\protected\def\integral{\int\Umathadapttoright}
+
+\aliased\let\Umathadaptsize\Umathadapttoright
% \setupmathdelimiter[integral][rightoffset=-3mu,exact=yes,factor=2]
%
@@ -134,7 +139,7 @@
% \ruledhbox{$\int f\frac{1}{2}$}
% \stoplines
-\permanent\protected\def\autointegral#1#2#3%
+\permanent\protected\def\autointegral#1#2#3% this one is obsolete now
{\ifmmode
\setbox\nextbox\mathstylehbox{#3}%
\scratchdimen\ifdim\nextboxht>\nextboxdp\nextboxht\else\nextboxdp\fi
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-dif.mkxl b/Master/texmf-dist/tex/context/base/mkxl/math-dif.mkxl
new file mode 100644
index 00000000000..ad53ee25a27
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-dif.mkxl
@@ -0,0 +1,48 @@
+%D \module
+%D [ file=math-dif,
+%D version=2022.05.31, % moved code
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Differentials,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Differentials}
+
+\unprotect
+
+\pushoverloadmode
+
+ % For new times sake:
+
+ \let\normal_math_dd\dd
+ \let\normal_math_DD\DD
+
+ \def\c!differentiald{differentiald} % for now
+
+ \def\upright_math_dd{\mathatom \s!unpack \mathdifferentialcode{\mathupright d}}
+ \def\upright_math_DD{\mathatom \s!unpack \mathdifferentialcode{\mathupright D}}
+
+ \permanent\protected\def\dd
+ {\ifcstok{\mathematicsparameter\c!differentiald}\s!upright
+ \upright_math_dd
+ \else
+ \normal_math_dd
+ \fi}
+
+ \permanent\protected\def\DD
+ {\ifcstok{\mathematicsparameter\c!differentiald}\s!upright
+ \upright_math_DD
+ \else
+ \normal_math_DD
+ \fi}
+
+ % \setupmathematics[differentiald=upright]
+
+\popoverloadmode
+
+\protect
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-dim.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-dim.lmt
new file mode 100644
index 00000000000..cb2a489116b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-dim.lmt
@@ -0,0 +1,251 @@
+if not modules then modules = { } end modules ['math-dim'] = {
+ version = 1.001,
+ comment = "companion to math-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- The radical_rule value is also used as a trigger. In luatex the accent
+-- placement happens either the opentype way (using topaccent cum suis) or the
+-- traditional way. In order to determine what method to use the \Umathradicalrule
+-- setting is consulted to determine what method to use. This is more efficient
+-- than analyzing the (potentially spread over multiple families) situation. For
+-- this reason we need to set the radical_rule here. It used to be "<unset>" in
+-- which case the engine takes the rulethickness. In c-speak:
+--
+-- int compat_mode = (radical_rule(cur_style) == undefined_math_parameter) ;
+--
+-- In the meantime things have been updated and we now have two code paths.
+
+local abs, next = math.abs, next
+
+local defaults = {
+ axis = { default = { "AxisHeight", "axisheight" }, },
+ accent_base_height = { default = { "AccentBaseHeight", "xheight" }, },
+ flattened_accent_base_height = { default = { "FlattenedAccentBaseHeight", "xheight" }, },
+ fraction_del_size = { default = { "FractionDelimiterSize", "delim2" },
+ cramped_display_style = { "FractionDelimiterDisplayStyleSize", "delim1" },
+ display_style = { "FractionDelimiterDisplayStyleSize", "delim1" }, },
+ fraction_denom_down = { default = { "FractionDenominatorShiftDown", "denom2" },
+ cramped_display_style = { "FractionDenominatorDisplayStyleShiftDown", "denom1" },
+ display_style = { "FractionDenominatorDisplayStyleShiftDown", "denom1" }, },
+ fraction_denom_vgap = { default = { "FractionDenominatorGapMin", "defaultrulethickness" },
+ cramped_display_style = { "FractionDenominatorDisplayStyleGapMin", "3*defaultrulethickness" },
+ display_style = { "FractionDenominatorDisplayStyleGapMin", "3*defaultrulethickness" }, },
+ fraction_num_up = { default = { "FractionNumeratorShiftUp", "num2" },
+ cramped_display_style = { "FractionNumeratorDisplayStyleShiftUp", "num1" },
+ display_style = { "FractionNumeratorDisplayStyleShiftUp", "num1" }, },
+ fraction_num_vgap = { default = { "FractionNumeratorGapMin", "defaultrulethickness" },
+ cramped_display_style = { "FractionNumeratorDisplayStyleGapMin", "3*defaultrulethickness" },
+ display_style = { "FractionNumeratorDisplayStyleGapMin", "3*defaultrulethickness" }, },
+ skewed_fraction_hgap = { default = { "SkewedFractionHorizontalGap", "mathquad/2" },
+ cramped_display_style = { "SkewedFractionHorizontalGap", "mathquad/2" },
+ display_style = { "SkewedFractionHorizontalGap", "mathquad/2" }, },
+ skewed_fraction_vgap = { default = { "SkewedFractionVerticalGap", "xheight" },
+ cramped_display_style = { "SkewedFractionVerticalGap", "xheight" },
+ display_style = { "SkewedFractionVerticalGap", "xheight" }, },
+ fraction_rule = { default = { "FractionRuleThickness", "defaultrulethickness" }, },
+ limit_above_bgap = { default = { "UpperLimitBaselineRiseMin", "bigopspacing3" }, },
+ limit_above_vgap = { default = { "UpperLimitGapMin", "bigopspacing1" }, },
+ limit_above_kern = { default = { "0", "bigopspacing5" }, },
+ limit_below_bgap = { default = { "LowerLimitBaselineDropMin", "bigopspacing4" }, },
+ limit_below_vgap = { default = { "LowerLimitGapMin", "bigopspacing2" }, },
+ limit_below_kern = { default = { "0", "bigopspacing5" }, },
+ math_operator_size = { default = { "DisplayOperatorMinHeight", "mathxheight*3" }, }, -- 2
+ overbar_kern = { default = { "OverbarExtraAscender", "defaultrulethickness" }, },
+ overbar_rule = { default = { "OverbarRuleThickness", "defaultrulethickness" }, },
+ overbar_vgap = { default = { "OverbarVerticalGap", "3*defaultrulethickness" }, },
+ quad = { default = { "fontsize(f)", "mathquad" }, },
+ radical_kern = { default = { "RadicalExtraAscender", "defaultrulethickness" }, },
+ radical_rule = { default = { "RadicalRuleThickness", "defaultrulethickness" }, },
+ -- default = { "surdheight(f)", "defaultrulethickness" },
+ radical_vgap = { default = { "RadicalVerticalGap", "defaultrulethickness+(abs(defaultrulethickness)/4)" },
+ display_style = { "RadicalDisplayStyleVerticalGap", "defaultrulethickness+(abs(mathxheight)/4)" }, },
+ space_after_script = { default = { "SpaceAfterScript", "scriptspace" }, },
+ space_before_script = { default = { "SpaceAfterScript", "scriptspace" }, },
+ stack_denom_down = { default = { "StackBottomShiftDown", "denom2" },
+ cramped_display_style = { "StackBottomDisplayStyleShiftDown", "denom1" },
+ display_style = { "StackBottomDisplayStyleShiftDown", "denom1" }, },
+ stack_num_up = { default = { "StackTopShiftUp", "num3" },
+ cramped_display_style = { "StackTopDisplayStyleShiftUp", "num1" },
+ display_style = { "StackTopDisplayStyleShiftUp", "num1" }, },
+ stack_vgap = { default = { "StackGapMin", "3*defaultrulethickness" },
+ cramped_display_style = { "StackDisplayStyleGapMin", "7*defaultrulethickness" },
+ display_style = { "StackDisplayStyleGapMin", "7*defaultrulethickness" }, },
+ sub_shift_down = { default = { "SubscriptShiftDown", "sub1" }, },
+ sub_shift_drop = { default = { "SubscriptBaselineDropMin", "subdrop" }, },
+ sub_sup_shift_down = { default = { "SubscriptShiftDown", "sub2" }, },
+ sub_top_max = { default = { "SubscriptTopMax", "abs(mathxheight*4)/5" }, },
+ subsup_vgap = { default = { "SubSuperscriptGapMin", "4*defaultrulethickness" }, },
+ sup_bottom_min = { default = { "SuperscriptBottomMin", "abs(mathxheight)/4" }, },
+ sup_shift_drop = { default = { "SuperscriptBaselineDropMax", "supdrop" }, },
+ sup_shift_up = { cramped_display_style = { "SuperscriptShiftUpCramped", "sup3" },
+ cramped_script_script_style = { "SuperscriptShiftUpCramped", "sup3" },
+ cramped_script_style = { "SuperscriptShiftUpCramped", "sup3" },
+ cramped_text_style = { "SuperscriptShiftUpCramped", "sup3" },
+ display_style = { "SuperscriptShiftUp", "sup1" },
+ script_script_style = { "SuperscriptShiftUp", "sup2" },
+ script_style = { "SuperscriptShiftUp", "sup2" },
+ text_style = { "SuperscriptShiftUp", "sup2" }, },
+ sup_sub_bottom_max = { default = { "SuperscriptBottomMaxWithSubscript", "abs(mathxheight*4)/5" }, },
+ underbar_kern = { default = { "UnderbarExtraDescender", "0" }, },
+ underbar_rule = { default = { "UnderbarRuleThickness", "defaultrulethickness" }, },
+ underbar_vgap = { default = { "UnderbarVerticalGap", "3*defaultrulethickness" }, },
+ connector_overlap_min = { default = { "MinConnectorOverlap", "0.25*defaultrulethickness" }, },
+ over_delimiter_vgap = { default = { "StretchStackGapBelowMin", "bigopspacing1" }, },
+ over_delimiter_bgap = { default = { "StretchStackTopShiftUp", "bigopspacing3" }, },
+ under_delimiter_vgap = { default = { "StretchStackGapAboveMin", "bigopspacing2" }, },
+ under_delimiter_bgap = { default = { "StretchStackBottomShiftDown", "bigopspacing4" }, },
+ radical_degree_before = { default = { "RadicalKernBeforeDegree", "(5/18)*quad" }, },
+ radical_degree_after = { default = { "RadicalKernAfterDegree", "(-10/18)*quad" }, },
+ radical_degree_raise = { default = { "RadicalDegreeBottomRaisePercent", "60" }, },
+ no_limit_sub_factor = { default = { "NoLimitSubFactor", "0" }, },
+ no_limit_sup_factor = { default = { "NoLimitSupFactor", "0" }, },
+}
+
+local styles = {
+ 'display_style',
+ 'cramped_display_style',
+ 'text_style',
+ 'cramped_text_style',
+ 'script_style',
+ 'cramped_script_style',
+ 'script_script_style',
+ 'cramped_script_script_style',
+}
+
+for k, v in next, defaults do
+ for _, s in next, styles do
+ if not v[s] then
+ v[s] = v.default
+ end
+ end
+end
+
+-- we cannot use a metatable because we do a copy (takes a bit more work)
+--
+-- local mt = { } setmetatable(defaults,mt)
+--
+-- mt.__index = function(t,s)
+-- return t.default or t.text_style or 0
+-- end
+--
+-- This will all go away in \LMTX\ because it makes no sense to support old fonts any longer,
+-- even when we assemble them one really needs to think about proper values. Okay, there is
+-- some historic value in here.
+
+function mathematics.dimensions(dimens) -- beware, dimens get spoiled
+ if dimens.SpaceAfterScript then
+ return table.fastcopy(dimens), { }
+ elseif dimens.AxisHeight or dimens.axisheight then
+ local t = { }
+ local mathxheight = dimens.xheight or 10*65536
+ local mathquad = dimens.quad or 10*65536
+ local defaultrulethickness = dimens.FractionDenominatorGapMin or dimens.defaultrulethickness or 0.4*65536
+ dimens["0"] = 0
+ dimens["60"] = 60
+ dimens["0.25*defaultrulethickness"] = defaultrulethickness / 4
+ dimens["3*defaultrulethickness"] = 3 * defaultrulethickness
+ dimens["4*defaultrulethickness"] = 4 * defaultrulethickness
+ dimens["7*defaultrulethickness"] = 7 * defaultrulethickness
+ dimens["(5/18)*quad"] = (mathquad * 5) / 18
+ dimens["(-10/18)*quad"] = - (mathquad * 10) / 18
+ dimens["mathxheight*3"] = mathxheight * 3 -- needs checking
+ dimens["abs(mathxheight*4)/5"] = abs(mathxheight * 4) / 5
+ dimens["defaultrulethickness+(abs(defaultrulethickness)/4)"] = defaultrulethickness+(abs(defaultrulethickness) / 4)
+ dimens["defaultrulethickness+(abs(mathxheight)/4)"] = defaultrulethickness+(abs(mathxheight) / 4)
+ dimens["abs(mathxheight)/4"] = abs(mathxheight) / 4
+ dimens["abs(mathxheight*4)/5"] = abs(mathxheight * 4) / 5
+ dimens["<not set>"] = false
+ dimens["scriptspace"] = false -- at macro level
+ for variable, styles in next, defaults do
+ local tt = { }
+ for style, default in next, styles do
+ local one = default[1]
+ local two = default[2]
+ local value = dimens[one]
+ if value then
+ tt[style] = value
+ else
+ value = dimens[two]
+ if value == false then
+ tt[style] = nil
+ else
+ tt[style] = value or 0
+ end
+ end
+ end
+ t[variable] = tt
+ end
+ local d = {
+ AccentBaseHeight = t . accent_base_height . text_style,
+ FlattenedAccentBaseHeight = t . flattened_accent_base_height . text_style,
+ AxisHeight = t . axis . text_style,
+ -- DelimitedSubFormulaMinHeight
+ DisplayOperatorMinHeight = t . math_operator_size . text_style, -- no longer let tex decide (weird values)
+ FractionDenominatorDisplayStyleGapMin = t . fraction_denom_vgap . display_style,
+ FractionDenominatorDisplayStyleShiftDown = t . fraction_denom_down . display_style,
+ FractionDenominatorGapMin = t . fraction_denom_vgap . text_style,
+ FractionDenominatorShiftDown = t . fraction_denom_down . text_style,
+ FractionNumeratorDisplayStyleGapMin = t . fraction_num_vgap . display_style,
+ FractionNumeratorDisplayStyleShiftUp = t . fraction_num_up . display_style,
+ FractionNumeratorGapMin = t . fraction_num_vgap . text_style,
+ FractionNumeratorShiftUp = t . fraction_num_up . text_style,
+ FractionRuleThickness = t . fraction_rule . text_style,
+ FractionDelimiterSize = t . fraction_del_size . text_style,
+ FractionDelimiterDisplayStyleSize = t . fraction_del_size . display_style,
+ LowerLimitBaselineDropMin = t . limit_below_bgap . text_style,
+ LowerLimitGapMin = t . limit_below_vgap . text_style,
+ -- MathLeading
+ MinConnectorOverlap = t . connector_overlap_min . text_style,
+ OverbarExtraAscender = t . overbar_kern . text_style,
+ OverbarRuleThickness = t . overbar_rule . text_style,
+ OverbarVerticalGap = t . overbar_vgap . text_style,
+ RadicalDisplayStyleVerticalGap = t . radical_vgap . display_style,
+ RadicalExtraAscender = t . radical_kern . text_style,
+ RadicalRuleThickness = t . radical_rule . text_style,
+ RadicalVerticalGap = t . radical_vgap . text_style,
+ RadicalKernBeforeDegree = t . radical_degree_before . display_style,
+ RadicalKernAfterDegree = t . radical_degree_after . display_style,
+ RadicalDegreeBottomRaisePercent = t . radical_degree_raise . display_style,
+ -- ScriptPercentScaleDown
+ -- ScriptScriptPercentScaleDown
+ SkewedFractionHorizontalGap = t . skewed_fraction_hgap . default,
+ SkewedFractionVerticalGap = t . skewed_fraction_vgap . default,
+ SpaceAfterScript = t . space_after_script . text_style,
+ StackBottomDisplayStyleShiftDown = t . stack_denom_down . display_style,
+ StackBottomShiftDown = t . stack_denom_down . text_style,
+ StackDisplayStyleGapMin = t . stack_vgap . display_style,
+ StackGapMin = t . stack_vgap . text_style,
+ StackTopDisplayStyleShiftUp = t . stack_num_up . display_style,
+ StackTopShiftUp = t . stack_num_up . text_style,
+ StretchStackGapBelowMin = t . over_delimiter_vgap . text_style,
+ StretchStackTopShiftUp = t . over_delimiter_bgap . text_style,
+ StretchStackGapAboveMin = t . under_delimiter_vgap . text_style,
+ StretchStackBottomShiftDown = t . under_delimiter_bgap . text_style,
+ SubSuperscriptGapMin = t . subsup_vgap . text_style,
+ SubscriptBaselineDropMin = t . sub_shift_drop . text_style,
+ SubscriptShiftDown = t . sub_shift_down . text_style,
+ SubscriptShiftDownWithSuperscript = t . sub_sup_shift_down . text_style,
+ SubscriptTopMax = t . sub_top_max . text_style,
+ SuperscriptBaselineDropMax = t . sup_shift_drop . text_style,
+ SuperscriptBottomMaxWithSubscript = t . sup_sub_bottom_max . text_style,
+ SuperscriptBottomMin = t . sup_bottom_min . text_style,
+ SuperscriptShiftUp = t . sup_shift_up . text_style,
+ SuperscriptShiftUpCramped = t . sup_shift_up . cramped_text_style,
+ UnderbarExtraDescender = t . underbar_kern . text_style,
+ UnderbarRuleThickness = t . underbar_rule . text_style,
+ UnderbarVerticalGap = t . underbar_vgap . text_style,
+ UpperLimitBaselineRiseMin = t . limit_above_bgap . text_style,
+ UpperLimitGapMin = t . limit_above_vgap . text_style,
+ }
+ -- too fragile for tx/px ... even the same values give different results
+ -- d.DisplayOperatorMinHeight = nil
+ -- d.AccentBaseHeight = 0 -- here? still? or maybe undedined i.e. maxdimen
+ return d, t -- t only for diagnostics
+ else
+ return { }, { }
+ end
+end
+
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-dld.mklx b/Master/texmf-dist/tex/context/base/mkxl/math-dld.mklx
new file mode 100644
index 00000000000..dcbb17c5eca
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-dld.mklx
@@ -0,0 +1,265 @@
+%D \module
+%D [ file=math-dld,
+%D version=2022.07.29,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=delimiteds,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Delimited}
+
+\unprotect
+
+%D This is a variant on radicals but in the end it was better to just define a new
+%D environment for this. This is because we don't have the rule and we want a
+%D different control over the spacing. We also don't want the degree.
+
+% Todo: also add the mp plugin here but that more fun stuff for later (when we pick
+% up school math).
+
+\installcorenamespace{mathdelimited}
+\installcorenamespace{mathdelimitedalternative}
+
+\installcommandhandler \??mathdelimited {mathdelimited} \??mathdelimited
+
+\setupmathdelimited
+ [\c!alternative=\v!normal,
+ \c!mpoffset=.25\exheight,
+ \c!topoffset=\zeropoint,
+ \c!bottomoffset=\zeropoint,
+ \c!height=\zeropoint,
+ \c!depth=\zeropoint,
+ \c!strut=\v!height,
+ \c!source=\zerocount,
+ \c!size=\zerocount,
+ \c!left=\zerocount,
+ \c!right=\zerocount,
+ \c!leftmargin=\zeropoint,
+ \c!rightmargin=\zeropoint]
+
+\appendtoks
+ \ifcstok{\mathdelimitedparameter\c!rightmargin}\v!no\else
+ \frozen\protected\instance\edefcsname\currentmathdelimited\endcsname{\math_delimited_handle{\currentmathdelimited}}
+ \fi
+\to \everydefinemathdelimited
+
+\mutable\lettonothing\currentmathdelimited
+
+\tolerant\protected\def\math_delimited_handle#tag#*[#settings]#:#body%
+ {\begingroup
+ \edef\currentmathdelimited{#tag}%
+ \setupcurrentmathdelimited[#settings]%
+ \math_delimited_alternative{%
+ \begincsname\??mathwhateverstrut\mathdelimitedparameter\c!strut\endcsname
+ \scratchdimen\mathdelimitedparameter\c!leftmargin \relax\ifzeropt\scratchdimen\else\kern\scratchdimen\fi
+ #body%
+ \scratchdimen\mathdelimitedparameter\c!rightmargin\relax\ifzeropt\scratchdimen\else\kern\scratchdimen\fi
+ }%
+ \endgroup}
+
+\def\math_delimited_alternative{\csname\??mathdelimitedalternative\mathdelimitedparameter\c!alternative\endcsname}
+
+\protected\def\math_delimited_common
+ {\Udelimited
+ \s!height\dimexpr\mathdelimitedparameter\c!height+\mathdelimitedparameter\c!topoffset\relax
+ \s!depth \dimexpr\mathdelimitedparameter\c!depth+\mathdelimitedparameter\c!bottomoffset\relax
+ \s!source\numexpr\namedboxanchor{\mathdelimitedparameter\c!source}\relax
+ \s!style \normalmathstyle
+ \s!size \numexpr\namedboxanchor{\mathdelimitedparameter\c!size}\relax
+ \zerocount \mathdelimitedparameter\c!left
+ \zerocount \mathdelimitedparameter\c!right
+ \relax}
+
+\defcsname\??mathdelimitedalternative\v!default\endcsname % #body%
+ {\math_delimited_common} % {#body}}
+
+\defcsname\??mathdelimitedalternative\v!normal\endcsname#body%
+ {\edef\p_color{\mathdelimitedparameter\c!color}%
+ \ifempty\p_color
+ \math_delimited_common{#body}% {} really needed as \rootdelimited expands first
+ \else
+ \pushcolor[\p_color]%
+ \math_delimited_common
+ {\popcolor#body}%
+ \fi}
+
+
+%integerdef\delimitedrightgraveuc \privatecharactercode{delimited right grave}
+\integerdef\delimitedrightddotuc \privatecharactercode{delimited right ddot}
+\integerdef\delimitedrightbaruc \privatecharactercode{delimited right bar}
+%integerdef\delimitedrightacuteuc \privatecharactercode{delimited right acute}
+\integerdef\delimitedrighthatuc \privatecharactercode{delimited right hat}
+\integerdef\delimitedrightcheckuc \privatecharactercode{delimited right check}
+\integerdef\delimitedrightbreveuc \privatecharactercode{delimited right breve}
+\integerdef\delimitedrightdotuc \privatecharactercode{delimited right dot}
+\integerdef\delimitedrightringuc \privatecharactercode{delimited right ring}
+\integerdef\delimitedrighttildeuc \privatecharactercode{delimited right tilde}
+\integerdef\delimitedrightdddotuc \privatecharactercode{delimited right dddot}
+\integerdef\delimitedrightdaggeruc \privatecharactercode{delimited right dagger}
+\integerdef\delimitedrightddaggeruc \privatecharactercode{delimited right ddagger}
+\integerdef\delimitedrightastuc \privatecharactercode{delimited right ast}
+\integerdef\delimitedrightstaruc \privatecharactercode{delimited right star}
+
+% \integerdef\delimitedrighthatuc \privatecharactercode{delimited right hat}
+% \integerdef\delimitedrighttildeuc \privatecharactercode{delimited right tilde}
+% \integerdef\delimitedrightcheckuc \privatecharactercode{delimited right check}
+
+% todo: some more .. are the offsets okay?
+% breve and acute does not make sense
+
+\definemathdelimited
+ [marked]
+ [\c!command=\v!no,
+ \c!topoffset=.2\exheight]
+
+\definemathdelimited
+ [ddotmarked]
+ [marked]
+ [\c!right=\delimitedrightddotuc]
+
+\definemathdelimited
+ [barmarked]
+ [marked]
+ [\c!right=\delimitedrightbaruc]
+
+\definemathdelimited
+ [hatmarked]
+ [marked]
+ [\c!right=\delimitedrighthatuc]
+
+\definemathdelimited
+ [checkmarked]
+ [marked]
+ [\c!right=\delimitedrightcheckuc]
+
+\definemathdelimited
+ [brevemarked]
+ [marked]
+ [\c!right=\delimitedrightbreveuc]
+
+\definemathdelimited
+ [dotmarked]
+ [marked]
+ [\c!right=\delimitedrightdotuc]
+
+\definemathdelimited
+ [ringmarked]
+ [marked]
+ [\c!right=\delimitedrightringuc]
+
+\definemathdelimited
+ [tildemarked]
+ [marked]
+ [\c!right=\delimitedrighttildeuc]
+
+\definemathdelimited
+ [dddotmarked]
+ [marked]
+ [\c!right=\delimitedrightdddotuc]
+
+% The following ones are
+% not really belonging here,
+% but convenient
+
+\definemathdelimited
+ [daggermarked]
+ [marked]
+ [\c!size=1,
+ \c!right=\delimitedrightdaggeruc]
+
+\definemathdelimited
+ [ddaggermarked]
+ [marked]
+ [\c!size=1,
+ \c!right=\delimitedrightddaggeruc]
+
+\definemathdelimited
+ [astmarked]
+ [\c!size=1,
+ \c!right=\delimitedrightastuc]
+
+\definemathdelimited
+ [starmarked]
+ [marked]
+ [\c!size=1,
+ \c!right=\delimitedrightstaruc]
+
+% More contextual
+
+\definemathdelimited
+ [fourier]
+ [\c!topoffset=.2\exheight,
+ \c!right=\delimitedrighthatuc]
+
+\definemathdelimited
+ [inversefourier]
+ [fourier]
+ [\c!right=\delimitedrightcheckuc]
+
+\definemathdelimited
+ [fuzzyfourier]
+ [fourier]
+ [\c!right=\delimitedrighttildeuc]
+
+% \definemathdelimited
+% [bannuity]
+% [%topoffset=.2\exheight,
+% \c!strut=no,
+% \c!rightmargin=.05\emwidth,
+% \c!right=\delimitedrightanutityuc]
+
+% $ \autofences \fourier{(z+\frac12)} + \courier{(z+\frac12)} + \xourier{(z+\frac12)} $
+
+\definemathdelimited [primed] [\c!right="2032,\c!size=1,\c!topoffset=.2\exheight]
+\definemathdelimited [doubleprimed] [primed] [\c!right="2033]
+\definemathdelimited [tripleprimed] [primed] [\c!right="2034]
+\definemathdelimited [quadrupleprimed] [primed] [\c!right="2057]
+\definemathdelimited [reverseprimed] [primed] [\c!right="2035]
+\definemathdelimited [doublereverseprimed] [primed] [\c!right="2036]
+\definemathdelimited [triplereverseprimed] [primed] [\c!right="2037]
+
+%
+
+\integerdef\delimitedleftuppercorner \privatecharactercode{delimited left upper corner}
+\integerdef\delimitedrightuppercorner\privatecharactercode{delimited right upper corner}
+\integerdef\delimitedleftlowercorner \privatecharactercode{delimited left lower corner}
+\integerdef\delimitedrightlowercorner\privatecharactercode{delimited right lower corner}
+
+\definemathdelimited
+ [leftuppermarked]
+ [marked]
+ [\c!left=\delimitedleftuppercorner]
+
+\definemathdelimited
+ [rightuppermarked]
+ [marked]
+ [\c!right=\delimitedrightuppercorner]
+
+\definemathdelimited
+ [uppermarked]
+ [marked]
+ [\c!left=\delimitedleftuppercorner,
+ \c!right=\delimitedrightuppercorner]
+
+\definemathdelimited
+ [leftlowermarked]
+ [marked]
+ [\c!left=\delimitedleftlowercorner]
+
+\definemathdelimited
+ [rightlowermarked]
+ [marked]
+ [\c!right=\delimitedrightlowercorner]
+
+\definemathdelimited
+ [lowermarked]
+ [marked]
+ [\c!left=\delimitedleftlowercorner,
+ \c!right=\delimitedrightlowercorner]
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-ext.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-ext.lmt
new file mode 100644
index 00000000000..e1dc74e48e6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-ext.lmt
@@ -0,0 +1,109 @@
+if not modules then modules = { } end modules ['math-ext'] = {
+ version = 1.001,
+ comment = "companion to math-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- local basename = file.basename
+-- local sortedhash = table.sortedhash
+--
+-- local mathematics = mathematics
+-- local extras = mathematics.extras or { }
+-- mathematics.extras = extras
+--
+-- local characters = characters
+-- local chardata = characters.data
+-- local mathpairs = characters.mathpairs
+--
+-- local trace_virtual = false
+-- local report_math = logs.reporter("mathematics")
+--
+-- trackers.register("math.virtual", function(v) trace_virtual = v end)
+--
+-- local mathplus = { }
+--
+-- function extras.add(unicode)
+-- local min = mathematics.extrabase
+-- local max = min + 0xFFF
+-- if unicode >= min and unicode <= max then
+-- if chardata[unicode] then
+-- mathplus[unicode] = true
+-- else
+-- report_math("extra %U is not a registered code point",unicode)
+-- end
+-- else
+-- report_math("extra %U should be in range %U - %U",unicode,min,max)
+-- end
+-- end
+--
+-- function extras.copy(target,original)
+-- local characters = target.characters
+-- local properties = target.properties
+-- local parameters = target.parameters
+-- for unicode in sortedhash(mathplus) do
+-- local extradesc = chardata[unicode]
+-- local nextinsize = extradesc.nextinsize
+-- if nextinsize then
+-- local extrachar = characters[unicode]
+-- local first = 1
+-- local charused = unicode
+-- if not extrachar then
+-- for i=1,#nextinsize do
+-- local slot = nextinsize[i]
+-- extrachar = characters[slot]
+-- if extrachar then
+-- characters[unicode] = extrachar
+-- first = i + 1
+-- charused = slot
+-- break
+-- end
+-- end
+-- end
+-- if not extrachar then
+-- if trace_virtual then
+-- report_math("extra %U in %a at %p with class %a and name %a is not mapped",
+-- unicode,basename(properties.fullname),parameters.size,
+-- extradesc.mathclass,extradesc.mathname)
+-- end
+-- elseif not extrachar.next then
+-- local nextused = false
+-- for i=first,#nextinsize do
+-- local nextslot = nextinsize[i]
+-- local nextbase = characters[nextslot]
+-- if nextbase then
+-- local nextnext = nextbase and nextbase.next
+-- if nextnext then
+-- local nextchar = characters[nextnext]
+-- if nextchar then
+-- extrachar.next = nextchar
+-- nextused = nextslot
+-- break
+-- end
+-- end
+-- end
+-- end
+-- if trace_virtual then
+-- if nextused then
+-- report_math("extra %U in %a at %p with class %a and name %a maps onto %U with next %U",
+-- unicode,basename(properties.fullname),parameters.size,charused,
+-- extradesc.mathclass,extradesc.mathname,nextused)
+-- else
+-- report_math("extra %U in %a at %p with class %a and name %a maps onto %U with no next",
+-- unicode,basename(properties.fullname),parameters.size,charused,
+-- extradesc.mathclass,extradesc.mathname)
+-- end
+-- end
+-- else
+-- if trace_virtual then
+-- report_math("extra %U in %a at %p with class %a and name %a maps onto %U with no next", -- own next
+-- unicode,basename(properties.fullname),parameters.size,charused,
+-- extradesc.mathclass,extradesc.mathname)
+-- end
+-- end
+-- end
+-- end
+-- end
+--
+-- utilities.sequencers.appendaction(mathactions,"system","mathematics.extras.copy")
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-fbk.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-fbk.lmt
new file mode 100644
index 00000000000..1cc02a49fbe
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-fbk.lmt
@@ -0,0 +1,791 @@
+if not modules then modules = { } end modules ['math-fbk'] = {
+ version = 1.001,
+ comment = "companion to math-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- This will partly be redone and go via definitions in goodies where we can share
+-- some across fonts. That makes most sense for those patches that might need some
+-- finetuning depending on the font.
+
+local next, type = next, type
+
+local trace_fallbacks = false trackers.register("math.fallbacks", function(v) trace_fallbacks = v end)
+
+local report_fallbacks = logs.reporter("math","fallbacks")
+
+local formatters = string.formatters
+local fastcopy = table.fastcopy
+local byte = string.byte
+local sortedhash = table.sortedhash
+local setmetatableindex = table.setmetatableindex
+
+local fallbacks = { }
+mathematics.fallbacks = fallbacks
+
+----- helpers = fonts.helpers
+----- charcommand = helpers.commands.char
+----- slotcommand = helpers.commands.slot
+----- leftcommand = helpers.commands.left
+----- rightcommand = helpers.commands.right
+----- upcommand = helpers.commands.up
+----- downcommand = helpers.commands.down
+----- popcommand = helpers.commands.pop
+----- pushcommand = helpers.commands.push
+
+local virtualcharacters = { }
+local virtualforced = { }
+
+local hashes = fonts.hashes
+local identifiers = hashes.identifiers
+local lastmathids = hashes.lastmathids
+
+-- we need a trick (todo): if we define scriptscript, script and text in
+-- that order we could use their id's .. i.e. we could always add a font
+-- table with those id's .. in fact, we could also add a whole lot more
+-- as it doesn't hurt
+
+function fallbacks.apply(target,original)
+ local mathparameters = target.mathparameters
+ if not mathparameters or not next(mathparameters) then
+ return
+ end
+ -- we also have forcedsize ... at this moment we already passed through
+ -- constructors.scale so we have this set
+ local parameters = target.parameters
+ local properties = target.properties
+ local mathsize = parameters.mathsize
+ if mathsize < 1 or mathsize > 3 then
+ return
+ end
+ local characters = target.characters
+ local size = parameters.size
+ local usedfonts = target.fonts
+ local compactmath = properties.compactmath
+ if not usedfonts then
+ usedfonts = { { id = 0 } } -- we need at least one entry (automatically done anyway)
+ target.fonts = usedfonts
+ end
+ -- not used
+ local textid, scriptid, scriptscriptid
+ local textindex, scriptindex, scriptscriptindex
+ local textdata, scriptdata, scriptscriptdata
+ if mathsize == 3 then
+ -- scriptscriptsize
+ textid = 0
+ scriptid = 0
+ scriptscriptid = 0
+ elseif mathsize == 2 then
+ -- scriptsize
+ textid = 0
+ scriptid = lastmathids[3] or 0
+ scriptscriptid = lastmathids[3] or 0
+ else
+ -- textsize
+ textid = 0
+ scriptid = lastmathids[2] or 0
+ scriptscriptid = lastmathids[3] or 0
+ end
+ if textid and textid ~= 0 then
+ textindex = #usedfonts + 1
+ textdata = target
+ usedfonts[textindex] = { id = textid }
+ else
+ textdata = target
+ end
+ if compactmath then
+ scriptid = textid
+ scriptscriptid = textid
+ end
+ if scriptid and scriptid ~= 0 then
+ scriptindex = #usedfonts + 1
+ scriptdata = identifiers[scriptid]
+ usedfonts[scriptindex] = { id = scriptid }
+ else
+ scriptindex = textindex
+ scriptdata = textdata
+ end
+ if scriptscriptid and scriptscriptid ~= 0 then
+ scriptscriptindex = #usedfonts + 1
+ scriptscriptdata = identifiers[scriptscriptid]
+ usedfonts[scriptscriptindex] = { id = scriptscriptid }
+ else
+ scriptscriptindex = scriptindex
+ scriptscriptdata = scriptdata
+ end
+ -- report_fallbacks("used textid: %S, used script id: %S, used scriptscript id: %S",textid,scriptid,scriptscriptid)
+ local data = {
+ textdata = textdata,
+ scriptdata = scriptdata,
+ scriptscriptdata = scriptscriptdata,
+ textindex = textindex,
+ scriptindex = scriptindex,
+ scriptscriptindex = scriptscriptindex,
+ textid = textid,
+ scriptid = scriptid,
+ scriptscriptid = scriptscriptid,
+ characters = characters,
+ unicode = k,
+ target = target,
+ original = original,
+ size = size,
+ mathsize = mathsize,
+ }
+ target.mathrelation = data
+ --
+ local fullname = trace_fallbacks and target.properties.fullname
+ --
+ for k, v in sortedhash(virtualcharacters) do
+ if not characters[k] or virtualforced[k] then
+ local tv = type(v)
+ local cd = nil
+ if tv == "table" then
+ cd = v
+ elseif tv == "number" then
+ cd = characters[v]
+ elseif tv == "function" then
+ cd = v(data) -- ,k
+ end
+ if cd then
+ characters[k] = cd
+ else
+ -- something else
+ end
+ if trace_fallbacks and characters[k] then
+ report_fallbacks("extending math font %a with %U",fullname,k)
+ end
+ end
+ end
+ data.unicode = nil
+end
+
+utilities.sequencers.appendaction("aftercopyingcharacters","system","mathematics.fallbacks.apply")
+
+function fallbacks.install(unicode,value)
+ virtualcharacters[unicode] = value
+end
+
+-- a few examples:
+
+-- local addextra = mathematics.extras.add
+
+-- addextra(0xFE350) -- MATHEMATICAL DOUBLE ARROW LEFT END
+-- addextra(0xFE351) -- MATHEMATICAL DOUBLE ARROW MIDDLE PART
+-- addextra(0xFE352) -- MATHEMATICAL DOUBLE ARROW RIGHT END
+--
+-- local leftarrow = charcommand[0x2190]
+-- local relbar = charcommand[0x2212]
+-- local rightarrow = charcommand[0x2192]
+--
+-- virtualcharacters[0xFE350] = function(data)
+-- -- return combined(data,0x2190,0x2212) -- leftarrow relbar
+-- local charone = data.characters[0x2190]
+-- local chartwo = data.characters[0x2212]
+-- if charone and chartwo then
+-- local size = data.size/2
+-- return {
+-- width = chartwo.width,
+-- height = size,
+-- depth = size,
+-- commands = {
+-- pushcommand,
+-- downcommand[size/2],
+-- leftarrow,
+-- popcommand,
+-- upcommand[size/2],
+-- relbar,
+-- }
+-- }
+-- end
+-- end
+--
+-- virtualcharacters[0xFE351] = function(data)
+-- -- return combined(data,0x2212,0x2212) -- relbar, relbar (isn't that just equal)
+-- local char = data.characters[0x2212]
+-- if char then
+-- local size = data.size/2
+-- return {
+-- width = char.width,
+-- height = size,
+-- depth = size,
+-- commands = {
+-- pushcommand,
+-- downcommand[size/2],
+-- relbar,
+-- popcommand,
+-- upcommand[size/2],
+-- relbar,
+-- }
+-- }
+-- end
+-- end
+--
+-- virtualcharacters[0xFE352] = function(data)
+-- -- return combined(data,0x2192,0x2212) -- rightarrow relbar
+-- local charone = data.characters[0x2192]
+-- local chartwo = data.characters[0x2212]
+-- if charone and chartwo then
+-- local size = data.size/2
+-- return {
+-- width = chartwo.width,
+-- height = size,
+-- depth = size,
+-- commands = {
+-- pushcommand,
+-- downcommand[size/2],
+-- relbar,
+-- popcommand,
+-- rightcommand[chartwo.width - charone.width],
+-- upcommand[size/2],
+-- rightarrow,
+-- }
+-- }
+-- end
+-- end
+
+---------------------------------------------------------------------------------
+-- these are moved to math-act.lmt (keep this code)
+---------------------------------------------------------------------------------
+
+-- local function accent_to_extensible(target,newchr,original,oldchr,height,depth,swap,offset,unicode)
+-- local characters = target.characters
+-- local olddata = characters[oldchr]
+-- -- brrr ... pagella has only next
+-- if olddata and not olddata.commands then -- not: and olddata.width > 0
+-- local addprivate = fonts.helpers.addprivate
+-- if swap then
+-- swap = characters[swap]
+-- height = swap.depth or 0
+-- depth = 0
+-- else
+-- height = height or 0
+-- depth = depth or 0
+-- end
+-- local oldheight = olddata.height or 0
+-- local correction = swap and
+-- downcommand[oldheight - height]
+-- or downcommand[oldheight + (offset or 0)]
+-- local newdata = {
+-- commands = { correction, charcommand[oldchr] },
+-- width = olddata.width,
+-- height = height,
+-- depth = depth,
+-- unicode = unicode,
+-- }
+-- local glyphdata = newdata
+-- local nextglyph = olddata.next
+-- while nextglyph do
+-- local oldnextdata = characters[nextglyph]
+-- if oldnextdata then
+-- local newnextdata = {
+-- commands = { correction, charcommand[nextglyph] },
+-- width = oldnextdata.width,
+-- height = height,
+-- depth = depth,
+-- }
+-- local newnextglyph = addprivate(target,formatters["M-N-%H"](nextglyph),newnextdata)
+-- newdata.next = newnextglyph
+-- local nextnextglyph = oldnextdata.next
+-- if nextnextglyph == nextglyph then
+-- break
+-- else
+-- olddata = oldnextdata
+-- newdata = newnextdata
+-- nextglyph = nextnextglyph
+-- end
+-- else
+-- report_fallbacks("error in fallback: no valid next, slot %X",nextglyph)
+-- break
+-- end
+-- end
+-- local hv = olddata.hparts
+-- if hv then
+-- hv = fastcopy(hv)
+-- newdata.hparts = hv
+-- for i=1,#hv do
+-- local hvi = hv[i]
+-- local oldglyph = hvi.glyph
+-- local olddata = characters[oldglyph]
+-- if olddata then
+-- local newdata = {
+-- commands = { correction, charcommand[oldglyph] },
+-- width = olddata.width,
+-- height = height,
+-- depth = depth,
+-- }
+-- hvi.glyph = addprivate(target,formatters["M-H-%H"](oldglyph),newdata)
+-- else
+-- report_fallbacks("error in fallback: no valid hparts, slot %X, index %i",oldglyph,i)
+-- end
+-- end
+-- end
+-- return glyphdata, true
+-- else
+-- return olddata, false
+-- end
+-- end
+--
+-- virtualcharacters[0x203E] = function(data) -- overbar
+-- local target = data.target
+-- local height = 0
+-- local depth = 0
+-- -- local mathparameters = target.mathparameters
+-- -- if mathparameters then
+-- -- height = mathparameters.OverbarVerticalGap
+-- -- depth = mathparameters.UnderbarVerticalGap
+-- -- else
+-- height = target.parameters.xheight/4
+-- depth = height
+-- -- end
+-- return accent_to_extensible(target,0x203E,data.original,0x0305,height,depth,nil,nil,0x203E)
+-- end
+--
+-- -- virtualcharacters[0xFE33E] = virtualcharacters[0x203E] -- convenient
+-- -- virtualcharacters[0xFE33F] = virtualcharacters[0x203E] -- convenient
+--
+-- virtualcharacters[0xFE33E] = function(data)
+-- local target = data.target
+-- local height = 0
+-- local depth = target.parameters.xheight/4
+-- return accent_to_extensible(target,0xFE33E,data.original,0x0305,height,depth,nil,nil,0x203E)
+-- end
+--
+-- virtualcharacters[0xFE33F] = function(data)
+-- local target = data.target
+-- local height = target.parameters.xheight/8
+-- local depth = height
+-- return accent_to_extensible(target,0xFE33F,data.original,0x0305,height,depth,nil,nil,0x203E)
+-- end
+--
+-- local function smashed(data,unicode,swap,private)
+-- local target = data.target
+-- local original = data.original
+-- local chardata = target.characters[unicode]
+-- if chardata and chardata.height > target.parameters.xheight then
+-- return accent_to_extensible(target,private,original,unicode,0,0,swap,nil,unicode)
+-- else
+-- return original.characters[unicode]
+-- end
+-- end
+--
+-- addextra(0xFE3DE) -- EXTENSIBLE OF 0x03DE : overbrace
+-- addextra(0xFE3DC) -- EXTENSIBLE OF 0x03DC : overparent
+-- addextra(0xFE3B4) -- EXTENSIBLE OF 0x03B4 : overbracket
+--
+-- virtualcharacters[0xFE3DE] = function(data) return smashed(data,0x23DE,0x23DF,0xFE3DE) end
+-- virtualcharacters[0xFE3DC] = function(data) return smashed(data,0x23DC,0x23DD,0xFE3DC) end
+-- virtualcharacters[0xFE3B4] = function(data) return smashed(data,0x23B4,0x23B5,0xFE3B4) end
+--
+-- addextra(0xFE3DF) -- EXTENSIBLE OF 0x03DF
+-- addextra(0xFE3DD) -- EXTENSIBLE OF 0x03DD
+-- addextra(0xFE3B5) -- EXTENSIBLE OF 0x03B5
+--
+-- virtualcharacters[0xFE3DF] = function(data) local c = data.target.characters[0x23DF] if c then c.unicode = 0x23DF return c end end
+-- virtualcharacters[0xFE3DD] = function(data) local c = data.target.characters[0x23DD] if c then c.unicode = 0x23DD return c end end
+-- virtualcharacters[0xFE3B5] = function(data) local c = data.target.characters[0x23B5] if c then c.unicode = 0x23B5 return c end end
+--
+-- -- todo: add some more .. numbers might change
+--
+-- addextra(0xFE302) -- EXTENSIBLE OF 0x0302
+-- addextra(0xFE303) -- EXTENSIBLE OF 0x0303
+--
+-- local function smashed(data,unicode,private)
+-- local target = data.target
+-- local height = target.parameters.xheight / 2
+-- local c, done = accent_to_extensible(target,private,data.original,unicode,height,0,nil,-height,unicode)
+-- if done then
+-- c.topanchor = nil -- or maybe also all the others
+-- end
+-- return c
+-- end
+--
+-- virtualcharacters[0xFE302] = function(data) return smashed(data,0x0302,0xFE302) end
+-- virtualcharacters[0xFE303] = function(data) return smashed(data,0x0303,0xFE303) end
+
+---------------------------------------------------------------------------------
+-- these are moved to math-act.lmt
+---------------------------------------------------------------------------------
+
+-- local function reference(index,char)
+-- if index then
+-- return slotcommand[index][char]
+-- else
+-- return charcommand[char]
+-- end
+-- end
+--
+-- local function raised(data,replacement,down)
+-- local character = data.scriptdata.characters[replacement]
+-- if character then
+-- local size = data.size
+-- return {
+-- width = character.width,
+-- height = character.height,
+-- depth = character.depth,
+-- commands = {
+-- down and downcommand[size/4] or upcommand[size/2],
+-- reference(data.scriptindex,replacement)
+-- }
+-- }
+-- end
+-- end
+--
+-- virtualcharacters[0x207A] = function(data) return raised(data,0x002B) end
+-- virtualcharacters[0x207B] = function(data) return raised(data,0x2212) end
+-- virtualcharacters[0x208A] = function(data) return raised(data,0x002B,true) end
+-- virtualcharacters[0x208B] = function(data) return raised(data,0x2212,true) end
+
+---------------------------------------------------------------------------------
+-- these are moved to math-act.lmt
+---------------------------------------------------------------------------------
+
+-- local function repeated(data,char,n,fraction)
+-- local character = data.characters[char]
+-- if character then
+-- local width = character.width
+-- local delta = width - character.italic -- width * fraction
+-- local c = charcommand[char]
+-- local r = rightcommand[right]
+-- local commands = { }
+-- for i=1,n-1 do
+-- width = width + delta
+-- commands[#commands+1] = c
+-- commands[#commands+1] = -delta
+-- end
+-- commands[#commands+1] = c
+-- return {
+-- width = width,
+-- height = character.height,
+-- depth = character.depth,
+-- commands = commands,
+-- }
+-- end
+-- end
+--
+-- virtualcharacters[0x222C] = function(data)
+-- return repeated(data,0x222B,2,1/8)
+-- end
+--
+-- virtualcharacters[0x222D] = function(data)
+-- return repeated(data,0x222B,3,1/8)
+-- end
+
+---------------------------------------------------------------------------------
+-- these are moved to math-act.lmt
+---------------------------------------------------------------------------------
+
+-- -- spacing (no need for a cache of widths)
+--
+-- local c_zero = byte('0')
+-- local c_period = byte('.')
+--
+-- local function spacefraction(data,fraction)
+-- local width = fraction * data.target.parameters.space
+-- return {
+-- width = width,
+-- -- commands = { rightcommand[width] }
+-- }
+-- end
+--
+-- local function charfraction(data,char)
+-- local width = data.target.characters[char].width
+-- return {
+-- width = width,
+-- -- commands = { rightcommand[width] }
+-- }
+-- end
+--
+-- local function quadfraction(data,fraction)
+-- local width = fraction * data.target.parameters.quad
+-- return {
+-- width = width,
+-- -- commands = { rightcommand[width] }
+-- }
+-- end
+--
+-- virtualcharacters[0x00A0] = function(data) return spacefraction(data,1) end -- nbsp
+-- virtualcharacters[0x2000] = function(data) return quadfraction (data,1/2) end -- enquad
+-- virtualcharacters[0x2001] = function(data) return quadfraction (data,1) end -- emquad
+-- virtualcharacters[0x2002] = function(data) return quadfraction (data,1/2) end -- enspace
+-- virtualcharacters[0x2003] = function(data) return quadfraction (data,1) end -- emspace
+-- virtualcharacters[0x2004] = function(data) return quadfraction (data,1/3) end -- threeperemspace
+-- virtualcharacters[0x2005] = function(data) return quadfraction (data,1/4) end -- fourperemspace
+-- virtualcharacters[0x2006] = function(data) return quadfraction (data,1/6) end -- sixperemspace
+-- virtualcharacters[0x2007] = function(data) return charfraction (data,c_zero) end -- figurespace
+-- virtualcharacters[0x2008] = function(data) return charfraction (data,c_period) end -- punctuationspace
+-- virtualcharacters[0x2009] = function(data) return quadfraction (data,1/8) end -- breakablethinspace
+-- virtualcharacters[0x200A] = function(data) return quadfraction (data,1/8) end -- hairspace
+-- virtualcharacters[0x200B] = function(data) return quadfraction (data,0) end -- zerowidthspace
+-- virtualcharacters[0x202F] = function(data) return quadfraction (data,1/8) end -- narrownobreakspace
+-- virtualcharacters[0x205F] = function(data) return spacefraction(data,1/2) end -- math thinspace
+
+-- -- another crazy hack .. doesn't work as we define scrscr first .. we now have smaller
+-- -- primes so we have smaller primes for the moment, big ones will become an option ..
+-- -- these primes in fonts are a real mess .. kind of a dead end, so don't wonder about
+-- -- the values below
+--
+-- local function smashed(data,unicode,optional)
+-- local oldchar = data.characters[unicode]
+-- if oldchar then
+-- local height = 0.85 * data.target.mathparameters.AccentBaseHeight
+-- local newchar = table.copy(oldchar)
+-- newchar.yoffset = height - oldchar.height
+-- newchar.height = height
+-- return newchar
+-- elseif not optional then
+-- report_fallbacks("missing %U prime in font %a",unicode,data.target.properties.fullname)
+-- end
+-- end
+--
+-- addextra(0xFE932) -- SMASHED PRIME 0x02032
+-- addextra(0xFE933) -- SMASHED PRIME 0x02033
+-- addextra(0xFE934) -- SMASHED PRIME 0x02034
+-- addextra(0xFE957) -- SMASHED PRIME 0x02057
+--
+-- addextra(0xFE935) -- SMASHED BACKWARD PRIME 0x02035
+-- addextra(0xFE936) -- SMASHED BACKWARD PRIME 0x02036
+-- addextra(0xFE937) -- SMASHED BACKWARD PRIME 0x02037
+--
+-- virtualcharacters[0xFE932] = function(data) return smashed(data,0x02032) end
+-- virtualcharacters[0xFE933] = function(data) return smashed(data,0x02033) end
+-- virtualcharacters[0xFE934] = function(data) return smashed(data,0x02034) end
+-- virtualcharacters[0xFE957] = function(data) return smashed(data,0x02057) end
+--
+-- virtualcharacters[0xFE935] = function(data) return smashed(data,0x02035,true) end
+-- virtualcharacters[0xFE936] = function(data) return smashed(data,0x02036,true) end
+-- virtualcharacters[0xFE937] = function(data) return smashed(data,0x02037,true) end
+--
+-- local hack = nil
+--
+-- function mathematics.getridofprime(target,original)
+-- local mathparameters = original.mathparameters
+-- if mathparameters and next(mathparameters) then
+-- local changed = original.changed
+-- if changed then
+-- hack = changed[0x02032]
+-- changed[0x02032] = nil
+-- changed[0x02033] = nil
+-- changed[0x02034] = nil
+-- changed[0x02057] = nil
+-- changed[0x02035] = nil
+-- changed[0x02036] = nil
+-- changed[0x02037] = nil
+-- end
+-- end
+-- end
+--
+-- function mathematics.setridofprime(target,original)
+-- local mathparameters = original.mathparameters
+-- if mathparameters and next(mathparameters) and original.changed then
+-- target.characters[0xFE931] = target.characters[hack or 0x2032]
+-- hack = nil
+-- end
+-- end
+--
+-- utilities.sequencers.appendaction("beforecopyingcharacters","system","mathematics.getridofprime")
+-- utilities.sequencers.appendaction("aftercopyingcharacters", "system","mathematics.setridofprime")
+
+-- local list = {
+-- { 0x02032, true },
+-- { 0x02033, true },
+-- { 0x02034, true },
+-- { 0x02057, true },
+-- { 0x02035, false },
+-- { 0x02036, false },
+-- { 0x02037, false },
+-- }
+--
+-- function mathematics.fixprimes(target,original)
+-- local mathparameters = original.mathparameters
+-- if mathparameters and next(mathparameters) then
+-- for i=1,#list do
+-- local entry = list[i]
+-- local char = original.characters[entry[1]]
+-- if char then
+-- local height = 0.85 * orginal.mathparameters.AccentBaseHeight
+-- char.yoffset = height - char.height
+-- char.height = height
+-- return char
+-- elseif entry[1] then
+-- report_fallbacks("missing %U prime in font %a",unicode,original.properties.fullname)
+-- end
+-- end
+-- end
+-- end
+--
+-- utilities.sequencers.appendaction("beforecopyingcharacters","system","mathematics.fixprimes")
+
+---------------------------------------------------------------------------------
+-- this one is not used
+---------------------------------------------------------------------------------
+
+-- addextra(0xFE941) -- EXTREMELY IDENTICAL TO
+--
+-- virtualcharacters[0xFE941] = function(data) -- this character is only needed for mathpairs
+-- local characters = data.target.characters
+-- local parameters = data.target.parameters
+-- local basechar = characters[0x003D]
+-- local width = basechar.width or 0
+-- local height = basechar.height or 0
+-- local depth = basechar.depth or 0
+-- return {
+-- unicode = 0xFE941,
+-- width = width,
+-- height = height, -- we cheat (no time now)
+-- depth = depth, -- we cheat (no time now)
+-- commands = {
+-- upcommand[height/2], -- sort of works
+-- charcommand[0x003D],
+-- leftcommand[width],
+-- downcommand[height], -- sort of works
+-- charcommand[0x003D],
+-- },
+-- }
+-- end
+
+---------------------------------------------------------------------------------
+-- these might move to math-act.lmt
+---------------------------------------------------------------------------------
+--
+-- actuarian (beware: xits has an ugly one)
+
+-- addextra(0xFE940) -- SMALL ANNUITY SYMBOL
+--
+-- local function actuarian(data)
+-- local characters = data.target.characters
+-- local parameters = data.target.parameters
+-- local basechar = characters[0x0078] -- x (0x0058 X) or 0x1D431
+-- local linewidth = parameters.xheight / 10
+-- local basewidth = basechar.width
+-- local baseheight = basechar.height
+-- return {
+-- -- todo: add alttext
+-- -- compromise: lm has large hooks e.g. \actuarial{a}
+-- width = basewidth + 4 * linewidth,
+-- height = basechar.height,
+-- depth = basechar.depth,
+-- unicode = 0x20E7,
+-- commands = {
+-- rightcommand[2 * linewidth],
+-- downcommand[- baseheight - 3 * linewidth],
+-- { "rule", linewidth, basewidth + 4 * linewidth },
+-- leftcommand[linewidth],
+-- downcommand[baseheight + 4 * linewidth],
+-- { "rule", baseheight + 5 * linewidth, linewidth },
+-- },
+-- }
+-- end
+--
+-- virtualcharacters[0x020E7] = actuarian -- checked
+-- -----------------[0xFE940] = actuarian -- unchecked
+
+-- local function equals(data,unicode,snippet,advance,n) -- mathpair needs them
+-- local characters = data.target.characters
+-- local parameters = data.target.parameters
+-- local basechar = characters[snippet]
+-- local width = n*basechar.width
+-- local advance = advance * parameters.quad -- for equals
+-- return {
+-- unicode = unicode,
+-- width = width - (n-1)*advance,
+-- height = basechar.height,
+-- depth = basechar.depth,
+-- commands = {
+-- charcommand[snippet],
+-- leftcommand[advance],
+-- charcommand[snippet],
+-- n > 2 and leftcommand[advance] or nil,
+-- n > 2 and charcommand[snippet] or nil,
+-- },
+-- }
+-- end
+--
+-- virtualcharacters[0x2A75] = function(data) return equals(data,0x2A75,0x003D, 1/5,2) end -- ==
+-- virtualcharacters[0x2A76] = function(data) return equals(data,0x2A76,0x003D, 1/5,3) end -- ===
+--
+-- local function bars(data,unicode,snippet,advance,n) -- mathpair needs them
+-- local characters = data.target.characters
+-- local parameters = data.target.parameters
+-- local basechar = characters[snippet]
+-- local width = n*basechar.width
+-- advance = advance * width
+-- return {
+-- unicode = unicode,
+-- width = width - (n-1)*advance,
+-- height = basechar.height,
+-- depth = basechar.depth,
+-- callback = "devirtualize",
+-- commands = {
+-- charcommand[snippet],
+-- leftcommand[advance],
+-- charcommand[snippet],
+-- n > 2 and leftcommand[advance] or nil,
+-- n > 2 and charcommand[snippet] or nil,
+-- },
+-- }
+-- end
+--
+-- virtualcharacters[0x2980] = function(data) return bars(data,0x2980,0x007C,1/10,3) end -- |||
+
+---------------------------------------------------------------------------------
+-- these might move to math-act.lmt -- lucida needs this -- no longer used
+---------------------------------------------------------------------------------
+
+-- virtualcharacters[0x305] = function(data)
+-- local target = data.target
+-- local height = target.parameters.xheight/8
+-- local width = target.parameters.emwidth/2
+-- local depth = height
+-- local used = 0.8 * width
+-- return {
+-- width = width,
+-- height = height,
+-- depth = depth,
+-- commands = { { "rule", height, width } },
+-- hparts = {
+-- {
+-- advance = width,
+-- ["end"] = used,
+-- glyph = 0x305,
+-- start = 0,
+-- },
+-- {
+-- advance = width,
+-- ["end"] = 0,
+-- extender = 1,
+-- glyph = 0x305,
+-- start = used,
+-- },
+-- }
+-- }
+-- end
+
+-- local function threedots(data,shift)
+-- local characters = data.target.characters
+-- local parameters = data.target.parameters
+-- local periodchar = characters[0x002E]
+-- local pluschar = characters[0x002B]
+-- local period = charcommand[0x002E]
+-- local periodwd = periodchar.width or 0
+-- local periodht = periodchar.height or 0
+-- local perioddp = periodchar.depth or 0
+-- local offset = 0
+-- if shift then
+-- local plusht = pluschar.height or 0
+-- local plusdp = pluschar.depth or 0
+-- local axis = (plusdp + plusht)//2 - plusdp
+-- offset = axis - periodht//2
+-- periodht = axis + periodht//2
+-- end
+-- return {
+-- width = 3*periodwd,
+-- height = periodht,
+-- depth = 0,
+-- commands = { upcommand[offset], period, period, period }
+-- }
+-- end
+--
+-- virtualcharacters[0x2026] = function(data) return threedots(data,false) end -- virtualforced[0x2026] = true
+-- virtualcharacters[0x22EF] = function(data) return threedots(data, true) end -- virtualforced[0x22EF] = true
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-fen.mkxl b/Master/texmf-dist/tex/context/base/mkxl/math-fen.mkxl
index 8aa0e62a8cb..1656f4b4a1c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-fen.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-fen.mkxl
@@ -15,16 +15,6 @@
\unprotect
-% maybe always "method=auto" for:
-%
-% \switchtobodyfont[cambria]
-% \ruledhbox{$f(x)$}
-% \ruledhbox{\mathdelimitersmode6$f\left(x\right)$}
-% \ruledhbox{\mathdelimitersmode7$f\left(x\right)$}
-% \ruledhbox{$f\left(\frac{1}{x}\right)$}
-
-% todo: mathstyle
-
% \definemathfence [fancybracket] [bracket] [command=yes,color=blue]
%
% test $|x|$ test \par
@@ -54,12 +44,25 @@
\c!color=,
\c!command=,
\c!mathclass=,
+ \c!leftclass=\mathopencode,
+ \c!rightclass=\mathclosecode,
+ \c!middleclass=\mathmiddlecode,
+ \c!leftsource=\zerocount,
+ \c!middlesource=\zerocount,
+ \c!rightsource=\mathfenceparameter\c!source,
+ \c!source=\zerocount,
+ \c!height=\zeropoint,
+ \c!depth=\zeropoint,
+ \c!distance=\zerocount,
+ \c!topspace=\zeropoint,
+ \c!bottomspace=\zeropoint,
\c!factor=\v!auto]
\appendtoks
\edef\p_command{\mathfenceparameter\c!command}%
\ifx\p_command\v!yes
- \setuevalue\currentmathfence{\math_fenced_fenced[\currentmathfence]}%
+ % \instance
+ \protected\edefcsname\currentmathfence\endcsname{\math_fenced_fenced{\currentmathfence}}%
\fi
\to \everydefinemathfence
@@ -82,15 +85,31 @@
%D $ a + \fenced[bar] {\frac {b} {c}} + d $
%D \stoptyping
+% \startbuffer
+% $ \left( \frac{1}{x}^{2} \right)$
+% $ \left( x \right)$
+% $ \left( x^2 \right)$
+% $ \left( \frac{1}{x} \right)$
+% $ \left( \frac{1}{x}^2 \right)$
+% \stopbuffer
+%
+% \getbuffer\blank
+% {\setupmathfence[topspace=-2pt,bottomspace=-1pt]\getbuffer\blank}
+
+% todo : class -> number
+
\newconditional\c_math_fenced_mirror \settrue \c_math_fenced_mirror
\newconditional\c_math_fenced_sized \setfalse\c_math_fenced_sized
+\newinteger \c_math_fence_nesting
\installcorenamespace {mathfencesize}
-\setvalue{\??mathfencesize big}{1}
-\setvalue{\??mathfencesize Big}{2}
-\setvalue{\??mathfencesize bigg}{3}
-\setvalue{\??mathfencesize Bigg}{4}
+\defcsname\??mathfencesize big\endcsname{1}
+\defcsname\??mathfencesize Big\endcsname{2}
+\defcsname\??mathfencesize bigg\endcsname{3}
+\defcsname\??mathfencesize Bigg\endcsname{4}
+
+\let\math_fenced_trace\donothing
\def\math_fenced_force_size#1#2%
{\c_attr_mathsize\numexpr
@@ -98,119 +117,207 @@
+\ifcsname\??mathfencesize#2\endcsname\lastnamedcs\else#2\fi
\relax}
-\protected\def\math_fenced_inject#1#2#3#4%
- {\ifx#1\empty
- #2.%
+\def\math_fenced_common_factor_none
+ {\math_fenced_force_size\bigmathdelimitervariant\c_math_fence_nesting\relax
+ \Uvextensible
+ \s!axis
+ \s!exact}
+
+\def\math_fenced_common_factor_fixed
+ {\Uvextensible
+ \s!axis
+ \s!exact}
+
+\def\math_fenced_common_factor_unknown
+ {\scratchdimen\dimexpr\p_factor\bodyfontsize/2\relax
+ \Uvextensible
+ \s!height\scratchdimen
+ \s!depth\scratchdimen
+ \s!axis
+ \s!exact}
+
+\def\math_fenced_common_factor_force
+ {\Uvextensible
+ \s!height\mathfenceparameter\c!height
+ \s!depth\mathfenceparameter\c!depth
+ \s!axis
+ \s!exact}
+
+% \startTEXpage[offset=1dk]
+% \dm { \fenced[brace][middle="7C] { \frac{p}{q} \fence p,q \in \naturalnumbers} }\par
+% \dm { \fenced[brace][middle=`|] { \frac{p}{q} \fence p,q \in \naturalnumbers} }\par
+% \dm { \fenced[brace][middle=124] { \frac{p}{q} \fence p,q \in \naturalnumbers} }\par
+% \dm { \fenced[brace][middle=|] { \frac{p}{q} \fence p,q \in \naturalnumbers} }
+% \stopTEXpage
+
+\newconstant\c_math_fenced_class
+\newinteger \c_math_fence_check
+
+\protected\def\math_fenced_common#1#2#3#4% \Uwhatever class symbol source
+ {\c_math_fenced_class\math_class_by_parameter\mathfenceparameter#2%
+ \math_fenced_check_size_mismatch % we need to catch an unbalanced \F as we are sequential
+ \ifconditional\c_math_fenced_sized
+ \orelse\ifconditional\c_math_fenced_level_mode
+ \ifnum\c_math_fenced_class=\mathopencode
+ % \hpack{\infofont<L:\number\c_math_fenced_level:\number\c_attr_mathsize>}%
+ \integerdef\c_math_fenced_stack\c_attr_mathsize
+ \push_macro_c_math_fenced_stack
+ \orelse\ifnum\c_math_fenced_class=\mathclosecode
+ \pop_macro_c_math_fenced_stack
+ \c_attr_mathsize\c_math_fenced_stack
+ % \hpack{\infofont<R:\number\c_math_fenced_level:\number\c_attr_mathsize>}%
+ \fi
+ \fi
+ \edef\p_fence{#3}%
+ \ifempty\p_fence
+ \ifnum\c_math_fenced_class=\mathmiddlecode\else#1.\relax\fi
\else
+ \edef\p_factor {\mathfenceparameter\c!factor}%
+ \edef\p_size {\mathfenceparameter\c!size}%
\edef\p_mathclass{\mathfenceparameter\c!mathclass}%
- \ifconditional\c_math_fenced_sized
- \let\p_factor\v!fixed
- \else
- \edef\p_factor{\mathfenceparameter\c!factor}%
- \fi
- \ifempty\p_factor
- \ifempty\p_mathclass
- #2%
+ \ifnum\c_math_fenced_level>\zerocount
+ \math_fenced_common_factor_fixed
+ \orelse\ifconditional\c_math_fenced_sized
+ \math_fenced_common_factor_fixed
+ \orelse\ifempty\p_factor
+ \ifconditional\c_math_fenced_level_mode
+ \Uvextensible
\else
- #3%
- \s!class\p_mathclass
+ #1% \Uleft \Umiddle \Uleft
+ \ifx#1\Umiddle
+ nooverflow %
+ \fi
\fi
\orelse\ifx\p_factor\v!auto
- \ifempty\p_mathclass
- #2%
+ \ifconditional\c_math_fenced_level_mode
+ \Uvextensible
\else
- #3%
- \s!class\p_mathclass
+ #1% \Uleft \Umiddle \Uleft
+ \ifx#1\Umiddle
+ nooverflow %
+ \fi
\fi
\orelse\ifx\p_factor\v!none
- #3%
- \s!height\zeropoint % redundant with "exact"
- \s!depth\zeropoint % redundant with "exact"
- \ifempty\p_mathclass\else
- \s!class\p_mathclass
- \fi
- \s!axis
- \s!exact % new
- % #2%
+ \math_fenced_common_factor_none
+ \orelse\ifx\p_factor\v!fixed
+ \math_fenced_common_factor_fixed
+ \orelse\ifx\p_factor\v!force
+ \math_fenced_common_factor_force
\else
- %\scratchdimen\ifx\p_factor\v!fixed\scaledpoint\else\dimexpr\p_factor\bodyfontsize/2\relax\fi
- \scratchdimen\ifx\p_factor\v!fixed\zeropoint\else\dimexpr\p_factor\bodyfontsize/2\relax\fi
- #3%
- \s!height\scratchdimen
- \s!depth\scratchdimen
- \ifempty\p_mathclass\else
- \s!class\p_mathclass
- \fi
- \s!axis
- \s!exact
+ \math_fenced_common_factor_unknown
\fi
- \Udelimiter#4\fam#1\relax
- \fi}
-
-\permanent\def\math_fenced_left
- {\edef\p_left
- {\ifconditional\c_math_fenced_mirror
- \ifconditional\c_math_right_to_left
- \mathfenceparameter\c!right
+ \usedcolorparameterattributes{\mathfenceparameter\c!color}%
+ \s!class
+ \ifx\p_fence\v!none
+ \mathghostcode
+ \orelse\ifempty\p_mathclass
+ \c_math_fenced_class
\else
- \mathfenceparameter\c!left
+ \mathcodechecked\p_mathclass
\fi
- \else
- \mathfenceparameter\c!left
- \fi}%
- \math_fenced_color_push
- \math_fenced_inject\p_left\normalleft\Uleft\plusfour
- \math_fenced_color_pop}
-
-\permanent\def\math_fenced_middle
- {\edef\p_middle{\mathfenceparameter\c!middle}%
- \mskip\thinmuskip
- \math_fenced_color_push
- \math_fenced_inject\p_middle\normalmiddle\Umiddle\plusfour
- \math_fenced_color_pop
- \mskip\thinmuskip}
-
-\permanent\def\math_fenced_right
- {\edef\p_right
- {\ifconditional\c_math_fenced_mirror
- \ifconditional\c_math_right_to_left
- \mathfenceparameter\c!left
- \else
- \mathfenceparameter\c!right
- \fi
- \else
- \mathfenceparameter\c!right
- \fi}%
- \math_fenced_color_push
- \math_fenced_inject\p_right\normalright\Uright\plusfive
- \math_fenced_color_pop}
+ \s!source
+ \numexpr\namedboxanchor{\mathfenceparameter#4}\relax
+ %
+ \s!top \mathfenceparameter\c!topspace
+ \s!bottom \mathfenceparameter\c!bottomspace
+ %
+ \math_fenced_trace
+ \ifx\p_fence\v!none
+ \Udelimiter\mathghostcode\fam\zerocount
+ \orelse\ifchknum\p_fence\or
+ \Udelimiter\mathghostcode\fam\p_fence
+ \else
+ \p_fence
+ \fi
+ \fi
+ % we could use \s!attr \c_math_fenced_stack here
+ \ifconditional\c_math_fenced_sized
+ \orelse\ifcase\c_math_fenced_level
+ \c_attr_mathsize\attributeunsetvalue
+ \fi}
+
+\def\math_fenced_left
+ {\advanceby\c_math_fence_nesting\plusone
+ \math_fenced_common\Uleft\c!leftclass\math_fenced_p_left\c!leftsource}
-\def\math_fenced_color_do_push{\pushcolor[\p_math_fenced_color]}
-\let\math_fenced_color_do_pop \popcolor
+\def\math_fenced_right
+ {\math_fenced_common\Uright\c!rightclass\math_fenced_p_right\c!rightsource
+ \advanceby\c_math_fence_nesting\minusone}
-\let\math_fenced_color_push\donothing
-\let\math_fenced_color_pop \donothing
+\def\math_fenced_middle_normal
+ {\math_fenced_common\Umiddle\c!middleclass\math_fenced_p_middle\c!middlesource}
+
+\def\math_fenced_middle_sized
+ {\settrue\c_math_fenced_sized
+ \math_fenced_middle_normal
+ \setfalse\c_math_fenced_sized}
+
+\appendtoks
+ \let\math_fenced_middle\math_fenced_middle_normal
+ \enforced\let\fence\math_fenced_direct
+\to \everymathatom
+
+\let\math_fenced_middle\math_fenced_middle_normal
+
+\def\math_fenced_p_left
+ {\ifconditional\c_math_fenced_mirror
+ \ifconditional\c_math_right_to_left
+ \mathfenceparameter\c!right
+ \else
+ \mathfenceparameter\c!left
+ \fi
+ \else
+ \mathfenceparameter\c!left
+ \fi}
+
+\def\math_fenced_p_middle
+ {\mathfenceparameter\c!middle}%
+
+\def\math_fenced_p_right
+ {\ifconditional\c_math_fenced_mirror
+ \ifconditional\c_math_right_to_left
+ \mathfenceparameter\c!left
+ \else
+ \mathfenceparameter\c!right
+ \fi
+ \else
+ \mathfenceparameter\c!right
+ \fi}
\aliased\let\fence \relax
\aliased\let\fenced\relax
-\newcount\c_math_fenced_nesting
+\protected\def\math_fenced_middle_bar {\mfence |\relax}
+\protected\def\math_fenced_middle_colon{\mfence :\relax}
+\protected\def\math_fenced_middle_comma{\mathatom \s!leftclass \mathpunctuationcode \s!rightclass \mathmiddlecode {,}}
+
+\startsetups math:fence:set:bar
+ \aliased\let\suchthat\math_fenced_middle_bar
+ \aliased\let\where \math_fenced_middle_comma
+ \aliased\let\and \math_fenced_middle_comma
+\stopsetups
+
+\startsetups math:fence:set:colon
+ \aliased\let\suchthat\math_fenced_middle_colon
+ \aliased\let\where \math_fenced_middle_comma
+ \aliased\let\and \math_fenced_middle_comma
+\stopsetups
+
+\startsetups math:fence:set
+ \directsetup{math:fence:set:bar}
+\stopsetups
+
+\protected\def\math_fenced_middle_common
+ {\math_fenced_middle} % redefined inside atom
\protected\def\math_fenced_fenced_common
- {\startusemathstyleparameter\mathfenceparameter
- \enforced\let\fence\math_fenced_middle
- \edef\p_math_fenced_color{\mathfenceparameter\c!color}%
- \ifempty\p_math_fenced_color
- \let\math_fenced_color_push\donothing
- \let\math_fenced_color_pop \donothing
- \else
- \let\math_fenced_color_push\math_fenced_color_do_push
- \let\math_fenced_color_pop \math_fenced_color_do_pop
- \fi}
+ {\startusemathstyleparameter\mathfenceparameter\c!mathstyle
+ \usesetupsparameter\mathfenceparameter
+ \enforced\let\fence\math_fenced_middle_common}
\protected\def\math_fenced_fenced_start#1%
- {\advance\c_math_fenced_nesting\plusone
- \begingroup
+ {\begingroup
+ %{\beginmathgroup
\edef\currentmathfence{#1}%
\math_fenced_fenced_common
\math_fenced_left}
@@ -219,19 +326,85 @@
{\edef\currentmathfence{#1}%
\math_fenced_right
\stopusemathstyleparameter
- \endgroup
- \advance\c_math_fenced_nesting\minusone}
+ \endgroup}
+ %\endmathgroup}
-\tolerant\protected\def\math_fenced_fenced[#1]#*[#2]%
- {\advance\c_math_fenced_nesting\plusone
- \begingroup
- \edef\currentmathfence{#1}%
-% under test:
-\c_attr_mathsize\attributeunsetvalue
-\letmathfenceparameter\c!size\empty
-\letmathfenceparameter\c!factor\v!auto
-% so far
- \ifparameter#2\or\setupcurrentmathfence[#2]\fi
+\installlocalcurrenthandler \??mathfences {mathfence}
+
+%D The horizontal text variant was introduced for Alan Braslau. Because this is not
+%D used that often we only support double text arguments.
+%D
+%D Musical timestamp: I am The Moon by Tedeschi Trucks Band
+
+% \definemathfence [tupdownarrows] [text] [\c!left="2191,\c!right="2193]
+
+\protected\def\math_fenced_horizontal_common#1#2#3#4% \Uwhatever class symbol source
+ {\c_math_fenced_class\math_class_by_parameter\mathfenceparameter#2\relax
+ \edef\p_fence{#3}%
+ #1% \Uleft \Umiddle \Uleft
+ \usedcolorparameterattributes{\mathfenceparameter\c!color}%
+ \s!leftclass \mathunspacedcode
+ \s!rightclass \mathunspacedcode
+ \s!class \mathunspacedcode
+ \s!source \numexpr\namedboxanchor{\mathfenceparameter#4}\relax
+ \Udelimiter\mathghostcode\fam\p_fence}
+
+\tolerant\protected\def\math_fenced_horizontal#1#*[#2]#:#*#3#4%
+ {% \csname math\mathfenceparameter\c!mathclass\endcsname
+ \mathord \bgroup % class here
+ \setlocalmathfencecurrent{#1}% \edef\currentmathfence{#1}%
+ \setupcurrentmathfence[#2]%
+ % \usemathstyleparameter\mathfenceparameter\c!mathstyle
+ \setmathsmalltextbox\scratchboxone\hbox{\usemathfencestyleandcolor\c!leftstyle \c!leftcolor #3}%
+ \setmathsmalltextbox\scratchboxtwo\hbox{\usemathfencestyleandcolor\c!rightstyle\c!rightcolor#4}%
+ \let\math_fenced_common\math_fenced_horizontal_common
+ \edef\p_fenced_middle{\mathfenceparameter\c!middle}%
+ \ifempty\p_fenced_middle\else
+ \letmathfenceparameter\c!left \p_fenced_middle
+ \letmathfenceparameter\c!right\zerocount
+ \fi
+ \scratchdistance\mathfenceparameter\c!distance
+ \box\scratchboxone
+ \kern\scratchdistance
+ \math_fenced_fenced_start\currentmathfence
+ \math_fenced_fenced_stop \currentmathfence
+ \kern\scratchdistance
+ \box\scratchboxtwo
+ \egroup}
+
+\tolerant\protected\def\math_fenced_fenced#1%
+ {\ifcstok{\namedmathfenceparameter{#1}\c!text}\v!yes % not the best keyword
+ \expandafter\math_fenced_horizontal
+ \else
+ \expandafter\math_fenced_vertical
+ \fi{#1}}
+
+% two step because we don't want to define text itself as command
+
+\definemathfence
+ [\v!text]
+
+\setupmathfence
+ [\v!text]
+ [\c!text=\v!yes,
+ \c!command=\v!yes,
+ \c!distance=.125\emwidth]
+
+\tolerant\protected\def\math_fenced_vertical#1#*[#2]%
+ {\begingroup
+ %{\beginmathgroup
+ \setlocalmathfencecurrent{#1}% \edef\currentmathfence{#1}%
+ % under test:
+ \setfalse\c_math_fenced_level_mode
+ \c_attr_mathsize\attributeunsetvalue
+ %
+ \resetmathfenceparameter\c!size
+ \letmathfenceparameter\c!factor\v!auto
+ % so far
+ \ifparameter#2\or
+ \setupcurrentmathfence[#2]%
+ \bigmathdelimitervariant\mathfenceparameter\c!alternative\relax
+ \fi
\math_fenced_fenced_common
\edef\p_size{\mathfenceparameter\c!size}%
\ifempty\p_size
@@ -242,15 +415,19 @@
\protected\def\math_fenced_fenced_indeed_finish
{\stopusemathstyleparameter
- \endgroup
- \advance\c_math_fenced_nesting\minusone}
+ \endgroup}
+ %\endmathgroup}
\protected\def\math_fenced_fenced_indeed_fixed#1%
{\math_fenced_force_size\bigmathdelimitervariant\p_size
\settrue\c_math_fenced_sized
\math_fenced_left
\setfalse\c_math_fenced_sized
- #1%
+ \let\math_fenced_middle\math_fenced_middle_sized
+ % \enforced\let\middle\math_fenced_middle_sized
+\begingroup
+ #1% otherwise middle interferes
+\endgroup
\settrue\c_math_fenced_sized
\math_fenced_right
\setfalse\c_math_fenced_sized
@@ -264,17 +441,137 @@
\math_fenced_right
\math_fenced_fenced_indeed_finish}
+\protected\def\math_fenced_direct[#1]%
+ {\math_fenced_fenced{#1}}
+
\appendtoks
- \enforced\let\fenced\math_fenced_fenced
+ \enforced\let\fenced\math_fenced_direct
\to \everymathematics
-% todo: | in mathmode letter
+\permanent\tolerant\protected\def\startmathfenced[#1]#*[#2]%
+ {\begingroup
+ \def\currentmathfence{#1}%
+ \setupcurrentmathfence[#2]%
+ \math_fenced_fenced_start{#1}}
+
+\permanent\protected\def\stopmathfenced
+ {\math_fenced_fenced_stop\currentmathfence
+ \endgroup}
+
+\protected\def\math_fenced_start_wrap#1%
+ {\begingroup
+ \edef\m_math_fenced_wrap{#1}%
+ \ifempty\m_math_fenced_wrap \else
+ \math_fenced_fenced_start\m_math_fenced_wrap
+ \fi}
+
+\protected\def\math_fenced_stop_wrap
+ {\ifempty\m_math_fenced_wrap \else
+ \math_fenced_fenced_stop\m_math_fenced_wrap
+ \fi
+ \endgroup}
+
+% for torture testing mikael sundqvist:
+%
+% \setupmathfence[brace][middle=124]
%
+% \im{\fenced[brace] {\vec{x}\in\reals^3\middle\vert \vec{x}\neq \vec{0}}}
+% \im{\fenced[brace] {\vec{x}\in\reals^3\mid \vec{x}\neq \vec{0}}}
+% \im{\fenced[brace][size=0]{\vec{x}\in\reals^3\fence \vec{x}\neq \vec{0}}}
+
+\aliased\let\normalmid\mid
+
+\protected\def\mid{\ifcase\c_math_fence_nesting\normalmid\else\middle\vert\fi}
+
+% cases are defined in math-ali:
+
+\definemathfence [cases] [\c!left="007B,\c!right=\v!none]
+\definemathfence [sesac] [\c!left=\v!none,\c!right="007D]
+\definemathfence [tekcarb] [\c!left="005D,\c!right="005B] % used for xıɹʇɐɯ
+
+%D This is new:
+%D
+%D \starttyping
+%D $ \F0 \left( x + \F1 \left( x \right) + x \right) $
+%D $
+%D \F0 \left( x + \F1 \left( x + \F2 \left( x + \F3 \left( x + \F4 \left( x +
+%D 2
+%D + x \right) + x \right) + x \right) + x \right) + x \right)
+%D $
+%D $ \F1 \left( x + \F1 \left( x \right) + x \right) $
+%D $ \F3 \left( x + \F1 \left( x \right) + x \right) $
+%D $ \F1 \left( x + \F4 \left( x \right) + x \right) $
+%D $ \F4 \left( x + \F- \left( x \right) + x \right) $
+%D $ \F4
+%D \left( 1 +
+%D \F- \left( 2 +
+%D \F* \left( 3 +
+%D 4
+%D \right)
+%D + 5 +
+%D \F- \left( 6 +
+%D 7
+%D \right)
+%D \right)
+%D + 8
+%D \right)
+%D $
+%D \stoptyping
+%D
+%D \starttyping
+%D \startTEXpage[offset=1dk,width=20dk]
+%D \ruledhbox{$ \F3 \left( 1 + \F2 \left( a + b \right) + \left( a + b \right) \right) $}\par
+%D \ruledhbox{$ \left( 1 + \F3 \left( a + b \right) + \left( a + b \right) \right) $}\par
+%D \ruledhbox{$ \F3 \left( 1 + \F0 \left( a + b \right) \right) $}\par
+%D \ruledhbox{$ \F3 \left( 1 + \F= \left( a + b \right) \right) $}\par
+%D \ruledhbox{$ \F4 \left( 1 + \fenced[parenthesis]{a + b} \right) $}\par
+%D \ruledhbox{$ \F3 \left( 1 + \F- \left( a + b \right) \right) $}\par
+%D \ruledhbox{$ \left( \frac{1}{1+x} \right) $}\par
+%D \ruledhbox{$ \left( \frac{1}{1+x} \right) $}\par
+%D \stopTEXpage
+%D \stoptyping
+
+\newinteger \c_math_fenced_level
+\newconditional\c_math_fenced_level_mode
+
+\integerdef\c_math_fenced_stack \zerocount
+
+\installmacrostack \c_math_fenced_stack
+
+\installcorenamespace{fencelevels}
+\installcorenamespace{fencestack}
+
+\defcsname\??fencelevels+\endcsname{\advanceby\c_math_fenced_level\plusone }
+\defcsname\??fencelevels-\endcsname{\advanceby\c_math_fenced_level\minusone }
+\defcsname\??fencelevels=\endcsname {\c_math_fenced_level\zerocount}
+
+\letcsname\??fencelevels*\endcsname\donothing
+
+\def\math_fenced_check_size_mismatch
+ {\ifnum\c_math_fence_check=\c_math_fence_nesting
+ \c_attr_mathsize\attributeunsetvalue
+ \setfalse\c_math_fenced_level_mode
+ \c_math_fenced_level\zerocount
+ \fi}
+
+\permanent\protected\def\F#1%
+ {\ifconditional\c_math_fenced_level_mode\else
+ \c_math_fence_check\c_math_fence_nesting
+ \fi
+ \settrue\c_math_fenced_level_mode
+ \ifchknum#1\or
+ \c_math_fenced_level#1\relax
+ \orelse\ifcsname\??fencelevels#1\endcsname
+ \lastnamedcs
+ \else
+ \c_math_fenced_level\zerocount
+ \fi
+ \math_fenced_force_size\bigmathdelimitervariant\c_math_fenced_level\relax}
+
% \appendtoks
-% \let\bar\letterbar
+% \enforced\aliased\let|\letterbar
+% %\enforced\aliased\let\bar\letterbar
% \to \everymathematics
-%
-% but then we don't have it in embedded text too so ...
\definemathfence [parenthesis] [\c!left="0028,\c!right="0029]
\definemathfence [bracket] [\c!left="005B,\c!right="005D]
@@ -361,15 +658,15 @@
\definemathfence [leftopeninterval] [interval] [\c!left="2997,\c!right="2997]
\definemathfence [rightopeninterval] [interval] [\c!left="2998,\c!right="2998]
-\immutable\protected\def\Linterval {\math_fenced_fenced_start{interval}}
-\immutable\protected\def\Lointerval {\math_fenced_fenced_start{openinterval}}
-\immutable\protected\def\Llointerval {\math_fenced_fenced_start{leftopeninterval}}
-\immutable\protected\def\Lrointerval {\math_fenced_fenced_start{rightopeninterval}}
+\immutable\protected\def\Linterval {\math_fenced_fenced_start{interval}}
+\immutable\protected\def\Lointerval {\math_fenced_fenced_start{openinterval}}
+\immutable\protected\def\Llointerval {\math_fenced_fenced_start{leftopeninterval}}
+\immutable\protected\def\Lrointerval {\math_fenced_fenced_start{rightopeninterval}}
-\immutable\protected\def\Rinterval {\math_fenced_fenced_stop {interval}}
-\immutable\protected\def\Rointerval {\math_fenced_fenced_stop {openinterval}}
-\immutable\protected\def\Rlointerval {\math_fenced_fenced_stop {leftopeninterval}}
-\immutable\protected\def\Rrointerval {\math_fenced_fenced_stop {rightopeninterval}}
+\immutable\protected\def\Rinterval {\math_fenced_fenced_stop {interval}}
+\immutable\protected\def\Rointerval {\math_fenced_fenced_stop {openinterval}}
+\immutable\protected\def\Rlointerval {\math_fenced_fenced_stop {leftopeninterval}}
+\immutable\protected\def\Rrointerval {\math_fenced_fenced_stop {rightopeninterval}}
% \startformula
% \left{ \frac{1}{a} \right}
@@ -387,131 +684,167 @@
\pushoverloadmode
-\protected\def\left {\afterassignment\math_left \let\nexttoken}
-\protected\def\right {\afterassignment\math_right \let\nexttoken}
-\protected\def\middle{\afterassignment\math_middle\let\nexttoken}
+% \protected\def\left {\afterassignment\math_left \let\nexttoken}
+% \protected\def\right {\afterassignment\math_right \let\nexttoken}
+% \protected\def\middle{\afterassignment\math_middle\let\nexttoken}
-\popoverloadmode
-
-\let\leftorright\relax
-
-\newconditional\c_math_fenced_done
-\newconditional\c_math_fenced_unknown \settrue\c_math_fenced_unknown
-
-\permanent\protected\def\installmathfencepair#1#2#3#4%
- {\letcsname\??mathleft \normalmeaning#1\endcsname#2%
- \letcsname\??mathright\normalmeaning#3\endcsname#4}
+% \im { \left{ \frac{1}{2} \right} }
+% \im { \left\bgroup \frac{1}{2} \right\egroup }
+% \im { \left\{ \frac{1}{2} \right\} }
+% \im { \left\lbrace \frac{1}{2} \right\rbrace }
-\def\math_unknown_left {\setfalse\c_math_fenced_done\ifconditional\c_math_fenced_unknown\normalleft \nexttoken\fi}
-\def\math_unknown_right {\setfalse\c_math_fenced_done\ifconditional\c_math_fenced_unknown\normalright \nexttoken\fi}
-\def\math_unknown_middle{\setfalse\c_math_fenced_done\ifconditional\c_math_fenced_unknown\normalmiddle\nexttoken\fi}
+\def\math_fenced_x_left
+ {\advanceby\c_math_fence_nesting\plusone
+ \ifx\math_fenced_x_p_left\bgroup\let\math_fenced_x_p_left\letterleftbrace\fi
+ \math_fenced_common\Uleft\c!leftclass\math_fenced_x_p_left\c!leftsource}
-\letvalue{\??mathleft \s!unknown}\math_unknown_left
-\letvalue{\??mathright \s!unknown}\math_unknown_right
-\letvalue{\??mathmiddle\s!unknown}\math_unknown_middle
-
-\def\math_left
- {\settrue\c_math_fenced_done
- \ifcsname\??mathleft\normalmeaning\nexttoken\endcsname
- \expandafter\lastnamedcs
- \else
- \expandafter\math_unknown_left
- \fi}
-
-\def\math_right
- {\settrue\c_math_fenced_done
- \ifcsname\??mathright\normalmeaning\nexttoken\endcsname
- \expandafter\lastnamedcs
- \else
- \expandafter\math_unknown_right
- \fi}
+\def\math_fenced_x_right
+ {\ifx\math_fenced_x_p_right\egroup\let\math_fenced_x_p_right\letterrightbrace\fi
+ \math_fenced_common\Uright\c!rightclass\math_fenced_x_p_right\c!rightsource
+ \advanceby\c_math_fence_nesting\minusone}
-\def\math_middle
- {\settrue\c_math_fenced_done
- \ifcsname\??mathmiddle\normalmeaning\nexttoken\endcsname
- \expandafter\lastnamedcs
- \else
- \expandafter\math_unknown_middle
- \fi}
-
-\permanent\protected\def\lfence#1%
- {\settrue\c_math_fenced_done
- \let\nexttoken#1%
- \ifcsname\??mathleft\normalmeaning\nexttoken\endcsname
- \expandafter\lastnamedcs
- \else
- \expandafter\math_unknown_left
- \fi}
-
-\permanent\protected\def\rfence#1%
- {\settrue\c_math_fenced_done
- \let\nexttoken#1%
- \ifcsname\??mathright\normalmeaning\nexttoken\endcsname
- \expandafter\lastnamedcs
- \else
- \expandafter\math_unknown_right
- \fi}
-
-\permanent\protected\def\mfence#1%
- {\settrue\c_math_fenced_done
- \let\nexttoken#1%
- \ifcsname\??mathmiddle\normalmeaning\nexttoken\endcsname
- \expandafter\lastnamedcs
- \else
- \expandafter\math_unknown_middle
- \fi}
+\def\math_fenced_x_middle
+ {\math_fenced_common\Umiddle\c!middleclass\math_fenced_x_p_middle\c!middlesource}
-\normalexpanded{\installmathfencepair {|\detokenize {|}} \Ldoublebar {|\detokenize {|}} \Rdoublebar}
-\normalexpanded{\installmathfencepair {|\detokenize{||}} \Ltriplebar {|\detokenize{||}} \Rtriplebar}
+% the expandafter permits \left\Uchar...
-\installmathfencepair \bgroup \Lbrace \egroup \Rbrace
-\installmathfencepair \egroup \Rbracemirrored \bgroup \Lbracemirrored
+\protected\def\lfence{\afterassignment\math_fenced_x_left \expandafter\let\expandafter\math_fenced_x_p_left}
+\protected\def\rfence{\afterassignment\math_fenced_x_right \expandafter\let\expandafter\math_fenced_x_p_right}
+\protected\def\mfence{\afterassignment\math_fenced_x_middle\expandafter\let\expandafter\math_fenced_x_p_middle}
-\installmathfencepair \letteropenbrace \Lbrace \letterclosebrace \Rbrace % as we escape in mp textexts
+\aliased\let\left \lfence
+\aliased\let\right \rfence
+\aliased\let\middle\mfence
-\installmathfencepair . \Lnothing . \Rnothing
-\installmathfencepair . \Rnothingmirrored . \Lnothingmirrored
-
-\installmathfencepair [ \Lbracket ] \Rbracket
-\installmathfencepair ] \Rbracketmirrored [ \Lbracketmirrored
-
-\installmathfencepair ( \Lparenthesis ) \Rparenthesis
-\installmathfencepair ) \Rparenthesismirrored ( \Lparenthesismirrored
-
-\installmathfencepair < \Langle > \Rangle
-\installmathfencepair > \Ranglemirrored < \Langlemirrored
-
-\installmathfencepair / \Lsolidus / \Rsolidus
-%installmathfencepair / \Rsolidusmirrored / \Lsolidusmirrored
-
-\installmathfencepair | \Lbar | \Rbar
-%installmathfencepair | \Rbarmirrored | \Lbarmirrored
-
-\installmathfencepair ⌊ \Lfloor ⌋ \Rfloor
-\installmathfencepair ⌋ \Rfloormirrored ⌊ \Lfloormirrored
-\installmathfencepair ⌈ \Lceiling ⌉ \Rceiling
-\installmathfencepair ⌉ \Rceilingmirrored ⌈ \Lceilingmirrored
+\popoverloadmode
-\installmathfencepair ⟨ \Langle ⟩ \Rangle
-\installmathfencepair ⟩ \Ranglemirrored ⟨ \Langlemirrored
+% \let\leftorright\relax
-\installmathfencepair ⟪ \Ldoubleangle ⟫ \Rdoubleangle
-\installmathfencepair ⟫ \Rdoubleanglemirrored ⟪ \Ldoubleanglemirrored
+\newconditional\c_math_fenced_unknown \settrue\c_math_fenced_unknown
-\installmathfencepair ‖ \Ldoublebar ‖ \Rdoublebar
-%installmathfencepair ‖ \Rdoublebarmirrored ‖ \Ldoublebarmirrored
+% \permanent\protected\def\installmathfencepair#1#2#3#4%
+% {\letcsname\??mathleft \normalmeaningless#1\endcsname#2%
+% \letcsname\??mathright\normalmeaningless#3\endcsname#4}
-\installmathfencepair ⦀ \Ltriplebar ⦀ \Rtriplebar
-%installmathfencepair ⦀ \Rtriplebarmirrored ⦀ \Ltriplebarmirrored
+\permanent\protected\def\installmathfencepair#1#2#3#4%
+ {}
-% \installmathfencepair { \Lbrace } \Rbrace
-% \installmathfencepair } \Rbracemirrored { \Lbracemirrored
+% \def\math_unknown_left {\ifconditional\c_math_fenced_unknown\Uleft \nexttoken\fi}
+% \def\math_unknown_right {\ifconditional\c_math_fenced_unknown\Uright \nexttoken\fi}
+% \def\math_unknown_middle{\ifconditional\c_math_fenced_unknown\Umiddle nooverflow \nexttoken\fi}
-\installmathfencepair ⦗ \Linterval ⦘ \Rinterval
+% \def\math_unknown_left
+% {\let\math_fenced_p_left\nexttoken
+% \math_fenced_left}
+%
+% \def\math_unknown_right
+% {\let\math_fenced_p_right\nexttoken
+% \math_fenced_right}
+%
+% \def\math_unknown_middle
+% {\let\math_fenced_p_middle\nexttoken
+% \math_fenced_middle}
+%
+% \letcsname\??mathleft \s!unknown\endcsname\math_unknown_left
+% \letcsname\??mathright \s!unknown\endcsname\math_unknown_right
+% \letcsname\??mathmiddle\s!unknown\endcsname\math_unknown_middle
+%
+% \def\math_left
+% {\ifcsname\??mathleft\normalmeaningless\nexttoken\endcsname
+% \expandafter\lastnamedcs
+% \else
+% \expandafter\math_unknown_left
+% \fi}
+%
+% \def\math_right
+% {\ifcsname\??mathright\normalmeaningless\nexttoken\endcsname
+% \expandafter\lastnamedcs
+% \else
+% \expandafter\math_unknown_right
+% \fi}
+%
+% \def\math_middle
+% {\ifcsname\??mathmiddle\normalmeaningless\nexttoken\endcsname
+% \expandafter\lastnamedcs
+% \else
+% \expandafter\math_unknown_middle
+% \fi}
+%
+% \permanent\protected\def\lfence#1%
+% {\let\nexttoken#1%
+% \ifcsname\??mathleft\normalmeaningless\nexttoken\endcsname
+% \expandafter\lastnamedcs
+% \else
+% \expandafter\math_unknown_left
+% \fi}
+%
+% \permanent\protected\def\rfence#1%
+% {\let\nexttoken#1%
+% \ifcsname\??mathright\normalmeaningless\nexttoken\endcsname
+% \expandafter\lastnamedcs
+% \else
+% \expandafter\math_unknown_right
+% \fi}
+%
+% \permanent\protected\def\mfence#1%
+% {\let\nexttoken#1%
+% \ifcsname\??mathmiddle\normalmeaningless\nexttoken\endcsname
+% \expandafter\lastnamedcs
+% \else
+% \expandafter\math_unknown_middle
+% \fi}
+
+% \normalexpanded{\installmathfencepair {|\detokenize {|}} \Ldoublebar {|\detokenize {|}} \Rdoublebar}
+% \normalexpanded{\installmathfencepair {|\detokenize{||}} \Ltriplebar {|\detokenize{||}} \Rtriplebar}
+%
+% \installmathfencepair \bgroup \Lbrace \egroup \Rbrace
+% \installmathfencepair \egroup \Rbracemirrored \bgroup \Lbracemirrored
+%
+% \installmathfencepair \letteropenbrace \Lbrace \letterclosebrace \Rbrace % as we escape in mp textexts
+%
+% \installmathfencepair . \Lnothing . \Rnothing
+% \installmathfencepair . \Rnothingmirrored . \Lnothingmirrored
+%
+% \installmathfencepair [ \Lbracket ] \Rbracket
+% \installmathfencepair ] \Rbracketmirrored [ \Lbracketmirrored
+%
+% \installmathfencepair ( \Lparenthesis ) \Rparenthesis
+% \installmathfencepair ) \Rparenthesismirrored ( \Lparenthesismirrored
+%
+% \installmathfencepair < \Langle > \Rangle
+% \installmathfencepair > \Ranglemirrored < \Langlemirrored
+%
+% \installmathfencepair / \Lsolidus / \Rsolidus
+% %installmathfencepair / \Rsolidusmirrored / \Lsolidusmirrored
+%
+% \installmathfencepair | \Lbar | \Rbar
+% %installmathfencepair | \Rbarmirrored | \Lbarmirrored
+%
+% \installmathfencepair ⌊ \Lfloor ⌋ \Rfloor
+% \installmathfencepair ⌋ \Rfloormirrored ⌊ \Lfloormirrored
+% \installmathfencepair ⌈ \Lceiling ⌉ \Rceiling
+% \installmathfencepair ⌉ \Rceilingmirrored ⌈ \Lceilingmirrored
+%
+% \installmathfencepair ⟨ \Langle ⟩ \Rangle
+% \installmathfencepair ⟩ \Ranglemirrored ⟨ \Langlemirrored
+%
+% \installmathfencepair ⟪ \Ldoubleangle ⟫ \Rdoubleangle
+% \installmathfencepair ⟫ \Rdoubleanglemirrored ⟪ \Ldoubleanglemirrored
+%
+% \installmathfencepair ‖ \Ldoublebar ‖ \Rdoublebar
+% %installmathfencepair ‖ \Rdoublebarmirrored ‖ \Ldoublebarmirrored
+%
+% \installmathfencepair ⦀ \Ltriplebar ⦀ \Rtriplebar
+% %installmathfencepair ⦀ \Rtriplebarmirrored ⦀ \Ltriplebarmirrored
+%
+% % \installmathfencepair { \Lbrace } \Rbrace
+% % \installmathfencepair } \Rbracemirrored { \Lbracemirrored
+%
+% \installmathfencepair ⦗ \Linterval ⦘ \Rinterval
-\appendtoks
- \ignorediscretionaries % so $\mtext{a|b}$ works, this is ok because it's an \hbox
-\to \everymathematics
+% \appendtoks
+% \ignorediscretionaries % so $\mtext{a|b}$ works, this is ok because it's an \hbox
+% \to \everymathematics
% We unofficial support some synonyms as we need them for some fuzzy web related math.
@@ -537,33 +870,33 @@
\aliased\let\Lparen \Lparenthesis
\aliased\let\Rparen \Rparenthesis
-\installmathfencepair \lbrace \Lbrace \rbrace \Rbrace
-\installmathfencepair \lbracket \Lbracket \rbracket \Rbracket
-\installmathfencepair \lbrack \Lbracket \rbracket \Rbracket
-\installmathfencepair \lparenthesis \Lparenthesis \rparenthesis \Rparenthesis
-\installmathfencepair \lparent \Lparenthesis \rparent \Rparenthesis
-\installmathfencepair \lparen \Lparenthesis \rparen \Rparenthesis
-\installmathfencepair \langle \Langle \rangle \Rangle
-\installmathfencepair \llangle \Ldoubleangle \rrangle \Rdoubleangle
-%installmathfencepair \lbar \Lbar \rbar \Rbar
-\installmathfencepair \lVert \Ldoublebar \rVert \Rdoublebar
-\installmathfencepair \vert \Lbar \vert \Rbar
-\installmathfencepair \solidus \Lsolidus \solidus \Rsolidus
-\installmathfencepair \lfloor \Lfloor \rfloor \Rfloor
-\installmathfencepair \lceiling \Lceiling \rceiling \Rceiling
-\installmathfencepair \lceil \Lceiling \rceil \Rceiling
-
-\installmathfencepair \ulcorner \Luppercorner \urcorner \Ruppercorner
-\installmathfencepair \llcorner \Llowercorner \lrcorner \Rlowercorner
-\installmathfencepair \lmoustache \Lmoustache \rmoustache \Rmoustache
-\installmathfencepair \llbracket \Lopenbracket \rrbracket \Ropenbracket
-\installmathfencepair \lgroup \Lgroup \rgroup \Rgroup
-
-\installmathfencepair \linterval \Linterval \rinterval \Rinterval
-%installmathfencepair \linterv \Linterval \rinterv \Rinterval
-\installmathfencepair \lointerval \Linterval \rointerval \Rinterval
-\installmathfencepair \llointerval \Llointerval \rlointerval \Rlointerval
-\installmathfencepair \lrointerval \Lrointerval \rrointerval \Rrointerval
+% \installmathfencepair \lbrace \Lbrace \rbrace \Rbrace
+% \installmathfencepair \lbracket \Lbracket \rbracket \Rbracket
+% \installmathfencepair \lbrack \Lbracket \rbracket \Rbracket
+% \installmathfencepair \lparenthesis \Lparenthesis \rparenthesis \Rparenthesis
+% \installmathfencepair \lparent \Lparenthesis \rparent \Rparenthesis
+% \installmathfencepair \lparen \Lparenthesis \rparen \Rparenthesis
+% \installmathfencepair \langle \Langle \rangle \Rangle
+% \installmathfencepair \llangle \Ldoubleangle \rrangle \Rdoubleangle
+% %installmathfencepair \lbar \Lbar \rbar \Rbar
+% \installmathfencepair \lVert \Ldoublebar \rVert \Rdoublebar
+% \installmathfencepair \vert \Lbar \vert \Rbar
+% \installmathfencepair \solidus \Lsolidus \solidus \Rsolidus
+% \installmathfencepair \lfloor \Lfloor \rfloor \Rfloor
+% \installmathfencepair \lceiling \Lceiling \rceiling \Rceiling
+% \installmathfencepair \lceil \Lceiling \rceil \Rceiling
+
+% \installmathfencepair \ulcorner \Luppercorner \urcorner \Ruppercorner
+% \installmathfencepair \llcorner \Llowercorner \lrcorner \Rlowercorner
+% \installmathfencepair \lmoustache \Lmoustache \rmoustache \Rmoustache
+% \installmathfencepair \llbracket \Lopenbracket \rrbracket \Ropenbracket
+% \installmathfencepair \lgroup \Lgroup \rgroup \Rgroup
+
+% \installmathfencepair \linterval \Linterval \rinterval \Rinterval
+% %installmathfencepair \linterv \Linterval \rinterv \Rinterval
+% \installmathfencepair \lointerval \Linterval \rointerval \Rinterval
+% \installmathfencepair \llointerval \Llointerval \rlointerval \Rlointerval
+% \installmathfencepair \lrointerval \Lrointerval \rrointerval \Rrointerval
\aliased\let\textlbar\lbar \aliased\let\mathlbar\Lbar
\aliased\let\textrbar\lbar \aliased\let\mathrbar\Rbar
@@ -573,32 +906,37 @@
% \setupmathfences[color=darkgreen]
-\permanent\protected\def\{{\mathortext\lbrace \letterleftbrace } % or maybe a chardef
-\permanent\protected\def\}{\mathortext\rbrace \letterrightbrace } % or maybe a chardef
-\permanent\protected\def\[{\mathortext\lbracket \letterleftbracket } % or maybe a chardef
-\permanent\protected\def\]{\mathortext\rbracket \letterrightbracket } % or maybe a chardef
-\permanent\protected\def\({\mathortext\lparenthesis\letterleftparenthesis } % or maybe a chardef
-\permanent\protected\def\){\mathortext\rparenthesis\letterrightparenthesis} % or maybe a chardef
-\permanent\protected\def\|{\mathortext\vert \letterbar } % or maybe a chardef
-%permanent\protected\def\/{\mathortext\solidus \letterslash } % or maybe a chardef
-
-\installmathfencepair \{ \Lbrace \} \Rbrace
-\installmathfencepair \[ \Lbracket \] \Rbracket
-\installmathfencepair \( \Lparenthesis \) \Rparenthesis
-\installmathfencepair \< \Langle \> \Rangle
-\installmathfencepair \| \Lbar \| \Rbar
+% \permanent\protected\def\{{\mathortext\lbrace \letterleftbrace } % or maybe a chardef
+% \permanent\protected\def\}{\mathortext\rbrace \letterrightbrace } % or maybe a chardef
+% \permanent\protected\def\[{\mathortext\lbracket \letterleftbracket } % or maybe a chardef
+% \permanent\protected\def\]{\mathortext\rbracket \letterrightbracket } % or maybe a chardef
+% \permanent\protected\def\({\mathortext\lparenthesis\letterleftparenthesis } % or maybe a chardef
+% \permanent\protected\def\){\mathortext\rparenthesis\letterrightparenthesis} % or maybe a chardef
+% \permanent\protected\def\|{\mathortext\vert \letterbar } % or maybe a chardef
+% %permanent\protected\def\/{\mathortext\solidus \letterslash } % or maybe a chardef
+%
+% \installmathfencepair \{ \Lbrace \} \Rbrace
+% \installmathfencepair \[ \Lbracket \] \Rbracket
+% \installmathfencepair \( \Lparenthesis \) \Rparenthesis
+% \installmathfencepair \< \Langle \> \Rangle
+% \installmathfencepair \| \Lbar \| \Rbar
+
+% isn't that already the case .. still needed in lua mode ?
+
+\aliased\let\{\letterleftbrace
+\aliased\let\}\letterrightbrace
+\aliased\let\[\letterleftbracket
+\aliased\let\]\letterrightbracket
+\aliased\let\(\letterleftparenthesis
+\aliased\let\)\letterrightparenthesis
+\aliased\let\|\letterbar
+%aliased\let\/\letterslash % italic correction
\popoverloadmode
%D As we have overloaded \type {\left} and \type {\right} we also need a more
%D clever version of the following:
-% methods:
-%
-% 1: none
-% 2: lua
-% 3: tex
-
% variants:
%
% 1: step 1
@@ -606,85 +944,35 @@
% 3: htdp * 1.33^n
% 4: size * 1.33^n
-\setnewconstant\bigmathdelimitermethod \plustwo % \plusone
\setnewconstant\bigmathdelimitervariant\plusthree
\appendtoks
- \bigmathdelimitermethod \mathfenceparameter\c!method\relax
- \bigmathdelimitervariant\mathfenceparameter\c!alternative\relax
+ \bigmathdelimitervariant\mathfenceparameter\c!alternative\relax % controls lua
\to \everysetupmathfence
-\setupmathfence[\c!method=1,\c!alternative=2]
-
-% \protected\def\plainbigdelimiters % traditional method
-% {\bigmathdelimitermethod\plustwo}
-%
-% \plainbigdelimiters % is default for the moment but not so nice
+\setupmathfence[\c!alternative=5] % the rest will probably go
-\installcorenamespace{mathbig}
+\permanent\protected\def\choosemathbig
+ {\mathortext\math_choosemathbig_math\math_choosemathbig_text}
-\setvalue{\??mathbig1}{0.85}
-\setvalue{\??mathbig2}{1.15}
-\setvalue{\??mathbig3}{1.45}
-\setvalue{\??mathbig4}{1.75}
+\protected\def\math_choosemathbig_math#1#2% so we accept \big{||} as well
+ {\math_fenced_force_size\bigmathdelimitervariant{#1}\relax
+ \Uvextensible#2\relax
+ \c_attr_mathsize\attributeunsetvalue}
-\permanent\protected\def\choosemathbig#1#2% so we accept \big{||} as well
- {{\naturalhbox\bgroup
+\protected\def\math_choosemathbig_text#1#2% so we accept \big{||} as well
+ {\naturalhbox\bgroup
\startimath
- \ifcase\bigmathdelimitermethod
- \math_fenced_step#2\relax
- \or
- \math_fenced_force_size\bigmathdelimitervariant{#1}\relax
- \math_fenced_step#2\relax
- \else
- \math_fenced_step#2{\vpack to\csname\??mathbig#1\endcsname\bodyfontsize{}}%
- \fi
- \nulldelimiterspace\zeropoint\relax
+ \math_choosemathbig_math{#1}{#2}%
+ \nulldelimiterspace\zeropoint
\mathsurround\zeropoint
\stopimath
- \egroup}}
-
-% needs testing:
-%
-% \protected\def\choosemathbig#1#2% so we accept \big{||} as well
-% {{\naturalhbox\bgroup
-% \startimath
-% \ifcase\bigmathdelimitermethod
-% \Uvextensible#2\relax
-% \or
-% \math_fenced_force_size\bigmathdelimitervariant{#1}\relax
-% \Uvextensible#2\relax
-% \else
-% \scratchdimen.5\dimexpr\csname\??mathbig\number#1\endcsname\bodyfontsize+1.1\exheight\relax
-% \Uvextensible\s!axis \s!depth \scratchdimen \s!height \scratchdimen #2\relax
-% \fi
-% \nulldelimiterspace\zeropoint\relax
-% \mathsurround\zeropoint
-% \stopimath
-% \egroup}}
-
-\def\math_fenced_step#1#2%
- {\setfalse\c_math_fenced_unknown
- \setfalse\c_math_fenced_done
- \left#1\relax
- \ifconditional\c_math_fenced_done
- #2%
- \right.\relax
- \else
- \left.\relax
- #2%
- \setfalse\c_math_fenced_done
- \right#1\relax
- \ifconditional\c_math_fenced_done
- \else
- \right.\relax
- \fi
- \fi}
+ \egroup}
-\permanent\protected\def\mathdelimiterstep#1#2%
+\permanent\protected\def\mathdelimiterstep#1#2% not used, only in example
{\begingroup
\math_fenced_force_size\plusone{#1}%
- \math_fenced_step#2\relax
+ \Uvextensible#2\relax
\endgroup}
\definemathcommand [big] {\choosemathbig1}
@@ -692,18 +980,18 @@
\definemathcommand [bigg] {\choosemathbig3}
\definemathcommand [Bigg] {\choosemathbig4}
-\definemathcommand [bigl] [open] [one] {\big}
-\definemathcommand [bigm] [rel] [one] {\big}
-\definemathcommand [bigr] [close] [one] {\big}
-\definemathcommand [Bigl] [open] [one] {\Big}
-\definemathcommand [Bigm] [rel] [one] {\Big}
-\definemathcommand [Bigr] [close] [one] {\Big}
-\definemathcommand [biggl] [open] [one] {\bigg}
-\definemathcommand [biggm] [rel] [one] {\bigg}
-\definemathcommand [biggr] [close] [one] {\bigg}
-\definemathcommand [Biggl] [open] [one] {\Bigg}
-\definemathcommand [Biggm] [rel] [one] {\Bigg}
-\definemathcommand [Biggr] [close] [one] {\Bigg}
+\definemathcommand [bigl] [\s!open] [one] {\big}
+\definemathcommand [bigm] [\s!relation] [one] {\big} % why not just middle
+\definemathcommand [bigr] [\s!close] [one] {\big}
+\definemathcommand [Bigl] [\s!open] [one] {\Big}
+\definemathcommand [Bigm] [\s!relation] [one] {\Big}
+\definemathcommand [Bigr] [\s!close] [one] {\Big}
+\definemathcommand [biggl] [\s!open] [one] {\bigg}
+\definemathcommand [biggm] [\s!relation] [one] {\bigg}
+\definemathcommand [biggr] [\s!close] [one] {\bigg}
+\definemathcommand [Biggl] [\s!open] [one] {\Bigg}
+\definemathcommand [Biggm] [\s!relation] [one] {\Bigg}
+\definemathcommand [Biggr] [\s!close] [one] {\Bigg}
% \definemathfence [integral] [\c!left="222B]
%
@@ -718,11 +1006,6 @@
%definemathfence [fancybracket] [bracket] [command=yes,color=red]
-% experimental accents:
-%
-% \definemathoverextensible [top] [hoed] ["FE302]
-% \definemathoverextensible [top] [slang] ["FE303]
-
%D The nested fences recovery code is needed for mathml and the original
%D code can still be found in the mkiv file.
@@ -752,6 +1035,7 @@
\permanent\protected\def\enableautofences
{\clf_enableautofences
+ \setfalse\c_math_fences_auto
\glet\clf_enableautofences\relax % onlyonce anyway
\enforced\permanent\protected\gdef\enableautofences{\settrue\c_math_fences_auto}%
\enableautofences}
@@ -759,38 +1043,45 @@
\permanent\protected\def\disableautofences
{\setfalse\c_math_fences_auto}
-\protected\def\math_fences_used_left
+\permanent\protected\def\math_fences_used_left
{\ifconditional\c_math_fences_auto
\expandafter\math_fences_auto_left
\else
\expandafter\math_fences_normal_left
\fi}
-\protected\def\math_fences_used_right
+\permanent\protected\def\math_fences_used_right
{\ifconditional\c_math_fences_auto
\expandafter\math_fences_auto_right
\else
\expandafter\math_fences_normal_right
\fi}
-\protected\def\math_fences_used_middle
+\permanent\protected\def\math_fences_used_middle
{\ifconditional\c_math_fences_auto
\expandafter\math_fences_auto_middle
\else
\expandafter\math_fences_normal_middle
\fi}
-\protected\def\math_fences_used_both
+\permanent\protected\def\math_fences_used_both
{\ifconditional\c_math_fences_auto
\expandafter\math_fences_auto_both
\else
\expandafter\math_fences_normal_both
\fi}
-\permanent\let\left \math_fences_used_left
-\permanent\let\right \math_fences_used_right
-\permanent\let\middle \math_fences_used_middle
-\permanent\let\leftorright\math_fences_used_both
+\aliased\let\left \math_fences_used_left
+\aliased\let\right \math_fences_used_right
+\aliased\let\middle \math_fences_used_middle
+\aliased\let\leftorright\math_fences_used_both
+
+% \appendtoks
+% \enforced\let\left \math_fences_used_left
+% \enforced\let\right \math_fences_used_right
+% \enforced\let\middle \math_fences_used_middle
+% \enforced\let\leftorright\math_fences_used_both
+% \to \everymathematics
% wrappers
@@ -801,30 +1092,18 @@
\permanent\protected\def\stopcheckedfences
{\endgroup}
-% \appendtoks
- % maybe: safeguard against overloading
- %
- % \let\left \math_fences_used_left
- % \let\right \math_fences_used_right
- % \let\middle \math_fences_used_middle
- % \let\leftorright\math_fences_used_both
-% \to \everymathematics
-
\appendtoks
\ifempty\currentmathfence
- \doifelse{\mathfenceparameter\c!state}\v!auto\enableautofences\disableautofences
+ \ifcstok{\mathfenceparameter\c!state}\v!auto\enableautofences\else\disableautofences\fi
\fi
\to \everysetupmathfence
-\newconstant\c_math_fences_delimiters_mode \c_math_fences_delimiters_mode"16 % \numexpr"02+"04+"10\relax
-
-%permanent\protected\def\enableautofencemode {\mathdelimitersmode\plussix} % the shift (1) is too fragile
-\permanent\protected\def\enableautofencemode {\mathdelimitersmode\c_math_fences_delimiters_mode}
-\permanent\protected\def\disableautofencemode{\mathdelimitersmode\zerocount}
+\permanent\protected\def\enableautofencemode {\mathcheckfencesmode\plusone}
+\permanent\protected\def\disableautofencemode{\mathcheckfencesmode\zerocount}
\appendtoks
\ifempty\currentmathfence
- \doifelse{\mathfenceparameter\c!method}\v!auto\enableautofencemode\disableautofencemode
+ \ifcstok{\mathfenceparameter\c!method}\v!auto\enableautofencemode\else\disableautofencemode\fi
\fi
\to \everysetupmathfence
@@ -833,9 +1112,109 @@
%D The next characters were used for constructing nicer extensibles but
%D nowadays we have real characters.
-\immutable\Umathchardef\braceld\zerocount \defaultmathfamily "FF07A
-\immutable\Umathchardef\bracerd\zerocount \defaultmathfamily "FF07B
-\immutable\Umathchardef\bracelu\zerocount \defaultmathfamily "FF07C
-\immutable\Umathchardef\braceru\zerocount \defaultmathfamily "FF07D
+\immutable\Umathchardef\braceld\zerocount \zerocount "FF07A
+\immutable\Umathchardef\bracerd\zerocount \zerocount "FF07B
+\immutable\Umathchardef\bracelu\zerocount \zerocount "FF07C
+\immutable\Umathchardef\braceru\zerocount \zerocount "FF07D
+
+%D Some tracing:
+
+\definefont[mathindexfont][Mono sa .2]
+
+\def\math_fenced_trace_indeed
+ {%
+ \beginlocalcontrol
+ \registerboxanchor
+ \registeranchorbox
+ \registeredboxanchor
+ \plusone
+ \hbox
+ \s!anchors \boxanchorpresetcode{depth} \boxanchorpresetcode{height}
+ \s!yoffset -.1\exheight
+ \s!target \registeredboxanchor
+ \s!to \zeropoint
+ {\darkblue\hss\mathindexfont\ruledhbox{\number\c_math_fence_nesting}\hss}%
+ \endlocalcontrol
+ \s!source \registeredboxanchor
+ }
+
+% \def\math_fenced_trace_indeed
+% {%
+% \beginlocalcontrol
+% \registerboxanchor
+% \registeranchorbox
+% \registeredboxanchor
+% \plusone
+% \ruledhbox
+% \s!anchors \boxanchorpresetcode{depth} \boxanchorpresetcode{height}
+% \s!yoffset -.1\exheight
+% \s!target \registeredboxanchor
+% \s!to \zeropoint
+% {\darkblue\hss\mathindexfont\ruledhbox{\number\c_math_fence_nesting B}\hss}%
+% \registeranchorbox
+% \registeredboxanchor
+% \plusone
+% \ruledhbox
+% \s!anchors \boxanchorpresetcode{height} \boxanchorpresetcode{depth}
+% \s!yoffset .1\exheight
+% \s!target \registeredboxanchor
+% \s!to \zeropoint
+% {\darkgreen\hss\mathindexfont\ruledhbox{\number\c_math_fence_nesting T}\hss}%
+% \registeranchorbox
+% \registeredboxanchor
+% \plusone
+% \ruledhbox
+% \s!anchors \boxanchorpresetcode{left} \boxanchorpresetcode{right}
+% \s!xoffset -.1\emwidth
+% \s!target \registeredboxanchor
+% \s!to \zeropoint
+% {\darkred\hss\mathindexfont\ruledhbox{\number\c_math_fence_nesting L}}%
+% \registeranchorbox
+% \registeredboxanchor
+% \plusone
+% \ruledhbox
+% \s!anchors \boxanchorpresetcode{right} \boxanchorpresetcode{left}
+% \s!xoffset .1\emwidth
+% \s!target \registeredboxanchor
+% \s!to \zeropoint
+% {\darkyellow\mathindexfont\ruledhbox{\number\c_math_fence_nesting R}\hss}%
+% \endlocalcontrol
+% \s!source \registeredboxanchor
+% }
+
+\installtextracker
+ {math.fencenesting}
+ {\let\math_fenced_trace\math_fenced_trace_indeed}
+ {\let\math_fenced_trace\donothing}
+
+\appendtoks
+ \integerdef\c_math_fence_level\minusone
+ \c_math_fence_nesting\zerocount
+\to \everymathematics
+
+%D Experiment:
+
+\permanent\protected\def\autofences
+ {\setmathoptions\mathopencode\numexpression
+ \setmathoptions\mathopencode bor \autoinjectclassoptioncode
+ \relax
+ \setmathoptions\mathclosecode\numexpression
+ \setmathoptions\mathclosecode bor \autoinjectclassoptioncode
+ \relax
+ \setmathoptions\mathmiddlecode\numexpression
+ \setmathoptions\mathmiddlecode bor \autoinjectclassoptioncode
+ \relax}
+
+%D New (to be completed):
+
+% $x + \tupdownarrows{left}{right} + x$
+% $x + \tdownuparrows{left}{right} + x$
+% $x + \tupanddownarrows[color=red,leftcolor=green,rightcolor=blue]{left}{right} + x$
+
+\definemathfence [tupanddownarrows] [\v!text] [\c!left="2191,\c!right="2193]
+\definemathfence [tupdownarrows] [\v!text] [\c!left="21C5,\c!right=0]
+\definemathfence [tdownuparrows] [\v!text] [\c!middle="21F5]
+\definemathfence [tuparrow] [\v!text] [\c!middle="2191]
+\definemathfence [tdownarrow] [\v!text] [\c!middle="2193]
\protect
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-fnt.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-fnt.lmt
new file mode 100644
index 00000000000..911e0adb520
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-fnt.lmt
@@ -0,0 +1,151 @@
+if not modules then modules = { } end modules ['math-fnt'] = {
+ version = 1.001,
+ comment = "companion to math-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local round = math.round
+local setmetatableindex = table.setmetatableindex
+
+local nuts = nodes.nuts
+local tonut = nodes.tonut
+local tonode = nodes.tonode
+local nodepool = nuts.pool
+
+local vlist_code = nodes.nodecodes.vlist
+
+local new_hlist = nodepool.hlist
+local new_vlist = nodepool.vlist
+----- new_glyph = nodepool.glyph
+local new_glyph = nuts.newmathglyph
+
+local getattrlst = nuts.getattributelist
+local setattrlst = nuts.setattributelist
+local setwhd = nuts.setwhd
+local getwhd = nuts.getwhd
+local getid = nuts.getid
+
+local chardata = fonts.hashes.characters
+local addcharacters = font.addcharacters
+
+-- not yet ok for compact fonts .. needs checking .. or just make this non-compact only
+-- there's also an inaccuracy creeping in: \sqrt{\quad\blackrule[height=25pt,depth=25pt]}
+
+local cache = setmetatableindex(function(t,width)
+ local v = setmetatableindex(function(t,height)
+ local v = setmetatableindex(function(t,depth)
+ local v = setmetatableindex(function(t,font)
+ local v = setmetatableindex(function(t,char)
+ t[char] = v
+ return v
+ end)
+ t[font] = v
+ return v
+ end)
+ t[depth] = v
+ return v
+ end)
+ t[height] = v
+ return v
+ end)
+ t[width] = v
+ return v
+end)
+
+local function register_extensible(font,char,style,box)
+ -- We don't share (yet)!
+ local fontdata = chardata[font]
+ local oldchar = fontdata[char]
+ if oldchar and oldchar.keepvirtual then
+ -- for now, needed for iwona etc
+ return nil
+ else
+ local bx = tonut(box)
+ updaters.apply("tagging.state.disable") -- fast enough
+ nodes.handlers.finalizelist(bx)
+ updaters.apply("tagging.state.enable")
+ local id = getid(bx)
+ local al = getattrlst(bx)
+ local wd, ht, dp = getwhd(bx)
+ local unicode = oldchar.unicode or char
+ -- we cannot have self referencing t3 fonts
+ local oldcommands = oldchar.oldcommands
+ local newcommands = oldchar.commands
+ if oldcommands then
+ oldchar.commands = oldcommands
+ end
+ --
+ local p = fonts.hashes.parameters[font]
+ local sx = round(1000/p.extendfactor)
+ local sy = round(1000/p.squeezefactor)
+ -- we saved a scaled glyph stream so we now use an unscaled one ... horrible hack:
+ if sx ~= 1000 then
+ wd = wd * 7200/7227
+ end
+ if sy ~= 1000 then
+ ht = ht * 7200/7227
+ dp = dp * 7200/7227
+ end
+ --
+ -- local private = fonts.helpers.setboxdirectly(font,unicode,box)
+ local private = cache[wd][ht][dp][font][unicode]
+ if not private then
+ private = fonts.helpers.setboxdirectly(font,unicode,box)
+ cache[wd][ht][dp][font][unicode] = private
+ end
+ local glyph = new_glyph(font,private,al)
+ nuts.setscales(glyph,1000,sx,sy)
+ --
+ -- if fonts.hashes.properties[font].compactmath then
+ -- nuts.setscales(g,1000,1000,1000)
+ -- end
+ --
+ -- nasty, testcase: bold math sqrt extensible
+ --
+ local n = new_hlist(glyph)
+ --
+ if newcommands then
+ oldchar.commands = newcommands
+ end
+ --
+ -- local newchar = {
+ -- unicode = unicode,
+ -- width = wd,
+ -- height = ht,
+ -- depth = dp,
+ -- }
+ -- local p = oldchar.vparts
+ -- if p then
+ -- local first = fontdata[p[#p].glyph]
+ -- local last = fontdata[p[ 1].glyph]
+ -- if first then
+ -- newchar.topleft = first.topleft
+ -- newchar.topright = first.topright
+ -- end
+ -- if last then
+ -- newchar.bottomleft = last.bottomleft
+ -- newchar.bottomright = last.bottomright
+ -- end
+ -- end
+ -- addcharacters(font, { [private] = newchar })
+ -- so the dimensions of the box don't match the glyph scale!
+ setwhd(n,wd,ht,dp)
+ setattrlst(n,al)
+ if id == vlist_code then
+ n = new_vlist(n)
+ setwhd(n,wd,ht,dp)
+ setattrlst(n,al)
+ end
+ return tonode(n)
+ end
+end
+
+directives.register("math.extensibles", function(v)
+ callback.register("register_extensible", v and register_extensible or nil)
+end)
+
+-- Default per 2022-08-25
+
+callback.register("register_extensible", register_extensible)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-frc.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-frc.lmt
new file mode 100644
index 00000000000..c2ae2fbd5e4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-frc.lmt
@@ -0,0 +1,74 @@
+if not modules then modules = { } end modules ['math-frc'] = {
+ version = 1.001,
+ comment = "companion to math-frc.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- obsolete
+--
+-- \def\math_frac_command_u
+-- {\clf_umathfraction % we can get this bakc to the tex end
+-- {\mathfractionparameter\c!rule}%
+-- \ifempty\p_math_fraction_fences
+-- \mathfractionparameter\c!left \space
+-- \mathfractionparameter\c!right\space
+-- \else
+-- \math_frac_no_delim\space
+-- \math_frac_no_delim\space
+-- \fi
+-- \dimexpr\mathfractionparameter\c!rulethickness\relax
+-- {\number\namedboxanchor{\mathfractionparameter\c!source}}%
+-- \relax}
+--
+-- local utfchar = utf.char
+--
+-- local context = context
+-- local variables = interfaces.variables
+--
+-- local v_no = variables.no
+-- local v_yes = variables.yes
+-- local v_hidden = variables.hidden
+--
+-- local resolved = {
+-- [0x007B] = "\\{",
+-- [0x007D] = "\\}",
+-- }
+--
+-- table.setmetatableindex(resolved, function(t,k)
+-- local v = utfchar(k)
+-- t[k] = v
+-- return v
+-- end)
+--
+-- local function umathfraction(how,left,right,width,source)
+-- source = tonumber(source) or 0
+-- if how == v_no then
+-- if left == 0x002E and right == 0x002E then
+-- context("\\Uatop source %i ",source)
+-- else
+-- context("\\Uatopwithdelims %s%s source %i ",resolved[left],resolved[right],source)
+-- end
+-- elseif how == v_yes or how == v_hidden then
+-- local norule = how == v_hidden and "norule" or ""
+-- if left == 0x002E and right == 0x002E then
+-- context("\\Uabove source %i %s %ssp",source,norule,width)
+-- else
+-- context("\\Uabovewithdelims %s%s source %i %s %ssp",resolved[left],resolved[right],source,norule,width)
+-- end
+-- else -- v_auto
+-- if left == 0x002E and right == 0x002E then
+-- context("\\Uover source %i ",source)
+-- else
+-- context("\\Uoverwithdelims %s%s source %i ",resolved[left],resolved[right],source)
+-- end
+-- end
+-- end
+--
+-- interfaces.implement {
+-- name = "umathfraction",
+-- actions = umathfraction,
+-- protected = true,
+-- arguments = { "string", "number", "number", "dimen", "string" }
+-- }
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-frc.mkxl b/Master/texmf-dist/tex/context/base/mkxl/math-frc.mkxl
index 8295195b5d6..47edc52c411 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-frc.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-frc.mkxl
@@ -11,31 +11,23 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+% todo : mathclass=\mathnothingcode, % todo also accept string
+
\writestatus{loading}{ConTeXt Math Macros / Fractions}
\unprotect
-%D I need to check it all again as there was a bug in luatex with dimensions that could
-%D resulted in side effects that made me mess with spacing.
-
-\permanent\protected\def\topstrut{\vrule\s!width\zeropoint\s!height\strutht\s!depth\zeropoint\relax}
-\permanent\protected\def\botstrut{\vrule\s!width\zeropoint\s!height\zeropoint\s!depth\strutdp\relax}
-
-\permanent\protected\def\mathtopstrut{\setbox\scratchbox\mathstylehbox{(}\vrule\s!width\zeropoint\s!height\ht\scratchbox\s!depth\zeropoint\relax}
-\permanent\protected\def\mathbotstrut{\setbox\scratchbox\mathstylehbox{(}\vrule\s!width\zeropoint\s!height\zeropoint\s!depth\dp\scratchbox\relax}
-
%D This module is reimplemented in \MKIV\ style.
-\registerctxluafile{math-frc}{}
+\registerctxluafile{math-frc}{autosuffix}
%D \macros
%D {frac, xfrac, xxfrac}
%D
-%D This is another one Tobias asked for. It replaces the primitive \type
-%D {\over}. We also take the opportunity to handle math style restoring,
-%D which makes sure units and chemicals come out ok. The \type {\frac}
-%D macro kind of replaces the awkward \type {\over} primitive. Say that
-%D we have the following formulas:
+%D This is another one Tobias asked for. It replaces the primitive \type {\over}. We
+%D also take the opportunity to handle math style restoring, which makes sure units
+%D and chemicals come out ok. The \type {\frac} macro kind of replaces the awkward
+%D \type {\over} primitive. Say that we have the following formulas:
%D
%D \startbuffer[sample]
%D test $\frac {1}{2}$ test $$1 + \frac {1}{2} = 1.5$$
@@ -78,23 +70,8 @@
%D So we stick to the next definitions (watch the local overloading of
%D \type {\xfrac}).
%D
-%D In the meantime, in \LUATEX, we have better control over styles so the
-%D following macros are different from the \MKII\ ones.
-
-% obsolete, is now c!mathstyle
-%
-% 0=auto, 1=displaystyle, 2=textstyle, 3=scriptstyle, 4=scriptscriptstyle, 5=mathstyle
-%
-% $\mathfracmode0 \frac{1}{2}$
-% $\mathfracmode1 \frac{1}{2}$
-% $\mathfracmode2 \frac{1}{2}$
-% $\mathfracmode3 \frac{1}{2}$
-% $\mathfracmode4 \frac{1}{2}$
-% $\mathfracmode5 \frac{1}{2}$
-%
-% we keep the constant for a while
-
-\setnewconstant\mathfracmode\zerocount
+%D In the meantime, in \LUATEX, we have better control over styles so the following
+%D macros are different from the \MKII\ ones.
\installcorenamespace{mathfractions}
\installcorenamespace{mathfractionstyle}
@@ -108,14 +85,23 @@
\setupmathfractions
[\c!mathstyle=,
+ \c!method=\v!vertical,
+ \c!mathnumeratorstyle=\mathfractionparameter\c!mathstyle,
+ \c!mathdenominatorstyle=\mathfractionparameter\c!mathstyle,
+ \c!mathclass=\mathfractioncode,
\c!alternative=\v!inner,
\c!margin=\zeropoint,
- \c!rulethickness=.25\exheight,
- \c!left=0x2E,
- \c!right=0x2E,
+ % \c!rulethickness=.1\exheight, % was .25 for above / atop
+ \c!rulethickness=\v!font,
+ \c!left="2E,
+ \c!right="2E,
+ \c!middle="2F,
\c!strut=\v!yes,
\c!topdistance=,
\c!bottomdistance=,
+ \c!source=\zerocount,
+ \c!hfactor=\plusthousand,
+ \c!vfactor=\plusthousand,
\c!rule=\v!auto]
\appendtoks
@@ -130,7 +116,7 @@
\math_fraction_set_distance
\to \everymathematics
-% why only displaystyle .. a bit weak
+% why only displaystyle .. a bit weak .. will become a set
\protected\def\math_fraction_set_distance_top
{\Umathfractionnumup \displaystyle\m_math_fraction_distance_top
@@ -167,42 +153,72 @@
% So far for control.
+% no : \ruledhbox{\m{\frac[strut=no] {28}{8\times29}}} \par
+% tight : \ruledhbox{\m{\frac[strut=tight]{28}{8\times29}}} \par
+% yes : \ruledhbox{\m{\frac[strut=yes] {28}{8\times29}}} \par
+% math : \ruledhbox{\m{\frac[strut=math] {28}{8\times29}}} \par
+% text : \ruledhbox{\m{\frac[strut=text] {28}{8\times29}}} \par
+
\installcorenamespace{mathfractionstrut}
\def\math_frac_no_strut
{\enforced\let\m_fractions_strut_top\relax
\enforced\let\m_fractions_strut_bot\relax}
-\setvalue{\??mathfractionstrut\v!yes}%
+\defcsname\??mathfractionstrut\v!yes\endcsname
{\enforced\let\m_fractions_strut_top\mathstrut
\enforced\let\m_fractions_strut_bot\mathstrut}
-\setvalue{\??mathfractionstrut\v!math}%
+\defcsname\??mathfractionstrut\v!math\endcsname
{\enforced\let\m_fractions_strut_top\mathstrut
\enforced\let\m_fractions_strut_bot\mathstrut}
-\letvalue{\??mathfractionstrut\v!no}\math_frac_no_strut
+\letcsname\??mathfractionstrut\v!no\endcsname\math_frac_no_strut
-\setvalue{\??mathfractionstrut\v!tight}%
- {\enforced\let\m_fractions_strut_top\mathbotstrut % indeed swapped name
- \enforced\let\m_fractions_strut_bot\mathtopstrut} % indeed swapped name
+\defcsname\??mathfractionstrut\v!tight\endcsname
+ {\enforced\let\m_fractions_strut_top\mathdepthstrut
+ \enforced\let\m_fractions_strut_bot\mathheightstrut}
+
+\defcsname\??mathfractionstrut\v!text\endcsname
+ {\enforced\let\m_fractions_strut_top\strut
+ \enforced\let\m_fractions_strut_bot\strut}
\math_frac_no_strut
-\newdimen\d_math_fraction_margin
+\newdimension\d_math_fraction_margin
+
+\def\math_fraction_margin_kern_indeed{\kern\d_math_fraction_margin}
+
+\let\math_fraction_margin_kern\relax
-\protected\def\math_frac#1%
- {\begingroup
- \edef\currentmathfraction{#1}%
+%D \starttyping
+%D $\Uover{2}{3} ^4$ % double script error but no longer because we use the prescripts
+%D ${\over{2}{3}}^4$ % no issue anyway because we wrap in {} (goes unnoticed)
+%D $\frac {2}{3} ^4$ % we wrap in \mathfrac so we can also use prescripts
+%D \stoptyping
+
+\installlocalcurrenthandler\??mathfractions {mathfraction}
+
+\tolerant\protected\def\math_frac#1#*[#2]%%
+ {\beginmathgroup
+ %
+ \setlocalmathfractioncurrent{#1}% \edef\currentmathfraction{#1}%
+ %
+ \ifparameter#2\or\setupcurrentmathfraction[#2]\fi
%
\edef\p_math_fraction_fences{\mathfractionparameter\c!fences}%
+ %
+ \math_atom_by_parameter\mathfractionparameter\bgroup
\ifempty\p_math_fraction_fences \else
\math_fenced_fenced_start\p_math_fraction_fences
\fi
%
- \d_math_fraction_margin\mathfractionparameter\c!margin
- %
- \edef\p_math_fractions_color{\mathfractionparameter\c!color}%
+ \d_math_fraction_margin\mathfractionparameter\c!margin\relax
+ \ifcase\d_math_fraction_margin
+ \let\math_fraction_margin_kern\relax
+ \else
+ \let\math_fraction_margin_kern\math_fraction_margin_kern_indeed
+ \fi
%
\edef\p_math_fractions_strut{\mathfractionparameter\c!strut}%
\ifcsname\??mathfractionstrut\p_math_fractions_strut\endcsname
@@ -211,231 +227,175 @@
\math_frac_no_strut
\fi
%
- \ifempty\p_math_fractions_color
- \expandafter\math_frac_normal
- \else
- \expandafter\math_frac_colored
- \fi}
+ \expandnamespaceparameter\??mathfractionalternative\mathfractionparameter\c!alternative\v!inner}
\protected\def\math_frac_wrapup
{\ifempty\p_math_fraction_fences \else
\math_fenced_fenced_stop\p_math_fraction_fences
\fi
- \endgroup}
-
-\protected\def\math_frac_colored#1#2%
- {\savecolor
- \colo_helpers_activate\p_math_fractions_color
- \math_frac_normal{\restorecolor#1}{\restorecolor#2}}
-
-\protected\def\math_frac_normal
- {\expandnamespaceparameter\??mathfractionalternative\mathfractionparameter\c!alternative\v!inner}
-
-% we use utfchar anyway so we can as well do all at the lua end
-
-\def\math_frac_no_delim{0x2E}
-
-\def\math_frac_command
- {\clf_mathfraction
- {\mathfractionparameter\c!rule}%
- \ifempty\p_math_fraction_fences
- \mathfractionparameter\c!left \space
- \mathfractionparameter\c!right\space
- \else
- \math_frac_no_delim\space
- \math_frac_no_delim\space
- \fi
- \dimexpr\mathfractionparameter\c!rulethickness\relax
- \relax}
+ \egroup
+ \endmathgroup}
+
+\integerdef\math_frac_no_delim "2E % or just \zerocount
% Having a \withmarginornot{#1}{#2} makes not much sense nor do 4 tests or 4 redundant
% kerns (longer node lists plus possible interference). A split in normal and margin
% also makes testing easier. When left and right margins are needed we might merge the
% variants again. After all, these are not real installers.
-
-% the denominator is in cramped!
-
-\setvalue{\??mathfractionalternative\v!inner}%
- {\ifcase\d_math_fraction_margin
- \expandafter\math_fraction_inner_normal
- \else
- \expandafter\math_fraction_inner_margin
- \fi}
-
-\setvalue{\??mathfractionalternative\v!outer}%
- {\ifcase\d_math_fraction_margin
- \expandafter\math_fraction_outer_normal
- \else
- \expandafter\math_fraction_outer_margin
- \fi}
-
-\setvalue{\??mathfractionalternative\v!both}%
- {\ifcase\d_math_fraction_margin
- \expandafter\math_fraction_both_normal
- \else
- \expandafter\math_fraction_both_margin
- \fi}
-
-% todo: store first state and reuse second time
-
-% \def\math_fraction_inner_normal#1#2%
-% {\Ustack{%
-% {%
-% {\usemathstyleparameter\mathfractionparameter{\m_fractions_strut_top#1}}%
-% \math_frac_command
-% {\usemathstyleparameter\mathfractionparameter{\m_fractions_strut_bot#2}}%
-% }%
-% }%
-% \math_frac_wrapup}
-%
-% \def\math_fraction_outer_normal#1#2%
-% {\Ustack{%
-% \usemathstyleparameter\mathfractionparameter
-% {%
-% {\m_fractions_strut_top#1}%
-% \math_frac_command
-% {\m_fractions_strut_bot#2}%
-% }%
-% }%
-% \math_frac_wrapup}
-%
-% \def\math_fraction_both_normal#1#2%
-% {\Ustack{%
-% \usemathstyleparameter\mathfractionparameter
-% {%
-% {\usemathstyleparameter\mathfractionparameter\m_fractions_strut_top#1}%
-% \math_frac_command
-% {\usemathstyleparameter\mathfractionparameter\m_fractions_strut_bot#2}%
-% }%
-% }%
-% \math_frac_wrapup}
%
-% \def\math_fraction_inner_margin#1#2%
-% {\Ustack{%
-% {%
-% {\kern\d_math_fraction_margin
-% \usemathstyleparameter\mathfractionparameter{\m_fractions_strut_top#1}%
-% \kern\d_math_fraction_margin}%
-% \math_frac_command
-% {\kern\d_math_fraction_margin
-% \usemathstyleparameter\mathfractionparameter{\m_fractions_strut_bot#2}%
-% \kern\d_math_fraction_margin}%
-% }%
-% }%
-% \math_frac_wrapup}
+% The denominator is normally in cramped mode!
%
-% \def\math_fraction_outer_margin#1#2%
-% {\Ustack{%
-% \usemathstyleparameter\mathfractionparameter
-% {%
-% {\kern\d_math_fraction_margin
-% \m_fractions_strut_top#1%
-% \kern\d_math_fraction_margin}%
-% \math_frac_command
-% {\kern\d_math_fraction_margin
-% \m_fractions_strut_bot#2%
-% \kern\d_math_fraction_margin}%
-% }%
-% }%
-% \math_frac_wrapup}
-%
-% \def\math_fraction_both_margin#1#2%
-% {\Ustack{%
-% \usemathstyleparameter\mathfractionparameter
-% {%
-% {\kern\d_math_fraction_margin
-% \usemathstyleparameter\mathfractionparameter\m_fractions_strut_top#1%
-% \kern\d_math_fraction_margin}%
-% \math_frac_command
-% {\kern\d_math_fraction_margin
-% \usemathstyleparameter\mathfractionparameter\m_fractions_strut_bot#2%
-% \kern\d_math_fraction_margin}%
-% }%
-% }%
-% \math_frac_wrapup}
+% See \MKIV\ for the old (more messy) implementation where we have to fight the over
+% related syntax (we now use a lmtx primitive).
+
+% timestamp: 01/2022 : (re)watching eNerd⁴ - Time Capsule 2020 a.k.a. Farewell Party
+% for Normalcy (UHD) with the soekris/neumanns combination
+
+\installcorenamespace{fractionmethods}
+
+\defcsname\??fractionmethods\v!vertical \v!no \v!none\endcsname{\Uatop}
+\defcsname\??fractionmethods\v!vertical \v!no \endcsname{\Uatopwithdelims
+ \Udelimiter\zerocount\fam\scratchcounterone
+ \Udelimiter\zerocount\fam\scratchcountertwo}
+\defcsname\??fractionmethods\v!vertical \v!yes \v!none\endcsname{\Uabove}
+\defcsname\??fractionmethods\v!vertical \v!yes \endcsname{\Uabovewithdelims
+ \Udelimiter\zerocount\fam\scratchcounterone
+ \Udelimiter\zerocount\fam\scratchcountertwo}
+\defcsname\??fractionmethods\v!vertical \v!hidden \v!none\endcsname{\Uabove}
+\defcsname\??fractionmethods\v!vertical \v!hidden \endcsname{\Uabovewithdelims
+ \Udelimiter\zerocount\fam\scratchcounterone
+ \Udelimiter\zerocount\fam\scratchcountertwo}
+\defcsname\??fractionmethods\v!vertical \v!auto \v!none\endcsname{\Uover}
+\defcsname\??fractionmethods\v!vertical \v!auto \endcsname{\Uoverwithdelims
+ \Udelimiter\zerocount\fam\scratchcounterone
+ \Udelimiter\zerocount\fam\scratchcountertwo}
+\defcsname\??fractionmethods\v!vertical \v!symbol \v!none\endcsname{\Ustretched
+ \Udelimiter\zerocount\fam\scratchcounterthree}
+\defcsname\??fractionmethods\v!vertical \v!symbol \endcsname{\Ustretchedwithdelims
+ \Udelimiter\zerocount\fam\scratchcounterone
+ \Udelimiter\zerocount\fam\scratchcountertwo
+ \Udelimiter\zerocount\fam\scratchcounterthree}
+\defcsname\??fractionmethods\v!horizontal \v!none\endcsname{\Uskewed
+ \Udelimiter\zerocount\fam\scratchcounterthree
+ \s!hfactor \numexpr\mathfractionparameter\c!hfactor\relax}
+\defcsname\??fractionmethods\v!horizontal \endcsname{\Uskewedwithdelims
+ \Udelimiter\zerocount\fam\scratchcounterone
+ \Udelimiter\zerocount\fam\scratchcountertwo
+ \Udelimiter\zerocount\fam\scratchcounterthree
+ \s!hfactor \numexpr\mathfractionparameter\c!hfactor\relax}
+\defcsname\??fractionmethods\v!line \v!none\endcsname{\Uskewed
+ \Udelimiter\zerocount\fam\scratchcounterthree
+ \s!noaxis \space
+ \s!hfactor \numexpr\mathfractionparameter\c!hfactor\relax}
+\defcsname\??fractionmethods\v!line \endcsname{\Uskewedwithdelims
+ \Udelimiter\zerocount\fam\scratchcounterone
+ \Udelimiter\zerocount\fam\scratchcountertwo
+ \Udelimiter\zerocount\fam\scratchcounterthree
+ \s!noaxis \space
+ \s!hfactor \numexpr\mathfractionparameter\c!hfactor\relax}
+
+\setupmathfractions % we now inherit !
+ [\c!topcolor=\mathfractionparameter\c!color,
+ \c!bottomcolor=\mathfractionparameter\c!color,
+ \c!rulecolor=\mathfractionparameter\c!color]
\def\math_frac_command_u
- {\clf_umathfraction
- {\mathfractionparameter\c!rule}%
- \ifempty\p_math_fraction_fences
- \mathfractionparameter\c!left \space
- \mathfractionparameter\c!right\space
- \else
- \math_frac_no_delim\space
- \math_frac_no_delim\space
- \fi
- \dimexpr\mathfractionparameter\c!rulethickness\relax
- \relax}
-
-\def\math_fraction_inner_normal#1#2%
- {\Ustack{% forces num style
- \math_frac_command_u
- {\usemathstyleparameter\mathfractionparameter{\m_fractions_strut_top#1}}%
- {\usemathstyleparameter\mathfractionparameter{\m_fractions_strut_bot#2}}%
- }%
- \math_frac_wrapup}
-
-\def\math_fraction_outer_normal#1#2%
- {\Ustack{% forces num style
- \usemathstyleparameter\mathfractionparameter
- \math_frac_command_u
- {\m_fractions_strut_top#1}%
- {\m_fractions_strut_bot#2}%
- }%
- \math_frac_wrapup}
-
-\def\math_fraction_both_normal#1#2%
- {\Ustack{% forces num style
- \usemathstyleparameter\mathfractionparameter
- \math_frac_command_u
- {\usemathstyleparameter\mathfractionparameter\m_fractions_strut_top#1}%
- {\usemathstyleparameter\mathfractionparameter\m_fractions_strut_bot#2}%
- }%
+ {\edef\p_method {\mathfractionparameter\c!method}%
+ \edef\p_rule {\mathfractionparameter\c!rule}%
+ \edef\p_thickness{\mathfractionparameter\c!rulethickness}%
+ \scratchcounterone \mathfractionparameter\c!left \relax
+ \scratchcountertwo \mathfractionparameter\c!right \relax
+ \scratchcounterthree \mathfractionparameter\c!middle \relax
+ \ifcsname
+ \??fractionmethods
+ \p_method
+ \ifx\p_method\v!horizontal
+ \orelse\ifx\p_method\v!line
+ \orelse\ifcsname\??fractionmethods\p_method\p_rule\endcsname
+ \p_rule
+ \else
+ \v!auto
+ \fi
+ \ifnum\scratchcounterone=\math_frac_no_delim
+ \ifnum\scratchcountertwo=\math_frac_no_delim
+ \v!none
+ \fi
+ \fi
+ \endcsname \lastnamedcs \else \csname\??fractionmethods\v!vertical\v!auto\endcsname \fi
+ \usedcolorparameterattributes{\mathfractionparameter\c!rulecolor}% was \c!color so we break compatibility !
+ thickness \ifx\p_thickness\v!font
+ \zeropoint
+ \s!font \space
+ \else
+ \dimexpr\p_thickness\relax
+ \fi
+ \s!class \math_class_by_parameter\mathfractionparameter\c!mathclass
+ \s!vfactor \numexpr\mathfractionparameter\c!vfactor\relax
+ \s!source \number\namedboxanchor{\mathfractionparameter\c!source}}
+
+\installcorenamespace{mathalignsimple} % this should move to math-ali
+
+\defcsname\??mathalignsimple\v!right \endcsname#1{#1\hfill}
+\defcsname\??mathalignsimple\v!flushleft \endcsname#1{#1\hfill}
+\defcsname\??mathalignsimple\v!left \endcsname#1{\hfill#1}
+\defcsname\??mathalignsimple\v!flushright\endcsname#1{\hfill#1}
+\defcsname\??mathalignsimple\v!middle \endcsname#1{\hfill#1\hfill}
+
+\protected\def\math_frac_aligned_top{\begincsname\??mathalignsimple\mathfractionparameter\c!topalign \endcsname}
+\protected\def\math_frac_aligned_bot{\begincsname\??mathalignsimple\mathfractionparameter\c!bottomalign\endcsname}
+
+% \protected\def\math_frac_aligned_top{\begincsname\??mathalignsimple\mathfractionparameter\c!align\endcsname}
+% \protected\def\math_frac_aligned_bot{\begincsname\??mathalignsimple\mathfractionparameter\c!align\endcsname}
+
+\protected\defcsname\??mathfractionalternative\v!inner\endcsname#1#2%
+ {%\beginmathgroup
+ \math_frac_command_u
+ {\dousecolorparameter{\mathfractionparameter\c!topcolor}%
+ \math_fraction_margin_kern
+ \usemathstyleparameter\mathfractionparameter\c!mathnumeratorstyle
+ \m_fractions_strut_top\math_frac_aligned_top{#1}%
+ \math_fraction_margin_kern}%
+ {\dousecolorparameter{\mathfractionparameter\c!bottomcolor}%
+ \math_fraction_margin_kern
+ \usemathstyleparameter\mathfractionparameter\c!mathdenominatorstyle
+ \m_fractions_strut_bot\math_frac_aligned_bot{#2}%
+ \math_fraction_margin_kern}%
+ %\endmathgroup
\math_frac_wrapup}
-\def\math_fraction_inner_margin#1#2%
- {\Ustack{%
- {%
- \math_frac_command_u
- {\kern\d_math_fraction_margin
- \usemathstyleparameter\mathfractionparameter{\m_fractions_strut_top#1}%
- \kern\d_math_fraction_margin}%
- {\kern\d_math_fraction_margin
- \usemathstyleparameter\mathfractionparameter{\m_fractions_strut_bot#2}%
- \kern\d_math_fraction_margin}%
- }%
- }%
+\protected\defcsname\??mathfractionalternative\v!outer\endcsname#1#2%
+ {\beginmathgroup
+ \usemathstyleparameter\mathfractionparameter\c!mathstyle
+ \math_frac_command_u
+ {\dousecolorparameter{\mathfractionparameter\c!topcolor}%
+ \math_fraction_margin_kern
+ \m_fractions_strut_top\math_frac_aligned_top{#1}%
+ \math_fraction_margin_kern}%
+ {\dousecolorparameter{\mathfractionparameter\c!bottomcolor}%
+ \math_fraction_margin_kern
+ \m_fractions_strut_bot\math_frac_aligned_bot{#2}%
+ \math_fraction_margin_kern}%
+ \endmathgroup
\math_frac_wrapup}
-\def\math_fraction_outer_margin#1#2%
- {\Ustack{%
- \usemathstyleparameter\mathfractionparameter
- {%
- \math_frac_command_u
- {\kern\d_math_fraction_margin
- \m_fractions_strut_top#1%
- \kern\d_math_fraction_margin}%
- {\kern\d_math_fraction_margin
- \m_fractions_strut_bot#2%
- \kern\d_math_fraction_margin}%
- }%
- }%
+\protected\defcsname\??mathfractionalternative\v!both\endcsname#1#2%
+ {\beginmathgroup
+ \usemathstyleparameter\mathfractionparameter\c!mathstyle
+ \math_frac_command_u
+ {\dousecolorparameter{\mathfractionparameter\c!topcolor}%
+ \math_fraction_margin_kern
+ \usemathstyleparameter\mathfractionparameter\c!mathnumeratorstyle
+ \m_fractions_strut_top\math_frac_aligned_top{#1}%
+ \math_fraction_margin_kern}%
+ {\dousecolorparameter{\mathfractionparameter\c!bottomcolor}%
+ \math_fraction_margin_kern
+ \usemathstyleparameter\mathfractionparameter\c!mathdenominatorstyle
+ \m_fractions_strut_bot\math_frac_aligned_bot{#2}%
+ \math_fraction_margin_kern}%
+ \endmathgroup
\math_frac_wrapup}
-\def\math_fraction_both_margin#1#2%
- {\Ustack{%
- \usemathstyleparameter\mathfractionparameter
- {%
- \math_frac_command_u
- {\kern\d_math_fraction_margin
- \usemathstyleparameter\mathfractionparameter\m_fractions_strut_top#1%
- \kern\d_math_fraction_margin}%
- {\kern\d_math_fraction_margin
- \usemathstyleparameter\mathfractionparameter\m_fractions_strut_bot#2%
- \kern\d_math_fraction_margin}%
- }%
- }%
- \math_frac_wrapup}
+\nulldelimiterspace\zeropoint % was 1.2pt
\definemathfraction[xfrac] [\c!alternative=\v!inner,\c!mathstyle=\s!script]
\definemathfraction[xxfrac][\c!alternative=\v!inner,\c!mathstyle=\s!scriptscript]
@@ -446,10 +406,8 @@
%D Spacing (sensitive for definition of \triggermathstyle:
-% \ifcase\contextlmtxmode
-
-\permanent\protected\def\nomathfractiongaps {\normalexpanded{\math_no_fraction_gaps \mathstyletrigger\mathstyle}} % maybe collect settings
-\permanent\protected\def\overlaymathfractiongaps{\normalexpanded{\math_overlay_fraction_gaps\mathstyletrigger\mathstyle}} % maybe collect settings
+\permanent\protected\def\nomathfractiongaps {\normalexpanded{\math_no_fraction_gaps \allmathstyles}}
+\permanent\protected\def\overlaymathfractiongaps{\normalexpanded{\math_overlay_fraction_gaps\allmathstyles}}
\protected\def\math_no_fraction_gaps#1%
{\Umathfractionnumup #1\zeropoint
@@ -458,40 +416,24 @@
\protected\def\math_overlay_fraction_gaps#1%
{\Umathfractionnumup #1\zeropoint
\Umathfractionnumvgap #1\zeropoint
- %Umathfractionrule #1\zeropoint
\Umathfractiondenomvgap#1\zeropoint
\Umathfractiondenomdown#1\zeropoint}
-% \else
-
-% \protected\def\math_no_fraction_gaps
-% {\Umathfractionnumup \mathstyle\zeropoint
-% \Umathfractiondenomdown\mathstyle\zeropoint}
-%
-% \protected\def\math_overlay_fraction_gaps
-% {\Umathfractionnumup \mathstyle\zeropoint
-% \Umathfractionnumvgap \mathstyle\zeropoint
-% %Umathfractionrule \mathstyle\zeropoint
-% \Umathfractiondenomvgap\mathstyle\zeropoint
-% \Umathfractiondenomdown\mathstyle\zeropoint}
-
-% \fi
-
\installcorenamespace{mathfractiondistance}
-\letvalue{\??mathfractiondistance\v!none }\nomathfractiongaps
-\letvalue{\??mathfractiondistance\v!no }\nomathfractiongaps
-\letvalue{\??mathfractiondistance\v!overlay}\overlaymathfractiongaps
+\letcsname\??mathfractiondistance\v!none \endcsname\nomathfractiongaps
+\letcsname\??mathfractiondistance\v!no \endcsname\nomathfractiongaps
+\letcsname\??mathfractiondistance\v!overlay\endcsname\overlaymathfractiongaps
\setupmathfractions
[\c!distance=\v!none]
+% we need to keep it local, so not everybodyfont
+
\appendtoks
\edef\p_distance{\rootmathfractionparameter\c!distance}%
\ifempty\p_distance\else
- \ifcsname\??mathfractiondistance\p_distance\endcsname
- \lastnamedcs
- \fi
+ \begincsname\??mathfractiondistance\p_distance\endcsname
\fi
\to \everymathematics
@@ -509,32 +451,47 @@
\ifempty\currentmathfraction
\edef\p_threshold{\mathfractionparameter\c!inlinethreshold}%
\ifempty\p_threshold
- \let\math_fraction_set_threshold_inline\relax
+ \let\math_fraction_set_threshold_inline\math_fraction_set_threshold_inline_auto
\orelse\ifx\p_threshold\v!auto
- \let\math_fraction_set_threshold_inline\relax
+ \let\math_fraction_set_threshold_inline\math_fraction_set_threshold_inline_auto
\else
- \let\math_fraction_set_threshold_inline\math_fraction_set_theshold_inline
+ \let\math_fraction_set_threshold_inline\math_fraction_set_threshold_inline_ratio
\fi
\edef\p_threshold{\mathfractionparameter\c!displaythreshold}%
\ifempty\p_threshold
- \let\math_fraction_set_threshold_display\relax
+ \let\math_fraction_set_threshold_display\math_fraction_set_threshold_display_auto
\orelse\ifx\p_threshold\v!auto
- \let\math_fraction_set_threshold_display\relax
+ \let\math_fraction_set_threshold_display\math_fraction_set_threshold_display_auto
\else
- \let\math_fraction_set_threshold_display\math_fraction_set_theshold_display
+ \let\math_fraction_set_threshold_display\math_fraction_set_threshold_display_ratio
\fi
\fi
\to \everysetupmathfraction
-\def\math_fraction_set_theshold_inline
+\def\math_fraction_set_threshold_inline_auto
+ {\Umathfractiondelsize\allmathstyles\maxdimen}
+
+\def\math_fraction_set_threshold_display_auto
+ {\Umathfractiondelsize\alldisplaystyles\maxdimen}
+
+\def\math_fraction_set_threshold_inline_ratio
{\edef\p_threshold{\mathfractionparameter\c!inlinethreshold}%
- \Umathfractiondelsize\textstyle \p_threshold\dimexpr\textface\relax
- \Umathfractiondelsize\scriptstyle \p_threshold\dimexpr\scriptface\relax
- \Umathfractiondelsize\scriptscriptstyle\p_threshold\dimexpr\scriptscriptface\relax}
+ \Umathfractiondelsize\alltextstyles \p_threshold\dimexpr\textface\relax
+ \Umathfractiondelsize\allscriptstyles \p_threshold\dimexpr\scriptface\relax
+ \Umathfractiondelsize\allscriptscriptstyles\p_threshold\dimexpr\scriptscriptface\relax}
-\def\math_fraction_set_theshold_display
+\def\math_fraction_set_threshold_display_ratio
{\edef\p_threshold{\mathfractionparameter\c!displaythreshold}%
- \Umathfractiondelsize\displaystyle \p_threshold\dimexpr\textface\relax}
+ \Umathfractiondelsize\alldisplaystyles\p_threshold\dimexpr\textface\relax}
+
+\setupmathfractions
+ [\c!inlinethreshold=1.2, % no unit but fraction
+ \c!displaythreshold=\v!auto, % no unit but fraction
+ \c!threshold=.25\exheight]
+
+\appendtoks
+ \Umathskeweddelimitertolerance\allmathstyles\mathfractionparameter\c!threshold
+\to \everymathematics % else original lost: \to \everybodyfont
%D \macros
%D {dfrac, tfrac, frac, dbinom, tbinom, binom}
@@ -559,15 +516,15 @@
% $$ {{a}\abovewithdelims()#1pt{b}} $$
% }
-\definemathfraction[i:frac] [\c!alternative=\v!inner,\c!mathstyle=] % was script and then small but nothing needed
-\definemathfraction[i:tfrac][\c!alternative=\v!inner,\c!mathstyle=\s!text] % was script (before luatex fix)
+\definemathfraction[i:frac] [\c!alternative=\v!inner,\c!mathstyle=\v!small]
+\definemathfraction[i:tfrac][\c!alternative=\v!inner,\c!mathstyle=\s!script]
\definemathfraction[i:sfrac][\c!alternative=\v!inner,\c!mathstyle=\s!scriptscript]
\definemathfraction[i:dfrac][\c!alternative=\v!inner,\c!mathstyle=\s!display]
-\definemathfraction[d:frac] [\c!alternative=\v!inner,\c!mathstyle=\s!cramped] % was cramped,text
-\definemathfraction[d:tfrac][\c!alternative=\v!both ,\c!mathstyle={\s!cramped,\s!text}] % was cramped,script (before luatex fix)
-\definemathfraction[d:sfrac][\c!alternative=\v!both ,\c!mathstyle={\s!cramped,\s!scriptscript}]
-\definemathfraction[d:dfrac][\c!alternative=\v!inner,\c!mathstyle=\s!display]
+\definemathfraction[d:frac] [\c!alternative=\v!inner,\c!mathstyle=\s!cramped]
+\definemathfraction[d:tfrac][\c!alternative=\v!inner,\c!mathstyle={\s!cramped,\s!script}]
+\definemathfraction[d:sfrac][\c!alternative=\v!inner,\c!mathstyle={\s!cramped,\s!scriptscript}]
+\definemathfraction[d:dfrac][\c!alternative=\v!both,\c!mathstyle=\s!display]
%D \protected\def\ShowMathFractions#1#2%
%D {\dontleavehmode
@@ -585,54 +542,80 @@
%D \ShowMathFractions{1}{b}\par
%D \blank
+% % There is no real need to support ams styling so this is now obsolete:
+
\permanent\protected\def\frac {\csname\inlineordisplaymath id:frac\endcsname}
\permanent\protected\def\tfrac{\csname\inlineordisplaymath id:tfrac\endcsname}
\permanent\protected\def\sfrac{\csname\inlineordisplaymath id:sfrac\endcsname}
\permanent\protected\def\dfrac{\csname\inlineordisplaymath id:dfrac\endcsname}
-\definemathfraction[ams] [\c!strut=\v!no,\c!alternative=\v!outer]
-\definemathfraction[i:ams:frac][ams][\c!mathstyle={\s!cramped,\s!text}]
-\definemathfraction[d:ams:frac][ams][\c!mathstyle={\s!cramped,\s!display}]
-
-\permanent\protected\def\ctxfrac{\csname\inlineordisplaymath id:frac\endcsname}
-\permanent\protected\def\amsfrac{\csname\inlineordisplaymath id:ams:frac\endcsname}
-
+% \definemathfraction[ams] [\c!strut=\v!no,\c!alternative=\v!outer]
+% \definemathfraction[i:ams:frac][ams][\c!mathstyle={\s!cramped,\s!text}]
+% \definemathfraction[d:ams:frac][ams][\c!mathstyle={\s!cramped,\s!display}]
+%
+% \permanent\protected\def\ctxfrac{\csname\inlineordisplaymath id:frac\endcsname}
+% \permanent\protected\def\amsfrac{\csname\inlineordisplaymath id:ams:frac\endcsname}
+%
% \appendtoks
-% \doifelse{\mathfractionparameter\c!option}{ams}%
-% {\let\frac\amsfrac}%
-% {\let\frac\ctxfrac}%
-% \to \everysetupmathfraction
-
-\appendtoks
- \doifelse{\mathematicsparameter\c!fractions}{ams}%
- {\enforced\let\frac\amsfrac}%
- {\enforced\let\frac\ctxfrac}%
-\to \everysetupmathematics
+% \doifelse{\mathematicsparameter\c!fractions}{ams}%
+% {\enforced\let\frac\amsfrac}%
+% {\enforced\let\frac\ctxfrac}%
+% \to \everysetupmathematics
+% % Also gone:
+%
% \definemathfraction[ddfrac][\c!mathstyle=\s!display]
% \definemathfraction[ttfrac][\c!mathstyle=\s!text]
% \definemathfraction[ssfrac][\c!mathstyle=\s!script]
-
+%
% \protected\def\binom #1#2{{\Ustack {{#1}\normalabovewithdelims()\zeropoint{#2}}}}
% \protected\def\dbinom#1#2{{\displaystyle{{#1}\normalabovewithdelims()\zeropoint{#2}}}}
% \protected\def\tbinom#1#2{{\textstyle {{#1}\normalabovewithdelims()\zeropoint{#2}}}}
+%
+% \definemathfraction
+% [binom]
+% [\c!alternative=\v!outer,
+% \c!rule=\v!no,
+% \c!left="28,
+% \c!right="29,
+% \c!mathstyle=\s!auto]
+%
+% \definemathfraction
+% [dbinom]
+% [binom]
+% [\c!mathstyle=\s!display]
+%
+% \definemathfraction
+% [tbinom]
+% [binom]
+% [\c!mathstyle=\s!text]
+
+\definemathfraction
+ [d:binom]
+ [d:frac]
+ [\c!rule=\v!no,
+ % \c!mathstyle=\s!display,
+ \c!left="28,
+ \c!right="29]
\definemathfraction
- [binom]
- [\c!alternative=\v!outer,
- \c!rule=\v!no,
- \c!left=0x28,
- \c!right=0x29,
- \c!mathstyle=\s!auto]
+ [i:binom]
+ [i:frac]
+ [\c!rule=\v!no,
+ %\c!mathstyle=\s!text,
+ \c!left="28,
+ \c!right="29]
+
+\permanent\protected\def\binom{\csname\inlineordisplaymath id:binom\endcsname}
\definemathfraction
[dbinom]
- [binom]
+ [d:binom]
[\c!mathstyle=\s!display]
\definemathfraction
[tbinom]
- [binom]
+ [i:binom]
[\c!mathstyle=\s!text]
%D \macros
@@ -660,25 +643,43 @@
%D
%D \getbuffer
-\permanent\protected\def\cfrac
- {\doifelsenextoptionalcs\math_cfrac_yes\math_cfrac_nop}
+% % we forget about this ams one ... no one uses it anyway
+%
+% \permanent\protected\def\cfrac
+% {\doifelsenextoptionalcs\math_cfrac_yes\math_cfrac_nop}
+%
+% \def\math_cfrac_nop {\math_cfrac_indeed[cc]}
+% \def\math_cfrac_yes[#1]{\math_cfrac_indeed[#1cc]}
+%
+% \def\math_cfrac_indeed[#1#2#3]#4#5%
+% {{\displaystyle
+% \frac
+% {\strut
+% \ifx r#1\hfill\fi#4\ifx l#1\hfill\fi}%
+% {\ifx r#2\hfill\fi#5\ifx l#2\hfill\fi}%
+% \ifzeropt\nulldelimiterspace\else
+% \kern-\nulldelimiterspace
+% \fi}}
+%
+% instead we predefine one:
-\def\math_cfrac_nop {\math_cfrac_indeed[cc]}
-\def\math_cfrac_yes[#1]{\math_cfrac_indeed[#1cc]}
+\definemathfraction
+ [cfrac]
+ [\c!mathstyle=\v!text]
-\def\math_cfrac_indeed[#1#2#3]#4#5%
- {{\displaystyle
- \frac
- {\strut
- \ifx r#1\hfill\fi#4\ifx l#1\hfill\fi}%
- {\ifx r#2\hfill\fi#5\ifx l#2\hfill\fi}%
- \kern-\nulldelimiterspace}}
+% so users can do this:
+%
+% \setupmathfraction
+% [cfrac]
+% [topalign=flushright]
+%
+% or define an child instance that presets it.
%D \macros
%D {splitfrac, splitdfrac}
%D
-%D Occasionally one needs to typeset multi||line fractions.
-%D These commands use \tex{genfrac} to create such fractions.
+%D Occasionally one needs to typeset multi||line fractions. These commands use \type
+%D {\genfrac} to create such fractions.
%D
%D \startbuffer
%D \startformula
@@ -696,55 +697,97 @@
%D \stopbuffer
%D
%D \typebuffer \getbuffer
-%D
-%D These macros are based on Michael J.~Downes posting on
-%D comp.text.tex on 2001/12/06 but adapted a bit.
-\permanent\protected\def\splitfrac #1#2{{\textstyle {{\textstyle#1\quad\hfill}\normalabove\zeropoint{\textstyle\hfill\quad\mathstrut#2}}}}
-\permanent\protected\def\splitdfrac#1#2{{\displaystyle{{ #1\quad\hfill}\normalabove\zeropoint{ \hfill\quad\mathstrut#2}}}}
+\defcsname\??mathalignsimple\v!split:\v!flushleft\endcsname#1%
+ {#1%
+ \ifchkdim\mathfractionparameter\c!distance\or\hskip\lastchkdim\fi
+ \hfill}
-%D For testing:
+\defcsname\??mathalignsimple\v!split:\v!flushright\endcsname#1%
+ {\hfill
+ \ifchkdim\mathfractionparameter\c!distance\or\hskip\lastchkdim\fi
+ \mathatom \s!class \mathordcode \s!unroll {}% prevents +/- seen as sign, unroll prevents empty box
+ #1}
-% \protected\def\ShowMathFractions#1#2%
-% {\mathematics{x+\tfrac{#1}{#2}+1+\frac{#1}{#2}+2+\sfrac{#1}{#2}+g}}
+\definemathfraction
+ [splitfrac]
+ [\c!mathnumeratorstyle=\v!text,
+ \c!mathdenominatorstyle=\v!text,
+ \c!topalign=\v!split:\v!flushleft,
+ \c!bottomalign=\v!split:\v!flushright,
+ \c!distance=\emwidth,
+ \c!rule=\v!no]
+
+\definemathfraction
+ [splitdfrac]
+ [splitfrac]
+ [\c!mathnumeratorstyle=\v!display,
+ \c!mathdenominatorstyle=\v!display]
%D More fracking (for Alan):
-\protected\def\math_frac_colored_vulgar#1#2%
- {\savecolor
- \colo_helpers_activate\p_math_fractions_color
- {\restorecolor#1}\Uskewed/{\restorecolor#2}}
+% \appendtoks
+% \Umathskewedfractionhgap\allmathstyles\namedmathfractionparameter\s!vfrac\c!hfactor\fontemwidth \mathstylefont\textstyle
+% \Umathskewedfractionvgap\allmathstyles\namedmathfractionparameter\s!vfrac\c!vfactor\fontexheight\mathstylefont\textstyle
+% \to \everymathematics
-\protected\def\math_frac_normal_vulgar#1#2%
- {{#1}\Uskewed/{#2}}
+\definemathfraction
+ [\v!horizontal]
+ [\c!method=\v!horizontal]
-\permanent\protected\def\vfrac#1#2%
- {\bgroup
- \edef\p_math_fractions_color{\namedmathfractionparameter\s!vfrac\c!color}%
- \ifempty\p_math_fractions_color
- \expandafter\math_frac_normal_vulgar
- \else
- \expandafter\math_frac_colored_vulgar
- \fi
- {#1}%
- {#2}%
- \egroup}
+\definemathfraction
+ [\s!vfrac]
+ [\v!horizontal]
+ [\c!hfactor=20,
+ \c!vfactor=10]
-\appendtoks
- \edef\p_hfactor{\namedmathfractionparameter\s!vfrac\c!hfactor}%
- \edef\p_vfactor{\namedmathfractionparameter\s!vfrac\c!vfactor}%
- \Umathskewedfractionhgap\textstyle \p_hfactor\fontemwidth \mathstylefont\textstyle
- \Umathskewedfractionhgap\scriptstyle \p_hfactor\fontemwidth \mathstylefont\scriptstyle
- \Umathskewedfractionhgap\scriptscriptstyle\p_hfactor\fontemwidth \mathstylefont\scriptscriptstyle
- \Umathskewedfractionvgap\textstyle \p_vfactor\fontexheight\mathstylefont\textstyle
- \Umathskewedfractionvgap\scriptstyle \p_vfactor\fontexheight\mathstylefont\scriptstyle
- \Umathskewedfractionvgap\scriptscriptstyle\p_vfactor\fontexheight\mathstylefont\scriptscriptstyle
-\to \everysetupmathfraction
+%D And a cheat (for Mikael):
-\setupmathfraction
- [\s!vfrac]
- [\c!hfactor=.2,
- \c!vfactor=.1]
+% \definemathfraction
+% [afrac]
+% [\c!mathclass=\mathrelationcode,
+% \c!rule=\v!symbol,
+% \c!middle="2192]
+
+%D New stretched fraction with middle symnbol:
+
+% \enableexperiments[math.arrows] % enforce construction of these in math-act
+%
+% {
+% tweak = "addarrows",
+% list = { [0x3D] = { squeeze = .85, yoffset = .0975 } } -- bonum
+% },
+
+\definemathfraction
+ [relfraction]
+ [\c!mathclass=\mathrelationcode,
+ \c!margin=.25\emwidth,
+ \c!rule=\v!symbol]
+
+\definemathfraction [bartext] [relfraction] [\c!middle="203E]
+\definemathfraction [leftarrowtext] [relfraction] [\c!middle="2190]
+\definemathfraction [rightarrowtext] [relfraction] [\c!middle="2192]
+\definemathfraction [twoheadleftarrowtext] [relfraction] [\c!middle="219E]
+\definemathfraction [twoheadrightarrowtext] [relfraction] [\c!middle="21A0]
+\definemathfraction [reltext] [relfraction] [\c!middle="002D]
+\definemathfraction [equaltext] [relfraction] [\c!middle="003D]
+\definemathfraction [mapstotext] [relfraction] [\c!middle="21A6]
+\definemathfraction [hookleftarrowtext] [relfraction] [\c!middle="21A9]
+\definemathfraction [hookrightarrowtext] [relfraction] [\c!middle="21AA]
+\definemathfraction [leftharpoondowntext] [relfraction] [\c!middle="21BD]
+\definemathfraction [leftharpoonuptext] [relfraction] [\c!middle="21BC]
+\definemathfraction [rightharpoondowntext] [relfraction] [\c!middle="21C1]
+\definemathfraction [rightharpoonuptext] [relfraction] [\c!middle="21C0]
+\definemathfraction [rightoverleftarrowtext] [relfraction] [\c!middle="21C4]
+\definemathfraction [leftrightharpoonstext] [relfraction] [\c!middle="21CB]
+\definemathfraction [rightleftharpoonstext] [relfraction] [\c!middle="21CC]
+\definemathfraction [triplereltext] [relfraction] [\c!middle="2261]
+\definemathfraction [leftrightarrowtext] [relfraction] [\c!middle="27F7]
+\definemathfraction [rightleftarrowtext] [relfraction] [\c!middle="27F7]
+\definemathfraction [Leftarrowtext] [relfraction] [\c!middle="27F8]
+\definemathfraction [Rightarrowtext] [relfraction] [\c!middle="27F9]
+\definemathfraction [Leftrightarrowtext] [relfraction] [\c!middle="27FA]
+\definemathfraction [Rightleftarrowtext] [relfraction] [\c!middle="27FA]
\protect \endinput
@@ -823,7 +866,7 @@
% \hss$\textstyle/$\hss
% \egroup
% \lower
-% \Umathskewedfractionvgap\textstyle
+% \Umathskewedfractionvgapskewedfractionvgap\textstyle
% \hbox\bgroup
% $\hskip\dimexpr\Umathskewedfractionhgap\textstyle/2\relax\scriptstyle#2$%
% \egroup
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-inc.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-inc.lmt
new file mode 100644
index 00000000000..7c32adde6ca
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-inc.lmt
@@ -0,0 +1,94 @@
+if not modules then modules = { } end modules ['back-inc'] = {
+ version = 1.001,
+ comment = "companion to back-exp.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- This is an experiment. If it's really useful then I'll make a more efficient
+-- local export facility.
+
+local tonumber, next = tonumber, next
+local utfbyte, utfchar, utfsplit = utf.byte, utf.char, utf.split
+local match, gsub = string.match, string.gsub
+local nspaces = string.nspaces
+local concat = table.concat
+local xmltext = xml.text
+local undent = buffers.undent
+
+local f_entity = string.formatters["&x%X;"]
+local f_blob = string.formatters['<?xml version="2.0"?>\n\n<!-- formula %i -->\n\n%s']
+
+local report_tags = logs.reporter("structure","tags")
+
+local all = nil
+local back = nil
+
+local function unmath(s)
+ local t = utfsplit(s)
+ for i=1,#t do
+ local ti = t[i]
+ local bi = utfbyte(ti)
+ if bi > 0xFFFF then
+ local ch = back[bi]
+ t[i] = ch and utfchar(ch) or f_entity(bi)
+ end
+ end
+ s = concat(t)
+ return s
+end
+
+local function beautify(s)
+ local b = match(s,"^( *)<m:math")
+ local e = match(s,"( *)</m:math>%s*$")
+ if b and e then
+ b = #b
+ e = #e
+ if e > b then
+ s = undent(nspaces[e-b] .. s)
+ elseif e < b then
+ s = undent((gsub(s,"^( *)",nspaces[b-e])))
+ end
+ end
+ return s
+end
+
+local function getblob(n)
+ if all == nil then
+ local name = file.nameonly(tex.jobname)
+ local full = name .. "-export/" .. name .. "-raw.xml"
+ if lfs.isfile(full) then
+ all = { }
+ back = { }
+ local root = xml.load(full)
+ for c in xml.collected(root,"formulacontent") do
+ local index = tonumber(c.at.n)
+ local data = beautify(xmltext(c,"math") or "")
+ if index and data then
+ all[index] = f_blob(index,data)
+ else
+ report_tags("no formula content id")
+ end
+ end
+ local it = mathematics.alphabets.regular.it
+ for k, v in next, it.digits do back[v] = k end
+ for k, v in next, it.ucletters do back[v] = k end
+ for k, v in next, it.lcletters do back[v] = k end
+ else
+ all = false
+ end
+ end
+ if all == false then
+ return ""
+ end
+ return unmath(all[n] or "")
+end
+
+interfaces.implement {
+ name = "xmlformulatobuffer",
+ arguments = { "integer", "string" },
+ actions = function(n,target)
+ buffers.assign(target,getblob(n))
+ end
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-inc.mkxl b/Master/texmf-dist/tex/context/base/mkxl/math-inc.mkxl
index 4db75e37e11..e2a44217d3d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-inc.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-inc.mkxl
@@ -13,7 +13,7 @@
\writestatus{loading}{ConTeXt Math Macros / XML inclusion}
-\registerctxluafile{math-inc}{}
+\registerctxluafile{math-inc}{autosuffix}
%D I had some doubt about including this in \CONTEXT\ but it might serve some users
%D anyway. It's always the question to what extent one can be really roundtrip. I
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-ini.lmt
new file mode 100644
index 00000000000..f26f24c93b1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-ini.lmt
@@ -0,0 +1,1170 @@
+if not modules then modules = { } end modules ['math-ini'] = {
+ version = 1.001,
+ comment = "companion to math-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- The way we do math in \CONTEXT\ \MKIV\ differs from other macro packages so you
+-- should not mix the somewhat unique (and bit weird) approach here with the more
+-- traditional (\TEX) approach. Also, we use char-def.lua as starting point and that
+-- file is quite \CONTEXT\ specific. When we added math to that there was no
+-- interest (quite the contrary) so we didn't went generic there which in retrospect
+-- also gives us the freedom to add more information, something that happens
+-- occasionally. Because that file is shared between \MKIV\ and \LMTX\ some
+-- information is only used by \LMTX. We also have quite some runs over the math
+-- list but that has been so since we started and performance will not degrade much
+-- by it; after all math is not that demanding. More details can be found in the
+-- manuals that discuss math. Most code (and concepts) date from 2005 so maybe I
+-- will upgrade the lot some day, although it has been adapted on the way to the
+-- changes in the engine(s).
+
+local next, type = next, type
+local formatters, find, nospaces = string.formatters, string.find, string.nospaces
+local utfchar, utfbyte = utf.char, utf.byte
+local sortedhash = table.sortedhash
+local toboolean = toboolean
+
+local context = context
+local commands = commands
+local implement = interfaces.implement
+
+local ctx_doifelsesomething = commands.doifelsesomething
+
+local trace_defining = false trackers.register("math.defining", function(v) trace_defining = v end)
+
+local report_math = logs.reporter("mathematics","initializing")
+
+mathematics = mathematics or { }
+local mathematics = mathematics
+
+mathematics.extrabase = fonts.privateoffsets.mathextrabase -- here we push some virtuals
+mathematics.privatebase = fonts.privateoffsets.mathbase -- here we push the ex
+
+local unsetvalue = attributes.unsetvalue
+local allocate = utilities.storage.allocate
+local chardata = characters.data
+
+local texsetattribute = tex.setattribute
+local setmathcode = tex.setmathcode
+local setdelcode = tex.setdelcode
+local texintegerdef = tex.integerdef
+
+setdelcode = function() end
+
+-- This is relatively new and experimental:
+
+do
+
+ local dictionaries = mathematics.dictionaries or { }
+ mathematics.dictionaries = dictionaries
+
+ local names = dictionaries.names or utilities.storage.allocate()
+ local groups = dictionaries.groups or utilities.storage.allocate()
+ local data = dictionaries.data or utilities.storage.allocate()
+ local sets = dictionaries.sets or utilities.storage.allocate()
+ local variants = dictionaries.variants or utilities.storage.allocate() -- todo: get from char-def
+ local defaults = dictionaries.defaults or utilities.storage.allocate() -- todo: get from char-def
+
+ storage.register("mathematics/dictionaries/names", names, "mathematics.dictionaries.names")
+ storage.register("mathematics/dictionaries/groups", groups, "mathematics.dictionaries.groups")
+ storage.register("mathematics/dictionaries/data", data, "mathematics.dictionaries.data")
+ storage.register("mathematics/dictionaries/sets", sets, "mathematics.dictionaries.sets")
+ storage.register("mathematics/dictionaries/variants", variants, "mathematics.dictionaries.variants")
+ storage.register("mathematics/dictionaries/defaults", defaults, "mathematics.dictionaries.defaults")
+
+ dictionaries.names = dictionaries.names or names
+ dictionaries.groups = dictionaries.groups or groups
+ dictionaries.data = dictionaries.data or data
+ dictionaries.sets = dictionaries.sets or sets
+ dictionaries.variants = dictionaries.variants or variants
+ dictionaries.defaults = dictionaries.defaults or defaults
+
+ if not sets.n then
+ sets.n = 0
+ end
+
+ function dictionaries.registergroup(name)
+ local group = rawget(names,name)
+ if not group then
+ group = #groups + 1
+ names[name] = group
+ names[group] = group
+ groups[group] = name
+ data[group] = { }
+ local csname = "math" .. nospaces(name) .. "dictionary"
+ texintegerdef(csname,group,"immutable")
+ end
+ return group
+ end
+
+ function dictionaries.registergroupset(name,set)
+ local s = sets[name]
+ if not s then
+ local d = dictionaries.registergroup(name)
+ local n = sets.n + 1
+ local l = utilities.parsers.settings_to_array(set)
+ local g = { }
+ for i=1,#l do
+ local n = names[l[i]]
+ if n then
+ g[#g+1] = n -- ordered
+ end
+ end
+ s = {
+ names = l,
+ groups = g,
+ group = d,
+ }
+ sets[name] = s
+ sets[d] = s
+
+ end
+ end
+
+ function dictionaries.groupset(name)
+ return sets[name] or { }
+ end
+
+ function dictionaries.groupsetgroup(name)
+ local s = sets[name]
+ if s then
+ return s.group
+ else
+ return names[name] or 0
+ end
+ end
+
+ function dictionaries.registercharacter(group,index,description,class)
+ local d = names[group] -- can be number or string
+ if d then
+ data[d][index] = description or true
+ local v = variants[index]
+ if not class then
+ class = true
+ end
+ if v then
+ v[d] = class
+ else
+ variants[index] = { [d] = class}
+ end
+ if not defaults[index] then
+ defaults[index] = d
+ end
+ end
+ end
+
+ implement {
+ name = "registergroupset",
+ arguments = "2 strings",
+ actions = dictionaries.registergroupset,
+ }
+
+ implement {
+ name = "groupsetgroup",
+ arguments = "string",
+ actions = { dictionaries.groupsetgroup, context },
+ }
+
+ local fontchardata = fonts.hashes.characters
+ local f_dictionary = false
+ local register = callback.register
+ local whatdetail = "all"
+
+ local function trace(n,properties,group,index,font,char)
+ -- local properties, group, index, font, char = nodes.nuts.getchardict(nodes.nuts.tonut(n))
+ if properties ~= 0 or group ~= 0 or index ~= 0 then
+ local char = fontchardata[font][char]
+ if char or whatdetail == "all" then
+ local unicode = char and char.unicode
+ if unicode then
+ local groupname = groups[group]
+ local indexname = false
+ if groupname then
+ indexname = data[group][index] -- dictionaries.data
+ else
+ groupname = "unknown"
+ end
+ if not indexname or indexname == true then
+ indexname = chardata[unicode]
+ indexname = indexname and indexname.description or "unknown"
+ end
+ if not f_dictionary then
+ f_dictionary = formatters["properties [%04X:%04X:%04X] [%s] %U : %s"]
+ end
+ return f_dictionary(properties,group,index,groupname,unicode,indexname)
+ end
+ end
+ end
+ end
+
+ trackers.register("math.dictionaries",function(v)
+ whatdetail = v
+ if whatdetail then
+ register("get_math_dictionary",trace)
+ else
+ register("get_math_dictionary")
+ end
+ end)
+
+ register("get_math_dictionary",trace)
+
+ -- This is experimental and a prelude to the long pending "relate math rendering to
+ -- some field" wish. In TeX characters and symbols are grouped by class but that is
+ -- mostly related to spacing etc. while we actually want to group by meaning. A
+ -- reasonable but incomplete starting point is:
+ --
+ -- https://www.w3.org/TR/MathML3/appendixa.html#parsing_DefEncAtt
+ --
+ -- But it has some weird short names mixed with long ones (and a strange suddenly
+ -- uppercase: Differential-Operator) but we are not bound to that at all. We will
+ -- probably remove and add categories anyway. This openmath stuff looks a bit
+ -- abandoned but we can use it as a start and playground anyway.
+ --
+ -- The char-def.lua file will have mathgroup entries reflecting this.
+ --
+ -- This is a good one (with nice roll-overs too):
+ --
+ -- https://en.wikipedia.org/wiki/List_of_mathematical_symbols_by_subject
+
+ if environment.initex then
+
+ local registergroup = mathematics.dictionaries.registergroup
+
+ registergroup("default")
+ registergroup("binary arithmetic")
+ registergroup("binary linear algebra")
+ registergroup("binary logical")
+ registergroup("binary relation")
+ registergroup("binary set")
+ registergroup("constant arithmetic")
+ registergroup("constant set")
+ registergroup("differential")
+ registergroup("integral")
+ registergroup("interval")
+ registergroup("lambda")
+ registergroup("limit")
+ registergroup("nary arithmetic")
+ registergroup("nary constructor")
+ registergroup("nary functional")
+ registergroup("nary linear algebra")
+ registergroup("nary logical")
+ registergroup("nary minmax")
+ registergroup("nary relation")
+ registergroup("nary set list")
+ registergroup("nary set relation")
+ registergroup("nary set")
+ registergroup("nary statistics")
+ registergroup("partial") -- partial differential
+ registergroup("product")
+ registergroup("quantifier")
+ registergroup("unary arithmetic")
+ registergroup("unary elementary")
+ registergroup("unary functional")
+ registergroup("unary linear algebra")
+ registergroup("unary logical")
+ registergroup("unary set")
+ registergroup("unary vector")
+
+ end
+
+ -- \Umathdictdef\vdash 1 \mathbinarylogicaldictionary "22A2 \mathrelationcode 0 "22A2
+ --
+ -- \startluacode
+ -- mathematics.dictionaries.registercharacter("binary logical",0x22A2,"implies")
+ -- \stopluacode
+
+end
+
+-- These are different from mkiv with luatex.
+
+local classes = allocate { unset = 64 } -- or -1
+local classnames = allocate { }
+local maxengineclass = 63
+local lastengineclass = 0
+local lastprivateclass = maxengineclass
+
+for k, v in next, nodes.noadcodes do
+ if type(k) == "string" then
+ classes[k] = v
+-- local n = classnames[v]
+-- if not n or #k < #n then
+-- classnames[v] = k
+-- end
+ elseif k > lastengineclass then
+ lastengineclass = k
+ end
+end
+
+local ordinary_class = classes.ordinary
+local operator_class = classes.operator
+local binary_class = classes.binary
+local relation_class = classes.relation
+local open_class = classes.open
+local close_class = classes.close
+local punctuation_class = classes.punctuation
+local middle_class = classes.middle
+local accent_class = classes.accent
+local radical_class = classes.radical
+local fraction_class = classes.fraction
+local under_class = classes.under
+local over_class = classes.over
+local fenced_class = classes.fenced
+local ghost_class = classes.ghost
+
+-- these will go
+
+classes.ord = ordinary_class
+classes.op = operator_class
+classes.bin = binary_class
+classes.rel = relation_class
+classes.opening = open_class -- will go
+classes.closing = close_class -- will go
+classes.punct = punctuation_class
+classes.frac = fraction_class
+classes.rad = radical_class
+classes.fen = fenced_class
+classes.gst = ghost_class
+
+-- these will go too
+
+classes.limop = operator_class
+classes.limoperator = operator_class
+classes.nolop = operator_class
+classes.nolimoperator = operator_class
+classes.large = operator_class
+classes.largeoperator = operator_class
+
+-- special in the engine : variable active inner vcenter
+
+local function registerengineclass(name,short)
+ local class = classes[name]
+ if not class then
+ if lastengineclass < maxengineclass then
+ lastengineclass = lastengineclass + 1
+ class = lastengineclass
+ classnames[class] = short or name
+ else
+ class = ordinary_class
+ end
+ else
+ classnames[class] = short or name
+ end
+ classes[class] = name
+ classes[name] = class
+ return class
+end
+
+-- predefined classes
+
+registerengineclass("ordinary", "ord")
+registerengineclass("operator", "ope")
+registerengineclass("binary", "bin")
+registerengineclass("relation", "rel")
+registerengineclass("open", "ope")
+registerengineclass("close", "clo")
+registerengineclass("punctuation", "pun")
+registerengineclass("variable", "var") -- not used
+registerengineclass("active", "act") -- not used
+registerengineclass("inner", "inn") -- not used
+registerengineclass("middle", "mid")
+registerengineclass("accent", "acc")
+registerengineclass("radical", "rad")
+registerengineclass("fraction", "fra")
+registerengineclass("under", "und")
+registerengineclass("over", "ove")
+registerengineclass("fenced", "fen")
+registerengineclass("ghost", "gho")
+registerengineclass("vcenter", "vce") -- not used
+
+-- additional classes
+
+registerengineclass("explicit", "xpl")
+registerengineclass("imaginary", "img")
+registerengineclass("differential", "dif")
+registerengineclass("exponential", "exp")
+registerengineclass("ellipsis", "ell")
+registerengineclass("function", "fnc")
+registerengineclass("digit", "dig")
+local division_class =
+registerengineclass("division", "div")
+registerengineclass("factorial", "fac")
+registerengineclass("wrapped", "wra")
+registerengineclass("construct", "con")
+registerengineclass("dimension", "dim")
+registerengineclass("unary", "una")
+registerengineclass("textpunctuation", "tpu")
+registerengineclass("unspaced", "uns")
+registerengineclass("experimental", "exp")
+registerengineclass("fake", "fak")
+registerengineclass("numbergroup", "ngr")
+
+registerengineclass("maybeordinary", "mor")
+registerengineclass("mayberelation", "mre")
+registerengineclass("maybebinary", "mbi")
+
+local specialclasses = tex.specialmathclasscodes
+
+classes["all"] = specialclasses["all"] classnames[specialclasses["all"] ] = "all"
+classes["begin"] = specialclasses["begin"] classnames[specialclasses["begin"]] = "beg"
+classes["end"] = specialclasses["end"] classnames[specialclasses["end"] ] = "end"
+
+callback.register("get_noad_class", function(n) return classnames[n] end)
+
+local function registerprivateclass(name,parent)
+ local class = parent and classes[parent] or classes[name]
+ if not class then
+ lastprivateclass = lastprivateclass + 1
+ class = lastprivateclass
+ classes[name] = class
+ -- also setup
+ end
+ return class
+end
+
+local function toengineclass(class)
+ if type(class) == "string" then
+ return classes[class] or ordinary_class
+ elseif class > lastengineclass then
+ return ordinary_class
+ else
+ return class
+ end
+end
+
+implement {
+ name = "registerengineclass",
+ public = true,
+ protected = true,
+ arguments = { "optional", "optional" },
+ actions = registerengineclass,
+}
+
+local topaccent_class = registerprivateclass("topaccent")
+local bottomaccent_class = registerprivateclass("bottomaccent")
+local delimiter_class = registerprivateclass("delimiter")
+local root_class = registerprivateclass("root")
+local prime_class = registerprivateclass("prime")
+
+registerprivateclass("botaccent","bottomaccent")
+
+local accents = allocate {
+ accent = true, -- some can be both
+ topaccent = true, [topaccent_class] = true,
+ bottomaccent = true, [bottomaccent_class] = true,
+ botaccent = true,
+ under = true, [under_class] = true,
+ over = true, [over_class] = true,
+ unknown = false,
+}
+
+local integer_value = tokens.values.integer
+
+implement {
+ name = "mathclassvalue",
+ -- usage = "value",
+ public = true,
+ arguments = "string",
+ actions = function(name)
+ -- return integer_value, classes[name] or ordinary_class
+ context(tostring(classes[name] or ordinary_class))
+ end
+}
+
+-- used in math-tag: so there we need to make things ord etc to fit within
+-- mathml
+
+local codes = allocate {
+ ordinary = ordinary_class, [ordinary_class] = "ordinary",
+ largeoperator = operator_class, [operator_class] = "largeoperator",
+ binaryoperator = binary_class, [binary_class] = "binaryoperator",
+ relation = relation_class, [relation_class] = "relation",
+ openingsymbol = open_class, [open_class] = "openingsymbol",
+ closingsymbol = close_class, [close_class] = "closingsymbol",
+ punctuation = punctuation_class, [punctuation_class] = "punctuation",
+ middlesymbol = middle_class, [middle_class] = "middlesymbol",
+}
+
+local extensibles = allocate {
+ unknown = 0,
+ l = 1, left = 1,
+ r = 2, right = 2,
+ h = 3, horizontal = 3,-- lr or rl
+ u = 5, up = 4,
+ d = 5, down = 5,
+ v = 6, vertical = 6,-- ud or du
+ m = 7, mixed = 7,
+}
+
+table.setmetatableindex(extensibles,function(t,k) t[k] = 0 return 0 end)
+
+local virtualized = allocate {
+}
+
+function mathematics.virtualize(unicode,virtual)
+
+ local function virtualize(k,v)
+ local c = virtualized[k]
+ if c == v then
+ report_math("character %C is already virtualized to %C",k,v)
+ elseif c then
+ report_math("character %C is already virtualized to %C, ignoring mapping to %C",k,c,v)
+ else
+ virtualized[k] = v
+ end
+ end
+
+ if type(unicode) == "table" then
+ for k, v in next, unicode do
+ virtualize(k,v)
+ end
+ elseif type(unicode) == "number" and type(virtual) == "number" then
+ virtualize(unicode,virtual)
+ -- else
+ -- error
+ end
+end
+
+mathematics.extensibles = extensibles
+mathematics.classes = classes
+mathematics.toengineclass = toengineclass
+mathematics.classnames = classnames
+mathematics.codes = codes
+-----------.accents = codes
+mathematics.virtualized = virtualized
+
+do
+
+ local skip = {
+ [accent_class] = true,
+ [topaccent_class] = true,
+ [bottomaccent_class] = true,
+ [over_class] = true,
+ [under_class] = true,
+ [radical_class] = true,
+ [root_class] = true,
+ }
+
+ local registercharacter = mathematics.dictionaries.registercharacter
+ local groupnames = mathematics.dictionaries.names
+
+ local setmathcharacter = function(class,family,slot,unicode,mset,dset,group)
+ if mset and class ~= ordinary_class then
+ setmathcode("global",slot,class,family,unicode)
+ mset = false
+ end
+ -- if dset and (class == open_class or class == close_class or class == middle_class or class == division_class) then
+ -- setdelcode("global",slot,family,unicode,0,0)
+ -- dset = false
+ -- end
+ if group then
+ group = groupnames[group] or 0
+ if group ~= 0 then
+ -- which one
+ registercharacter(group,unicode,nil,class)
+ -- registercharacter(group,slot,nil,class)
+ end
+ end
+ return mset, dset
+ end
+
+ local function report(class,family,unicode,name)
+ local nametype = type(name)
+ if nametype == "string" then
+ report_math("class %a, family %a, char %C, name %a",class,family,unicode,name)
+ elseif nametype == "number" then
+ report_math("class %a, family %a, char %C, number %U",class,family,unicode,name)
+ else
+ report_math("class %a, family %a, char %C",class,family,unicode)
+ end
+ end
+
+ local texmathchardef = tex.mathchardef
+
+ -- local setmathsymbol = function(name,class,family,slot,stretch,group) -- hex is nicer for tracing
+ -- if skip[class] then
+ -- return -- only in mkiv
+ -- elseif class == open_class or class == close_class or class == middle_class then
+ -- setdelcode("global",slot,family,slot,0,0) -- can go
+ -- elseif class == delimiter_class then -- open close or middle (bars)
+ -- setdelcode("global",slot,family,slot,0,0) -- can go
+ -- class = 0
+ -- else
+ -- if group then
+ -- group = groupnames[group] or 0
+ -- if group ~= 0 then
+ -- texmathchardef(name,class,family,slot,"permanent",0x1,group,slot)
+ -- return
+ -- end
+ -- end
+ -- end
+ -- texmathchardef(name,class,family,slot,"permanent")
+ -- end
+
+ local setmathsymbol = function(name,class,family,slot,stretch,group) -- hex is nicer for tracing
+ if skip[class] then
+ return -- only in mkiv
+ -- elseif class == open_class or class == close_class or class == middle_class then
+ else
+ if class == delimiter_class then -- open close or middle (bars)
+ class = ordinary_class
+ end
+ if group then
+ group = groupnames[group] or 0
+ if group ~= 0 then
+ texmathchardef(name,class,family,slot,"permanent",0x1,group,slot)
+ return
+ end
+ end
+ texmathchardef(name,class,family,slot,"permanent")
+ end
+ end
+
+ function mathematics.define()
+ if trace_defining then
+ logs.startfilelogging(report_math,"math defined from character definitions")
+ end
+ local family = 0
+ local data = characters.data
+ --
+ local function remap(first,last)
+ for unicode=utfbyte(first),utfbyte(last) do
+ setmathcode("global",unicode,ordinary_class,family,unicode)
+ end
+ end
+ remap("0","9")
+ remap("A","Z")
+ remap("a","z")
+ --
+ setdelcode("global",0x2E,0,0,0,0) -- period is special
+ --
+ for unicode, character in sortedhash(data) do
+ local symbol = character.mathsymbol
+ local mset = true
+ local dset = true
+ if symbol then
+ local other = data[symbol]
+ local class = other.mathclass
+ if class then
+ local engine = toengineclass(class)
+ if trace_defining then
+ report(engine,family,unicode,symbol)
+ end
+ mset, dset = setmathcharacter(engine,family,unicode,symbol,mset,dset,group)
+ end
+ local spec = other.mathspec
+ if spec then
+ for i=1,#spec do
+ local m = spec[i]
+ local class = m.class
+ if class then
+ local engine = toengineclass(class)
+ -- todo: trace
+ mset, dset = setmathcharacter(engine,family,unicode,symbol,mset,dset,group)
+ end
+ end
+ end
+ end
+ local class = character.mathclass
+ local spec = character.mathspec
+ local name = character.mathname
+ local stretch = character.mathstretch
+ local group = character.mathgroup
+ if spec then
+ local done = false
+ if class then
+ if name then
+ report_math("fatal error, conflicting mathclass and mathspec for %C",unicode)
+ os.exit()
+ else
+ class = classes[class] or ordinary_class
+ local engine = toengineclass(class)
+ if trace_defining then
+ report(engine,family,unicode)
+ end
+ mset, dset = setmathcharacter(engine,family,unicode,unicode,mset,dset,group)
+ done = true
+ end
+ end
+ for i=1,#spec do
+ local m = spec[i]
+ local name = m.name
+ local class = m.class or class
+ local group = m.group or group
+ local stretch = m.stretch or stretch
+ if class then
+ class = classes[class] or ordinary_class
+ else
+ class = ordinary_class
+ end
+ if class then
+ local engine = toengineclass(class)
+ if name then
+ if trace_defining then
+ report(engine,family,unicode,name)
+ end
+ setmathsymbol(name,engine,family,unicode,stretch,group)
+ else
+ name = (class == classes.ordinary or class == classes.digit) and character.adobename -- bad
+ if name and trace_defining then
+ report(engine,family,unicode,name)
+ end
+ end
+ if not done then
+ mset, dset = setmathcharacter(engine,family,unicode,m.unicode or unicode,mset,dset,group) -- see solidus
+ done = true
+ end
+ end
+ end
+ else
+ if class then
+ class = classes[class] or ordinary_class
+ else
+ class = ordinary_class
+ end
+ if name ~= nil then
+ local engine = toengineclass(class)
+ if name == false then
+ if trace_defining then
+ report(engine,family,unicode,name)
+ end
+ mset, dset = setmathcharacter(engine,family,unicode,unicode,mset,dset,group)
+ else
+ -- if not name then
+ -- name = character.contextname -- too dangerous, we loose textslash and a few more
+ -- end
+ if name then
+ if trace_defining then
+ report(engine,family,unicode,name)
+ end
+ setmathsymbol(name,engine,family,unicode,stretch,group)
+ else
+ if trace_defining then
+ report(engine,family,unicode,character.adobename)
+ end
+ end
+ mset, dset = setmathcharacter(engine,family,unicode,unicode,mset,dset,group)
+ end
+ elseif class ~= ordinary_class then
+ local engine = toengineclass(class)
+ if trace_defining then
+ report(engine,family,unicode,character.adobename)
+ end
+ mset, dset = setmathcharacter(engine,family,unicode,unicode,mset,dset,group)
+ end
+ end
+ end
+ --
+ if trace_defining then
+ logs.stopfilelogging()
+ end
+ end
+
+end
+
+-- needed for mathml analysis
+-- string with # > 1 are invalid
+-- we could cache
+
+do
+
+ local lpegmatch = lpeg.match
+ local utf8byte = lpeg.patterns.utf8byte * lpeg.P(-1)
+
+ -- function somechar(c)
+ -- local b = lpegmatch(utf8byte,c)
+ -- return b and chardata[b]
+ -- end
+
+ local somechar = table.setmetatableindex(function(t,k)
+ if k then
+ local b = lpegmatch(utf8byte,k)
+ local v = b and chardata[b] or false
+ t[k] = v
+ return v
+ end
+ end)
+
+ local function utfmathclass(chr, default)
+ local cd = somechar[chr]
+ return cd and cd.mathclass or default or "unknown"
+ end
+
+ local function utfmathlimop(chr)
+ local cd = somechar[chr]
+ return cd and cd.mathclass == "limop" or false
+ end
+
+ local function utfmathaccent(chr,default,asked1,asked2)
+ local cd = somechar[chr]
+ if not cd then
+ return default or false
+ end
+ if asked1 and asked1 ~= "" then
+ local mc = cd.mathclass
+ if mc and (mc == asked1 or mc == asked2) then
+ return true
+ end
+ local ms = cd.mathspec
+ if not ms then
+ local mp = cd.mathparent
+ if mp then
+ ms = chardata[mp].mathspec
+ end
+ end
+ if ms then
+ for i=1,#ms do
+ local msi = ms[i]
+ local mc = msi.class
+ if mc and (mc == asked1 or mc == asked2) then
+ return true
+ end
+ end
+ end
+ else
+ local mc = cd.mathclass
+ if mc then
+ return accents[mc] or default or false
+ end
+ local ms = cd.mathspec
+ if ms then
+ for i=1,#ms do
+ local msi = ms[i]
+ local mc = msi.class
+ if mc then
+ return accents[mc] or default or false
+ end
+ end
+ end
+ end
+ return default or false
+ end
+
+ local function utfmathstretch(chr,default) -- "h", "v", "b", ""
+ local cd = somechar[chr]
+ return cd and cd.mathstretch or default or ""
+ end
+
+ local function utfmathcommand(chr,default,asked1,asked2)
+ local cd = somechar[chr]
+ if not cd then
+ return default or ""
+ end
+ if asked1 then
+ local mn = cd.mathname
+ local mc = cd.mathclass
+ if mn and mc and (mc == asked1 or mc == asked2) then
+ return mn
+ end
+ local ms = cd.mathspec
+ if not ms then
+ local mp = cd.mathparent
+ if mp then
+ ms = chardata[mp].mathspec
+ end
+ end
+ if ms then
+ for i=1,#ms do
+ local msi = ms[i]
+ local mn = msi.name
+ if mn then
+ local mc = msi.class
+ if mc == asked1 or mc == asked2 then
+ return mn
+ end
+ end
+ end
+ end
+ else
+ local mn = cd.mathname
+ if mn then
+ return mn
+ end
+ local ms = cd.mathspec
+ if ms then
+ for i=1,#ms do
+ local msi = ms[i]
+ local mn = msi.name
+ if mn then
+ return mn
+ end
+ end
+ end
+ end
+ return default or ""
+ end
+
+ local function utfmathfiller(chr, default)
+ local cd = somechar[chr]
+ local cmd = cd and cd.mathfiller -- or cd.mathname
+ return cmd or default or ""
+ end
+
+ mathematics.utfmathclass = utfmathclass
+ mathematics.utfmathstretch = utfmathstretch
+ mathematics.utfmathcommand = utfmathcommand
+ mathematics.utfmathfiller = utfmathfiller
+ mathematics.utfmathaccent = utfmathaccent
+
+ -- interfaced
+
+ implement {
+ name = "utfmathclass",
+ public = true,
+ actions = { utfmathclass, context },
+ arguments = "argument"
+ }
+
+ implement {
+ name = "utfmathstretch",
+ public = true,
+ actions = { utfmathstretch, context },
+ arguments = "argument"
+ }
+
+ implement {
+ name = "utfmathcommand",
+ public = true,
+ actions = { utfmathcommand, context },
+ arguments = "argument"
+ }
+
+ implement {
+ name = "utfmathfiller",
+ public = true,
+ actions = { utfmathfiller, context },
+ arguments = "argument"
+ }
+
+ implement {
+ name = "utfmathcommandabove",
+ public = true,
+ actions = { utfmathcommand, context },
+ arguments = { "argument", false, "'topaccent'","'over'" }
+ }
+
+ implement {
+ name = "utfmathcommandbelow",
+ public = true,
+ actions = { utfmathcommand, context },
+ arguments = { "argument", false, "'bottomaccent'","'under'" }
+ }
+
+ implement {
+ name = "utfmathcommandfiller",
+ public = true,
+ actions = { utfmathfiller, context },
+ arguments = "argument"
+ }
+
+ -- todo: make this a helper:
+
+ implement {
+ name = "doifelseutfmathabove",
+ public = true,
+ actions = { utfmathaccent, ctx_doifelsesomething },
+ arguments = { "argument", false, "'topaccent'", "'over'" }
+ }
+
+ implement {
+ name = "doifelseutfmathbelow",
+ public = true,
+ actions = { utfmathaccent, ctx_doifelsesomething },
+ arguments = { "argument", false, "'bottomaccent'", "'under'" }
+ }
+
+ implement {
+ name = "doifelseutfmathaccent",
+ public = true,
+ actions = { utfmathaccent, ctx_doifelsesomething },
+ arguments = "argument",
+ }
+
+ implement {
+ name = "doifelseutfmathfiller",
+ public = true,
+ actions = { utfmathfiller, ctx_doifelsesomething },
+ arguments = "argument",
+ }
+
+ implement {
+ name = "doifelseutfmathlimop",
+ public = true,
+ actions = { utfmathlimop, ctx_doifelsesomething },
+ arguments = "argument"
+ }
+
+end
+
+-- helpers
+--
+-- 1: step 1
+-- 2: step 2
+-- 3: htdp * 1.33^n
+-- 4: size * 1.33^n
+-- 5: use lfg
+
+function mathematics.big(tfmdata,unicode,n,method)
+ local t = tfmdata.characters
+ local c = t[unicode]
+ if c and n > 0 then
+ if method == 1 or method == 2 or method == 5 then
+ if method == 5 then
+ local b = tfmdata.bigslots
+ if b then
+ n = (n > #b and b[#b]) or b[n] or n
+ end
+ elseif method == 2 then -- large steps
+ n = n * 2
+ end
+ local next = c.next
+ while next do
+ if n <= 1 then
+ return next
+ else
+ n = n - 1
+ local tn = t[next].next
+ if tn then
+ next = tn
+ else
+ return next
+ end
+ end
+ end
+ elseif method >= 3 then
+ local size = 1.33^n
+ if method == 4 then
+ size = tfmdata.parameters.size * size
+ else -- if method == 3 then
+ size = (c.height + c.depth) * size
+ end
+ local next = c.next
+ while next do
+ local cn = t[next]
+ if (cn.height + cn.depth) >= size then
+ return next
+ else
+ local tn = cn.next
+ if tn then
+ next = tn
+ else
+ return next
+ end
+ end
+ end
+ end
+ end
+ return unicode
+end
+
+do -- experimental
+
+ -- local categories = { } -- indexed + hashed
+ --
+ -- local a_mathcategory = attributes.private("mathcategory")
+ --
+ -- local function registercategory(category,tag,data) -- always same data for tag
+ -- local c = categories[category]
+ -- if not c then
+ -- c = { }
+ -- categories[category] = c
+ -- end
+ -- local n = c[tag]
+ -- if not n then
+ -- n = #c + 1
+ -- c[n] = data
+ -- n = n * 1000 + category
+ -- c[tag] = n
+ -- end
+ -- return n
+ -- end
+ --
+ -- function mathematics.getcategory(n)
+ -- local category = n % 1000
+ -- return category, categories[category][floor(n/1000)]
+ -- end
+ --
+ -- mathematics.registercategory = registercategory
+ --
+ -- function commands.taggedmathfunction(tag,label)
+ -- if label then
+ -- texsetattribute(a_mathcategory,registercategory(1,tag,tag))
+ -- context.mathlabeltext(tag)
+ -- else
+ -- texsetattribute(a_mathcategory,1)
+ -- context(tag)
+ -- end
+ -- end
+
+ local categories = { }
+ mathematics.categories = categories
+
+ local a_mathcategory = attributes.private("mathcategory")
+
+ local functions = storage.allocate()
+ categories.functions = functions
+ local noffunctions = 1000 -- offset
+
+ implement {
+ name = "tagmfunctiontxt",
+ arguments = { "string", "conditional" },
+ actions = function(tag,apply)
+ local delta = apply and 1000 or 0
+ texsetattribute(a_mathcategory,1000 + delta)
+ end
+ }
+
+ implement {
+ name = "tagmfunctionlab",
+ arguments = { "string", "conditional" },
+ actions = function(tag,apply)
+ local delta = apply and 1000 or 0
+ local n = functions[tag]
+ if not n then
+ noffunctions = noffunctions + 1
+ functions[noffunctions] = tag
+ functions[tag] = noffunctions
+ texsetattribute(a_mathcategory,noffunctions + delta)
+ else
+ texsetattribute(a_mathcategory,n + delta)
+ end
+ end
+ }
+
+end
+
+do
+
+ local list
+
+ function mathematics.resetattributes()
+ if not list then
+ list = { }
+ for k, v in next, attributes.numbers do
+ if find(k,"^math") then
+ list[#list+1] = v
+ end
+ end
+ end
+ for i=1,#list do
+ texsetattribute(list[i],unsetvalue)
+ end
+ end
+
+end
+
+implement {
+ name = "resetmathattributes",
+ public = true,
+ protected = true,
+ actions = mathematics.resetattributes
+}
+
+-- weird to do this here but it's a side affect of math anyway
+
+implement {
+ name = "enableasciimode",
+ onlyonce = true,
+ actions = resolvers.macros.enablecomment,
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/math-ini.mkxl
index 9f541c3512b..c76d7313a35 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-ini.mkxl
@@ -3,7 +3,7 @@
%D version=2008.01.02,
%D title=\CONTEXT\ Math Macros,
%D subtitle=Initializations,
-%D author=Hans Hagen,
+%D author={Hans Hagen \& Mikael Sundqvist},
%D date=\currentdate,
%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
%C
@@ -13,70 +13,715 @@
\writestatus{loading}{ConTeXt Math Macros / Initializations}
-% todo: hpack as we skip math anyway
-%
-% todo: 0x2061 : function application
-% todo: 0x2062 : invisible times
-% todo: 0x2063 : invisible comma
+%D This is the \LMTX\ version of math support what evolved over decades. We started
+%D out with native display math, battled for years with the heuristic spacing,
+%D assumptions wrt number locations etc. Advanced alignments were implemented with
+%D the help of Aditya. In \MKIV\ everything got upgraded, and we ended up with three
+%D models for spacing and numbering: traditional (display), improved (using some
+%D \LUATEX\ control options), and future (using emulated display) where we also
+%D could handle multi|-|line formulas well. As \LUAMETATEX\ evolved it became clear
+%D that we should drop the first two models completely and stick to the emulated
+%D display mode combined with the ability to format multi|-|line formulas in greater
+%D detail.
+%D
+%D One can wonder what this does with compatibility. Of course we try to be
+%D interface compatible but better micro typography spacing has consequences.
+%D However, in practice it looks like we get better results without too many side
+%D effects. Also, we're not bound to for instance \AMS\ math because \CONTEXT\ is
+%D not used by scientific publishers. In fact over the 15 plus years of development
+%D (2022), no professional publisher (or large scale \TEX\ user) ever expressed
+%D interest in \LUATEX\ and \LUAMETATEX, definitely not in relation to math, which
+%D made it even more easy to upgrade the engine as well as \CONTEXT\ math and over
+%D time users have demonstrated to appreciate improvements. We can do as we like, as
+%D long as users like it too. It's with that mindset that Mikael Sundqvist and I
+%D undertook this effort which took a year to mature. It started out with
+%D implementing advanced spacing models based on inter|-|atom properties and control
+%D but stepwise more got added and improved. We also settled on the fact that fonts
+%D will never be perfect and that we need runtime fixing. That took some work but in
+%D the end put less burden on the engine.
+%D
+%D After an extremely short discussion MS and HH decided that we will not support
+%D \quote {BS ISO 80000-2:2009} because it doesn't comply to the CMS quality
+%D standards and is BS anyway.
+
+%D Musical timestamp for the April 2022 math (inline) snapping sub activity: eNerd⁴
+%D Time Capsule 2020 a.k.a. Farewell Party for Normalcy (DSD on the squeezebox with
+%D a proper DAC connected but it can hardly keep up which also counts for me with MS
+%D testing faster than I can provide variants (www.youtube.com/watch?v=xzQCqAJNOSM).
+
+\unprotect
-% a bit tricky way to set ... no (pseudo) registers but math hash values:
+\newdimension \mathstrutht
+\newdimension \mathstrutdp
+\newinteger \mathnestinglevel
+
+\newcount \c_strc_math_n_of_lines
+\newdimension \d_strc_math_max_width
+\newdimension \d_strc_math_first_width
+\newdimension \d_strc_math_last_width
+\newdimension \d_strc_math_first_height
+\newdimension \d_strc_math_last_depth
+\newdimension \d_strc_math_display_width
+\newdimension \d_strc_math_indent
+\newconditional\c_strc_math_indent
+
+\registerctxluafile{math-ini}{autosuffix}
+\registerctxluafile{math-dim}{autosuffix}
+%registerctxluafile{math-act}{autosuffix}
+\registerctxluafile{math-ext}{autosuffix} % might go
+\registerctxluafile{math-vfu}{autosuffix}
+\registerctxluafile{math-ttv}{autosuffix}
+\registerctxluafile{math-map}{autosuffix}
+\registerctxluafile{math-act}{autosuffix}
+\registerctxluafile{math-ren}{autosuffix}
+\registerctxluafile{math-noa}{autosuffix}
+\registerctxluafile{math-tag}{autosuffix}
+\registerctxluafile{math-fbk}{autosuffix}
+%registerctxluafile{math-dir}{autosuffix}
+\registerctxluafile{math-spa}{autosuffix}
+\registerctxluafile{math-fnt}{autosuffix}
+\registerctxluafile{math-pre}{autosuffix}
+
+%D Basic spacing:
+
+% \mathfencesmode \plusone % gone
+
+\delimiterfactor \plusthousand
+\delimitershortfall \zeropoint
+
+% These need to be set because otherwise the engine will not honor some font
+% properties. It also permits tracing. These might become engine defaults. As a
+% consequence we no longer check for traditional fonts but one can use font control
+% options.
+
+% \mathcontrolmode\plusone
+
+\mathfontcontrol\numexpr
+ \zerocount
+ +\overrulemathcontrolcode % let the node family/font win over current family/font
+ +\underrulemathcontrolcode % idem
+ +\radicalrulemathcontrolcode % idem
+ +\fractionrulemathcontrolcode % idem
+ +\accentskewhalfmathcontrolcode % fall back to half width skewing when no topaccent is given
+ +\accentskewapplymathcontrolcode % use topaccent, otherwise use skew char
+ +\applyordinarykernpairmathcontrolcode % old fonts
+ +\applyverticalitalickernmathcontrolcode % best do this indeed
+ +\applyordinaryitalickernmathcontrolcode % best do this indeed
+ % +\applycharitalickernmathcontrolcode % not done
+ % +\reboxcharitalickernmathcontrolcode % old code path
+ +\applyboxeditalickernmathcontrolcode % best do this indeed
+ +\staircasekernmathcontrolcode % use these when set
+ +\applytextitalickernmathcontrolcode
+ +\checktextitalickernmathcontrolcode
+ % +\checkspaceitalickernmathcontrolcode % old code path
+ +\applyscriptitalickernmathcontrolcode
+ % +\italicshapekernmathcontrolcode % obsolete: instead of adding pre italic to the shift, inject a kern
+ +\analyzescriptnucleuscharmathcontrolcode
+ +\analyzescriptnucleuslistmathcontrolcode
+ +\analyzescriptnucleusboxmathcontrolcode
+ +\accenttopskewwithoffsetmathcontrolcode
+ % +\ignorekerndimensionsmathcontrolcode % xits needs this (bad depth of fences)
+ % +\ignoreflataccentsmathcontrolcode
+ +\extendaccentsmathcontrolcode
+ +\extenddelimitersmathcontrolcode
+\relax
+
+% \mathpenaltiesmode\plusone
+
+% These are frozen values because otherwise we need to sync them when the predefined
+% muskip (internal) registers are changed.
+
+\immutable\mugluespecdef\defaultthickermuskip 7mu plus 5mu
+\immutable\mugluespecdef\defaultthickmuskip 5mu plus 3mu minus 1mu
+\immutable\mugluespecdef\defaultmedmuskip 4mu plus 2mu minus 2mu
+\immutable\mugluespecdef\defaultthinmuskip 3mu
+\immutable\mugluespecdef\defaulttinymuskip 2mu minus 1mu
+\immutable\mugluespecdef\defaultpettymuskip 1mu minus 0.5mu
+
+\immutable\mugluespecdef\halfthickmuskip 2.5mu plus 1.5mu minus 0.5mu
+\immutable\mugluespecdef\halfmedmuskip 2mu plus 1mu minus 1mu
+\immutable\mugluespecdef\halfthinmuskip 1.5mu
+\immutable\mugluespecdef\halftinymuskip 1mu minus 0.5mu
+\immutable\mugluespecdef\halfpettymuskip 0.5mu minus 0.25mu
+
+\immutable\mugluespecdef\hairmuskip .15mu
+
+\immutable\integerdef \defaultrelpenalty 500
+\immutable\integerdef \defaultbinoppenalty 700
+\immutable\integerdef \defaultprerelpenalty -100
+\immutable\integerdef \defaultprebinoppenalty -100
+
+\newmuskip\thickermuskip \thickermuskip \defaultthickermuskip
+
+% Beware: we don't support mathinner any longer. We do have construct, wrapper, ellipsis etc
+% as replacements and all inner spacing is basically unset.
+
+\setnewconstant\mathunsetcode \mathclassvalue unset
+
+\setnewconstant\mathordinarycode \mathclassvalue ordinary \aliased\let\mathordcode \mathordinarycode
+\setnewconstant\mathoperatorcode \mathclassvalue operator \aliased\let\mathopcode \mathoperatorcode
+\setnewconstant\mathbinarycode \mathclassvalue binary \aliased\let\mathbincode \mathbinarycode
+\setnewconstant\mathrelationcode \mathclassvalue relation \aliased\let\mathrelcode \mathrelationcode
+\setnewconstant\mathopencode \mathclassvalue open
+\setnewconstant\mathclosecode \mathclassvalue close
+\setnewconstant\mathpunctuationcode \mathclassvalue punctuation \aliased\let\mathpunctcode\mathpunctuationcode
+\setnewconstant\mathinnercode \mathclassvalue inner
+\setnewconstant\mathovercode \mathclassvalue over
+\setnewconstant\mathundercode \mathclassvalue under
+\setnewconstant\mathfractioncode \mathclassvalue fraction
+\setnewconstant\mathradicalcode \mathclassvalue radical
+\setnewconstant\mathmiddlecode \mathclassvalue middle
+\setnewconstant\mathaccentcode \mathclassvalue accent
+\setnewconstant\mathfencedcode \mathclassvalue fenced % unlikely to be seen but can be used
+\setnewconstant\mathghostcode \mathclassvalue ghost % transparent for classes
+\setnewconstant\mathvariablecode \mathclassvalue variable
+\setnewconstant\mathactivecode \mathclassvalue active
+\setnewconstant\mathvcentercode \mathclassvalue vcenter
+\setnewconstant\mathimaginarycode \mathclassvalue imaginary
+\setnewconstant\mathdifferentialcode \mathclassvalue differential
+\setnewconstant\mathexponentialcode \mathclassvalue exponential
+\setnewconstant\mathellipsiscode \mathclassvalue ellipsis % replacement for inner
+\setnewconstant\mathfunctioncode \mathclassvalue function
+\setnewconstant\mathdigitcode \mathclassvalue digit
+\setnewconstant\mathexplicitcode \mathclassvalue explicit % only for for control
+\setnewconstant\mathdivisioncode \mathclassvalue division
+\setnewconstant\mathfactorialcode \mathclassvalue factorial
+\setnewconstant\mathwrappedcode \mathclassvalue wrapped % replacement for inner
+\setnewconstant\mathconstructcode \mathclassvalue construct % replacement for inner
+\setnewconstant\mathdimensioncode \mathclassvalue dimension
+\setnewconstant\mathtextpunctuationcode \mathclassvalue textpunctuation % for punctuation in text font followed by interword spacing
+\setnewconstant\mathunspacedcode \mathclassvalue unspaced % for cases where we don't want spacing at all
+\setnewconstant\mathexperimentalcode \mathclassvalue experimental % for MS and HH testing purposed only
+\setnewconstant\mathunarycode \mathclassvalue unary % dedicated to Alan
+\setnewconstant\mathnumbergroupcode \mathclassvalue numbergroup
+
+\setnewconstant\mathbegincode \mathclassvalue begin
+\setnewconstant\mathendcode \mathclassvalue end
+\setnewconstant\mathallcode \mathclassvalue all
+\setnewconstant\mathfakecode \mathclassvalue fake
+
+%D \starttyping
+%D \enabletrackers[math.suspicious]
+%D
+%D \Umathchardef \foo \mathmaybeordinarycode 0 `o
+%D \Umathchardef \oof \mathmayberelationcode 0 `=
+%D \Umathchardef \ofo \mathmaybebinarycode 0 `+
+%D
+%D \starttext
+%D $ \foo _ 1 \ofo \foo _ 2 \oof \foo _ 3 + 4 $
+%D \stoptext
+%D \stoptyping
+%D
+%D Gives:
+%D
+%D \starttyping
+%D mathematics > suspicious > class 36, U+1D45C 𝑜
+%D mathematics > suspicious > class 38, U+0002B +
+%D mathematics > suspicious > class 37, U+0003D =
+%D \stoptyping
+
+\setnewconstant\mathmaybeordinarycode \mathclassvalue maybeordinary
+\setnewconstant\mathmayberelationcode \mathclassvalue mayberelation
+\setnewconstant\mathmaybebinarycode \mathclassvalue maybebinary
+
+%setnewconstant\mathtopaccentcode \mathclassvalue topaccent % these are private and above 31
+%setnewconstant\mathbottomaccentcode \mathclassvalue bottomaccent % these are private and above 31
+%setnewconstant\mathdelimitercode \mathclassvalue delimiter % these are private and above 31
+%setnewconstant\mathrootcode \mathclassvalue root % these are private and above 31
+%setnewconstant\mathprimecode \mathclassvalue prime % these are private and above 31
+
+%letmathspacing \mathimaginarycode \mathordinarycode \mathordinarycode \mathordinarycode \mathordinarycode
+%letmathspacing \mathdifferentialcode \mathordinarycode \mathordinarycode \mathordinarycode \mathordinarycode
+%letmathspacing \mathexponentialcode \mathordinarycode \mathordinarycode \mathordinarycode \mathordinarycode
+%letmathspacing \mathfunctioncode \mathordinarycode \mathordinarycode \mathordinarycode \mathordinarycode
+%letmathspacing \mathdigitcode \mathordinarycode \mathordinarycode \mathordinarycode \mathordinarycode
+
+\copymathspacing \mathimaginarycode \mathordinarycode
+\copymathspacing \mathdifferentialcode \mathordinarycode
+\copymathspacing \mathfactorialcode \mathordinarycode
+\copymathspacing \mathexponentialcode \mathordinarycode
+\copymathspacing \mathdigitcode \mathordinarycode
+\copymathspacing \mathfunctioncode \mathoperatorcode
+\copymathspacing \mathwrappedcode \mathfractioncode
+\copymathspacing \mathunarycode \mathordinarycode
+
+\copymathspacing \mathmaybeordinarycode \mathordinarycode
+\copymathspacing \mathmayberelationcode \mathrelationcode
+\copymathspacing \mathmaybebinarycode \mathbinarycode
+
+%copymathspacing \mathnumbergroupcode \mathpunctuationcode
+\copymathspacing \mathnumbergroupcode \mathrelationcode % for now
+
+\setnewconstant\mathlimopcode \plusone
+\setnewconstant\mathnolopcode \plusone
+
+%untraced\protected\def\mathordinary {\mathatom \s!class \mathordinarycode } % use \mathord
+%untraced\protected\def\mathoperator {\mathatom \s!class \mathoperatorcode } % use \mathop
+%untraced\protected\def\mathbinary {\mathatom \s!class \mathbinarycode } % use \mathbin
+%untraced\protected\def\mathrelation {\mathatom \s!class \mathrelationcode } % use \mathrel
+%untraced\protected\def\mathopen {\mathatom \s!class \mathopencode } % primitive
+%untraced\protected\def\mathclose {\mathatom \s!class \mathclosecode } % primitive
+%untraced\protected\def\mathpunctuation {\mathatom \s!class \mathpunctuationcode } % use \mathpunct
+%untraced\protected\def\mathinner {\mathatom \s!class \mathinnercode } % primitive
+%untraced\protected\def\mathover {\mathatom \s!class \mathovercode } % macro
+%untraced\protected\def\mathunder {\mathatom \s!class \mathundercode } % macro
+%untraced\protected\def\mathfraction {\mathatom \s!class \mathfractioncode } % use \mathfrac
+%untraced\protected\def\mathradical {\mathatom \s!class \mathradicalcode } % use \mathrad
+%untraced\protected\def\mathmiddle {\mathatom \s!class \mathmiddlecode } % primitive
+%untraced\protected\def\mathaccent {\mathatom \s!class \mathaccentcode } % primitive
+%untraced\protected\def\mathfenced {\mathatom \s!class \mathfencedcode } % primitive
+%untraced\protected\def\mathghost {\mathatom \s!class \mathghostcode } % primitive
+%untraced\protected\def\mathvariable {\mathatom \s!class \mathvariablecode } % useless
+%untraced\protected\def\mathactive {\mathatom \s!class \mathactivecode } % useless
+%untraced\protected\def\mathvcenter {\mathatom \s!class \mathvcentercode } % useless
+\untraced\protected\def\mathimaginary {\mathatom \s!class \mathimaginarycode }
+\untraced\protected\def\mathdifferential{\mathatom \s!class \mathdifferentialcode}
+\untraced\protected\def\mathexponential {\mathatom \s!class \mathexponentialcode }
+%untraced\protected\def\mathfunction {\mathatom \s!class \mathfunctioncode } % macro
+\untraced\protected\def\mathdigit {\mathatom \s!class \mathdigitcode }
+%untraced\protected\def\mathexplicit {\mathatom \s!class \mathexplicitcode } % dangerous
+\untraced\protected\def\mathdivision {\mathatom \s!class \mathdivisioncode }
+\untraced\protected\def\mathfactorial {\mathatom \s!class \mathfactorialcode }
+\untraced\protected\def\mathwrapped {\mathatom \s!class \mathwrappedcode }
+\untraced\protected\def\mathconstruct {\mathatom \s!class \mathconstructcode }
+\untraced\protected\def\mathdimension {\mathatom \s!class \mathdimensioncode }
+%untraced\protected\def\mathbegin {\mathatom \s!class \mathbegincode } % dangerous
+%untraced\protected\def\mathend {\mathatom \s!class \mathendcode } % dangerous
+\untraced\protected\def\mathunary {\mathatom \s!class \mathunarycode }
+
+% obsolete
+
+\setnewconstant\mathboxcode \zerocount
+\setnewconstant\mathchoicecode \zerocount
+\setnewconstant\mathalphacode \zerocount
+\setnewconstant\mathnothingcode \zerocount
+
+%D At some point we will drop these in the \LUAMETATEX\ engine becuase we have many
+%D more options there.
+
+\pushoverloadmode
+ \untraced\permanent\protected\def\binoppenalty {\setmathpostpenalty\mathbinarycode}
+ \untraced\permanent\protected\def\prebinoppenalty{\setmathprepenalty \mathbinarycode}
+ \untraced\permanent\protected\def\relpenalty {\setmathpostpenalty\mathrelationcode}
+ \untraced\permanent\protected\def\prerelpenalty {\setmathprepenalty \mathrelationcode}
+\popoverloadmode
+
+% %D These verbose commands are obsolete because there are plenty more classes in
+% %D \LMTX\ than in \MKIV.
+%
+% \permanent\protected\def\ordordspacing {\setmathspacing \mathordinarycode \mathordinarycode }
+% \permanent\protected\def\ordopspacing {\setmathspacing \mathordinarycode \mathoperatorcode }
+% \permanent\protected\def\ordbinspacing {\setmathspacing \mathordinarycode \mathbinarycode }
+% \permanent\protected\def\ordrelspacing {\setmathspacing \mathordinarycode \mathrelationcode }
+% \permanent\protected\def\ordopenspacing {\setmathspacing \mathordinarycode \mathopencode }
+% \permanent\protected\def\ordclosespacing {\setmathspacing \mathordinarycode \mathclosecode }
+% \permanent\protected\def\ordpunctspacing {\setmathspacing \mathordinarycode \mathpunctuationcode}
+% %permanent\protected\def\ordinnerspacing {\setmathspacing \mathordinarycode \mathinnercode }
+% %permanent\protected\def\ordfractionspacing {\setmathspacing \mathordinarycode \mathfractioncode }
+% %permanent\protected\def\ordradicalspacing {\setmathspacing \mathordinarycode \mathradicalcode }
+% \permanent\protected\def\ordmiddlespacing {\setmathspacing \mathordinarycode \mathmiddlecode }
+% %permanent\protected\def\ordaccentspacing {\setmathspacing \mathordinarycode \mathaccentcode }
+%
+% \permanent\protected\def\opordspacing {\setmathspacing \mathoperatorcode \mathordinarycode }
+% \permanent\protected\def\opopspacing {\setmathspacing \mathoperatorcode \mathoperatorcode }
+% \permanent\protected\def\opbinspacing {\setmathspacing \mathoperatorcode \mathbinarycode }
+% \permanent\protected\def\oprelspacing {\setmathspacing \mathoperatorcode \mathrelationcode }
+% \permanent\protected\def\opopenspacing {\setmathspacing \mathoperatorcode \mathopencode }
+% \permanent\protected\def\opclosespacing {\setmathspacing \mathoperatorcode \mathclosecode }
+% \permanent\protected\def\oppunctspacing {\setmathspacing \mathoperatorcode \mathpunctuationcode}
+% %permanent\protected\def\opinnerspacing {\setmathspacing \mathoperatorcode \mathinnercode }
+% %permanent\protected\def\opfractionspacing {\setmathspacing \mathoperatorcode \mathfractioncode }
+% %permanent\protected\def\opradicalspacing {\setmathspacing \mathoperatorcode \mathradicalcode }
+% \permanent\protected\def\opmiddlespacing {\setmathspacing \mathoperatorcode \mathmiddlecode }
+% %permanent\protected\def\opaccentspacing {\setmathspacing \mathoperatorcode \mathaccentcode }
+%
+% \permanent\protected\def\binordspacing {\setmathspacing \mathbinarycode \mathordinarycode }
+% \permanent\protected\def\binopspacing {\setmathspacing \mathbinarycode \mathoperatorcode }
+% \permanent\protected\def\binbinspacing {\setmathspacing \mathbinarycode \mathbinarycode }
+% \permanent\protected\def\binrelspacing {\setmathspacing \mathbinarycode \mathrelationcode }
+% \permanent\protected\def\binopenspacing {\setmathspacing \mathbinarycode \mathopencode }
+% \permanent\protected\def\binclosespacing {\setmathspacing \mathbinarycode \mathclosecode }
+% \permanent\protected\def\binpunctspacing {\setmathspacing \mathbinarycode \mathpunctuationcode}
+% %permanent\protected\def\bininnerspacing {\setmathspacing \mathbinarycode \mathinnercode }
+% %permanent\protected\def\binfractionspacing {\setmathspacing \mathbinarycode \mathfractioncode }
+% %permanent\protected\def\binradicalspacing {\setmathspacing \mathbinarycode \mathradicalcode }
+% \permanent\protected\def\binmiddlespacing {\setmathspacing \mathbinarycode \mathmiddlecode }
+% %permanent\protected\def\binaccentspacing {\setmathspacing \mathbinarycode \mathaccentcode }
%
-% \normalexpanded{\Umathlimitabovevgap\displaystyle=40\dimexpr\the\Umathlimitabovevgap\displaystyle\relax}
+% \permanent\protected\def\relordspacing {\setmathspacing \mathrelationcode \mathordinarycode }
+% \permanent\protected\def\relopspacing {\setmathspacing \mathrelationcode \mathoperatorcode }
+% \permanent\protected\def\relbinspacing {\setmathspacing \mathrelationcode \mathbinarycode }
+% \permanent\protected\def\relrelspacing {\setmathspacing \mathrelationcode \mathrelationcode }
+% \permanent\protected\def\relopenspacing {\setmathspacing \mathrelationcode \mathopencode }
+% \permanent\protected\def\relclosespacing {\setmathspacing \mathrelationcode \mathclosecode }
+% \permanent\protected\def\relpunctspacing {\setmathspacing \mathrelationcode \mathpunctuationcode}
+% %permanent\protected\def\relinnerspacing {\setmathspacing \mathrelationcode \mathinnercode }
+% %permanent\protected\def\relfractionspacing {\setmathspacing \mathrelationcode \mathfractioncode }
+% %permanent\protected\def\relradicalspacing {\setmathspacing \mathrelationcode \mathradicalcode }
+% \permanent\protected\def\relmiddlespacing {\setmathspacing \mathrelationcode \mathmiddlecode }
+% %permanent\protected\def\relaccentspacing {\setmathspacing \mathrelationcode \mathaccentcode }
+%
+% \permanent\protected\def\openordspacing {\setmathspacing \mathopencode \mathordinarycode }
+% \permanent\protected\def\openopspacing {\setmathspacing \mathopencode \mathoperatorcode }
+% \permanent\protected\def\openbinspacing {\setmathspacing \mathopencode \mathbinarycode }
+% \permanent\protected\def\openrelspacing {\setmathspacing \mathopencode \mathrelationcode }
+% \permanent\protected\def\openopenspacing {\setmathspacing \mathopencode \mathopencode }
+% \permanent\protected\def\openclosespacing {\setmathspacing \mathopencode \mathclosecode }
+% \permanent\protected\def\openpunctspacing {\setmathspacing \mathopencode \mathpunctuationcode}
+% %permanent\protected\def\openinnerspacing {\setmathspacing \mathopencode \mathinnercode }
+% %permanent\protected\def\openfractionspacing {\setmathspacing \mathopencode \mathfractioncode }
+% %permanent\protected\def\openradicalspacing {\setmathspacing \mathopencode \mathradicalcode }
+% \permanent\protected\def\openmiddlespacing {\setmathspacing \mathopencode \mathmiddlecode }
+% %permanent\protected\def\openaccentspacing {\setmathspacing \mathopencode \mathaccentcode }
+%
+% \permanent\protected\def\closeordspacing {\setmathspacing \mathclosecode \mathordinarycode }
+% \permanent\protected\def\closeopspacing {\setmathspacing \mathclosecode \mathoperatorcode }
+% \permanent\protected\def\closebinspacing {\setmathspacing \mathclosecode \mathbinarycode }
+% \permanent\protected\def\closerelspacing {\setmathspacing \mathclosecode \mathrelationcode }
+% \permanent\protected\def\closeopenspacing {\setmathspacing \mathclosecode \mathopencode }
+% \permanent\protected\def\closeclosespacing {\setmathspacing \mathclosecode \mathclosecode }
+% \permanent\protected\def\closepunctspacing {\setmathspacing \mathclosecode \mathpunctuationcode}
+% %permanent\protected\def\closeinnerspacing {\setmathspacing \mathclosecode \mathinnercode }
+% %permanent\protected\def\closefractionspacing {\setmathspacing \mathclosecode \mathfractioncode }
+% %permanent\protected\def\closeradicalspacing {\setmathspacing \mathclosecode \mathradicalcode }
+% \permanent\protected\def\closemiddlespacing {\setmathspacing \mathclosecode \mathmiddlecode }
+% %permanent\protected\def\closeaccentspacing {\setmathspacing \mathclosecode \mathaccentcode }
+%
+% \permanent\protected\def\punctordspacing {\setmathspacing \mathpunctuationcode \mathordinarycode }
+% \permanent\protected\def\punctopspacing {\setmathspacing \mathpunctuationcode \mathoperatorcode }
+% \permanent\protected\def\punctbinspacing {\setmathspacing \mathpunctuationcode \mathbinarycode }
+% \permanent\protected\def\punctrelspacing {\setmathspacing \mathpunctuationcode \mathrelationcode }
+% \permanent\protected\def\punctopenspacing {\setmathspacing \mathpunctuationcode \mathopencode }
+% \permanent\protected\def\punctclosespacing {\setmathspacing \mathpunctuationcode \mathclosecode }
+% \permanent\protected\def\punctpunctspacing {\setmathspacing \mathpunctuationcode \mathpunctuationcode}
+% %permanent\protected\def\punctinnerspacing {\setmathspacing \mathpunctuationcode \mathinnercode }
+% %permanent\protected\def\punctfractionspacing {\setmathspacing \mathpunctuationcode \mathfractioncode }
+% %permanent\protected\def\punctradicalspacing {\setmathspacing \mathpunctuationcode \mathradicalcode }
+% \permanent\protected\def\punctmiddlespacing {\setmathspacing \mathpunctuationcode \mathmiddlecode }
+% %permanent\protected\def\punctaccentspacing {\setmathspacing \mathpunctuationcode \mathaccentcode }
+%
+% %permanent\protected\def\innerordspacing {\setmathspacing \mathinnercode \mathordinarycode }
+% %permanent\protected\def\inneropspacing {\setmathspacing \mathinnercode \mathoperatorcode }
+% %permanent\protected\def\innerbinspacing {\setmathspacing \mathinnercode \mathbinarycode }
+% %permanent\protected\def\innerrelspacing {\setmathspacing \mathinnercode \mathrelationcode }
+% %permanent\protected\def\inneropenspacing {\setmathspacing \mathinnercode \mathopencode }
+% %permanent\protected\def\innerclosespacing {\setmathspacing \mathinnercode \mathclosecode }
+% %permanent\protected\def\innerpunctspacing {\setmathspacing \mathinnercode \mathpunctuationcode}
+% %permanent\protected\def\innerinnerspacing {\setmathspacing \mathinnercode \mathinnercode }
+% %permanent\protected\def\innerfractionspacing {\setmathspacing \mathinnercode \mathfractioncode }
+% %permanent\protected\def\innerradicalspacing {\setmathspacing \mathinnercode \mathradicalcode }
+% %permanent\protected\def\innermiddlespacing {\setmathspacing \mathinnercode \mathmiddlecode }
+% %permanent\protected\def\inneraccentspacing {\setmathspacing \mathinnercode \mathaccentcode }
+%
+% \permanent\protected\def\fractionordspacing {\setmathspacing \mathfractioncode \mathordinarycode }
+% \permanent\protected\def\fractionopspacing {\setmathspacing \mathfractioncode \mathoperatorcode }
+% \permanent\protected\def\fractionbinspacing {\setmathspacing \mathfractioncode \mathbinarycode }
+% \permanent\protected\def\fractionrelspacing {\setmathspacing \mathfractioncode \mathrelationcode }
+% \permanent\protected\def\fractionopenspacing {\setmathspacing \mathfractioncode \mathopencode }
+% \permanent\protected\def\fractionclosespacing {\setmathspacing \mathfractioncode \mathclosecode }
+% \permanent\protected\def\fractionpunctspacing {\setmathspacing \mathfractioncode \mathpunctuationcode}
+% %permanent\protected\def\fractioninnerspacing {\setmathspacing \mathfractioncode \mathinnercode }
+% %permanent\protected\def\fractionfractionspacing{\setmathspacing \mathfractioncode \mathfractioncode }
+% %permanent\protected\def\fractionradicalspacing {\setmathspacing \mathfractioncode \mathradicalcode }
+% \permanent\protected\def\fractionmiddlespacing {\setmathspacing \mathfractioncode \mathmiddlecode }
+% %permanent\protected\def\fractionaccentspacing {\setmathspacing \mathfractioncode \mathaccentcode }
+%
+% \permanent\protected\def\radicalordspacing {\setmathspacing \mathradicalcode \mathordinarycode }
+% \permanent\protected\def\radicalopspacing {\setmathspacing \mathradicalcode \mathoperatorcode }
+% \permanent\protected\def\radicalbinspacing {\setmathspacing \mathradicalcode \mathbinarycode }
+% \permanent\protected\def\radicalrelspacing {\setmathspacing \mathradicalcode \mathrelationcode }
+% \permanent\protected\def\radicalopenspacing {\setmathspacing \mathradicalcode \mathopencode }
+% \permanent\protected\def\radicalclosespacing {\setmathspacing \mathradicalcode \mathclosecode }
+% \permanent\protected\def\radicalpunctspacing {\setmathspacing \mathradicalcode \mathpunctuationcode}
+% %permanent\protected\def\radicalinnerspacing {\setmathspacing \mathradicalcode \mathinnercode }
+% %permanent\protected\def\radicalfractionspacing {\setmathspacing \mathradicalcode \mathfractioncode }
+% %permanent\protected\def\radicalradicalspacing {\setmathspacing \mathradicalcode \mathradicalcode }
+% \permanent\protected\def\radicalmiddlespacing {\setmathspacing \mathradicalcode \mathmiddlecode }
+% %permanent\protected\def\radicalaccentspacing {\setmathspacing \mathradicalcode \mathaccentcode }
+%
+% \permanent\protected\def\middleordspacing {\setmathspacing \mathmiddlecode \mathordinarycode }
+% \permanent\protected\def\middleopspacing {\setmathspacing \mathmiddlecode \mathoperatorcode }
+% \permanent\protected\def\middlebinspacing {\setmathspacing \mathmiddlecode \mathbinarycode }
+% \permanent\protected\def\middlerelspacing {\setmathspacing \mathmiddlecode \mathrelationcode }
+% \permanent\protected\def\middleopenspacing {\setmathspacing \mathmiddlecode \mathopencode }
+% \permanent\protected\def\middleclosespacing {\setmathspacing \mathmiddlecode \mathclosecode }
+% \permanent\protected\def\middlepunctspacing {\setmathspacing \mathmiddlecode \mathpunctuationcode}
+% %permanent\protected\def\middleinnerspacing {\setmathspacing \mathmiddlecode \mathinnercode }
+% %permanent\protected\def\middlefractionspacing {\setmathspacing \mathmiddlecode \mathfractioncode }
+% %permanent\protected\def\middleradicalspacing {\setmathspacing \mathmiddlecode \mathradicalcode }
+% \permanent\protected\def\middlemiddlespacing {\setmathspacing \mathmiddlecode \mathmiddlecode }
+% %permanent\protected\def\middleaccentspacing {\setmathspacing \mathmiddlecode \mathaccentcode }
+%
+% \permanent\protected\def\accentordspacing {\setmathspacing \mathaccentcode \mathordinarycode }
+% \permanent\protected\def\accentopspacing {\setmathspacing \mathaccentcode \mathoperatorcode }
+% \permanent\protected\def\accentbinspacing {\setmathspacing \mathaccentcode \mathbinarycode }
+% \permanent\protected\def\accentrelspacing {\setmathspacing \mathaccentcode \mathrelationcode }
+% \permanent\protected\def\accentopenspacing {\setmathspacing \mathaccentcode \mathopencode }
+% \permanent\protected\def\accentclosespacing {\setmathspacing \mathaccentcode \mathclosecode }
+% \permanent\protected\def\accentpunctspacing {\setmathspacing \mathaccentcode \mathpunctuationcode}
+% %permanent\protected\def\accentinnerspacing {\setmathspacing \mathaccentcode \mathinnercode }
+% %permanent\protected\def\accentfractionspacing {\setmathspacing \mathaccentcode \mathfractioncode }
+% %permanent\protected\def\accentradicalspacing {\setmathspacing \mathaccentcode \mathradicalcode }
+% \permanent\protected\def\accentmiddlespacing {\setmathspacing \mathaccentcode \mathmiddlecode }
+% %permanent\protected\def\accentaccentspacing {\setmathspacing \mathaccentcode \mathaccentcode }
+
+%D In the end Mikael and I prefer this but we need a high level interface:
+
+% \setmathignore\Umathspacebeforescript \plusone
+% \setmathignore\Umathspaceafterscript \plusone
+% \setmathignore\Umathradicaldegreebefore\plusone % done in math-rad.mklx
+
+\setmathignore \Umathspacebeforescript\zerocount
+\setmathignore \Umathspaceafterscript \zerocount
+
+\mathslackmode \plusone
+\mathgroupingmode \plusone
+%mathdoublescriptmode\zerocount % -1 will give an error (as usual) .. "LLRR (left class, right class)
+
+%D \starttyping
+%D \startTEXpage[offset=1dk]
+%D $ 1 {\red +} 2$\par
+%D $ 1 \color[red]{+} 2$\par
+%D \mathgroupingmode0
+%D $ 1 {\red +} 2$\par
+%D $ 1 \mathbinary{\red +} 2$\par
+%D $ 1 \color[red]{+} 2$\par
+%D \stopTEXpage
+%D \stoptyping
-% Todo in luatex maincontrol.w: also accept a number here:
+% $x ^^1__2 ^3_4 ^5_6 ^7_8 $
+
+\mathdoublescriptmode
+ "\tohexadecimal\mathfakecode
+ \tohexadecimal\mathfakecode
+ \tohexadecimal\mathfakecode
+
+\integerdef\defaultmathclassoptions\numexpr
+ \nopreslackclassoptioncode
+ +\nopostslackclassoptioncode
+ % +\lefttopkernclassoptioncode % applied in a late stage e.g. division
+ % +\righttopkernclassoptioncode % applied in a late stage e.g. division
+ % +\leftbottomkernclassoptioncode % applied in a late stage e.g. division
+ % +\rightbottomkernclassoptioncode % applied in a late stage e.g. division
+ % +\lookaheadforendclassoptioncode % signed whatevers
+ % +\noitaliccorrectionclassoptioncode
+ % +\openfenceclassoptioncode % the engine doesn't really used this property but maybe
+ % +\closefenceclassoptioncode % at some point we want to have to have access to it at
+ % +\middlefenceclassoptioncode % lua end ... so we keep it (also in the engine) commented
+ % +\checkligatureclassoptioncode % no font provides this so it is more a compatibility feature
+ % +\checkkernpairclassoptioncode
+ % +\flattenclassoptioncode
+ % +\omitpenaltyclassoptioncode % old school check, we do pairwise instead
+ % +\carryoverlefttopkernclassoptioncode
+ % +\carryoverleftbottomkernclassoptioncode
+ % +\carryoverrighttopkernclassoptioncode
+ % +\carryoverrightbottomkernclassoptioncode
+ % +\preferdelimiterdimensionsclassoptioncode
+\relax
+
+\setmathoptions\mathordinarycode\numexpr
+ \noitaliccorrectionclassoptioncode
+ % +\checkligatureclassoptioncode
+ +\checkkernpairclassoptioncode
+ % +\flattenclassoptioncode
+\relax
+
+\setmathoptions\mathoperatorcode\numexpr
+ \defaultmathclassoptions
+ % +\checkligatureclassoptioncode
+ +\checkkernpairclassoptioncode
+ % up to Mikael to decide, ok with italic chars, maybe less so with raw ints:
+ % +\operatoritaliccorrectionclassoptioncode
+\relax
+
+% we tweak away weird italics so only special cases see this:
+%
+% \def\IntOr{\Umathchar\mathordinarycode"00"00222B }
+% \def\IntOp{\Umathchar\mathoperatorcode"00"00222B }
+%
+% \showglyphs \showfontitalics
+% $\IntOp\limits x \quad \IntOp\limits^1_2 x \quad \IntOp\nolimits^1_2 x $\blank
+% $\IntOr\limits x \quad \IntOr\limits^1_2 x \quad \IntOr\nolimits^1_2 x $\blank
%
-% case set_math_param_cmd:
-% p = cur_chr;
-% get_token();
-% if (cur_cmd != math_style_cmd) {
+% $\mathop{f} (x) \quad \mathop{f}\limits (x) \quad \mathop{f}\nolimits (x)$\blank
+% $\mathop{f}^a_b (x) \quad \mathop{f}\limits^a_b (x) \quad \mathop{f}\nolimits^a_b (x)$\blank
+
+\setmathoptions\mathbinarycode\numexpr
+ \defaultmathclassoptions
+ +\lookaheadforendclassoptioncode
+ +\noitaliccorrectionclassoptioncode
+ % +\checkligatureclassoptioncode
+ +\checkkernpairclassoptioncode
+ % +\flattenclassoptioncode
+\relax
+
+\setmathoptions\mathrelationcode\numexpr
+ \defaultmathclassoptions
+ +\noitaliccorrectionclassoptioncode
+ % +\checkligatureclassoptioncode
+ +\checkkernpairclassoptioncode
+ % +\flattenclassoptioncode
+ % +\omitpenaltyclassoptioncode
+\relax
+
+\setmathoptions\mathopencode\numexpr
+ \defaultmathclassoptions
+ +\noitaliccorrectionclassoptioncode
+ % +\openfenceclassoptioncode
+ % +\checkligatureclassoptioncode
+ +\checkkernpairclassoptioncode
+\relax
+
+\setmathoptions\mathclosecode\numexpr
+ \defaultmathclassoptions
+ +\noitaliccorrectionclassoptioncode
+ % +\closefenceclassoptioncode
+ % +\checkligatureclassoptioncode
+ +\checkkernpairclassoptioncode
+ +\raiseprimeclassoptioncode
+\relax
+
+\setmathoptions\mathpunctuationcode\numexpr
+ \defaultmathclassoptions
+ +\noitaliccorrectionclassoptioncode
+ % +\checkligatureclassoptioncode
+ % +\flattenclassoptioncode
+ +\checkkernpairclassoptioncode
+ +\removeitaliccorrectionclassoptioncode
+\relax
+
+\setmathoptions\mathvariablecode\numexpr
+ \noitaliccorrectionclassoptioncode
+\relax
+
+\setmathoptions\mathactivecode\numexpr
+ \noitaliccorrectionclassoptioncode
+\relax
+
+%setmathoptions\mathinnercode\numexpr
+% \noitaliccorrectionclassoptioncode
+% +\flattenclassoptioncode
+%relax
+
+\setmathoptions\mathmiddlecode\numexpr
+ \noitaliccorrectionclassoptioncode
+ % +\middlefenceclassoptioncode
+ +\raiseprimeclassoptioncode
+ +\carryoverlefttopkernclassoptioncode
+ +\carryoverleftbottomkernclassoptioncode
+ +\carryoverrighttopkernclassoptioncode
+ +\carryoverrightbottomkernclassoptioncode
+ +\preferdelimiterdimensionsclassoptioncode
+\relax
+
+\setmathoptions\mathfractioncode\numexpr
+ \defaultmathclassoptions
+ +\raiseprimeclassoptioncode
+ +\carryoverlefttopkernclassoptioncode
+ +\carryoverleftbottomkernclassoptioncode
+ +\carryoverrighttopkernclassoptioncode
+ +\carryoverrightbottomkernclassoptioncode
+ +\preferdelimiterdimensionsclassoptioncode
+\relax
+
+\setmathoptions\mathradicalcode\numexpr
+ \defaultmathclassoptions
+ +\raiseprimeclassoptioncode
+ +\carryoverlefttopkernclassoptioncode
+ +\carryoverleftbottomkernclassoptioncode
+ +\carryoverrighttopkernclassoptioncode
+ +\carryoverrightbottomkernclassoptioncode
+ +\preferdelimiterdimensionsclassoptioncode
+\relax
+
+\setmathoptions\mathaccentcode\numexpr
+ \defaultmathclassoptions
+ +\autoinjectclassoptioncode
+\relax
+
+% ord spacing but with support for \m{m^2/x__3}
+
+\setmathoptions\mathdivisioncode\numexpr
+ \nopreslackclassoptioncode
+ +\nopostslackclassoptioncode
+ +\lefttopkernclassoptioncode
+ % +\righttopkernclassoptioncode
+ % +\leftbottomkernclassoptioncode
+ +\rightbottomkernclassoptioncode
+\relax
+
+\setmathoptions\mathbegincode\numexpr
+ \nopostslackclassoptioncode
+\relax
+
+\setmathoptions\mathendcode\numexpr
+ \nopreslackclassoptioncode
+\relax
+
+% Fenced is only used internally as these fences become open, middle and close
+% subtypes. If we don't set the following we should actually also define the
+% spacing rules.
+
+\setmathoptions\mathfencedcode\numexpr
+ \unpackclassoptioncode
+ +\carryoverlefttopkernclassoptioncode
+ +\carryoverleftbottomkernclassoptioncode
+ +\carryoverrighttopkernclassoptioncode
+ +\carryoverrightbottomkernclassoptioncode
+ +\preferdelimiterdimensionsclassoptioncode
+\relax
+
+% test case for \lefttopkernclassoptioncode and \leftbottomkernclassoptioncode in cambria close:
%
-% plus two new math styles: larger/smaller
+% \setupbodyfont[cambria]
+% %\enableexperiments[math.extensibles]
+% %\disableexperiments[math.extensibles]
%
-% \protected\def\Umathshow#1%
-% {\hbox{\infofont(\string#1:\the#1\textstyle,\the#1\scriptstyle,\the#1\scriptscriptstyle)}}
+% \startTEXpage[offset=1dk]
+% \startformula \showglyphs
+% \left\{ \mathatom class \mathfractioncode {\raise .6ex\hbox{\blackrule[color=blue, height=3cm,depth=3cm]}} \right\} ^1 _4 +
+% \left\( \mathatom class \mathfractioncode {\raise .6ex\hbox{\blackrule[color=green, height=4cm,depth=4cm]}} \right\) ^2 _3 -
+% \left\{ \mathatom class \mathfractioncode {\raise .6ex\hbox{\blackrule[color=red, height=2cm,depth=2cm]}} \right\} ^3 _2 +
+% \left\( \mathatom class \mathfractioncode {\raise .6ex\hbox{\blackrule[color=yellow,height=1cm,depth=1cm]}} \right\) ^4 _1
+% \stopformula
+% \stopTEXpage
-%D This module provides namespaces for math fonts, thereby permitting mixed usage of
-%D math fonts. Although not strictly needed, we also provide a family name mapping
-%D mechanism as used in the (original) AMS math definition files, but here these
-%D names can recursively be remapped and if needed, dynamically be changed. We've
-%D tried to minimize the number of definition commands and use plain \TEX\
-%D definitions as fallback. We've tried to follow a couple of conventions from plain
-%D and AMS math in order to achieve backward compatinility. We also kept an eye on
-%D future usage of these modules in the perspective of MathML and unicode fonts.
+%D For now \unknown (todo: make it adapt to style but we're in text anyway)
-%D There is a subtle issue with grouping: the \type {\begingroup} method will not
-%D restore a changed mathstyle so best avoid that one. However, there are cases where
-%D we really need to use such grouping.
+\permanent\protected\def\math_discretionary_plus {\discretionary class \mathbinarycode {$+$}{$+$}{$+$}}
+\permanent\protected\def\math_discretionary_minus{\discretionary class \mathbinarycode {$-$}{$-$}{$-$}}
-% Weird, these fail, maybe amp is solved in a later state from char noads (needs a
-% fix in luatex):
-%
-% $\char"26$
-% $\a$
-% $\string&$
+\newtoks\everymathdiscretionaries
-% mathop applied to characters centers it vertically
+\appendtoks
+ \enforced\let\+\math_discretionary_plus
+ \enforced\let\-\math_discretionary_minus
+\to \everymathdiscretionaries
-\unprotect
+\appendtoks
+ \ifconditional\c_math_discretionaries
+ \the\everymathdiscretionaries
+ \fi
+\to \everymathematics
-%D We move these definitions into the format:
+\setfalse\c_math_discretionaries
-% test [[\char948 \cldcontext{utf.char(948)}]]
-% test $[[\char948 \cldcontext{utf.char(948)}]]$
+\installtexexperiment
+ {mathematics.discretionaries}
+ {\settrue \c_math_discretionaries}
+ {\setfalse\c_math_discretionaries}
-\registerctxluafile{math-ini}{}
-\registerctxluafile{math-dim}{}
-\registerctxluafile{math-act}{autosuffix}
-\registerctxluafile{math-ext}{}
-\registerctxluafile{math-vfu}{autosuffix}
-\registerctxluafile{math-ttv}{}
-\registerctxluafile{math-map}{optimize}
-\registerctxluafile{math-ren}{}
-\registerctxluafile{math-noa}{autosuffix,optimize}
-\registerctxluafile{math-tag}{autosuffix}
-\registerctxluafile{math-fbk}{}
-\registerctxluafile{math-dir}{}
-\registerctxluafile{math-spa}{}
+%D This is moved here from supp-mat:
+
+\permanent\protected\def\dimension#1%
+ {\mathematics
+ {\mathatom
+ \s!leftclass \mathdimensioncode
+ \s!rightclass \mathordinarycode
+ {\tf #1}}}
+
+\permanent\protected\def\nodimension#1%
+ {#1}
%D A starter:
%D
@@ -90,24 +735,12 @@
%D
%D \start \blank \getbuffer \blank \stop
-\newcount\mathnestinglevel
+% \newinteger\mathnestinglevel % see top
\appendtoks
- \advance\mathnestinglevel\plusone
+ \advanceby\mathnestinglevel\plusone
\to \everymathematics
-%D A few compatibility helpers:
-
-\permanent\def\Umathbotaccent{\Umathaccent \s!bottom }
-\permanent\def\Umathtopaccent{\Umathaccent \s!top }
-\permanent\def\Umathaccents {\Umathaccent \s!both } % strange highlighting
-
-\ifdefined\Umathcharclass \else
- \permanent\def\Umathcharclass{\numexpr\cldcontext{tex.getmathcode(token.scan_int())[1]}\relax}
- \permanent\def\Umathcharfam {\numexpr\cldcontext{tex.getmathcode(token.scan_int())[2]}\relax}
- \permanent\def\Umathcharslot {\numexpr\cldcontext{tex.getmathcode(token.scan_int())[3]}\relax}
-\fi
-
%D The attributes that we will use (todo: pack some into one but uglier code):
\definesystemattribute[mathalphabet] [public]
@@ -121,16 +754,26 @@
\definesystemattribute[mathitalics] [public]
\definesystemattribute[mathkernpairs] [public]
\definesystemattribute[mathbidi] [public]
-\definesystemattribute[mathdomain] [public]
+%definesystemattribute[mathdomain] [public]
\definesystemattribute[mathcollapsing] [public]
\definesystemattribute[mathunstack] [public]
+\definesystemattribute[mathvariant] [public]
+\definesystemattribute[mathnumbers] [public]
+\definesystemattribute[mathspacing] [public]
+\definesystemattribute[mathfencing] [public]
\definesystemattribute[displaymath] [public]
-\mathflattenmode 31
+% \mathflattenmode\numexpr
+% \ordmathflattencode
+% +\binmathflattencode
+% +\relmathflattencode
+% +\punctmathflattencode
+% +\innermathflattencode
+% \relax
\ifdefined\ordlimits\else
- \let\ordlimits\limits
+ \let\ordlimits\Umathlimits % downward compatible
\fi
\appendtoks
@@ -142,9 +785,7 @@
\c_attr_displaymath\plusone
\to \everybeforedisplayformula
-\defaultmathfamily \zerocount % 255
-
-\permanent\protected\def\resetmathattributes{\clf_resetmathattributes}
+% defined at lua end \permanent\protected\def\resetmathattributes{\resetmathattributes}
% handy
@@ -166,15 +807,33 @@
\settrue\indisplaymath
\fi}
+\permanent\protected\def\forceinlinemath
+ {\ifmmode
+ \textstyle
+ \setfalse\indisplaymath
+ \fi}
+
+% \permanent\protected\def\startforceddisplaymath
+% {\startimath
+% \displaystyle
+% \begingroup
+% \settrue\indisplaymath}
+%
+% \permanent\protected\def\stopforceddisplaymath
+% {\endgroup
+% \stopimath}
+
+% \def\startidmath{\Ustartmathmode \displaystyle}
+% \def\stopidmath {\Ustopmathmode}
+
\permanent\protected\def\startforceddisplaymath
- {\startimath
- \displaystyle
- \begingroup
+ {\Ustartmathmode \displaystyle
+ \begingroup % can go
\settrue\indisplaymath}
\permanent\protected\def\stopforceddisplaymath
- {\endgroup
- \stopimath}
+ {\endgroup % can go
+ \Ustopmathmode}
\permanent\protected\def\startpickupmath % for the moment private
{\ifconditional\indisplaymath
@@ -199,9 +858,9 @@
\permanent\protected\def\rawmathematics#1% slow but only for tracing
{\begingroup
\ifmmode
- \clf_resetmathattributes#1%
+ \resetmathattributes#1%
\else
- \startimath\clf_resetmathattributes#1\stopimath
+ \startimath\resetmathattributes#1\stopimath
\fi
\endgroup}
@@ -223,19 +882,6 @@
\installmacrostack\currentmathematics
-% \permanent\protected\def\startmathematics % no grouping, if ever then also an optional second
-% {\doifelsenextoptionalcs\math_mathematics_start_yes\math_mathematics_start_nop}
-%
-% \protected\def\math_mathematics_start_yes[#1]%
-% {\push_macro_currentmathematics
-% \edef\currentmathematics{#1}% check for valid
-% \the\everyswitchmathematics}
-%
-% \protected\def\math_mathematics_start_nop
-% {\push_macro_currentmathematics
-% \let\currentmathematics\empty
-% \the\everyswitchmathematics}
-
\permanent\protected\tolerant\def\startmathematics[#1]% no grouping, if ever then also an optional second
{\push_macro_currentmathematics
\edef\currentmathematics{#1}% check for valid
@@ -250,7 +896,6 @@
% Now we redefine \type {\mathematics} and \type {\m}:
\pushoverloadmode
-
\permanent\protected\def\mathematics{\doifelsenextoptionalcs\math_m_yes\math_m_nop}
\aliased\let\m \mathematics % we keep the simple versions
@@ -267,7 +912,7 @@
\fi}
\def\math_m_yes_math[#1]#2%
- {#2}
+ {#2} % grouping permits \mathbf etc
\def\math_m_yes_text[#1]%
{\begingroup
@@ -304,7 +949,7 @@
\def\math_m_yes_text_normal#1%
{\the\everyswitchmathematics\relax
\normalstartimath
- #1%
+ \begingroup#1\endgroup % grouping permits aftergroups trickery
\normalstopimath
\endgroup}
@@ -314,26 +959,40 @@
#1%
\else
\normalstartimath
- #1%
+ \begingroup#1\endgroup % grouping permits aftergroups trickery
\normalstopimath
\fi}
-% e.g.: \definemathematics[i:mp][setups=i:tight,openup=yes]
+%D We wrap in a construct so that we can do:
+%D
+%D \starttyping
+%D \startformula
+%D \dm{f(x) = \frac{x}{y}} \mtp{,}
+%D \im{g(x) = \frac{x}{y}} \mtp{.}
+%D \stopformula
+%D \stoptyping
-\immutable\mugluespecdef\defaultthickmuskip 5mu plus 5mu
-\immutable\mugluespecdef\defaultmedmuskip 4mu plus 2mu minus 4mu
-\immutable\mugluespecdef\defaultthinmuskip 3mu
+\permanent\protected\def\dm#1%
+ {\relax
+ \ifmmode
+ %\beginmathgroup\forcedisplaymath#1\endmathgroup
+ \mathconstruct{\forcedisplaymath#1}%
+ \else
+ \startimath\begingroup\forcedisplaymath#1\endgroup\stopimath
+ \fi}
-\immutable\mugluespecdef\halfthickmuskip 2.5mu plus 2.5mu
-\immutable\mugluespecdef\halfmedmuskip 2.0mu plus 1.0mu minus 2.0mu
-\immutable\mugluespecdef\halfthinmuskip 1.5mu
+\permanent\protected\def\im#1%
+ {\relax
+ \ifmmode
+ %\beginmathgroup\forceinlinemath#1\endmathgroup
+ \mathconstruct{\forceinlinemath#1}%
+ \else
+ \startimath#1\stopimath
+ \fi}
-\immutable\mugluespecdef\hairmuskip .15mu
+% \aliased\let\m \mathematics % we keep the simple versions
-\immutable\integerdef \defaultrelpenalty 500
-\immutable\integerdef \defaultbinoppenalty 700
-\immutable\integerdef \defaultprerelpenalty -100
-\immutable\integerdef \defaultprebinoppenalty -100
+% e.g.: \definemathematics[i:mp][setups=i:tight,openup=yes]
% we need to control these otherwise:
%
@@ -344,6 +1003,8 @@
\thickmuskip \defaultthickmuskip
\medmuskip \defaultmedmuskip
\thinmuskip \defaultthinmuskip
+ \tinymuskip \defaulttinymuskip
+ \pettymuskip \defaultpettymuskip
\relpenalty \defaultrelpenalty
\binoppenalty \defaultbinoppenalty
\prebinoppenalty\maxdimen
@@ -354,6 +1015,8 @@
\thickmuskip \defaultthickmuskip
\medmuskip \defaultmedmuskip
\thinmuskip \defaultthinmuskip
+ \tinymuskip \defaulttinymuskip
+ \pettymuskip \defaultpettymuskip
\relpenalty \defaultrelpenalty
\binoppenalty \defaultbinoppenalty
\prebinoppenalty\defaultprebinoppenalty
@@ -364,6 +1027,8 @@
\thickmuskip \halfthickmuskip
\medmuskip \halfmedmuskip
\thinmuskip \halfthinmuskip
+ \tinymuskip \halftinymuskip
+ \pettymuskip \halfpettymuskip
\relpenalty \defaultrelpenalty
\binoppenalty \defaultbinoppenalty
\prebinoppenalty\maxdimen
@@ -375,10 +1040,14 @@
\thickmuskip \halfthickmuskip
\medmuskip \halfmedmuskip
\thinmuskip \halfthinmuskip
+ \tinymuskip \halftinymuskip
+ \pettymuskip \halfpettymuskip
\else
\thickmuskip 1\halfthickmuskip
\medmuskip 1\halfmedmuskip
\thinmuskip 1\halfthinmuskip
+ \tinymuskip 1\halftinymuskip
+ \pettymuskip 1\halfpettymuskip
\fi
\relpenalty \defaultrelpenalty
\binoppenalty \maxdimen
@@ -391,10 +1060,14 @@
\thickmuskip \halfthickmuskip
\medmuskip \halfmedmuskip
\thinmuskip \halfthinmuskip
+ \tinymuskip \halftinymuskip
+ \pettymuskip \halfpettymuskip
\else
\thickmuskip 1\halfthickmuskip
\medmuskip 1\halfmedmuskip
\thinmuskip 1\halfthinmuskip
+ \tinymuskip 1\halftinymuskip
+ \pettymuskip 1\halfpettymuskip
\fi
\relpenalty \maxdimen
\binoppenalty \maxdimen
@@ -402,8 +1075,372 @@
\prerelpenalty \maxdimen
\stopsetups
+% this will reset the spacing to default values
+
+% \Umathspacingmode\allmathstyles\plusone % always pair driven
+
+%D \starttyping
+%D \startformula
+%D f(x) = \sin x \mt{,} x
+%D \stopformula
+%D
+%D $f(x) = \sin x \mt{,} x$
+%D \stoptyping
+
+% mu based: 18mu == quad, preferred
+
+\newmuskip\mathinterwordmuskip
+
+% Hans:
+%
+% \mathinterwordmuskip 9mu plus .45mu minus .225mu
+%
+% Lansburg, p. 296: "A quad---nothing less, but also nothing more---is set between all independent formulas, independent of their length,
+% height or character.
+
+\mathinterwordmuskip 18mu
+
+\permanent\protected\def\mtp#1{\mathatom class \mathtextpunctuationcode {\hbox{#1}}} % only at the outer level (text, display)
+
+% granular, but more clutter
+%
+% \newgluespec\mathinterwordtextskip
+% \newgluespec\mathinterwordscriptskip
+% \newgluespec\mathinterwordscriptscriptskip
+%
+% \appendtoks
+% \mathinterwordtextskip \fontinterwordspace\textfont \zerocount \fontinterwordstretch\textfont \zerocount \fontinterwordshrink\textfont \zerocount \relax
+% \mathinterwordscriptskip \fontinterwordspace\scriptfont \zerocount \fontinterwordstretch\scriptfont \zerocount \fontinterwordshrink\scriptfont \zerocount \relax
+% \mathinterwordscriptscriptskip \fontinterwordspace\scriptscriptfont\zerocount \fontinterwordstretch\scriptscriptfont\zerocount \fontinterwordshrink\scriptscriptfont\zerocount \relax
+% \to \everymathematics
+%
+% \inherited\setmathspacing \mathtextpunctuationcode \mathordcode \allmathstyles \mathinterwordtextskip
+% \inherited\setmathspacing \mathtextpunctuationcode \mathordcode \allscriptstyles \mathinterwordscriptskip
+% \inherited\setmathspacing \mathtextpunctuationcode \mathordcode \allscriptscriptstyles \mathinterwordscriptscriptskip
+
+\startsetups math:spacing:presets
+ \resetmathspacing
+ %
+ % \inherited\setmathspacing \mathordinarycode \mathordinarycode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathordinarycode \mathoperatorcode \allmathstyles \thinmuskip
+ \inherited\setmathspacing \mathordinarycode \mathbinarycode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathordinarycode \mathbinarycode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathordinarycode \mathrelationcode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathordinarycode \mathrelationcode \allunsplitstyles \pettymuskip
+ % \inherited\setmathspacing \mathordinarycode \mathopencode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathordinarycode \mathmiddlecode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathordinarycode \mathmiddlecode \allunsplitstyles \pettymuskip
+ % \inherited\setmathspacing \mathordinarycode \mathclosecode \allmathstyles \zeromuskip
+ % \inherited\setmathspacing \mathordinarycode \mathpunctuationcode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathordinarycode \mathconstructcode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathordinarycode \mathconstructcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathordinarycode \mathellipsiscode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathordinarycode \mathellipsiscode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathordinarycode \mathfractioncode \allsplitstyles \tinymuskip
+ \inherited\setmathspacing \mathordinarycode \mathfractioncode \allunsplitstyles \pettymuskip
+ % \inherited\setmathspacing \mathordinarycode \mathradicalcode \allsplitstyles \tinymuskip % 220705 Results in an unwanted space
+ % \inherited\setmathspacing \mathordinarycode \mathradicalcode \allunsplitstyles \pettymuskip % 220705 Results in an unwanted space
+ %
+ \inherited\setmathspacing \mathoperatorcode \mathordinarycode \allmathstyles \thinmuskip
+ \inherited\setmathspacing \mathoperatorcode \mathoperatorcode \allmathstyles \thinmuskip
+ % \inherited\setmathspacing \mathoperatorcode \mathbinarycode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathoperatorcode \mathrelationcode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathoperatorcode \mathrelationcode \allunsplitstyles \pettymuskip
+ % \inherited\setmathspacing \mathoperatorcode \mathopencode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathoperatorcode \mathmiddlecode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathoperatorcode \mathmiddlecode \allunsplitstyles \pettymuskip
+ % \inherited\setmathspacing \mathoperatorcode \mathclosecode \allmathstyles \zeromuskip
+ % \inherited\setmathspacing \mathoperatorcode \mathpunctuationcode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathoperatorcode \mathconstructcode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathoperatorcode \mathconstructcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathoperatorcode \mathellipsiscode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathoperatorcode \mathellipsiscode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathoperatorcode \mathfractioncode \allmathstyles \thinmuskip
+ \inherited\setmathspacing \mathoperatorcode \mathradicalcode \allmathstyles \thinmuskip
+ %
+ \inherited\setmathspacing \mathbinarycode \mathordinarycode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathbinarycode \mathordinarycode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathbinarycode \mathoperatorcode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathbinarycode \mathoperatorcode \allunsplitstyles \pettymuskip
+ %% \inherited\setmathspacing \mathbinarycode \mathbinarycode \allmathstyles \zeromuskip
+ %% \inherited\setmathspacing \mathbinarycode \mathrelationcode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathbinarycode \mathopencode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathbinarycode \mathopencode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathbinarycode \mathmiddlecode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathbinarycode \mathmiddlecode \allunsplitstyles \pettymuskip
+ %% \inherited\setmathspacing \mathbinarycode \mathclosecode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathbinarycode \mathpunctuationcode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathbinarycode \mathpunctuationcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathbinarycode \mathconstructcode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathbinarycode \mathconstructcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathbinarycode \mathellipsiscode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathbinarycode \mathellipsiscode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathbinarycode \mathfractioncode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathbinarycode \mathfractioncode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathbinarycode \mathradicalcode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathbinarycode \mathradicalcode \allunsplitstyles \pettymuskip
+ %
+ \inherited\setmathspacing \mathrelationcode \mathordinarycode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathrelationcode \mathordinarycode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathrelationcode \mathoperatorcode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathrelationcode \mathoperatorcode \allunsplitstyles \pettymuskip
+ %% \inherited\setmathspacing \mathrelationcode \mathbinarycode \allmathstyles \zeromuskip
+ % \inherited\setmathspacing \mathrelationcode \mathrelationcode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathrelationcode \mathopencode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathrelationcode \mathopencode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathrelationcode \mathmiddlecode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathrelationcode \mathmiddlecode \allunsplitstyles \thinmuskip
+ % \inherited\setmathspacing \mathrelationcode \mathclosecode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathrelationcode \mathpunctuationcode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathrelationcode \mathpunctuationcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathrelationcode \mathconstructcode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathrelationcode \mathconstructcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathrelationcode \mathellipsiscode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathrelationcode \mathellipsiscode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathrelationcode \mathfractioncode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathrelationcode \mathfractioncode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathrelationcode \mathradicalcode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathrelationcode \mathradicalcode \allunsplitstyles \pettymuskip
+ %
+ % \inherited\setmathspacing \mathopencode \mathordinarycode \allmathstyles \zeromuskip
+ % \inherited\setmathspacing \mathopencode \mathoperatorcode \allmathstyles \zeromuskip
+ % \inherited\setmathspacing \mathopencode \mathbinarycode \allmathstyles \zeromuskip
+ % \inherited\setmathspacing \mathopencode \mathrelationcode \allmathstyles \zeromuskip
+ % \inherited\setmathspacing \mathopencode \mathopencode \allmathstyles \zeromuskip
+ % \inherited\setmathspacing \mathopencode \mathmiddlecode \allmathstyles \zeromuskip
+ % \inherited\setmathspacing \mathopencode \mathclosecode \allmathstyles \zeromuskip
+ % \inherited\setmathspacing \mathopencode \mathpunctuationcode \allmathstyles \zeromuskip
+ % \inherited\setmathspacing \mathopencode \mathconstructcode \allmathstyles \zeromuskip
+ % \inherited\setmathspacing \mathopencode \mathellipsiscode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathopencode \mathfractioncode \allmathstyles \pettymuskip
+ % \inherited\setmathspacing \mathopencode \mathradicalcode \allmathstyles \zeromuskip
+ %
+ \inherited\setmathspacing \mathclosecode \mathordinarycode \allmathstyles \tinymuskip
+ \inherited\setmathspacing \mathclosecode \mathoperatorcode \allmathstyles \thinmuskip
+ \inherited\setmathspacing \mathclosecode \mathbinarycode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathclosecode \mathbinarycode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathclosecode \mathrelationcode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathclosecode \mathrelationcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathclosecode \mathopencode \alltextstyles \tinymuskip
+ \inherited\setmathspacing \mathclosecode \mathopencode \alldisplaystyles \thinmuskip
+ \inherited\setmathspacing \mathclosecode \mathopencode \allunsplitstyles \pettymuskip
+ % \inherited\setmathspacing \mathclosecode \mathmiddlecode \allmathstyles \zeromuskip
+ % \inherited\setmathspacing \mathclosecode \mathclosecode \allmathstyles \zeromuskip
+ % \inherited\setmathspacing \mathclosecode \mathpunctuationcode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathclosecode \mathconstructcode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathclosecode \mathconstructcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathclosecode \mathfactorialcode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathclosecode \mathellipsiscode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathclosecode \mathellipsiscode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathclosecode \mathfractioncode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathclosecode \mathfractioncode \allunsplitstyles \pettymuskip
+ % \inherited\setmathspacing \mathclosecode \mathradicalcode \allmathstyles \zeromuskip
+ %
+ \inherited\setmathspacing \mathpunctuationcode \mathordinarycode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathordinarycode \allunsplitstyles \tinymuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathoperatorcode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathoperatorcode \allunsplitstyles \tinymuskip
+ % \inherited\setmathspacing \mathpunctuationcode \mathbinarycode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathrelationcode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathrelationcode \allunsplitstyles \tinymuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathopencode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathopencode \allunsplitstyles \tinymuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathmiddlecode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathmiddlecode \allunsplitstyles \tinymuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathclosecode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathclosecode \allunsplitstyles \tinymuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathpunctuationcode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathpunctuationcode \allunsplitstyles \tinymuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathconstructcode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathconstructcode \allunsplitstyles \tinymuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathellipsiscode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathellipsiscode \allunsplitstyles \tinymuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathfractioncode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathfractioncode \allunsplitstyles \tinymuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathradicalcode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathradicalcode \allunsplitstyles \tinymuskip
+ %
+ \inherited\setmathspacing \mathconstructcode \mathordinarycode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathconstructcode \mathordinarycode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathconstructcode \mathoperatorcode \allmathstyles \thinmuskip
+ \inherited\setmathspacing \mathconstructcode \mathbinarycode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathconstructcode \mathbinarycode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathconstructcode \mathrelationcode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathconstructcode \mathrelationcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathconstructcode \mathopencode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathconstructcode \mathopencode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathconstructcode \mathmiddlecode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathconstructcode \mathmiddlecode \allunsplitstyles \pettymuskip
+ % \inherited\setmathspacing \mathconstructcode \mathclosecode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathconstructcode \mathpunctuationcode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathconstructcode \mathpunctuationcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathconstructcode \mathconstructcode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathconstructcode \mathconstructcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathconstructcode \mathfractioncode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathconstructcode \mathfractioncode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathconstructcode \mathradicalcode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathconstructcode \mathradicalcode \allunsplitstyles \pettymuskip
+ %
+ \inherited\setmathspacing \mathellipsiscode \mathordinarycode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathellipsiscode \mathordinarycode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathellipsiscode \mathoperatorcode \allmathstyles \thinmuskip
+ \inherited\setmathspacing \mathellipsiscode \mathbinarycode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathellipsiscode \mathbinarycode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathellipsiscode \mathrelationcode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathellipsiscode \mathrelationcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathellipsiscode \mathopencode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathellipsiscode \mathopencode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathellipsiscode \mathmiddlecode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathellipsiscode \mathmiddlecode \allunsplitstyles \pettymuskip
+ % \inherited\setmathspacing \mathellipsiscode \mathclosecode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathellipsiscode \mathpunctuationcode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathellipsiscode \mathpunctuationcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathellipsiscode \mathconstructcode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathellipsiscode \mathconstructcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathellipsiscode \mathellipsiscode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathellipsiscode \mathellipsiscode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathellipsiscode \mathfractioncode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathellipsiscode \mathfractioncode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathellipsiscode \mathradicalcode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathellipsiscode \mathradicalcode \allunsplitstyles \pettymuskip
+ %
+ \inherited\setmathspacing \mathfractioncode \mathordinarycode \allsplitstyles \tinymuskip
+ \inherited\setmathspacing \mathfractioncode \mathordinarycode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathfractioncode \mathoperatorcode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathfractioncode \mathoperatorcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathfractioncode \mathbinarycode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathfractioncode \mathbinarycode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathfractioncode \mathrelationcode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathfractioncode \mathrelationcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathfractioncode \mathopencode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathfractioncode \mathopencode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathfractioncode \mathmiddlecode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathfractioncode \mathmiddlecode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathfractioncode \mathclosecode \allmathstyles \pettymuskip
+ \inherited\setmathspacing \mathfractioncode \mathpunctuationcode \allsplitstyles \tinymuskip
+ \inherited\setmathspacing \mathfractioncode \mathpunctuationcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathfractioncode \mathtextpunctuationcode \allmathstyles \tinymuskip
+ \inherited\setmathspacing \mathfractioncode \mathconstructcode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathfractioncode \mathconstructcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathfractioncode \mathellipsiscode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathfractioncode \mathellipsiscode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathfractioncode \mathfractioncode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathfractioncode \mathfractioncode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathfractioncode \mathradicalcode \allsplitstyles \tinymuskip
+ \inherited\setmathspacing \mathfractioncode \mathradicalcode \allunsplitstyles \pettymuskip
+ %
+ \inherited\setmathspacing \mathradicalcode \mathordinarycode \allsplitstyles \tinymuskip
+ \inherited\setmathspacing \mathradicalcode \mathordinarycode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathradicalcode \mathoperatorcode \allmathstyles \thinmuskip
+ \inherited\setmathspacing \mathradicalcode \mathbinarycode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathradicalcode \mathbinarycode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathradicalcode \mathrelationcode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathradicalcode \mathrelationcode \allunsplitstyles \pettymuskip
+ % \inherited\setmathspacing \mathradicalcode \mathopencode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathradicalcode \mathmiddlecode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathradicalcode \mathmiddlecode \allunsplitstyles \pettymuskip
+ % \inherited\setmathspacing \mathradicalcode \mathclosecode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathradicalcode \mathpunctuationcode \allsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathradicalcode \mathpunctuationcode \allunsplitstyles \tinymuskip
+ \inherited\setmathspacing \mathradicalcode \mathconstructcode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathradicalcode \mathconstructcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathradicalcode \mathellipsiscode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathradicalcode \mathellipsiscode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathradicalcode \mathfractioncode \allsplitstyles \tinymuskip
+ \inherited\setmathspacing \mathradicalcode \mathfractioncode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathradicalcode \mathradicalcode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathradicalcode \mathradicalcode \allunsplitstyles \pettymuskip
+ %
+ \inherited\setmathspacing \mathmiddlecode \mathordinarycode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathmiddlecode \mathordinarycode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathmiddlecode \mathoperatorcode \allmathstyles \thickmuskip
+ \inherited\setmathspacing \mathmiddlecode \mathbinarycode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathmiddlecode \mathbinarycode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathmiddlecode \mathrelationcode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathmiddlecode \mathrelationcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathmiddlecode \mathopencode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathmiddlecode \mathopencode \allsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathmiddlecode \mathmiddlecode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathmiddlecode \mathmiddlecode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathmiddlecode \mathclosecode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathmiddlecode \mathclosecode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathmiddlecode \mathpunctuationcode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathmiddlecode \mathpunctuationcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathmiddlecode \mathconstructcode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathmiddlecode \mathconstructcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathmiddlecode \mathellipsiscode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathmiddlecode \mathellipsiscode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathmiddlecode \mathfractioncode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathmiddlecode \mathfractioncode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathmiddlecode \mathradicalcode \allsplitstyles \thickmuskip
+ \inherited\setmathspacing \mathmiddlecode \mathradicalcode \allmathstyles \pettymuskip
+ %
+ \inherited\setmathspacing \mathclosecode \mathdifferentialcode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathclosecode \mathdifferentialcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathordinarycode \mathdifferentialcode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathordinarycode \mathdifferentialcode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathfactorialcode \mathordinarycode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathfactorialcode \mathordinarycode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathfactorialcode \mathfactorialcode \allmathstyles \zeromuskip
+ %
+ \inherited\setmathspacing \mathopencode \mathconstructcode \allmathstyles \thinmuskip
+ \inherited\setmathspacing \mathconstructcode \mathclosecode \allmathstyles \thinmuskip
+ %
+ \inherited\setmathspacing \mathdimensioncode \mathdimensioncode \allmathstyles \zeromuskip
+ \inherited\setmathspacing \mathordinarycode \mathdimensioncode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathordinarycode \mathdimensioncode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathdigitcode \mathdimensioncode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathdigitcode \mathdimensioncode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathclosecode \mathdimensioncode \allsplitstyles \thinmuskip
+ \inherited\setmathspacing \mathclosecode \mathdimensioncode \allunsplitstyles \pettymuskip
+ \inherited\setmathspacing \mathfunctioncode \mathbinarycode \allsplitstyles \medmuskip
+ \inherited\setmathspacing \mathfunctioncode \mathbinarycode \allunsplitstyles \pettymuskip
+ %
+ % \im{1\unit{hour} 20 \unit{minute} 56 \unit{second}}
+ %
+ \inherited\setmathspacing \mathdimensioncode \mathdigitcode \allmathstyles \thickmuskip
+ %
+ \inherited\setmathspacing \mathfakecode \mathallcode \allmathstyles \tinymuskip
+ \inherited\setmathspacing \mathallcode \mathfakecode \allmathstyles \tinymuskip
+ %
+ \inherited\setmathspacing \mathtextpunctuationcode \mathordinarycode \allmathstyles \mathinterwordmuskip
+ \inherited\setmathspacing \mathtextpunctuationcode \mathoperatorcode \allmathstyles \mathinterwordmuskip
+ \inherited\setmathspacing \mathtextpunctuationcode \mathbinarycode \allmathstyles \mathinterwordmuskip
+ \inherited\setmathspacing \mathtextpunctuationcode \mathrelationcode \allmathstyles \mathinterwordmuskip
+ \inherited\setmathspacing \mathtextpunctuationcode \mathopencode \allmathstyles \mathinterwordmuskip
+ \inherited\setmathspacing \mathtextpunctuationcode \mathmiddlecode \allmathstyles \mathinterwordmuskip
+ \inherited\setmathspacing \mathtextpunctuationcode \mathclosecode \allmathstyles \mathinterwordmuskip
+ \inherited\setmathspacing \mathtextpunctuationcode \mathpunctuationcode \allmathstyles \mathinterwordmuskip
+ \inherited\setmathspacing \mathtextpunctuationcode \mathconstructcode \allmathstyles \mathinterwordmuskip
+ \inherited\setmathspacing \mathtextpunctuationcode \mathellipsiscode \allmathstyles \mathinterwordmuskip
+ \inherited\setmathspacing \mathtextpunctuationcode \mathfractioncode \allmathstyles \mathinterwordmuskip
+ \inherited\setmathspacing \mathtextpunctuationcode \mathradicalcode \allmathstyles \mathinterwordmuskip
+ \inherited\setmathspacing \mathtextpunctuationcode \mathdifferentialcode \allmathstyles \mathinterwordmuskip
+ \inherited\setmathspacing \mathtextpunctuationcode \mathpunctuationcode \allmathstyles \mathinterwordmuskip
+ %
+ \inherited\setmathspacing \mathordinarycode \mathtextpunctuationcode \allmathstyles \tinymuskip
+ \inherited\setmathspacing \mathoperatorcode \mathtextpunctuationcode \allmathstyles \tinymuskip
+ \inherited\setmathspacing \mathbinarycode \mathtextpunctuationcode \allmathstyles \tinymuskip
+ \inherited\setmathspacing \mathrelationcode \mathtextpunctuationcode \allmathstyles \tinymuskip
+ \inherited\setmathspacing \mathopencode \mathtextpunctuationcode \allmathstyles \tinymuskip
+ \inherited\setmathspacing \mathmiddlecode \mathtextpunctuationcode \allmathstyles \tinymuskip
+ \inherited\setmathspacing \mathclosecode \mathtextpunctuationcode \allmathstyles \tinymuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathtextpunctuationcode \allmathstyles \tinymuskip
+ \inherited\setmathspacing \mathconstructcode \mathtextpunctuationcode \allmathstyles \tinymuskip
+ \inherited\setmathspacing \mathellipsiscode \mathtextpunctuationcode \allmathstyles \tinymuskip
+ \inherited\setmathspacing \mathfractioncode \mathtextpunctuationcode \allmathstyles \tinymuskip
+ \inherited\setmathspacing \mathradicalcode \mathtextpunctuationcode \allmathstyles \tinymuskip
+ \inherited\setmathspacing \mathdifferentialcode \mathtextpunctuationcode \allmathstyles \tinymuskip
+ \inherited\setmathspacing \mathpunctuationcode \mathtextpunctuationcode \allmathstyles \tinymuskip
+\stopsetups
+
+\directsetup{math:spacing:default}
+\directsetup{math:spacing:presets}
+
% \dorecurse{80}{test \m[i:tight]{\red \fakeformula} test }
+%setupmathematics [\c!setups=math:spacing:default]
+
\definemathematics[i:default][\c!setups=math:spacing:equal]
\definemathematics[i:half] [\c!setups=math:spacing:half]
\definemathematics[i:tight] [\c!setups=math:spacing:tight]
@@ -416,10 +1453,10 @@
% todo: only in mmode
% these commands are semi-public but should not be used directly (lua names wil change)
-\permanent\protected\def\setmathattribute #1#2{\ifmmode\clf_setmathattribute{#1}{#2}\fi}
-\permanent\protected\def\setmathalphabet #1{\ifmmode\clf_setmathalphabet{#1}\fi}
-\permanent\protected\def\setmathfontstyle #1{\ifmmode\clf_setmathstyle{#1}\fi}
-\permanent\protected\def\setmathfontalternate#1{\ifmmode\clf_setmathalternate\defaultmathfamily{#1}\fi}
+%permanent\protected\def\setmathattribute #1#2{\ifmmode\clf_setmathattribute{#1}{#2}\fi}
+%permanent\protected\def\setmathalphabet #1{\ifmmode\clf_setmathalphabet{#1}\fi}
+%permanent\protected\def\setmathfontstyle #1{\ifmmode\clf_setmathstyle{#1}\fi}
+%permanent\protected\def\setmathfontalternate#1{\ifmmode\clf_setmathalternate{#1}\fi}
\installcorenamespace{mathstylealternative} % might become a setuphandler
@@ -440,7 +1477,7 @@
\appendtoks
\edef\p_stylealternative{\mathematicsparameter\c!stylealternative}%
\ifempty\p_stylealternative\else
- \clf_presetmathalternate\defaultmathfamily{\p_stylealternative}%
+ \presetmathfontalternate{\p_stylealternative}%
\fi
\to \everymathematics
@@ -488,32 +1525,57 @@
\aliased\let\setmathfontstylealternative\setmathfontstylealternate
\aliased\let\mathalternate \setmathfontalternate
-\permanent\protected\def\mathupright {\setmathattribute\s!regular\s!tf\setmathfontstylealternate\s!tf}
-\permanent\protected\def\mathitalic {\setmathattribute\s!regular\s!it\setmathfontstylealternate\s!it}
-\permanent\protected\def\mathscript {\setmathalphabet \s!script \setmathfontstylealternate\s!script}
-\permanent\protected\def\mathfraktur {\setmathalphabet \s!fraktur \setmathfontstylealternate\s!fraktur}
-\permanent\protected\def\mathblackboard{\setmathalphabet \s!blackboard \setmathfontstylealternate\s!blackboard}
-
-\permanent\protected\def\mathrm {\setmathattribute\s!rm\s!tf \setmathfontstylealternate\s!tf}
-\permanent\protected\def\mathss {\setmathattribute\s!ss\s!tf \setmathfontstylealternate\s!tf}
-\permanent\protected\def\mathtt {\setmathattribute\s!tt\s!tf \setmathfontstylealternate\s!tf}
-
-\permanent\protected\def\mathtf {\setmathfontstyle\s!tf \setmathfontstylealternate\s!tf}
-\permanent\protected\def\mathsl {\setmathfontstyle\s!it \setmathfontstylealternate\s!it} % no sl
-\permanent\protected\def\mathit {\setmathfontstyle\s!it \setmathfontstylealternate\s!it}
-
-\permanent\protected\def\mathbf {\setmathfontstyle\s!bf \setmathfontstylealternate\s!bf}
-\permanent\protected\def\mathbs {\setmathfontstyle\s!bi \setmathfontstylealternate\s!bi} % no sl
-\permanent\protected\def\mathbi {\setmathfontstyle\s!bi \setmathfontstylealternate\s!bi}
-
-\aliased\let\mathdefault\mathitalic
+\permanent\protected\def\math_upright {\setmathattribute\s!regular\s!tf\setmathfontstylealternate\s!tf}
+\permanent\protected\def\math_italic {\setmathattribute\s!regular\s!it\setmathfontstylealternate\s!it}
+%permanent\protected\def\math_script {\setmathalphabet \s!script \setmathfontstylealternate\s!script\setmathvariant\s!handwriting}
+%permanent\protected\def\math_calligraphic{\setmathalphabet \s!script \setmathfontstylealternate\s!script\setmathvariant\s!calligraphy}
+\permanent\protected\def\math_script {\setmathalphabet \s!script \setmathfontstylealternate\s!script}
+\permanent\protected\def\math_calligraphic{\setmathalphabet \s!calligraphic\setmathfontstylealternate\s!calligraphic}
+\permanent\protected\def\math_fraktur {\setmathalphabet \s!fraktur \setmathfontstylealternate\s!fraktur}
+\permanent\protected\def\math_blackboard {\setmathalphabet \s!blackboard \setmathfontstylealternate\s!blackboard}
+
+\permanent\protected\def\mathupright {\mathgroupedcommandcs\math_upright }
+\permanent\protected\def\mathitalic {\mathgroupedcommandcs\math_italic }
+\permanent\protected\def\mathscript {\mathgroupedcommandcs\math_script }
+\permanent\protected\def\mathcalligraphic{\mathgroupedcommandcs\math_calligraphic}
+\permanent\protected\def\mathfraktur {\mathgroupedcommandcs\math_fraktur }
+\permanent\protected\def\mathblackboard {\mathgroupedcommandcs\math_blackboard }
+
+\permanent\protected\def\math_rm{\setmathattribute\s!rm\s!tf\setmathfontstylealternate\s!tf}
+\permanent\protected\def\math_ss{\setmathattribute\s!ss\s!tf\setmathfontstylealternate\s!tf}
+\permanent\protected\def\math_tt{\setmathattribute\s!tt\s!tf\setmathfontstylealternate\s!tf}
+
+\permanent\protected\def\math_tf{\setmathfontstyle\s!tf\setmathfontstylealternate\s!tf}
+\permanent\protected\def\math_sl{\setmathfontstyle\s!it\setmathfontstylealternate\s!it} % no sl
+\permanent\protected\def\math_it{\setmathfontstyle\s!it\setmathfontstylealternate\s!it}
+
+\permanent\protected\def\math_bf{\setmathfontstyle\s!bf\setmathfontstylealternate\s!bf}
+\permanent\protected\def\math_bs{\setmathfontstyle\s!bi\setmathfontstylealternate\s!bi} % no sl
+\permanent\protected\def\math_bi{\setmathfontstyle\s!bi\setmathfontstylealternate\s!bi}
+
+\permanent\protected\def\mathrm{\mathgroupedcommandcs\math_rm} % \relax not needed
+\permanent\protected\def\mathss{\mathgroupedcommandcs\math_ss}
+\permanent\protected\def\mathtt{\mathgroupedcommandcs\math_tt}
+
+\permanent\protected\def\mathtf{\mathgroupedcommandcs\math_tf}
+\permanent\protected\def\mathsl{\mathgroupedcommandcs\math_sl}
+\permanent\protected\def\mathit{\mathgroupedcommandcs\math_it}
+
+\permanent\protected\def\mathbf{\mathgroupedcommandcs\math_bf}
+\permanent\protected\def\mathbs{\mathgroupedcommandcs\math_bs}
+\permanent\protected\def\mathbi{\mathgroupedcommandcs\math_bi}
+
+\aliased\let\math_default\math_italic
+\aliased\let\mathdefault \math_italic
\appendtoks
\edef\p_default{\mathematicsparameter\c!default}%
\ifx\p_default\v!normal
- \enforced\let\mathdefault\mathupright
+ \enforced\let\mathdefault \math_upright
+ \enforced\let\math_default\math_upright
\else
- \enforced\let\mathdefault\mathitalic
+ \enforced\let\mathdefault \math_italic
+ \enforced\let\math_default\math_italic
\fi
\to \everysetupmathematics
@@ -530,27 +1592,28 @@
\aliased\let\Bbb\mathblackboard
-\permanent\protected\def\frak {\ifmmode\expandafter\mathfraktur \fi}
-\permanent\protected\def\cal {\ifmmode\expandafter\mathscript \fi}
-\permanent\protected\def\bbd {\ifmmode\expandafter\mathblackboard\fi}
-\permanent\protected\def\blackboard{\ifmmode\expandafter\mathblackboard\fi}
-\permanent\protected\def\fraktur {\ifmmode\expandafter\mathfraktur \fi}
-\permanent\protected\def\gothic {\ifmmode\expandafter\mathfraktur \fi}
-
-\permanent\protected\def\mathcal #1{{\mathscript #1}} % for AMS compatibility
-\permanent\protected\def\mathfrak#1{{\mathfraktur #1}} % for AMS compatibility
-\permanent\protected\def\mathbb #1{{\mathblackboard#1}} % for AMS compatibility
-
-\ifdefined\normaltf \else \permanent\let\normaltf\tf \fi \permanent\protected\def\tf{\ifmmode\mathtf\else\normaltf\fi}
-\ifdefined\normalbf \else \permanent\let\normalbf\bf \fi \permanent\protected\def\bf{\ifmmode\mathbf\else\normalbf\fi}
-\ifdefined\normalit \else \permanent\let\normalit\it \fi \permanent\protected\def\it{\ifmmode\mathit\else\normalit\fi}
-\ifdefined\normalsl \else \permanent\let\normalsl\sl \fi \permanent\protected\def\sl{\ifmmode\mathsl\else\normalsl\fi}
-\ifdefined\normalbi \else \permanent\let\normalbi\bi \fi \permanent\protected\def\bi{\ifmmode\mathbi\else\normalbi\fi}
-\ifdefined\normalbs \else \permanent\let\normalbs\bs \fi \permanent\protected\def\bs{\ifmmode\mathbs\else\normalbs\fi}
-
-\permanent\protected\def\rm{\ifmmode\mathrm\else\normalrm\fi}
-\permanent\protected\def\ss{\ifmmode\mathss\else\normalss\fi}
-\permanent\protected\def\tt{\ifmmode\mathtt\else\normaltt\fi}
+\permanent\protected\def\frak {\ifmmode\expandafter\mathfraktur \fi}
+\permanent\protected\def\cal {\ifmmode\expandafter\mathcalligraphic\fi}
+\permanent\protected\def\bbd {\ifmmode\expandafter\mathblackboard \fi}
+\permanent\protected\def\blackboard{\ifmmode\expandafter\mathblackboard \fi}
+\permanent\protected\def\fraktur {\ifmmode\expandafter\mathfraktur \fi}
+\permanent\protected\def\gothic {\ifmmode\expandafter\mathfraktur \fi}
+
+\aliased\let\mathcal \mathcalligraphic % for AMS compatibility
+\aliased\let\mathscr \mathscript % for AMS compatibility
+\aliased\let\mathfrak\mathfraktur % for AMS compatibility
+\aliased\let\mathbb \mathblackboard % for AMS compatibility
+
+\ifdefined\normaltf \else \permanent\let\normaltf\tf \fi \permanent\protected\def\tf{\ifmmode\expandafter\mathtf\else\expandafter\normaltf\fi}
+\ifdefined\normalbf \else \permanent\let\normalbf\bf \fi \permanent\protected\def\bf{\ifmmode\expandafter\mathbf\else\expandafter\normalbf\fi}
+\ifdefined\normalit \else \permanent\let\normalit\it \fi \permanent\protected\def\it{\ifmmode\expandafter\mathit\else\expandafter\normalit\fi}
+\ifdefined\normalsl \else \permanent\let\normalsl\sl \fi \permanent\protected\def\sl{\ifmmode\expandafter\mathsl\else\expandafter\normalsl\fi}
+\ifdefined\normalbi \else \permanent\let\normalbi\bi \fi \permanent\protected\def\bi{\ifmmode\expandafter\mathbi\else\expandafter\normalbi\fi}
+\ifdefined\normalbs \else \permanent\let\normalbs\bs \fi \permanent\protected\def\bs{\ifmmode\expandafter\mathbs\else\expandafter\normalbs\fi}
+
+\permanent\protected\def\rm{\ifmmode\expandafter\mathrm\else\expandafter\normalrm\fi}
+\permanent\protected\def\ss{\ifmmode\expandafter\mathss\else\expandafter\normalss\fi}
+\permanent\protected\def\tt{\ifmmode\expandafter\mathtt\else\expandafter\normaltt\fi}
\ifdefined\mr \else \let\mr\relax \fi % hm ... permanent
\ifdefined\mb \else \let\mb\relax \fi % hm ... permanent
@@ -562,7 +1625,7 @@
% 5: $e=mc^2 \quad \mb e=mc^2$
\prependtoks
- \mathdefault
+ \math_default
\to \everymathematics
%D We could set the rendering attribute at the \LUA\ end but as there can be many
@@ -582,7 +1645,7 @@
%D \stopformula
%D \stoptyping
-\newcount\c_math_renderings_attribute
+\newinteger\c_math_renderings_attribute
\appendtoks
\c_math_renderings_attribute\clf_mathrenderset{\mathematicsparameter\c!symbolset}\relax
@@ -607,22 +1670,22 @@
\permanent\protected\def\boldsymbol
{\mathortext\mathboldsymbol\bold}
-%D Helpers
-
-\permanent\def\utfmathclass #1{\clf_utfmathclass {#1}}
-\permanent\def\utfmathstretch#1{\clf_utfmathstretch{#1}}
-\permanent\def\utfmathcommand#1{\clf_utfmathcommand{#1}}
-\permanent\def\utfmathfiller #1{\clf_utfmathfiller {#1}}
+%D Helpers (defined at the \LUA\ end):
-\permanent\def\utfmathcommandabove #1{\clf_utfmathcommandabove {#1}}
-\permanent\def\utfmathcommandbelow #1{\clf_utfmathcommandbelow {#1}}
-\permanent\def\utfmathcommandfiller#1{\clf_utfmathcommandfiller{#1}}
-
-\permanent\protected\def\doifelseutfmathaccent#1{\clf_doifelseutfmathaccent{#1}}
-\permanent\protected\def\doifelseutfmathabove #1{\clf_doifelseutfmathabove {#1}}
-\permanent\protected\def\doifelseutfmathbelow #1{\clf_doifelseutfmathbelow {#1}}
-\permanent\protected\def\doifelseutfmathfiller#1{\clf_doifelseutfmathfiller{#1}}
-\permanent\protected\def\doifelseutfmathlimop #1{\clf_doifelseutfmathlimop {#1}}
+% \utfmathclass #1
+% \utfmathstretch #1
+% \utfmathcommand #1
+% \utfmathfiller #1
+%
+% \utfmathcommandabove #1..
+% \utfmathcommandbelow #1..
+% \utfmathcommandfiller #1..
+%
+% \doifelseutfmathaccent #1#2#3
+% \doifelseutfmathabove #1#2#3
+% \doifelseutfmathbelow #1#2#3
+% \doifelseutfmathfiller #1#2#3
+% \doifelseutfmathlimop #1#2#3
\aliased\let\doifutfmathaccentelse \doifelseutfmathaccent
\aliased\let\doifutfmathaboveelse \doifelseutfmathabove
@@ -632,36 +1695,46 @@
%D Not used that much:
-\installcorenamespace{mathcodecommand}
-
-\permanent\protected\def\mathlimop#1{\mathop{#1}} %no \limits
+\permanent\protected\def\mathlimop#1{\normalmathop{#1}} %no \limits
\permanent\protected\def\mathbox #1{\dontleavehmode\hbox\Ustartmath\mathsurround\zeropoint#1\Ustopmath}
-\permanent\protected\def\mathnolop#1{\mathop{#1}\nolimits}
-
-\aliased\let\mathnothing\firstofoneunexpanded
-\aliased\let\mathalpha \firstofoneunexpanded
-
-\setnewconstant\mathordcode \zerocount \letvalue{\??mathcodecommand ord}\mathord
-\setnewconstant\mathopcode \plusone \letvalue{\??mathcodecommand op}\mathop
-\setnewconstant\mathbincode \plustwo \letvalue{\??mathcodecommand bin}\mathbin
-\setnewconstant\mathrelcode \plusthree \letvalue{\??mathcodecommand rel}\mathrel
-\setnewconstant\mathopencode \plusfour \letvalue{\??mathcodecommand open}\mathopen
-\setnewconstant\mathclosecode \plusfive \letvalue{\??mathcodecommand close}\mathclose
-\setnewconstant\mathpunctcode \plussix \letvalue{\??mathcodecommand punct}\mathpunct
-\setnewconstant\mathalphacode \plusseven \letvalue{\??mathcodecommand alpha}\mathalpha
-\setnewconstant\mathinnercode \zerocount \letvalue{\??mathcodecommand inner}\mathinner
-\setnewconstant\mathnothingcode \zerocount \letvalue{\??mathcodecommand nothing}\mathnothing
-\setnewconstant\mathlimopcode \plusone \letvalue{\??mathcodecommand limop}\mathlimop
-\setnewconstant\mathnolopcode \plusone \letvalue{\??mathcodecommand nolop}\mathnolop
-\setnewconstant\mathboxcode \zerocount \letvalue{\??mathcodecommand box}\mathbox
-\setnewconstant\mathchoicecode \zerocount %letvalue{\??mathcodecommand choice}\mathnothing
-
-\setnewconstant\mathaccentcode \pluseight
-\setnewconstant\mathradicalcode \plusnine
-
-\permanent \def\mathcodenumber #1{\the\csname math#1code\endcsname}
-\permanent\protected\def\mathcodecommand#1{\csname\??mathcodecommand#1\endcsname}
-\permanent \def\mathcodechecked#1{\ifcsname math#1code\endcsname\lastnamedcs\else#1\fi}
+\permanent\protected\def\mathnolop#1{\normalmathop{#1}\nolimits}
+
+% \permanent\protected\def\mathlimop#1{\mathatom \mathoperatorcode options "C0000 {#1}} % auto "40000 + "80000
+% \permanent\protected\def\mathnolop#1{\mathatom \mathoperatorcode options "80000 {#1}}
+
+% \aliased\let\mathnothing\firstofoneunexpanded
+% \aliased\let\mathalpha \firstofoneunexpanded
+
+\ifdefined\mathop \else \aliased\let\mathop \normalmathoperator \aliased\let\normalmathop \normalmathoperator \fi
+\ifdefined\mathord \else \aliased\let\mathord \normalmathordinary \aliased\let\normalmathord \normalmathordinary \fi
+\ifdefined\mathbin \else \aliased\let\mathbin \normalmathbinary \aliased\let\normalmathbin \normalmathbinary \fi
+\ifdefined\mathrel \else \aliased\let\mathrel \normalmathrelation \aliased\let\normalmathrel \normalmathrelation \fi
+\ifdefined\mathpunct \else \aliased\let\mathpunct\normalmathpunctuation \aliased\let\normalmathpunct\normalmathpunctuation \fi
+\ifdefined\underline \else \aliased\let\underline\normalmathunderline \aliased\let\normalunderline\normalmathunderline \fi
+\ifdefined\overline \else \aliased\let\overline \normalmathoverline \aliased\let\normaloverline \normalmathoverline \fi
+
+\permanent\def\mathcodechecked#1%
+ {\numexpr
+ \iftok{#1}\emptytoks
+ \mathordinarycode
+ \orelse\ifchknum#1\or
+ \lastchknum
+ \orelse\ifchknum\begincsname math#1code\endcsname\or % maybe some day a hash for this
+ \lastchknum
+ \else
+ \mathordinarycode
+ \fi
+ \relax}
+
+\permanent\def\mathcodenumber#1%
+ {\the\mathcodechecked{#1}}
+
+\permanent\protected\def\mathcodecommand#1%
+ {\mathatom \s!class \mathcodechecked{#1}}
+
+\def\math_class_by_parameter #1#2{\normalexpanded{\noexpand\mathcodechecked{#1#2}}}
+\def\math_atom_by_parameter #1{\normalexpanded{\noexpand\math_atom_by_parameter_indeed{#1\c!mathclass}}}
+\def\math_atom_by_parameter_indeed#1{\mathatom \s!class \mathcodechecked{#1}}
% \startlines
% $\mathopnolimits{\rm d}x$
@@ -692,7 +1765,7 @@
\orelse\ifparameter#2\or
\frozen\protected\defcsname\??mathcommand#1\endcsname{\mathcodecommand{#2}{#4}}%
\else
- \frozen\protected\defcsname\??mathcommand#1\endcsname{\mathcodecommand{nothing}{#4}}%
+ \frozen\protected\defcsname\??mathcommand#1\endcsname{#4}%
\fi
\ifparameter#1\or % safeguard
\letcsname#1\expandafter\endcsname\csname\??mathcommand#1\endcsname
@@ -703,48 +1776,71 @@
%D Let's define a few comands here:
-%definemathcommand [mathstrut] {\vphantom{(}}
-%definemathcommand [joinrel] {\mathrel{\mkern-3mu}}
-\definemathcommand [joinrel] [rel] {\mkern-3mu}
+%definemathcommand [mathstrut] {\vphantom{(}}
+%definemathcommand [joinrel] {\mathrel{\mkern-3mu}}
+\definemathcommand [joinrel] [\s!relation] {\mkern-3mu}
\immutable\chardef\c_math_strut"28
-% \protected\def\math_strut_htdp#1%
-% {\s!height\fontcharht#1\c_math_strut
-% \s!depth \fontchardp#1\c_math_strut}
-%
-% now we need this (kind of inefficient):
+%D For the evolution of these struts see the git repositories and older code in
+%D \MKIV\ and \MKI\ (commented code removed end April 2022).
-\protected\def\math_strut_htdp#1% nasty!
- {\s!height\dimexpr\mathscale#1\fontcharht#1\c_math_strut/\glyphscale\relax
- \s!depth \dimexpr\mathscale#1\fontchardp#1\c_math_strut/\glyphscale\relax}
+\let\math_strut_math_style\normalmathstyle
-\protected\def\math_strut_normal
- {\vrule
- \s!width \zeropoint
- \normalexpanded{\math_strut_htdp{\mathstylefont\normalmathstyle}}%
- \relax}
+% using \s!font \mathstylefontid\mathstyle\fam would needs expansion and guesswork
-\protected\def\math_strut_visual
- {\hskip-.01\emwidth
- \vrule
- \s!width .02\emwidth
- \normalexpanded{\math_strut_htdp{\mathstylefont\normalmathstyle}}%
- \relax
- \hskip-.01\emwidth}
+\appendtoks
+ \Umathruleheight\allmainstyles \strutheightfactor\fontspecifiedsize\textfont \zerocount
+ \Umathruledepth \allmainstyles \strutdepthfactor \fontspecifiedsize\textfont \zerocount
+ \Umathruleheight\allscriptstyles \strutheightfactor\fontspecifiedsize\scriptfont \zerocount
+ \Umathruledepth \allscriptstyles \strutdepthfactor \fontspecifiedsize\scriptfont \zerocount
+ \Umathruleheight\allscriptscriptstyles\strutheightfactor\fontspecifiedsize\scriptscriptfont\zerocount
+ \Umathruledepth \allscriptscriptstyles\strutdepthfactor \fontspecifiedsize\scriptscriptfont\zerocount
+\to \everybodyfont
+
+\protected\def\math_strut
+ {\normalsrule
+ \s!width \zeropoint
+ \s!fam \fam
+ \s!char \c_math_strut
+ \relax}
-\permanent\protected\def\showmathstruts % let's not overload \math_strut_normal
- {\enforced\let\math_strut\math_strut_visual}
+\permanent\protected\def\math_strut_height
+ {\normalsrule
+ \s!width \zeropoint
+ \s!depth \zeropoint
+ \s!fam \fam
+ \s!char \c_math_strut
+ \relax}
-\let\math_strut\math_strut_normal
+\permanent\protected\def\math_strut_depth
+ {\normalsrule
+ \s!width \zeropoint
+ \s!height\zeropoint
+ \s!fam \fam
+ \s!char \c_math_strut
+ \relax}
-% \protected\def\mathstrut{\mathcodecommand{nothing}{\math_strut}}
+\permanent\protected\def\showmathstruts % let's not overload \math_strut_normal
+ {\showmakeup[strut]}
\pushoverloadmode
+ \permanent\protected\def\mathstrut {\math_strut}
+ \permanent\protected\def\mathheightstrut{\math_strut_height}
+ \permanent\protected\def\mathdepthstrut {\math_strut_depth}
+\popoverloadmode
- \definemathcommand [mathstrut] {\math_strut}
+\permanent\protected\def\topstrut{\srule\s!width\zeropoint\s!height\strutht \s!depth\zeropoint\relax}
+\permanent\protected\def\botstrut{\srule\s!width\zeropoint\s!height\zeropoint\s!depth\strutdp \relax}
-\popoverloadmode
+% \newdimension\mathstrutht % see top
+% \newdimension\mathstrutdp % see top
+
+\appendtoks
+ \mathstrutht\strutht
+ \mathstrutdp\strutdp
+ % \writestatus{!!!!!!}{\the\mathstrutht,\the\mathstrutdp}%
+\to \everymathematics
%D We could have a arg variant \unknown\ but not now.
@@ -762,18 +1858,6 @@
% \let\normalmathop\mathop % already defined
-% no longer needed as we no longer switch fonts
-%
-% \protected\def\mathop
-% {\normalmathop
-% \bgroup
-% % no: \let\rm\mf
-% \afterassignment\math_op\let\nexttoken=}
-%
-% \def\math_op{\ifx\nexttoken\bgroup\else\nexttoken\egroup\fi}
-
-% this one too: \letvalue{\??mathcodecommand op}\mathop ?
-
\permanent\protected\def\normalmbox
{\normalhbox\bgroup
\usemathematicsstyleandcolor\c!textstyle\c!textcolor % new
@@ -816,8 +1900,8 @@
\let\math_tags_mo\firstofoneunexpanded
\let\math_tags_mi\firstofoneunexpanded
-\protected\def\math_tags_mn#1{\begingroup\mathupright\math_set_o_both#1\endgroup}
-\protected\def\math_tags_ms#1{\begingroup\mathupright\math_set_p_both#1\endgroup} % why not just \text
+\protected\def\math_tags_mn#1{\begingroup\math_upright\math_set_o_both#1\endgroup}
+\protected\def\math_tags_ms#1{\begingroup\math_upright\math_set_p_both#1\endgroup} % why not just \text
% Once this is stable we can store the number at the tex end which is
% faster. Functions getnumbers >= 1000.
@@ -830,52 +1914,79 @@
\c!functionstyle=, % rm ss etc i.e. known alternatives, otherwise math
\c!functioncolor=]
-\protected\def\math_mfunction_styled
- {\begingroup
- \usemathematicscolorparameter\c!functioncolor
- \edef\p_functionstyle{\mathematicsparameter\c!functionstyle}%
- \ifempty\p_functionstyle
- \expandafter\math_mfunction_styled_none
- \orelse\ifcsname\??alternativestyle\p_functionstyle\endcsname
- \expandafter\math_mfunction_styled_text
- \else
- \expandafter\math_mfunction_styled_math
- \fi}
+% in char-def:
+%
+%
+% \Umathcode"2061 = \mathghostcode \zerocount "2061 % \applyfunction
+% \Umathcode"2062 = \mathghostcode \zerocount "2062 % \invisibletimes
+% \Umathcode"2063 = \mathghostcode \zerocount "2063 % \invisiblecomma
+% \Umathcode"2064 = \mathghostcode \zerocount "2063 % \invisibleplus
+
+%D For previous variants of the function styling you can check the git repository
+%D end April 2022.
+
+% \startTEXpage[offset=1dk]
+% $\sin(x) = 10$
+% \m[functionstyle=sans]{\sin(x) = 10}
+% \startformula \sin(x) = 10 \stopformula
+% \startformula[functionstyle=sans] \sin(x) = 10 \stopformula
+% \stopTEXpage
-\protected\def\math_mfunction_styled_text#1%
- %{\mathoptext{\csname\??alternativestyle\p_functionstyle\endcsname#1}%
- {\expandafter\mathoptext\expandafter{\lastnamedcs#1}%
+\protected\def\math_function_handle#1#2#3%
+ {\begingroup
+ \resetdummyparameter\c!mathlimits
+ \getdummyparameters[#1]%
+ \edef\p_limits{\dummyparameter\c!mathlimits}%
+ \mathatom
+ mathfont
+ class \mathfunctioncode
+ \ifx\p_limits\v!no
+ nolimits
+ \orelse\ifx\p_limits\v!yes
+ limits
+ \orelse\ifx\p_limits\v!auto
+ nolimits
+ limits
+ \fi
+ \bgroup % textfont
+ \math_tags_mfunctionlab{#3}\c_apply_function
+ \usemathematicscolorparameter\c!functioncolor
+ \edef\p_functionstyle{\mathematicsparameter\c!functionstyle}%
+ \ifempty\p_functionstyle
+ \expandafter\math_upright
+ \orelse\ifcsname\??alternativestyle\p_functionstyle\endcsname
+ \expandafter\lastnamedcs
+ \else
+ \expandafter\p_functionstyle
+ \fi
+ #2{#3}%
+ \egroup
\endgroup}
-\protected\def\math_mfunction_styled_math#1%
- {\p_functionstyle
- #1%
- \endgroup}
+\appendtoks
+ \edef\p_functionstyle{\formulaparameter\c!functionstyle}%
+ \ifempty\p_functionstyle\else
+ \letmathematicsparameter\c!functionstyle\p_functionstyle
+ \fi
+ \edef\p_functioncolor{\formulaparameter\c!functioncolor}%
+ \ifempty\p_functioncolor\else
+ \letmathematicsparameter\c!functioncolor\p_functioncolor
+ \fi
+\to \everybeforedisplayformula
-\protected\def\math_mfunction_styled_none#1%
- {\mathupright
- #1%
- \endgroup}
+\permanent\tolerant\protected\def\mfunction [#1]{\math_function_handle{#1}\firstofoneargument}
+\permanent\tolerant\protected\def\mfunctionlabeltext[#1]{\math_function_handle{#1}\mathlabeltext}
-\permanent\protected\def\mfunction#1%
- {\begingroup
- \math_tags_mfunctiontxt{#1}\c_apply_function
- \math_mfunction_styled{#1}%
- \endgroup}
-
-\permanent\protected\def\mfunctionlabeltext#1%
- {\begingroup
- \math_tags_mfunctionlab{#1}\c_apply_function
- \math_mfunction_styled{\mathlabeltext{#1}}%
- \endgroup}
+\permanent\tolerant\protected\def\definemathfunction[#1]#*[#2]%
+ {\frozen\protected\defcsname#1\endcsname{\math_function_handle{#2}\mathlabeltext{#1}}} % \instance
\let\math_tags_mfunctiontxt\gobbletwoarguments
\let\math_tags_mfunctionlab\gobbletwoarguments
-\permanent\protected\def\math_tags_mo_indeed#1{\begingroup \c_attr_mathcategory\plusone #1\endgroup}
-\permanent\protected\def\math_tags_mi_indeed#1{\begingroup \c_attr_mathcategory\plustwo #1\endgroup}
-\permanent\protected\def\math_tags_mn_indeed#1{\begingroup\mathupright\c_attr_mathcategory\plusthree\math_set_o_both#1\endgroup}
-\permanent\protected\def\math_tags_ms_indeed#1{\begingroup\mathupright\c_attr_mathcategory\plusfour \math_set_p_both#1\endgroup} % todo: mathoptext
+\permanent\protected\def\math_tags_mo_indeed#1{\begingroup \c_attr_mathcategory\plusone #1\endgroup}
+\permanent\protected\def\math_tags_mi_indeed#1{\begingroup \c_attr_mathcategory\plustwo #1\endgroup}
+\permanent\protected\def\math_tags_mn_indeed#1{\begingroup\math_upright\c_attr_mathcategory\plusthree\math_set_o_both#1\endgroup}
+\permanent\protected\def\math_tags_ms_indeed#1{\begingroup\math_upright\c_attr_mathcategory\plusfour \math_set_p_both#1\endgroup} % todo: mathoptext
\newconditional\c_apply_function
@@ -913,25 +2024,6 @@
\enforced\let\apply\math_tags_apply
\to\everymathematics
-% \def\mlimitsfunction #1{\mathlimopcomm{{\mr#1}}
-% \def\mnolimitsfunction#1{\mathnolopcomm{{\mr#1}}
-
-% %D Taco posted this solution as response to a mail by Olivier, so let's integrate
-% %D it here.
-%
-% \def\currentmscaledstyle{rm} % will be plugged into the typeface text=ss option
-%
-% \protected\def\math_function_style_opnolimits #1{\mathop{\mscaledtext{#1}}\nolimits}
-% \protected\def\math_function_style_mfunction #1{\mscaledtext{\math_tags_function{#1}}}
-% \protected\def\math_function_style_mfunctionlabeltext#1{\mscaledtext{\math_tags_functionlabeltext{#1}}}
-%
-% \protected\def\setmathfunctionstyle#1% rm ss tt (can be made faster if needed)
-% {\doifsomething{#1}
-% {\def\currentmscaledstyle{#1}%
-% \let\mathopnolimits \math_function_style_opnolimits
-% \let\mfunction \math_function_style_mfunction
-% \let\mfunctionlabeltext\math_function_style_mfunctionlabeltext}}
-
\mutable\def\currentmscaledstyle{rm} % will be plugged into the typeface text=ss option
\permanent\protected\def\mscaledtext#1%
@@ -971,37 +2063,47 @@
%D \donknuthmode $x_2$ x_2 \test{$x_2$} \test{x_2}
%D \stoptyping
%D
-%D The result is as expected: the first line typesets ok, while the second
-%D one triggers an error message.
-
-\setnewconstant\activemathcharcode "8000
-
-\newtoks\activatedmathcharacters
+%D The result is as expected: the first line typesets ok, while the second one
+%D triggers an error message.
-\permanent\protected\def\activatemathcharacter#1%
- {\appendtoks
- \global\mathcode#1=\activemathcharcode
- \to \activatedmathcharacters}
-
-\permanent\def\activatemathcharacters
- {\the\activatedmathcharacters}
-
-% beware, not runtime, so has to happen at format generation
+% \setnewconstant\activemathcharcode "8000
+%
+% \newtoks\activatedmathcharacters
+%
+% \permanent\protected\def\activatemathcharacter#1%
+% {\appendtoks
+% \global\mathcode#1=\activemathcharcode
+% \to \activatedmathcharacters}
+%
+% \permanent\def\activatemathcharacters
+% {\the\activatedmathcharacters}
+%
+% % beware, not runtime, so has to happen at format generation
+%
+% \activatemathcharacter\circumflexasciicode
+% \activatemathcharacter\underscoreasciicode
+% %activatemathcharacter\ampersandasciicode
-\activatemathcharacter\circumflexasciicode
-\activatemathcharacter\underscoreasciicode
-\activatemathcharacter\ampersandasciicode
+% % already done in catc-def.mkxl:
+%
+% \amcode \circumflexasciicode \superscriptcatcode
+% \amcode \underscoreasciicode \subscriptcatcode
+% \amcode \barasciicode \othercatcode
+% \amcode \tildeasciicode \othercatcode
-\permanent\def\normalmathaligntab{&} % \let\normalmathaligntab\aligntab does to work well in a let to & (a def works ok)
+% \Umathcode\circumflexasciicode="0 "0 \circumflexasciicode
+% \Umathcode\underscoreasciicode="0 "0 \underscoreasciicode
-\appendtoks
- \edef\p_ampersand{\mathematicsparameter\s!ampersand}%
- \ifx\p_ampersand\v!normal
- \enforced\let\specialmathaligntab\normalmathaligntab
- \else
- \enforced\let\specialmathaligntab\mathampersand
- \fi
-\to \everysetupmathematics
+% \permanent\def\normalmathaligntab{&}
+%
+% \appendtoks
+% \edef\p_ampersand{\mathematicsparameter\s!ampersand}%
+% \ifx\p_ampersand\v!normal
+% \enforced\let\specialmathaligntab\normalmathaligntab
+% \else
+% \enforced\let\specialmathaligntab\mathampersand
+% \fi
+% \to \everysetupmathematics
%D A simplified version of this code is:
%D
@@ -1039,15 +2141,14 @@
%D $A \char"26 B$
%D \stoptyping
%D
-%D fails with: \type{Misplaced alignment tab character &} and here is the
-%D reason.
+%D fails with: \type{Misplaced alignment tab character &} and here is the reason.
%D
-%D When we have a letter or other category a check happens for an active
-%D character and when it has one then it gets expanded and fed back into the
-%D scanner (sort of).
+%D When we have a letter or other category a check happens for an active character
+%D and when it has one then it gets expanded and fed back into the scanner (sort
+%D of).
%D
-%D A \type {\char} is also fed back as raw character and again when it's letter
-%D of other goes through the same process.
+%D A \type {\char} is also fed back as raw character and again when it's letter of
+%D other goes through the same process.
%D
%D This means that we cannot have a definition like:
%D
@@ -1063,152 +2164,38 @@
%D
%D Maybe we need an option to treat chars like chars.
-% \activatemathcharacter\primeasciicode
-
-% not used:
-%
-% \mathcode\spaceasciicode\activemathcharcode
-%
-% not used:
-%
-% \bgroup
-% \catcode\underscoreasciicode\activecatcode
-% \doglobal\appendtoks
-% \mathcode\underscoreasciicode\activemathcharcode
-% \let_\activemathunderscore
-% \to \everymathematics
-% \egroup
-
-% Here follows some plain legacy: primes.
-%
-% The \let\prime\math_prime_indeed might become an obsolete as we have \doubleprime
-% and \tripleprime and collapsing can nicely handle the script then.
-%
-% Collapsing to 0x2033 and 0x2034 happens elsewhere.
-%
-% \switchtobodyfont[modern]
-% \switchtobodyfont[cambria]
-% \switchtobodyfont[xits]
-% \switchtobodyfont[minion]
-% \setupbodyfont[dejavu]
-%
-% \startbuffer
-% \def\SampleLine#1{%
-% \NC#1
-% \NC\switchtobodyfont[#1]$f^2$ % 1
-% \NC\switchtobodyfont[#1]$f\prime^2$ % 2
-% \NC\switchtobodyfont[#1]$f\prime\prime^2$ % 3
-% \NC\switchtobodyfont[#1]$f\prime\prime\prime^2$ % 4
-% \NC\switchtobodyfont[#1]$f{\prime}^2$ % 5
-% \NC\switchtobodyfont[#1]$f{\prime\prime}^2$ % 6
-% \NC\switchtobodyfont[#1]$f{\prime\prime\prime}^2$ % 7
-% \NC\switchtobodyfont[#1]$f'(x)$ % 8
-% \NC\switchtobodyfont[#1]$f''(x)$ % 9
-% \NC\switchtobodyfont[#1]$f'''(x)$ % 10
-% \NC\NR
-% }
-%
-% \starttabulate[|Tl|Tc|Tc|Tc|Tc|Tc|Tc|Tc|Tc|Tc|Tc|]
-% \NC\NC1\NC2\NC3\NC4\NC5\NC6\NC7\NC8\NC9\NC10\NC\NR
-% \SampleLine{modern}
-% \SampleLine{cambria}
-% \SampleLine{xits}
-% \SampleLine{minion}
-% \stoptabulate
-% \stopbuffer
-%
-% \typebuffer \getbuffer
-
-% most math fonts have messed up primes, just test this: $\prime^{\prime^{\prime}}$
-
-{ \catcode\circumflexasciicode\othercatcode \immutable\glet\othercircumflextoken ^ }
-{ \catcode\circumflexasciicode\superscriptcatcode \immutable\glet\superscriptcircumflextoken^ }
+%D The commented prime related code (dating from \MKII\ times has been removed in
+%D April 2022 but it's in the archives. In \LUAMETATEX\ primes are part of the
+%D machinery and additional magic (as in \MKIV) happens elsewhere. There is no
+%D need to remember old stuff because \MKII\ times are long gone.
\ifdefined \prime \else
\Umathchardef\prime "0 "0 "2032
\fi
-% \let\math_prime_indeed_normal\prime
-%
-% \appendtoks
-% \let\math_prime_indeed_normal\prime % gets defined later
-% \let\mathfontprime\prime % for tracing
-% \let\prime\math_prime_indeed % so this is needed
-% \to \everydump
-%
-% \protected\def\math_prime_indeed
-% {\iffontchar\textfont\zerocount"FE325\relax
-% ^\bgroup
-% \expandafter\math_prime_indeed_virtual % virtual mess (using funny signal)
-% \else
-% % \expandafter\math_prime_indeed_normal % gets collapsed
-% \expandafter\math_prime_indeed_crapped % gets collapsed
-% \fi}
-%
-% \def\math_prime_indeed_crapped
-% {{^{\math_prime_indeed_normal}}}
-%
-% % \let\prime\math_prime_indeed
-%
-% \def\math_prime_indeed_virtual
-% {\math_prime_indeed_normal
-% \futurelet\nexttoken\math_prime_indeed_choice}
-%
-% \installcorenamespace{mathprime}
-%
-% \def\math_prime_indeed_choice
-% {\csname\??mathprime
-% \ifx '\nexttoken a\else
-% \ifx \math_prime_indeed_normal\nexttoken a\else
-% \ifx \prime\nexttoken a\else
-% \ifx\superscriptcircumflextoken\nexttoken b\else
-% \ifx\othercircumflextoken \nexttoken b\else
-% c\fi\fi\fi\fi\fi
-% \endcsname}
-%
-% \setvalue{\??mathprime a}#1{\math_prime_indeed_virtual}
-% \setvalue{\??mathprime b}#1#2{#2\egroup}
-% \setvalue{\??mathprime c}{\egroup}
+%D We also dropped the option to let ampersands be alignment tabs. That has never
+%D been a \CONTEXT\ feature|/|habit anyway.
+
+% \bgroup
%
-% \let\activemathprime\math_prime_indeed
+% \catcode\underscoreasciicode\activecatcode
+% \catcode\circumflexasciicode\activecatcode
%
-% \bgroup
+% \aliased\glet\specialmathaligntab\normalmathaligntab
%
-% \catcode\primeasciicode\activecatcode
+% \permanent\protected\gdef\obeymathcatcodes{%
+% \enforced\let _\normalsubscript
+% \enforced\let ^\normalsuperscript
+% }
%
-% \global\everymathematics\expandafter{\the\everymathematics\let'\math_prime_indeed} % todo: do this at the lua end
+% \doglobal\appendtoks
+% \enforced\let _\normalsubscript
+% \enforced\let ^\normalsuperscript
+% \to \everymathematics
%
% \egroup
-% $\char26$ gives an error because it expands to an active character that
-% then becomes an & which is then seen as an alignment character; anyway,
-% even when we switch like this the different meaning only happens when
-% we're in math mode which can be delayed till we're in a cell
-
-\bgroup
-
- \catcode\underscoreasciicode\activecatcode
- \catcode\circumflexasciicode\activecatcode
- \catcode\ampersandasciicode \activecatcode
-
- \aliased\glet\specialmathaligntab\normalmathaligntab
-
- \permanent\protected\gdef\obeymathcatcodes{%
- \enforced\let _\normalsubscript
- \enforced\let ^\normalsuperscript
- \enforced\def &\specialmathaligntab
- }
-
- \doglobal\appendtoks
- \enforced\let _\normalsubscript
- \enforced\let ^\normalsuperscript
- \enforced\let &\specialmathaligntab
- \to \everymathematics
-
- % \permanent\protected\gdef\normalmathampersands
- % {\let\specialmathaligntab\mathampersand}
-
-\egroup
+%D We keep this, just for the fun of it:
\newtoks\everydonknuthmode
\newtoks\everynonknuthmode
@@ -1365,8 +2352,8 @@
\installcorenamespace{mathaligndirection}
-\setvalue{\??mathaligndirection r2l}{\settrue\c_math_right_to_left}
-\setvalue{\??mathaligndirection\v!righttoleft}{\settrue\c_math_right_to_left}
+\defcsname\??mathaligndirection r2l\endcsname{\settrue\c_math_right_to_left}
+\defcsname\??mathaligndirection\v!righttoleft\endcsname{\settrue\c_math_right_to_left}
\appendtoks
\ifcsname\??mathaligndirection\mathematicsparameter\c!align\endcsname
@@ -1386,26 +2373,26 @@
\math_basics_synchronize_direction
\to \everyswitchmathematics
-% experimental (needed for an article)
-
-\installcorenamespace {mathbidi}
-
-\newcount\c_math_bidi
+% experimental (needed for an article) .. this is is no longer neded
-\def\math_bidi_enable {\clf_setmathdirection\plusone \relax\c_math_bidi\plusone}
-\def\math_bidi_disable{\clf_setmathdirection\zerocount\relax\c_math_bidi\attributeunsetvalue}
-
-\letvalue{\??mathbidi\v!yes}\math_bidi_enable
-\letvalue{\??mathbidi\v!no }\math_bidi_disable
-
-\appendtoks
- \edef\p_bidi{\mathematicsparameter\c!bidi}% still needed ?
- \ifcsname\??mathbidi\p_bidi\endcsname\lastnamedcs\else\math_bidi_disable\fi
-\to \everysetupmathematics
-
-\appendtoks
- \c_attr_mathbidi\ifconditional\c_math_right_to_left\c_math_bidi\else\attributeunsetvalue\fi
-\to \everyswitchmathematics
+% \installcorenamespace {mathbidi}
+%
+% \newcount\c_math_bidi
+%
+% \def\math_bidi_enable {\clf_setmathdirection\plusone \relax\c_math_bidi\plusone}
+% \def\math_bidi_disable{\clf_setmathdirection\zerocount\relax\c_math_bidi\attributeunsetvalue}
+%
+% \letcsname\??mathbidi\v!yes\endcsname\math_bidi_enable
+% \letcsname\??mathbidi\v!no \endcsname\math_bidi_disable
+%
+% \appendtoks
+% \edef\p_bidi{\mathematicsparameter\c!bidi}% still needed ?
+% \ifcsname\??mathbidi\p_bidi\endcsname\lastnamedcs\else\math_bidi_disable\fi
+% \to \everysetupmathematics
+%
+% \appendtoks
+% \c_attr_mathbidi\ifconditional\c_math_right_to_left\c_math_bidi\else\attributeunsetvalue\fi
+% \to \everyswitchmathematics
%D Delayed: greek.
%D
@@ -1425,23 +2412,9 @@
\newconstant\c_math_greek_attribute
-\setvalue{\??mathgreek\v!none }{1}
-\setvalue{\??mathgreek\v!normal}{2}
-\setvalue{\??mathgreek\v!italic}{3}
-
-% \appendtoks
-% \edef\p_sygreek{\mathematicsparameter\s!sygreek}%
-% \edef\p_lcgreek{\mathematicsparameter\s!lcgreek}%
-% \edef\p_ucgreek{\mathematicsparameter\s!ucgreek}%
-% \c_math_greek_attribute"% hex digits
-% \csname\??mathgreek\ifcsname\??mathgreek\p_sygreek\endcsname\p_sygreek\else\v!none\fi\endcsname
-% \csname\??mathgreek\ifcsname\??mathgreek\p_lcgreek\endcsname\p_lcgreek\else\v!none\fi\endcsname
-% \csname\??mathgreek\ifcsname\??mathgreek\p_ucgreek\endcsname\p_ucgreek\else\v!none\fi\endcsname
-% \relax
-% \ifcase\c_math_greek_attribute
-% \c_math_greek_attribute\attributeunsetvalue
-% \fi
-% \to \everyswitchmathematics
+\defcsname\??mathgreek\v!none \endcsname{1}
+\defcsname\??mathgreek\v!normal\endcsname{2}
+\defcsname\??mathgreek\v!italic\endcsname{3}
\appendtoks
\edef\p_sygreek{\mathematicsparameter\s!sygreek}% still needed ?
@@ -1481,11 +2454,16 @@
\setnewconstant\c_math_collapsing_attribute\attributeunsetvalue
-\letvalue{\??mathcollapsing 1}\plusone % specials
-\letvalue{\??mathcollapsing 2}\plustwo % specials + mathlist
-\letvalue{\??mathcollapsing 3}\plusthree % mathlist + specials
-\letvalue{\??mathcollapsing\v!none }\attributeunsetvalue
-\letvalue{\??mathcollapsing\v!reset}\attributeunsetvalue
+\letcsname\??mathcollapsing 0\endcsname\zerocount % enforced (primes)
+\letcsname\??mathcollapsing\s!tex \endcsname\zerocount
+\letcsname\??mathcollapsing 1\endcsname\plusone % enforced | specials
+\letcsname\??mathcollapsing\v!default\endcsname\plusone
+\letcsname\??mathcollapsing 2\endcsname\plustwo % enforced | specials | mathlist
+\letcsname\??mathcollapsing\v!all \endcsname\plustwo
+\letcsname\??mathcollapsing 3\endcsname\plusthree % enforced | mathlist | specials
+\letcsname\??mathcollapsing\v!list \endcsname\plusthree
+\letcsname\??mathcollapsing\v!none \endcsname\attributeunsetvalue
+\letcsname\??mathcollapsing\v!reset \endcsname\attributeunsetvalue
\def\math_collapsing_initialize
{\ifnum\c_math_collapsing_attribute=\attributeunsetvalue \else
@@ -1511,18 +2489,42 @@
%D Math italics (experiment)
%D We need keys but what names to use and because we have hardcoded solution
-%D we can stick to numbers.
+%D we can stick to numbers. At some point this will change because we can now
+%D control in in the engine and goodies per font.
-\installcorenamespace{mathitalics}
+% \installcorenamespace{mathitalics}
+%
+% \setnewconstant\c_math_italics_attribute\attributeunsetvalue
+%
+% \letcsname\??mathitalics 1\endcsname\plusone % fontitalics
+% \letcsname\??mathitalics 2\endcsname\plustwo % fontdata
+% \letcsname\??mathitalics 3\endcsname\plusthree % quad based
+% \letcsname\??mathitalics 4\endcsname\plusfour % combination of 1 and 3
+% \letcsname\??mathitalics \v!none\endcsname\attributeunsetvalue
+% \letcsname\??mathitalics\v!reset\endcsname\attributeunsetvalue
+%
+% \def\math_italics_initialize
+% {\ifnum\c_math_italics_attribute=\attributeunsetvalue \else
+% \clf_initializemathitalics % one time
+% \glet\math_italics_initialize\relax
+% \fi}
+%
+% \appendtoks
+% \edef\p_italics{\mathematicsparameter\s!italics}%
+% \c_math_italics_attribute
+% \ifcsname\??mathitalics\p_italics\endcsname\lastnamedcs\else\attributeunsetvalue\fi
+% \relax
+% % \math_italics_initialize
+% \to \everyswitchmathematics % only in mathematics
+%
+% \appendtoks
+% \math_italics_initialize
+% \c_attr_mathitalics\c_math_italics_attribute
+% \to \everymathematics
\setnewconstant\c_math_italics_attribute\attributeunsetvalue
-\letvalue{\??mathitalics 1}\plusone % fontitalics
-\letvalue{\??mathitalics 2}\plustwo % fontdata
-\letvalue{\??mathitalics 3}\plusthree % quad based
-\letvalue{\??mathitalics 4}\plusfour % combination of 1 and 3
-\letvalue{\??mathitalics\v!none }\attributeunsetvalue
-\letvalue{\??mathitalics\v!reset}\attributeunsetvalue
+% merge these:
\def\math_italics_initialize
{\ifnum\c_math_italics_attribute=\attributeunsetvalue \else
@@ -1533,9 +2535,14 @@
\appendtoks
\edef\p_italics{\mathematicsparameter\s!italics}%
\c_math_italics_attribute
- \ifcsname\??mathitalics\p_italics\endcsname\lastnamedcs\else\attributeunsetvalue\fi
+ \ifx\p_italics\v!none
+ \attributeunsetvalue
+ \orelse\ifx\p_italics\v!reset
+ \attributeunsetvalue
+ \else
+ \plusone
+ \fi
\relax
- % \math_italics_initialize
\to \everyswitchmathematics % only in mathematics
\appendtoks
@@ -1543,9 +2550,6 @@
\c_attr_mathitalics\c_math_italics_attribute
\to \everymathematics
-% \setupmathematics % done later
-% [\s!italics=3] % 4 is probably better
-
% looks nicer but can generate bogus csnames
%
% \setvalue{\??mathitalics1}{\math_italics_initialize\c_math_italics_attribute\plusone } % fontitalics
@@ -1600,29 +2604,29 @@
% \protected\def\disablemathpunctuation{\setfalse\automathpunctuation}
%
% \appendtoks
-% \doifelse{\mathematicsparameter\v!autopunctuation}\v!yes\settrue\setfalse\automathpunctuation
+% \doifelse{\mathematicsparameter\c!autopunctuation}\v!yes\settrue\setfalse\automathpunctuation
% \to \everyswitchmathematics
%
% \setupmathematics
-% [\v!autopunctuation=\v!no]
+% [\c!autopunctuation=\v!no]
%
% \def\math_punctuation_next{\ifx\nexttoken\blankspace\signalcharacter\fi}
%
% \protected\def\math_punctuation_comma {\textcomma \futurelet\nexttoken\math_punctuation_next}
% \protected\def\math_punctuation_period{\textperiod\futurelet\nexttoken\math_punctuation_next}
%
-% \setnewconstant\c_math_comma "002C
-% \setnewconstant\c_math_period "002E
+% \setnewconstant\commaasciicode "002C
+% \setnewconstant\periodasciicode "002E
% \setnewconstant\c_math_special"8000
%
% \bgroup
%
-% \catcode\c_math_comma \activecatcode
-% \catcode\c_math_period\activecatcode
+% \catcode\commaasciicode \activecatcode
+% \catcode\periodasciicode\activecatcode
%
% \protected\gdef\math_punctuation_initialize_indeed
-% {\mathcode\c_math_comma \c_math_special
-% \mathcode\c_math_period\c_math_special
+% {\mathcode\commaasciicode \c_math_special
+% \mathcode\periodasciicode\c_math_special
% \let,\math_punctuation_comma
% \let.\math_punctuation_period
% \c_attr_mathpunctuation\plustwo}
@@ -1662,29 +2666,49 @@
%
% The next one is more efficient as it produces more flat noad lists for numbers.
-\setnewconstant\c_math_comma "002C
-\setnewconstant\c_math_period "002E
-%setnewconstant\c_math_colon "003A
-\setnewconstant\c_math_semicolon"003B
-\setnewconstant\c_math_special "8000
+%D This is a dirty trick. In order to prevent a loop due to reinjection, when a
+%D active one is seen, the amcode is set to other. So, afterwards we need to
+%D reactivate. Eventually this feature will be dropped in favor of a more modern
+%D mechanism.
-% todo: use \Umathclass\c_math_comma\mathpunctcode etc for temporary switching
+%D These amcodes can be alignmenttab, superscript, subscript, letter, otherchar, or
+%D active. That way we can avoid the "8000 hackery and let characters keep the
+%D proper class. The code is checked when we run into an active character in math
+%D mode
-\def\math_set_o_comma {\Umathcode\c_math_comma \mathordcode \zerocount\c_math_comma}
-\def\math_set_p_comma {\Umathcode\c_math_comma \mathpunctcode\zerocount\c_math_comma}
-\def\math_set_o_period {\Umathcode\c_math_period \mathordcode \zerocount\c_math_period}
-\def\math_set_p_period {\Umathcode\c_math_period \mathpunctcode\zerocount\c_math_period}
-\def\math_set_o_semicolon{\Umathcode\c_math_semicolon\mathordcode \zerocount\c_math_semicolon}
-\def\math_set_p_semicolon{\Umathcode\c_math_semicolon\mathpunctcode\zerocount\c_math_semicolon}
+\def\math_activeate_comma {\amcode\commaasciicode \activecatcode}
+\def\math_activeate_period {\amcode\periodasciicode \activecatcode}
+\def\math_activeate_semicolon{\amcode\semicolonasciicode\activecatcode}
-\edef\math_set_o_both {\math_set_o_period\math_set_o_comma}
-\edef\math_set_p_both {\math_set_p_period\math_set_p_comma}
+\def\math_set_o_comma {\Umathcode\commaasciicode \mathordinarycode \zerocount\commaasciicode}
+\def\math_set_p_comma {\Umathcode\commaasciicode \mathpunctuationcode\zerocount\commaasciicode}
+\def\math_set_o_period {\Umathcode\periodasciicode \mathordinarycode \zerocount\periodasciicode}
+\def\math_set_p_period {\Umathcode\periodasciicode \mathpunctuationcode\zerocount\periodasciicode}
+\def\math_set_o_semicolon{\Umathcode\semicolonasciicode\mathordinarycode \zerocount\semicolonasciicode}
+\def\math_set_p_semicolon{\Umathcode\semicolonasciicode\mathpunctuationcode\zerocount\semicolonasciicode}
-\protected\def\math_punctuation_nop_comma {\begingroup\math_set_p_comma ,\endgroup}
-\protected\def\math_punctuation_nop_period {\begingroup\math_set_o_period .\endgroup}
-\protected\def\math_punctuation_nop_semicolon{\begingroup\math_set_p_semicolon;\endgroup}
+\edef\math_set_o_both{\math_set_o_period\math_set_o_comma}
+\edef\math_set_p_both{\math_set_p_period\math_set_p_comma}
-% todo: use new lookahead stuff
+% We cannot use \mathchardef'd variants because then are intercepted as active, so:
+
+\protected\def\math_punctuation_nop_comma {\begingroup\math_set_p_comma ,\endgroup\math_activeate_comma }
+\protected\def\math_punctuation_nop_period {\begingroup\math_set_o_period .\endgroup\math_activeate_period }
+\protected\def\math_punctuation_nop_semicolon{\begingroup\math_set_p_semicolon;\endgroup\math_activeate_semicolon}
+
+\def\math_punctuation_comma_next {\begingroup\Umathcode\commaasciicode \ifx\nexttoken\blankspace\mathpunctuationcode\else\mathordinarycode\fi\zerocount\commaasciicode ,\endgroup\math_activeate_comma }
+\def\math_punctuation_period_next {\begingroup\Umathcode\periodasciicode \ifx\nexttoken\blankspace\mathpunctuationcode\else\mathordinarycode\fi\zerocount\periodasciicode .\endgroup\math_activeate_period }
+\def\math_punctuation_semicolon_next{\begingroup\Umathcode\semicolonasciicode\ifx\nexttoken\blankspace\mathpunctuationcode\else\mathordinarycode\fi\zerocount\semicolonasciicode;\endgroup\math_activeate_semicolon}
+
+% So, nicer is:
+%
+% \protected\def\math_punctuation_nop_comma {\Umathclass\mathpunctuationcode\commaasciicode \math_activeate_comma }
+% \protected\def\math_punctuation_nop_period {\Umathclass\mathordinarycode \periodasciicode \math_activeate_period }
+% \protected\def\math_punctuation_nop_semicolon{\Umathclass\mathpunctuationcode\semicolonasciicode\math_activeate_semicolon}
+%
+% \def\math_punctuation_comma_next {\Umathclass\ifx\nexttoken\blankspace\mathpunctuationcode\else\mathordinarycode\fi\commaasciicode \math_activeate_comma }
+% \def\math_punctuation_period_next {\Umathclass\ifx\nexttoken\blankspace\mathpunctuationcode\else\mathordinarycode\fi\periodasciicode \math_activeate_period }
+% \def\math_punctuation_semicolon_next{\Umathclass\ifx\nexttoken\blankspace\mathpunctuationcode\else\mathordinarycode\fi\semicolonasciicode\math_activeate_semicolon}
\protected\def\math_punctuation_all_comma {\futurelet\nexttoken\math_punctuation_comma_next}
\protected\def\math_punctuation_all_period {\futurelet\nexttoken\math_punctuation_period_next}
@@ -1694,55 +2718,47 @@
\let\math_punctuation_yes_period \math_punctuation_nop_period
\let\math_punctuation_yes_semicolon\math_punctuation_all_semicolon
-\def\math_punctuation_comma_next {\begingroup\Umathcode\c_math_comma \ifx\nexttoken\blankspace\mathordcode\else\mathordcode\fi\zerocount\c_math_comma ,\endgroup}
-\def\math_punctuation_period_next {\begingroup\Umathcode\c_math_period \ifx\nexttoken\blankspace\mathordcode\else\mathordcode\fi\zerocount\c_math_period .\endgroup}
-\def\math_punctuation_semicolon_next{\begingroup\Umathcode\c_math_semicolon\ifx\nexttoken\blankspace\mathordcode\else\mathordcode\fi\zerocount\c_math_semicolon;\endgroup}
-
\installcorenamespace {mathautopunctuation}
\bgroup
- \catcode\c_math_comma \activecatcode
- \catcode\c_math_period \activecatcode
- \catcode\c_math_semicolon\activecatcode
+ % This can and will be replaced by classes:
+
+ \catcode\commaasciicode \activecatcode
+ \catcode\periodasciicode \activecatcode
+ \catcode\semicolonasciicode\activecatcode
- \setgvalue{\??mathautopunctuation\v!no}%
+ \gdefcsname\??mathautopunctuation\v!no\endcsname
{\let,\math_punctuation_nop_comma
\let.\math_punctuation_nop_period
\let;\math_punctuation_nop_semicolon}
- % more efficient list:
- %
- % \setgvalue{\??mathautopunctuation\v!no}%
- % {\Umathcode\c_math_period\mathordcode \zerocount\c_math_period
- % \Umathcode\c_math_comma \mathpunctcode\zerocount\c_math_comma }
-
- \setgvalue{\??mathautopunctuation\v!yes}%
+ \gdefcsname\??mathautopunctuation\v!yes\endcsname
{\let,\math_punctuation_yes_comma
\let.\math_punctuation_yes_period
\let;\math_punctuation_nop_semicolon}
- \setgvalue{\??mathautopunctuation\v!all}%
+ \gdefcsname\??mathautopunctuation\v!all\endcsname
{\let,\math_punctuation_all_comma
\let.\math_punctuation_all_period
\let;\math_punctuation_nop_semicolon}
- \setgvalue{\??mathautopunctuation comma}%
+ \gdefcsname\??mathautopunctuation comma\endcsname
{\let,\math_punctuation_yes_comma
\let.\math_punctuation_yes_period
\let;\math_punctuation_nop_semicolon}
- \setgvalue{\??mathautopunctuation\v!yes\string,semicolon}%
+ \gdefcsname\??mathautopunctuation\v!yes\string,semicolon\endcsname
{\let,\math_punctuation_yes_comma
\let.\math_punctuation_yes_period
\let;\math_punctuation_yes_semicolon}
- \setgvalue{\??mathautopunctuation comma\string,semicolon}%
+ \gdefcsname\??mathautopunctuation comma\string,semicolon\endcsname
{\let,\math_punctuation_yes_comma
\let.\math_punctuation_yes_period
\let;\math_punctuation_yes_semicolon}
- \setgvalue{\??mathautopunctuation\v!all\string,semicolon}%
+ \gdefcsname\??mathautopunctuation\v!all\string,semicolon\endcsname
{\let,\math_punctuation_all_comma
\let.\math_punctuation_all_period
\let;\math_punctuation_all_semicolon}
@@ -1750,25 +2766,32 @@
\egroup
% \appendtoks
-% \global\mathcode\c_math_comma \c_math_special
-% \global\mathcode\c_math_period \c_math_special
-% \global\mathcode\c_math_semicolon\c_math_special
+% \global\mathcode\commaasciicode \c_math_special
+% \global\mathcode\periodasciicode \c_math_special
+% \global\mathcode\semicolonasciicode\c_math_special
% \to \everyjob
-% \activatemathcharacter\c_math_comma
-% \activatemathcharacter\c_math_period
-% \activatemathcharacter\c_math_semicolon
+% \activatemathcharacter\commaasciicode
+% \activatemathcharacter\periodasciicode
+% \activatemathcharacter\semicolonasciicode
+
+% \appendtoks
+% \mathcode\commaasciicode \c_math_special
+% \mathcode\periodasciicode \c_math_special
+% \mathcode\semicolonasciicode\c_math_special
+% \begincsname\??mathautopunctuation\mathematicsparameter\c!autopunctuation\endcsname
+% \to \everymathematics
\appendtoks
- \mathcode\c_math_comma \c_math_special
- \mathcode\c_math_period \c_math_special
- \mathcode\c_math_semicolon\c_math_special
- \begincsname\??mathautopunctuation\mathematicsparameter\v!autopunctuation\endcsname
+ \math_activeate_comma
+ \math_activeate_period
+ \math_activeate_semicolon
+ \begincsname\??mathautopunctuation\mathematicsparameter\c!autopunctuation\endcsname
\to \everymathematics
\appendtoks
- \ifcsname\??mathautopunctuation\mathematicsparameter\v!autopunctuation\endcsname \else
- \letmathematicsparameter\v!autopunctuation\v!no
+ \ifcsname\??mathautopunctuation\mathematicsparameter\c!autopunctuation\endcsname \else
+ \letmathematicsparameter\c!autopunctuation\v!no
\fi
\to \everysetupmathematics
@@ -1776,7 +2799,93 @@
\permanent\protected\def\disablemathpunctuation{\csname\??mathautopunctuation\v!yes\endcsname}
\setupmathematics
- [\v!autopunctuation=\v!no] % no | yes | all | comma | yes,semicolon | all,semicolon
+ [\c!autopunctuation=\v!no] % no | yes | all | comma | yes,semicolon | all,semicolon
+
+%D The next replaces the above:
+
+% \startbuffer
+% \im{x + 1,222,333.44 + x}\par
+% \im{x + 1.222.333,44 + x}\par
+% \im{x + 1, 222, 333. 44 + x}\par
+% \im{(1.5, 1.5) + (1,5;1,5)}\par
+% \im{111 2222}\par
+% \im{f: \reals\to\reals}\par
+% \im{f : \reals\to\reals}\par
+% \im{f\colon\reals\to\reals}\par
+% \im{f \colon\reals\to\reals}\par
+% \stopbuffer
+%
+% \startTEXpage[offset=1dk]
+% \setupmathematics[autospacing=yes] \getbuffer \blank
+% \setupmathematics[autonumbers=1] \getbuffer \blank
+% \setupmathematics[autonumbers=2] \getbuffer \blank
+% \setupmathematics[autonumbers=3] \getbuffer \blank
+% \setupmathematics[autonumbers=4] \getbuffer \blank
+% \setupmathematics[autonumbers=5] \getbuffer \blank
+% \setupmathematics[autonumbers=6] \getbuffer \blank
+% \stopTEXpage
+
+\installcorenamespace{autospacing}
+
+\permanent\protected\def\enablemathautospacing
+ {\attribute\mathspacingattribute\plusone
+ \clf_initializemathspacing}
+
+\permanent\protected\def\disablemathautospacing
+ {\attribute\mathspacingattribute\attributeunsetvalue}
+
+\appendtoks
+ \ifcstok{\mathematicsparameter\c!autospacing}\v!yes
+ \enablemathautospacing
+ \else
+ \disablemathautospacing
+ \fi
+\to \everysetupmathematics
+
+\setupmathematics
+ [\c!autospacing=\v!no]
+
+\permanent\protected\def\enablemathautonumbers
+ {\attribute\mathnumbersattribute\plusone
+ \clf_initializemathnumbers}
+
+\permanent\protected\def\disablemathautonumbers
+ {\attribute\mathnumbersattribute\attributeunsetvalue}
+
+\appendtoks
+ \edef\p_autonumbers{\mathematicsparameter\c!autonumbers}%
+ \ifchknum\p_autonumbers\or
+ \enablemathautonumbers % default
+ \attribute\mathnumbersattribute\p_autonumbers\relax
+ \orelse\ifx\p_autonumbers\v!no
+ \disablemathautonumbers
+ \else
+ \enablemathautonumbers % default
+ \fi
+\to \everysetupmathematics
+
+\setupmathematics
+ [\c!autonumbers=\v!no]
+
+\installcorenamespace{autofencing}
+
+\permanent\protected\def\enablemathautofencing
+ {\attribute\mathfencingattribute\plusone
+ \clf_initializemathfencing}
+
+\permanent\protected\def\disablemathautofencing
+ {\attribute\mathfencingattribute\attributeunsetvalue}
+
+\appendtoks
+ \ifcstok{\mathematicsparameter\c!autofencing}\v!yes
+ \enablemathautofencing
+ \else
+ \disablemathautofencing
+ \fi
+\to \everysetupmathematics
+
+\setupmathematics
+ [\c!autofencing=\v!no]
%D The consequences of setting this are as follows:
%D
@@ -1831,25 +2940,31 @@
% 7 = crampedscriptscript
\permanent\def\uncramped#1%
- {{\ifmathstyle
+ {\beginmathgroup
+ \ifmathstyle
\or \displaystyle \or
\or \textstyle \or
\or \scriptstyle \or
\or \scriptscriptstyle \fi
- #1}}
+ #1%
+ \endmathgroup}
\permanent\def\cramped#1%
- {{\ifmathstyle
+ {\beginmathgroup
+ \ifmathstyle
\crampeddisplaystyle \or \or % 0 -> 1
\crampedtextstyle \or \or % 2 -> 3
\crampedscriptstyle \or \or % 4 -> 5
\crampedscriptscriptstyle \fi % 6 -> 7
- #1}}
+ #1%
+ \endmathgroup}
\permanent\def\triggermathstyle#1{\Ustyle\numexpr#1\relax}
%permanent\def\mathstyletrigger#1{\numexpr#1\relax}
\permanent\let\mathstyletrigger \firstofoneargument
+\def\triggeredmathstyle#1{\Ustyle\numexpr\number#1\relax} % expandable
+
\permanent\def\triggeredmathstyleparameter#1% to bypass the relax
{\ifcase\numexpr\normalmathstyle\relax
#1\displaystyle \or % 0
@@ -1915,6 +3030,9 @@
\textface
\fi}
+% \permanent\def\mathstyleface#1% #1 is number (\normalmathstyle)
+% {\mathstylefont#1\relax}
+
\permanent\def\mathsmallstyleface#1% #1 is number (\normalmathstyle)
{\ifcase\numexpr#1\relax
\scriptface \or
@@ -1928,6 +3046,19 @@
\scriptface
\fi}
+% \permanent\def\mathsmallstyleface#1% #1 is number (\normalmathstyle)
+% {\mathstylefont\ifcase\numexpr#1\relax
+% \scriptstyle \or
+% \scriptstyle \or
+% \scriptstyle \or
+% \scriptstyle \or
+% \scriptscriptstyle \or
+% \scriptscriptstyle \or
+% \scriptscriptstyle \or
+% \scriptscriptstyle \else
+% \scriptstyle
+% \fi}
+
\permanent\def\mathstylecommand#1#2#3%
{\ifcase\numexpr\normalmathstyle\relax
\expandafter#1\or
@@ -2024,32 +3155,38 @@
% to be tested: {#1} but it could have side effects
-% \protected\def\mathstylehbox#1% sensitive for: a \over b => {a\over b} or \frac{a}{b}
-% {\normalexpanded{\hbox\bgroup
-% \startimath\triggermathstyle\normalmathstyle}\mathsurround\zeropoint#1\stopimath\egroup}
-
\permanent\protected\def\mathstylehbox#1#% sensitive for: a \over b => {a\over b} or \frac{a}{b}
{\math_style_hbox{#1}}
\protected\def\math_style_hbox#1#2% sensitive for: a \over b => {a\over b} or \frac{a}{b}
{\normalexpanded{\hbox#1\bgroup
- \startimath\triggermathstyle\normalmathstyle}\mathsurround\zeropoint#2\stopimath\egroup}
+ \startimath\triggeredmathstyle\normalmathstyle}\mathsurround\zeropoint#2\stopimath\egroup}
+
+% adaptive variant:
+%
+% \protected\def\math_style_hbox#1#2% sensitive for: a \over b => {a\over b} or \frac{a}{b}
+% {\normalexpanded{\setbox\scratchbox\hbox#1\bgroup
+% \mathbeginclass\lastrightclass
+% \startimath\Ustyle\the\mathstyle\relax}%
+% \mathsurround\zeropoint#2\stopimath\egroup
+% \box\scratchbox
+% \mathrightclass\lastrightclass }
\permanent\protected\def\mathstylevbox#1%
{\normalexpanded{\vbox\bgroup
- \startimath\triggermathstyle\normalmathstyle}\mathsurround\zeropoint#1\stopimath\egroup}
+ \startimath\triggeredmathstyle\normalmathstyle}\mathsurround\zeropoint#1\stopimath\egroup}
\permanent\protected\def\mathstylevcenter#1%
{\normalexpanded{\vcenter\bgroup
- \startimath\triggermathstyle\normalmathstyle}\mathsurround\zeropoint#1\stopimath\egroup}
+ \startimath\triggeredmathstyle\normalmathstyle}\mathsurround\zeropoint#1\stopimath\egroup}
\permanent\protected\def\mathstylevcenteredhbox#1%
{\normalexpanded{\vcenter\bgroup\hbox\bgroup
- \startimath\triggermathstyle\normalmathstyle}\mathsurround\zeropoint#1\stopimath\egroup\egroup}
+ \startimath\triggeredmathstyle\normalmathstyle}\mathsurround\zeropoint#1\stopimath\egroup\egroup}
\permanent\protected\def\mathstylevcenteredvbox#1%
{\normalexpanded{\vcenter\bgroup\vbox\bgroup
- \startimath\triggermathstyle\normalmathstyle}\mathsurround\zeropoint#1\stopimath\egroup\egroup}
+ \startimath\triggeredmathstyle\normalmathstyle}\mathsurround\zeropoint#1\stopimath\egroup\egroup}
\permanent\protected\def\setmathsmalltextbox#1#2#%
{\normalizebodyfontsize\m_math_text_choice_face{\mathsmallstyleface\normalmathstyle}%
@@ -2218,7 +3355,7 @@
\crampedscriptstyle \or
\fi}
-\newcount\c_math_saved_style
+\newinteger\c_math_saved_style
\permanent\protected\def\pushmathstyle % assumes begingroup .. endgroup
{\c_math_saved_style\mathstyle}
@@ -2308,44 +3445,26 @@
\fi
}
-\permanent\tolerant\protected\def\setmathstyle[#1]#;#=% so we accept [] and {}
- {\edef\m_math_style_asked{#1#2}%
- \ifempty\m_math_style_asked \else
- \math_style_set_indeed
- \fi}
-
\permanent\def\installmathstyle#1#2%
{\ifcsname\??mathstylecommand#1\endcsname \else
- \setvalue{\??mathstylecommand#1}{#2}%
+ \defcsname\??mathstylecommand#1\endcsname{#2}%
\fi}
\def\math_style_collect#1%
{\csname\??mathstylecommand#1\endcsname}
-\setvalue{\??mathstylecommand\s!display }{\c_math_styles_state_style \plusone}
-\setvalue{\??mathstylecommand\s!text }{\c_math_styles_state_style \plustwo}
-\setvalue{\??mathstylecommand\s!script }{\c_math_styles_state_style \plusthree}
-\setvalue{\??mathstylecommand\s!scriptscript}{\c_math_styles_state_style \plusfour}
-
-\setvalue{\??mathstylecommand\s!uncramped }{\c_math_styles_state_cramped\plusone}
-\setvalue{\??mathstylecommand\s!cramped }{\c_math_styles_state_cramped\plustwo}
-\setvalue{\??mathstylecommand\v!normal }{\c_math_styles_state_cramped\plusone}
-\setvalue{\??mathstylecommand\v!packed }{\c_math_styles_state_cramped\plustwo}
+\defcsname\??mathstylecommand\s!display \endcsname{\c_math_styles_state_style \plusone}
+\defcsname\??mathstylecommand\s!text \endcsname{\c_math_styles_state_style \plustwo}
+\defcsname\??mathstylecommand\s!script \endcsname{\c_math_styles_state_style \plusthree}
+\defcsname\??mathstylecommand\s!scriptscript\endcsname{\c_math_styles_state_style \plusfour}
-\setvalue{\??mathstylecommand\v!small }{\c_math_styles_state_size \plusone}
-\setvalue{\??mathstylecommand\v!big }{\c_math_styles_state_size \plustwo}
-
-\permanent\protected\def\setupmathstyle[#1]%
- {\edef\m_math_style_asked{#1}%
- \ifempty\m_math_style_asked \else
- \math_style_set_indeed
- \fi}
+\defcsname\??mathstylecommand\s!uncramped \endcsname{\c_math_styles_state_cramped\plusone}
+\defcsname\??mathstylecommand\s!cramped \endcsname{\c_math_styles_state_cramped\plustwo}
+\defcsname\??mathstylecommand\v!normal \endcsname{\c_math_styles_state_cramped\plusone}
+\defcsname\??mathstylecommand\v!packed \endcsname{\c_math_styles_state_cramped\plustwo}
-\permanent\protected\def\usemathstyleparameter#1% faster local variant
- {\edef\m_math_style_asked{#1\c!mathstyle}%
- \ifempty\m_math_style_asked \else
- \math_style_set_indeed
- \fi}
+\defcsname\??mathstylecommand\v!small \endcsname{\c_math_styles_state_size \plusone}
+\defcsname\??mathstylecommand\v!big \endcsname{\c_math_styles_state_size \plustwo}
%D \startbuffer
%D \definemathstyle[mystyle][scriptscript]
@@ -2355,39 +3474,65 @@
%D
%D \typebuffer \blank \start \getbuffer \stop \blank
+% maybe move this to the lua end ...
+
\installcorenamespace {mathstyle}
-\permanent\tolerant\protected\def\definemathstyle[#1]#*[#2]%
- {\c_math_styles_state_style \zerocount
- \c_math_styles_state_cramped\zerocount
- \c_math_styles_state_size \zerocount
- \rawprocesscommacommand[#2]\math_style_collect
- \letcsname\??mathstyle#1\normalexpanded{\endcsname\math_style_add_to_cache_choice}}
+\letcsname\??mathstyle \endcsname\empty
+\letcsname\??mathstylecache\endcsname\empty
\def\math_style_set_indeed
{\ifcsname\??mathstyle\m_math_style_asked\endcsname
\lastnamedcs
+ \orelse\ifcsname\??mathstylecache\m_math_style_asked\endcsname
+ \lastnamedcs
\else
- \math_style_set_mathstyle_mathstyle
+ \math_style_set_mathstyle_mathstylecache\m_math_style_asked
\fi}
-\def\math_style_set_mathstyle_mathstyle
- {\ifcsname\??mathstylecache\m_math_style_asked\endcsname
+\permanent\def\expandedmathstyleparameter#1#2%
+ {\normalexpanded{\noexpand\math_style_set_expanded{#1#2}}}
+
+\def\math_style_set_expanded#1%
+ {\ifcsname\??mathstyle#1e\endcsname
+ \lastnamedcs
+ \orelse\ifcsname\??mathstylecache#1\endcsname
\lastnamedcs
\else
- \math_style_set_mathstyle_mathstylecache
+ \math_style_set_mathstyle_mathstylecache{#1}%
+ \fi}
+
+\permanent\protected\def\usemathstyleparameter#1#2%
+ {\edef\m_math_style_asked{#1#2}%
+ \ifempty\m_math_style_asked \else
+ \math_style_set_indeed
+ \fi}
+
+\permanent\tolerant\protected\def\setmathstyle[#1]#;#=% so we accept [] and {}
+ {\edef\m_math_style_asked{#1\c!mathstyle}%
+ \ifempty\m_math_style_asked \else
+ \math_style_set_indeed
+ \fi}
+
+\permanent\protected\def\setupmathstyle[#1]%
+ {\edef\m_math_style_asked{#1}%
+ \ifempty\m_math_style_asked \else
+ \math_style_set_indeed
\fi}
-\def\math_style_set_mathstyle_mathstylecache
- {\c_math_styles_state_style \zerocount
+\def\math_style_set_mathstyle_mathstylecache#1%
+ {\beginlocalcontrol % so we can expand
+ \edef\m_math_style_asked{#1}%
+ \c_math_styles_state_style \zerocount
\c_math_styles_state_cramped\zerocount
\c_math_styles_state_size \zerocount
\rawprocesscommacommand[\m_math_style_asked]\math_style_collect
\gletcsname\??mathstylecache\m_math_style_asked\normalexpanded{\endcsname\math_style_add_to_cache_choice}%
- \csname\??mathstylecache\m_math_style_asked\endcsname}
+ \endlocalcontrol
+ \csname\??mathstylecache#1\endcsname}
-\letvalue{\??mathstyle \??mathstyle }\math_style_set_mathstyle_mathstyle % still needed?
-\letvalue{\??mathstylecache\??mathstylecache}\math_style_set_mathstyle_mathstylecache % still needed?
+% \letcsname\??mathstyle \??mathstyle \endcsname\math_style_set_mathstyle_mathstyle % still needed?
+% \letcsname\??mathstylecache\??mathstylecache\endcsname\math_style_set_mathstyle_mathstylecache % still needed?
%D \startbuffer
%D $x\begingroup\setupmathstyle[script]x\endgroup x$
@@ -2402,21 +3547,21 @@
\ifempty\m_math_style_asked
\enforced\aliased\let\stopmathstyle\relax
\else
- \bgroup
+ \beginmathgroup % \bgroup
\math_style_set_indeed
- \enforced\aliased\let\stopmathstyle\egroup
+ \enforced\aliased\let\stopmathstyle\endmathgroup % \egroup
\fi}
\aliased\let\stopmathstyle\relax
-\permanent\protected\def\startusemathstyleparameter#1%
- {\edef\m_math_style_asked{#1\c!mathstyle}%
+\permanent\protected\def\startusemathstyleparameter#1#2%
+ {\edef\m_math_style_asked{#1#2}%
\ifempty\m_math_style_asked
\enforced\let\stopusemathstyleparameter\relax
\else
- \bgroup
+ \beginmathgroup % \bgroup
\math_style_set_indeed
- \enforced\let\stopusemathstyleparameter\egroup
+ \enforced\let\stopusemathstyleparameter\endmathgroup % \egroup
\fi}
\aliased\let\stopusemathstyleparameter\relax
@@ -2427,88 +3572,205 @@
\let\m_math_text_choice_face\relax
-% if needed we can get rid of the normalize (predo in font code)
+%D We accept a low level box specification so that one can make helpers:
+%D
+%D \startbuffer
+%D \startformula
+%D \startalign[m=2,align={middle}]
+%D \NC \text to 6cm{One\hfill} \NC a = 1 \NR
+%D \NC \text to 6cm{One Two\hfill} \NC b = 2 \NR
+%D \NC \text to 6cm{One Two Three\hfill} \NC c = 3 \NR
+%D \stopalign
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+% %mathscriptboxmode \plusthree % lists and boxes with \boundary=1 (also for testing and demo)
+% %mathscriptboxmode \plusone % collapsed and then removed, now control option
+% %mathscriptcharmode \plusone % idem
+%
+% %mathrulethicknessmode\plusone % adaptive
+% We keep this as reference:
+%
% \def\math_text_choice_font#1#2#%
% {\normalizebodyfontsize\m_math_text_choice_face{\mathstyleface\normalmathstyle}%
% \hbox#2\bgroup
+% \bgroup
+% \aftergroup\hss
+% \aftergroup\egroup
+% \hss
% \font_basics_switchtobodyfont\m_math_text_choice_face
% #1%
% \let\next}
-
+%
% \def\math_text_choice_word#1#2#%
% {\normalizebodyfontsize\m_math_text_choice_face{\mathstyleface\normalmathstyle}%
% \hbox#2\bgroup
+% \bgroup
+% \aftergroup\hss
+% \aftergroup\egroup
+% \hss
% \font_basics_switchtobodyfont\m_math_text_choice_face
% #1%
% \nospacing % \normalnospaces\plusone
% \let\next}
+%
+% % \ruledhbox{$\mathtext{abc ffi}$}
+% % \ruledhbox{$\mathword{abc ffi}$}
+%
+% \permanent\protected\def\mathtext {\mathortext{\math_text_choice_font\relax}\hbox}
+% \permanent\protected\def\mathword {\mathortext{\math_text_choice_word\relax}\hbox}
+%
+% \permanent\protected\def\mathtexttf{\mathortext{\math_text_choice_font\tf}\hbox}
+% \permanent\protected\def\mathtextit{\mathortext{\math_text_choice_font\it}\hbox}
+% \permanent\protected\def\mathtextsl{\mathortext{\math_text_choice_font\sl}\hbox}
+% \permanent\protected\def\mathtextbf{\mathortext{\math_text_choice_font\bf}\hbox}
+% \permanent\protected\def\mathtextbi{\mathortext{\math_text_choice_font\bi}\hbox}
+% \permanent\protected\def\mathtextbs{\mathortext{\math_text_choice_font\bs}\hbox}
+%
+% \permanent\protected\def\mathwordtf{\mathortext{\math_text_choice_word\tf}\hbox}
+% \permanent\protected\def\mathwordit{\mathortext{\math_text_choice_word\it}\hbox}
+% \permanent\protected\def\mathwordsl{\mathortext{\math_text_choice_word\sl}\hbox}
+% \permanent\protected\def\mathwordbf{\mathortext{\math_text_choice_word\bf}\hbox}
+% \permanent\protected\def\mathwordbi{\mathortext{\math_text_choice_word\bi}\hbox}
+% \permanent\protected\def\mathwordbs{\mathortext{\math_text_choice_word\bs}\hbox}
-%D We accept a low level box specification so that one can make helpers:
-%D
-%D \startbuffer
-%D \startformula
-%D \startalign[m=2,align={middle}]
-%D \NC \text to 6cm{One\hfill} \NC a = 1 \NR
-%D \NC \text to 6cm{One Two\hfill} \NC b = 2 \NR
-%D \NC \text to 6cm{One Two Three\hfill} \NC c = 3 \NR
-%D \stopalign
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
+%D The split option is sort or a gimmick but one never knows how it might come in
+%D handy. It was also an interesting test for how easy we can get this done (an extra
+%D option as well as cheating in the line break function). And it was a good excuse
+%D to add options to glue (which was pending). Actually, the main reason for this
+%D trickery was that unrolling lists into the main math list could have strange side
+%D effects, due to glue being ignored in math in the libereak routine, so better get
+%D it working than explaining why if could have side effects.
-\def\math_text_choice_font#1#2#%
- {\normalizebodyfontsize\m_math_text_choice_face{\mathstyleface\normalmathstyle}%
- \hbox#2\bgroup
- \bgroup
- \aftergroup\hss
- \aftergroup\egroup
- \hss
- \font_basics_switchtobodyfont\m_math_text_choice_face
- #1%
- \let\next}
+%D The fact that one can pass e.g \type {to 4cm} before the content is an old and
+%D probably never used feature that we keep in order to remain compatible.
-\def\math_text_choice_word#1#2#%
- {\normalizebodyfontsize\m_math_text_choice_face{\mathstyleface\normalmathstyle}%
- \hbox#2\bgroup
- \bgroup
- \aftergroup\hss
- \aftergroup\egroup
- \hss
+\installcorenamespace{mathtext}
+
+\installcommandhandler \??mathtext {mathtext} \??mathtext
+
+\setupmathtext
+ [\s!leftclass=\mathtextparameter\s!class,
+ \s!rightclass=\mathtextparameter\s!class,
+ \s!class=\mathordinarycode]
+
+\appendtoks
+ \frozen\protected\edefcsname\currentmathtext\endcsname{\math_text_handle{\currentmathtext}}
+\to \everydefinemathtext
+
+\newtoks\everymathtext
+
+\tolerant\protected\def\math_text_handle_indeed#1#*[#2]#:#3#%
+ {\begingroup
+ \edef\currentmathtext{#1}%
+ \setupcurrentmathtext[#2]%
+ \normalizebodyfontsize\m_math_text_choice_face{\mathstyleface\normalmathstyle}%
+ \ifcstok{\mathtextparameter\c!alternative}\v!split
+ \mathatom
+ unroll
+ class \mathtextparameter\s!class
+ leftclass \mathtextparameter\s!leftclass
+ rightclass \mathtextparameter\s!rightclass
+ \bgroup
+ \hbox#3\bgroup
+ \aftergroup\egroup
+ \aftergroup\endgroup
+ \else
+ \hbox#3\bgroup
+ \atendofgroup\hss
+ \aftergroup\endgroup
+ \ifcstok{\mathtextparameter\c!alternative}\v!word
+ \nospacing % \normalnospaces\plusone
+ \fi
+ \hss
+ \fi
\font_basics_switchtobodyfont\m_math_text_choice_face
- #1%
- \nospacing % \normalnospaces\plusone
+ \usemathtextstyleandcolor\c!style\c!color
+ \the\everymathtext\relax
\let\next}
-% \ruledhbox{$\mathtext{abc ffi}$}
-% \ruledhbox{$\mathword{abc ffi}$}
+\protected\def\math_text_handle#1%
+ {\mathortext{\math_text_handle_indeed{#1}}\hbox}
+
+\definemathtext[mathtext]
+\definemathtext[mathtexttf][mathtext][\c!style=\tf]
+\definemathtext[mathtextit][mathtext][\c!style=\it]
+\definemathtext[mathtextsl][mathtext][\c!style=\sl]
+\definemathtext[mathtextbf][mathtext][\c!style=\bf]
+\definemathtext[mathtextbi][mathtext][\c!style=\bi]
+\definemathtext[mathtextbs][mathtext][\c!style=\bs]
+
+\definemathtext[mathword] [mathtext][\c!alternative=\v!word]
+\definemathtext[mathwordtf][mathword][\c!style=\tf]
+\definemathtext[mathwordit][mathword][\c!style=\it]
+\definemathtext[mathwordsl][mathword][\c!style=\sl]
+\definemathtext[mathwordbf][mathword][\c!style=\bf]
+\definemathtext[mathwordbi][mathword][\c!style=\bi]
+\definemathtext[mathwordbs][mathword][\c!style=\bs]
+
+\definemathtext[mathsplit] [mathtext] [\c!alternative=\v!split]
+\definemathtext[mathsplittf][mathsplit][\c!style=\tf]
+\definemathtext[mathsplitit][mathsplit][\c!style=\it]
+\definemathtext[mathsplitsl][mathsplit][\c!style=\sl]
+\definemathtext[mathsplitbf][mathsplit][\c!style=\bf]
+\definemathtext[mathsplitbi][mathsplit][\c!style=\bi]
+\definemathtext[mathsplitbs][mathsplit][\c!style=\bs]
-% I need to decide:
+% \startbuffer
+% $
+% { x\! \neq x!} \quad {\ss x\! \neq x!} \qquad
+% {\it x\! \neq x!} \quad {\ss \it x\! \neq x!} \qquad
+% {\fi x\! \neq x!} \quad {\ss \fi x\! \neq x!} \qquad
+% {\bi x\! \neq x!} \quad {\ss \bi x\! \neq x!}
+% $
+% \stopbuffer
%
-%mathscriptboxmode \zerocount % no kerning
-%mathscriptboxmode \plusone % lists
-\mathscriptboxmode \plustwo % lists and boxes
-\mathscriptcharmode \plusone % lists and boxes
-%mathscriptboxmode \plusthree % lists and boxes with \boundary=1 (also for testing and demo)
-\mathrulethicknessmode\plusone % adaptive
+% \startTEXpage[offset=1dk]
+% \getbuffer \par \automathtext \getbuffer
+% \stopTEXpage
+
+\newconditional\c_mathtextauto % we need aproper key: \settrue\c_mathtextauto
-\permanent\protected\def\mathtext {\mathortext{\math_text_choice_font\relax}\hbox}
-\permanent\protected\def\mathword {\mathortext{\math_text_choice_word\relax}\hbox}
+\permanent\protected\def\automathtext{\settrue\c_mathtextauto}
-\permanent\protected\def\mathtexttf{\mathortext{\math_text_choice_font\tf}\hbox}
-\permanent\protected\def\mathtextit{\mathortext{\math_text_choice_font\it}\hbox}
-\permanent\protected\def\mathtextsl{\mathortext{\math_text_choice_font\sl}\hbox}
-\permanent\protected\def\mathtextbf{\mathortext{\math_text_choice_font\bf}\hbox}
-\permanent\protected\def\mathtextbi{\mathortext{\math_text_choice_font\bi}\hbox}
-\permanent\protected\def\mathtextbs{\mathortext{\math_text_choice_font\bs}\hbox}
+\let\currentmathalphabet \s!rm
+\let\currentmathfontstyle\s!tf
-\permanent\protected\def\mathwordtf{\mathortext{\math_text_choice_word\tf}\hbox}
-\permanent\protected\def\mathwordit{\mathortext{\math_text_choice_word\it}\hbox}
-\permanent\protected\def\mathwordsl{\mathortext{\math_text_choice_word\sl}\hbox}
-\permanent\protected\def\mathwordbf{\mathortext{\math_text_choice_word\bf}\hbox}
-\permanent\protected\def\mathwordbi{\mathortext{\math_text_choice_word\bi}\hbox}
-\permanent\protected\def\mathwordbs{\mathortext{\math_text_choice_word\bs}\hbox}
+\permanent\protected\def\mathtextauto#1#2%
+ {\ifconditional\c_mathtextauto
+ \mathortext
+ {\mathpunct
+ {\begincsname\currentmathalphabet\endcsname
+ \begincsname mathtext\currentmathfontstyle\endcsname
+ {#1}}}%
+ {#1}%
+ \else
+ #2%
+ \fi}
+
+%D Actually in spac-hor.mkxl we defined them using \suggestedalias which redefines
+%D these so basically we now make that sort of obsolete.
+%D
+%D \starttyping
+%D $x\, x$\quad\automathtext$x\, x$
+%D \stoptyping
+
+\pushoverloadmode
+ \permanent\protected\def\.{\mathtextauto{.}{.}}
+ \permanent\protected\def\,{\mathtextauto{,}{\thinspace }}
+ \permanent\protected\def\:{\mathtextauto{:}{\medspace }}
+ \permanent\protected\def\;{\mathtextauto{;}{\thickspace}}
+ \permanent\protected\def\!{\mathtextauto{!}{\negthinspace}}
+ \permanent\protected\def\?{\mathtextauto{?}{?}}
+\popoverloadmode
+
+% \appendtoks
+% \reinstatecatcodecommand\barasciicode
+% \obeydiscretionaries
+% \to \everymathtext
%D Safeguard against redefinitions:
@@ -2522,53 +3784,7 @@
\enforced\let\text\mathtext
\to \everymathematics
-%D The next code is derived from plain \TEX. The names will change!
-
-\newcount\interdisplaylinepenalty \interdisplaylinepenalty\plushundred
-
-% Actually, not using an if saves one macro so there is no penalty
-% for splitting up this macro.
-%
-% \newif\ifdt@p
-%
-% \def\displ@y
-% {\global\dt@ptrue
-% \math_openup\displayopenupvalue % was \openup\jot
-% \everycr
-% {\noalign
-% {\ifdt@p
-% \global\dt@pfalse
-% \ifdim\prevdepth>-\thousandpoint
-% \vskip-\lineskiplimit
-% \vskip\normallineskiplimit
-% \fi
-% \else
-% \penalty\interdisplaylinepenalty
-% \fi}}}
-
-\newtoks\mathdisplayaligntweaks
-
-% this can become an option:
-
-\let\math_display_align_hack_indeed\relax
-
-\protected\def\math_display_align_hack % I don't like the global, maybe we should push and pop
- {\glet\math_display_align_hack_indeed\math_display_align_hack_remove_skip
- \math_openup\displayopenupvalue % was \math_openup\jot
- \everycr{\noalign{\math_display_align_hack_indeed}}}
-
-\def\math_display_align_hack_remove_skip
- {\ifdim\prevdepth>-\thousandpoint
- \vskip\dimexpr-\lineskiplimit+\normallineskiplimit\relax
- \fi
- \glet\math_display_align_hack_indeed\math_display_align_hack_insert_penalty}
-
-\def\math_display_align_hack_insert_penalty
- {\penalty\interdisplaylinepenalty}
-
-\appendtoks
- \math_display_align_hack
-\to \mathdisplayaligntweaks
+\newinteger\interdisplaylinepenalty \interdisplaylinepenalty\plushundred
%D Text in math:
@@ -2614,13 +3830,13 @@
\permanent\protected\def\smallmathsymbol#1%
{\mathematics{\mathbin{\normalexpanded{\raise.15\exheight\hbox{\normalstartimath
- \triggermathstyle{\the\numexpr\normalmathstyle+2\relax}#1%
+ \triggeredmathstyle{\the\numexpr\normalmathstyle+2\relax}#1%
\normalstopimath}}}}}
% this should be a primitive:
-\permanent\def\mathextensiblecode#1#2{\clf_extensiblecode\numexpr#1\relax\numexpr#2\relax}
-\permanent\def\mathhorizontalcode#1#2{\clf_horizontalcode\numexpr#1\relax\numexpr#2\relax}
+\permanent\def\mathextensiblecode#1#2{\clf_extensiblecode\numexpr#1\relax\numexpr#2\relax} % todo: use public lua but needs testing
+\permanent\def\mathhorizontalcode#1#2{\clf_horizontalcode\numexpr#1\relax\numexpr#2\relax} % todo: use public lua but needs testing
% experimental:
@@ -2762,52 +3978,30 @@
\permanent\protected\def\mathminus {\ifmmode –\orelse\iffontchar\font`−−\else –\fi}
\permanent\protected\def\mathplusminus{±}
-%D The \type {\displaywidth} is only known inside a display formula, so we need to catch
-%D it when still zero.
-
-\permanent\def\checkeddisplaywidth % hsize if zero
- {\dimexpr
- \ifzeropt\displaywidth
- \hsize
- \else
- \displaywidth
- \fi
- \relax}
-
-\permanent\def\maximizeddisplaywidth % larger than zero but within hsize
- {\dimexpr
- \ifzeropt\displaywidth
- \hsize
- \orelse\ifdim\displaywidth>\hsize
- \hsize
- \else
- \displaywidth
- \fi
- \relax}
-
-%D Experiment: (todo: same switch as italic, using \type {\everyswitchmathematics}).
-
-\newcount\c_math_domain_attribute
-
-\def\math_domain_initialize
- {\ifnum\c_math_domain_attribute=\attributeunsetvalue \else
- \clf_initializemathdomain % one time
- \glet\math_domain_initialize\relax
- \fi}
-
-\appendtoks
- \edef\p_domain{\mathematicsparameter\c!domain}%
- \ifempty\p_domain
- \c_math_domain_attribute\attributeunsetvalue
- \else
- \c_math_domain_attribute\clf_getmathdomain\p_domain\relax
- \math_domain_initialize
- \fi
-\to \everyswitchmathematics % only in mathematics
-
-\appendtoks
- \c_attr_mathdomain\c_math_domain_attribute
-\to \everymathematics
+%D Experiment, replaced by dictionaries but for now we keep the code as the domain key
+%D might come back.
+%
+% \newinteger\c_math_domain_attribute
+%
+% \def\math_domain_initialize
+% {\ifnum\c_math_domain_attribute=\attributeunsetvalue \else
+% \clf_initializemathdomain % one time
+% \glet\math_domain_initialize\relax
+% \fi}
+%
+% \appendtoks
+% \edef\p_domain{\mathematicsparameter\c!domain}%
+% \ifempty\p_domain
+% \c_math_domain_attribute\attributeunsetvalue
+% \else
+% \c_math_domain_attribute\clf_getmathdomain\p_domain\relax
+% \math_domain_initialize
+% \fi
+% \to \everyswitchmathematics % only in mathematics
+%
+% \appendtoks
+% \c_attr_mathdomain\c_math_domain_attribute
+% \to \everymathematics
\setupmathematics
[\s!italics=3] % for the moment only this one makes sense .. still experimental
@@ -2816,7 +4010,7 @@
\installcorenamespace{mathrules}
-\permanent\protected\def\enablemathrules{\letgvalue{\??mathrules\fontclass}\plusone}
+\permanent\protected\def\enablemathrules{\gletcsname\??mathrules\fontclass\endcsname\plusone}
\appendtoks
\mathrulesmode\ifcsname\??mathrules\fontclass\endcsname
@@ -2884,7 +4078,7 @@
\permanent\protected\def\math_scripts_unstack
{\clf_enablescriptunstacking
- \c_attr_mathunstack\plusone}
+ \c_attr_mathunstack\plustwo} % \plusone for the other way around
\ifdefined\stackscripts \else \aliased\let\stackscripts \relax \fi
\ifdefined\unstackscripts \else \aliased\let\unstackscripts\relax \fi
@@ -3002,6 +4196,299 @@
\normalsupmarkmode\plusone % 2 also disable ^[^+] in text mode
+\permanent\protected\tolerant\def\supscr[#1]#:#2%
+ {\ifchkdim#1\or\Umathopenupheight#1\relax\fi
+ \Usuperscript{#2}}
+
+\permanent\protected\tolerant\def\subscr[#1]#:#2%
+ {\ifchkdim#1\or\Umathopenupdepth #1\relax\fi
+ \Usubscript{#2}}
+
+\permanent\protected\tolerant\def\supsubscr[#1]#:#2#3%
+ {\ifchkdim#1\or\Umathopenupheight#1\relax\Umathopenupdepth#1\relax\fi
+ \Usuperscript{#2}\Usubscript{#3}}
+
+\permanent\protected\tolerant\def\subsupscr[#1]#:#*#2#3%
+ {\ifchkdim#1\or\Umathopenupheight#1\relax\Umathopenupdepth#1\relax\fi
+ \Usubscript{#2}\Usuperscript{#3}}
+
+\permanent\protected\tolerant\def\supprescr[#1]#:#2%
+ {\ifchkdim#1\or\Umathopenupheight#1\relax\fi
+ \Usuperprescript{#2}}
+
+\permanent\protected\tolerant\def\subprescr[#1]#:#2%
+ {\ifchkdim#1\or\Umathopenupdepth #1\relax\fi
+ \Usubprescript{#2}}
+
+\permanent\protected\tolerant\def\supsubprescr[#1]#:#2#3%
+ {\ifchkdim#1\or\Umathopenupheight#1\relax\Umathopenupdepth#1\relax\fi
+ \Usuperprescript{#2}\Usubprescript{#3}}
+
+\permanent\protected\tolerant\def\subsupprescr[#1]#:#*#2#3%
+ {\ifchkdim#1\or\Umathopenupheight#1\relax\Umathopenupdepth#1\relax\fi
+ \Usubprescript{#2}\Usuperprescript{#3}}
+
+%D For now (needed in asciimath):
+
+\def\math_relax_limits{\enforced\let\limits\relax}
+
+%D Something new:
+%D
+%D \starttyping
+%D \definemathpreset[whatever][factor=.5,style=all,list={fraction*gap}]
+%D % \presetmathematics[whatever] % less more zero
+%D \stoptyping
+%D
+%D as well as:
+%D
+%D \starttyping
+%D \setupmathspacing[narrow]
+%D \stoptyping
+
+\installcorenamespace{mathspacing}
+
+% \protected\def\math_spacing_set#1#2% maybe some day \allmathstyles
+% {\relax
+% #1\displaystyle #2%
+% #1\crampeddisplaystyle#2%
+% #1\textstyle #2%
+% #1\scriptstyle #2%
+% #1\crampedscriptstyle #2%
+% #1\scriptstyle #2%
+% #1\crampedscriptstyle #2%
+% \relax}
+%
+% \permanent\tolerant\protected\def\definemathspacing[#1]#*[#2]#*[#3]%
+% {\ifcstok{#2}\v!horizontal
+% \edefcsname\??mathspacing#1\endcsname
+% {\math_spacing_set\Umathxscale{\ifchknum#3\or#3\else\plusthousand\fi\relax}}%
+% \orelse\ifcstok{#2}\v!vertical
+% \edefcsname\??mathspacing#1\endcsname
+% {\math_spacing_set\Umathyscale{\ifchknum#3\or#3\else\plusthousand\fi\relax}}%
+% \else
+% \edefcsname\??mathspacing#1\endcsname
+% {\math_spacing_set\Umathxscale{\ifchknum#2\or\number#2\else\plusthousand\fi\relax}%
+% \math_spacing_set\Umathyscale{\ifchknum#3\or\number#3\orelse\ifchknum#2\or\number#2\else\plusthousand\fi\relax}}%
+% \fi}
+
+\permanent\tolerant\protected\def\definemathspacing[#1]#*[#2]#*[#3]%
+ {\ifcstok{#2}\v!horizontal
+ \edefcsname\??mathspacing#1\endcsname
+ {\Umathxscale\allmathstyles\ifchknum#3\or#3\else\plusthousand\fi\relax}%
+ \orelse\ifcstok{#2}\v!vertical
+ \edefcsname\??mathspacing#1\endcsname
+ {\Umathyscale\allmathstyles\ifchknum#3\or#3\else\plusthousand\fi\relax}%
+ \else
+ \edefcsname\??mathspacing#1\endcsname
+ {\Umathxscale\allmathstyles\ifchknum#2\or\number#2\else\plusthousand\fi\relax
+ \Umathyscale\allmathstyles\ifchknum#3\or\number#3\orelse\ifchknum#2\or\number#2\else\plusthousand\fi\relax}%
+ \fi}
+
+\definemathspacing[\v!normal] [1000] [1000]
+\definemathspacing[\v!tight] [\c!vertical] [900]
+\definemathspacing[\v!loose] [\c!vertical] [1100]
+\definemathspacing[\v!narrow][\c!horizontal] [900]
+\definemathspacing[\v!wide] [\c!horizontal] [1100]
+\definemathspacing[\v!less] [900] [900]
+\definemathspacing[\v!more] [1100] [1100]
+
+\permanent\protected\def\setupmathspacing[#1]%
+ {\begincsname\??mathspacing#1\endcsname}
+
+% \defcsname\??mathspacing +\endcsname
+% {\expandedloop\zerocount\plusseven\plusone
+% {\Umathxscale
+% \the\currentloopiterator
+% \numexpr\Umathxscale\the\currentloopiterator+\plushundred\relax
+% \Umathyscale
+% \the\currentloopiterator
+% \numexpr\Umathxscale\the\currentloopiterator+\plushundred\relax}}
+%
+% \defcsname\??mathspacing -\endcsname
+% {\expandedloop\zerocount\plusseven\plusone
+% {\Umathxscale
+% \the\currentloopiterator
+% \numexpr\Umathxscale\the\currentloopiterator-\plushundred\relax
+% \Umathyscale
+% \the\currentloopiterator
+% \numexpr\Umathxscale\the\currentloopiterator-\plushundred\relax}}
+
+% can become a lua call that globally defined it, then we can have
+% partials
+
+%D We're done with the double dollars:
+%D
+%D \startbuffer
+%D before $ i = 1 $ after\par
+%D before $ i = 2 \Ustopmath{} after\par
+%D before \Ustartmath i = 3 $ after\par
+%D before \Ustartmath i = 4 \Ustopmath{} after\par
+%D before $$ d = 1 $$ after\par
+%D before $$ d = 2 \Ustopdisplaymath{} after\par
+%D before \Ustartdisplaymath d = 3 $$ after\par
+%D before \Ustartdisplaymath d = 4 \Ustopdisplaymath{} after\par
+%D \stopbuffer
+%D
+%D \startpacked {\mathdisplaymode\zerocount \getbuffer} \stoppacked
+%D \startpacked {\mathdisplaymode\plusone \getbuffer} \stoppacked
+%D
+%D So we do:
+
+\mathdisplaymode\plusone
+
+%D Just to be sure:
+
+\immutable\integerdef\c_math_glyph_options_default\numexpr
+ \noexpansionglyphoptioncode
+ +\noprotrusionglyphoptioncode
+\relax
+
+\immutable\integerdef\c_math_glyph_options_hz\numexpr
+ \noprotrusionglyphoptioncode
+\relax
+
+\appendtoks
+ \ifcstok{\mathematicsparameter\v!hz}\v!yes
+ \glyphoptions\c_math_glyph_options_hz
+ \else
+ \glyphoptions\c_math_glyph_options_default
+ \fi
+\to \everymathematics
+
+%D Bonus for testing:
+
+% styles : regular sansserif monospaced fraktur script blackboard
+% alternatives : normal bold italic bolditalic
+% sets : ucletters lcletters digits ucgreek lcgreek symbols
+
+% \def\CheckMathHat#1{\ruledhbox{\im{\widehat{\Uchar#1}_1^2__3^^4}}}
+%
+% \dontleavehmode \traversemath{regular}{bold}{digits}{\CheckMathHat{#1}\hskip1em}
+
+\aliased\let\mathtraversecommand\relax
+
+\permanent\protected\def\traversemath#1#2#3#4%
+ {\pushmacro\mathtraversecommand
+ \enforced\def\mathtraversecommand##1{#4}%
+ \clf_traversemath{#1}{#2}{#3}\mathtraversecommand
+ \popmacro\mathtraversecommand}
+
+\permanent\protected\def\traverseblock#1#2%
+ {\pushmacro\mathtraversecommand
+ \enforced\def\mathtraversecommand##1{#2}%
+ \clf_traverseblock{#1}\mathtraversecommand
+ \popmacro\mathtraversecommand}
+
+%D Just some features:
+%D
+%D \starttyping
+%D $ x + \mathatom class \mathordcode {xxx} \Umathphantom + x $\par
+%D $ x + \mathatom class \mathordcode {xxx} \Umathvoid + x $\par
+%D $ x + \mathatom phantom class \mathordcode {xxx} + x $\par
+%D $ x + \mathatom void class \mathordcode {xxx} + x $\par
+%D
+%D \def\rab{\Umathchar"1"00"007C }
+%D
+%D $
+%D \color[green]{\rab\Umathadapttoright^{\black 1}_{\black 2}^^3__4}
+%D \color[blue] {\mathinner{\vrule height 30mm depth 30mm width 5mm}}
+%D \color[red] {\rab\Umathadapttoleft ^5_6^^{\black 7}__{\black 8}}
+%D $
+%D
+%D $
+%D \rab\Umathadapttoright^1_2^^3__4
+%D \mathinner{\vrule height 30mm depth 30mm width 5mm}
+%D \rab\Umathadapttoleft^5_6^^7__8
+%D $
+%D \stoptyping
+
+%D Just in case someone uses it:
+
+\appendtoks
+ \scriptspace.05\Umathquad\textstyle % for Mikael
+\to \everymathematics
+
+%D New:
+
+% \startformula
+% \mathatom class 0 all \mathbincode {a b c d} \breakhere
+% \mathatom class 0 all \mathfractioncode {a b c d} \breakhere
+% \base {FE03} \breakhere
+% \base[16]{FE03} \breakhere
+% \base[8] {7204}
+% \stopformula
+
+\permanent\tolerant\def\mathdigits#1%
+ {\ifmmode
+ \mathatom class \mathdigitcode all \mathdigitcode {#1}%
+ \else
+ #1%
+ \fi}
+
+\permanent\tolerant\protected\def\base[#1]#*#:#2%
+ {\ifmmode
+ \mathdigits{\tf#2}\ifparameter#1\or\subscript{\mathdigits{\tf#1}}\fi
+ \else
+ #2\ifparameter#1\or\low{#1}\fi
+ \fi}
+
+%D New:
+
+\permanent\tolerant\protected\def\definemathgroupset[#1]#*[#2]%
+ {\clf_registergroupset{#1}{#2}}
+
+\permanent\tolerant\protected\def\setmathgroupset[#1]%
+ {\mathdictgroup\clf_groupsetgroup{#1}\relax}
+
+%D Only for testing (limited line span):
+%D
+%D \starttyping
+%D test \im {z + \mathaxisbelow x + 2 - a = 1} test \par
+%D test \im {z + \mathaxisontop x + 2 - a = 1} test
+%D \stoptyping
+
+%D \starttyping
+%D $ x^2 + x_2 + x_2^2\mathaxisbelow\mathscriptbelow$\par
+%D $ x^g + x_g + x_g^g\mathaxisbelow\mathscriptbelow$
+%D \stoptyping
+
+\definesystemattribute[mathaxis][public]
+
+\def\math_axis_inject_indeed#1%
+ {\srule
+ \s!height \dimexpr\scratchdimentwo+\scratchdimenone\relax
+ \s!depth -\dimexpr\scratchdimentwo-\scratchdimenone\relax
+ \s!attr \mathaxisattribute#1%
+ \relax}
+
+\def\math_axis_inject#1#2%
+ {\mathatom \s!class \mathghostcode \s!unpack {
+ \showmakeup[strut]% todo: shortcut
+ \ifcase#1%
+ % nothing
+ \or
+ \scratchdimenone.5\Umathfractionrule\mathstyle
+ \scratchdimentwo\Umathaxis\mathstyle
+ \math_axis_inject_indeed#2%
+ \or
+ \scratchdimenone.25\Umathfractionrule\mathstyle
+ \scratchdimentwo\Umathsupshiftup\mathstyle
+ \math_axis_inject_indeed#2%
+ \scratchdimentwo-\Umathsubshiftdown\mathstyle
+ \math_axis_inject_indeed#2%
+ \scratchdimentwo-\Umathsubsupshiftdown\mathstyle
+ \math_axis_inject_indeed#2%
+ % \scratchdimenone.125\Umathfractionrule\mathstyle
+ \divideby\scratchdimenone\plustwo
+ \scratchdimentwo\Umathprimeshiftup\mathstyle
+ \math_axis_inject_indeed#2%
+ \fi}}
+
+\permanent\protected\def\mathaxisbelow {\math_axis_inject\plusone\plusone}
+\permanent\protected\def\mathaxisontop {\math_axis_inject\plusone\plustwo}
+\permanent\protected\def\mathscriptbelow{\math_axis_inject\plustwo\plusone}
+\permanent\protected\def\mathscriptontop{\math_axis_inject\plustwo\plustwo}
+
\protect \endinput
% % not used (yet)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-int.mkxl b/Master/texmf-dist/tex/context/base/mkxl/math-int.mkxl
index a8dcd3c9525..fd5ea37c953 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-int.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-int.mkxl
@@ -13,29 +13,10 @@
\writestatus{loading}{ConTeXt Math Macros / Integrals}
-% todo: int and sum etc can be stackers
+%D This is replaced by the operator module.
\unprotect
-%D \startbuffer
-%D $\int _a^b f(x) dx $ and also
-%D $\iint _a^b f(x,y) dxdy$,
-%D $\iiint _a^b f(x,y) dxdy$,
-%D \startformula
-%D \int _a^b f(x) dx \quad
-%D \iint _a^b f(x) dx \quad
-%D \iiint _a^b f(x) dx \quad
-%D \stopformula
-%D \stopbuffer
-%D
-%D Default: \getbuffer
-%D
-%D Displaylimits: \setupmathematics[integral=displaylimits] \getbuffer
-%D
-%D Limits: \setupmathematics[integral=limits] \getbuffer
-
-%D Adapted to mkiv by HH from code by AM.
-
\installcorenamespace{mathintegral}
\newconstant\mathintlimitmode
@@ -57,85 +38,22 @@
% none
\fi}
-\letvalue{\??mathintegral nolimits}\zerocount
-\letvalue{\??mathintegral displaylimits}\plusone
-\letvalue{\??mathintegral limits}\plustwo
-\letvalue{\??mathintegral autolimits}\plusthree
-\letvalue{\??mathintegral none}\plusfour
+\letcsname\??mathintegral nolimits\endcsname\zerocount
+\letcsname\??mathintegral displaylimits\endcsname\plusone
+\letcsname\??mathintegral limits\endcsname\plustwo
+\letcsname\??mathintegral autolimits\endcsname\plusthree
+\letcsname\??mathintegral none\endcsname\plusfour
\appendtoks
- \mathintlimitmode\executeifdefined{\??mathintegral\mathematicsparameter\s!integral}\zerocount
+ \mathintlimitmode
+ \ifcsname\??mathintegral\mathematicsparameter\s!integral\endcsname
+ \lastnamedcs
+ \else
+ \zerocount
+ \fi
\to \everyswitchmathematics
\setupmathematics
-% [\v!integral=nolimits]
- [\v!integral=autolimits]
-
-%D The following code is used for fallbacks and might become obsolete once
-%D we have enough \OPENTYPE\ math fonts.
-
-% \def\math_repeated_integal_i
-% {\int}
-
-% \def\math_repeated_integal_ii
-% {\math_repeated_integal_i
-% \math_repeated_integral_kern
-% \math_repeated_integal_i
-% \math_repeat_integral_finish
-% \intlimits}
-
-% \def\math_repeated_integal_iii
-% {\math_repeated_integal_i
-% \math_repeated_integral_kern
-% \math_repeated_integal_ii}
-%
-% \def\math_repeated_integal_iiii
-% {\math_repeated_integal_i
-% \math_repeated_integral_kern
-% \math_repeated_integal_iii}
-%
-% \protected\def\math_repeat_integral#1%
-% {\let\math_repeat_integral_finish\donothing
-% \iffontchar\textfont\zerocount#1\relax
-% \expandafter\math_repeat_integral_real
-% \else
-% \expandafter\math_repeat_integral_fake
-% \fi}
-%
-% \def\math_repeat_integral_fake#1#2%
-% {\let\math_repeat_integral_fake_symbol#2%
-% \futurelet\next\math_repeat_integral_fake_indeed}
-%
-% \def\math_repeat_integral_real#1#2%
-% {#1}
-%
-% \definemathcommand [iint] {\math_repeat_integral{"0222C}\normalint \math_repeated_integal_ii } % double
-% \definemathcommand [iiint] {\math_repeat_integral{"0222D}\normaliint \math_repeated_integal_iii } % tripple
-% \definemathcommand [iiiint] {\math_repeat_integral{"FFFFF}\normaliiint\math_repeated_integal_iiii} % quadruple
-%
-% \def\math_repeated_integral_kern
-% {\mkern-6mu\mathchoice{\mkern-3mu}{}{}{}}
-%
-% \def\math_repeat_integral_fake_indeed
-% {\ifx\next\limits
-% \math_repeated_integral_correction
-% \orelse\ifx\next\displaylimits
-% \math_repeated_integral_correction
-% \orelse\ifx\next\nolimits
-% % nothing
-% \orelse\ifcase\mathintlimitmode
-% % nothing
-% \else
-% \math_repeated_integral_correction
-% \fi
-% \math_repeat_integral_fake_symbol}
-%
-% \def\math_repeated_integral_correction
-% {\mkern-7mu\mathchoice{\mkern-2mu}{}{}{}%
-% \mathop\bgroup\mkern7mu\mathchoice{\mkern2mu}{}{}{}\let\math_repeat_integral_finish\egroup}
-%
-% %D If the \type{\limits} option is used after \type {\iint}, use \type
-% %D {\mathop} and fudge the left hand space a bit to make the subscript
-% %D visually centered.
+ [\c!integral=auto]
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-lop.mkxl b/Master/texmf-dist/tex/context/base/mkxl/math-lop.mkxl
new file mode 100644
index 00000000000..d4dbfa448a0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-lop.mkxl
@@ -0,0 +1,190 @@
+%D \module
+%D [ file=math-lop,
+%D version=2022.02.10,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Large operators,
+%D author={Hans Hagen & Mikael Sundqvist},
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Large Operators}
+
+% $\textstyle \Uoperator \Udelimiter "0 \fam "222B {t} {b} {x}$\blank
+% $\textstyle \Uoperator \Udelimiter "0 \fam "222B {t} {b} {\frac{1}{x}}$\blank
+% $\displaystyle x + \Uoperator \Udelimiter "0 \fam "222B {t} {b} {\frac{1}{x}}$\blank
+% $ x + \Uoperator nolimits \Udelimiter "0 \fam "222B {t} {b} {\frac{1}{x}}$\blank
+% $ x + \Uoperator limits \Udelimiter "0 \fam "222B {t} {b} {\frac{1}{x}}$\blank
+
+\unprotect
+
+\installcorenamespace{mathoperators}
+\installcorenamespace{mathoperatormethod}
+
+\installcommandhandler \??mathoperators {mathoperator} \??mathoperators
+
+\setupmathoperator
+ [\c!left=\zerocount]% so we always have something
+
+\aliased\let\setupmathoperators\setupmathoperator
+
+\appendtoks
+ % todo: only define when there's left or right
+ \protected\instance\edefcsname\currentmathoperator\endcsname{\math_operator{\currentmathoperator}}%
+ % todo: under definition control
+ \protected\instance\edefcsname\e!start\currentmathoperator\endcsname{\math_operator_start{\currentmathoperator}}%
+ \protected\instance\edefcsname\e!stop \currentmathoperator\endcsname{\math_operator_stop}%
+\to \everydefinemathoperator
+
+% more generic:
+
+\defcsname\??mathoperatormethod\v!horizontal\endcsname{nolimits }
+\defcsname\??mathoperatormethod\v!vertical \endcsname{limits }
+
+% The ones we wlready had:
+
+\letcsname\??mathoperatormethod \v!auto\endcsname\empty
+\letcsname\??mathoperatormethod autolimits\endcsname\empty
+\letcsname\??mathoperatormethod nolimits\expandafter\endcsname\csname\??mathoperatormethod\v!horizontal\endcsname
+\letcsname\??mathoperatormethod limits\expandafter\endcsname\csname\??mathoperatormethod\v!vertical \endcsname
+
+%D With the auto option DisplayOperatorMinHeight will kick in unless we explicitly set the size or
+%D use the start|-|stop variant (which will size automatically). The default of this font parameter
+%D are a bit on the small size which doesn't work well with fonts other than Latin Modern that has
+%D a large one. Keep in mind that we have e.g. integrals as operators and not fixed characters.
+
+\installlocalcurrenthandler\??mathoperators {mathoperator}
+
+\protected\def\math_operator_operator#1#2%
+ {\setlocalmathoperatorcurrent{#1}% \edef\currentmathoperator{#1}%
+ \setupcurrentmathoperator[#2]%
+ \Uoperator
+ \usedcolorparameterattributes{\mathoperatorparameter\c!color}%
+ \begincsname\??mathoperatormethod\mathoperatorparameter\c!method\endcsname
+ \ifchkdim\mathoperatorparameter\c!size\or
+ \s!depth \mathoperatorparameter\c!size
+ \s!height\mathoperatorparameter\c!size
+ \s!axis % variants
+ \s!noaxis % extensibles (assumes also axis)
+ \s!exact % make sure we don't overshoot when there are no variants and extensibles
+ \orelse\ifcstok{\mathoperatorparameter\c!size}\v!auto
+ \s!auto
+ \fi
+ \s!class \mathoperatorcode
+ \s!attr \indexofregister \c_attr_mathsize \attributeunsetvalue
+ % todo: find a way to pick up or pass sup/sub to here
+ \Udelimiter \zerocount \fam \mathoperatorparameter\c!left
+ {\edef\m_operator_text{\mathoperatorparameter\c!top}%
+ \ifempty\m_operator_text\else
+ \mathstrut % todo: make option
+ \dousecolorparameter{\mathoperatorparameter\c!topcolor}
+ \m_operator_text
+ \fi}%
+ {\edef\m_operator_text{\mathoperatorparameter\c!bottom}%
+ \ifempty\m_operator_text\else
+ \mathstrut % todo: make option
+ \dousecolorparameter{\mathoperatorparameter\c!bottomcolor}
+ \m_operator_text
+ \fi}}
+
+\tolerant\protected\def\math_operator#1#*[#2]#*#:#=% mandate braces
+ {\math_operator_operator{#1}{#2}#3\Uright.}
+
+\tolerant\protected\def\math_operator_start#1#*[#2]%
+ {\math_operator_operator{#1}{#2}}
+
+\protected\def\math_operator_stop
+ {\Uright.}
+% {\Uright\Udelimiter\zerocount \fam \zerocount }
+
+% \def\math_operator_default_size % is now the auto option
+% {\ifconditional\indisplaymath\ifcase\Umathoperatorsize=\maxdimen\else
+% \Umathoperatorsize\displaystyle
+% \fi\fi}
+
+% TODO: Add 4 (inherited) classes and then define them automatically from char-def
+% instead.
+
+\definemathoperator [integrals]
+\definemathoperator [summations]
+\definemathoperator [products]
+\definemathoperator [operators]
+
+\setupmathoperators [integrals] [\c!size=\v!auto,\c!method=\mathematicsparameter\c!integral] % cf Mikael's wish
+\setupmathoperators [summations] [\c!size=\v!auto]
+\setupmathoperators [products] [\c!size=\v!auto]
+\setupmathoperators [operators] [\c!size=\v!auto]
+
+\setupmathematics[\c!integral=nolimits]
+
+\definemathoperator [integral] [integrals] [\c!left="222B] % these might go unless we decide
+\definemathoperator [iintegral] [integrals] [\c!left="222C] % to have verbose parents but who
+\definemathoperator [iiintegral] [integrals] [\c!left="222D] % will use them
+\definemathoperator [iiiintegral] [integrals] [\c!left="2A0C]
+
+\definemathoperator [int] [integrals] [\c!left="222B] % INTEGRAL
+\definemathoperator [iint] [integrals] [\c!left="222C] % DOUBLE INTEGRAL
+\definemathoperator [iiint] [integrals] [\c!left="222D] % TRIPLE INTEGRAL
+\definemathoperator [iiiint] [integrals] [\c!left="2A0C] % QUADRUPLE INTEGRAL OPERATOR
+\definemathoperator [oint] [integrals] [\c!left="222E] % CONTOUR INTEGRAL
+\definemathoperator [oiint] [integrals] [\c!left="222F] % SURFACE INTEGRAL
+\definemathoperator [oiiint] [integrals] [\c!left="2230] % VOLUME INTEGRAL
+\definemathoperator [intc] [integrals] [\c!left="2231] % CLOCKWISE INTEGRAL
+\definemathoperator [ointc] [integrals] [\c!left="2232] % CLOCKWISE CONTOUR INTEGRAL
+\definemathoperator [aointc] [integrals] [\c!left="2233] % ANTI CLOCKWISE CONTOUR INTEGRAL
+
+\definemathoperator [sumint] [integrals] [\c!left="2A0B] % Integral with sum
+\definemathoperator [barint] [integrals] [\c!left="2A0D] % Integral with bar
+\definemathoperator [doublebarint] [integrals] [\c!left="2A0E] % Integral with double bar
+\definemathoperator [slashint] [integrals] [\c!left="2A0F] % Integral with slash
+\definemathoperator [aodownintc] [integrals] [\c!left="2A11]
+\definemathoperator [rectangularpoleintc] [integrals] [\c!left="2A12]
+\definemathoperator [semicirclepoleintc] [integrals] [\c!left="2A13]
+\definemathoperator [circlepoleoutsideintc] [integrals] [\c!left="2A14]
+\definemathoperator [circlepoleinsideintc] [integrals] [\c!left="2A15]
+\definemathoperator [squareintc] [integrals] [\c!left="2A16]
+\definemathoperator [hookleftarrowint] [integrals] [\c!left="2A17]
+\definemathoperator [timesint] [integrals] [\c!left="2A18]
+\definemathoperator [capint] [integrals] [\c!left="2A19]
+\definemathoperator [cupint] [integrals] [\c!left="2A1A]
+\definemathoperator [upperint] [integrals] [\c!left="2A1B]
+\definemathoperator [lowerint] [integrals] [\c!left="2A1C]
+
+\definemathoperator [sum] [summations] [\c!left="2211] % N-ARY SUMMATION
+\definemathoperator [blackboardsum] [summations] [\c!left="2140] % blackboard summation
+\definemathoperator [modtwosum] [summations] [\c!left="2A0A] % modulo two summation
+
+
+\definemathoperator [prod] [products] [\c!left="220F] % N-ARY PRODUCT
+\definemathoperator [coprod] [products] [\c!left="2210] % N-ARY COPRODUCT
+
+% todo: middles too
+
+\definemathoperator [bigwedge] [operators] [\c!left="22C0] % N-ARY LOGICAL AND
+\definemathoperator [bigvee] [operators] [\c!left="22C1] % N-ARY LOGICAL OR
+\definemathoperator [bigcap] [operators] [\c!left="22C2] % N-ARY LOGICAL INTERSECTION
+\definemathoperator [bigcup] [operators] [\c!left="22C3] % N-ARY UNION
+\definemathoperator [bigodot] [operators] [\c!left="2A00] % N-ARY CIRCLED DOT OPERATOR
+\definemathoperator [bigoplus] [operators] [\c!left="2A01] % N-ARY CIRCLED PLUS OPERATOR
+\definemathoperator [bigotimes] [operators] [\c!left="2A02] % N-ARY CIRCLED TIMES OPERATOR
+\definemathoperator [bigudot] [operators] [\c!left="2A03] % N-ARY UNION OPERATOR WITH DOT
+\definemathoperator [biguplus] [operators] [\c!left="2A04] % N-ARY UNION OPERATOR WITH PLUS
+\definemathoperator [bigsqcap] [operators] [\c!left="2A05] % N-ARY SQUARE INTERSECTION OPERATOR
+\definemathoperator [bigsqcup] [operators] [\c!left="2A06] % N-ARY SQUARE UNION OPERATOR
+\definemathoperator [bigtimes] [operators] [\c!left="2A09] % N-ARY TIMES OPERATOR
+
+\definemathoperator [leftouterjoin] [operators] [\c!left="27D5] % left outer join
+\definemathoperator [rightouterjoin] [operators] [\c!left="27D6] % right outer join
+\definemathoperator [fullouterjoin] [operators] [\c!left="27D7] % full outer join
+\definemathoperator [bigbottom] [operators] [\c!left="27D8] % big bottom
+\definemathoperator [bigtop] [operators] [\c!left="27D9] % big top
+\definemathoperator [bigsolidus] [operators] [\c!left="29F8] % big solidus
+\definemathoperator [bigreversesolidus] [operators] [\c!left="29F9] % big reverse solidus
+\definemathoperator [bigdoublewedge] [operators] [\c!left="2A07] % big double wedge
+\definemathoperator [bigdoublevee] [operators] [\c!left="2A08] % big double vee
+
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-map.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-map.lmt
new file mode 100644
index 00000000000..98cc59c8942
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-map.lmt
@@ -0,0 +1,932 @@
+if not modules then modules = { } end modules ['math-map'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to math-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- todo: make sparse .. if self
+
+--[[ldx--
+<p>Remapping mathematics alphabets.</p>
+--ldx]]--
+
+-- oldstyle: not really mathematics but happened to be part of
+-- the mathematics fonts in cmr
+--
+-- persian: we will also provide mappers for other
+-- scripts
+
+-- todo: alphabets namespace
+-- maybe: script/scriptscript dynamic,
+
+-- superscripped primes get unscripted !
+
+-- to be looked into once the fonts are ready (will become font
+-- goodie):
+--
+-- (U+2202,U+1D715) : upright
+-- (U+2202,U+1D715) : italic
+-- (U+2202,U+1D715) : upright
+--
+-- plus add them to the regular vectors below so that they honor \it etc
+
+local type, next = type, next
+local merged, sortedhash = table.merged, table.sortedhash
+
+local allocate = utilities.storage.allocate
+
+local otffeatures = fonts.constructors.features.otf
+local registerotffeature = otffeatures.register
+
+local setmetatableindex = table.setmetatableindex
+
+local texgetattribute = tex.getattribute
+local texsetattribute = tex.setattribute
+
+local setmacro = tokens.setters.macro
+
+local texgetmode = tex.getmode
+local mathmode_code = tex.modelevels.math
+
+local trace_greek = false trackers.register("math.greek", function(v) trace_greek = v end)
+local report_remapping = logs.reporter("mathematics","remapping")
+
+mathematics = mathematics or { }
+local mathematics = mathematics
+
+local implement = interfaces.implement
+local context = context
+
+-- Unfortunately some alphabets have gaps (thereby troubling all applications that
+-- need to deal with math). Somewhat strange considering all those weird symbols that
+-- were added afterwards. The following trickery (and data) is only to be used for
+-- diagnostics and quick and dirty alphabet tracing (s-mat-10.mkiv) as we deal with
+-- it otherwise.
+
+-- todo: allocate
+
+mathematics.styles = allocate { "regular", "sansserif", "monospaced", "fraktur", "script", "calligraphic", "blackboard" }
+mathematics.alternatives = allocate { "normal", "bold", "italic", "bolditalic" }
+mathematics.sets = allocate { "ucletters", "lcletters", "digits", "ucgreek", "lcgreek", "symbols" }
+
+mathematics.charactersets = allocate {
+ ucletters = {
+ 0x00041, 0x00042, 0x00043, 0x00044, 0x00045,
+ 0x00046, 0x00047, 0x00048, 0x00049, 0x0004A,
+ 0x0004B, 0x0004C, 0x0004D, 0x0004E, 0x0004F,
+ 0x00050, 0x00051, 0x00052, 0x00053, 0x00054,
+ 0x00055, 0x00056, 0x00057, 0x00058, 0x00059,
+ 0x0005A,
+ },
+ lcletters = {
+ 0x00061, 0x00062, 0x00063, 0x00064, 0x00065,
+ 0x00066, 0x00067, 0x00068, 0x00069, 0x0006A,
+ 0x0006B, 0x0006C, 0x0006D, 0x0006E, 0x0006F,
+ 0x00070, 0x00071, 0x00072, 0x00073, 0x00074,
+ 0x00075, 0x00076, 0x00077, 0x00078, 0x00079,
+ 0x0007A,
+ },
+ digits = {
+ 0x00030, 0x00031, 0x00032, 0x00033, 0x00034,
+ 0x00035, 0x00036, 0x00037, 0x00038, 0x00039,
+ },
+ ucgreek = {
+ 0x0391, 0x0392, 0x0393, 0x0394, 0x0395,
+ 0x0396, 0x0397, 0x0398, 0x0399, 0x039A,
+ 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,
+ 0x03A0, 0x03A1, 0x03A3, 0x03A4, 0x03A5,
+ 0x03A6, 0x03A7, 0x03A8, 0x03A9
+ },
+ lcgreek = {
+ 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5,
+ 0x03B6, 0x03B7, 0x03B8, 0x03B9, 0x03BA,
+ 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,
+ 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4,
+ 0x03C5, 0x03C6, 0x03C7, 0x03C8, 0x03C9,
+ 0x03D1, 0x03D5, 0x03D6, 0x03F0, 0x03F1,
+ 0x03F4, 0x03F5
+ },
+}
+
+local gaps = allocate {
+ [0x1D455] = 0x0210E, -- ℎ h
+ [0x1D49D] = 0x0212C, -- ℬ script B
+ [0x1D4A0] = 0x02130, -- ℰ script E
+ [0x1D4A1] = 0x02131, -- ℱ script F
+ [0x1D4A3] = 0x0210B, -- ℋ script H
+ [0x1D4A4] = 0x02110, -- ℐ script I
+ [0x1D4A7] = 0x02112, -- ℒ script L
+ [0x1D4A8] = 0x02133, -- ℳ script M
+ [0x1D4AD] = 0x0211B, -- ℛ script R
+ [0x1D4BA] = 0x0212F, -- ℯ script e
+ [0x1D4BC] = 0x0210A, -- ℊ script g
+ -- [0x1D4C1] = 0x02113, -- exception: liter
+ [0x1D4C4] = 0x02134, -- ℴ script o
+ [0x1D506] = 0x0212D, -- ℭ fraktur C
+ [0x1D50B] = 0x0210C, -- ℌ fraktur H
+ [0x1D50C] = 0x02111, -- ℑ fraktur I
+ [0x1D515] = 0x0211C, -- ℜ fraktur R
+ [0x1D51D] = 0x02128, -- ℨ fraktur Z
+ [0x1D53A] = 0x02102, -- ℂ bb C
+ [0x1D53F] = 0x0210D, -- ℍ bb H
+ [0x1D545] = 0x02115, -- ℕ bb N
+ [0x1D547] = 0x02119, -- ℙ bb P
+ [0x1D548] = 0x0211A, -- ℚ bb Q
+ [0x1D549] = 0x0211D, -- ℝ bb R
+ [0x1D551] = 0x02124, -- ℤ bb Z
+}
+
+mathematics.gaps = gaps
+
+local function fillinmathgaps(tfmdata,key,value)
+ local mathgaps = mathematics.gaps
+ local characters = tfmdata.characters
+ local descriptions = tfmdata.descriptions
+ for gap, original in next, mathgaps do
+ if characters[original] and not characters[gap] then
+ characters [gap] = characters [original]
+ descriptions[gap] = descriptions[original]
+ end
+ end
+end
+
+registerotffeature {
+ name = "mathgaps",
+ description = "plug gaps in math alphabets",
+ comment = "regular document sources should not depend on this",
+ manipulators = {
+ base = fillinmathgaps,
+ node = fillinmathgaps,
+ }
+}
+
+-- we could use one level less and have tf etc be tables directly but the
+-- following approach permits easier remapping of a-a, A-Z and 0-9 to
+-- fallbacks; symbols is currently mostly greek
+
+local function todigit (n) local t = { } for i=0, 9 do t[0x00030+i] = n+i end return t end
+local function toupper (n) local t = { } for i=0,25 do t[0x00041+i] = n+i end return t end
+local function tolower (n) local t = { } for i=0,25 do t[0x00061+i] = n+i end return t end
+local function tovector(t) return t end
+
+-- how about 0x2A (ast) cq. 0x2217
+-- 0x2D (hyphen) cq. 0x2212
+-- 0x3A (colon) cq. 0x2236
+
+local regular_tf = {
+ digits = todigit(0x00030),
+ ucletters = toupper(0x00041),
+ lcletters = tolower(0x00061),
+ ucgreek = {
+ [0x0391]=0x0391, [0x0392]=0x0392, [0x0393]=0x0393, [0x0394]=0x0394, [0x0395]=0x0395,
+ [0x0396]=0x0396, [0x0397]=0x0397, [0x0398]=0x0398, [0x0399]=0x0399, [0x039A]=0x039A,
+ [0x039B]=0x039B, [0x039C]=0x039C, [0x039D]=0x039D, [0x039E]=0x039E, [0x039F]=0x039F,
+ [0x03A0]=0x03A0, [0x03A1]=0x03A1, [0x03A3]=0x03A3, [0x03A4]=0x03A4, [0x03A5]=0x03A5,
+ [0x03A6]=0x03A6, [0x03A7]=0x03A7, [0x03A8]=0x03A8, [0x03A9]=0x03A9,
+ },
+ lcgreek = {
+ [0x03B1]=0x03B1, [0x03B2]=0x03B2, [0x03B3]=0x03B3, [0x03B4]=0x03B4, [0x03B5]=0x03B5,
+ [0x03B6]=0x03B6, [0x03B7]=0x03B7, [0x03B8]=0x03B8, [0x03B9]=0x03B9, [0x03BA]=0x03BA,
+ [0x03BB]=0x03BB, [0x03BC]=0x03BC, [0x03BD]=0x03BD, [0x03BE]=0x03BE, [0x03BF]=0x03BF,
+ [0x03C0]=0x03C0, [0x03C1]=0x03C1, [0x03C2]=0x03C2, [0x03C3]=0x03C3, [0x03C4]=0x03C4,
+ [0x03C5]=0x03C5, [0x03C6]=0x03C6, [0x03C7]=0x03C7, [0x03C8]=0x03C8, [0x03C9]=0x03C9,
+ [0x03D1]=0x03D1, [0x03D5]=0x03D5, [0x03D6]=0x03D6, [0x03F0]=0x03F0, [0x03F1]=0x03F1,
+ [0x03F4]=0x03F4, [0x03F5]=0x03F5,
+ },
+ symbols = {
+ [0x2202]=0x2202, [0x2207]=0x2207,
+ [0x0027]=0x2032, -- prime
+ },
+}
+
+local regular_it = {
+ digits = tovector(regular_tf.digits),
+ ucletters = toupper(0x1D434),
+ lcletters = { -- H
+ [0x00061]=0x1D44E, [0x00062]=0x1D44F, [0x00063]=0x1D450, [0x00064]=0x1D451, [0x00065]=0x1D452,
+ [0x00066]=0x1D453, [0x00067]=0x1D454, [0x00068]=0x0210E, [0x00069]=0x1D456, [0x0006A]=0x1D457,
+ [0x0006B]=0x1D458, [0x0006C]=0x1D459, [0x0006D]=0x1D45A, [0x0006E]=0x1D45B, [0x0006F]=0x1D45C,
+ [0x00070]=0x1D45D, [0x00071]=0x1D45E, [0x00072]=0x1D45F, [0x00073]=0x1D460, [0x00074]=0x1D461,
+ [0x00075]=0x1D462, [0x00076]=0x1D463, [0x00077]=0x1D464, [0x00078]=0x1D465, [0x00079]=0x1D466,
+ [0x0007A]=0x1D467,
+ -- arabic
+ [0x00627] = 0x1EE00, [0x00628] = 0x1EE21, [0x0062A] = 0x1EE15, [0x0062B] = 0x1EE16,
+ [0x0062C] = 0x1EE22, [0x0062D] = 0x1EE07, [0x0062E] = 0x1EE17, [0x0062F] = 0x1EE03,
+ [0x00630] = 0x1EE18, [0x00631] = 0x1EE13, [0x00632] = 0x1EE06, [0x00633] = 0x1EE0E,
+ [0x00634] = 0x1EE14, [0x00635] = 0x1EE11, [0x00636] = 0x1EE19, [0x00637] = 0x1EE08,
+ [0x00638] = 0x1EE1A, [0x00639] = 0x1EE0F, [0x0063A] = 0x1EE1B, [0x00641] = 0x1EE10,
+ [0x00642] = 0x1EE12, [0x00643] = 0x1EE0A, [0x00644] = 0x1EE0B, [0x00645] = 0x1EE0C,
+ [0x00646] = 0x1EE0D, [0x00647] = 0x1EE24, [0x00648] = 0x1EE05, [0x0064A] = 0x1EE09,
+ [0x0066E] = 0x1EE1C, [0x0066F] = 0x1EE1F, [0x006A1] = 0x1EE1E, [0x006BA] = 0x1EE1D,
+ },
+ ucgreek = {
+ [0x0391]=0x1D6E2, [0x0392]=0x1D6E3, [0x0393]=0x1D6E4, [0x0394]=0x1D6E5, [0x0395]=0x1D6E6,
+ [0x0396]=0x1D6E7, [0x0397]=0x1D6E8, [0x0398]=0x1D6E9, [0x0399]=0x1D6EA, [0x039A]=0x1D6EB,
+ [0x039B]=0x1D6EC, [0x039C]=0x1D6ED, [0x039D]=0x1D6EE, [0x039E]=0x1D6EF, [0x039F]=0x1D6F0,
+ [0x03A0]=0x1D6F1, [0x03A1]=0x1D6F2, [0x03A3]=0x1D6F4, [0x03A4]=0x1D6F5, [0x03A5]=0x1D6F6,
+ [0x03A6]=0x1D6F7, [0x03A7]=0x1D6F8, [0x03A8]=0x1D6F9, [0x03A9]=0x1D6FA,
+ },
+ lcgreek = {
+ [0x03B1]=0x1D6FC, [0x03B2]=0x1D6FD, [0x03B3]=0x1D6FE, [0x03B4]=0x1D6FF, [0x03B5]=0x1D700,
+ [0x03B6]=0x1D701, [0x03B7]=0x1D702, [0x03B8]=0x1D703, [0x03B9]=0x1D704, [0x03BA]=0x1D705,
+ [0x03BB]=0x1D706, [0x03BC]=0x1D707, [0x03BD]=0x1D708, [0x03BE]=0x1D709, [0x03BF]=0x1D70A,
+ [0x03C0]=0x1D70B, [0x03C1]=0x1D70C, [0x03C2]=0x1D70D, [0x03C3]=0x1D70E, [0x03C4]=0x1D70F,
+ [0x03C5]=0x1D710, [0x03C6]=0x1D711, [0x03C7]=0x1D712, [0x03C8]=0x1D713, [0x03C9]=0x1D714,
+ [0x03D1]=0x1D717, [0x03D5]=0x1D719, [0x03D6]=0x1D71B, [0x03F0]=0x1D718, [0x03F1]=0x1D71A,
+ [0x03F4]=0x1D6F3, [0x03F5]=0x1D716,
+ },
+ symbols = {
+ [0x2202]=0x1D715, [0x2207]=0x1D6FB,
+ [0x0027]=0x2032, -- prime
+ },
+}
+
+local regular_bf= {
+ digits = todigit(0x1D7CE),
+ ucletters = toupper(0x1D400),
+ lcletters = tolower(0x1D41A),
+ ucgreek = {
+ [0x0391]=0x1D6A8, [0x0392]=0x1D6A9, [0x0393]=0x1D6AA, [0x0394]=0x1D6AB, [0x0395]=0x1D6AC,
+ [0x0396]=0x1D6AD, [0x0397]=0x1D6AE, [0x0398]=0x1D6AF, [0x0399]=0x1D6B0, [0x039A]=0x1D6B1,
+ [0x039B]=0x1D6B2, [0x039C]=0x1D6B3, [0x039D]=0x1D6B4, [0x039E]=0x1D6B5, [0x039F]=0x1D6B6,
+ [0x03A0]=0x1D6B7, [0x03A1]=0x1D6B8, [0x03A3]=0x1D6BA, [0x03A4]=0x1D6BB, [0x03A5]=0x1D6BC,
+ [0x03A6]=0x1D6BD, [0x03A7]=0x1D6BE, [0x03A8]=0x1D6BF, [0x03A9]=0x1D6C0,
+ },
+ lcgreek = {
+ [0x03B1]=0x1D6C2, [0x03B2]=0x1D6C3, [0x03B3]=0x1D6C4, [0x03B4]=0x1D6C5, [0x03B5]=0x1D6C6,
+ [0x03B6]=0x1D6C7, [0x03B7]=0x1D6C8, [0x03B8]=0x1D6C9, [0x03B9]=0x1D6CA, [0x03BA]=0x1D6CB,
+ [0x03BB]=0x1D6CC, [0x03BC]=0x1D6CD, [0x03BD]=0x1D6CE, [0x03BE]=0x1D6CF, [0x03BF]=0x1D6D0,
+ [0x03C0]=0x1D6D1, [0x03C1]=0x1D6D2, [0x03C2]=0x1D6D3, [0x03C3]=0x1D6D4, [0x03C4]=0x1D6D5,
+ [0x03C5]=0x1D6D6, [0x03C6]=0x1D6D7, [0x03C7]=0x1D6D8, [0x03C8]=0x1D6D9, [0x03C9]=0x1D6DA,
+ [0x03D1]=0x1D6DD, [0x03D5]=0x1D6DF, [0x03D6]=0x1D6E1, [0x03F0]=0x1D6DE, [0x03F1]=0x1D6E0,
+ [0x03F4]=0x1D6B9, [0x03F5]=0x1D6DC,
+ },
+ symbols = {
+ [0x2202]=0x1D6DB, [0x2207]=0x1D6C1,
+ [0x0027]=0x2032, -- prime
+ },
+}
+
+local regular_bi = {
+ digits = tovector(regular_bf.digits),
+ ucletters = toupper(0x1D468),
+ lcletters = tolower(0x1D482),
+ ucgreek = {
+ [0x0391]=0x1D71C, [0x0392]=0x1D71D, [0x0393]=0x1D71E, [0x0394]=0x1D71F, [0x0395]=0x1D720,
+ [0x0396]=0x1D721, [0x0397]=0x1D722, [0x0398]=0x1D723, [0x0399]=0x1D724, [0x039A]=0x1D725,
+ [0x039B]=0x1D726, [0x039C]=0x1D727, [0x039D]=0x1D728, [0x039E]=0x1D729, [0x039F]=0x1D72A,
+ [0x03A0]=0x1D72B, [0x03A1]=0x1D72C, [0x03A3]=0x1D72E, [0x03A4]=0x1D72F, [0x03A5]=0x1D730,
+ [0x03A6]=0x1D731, [0x03A7]=0x1D732, [0x03A8]=0x1D733, [0x03A9]=0x1D734,
+ },
+ lcgreek = {
+ [0x03B1]=0x1D736, [0x03B2]=0x1D737, [0x03B3]=0x1D738, [0x03B4]=0x1D739, [0x03B5]=0x1D73A,
+ [0x03B6]=0x1D73B, [0x03B7]=0x1D73C, [0x03B8]=0x1D73D, [0x03B9]=0x1D73E, [0x03BA]=0x1D73F,
+ [0x03BB]=0x1D740, [0x03BC]=0x1D741, [0x03BD]=0x1D742, [0x03BE]=0x1D743, [0x03BF]=0x1D744,
+ [0x03C0]=0x1D745, [0x03C1]=0x1D746, [0x03C2]=0x1D747, [0x03C3]=0x1D748, [0x03C4]=0x1D749,
+ [0x03C5]=0x1D74A, [0x03C6]=0x1D74B, [0x03C7]=0x1D74C, [0x03C8]=0x1D74D, [0x03C9]=0x1D74E,
+ [0x03D1]=0x1D751, [0x03D5]=0x1D753, [0x03D6]=0x1D755, [0x03F0]=0x1D752, [0x03F1]=0x1D754,
+ [0x03F4]=0x1D72D, [0x03F5]=0x1D750,
+ },
+ symbols = {
+ [0x2202]=0x1D74F, [0x2207]=0x1D735,
+ [0x0027]=0x2032, -- prime
+ },
+}
+
+local regular = {
+ tf = regular_tf,
+ it = regular_it,
+ bf = regular_bf,
+ bi = regular_bi,
+}
+
+local sansserif_tf = {
+ digits = todigit(0x1D7E2),
+ ucletters = toupper(0x1D5A0),
+ lcletters = tolower(0x1D5BA),
+ lcgreek = tovector(regular_tf.lcgreek),
+ ucgreek = tovector(regular_tf.ucgreek),
+ symbols = tovector(regular_tf.symbols),
+}
+
+local sansserif_it = {
+ digits = tovector(regular_tf.digits),
+ ucletters = toupper(0x1D608),
+ lcletters = tolower(0x1D622),
+ lcgreek = tovector(regular_tf.lcgreek),
+ ucgreek = tovector(regular_tf.ucgreek),
+ symbols = tovector(regular_tf.symbols),
+}
+
+local sansserif_bf = {
+ digits = todigit(0x1D7EC),
+ ucletters = toupper(0x1D5D4),
+ lcletters = tolower(0x1D5EE),
+ ucgreek = {
+ [0x0391]=0x1D756, [0x0392]=0x1D757, [0x0393]=0x1D758, [0x0394]=0x1D759, [0x0395]=0x1D75A,
+ [0x0396]=0x1D75B, [0x0397]=0x1D75C, [0x0398]=0x1D75D, [0x0399]=0x1D75E, [0x039A]=0x1D75F,
+ [0x039B]=0x1D760, [0x039C]=0x1D761, [0x039D]=0x1D762, [0x039E]=0x1D763, [0x039F]=0x1D764,
+ [0x03A0]=0x1D765, [0x03A1]=0x1D766, [0x03A3]=0x1D768, [0x03A4]=0x1D769, [0x03A5]=0x1D76A,
+ [0x03A6]=0x1D76B, [0x03A7]=0x1D76C, [0x03A8]=0x1D76D, [0x03A9]=0x1D76E,
+ },
+ lcgreek = {
+ [0x03B1]=0x1D770, [0x03B2]=0x1D771, [0x03B3]=0x1D772, [0x03B4]=0x1D773, [0x03B5]=0x1D774,
+ [0x03B6]=0x1D775, [0x03B7]=0x1D776, [0x03B8]=0x1D777, [0x03B9]=0x1D778, [0x03BA]=0x1D779,
+ [0x03BB]=0x1D77A, [0x03BC]=0x1D77B, [0x03BD]=0x1D77C, [0x03BE]=0x1D77D, [0x03BF]=0x1D77E,
+ [0x03C0]=0x1D77F, [0x03C1]=0x1D780, [0x03C2]=0x1D781, [0x03C3]=0x1D782, [0x03C4]=0x1D783,
+ [0x03C5]=0x1D784, [0x03C6]=0x1D785, [0x03C7]=0x1D786, [0x03C8]=0x1D787, [0x03C9]=0x1D788,
+ [0x03D1]=0x1D78B, [0x03D5]=0x1D78D, [0x03D6]=0x1D78F, [0x03F0]=0x1D78C, [0x03F1]=0x1D78E,
+ [0x03F4]=0x1D767, [0x03F5]=0x1D78A,
+ },
+ symbols = {
+ [0x2202]=0x1D789, [0x2207]=0x1D76F,
+ [0x0027]=0x2032, -- prime
+ },
+}
+
+local sansserif_bi = {
+ digits = tovector(sansserif_bf.digits),
+ ucletters = toupper(0x1D63C),
+ lcletters = tolower(0x1D656),
+ ucgreek = {
+ [0x0391]=0x1D790, [0x0392]=0x1D791, [0x0393]=0x1D792, [0x0394]=0x1D793, [0x0395]=0x1D794,
+ [0x0396]=0x1D795, [0x0397]=0x1D796, [0x0398]=0x1D797, [0x0399]=0x1D798, [0x039A]=0x1D799,
+ [0x039B]=0x1D79A, [0x039C]=0x1D79B, [0x039D]=0x1D79C, [0x039E]=0x1D79D, [0x039F]=0x1D79E,
+ [0x03A0]=0x1D79F, [0x03A1]=0x1D7A0, [0x03A3]=0x1D7A2, [0x03A4]=0x1D7A3, [0x03A5]=0x1D7A4,
+ [0x03A6]=0x1D7A5, [0x03A7]=0x1D7A6, [0x03A8]=0x1D7A7, [0x03A9]=0x1D7A8,
+ },
+ lcgreek = {
+ [0x03B1]=0x1D7AA, [0x03B2]=0x1D7AB, [0x03B3]=0x1D7AC, [0x03B4]=0x1D7AD, [0x03B5]=0x1D7AE,
+ [0x03B6]=0x1D7AF, [0x03B7]=0x1D7B0, [0x03B8]=0x1D7B1, [0x03B9]=0x1D7B2, [0x03BA]=0x1D7B3,
+ [0x03BB]=0x1D7B4, [0x03BC]=0x1D7B5, [0x03BD]=0x1D7B6, [0x03BE]=0x1D7B7, [0x03BF]=0x1D7B8,
+ [0x03C0]=0x1D7B9, [0x03C1]=0x1D7BA, [0x03C2]=0x1D7BB, [0x03C3]=0x1D7BC, [0x03C4]=0x1D7BD,
+ [0x03C5]=0x1D7BE, [0x03C6]=0x1D7BF, [0x03C7]=0x1D7C0, [0x03C8]=0x1D7C1, [0x03C9]=0x1D7C2,
+ [0x03D1]=0x1D7C5, [0x03D5]=0x1D7C7, [0x03D6]=0x1D7C9, [0x03F0]=0x1D7C6, [0x03F1]=0x1D7C8,
+ [0x03F4]=0x1D7A1, [0x03F5]=0x1D7C4,
+ },
+ symbols = {
+ [0x2202]=0x1D7C3, [0x2207]=0x1D7A9,
+ [0x0027]=0x2032, -- prime
+ },
+}
+
+local sansserif = {
+ tf = sansserif_tf,
+ it = sansserif_it,
+ bf = sansserif_bf,
+ bi = sansserif_bi,
+}
+
+local monospaced_tf = {
+ digits = todigit(0x1D7F6),
+ ucletters = toupper(0x1D670),
+ lcletters = tolower(0x1D68A),
+ lcgreek = tovector(sansserif_tf.lcgreek),
+ ucgreek = tovector(sansserif_tf.ucgreek),
+ symbols = tovector(sansserif_tf.symbols),
+}
+
+local monospaced_it = tovector(sansserif_it)
+local monospaced_bf = tovector(sansserif_bf)
+local monospaced_bi = tovector(sansserif_bi)
+
+local monospaced = {
+ tf = monospaced_tf,
+ it = monospaced_tf,
+ bf = monospaced_bf,
+ bi = monospaced_bf,
+}
+
+local blackboard_tf = {
+ digits = todigit(0x1D7D8),
+ ucletters = { -- C H N P Q R Z
+ [0x00041]=0x1D538, [0x00042]=0x1D539, [0x00043]=0x02102, [0x00044]=0x1D53B, [0x00045]=0x1D53C,
+ [0x00046]=0x1D53D, [0x00047]=0x1D53E, [0x00048]=0x0210D, [0x00049]=0x1D540, [0x0004A]=0x1D541,
+ [0x0004B]=0x1D542, [0x0004C]=0x1D543, [0x0004D]=0x1D544, [0x0004E]=0x02115, [0x0004F]=0x1D546,
+ [0x00050]=0x02119, [0x00051]=0x0211A, [0x00052]=0x0211D, [0x00053]=0x1D54A, [0x00054]=0x1D54B,
+ [0x00055]=0x1D54C, [0x00056]=0x1D54D, [0x00057]=0x1D54E, [0x00058]=0x1D54F, [0x00059]=0x1D550,
+ [0x0005A]=0x02124,
+ },
+ lcletters = {
+ -- tolower(0x1D552) :
+ [0x00061] = 0x1D552, [0x00062] = 0x1D553, [0x00063] = 0x1D554, [0x00064] = 0x1D555,
+ [0x00065] = 0x1D556, [0x00066] = 0x1D557, [0x00067] = 0x1D558, [0x00068] = 0x1D559,
+ [0x00069] = 0x1D55A, [0x0006A] = 0x1D55B, [0x0006B] = 0x1D55C, [0x0006C] = 0x1D55D,
+ [0x0006D] = 0x1D55E, [0x0006E] = 0x1D55F, [0x0006F] = 0x1D560, [0x00070] = 0x1D561,
+ [0x00071] = 0x1D562, [0x00072] = 0x1D563, [0x00073] = 0x1D564, [0x00074] = 0x1D565,
+ [0x00075] = 0x1D566, [0x00076] = 0x1D567, [0x00077] = 0x1D568, [0x00078] = 0x1D569,
+ [0x00079] = 0x1D56A, [0x0007A] = 0x1D56B,
+ -- arabic
+ [0x00628] = 0x1EEA1, [0x0062A] = 0x1EEB5, [0x0062B] = 0x1EEB6, [0x0062C] = 0x1EEA2,
+ [0x0062D] = 0x1EEA7, [0x0062E] = 0x1EEB7, [0x0062F] = 0x1EEA3, [0x00630] = 0x1EEB8,
+ [0x00631] = 0x1EEB3, [0x00632] = 0x1EEA6, [0x00633] = 0x1EEAE, [0x00634] = 0x1EEB4,
+ [0x00635] = 0x1EEB1, [0x00636] = 0x1EEB9, [0x00637] = 0x1EEA8, [0x00638] = 0x1EEBA,
+ [0x00639] = 0x1EEAF, [0x0063A] = 0x1EEBB, [0x00641] = 0x1EEB0, [0x00642] = 0x1EEB2,
+ [0x00644] = 0x1EEAB, [0x00645] = 0x1EEAC, [0x00646] = 0x1EEAD, [0x00648] = 0x1EEA5,
+ [0x0064A] = 0x1EEA9,
+ },
+ lcgreek = { -- gamma pi
+ [0x03B3]=0x0213C, [0x03C0]=0x0213D,
+ },
+ ucgreek = { -- Gamma pi
+ [0x0393]=0x0213E, [0x03A0]=0x0213F,
+ },
+ symbols = { -- sum
+ [0x2211]=0x02140,
+ [0x0027]=0x2032, -- prime
+ },
+}
+
+blackboard_tf.lcgreek = merged(regular_tf.lcgreek, blackboard_tf.lcgreek)
+blackboard_tf.ucgreek = merged(regular_tf.ucgreek, blackboard_tf.ucgreek)
+blackboard_tf.symbols = merged(regular_tf.symbols, blackboard_tf.symbols)
+
+local blackboard = {
+ tf = blackboard_tf,
+ it = blackboard_tf,
+ bf = blackboard_tf,
+ bi = blackboard_tf,
+}
+
+local fraktur_tf= {
+ digits = tovector(regular_tf.digits),
+ ucletters = { -- C H I R Z
+ [0x00041]=0x1D504, [0x00042]=0x1D505, [0x00043]=0x0212D, [0x00044]=0x1D507, [0x00045]=0x1D508,
+ [0x00046]=0x1D509, [0x00047]=0x1D50A, [0x00048]=0x0210C, [0x00049]=0x02111, [0x0004A]=0x1D50D,
+ [0x0004B]=0x1D50E, [0x0004C]=0x1D50F, [0x0004D]=0x1D510, [0x0004E]=0x1D511, [0x0004F]=0x1D512,
+ [0x00050]=0x1D513, [0x00051]=0x1D514, [0x00052]=0x0211C, [0x00053]=0x1D516, [0x00054]=0x1D517,
+ [0x00055]=0x1D518, [0x00056]=0x1D519, [0x00057]=0x1D51A, [0x00058]=0x1D51B, [0x00059]=0x1D51C,
+ [0x0005A]=0x02128,
+ },
+ lcletters = tolower(0x1D51E),
+ lcgreek = tovector(regular_tf.lcgreek),
+ ucgreek = tovector(regular_tf.ucgreek),
+ symbols = tovector(regular_tf.symbols),
+}
+
+local fraktur_bf = {
+ digits = tovector(regular_bf.digits),
+ ucletters = toupper(0x1D56C),
+ lcletters = tolower(0x1D586),
+ lcgreek = tovector(regular_bf.lcgreek),
+ ucgreek = tovector(regular_bf.ucgreek),
+ symbols = tovector(regular_bf.symbols),
+}
+
+local fraktur = { -- ok
+ tf = fraktur_tf,
+ bf = fraktur_bf,
+ it = fraktur_tf,
+ bi = fraktur_bf,
+}
+
+local script_tf = {
+ digits = tovector(regular_tf.digits),
+ ucletters = { -- B E F H I L M R -- P 2118
+ [0x00041]=0x1D49C, [0x00042]=0x0212C, [0x00043]=0x1D49E, [0x00044]=0x1D49F, [0x00045]=0x02130,
+ [0x00046]=0x02131, [0x00047]=0x1D4A2, [0x00048]=0x0210B, [0x00049]=0x02110, [0x0004A]=0x1D4A5,
+ [0x0004B]=0x1D4A6, [0x0004C]=0x02112, [0x0004D]=0x02133, [0x0004E]=0x1D4A9, [0x0004F]=0x1D4AA,
+ [0x00050]=0x1D4AB, [0x00051]=0x1D4AC, [0x00052]=0x0211B, [0x00053]=0x1D4AE, [0x00054]=0x1D4AF,
+ [0x00055]=0x1D4B0, [0x00056]=0x1D4B1, [0x00057]=0x1D4B2, [0x00058]=0x1D4B3, [0x00059]=0x1D4B4,
+ [0x0005A]=0x1D4B5,
+ },
+ lcletters = { -- E G O -- L 2113
+ [0x00061]=0x1D4B6, [0x00062]=0x1D4B7, [0x00063]=0x1D4B8, [0x00064]=0x1D4B9, [0x00065]=0x0212F,
+ [0x00066]=0x1D4BB, [0x00067]=0x0210A, [0x00068]=0x1D4BD, [0x00069]=0x1D4BE, [0x0006A]=0x1D4BF,
+ [0x0006B]=0x1D4C0, [0x0006C]=0x1D4C1, [0x0006D]=0x1D4C2, [0x0006E]=0x1D4C3, [0x0006F]=0x02134,
+ [0x00070]=0x1D4C5, [0x00071]=0x1D4C6, [0x00072]=0x1D4C7, [0x00073]=0x1D4C8, [0x00074]=0x1D4C9,
+ [0x00075]=0x1D4CA, [0x00076]=0x1D4CB, [0x00077]=0x1D4CC, [0x00078]=0x1D4CD, [0x00079]=0x1D4CE,
+ [0x0007A]=0x1D4CF,
+ },
+ lcgreek = tovector(regular_tf.lcgreek),
+ ucgreek = tovector(regular_tf.ucgreek),
+ symbols = tovector(regular_tf.symbols),
+}
+
+local script_bf = {
+ digits = tovector(regular_bf.digits),
+ ucletters = toupper(0x1D4D0),
+ lcletters = tolower(0x1D4EA),
+ lcgreek = tovector(regular_bf.lcgreek),
+ ucgreek = tovector(regular_bf.ucgreek),
+ symbols = tovector(regular_bf.symbols),
+}
+
+local script = {
+ tf = script_tf,
+ bf = script_bf,
+ it = script_tf,
+ bi = script_bf,
+}
+
+local calligraphic_tf = {
+ digits = tovector(regular_tf.digits),
+ ucletters = toupper(0x100020),
+ lcletters = tolower(0x100000),
+ lcgreek = tovector(regular_tf.lcgreek),
+ ucgreek = tovector(regular_tf.ucgreek),
+ symbols = tovector(regular_tf.symbols),
+}
+
+local calligraphic_bf = {
+ digits = tovector(regular_bf.digits),
+ ucletters = toupper(0x100060),
+ lcletters = tolower(0x100040),
+ lcgreek = tovector(regular_bf.lcgreek),
+ ucgreek = tovector(regular_bf.ucgreek),
+ symbols = tovector(regular_bf.symbols),
+}
+
+local calligraphic = {
+ tf = calligraphic_tf,
+ bf = calligraphic_bf,
+ it = calligraphic_tf,
+ bi = calligraphic_bf,
+}
+
+local alphabets = allocate {
+ regular = regular,
+ sansserif = sansserif,
+ monospaced = monospaced,
+ blackboard = blackboard,
+ fraktur = fraktur,
+ script = script,
+ calligraphic = calligraphic,
+}
+
+alphabets.tt = tovector(monospaced)
+alphabets.ss = tovector(sansserif)
+alphabets.rm = tovector(regular)
+alphabets.bb = tovector(blackboard)
+alphabets.fr = tovector(fraktur)
+alphabets.sr = tovector(script)
+alphabets.ca = tovector(calligraphic)
+
+monospaced.normal = tovector(monospaced_tf)
+monospaced.italic = tovector(monospaced_it)
+monospaced.bold = tovector(monospaced_bf)
+monospaced.bolditalic = tovector(monospaced_bi)
+
+sansserif.normal = tovector(sansserif_tf)
+sansserif.italic = tovector(sansserif_it)
+sansserif.bold = tovector(sansserif_bf)
+sansserif.bolditalic = tovector(sansserif_bi)
+
+regular.normal = tovector(regular_tf)
+regular.italic = tovector(regular_it)
+regular.bold = tovector(regular_bf)
+regular.bolditalic = tovector(regular_bi)
+
+blackboard.normal = tovector(blackboard_tf)
+blackboard.italic = tovector(blackboard_tf)
+blackboard.bold = tovector(blackboard_tf)
+blackboard.bolditalic = tovector(blackboard_tf)
+
+fraktur.normal = tovector(fraktur_tf)
+fraktur.italic = tovector(fraktur_bf)
+fraktur.bold = tovector(fraktur_tf)
+fraktur.bolditalic = tovector(fraktur_bf)
+
+script.normal = tovector(script_tf)
+script.italic = tovector(script_bf)
+script.bold = tovector(script_tf)
+script.bolditalic = tovector(script_bf)
+
+calligraphic.normal = tovector(calligraphic_tf)
+calligraphic.italic = tovector(calligraphic_bf)
+calligraphic.bold = tovector(calligraphic_tf)
+calligraphic.bolditalic = tovector(calligraphic_bf)
+
+alphabets.serif = tovector(regular)
+alphabets.type = tovector(monospaced)
+alphabets.teletype = tovector(monospaced)
+
+mathematics.alphabets = alphabets
+
+local mathremap = allocate { }
+mathematics.mapremap = mathremap
+
+local boldmap = allocate { }
+mathematics.boldmap = boldmap
+
+-- all math (a bit of redundancy here) (sorted for tracing)
+
+-- so we can do: mathematics.alphabets.blackboard.tf.digits
+
+for alphabet, styles in sortedhash(alphabets) do -- per 9/6/2011 we also have attr for missing
+ for style, data in sortedhash(styles) do
+ -- let's keep the long names (for tracing)
+ local n = #mathremap + 1
+ local d = {
+ attribute = n,
+ alphabet = alphabet,
+ style = style,
+ }
+ styles[style] = d
+ setmetatableindex(d,data) -- we could use a alphadata table
+ mathremap[n] = d
+ end
+end
+
+-- bold math
+
+local function remapbold(tf,bf)
+ local styles = mathematics.styles
+ local sets = mathematics.sets
+ for i=1,#styles do
+ for j=1,#sets do
+ local one = styles[i]
+ local two = sets[j]
+ local a = alphabets[one]
+ local tf = a[tf][two]
+ local bf = a[bf][two]
+ if tf and bf then
+ for k, v in next, tf do
+ boldmap[v] = bf[k]
+ end
+ end
+ end
+ end
+end
+
+remapbold("tf","bf")
+remapbold("it","bi")
+
+-- table.save("e:/tmp/a.lua",alphabets)
+-- table.save("e:/tmp/b.lua",boldmap)
+
+function mathematics.tostyle(attribute)
+ local r = mathremap[attribute]
+ return r and r.style or "tf"
+end
+
+function mathematics.toname(attribute)
+ local r = mathremap[attribute]
+ return r and r.alphabet or "regular"
+end
+
+-- of course we could do some div/mod trickery instead
+
+local mathalphabet = attributes.private("mathalphabet")
+
+function mathematics.getboth(alphabet,style)
+ local data = alphabet and alphabets[alphabet] or regular
+ data = data[style or "tf"] or data.tf
+ return data and data.attribute
+end
+
+function mathematics.getstyle(style)
+ local r = mathremap[texgetattribute(mathalphabet)]
+ local alphabet = r and r.alphabet or "regular"
+ local data = alphabets[alphabet][style]
+ return data and data.attribute
+end
+
+function mathematics.syncboth(alphabet,style)
+ local data = alphabet and alphabets[alphabet] or regular
+ data = style and data[style] or data.tf
+ texsetattribute(mathalphabet,data and data.attribute or texattribute[mathalphabet])
+end
+
+function mathematics.syncstyle(style)
+ local r = mathremap[texgetattribute(mathalphabet)]
+ local alphabet = r and r.alphabet or "regular"
+ local data = alphabets[alphabet][style]
+ texsetattribute(mathalphabet,data and data.attribute or texattribute[mathalphabet])
+end
+
+function mathematics.syncname(alphabet)
+ -- local r = mathremap[mathalphabet]
+ local r = mathremap[texgetattribute(mathalphabet)]
+ local style = r and r.style or "tf"
+ local data = alphabets[alphabet][style]
+ texsetattribute(mathalphabet,data and data.attribute or texattribute[mathalphabet])
+end
+
+implement {
+ name = "setmathattribute",
+ arguments = "2 arguments",
+ public = true,
+ protected = true,
+ actions = function(alphabet,style)
+ if texgetmode() == mathmode_code then
+ local data = alphabets[alphabet]
+ if not data then
+ alphabet = "regular"
+ data = regular
+ end
+ local used = data[style]
+ if not used then
+ style = "tf"
+ used = data.tf
+ end
+ setmacro("currentmathalphabet",alphabet == "regular" and "rm" or alphabet)
+ setmacro("currentmathfontstyle",style)
+ texsetattribute(mathalphabet,used and used.attribute or texattribute[mathalphabet])
+ end
+ end
+}
+
+implement {
+ name = "setmathfontstyle",
+ arguments = "argument",
+ public = true,
+ protected = true,
+ actions = function(style)
+ if texgetmode() == mathmode_code then
+ local r = mathremap[texgetattribute(mathalphabet)]
+ local alphabet = r and r.alphabet or "regular"
+ local data = alphabets[alphabet][style]
+ setmacro("currentmathfontstyle",style)
+ texsetattribute(mathalphabet,data and data.attribute or texattribute[mathalphabet])
+ end
+ end
+}
+
+implement {
+ name = "setmathalphabet",
+ arguments = "argument",
+ public = true,
+ protected = true,
+ actions = function(alphabet)
+ if texgetmode() == mathmode_code then
+ -- local r = mathremap[mathalphabet]
+ local a = texgetattribute(mathalphabet)
+ local r = mathremap[a]
+ local style = r and r.style or "tf"
+ local data = alphabets[alphabet][style]
+ texsetattribute(mathalphabet,data and data.attribute or a)
+ end
+ end
+}
+
+local islcgreek = regular_tf.lcgreek
+local isucgreek = regular_tf.ucgreek
+local issygreek = regular_tf.symbols
+local isgreek = merged(islcgreek,isucgreek,issygreek)
+
+local greekremapping = {
+ { what = "unchanged" }, -- upright
+ { what = "upright", it = "tf", bi = "bf" }, -- upright
+ { what = "italic", tf = "it", bf = "bi" }, -- italic
+}
+
+local usedremap = { }
+
+local function resolver(map)
+ return function (t,k)
+ local v =
+ map.digits [k] or
+ map.lcletters[k] or map.ucletters[k] or
+ map.lcgreek [k] or map.ucgreek [k] or
+ map.symbols [k] or k
+ t[k] = v
+ return v
+ end
+end
+
+for k, v in next, mathremap do
+ local t = { }
+ setmetatableindex(t,resolver(v))
+ usedremap[k] = t
+end
+
+local function remapgreek(mathalphabet,how,detail,char)
+ local r = mathremap[mathalphabet] -- what if 0
+ local alphabet = r and r.alphabet or "regular"
+ local style = r and r.style or "tf"
+ local remapping = greekremapping[how]
+ if trace_greek then
+ report_remapping("greek %s, %s char %C, alphabet %a %a, method %a","before",detail,char,alphabet,style,remapping.what)
+ end
+ local newstyle = remapping[style]
+ if newstyle then
+ local data = alphabets[alphabet][newstyle] -- always something
+ mathalphabet = data and data.attribute or mathalphabet
+ style = newstyle
+ end
+ if trace_greek then
+ report_remapping("greek %s, %s char %C, alphabet %a %a, method %a","after",detail,char,alphabet,style,remapping.what)
+ end
+ return mathalphabet, style
+end
+
+function mathematics.remapalphabets(char,mathalphabet,mathgreek)
+ if not mathalphabet then
+ return
+ end
+ local g = gaps[char]
+ if g then
+ report_remapping("gap character %U changed into %C",char,g)
+ char = g
+ return
+ end
+ if mathgreek and mathgreek > 0 then
+ if not isgreek[char] then
+ -- nothing needed
+ elseif islcgreek[char] then
+ local lc = (mathgreek >> 4) & 0x0F
+ if lc > 1 then
+ mathalphabet = remapgreek(mathalphabet,lc,"lowercase",char)
+ end
+ elseif isucgreek[char] then
+ local uc = (mathgreek >> 0) & 0x0F
+ if uc > 1 then
+ mathalphabet = remapgreek(mathalphabet,uc,"uppercase",char)
+ end
+ elseif issygreek[char] then
+ local sy = (mathgreek >> 8) & 0x0F
+ if sy > 1 then
+ mathalphabet = remapgreek(mathalphabet,sy,"symbol",char)
+ end
+ end
+ end
+ if mathalphabet > 0 then
+ local remap = usedremap[mathalphabet] -- redundant check
+ if remap then
+ local newchar = remap[char]
+ return newchar ~= char and newchar
+ end
+ end
+ -- return nil
+end
+
+-- begin of experiment
+
+local stylefallbacks = {
+ tf = "bf",
+ it = "bi",
+ bf = "tf",
+ bi = "it",
+}
+
+function mathematics.fallbackstyleattr(attribute)
+ local redirect = mathremap[attribute]
+ local alphabet = redirect.alphabet or "regular"
+ local style = redirect.style or "tf"
+ local fallback = stylefallbacks[style]
+ if fallback then
+ local data = alphabets[alphabet][fallback]
+ if data then
+ local attr = data.attribute
+ return attribute ~= attr and attr
+ end
+ end
+end
+
+-- end of experiment
+
+local function checkedcopy(characters,child,parent)
+ for k, v in next, child do
+ if not characters[v] then
+ characters[v] = characters[parent[k]]
+ end
+ end
+end
+
+function mathematics.addfallbacks(main)
+ local characters = main.characters
+ checkedcopy(characters,regular.bf.ucgreek,regular.tf.ucgreek)
+ checkedcopy(characters,regular.bf.lcgreek,regular.tf.lcgreek)
+ checkedcopy(characters,regular.bi.ucgreek,regular.it.ucgreek)
+ checkedcopy(characters,regular.bi.lcgreek,regular.it.lcgreek)
+end
+
+implement {
+ name = "traversemath",
+ arguments = { "string", "string", "string", "csname" },
+ actions = function(style,alternative,set,command)
+ local d = alphabets[style]
+ if d then
+ d = d[alternative]
+ if d then
+ d = d[set]
+ if d then
+ local c = context[command]
+ for k, v in sortedhash(d) do
+ c(v)
+ end
+ end
+ end
+ end
+ end
+}
+
+local blocks = characters.blocks
+
+implement {
+ name = "traverseblock",
+ arguments = { "string", "csname" },
+ actions = function(name,command)
+ local b = blocks[string.nospaces(name)]
+ if b then
+ local c = context[command]
+ for k = b.first, b.last do
+ c(gaps[k] or k)
+ end
+ end
+ end
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-noa.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-noa.lmt
index 118ab18267a..4a0cb57449e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-noa.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-noa.lmt
@@ -7,6 +7,11 @@ if not modules then modules = { } end modules ['math-noa'] = {
license = "see context related readme files"
}
+-- TODO: SET CLASSES !
+
+-- if specials and (specials[1] == "char" or specials[1] == "font") then -- can we avoid this
+-- ... better create a reverse mapping from the already present vectors
+
-- beware: this is experimental code and there will be a more generic (attribute value
-- driven) interface too but for the moment this is ok (sometime in 2015-2016 i will
-- start cleaning up as by then the bigger picture is clear and code has been used for
@@ -30,7 +35,6 @@ local formatters, gmatch = string.formatters, string.gmatch
local sortedhash = table.sortedhash
local insert, remove = table.insert, table.remove
local div, round = math.div, math.round
-local bor, band = bit32.bor, bit32.band
local fonts = fonts
local nodes = nodes
@@ -48,42 +52,28 @@ local registerdirective = directives.register
local logreporter = logs.reporter
local setmetatableindex = table.setmetatableindex
+local texgetmode = tex.getmode
+local mathmode_code = tex.modelevels.math
+
local colortracers = nodes.tracers.colors
-local trace_remapping = false registertracker("math.remapping", function(v) trace_remapping = v end)
-local trace_processing = false registertracker("math.processing", function(v) trace_processing = v end)
-local trace_analyzing = false registertracker("math.analyzing", function(v) trace_analyzing = v end)
-local trace_normalizing = false registertracker("math.normalizing", function(v) trace_normalizing = v end)
-local trace_collapsing = false registertracker("math.collapsing", function(v) trace_collapsing = v end)
-local trace_fixing = false registertracker("math.fixing", function(v) trace_foxing = v end)
-local trace_patching = false registertracker("math.patching", function(v) trace_patching = v end)
-local trace_goodies = false registertracker("math.goodies", function(v) trace_goodies = v end)
-local trace_variants = false registertracker("math.variants", function(v) trace_variants = v end)
-local trace_alternates = false registertracker("math.alternates", function(v) trace_alternates = v end)
-local trace_italics = false registertracker("math.italics", function(v) trace_italics = v end)
-local trace_kernpairs = false registertracker("math.kernpairs", function(v) trace_kernpairs = v end)
-local trace_domains = false registertracker("math.domains", function(v) trace_domains = v end)
-local trace_families = false registertracker("math.families", function(v) trace_families = v end)
-local trace_fences = false registertracker("math.fences", function(v) trace_fences = v end)
-local trace_unstacking = false registertracker("math.unstack", function(v) trace_unstacking = v end)
-
-local check_coverage = true registerdirective("math.checkcoverage", function(v) check_coverage = v end)
-
-local report_processing = logreporter("mathematics","processing")
-local report_remapping = logreporter("mathematics","remapping")
-local report_normalizing = logreporter("mathematics","normalizing")
-local report_collapsing = logreporter("mathematics","collapsing")
-local report_fixing = logreporter("mathematics","fixing")
-local report_patching = logreporter("mathematics","patching")
-local report_goodies = logreporter("mathematics","goodies")
-local report_variants = logreporter("mathematics","variants")
-local report_alternates = logreporter("mathematics","alternates")
-local report_italics = logreporter("mathematics","italics")
-local report_kernpairs = logreporter("mathematics","kernpairs")
-local report_domains = logreporter("mathematics","domains")
-local report_families = logreporter("mathematics","families")
-local report_fences = logreporter("mathematics","fences")
-local report_unstacking = logreporter("mathematics","unstack")
+-- most trace/report will move into the closures
+
+local trace_remapping = false registertracker("math.remapping", function(v) trace_remapping = v end)
+local trace_processing = false registertracker("math.processing", function(v) trace_processing = v end)
+local trace_analyzing = false registertracker("math.analyzing", function(v) trace_analyzing = v end)
+local trace_normalizing = false registertracker("math.normalizing", function(v) trace_normalizing = v end)
+local trace_collapsing = false registertracker("math.collapsing", function(v) trace_collapsing = v end)
+local trace_goodies = false registertracker("math.goodies", function(v) trace_goodies = v end)
+
+local check_coverage = true registerdirective("math.checkcoverage", function(v) check_coverage = v end)
+local use_math_goodies = true registerdirective("math.nogoodies", function(v) use_math_goodies = not v end)
+
+local report_processing = logreporter("mathematics","processing")
+local report_remapping = logreporter("mathematics","remapping")
+local report_normalizing = logreporter("mathematics","normalizing")
+local report_collapsing = logreporter("mathematics","collapsing")
+local report_goodies = logreporter("mathematics","goodies")
local a_mathrendering = privateattribute("mathrendering")
local a_exportstatus = privateattribute("exportstatus")
@@ -106,41 +96,66 @@ local setattrlist = nuts.setattrlist
local setwidth = nuts.setwidth
local setheight = nuts.setheight
local setdepth = nuts.setdepth
+local setdelimiter = nuts.setdelimiter
+local setclass = nuts.setclass
local getfield = nuts.getfield
local getnext = nuts.getnext
local getprev = nuts.getprev
local getboth = nuts.getboth
+local isnext = nuts.isnext
+local isprev = nuts.isprev
+local isboth = nuts.isboth
local getid = nuts.getid
local getsubtype = nuts.getsubtype
local getchar = nuts.getchar
local getfont = nuts.getfont
local getfam = nuts.getfam
+local getcharspec = nuts.getcharspec
local getattr = nuts.getattr
local getattrs = nuts.getattrs
local getlist = nuts.getlist
local getwidth = nuts.getwidth
local getheight = nuts.getheight
local getdepth = nuts.getdepth
+local getwhd = nuts.getwhd
+local getdelimiter = nuts.getdelimiter
+local getleftdelimiter = nuts.getleftdelimiter
+local getrightdelimiter = nuts.getrightdelimiter
+local getnumerator = nuts.getnumerator
+local getdenominator = nuts.getdenominator
+local getdegree = nuts.getdegree
+local gettop = nuts.gettop
+local getmiddle = nuts.getmiddle
+local getbottom = nuts.getbottom
+local getchoice = nuts.getchoice
local getnucleus = nuts.getnucleus
local getsub = nuts.getsub
local getsup = nuts.getsup
local getsubpre = nuts.getsubpre
local getsuppre = nuts.getsuppre
+local getprime = nuts.getprime
local setnucleus = nuts.setnucleus
local setsub = nuts.setsub
local setsup = nuts.setsup
local setsubpre = nuts.setsubpre
local setsuppre = nuts.setsuppre
+local setprime = nuts.setprime
+
+local getoffsets = nuts.getoffsets
+local setoffsets = nuts.setoffsets
-local flush_node = nuts.flush
+local getoptions = nuts.getoptions
+local setoptions = nuts.setoptions
+
+local flushnode = nuts.flush
local copy_node = nuts.copy
local slide_nodes = nuts.slide
local set_visual = nuts.setvisual
-local mlist_to_hlist = nuts.mlist_to_hlist
+local mlisttohlist = nuts.mlisttohlist
local new_kern = nodepool.kern
local new_submlist = nodepool.submlist
@@ -152,6 +167,7 @@ local fonthashes = fonts.hashes
local fontdata = fonthashes.identifiers
local fontcharacters = fonthashes.characters
local fontitalics = fonthashes.italics
+local fontparameters = fonthashes.parameters
local variables = interfaces.variables
local texsetattribute = tex.setattribute
@@ -161,6 +177,10 @@ local unsetvalue = attributes.unsetvalue
local implement = interfaces.implement
local v_reset = variables.reset
+local v_small = variables.small
+local v_medium = variables.medium
+local v_big = variables.big
+local v_line = variables.line
local chardata = characters.data
@@ -178,55 +198,51 @@ local enableaction = tasks.enableaction
local setaction = tasks.setaction
local nodecodes = nodes.nodecodes
-local noadcodes = nodes.noadcodes
+----- noadcodes = nodes.noadcodes
local fencecodes = nodes.fencecodes
-
-local ordnoad_code = noadcodes.ord
-local opdisplaylimitsnoad_code = noadcodes.opdisplaylimits
-local oplimitsnoad_code = noadcodes.oplimits
-local opnolimitsnoad_code = noadcodes.opnolimits
-local binnoad_code = noadcodes.bin
-local relnode_code = noadcodes.rel
-local opennoad_code = noadcodes.open
-local closenoad_code = noadcodes.close
-local punctnoad_code = noadcodes.punct
-local innernoad_code = noadcodes.inner
-local undernoad_code = noadcodes.under
-local overnoad_code = noadcodes.over
-local vcenternoad_code = noadcodes.vcenter
-local ordlimitsnoad_code = noadcodes.ordlimits or oplimitsnoad_code
-
-local noad_code = nodecodes.noad -- attr nucleus sub sup
-local accent_code = nodecodes.accent -- attr nucleus sub sup accent
-local radical_code = nodecodes.radical -- attr nucleus sub sup left degree
-local fraction_code = nodecodes.fraction -- attr nucleus sub sup left right
-local subbox_code = nodecodes.subbox -- attr list
-local submlist_code = nodecodes.submlist -- attr list
-local mathchar_code = nodecodes.mathchar -- attr fam char
-local mathtextchar_code = nodecodes.mathtextchar -- attr fam char
-local delimiter_code = nodecodes.delimiter -- attr small_fam small_char large_fam large_char
------ style_code = nodecodes.style -- attr style
------ parameter_code = nodecodes.parameter -- attr style
-local math_choice = nodecodes.choice -- attr display text script scriptscript
-local fence_code = nodecodes.fence -- attr subtype
+local classes = mathematics.classes -- or nodes.noadcodes
+
+local ordinary_class = classes.ordinary
+local operator_class = classes.operator
+local binary_class = classes.binary
+local relation_class = classes.relation
+local open_class = classes.open
+local close_class = classes.close
+local middle_class = classes.middle
+local punctuation_class = classes.punctuation
+local fenced_class = classes.fenced
+local fraction_class = classes.fraction
+local radical_class = classes.radical
+local accent_class = classes.accent
+local numbergroup_class = classes.numbergroup
+local digit_class = classes.digit
+
+local noad_code = nodecodes.noad
+local accent_code = nodecodes.accent
+local radical_code = nodecodes.radical
+local fraction_code = nodecodes.fraction
+local subbox_code = nodecodes.subbox
+local submlist_code = nodecodes.submlist
+local mathchar_code = nodecodes.mathchar
+local mathtextchar_code = nodecodes.mathtextchar
+local delimiter_code = nodecodes.delimiter
+----- style_code = nodecodes.style
+----- parameter_code = nodecodes.parameter
+local math_choice = nodecodes.choice
+local fence_code = nodecodes.fence
local leftfence_code = fencecodes.left
local middlefence_code = fencecodes.middle
local rightfence_code = fencecodes.right
--- local mathclasses = mathematics.classes
--- local fenceclasses = {
--- [leftfence_code] = mathclasses.open,
--- [middlefence_code] = mathclasses.middle,
--- [rightfence_code] = mathclasses.close,
--- }
-
-- this initial stuff is tricky as we can have removed and new nodes with the same address
-- the only way out is a free-per-page list of nodes (not bad anyway)
-- local gf = getfield local gt = setmetatableindex("number") getfield = function(n,f) gt[f] = gt[f] + 1 return gf(n,f) end mathematics.GETFIELD = gt
-- local sf = setfield local st = setmetatableindex("number") setfield = function(n,f,v) st[f] = st[f] + 1 sf(n,f,v) end mathematics.SETFIELD = st
+-- TODO : get rid of done
+
local function process(start,what,n,parent)
if n then
@@ -243,11 +259,9 @@ local function process(start,what,n,parent)
local id = getid(start)
if trace_processing then
if id == noad_code then
- report_processing("%w%S, class %a",n*2,nutstring(start),noadcodes[getsubtype(start)])
+ report_processing("%w%S, class %a",n*2,nutstring(start),classes[getsubtype(start)])
elseif id == mathchar_code then
- local char = getchar(start)
- local font = getfont(start)
- local fam = getfam(start)
+ local char, font, fam = getcharspec(start)
report_processing("%w%S, family %a, font %a, char %a, shape %c",n*2,nutstring(start),fam,font,char,char)
else
report_processing("%w%S",n*2,nutstring(start))
@@ -276,49 +290,51 @@ local function process(start,what,n,parent)
end
elseif id == noad_code then
-- single characters are like this
- local noad = getnucleus(start) if noad then process(noad,what,n,start) end -- list
- noad = getsup (start) if noad then process(noad,what,n,start) end -- list
- noad = getsub (start) if noad then process(noad,what,n,start) end -- list
- if getsubpre then
- noad = getsuppre (start) if noad then process(noad,what,n,start) end -- list
- noad = getsubpre (start) if noad then process(noad,what,n,start) end -- list
- end
+ local noad = getnucleus(start) if noad then process(noad,what,n,start) end -- list
+ noad = getsup(start) if noad then process(noad,what,n,start) end -- list
+ noad = getsub(start) if noad then process(noad,what,n,start) end -- list
+ noad = getsuppre(start) if noad then process(noad,what,n,start) end -- list
+ noad = getsubpre(start) if noad then process(noad,what,n,start) end -- list
+ noad = getprime(start) if noad then process(noad,what,n,start) end -- list
elseif id == mathchar_code or id == mathtextchar_code or id == delimiter_code then
break
elseif id == subbox_code or id == submlist_code then
- local noad = getlist(start) if noad then process(noad,what,n,start) end -- list (not getlist !)
+ local noad = getlist(start) if noad then process(noad,what,n,start) end -- list (not getlist !)
elseif id == fraction_code then
- local noad = getfield(start,"num") if noad then process(noad,what,n,start) end -- list
- noad = getfield(start,"denom") if noad then process(noad,what,n,start) end -- list
- noad = getfield(start,"left") if noad then process(noad,what,n,start) end -- delimiter
- noad = getfield(start,"right") if noad then process(noad,what,n,start) end -- delimiter
+ local noad = getnumerator(start) if noad then process(noad,what,n,start) end -- list
+ noad = getdenominator(start) if noad then process(noad,what,n,start) end -- list
+ noad = getleftdelimiter(start) if noad then process(noad,what,n,start) end -- delimiter
+ noad = getdelimiter(start) if noad then process(noad,what,n,start) end -- delimiter
+ noad = getrightdelimiter(start) if noad then process(noad,what,n,start) end -- delimiter
elseif id == math_choice then
- local noad = getfield(start,"display") if noad then process(noad,what,n,start) end -- list
- noad = getfield(start,"text") if noad then process(noad,what,n,start) end -- list
- noad = getfield(start,"script") if noad then process(noad,what,n,start) end -- list
- noad = getfield(start,"scriptscript") if noad then process(noad,what,n,start) end -- list
+ local noad = getchoice(start,1) if noad then process(noad,what,n,start) end -- list
+ noad = getchoice(start,2) if noad then process(noad,what,n,start) end -- list
+ noad = getchoice(start,3) if noad then process(noad,what,n,start) end -- list
+ noad = getchoice(start,4) if noad then process(noad,what,n,start) end -- list
elseif id == fence_code then
- local noad = getfield(start,"delimiter") if noad then process(noad,what,n,start) end -- delimiter
+ local noad = getdelimiter(start) if noad then process(noad,what,n,start) end -- delimiter
+ noad = gettop(start) if noad then process(noad,what,n,start) end -- list
+ noad = getbottom(start) if noad then process(noad,what,n,start) end -- list
elseif id == radical_code then
- local noad = getnucleus(start) if noad then process(noad,what,n,start) end -- list
- noad = getsup (start) if noad then process(noad,what,n,start) end -- list
- noad = getsub (start) if noad then process(noad,what,n,start) end -- list
- if getsubpre then
- noad = getsuppre (start) if noad then process(noad,what,n,start) end -- list
- noad = getsubpre (start) if noad then process(noad,what,n,start) end -- list
- end
- noad = getfield(start,"left") if noad then process(noad,what,n,start) end -- delimiter
- noad = getfield(start,"degree") if noad then process(noad,what,n,start) end -- list
+ local noad = getnucleus(start) if noad then process(noad,what,n,start) end -- list
+ noad = getsup(start) if noad then process(noad,what,n,start) end -- list
+ noad = getsub(start) if noad then process(noad,what,n,start) end -- list
+ noad = getsuppre(start) if noad then process(noad,what,n,start) end -- list
+ noad = getsubpre(start) if noad then process(noad,what,n,start) end -- list
+ noad = getprime(start) if noad then process(noad,what,n,start) end -- delimiter
+ noad = getleftdelimiter(start) if noad then process(noad,what,n,start) end -- delimiter
+ noad = getrightdelimiter(start) if noad then process(noad,what,n,start) end -- delimiter
+ noad = getdegree(start) if noad then process(noad,what,n,start) end -- list
elseif id == accent_code then
- local noad = getnucleus(start) if noad then process(noad,what,n,start) end -- list
- noad = getsup (start) if noad then process(noad,what,n,start) end -- list
- noad = getsub (start) if noad then process(noad,what,n,start) end -- list
- if getsubpre then
- noad = getsuppre (start) if noad then process(noad,what,n,start) end -- list
- noad = getsubpre (start) if noad then process(noad,what,n,start) end -- list
- end
- noad = getfield(start,"accent") if noad then process(noad,what,n,start) end -- list
- noad = getfield(start,"bot_accent") if noad then process(noad,what,n,start) end -- list
+ local noad = getnucleus(start) if noad then process(noad,what,n,start) end -- list
+ noad = getsup(start) if noad then process(noad,what,n,start) end -- list
+ noad = getsub(start) if noad then process(noad,what,n,start) end -- list
+ noad = getsuppre(start) if noad then process(noad,what,n,start) end -- list
+ noad = getsubpre(start) if noad then process(noad,what,n,start) end -- list
+ noad = getprime(start) if noad then process(noad,what,n,start) end -- list
+ noad = gettop(start) if noad then process(noad,what,n,start) end -- list
+ noad = getmiddle(start) if noad then process(noad,what,n,start) end -- list
+ noad = getbottom(start) if noad then process(noad,what,n,start) end -- list
-- elseif id == style_code then
-- -- has a next
-- elseif id == parameter_code then
@@ -337,47 +353,49 @@ local function processnested(current,what,n)
local noad = nil
local id = getid(current)
if id == noad_code then
- noad = getnucleus(current) if noad then process(noad,what,n,current) end -- list
- noad = getsup (current) if noad then process(noad,what,n,current) end -- list
- noad = getsub (current) if noad then process(noad,what,n,current) end -- list
- if getsubpre then
- noad = getsuppre (current) if noad then process(noad,what,n,current) end -- list
- noad = getsubpre (current) if noad then process(noad,what,n,current) end -- list
- end
+ noad = getnucleus(current) if noad then process(noad,what,n,current) end -- list
+ noad = getsup(current) if noad then process(noad,what,n,current) end -- list
+ noad = getsub(current) if noad then process(noad,what,n,current) end -- list
+ noad = getsuppre(current) if noad then process(noad,what,n,current) end -- list
+ noad = getsubpre(current) if noad then process(noad,what,n,current) end -- list
+ noad = getprime(current) if noad then process(noad,what,n,current) end -- list
elseif id == subbox_code or id == submlist_code then
- noad = getlist(current) if noad then process(noad,what,n,current) end -- list (not getlist !)
+ noad = getlist(current) if noad then process(noad,what,n,current) end -- list (not getlist !)
elseif id == fraction_code then
- noad = getfield(current,"num") if noad then process(noad,what,n,current) end -- list
- noad = getfield(current,"denom") if noad then process(noad,what,n,current) end -- list
- noad = getfield(current,"left") if noad then process(noad,what,n,current) end -- delimiter
- noad = getfield(current,"right") if noad then process(noad,what,n,current) end -- delimiter
+ noad = getnumerator(current) if noad then process(noad,what,n,current) end -- list
+ noad = getdenominator(current) if noad then process(noad,what,n,current) end -- list
+ noad = getleftdelimiter(current) if noad then process(noad,what,n,current) end -- delimiter
+ noad = getdelimiter(current) if noad then process(noad,what,n,current) end -- delimiter
+ noad = getrightdelimiter(current) if noad then process(noad,what,n,current) end -- delimiter
elseif id == math_choice then
- noad = getfield(current,"display") if noad then process(noad,what,n,current) end -- list
- noad = getfield(current,"text") if noad then process(noad,what,n,current) end -- list
- noad = getfield(current,"script") if noad then process(noad,what,n,current) end -- list
- noad = getfield(current,"scriptscript") if noad then process(noad,what,n,current) end -- list
+ noad = getchoice(start,1) if noad then process(noad,what,n,current) end -- list
+ noad = getchoice(start,2) if noad then process(noad,what,n,current) end -- list
+ noad = getchoice(start,3) if noad then process(noad,what,n,current) end -- list
+ noad = getchoice(start,4) if noad then process(noad,what,n,current) end -- list
elseif id == fence_code then
- noad = getfield(current,"delimiter") if noad then process(noad,what,n,current) end -- delimiter
+ noad = getdelimiter(current) if noad then process(noad,what,n,current) end -- delimiter
+ noad = gettop(current) if noad then process(noad,what,n,current) end -- list
+ noad = getbottom(current) if noad then process(noad,what,n,current) end -- list
elseif id == radical_code then
- noad = getnucleus(current) if noad then process(noad,what,n,current) end -- list
- noad = getsup (current) if noad then process(noad,what,n,current) end -- list
- noad = getsub (current) if noad then process(noad,what,n,current) end -- list
- if getsubpre then
- noad = getsuppre (current) if noad then process(noad,what,n,current) end -- list
- noad = getsubpre (current) if noad then process(noad,what,n,current) end -- list
- end
- noad = getfield(current,"left") if noad then process(noad,what,n,current) end -- delimiter
- noad = getfield(current,"degree") if noad then process(noad,what,n,current) end -- list
+ noad = getnucleus(current) if noad then process(noad,what,n,current) end -- list
+ noad = getsup(current) if noad then process(noad,what,n,current) end -- list
+ noad = getsub(current) if noad then process(noad,what,n,current) end -- list
+ noad = getsuppre(current) if noad then process(noad,what,n,current) end -- list
+ noad = getsubpre(current) if noad then process(noad,what,n,current) end -- list
+ noad = getprime(current) if noad then process(noad,what,n,current) end -- list
+ noad = getleftdelimiter(current) if noad then process(noad,what,n,current) end -- delimiter
+ noad = getrightdelimiter(current) if noad then process(noad,what,n,current) end -- delimiter
+ noad = getdegree(current) if noad then process(noad,what,n,current) end -- list
elseif id == accent_code then
- noad = getnucleus(current) if noad then process(noad,what,n,current) end -- list
- noad = getsup (current) if noad then process(noad,what,n,current) end -- list
- noad = getsub (current) if noad then process(noad,what,n,current) end -- list
- if getsubpre then
- noad = getsuppre (current) if noad then process(noad,what,n,current) end -- list
- noad = getsubpre (current) if noad then process(noad,what,n,current) end -- list
- end
- noad = getfield(current,"accent") if noad then process(noad,what,n,current) end -- list
- noad = getfield(current,"bot_accent") if noad then process(noad,what,n,current) end -- list
+ noad = getnucleus(current) if noad then process(noad,what,n,current) end -- list
+ noad = getsup(current) if noad then process(noad,what,n,current) end -- list
+ noad = getsub(current) if noad then process(noad,what,n,current) end -- list
+ noad = getsuppre(current) if noad then process(noad,what,n,current) end -- list
+ noad = getsubpre(current) if noad then process(noad,what,n,current) end -- list
+ noad = getprime(current) if noad then process(noad,what,n,current) end -- list
+ noad = gettop(current) if noad then process(noad,what,n,current) end -- list
+ noad = getmiddle(current) if noad then process(noad,what,n,current) end -- list
+ noad = getbottom(current) if noad then process(noad,what,n,current) end -- list
end
end
@@ -385,47 +403,49 @@ local function processstep(current,process,n,id)
local noad = nil
local id = id or getid(current)
if id == noad_code then
- noad = getnucleus(current) if noad then process(noad,n,current) end -- list
- noad = getsup (current) if noad then process(noad,n,current) end -- list
- noad = getsub (current) if noad then process(noad,n,current) end -- list
- if getsubpre then
- noad = getsuppre (current) if noad then process(noad,n,current) end -- list
- noad = getsubpre (current) if noad then process(noad,n,current) end -- list
- end
+ noad = getnucleus(current) if noad then process(noad,n,current) end -- list
+ noad = getsup(current) if noad then process(noad,n,current) end -- list
+ noad = getsub(current) if noad then process(noad,n,current) end -- list
+ noad = getsuppre(current) if noad then process(noad,n,current) end -- list
+ noad = getsubpre(current) if noad then process(noad,n,current) end -- list
+ noad = getprime(current) if noad then process(noad,n,current) end -- list
elseif id == subbox_code or id == submlist_code then
- noad = getlist(current) if noad then process(noad,n,current) end -- list (not getlist !)
+ noad = getlist(current) if noad then process(noad,n,current) end -- list (not getlist !)
elseif id == fraction_code then
- noad = getfield(current,"num") if noad then process(noad,n,current) end -- list
- noad = getfield(current,"denom") if noad then process(noad,n,current) end -- list
- noad = getfield(current,"left") if noad then process(noad,n,current) end -- delimiter
- noad = getfield(current,"right") if noad then process(noad,n,current) end -- delimiter
+ noad = getnumerator(current) if noad then process(noad,n,current) end -- list
+ noad = getdenominator(current) if noad then process(noad,n,current) end -- list
+ noad = getleftdelimiter(current) if noad then process(noad,n,current) end -- delimiter
+ noad = getdelimiter(current) if noad then process(noad,n,current) end -- delimiter
+ noad = getrightdelimiter(current) if noad then process(noad,n,current) end -- delimiter
elseif id == math_choice then
- noad = getfield(current,"display") if noad then process(noad,n,current) end -- list
- noad = getfield(current,"text") if noad then process(noad,n,current) end -- list
- noad = getfield(current,"script") if noad then process(noad,n,current) end -- list
- noad = getfield(current,"scriptscript") if noad then process(noad,n,current) end -- list
+ noad = getchoice(start,1) if noad then process(noad,n,current) end -- list
+ noad = getchoice(start,2) if noad then process(noad,n,current) end -- list
+ noad = getchoice(start,3) if noad then process(noad,n,current) end -- list
+ noad = getchoice(start,4) if noad then process(noad,n,current) end -- list
elseif id == fence_code then
- noad = getfield(current,"delimiter") if noad then process(noad,n,current) end -- delimiter
+ noad = getdelimiter(current) if noad then process(noad,n,current) end -- delimiter
+ noad = gettop(current) if noad then process(noad,n,current) end -- list
+ noad = getbottom(current) if noad then process(noad,n,current) end -- list
elseif id == radical_code then
- noad = getnucleus(current) if noad then process(noad,n,current) end -- list
- noad = getsup (current) if noad then process(noad,n,current) end -- list
- noad = getsub (current) if noad then process(noad,n,current) end -- list
- if getsubpre then
- noad = getsuppre (current) if noad then process(noad,n,current) end -- list
- noad = getsubpre (current) if noad then process(noad,n,current) end -- list
- end
- noad = getfield(current,"left") if noad then process(noad,n,current) end -- delimiter
- noad = getfield(current,"degree") if noad then process(noad,n,current) end -- list
+ noad = getnucleus(current) if noad then process(noad,n,current) end -- list
+ noad = getsup(current) if noad then process(noad,n,current) end -- list
+ noad = getsub(current) if noad then process(noad,n,current) end -- list
+ noad = getsuppre(current) if noad then process(noad,n,current) end -- list
+ noad = getsubpre(current) if noad then process(noad,n,current) end -- list
+ noad = getprime(current) if noad then process(noad,n,current) end -- delimiter
+ noad = getleftdelimiter(current) if noad then process(noad,n,current) end -- delimiter
+ noad = getrightdelimiter(current) if noad then process(noad,n,current) end -- delimiter
+ noad = getdegree(current) if noad then process(noad,n,current) end -- list
elseif id == accent_code then
- noad = getnucleus(current) if noad then process(noad,n,current) end -- list
- noad = getsup (current) if noad then process(noad,n,current) end -- list
- noad = getsub (current) if noad then process(noad,n,current) end -- list
- if getsubpre then
- noad = getsuppre (current) if noad then process(noad,n,current) end -- list
- noad = getsubpre (current) if noad then process(noad,n,current) end -- list
- end
- noad = getfield(current,"accent") if noad then process(noad,n,current) end -- list
- noad = getfield(current,"bot_accent") if noad then process(noad,n,current) end -- list
+ noad = getnucleus(current) if noad then process(noad,n,current) end -- list
+ noad = getsup(current) if noad then process(noad,n,current) end -- list
+ noad = getsub(current) if noad then process(noad,n,current) end -- list
+ noad = getsuppre(current) if noad then process(noad,n,current) end -- list
+ noad = getsubpre(current) if noad then process(noad,n,current) end -- list
+ noad = getprime(current) if noad then process(noad,n,current) end -- list
+ noad = gettop(current) if noad then process(noad,n,current) end -- list
+ noad = getmiddle(current) if noad then process(noad,n,current) end -- list
+ noad = getbottom(current) if noad then process(noad,n,current) end -- list
end
end
@@ -451,7 +471,15 @@ local checked = { } -- simple case
local tracked = false trackers.register("fonts.missing", function(v) tracked = v end)
local cached = setmetatableindex("table") -- complex case
+local variantselectors = {
+ [0xFE00] = true,
+ [0xFE01] = true
+}
+
local function errorchar(font,char)
+ if variantselectors[char] then
+ return char
+ end
local done = unknowns[char]
if done then
unknowns[char] = done + 1
@@ -466,7 +494,7 @@ local function errorchar(font,char)
return fake
else
local kind, fake = fonts.checkers.placeholder(font,char)
- if not fake or kind ~= "char" then
+ if not fake or kind ~= "char" then -- Also check for "with" here?
fake = 0x3F
end
cached[font][char] = fake
@@ -499,6 +527,9 @@ do
local a_mathfamily = privateattribute("mathfamily")
local boldmap = mathematics.boldmap
+ local trace_families = false registertracker("math.families", function(v) trace_families = v end)
+ local report_families = logreporter("mathematics","families")
+
local familymap = { [0] =
"regular",
"regular",
@@ -584,8 +615,42 @@ do
end
end
end
+
+ -- families[delimiter_code] = function(pointer)
+ -- if getfield(pointer,"smallfamily") == 0 then
+ -- local a = getattr(pointer,a_mathfamily)
+ -- if a and a > 0 then
+ -- setattr(pointer,a_mathfamily,0)
+ -- if a > 5 then
+ -- -- no bold delimiters in unicode
+ -- a = a - 3
+ -- end
+ -- local fam = getfontoffamily(a)
+ -- local char = getfield(pointer,"smallchar")
+ -- local okay = fontcharacters[fam][char]
+ -- if okay then
+ -- setfield(pointer,"smallfamily",a)
+ -- elseif a > 2 then
+ -- setfield(pointer,"smallfamily",a-3)
+ -- end
+ -- local char = getfield(pointer,"largechar")
+ -- local okay = fontcharacters[fam][char]
+ -- if okay then
+ -- setfield(pointer,"largefamily",a)
+ -- elseif a > 2 then
+ -- setfield(pointer,"largefamily",a-3)
+ -- end
+ -- else
+ -- setfield(pointer,"smallfamily",0)
+ -- setfield(pointer,"largefamily",0)
+ -- end
+ -- end
+ -- end
+
+ -- has become:
+
families[delimiter_code] = function(pointer)
- if getfield(pointer,"small_fam") == 0 then
+ if getfam(pointer) == 0 then
local a = getattr(pointer,a_mathfamily)
if a and a > 0 then
setattr(pointer,a_mathfamily,0)
@@ -593,56 +658,23 @@ do
-- no bold delimiters in unicode
a = a - 3
end
- local char = getfield(pointer,"small_char")
- local okay = fontcharacters[getfontoffamily(a)][char]
- if okay then
- setfield(pointer,"small_fam",a)
- elseif a > 2 then
- setfield(pointer,"small_fam",a-3)
- end
- local char = getfield(pointer,"large_char")
+ local char = getchar(pointer)
local okay = fontcharacters[getfontoffamily(a)][char]
if okay then
- setfield(pointer,"large_fam",a)
+ setfam(pointer,a)
elseif a > 2 then
- setfield(pointer,"large_fam",a-3)
+ setfam(pointer,a-3)
end
else
- setfield(pointer,"small_fam",0)
- setfield(pointer,"large_fam",0)
+ setfam(pointer,0)
end
end
end
- -- will become:
-
- -- families[delimiter_code] = function(pointer)
- -- if getfam(pointer) == 0 then
- -- local a = getattr(pointer,a_mathfamily)
- -- if a and a > 0 then
- -- setattr(pointer,a_mathfamily,0)
- -- if a > 5 then
- -- -- no bold delimiters in unicode
- -- a = a - 3
- -- end
- -- local char = getchar(pointer)
- -- local okay = fontcharacters[getfontoffamily(a)][char]
- -- if okay then
- -- setfam(pointer,a)
- -- elseif a > 2 then
- -- setfam(pointer,a-3)
- -- end
- -- else
- -- setfam(pointer,0)
- -- end
- -- end
- -- end
-
families[mathtextchar_code] = families[mathchar_code]
function handlers.families(head,style,penalties)
processnoads(head,families,"families")
- return true -- not needed
end
end
@@ -651,14 +683,14 @@ end
do
- local a_mathalphabet = privateattribute("mathalphabet")
- local a_mathgreek = privateattribute("mathgreek")
+ local a_mathalphabet = privateattribute("mathalphabet")
+ local a_mathgreek = privateattribute("mathgreek")
- local relocate = { }
+ local relocate = { }
- local remapalphabets = mathematics.remapalphabets
- local fallbackstyleattr = mathematics.fallbackstyleattr
- local setnodecolor = colortracers.set
+ local remapalphabets = mathematics.remapalphabets
+ local fallbackstyleattr = mathematics.fallbackstyleattr
+ local fallbackalphabetattr = mathematics.fallbackalphabetattr
local function report_remap(tag,id,old,new,extra)
if new then
@@ -672,8 +704,7 @@ do
end
local function checked(pointer)
- local char = getchar(pointer)
- local font = getfont(pointer)
+ local char, font = getcharspec(pointer)
local data = fontcharacters[font]
if not data[char] then
local specials = characters.data[char].specials
@@ -702,8 +733,7 @@ do
-- local g, a = getattrs(pointer,a_mathgreek,a_mathalphabet)
-- if not a then a = 0 end
-- if not g then g = 0 end
- local char = getchar(pointer)
- local font = getfont(pointer)
+ local char, font, fam = getcharspec(pointer)
local characters = fontcharacters[font]
if a > 0 or g > 0 then
if a > 0 then
@@ -758,7 +788,6 @@ do
end
end
if not characters[char] then
- local fam = getfam(pointer)
local fnt = getfontoffamily(fam,1)
setchar(pointer,errorchar(font,char))
if font ~= fnt then
@@ -788,7 +817,6 @@ do
function handlers.relocate(head,style,penalties)
processnoads(head,relocate,"relocate")
- return true -- not needed
end
end
@@ -804,16 +832,15 @@ do
render[mathchar_code] = function(pointer)
local attr = getattr(pointer,a_mathrendering)
if attr and attr > 0 then
- local char = getchar(pointer)
+ local char, font = getcharspec(pointer)
local renderset = rendersets[attr]
if renderset then
local newchar = renderset[char]
if newchar then
- local font = getfont(pointer)
local characters = fontcharacters[font]
if characters and characters[newchar] then
setchar(pointer,newchar)
- setattr(pointer,a_exportstatus,char)
+ setattr(pointer,a_exportstatus,char) -- yes or no
end
end
end
@@ -822,7 +849,6 @@ do
function handlers.render(head,style,penalties)
processnoads(head,render,"render")
- return true -- not needed
end
end
@@ -831,57 +857,81 @@ end
-- empty and no larger next will be forced)
--
-- beware: we don't use \delcode but \Udelcode and as such have
--- no large_fam; also, we need to check for subtype and/or
--- small_fam not being 0 because \. sits in 0,0 by default
+-- no largefamily; also, we need to check for subtype and/or
+-- smallfamily not being 0 because \. sits in 0,0 by default
--
-- todo: just replace the character by an ord noad
-- and remove the right delimiter as well
do
+ -- todo: use registerattribute
+
local a_mathsize = privateattribute("mathsize") -- this might move into other fence code
local resize = { }
+ local trace_fences = false registertracker("math.fences", function(v) trace_fences = v end)
+ local report_fences = logreporter("mathematics","fences")
+
resize[fence_code] = function(pointer)
local subtype = getsubtype(pointer)
- if subtype == leftfence_code or subtype == rightfence_code then
+ -- if subtype == leftfence_code or subtype == rightfence_code then
local a = getattr(pointer,a_mathsize)
if a and a > 0 then
local method = div(a,100)
local size = a % 100
setattr(pointer,a_mathsize,0)
- local delimiter = getfield(pointer,"delimiter")
- local chr = getchar(delimiter)
- if chr > 0 then
- local fam = getfam(delimiter)
- local id = getfontoffamily(fam)
- if id > 0 then
- local data = fontdata[id]
- local char = mathematics.big(data,chr,size,method)
- local ht = getheight(pointer)
- local dp = getdepth(pointer)
- if ht == 1 or dp == 1 then -- 1 scaled point is a signal
- local chardata = data.characters[char]
+ local delimiter = getdelimiter(pointer)
+ if delimiter then
+ local oldchar, font, fam = getcharspec(delimiter)
+ if oldchar > 0 and font > 0 then
+ local ht = getheight(pointer)
+ local dp = getdepth(pointer)
+ local data = fontdata[font]
+ local characters = data.characters
+ local olddata = characters[oldchar]
+-- local oldheight = olddata.height or 0
+-- local olddepth = olddata.depth or 0
+ local template = olddata.varianttemplate
+ local newchar = mathematics.big(data,template or oldchar,size,method)
+ local newdata = characters[newchar]
+ local newheight = newdata.height or 0
+ local newdepth = newdata.depth or 0
+ if template then
+-- local ratio = (newheight + newdepth) / (oldheight + olddepth)
+-- setheight(pointer,ratio * oldheight)
+-- setdepth(pointer,ratio * olddepth)
+ setheight(pointer,newheight)
+ setdepth(pointer,newdepth)
+ if not olddata.extensible then
+ -- check this on bonum and antykwa
+ setoptions(pointer,0)
+ end
+ if trace_fences then
+-- report_fences("replacing %C using method %a, size %a, template %C and ratio %.3f",newchar,method,size,template,ratio)
+ report_fences("replacing %C using method %a, size %a and template %C",newchar,method,size,template)
+ end
+ else
+ -- 1 scaled point is a signal, for now
if ht == 1 then
- setheight(pointer,chardata.height)
+ setheight(pointer,newheight)
end
if dp == 1 then
- setdepth(pointer,chardata.depth)
+ setdepth(pointer,newdepth)
+ end
+ setchar(delimiter,newchar)
+ if trace_fences then
+ report_fences("replacing %C by %C using method %a and size %a",oldchar,char,method,size)
end
end
- if trace_fences then
- report_fences("replacing %C by %C using method %a and size %a",chr,char,method,size)
- end
- setchar(delimiter,char)
end
end
end
- end
+ -- end
end
function handlers.resize(head,style,penalties)
processnoads(head,resize,"resize")
- return true -- not needed
end
end
@@ -894,25 +944,24 @@ do
local autofences = { }
local dummyfencechar = 0x2E
- local function makefence(what,char)
- local d = new_delimiter() -- todo: attr
- local f = new_fence() -- todo: attr
+ local function makefence(what,char,template)
+ local d = new_delimiter()
+ local f = new_fence()
if char then
local sym = getnucleus(char)
- local chr = getchar(sym)
- local fam = getfam(sym)
+ local chr, fnt, fam = getcharspec(sym)
if chr == dummyfencechar then
chr = 0
end
setchar(d,chr)
setfam(d,fam)
- flush_node(sym)
+ flushnode(sym)
end
- setattrlist(d,char)
- setattrlist(f,char)
+ setattrlist(d,template)
+ setattrlist(f,template)
setsubtype(f,what)
- setfield(f,"delimiter",d)
- setfield(f,"class",-1) -- tex itself does this, so not fenceclasses[what]
+ setdelimiter(f,d)
+ setclass(f,-1) -- tex itself does this, so not fenceclasses[what]
return f
end
@@ -937,8 +986,9 @@ do
-- f_c or "?"
-- )
local list = new_submlist()
- setsubtype(noad,innernoad_code)
+ setsubtype(noad,fenced_class)
setnucleus(noad,list)
+ setattrlist(list,noad)
setlist(list,f_o)
setlink(f_o,o_next) -- prev of list is nil
setlink(c_prev,f_c) -- next of list is nil
@@ -950,9 +1000,9 @@ do
local midl = middle[current]
local next = getnext(current)
if midl then
- local fence = makefence(middlefence_code,current)
+ local fence = makefence(middlefence_code,current,current)
setnucleus(current)
- flush_node(current)
+ flushnode(current)
middle[current] = nil
-- replace_node
setlink(prev,fence,next)
@@ -974,11 +1024,11 @@ do
return close
else
local c_prev, c_next = getboth(close)
- local f_o = makefence(leftfence_code,open)
- local f_c = makefence(rightfence_code,close)
+ local f_o = makefence(leftfence_code,open,open)
+ local f_c = makefence(rightfence_code,close,close)
makelist(middle,open,f_o,o_next,c_prev,f_c)
setnucleus(close)
- flush_node(close)
+ flushnode(close)
-- open is now a list
setlink(open,c_next)
return open
@@ -986,8 +1036,8 @@ do
end
local function convert_open(open,last,middle) -- last is really last (final case)
- local f_o = makefence(leftfence_code,open)
- local f_c = makefence(rightfence_code)
+ local f_o = makefence(leftfence_code,open,open)
+ local f_c = makefence(rightfence_code,nil,open)
local o_next = getnext(open)
makelist(middle,open,f_o,o_next,last,nil)
-- open is now a list
@@ -996,12 +1046,12 @@ do
end
local function convert_close(first,close,middle)
- local f_o = makefence(leftfence_code)
+ local f_o = makefence(leftfence_code,nil,close)
local f_c = makefence(rightfence_code,close)
local c_prev = getprev(close)
local f_next = getnext(first)
- makelist(middle, close, f_o,f_next,c_prev,f_c)
- -- close is now a list
+ makelist(middle,close,f_o,f_next,c_prev,f_c)
+ -- close is now a list : inner but should be fenced
if c_prev ~= first then
setlink(first,close)
end
@@ -1010,7 +1060,7 @@ do
local stacks = setmetatableindex("table")
- -- 1=open 2=close 3=middle 4=both
+ -- 1=open 2=close 3=middle 4=both : todo check both
local function processfences(pointer,n,parent)
local current = pointer
@@ -1205,7 +1255,8 @@ do
if start_super == stop_super then
setsup(pointer,getnucleus(start_super))
else
- local list = new_submlist() -- todo attr
+ local list = new_submlist()
+ setattrlist(list,pointer)
setlist(list,start_super)
setsup(pointer,list)
end
@@ -1215,22 +1266,11 @@ do
setnext(stop_super)
end
if start_sub then
-
--- if mode == "sub" then
--- local sup = getsup(pointer)
--- if sup and not getsub(pointer) then
--- local nxt = getnext(pointer)
--- local new = new_noad(pointer)
--- setnucleus(new,new_submlist())
--- setlink(pointer,new,nxt)
--- pointer = new
--- end
--- end
-
if start_sub == stop_sub then
setsub(pointer,getnucleus(start_sub))
else
- local list = new_submlist() -- todo attr
+ local list = new_submlist()
+ setattrlist(list,pointer)
setlist(list,start_sub)
setsub(pointer,list)
end
@@ -1246,7 +1286,6 @@ do
function handlers.unscript(head,style,penalties)
processnoads(head,unscript,"unscript")
- return true -- not needed
end
end
@@ -1257,20 +1296,26 @@ do
local enabled = false
local a_unstack = privateattribute("mathunstack")
+ local trace_unstacking = false registertracker("math.unstack", function(v) trace_unstacking = v end)
+ local report_unstacking = logreporter("mathematics","unstack")
+
unstack[noad_code] = function(pointer)
- if getattr(pointer,a_unstack) then
+ local a = getattr(pointer,a_unstack)
+ if a then
local sup = getsup(pointer)
local sub = getsub(pointer)
if sup and sub then
-- if trace_unstacking then
-- report_unstacking() -- todo ... what to show ...
-- end
- local nxt = getnext(pointer)
- local new = new_noad(pointer)
- setnucleus(new,new_submlist())
- setsub(pointer)
- setsub(new,sub)
- setlink(pointer,new,nxt)
+ if a == 1 then
+ a = tex.noadoptioncodes.shiftedsubscript
+ elseif a == 2 then
+ a = tex.noadoptioncodes.shiftedsuperscript
+ else
+ a = 0
+ end
+ setoptions(pointer,getoptions(pointer) | a)
end
end
end
@@ -1278,7 +1323,7 @@ do
function handlers.unstack(head,style,penalties)
if enabled then
processnoads(head,unstack,"unstack")
- return true -- not needed
+
end
end
@@ -1325,10 +1370,13 @@ end
do
+ local trace_alternates = false registertracker("math.alternates", function(v) trace_alternates = v end)
+ local report_alternates = logreporter("mathematics","alternates")
+
local last = 0
local known = setmetatableindex(function(t,k)
- local v = bor(0,2^last)
+ local v = 0 | 2^last
t[k] = v
last = last + 1
return v
@@ -1340,68 +1388,71 @@ do
}
local function initializemathalternates(tfmdata)
- local goodies = tfmdata.goodies
- local autolist = defaults -- table.copy(defaults)
+ if use_math_goodies then
- local function setthem(newalternates)
- local resources = tfmdata.resources -- was tfmdata.shared
- local mathalternates = resources.mathalternates
- local alternates, attributes, registered, presets
- if mathalternates then
- alternates = mathalternates.alternates
- attributes = mathalternates.attributes
- registered = mathalternates.registered
- else
- alternates, attributes, registered = { }, { }, { }
- mathalternates = {
- attributes = attributes,
- alternates = alternates,
- registered = registered,
- presets = { },
- resets = { },
- hashes = setmetatableindex("table")
- }
- resources.mathalternates = mathalternates
- end
- --
- for name, data in sortedhash(newalternates) do
- if alternates[name] then
- -- ignore
+ local goodies = tfmdata.goodies
+ local autolist = defaults -- table.copy(defaults)
+
+ local function setthem(newalternates)
+ local resources = tfmdata.resources -- was tfmdata.shared
+ local mathalternates = resources.mathalternates
+ local alternates, attributes, registered, presets
+ if mathalternates then
+ alternates = mathalternates.alternates
+ attributes = mathalternates.attributes
+ registered = mathalternates.registered
else
- local attr = known[name]
- attributes[attr] = data
- alternates[name] = attr
- registered[#registered+1] = attr
+ alternates, attributes, registered = { }, { }, { }
+ mathalternates = {
+ attributes = attributes,
+ alternates = alternates,
+ registered = registered,
+ presets = { },
+ resets = { },
+ hashes = setmetatableindex("table")
+ }
+ resources.mathalternates = mathalternates
+ end
+ --
+ for name, data in sortedhash(newalternates) do
+ if alternates[name] then
+ -- ignore
+ else
+ local attr = known[name]
+ attributes[attr] = data
+ alternates[name] = attr
+ registered[#registered+1] = attr
+ end
end
end
- end
- if goodies then
- local done = { }
- for i=1,#goodies do
- -- first one counts
- -- we can consider sharing the attributes ... todo (only once scan)
- local mathgoodies = goodies[i].mathematics
- local alternates = mathgoodies and mathgoodies.alternates
- if alternates then
- if trace_goodies then
- report_goodies("loading alternates for font %a",tfmdata.properties.name)
- end
- for k, v in next, autolist do
- if not alternates[k] then
- alternates[k] = v
+ if goodies then
+ local done = { }
+ for i=1,#goodies do
+ -- first one counts
+ -- we can consider sharing the attributes ... todo (only once scan)
+ local mathgoodies = goodies[i].mathematics
+ local alternates = mathgoodies and mathgoodies.alternates
+ if alternates then
+ if trace_goodies then
+ report_goodies("loading alternates for font %a",tfmdata.properties.name)
end
+ for k, v in next, autolist do
+ if not alternates[k] then
+ alternates[k] = v
+ end
+ end
+ setthem(alternates)
+ return
end
- setthem(alternates)
- return
end
end
- end
- if trace_goodies then
- report_goodies("loading default alternates for font %a",tfmdata.properties.name)
+ if trace_goodies then
+ report_goodies("loading default alternates for font %a",tfmdata.properties.name)
+ end
+ setthem(autolist)
end
- setthem(autolist)
end
@@ -1424,6 +1475,7 @@ do
local fontresources = fonts.hashes.resources
local function getalternate(fam,tag,current)
+ -- fam is always zero, so we assume a very consistent setup
local resources = fontresources[getfontoffamily(fam)]
local attribute = unsetvalue
if resources then
@@ -1443,7 +1495,7 @@ do
else
local a = alternates[s] -- or known[s]
if a then
- attribute = bor(attribute,a)
+ attribute = attribute | a
end
end
end
@@ -1458,32 +1510,34 @@ do
end
end
if attribute > 0 and current and current > 0 then
- return bor(current,attribute)
+ return current | attribute
else
return attribute
end
end
- local function presetalternate(fam,tag)
- texsetattribute(a_mathalternate,getalternate(fam,tag))
- end
-
implement {
- name = "presetmathalternate",
- actions = presetalternate,
- arguments = { "integer", "string" }
+ name = "presetmathfontalternate",
+ arguments = "argument",
+ public = true,
+ protected = true,
+ actions = function(tag)
+ if texgetmode() == mathmode_code then
+ texsetattribute(a_mathalternate,getalternate(0,tag))
+ end
+ end,
}
- local function setalternate(fam,tag)
- local a = texgetattribute(a_mathalternate)
- local v = getalternate(fam,tag,a)
- texsetattribute(a_mathalternate,v)
- end
-
implement {
- name = "setmathalternate",
- actions = setalternate,
- arguments = { "integer", "string" }
+ name = "setmathfontalternate",
+ arguments = "argument",
+ public = true,
+ protected = true,
+ actions = function(tag)
+ if texgetmode() == mathmode_code then
+ texsetattribute(a_mathalternate,getalternate(0,tag,texgetattribute(a_mathalternate)))
+ end
+ end,
}
alternate[mathchar_code] = function(pointer) -- slow
@@ -1500,7 +1554,7 @@ do
local hashes = mathalternates.hashes
for i=1,#registered do
local r = registered[i]
- if band(a,r) ~= 0 then
+ if (a & r) ~= 0 then
local char = getchar(pointer)
local alt = hashes[i][char]
if alt == nil then
@@ -1515,7 +1569,7 @@ do
if trace_alternates then
local what = attributes[r]
report_alternates("alternate %a, value %a, replacing glyph %U by glyph %U",
- tostring(what.feature),tostring(what.value),getchar(pointer),alt)
+ tostring(what.feature),tostring(what.value),char,alt)
end
setchar(pointer,alt)
break
@@ -1527,9 +1581,10 @@ do
end
end
+ alternate[delimiter_code] = alternate[mathchar_code]
+
function handlers.alternates(head,style,penalties)
processnoads(head,alternate,"alternate")
- return true -- not needed
end
end
@@ -1549,130 +1604,160 @@ end
-- some juggling that we want to avoid but we need to do something here (in fact, we could
-- better fix the width of the character)
-do
-
- local a_mathitalics = privateattribute("mathitalics")
-
- local italics = { }
- local default_factor = 1/20
-
- local setcolor = colortracers.set
- local resetcolor = colortracers.reset
- local italic_kern = new_kern
-
- local c_positive_d = "trace:dg"
- local c_negative_d = "trace:dr"
-
- local function insert_kern(current,kern)
- local sub = new_submlist() -- todo: attr
- local noad = new_noad() -- todo: attr
- setlist(sub,kern)
- setnext(kern,noad)
- setnucleus(noad,current)
- return sub
- end
-
- registertracker("math.italics.visualize", function(v)
- if v then
- italic_kern = function(k)
- local n = new_kern(k) -- todo: attr
- set_visual(n,"italic")
- return n
- end
- else
- italic_kern = new_kern
- end
- end)
-
- local function getcorrection(method,font,char) -- -- or character.italic -- (this one is for tex)
-
- local visual = chardata[char].visual
-
- if method == 1 then
- -- check on state
- local italics = fontitalics[font]
- if italics then
- local character = fontcharacters[font][char]
- if character then
- local correction = character.italic
- if correction and correction ~= 0 then
- return correction, visual
- end
- end
- end
- elseif method == 2 then
- -- no check
- local character = fontcharacters[font][char]
- if character then
- local correction = character.italic
- if correction and correction ~= 0 then
- return correction, visual
- end
- end
- elseif method == 3 then
- -- check on visual
- if visual == "it" or visual == "bi" then
- local character = fontcharacters[font][char]
- if character then
- local correction = character.italic
- if correction and correction ~= 0 then
- return correction, visual
- end
- end
- end
- elseif method == 4 then
- -- combination of 1 and 3
- local italics = fontitalics[font]
- if italics and (visual == "it" or visual == "bi") then
- local character = fontcharacters[font][char]
- if character then
- local correction = character.italic
- if correction and correction ~= 0 then
- return correction, visual
- end
- end
- end
- end
-
- end
-
- italics[mathchar_code] = function(pointer,what,n,parent)
- local method = getattr(pointer,a_mathitalics)
- if method and method > 0 and method < 100 then
- local char = getchar(pointer)
- local font = getfont(pointer)
- local correction, visual = getcorrection(method,font,char)
- if correction and correction ~= 0 then
- local next_noad = getnext(parent)
- if not next_noad then
- if n == 1 then
- -- only at the outer level .. will become an option (always,endonly,none)
- if trace_italics then
- report_italics("method %a, flagging italic correction %p between %C and end math",method,correction,char)
- end
- if correction > 0 then
- correction = correction + 100
- else
- correction = correction - 100
- end
- correction = round(correction)
- setattr(pointer,a_mathitalics,correction)
- setattr(parent,a_mathitalics,correction)
- return -- so no reset later on
- end
- end
- end
- end
- setattr(pointer,a_mathitalics,unsetvalue)
- end
+-- do
+--
+-- local a_mathitalics = privateattribute("mathitalics")
+--
+-- local trace_italics = false registertracker("math.italics", function(v) trace_italics = v end)
+-- local report_italics = logreporter("mathematics","italics")
+--
+-- local italics = { }
+--
+-- local function getcorrection(method,font,char) -- -- or character.italic -- (this one is for tex)
+--
+-- local visual = chardata[char].visual
+--
+-- if method == 1 then
+-- -- check on state
+-- local italics = fontitalics[font]
+-- if italics then
+-- local character = fontcharacters[font][char]
+-- if character then
+-- local correction = character.italic
+-- if correction and correction ~= 0 then
+-- return correction, visual
+-- end
+-- end
+-- end
+-- elseif method == 2 then
+-- -- no check
+-- local character = fontcharacters[font][char]
+-- if character then
+-- local correction = character.italic
+-- if correction and correction ~= 0 then
+-- return correction, visual
+-- end
+-- end
+-- elseif method == 3 then
+-- -- check on visual
+-- if visual == "it" or visual == "bi" then
+-- local character = fontcharacters[font][char]
+-- if character then
+-- local correction = character.italic
+-- if correction and correction ~= 0 then
+-- return correction, visual
+-- end
+-- end
+-- end
+-- elseif method == 4 then
+-- -- combination of 1 and 3
+-- local italics = fontitalics[font]
+-- if italics and (visual == "it" or visual == "bi") then
+-- local character = fontcharacters[font][char]
+-- if character then
+-- local correction = character.italic
+-- if correction and correction ~= 0 then
+-- return correction, visual
+-- end
+-- end
+-- end
+-- end
+--
+-- end
+--
+-- -- basically the engine should set it
+--
+-- italics[mathchar_code] = function(pointer,what,n,parent)
+-- local method = getattr(pointer,a_mathitalics)
+-- if method and method > 0 and method < 100 then
+-- local char, font = getcharspec(pointer)
+-- local correction, visual = getcorrection(method,font,char)
+-- if correction and correction ~= 0 then
+-- local next_noad = getnext(parent)
+-- if not next_noad then
+-- if n == 1 then
+-- -- only at the outer level .. will become an option (always,endonly,none)
+-- if trace_italics then
+-- report_italics("method %a, flagging italic correction %p between %C and end math",method,correction,char)
+-- end
+-- if correction > 0 then
+-- correction = correction + 100
+-- else
+-- correction = correction - 100
+-- end
+-- correction = round(correction)
+-- setattr(pointer,a_mathitalics,correction)
+-- setattr(parent,a_mathitalics,correction)
+-- return -- so no reset later on
+-- end
+-- end
+-- end
+-- end
+-- setattr(pointer,a_mathitalics,unsetvalue)
+-- end
+--
+-- function handlers.italics(head,style,penalties)
+-- processnoads(head,italics,"italics")
+-- end
+--
+-- local enable = function()
+-- enableaction("math", "noads.handlers.italics")
+-- if trace_italics then
+-- report_italics("enabling math italics")
+-- end
+-- -- we enable math (unless already enabled elsewhere)
+-- typesetters.italics.enablemath()
+-- enable = false
+-- end
+--
+-- -- best do this only on math mode (less overhead)
+--
+-- function mathematics.setitalics(name)
+-- if enable then
+-- enable()
+-- end
+-- texsetattribute(a_mathitalics,name and name ~= v_reset and tonumber(name) or unsetvalue) -- maybe also v_none
+-- end
+--
+-- function mathematics.getitalics(name)
+-- if enable then
+-- enable()
+-- end
+-- context(name and name ~= v_reset and tonumber(name) or unsetvalue)
+-- end
+--
+-- function mathematics.resetitalics()
+-- texsetattribute(a_mathitalics,unsetvalue)
+-- end
+--
+-- implement {
+-- name = "initializemathitalics",
+-- actions = enable,
+-- onlyonce = true,
+-- }
+--
+-- implement {
+-- name = "setmathitalics",
+-- actions = mathematics.setitalics,
+-- arguments = "string",
+-- }
+--
+-- implement {
+-- name = "getmathitalics",
+-- actions = mathematics.getitalics,
+-- arguments = "string",
+-- }
+--
+-- implement {
+-- name = "resetmathitalics",
+-- actions = mathematics.resetitalics
+-- }
+--
+-- end
- function handlers.italics(head,style,penalties)
- processnoads(head,italics,"italics")
- return true -- not needed
- end
+do
local enable = function()
- enableaction("math", "noads.handlers.italics")
if trace_italics then
report_italics("enabling math italics")
end
@@ -1681,49 +1766,12 @@ do
enable = false
end
- -- best do this only on math mode (less overhead)
-
- function mathematics.setitalics(name)
- if enable then
- enable()
- end
- texsetattribute(a_mathitalics,name and name ~= v_reset and tonumber(name) or unsetvalue) -- maybe also v_none
- end
-
- function mathematics.getitalics(name)
- if enable then
- enable()
- end
- context(name and name ~= v_reset and tonumber(name) or unsetvalue)
- end
-
- function mathematics.resetitalics()
- texsetattribute(a_mathitalics,unsetvalue)
- end
-
implement {
name = "initializemathitalics",
actions = enable,
onlyonce = true,
}
- implement {
- name = "setmathitalics",
- actions = mathematics.setitalics,
- arguments = "string",
- }
-
- implement {
- name = "getmathitalics",
- actions = mathematics.getitalics,
- arguments = "string",
- }
-
- implement {
- name = "resetmathitalics",
- actions = mathematics.resetitalics
- }
-
end
do
@@ -1741,6 +1789,9 @@ do
local a_kernpairs = privateattribute("mathkernpairs")
local kernpairs = { }
+ local trace_kernpairs = false registertracker("math.kernpairs", function(v) trace_kernpairs = v end)
+ local report_kernpairs = logreporter("mathematics","kernpairs")
+
local function enable()
enableaction("math", "noads.handlers.kernpairs")
if trace_kernpairs then
@@ -1767,28 +1818,29 @@ do
kernpairs[mathchar_code] = function(pointer,what,n,parent)
if getattr(pointer,a_kernpairs) == 1 then
- local font = getfont(pointer)
- local list = hash[font]
+ local first, firstfont = getcharspec(pointer)
+ local list = hash[firstfont]
if list then
- local first = getchar(pointer)
local found = list[first]
if found then
- local next = getnext(parent)
- if next and getid(next) == noad_code then
- pointer = getnucleus(next)
- if pointer then
- if getfont(pointer) == font then
- local second = getchar(pointer)
- local kern = found[second]
+ local next = isnext(parent,noad_code)
+ if next then
+-- pointer = getnucleus(next)
+-- if pointer then
+ local second, secondfont = getcharspec(pointer)
+ if secondfont == firstfont then
+ local kern = found[second]
if kern then
- kern = kern * fonts.hashes.parameters[font].hfactor
+ kern = kern * fontparameters[firstfont].hfactor
if trace_kernpairs then
report_kernpairs("adding %p kerning between %C and %C",kern,first,second)
end
- setlink(parent,new_kern(kern),getnext(parent)) -- todo: attr
+ kern = new_kern(kern)
+ setlink(parent,kern,getnext(parent))
+ setattrlist(kern,pointer)
end
end
- end
+-- end
end
end
end
@@ -1796,65 +1848,311 @@ do
end
function handlers.kernpairs(head,style,penalties)
- processnoads(head,kernpairs,"kernpairs")
- return true -- not needed
+ if use_math_goodies then
+ processnoads(head,kernpairs,"kernpairs")
+ end
+ end
+
+end
+
+do
+
+ local a_numbers = privateattribute("mathnumbers")
+ local a_spacing = privateattribute("mathspacing")
+ local a_fencing = privateattribute("mathfencing")
+
+ local numbers = { }
+ local spacing = { }
+ local fencing = { }
+
+ local separators = {
+ [0x2E] = { 0x2E, 0x2C, 0x002E, 0x002C, 0x2008, 0x2008 }, -- . -- punctuationspace
+ [0x2C] = { 0x2C, 0x2E, 0x2008, 0x2008, 0x002E, 0x002C }, -- ,
+ }
+
+ local digits = {
+ [0x30] = true, [0x31] = true,
+ [0x32] = true, [0x33] = true,
+ [0x34] = true, [0x35] = true,
+ [0x36] = true, [0x37] = true,
+ [0x38] = true, [0x39] = true,
+ }
+
+ local snoloc = {
+ [punctuation_class] = 0x003A,
+ [relation_class] = 0x2236,
+ }
+
+ local colons = {
+ [0x003A] = snoloc,
+ [0x2236] = snoloc,
+ }
+
+ local middles = {
+ [0x007C] = true,
+ [0x2016] = true,
+ [0x2980] = true,
+ }
+
+ local singles = {
+ 0x007C,
+ 0x2016,
+ 0x2980,
+ }
+
+ local followedbyspace_code = tex.noadoptioncodes.followedbyspace
+
+ local function followedbyspace(n)
+ return n and (getoptions(n) & followedbyspace_code == followedbyspace_code)
+ end
+
+ local function followbyspace(n)
+ setoptions(n,getoptions(n) | followedbyspace_code)
+ end
+
+ numbers[mathchar_code] = function(pointer,what,n,parent)
+ local alternative = getattr(pointer,a_numbers)
+ if alternative then
+ local oldchar = getcharspec(pointer)
+ local found = separators[oldchar]
+ if found then
+ local prev, next = isboth(parent,noad_code)
+ if prev and next then
+ -- local lc = getcharspec(getnucleus(prev))
+ local lc = getcharspec(prev)
+ if digits[lc] then
+ -- local rc = getcharspec(getnucleus(next))
+ local rc = getcharspec(next)
+ if digits[rc] then
+ local newchar = found[alternative]
+ local class = followedbyspace(parent) and punctuation_class or ordinary_class
+ setsubtype(parent,class)
+ if newchar ~= oldchar then
+ setchar(pointer,newchar)
+ end
+ -- if trace_numbers then
+ -- report_numbers("digit separator digit")
+ -- end
+ end
+ end
+ end
+ return
+ end
+ found = digits[oldchar]
+ if found then
+ if followedbyspace(parent) then
+ local next = isnext(parent,noad_code)
+ if next then
+ -- local rc = getcharspec(getnucleus(next))
+ local rc = getcharspec(next)
+ if rc and digits[rc] then
+ local n = new_noad(numbergroup_class)
+ local s = new_submlist()
+ setnucleus(n,s)
+ setattrlist(n,pointer)
+ setattrlist(s,pointer)
+ setlink(parent,n,next)
+ -- if trace_numbers then
+ -- report_numbers("digit spacer digit")
+ -- end
+ end
+ end
+ end
+ return
+ end
+ end
+ end
+
+ spacing[mathchar_code] = function(pointer,what,n,parent)
+ if getattr(pointer,a_spacing) then
+ local oldchar = getcharspec(pointer)
+ local found = colons[oldchar]
+ if found then
+ local prev = isprev(parent,noad_code)
+ if prev then
+ local class = followedbyspace(prev) and relation_class or punctuation_class
+ local newchar = found[class]
+ setsubtype(parent,class)
+ if newchar ~= oldchar then
+ setchar(pointer,newchar)
+ end
+ -- if trace_spacing then
+ -- report_spacinf("spacer colon")
+ -- end
+ end
+ return
+ end
+ end
+ end
+
+ -- we can share code, see earlier
+
+ local function makefence(chr,fam,subtype,class,template)
+ local f = new_fence()
+ local d = new_delimiter()
+ setchar(d,chr)
+ setfam(d,fam)
+ setattrlist(d,template)
+ setattrlist(f,template)
+ setsubtype(f,subtype)
+ setdelimiter(f,d)
+ setclass(f,class) -- tex itself does this, so not fenceclasses[what]
+ return f
+ end
+
+ -- we loose scripts so maybe also copy these
+
+ fencing[mathchar_code] = function(pointer,what,n,parent)
+ if getattr(pointer,a_fencing) and pointer == getnucleus(parent) then
+ local oldchar = getcharspec(pointer)
+ local found = middles[oldchar]
+ if found then
+ local prev, next = getboth(parent)
+ if getcharspec(next) == oldchar and not followedbyspace(parent) then
+ local nextnext = getnext(next)
+ -- we need to preserve the followed property
+ if getcharspec(nextnext) == oldchar and not followedbyspace(next) then
+ oldchar = singles[3]
+ prev, parent = nuts.remove(prev,parent,true)
+ prev, parent = nuts.remove(prev,parent,true)
+ else
+ oldchar = singles[2]
+ prev, parent = nuts.remove(prev,parent,true)
+ end
+ next = getnext(parent)
+ pointer = getnucleus(parent)
+ setchar(pointer,oldchar)
+ end
+ if followedbyspace(prev) and followedbyspace(parent) then
+ local chr, fnt, fam = getcharspec(pointer)
+ local f1 = makefence(0,0,0,0,pointer)
+ local f2 = makefence(chr,fam,middlefence_code,middle_class,pointer)
+ setlink(prev,f1,f2,next)
+ flushnode(parent)
+followbyspace(f1)
+followbyspace(f2)
+ return true, f2
+ else
+ return true, parent
+ end
+ end
+ end
end
+ -- numbers
+
+ function handlers.numbers(head,style,penalties)
+ processnoads(head,numbers,"numbers")
+ end
+
+ local enable = function()
+ enableaction("math", "noads.handlers.numbers")
+ -- if trace_numbers then
+ -- report_numbers("enabling math numbers")
+ -- end
+ enable = false
+ end
+
+ implement {
+ name = "initializemathnumbers",
+ actions = enable,
+ onlyonce = true,
+ }
+
+ -- spacing
+
+ function handlers.spacing(head,style,penalties)
+ processnoads(head,spacing,"spacing")
+ end
+
+ local enable = function()
+ enableaction("math", "noads.handlers.spacing")
+ -- if trace_spacing then
+ -- report_spacing("enabling math spacing")
+ -- end
+ enable = false
+ end
+
+ implement {
+ name = "initializemathspacing",
+ actions = enable,
+ onlyonce = true,
+ }
+
+ -- fences
+
+ function handlers.fencing(head,style,penalties)
+ processnoads(head,fencing,"fencing")
+ end
+
+ local enable = function()
+ enableaction("math", "noads.handlers.fencing")
+ -- if trace_fencing then
+ -- report_fencing("enabling math fencing")
+ -- end
+ enable = false
+ end
+
+ implement {
+ name = "initializemathfencing",
+ actions = enable,
+ onlyonce = true,
+ }
+
end
-- primes and such
do
- -- is validpair stil needed?
+ -- is validpair stil needed? why not always now?
local a_mathcollapsing = privateattribute("mathcollapsing")
local collapse = { }
local mathlists = characters.mathlists
local validpair = {
- [ordnoad_code] = true,
- [opdisplaylimitsnoad_code] = true,
- [oplimitsnoad_code] = true,
- [opnolimitsnoad_code] = true,
- [binnoad_code] = true, -- new
- [relnode_code] = true,
- [opennoad_code] = true, -- new
- [closenoad_code] = true, -- new
- [punctnoad_code] = true, -- new
- [innernoad_code] = false,
- [undernoad_code] = false,
- [overnoad_code] = false,
- [vcenternoad_code] = false,
- [ordlimitsnoad_code] = true,
+ [ordinary_class] = true,
+ [operator_class] = true,
+ [binary_class] = true, -- new
+ [relation_class] = true,
+ [open_class] = true, -- new
+ [middle_class] = true, -- new
+ [close_class] = true, -- new
+ [punctuation_class] = true, -- new
+ [fraction_class] = true,
+ [accent_class] = true,
}
local reported = setmetatableindex("table")
- collapse[mathchar_code] = function(pointer,what,n,parent)
+ mathlists[39] = { [39] = { [39] = { enforced = 0x2034, [39] = { enforced = 0x2057 } }, enforced = 0x2033 }, enforced = 0x2032 }
+ mathlists[96] = { [96] = { [96] = { enforced = 0x2037 }, enforced = 0x2036 }, enforced = 0x2035 }
+ collapse[mathchar_code] = function(pointer,what,n,parent)
if parent and mathlists[getchar(pointer)] then
local found, last, lucleus, lsup, lsub, category
local tree = mathlists
local current = parent
while current and validpair[getsubtype(current)] do
- local nucleus = getnucleus(current) -- == pointer
- local sub = getsub(current)
- local sup = getsup(current)
- local char = getchar(nucleus)
+ local nucleus, prime, sup, sub = getnucleus(current,true)
+ local char = getchar(nucleus)
if char then
local match = tree[char]
if match then
local method = getattr(current,a_mathcollapsing)
if method and method > 0 and method <= 3 then
+ local enforced = match.enforced
local specials = match.specials
local mathlist = match.mathlist
local ligature
- if method == 1 then
- ligature = specials
+ if method == 0 then
+ ligature = enforced
+ elseif method == 1 then
+ ligature = enforced or specials
elseif method == 2 then
- ligature = specials or mathlist
+ ligature = enforced or specials or mathlist
else -- 3
- ligature = mathlist or specials
+ ligature = enforced or mathlist or specials
end
if ligature then
category = mathlist and "mathlist" or "specials"
@@ -1905,7 +2203,7 @@ do
end
while c ~= l do
local n = getnext(c)
- flush_node(c)
+ flushnode(c)
c = n
end
setlink(parent,l)
@@ -1915,7 +2213,6 @@ do
function noads.handlers.collapse(head,style,penalties)
processnoads(head,collapse,"collapse")
- return true -- not needed
end
local enable = function()
@@ -1927,135 +2224,73 @@ do
end
implement {
- name = "initializemathcollapsing",
- actions = enable,
- onlyonce = true,
+ name = "initializemathcollapsing",
+ actions = enable,
+ onlyonce = true,
}
end
do
- -- inner under over vcenter
local fixscripts = { }
- local movesub = {
+
+ local primes = {
-- primes
- [0x2032] = 0xFE932,
- [0x2033] = 0xFE933,
- [0x2034] = 0xFE934,
- [0x2057] = 0xFE957,
+ [0x2032] = true,
+ [0x2033] = true,
+ [0x2034] = true,
+ [0x2057] = true,
-- reverse primes
- [0x2035] = 0xFE935,
- [0x2036] = 0xFE936,
- [0x2037] = 0xFE937,
+ [0x2035] = true,
+ [0x2036] = true,
+ [0x2037] = true,
}
- mathematics.virtualize(movesub)
-
- local options_supported = tokens.defined("Unosuperscript")
-
- local function fixsupscript(parent,current,current_char,new_char)
- if new_char ~= current_char and new_char ~= true then
- setchar(current,new_char)
- if trace_fixing then
- report_fixing("fixing subscript, replacing superscript %U by %U",current_char,new_char)
- end
- else
- if trace_fixing then
- report_fixing("fixing subscript, superscript %U",current_char)
- end
- end
- if options_supported then
- setfield(parent,"options",0x08+0x22)
- end
- end
-
- -- local function movesubscript(parent,current_nucleus,oldchar,newchar)
- -- local prev = getprev(parent)
- -- if prev and getid(prev) == noad_code then
- -- local psup = getsup(prev)
- -- local psub = getsub(prev)
- -- if not psup and not psub then
- -- fixsupscript(prev,current_nucleus,oldchar,newchar)
- -- local nucleus = getnucleus(parent)
- -- local sub = getsub(parent)
- -- setsup(prev,nucleus)
- -- setsub(prev,sub)
- -- local dummy = copy_node(nucleus)
- -- setchar(dummy,0)
- -- setnucleus(parent,dummy)
- -- setsub(parent)
- -- elseif not psup then
- -- fixsupscript(prev,current_nucleus,oldchar,newchar)
- -- local nucleus = getnucleus(parent)
- -- setsup(prev,nucleus)
- -- local dummy = copy_node(nucleus)
- -- setchar(dummy,0)
- -- setnucleus(parent,dummy)
- -- end
- -- end
- -- end
-
- local function move_none_none(parent,prev,nuc,oldchar,newchar)
- fixsupscript(prev,nuc,oldchar,newchar)
- local sub = getsub(parent)
- setsup(prev,nuc)
- setsub(prev,sub)
- local dummy = copy_node(nuc)
- setchar(dummy,0)
- setnucleus(parent,dummy)
- setsub(parent)
- end
+ local fixable = {
+ [noad_code] = true,
+ [accent_code] = true,
+ [radical_code] = true,
+ [fraction_code] = true,
+ }
- local function move_none_psub(parent,prev,nuc,oldchar,newchar)
- fixsupscript(prev,nuc,oldchar,newchar)
- setsup(prev,nuc)
- local dummy = copy_node(nuc)
- setchar(dummy,0)
- setnucleus(parent,dummy)
- end
+ -- [prime|sub|sup]first
- fixscripts[mathchar_code] = function(pointer,what,n,parent,nested) -- todo: switch to turn in on and off
+ fixscripts[mathchar_code] = function(pointer,what,n,parent,nested) -- todo: switch to turn it on and off
if parent then
- local oldchar = getchar(pointer)
- local newchar = movesub[oldchar]
- if newchar then
+ local char = getchar(pointer)
+ if char and primes[char] then
local nuc = getnucleus(parent)
if pointer == nuc then
- local sub = getsub(pointer)
- local sup = getsup(pointer)
- if sub then
- if sup then
- -- print("[char] sub sup")
- else
- -- print("[char] sub ---")
+ local prev = getprev(parent)
+ if prev and fixable[getid(prev)] then
+ local prevsup = getsup(prev)
+ local prevsub = getsub(prev)
+ local primesup = getsup(parent)
+ local primesub = getsub(parent)
+ setfield(prev,"scriptorder",prevsub and 2 or 1) -- sub first, then prime
+ if primesup and not prevsup then
+ setsup(prev,primesup)
+ primesup = nil
end
- elseif sup then
- -- print("[char] --- sup")
- else
- local prev = getprev(parent)
- if prev and getid(prev) == noad_code then
- local psub = getsub(prev)
- local psup = getsup(prev)
- if psub then
- if psup then
- -- print("sub sup [char] --- ---")
- else
- -- print("sub --- [char] --- ---")
- move_none_psub(parent,prev,nuc,oldchar,newchar)
- end
- elseif psup then
- -- print("--- sup [char] --- ---")
- else
- -- print("[char] --- ---")
- move_none_none(parent,prev,nuc,oldchar,newchar)
- end
- else
- -- print("no prev [char]")
+ if primesub and not prevsub then
+ setsub(prev,primesub)
+ primesub = nil
+ end
+ setprime(prev,nuc)
+ setnucleus(parent)
+ if not primesup then
+ setsup(parent)
+ end
+ if not primesub then
+ setsub(parent)
+ end
+ if not (primesup or primesub) then
+ setlink(prev,getnext(parent))
+ flushnode(parent)
+ return true, prev, prev
end
end
- else
- -- print("[char]")
end
end
end
@@ -2063,95 +2298,136 @@ do
function noads.handlers.fixscripts(head,style,penalties)
processnoads(head,fixscripts,"fixscripts")
- return true -- not needed
end
end
--- variants
+-- variants (upgraded for script too)
do
- local variants = { }
- local validvariants = { -- fast check on valid
- [0x2229] = 0xFE00, [0x222A] = 0xFE00,
- [0x2268] = 0xFE00, [0x2269] = 0xFE00,
- [0x2272] = 0xFE00, [0x2273] = 0xFE00,
- [0x228A] = 0xFE00, [0x228B] = 0xFE00,
- [0x2293] = 0xFE00, [0x2294] = 0xFE00,
- [0x2295] = 0xFE00,
- [0x2297] = 0xFE00,
- [0x229C] = 0xFE00,
- [0x22DA] = 0xFE00, [0x22DB] = 0xFE00,
- [0x2A3C] = 0xFE00, [0x2A3D] = 0xFE00,
- [0x2A9D] = 0xFE00, [0x2A9E] = 0xFE00,
- [0x2AAC] = 0xFE00, [0x2AAD] = 0xFE00,
- [0x2ACB] = 0xFE00, [0x2ACC] = 0xFE00,
- }
+ local variants = { }
+ local chardata = characters.data
+ local a_variant = privateattribute("mathvariant")
+
+ local trace_variants = false registertracker("math.variants", function(v) trace_variants = v end)
+ local report_variants = logreporter("mathematics","variants")
+
+ local function setvariant(pointer,selector,char)
+ local tfmdata = fontdata[getfont(pointer)]
+ local mathvariants = tfmdata.resources.variants -- and variantdata / can be a hash
+ if mathvariants then
+ mathvariants = mathvariants[selector]
+ if mathvariants then
+ local variant = mathvariants[char]
+ if variant then
+ setchar(pointer,variant)
+ setattr(pointer,a_exportstatus,char) -- we don't export the variant as it's visual markup
+ if trace_variants then
+ report_variants("variant (%U,%U) replaced by %U",char,selector,variant)
+ end
+ else
+ if trace_variants then
+ report_variants("no variant (%U,%U)",char,selector)
+ end
+ end
+ end
+ end
+ end
variants[mathchar_code] = function(pointer,what,n,parent) -- also set export value
local char = getchar(pointer)
- local selector = validvariants[char]
- if selector then
- local next = getnext(parent)
- if next and getid(next) == noad_code then
- local nucleus = getnucleus(next)
- if nucleus and getid(nucleus) == mathchar_code and getchar(nucleus) == selector then
- local variant
- local tfmdata = fontdata[getfont(pointer)]
- local mathvariants = tfmdata.resources.variants -- and variantdata
- if mathvariants then
- mathvariants = mathvariants[selector]
- if mathvariants then
- variant = mathvariants[char]
+ local data = chardata[char]
+ if data then
+ local variants = data.variants
+ if variants then
+ local next = isnext(parent,noad_code)
+ if next then
+ local nucleus = getnucleus(next)
+ if nucleus and getid(nucleus) == mathchar_code then
+ local selector = getchar(nucleus)
+ if variants[selector] then
+ setvariant(pointer,selector,char)
+ setprev(next,pointer)
+ setnext(parent,getnext(next))
+ flushnode(next)
end
end
- if variant then
- setchar(pointer,variant)
- setattr(pointer,a_exportstatus,char) -- we don't export the variant as it's visual markup
- if trace_variants then
- report_variants("variant (%U,%U) replaced by %U",char,selector,variant)
- end
- else
- if trace_variants then
- report_variants("no variant (%U,%U)",char,selector)
- end
+ end
+ local selector = getattr(pointer,a_variant)
+ if selector and variants[selector] then
+ setvariant(pointer,selector,char)
+ end
+ end
+ end
+ end
+
+ function mathematics.addvariant(tfmdata,char,variant,selector)
+ if char and variant and selector then
+ local data = chardata[char]
+ if data then
+ local variants = data.variants
+ if variants and variants[selector] then
+ local resources = tfmdata.resources
+ local variants = resources.variants -- and variantdata
+ if not variants then
+ variants = { }
+ resources.variants = variants
end
- setprev(next,pointer)
- setnext(parent,getnext(next))
- flush_node(next)
+ local selectors = variants[selector]
+ if not selectors then
+ selectors = { }
+ variants[selector] = selectors
+ end
+ selectors[char] = variant
+ return true
end
end
end
+ return false
end
function handlers.variants(head,style,penalties)
processnoads(head,variants,"unicode variant")
- return true -- not needed
end
+ local valid = {
+ calligraphic = 0xFE00,
+ calligraphy = 0xFE00,
+ script = 0xFE01,
+ handwriting = 0xFE01,
+ }
+
+ function mathematics.setvariant(s)
+ texsetattribute(a_variant,valid[s] or unsetvalue)
+ end
+
+ implement {
+ name = "setmathvariant",
+ public = true,
+ protected = true,
+ arguments = "argument",
+ actions = mathematics.setvariant,
+ }
+
end
-- for manuals
do
+ -- Given the amount of classes this no longer makes much sense or we need to
+ -- extend it.
+
local classes = { }
local colors = {
- [relnode_code] = "trace:dr",
- [ordnoad_code] = "trace:db",
- [binnoad_code] = "trace:dg",
- [opennoad_code] = "trace:dm",
- [closenoad_code] = "trace:dm",
- [punctnoad_code] = "trace:dc",
- -- [opdisplaylimitsnoad_code] = "",
- -- [oplimitsnoad_code] = "",
- -- [opnolimitsnoad_code] = "",
- -- [ordlimitsnoad_code] = "",
- -- [innernoad_code = "",
- -- [undernoad_code] = "",
- -- [overnoad_code] = "",
- -- [vcenternoad_code] = "",
+ [relation_class] = "trace:dr",
+ [ordinary_class] = "trace:db",
+ [binary_class] = "trace:dg",
+ [open_class] = "trace:dm",
+ [middle_class] = "trace:dm",
+ [close_class] = "trace:dm",
+ [punctuation_class] = "trace:dc",
}
local setcolor = colortracers.set
@@ -2168,7 +2444,6 @@ do
function handlers.classes(head,style,penalties)
processnoads(head,classes,"classes")
- return true -- not needed
end
registertracker("math.classes",function(v)
@@ -2177,163 +2452,353 @@ do
end
--- experimental
do
- -- mathematics.registerdomain {
- -- name = "foo",
- -- parents = { "bar" },
- -- characters = {
- -- [0x123] = { char = 0x234, class = binary },
- -- },
- -- }
-
- local domains = { }
- local categories = { }
- local numbers = { }
- local a_mathdomain = privateattribute("mathdomain")
- mathematics.domains = categories
- local permitted = {
- ordinary = ordnoad_code,
- binary = binnoad_code,
- relation = relnode_code,
- punctuation = punctnoad_code,
- inner = innernoad_code,
- }
+ local traversehlist = nuts.traversers.hlist
- function mathematics.registerdomain(data)
- local name = data.name
- if not name then
- return
- end
- local attr = #numbers + 1
- categories[name] = data
- numbers[attr] = data
- data.attribute = attr
- -- we delay hashing
- return attr
- end
+ local getshift = nuts.getshift
+ local setwhd = nuts.setwhd
+ local setshift = nuts.setshift
- local enable
+ -- normalizer: can become engine feature (native tex loves shifts)
- enable = function()
- enableaction("math", "noads.handlers.domains")
- if trace_domains then
- report_domains("enabling math domains")
+ local function normalize(h)
+ for n, s in traversehlist, h do
+ if s > 0 then
+ local sh = getshift(n)
+ local ox, oy = getoffsets(n)
+ if sh ~= 0 then
+ local w, h, d = getwhd(n)
+ h = h - sh
+ d = d + sh
+ setshift(n)
+ setwhd(n,w,h > 0 and h or 0,d > 0 and d or 0)
+ setoffsets(n,ox,oy - sh)
+ end
+ end
+ local l = getlist(l)
+ if l then
+ normalize(l)
+ end
end
- enable = false
end
- function mathematics.setdomain(name)
- if enable then
- enable()
- end
- local data = name and name ~= v_reset and categories[name]
- texsetattribute(a_mathdomain,data and data.attribute or unsetvalue)
+ function handlers.normalize(h)
+ return normalize(h)
end
- function mathematics.getdomain(name)
- if enable then
- enable()
- end
- local data = name and name ~= v_reset and categories[name]
- context(data and data.attribute or unsetvalue)
- end
+end
- implement {
- name = "initializemathdomain",
- actions = enable,
- onlyonce = true,
- }
+do
- implement {
- name = "setmathdomain",
- arguments = "string",
- actions = mathematics.setdomain,
- }
+ local traversehlist = nuts.traversers.hlist
- implement {
- name = "getmathdomain",
- arguments = "string",
- actions = mathematics.getdomain,
- }
+ local texgetdimen = tex.getdimen
+ local texgetcount = tex.getcount
+
+ local newrule = nuts.pool.outlinerule
+ local newkern = nuts.pool.kern
+ local setcolor = nodes.tracers.colors.set
+
+ local a_mathsnap = attributes.private("mathsnap")
+
+ local d_mathstrutht = tex.isdimen("mathstrutht")
+ local d_mathstrutdp = tex.isdimen("mathstrutdp")
+ local c_mathnesting = tex.iscount("mathnestinglevel")
- local function makehash(data)
- local hash = { }
- local parents = data.parents
- if parents then
- local function merge(name)
- if name then
- local c = categories[name]
- if c then
- local hash = c.hash
- if not hash then
- hash = makehash(c)
+ local trace_snapping = false registertracker("math.snapping", function(v) trace_snapping = v end)
+ local report_snapping = logreporter("mathematics","snapping")
+
+ function handlers.snap(h,_,_,_,_,level)
+ -- if not level or level == 0 then
+ if texgetcount(c_mathnesting) == 1 then
+ local trace_color
+ if trace_snapping == "frame" then
+ trace_color = "darkgray"
+ elseif type(trace_snapping) == "string" then
+ trace_color = trace_snapping
+ else
+ trace_color = false
+ end
+ local ht, dp, dd, hs, ds, hd
+ for n, s in traversehlist, h do
+ local step = getattr(n,a_mathsnap)
+ if step then
+ local done = false
+ if not dd then
+ ht = texgetdimen(d_mathstrutht)
+ dp = texgetdimen(d_mathstrutdp)
+ hd = ht + dp
+ -- lineskip can be large in alignments
+ -- dd = hd / 12
+ dd = hd / 6
+ if step == 0xFFFF then
+ hs = dd
+ ds = dd
+ else
+ hs = ht/step
+ ds = dp/step
end
- for k, v in next, hash do
- hash[k] = v
+ end
+ local w, h, d = getwhd(n)
+ -- snap to line
+ ::height::
+ if h-dd < ht then
+ if trace_snapping == true then
+ report_snapping("adapting ht: old %p, new %p, lineskip %p",h,ht,dd)
end
+ done = true
+ setheight(n,ht)
+ goto depth
end
- end
- end
- if type(parents) == "string" then
- merge(parents)
- elseif type(parents) == "table" then
- for i=1,#parents do
- merge(parents[i])
- end
- end
- end
- local characters = data.characters
- if characters then
- for k, v in next, characters do
- -- local chr = n.char
- local cls = v.class
- if cls then
- v.code = permitted[cls]
- else
- -- invalid class
- end
- hash[k] = v
- end
- end
- data.hash = hash
- return hash
- end
-
- domains[mathchar_code] = function(pointer,what,n,parent)
- local attr = getattr(pointer,a_mathdomain)
- if attr then
- local domain = numbers[attr]
- if domain then
- local hash = domain.hash
- if not hash then
- hash = makehash(domain)
- end
- local char = getchar(pointer)
- local okay = hash[char]
- if okay then
- local chr = okay.char
- local cls = okay.code
- if chr and chr ~= char then
- setchar(pointer,chr)
+ if h > ht then
+-- while ht < (h-dd) do
+ while ht < h do
+ ht = round(ht + hs)
+ end
+ if h ~= ht then
+ setheight(n,ht)
+ if trace_snapping == true then
+ report_snapping("enlarging ht: old %p, new %p, step %p",h,ht,hs)
+ end
+ done = true
+ end
+ end
+ ::depth::
+ if d-dd < dp then
+ if trace_snapping == true then
+ report_snapping("adapting dp: old %p, new %p, lineskip %p",d,dp,dd)
+ end
+ setdepth(n,dp)
+ done = true
+ goto done
end
- if cls and cls ~= getsubtype(parent) then
- setsubtype(parent,cls)
+ if d > dp then
+-- while dp < (d-dd) do
+ while dp < d do
+ dp = round(dp + ds)
+ end
+ if d ~= dp then
+ setdepth(n,dp)
+ if trace_snapping == true then
+ report_snapping("enlarging dp: old %p, new %p, step %p",d,dp,ds)
+ end
+ done = true
+ end
+ end
+ ::done::
+ if done and trace_color then
+ -- w, h, d = getwhd(n)
+ -- local r = newrule(w,h,d,65536)
+ -- setcolor(r,trace_color)
+ -- setlink(r,newkern(-w),getlist(n))
+ -- setlist(n,r)
+
+ local old = newrule(w,h,d,65536)
+ setcolor(old,"middlegray")
+ w, h, d = getwhd(n)
+ local new = newrule(w,h,d,65536/4)
+ setcolor(new,trace_color)
+ setlink(old,newkern(-w),new,newkern(-w),getlist(n))
+ local ox, oy = getoffsets(n)
+ setoffsets(old,-ox,-oy)
+ setoffsets(new,-ox,-oy)
+ setlist(n,old)
end
end
end
end
end
- function handlers.domains(head,style,penalties)
- processnoads(head,domains,"domains")
- return true -- not needed
+ local valid = {
+ [v_reset] = unsetvalue,
+ [v_line] = 0xFFFF,
+ [v_small] = 8,
+ [v_medium] = 4,
+ [v_big] = 2,
+ }
+
+ function mathematics.setsnapping(s)
+ if not enabled then
+ enableaction("math", "noads.handlers.snap")
+ enabled = true
+ end
+ texsetattribute(a_mathsnap,valid[s] or unsetvalue)
end
+ implement {
+ name = "setmathsnapping",
+ public = true,
+ protected = true,
+ arguments = "argument",
+ actions = mathematics.setsnapping,
+ }
+
end
+-- experimental : replaced by dictionaries but for now we keep the code
+--
+-- do
+--
+-- -- mathematics.registerdomain {
+-- -- name = "foo",
+-- -- parents = { "bar" },
+-- -- characters = {
+-- -- [0x123] = { char = 0x234, class = binary },
+-- -- },
+-- -- }
+--
+-- local trace_domains = false registertracker("math.domains", function(v) trace_domains = v end)
+-- local report_domains = logreporter("mathematics","domains")
+--
+-- local domains = { }
+-- local categories = { }
+-- local numbers = { }
+-- local a_mathdomain = privateattribute("mathdomain")
+-- mathematics.domains = categories
+-- local permitted = {
+-- ordinary = ordinary_class,
+-- binary = binary_class,
+-- relation = relation_class,
+-- punctuation = punctuation_class,
+-- inner = innernoad_code,
+-- fenced = fenced_class,
+-- -- fraction = fraction_class,
+-- -- radical = radical_class,
+-- }
+--
+-- function mathematics.registerdomain(data)
+-- local name = data.name
+-- if not name then
+-- return
+-- end
+-- local attr = #numbers + 1
+-- categories[name] = data
+-- numbers[attr] = data
+-- data.attribute = attr
+-- -- we delay hashing
+-- return attr
+-- end
+--
+-- local enable
+--
+-- enable = function()
+-- enableaction("math", "noads.handlers.domains")
+-- if trace_domains then
+-- report_domains("enabling math domains")
+-- end
+-- enable = false
+-- end
+--
+-- function mathematics.setdomain(name)
+-- if enable then
+-- enable()
+-- end
+-- local data = name and name ~= v_reset and categories[name]
+-- texsetattribute(a_mathdomain,data and data.attribute or unsetvalue)
+-- end
+--
+-- function mathematics.getdomain(name)
+-- if enable then
+-- enable()
+-- end
+-- local data = name and name ~= v_reset and categories[name]
+-- context(data and data.attribute or unsetvalue)
+-- end
+--
+-- implement {
+-- name = "initializemathdomain",
+-- actions = enable,
+-- onlyonce = true,
+-- }
+--
+-- implement {
+-- name = "setmathdomain",
+-- arguments = "string",
+-- actions = mathematics.setdomain,
+-- }
+--
+-- implement {
+-- name = "getmathdomain",
+-- arguments = "string",
+-- actions = mathematics.getdomain,
+-- }
+--
+-- local function makehash(data)
+-- local hash = { }
+-- local parents = data.parents
+-- if parents then
+-- local function merge(name)
+-- if name then
+-- local c = categories[name]
+-- if c then
+-- local hash = c.hash
+-- if not hash then
+-- hash = makehash(c)
+-- end
+-- for k, v in next, hash do
+-- hash[k] = v
+-- end
+-- end
+-- end
+-- end
+-- if type(parents) == "string" then
+-- merge(parents)
+-- elseif type(parents) == "table" then
+-- for i=1,#parents do
+-- merge(parents[i])
+-- end
+-- end
+-- end
+-- local characters = data.characters
+-- if characters then
+-- for k, v in next, characters do
+-- -- local chr = n.char
+-- local cls = v.class
+-- if cls then
+-- v.code = permitted[cls]
+-- else
+-- -- invalid class
+-- end
+-- hash[k] = v
+-- end
+-- end
+-- data.hash = hash
+-- return hash
+-- end
+--
+-- domains[mathchar_code] = function(pointer,what,n,parent)
+-- local attr = getattr(pointer,a_mathdomain)
+-- if attr then
+-- local domain = numbers[attr]
+-- if domain then
+-- local hash = domain.hash
+-- if not hash then
+-- hash = makehash(domain)
+-- end
+-- local char = getchar(pointer)
+-- local okay = hash[char]
+-- if okay then
+-- local chr = okay.char
+-- local cls = okay.code
+-- if chr and chr ~= char then
+-- setchar(pointer,chr)
+-- end
+-- if cls and cls ~= getsubtype(parent) then
+-- setsubtype(parent,cls)
+-- end
+-- end
+-- end
+-- end
+-- end
+--
+-- function handlers.domains(head,style,penalties)
+-- processnoads(head,domains,"domains")
+-- end
+--
+-- end
+
-- just for me
function handlers.showtree(head,style,penalties)
@@ -2362,48 +2827,154 @@ do
end
--- the normal builder
+-- Musical timestamp: August 2022 with "Meditation by Cory Wong (Live @ Brooklyn
+-- Steel FEB 2022). Seen live earlier that year and its gets better and better!
+--
+-- As we also try to do here:
do
- local force_penalties = false
+ local trace_dictionaries = false registertracker("math.dictionaries", function(v) trace_dictionaries = v end)
+ local report_dictionaries = logreporter("mathematics","dictionaries")
+
+ local setnodecolor = colortracers.set
+ local getchardict = nuts.getchardict
+ local setchardict = nuts.setchardict
- -- registertracker("math.penalties",function(v)
- -- force_penalties = v
- -- end)
+ local dictionaries = { } noads.processors.dictionaries = dictionaries
+ local groups = mathematics.dictionaries.groups
+ local sets = mathematics.dictionaries.sets
+ local variants = mathematics.dictionaries.variants
+ local defaults = mathematics.dictionaries.defaults
- function builders.kernel.mlist_to_hlist(head,style,penalties)
- return mlist_to_hlist(head,style,force_penalties or penalties)
+ local function check(pointer,group,index)
+ local v = variants[index]
+ if v and v[group] then
+ return group, class
+ end
+ return 1
end
- -- function builders.kernel.mlist_to_hlist(head,style,penalties)
- -- local h = mlist_to_hlist(head,style,force_penalties or penalties)
- -- inspect(nodes.totree(h,true,true,true))
- -- return h
- -- end
+ dictionaries[mathchar_code] = function(pointer,what,n,parent)
+ local properties, oldgroup, index, font, char = getchardict(pointer)
+ local newgroup = 1
+ local newclass = false
+ local oldclass = getsubtype(pointer)
+ if (properties & 0x1) == 0x1 then
+ newclass = oldclass
+ newgroup = oldgroup
+ else
+ local set = sets[oldgroup]
+ if set then
+ local groups = set.groups
+ local nofgroups = groups and #groups
+ if nofgroups > 0 then
+ for i=1,nofgroups do
+ real, class = check(pointer,groups[i],index)
+ if real ~= 1 then
+ goto done
+ end
+ end
+ end
+ else
+ newgroup, newclass = check(pointer,group,index)
+ end
+ ::done::
+ if newgroup == 1 then
+ newgroup = defaults[index] or 1
+ end
+ setchardict(pointer,properties,newgroup,index)
+ if type(newclass) == "number" then
+ setsubtype(parent,newclass)
+ else
+ newclass = oldclass
+ end
+ end
+ if trace_dictionaries then
+ if newgroup > 1 then
+ local groupname = groups[newgroup]
+ if groupname then
+ setnodecolor(pointer,"dictionary:"..groupname)
+ end
+ end
+ report_dictionaries("group 0x%02X -> 0x%02X, class 0x%02X -> 0x%02X, index %05X, %U %c",oldgroup,newgroup,oldclass,newclass,index,char,char)
+ end
+ end
- implement {
- name = "setmathpenalties",
- arguments = "integer",
- actions = function(p)
- force_penalties = p > 0
- end,
+ function handlers.dictionaries(head,style,penalties)
+ processnoads(head,dictionaries,"dictionaries")
+ end
+
+end
+
+do
+
+ local trace_suspicious = false registertracker("math.suspicious", function(v) trace_suspicious = v end)
+ local report_suspicious = logreporter("mathematics","suspicious")
+
+ local suspicious = { } noads.processors.suspicious = suspicious
+
+ local candidates = {
+ [classes.maybeordinary] = "maybeordinary",
+ [classes.mayberelation] = "mayberelation",
+ [classes.maybebinary ] = "maybebinary",
}
+ local registered = setmetatableindex("table")
+
+ suspicious[mathchar_code] = function(pointer,what,n,parent)
+ local class = getsubtype(pointer)
+ local found = candidates[class]
+ if found then
+ local char = getchar(pointer)
+ if not registered[class][char] then
+ report_suspicious("class %a, %U %c",found,char,char)
+ registered[class][char] = true
+ end
+ end
+ end
+
+ function handlers.suspicious(head,style,penalties)
+ if trace_suspicious then
+ processnoads(head,suspicious,"suspicious")
+ end
+ end
end
+-- the normal builder
+
+-- do
+--
+-- local force_penalties = false
+--
+-- function builders.kernel.mlisttohlist(head,style,penalties)
+-- return mlisttohlist(head,style,force_penalties or penalties)
+-- end
+--
+-- implement {
+-- name = "setmathpenalties",
+-- arguments = "integer",
+-- actions = function(p)
+-- force_penalties = p > 0
+-- end,
+-- }
+--
+-- end
+
+builders.kernel.mlisttohlist = mlisttohlist
+
local actions = tasks.actions("math") -- head, style, penalties
local starttiming, stoptiming = statistics.starttiming, statistics.stoptiming
-function processors.mlist_to_hlist(head,style,penalties)
+function processors.mlisttohlist(head,style,penalties,beginclass,endclass,level)
starttiming(noads)
- head = actions(head,style,penalties)
+ head = actions(head,style,penalties,beginclass,endclass,level)
stoptiming(noads)
return head
end
-callbacks.register('mlist_to_hlist',processors.mlist_to_hlist,"preprocessing math list")
+callbacks.register('mlist_to_hlist',processors.mlisttohlist,"preprocessing math list")
-- tracing
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-pln.mkxl b/Master/texmf-dist/tex/context/base/mkxl/math-pln.mkxl
index 81008f37b22..fa44fda2cec 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-pln.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-pln.mkxl
@@ -17,38 +17,16 @@
\unprotect
-% we need proper unicode:
+% We need proper unicode:
\def\relbar{\mathrel{\smash-}} % - has the same height as + .. no clue what this refers to
-% might change
+%D This might change:
\permanent\protected\def\hrulefill{\leaders\hrule\hfill}
-%protected\def\dotfill {\cleaders\hbox{\normalstartimath\mathsurround\zeropoint\mkern1.5mu.\mkern1.5mu\normalstopimath}\hfill}
+%permanent\protected\def\dotfill {\cleaders\hbox{\normalstartimath\mathsurround\zeropoint\mkern1.5mu.\mkern1.5mu\normalstopimath}\hfill}
-% will move
-
-\permanent\def\oalign#1%
- {\leavevmode % plain tex uses this
- \vtop
- {\baselineskip\zeroskip
- \lineskip.25\exheight
- \ialign{\alignmark\alignmark\crcr#1\crcr}}}
-
-\permanent\def\ooalign % chars over each other
- {\lineskiplimit-\maxdimen
- \oalign}
-
-% needs checking
-
-\permanent\protected\def\choose{\atopwithdelims()}
-\permanent\protected\def\brack {\atopwithdelims[]}
-\permanent\protected\def\brace {\atopwithdelims\{\}}
-
-% needs checking
-
-\permanent\protected\def\buildrel#1\over#2%
- {\mathrel{\mathop{\kern\zeropoint#2}\limits^{#1}}}
+%D These need an update:
\permanent\protected\def\bmod
{\nonscript
@@ -65,72 +43,8 @@
\mkern18mu
(\mfunction{mod}\mskip\medmuskip#1)}
-\permanent\protected\def\cases#1%
- {\left\{%
- \mskip\thinmuskip
- \vcenter
- {\normalbaselines
- \mathsurround\zeropoint
- \ialign{%
- \normalstartimath\alignmark\alignmark\hfil\normalstopimath
- \aligntab
- \quad\alignmark\alignmark\hfil
- \crcr
- #1%
- \crcr}}%
- \right.}
-
-\permanent\protected\def\matrix#1%
- {\emptyhbox
- \mskip\thinmuskip
- \vcenter
- {\normalbaselines
- \mathsurround\zeropoint
- \ialign{%
- \hfil\normalstartimath\alignmark\alignmark\normalstopimath\hfil
- \aligntab
- \aligntab
- \quad\hfil\normalstartimath\alignmark\alignmark\normalstopimath\hfil
- \crcr
- \mathstrut
- \crcr
- \noalign{\kern-\baselineskip}
- #1\crcr
- \mathstrut
- \crcr
- \noalign{\kern-\baselineskip}}}%
- \mskip\thinmuskip}
-
-\permanent\protected\def\pmatrix#1%
- {\left(\matrix{#1}\right)}
-
-\permanent\protected\def\math_openup
- {\afterassignment\math_openup_indeed\scratchdimen}
-
-\aliased\let\math_closeup\relax
-
-\def\math_openup_indeed
- {\enforced\permanent\protected\edef\math_closeup
- {\lineskip \the\lineskip
- \baselineskip \the\baselineskip
- \lineskiplimit\the\lineskiplimit
- \relax}%
- \advance \lineskip \scratchdimen
- \advance \baselineskip \scratchdimen
- \advance \lineskiplimit \scratchdimen}
-
-\permanent\protected\def\openup {\math_openup } % the low level ones are used elsewhere
-\permanent\protected\def\closeup{\math_closeup} % the low level ones are used elsewhere
-
-\permanent\protected\def\displaylines#1%
- {\the\mathdisplayaligntweaks
- \tabskip\zeroskip
- \halign
- {\hbox to \displaywidth{%
- \normalstartimath\tabskip\zeroskip\everycr\emptytoks\hfil\displaystyle\alignmark\alignmark\hfil\normalstopimath}\crcr
- #1\crcr}}
-
-%D This comes from plain but I gave it a \CONTEXT\ touch:
+%D This comes from plain but I gave it a \CONTEXT\ touch. When Mikael and I are in
+%D the mood we will redo them in a more modern way.
\permanent\def\math_border_NC_indeed
{\enforced\global\def\math_border_NC{\aligntab}}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-pre.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-pre.lmt
new file mode 100644
index 00000000000..974623f27f5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-pre.lmt
@@ -0,0 +1,189 @@
+if not modules then modules = { } end modules ['math-pre'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to math-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local type, tonumber = type, tonumber
+local gmatch, find, topattern = string.gmatch, string.find, string.topattern
+
+local parameterlist = tex.getmathparametervalues()
+local mathstylelist = tex.getmathstylenamevalues()
+local parameterhash = table.swapped(parameterlist)
+local mathstylehash = table.swapped(mathstylelist)
+
+local axis = parameterhash.axis
+
+local getmath = tex.getmath
+local setmath = tex.setmath
+
+local function expandparameters(t)
+ local result = { }
+ local kind = type(t)
+ local function expand(s)
+ s = topattern(s)
+ for i=1,#parameterlist do
+ local p = parameterlist[i]
+ if find(p,s) then
+ result[#result+1] = p
+ end
+ end
+ end
+ if kind == "string" then
+ for s in gmatch(t,"[^%s,]+") do
+ expand(s)
+ end
+ elseif kind == "table" then
+ for i=1,#t do
+ expand(t[i])
+ end
+ end
+ return result
+end
+
+function setmathparameters(t)
+ if t then
+ for i=1,#t do
+ local ti = t[i]
+ local list = ti.list
+ local factor = ti.factor or 1
+ local style = ti.style
+ local value = ti.value
+ local unit = ti.unit
+
+ local function set(li,si,value)
+ if value then
+ setmath(li,si,value)
+ elseif factor == 0 then
+ setmath(li,si,0)
+ elseif unit == "axis" then
+ setmath(li,si,factor * getmath(axis,i))
+ else
+ setmath(li,si,factor * getmath(li,i))
+ end
+ end
+
+ for i=1,#list do
+ local li = parameterhash[list[i]]
+ if li then
+ if style == "all" then
+ for si=0,7 do
+ set(li,si,value)
+ end
+ elseif type(style) == "string" then
+ local si = mathstylehash[style]
+ if si then
+ set(li,si,value)
+ end
+ else
+ for s=1,#style do
+ local si = mathstylehash[style[s]]
+ if si then
+ set(li,si,value)
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+-- example
+
+local stacklist = {
+ "fractionnumvgap",
+ "fractiondenomvgap",
+ "fractionnumup",
+ "fractiondenomdown",
+ "stackdenomdown",
+ "stacknumup",
+ "stackvgap",
+}
+
+local presets = {
+ less = {
+ {
+ factor = .5,
+ -- factor = 0,
+ -- value = 655360,
+ -- unit = "axis",
+ list = stacklist,
+ -- style = { "display" },
+ -- style = "display",
+ style = "all"
+ },
+ },
+ more = {
+ {
+ factor = 2,
+ list = stacklist,
+ style = "all"
+ },
+ },
+ zero = {
+ {
+ factor = 0,
+ list = stacklist,
+ style = "all"
+ },
+ },
+}
+
+mathematics.presets = presets -- we might need to store these in the format file
+
+function mathematics.preset(list)
+ for s in gmatch(list,"[^%s,]+") do
+ setmathparameters(presets[s])
+ end
+end
+
+-- todo: append, prepend, inherit
+
+interfaces.implement {
+ name = "definemathpreset",
+ public = true,
+ protected = true,
+ arguments = { "optional", "hash" },
+ actions = function(name,t)
+ if next(t) then
+ local factor = t.factor
+ local style = t.style
+ local list = t.list
+ local unit = t.unit
+ if factor then
+ t.factor = tonumber(factor)
+ end
+ if style and style ~= "all" then
+ t.style = utilities.parsers.settings_to_array(style)
+ end
+ if list then
+ -- t.list = utilities.parsers.settings_to_array(list)
+ t.list = expandparameters(list)
+ end
+ if unit and unit ~= "axis" then
+ t.unit = nil
+ end
+ -- todo: value
+ local p = presets[name]
+ if p then
+ p[#p+1] = t
+ else
+ presets[name] = t
+ end
+ else
+ presets[name] = nil
+ end
+ end,
+}
+
+interfaces.implement {
+ name = "presetmathematics",
+ public = true,
+ protected = true,
+ arguments = "optional",
+ actions = mathematics.preset,
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-rad.mklx b/Master/texmf-dist/tex/context/base/mkxl/math-rad.mklx
index 8906efdc85a..703481c0820 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-rad.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-rad.mklx
@@ -23,26 +23,24 @@
%D Old stuff:
-% \def\rootradical{\Uroot \defaultmathfamily "221A } % can be done in char-def
-% \def\surdradical{\Uradical \defaultmathfamily "221A } % can be done in char-def
+% \def\rootradical{\Uroot 0 "221A } % can be done in char-def
+% \def\surdradical{\Uradical 0 "221A } % can be done in char-def
-\permanent\protected\def\root#1\of{\rootradical{#1}} % #2
+% \protected\def\sqrt{\doifelsenextoptionalcs\rootwithdegree\rootwithoutdegree} % will be redefined
-\protected\def\sqrt{\doifelsenextoptionalcs\rootwithdegree\rootwithoutdegree} % will be redefined
-
-\permanent\protected\def\styledrootradical#1#2% so that \text works ok ... \rootradical behaves somewhat weird
- {\normalexpanded{\rootradical
- {\normalunexpanded{#1}}%
- {\noexpand\triggermathstyle{\number\normalmathstyle}%
- \normalunexpanded{#2}}}}
+% \permanent\protected\def\styledrootradical#1#2% so that \text works ok ... \rootradical behaves somewhat weird
+% {\normalexpanded{\math_radical_common
+% {\normalunexpanded{#1}}%
+% {\noexpand\triggermathstyle{\number\normalmathstyle}%
+% \normalunexpanded{#2}}}}
% experimental new keyword: (maybe keywords should come after the symbol)
%
% \permanent\protected\def\styledrootradical#1#2% so that \text works ok ... \rootradical behaves somewhat weird
% {\Uroot style \normalmathstyle "0 "221A {#1}{#2}}
-\permanent\protected\def\rootwithdegree[#1]{\rootradical{#1}}
-\permanent\protected\def\rootwithoutdegree {\rootradical {}}
+% \permanent\protected\def\rootwithdegree[#1]{\math_radical_common{#1}}
+% \permanent\protected\def\rootwithoutdegree {\math_radical_common {}}
%D Even older stuff:
@@ -81,6 +79,20 @@
%D $ \sqrt[3]{5} \RR\sqrt[3]{5} \sqrt[3]{5} $\par
%D $ \sqrt[3]{5} {\RR\sqrt[3]{5}} \sqrt[3]{5} $\par
%D \stoptyping
+%D
+%D And:
+%D
+%D \starttyping
+%D \definemathradical[lsqrt][strut=yes]
+%D \definemathradical[msqrt][strut=math]
+%D \definemathradical[xsqrt][height=3ex,depth=2ex]
+%D
+%D $\sqrt[strut=no][3]{y}$
+%D $\sqrt[strut=no,n=5]{y}$
+%D $\sqrt[strut=no,n=5][6]{y}$
+%D $\sqrt[strut=math]{y}$
+%D $\sqrt[3]{y}$
+%D \stoptyping
\installcorenamespace{mathradical}
\installcorenamespace{mathradicalalternative}
@@ -89,43 +101,129 @@
\setupmathradical
[\c!alternative=\v!normal,
- \c!mpoffset=.25\exheight]
+ \c!mpoffset=.25\exheight,
+ \c!height=\zeropoint,
+ \c!depth=\zeropoint,
+ \c!strut=\v!height,
+ \c!source=\zerocount,
+ \c!left="221A,
+ \c!right=\zerocount,
+ \c!leftmargin=\zeropoint,
+ \c!rightmargin=\zeropoint]
\appendtoks
\frozen\protected\instance\edefcsname\currentmathradical\endcsname{\math_radical_handle{\currentmathradical}}
\to \everydefinemathradical
-\mutable\let\currentmathradical \empty
-\mutable\let\currentmathradicaldegree\empty
+\mutable\lettonothing\currentmathradical
+\mutable\lettonothing\currentmathradicaldegree
+
+\setmathignore\Umathradicaldegreebefore\plusone
+
+\installcorenamespace{mathwhateverstrut}
+
+\defcsname\??mathwhateverstrut\v!height\endcsname{\mathheightstrut}
+\defcsname\??mathwhateverstrut\v!depth \endcsname{\mathdepthstrut}
+\defcsname\??mathwhateverstrut\v!math \endcsname{\mathstrut}
+\defcsname\??mathwhateverstrut\v!yes \endcsname{\strut}
+%letcsname\??mathwhateverstrut\v!no \endcsname\relax
-\tolerant\protected\def\math_radical_handle#tag#*[#degree]#:#body%
+\tolerant\protected\def\math_radical_handle#tag#*[#settings]#*[#degree]#:#body%
{\begingroup
\edef\currentmathradical{#tag}%
- \edef\currentmathradicaldegree{#degree}%
+ \ifhastok={#settings}%
+ \lettonothing\currentmathradicaldegree
+ \setupcurrentmathradical[#settings]%
+ \ifparameter#degree\or
+ \edef\currentmathradicaldegree{#degree}%
+ \else
+ \edef\currentmathradicaldegree{\mathradicalparameter\c!n}%
+ \fi
+ \else
+ \edef\currentmathradicaldegree{#settings}%
+ \fi
\ifempty\currentmathradicaldegree
\let\currentmathradicaldegree\m_math_no_degree
\fi
- \math_radical_alternative{#body}%
+ \ifcase\mathradicalparameter\c!right\else
+ \let\currentmathradicaldegree\m_math_no_degree
+ \fi
+ \math_radical_alternative{%
+ \begincsname\??mathwhateverstrut\mathradicalparameter\c!strut\endcsname
+ \scratchdimen\mathradicalparameter\c!leftmargin \relax\ifzeropt\scratchdimen\else\kern\scratchdimen\fi
+ #body%
+ \scratchdimen\mathradicalparameter\c!rightmargin\relax\ifzeropt\scratchdimen\else\kern\scratchdimen\fi
+ }%
\endgroup}
\def\m_math_no_degree{{}}
+% for every font
+%
+% \appendtoks
+% \Umathradicaldegreebefore\allmathstyles\zeropoint
+% \to \everymathematics
+
+% style width [options: left middle right]
+
+%D \starttyping
+%D \definemathradical[esqrt][sqrt][height=\maxdimen,depth=\maxdimen]
+%D \definemathradical[fsqrt][sqrt][height=3ex,depth=2ex]
+%D \definemathradical[ssqrt][sqrt][height=-.5pt,depth=-.5pt]
+%D
+%D \def\TestSqrt#1%
+%D {test $ #1{x} + #1{\sin(x)} $ test\par
+%D test $ #1{x} + #1{\sin(x)} + #1{\frac{1}{x}} $ test\par
+%D test $ #1{x} + #1{x^2} $ test\par
+%D test $\left(#1{x} + #1{x^2} \right)$ test\par}
+%D
+%D \TestSqrt\sqrt \blank % dynamic
+%D \TestSqrt\esqrt\blank % equal
+%D \TestSqrt\fsqrt\blank % fixed
+%D \TestSqrt\ssqrt\blank % squeezed
+%D \stoptyping
+
\def\math_radical_alternative{\csname\??mathradicalalternative\mathradicalparameter\c!alternative\endcsname}
-\setvalue{\??mathradicalalternative\v!default}% #body%
- {\rootradical{\currentmathradicaldegree}} % {#body}}
+% We use a strut in the degree because not all fonts have the right gaps set up but
+% as struts are sort of predictable we can now fix all fonts in the lfg file.
-\setvalue{\??mathradicalalternative\v!normal}#body%
+\protected\def\math_radical_common#degree%
+ {\scratchcounter\ifcstok{\mathradicalparameter\c!rule}\v!symbol
+ \mathradicalparameter\c!top\relax
+ \else
+ \zerocount
+ \fi
+ \Urooted
+ \s!height\dimexpr\mathradicalparameter\c!height\relax
+ \s!depth \dimexpr\mathradicalparameter\c!depth\relax
+ \s!source\numexpr\namedboxanchor{\mathradicalparameter\c!source}\relax
+ \s!style \normalmathstyle
+ \ifzeronum\scratchcounter\else
+ top % \s!top
+ \fi
+ \zerocount \mathradicalparameter\c!left
+ \zerocount \mathradicalparameter\c!right
+ \ifzeronum\scratchcounter\else
+ \zerocount\scratchcounter
+ \fi
+ \relax
+ {\mathstrut#degree}}
+
+\defcsname\??mathradicalalternative\v!default\endcsname % #body%
+ {\math_radical_common{\currentmathradicaldegree}} % {#body}}
+
+\defcsname\??mathradicalalternative\v!normal\endcsname#body%
{\edef\p_color{\mathradicalparameter\c!color}%
\ifempty\p_color
- \styledrootradical{\currentmathradicaldegree}{#body}% {} really needed as \rootradical expands first
+ \math_radical_common{\currentmathradicaldegree}{#body}% {} really needed as \rootradical expands first
\orelse\ifempty\currentmathradicaldegree
\pushcolor[\p_color]%
- \styledrootradical{\currentmathradicaldegree}%
+ \math_radical_common{}%
{\popcolor#body}%
\else
\pushcolor[\p_color]%
- \styledrootradical{\popcolor\currentmathradicaldegree\pushcolor[\p_color]}%
+ \math_radical_common{\popcolor\currentmathradicaldegree\pushcolor[\p_color]}%
{\popcolor#body}%
\fi}
@@ -150,7 +248,7 @@
% todo: spacing .. this is just an experiment (article driven)
-\setvalue{\??mathradicalalternative\v!mp}#body% we could use dowithnextbox
+\defcsname\??mathradicalalternative\v!mp\endcsname#body% we could use dowithnextbox
{\begingroup
\scratchoffset\mathradicalparameter\c!mpoffset
\setbox\nextbox\mathstylehbox{#body}%
@@ -174,18 +272,23 @@
\scratchdimen \wd\scratchbox
\scratchtopoffset \dimexpr\scratchoffset+\dp\nextbox\relax
\scratchbottomoffset\dimexpr\scratchoffset+\ht\nextbox/2\relax
- \hpack to \scratchdimen{\hss\box\nextbox\hskip\scratchoffset}%
- \hskip-\scratchdimen
+ \hpack to \scratchdimen{\hss\box\nextbox\kern\scratchoffset}%
+ \kern-\scratchdimen
\lower\dimexpr\scratchtopoffset\box\scratchbox%
\ifx\currentmathradicaldegree\empty \else
\setbox\scratchbox\mathstylehbox{\scriptscriptstyle\currentmathradicaldegree\hss}%
\wd\scratchbox\scratchdimen
- \hskip-\scratchdimen
+ \kern-\scratchdimen
\raise\dimexpr\scratchbottomoffset\box\scratchbox
\fi
\endgroup}
-\definemathradical[sqrt][mp=minifun::math:radical:default]
+\pushoverloadmode
+
+\definemathradical[root][mp=minifun::math:radical:default]
+\definemathradical[sqrt][root]
+
+\popoverloadmode
% \setupmathradical[sqrt][alternative=normal,color=darkblue]
% \setupmathradical[sqrt][alternative=mp,color=darkgreen]
@@ -204,7 +307,8 @@
\c!mpoffset=.25\exheight]
\appendtoks
- \frozen\instance\setuevalue{\currentmathornament}{\math_ornament_handle{\currentmathornament}}%
+ \frozen\protected\instance\edefcsname\currentmathornament\endcsname
+ {\math_ornament_handle{\currentmathornament}}%
\to \everydefinemathornament
\protected\def\math_ornament_handle#tag#body%
@@ -213,7 +317,7 @@
\csname\??mathornamentalternative\mathornamentparameter\c!alternative\endcsname{#body}%
\endgroup}
-\setvalue{\??mathornamentalternative\v!mp}#body% we could use dowithnextbox
+\defcsname\??mathornamentalternative\v!mp\endcsname#body% we could use dowithnextbox
{\begingroup
\scratchoffset\mathornamentparameter\c!mpoffset
\setbox\nextbox\mathstylehbox{#body}%
@@ -227,7 +331,7 @@
% the width of the graphic determines the width of the final result
\setbox\scratchbox\hpack{\uniqueMPgraphic{\p_mp}}% todo: add code key + tag
\hpack to \wd\scratchbox{\hss\box\nextbox\hss}%
- \hskip-\wd\scratchbox
+ \kern-\wd\scratchbox
\box\scratchbox
\endgroup}
@@ -268,4 +372,34 @@
%
% \dorecurse{8}{$\mathhat{\blackrule[width=#1ex,color=gray]}$ }
+% \annuity {(x+1)} \Uchar"20E7
+
+\integerdef\delimitedleftanutityuc \privatecharactercode{delimited left annuity}
+\integerdef\delimitedrightanutityuc \privatecharactercode{delimited right annuity}
+\integerdef\radicalbarextenderuc \privatecharactercode{radical bar extender}
+
+\definemathradical
+ [rannuity]
+ [\c!left=\zerocount,
+ \c!right=\delimitedrightanutityuc,
+ \c!rightmargin=.05\emwidth]
+
+\definemathradical
+ [lannuity]
+ [\c!left=\delimitedleftanutityuc,
+ \c!right=\zerocount,
+ \c!leftmargin=.05\emwidth,
+ \c!rightmargin=.05\emwidth]
+
+\definemathradical
+ [lrannuity]
+ [\c!left=\delimitedleftanutityuc,
+ \c!right=\delimitedrightanutityuc,
+ \c!leftmargin=.05\emwidth,
+ \c!rightmargin=.05\emwidth]
+
+\definemathradical
+ [annuity]
+ [rannuity]
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-ren.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-ren.lmt
new file mode 100644
index 00000000000..cf429cb3a69
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-ren.lmt
@@ -0,0 +1,74 @@
+if not modules then modules = { } end modules ['math-ren'] = {
+ version = 1.001,
+ comment = "companion to math-ren.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local next = next
+local gsub = string.gsub
+
+local settings_to_array = utilities.parsers.settings_to_array
+local allocate = storage.allocate
+
+local renderings = { }
+mathematics.renderings = renderings
+
+local mappings = allocate()
+renderings.mappings = mappings
+
+local numbers = allocate()
+renderings.numbers = numbers
+
+local sets = allocate()
+renderings.sets = sets
+
+mappings["blackboard-to-bold"] = {
+ [0x1D538] = 0x1D400, [0x1D539] = 0x1D401, [0x02102] = 0x1D402, [0x1D53B] = 0x1D403, [0x1D53C] = 0x1D404,
+ [0x1D53D] = 0x1D405, [0x1D53E] = 0x1D406, [0x0210D] = 0x1D407, [0x1D540] = 0x1D408, [0x1D541] = 0x1D409,
+ [0x1D542] = 0x1D40A, [0x1D543] = 0x1D40B, [0x1D544] = 0x1D40C, [0x02115] = 0x1D40D, [0x1D546] = 0x1D40E,
+ [0x02119] = 0x1D40F, [0x0211A] = 0x1D410, [0x0211D] = 0x1D411, [0x1D54A] = 0x1D412, [0x1D54B] = 0x1D413,
+ [0x1D54C] = 0x1D414, [0x1D54D] = 0x1D415, [0x1D54E] = 0x1D416, [0x1D54F] = 0x1D417, [0x1D550] = 0x1D418,
+ [0x02124] = 0x1D419,
+}
+
+mappings["mikaels-favourites"] = {
+ [0x211D] = 0x1D411,
+ [0x211A] = 0x1D410,
+ [0x2124] = 0x1D419,
+ [0x2115] = 0x1D40D,
+}
+
+local function renderset(list) -- order matters
+ local tag = gsub(list," ","")
+ local n = sets[tag]
+ if not n then
+ local list = settings_to_array(tag)
+ local mapping = { }
+ for i=1,#list do
+ local m = mappings[list[i]]
+ if m then
+ for k, v in next, m do
+ mapping[k] = v
+ end
+ end
+ end
+ if next(mapping) then
+ n = #numbers + 1
+ numbers[n] = mapping
+ else
+ n = attributes.unsetvalue
+ end
+ sets[tag] = n
+ end
+ return n
+end
+
+mathematics.renderset = renderset
+
+interfaces.implement {
+ name = "mathrenderset",
+ actions = { renderset, context },
+ arguments = "string",
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-scr.mkxl b/Master/texmf-dist/tex/context/base/mkxl/math-scr.mkxl
index 555f549f133..207f7fbf6e3 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-scr.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-scr.mkxl
@@ -28,7 +28,7 @@
{\math_scripts_raised_symbol_indeed3\txx{#1}}}
\def\math_scripts_raised_symbol_indeed#1#2#3%
- {\mathord{{#2\raise.#1ex\hbox{#2\symbol[#3]}}}}
+ {\mathord{#2\raise.#1\exheight\hbox{#2\symbol[#3]}}} % redundant {} removed
\def\math_scripts_raised_number#1%
{\mathchoice
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-spa.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-spa.lmt
new file mode 100644
index 00000000000..126bb739b07
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-spa.lmt
@@ -0,0 +1,204 @@
+if not modules then modules = { } end modules ['math-spa'] = {
+ version = 1.001,
+ comment = "companion to math-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- for the moment (when testing) we use a penalty 1
+
+local setmetatableindex = table.setmetatableindex
+
+local boundary_code = nodes.nodecodes.boundary
+local hlist_code = nodes.nodecodes.hlist
+local kern_code = nodes.nodecodes.kern
+local penalty_code = nodes.nodecodes.penalty
+local glue_code = nodes.nodecodes.glue
+local line_code = nodes.listcodes.line
+local ghost_code = nodes.listcodes.ghost
+local middle_code = nodes.listcodes.middle
+local leftskip_code = nodes.gluecodes.leftskip
+local rightskip_code = nodes.gluecodes.rightskip
+
+local nuts = nodes.nuts
+local tonut = nodes.tonut
+local tonode = nodes.tonode
+
+local getid = nuts.getid
+local getsubtype = nuts.getsubtype
+local getnext = nuts.getnext
+local getwidth = nuts.getwidth
+local getdata = nuts.getdata
+local getdepth = nuts.getdepth
+local getheight = nuts.getheight
+local getlist = nuts.getlist
+local setglue = nuts.setglue
+local setwhd = nuts.setwhd
+local getdimensions = nuts.dimensions
+local getnormalizedline = node.direct.getnormalizedline
+local getbox = nuts.getbox
+local setoffsets = nuts.setoffsets
+local addxoffset = nuts.addxoffset
+
+local nextglue = nuts.traversers.glue
+local nextlist = nuts.traversers.list
+local nextboundary = nuts.traversers.boundary
+local nextnode = nuts.traversers.node
+
+local texsetdimen = tex.setdimen
+local texsetcount = tex.setcount
+local texisdimen = tex.isdimen
+local texiscount = tex.iscount
+
+local boundary = tex.boundaries.system("mathalign")
+local stages = { }
+local initial = { }
+
+local c_strc_math_n_of_lines = texiscount("c_strc_math_n_of_lines")
+local d_strc_math_max_width = texisdimen("d_strc_math_max_width")
+local d_strc_math_first_width = texisdimen("d_strc_math_first_width")
+local d_strc_math_last_width = texisdimen("d_strc_math_last_width")
+local d_strc_math_first_height = texisdimen("d_strc_math_first_height")
+local d_strc_math_last_depth = texisdimen("d_strc_math_last_depth")
+local d_strc_math_indent = texisdimen("d_strc_math_indent")
+
+stages[1] = function(specification,stage)
+ local box = getbox(specification.box)
+ local head = getlist(box)
+ local align = specification.alignstate
+ local distance = specification.distance
+ for s in nextboundary, head do
+ if getdata(s) == boundary then
+ -- todo: skip over ghost, maybe penalty, maybe glues all in one loop
+-- local n = getnext(s)
+-- if n and getid(n) == kern_code then -- also needed
+-- n = getnext(n)
+-- end
+-- while n and getid(n) == hlist_code and getsubtype(n) == ghost_code do
+-- n = getnext(n)
+-- end
+-- -- while n and getid(n) == glue_code do
+-- if n and getid(n) == glue_code then
+-- n = getnext(n)
+-- end
+ for n, id, subtype in nextnode, getnext(s) do
+ s = n
+ if id == kern_code then
+ -- move on (s_2 case)
+ elseif id == glue_code then
+ -- move on
+ elseif id == penalty_code then
+ -- move on (untested)
+ elseif id == hlist_code and subtype == ghost_code then
+ -- move on
+ else
+ break
+ end
+ end
+ distance = distance + getdimensions(head,s)
+ break
+ end
+ end
+ texsetdimen("global",d_strc_math_indent,distance)
+ if align == 2 then
+ for n in nextglue, head do
+ setglue(n,getwidth(n),0,0,0,0)
+ end
+ end
+end
+
+local function reposition(n,offset)
+ -- We need to relocate the local boxes that we use to push something left or
+ -- right ... quite horrible and one needs a bit twisted mindset for this.
+ for n, id, subtype, list in nextlist, getlist(n) do
+ if subtype == middle_code then
+ addxoffset(n,-offset)
+ end
+ end
+ -- this is tricky ... see line numbering so it might become a real shift
+ -- inside the box: setprops(n,"repositioned",true)
+ addxoffset(n,offset)
+end
+
+stages[2] = function(specification,stage)
+ local head = getlist(getbox(specification.box))
+ local align = specification.alignstate
+ local maxwidth = false
+ local cnt = 0
+ local lastwidth = 0
+ local firstheight = 0
+ local lastdepth = 0
+ for n, id, subtype, list in nextlist, head do
+ if subtype == line_code then
+ local t = getnormalizedline(n)
+ local m = t.rightskip + t.parfillrightskip
+ if not maxwidth then
+ maxwidth = m
+ firstheight = getheight(n)
+ firstwidth = m
+ elseif m < maxwidth then
+ maxwidth = m
+ end
+ cnt = cnt + 1
+ lastwidth = m
+ lastdepth = getdepth(n)
+ end
+ end
+ if stage == 2 and (align == 2 or align == 3) then
+ for n, id, subtype, list in nextlist, head do
+ if subtype == line_code then
+ if align == 1 then -- flushleft
+ -- todo
+ elseif align == 2 then -- middle
+ reposition(n,maxwidth/2)
+ elseif align == 3 then -- flushright
+ reposition(n,maxwidth)
+ end
+ end
+ end
+ end
+ texsetcount("global",c_strc_math_n_of_lines,cnt)
+ texsetdimen("global",d_strc_math_max_width,maxwidth)
+ texsetdimen("global",d_strc_math_first_width,firstwidth)
+ texsetdimen("global",d_strc_math_last_width,lastwidth)
+ texsetdimen("global",d_strc_math_first_height,firstheight)
+ texsetdimen("global",d_strc_math_last_depth,lastdepth)
+end
+
+stages[3] = stages[2]
+
+stages[4] = function(specification,stage)
+ local box = getbox(specification.box)
+ nuts.openup(specification,getlist(box))
+ local w, h, d = getdimensions(getlist(box),true) -- vertical
+ setwhd(box,w,h,d)
+end
+
+interfaces.implement {
+ name = "handlemathhang",
+ arguments = {
+ {
+ { "stage", "integer" },
+ -- { "method" },
+ { "alignstate", "integer" },
+ { "box", "integer" },
+ { "distance", "dimension" },
+ { "inbetween", "dimension" },
+ { "height", "dimension" },
+ { "depth", "dimension" },
+ { "splitmethod" },
+ }
+ },
+ actions = function(specification)
+ local stage = specification.stage
+ if stage == 1 then
+ initial = specification
+ else
+ setmetatableindex(specification,initial)
+ end
+ if stage > 0 and stage <= #stages then
+ stages[stage](specification,stage)
+ end
+ end
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-stc.mklx b/Master/texmf-dist/tex/context/base/mkxl/math-stc.mklx
index 944185c23c4..5922fb1166c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-stc.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-stc.mklx
@@ -75,6 +75,9 @@
% at the lua end and some checking: use \mathhorizontalcode or \mathextensiblecode
% but in practice arrows etc are not used that often
+% At some point we can consider to use the more natural \LUAMETATEX\ features but the
+% problem is that we lack proper support in fonts and we also have less control.
+
\installcorenamespace {mathextensiblefallbacks}
% currently no italic correction ... problem is that we don't know yet if we have an italic
@@ -91,23 +94,34 @@
\ifcsname\??mathextensiblefallbacks\number\scratchunicode\endcsname
\lastnamedcs
\else
- \Umathchar \fam \zerocount \scratchunicode
+ \Umathchar\zerocount\zerocount\scratchunicode
\fi
\hss}}
-\def\math_stackers_regular
- {\mathstylehbox{\usemathstackerscolorparameter\c!color
- \hskip\d_math_stackers_offset_l
- \Umathaccent\fam\zerocount\scratchunicode
- {\hskip\dimexpr\scratchwidth-\d_math_stackers_offset_l-\d_math_stackers_offset_r}%
- \hskip\d_math_stackers_offset_r
- }}
+% \def\math_stackers_regular
+% {\mathstylehbox{\usemathstackerscolorparameter\c!color
+% \hskip\d_math_stackers_offset_l
+% \Umathaccent\zerocount\zerocount\scratchunicode
+% {\hskip\dimexpr\scratchwidth-\d_math_stackers_offset_l-\d_math_stackers_offset_r}%
+% \hskip\d_math_stackers_offset_r
+% }}
+
+% \def\math_stackers_stretch % we don't have that one yet
+% {\mathstylehbox{\usemathstackerscolorparameter\c!color
+% \hskip\d_math_stackers_offset_l
+% \Umathaccent\zerocount\zerocount\scratchunicode
+% {\hskip\dimexpr\hsize-\d_math_stackers_offset_l-\d_math_stackers_offset_r}%
+% \hskip\d_math_stackers_offset_r
+% }}
-\def\math_stackers_stretch % we don't have that one yet
+\def\math_stackers_regular
{\mathstylehbox{\usemathstackerscolorparameter\c!color
\hskip\d_math_stackers_offset_l
- \Umathaccent\fam\zerocount\scratchunicode
- {\hskip\dimexpr\hsize-\d_math_stackers_offset_l-\d_math_stackers_offset_r}%
+ \Uhextensible
+ middle
+ width \dimexpr\scratchwidth-\d_math_stackers_offset_l-\d_math_stackers_offset_r\relax
+ \zerocount\scratchunicode
+ \relax
\hskip\d_math_stackers_offset_r
}}
@@ -116,7 +130,7 @@
% $\Umathaccent 0 0 "2190{x}$ \par $\Umathaccent 0 0 "27F8{x}$\par
% $\Udelimiterunder 0 "2190{x}$ \par $\Udelimiterunder 0 "27F8{x}$\par
-\setvalue{\??mathextensiblefallbacks}%
+\defcsname\??mathextensiblefallbacks\endcsname
{\hpack{\vrule\s!width\scratchwidth\s!height.1\mathexheight\s!depth\zeropoint}}
% \def\math_stackers_with_fallback#codepoint%
@@ -153,7 +167,7 @@
\let\math_stackers_skip \hskip}
\def\math_stackers_skip_indeed#amount%
- {\filledhboxk{\unsetteststrut\strut\hskip#amount}} % \dontshowstruts
+ {\filledhboxk{\strut\hskip#amount}}
\let\math_stackers_start_tagged_mid\relax
\let\math_stackers_start_tagged_top\relax
@@ -177,15 +191,16 @@
[%c!alternative=\v!text, % text | mathematics
\c!left=,
\c!right=,
- \c!mathclass=\s!rel,
+ \c!mathclass=\s!relation,
\c!alternative=\v!normal,
- \c!voffset=.25\mathexheight,
+ \c!voffset=.25\mathexheight, % maybe less
\c!hoffset=\zeropoint,
\c!topoffset=\zeropoint, % for manual italic correction
\c!distance=\mathstackersparameter\c!voffset, % distance between symbol and base (can be different from voffset)
\c!minheight=\mathexheight,
\c!mindepth=\zeropoint,
- \c!minwidth=.5\mathemwidth,
+ % \c!minwidth=.5\mathemwidth,
+ \c!minwidth=.25\mathemwidth, % \iota
\c!order=\v!normal,
\c!strut=,
\c!color=, % todo: when I need it
@@ -201,19 +216,19 @@
\installcorenamespace {mathstackerslocation}
\installcorenamespace {mathstackersalternative}
-\letvalue{\??mathstackerslocation\v!top }\plusone % on top of baseline
-\letvalue{\??mathstackerslocation\v!high }\plustwo % 25 % down
-\letvalue{\??mathstackerslocation\v!middle }\plusthree % centered
-\letvalue{\??mathstackerslocation\v!low }\plusfour % 75 % down
-\letvalue{\??mathstackerslocation\v!bottom }\plusfive % below baseline
-\letvalue{\??mathstackerslocation }\zerocount
+\letcsname\??mathstackerslocation\v!top \endcsname\plusone % on top of baseline
+\letcsname\??mathstackerslocation\v!high \endcsname\plustwo % 25 % down
+\letcsname\??mathstackerslocation\v!middle \endcsname\plusthree % centered
+\letcsname\??mathstackerslocation\v!low \endcsname\plusfour % 75 % down
+\letcsname\??mathstackerslocation\v!bottom \endcsname\plusfive % below baseline
+\letcsname\??mathstackerslocation \endcsname\zerocount
%D First we implement the helper that deals with an extensible in the middle and
%D top and|/|or bottom texts:
-\let\m_math_stackers_text_top \empty
-\let\m_math_stackers_text_bottom\empty
-\let\m_math_stackers_text_middle\empty
+\lettonothing\m_math_stackers_text_top
+\lettonothing\m_math_stackers_text_bottom
+\lettonothing\m_math_stackers_text_middle
\def\math_stackers_flushtext#command#text%
{\ifdim\scratchleftoffset >\zeropoint\math_stackers_skip\scratchleftoffset \fi
@@ -242,8 +257,8 @@
% no checking, we assume sane use
-\letvalue{\??mathstackersalternative\v!normal }\math_stackers_content
-\letvalue{\??mathstackersalternative\v!default}\math_stackers_content
+\letcsname\??mathstackersalternative\v!normal \endcsname\math_stackers_content
+\letcsname\??mathstackersalternative\v!default\endcsname\math_stackers_content
\setupmathstackers
[\c!mp=math:stacker:\number\scratchunicode,
@@ -251,7 +266,7 @@
\c!mpdepth=\mathchardp\scratchunicode,
\c!mpoffset=.25\mathexheight]
-\setvalue{\??mathstackersalternative\v!mp}%
+\defcsname\??mathstackersalternative\v!mp\endcsname
{\normalexpanded{\math_stackers_mp_box
{\the\dimexpr\mathstackersparameter\c!mpheight}%
{\the\dimexpr\mathstackersparameter\c!mpdepth}%
@@ -284,8 +299,8 @@
% heads/tails + hoffset
\orelse\ifx\p_offset\v!min
% heads/tails - hoffset
- \advance\scratchleftoffset -\scratchhoffset
- \advance\scratchrightoffset-\scratchhoffset
+ \advanceby\scratchleftoffset -\scratchhoffset
+ \advanceby\scratchrightoffset-\scratchhoffset
\else % \v!normal
% hoffset
\scratchleftoffset\zeropoint
@@ -313,8 +328,8 @@
\scratchdepth\scratchdimen
\dp\scratchboxthree\scratchdepth
\fi
- \advance\scratchtopoffset -\scratchheight
- \advance\scratchbottomoffset-\scratchdepth
+ \advanceby\scratchtopoffset -\scratchheight
+ \advanceby\scratchbottomoffset-\scratchdepth
\ifdim\scratchtopoffset<\zeropoint
\scratchtopoffset\zeropoint
\fi
@@ -327,7 +342,7 @@
\edef\currentmathstackers{#category}%
\mathstackersparameter\c!left\relax
\dostarttagged\t!mstacker\currentmathstackers
- \ifmmode\math_class_by_parameter\mathstackersparameter\else\dontleavehmode\fi
+ \ifmmode\math_atom_by_parameter\mathstackersparameter\else\dontleavehmode\fi
{\edef\p_offset {\mathstackersparameter\c!offset}%
\edef\p_location {\mathstackersparameter\c!location}%
\edef\p_strut {\mathstackersparameter\c!strut}%
@@ -370,7 +385,8 @@
\scratchwidth\mathcharwd\scratchunicode
\ifdim\wd\scratchboxone>\scratchwidth
\scratchwidth\wd\scratchboxone
- \orelse\ifdim\wd\scratchboxtwo>\scratchwidth
+ \fi % no \elseif here
+ \ifdim\wd\scratchboxtwo>\scratchwidth
\scratchwidth\wd\scratchboxtwo
\fi
\else
@@ -398,13 +414,16 @@
\ifdim\scratchwidth<\scratchdimen
\scratchwidth\scratchdimen
\fi
- \advance\scratchwidth2\scratchhoffset
+ \advanceby\scratchwidth2\scratchhoffset
%
\ifcase#method\relax
\dostarttagged\t!mstackermid\empty
\setbox\scratchboxthree\csname\??mathstackersalternative\p_alternative\endcsname
\dostoptagged
\fi
+ \ifdim\wd\scratchboxthree>\scratchwidth
+ \scratchwidth\wd\scratchboxthree
+ \fi
%
\ifdim\wd\scratchboxone<\scratchwidth
\setbox\scratchboxone\hpack to \scratchwidth{\hss\unhbox\scratchboxone\hss}% unhboxing makes leaders work
@@ -492,9 +511,9 @@
\permanent\tolerant\protected\def\definemathextensible[#1]#*[#2]#*[#3]% category name unicode
{\ifarguments\or\or
- \frozen\setuevalue{#1}{\math_stackers_auto_normal\noexpand\currentmathstackers{\number#2}}%
+ \frozen\protected\edefcsname#1\endcsname{\math_stackers_auto_normal\noexpand\currentmathstackers{\number#2}}%
\or
- \frozen\setuevalue{#2}{\math_stackers_auto_normal{#1}{\number#3}}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_auto_normal{#1}{\number#3}}%
\fi}
\tolerant\protected\def\math_stackers_auto_normal#1#2#*[#3]#:#=#*#=%
@@ -522,20 +541,6 @@
{\math_stackers_triplet\zerocount{#category}{#codepoint}{#toptext}{#bottomtext}%
\endgroup}
-%D The next one deals with under and over extensibles (arrows mostly):
-
-\installcorenamespace {mathclasses}
-
-\letvalue{\??mathclasses }\mathord
-\letvalue{\??mathclasses rel}\mathrel
-\letvalue{\??mathclasses ord}\mathord
-
-\def\math_class_by_parameter#1%
- {\normalexpanded{\noexpand\math_class_by_parameter_indeed{#1\c!mathclass}}}
-
-\def\math_class_by_parameter_indeed#1%
- {\csname\??mathclasses\ifcsname\??mathclasses#1\endcsname#1\fi\endcsname}
-
% 1 0 name n 0 | 0 1 name n 0 | 1 1 name n n
\let\math_stackers_stop_group\endgroup
@@ -546,17 +551,18 @@
\edef\p_limits{\mathstackersparameter\c!mathlimits}%
\ifx\p_limits\v!yes
\def\math_stackers_stop_group{\egroup\endgroup\ordlimits}%
- \mathop\bgroup
+ % \mathop\bgroup
+ \mathaccent\bgroup
\else
\let\math_stackers_stop_group\endgroup
\fi}
-\newconstant\c_math_stackers_top
-\newconstant\c_math_stackers_bottom
-\newconstant\c_math_stackers_codepoint
-\newconstant\c_math_stackers_extracode
-\newdimen \d_math_stackers_offset_l
-\newdimen \d_math_stackers_offset_r
+\newconstant \c_math_stackers_top
+\newconstant \c_math_stackers_bottom
+\newconstant \c_math_stackers_codepoint
+\newconstant \c_math_stackers_extracode
+\newdimension\d_math_stackers_offset_l
+\newdimension\d_math_stackers_offset_r
\setupmathstackers[lt=\zeropoint,rt=\zeropoint,lb=\zeropoint,rb=\zeropoint]
@@ -571,7 +577,7 @@
\fi
\mathstackersparameter\c!left\relax
\dostarttagged\t!mstacker\currentmathstackers
- \ifmmode\math_class_by_parameter\mathstackersparameter\else\dontleavehmode\fi
+ \ifmmode\math_atom_by_parameter\mathstackersparameter\else\dontleavehmode\fi
{\edef\m_math_stackers_text_middle {#text}%
%
\edef\p_offset {\mathstackersparameter\c!offset}%
@@ -595,7 +601,7 @@
\ifdim\scratchwidth<\scratchdimen
\scratchwidth\scratchdimen
\fi
- \advance\scratchwidth2\scratchhoffset
+ \advanceby\scratchwidth2\scratchhoffset
%
%\scratchunicode\c_math_stackers_codepoint
\ifcase\c_math_stackers_bottom
@@ -680,33 +686,33 @@
\permanent\tolerant\protected\def\definemathoverextensible[#1]#*[#2]#*[#3]%
{\ifparameter#3\or
- \frozen\setuevalue{#2}{\math_stackers_make_double\plusone \zerocount{#1}{\number#3}{0}}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_make_double\plusone \zerocount{#1}{\number#3}{0}}%
\else
- \frozen\setuevalue{#1}{\math_stackers_make_double\plusone \zerocount\noexpand\currentmathstackers{\number#2}{0}}%
+ \frozen\protected\edefcsname#1\endcsname{\math_stackers_make_double\plusone \zerocount\noexpand\currentmathstackers{\number#2}{0}}%
\fi}
\permanent\tolerant\protected\def\definemathunderextensible[#1]#*[#2]#*[#3]%
{\ifparameter#3\or
- \frozen\setuevalue{#2}{\math_stackers_make_double\zerocount\plusone{#1}{\number#3}{0}}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_make_double\zerocount\plusone{#1}{\number#3}{0}}%
\else
- \frozen\setuevalue{#1}{\math_stackers_make_double\zerocount\plusone\noexpand\currentmathstackers{\number#2}{0}}%
+ \frozen\protected\edefcsname#1\endcsname{\math_stackers_make_double\zerocount\plusone\noexpand\currentmathstackers{\number#2}{0}}%
\fi}
\permanent\tolerant\protected\def\definemathdoubleextensible[#1]#*[#2]#*[#3]#*[#4]%
{\ifparameter#4\or
- \frozen\setuevalue{#2}{\math_stackers_make_double\plusone \plusone{#1}{\number#3}{\number#4}}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_make_double\plusone \plusone{#1}{\number#3}{\number#4}}%
\else
- \frozen\setuevalue{#1}{\math_stackers_make_double\plusone \plusone\noexpand\currentmathstackers{\number#2}{\number#3}}%
+ \frozen\protected\edefcsname#1\endcsname{\math_stackers_make_double\plusone \plusone\noexpand\currentmathstackers{\number#2}{\number#3}}%
\fi}
\permanent\tolerant\protected\def\definemathover[#category]#spacer[#command]#spacer[#topcode]%
- {\frozen\setuvalue{#command}{\math_stackers_handle_direct\plusone\zerocount{#category}{#topcode}{0}}}
+ {\frozen\protected\defcsname#command\endcsname{\math_stackers_handle_direct\plusone\zerocount{#category}{#topcode}{0}}}
\permanent\tolerant\protected\def\definemathunder[#category]#spacer[#command]#spacer[#bottomcode]%
- {\frozen\setuvalue{#command}{\math_stackers_handle_direct\zerocount\plusone{#category}{#bottomcode}{0}}}
+ {\frozen\protected\defcsname#command\endcsname{\math_stackers_handle_direct\zerocount\plusone{#category}{#bottomcode}{0}}}
\permanent\tolerant\protected\def\definemathdouble[#category]#spacer[#command]#spacer[#topcode]#spacer[#bottomcode]%
- {\frozen\setuvalue{#command}{\math_stackers_handle_direct\plusone\plusone{#category}{#topcode}{#bottomcode}}}
+ {\frozen\protected\defcsname#command\endcsname{\math_stackers_handle_direct\plusone\plusone{#category}{#topcode}{#bottomcode}}}
\permanent\tolerant\protected\def\mathover[#category]#spacer[#settings]#:#topcode#text%
{\begingroup
@@ -758,7 +764,7 @@
{\math_stackers_start_group{#category}%
\mathstackersparameter\c!left\relax
\dostarttagged\t!mstacker\currentmathstackers
- \ifmmode\math_class_by_parameter\mathstackersparameter\else\dontleavehmode\fi
+ \ifmmode\math_atom_by_parameter\mathstackersparameter\else\dontleavehmode\fi
{\edef\currentmathstackers{#category}%
%
\edef\p_offset {\mathstackersparameter\c!offset}%
@@ -806,7 +812,7 @@
\ifdim\scratchwidth<\scratchdimen
\scratchwidth\scratchdimen
\fi
- \advance\scratchwidth2\scratchhoffset
+ \advanceby\scratchwidth2\scratchhoffset
%
\ifdim\wd\scratchboxone<\scratchwidth
\setbox\scratchboxone\hpack to \scratchwidth{\hss\unhbox\scratchboxone\hss}%
@@ -883,16 +889,16 @@
\permanent\tolerant\protected\def\definemathovertextextensible[#1]#*[#2]#*[#3]%
{\ifparameter#3\or
- \frozen\setuevalue{#2}{\math_stackers_make_double_text\plusone{#1}{\number#3}}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_make_double_text\plusone{#1}{\number#3}}%
\else
- \frozen\setuevalue{#1}{\math_stackers_make_double_text\plusone\noexpand\currentmathstackers{\number#2}}%
+ \frozen\protected\edefcsname#1\endcsname{\math_stackers_make_double_text\plusone\noexpand\currentmathstackers{\number#2}}%
\fi}
\permanent\tolerant\protected\def\definemathundertextextensible[#1]#*[#2]#*[#3]%
{\ifparameter#3\or
- \frozen\setuevalue{#2}{\math_stackers_make_double_text\zerocount{#1}{\number#3}}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_make_double_text\zerocount{#1}{\number#3}}%
\else
- \frozen\setuevalue{#1}{\math_stackers_make_double_text\zerocount\noexpand\currentmathstackers{\number#2}}%
+ \frozen\protected\edefcsname#1\endcsname{\math_stackers_make_double_text\zerocount\noexpand\currentmathstackers{\number#2}}%
\fi}
\permanent\tolerant\protected\def\mathovertext[#category]%
@@ -917,11 +923,11 @@
\permanent\tolerant\protected\def\definemathtriplet[#1]#*[#2]#*[#3]% category name default
{\ifarguments\or
- \frozen\setuevalue{#1}{\math_stackers_auto_triplet_nop[\noexpand\currentmathstackers]}%
+ \frozen\protected\edefcsname#1\endcsname{\math_stackers_auto_triplet_nop[\noexpand\currentmathstackers]}%
\or
- \frozen\setuevalue{#2}{\math_stackers_auto_triplet_nop[#1]}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_auto_triplet_nop[#1]}%
\or
- \frozen\setuevalue{#2}{\math_stackers_auto_triplet_yes[#1][#3]}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_auto_triplet_yes[#1][#3]}%
\fi}
\tolerant\protected\def\math_stackers_auto_triplet_yes[#1][#2]#*[#3]#:#=#*#=% [#2]% #2 gobble spaces
@@ -982,7 +988,7 @@
\definemathstackers
[\v!vfenced]
[\v!both]
- [\c!mathclass=\s!ord,
+ [\c!mathclass=\s!ordinary,
\c!mathlimits=\v!yes]
% these are needed for mathml:
@@ -1028,8 +1034,8 @@
% \setupbodyfont[xits] \getbuffer
% \setupbodyfont[cambria] \getbuffer
-\immutable\protected\def\normaldoublebrace {\Umathaccents 0 \defaultmathfamily "23DE 0 \defaultmathfamily "23DF }
-\immutable\protected\def\normaldoubleparent{\Umathaccents 0 \defaultmathfamily "23DC 0 \defaultmathfamily "23DD }
+\immutable\protected\def\normaldoublebrace {\Umathaccent \s!both \zerocount \zerocount "23DE \zerocount \zerocount "23DF }
+\immutable\protected\def\normaldoubleparent{\Umathaccent \s!both \zerocount \zerocount "23DC \zerocount \zerocount "23DD }
% let's keep this
@@ -1070,6 +1076,7 @@
\definemathextensible [\v!reverse] [xrightharpoondown] ["21C1]
\definemathextensible [\v!reverse] [xrightharpoonup] ["21C0]
\definemathextensible [\v!reverse] [xrightoverleftarrow] ["21C4]
+\definemathextensible [\v!reverse] [xleftoverrightarrow] ["21C6]
\definemathextensible [\v!reverse] [xleftrightharpoons] ["21CB]
\definemathextensible [\v!reverse] [xrightleftharpoons] ["21CC]
\definemathextensible [\v!reverse] [xtriplerel] ["2261]
@@ -1092,28 +1099,11 @@
\definemathextensible [\v!mathematics] [mrightharpoondown] ["21C1]
\definemathextensible [\v!mathematics] [mrightharpoonup] ["21C0]
\definemathextensible [\v!mathematics] [mrightoverleftarrow] ["21C4]
+\definemathextensible [\v!mathematics] [mleftoverrightarrow] ["21C6]
\definemathextensible [\v!mathematics] [mleftrightharpoons] ["21CB]
\definemathextensible [\v!mathematics] [mrightleftharpoons] ["21CC]
\definemathextensible [\v!mathematics] [mtriplerel] ["2261]
-\definemathextensible [\v!mathematics] [eleftarrowfill] ["2190] % ["27F5]
-\definemathextensible [\v!mathematics] [erightarrowfill] ["2192] % ["27F6]
-\definemathextensible [\v!mathematics] [eleftrightarrowfill] ["27F7]
-\definemathextensible [\v!mathematics] [etwoheadrightarrowfill] ["27F9]
-\definemathextensible [\v!mathematics] [eleftharpoondownfill] ["21BD]
-\definemathextensible [\v!mathematics] [eleftharpoonupfill] ["21BC]
-\definemathextensible [\v!mathematics] [erightharpoondownfill] ["21C1]
-\definemathextensible [\v!mathematics] [erightharpoonupfill] ["21C0]
-
-\definemathextensible [\v!mathematics] [eoverbarfill] ["FE33E]
-\definemathextensible [\v!mathematics] [eunderbarfill] ["FE33F]
-\definemathextensible [\v!mathematics] [eoverbracefill] ["FE3DE]
-\definemathextensible [\v!mathematics] [eunderbracefill] ["FE3DF]
-\definemathextensible [\v!mathematics] [eoverparentfill] ["FE3DC]
-\definemathextensible [\v!mathematics] [eunderparentfill] ["FE3DD]
-\definemathextensible [\v!mathematics] [eoverbracketfill] ["FE3B4]
-\definemathextensible [\v!mathematics] [eunderbracketfill] ["FE3B5]
-
\definemathextensible [\v!text] [trel] ["002D]
\definemathextensible [\v!text] [tequal] ["003D]
\definemathextensible [\v!text] [tmapsto] ["21A6]
@@ -1132,6 +1122,7 @@
\definemathextensible [\v!text] [trightharpoondown] ["21C1]
\definemathextensible [\v!text] [trightharpoonup] ["21C0]
\definemathextensible [\v!text] [trightoverleftarrow] ["21C4]
+\definemathextensible [\v!text] [tleftoverrightarrow] ["21C6]
\definemathextensible [\v!text] [tleftrightharpoons] ["21CB]
\definemathextensible [\v!text] [trightleftharpoons] ["21CC]
\definemathextensible [\v!text] [ttriplerel] ["2261]
@@ -1169,41 +1160,37 @@
%D in the backend (okay, we still need to deal with some cut and paste issues but at
%D least we now know what we deal with.
-% alternatively we can move the original to FE*
+\definemathoverextensible [\v!vfenced] [overbar] ["203E]
+\definemathunderextensible [\v!vfenced] [underbar] ["203E] % ["0332]
+\definemathdoubleextensible [\v!vfenced] [doublebar] ["203E] ["203E] % ["0332]
-\definemathoverextensible [\v!vfenced] [overbar] ["FE33E] % ["203E]
-\definemathunderextensible [\v!vfenced] [underbar] ["FE33F] % ["203E]
-\definemathdoubleextensible [\v!vfenced] [doublebar] ["FE33E] ["FE33F]
+\definemathoverextensible [\v!vfenced] [overbrace] ["23DE]
+\definemathunderextensible [\v!vfenced] [underbrace] ["23DF]
+\definemathdoubleextensible [\v!vfenced] [doublebrace] ["23DE] ["23DF]
-\definemathoverextensible [\v!vfenced] [overbrace] ["FE3DE] % ["023DE]
-\definemathunderextensible [\v!vfenced] [underbrace] ["FE3DF] % ["023DF]
-\definemathdoubleextensible [\v!vfenced] [doublebrace] ["FE3DE] ["FE3DF]
+\definemathoverextensible [\v!vfenced] [overparent] ["23DC]
+\definemathunderextensible [\v!vfenced] [underparent] ["23DD]
+\definemathdoubleextensible [\v!vfenced] [doubleparent] ["23DC] ["23DD]
-\definemathoverextensible [\v!vfenced] [overparent] ["FE3DC] % ["023DC]
-\definemathunderextensible [\v!vfenced] [underparent] ["FE3DD] % ["023DD]
-\definemathdoubleextensible [\v!vfenced] [doubleparent] ["FE3DC] ["FE3DD]
-
-\definemathoverextensible [\v!vfenced] [overbracket] ["FE3B4] % ["023B4]
-\definemathunderextensible [\v!vfenced] [underbracket] ["FE3B5] % ["023B5]
-\definemathdoubleextensible [\v!vfenced] [doublebracket] ["FE3B4] ["FE3B5]
-
-% \protected\def\mathopwithlimits#1#2{\mathop{#1{#2}}\limits}
+\definemathoverextensible [\v!vfenced] [overbracket] ["23B4]
+\definemathunderextensible [\v!vfenced] [underbracket] ["23B5]
+\definemathdoubleextensible [\v!vfenced] [doublebracket] ["23B4] ["23B5]
%D For mathml:
-\definemathdoubleextensible [\v!both] [overbarunderbar] ["FE33E] ["FE33F]
-\definemathdoubleextensible [\v!both] [overbraceunderbrace] ["FE3DE] ["FE3DF]
-\definemathdoubleextensible [\v!both] [overparentunderparent] ["FE3DC] ["FE3DD]
-\definemathdoubleextensible [\v!both] [overbracketunderbracket] ["FE3B4] ["FE3B5]
+\definemathdoubleextensible [\v!both] [overbarunderbar] ["203E] ["203E]
+\definemathdoubleextensible [\v!both] [overbraceunderbrace] ["23DE] ["23DF]
+\definemathdoubleextensible [\v!both] [overparentunderparent] ["23DC] ["23DD]
+\definemathdoubleextensible [\v!both] [overbracketunderbracket] ["23B4] ["23B5]
-\definemathovertextextensible [\v!bothtext] [overbartext] ["FE33E]
-\definemathundertextextensible [\v!bothtext] [underbartext] ["FE33F]
-\definemathovertextextensible [\v!bothtext] [overbracetext] ["FE3DE]
-\definemathundertextextensible [\v!bothtext] [underbracetext] ["FE3DF]
-\definemathovertextextensible [\v!bothtext] [overparenttext] ["FE3DC]
-\definemathundertextextensible [\v!bothtext] [underparenttext] ["FE3DD]
-\definemathovertextextensible [\v!bothtext] [overbrackettext] ["FE3B4]
-\definemathundertextextensible [\v!bothtext] [underbrackettext] ["FE3B5]
+\definemathovertextextensible [\v!bothtext] [overbartext] ["203E]
+\definemathundertextextensible [\v!bothtext] [underbartext] ["203E]
+\definemathovertextextensible [\v!bothtext] [overbracetext] ["23DE]
+\definemathundertextextensible [\v!bothtext] [underbracetext] ["23DF]
+\definemathovertextextensible [\v!bothtext] [overparenttext] ["23DC]
+\definemathundertextextensible [\v!bothtext] [underparenttext] ["23DD]
+\definemathovertextextensible [\v!bothtext] [overbrackettext] ["23B4]
+\definemathundertextextensible [\v!bothtext] [underbrackettext] ["23B5]
%D Some bonus ones (for the moment here):
@@ -1217,8 +1204,7 @@
\definemathextensible [\v!chemistry] [cleftarrow] ["2190]
\definemathextensible [\v!chemistry] [crightarrow] ["2192]
\definemathextensible [\v!chemistry] [crightoverleftarrow] ["21C4]
-
-% for the moment:
+\definemathextensible [\v!chemistry] [cleftoverrightarrow] ["21C6]
\def\math_stackers_hacked_fill#1#2#3%
{\mathematics
@@ -1227,38 +1213,39 @@
\thickmuskip \zeromuskip
\medmuskip \zeromuskip
\thinmuskip \zeromuskip
- #1%
- \mkern-7\onemuskip
- \cleaders\mathstylehbox{\mkern-2\onemuskip#2\mkern-2\onemuskip}\hfill
- \mkern-7\onemuskip
- #3%
+ \tinymuskip \zeromuskip
+ \pettymuskip \zeromuskip
+ \ifrelax#1%
+ \cleaders\mathstylehbox{#2}\hfill
+ \else
+ #1%
+ \mkern-7\onemuskip
+ \cleaders\mathstylehbox{\mkern-2\onemuskip#2\mkern-2\onemuskip}\hfill
+ \mkern-7\onemuskip
+ #3%
+ \fi
\endgroup}}
-% These will be defined in char-def as well once we have \leaders<number>
-
-\immutable\protected\def\rightarrowfill {\math_stackers_hacked_fill \relbar \relbar \rightarrow}
-\immutable\protected\def\leftarrowfill {\math_stackers_hacked_fill \leftarrow \relbar \relbar }
-\immutable\protected\def\rightoverleftarrowfill{\math_stackers_hacked_fill \ctxdoublearrowfillleftend\ctxdoublearrowfillmiddlepart\ctxdoublearrowfillrightend}
-\immutable\protected\def\equalfill {\math_stackers_hacked_fill \Relbar \Relbar \Relbar}
-\immutable\protected\def\Rightarrowfill {\math_stackers_hacked_fill \Relbar \Relbar \Rightarrow}
-\immutable\protected\def\Leftarrowfill {\math_stackers_hacked_fill \Leftarrow \Relbar \Relbar}
-\immutable\protected\def\Leftrightarrowfill {\math_stackers_hacked_fill \Leftarrow \Relbar \Rightarrow}
-\immutable\protected\def\leftrightarrowfill {\math_stackers_hacked_fill \leftarrow \relbar \rightarrow}
-\immutable\protected\def\mapstofill {\math_stackers_hacked_fill{\mapstochar\relbar} \relbar \rightarrow}
-\immutable\protected\def\twoheadrightarrowfill {\math_stackers_hacked_fill \relbar \relbar \twoheadrightarrow}
-\immutable\protected\def\twoheadleftarrowfill {\math_stackers_hacked_fill \twoheadleftarrow \relbar \relbar}
-\immutable\protected\def\rightharpoondownfill {\math_stackers_hacked_fill \relbar \relbar \rightharpoondown}
-\immutable\protected\def\rightharpoonupfill {\math_stackers_hacked_fill \relbar \relbar \rightharpoonup}
-\immutable\protected\def\leftharpoondownfill {\math_stackers_hacked_fill \leftharpoondown \relbar \relbar}
-\immutable\protected\def\leftharpoonupfill {\math_stackers_hacked_fill \leftharpoonup \relbar \relbar}
-\immutable\protected\def\hookleftfill {\math_stackers_hacked_fill \leftarrow \relbar {\relbar\joinrel\rhook}}
-\immutable\protected\def\hookrightfill {\math_stackers_hacked_fill{\lhook\joinrel\relbar} \relbar \rightarrow}
-\immutable\protected\def\relfill {\math_stackers_hacked_fill \relbar \relbar \relbar}
-\immutable\protected\def\triplerelfill {\math_stackers_hacked_fill \equiv \equiv \equiv}
-
-% \permanent\protected\def\singlebond{{\xrel}} % or \def\singlebond{{\xrel[2]}}
-% \permanent\protected\def\doublebond{{\xequal}}
-% \permanent\protected\def\triplebond{{\xtriplerel}}
+\immutable\protected\def\rightarrowfill {\math_stackers_hacked_fill \relbar \relbar \rightarrow}
+\immutable\protected\def\leftarrowfill {\math_stackers_hacked_fill \leftarrow \relbar \relbar}
+\immutable\protected\def\rightoverleftarrowfill{\math_stackers_hacked_fill \relax \crightoverleftarrow \relax}
+\immutable\protected\def\leftoverrightarrowfill{\math_stackers_hacked_fill \relax \cleftoverrightarrow \relax}
+\immutable\protected\def\equalfill {\math_stackers_hacked_fill \Relbar \Relbar \Relbar}
+\immutable\protected\def\Rightarrowfill {\math_stackers_hacked_fill \Relbar \Relbar \Rightarrow}
+\immutable\protected\def\Leftarrowfill {\math_stackers_hacked_fill \Leftarrow \Relbar \Relbar}
+\immutable\protected\def\Leftrightarrowfill {\math_stackers_hacked_fill \Leftarrow \Relbar \Rightarrow}
+\immutable\protected\def\leftrightarrowfill {\math_stackers_hacked_fill \leftarrow \relbar \rightarrow}
+\immutable\protected\def\mapstofill {\math_stackers_hacked_fill{\mapstochar\relbar} \relbar \rightarrow}
+\immutable\protected\def\twoheadrightarrowfill {\math_stackers_hacked_fill \relbar \relbar \twoheadrightarrow}
+\immutable\protected\def\twoheadleftarrowfill {\math_stackers_hacked_fill \twoheadleftarrow \relbar \relbar}
+\immutable\protected\def\rightharpoondownfill {\math_stackers_hacked_fill \relbar \relbar \rightharpoondown}
+\immutable\protected\def\rightharpoonupfill {\math_stackers_hacked_fill \relbar \relbar \rightharpoonup}
+\immutable\protected\def\leftharpoondownfill {\math_stackers_hacked_fill \leftharpoondown \relbar \relbar}
+\immutable\protected\def\leftharpoonupfill {\math_stackers_hacked_fill \leftharpoonup \relbar \relbar}
+\immutable\protected\def\hookleftfill {\math_stackers_hacked_fill \leftarrow \relbar {\relbar\joinrel\rhook}}
+\immutable\protected\def\hookrightfill {\math_stackers_hacked_fill{\lhook\joinrel\relbar}\relbar \rightarrow}
+\immutable\protected\def\relfill {\math_stackers_hacked_fill \relbar \relbar \relbar}
+\immutable\protected\def\triplerelfill {\math_stackers_hacked_fill \equiv \equiv \equiv}
%D For the moment (needs checking):
@@ -1275,13 +1262,14 @@
\defineextensiblefiller [twoheadleftarrowfill] ["219E]
\defineextensiblefiller [twoheadrightarrowfill] ["21A0]
\defineextensiblefiller [mapstofill] ["21A6]
-%defineextensiblefiller [hookleftarrowfill] ["21A9]
-%defineextensiblefiller [hookrightarrowfill] ["21AA]
+%defineextensiblefiller [hookleftarrowfill] ["21A9] % not in fonts
+%defineextensiblefiller [hookrightarrowfill] ["21AA] % not in fonts
\defineextensiblefiller [leftharpoondownfill] ["21BD]
\defineextensiblefiller [leftharpoonupfill] ["21BC]
\defineextensiblefiller [rightharpoondownfill] ["21C1]
\defineextensiblefiller [rightharpoonupfill] ["21C0]
\defineextensiblefiller [rightoverleftarrowfill] ["21C4]
+\defineextensiblefiller [leftoverrightarrowfill] ["21C6]
%defineextensiblefiller [leftrightharpoonsfill] ["21CB] % yet undefined
%defineextensiblefiller [rightleftharpoonsfill] ["21CC] % yet undefined
\defineextensiblefiller [triplerelfill] ["2261]
@@ -1289,28 +1277,7 @@
\defineextensiblefiller [Leftarrowfill] ["27F8]
\defineextensiblefiller [Rightarrowfill] ["27F9]
\defineextensiblefiller [Leftrightarrowfill] ["27FA]
-%\defineextensiblefiller[Rightleftarrowfill] [.....]
-
-% These are fishy ... we need to check this because now these commands relax (there
-% are some entries in char-def.)
-%
-% %definemathoverextensible [overbarfill] ["FE33E]
-% %definemathunderextensible [underbarfill] ["FE33F]
-% \definemathoverextensible [overbracefill] ["FE3DE]
-% \definemathunderextensible [underbracefill] ["FE3DF]
-% \definemathoverextensible [overparentfill] ["FE3DC]
-% \definemathunderextensible [underparentfill] ["FE3DD]
-% \definemathoverextensible [overbracketfill] ["FE3B4]
-% \definemathunderextensible [underbracketfill] ["FE3B5]
-%
-% %defineextensiblefiller [overbarfill] ["FE33E]
-% %defineextensiblefiller [underbarfill] ["FE33F]
-% \defineextensiblefiller [overbracefill] ["FE3DE]
-% \defineextensiblefiller [underbracefill] ["FE3DF]
-% \defineextensiblefiller [overparentfill] ["FE3DC]
-% \defineextensiblefiller [underparentfill] ["FE3DD]
-% \defineextensiblefiller [overbracketfill] ["FE3B4]
-% \defineextensiblefiller [underbracketfill] ["FE3B5]
+\defineextensiblefiller [Rightleftarrowfill] ["27FA]
%D Extra:
@@ -1326,9 +1293,9 @@
\permanent\tolerant\protected\def\definemathunstacked[#1]#*[#2]#*[#3]% category name unicode
{\ifarguments\or\or
- \frozen\setuevalue{#1}{\math_stackers_unstacked_normal\noexpand\currentmathstackers{\number#2}}%
+ \frozen\protected\edefcsname#1\endcsname{\math_stackers_unstacked_normal\noexpand\currentmathstackers{\number#2}}%
\else
- \frozen\setuevalue{#2}{\math_stackers_unstacked_normal{#1}{\number#3}}%
+ \frozen\protected\edefcsname#2\endcsname{\math_stackers_unstacked_normal{#1}{\number#3}}%
\fi}
\protected\def\math_stackers_unstacked_normal#category#codepoint%
@@ -1338,15 +1305,15 @@
\ifempty\p_moffset \else
\mskip\p_moffset\relax
\fi
- \ifmmode\math_class_by_parameter\mathstackersparameter\else\dontleavehmode\fi
+ \ifmmode\math_atom_by_parameter\mathstackersparameter\else\dontleavehmode\fi
{\usemathstackerscolorparameter\c!color
- \Umathchar\zerocount\defaultmathfamily#codepoint}%
+ \Umathchar\zerocount\zerocount#codepoint}%
\ifempty\p_moffset \else
\mskip\p_moffset\relax
\fi
\endgroup}
-\definemathstackers [\v!wide] [\c!moffset=\thickmuskip,\c!mathclass=\s!rel]
+\definemathstackers [\v!wide] [\c!moffset=\thickmuskip,\c!mathclass=\s!relation]
\definemathunstacked [\v!wide] [And] ["0026] % \mathrel{\;&\;}
\definemathunstacked [\v!wide] [impliedby] ["27F8] % \mathrel{\;\Longleftarrow\;}
@@ -1359,7 +1326,7 @@
[\v!symbol]
[\c!voffset=-.3\mathexheight,
\c!hoffset=\zeropoint,
- \c!mathclass=ord,
+ \c!mathclass=\s!ordinary,
\c!topoffset=.4\mathemwidth, % poor man's italic correction
\c!middlecommand=\mathematics]
@@ -1370,10 +1337,10 @@
% \mathrel{\mathop{\hbox to \dimen0{\hss\copy4\hss}}
% \limits\normalsuperscript{\box0}\normalsubscript{\box2}}%
-% $\Uoverdelimiter \defaultmathfamily "2194 {xxxx}$
-% $\Uunderdelimiter\defaultmathfamily "2194 {xxxx}$
-% $\Udelimiterover \defaultmathfamily "2194 {xxxx}$
-% $\Udelimiterunder\defaultmathfamily "2194 {xxxx}$
-% $\Udelimiterover \defaultmathfamily "219A {\Udelimiterunder \defaultmathfamily "219B {xxxx}}$
+% $\Uoverdelimiter \zerocount "2194 {xxxx}$
+% $\Uunderdelimiter\zerocount "2194 {xxxx}$
+% $\Udelimiterover \zerocount "2194 {xxxx}$
+% $\Udelimiterunder\zerocount "2194 {xxxx}$
+% $\Udelimiterover \zerocount "219A {\Udelimiterunder \zerocount "219B {xxxx}}$
% $a \mathrel{\mathop{\filledhboxr{mid}}}\limits^{\filledhboxg{\strut top}}_{\filledhboxb{\strut bottom}} b$
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-tag.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-tag.lmt
index eb58b5450d5..eaba1ea5421 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-tag.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-tag.lmt
@@ -8,8 +8,13 @@ if not modules then modules = { } end modules ['math-tag'] = {
-- todo: have a local list with local tags that then get appended
-- todo: use tex.getmathcodes (no table)
+-- todo: add more spacing details + check text stuff for latest additions
+-- todo: some more font related cleanup + adaption to new scaling
+-- todo: tracing
+-- todo: maybe use lpeg matchers
--- use lpeg matchers
+-- todo: prime
+-- todo: middle in fraction
local find, match = string.find, string.match
local insert, remove, concat = table.insert, table.remove, table.concat
@@ -20,42 +25,48 @@ local nodes = nodes
local nuts = nodes.nuts
local tonut = nuts.tonut
-local getnext = nuts.getnext
-local getid = nuts.getid
local getchar = nuts.getchar
-local getfont = nuts.getfont
+local getprev = nuts.getprev
+local getcharspec = nuts.getcharspec
+local getdata = nuts.getdata
local getlist = nuts.getlist
local getfield = nuts.getfield
local getdisc = nuts.getdisc
-local getsubtype = nuts.getsubtype
local getattr = nuts.getattr
local getattrlist = nuts.getattrlist
local setattr = nuts.setattr
------ getcomponents = nuts.getcomponents -- not really needed
local getwidth = nuts.getwidth
+local getnumerator = nuts.getnumerator
+local getdenominator = nuts.getdenominator
+local getdelimiter = nuts.getdelimiter
+local getleftdelimiter = nuts.getleftdelimiter
+local getrightdelimiter = nuts.getrightdelimiter
+local getdegree = nuts.getdegree
+local gettop = nuts.gettop
+local getbottom = nuts.getbottom
+local getchoice = nuts.getchoice
+
local getnucleus = nuts.getnucleus
-local getsub = nuts.getsub
-local getsup = nuts.getsup
-local set_attributes = nuts.setattributes
+local setattributes = nuts.setattributes
local nextnode = nuts.traversers.node
local nodecodes = nodes.nodecodes
-local noad_code = nodecodes.noad -- attr nucleus sub sup
-local accent_code = nodecodes.accent -- attr nucleus sub sup accent
-local radical_code = nodecodes.radical -- attr nucleus sub sup left degree
-local fraction_code = nodecodes.fraction -- attr nucleus sub sup left right
-local subbox_code = nodecodes.subbox -- attr list
-local submlist_code = nodecodes.submlist -- attr list
-local mathchar_code = nodecodes.mathchar -- attr fam char
-local mathtextchar_code = nodecodes.mathtextchar -- attr fam char
-local delimiter_code = nodecodes.delimiter -- attr small_fam small_char large_fam large_char
-local style_code = nodecodes.style -- attr style
-local choice_code = nodecodes.choice -- attr display text script scriptscript
-local fence_code = nodecodes.fence -- attr subtype
+local noad_code = nodecodes.noad
+local accent_code = nodecodes.accent
+local radical_code = nodecodes.radical
+local fraction_code = nodecodes.fraction
+local subbox_code = nodecodes.subbox
+local submlist_code = nodecodes.submlist
+local mathchar_code = nodecodes.mathchar
+local mathtextchar_code = nodecodes.mathtextchar
+local delimiter_code = nodecodes.delimiter
+local style_code = nodecodes.style
+local choice_code = nodecodes.choice
+local fence_code = nodecodes.fence
local accentcodes = nodes.accentcodes
local fencecodes = nodes.fencecodes
@@ -64,9 +75,10 @@ local fixedtopaccent_code = accentcodes.fixedtop
local fixedbottomaccent_code = accentcodes.fixedbottom
local fixedbothaccent_code = accentcodes.fixedboth
-local leftfence_code = fencecodes.left
-local middlefence_code = fencecodes.middle
-local rightfence_code = fencecodes.right
+local leftfence_code = fencecodes.left
+local middlefence_code = fencecodes.middle
+local rightfence_code = fencecodes.right
+local operatorfence_code = fencecodes.operator
local kerncodes = nodes.kerncodes
@@ -94,12 +106,15 @@ local restart_tagged = tags.restart
local stop_tagged = tags.stop
local taglist = tags.taglist
-local chardata = characters.data
+----- chardata = characters.data
-local getmathcodes = tex.getmathcodes
-local mathcodes = mathematics.codes
-local ordinary_mathcode = mathcodes.ordinary
-local variable_mathcode = mathcodes.variable
+local getmathcodes = tex.getmathcodes
+----- mathcodes = mathematics.codes
+local mathcodes = mathematics.classes
+local ordinary_mathcode = mathcodes.ordinary
+local digit_mathcode = mathcodes.digit
+local punctuation_mathcode = mathcodes.punctuation
+local active_mathcode = mathcodes.active
local fromunicode16 = fonts.mappings.fromunicode16
local fontcharacters = fonts.hashes.characters
@@ -108,19 +123,31 @@ local report_tags = logs.reporter("structure","tags")
local process
+local function processnucleus(nucleus,prime)
+ if prime then
+ -- This should work wasn't it that browser handling of primes have an issue with
+ -- "big semi raised text" vs "small supposedly superscripted". So let's play safe
+ -- and use a superscript. Even then we get somewhat different positioning for the
+ -- same primed character in q sqrt and (e.g.) a sequential integral.
+ -- start_tagged("mrow", { prime = true })
+ start_tagged("msup", { prime = true })
+ process(nucleus)
+ process(prime)
+ stop_tagged()
+ else
+ process(nucleus)
+ end
+end
+
local function processsubsup(start)
-- At some point we might need to add an attribute signaling the
-- super- and subscripts because TeX and MathML use a different
-- order. The mrows are needed to keep mn's separated.
- local nucleus = getnucleus(start)
- local sup = getsup(start)
- local sub = getsub(start)
+ local nucleus, prime, sup, sub, presup, presub = getnucleus(start,true)
if sub then
if sup then
setattr(start,a_tagged,start_tagged("msubsup"))
- -- start_tagged("mrow")
- process(nucleus)
- -- stop_tagged()
+ processnucleus(nucleus,prime)
start_tagged("mrow", { subscript = true })
process(sub)
stop_tagged()
@@ -130,9 +157,7 @@ local function processsubsup(start)
stop_tagged()
else
setattr(start,a_tagged,start_tagged("msub"))
- -- start_tagged("mrow")
- process(nucleus)
- -- stop_tagged()
+ processnucleus(nucleus,prime)
start_tagged("mrow")
process(sub)
stop_tagged()
@@ -140,15 +165,13 @@ local function processsubsup(start)
end
elseif sup then
setattr(start,a_tagged,start_tagged("msup"))
- -- start_tagged("mrow")
- process(nucleus)
- -- stop_tagged()
+ processnucleus(nucleus,prime)
start_tagged("mrow")
process(sup)
stop_tagged()
stop_tagged()
else
- process(nucleus)
+ processnucleus(nucleus,prime)
end
end
@@ -161,17 +184,8 @@ local fencesstack = { }
-- glyph nodes and such can happen in under and over stuff
--- local function getunicode(n) -- instead of getchar
--- local char = getchar(n)
--- -- local font = getfontoffamily(getfield(n,"fam"))
--- local font = getfont(n)
--- local data = fontcharacters[font][char]
--- return data.unicode or char
--- end
-
local function getunicode(n) -- instead of getchar
- -- local char, font = isglyph(n) -- no, we have a mathchar
- local char, font = getchar(n), getfont(n)
+ local char, font = getcharspec(n)
local data = fontcharacters[font][char]
return data.unicode or char -- can be a table but unlikely for math characters
end
@@ -205,17 +219,28 @@ end
-- )
-- end
+-- I need to bring this in sync with new or removed mathml 3, not that there has
+-- been many changes. It will happen in sync with other mathml updates in context
+-- where we also keep adapting to a cycling between either or not support in
+-- browsers, the come-and-go of alternatives like ascii math and mathjax. It's the
+-- web and browser support that drives this, not tex and its community. So, maybe
+-- I'll add some more detail here, nto that it matters much in the long run where we
+-- only focus on structure and let the engine deal with the details. Another reason
+-- to update this is that we can add some tracing (lmtx only).
+
+-- This has been working ok for quite but in 2023 it's time to have a look at it
+-- again and see to what extend we need to adapt to new features. Around the time
+-- PG's Panopticom was put on youtube.
+
process = function(start) -- we cannot use the processor as we have no finalizers (yet)
local mtexttag = nil
- while start do
- local id = getid(start)
--- showtag(start,id,true)
+ for start, id, subtype in nextnode, start do -- current
if id == glyph_code or id == disc_code then
if not mtexttag then
mtexttag = start_tagged("mtext")
end
setattr(start,a_tagged,mtexttag)
- elseif mtexttag and id == kern_code and (getsubtype(start) == fontkern_code or getsubtype(start) == italickern_code) then -- italickern
+ elseif mtexttag and id == kern_code and subtype == fontkern_code or subtype == italickern_code then -- italickern
setattr(start,a_tagged,mtexttag)
else
if mtexttag then
@@ -225,26 +250,48 @@ process = function(start) -- we cannot use the processor as we have no finalizer
if id == mathchar_code then
local char = getchar(start)
local code = getmathcodes(char)
+-- local ch = chardata[char]
+-- local mc = ch and ch.mathclass
local tag
- if code == ordinary_mathcode or code == variable_mathcode then
- local ch = chardata[char]
- local mc = ch and ch.mathclass
- if mc == "number" then
- tag = "mn"
- elseif mc == "variable" or not mc then -- variable is default
- tag = "mi"
- else
- tag = "mo"
- end
+ local properties= { class = code }
+ -- we're a bit early so we can have active here and no rules get applied
+ -- so maybe we have to correct some later on
+ -- todo: we have way more now
+-- if code == ordinary_mathcode then
+-- if mc == "number" then
+-- tag = "mn"
+-- elseif mc == "variable" or not mc then -- variable is default
+-- tag = "mi"
+-- else
+-- tag = "mo"
+-- end
+-- else
+-- tag = "mo"
+-- end
+-- print(code,mathematics.classes[code])
+-- print(ordinary_mathcode,digit_mathcode,active_mathcode)
+ if code == ordinary_mathcode then
+ tag = "mi"
+ elseif code == digit_mathcode then
+ tag = "mn"
+-- elseif code == punctuation_mathcode or code == active_mathcode then
+-- tag = "mo"
else
tag = "mo"
end
+-- if mc == "open" or nc == "close" or mc == "middle" then
+-- properties = { maxsize = 1 }
+-- end
local a = getattr(start,a_mathcategory)
if a then
- setattr(start,a_tagged,start_tagged(tag,{ mathcategory = a }))
- else
- setattr(start,a_tagged,start_tagged(tag)) -- todo: a_mathcategory
+ -- todo / redo
+ if properties then
+ properties.mathcategory = a
+ else
+ properties = { mathcategory = a }
+ end
end
+ setattr(start,a_tagged,start_tagged(tag,properties))
stop_tagged()
-- showtag(start,id,false)
break -- okay?
@@ -287,7 +334,8 @@ process = function(start) -- we cannot use the processor as we have no finalizer
process(list)
end
else
- if tag ~= "mstackertop" and tag ~= "mstackermid" and tag ~= "mstackerbot" then
+if tag ~= "mtable" and tag ~= "mstackertop" and tag ~= "mstackermid" and tag ~= "mstackerbot" then
+-- if tag ~= "mstackertop" and tag ~= "mstackermid" and tag ~= "mstackerbot" then
tag = "mtext"
end
local text = start_tagged(tag)
@@ -297,7 +345,7 @@ process = function(start) -- we cannot use the processor as we have no finalizer
-- empty list
elseif not attr then
-- box comes from strange place
- set_attributes(list,a_tagged,text) -- only the first node ?
+ setattributes(list,a_tagged,text) -- only the first node ?
else
-- Beware, the first node in list is the actual list so we definitely
-- need to nest. This approach is a hack, maybe I'll make a proper
@@ -314,12 +362,12 @@ process = function(start) -- we cannot use the processor as we have no finalizer
-- local keep = { } -- win case we might need to move keep outside
for n, id, subtype in nextnode, list do
local mth = id == math_code and subtype
- if mth == 0 then -- hm left_code
- -- insert(keep,text)
- keep = text
- text = start_tagged("mrow")
- common = common + 1
- end
+if mth == 0 then -- begin in line
+ -- insert(keep,text)
+ keep = text
+ text = start_tagged("mrow")
+ common = common + 1
+end
local aa = getattr(n,a_tagged)
if aa then
local ac = cache[aa]
@@ -363,12 +411,12 @@ process = function(start) -- we cannot use the processor as we have no finalizer
runner(replace,depth+1)
end
end
- if mth == 1 then
- stop_tagged()
- -- text = remove(keep)
- text = keep
- common = common - 1
- end
+if mth == 1 then -- end in line
+ stop_tagged()
+ -- text = remove(keep)
+ text = keep
+ common = common - 1
+end
end
end
runner(list,0)
@@ -419,10 +467,13 @@ process = function(start) -- we cannot use the processor as we have no finalizer
end
end
elseif id == fraction_code then
- local num = getfield(start,"num")
- local denom = getfield(start,"denom")
- local left = getfield(start,"left")
- local right = getfield(start,"right")
+ --
+ -- if middle then we have a stacker!
+ --
+ local num = getnumerator(start)
+ local denom = getdenominator(start)
+ local left = getleftdelimiter(start)
+ local right = getrightdelimiter(start)
if left then
setattr(left,a_tagged,start_tagged("mo"))
process(left)
@@ -438,10 +489,10 @@ process = function(start) -- we cannot use the processor as we have no finalizer
stop_tagged()
end
elseif id == choice_code then
- local display = getfield(start,"display")
- local text = getfield(start,"text")
- local script = getfield(start,"script")
- local scriptscript = getfield(start,"scriptscript")
+ local display = getchoice(start,1)
+ local text = getchoice(start,2)
+ local script = getchoice(start,3)
+ local scriptscript = getchoice(start,4)
if display then
process(display)
end
@@ -455,29 +506,27 @@ process = function(start) -- we cannot use the processor as we have no finalizer
process(scriptscript)
end
elseif id == fence_code then
- local subtype = getsubtype(start)
- local delim = getfield(start,"delimiter")
+ local delimiter = getdelimiter(start)
+-- print(subtype,fencecodes[subtype],delimiter)
if subtype == leftfence_code then
- -- left
local properties = { }
insert(fencesstack,properties)
setattr(start,a_tagged,start_tagged("mfenced",properties)) -- needs checking
- if delim then
+ if delimiter then
start_tagged("ignore")
- local chr = getchar(delim)
+ local chr = getchar(delimiter)
if chr ~= 0 then
properties.left = chr
end
- process(delim)
+ process(delimiter)
stop_tagged()
end
start_tagged("mrow") -- begin of subsequence
elseif subtype == middlefence_code then
- -- middle
- if delim then
+ if delimiter then
start_tagged("ignore")
local top = fencesstack[#fencesstack]
- local chr = getchar(delim)
+ local chr = getchar(delimiter)
if chr ~= 0 then
local mid = top.middle
if mid then
@@ -486,7 +535,7 @@ process = function(start) -- we cannot use the processor as we have no finalizer
top.middle = { chr }
end
end
- process(delim)
+ process(delimiter)
stop_tagged()
end
stop_tagged() -- end of subsequence
@@ -497,28 +546,46 @@ process = function(start) -- we cannot use the processor as we have no finalizer
report_tags("missing right fence")
properties = { }
end
- if delim then
+ if delimiter then
start_tagged("ignore")
- local chr = getchar(delim)
+ local chr = getchar(delimiter)
if chr ~= 0 then
properties.right = chr
end
- process(delim)
+ process(delimiter)
stop_tagged()
end
stop_tagged() -- end of subsequence
stop_tagged()
- else
- -- can't happen
+ elseif subtype == operatorfence_code then
+ -- the same as left but different key
+ local properties = { }
+ insert(fencesstack,properties)
+ setattr(start,a_tagged,start_tagged("mfenced",properties)) -- needs checking
+ if delimiter then
+ local chr = getchar(delimiter)
+ if chr ~= 0 then
+ properties.operator = chr
+ end
+ process(delimiter)
+ end
+ processsubsup(start)
+ start_tagged("mrow") -- begin of subsequence
end
elseif id == radical_code then
- local left = getfield(start,"left")
- local degree = getfield(start,"degree")
+ local left = getleftdelimiter(start)
+ local right = getrightdelimiter(start)
+ local degree = getdegree(start)
if left then
start_tagged("ignore")
process(left) -- root symbol, ignored
stop_tagged()
end
+ if right then
+ start_tagged("ignore")
+ process(lright) -- actuarian symbol, ignored
+ stop_tagged()
+ end
if degree and hascontent(degree) then
setattr(start,a_tagged,start_tagged("mroot"))
processsubsup(start)
@@ -530,55 +597,58 @@ process = function(start) -- we cannot use the processor as we have no finalizer
stop_tagged()
end
elseif id == accent_code then
- local subtype = getsubtype(start)
- local accent = getfield(start,"accent")
- local bot_accent = getfield(start,"bot_accent")
- if bot_accent then
- if accent then
+ local topaccent = gettop(start)
+ local bottomaccent = getbottom(start)
+ if bottomaccent then
+ if topaccent then
setattr(start,a_tagged,start_tagged("munderover", {
accent = true,
- top = getunicode(accent),
- bottom = getunicode(bot_accent),
+ top = getunicode(topaccent),
+ bottom = getunicode(bottomaccent),
topfixed = subtype == fixedtopaccent_code or subtype == fixedbothaccent_code,
bottomfixed = subtype == fixedbottomaccent_code or subtype == fixedbothaccent_code,
}))
processsubsup(start)
- process(bot_accent)
- process(accent)
+ process(bottomaccent)
+ process(topaccent)
stop_tagged()
else
setattr(start,a_tagged,start_tagged("munder", {
accent = true,
- bottom = getunicode(bot_accent),
+ bottom = getunicode(bottomaccent),
bottomfixed = subtype == fixedbottomaccent_code or subtype == fixedbothaccent_code,
}))
processsubsup(start)
- process(bot_accent)
+ process(bottomaccent)
stop_tagged()
end
- elseif accent then
+ elseif topaccent then
setattr(start,a_tagged,start_tagged("mover", {
accent = true,
- top = getunicode(accent),
+ top = getunicode(topaccent),
topfixed = subtype == fixedtopaccent_code or subtype == fixedbothaccent_code,
}))
processsubsup(start)
- process(accent)
+ process(topaccent)
stop_tagged()
else
processsubsup(start)
end
elseif id == glue_code then
- -- setattr(start,a_tagged,start_tagged("mspace",{ width = getwidth(start) }))
- setattr(start,a_tagged,start_tagged("mspace"))
+ -- before processing, so other intermathglue is not tagged
+ local em = fonts.hashes.emwidths[nuts.getfont(start)]
+ local wd = getwidth(start)
+ if em and wd then
+ setattr(start,a_tagged,start_tagged("mspace",{ emfactor = wd/em }))
+ end
stop_tagged()
else
- setattr(start,a_tagged,start_tagged("merror", { detail = nodecodes[i] }))
+ --rule boundary
+ setattr(start,a_tagged,start_tagged("merror", { detail = nodecodes[id] }))
stop_tagged()
end
end
-- showtag(start,id,false)
- start = getnext(start)
end
if mtexttag then
stop_tagged()
@@ -594,3 +664,96 @@ function noads.handlers.tags(head,style,penalties)
stop_tagged()
stop_tagged()
end
+
+do
+
+ -- This one is meant for tracing (in m4all/m4mbo where it complements some other
+ -- tracing) but it actually can also replace the embedding feature although that
+ -- one might be better when we have more complex code with dependencies outside
+ -- the blob. I'll deal with that when it's needed (trivial). The current
+ -- interface is rather minimalistic.
+
+ local enabled = false
+ local export = false
+ local allmath = false
+ local warned = false
+
+ function mathematics.startcollecting()
+ if structures.tags.enabled() then
+ if not enabled then
+ nodes.tasks.enableaction("math", "noads.handlers.export")
+ end
+ enabled = true
+ export = structures.tags.localexport
+ allmath = { }
+ elseif not warned then
+ report_tags("math collecting only works when tagging is enabled")
+ warned = true
+ end
+ end
+
+ function mathematics.stopcollecting()
+ export = false
+ end
+
+ local function collected(asstring)
+ local a = allmath or { }
+ return asstring and concat(a) or a
+ end
+
+ mathematics.collected = collected
+
+ interfaces.implement {
+ name = "startcollectingmath",
+ -- public = true,
+ protected = true,
+ actions = mathematics.startcollecting
+ }
+
+ interfaces.implement {
+ name = "stopcollectingmath",
+ -- public = true,
+ protected = true,
+ actions = mathematics.stopcollecting
+ }
+
+ interfaces.implement {
+ name = "processcollectedmath",
+ -- public = true,
+ protected = true,
+ arguments = "2 strings",
+ actions = function(filename,buffername)
+ if filename and filename ~= "" then
+ io.savedata(filename,collected(true))
+ elseif buffername then
+ buffers.assign(buffername == interfaces.variables.yes and "" or buffername,collected(true))
+ else
+ return collected
+ end
+ end
+ }
+
+ interfaces.implement {
+ name = "collectedmath",
+ usage = "value",
+ protected = true,
+ public = true,
+ actions = function(what)
+ if what == "value" then
+ return tokens.values.integer, allmath and #allmath or 0
+ else
+ context(allmath and allmath[tokens.scanners.integer()] or nil)
+ end
+ end
+ }
+
+ function noads.handlers.export(head)
+ if export then
+ allmath[#allmath+1] = export(head)
+ end
+ return head
+ end
+
+ nodes.tasks.appendaction("math", "finalizers", "noads.handlers.export", nil, "nonut", "disabled")
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-toy.mkxl b/Master/texmf-dist/tex/context/base/mkxl/math-toy.mkxl
index 510872e3b62..34ea6f38c02 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-toy.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-toy.mkxl
@@ -20,16 +20,16 @@
%D \starttyping
%D \enabletrackers[math.toysymbol]
%D
-%D \definemathtoysymbol[Plus] [bin][+]
-%D \definemathtoysymbol[Minus][bin][-]
-%D \definemathtoysymbol[Equal][rel][=]
+%D \definemathtoysymbol[Plus] [binary] [+]
+%D \definemathtoysymbol[Minus][binary] [-]
+%D \definemathtoysymbol[Equal][relation][=]
%D
%D $\dorecurse{199}{x_{#1} \ifodd#1\relax\Plus\else\Minus\fi} x_{200} \Equal n$ \blank
%D \stoptyping
\permanent\tolerant\protected\def\definemathtoysymbol[#1]#*[#2]#*[#3]%
{\ifarguments\or\or\or
- \setuevalue{#1}{\math_toy_define_symbol_indeed{\mathcodechecked{#2}}{#3}}%
+ \protected\instance\edefcsname#1\endcsname{\math_toy_define_symbol_indeed{\mathcodechecked{#2}}{#3}}%
\fi}
\protected\def\math_toy_define_symbol_traced#1#2%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-ttv.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-ttv.lmt
new file mode 100644
index 00000000000..3393ecc0391
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-ttv.lmt
@@ -0,0 +1,584 @@
+if not modules then modules = { } end modules ['math-ttv'] = {
+ version = 1.001,
+ comment = "traditional tex vectors, companion to math-vfu.lua",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+ dataonly = true,
+}
+
+local vfmath = fonts.handlers.vf.math
+local setletters = vfmath.setletters
+local setdigits = vfmath.setdigits
+
+local mathencodings = fonts.encodings.math
+
+local nps = fonts.helpers.newprivateslot
+
+-- mathencodings["large-to-small-private"] = {
+-- [0xFE07A] = 0x7A, -- bracehtipdownleft
+-- [0xFE07B] = 0x7B, -- bracehtipdownright
+-- [0xFE07C] = 0x7C, -- bracehtipupleft
+-- [0xFE07D] = 0x7D, -- bracehtipupright
+-- }
+
+mathencodings["large-to-small-private"] = {
+ [nps("ul brace piece")] = 0x7A, -- bracehtipdownleft
+ [nps("ur brace piece")] = 0x7B, -- bracehtipdownright
+ [nps("ll brace piece")] = 0x7C, -- bracehtipupleft
+ [nps("lr brace piece")] = 0x7D, -- bracehtipupright
+}
+
+-- mathencodings["extensible-jmn-private"] = {
+-- [0xFE080] = 200, -- minusjmn
+-- [0xFE081] = 201, -- minusrightjmn
+-- [0xFE082] = 202, -- minusleftjmn
+-- [0xFE083] = 203, -- equaljmn
+-- [0xFE084] = 204, -- equalrightjmn
+-- [0xFE085] = 205, -- equalleftjmn
+-- [0xFE086] = 206, -- arrowleftjmn
+-- [0xFE087] = 207, -- arrowrightjmn
+-- [0xFE088] = 208, -- arrowdblleftjmn
+-- [0xFE089] = 209, -- arrowdblrightjmn
+-- }
+
+-- mathencodings["extensible-jmn-private"] = {
+-- [nps("rule middle piece")] = 200, -- minusjmn
+-- [nps("rule right piece")] = 201, -- minusrightjmn
+-- [nps("rule left piece")] = 202, -- minusleftjmn
+-- [nps("double rule middle piece")] = 203, -- equaljmn
+-- [nps("double rule right piece")] = 204, -- equalrightjmn
+-- [nps("double rule left piece")] = 205, -- equalleftjmn
+-- [nps("arrow left piece")] = 206, -- arrowleftjmn
+-- [nps("arrow right piece")] = 207, -- arrowrightjmn
+-- [nps("double arrow left piece")] = 208, -- arrowdblleftjmn
+-- [nps("double arrow right piece")] = 209, -- arrowdblrightjmn
+-- }
+
+-- varphi is part of the alphabet, contrary to the other var*s'
+
+mathencodings["large-to-small"] = {
+ [0x00028] = 0x00, -- (
+ [0x00029] = 0x01, -- )
+ [0x0005B] = 0x02, -- [
+ [0x0005D] = 0x03, -- ]
+ [0x0230A] = 0x04, -- lfloor
+ [0x0230B] = 0x05, -- rfloor
+ [0x02308] = 0x06, -- lceil
+ [0x02309] = 0x07, -- rceil
+ [0x0007B] = 0x08, -- {
+ [0x0007D] = 0x09, -- }
+ [0x027E8] = 0x0A, -- <
+ [0x027E9] = 0x0B, -- >
+ [0x0007C] = 0x0C, -- |
+ -- [0x0] = 0x0D, -- lVert rVert Vert
+ -- [0x0002F] = 0x0E, -- /
+ [0x0005C] = 0x0F, -- \
+ -- [0x0] = 0x3A, -- lgroup
+ -- [0x0] = 0x3B, -- rgroup
+ -- [0x0] = 0x3C, -- arrowvert
+ -- [0x0] = 0x3D, -- Arrowvert
+ [0x02195] = 0x3F, -- updownarrow
+ -- [0x0] = 0x40, -- lmoustache
+ -- [0x0] = 0x41, -- rmoustache
+ [0x0221A] = 0x70, -- sqrt
+ [0x021D5] = 0x77, -- Updownarrow
+ [0x02191] = 0x78, -- uparrow
+ [0x02193] = 0x79, -- downarrow
+ [0x021D1] = 0x7E, -- Uparrow
+ [0x021D3] = 0x7F, -- Downarrow
+ [0x0220F] = 0x59, -- prod
+ [0x02210] = 0x61, -- coprod
+ [0x02211] = 0x58, -- sum
+ [0x0222B] = 0x5A, -- intop
+ [0x0222E] = 0x49, -- ointop
+ [0x00302] = 0x62, -- widehat
+ [0x00303] = 0x65, -- widetilde
+ [0x022C0] = 0x5E, -- bigwedge
+ [0x022C1] = 0x5F, -- bigvee
+ [0x022C2] = 0x5C, -- bigcap
+ [0x022C3] = 0x5B, -- bigcup
+ [0x02044] = 0x0E, -- /
+}
+
+-- Beware: these are (in cm/lm) below the baseline due to limitations
+-- in the tfm format but the engine (combined with the mathclass) takes
+-- care of it. If we need them in textmode, we should make them virtual
+-- and move them up but we're in no hurry with that.
+
+mathencodings["tex-ex"] = {
+ [0x0220F] = 0x51, -- prod
+ [0x02210] = 0x60, -- coprod
+ [0x02211] = 0x50, -- sum
+ [0x0222B] = 0x52, -- intop
+ [0x0222E] = 0x48, -- ointop
+ [0x022C0] = 0x56, -- bigwedge
+ [0x022C1] = 0x57, -- bigvee
+ [0x022C2] = 0x54, -- bigcap
+ [0x022C3] = 0x53, -- bigcup
+ [0x02A00] = 0x4A, -- bigodot -- fixed BJ
+ [0x02A01] = 0x4C, -- bigoplus
+ [0x02A02] = 0x4E, -- bigotimes
+ -- [0x02A03] = , -- bigudot --
+ [0x02A04] = 0x55, -- biguplus
+ [0x02A06] = 0x46, -- bigsqcup
+}
+
+-- only math stuff is needed, since we always use an lm or gyre
+-- font as main font
+
+mathencodings["tex-mr"] = {
+ [0x00393] = 0x00, -- Gamma
+ [0x00394] = 0x01, -- Delta
+ [0x00398] = 0x02, -- Theta
+ [0x0039B] = 0x03, -- Lambda
+ [0x0039E] = 0x04, -- Xi
+ [0x003A0] = 0x05, -- Pi
+ [0x003A3] = 0x06, -- Sigma
+ [0x003A5] = 0x07, -- Upsilon
+ [0x003A6] = 0x08, -- Phi
+ [0x003A8] = 0x09, -- Psi
+ [0x003A9] = 0x0A, -- Omega
+-- [0x00060] = 0x12, -- [math]grave
+-- [0x000B4] = 0x13, -- [math]acute
+-- [0x002C7] = 0x14, -- [math]check
+-- [0x002D8] = 0x15, -- [math]breve
+-- [0x000AF] = 0x16, -- [math]bar
+-- [0x00021] = 0x21, -- !
+ [0x00028] = 0x28, -- (
+ [0x00029] = 0x29, -- )
+ [0x0002B] = 0x2B, -- +
+ [0x0002F] = 0x2F, -- /
+ [0x0003A] = 0x3A, -- :
+ [0x02236] = 0x3A, -- colon
+ [0x0003B] = 0x3B, -- ;
+ [0x0003C] = 0x3C, -- <
+ [0x0003D] = 0x3D, -- =
+ [0x0003E] = 0x3E, -- >
+ [0x0003F] = 0x3F, -- ?
+ [0x00391] = 0x41, -- Alpha
+ [0x00392] = 0x42, -- Beta
+ [0x02145] = 0x44,
+ [0x00395] = 0x45, -- Epsilon
+ [0x00397] = 0x48, -- Eta
+ [0x00399] = 0x49, -- Iota
+ [0x0039A] = 0x4B, -- Kappa
+ [0x0039C] = 0x4D, -- Mu
+ [0x0039D] = 0x4E, -- Nu
+ [0x0039F] = 0x4F, -- Omicron
+ [0x003A1] = 0x52, -- Rho
+ [0x003A4] = 0x54, -- Tau
+ [0x003A7] = 0x58, -- Chi
+ [0x00396] = 0x5A, -- Zeta
+ [0x0005B] = 0x5B, -- [
+ [0x0005D] = 0x5D, -- ]
+-- [0x0005E] = 0x5E, -- [math]hat -- the text one
+ [0x00302] = 0x5E, -- [math]hat -- the real math one
+-- [0x002D9] = 0x5F, -- [math]dot
+ [0x02146] = 0x64,
+ [0x02147] = 0x65,
+-- [0x002DC] = 0x7E, -- [math]tilde -- the text one
+ [0x00303] = 0x7E, -- [math]tilde -- the real one
+-- [0x000A8] = 0x7F, -- [math]ddot
+}
+
+mathencodings["tex-mr-missing"] = {
+ [0x02236] = 0x3A, -- colon
+}
+
+mathencodings["tex-ex-braces"] = {
+ [0x0007B] = 0x7B, -- {, braceleftbig
+ [0x0007D] = 0x7D, -- }, bracerightbig
+}
+
+mathencodings["tex-mi"] = {
+ [0x1D6E4] = 0x00, -- Gamma
+ [0x1D6E5] = 0x01, -- Delta
+ [0x1D6E9] = 0x02, -- Theta
+ [0x1D6F3] = 0x02, -- varTheta (not present in TeX)
+ [0x1D6EC] = 0x03, -- Lambda
+ [0x1D6EF] = 0x04, -- Xi
+ [0x1D6F1] = 0x05, -- Pi
+ [0x1D6F4] = 0x06, -- Sigma
+ [0x1D6F6] = 0x07, -- Upsilon
+ [0x1D6F7] = 0x08, -- Phi
+ [0x1D6F9] = 0x09, -- Psi
+ [0x1D6FA] = 0x0A, -- Omega
+ [0x1D6FC] = 0x0B, -- alpha
+ [0x1D6FD] = 0x0C, -- beta
+ [0x1D6FE] = 0x0D, -- gamma
+ [0x1D6FF] = 0x0E, -- delta
+ [0x1D716] = 0x0F, -- epsilon TODO: 1D716
+ [0x1D701] = 0x10, -- zeta
+ [0x1D702] = 0x11, -- eta
+ [0x1D703] = 0x12, -- theta TODO: 1D703
+ [0x1D704] = 0x13, -- iota
+ [0x1D705] = 0x14, -- kappa
+ [0x1D718] = 0x14, -- varkappa, not in tex fonts
+ [0x1D706] = 0x15, -- lambda
+ [0x1D707] = 0x16, -- mu
+ [0x1D708] = 0x17, -- nu
+ [0x1D709] = 0x18, -- xi
+ [0x1D70B] = 0x19, -- pi
+ [0x1D70C] = 0x1A, -- rho
+ [0x1D70E] = 0x1B, -- sigma
+ [0x1D70F] = 0x1C, -- tau
+ [0x1D710] = 0x1D, -- upsilon
+ [0x1D719] = 0x1E, -- phi
+ [0x1D712] = 0x1F, -- chi
+ [0x1D713] = 0x20, -- psi
+ [0x1D714] = 0x21, -- omega
+ [0x1D700] = 0x22, -- varepsilon (the other way around)
+ [0x1D717] = 0x23, -- vartheta
+ [0x1D71B] = 0x24, -- varpi
+ [0x1D71A] = 0x25, -- varrho
+ [0x1D70D] = 0x26, -- varsigma
+ [0x1D711] = 0x27, -- varphi (the other way around)
+ [0x021BC] = 0x28, -- leftharpoonup
+ [0x021BD] = 0x29, -- leftharpoondown
+ [0x021C0] = 0x2A, -- rightharpoonup
+ [0x021C1] = 0x2B, -- rightharpoondown
+-- [0xFE322] = 0x2C, -- lhook (hook for combining arrows)
+-- [0xFE323] = 0x2D, -- rhook (hook for combining arrows)
+ [nps("left hook piece")] = 0x2C, -- bracehtipdownleft
+ [nps("right hook piece")] = 0x2D, -- bracehtipdownleft
+ [0x025B7] = 0x2E, -- triangleright : cf lmmath / BJ
+ [0x025C1] = 0x2F, -- triangleleft : cf lmmath / BJ
+ [0x022B3] = 0x2E, -- triangleright : cf lmmath this a cramped triangles / BJ / see *
+ [0x022B2] = 0x2F, -- triangleleft : cf lmmath this a cramped triangles / BJ / see *
+-- [0x00041] = 0x30, -- 0
+-- [0x00041] = 0x31, -- 1
+-- [0x00041] = 0x32, -- 2
+-- [0x00041] = 0x33, -- 3
+-- [0x00041] = 0x34, -- 4
+-- [0x00041] = 0x35, -- 5
+-- [0x00041] = 0x36, -- 6
+-- [0x00041] = 0x37, -- 7
+-- [0x00041] = 0x38, -- 8
+-- [0x00041] = 0x39, -- 9
+--~ [0x0002E] = 0x3A, -- .
+ [0x0002C] = 0x3B, -- ,
+ [0x0003C] = 0x3C, -- <
+-- [0x0002F] = 0x3D, -- /, slash, solidus
+ [0x02044] = 0x3D, -- / AM: Not sure
+ [0x0003E] = 0x3E, -- >
+ [0x022C6] = 0x3F, -- star
+ [0x02202] = 0x40, -- partial
+--
+ [0x0266D] = 0x5B, -- flat
+ [0x0266E] = 0x5C, -- natural
+ [0x0266F] = 0x5D, -- sharp
+ [0x02323] = 0x5E, -- smile
+ [0x02322] = 0x5F, -- frown
+ [0x02113] = 0x60, -- ell
+--
+ [0x1D6A4] = 0x7B, -- imath (TODO: also 0131)
+ [0x1D6A5] = 0x7C, -- jmath (TODO: also 0237)
+ [0x02118] = 0x7D, -- wp
+ [0x020D7] = 0x7E, -- vec (TODO: not sure)
+-- 0x7F, -- (no idea what that could be)
+}
+
+mathencodings["tex-it"] = {
+-- [0x1D434] = 0x41, -- A
+ [0x1D6E2] = 0x41, -- Alpha
+-- [0x1D435] = 0x42, -- B
+ [0x1D6E3] = 0x42, -- Beta
+-- [0x1D436] = 0x43, -- C
+-- [0x1D437] = 0x44, -- D
+-- [0x1D438] = 0x45, -- E
+ [0x1D6E6] = 0x45, -- Epsilon
+-- [0x1D439] = 0x46, -- F
+-- [0x1D43A] = 0x47, -- G
+-- [0x1D43B] = 0x48, -- H
+ [0x1D6E8] = 0x48, -- Eta
+-- [0x1D43C] = 0x49, -- I
+ [0x1D6EA] = 0x49, -- Iota
+-- [0x1D43D] = 0x4A, -- J
+-- [0x1D43E] = 0x4B, -- K
+ [0x1D6EB] = 0x4B, -- Kappa
+-- [0x1D43F] = 0x4C, -- L
+-- [0x1D440] = 0x4D, -- M
+ [0x1D6ED] = 0x4D, -- Mu
+-- [0x1D441] = 0x4E, -- N
+ [0x1D6EE] = 0x4E, -- Nu
+-- [0x1D442] = 0x4F, -- O
+ [0x1D6F0] = 0x4F, -- Omicron
+-- [0x1D443] = 0x50, -- P
+ [0x1D6F2] = 0x50, -- Rho
+-- [0x1D444] = 0x51, -- Q
+-- [0x1D445] = 0x52, -- R
+-- [0x1D446] = 0x53, -- S
+-- [0x1D447] = 0x54, -- T
+ [0x1D6F5] = 0x54, -- Tau
+-- [0x1D448] = 0x55, -- U
+-- [0x1D449] = 0x56, -- V
+-- [0x1D44A] = 0x57, -- W
+-- [0x1D44B] = 0x58, -- X
+ [0x1D6F8] = 0x58, -- Chi
+-- [0x1D44C] = 0x59, -- Y
+-- [0x1D44D] = 0x5A, -- Z
+--
+-- [0x1D44E] = 0x61, -- a
+-- [0x1D44F] = 0x62, -- b
+-- [0x1D450] = 0x63, -- c
+-- [0x1D451] = 0x64, -- d
+-- [0x1D452] = 0x65, -- e
+-- [0x1D453] = 0x66, -- f
+-- [0x1D454] = 0x67, -- g
+-- [0x1D455] = 0x68, -- h
+ [0x0210E] = 0x68, -- Planck constant (h)
+-- [0x1D456] = 0x69, -- i
+-- [0x1D457] = 0x6A, -- j
+-- [0x1D458] = 0x6B, -- k
+-- [0x1D459] = 0x6C, -- l
+-- [0x1D45A] = 0x6D, -- m
+-- [0x1D45B] = 0x6E, -- n
+-- [0x1D45C] = 0x6F, -- o
+ [0x1D70A] = 0x6F, -- omicron
+-- [0x1D45D] = 0x70, -- p
+-- [0x1D45E] = 0x71, -- q
+-- [0x1D45F] = 0x72, -- r
+-- [0x1D460] = 0x73, -- s
+-- [0x1D461] = 0x74, -- t
+-- [0x1D462] = 0x75, -- u
+-- [0x1D463] = 0x76, -- v
+-- [0x1D464] = 0x77, -- w
+-- [0x1D465] = 0x78, -- x
+-- [0x1D466] = 0x79, -- y
+-- [0x1D467] = 0x7A, -- z
+}
+
+mathencodings["tex-tf"] = { }
+mathencodings["tex-ss"] = { }
+mathencodings["tex-tt"] = { }
+mathencodings["tex-bf"] = { }
+mathencodings["tex-bi"] = { }
+mathencodings["tex-fraktur"] = { }
+mathencodings["tex-fraktur-bold"] = { }
+
+mathencodings["tex-sy"] = {
+ [0x0002D] = 0x00, -- -
+ [0x02212] = 0x00, -- -
+-- [0x02201] = 0x00, -- complement
+-- [0x02206] = 0x00, -- increment
+-- [0x02204] = 0x00, -- not exists
+-- [0x000B7] = 0x01, -- cdot
+ [0x022C5] = 0x01, -- cdot
+ [0x000D7] = 0x02, -- times
+ [0x0002A] = 0x03, -- *
+ [0x02217] = 0x03, -- *
+ [0x000F7] = 0x04, -- div
+ [0x022C4] = 0x05, -- diamond
+ [0x000B1] = 0x06, -- pm
+ [0x02213] = 0x07, -- mp
+ [0x02295] = 0x08, -- oplus
+ [0x02296] = 0x09, -- ominus
+ [0x02297] = 0x0A, -- otimes
+ [0x02298] = 0x0B, -- oslash
+ [0x02299] = 0x0C, -- odot
+ [0x025EF] = 0x0D, -- bigcirc, Orb (either 25EF or 25CB) -- todo
+ [0x02218] = 0x0E, -- circ
+ [0x02219] = 0x0F, -- bullet
+ [0x02022] = 0x0F, -- bullet
+ [0x0224D] = 0x10, -- asymp
+ [0x02261] = 0x11, -- equiv
+ [0x02286] = 0x12, -- subseteq
+ [0x02287] = 0x13, -- supseteq
+ [0x02264] = 0x14, -- leq
+ [0x02265] = 0x15, -- geq
+ [0x02AAF] = 0x16, -- preceq
+-- [0x0227C] = 0x16, -- preceq, AM:No see 2AAF
+ [0x02AB0] = 0x17, -- succeq
+-- [0x0227D] = 0x17, -- succeq, AM:No see 2AB0
+ [0x0223C] = 0x18, -- sim
+ [0x02248] = 0x19, -- approx
+ [0x02282] = 0x1A, -- subset
+ [0x02283] = 0x1B, -- supset
+ [0x0226A] = 0x1C, -- ll
+ [0x0226B] = 0x1D, -- gg
+ [0x0227A] = 0x1E, -- prec
+ [0x0227B] = 0x1F, -- succ
+ [0x02190] = 0x20, -- leftarrow
+ [0x02192] = 0x21, -- rightarrow
+--~ [0xFE190] = 0x20, -- leftarrow
+--~ [0xFE192] = 0x21, -- rightarrow
+ [0x02191] = 0x22, -- uparrow
+ [0x02193] = 0x23, -- downarrow
+ [0x02194] = 0x24, -- leftrightarrow
+ [0x02197] = 0x25, -- nearrow
+ [0x02198] = 0x26, -- searrow
+ [0x02243] = 0x27, -- simeq
+ [0x021D0] = 0x28, -- Leftarrow
+ [0x021D2] = 0x29, -- Rightarrow
+ [0x021D1] = 0x2A, -- Uparrow
+ [0x021D3] = 0x2B, -- Downarrow
+ [0x021D4] = 0x2C, -- Leftrightarrow
+ [0x02196] = 0x2D, -- nwarrow
+ [0x02199] = 0x2E, -- swarrow
+ [0x0221D] = 0x2F, -- propto
+ [0x02032] = 0x30, -- prime
+ [0x0221E] = 0x31, -- infty
+ [0x02208] = 0x32, -- in
+ [0x0220B] = 0x33, -- ni
+ [0x025B3] = 0x34, -- triangle, bigtriangleup
+ [0x025BD] = 0x35, -- bigtriangledown
+ [0x00338] = 0x36, -- not
+-- 0x37, -- (beginning of arrow)
+ [0x02200] = 0x38, -- forall
+ [0x02203] = 0x39, -- exists
+ [0x000AC] = 0x3A, -- neg, lnot
+ [0x02205] = 0x3B, -- empty set
+ [0x0211C] = 0x3C, -- Re
+ [0x02111] = 0x3D, -- Im
+ [0x022A4] = 0x3E, -- top
+ [0x022A5] = 0x3F, -- bot, perp
+ [0x02135] = 0x40, -- aleph
+ [0x1D49C] = 0x41, -- script A
+ [0x0212C] = 0x42, -- script B
+ [0x1D49E] = 0x43, -- script C
+ [0x1D49F] = 0x44, -- script D
+ [0x02130] = 0x45, -- script E
+ [0x02131] = 0x46, -- script F
+ [0x1D4A2] = 0x47, -- script G
+ [0x0210B] = 0x48, -- script H
+ [0x02110] = 0x49, -- script I
+ [0x1D4A5] = 0x4A, -- script J
+ [0x1D4A6] = 0x4B, -- script K
+ [0x02112] = 0x4C, -- script L
+ [0x02133] = 0x4D, -- script M
+ [0x1D4A9] = 0x4E, -- script N
+ [0x1D4AA] = 0x4F, -- script O
+ [0x1D4AB] = 0x50, -- script P
+ [0x1D4AC] = 0x51, -- script Q
+ [0x0211B] = 0x52, -- script R
+ [0x1D4AE] = 0x53, -- script S
+ [0x1D4AF] = 0x54, -- script T
+ [0x1D4B0] = 0x55, -- script U
+ [0x1D4B1] = 0x56, -- script V
+ [0x1D4B2] = 0x57, -- script W
+ [0x1D4B3] = 0x58, -- script X
+ [0x1D4B4] = 0x59, -- script Y
+ [0x1D4B5] = 0x5A, -- script Z
+ [0x0222A] = 0x5B, -- cup
+ [0x02229] = 0x5C, -- cap
+ [0x0228E] = 0x5D, -- uplus
+ [0x02227] = 0x5E, -- wedge, land
+ [0x02228] = 0x5F, -- vee, lor
+ [0x022A2] = 0x60, -- vdash
+ [0x022A3] = 0x61, -- dashv
+ [0x0230A] = 0x62, -- lfloor
+ [0x0230B] = 0x63, -- rfloor
+ [0x02308] = 0x64, -- lceil
+ [0x02309] = 0x65, -- rceil
+ [0x0007B] = 0x66, -- {, lbrace
+ [0x0007D] = 0x67, -- }, rbrace
+ [0x027E8] = 0x68, -- <, langle
+ [0x027E9] = 0x69, -- >, rangle
+ [0x0007C] = 0x6A, -- |, mid, lvert, rvert
+ [0x02225] = 0x6B, -- parallel
+ -- [0x0 ] = 0x00, -- Vert, lVert, rVert, arrowvert, Arrowvert
+ [0x02195] = 0x6C, -- updownarrow
+ [0x021D5] = 0x6D, -- Updownarrow
+ [0x0005C] = 0x6E, -- \, backslash, setminus
+ [0x02216] = 0x6E, -- setminus
+ [0x02240] = 0x6F, -- wr
+ [0x0221A] = 0x70, -- sqrt. AM: Check surd??
+ [0x02A3F] = 0x71, -- amalg
+ [0x1D6FB] = 0x72, -- nabla
+-- [0x0222B] = 0x73, -- smallint (TODO: what about intop?)
+ [0x02294] = 0x74, -- sqcup
+ [0x02293] = 0x75, -- sqcap
+ [0x02291] = 0x76, -- sqsubseteq
+ [0x02292] = 0x77, -- sqsupseteq
+ [0x000A7] = 0x78, -- S
+ [0x02020] = 0x79, -- dagger, dag
+ [0x02021] = 0x7A, -- ddagger, ddag
+ [0x000B6] = 0x7B, -- P
+ [0x02663] = 0x7C, -- clubsuit
+ [0x02662] = 0x7D, -- diamondsuit
+ [0x02661] = 0x7E, -- heartsuit
+ [0x02660] = 0x7F, -- spadesuit
+ -- [0xFE321] = 0x37, -- mapstochar
+ -- [0xFE325] = 0x30, -- prime 0x02032
+ [nps("maps to piece")] = 0x37, -- mapstochar
+}
+
+mathencodings["tex-fraktur"] = {
+-- [0x1D504] = 0x41, -- A (fraktur A)
+-- [0x1D505] = 0x42, -- B
+ [0x0212D] = 0x43, -- C
+-- [0x1D507] = 0x44, -- D
+-- [0x1D508] = 0x45, -- E
+-- [0x1D509] = 0x46, -- F
+-- [0x1D50A] = 0x47, -- G
+ [0x0210C] = 0x48, -- H
+ [0x02111] = 0x49, -- I
+-- [0x1D50D] = 0x4A, -- J
+-- [0x1D50E] = 0x4B, -- K
+-- [0x1D50F] = 0x4C, -- L
+-- [0x1D510] = 0x4D, -- M
+-- [0x1D511] = 0x4E, -- N
+-- [0x1D512] = 0x4F, -- O
+-- [0x1D513] = 0x50, -- P
+-- [0x1D514] = 0x51, -- Q
+ [0x0211C] = 0x52, -- R
+-- [0x1D516] = 0x53, -- S
+-- [0x1D517] = 0x54, -- T
+-- [0x1D518] = 0x55, -- U
+-- [0x1D519] = 0x56, -- V
+-- [0x1D51A] = 0x57, -- W
+-- [0x1D51B] = 0x58, -- X
+-- [0x1D51C] = 0x59, -- Y
+ [0x02128] = 0x5A, -- Z (fraktur Z)
+-- [0x1D51E] = 0x61, -- a (fraktur a)
+-- [0x1D51F] = 0x62, -- b
+-- [0x1D520] = 0x63, -- c
+-- [0x1D521] = 0x64, -- d
+-- [0x1D522] = 0x65, -- e
+-- [0x1D523] = 0x66, -- f
+-- [0x1D524] = 0x67, -- g
+-- [0x1D525] = 0x68, -- h
+-- [0x1D526] = 0x69, -- i
+-- [0x1D527] = 0x6A, -- j
+-- [0x1D528] = 0x6B, -- k
+-- [0x1D529] = 0x6C, -- l
+-- [0x1D52A] = 0x6D, -- m
+-- [0x1D52B] = 0x6E, -- n
+-- [0x1D52C] = 0x6F, -- o
+-- [0x1D52D] = 0x70, -- p
+-- [0x1D52E] = 0x71, -- q
+-- [0x1D52F] = 0x72, -- r
+-- [0x1D530] = 0x73, -- s
+-- [0x1D531] = 0x74, -- t
+-- [0x1D532] = 0x75, -- u
+-- [0x1D533] = 0x76, -- v
+-- [0x1D534] = 0x77, -- w
+-- [0x1D535] = 0x78, -- x
+-- [0x1D536] = 0x79, -- y
+-- [0x1D537] = 0x7A, -- z
+}
+
+-- now that all other vectors are defined ...
+
+setletters(mathencodings, "tex-tf", 0x00041, 0x00061)
+setletters(mathencodings, "tex-mr", 0x00041, 0x00061)
+
+setletters(mathencodings, "tex-it", 0x1D434, 0x1D44E)
+setletters(mathencodings, "tex-ss", 0x1D5A0, 0x1D5BA)
+setletters(mathencodings, "tex-tt", 0x1D670, 0x1D68A)
+setletters(mathencodings, "tex-bf", 0x1D400, 0x1D41A)
+setletters(mathencodings, "tex-bi", 0x1D468, 0x1D482)
+setletters(mathencodings, "tex-fraktur", 0x1D504, 0x1D51E)
+setletters(mathencodings, "tex-fraktur-bold", 0x1D56C, 0x1D586)
+
+setdigits (mathencodings, "tex-mr", 0x00030)
+setdigits (mathencodings, "tex-tf", 0x00030)
+setdigits (mathencodings, "tex-ss", 0x1D7E2)
+setdigits (mathencodings, "tex-tt", 0x1D7F6)
+setdigits (mathencodings, "tex-bf", 0x1D7CE)
+
+-- setdigits (mathencodings, "tex-bi", 0x1D7CE)
+
+-- todo: add ss, tt, bf etc vectors
+-- todo: we can make ss tt etc an option
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-twk.mkxl b/Master/texmf-dist/tex/context/base/mkxl/math-twk.mkxl
new file mode 100644
index 00000000000..6ffb3681840
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-twk.mkxl
@@ -0,0 +1,99 @@
+ %D \module
+%D [ file=math-ini,
+%D version=2022.07.24,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Extensions aka Tweaks,
+%D author={Hans Hagen \& Mikael Sundqvist},
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Math Macros / Tweaks}
+
+%D This file deals with some ommisions in \UNICODE\ (at least we flag them as such).
+%D Some of the definitione done elsewhere will be moved here.
+
+\unprotect
+
+% Mathematics - Hollie + Metropole Orkest (conducted by Jules Buckley) .. more than minusses
+
+% \startbuffer
+% \startTEXpage[offset=2dk]\showmakeup[mathglue]\mathspacingmode1 % \tracingmath3\tracingonline2
+% $ a + - 1 $ \quad
+% $ - 2 $ \quad
+% $ \um 3 $ \quad
+% $ a + \um 4 $ \par
+% $ \ump 3 $ \quad
+% $ a + \ump 4 $ \quad
+% $ \up 5 $ \par
+% $ a - \up 6 $ \quad
+% $ \upm 5 $ \quad
+% $ a - \upm 6 $ \quad
+% \par
+% $\textstyle - + \um \up \upm \ump $ \quad
+% $\scriptstyle - + \um \up \upm \ump $ \quad
+% $\scriptscriptstyle - + \um \up \upm \ump $ \quad
+% \stopTEXpage
+% \stopbuffer
+%
+% \setupbodyfont[bonum] \getbuffer
+% \setupbodyfont[pagella] \getbuffer
+
+\immutable\Umathchardef \unaryminus \mathunarycode \zerocount \privatecharactercode{unary minus}
+\immutable\Umathchardef \unaryplus \mathunarycode \zerocount \privatecharactercode{unary plus}
+\immutable\Umathchardef \unaryplusminus \mathunarycode \zerocount \privatecharactercode{unary plus minus}
+\immutable\Umathchardef \unaryminusplus \mathunarycode \zerocount \privatecharactercode{unary minus plus}
+
+\permanent\protected\def\um {\mathortext\unaryminus \textminus}
+\permanent\protected\def\up {\mathortext\unaryplus \textplus}
+\permanent\protected\def\upm{\mathortext\unaryplusminus\textpm}
+\permanent\protected\def\ump{\mathortext\unaryminusplus\textmp}
+
+\permanent\protected\def\una#1{\mathatom \s!class \mathunarycode {#1}}
+\permanent\protected\def\bin#1{\mathatom \s!class \mathbinarycode {#1}}
+\permanent\protected\def\rel#1{\mathatom \s!class \mathrelationcode{#1}}
+\permanent\protected\def\ord#1{\mathatom \s!class \mathordinarycode{#1}}
+
+% $x + \+1$\par
+% $x + \-1$\par
+
+\immutable\Umathchardef\mathunaryplus \mathunarycode\zerocount"002B % these will go to char-def.lua
+\immutable\Umathchardef\mathunaryminus \mathunarycode\zerocount"2212 % these will go to char-def.lua
+\immutable\Umathchardef\mathunaryplusminus\mathunarycode\zerocount"00B1 % these will go to char-def.lua
+\immutable\Umathchardef\mathunaryminusplus\mathunarycode\zerocount"2213 % these will go to char-def.lua
+
+\permanent\protected\def\+{\mathortext\mathunaryplus \textplus }
+%permanent\protected\def\-{\mathortext\mathunaryminus \textminus }
+\permanent\protected\def\-{\mathortext\mathunaryminus \explicitdiscretionary}
+\permanent\protected\def\±{\mathortext\mathunaryplusminus\textpm}
+\permanent\protected\def\∓{\mathortext\mathunaryminusplus\textmp}
+
+% \permanent\protected\def\minute{\hbox shift -.8ex{$\char"2032$}}
+% \permanent\protected\def\second{\hbox shift -.8ex{$\char"2033$}}
+%
+% \permanent\protected\def\minute{$\char\privatecharactercode{prime 0x2032 1}$}
+% \permanent\protected\def\second{$\char\privatecharactercode{prime 0x2033 1}$}
+%
+% \permanent\protected\def\minute{$\Umathchar\zerocount\zerocount\privatecharactercode{prime 0x2032 1}$}
+% \permanent\protected\def\second{$\Umathchar\zerocount\zerocount\privatecharactercode{prime 0x2033 1}$}
+%
+% \immutable\Umathchardef\minute\zerocount\zerocount\privatecharactercode{prime 0x2032 1}
+% \immutable\Umathchardef\second\zerocount\zerocount\privatecharactercode{prime 0x2033 1}
+
+\immutable\chardef\textminute"2032
+\immutable\chardef\textsecond"2033
+
+% \immutable\Umathchardef\mathminute\zerocount\zerocount\privatecharactercode{prime 0x2032 1}
+% \immutable\Umathchardef\mathsecond\zerocount\zerocount\privatecharactercode{prime 0x2033 1}
+
+\immutable\Umathchardef\mathminute\zerocount\zerocount\textminute
+\immutable\Umathchardef\mathsecond\zerocount\zerocount\textsecond
+
+\permanent\protected\def\minute{\iffontchar\font\textminute\textminute\else\mathminute\fi}
+\permanent\protected\def\second{\iffontchar\font\textsecond\textsecond\else\mathsecond\fi}
+
+
+\protect
diff --git a/Master/texmf-dist/tex/context/base/mkxl/math-vfu.lmt b/Master/texmf-dist/tex/context/base/mkxl/math-vfu.lmt
index 6584b0158d5..f3e0ea81425 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/math-vfu.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/math-vfu.lmt
@@ -9,16 +9,22 @@ if not modules then modules = { } end modules ['math-vfu'] = {
-- All these math vectors .. thanks to Aditya and Mojca they become better and
-- better. If you have problems with math fonts or miss characters report it to the
-- ConTeXt mailing list. Also thanks to Boguslaw for finding a couple of errors.
--- This mechanism will eventually disappear.
--- 20D6 -> 2190
--- 20D7 -> 2192
+-- Although this mechanism was a candidate for obsolence, the fact that Iwona and
+-- Antykwa are nice fonts (especially for display) I decided to keep it around but
+-- in a bit upgraded way. It is also a test for virtual tfm/pfb fonts that we keep
+-- around but hardly gets tested. However, much is still pretty old code, dating
+-- from when we emulated \UNICODE\ math and \OPENTYPE\ math fonts using traditional
+-- fonts.
+
+-- Musical timestamp: Januari 2023 Riverside ID.Entity release date, after all we
+-- only use the following code for ther Polish Iwona, Kurier and Antykwa fonts.
local type, next, tonumber = type, next, tonumber
local max = math.max
-local fastcopy = table.copy
+local fastcopy, sortedhash = table.copy, table.sortedhash
-local fonts, nodes, mathematics = fonts, nodes, mathematics
+local fonts, mathematics = fonts, mathematics
local trace_virtual = false trackers.register("math.virtual", function(v) trace_virtual = v end)
local trace_timings = false trackers.register("math.timings", function(v) trace_timings = v end)
@@ -39,566 +45,547 @@ local vfmath = allocate()
fonts.handlers.vf.math = vfmath
local helpers = fonts.helpers
+
+local addprivate = helpers.addprivate
+local hasprivate = helpers.hasprivate
local vfcommands = helpers.commands
+
local rightcommand = vfcommands.right
local leftcommand = vfcommands.left
local downcommand = vfcommands.down
local upcommand = vfcommands.up
local push = vfcommands.push
local pop = vfcommands.pop
-
-local shared = { }
-
--- local back = { "slot", 1, 0x2215 }
---
--- local function negate(main,characters,id,size,unicode,basecode)
--- if not characters[unicode] then
--- local basechar = characters[basecode]
--- if basechar then
--- local ht, wd = basechar.height, basechar.width
--- characters[unicode] = {
--- width = wd,
--- height = ht,
--- depth = basechar.depth,
--- italic = basechar.italic,
--- kerns = basechar.kerns,
--- commands = {
--- { "slot", 1, basecode },
--- push,
--- downcommand[ht/5],
--- leftcommand[wd/2],
--- back,
--- push,
--- }
--- }
--- end
--- end
--- end
---
--- \Umathchardef\braceld="0 "1 "FF07A
--- \Umathchardef\bracerd="0 "1 "FF07B
--- \Umathchardef\bracelu="0 "1 "FF07C
--- \Umathchardef\braceru="0 "1 "FF07D
-
-local function brace(main,characters,id,size,unicode,first,rule,left,right,rule,last)
- if not characters[unicode] then
- characters[unicode] = {
- horiz_variants = {
- { extender = 0, glyph = first },
- { extender = 1, glyph = rule },
- { extender = 0, glyph = left },
- { extender = 0, glyph = right },
- { extender = 1, glyph = rule },
- { extender = 0, glyph = last },
- }
- }
- end
-end
-
-local function extension(main,characters,id,size,unicode,first,middle,last)
- local chr = characters[unicode]
- if not chr then
- return -- skip
- end
- local fw = characters[first]
- if not fw then
- return
- end
- local mw = characters[middle]
- if not mw then
- return
- end
- local lw = characters[last]
- if not lw then
- return
- end
- fw = fw.width
- mw = mw.width
- lw = lw.width
- if fw == 0 then
- fw = 1
- end
- if lw == 0 then
- lw = 1
- end
- chr.horiz_variants = {
- { extender = 0, glyph = first, ["end"] = fw/2, start = 0, advance = fw },
- { extender = 1, glyph = middle, ["end"] = mw/2, start = mw/2, advance = mw },
- { extender = 0, glyph = last, ["end"] = 0, start = lw/2, advance = lw },
- }
-end
-
-local function parent(main,characters,id,size,unicode,first,rule,last)
- if not characters[unicode] then
- characters[unicode] = {
- horiz_variants = {
- { extender = 0, glyph = first },
- { extender = 1, glyph = rule },
- { extender = 0, glyph = last },
- }
- }
+local slotcommand = vfcommands.slot
+local staycommand = vfcommands.stay
+
+local nps = fonts.helpers.newprivateslot
+local ps = fonts.helpers.privateslot
+
+do
+
+ local function horibar(main,unicode,rule,left,right,normal)
+ local characters = main.characters
+ if not characters[unicode] then
+ local height = main.mathparameters.defaultrulethickness or 4*65536/10
+ local f_rule = rule and formatters["M-HORIBAR-RULE-%H"](rule)
+ local p_rule = rule and hasprivate(main,f_rule)
+ if rule and left and right and normal then
+ local ldata = characters[left]
+ local mdata = characters[rule]
+ local rdata = characters[right]
+ local ndata = characters[normal]
+ local lwidth = ldata.width or 0
+ local mwidth = mdata.width or 0
+ local rwidth = rdata.width or 0
+ local nwidth = ndata.width or 0
+ local down = (mdata.height / 2) - height
+ --
+ local f_left = right and formatters["M-HORIBAR-LEFT-%H"](right)
+ local f_right = right and formatters["M-HORIBAR-RIGHT-%H"](right)
+ local p_left = left and hasprivate(main,f_left)
+ local p_right = right and hasprivate(main,f_right)
+ --
+ if not characters[p_rule] then
+ p_rule = addprivate(main,f_rule,{
+ height = height,
+ width = mwidth,
+ width = .95*mwidth,
+ commands = {
+ push,
+ leftcommand[.025*mwidth],
+ downcommand[down],
+ slotcommand[0][rule],
+ pop,
+ },
+ })
+ end
+ if not characters[p_left] then
+ p_left = addprivate(main,f_left,{
+ height = height,
+ width = lwidth,
+ width = .95*lwidth,
+ commands = {
+ push,
+ leftcommand[.025*lwidth],
+ downcommand[down],
+ slotcommand[0][left],
+ pop,
+ },
+ })
+ end
+ if not characters[p_right] then
+ p_right = addprivate(main,f_right,{
+ height = height,
+ width = rwidth,
+ width = .95*rwidth,
+ commands = {
+ push,
+ leftcommand[.025*rwidth],
+ downcommand[down],
+ slotcommand[0][right],
+ pop,
+ },
+ })
+ end
+ characters[unicode] = {
+ keepvirtual = true,
+ partsorientation = "horizontal",
+ height = height,
+ width = nwidth,
+ commands = {
+ downcommand[down],
+ slotcommand[0][normal]
+ },
+ parts = {
+ { glyph = p_left, ["end"] = 0.4*lwidth },
+ { glyph = p_rule, extender = 1, ["start"] = mwidth, ["end"] = mwidth },
+ { glyph = p_right, ["start"] = 0.6*rwidth },
+ }
+ }
+ else
+ local width = main.parameters.quad/4 or 4*65536
+ if not characters[p_rule] then
+ p_rule = addprivate(main,f_rule,{
+ height = height,
+ width = width,
+ commands = { push, { "rule", height, width }, pop },
+ })
+ end
+ characters[unicode] = {
+ keepvirtual = true,
+ partsorientation = "horizontal",
+ parts = {
+ { glyph = p_rule },
+ { glyph = p_rule, extender = 1, ["start"] = width/2, ["end"] = width/2 },
+ }
+ }
+ end
+ end
end
-end
-local step = 0.2 -- 0.1 is nicer but gives larger files
-
-local function make(main,characters,id,size,n,m)
- local old = 0xFF000 + n
- local c = characters[old]
- if c then
- local upslot = 0xFF100 + n
- local dnslot = 0xFF200 + n
- local uprule = 0xFF300 + m
- local dnrule = 0xFF400 + m
- local xu = main.parameters.x_height + 0.3*size
- local xd = 0.3*size
- local w = c.width or 0
- local h = c.height or 0
- local d = c.depth or 0
- local thickness = h - d
- local rulewidth = step*size -- we could use an overlap
- local slot = { "slot", id, old }
- local rule = { "rule", thickness, rulewidth }
- local up = upcommand[xu]
- local dn = downcommand[xd]
- local ht = xu + 3*thickness
- local dp = 0
- if not characters[uprule] then
- characters[uprule] = {
- width = rulewidth,
- height = ht,
- depth = dp,
- commands = { push, up, rule, pop },
- }
- end
- characters[upslot] = {
- width = w,
- height = ht,
- depth = dp,
- commands = { push, up, slot, pop },
- }
- local ht = 0
- local dp = xd + 3*thickness
- if not characters[dnrule] then
- characters[dnrule] = {
- width = rulewidth,
- height = ht,
- depth = dp,
- commands = { push, dn, rule, pop }
- }
+ -- local rootbarmiddle -- false = addprivate(main,formatters["M-R-%H"](next))
+ -- local rootbarright -- false = addprivate(main,formatters["M-R-%H"](next))
+
+ local function rootbar(main,unicode,rule,right,normal)
+ local characters = main.characters
+ if not characters[unicode] then
+ local height = main.mathparameters.defaultrulethickness or 4*65536/10
+ if rule and right and normal then
+ local mdata = characters[rule]
+ local rdata = characters[right]
+ local ndata = characters[normal]
+ local mwidth = mdata.width or 0
+ local rwidth = rdata.width or 0
+ local nwidth = ndata.width or 0
+ local down = (mdata.height / 2) - height
+ --
+ local f_rule = rule and formatters["M-ROOTBAR-RULE-%H"](rule)
+ local f_right = right and formatters["M-ROOTBAR-RIGHT-%H"](right)
+ local p_rule = rule and hasprivate(main,f_rule)
+ local p_right = right and hasprivate(main,f_right)
+ --
+ if not p_rule then
+ p_rule = addprivate(main,f_rule,{
+ height = height,
+ width = .95*mwidth,
+ commands = {
+ push,
+ leftcommand[.05*mwidth],
+ downcommand[down],
+ slotcommand[0][rule],
+ pop,
+ },
+ })
+ end
+ if right and not p_right then
+ p_right = addprivate(main,p_right,{
+ height = height,
+ width = .95*rwidth,
+ commands = {
+ push,
+ leftcommand[.05*rwidth],
+ downcommand[down],
+ slotcommand[0][right],
+ pop,
+ },
+ })
+ end
+ characters[unicode] = {
+ keepvirtual = true,
+ partsorientation = "horizontal",
+ height = height,
+ width = rwidth,
+ commands = {
+ slotcommand[0][p_right],
+ },
+ parts = {
+ { glyph = p_rule, extender = 1, ["start"] = mwidth, ["end"] = 0.9*mwidth },
+ { glyph = p_right, ["start"] = 0.6*rwidth },
+ }
+ }
+ end
end
- characters[dnslot] = {
- width = w,
- height = ht,
- depth = dp,
- commands = { push, dn, slot, pop },
- }
end
-end
-local function clipped(main,characters,id,size,unicode,original) -- push/pop needed?
- local minus = characters[original]
- if minus then
- local mu = size/18
- local step = 3*mu
- local width = minus.width
- if width > step then
- width = width - step
- step = step / 2
- else
- width = width / 2
- step = width
+ local function parent(main,unicode,first,rule,last,where)
+ local characters = main.characters
+ local chardata = characters[unicode]
+ if characters[unicode] then
+ local template = characters[first]
+ if template then
+ if not characters[rule] then
+ local xheight = main.mathparameters.xheight
+ local width = template.width / 4
+ local height = template.height
+ local depth = template.depth
+ local rheight = where == "top" and height or 3*height
+ local rdepth = where == "top" and 2*height or 0
+ characters[rule] = {
+ height = rheight,
+ depth = rdepth,
+ width = width,
+ commands = { push, { "rule", height, width }, pop },
+ }
+ characters[first].depth = rdepth
+ characters[last] .depth = rdepth
+ while true do
+ chardata.height = chardata.height - xheight
+ chardata.depth = 0
+ chardata.yoffset = -xheight
+ local next = chardata.next
+ if next then
+ unicode = next
+ chardata = characters[unicode]
+ else
+ break
+ end
+ end
+ end
+ chardata.keepvirtual = true
+ chardata.partsorientation = "horizontal"
+ chardata.parts = {
+ { glyph = first },
+ { glyph = rule, extender = 1 },
+ { glyph = last },
+ }
+ end
end
- characters[unicode] = {
- width = width,
- height = minus.height,
- depth = minus.depth,
- commands = {
- push,
- leftcommand[step],
- { "slot", id, original },
- pop,
- }
- }
end
-end
-local function raise(main,characters,id,size,unicode,private,n,id_of_smaller) -- this is a real fake mess
- local raised = fonts.hashes.characters[main.fonts[id_of_smaller].id][private] -- characters[private]
- if raised then
- local up = 0.85 * main.parameters.x_height
- local slot = { "slot", id_of_smaller, private }
- local commands = {
- push, upcommand[up], slot,
- }
- for i=2,n do
- commands[#commands+1] = slot
+ local function brace(main,unicode,first,rule,left,right,rule,last)
+ local characters = main.characters
+ local chardata = characters[unicode]
+ if chardata then
+ local template = characters[first]
+ if template then
+ if not characters[rule] then
+ local xheight = main.mathparameters.xheight
+ local width = template.width / 4
+ local height = template.height
+ local depth = template.depth
+ local rheight = 3*height
+ local rdepth = 2*height
+ characters[rule] = {
+ height = rheight,
+ depth = rdepth,
+ width = width,
+ commands = { push, { "rule", height, width }, pop },
+ }
+ characters[first].depth = rdepth
+ characters[last] .depth = rdepth
+ characters[left] .height = rheight
+ characters[right].height = rheight
+ while true do
+ chardata.height = chardata.height - xheight
+ chardata.depth = 0
+ chardata.yoffset = -xheight
+ local next = chardata.next
+ if next then
+ unicode = next
+ chardata = characters[unicode]
+ else
+ break
+ end
+ end
+ end
+ chardata.keepvirtual = true
+ chardata.partsorientation = "horizontal"
+ chardata.parts = {
+ { glyph = first },
+ { glyph = rule, extender = 1 },
+ { glyph = left },
+ { glyph = right },
+ { glyph = rule, extender = 1 },
+ { glyph = last },
+ }
+ end
end
- commands[#commands+1] = pop
- characters[unicode] = {
- width = n * raised.width,
- height = (raised.height or 0) + up,
- depth = (raised.depth or 0) - up,
- italic = raised.italic,
- commands = commands,
- }
end
-end
-local function dots(main,characters,id,size,unicode)
- local c = characters[0x002E]
- if c then
- local w = c.width
- local h = c.height
- local d = c.depth
- local mu = size/18
- local right3mu = rightcommand[3*mu]
- local right1mu = rightcommand[1*mu]
- local up1size = upcommand[.1*size]
- local up4size = upcommand[.4*size]
- local up7size = upcommand[.7*size]
- local right2muw = rightcommand[2*mu + w]
- local slot = { "slot", id, 0x002E }
- if unicode == 0x22EF then
- local c = characters[0x022C5]
- if c then
- local width = c.width
- local height = c.height
- local depth = c.depth
- local slot = { "slot", id, 0x022C5 }
+ local function dots(main,unicode)
+ local characters = main.characters
+ local c = characters[0x002E]
+ if c then
+ local w = c.width
+ local h = c.height
+ local d = c.depth
+ local size = main.parameters.size
+ local mu = size/18
+ local right3mu = rightcommand[3*mu]
+ local right1mu = rightcommand[1*mu]
+ local up1size = upcommand[.1*size]
+ local up4size = upcommand[.4*size]
+ local up7size = upcommand[.7*size]
+ local right2muw = rightcommand[2*mu + w]
+ local slot = slotcommand[0][0x002E]
+ if unicode == 0x22EF then
+ local c = characters[0x022C5]
+ if c then
+ local width = c.width
+ local height = c.height
+ local depth = c.depth
+ local slot = slotcommand[0][0x022C5]
+ -- local stay = staycommand[0x022C5]
+ -- local right3mu = rightcommand[width+3*mu]
+ characters[unicode] = {
+ width = 3*width + 2*3*mu,
+ height = height,
+ depth = depth,
+ commands = {
+ slot, right3mu, slot, right3mu, slot,
+ -- push, slot, right3mu, slot, right3mu, slot, pop,
+ -- stay, right3mu, stay, right3mu, stay,
+ }
+ }
+ end
+ elseif unicode == 0x22EE then
characters[unicode] = {
- width = 3*width + 2*3*mu,
- height = height,
- depth = depth,
+ width = w,
+ height = h+0.8*size,
+ depth = 0,
commands = {
- push, slot, right3mu, slot, right3mu, slot, pop,
+ -- push, push, slot, pop, up4size, push, slot, pop, up4size, slot, pop,
+ push, slot, pop, up4size, push, slot, pop, up4size, slot,
}
}
- end
- elseif unicode == 0x22EE then
- -- weird height !
- characters[unicode] = {
- width = w,
- height = h+(1.4)*size,
- depth = 0,
- commands = {
- push, push, slot, pop, up4size, push, slot, pop, up4size, slot, pop,
+ elseif unicode == 0x22F1 then
+ characters[unicode] = {
+ width = 3*w + 6*size/18,
+ height = h+0.7*size,
+ depth = 0,
+ commands = {
+ -- push,
+ right1mu,
+ push, up7size, slot, pop,
+ right2muw,
+ push, up4size, slot, pop,
+ right2muw,
+ push, up1size, slot, pop,
+ right1mu,
+ -- pop
+ }
}
- }
- elseif unicode == 0x22F1 then
+ elseif unicode == 0x22F0 then
+ characters[unicode] = {
+ width = 3*w + 6*size/18,
+ height = h+0.7*size,
+ depth = 0,
+ commands = {
+ -- push,
+ right1mu,
+ push, up1size, slot, pop,
+ right2muw,
+ push, up4size, slot, pop,
+ right2muw,
+ push, up7size, slot, pop,
+ right1mu,
+ -- pop
+ }
+ }
+ else
+ characters[unicode] = {
+ width = 3*w + 2*3*mu,
+ height = h,
+ depth = d,
+ commands = {
+ -- push, slot, right3mu, slot, right3mu, slot, pop,
+ slot, right3mu, slot, right3mu, slot,
+ }
+ }
+ end
+ end
+ end
+
+ local function jointwo(main,unicode,u1,d12,u2)
+ local characters = main.characters
+ local c1 = characters[u1]
+ local c2 = characters[u2]
+ if c1 and c2 then
+ local w1 = c1.width
+ local w2 = c2.width
+ local width
+ if d12 == false then
+ d12 = 0
+ width = w2
+ elseif d12 < 0 then
+ d12 = d12 * w2
+ width = w2
+ else
+ d12 = d12 * main.parameters.size/18 -- mu
+ width = w1 + w2 - d12
+ end
characters[unicode] = {
- width = 3*w + 6*size/18,
- height = 1.5*size,
- depth = 0,
+ width = width,
+ height = max(c1.height or 0, c2.height or 0),
+ depth = max(c1.depth or 0, c2.depth or 0),
commands = {
- push,
- right1mu,
- push, up7size, slot, pop,
- right2muw,
- push, up4size, slot, pop,
- right2muw,
- push, up1size, slot, pop,
- right1mu,
- pop
- }
+ -- { "inspect" },
+ -- { "trace" },
+ slotcommand[0][u1],
+ -- { "trace" },
+ d12 ~= 0 and leftcommand[d12] or false,
+ slotcommand[0][u2],
+ -- { "trace" },
+ },
}
- elseif unicode == 0x22F0 then
+ end
+ end
+
+ local function overlaytwo(main,unicode,u1,factor,u2) -- not ...
+ local characters = main.characters
+ local c1 = characters[u1]
+ local c2 = characters[u2]
+ if c1 and c2 then
+ local width = c2.width
characters[unicode] = {
- width = 3*w + 6*size/18,
- height = 1.5*size,
- depth = 0,
+ width = width,
+ height = max(c1.height or 0, c2.height or 0),
+ depth = max(c1.depth or 0, c2.depth or 0),
commands = {
push,
- right1mu,
- push, up1size, slot, pop,
- right2muw,
- push, up4size, slot, pop,
- right2muw,
- push, up7size, slot, pop,
- right1mu,
- pop
- }
+ slotcommand[0][u2], -- =
+ pop,
+ factor ~= 0 and rightcommand[factor*width] or false,
+ slotcommand[0][u1], -- /
+ },
}
- else
+ end
+ end
+
+ local function jointhree(main,unicode,u1,d12,u2,d23,u3)
+ local characters = main.characters
+ local c1 = characters[u1]
+ local c2 = characters[u2]
+ local c3 = characters[u3]
+ if c1 and c2 and c3 then
+ local w1 = c1.width
+ local w2 = c2.width
+ local w3 = c3.width
+ local mu = main.parameters.size/18
+ d12 = d12 * ds
+ d23 = d23 * ds
characters[unicode] = {
- width = 3*w + 2*3*mu,
- height = h,
- depth = d,
+ width = w1 + w2 + w3 - d12 - d23,
+ height = max(c1.height or 0, c2.height or 0, c3.height or 0),
+ depth = max(c1.depth or 0, c2.depth or 0, c3.depth or 0),
commands = {
- push, slot, right3mu, slot, right3mu, slot, pop,
+ -- push,
+ slotcommand[0][u1],
+ -- pop,
+ d12 ~= 0 and leftcommand[d12] or false,
+ -- push,
+ slotcommand[0][u2],
+ -- pop,
+ d23 ~= 0 and leftcommand[d23] or false,
+ -- push,
+ slotcommand[0][u3],
+ -- pop,
}
}
end
end
-end
-
-local function vertbar(main,characters,id,size,parent,scale,unicode)
- local cp = characters[parent]
- if cp then
- local sc = scale * size
- local pc = { "slot", id, parent }
- characters[unicode] = {
- width = cp.width,
- height = cp.height + sc,
- depth = cp.depth + sc,
- next = cp.next, -- can be extensible
- commands = {
- push, upcommand [sc], pc, pop,
- push, downcommand[sc], pc, pop,
- pc,
- },
- }
- cp.next = unicode
- end
-end
-
-local function jointwo(main,characters,id,size,unicode,u1,d12,u2,what)
- local c1 = characters[u1]
- local c2 = characters[u2]
- if c1 and c2 then
- local w1 = c1.width
- local w2 = c2.width
- local mu = size/18
- characters[unicode] = {
- width = w1 + w2 - d12 * mu,
- height = max(c1.height or 0, c2.height or 0),
- depth = max(c1.depth or 0, c2.depth or 0),
- commands = {
- { "slot", id, u1 },
- leftcommand[d12*mu],
- { "slot", id, u2 },
- },
- }
- end
-end
-local function jointhree(main,characters,id,size,unicode,u1,d12,u2,d23,u3)
- local c1 = characters[u1]
- local c2 = characters[u2]
- local c3 = characters[u3]
- if c1 and c2 and c3 then
- local w1 = c1.width
- local w2 = c2.width
- local w3 = c3.width
- local mu = size/18
+ local function stack(main,unicode,u1,d12,u2)
+ local characters = main.characters
+ local c1 = characters[u1]
+ if not c1 then
+ return
+ end
+ local c2 = characters[u2]
+ if not c2 then
+ return
+ end
+ local w1 = c1.width or 0
+ local h1 = c1.height or 0
+ local d1 = c1.depth or 0
+ local w2 = c2.width or 0
+ local h2 = c2.height or 0
+ local d2 = c2.depth or 0
+ local mu = main.parameters.size/18
characters[unicode] = {
- width = w1 + w2 + w3 - d12*mu - d23*mu,
- height = max(c1.height or 0, c2.height or 0, c3.height or 0),
- depth = max(c1.depth or 0, c2.depth or 0, c3.depth or 0),
+ width = w1,
+ height = h1 + h2 + d12*mu,
+ depth = d1,
commands = {
- { "slot", id, u1 },
- leftcommand[d12*mu],
- { "slot", id, u2 },
- leftcommand[d23*mu],
- { "slot", id, u3 },
+ slotcommand[0][u1],
+ leftcommand[w1/2 + w2/2],
+ downcommand[-h1 + d2 -d12*mu],
+ slotcommand[0][u2],
}
}
end
-end
-
-local function stack(main,characters,id,size,unicode,u1,d12,u2)
- local c1 = characters[u1]
- if not c1 then
- return
- end
- local c2 = characters[u2]
- if not c2 then
- return
- end
- local w1 = c1.width or 0
- local h1 = c1.height or 0
- local d1 = c1.depth or 0
- local w2 = c2.width or 0
- local h2 = c2.height or 0
- local d2 = c2.depth or 0
- local mu = size/18
- characters[unicode] = {
- width = w1,
- height = h1 + h2 + d12,
- depth = d1,
- commands = {
- { "slot", id, u1 },
- leftcommand[w1/2 + w2/2],
- downcommand[-h1 + d2 -d12*mu],
- { "slot", id, u2 },
- }
- }
-end
-local function repeated(main,characters,id,size,unicode,u,n,private,fraction) -- math-fbk.lua
- local c = characters[u]
- if c then
- local width = c.width
- local italic = fraction*width -- c.italic or 0 -- larger ones have funny italics
- local tc = { "slot", id, u }
- local tr = leftcommand[italic] -- see hack elsewhere
- local commands = { }
- for i=1,n-1 do
- commands[#commands+1] = tc
- commands[#commands+1] = tr
- end
- commands[#commands+1] = tc
- local next = c.next
- if next then
- repeated(main,characters,id,size,private,next,n,private+1,fraction)
- next = private
+ local function repeated(main,unicode,u,n,fraction)
+ local characters = main.characters
+ local c = characters[u]
+ if c then
+ if n == 1 then
+ -- skip this one
+ else
+ local width = c.width
+ local italic = fraction*width -- c.italic or 0 -- larger ones have funny italics
+ local tc = slotcommand[0][u]
+ local tr = leftcommand[italic] -- see hack elsewhere
+ local commands = { }
+ for i=1,n-1 do
+ commands[#commands+1] = tc
+ commands[#commands+1] = tr
+ end
+ commands[#commands+1] = tc
+ local next = c.next
+ if next then
+ local p = addprivate(main,formatters["M-R-%H"](next))
+ repeated(main,p,next,n,fraction)
+ next = p
+ end
+ characters[unicode] = {
+ width = width + (n-1)*(width-italic),
+ height = c.height,
+ depth = c.depth,
+ italic = italic,
+ commands = commands,
+ keepvirtual = true,
+ next = next,
+ }
+ end
end
- characters[unicode] = {
- width = width + (n-1)*(width-italic),
- height = c.height,
- depth = c.depth,
- italic = italic,
- commands = commands,
- next = next,
- }
- end
-end
-
-local function cloned(main,characters,id,size,source,target)
- local data = characters[source]
- if data then
- characters[target] = data
- return true
- end
-end
-
--- we use the fact that context defines the smallest sizes first .. a real dirty and ugly hack
-
-local data_of_smaller = nil
-local size_of_smaller = 0
-
-function vfmath.addmissing(main,id,size)
-
- local id_of_smaller = nil
-
- if size < size_of_smaller or size_of_smaller == 0 then
- data_of_smaller = main.fonts[id]
- id_of_smaller = id
- else
- id_of_smaller = #main.fonts + 1
- main.fonts[id_of_smaller] = data_of_smaller
end
- -- here id is the index in fonts (normally 14 or so) and that slot points to self
-
- local characters = main.characters
- local shared = main.shared
- local variables = main.goodies.mathematics and main.goodies.mathematics.variables or { }
- local joinrelfactor = variables.joinrelfactor or 3
-
- for i=0x7A,0x7D do
- make(main,characters,id,size,i,1)
- end
-
- brace (main,characters,id,size,0x23DE,0xFF17A,0xFF301,0xFF17D,0xFF17C,0xFF301,0xFF17B)
- brace (main,characters,id,size,0x23DF,0xFF27C,0xFF401,0xFF27B,0xFF27A,0xFF401,0xFF27D)
-
- parent (main,characters,id,size,0x23DC,0xFF17A,0xFF301,0xFF17B)
- parent (main,characters,id,size,0x23DD,0xFF27C,0xFF401,0xFF27D)
-
- -- negate (main,characters,id,size,0x2260,0x003D)
- dots (main,characters,id,size,0x2026) -- ldots
- dots (main,characters,id,size,0x22EE) -- vdots
- dots (main,characters,id,size,0x22EF) -- cdots
- dots (main,characters,id,size,0x22F1) -- ddots
- dots (main,characters,id,size,0x22F0) -- udots
-
- vertbar (main,characters,id,size,0x0007C,0.10,0xFF601) -- big : 0.85 bodyfontsize
- vertbar (main,characters,id,size,0xFF601,0.30,0xFF602) -- Big : 1.15 bodyfontsize
- vertbar (main,characters,id,size,0xFF602,0.30,0xFF603) -- bigg : 1.45 bodyfontsize
- vertbar (main,characters,id,size,0xFF603,0.30,0xFF604) -- Bigg : 1.75 bodyfontsize
- vertbar (main,characters,id,size,0x02016,0.10,0xFF605)
- vertbar (main,characters,id,size,0xFF605,0.30,0xFF606)
- vertbar (main,characters,id,size,0xFF606,0.30,0xFF607)
- vertbar (main,characters,id,size,0xFF607,0.30,0xFF608)
-
- clipped (main,characters,id,size,0xFF501,0x0002D) -- minus
- clipped (main,characters,id,size,0xFF502,0x02190) -- lefthead
- clipped (main,characters,id,size,0xFF503,0x02192) -- righthead
- clipped (main,characters,id,size,0xFF504,0xFE321) -- mapsto
- clipped (main,characters,id,size,0xFF505,0xFE322) -- lhook
- clipped (main,characters,id,size,0xFF506,0xFE323) -- rhook
- clipped (main,characters,id,size,0xFF507,0xFE324) -- mapsfrom
- clipped (main,characters,id,size,0xFF508,0x021D0) -- double lefthead
- clipped (main,characters,id,size,0xFF509,0x021D2) -- double righthead
- clipped (main,characters,id,size,0xFF50A,0x0003D) -- equal
- clipped (main,characters,id,size,0xFF50B,0x0219E) -- lefttwohead
- clipped (main,characters,id,size,0xFF50C,0x021A0) -- righttwohead
- clipped (main,characters,id,size,0xFF50D,0xFF350) -- lr arrow combi snippet
- clipped (main,characters,id,size,0xFF50E,0xFF351) -- lr arrow combi snippet
- clipped (main,characters,id,size,0xFF50F,0xFF352) -- lr arrow combi snippet
- clipped (main,characters,id,size,0xFF510,0x02261) -- equiv
-
- extension(main,characters,id,size,0x2190,0xFF502,0xFF501,0xFF501) -- \leftarrow
- extension(main,characters,id,size,0x2192,0xFF501,0xFF501,0xFF503) -- \rightarrow
-
- extension(main,characters,id,size,0x002D,0xFF501,0xFF501,0xFF501) -- \rel
- extension(main,characters,id,size,0x003D,0xFF50A,0xFF50A,0xFF50A) -- \equal
- extension(main,characters,id,size,0x2261,0xFF510,0xFF510,0xFF510) -- \equiv
-
- jointwo (main,characters,id,size,0x21A6,0xFE321,0,0x02192) -- \mapstochar\rightarrow
- jointwo (main,characters,id,size,0x21A9,0x02190,joinrelfactor,0xFE323) -- \leftarrow\joinrel\rhook
- jointwo (main,characters,id,size,0x21AA,0xFE322,joinrelfactor,0x02192) -- \lhook\joinrel\rightarrow
- jointwo (main,characters,id,size,0x27F5,0x02190,joinrelfactor,0x0002D) -- \leftarrow\joinrel\relbar
- jointwo (main,characters,id,size,0x27F6,0x0002D,joinrelfactor,0x02192,2) -- \relbar\joinrel\rightarrow
- jointwo (main,characters,id,size,0x27F7,0x02190,joinrelfactor,0x02192) -- \leftarrow\joinrel\rightarrow
- jointwo (main,characters,id,size,0x27F8,0x021D0,joinrelfactor,0x0003D) -- \Leftarrow\joinrel\Relbar
- jointwo (main,characters,id,size,0x27F9,0x0003D,joinrelfactor,0x021D2) -- \Relbar\joinrel\Rightarrow
- jointwo (main,characters,id,size,0x27FA,0x021D0,joinrelfactor,0x021D2) -- \Leftarrow\joinrel\Rightarrow
- jointhree(main,characters,id,size,0x27FB,0x02190,joinrelfactor,0x0002D,0,0xFE324) -- \leftarrow\joinrel\relbar\mapsfromchar
- jointhree(main,characters,id,size,0x27FC,0xFE321,0,0x0002D,joinrelfactor,0x02192) -- \mapstochar\relbar\joinrel\rightarrow
-
- extension(main,characters,id,size,0x21A6,0xFF504,0xFF501,0xFF503) -- \mapstochar\rightarrow
- extension(main,characters,id,size,0x21A9,0xFF502,0xFF501,0xFF506) -- \leftarrow\joinrel\rhook
- extension(main,characters,id,size,0x21AA,0xFF505,0xFF501,0xFF503) -- \lhook\joinrel\rightarrow
- extension(main,characters,id,size,0x27F5,0xFF502,0xFF501,0xFF501) -- \leftarrow\joinrel\relbar
- extension(main,characters,id,size,0x27F6,0xFF501,0xFF501,0xFF503) -- \relbar\joinrel\rightarrow
- extension(main,characters,id,size,0x27F7,0xFF502,0xFF501,0xFF503) -- \leftarrow\joinrel\rightarrow
- extension(main,characters,id,size,0x27F8,0xFF508,0xFF50A,0xFF50A) -- \Leftarrow\joinrel\Relbar
- extension(main,characters,id,size,0x27F9,0xFF50A,0xFF50A,0xFF509) -- \Relbar\joinrel\Rightarrow
- extension(main,characters,id,size,0x27FA,0xFF508,0xFF50A,0xFF509) -- \Leftarrow\joinrel\Rightarrow
- extension(main,characters,id,size,0x27FB,0xFF502,0xFF501,0xFF507) -- \leftarrow\joinrel\relbar\mapsfromchar
- extension(main,characters,id,size,0x27FC,0xFF504,0xFF501,0xFF503) -- \mapstochar\relbar\joinrel\rightarrow
-
- extension(main,characters,id,size,0x219E,0xFF50B,0xFF501,0xFF501) -- \twoheadleftarrow\joinrel\relbar
- extension(main,characters,id,size,0x21A0,0xFF501,0xFF501,0xFF50C) -- \relbar\joinrel\twoheadrightarrow
- extension(main,characters,id,size,0x21C4,0xFF50D,0xFF50E,0xFF50F) -- leftoverright
-
- -- 21CB leftrightharpoon
- -- 21CC rightleftharpoon
-
- stack(main,characters,id,size,0x2259,0x0003D,3,0x02227) -- \buildrel\wedge\over=
-
- jointwo(main,characters,id,size,0x22C8,0x022B3,joinrelfactor,0x022B2) -- \mathrel\triangleright\joinrel\mathrel\triangleleft (4 looks better than 3)
- jointwo(main,characters,id,size,0x22A7,0x0007C,joinrelfactor,0x0003D) -- \mathrel|\joinrel=
- jointwo(main,characters,id,size,0x2260,0x00338,0,0x0003D) -- \not\equal
- jointwo(main,characters,id,size,0x2284,0x00338,0,0x02282) -- \not\subset
- jointwo(main,characters,id,size,0x2285,0x00338,0,0x02283) -- \not\supset
- jointwo(main,characters,id,size,0x2209,0x00338,0,0x02208) -- \not\in
- jointwo(main,characters,id,size,0x2254,0x03A,0,0x03D) -- := (≔)
-
- repeated(main,characters,id,size,0x222C,0x222B,2,0xFF800,1/3)
- repeated(main,characters,id,size,0x222D,0x222B,3,0xFF810,1/3)
-
- if cloned(main,characters,id,size,0x2032,0xFE325) then
- raise(main,characters,id,size,0x2032,0xFE325,1,id_of_smaller) -- prime
- raise(main,characters,id,size,0x2033,0xFE325,2,id_of_smaller) -- double prime
- raise(main,characters,id,size,0x2034,0xFE325,3,id_of_smaller) -- triple prime
- -- to satisfy the prime resolver
- characters[0xFE932] = characters[0x2032]
- characters[0xFE933] = characters[0x2033]
- characters[0xFE934] = characters[0x2034]
- end
-
- -- there are more (needs discussion first):
-
- -- characters[0x20D6] = characters[0x2190]
- -- characters[0x20D7] = characters[0x2192]
-
- characters[0x02B9] = characters[0x2032] -- we're nice
+ vfmath.builders = {
+ horibar = horibar,
+ rootbar = rootbar,
+ parent = parent,
+ brace = brace,
+ dots = dots,
+ jointwo = jointwo,
+ overlaytwo = overlaytwo,
+ jointhree = jointhree,
+ stack = stack,
+ repeated = repeated,
+ }
- data_of_smaller = main.fonts[id]
- size_of_smaller = size
+ -- todo: move this to the lfg files
end
@@ -620,18 +607,21 @@ setmetatableindex(reverse, function(t,name)
return r
end)
+-- Used in fallbacks (might move):
+
local function copy_glyph(main,target,original,unicode,slot)
- local addprivate = fonts.helpers.addprivate
- local olddata = original[unicode]
+ local olddata = original[unicode]
if olddata then
local newdata = {
width = olddata.width,
height = olddata.height,
depth = olddata.depth,
italic = olddata.italic,
+ topanchor = olddata.topanchor,
kerns = olddata.kerns,
+ mathkerns = olddata.mathkerns,
tounicode = olddata.tounicode,
- commands = { { "slot", slot, unicode } },
+ commands = { slotcommand[slot][unicode] },
}
local glyphdata = newdata
local nextglyph = olddata.next
@@ -642,8 +632,13 @@ local function copy_glyph(main,target,original,unicode,slot)
width = oldnextdata.width,
height = oldnextdata.height,
depth = oldnextdata.depth,
+ italic = oldnextdata.italic,
+ topanchor = oldnextdata.topanchor,
+ kerns = olddata.kerns,
+ mathkerns = olddata.mathkerns,
tounicode = olddata.tounicode,
- commands = { { "slot", slot, nextglyph } },
+ smaller = olddata.smaller,
+ commands = { slotcommand[slot][nextglyph] },
}
local newnextglyph = addprivate(main,formatters["M-N-%H"](nextglyph),newnextdata)
newdata.next = newnextglyph
@@ -659,43 +654,32 @@ local function copy_glyph(main,target,original,unicode,slot)
break -- safeguard (when testing stuff)
end
end
- local hv = olddata.horiz_variants
- if hv then
- hv = fastcopy(hv)
- newdata.horiz_variants = hv
- for i=1,#hv do
- local hvi = hv[i]
- local oldglyph = hvi.glyph
- local olddata = original[oldglyph]
- local newdata = {
+ local oldparts = olddata.parts
+ if oldparts then
+ newparts = fastcopy(oldparts)
+ newdata.parts = newparts
+ newdata.partsorientation = olddata.partsorientation
+ newdata.partsitalic = olddata.partsitalic
+ for i=1,#newparts do
+ local newpart = newparts[i]
+ local oldglyph = newpart.glyph
+ local olddata = original[oldglyph]
+ local newdata = {
width = olddata.width,
height = olddata.height,
depth = olddata.depth,
tounicode = olddata.tounicode,
- commands = { { "slot", slot, oldglyph } },
+ commands = { slotcommand[slot][oldglyph] },
}
- hvi.glyph = addprivate(main,formatters["M-H-%H"](oldglyph),newdata)
+ newpart.glyph = addprivate(main,formatters["M-P-%H"](oldglyph),newdata)
end
end
- local vv = olddata.vert_variants
- if vv then
- vv = fastcopy(vv)
- newdata.vert_variants = vv
- for i=1,#vv do
- local vvi = vv[i]
- local oldglyph = vvi.glyph
- local olddata = original[oldglyph]
- local newdata = {
- width = olddata.width,
- height = olddata.height,
- depth = olddata.depth,
- tounicode = olddata.tounicode,
- commands = { { "slot", slot, oldglyph } },
- }
- vvi.glyph = addprivate(main,formatters["M-V-%H"](oldglyph),newdata)
- end
+ local smaller = olddata.smaller
+ if smaller then
+ local smallerdata = copy_glyph(main,target,original,smaller,slot)
+ glyphdata.smaller = addprivate(main,formatters["M-S-%H"](smaller),smallerdata)
end
- return newdata
+ return glyphdata
end
end
@@ -706,6 +690,71 @@ vfmath.copy_glyph = copy_glyph
-- route: use the "order" field. I can probably make it a bit leaner but it's not
-- worth spending much time on now.
+local noitalics = true -- false can be used to test the engine
+
+-- revision timestamp 2023: after watching ten times "Over The Mountain (feat.
+-- Sierra Hull)" - Cory Wong (Live @ Brooklyn Steel FEB 2022):
+--
+-- https://www.youtube.com/watch?v=lT-W-UEcsns
+-- https://www.youtube.com/watch?v=TPGbj1gFalA
+
+-- The following code is now only used for iwona and antykwa, so I simplified it a
+-- bit to suit that purpose. It might get even simpler.
+
+local function virtualize(s,uni,fci,skewchar,move,mathparameters,unicode,parameters)
+ if fci then
+ local kerns = fci.kerns
+ local width = fci.width
+ local height = fci.height
+ local depth = fci.depth
+ local italic = fci.italic
+ local advance = width
+ local bottomright
+ local topanchor
+ local yoffset
+ if kerns and skewchar then
+ local k = kerns[skewchar]
+ if k then
+ topanchor = width/2 + k
+ end
+ end
+ if italic and noitalics then
+ width = width + italic
+ bottomright = - italic
+ italic = nil
+ end
+ if move then -- 0x222B
+ local axis = move * mathparameters.axisheight
+ local half = (height + depth ) / 2
+ yoffset = depth - (half - axis)
+ height = half + axis
+ depth = half - axis
+ end
+ --
+ local next = fci.next
+ return {
+ advance = advance,
+ width = width,
+ height = height,
+ depth = depth,
+ italic = italic,
+ bottomright = bottomright,
+ topanchor = topanchor,
+ yoffset = yoffset,
+ commands = { slotcommand[s][uni] },
+ -- keepvirtual = true,
+ next = fci.next,
+ parts = fci.parts,
+ partsorientation = fci.partsorientation,
+ partsitalic = fci.partsitalic,
+ unicode = unicode,
+ name = fci.name,
+ }
+ else
+ -- error
+ end
+end
+
function vfmath.define(specification,set,goodies)
local name = specification.name -- symbolic name
local size = specification.size -- given size
@@ -716,6 +765,7 @@ function vfmath.define(specification,set,goodies)
local start = (trace_virtual or trace_timings) and os.clock()
local okset = { }
local n = 0
+ local f_extra = formatters["virtual.extra.%05X"]
for s=1,#set do
local ss = set[s]
local ssname = ss.name
@@ -739,7 +789,11 @@ function vfmath.define(specification,set,goodies)
end
else
f, id = fonts.constructors.readanddefine(ssname,size)
- names[ssname] = { f = f, id = id }
+ names[ssname] = {
+ f = f,
+ id = id,
+ fontname = ssname, -- diagnostics
+ }
end
if not f or id == 0 then
report_virtual("loading font %a subfont %s with name %a at %p is skipped, not found",name,s,ssname,size)
@@ -747,10 +801,11 @@ function vfmath.define(specification,set,goodies)
n = n + 1
okset[n] = ss
loaded[n] = f
- fontlist[n] = { id = id, size = size }
- if not shared[s] then
- shared[n] = { }
- end
+ fontlist[n] = {
+ id = id,
+ size = size,
+ fontname = ssname, -- diagnostics
+ }
if trace_virtual then
report_virtual("loading font %a subfont %s with name %a at %p as id %s using encoding %a",name,s,ssname,size,id,ss.vector)
end
@@ -768,7 +823,9 @@ function vfmath.define(specification,set,goodies)
hasitalics = true,
hasmath = true,
}
- local goodies = { }
+ if not goodies then
+ goodies = { }
+ end
local main = {
metadata = metadata,
properties = properties,
@@ -822,21 +879,24 @@ function vfmath.define(specification,set,goodies)
properties.fullname = fullname .. "-" .. unique
end
--
- if not parameters.x_height then
- parameters.x_height = 0
+ if not parameters.xheight then
+ parameters.xheight = 0
end
--
local already_reported = false
- local parameters_done = false
+ local parameters_done = false
+ local offset = 0 -- 0xFF000 -- todo: -- private
+ --
for s=1,n do
- local ss, fs = okset[s], loaded[s]
+ local ss = okset[s]
+ local fs = loaded[s]
if not fs then
-- skip, error
elseif add_optional and ss.optional then
-- skip, redundant
else
local newparameters = fs.parameters
- local newmathparameters = fs.mathparameters
+ local newmathparameters = fs.mathparameters and ss.parameters ~= false
if newmathparameters then
if not parameters_done or ss.parameters then
mathparameters = newmathparameters
@@ -845,35 +905,40 @@ function vfmath.define(specification,set,goodies)
elseif not newparameters then
report_virtual("no parameters set in font %a",name)
elseif ss.extension then
- mathparameters.math_x_height = newparameters.x_height or 0 -- math_x_height : height of x
- mathparameters.default_rule_thickness = newparameters[ 8] or 0 -- default_rule_thickness : thickness of \over bars
- mathparameters.big_op_spacing1 = newparameters[ 9] or 0 -- big_op_spacing1 : minimum clearance above a displayed op
- mathparameters.big_op_spacing2 = newparameters[10] or 0 -- big_op_spacing2 : minimum clearance below a displayed op
- mathparameters.big_op_spacing3 = newparameters[11] or 0 -- big_op_spacing3 : minimum baselineskip above displayed op
- mathparameters.big_op_spacing4 = newparameters[12] or 0 -- big_op_spacing4 : minimum baselineskip below displayed op
- mathparameters.big_op_spacing5 = newparameters[13] or 0 -- big_op_spacing5 : padding above and below displayed limits
+ mathparameters.xheight = newparameters.xheight or 0 -- mathxheight : height of x
+ mathparameters.defaultrulethickness = newparameters[ 8] or 0 -- defaultrulethickness : thickness of \over bars
+ mathparameters.bigopspacing1 = newparameters[ 9] or 0 -- bigopspacing1 : minimum clearance above a displayed op
+ mathparameters.bigopspacing2 = newparameters[10] or 0 -- bigopspacing2 : minimum clearance below a displayed op
+ mathparameters.bigopspacing3 = newparameters[11] or 0 -- bigopspacing3 : minimum baselineskip above displayed op
+ mathparameters.bigopspacing4 = newparameters[12] or 0 -- bigopspacing4 : minimum baselineskip below displayed op
+ mathparameters.bigopspacing5 = newparameters[13] or 0 -- bigopspacing5 : padding above and below displayed limits
-- report_virtual("loading and virtualizing font %a at size %p, setting ex parameters",name,size)
elseif ss.parameters then
- mathparameters.x_height = newparameters.x_height or mathparameters.x_height
- mathparameters.x_height = mathparameters.x_height or fp.x_height or 0 -- x_height : height of x
- mathparameters.num1 = newparameters[ 8] or 0 -- num1 : numerator shift-up in display styles
- mathparameters.num2 = newparameters[ 9] or 0 -- num2 : numerator shift-up in non-display, non-\atop
- mathparameters.num3 = newparameters[10] or 0 -- num3 : numerator shift-up in non-display \atop
- mathparameters.denom1 = newparameters[11] or 0 -- denom1 : denominator shift-down in display styles
- mathparameters.denom2 = newparameters[12] or 0 -- denom2 : denominator shift-down in non-display styles
- mathparameters.sup1 = newparameters[13] or 0 -- sup1 : superscript shift-up in uncramped display style
- mathparameters.sup2 = newparameters[14] or 0 -- sup2 : superscript shift-up in uncramped non-display
- mathparameters.sup3 = newparameters[15] or 0 -- sup3 : superscript shift-up in cramped styles
- mathparameters.sub1 = newparameters[16] or 0 -- sub1 : subscript shift-down if superscript is absent
- mathparameters.sub2 = newparameters[17] or 0 -- sub2 : subscript shift-down if superscript is present
- mathparameters.sup_drop = newparameters[18] or 0 -- sup_drop : superscript baseline below top of large box
- mathparameters.sub_drop = newparameters[19] or 0 -- sub_drop : subscript baseline below bottom of large box
- mathparameters.delim1 = newparameters[20] or 0 -- delim1 : size of \atopwithdelims delimiters in display styles
- mathparameters.delim2 = newparameters[21] or 0 -- delim2 : size of \atopwithdelims delimiters in non-displays
- mathparameters.axis_height = newparameters[22] or 0 -- axis_height : height of fraction lines above the baseline
+ mathparameters.xheight = newparameters.xheight
+ or mathparameters.xheight
+ or fs.xheight or 0 -- xheight : height of x
+ mathparameters.num1 = newparameters[ 8] or 0 -- num1 : numerator shift-up in display styles
+ mathparameters.num2 = newparameters[ 9] or 0 -- num2 : numerator shift-up in non-display, non-\atop
+ mathparameters.num3 = newparameters[10] or 0 -- num3 : numerator shift-up in non-display \atop
+ mathparameters.denom1 = newparameters[11] or 0 -- denom1 : denominator shift-down in display styles
+ mathparameters.denom2 = newparameters[12] or 0 -- denom2 : denominator shift-down in non-display styles
+ mathparameters.sup1 = newparameters[13] or 0 -- sup1 : superscript shift-up in uncramped display style
+ mathparameters.sup2 = newparameters[14] or 0 -- sup2 : superscript shift-up in uncramped non-display
+ mathparameters.sup3 = newparameters[15] or 0 -- sup3 : superscript shift-up in cramped styles
+ mathparameters.sub1 = newparameters[16] or 0 -- sub1 : subscript shift-down if superscript is absent
+ mathparameters.sub2 = newparameters[17] or 0 -- sub2 : subscript shift-down if superscript is present
+ mathparameters.supdrop = newparameters[18] or 0 -- supdrop : superscript baseline below top of large box
+ mathparameters.subdrop = newparameters[19] or 0 -- subdrop : subscript baseline below bottom of large box
+ mathparameters.delim1 = newparameters[20] or 0 -- delim1 : size of \atopwithdelims delimiters in display styles
+ mathparameters.delim2 = newparameters[21] or 0 -- delim2 : size of \atopwithdelims delimiters in non-displays
+ mathparameters.axisheight = newparameters[22] or 0 -- axisheight : height of fraction lines above the baseline
-- report_virtual("loading and virtualizing font %a at size %p, setting sy parameters",name,size)
end
+ -- We no longer care about kerns and ligatures here. We use backmack because we need to know
+ -- the original order and the loader has made a unicode font of it and weird glyph names have
+ -- spoiled that a bit too.
if ss.overlay then
+ -- This branch / option will go away.
local fc = fs.characters
local first = ss.first
if first then
@@ -889,29 +954,31 @@ function vfmath.define(specification,set,goodies)
else
local vectorname = ss.vector
if vectorname then
- local offset = 0xFF000 -- todo: -- private
local vector = mathencodings[vectorname]
- local rotcev = reverse[vectorname]
local isextension = ss.extension
- if vector and rotcev then
+ if vector then
local fc = fs.characters
local fd = fs.descriptions
- local si = shared[s]
+ local fp = fs.parameters
local fontname = fs.properties.name or "unknown"
local skewchar = ss.skewchar
local backmap = ss.backmap
- -- we need to know the original order because the loader has made a
- -- unicode font of it and weird glyphnames have spoiled that a bit
- if backmap then
+ local badones = ss.badones
+ local ignore = ss.ignore
+ local done = { }
+ local extras = { }
+ if backmap == false then
+ -- backmap = { }
+ elseif not backmap then
backmap = { }
for unicode, character in next, fc do
backmap[character.order or character.index or unicode] = unicode
end
+ ss.backmap = backmap
end
- for unicode, i in next, vector do
- -- So, here we can have an extra remapping (compared to mkiv).
- local index = backmap and backmap[i] or i
- local fci = fc[index]
+ for unicode, index in sortedhash(vector) do
+ local uni = backmap and backmap[index] or index
+ local fci = fc[uni]
if not fci then
local rf = reported[fontname]
if not rf then rf = { } reported[fontname] = rf end
@@ -933,161 +1000,74 @@ function vfmath.define(specification,set,goodies)
rv[unicode] = true
end
else
- local ref = si[index]
- if not ref then
- ref = { { 'slot', s, index } }
- si[index] = ref
- end
- local kerns = fci.kerns
- local width = fci.width
- local italic = fci.italic
--- if trace_virtual then
--- report_virtual("character %C uses index %H in vector %a for font %a, %s, %s",
--- unicode,index,vectorname,fontname,
--- kerns and "adding kerns" or "no kerns",
--- kerns and "adding italic" or "no italic"
--- )
--- end
- if italic and italic > 0 then
- -- int_a^b
- if isextension then
- width = width + italic -- for obscure reasons the integral as a width + italic correction
- end
- end
- if kerns then
- local krn = { }
- for k, v in next, kerns do -- kerns is sparse
- local rk = rotcev[k]
- if rk then
- krn[rk] = v -- kerns[k]
- end
- end
- if not next(krn) then
- krn = nil
- end
- local t = {
- width = width,
- height = fci.height,
- depth = fci.depth,
- italic = italic,
- kerns = krn,
- commands = ref,
- }
- if skewchar then
- local k = kerns[skewchar]
- if k then
- t.top_accent = width/2 + k
- end
- end
- characters[unicode] = t
+ local name = fci.name or ""
+ if ignore and ignore[name] then
+ -- get rid of ugly slanted antykwa { }
else
- characters[unicode] = {
- width = width,
- height = fci.height,
- depth = fci.depth,
- italic = italic,
- commands = ref,
- }
+ local u = mathematics.gaps[unicode] or unicode
+ local t = virtualize(s,uni,fci,skewchar,tonumber(badones and badones[name]),mathparameters,u,fp)
+ done[uni] = t
+ characters[unicode] = t
+ fci.unicode = u
end
end
end
+-- if ss.jmn then
+-- local extension = mathencodings["extensible-jmn-private"]
+-- for unicode, index in sortedhash(extension) do
+-- if not characters[unicode] then
+-- local uni = backmap and backmap[index] or index
+-- local fci = fc[uni]
+-- characters[unicode] = virtualize(s,uni,fci,skewchar,false,mathparameters,unicode,fp)
+-- end
+-- end
+-- end
if isextension then
- -- todo: if multiple ex, then 256 offsets per instance
local extension = mathencodings["large-to-small"]
- local variants_done = fs.variants_done
- for index, fci in next, fc do -- the raw ex file
- if type(index) == "number" then
- local ref = si[index]
- if not ref then
- ref = { { 'slot', s, index } }
- si[index] = ref
- end
- local italic = fci.italic
- local t = {
- width = fci.width,
- height = fci.height,
- depth = fci.depth,
- italic = italic,
- commands = ref,
- }
- local n = fci.next
- if n then
- t.next = offset + n
- elseif variants_done then
- local vv = fci.vert_variants
- if vv then
- t.vert_variants = vv
- end
- local hv = fci.horiz_variants
- if hv then
- t.horiz_variants = hv
- end
- else
- local vv = fci.vert_variants
- if vv then
- for i=1,#vv do
- local vvi = vv[i]
- vvi.glyph = vvi.glyph + offset
- end
- t.vert_variants = vv
- end
- local hv = fci.horiz_variants
- if hv then
- for i=1,#hv do
- local hvi = hv[i]
- hvi.glyph = hvi.glyph + offset
- end
- t.horiz_variants = hv
- end
- end
- characters[offset + index] = t
+ for uni, fci in sortedhash(fc) do
+ local name = fci.name or ""
+ if ignore and ignore[name] then
+ -- get rid of ugly antykwa bar
+ elseif not done[uni] then
+ local t = virtualize(s,uni,fci,skewchar,tonumber(badones and badones[name]),mathparameters,nil,fp)
+ local o = addprivate(main,f_extra(offset))
+ extras[uni] = o
+ characters[o] = t
+ done[uni] = t
+ offset = offset + 1
end
end
- fs.variants_done = true
- for unicode, index in next, extension do
- local cu = characters[unicode]
- if cu then
- cu.next = offset + index
- else
- local fci = fc[index]
- if not fci then
- -- do nothing
- else
- -- probably never entered
- local ref = si[index]
- if not ref then
- ref = { { 'slot', s, index } }
- si[index] = ref
- end
- local kerns = fci.kerns
- if kerns then
- local krn = { }
- -- for k=1,#kerns do
- -- krn[offset + k] = kerns[k]
- -- end
- for k, v in next, kerns do -- is kerns sparse?
- krn[offset + k] = v
- end
- characters[unicode] = {
- width = fci.width,
- height = fci.height,
- depth = fci.depth,
- italic = fci.italic,
- commands = ref,
- kerns = krn,
- next = offset + index,
- }
- else
- characters[unicode] = {
- width = fci.width,
- height = fci.height,
- depth = fci.depth,
- italic = fci.italic,
- commands = ref,
- next = offset + index,
- }
- end
+ for uni, fci in sortedhash(done) do
+ local next = fci.next
+ if next then
+ fci.next = extras[backmap and backmap[next] or next]
+ end
+ local parts = fci.parts
+ if parts then
+ local p = table.copy(parts)
+ for i=1,#p do
+ local part = p[i]
+ local glyph = part.glyph
+ part.glyph = extras[backmap and backmap[glyph] or glyph] or glyph
end
+ fci.keepvirtual = true
+ fci.parts = p
+ fci.partsorientation = "vertical" -- nasty as some are horizontal
+ fci.partsitalic = fci.partsitalic or fci.italic
+ end
+ end
+ for unicode, index in sortedhash(extension) do
+ local fci = characters[unicode]
+ if fci then
+ fci.next = extras[backmap[index] or index]
+ end
+ end
+ local extension = mathencodings["large-to-small-private"]
+ for unicode, index in sortedhash(extension) do
+ if not characters[unicode] then
+ local uni = backmap and backmap[index] or index
+ local fci = fc[uni]
+ characters[unicode] = virtualize(s,uni,fci,skewchar,false,mathparameters,unicode,fp)
end
end
end
@@ -1096,36 +1076,52 @@ function vfmath.define(specification,set,goodies)
end
end
end
- mathematics.extras.copy(main) --not needed here (yet)
+ -- mathematics.extras.copy(main) -- Not needed here (yet) ... might go.
end
end
--- inspect(characters[0x1D465])
--- inspect(fonts.encodings.math["tex-it"])
--- inspect(fontlist)
--
main.mathparameters = mathparameters -- still traditional ones
- -- This should change (some day) as it's the only place where we look forward,
- -- so better is to also reserve the id already which then involves some more
- -- management (so not now).
fontlist[#fontlist+1] = {
- -- id = font.nextid(),
- id = 0, -- self
- size = size,
+ id = 0,
+ size = size,
+ fontname = name, -- diagnostics
}
- vfmath.addmissing(main,#fontlist,size)
+ --
+ local addmissing = goodies.mathematics.addmissing
+ if type(addmissing) == "function" then
+ addmissing(main)
+ end
--
mathematics.addfallbacks(main)
--
main.properties.math_is_scaled = true -- signal
fonts.constructors.assignmathparameters(main,main)
--
- main.MathConstants = main.mathparameters -- we directly pass it to TeX (bypasses the scaler) so this is needed
+ mathematics.initializeparameters(main,main,"noscale")
+ main.mathconstants = main.mathparameters -- we directly pass it to TeX (bypasses the scaler) so this is needed
+ main.MathConstants = main.mathconstants
+ main.nomath = false
+ --
+ mathematics.tweaks.setoptions(main,main,{
+ tweak = "setoptions",
+ set = { "ignorekerndimensions" }
+ }) -- we have dp > ht fences
+ --
+ mathematics.tweaks.fixprimes(main, main, {
+ tweak = "fixprimes",
+ factor = 1, -- accent base height
+ fake = 0.9, -- replace multiples with this width proportion
+ })
+ --
+-- mathematics.tweaks.addbars(main,main,{
+-- tweak = "addbars",
+-- advance = 0.52,
+-- })
--
if trace_virtual or trace_timings then
report_virtual("loading and virtualizing font %a at size %p took %0.3f seconds",name,size,os.clock()-start)
end
--
- main.oldmath = true
return main
end
@@ -1135,7 +1131,7 @@ function mathematics.makefont(name,set,goodies)
end
end
--- helpers
+-- helpers (todo: gaps)
function vfmath.setletters(font_encoding, name, uppercase, lowercase)
local enc = font_encoding[name]
@@ -1151,3 +1147,145 @@ function vfmath.setdigits(font_encoding, name, digits)
enc[digits+i] = i + 0x30
end
end
+
+-- local function extension(main,characters,id,size,unicode,first,middle,last)
+-- local chr = characters[unicode]
+-- if not chr then
+-- return -- skip
+-- end
+-- local fw = characters[first]
+-- if not fw then
+-- return
+-- end
+-- local mw = characters[middle]
+-- if not mw then
+-- return
+-- end
+-- local lw = characters[last]
+-- if not lw then
+-- return
+-- end
+-- fw = fw.width
+-- mw = mw.width
+-- lw = lw.width
+-- if fw == 0 then
+-- fw = 1
+-- end
+-- if lw == 0 then
+-- lw = 1
+-- end
+-- chr.partsorientation = "horizontal"
+-- chr.parts = {
+-- { extender = 0, glyph = first, ["end"] = fw/2, start = 0, advance = fw },
+-- { extender = 1, glyph = middle, ["end"] = mw/2, start = mw/2, advance = mw },
+-- { extender = 0, glyph = last, ["end"] = 0, start = lw/2, advance = lw },
+-- }
+-- end
+
+-- local step = 0.2 -- 0.1 is nicer but gives larger files
+
+-- local function clipped(main,characters,id,size,unicode,original) -- push/pop needed?
+-- local minus = characters[original]
+-- if minus then
+-- local mu = size/18
+-- local step = 3*mu
+-- local width = minus.width
+-- if width > step then
+-- width = width - step
+-- step = step / 2
+-- else
+-- width = width / 2
+-- step = width
+-- end
+-- characters[unicode] = {
+-- width = width,
+-- height = minus.height,
+-- depth = minus.depth,
+-- commands = {
+-- push,
+-- leftcommand[step],
+-- slotcommand[0][original],
+-- pop,
+-- }
+-- }
+-- end
+-- end
+
+-- local function vertbar(main,characters,id,size,parent,scale,unicode)
+-- local cp = characters[parent]
+-- if cp then
+-- local sc = scale * size
+-- local pc = slotcommand[0][parent]
+-- characters[unicode] = {
+-- width = cp.width,
+-- height = cp.height + sc,
+-- depth = cp.depth + sc,
+-- next = cp.next, -- can be extensible
+-- commands = {
+-- push, upcommand [sc], pc, pop,
+-- push, downcommand[sc], pc, pop,
+-- pc,
+-- },
+-- }
+-- cp.next = unicode
+-- end
+-- end
+
+-- vertbar (main,characters,id,size,0x0007C,0.10,0xFF601) -- big : 0.85 bodyfontsize
+-- vertbar (main,characters,id,size,0xFF601,0.30,0xFF602) -- Big : 1.15 bodyfontsize
+-- vertbar (main,characters,id,size,0xFF602,0.30,0xFF603) -- bigg : 1.45 bodyfontsize
+-- vertbar (main,characters,id,size,0xFF603,0.30,0xFF604) -- Bigg : 1.75 bodyfontsize
+-- vertbar (main,characters,id,size,0x02016,0.10,0xFF605)
+-- vertbar (main,characters,id,size,0xFF605,0.30,0xFF606)
+-- vertbar (main,characters,id,size,0xFF606,0.30,0xFF607)
+-- vertbar (main,characters,id,size,0xFF607,0.30,0xFF608)
+
+-- clipped (main,characters,id,size,0xFF501,0x0002D) -- minus
+-- clipped (main,characters,id,size,0xFF502,0x02190) -- lefthead
+-- clipped (main,characters,id,size,0xFF503,0x02192) -- righthead
+-- clipped (main,characters,id,size,0xFF504,ps("maps to piece") -- mapsto
+-- clipped (main,characters,id,size,0xFF505,0xFE322) -- lhook
+-- clipped (main,characters,id,size,0xFF506,0xFE323) -- rhook
+-- clipped (main,characters,id,size,0xFF507,0xFE324) -- mapsfrom
+-- clipped (main,characters,id,size,0xFF508,0x021D0) -- double lefthead
+-- clipped (main,characters,id,size,0xFF509,0x021D2) -- double righthead
+-- clipped (main,characters,id,size,0xFF50A,0x0003D) -- equal
+-- clipped (main,characters,id,size,0xFF50B,0x0219E) -- lefttwohead
+-- clipped (main,characters,id,size,0xFF50C,0x021A0) -- righttwohead
+-- clipped (main,characters,id,size,0xFF50D,0xFF350) -- lr arrow combi snippet
+-- clipped (main,characters,id,size,0xFF50E,0xFF351) -- lr arrow combi snippet
+-- clipped (main,characters,id,size,0xFF50F,0xFF352) -- lr arrow combi snippet
+-- clipped (main,characters,id,size,0xFF510,0x02261) -- equiv
+
+-- extension(main,characters,id,size,0x2190,0xFF502,0xFF501,0xFF501) -- \leftarrow
+-- extension(main,characters,id,size,0x2192,0xFF501,0xFF501,0xFF503) -- \rightarrow
+
+-- extension(main,characters,id,size,0x002D,0xFF501,0xFF501,0xFF501) -- \rel
+-- extension(main,characters,id,size,0x003D,0xFF50A,0xFF50A,0xFF50A) -- \equal
+-- extension(main,characters,id,size,0x2261,0xFF510,0xFF510,0xFF510) -- \equiv
+
+-- local lh = ps("left hook piece")] -- was FE322
+-- local rh = ps("right hook piece")] -- was FE323
+
+-- jointwo (main,characters,id,size,0x21A6,ps("maps to piece"),0,0x02192) -- \mapstochar\rightarrow
+-- jointwo (main,characters,id,size,0x21A9,0x02190,joinrelfactor,0xFE323) -- \leftarrow\joinrel\rhook
+-- jointwo (main,characters,id,size,0x21AA,0xFE322,joinrelfactor,0x02192) -- \lhook\joinrel\rightarrow
+-- jointhree(main,characters,id,size,0x27FB,0x02190,joinrelfactor,0x0002D,0,0xFE324) -- \leftarrow\joinrel\relbar\mapsfromchar
+
+-- jointhree(main,characters,id,size,0x27FC,ps("maps to piece"),0,0x0002D,joinrelfactor,0x02192) -- \mapstochar\relbar\joinrel\rightarrow
+
+-- extension(main,characters,id,size,0x21A6,0xFF504,0xFF501,0xFF503) -- \mapstochar\rightarrow
+-- extension(main,characters,id,size,0x21A9,0xFF502,0xFF501,0xFF506) -- \leftarrow\joinrel\rhook
+-- extension(main,characters,id,size,0x21AA,0xFF505,0xFF501,0xFF503) -- \lhook\joinrel\rightarrow
+-- extension(main,characters,id,size,0x27F5,0xFF502,0xFF501,0xFF501) -- \leftarrow\joinrel\relbar
+-- extension(main,characters,id,size,0x27F6,0xFF501,0xFF501,0xFF503) -- \relbar\joinrel\rightarrow
+-- extension(main,characters,id,size,0x27F7,0xFF502,0xFF501,0xFF503) -- \leftarrow\joinrel\rightarrow
+-- extension(main,characters,id,size,0x27F8,0xFF508,0xFF50A,0xFF50A) -- \Leftarrow\joinrel\Relbar
+-- extension(main,characters,id,size,0x27F9,0xFF50A,0xFF50A,0xFF509) -- \Relbar\joinrel\Rightarrow
+-- extension(main,characters,id,size,0x27FA,0xFF508,0xFF50A,0xFF509) -- \Leftarrow\joinrel\Rightarrow
+-- extension(main,characters,id,size,0x27FB,0xFF502,0xFF501,0xFF507) -- \leftarrow\joinrel\relbar\mapsfromchar
+-- extension(main,characters,id,size,0x27FC,0xFF504,0xFF501,0xFF503) -- \mapstochar\relbar\joinrel\rightarrow
+
+-- extension(main,characters,id,size,0x219E,0xFF50B,0xFF501,0xFF501) -- \twoheadleftarrow\joinrel\relbar
+-- extension(main,characters,id,size,0x21A0,0xFF501,0xFF501,0xFF50C) -- \relbar\joinrel\twoheadrightarrow
+-- extension(main,characters,id,size,0x21C4,0xFF50D,0xFF50E,0xFF50F) -- leftoverright
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-fig.mkxl b/Master/texmf-dist/tex/context/base/mkxl/meta-fig.mkxl
index b8a22f6feff..8348dfbaf41 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/meta-fig.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-fig.mkxl
@@ -42,13 +42,16 @@
[MPpage]
[\c!align=,
\c!command=\meta_process_graphic_command,
+ \c!stacking=,
\c!instance=]
\permanent\protected\def\setupMPpage
{\setupfittingpage[MPpage]}
\protected\def\meta_process_graphic_command
- {\meta_process_graphic_instance{\fittingpageparameter\c!instance}}
+ {\meta_process_graphic_instance
+ {\fittingpageparameter\c!instance}%
+ {\fittingpageparameter\c!stacking}}
%D \macros
%D {MPfigure}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-grd.mkxl b/Master/texmf-dist/tex/context/base/mkxl/meta-grd.mkxl
index 009149e46ed..99db410c6cc 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/meta-grd.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-grd.mkxl
@@ -36,39 +36,39 @@
\startuseMPgraphic{meta:grd:basegrid}
begingroup ;
- save sc, dx, dy, wd, ht, ox, oy, ax, ay ;
+ save nx, ny, dx, dy, ox, oy, sx, sy ;
- sc = \directdummyparameter\c!factor*\directdummyparameter\c!scale ;
- dx = \MPdpar\directdummyparameter\c!dx*sc ;
- dy = \MPdpar\directdummyparameter\c!dy*sc ;
- wd = \directdummyparameter\c!nx*dx ;
- ht = \directdummyparameter\c!ny*dy ;
- ox = \MPdpar\directdummyparameter\c!xoffset\relax ;
- oy = \MPdpar\directdummyparameter\c!yoffset\relax ;
+ sc := \directdummyparameter\c!factor*\directdummyparameter\c!scale ;
+ nx := \directdummyparameter\c!nx ;
+ ny := \directdummyparameter\c!ny ;
+ dx := \MPdpar\directdummyparameter\c!dx * sc ;
+ dy := \MPdpar\directdummyparameter\c!dy * sc ;
+ ox := \MPdpar\directdummyparameter\c!xoffset ;
+ oy := \MPdpar\directdummyparameter\c!yoffset ;
+ sx := \directdummyparameter\c!xstep ;
+ sy := \directdummyparameter\c!ystep ;
if "\directdummyparameter\c!align" = "\v!middle" :
- ax = \MPdpar\directdummyparameter\c!dx/2
- ay = \MPdpar\directdummyparameter\c!dy/2
+ ax := dx / 2 ;
+ ay := dy / 2 ;
else :
- ax = 0 ;
- ay = 0 ;
+ ax := 0 ;
+ ay := 0 ;
fi ;
- draw image (
- for i=0 step dx until wd : draw (i,0) -- (i,ht) ; endfor ;
- for i=0 step dy until ht : draw (0,i) -- (wd,i) ; endfor ;
- )
+ draw lmt_grid [ nx = nx, ny = ny, dx = 1, dy = 1 ]
+ xyscaled (dx,dy) shifted (ax, ay)
withpen pencircle scaled \MPdpar\directdummyparameter\c!rulethickness\space
withcolor "\directdummyparameter\c!rulecolor" ;
draw image (
- if \directdummyparameter\c!xstep > 0 :
- for i=1 step \directdummyparameter\c!xstep until \directdummyparameter\c!nx :
+ if sx > 0 :
+ for i=1 step sx until nx :
draw thetextext.bot(decimal i,(i*dx-ax,oy));
endfor ;
fi ;
- if \directdummyparameter\c!ystep > 0 :
- for i=1 step \directdummyparameter\c!ystep until \directdummyparameter\c!ny :
+ if sy > 0 :
+ for i=1 step sy until ny :
draw thetextext.lft(decimal i,(ox,i*dy-ay)) ;
endfor ;
fi ;
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-imp-bitmaps.mkxl b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-bitmaps.mkxl
new file mode 100644
index 00000000000..069b7420754
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-bitmaps.mkxl
@@ -0,0 +1,338 @@
+%D \module
+%D [ file=meta-imp-bitmaps,
+%D version=2021.08.03,
+%D title=\METAPOST\ Graphics,
+%D subtitle=Bitmap Manipulations,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\registerctxluafile{libs-imp-imagemagick}{autosuffix}
+\registerctxluafile{libs-imp-graphicsmagick}{autosuffix}
+
+% todo: load png directly
+
+\startluacode
+ local char = string.char
+ local concat = table.concat
+ local unpack = unpack
+
+ graphics.bitmaps.magick = "imagemagick"
+
+ function graphics.bitmaps.load(name)
+ local inputname = name
+ local outputname = file.replacesuffix("m_k_i_v_mp_" .. name,"pnm")
+ if file.suffix(inputname) == "pnm" then
+ -- no need to convert
+ else
+ local whattodo = table.setmetatableindex( {
+ inputname = inputname,
+ outputname = outputname,
+ }, specification)
+ utilities[graphics.bitmaps.magick].convert(whattodo)
+ end
+ --
+ local files = utilities.files
+ local f = files.open(outputname)
+ local function read(f)
+ while true do
+ local s = files.readcline(f)
+ if not s then
+ return ""
+ elseif string.find(s,"^#") then
+ -- again
+ else
+ return s
+ end
+ end
+ end
+ local pnm = read(f)
+ local xy = string.split(read(f)," ")
+ local xsize = tonumber(xy[1])
+ local ysize = tonumber(xy[2])
+ local bsize = tonumber(read(f))
+ local bitmap, colorspace
+ if xsize and ysize and bsize then
+ local read = files.readbytetable
+ local data = { }
+ if pnm == "P6" then
+ colorspace = 2 -- rgb
+ for i=1,ysize do
+ local tt = { }
+ for i=1,xsize do
+ tt[i] = read(f,3)
+ end
+ data[i] = tt
+ end
+ elseif pnm == "P5" then
+ colorspace = 1 -- gray
+ for i=1,ysize do
+ data[i] = read(f,xsize)
+ end
+ elseif pnm == "P4" then
+ colorspace = 1
+ -- todo
+ end
+ bitmap = {
+ xsize = xsize,
+ ysize = ysize,
+ bsize = bsize,
+ inputname = inputname,
+ outputname = outputname,
+ colorspace = colorspace,
+ data = data,
+ }
+ end
+ files.close(f)
+ return bitmap
+ end
+
+ function graphics.bitmaps.save(b)
+ local xsize = b.xsize
+ local ysize = b.ysize
+ local bsize = b.bsize
+ local colorspace = b.colorspace
+ if xsize and ysize and bsize then
+ local data = b.data
+ local pnm = nil
+ if colorspace == 2 then
+ pnm = "P6"
+ for i=1,ysize do
+ local t = data[i]
+ for i=1,xsize do
+ t[i] = char(unpack(t[i]))
+ end
+ data[i] = concat(t)
+ end
+ elseif colorspace == 1 then
+ pnm = "P5"
+ if xsize > 1024 then
+ local t = data[i]
+ for i=1,xsize do
+ t[i] = char(t[i])
+ end
+ else
+ for i=1,ysize do
+ data[i] = char(unpack(data[i]))
+ end
+ end
+ else
+ return
+ end
+ local result = concat {
+ pnm .. "\r",
+ xsize .. " " ..
+ ysize .. "\r",
+ bsize .. "\r",
+ concat(data)
+ }
+ local outputname = file.replacesuffix(b.outputname,file.suffix(b.inputname))
+ local inputname = b.outputname
+ io.savedata(inputname,result)
+ --
+ local whattodo = table.setmetatableindex( {
+ inputname = inputname,
+ outputname = outputname,
+ }, specification)
+ utilities[graphics.bitmaps.magick].convert(whattodo)
+ b.finalname = outputname
+ end
+ end
+
+ graphics.bitmaps.manipulators = { }
+
+ function graphics.bitmaps.manipulators.invert(b)
+ local xsize = b.xsize
+ local ysize = b.ysize
+ local data = b.data
+ local colorspace = b.colorspace
+ if colorspace == 1 then
+ for r=1,ysize do
+ local row = data[r]
+ for c=1,xsize do
+ row[c] = 255 - row[c]
+ end
+ end
+ elseif colorspace == 2 then
+ for r=1,ysize do
+ local row = data[r]
+ for c=1,xsize do
+ local column = row[c]
+ column[1] = 255 - column[1]
+ column[2] = 255 - column[2]
+ column[4] = 255 - column[3]
+ end
+ end
+ end
+ end
+
+\stopluacode
+
+\continueifinputfile{meta-imp-bitmaps.mkxl}
+
+\starttext
+
+\startluacode
+
+ local random = math.random
+
+ function graphics.bitmaps.manipulators.myframe(b,f)
+ local xsize = b.xsize
+ local ysize = b.ysize
+ local data = b.data
+ local colorspace = b.colorspace
+ if colorspace == 1 then
+ local f = f or 20
+ local fx = xsize - f + 1
+ local fy = ysize - f + 1
+ for c=1,xsize do
+ for r=1,random(f-5,f+5) do
+ data[r][c] = random(0,255)
+ end
+ for r=ysize,random(fy-5,fy+5),-1 do
+ data[r][c] = random(0,255)
+ end
+ end
+ for r=1,ysize do
+ local row = data[r]
+ for c=1,random(f-5,f+5) do
+ row[c] = random(0,255)
+ end
+ for c=xsize,random(fx-5,fx+5),-1 do
+ row[c] = random(0,255)
+ end
+ end
+ elseif colorspace == 2 then
+ local f = f or 20
+ local fx = xsize - f + 1
+ local fy = ysize - f + 1
+ for c=1,xsize do
+ for r=1,random(f-5,f+5) do
+ local v = random(0,255)
+ data[r][c] = { v, v, v }
+ end
+ for r=ysize,random(fy-5,fy+5),-1 do
+ local v = random(0,255)
+ data[r][c] = { v, v, v }
+ end
+ end
+ for r=1,ysize do
+ local row = data[r]
+ for c=1,random(f-5,f+5) do
+ local v = random(0,255)
+ row[c] = { v, v, v }
+ end
+ for c=xsize,random(fx-5,fx+5),-1 do
+ local v = random(0,255)
+ row[c] = { v, v, v }
+ end
+ end
+ end
+ end
+
+ function graphics.bitmaps.manipulators.colorize(b,m)
+ local xsize = b.xsize
+ local ysize = b.ysize
+ local data = b.data
+ local colorspace = b.colorspace
+ if colorspace == 1 then
+ for r=1,ysize do
+ local row = data[r]
+ for c=1,xsize do
+ local v = row[c]
+ row[c] = m[v] or { v, v, v }
+ end
+ end
+ b.colorspace = 2
+ end
+ end
+
+ function graphics.bitmaps.manipulators.evening(b,m)
+ local xsize = b.xsize
+ local ysize = b.ysize
+ local data = b.data
+ local colorspace = b.colorspace
+ if colorspace == 1 then
+ for r=1,ysize do
+ local row = data[r]
+ for c=1,xsize do
+ row[c] = row[c] // 2
+ end
+ end
+ end
+ end
+
+ context.startTEXpage()
+ local b = graphics.bitmaps.load("hacker.jpg")
+ graphics.bitmaps.manipulators.myframe(b,20)
+ graphics.bitmaps.save(b)
+ context.externalfigure { b.finalname }
+ context.stopTEXpage()
+
+ context.startTEXpage()
+ local b = graphics.bitmaps.load("mill.png")
+ graphics.bitmaps.manipulators.invert(b)
+ graphics.bitmaps.manipulators.myframe(b,20)
+ graphics.bitmaps.tocontext(b,50*65536,nil)
+ context.stopTEXpage()
+
+ do
+
+ local m = table.setmetatableindex(function(t,k) local v = { k, k, k } t[k] = v return v end)
+
+ -- local c = { 255, 0, 0 } for i=0x00,0x1F do m[i] = c end
+ -- local c = { 0, 255, 0 } for i=0x20,0x3F do m[i] = c end
+ -- local c = { 0, 0, 255 } for i=0x40,0x5F do m[i] = c end
+ -- local c = { 255, 255, 0 } for i=0x60,0x7F do m[i] = c end
+ -- local c = { 255, 0, 255 } for i=0x80,0x9F do m[i] = c end
+ -- local c = { 0, 255, 255 } for i=0xA0,0xBF do m[i] = c end
+ -- local c = { 255, 255, 255 } for i=0xC0,0xDF do m[i] = c end
+ -- local c = { 0, 0, 0 } for i=0xE0,0xFF do m[i] = c end
+
+ local c = { 0, 0, 255 } for i=0x40,0x5F do m[i] = c end
+ local c = { 0, 255, 0 } for i=0x80,0x9F do m[i] = c end
+ local c = { 255, 0, 0 } for i=0xB0,0xCF do m[i] = c end
+
+ context.startTEXpage()
+ local b = graphics.bitmaps.load("mill.png")
+ graphics.bitmaps.manipulators.colorize(b,m)
+ graphics.bitmaps.tocontext(b,50*65536,nil)
+ context.stopTEXpage()
+
+ end
+
+ context.startTEXpage()
+ local b = graphics.bitmaps.load("mill.png")
+ graphics.bitmaps.manipulators.evening(b)
+ graphics.bitmaps.tocontext(b,50*65536,nil)
+ context.stopTEXpage()
+
+\stopluacode
+
+\protected\def\MyImage#1{\ctxlua{
+ local b = graphics.bitmaps.load("#1")
+ graphics.bitmaps.manipulators.invert(b)
+ graphics.bitmaps.manipulators.myframe(b,20)
+ graphics.bitmaps.tocontext(b,50*65536,nil)
+}}
+
+% This is inefficient because textext processes twice, so a "todo".
+
+\startMPpage
+
+ picture p ; p := textext("\MyImage{mill.png}") ;
+
+ draw p ;
+ draw (boundingbox p) enlarged -.5mm
+ withpen pensquare scaled 1mm
+ withcolor "darkred"
+ withtransparency (1,.5)
+ ;
+
+\stopMPpage
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-imp-functions.lmt b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-functions.lmt
new file mode 100644
index 00000000000..195669d08ca
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-functions.lmt
@@ -0,0 +1,260 @@
+if not modules then modules = { } end modules ['meta-imp-functions'] = {
+ version = 1.001,
+ comment = "companion to meta-imp-functions.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+}
+
+local formatters = string.formatters
+local sequenced = table.sequenced
+
+local noffunctions = 0
+local version = 1
+
+local function preparecache(p)
+ noffunctions = noffunctions + 1
+local action = p.action
+p.action = nil
+ local hash = md5.HEX(sequenced(p))
+ local name = formatters["mkiv-%s-m-f-%03i.lua"](tex.jobname,noffunctions)
+p.action = action
+ return name, hash
+end
+
+local function getcache(p)
+ local cache = p.cache
+ if cache then
+ local name, hash = preparecache(p)
+ local data = table.load(name)
+ if data and data.hash == hash and data.version == version and data.data then
+ return hash, name, data.data
+ else
+ return hash, name, false
+ end
+ else
+ return false, false, false
+ end
+end
+
+local function setcache(hash,name,data)
+ local result = {
+ version = version,
+ hash = hash,
+ data = data,
+ }
+ table.save(name,result)
+end
+
+local injectpath = mp.inject.path
+local getparameterset = metapost.getparameterset
+
+local report = logs.reporter("metapost","functions")
+
+local functions = { }
+local actions = { }
+
+function mp.registerfunction(specification)
+ local name = specification.name
+ functions[name] = specification
+end
+
+function mp.registeraction(specification)
+ local name = specification.name
+ actions[name] = specification
+end
+
+metapost.registerscript("processfunction", function()
+ local specification = getparameterset("function")
+ local name = specification.name
+ local lua = specification.lua
+ local fnction = functions[name]
+ local action = lua and actions[lua]
+ if fnction then
+ if action then
+ specification.action = action.action
+ end
+ -- statistics.starttiming(functions)
+ fnction.action(specification)
+ -- statistics.stoptiming(functions)
+ end
+end)
+
+-- statistics.register("mp function time", function()
+-- return statistics.elapsedseconds(functions,"including feedback to metapost")
+-- end)
+
+-- Here comes the fancy stuff:
+
+local math = math
+local sqrt = math.sqrt
+
+local mathfunctions = math.functions or { }
+math.functions = mathfunctions
+
+-- Todo : reference where we got the factors from because those from
+--
+-- This is Runge-Kutta-Merson 4("5")
+-- See Table 4.1. Merson 4("5") of Hairer, Nørsett, Wanner - Solving Ordinary Differential Equations I (Springer, 2008)
+--
+-- function mathfunctions.rungekutta(specification)
+-- local f = specification.action or function(t,x,y) return x, y end
+-- local x = specification.x or 0
+-- local y = specification.y or 0
+-- local t = 0
+-- local tmax = specification.tmax or 1
+-- local dt = specification.dt or tmax/10
+-- local eps = specification.eps or dt/10
+-- local r = 1
+-- -- local result = { { x, y, x, y, x, y } }
+-- local result = { { x, y } }
+-- while t < tmax do
+-- local k1x, k1y = f(t, x,
+-- y)
+-- k1x = dt * k1x
+-- k1y = dt * k1y
+-- local k2x, k2y = f(t + (1/3) * dt, x + (1/3) * k1x,
+-- y + (1/3) * k1y)
+-- k2x = dt * k2x
+-- k2y = dt * k2y
+-- local k3x, k3y = f(t + (1/3) * dt, x + (1/6) * k1x + (1/6) * k2x,
+-- y + (1/6) * k1y + (1/6) * k2y)
+-- k3x = dt * k3x
+-- k3y = dt * k3y
+-- local k4x, k4y = f(t + (1/2) * dt, x + (1/8) * k1x + (3/8) * k3x,
+-- y + (1/8) * k1y + (3/8) * k3y)
+-- k4x = dt * k4x
+-- k4y = dt * k4y
+-- local k5x, k5y = f(t + dt, x + (1/2) * k1x - (3/2) * k3x - (2) * k4x,
+-- y + (1/2) * k1y - (3/2) * k3y - (2) * k4y)
+-- k5x = dt * k5x
+-- k5y = dt * k5y
+-- --
+-- local teps = sqrt(((1/10-1/6) * k1x + (3/10) * k3x + (2/5-2/3) * k4x + (1/5 -1/6) * k5x)^2 +
+-- ((1/10-1/6) * k1y + (3/10) * k3y + (2/5-2/3) * k4y + (1/5 -1/6) * k5y)^2 )
+-- if teps < eps then
+-- dt = 0.9 * dt * (eps/teps)^(1/4)
+-- x = x + (1/10) * k1x + (3/10) * k3x + (2/5) * k4x + (1/5) * k5x
+-- y = y + (1/10) * k1y + (3/10) * k3y + (2/5) * k4y + (1/5) * k5y
+-- r = r + 1
+-- -- result[r] = { x, y, x, y, x, y }
+-- result[r] = { x, y }
+-- t = t + dt
+-- else
+-- dt = 0.9 * dt * (eps/teps)^(1/3)
+-- end
+-- end
+-- return result
+-- end
+
+local function rungekutta(specification)
+ local f = specification.action or function(t,x,y) return x, y end
+ local x = specification.x or 0
+ local y = specification.y or 0
+ local tmin = specification.tmin or 0
+ local tmax = specification.tmax or 1
+ local t = tmin
+ local rmax = specification.maxpath or 0
+ local stepsize = specification.stepsize or "adaptive"
+ local dt = specification.dt or (tmax-tmin)/10
+ local eps = specification.eps or dt/10
+ local kind = specification.kind or specification.type -- xy x y
+ local adaptive = stepsize == "adaptive"
+ local r = 1
+ local result
+ if kind ~= "tx" and kind ~= "ty" then
+ kind = "xy"
+ end
+ if kind == "xy" then
+ -- result = { { x, y, x, y, x, y } }
+ result = { { x, y } }
+ elseif kind == "tx" then
+ -- result = { { x, x, t, x, t, x } }
+ result = { { t, x } }
+ else
+ -- result = { { x, y, t, y, t, y } }
+ result = { { t, y } }
+ end
+ local hash, name, data = getcache(specification)
+ if data then
+ -- print(hash,name,"REUSING")
+ return data
+ else
+ -- print(hash,name,"GENERATING")
+ end
+ if rmax == 0 then
+ rmax = 0xFFFF
+ end
+
+ while t < tmax do
+ local k1x, k1y = f(t, x,
+ y)
+ k1x = dt * k1x
+ k1y = dt * k1y
+ local k2x, k2y = f(t + (1/3) * dt, x + (1/3) * k1x,
+ y + (1/3) * k1y)
+ k2x = dt * k2x
+ k2y = dt * k2y
+ local k3x, k3y = f(t + (1/3) * dt, x + (1/6) * k1x + (1/6) * k2x,
+ y + (1/6) * k1y + (1/6) * k2y)
+ k3x = dt * k3x
+ k3y = dt * k3y
+ local k4x, k4y = f(t + (1/2) * dt, x + (1/8) * k1x + (3/8) * k3x,
+ y + (1/8) * k1y + (3/8) * k3y)
+ k4x = dt * k4x
+ k4y = dt * k4y
+ local k5x, k5y = f(t + dt, x + (1/2) * k1x - (3/2) * k3x - (2) * k4x,
+ y + (1/2) * k1y - (3/2) * k3y - (2) * k4y)
+ k5x = dt * k5x
+ k5y = dt * k5y
+ --
+ if adaptive then
+ local teps = sqrt(((1/10-1/6) * k1x + (3/10) * k3x + (2/5-2/3) * k4x + (1/5 -1/6) * k5x)^2 +
+ ((1/10-1/6) * k1y + (3/10) * k3y + (2/5-2/3) * k4y + (1/5 -1/6) * k5y)^2 )
+ local step = eps/teps
+ if teps < eps then
+ step = step^(1/4)
+ dt = 0.9 * dt * step
+ else
+ step = step^(1/3)
+ dt = 0.9 * dt * step
+ goto again
+ end
+ end
+ ::append::
+ t = t + dt
+ x = x + (1/10) * k1x + (3/10) * k3x + (2/5) * k4x + (1/5) * k5x
+ y = y + (1/10) * k1y + (3/10) * k3y + (2/5) * k4y + (1/5) * k5y
+ r = r + 1
+ if kind == "xy" then
+ result[r] = { x, y }
+ elseif kind == "tx" then
+ result[r] = { t, x }
+ else
+ result[r] = { t, y }
+ end
+ if r >= rmax then
+ -- report("pathmax is set to %i, quiting",rmax)
+ break
+ end
+ ::again::
+ end
+ if name and hash then
+ setcache(hash,name,result)
+ end
+ return result
+end
+
+mathfunctions.rungekutta = rungekutta
+
+mp.registerfunction {
+ name = "rungekutta",
+ action = function(specification)
+ local result = rungekutta(specification)
+ if result then
+ injectpath(result)
+ else
+ injectpath { { 0, 0 } }
+ end
+ end
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-imp-functions.mkxl b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-functions.mkxl
new file mode 100644
index 00000000000..dd20ea8b821
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-functions.mkxl
@@ -0,0 +1,342 @@
+%D \module
+%D [ file=meta-imp-functions,
+%D version=2022.05.17,
+%D title=\METAPOST\ Graphics,
+%D subtitle=All kind of functions,
+%D author=Mikael Sundqvist & Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% \useMPlibrary[functions]
+
+% todo: as with contours, cache
+
+\registerctxluafile{meta-imp-functions}{autosuffix}
+
+\startMPextensions
+ newscriptindex mfid_processfunction ; mfid_processfunction := scriptindex("processfunction") ;
+
+ presetparameters "function" [ name = "unknown", smoothen = false, maxpath = 65536 ] ;
+
+ def lmt_processfunction = applyparameters "function" "lmt_do_processfunction" enddef ;
+
+ vardef lmt_do_processfunction =
+ if getparameter "function" "smoothen" :
+ for k within (runscript mfid_processfunction) : pathpoint .. endfor nocycle
+ else :
+ (runscript mfid_processfunction)
+ fi
+ enddef ;
+\stopMPextensions
+
+\continueifinputfile{meta-imp-functions.mkxl}
+
+\starttext
+
+\startluacode
+ mp.registeraction {
+ name = "ms2",
+ action = function(t, x, y)
+ return -y, x
+ end
+ }
+\stopluacode
+
+\startMPpage
+ path p ; p := lmt_processfunction [
+ name = "rungekutta"
+ lua = "ms2",
+ x = 1,
+ y = 0,
+ tmax = 6pi,
+ dt = 0.001,
+ eps = 0.00001,
+ ] xysized (5cm,5cm) ;
+ draw p withcolor red withpen pencircle scaled 1 ;
+ path q ; q := for i within p : pathpoint .. endfor nocycle ;
+ draw q withcolor green withpen pencircle scaled 1/2 ;
+\stopMPpage
+
+%
+
+\startluacode
+ mp.registeraction {
+ name = "ms3",
+ action = function(t, x, y)
+ return 1, -t*y*y
+ end
+ }
+\stopluacode
+
+\startMPpage
+ path p ; p := lmt_processfunction [
+ name = "rungekutta"
+ lua = "ms3",
+ x = 0,
+ y = 2,
+ tmax = 10,
+ dt = 0.001,
+ eps = 0.00001,
+ ] xysized (5cm,5cm) ;
+ draw p withcolor red withpen pencircle scaled 6 ;
+\stopMPpage
+
+%
+
+\startluacode
+ mp.registeraction {
+ name = "ms4",
+ action = function(t, x, y)
+ return 1, -y
+ end
+ }
+\stopluacode
+
+\startMPpage
+ path p ; p := lmt_processfunction [
+ name = "rungekutta"
+ lua = "ms4",
+ x = 0,
+ y = 1,
+ tmax = 10,
+ dt = 0.001,
+ eps = 0.00001,
+ ] scaled 5cm ;
+ draw p withcolor red withpen pencircle scaled 6 ;
+\stopMPpage
+
+%
+
+\startluacode
+ mp.registeraction {
+ name = "ms5",
+ action = function(t, x, y)
+ return x + y + x*x + y*y, x - y - x*x + y*y
+ end
+ }
+\stopluacode
+
+\startMPpage
+ path b ; numeric s;
+
+ s := 1cm ;
+ b := ((-2.5,-2.5) -- (1.5,-2.5) -- (1.5,1.5) -- (-2.5,1.5) -- cycle) scaled s ;
+
+ for i = -3.05 step 0.1 until 2.5 :
+ for j = -3.05 step 0.1 until 2.5 :
+ draw lmt_processfunction [
+ name = "rungekutta",
+ lua = "ms5",
+ x = i,
+ y = j,
+ tmax = 10,
+ dt = 0.1,
+ eps = 0.001,
+ smoothen = true,
+ maxpath = 500, % crazy large paths .. so kind of bad spec here
+ ]
+ scaled s
+ withpen pencircle scaled 0.1
+ withcolor (uniformdeviate(1),uniformdeviate(1),uniformdeviate(1))
+ ;
+ endfor ;
+ endfor ;
+
+ % so how much slack ?
+
+ draw b withpen pencircle scaled 2 ;
+ clip currentpicture to b ;
+
+\stopMPpage
+
+% https://wolfram.com/xid/0dekz2-wla
+
+\startluacode
+ mp.registeraction {
+ name = "mma1",
+ action = function(t, x, y)
+ return 1, y*math.cos(x+y)
+ end
+ }
+\stopluacode
+
+\startMPpage
+ path p ; p := lmt_processfunction [
+ name = "rungekutta"
+ lua = "mma1",
+ x = 0,
+ y = 1,
+ tmax = 30,
+ dt = 0.001,
+ eps = 0.00001,
+ ] xysized(10cm,5cm) ;
+ draw p withcolor red withpen pencircle scaled 2 ;
+ drawpoints p withcolor blue withpen pencircle scaled 2 ;
+\stopMPpage
+
+% https://wolfram.com/xid/0dekz2-gpx
+
+\startluacode
+ mp.registeraction {
+ name = "mma2",
+ action = function(t, x, y)
+ return -y-x*x, 2*x-y*y*y
+ end
+ }
+\stopluacode
+
+\startMPpage
+ path p ; p := lmt_processfunction [
+ name = "rungekutta"
+ lua = "mma2",
+ x = 1,
+ y = 1,
+ tmax = 20,
+ dt = 0.001,
+ eps = 0.00001,
+ ] xysized(10cm,10cm) ;
+ draw p withcolor red withpen pencircle scaled 2 ;
+ drawpoints p withcolor blue withpen pencircle scaled 2 ;
+\stopMPpage
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% https://wolfram.com/xid/0dekz2-xixft
+
+\startluacode
+ mp.registeraction {
+ name = "mma3",
+ action = function(t, x, y)
+ return y, -0.1 * y - math.sin(x) + 0.5 * math.cos(t)
+ end
+ }
+\stopluacode
+
+\startMPpage
+ path p ; p := lmt_processfunction [
+ name = "rungekutta"
+ lua = "mma3",
+ x = 0,
+ y = 0,
+ tmax = 100,
+ dt = 0.001,
+ eps = 0.00001,
+ ] xysized(10cm,10cm) ;
+ draw p withcolor red withpen pencircle scaled 2 ;
+ drawpoints p withcolor blue withpen pencircle scaled 2 ;
+\stopMPpage
+
+% https://wolfram.com/xid/0dekz2-dmilmp
+% Stiff! Not working!
+
+% \startluacode
+% mp.registeraction {
+% name = "mma4",
+% action = function(t, x, y)
+% return y, - x + 1000 * (1 - x * x) * y
+% end
+% }
+% \stopluacode
+
+% \startMPpage % [instance=decimalfun]
+% path p ; p := lmt_processfunction [
+% name = "rungekutta"
+% lua = "mma4",
+% x = 2,
+% y = 0,
+% tmax = 2000,
+% dt = 0.01,
+% eps = 0.0001
+% ] xynormalized(10cm,10cm) ;
+% draw p
+% withpen pencircle scaled 2
+% withcolor red
+% ;
+% % drawpoints p withcolor blue withpen pencircle scaled 2 ;
+% \stopMPpage
+
+% https://wolfram.com/xid/0dekz2-d1orb
+% Discontinuous right-hand side
+
+\startluacode
+ mp.registeraction {
+ name = "mma5",
+ action = function(t, x, y)
+ return 1, - math.cos(y) + math.floor(t)
+ end
+ }
+\stopluacode
+
+\startMPpage
+ save n ; n := 0 ;
+ for i = "xy", "tx", "ty" :
+ path p ; p := lmt_processfunction [
+ name = "rungekutta",
+ type = i,
+ lua = "mma5",
+ x = 0,
+ y = 1,
+ tmax = 3,
+ dt = 0.001,
+ eps = 0.0001,
+ ] xysized(10cm,10cm) shifted (n*11cm,0) ;
+ draw p withcolor red withpen pencircle scaled 2 ;
+ drawpoints p withcolor blue withpen pencircle scaled 2 ;
+ n := n + 1 ;
+ endfor ;
+\stopMPpage
+
+\startluacode
+ mp.registeraction {
+ name = "mma6",
+ action = function(t, x, y)
+ return y, -x
+ end
+ }
+\stopluacode
+
+\startMPpage
+ save n ; n := 0 ;
+ for i = "xy", "tx", "ty" :
+ path p ; p := lmt_processfunction [
+ name = "rungekutta",
+ kind = i,
+ lua = "mma6",
+ x = 1,
+ y = 0,
+ tmin = 0,
+ tmax = 6.28,
+ dt = 0.001,
+ eps = 0.0000001,
+ ] xysized(10cm,10cm) shifted (n*11cm,0) ;
+ draw p withcolor red withpen pencircle scaled 2 ;
+ drawpoints p withcolor blue withpen pencircle scaled 2 ;
+ n := n + 1 ;
+ endfor ;
+\stopMPpage
+
+\startMPpage
+ save n ; n := 0 ;
+ for i = "xy", "tx", "ty" :
+ path p ; p := lmt_processfunction [
+ name = "rungekutta",
+ kind = i,
+ lua = "mma6",
+ x = 1,
+ y = 0,
+ tmin = 0,
+ tmax = 6,
+ stepsize = "fixed",
+ dt = 0.5,
+ maxpath = 3,
+ ] xysized(10cm,10cm) shifted (n*11cm,0) ;
+ draw p withcolor red withpen pencircle scaled 2 ;
+ drawpoints p withcolor blue withpen pencircle scaled 2 ;
+ n := n + 1 ;
+ endfor ;
+\stopMPpage
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-imp-gamesymbols.mkxl b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-gamesymbols.mkxl
index d79e59f69f4..fa1500b60b8 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/meta-imp-gamesymbols.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-gamesymbols.mkxl
@@ -22,64 +22,54 @@
%D execute the code and leave no traces in the text flow. The code itself is not
%D that spectacular:
+%D Todo: variant -2/-3 3D dice
+
\startMPcalculation{simplefun}
+ picture DiceDots[] ; pickup pencircle scaled 3/2 ;
+
+ DiceDots[ 1] := image ( draw(4,4) ; ) ;
+ DiceDots[ 2] := image ( draw(2,6) ; draw(6,2) ; ) ;
+ DiceDots[-2] := image ( draw(6,6) ; draw(2,2) ; ) ;
+ DiceDots[ 3] := image ( draw(2,6) ; draw(4,4) ; draw(6,2) ; ) ;
+ DiceDots[-3] := image ( draw(6,6) ; draw(4,4) ; draw(2,2) ; ) ;
+ DiceDots[ 4] := image ( draw(2,6) ; draw(6,6) ; draw(2,2) ; draw(6,2) ; ) ;
+ DiceDots[ 5] := image ( draw(2,6) ; draw(6,6) ; draw(4,4) ; draw(2,2) ; draw(6,2) ; ) ;
+ DiceDots[ 6] := image ( draw(2,6) ; draw(6,6) ; draw(2,4) ; draw(6,4) ; draw(2,2) ; draw(6,2) ; ) ;
+
def DiceFrame =
pickup pencircle scaled 1/2 ;
draw unitsquare scaled 8 ;
- pickup pencircle scaled 3/2 ;
+ % pickup pencircle scaled 3/2 ;
enddef ;
vardef DiceOne =
DiceFrame ;
- draw (4,4) ;
- enddef ;
- vardef DiceTwoA =
- DiceFrame ;
- draw (2,6) ; draw (6,2) ;
- enddef ;
- vardef DiceTwoB =
- DiceFrame ;
- draw (6,6) ; draw (2,2) ;
+ draw DiceDots[1] ;
enddef ;
vardef DiceTwo =
- if hasoption "mpsfont" "option" "reverse" :
- DiceTwoB
- else :
- DiceTwoA
- fi ;
- enddef ;
- vardef DiceThreeA =
- DiceFrame ;
- draw (2,6) ; draw (4,4) ; draw (6,2) ;
- enddef ;
- vardef DiceThreeB =
DiceFrame ;
- draw (6,6) ; draw (4,4) ; draw (2,2) ;
+ draw DiceDots[if hasoption "mpsfont" "option" "reverse" : - fi 2] ;
enddef ;
vardef DiceThree =
- if hasoption "mpsfont" "option" "reverse" :
- DiceThreeB
- else :
- DiceThreeA
- fi ;
+ DiceFrame ;
+ draw DiceDots[if hasoption "mpsfont" "option" "reverse" : - fi 3] ;
enddef ;
vardef DiceFour =
DiceFrame ;
- draw (2,6) ; draw (6,6) ; draw (2,2) ; draw (6,2) ;
+ draw DiceDots[4] ;
enddef ;
vardef DiceFive =
DiceFrame ;
- draw (2,6) ; draw (6,6) ; draw (4,4) ; draw (2,2) ; draw (6,2) ;
+ draw DiceDots[5] ;
enddef ;
vardef DiceSix =
DiceFrame ;
- draw (2,6) ; draw (6,6) ; draw (2,4) ; draw (6,4) ; draw (2,2) ; draw (6,2) ;
+ draw DiceDots[6] ;
enddef ;
vardef DiceBad =
- pickup pencircle scaled 1/2 ;
- draw unitsquare scaled 8 ;
+ DiceFrame ;
draw (1,7) -- (7,1) ; draw (1,1) -- (7,7) ;
enddef ;
@@ -101,9 +91,67 @@
lmt_registerglyph [ category = "dice", private = "invaliddice", code = "DiceBad;" ] ;
+ %D The transformations come from DICE3D.MF by Thomas A. Heim (1998)
+
+ transform t[];
+
+ numeric r ; r := sqrt(1/4) ;
+
+ hide((0,0) transformed t1 = (0,0)) ;
+ hide((1,0) transformed t1 = (r,r)) ;
+ hide((0,1) transformed t1 = (0,1)) ;
+
+ hide((0,0) transformed t2 = (0,0)) ;
+ hide((1,0) transformed t2 = (1,0)) ;
+ hide((0,1) transformed t2 = (r,r)) ;
+
+ t3 := t1 shifted (8,0) ; % front to right side
+ t4 := t2 shifted (0,8) ; % front to top
+
+ vardef Diced(expr a, b, c) =
+ draw image (
+ pickup pencircle scaled 1/2 ;
+ draw image (
+ % unitsquare smoothed 1/10
+ nodraw unitsquare scaled 8 transformed t4 ;
+ nodraw unitsquare scaled 8 transformed t3 ;
+ nodraw unitsquare scaled 8 ;
+ dodraw unitsquare scaled 8 ;
+ ) ;
+ draw DiceDots[a] ;
+ draw DiceDots[b] transformed t3 ;
+ draw DiceDots[c] transformed t4 ;
+ ) ;
+ enddef ;
+
+ lmt_registerglyph [ category = "dice", unicode = "123", code = "Diced(1,2,3);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "135", code = "Diced(1,3,5);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "142", code = "Diced(1,4,2);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "154", code = "Diced(1,5,4);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "214", code = "Diced(2,1,4);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "231", code = "Diced(2,3,1);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "246", code = "Diced(2,4,6);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "263", code = "Diced(2,6,3);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "312", code = "Diced(3,1,2);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "326", code = "Diced(3,2,6);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "351", code = "Diced(3,5,1);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "365", code = "Diced(3,6,5);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "415", code = "Diced(4,1,5);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "421", code = "Diced(4,2,1);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "456", code = "Diced(4,5,6);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "462", code = "Diced(4,6,2);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "513", code = "Diced(5,1,3);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "536", code = "Diced(5,3,6);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "541", code = "Diced(5,4,1);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "564", code = "Diced(5,6,4);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "624", code = "Diced(6,2,4);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "632", code = "Diced(6,3,2);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "645", code = "Diced(6,4,5);", width = 12, height = 12 ] ;
+ lmt_registerglyph [ category = "dice", unicode = "653", code = "Diced(6,5,3);", width = 12, height = 12 ] ;
+
\stopMPcalculation
-%D At the \TEX\ end we define three features. The reverse is just there for fun. The
+%D At the \TEX\ end we define four features. The reverse is just there for fun. The
%D digits features will map digits onto dice.
\definefontfeature
@@ -120,10 +168,48 @@
[dice:digits]
[dice:digits=yes]
+\definefontfeature
+ [dice:three]
+ [dice:three=yes]
+
%D The mapping to dice happens here:
\startluacode
+ -- before the digits feature
+
+ fonts.handlers.otf.addfeature("dice:three", {
+ type = "ligature",
+ order = { "dice:three" },
+ nocheck = true,
+ data = {
+ [123] = { 0x31, 0x32, 0x33 },
+ [135] = { 0x31, 0x33, 0x35 },
+ [142] = { 0x31, 0x34, 0x32 },
+ [154] = { 0x31, 0x35, 0x34 },
+ [214] = { 0x32, 0x31, 0x34 },
+ [231] = { 0x32, 0x33, 0x31 },
+ [246] = { 0x32, 0x34, 0x36 },
+ [263] = { 0x32, 0x36, 0x33 },
+ [312] = { 0x33, 0x31, 0x32 },
+ [326] = { 0x33, 0x32, 0x36 },
+ [351] = { 0x33, 0x35, 0x31 },
+ [365] = { 0x33, 0x36, 0x35 },
+ [415] = { 0x34, 0x31, 0x35 },
+ [421] = { 0x34, 0x32, 0x31 },
+ [456] = { 0x34, 0x35, 0x36 },
+ [462] = { 0x34, 0x36, 0x32 },
+ [513] = { 0x35, 0x31, 0x33 },
+ [536] = { 0x35, 0x33, 0x36 },
+ [541] = { 0x35, 0x34, 0x31 },
+ [564] = { 0x35, 0x36, 0x34 },
+ [624] = { 0x36, 0x32, 0x34 },
+ [632] = { 0x36, 0x33, 0x32 },
+ [645] = { 0x36, 0x34, 0x35 },
+ [653] = { 0x36, 0x35, 0x33 },
+ }
+ } )
+
-- local invalid = fonts.helpers.privateslot("invaliddice")
fonts.handlers.otf.addfeature("dice:digits", {
@@ -336,14 +422,20 @@
\definefont[DiceN][Serif*dice:normal]
\definefont[DiceR][Serif*dice:reverse]
\definefont[DiceD][Serif*dice:normal,dice:digits]
+ \definefont[DiceT][Serif*dice:normal,dice:three,dice:digits]
\startTEXpage[offset=3pt]
\DiceN
\dostepwiserecurse{"2680}{"2685}{1}{\char#1\quad}%
- \DiceN
+ \DiceR
\dostepwiserecurse{"2680}{"2685}{1}{\char#1\quad}%
\DiceD
\darkblue 2\quad5\quad3\quad0
\stopTEXpage
+ \startTEXpage[offset=3pt]
+ \showglyphs \DiceT 1 2 3 4 5 6
+ \showglyphs \DiceT 653 421
+ \stopTEXpage
+
\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-imp-glyphs.mkxl b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-glyphs.mkxl
new file mode 100644
index 00000000000..96f7aecd3b6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-glyphs.mkxl
@@ -0,0 +1,65 @@
+%D \module
+%D [ file=meta-imp-glyphs,
+%D version=2022.10.26, % moved from test files by MS and HH
+%D title=\METAPOST\ Graphics,
+%D subtitle=Glyph Shape Manipulations,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\startMPdefinitions
+
+ def LoadGlyph(expr tag, filename, unicode) =
+ glyphshape_start(filename,unicode) ;
+ expandafter picture scantokens(tag & "char");
+ expandafter path scantokens(tag & "bbox") ;
+ expandafter numeric scantokens(tag & "accent") ;
+ expandafter numeric scantokens(tag & "italic") ;
+ scantokens(tag & "char") := image (draw for i=1 upto glyphshape_n : glyphshape_path(i) && endfor cycle ;) ;
+ scantokens(tag & "bbox") := glyphshape_usedbox ;
+ scantokens(tag & "accent") := glyphshape_accent ;
+ scantokens(tag & "italic") := xpart urcorner glyphshape_usedbox - glyphshape_italic ;
+ glyphshape_stop ;
+ enddef ;
+
+ def ScaleGlyph(expr tag, s) =
+ scantokens(tag & "char") := scantokens(tag & "char") scaled s ;
+ scantokens(tag & "bbox") := scantokens(tag & "bbox") scaled s ;
+ scantokens(tag & "accent") := s * scantokens(tag & "accent") ;
+ scantokens(tag & "italic") := s * scantokens(tag & "italic") ;
+ enddef ;
+
+ def ShiftGlyph(expr tag, dx, dy) =
+ scantokens(tag & "char") := scantokens(tag & "char") shifted (dx, dy) ;
+ scantokens(tag & "bbox") := scantokens(tag & "bbox") shifted (dx, dy) ;
+ scantokens(tag & "accent") := scantokens(tag & "accent") + dx ;
+ scantokens(tag & "italic") := scantokens(tag & "italic") + dx ;
+ enddef ;
+
+ def DrawGlyph(expr tag) =
+ draw scantokens(tag & "char") withpen pencircle scaled 1 ;
+ draw scantokens(tag & "bbox") withcolor "darkyellow" ;
+ draw (scantokens(tag & "accent"), (ypart urcorner scantokens(tag & "bbox"))) withcolor "darkmagenta" withpen pencircle scaled 5 ;
+ draw (scantokens(tag & "italic"), .5(ypart urcorner scantokens(tag & "bbox"))) withcolor "orange" withpen pencircle scaled 5 ;
+ enddef ;
+
+\stopMPdefinitions
+
+\startMPdefinitions
+
+ def ShowShape(expr font, slot) =
+ glyphshape_start(font, slot) ;
+ draw for i=1 upto glyphshape_n : glyphshape_path(i) && endfor cycle ;
+ draw glyphshape_boundingbox withcolor red ;
+ draw glyphshape_usedline withcolor green ;
+ draw glyphshape_usedbox withcolor blue ;
+ draw (glyphshape_accent,glyphshape_depth) withcolor "orange" withpen pencircle scaled 5 ;
+ draw (glyphshape_italic,glyphshape_depth) withcolor "orange" withpen pencircle scaled 5 ;
+ glyphshape_stop ;
+ enddef;
+
+\stopMPdefinitions
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-imp-kindergarten.mkxl b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-kindergarten.mkxl
new file mode 100644
index 00000000000..6b2402bf081
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-kindergarten.mkxl
@@ -0,0 +1,118 @@
+%D \module
+%D [ file=meta-imp-kindergarten,
+%D version=2020.00.00,
+%D title=\METAPOST\ Graphics,
+%D subtitle=Kindergarten Math,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% \nopdfcompression
+
+%D For Arthur, who told me that about the urban legend that \CONTEXT\ can do only
+%D kindergarten math. Somehow I'd forgotten top add this to the distribution
+
+\startMPcalculation{simplefun}
+
+ pen KindergartenPen ; KindergartenPen := pencircle scaled 1 ;
+
+ % 10 x 10 grid
+
+ vardef KindergartenEqual =
+ draw image
+ (
+ draw (2,6) -- (9,5) ;
+ draw (2,4) -- (8,3) ;
+ )
+ shifted (0,-2)
+ withpen KindergartenPen
+ withcolor "KindergartenEqual"
+ enddef ;
+ vardef KindergartenPlus =
+ draw image
+ (
+ draw (1,4) -- (9,5) ;
+ draw (4,1) -- (5,8) ;
+ )
+ shifted (0,-2)
+ withpen KindergartenPen
+ withcolor "KindergartenPlus"
+ enddef ;
+ vardef KindergartenMinus =
+ draw image
+ (
+ draw (1,5) -- (9,4) ;
+ )
+ shifted (0,-2)
+ withpen KindergartenPen
+ withcolor "KindergartenMinus"
+ enddef ;
+ vardef KindergartenTimes =
+ draw image
+ (
+ draw (2,1) -- (9,8) ;
+ draw (8,1) -- (2,8) ;
+ )
+ shifted (0,-2)
+ withpen KindergartenPen
+ withcolor "KindergartenTimes"
+ enddef ;
+ vardef KindergartenDivided =
+ draw image
+ (
+ draw (2,1) -- (8,9) ;
+ )
+ shifted (0,-2)
+ withpen KindergartenPen
+ withcolor "KindergartenDivided"
+ enddef ;
+
+ lmt_registerglyphs [
+ name = "kindergarten",
+ units = 10,
+ % usecolor = true,
+ width = 10,
+ height = 8,
+ depth = 2,
+ ] ;
+
+ lmt_registerglyph [ category = "kindergarten", unicode = "0x003D",
+ code = "KindergartenEqual"
+ ] ;
+ lmt_registerglyph [ category = "kindergarten", unicode = "0x002B",
+ code = "KindergartenPlus"
+ ] ;
+ lmt_registerglyph [ category = "kindergarten", unicode = "0x2212",
+ code = "KindergartenMinus"
+ ] ;
+ lmt_registerglyph [ category = "kindergarten", unicode = "0x00D7",
+ code = "KindergartenTimes"
+ ] ;
+ lmt_registerglyph [ category = "kindergarten", unicode = "0x002F",
+ code = "KindergartenDivided"
+ ] ;
+
+\stopMPcalculation
+
+\definecolor[KindergartenEqual] [darkgreen]
+\definecolor[KindergartenPlus] [darkred]
+\definecolor[KindergartenMinus] [darkred]
+\definecolor[KindergartenTimes] [darkblue]
+\definecolor[KindergartenDivided][darkblue]
+
+\continueifinputfile{meta-imp-kindergarten.mkxl}
+
+\definefontfeature
+ [mathextra]
+ [metapost=kindergarten]
+
+\setupbodyfont[dejavu]
+
+\startTEXpage[offset=10pt]
+ $ y = 2 \times x + a - b / 3 $ \par
+ \hfill \infofont{kindergarten math}
+\stopTEXpage
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-imp-magick.mkxl b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-magick.mkxl
new file mode 100644
index 00000000000..1adc7be83ac
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-magick.mkxl
@@ -0,0 +1,108 @@
+%D \module
+%D [ file=meta-imp-magick,
+%D version=2021.08.03,
+%D title=\METAPOST\ Graphics,
+%D subtitle=Magick Manipulations,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\registerctxluafile{libs-imp-graphicsmagick}{autosuffix}
+\registerctxluafile{libs-imp-imagemagick}{autosuffix}
+
+\startluacode
+ local converters = {
+ im = "imagemagick",
+ imagemagick = "imagemagick",
+ magick = "imagemagick",
+ }
+
+ local frozen = false
+ local convert = false
+
+ -- for some reason we cannot load both libraries
+
+ function mp.lmt_magick_convert()
+ local specification = metapost.getparameterset("magick")
+ local inputname = specification.filename
+ if inputname then
+ -- we don't want to trigger reuse when we have the same input file
+ local hash = md5.HEX(table.sequenced(specification))
+ local outputname = file.addsuffix("m_k_i_v_mp_fuzzy_" .. hash,file.suffix(inputname))
+ -- make the table a bit unique and don't polute it
+ local whattodo = table.setmetatableindex( {
+ inputname = inputname,
+ outputname = outputname,
+ }, specification)
+ luatex.registertempfile(outputname)
+ -- now do the magick
+ if not convert then
+ convert = utilities[converters[specification.converter or "gm"] or "graphicsmagick"].convert
+ end
+ convert(whattodo)
+ -- and return the result
+ return [[figure("]] .. outputname .. [[")]]
+ else
+ -- bad luck
+ return [[textext("missing filename")]]
+ end
+ end
+\stopluacode
+
+\startMPdefinitions
+
+ presetparameters "magick" [
+ filename = "unset",
+ % blur = [ radius = 10, sigma = 5 ],
+ % noise = [ type = 4 ],
+ ] ;
+
+ def lmt_magick = applyparameters "magick" "lmt_do_magick" enddef ;
+
+ vardef lmt_do_magick = lua.mp.lmt_magick_convert() enddef ;
+
+\stopMPdefinitions
+
+\continueifinputfile{meta-imp-magick.mkxl}
+
+\enabletrackers[*lib*]
+
+\startMPpage
+ presetparameters "magick" [
+ converter = "magick", % comment / uncomment
+ ] ;
+ draw lmt_magick [
+ filename = "hacker.jpg",
+ % for im
+ options = { "-rotate", 180 },
+ ] ysized 4cm ;
+
+ draw lmt_magick [
+ filename = "hacker.jpg",
+ % for gm
+ blur = [ radius = 10, sigma = 5 ],
+ noise = [ type = 2 ],
+ % for gm
+ options = { "-noise", 2 },
+ ] ysized 4cm shifted (8cm, -4cm) ;
+
+ draw lmt_magick [
+ filename = "hacker.jpg",
+ % for gm
+ blur = [ radius = 5, sigma = 3 ],
+ noise = [ type = 4 ],
+ % for gm
+ options = { "-noise", 4 },
+ ] ysized 4cm shifted (0, -4cm) ;
+
+ draw lmt_magick [
+ filename = "hacker.jpg",
+ blur = [ radius = 10, sigma = 5 ],
+ % for gm
+ noise = [ type = 4 ],
+ ] ysized 4cm shifted (8cm, 0cm) ;
+\stopMPpage
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-imp-placeholders.mkxl b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-placeholders.mkxl
new file mode 100644
index 00000000000..aa48b814c02
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-placeholders.mkxl
@@ -0,0 +1,83 @@
+%D \module
+%D [ file=meta-imp-placeholders,
+%D version=2021.02.01,
+%D title=\METAPOST\ Graphics,
+%D subtitle=Missing Glyph Placeholders,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This is a drop in for the already existing placeholder function. It could be made
+%D more clever by hashing similar shapes but as this is mostly a diagnostic feature
+%D we go a quick an ddirty two dimensional array.
+
+%D It is now mostly a file one can run to get an idea what the replace macro triggers
+%D so I've added it to the distribution.
+
+% \startMPcalculation{simplefun}
+% loadfile("mp-miss.mpxl") ;
+% \stopMPcalculation
+%
+% \startluacode
+%
+% local chardata = characters.data
+% local fontdata = fonts.hashes.identifiers
+% local mapping = fonts.checkers.mapping
+%
+% function fonts.checkers.placeholder(font,char)
+% local category = chardata[char].category or "lu" -- todo: unknown
+% local fakedata = mapping[category]
+% local tfmdata = fontdata[font]
+% local units = tfmdata.parameters.units or 1000
+% local slant = (tfmdata.parameters.slant or 0)/65536
+% local scale = units/1000
+% local rawdata = tfmdata.shared and tfmdata.shared.rawdata
+% local weight = (rawdata and rawdata.metadata and rawdata.metadata.pfmweight or 400)/400
+% local specification = {
+% code = "MissingGlyph",
+% scale = scale,
+% slant = slant,
+% weight = weight,
+% namespace = font,
+% shapes = { { shape = fakedata[1], color = fakedata[2] } },
+% }
+% fonts.helpers.setmetaglyphs("missing", font, char, specification)
+% end
+%
+% \stopluacode
+
+%D We enable the checker:
+
+% \enabletrackers[fonts.missing=replace]
+
+\replacemissingcharacters
+
+\continueifinputfile{meta-imp-placeholders.mkxl}
+
+% \enableexperiments[fonts.compact]
+
+% \showglyphs
+
+\startbuffer
+ \startlines[before=,after=]
+ \strut {\tf test \char 12345\ test \char 12346\ test}
+ \strut {\bf test \char 12345\ test \char 12346\ test}
+ \strut {\it test \char 12345\ test \char 12346\ test}
+ \strut {\bi test \char 12345\ test \char 12346\ test}
+ \strut {test ὀ ρ φ α ν ῖ ο ς test}
+ \stoplines
+\stopbuffer
+
+\starttext
+ \startTEXpage[offset=2pt,strut=no]
+ \getbuffer
+ \switchtobodyfont[pagella]
+ \getbuffer
+ \switchtobodyfont[dejavu]
+ \getbuffer
+ \stopTEXpage
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-imp-txt.lmt b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-txt.lmt
new file mode 100644
index 00000000000..e4b88bd3698
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-imp-txt.lmt
@@ -0,0 +1,116 @@
+if not modules then modules = { } end modules ['meta-imp-txt'] = {
+ version = 1.001,
+ comment = "companion to meta-imp-txt.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+}
+
+local setmetatableindex = table.setmetatableindex
+
+local texset = tex.set
+
+local scan = mp.scan
+local scannumeric = scan.numeric
+local scaninteger = scan.integer
+local scanboolean = scan.boolean
+local scanstring = scan.string
+
+local expandmacro = token.expandmacro -- todo
+
+local bpfactor = number.dimenfactors.bp
+
+local metapost = metapost
+metapost.parshapes = { }
+
+local parshapes = { }
+local properties = { }
+
+-- initialize shapes to 0 hsize
+
+function metapost.parshapes.reset()
+ parshapes = { }
+ properties = { }
+end
+
+function metapost.parshapes.next()
+ properties = { }
+ parshapes[#parshapes+1] = properties
+end
+
+function metapost.parshapes.inspect()
+ inspect(parshapes)
+end
+
+function metapost.parshapes.getshape(n)
+ return (parshapes and parshapes[n]) or parshapes or nil
+end
+
+function metapost.parshapes.get(index,name)
+ local v = parshapes[index][name]
+ if type(v) == "boolean" then
+ context(v and 1 or 0)
+ else
+ context(v)
+ end
+end
+
+function metapost.parshapes.wholeshape() -- maybe just collect them earlier
+ local t, n = { }, 0
+ for i=1,#parshapes do
+ local s = parshapes[i].shape
+ if s then
+ for i=1,#s do
+ n = n + 1
+ t[n] = s[i]
+ end
+ end
+ end
+ if n > 0 then
+ texset("parshape",t)
+ end
+end
+
+metapost.registerscript("setparshapeproperty", function()
+ local k = scanstring()
+ if k == "line" then
+ local entry = properties.shape[scannumeric()]
+ local indent = scannumeric() / bpfactor
+ local width = scannumeric() / bpfactor
+ entry[1] = indent
+ entry[2] = width
+ elseif k == "lines" then
+ properties.lines = scaninteger()
+ properties.shape = setmetatableindex(function(t,k)
+ local v = { 0, properties.width or 0 }
+ t[k] = v
+ return v
+ end)
+ elseif k == "first" then
+ properties[k] = scanboolean()
+ elseif k == "inspect" then
+ inspect(properties)
+ else
+ properties[k] = scannumeric() / bpfactor
+ end
+end)
+
+interfaces.implement {
+ name = "setparagraphmetashape",
+ public = true,
+ protected = true,
+ arguments = "optional",
+ actions = function(list)
+ if list and list ~= "" then
+ list = utilities.parsers.settings_to_array(list)
+ if #list > 0 then
+ metapost.parshapes.reset()
+ for i=1,#list do
+ metapost.parshapes.next()
+ expandmacro("spac_shapes_calculate","{"..list[i].."}")
+ end
+ metapost.parshapes.wholeshape()
+ end
+ end
+ end
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/meta-ini.lmt
index ed7b2264f5d..be5a4f947ac 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/meta-ini.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-ini.lmt
@@ -8,7 +8,6 @@ if not modules then modules = { } end modules ['meta-ini'] = {
local tonumber = tonumber
local format = string.format
-local concat = table.concat
local lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns
local P, Cs, R, S, C, Cc = lpeg.P, lpeg.Cs, lpeg.R, lpeg.S, lpeg.C, lpeg.Cc
@@ -16,68 +15,68 @@ metapost = metapost or { }
local metapost = metapost
local context = context
-local colorhash = attributes.list[attributes.private('color')]
-local textype = tex.type
-local MPcolor = context.MPcolor
-
-do
-
- local dimenorname =
- lpegpatterns.validdimen / function(s)
- context("\\the\\dimexpr %s",s)
- end
- + (C(lpegpatterns.float) + Cc(1)) * lpegpatterns.space^0 * P("\\") * C(lpegpatterns.letter^1) / function(f,s)
- local t = textype(s)
- if t == "dimen" then
- context("\\the\\dimexpr %s\\%s\\relax",f,s)
- elseif t == "count" then
- context("\\the\\numexpr \\%s * %s\\relax",s,f) -- <n>\scratchcounter is not permitted
- end
- end
-
- local splitter = lpeg.splitat("::",true)
-
- interfaces.implement {
- name = "prepareMPvariable",
- arguments = "string",
- actions = function(v)
- if v == "" then
- -- MPcolor("black")
- context("black")
- else
- local typ, var = lpegmatch(splitter,v)
- if not var then
- -- parse
- if colorhash[v] then
- -- MPcolor(v)
- context("%q",var)
- elseif tonumber(v) then
- context(v)
- elseif not lpegmatch(dimenorname,v) then
- context("\\number %s",v) -- 0.4 ...
- end
- elseif typ == "d" then -- to be documented
- -- dimension
- context("\\the\\dimexpr %s\\relax",var)
- elseif typ == "n" then -- to be documented
- -- number
- context("\\the\\numexpr %s\\relax",var)
- elseif typ == "s" then -- to be documented
- -- string
- -- context(var)
- context("%q",var)
- elseif typ == "c" then -- to be documented
- -- color
- -- MPcolor(var)
- context("%q",var)
- else
- context(var)
- end
- end
- end
- }
-
-end
+-- local colorhash = attributes.list[attributes.private('color')]
+-- local textype = tex.type
+-- local MPcolor = context.MPcolor
+--
+-- do
+--
+-- local dimenorname =
+-- lpegpatterns.validdimen / function(s)
+-- context("\\the\\dimexpr %s",s)
+-- end
+-- + (C(lpegpatterns.float) + Cc(1)) * lpegpatterns.space^0 * P("\\") * C(lpegpatterns.letter^1) / function(f,s)
+-- local t = textype(s)
+-- if t == "dimen" then
+-- context("\\the\\dimexpr %s\\%s\\relax",f,s)
+-- elseif t == "count" then
+-- context("\\the\\numexpr \\%s * %s\\relax",s,f) -- <n>\scratchcounter is not permitted
+-- end
+-- end
+--
+-- local splitter = lpeg.splitat("::",true)
+--
+-- interfaces.implement {
+-- name = "prepareMPvariable",
+-- arguments = "string",
+-- actions = function(v)
+-- if v == "" then
+-- -- MPcolor("black")
+-- context("black")
+-- else
+-- local typ, var = lpegmatch(splitter,v)
+-- if not var then
+-- -- parse
+-- if colorhash[v] then
+-- -- MPcolor(v)
+-- context("%q",var)
+-- elseif tonumber(v) then
+-- context(v)
+-- elseif not lpegmatch(dimenorname,v) then
+-- context("\\number %s",v) -- 0.4 ...
+-- end
+-- elseif typ == "d" then -- to be documented
+-- -- dimension
+-- context("\\the\\dimexpr %s\\relax",var)
+-- elseif typ == "n" then -- to be documented
+-- -- number
+-- context("\\the\\numexpr %s\\relax",var)
+-- elseif typ == "s" then -- to be documented
+-- -- string
+-- -- context(var)
+-- context("%q",var)
+-- elseif typ == "c" then -- to be documented
+-- -- color
+-- -- MPcolor(var)
+-- context("%q",var)
+-- else
+-- context(var)
+-- end
+-- end
+-- end
+-- }
+--
+-- end
do
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/meta-ini.mkxl
index 823d369f0af..16b97e8cc40 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/meta-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-ini.mkxl
@@ -11,8 +11,6 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D Some lmtx upgrading work needs to be done here.
-%D
%D For real \METAFUN\ magic see \type {https://art-aleatoire.com/}.
% initializations:
@@ -69,6 +67,8 @@
\newtoks \everyMPgraphic % mp % public or not ?
\appendtoks
+ \setcatcodetable\ctxcatcodes
+ % then this is not needed:
\restoreendofline % see interferences-001.tex
\to \everyMPgraphic
@@ -82,6 +82,7 @@
\installcorenamespace{mpgraphic}
\installcorenamespace{mpstaticgraphic}
\installcorenamespace{mpclip}
+\installcorenamespace{mpcategory}
\newtoks \t_meta_initializations % tex, each
@@ -101,17 +102,17 @@
\gtoksapp\t_meta_definitions{#2}%
\let\currentMPinstance\m_meta_saved_instance}
-\aliased\let\stopMPdefinitions\relax
+\permanent\protected\lettonothing\stopMPdefinitions
\permanent\tolerant\protected\def\startMPextensions#=#:#2\stopMPextensions % we could use buffers instead
{\clf_setmpextensions{#1}{#2}}
-\aliased\let\stopMPextensions\relax
+\permanent\protected\lettonothing\stopMPextensions
\permanent\protected\def\startMPinitializations#1\stopMPinitializations % for all instances, when enabled
{\gtoksapp\t_meta_initializations{#1}}
-\aliased\let\stopMPinitializations\relax
+\permanent\protected\lettonothing\stopMPinitializations
\permanent\tolerant\protected\def\startMPinclusions[#1]#*#=#:#3\stopMPinclusions
{\let\m_meta_saved_instance\currentMPinstance % \pushmacro
@@ -125,7 +126,7 @@
\gtoksapp\t_meta_inclusions{#3}%
\let\currentMPinstance\m_meta_saved_instance} % \popmacro
-\aliased\let\stopMPinclusions\relax
+\permanent\protected\lettonothing\stopMPinclusions
% The next was broken since we added instances so it will go away!
@@ -169,12 +170,11 @@
\t_meta_inclusions \emptytoks % in case we redefine
\to \everydefineMPinstance
-\permanent\protected\def\resetMPinstance[#1]%
- {\writestatus\m!metapost{reset will be implemented when needed}}
+% \permanent\protected\def\resetMPinstance[#1]%
+% {\writestatus\m!metapost{reset will be implemented when needed}}
\def\meta_analyze_graphicname[#1]%
- %{\normalexpanded{\meta_analyze_graphicname_indeed[#1::::]}}
- {\normalexpanded{\meta_analyze_graphicname_indeed[#1}::::]}
+ {\normalexpanded{\meta_analyze_graphicname_indeed[#1::::]}}
\def\meta_show_properties_indeed
{\writestatus{metapost}{name: \currentMPgraphicname, instance: \currentMPinstance, format: \currentMPformat}}
@@ -203,10 +203,11 @@
\mutable\def\currentMPinstance {\defaultMPinstance}
\mutable\def\currentMPformat {\currentMPinstance}
-\defineMPinstance[metafun] [\s!format=metafun,\s!extensions=\v!yes,\s!initializations=\v!yes]
-\defineMPinstance[minifun] [\s!format=minifun,\s!extensions=\v!yes,\s!initializations=\v!yes]
-\defineMPinstance[extrafun] [\s!format=metafun,\s!extensions=\v!yes,\s!initializations=\v!yes]
+\defineMPinstance[metafun] [\s!format=metafun,\s!extensions=\v!yes,\s!initializations=\v!yes,\c!method=\s!double]
+\defineMPinstance[minifun] [\s!format=minifun,\s!extensions=\v!yes,\s!initializations=\v!yes,\c!method=\s!double]
+\defineMPinstance[extrafun] [\s!format=metafun,\s!extensions=\v!yes,\s!initializations=\v!yes,\c!method=\s!double]
\defineMPinstance[lessfun] [\s!format=metafun]
+\defineMPinstance[scaledfun] [\s!format=metafun,\s!extensions=\v!yes,\s!initializations=\v!yes,\c!method=\s!scaled]
\defineMPinstance[doublefun] [\s!format=metafun,\s!extensions=\v!yes,\s!initializations=\v!yes,\c!method=\s!double]
\defineMPinstance[binaryfun] [\s!format=metafun,\s!extensions=\v!yes,\s!initializations=\v!yes,\c!method=\s!binary]
\defineMPinstance[decimalfun] [\s!format=metafun,\s!extensions=\v!yes,\s!initializations=\v!yes,\c!method=\s!decimal]
@@ -215,6 +216,7 @@
\defineMPinstance[metapost] [\s!format=mpost]
\defineMPinstance[nofun] [\s!format=mpost]
+\defineMPinstance[scaledpost] [\s!format=mpost,\c!method=\s!scaled]
\defineMPinstance[doublepost] [\s!format=mpost,\c!method=\s!double]
\defineMPinstance[binarypost] [\s!format=mpost,\c!method=\s!binary]
\defineMPinstance[decimalpost][\s!format=mpost,\c!method=\s!decimal]
@@ -281,32 +283,33 @@
\meta_relocate_graphic
\popMPboundingbox}
-\protected\def\meta_process_graphic_instance#1%
+\protected\def\meta_process_graphic_instance#1#2% used in startMPpage
{\edef\currentMPinstance{#1}%
\ifempty\currentMPinstance
\let\currentMPinstance\defaultMPinstance
\fi
+ \setmpcategoryparameter\c!stacking{#2}%
\edef\currentMPformat{\MPinstanceparameter\s!format}%
\meta_process_graphic}
\protected\def\meta_process_graphic#1% todo: extensions and inclusions outside beginfig
{\meta_start_current_graphic
\forgetall
- \edef\p_extensions{\MPinstanceparameter\s!extensions}%
\meta_process_graphic_start
\normalexpanded{\noexpand\clf_mpgraphic
instance {\currentMPinstance}%
format {\currentMPformat}%
data {#1;}%
initializations {\meta_flush_current_initializations}%
- \ifx\p_extensions\v!yes
- extensions {\clf_getmpextensions{\currentMPinstance}}% goes through tex again
+ \ifcstok{\MPinstanceparameter\s!extensions}\v!yes
+ extensions {\clf_getmpextensions{\currentMPinstance}}% goes through tex again, can be done better now
\fi
inclusions {\meta_flush_current_inclusions}%
definitions {\meta_flush_current_definitions}%
figure {\MPaskedfigure}%
+ filtering {\mpcategoryparameter\c!stacking}
method {\MPinstanceparameter\c!method}%
- namespace {\??graphicvariable\currentmpvariableclass:}%
+ namespace {\??graphicvariable\currentmpcategory:}%
\relax}%
\meta_process_graphic_stop
\meta_stop_current_graphic}
@@ -365,15 +368,15 @@
\permanent\protected\def\finalizeMPdrawing
{\MPdrawingdonetrue}
-\mutable\let\MPdrawingdata\empty
+\mutable\lettonothing\MPdrawingdata
\permanent\protected\def\resetMPdrawing
- {\glet\MPdrawingdata\empty
+ {\glettonothing\MPdrawingdata
\global\MPdrawingdonefalse}
\permanent\protected\def\pushMPdrawing
{\globalpushmacro\MPdrawingdata
- \glet\MPdrawingdata\empty}
+ \glettonothing\MPdrawingdata}
\permanent\protected\def\popMPdrawing
{\globalpopmacro\MPdrawingdata}
@@ -395,7 +398,7 @@
{\xdef\MPdrawingdata{\MPdrawingdata#2}}%
\egroup}
-\aliased\let\stopMPdrawing\relax
+\permanent\protected\lettonothing\stopMPdrawing
\permanent\def\MPdrawing#1%
{\relax
@@ -407,19 +410,19 @@
\permanent\protected\def\startMPclip#1#2\stopMPclip % todo: store at the lua end or just store less
{\gdefcsname\??mpclip#1\endcsname{#2}}
-\aliased\let\stopMPclip\relax
+\permanent\protected\lettonothing\stopMPclip
-\mutable\def\width {0 } % left-over
-\mutable\def\height{0 } % left-over
+\mutable\def\width {0 } % left-over, obsolete
+\mutable\def\height{0 } % left-over, obsolete
-\mutable\let\currentMPclip\empty
+\mutable\lettonothing\currentMPclip
\protected\def\meta_grab_clip_path#1#2#3%
{\begingroup
\d_overlay_width #2\relax
\d_overlay_height#3\relax
- \edef\width {\the\d_overlay_width \space}% hm
- \edef\height{\the\d_overlay_height\space}% hm
+ \edef\width {\the\d_overlay_width \space}% obsolete
+ \edef\height{\the\d_overlay_height\space}% obsolete
\edef\currentMPclip{#1}%
\ifcsname\??mpclip\currentMPclip\endcsname
\meta_grab_clip_path_yes
@@ -433,7 +436,7 @@
\normalexpanded{\noexpand\clf_mpsetclippath
instance {\currentMPinstance}%
format {\currentMPformat}%
- data {\csname\??mpclip\currentMPclip\endcsname}%
+ data {\begincsname\??mpclip\currentMPclip\endcsname}%
initializations {\meta_flush_current_initializations}%
useextensions {\MPinstanceparameter\s!extensions}%
inclusions {\meta_flush_current_inclusions}%
@@ -493,97 +496,59 @@
%D Currently the inheritance of backgrounds does not work and we might drop it
%D anyway (too messy)
-\newbox\b_meta_variable_box
-
-\mutable\let \currentmpvariableclass \empty % public
-
-\let \m_meta_current_variable \empty
-\let \m_meta_current_variable_template\empty
-
-% \installcorenamespace{graphicvariable} % already set
-
-\def\meta_prepare_variable_default{\MPcolor{black}} % just to be sure we use a color but ...
-
-\permanent\tolerant\protected\def\setupMPvariables[#1]#*[#2]%
- {\ifarguments
- \or
- \getrawparameters[\??graphicvariable:][#1]%
- \else
- \getrawparameters[\??graphicvariable#1:][#2]%
- \fi}
+\lettonothing\m_meta_current_variable
-\permanent\tolerant\protected\def\presetMPvariable[#1]#*[#2=#3]%
- {\ifcsname\??graphicvariable#1:#2\endcsname \else
- \defcsname\??graphicvariable#1:#2\endcsname{#3}%
- \fi}
+\installbasicnativeautosetuphandler \??mpcategory {mpcategory}
-\permanent\def\MPrawvar#1#2% no checking
- {\begincsname\??graphicvariable#1:#2\endcsname}
+\permanent\tolerant\protected\def\useMPvariables[#1]#*[#2]{} % no longer needed
-\permanent\def\MPvariable#1% todo: could be a framed chain
- {\begincsname\??graphicvariable\currentmpvariableclass:#1\endcsname}
+%D The uppercase ones are the official ones:
-\permanent\tolerant\protected\def\useMPvariables[#1]#*[#2]%
- {\edef\currentmpvariableclass{#1}%
- \meta_prepare_variables{#2}}
+\aliased\let\setupMPvariables\setupmpcategory
+\aliased\let\setMPvariables \setupmpcategory
-\protected\def\meta_prepare_variables#1%
- {\processcommalist[#1]\meta_prepare_variable}
+\def\meta_mpvar_default{\MPcolor{black}\space}
+%def\meta_mpvar_default{0 }
-\protected\def\meta_prepare_variable#1%
- {\edef\m_meta_current_variable_template
- {\??graphicvariable\currentmpvariableclass:#1}%
- \edef\m_meta_current_variable
- {\begincsname\m_meta_current_variable_template\endcsname}%
+\permanent\def\MPvar#1% todo: could be a framed chain
+ {\beginlocalcontrol
+ \edef\m_meta_current_variable{\mpcategoryparameter{#1}}%
+ \endlocalcontrol
\ifempty\m_meta_current_variable
- \expandafter\meta_prepare_variable_nop
+ \meta_mpvar_default
+ \orelse\ifchkdim\m_meta_current_variable\or
+ \todimension\m_meta_current_variable\space\space
+ % \orelse\ifchknum\m_meta_current_variable\or % we need to catch 1>2
+ \orunless\iftok{\ifchknum\m_meta_current_variable\or\tointeger\m_meta_current_variable\fi}\emptytoks
+ \tointeger\m_meta_current_variable\space\space
+ \orelse\ifcsname\??colorattribute\currentcolorprefix\m_meta_current_variable\endcsname
+ \MPcolor\m_meta_current_variable\space
+ \orelse\ifcsname\??colorattribute\m_meta_current_variable\endcsname
+ \MPcolor\m_meta_current_variable\space
\else
- \expandafter\meta_prepare_variable_yes
+ \m_meta_current_variable
\fi}
-\protected\def\meta_prepare_instance_variables
- {\expandafter\processcommalist\expandafter[\m_meta_instance_variables]\meta_prepare_instance_variable}
-
-\protected\def\meta_prepare_instance_variable#1%
- {\edef\m_meta_current_variable_template
- {\??graphicvariable\currentmpvariableclass:#1}%
- \edef\m_meta_current_variable
- {\ifcsname\m_meta_current_variable_template\endcsname
- \lastnamedcs
- \else
- \begincsname\??graphicvariable\currentMPgraphicname:#1\endcsname
- \fi}%
+\permanent\def\MPrawvar#1#2% todo: could be a framed chain
+ {\beginlocalcontrol
+ \edef\m_meta_current_variable{\namedmpcategoryparameter{#1}{#2}}%
+ \endlocalcontrol
\ifempty\m_meta_current_variable
- \expandafter\meta_prepare_variable_nop
+ \meta_mpvar_default
+ \orelse\ifchkdim\m_meta_current_variable\or
+ \todimension\m_meta_current_variable\space\space
+ % \orelse\ifchknum\m_meta_current_variable\or % we need to catch 1>2
+ \orunless\iftok{\ifchknum\m_meta_current_variable\or\tointeger\m_meta_current_variable\fi}\emptytoks
+ \tointeger\m_meta_current_variable\space\space
+ \orelse\ifcsname\??colorattribute\currentcolorprefix\m_meta_current_variable\endcsname
+ \MPcolor\m_meta_current_variable\space
+ \orelse\ifcsname\??colorattribute\m_meta_current_variable\endcsname
+ \MPcolor\m_meta_current_variable\space
\else
- \expandafter\meta_prepare_variable_yes
+ \m_meta_current_variable
\fi}
-\def\meta_prepare_variable_nop
- {\expandafter\letcsname\m_meta_current_variable_template\endcsname\meta_prepare_variable_default}
-
-\def\meta_prepare_variable_color % we use the attribute so we dont' go through namedcolor (why not)
- {\expandafter\edefcsname\m_meta_current_variable_template\endcsname{\MPcolor\m_meta_current_variable}}
-
-\def\meta_prepare_variable_number
- {\expandafter\edefcsname\m_meta_current_variable_template\endcsname{\number\m_meta_current_variable}}% also accepts 0.number
-
-\def\meta_prepare_variable_dimension
- {\expandafter\edefcsname\m_meta_current_variable_template\endcsname{\the\dimexpr\m_meta_current_variable}}
-
-\def\meta_prepare_variable_yes
- {\ifchkdim\m_meta_current_variable\or
- \meta_prepare_variable_dimension
- \orelse\ifchknum\m_meta_current_variable\or
- \meta_prepare_variable_number
- \else
- \doifelsecolor\m_meta_current_variable
- \meta_prepare_variable_color
- \meta_prepare_variable_dimension
- \fi}
-
-\aliased\let\MPvar \MPvariable
-\aliased\let\setMPvariables\setupMPvariables
+\aliased\let\MPvariable\MPvar
%D \macros
%D {startuniqueMPgraphic, uniqueMPgraphic}
@@ -631,8 +596,8 @@
%D \uniqueMPgraphic{meta:hash}{gap=10pt,angle=30}
%D \stoptyping
-\newcount\c_meta_object_counter
-\newbox \b_meta_graphic
+\newinteger\c_meta_object_counter
+\newbox \b_meta_graphic
% hm, isn't this already done elsewhere?
@@ -664,22 +629,26 @@
{\meta_relocate_box
\box\b_meta_graphic}
+% \protected\def\meta_reuse_box#1#2#3#4#5% space delimiting would save some tokens
+% {\MPllx#2\MPlly#3\MPurx#4\MPury#5%
+% \hpack container{\forcecolorhack\getobject{MP}{#1}}} % else no proper color intent
+
\protected\def\meta_reuse_box#1#2#3#4#5% space delimiting would save some tokens
{\MPllx#2\MPlly#3\MPurx#4\MPury#5%
- \hpack container{\forcecolorhack\getobject{MP}{#1}}} % else no proper color intent
+ \hpack container{\getobject{MP}{#1}}}
\protected\def\meta_use_box
{\setunreferencedobject{MP}}
\def\meta_handle_unique_graphic#1#2#3% when there are too many, we can store data at the lua end, although,
{\begingroup % when there are that many they're probably not that unique anyway
- \edef\currentmpvariableclass{#1}%
- \extendMPoverlaystamp{#2}% incl prepare
- \ifcsname\??mpgraphic\overlaystamp:#1\endcsname
+ % \currentmpcategory already set
+ \extendMPoverlaystamp{#2}% incl prepare (maybe move to lua)
+ \ifcsname\??mpgraphic\overlaystamp:#1\endcsname % todo: is now per instance !
\lastnamedcs
\else
\meta_enable_include % redundant
- \global\advance\c_meta_object_counter\plusone
+ \global\advanceby\c_meta_object_counter\plusone
\meta_use_box{\number\c_meta_object_counter}\hpack{\meta_process_graphic{#3}}% was vbox, graphic must end up as hbox
\xdefcsname\??mpgraphic\overlaystamp:#1\endcsname{\meta_reuse_box{\number\c_meta_object_counter}{\the\MPllx}{\the\MPlly}{\the\MPurx}{\the\MPury}}%
\csname\??mpgraphic\overlaystamp:#1\endcsname\empty
@@ -691,7 +660,7 @@
\permanent\protected\def\startuniqueMPgraphic
{\dodoublegroupempty\meta_start_unique_graphic}
-\aliased\let\stopuniqueMPgraphic\relax
+\permanent\protected\lettonothing\stopuniqueMPgraphic
\def\meta_start_unique_graphic#1%
{\normalexpanded{\meta_start_unique_graphic_indeed{#1}}}
@@ -699,27 +668,49 @@
\permanent\protected\def\meta_start_unique_graphic_indeed#1#2#3\stopuniqueMPgraphic
{\gdefcsname\??mpgraphic#1\endcsname{\meta_handle_unique_graphic{#1}{#2}{#3}}}
-\permanent\tolerant\protected\def\uniqueMPgraphic#=#*#=%
+% \permanent\tolerant\protected\def\uniqueMPgraphic#=#*#=%
+% {\meta_begin_graphic_group{#1}%
+% \checkmpcategoryparent
+% \let\currentmpcategory\currentMPgraphicname
+% \setupcurrentmpcategory[#2]%
+% \begincsname\??mpgraphic#1\endcsname\empty
+% \meta_end_graphic_group}
+
+\permanent\tolerant\protected\def\uniqueMPgraphic
+ {\futureexpandis[\meta_uniquempgraphic_yes\meta_uniquempgraphic_nop}
+
+\def\meta_uniquempgraphic_yes[#1]#*#=%
+ {% ugly code but we run on top of older code
+ \resetdummyparameter\c!instance
+ \getdummyparameters[#1]%
+ \edef\currentMPinstance{\dummyparameter\c!instance}%
+ % here we feed the instance into the analyzer
+ \meta_begin_graphic_group{\ifempty\currentMPinstance\else\currentMPinstance::\fi#1}%
+ \checkmpcategoryparent
+ \let\currentmpcategory\currentMPgraphicname
+ \setupcurrentmpcategory[#1]%
+ \begincsname\??mpgraphic#2\endcsname\empty
+ \meta_end_graphic_group}
+
+\tolerant\def\meta_uniquempgraphic_nop#=#*#=%
{\meta_begin_graphic_group{#1}%
- \setupMPvariables[#1][#2]%
+ \checkmpcategoryparent
+ \let\currentmpcategory\currentMPgraphicname
+ \setupcurrentmpcategory[#2]%
\begincsname\??mpgraphic#1\endcsname\empty
\meta_end_graphic_group}
\def\meta_handle_use_graphic#1#2#3%
{\begingroup
- \edef\currentmpvariableclass{#1}%
- \edef\m_meta_instance_variables{#2}%
- \ifempty\m_meta_instance_variables \else
- \meta_prepare_instance_variables
- \fi
+ % \currentmpcategory already set
\meta_enable_include % redundant
\meta_process_graphic{#3}%
\endgroup}
-\permanent\protected\def\startuseMPgraphic % todo, modernize
+\permanent\protected\def\startuseMPgraphic
{\dodoublegroupempty\meta_start_use_graphic}
-\aliased\let\stopuseMPgraphic\relax
+\permanent\protected\lettonothing\stopuseMPgraphic
\def\meta_start_use_graphic#1%
{\normalexpanded{\meta_start_use_graphic_indeed{#1}}}
@@ -727,10 +718,10 @@
\protected\def\meta_start_use_graphic_indeed#1#2#3\stopuseMPgraphic
{\gdefcsname\??mpgraphic#1\endcsname{\meta_handle_use_graphic{#1}{#2}{#3}}}
-\permanent\protected\def\startusableMPgraphic % redundant but handy % todo, modernize
+\permanent\protected\def\startusableMPgraphic
{\dodoublegroupempty\meta_start_usable_graphic}
-\aliased\let\stopusableMPgraphic\relax
+\permanent\protected\lettonothing\stopusableMPgraphic
\def\meta_start_usable_graphic#1%
{\normalexpanded{\meta_start_usable_graphic_indeed{#1}}}
@@ -740,22 +731,18 @@
\def\meta_handle_reusable_graphic#1#2#3%
{\begingroup
- \edef\currentmpvariableclass{#1}%
- \edef\m_meta_instance_variables{#2}%
- \ifempty\m_meta_instance_variables \else
- \meta_prepare_instance_variables
- \fi
+ % \currentmpcategory already set
\meta_enable_include % redundant
- \global\advance\c_meta_object_counter\plusone
+ \global\advanceby\c_meta_object_counter\plusone
\meta_use_box{\number\c_meta_object_counter}\hpack{\meta_process_graphic{#3}}% was vbox, graphic must end up as hbox
\xdefcsname\??mpgraphic#1\endcsname{\meta_reuse_box{\number\c_meta_object_counter}{\the\MPllx}{\the\MPlly}{\the\MPurx}{\the\MPury}}%
\csname\??mpgraphic#1\endcsname\empty
\endgroup}
-\permanent\protected\def\startreusableMPgraphic % todo, modernize
+\permanent\protected\def\startreusableMPgraphic
{\dodoublegroupempty\meta_start_reusable_graphic}
-\aliased\let\stopreusableMPgraphic\relax
+\permanent\protected\lettonothing\stopreusableMPgraphic
\def\meta_start_reusable_graphic#1%
{\normalexpanded{\meta_start_reusable_graphic_indeed{#1}}}
@@ -763,28 +750,120 @@
\protected\def\meta_start_reusable_graphic_indeed#1#2#3\stopreusableMPgraphic
{\gdefcsname\??mpgraphic#1\endcsname{\meta_handle_reusable_graphic{#1}{#2}{#3}}}
-\mutable\let\usedMPgraphicname\empty
+% \permanent\tolerant\protected\def\useMPgraphic#=#*#=%
+% {\meta_begin_graphic_group{#1}%
+% \ifcsname\??mpgraphic#1\endcsname
+% \edef\currentmpcategory{#1}%
+% \orelse\ifcsname\??mpgraphic\currentMPgraphicname\endcsname
+% \let\currentmpcategory\currentMPgraphicname
+% \else
+% \lettonothing\currentmpcategory
+% \fi
+% \ifempty\currentmpcategory
+% % message
+% \else
+% \checkmpcategoryparent
+% \doifsomething{#2}{\setupcurrentmpcategory[#2]}%
+% \csname\??mpgraphic\currentmpcategory\endcsname
+% \fi
+% \meta_end_graphic_group}
+
+\permanent\tolerant\protected\def\useMPgraphic
+ {\futureexpandis[\meta_usempgraphic_yes\meta_usempgraphic_nop}
+
+\def\meta_usempgraphic_yes[#1]#*#=%
+ {% ugly code but we run on top of older code
+ \resetdummyparameter\c!instance
+ \getdummyparameters[#1]%
+ \edef\currentMPinstance{\dummyparameter\c!instance}%
+ % here we feed the instance into the analyzer
+ \meta_begin_graphic_group{\ifempty\currentMPinstance\else\currentMPinstance::\fi#2}%
+ \ifcsname\??mpgraphic#2\endcsname
+ \edef\currentmpcategory{#2}%
+ \orelse\ifcsname\??mpgraphic\currentMPgraphicname\endcsname
+ \let\currentmpcategory\currentMPgraphicname
+ \else
+ \lettonothing\currentmpcategory
+ \fi
+ \ifempty\currentmpcategory
+ % message
+ \else
+ \checkmpcategoryparent
+ \setupcurrentmpcategory[#1]%
+ \csname\??mpgraphic\currentmpcategory\endcsname
+ \fi
+ \meta_end_graphic_group}
-\permanent\tolerant\protected\def\useMPgraphic#=#*#=%
+\tolerant\def\meta_usempgraphic_nop#=#*#=%
{\meta_begin_graphic_group{#1}%
\ifcsname\??mpgraphic#1\endcsname
- \edef\usedMPgraphicname{#1}%
+ \edef\currentmpcategory{#1}%
\orelse\ifcsname\??mpgraphic\currentMPgraphicname\endcsname
- \let\usedMPgraphicname\currentMPgraphicname
+ \let\currentmpcategory\currentMPgraphicname
\else
- \let\usedMPgraphicname\empty
+ \lettonothing\currentmpcategory
\fi
- \ifempty\usedMPgraphicname
+ \ifempty\currentmpcategory
% message
\else
- \doifsomething{#2}{\setupMPvariables[\usedMPgraphicname][#2]}%
- \csname\??mpgraphic\usedMPgraphicname\endcsname
+ \checkmpcategoryparent
+ \doifsomething{#2}{\setupcurrentmpcategory[#2]}%
+ \csname\??mpgraphic\currentmpcategory\endcsname
\fi
\meta_end_graphic_group}
\aliased\let\reuseMPgraphic \useMPgraphic % we can save a setup here if needed
\aliased\let\reusableMPgraphic\reuseMPgraphic % we can save a setup here if needed
+%D Saves an overlaydefinition:
+
+\permanent\protected\def\startoverlayMPgraphic
+ {\dodoublegroupempty\meta_start_overlay_graphic}
+
+\permanent\protected\lettonothing\stopoverlayMPgraphic
+
+\def\meta_start_overlay_graphic#1%
+ {\normalexpanded{%
+ \pack_overlay_define{#1}{\useMPgraphic{#1}}%
+ \meta_start_overlay_graphic_indeed{#1}}%
+ }
+
+\protected\def\meta_start_overlay_graphic_indeed#1#2#3\stopoverlayMPgraphic
+ {\gdefcsname\??mpgraphic#1\endcsname{\meta_handle_overlay_graphic{#1}{#2}{#3}}}
+
+\def\meta_handle_overlay_graphic#1#2#3%
+ {\begingroup
+ \edef\currentmpcategory{#1}%
+ \meta_process_graphic{#3;BoundToOverlayBox;}%
+ \endgroup}
+
+%D New in \LMTX:
+
+\newtoks\MPoverlaydata
+
+\permanent\protected\lettonothing\stopMPoverlaydata
+
+\permanent\protected\def\startMPoverlaydata
+ {\iftrialtypesetting
+ \expandafter\startMPoverlaydata_nop
+ \else
+ \expandafter\startMPoverlaydata_yes
+ \fi}
+
+\permanent\protected\def\startMPoverlaydata_nop#-\stopMPoverlaydata
+ {}
+
+\permanent\protected\def\startMPoverlaydata_yes#1\stopMPoverlaydata
+ {\xtoksapp\MPoverlaydata{#1;}}
+
+\def\includeMPoverlaydata % expandable
+ {\the\MPoverlaydata
+ \resetMPoverlaydata}
+
+\def\resetMPoverlaydata % expandable
+ {\localcontrolled{\global\MPoverlaydata\emptytoks}}
+
+
%D \macros
%D {startuniqueMPpagegraphic,uniqueMPpagegraphic}
%D
@@ -805,40 +884,27 @@
\permanent\tolerant\protected\def\startuniqueMPpagegraphic % todo the modern way
{\dodoublegroupempty\meta_start_unique_page_graphic}
-\aliased\let\stopuniqueMPpagegraphic\relax
+\permanent\protected\lettonothing\stopuniqueMPpagegraphic
\def\meta_start_unique_page_graphic#1%
{\normalexpanded{\meta_start_unique_page_graphic_indeed{#1}}}
-\protected\def\meta_start_unique_page_graphic_indeed#1#2#3\stopuniqueMPpagegraphic % inefficient, double storage
- {\gdefcsname\??mpgraphic o:#1\endcsname{\meta_handle_unique_graphic{o:#1}{#2}{#3}}% % but these also keep the state
- \gdefcsname\??mpgraphic e:#1\endcsname{\meta_handle_unique_graphic{e:#1}{#2}{#3}}} % and meaning will be redefined
+\protected\def\meta_start_unique_page_graphic_indeed#1#2#3\stopuniqueMPpagegraphic % inefficient, double storage
+ {\gdefcsname\??mpgraphic o:#1\endcsname{\meta_handle_unique_graphic{o:#1}{#2}{#3}}% % but these also keep the state
+ \gdefcsname\??mpgraphic e:#1\endcsname{\meta_handle_unique_graphic{e:#1}{#2}{#3}}} % and meaning will be redefined
\permanent\tolerant\protected\def\uniqueMPpagegraphic#=#=%
{\meta_begin_graphic_group{#1}%
\enforced\let\overlaystamp\overlaypagestamp
- \setupMPvariables[\m_meta_page_prefix:#1][#2]% prefix is new here
+ \setupmpcategory[\m_meta_page_prefix:#1][#2]% prefix is new here
\csname\??mpgraphic\m_meta_page_prefix:#1\endcsname\empty
\meta_end_graphic_group}
-%D One way of defining a stamp is:
-%D
-%D \starttyping
-%D \def\extendMPoverlaystamp#1%
-%D {\def\docommand##1%
-%D {\edef\overlaystamp{\overlaystamp:\MPvariable{##1}}}%
-%D \processcommalist[#1]\docommand}
-%D \stoptyping
-%D
-%D Since we need to feed \METAPOST\ with expanded dimensions, we introduce a
-%D dedicated expansion engine. We redefine \type {\extendMPoverlaystamp} to
-
\permanent\protected\def\extendMPoverlaystamp#1%
{\processcommalist[#1]\meta_extend_overlay_stamp}
\def\meta_extend_overlay_stamp#1%
- {\meta_prepare_instance_variable{#1}%
- \enforced\permanent\edef\overlaystamp{\overlaystamp:\MPvariable{#1}}}
+ {\enforced\permanent\edef\overlaystamp{\overlaystamp:\MPvariable{#1}}}
% \getMPdata % define at the lua end
% \rawMPdata % define at the lua end
@@ -879,7 +945,7 @@
\fi
\clf_mptexset{\detokenize{#2}}}
-\aliased\let\stopMPenvironment\relax
+\permanent\protected\lettonothing\stopMPenvironment
\permanent\protected\def\resetMPenvironment
{\clf_mptexreset}
@@ -901,25 +967,64 @@
%D
%D The most simple case:
-\permanent\tolerant\protected\def\startMPcode#=#:#2\stopMPcode
+% \permanent\tolerant\protected\def\startMPcode#=#:#2\stopMPcode
+% {\begingroup
+% \edef\currentMPinstance{#1}%
+% \ifempty\currentMPinstance
+% \let\currentMPinstance\defaultMPinstance
+% \fi
+% \lettonothing\currentMPgraphicname
+% \edef\currentMPformat{\MPinstanceparameter\s!format}%
+% \meta_enable_include
+% \meta_process_graphic{#2}%
+% \endgroup}
+
+\permanent\tolerant\protected\def\startMPcode
+ {\futureexpandis[\meta_start_mpcode_yes\meta_start_mpcode_nop}
+
+\tolerant\def\meta_start_mpcode_nop#:#=#:#2\stopMPcode
{\begingroup
\edef\currentMPinstance{#1}%
\ifempty\currentMPinstance
\let\currentMPinstance\defaultMPinstance
\fi
- \let\currentMPgraphicname\empty
+ \lettonothing\currentMPgraphicname
\edef\currentMPformat{\MPinstanceparameter\s!format}%
\meta_enable_include
\meta_process_graphic{#2}%
\endgroup}
-\aliased\let\stopMPcode\relax
+\def\meta_start_mpcode_yes[#1]#2\stopMPcode
+ {\begingroup
+ \resetdummyparameter\c!instance
+ \resetdummyparameter\c!stacking
+ \getdummyparameters[#1]%
+ \edef\currentMPinstance{\dummyparameter\c!instance}%
+ \setmpcategoryparameter\c!stacking{\dummyparameter\c!stacking}%
+ \ifempty\currentMPinstance
+ \let\currentMPinstance\defaultMPinstance
+ \fi
+ \lettonothing\currentMPgraphicname
+ \edef\currentMPformat{\MPinstanceparameter\s!format}%
+ \meta_enable_include
+ \meta_process_graphic{#2}%
+ \endgroup}
+
+\permanent\protected\lettonothing\stopMPcode
%D This one is not optimized because it's only used for small snippets, if it
%D is used at all.
+%D
+%D \starttyping
+%D test \MPcode {draw unitcircle scaled 1.5ExHeight} test test \MPcode [doublefun]
+%D {draw unitcircle scaled 3mm shifted (0,-1mm)} test
+%D \stoptyping
-\permanent\tolerant\protected\def\MPcode#=#:#*#=%
- {\ifparameter#1\or
+\permanent\tolerant\protected\def\MPcode[#1]#:#2%
+ {\dontleavehmode
+ \begingroup
+ \obeyMPboxdepth
+ \ifparameter#1\or
\meta_begin_graphic_group{#1}%
\meta_enable_include
\meta_process_graphic{#2}%
@@ -927,8 +1032,9 @@
\else
\let\currentMPinstance\defaultMPinstance
\meta_enable_include
- \meta_process_graphic{#1}%
- \fi}
+ \meta_process_graphic{#2}%
+ \fi
+ \endgroup}
% a bit nasty (also needed for compatibility:
@@ -949,15 +1055,12 @@
\permanent\tolerant\protected\def\startMPrun#=#:#2\stopMPrun
{\normalexpanded{\startuseMPgraphic{\iftok{#1}\emptytoks mprun\else#1\fi}}#2\stopuseMPgraphic}
-\aliased\let\stopMPrun\relax
+\permanent\protected\lettonothing\stopMPrun
-%D The \type {\resetMPenvironment} is a quick way to erase
-%D the token list.
-%D
-%D You should be aware of independencies. For instance, if you use a font
-%D in a graphic that is not used in the main document, you need to load the
-%D typescript at the outer level (either directly or by using the global
-%D option).
+%D The \type {\resetMPenvironment} is a quick way to erase the token list. You
+%D should be aware of independencies. For instance, if you use a font in a graphic
+%D that is not used in the main document, you need to load the typescript at the
+%D outer level (either directly or by using the global option).
%D
%D \starttyping
%D \usetypescript[palatino][texnansi]
@@ -973,8 +1076,7 @@
%D \stopMPpage
%D \stoptyping
-%D Loading specific \METAPOST\ related definitions is
-%D accomplished by:
+%D Loading specific \METAPOST\ related definitions is accomplished by:
\permanent\protected\def\useMPlibrary[#1]{\clf_useMPlibrary{#1}}
@@ -1003,30 +1105,26 @@
% \setupcolors[state=stop,conversion=never] % quite tricky ... type mismatch
-\startMPinitializations
- CurrentLayout:="\currentlayout";
-\stopMPinitializations
+% \startMPinitializations
+% CurrentLayout:="\currentlayout";
+% \stopMPinitializations
%D A dirty trick, ** in colo-ini.lua (mpcolor). We cannot use a vardef, because
%D that fails with spot colors.
-\startMPinitializations
- def OverlayLineColor=\ifempty\overlaylinecolor black \else\MPcolor{\overlaylinecolor} \fi enddef;
- def OverlayColor =\ifempty\overlaycolor black \else\MPcolor{\overlaycolor} \fi enddef;
-\stopMPinitializations
+% \startMPinitializations
+% def OverlayLineColor=\ifempty\overlaylinecolor black \else\MPcolor{\overlaylinecolor} \fi enddef;
+% def OverlayColor =\ifempty\overlaycolor black \else\MPcolor{\overlaycolor} \fi enddef;
+% \stopMPinitializations
\appendtoks
\disablediscretionaries
%\disablecompoundcharacters
-\to \everyMPgraphic
-
-\appendtoks
+ %
\baselineskip1\baselineskip
\lineheight 1\lineheight
\topskip 1\topskip
-\to \everyMPgraphic
-
-\appendtoks
+ %
\enforced\let\#\letterhash
\enforced\let\_\letterunderscore
\enforced\let\&\letterampersand
@@ -1034,14 +1132,6 @@
\enforced\let\}\letterclosebrace
\to \everyMPgraphic
-%D \macros
-%D {PDFMPformoffset}
-%D
-%D In \PDF, forms are clipped and therefore we have to take precautions to get this
-%D right. Since this is related to objects, we use the same offset as used there.
-
-\def\PDFMPformoffset{\objectoffset}
-
\newtoks\everyinsertMPfile
\startMPextensions
@@ -1171,8 +1261,8 @@
\permanent\tolerant\protected\def\startstaticMPgraphic#=#:#=#:#3\stopstaticMPgraphic
{\startreusableMPgraphic{\??mpstaticgraphic#1}{#2}#3\stopreusableMPgraphic}
-\aliased\let\stopstaticMPfigure \relax
-\aliased\let\stopstaticMPgraphic\relax
+\permanent\protected\lettonothing\stopstaticMPfigure
+\permanent\protected\lettonothing\stopstaticMPgraphic
\permanent\tolerant\protected\def\usestaticMPfigure[#1]#*[#2]%
{\ifarguments\or
@@ -1183,8 +1273,8 @@
%D Goody for preventing overflows:
-%frozen\def\MPdivten[#1]{\withoutpt\the\dimexpr#1pt/10\relax}
-\permanent\def\MPdivten[#1]{\thewithoutunit\dimexpr#1pt/10\relax}
+% frozen\def\MPdivten[#1]{\toscaled\dimexpr#1pt/10\relax}
+\permanent\def\MPdivten[#1]{\toscaled\dimexpr#1pt/10\relax}
%D There is no way to distinguish the black color that you get when you issue a
%D \type {draw} without color specification from a color that has an explicit black
@@ -1277,14 +1367,14 @@
\ifempty\currentMPinstance
\let\currentMPinstance\defaultMPinstance
\fi
- \let\currentMPgraphicname\empty
+ \lettonothing\currentMPgraphicname
\edef\currentMPformat{\MPinstanceparameter\s!format}%
\meta_enable_include
\meta_process_graphic{#2;draw origin}%
\egroup
\endgroup}
-\aliased\let\stopMPcalculation\relax
+\permanent\protected\lettonothing\stopMPcalculation
%D \macros
%D {setupMPgraphics}
@@ -1306,29 +1396,10 @@
\setupMPgraphics
[\c!color=\v!local]
-% %D This can save some runtime: rename the mpy file from a first run (when stable) to
-% %D another file and reuse it. One can also use the original filename, but a copy is
-% %D often better.
-% %D
-% %D \starttyping
-% %D \setupMPgraphics
-% %D [mpy=\jobname.mpy]
-% %D \stoptyping
-%
-% \mutable\let\MPdataMPYfile\empty
-%
-% \appendtoks
-% \edef\p_mpy{\directMPgraphicsparameter{mpy}}%
-% \ifempty\p_mpy \else
-% \let\MPdataMPYfile\p_mpy
-% \clf_registermpyfile{\p_mpy}%
-% \fi
-% \to \everysetupMPgraphics
-
%D Some more helpers (see \type {meta-grd.mkiv} for an example of usage):
-\permanent\def\MPdpar#1#2{\the\dimexpr#1#2\relax\empty}
-\permanent\def\MPnpar#1#2{\the\numexpr#1#2\relax\empty}
+\permanent\def\MPdpar#1#2{\the\dimexpr#1#2\relax\empty} % why \empty here
+\permanent\def\MPnpar#1#2{\the\numexpr#1#2\relax\empty} % why \empty here
\permanent\def\MPspar#1#2{"#1#2"}
%D Done.
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-nod.mkxl b/Master/texmf-dist/tex/context/base/mkxl/meta-nod.mkxl
index 0fbfefde0c8..3cfc384aa19 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/meta-nod.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-nod.mkxl
@@ -106,9 +106,9 @@
%D Hm, we started out simple but it now quickly becomes the usual mess of \TEX,
%D \METAPOST\ and \LUA. Hard to understand.
-\newcount\c_meta_nodes_n
+\newinteger\c_meta_nodes_n
-\aliased\let\stopnodes\relax
+\permanent\protected\lettonothing\stopnodes
\permanent\tolerant\protected\def\startnodes[#1]#:#2\stopnodes
{\hpack\bgroup
@@ -154,9 +154,9 @@
\fi
);%
}}%
- \advance\c_meta_nodes_n\plusone}
+ \advanceby\c_meta_nodes_n\plusone}
-\aliased\let\placenode\relax
+\permanent\protected\lettonothing\placenode
\appendtoks
\enforced\let\placenode\grph_nodes_node
@@ -165,23 +165,23 @@
\permanent\tolerant\protected\def\grph_nodes_fromto[#1]#*[#2]%
{\grph_nodes_fromto_indeed[#1][#2]}% get rid of {n,m} % todo: we can use #_ or so
-\letvalue{\??metanodesposition }\empty
-\setvalue{\??metanodesposition top}{.top}
-\setvalue{\??metanodesposition bottom}{.bot}
-\setvalue{\??metanodesposition left}{.lft}
-\setvalue{\??metanodesposition right}{.rt}
-\setvalue{\??metanodesposition upperleft}{.ulft}
-\setvalue{\??metanodesposition topleft}{.ulft}
-\setvalue{\??metanodesposition lefttop}{.ulft}
-\setvalue{\??metanodesposition upperright}{.urt}
-\setvalue{\??metanodesposition topright}{.urt}
-\setvalue{\??metanodesposition righttop}{.urt}
-\setvalue{\??metanodesposition lowerleft}{.llft}
-\setvalue{\??metanodesposition bottomleft}{.llft}
-\setvalue{\??metanodesposition leftbottom}{.llft}
-\setvalue{\??metanodesposition lowerright}{.lrt}
-\setvalue{\??metanodesposition bottomright}{.lrt}
-\setvalue{\??metanodesposition rightbottom}{.lrt}
+\letcsname\??metanodesposition \endcsname\empty
+\defcsname\??metanodesposition top\endcsname{.top}
+\defcsname\??metanodesposition bottom\endcsname{.bot}
+\defcsname\??metanodesposition left\endcsname{.lft}
+\defcsname\??metanodesposition right\endcsname{.rt}
+\defcsname\??metanodesposition upperleft\endcsname{.ulft}
+\defcsname\??metanodesposition topleft\endcsname{.ulft}
+\defcsname\??metanodesposition lefttop\endcsname{.ulft}
+\defcsname\??metanodesposition upperright\endcsname{.urt}
+\defcsname\??metanodesposition topright\endcsname{.urt}
+\defcsname\??metanodesposition righttop\endcsname{.urt}
+\defcsname\??metanodesposition lowerleft\endcsname{.llft}
+\defcsname\??metanodesposition bottomleft\endcsname{.llft}
+\defcsname\??metanodesposition leftbottom\endcsname{.llft}
+\defcsname\??metanodesposition lowerright\endcsname{.lrt}
+\defcsname\??metanodesposition bottomright\endcsname{.lrt}
+\defcsname\??metanodesposition rightbottom\endcsname{.lrt}
\def\grph_nodes_fromto_indeed[#1,#2][#3]% we can't group because etoksapp doesn't like that
{\begingroup
@@ -219,16 +219,18 @@
;%
}}}
-\setvalue{\??metanodesalternative }{draw}
-\setvalue{\??metanodesalternative arrow}{drawarrow}
-\setvalue{\??metanodesalternative doublearrow}{drawdblarrow}
-\setvalue{\??metanodesalternative doublearrows}{drawdoublearrows}
+\defcsname\??metanodesalternative \endcsname{draw}
+\defcsname\??metanodesalternative arrow\endcsname{drawarrow}
+\defcsname\??metanodesalternative doublearrow\endcsname{drawdblarrow}
+\defcsname\??metanodesalternative doublearrows\endcsname{drawdoublearrows}
-\setvalue{\??metanodesoption }{}
-\setvalue{\??metanodesoption dashed}{dashed evenly}
-\setvalue{\??metanodesoption dotted}{dashed withdots scaled .5}
+\defcsname\??metanodesoption \endcsname{}
+\defcsname\??metanodesoption dashed\endcsname{dashed evenly}
+\defcsname\??metanodesoption dotted\endcsname{dashed withdots scaled .5}
-\aliased\let\connectnodes\relax
+\permanent\protected\lettonothing\connectnodes
+\permanent\protected\lettonothing\mpcode
+\permanent\protected\lettonothing\nodeMPcode
\appendtoks
\enforced\let\connectnodes\grph_nodes_fromto
@@ -237,9 +239,6 @@
\permanent\protected\def\grph_nodes_code#1%
{\etoksapp\t_meta_nodes{#1}}
-\aliased\let\mpcode \relax
-\aliased\let\nodeMPcode\relax
-
\appendtoks
\enforced\let\nodeMPcode\grph_nodes_code
\enforced\let\mpcode \grph_nodes_code
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-pdf.mkxl b/Master/texmf-dist/tex/context/base/mkxl/meta-pdf.mkxl
index d53ff7780f6..8dc0bdfac3c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/meta-pdf.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-pdf.mkxl
@@ -34,9 +34,7 @@
%D graphics. The color control flags are also gone as we now integrate into the
%D regular colorspace handling (i.e.\ no longer independent configurations.)
-\permanent\def\PDFMPformoffset{\ifdefined\objectoffset\objectoffset\else\zeropoint\fi} % obsolete, will go
-
-\mutable\let\MPfilename\empty
+\mutable\lettonothing\MPfilename
\permanent\protected\def\convertMPtoPDF#1#2#3% scaling no longer supported at this level (so #2 & #3 are ignored)
{\dostarttagged\t!mpgraphic\empty
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-pdh.mkxl b/Master/texmf-dist/tex/context/base/mkxl/meta-pdh.mkxl
index e2d0e15b62c..7f16ca34040 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/meta-pdh.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-pdh.mkxl
@@ -84,11 +84,12 @@
\ifdefined\makeMPintoPDFobject \else \newconstant\makeMPintoPDFobject \fi
\ifdefined\everyMPtoPDFconversion \else \newtoks \everyMPtoPDFconversion \fi
-\let\lastPDFMPobject \!!zerocount
-\let\currentPDFresources\empty
-\let\setMPextensions \relax
+\let\lastPDFMPobject\!!zerocount
+\let\setMPextensions\relax
-\def\PDFMPformoffset{\ifdefined\objectoffset\objectoffset\else\zeropoint\fi}
+\lettonothing\currentPDFresources
+
+\def\PDFMPformoffset{\ifdefined\objectoffset\objectoffset\else\zeropoint\fi} % no longer used
\def\resetMPvariables#1#2#3%
{\glet\MPwidth \!!zeropoint
@@ -139,7 +140,7 @@
%D A common hook.
-\let\MPfshowcommand\empty
+\lettonothing\MPfshowcommand
%D Objects.
@@ -465,7 +466,7 @@
%D \NC /N \NC smaller values, bigger inner circles \NC \NR
%D \stoptabulate
-% \newcount\currentPDFshade % 0 % global (document wide) counter
+% \newinteger\currentPDFshade % 0 % global (document wide) counter
%
% \def\dosetMPsomePDFshade#1#2%
% {\immediate\pdfobj
@@ -480,7 +481,7 @@
% /Function \the\pdflastobj\space 0 R
% /Coords [\MPshadeC]
% /Extend [true true]>>}%
-% \global\advance\currentPDFshade \plusone
+% \global\advanceby\currentPDFshade \plusone
% \ctxlua{lpdf.adddocumentshade("Sh\the\currentPDFshade",lpdf.reference(\the\pdflastobj))}%
% \setxvalue{\@@MPSK#2}{\noexpand\dohandleMPshade{\the\currentPDFshade}}}
%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/meta-tex.mkxl b/Master/texmf-dist/tex/context/base/mkxl/meta-tex.mkxl
index 5937ce4083f..8642f94fff4 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/meta-tex.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/meta-tex.mkxl
@@ -15,9 +15,8 @@
\unprotect
-% Ok, we support this in MkIV because Mojca kept the pressure on. It
-% looks a bit like a hack. But in fact this method is obsolete and
-% eventually might go away.
+%D Ok, we support this in MkIV because Mojca kept the pressure on. It looks a bit
+%D like a hack. But in fact this method is obsolete and eventually might go away.
\installcorenamespace{graphictextext}
\installcorenamespace{graphictexdepth}
@@ -26,10 +25,10 @@
\permanent\protected\def\startTeXtexts#1\stopTeXtexts
{#1}
-\aliased\let\stopTeXtexts\relax
+\permanent\protected\lettonothing\stopTeXtexts
\permanent\tolerant\protected\def\TeXtext[#1]#:#2#3% contrary to mkii we don't process yet but we do expand
- {\setxvalue{\??graphictextext#2}{\meta_textext_indeed{#1}{#3}}}
+ {\xdefcsname\??graphictextext#2\endcsname{\meta_textext_indeed{#1}{#3}}}
\protected\def\meta_textext_indeed#1#2%
{\begingroup
@@ -45,10 +44,10 @@
\permanent\def\getTeXtext#1%
{\begincsname\??graphictextext#1\endcsname}
-\letvalue{\??graphictexdepth d}\syst_boxes_lower_nextbox_dp
-\letvalue{\??graphictexdepth \s!depth}\syst_boxes_lower_nextbox_dp
-\letvalue{\??graphictexdepth n}\donothing
-\letvalue{\??graphictexdepth\s!nodepth}\donothing
+\letcsname\??graphictexdepth d\endcsname\syst_boxes_lower_nextbox_dp
+\letcsname\??graphictexdepth \s!depth\endcsname\syst_boxes_lower_nextbox_dp
+\letcsname\??graphictexdepth n\endcsname\donothing
+\letcsname\??graphictexdepth\s!nodepth\endcsname\donothing
% old hackery, slightly modernized
@@ -157,6 +156,13 @@
\definefontsynonym[sans-bold-italic] [\s!SansBoldItalic]
\definefontsynonym[sans-bold-oblique] [\s!SansBoldSlanted]
+\definefontsynonym[sansserif-normal-normal] [\s!Sans]
+\definefontsynonym[sansserif-normal-italic] [\s!SansItalic]
+\definefontsynonym[sansserif-normal-oblique] [\s!SansSlanted]
+\definefontsynonym[sansserif-bold-normal] [\s!SansBold]
+\definefontsynonym[sansserif-bold-italic] [\s!SansBoldItalic]
+\definefontsynonym[sansserif-bold-oblique] [\s!SansBoldSlanted]
+
\definefontsynonym[mono-normal-normal] [\s!Mono]
\definefontsynonym[mono-normal-italic] [\s!MonoItalic]
\definefontsynonym[mono-normal-oblique] [\s!MonoSlanted]
@@ -166,70 +172,180 @@
\installcorenamespace {svgfamily}
-\setvalue{\??svgfamily }{serif}
-\setvalue{\??svgfamily serif}{serif}
-\setvalue{\??svgfamily sans}{sans}
-\setvalue{\??svgfamily mono}{mono}
+\defcsname\??svgfamily \endcsname{serif}
+\defcsname\??svgfamily serif\endcsname{serif}
+\defcsname\??svgfamily sans\endcsname{sans}
+\defcsname\??svgfamily mono\endcsname{mono}
-%D This can't change because otherwise \type {\scale[width=4cm]{graphic}} fails.
+\definelayer[svgmps][\c!method=\v!fit]
-\permanent\protected\def\svgscaled#1%
- {\fastsxsy{#1}{#1}\svgnormal}
+\permanent\protected\def\svgembeddedfigure#1%
+ {\clf_embedimagefromstore {svg} #1 true\relax}
-\permanent\protected\def\svgnormal#1#2#3#4% family weight style text
- {\bgroup
- \edef\p_family{#1}%
- \ifempty\p_family\else
- \edef\p_font{\ifcsname\??svgfamily#1\endcsname\lastnamedcs\else#1\fi-#2-#3}%
- \predefinedfont[\s!spec:\p_font*\s!default\space @ 10bp]%
- \fi
- #4%
- \egroup}
-
-\permanent\protected\def\svgcolored#1#2#3#4% r g b text
- {\colored[r=#1,g=#2,b=#3]{#4}}
-
-% \permanent\protected\def\svgplaced#1#2#3#4% dx dy width text
-% {\doifelsenothing{#3}%
-% {\hpack}%
-% {\hpack to #3}%
-% {\raise#2\onebasepoint\hbox{\kern#1\onebasepoint\relax#4}}}
-
-\permanent\protected\def\svgplaced#1#2#3#4% dx dy width text
- {\doifelsenothing{#3}%
- {\hpack}%
- {\hpack to #3}%
- {\offsetbox[\c!y=#2]\hbox{\kern#1\relax#4}}}
-
-\newdimen\grph_svg_scratchwidth % maybe \startsvgpos etc
-
-\permanent\protected\def\svgposchar#1#2#3% dx dy char
- {\setbox\scratchbox\hpack\bgroup
- \raise#2\onebasepoint\hbox\bgroup
- \kern\dimexpr#1\onebasepoint-\grph_svg_scratchwidth\relax
- \char#3\relax
- \egroup
- \egroup
- \advance\grph_svg_scratchwidth\wd\scratchbox
- \box\scratchbox}
-
-\permanent\protected\def\svgchar#1% char
+% todo: use the independent color and transparency mechanism
+
+\permanent\protected\def\svghashed#1%
+ {\clf_svghashed#1\relax}
+
+\permanent\protected\def\svg_normal_pcode#1#2#3%
+ {\glyph xoffset #1\onebasepoint yoffset #2\onebasepoint #3\relax}
+
+\permanent\protected\def\svg_normal_pchar#1#2#3%
+ {\glyph xoffset #1\onebasepoint yoffset #2\onebasepoint `#3\relax}
+
+\permanent\protected\def\svg_normal_pspace#1#2%
+ {\space}
+
+\permanent\protected\def\svg_normal_space
+ {\space}
+
+\permanent\protected\def\svg_normal_code#1%
{\char#1\relax}
-\definelayer[svgmps][\c!method=\v!fit]
+\permanent\protected\def\svg_normal_char#1%
+ {#1\relax}
-\permanent\protected\def\svgstartlayer
+\permanent\protected\def\svg_normal_start
{\resetlayer[svgmps]%
\setlayer[svgmps]\bgroup}
-\permanent\protected\def\svgstoplayer
+\permanent\protected\def\svg_normal_stop
{\egroup
\flushlayer[svgmps]}
-\permanent\protected\def\svgsetlayer#1#2%
- {\setlayer[svgmps][\c!x=#1\onebasepoint,\c!y=#2\onebasepoint]} % {#3}
+\permanent\protected\def\svg_normal_color_c#1#2#3%#4% % color
+ {\colored[r=#1,g=#2,b=#3]}%{#4}}
-\permanent\protected\def\svghashed#1%
- {\clf_svghashed#1\relax}
+\permanent\protected\def\svg_normal_color_o#1%#2% % opace
+ {\colored[a=1,t=#1]}%{#2}}
+
+\permanent\protected\def\svg_normal_color_b#1#2#3#4%#5% % both
+ {\colored[r=#1,g=#2,b=#3,a=1,t=#4]}% {#5}}
+
+\permanent\protected\def\svg_normal_set#1#2#3%
+ {\setlayer[svgmps]{\hbox xoffset #1\onebasepoint yoffset #2\onebasepoint to 10sp{#3}}}
+
+\permanent\protected\def\svg_normal_font#1#2#3%#4%
+ {\hbox\bgroup
+ \iftok{#2}\emptytoks\else
+ \edef\p_font{\ifcsname\??svgfamily#1\endcsname\lastnamedcs\else#1\fi-#2-#3}%
+ \ifcsname svg:\p_font\endcsname
+ \lastnamedcs
+ \else
+ \predefinefont[svg:\p_font][\s!spec:\p_font*\s!default\space @ 10bp]%
+ \csname svg:\p_font\endcsname
+ \fi
+ \fi
+ \let\next}
+ % #4%
+ % \egroup}
+
+\permanent\protected\def\svg_normal_size#1%#2%
+ {\hbox\bgroup
+ \glyphscale\numericscale#1\relax % we need a period !
+ \let\next}
+ % #2%
+ % \egroup}
+
+\permanent\protected\def\svg_traced_pcode#1#2#3%
+ {\writestatus{SVG TEXT}{....[poscode #1 #2 \Uchar #3]}%
+ \svg_normal_pcode{#1}{#2}{#3}}
+
+\permanent\protected\def\svg_traced_pchar#1#2#3%
+ {\writestatus{SVG TEXT}{....[poschar #1 #2 #3]}%
+ \svg_normal_pchar{#1}{#2}{#3}}
+
+\permanent\protected\def\svg_traced_pspace#1#2%
+ {\writestatus{SVG TEXT}{....[posspace #1 #2]}%
+ \svg_normal_pspace{#1}{#2}}
+
+\permanent\protected\def\svg_traced_code#1%
+ {\writestatus{SVG TEXT}{....[char \Uchar #1]}%
+ \svg_normal_code{#1}}
+
+\permanent\protected\def\svg_traced_char#1%
+ {\writestatus{SVG TEXT}{....[char #1]}%
+ \svg_normal_char{#1}}
+
+\permanent\protected\def\svg_traced_space
+ {\writestatus{SVG TEXT}{....[space]}%
+ \svg_normal_space}
+
+\permanent\protected\def\svg_traced_start
+ {\writestatus{SVG TEXT}{[start layer]}%
+ \svg_normal_start}
+
+\permanent\protected\def\svg_traced_stop
+ {\svg_normal_stop
+ \writestatus{SVG TEXT}{[stop layer]}}
+
+\permanent\protected\def\svg_traced_color_c#1#2#3#4%
+ {\writestatus{SVG TEXT}{..[start color #1 #2 #3]}%
+ \svg_normal_color_c{#1}{#2}{#3}{#4}%
+ \writestatus{SVG TEXT}{..[stop color]}}
+
+\permanent\protected\def\svg_traced_color_o#1#2%
+ {\writestatus{SVG TEXT}{..[start opace #1]}%
+ \svg_normal_color_o{#1}{#2}%
+ \writestatus{SVG TEXT}{..[stop opace]}}
+
+\permanent\protected\def\svg_traced_color_b#1#2#3#4#5%
+ {\writestatus{SVG TEXT}{..[start color #1 #2 #3 opace #4]}%
+ \svg_normal_color_b{#1}{#2}{#3}{#4}{#5}%
+ \writestatus{SVG TEXT}{..[stop color opace]}}
+
+\permanent\protected\def\svg_traced_set#1#2#3%
+ {\writestatus{SVG TEXT}{...[start set layer #1 #2]}%
+ \svg_normal_set{#1}{#2}{#3}%
+ \writestatus{SVG TEXT}{...[stop set setlayer]}}
+
+\permanent\protected\def\svg_traced_font#1#2#3#4%
+ {\writestatus{SVG TEXT}{.[start font #1 #2 #3]}%
+ \svg_normal_font{#1}{#2}{#3}{#4}%
+ \writestatus{SVG TEXT}{.[stop font]}}
+
+\permanent\protected\def\svg_traced_size#1#2%
+ {\writestatus{SVG TEXT}{.[start size #1]}%
+ \svg_normal_size{#1}{#2}%
+ \writestatus{SVG TEXT}{.[stop size]}}
+
+\permanent\protected\def\svg_normal_text
+ {\enforced\let\svgpcode \svg_normal_pcode
+ \enforced\let\svgpchar \svg_normal_pchar
+ \enforced\let\svgpspace\svg_normal_pspace
+ \enforced\let\svgcode \svg_normal_code
+ \enforced\let\svgchar \svg_normal_char
+ \enforced\let\svgspace \svg_normal_space
+ \enforced\let\svgstart \svg_normal_start
+ \enforced\let\svgstop \svg_normal_stop
+ \enforced\let\svgcolorc\svg_normal_color_c
+ \enforced\let\svgcoloro\svg_normal_color_o
+ \enforced\let\svgcolorb\svg_normal_color_b
+ \enforced\let\svgset \svg_normal_set
+ \enforced\let\svgfont \svg_normal_font
+ \enforced\let\svgsize \svg_normal_size}
+
+\permanent\protected\def\svg_traced_text
+ {\enforced\let\svgpcode \svg_traced_pcode
+ \enforced\let\svgpchar \svg_traced_pchar
+ \enforced\let\svgpspace\svg_traced_pspace
+ \enforced\let\svgcode \svg_traced_code
+ \enforced\let\svgchar \svg_traced_char
+ \enforced\let\svgspace \svg_traced_space
+ \enforced\let\svgstart \svg_traced_start
+ \enforced\let\svgstop \svg_traced_stop
+ \enforced\let\svgcolorc\svg_traced_color_c
+ \enforced\let\svgcoloro\svg_traced_color_o
+ \enforced\let\svgcolorb\svg_traced_color_b
+ \enforced\let\svgset \svg_traced_set
+ \enforced\let\svgfont \svg_traced_font
+ \enforced\let\svgsize \svg_traced_size}
+
+\installtextracker
+ {svg.text}
+ {\svg_traced_text}
+ {\svg_normal_text}
+
+\svg_normal_text
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-cnt.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-cnt.lmt
index bddcb33b854..35ea4067a99 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-cnt.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-cnt.lmt
@@ -49,8 +49,6 @@ local next, type, tostring = next, type, tostring
local round, abs, min, max, floor = math.round, math.abs, math.min, math.max, math.floor
local concat, move = table.concat, table.move
-local bor = bit32.bor -- it's really time to ditch support for luajit
-
local starttiming = statistics.starttiming
local stoptiming = statistics.stoptiming
local resettiming = statistics.resettiming
@@ -196,7 +194,7 @@ local n_box = 0
local nofcontours = 0
--- We don't want cosmetics like axis and labels to trigger a calculation,
+-- We don't want cosmetics like axis and labels to trigger a calculation,
-- especially a slow one.
local hashfields = {
@@ -421,7 +419,7 @@ function mp.lmt_contours_start()
for j=1,ny do
local f = fi[j]
if f >= minr and f <= maxr then
- di[j] = bor(di[j],bit)
+ di[j] = di[j] | bit
end
end
end
@@ -1839,12 +1837,41 @@ local f_function_y = formatters [ [[
end
]] ]
+-- local f_color = formatters [ [[
+-- local math = math
+-- return function(f)
+-- return %s
+-- end
+-- ]] ]
+
local f_color = formatters [ [[
- local math = math
- return function(f)
- return %s
- end
-]] ]
+ local math = math
+ local min = math.min
+ local max = math.max
+ local abs = math.abs
+ local minz = %s
+ local maxz = %s
+ --
+ local color_value = 0
+ local color_step = mp.lmt_color_functions.step
+ local color_shade = mp.lmt_color_functions.shade
+
+ local function step(...)
+ return color_step(color_value,n,...)
+ end
+ local function shade(...)
+ return color_shade(color_value,n,...)
+ end
+ -- local function lin(l)
+ -- return l/n
+ -- end
+ %s
+ return function(f,z)
+ brightness_factor = f
+ function_value = z
+ return %s
+ end
+ ]] ]
function mp.lmt_surface_do(specification)
--
@@ -1900,7 +1927,7 @@ function mp.lmt_surface_do(specification)
local dy = (ymax - ymin) / ny
local xt = xmin
--
- local minf, maxf
+ local minf, maxf, minz, maxz
--
-- similar as contours but no data loop here
--
@@ -1910,12 +1937,6 @@ function mp.lmt_surface_do(specification)
return false -- fatal error
end
--
- local ccode = load(f_color(colorcode))
- local color = type(ccode) == "function" and ccode()
- if type(color) ~= "function" then
- return false -- fatal error
- end
- --
for i=0,nx do
local yt = ymin
for j=0,ny do
@@ -1948,8 +1969,16 @@ function mp.lmt_surface_do(specification)
maxf = fac
end
--
- data[i][j] = { x, y, fac }
- --
+ if not minz then
+ minz = z
+ maxz = z
+ elseif z < minz then
+ minz = z
+ elseif z > maxz then
+ maxz = z
+ end
+ data[i][j] = { x, y, fac, z }
+ --
yt = yt + dy
end
xt = xt + dx
@@ -1959,6 +1988,11 @@ function mp.lmt_surface_do(specification)
local range = maxf - minf
local cl = linecolor or 1
local enforce = attributes.colors.model == "cmyk"
+ local ccode = load(f_color(minz,maxz,preamble,colorcode))
+ local color = type(ccode) == "function" and ccode()
+ if type(color) ~= "function" then
+ return false -- fatal error
+ end
for i=0,nx-1 do
for j=0,ny-1 do
-- points
@@ -1992,7 +2026,7 @@ function mp.lmt_surface_do(specification)
-- else
-- -- fill and draw in one go to prevent artifacts
-- end
- local cr, cg, cb = color(cf)
+ local cr, cg, cb = color(cf,z1[4]) -- cf, zout
if not cr then cr = 0 end
if not cg then cg = 0 end
if not cb then cb = 0 end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-ctx.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-ctx.lmt
index 2569a6066b2..8ed6b0b00c5 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-ctx.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-ctx.lmt
@@ -118,15 +118,15 @@ implement {
arguments = "string",
actions = function(name)
local value = metapost.variables[name]
- if value ~= nil then
- local tvalue = type(value)
- if tvalue == "table" then
- context(concat(value," "))
- elseif tvalue == "number" or tvalue == "boolean" then
- context(tostring(value))
- elseif tvalue == "string" then
- context(value)
- end
+ local tvalue = type(value)
+ if tvalue == "nil" then
+ context("0")
+ elseif tvalue == "table" then
+ context(concat(value," "))
+ elseif tvalue == "number" or tvalue == "boolean" then
+ context(tostring(value))
+ elseif tvalue == "string" then
+ context(value)
end
end
}
@@ -223,6 +223,7 @@ implement {
{ "figure" },
{ "method" },
{ "namespace" },
+ { "filtering" },
}
}
}
@@ -313,6 +314,7 @@ implement {
{ "inclusions" },
{ "method" },
{ "namespace" },
+ { "filtering" },
{ "width", "dimension" },
{ "height", "dimension" },
},
@@ -360,16 +362,6 @@ function mptex.reset()
end
implement {
- name = "mppushvariables",
- actions = metapost.pushvariables,
-}
-
-implement {
- name = "mppopvariables",
- actions = metapost.popvariables,
-}
-
-implement {
name = "mptexset",
arguments = "string",
actions = mptex.set
@@ -418,3 +410,18 @@ MP = MP or { } -- user namespace
table.setmetatablecall(mp,function(t,k,...) return t[k](...) end)
table.setmetatablecall(MP,function(t,k,...) return t[k](...) end)
+
+-- A secret option:
+
+implement {
+ name = "resetMPinstance",
+ protected = true,
+ public = true,
+ arguments = "optional",
+ actions = function(s)
+ if s and s ~= "" then
+ report_metapost("resetting instance %a",s)
+ metapost.reset(s)
+ end
+ end,
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-ctx.mkxl b/Master/texmf-dist/tex/context/base/mkxl/mlib-ctx.mkxl
index fb069b6ea88..91bcaa58b32 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-ctx.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-ctx.mkxl
@@ -15,6 +15,17 @@
\installcorenamespace{graphicvariable}
+% \unprotect
+
+% \newdimension\d_adaptive_width
+% \newdimension\d_adaptive_height
+% \newdimension\d_adaptive_depth
+% \newdimension\d_adaptive_line
+% \newdimension\d_adaptive_hsize
+% \newbox \b_adaptive_box
+
+% \protect
+
\registerctxluafile{mlib-fio}{autosuffix}
\registerctxluafile{mlib-run}{autosuffix}
\registerctxluafile{mlib-ctx}{autosuffix}
@@ -26,8 +37,10 @@
\registerctxluafile{mlib-lmp}{autosuffix}
\registerctxluafile{mlib-int}{autosuffix}
\registerctxluafile{mlib-lmt}{autosuffix}
-\registerctxluafile{mlib-cnt}{autosuffix,optimize}
-\registerctxluafile{mlib-svg}{autosuffix,optimize}
+\registerctxluafile{mlib-pos}{autosuffix}
+\registerctxluafile{mlib-cnt}{autosuffix}
+\registerctxluafile{mlib-svg}{autosuffix}
+\registerctxluafile{mlib-fnt}{autosuffix} % outline fun
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-fio.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-fio.lmt
index 9de61affef7..07c9275beca 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-fio.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-fio.lmt
@@ -9,10 +9,12 @@ if not modules then modules = { } end modules ['mlib-fio'] = {
local type = type
local find = string.find
local concat = table.concat
-local suffix, addsuffix = file.suffix, file.addsuffix
+local suffix, addsuffix, is_writable = file.suffix, file.addsuffix, file.is_writable
+local urlhashed = url.hashed
local findfile = resolvers.findfile
-local new_instance = mplib.new
+local mplibnew = mplib.new
+----- mplibexecute = mplib.execute
local trace_terminal = false trackers.register("metapost.terminal", function(v) trace_terminal = v end)
@@ -23,51 +25,54 @@ local report_error = logs.reporter("metapost","error")
mplib.realtimelogging = false
-local l, nl, dl = { }, 0, false
-local t, nt, dt = { }, 0, false
-local e, ne, de = { }, 0, false
-
-local function logger(target,str)
- if target == 1 then
- -- log
- elseif target == 2 or target == 3 then
- -- term
- if str == "\n" then
- mplib.realtimelogging = true
- if nl > 0 then
- report_logger(concat(l,"",1,nl))
- nl, dl = 0, false
- elseif not dl then
- report_logger("")
- dl = true
+local handlelog do
+
+ local l, nl, dl = { }, 0, false
+
+ handlelog = function(instance,target,str)
+ if target == 1 then
+ -- log
+ elseif target == 2 or target == 3 then
+ -- term
+ if str == "\n" then
+ mplib.realtimelogging = true
+ if nl > 0 then
+ report_logger(concat(l,"",1,nl))
+ nl, dl = 0, false
+ elseif not dl then
+ report_logger("")
+ dl = true
+ end
+ else
+ nl = nl + 1
+ l[nl] = str
end
- else
- nl = nl + 1
- l[nl] = str
+ elseif target == 4 then
+ report_error(str)
end
- elseif target == 4 then
- report_error(str)
end
+
end
local finders = { }
mplib.finders = finders -- also used in meta-lua.lua
local function validftype(ftype)
- if ftype == "mp" then
- return "mp"
- else
- return nil
- end
+ return ftype == "mp" and "mp" or nil
end
-- We can have a list!
+local findtexfile = resolvers.findtexfile
+local opentexfile = resolvers.opentexfile
+local splitlines = string.splitlines
+
local suffixlist = { "mpxl", "mpiv", "mp" } -- no "mf"
local function findmpfile(name,ftype)
local validtyp = validftype(ftype)
- local fullname = findfile(name,validtyp)
+ -- local fullname = findfile(name,validtyp)
+ local fullname = findtexfile(name,validtyp)
if fullname and fullname ~= "" then
return fullname
elseif suffix(name) == "" then
@@ -81,27 +86,47 @@ local function findmpfile(name,ftype)
return nil
end
+-- variant 1
+
+-- finders.file = function(specification,name,mode,kind)
+-- if mode == "r" then
+-- return findmpfile(name,kind)
+-- elseif is_writable(name) then
+-- return name
+-- else
+-- return nil
+-- end
+-- end
+
+-- variant 2
+
+-- finders.file = function(specification,name,mode,kind)
+-- if not mode or mode == "r" then
+-- return findmpfile(name,kind)
+-- elseif is_writable(name) then
+-- return name
+-- else
+-- return nil
+-- end
+-- end
+
+-- variant 3
+
finders.file = function(specification,name,mode,kind)
- if mode == "r" then
- return findmpfile(name,kind)
- elseif file.is_writable(name) then
- return name
+ if mode == "w" then
+ return is_writable(name) and name or nil
else
- return nil
+ return findmpfile(name,kind) or nil
end
end
local function finder(name,mode,kind) -- fake message for mpost.map and metafun.mpvi
- local specification = url.hashed(name)
+ local specification = urlhashed(name)
local finder = finders[specification.scheme] or finders.file
local found = finder(specification,name,mode,validftype(ftype))
return found
end
-local findtexfile = resolvers.findtexfile
-local opentexfile = resolvers.opentexfile
-local splitlines = string.splitlines
-
local function writetoterminal(terminaldata,maxterm,d)
local t = type(d)
local n = 0
@@ -259,8 +284,7 @@ local function handleerror(instance, message, helpinfo, interaction)
report(helpinfo)
report()
if interaction == 5 then
- -- todo
--- luatex.abort()
+ -- luatex.abort()
end
end
@@ -271,19 +295,40 @@ local function handlewarning(instance, message)
end
function mplib.new(specification)
- local instance
local openfile = fileopener()
- specification.find_file = finder
- specification.run_logger = logger
- specification.run_overload = overload
- specification.run_error = function(...) handleerror (instance,...) end
- specification.run_warning = function(...) handlewarning(instance,...) end
- specification.open_file = openfile
- specification.interaction = "silent"
- specification.job_name = tex.jobname -- mandate in order to get something back
- specification.halt_on_error = true
- instance = new_instance(specification)
+ local handlers = specification.handlers
+ local instance
+ instance = mplibnew {
+ -- used
+ bend_tolerance = specification.bendtolerance,
+ move_tolerance = specification.movetolerance,
+ math_mode = specification.mathmode,
+ run_script = specification.runscript,
+ run_internal = specification.runinternal,
+ script_error = specification.scripterror,
+ make_text = specification.maketext,
+ -- always
+ extensions = 1,
+ -- random_seed = specification.seed,
+ utf8_mode = true,
+ text_mode = true,
+ show_mode = true,
+ -- not used
+ -- noninteractive = true;
+ -- ini_version = true,
+ -- always
+ find_file = finder,
+ run_overload = overload,
+ open_file = openfile,
+ interaction = "silent",
+ job_name = tex.jobname, -- mandate in order to get something back
+ halt_on_error = true,
+ run_logger = handlers.log or function(...) handlelog (instance,...) end,
+ run_error = handlers.error or function(...) handleerror (instance,...) end,
+ run_warning = handlers.warning or function(...) handlewarning(instance,...) end,
+ }
return instance, openfile("terminal")
end
-mplib.finder = finder
+mplib.finder = finder
+-----.execute = executor
diff --git a/Master/texmf-dist/tex/context/base/mkxl/font-mps.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-fnt.lmt
index 8cab9cf5c8f..3209b2ee6bd 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/font-mps.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-fnt.lmt
@@ -6,9 +6,10 @@ if not modules then modules = { } end modules ['font-mps'] = {
license = "see context related readme files"
}
-local tostring = tostring
-local concat = table.concat
-local formatters = string.formatters
+local type, tonumber, tostring = type, tonumber, tostring
+local concat, insert, remove = table.concat, table.insert, table.remove
+local formatters, match = string.formatters, string.match
+local utfbyte = utf.byte
-- QP0 [QP1] QP2 => CP0 [CP1 CP2] CP3
@@ -33,8 +34,8 @@ local f_dofill = formatters["fill %s;"]
local f_draw_trace = formatters["drawpathonly %s;"]
local f_draw = formatters["draw %s;"]
-local f_boundingbox = formatters["((%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--cycle)"]
-local f_vertical = formatters["((%N,%N)--(%N,%N))"]
+local f_rectangle = formatters["((%N,%N)--(%N,%N)--(%N,%N)--(%N,%N)--cycle)"]
+local f_line = formatters["((%N,%N)--(%N,%N))"]
function metapost.boundingbox(d,factor)
local bounds = d.boundingbox
@@ -43,7 +44,15 @@ function metapost.boundingbox(d,factor)
local lly = factor*bounds[2]
local urx = factor*bounds[3]
local ury = factor*bounds[4]
- return f_boundingbox(llx,lly,urx,lly,urx,ury,llx,ury)
+ return f_rectangle(llx,lly,urx,lly,urx,ury,llx,ury)
+end
+
+function metapost.baseline(d,factor)
+ local bounds = d.boundingbox
+ local factor = factor or 1
+ local llx = factor*bounds[1]
+ local urx = factor*bounds[3]
+ return f_line(llx,0,urx,0)
end
function metapost.widthline(d,factor)
@@ -52,7 +61,7 @@ function metapost.widthline(d,factor)
local lly = factor*bounds[2]
local ury = factor*bounds[4]
local width = factor*d.width
- return f_vertical(width,lly,width,ury)
+ return f_line(width,lly,width,ury)
end
function metapost.zeroline(d,factor)
@@ -60,7 +69,7 @@ function metapost.zeroline(d,factor)
local factor = factor or 1
local lly = factor*bounds[2]
local ury = factor*bounds[4]
- return f_vertical(0,lly,0,ury)
+ return f_line(0,lly,0,ury)
end
function metapost.paths(d,xfactor,yfactor)
@@ -118,6 +127,7 @@ function metapost.paths(d,xfactor,yfactor)
end
end
elseif segments then
+-- inspect(segments)
for i=1,#segments do
local segment = segments[i]
local operator = segment[#segment]
@@ -137,7 +147,7 @@ function metapost.paths(d,xfactor,yfactor)
elseif operator == "c" then -- "curveto"
size = size + 1
path[size] = f_curveto(xfactor*segment[1],yfactor*segment[2],xfactor*segment[3],yfactor*segment[4],xfactor*segment[5],yfactor*segment[6])
- elseif operator =="q" then -- "quadraticto"
+ elseif operator == "q" then -- "quadraticto"
size = size + 1
-- first is always a moveto
local prev = segments[i-1]
@@ -238,7 +248,7 @@ function metapost.maxbounds(data,index,factor)
if width > urx then
urx = width
end
- return f_boundingbox(
+ return f_rectangle(
factor*llx,factor*ymin,
factor*urx,factor*ymin,
factor*urx,factor*ymax,
@@ -250,58 +260,79 @@ end
-- right time. It's probably why I like watching https://www.youtube.com/watch?v=c5FqpddnJmc
-- so much: precisely (and perfectly) timed too.
-local texgetbox = tex.getbox
+local texgetbox = tex.getbox
+
+local nodecodes = nodes.nodecodes -- no nuts yet
+local rulecodes = nodes.rulecodes
-local nodecodes = nodes.nodecodes -- no nuts yet
-local rulecodes = nodes.rulecodes
+local rule_code = nodecodes.rule
-local rule_code = nodecodes.rule
+local normalrule_code = rulecodes.normal
+local outlinerule_code = rulecodes.outline
+local userrule_code = rulecodes.user
+local emptyrule_code = rulecodes.empty
-local normalrule_code = rulecodes.normal
-local outlinerule_code = rulecodes.outline
-local userrule_code = rulecodes.user
-local emptyrule_code = rulecodes.empty
+local nuts = nodes.nuts
+----- getwhd = nuts.getwhd
+local getexpansion = nuts.getexpansion
+local getscales = nuts.getscales
+local isglyph = nuts.isglyph
+local getglyphdimensions = nuts.getglyphdimensions
-local nuts = nodes.nuts
-local getwhd = nuts.getwhd
-local getexpansion = nuts.getexpansion
-local isglyph = nuts.isglyph
+local fonthashes = fonts.hashes
+local fontcharacters = fonthashes.characters
+local fontparameters = fonthashes.parameters
+local fontshapes = fonthashes.shapes
+local fontdescriptions = fonthashes.descriptions
-local characters = fonts.hashes.characters
-local parameters = fonts.hashes.parameters
-local shapes = fonts.hashes.shapes
-local topaths = metapost.paths
+local topaths = metapost.paths
-local f_text = formatters["mfun_do_outline_text_flush(%q,%i,%N,%N,%q)(%,t);"]
-local f_rule = formatters["mfun_do_outline_rule_flush(%q,%N,%N,%N,%N);"]
-local f_bounds = formatters["checkbounds(%N,%N,%N,%N);"]
-local s_nothing = "(origin scaled 10)"
+local f_text = formatters["mfun_do_outline_text_flush(%q,%i,%N,%N,%q)(%,t);"]
+local f_rule = formatters["mfun_do_outline_rule_flush(%q,%N,%N,%N,%N);"]
+local f_bounds = formatters["checkbounds(%N,%N,%N,%N);"]
+local s_nothing = "(origin scaled 10)"
-local sc = 10
-local fc = number.dimenfactors.bp
+local sc = 10
+local fc = number.dimenfactors.bp
-local function glyph(kind,font,char,advance,shift,ex)
- local character = characters[font][char]
+-- handle compact mode here:
+
+local function glyph(kind,font,char,advance,shift,ex,s,sx,sy)
+ local character = fontcharacters[font][char]
if character then
local index = character.index
if index then
- local shapedata = shapes[font]
- local glyphs = shapedata.glyphs -- todo: subfonts fonts.shapes.indexed(font,sub)
+ local shapedata = fontshapes[font]
+ local glyphs = shapedata.glyphs
if glyphs then
local glyf = glyphs[index]
if glyf then
local units = 1000 -- factor already takes shapedata.units into account
- local yfactor = (sc/units) * parameters[font].factor / 655.36
+ local yfactor = (sc/units) * fontparameters[font].factor / 655.36
local xfactor = yfactor
local shift = shift or 0
local advance = advance or 0
local exfactor = ex or 0
local wfactor = 1
local detail = kind == "p" and tostring(char) or ""
+ -- what about other effects
+ local xoffset = character.xoffset or 0
+ local yoffset = character.yoffset or 0 -- todo
+ --
if exfactor ~= 0 then
wfactor = (1+(ex/units)/1000)
xfactor = xfactor * wfactor
end
+ if xoffset ~= 0 then
+ advance = advance + s * sx * xoffset * fc / 1000000
+ end
+ if yoffset ~= 0 then
+ shift = shift + s * sy * yoffset * fc / 1000000
+ end
+ if s then
+ xfactor = (s/1000) * ((sx or 1000)/1000) * xfactor
+ yfactor = (s/1000) * ((sy or 1000)/1000) * yfactor
+ end
local paths = topaths(glyf,xfactor,yfactor)
if paths then
return f_text(kind,#paths,advance,shift,detail,paths) -- , character.width * fc * wfactor
@@ -324,15 +355,57 @@ local function reset()
end
local function flushcharacter(current, pos_h, pos_v, pod_r, font, char)
- local char, font = isglyph(current)
- local code = glyph(kind,font,char,pos_h*fc,pos_v*fc,getexpansion(current))
- if code then
- b = b + 1
- buffer[b] = code
+ if current then
+ local char, font = isglyph(current)
+ local s, sx, sy = getscales(current)
+ local code = glyph(kind,font,char,pos_h*fc,pos_v*fc,getexpansion(current),s,sx,sy)
+ if code then
+ b = b + 1
+ buffer[b] = code
+ end
+ else
+ logs.report("mlib-fnt","check 'flushcharacter', no current")
end
end
-local function flushrule(current, pos_h, pos_v, pos_r, size_h, size_v, subtype)
+-- Messy ... todo:
+
+-- local function flushcharacter(current,pos_h,pos_v,pos_r,font,char,data,csx,csy,factor,ssx,ssy)
+-- local width, height, depth, sx, sy
+-- if current then
+-- char, font = isglyph(current)
+-- width, height, depth, factor, sx, sy = getglyphdimensions(current)
+-- else
+-- if not data then
+-- data = fontcharacters[font][char] or { }
+-- end
+-- width = data.width or 0
+-- height = data.height or 0
+-- depth = data.depth or 0
+-- sx = 1
+-- sy = 1
+-- end
+-- if csx then
+-- sx = sx * csx
+-- end
+-- if csy then
+-- sy = sy * csy
+-- end
+-- if ssx then
+-- sx = sx * ssx
+-- end
+-- if ssy then
+-- sy = sy * ssy
+-- end
+-- local code = glyph(kind,font,char,pos_h*fc,pos_v*fc,factor,s,sx,sy)
+-- if code then
+-- b = b + 1
+-- buffer[b] = code
+-- end
+-- return width, height, depth
+-- end
+
+local function flushrule(current,pos_h,pos_v,pos_r,size_h,size_v,subtype)
if subtype == normalrule_code then
b = b + 1
buffer[b] = f_rule(kind,pos_h*fc,pos_v*fc,size_h*fc,size_v*fc)
@@ -396,3 +469,134 @@ function metapost.boxtomp(n,k)
return result
end
+-- This is a new set of commands:
+
+local loaded = table.setmetatableindex(function(t,k)
+ local v = fonts.definers.internal({ name = k } ,"<lmt:glyphshape:font>")
+ t[k] = v
+ return v
+end)
+
+local mpdata = 0
+local mpstack = { }
+
+function mp.lmt_glyphshape_start(id,character)
+ if type(id) == "string" then
+ id = loaded[id]
+ end
+ local fontid = (id and id ~= 0 and id) or font.current()
+ local shapedata = fontshapes [fontid] -- by index
+ local characters = fontcharacters [fontid] -- by unicode
+ local descriptions = fontdescriptions[fontid] -- by unicode
+ local mathgaps = mathematics.gaps -- not yet loaded
+ local shapeglyphs = shapedata.glyphs or { }
+ if type(character) == "string" and character ~= "" then
+ local hex = match(character,"^0x(.+)")
+ if hex then
+ character = tonumber(hex,16)
+ else
+ character = utfbyte(character)
+ end
+ else
+ character = tonumber(character)
+ end
+ local unicode = mathgaps[character] or character
+ local chardata = characters[unicode]
+ local descdata = descriptions[unicode]
+ if chardata then
+ glyph = shapeglyphs[chardata.index]
+ if glyph then
+ mpdata = glyph.mpdata
+ if not mpdata then
+ if glyph.segments or glyph.sequence then
+ local units = shapedata.units or 1000
+ local factor = 100/units
+ local width = (descdata.width or 0) * factor
+ local height = descdata.boundingbox[4] * factor
+ local depth = descdata.boundingbox[2] * factor
+ local math = descdata.math
+ local italic = (math and math.italic or 0) * factor
+ local accent = (math and math.accent or 0) * factor
+ mpdata = {
+ paths = metapost.paths(glyph,factor),
+ boundingbox = metapost.boundingbox(glyph,factor),
+ baseline = metapost.baseline(glyph,factor),
+ width = width,
+ height = height,
+ depth = depth,
+ italic = italic,
+ accent = accent,
+ usedbox = f_rectangle(0,depth,width,depth,width,height,0,height),
+ usedline = f_line(0,0,width,0),
+ }
+ glyph.mpdata = mpdata
+ else
+ print("CHECK 1",id,character)
+ end
+ end
+ end
+ else
+ print("CHECK 2",id,character)
+ end
+ insert(mpstack, mpdata)
+end
+
+local mpprint = mp.print
+local injectpair = mp.inject.pair
+local injectnumeric = mp.inject.numeric
+
+function mp.lmt_glyphshape_stop()
+ mpdata = remove(mpstack)
+end
+
+function mp.lmt_glyphshape_n()
+ if mpdata then
+ mpprint(#mpdata.paths)
+ else
+ injectnumeric(0)
+ end
+end
+
+function mp.lmt_glyphshape_path(i)
+ if mpdata then
+ mpprint(mpdata.paths[i])
+ else
+ injectpair(0,0)
+ end
+end
+
+function mp.lmt_glyphshape_boundingbox()
+ if mpdata then
+ mpprint(mpdata.boundingbox)
+ else
+ injectpair(0,0)
+ end
+end
+function mp.lmt_glyphshape_usedbox()
+ if mpdata then
+ mpprint(mpdata.usedbox)
+ else
+ injectpair(0,0)
+ end
+end
+
+function mp.lmt_glyphshape_baseline()
+ if mpdata then
+ mpprint(mpdata.baseline)
+ else
+ injectpair(0,0)
+ end
+end
+function mp.lmt_glyphshape_usedline()
+ if mpdata then
+ mpprint(mpdata.usedline)
+ else
+ injectpair(0,0)
+ end
+end
+
+function mp.lmt_glyphshape_width () injectnumeric(mpdata and mpdata.width or 0) end
+function mp.lmt_glyphshape_depth () injectnumeric(mpdata and mpdata.depth or 0) end
+function mp.lmt_glyphshape_height() injectnumeric(mpdata and mpdata.height or 0) end
+function mp.lmt_glyphshape_italic() injectnumeric(mpdata and mpdata.italic or 0) end
+function mp.lmt_glyphshape_accent() injectnumeric(mpdata and mpdata.accent or 0) end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-int.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-int.lmt
index a936e55924e..647b7054c2b 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-int.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-int.lmt
@@ -7,27 +7,15 @@ if not modules then modules = { } end modules ['mlib-int'] = {
}
local factor = number.dimenfactors.bp
-local mpstring = mp.string
-local mpboolean = mp.boolean
+local isdimen = tex.isdimen
+local iscount = tex.iscount
local getdimen = tex.getdimen
local getcount = tex.getcount
local getmacro = tokens.getters.macro
local get = tex.get
-local emwidths = fonts.hashes.emwidths
-local exheights = fonts.hashes.exheights
local registerscript = metapost.registerscript
-
-local on_right_page = structures.pages.on_right
-local is_odd_page = structures.pages.is_odd
-local in_body_page = structures.pages.in_body
-local page_fraction = structures.pages.fraction
-local layout_has_changed = structures.pages.has_changed
-
-local function defaultcolormodel() -- can be helper
- local colormethod = getcount("MPcolormethod")
- return (colormethod == 0 or colormethod == 1) and 1 or 3
-end
+local registerdirect = metapost.registerdirect
do
@@ -52,109 +40,218 @@ do
end
end
- registerscript("year", function() return item("year") end)
- registerscript("month", function() return item("month") end)
- registerscript("day", function() return item("day") end)
- registerscript("hour", function() return item("hour") end)
- registerscript("minute", function() return item("min") end)
- registerscript("second", function() return item("sec") end)
+ registerdirect("year", function() return item("year") end)
+ registerdirect("month", function() return item("month") end)
+ registerdirect("day", function() return item("day") end)
+ registerdirect("hour", function() return item("hour") end)
+ registerdirect("minute", function() return item("min") end)
+ registerdirect("second", function() return item("sec") end)
+
+end
+
+do
+
+ -- These get swapped so the d_ numbers change.
+
+ registerdirect("PaperHeight", function() return getdimen("paperheight") * factor end)
+ registerdirect("PaperWidth", function() return getdimen("paperwidth") * factor end)
+ registerdirect("PrintPaperHeight", function() return getdimen("printpaperheight") * factor end)
+ registerdirect("PrintPaperWidth", function() return getdimen("printpaperwidth") * factor end)
+ registerdirect("BackSpace", function() return getdimen("backspace") * factor end)
+ registerdirect("CutSpace", function() return getdimen("cutspace") * factor end)
+
+ registerdirect("LeftEdgeWidth", function() return getdimen("leftedgewidth") * factor end)
+ registerdirect("LeftEdgeDistance", function() return getdimen("leftedgedistance") * factor end)
+ registerdirect("LeftMarginWidth", function() return getdimen("leftmarginwidth") * factor end)
+ registerdirect("LeftMarginDistance", function() return getdimen("leftmargindistance") * factor end)
+ registerdirect("RightMarginDistance", function() return getdimen("rightmargindistance") * factor end)
+ registerdirect("RightMarginWidth", function() return getdimen("rightmarginwidth") * factor end)
+ registerdirect("RightEdgeDistance", function() return getdimen("rightedgedistance") * factor end)
+ registerdirect("RightEdgeWidth", function() return getdimen("rightedgewidth") * factor end)
+
+ -- leftmargintotal rightmargintotal -- not yet
+ -- leftedgetotal rightedgetotal
+ -- leftsidetotal rightsidetotal
+ -- leftcombitotal rightcombitotal
+ -- innermargintotal outermargintotal
+ -- inneredgetotal outeredgetotal
+ -- innercombitotal outercombitotal
+ -- innersidetotal outersidetotal
+
+ local d_leftedgewidth = isdimen("leftedgewidth")
+ local d_leftedgedistance = isdimen("leftedgedistance")
+ local d_leftmarginwidth = isdimen("leftmarginwidth")
+ local d_leftmargindistance = isdimen("leftmargindistance")
+ local d_rightmargindistance = isdimen("rightmargindistance")
+ local d_rightmarginwidth = isdimen("rightmarginwidth")
+ local d_rightedgedistance = isdimen("rightedgedistance")
+ local d_rightedgewidth = isdimen("rightedgewidth")
+
+ registerdirect("InnerMarginDistance", function() return getdimen(d_leftmargindistance ) * factor end)
+ registerdirect("InnerMarginWidth", function() return getdimen(d_leftmarginwidth ) * factor end)
+ registerdirect("OuterMarginDistance", function() return getdimen(d_rightmargindistance) * factor end)
+ registerdirect("OuterMarginWidth", function() return getdimen(d_rightmarginwidth ) * factor end)
+ registerdirect("InnerEdgeDistance", function() return getdimen(d_leftmargindistance ) * factor end)
+ registerdirect("InnerEdgeWidth", function() return getdimen(d_leftmarginwidth ) * factor end)
+ registerdirect("OuterEdgeDistance", function() return getdimen(d_rightedgedistance ) * factor end)
+ registerdirect("OuterEdgeWidth", function() return getdimen(d_rightedgewidth ) * factor end)
+
+ -- local onrightpage = structures.pages.on_right
+
+ -- registerdirect("InnerMarginDistance", function() return getdimen(onrightpage() and "leftmargindistance" or "rightmargindistance") * factor end)
+ -- registerdirect("InnerMarginWidth", function() return getdimen(onrightpage() and "leftmarginwidth" or "rightmarginwidth" ) * factor end)
+ -- registerdirect("OuterMarginDistance", function() return getdimen(onrightpage() and "rightmargindistance" or "leftmargindistance" ) * factor end)
+ -- registerdirect("OuterMarginWidth", function() return getdimen(onrightpage() and "rightmarginwidth" or "leftmarginwidth" ) * factor end)
+ -- registerdirect("InnerEdgeDistance", function() return getdimen(onrightpage() and "leftmargindistance" or "rightmargindistance") * factor end)
+ -- registerdirect("InnerEdgeWidth", function() return getdimen(onrightpage() and "leftmarginwidth" or "rightmarginwidth" ) * factor end)
+ -- registerdirect("OuterEdgeDistance", function() return getdimen(onrightpage() and "rightedgedistance" or "leftedgedistance" ) * factor end)
+ -- registerdirect("OuterEdgeWidth", function() return getdimen(onrightpage() and "rightedgewidth" or "leftedgewidth" ) * factor end)
+
+ -- These have stable d_ numbers.
+
+ local d_topspace = isdimen("topspace") registerdirect("TopSpace", function() return getdimen(d_topspace) * factor end)
+ local d_bottomspace = isdimen("bottomspace") registerdirect("BottomSpace", function() return getdimen(d_bottomspace) * factor end)
+ local d_makeupheight = isdimen("makeupheight") registerdirect("MakeupHeight", function() return getdimen(d_makeupheight) * factor end)
+ local d_makeupwidth = isdimen("makeupwidth") registerdirect("MakeupWidth", function() return getdimen(d_makeupwidth) * factor end)
+ local d_topheight = isdimen("topheight") registerdirect("TopHeight", function() return getdimen(d_topheight) * factor end)
+ local d_topdistance = isdimen("topdistance") registerdirect("TopDistance", function() return getdimen(d_topdistance) * factor end)
+ local d_headerheight = isdimen("headerheight") registerdirect("HeaderHeight", function() return getdimen(d_headerheight) * factor end)
+ local d_headerdistance = isdimen("headerdistance") registerdirect("HeaderDistance", function() return getdimen(d_headerdistance) * factor end)
+ local d_textheight = isdimen("textheight") registerdirect("TextHeight", function() return getdimen(d_textheight) * factor end)
+ local d_footerdistance = isdimen("footerdistance") registerdirect("FooterDistance", function() return getdimen(d_footerdistance) * factor end)
+ local d_footerheight = isdimen("footerheight") registerdirect("FooterHeight", function() return getdimen(d_footerheight) * factor end)
+ local d_bottomdistance = isdimen("bottomdistance") registerdirect("BottomDistance", function() return getdimen(d_bottomdistance) * factor end)
+ local d_bottomheight = isdimen("bottomheight") registerdirect("BottomHeight", function() return getdimen(d_bottomheight) * factor end)
+ local d_textwidth = isdimen("textwidth") registerdirect("TextWidth", function() return getdimen(d_textwidth) * factor end)
+
+end
+
+do
+
+ local d_pagebackgroundoffset = isdimen("pagebackgroundoffset") registerdirect("PageOffset", function() return getdimen(d_pagebackgroundoffset) * factor end)
+ local d_pagebackgrounddepth = isdimen("pagebackgrounddepth") registerdirect("PageDepth", function() return getdimen(d_pagebackgrounddepth) * factor end)
+ local c_layoutcolumns = iscount("layoutcolumns") registerdirect("LayoutColumns", function() return getcount(c_layoutcolumns) end)
+ local d_layoutcolumndistance = isdimen("layoutcolumndistance") registerdirect("LayoutColumnDistance", function() return getdimen(d_layoutcolumndistance) * factor end)
+ local d_layoutcolumnwidth = isdimen("layoutcolumnwidth") registerdirect("LayoutColumnWidth", function() return getdimen(d_layoutcolumnwidth) * factor end)
+ local d_spinewidth = isdimen("spinewidth") registerdirect("SpineWidth", function() return getdimen(d_spinewidth) * factor end)
+ local d_paperbleed = isdimen("paperbleed") registerdirect("PaperBleed", function() return getdimen(d_paperbleed) * factor end)
+
+end
+
+do
+
+ local c_realpageno = iscount("realpageno") registerdirect("RealPageNumber", function() return getcount(c_realpageno) end)
+ local c_lastpageno = iscount("lastpageno") registerdirect("LastPageNumber", function() return getcount(c_lastpageno) end)
+
+ local c_userpageno = iscount("userpageno") registerdirect("PageNumber", function() return getcount(c_userpageno) end)
+ local c_lastpageno = iscount("lastpageno") registerdirect("NOfPages", function() return getcount(c_lastpageno) end)
+
+ local c_subpageno = iscount("subpageno") registerdirect("SubPageNumber", function() return getcount(c_subpageno) end)
+ local c_lastsubpageno = iscount("lastsubpageno") registerdirect("NOfSubPages", function() return getcount(c_lastsubpageno) end)
+
+ local c_mofcolumns = iscount("mofcolumns") registerdirect("CurrentColumn", function() return getcount(c_mofcolumns) end)
+ local c_nofcolumns = iscount("nofcolumns") registerdirect("NOfColumns", function() return getcount(c_nofcolumns) end)
+
+end
+
+do
+
+ registerdirect("BaseLineSkip", function() return get("baselineskip",true) * factor end)
+ registerdirect("TopSkip", function() return get("topskip",true) * factor end)
+ registerdirect("CurrentWidth", function() return get("hsize") * factor end)
+ registerdirect("CurrentHeight", function() return get("vsize") * factor end)
+ registerdirect("HSize", function() return get("hsize") * factor end)
+ registerdirect("VSize", function() return get("vsize") * factor end)
+
+ local emwidths = fonts.hashes.emwidths
+ local exheights = fonts.hashes.exheights
+
+ registerdirect("EmWidth", function() return emwidths [false] * factor end)
+ registerdirect("ExHeight", function() return exheights[false] * factor end)
end
-registerscript("PaperHeight", function() return getdimen("paperheight") * factor end)
-registerscript("PaperWidth", function() return getdimen("paperwidth") * factor end)
-registerscript("PrintPaperHeight", function() return getdimen("printpaperheight") * factor end)
-registerscript("PrintPaperWidth", function() return getdimen("printpaperwidth") * factor end)
-registerscript("TopSpace", function() return getdimen("topspace") * factor end)
-registerscript("BottomSpace", function() return getdimen("bottomspace") * factor end)
-registerscript("BackSpace", function() return getdimen("backspace") * factor end)
-registerscript("CutSpace", function() return getdimen("cutspace") * factor end)
-registerscript("MakeupHeight", function() return getdimen("makeupheight") * factor end)
-registerscript("MakeupWidth", function() return getdimen("makeupwidth") * factor end)
-registerscript("TopHeight", function() return getdimen("topheight") * factor end)
-registerscript("TopDistance", function() return getdimen("topdistance") * factor end)
-registerscript("HeaderHeight", function() return getdimen("headerheight") * factor end)
-registerscript("HeaderDistance", function() return getdimen("headerdistance") * factor end)
-registerscript("TextHeight", function() return getdimen("textheight") * factor end)
-registerscript("FooterDistance", function() return getdimen("footerdistance") * factor end)
-registerscript("FooterHeight", function() return getdimen("footerheight") * factor end)
-registerscript("BottomDistance", function() return getdimen("bottomdistance") * factor end)
-registerscript("BottomHeight", function() return getdimen("bottomheight") * factor end)
-registerscript("LeftEdgeWidth", function() return getdimen("leftedgewidth") * factor end)
-registerscript("LeftEdgeDistance", function() return getdimen("leftedgedistance") * factor end)
-registerscript("LeftMarginWidth", function() return getdimen("leftmarginwidth") * factor end)
-registerscript("LeftMarginDistance", function() return getdimen("leftmargindistance") * factor end)
-registerscript("TextWidth", function() return getdimen("textwidth") * factor end)
-registerscript("RightMarginDistance", function() return getdimen("rightmargindistance") * factor end)
-registerscript("RightMarginWidth", function() return getdimen("rightmarginwidth") * factor end)
-registerscript("RightEdgeDistance", function() return getdimen("rightedgedistance") * factor end)
-registerscript("RightEdgeWidth", function() return getdimen("rightedgewidth") * factor end)
-registerscript("InnerMarginDistance", function() return getdimen("innermargindistance") * factor end)
-registerscript("InnerMarginWidth", function() return getdimen("innermarginwidth") * factor end)
-registerscript("OuterMarginDistance", function() return getdimen("outermargindistance") * factor end)
-registerscript("OuterMarginWidth", function() return getdimen("outermarginwidth") * factor end)
-registerscript("InnerEdgeDistance", function() return getdimen("inneredgedistance") * factor end)
-registerscript("InnerEdgeWidth", function() return getdimen("inneredgewidth") * factor end)
-registerscript("OuterEdgeDistance", function() return getdimen("outeredgedistance") * factor end)
-registerscript("OuterEdgeWidth", function() return getdimen("outeredgewidth") * factor end)
-registerscript("PageOffset", function() return getdimen("pagebackgroundoffset") * factor end)
-registerscript("PageDepth", function() return getdimen("pagebackgrounddepth") * factor end)
-registerscript("LayoutColumns", function() return getcount("layoutcolumns") end)
-registerscript("LayoutColumnDistance", function() return getdimen("layoutcolumndistance") * factor end)
-registerscript("LayoutColumnWidth", function() return getdimen("layoutcolumnwidth") * factor end)
-registerscript("SpineWidth", function() return getdimen("spinewidth") * factor end)
-registerscript("PaperBleed", function() return getdimen("paperbleed") * factor end)
-
-registerscript("RealPageNumber", function() return getcount("realpageno") end)
-registerscript("LastPageNumber", function() return getcount("lastpageno") end)
-
-registerscript("PageNumber", function() return getcount("pageno") end)
-registerscript("NOfPages", function() return getcount("lastpageno") end)
-
-registerscript("SubPageNumber", function() return getcount("subpageno") end)
-registerscript("NOfSubPages", function() return getcount("lastsubpageno") end)
-
-registerscript("CurrentColumn", function() return getcount("mofcolumns") end)
-registerscript("NOfColumns", function() return getcount("nofcolumns") end)
-
-registerscript("BaseLineSkip", function() return get ("baselineskip",true) * factor end)
-registerscript("LineHeight", function() return getdimen("lineheight") * factor end)
-registerscript("BodyFontSize", function() return getdimen("bodyfontsize") * factor end)
-
-registerscript("TopSkip", function() return get ("topskip",true) * factor end)
-registerscript("StrutHeight", function() return getdimen("strutht") * factor end)
-registerscript("StrutDepth", function() return getdimen("strutdp") * factor end)
-
-registerscript("PageNumber", function() return getcount("pageno") end)
-registerscript("RealPageNumber", function() return getcount("realpageno") end)
-registerscript("NOfPages", function() return getcount("lastpageno") end)
-
-registerscript("CurrentWidth", function() return get ("hsize") * factor end)
-registerscript("CurrentHeight", function() return get ("vsize") * factor end)
-
-registerscript("EmWidth", function() return emwidths [false] * factor end)
-registerscript("ExHeight", function() return exheights[false] * factor end)
-
-registerscript("HSize", function() return get ("hsize") * factor end)
-registerscript("VSize", function() return get ("vsize") * factor end)
-registerscript("LastPageNumber", function() return getcount("lastpageno") end)
-
-registerscript("OverlayWidth", function() return getdimen("d_overlay_width") * factor end)
-registerscript("OverlayHeight", function() return getdimen("d_overlay_height") * factor end)
-registerscript("OverlayDepth", function() return getdimen("d_overlay_depth") * factor end)
-registerscript("OverlayLineWidth", function() return getdimen("d_overlay_linewidth") * factor end)
-registerscript("OverlayOffset", function() return getdimen("d_overlay_offset") * factor end)
-registerscript("OverlayRegion", function() mpstring(getmacro("m_overlay_region")) end)
---------------("CurrentLayout", function() mpstring(getmacro("currentlayout")) end)
-
--- should be direct
---
--- registerscript("PageFraction", page_fraction)
-
-registerscript("PageFraction", function() return mpboolean(page_fraction ()) end)
-registerscript("OnRightPage", function() return mpboolean(on_right_page ()) end)
-registerscript("OnOddPage", function() return mpboolean(is_odd_page ()) end)
-registerscript("InPageBody", function() return mpboolean(in_body_page ()) end)
-registerscript("LayoutHasChanged", function() return mpboolean(layout_has_changed()) end)
-
-registerscript("defaultcolormodel", defaultcolormodel)
+do
+
+ local d_lineheight = isdimen("lineheight") registerdirect("LineHeight", function() return getdimen(d_lineheight) * factor end)
+ local d_bodyfontsize = isdimen("bodyfontsize") registerdirect("BodyFontSize", function() return getdimen(d_bodyfontsize) * factor end)
+ local d_strutht = isdimen("strutht") registerdirect("StrutHeight", function() return getdimen(d_strutht) * factor end)
+ local d_strutdp = isdimen("strutdp") registerdirect("StrutDepth", function() return getdimen(d_strutdp) * factor end)
+
+end
+
+do
+
+ local d_overlay_width = isdimen("d_overlay_width") registerdirect("OverlayWidth", function() return getdimen(d_overlay_width) * factor end)
+ local d_overlay_height = isdimen("d_overlay_height") registerdirect("OverlayHeight", function() return getdimen(d_overlay_height) * factor end)
+ local d_overlay_depth = isdimen("d_overlay_depth") registerdirect("OverlayDepth", function() return getdimen(d_overlay_depth) * factor end)
+ local d_overlay_linewidth = isdimen("d_overlay_linewidth") registerdirect("OverlayLineWidth", function() return getdimen(d_overlay_linewidth) * factor end)
+ local d_overlay_offset = isdimen("d_overlay_offset") registerdirect("OverlayOffset", function() return getdimen(d_overlay_offset) * factor end)
+ registerdirect("OverlayRegion", function() return getmacro("m_overlay_region") end)
+ registerdirect("CurrentLayout", function() return getmacro("currentlayout") end)
+ registerdirect("OverlayColor", function() return getmacro("overlaycolor") end)
+ registerdirect("OverlayLineColor", function() return getmacro("overlaylinecolor") end)
+
+end
+
+do
+
+ registerdirect("LastChangedLayoutPage",function() return getcount("c_page_layouts_changed") end)
+ registerdirect("SwapMarginDimensions", function() token.expandmacro("swapmargindimensions") end)
+
+ registerdirect("PageFraction", structures.pages.fraction)
+ registerdirect("OnRightPage", structures.pages.on_right)
+ registerdirect("OnOddPage", structures.pages.is_odd)
+ registerdirect("InPageBody", structures.pages.in_body)
+ --------------("LayoutHasChanged", structures.pages.has_changed)
+
+end
+
+do
+
+ local function defaultcolormodel() -- can be helper
+ local colormethod = getcount("MPcolormethod")
+ return (colormethod == 0 or colormethod == 1) and 1 or 3
+ end
+
+ registerdirect("defaultcolormodel", defaultcolormodel)
+
+end
+
+do
+
+ -- see node-rul.*
+ -- offset is a multiplier
+ -- factor is the amount
+
+ -- TODO: dimensions are yet undefined so we will move this
+
+ registerdirect("RuleWidth", function() return getdimen("d_rule_width") * factor end)
+ registerdirect("RuleHeight", function() return getdimen("d_rule_height") * factor end)
+ registerdirect("RuleDepth", function() return getdimen("d_rule_depth") * factor end)
+ registerdirect("RuleH", function() return getdimen("d_rule_h") * factor end)
+ registerdirect("RuleV", function() return getdimen("d_rule_v") * factor end)
+ registerdirect("RuleThickness", function() return getdimen("d_rule_line") * factor end)
+ registerdirect("RuleOffset", function() return getdimen("d_rule_offset") / 65536 end) -- not factor
+ registerdirect("RuleDirection", function() return getmacro("m_rule_direction") end)
+ registerdirect("RuleFactor", function() return getdimen("d_rule_factor") * factor end)
+ registerdirect("RuleOption", function() return getmacro("m_rule_option") end)
+ registerscript("RuleColor", function() return getmacro("m_rule_color") end)
+
+end
+
+-- see typo-ada.*
+
+do
+
+ local d_adaptive_width = isdimen("d_adaptive_width") registerdirect("AdaptiveWidth", function() return getdimen(d_adaptive_width) * factor end)
+ local d_adaptive_height = isdimen("d_adaptive_height") registerdirect("AdaptiveHeight", function() return getdimen(d_adaptive_height) * factor end)
+ local d_adaptive_depth = isdimen("d_adaptive_depth") registerdirect("AdaptiveDepth", function() return getdimen(d_adaptive_depth) * factor end)
+ local d_adaptive_line = isdimen("d_adaptive_line") registerdirect("AdaptiveThickness", function() return getdimen(d_adaptive_line) * factor end)
+ registerdirect("AdaptiveColor", function() return getmacro("m_adaptive_color") end)
+
+ registerdirect("AdaptiveTotal", function()
+ return (getdimen(d_adaptive_height) + getdimen(d_adaptive_depth)) * factor
+ end)
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-lmp.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-lmp.lmt
index 2b3e910babd..db23fcedecb 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-lmp.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-lmp.lmt
@@ -8,69 +8,145 @@ if not modules then modules = { } end modules ['mlib-lmp'] = {
-- path relates stuff ... todo: use a stack (or numeric index to list)
-local type = type
+local type, tonumber, tostring = type, tonumber, tostring
+local find, match = string.find, string.match
+local insert, remove, sort = table.insert, table.remove, table.sort
local aux = mp.aux
local mpnumeric = aux.numeric
local mppair = aux.pair
+local registerdirect = metapost.registerdirect
local registerscript = metapost.registerscript
local scan = mp.scan
+local skip = mp.skip
local get = mp.get
+local inject = mp.inject
+
local scannumber = scan.number
local scanstring = scan.string
+local scaninteger = scan.integer
+local scannumeric = scan.numeric
+local scanwhatever = scan.whatever
local scanpath = scan.path
local scanproperty = scan.property
+
local gethashentry = get.hashentry
-local p = nil
-local n = 0
+local bpfactor = number.dimenfactors.bp
-registerscript("pathreset", function()
- p = nil
- n = 0
-end)
+local injectwhatever = inject.whatever
+local injectboolean = inject.boolean
+local injectnumeric = inject.numeric
+local injectstring = inject.string
+local injectpair = inject.pair
+local injectpath = inject.path
-registerscript("pathlengthof", function()
- p = scanpath()
- n = p and #p or 1
- mpnumeric(n)
-end)
+local injectwhd = inject.whd -- scaled
+local injectxy = inject.xy
+local injectpt = inject.pt
-registerscript("pathpointof", function()
- local i = scannumber()
- if i > 0 and i <= n then
- local pi = p[i]
- mppair(pi[1],pi[2])
- end
-end)
+local report = logs.reporter("metapost", "log")
+local report_message = logs.reporter("metapost")
-registerscript("pathleftof", function()
- local i = scannumber()
- if i > 0 and i <= n then
- local pi = p[i]
- mppair(pi[5],pi[6])
- end
-end)
+local codes = metapost.codes
+local types = metapost.types
+local procodes = mplib.propertycodes
-registerscript("pathrightof", function()
- local i = scannumber()
- if i > 0 and i <= n then
- local pn
- if i == 1 then
- pn = p[2] or p[1]
- else
- pn = p[i+1] or p[1]
+local implement = interfaces.implement
+
+do
+
+ local function s(a,b)
+ local aa = a[1]
+ local bb = b[1]
+ if aa == bb then
+ aa = a[2]
+ bb = b[2]
end
- mppair(pn[3],pn[4])
+ return aa < bb
end
-end)
-local report = logs.reporter("metapost", "log")
-local codes = metapost.codes
-local types = metapost.types
-local procodes = mplib.propertycodes
+ registerscript("sortedpath", function()
+ local p = scanpath()
+ for i=1,#p do
+ local pi = p[i]
+ p[i] = { pi[1], pi[2] }
+ end
+ sort(p,s)
+ injectpath(p)
+ end)
+
+ registerscript("uniquepath", function()
+ local p = scanpath()
+ local u = { }
+ local n = 0
+ local xx = nil
+ local yy = nil
+ sort(p,s)
+ for i=1,#p do
+ local pi = p[i]
+ local x = pi[1]
+ local y = pi[2]
+ if x ~= xx or y ~= yy then
+ n = n + 1
+ u[n] = { x, y }
+ xx = x
+ yy = y
+ end
+ end
+ injectpath(u)
+ end)
+
+end
+
+do
+
+ local p = nil
+ local n = 0
+
+ registerscript("pathreset", function()
+ p = nil
+ n = 0
+ end)
+
+ registerdirect("pathlengthof", function()
+ p = scanpath()
+ n = p and #p or 1
+ return n
+ end)
+
+ registerdirect("pathpointof", function()
+ local i = scaninteger()
+ if i > 0 and i <= n then
+ local pi = p[i]
+ injectpair(pi[1],pi[2])
+ end
+ end)
+
+ registerdirect("pathleftof", function()
+ local i = scaninteger()
+ if i > 0 and i <= n then
+ local pi = p[i]
+ injectpair(pi[5],pi[6])
+ end
+ end)
+
+ registerdirect("pathrightof", function()
+ local i = scaninteger()
+ if i > 0 and i <= n then
+ local pn
+ if i == 1 then
+ pn = p[2] or p[1]
+ else
+ pn = p[i+1] or p[1]
+ end
+ injectpair(pn[3],pn[4])
+ end
+ end)
+
+end
registerscript("showproperty", function()
local k, s, p, d = scanproperty()
@@ -89,16 +165,480 @@ registerscript("showhashentry", function()
end
end)
-local getmacro = tokens.getters.macro
-local mpgnamespace = getmacro("??graphicvariable")
+-- local getmacro = tokens.getters.macro
+-- local mpgnamespace = getmacro("??graphicvariable")
+
+-- registerscript("mpv_numeric", function() injectnumeric (getmacro(mpgnamespace .. getmacro("currentmpcategory") .. ":" .. scanmpstring())) end)
+-- registerscript("mpv_dimension", function() return getmacro(mpgnamespace .. getmacro("currentmpcategory") .. ":" .. scanmpstring()) end)
+-- registerscript("mpv_string", function() injectstring (getmacro(mpgnamespace .. getmacro("currentmpcategory") .. ":" .. scanmpstring())) end)
+
+-- registerscript("mpvar", function() return getmacro(mpgnamespace .. getmacro("currentmpcategory") .. ":" .. scanmpstring(), true) end) -- Isn't it already edef'd?
+-- registerscript("mpvar", function() return getmacro(metapost.namespace .. scanmpstring(), true) end) -- Isn't it already edef'd?
+
+do
+
+ local expandtex = mp.expandtex
+
+ local tokenvalues = tokens.values
+ local dimension_value = tokenvalues.dimension
+ local integer_value = tokenvalues.integer
+ local boolean_value = tokenvalues.boolean
+ local string_value = tokenvalues.string
+ local unknown_value = tokenvalues.none
+
+ registerdirect("mpvard", function()
+ if not expandtex(dimension_value,"mpcategoryparameter",true,scanstring()) then
+ injectnumeric(0)
+ end
+ end)
+
+ registerdirect("mpvarn", function()
+ if not expandtex(integer_value,"mpcategoryparameter",true,scanstring()) then
+ injectnumeric(0)
+ end
+ end)
+
+ registerdirect("mpvars", function()
+ if not expandtex(string_value,"mpcategoryparameter",true,scanstring()) then
+ injectstring("")
+ end
+ end)
+
+ registerdirect("mpvarb", function()
+ if not expandtex(boolean_value,"mpcategoryparameter",true,scanstring()) then
+ injectboolean(false)
+ end
+ end)
+
+ registerdirect("mpvar", function()
+ if not expandtex(unknown_value,"mpcategoryparameter",true,scanstring()) then
+ injectnumeric(0)
+ end
+ end)
+
+ -- older:
+
+ registerscript("texvar", function()
+ if not expandtex(unknown_value,"mpcategoryparameter",true,scanstring()) then
+ injectnumeric(0)
+ end
+ end)
+
+ registerscript("texstr", function()
+ if not expandtex(string_value,"mpcategoryparameter",true,scanstring()) then
+ injectstring("")
+ end
+ end)
+
+end
+
+do
+
+ registerscript("textextanchor", function()
+ local x, y = match(scanstring(),"tx_anchor=(%S+) (%S+)") -- todo: make an lpeg
+ if x and y then
+ x = tonumber(x)
+ y = tonumber(y)
+ end
+ injectpair(x or 0,y or 0)
+ end)
+
+end
+
+do
+
+ local mpnamedcolor = attributes.colors.mpnamedcolor
+ local mpprint = mp.aux.print
+
+ mp.mf_named_color = function(str)
+ mpprint(mpnamedcolor(str))
+ end
+
+ -- todo: we can inject but currently we always get a string back so then
+ -- we need to deal with it upstream in the color module ... not now
+
+ registerscript("namedcolor",function() mpprint(mpnamedcolor(scanstring())) end)
+
+end
+
+do
+
+ local hashes = table.setmetatableindex("table")
+
+ -- There is no need to 'new' a hash in which case one can use any reasonable
+ -- tag. The registry aproach is mkiv compatible.
+
+ local registery = { }
+
+ -- registerdirect("lmt_hash_new", function()
+ -- -- local name = scanstring()
+ -- local name = scanwhatever()
+ -- hashes[name] = { }
+ -- end)
+
+ registerdirect("lmt_hash_new", function()
+ for i=1,#registry + 1 do
+ if not registry[i] then
+ registry[i] = { }
+ injectwhatever(i)
+ end
+ end
+ end)
+
+ registerdirect("lmt_hash_dispose", function()
+ -- local name = scanstring()
+ local name = scanwhatever()
+ hashes[name] = nil
+ -- when new'd
+ if registry[name] then
+ registry[name] = false
+ end
+ end)
+
+ registerdirect("lmt_hash_in", function()
+ -- local name = scanstring()
+ local name = scanwhatever()
+ -- local key = scanstring()
+ local key = scanwhatever()
+ local hash = hashes[name]
+ injectwhatever(hash and hash[key] and true or false)
+ end)
+
+ registerdirect("lmt_hash_to", function()
+ -- local name = scanstring()
+ local name = scanwhatever()
+ -- local key = scanstring()
+ local key = scanwhatever()
+ local value = scanwhatever()
+ local hash = hashes[name]
+ if hash then
+ hash[key] = value
+ end
+ end)
+
+ registerdirect("lmt_hash_from", function()
+ -- local name = scanstring()
+ local name = scanwhatever()
+ -- local key = scanstring()
+ local key = scanwhatever()
+ local hash = hashes[name]
+ injectwhatever(hash and hash[key] or false)
+ end)
+
+ interfaces.implement {
+ name = "MPfromhash",
+ arguments = "2 strings",
+ actions = function(name,key)
+ local hash = hashes[name] or hashes[tonumber(name)] or hashes[tostring(name)]
+ if hash then
+ local v = hash[key]
+ if v then
+ context(v)
+ end
+ end
+ end
+ }
+
+end
+
+do
+
+ local bpfactor = number.dimenfactors.bp
+ local nbdimensions = nodes.boxes.dimensions
+
+ registerdirect("boxdimensions", function()
+ local category = scanstring()
+ local index = scanwhatever()
+ injectwhd(nbdimensions(category,index))
+ end)
+
+end
+
+do
+
+ local skiptoken = skip.token
+
+ local comma_code = codes.comma
+
+ local getmacro = tokens.getters.macro
+ local setmacro = tokens.setters.macro
+
+ local getdimen = tex.getdimen
+ local getcount = tex.getcount
+ local gettoks = tex.gettoks
+ local setdimen = tex.setdimen
+ local setcount = tex.setcount
+ local settoks = tex.settoks
+
+ -- more helpers
+
+ registerdirect("getmacro", function() return getmacro(scanstring()) end)
+ registerdirect("getcount", function() return getcount(scanwhatever()) end)
+ registerdirect("gettoks", function() return gettoks (scanwhatever()) end)
+ registerdirect("getdimen", function() return getdimen(scanwhatever()) * bpfactor end)
+
+ registerscript("setmacro", function() setmacro(scanstring(),scanstring()) end)
+ registerscript("setdimen", function() setdimen(scanwhatever(),scannumeric()/bpfactor) end)
+ registerscript("setcount", function() setcount(scanwhatever(),scannumeric()) end)
+ registerscript("settoks", function() settoks (scanwhatever(),scanstring()) end)
+
+ registerscript("setglobalmacro", function() setmacro(scanstring(),scanstring(),"global") end)
+ registerscript("setglobaldimen", function() setdimen("global",scanwhatever(),scannumeric()/bpfactor) end)
+ registerscript("setglobalcount", function() setcount("global",scanwhatever(),scaninteger()) end)
+ registerscript("setglobaltoks", function() settoks ("global",scanwhatever(),scanstring()) end)
+
+ local utfnum = utf.byte
+ local utflen = utf.len
+ local utfsub = utf.sub
+
+ registerdirect("utfnum", function() return utfnum(scanstring()) end)
+ registerdirect("utflen", function() return utflen(scanstring()) end)
+
+ registerdirect("utfsub", function() -- we have an optional third argument so we explicitly scan a text argument
+ return utfsub(scanstring(),skiptoken(comma_code) and scannumeric(),skiptoken(comma_code) and scannumeric())
+ end)
+
+ local setlogging = metapost.setlogging
+
+ registerscript("message", function()
+ setlogging(false)
+ local str = scanstring()
+ setlogging(true)
+ report_message("message : %s",str)
+ end)
+
+end
+
+-- position fun
+
+do
+
+ local getcount = tex.getcount
+
+ local mpprint = mp.print
+ local mpfprint = mp.fprint
+
+ local mpscaninteger = mp.scan.integer
+ local mpscannumber = mp.scan.number
+
+ local jobpositions = job.positions
+ local getwhd = jobpositions.whd
+ local getxy = jobpositions.xy
+ local getx = jobpositions.x
+ local gety = jobpositions.y
+ local getposition = jobpositions.position
+ local getpage = jobpositions.page
+ local getparagraph = jobpositions.paragraph
+ local getregion = jobpositions.region
+ local getcolumn = jobpositions.column
+ local getmacro = tokens.getters.macro
+
+ local columnofpos = jobpositions.columnofpos
+ local getcolumndata = jobpositions.getcolumndata
+ -- local overlapping = jobpositions.overlapping
+ -- local onsamepage = jobpositions.onsamepage
+ -- local columnofpos = jobpositions.columnofpos
+
+ -- why not inject path directly
+
+ registerscript("positionpath", function()
+ local w, h, d = getwhd(scanstring())
+ if w then
+ mpfprint("((%p,%p)--(%p,%p)--(%p,%p)--(%p,%p)--cycle)",0,-d,w,-d,w,h,0,h)
+ else
+ mpprint("(origin--cycle)")
+ end
+ end)
+
+ registerscript("positioncurve", function()
+ local w, h, d = getwhd(scanstring())
+ if w then
+ mpfprint("((%p,%p)..(%p,%p)..(%p,%p)..(%p,%p)..cycle)",0,-d,w,-d,w,h,0,h)
+ else
+ mpprint("(origin--cycle)")
+ end
+ end)
+
+ registerscript("positionbox", function()
+ local p, x, y, w, h, d = getposition(scanstring())
+ if p then
+ mpfprint("((%p,%p)--(%p,%p)--(%p,%p)--(%p,%p)--cycle)",x,y-d,x+w,y-d,x+w,y+h,x,y+h)
+ else
+ mpprint("(%p,%p)--cycle",x or 0,y or 0)
+ end
+ end)
+
+ registerscript("positioncolumnbox", function()
+ local column = mpscaninteger()
+ local data = getcolumndata(getcount("realpageno"),column)
+ if data then
+ local x, y, w, h, d = data.x, data.y, data.w, data.h, data.d
+ mpfprint("((%p,%p)--(%p,%p)--(%p,%p)--(%p,%p)--cycle)",x,y-d,x+w,y-d,x+w,y+h,x,y+h)
+ else
+ mpprint("(0,0)--cycle")
+ end
+ end)
+
+ registerscript("overlaycolumnbox", function()
+ local column = mpscaninteger()
+ local data = getcolumndata(getcount("realpageno"),column)
+ if data then
+ local w, hd = data.w, data.h + data.d
+ mpfprint("((0,0)--(%p,0)--(%p,%p)--(0,%p)--cycle)",w,w,hd,hd)
+ else
+ mpprint("(0,0)--cycle")
+ end
+ end)
+
+ registerdirect("positionpage", function() return getpage (scanstring()) or 0 end)
+ registerdirect("positioncolumn", function() return getcolumn (scanstring()) or 0 end)
+ registerdirect("positionparagraph", function() return getparagraph(scanstring()) or 0 end)
+ registerdirect("positionregion", function() return getregion (scanstring()) or "unknown" end)
+ registerdirect("positionanchor", function() return getmacro ("MPanchorid") end)
+ registerdirect("positionwhd", function() injectwhd(getwhd(scanstring())) end)
+ registerdirect("positionxy", function() injectxy (getxy (scanstring())) end)
+ registerdirect("positionx", function() injectpt (getx (scanstring())) end)
+ registerdirect("positiony", function() injectpt (gety (scanstring())) end)
+
+ registerdirect("positioncolumnatx", function()
+ local realpage = mpscaninteger()
+ local xposition = mpscannumber()
+ return columnofpos(realpage,xposition)
+ end)
+
+end
+
+do
+
+ local modes = tex.modes
+ local systemmodes = tex.systemmodes
+
+ registerdirect("mode", function() injectboolean(modes [scanstring()] and true or false) end)
+ registerdirect("systemmode", function() injectboolean(systemmodes[scanstring()] and true or false) end)
+
+ -- for compatibility reasons we keep this (metafun manual):
+
+ local modes = tex.modes
+ local systemmodes = tex.systemmodes
+
+ function mp.mode(s)
+ injectboolean(modes[s] and true or false)
+ end
+
+ function mp.systemmode(s)
+ injectboolean(systemmodes[s] and true or false)
+ end
+
+ mp.processingmode = mp.mode
+
+end
+
+-- for alan's nodes:
+
+do
+
+ local lpegmatch, lpegpatterns, P = lpeg.match, lpeg.patterns, lpeg.P
+
+ -- todo: scansuffix / why no return boolean (first one)
+
+ registerdirect("isarray", function()
+ injectboolean(find(scanstring(),"%d") and true or false)
+ end)
+
+ registerdirect("prefix", function()
+ local str = scanstring()
+ return match(str,"^(.-)[%d%[]") or str
+ end)
+
+ local dimension = lpeg.counter(P("[") * lpegpatterns.integer * P("]") + lpegpatterns.integer)
+
+ registerdirect("dimension", function() return dimension(scanstring()) end)
+
+ -- todo : share with mlib-pps.lua metapost,isobject
+
+ -- registerdirect("isobject", function()
+ -- injectboolean(find(scanstring(),"mf_object="))
+ -- end
+
+ local p1 = P("mf_object=")
+ local p2 = lpegpatterns.eol * p1
+ local pattern = (1-p2)^0 * p2 + p1
+
+ registerdirect("isobject", function()
+ local str = scanstring()
+ injectboolean(pattern and str ~= "" and lpegmatch(pattern,str))
+ end)
+
+end
+
+-- key/values (moved here, old mechanism)
+
+do
+
+ local stack, top = { }, nil
+
+ local function setvariable(k,v)
+ if top then
+ top[k] = v
+ else
+ metapost.variables[k] = v
+ end
+ end
+
+ local function pushvariable(k)
+ local t = { }
+ if top then
+ insert(stack,top)
+ top[k] = t
+ else
+ metapost.variables[k] = t
+ end
+ top = t
+ end
+
+ local function popvariable()
+ top = remove(stack)
+ end
+
+ registerscript("passvariable", function() setvariable (scanstring(), scanwhatever()) end)
+ registerscript("pushvariable", function() pushvariable(scanstring()) end)
+ registerscript("popvariable", function() popvariable () end)
+
+ local stack = { }
+
+ local function pushvariables()
+ insert(stack,metapost.variables)
+ metapost.variables = { }
+ end
+
+ local function popvariables()
+ metapost.variables = remove(stack) or metapost.variables
+ end
+
+ metapost.setvariable = setvariable
+ metapost.pushvariable = pushvariable
+ metapost.popvariable = popvariable
+ metapost.pushvariables = pushvariables
+ metapost.popvariables = popvariables
+
+ implement {
+ name = "mppushvariables",
+ actions = pushvariables,
+ }
+
+ implement {
+ name = "mppopvariables",
+ actions = popvariables,
+ }
+
+end
-local scanmpstring = mp.scan.string
+do
-local injectnumeric = mp.inject.numeric
-local injectstring = mp.inject.string
+ local repeatable = utilities.randomizer.repeatable
--- registerscript("mpv_numeric", function() injectnumeric (getmacro(mpgnamespace .. getmacro("currentmpvariableclass") .. ":" .. scanmpstring())) end)
--- registerscript("mpv_dimension", function() return getmacro(mpgnamespace .. getmacro("currentmpvariableclass") .. ":" .. scanmpstring()) end)
--- registerscript("mpv_string", function() injectstring (getmacro(mpgnamespace .. getmacro("currentmpvariableclass") .. ":" .. scanmpstring())) end)
+ registerdirect("repeatablerandom", function()
+ return repeatable(scanstring())
+ end)
-registerscript("mpvar", function() return getmacro(mpgnamespace .. getmacro("currentmpvariableclass") .. ":" .. scanmpstring(), true) end) -- Isn't it already edef'd?
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-lmt.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-lmt.lmt
index b7c869c3bac..ba86f075895 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-lmt.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-lmt.lmt
@@ -9,7 +9,7 @@ if not modules then modules = { } end modules ['mlib-lmt'] = {
-- todo: check for possible inject usage
local type = type
-local round = math.round
+local round, abs = math.round, math.abs
local aux = mp.aux
local mpdirect = aux.direct
@@ -79,6 +79,9 @@ end
function mp.lmt_svg_include()
local labelfile = metapost.getparameter { "labelfile" }
if labelfile and labelfile ~= "" then
+ labelfile = resolvers.findbinfile(labelfile)
+ end
+ if labelfile and labelfile ~= "" then
local labels = table.load(labelfile) -- todo: same path as svg file
if type(labels) == "table" then
for i=1,#labels do
@@ -103,8 +106,9 @@ function mp.lmt_svg_include()
end
local filename = metapost.getparameter { "filename" }
if filename and filename ~= "" then
+ local ok, data = resolvers.loadbinfile(filename)
mpdirect ( metapost.svgtomp {
- data = io.loaddata(filename),
+ data = data,
remap = true,
colormap = colormap,
id = filename,
@@ -132,7 +136,7 @@ function mp.lmt_svg_include()
end
registerscript("remaptext", function()
- local parameters = metapost.scanparameters()
+ local parameters = metapost.scanparameters(true) -- gobble the semi colon (avoid lookahead)
if parameters and parameters.label then
metapost.remaptext(parameters)
end
@@ -153,45 +157,40 @@ todecimal = xdecimal and xdecimal.new or tonumber -- bonus
-- mail on list by Mikael Sundqvist and Taco's analysis of near duplicate points (2021/02/11+)
-registerscript("scrutenized", function()
- local p = scanpath()
- local d = 10^scannumeric()
- for i=1,#p do
- local pi = p[i]
- pi[1] = round(pi[1] * d) / d
- pi[2] = round(pi[2] * d) / d
- end
- local x1 = round(p[1][1])
- local y1 = round(p[1][2])
- local n = 1
- local m = #p
- local t = { p[1], cycle = p.cycle }
- for i=2,m-1 do
- local pi = p[i]
- local x2 = r(pi[1])
- local y2 = r(pi[2])
- if x1 ~= x2 or y1 ~= y2 then
- n = n + 1
- t[n] = p[i]
+registerscript("scrutinized", function()
+ local pth = scanpath()
+ local d = 1/10^scannumeric() -- decimals
+ local p1 = pth[1]
+ local x1 = p1[1]
+ local y1 = p1[2]
+ local res = { pth[1] }
+ local r = 1
+ for i=2,#pth do
+ local pi = pth[i]
+ x2 = pi[1]
+ y2 = pi[2]
+ if abs(x1-x2) > d or abs(y1-y2) > d then
+ r = r + 1 res[r] = pi
x1 = x2
y1 = y2
+ else
+ res[r][5] = pi[5]
+ res[r][6] = pi[6]
end
end
- local x1 = r(p[1][1])
- local y1 = r(p[1][2])
- local x2 = r(p[m][1])
- local y2 = r(p[m][2])
- if x1 ~= x2 or y1 ~= y2 then
- n = n + 1
- t[n] = p[m]
+ if pth.cycle then
+ res.cycle = true
+ if abs(x1-p1[1]) > d or abs(y1-p1[2]) > d then
+ -- keep
+ else
+ res[r] = nil
+ end
end
- mp.path(t)
- -- injectpath(t)
+ injectpath(res)
end)
-- A goodie, mostly a side effect of updating the metafun manual.
-
local labtorgb = attributes.colors.labtorgb
registerscript("labtorgb", function()
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-lua.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-lua.lmt
index 068d17f32f9..19423e7b1d6 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-lua.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-lua.lmt
@@ -16,8 +16,6 @@ local report = logs.reporter("metapost","instance")
local codes = mplib.getcodes()
local types = mplib.gettypes()
--- for k,v in next, mplib do if type(v) == "function" then local f = v mplib[k] = function(...) print(k) return v(...) end end end
-
table.hashed(codes)
table.hashed(types)
@@ -29,85 +27,90 @@ local skip = mp.skip
local get = mp.get
local inject = mp.inject
+local bpfactor = number.dimenfactors.bp
local currentmpx = nil
local stack = { }
local function reports(s) report("%a scan %s", tostring(currentmpx),s) end -- temporary, till we're okay
local function reporti(s) report("%a inject %s",tostring(currentmpx),s) end -- temporary, till we're okay
-local scan_next = mplib.scan_next
-local scan_expression = mplib.scan_expression
-local scan_token = mplib.scan_token
-local scan_symbol = mplib.scan_symbol
-local scan_property = mplib.scan_property
-local scan_numeric = mplib.scan_numeric
-local scan_integer = mplib.scan_integer
-local scan_boolean = mplib.scan_boolean
-local scan_string = mplib.scan_string
-local scan_pair = mplib.scan_pair
-local scan_color = mplib.scan_color
-local scan_cmykcolor = mplib.scan_cmykcolor
-local scan_transform = mplib.scan_transform
-local scan_path = mplib.scan_path
-local scan_pen = mplib.scan_pen
-
-local skip_token = mplib.skip_token
-
-local get_hashentry = mplib.gethashentry
-
-scan.next = function(k) if trace then reporti("next") end return scan_next (currentmpx,k) end
-scan.expression = function(k) if trace then reporti("expression") end return scan_expression(currentmpx,k) end
-scan.token = function(k) if trace then reporti("token") end return scan_token (currentmpx,k) end
-scan.symbol = function(k,e) if trace then reporti("symbol") end return scan_symbol (currentmpx,k,e) end
-scan.property = function(k) if trace then reporti("property") end return scan_property (currentmpx,k) end
-scan.numeric = function() if trace then reporti("numeric") end return scan_numeric (currentmpx) end
-scan.integer = function() if trace then reporti("integer") end return scan_integer (currentmpx) end
-scan.boolean = function() if trace then reporti("boolean") end return scan_boolean (currentmpx) end
-scan.string = function() if trace then reporti("string") end return scan_string (currentmpx) end
-scan.pair = function(t) if trace then reporti("pair") end return scan_pair (currentmpx,t) end
-scan.color = function(t) if trace then reporti("color") end return scan_color (currentmpx,t) end
-scan.cmykcolor = function(t) if trace then reporti("cmykcolor") end return scan_cmykcolor (currentmpx,t) end
-scan.transform = function(t) if trace then reporti("transform") end return scan_transform (currentmpx,t) end
-scan.path = function(t) if trace then reporti("path") end return scan_path (currentmpx,t) end
-scan.pen = function(t) if trace then reporti("pen") end return scan_pen (currentmpx,t) end
-
-skip.token = function(t) return skip_token (currentmpx,t) end
-
-get.hashentry = function(n) return get_hashentry (currentmpx,n) end
+local scannext = mplib.scannext
+local scanexpression = mplib.scanexpression
+local scantoken = mplib.scantoken
+local scansymbol = mplib.scansymbol
+local scanproperty = mplib.scanproperty
+local scannumeric = mplib.scannumeric
+local scaninteger = mplib.scaninteger
+local scanboolean = mplib.scanboolean
+local scanstring = mplib.scanstring
+local scanpair = mplib.scanpair
+local scancolor = mplib.scancolor
+local scancmykcolor = mplib.scancmykcolor
+local scantransform = mplib.scantransform
+local scanpath = mplib.scanpath
+local scanpen = mplib.scanpen
+
+local skiptoken = mplib.skiptoken
+
+local gethashentry = mplib.gethashentry
+
+scan.next = function(k) if trace then reporti("next") end return scannext (currentmpx,k) end
+scan.expression = function(k) if trace then reporti("expression") end return scanexpression(currentmpx,k) end
+scan.token = function(k) if trace then reporti("token") end return scantoken (currentmpx,k) end
+scan.symbol = function(k,e) if trace then reporti("symbol") end return scansymbol (currentmpx,k,e) end
+scan.property = function(k) if trace then reporti("property") end return scanproperty (currentmpx,k) end
+scan.numeric = function() if trace then reporti("numeric") end return scannumeric (currentmpx) end
+scan.integer = function() if trace then reporti("integer") end return scaninteger (currentmpx) end
+scan.boolean = function() if trace then reporti("boolean") end return scanboolean (currentmpx) end
+scan.string = function() if trace then reporti("string") end return scanstring (currentmpx) end
+scan.pair = function(t) if trace then reporti("pair") end return scanpair (currentmpx,t) end
+scan.color = function(t) if trace then reporti("color") end return scancolor (currentmpx,t) end
+scan.cmykcolor = function(t) if trace then reporti("cmykcolor") end return scancmykcolor (currentmpx,t) end
+scan.transform = function(t) if trace then reporti("transform") end return scantransform (currentmpx,t) end
+scan.path = function(t,k,c) if trace then reporti("path") end return scanpath (currentmpx,t,k,c) end -- compact kind (prim) check
+scan.pen = function(t) if trace then reporti("pen") end return scanpen (currentmpx,t) end
+
+skip.token = function(t) return skiptoken (currentmpx,t) end
+get.hashentry = function(n) return gethashentry(currentmpx,n) end
local solvepath = mplib.solvepath
local getstatus = mplib.getstatus
-
-mp.solve = function(...)
- return solvepath(currentmpx,...)
-end
-
-local inject_path = mplib.inject_path
-local inject_numeric = mplib.inject_numeric
-local inject_pair = mplib.inject_pair
-local inject_boolean = mplib.inject_boolean
-local inject_integer = mplib.inject_integer
-local inject_string = mplib.inject_string
-local inject_color = mplib.inject_color
-local inject_cmykcolor = mplib.inject_cmykcolor
-local inject_transform = mplib.inject_transform
-local inject_whatever = mplib.inject_whatever
-
-
-------.path = function(t,cycle,curled) if trace then reporti("path") end return inject_path (currentmpx,t,cycle,curled) end
-inject.numeric = function(n) if trace then reporti("numeric") end return inject_numeric (currentmpx,n) end
-inject.pair = function(x,y) if trace then reporti("pair") end return inject_pair (currentmpx,x,y) end
-inject.boolean = function(b) if trace then reporti("boolean") end return inject_boolean (currentmpx,b) end
-inject.integer = function(i) if trace then reporti("integer") end return inject_integer (currentmpx,i) end
-inject.string = function(s) if trace then reporti("string") end return inject_string (currentmpx,s) end
-inject.color = function(r,g,b) if trace then reporti("color") end return inject_color (currentmpx,r,g,b) end
-inject.cmykcolor = function(c,m,y,k) if trace then reporti("cmykcolor") end return inject_cmykcolor(currentmpx,c,m,y,k) end
-inject.transform = function(x,y,xx,xy,yx,yy) if trace then reporti("transform") end return inject_transform(currentmpx,x,y,xx,xy,yx,yy) end
-inject.whatever = function(...) if trace then reporti("whatever") end return inject_whatever (currentmpx,...) end
+local expandtex = mplib.expandtex
+
+mp.solve = function(...) return solvepath(currentmpx,...) end
+mp.expandtex = function(...) return expandtex(currentmpx,...) end
+
+local injectpath = mplib.injectpath
+local injectnumeric = mplib.injectnumeric
+local injectpair = mplib.injectpair
+local injectboolean = mplib.injectboolean
+local injectinteger = mplib.injectinteger
+local injectstring = mplib.injectstring
+local injectcolor = mplib.injectcolor
+local injectcmykcolor = mplib.injectcmykcolor
+local injecttransform = mplib.injecttransform
+local injectwhatever = mplib.injectwhatever
+
+------.path = function(t,cycle,curled) if trace then reporti("path") end return injectpath (currentmpx,t,cycle,curled) end
+inject.numeric = function(n) if trace then reporti("numeric") end return injectnumeric (currentmpx,n) end
+inject.pair = function(x,y) if trace then reporti("pair") end return injectpair (currentmpx,x,y) end
+inject.boolean = function(b) if trace then reporti("boolean") end return injectboolean (currentmpx,b) end
+inject.integer = function(i) if trace then reporti("integer") end return injectinteger (currentmpx,i) end
+inject.string = function(s) if trace then reporti("string") end return injectstring (currentmpx,s) end
+inject.color = function(r,g,b) if trace then reporti("color") end return injectcolor (currentmpx,r,g,b) end
+inject.cmykcolor = function(c,m,y,k) if trace then reporti("cmykcolor") end return injectcmykcolor(currentmpx,c,m,y,k) end
+inject.transform = function(x,y,xx,xy,yx,yy) if trace then reporti("transform") end return injecttransform(currentmpx,x,y,xx,xy,yx,yy) end
+inject.whatever = function(...) if trace then reporti("whatever") end return injectwhatever (currentmpx,...) end
inject.triplet = inject.color
inject.quadruplet = inject.cmykcolor
+-- these can be optimized for zero:
+
+inject.whd = function(w,h,d) injectcolor (currentmpx,(w or 0)*bpfactor,(h or 0)*bpfactor,(d or 0)*bpfactor) end
+inject.xy = function(x,y) injectpair (currentmpx,(x or 0)*bpfactor,(y or 0)*bpfactor) end
+inject.pt = function(n) injectnumeric(currentmpx,(n or 0)*bpfactor) end
+
local function same(p,n)
local f = p[1]
local l = p[n]
@@ -124,30 +127,57 @@ local function same(p,n)
return false
end
--- local p = mp.scan.path()
--- mp.inject.path(p,true,true)
-
-function inject.path(p,close,connector)
+-- function inject.path(p,close,connector)
+-- local closed = false
+-- local curled = false
+-- local n = #p
+-- print("spec",p,close,connector)
+-- if close == nil then
+-- closed = (p.close or p.cycle or p.closed) and true or false
+-- else
+-- closed = close
+-- end
+-- if connector then
+-- if connector == "auto" then
+-- connector = #p[1] > 2
+-- end
+-- if connector == false or connector == "--" then
+-- curled = true
+-- -- elseif connector == true or connector == ".." then
+-- -- if close and not same(p,n) then
+-- -- p[n+1] = p[1]
+-- -- end
+-- end
+-- elseif p.curled then
+-- curled = true
+-- end
+-- if trace then reporti("path") end
+-- inspect(p)
+-- print(p,closed,curled)
+-- return injectpath(currentmpx,p,closed,curled)
+-- end
+
+function inject.path(p,connector,close)
+ local closed = false
local curled = false
local n = #p
- if p.close or p.cycle then
- close = true
+ if close == nil then
+ closed = (p.close or p.cycle or p.closed) and true or false
+ else
+ closed = close
end
- if n > 1 then
- -- [ ../true | --/false | nil/auto ]
- if connector == nil or connector == "auto" then
+ if connector then
+ if connector == "auto" then
connector = #p[1] > 2
end
if connector == false or connector == "--" then
curled = true
- elseif connector == true or connector == ".." then
- if close and not same(p,n) then
- p[n+1] = p[1]
- end
end
+ elseif p.curled then
+ curled = true
end
if trace then reporti("path") end
- return inject_path(currentmpx,p,close,curled)
+ return injectpath(currentmpx,p,closed,curled)
end
-- bonus:
@@ -156,7 +186,7 @@ scan .number = scan .numeric
inject.number = inject.numeric
table.setmetatablecall(inject,function(t,...)
- inject_whatever(currentmpx,...)
+ injectwhatever(currentmpx,...)
end)
-- experiment
@@ -166,20 +196,20 @@ function mp.autoinject(m)
if t == "table" then
local n = #t
if n == 2 then
- inject_pair(currentmpx,m)
+ injectpair(currentmpx,m)
elseif n == 3 then
- inject_color(currentmpx,m)
+ injectcolor(currentmpx,m)
elseif n == 4 then
- inject_cmykcolor(currentmpx,m)
+ injectcmykcolor(currentmpx,m)
elseif n == 6 then
- inject_transform(currentmpx,m)
+ injecttransform(currentmpx,m)
end
elseif t == "number" then
- inject_numeric(currentmpx,m)
+ injectnumeric(currentmpx,m)
elseif t == "string" then
- inject_string(currentmpx,m)
+ injectstring(currentmpx,m)
elseif t == "boolean" then
- inject_boolean(currentmpx,m)
+ injectboolean(currentmpx,m)
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-mat.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-mat.lmt
index 3a63b32c784..68e3c98d1d6 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-mat.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-mat.lmt
@@ -16,78 +16,82 @@ local scancolor = scanners.color
local mppair = injectors.pair or mp.pair
local registerscript = metapost.registerscript
+local registerdirect = metapost.registerdirect
local m = xmath
local c = xcomplex
-local m_acos = m.acos registerscript("m_acos", function() return m_acos (scannumeric()) end)
-local m_acosh = m.acosh registerscript("m_acosh", function() return m_acosh (scannumeric()) end)
-local m_asin = m.asin registerscript("m_asin", function() return m_asin (scannumeric()) end)
-local m_asinh = m.asinh registerscript("m_asinh", function() return m_asinh (scannumeric()) end)
-local m_atan = m.atan registerscript("m_atan", function() return m_atan (scannumeric()) end)
-local m_atan2 = m.atan2 registerscript("m_atan2", function() return m_atan2 (scanpair ()) end)
-local m_atanh = m.atanh registerscript("m_atanh", function() return m_atanh (scannumeric()) end)
-local m_cbrt = m.cbrt registerscript("m_cbrt", function() return m_cbrt (scannumeric()) end)
-local m_ceil = m.ceil registerscript("m_ceil", function() return m_ceil (scannumeric()) end)
-local m_copysign = m.copysign registerscript("m_copysign", function() return m_copysign (scanpair ()) end)
-local m_cos = m.cos registerscript("m_cos", function() return m_cos (scannumeric()) end)
-local m_cosh = m.cosh registerscript("m_cosh", function() return m_cosh (scannumeric()) end)
-local m_deg = m.deg registerscript("m_deg", function() return m_deg (scannumeric()) end)
-local m_erf = m.erf registerscript("m_erf", function() return m_erf (scannumeric()) end)
-local m_erfc = m.erfc registerscript("m_erfc", function() return m_erfc (scannumeric()) end)
-local m_exp = m.exp registerscript("m_exp", function() return m_exp (scannumeric()) end)
-local m_exp2 = m.exp2 registerscript("m_exp2", function() return m_exp2 (scannumeric()) end)
-local m_expm1 = m.expm1 registerscript("m_expm1", function() return m_expm1 (scannumeric()) end)
-local m_fabs = m.fabs registerscript("m_fabs", function() return m_fabs (scannumeric()) end)
-local m_fdim = m.fdim registerscript("m_fdim", function() return m_fdim (scanpair ()) end)
-local m_floor = m.floor registerscript("m_floor", function() return m_floor (scannumeric()) end)
-local m_fma = m.fma registerscript("m_fma", function() return m_fma (scancolor ()) end)
-local m_fmax = m.fmax registerscript("m_fmax", function() return m_fmax (scannumeric()) end)
-local m_fmin = m.fmin registerscript("m_fmin", function() return m_fmin (scannumeric()) end)
-local m_fmod = m.fmod registerscript("m_fmod", function() return m_fmod (scanpair ()) end)
-local m_frexp = m.frexp registerscript("m_frexp", function() return m_frexp (scannumeric()) end)
-local m_gamma = m.gamma registerscript("m_gamma", function() return m_gamma (scannumeric()) end)
-local m_hypot = m.hypot registerscript("m_hypot", function() return m_hypot (scanpair ()) end)
-local m_isfinite = m.isfinite registerscript("m_isfinite", function() return m_isfinite (scannumeric()) end)
-local m_isinf = m.isinf registerscript("m_isinf", function() return m_isinf (scannumeric()) end)
-local m_isnan = m.isnan registerscript("m_isnan", function() return m_isnan (scannumeric()) end)
-local m_isnormal = m.isnormal registerscript("m_isnormal", function() return m_isnormal (scannumeric()) end)
-local m_j0 = m.j0 registerscript("m_j0", function() return m_j0 (scannumeric()) end)
-local m_j1 = m.j1 registerscript("m_j1", function() return m_j1 (scannumeric()) end)
-local m_jn = m.jn registerscript("m_jn", function() return m_jn (scanpair ()) end)
-local m_ldexp = m.ldexp registerscript("m_ldexp", function() return m_ldexp (scanpair ()) end)
-local m_lgamma = m.lgamma registerscript("m_lgamma", function() return m_lgamma (scannumeric()) end)
-local m_log = m.log registerscript("m_log", function() return m_log (scannumeric()) end)
-local m_log10 = m.log10 registerscript("m_log10", function() return m_log10 (scannumeric()) end)
-local m_log1p = m.log1p registerscript("m_log1p", function() return m_log1p (scannumeric()) end)
-local m_log2 = m.log2 registerscript("m_log2", function() return m_log2 (scannumeric()) end)
-local m_logb = m.logb registerscript("m_logb", function() return m_logb (scannumeric()) end)
-local m_modf = m.modf registerscript("m_modf", function() return m_modf (scannumeric()) end)
-local m_nearbyint = m.nearbyint registerscript("m_nearbyint", function() return m_nearbyint(scannumeric()) end)
-local m_nextafter = m.nextafter registerscript("m_nextafter", function() return m_nextafter(scanpair ()) end)
-local m_pow = m.pow registerscript("m_pow", function() return m_pow (scanpair ()) end)
-local m_rad = m.rad registerscript("m_rad", function() return m_rad (scannumeric()) end)
-local m_remainder = m.remainder registerscript("m_remainder", function() return m_remainder(scanpair ()) end)
-local m_remquo = m.remquo registerscript("m_remquo", function() return m_remquo (scannumeric()) end)
-local m_round = m.round registerscript("m_round", function() return m_round (scannumeric()) end)
-local m_scalbn = m.scalbn registerscript("m_scalbn", function() return m_scalbn (scanpair ()) end)
-local m_sin = m.sin registerscript("m_sin", function() return m_sin (scannumeric()) end)
-local m_sinh = m.sinh registerscript("m_sinh", function() return m_sinh (scannumeric()) end)
-local m_sqrt = m.sqrt registerscript("m_sqrt", function() return m_sqrt (scannumeric()) end)
-local m_tan = m.tan registerscript("m_tan", function() return m_tan (scannumeric()) end)
-local m_tanh = m.tanh registerscript("m_tanh", function() return m_tanh (scannumeric()) end)
-local m_tgamma = m.tgamma registerscript("m_tgamma", function() return m_tgamma (scannumeric()) end)
-local m_trunc = m.trunc registerscript("m_trunc", function() return m_trunc (scannumeric()) end)
-local m_y0 = m.y0 registerscript("m_y0", function() return m_y0 (scannumeric()) end)
-local m_y1 = m.y1 registerscript("m_y1", function() return m_y1 (scannumeric()) end)
-local m_yn = m.yn registerscript("m_yn", function() return m_yn (scanpair ()) end)
+local m_acos = m.acos registerdirect("m_acos", function() return m_acos (scannumeric()) end)
+local m_acosh = m.acosh registerdirect("m_acosh", function() return m_acosh (scannumeric()) end)
+local m_asin = m.asin registerdirect("m_asin", function() return m_asin (scannumeric()) end)
+local m_asinh = m.asinh registerdirect("m_asinh", function() return m_asinh (scannumeric()) end)
+local m_atan = m.atan registerdirect("m_atan", function() return m_atan (scannumeric()) end)
+local m_atan2 = m.atan2 registerdirect("m_atan2", function() return m_atan2 (scanpair ()) end)
+local m_atanh = m.atanh registerdirect("m_atanh", function() return m_atanh (scannumeric()) end)
+local m_cbrt = m.cbrt registerdirect("m_cbrt", function() return m_cbrt (scannumeric()) end)
+local m_ceil = m.ceil registerdirect("m_ceil", function() return m_ceil (scannumeric()) end)
+local m_copysign = m.copysign registerdirect("m_copysign", function() return m_copysign (scanpair ()) end)
+local m_cos = m.cos registerdirect("m_cos", function() return m_cos (scannumeric()) end)
+local m_cosh = m.cosh registerdirect("m_cosh", function() return m_cosh (scannumeric()) end)
+local m_deg = m.deg registerdirect("m_deg", function() return m_deg (scannumeric()) end)
+local m_erf = m.erf registerdirect("m_erf", function() return m_erf (scannumeric()) end)
+local m_erfc = m.erfc registerdirect("m_erfc", function() return m_erfc (scannumeric()) end)
+local m_exp = m.exp registerdirect("m_exp", function() return m_exp (scannumeric()) end)
+local m_exp2 = m.exp2 registerdirect("m_exp2", function() return m_exp2 (scannumeric()) end)
+local m_expm1 = m.expm1 registerdirect("m_expm1", function() return m_expm1 (scannumeric()) end)
+local m_fabs = m.fabs registerdirect("m_fabs", function() return m_fabs (scannumeric()) end)
+local m_fdim = m.fdim registerdirect("m_fdim", function() return m_fdim (scanpair ()) end)
+local m_floor = m.floor registerdirect("m_floor", function() return m_floor (scannumeric()) end)
+local m_fma = m.fma registerdirect("m_fma", function() return m_fma (scancolor ()) end)
+local m_fmax = m.fmax registerdirect("m_fmax", function() return m_fmax (scannumeric()) end)
+local m_fmin = m.fmin registerdirect("m_fmin", function() return m_fmin (scannumeric()) end)
+local m_fmod = m.fmod registerdirect("m_fmod", function() return m_fmod (scanpair ()) end)
+local m_frexp = m.frexp registerdirect("m_frexp", function() return m_frexp (scannumeric()) end)
+local m_gamma = m.gamma registerdirect("m_gamma", function() return m_gamma (scannumeric()) end)
+local m_hypot = m.hypot registerdirect("m_hypot", function() return m_hypot (scanpair ()) end)
+local m_isfinite = m.isfinite registerdirect("m_isfinite", function() return m_isfinite (scannumeric()) end)
+local m_isinf = m.isinf registerdirect("m_isinf", function() return m_isinf (scannumeric()) end)
+local m_isnan = m.isnan registerdirect("m_isnan", function() return m_isnan (scannumeric()) end)
+local m_isnormal = m.isnormal registerdirect("m_isnormal", function() return m_isnormal (scannumeric()) end)
+local m_j0 = m.j0 registerdirect("m_j0", function() return m_j0 (scannumeric()) end)
+local m_j1 = m.j1 registerdirect("m_j1", function() return m_j1 (scannumeric()) end)
+local m_jn = m.jn registerdirect("m_jn", function() return m_jn (scanpair ()) end)
+local m_ldexp = m.ldexp registerdirect("m_ldexp", function() return m_ldexp (scanpair ()) end)
+local m_lgamma = m.lgamma registerdirect("m_lgamma", function() return m_lgamma (scannumeric()) end)
+local m_log = m.log registerdirect("m_log", function() return m_log (scannumeric()) end)
+local m_log10 = m.log10 registerdirect("m_log10", function() return m_log10 (scannumeric()) end)
+local m_log1p = m.log1p registerdirect("m_log1p", function() return m_log1p (scannumeric()) end)
+local m_log2 = m.log2 registerdirect("m_log2", function() return m_log2 (scannumeric()) end)
+local m_logb = m.logb registerdirect("m_logb", function() return m_logb (scannumeric()) end)
+local m_modf = m.modf registerdirect("m_modf", function() return m_modf (scannumeric()) end)
+local m_nearbyint = m.nearbyint registerdirect("m_nearbyint", function() return m_nearbyint(scannumeric()) end)
+local m_nextafter = m.nextafter registerdirect("m_nextafter", function() return m_nextafter(scanpair ()) end)
+local m_pow = m.pow registerdirect("m_pow", function() return m_pow (scanpair ()) end)
+local m_rad = m.rad registerdirect("m_rad", function() return m_rad (scannumeric()) end)
+local m_remainder = m.remainder registerdirect("m_remainder", function() return m_remainder(scanpair ()) end)
+local m_remquo = m.remquo registerdirect("m_remquo", function() return m_remquo (scannumeric()) end)
+local m_round = m.round registerdirect("m_round", function() return m_round (scannumeric()) end)
+local m_scalbn = m.scalbn registerdirect("m_scalbn", function() return m_scalbn (scanpair ()) end)
+local m_sin = m.sin registerdirect("m_sin", function() return m_sin (scannumeric()) end)
+local m_sinh = m.sinh registerdirect("m_sinh", function() return m_sinh (scannumeric()) end)
+local m_sqrt = m.sqrt registerdirect("m_sqrt", function() return m_sqrt (scannumeric()) end)
+local m_tan = m.tan registerdirect("m_tan", function() return m_tan (scannumeric()) end)
+local m_tanh = m.tanh registerdirect("m_tanh", function() return m_tanh (scannumeric()) end)
+local m_tgamma = m.tgamma registerdirect("m_tgamma", function() return m_tgamma (scannumeric()) end)
+local m_trunc = m.trunc registerdirect("m_trunc", function() return m_trunc (scannumeric()) end)
+local m_y0 = m.y0 registerdirect("m_y0", function() return m_y0 (scannumeric()) end)
+local m_y1 = m.y1 registerdirect("m_y1", function() return m_y1 (scannumeric()) end)
+local m_yn = m.yn registerdirect("m_yn", function() return m_yn (scanpair ()) end)
if not (c and c.sin) then
return
end
-local c_topair = c.topair
-local c_new = c.new
+local c_topair = c.topair
+local c_totable = c.totable
+local c_new = c.new
+
+----- c_sin = c.sin registerdirect("c_sin", function() return c_totable(c_sin (c_new(scanpair()))) end)
local c_sin = c.sin registerscript("c_sin", function() return mppair(c_topair(c_sin (c_new(scanpair())))) end)
local c_cos = c.cos registerscript("c_cos", function() return mppair(c_topair(c_cos (c_new(scanpair())))) end)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-mpf.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-mpf.lmt
index f24d7fde09c..34b2d079536 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-mpf.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-mpf.lmt
@@ -9,7 +9,7 @@ if not modules then modules = { } end modules ['mlib-mpf'] = {
-- moved from mlib-lua:
local type, tostring, tonumber, select, loadstring = type, tostring, tonumber, select, loadstring
-local find, match, gsub, gmatch = string.find, string.match, string.gsub, string.gmatch
+local find, gsub = string.find, string.gsub
local concat = table.concat
local formatters = string.formatters
@@ -31,8 +31,6 @@ local set = mp.set
local get = mp.get
local aux = mp.aux
local scan = mp.scan
-local skip = mp.skip
-local inject = mp.inject
do
@@ -41,7 +39,7 @@ do
local f_integer = formatters["%i"]
local f_numeric = formatters["%F"]
- -- no %n as that can produce -e notation and that is not so nice for scaled butmaybe we
+ -- no %n as that can produce -e notation and that is not so nice for scaled but maybe we
-- should then switch between ... i.e. make a push/pop for the formatters here ... not now.
local f_integer = formatters["%i"]
@@ -77,22 +75,38 @@ do
local runscripts = { }
local runnames = { }
+ local runmodes = { }
local nofscripts = 0
- function metapost.registerscript(name,f)
+ local function registerscript(name,mode,f)
nofscripts = nofscripts + 1
+ if not f then
+ f = mode
+ mode = "buffered"
+ end
if f then
runscripts[nofscripts] = f
runnames[name] = nofscripts
else
runscripts[nofscripts] = name
end
+ runmodes[nofscripts] = mode
if trace_script then
- report_script("registering script %a as %i",name,nofscripts)
+ report_script("registering %s script %a as %i",mode,name,nofscripts)
end
return nofscripts
end
+ metapost.registerscript = registerscript
+
+ function metapost.registerdirect(name,f)
+ registerscript(name,"direct",f)
+ end
+
+ function metapost.registertokens(name,f)
+ registerscript(name,"tokens",f)
+ end
+
function metapost.scriptindex(name)
local index = runnames[name] or 0
if trace_script then
@@ -111,30 +125,8 @@ do
local buffer = gbuffer
local n = 0
- local function mpdirect1(a)
- n = n + 1 buffer[n] = a
- end
- local function mpdirect2(a,b)
- n = n + 1 buffer[n] = a
- n = n + 1 buffer[n] = b
- end
- local function mpdirect3(a,b,c)
- n = n + 1 buffer[n] = a
- n = n + 1 buffer[n] = b
- n = n + 1 buffer[n] = c
- end
- local function mpdirect4(a,b,c,d)
- n = n + 1 buffer[n] = a
- n = n + 1 buffer[n] = b
- n = n + 1 buffer[n] = c
- n = n + 1 buffer[n] = d
- end
- local function mpdirect5(a,b,c,d,e)
+ local function mpdirect(a)
n = n + 1 buffer[n] = a
- n = n + 1 buffer[n] = b
- n = n + 1 buffer[n] = c
- n = n + 1 buffer[n] = d
- n = n + 1 buffer[n] = e
end
local function mpflush(separator)
@@ -142,6 +134,25 @@ do
n = 1
end
+ function metapost.getbuffer()
+ local b = { }
+ for i=1,n do
+ b[i] = buffer
+ end
+ return b, n
+ end
+
+ function metapost.setbuffer(b, s)
+ n = 0
+ for i=1,(s or #b) do
+ local bi = b[i]
+ if bi then
+ n = n + 1
+ buffer[n] = tostring(bi)
+ end
+ end
+ end
+
function metapost.runscript(code)
nesting = nesting + 1
runs = runs + 1
@@ -157,6 +168,26 @@ do
elseif trace_luarun then
report_luarun("%i: index: %i",nesting,code)
end
+ local m = runmodes[code]
+ if m == "direct" then
+ result = f()
+ if trace_luarun then
+ report_luarun("%i: direct: %a",nesting,type(result))
+ end
+ nesting = nesting - 1
+ return result, true -- string and tables as string and objects
+ elseif m == "tokens" then
+ result = f()
+ if trace_luarun then
+ report_luarun("%i: tokens: %a",nesting,type(result))
+ end
+ nesting = nesting - 1
+ return result -- string and tables as text to be scanned
+ else
+ if trace_luarun then
+ report_luarun("%i: no mode",nesting)
+ end
+ end
else
if trace_luarun then
report_luarun("%i: code: %s",nesting,code)
@@ -263,7 +294,7 @@ do
-- writers
- local function mpp(value)
+ local function rawmpp(value)
n = n + 1
local t = type(value)
if t == "number" then
@@ -284,13 +315,13 @@ do
local function mpprint(first,second,...)
if second == nil then
if first ~= nil then
- mpp(first)
+ rawmpp(first)
end
else
for i=1,select("#",first,second,...) do
local value = (select(i,first,second,...))
if value ~= nil then
- mpp(value)
+ rawmpp(value)
end
end
end
@@ -368,7 +399,7 @@ do
if type(x) == "table" then
buffer[n] = f_pair(x[1],x[2])
else
- buffer[n] = f_pair(x,y)
+ buffer[n] = f_pair(x,y or x)
end
end
@@ -377,7 +408,7 @@ do
if type(x) == "table" then
buffer[n] = f_pair_pt(x[1],x[2])
else
- buffer[n] = f_pair_pt(x,y)
+ buffer[n] = f_pair_pt(x,y or x)
end
end
@@ -569,11 +600,7 @@ do
end
end
- aux.direct = mpdirect1
- aux.direct1 = mpdirect1
- aux.direct2 = mpdirect2
- aux.direct3 = mpdirect3
- aux.direct4 = mpdirect4
+ aux.direct = mpdirect
aux.flush = mpflush
aux.print = mpprint
@@ -669,12 +696,29 @@ do
for k, v in next, aux do mp[k] = v end
+ -- mp.print = table.setmetatablecall(aux, function(t,...)
+ -- mpprint(...)
+ -- end)
+
+ mp.print = table.setmetatablecall(aux, function(t,first,second,...)
+ if second == nil then
+ if first ~= nil then
+ rawmpp(first)
+ end
+ else
+ for i=1,select("#",first,second,...) do
+ local value = (select(i,first,second,...))
+ if value ~= nil then
+ rawmpp(value)
+ end
+ end
+ end
+ end)
+
end
do
- -- Another experimental feature:
-
local mpnumeric = mp.numeric
local scanstring = scan.string
local scriptindex = metapost.scriptindex
@@ -687,32 +731,8 @@ do
-- once bootstrapped ... (needs pushed mpx instances)
- metapost.registerscript("scriptindex",function()
- local name = scanstring()
- local index = scriptindex(name)
- -- report_script("method %i, name %a, index %i",2,name,index)
- mpnumeric(index)
- end)
-
-end
-
--- the next will move to mlib-lmp.lua
-
-do
-
- local mpnamedcolor = attributes.colors.mpnamedcolor
- local mpprint = aux.print
- local scanstring = scan.string
-
- mp.mf_named_color = function(str)
- mpprint(mpnamedcolor(str))
- end
-
- -- todo: we can inject but currently we always get a string back so then
- -- we need to deal with it upstream in the color module ... not now
-
- metapost.registerscript("namedcolor",function()
- mpprint(mpnamedcolor(scanstring()))
+ metapost.registerdirect("scriptindex",function()
+ return scriptindex(scanstring())
end)
end
@@ -806,388 +826,14 @@ end
-- texts:
-do
-
- local mptriplet = mp.triplet
-
- local bpfactor = number.dimenfactors.bp
- local textexts = nil
- local mptriplet = mp.triplet
- local nbdimensions = nodes.boxes.dimensions
-
- function mp.mf_tt_initialize(tt)
- textexts = tt
- end
-
- function mp.mf_tt_dimensions(n)
- local box = textexts and textexts[n]
- if box then
- -- could be made faster with nuts but not critical
- mptriplet(box.width*bpfactor,box.height*bpfactor,box.depth*bpfactor)
- else
- mptriplet(0,0,0)
- end
- end
-
- function mp.mf_tb_dimensions(category,name)
- local w, h, d = nbdimensions(category,name)
- mptriplet(w*bpfactor,h*bpfactor,d*bpfactor)
- end
-
- function mp.report(a,b,c,...)
- if c then
- report_message("%s : %s",a,formatters[(gsub(b,"@","%%"))](c,...))
- elseif b then
- report_message("%s : %s",a,b)
- elseif a then
- report_message("%s : %s","message",a)
- end
- end
-
-end
-
-do
-
- local mpprint = aux.print
- local modes = tex.modes
- local systemmodes = tex.systemmodes
-
- function mp.mode(s)
- mpprint(modes[s] and true or false)
- end
-
- function mp.systemmode(s)
- mpprint(systemmodes[s] and true or false)
- end
-
- mp.processingmode = mp.mode
-
-end
-
--- for alan's nodes:
-
-do
-
- local mpprint = aux.print
- local mpquoted = aux.quoted
-
- function mp.isarray(str)
- mpprint(find(str,"%d") and true or false)
- end
-
- function mp.prefix(str)
- mpquoted(match(str,"^(.-)[%d%[]") or str)
- end
-
- -- function mp.dimension(str)
- -- local n = 0
- -- for s in gmatch(str,"%[?%-?%d+%]?") do --todo: lpeg
- -- n = n + 1
- -- end
- -- mpprint(n)
- -- end
-
- mp.dimension = lpeg.counter(P("[") * lpegpatterns.integer * P("]") + lpegpatterns.integer,mpprint)
-
- -- faster and okay as we don't have many variables but probably only
- -- basename makes sense and even then it's not called that often
-
- -- local hash = table.setmetatableindex(function(t,k)
- -- local v = find(k,"%d") and true or false
- -- t[k] = v
- -- return v
- -- end)
- --
- -- function mp.isarray(str)
- -- mpprint(hash[str])
- -- end
- --
- -- local hash = table.setmetatableindex(function(t,k)
- -- local v = '"' .. (match(k,"^(.-)%d") or k) .. '"'
- -- t[k] = v
- -- return v
- -- end)
- --
- -- function mp.prefix(str)
- -- mpprint(hash[str])
- -- end
-
-end
-
-do
-
- local scanstring = scan.string
- local scannumeric = scan.numeric
- local skiptoken = skip.token
-
- local injectstring = inject.string
- local injectnumeric = inject.numeric
-
- local registerscript = metapost.registerscript
-
- local comma_code = metapost.codes.comma
-
- local getmacro = tokens.getters.macro
- local setmacro = tokens.setters.macro
-
- local getdimen = tex.getdimen
- local getcount = tex.getcount
- local gettoks = tex.gettoks
- local setdimen = tex.setdimen
- local setcount = tex.setcount
- local settoks = tex.settoks
-
- local bpfactor = number.dimenfactors.bp
-
- -- more helpers
-
- registerscript("getmacro", function() injectstring (getmacro(scanstring())) end)
- registerscript("getdimen", function() injectnumeric(getdimen(scanstring())*bpfactor) end)
- registerscript("getcount", function() injectnumeric(getcount(scanstring())) end)
- registerscript("gettoks", function() injectstring (gettoks (scanstring())) end)
-
- registerscript("setmacro", function() setmacro(scanstring(),scanstring()) end)
- registerscript("setdimen", function() setdimen(scanstring(),scannumeric()/bpfactor) end)
- registerscript("setcount", function() setcount(scanstring(),scannumeric()) end)
- registerscript("settoks", function() settoks (scanstring(),scanstring()) end)
-
- registerscript("setglobalmacro", function() setmacro(scanstring(),scanstring(),"global") end)
- registerscript("setglobaldimen", function() setdimen("global",scanstring(),scannumeric()/bpfactor) end)
- registerscript("setglobalcount", function() setcount("global",scanstring(),scannumeric()) end)
- registerscript("setglobaltoks", function() settoks ("global",scanstring(),scanstring()) end)
-
-
- local utfnum = utf.byte
- local utflen = utf.len
- local utfsub = utf.sub
-
- registerscript("utfnum", function()
- injectnumeric(utfnum(scanstring()))
- end)
-
- registerscript("utflen", function()
- injectnumeric(utflen(scanstring()))
- end)
-
- registerscript("utfsub", function() -- we have an optional third argument so we explicitly scan a text argument
- injectstring(utfsub(scanstring(),skiptoken(comma_code) and scannumeric(),skiptoken(comma_code) and scannumeric()))
- end)
-
-end
-
--- position fun
-
-do
-
- local mpprint = mp.print
- local mpfprint = mp.fprint
- local mpquoted = mp.quoted
- local jobpositions = job.positions
- local getwhd = jobpositions.whd
- local getxy = jobpositions.xy
- local getposition = jobpositions.position
- local getpage = jobpositions.page
- local getregion = jobpositions.region
- local getmacro = tokens.getters.macro
-
- function mp.positionpath(name)
- local w, h, d = getwhd(name)
- if w then
- mpfprint("((%p,%p)--(%p,%p)--(%p,%p)--(%p,%p)--cycle)",0,-d,w,-d,w,h,0,h)
- else
- mpprint("(origin--cycle)")
- end
- end
-
- function mp.positioncurve(name)
- local w, h, d = getwhd(name)
- if w then
- mpfprint("((%p,%p)..(%p,%p)..(%p,%p)..(%p,%p)..cycle)",0,-d,w,-d,w,h,0,h)
- else
- mpprint("(origin--cycle)")
- end
- end
-
- function mp.positionbox(name)
- local p, x, y, w, h, d = getposition(name)
- if p then
- mpfprint("((%p,%p)--(%p,%p)--(%p,%p)--(%p,%p)--cycle)",x,y-d,x+w,y-d,x+w,y+h,x,y+h)
- else
- mpprint("(%p,%p)",x,y)
- end
- end
-
- function mp.positionxy(name)
- local x, y = getxy(name)
- if x then
- mpfprint("(%p,%p)",x,y)
- else
- mpprint("origin")
- end
- end
-
- function mp.positionpage(name)
- mpfprint("%i",getpage(name) or 0)
- end
-
- function mp.positionregion(name)
- local r = getregion(name)
- if r then
- mpquoted(r)
- else
- mpquoted("unknown")
- end
- end
-
- function mp.positionwhd(name)
- local w, h, d = getwhd(name)
- if w then
- mpfprint("(%p,%p,%p)",w,h,d)
- else
- mpprint("(0,0,0)")
- end
- end
-
- function mp.positionpxy(name)
- local p, x, y = getposition(name)
- if p then
- mpfprint("(%p,%p,%p)",p,x,y)
- else
- mpprint("(0,0,0)")
- end
- end
-
- function mp.positionanchor()
- mpquoted(getmacro("MPanchorid"))
- end
-
-end
-
-do
-
- -- local mppair = mp.pair
- --
- -- function mp.textextanchor(s)
- -- local x, y = match(s,"tx_anchor=(%S+) (%S+)") -- todo: make an lpeg
- -- if x and y then
- -- x = tonumber(x)
- -- y = tonumber(y)
- -- end
- -- mppair(x or 0,y or 0)
- -- end
-
- local injectpair = inject.pair
- local scanstring = scan.string
-
- metapost.registerscript("textextanchor", function()
- local x, y = match(scanstring(),"tx_anchor=(%S+) (%S+)") -- todo: make an lpeg
- if x and y then
- x = tonumber(x)
- y = tonumber(y)
- end
- injectpair(x or 0,y or 0)
- end)
-
-end
-
-do
-
- local mpprint = mp.print
- local mpquoted = mp.quoted
- local getmacro = tokens.getters.macro
-
- function mp.texvar(name)
- mpprint(getmacro(metapost.namespace .. name))
- end
-
- function mp.texstr(name)
- mpquoted(getmacro(metapost.namespace .. name))
- end
-
-end
-
-do
-
- local mpprint = aux.print
- local mpvprint = aux.vprint
-
- local hashes = { }
-
- function mp.newhash(name)
- if name then
- hashes[name] = { }
- else
- for i=1,#hashes+1 do
- if not hashes[i] then
- hashes[i] = { }
- mpvprint(i)
- return
- end
- end
- end
- end
-
- function mp.disposehash(n)
- if tonumber(n) then
- hashes[n] = false
- else
- hashes[n] = nil
- end
- end
-
- function mp.inhash(n,key)
- local h = hashes[n]
- mpvprint(h and h[key] and true or false)
- end
-
- function mp.tohash(n,key,value)
- local h = hashes[n]
- if h then
- if value == nil then
- h[key] = true
- else
- h[key] = value
- end
- end
+function mp.report(a,b,c,...)
+ if c then
+ report_message("%s : %s",a,formatters[(gsub(b,"@","%%"))](c,...))
+ elseif b then
+ report_message("%s : %s",a,b)
+ elseif a then
+ report_message("message : %s",a)
end
-
- function mp.fromhash(n,key)
- local h = hashes[n]
- mpvprint(h and h[key] or false)
- end
-
- interfaces.implement {
- name = "MPfromhash",
- arguments = "2 strings",
- actions = function(name,key)
- local h = hashes[name] or hashes[tonumber(name)]
- if h then
- local v = h[key] or h[tonumber(key)]
- if v then
- context(v)
- end
- end
- end
- }
-
-end
-
-do
-
- -- a bit overkill: just a find(str,"mf_object=") can be enough
- --
- -- todo : share with mlib-pps.lua metapost,isobject
-
- local mpboolean = aux.boolean
-
- local p1 = P("mf_object=")
- local p2 = lpegpatterns.eol * p1
- local pattern = (1-p2)^0 * p2 + p1
-
- function mp.isobject(str)
- mpboolean(pattern and str ~= "" and lpegmatch(pattern,str))
- end
-
end
function mp.flatten(t)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-pdf.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-pdf.lmt
index c383d52ded1..3aeda8996b0 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-pdf.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-pdf.lmt
@@ -7,7 +7,7 @@ if not modules then modules = { } end modules ['mlib-pdf'] = {
}
local gsub = string.gsub
-local concat, insert, remove = table.concat, table.insert, table.remove
+local concat, insert, remove, sortedkeys = table.concat, table.insert, table.remove, table.sortedkeys
local abs, sqrt, round = math.abs, math.sqrt, math.round
local setmetatable, rawset, tostring, tonumber, type = setmetatable, rawset, tostring, tonumber, type
local P, S, C, Ct, Cc, Cg, Cf, Carg = lpeg.P, lpeg.S, lpeg.C, lpeg.Ct, lpeg.Cc, lpeg.Cg, lpeg.Cf, lpeg.Carg
@@ -23,10 +23,7 @@ local context = context
local allocate = utilities.storage.allocate
-local copy_node = node.copy
-local write_node = node.write
-
-local pen_info = mplib.pen_info
+local peninfo = mplib.peninfo
local getfields = mplib.getfields or mplib.fields -- todo: in lmtx get them once and then use gettype
local save_table = false
@@ -68,14 +65,9 @@ trackers.register("metapost.forcestroke",function(v)
force_stroke = v
end)
--- Because in MKiV we always have two passes, we save the objects. When an extra
--- mp run is done (due to for instance texts identifier in the parse pass), we
--- get a new result table and the stored objects are forgotten. Otherwise they
--- are reused.
-
-local function getobjects(result,figure,index)
- return figure:objects()
-end
+-- local function gettolerance(objects)
+-- return objects:tolerance()
+-- end
function metapost.convert(specification,result)
local flusher = specification.flusher
@@ -116,12 +108,10 @@ function pdfflusher.textfigure(font,size,text,width,height,depth) -- we could sa
context.MPtextext(font,size,text,0,-number.dimenfactors.bp*depth)
end
-local bend_tolerance = 131/65536
-
local rx, sx, sy, ry, tx, ty, divider = 1, 0, 0, 1, 0, 0, 1
local function pen_characteristics(object)
- local t = pen_info(object)
+ local t = peninfo(object)
rx, ry, sx, sy, tx, ty = t.rx, t.ry, t.sx, t.sy, t.tx, t.ty
divider = sx*sy - rx*ry
return not (sx == 1 and rx == 0 and ry == 0 and sy == 1 and tx == 0 and ty == 0), t.width
@@ -131,18 +121,39 @@ local function mpconcat(px, py) -- no tx, ty here / we can move this one inline
return (sy*px-ry*py)/divider,(sx*py-rx*px)/divider
end
-local function curved(ith,pth)
+local getbendtolerance = metapost.getbendtolerance
+
+local function curved(ith,pth,tolerance) --- still better than the build in
+ -- if pth.right_x == pth.x_coord then
+ -- if pth.right_y == pth.y_coord then
+ -- if ith.left_x == ith.x_coord then
+ -- if ith.left_y == ith.y_coord then
+ -- return false
+ -- end
+ -- end
+ -- end
+ -- end
local d = pth.left_x - ith.right_x
- if abs(ith.right_x - ith.x_coord - d) <= bend_tolerance and abs(pth.x_coord - pth.left_x - d) <= bend_tolerance then
- d = pth.left_y - ith.right_y
- if abs(ith.right_y - ith.y_coord - d) <= bend_tolerance and abs(pth.y_coord - pth.left_y - d) <= bend_tolerance then
- return false
+ local b = abs(ith.right_x - ith.x_coord - d)
+ if b <= tolerance then
+ b = abs(pth.x_coord - pth.left_x - d)
+ if b <= tolerance then
+ d = pth.left_y - ith.right_y
+ b = abs(ith.right_y - ith.y_coord - d)
+ if b <= tolerance then
+ b = abs(pth.y_coord - pth.left_y - d)
+ if b <= tolerance then
+-- print(tolerance,ith.curved,pth.curved,false)
+ return false
+ end
+ end
end
end
+-- print(tolerance,ith.curved,pth.curved,true)
return true
end
-local function flushnormalpath(path, t, open)
+local function flushnormalpath(path, t, open, tolerance)
local pth, ith, nt
local length = #path
if t then
@@ -154,10 +165,10 @@ local function flushnormalpath(path, t, open)
for i=1,length do
nt = nt + 1
pth = path[i]
- if not ith then
+ if not ith or pth.state == 1 then
t[nt] = f_m(pth.x_coord,pth.y_coord)
--- elseif curved(ith,pth) then
-elseif pth.curved then
+ elseif curved(ith,pth,tolerance) then
+-- elseif pth.curved then
t[nt] = f_c(ith.right_x,ith.right_y,pth.left_x,pth.left_y,pth.x_coord,pth.y_coord)
else
t[nt] = f_l(pth.x_coord,pth.y_coord)
@@ -167,8 +178,10 @@ elseif pth.curved then
if not open then
nt = nt + 1
local one = path[1]
--- if curved(pth,one) then
-if one.curved then
+ if one.state == 1 then
+ t[nt] = f_m(one.x_coord,one.y_coord)
+ elseif curved(pth,one,tolerance) then
+-- if one.curved then
t[nt] = f_c(pth.right_x,pth.right_y,one.left_x,one.left_y,one.x_coord,one.y_coord)
else
t[nt] = f_l(one.x_coord,one.y_coord)
@@ -182,7 +195,7 @@ if one.curved then
return t
end
-local function flushconcatpath(path, t, open)
+local function flushconcatpath(path, t, open, tolerance, transform)
local pth, ith, nt
local length = #path
if t then
@@ -191,15 +204,17 @@ local function flushconcatpath(path, t, open)
t = { }
nt = 0
end
- nt = nt + 1
- t[nt] = f_cm(sx,rx,ry,sy,tx,ty)
+ if transform then
+ nt = nt + 1
+ t[nt] = f_cm(sx,rx,ry,sy,tx,ty)
+ end
for i=1,length do
nt = nt + 1
pth = path[i]
- if not ith then
+ if not ith or pth.state == 1 then
t[nt] = f_m(mpconcat(pth.x_coord,pth.y_coord))
--- elseif curved(ith,pth) then
-elseif pth.curved then
+ elseif curved(ith,pth,tolerance) then
+-- elseif pth.curved then
local a, b = mpconcat(ith.right_x,ith.right_y)
local c, d = mpconcat(pth.left_x,pth.left_y)
t[nt] = f_c(a,b,c,d,mpconcat(pth.x_coord,pth.y_coord))
@@ -211,8 +226,10 @@ elseif pth.curved then
if not open then
nt = nt + 1
local one = path[1]
--- if curved(pth,one) then
-if one.curved then
+ if one.state == 1 then
+ t[nt] = f_m(one.x_coord,one.y_coord)
+ elseif curved(pth,one,tolerance) then
+-- if one.curved then
local a, b = mpconcat(pth.right_x,pth.right_y)
local c, d = mpconcat(one.left_x,one.left_y)
t[nt] = f_c(a,b,c,d,mpconcat(one.x_coord, one.y_coord))
@@ -256,7 +273,10 @@ local function toboundingbox(path)
end
end
-metapost.flushnormalpath = flushnormalpath
+
+function metapost.flushnormalpath(path, t, open, tolerance)
+ return flushnormalpath(path, t, open, tolerance or getbendtolerance())
+end
-- The flusher is pdf based, if another backend is used, we need to overload the
-- flusher; this is beta code, the organization will change (already upgraded in
@@ -327,7 +347,8 @@ end
-- end
-- end
-local stack = { }
+local stack = { } -- general stack (not related to stacking)
+local nostacking = { 0 } -- layers in figures
local function pushproperties(figure)
-- maybe there will be getters in lmtx
@@ -342,7 +363,7 @@ local function pushproperties(figure)
width = figure:width(),
height = figure:height(),
depth = figure:depth(),
- italic = figure:italcorr(), -- figure:italic() in lmtx
+ italic = figure:italic(),
number = slot,
}
insert(stack,properties)
@@ -359,6 +380,7 @@ function metapost.flush(specification,result)
local flusher = specification.flusher
local askedfig = specification.askedfig
local incontext = specification.incontext
+ local filtering = specification.filtering
local figures = result.fig
if figures then
flusher = flusher or pdfflusher
@@ -372,11 +394,19 @@ function metapost.flush(specification,result)
local textfigure = flusher.textfigure
-- local processspecial = flusher.processspecial or metapost.processspecial
local tocomment = flusher.tocomment
+ if type(filtering) ~= "table" or not next(filtering) then
+ filtering = false
+ end
+ -- patterns: we always use image 1 and then can use patterns for 2..n (or one number)
+ -- we can then do an intermediate flush
+
for index=1,#figures do
local figure = figures[index]
local properties = pushproperties(figure)
if askedfig == "direct" or askedfig == "all" or askedfig == properties.number then
- local objects = getobjects(result,figure,index)
+ local stacking = figure:stacking() -- This has to happen before fetching objects!
+ local objects = figure:objects()
+ local tolerance = figure:tolerance() or getbendtolerance()
local result = { }
local miterlimit = -1
local linecap = -1
@@ -409,245 +439,277 @@ function metapost.flush(specification,result)
-- resetplugins(result) -- we should move the colorinitializer here
local savedpath = nil
local savedhtap = nil
- for o=1,#objects do
- local object = objects[o]
- local objecttype = object.type
- if objecttype == "fill" or objecttype == "outline" then
- -- we use an indirect table as we want to overload
- -- entries but this is not possible in userdata
- --
- -- can be optimized if no path
- --
- local original = object
- local object = { }
- setmetatable(object, {
- __index = original
- })
- local before,
- after = processplugins(object)
- local evenodd = false
- local collect = false
- local both = false
- local flush = false
- local postscript = object.postscript
- if not object.istext then
- if postscript == "evenodd" then
- evenodd = true
- elseif postscript == "collect" then
- collect = true
- elseif postscript == "flush" then
- flush = true
- elseif postscript == "both" then
- both = true
- elseif postscript == "eoboth" then
- evenodd = true
- both = true
- end
- end
- --
- if flush and not savedpath then
- -- forget about it
- elseif collect then
- if not savedpath then
- savedpath = { object.path or false }
- savedhtap = { object.htap or false }
+ if stacking then
+ stacking = { }
+ for o=1,#objects do
+ local stack = objects[o].stacking
+ if stack then
+ if filtering then
+ stacking[stack] = filtering[stack]
else
- savedpath[#savedpath+1] = object.path or false
- savedhtap[#savedhtap+1] = object.htap or false
+ stacking[stack] = true
end
- else
- local objecttype = object.type -- can have changed
- if before then
- result = pluginactions(before,result,flushfigure)
- end
- local ml = object.miterlimit
- if ml and ml ~= miterlimit then
- miterlimit = ml
- result[#result+1] = f_M(ml)
- end
- local lj = object.linejoin
- if lj and lj ~= linejoin then
- linejoin = lj
- result[#result+1] = f_j(lj)
- end
- local lc = object.linecap
- if lc and lc ~= linecap then
- linecap = lc
- result[#result+1] = f_J(lc)
- end
- if both then
- if dashed ~= false then -- was just dashed test
- result[#result+1] = "[] 0 d"
- dashed = false
+ end
+ end
+ stacking = sortedkeys(stacking)
+ else
+ stacking = nostacking
+ end
+ for i=1,#stacking do
+ local stack = stacking[i]
+ for o=1,#objects do
+ local object = objects[o]
+ if stack == object.stacking then
+ local objecttype = object.type
+ if objecttype == "fill" or objecttype == "outline" then
+ -- we use an indirect table as we want to overload
+ -- entries but this is not possible in userdata
+ --
+ -- can be optimized if no path
+ --
+ local original = object
+ local object = { }
+ setmetatable(object, {
+ __index = original
+ })
+ local before,
+ after,
+ options = processplugins(object)
+ local evenodd = false
+ local collect = false
+ local both = false
+ local flush = false
+ local outline = force_outline
+ local envelope = false
+ local postscript = object.postscript
+ local tolerance = options and tonumber(options.tolerance) or tolerance
+ -- if not object.istext then
+ if postscript == "evenodd" then
+ evenodd = true
+ elseif postscript == "collect" then
+ collect = true
+ elseif postscript == "flush" then
+ flush = true
+ elseif postscript == "both" then
+ both = true
+ elseif postscript == "eoboth" then
+ evenodd = true
+ both = true
+ elseif postscript == "envelope" then
+ envelope = true
end
- else
- local dl = object.dash
- if dl then
- local d = f_d(concat(dl.dashes or {}," "),dl.offset)
- if d ~= dashed then
- dashed = d
- result[#result+1] = d
+ -- end
+ --
+ if flush and not savedpath then
+ -- forget about it
+ elseif collect then
+ if not savedpath then
+ savedpath = { object.path or false }
+ savedhtap = { object.htap or false }
+ else
+ savedpath[#savedpath+1] = object.path or false
+ savedhtap[#savedhtap+1] = object.htap or false
end
- elseif dashed ~= false then -- was just dashed test
- result[#result+1] = "[] 0 d"
- dashed = false
- end
- end
- local path = object.path -- newpath
- local transformed = false
- local penwidth = 1
- local open = path and path[1].left_type and path[#path].right_type -- at this moment only "end_point"
- local pen = object.pen
- if pen then
- if pen.type == "elliptical" then
- transformed, penwidth = pen_characteristics(original) -- boolean, value
- if penwidth ~= linewidth then
- result[#result+1] = f_w(penwidth)
- linewidth = penwidth
+ else
+ local objecttype = object.type -- can have changed
+ if envelope then
+ dashed, linewidth = "", 1 -- to be sure
end
- if objecttype == "fill" then
- objecttype = "both"
+ if before then
+ result = pluginactions(before,result,flushfigure)
end
- else -- calculated by mplib itself
- objecttype = "fill"
- end
- end
- if transformed then
- result[#result+1] = "q"
- end
- if path then
- if savedpath then
- for i=1,#savedpath do
- local path = savedpath[i]
- if transformed then
- flushconcatpath(path,result,open)
- else
- flushnormalpath(path,result,open)
- end
+ local ml = object.miterlimit
+ if ml and ml ~= miterlimit then
+ miterlimit = ml
+ result[#result+1] = f_M(ml)
+ end
+ local lj = object.linejoin
+ if lj and lj ~= linejoin then
+ linejoin = lj
+ result[#result+1] = f_j(lj)
+ end
+ local lc = object.linecap
+ if lc and lc ~= linecap then
+ linecap = lc
+ result[#result+1] = f_J(lc)
end
- savedpath = nil
- end
- if flush then
- -- ignore this path
- elseif transformed then
- flushconcatpath(path,result,open)
- else
- flushnormalpath(path,result,open)
- end
- if force_stroke then
- result[#result+1] = open and "S" or "h S"
- elseif objecttype == "fill" then
- result[#result+1] = evenodd and "h f*" or "h f" -- f* = eo
- elseif objecttype == "outline" then
if both then
- result[#result+1] = evenodd and "h B*" or "h B" -- B* = eo
+ if dashed ~= false then -- was just dashed test
+ result[#result+1] = "[] 0 d"
+ dashed = false
+ end
else
- result[#result+1] = open and "S" or "h S"
+ local dl = object.dash
+ if dl then
+ local d = f_d(concat(dl.dashes or {}," "),dl.offset)
+ if d ~= dashed then
+ dashed = d
+ result[#result+1] = d
+ end
+ elseif dashed ~= false then -- was just dashed test
+ result[#result+1] = "[] 0 d"
+ dashed = false
+ end
end
- elseif objecttype == "both" then
- result[#result+1] = evenodd and "h B*" or "h B" -- B* = eo -- b includes closepath
- end
- end
- if transformed then
- result[#result+1] = "Q"
- end
- local path = object.htap
- if path then
- if transformed then
- result[#result+1] = "q"
- end
- if savedhtap then
- for i=1,#savedhtap do
- local path = savedhtap[i]
+ local path = object.path -- newpath
+ local transformed = false
+ local penwidth = 1
+ local open = path and path[1].left_type and path[#path].right_type -- at this moment only "end_point"
+ local pen = object.pen
+ if pen then
+ if pen.type == "elliptical" or outline then
+ transformed, penwidth = pen_characteristics(original) -- boolean, value
+ if penwidth ~= linewidth then
+ result[#result+1] = f_w(penwidth)
+ linewidth = penwidth
+ end
+ if objecttype == "fill" then
+ objecttype = "both"
+ end
+ else -- calculated by mplib itself
+ objecttype = "fill"
+ end
+ end
+ if transformed then
+ result[#result+1] = "q"
+ end
+ if path then
+ if savedpath then
+ for i=1,#savedpath do
+ local path = savedpath[i]
+ local open = not path.cycle
+ if transformed then
+ flushconcatpath(path,result,open,tolerance,i==1)
+ else
+ flushnormalpath(path,result,open,tolerance)
+ end
+ end
+ savedpath = nil
+ end
+ if flush then
+ -- ignore this path
+ elseif transformed then
+ flushconcatpath(path,result,open,tolerance,true)
+ else
+ flushnormalpath(path,result,open,tolerance)
+ end
+ if outline or envelope then
+ result[#result+1] = open and "S" or "h S"
+ elseif objecttype == "fill" then
+ result[#result+1] = evenodd and "h f*" or "h f" -- f* = eo
+ elseif objecttype == "outline" then
+ if both then
+ result[#result+1] = evenodd and "h B*" or "h B" -- B* = eo
+ else
+ result[#result+1] = open and "S" or "h S"
+ end
+ elseif objecttype == "both" then
+ result[#result+1] = evenodd and "h B*" or "h B" -- B* = eo -- b includes closepath
+ end
+ end
+ if transformed then
+ result[#result+1] = "Q"
+ end
+ local path = object.htap
+ if path then
if transformed then
- flushconcatpath(path,result,open)
+ result[#result+1] = "q"
+ end
+ if savedhtap then
+ for i=1,#savedhtap do
+ local path = savedhtap[i]
+ local open = not path.cycle
+ if transformed then
+ flushconcatpath(path,result,open,tolerance,i==1)
+ else
+ flushnormalpath(path,result,open,tolerance)
+ end
+ end
+ savedhtap = nil
+ evenodd = true
+ end
+ if transformed then
+ flushconcatpath(path,result,open,tolerance,true)
else
- flushnormalpath(path,result,open)
+ flushnormalpath(path,result,open,tolerance)
+ end
+ if outline or envelope then
+ result[#result+1] = open and "S" or "h S"
+ elseif objecttype == "fill" then
+ result[#result+1] = evenodd and "h f*" or "h f" -- f* = eo
+ elseif objecttype == "outline" then
+ result[#result+1] = open and "S" or "h S"
+ elseif objecttype == "both" then
+ result[#result+1] = evenodd and "h B*" or "h B" -- B* = eo -- b includes closepath
end
+ if transformed then
+ result[#result+1] = "Q"
+ end
+ end
+ if after then
+ result = pluginactions(after,result,flushfigure)
end
- savedhtap = nil
- evenodd = true
end
- if transformed then
- flushconcatpath(path,result,open)
- else
- flushnormalpath(path,result,open)
+ if object.grouped then
+ -- can be qQ'd so changes can end up in groups
+ miterlimit, linecap, linejoin, dashed, linewidth = -1, -1, -1, "", false
end
- if force_stroke then
- result[#result+1] = open and "S" or "h S"
- elseif objecttype == "fill" then
- result[#result+1] = evenodd and "h f*" or "h f" -- f* = eo
- elseif objecttype == "outline" then
- result[#result+1] = open and "S" or "h S"
- elseif objecttype == "both" then
- result[#result+1] = evenodd and "h B*" or "h B" -- B* = eo -- b includes closepath
+ elseif objecttype == "start_clip" then
+ -- local evenodd = not object.istext and object.postscript == "evenodd"
+ local evenodd = object.postscript == "evenodd"
+ result[#result+1] = "q"
+ flushnormalpath(object.path,result,false,tolerance)
+ result[#result+1] = evenodd and "W* n" or "W n"
+ elseif objecttype == "stop_clip" then
+ result[#result+1] = "Q"
+ miterlimit, linecap, linejoin, dashed, linewidth = -1, -1, -1, "", false
+ elseif objecttype == "start_bounds" or objecttype == "stop_bounds" then
+ -- skip
+ elseif objecttype == "start_group" then
+ if lpdf.flushgroup then
+ local before, after = processplugins(object)
+ if before then
+ result[#result+1] = "q"
+ result = pluginactions(before,result,flushfigure)
+ insert(groupstack, {
+ after = after,
+ result = result,
+ bbox = toboundingbox(object.path),
+ })
+ result = { }
+ miterlimit, linecap, linejoin, dashed, linewidth = -1, -1, -1, "", false
+ else
+ insert(groupstack,false)
+ end
+ else
+ insert(groupstack,false)
end
- if transformed then
+ elseif objecttype == "stop_group" then
+ local data = remove(groupstack)
+ if data then
+ local reference = lpdf.flushgroup(concat(result,"\r"),data.bbox)
+ result = data.result
+ result[#result+1] = reference
+ result = pluginactions(data.after,result,flushfigure)
result[#result+1] = "Q"
+ miterlimit, linecap, linejoin, dashed, linewidth = -1, -1, -1, "", false
end
+ -- if objecttype == "text" then
+ -- result[#result+1] = "q"
+ -- local ot = object.transform -- 3,4,5,6,1,2
+ -- result[#result+1] = f_cm(ot[3],ot[4],ot[5],ot[6],ot[1],ot[2])
+ -- flushfigure(result) -- flush accumulated literals
+ -- result = { }
+ -- textfigure(object.font,object.dsize,object.text,object.width,object.height,object.depth)
+ -- result[#result+1] = "Q"
+ -- elseif objecttype == "special" then
+ -- if processspecial then
+ -- processspecial(object.prescript)
+ -- end
+ -- else
+ -- error
end
- if after then
- result = pluginactions(after,result,flushfigure)
- end
- end
- if object.grouped then
- -- can be qQ'd so changes can end up in groups
- miterlimit, linecap, linejoin, dashed, linewidth = -1, -1, -1, "", false
- end
- elseif objecttype == "start_clip" then
- local evenodd = not object.istext and object.postscript == "evenodd"
- result[#result+1] = "q"
- flushnormalpath(object.path,result,false)
- result[#result+1] = evenodd and "W* n" or "W n"
- elseif objecttype == "stop_clip" then
- result[#result+1] = "Q"
- miterlimit, linecap, linejoin, dashed, linewidth = -1, -1, -1, "", false
- elseif objecttype == "start_bounds" or objecttype == "stop_bounds" then
- -- skip
- elseif objecttype == "start_group" then
- if lpdf.flushgroup then
- local before, after = processplugins(object)
- if before then
- result[#result+1] = "q"
- result = pluginactions(before,result,flushfigure)
- insert(groupstack, {
- after = after,
- result = result,
- bbox = toboundingbox(object.path),
- })
- result = { }
- miterlimit, linecap, linejoin, dashed, linewidth = -1, -1, -1, "", false
- else
- insert(groupstack,false)
- end
- else
- insert(groupstack,false)
- end
- elseif objecttype == "stop_group" then
- local data = remove(groupstack)
- if data then
- local reference = lpdf.flushgroup(concat(result,"\r"),data.bbox)
- result = data.result
- result[#result+1] = reference
- result = pluginactions(data.after,result,flushfigure)
- result[#result+1] = "Q"
- miterlimit, linecap, linejoin, dashed, linewidth = -1, -1, -1, "", false
end
- -- if objecttype == "text" then
- -- result[#result+1] = "q"
- -- local ot = object.transform -- 3,4,5,6,1,2
- -- result[#result+1] = f_cm(ot[3],ot[4],ot[5],ot[6],ot[1],ot[2])
- -- flushfigure(result) -- flush accumulated literals
- -- result = { }
- -- textfigure(object.font,object.dsize,object.text,object.width,object.height,object.depth)
- -- result[#result+1] = "Q"
- -- elseif objecttype == "special" then
- -- if processspecial then
- -- processspecial(object.prescript)
- -- end
- -- else
- else
- -- error
end
end
end
@@ -715,7 +777,7 @@ function metapost.totable(result,askedfig)
local figure = result and result.fig and result.fig[1]
if figure then
local results = { }
- local objects = getobjects(result,figure,askedfig)
+ local objects = figure:objects()
for o=1,#objects do
local object = objects[o]
local result = { }
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-pdf.mkxl b/Master/texmf-dist/tex/context/base/mkxl/mlib-pdf.mkxl
index 6ded235145c..744c461d7a4 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-pdf.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-pdf.mkxl
@@ -20,15 +20,15 @@
%D Some code is shared between MPLIB and MPS. The following variables are also
%D available for introspection and other purposes.
-\ifdefined\MPwidth \else \newdimen\MPwidth \fi
-\ifdefined\MPheight \else \newdimen\MPheight \fi
+\newdimension\MPwidth
+\newdimension\MPheight
-\ifdefined\MPllx \else \newdimen\MPllx \fi
-\ifdefined\MPlly \else \newdimen\MPlly \fi
-\ifdefined\MPurx \else \newdimen\MPurx \fi
-\ifdefined\MPury \else \newdimen\MPury \fi
+\newdimension\MPllx
+\newdimension\MPlly
+\newdimension\MPurx
+\newdimension\MPury
-\ifdefined\MPbox \else \newbox \MPbox \fi
+\ifdefined\MPbox\else \newbox\MPbox\fi
\permanent\protected\def\setMPboundingbox#1#2#3#4% at some point we might pass them as base or scaled points
{\global\MPllx #1\onebasepoint
@@ -46,7 +46,7 @@
\global\MPurx \zeropoint
\global\MPury \zeropoint}
-\aliased\let\popMPboundingbox\relax
+\permanent\protected\lettonothing\popMPboundingbox
\permanent\protected\def\pushMPboundingbox
{\enforced\permanent\protected\edef\popMPboundingbox
@@ -88,14 +88,23 @@
% MPLIB specific:
+% \permanent\protected\def\startMPLIBtoPDF#1#2#3#4%
+% {\meta_process_graphic_figure_start
+% \dostarttagged\t!mpgraphic\empty
+% \naturalhpack attr \imageattribute \plusone \bgroup
+% \dousecolorparameter\s!black\forcecolorhack
+% \setMPboundingbox{#1}{#2}{#3}{#4}%
+% \setbox\MPbox\vpack\bgroup
+% % \forgetall % already done elsewhere
+% \noindent} % forces the proper cm in the backend
+
\permanent\protected\def\startMPLIBtoPDF#1#2#3#4%
{\meta_process_graphic_figure_start
\dostarttagged\t!mpgraphic\empty
\naturalhpack attr \imageattribute \plusone \bgroup
- \dousecolorparameter\s!black\forcecolorhack
+ \dousecolorparameter\s!black
\setMPboundingbox{#1}{#2}{#3}{#4}%
\setbox\MPbox\vpack\bgroup
- % \forgetall % already done elsewhere
\noindent} % forces the proper cm in the backend
\permanent\protected\def\stopMPLIBtoPDF
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-pos.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-pos.lmt
new file mode 100644
index 00000000000..fd54d7b5fd0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-pos.lmt
@@ -0,0 +1,63 @@
+if not modules then modules = { } end modules ['mlib-pos'] = {
+ version = 1.001,
+ comment = "companion to mlib-ctx.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+}
+
+local jobpositions = job.positions
+local mpnumeric = mp.inject.numeric
+local mpstring = mp.inject.string
+local scanstring = mp.scan.string
+local factor = number.dimenfactors.bp
+local registerdirect = metapost.registerdirect
+
+local page = jobpositions.page
+local paragraph = jobpositions.paragraph
+local column = jobpositions.column
+local region = jobpositions.region
+local x = jobpositions.x
+local y = jobpositions.y
+local xy = jobpositions.xy
+local width = jobpositions.width
+local height = jobpositions.height
+local depth = jobpositions.depth
+local leftskip = jobpositions.leftskip
+local rightskip = jobpositions.rightskip
+local hsize = jobpositions.hsize
+local parindent = jobpositions.parindent
+local hangindent = jobpositions.hangindent
+local hangafter = jobpositions.hangafter
+local lowerleft = jobpositions.lowerleft
+local upperleft = jobpositions.upperleft
+local lowerright = jobpositions.lowerright
+local upperright = jobpositions.upperright
+
+registerdirect("getpospage", function() return page (scanstring()) end)
+registerdirect("getposparagraph", function() return paragraph (scanstring()) end)
+registerdirect("getposcolumn", function() return column (scanstring()) end)
+registerdirect("getposregion", function() return region (scanstring()) end)
+registerdirect("getposx", function() return x (scanstring()) * factor end)
+registerdirect("getposy", function() return y (scanstring()) * factor end)
+registerdirect("getposwidth", function() return width (scanstring()) * factor end)
+registerdirect("getposheight", function() return height (scanstring()) * factor end)
+registerdirect("getposdepth", function() return depth (scanstring()) * factor end)
+registerdirect("getposleftskip", function() return leftskip (scanstring()) * factor end)
+registerdirect("getposrightskip", function() return rightskip (scanstring()) * factor end)
+registerdirect("getposhsize", function() return hsize (scanstring()) * factor end)
+registerdirect("getposparindent", function() return parindent (scanstring()) * factor end)
+registerdirect("getposhangindent", function() return hangindent(scanstring()) * factor end)
+registerdirect("getposhangafter", function() return hangafter (scanstring()) * factor end)
+
+local t = { 0, 0 } -- let's share
+
+registerdirect("getposxy", function() local x, y = xy (scanstring()) t[1] = x * factor t[2] = y * factor return t end)
+registerdirect("getposupperleft", function() local x, y = upperleft (scanstring()) t[1] = x * factor t[2] = y * factor return t end)
+registerdirect("getposlowerleft", function() local x, y = lowerleft (scanstring()) t[1] = x * factor t[2] = y * factor return t end)
+registerdirect("getposupperright", function() local x, y = upperright(scanstring()) t[1] = x * factor t[2] = y * factor return t end)
+registerdirect("getposlowerright", function() local x, y = lowerright(scanstring()) t[1] = x * factor t[2] = y * factor return t end)
+registerdirect("getposllx", function() local x, y = lowerleft (scanstring()) return x * factor end)
+registerdirect("getposlly", function() local x, y = lowerleft (scanstring()) return y * factor end)
+registerdirect("getposurx", function() local x, y = upperright(scanstring()) return x * factor end)
+registerdirect("getposury", function() local x, y = upperright(scanstring()) return y * factor end)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-pps.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-pps.lmt
index 32f23c39d27..b8f448964d3 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-pps.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-pps.lmt
@@ -6,14 +6,15 @@ if not modules then modules = { } end modules ['mlib-pps'] = {
license = "see context related readme files",
}
+local next = next
local format, gmatch, match, split, gsub = string.format, string.gmatch, string.match, string.split, string.gsub
local tonumber, type, unpack, next, select = tonumber, type, unpack, next, select
-local round, sqrt, min, max = math.round, math.sqrt, math.min, math.max
+local round, sqrt, min, max, abs = math.round, math.sqrt, math.min, math.max, math.abs
local insert, remove, concat = table.insert, table.remove, table.concat
local Cs, Cf, C, Cg, Ct, P, S, V, Carg = lpeg.Cs, lpeg.Cf, lpeg.C, lpeg.Cg, lpeg.Ct, lpeg.P, lpeg.S, lpeg.V, lpeg.Carg
local lpegmatch, tsplitat, tsplitter = lpeg.match, lpeg.tsplitat, lpeg.tsplitter
-local formatters = string.formatters
-local exists, savedata = io.exists, io.savedata
+local formatters, toboolean = string.formatters, string.toboolean
+local stepper = utilities.parsers.stepper
local mplib = mplib
local metapost = metapost
@@ -28,7 +29,7 @@ local mpscannumeric = scan.numeric
local injecttriplet = inject.triplet
-local registerscript = metapost.registerscript
+local registerdirect = metapost.registerdirect
local implement = interfaces.implement
local setmacro = interfaces.setmacro
@@ -36,8 +37,8 @@ local setmacro = interfaces.setmacro
local texsetbox = tex.setbox
local textakebox = tex.takebox -- or: nodes.takebox
local texrunlocal = tex.runlocal
-local copy_list = node.copy_list
-local flush_list = node.flush_list
+local copylist = nodes.copylist
+local flushlist = nodes.flushlist
local setmetatableindex = table.setmetatableindex
local sortedhash = table.sortedhash
@@ -115,7 +116,8 @@ local f_scn = formatters["%.3N"]
local f_shade = formatters["MpSh%s"]
local f_spot = formatters["/%s cs /%s CS %s SCN %s scn"]
-local s_cm_e = "Q"
+
+local s_cm_e <const> = "Q"
local function checked_color_pair(color,...)
if not color then
@@ -256,6 +258,8 @@ local function preset(t,k)
return v
end
+-- todo: nested startMPcode .. stopMPcode does weird
+
local function startjob(plugmode,kind,mpx)
insert(stack,top)
top = {
@@ -281,7 +285,7 @@ local function stopjob()
if top then
for slot, content in next, top.textexts do
if content then
- flush_list(content)
+ flushlist(content)
if trace_textexts then
report_textexts("freeing text %s",slot)
end
@@ -387,7 +391,7 @@ function models.rgb(cr)
elseif metapost.reducetogray then
if n == 1 then
local s = cr[1]
- checked_color_pair(f_gray,s,s)
+ return checked_color_pair(f_gray,s,s)
elseif n == 3 then
local r = cr[1]
local g = cr[2]
@@ -525,9 +529,9 @@ metapost.sxsy = sxsy
-- for stock mp we need to declare the booleans first
-local do_begin_fig = "; beginfig(1) ; "
-local do_end_fig = "; endfig ;"
-local do_safeguard = ";"
+local do_begin_fig <const> = "; beginfig(1) ; "
+local do_end_fig <const> = "; endfig ;"
+local do_safeguard <const> = ";"
function metapost.preparetextextsdata()
local textexts = top.textexts
@@ -566,7 +570,7 @@ local function checkaskedfig(askedfig) -- return askedfig, wrappit
end
-- This one is called from the \TEX\ end so the specification is different
--- from the specification to metapost,run cum suis! The definitions and
+-- from the specification to metapost.run cum suis! The definitions and
-- extension used to be handled here but are now delegated to the format
-- initializers because we need to accumulate them for nested instances (a
-- side effect of going single pass).
@@ -576,6 +580,7 @@ function metapost.graphic_base_pass(specification)
local top = startjob(true,"base",mpx)
local data = specification.data or ""
local inclusions = specification.inclusions or ""
+ local filtering = specification.filtering
local initializations = specification.initializations or ""
local askedfig,
wrappit = checkaskedfig(specification.figure)
@@ -587,6 +592,15 @@ function metapost.graphic_base_pass(specification)
top.mpx = mpx
top.data = data
top.initializations = initializations
+ if filtering then
+ if #filtering > 0 then
+ local t = { }
+ stepper(filtering,function(k) t[k] = true end)
+ filtering = next(t) and t or false
+ else
+ filtering = false
+ end
+ end
if trace_runs then
report_metapost("running job %s, asked figure %a",nofruns,askedfig)
end
@@ -594,6 +608,7 @@ function metapost.graphic_base_pass(specification)
mpx = mpx,
askedfig = askedfig,
incontext = true,
+ filtering = filtering,
data = {
inclusions,
wrappit and do_begin_fig or "",
@@ -709,15 +724,16 @@ function metapost.processplugins(object) -- each object (second pass)
if top and top.plugmode then
local prescript = object.prescript -- specifications
if prescript and #prescript > 0 then
- local before = { }
- local after = { }
- processoractions.runner(object,splitprescript(prescript) or { },before,after)
- return #before > 0 and before, #after > 0 and after
+ local before = { }
+ local after = { }
+ local options = splitprescript(prescript) or { }
+ processoractions.runner(object,options,before,after)
+ return #before > 0 and before, #after > 0 and after, options
else
local c = object.color
if c and #c > 0 then
local b, a = colorconverter(c)
- return { b }, { a }
+ return { b }, { a }, { }
end
end
end
@@ -742,7 +758,7 @@ local function cm(object)
local ry = fourth.x_coord - tx
if sx == 0 then sx = 0.00001 end
if sy == 0 then sy = 0.00001 end
- return sx, rx, ry, sy, tx, ty
+ return sx, rx, ry, sy, tx, ty -- different order elsewhere !
end
end
return 1, 0, 0, 1, 0, 0 -- weird case
@@ -760,6 +776,10 @@ end
local tx_reset, tx_process do
+ -- The dilemma is that we need to process the text in order to know the
+ -- dimensions but afterwards also need to apply color and such. So, we need
+ -- two passes, one immediately and one when we use it.
+
local eol = S("\n\r")^1
local cleaner = Cs((P("@@")/"@" + P("@")/"%%" + P(1))^0)
local splitter = Ct(
@@ -859,8 +879,8 @@ local tx_reset, tx_process do
mf_some_text(index,madetext,catcodes.numbers.ctxcatcodes) -- btex/etex ..
end
- registerscript("sometextext", function() mf_some_text(mpscannumeric(),mpscanstring(),mpscannumeric()) end)
- registerscript("madetextext", function() mf_made_text(mpscannumeric()) end)
+ registerdirect("sometextext", function() mf_some_text(mpscannumeric(),mpscanstring(),mpscannumeric()) end)
+ registerdirect("madetextext", function() mf_made_text(mpscannumeric()) end)
-- a label can be anything, also something mp doesn't like in strings
-- so we return an index instead
@@ -1014,6 +1034,10 @@ local tx_reset, tx_process do
end
end
+ local fasttrack = false -- we loose colors done with withcolor when true
+
+ directives.register("metapost.text.fasttrack", function(v) fasttrack = v end)
+
tx_process = function(object,prescript,before,after)
local data = top.texdata[metapost.properties.number] -- the current figure number, messy
local index = tonumber(prescript.tx_index)
@@ -1039,9 +1063,14 @@ local tx_reset, tx_process do
local mp_text = top.texstrings[mp_index]
local mp_hash = prescript.tx_cache
local box
+ local donebox = fasttrack and top.textexts[mp_index]
if mp_hash == "no" then
- texrunlocal("mptexttoks")
- box = textakebox("mptextbox")
+ if donebox then
+ box = copylist(donebox)
+ else
+ texrunlocal("mptexttoks")
+ box = textakebox("mptextbox")
+ end
else
local cache = data.texhash
if mp_hash then
@@ -1071,10 +1100,14 @@ local tx_reset, tx_process do
end
box = cache[mp_hash]
if box then
- box = copy_list(box)
+ box = copylist(box)
else
- texrunlocal("mptexttoks")
- box = textakebox("mptextbox")
+ if donebox then
+ box = copylist(donebox)
+ else
+ texrunlocal("mptexttoks")
+ box = textakebox("mptextbox")
+ end
cache[mp_hash] = box
end
end
@@ -1220,7 +1253,10 @@ local function sh_process(object,prescript,before,after)
end
end
end
-
+-- local transformation = prescript.sh_transformation
+-- if transformation then
+-- print("todo: " .. transformation)
+-- end
local steps = tonumber(prescript.sh_step) or 1
local sh_color_a = prescript.sh_color_a_1 or prescript.sh_color_a or "1"
local sh_color_b = prescript.sh_color_b_1 or prescript.sh_color_b or "1" -- sh_color_b_<sh_steps>
@@ -1303,18 +1339,25 @@ end
local function bm_process(object,prescript,before,after)
local bm_xresolution = prescript.bm_xresolution
+ local bm_yresolution = prescript.bm_yresolution
if bm_xresolution then
- before[#before+1] = f_cm_b(cm(object))
+-- before[#before+1] = f_cm_b(cm(object))
+local sx, rx, ry, sy, tx, ty = cm(object)
+local postscript = object.postscript
before[#before+1] = function()
- figures.bitmapimage {
- xresolution = tonumber(bm_xresolution),
- yresolution = tonumber(prescript.bm_yresolution),
- width = 1/basepoints,
- height = 1/basepoints,
- data = object.postscript
- }
+context.MPLIBscaledcm(function()
+ figures.bitmapimage {
+ xresolution = tonumber(bm_xresolution),
+ yresolution = tonumber(bm_yresolution),
+ width = 1/basepoints,
+ height = 1/basepoints,
+ data = postscript,
+ format = "png",
+ }
+ end
+, sx, rx, ry, sy, tx, ty)
end
- before[#before+1] = s_cm_e
+-- before[#before+1] = s_cm_e
object.path = false
object.color = false
object.grouped = true
@@ -1326,16 +1369,24 @@ end
local function ps_process(object,prescript,before,after)
local ps_label = prescript.ps_label
if ps_label then
- local op = object.path
- local first = op[1]
- local third = op[3]
- local x = first.x_coord
- local y = first.y_coord
- local w = third.x_coord - x
- local h = third.y_coord - y
- local properties = metapost.properties
- x = x - properties.llx
- y = properties.ury - y
+ local op = object.path
+ local first = op[1]
+ local third = op[3]
+ local x, y, w, h
+ if first and third then
+ local properties = metapost.properties
+ x = first.x_coord
+ y = first.y_coord
+ w = third.x_coord - x
+ h = third.y_coord - y
+ x = x - properties.llx
+ y = properties.ury - y
+ else
+ x = 0
+ y = 0
+ w = 0
+ h = 0
+ end
before[#before+1] = function()
context.MPLIBpositionwhd(ps_label,x,y,w,h)
end
@@ -1456,6 +1507,8 @@ local function tr_process(object,prescript,before,after)
sp_specs = concat(sp_specs,",")
definemultitonecolor(sp_name,sp_specs,"","")
sp_type = "named"
+ elseif sp_type == "named" then
+ cs = { 1 } -- factor 1
end
if sp_type == "named" then
-- we might move this to another namespace .. also, named can be a spotcolor
@@ -1526,21 +1579,29 @@ end
-- groups
+local function getcorners(path)
+-- if #path == 1 then
+-- return 0, 0, 0, 0
+-- else
+ local p1 = path[1]
+ local p2 = path[2]
+ local p3 = path[3]
+ local p4 = path[4]
+ return
+ min(p1.x_coord,p2.x_coord,p3.x_coord,p4.x_coord),
+ min(p1.y_coord,p2.y_coord,p3.y_coord,p4.y_coord),
+ max(p1.x_coord,p2.x_coord,p3.x_coord,p4.x_coord),
+ max(p1.y_coord,p2.y_coord,p3.y_coord,p4.y_coord)
+-- end
+end
+
local function gr_process(object,prescript,before,after)
local gr_state = prescript.gr_state
if not gr_state then
return
elseif gr_state == "start" then
local gr_type = utilities.parsers.settings_to_set(prescript.gr_type)
- local path = object.path
- local p1 = path[1]
- local p2 = path[2]
- local p3 = path[3]
- local p4 = path[4]
- local llx = min(p1.x_coord,p2.x_coord,p3.x_coord,p4.x_coord)
- local lly = min(p1.y_coord,p2.y_coord,p3.y_coord,p4.y_coord)
- local urx = max(p1.x_coord,p2.x_coord,p3.x_coord,p4.x_coord)
- local ury = max(p1.y_coord,p2.y_coord,p3.y_coord,p4.y_coord)
+ local llx, lly, urx, ury = getcorners(object.path)
before[#before+1] = function()
context.MPLIBstartgroup(
gr_type.isolated and 1 or 0,
@@ -1558,6 +1619,46 @@ local function gr_process(object,prescript,before,after)
object.grouped = true
end
+-- patterns
+
+local pattern_index = 0
+
+local function pt_process(object,prescript,before,after)
+ local pt_state = prescript.pt_state
+ if not pt_state then
+ return
+ else
+ local pt_action = prescript.pt_action
+ if pt_state == "start" then
+ local float = toboolean(prescript.pt_float) and 1 or 0
+ local llx, lly, urx, ury = getcorners(object.path)
+ if abs(llx) < 0.0001 then llx = 0 end
+ if abs(lly) < 0.0001 then lly = 0 end
+ if abs(urx) < 0.0001 then urx = 0 end
+ if abs(ury) < 0.0001 then ury = 0 end
+ before[#before+1] = function()
+ if pt_action == "set" then
+ pattern_index = pattern_index + 1
+ context.MPLIBstartsetpattern(pattern_index, llx, lly, urx, ury, float)
+ else
+ context.MPLIBstartgetpattern(pattern_index, llx, lly, urx, ury, float)
+ end
+ end
+ elseif pt_state == "stop" then
+ after[#after+1] = function()
+ if pt_action == "set" then
+ context.MPLIBstopsetpattern()
+ else
+ context.MPLIBstopgetpattern()
+ end
+ end
+ end
+ end
+ object.path = false
+ object.color = false
+ object.grouped = true
+end
+
-- outlines
local ot_reset, ot_process do
@@ -1637,6 +1738,7 @@ installplugin { name = "outline", reset = ot_reset, process = ot_process }
installplugin { name = "color", reset = cl_reset, process = cl_process }
installplugin { name = "text", reset = tx_reset, process = tx_process }
installplugin { name = "group", reset = gr_reset, process = gr_process }
+installplugin { name = "pattern", reset = pt_reset, process = pt_process }
installplugin { name = "graphictext", reset = gt_reset, process = gt_process }
installplugin { name = "shade", reset = sh_reset, process = sh_process }
installplugin { name = "bitmap", reset = bm_reset, process = bm_process }
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-pps.mkxl b/Master/texmf-dist/tex/context/base/mkxl/mlib-pps.mkxl
index 2fa721445e8..521865e08cb 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-pps.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-pps.mkxl
@@ -76,15 +76,24 @@
\aliased\let\MPLIBsettextX\MPLIBsetNtextX
+% \permanent\permanent\protected\def\MPLIBgettextscaled#1#2#3% why a copy .. can be used more often
+% {\clf_mpgettext\MPtextbox #1%
+% \vpack to \zeropoint
+% {\vss
+% %\hpack to \zeropoint \s!container
+% \hcontainer to \zeropoint
+% {\scale
+% [\c!sx=#2,\c!sy=#3]%
+% {\raise\dp\MPtextbox\box\MPtextbox}\forcecolorhack\hss}}}
+
\permanent\permanent\protected\def\MPLIBgettextscaled#1#2#3% why a copy .. can be used more often
{\clf_mpgettext\MPtextbox #1%
\vpack to \zeropoint
{\vss
- %\hpack to \zeropoint \s!container
\hcontainer to \zeropoint
{\scale
[\c!sx=#2,\c!sy=#3]%
- {\raise\dp\MPtextbox\box\MPtextbox}\forcecolorhack\hss}}}
+ {\raise\dp\MPtextbox\box\MPtextbox}\hss}}}
\let\mlib_sx\!!zerocount % set at the lua end
\let\mlib_sy\!!zerocount % set at the lua end
@@ -99,24 +108,37 @@
% horrible (we could inline scale and matrix code):
+% \permanent\protected\def\MPLIBgettextscaledcm#1#2#3#4#5#6#7#8#9% 2-7: sx,rx,ry,sy,tx,ty
+% {\clf_mpgettext\MPtextbox #1%
+% \setbox\MPbox\hpack\bgroup
+% \dotransformnextbox{#2}{#3}{#4}{#5}{#6}{#7}% does push pop ... will be changed to proper lua call (avoid small numbers)
+% \vpack to \zeropoint\bgroup
+% \vss
+% %\hpack to \zeropoint \s!container \bgroup
+% \hcontainer to \zeropoint \bgroup
+% % \scale[\c!sx=#8,\c!sy=#9]{\raise\dp\MPtextbox\box\MPtextbox}%
+% % \scale[\c!sx=#8,\c!sy=#9,\c!depth=\v!no]{\box\MPtextbox}%
+% \fastsxsy{#8}{#9}{\raise\dp\MPtextbox\box\MPtextbox}%
+% % This gives: LuaTeX warning: Misplaced \pdfrestore .. don't ask me why.
+% % but I'll retry it some day soon.
+% % \dostartscaling{#8}{#9}%
+% % \raise\dp\MPtextbox\box\MPtextbox
+% % \dostopscaling
+% \forcecolorhack % can go away ... already in the scale macro
+% \hss
+% \egroup
+% \egroup
+% \egroup
+% \smashbox\MPbox
+% \box\MPbox}
+
\permanent\protected\def\MPLIBgettextscaledcm#1#2#3#4#5#6#7#8#9% 2-7: sx,rx,ry,sy,tx,ty
{\clf_mpgettext\MPtextbox #1%
\setbox\MPbox\hpack\bgroup
\dotransformnextbox{#2}{#3}{#4}{#5}{#6}{#7}% does push pop ... will be changed to proper lua call (avoid small numbers)
\vpack to \zeropoint\bgroup
- \vss
- %\hpack to \zeropoint \s!container \bgroup
- \hcontainer to \zeropoint \bgroup
- % \scale[\c!sx=#8,\c!sy=#9]{\raise\dp\MPtextbox\box\MPtextbox}%
- % \scale[\c!sx=#8,\c!sy=#9,\c!depth=\v!no]{\box\MPtextbox}%
- \fastsxsy{#8}{#9}{\raise\dp\MPtextbox\box\MPtextbox}%
- % This gives: LuaTeX warning: Misplaced \pdfrestore .. don't ask me why.
- % but I'll retry it some day soon.
- % \dostartscaling{#8}{#9}%
- % \raise\dp\MPtextbox\box\MPtextbox
- % \dostopscaling
- \forcecolorhack % can go away ... already in the scale macro
- \hss
+ \vss \hcontainer to \zeropoint \bgroup
+ \fastsxsy{#8}{#9}{\raise\dp\MPtextbox\box\MPtextbox}\hss
\egroup
\egroup
\egroup
@@ -150,6 +172,23 @@
\box\MPbox
\endgroup}
+\permanent\protected\def\MPLIBscaledcm#1#2#3#4#5#6#7% 2-7: sx,rx,ry,sy,tx,ty
+ {\begingroup
+% \setbox\MPbox
+ \hpack\bgroup
+ \dotransformnextbox{#2}{#3}{#4}{#5}{#6}{#7}%
+ %\dotransformnextbox{\luaexpr{#2/10}}{\luaexpr{#3/10}}{\luaexpr{#4/10}}{\luaexpr{#5/10}}{\luaexpr{#6/10}}{\luaexpr{#7/10}}%
+ \vpack to \zeropoint\bgroup
+ \vss
+ \hcontainer to \zeropoint \bgroup
+ #1\hss % used for mp bitmaps
+ %\fastsxsy{10}{10}{#1}\hss
+ \egroup
+ \egroup
+ \egroup
+% \smashbox\MPbox\box\MPbox
+ \endgroup}
+
\permanent\protected\def\MPLIBgraphictext#1% use at mp end
{\startTEXpage[\c!scale=10000]#1\stopTEXpage}
@@ -207,14 +246,55 @@
\box\scratchbox
\endgroup}
-\aliased\let\MPLIBstopgroup\relax
+\permanent\protected\lettonothing\MPLIBstopgroup
\permanent\protected\def\MPLIBstartgroup#1#2#3#4#5#6% isolated 0/1, knockout 0/1 llx lly urx ury
{\begingroup
\setbox\scratchbox\hpack\bgroup
\enforced\permanent\protected\def\MPLIBstopgroup{\mlib_stop_group{#1}{#2}{#3}{#4}{#5}{#6}}}
-% For now here ... will be cleaned up:
+%D Not that much code is needed because we already have a mechanism already. For
+%D some reason there is no option to use the current positions (pattern space mess)
+%D so we need a position. I could delegate this to the backend but patterns are
+%D selsom used.
+
+\permanent\protected\def\MPLIBstartsetpattern#1#2#3#4#5#6%
+ {\normalexpanded{\registerpattern[mp-pattern-#1]\ifnum#6=\zerocount[hoffset=\MPx{mp-pattern-#1},voffset=\MPy{mp-pattern-#1}]\fi}%
+ \bgroup
+ \dowithnextbox{%
+ \boxxoffset\nextbox-#2\onebasepoint
+ \boxyoffset\nextbox-#3\onebasepoint
+ \wd\nextbox\dimexpr#4\onebasepoint-#2\onebasepoint\relax
+ \ht\nextbox\dimexpr#5\onebasepoint-#3\onebasepoint\relax
+ \box\nextbox}%
+ \hpack\bgroup}
+
+\permanent\protected\def\MPLIBstopsetpattern
+ {\egroup
+ \egroup}
+
+\permanent\protected\def\MPLIBstartgetpattern#1#2#3#4#5#6%
+ {\setbox\nextbox\hpack\bgroup
+ \applypattern
+ [\c!name=mp-pattern-#1,
+% \c!width=2\dimexpr#4\onebasepoint-#2\onebasepoint\relax,
+ \c!width=\dimexpr#4\onebasepoint-#2\onebasepoint\relax,
+% \c!height=2\dimexpr#5\onebasepoint-#3\onebasepoint\relax]%
+ \c!height=\dimexpr#5\onebasepoint-#3\onebasepoint\relax]%
+ \hss
+ \egroup
+ % \boxyoffset\nextbox -.5\dimexpr#5\onebasepoint-#3\onebasepoint\relax
+ \boxyoffset\nextbox \dimexpr#3\onebasepoint\relax
+ % \boxxoffset\nextbox -.5\dimexpr#4\onebasepoint-#2\onebasepoint\relax
+ \boxxoffset\nextbox \dimexpr#2\onebasepoint\relax
+ \ht\nextbox\zeropoint
+ \wd\nextbox\zeropoint
+ \dp\nextbox\zeropoint
+ \normalexpanded{\ifnum#6=\zerocount\hpos{mp-pattern-#1}\fi}{\box\nextbox}}
+
+\permanent\protected\lettonothing\MPLIBstopgetpattern
+
+% For now here ... will be cleaned up and become macro calls instead:
\newtoks\mptexttoks
\newbox \mptextbox
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-run.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-run.lmt
index eacb148cc6c..0e955818e19 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-run.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-run.lmt
@@ -38,9 +38,13 @@ local emptystring = string.is_empty
local trace_graphics = false trackers.register("metapost.graphics", function(v) trace_graphics = v end)
local trace_tracingall = false trackers.register("metapost.tracingall", function(v) trace_tracingall = v end)
-local report_metapost = logs.reporter("metapost")
local texerrormessage = logs.texerrormessage
+local report_metapost = logs.reporter("metapost")
+local report_terminal = logs.reporter("metapost","terminal")
+local report_tracer = logs.reporter("metapost","trace")
+local report_error = logs.reporter("metapost","error")
+
local starttiming = statistics.starttiming
local stoptiming = statistics.stoptiming
@@ -90,17 +94,7 @@ local function prepareddata(data)
end
end
--- local function executempx(mpx,data)
--- local terminal = mpxterminals[mpx]
--- if terminal then
--- terminal.writer(data)
--- data = ""
--- elseif type(data) == "table" then
--- data = prepareddata(data,collapse)
--- end
--- metapost.nofruns = metapost.nofruns + 1
--- return mpx:execute(data)
--- end
+local execute = mplib.execute
local function executempx(mpx,data)
local terminal = mpxterminals[mpx]
@@ -111,7 +105,8 @@ local function executempx(mpx,data)
data = prepareddata(data,collapse)
end
metapost.nofruns = metapost.nofruns + 1
- return mpx:execute(data)
+ local result = execute(mpx,data)
+ return result
end
directives.register("mplib.texerrors", function(v) metapost.texerrors = v end)
@@ -184,6 +179,34 @@ end
local seed = nil
+local default_tolerance = 131/65536.0 -- a little below 0.001 * 0x7FFF/0x4000
+local bend_tolerance = default_tolerance
+local move_tolerance = default_tolerance
+
+----- bend_tolerance = 10/2000
+----- move_tolerance = bend_tolerance
+
+function metapost.setbendtolerance(t)
+ bend_tolerance = t or default_tolerance
+end
+function metapost.setmovetolerance(t)
+ move_tolerance = t or default_tolerance
+end
+function metapost.settolerance(t)
+ bend_tolerance = t or default_tolerance
+ move_tolerance = t or default_tolerance
+end
+
+function metapost.getbendtolerance()
+ return bend_tolerance
+end
+function metapost.getmovetolerance()
+ return move_tolerance
+end
+function metapost.gettolerance(t)
+ return bend_tolerance, move_tolerance
+end
+
function metapost.load(name,method)
starttiming(mplib)
if not seed then
@@ -196,16 +219,18 @@ function metapost.load(name,method)
end
method = method and methods[method] or "scaled"
local mpx, terminal = new_instance {
--- noninteractive = true;
--- ini_version = true,
- math_mode = method,
- run_script = metapost.runscript,
- script_error = metapost.scripterror,
- make_text = metapost.maketext,
- extensions = 1,
- -- random_seed = seed,
- utf8_mode = true,
- text_mode = true,
+ bendtolerance = bend_tolerance,
+ movetolerance = move_tolerance,
+ mathmode = method,
+ runscript = metapost.runscript,
+ runinternal = metapost.runinternal,
+ scripterror = metapost.scripterror,
+ maketext = metapost.maketext,
+ handlers = {
+ log = metapost.newlogger(),
+ -- warning = function(...) end,
+ -- error = function(...) end,
+ },
}
report_metapost("initializing number mode %a",method)
local result
@@ -369,180 +394,178 @@ function metapost.reset(mpx)
end
end
-local mp_tra = { }
-local mp_tag = 0
+if not metapost.process then
--- key/values
+ function metapost.process(specification)
+ metapost.run(specification)
+ end
-do
+end
- local stack, top = { }, nil
+-- run, process, convert and flush all work with a specification with the
+-- following (often optional) fields
+--
+-- mpx string or mp object
+-- data string or table of strings
+-- flusher table with flush methods
+-- askedfig string ("all" etc) or number
+-- incontext boolean
+-- plugmode boolean
- function metapost.setvariable(k,v)
- if top then
- top[k] = v
- else
- metapost.variables[k] = v
- end
- end
+do
- function metapost.pushvariable(k)
- local t = { }
- if top then
- insert(stack,top)
- top[k] = t
- else
- metapost.variables[k] = t
- end
- top = t
+ local function makebeginbanner(specification)
+ return formatters["%% begin graphic: n=%s\n\n"](metapost.n)
end
- function metapost.popvariable()
- top = remove(stack)
+ local function makeendbanner(specification)
+ return "\n% end graphic\n\n"
end
- local stack = { }
+ -- This is somewhat complex. We want a logger that is bound to an instance and
+ -- we implement the rest elsewhere so we need some hook. When we decide to move
+ -- the mlib-fio code here we can avoid some of the fuzzyness.
- function metapost.pushvariables()
- insert(stack,metapost.variables)
- metapost.variables = { }
- end
+ -- In the luatex lib we have log and error an dterm fields, but here we don't
+ -- because we handle that ourselves.
- function metapost.popvariables()
- metapost.variables = remove(stack) or metapost.variables
- end
+ -- mplib.realtimelogging = false
-end
+ local mp_tra = { }
+ local mp_tag = 0
+ local stack = { }
+ local logger = false
+ local logging = true
-if not metapost.process then
+ local function pushlogger(mpx,tra)
+ insert(stack,logger)
+ logger = tra or false
+ end
- function metapost.process(specification)
- metapost.run(specification)
+ local function poplogger(mpx)
+ logger = remove(stack) or false
end
-end
+ function metapost.checktracingonline(n)
+ -- todo
+ end
--- run, process, convert and flush all work with a specification with the
--- following (often optional) fields
---
--- mpx string or mp object
--- data string or table of strings
--- flusher table with flush methods
--- askedfig string ("all" etc) or number
--- incontext boolean
--- plugmode boolean
+ function metapost.setlogging(state)
+ logging = state
+ end
-local function makebeginbanner(specification)
- return formatters["%% begin graphic: n=%s\n\n"](metapost.n)
-end
+ function metapost.newlogger()
-local function makeendbanner(specification)
- return "\n% end graphic\n\n"
-end
+ -- In a traditional scenario there are three states: terminal, log as well
+ -- as both. The overhead of logging is large because metapost flushes each
+ -- character (maybe that should be improved but caching at the libs end also
+ -- has price, probably more than delegating to LUA).
-function metapost.run(specification)
- local mpx = specification.mpx
- local data = specification.data
- local converted = false
- local result = { }
- local mpxdone = type(mpx) == "string"
- if mpxdone then
- mpx = metapost.pushformat { instance = mpx, format = mpx }
- end
- if mpx and data then
- local tra = nil
- starttiming(metapost) -- why not at the outer level ...
- metapost.variables = { } -- todo also push / pop
- metapost.pushscriptrunner(mpx)
- if trace_graphics then
- tra = mp_tra[mpx]
- if not tra then
- mp_tag = mp_tag + 1
- local jobname = tex.jobname
- tra = {
- inp = io.open(formatters["%s-mplib-run-%03i.mp"] (jobname,mp_tag),"w"),
- log = io.open(formatters["%s-mplib-run-%03i.log"](jobname,mp_tag),"w"),
- }
- mp_tra[mpx] = tra
+ -- term=1 log=2 term+log =3
+
+ local l, nl, dl = { }, 0, false
+
+ return function(target,str)
+ if not logging then
+ return
+ elseif target == 4 then
+ report_error(str)
+ else
+ if logger and (target == 2 or target == 3) then
+ logger:write(str)
+ end
+ if target == 1 or target == 3 then
+ if str == "\n" then
+ mplib.realtimelogging = true
+ if nl > 0 then
+ report_tracer(concat(l,"",1,nl))
+ nl, dl = 0, false
+ elseif not dl then
+ report_tracer("")
+ dl = true
+ end
+ else
+ nl = nl + 1
+ l[nl] = str
+ end
+ end
end
- local banner = makebeginbanner(specification)
- tra.inp:write(banner)
- tra.log:write(banner)
end
- local function process(d,i)
- if d then
+
+ end
+
+ function metapost.run(specification)
+ local mpx = specification.mpx
+ local data = specification.data
+ local converted = false
+ local result = { }
+ local mpxdone = type(mpx) == "string"
+ if mpxdone then
+ mpx = metapost.pushformat { instance = mpx, format = mpx }
+ end
+ if mpx and data then
+ local tra = false
+ starttiming(metapost) -- why not at the outer level ...
+ metapost.variables = { } -- todo also push / pop
+ metapost.pushscriptrunner(mpx)
+ if trace_graphics then
+ tra = mp_tra[mpx]
+ if not tra then
+ mp_tag = mp_tag + 1
+ local jobname = tex.jobname
+ tra = {
+ inp = io.open(formatters["%s-mplib-run-%03i.mp"] (jobname,mp_tag),"w"),
+ log = io.open(formatters["%s-mplib-run-%03i.log"](jobname,mp_tag),"w"),
+ }
+ mp_tra[mpx] = tra
+ end
+ local banner = makebeginbanner(specification)
+ tra.inp:write(banner)
+ tra.log:write(banner)
+ pushlogger(mpx,tra and tra.log)
+ else
+ pushlogger(mpx,false)
+ end
+ if trace_tracingall then
+ executempx(mpx,"tracingall;")
+ end
+ --
+ if data then
if trace_graphics then
- if i then
- tra.inp:write(formatters["\n%% begin snippet %s\n"](i))
- end
- if type(d) == "table" then
- for i=1,#d do
- tra.inp:write(d[i])
+ if type(data) == "table" then
+ for i=1,#data do
+ tra.inp:write(data[i])
end
else
- tra.inp:write(d)
- end
- if i then
- tra.inp:write(formatters["\n%% end snippet %s\n"](i))
+ tra.inp:write(data)
end
end
starttiming(metapost.exectime)
- result = executempx(mpx,d)
+ result = executempx(mpx,data)
stoptiming(metapost.exectime)
- if trace_graphics and result then
- local str = result.log or result.error
- if str and str ~= "" then
- tra.log:write(str)
- end
- end
- if not metapost.reporterror(result) then
- if metapost.showlog then
- -- make function and overload in lmtx
- local str = result.term ~= "" and result.term or "no terminal output"
- if not emptystring(str) then
- metapost.lastlog = metapost.lastlog .. "\n" .. str
- report_metapost("log: %s",str)
- end
- end
- if result.fig then
- converted = metapost.convert(specification,result)
- end
+ if not metapost.reporterror(result) and result.fig then
+ converted = metapost.convert(specification,result)
end
- elseif i then
- report_metapost("error: invalid graphic component %s",i)
else
report_metapost("error: invalid graphic")
end
- end
-
--- local data = prepareddata(data)
- if type(data) == "table" then
- if trace_tracingall then
- executempx(mpx,"tracingall;")
- end
- process(data)
--- for i=1,#data do
--- process(data[i],i)
--- end
- else
- if trace_tracingall then
- data = "tracingall;" .. data
+ --
+ if trace_graphics then
+ local banner = makeendbanner(specification)
+ tra.inp:write(banner)
+ tra.log:write(banner)
end
- process(data)
+ stoptiming(metapost)
+ poplogger()
+ metapost.popscriptrunner()
end
- if trace_graphics then
- local banner = makeendbanner(specification)
- tra.inp:write(banner)
- tra.log:write(banner)
+ if mpxdone then
+ metapost.popformat()
end
- stoptiming(metapost)
- metapost.popscriptrunner()
- end
- if mpxdone then
- metapost.popformat()
+ return converted, result
end
- return converted, result
+
end
if not metapost.convert then
@@ -553,69 +576,6 @@ if not metapost.convert then
end
--- This will be redone as we no longer output svg of ps!
-
--- function metapost.directrun(formatname,filename,outputformat,astable,mpdata)
--- local fullname = file.addsuffix(filename,"mp")
--- local data = mpdata or io.loaddata(fullname)
--- if outputformat ~= "svg" then
--- outputformat = "mps"
--- end
--- if not data then
--- report_metapost("unknown file %a",filename)
--- else
--- local mpx = metapost.checkformat(formatname)
--- if not mpx then
--- report_metapost("unknown format %a",formatname)
--- else
--- report_metapost("processing %a",(mpdata and (filename or "data")) or fullname)
--- local result = executempx(mpx,data)
--- if not result then
--- report_metapost("error: no result object returned")
--- elseif result.status > 0 then
--- report_metapost("error: %s",(result.term or "no-term") .. "\n" .. (result.error or "no-error"))
--- else
--- if metapost.showlog then
--- metapost.lastlog = metapost.lastlog .. "\n" .. result.term
--- report_metapost("info: %s",result.term or "no-term")
--- end
--- local figures = result.fig
--- if figures then
--- local sorted = table.sortedkeys(figures)
--- if astable then
--- local result = { }
--- report_metapost("storing %s figures in table",#sorted)
--- for k=1,#sorted do
--- local v = sorted[k]
--- if outputformat == "mps" then
--- result[v] = figures[v]:postscript()
--- else
--- result[v] = figures[v]:svg() -- (3) for prologues
--- end
--- end
--- return result
--- else
--- local basename = file.removesuffix(file.basename(filename))
--- for k=1,#sorted do
--- local v = sorted[k]
--- local output
--- if outputformat == "mps" then
--- output = figures[v]:postscript()
--- else
--- output = figures[v]:svg() -- (3) for prologues
--- end
--- local outname = formatters["%s-%s.%s"](basename,v,outputformat)
--- report_metapost("saving %s bytes in %a",#output,outname)
--- io.savedata(outname,output)
--- end
--- return #sorted
--- end
--- end
--- end
--- end
--- end
--- end
-
function metapost.directrun(formatname,filename,outputformat,astable,mpdata)
report_metapost("producing postscript and svg is no longer supported")
end
@@ -656,9 +616,6 @@ do
format = "metafun", -- or: minifun
method = "double",
}
--- if not code then
--- code = ""
--- end
metapost.process {
mpx = mpx,
flusher = flusher,
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-scn.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-scn.lmt
index e68abf5873c..ed56e113d00 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-scn.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-scn.lmt
@@ -28,7 +28,7 @@ if not modules then modules = { } end modules ['mlib-scn'] = {
local type, next, rawget, getmetatable, tonumber = type, next, rawget, getmetatable, tonumber
local byte, gmatch = string.byte, string.gmatch
-local insert, remove = table.insert, table.remove
+local insert, remove, combine = table.insert, table.remove, table.combine
local mplib = mplib
local metapost = metapost
@@ -137,11 +137,6 @@ scanset = function() -- can be optimized, we now read twice
end
end
-local function scan_pair () return scanpair (true) end
-local function scan_color () return scancolor (true) end
-local function scan_cmykcolor() return scancmykcolor(true) end
-local function scan_transform() return scantransform(true) end
-
tokenscanners = {
[leftbrace_code] = scanset,
[numeric_code] = scannumeric,
@@ -154,10 +149,10 @@ typescanners = {
[types.numeric] = scannumeric,
[types.string] = scanstring,
[types.boolean] = scanboolean,
- [types.pair] = scan_pair,
- [types.color] = scan_color,
- [types.cmykcolor] = scan_cmykcolor,
- [types.transform] = scan_transform,
+ [types.pair] = function() return scanpair (true) end,
+ [types.color] = function() return scancolor (true) end,
+ [types.cmykcolor] = function() return scancmykcolor(true) end,
+ [types.transform] = function() return scantransform(true) end,
[types.path] = scanpath,
[types.pen] = scanpen,
}
@@ -167,6 +162,18 @@ table.setmetatableindex(tokenscanners,function()
return typescanners[e] or scanexpression
end)
+scanners.typescanners = typescanners
+scanners.tokenscanners = tokenscanners
+
+scanners.whatever = function()
+ local kind = scantoken(true)
+ if kind == leftdelimiter_code or kind == tag_code or kind == capsule_code then
+ return (typescanners[scanexpression(true)] or scanexpression)()
+ else
+ return tokenscanners[kind]()
+ end
+end
+
-- a key like 'color' has code 'declare'
local function scanparameters(fenced)
@@ -181,18 +188,29 @@ local function scanparameters(fenced)
end
while true do
-- local s = scansymbol()
- local s = scansymbol(false,false)
+ local s = scansymbol(false,false) -- keep expand
if s == close then
break;
elseif s == "," then
-- continue
else
- local t = scantoken(true)
- if t == equals_code or t == colon_code then
+-- local t = scantoken(true)
+-- if t == equals_code or t == colon_code then
+-- -- optional equal or :
+-- scantoken()
+-- else
+-- end
+-- local kind = scantoken(true)
+
+-- test:
+--
+ local kind = scantoken(true)
+ if kind == equals_code or kind == colon_code then
-- optional equal or :
scantoken()
+ local kind = scantoken(true)
end
- local kind = scantoken(true)
+
if kind == leftdelimiter_code or kind == tag_code or kind == capsule_code then
kind = scanexpression(true)
data[s] = (typescanners[kind] or scanexpression)()
@@ -222,23 +240,36 @@ local function get_parameters(nested)
if s == "]" then
break;
elseif s == "," then
- -- continue
- else
- local t = scantoken(true)
- if t == equals_code or t == colon_code then
- -- optional equal or :
- scantoken()
- end
- local kind = scantoken(true)
- if kind == leftdelimiter_code or kind == tag_code or kind == capsule_code then
- kind = scanexpression(true)
- data[s] = (typescanners[kind] or scanexpression)()
- elseif kind == leftbracket_code then
- data[s] = get_parameters(true)
+ goto again
+ elseif s == "[" then
+-- s = scannumeric()
+ s = scaninteger()
+ if scantoken() == rightbracket_code then
+ goto assign
else
- data[s] = tokenscanners[kind]()
+ report("] expected")
end
+ else
+ goto assign
+ end
+ ::assign::
+ local t = scantoken(true)
+ if t == equals_code or t == colon_code then
+ -- optional equal or :
+ scantoken()
end
+ local kind = scantoken(true)
+ if kind == leftdelimiter_code or kind == tag_code or kind == capsule_code then
+ kind = scanexpression(true)
+ data[s] = (typescanners[kind] or scanexpression)()
+ elseif kind == leftbracket_code then
+ data[s] = get_parameters(true)
+ elseif kind == comma_code then
+ goto again
+ else
+ data[s] = tokenscanners[kind]()
+ end
+ ::again::
end
return data
end
@@ -258,7 +289,27 @@ local function getparameters()
setmetatableindex(parameters,presets)
end
namespaces[namespace] = parameters
- --
+end
+
+local function mergeparameters()
+ local namespace = scanstring()
+ local parameters = get_parameters()
+ local target = namespaces[namespace]
+ if target then
+ combine(target,parameters)
+ else
+ -- same as below
+ local presets = presets[namespace]
+ local passed = passed[namespace]
+ if passed then
+ if presets then
+ setmetatableindex(passed,presets)
+ end
+ setmetatableindex(parameters,passed)
+ elseif presets then
+ setmetatableindex(parameters,presets)
+ end
+ end
end
local function applyparameters()
@@ -279,8 +330,9 @@ local function applyparameters()
end
namespaces[namespace] = parameters
-- till here
- mpprint(action)
+ -- mpprint(action)
namespaces = saved
+ return action
end
local knownparameters = { }
@@ -310,14 +362,14 @@ local function collectnames()
local t = scantoken(true)
-- (1) not really needed
if t == numeric_code then
- n = n + 1 l[n] = scaninteger(1)
+ n = n + 1 l[n] = scannumeric(1) -- so a float even if it is an index
elseif t == string_code then
n = n + 1 l[n] = scanstring(1)
elseif t == nullary_code then
n = n + 1 l[n] = scanboolean(1)
elseif t == leftbracket_code then
scantoken() -- leftbacket
- n = n + 1 l[n] = scaninteger(1)
+ n = n + 1 l[n] = scaninteger(1) -- forces an index
scantoken() -- rightbacket
elseif t == leftdelimiter_code or t == tag_code or t == capsule_code then
t = scanexpression(true)
@@ -380,9 +432,11 @@ end
-- todo:
-local function getparameter()
+local function getparameter(v)
local list, n = collectnames()
- local v = namespaces
+ if not v then
+ v = namespaces
+ end
for i=1,n do
local l = list[i]
local vl = v[l]
@@ -399,9 +453,9 @@ local function getparameter()
v = vl
end
if v == nil then
- return injectnumeric(0)
+ return 0
else
- return get(v)
+ return v
end
end
@@ -423,11 +477,12 @@ local function hasparameter()
end
v = vl
end
- if v == nil then
- return injectboolean(false)
- else
- return injectboolean(true)
- end
+ -- if v == nil then
+ -- return injectboolean(false)
+ -- else
+ -- return injectboolean(true)
+ -- end
+ return v ~= nil
end
local function hasoption()
@@ -439,7 +494,8 @@ local function hasoption()
local l = list[i]
local vl = v[l]
if vl == nil then
- return injectboolean(false)
+ -- return injectboolean(false)
+ return false
end
v = vl
end
@@ -450,18 +506,21 @@ local function hasoption()
-- no caching .. slow anyway
local o = list[n]
if v == o then
- return injectboolean(true)
+ -- return injectboolean(true)
+ return true
end
for vv in gmatch(v,"[^%s,]+") do
for oo in gmatch(o,"[^%s,]+") do
if vv == oo then
- return injectboolean(true)
+ -- return injectboolean(true)
+ return true
end
end
end
end
end
- return injectboolean(false)
+ -- return injectboolean(false)
+ return false
end
local function getparameterdefault()
@@ -478,7 +537,8 @@ local function getparameterdefault()
end
end
if vl == nil then
- return injectnumeric(0)
+ -- return injectnumeric(0)
+ return 0
else
if type(vl) == "string" then
local td = type(list[n])
@@ -488,7 +548,8 @@ local function getparameterdefault()
vl = vl == "true"
end
end
- return get(vl)
+ -- return get(vl)
+ return vl
end
else
for i=1,n-1 do
@@ -498,7 +559,8 @@ local function getparameterdefault()
if type(l) == "number" then
vl = v[1]
if vl == nil then
- return get(list[n])
+ -- return get(list[n])
+ return list[n]
end
else
local last = list[n]
@@ -514,26 +576,30 @@ local function getparameterdefault()
local l = list[i]
local vl = v[l]
if vl == nil then
- return injectnumeric(0)
+ -- return injectnumeric(0)
+ return 0
end
v = vl
end
if v == nil then
- return injectnumeric(0)
+ return 0
else
- return get(v)
+ return v
end
end
- return injectnumeric(0)
+ -- return injectnumeric(0)
+ return 0
else
- return get(last)
+ -- return get(last)
+ return last
end
end
end
v = vl
end
if v == nil then
- return get(list[n])
+ -- return get(list[n])
+ return list[n]
else
if type(v) == "string" then
local td = type(list[n])
@@ -543,7 +609,8 @@ local function getparameterdefault()
v = v == "true"
end
end
- return get(v)
+ -- return get(v)
+ return v
end
end
end
@@ -557,7 +624,8 @@ local function getparametercount()
break
end
end
- return injectnumeric(type(v) == "table" and #v or 0)
+ -- return injectnumeric(type(v) == "table" and #v or 0)
+ return type(v) == "table" and #v or 0
end
local function getmaxparametercount()
@@ -588,7 +656,8 @@ local function getmaxparametercount()
end
end
- return injectnumeric(n)
+ -- return injectnumeric(n)
+ return n
end
local validconnectors = {
@@ -603,7 +672,8 @@ local function getparameterpath()
if type(close) == "boolean" then
n = n - 1
else
- close = false
+ -- close = false
+ close = nil
end
local connector = list[n]
if type(connector) == "string" and validconnectors[connector] then
@@ -620,6 +690,11 @@ local function getparameterpath()
end
if type(v) == "table" then
return injectpath(v,connector,close)
+ elseif type(v) == "string" then
+ local code = load("return " .. v)
+ if code then
+ return code()
+ end
else
return injectpair(0,0)
end
@@ -688,28 +763,33 @@ end
-- return false
-- end
-function metapost.scanparameters()
--- scantoken() -- we scan the semicolon
+function metapost.scanparameters(gobblesemicolon)
+ if gobblesemicolon then
+ scantoken() -- we scan the semicolon
+ end
return get_parameters()
end
local registerscript = metapost.registerscript
+local registerdirect = metapost.registerdirect
+local registertokens = metapost.registertokens
-registerscript("getparameters", getparameters)
-registerscript("applyparameters", applyparameters)
-registerscript("presetparameters", presetparameters)
-registerscript("hasparameter", hasparameter)
-registerscript("hasoption", hasoption)
-registerscript("getparameter", getparameter)
-registerscript("getparameterdefault", getparameterdefault)
-registerscript("getparametercount", getparametercount)
-registerscript("getmaxparametercount",getmaxparametercount)
-registerscript("getparameterpath", getparameterpath)
-registerscript("getparameterpen", getparameterpen)
-registerscript("getparametertext", getparametertext)
---------------("getparameteroption", getparameteroption)
-registerscript("pushparameters", pushparameters)
-registerscript("popparameters", popparameters)
+registerdirect("getparameters", getparameters) -- nothing
+registertokens("applyparameters", applyparameters) -- action : todo "token"
+registerdirect("mergeparameters", mergeparameters) -- nothing
+registerdirect("presetparameters", presetparameters) -- nothing
+registerdirect("hasparameter", hasparameter) -- boolean
+registerdirect("hasoption", hasoption) -- boolean
+registerdirect("getparameter", getparameter) -- whatever
+registerdirect("getparameterdefault", getparameterdefault) -- whatever
+registerdirect("getparametercount", getparametercount) -- numeric
+registerdirect("getmaxparametercount",getmaxparametercount) -- numeric
+registerscript("getparameterpath", getparameterpath) -- tricky
+registerscript("getparameterpen", getparameterpen) -- tricky
+registerscript("getparametertext", getparametertext) -- tricky
+--------direct("getparameteroption", getparameteroption) -- boolean
+registerdirect("pushparameters", pushparameters) -- nothing
+registerdirect("popparameters", popparameters) -- nothing
function metapost.getparameter(list)
local n = #list
@@ -733,9 +813,275 @@ function metapost.setparameterset(namespace,t)
namespaces[namespace] = t
end
+function metapost.getparameterpreset(namespace,t)
+ return namespace and presets[namespace] or presets
+end
+
+local function setluaparameter()
+ local namespace = scanstring()
+ local name = scanstring()
+ local value = scanstring()
+ local code = load("return " .. value)
+ if type(code) == "function" then
+ local result = code()
+ if result then
+ local data = namespace and namespaces[namespace] or namespaces
+ data[name] = result
+ else
+ report("no result from lua code: %s",value)
+ end
+ else
+ report("invalid lua code: %s",value)
+ end
+end
+
+registerdirect("setluaparameter", setluaparameter)
+
+-- This is an experiment for Alan and me.
+
+do
+
+ local records = { }
+ local stack = setmetatableindex("table")
+ local nofrecords = 0
+ local interim = 0
+ local names = { }
+ -- local types = { }
+
+ registerdirect("newrecord", function()
+ scantoken() -- semicolon
+ local p = get_parameters()
+ local n = 0
+ if interim > 0 then
+ records[interim] = p
+ local top = stack[interim]
+ if top then
+ top = stack[interim][#top]
+ if top then
+ setmetatableindex(p,top)
+ end
+ end
+ n = interim
+ interim = 0
+ else
+ nofrecords = nofrecords + 1
+ records[nofrecords] = p
+ n = nofrecords
+ end
+ return n
+ end)
+
+ local function merge(old,new)
+ for knew, vnew in next, new do
+ local vold = old[knew]
+ if vold then
+ if type(vnew) == "table" then
+ if type(vold) == "table" then
+ merge(vold,vnew)
+ else
+ old[knew] = vnew
+ end
+ else
+ old[knew] = vnew
+ end
+ else
+ old[knew] = vnew
+ end
+ end
+ end
+
+ registerdirect("setrecord", function()
+ scantoken() -- semicolon
+ local p = get_parameters()
+ local n = 0
+ if interim > 0 then
+ local r = records[interim]
+ if r then
+ merge(r,p)
+ else
+ records[interim] = p
+ end
+ local top = stack[interim]
+ if top then
+ top = stack[interim][#top]
+ if top then
+ setmetatableindex(p,top)
+ end
+ end
+ n = interim
+ interim = 0
+ else
+ nofrecords = nofrecords + 1
+ records[nofrecords] = p
+ n = nofrecords
+ end
+ return n
+ end)
+
+
+ registerdirect("getrecord", function()
+ local n = scaninteger()
+ local v = records[n]
+ while true do
+ local t = scansymbol(true)
+ if t == ";" or t == ")" or t == ":" then
+ return v
+ elseif t == "." then
+ scansymbol()
+ elseif t == "#" or t == "##" then -- from tex's we get a double
+ scansymbol()
+ t = scansymbol()
+ v = v[t]
+ return type(v) == "table" and #v or 0
+ elseif t == "[" then
+ scansymbol()
+ t = scansymbol(true)
+ if t == "]" then
+ scansymbol()
+ return #v
+ else
+ t = scaninteger()
+ v = v[t]
+ if scansymbol() ~= "]" then
+ report("] expected")
+ end
+ end
+ else
+ t = scansymbol()
+ v = v[t]
+ end
+ end
+ end)
+
+-- registerdirect("getrecord", function()
+-- local n = scaninteger()
+-- local v = records[n]
+-- local l = 0
+-- while true do
+-- local t = scansymbol(true)
+-- if t == ";" or t == ":" then
+-- return v
+-- elseif t == "(" then
+-- scansymbol()
+-- l = l + 1
+-- elseif t == ")" then
+-- if l > 1 then
+-- scansymbol()
+-- l = l - 1
+-- elseif l == 1 then
+-- scansymbol()
+-- return v
+-- else
+-- return v
+-- end
+-- elseif t == "." then
+-- scansymbol()
+-- elseif t == "#" or t == "##" then -- from tex's we get a double
+-- scansymbol()
+-- t = scansymbol()
+-- v = v[t]
+-- local tv = type(v)
+-- return (tv == "table" or tv == "string") and #v or 0
+-- elseif t == "[" then
+-- scansymbol()
+-- t = scansymbol(true)
+-- if t == "#" or r == "##" then
+-- scansymbol()
+-- if scansymbol() ~= "]" then
+-- report("] expected")
+-- end
+-- return #v
+-- else
+-- t = scaninteger()
+-- v = v[t]
+-- if scansymbol() ~= "]" then
+-- report("] expected")
+-- end
+-- end
+-- else
+-- t = scansymbol()
+-- v = v[t]
+-- end
+-- end
+-- end)
+
+ registerdirect("cntrecord", function()
+ local n = scaninteger()
+ local v = records[n]
+ local l = 0
+ while true do
+ local t = scansymbol(true)
+ if t == ";" or t == ":" then
+ break
+ elseif t == "(" then
+ scansymbol()
+ l = l + 1
+ elseif t == ")" then
+ if l > 1 then
+ scansymbol()
+ l = l - 1
+ elseif l == 1 then
+ scansymbol()
+ break
+ else
+ break
+ end
+ elseif t == "." then
+ scansymbol()
+ elseif t == "[" then
+ scansymbol()
+ t = scaninteger()
+ v = v[t]
+ if scansymbol() ~= "]" then
+ report("] expected")
+ end
+ else
+ t = scansymbol()
+ v = v[t]
+ end
+ end
+ local tv = type(v)
+ return (tv == "table" or tv == "string") and #v or 0 -- integer
+ end)
+
+ function metapost.getrecord(name)
+ local index = names[name]
+ if index then
+ return records[index]
+ end
+ end
+
+ function metapost.setrecord(name,data)
+ if type(data) == "table" then
+ local index = names[name]
+ if index then
+ records[index] = data
+ end
+ end
+ end
+
+ function metapost.runinternal(action,index,kind,name)
+ if action == 0 then
+ -- allocate
+ names[name] = index
+ -- types[index] = kind
+ elseif action == 1 then
+ -- save
+ insert(stack[index],records[index])
+ interim = index
+ elseif action == 2 then
+ -- restore
+ records[index] = remove(stack[index]) or records[index]
+ elseif action == 3 then
+ metapost.checktracingonline(kind)
+ end
+ end
+
+end
+
-- goodies
-registerscript("definecolor", function()
+registerdirect("definecolor", function()
scantoken() -- we scan the semicolon
local s = get_parameters()
attributes.colors.defineprocesscolordirect(s)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-snc.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-snc.lmt
new file mode 100644
index 00000000000..eddf6417a83
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-snc.lmt
@@ -0,0 +1,36 @@
+if not modules then modules = { } end modules ['mlib-snc'] = {
+ version = 1.001,
+ comment = "companion to anch-snc.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local scanners = mp.scan
+local scaninteger = scanners.integer
+local scanstring = scanners.string
+local factor = number.dimenfactors.bp
+local synchronizers = graphics.synchronizers
+local registerdirect = metapost.registerdirect
+
+-- no need for locals (yet)
+
+registerdirect("asnc_collect", function()
+ return synchronizers.collect(scaninteger(),scaninteger(),scanstring()) -- category realpage region
+end)
+
+registerdirect("asnc_extend", synchronizers.extend )
+registerdirect("asnc_prune", synchronizers.prune )
+registerdirect("asnc_collapse", synchronizers.collapse)
+registerdirect("asnc_getsize", synchronizers.getsize )
+
+registerdirect("asnc_gettop", function() return synchronizers.gettop (scaninteger()) * factor end)
+registerdirect("asnc_getbottom",function() return synchronizers.getbottom(scaninteger()) * factor end)
+registerdirect("asnc_getkind", function() return synchronizers.getkind (scaninteger()) end)
+registerdirect("asnc_gettask", function() return synchronizers.gettask (scaninteger()) end)
+
+registerdirect("asnc_getx", function() return synchronizers.getx() * factor end)
+registerdirect("asnc_gety", function() return synchronizers.gety() * factor end)
+registerdirect("asnc_getw", function() return synchronizers.getw() * factor end)
+registerdirect("asnc_geth", function() return synchronizers.geth() * factor end)
+registerdirect("asnc_getd", function() return synchronizers.getd() * factor end)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mlib-svg.lmt b/Master/texmf-dist/tex/context/base/mkxl/mlib-svg.lmt
index dca2b6d191d..2dec349db34 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mlib-svg.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/mlib-svg.lmt
@@ -7,6 +7,12 @@ if not modules then modules = { } end modules ['mlib-svg'] = {
license = "see context related readme files",
}
+-- todo: svg stripper
+
+-- todo: check clip: what if larger than bbox
+
+-- todo: when opacity is 1 don't flush it
+
-- Just a few notes:
--
-- There is no real need to boost performance here .. we can always make a fast
@@ -75,6 +81,14 @@ if not modules then modules = { } end modules ['mlib-svg'] = {
-- One can run into pretty crazy images, like lines that are fills being clipped
-- to some width. That's the danger of hiding yourself behind an interface I guess.
+--
+-- One would expect official examples to sort of follow the structure guideline,
+-- like putting gradient definitions in a "defs" element but forget about it ...
+-- structure seems not to be important (one can even wonder why "defs" is there at
+-- all). In the end all these systems (tex macro packages included) end up as a
+-- mess simply because conceptually wrong input gets accepted as normal. A side
+-- effect is that one starts to get a disliking. Anyway, at sime point I can just
+-- simplify some code because ugliness is part of the game.
local rawget, rawset, type, tonumber, tostring, next, setmetatable = rawget, rawset, type, tonumber, tostring, next, setmetatable
@@ -92,20 +106,20 @@ local xmltext, xmltextonly = xml.text, xml.textonly
local css = xml.css or { } -- testing
local function xmlinheritattributes(c,pa)
- local at = c.at
- local dt = c.dt
- if at and dt then
- if pa then
- setmetatableindex(at,pa)
- end
- for i=1,#dt do
- local dti = dt[i]
- if type(dti) == "table" then
- xmlinheritattributes(dti,at)
+ if not c.special then
+ local at = c.at
+ local dt = c.dt
+ if at and dt then
+ if pa then
+ setmetatableindex(at,pa)
+ end
+ for i=1,#dt do
+ local dti = dt[i]
+ if type(dti) == "table" then
+ xmlinheritattributes(dti,at)
+ end
end
end
- else
- -- comment of so
end
end
@@ -126,8 +140,12 @@ local trace_result = false trackers.register("metapost.svg.result", function(v)
local trace_colors = false trackers.register("metapost.svg.colors", function(v) trace_colors = v end)
local trace_fonts = false trackers.register("metapost.svg.fonts", function(v) trace_fonts = v end)
--- This is just an experiment. Todo: reset hash etc. Also implement
--- an option handler.
+-- This is just an experiment. Todo: reset hash etc. Also implement an option handler.
+
+local s_draw_image_start <const> = "draw image ("
+local s_draw_image_stop <const> = ") ;"
+
+local ignoredopacity = 1
local svghash = false do
@@ -189,7 +207,7 @@ local a2c do
a2c = function(x1, y1, rx, ry, angle, large, sweep, x2, y2, f1, f2, cx, cy)
- if (rx == 0 or ry == 0 ) or (x1 == x2 and y1 == y2) then
+ if (rx == 0 or ry == 0) or (x1 == x2 and y1 == y2) then
return { x1, y1, x2, y2, x2, y2 }
end
@@ -303,6 +321,8 @@ local factors = {
["in"] = 90,
["em"] = 12 * 1.25,
["ex"] = 8 * 1.25,
+ ["%"] = 0.1,
+ ["bp"] = 1,
}
metapost.svgfactors = factors
@@ -332,6 +352,7 @@ do
* (P("e") * S("+-")^0 * p_digit^1)^-1
local function convert (n) n = tonumber(n) return n end
+ local function convert_p (n,u) n = tonumber(n) if u == true then return n / 100 else return n end end
local function convert_r (n,u) n = tonumber(n) if u == true then return percentage_r * n elseif u then return u * n else return n end end
local function convert_x (n,u) n = tonumber(n) if u == true then return percentage_x * n elseif u then return u * n else return n end end
local function convert_y (n,u) n = tonumber(n) if u == true then return percentage_y * n elseif u then return u * n else return n end end
@@ -342,17 +363,20 @@ do
local p_percent = P("%") * Cc(true)
local c_number_n = C(p_number)
- local c_number_u = C(p_number) * (p_unit + p_percent)^-1
+ local c_number_u = C(p_number) * (p_percent + p_unit)^-1
p_number_n = c_number_n / convert
+ p_number_u = c_number_u / convert
p_number_x = c_number_u / convert_x
p_number_vx = c_number_u / convert_vx
p_number_y = c_number_u / convert_y
p_number_vy = c_number_u / convert_vy
p_number_r = c_number_u / convert_r
+ p_number_p = c_number_u / convert_p
asnumber = function(s) return s and lpegmatch(p_number, s) or 0 end
asnumber_r = function(s) return s and lpegmatch(p_number_r, s) or 0 end
+ asnumber_p = function(s) return s and lpegmatch(p_number_p, s) or 0 end
asnumber_x = function(s) return s and lpegmatch(p_number_x, s) or 0 end
asnumber_y = function(s) return s and lpegmatch(p_number_y, s) or 0 end
asnumber_vx = function(s) return s and lpegmatch(p_number_vx,s) or 0 end
@@ -366,7 +390,8 @@ do
asnumber_vx_t = function(s) return s and lpegmatch(p_number_vx_t,s) or zerotable end
asnumber_vy_t = function(s) return s and lpegmatch(p_number_vy_t,s) or zerotable end
- local p_numbersep = p_number_n + p_separator
+-- local p_numbersep = p_number_n + p_separator
+ local p_numbersep = p_number_u + p_separator
p_numbers = p_optseparator * P("(") * p_numbersep^0 * p_optseparator * P(")")
p_fournumbers = p_numbersep^4
p_path = Ct ( (
@@ -477,24 +502,22 @@ local colorcomponents, withcolor, thecolor, usedcolors do
whitesmoke = 0xF5F5F5, yellow = 0xFFFF00, yellowgreen = 0x9ACD32,
}
- local f_rgb = formatters['withcolor svgcolor(%.3N,%.3N,%.3N)']
- local f_cmyk = formatters['withcolor svgcmyk(%.3N,%.3N,%.3N,%.3N)']
- local f_gray = formatters['withcolor svggray(%.3N)']
- local f_rgba = formatters['withcolor svgcolor(%.3N,%.3N,%.3N) withtransparency (1,%.3N)']
- local f_graya = formatters['withcolor svggray(%.3N) withtransparency (1,%.3N)']
- local f_name = formatters['withcolor "%s"']
+ local f_rgb = formatters[' withcolor svgcolor(%.3N,%.3N,%.3N)']
+ local f_cmyk = formatters[' withcolor svgcmyk(%.3N,%.3N,%.3N,%.3N)']
+ local f_gray = formatters[' withcolor svggray(%.3N)']
+ local f_rgba = formatters[' withcolor svgcolor(%.3N,%.3N,%.3N) withopacity %.3N']
+ local f_graya = formatters[' withcolor svggray(%.3N) withopacity %.3N']
+ local f_name = formatters[' withcolor "%s"']
local f_svgrgb = formatters['svgcolor(%.3N,%.3N,%.3N)']
local f_svgcmyk = formatters['svgcmyk(%.3N,%.3N,%.3N,%.3N)']
local f_svggray = formatters['svggray(%.3N)']
local f_svgname = formatters['"%s"']
- local extract = bit32.extract
-
local triplets = setmetatableindex(function(t,k)
-- we delay building all these strings
local v = svgcolors[k]
if v then
- v = { extract(v,16,8)/255, extract(v,8,8)/255, extract(v,0,8)/255 }
+ v = { ((v>>16)&0xFF)/0xFF, ((v>>8)&0xFF)/0xFF, ((v>>0)&0xFF)/0xFF }
else
v = false
end
@@ -510,6 +533,13 @@ local colorcomponents, withcolor, thecolor, usedcolors do
local p_left = P("(")
local p_right = P(")")
local p_a = P("a")^-1
+ local p_r_a_color = p_left
+ * (p_fraction * p_separator^-1)^-3
+ * p_absolute^0
+ * p_right
+ local p_c_k_color = p_left
+ * (p_absolute + p_separator^-1)^-4
+ * p_right
local p_h_a_color = p_left
* p_angle
* p_separator * p_percent
@@ -524,25 +554,26 @@ local colorcomponents, withcolor, thecolor, usedcolors do
local hwbtorgb = colors.hwbtorgb
local forcedmodel = colors.forcedmodel
- local p_splitcolor =
+ local p_splitcolor = -- offet lowercase ff
P("#") * C(p_hexdigit*p_hexdigit)^1 / function(r,g,b)
if not r then
return "gray", 0
elseif not (g and b) then
- return "gray", tonumber(r or "0", 16) / 255 or 0
+ return "gray",
+ (r == "00" and 0) or (r == "ff" and 1) or (tonumber(r,16)/255)
else
return "rgb",
- tonumber(r or "0", 16) / 255 or 0,
- tonumber(g or "0", 16) / 255 or 0,
- tonumber(b or "0", 16) / 255 or 0
+ (r == "00" and 0) or (r == "ff" and 1) or (tonumber(r,16)/255),
+ (g == "00" and 0) or (g == "ff" and 1) or (tonumber(g,16)/255),
+ (b == "00" and 0) or (b == "ff" and 1) or (tonumber(b,16)/255)
end
end
+ P("rgb") * p_a
- * p_left * (p_fraction + p_separator)^-3 * (p_absolute + p_separator)^0 * p_right / function(r,g,b,a)
+ * p_r_a_color / function(r,g,b,a)
return "rgb", r or 0, g or 0, b or 0, a or false
end
+ P("cmyk")
- * p_left * (p_absolute + p_separator)^0 * p_right / function(c,m,y,k)
+ * p_c_k_color / function(c,m,y,k)
return "cmyk", c or 0, m or 0, y or 0, k or 0
end
+ P("hsl") * p_a
@@ -605,7 +636,7 @@ local colorcomponents, withcolor, thecolor, usedcolors do
tonumber(t[2]) or 0,
tonumber(t[3]) or 0,
tonumber(t[4]) or 0,
- tonumber(t[4]) or false
+ tonumber(t[5]) or false
elseif what == "cmyk" then
return
what,
@@ -623,19 +654,25 @@ local colorcomponents, withcolor, thecolor, usedcolors do
color = c
end
end
- local what, s1, s2, s3, s4 = registeredcolor(color)
- if what then
- return what, s1, s2, s3, s4
- end
- what, s1, s2, s3, s4 = lpegmatch(p_splitcolor,color)
- if not what then
- local t = triplets[color]
- if t then
- s1, s3, s3 = t[1], t[2], t[3]
- what = "rgb"
+ if color == "#000000" then
+ return "rgb", 0, 0, 0
+ elseif color == "#ffffff" then
+ return "rgb", 1, 1, 1
+ else
+ local what, s1, s2, s3, s4 = registeredcolor(color)
+ if not what then
+ what, s1, s2, s3, s4 = lpegmatch(p_splitcolor,color)
+ -- we could cache
+ if not what then
+ local t = triplets[color]
+ if t then
+ s1, s2, s3 = t[1], t[2], t[3]
+ what = "rgb"
+ end
+ end
end
+ return what, s1, s2, s3, s4
end
- return what, s1, s2, s3, s4
end
colorcomponents = function(color)
@@ -645,7 +682,6 @@ local colorcomponents, withcolor, thecolor, usedcolors do
withcolor = function(color)
local what, s1, s2, s3, s4 = validcolor(color)
- -- print(color,what, s1, s2, s3, s4)
if what == "rgb" then
if s4 then
if s1 == s2 and s1 == s3 then
@@ -714,6 +750,9 @@ local grabpath, grablist do
local m = { __index = function() return 0 end }
+ -- local t = { } -- no real saving here if we share
+ -- local n = 0
+
grabpath = function(str)
local p = lpegmatch(p_path,str) or { }
local np = #p
@@ -724,6 +763,7 @@ local grabpath, grablist do
setmetatable(p,m)
local t = { } -- no real saving here if we share
local n = 0
+ -- n = 0
local a = 0
local i = 0
local last = "M"
@@ -1166,108 +1206,167 @@ end
-- todo: viewbox helper
-local s_wrapped_start = "draw image ("
-local f_wrapped_stop = formatters[") shifted (0,%N) scaled %N ;"]
+local s_wrapped_start <const> = "draw image ("
+local f_wrapped_stop = formatters[") shifted (0,%N) scaled %N ;"]
local handletransform, handleviewbox do
local sind = math.sind
- --todo: better lpeg
-
- local f_rotatedaround = formatters[" rotatedaround((%N,%N),%N)"]
- local f_rotated = formatters[" rotated(%N)"]
- local f_shifted = formatters[" shifted(%N,%N)"]
- local f_slanted_x = formatters[" xslanted(%N)"]
- local f_slanted_y = formatters[" yslanted(%N)"]
- local f_scaled = formatters[" scaled(%N)"]
- local f_xyscaled = formatters[" xyscaled(%N,%N)"]
- local f_matrix = formatters[" transformed bymatrix(%N,%N,%N,%N,%N,%N)"]
-
- local s_transform_start = "draw image ( "
- local f_transform_stop = formatters[")%s ;"]
+ -- local f_rotatedaround = formatters["svg_p := svg_p rotatedaround((%N,%N),%N) ;"]
+ -- local f_rotated = formatters["svg_p := svg_p rotated(%N) ;"]
+ -- local f_shifted = formatters["svg_p := svg_p shifted(%N,%N) ;"]
+ -- local f_slanted_x = formatters["svg_p := svg_p xslanted(%N) ;"]
+ -- local f_slanted_y = formatters["svg_p := svg_p yslanted(%N) ;"]
+ -- local f_scaled = formatters["svg_p := svg_p scaled(%N) ;"]
+ -- local f_xyscaled = formatters["svg_p := svg_p xyscaled(%N,%N) ;"]
+ -- local f_matrix = formatters["svg_p := svg_p transformed bymatrix(%N,%N,%N,%N,%N,%N) ;"]
+ -- local s_transform_start <const> = "draw image ( begingroup ; save svg_p ; picture svg_p ; svg_p := image ( "
+ -- local f_transform_stop = formatters[" ; ) ; %s ; draw svg_p ; endgroup ; ) ; "]
+
+ local f_rotatedaround = formatters["rotatedaround((%N,%N),%N) "]
+ local f_rotated = formatters["rotated(%N) "]
+ local f_shifted = formatters["shifted(%N,%N) "]
+ local f_slanted_x = formatters["xslanted(%N) "]
+ local f_slanted_y = formatters["yslanted(%N) "]
+ local f_scaled = formatters["scaled(%N) "]
+ local f_xyscaled = formatters["xyscaled(%N,%N) "]
+ local f_matrix = formatters["transformed bymatrix(%N,%N,%N,%N,%N,%N) "]
+ local s_transform_start <const> = "draw image ( "
+ local f_transform_stop = formatters[") %s ; "]
+
+ local transforms = { }
+ local noftransforms = 0
local function rotate(r,x,y)
- if x then
- return r and f_rotatedaround(x,-(y or x),-r)
- elseif r then
- return f_rotated(-r)
- else
- return ""
+ if r then
+ noftransforms = noftransforms + 1
+ if x then
+ transforms[noftransforms] = f_rotatedaround(x,-(y or x),-r)
+ else
+ transforms[noftransforms] = f_rotated(-r)
+ end
end
end
local function translate(x,y)
+ if x == 0 then x = false end
+ if y == 0 then y = false end
if y then
- return f_shifted(x,-y)
+ noftransforms = noftransforms + 1
+ transforms[noftransforms] = f_shifted(x or 0,-y)
elseif x then
- return f_shifted(x,0)
- else
- return ""
+ noftransforms = noftransforms + 1
+ transforms[noftransforms] = f_shifted(x,0)
end
end
local function scale(x,y)
+ if x == 1 then x = false end
+ if y == 1 then y = false end
if y then
- return f_xyscaled(x,y)
+ noftransforms = noftransforms + 1
+ transforms[noftransforms] = f_xyscaled(x or 1,y)
elseif x then
- return f_scaled(x)
- else
- return ""
+ noftransforms = noftransforms + 1
+ transforms[noftransforms] = f_scaled(x)
end
end
- local function skewx(x)
+ local function skew(x,y)
+ -- if x = 0 then x = false end
+ -- if y = 0 then y = false end
if x then
- return f_slanted_x(sind(-x))
- else
- return ""
+ noftransforms = noftransforms + 1
+ transforms[noftransforms] = f_slanted_x(sind(-x))
end
- end
-
- local function skewy(y)
if y then
- return f_slanted_y(sind(-y))
- else
- return ""
+ noftransforms = noftransforms + 1
+ transforms[noftransforms] = f_slanted_y(sind(-y))
end
end
local function matrix(rx,sx,sy,ry,tx,ty)
- return f_matrix(rx or 1, sx or 0, sy or 0, ry or 1, tx or 0, - (ty or 0))
+ if not ty then
+ ty = 0
+ end
+ if not tx then
+ tx = 0
+ end
+ if not sx then
+ sx = 0
+ end
+ if not sy then
+ sy = 0
+ end
+ if not rx then
+ rx = 1
+ end
+ if not ry then
+ ry = 1
+ end
+ noftransforms = noftransforms + 1
+ -- transforms[noftransforms] = f_matrix(rx, sx, sy, ry, tx, -ty)
+ -- https://en.wikipedia.org/wiki/Rotation_matrix : we're counter clockwise
+ transforms[noftransforms] = f_matrix(rx, -sy, -sx, ry, tx, -ty)
end
- -- How to deal with units here? Anyway, order seems to matter.
-
- local p_transform = Cf ( Ct("") * (
- lpegpatterns.whitespace^0 * Cg(
- C("translate") * (p_numbers / translate) -- maybe xy
- + C("scale") * (p_numbers / scale)
- + C("rotate") * (p_numbers / rotate)
- + C("matrix") * (p_numbers / matrix)
- + C("skewX") * (p_numbers / skewx)
- + C("skewY") * (p_numbers / skewy)
+ local p_transform = (
+ p_space^0 * (
+ P("translate") * (p_numbers / translate) -- maybe xy
+ + P("scale") * (p_numbers / scale)
+ + P("rotate") * (p_numbers / rotate)
+ + P("matrix") * (p_numbers / matrix)
+ + P("skew") * (p_numbers / skew)
+ + P("translateX") * (p_numbers / translate)
+ + P("translateY") * (Cc(false) * p_numbers / translate)
+ + P("scaleX") * (p_numbers / translate)
+ + P("scaleY") * (Cc(false) * p_numbers / translate)
+ + P("skewX") * (p_numbers / skew)
+ + P("skewY") * (Cc(false) * p_numbers / skew)
)
- )^1, rawset)
+ )^1
+
+ -- indeed, we need to reverse the order ... not that pretty and counter intuitive too
+
+ local function combined()
+ if noftransforms == 1 then
+ return transforms[1]
+ elseif noftransforms == 2 then
+ return transforms[2] .. transforms[1]
+ elseif noftransforms == 3 then
+ return transforms[3] .. transforms[2] .. transforms[1]
+ else
+ -- the rare case (but anything can happen in svg and it gets worse)
+ local m = noftransforms + 1
+ for i=1,noftransforms//2 do
+ local j = m - i
+ transforms[i], transforms[j] = transforms[j], transforms[i]
+ end
+ return concat(transforms,"",1,noftransforms)
+ end
+ end
handletransform = function(at)
local t = at.transform
if t then
- local e = lpegmatch(p_transform,t)
- if e then
- e = concat({
- e.rotate or "",
- e.skewX or "",
- e.skewY or "",
- e.scale or "",
- e.translate or "",
- e.matrix or "",
- }, " ")
- return s_transform_start, f_transform_stop(e), t
+ noftransforms = 0
+ lpegmatch(p_transform,t)
+ if noftransforms > 0 then
+ -- currentpicture
+ return s_transform_start, f_transform_stop(combined()), t
end
end
end
+ handletransformstring = function(t)
+ if t then
+ noftransforms = 0
+ lpegmatch(p_transform,t)
+ return noftransforms > 0 and combined()
+ end
+ end
+
handleviewbox = function(v)
if v then
local x, y, w, h = lpegmatch(p_fournumbers,v)
@@ -1349,7 +1448,7 @@ do
-- ["missing-glyph"] = true,
-- ["mpath"] = true,
["path"] = true,
- -- ["pattern"] = true,
+ ["pattern"] = true,
["polygon"] = true,
["polyline"] = true,
["radialGradient"] = true,
@@ -1370,6 +1469,20 @@ do
-- ["vkern"] = true,
}
+ local usetags = {
+ ["circle"] = true,
+ ["ellipse"] = true,
+ ["g"] = true,
+ ["image"] = true,
+ ["line"] = true,
+ ["path"] = true,
+ ["polygon"] = true,
+ ["polyline"] = true,
+ ["rect"] = true,
+ -- ["text"] = true,
+ -- ["tspan"] = true,
+ }
+
local pathtracer = {
["stroke"] = "darkred",
["stroke-opacity"] = ".5",
@@ -1378,17 +1491,28 @@ do
["fill-opacity"] = ".75",
}
+ local skipspace = p_space^0
+ local colon = P(":")
+ local semicolon = P(";")
+ local eos = P(-1)
+
+ local someaction = (
+ skipspace * C((1 - (skipspace * (semicolon + eos + colon)))^1)
+ * colon
+ * skipspace * C((1 - (skipspace * (semicolon + eos)))^0)
+ * Carg(1) / function(k,v,a) a[k] = v end
+ + (p_space + semicolon)^1
+ )^1
+
local function handlechains(c)
if tags[c.tg] then
local at = c.at
local dt = c.dt
if at and dt then
- -- at["inkscape:connector-curvature"] = nil -- cleare entry and might prevent table growth
+ -- at["inkscape:connector-curvature"] = nil -- clear entry and might prevent table growth
local estyle = rawget(at,"style")
if estyle and estyle ~= "" then
- for k, v in gmatch(estyle,"%s*([^:]+):%s*([^;]+);?") do
- at[k] = v
- end
+ lpegmatch(someaction,estyle,1,at)
end
local eclass = rawget(at,"class")
if eclass and eclass ~= "" then
@@ -1477,17 +1601,43 @@ do
-- We can have root in definitions and then do a metatable lookup but use
-- is not used that often I guess.
- local function locate(id)
+ local function locate(id,c)
+ if id == none then
+ return
+ end
local res = definitions[id]
+ local ref
if res then
return res
end
- local ref = gsub(id,"^url%(#(.-)%)$","%1")
- local ref = gsub(ref,"^#","")
+ ref = gsub(id,"^url%(#(.-)%)$","%1")
+ ref = gsub(ref,"^#","")
-- we can make a fast id lookup
- local res = xmlfirst(root,"**[@id='"..ref.."']")
+ res = xmlfirst(root,"**[@id='"..ref.."']")
if res then
definitions[id] = res
+ return res
+ end
+ -- we expect resource paths to be specified but for now we want
+ -- them on the same path .. we could use the url splitter .. todo
+ ref = url.hashed(id)
+ if not ref.nosheme and ref.scheme == "file" then
+ local filename = ref.filename
+ local fragment = ref.fragment
+ if filename and filename ~= "" then
+ local fullname = resolvers.findbinfile(filename)
+ if lfs.isfile(fullname) then
+ report("loading use file: %s",fullname)
+ local root = xml.load(fullname)
+ res = xmlfirst(root,"**[@id='"..fragment.."']")
+ if res then
+ xmlinheritattributes(res,c) -- tricky
+ setmetatableindex(res.at,c.at)
+ definitions[id] = res
+ return res
+ end
+ end
+ end
end
return res
end
@@ -1503,7 +1653,7 @@ do
local spec = definitions[clippath] or locate(clippath)
- -- do we really need thsi crap
+ -- do we really need this crap
if not spec then
local index = match(clippath,"(%d+)")
if index then
@@ -1549,12 +1699,16 @@ do
-- break
elseif tg == "path" then
local ca = c.at
- local d = ca.d
+ local d = rawget(ca,"d")
if d then
local p = grabpath(d)
p.evenodd = ca["clip-rule"] == "evenodd"
p.close = true
- return p, clippath
+ local transform = rawget(ca,"transform")
+ if transform then
+ transform = handletransformstring(transform)
+ end
+ return p, clippath, transform
else
return
end
@@ -1564,95 +1718,297 @@ do
end
end
- local s_shade_linear = ' withshademethod "linear" '
- local s_shade_circular = ' withshademethod "circular" '
- local f_shade_step = formatters['withshadestep ( withshadefraction %N withshadecolors(%s,%s) )']
- local f_shade_one = formatters['withprescript "sh_center_a=%N %N"']
- local f_shade_two = formatters['withprescript "sh_center_b=%N %N"']
+ -- todo: clip = [ auto | rect(llx,lly,urx,ury) ]
+
+ local s_rotation_start <const> = "draw image ( "
+ local f_rotation_stop = formatters[") rotatedaround((0,0),-angle((%N,%N))) ;"]
+ local f_rotation_angle = formatters[") rotatedaround((0,0),-%N) ;"]
+
+ local s_offset_start <const> = "draw image ( "
+ local f_offset_stop = formatters[") shifted (%N,%N) ;"]
+ local s_size_start <const> = "draw image ( "
+ local f_size_stop = formatters[") xysized (%N,%N) ;"]
+
+ local handleoffset, handlesize do
+
+ handleoffset = function(at)
+ local x = asnumber_vx(rawget(at,"x"))
+ local y = asnumber_vy(rawget(at,"y"))
+ if x ~= 0 or y ~= 0 then
+ return s_offset_start, f_offset_stop(x,y)
+ end
+ end
+
+ handlesize = function(at)
+ local width = asnumber_x(rawget(at,"width"))
+ local height = asnumber_y(rawget(at,"height"))
+ if width == 0 or height == 0 then
+ -- bad scaling
+ elseif width == 1 and height == 1 then
+ -- no need for scaling
+ else
+ return s_size_start, f_size_stop(width,height)
+ end
+ end
+
+ end
+
+ function handlers.symbol(c)
+ local at = c.at
+ -- x y refX refY
+ local boffset, eoffset = handleoffset(at)
+ local bsize, esize = handlesize(at)
+ local btransform, etransform, transform = handletransform(at)
+
+ if boffset then
+ r = r + 1 result[r] = boffset
+ end
+ if btransform then
+ r = r + 1 result[r] = btransform
+ end
+ if bsize then
+ r = r + 1 ; result[r] = bsize
+ end
+
+-- local _x = at.x at.x = 0
+-- local _y = at.y at.y = 0
+-- local _w = at.width at.width = 0
+-- local _h = at.height at.height = 0
+
+ process(c,"/*")
+-- at.x = _x
+-- at.y = _y
+-- at.width = _w
+-- at.height = _h
+
+ if esize then
+ r = r + 1 result[r] = esize
+ end
+ if etransform then
+ r = r + 1 ; result[r] = etransform
+ end
+ if eoffset then
+ r = r + 1 result[r] = eoffset
+ end
+ end
+
+ -- do
+
+ local s_shade_linear = ' withshademethod "linear" '
+ local s_shade_circular = ' withshademethod "circular" '
+ local f_color = formatters[' withcolor "%s"']
+ local f_opacity = formatters[' withopacity %N']
+ local f_pen = formatters[' withpen pencircle scaled %N']
- local f_color = formatters['withcolor "%s"']
- local f_opacity = formatters['withtransparency (1,%N)']
- local f_pen = formatters['withpen pencircle scaled %N']
-- todo: gradient unfinished
-- todo: opacity but first we need groups in mp
- local function gradient(id)
- local spec = definitions[id] -- no locate !
- if spec then
- local kind = spec.tg
- local shade = nil
- local n = 1
- local a = spec.at
- if kind == "linearGradient" then
- shade = { s_shade_linear }
- --
- local x1 = rawget(a,"x1")
- local y1 = rawget(a,"y1")
- local x2 = rawget(a,"x2")
- local y2 = rawget(a,"y2")
- if x1 and y1 then
- n = n + 1 ; shade[n] = f_shade_one(asnumber_vx(x1),asnumber_vy(y1))
- end
- if x2 and y2 then
- n = n + 1 ; shade[n] = f_shade_one(asnumber_vx(x2),asnumber_vy(y2))
- end
- --
- elseif kind == "radialGradient" then
- shade = { s_shade_circular }
- --
- local cx = rawget(a,"cx") -- x center
- local cy = rawget(a,"cy") -- y center
- local r = rawget(a,"r" ) -- radius
- local fx = rawget(a,"fx") -- focal points
- local fy = rawget(a,"fy") -- focal points
- --
- if cx and cy then
- -- todo
- end
- if r then
- -- todo
- end
- if fx and fy then
- -- todo
- end
+ -- this is rather hard to deal with because browsers differ (at the time of writing)
+ -- and what they show on screen comes out different (or not at all) in print
+
+ -- todo: gradientUnits = "userSpaceOnUse" : use units instead of ratios
+
+ -- spreadMethod = "pad" : default
+ -- spreadMethod = "repeat" : crap
+ -- spreadMethod = "reflect" : crap
+
+ -- stop-opacity = "0" : strange, just use steps for that
+
+ -- todo: test for kind independently in caller, make a plug instead
+
+ local function pattern(id)
+ local c = definitions[id] -- no locate !
+ if c and c.tg == "pattern" then
+ -- just use result and then prune
+ local _r = r
+ local _result = result
+ r = 0
+ result = { }
+ --
+ -- handlers.pattern(spec)
+ --
+ -- inlined because of width
+ --
+ local at = c.at
+
+ local width = asnumber_x(rawget(at,"width"))
+ local height = asnumber_y(rawget(at,"height"))
+ if width == 0 or height == 0 then
+ -- bad scaling
+ width = nil
+ height = nil
+ elseif width == 1 and height == 1 then
+ -- no need for scaling
+ width = nil
+ height = nil
else
- report("unknown gradient %a",id)
- return
+ -- for now only relative
end
- -- local gu = a.gradientUnits
- -- local gt = a.gradientTransform
- -- local sm = a.spreadMethod
- local colora, colorb
- -- startcolor ?
- for c in xmlcollected(spec,"/stop") do
- local a = c.at
- local offset = rawget(a,"offset")
- local colorb = rawget(a,"stop-color")
- local opacity = rawget(a,"stop-opacity")
- if colorb then
- colorb = thecolor(colorb)
- end
- if not colora then
- colora = colorb
- end
- -- what if no percentage
- local fraction = offset and asnumber_r(offset)
- if not fraction then
- -- offset = tonumber(offset)
- -- for now
- fraction = xmlcount(spec,"/stop")/100
- end
+ local boffset, eoffset = handleoffset(at)
+ -- local bsize, esize = handlesize(at)
+ local btransform, etransform, transform = handletransform(at)
- if colora and colorb and color_a ~= "" and color_b ~= "" then
- n = n + 1 ; shade[n] = f_shade_step(fraction,colora,colorb)
- end
+ if boffset then
+ r = r + 1 result[r] = boffset
+ end
+ if btransform then
+ r = r + 1 result[r] = btransform
+ end
+ -- if bsize then
+ -- r = r + 1 ; result[r] = bsize
+ -- end
+
+ local _x = at.x at.x = 0
+ local _y = at.y at.y = 0
+ local _w = at.width at.width = 0
+ local _h = at.height at.height = 0
+
+ process(c,"/*")
+
+ at.x = _x
+ at.y = _y
+ at.width = _w
+ at.height = _h
+
+ -- if esize then
+ -- r = r + 1 result[r] = esize
+ -- end
+ if etransform then
+ r = r + 1 ; result[r] = etransform
+ end
+ if eoffset then
+ r = r + 1 result[r] = eoffset
+ end
+ --
+ local okay
+ if width and height then
+ okay = formatters[" withpattern image ( % t )\n withpatternscale(%N,%N)"](result,width,height)
+ else
+ okay = formatters[" withpattern image ( % t )"](result)
+ end
+ r = _r
+ result = _result
+ return okay
+ end
+ end
- colora = colorb
+ local gradient do
+
+ local f_shade_step = formatters['withshadestep ( withshadefraction %N withshadecolors (%s,%s) )']
+ local f_shade_step_opacity = formatters['withshadestep ( withshadefraction %N withshadecolors (%s,%s) withshadeopacity %N )']
+ local f_shade_center = formatters['withshadecenter (%N,%N)']
+ local f_shade_center_f = formatters['withshadecenterfraction (%N,%N)']
+ local f_shade_radius = formatters['withshaderadius (%N,%N) ']
+ local f_shade_radius_f = formatters['withshaderadiusfraction %N']
+ local f_shade_center_one = formatters['withshadecenterone (%N,%N)']
+ local f_shade_center_two = formatters['withshadecentertwo (%N,%N)']
+ local f_shade_center_one_f = formatters['withshadecenteronefraction (%N,%N)']
+ local f_shade_center_two_f = formatters['withshadecentertwofraction (%N,%N)']
+
+ gradient = function(id)
+ local spec = definitions[id] -- no locate !
+ if spec then
+ local kind = spec.tg
+ local shade = nil
+ local n = 1
+ local a = spec.at
+ -- bah
+ local gu = rawget(a, "gradientUnits") -- userSpaceOnUse
+ local gt = rawget(a, "gradientTransform")
+ local sm = rawget(a, "spreadMethod")
+ --
+ local userspace = gu == "userSpaceOnUse"
+ --
+ if kind == "linearGradient" then
+ shade = { s_shade_linear }
+ --
+ local x1 = rawget(a,"x1")
+ local y1 = rawget(a,"y1")
+ local x2 = rawget(a,"x2")
+ local y2 = rawget(a,"y2")
+ if x1 and y1 then
+ n = n + 1 ; shade[n] = f_shade_center_one_f(asnumber_p(x1),1-asnumber_p(y1))
+ end
+ if x2 and y2 then
+ n = n + 1 ; shade[n] = f_shade_center_two_f(asnumber_p(x2),1-asnumber_p(y2))
+ end
+ --
+ elseif kind == "radialGradient" then
+ shade = { s_shade_circular }
+ --
+ local cx = rawget(a,"cx") -- x center
+ local cy = rawget(a,"cy") -- y center
+ local r = rawget(a,"r" ) -- radius
+ local fx = rawget(a,"fx") -- focal points
+ local fy = rawget(a,"fy") -- focal points
+ --
+ if userspace then
+ if cx and cy then
+ n = n + 1 ; shade[n] = f_shade_center(asnumber_p(cx),asnumber_p(cy))
+ end
+ if fx and fy then
+ n = n + 1 ; shade[n] = f_shade_center_one(asnumber_p(fx),-asnumber_p(fy))
+ end
+ if r then
+ n = n + 1 ; shade[n] = f_shade_radius(asnumber_p(r))
+ end
+ if fx and fy then
+ -- todo
+ end
+ else
+ if cx and cy then
+ n = n + 1 ; shade[n] = f_shade_center_f(asnumber_p(cx),1-asnumber_p(cy))
+ end
+ if fx and fy then
+ n = n + 1 ; shade[n] = f_shade_center_one_f(asnumber_p(fx),1-asnumber_p(fy))
+ end
+ if r then
+ n = n + 1 ; shade[n] = f_shade_radius_f(asnumber_p(r))
+ end
+ if fx and fy then
+ -- todo
+ end
+ end
+ else
+ return
+ end
+ local colora, colorb
+ -- startcolor ?
+ for c in xmlcollected(spec,"/stop") do
+ local a = c.at
+ local offset = rawget(a,"offset")
+ local colorb = rawget(a,"stop-color")
+ -- local opacity = rawget(a,"stop-opacity") -- not in pdf for steps
+ if not colora then
+ colora = colorb
+ end
+ -- what if no percentage
+-- local fraction = offset and asnumber_r(offset) -- asnumber_p ?
+local fraction = offset and asnumber_p(offset)
+ if not fraction then
+ -- for now
+ fraction = xmlcount(spec,"/stop")/100 -- asnumber_p ?
+ end
+ if colora and colorb and colora ~= "" and colorb ~= "" then
+ n = n + 1
+ -- if opacity then
+ -- shade[n] = f_shade_step_opacity(fraction,thecolor(colora),thecolor(colorb),asnumber(o))
+ -- else
+ if userspace then
+ shade[n] = f_shade_step(fraction,thecolor(colora),thecolor(colorb))
+ else
+ shade[n] = f_shade_step(fraction,thecolor(colora),thecolor(colorb))
+ end
+ -- end
+ end
+ colora = colorb
+ end
+ return concat(shade,"\n ")
end
- return concat(shade," ")
end
+
end
local function drawproperties(stroke,at,opacity)
@@ -1676,9 +2032,13 @@ do
local o = at["stroke-opacity"] or (opacity and at["opacity"])
if o == "none" then
o = nil
+ elseif o == "transparent" then
+ o = f_opacity(0)
elseif o then
o = asnumber_r(o)
- if o and o ~= 1 then
+ if o == ignoredopacity then
+ o = nil
+ elseif o then
o = f_opacity(o)
else
o = nil
@@ -1687,78 +2047,92 @@ do
return p, d, c, o
end
- local s_opacity_start = "draw image ("
- local f_opacity_stop = formatters["setgroup currentpicture to boundingbox currentpicture withtransparency (1,%N)) ;"]
+ local s_opacity_start <const> = "draw image ("
+ local f_opacity_content = formatters["setgroup currentpicture to boundingbox currentpicture withopacity %N;"]
+ local s_opacity_stop <const> = ") ;"
local function sharedopacity(at)
local o = at["opacity"]
if o and o ~= "none" then
o = asnumber_r(o)
- if o and o ~= 1 then
- return s_opacity_start, f_opacity_stop(o)
+ if o == ignoredopacity then
+ return
+ end
+ if o then
+ return s_opacity_start, f_opacity_content(o), s_opacity_stop
end
end
end
+ -- it looks like none and transparent are both used (mozilla examples)
+
local function fillproperties(fill,at,opacity)
- local c = c ~= "none" and (gradient(fill) or withcolor(fill)) or nil
local o = at["fill-opacity"] or (opacity and at["opacity"])
- if o and o ~= "none" then
+ local c = nil
+ if c ~= "none" then
+ c = gradient(fill)
+ if not c then
+ c = pattern(fill)
+ if c then
+ if o and o ~= "none" then
+ o = asnumber_r(o)
+ if o ~= ignoredopacity then
+ return c, f_opacity(o), "pattern"
+ end
+ end
+ return c, false, "pattern"
+ else
+ c = withcolor(fill)
+ end
+ end
+ end
+ if not o and fill == "transparent" then
+ return nil, f_opacity(0), true
+ elseif o and o ~= "none" then
o = asnumber_r(o)
- if o == 1 then
+ if o == ignoredopacity then
return c
- elseif o then
- return c, f_opacity(o), o == 0
+ end
+ if o then
+ return c, f_opacity(o), (o == 1 and "invisible")
end
end
return c
end
- -- todo: clip = [ auto | rect(llx,lly,urx,ury) ]
+ local viewport do
- local s_offset_start = "draw image ( "
- local f_offset_stop = formatters[") shifted (%N,%N) ;"]
- local s_rotation_start = "draw image ( "
- local f_rotation_stop = formatters[") rotatedaround((0,0),-angle((%N,%N))) ;"]
- local f_rotation_angle = formatters[") rotatedaround((0,0),-%N) ;"]
+ local s_viewport_start <const> = "draw image ("
+ local s_viewport_stop <const> = ") ;"
+ local f_viewport_shift = formatters["currentpicture := currentpicture shifted (%N,%N);"]
+ local f_viewport_scale = formatters["currentpicture := currentpicture xysized (%N,%N);"]
+ local f_viewport_clip = formatters["clip currentpicture to (unitsquare xyscaled (%N,%N));"]
- local function offset(at)
- local x = asnumber_vx(rawget(at,"x"))
- local y = asnumber_vy(rawget(at,"y"))
- if x ~= 0 or y ~= 0 then
- return s_offset_start, f_offset_stop(x,y)
- end
- end
-
- local s_viewport_start = "draw image ("
- local s_viewport_stop = ") ;"
- local f_viewport_shift = formatters["currentpicture := currentpicture shifted (%03N,%03N);"]
- local f_viewport_scale = formatters["currentpicture := currentpicture xysized (%03N,%03N);"]
- local f_viewport_clip = formatters["clip currentpicture to (unitsquare xyscaled (%03N,%03N));"]
+ viewport = function(x,y,w,h,noclip,scale)
+ r = r + 1 ; result[r] = s_viewport_start
+ return function()
+ local okay = w ~= 0 and h ~= 0
+ if okay and scale then
+ r = r + 1 ; result[r] = f_viewport_scale(w,h)
+ end
+ if x ~= 0 or y ~= 0 then
+ r = r + 1 ; result[r] = f_viewport_shift(-x,y)
+ end
+ if okay and not noclip then
+ r = r + 1 ; result[r] = f_viewport_clip(w,-h)
+ end
- local function viewport(x,y,w,h,noclip,scale)
- r = r + 1 ; result[r] = s_viewport_start
- return function()
- local okay = w ~= 0 and h ~= 0
- if okay and scale then
- r = r + 1 ; result[r] = f_viewport_scale(w,h)
- end
- if x ~= 0 or y ~= 0 then
- r = r + 1 ; result[r] = f_viewport_shift(-x,y)
- end
- if okay and not noclip then
- r = r + 1 ; result[r] = f_viewport_clip(w,-h)
+ r = r + 1 ; result[r] = s_viewport_stop
end
-
- r = r + 1 ; result[r] = s_viewport_stop
end
+
end
-- maybe forget about defs and just always locate (and then backtrack
- -- over <g> if needed)
+ -- over <g> if needed) .. so, only store after locating
- function handlers.defs(c)
- for c in xmlcollected(c,"/*") do
+ function handledefinitions(c)
+ for c in xmlcollected(c,"defs/*") do
local a = c.at
if a then
local id = rawget(a,"id")
@@ -1768,31 +2142,39 @@ do
end
end
end
- end
-
- function handlers.symbol(c)
- if uselevel == 0 then
+ for c in xmlcollected(c,"(symbol|radialGradient|linearGradient)") do
local id = rawget(c.at,"id")
if id then
definitions["#" .. id ] = c
definitions["url(#" .. id .. ")"] = c
end
- else
- handlers.g(c)
end
end
- local uselevel = 0
- local bodyfontscale = 1
+ -- function handlers.defs(c)
+ -- for c in xmlcollected(c,"/*") do
+ -- local a = c.at
+ -- if a then
+ -- local id = rawget(a,"id")
+ -- if id then
+ -- definitions["#" .. id ] = c
+ -- definitions["url(#" .. id .. ")"] = c
+ -- end
+ -- end
+ -- end
+ -- end
+
+ -- lots of stuff todo: transform
+
+ local uselevel = 0
function handlers.use(c)
local at = c.at
local id = rawget(at,"href") or rawget(at,"xlink:href") -- better a rawget
- local res = locate(id)
+ local res = locate(id,c)
if res then
- -- width height ?
uselevel = uselevel + 1
- local boffset, eoffset = offset(at)
+ local boffset, eoffset = handleoffset(at)
local btransform, etransform, transform = handletransform(at)
if boffset then
@@ -1810,7 +2192,14 @@ do
at["transform"] = false
-- at["clip-path"] = false
- process(res,"/*")
+setmetatableindex(res.at,at)
+
+ local tg = res.tg
+-- if usetags[tg] then
+ process(res,".")
+-- else
+-- process(res,"/*")
+-- end
at["transform"] = _transform
-- at["clip-path"] = _clippath
@@ -1829,37 +2218,31 @@ do
end
end
- local f_no_draw = formatters['nodraw (%s)']
- local f_do_draw = formatters['draw (%s)']
- local f_no_fill_c = formatters['nofill (%s..cycle)']
- local f_do_fill_c = formatters['fill (%s..cycle)']
- local f_eo_fill_c = formatters['eofill (%s..cycle)']
- local f_no_fill_l = formatters['nofill (%s--cycle)']
- local f_do_fill_l = formatters['fill (%s--cycle)']
- local f_eo_fill_l = formatters['eofill (%s--cycle)']
- local f_do_fill = f_do_fill_c
- local f_eo_fill = f_eo_fill_c
- local f_no_fill = f_no_fill_c
--- local s_clip_start = 'draw image ('
--- local f_clip_stop_c = formatters[') ; clip currentpicture to (%s..cycle) ;']
--- local f_clip_stop_l = formatters[') ; clip currentpicture to (%s--cycle) ;']
--- local f_clip_stop = f_clip_stop_c
--- local f_eoclip_stop_c = formatters[') ; eoclip currentpicture to (%s..cycle) ;']
--- local f_eoclip_stop_l = formatters[') ; eoclip currentpicture to (%s--cycle) ;']
--- local f_eoclip_stop = f_eoclip_stop_c
- local s_clip_start = 'save p ; picture p ; p := image ('
- local f_clip_stop_c = formatters[') ; clip p to (%s..cycle) ; draw p ;']
- local f_clip_stop_l = formatters[') ; clip p to (%s--cycle) ; draw p ;']
- local f_clip_stop = f_clip_stop_c
- local f_eoclip_stop_c = formatters[') ; eoclip p to (%s..cycle) ; draw p ;']
- local f_eoclip_stop_l = formatters[') ; eoclip p to (%s--cycle) ; draw p ;']
- local f_eoclip_stop = f_eoclip_stop_c
+ local f_no_draw = formatters[' nodraw (%s)']
+ local f_do_draw = formatters[' draw (%s)']
+ local f_no_fill_c = formatters[' nofill closedcurve(%s)']
+ local f_do_fill_c = formatters[' fill closedcurve(%s)']
+ local f_eo_fill_c = formatters[' eofill closedcurve(%s)']
+ local f_no_fill_l = formatters[' nofill closedlines(%s)']
+ local f_do_fill_l = formatters[' fill closedlines(%s)']
+ local f_eo_fill_l = formatters[' eofill closedlines(%s)']
+ local f_closed_draw = formatters[' draw closedcurve(%s)']
+ local f_do_fill = f_do_fill_c
+ local f_eo_fill = f_eo_fill_c
+ local f_no_fill = f_no_fill_c
+ local s_clip_start <const> = 'save p ; picture p ; p := image ('
+ local f_clip_stop_c = formatters[') ; clip p to closedcurve(%s) %s ; draw p ;']
+ local f_clip_stop_l = formatters[') ; clip p to closedlines(%s) %s ; draw p ;']
+ local f_clip_stop = f_clip_stop_c
+ local f_eoclip_stop_c = formatters[') ; eoclip p to closedcurve(%s) %s ; draw p ;']
+ local f_eoclip_stop_l = formatters[') ; eoclip p to closedlines(%s) %s ; draw p ;']
+ local f_eoclip_stop = f_eoclip_stop_c
-- could be shared and then beginobject | endobject
local function flushobject(object,at,c,o)
local btransform, etransform = handletransform(at)
- local cpath = handleclippath(at)
+ local cpath, _, ctransform = handleclippath(at)
if cpath then
r = r + 1 ; result[r] = s_clip_start
@@ -1883,7 +2266,7 @@ do
r = r + 1 ; result[r] = etransform
end
- r = r + 1 ; result[r] = ";"
+ r = r + 1 ; result[r] = " ;"
if cpath then
local f_done = cpath.evenodd
@@ -1892,7 +2275,7 @@ do
else
f_done = f_done and f_eoclip_stop_l or f_clip_stop_l
end
- r = r + 1 ; result[r] = f_done(cpath[1])
+ r = r + 1 ; result[r] = f_done(cpath[1],ctransform or "")
end
end
@@ -1900,12 +2283,12 @@ do
local flush
- local f_linecap = formatters["interim linecap := %s ;"]
- local f_linejoin = formatters["interim linejoin := %s ;"]
- local f_miterlimit = formatters["interim miterlimit := %s ;"]
+ local f_linecap = formatters[" interim linecap := %s ;"]
+ local f_linejoin = formatters[" interim linejoin := %s ;"]
+ local f_miterlimit = formatters[" interim miterlimit := %s ;"]
- local s_begingroup = "begingroup;"
- local s_endgroup = "endgroup;"
+ local s_begingroup <const> = "begingroup;"
+ local s_endgroup <const> = "endgroup;"
local linecaps = { butt = "butt", square = "squared", round = "rounded" }
local linejoins = { miter = "mitered", bevel = "beveled", round = "rounded" }
@@ -1956,10 +2339,11 @@ do
local refy = rawget(at,"refY")
local width = rawget(at,"markerWidth")
local height = rawget(at,"markerHeight")
+ local units = rawget(at,"markerUnits") -- no parentat["stroke-width"], bad for m4mbo
local view = rawget(at,"viewBox")
local orient = rawget(at,"orient")
-- local ratio = rawget(at,"preserveAspectRatio")
- local units = asnumber(at["markerUnits"] or parentat["stroke-width"]) or 1
+ local units = units and asnumber(units) or 1
local angx = 0
local angy = 0
@@ -2119,7 +2503,7 @@ do
local stroke = at["stroke"] or "none"
local btransform, etransform = handletransform(at)
- local cpath = handleclippath(at)
+ local cpath, _, ctransform = handleclippath(at)
if cpath then
r = r + 1 ; result[r] = s_clip_start
@@ -2128,29 +2512,33 @@ do
local has_stroke = stroke and stroke ~= "none"
local has_fill = fill and fill ~= "none"
- local bopacity, eopacity
+ local bopacity, copacity, eopacity
if has_stroke and has_fill then
- bopacity, eopacity = sharedopacity(at)
+ bopacity, copacity, eopacity = sharedopacity(at)
end
- if bopacity then
+ if copacity then
r = r + 1 ; result[r] = bopacity
end
if has_fill then
- local color, opacity = fillproperties(fill,at,not has_stroke)
+ local color, opacity, option = fillproperties(fill,at,not has_stroke)
local f_xx_fill = at["fill-rule"] == "evenodd" and f_eo_fill or f_do_fill
if btransform then
r = r + 1 ; result[r] = btransform
end
- r = r + 1 result[r] = f_xx_fill(shape)
+ if option == "pattern" then
+ r = r + 1 result[r] = f_closed_draw(shape)
+ else
+ r = r + 1 result[r] = f_xx_fill(shape)
+ end
if color then
r = r + 1 ; result[r] = color
end
if opacity then
r = r + 1 ; result[r] = opacity
end
- r = r + 1 ; result[r] = etransform or ";"
+ r = r + 1 ; result[r] = etransform or " ;"
end
if has_stroke then
@@ -2172,7 +2560,7 @@ do
if opacity then
r = r + 1 ; result[r] = opacity
end
- r = r + 1 ; result[r] = etransform or ";"
+ r = r + 1 ; result[r] = etransform or " ;"
--
if list then
addmarkers(list,begmarker,midmarker,endmarker,at)
@@ -2183,12 +2571,13 @@ do
end
end
- if eopacity then
+ if copacity then
+ r = r + 1 ; result[r] = copacity
r = r + 1 ; result[r] = eopacity
end
if cpath then
- r = r + 1 ; result[r] = (cpath.evenodd and f_eoclip_stop or f_clip_stop)(cpath[1])
+ r = r + 1 ; result[r] = (cpath.evenodd and f_eoclip_stop or f_clip_stop)(cpath[1],ctransform)
end
end
@@ -2230,8 +2619,8 @@ do
y = y - height
- if rx then rx = asnumber(rx) end
- if ry then ry = asnumber(ry) end
+ if rx then rx = asnumber_x(rx) end
+ if ry then ry = asnumber_y(ry) end
if rx or ry then
if not rx then rx = ry end
@@ -2298,8 +2687,8 @@ do
function handlers.polyline(c) poly(c, ")") end
function handlers.polygon (c) poly(c,"--cycle)") end
- local s_image_start = "draw image ("
- local s_image_stop = ") ;"
+ local s_image_start <const> = "draw image ("
+ local s_image_stop <const> = ") ;"
function handlers.path(c)
local at = c.at
@@ -2319,9 +2708,11 @@ do
-- todo: image (nicer for transform too)
if fill and fill ~= "none" then
- local color, opacity = fillproperties(fill,at)
+ local color, opacity, option = fillproperties(fill,at)
local f_xx_fill = at["fill-rule"] == "evenodd"
- if shape.closed then
+ if option == "pattern" then
+ f_xx_fill = f_closed_draw
+ elseif shape.closed then
f_xx_fill = f_xx_fill and f_eo_fill or f_do_fill
elseif shape.curve then
f_xx_fill = f_xx_fill and f_eo_fill_c or f_do_fill_c
@@ -2339,7 +2730,7 @@ do
if opacity then
r = r + 1 ; result[r] = opacity
end
- r = r + 1 ; result[r] = etransform or ";"
+ r = r + 1 ; result[r] = etransform or " ;"
else
r = r + 1 ; result[r] = btransform or s_image_start
for i=1,n do
@@ -2354,7 +2745,7 @@ do
else
r = r + 1 ; result[r] = f_no_fill(shape[i])
end
- r = r + 1 ; result[r] = ";"
+ r = r + 1 ; result[r] = " ;"
end
r = r + 1 ; result[r] = etransform or s_image_stop
end
@@ -2386,9 +2777,9 @@ do
if opacity then
r = r + 1 ; result[r] = opacity
end
- r = r + 1 result[r] = etransform or ";"
+ r = r + 1 result[r] = etransform or " ;"
else
- r = r + 1 result[r] = btransform or "draw image ("
+ r = r + 1 result[r] = btransform or s_draw_image_start
for i=1,n do
r = r + 1 result[r] = f_do_draw(shape[i])
if pen then
@@ -2403,12 +2794,12 @@ do
if opacity then
r = r + 1 ; result[r] = opacity
end
- r = r + 1 ; result[r] = ";"
+ r = r + 1 ; result[r] = " ;"
end
if list then
addmarkers(list,begmarker,midmarker,endmarker,at)
end
- r = r + 1 ; result[r] = etransform or ") ;"
+ r = r + 1 ; result[r] = etransform or s_draw_image_stop
end
if wrapup then
wrapup()
@@ -2416,7 +2807,7 @@ do
end
if cpath then
- r = r + 1 ; result[r] = f_clip_stop(cpath[1])
+ r = r + 1 ; result[r] = f_clip_stop(cpath[1],"")
end
end
@@ -2435,9 +2826,10 @@ do
-- inclusion takes from data
-- specification.data = false
- local f_image = formatters[ [[figure("%s") xysized (%N,%N) shifted (%N,%N)]] ]
+ -- local f_image = formatters[ [[figure("%s") xysized (%N,%N) shifted (%N,%N)]] ]
+ local f_image = formatters[ [[svgembeddedfigure(%i) xysized (%N,%N) shifted (%N,%N)]] ]
- local nofimages = 0
+ -- local nofimages = 0
function handlers.image(c)
local at = c.at
@@ -2460,12 +2852,15 @@ do
h = h and asnumber_y(h)
x = x and asnumber_vx(x) or 0
y = y and asnumber_vy(y) or 0
- nofimages = nofimages + 1
- local name = "temp-svg-image-" .. nofimages .. "." .. kind
- local data = mime.decode("base64")(data)
- io.savedata(name,data)
+ local data = basexx.decode64(data)
+ -- local name = "temp-svg-image-" .. nofimages .. "." .. kind
+ local index = images.storedata("svg", {
+ kind = kind,
+ data = data,
+ info = graphics.identifiers[kind](data,"string"),
+ })
+ -- io.savedata(name,data)
if not w or not h then
- local info = graphics.identifiers[kind](data,"string")
if info then
-- todo: keep aspect ratio attribute
local xsize = info.xsize
@@ -2485,9 +2880,9 @@ do
-- safeguard:
if not w then w = h or 1 end
if not h then h = w or 1 end
- luatex.registertempfile(name)
- -- done:
- flushobject(f_image(name,w,h,x,y - h),at)
+ -- luatex.registertempfile(name)
+ -- flushobject(f_image(name,w,h,x,y - h),at)
+ flushobject(f_image(index,w,h,x,y - h),at)
else
-- nothing done
end
@@ -2508,7 +2903,7 @@ do
local at = c.at
local btransform, etransform, transform = handletransform(at)
- local cpath, clippath = handleclippath(at)
+ local cpath, clippath, ctransform = handleclippath(at)
if cpath then
r = r + 1 ; result[r] = s_clip_start
@@ -2523,7 +2918,7 @@ do
at["transform"] = false
at["clip-path"] = false
- process(c,"/*")
+ process(c,"/!(defs|symbol)") -- /*
at["transform"] = _transform
at["clip-path"] = _clippath
@@ -2539,7 +2934,7 @@ do
else
f_done = f_done and f_eoclip_stop_l or f_clip_stop_l
end
- r = r + 1 ; result[r] = f_done(cpath[1])
+ r = r + 1 ; result[r] = f_done(cpath[1],ctransform or "")
end
end
@@ -2554,37 +2949,40 @@ do
-- The size is a bit of an issue. I assume that the specified size relates to the
-- designsize but we want to be able to use other fonts.
- do
-
- local f_styled = formatters["\\svgstyled{%s}{%s}{%s}{%s}"]
- local f_colored = formatters["\\svgcolored{%.3N}{%.3N}{%.3N}{"]
--- local f_placed = formatters["\\svgplaced{%.3N}{%.3N}{}{"]
-local f_placed = formatters["\\svgplaced{%s}{%s}{}{"]
- local f_poschar = formatters["\\svgposchar{%.3N}{%.3N}{%s}"]
- local f_char = formatters["\\svgchar{%s}"]
+ -- a mix of text and spans and possibly wrap (where xy is to be ignored) ... bah ...
+ -- it's fuzzy when we have a span with positions mixed with text ... basically that
+ -- is a box and we can assume that an editor then has all positioned
- local f_scaled = formatters["\\svgscaled{%N}{%s}{%s}{%s}"]
- local f_normal = formatters["\\svgnormal{%s}{%s}{%s}"]
- local f_hashed = formatters["\\svghashed{%s}"]
-
- -- We move to the outer (x,y) and when we have an inner offset we
- -- (need to) compensate for that outer offset.
+ do
- -- local f_text_scaled_svg = formatters['(svgtext("%s") scaled %N shifted (%N,%N))']
- -- local f_text_normal_svg = formatters['(svgtext("%s") shifted (%N,%N))']
- -- local f_text_simple_svg = formatters['svgtext("%s")']
+ local s_start <const> = "\\svgstart "
+ local s_stop <const> = "\\svgstop "
+ local f_set = formatters["\\svgset{%N}{%N}"] -- we need a period
+ local f_color_c = formatters["\\svgcolorc{%.3N}{%.3N}{%.3N}{"]
+ local f_color_o = formatters["\\svgcoloro{%.3N}{"]
+ local f_color_b = formatters["\\svgcolorb{%.3N}{%.3N}{%.3N}{%.3N}{"]
+ local f_poscode = formatters["\\svgpcode{%N}{%N}{%s}"]
+ local f_poschar = formatters["\\svgpchar{%N}{%N}{%s}"]
+ local f_posspace = formatters["\\svgpspace{%N}{%N}"]
+ local f_code = formatters["\\svgcode{%s}"]
+ local f_char = formatters["\\svgchar{%s}"]
+ local s_space <const> = "\\svgspace "
+ local f_size = formatters["\\svgsize{%0.6f}"] -- we need a period
+ local f_font = formatters["\\svgfont{%s}{%s}{%s}"]
+ local f_hashed = formatters["\\svghashed{%s}"]
+
+ ----- p_texescape = lpegpatterns.texescape
local anchors = {
["start"] = "drt",
- ["end"] = "dflt",
+ ["end"] = "dlft",
["middle"] = "d",
}
- local f_text_normal_svg = formatters['(textext.%s("%s") shifted (%N,%N))']
- local f_text_simple_svg = formatters['textext.%s("%s")']
-
- -- or just maptext
+ -- we can now just use the lmt maptext feature
+ local f_text_normal_svg = formatters['(onetimetextext.%s("%s") shifted (%N,%N))']
+ local f_text_simple_svg = formatters['onetimetextext.%s("%s")']
local f_mapped_normal_svg = formatters['(svgtext("%s") shifted (%N,%N))']
local f_mapped_simple_svg = formatters['svgtext("%s")']
@@ -2599,8 +2997,6 @@ local f_placed = formatters["\\svgplaced{%s}{%s}{}{"]
return v
end)
- local p_texescape = lpegpatterns.texescape
-
-- For now as I need it for my (some 1500) test files.
local function checkedfamily(name)
@@ -2612,123 +3008,171 @@ local f_placed = formatters["\\svgplaced{%s}{%s}{}{"]
-- todo: only escape some chars and handle space
+ -- An arbitrary mix of text and spans with x/y is asking for troubles. The fact that the
+ -- description in the (proposed) standard is so complex indicates this (its also looks
+ -- like reveng application specs and doesn't aim at simplicity. Basically we have two
+ -- cases: positioned lines and words and such (text & span with xy), or just stripes of
+ -- text and span. Free flow automatically broken into lines text is kind of strange in
+ -- svg and the fact that glyph placement is dropped is both an indication that svg lost
+ -- part of its purpose and probably also that it never really was a standard (although
+ -- maybe today standards are just short term specifications. Who knows.
+
+ -- text with spans, all with x/y
+ -- text mixed with spans, no xy in inner elements
+ --
+ -- the spec says that nested x/y are absolute
+
local defaultsize = 10
- local function collect(t,c,x,y,size,scale,family,tx,ty)
- local at = c.at
- local ax = rawget(at,"x")
- local ay = rawget(at,"y")
- local dx = rawget(at,"dx")
- local dy = rawget(at,"dy")
- local v_fill = at["fill"]
- local v_family = at["font-family"]
- local v_style = at["font-style"]
- local v_weight = at["font-weight"]
- local v_size = at["font-size"]
+ local sensitive = { -- todo: characters.sensitive
+ ["#"] = true,
+ ["$"] = true,
+ ["%"] = true,
+ ["&"] = true,
+ ["\\"] = true,
+ ["{"] = true,
+ ["|"] = true,
+ ["}"] = true,
+ ["~"] = true,
+ }
+
+ -- messy: in nested spans (they happen) the x/y are not accumulated
+
+ local function validdelta(usedscale,d)
+ if d then
+ local value, unit = match(d,"^([%A]-)(%a+)")
+ value = tonumber(value) or 0
+ if not unit then
+ return value .. "bp"
+ elseif unit == "ex" or unit == "em" then
+ return (usedscale * value) .. unit
+ else
+ return value .. "bp"
+ end
+ else
+ return "0bp"
+ end
+ end
+
+ local cleanfontname = fonts.names.cleanname
+
+ local x_family = false
+ local x_weight = false
+ local x_style = false
+
+ local function collect(parent,t,c,x,y,size,scale,family,tx,ty,tdx,tdy)
+ if c.special then
+ return nil
+ end
+ local dt = c.dt
+ local nt = #dt
+ local at = c.at
+ local tg = c.tg
+ local ax = rawget(at,"x")
+ local ay = rawget(at,"y")
+ local v_opacity = tonumber(at["fill-opacity"])
+ local v_fill = at["fill"]
+ local v_family = at["font-family"]
+ local v_style = at["font-style"]
+ local v_weight = at["font-weight"]
+ local v_size = at["font-size"]
+ local v_lineheight = at["line-height"]
--
ax = ax and asnumber_vx(ax) or x
ay = ay and asnumber_vy(ay) or y
--
-local d_x = dx and asnumber_vx(dx) or 0
-local d_y = dy and asnumber_vy(dy) or 0
- --
if v_family then v_family = cssfamily(v_family) end
if v_style then v_style = cssstyle (v_style) end
if v_weight then v_weight = cssweight(v_weight) end
- if v_size then v_size = csssize (v_size,factors) or tonumber(v_size) end
+ if v_size then v_size = csssize (v_size,factors,size/100) or tonumber(v_size) end
--
if not v_family then v_family = family end
if not v_weight then v_weight = "normal" end
if not v_style then v_style = "normal" end
--
if v_family then
- v_family = fonts.names.cleanname(v_family)
+ v_family = cleanfontname(v_family)
v_family = checkedfamily(v_family)
end
--
usedfonts[v_family][v_weight][v_style] = true
--
+ local lh = v_lineheight and asnumber_vx(v_lineheight) or false
+ --
ax = ax - x
ay = ay - y
--
- local elayered = ax ~= 0 or ay ~= 0 or false
--- local eplaced = dx ~= 0 or dy ~= 0 or false
-local eplaced = d_x ~= 0 or d_y ~= 0 or false
- local usedsize, usedscaled
-
- if elayered then
- -- we're now at the outer level again so we need to scale
- -- back to the outer level values
- t[#t+1] = formatters["\\svgsetlayer{%0N}{%0N}{"](ax,-ay)
- usedsize = v_size or defaultsize
- usedscale = usedsize / defaultsize
- else
- -- we're nested so we can be scaled
- usedsize = v_size or size
- usedscale = (usedsize / defaultsize) / scale
- end
-usedscale = (10 / bodyfontscale) * usedscale
+ local usedsize = v_size or defaultsize
+ local usedscale = usedsize / defaultsize
--
- if eplaced then
-if dx then
- if not find(dx,"%a") then
- dx = dx .. "bp"
- elseif find(dx,"e") then
- dx = formatters["%s\\dimexpr %s\\relax"](usedscale,dx)
- end
-else
- dx = "0pt"
-end
-if dy then
- if not find(dy,"%a") then
- dy = dy .. "bp"
- elseif find(dy,"e") then
- dy = formatters["%s\\dimexpr %s\\relax"](usedscale,dy)
- end
-else
- dy = "0pt"
-end
- t[#t+1] = f_placed(dx,dy)
- end
+ -- todo: rotate : list of numbers
+ -- todo: lengthAdjust : spacing|spacingAndGlyphs
+ -- todo: textLength : scale to width
+ -- toto: font-size-adjust
+ -- toto: font-stretch
+ -- letter-spacing
+ -- word-spacing
+ -- writing-mode:lr-tb
--
--- if usedscale == 1 then
--- t[#t+1] = f_normal( v_family,v_weight,v_style)
--- else
- t[#t+1] = f_scaled(usedscale,v_family,v_weight,v_style)
--- end
+ local newfont = v_family ~= x_family or v_weight ~= x_weight or v_style ~= x_style
+ if newfont then
+ x_family = v_family
+ x_weight = v_weight
+ x_style = v_style
+ t[#t+1] = f_font(v_family,v_weight,v_style)
+ t[#t+1] = "{"
+ end
+ t[#t+1] = f_size(usedscale)
t[#t+1] = "{"
--
if trace_fonts then
+ -- we can hash and keep it when no change
report("element : %s",c.tg)
report(" font family : %s",v_family)
report(" font weight : %s",v_weight)
report(" font style : %s",v_style)
report(" parent size : %s",size)
- report(" parent scale : %s",scale)
- report(" used size : %s",usedsize)
- report(" used scale : %s",usedscale)
- report(" layered : %l",elayered)
+ -- report(" parent scale : %s",scale)
+ report(" used size : %s",v_size or defaultsize)
end
--
- local ecolored = v_fill and v_fill ~= "" or false
+ local ecolored = v_fill ~= "" and v_fill or false
+ local opacity = v_opacity ~= ignoredopacity and v_opacity or false
+ --
+ -- todo cmyk
+ --
if ecolored then
- -- todo cmyk
local r, g, b = colorcomponents(v_fill)
if r and g and b then
- t[#t+1] = f_colored(r,g,b)
+ if opacity then
+ t[#t+1] = f_color_b(r,g,b,opacity)
+ else
+ t[#t+1] = f_color_c(r,g,b)
+ end
+ elseif opacity then
+ t[#t+1] = f_color_o(opacity)
else
ecolored = false
end
+ elseif opacity then
+ t[#t+1] = f_color_o(opacity)
end
--
- local dt = c.dt
- local nt = #dt
+ local hasa = ax ~= 0 or ay ~= 0
+ if hasa then
+ -- we abuse the fact that flushing layers can be nested
+ t[#t+1] = f_set(ax or 0,ay or 0)
+ t[#t+1] = "{"
+ end
for i=1,nt do
local di = dt[i]
if type(di) == "table" then
- -- can be a tspan (should we pass dx too)
- collect(t,di,x,y,usedsize,usedscale,v_family)
+ -- when x or y then absolute else inline
+ if #di.dt > 0 then
+ collect(tg,t,di,x,y,usedsize,usedscale,v_family)
+ end
else
+ -- check for preserve
if i == 1 then
di = gsub(di,"^%s+","")
end
@@ -2737,117 +3181,162 @@ end
end
local chars = utfsplit(di)
if svghash then
+ -- dx dy
di = f_hashed(svghash[di])
- elseif tx then
- for i=1,#chars do
- chars[i] = f_poschar(
- (tx[i] or 0) - x,
- (ty[i] or 0) - y,
- utfbyte(chars[i])
- )
- end
- di = "{" .. concat(chars) .. "}"
else
- -- this needs to be texescaped ! and even quotes and newlines
- -- or we could register it but that's a bit tricky as we nest
- -- and don't know what we can expect here
- -- di = lpegmatch(p_texescape,di) or di
- for i=1,#chars do
- chars[i] = f_char(utfbyte(chars[i]))
+ if tx or ty or tdx or tdy then
+ local txi, tyi, tdxi, tdyi
+ for i=1,#chars do
+ txi = tx and (tx [i] or txi )
+ tyi = ty and (ty [i] or tyi )
+ tdxi = tdx and (tdx[i] or tdxi) or 0
+ tdyi = tdy and (tdy[i] or tdyi) or 0
+ local dx = (txi and (txi - x) or 0) + tdxi
+ local dy = (tyi and (tyi - y) or 0) + tdyi
+ local ci = chars[i]
+ if ci == " " then
+ chars[i] = f_posspace(dx, dy)
+ elseif sensitive[ci] then
+ chars[i] = f_poscode(dx, dy, utfbyte(ci))
+ else
+ chars[i] = f_poschar(dx, dy, ci)
+ end
+ end
+ di = "{" .. concat(chars) .. "}"
+ t[#t+1] = di
+ else
+ -- this needs to be texescaped ! and even quotes and newlines
+ -- or we could register it but that's a bit tricky as we nest
+ -- and don't know what we can expect here
+ -- di = lpegmatch(p_texescape,di) or di
+ for i=1,#chars do
+ local ci = chars[i]
+ if ci == " " then
+ chars[i] = s_space
+ elseif sensitive[ci] then
+ chars[i] = f_code(utfbyte(ci))
+ else
+ chars[i] = f_char(ci)
+ -- chars[i] = ci
+ end
+ end
+ di = concat(chars)
+ t[#t+1] = di
end
- di = concat(chars)
end
- t[#t+1] = di
+ end
+ end
+ if hasa then
+ if t[#t] == "{" then
+ t[#t] = nil
+ t[#t] = nil
+ else
+ t[#t+1] = "}"
end
end
--
- if ecolored then
+ if opacity or ecolored then
t[#t+1] = "}"
end
--
t[#t+1] = "}"
--
- if eplaced then
- t[#t+1] = "}"
- end
- if elayered then
+ if newfont then
t[#t+1] = "}"
end
--
return t
end
- local s_startlayer = "\\svgstartlayer "
- local s_stoplayer = "\\svgstoplayer "
+ -- case 1: just text, maybe with spans
+ -- case 2: only positioned spans
+ -- case 3: just text, seen as label
+
+ local textlevel = 0
function handlers.text(c)
+ if textlevel == 0 then
+ x_family = v_family
+ x_weight = v_weight
+ x_style = v_style
+ end
+ --
+ textlevel = textlevel + 1
+ -- analyze
local only = fullstrip(xmltextonly(c))
- -- if metapost.processing() then
- local at = c.at
- local x = rawget(at,"x")
- local y = rawget(at,"y")
+ local at = c.at
+ local x = rawget(at,"x")
+ local y = rawget(at,"y")
+
+ local dx = rawget(at,"dx")
+ local dy = rawget(at,"dy")
--- local dx = rawget(at,"dx")
--- local dy = rawget(at,"dy")
+ local tx = asnumber_vx_t(x)
+ local ty = asnumber_vy_t(y)
- local tx = asnumber_vx_t(x)
- local ty = asnumber_vy_t(y)
+ local tdx = asnumber_vx_t(dx)
+ local tdy = asnumber_vy_t(dy)
--- dx = dx and asnumber_vx(dx) or 0
--- dy = dy and asnumber_vy(dy) or 0
+ x = tx[1] or 0 -- catch bad x/y spec
+ y = ty[1] or 0 -- catch bad x/y spec
- x = tx[1] or 0 -- catch bad x/y spec
- y = ty[1] or 0 -- catch bad x/y spec
+ dx = tdx[1] or 0 -- catch bad x/y spec
+ dy = tdy[1] or 0 -- catch bad x/y spec
- local v_fill = at["fill"]
- if not v_fill or v_fill == "none" then
- v_fill = "black"
+ local v_fill = at["fill"]
+ if not v_fill or v_fill == "none" then
+ v_fill = "black"
+ end
+ local color, opacity, option = fillproperties(v_fill,at)
+ local anchor = anchors[at["text-anchor"] or "start"] or "drt"
+ local remap = metapost.remappedtext(only)
+ -- x = x + dx
+ -- y = y + dy
+ if remap then
+ if x == 0 and y == 0 then
+ only = f_mapped_simple_svg(remap.index)
+ else
+ only = f_mapped_normal_svg(remap.index,x,y)
end
- local color, opacity, invisible = fillproperties(v_fill,at)
- local anchor = anchors[at["text-anchor"] or "start"] or "drt"
- local r = metapost.remappedtext(only)
--- x = x + dx
--- y = y + dy
- if r then
- if x == 0 and y == 0 then
- only = f_mapped_simple_svg(r.index)
- else
- only = f_mapped_normal_svg(r.index,x,y)
- end
- flushobject(only,at,color,opacity)
- if trace_text then
- report("text: %s",only)
- end
- elseif not invisible then -- can be an option
- local scale = 1
- local textid = 0
- local result = { }
- local nx = #tx
- local ny = #ty
- --
- result[#result+1] = s_startlayer
- if nx > 1 or ny > 1 then
- concat(collect(result,c,x,y,defaultsize,1,"serif",tx,ty))
- else
- concat(collect(result,c,x,y,defaultsize,1,"serif"))
- end
- result[#result+1] = s_stoplayer
- result = concat(result)
- if x == 0 and y == 0 then
- result = f_text_simple_svg(anchor,result)
- else
- result = f_text_normal_svg(anchor,result,x,y)
- end
- flushobject(result,at,color,opacity)
- if trace_text then
- report("text: %s",result)
- end
- elseif trace_text then
+ flushobject(only,at,color,opacity)
+ if trace_text then
+ report("text: %s",only)
+ end
+ elseif option == "invisible" then
+ if trace_text then
report("invisible text: %s",only)
end
- -- elseif trace_text then
- -- report("ignored text: %s",only)
- -- end
+ else
+ local scale = 1
+ local textid = 0
+ local result = { }
+ local nx = #tx
+ local ny = #ty
+ local ndx = #tdx
+ local ndy = #tdy
+ --
+ local t = { }
+ t[#t+1] = s_start
+ if nx > 1 or ny > 1 or ndx > 1 or ndy > 1 then
+ collect(tg,t,c,x,y,defaultsize,1,"serif",tx,ty,tdx,tdy)
+ else
+ collect(tg,t,c,x,y,defaultsize,1,"serif")
+ end
+ t[#t+1] = s_stop
+ t = concat(t)
+ if x == 0 and y == 0 then
+ t = f_text_simple_svg(anchor,t)
+ else -- dx dy
+ t = f_text_normal_svg(anchor,t,x,y)
+ end
+ -- flushobject(t,at,color,opacity) -- otherwise mixup with transparency
+ flushobject(t,at,false,false)
+ if trace_text then
+ report("text: %s",result)
+ end
+ end
+ --
+ textlevel = textlevel - 1
end
function metapost.reportsvgfonts()
@@ -2892,8 +3381,6 @@ end
local btransform, etransform, transform = handletransform(at)
-bodyfontscale = tex.getdimen("bodyfontsize") / 65536
-
if trace then
report("view: %s, xpct %N, ypct %N","before",percentage_x,percentage_y)
end
@@ -2940,7 +3427,7 @@ bodyfontscale = tex.getdimen("bodyfontsize") / 65536
if bhacked then
r = r + 1 ; result[r] = bhacked
end
- local boffset, eoffset = offset(at)
+ local boffset, eoffset = handleoffset(at)
if boffset then
r = r + 1 result[r] = boffset
end
@@ -2948,7 +3435,7 @@ bodyfontscale = tex.getdimen("bodyfontsize") / 65536
at["transform"] = false
at["viewBox"] = false
- process(c,"/*")
+ process(c,"/!(defs|symbol)")
at["transform"] = transform
at["viewBox"] = viewbox
@@ -2997,6 +3484,7 @@ bodyfontscale = tex.getdimen("bodyfontsize") / 65536
function metapost.svgtomp(specification,pattern,notransform,normalize)
local mps = ""
local svg = specification.data
+ images.resetstore("svg")
if type(svg) == "string" then
svg = xmlconvert(svg)
end
@@ -3016,6 +3504,7 @@ bodyfontscale = tex.getdimen("bodyfontsize") / 65536
end
handlechains(c)
xmlinheritattributes(c) -- put this in handlechains
+ handledefinitions(c)
handlers.svg (
c,
specification.x,
@@ -3027,7 +3516,12 @@ bodyfontscale = tex.getdimen("bodyfontsize") / 65536
normalize,
specification.remap
)
- if trace_result then
+ if trace_result == "file" then
+ io.savedata(
+ tex.jobname .. "-svg-to-mp.tex",
+ "\\startMPpage[instance=doublefun]\n" .. concat(result,"\n") .. "\n\\stopMPpage\n"
+ )
+ elseif trace_result then
report("result graphic:\n %\n t",result)
end
if usedcolors and next(usedcolors) then
@@ -3061,7 +3555,8 @@ do
local bpfactor = number.dimenfactors.bp
function metapost.includesvgfile(filename,offset) -- offset in sp
- if lfs.isfile(filename) then
+ local fullname = resolvers.findbinfile(filename)
+ if lfs.isfile(fullname) then
context.startMPcode("doublefun")
context('draw lmt_svg [ filename = "%s", offset = %N ] ;',filename,(offset or 0)*bpfactor)
context.stopMPcode()
@@ -3089,8 +3584,9 @@ do
function metapost.showsvgpage(data)
local dd = data.data
if not dd then
- local fn = data.filename
- dd = fn and table.load(fn)
+ local filename = data.filename
+ local fullname = filename and resolvers.findbinfile(filename)
+ dd = fullname and table.load(fullname)
end
if type(dd) == "table" then
local comment = data.comment
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mult-aux.mkxl b/Master/texmf-dist/tex/context/base/mkxl/mult-aux.mkxl
index 40667e17d85..08d75a5b3cf 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mult-aux.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/mult-aux.mkxl
@@ -15,13 +15,19 @@
%D (interface might change). The code here evolved in an email exchange between me
%D and Wolgang Schuster.
+%D We use constant definitions here because we don't need to expand the keywords
+%D which saves a little on the stack (read: memory access). The gain in performance
+%D is normally not noticeable unless one has plenty of parameter checking, which
+%D can happen in some scenarios. Even then the gain is only there when one has
+%D thousands of runs on e.g. virtual platforms.
+
\writestatus{loading}{ConTeXt Multilingual Macros / Helpers}
\registerctxluafile{mult-aux}{}
\unprotect
-\immutable\edef\??empty{\Uchar25} \immutable\letvalue{\Uchar25}\empty % hex 19
+\immutable\cdef\??empty{\Uchar25} \immutable\letvalue{\Uchar25}\empty % hex 19
% \edef\s!parent{\Uchar29} % inlining  is ugly, a tiny bit faster, but neglectable on a run
@@ -84,7 +90,7 @@
% KEEP THIS:
%
-% \let\m_mult_interfaces_namespace\empty
+% \lettonothing\m_mult_interfaces_namespace
%
% \def\mult_interfaces_get_parameters#1[#2%
% {\if\noexpand#2]%
@@ -172,7 +178,7 @@
%D a comma and trigger a warning but we intercept that elsewhere. The alternative is
%D to skip to the comma first which takes more time.
-\let\m_mult_interfaces_namespace\empty
+\lettonothing\m_mult_interfaces_namespace
\def\mult_interfaces_get_parameters#1[%
{\def\m_mult_interfaces_namespace{#1}%
@@ -215,16 +221,16 @@
\stopinterface
-%D Used?
-
-\def\mult_check_for_assignment_indeed#-=#1#-^^^^0004%
- {\if#1^^^^0003\assignmentfalse\else\assignmenttrue\fi}
-
-\def\mult_check_for_assignment_indeed_begin_#-=#1#-^^^^0004%
- {\if#1^^^^0003}
-
-\def\mult_check_for_assignment#1%
- {\expandafter\mult_check_for_assignment_indeed\detokenize{#1}=^^^^0003^^^^0003^^^^0004}
+% % No longer used:
+%
+% \def\mult_check_for_assignment_indeed#-=#1#-^^^^0004%
+% {\if#1^^^^0003\assignmentfalse\else\assignmenttrue\fi}
+%
+% \def\mult_check_for_assignment_indeed_begin_#-=#1#-^^^^0004%
+% {\if#1^^^^0003}
+%
+% \def\mult_check_for_assignment#1%
+% {\expandafter\mult_check_for_assignment_indeed\detokenize{#1}=^^^^0003^^^^0003^^^^0004}
%D Beware, zero arguments is an assignment!
@@ -266,7 +272,7 @@
% slower: \def#3##1{\csname\ifcsname#1#2:##1\endcsname\expandafter\csstring\lastnamedcs\else\expandafter#5\csname#1#2:\s!parent\endcsname{##1}\fi\endcsname}%
%D pre-expansion can be a bit faster but handly any effect on a normal run so let's
-%D go for saving some memory
+%D go for saving some memory.
\def\mult_interfaces_detokenize{\expandafter\expandafter\expandafter\detokenize\expandafter\expandafter\expandafter}
@@ -336,7 +342,7 @@
% \startinterface english
\protected\def\mult_interfaces_install_parameter_set_handler#1#2#3#4#5#6%
{\frozen\protected\def#3##1{\defcsname#1#2:##1\endcsname}% ##1 {##2} (braces are mandate)
- \frozen\protected\def#4##1{\edefcsname#1#2:##1\endcsname}% ##1 {##2} (braces are mandate)
+ \frozen\protected\def#4##1{\edefcsname#1#2:##1\endcsname}% ##1 {##2} (braces are mandate)
\frozen\protected\def#5##1{\letcsname#1#2:##1\endcsname}% ##1 ##2
\frozen\protected\def#6##1{\letcsname#1#2:##1\endcsname\empty}}% ##1
% \stopinterface
@@ -355,8 +361,10 @@
\mutable\let\dousecurrentstyleparameter\relax
\mutable\let\dousecurrentcolorparameter\relax
-\mutable\let\currentstyleparameter\empty
-\mutable\let\currentcolorparameter\empty
+\mutable\lettonothing\currentstyleparameter
+\mutable\lettonothing\currentcolorparameter
+
+% maybe we should have \names ones too
\protected\def\mult_interfaces_install_style_and_color_handler#1#2#3#4%
{\frozen\protected\def#2##1##2% style color
@@ -400,35 +408,35 @@
{\let#8#4%
% watch out: no \edef#4{##1} before the ifarguments because #1 can have macros
\ifarguments
- \let#4\empty
+ \lettonothing#4%
\the#5% predefine
- \let#7\empty
+ \lettonothing#7%
\letcsname#1#4:\s!chain\endcsname\empty
- \edefcsname#1#4:\s!parent\endcsname{#3}%
+ \cdefcsname#1#4:\s!parent\endcsname{#3}%
\or
\edef#4{##1}%
\the#5% predefine
- \let#7\empty
- \edefcsname#1#4:\s!chain\endcsname{##1}%
- \edefcsname#1#4:\s!parent\endcsname{#3}%
+ \lettonothing#7%
+ \cdefcsname#1#4:\s!chain\endcsname{##1}%
+ \cdefcsname#1#4:\s!parent\endcsname{#3}%
\or
\edef#4{##1}%
\the#5% predefine
\relax
\ifhastok={##2}%
- \let#7\empty
- \edefcsname#1#4:\s!chain\endcsname{##1}%
- \edefcsname#1#4:\s!parent\endcsname{#3}%
+ \lettonothing#7%
+ \cdefcsname#1#4:\s!chain\endcsname{##1}%
+ \cdefcsname#1#4:\s!parent\endcsname{#3}%
\mult_interfaces_get_parameters{#1#4:}[##2]%
\else
\edef#7{##2}%
\ifempty#7%
- \edefcsname#1#4:\s!chain\endcsname{##1}%
- \edefcsname#1#4:\s!parent\endcsname{#3}%
+ \cdefcsname#1#4:\s!chain\endcsname{##1}%
+ \cdefcsname#1#4:\s!parent\endcsname{#3}%
\else
\mult_check_for_parent{#1}{#3}#4#7%
- \edefcsname#1#4:\s!chain\endcsname{\mult_interfaces_chain#1{##2}##1}%
- \edefcsname#1#4:\s!parent\endcsname{#1##2}%
+ \cdefcsname#1#4:\s!chain\endcsname{\mult_interfaces_chain#1{##2}##1}%
+ \cdefcsname#1#4:\s!parent\endcsname{#1##2}%
\fi
\fi
\or
@@ -436,8 +444,8 @@
\the#5% predefine
\edef#7{##2}%
\mult_check_for_parent{#1}{#3}#4#7%
- \edefcsname#1#4:\s!chain\endcsname{\mult_interfaces_chain#1{##2}##1}%
- \edefcsname#1#4:\s!parent\endcsname{#1##2}%
+ \cdefcsname#1#4:\s!chain\endcsname{\mult_interfaces_chain#1{##2}##1}%
+ \cdefcsname#1#4:\s!parent\endcsname{#1##2}%
\mult_interfaces_get_parameters{#1#4:}[##3]%
\fi
\the#6%
@@ -470,7 +478,7 @@
\the#4}%
\processcommalist[##1]#8%
\else
- \let#3\empty
+ \lettonothing#3%
\mult_interfaces_get_parameters{#1:}[##1]%
\the#4%
\fi
@@ -507,7 +515,7 @@
{\ifarguments
% \setuplayout
\let#6#3% % previous becomes current
- \let#3\empty % current becomes empty
+ \lettonothing#3% % current becomes empty
#2\doingrootsetroot
\the#5%
\the#8% switchsetups
@@ -516,7 +524,7 @@
% \setuplayout[key=value]
\let#7#3%
\let#6#3%
- \let#3\empty
+ \lettonothing#3%
#2\doingrootsetuproot
\mult_interfaces_get_parameters{#1:}[##1]%
\the#5%
@@ -577,10 +585,10 @@
\frozen\tolerant\protected\def#2[##1]##*[##2]##*[##3]%
{\let#7#3%
\ifarguments
- \let#3\empty
- \the#5%
+ \lettonothing#3%
+ \the#4%
\or
- \let#3\empty
+ \lettonothing#3%
\mult_interfaces_get_parameters{#1:}[##1]%
\the#4%
\or
@@ -619,11 +627,11 @@
\installparametersethandler {#1}{#2}%
\installrootparameterhandler{#1}{#2}}
-\permanent\protected\def\installbasicautosetuphandler#1#2#3% \??self name \??parent (can be \??self)
+\permanent\protected\def\installbasicautosetuphandler#1#2% \??self name \??parent (can be \??self)
{\installbasicparameterhandler{#1}{#2}%
\installautosetuphandler {#1}{#2}}
-\permanent\protected\def\installstylisticautosetuphandler#1#2#3% \??self name \??parent (can be \??self)
+\permanent\protected\def\installstylisticautosetuphandler#1#2% \??self name \??parent (can be \??self)
{\installbasicparameterhandler{#1}{#2}%
\installautosetuphandler {#1}{#2}%
\installstyleandcolorhandler {#1}{#2}}
@@ -755,17 +763,17 @@
{\frozen\tolerant\protected\defcsname#1\endcsname[##1]##*[##2]%
{\begingroup
\ifarguments
- \let#2\empty
+ \lettonothing#2%
\or
%\ifcondition\expandafter\mult_check_for_assignment_indeed_begin_\detokenize{##1}=^^^^0003^^^^0003^^^^0004%
% \ifcondition\mult_aux_no_assignment_indeed##1\ignorearguments
% \edef#2{##1}%
% \else
- % \let#2\empty
+ % \lettonothing#2%
% #3[##1]%
% \fi
\ifhastok={##1}%
- \let#2\empty
+ \lettonothing#2%
#3[##1]%
\else
\edef#2{##1}%
@@ -788,7 +796,7 @@
% First we had, in tune with the regular system variables:
%
% \starttyping
-% \protected\def\installnamespace#1{\setvalue{????#1}{@@@@#1}}
+% \protected\def\installnamespace#1{\defcsname ????#1\endcsname{@@@@#1}}
% \stoptyping
%
% The following variant is nicer and in principle faster but that gets unnoticed
@@ -810,25 +818,28 @@
% todo: register namespaces at lua end for logging and reverse resolve
% todo: move this to syst-ini so that we can use it real early
-\newcount\c_mult_interfaces_n_of_namespaces
+\newinteger\c_mult_interfaces_n_of_namespaces
+
+% \def\v_interfaces_prefix_template
+% {\number\c_mult_interfaces_n_of_namespaces>}
\def\v_interfaces_prefix_template
- {\number\c_mult_interfaces_n_of_namespaces>}
+ {\tohexadecimal\c_mult_interfaces_n_of_namespaces>}
\permanent\protected\def\installnamespace#1% for modules and users
{\ifcsname ????#1\endcsname
\writestatus\m!system{duplicate user namespace '#1'}\wait
\else
- \global\advance\c_mult_interfaces_n_of_namespaces\plusone
- \immutable\edefcsname ????#1\endcsname{\v_interfaces_prefix_template}%
+ \global\advanceby\c_mult_interfaces_n_of_namespaces\plusone
+ \global\immutable\cdefcsname ????#1\endcsname{\v_interfaces_prefix_template}%
\fi}
\permanent\protected\def\installcorenamespace#1%
{\ifcsname ??#1\endcsname
\writestatus\m!system{duplicate core namespace '#1'}\wait
\else
- \global\advance\c_mult_interfaces_n_of_namespaces\plusone
- \immutable\edefcsname ??#1\endcsname{\v_interfaces_prefix_template}%
+ \global\advanceby\c_mult_interfaces_n_of_namespaces\plusone
+ \global\immutable\cdefcsname ??#1\endcsname{\v_interfaces_prefix_template}%
\clf_registernamespace\c_mult_interfaces_n_of_namespaces{#1}%
\fi}
@@ -853,6 +864,7 @@
\permanent\protected\def\setdummyparameter #1{\defcsname\??dummy#1\endcsname}
\permanent\protected\def\setexpandeddummyparameter#1{\edefcsname\??dummy#1\endcsname}
\permanent\protected\def\letdummyparameter #1{\letcsname\??dummy#1\endcsname}
+\permanent\protected\def\resetdummyparameter #1{\letcsname\??dummy#1\endcsname\empty}
\edef\mult_interfaces_dummy{\??dummy} % nor immutable
@@ -957,6 +969,9 @@
\expandafter\firstofoneargument
\fi}
+\permanent\def\ifcommandhandler#1#2% namespace name
+ {\ifcsname#1#2:\s!parent\endcsname}
+
% another set of (fast) helpers (grep for usage):
\permanent\def\expandnamespaceparameter#1#2#3% \??xx \getp \c!xx \v!yy
@@ -977,11 +992,11 @@
%D Conventions:
%D
%D \starttyping
-%D \newcount \c_class_whatever
+%D \newinteger \c_class_whatever
%D \newconditional \c_class_whatever
%D \newconstant \c_class_whatever
-%D \newdimen \d_class_whatever
-%D \newskip \s_class_whatever
+%D \newdimension \d_class_whatever
+%D \newgluespec \s_class_whatever
%D \newmuskip \s_class_whatever
%D \newbox \b_class_whatever
%D \newtoks \t_class_whatever
@@ -997,8 +1012,8 @@
\mutable\let\c_mult_set\relax
\protected\def\mult_interfaces_install_definition_set#1#2#3#4#5#6#7%
- {\newcount#3%
- \let#6\empty
+ {\newinteger#3%
+ \lettonothing#6%
\protected\def#2%
{\expandafter\let\expandafter\c_mult_set\csname #1_t_#6\endcsname
\ifrelax\c_mult_set
@@ -1007,12 +1022,12 @@
\fi}
\frozen\protected\def#4##1%
{\pushmacro#6%
- \advance#3\plusone
+ \advanceby#3\plusone
\edef#6{##1}%
\unprotect}%
\frozen\protected\def#5%
{\protect
- \advance#3\minusone
+ \advanceby#3\minusone
\popmacro#6}%
\frozen\protected\def#7##1%
{\edef#6{##1}%
@@ -1068,20 +1083,21 @@
\expandafter\noexpand\csname current#2parent\endcsname
\expandafter\noexpand\csname inject#2parent\endcsname}}
-% The \LUA\ based variant is twice as fast as the above but as said, we don't use
-% this one that often. It's more about less tracing than speed here.
-
-\permanent\protected\def\installmacrostack#1%
- {\ifdefined#1\else\mutable\let#1\empty\fi
- \protected\gdefcsname push_macro_\csstring#1\endcsname{\localpushmacro#1}%
- \protected\gdefcsname pop_macro_\csstring#1\endcsname{\localpopmacro #1}}
+%D Cheaper (assumes grouping at some point):
-\permanent\protected\def\installglobalmacrostack#1%
- {\ifdefined#1\else\mutable\glet#1\empty\fi
- \protected\gdefcsname push_macro_\csstring#1\endcsname{\globalpushmacro#1}%
- \protected\gdefcsname pop_macro_\csstring#1\endcsname{\globalpopmacro #1}}
+\permanent\protected\def\mult_interfaces_install_local_current_injector#1#2#3#4%
+ {\protected\def#4##1%
+ {\advanceby#2\plusone
+ \edef#3{##1:\the#2}% \currentXXX
+ \edefcsname#1#3:\s!parent\endcsname{#1##1}}}
-% \showmacrostack can be used to see if there are different entries
+\permanent\protected\def\installlocalcurrenthandler#1#2% \??XXX {XXX}
+ {\expandafter\newinteger\csname#1:\s!counter\endcsname
+ \normalexpanded{\mult_interfaces_install_local_current_injector
+ {\noexpand#1}%
+ \expandafter\noexpand\csname #1:\s!counter\endcsname
+ \expandafter\noexpand\csname current#2\endcsname
+ \expandafter\noexpand\csname setlocal#2current\endcsname}}
% \unprotect
%
@@ -1169,4 +1185,71 @@
\permanent\protected\def\commalistprocessor#1{\csname\??commalistprocessor#1\endcsname}
+%D This is a special one, used in \METAPOST\ graphic support. It is english only because
+%D we have no multilingual interface in \METAFUN.
+
+\startinterface english
+ \let\mult_interfaces_install_native_auto_setup_handler\mult_interfaces_install_auto_setup_handler
+ \aliased\let\installbasicnativeautosetuphandler\installbasicsetuphandler
+\stopinterface
+
+\ifdefined\installnativebasicsetuphandler \else
+
+ \let\mult_interfaces_adef_yes\mult_interfaces_adef
+ \protected\def\mult_interfaces_adef_nop#1#2{\defcsname#1#2\endcsname}
+
+ \protected\def\mult_interfaces_install_native_auto_setup_handler#1#2#3#4#5#6#7#8%
+ {\newtoks#4%
+ \frozen\protected\def#5{\mult_interfaces_get_parameters{#1#3:}}%
+ \frozen\tolerant\protected\def#2[##1]##*[##2]##*[##3]%
+ {\let#7#3%
+ \ifarguments
+ \lettonothing#3%
+ \the#4%
+ \or
+ \lettonothing#3%
+ \let\mult_interfaces_adef\mult_interfaces_adef_nop
+ \mult_interfaces_get_parameters{#1:}[##1]%
+ \let\mult_interfaces_adef\mult_interfaces_adef_yes
+ \the#4%
+ \or
+ \def#8####1%
+ {\edef#3{####1}%
+ #6% checks parent and sets if needed
+ \let\mult_interfaces_adef\mult_interfaces_adef_nop
+ \mult_interfaces_get_parameters{#1#3:}[##2]%
+ \let\mult_interfaces_adef\mult_interfaces_adef_yes
+ \the#4}%
+ \processcommalist[##1]#8%
+ \or
+ \def#8####1%
+ {\edef#3{####1}%
+ \defcsname#1#3:\s!parent\endcsname{#1##2}%
+ \let\mult_interfaces_adef\mult_interfaces_adef_nop
+ \mult_interfaces_get_parameters{#1#3:}[##3]% always sets parent
+ \let\mult_interfaces_adef\mult_interfaces_adef_yes
+ \the#4}%
+ \processcommalist[##1]#8%
+ \fi
+ \let#3#7}}
+
+ \permanent\protected\def\installnativeautosetuphandler#1#2%
+ {\mutable\letcsname current#2\endcsname\empty
+ \normalexpanded
+ {\mult_interfaces_install_native_auto_setup_handler
+ {\noexpand#1}% \??aa
+ \expandafter\noexpand\csname setup#2\endcsname
+ \expandafter\noexpand\csname current#2\endcsname
+ \expandafter\noexpand\csname everysetup#2\endcsname
+ \expandafter\noexpand\csname setupcurrent#2\endcsname
+ \expandafter\noexpand\csname check#2parent\endcsname
+ \expandafter\noexpand\csname saved_setup_current#2\endcsname
+ \expandafter\noexpand\csname nested_setup_current#2\endcsname}}
+
+ \permanent\protected\def\installbasicnativeautosetuphandler#1#2%
+ {\installbasicparameterhandler {#1}{#2}%
+ \installnativeautosetuphandler{#1}{#2}}
+
+\fi
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mult-def.mkxl b/Master/texmf-dist/tex/context/base/mkxl/mult-def.mkxl
index 13e22dadebf..de57d93b980 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mult-def.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/mult-def.mkxl
@@ -15,14 +15,14 @@
\installcorenamespace{multilingual}
-\immutable\setvalue{\??multilingual czech}{cs}
-\immutable\setvalue{\??multilingual german}{de}
-\immutable\setvalue{\??multilingual english}{en}
-\immutable\setvalue{\??multilingual french}{fr}
-\immutable\setvalue{\??multilingual italian}{it}
-\immutable\setvalue{\??multilingual dutch}{nl}
-\immutable\setvalue{\??multilingual persian}{pe}
-\immutable\setvalue{\??multilingual romanian}{ro}
+\immutable\defcsname\??multilingual czech\endcsname{cs}
+\immutable\defcsname\??multilingual german\endcsname{de}
+\immutable\defcsname\??multilingual english\endcsname{en}
+\immutable\defcsname\??multilingual french\endcsname{fr}
+\immutable\defcsname\??multilingual italian\endcsname{it}
+\immutable\defcsname\??multilingual dutch\endcsname{nl}
+\immutable\defcsname\??multilingual persian\endcsname{pe}
+\immutable\defcsname\??multilingual romanian\endcsname{ro}
\permanent\def\userinterfacetag{\ifcsname\??multilingual\currentinterface\endcsname\lastnamedcs\else en\fi}
\permanent\def\userresponsestag{\ifcsname\??multilingual\currentresponses\endcsname\lastnamedcs\else en\fi}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mult-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/mult-ini.lmt
index 7c60d5b33af..a58e600592f 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mult-ini.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/mult-ini.lmt
@@ -17,7 +17,7 @@ local implement = interfaces.implement
local allocate = utilities.storage.allocate
local mark = utilities.storage.mark
-local prtcatcodes = catcodes.numbers.prtcatcodes
+----- prtcatcodes = catcodes.numbers.prtcatcodes
local vrbcatcodes = catcodes.numbers.vrbcatcodes
local contextsprint = context.sprint
local setmetatableindex = table.setmetatableindex
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mult-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/mult-ini.mkxl
index 17f63ef93b9..19370814f76 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mult-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/mult-ini.mkxl
@@ -19,8 +19,10 @@
\unprotect
-\registerctxluafile{mult-ini}{autosuffix}
-\registerctxluafile{mult-fmt}{initexonly}
+\pushoverloadmode
+ \registerctxluafile{mult-ini}{autosuffix}
+ \registerctxluafile{mult-fmt}{initexonly}
+\popoverloadmode
%D \macros
%D [constanten,variabelen,commands]
@@ -53,14 +55,14 @@
%D \type {!!!!}. In the meantime some of these are obsolete (we had some 12
%D originally).
-\immutable\def\c!prefix!{c!}
-\immutable\def\k!prefix!{k!}
-\immutable\def\e!prefix!{e!}
-\immutable\def\f!prefix!{f!} % for the moment we keep this one
-\immutable\def\m!prefix!{m!}
-\immutable\def\s!prefix!{s!}
-\immutable\def\v!prefix!{v!}
-\immutable\def\t!prefix!{t!}
+\immutable\cdef\c!prefix!{c!}
+\immutable\cdef\k!prefix!{k!}
+\immutable\cdef\e!prefix!{e!}
+\immutable\cdef\f!prefix!{f!} % for the moment we keep this one
+\immutable\cdef\m!prefix!{m!}
+\immutable\cdef\s!prefix!{s!}
+\immutable\cdef\v!prefix!{v!}
+\immutable\cdef\t!prefix!{t!}
%D \macros
%D [constants,variables,commands]
@@ -71,22 +73,22 @@
%D \type {??}, and a system constant, which has the prefix \type {c!}. We'll se some
%D more of this.
-\immutable\def\??prefix {??}
-\immutable\def\@@prefix {@@}
+\immutable\cdef\??prefix {??}
+\immutable\cdef\@@prefix {@@}
%D Just to be complete we repeat some of the already defined system constants here.
%D Maybe their prefix \type {\s!} now falls into place.
-\def\s!next {next} \def\s!default {default}
-\def\s!dummy {dummy} \def\s!unknown {unknown}
+\cdef\s!next {next} \cdef\s!default {default}
+\cdef\s!dummy {dummy} \cdef\s!unknown {unknown}
-\def\s!do {do} \def\s!dodo {dodo}
+\cdef\s!do {do} \cdef\s!dodo {dodo}
-\def\s!complex {complex} \def\s!start {start}
-\def\s!simple {simple} \def\s!stop {stop}
+\cdef\s!complex {complex} \cdef\s!start {start}
+\cdef\s!simple {simple} \cdef\s!stop {stop}
-\def\s!true {true}
-\def\s!false {false}
+\cdef\s!true {true}
+\cdef\s!false {false}
%D The word \type {height} takes 6~token memory cells. The control sequence \type
%D {\height} on the other hand uses only one. Knowing this, we can improve the
@@ -107,32 +109,32 @@
%D than once. Savings like this should of course be implemented in english, just
%D because \TEX\ is english.
-\def\s!width {width}
-\def\s!height {height}
-\def\s!depth {depth}
-\def\s!spread {spread}
-\def\s!plus {plus}
-\def\s!minus {minus}
-\def\s!to {to}
-
-\def\s!fil {fil}
-\def\s!fill {fill}
-\def\s!filll {filll}
-
-\def\s!attr {attr}
-\def\s!axis {axis}
-\def\s!both {both}
-\def\s!bottom {bottom}
-\def\s!left {left}
-\def\s!options {options}
-\def\s!orientation{orientation}
-\def\s!reverse {reverse}
-\def\s!right {right}
-\def\s!top {top}
-\def\s!xmove {xmove}
-\def\s!xoffset {xoffset}
-\def\s!ymove {ymove}
-\def\s!yoffset {yoffset}
+\cdef\s!width {width}
+\cdef\s!height {height}
+\cdef\s!depth {depth}
+\cdef\s!spread {spread}
+\cdef\s!plus {plus}
+\cdef\s!minus {minus}
+\cdef\s!to {to}
+
+\cdef\s!fil {fil}
+\cdef\s!fill {fill}
+\cdef\s!filll {filll}
+
+\cdef\s!attr {attr}
+\cdef\s!axis {axis}
+\cdef\s!both {both}
+\cdef\s!bottom {bottom}
+\cdef\s!left {left}
+\cdef\s!options {options}
+\cdef\s!orientation{orientation}
+\cdef\s!reverse {reverse}
+\cdef\s!right {right}
+\cdef\s!top {top}
+\cdef\s!xmove {xmove}
+\cdef\s!xoffset {xoffset}
+\cdef\s!ymove {ymove}
+\cdef\s!yoffset {yoffset}
%D \macros
@@ -169,9 +171,9 @@
%D \def\e!name{meaning}
%D \stoptyping
-%permanent\protected\def\defineinterfaceconstant#1#2{\immutable\defcsname\c!prefix!#1\endcsname{#2}}
-\permanent\protected\def\defineinterfacevariable#1#2{\immutable\defcsname\v!prefix!#1\endcsname{#2}}
-\permanent\protected\def\defineinterfaceelement #1#2{\immutable\defcsname\e!prefix!#1\endcsname{#2}}
+%permanent\protected\def\defineinterfaceconstant#1#2{\immutable\cdefcsname\c!prefix!#1\endcsname{#2}}
+\permanent\protected\def\defineinterfacevariable#1#2{\immutable\cdefcsname\v!prefix!#1\endcsname{#2}}
+\permanent\protected\def\defineinterfaceelement #1#2{\immutable\cdefcsname\e!prefix!#1\endcsname{#2}}
%D Next come some interface independant constants:
%D
@@ -179,7 +181,7 @@
%D \definefileconstant {name} {meaning}
%D \stoptyping
-\permanent\protected\def\definefileconstant#1#2{\immutable\defcsname\f!prefix!#1\endcsname{#2}}
+\permanent\protected\def\definefileconstant#1#2{\immutable\cdefcsname\f!prefix!#1\endcsname{#2}}
%D And finaly we have the one argument, space saving constants
%D
@@ -188,13 +190,13 @@
%D \definemessageconstant {name}
%D \stoptyping
-\permanent\protected\def\definesystemconstant #1{\immutable\defcsname\s!prefix!#1\endcsname{#1}}
-\permanent\protected\def\definemessageconstant#1{\immutable\defcsname\m!prefix!#1\endcsname{#1}}
+\permanent\protected\def\definesystemconstant #1{\immutable\cdefcsname\s!prefix!#1\endcsname{#1}}
+\permanent\protected\def\definemessageconstant#1{\immutable\cdefcsname\m!prefix!#1\endcsname{#1}}
%D For now here:
-\permanent\protected\def\definetagconstant #1{\immutable\defcsname\t!prefix!#1\endcsname{#1}}
-\permanent\protected\def\aliastagconstant #1#2{\aliased \letcsname\t!prefix!#1\expandafter\endcsname\csname\t!prefix!#2\endcsname}
+\permanent\protected\def\definetagconstant #1{\immutable\cdefcsname\t!prefix!#1\endcsname{#1}}
+\permanent\protected\def\aliastagconstant #1#2{\aliased \letcsname\t!prefix!#1\expandafter\endcsname\csname\t!prefix!#2\endcsname}
%D In a parameter driven system, some parameters are shared by more system
%D components. In \CONTEXT\ we can distinguish parameters by a unique prefix. Such a
@@ -204,7 +206,7 @@
%D \definesystemvariable {name}
%D \stoptyping
-\permanent\protected\def\definesystemvariable#1{\immutable\edefcsname\??prefix#1\endcsname{\@@prefix#1}}
+\permanent\protected\def\definesystemvariable#1{\immutable\cdefcsname\??prefix#1\endcsname{\@@prefix#1}}
\definesystemvariable{ms}
@@ -355,7 +357,7 @@
\permanent\protected\def\startmessages #1 library: #2 %
{\begingroup
- \ifcsname\m!prefix!#2\endcsname\else\immutable\setgvalue{\m!prefix!#2}{#2}\fi
+ \ifcsname\m!prefix!#2\endcsname\else\immutable\gdefcsname\m!prefix!#2\endcsname{#2}\fi
\catcode\endoflineasciicode\othercatcode
\doifelseinset{#1}{\currentresponses,all}\mult_messages_start_yes\mult_messages_start_nop{#2}}
@@ -368,7 +370,7 @@
\aliased\let\stopmessages\relax
-\mutable\let\currentmessagetext\empty
+\mutable\lettonothing\currentmessagetext
\permanent\protected\def\setinterfacemessage#1#2#3%
{\ifcsname\m!prefix!#1\endcsname\else\immutable\gdefcsname\m!prefix!#1\endcsname{#1}\fi
@@ -683,11 +685,11 @@
\permanent\overloaded\protected\def\setinterfaceconstant#1#2%
{\clf_setinterfaceconstant{#1}{#2}%
- \immutable\defcsname\c!prefix!#1\endcsname{#1}}
+ \immutable\cdefcsname\c!prefix!#1\endcsname{#1}}
\permanent\overloaded\protected\def\setinterfacevariable#1#2%
{\clf_setinterfacevariable{#1}{#2}%
- \immutable\defcsname\v!prefix!#1\endcsname{#2}}
+ \immutable\cdefcsname\v!prefix!#1\endcsname{#2}}
%D \macros
%D {defineinterfaceconstant}
@@ -697,7 +699,7 @@
%D c||version, but for documentation purposes the x||alternative comes in handy.
\permanent\overloaded\protected\def\defineinterfaceconstant#1#2%
- {\immutable\defcsname\c!prefix!#1\endcsname{#2}}
+ {\immutable\cdefcsname\c!prefix!#1\endcsname{#2}}
%D \macros
%D {startelements}
@@ -714,9 +716,9 @@
\permanent\overloaded\protected\def\setinterfaceelement#1#2%
{\clf_setinterfaceelement{#1}{#2}%
\ifcsname\e!prefix!#1\endcsname
- \doifnotvalue{\e!prefix!#1}{#2}{\enforced\immutable\setvalue{\e!prefix!#1}{#2}}%
+ \doifnotvalue{\e!prefix!#1}{#2}{\enforced\immutable\defcsname\e!prefix!#1\endcsname{#2}}%
\else
- \enforced\immutable\setvalue{\e!prefix!#1}{#2}%
+ \enforced\immutable\defcsname\e!prefix!#1\endcsname{#2}%
\fi}
\permanent\protected\def\setinterfacecommand#1#2% \frozen ? \permanent ?
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mult-prm.mkxl b/Master/texmf-dist/tex/context/base/mkxl/mult-prm.mkxl
index 2ec763c3943..1c04823493f 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mult-prm.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/mult-prm.mkxl
@@ -71,7 +71,7 @@
"pdftracingfonts", "pdftrailer", "pdftrailerid", "pdfuniformdeviate",
"pdfuniqueresname", "pdfvorigin", "pdfxform", "pdfxformattr",
"pdfxformmargin", "pdfxformname", "pdfxformresources", "pdfximage",
- "pdfomitcidset", "pdfomitcharset",
+ "pdfomitcidset", "pdfomitcharset", "pdfomitinfodict",
},
aleph = { -- we don't bother
"Alephminorversion", "Alephrevision", "Alephversion",
diff --git a/Master/texmf-dist/tex/context/base/mkxl/mult-sys.mkxl b/Master/texmf-dist/tex/context/base/mkxl/mult-sys.mkxl
index 3e1d32a916d..428a8ddcf03 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/mult-sys.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/mult-sys.mkxl
@@ -44,10 +44,16 @@
% definesystemconstant {vn}
\definesystemconstant {afrikaans} \definesystemconstant {af}
+\definesystemconstant {albanian} \definesystemconstant {sq}
+\definesystemconstant {armenian} \definesystemconstant {hy}
+ \definesystemconstant {hye}
+ \definesystemconstant {hyw}
\definesystemconstant {ancientgreek} \definesystemconstant {agr}
\definesystemconstant {ancientlatin} \definesystemconstant {ala}
\definesystemconstant {arabic} \definesystemconstant {ar}
\definesystemconstant {belarussian} \definesystemconstant {be}
+\definesystemconstant {bengali} \definesystemconstant {bn}
+\definesystemconstant {bulgarian} \definesystemconstant {bg}
\definesystemconstant {bokmal} \definesystemconstant {nb}
\definesystemconstant {catalan} \definesystemconstant {ca}
\definesystemconstant {chinese} \definesystemconstant {cn}
@@ -57,18 +63,21 @@
\definesystemconstant {dutch} \definesystemconstant {nl}
\definesystemconstant {english} \definesystemconstant {en}
\definesystemconstant {estonian} \definesystemconstant {et}
-\definesystemconstant {esperanto} % \definesystemconstant {eo}
+\definesystemconstant {esperanto} \definesystemconstant {eo}
\definesystemconstant {farsi} \definesystemconstant {fa} % just persian
\definesystemconstant {finnish} \definesystemconstant {fi}
\definesystemconstant {french} \definesystemconstant {fr}
\definesystemconstant {gbenglish} \definesystemconstant {gb}
\definesystemconstant {german} \definesystemconstant {de}
\definesystemconstant {greek} \definesystemconstant {gr}
+\definesystemconstant {gujarati} \definesystemconstant {gu}
\definesystemconstant {hebrew} \definesystemconstant {he}
+\definesystemconstant {hindi} \definesystemconstant {hi}
\definesystemconstant {yiddish} \definesystemconstant {yi}
\definesystemconstant {hungarian} \definesystemconstant {hu}
\definesystemconstant {italian} \definesystemconstant {it}
\definesystemconstant {japanese} \definesystemconstant {ja}
+\definesystemconstant {kannada} \definesystemconstant {kn}
\definesystemconstant {korean} \definesystemconstant {kr}
\definesystemconstant {latin} \definesystemconstant {la}
\definesystemconstant {lithuanian} \definesystemconstant {lt}
@@ -81,11 +90,14 @@
\definesystemconstant {portuguese} \definesystemconstant {pt}
\definesystemconstant {romanian} \definesystemconstant {ro}
\definesystemconstant {russian} \definesystemconstant {ru}
+\definesystemconstant {sanskrit} \definesystemconstant {sa}
\definesystemconstant {slovak} \definesystemconstant {sk}
\definesystemconstant {slovenian} \definesystemconstant {sl}
\definesystemconstant {serbian} \definesystemconstant {sr}
\definesystemconstant {spanish} \definesystemconstant {es}
\definesystemconstant {swedish} \definesystemconstant {sv}
+\definesystemconstant {tamil} \definesystemconstant {ta}
+\definesystemconstant {telugu} \definesystemconstant {te}
\definesystemconstant {thai} \definesystemconstant {th} % mojca mentioned it at BT2013 but we need more info
\definesystemconstant {turkish} \definesystemconstant {tr}
\definesystemconstant {turkmen} \definesystemconstant {tk}
@@ -105,12 +117,15 @@
\definesystemconstant {action}
\definesystemconstant {all}
\definesystemconstant {ampersand}
+\definesystemconstant {anchor}
+\definesystemconstant {anchors}
\definesystemconstant {ascii}
\definesystemconstant {attribute}
\definesystemconstant {attr}
\definesystemconstant {author}
\definesystemconstant {auto}
\definesystemconstant {axis}
+\definesystemconstant {noaxis}
\definesystemconstant {exact}
\definesystemconstant {a}
\definesystemconstant {bf}
@@ -130,6 +145,7 @@
\definesystemconstant {bp}
\definesystemconstant {bs}
\definesystemconstant {b}
+\definesystemconstant {callback}
\definesystemconstant {calligraphy}
\definesystemconstant {Calligraphy}
\definesystemconstant {Caps}
@@ -141,10 +157,15 @@
\definesystemconstant {cg}
\definesystemconstant {chain}
\definesystemconstant {check}
+\definesystemconstant {char}
\definesystemconstant {child}
\definesystemconstant {cite}
\definesystemconstant {class}
+\definesystemconstant {leftclass}
+\definesystemconstant {rightclass}
+\definesystemconstant {calligraphic}
\definesystemconstant {clone}
+\definesystemconstant {close}
\definesystemconstant {cmyk}
\definesystemconstant {cm}
\definesystemconstant {code}
@@ -160,6 +181,7 @@
\definesystemconstant {data}
\definesystemconstant {dd}
\definesystemconstant {decimal}
+\definesystemconstant {delay}
\definesystemconstant {DefaultFont}
\definesystemconstant {default}
\definesystemconstant {depth}
@@ -179,6 +201,8 @@
\definesystemconstant {empty}
\definesystemconstant {em}
\definesystemconstant {environment}
+\definesystemconstant {explicitlefthyphenchar}
+\definesystemconstant {explicitrighthyphenchar}
\definesystemconstant {extensions}
\definesystemconstant {external}
\definesystemconstant {ex}
@@ -186,6 +210,7 @@
\definesystemconstant {fallbacks}
\definesystemconstant {fallback}
\definesystemconstant {false}
+\definesystemconstant {fam}
\definesystemconstant {fax}
\definesystemconstant {features}
\definesystemconstant {file}
@@ -193,11 +218,13 @@
\definesystemconstant {fill}
\definesystemconstant {fil}
\definesystemconstant {first}
+\definesystemconstant {fixed}
\definesystemconstant {float}
\definesystemconstant {font}
\definesystemconstant {forget}
\definesystemconstant {format}
\definesystemconstant {fraktur}
+\definesystemconstant {fraktion}
\definesystemconstant {full}
\definesystemconstant {f}
\definesystemconstant {global}
@@ -214,6 +241,7 @@
\definesystemconstant {hastitle}
\definesystemconstant {head}
\definesystemconstant {height}
+\definesystemconstant {hfactor}
\definesystemconstant {hw}
\definesystemconstant {hyphenmin}
\definesystemconstant {indeed}
@@ -282,13 +310,16 @@
\definesystemconstant {noheight}
\definesystemconstant {nomath}
\definesystemconstant {none}
+\definesystemconstant {noskips}
\definesystemconstant {normal}
\definesystemconstant {Normal}
\definesystemconstant {nowidth}
\definesystemconstant {numbering}
\definesystemconstant {number}
+\definesystemconstant {open}
+\definesystemconstant {operator}
\definesystemconstant {options}
-\definesystemconstant {ord}
+\definesystemconstant {ordinary}
\definesystemconstant {orientation}
\definesystemconstant {otr}
\definesystemconstant {pagefloat}
@@ -305,7 +336,7 @@
\definesystemconstant {register}
\definesystemconstant {Regular}
\definesystemconstant {regular}
-\definesystemconstant {rel}
+\definesystemconstant {relation}
\definesystemconstant {reset}
\definesystemconstant {reverse}
\definesystemconstant {rgb}
@@ -324,6 +355,7 @@
\definesystemconstant {SansSlanted}
\definesystemconstant {Sans}
\definesystemconstant {sans}
+\definesystemconstant {scaled}
\definesystemconstant {scriptscript}
\definesystemconstant {script}
\definesystemconstant {sc}
@@ -352,6 +384,7 @@
\definesystemconstant {smallcaps}
\definesystemconstant {small}
\definesystemconstant {somewhere}
+\definesystemconstant {source}
\definesystemconstant {special}
\definesystemconstant {spec}
\definesystemconstant {spot}
@@ -366,10 +399,12 @@
\definesystemconstant {Support}
\definesystemconstant {sygreek}
\definesystemconstant {symbol}
-\definesystemconstant {system} % not yet interfaces messages
+\definesystemconstant {system}
+\definesystemconstant {style}
\definesystemconstant {text}
\definesystemconstant {tex}
\definesystemconstant {tf}
+\definesystemconstant {target}
\definesystemconstant {third}
\definesystemconstant {topfloat}
\definesystemconstant {top}
@@ -382,12 +417,16 @@
\definesystemconstant {ucgreek}
\definesystemconstant {uncramped}
\definesystemconstant {unexpanded}
-\definesystemconstant {Unicode}
+\definesystemconstant {unpack}
\definesystemconstant {unknown}
+\definesystemconstant {Unicode}
+\definesystemconstant {unroll}
+\definesystemconstant {upright}
\definesystemconstant {userdata}
\definesystemconstant {userpage}
\definesystemconstant {user}
\definesystemconstant {vfrac}
+\definesystemconstant {vfactor}
\definesystemconstant {white}
\definesystemconstant {width}
\definesystemconstant {xml}
@@ -398,6 +437,8 @@
\definesystemconstant {ymove}
\definesystemconstant {yoffset}
+\definesystemconstant {syncpos}
+
%D As the name of their define command states, the next set of constants is used in
%D the message macro's.
@@ -417,6 +458,7 @@
\definemessageconstant {languages}
\definemessageconstant {layouts}
\definemessageconstant {lua}
+\definemessageconstant {math}
\definemessageconstant {metapost}
\definemessageconstant {publications}
\definemessageconstant {references}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-acc.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-acc.lmt
index 2c3302a3ea7..05de3c85110 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-acc.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-acc.lmt
@@ -26,15 +26,12 @@ local getnext = nuts.getnext
local setattr = nuts.setattr
local setlink = nuts.setlink
local setchar = nuts.setchar
-local setsubtype = nuts.setsubtype
local getwidth = nuts.getwidth
local setwidth = nuts.setwidth
local nextglyph = nuts.traversers.glyph
-local nextnode = nuts.traversers.node
local copy_node = nuts.copy
-local insert_after = nuts.insert_after
local nodecodes = nodes.nodecodes
local gluecodes = nodes.gluecodes
@@ -44,7 +41,6 @@ local glyph_code = nodecodes.glyph
local hlist_code = nodecodes.hlist
local vlist_code = nodecodes.vlist
-local userskip_code = gluecodes.user
local spaceskip_code = gluecodes.spaceskip
local xspaceskip_code = gluecodes.xspaceskip
@@ -63,7 +59,8 @@ local slot = nil
local function injectspaces(head)
-- This can become two fast loops or we just move this to the backend where we can
-- also check for spaces (it actually is rather old code that relates to tagging
- -- and so, which was implemented rather early in the mkiv saga).
+ -- and so, which was implemented rather early in the mkiv saga). It can also become
+ -- a helper.
local p, p_id
local n = head
while n do
@@ -76,7 +73,7 @@ local function injectspaces(head)
local a = getattr(n,a_characters)
setchar(g,slot)
setlink(p,g,n)
- setwidth(n,getwidth(n) - getwidth(g))
+ setwidth(n,getwidth(n) - getwidth(g)) -- use criterium
if a then
setattr(g,a_characters,a)
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-ali.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-ali.lmt
new file mode 100644
index 00000000000..510e56b8ec4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-ali.lmt
@@ -0,0 +1,949 @@
+if not modules then modules = { } end modules ['node-ali'] = {
+ version = 1.001,
+ comment = "companion to node-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local setmetatableindex = table.setmetatableindex
+
+local a_alignchar = attributes.private("aligncharacter")
+
+local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
+local getwidth = nuts.getwidth
+local setwidth = nuts.setwidth
+local getid = nuts.getid
+local getattr = nuts.getattr
+local setnext = nuts.setnext
+local getnext = nuts.getnext
+local getprev = nuts.getprev
+local getboth = nuts.getboth
+local setglue = nuts.setglue
+local getglue = nuts.getglue
+local setglue = nuts.setglue
+local getwhd = nuts.getwhd
+local setwhd = nuts.setwhd
+local setpenalty = nuts.setpenalty
+local getlist = nuts.getlist
+local setlist = nuts.setlist
+local setattrlist = nuts.setattrlist
+local setprop = nuts.setprop
+local getprop = nuts.getprop
+local getfont = nuts.getfont
+local getchar = nuts.getchar
+local addmargins = nuts.addmargins
+local findtail = nuts.tail
+local hasglyph = nuts.hasglyph
+local getwordrange = nuts.getwordrange
+local dimensions = nuts.rangedimensions
+local flushnode = nuts.flush
+local hpack = nuts.hpack
+local repack = nuts.repack
+local insertbefore = nuts.insertbefore
+local insertafter = nuts.insertafter
+local effectiveglue = nuts.effectiveglue
+
+local newkern = nuts.pool.kern
+local newrule = nuts.pool.rule
+local newglue = nuts.pool.glue
+
+local traversers = nuts.traversers
+local nextrecord = traversers.alignrecord
+local nextunset = traversers.unset
+local nextglyph = traversers.glyph
+local nextglue = traversers.glue
+local nextpenalty = traversers.penalty
+local nextboundary = traversers.boundary
+local nextnode = traversers.node
+local nextlist = traversers.list
+local nextrule = traversers.rule
+
+local nodecodes = nodes.nodecodes
+local glyph_code = nodecodes.glyph
+local glue_code = nodecodes.glue
+local kern_code = nodecodes.kern
+local disc_code = nodecodes.disc
+local unset_code = nodecodes.unset
+local alignrecord_code = nodecodes.alignrecord
+local rule_code = nodecodes.rule
+
+local spaceskip_code = nodes.gluecodes.spaceskip
+local xspaceskip_code = nodes.gluecodes.xspaceskip
+local intermathskip_code = nodes.gluecodes.intermathskip
+local fontkern_code = nodes.kerncodes.fontkern
+local row_code = nodes.listcodes.alignment -- should be row
+local cell_code = nodes.listcodes.cell
+local line_code = nodes.listcodes.line
+local linepenalty_code = nodes.penaltycodes.linepanalty
+
+-- local preamble_pass <const> = tex.alignmentcontextcodes.preamble
+-- local preroll_pass <const> = tex.alignmentcontextcodes.preroll
+-- local wrapup_pass <const> = tex.alignmentcontextcodes.wrapup
+
+-- todo statistics and tracing
+
+local method = 2
+local unislots = fonts.hashes.unislots -- todo
+local chardata = fonts.hashes.characters
+
+function nodes.handlers.aligncharacter(head,where,attr,preamble)
+ if where == "preroll" then
+ local attr = getattr(attr,a_alignchar) -- 1 : value doesn't matter (for now)
+ if attr then
+ local widths = { }
+ local data = { }
+ local rows = 0
+ local cols = 0
+ for col in nextrecord, preamble do
+ cols = cols + 1
+ local w, s = getwidth(col,true)
+ widths[cols] = { col, w, s }
+ end
+ --
+ for row in nextunset, head do
+ rows = rows + 1
+ local c = 0
+ local d = { }
+ data[rows] = d
+ for col in nextunset, getlist(row) do
+ c = c + 1
+ if widths[c][2] then
+ local list = getlist(col)
+ -- if method == 1 then
+ -- local left = nil
+ -- local right = nil
+ -- local middle = nil
+ -- for g, char in nextglyph, list do
+ -- if not left then
+ -- left = g
+ -- end
+ -- if char == getattr(g,a_alignchar) then
+ -- middle = g
+ -- end
+ -- right = g
+ -- end
+ -- d[c] = middle and { col, left, middle, right, 0, 0, getwidth(middle) } or false
+ -- elseif method == 2 then
+ local middle = nil
+ -- we can either cache unislots or we can cache for this font
+ for g, char, font in nextglyph, list do
+ local unicode = getattr(g,a_alignchar)
+ if unicode then
+ if char == unicode then
+ middle = g
+ elseif unislots[font][char] == unicode then
+ middle = g
+ end
+ end
+ end
+ if middle then
+ local left, right = getwordrange(middle) -- not real gain but handy anyway (less code too)
+ -- local left = middle
+ -- local right = middle
+ -- for g, id, subtype in nextnode, middle do
+ -- if id == glyph_code or id == disc_code then
+ -- right = g
+ -- elseif id == kern_code and subtype == fontkern_code then
+ -- right = g
+ -- else
+ -- break
+ -- end
+ -- end
+ -- for g, id, subtype in prevnode, middle do
+ -- if id == glyph_code or id == disc_code then
+ -- left = g
+ -- elseif id == kern_code and subtype == fontkern_code then
+ -- left = g
+ -- else
+ -- break
+ -- end
+ -- end
+ d[c] = { col, left, middle, right, 0, 0, getwidth(middle) }
+ else
+ d[c] = false
+ end
+ -- else
+ -- local middle = nil
+ -- for g, char in nextglyph, list do
+ -- if char == getattr(g,a_alignchar) then
+ -- middle = g
+ -- end
+ -- end
+ -- if middle then
+ -- local left = list
+ -- local right = findtail(list)
+ -- if getid(left) == glue_code then
+ -- left = getnext(left)
+ -- end
+ -- if getid(right) == glue_code then
+ -- right = getprev(right)
+ -- end
+ -- d[c] = { col, left, middle, right, 0, 0, getwidth(middle) }
+ -- else
+ -- d[c] = false
+ -- end
+ -- end
+ else
+ d[c] = false
+ end
+ end
+ end
+ --
+ for col=1,cols do
+ local maxl = 0
+ local maxr = 0
+ local minm = 0
+ local maxm = 0
+ local colw = widths[col]
+ for row=1,rows do
+ local d = data[row][col]
+ if d then
+ local p = d[1]
+ local l = d[2]
+ local m = d[3]
+ local r = d[4]
+ if m then
+ local lw = l == m and 0 or dimensions(p,l,m)
+ local rw = m == r and 0 or dimensions(p,getnext(m),getnext(r))
+ d[5] = lw
+ d[6] = rw
+ if lw > maxl then
+ maxl = lw
+ end
+ if rw > maxr then
+ maxr = rw
+ end
+ local mw = d[7]
+ if maxm == 0 then
+ minm = mw
+ maxm = mw
+ else
+ if mw > maxm then
+ maxm = mw
+ end
+ if mw < minm then
+ minm = mw
+ end
+ end
+ end
+ end
+ end
+ --
+ local fixedwidth = colw[3] ~= 0
+ --
+ local old = colw[2]
+ local new = old
+ for row=1,rows do
+ local d = data[row][col]
+ if d then
+ local p = d[1]
+ local l = d[2]
+ local m = d[3]
+ local r = d[4]
+ if l and m and r then
+ local lw = d[5]
+ local rw = d[6]
+ local mw = d[7]
+ dl = maxl - lw
+ dr = maxr - rw
+ if dl ~= 0 or dr ~= 0 or mw ~= maxm then
+ local lst = getlist(p)
+ local wid = getwidth(p)
+ if dl ~= 0 then
+ local k = newkern(dl)
+ lst = insertbefore(lst,l,k)
+ setattrlist(k,m)
+ setlist(p,lst)
+ wid = wid + dl
+ end
+ if dr ~= 0 then
+ local k = newkern(dr)
+ insertafter(lst,r,k)
+ setattrlist(k,m)
+ wid = wid + dr
+ end
+ if mw ~= maxm then
+ local dw = (maxm - mw)
+ local dx = dw / 2
+ addmargins(m,-dx,-dx)
+ wid = wid + dw
+ end
+ setwidth(p,wid)
+ if wid > new then
+ new = wid
+ end
+ setlist(p,lst)
+ -- somewhat fuzzy:
+ if fixedwidth then
+ local l = hpack(h,getwidth(p),"exactly")
+ setglue(p,getglue(l))
+ setlist(l)
+ flushnode(l)
+ else
+ setglue(p)
+ end
+ --
+ end
+ end
+ end
+ end
+ if new > old then
+ if fixedwidth then
+ -- issue overflow warning
+ else
+ setwidth(colw[1],new)
+ end
+ end
+ end
+ end
+ end
+end
+
+local enabled = false
+
+interfaces.implement {
+ name = "enablealignmentcharacter",
+ -- onlyonce = true,
+ public = true,
+ protected = true,
+ actions = function()
+ if not enabled then
+ nodes.tasks.enableaction("alignments", "nodes.handlers.aligncharacter")
+ enabled = true
+ end
+ end,
+}
+
+-- This will go to math-ali.lmt
+
+do
+
+ local getdata = nuts.getdata
+ local removenode = nuts.remove
+ local getwhd = nuts.getwhd
+ local getheight = nuts.getheight
+ local getdepth = nuts.getdepth
+ local setheight = nuts.setheight
+ local setdepth = nuts.setdepth
+ local getglue = nuts.getglue
+ local setoffsets = nuts.setoffsets
+ local setsubtype = nuts.setsubtype
+
+ local baselineskip_code = nodes.gluecodes.baselineskip
+ local lineskip_code = nodes.gluecodes.lineskip
+
+ local alignrecord_code = nodecodes.alignrecord
+ local hlist_code = nodecodes.hlist
+ local unset_code = nodecodes.unset
+ -- local rule_code = nodecodes.rule
+
+ local nextnode = nuts.traversers.node
+
+ local texgetdimen = tex.getdimen
+ local texgetglue = tex.getglue
+ local texget = tex.get
+
+ local leftmarker = tex.boundaries.system("c_math_align_l_marker")
+ local rightmarker = tex.boundaries.system("c_math_align_r_marker")
+
+ local a_location = attributes.system("mathnumberlocation")
+ local a_threshold = attributes.system("mathnumberthreshold")
+
+ local v_first = interfaces.variables.first
+ local v_last = interfaces.variables.last
+ local v_both = interfaces.variables.both
+
+ -- Here:
+
+ local function openup(specification,head)
+ local inbetween = specification.inbetween or 0
+ local height = specification.height or 0
+ local depth = specification.depth or 0
+ local splitmethod = specification.splitmethod or ""
+ local lines = { }
+ for n, id, subtype, list in nextlist, head do
+ lines[#lines+1] = { n, subtype, getwhd(n) }
+ end
+ local noflines = #lines
+ if noflines > 0 then
+ local currentline = 1
+ for n, subtype in nextglue, head do
+ -- one day we can decide what to do with intertext stuff based on the
+ -- subtype but not now ... on our agenda (intertext etc)
+ if subtype == baselineskip_code or subtype == lineskip_code then
+ local nextline = currentline + 1
+ local amount, stretch, shrink = getglue(n)
+ local prevdp = lines[currentline][5]
+ local nextht = lines[nextline][4]
+ local delta = 0
+ if prevdp < depth then
+ setdepth(lines[currentline][1],depth)
+ delta = delta + (depth - prevdp)
+ end
+ if nextht < height then
+ setheight(lines[nextline][1],height)
+ delta = delta + (height - nextht)
+ end
+-- if subtype == lineskip_code then
+-- setglue(n,inbetween,stretch,shrink)
+ setsubtype(n,baselineskip_code)
+-- else
+ setglue(n,amount+inbetween-delta,stretch,shrink)
+-- end
+ curline = nextline
+-- if currentline > noflines then
+-- break
+-- end
+ end
+ end
+ if splitmethod ~= "" then
+ local currentline = 0
+ for n, subtype in nextpenalty, head do
+ if subtype == linepenalty_code then
+ if l == 1 then
+ if splitmethod == v_both or splitmethod == v_first then
+print("FIRST")
+ setpenalty(n, 10000)
+ end
+ elseif l == noflines then
+ if splitmethod == v_both or splitmethod == v_last then
+print("LAST")
+ setpenalty(n, 10000)
+ end
+ end
+ curline = currentline
+ end
+ end
+ end
+ local firstht = lines[1][4]
+ local lastdp = lines[noflines][5]
+ if firstht < height then
+ setheight(lines[1],height)
+ end
+ if lastdp < depth then
+ setdepth(lines[noflines],depth)
+ end
+ end
+ end
+
+ nuts.openup = openup
+
+ -- When present, the number is after the right marker. We need to move the
+ -- number when we want it at the left.
+ --
+ -- Todo: set a flag in mathalignment and support atttibutes on it so that
+ -- we can check if this is needed.
+
+ -- [dummy] [left -2] [second -1] [number 0]
+
+ -- In the end it makes more sense to just calculate the alignment in lua
+ -- but it is kind of fun to see how we can control alignments.
+
+ local totals = { }
+ local widths = { }
+ local records = { }
+ local deltas = { }
+ local cellwidths = { }
+
+ local a_flushleft <const> = 1
+ local a_centered <const> = 2
+ local a_flushright <const> = 3
+
+ local function first_pass(head,attr,preamble)
+ --
+ local width = 0
+ local hsize = texget("hsize")
+ local count = 0
+ local overflow = false
+totals = { } -- maybe use one table
+widths = { }
+records = { }
+deltas = { }
+ for n in nextrecord, preamble do
+ local wd = getwidth(n)
+ count = count + 1
+ width = width + wd
+ totals [count] = width
+ widths [count] = wd
+ records[count] = n
+ deltas [count] = 0
+ end
+ --
+ local lindex = 0
+ local rindex = 0
+ local lwidth = 0
+ local rwidth = 0
+ local centered = false
+ for row in nextunset, head do
+ local count = 0
+ local anchor = nil
+ local rochan = nil
+ -- local cellwidths = { }
+ for cell in nextunset, getlist(row) do
+ local list = getlist(cell)
+ count = count + 1
+ cellwidths[count] = getwidth(cell)
+ for bound in nextboundary, list do
+ local marker = getdata(bound)
+ if marker == leftmarker then
+ lindex = count
+ anchor = bound
+ rochan = list
+ elseif marker == rightmarker then
+ local n = getnext(bound)
+ if n and getid(n) == hlist_code then
+ local wd, ht, dp = getwhd(n)
+ local lc = getattr(n,a_location)
+ if lc then
+ -- todo: just store align in the outer attribute so once ...
+ local align = lc // 0x10
+ local location = lc % 0x10
+ local threshold = getattr(n,a_threshold)
+ if location == 1 then
+ -- number right
+ local m = 1
+ local s = align == a_centered and 2 or 1
+-- if align == 1 then
+ if align == a_flushleft then
+ -- flushleft
+ rwidth = wd
+-- elseif align == 3 then
+ elseif align == a_flushright then
+ -- flushright
+ rwidth = wd
+ elseif wd > lwidth then
+ lwidth = wd
+ rwidth = wd
+ centered = true
+ end
+ if totals[count-2] + cellwidths[count-1] + s*wd - s*threshold > hsize then
+ local total = ht + dp
+ setdepth(row,getdepth(row) + total)
+ setoffsets(n,0,-total)
+ local pr = records[count-1]
+ local cw = getwidth(pr)
+ if cw - wd > deltas[count-1] then
+ deltas[count-1] = cw - wd
+ end
+ overflow = true
+ end
+ elseif location == 2 then
+ -- number left
+-- if align == 1 then
+ if align == a_flushleft then
+ -- flushleft
+ lwidth = wd
+-- elseif align == 3 then
+ elseif align == a_flushright then
+ -- flushright
+ lwidth = wd
+ end
+ end
+ if location == 2 and anchor then
+ local l, l, n = removenode(list,n)
+ if l ~= list then
+ setlist(cell,l)
+ -- setwidth(cell,0)
+ end
+ insertafter(rochan,anchor,n)
+ end
+ end
+ end
+ rindex = count
+ end
+ end
+ end
+ end
+ --
+ if overflow then
+ if deltas[rindex-1] ~= 0 then
+ setwidth(records[rindex-1],deltas[rindex-1])
+ end
+ end
+ for count=1,#records do
+ if count == lindex then
+ if centered and overflow then
+ lwidth = lwidth - texgetdimen("d_math_eqalign_number_distance")
+ end
+ setwidth(records[count],lwidth)
+ elseif count == rindex then
+ setwidth(records[count],rwidth)
+ end
+ end
+ end
+
+ local function second_pass(head,attr,preamble)
+ local done = setmetatableindex("table")
+ local glues = { }
+ local okay = false
+ for row, id, subtype in nextlist, head do
+ if id == hlist_code and subtype == row_code then
+ for cell, id, subtype in nextlist, getlist(row) do
+ if id == hlist_code and subtype == cell_code then
+ for n, s in nextglue, getlist(cell) do
+ if s == intermathskip_code then
+ local e = effectiveglue(n,cell)
+ local g = getglue(n)
+ local f = getfont(n)
+ local a = done[f]
+ local d = a[g]
+ glues[n] = g
+ if not d then
+ a[g] = e
+ elseif d > e then
+ a[g] = e
+ okay = true
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ if okay then
+ for k, v in next, glues do
+ local g = done[getfont(k)][v]
+ if g then
+ setglue(k,g)
+ setprop(k,"fixedmathalign",true)
+ end
+ end
+ for row, id, subtype in nextlist, head do
+ if id == hlist_code and subtype == row_code then
+ for cell, id, subtype, list in nextlist, getlist(row) do
+ if list and id == hlist_code and subtype == cell_code then
+ local wd = getwidth(cell)
+ repack(cell,wd,"exactly")
+ end
+ end
+ end
+ end
+ end
+ end
+
+ local function third_pass(head,attr,preamble)
+ local inbetween, stretch, shrink = texgetglue("s_strc_math_alignment_inbetween")
+ openup({ inbetween = inbetween }, head)
+ end
+
+ -- This will become a bit more pluggable so that we have less checking.
+
+ -- maybe zero pass: preamble pass
+
+ function nodes.handlers.fixmathalign(head,where,attr,preamble)
+ if where == "preroll" then
+ local signal = getattr(attr,a_location)
+ if signal == 0x20 or signal == 0x40 then
+ first_pass(head,attr,preamble)
+ end
+ elseif where == "wrapup" then
+ local signal = getattr(attr,a_location)
+ if signal == 0x40 then
+ second_pass(head,attr,preamble)
+ end
+ if signal then
+ third_pass(head,attr,preamble)
+ end
+ end
+ end
+
+ --
+
+do
+
+ local a_mathalignmentvrule = attributes.private("mathalignmentvrule")
+ local a_mathalignmenthrule = attributes.private("mathalignmenthrule")
+
+ -- these loops will be combined
+
+ local dp = { }
+ local ht = { }
+
+ local function vrule_pass(head,attr,preamble)
+ local i = 0
+ for row, id, subtype, list in nextlist, head do
+ if id == hlist_code and subtype == row_code then
+ i = i + 1
+ local prv, nxt = getboth(row)
+ for cell, id, subtype, list in nextlist, list do
+ if list then
+ for n, id, subtype in nextrule, list do
+ local signal = getattr(n,a_mathalignmentvrule)
+ if signal then
+ if prv then
+ if getid(prv) ~= rule_code or not getattr(prv,a_mathalignmentvrule) then
+ prv = nil
+ end
+ end
+ if nxt then
+ if getid(nxt) ~= rule_code or not getattr(nxt,a_mathalignmentvrule) then
+ nxt = nil
+ end
+ end
+ local top = not prv and 0 or nil
+ local bot = not nxt and 0 or nil
+ setoffsets(n,nil,nil,d and -d or top,h and -h or bot)
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+
+ local function hrule_pass(head,attr,preamble)
+ local i = 0
+ for row, id, subtype, list in nextlist, head do
+ if id == hlist_code and subtype == row_code then
+ i = i + 1
+ local height = 0
+ local depth = 0
+ local done = false
+ for cell, id, subtype, list in nextlist, list do
+ if list then
+ for n, id, subtype in nextglue, list do
+ local signal = getattr(n,a_mathalignmenthrule)
+ if signal then
+ local w, h, d = getwhd(n)
+ if h and d then
+ if h > height then
+ height = h
+ end
+ if d > depth then
+ depth = d
+ end
+ done = true
+ end
+ end
+ end
+ end
+ end
+ if done then
+ setheight(row,height)
+ setdepth(row,depth)
+ dp[i] = height
+ ht[i] = depth
+ end
+ end
+ end
+ end
+
+ function nodes.handlers.mathmatrixrules(head,where,attr,preamble)
+ if where == "wrapup" then
+ dp = { }
+ ht = { }
+ local signal = getattr(attr,a_mathalignmenthrule)
+ if signal == 0x01 then -- matrix
+ hrule_pass(head,attr,preamble)
+ end
+ local signal = getattr(attr,a_mathalignmentvrule)
+ if signal == 0x01 then -- matrix
+ vrule_pass(head,attr,preamble)
+ end
+ end
+ end
+
+ local enabled = false
+
+ interfaces.implement {
+ name = "enablematrixrules",
+ -- onlyonce = true,
+ public = true,
+ protected = true,
+ actions = function()
+ if not enabled then
+ nodes.tasks.enableaction("alignments", "nodes.handlers.mathmatrixrules")
+ enabled = true
+ end
+ end,
+ }
+
+end
+
+ --
+
+ local a_ornament = attributes.system("mathmatrixornament")
+
+ local leftornament = tex.boundaries.system("c_math_matrix_ornament_l")
+ local rightornament = tex.boundaries.system("c_math_matrix_ornament_r")
+ local topornament = tex.boundaries.system("c_math_matrix_ornament_t")
+ local bottomornament = tex.boundaries.system("c_math_matrix_ornament_b")
+
+ local left = 0
+ local right = 0
+ local nofcells = 0
+ local found = false
+
+ local lefts = false
+ local rights = false
+ local tops = false
+ local bottoms = false
+
+ local function first_pass(head,attr,preamble)
+ nofcells = 0
+ left = 0
+ right = 0
+ found = false
+ lefts = { }
+ rights = { }
+ tops = { }
+ bottoms = { }
+ for n in nextrecord, preamble do
+ nofcells = nofcells + 1
+ end
+ local cells = { }
+ for row in nextunset, head do
+ local c = 0
+ for cell in nextunset, getlist(row) do
+ local list = getlist(cell)
+ c = c + 1
+ for bound in nextboundary, list do
+ local ornament = getdata(bound)
+ if ornament == leftornament then
+ if c == 1 then
+ local w = getwidth(cell)
+ if w > left then
+ left = w
+ end
+ setwidth(cell,0)
+ cells[c+1] = true
+ cells[c] = true
+ found = true
+ lefts[#lefts+1] = cell
+ end
+ elseif ornament == rightornament then
+ if c == nofcells then
+ local w = getwidth(cell)
+ if w > right then
+ right = w
+ end
+ setwidth(cell,0)
+ cells[c-1] = true
+ cells[c] = true
+ found = true
+ rights[#rights+1] = cell
+ end
+ elseif ornament == topornament then
+ setheight(row,0)
+ setdepth(row,0)
+ found = true
+ tops[#tops+1] = cell
+ elseif ornament == bottomornament then
+ setheight(row,0)
+ setdepth(row,0)
+ found = true
+ bottoms[#bottoms+1] = cell
+ end
+ end
+ end
+ end
+ if next(cells) then
+ local c = 0
+ for n in nextrecord, preamble do
+ c = c + 1
+ if cells[c] then
+ setwidth(n)
+ end
+ end
+ end
+ end
+
+ local function second_pass(box)
+ if found then
+ local head = getlist(nuts.getbox(box))
+ local leftmargin = texgetdimen("d_math_matrix_margin_l")
+ local rightmargin = texgetdimen("d_math_matrix_margin_r")
+ local topmargin = texgetdimen("d_math_matrix_margin_t")
+ local bottommargin = texgetdimen("d_math_matrix_margin_b")
+ for i=1,#lefts do
+ setoffsets(lefts[i],-(left+leftmargin),0)
+ end
+ for i=1,#rights do
+ setoffsets(rights[i], (rightmargin),0)
+ end
+ for i=1,#tops do
+ setoffsets(tops[i],0,topmargin)
+ end
+ for i=1,#bottoms do
+ setoffsets(bottoms[i],0,-bottommargin)
+ end
+ lefts = false
+ rights = false
+ tops = false
+ bottoms = false
+ end
+ end
+
+ function nodes.handlers.mathmatrixornaments(head,where,attr,preamble)
+ if where == "preroll" then
+ local signal = getattr(attr,a_ornament)
+ if signal == 0x10 then
+ first_pass(head,attr,preamble)
+ end
+ -- elseif where == "wrapup" then
+ -- local signal = getattr(attr,a_ornament)
+ -- if signal == 0x10 then
+ -- second_pass(head,attr,preamble)
+ -- end
+ end
+ end
+
+ interfaces.implement {
+ name = "shiftmatrixornaments",
+ actions = second_pass,
+ arguments = "integer",
+ }
+
+ local enabled = false
+
+ interfaces.implement {
+ name = "enablematrixalign",
+ -- onlyonce = true,
+ public = true,
+ protected = true,
+ actions = function()
+ if not enabled then
+ nodes.tasks.enableaction("alignments", "nodes.handlers.fixmathalign")
+ enabled = true
+ end
+ end,
+ }
+
+ local enabled = false
+
+ interfaces.implement {
+ name = "enablematrixornaments",
+ -- onlyonce = true,
+ public = true,
+ protected = true,
+ actions = function()
+ if not enabled then
+ nodes.tasks.enableaction("alignments", "nodes.handlers.mathmatrixornaments")
+ enabled = true
+ end
+ end,
+ }
+
+end
+
+local report = logs.reporter("alignment","preamble")
+local trace trackers.register("alignments.showstates",function(v) trace = v end)
+
+function nodes.handlers.showpreamble(head,where,attr,preamble)
+ if trace then
+ local c = 0
+ for n, id in nextnode, preamble do
+ if id == unset_code or id == alignrecord_code then
+ c = c + 1
+ report("stage %a, cell %i, width %p",where,c,getwidth(n))
+ elseif id == glue_code then
+ report("stage %a, tabskip %s",where,node.direct.gluetostring(n))
+ else
+ report("stage %a, node %a",where,nodecodes[id])
+ end
+ end
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-aux.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-aux.lmt
index d952ec41b51..a640addc1ed 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-aux.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-aux.lmt
@@ -10,71 +10,72 @@ if not modules then modules = { } end modules ['node-aux'] = {
local type, tostring = type, tostring
-local nodes = nodes
-local context = context
-
-local utfvalues = utf.values
-
-local nodecodes = nodes.nodecodes
-
-local glyph_code = nodecodes.glyph
-local hlist_code = nodecodes.hlist
-local vlist_code = nodecodes.vlist
-local attributelist_code = nodecodes.attributelist -- temporary
-local par_code = nodecodes.par
-
-local nuts = nodes.nuts
-local tonut = nuts.tonut
-local tonode = nuts.tonode
-local vianuts = nuts.vianuts
-
-local getbox = nuts.getbox
-local getnext = nuts.getnext
-local getid = nuts.getid
-local getsubtype = nuts.getsubtype
-local getlist = nuts.getlist
-local getattr = nuts.getattr
-local getboth = nuts.getboth
-local getprev = nuts.getprev
-local getwidth = nuts.getwidth
-local setwidth = nuts.setwidth
-local getboxglue = nuts.getboxglue
-local setboxglue = nuts.setboxglue
-
-local setfield = nuts.setfield
-local setattr = nuts.setattr
-local setlink = nuts.setlink
-local setlist = nuts.setlist
-local setnext = nuts.setnext
-local setprev = nuts.setprev
-local setattrlist = nuts.setattrlist
-
-local traversers = nuts.traversers
-local nextnode = traversers.node
-local nextglyph = traversers.glyph
-
-local flush_node = nuts.flush
-local flush_list = nuts.flush_list
-local hpack_nodes = nuts.hpack
-local unset_attribute = nuts.unset_attribute
-local first_glyph = nuts.first_glyph
-local copy_node = nuts.copy
-local find_tail = nuts.tail
-local getbox = nuts.getbox
-local count = nuts.count
-local isglyph = nuts.isglyph
-
-local nodepool = nuts.pool
-local new_glue = nodepool.glue
-local new_glyph = nodepool.glyph
-
-local unsetvalue = attributes.unsetvalue
-
-local current_font = font.current
-
-local texsetbox = tex.setbox
-
-local report_error = logs.reporter("node-aux:error")
+local nodes = nodes
+local context = context
+
+local utfvalues = utf.values
+
+local nodecodes = nodes.nodecodes
+
+local glyph_code = nodecodes.glyph
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+local attribute_code = nodecodes.attribute -- temporary
+local par_code = nodecodes.par
+
+local nuts = nodes.nuts
+local tonut = nuts.tonut
+local tonode = nuts.tonode
+local vianuts = nuts.vianuts
+
+local getbox = nuts.getbox
+local getnext = nuts.getnext
+local getid = nuts.getid
+local getsubtype = nuts.getsubtype
+local getlist = nuts.getlist
+local getattr = nuts.getattr
+local getboth = nuts.getboth
+local getprev = nuts.getprev
+local getwidth = nuts.getwidth
+local setwidth = nuts.setwidth
+local getboxglue = nuts.getboxglue
+local setboxglue = nuts.setboxglue
+
+local setfield = nuts.setfield
+local setattr = nuts.setattr
+local setlink = nuts.setlink
+local setlist = nuts.setlist
+local setnext = nuts.setnext
+local setprev = nuts.setprev
+local setattrlist = nuts.setattrlist
+
+local traversers = nuts.traversers
+local nextnode = traversers.node
+local nextglyph = traversers.glyph
+
+local flushnode = nuts.flush
+local flushlist = nuts.flushlist
+local hpack_nodes = nuts.hpack
+local vpack_nodes = nuts.vpack
+local unsetattribute = nuts.unsetattribute
+local firstglyph = nuts.firstglyph
+local copy_node = nuts.copy
+local find_tail = nuts.tail
+local getbox = nuts.getbox
+local count = nuts.count
+local isglyph = nuts.isglyph
+
+local nodepool = nuts.pool
+local new_glue = nodepool.glue
+local new_glyph = nodepool.glyph
+
+local unsetvalue = attributes.unsetvalue
+
+local current_font = font.current
+
+local texsetbox = tex.setbox
+
+local report_error = logs.reporter("node-aux:error")
local function takebox(id)
local box = getbox(id)
@@ -111,7 +112,7 @@ end
function nuts.takelist(n)
local l = getlist(n)
setlist(n)
- flush_node(n)
+ flushnode(n)
return l
end
@@ -124,7 +125,7 @@ local function repackhlist(list,...)
local temp, b = hpack_nodes(list,...)
list = getlist(temp)
setlist(temp)
- flush_node(temp)
+ flushnode(temp)
return list, b
end
@@ -135,50 +136,38 @@ function nodes.repackhlist(list,...)
return tonode(list), b
end
-local function set_attributes(head,attr,value)
+local function setattributes(head,attr,value)
for n, id in nextnode, head do
setattr(n,attr,value)
if id == hlist_node or id == vlist_node then
- set_attributes(getlist(n),attr,value)
+ setattributes(getlist(n),attr,value)
end
end
end
-local function set_unset_attributes(head,attr,value)
+local function setunsetattributes(head,attr,value)
for n, id in nextnode, head do
if not getattr(n,attr) then
setattr(n,attr,value)
end
if id == hlist_code or id == vlist_code then
- set_unset_attributes(getlist(n),attr,value)
+ setunsetattributes(getlist(n),attr,value)
end
end
end
-local function unset_attributes(head,attr)
+local function unsetattributes(head,attr)
for n, id in nextnode, head do
setattr(n,attr,unsetvalue)
if id == hlist_code or id == vlist_code then
- unset_attributes(getlist(n),attr)
+ unsetattributes(getlist(n),attr)
end
end
end
--- for old times sake
-
-nuts.setattribute = nuts.setattr nodes.setattribute = nodes.setattr
-nuts.getattribute = nuts.getattr nodes.getattribute = nodes.getattr
-nuts.unsetattribute = nuts.unset_attribute nodes.unsetattribute = nodes.unset_attribute
-nuts.has_attribute = nuts.has_attribute nodes.has_attribute = nodes.has_attribute
-nuts.firstglyph = nuts.first_glyph nodes.firstglyph = nodes.first_glyph
-
-nuts.setattributes = set_attributes nodes.setattributes = vianuts(set_attributes)
-nuts.setunsetattributes = set_unset_attributes nodes.setunsetattributes = vianuts(set_unset_attributes)
-nuts.unsetattributes = unset_attributes nodes.unsetattributes = vianuts(unset_attributes)
-
function nuts.firstcharacter(n,untagged) -- tagged == subtype > 255
if untagged then
- return first_glyph(n)
+ return firstglyph(n)
else
for g in nextglyph ,n do
return g
@@ -232,7 +221,7 @@ local function tonodes(str,fnt,attr) -- (str,template_glyph) -- moved from blob-
n = copy_node(space)
elseif fonts then -- depedency
local parameters = fonts.hashes.identifiers[fnt].parameters
- space = new_glue(parameters.space,parameters.space_stretch,parameters.space_shrink)
+ space = new_glue(parameters.space,parameters.spacestretch,parameters.spaceshrink)
n = space
end
elseif template then
@@ -292,12 +281,12 @@ local function link(list,currentfont,currentattr,head,tail) -- an oldie, might b
elseif not head then
head = n
tail = find_tail(n)
- elseif getid(n) == attributelist_code then
+ elseif getid(n) == attribute_code then
-- weird case
report_error("weird node type in list at index %s:",i)
for i=1,#list do
local l = list[i]
- report_error("%3i: %s %S",i,getid(l) == attributelist_code and "!" or ">",l)
+ report_error("%3i: %s %S",i,getid(l) == attribute_code and "!" or ">",l)
end
os.exit()
else
@@ -352,7 +341,7 @@ local function rehpack(n,width)
local set, order, sign = getboxglue(temp)
setboxglue(n,set,order,sign)
setlist(temp)
- flush_node(temp)
+ flushnode(temp)
return n
end
@@ -365,8 +354,8 @@ end
do
local parcodes = nodes.parcodes
- local hmodepar_code = parcodes.hmode_par
- local vmodepar_code = parcodes.vmode_par
+ local hmodepar_code = parcodes.hmodepar
+ local vmodepar_code = parcodes.vmodepar
local getnest = tex.getnest
local getsubtype = nuts.getsubtype
@@ -386,11 +375,48 @@ do
end
end
- local getsubtype = nodes.getsubtype
+ local startofpar = nuts.startofpar
- function nodes.start_of_par(n)
- local s = getsubtype(n)
- return s == hmodepar_code or s == vmodepar_code
+ function nodes.startofpar(n)
+ return startofpar(tonut(n))
end
end
+
+function nodes.hpack(h,...) return tonode(hpack_nodes(tonut(h),...)) end
+function nodes.vpack(h,...) return tonode(vpack_nodes(tonut(h),...)) end
+
+--
+
+local report_slide = logs.reporter("nodes", "slide")
+
+function nuts.checkslide(head,banner)
+ local c = head
+ local x = nil
+ local b = false
+ while c do
+ local p, n = getboth(c)
+ if p and p ~= x then
+ b = true
+ end
+ x = c
+ c = n
+ end
+ if b then
+ report_slide("")
+ report_slide(banner or "?")
+ report_slide("")
+ c = head
+ x = nil
+ while c do
+ local p, n = getboth(c)
+ report_slide("%s %s",(p and p ~= x and "!") or " ",tostring(tonode(c)))
+ x = c
+ c = getnext(c)
+ end
+ report_slide("")
+ nuts.show(head)
+ report_slide("")
+ nuts.slide(head)
+ end
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-bck.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-bck.lmt
index 9dff3ac40cb..0982871a349 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-bck.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-bck.lmt
@@ -46,13 +46,13 @@ local setattributelist = nuts.setattributelist
local setprop = nuts.setprop
local takebox = nuts.takebox
-local findtail = nuts.tail
local nextnode = nuts.traversers.node
local nexthlist = nuts.traversers.hlist
local nextlist = nuts.traversers.list
-local flush_node_list = nuts.flush_list
+local flushnodelist = nuts.flushlist
+local flushnode = nuts.flush
local new_rule = nodepool.rule
local new_kern = nodepool.kern
@@ -61,12 +61,15 @@ local new_hlist = nodepool.hlist
local privateattributes = attributes.private
local unsetvalue = attributes.unsetvalue
+local getvalue = attributes.getvalue
+local hasvalues = attributes.hasvalues
+
local linefillers = nodes.linefillers
local a_background = privateattributes("background")
local a_alignbackground = privateattributes("alignbackground")
local a_linefiller = privateattributes("linefiller")
-local a_ruled = privateattributes("ruled")
+----- a_ruled = privateattributes("ruled")
local trace_alignment = false
local report_alignment = logs.reporter("backgrounds","alignment")
@@ -92,7 +95,7 @@ local function colored_a(current,list,template,id)
--
local a = getattr(template,a_linefiller)
if a then
- local d = linefillers.data[a%1000]
+ local d = getvalue(a_linefiller,a)
if d then
rule = linefillers.filler(template,d,width,height,depth)
end
@@ -116,7 +119,7 @@ local function colored_b(current,list,template,id,indent)
--
local a = getattr(template,a_linefiller)
if a then
- local d = linefillers.data[a%1000]
+ local d = getvalue(a_linefiller,a)
if d then
rule = linefillers.filler(template,d,width-indent,height,depth)
end
@@ -141,26 +144,30 @@ local currentrow = 0
local enabled = false
local alignments = false
+-- todo: more control over cell attributes
+
local function add_alignbackgrounds(head,list)
for current, id, subtype, list in nextlist, list do
if list and id == hlist_code and subtype == celllist_code then
for template in nexthlist, list do
local background = getattr(template,a_alignbackground)
if background then
- local list = colored_a(current,list,template)
+ local list = colored_a(current,list,template,id)
if list then
setlist(current,list)
end
- setattr(template,a_alignbackground,unsetvalue) -- or property
+ -- not that efficient:
+ setattr(template,a_alignbackground,unsetvalue)
end
break
end
end
end
+ -- we can store this differently now
local template = getprop(head,"alignmentchecked")
if template then
list = colored_b(head,list,template[1],hlist_code,template[2])
- flush_node_list(template)
+ flushnodelist(template[1])
templates[currentrow] = false
return list
end
@@ -190,7 +197,7 @@ local function add_backgrounds(head,id,list)
if background then
list = colored_a(head,list,head,id)
-- not needed
- setattr(head,a_background,unsetvalue) -- or property -- todo
+ setattr(head,a_background,unsetvalue) -- or property
return list
end
end
@@ -238,15 +245,6 @@ function nodes.handlers.backgroundsvbox(head,where)
return head
end
--- interfaces.implement {
--- name = "enablebackgroundboxes",
--- onlyonce = true,
--- actions = enableaction,
--- arguments = { "'shipouts'", "'nodes.handlers.backgrounds'" }
--- }
---
--- doing it in the shipout works as well but this is nicer
-
local function enable(alignmentstoo)
if not enabled then
enabled = true
@@ -266,7 +264,7 @@ interfaces.implement {
}
interfaces.implement {
- name = "enablebackgroundalign",
+ name = "enablebackgroundalign", --- move into next one
onlyonce = true,
actions = function()
enable(true)
@@ -275,7 +273,7 @@ interfaces.implement {
interfaces.implement {
name = "setbackgroundrowdata",
- arguments = { "integer", "integer", "dimension" },
+ arguments = { "integer", "integer", "dimension" }, -- todo: "box"
actions = function(row,box,indent)
row = row -1 -- better here than in tex
if box == 0 then
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-bck.mkxl b/Master/texmf-dist/tex/context/base/mkxl/node-bck.mkxl
index b456313df3b..4ee2b0fa9bc 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-bck.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-bck.mkxl
@@ -19,13 +19,15 @@
\unprotect
-\registerctxluafile{node-bck}{autosuffix,optimize}
+\registerctxluafile{node-bck}{autosuffix}
% \backgroundvbox[green] {\input tufte } \par
% \backgroundvbox[blue] {\input ward } \par
% \backgroundvbox[red] {\input knuth } \par
% \backgroundhbox[yellow]{\rotate[rotation=45]{hello world}} \par
+% todo: use new register feature (but not used that much so ...)
+
\permanent\def\colorattr#1%
{\ifcsname\??colorattribute\currentcolorprefix#1\endcsname
\node_backgrounds_thecolorattr{\currentcolorprefix#1}%
@@ -74,7 +76,7 @@
\permanent\protected\def\backgroundline{\dontleavehmode\node_backgrounds_boxes_add\hbox}
\def\node_backgrounds_boxes_add#1[#2]%
- {\clf_enablebackgroundboxes
+ {\localcontrolled{\clf_enablebackgroundboxes}% permits assignment
#1\backgroundcolorattr{#2}}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-bwc.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-bwc.lmt
new file mode 100644
index 00000000000..d22f620388b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-bwc.lmt
@@ -0,0 +1,13 @@
+if not modules then modules = { } end modules ['node-bwc'] = {
+ version = 1.001,
+ comment = "companion to node-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- This is a backward compatinility list. Eventually it will go away although a few
+-- might stay around. We start with some real low level ones. But ... users are
+-- supposed to use nodes and nuts.
+--
+-- Gone.
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-cmp.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-cmp.lmt
index 21fd700f093..8870203513e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-cmp.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-cmp.lmt
@@ -75,47 +75,42 @@ function node.kerning(first,last)
end
end
-local protect_glyph = direct.protect_glyph
-local unprotect_glyph = direct.unprotect_glyph
-local protect_glyphs = direct.protect_glyphs
-local unprotect_glyphs = direct.unprotect_glyphs
+local protectglyph = direct.protectglyph
+local unprotectglyph = direct.unprotectglyph
+local protectglyphs = direct.protectglyphs
+local unprotectglyphs = direct.unprotectglyphs
-function node.protect_glyphs(first,last)
- protect_glyphs(todirect(first), last and todirect(last) or nil)
+function node.protectglyphs(first,last)
+ protectglyphs(todirect(first), last and todirect(last) or nil)
end
-function node.unprotect_glyphs(first,last)
- unprotect_glyphs(todirect(first), last and todirect(last) or nil)
+function node.unprotectglyphs(first,last)
+ unprotectglyphs(todirect(first), last and todirect(last) or nil)
end
-function node.protect_glyph(first)
- protect_glyph(todirect(first))
+function node.protectglyph(first)
+ protectglyph(todirect(first))
end
-function node.unprotect_glyph(first)
- unprotect_glyph(todirect(first))
+function node.unprotectglyph(first)
+ unprotectglyph(todirect(first))
end
-local flatten_discretionaries = direct.flatten_discretionaries
-local check_discretionaries = direct.check_discretionaries
-local check_discretionary = direct.check_discretionary
+local flattendiscretionaries = direct.flattendiscretionaries
+local checkdiscretionaries = direct.checkdiscretionaries
+local checkdiscretionary = direct.checkdiscretionary
-function node.flatten_discretionaries(first)
- local h, count = flatten_discretionaries(todirect(first))
+function node.flattendiscretionaries(first)
+ local h, count = flattendiscretionaries(todirect(first))
return tonode(h), count
end
-function node.check_discretionaries(n)
- check_discretionaries(todirect(n))
-end
-
-function node.check_discretionary(n)
- check_discretionary(todirect(n))
-end
+function node.checkdiscretionaries(n) checkdiscretionaries(todirect(n)) end
+function node.checkdiscretionary (n) checkdiscretionary (todirect(n)) end
-local hpack = direct.hpack
-local vpack = direct.vpack
-local list_to_hlist = direct.mlist_to_hlist
+local hpack = direct.hpack
+local vpack = direct.vpack
+local mlisttohlist = direct.mlisttohlist
function node.hpack(head,...)
local h, badness = hpack(head and todirect(head) or nil,...)
@@ -127,17 +122,17 @@ function node.vpack(head,...)
return tonode(h), badness
end
-function node.mlist_to_hlist(head,...)
- return tonode(mlist_to_hlist(head and todirect(head) or nil,...))
+function node.mlisttohlist(head,...)
+ return tonode(mlisttohlist(head and todirect(head) or nil,...))
end
-local end_of_math = direct.end_of_math
-local find_attribute = direct.find_attribute
-local first_glyph = direct.first_glyph
+local endofmath = direct.endofmath
+local findattribute = direct.findattribute
+local firstglyph = direct.firstglyph
-function node.end_of_math(n)
+function node.endofmath(n)
if n then
- n = end_of_math(todirect(n))
+ n = endofmath(todirect(n))
if n then
return tonode(n)
end
@@ -145,9 +140,9 @@ function node.end_of_math(n)
return nil
end
-function node.find_attribute(n,a)
+function node.findattribute(n,a)
if n then
- local v, n = find_attribute(todirect(n),a)
+ local v, n = findattribute(todirect(n),a)
if n then
return v, tonode(n)
end
@@ -155,14 +150,14 @@ function node.find_attribute(n,a)
return nil
end
-function node.first_glyph(first,last)
- local n = first_glyph(todirect(first), last and todirect(last) or nil)
+function node.firstglyph(first,last)
+ local n = firstglyph(todirect(first), last and todirect(last) or nil)
return n and tonode(n) or nil
end
local dimensions = direct.dimensions
local rangedimensions = direct.rangedimensions
-local effective_glue = direct.effective_glue
+local effectiveglue = direct.effectiveglue
function node.dimensions(a,b,c,d,e)
if type(a) == "userdata" then
@@ -185,53 +180,30 @@ function node.rangedimensions(parent,first,last)
return rangedimenensions(todirect(parent),todirect(first),last and todirect(last))
end
-function node.effective_glue(list,parent)
- return effective_glue(list and todirect(list) or nil,parent and todirect(parent) or nil)
-end
-
-local uses_font = direct.uses_font
-local has_glyph = direct.has_glyph
-local protrusion_skippable = direct.protrusion_skippable
-local make_extensible = direct.make_extensible
-
-function node.uses_font(n,f)
- return uses_font(todirect(n),f)
-end
-
-function node.has_glyph(n)
- return has_glyph(todirect(n))
-end
-
-function node.protrusion_skippable(n)
- return protrusion_skippable(todirect(n))
+function node.effectiveglue(list,parent)
+ return effectiveglue(list and todirect(list) or nil,parent and todirect(parent) or nil)
end
-function node.make_extensible(...)
- local n = make_extensible(...)
- return n and tonode(n) or nil
-end
+local usesfont = direct.usesfont
+local hasglyph = direct.hasglyph
+local protrusionskippable = direct.protrusionskippable
-local last_node = direct.last_node
+function node.usesfont (n,f) return usesfont(todirect(n),f) end
+function node.hasglyph (n) return hasglyph(todirect(n)) end
+function node.protrusionskippable(n) return protrusionskippable(todirect(n)) end
-function node.last_node()
- local n = last_node()
- return n and tonode(n) or nil
-end
+local makeextensible = direct.make_extensible
+local lastnode = direct.lastnode
-local is_zero_glue = direct.is_zero_glue
-local getglue = direct.getglue
-local setglue = direct.setglue
+function node.makeextensible(...) local n = makeextensible(...) return n and tonode(n) or nil end
+function node.lastnode () local n = lastnode() return n and tonode(n) or nil end
-function node.is_zero_glue(n)
- return is_zero_glue(todirect(n))
-end
-
-function node.get_glue(n)
- return get_glue(todirect(n))
-end
+local iszeroglue = direct.iszeroglue
+local getglue = direct.getglue
+local setglue = direct.setglue
-function node.set_glue(n)
- return set_glue(todirect(n))
-end
+function node.iszeroglue(n) return iszeroglue(todirect(n)) end
+function node.getglue (n) return getglue (todirect(n)) end
+function node.setglue (n,...) return setglue (todirect(n),...) end
node.family_font = tex.getfontoffamily
diff --git a/Master/texmf-dist/tex/context/base/mkiv/node-dir.lua b/Master/texmf-dist/tex/context/base/mkxl/node-dir.lmt
index 762f20739da..246bf34e40b 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/node-dir.lua
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-dir.lmt
@@ -9,6 +9,9 @@ if not modules then modules = { } end modules ['node-dir'] = {
local nodes = nodes
local nuts = nodes.nuts
+local nodecodes = nodes.nodecodes
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
local normaldir_code = nodes.dircodes.normal
local line_code = nodes.listcodes.line
local lefttoright_code = nodes.dirvalues.lefttoright
@@ -16,15 +19,17 @@ local lefttoright_code = nodes.dirvalues.lefttoright
local getnext = nuts.getnext
local getlist = nuts.getlist
local getwhd = nuts.getwhd
+local getwidth = nuts.getwidth
local getdirection = nuts.getdirection
local setlist = nuts.setlist
local nextdir = nuts.traversers.dir
-local nexthlist = nuts.traversers.hlist
+local nextlist = nuts.traversers.list
local rangedimensions = nuts.rangedimensions
-local insert_before = nuts.insert_before
+local insertbefore = nuts.insertbefore
+local insertafter = nuts.insertafter
local new_rule = nuts.pool.rule
local new_kern = nuts.pool.kern
@@ -32,32 +37,8 @@ local new_kern = nuts.pool.kern
local setcolor = nodes.tracers.colors.set
local settransparency = nodes.tracers.transparencies.set
--- local function dirdimensions(parent,begindir) -- can be a helper
--- local level = 1
--- local enddir = begindir
--- local width = 0
--- for current, subtype in nextdir, getnext(begindir) do
--- if subtype == normaldir_code then -- todo
--- level = level + 1
--- else
--- level = level - 1
--- end
--- if level == 0 then -- does the type matter
--- enddir = current
--- width = rangedimensions(parent,begindir,enddir)
--- return width, enddir
--- end
--- end
--- if enddir == begindir then
--- width = rangedimensions(parent,begindir)
--- end
--- return width, enddir
--- end
-
local function dirdimensions(parent,begindir) -- can be a helper
- local level = 1
- local lastdir = nil
- local width = 0
+ local level = 1
for current, subtype in nextdir, getnext(begindir) do
if subtype == normaldir_code then -- todo
level = level + 1
@@ -69,6 +50,7 @@ local function dirdimensions(parent,begindir) -- can be a helper
end
end
return (rangedimensions(parent,begindir)), begindir
+-- return getwidth(parent), begindir
end
nuts.dirdimensions = dirdimensions
@@ -79,36 +61,37 @@ local function colorit(list,current,dir,w,h,d)
local color = dir == lefttoright_code and "trace:s" or "trace:o"
setcolor(rule,color)
settransparency(rule,color)
- list, current = insert_before(list,current,kern)
- list, current = insert_before(list,current,rule)
+ list, current = insertbefore(list,current,kern)
+ list, current = insertbefore(list,current,rule)
return list, current
end
-function nodes.tracers.directions(head)
- for hlist, subtype in nexthlist, head do
- if subtype == line_code then
- local list = getlist(hlist)
- local w, h, d = getwhd(hlist)
- list = colorit(list,list,getdirection(hlist),w,h,d)
- for current in nextdir, list do
- local dir, cancel = getdirection(current)
- if not cancel then
- local width = dirdimensions(hlist,current)
- list = colorit(list,current,dir,width,h,d)
+
+local function tracedirections(head)
+ for parent, id, subtype, list in nextlist, head do
+ if list then
+ if subtype == line_code then
+ local w, h, d = getwhd(parent)
+ list = colorit(list,list,getdirection(parent),w,h,d)
+ for current in nextdir, list do
+ local dir, cancel = getdirection(current)
+ if not cancel then
+ local width = dirdimensions(parent,current)
+ list = colorit(list,current,dir,width,h,d)
+ end
end
end
- setlist(hlist,list)
+ tracedirections(list)
end
end
return head
end
-local enabled = false
+nodes.tracers.directions = tracedirections
+
+-- so, not attribute driven, only shipout, so more a document wide tracer, maybe
+-- per page (so keep enabled and delayed disabled
trackers.register("nodes.directions", function(v)
- if not enabled then
- enabled = true
- nodes.tasks.appendaction("finalizers","after","nodes.tracers.directions",nil,"nut","enabled")
- end
- nodes.tasks.setaction(v)
+ nodes.tasks.setaction("shipouts","nodes.tracers.directions",v)
end)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-ext.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-ext.lmt
index 2f909cd3d1a..de2e8fa5478 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-ext.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-ext.lmt
@@ -18,7 +18,8 @@ local allocate = utilities.storage.allocate
local formatters = string.formatters
-local get = token.get_index -- getters
+local get = tokens.accessors.index
+
local scanners = tokens.scanners
local scaninteger = scanners.integer
local scanstring = scanners.string
@@ -50,7 +51,8 @@ local whatsitcodes = allocate { }
nodes.whatsitcodes = whatsitcodes
local lastwhatsit = 0
-nodes.subtypes.whatsit = whatsitcodes
+nodes.subtypes.whatsit = whatsitcodes
+nodes.subtypes[whatsit_code] = whatsitcodes
local function registerwhatsit(name)
lastwhatsit = lastwhatsit + 1
@@ -131,14 +133,10 @@ do
end
function backends.latelua(current,pos_h,pos_v) -- todo: pass pos_h and pos_v (more efficient in lmtx)
- local p = nodeproperties[current]
- if p then
- data = p.data
- else
- data = getdata(current)
- end
- noflatelua = noflatelua + 1
+ local prop = nodeproperties[current]
+ local data = prop and prop.data or getdata(current)
local kind = type(data)
+ noflatelua = noflatelua + 1
if kind == "table" then
data.action(data.specification or data)
elseif kind == "function" then
@@ -147,7 +145,7 @@ do
if kind ~= "string" then
data = serialize(data)
end
- if #data ~= "" then
+ if data and #data ~= "" then
local code = loadstring(data)
if code then
code()
@@ -164,6 +162,7 @@ do
name = "latelua",
public = true,
protected = true,
+ untraced = true,
actions = function()
local node = copynut(lateluanode)
local name = "latelua"
@@ -616,7 +615,7 @@ do
end,
}
- -- why ...
+ -- so we have them defined and can use them at the tex end .. still needed?
local open_command = get(token.create("openout"))
local write_command = get(token.create("write"))
diff --git a/Master/texmf-dist/tex/context/base/mkxl/back-ext.mkxl b/Master/texmf-dist/tex/context/base/mkxl/node-ext.mkxl
index a3d9d2633e8..2f0df1ba37c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/back-ext.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-ext.mkxl
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-% \registerctxluafile{back-ext}{autosuffix}
+\registerctxluafile{node-ext}{autosuffix}
\unprotect
@@ -23,31 +23,24 @@
% rotation
-\permanent\protected\def\dostartrotation#1%
- {\forcecolorhack
- \clf_startrotation#1\relax} % todo: implement without Q q
+% \permanent\protected\def\dostartrotation#1{\forcecolorhack\clf_startrotation#1\relax}
+% \permanent\protected\def\dostoprotation {\clf_stoprotation\forcecolorhack}
-\permanent\protected\def\dostoprotation
- {\clf_stoprotation
- \forcecolorhack}
+\permanent\protected\def\dostartrotation#1{\clf_startrotation#1\relax}
+\permanent\protected\def\dostoprotation {\clf_stoprotation}
% scaling
-\permanent\protected\def\dostartscaling#1#2%
- {\forcecolorhack
- \clf_startscaling rx #1 ry #2\relax}
+% \permanent\protected\def\dostartscaling#1#2{\forcecolorhack\clf_startscaling rx #1 ry #2\relax}
+% \permanent\protected\def\dostopscaling {\clf_stopscaling\forcecolorhack}
-\permanent\protected\def\dostopscaling
- {\clf_stopscaling
- \forcecolorhack}
+\permanent\protected\def\dostartscaling#1#2{\clf_startscaling rx #1 ry #2\relax}
+\permanent\protected\def\dostopscaling {\clf_stopscaling}
% mirroring
-\permanent\protected\def\dostartmirroring
- {\clf_startmirroring}
-
-\permanent\protected\def\dostopmirroring
- {\clf_stopmirroring}
+\permanent\protected\def\dostartmirroring{\clf_startmirroring}
+\permanent\protected\def\dostopmirroring {\clf_stopmirroring}
% transform
@@ -73,11 +66,16 @@
%D \dostopclipping
%D \stoptyping
-\mutable\let\MPclippath\empty
+\mutable\lettonothing\MPclippath
+
+% \permanent\protected\def\dostartclipping#1#2#3% we can move this to lua and only set a box here
+% {\forcecolorhack
+% \meta_grab_clip_path{#1}{#2}{#3}%
+% \clf_startclipping{\MPclippath}%
+% \glet\MPclippath\empty}
\permanent\protected\def\dostartclipping#1#2#3% we can move this to lua and only set a box here
- {\forcecolorhack
- \meta_grab_clip_path{#1}{#2}{#3}%
+ {\meta_grab_clip_path{#1}{#2}{#3}%
\clf_startclipping{\MPclippath}%
\glet\MPclippath\empty}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-fin.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-fin.lmt
index 2ca7491a1b2..88050af8ac8 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-fin.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-fin.lmt
@@ -7,72 +7,66 @@ if not modules then modules = { } end modules ['node-fin'] = {
license = "see context related readme files",
}
--- this module is being reconstructed
--- local functions, only slightly slower
---
--- leaders are also triggers ... see colo-ext for an example (negate a box)
-
local next, type, format = next, type, string.format
local setmetatableindex = table.setmetatableindex
local attributes, nodes, node = attributes, nodes, node
-local nuts = nodes.nuts
-local tonut = nodes.tonut
+local nuts = nodes.nuts
+local tonut = nodes.tonut
-local getnext = nuts.getnext
-local getid = nuts.getid
-local getlist = nuts.getlist
-local getleader = nuts.getleader
-local getattr = nuts.getattr
-local getattrs = nuts.getattrs
-local getwidth = nuts.getwidth
-local getwhd = nuts.getwhd
-local getorientation = nuts.getorientation
-local has_dimensions = nuts.has_dimensions
-local getbox = nuts.getbox
+local getnext = nuts.getnext
+local getid = nuts.getid
+local getlist = nuts.getlist
+local getleader = nuts.getleader
+local getattr = nuts.getattr
+local getattrs = nuts.getattrs
+local getwidth = nuts.getwidth
+local getwhd = nuts.getwhd
+local hasgeometry = nuts.hasgeometry
+local hasdimensions = nuts.hasdimensions
+local getbox = nuts.getbox
-local setlist = nuts.setlist
-local setleader = nuts.setleader
+local setlist = nuts.setlist
+local setleader = nuts.setleader
-local copy_node = nuts.copy
-local find_tail = nuts.tail
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local copy_node = nuts.copy
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
+local appendaftertail = nuts.appendaftertail
-local nextnode = nuts.traversers.node
-local nextcontent = nuts.traversers.content
+local nextnode = nuts.traversers.node
+local nextcontent = nuts.traversers.content
-local nodecodes = nodes.nodecodes
-local rulecodes = nodes.rulecodes
+local nodecodes = nodes.nodecodes
+local rulecodes = nodes.rulecodes
-local boxrule_code = rulecodes.box
-local imagerule_code = rulecodes.image
-local emptyrule_code = rulecodes.empty
+local boxrule_code = rulecodes.box
+local imagerule_code = rulecodes.image
+local emptyrule_code = rulecodes.empty
+local virtualrule_code = rulecodes.virtual
-local container_code = nodes.listcodes.container
+local container_code = nodes.listcodes.container
-local glyph_code = nodecodes.glyph
-local disc_code = nodecodes.disc
-local glue_code = nodecodes.glue
-local rule_code = nodecodes.rule
-local hlist_code = nodecodes.hlist
-local vlist_code = nodecodes.vlist
+local glyph_code = nodecodes.glyph
+local disc_code = nodecodes.disc
+local glue_code = nodecodes.glue
+local rule_code = nodecodes.rule
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
-local texlists = tex.lists
-local texgetnest = tex.getnest
+local texlists = tex.lists
+local texgetnest = tex.getnest
-local states = attributes.states
-local numbers = attributes.numbers
-local a_trigger = attributes.private('trigger')
-local triggering = false
+local states = attributes.states
+local numbers = attributes.numbers
-local implement = interfaces.implement
+local implement = interfaces.implement
-local starttiming = statistics.starttiming
-local stoptiming = statistics.stoptiming
-local loadstripped = utilities.lua.loadstripped
-local unsetvalue = attributes.unsetvalue
+local starttiming = statistics.starttiming
+local stoptiming = statistics.stoptiming
+local loadstripped = utilities.lua.loadstripped
+local unsetvalue = attributes.unsetvalue
-- these two will be like trackers
@@ -86,7 +80,7 @@ nodes.plugindata = nil
-- inheritance: -0x7FFFFFFF -- we can best use nil and skip !
-local template = [[
+local template <const> = [[
local plugin = nodes.plugindata
local starttiming = statistics.starttiming
local stoptiming = statistics.stoptiming
@@ -139,7 +133,7 @@ end
-- the injectors
-local nsdata, nsnone, nslistwise, nsforced, nsselector, nstrigger
+local nsdata, nsnone, nslistwise, nsforced, nsselector
local current, current_selector = 0, 0 -- nb, stack has a local current !
local nsbegin, nsend, nsreset
@@ -149,7 +143,6 @@ function states.initialize(namespace,attribute,head)
nsforced = namespace.forced
nsselector = namespace.selector
nslistwise = namespace.listwise
- nstrigger = triggering and namespace.triggering and a_trigger
current = 0
current_selector = 0
nsstep = namespace.resolve_step
@@ -168,15 +161,10 @@ function states.finalize(namespace,attribute,head) -- is this one ok?
if id == hlist_code or id == vlist_code then
local content = getlist(head)
if content then
--- local list = insert_node_before(content,content,copy_node(nsnone)) -- two return values
- local list = insert_node_after(content,find_tail(content),copy_node(nsnone)) -- two return values
- if list ~= content then
- setlist(head,list)
- end
+ appendaftertail(content,copy_node(nsnone))
end
else
--- head = insert_node_before(head,head,copy_node(nsnone))
- head = insert_node_after(find_tail(head),head,copy_node(nsnone))
+ appendaftertail(head,copy_node(nsnone))
end
return head, true
end
@@ -197,52 +185,34 @@ local function process(attribute,head,inheritance,default) -- one attribute
elseif id == hlist_code or id == vlist_code then
-- tricky checking
local outer
- if subtype == container_code then
- check = true
-current = 0
- end
- if getorientation(stack) then
+ if subtype == container_code or hasgeometry(stack) then
outer = getattr(stack,attribute)
if outer then
if default and outer == inheritance then
if current ~= default then
- head = insert_node_before(head,stack,copy_node(nsdata[default]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[default]))
current = default
end
elseif current ~= outer then
- head = insert_node_before(head,stack,copy_node(nsdata[c]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[outer]))
current = outer
end
elseif default and inheritance then
if current ~= default then
- head = insert_node_before(head,stack,copy_node(nsdata[default]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[default]))
current = default
end
elseif current > 0 then
- head = insert_node_before(head,stack,copy_node(nsnone))
+ head = insertnodebefore(head,stack,copy_node(nsnone))
current = 0
end
end
- -- begin nested --
- local list
- if nstrigger and getattr(stack,nstrigger) then
- if not outer then
- outer = getattr(stack,attribute)
- end
- if outer ~= inheritance then
- list = process(attribute,content,inheritance,outer)
- else
- list = process(attribute,content,inheritance,default)
- end
- else
- list = process(attribute,content,inheritance,default)
- end
+ local list = process(attribute,content,inheritance,default)
if content ~= list then
setlist(stack,list)
end
- -- end nested --
elseif id == rule_code then
- check = has_dimensions(stack)
+ check = subtype == virtualrule_code or hasdimensions(stack)
end
-- much faster this way than using a check() and nested() function
if check then
@@ -250,11 +220,11 @@ current = 0
if c then
if default and c == inheritance then
if current ~= default then
- head = insert_node_before(head,stack,copy_node(nsdata[default]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[default]))
current = default
end
elseif current ~= c then
- head = insert_node_before(head,stack,copy_node(nsdata[c]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[c]))
current = c
end
if leader then
@@ -266,32 +236,20 @@ current = 0
-- for improvement here
current = 0
end
- -- begin nested --
- local list
- if nstrigger and getattr(stack,nstrigger) then
- local outer = getattr(stack,attribute)
- if outer ~= inheritance then
- list = process(attribute,leader,inheritance,outer)
- else
- list = process(attribute,leader,inheritance,default)
- end
- else
- list = process(attribute,leader,inheritance,default)
- end
+ local list = process(attribute,leader,inheritance,default)
if leader ~= list then
setleader(stack,list)
end
- -- end nested --
current = savedcurrent
leader = false
end
elseif default and inheritance then
if current ~= default then
- head = insert_node_before(head,stack,copy_node(nsdata[default]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[default]))
current = default
end
elseif current > 0 then
- head = insert_node_before(head,stack,copy_node(nsnone))
+ head = insertnodebefore(head,stack,copy_node(nsnone))
current = 0
end
check = false
@@ -314,22 +272,18 @@ local function simple(attribute,head)
check = true
leader = content
elseif id == hlist_code or id == vlist_code then
- if subtype == container_code then
- check = true
-current = 0
- end
- if getorientation(stack) then
+ if subtype == container_code or hasgeometry(stack) then
local outer = getattr(stack,attribute)
if outer then
if current ~= outer then
if current > 0 then
- head = insert_node_before(head,stack,copy_node(nsnone))
+ head = insertnodebefore(head,stack,copy_node(nsnone))
end
- head = insert_node_before(head,stack,copy_node(nsdata[c]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[c]))
current = outer
end
elseif current > 0 then
- head = insert_node_before(head,stack,copy_node(nsnone))
+ head = insertnodebefore(head,stack,copy_node(nsnone))
current = 0
end
end
@@ -338,16 +292,16 @@ current = 0
setlist(stack,list)
end
elseif id == rule_code then
- check = has_dimensions(stack)
+ check = subtype == virtualrule_code or hasdimensions(stack)
end
if check then
local c = getattr(stack,attribute)
if c then
if current ~= c then
if current > 0 then
- head = insert_node_before(head,stack,copy_node(nsnone))
+ head = insertnodebefore(head,stack,copy_node(nsnone))
end
- head = insert_node_before(head,stack,copy_node(nsdata[c]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[c]))
current = c
end
if leader then
@@ -364,7 +318,7 @@ current = 0
leader = false
end
elseif current > 0 then
- head = insert_node_before(head,stack,copy_node(nsnone))
+ head = insertnodebefore(head,stack,copy_node(nsnone))
current = 0
end
check = false
@@ -377,137 +331,13 @@ states.simple = function(namespace,attribute,head,default)
return simple(attribute,head,default)
end
--- we can force a selector, e.g. document wide color spaces, saves a little
--- watch out, we need to check both the selector state (like colorspace) and
--- the main state (like color), otherwise we get into troubles when a selector
--- state changes while the main state stays the same (like two glyphs following
--- each other with the same color but different color spaces e.g. \showcolor)
-
--- local function selective(attribute,head,inheritance,default) -- two attributes
--- local check = false
--- local leader = nil
--- for stack, id, subtype, content in nextcontent, head do
--- if id == glyph_code or id == disc_code then
--- check = true
--- elseif id == glue_code then
--- check = true
--- leader = content -- getleader(stack)
--- elseif id == hlist_code or id == vlist_code then
--- -- tricky checking
--- if subtype == container_code then
--- check = true
--- current = 0
--- end
--- local outer
--- if getorientation(stack) then
--- outer = getattr(stack,attribute)
--- if outer then
--- if default and outer == inheritance then
--- if current ~= default then
--- local data = nsdata[default]
--- head = insert_node_before(head,stack,copy_node(data[nsforced or getattr(stack,nsselector) or nsselector]))
--- current = default
--- end
--- else
--- local s = getattr(stack,nsselector)
--- -- local s = nsforced or getattr(stack,nsselector)
--- if current ~= outer or current_selector ~= s then
--- local data = nsdata[outer]
--- head = insert_node_before(head,stack,copy_node(data[nsforced or s or nsselector]))
--- current = outer
--- current_selector = s
--- end
--- end
--- elseif default and inheritance then
--- if current ~= default then
--- local data = nsdata[default]
--- head = insert_node_before(head,stack,copy_node(data[nsforced or getattr(stack,nsselector) or nsselector]))
--- current = default
--- end
--- elseif current > 0 then
--- head = insert_node_before(head,stack,copy_node(nsnone))
--- current, current_selector = 0, 0
--- end
--- end
--- -- begin nested
--- local list
--- if nstrigger and getattr(stack,nstrigger) then
--- if not outer then
--- outer = getattr(stack,attribute)
--- end
--- if outer ~= inheritance then
--- list = selective(attribute,content,inheritance,outer)
--- else
--- list = selective(attribute,content,inheritance,default)
--- end
--- else
--- list = selective(attribute,content,inheritance,default)
--- end
--- if content ~= list then
--- setlist(stack,list)
--- end
--- -- end nested
--- elseif id == rule_code then
--- if subtype == boxrule_code or subtype == imagerule_code or subtype == emptyrule_code then
--- -- so no redundant color stuff (only here, layers for instance should obey)
--- check = false
--- else
--- check = has_dimensions(stack)
--- end
--- end
--- if check then
--- local c = getattr(stack,attribute)
--- if c then
--- if default and c == inheritance then
--- if current ~= default then
--- local data = nsdata[default]
--- head = insert_node_before(head,stack,copy_node(data[nsforced or getattr(stack,nsselector) or nsselector]))
--- current = default
--- end
--- else
--- local s = getattr(stack,nsselector)
--- -- local s = nsforced or getattr(stack,nsselector)
--- if current ~= c or current_selector ~= s then
--- local data = nsdata[c]
--- head = insert_node_before(head,stack,copy_node(data[nsforced or s or nsselector]))
--- current = c
--- current_selector = s
--- end
--- end
--- if leader then
--- -- begin nested
--- local list
--- if nstrigger and getattr(stack,nstrigger) then
--- local outer = getattr(stack,attribute)
--- if outer ~= inheritance then
--- list = selective(attribute,leader,inheritance,outer)
--- else
--- list = selective(attribute,leader,inheritance,default)
--- end
--- else
--- list = selective(attribute,leader,inheritance,default)
--- end
--- if leader ~= list then
--- setleader(stack,list)
--- end
--- -- end nested
--- leader = false
--- end
--- elseif default and inheritance then
--- if current ~= default then
--- local data = nsdata[default]
--- head = insert_node_before(head,stack,copy_node(data[nsforced or getattr(stack,nsselector) or nsselector]))
--- current = default
--- end
--- elseif current > 0 then
--- head = insert_node_before(head,stack,copy_node(nsnone))
--- current, current_selector = 0, 0
--- end
--- check = false
--- end
--- end
--- return head
--- end
+-- We can force a selector, e.g. document wide color spaces, saves a little watch
+-- out, we need to check both the selector state (like colorspace) and the main
+-- state (like color), otherwise we get into troubles when a selector state changes
+-- while the main state stays the same (like two glyphs following each other with
+-- the same color but different color spaces e.g. \showcolor). The triggering
+-- mechanism has been removed because it was never really used, but the original can
+-- be seen in the mkiv (lua) code.
local function selective(attribute,head,inheritance,default) -- two attributes
local check = false
@@ -517,64 +347,53 @@ local function selective(attribute,head,inheritance,default) -- two attributes
check = true
elseif id == glue_code then
check = true
- leader = content -- getleader(stack)
+ leader = content
elseif id == hlist_code or id == vlist_code then
- -- tricky checking
- if subtype == container_code then
- check = true
-current = 0
- end
local outer, s
- if getorientation(stack) then
+ if subtype == container_code or hasgeometry(stack) then
outer, s = getattrs(stack,attribute,nsselector)
if outer then
if default and outer == inheritance then
if current ~= default then
- local data = nsdata[default]
- head = insert_node_before(head,stack,copy_node(data[nsforced or nsselector]))
+ local data = nsdata[default][nsforced or nsselector]
+ if data then
+ head = insertnodebefore(head,stack,copy_node(data))
+ end
current = default
end
elseif current ~= outer or current_selector ~= s then
- local data = nsdata[outer]
- head = insert_node_before(head,stack,copy_node(data[nsforced or s or nsselector]))
+ local data = nsdata[outer][nsforced or s or nsselector]
+ if data then
+ head = insertnodebefore(head,stack,copy_node(data))
+ end
current = outer
current_selector = s
end
elseif default and inheritance then
if current ~= default then
- local data = nsdata[default]
- head = insert_node_before(head,stack,copy_node(data[nsforced or s or nsselector]))
+ local data = nsdata[default][nsforced or s or nsselector]
+ if data then
+ head = insertnodebefore(head,stack,copy_node(data))
+ end
current = default
end
elseif current > 0 then
- head = insert_node_before(head,stack,copy_node(nsnone))
+ head = insertnodebefore(head,stack,copy_node(nsnone))
current, current_selector = 0, 0
end
end
- -- begin nested
- local list
- if nstrigger and getattr(stack,nstrigger) then
- if not outer then
- outer = getattr(stack,attribute)
- end
- if outer ~= inheritance then
- list = selective(attribute,content,inheritance,outer)
- else
- list = selective(attribute,content,inheritance,default)
- end
- else
- list = selective(attribute,content,inheritance,default)
- end
+ local list = selective(attribute,content,inheritance,default)
if content ~= list then
setlist(stack,list)
end
- -- end nested
elseif id == rule_code then
- if subtype == boxrule_code or subtype == imagerule_code or subtype == emptyrule_code then
+ if subtype == virtualrule_code then
+ check = true
+ elseif subtype == boxrule_code or subtype == imagerule_code or subtype == emptyrule_code then
-- so no redundant color stuff (only here, layers for instance should obey)
check = false
else
- check = has_dimensions(stack)
+ check = hasdimensions(stack)
end
end
if check then
@@ -582,43 +401,37 @@ current = 0
if c then
if default and c == inheritance then
if current ~= default then
- local data = nsdata[default]
- head = insert_node_before(head,stack,copy_node(data[nsforced or s or nsselector]))
+ local data = nsdata[default][nsforced or s or nsselector]
+ if data then
+ head = insertnodebefore(head,stack,copy_node(data))
+ end
current = default
end
elseif current ~= c or current_selector ~= s then
- local data = nsdata[c]
- head = insert_node_before(head,stack,copy_node(data[nsforced or s or nsselector]))
+ local data = nsdata[c][nsforced or s or nsselector]
+ if data then
+ head = insertnodebefore(head,stack,copy_node(data))
+ end
current = c
current_selector = s
end
if leader then
- -- begin nested
- local list
- if nstrigger and getattr(stack,nstrigger) then
- local outer = getattr(stack,attribute)
- if outer ~= inheritance then
- list = selective(attribute,leader,inheritance,outer)
- else
- list = selective(attribute,leader,inheritance,default)
- end
- else
- list = selective(attribute,leader,inheritance,default)
- end
+ local list = selective(attribute,leader,inheritance,default)
if leader ~= list then
setleader(stack,list)
end
- -- end nested
leader = false
end
elseif default and inheritance then
if current ~= default then
- local data = nsdata[default]
- head = insert_node_before(head,stack,copy_node(data[nsforced or s or nsselector]))
+ local data = nsdata[default][nsforced or s or nsselector]
+ if data then
+ head = insertnodebefore(head,stack,copy_node(data))
+ end
current = default
end
elseif current > 0 then
- head = insert_node_before(head,stack,copy_node(nsnone))
+ head = insertnodebefore(head,stack,copy_node(nsnone))
current, current_selector = 0, 0
end
check = false
@@ -640,7 +453,7 @@ end
-- Todo: make a better stacker. Keep track (in attribute) about nesting level. Not
-- entirely trivial and a generic solution is nicer (compares to the exporter).
-local function stacked(attribute,head,default) -- no triggering, no inheritance, but list-wise
+local function stacked(attribute,head,default) -- no inheritance, but list-wise
local stack = head
local current = default or 0
local depth = 0
@@ -661,17 +474,17 @@ local function stacked(attribute,head,default) -- no triggering, no inheritance,
-- the problem is that broken lines gets the attribute which can be a later one
local list
if subtype == container_code then
- check = true
-current = 0
+ check = true
+ current = 0
end
if nslistwise then
local a = getattr(stack,attribute)
if a and current ~= a and nslistwise[a] then -- viewerlayer / needs checking, see below
local p = current
current = a
- head = insert_node_before(head,stack,copy_node(nsdata[a]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[a]))
list = stacked(attribute,content,current) -- two return values
- head, stack = insert_node_after(head,stack,copy_node(nsnone))
+ head, stack = insertnodeafter(head,stack,copy_node(nsnone))
current = p
else
list = stacked(attribute,content,current)
@@ -684,13 +497,13 @@ current = 0
end
end
elseif id == rule_code then
- check = has_dimensions(stack)
+ check = subtype == virtualrule_code or hasdimensions(stack)
end
if check then
local a = getattr(stack,attribute)
if a then
if current ~= a then
- head = insert_node_before(head,stack,copy_node(nsdata[a]))
+ head = insertnodebefore(head,stack,copy_node(nsdata[a]))
depth = depth + 1
current = a
end
@@ -707,7 +520,7 @@ current = 0
elseif default > 0 then
--
elseif current > 0 then
- head = insert_node_before(head,stack,copy_node(nsnone))
+ head = insertnodebefore(head,stack,copy_node(nsnone))
depth = depth - 1
current = 0
end
@@ -716,7 +529,7 @@ current = 0
stack = getnext(stack)
end
while depth > 0 do
- head = insert_node_after(head,stack,copy_node(nsnone))
+ head = insertnodeafter(head,stack,copy_node(nsnone))
depth = depth - 1
end
return head
@@ -726,119 +539,13 @@ states.stacked = function(namespace,attribute,head,default)
return stacked(attribute,head,default)
end
--- experimental
-
--- local function stacker(attribute,head,default) -- no triggering, no inheritance, but list-wise
---
--- -- nsbegin()
--- local stacked = false
---
--- local current = head
--- local previous = head
--- local attrib = default or unsetvalue
--- local check = false
--- local leader = false
---
--- while current do
--- local id = getid(current)
--- if id == glyph_code then
--- check = true
--- elseif id == glue_code then
--- leader = getleader(current)
--- if leader then
--- check = true
--- end
--- elseif id == hlist_code or id == vlist_code then
--- local content = getlist(current)
--- if content then
--- local list
--- if subtype == container_code then
--- check = true
--- current = 0
--- end
--- if nslistwise then
--- local a = getattr(current,attribute)
--- if a and attrib ~= a and nslistwise[a] then -- viewerlayer
--- head = insert_node_before(head,current,copy_node(nsdata[a]))
--- list = stacker(attribute,content,a)
--- if list ~= content then
--- setlist(current,list)
--- end
--- head, current = insert_node_after(head,current,copy_node(nsnone))
--- else
--- list = stacker(attribute,content,attrib)
--- if list ~= content then
--- setlist(current,list)
--- end
--- end
--- else
--- list = stacker(attribute,content,default)
--- if list ~= content then
--- setlist(current,list)
--- end
--- end
--- end
--- elseif id == rule_code then
--- check = has_dimensions(current)
--- end
---
--- if check then
--- local a = getattr(current,attribute) or unsetvalue
--- if a ~= attrib then
--- if not stacked then
--- stacked = true
--- nsbegin()
--- end
--- local n = nsstep(a)
--- if n then
--- head = insert_node_before(head,current,n) -- a
--- end
--- attrib = a
--- if leader then
--- -- tricky as a leader has to be a list so we cannot inject before
--- -- local list = stacker(attribute,leader,attrib)
--- -- leader = false
---
--- local content = getlist(leader)
--- if content then
--- local list = stacker(attribute,leader,attrib)
--- if leader ~= list then
--- setleader(current,list)
--- end
--- end
---
--- leader = false
--- end
--- end
--- check = false
--- end
---
--- previous = current
--- current = getnext(current)
--- end
---
--- if stacked then
--- local n = nsend()
--- while n do
--- head = insert_node_after(head,previous,n)
--- n = nsend()
--- end
--- end
---
--- return head
--- end
-
-local function stacker(attribute,head,default) -- no triggering, no inheritance, but list-wise
-
- -- nsbegin()
+local function stacker(attribute,head,default) -- no inheritance, but list-wise
local stacked = false
-
local current = head
local previous = head
local attrib = default or unsetvalue
local check = false
local leader = false
-
for current, id, subtype, content in nextcontent, head do
if id == glyph_code then
check = true
@@ -849,17 +556,16 @@ local function stacker(attribute,head,default) -- no triggering, no inheritance,
local list
if subtype == container_code then
check = true
--- attrib = default or unsetvalue -- or just umsetvalue
end
if nslistwise then
local a = getattr(current,attribute)
if a and attrib ~= a and nslistwise[a] then -- viewerlayer
- head = insert_node_before(head,current,copy_node(nsdata[a]))
+ head = insertnodebefore(head,current,copy_node(nsdata[a]))
list = stacker(attribute,content,a)
if list ~= content then
setlist(current,list)
end
- head, current = insert_node_after(head,current,copy_node(nsnone))
+ head, current = insertnodeafter(head,current,copy_node(nsnone))
else
list = stacker(attribute,content,attrib)
if list ~= content then
@@ -873,14 +579,15 @@ local function stacker(attribute,head,default) -- no triggering, no inheritance,
end
end
elseif id == rule_code then
- if subtype == boxrule_code or subtype == imagerule_code or subtype == emptyrule_code then
+ if subtype == virtualrule_code then
+ check = true
+ elseif subtype == boxrule_code or subtype == imagerule_code or subtype == emptyrule_code then
-- so no redundant color stuff (only here, layers for instance should obey)
check = false
else
- check = has_dimensions(current)
+ check = hasdimensions(current)
end
end
-
if check then
local a = getattr(current,attribute) or unsetvalue
if a ~= attrib then
@@ -890,14 +597,11 @@ local function stacker(attribute,head,default) -- no triggering, no inheritance,
end
local n = nsstep(a)
if n then
- head = insert_node_before(head,current,n) -- a
+ head = insertnodebefore(head,current,n) -- a
end
attrib = a
if leader then
-- tricky as a leader has to be a list so we cannot inject before
- -- local list = stacker(attribute,leader,attrib)
- -- leader = false
-
local content = getlist(leader)
if content then
local list = stacker(attribute,leader,attrib)
@@ -914,15 +618,13 @@ local function stacker(attribute,head,default) -- no triggering, no inheritance,
previous = current
end
-
if stacked then
local n = nsend()
while n do
- head = insert_node_after(head,previous,n)
+ head = insertnodeafter(head,previous,n)
n = nsend()
end
end
-
return head
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-fin.mkxl b/Master/texmf-dist/tex/context/base/mkxl/node-fin.mkxl
index 6840c85ab53..aef7eea581e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-fin.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-fin.mkxl
@@ -15,64 +15,69 @@
\unprotect
-\registerctxluafile{node-shp}{autosuffix,optimize}
-\registerctxluafile{node-fin}{autosuffix,optimize}
+\registerctxluafile{node-shp}{autosuffix}
+\registerctxluafile{node-fin}{autosuffix}
\permanent\protected\def\finalizeobjectbox #1{\clf_finalizebox#1\relax}
\permanent\protected\def\finalizeshipoutbox#1{\clf_finalizebox#1\relax}
-% Experimental (for Aditya), not in mkxl, if we need it, it has to be more
-% clever.
-
-% \permanent\protected\def\cleanupbox#1{\clf_cleanupbox#1\relax}
-
-% Tricky stuff: this might become obsolete. It is about time to check this out
-% now (after more than a decade)! The few times that we need this we can better
-% copy some of the sensitive attributes (mostly color).
-
-\definesystemattribute[trigger][public]
-
-\newcount\c_syst_attr_trigger
-
-\permanent\edef\startinheritattributes{\c_attr_trigger\plusone}
-\permanent\edef\stopinheritattributes {\c_attr_trigger\attributeunsetvalue}
-
-\permanent\def\syst_attr_trigger_copy_yes{\afterassignment\syst_attr_trigger_copy_indeed\c_syst_attr_trigger}
-\permanent\def\syst_attr_trigger_dump_yes{\afterassignment\syst_attr_trigger_dump_indeed\c_syst_attr_trigger}
-
-\def\syst_attr_trigger_copy_indeed
- {\ifvbox\c_syst_attr_trigger
- \vpack attr \triggerattribute \plusone {\unvcopy\c_syst_attr_trigger}%
- \else
- \hpack attr \triggerattribute \plusone {\unhcopy\c_syst_attr_trigger}%
- \fi}
-
-\def\syst_attr_trigger_dump_indeed
- {\ifvbox\c_syst_attr_trigger
- \vpack attr \triggerattribute \plusone {\unvbox\c_syst_attr_trigger}%
- \else
- \hpack attr \triggerattribute \plusone {\unhbox\c_syst_attr_trigger}%
- \fi}
-
-\permanent\protected\def\enableattributeinheritance
- {\clf_enablestatetriggering
- \enforced\let\attributedcopy\syst_attr_trigger_copy_yes
- \enforced\let\attributedbox \syst_attr_trigger_dump_yes}
-
-\permanent\protected\def\disableattributeinheritance
- {\clf_disablestatetriggering
- \enforced\let\attributedcopy\copy
- \enforced\let\attributedbox \box}
-
-\disableattributeinheritance
-
-\installtexdirective
- {attributes.inheritance}
- {\enableattributeinheritance}
- {\disableattributeinheritance}
-
-% \appendtoks
-% \enableattributeinheritance % might become default
-% \to\everyjob
+% % Tricky stuff: this might become obsolete. It is about time to check this out
+% % now (after more than a decade)! The few times that we need this we can better
+% % copy some of the sensitive attributes (mostly color).
+%
+% \definesystemattribute[trigger][public]
+%
+% \newinteger\c_syst_attr_trigger
+%
+% \permanent\edef\startinheritattributes{\c_attr_trigger\plusone}
+% \permanent\edef\stopinheritattributes {\c_attr_trigger\attributeunsetvalue}
+%
+% \permanent\def\syst_attr_trigger_copy_yes{\afterassignment\syst_attr_trigger_copy_indeed\c_syst_attr_trigger}
+% \permanent\def\syst_attr_trigger_dump_yes{\afterassignment\syst_attr_trigger_dump_indeed\c_syst_attr_trigger}
+%
+% \def\syst_attr_trigger_copy_indeed
+% {\ifvbox\c_syst_attr_trigger
+% \vpack attr \triggerattribute \plusone {\unvcopy\c_syst_attr_trigger}%
+% \else
+% \hpack attr \triggerattribute \plusone {\unhcopy\c_syst_attr_trigger}%
+% \fi}
+%
+% \def\syst_attr_trigger_dump_indeed
+% {\ifvbox\c_syst_attr_trigger
+% \vpack attr \triggerattribute \plusone {\unvbox\c_syst_attr_trigger}%
+% \else
+% \hpack attr \triggerattribute \plusone {\unhbox\c_syst_attr_trigger}%
+% \fi}
+%
+% \permanent\protected\def\enableattributeinheritance
+% {\clf_enablestatetriggering
+% \enforced\let\attributedcopy\syst_attr_trigger_copy_yes
+% \enforced\let\attributedbox \syst_attr_trigger_dump_yes}
+%
+% \permanent\protected\def\disableattributeinheritance
+% {\clf_disablestatetriggering
+% \enforced\let\attributedcopy\copy
+% \enforced\let\attributedbox \box}
+%
+% \disableattributeinheritance
+%
+% \installtexdirective
+% {attributes.inheritance}
+% {\enableattributeinheritance}
+% {\disableattributeinheritance}
+%
+% % \appendtoks
+% % \enableattributeinheritance % might become default
+% % \to\everyjob
+
+% This is just a compatibility hack:
+
+\newinteger\c_syst_attr_trigger
+
+\permanent\protected\def\attributedcopy{\afterassignment\syst_attr_copy\c_syst_attr_trigger}
+\permanent\protected\def\attributedbox {\afterassignment\syst_attr_box \c_syst_attr_trigger}
+
+\def\syst_attr_copy{\recolorbox\c_syst_attr_trigger\copy\c_syst_attr_trigger}
+\def\syst_attr_box {\recolorbox\c_syst_attr_trigger\box \c_syst_attr_trigger}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-fnt.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-fnt.lmt
index c96bdde3d1e..c5f9537413e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-fnt.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-fnt.lmt
@@ -21,7 +21,7 @@ local trace_variants = false trackers.register("nodes.variants", function(
local force_discrun = true directives.register("nodes.discrun", function(v) force_discrun = v end)
local force_boundaryrun = true directives.register("nodes.boundaryrun", function(v) force_boundaryrun = v end)
-local force_basepass = true directives.register("nodes.basepass", function(v) force_basepass = v end)
+----- force_basepass = true directives.register("nodes.basepass", function(v) force_basepass = v end)
local keep_redundant = false directives.register("nodes.keepredundant",function(v) keep_redundant = v end)
local report_fonts = logs.reporter("fonts","processing")
@@ -64,15 +64,17 @@ local nextboundary = nuts.traversers.boundary
local nextdisc = nuts.traversers.disc
local nextchar = nuts.traversers.char
-local flush_node = nuts.flush
+local flushnode = nuts.flush
+local removefromlist = nuts.removefromlist
local disc_code = nodecodes.disc
local boundary_code = nodecodes.boundary
local wordboundary_code = boundarycodes.word
-local protect_glyphs = nuts.protect_glyphs
-local unprotect_glyphs = nuts.unprotect_glyphs
+local protectglyphs = nuts.protectglyphs
+local unprotectglyphs = nuts.unprotectglyphs
+local protectglyphsnone = nuts.protectglyphsnone
local setmetatableindex = table.setmetatableindex
@@ -136,146 +138,540 @@ fonts.hashes.processes = fontprocesses
local ligaturing = nuts.ligaturing
local kerning = nuts.kerning
-local function start_trace(head)
- run = run + 1
- report_fonts()
- report_fonts("checking node list, run %s",run)
- report_fonts()
- local n = head
- while n do
- local char, id = isglyph(n)
- if char then
- local font = id
- local dynamic = getglyphdata(n) or 0
- report_fonts("font %03i, dynamic %03i, glyph %C",font,dynamic,char)
- elseif id == disc_code then
- report_fonts("[disc] %s",nodes.listtoutf(n,true,false,n))
- elseif id == boundary_code then
- report_fonts("[boundary] %i:%i",getsubtype(n),getdata(n))
- else
- report_fonts("[%s]",nodecodes[id])
- end
- n = getnext(n)
- end
-end
+-- local function start_trace(head)
+-- run = run + 1
+-- report_fonts()
+-- report_fonts("checking node list, run %s",run)
+-- report_fonts()
+-- local n = head
+-- while n do
+-- local char, id = isglyph(n)
+-- if char then
+-- local font = id
+-- local dynamic = getglyphdata(n) or 0
+-- report_fonts("font %03i, dynamic %03i, glyph %C",font,dynamic,char)
+-- elseif id == disc_code then
+-- report_fonts("[disc] %s",nodes.listtoutf(n,true,false,n))
+-- elseif id == boundary_code then
+-- report_fonts("[boundary] %i:%i",getsubtype(n),getdata(n))
+-- else
+-- report_fonts("[%s]",nodecodes[id])
+-- end
+-- n = getnext(n)
+-- end
+-- end
+
+-- local function stop_trace(u,usedfonts,d,dynamicfonts,b,basefonts,r,redundant)
+-- report_fonts()
+-- report_fonts("statics : %s",u > 0 and concat(keys(usedfonts)," ") or "none")
+-- report_fonts("dynamics: %s",d > 0 and concat(keys(dynamicfonts)," ") or "none")
+-- report_fonts("built-in: %s",b > 0 and b or "none")
+-- report_fonts("removed : %s",r > 0 and r or "none")
+-- report_fonts()
+-- end
+
+-- This is the original handler and we keep it around as reference. It served us
+-- well for quite a while.
+
+-- do
+--
+-- local usedfonts
+-- local dynamicfonts
+-- local basefonts -- could be reused
+-- local basefont
+-- local prevfont
+-- local prevdynamic
+-- local variants
+-- local redundant -- could be reused
+-- local firstnone
+-- local lastfont
+-- local lastproc
+-- local lastnone
+--
+-- local d, u, b, r
+--
+-- local function protectnone()
+-- protectglyphs(firstnone,lastnone)
+-- firstnone = nil
+-- end
+--
+-- local function setnone(n)
+-- if firstnone then
+-- protectnone()
+-- end
+-- if basefont then
+-- basefont[2] = getprev(n)
+-- basefont = false
+-- end
+-- if not firstnone then
+-- firstnone = n
+-- end
+-- lastnone = n
+-- end
+--
+-- local function setbase(n)
+-- if firstnone then
+-- protectnone()
+-- end
+-- if force_basepass then
+-- if basefont then
+-- basefont[2] = getprev(n)
+-- end
+-- b = b + 1
+-- basefont = { n, false }
+-- basefonts[b] = basefont
+-- end
+-- end
+--
+-- local function setnode(n,font,dynamic) -- we could use prevfont and prevdynamic when we set then first
+-- if firstnone then
+-- protectnone()
+-- end
+-- if basefont then
+-- basefont[2] = getprev(n)
+-- basefont = false
+-- end
+-- if dynamic > 0 then
+-- local used = dynamicfonts[font]
+-- if not used then
+-- used = { }
+-- dynamicfonts[font] = used
+-- end
+-- if not used[dynamic] then
+-- local fd = setfontdynamics[font]
+-- if fd then
+-- used[dynamic] = fd[dynamic]
+-- d = d + 1
+-- end
+-- end
+-- else
+-- local used = usedfonts[font]
+-- if not used then
+-- lastfont = font
+-- lastproc = fontprocesses[font]
+-- if lastproc then
+-- usedfonts[font] = lastproc
+-- u = u + 1
+-- end
+-- end
+-- end
+-- end
+--
+-- function handlers.characters(head,groupcode,direction)
+-- -- either next or not, but definitely no already processed list
+-- starttiming(nodes)
+--
+-- usedfonts = { }
+-- dynamicfonts = { }
+-- basefonts = { }
+-- basefont = nil
+-- prevfont = nil
+-- prevdynamic = 0
+-- variants = nil
+-- redundant = nil
+-- firstnone = nil
+-- lastfont = nil
+-- lastproc = nil
+-- lastnone = nil
+--
+-- local fontmode = nil -- base none or other
+--
+-- d, u, b, r = 0, 0, 0, 0
+--
+-- if trace_fontrun then
+-- start_trace(head)
+-- end
+--
+-- -- There is no gain in checking for a single glyph and then having a fast path. On the
+-- -- metafun manual (with some 2500 single char lists) the difference is just noise.
+--
+-- for n, char, font, dynamic in nextchar, head do
+--
+-- if font ~= prevfont then
+-- prevfont = font
+-- fontmode = fontmodes[font]
+-- if fontmode == "none" then
+-- prevdynamic = 0
+-- variants = false
+-- setnone(n)
+-- elseif fontmode == "base" then
+-- prevdynamic = 0
+-- variants = false
+-- setbase(n)
+-- else
+-- -- local dynamic = getglyphdata(n) or 0 -- zero dynamic is reserved for fonts in context
+-- prevdynamic = dynamic
+-- variants = fontvariants[font]
+-- setnode(n,font,dynamic)
+-- end
+-- elseif fontmode == "node" then
+-- local dynamic = getglyphdata(n) or 0 -- zero dynamic is reserved for fonts in context
+-- if dynamic ~= prevdynamic then
+-- prevdynamic = dynamic
+-- variants = fontvariants[font]
+-- setnode(n,font,dynamic)
+-- end
+-- elseif firstnone then
+-- lastnone = n
+-- end
+--
+-- if variants then
+-- if (char >= 0xFE00 and char <= 0xFE0F) or (char >= 0xE0100 and char <= 0xE01EF) then
+-- -- if variants and char >= 0xFE00 then
+-- -- if char < 0xFE0F or (char >= 0xE0100 and char <= 0xE01EF) then
+-- local hash = variants[char]
+-- if hash then
+-- local p = getprev(n)
+-- if p then
+-- local char = ischar(p) -- checked
+-- local variant = hash[char]
+-- if variant then
+-- if trace_variants then
+-- report_fonts("replacing %C by %C",char,variant)
+-- end
+-- setchar(p,variant)
+-- if redundant then
+-- r = r + 1
+-- redundant[r] = n
+-- else
+-- r = 1
+-- redundant = { n }
+-- end
+-- end
+-- end
+-- elseif keep_redundant then
+-- -- go on, can be used for tracing
+-- elseif redundant then
+-- r = r + 1
+-- redundant[r] = n
+-- else
+-- r = 1
+-- redundant = { n }
+-- end
+-- end
+-- end
+--
+-- end
+--
+-- if firstnone then
+-- protectnone()
+-- end
+--
+-- if force_boundaryrun then
+--
+-- -- we can inject wordboundaries and then let the hyphenator do its work
+-- -- but we need to get rid of those nodes in order to build ligatures
+-- -- and kern (a rather context thing)
+--
+-- for b, subtype in nextboundary, head do
+-- if subtype == wordboundary_code then
+-- if redundant then
+-- r = r + 1
+-- redundant[r] = b
+-- else
+-- r = 1
+-- redundant = { b }
+-- end
+-- end
+-- end
+--
+-- end
+--
+-- if redundant then
+-- for i=1,r do
+-- local r = redundant[i]
+-- local p, n = getboth(r)
+-- if r == head then
+-- head = n
+-- setprev(n)
+-- else
+-- setlink(p,n)
+-- end
+-- if b > 0 then
+-- for i=1,b do
+-- local bi = basefonts[i]
+-- local b1 = bi[1]
+-- local b2 = bi[2]
+-- if b1 == b2 then
+-- if b1 == r then
+-- bi[1] = false
+-- bi[2] = false
+-- end
+-- elseif b1 == r then
+-- bi[1] = n
+-- elseif b2 == r then
+-- bi[2] = p
+-- end
+-- end
+-- end
+-- flushnode(r)
+-- end
+-- end
+--
+-- if force_discrun then
+-- -- basefont is not supported in disc only runs ... it would mean a lot of
+-- -- ranges .. we could try to run basemode as a separate processor run but not
+-- -- for now (we can consider it when the new node code is tested
+-- for disc in nextdisc, head do
+-- -- doing only replace is good enough because pre and post are normally used
+-- -- for hyphens and these come from fonts that part of the hyphenated word
+-- local r = getreplace(disc)
+-- if r then
+-- local prevfont = nil
+-- local prevdynamic = nil
+-- local none = false
+-- firstnone = nil
+-- basefont = nil
+-- for n, char, font, dynamic in nextchar, r do
+-- -- local dynamic = getglyphdata(n) or 0 -- zero dynamic is reserved for fonts in context
+-- if font ~= prevfont or dynamic ~= prevdynamic then
+-- prevfont = font
+-- prevdynamic = dynamic
+-- local fontmode = fontmodes[font]
+-- if fontmode == "none" then
+-- setnone(n)
+-- elseif fontmode == "base" then
+-- -- so the replace gets an extra treatment ... so be it
+-- setbase(n)
+-- else
+-- setnode(n,font,dynamic)
+-- end
+-- elseif firstnone then
+-- -- lastnone = n
+-- lastnone = nil
+-- end
+-- -- we assume one font for now (and if there are more and we get into issues then
+-- -- we can always remove the break)
+-- break
+-- end
+-- if firstnone then
+-- protectnone()
+-- end
+-- end
+-- end
+--
+-- end
+--
+-- if trace_fontrun then
+-- stop_trace(u,usedfonts,d,dynamicfonts,b,basefonts,r,redundant)
+-- end
+--
+-- -- in context we always have at least 2 processors
+-- if u == 0 then
+-- -- skip
+-- elseif u == 1 then
+-- for i=1,#lastproc do
+-- head = lastproc[i](head,lastfont,0,direction)
+-- end
+-- else
+-- for font, processors in next, usedfonts do -- unordered
+-- for i=1,#processors do
+-- head = processors[i](head,font,0,direction,u) -- u triggers disc optimizer
+-- end
+-- end
+-- end
+--
+-- if d == 0 then
+-- -- skip
+-- elseif d == 1 then
+-- local font, dynamics = next(dynamicfonts)
+-- for dynamic, processors in next, dynamics do -- unordered, dynamic can switch in between
+-- for i=1,#processors do
+-- head = processors[i](head,font,dynamic,direction)
+-- end
+-- end
+-- else
+-- for font, dynamics in next, dynamicfonts do
+-- for dynamic, processors in next, dynamics do -- unordered, dynamic can switch in between
+-- for i=1,#processors do
+-- head = processors[i](head,font,dynamic,direction,d) -- d triggers disc optimizer
+-- end
+-- end
+-- end
+-- end
+-- if b == 0 then
+-- -- skip
+-- elseif b == 1 then
+-- -- only one font
+-- local range = basefonts[1]
+-- local start = range[1]
+-- local stop = range[2]
+-- if (start or stop) and (start ~= stop) then
+-- local front = head == start
+-- if stop then
+-- start = ligaturing(start,stop)
+-- start = kerning(start,stop)
+-- elseif start then -- safeguard
+-- start = ligaturing(start)
+-- start = kerning(start)
+-- end
+-- if front and head ~= start then
+-- head = start
+-- end
+-- end
+-- else
+-- -- multiple fonts
+-- for i=1,b do
+-- local range = basefonts[i]
+-- local start = range[1]
+-- local stop = range[2]
+-- if start then -- and start ~= stop but that seldom happens
+-- local front = head == start
+-- local prev = getprev(start)
+-- local next = getnext(stop)
+-- if stop then
+-- start, stop = ligaturing(start,stop)
+-- start, stop = kerning(start,stop)
+-- else
+-- start = ligaturing(start)
+-- start = kerning(start)
+-- end
+-- -- is done automatically
+-- if prev then
+-- setlink(prev,start)
+-- end
+-- if next then
+-- setlink(stop,next)
+-- end
+-- -- till here
+-- if front and head ~= start then
+-- head = start
+-- end
+-- end
+-- end
+-- end
+--
+-- stoptiming(nodes)
+--
+-- if trace_characters then
+-- nodes.report(head)
+-- end
+--
+-- return head
+-- end
+--
+-- end
-local function stop_trace(u,usedfonts,d,dynamicfonts,b,basefonts,r,redundant)
- report_fonts()
- report_fonts("statics : %s",u > 0 and concat(keys(usedfonts)," ") or "none")
- report_fonts("dynamics: %s",d > 0 and concat(keys(dynamicfonts)," ") or "none")
- report_fonts("built-in: %s",b > 0 and b or "none")
- report_fonts("removed : %s",r > 0 and r or "none")
- report_fonts()
-end
+
+-- This variant uses less code but relies on the engine checking the textcontrol
+-- flags:
+--
+-- baseligatures : 0x02
+-- basekerns : 0x04
+-- noneprotected : 0x08
+--
+-- This permits one 'base' pass instead of multiple over ranges which is kind of
+-- tricky because we then can have clashes when we process replace fields
+-- independently. We can also protect 'none' in one go. It is actually not that
+-- much faster (and in some cases it might even be slower). We can make the code
+-- a bit leaner (no setbase and setnone).
do
local usedfonts
local dynamicfonts
- local basefonts -- could be reused
- local basefont
local prevfont
local prevdynamic
local variants
local redundant -- could be reused
- local firstnone
local lastfont
local lastproc
- local lastnone
-
- local d, u, b, r
-
- local function protectnone()
- protect_glyphs(firstnone,lastnone)
- firstnone = nil
- end
-
- local function setnone(n)
- if firstnone then
- protectnone()
- end
- if basefont then
- basefont[2] = getprev(n)
- basefont = false
- end
- if not firstnone then
- firstnone = n
- end
- lastnone = n
- end
-
- local function setbase(n)
- if firstnone then
- protectnone()
- end
- if force_basepass then
- if basefont then
- basefont[2] = getprev(n)
- end
- b = b + 1
- basefont = { n, false }
- basefonts[b] = basefont
- end
- end
-
- local function setnode(n,font,dynamic) -- we could use prevfont and prevdynamic when we set then first
- if firstnone then
- protectnone()
- end
- if basefont then
- basefont[2] = getprev(n)
- basefont = false
- end
- if dynamic > 0 then
- local used = dynamicfonts[font]
+ -- local basedone
+ -- local nonedone
+
+ -- local d, u, b, r
+ local d, u, r
+
+ -- local function setnone()
+ -- nonedone = true
+ -- end
+
+ -- local function setbase()
+ -- if force_basepass then
+ -- basedone = true
+ -- end
+ -- end
+
+-- local function setnode(font,dynamic) -- we could use prevfont and prevdynamic when we set them first
+-- if dynamic > 0 then
+-- local used = dynamicfonts[font]
+-- if not used then
+-- used = { }
+-- dynamicfonts[font] = used
+-- end
+-- if not used[dynamic] then
+-- local fd = setfontdynamics[font]
+-- if fd then
+-- used[dynamic] = fd[dynamic]
+-- d = d + 1
+-- end
+-- end
+-- else
+-- local used = usedfonts[font]
+-- if not used then
+-- lastfont = font
+-- lastproc = fontprocesses[font]
+-- if lastproc then
+-- usedfonts[font] = lastproc
+-- u = u + 1
+-- end
+-- end
+-- end
+-- end
+
+ local function setnode() -- we could use prevfont and prevdynamic when we set them first
+ if prevdynamic > 0 then
+ local used = dynamicfonts[prevfont]
if not used then
used = { }
- dynamicfonts[font] = used
+ dynamicfonts[prevfont] = used
end
- if not used[dynamic] then
- local fd = setfontdynamics[font]
+ if not used[prevdynamic] then
+ local fd = setfontdynamics[prevfont]
if fd then
- used[dynamic] = fd[dynamic]
+ used[prevdynamic] = fd[prevdynamic]
d = d + 1
end
end
else
- local used = usedfonts[font]
+ local used = usedfonts[prevfont]
if not used then
- lastfont = font
- lastproc = fontprocesses[font]
+ lastfont = prevfont
+ lastproc = fontprocesses[prevfont]
if lastproc then
- usedfonts[font] = lastproc
+ usedfonts[prevfont] = lastproc
u = u + 1
end
end
end
end
- function handlers.characters(head,groupcode,size,packtype,direction)
+ function handlers.characters(head,groupcode,direction)
-- either next or not, but definitely no already processed list
starttiming(nodes)
usedfonts = { }
dynamicfonts = { }
- basefonts = { }
- basefont = nil
- prevfont = nil
- prevdynamic = 0
- variants = nil
- redundant = nil
- firstnone = nil
+ prevfont = nil -- local
+ prevdynamic = 0 -- local
+ variants = nil -- local
+ redundant = nil -- local
lastfont = nil
lastproc = nil
- lastnone = nil
+ -- nonedone = nil
+ -- basedone = nil
+
+ local nonedone = nil
+ local basedone = nil
local fontmode = nil -- base none or other
- d, u, b, r = 0, 0, 0, 0
+ -- d, u, b, r = 0, 0, 0, 0
+ d, u, r = 0, 0, 0
- if trace_fontrun then
- start_trace(head)
- end
+ -- if trace_fontrun then
+ -- start_trace(head)
+ -- end
-- There is no gain in checking for a single glyph and then having a fast path. On the
-- metafun manual (with some 2500 single char lists) the difference is just noise.
@@ -288,34 +684,38 @@ do
if fontmode == "none" then
prevdynamic = 0
variants = false
- setnone(n)
+ -- setnone()
+ nonedone = true
elseif fontmode == "base" then
prevdynamic = 0
variants = false
- setbase(n)
+ -- setbase()
+ basedone = true
else
- -- local dynamic = getglyphdata(n) or 0 -- zero dynamic is reserved for fonts in context
prevdynamic = dynamic
variants = fontvariants[font]
- setnode(n,font,dynamic)
+ -- setnode(font,dynamic)
+ setnode()
end
elseif fontmode == "node" then
- local dynamic = getglyphdata(n) or 0 -- zero dynamic is reserved for fonts in context
if dynamic ~= prevdynamic then
prevdynamic = dynamic
variants = fontvariants[font]
- setnode(n,font,dynamic)
+ -- setnode(font,dynamic)
+ setnode()
end
- elseif firstnone then
- lastnone = n
end
+ -- we could just mark them and then have a separate pass .. happens seldom
+
if variants then
+ -- We need a proper test for this!
if (char >= 0xFE00 and char <= 0xFE0F) or (char >= 0xE0100 and char <= 0xE01EF) then
- -- if variants and char >= 0xFE00 then
- -- if char < 0xFE0F or (char >= 0xE0100 and char <= 0xE01EF) then
local hash = variants[char]
if hash then
+ -- local p, _, char = isprevchar(n)
+ -- if char then
+ -- local variant = hash[char]
local p = getprev(n)
if p then
local char = ischar(p) -- checked
@@ -348,27 +748,24 @@ do
end
- if firstnone then
- protectnone()
- end
-
if force_boundaryrun then
-
-- we can inject wordboundaries and then let the hyphenator do its work
-- but we need to get rid of those nodes in order to build ligatures
-- and kern (a rather context thing)
- for b, subtype in nextboundary, head do
- if subtype == wordboundary_code then
- if redundant then
- r = r + 1
- redundant[r] = b
- else
- r = 1
- redundant = { b }
- end
- end
- end
+ -- for b, subtype in nextboundary, head do
+ -- if subtype == wordboundary_code then
+ -- if redundant then
+ -- r = r + 1
+ -- redundant[r] = b
+ -- else
+ -- r = 1
+ -- redundant = { b }
+ -- end
+ -- end
+ -- end
+
+ head = removefromlist(head,boundary_code,wordboundary_code)
end
@@ -382,73 +779,51 @@ do
else
setlink(p,n)
end
- if b > 0 then
- for i=1,b do
- local bi = basefonts[i]
- local b1 = bi[1]
- local b2 = bi[2]
- if b1 == b2 then
- if b1 == r then
- bi[1] = false
- bi[2] = false
- end
- elseif b1 == r then
- bi[1] = n
- elseif b2 == r then
- bi[2] = p
- end
- end
- end
- flush_node(r)
+ flushnode(r)
end
end
+ -- todo: make this more clever
+
if force_discrun then
- -- basefont is not supported in disc only runs ... it would mean a lot of
- -- ranges .. we could try to run basemode as a separate processor run but not
- -- for now (we can consider it when the new node code is tested
for disc in nextdisc, head do
-- doing only replace is good enough because pre and post are normally used
-- for hyphens and these come from fonts that part of the hyphenated word
local r = getreplace(disc)
if r then
- local prevfont = nil
- local prevdynamic = nil
- local none = false
- firstnone = nil
- basefont = nil
+ prevfont = nil
+ prevdynamic = nil
+ -- fontmode = nil
for n, char, font, dynamic in nextchar, r do
- -- local dynamic = getglyphdata(n) or 0 -- zero dynamic is reserved for fonts in context
if font ~= prevfont or dynamic ~= prevdynamic then
prevfont = font
prevdynamic = dynamic
- local fontmode = fontmodes[font]
+ fontmode = fontmodes[font]
if fontmode == "none" then
- setnone(n)
+ -- setnone()
+ nonedone = true
elseif fontmode == "base" then
- -- so the replace gets an extra treatment ... so be it
- setbase(n)
+ -- setbase()
+ basedone = true
else
- setnode(n,font,dynamic)
+ setnode() -- (font,dynamic)
end
- elseif firstnone then
- -- lastnone = n
- lastnone = nil
end
-- we assume one font for now (and if there are more and we get into issues then
-- we can always remove the break)
break
end
- if firstnone then
- protectnone()
- end
end
end
end
- if trace_fontrun then
- stop_trace(u,usedfonts,d,dynamicfonts,b,basefonts,r,redundant)
+ -- if trace_fontrun then
+ -- stop_trace(u,usedfonts,d,dynamicfonts,b,basefonts,r,redundant)
+ -- end
+
+ if nonedone then
+ protectglyphsnone(head)
end
-- in context we always have at least 2 processors
@@ -465,6 +840,7 @@ do
end
end
end
+
if d == 0 then
-- skip
elseif d == 1 then
@@ -483,55 +859,13 @@ do
end
end
end
- if b == 0 then
- -- skip
- elseif b == 1 then
- -- only one font
- local range = basefonts[1]
- local start = range[1]
- local stop = range[2]
- if (start or stop) and (start ~= stop) then
- local front = head == start
- if stop then
- start = ligaturing(start,stop)
- start = kerning(start,stop)
- elseif start then -- safeguard
- start = ligaturing(start)
- start = kerning(start)
- end
- if front and head ~= start then
- head = start
- end
- end
- else
- -- multiple fonts
- for i=1,b do
- local range = basefonts[i]
- local start = range[1]
- local stop = range[2]
- if start then -- and start ~= stop but that seldom happens
- local front = head == start
- local prev = getprev(start)
- local next = getnext(stop)
- if stop then
- start, stop = ligaturing(start,stop)
- start, stop = kerning(start,stop)
- else
- start = ligaturing(start)
- start = kerning(start)
- end
- -- is done automatically
- if prev then
- setlink(prev,start)
- end
- if next then
- setlink(stop,next)
- end
- -- till here
- if front and head ~= start then
- head = start
- end
- end
+
+ if basedone then
+ local start = head
+ start = ligaturing(start)
+ start = kerning(start)
+ if head ~= start then
+ head = start
end
end
@@ -546,5 +880,5 @@ do
end
-handlers.protectglyphs = protect_glyphs
-handlers.unprotectglyphs = unprotect_glyphs
+handlers.protectglyphs = protectglyphs
+handlers.unprotectglyphs = unprotectglyphs
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-gcm.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-gcm.lmt
index 7f2a7bded8a..03a4acda8d8 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-gcm.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-gcm.lmt
@@ -14,8 +14,8 @@ local nuts = nodes.nuts
local getnext = nuts.getnext
local getsubtype = nuts.getsubtype
-local copy_node = nuts.copy
-local flush_list = nuts.flush_list
+local copynode = nuts.copy
+local flushlist = nuts.flushlist
local count = nuts.count
local isglyph = nuts.isglyph
local getprop = nuts.getprop
@@ -25,7 +25,7 @@ local fastcopy = table.fastcopy
local report_error = logs.reporter("node-aux:error")
-local function set_components(base,list)
+local function setcomponents(base,list)
local t = { }
local n = 0
local l = list
@@ -39,35 +39,35 @@ local function set_components(base,list)
end
-- not yet as we need them
--
- -- flush_list(l)
+ -- flushlist(l)
--
setprop(base,"components",n > 0 and t or false)
end
-local function get_components(base)
+local function getcomponents(base)
return getprop(base,"components")
end
-local function copy_no_components(base)
- local copy = copy_node(base)
+local function copynocomponents(base)
+ local copy = copynode(base)
setprop(copy,"components",false) -- no metatable lookup!
return copy
end
-local function copy_only_glyphs(base)
+local function copyonlyglyphs(base)
local t = getprop(base,"components") -- also metatable
if t then
return fastcopy(t)
end
end
-local function do_count(t,marks)
+local function docount(t,marks)
local n = 0
if t then
for i=1,#t do
local c = t[i]
if type(c) == "table" then
- n = n + do_count(t,marks)
+ n = n + docount(t,marks)
elseif not marks[c] then
n = n + 1
else
@@ -82,19 +82,19 @@ end
local done = false
-local function count_components(base,marks)
+local function countcomponents(base,marks)
local char = isglyph(base)
if char then
if getsubtype(base) == ligature_code then
if not done then
logs.report("fonts","!")
- logs.report("fonts","! check count_components with mkiv !")
+ logs.report("fonts","! check countcomponents with mkiv !")
logs.report("fonts","!")
done = true
end
local t = getprop(base,"components")
if t then
- return do_count(t,marks)
+ return docount(t,marks)
end
elseif not marks[char] then
return 1
@@ -103,12 +103,14 @@ local function count_components(base,marks)
return 0
end
-nuts.set_components = set_components
-nuts.get_components = get_components
-nuts.copy_only_glyphs = copy_only_glyphs
-nuts.copy_no_components = copy_no_components
-nuts.count_components = count_components
-nuts.flush_components = flush_list
+nuts.components = {
+ set = setcomponents,
+ get = getcomponents,
+ copyonlyglyphs = copyonlyglyphs,
+ copynocomponents = copynocomponents,
+ count = countcomponents,
+ flush = flushlist,
+}
nuts.setcomponents = function() report_error("unsupported: %a","setcomponents") end
nuts.getcomponents = function() report_error("unsupported: %a","getcomponents") end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-ini.lmt
index 4ba4b4000a1..f1b9bb45299 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-ini.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-ini.lmt
@@ -20,42 +20,40 @@ local sortedhash, sortedkeys, swapped = table.sortedhash, table.sortedkeys, tabl
few helper functions. These functions are rather optimized.</p>
--ldx]]--
-nodes = nodes or { }
-local nodes = nodes
-nodes.handlers = nodes.handlers or { }
-
-local mark = utilities.storage.mark
-local allocate = utilities.storage.allocate
-local formatcolumns = utilities.formatters.formatcolumns
-
-local getsubtypes = node.subtypes
-local getvalues = node.values
-
-tex.magicconstants = { -- we use tex.constants for something else
- running = -1073741824, -- null_flag
- maxdimen = 1073741823, -- max_dimen
- trueinch = 4736286,
-}
-
-local listcodes = mark(getsubtypes("list"))
-local rulecodes = mark(getsubtypes("rule"))
-local dircodes = mark(getsubtypes("dir"))
-local glyphcodes = mark(getsubtypes("glyph"))
-local disccodes = mark(getsubtypes("disc"))
-local gluecodes = mark(getsubtypes("glue"))
-local boundarycodes = mark(getsubtypes("boundary"))
-local penaltycodes = mark(getsubtypes("penalty"))
-local kerncodes = mark(getsubtypes("kern"))
-local mathcodes = mark(getsubtypes("math"))
-local noadcodes = mark(getsubtypes("noad"))
-local radicalcodes = mark(getsubtypes("radical"))
-local accentcodes = mark(getsubtypes("accent"))
-local fencecodes = mark(getsubtypes("fence"))
------ fractioncodes = mark(getsubtypes("fraction"))
-local parcodes = mark(getsubtypes("par"))
-
-local fillvalues = mark(getvalues("fill"))
-local dirvalues = mark(getvalues("dir"))
+nodes = nodes or { }
+local nodes = nodes
+nodes.handlers = nodes.handlers or { }
+
+local mark = utilities.storage.mark
+local allocate = utilities.storage.allocate
+local formatcolumns = utilities.formatters.formatcolumns
+
+local getsubtypes = node.subtypes
+local getvalues = node.values
+
+local listcodes = mark(getsubtypes("list"))
+local rulecodes = mark(getsubtypes("rule"))
+local dircodes = mark(getsubtypes("dir"))
+local markcodes = mark(getsubtypes("mark"))
+local glyphcodes = mark(getsubtypes("glyph"))
+local disccodes = mark(getsubtypes("disc"))
+local gluecodes = mark(getsubtypes("glue"))
+local boundarycodes = mark(getsubtypes("boundary"))
+local penaltycodes = mark(getsubtypes("penalty"))
+local kerncodes = mark(getsubtypes("kern"))
+local mathcodes = mark(getsubtypes("math"))
+local noadcodes = mark(getsubtypes("noad"))
+local radicalcodes = mark(getsubtypes("radical"))
+local accentcodes = mark(getsubtypes("accent"))
+local fencecodes = mark(getsubtypes("fence"))
+local choicecodes = mark(getsubtypes("choice"))
+----- fractioncodes = mark(getsubtypes("fraction"))
+local parcodes = mark(getsubtypes("par"))
+local attributecodes = mark(getsubtypes("attribute"))
+
+local fillvalues = mark(getvalues("fill"))
+local dirvalues = mark(getvalues("dir"))
+local mathvalues = mark(getvalues("math"))
local function simplified(t)
local r = { }
@@ -79,53 +77,84 @@ local noadoptions = allocate {
local nodecodes = simplified(node.types())
-gluecodes = allocate(swapped(gluecodes,gluecodes))
-dircodes = allocate(swapped(dircodes,dircodes))
-boundarycodes = allocate(swapped(boundarycodes,boundarycodes))
-noadcodes = allocate(swapped(noadcodes,noadcodes))
-radicalcodes = allocate(swapped(radicalcodes,radicalcodes))
-nodecodes = allocate(swapped(nodecodes,nodecodes))
-listcodes = allocate(swapped(listcodes,listcodes))
-glyphcodes = allocate(swapped(glyphcodes,glyphcodes))
-kerncodes = allocate(swapped(kerncodes,kerncodes))
-penaltycodes = allocate(swapped(penaltycodes,penaltycodes))
-mathcodes = allocate(swapped(mathcodes,mathcodes))
-disccodes = allocate(swapped(disccodes,disccodes))
-accentcodes = allocate(swapped(accentcodes,accentcodes))
-fencecodes = allocate(swapped(fencecodes,fencecodes))
-parcodes = allocate(swapped(parcodes,parcodes))
-rulecodes = allocate(swapped(rulecodes,rulecodes))
-noadoptions = allocate(swapped(noadoptions,noadoptions))
-
-dirvalues = allocate(swapped(dirvalues,dirvalues))
-fillvalues = allocate(swapped(fillvalues,fillvalues))
-
-nodes.gluecodes = gluecodes
-nodes.dircodes = dircodes
-nodes.boundarycodes = boundarycodes
-nodes.noadcodes = noadcodes
-nodes.listcodes = listcodes
-nodes.glyphcodes = glyphcodes
-nodes.kerncodes = kerncodes
-nodes.penaltycodes = penaltycodes
-nodes.mathcodes = mathcodes
-nodes.disccodes = disccodes
-nodes.accentcodes = accentcodes
-nodes.radicalcodes = radicalcodes
-nodes.fencecodes = fencecodes
-nodes.parcodes = parcodes
-nodes.rulecodes = rulecodes
+gluecodes = allocate(swapped(gluecodes,gluecodes))
+dircodes = allocate(swapped(dircodes,dircodes))
+markcodes = allocate(swapped(markcodes,markcodes))
+boundarycodes = allocate(swapped(boundarycodes,boundarycodes))
+noadcodes = allocate(swapped(noadcodes,noadcodes))
+radicalcodes = allocate(swapped(radicalcodes,radicalcodes))
+nodecodes = allocate(swapped(nodecodes,nodecodes))
+listcodes = allocate(swapped(listcodes,listcodes))
+glyphcodes = allocate(swapped(glyphcodes,glyphcodes))
+kerncodes = allocate(swapped(kerncodes,kerncodes))
+penaltycodes = allocate(swapped(penaltycodes,penaltycodes))
+mathcodes = allocate(swapped(mathcodes,mathcodes))
+disccodes = allocate(swapped(disccodes,disccodes))
+accentcodes = allocate(swapped(accentcodes,accentcodes))
+fencecodes = allocate(swapped(fencecodes,fencecodes))
+choicecodes = allocate(swapped(choicecodes,choicecodes))
+parcodes = allocate(swapped(parcodes,parcodes))
+attributecodes = allocate(swapped(attributecodes,attributecodes))
+rulecodes = allocate(swapped(rulecodes,rulecodes))
+noadoptions = allocate(swapped(noadoptions,noadoptions))
+
+dirvalues = allocate(swapped(dirvalues,dirvalues))
+fillvalues = allocate(swapped(fillvalues,fillvalues))
+mathvalues = allocate(swapped(mathvalues,mathvalues))
+
+nodes.gluecodes = gluecodes
+nodes.dircodes = dircodes
+nodes.markcodes = markcodes
+nodes.boundarycodes = boundarycodes
+nodes.noadcodes = noadcodes
+nodes.listcodes = listcodes
+nodes.glyphcodes = glyphcodes
+nodes.kerncodes = kerncodes
+nodes.penaltycodes = penaltycodes
+nodes.mathcodes = mathcodes
+nodes.disccodes = disccodes
+nodes.accentcodes = accentcodes
+nodes.radicalcodes = radicalcodes
+nodes.fencecodes = fencecodes
+nodes.choicecodes = choicecodes
+nodes.parcodes = parcodes
+nodes.attributecodes = attributecodes
+nodes.rulecodes = rulecodes
nodes.noadoptions = noadoptions
nodes.fillvalues = fillvalues
nodes.fillcodes = fillvalues -- for now
nodes.dirvalues = dirvalues
+nodes.mathvalues = mathvalues
nodes.nodecodes = nodecodes
+-- we will transition to more verbose subtypes (after other math is done)
+
+noadcodes.ord = noadcodes.ord or noadcodes.ordinary
+noadcodes.operator = noadcodes.op or noadcodes.operator
+noadcodes.bin = noadcodes.bin or noadcodes.binary
+noadcodes.rel = noadcodes.rel or noadcodes.relation
+noadcodes.punct = noadcodes.punct or noadcodes.punctuation
+noadcodes.rad = noadcodes.rad or noadcodes.radical
+noadcodes.frac = noadcodes.frac or noadcodes.fraction
+noadcodes.acc = noadcodes.acc or noadcodes.accent
+
+-- so for now:
+
+noadcodes.ordinary = noadcodes.ordinary or noadcodes.ord
+noadcodes.operator = noadcodes.operator or noadcodes.op
+noadcodes.binary = noadcodes.binary or noadcodes.bin
+noadcodes.relation = noadcodes.relation or noadcodes.rel
+noadcodes.punctuation = noadcodes.punctuation or noadcodes.punct
+noadcodes.radical = noadcodes.radical or noadcodes.rad
+noadcodes.fraction = noadcodes.fraction or noadcodes.frac
+noadcodes.accent = noadcodes.accent or noadcodes.acc
+
local subtypes = allocate {
glue = gluecodes,
dir = dircodes,
+ mark = markcodes,
boundary = boundarycodes,
noad = noadcodes,
glyph = glyphcodes,
@@ -136,7 +165,9 @@ local subtypes = allocate {
accent = accentcodes,
radical = radicalcodes,
fence = fencecodes,
+ choice = choicecodes,
par = parcodes,
+ attribute = attributecodes,
rule = rulecodes,
vlist = listcodes,
@@ -195,6 +226,27 @@ local texsetintegervalue = tex.setintegervalue
for i=0,nodecodes.glyph do
texsetintegervalue(nodecodes[i] .. "nodecode",i,"immutable")
end
+texsetintegervalue("tempnodecode",nodecodes.temp,"immutable") -- can happen in tables
+
for i=0,#gluecodes do
texsetintegervalue(gluecodes[i] .. "subtypecode",i,"immutable")
end
+
+nodes.specialskipcodes = {
+ [gluecodes.leftskip] = true,
+ [gluecodes.rightskip] = true,
+ [gluecodes.lefthangskip] = true,
+ [gluecodes.righthangskip] = true,
+ [gluecodes.parfillleftskip or parfillskip_code] = true,
+ [gluecodes.parfillrightskip or parfillskip_code] = true,
+ [gluecodes.indentskip] = true,
+ [gluecodes.correctionskip] = true,
+}
+
+table.setmetatableindex(listcodes,function(t,k)
+ -- fully qualified as yet unknown
+-- local v = mathematics.classnames[k - 0x100] or listcodes.unknown
+ local v = mathematics.classes[k - 0x100] or mathematics.classnames[k - 0x100] or listcodes.unknown
+ t[k] = v
+ return v
+end)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/node-ini.mkxl
index b3f17e04159..df2df0f182f 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-ini.mkxl
@@ -15,34 +15,34 @@
\unprotect
-\newcount\filterstate \filterstate\plusone % hm, public
+\newinteger\filterstate \filterstate\plusone % hm, public
\registerctxluafile{node-cmp}{autosuffix}
\registerctxluafile{node-ini}{autosuffix}
\registerctxluafile{node-met}{autosuffix}
\registerctxluafile{node-nut}{autosuffix}
\registerctxluafile{node-res}{autosuffix}
-\registerctxluafile{node-ext}{autosuffix}
%registerctxluafile{node-ppt}{} % experimental, not used so probably useless
\registerctxluafile{node-aux}{autosuffix}
\registerctxluafile{node-gcm}{autosuffix}
-\registerctxluafile{node-tst}{}
+\registerctxluafile{node-tst}{autosuffix}
\registerctxluafile{node-tra}{autosuffix}
\registerctxluafile{node-snp}{autosuffix}
-\registerctxluafile{node-tsk}{}
+\registerctxluafile{node-tsk}{autosuffix}
\registerctxluafile{node-tex}{autosuffix}
-\registerctxluafile{node-dir}{} % experimental, not yet (and maybe never) used
+\registerctxluafile{node-dir}{autosuffix}
\registerctxluafile{node-pro}{autosuffix}
\registerctxluafile{node-ser}{autosuffix}
\registerctxluafile{node-acc}{autosuffix} % experimental
%registerctxluafile{node-prp}{} % makes no sense (yet)
\registerctxluafile{node-scn}{autosuffix}
-\registerctxluafile{node-syn}{autosuffix}
+\registerctxluafile{node-scn}{autosuffix}
\registerctxluafile{node-par}{autosuffix}
+%registerctxluafile{node-bwc}{autosuffix} % no longer used
%D This might go away (needs checking anyway, very old code):
-\newcount\c_node_tracers_show_box % box number
+\newinteger\c_node_tracers_show_box % box number
\permanent\protected\def\shownextnodes{\afterassignment\node_tracers_show_next\c_node_tracers_show_box}
\permanent\protected\def\showflatnodes{\afterassignment\node_tracers_show_flat\c_node_tracers_show_box}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-met.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-met.lmt
index a3f02d7093a..81d5b556134 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-met.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-met.lmt
@@ -10,7 +10,7 @@ if not modules then modules = { } end modules ['node-MET'] = {
-- the regular code is proven stable. No support otherwise.
-- luatex: todo: copylist should return h, t
--- todo: see if using insert_before and insert_after makes sense here
+-- todo: see if using insertbefore and insertafter makes sense here
-- This file is a side effect of the \LUATEX\ speed optimization project of Luigi
-- Scarso and me. As \CONTEXT\ spends over half its time in \LUA, we though that
@@ -65,84 +65,66 @@ end
-- We start with some helpers and provide all relevant basic functions in the
-- node namespace as well.
-nodes = nodes or { }
-local nodes = nodes
-
-local nodecodes = nodes.nodecodes
-
-nodes.tostring = node.tostring or tostring
-nodes.copy = node.copy
-nodes.copy_node = node.copy
-nodes.copy_list = node.copy_list
-nodes.delete = node.delete
-nodes.dimensions = node.dimensions
-nodes.rangedimensions = node.rangedimensions
-nodes.end_of_math = node.end_of_math
-nodes.flush = node.flush_node
-nodes.flush_node = node.flush_node
-nodes.flush_list = node.flush_list
-nodes.free = node.free
-nodes.insert_after = node.insert_after
-nodes.insert_before = node.insert_before
-nodes.hpack = node.hpack
-nodes.new = node.new
-nodes.tail = node.tail
-nodes.traverse = node.traverse
-nodes.traverse_id = node.traverse_id
-nodes.traverse_char = node.traverse_char
-nodes.traverse_glyph = node.traverse_glyph
-nodes.traverse_list = node.traverse_list
-nodes.slide = node.slide
-nodes.vpack = node.vpack
-nodes.fields = node.fields
-nodes.is_node = node.is_node
-nodes.setglue = node.setglue
-nodes.uses_font = node.uses_font
-
-nodes.first_glyph = node.first_glyph
-nodes.has_glyph = node.has_glyph or node.first_glyph
-
-nodes.current_attributes = node.current_attributes or node.current_attr
-nodes.has_field = node.has_field
-nodes.last_node = node.last_node
-nodes.usedlist = node.usedlist
-nodes.protrusion_skippable = node.protrusion_skippable
-nodes.check_discretionaries = node.check_discretionaries
-nodes.write = node.write
-nodes.flatten_discretionaries = node.flatten_discretionaries
-
-nodes.count = node.count
-nodes.length = node.length
-
-nodes.has_attribute = node.has_attribute
-nodes.set_attribute = node.set_attribute
-nodes.find_attribute = node.find_attribute
-nodes.unset_attribute = node.unset_attribute
-
-nodes.protect_glyph = node.protect_glyph
-nodes.protect_glyphs = node.protect_glyphs
-nodes.unprotect_glyph = node.unprotect_glyph
-nodes.unprotect_glyphs = node.unprotect_glyphs
-nodes.kerning = node.kerning
-nodes.ligaturing = node.ligaturing
-nodes.hyphenating = node.hyphenating
-nodes.mlist_to_hlist = node.mlist_to_hlist
-
-nodes.effective_glue = node.effective_glue
-nodes.getglue = node.getglue
-nodes.setglue = node.setglue
-nodes.is_zero_glue = node.is_zero_glue
-
-nodes.tonode = function(n) return n end
-nodes.tonut = function(n) return n end
+nodes = nodes or { }
+local nodes = nodes
+
+local nodecodes = nodes.nodecodes
+
+nodes.copy = node.copy
+nodes.copylist = node.copylist
+nodes.copy_node = node.copy
+nodes.currentattributes = node.currentattributes
+nodes.remove = node.remove
+nodes.fields = node.fields
+nodes.flush = node.flushnode
+nodes.flushlist = node.flushlist
+nodes.flushnode = node.flushnode
+nodes.getattribute = node.getattribute
+nodes.hasattribute = node.hasattribute
+nodes.hasfield = node.hasfield
+nodes.insertafter = node.insertafter
+nodes.insertbefore = node.insertbefore
+-----.appendafter = node.appendafter
+-----.prependbefore = node.prependbefore
+nodes.isnode = node.isnode
+nodes.isdirect = node.isdirect
+nodes.isnut = node.isdirect
+nodes.new = node.new
+nodes.setattribute = node.setattribute
+nodes.tail = node.tail
+nodes.tostring = node.tostring or tostring
+nodes.traverse = node.traverse
+nodes.traverseid = node.traverseid
+nodes.unsetattribute = node.unsetattribute
+nodes.write = node.write
+nodes.usedlist = node.usedlist
+
+nodes.getpropertiestable = node.get_properties_table
+nodes.getproperty = node.getproperty
+nodes.setproperty = node.setproperty
+
+-----.show = node.show
+nodes.serialized = node.serialized
+
+-- nodes.usedlist
+-- nodes.inuse
+-- nodes.instock
+-- nodes.type
+-- nodes.types
+-- nodes.subtypes
+-- nodes.values
+-- nodes.id
+
+-- nodes.tonode = function(n) return n end
+-- nodes.tonut = function(n) return n end
-- These are never used in \CONTEXT, only as a gimmick in node operators
-- so we keep them around.
--
--- Fro nwo I keep them in \LMTX\ but they will go away!
+-- Fot now I keep them in \LMTX\ but they will go away!
local n_getfield = node.getfield
-local n_getattr = node.get_attribute
+local n_getattr = node.getattribute
local n_setfield = node.setfield
local n_setattr = n_setfield
@@ -151,7 +133,7 @@ nodes.getfield = n_getfield
nodes.setfield = n_setfield
nodes.getattr = n_getattr
nodes.setattr = n_setattr
-nodes.takeattr = nodes.unset_attribute
+nodes.takeattr = nodes.unsetattribute
local function n_getid (n) return n_getfield(n,"id") end
local function n_getsubtype(n) return n_getfield(n,"subtype") end
@@ -215,12 +197,12 @@ nodes.setlink = n_setlink
nodes.getbox = node.getbox or tex.getbox
nodes.setbox = node.setbox or tex.setbox
-local n_flush_node = nodes.flush
+local n_flushnode = nodes.flushnode
local n_copy_node = nodes.copy
-local n_copy_list = nodes.copy_list
+local n_copy_list = nodes.copylist
local n_find_tail = nodes.tail
-local n_insert_after = nodes.insert_after
-local n_insert_before = nodes.insert_before
+local n_insertafter = nodes.insertafter
+local n_insertbefore = nodes.insertbefore
local n_slide = nodes.slide
local n_remove_node = node.remove -- not yet nodes.remove
@@ -231,7 +213,7 @@ local function remove(head,current,free_too)
if not t then
-- forget about it
elseif free_too then
- n_flush_node(t)
+ n_flushnode(t)
t = nil
else
n_setboth(t)
@@ -268,10 +250,10 @@ function nodes.replace(head,current,new) -- no head returned if false
if head == current then
head = new
end
- n_flush_node(current)
+ n_flushnode(current)
return head, new
else
- n_flush_node(current)
+ n_flushnode(current)
return new
end
end
@@ -280,14 +262,14 @@ end
function nodes.append(head,current,...)
for i=1,select("#",...) do
- head, current = n_insert_after(head,current,(select(i,...)))
+ head, current = n_insertafter(head,current,(select(i,...)))
end
return head, current
end
function nodes.prepend(head,current,...)
for i=1,select("#",...) do
- head, current = n_insert_before(head,current,(select(i,...)))
+ head, current = n_insertbefore(head,current,(select(i,...)))
end
return head, current
end
@@ -324,10 +306,6 @@ function nodes.concat(list) -- consider tail instead of slide
return head, tail
end
-function nodes.reference(n)
- return n and tonut(n) or "<none>"
-end
-
-- Here starts an experiment with metatables. Of course this only works with nodes
-- wrapped in userdata with a metatable.
--
@@ -436,7 +414,7 @@ metatable.__sub = function(first,second)
local tail = n_find_tail(first)
for i=1,second do
local prev = n_getprev(tail)
- n_flush_node(tail) -- can become flushlist/flushnode
+ n_flushnode(tail) -- can become flushlist/flushnode
if prev then
tail = prev
else
@@ -471,7 +449,7 @@ metatable.__add = function(first,second)
local head = second
for i=1,first do
local second = n_getnext(head)
- n_flush_node(head) -- can become flushlist/flushnode
+ n_flushnode(head) -- can become flushlist/flushnode
if second then
head = second
else
@@ -558,76 +536,3 @@ metatable.__unm = function(head)
n_setnext(last)
return first
end
-
--- see node-nut.lua for more info on going nuts
-
--- if not gonuts then
---
--- local nuts = { }
--- nodes.nuts = nuts
---
--- local function dummy(f) return f end
---
--- nodes.vianuts = dummy
--- nodes.vianodes = dummy
---
--- for k, v in next, nodes do
--- if type(v) == "function" then
--- nuts[k] = v
--- end
--- end
---
--- end
-
--- also handy
-
-local tonode = nodes.tonode
-local whatsit_code = nodecodes.whatsit
-local getfields = node.fields
-local sort = table.sort
-local whatsitkeys = { }
-local keys = { whatsit = whatsitkeys }
-local messyhack = table.tohash { -- temporary solution
- nodecodes.attributelist,
- nodecodes.attribute,
- nodecodes.action, -- hm
-}
-
-setmetatableindex(keys,function(t,k)
- local v = (k == "attributelist" or k == nodecodes.attributelist) and { } or getfields(k)
- if messyhack[k] then
- for i=1,#v do
- if v[i] == "subtype" then
- remove(v,i)
- break
- end
- end
- end
- if v[ 0] then v[#v+1] = "next" v[ 0] = nil end
- if v[-1] then v[#v+1] = "prev" v[-1] = nil end
- sort(v)
- t[k] = v
- return v
-end)
-
-setmetatableindex(whatsitkeys,function(t,k)
- local v = getfields(whatsit_code,k)
- if v[ 0] then v[#v+1] = "next" v[ 0] = nil end
- if v[-1] then v[#v+1] = "prev" v[-1] = nil end
- sort(v)
- t[k] = v
- return v
-end)
-
-local function nodefields(n)
- n = tonode(n)
- local id = n.id
- if id == whatsit_code then
- return whatsitkeys[n.subtype]
- else
- return keys[id]
- end
-end
-
-nodes.keys = keys -- [id][subtype]
-nodes.fields = nodefields -- (n)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-mig.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-mig.lmt
index c1991350935..3e545478496 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-mig.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-mig.lmt
@@ -6,8 +6,6 @@ if not modules then modules = { } end modules ['node-mig'] = {
license = "see context related readme files"
}
--- todo: insert_after
-
local format = string.format
local trace_migrations = false trackers.register("nodes.migrations", function(v) trace_migrations = v end)
@@ -51,6 +49,7 @@ local t_sweeps = 0
local trialtypesetting = context.trialtypesetting
function nodes.handlers.migrate(head,where)
+ -- is this still needed
if head and not trialtypesetting() and where == "alignment" then
if trace_migrations then
report_nodes("migration sweep %a",where)
@@ -112,7 +111,7 @@ local function check()
if not enabled then
enableaction("mvlbuilders", "nodes.handlers.migrate")
enabled = true
- texsetcount("automigrationmode",3)
+ texsetcount("automigrationmode",0xFFFF) -- just all of it
end
else
if enabled then
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-nut.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-nut.lmt
index 7ef087178cd..f17c5ce7a28 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-nut.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-nut.lmt
@@ -26,97 +26,124 @@ local glyph_code = nodecodes.glyph
local tonode = direct.tonode
local tonut = direct.todirect
-local is_node = direct.is_node
-local is_nut = direct.is_direct
+local isnode = direct.isnode
+local isnut = direct.isdirect
+local isdirect = direct.isdirect
local d_remove_node = direct.remove
-local d_flush_node = direct.flush_node
+local d_flushnode = direct.flushnode
local d_getnext = direct.getnext
local d_getprev = direct.getprev
local d_getid = direct.getid
local d_getlist = direct.getlist
local d_find_tail = direct.tail
-local d_insert_after = direct.insert_after
-local d_insert_before = direct.insert_before
+local d_insertafter = direct.insertafter
+local d_insertbefore = direct.insertbefore
local d_slide = direct.slide
local d_traverse = direct.traverse
local d_setlink = direct.setlink
local d_getboth = direct.getboth
local nuts = {
- check_discretionaries = direct.check_discretionaries,
+ addmargins = direct.addmargins,
+ addxoffset = direct.addxoffset,
+ addxymargins = direct.addxymargins,
+ addyoffset = direct.addyoffset,
+ append = direct.append,
+ appendaftertail = direct.appendaftertail,
+ checkdiscretionaries = direct.checkdiscretionaries,
+ collapsing = direct.collapsing,
copy = direct.copy,
- copy_list = direct.copy_list,
- copy_node = direct.copy,
- copy_only = direct.copy_only or direct.copy,
+ copylist = direct.copylist,
+ copynode = direct.copy,
+ copyonly = direct.copyonly,
count = direct.count,
- current_attributes = direct.current_attributes,
+ currentattributes = direct.currentattributes,
delete = direct.delete,
dimensions = direct.dimensions,
- naturalhsize = direct.naturalhsize,
- naturalwidth = direct.naturalwidth,
- effective_glue = direct.effective_glue,
- end_of_math = direct.end_of_math,
+ effectiveglue = direct.effectiveglue,
+ endofmath = direct.endofmath,
exchange = direct.exchange,
- find_attribute = direct.find_attribute,
- first_glyph = direct.first_glyph,
- flatten_discretionaries = direct.flatten_discretionaries,
- flush = d_flush_node,
- flush_components = direct.flush_components,
- flush_list = direct.flush_list,
- flush_node = direct.flush_node,
+ findattribute = direct.findattribute,
+ findnode = direct.findnode,
+ firstglyph = direct.firstglyph,
+ flattendiscretionaries = direct.flattendiscretionaries,
+ flattenleaders = direct.flattenleaders,
+ flush = d_flushnode,
+ flushlist = direct.flushlist,
+ flushnode = d_flushnode,
free = direct.free,
- getsynctexfields = direct.get_synctex_fields,
- getattr = direct.get_attribute,
- getattrs = direct.get_attributes,
+ freeze = direct.freeze,
+ getanchors = direct.getanchors,
+ getattr = direct.getattribute,
+ getattribute = direct.getattribute,
getattributelist = direct.getattributelist,
+ getattributes = direct.getattributes,
getattrlist = direct.getattributelist,
+ getattrs = direct.getattributes,
getboth = d_getboth,
+ getbottom = direct.getbottom,
getbox = direct.getbox,
getboxglue = direct.getglue,
getchar = direct.getchar,
- getcomponents = direct.getcomponents,
+ getchardict = direct.getchardict,
+ getcharspec = direct.getcharspec,
+ getchoice = direct.getchoice,
+ getclass = direct.getclass,
getdata = direct.getdata,
+ getdegree = direct.getdegree,
+ getdelimiter = direct.getdelimiter,
+ getmiddle = direct.getdelimiter,
+ getdenominator = direct.getdenominator,
getdepth = direct.getdepth,
getdir = direct.getdir,
getdirection = direct.getdirection,
getdisc = direct.getdisc,
+ getdiscpart = direct.getdiscpart,
getdiscretionary = direct.getdisc,
getexpansion = direct.getexpansion,
getfam = direct.getfam,
getfield = direct.getfield,
getfont = direct.getfont,
+ getgeometry = direct.getgeometry,
getglue = direct.getglue,
getglyphdata = direct.getglyphdata,
+ getglyphdimensions = direct.getglyphdimensions,
getheight = direct.getheight,
getid = d_getid,
+ getindex = direct.getindex,
+ getinputfields = direct.getinputfields,
getkern = direct.getkern,
+ getkerndimension = direct.getkerndimension,
getlang = direct.getlanguage,-- will become obsolete
getlanguage = direct.getlanguage,
getleader = direct.getleader,
+ getleftdelimiter = direct.getleftdelimiter,
getlist = d_getlist,
+ getlistdimensions = direct.getlistdimensions,
+ getmiddledelimiter = direct.getdelimiter,
getnext = d_getnext,
getnormalizedline = direct.getnormalizedline,
getnucleus = direct.getnucleus,
+ getnumerator = direct.getnumerator,
getoffsets = direct.getoffsets,
- -- getxyoffsets = direct.getxyoffsets,
- getscale = direct.getscale,
- getscales = direct.getscales,
- getxscale = direct.getxscale,
- getyscale = direct.getyscale,
- xscaled = direct.xscaled,
- yscaled = direct.yscaled,
- getxyscales = direct.getxyscales,
- getorientation = direct.getorientation,
getoptions = direct.getoptions,
+ getorientation = direct.getorientation,
+ getparstate = direct.getparstate,
getpenalty = direct.getpenalty,
getpost = direct.getpost,
getpre = direct.getpre,
getprev = d_getprev,
+ getprime = direct.getprime,
getreplace = direct.getreplace,
+ getrightdelimiter = direct.getrightdelimiter,
getruledata = direct.getdata, -- obsolete when we have the split
- getscript = direct.setscript,
+ getruledimensions = direct.getruledimensions,
+ getscale = direct.getscale,
+ getscales = direct.getscales,
+ getscript = direct.getscript,
getshift = direct.getshift,
+ getspeciallist = direct.getspeciallist,
getstate = direct.getstate,
getsub = direct.getsub,
getsubpre = direct.getsubpre,
@@ -124,91 +151,125 @@ local nuts = {
getsup = direct.getsup,
getsuppre = direct.getsuppre,
getsurround = direct.getkern,
+ gettop = direct.gettop,
gettotal = direct.gettotal,
+ getusedattributes = direct.getusedattributes,
getvalue = direct.getdata, -- obsolete
getwhd = direct.getwhd,
getwidth = direct.getwidth,
- has_attribute = direct.has_attribute,
- has_dimensions = direct.has_dimensions,
- has_field = direct.has_field,
- has_glyph = direct.has_glyph or direct.first_glyph,
+ getwordrange = direct.getwordrange,
+ getxscale = direct.getxscale,
+ getxyscales = direct.getxyscales,
+ getyscale = direct.getyscale,
+ gluetostring = direct.gluetostring,
+ hasattribute = direct.hasattribute,
+ hasdimensions = direct.hasdimensions,
+ hasfield = direct.hasfield,
+ hasgeometry = direct.hasgeometry,
+ hasglyph = direct.hasglyph,
+ hasglyphoption = direct.hasglyphoption,
hpack = direct.hpack,
hyphenating = direct.hyphenating,
- insert_after = d_insert_after,
- insert_before = d_insert_before,
- is_direct = is_direct,
- is_node = is_node,
- is_nut = direct.is_direct,
- is_zero_glue = direct.is_zero_glue,
- ischar = direct.is_char,
- isprevchar = direct.is_prev_char,
- isnextchar = direct.is_next_char,
- isprevglyph = direct.is_prev_glyph,
- isnextglyph = direct.is_next_glyph,
- isglyph = direct.is_glyph,
+ ignoremathskip = direct.ignoremathskip,
+ insertafter = d_insertafter,
+ insertbefore = d_insertbefore,
+ ischar = direct.ischar,
+ isdirect = isdirect,
+ isglyph = direct.isglyph,
+ isnextchar = direct.isnextchar,
+ isnextglyph = direct.isnextglyph,
+ isnode = isnode,
+ isnut = isdirect,
+ isprevchar = direct.isprevchar,
+ isprevglyph = direct.isprevglyph,
+ iszeroglue = direct.iszeroglue,
+ isnext = direct.isnext,
+ isprev = direct.isprev,
+ isboth = direct.isboth,
kerning = direct.kerning,
- last_node = direct.last_node,
+ lastnode = direct.lastnode,
length = direct.length,
ligaturing = direct.ligaturing,
+ makextensible = direct.makextensible,
migrate = direct.migrate,
- mlist_to_hlist = direct.mlist_to_hlist,
+ mlisttohlist = direct.mlisttohlist,
+ naturalhsize = direct.naturalhsize,
+ naturalwidth = direct.naturalwidth,
new = direct.new,
- protect_glyph = direct.protect_glyph,
- protect_glyphs = direct.protect_glyphs,
- protrusion_skippable = direct.protrusion_skippable,
+ newmathglyph = direct.newmathglyph,
+ patchattributes = direct.patchattributes,
+ prependbeforehead = direct.prependbeforehead,
+ protectglyph = direct.protectglyph,
+ protectglyphs = direct.protectglyphs,
+ protectglyphsnone = direct.protectglyphsnone,
+ protrusionskippable = direct.protrusionskippable,
rangedimensions = direct.rangedimensions,
- getglyphdimensions = direct.getglyphdimensions,
- getkerndimension = direct.getkerndimension,
remove = d_remove_node,
+ removefromlist = direct.removefromlist,
+ repack = direct.repack,
reverse = direct.reverse,
- set_attribute = direct.set_attribute,
- addmargins = direct.addmargins,
- addxymargins = direct.addxymargins,
- setattr = direct.set_attribute,
- setattrs = direct.set_attributes,
+ serialized = direct.serialized,
+ setanchors = direct.setanchors,
+ setattr = direct.setattribute,
+ setattribute = direct.setattribute,
setattributelist = direct.setattributelist,
+ setattributes = direct.setattributes,
setattrlist = direct.setattributelist,
+ setattrs = direct.setattributes,
setboth = direct.setboth,
+ setbottom = direct.setbottom,
setbox = direct.setbox,
setboxglue = direct.setglue,
setchar = direct.setchar,
- setcomponents = direct.setcomponents,
+ setchardict = direct.setchardict,
+ setchoice = direct.setchoice,
+ setclass = direct.setclass,
setdata = direct.setdata,
+ setdegree = direct.setdegree,
+ setdelimiter = direct.setdelimiter,
+ setdenominator = direct.setdenominator,
setdepth = direct.setdepth,
setdir = direct.setdir,
setdirection = direct.setdirection,
setdisc = direct.setdisc,
+ setdiscpart = direct.setdiscpart,
setdiscretionary = direct.setdisc,
setexpansion = direct.setexpansion,
setfam = direct.setfam,
setfield = direct.setfield,
setfont = direct.setfont,
+ setgeometry = direct.setgeometry,
setglue = direct.setglue,
setglyphdata = direct.setglyphdata,
setheight = direct.setheight,
+ setinputfields = direct.setinputfields,
setkern = direct.setkern,
setlang = direct.setlanguage,
setlanguage = direct.setlanguage,
setleader = direct.setleader,
+ setleftdelimiter = direct.setleftdelimiter,
setlink = d_setlink,
setlist = direct.setlist,
+ setmiddledelimiter = direct.setdelimiter,
setnext = direct.setnext,
setnucleus = direct.setnucleus,
- setscale = direct.setscale or direct.setscales,
- setscales = direct.setscales,
+ setnumerator = direct.setnumerator,
setoffsets = direct.setoffsets,
- addxoffset = direct.addxoffset,
- addyoffset = direct.addyoffset,
- setorientation = direct.setorientation,
setoptions = direct.setoptions,
+ setorientation = direct.setorientation,
setpenalty = direct.setpenalty,
setpost = direct.setpost,
setpre = direct.setpre,
setprev = direct.setprev,
+ setprime = direct.setprime,
setreplace = direct.setreplace,
+ setrightdelimiter = direct.setrightdelimiter,
setruledata = direct.setdata, -- obsolete when we have the split
- setscript = direct.getscript,
+ setscale = direct.setscale or direct.setscales,
+ setscales = direct.setscales,
+ setscript = direct.setscript,
setshift = direct.setshift,
+ setspeciallist = direct.setspeciallist,
setsplit = direct.setsplit,
setstate = direct.setstate,
setsub = direct.setsub,
@@ -217,44 +278,47 @@ local nuts = {
setsup = direct.setsup,
setsuppre = direct.setsuppre,
setsurround = direct.setkern,
- setsynctexfields = direct.set_synctex_fields,
setvalue = direct.setdata, -- obsolete
+ settop = direct.settop,
setwhd = direct.setwhd,
setwidth = direct.setwidth,
+ show = direct.show,
slide = d_slide,
- start_of_par = direct.start_of_par,
+ softenhyphens = direct.softenhyphens,
+ startofpar = direct.startofpar,
tail = d_find_tail,
- takeattr = direct.unset_attribute, -- ?
+ takeattr = direct.unsetattribute, -- ?
tonode = tonode,
tonut = tonut,
tostring = direct.tostring,
traverse = d_traverse,
- traverse_char = direct.traverse_char,
- traverse_glyph = direct.traverse_glyph,
- traverse_id = direct.traverse_id,
- traverse_list = direct.traverse_list,
- traverse_content = direct.traverse_content,
- unprotect_glyph = direct.unprotect_glyph,
- unprotect_glyphs = direct.unprotect_glyphs,
- unset_attribute = direct.unset_attribute,
- unset_attributes = direct.unset_attributes,
+ traversechar = direct.traversechar,
+ traversecontent = direct.traversecontent,
+ traverseglyph = direct.traverseglyph,
+ traverseid = direct.traverseid,
+ traverseleader = direct.traverseleader,
+ traverselist = direct.traverselist,
+ unprotectglyph = direct.unprotectglyph,
+ unprotectglyphs = direct.unprotectglyphs,
+ unsetattribute = direct.unsetattribute,
+ unsetattributes = direct.unsetattributes,
usedlist = direct.usedlist,
- uses_font = direct.uses_font,
+ usesfont = direct.usesfont,
+ verticalbreak = direct.verticalbreak,
vpack = direct.vpack,
write = direct.write,
- append = direct.append,
- has_glyph_option = direct.has_glyph_option,
- show = direct.show,
+ xscaled = direct.xscaled,
+ yscaled = direct.yscaled,
}
-nodes.nuts = nuts
+nodes.nuts = nuts
-nodes.is_node = is_node
-nodes.is_direct = is_nut
-nodes.is_nut = is_nut
+nodes.isnode = isnode
+nodes.isdirect = isnut
+nodes.isnut = isnut
-nodes.tonode = tonode
-nodes.tonut = tonut
+nodes.tonode = tonode
+nodes.tonut = tonut
function nuts.delete(head,current)
return d_remove_node(head,current,true)
@@ -272,10 +336,10 @@ function nuts.replace(head,current,new) -- no head returned if false
if head == current then
head = new
end
- d_flush_node(current)
+ d_flushnode(current)
return head, new
else
- d_flush_node(current)
+ d_flushnode(current)
return new
end
end
@@ -307,14 +371,14 @@ end
function nuts.append(head,current,...)
for i=1,select("#",...) do
- head, current = d_insert_after(head,current,(select(i,...)))
+ head, current = d_insertafter(head,current,(select(i,...)))
end
return head, current
end
function nuts.prepend(head,current,...)
for i=1,select("#",...) do
- head, current = d_insert_before(head,current,(select(i,...)))
+ head, current = d_insertbefore(head,current,(select(i,...)))
end
return head, current
end
@@ -361,7 +425,7 @@ function nuts.vianodes(f) return function(n,...) return tonut (f(tonode(n),...))
nodes.vianuts = nuts.vianuts
nodes.vianodes = nuts.vianodes
-function nodes.insert_list_after(h,c,n)
+function nodes.insertlistafter(h,c,n)
local t = n_tail(n)
if c then
local cn = n_getnext(c)
@@ -379,7 +443,7 @@ function nodes.insert_list_after(h,c,n)
return n, t
end
-function nuts.insert_list_after(h,c,n)
+function nuts.insertlistafter(h,c,n)
local t = d_tail(n)
if c then
local cn = d_getnext(c)
@@ -505,7 +569,7 @@ nuts.nestedtracedslide = nestedtracedslide
-- this might move
-local propertydata = direct.get_properties_table(true)
+local propertydata = direct.getpropertiestable(true)
local getattr = nuts.getattr
local setattr = nuts.setattr
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-par.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-par.lmt
index 125c1b687c1..7f2560f03d0 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-par.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-par.lmt
@@ -11,10 +11,10 @@ local stoptiming = statistics.stoptiming
local sequencers = utilities.sequencers
--- This is called a lot! I'm a bit reluctant with this one because it is
--- sensitive for order. In many other callbacks ther eis no action at the
--- tex end but here ... Anyway, it has been around for a while now (2019)
--- and so far I had no need for extensive usage so we're okay.
+-- This is called a lot! I'm a bit reluctant with this one because it is sensitive
+-- for order. In many other callbacks there is no action at the tex end but here ...
+-- Anyway, it has been around for a while now (2019) and so far I had no need for
+-- extensive usage so we're okay.
do
@@ -33,7 +33,7 @@ end
-- Originally this one was meant to deal with the indentation (like turn a box into
-- a skip or prevent it) but that never really was used. The return value still
--- detemines if an indentation box or skip is injected. Will I change that?
+-- determines if an indentation box or skip is injected. Will I change that?
do
@@ -95,6 +95,23 @@ do
end
+-- These are node handlers but fit it the overall paragraph handling so we
+-- hook it into the callback here.
+
+-- do
+
+-- local localboxactions = nodes.tasks.actions("localboxes")
+
+-- function localboxfilter(...)
+-- starttiming(builders)
+-- localboxactions(...)
+-- stoptiming(builders)
+-- end
+
+-- callbacks.register("local_box_filter",localboxfilter,"process local boxes")
+
+-- end
+
-- This means that we now have most callbacks in use, even the ones that I'm not sure
-- about. It also means that with the above enabled we might have performance now at
-- its worst. I can optimize this a little but it's not worth the effort (and added
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-pro.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-pro.lmt
index e736f2b76b6..9ad78bb204b 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-pro.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-pro.lmt
@@ -15,202 +15,140 @@ local nodes = nodes
local tasks = nodes.tasks
local nuts = nodes.nuts
local tonut = nodes.tonut
+local tonode = nodes.tonode
nodes.processors = nodes.processors or { }
local processors = nodes.processors
--- vbox: grouptype: vbox vtop output split_off split_keep | box_type: exactly|aditional
--- hbox: grouptype: hbox adjusted_hbox(=hbox_in_vmode) | box_type: exactly|aditional
+local tasks = nodes.tasks
+
+local report_nodes = logs.reporter("nodes","processors")
-local actions = tasks.actions("processors")
+local countnodes = nuts.countall
do
- local isglyph = nuts.isglyph
- local getnext = nuts.getnext
+ local function reconstruct(head)
+ return ",stream : " .. nodes.listtoutf(head,"",false,nil,true)
+ end
- local utfchar = utf.char
- local concat = table.concat
+ local before = nil
+ local count = 0
+ local show = false
- local n = 0
+ function processors.trace_glyph_run_b(head,groupcode)
+ count = count + 1
+ before = countnodes(head)
+ end
- local function reconstruct(head) -- we probably have a better one
- local t, n, h = { }, 0, head
- while h do
- n = n + 1
- local char, id = isglyph(h)
- if char then -- todo: disc etc
- t[n] = utfchar(char)
- else
- t[n] = "[]"
- end
- h = getnext(h)
- end
- return concat(t)
+ function processors.trace_glyph_run_a(head,groupcode)
+ report_nodes("processors: run %i, group %a, # before %a, # after %s%s",
+ count,groupcode,before,countnodes(head),
+ show and reconstruct(head) or ""
+ )
+ before = false
end
- function processors.tracer(what,head,groupcode,before,after,show)
- if not groupcode then
- groupcode = "unknown"
- elseif groupcode == "" then
- groupcode = "mvl"
- end
- n = n + 1
- if show then
- report_nodes("%s: location %a, group %a, # before %a, # after %s, stream: %s",what,n,groupcode,before,after,reconstruct(head))
+ local prependaction = tasks.prependaction
+ local appendaction = tasks.appendaction
+ local enableaction = tasks.enableaction
+ local disableaction = tasks.disableaction
+
+ trackers.register("nodes.callbacks", function(v)
+ if not v then
+ disableaction("processors","nodes.processors.trace_glyph_run_b")
+ disableaction("processors","nodes.processors.trace_glyph_run_a")
+ elseif before == nil then
+ prependaction("processors","before","nodes.processors.trace_glyph_run_b",nil,"nonut","enabled")
+ appendaction ("processors","after", "nodes.processors.trace_glyph_run_a",nil,"nonut","enabled")
+ before = false
else
- report_nodes("%s: location %a, group %a, # before %a, # after %s",what,n,groupcode,before,after)
+ enableaction("processors","nodes.processors.trace_glyph_run_b")
+ enableaction("processors","nodes.processors.trace_glyph_run_a")
+ show = v == "detail"
end
- end
+ end)
end
-processors.enabled = true -- this will become a proper state (like trackers)
-
-do
-
- -- local has_glyph = nodes.has_glyph
- local count_nodes = nodes.countall
+local glyph_run = tasks.actions("processors")
+local pre_linebreak_filter = tasks.actions("paragraphs")
+local post_linebreak_filter = tasks.actions("finalizers")
- local texget = tex.get
+processors.glyph_run = glyph_run
+processors.pre_linebreak_filter = pre_linebreak_filter
+processors.post_linebreak_filter = post_linebreak_filter
- local tracer = processors.tracer
+callbacks.register("glyph_run", glyph_run, "glyph processing")
+callbacks.register("pre_linebreak_filter", pre_linebreak_filter, "horizontal manipulations (before par break)")
+callbacks.register("post_linebreak_filter",post_linebreak_filter,"horizontal manipulations (after par break)")
- -- We've set \hlistcallbackmode=1 so glyph checking happens at the other end!
-
- local function pre_linebreak_filter(head,groupcode)
- -- local found = force_processors or has_glyph(head)
- -- if found then
- if trace_callbacks then
- local before = count_nodes(head,true)
- head = actions(head,groupcode)
- local after = count_nodes(head,true)
- tracer("pre_linebreak",head,groupcode,before,after,true)
- else
- head = actions(head,groupcode)
- end
- -- elseif trace_callbacks then
- -- local n = count_nodes(head,false)
- -- tracer("pre_linebreak",head,groupcode,n,n)
- -- end
- return head
- end
+do
+ local hpack = nodes.hpack
- local function hpack_filter(head,groupcode,size,packtype,direction,attributes)
- -- local found = force_processors or has_glyph(head)
- -- if found then
- --
- -- yes or no or maybe an option
- --
- if not direction then
- direction = texget("textdir")
- end
- --
- if trace_callbacks then
- local before = count_nodes(head,true)
- head = actions(head,groupcode,size,packtype,direction,attributes)
- local after = count_nodes(head,true)
- tracer("hpack",head,groupcode,before,after,true)
- else
- head = actions(head,groupcode,size,packtype,direction,attributes)
- end
- -- elseif trace_callbacks then
- -- local n = count_nodes(head,false)
- -- tracer("hpack",head,groupcode,n,n)
- -- end
- return head
+ function nodes.fullhpack(head,...)
+ return hpack((glyph_run(head)),...)
end
- processors.pre_linebreak_filter = pre_linebreak_filter
- processors.hpack_filter = hpack_filter
-
- do
-
- local hpack = nodes.hpack
-
- function nodes.fullhpack(head,...)
- return hpack((hpack_filter(head)),...)
- end
+ local hpack = nuts.hpack
+ function nuts.fullhpack(head,...)
+ return hpack(tonut(glyph_run(tonode(head))),...)
end
+end
- do
-
- local hpack = nuts.hpack
-
- function nuts.fullhpack(head,...)
- return hpack(tonut(hpack_filter(tonode(head))),...)
- end
+do
- end
+ ----- texnest = tex.nest
+ ----- getnest = tex.getnest
- callbacks.register('pre_linebreak_filter', pre_linebreak_filter, "horizontal manipulations (before par break)")
- callbacks.register('hpack_filter' , hpack_filter, "horizontal manipulations (before hbox creation)")
+ local getlist = nodes.getlist -- still nodes !
+ local setlist = nodes.setlist
+ local getsubtype = nodes.getsubtype
-end
+ local linelist_code = nodes.listcodes.line
-do
- -- Beware, these are packaged boxes so no first_glyph test needed. Maybe some day I'll add a hash
- -- with valid groupcodes. Watch out, much can pass twice, for instance vadjust passes two times,
+ local lineactions = tasks.actions("contributers")
+ local adjustactions = tasks.actions("adjusters")
- local actions = tasks.actions("finalizers") -- head, where
- local count_nodes = nodes.countall
+ -- this was the "contributers" callback but we changed the interface
- local tracer = processors.tracer
+ -- historically we use a different order than the callback
- local function post_linebreak_filter(head,groupcode)
- if trace_callbacks then
- local before = count_nodes(head,true)
- head = actions(head,groupcode)
- local after = count_nodes(head,true)
- tracer("post_linebreak",head,groupcode,before,after,true)
- else
- head = actions(head,groupcode)
+ function processors.append_line_filter(head,tail,where,index)
+ if tail then
+ if where == "box" then
+ -- here we don't return something, we operate on the line (content)
+ if getsubtype(tail) == linelist_code then -- always
+ local list = getlist(tail)
+ if list then
+ local result = lineactions(list,where,tail,index) -- tail is parent of list
+ if result and result ~= list then
+ setlist(tail,result)
+ end
+ end
+ end
+ elseif where == "postadjust" or where == "preadjust" then
+ -- we use the same order as for lines
+ return adjustactions(head,where,tail,index)
+ end
end
- return head
end
- processors.post_linebreak_filter = post_linebreak_filter
-
- callbacks.register("post_linebreak_filter", post_linebreak_filter,"horizontal manipulations (after par break)")
+ callbacks.register("append_line_filter", processors.append_line_filter, "things done with lines")
end
do
- ----- texnest = tex.nest
- local getnest = tex.getnest
-
- local getlist = nuts.getlist
- local setlist = nuts.setlist
- local getsubtype = nuts.getsubtype
-
- local linelist_code = nodes.listcodes.line
+ local actions = tasks.actions("alignments")
- local actions = tasks.actions("contributers")
-
- function processors.contribute_filter(groupcode)
- if groupcode == "box" then -- "pre_box"
- local whatever = getnest()
- if whatever then
- local line = whatever.tail
- if line then
- line = tonut(line)
- if getsubtype(line) == linelist_code then
- local head = getlist(line)
- if head then
- local result = actions(head,groupcode,line)
- if result and result ~= head then
- setlist(line,result)
- end
- end
- end
- end
- end
- end
+ function processors.alignment_filter(head,where,attr,preamble)
+ -- todo: add timing
+ actions(head,where,attr,preamble)
end
- callbacks.register("contribute_filter", processors.contribute_filter,"things done with lines")
+ callbacks.register("alignment_filter", processors.alignment_filter, "things done with alignments")
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-ref.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-ref.lmt
index c02a37dd107..15c35cba992 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-ref.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-ref.lmt
@@ -7,15 +7,11 @@ if not modules then modules = { } end modules ['node-ref'] = {
license = "see context related readme files"
}
--- We supported pdf right from the start and in mkii this has resulted in
--- extensive control over the links. Nowadays pdftex provides a lot more
--- control over margins but as mkii supports multiple backends we stuck to
--- our own mechanisms. In mkiv again we implement our own handling. Eventually
--- we will even disable the pdf primitives.
-
--- helper, will end up in luatex
-
--- is grouplevel still used?
+-- We supported pdf right from the start and in mkii this has resulted in extensive
+-- control over the links. Nowadays pdftex provides a lot more control over margins
+-- but as mkii supports multiple backends we stuck to our own mechanisms. In mkiv
+-- again we implement our own handling. Eventually we will even disable the pdf
+-- primitives.
local tonumber = tonumber
local concat = table.concat
@@ -46,9 +42,22 @@ local report_reference = logs.reporter("backend","references")
local report_destination = logs.reporter("backend","destinations")
local report_area = logs.reporter("backend","areas")
+local texiscount = tex.iscount
local texsetcount = tex.setcount
----- texsetattribute = tex.setattribute
+local injectreference = backends.nodeinjections.reference
+local injectdestination = backends.nodeinjections.destination
+local prerollreference = backends.codeinjections.prerollreference
+
+updaters.register("backends.injections.latebindings",function()
+ injectreference = backends.nodeinjections.reference
+ injectdestination = backends.nodeinjections.destination
+ prerollreference = backends.codeinjections.prerollreference
+end)
+
+local c_lastreferenceattribute = texiscount("lastreferenceattribute")
+
local nuts = nodes.nuts
local nodepool = nuts.pool
@@ -80,7 +89,8 @@ local getdimensions = nuts.dimensions
local getrangedimensions = nuts.rangedimensions
local traverse = nuts.traverse
local find_node_tail = nuts.tail
-local start_of_par = nuts.start_of_par
+
+local startofpar = nuts.startofpar
local nodecodes = nodes.nodecodes
local gluecodes = nodes.gluecodes
@@ -99,7 +109,9 @@ local dir_code = nodecodes.dir
local par_code = nodecodes.par
local leftskip_code = gluecodes.leftskip
+local lefthang_code = gluecodes.lefthangskip
local rightskip_code = gluecodes.rightskip
+local righthang_code = gluecodes.righthangskip
local parfillleftskip_code = gluecodes.parfillleftskip
local parfillskip_code = gluecodes.parfillskip
@@ -109,7 +121,7 @@ local new_rule = nodepool.rule
local new_kern = nodepool.kern
local new_hlist = nodepool.hlist
-local flush_node = nuts.flush
+local flushnode = nuts.flush
local tosequence = nodes.tosequence
@@ -147,7 +159,7 @@ local inject_areas do
local v = vpack_list(start) -- use helper but happens seldom anyway so ...
local w, h, d = getwhd(v)
setlist(v) -- not needed
- flush_node(v)
+ flushnode(v)
if temp then
setnext(stop,temp)
end
@@ -237,7 +249,7 @@ local inject_areas do
end
end
- -- Setting these once and not passign them each nested call is faster and this injector is
+ -- Setting these once and not passing them each nested call is faster and this injector is
-- actually one of the more costly calls in a run (when we have lots of references to
-- check) and it's also a bti less code.
@@ -304,7 +316,7 @@ local inject_areas do
local function inject(head,skip,parent,pardir,txtdir)
local first, last, firstdir, reference
local current = head
- while current do
+ while current do -- tod: check with loop
local id = getid(current)
if id == hlist_code or id == vlist_code then
local r = getattr(current,attribute)
@@ -352,15 +364,16 @@ local inject_areas do
txtdir = not pop and direction -- we might need a stack
goto NEXT
elseif id == par_code then
- if start_of_par(current) then
+ if startofpar(current) then
pardir = getdirection(current)
end
goto NEXT
elseif id == glue_code then
+ -- local skiptype = ... 0=regular 1=left 2=right
local subtype = getsubtype(current)
- if subtype == leftskip_code or subtype == parfillleftskip_code then
+ if subtype == leftskip_code or subtype == lefthang_code or subtype == parfillleftskip_code then
goto NEXT
- elseif subtype == rightskip_code or subtype == parfillskip_code then
+ elseif subtype == rightskip_code or subtype == righthang_code or subtype == parfillskip_code then
if reference and (done[reference] or 0) == 0 then
head, current = inject_range(head,first,last,reference,parent,pardir,firstdir)
reference = nil
@@ -393,8 +406,8 @@ local inject_areas do
-- print("!!!!!!!!")
end
else
- -- todo: safeguard when we have a glyph or dics or ... so we might as well
- -- then scan for all possibel content nodes
+ -- todo: safeguard when we have a glyph or disc or ... so we might as well
+ -- then scan for all possible content nodes
reference = r
first = current
last = current
@@ -447,6 +460,7 @@ local colorize, justadd do
str = str .. " "
shift = (shift or 2) * exheight
end
+ -- todo: virtual rule, zero width hbox, offsets
local text = typesetters.tohpack(str,infofont)
local rule = new_rule(emwidth/5,4*exheight,3*exheight)
setshift(text,shift)
@@ -484,12 +498,12 @@ local colorize, justadd do
height = 65536/2
depth = height
end
+ -- todo: use virtual rules
local rule = setcoloring(new_rule(width,height,depth),1,u_color,u_transparency) -- gray color model
if width < 0 then
local kern = new_kern(width)
setwidth(rule,-width)
- setnext(kern,rule)
- setprev(rule,kern)
+ setlink(kern,rule)
return kern
elseif sr and sr ~= "" then
local text = addstring(what,sr,shift)
@@ -519,6 +533,8 @@ local nofreferences = 0
do
+ -- here we can't use attributes.registervalue etc (afaiks)
+
local stack = { }
local done = { }
local attribute = attributes.private('reference')
@@ -538,7 +554,7 @@ do
-- so some part of the backend work is already done here
stack[topofstack] = { r, h or false, d or false, codeinjections.prerollreference(r) }
-- texsetattribute(attribute,topofstack) -- todo -> at tex end
- texsetcount("lastreferenceattribute",topofstack)
+ texsetcount(c_lastreferenceattribute,topofstack)
end
function references.get(n) -- not public so functionality can change
@@ -563,7 +579,7 @@ do
if depth < dp then depth = dp end
end
-- logs.report("temp","used: ht=%p dp=%p",height,depth)
- local annot = nodeinjections.reference(width,height,depth,set,resolved.mesh)
+ local annot = injectreference(reference,width,height,depth,set,resolved.mesh)
if annot then
annot = tonut(annot) -- todo
nofreferences = nofreferences + 1
@@ -658,6 +674,8 @@ local nofdestinations = 0
do
+ -- here we can use attributes.registervalue etc
+
local stack = { }
local done = { }
local attribute = attributes.private('destination')
@@ -742,13 +760,13 @@ do
end
end
nofdestinations = nofdestinations + 1
- local annot = nodeinjections.destination(width,height,depth,name,view)
+ local annot = injectdestination(width,height,depth,name,view)
if annot then
annot = tonut(annot) -- obsolete soon
if result then
setlink(current,annot)
else
- result = annot
+ result = annot
end
current = find_node_tail(annot)
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-res.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-res.lmt
index fbb1d1fe235..6fed08b6393 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-res.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-res.lmt
@@ -8,6 +8,7 @@ if not modules then modules = { } end modules ['node-res'] = {
local type, next, rawset = type, next, rawset
local gmatch, format = string.gmatch, string.format
+local round = math.round
--[[ldx--
<p>The next function is not that much needed but in <l n='context'/> we use
@@ -73,12 +74,13 @@ local setshift = nuts.setshift
local setwidth = nuts.setwidth
local setsubtype = nuts.setsubtype
local setleader = nuts.setleader
+local setclass = nuts.setclass
local setdata = nuts.setdata
-local setruledata = nuts.setruledata
+local setoffsets = nuts.setoffsets
local setvalue = nuts.setvalue
-local copy_nut = nuts.copy_only or nuts.copy
+local copy_nut = nuts.copyonly
local new_nut = nuts.new
local flush_nut = nuts.flush
@@ -181,10 +183,14 @@ local lefttoright_code = nodes.dirvalues.lefttoright
local rule = register_nut(new_nut(rule_code)) -- setdirection(rule, lefttoright_code)
local emptyrule = register_nut(new_nut(rule_code,rulecodes.empty)) -- setdirection(rule, lefttoright_code)
+local strutrule = register_nut(new_nut(rule_code,rulecodes.strut)) -- setdirection(rule, lefttoright_code)
local userrule = register_nut(new_nut(rule_code,rulecodes.user)) -- setdirection(rule, lefttoright_code)
local outlinerule = register_nut(new_nut(rule_code,rulecodes.outline)) -- setdirection(rule, lefttoright_code)
-local hlist = register_nut(new_nut(nodecodes.hlist)) setdirection(hlist,lefttoright_code)
-local vlist = register_nut(new_nut(nodecodes.vlist)) setdirection(vlist,lefttoright_code)
+local imagerule = register_nut(new_nut(rule_code,rulecodes.image)) -- setdirection(rule, lefttoright_code)
+local boxrule = register_nut(new_nut(rule_code,rulecodes.box)) -- setdirection(rule, lefttoright_code)
+local virtualrule = register_nut(new_nut(rule_code,rulecodes.virtual)) -- setdirection(rule, lefttoright_code)
+local hlist = register_nut(new_nut(nodecodes.hlist)) setdirection(hlist,lefttoright_code)
+local vlist = register_nut(new_nut(nodecodes.vlist)) setdirection(vlist,lefttoright_code)
function nutpool.glyph(fnt,chr)
local n = copy_nut(glyph)
@@ -355,6 +361,14 @@ function nutpool.emptyrule(width,height,depth) -- w/h/d == nil will let them ada
return n
end
+function nutpool.strutrule(width,height,depth) -- w/h/d == nil will let them adapt
+ local n = copy_nut(strutrule)
+ if width or height or depth then
+ setwhd(n,width,height,depth)
+ end
+ return n
+end
+
function nutpool.userrule(width,height,depth) -- w/h/d == nil will let them adapt
local n = copy_nut(userrule)
if width or height or depth then
@@ -369,12 +383,37 @@ function nutpool.outlinerule(width,height,depth,line) -- w/h/d == nil will let t
setwhd(n,width,height,depth)
end
if line then
- setruledata(n,line)
+ setdata(n,round(line)) -- has to be an integer
+ end
+ return n
+end
+
+function nutpool.imagerule(width,height,depth) -- w/h/d == nil will let them adapt
+ local n = copy_nut(imagerule)
+ if width or height or depth then
+ setwhd(n,width,height,depth)
+ end
+ return n
+end
+
+function nutpool.boxrule(width,height,depth) -- w/h/d == nil will let them adapt
+ local n = copy_nut(boxrule)
+ if width or height or depth then
+ setwhd(n,width,height,depth)
end
return n
end
-function nutpool.leader(width,list)
+function nutpool.virtualrule(width,height,depth) -- w/h/d == nil will let them adapt
+ local n = copy_nut(virtualrule)
+ if width or height or depth then
+ setdata(n,width)
+ setoffsets(n,nil,nil,height,depth)
+ end
+ return n
+end
+
+local function new_leader(width,list)
local n = copy_nut(cleader)
if width then
setwidth(n,width)
@@ -385,6 +424,12 @@ function nutpool.leader(width,list)
return n
end
+nutpool.leader = new_leader
+
+function nodepool.leader(width,list)
+ return tonode(new_leader(width,list and tonut(list)))
+end
+
function nutpool.leftmarginkern(glyph,width)
local n = copy_nut(left_margin_kern)
if not glyph then
@@ -419,11 +464,20 @@ function nutpool.temp()
return copy_nut(temp)
end
-function nutpool.noad() return copy_nut(noad) end
+function nutpool.noad(class)
+ local n = copy_nut(noad)
+ if class then
+ setsubtype(n,class)
+ setclass(n,class,class,class)
+ end
+ return n
+end
+
+-- maybe also the rest wrt subtype and class
+
function nutpool.delimiter() return copy_nut(delimiter) end nutpool.delim = nutpool.delimiter
function nutpool.fence() return copy_nut(fence) end
function nutpool.submlist() return copy_nut(submlist) end
-function nutpool.noad() return copy_nut(noad) end
function nutpool.fence() return copy_nut(fence) end
function nutpool.accent() return copy_nut(accent) end
function nutpool.radical() return copy_nut(radical) end
@@ -484,6 +538,7 @@ end
-- housekeeping
local function cleanup(nofboxes) -- todo
+ -- this is bonus, not really needed
local tracers = nodes.tracers
if tracers and tracers.steppers then -- to be resolved
tracers.steppers.reset() -- todo: make a registration subsystem
@@ -537,27 +592,42 @@ statistics.register("node memory usage", function() -- comes after cleanup !
end
end)
-lua.registerfinalizer(cleanup, "cleanup reserved nodes")
+lua.registerinitexfinalizer(cleanup, "cleanup reserved nodes")
do
- local glyph = glyph
- local traverse_id = nuts.traverse_id
+ local glyph = glyph
+ local traverseid = nuts.traverseid
- local traversers = table.setmetatableindex(function(t,k)
- local v = traverse_id(type(k) == "number" and k or nodecodes[k],glyph)
+ local traversers = table.setmetatableindex(function(t,k)
+ local v = traverseid(type(k) == "number" and k or nodecodes[k],glyph)
+ t[k] = v
+ return v
+ end)
+
+ local treversers = table.setmetatableindex(function(t,k)
+ local v = traverseid(type(k) == "number" and k or nodecodes[k],glyph,true)
t[k] = v
return v
end)
-- these are special:
- traversers.node = nuts.traverse (glyph)
- traversers.char = nuts.traverse_char (glyph)
- traversers.glyph = nuts.traverse_glyph (glyph)
- traversers.list = nuts.traverse_list (glyph)
- traversers.content = nuts.traverse_content(glyph)
+ traversers.node = nuts.traverse (glyph)
+ traversers.char = nuts.traversechar (glyph)
+ traversers.glyph = nuts.traverseglyph (glyph)
+ traversers.list = nuts.traverselist (glyph)
+ traversers.content = nuts.traversecontent(glyph)
+ traversers.leader = nuts.traverseleader (glyph)
+
+ treversers.node = nuts.traverse (glyph,true)
+ treversers.char = nuts.traversechar (glyph,true)
+ treversers.glyph = nuts.traverseglyph (glyph,true)
+ treversers.list = nuts.traverselist (glyph,true)
+ treversers.content = nuts.traversecontent(glyph,true)
+ treversers.leader = nuts.traverseleader (glyph,true)
nuts.traversers = traversers
+ nuts.treversers = treversers
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-rul.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-rul.lmt
index a95c5272d36..7d638e7cd63 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-rul.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-rul.lmt
@@ -55,15 +55,15 @@ local getruledata = nuts.getruledata
local isglyph = nuts.isglyph
-local flushlist = nuts.flush_list
-local effective_glue = nuts.effective_glue
-local insert_node_after = nuts.insert_after
-local insert_node_before = nuts.insert_before
+local flushlist = nuts.flushlist
+local effectiveglue = nuts.effectiveglue
+local insertnodeafter = nuts.insertafter
+local insertnodebefore = nuts.insertbefore
local find_tail = nuts.tail
local setglue = nuts.setglue
local getrangedimensions = nuts.rangedimensions
local hpack_nodes = nuts.hpack
-local copy_list = nuts.copy_list
+local copylist = nuts.copylist
local nextlist = nuts.traversers.list
local nextglue = nuts.traversers.glue
@@ -111,6 +111,10 @@ local a_colormodel = privateattributes('colormodel')
local a_linefiller = privateattributes("linefiller")
local a_viewerlayer = privateattributes("viewerlayer")
+local registervalue = attributes.registervalue
+local getvalue = attributes.getvalue
+local texsetattribute = tex.setattribute
+
local v_both = variables.both
local v_left = variables.left
local v_right = variables.right
@@ -126,573 +130,575 @@ local dimenfactor = fonts.helpers.dimenfactor
local splitdimen = number.splitdimen
local setmetatableindex = table.setmetatableindex
-local magicconstants = tex.magicconstants
-local running = magicconstants.running
+local runningrule = tex.magicconstants.runningrule
local striprange = nuts.striprange
local processwords = nuts.processwords
local setcoloring = nuts.colors.set
-local rules = nodes.rules or { }
-nodes.rules = rules
-rules.data = rules.data or { }
-
-local nutrules = nuts.rules or { }
-nuts.rules = nutrules -- not that many
+do
-storage.register("nodes/rules/data", rules.data, "nodes.rules.data")
+ local rules = nodes.rules or { }
+ nodes.rules = rules
+ -- rules.data = rules.data or { }
-local data = rules.data
+ local nutrules = nuts.rules or { }
+ nuts.rules = nutrules -- not that many
--- we implement user rules here as it takes less code this way
+ -- we implement user rules here as it takes less code this way
-local function usernutrule(t,noattributes)
- local r = new_userrule(t.width or 0,t.height or 0,t.depth or 0)
- if noattributes == false or noattributes == nil then
- -- avoid fuzzy ones
- else
- setattrlist(r,true)
+ local function usernutrule(t,noattributes)
+ local r = new_userrule(t.width or 0,t.height or 0,t.depth or 0)
+ if noattributes == false or noattributes == nil then
+ -- avoid fuzzy ones
+ else
+ setattrlist(r,true)
+ end
+ properties[r] = t
+ return r
end
- properties[r] = t
- return r
-end
-nutrules.userrule = usernutrule
+ nutrules.userrule = usernutrule
-local function userrule(t,noattributes)
- return tonode(usernutrule(t,noattributes))
-end
+ local function userrule(t,noattributes)
+ return tonode(usernutrule(t,noattributes))
+ end
-rules.userrule = userrule
-local ruleactions = { }
+ rules.userrule = userrule
+ local ruleactions = { }
-rules .ruleactions = ruleactions
-nutrules.ruleactions = ruleactions -- convenient
+ rules .ruleactions = ruleactions
+ nutrules.ruleactions = ruleactions -- convenient
-local function mathaction(n,h,v,what)
- local font = getruledata(n)
- local actions = fontresources[font].mathruleactions
- if actions then
- local action = actions[what]
- if action then
- action(n,h,v,font)
+ local function mathaction(n,h,v,what)
+ local font = getruledata(n)
+ local actions = fontresources[font].mathruleactions
+ if actions then
+ local action = actions[what]
+ if action then
+ action(n,h,v,font)
+ end
end
end
-end
-local function mathradical(n,h,v)
- mathaction(n,h,v,"radicalaction")
-end
+ local function mathradical(n,h,v)
+ mathaction(n,h,v,"radicalaction")
+ end
-local function mathrule(n,h,v)
- mathaction(n,h,v,"hruleaction")
-end
+ local function mathrule(n,h,v)
+ mathaction(n,h,v,"hruleaction")
+ end
-local x
+ local x
-local function useraction(n,h,v)
- local p = properties[n]
- if p then
- local i = p.type or "draw"
- local a = ruleactions[i]
- if a then
- a(p,h,v,i,n)
+ local function useraction(n,h,v)
+ local p = properties[n]
+ if p then
+ local i = p.type or "draw"
+ local a = ruleactions[i]
+ if a then
+ a(p,h,v,i,n)
+ end
end
end
-end
-local subtypeactions = {
- [rulecodes.user] = useraction,
- [rulecodes.over] = mathrule,
- [rulecodes.under] = mathrule,
- [rulecodes.fraction] = mathrule,
- [rulecodes.radical] = mathradical,
-}
+ local subtypeactions = {
+ [rulecodes.user] = useraction,
+ [rulecodes.over] = mathrule,
+ [rulecodes.under] = mathrule,
+ [rulecodes.fraction] = mathrule,
+ [rulecodes.radical] = mathradical,
+ }
-function rules.process(n,h,v)
- local n = tonut(n) -- already a nut
- local s = getsubtype(n)
- local a = subtypeactions[s]
- if a then
- a(n,h,v)
+ function rules.process(n,h,v)
+ local n = tonut(n) -- already a nut
+ local s = getsubtype(n)
+ local a = subtypeactions[s]
+ if a then
+ a(n,h,v)
+ end
end
-end
---
+ local trace_ruled = false trackers.register("nodes.rules", function(v) trace_ruled = v end)
+ local report_ruled = logs.reporter("nodes","rules")
+ local enabled = false
-local trace_ruled = false trackers.register("nodes.rules", function(v) trace_ruled = v end)
-local report_ruled = logs.reporter("nodes","rules")
-
-function rules.define(settings)
- local nofdata = #data + 1
- data[nofdata] = settings
- local text = settings.text
- if text then
- local b = nuts.takebox(text)
- if b then
- nodepool.register(b)
- settings.text = getlist(b)
- else
- settings.text = nil
- end
- end
- return nofdata
-end
+ local texgetattribute = tex.getattribute
+ local unsetvalue = attributes.unsetvalue
-local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but acceptable for this purpose
- local font = nil
- local char, id = isglyph(f)
- if char then
- font = id
- elseif id == hlist_code then
- font = getattr(f,a_runningtext)
- end
- if not font then
- -- saveguard ... we need to deal with rules and so (math)
- return head
- end
- local r, m
- if strip then
- if trace_ruled then
- local before = n_tosequence(f,l,true)
- f, l = striprange(f,l)
- local after = n_tosequence(f,l,true)
- report_ruled("range stripper, before %a, after %a",before,after)
- else
- f, l = striprange(f,l)
+ -- The setter is now the performance bottleneck but it is no longer
+ -- limited to a certain number of cases before we cycle resources.
+
+ function rules.set(settings)
+ if not enabled then
+ enableaction("shipouts","nodes.rules.handler")
+ enabled = true
end
- end
- if not f then
- return head
- end
- local wd, ht, dp = getrangedimensions(parent,f,getnext(l))
- local method = d.method
- local empty = d.empty == v_yes
- local offset = d.offset
- local dy = d.dy
- local order = d.order
- local max = d.max
- local mp = d.mp
- local rulethickness = d.rulethickness
- local unit = d.unit
- local ma = d.ma
- local ca = d.ca
- local ta = d.ta
- local colorspace = ma > 0 and ma or getattr(f,a_colormodel) or 1
- local color = ca > 0 and ca or getattr(f,a_color)
- local transparency = ta > 0 and ta or getattr(f,a_transparency)
- local foreground = order == v_foreground
- local layer = getattr(f,a_viewerlayer)
- local e = dimenfactor(unit,font) -- what if no glyph node
- local rt = tonumber(rulethickness)
- if rt then
- rulethickness = e * rulethickness / 2
- else
- local n, u = splitdimen(rulethickness)
- if n and u then -- we need to intercept ex and em and % and ...
- rulethickness = n * dimenfactor(u,fontdata[font]) / 2
- else
- rulethickness = 1/5
+ local text = settings.text
+ if text then
+ settings.text = tonut(text)
+ -- nodepool.register(text) -- todo: have a cleanup hook
end
- end
- --
- if level > max then
- level = max
- end
- if method == 0 then -- center
- offset = 2*offset
- m = (offset+(level-1)*dy)*e/2 + rulethickness/2
- else
- m = 0
+ -- todo: only when explicitly enabled
+ local attr = texgetattribute(a_ruled)
+ if attr ~= unsetvalue then
+ settings.nestingvalue = attr
+ settings.nestingdata = getvalue(a_ruled,attr) -- so still accessible when we wipe
+ end
+ texsetattribute(a_ruled,registervalue(a_ruled,settings))
end
- local function inject(r,wd,ht,dp)
- if layer then
- setattr(r,a_viewerlayer,layer)
+ attributes.setcleaner(a_ruled,function(t)
+ local text = t.text
+ if text then
+ flushlist(text)
+ end
+ end)
+
+ -- we could check the passed level on the real one ... (no need to pass level)
+
+ local function flush_ruled(head,f,l,d,level,parent,strip) -- not that fast but acceptable for this purpose
+ local level = d.stack or d.level or 1
+ if level > d.max then
+ -- todo: trace message
+ return head
+ end
+ local font = nil
+ local char, id = isglyph(f)
+ if char then
+ font = id
+ elseif id == hlist_code then
+ font = getattr(f,a_runningtext)
+ end
+ if not font then
+ -- saveguard ... we need to deal with rules and so (math)
+ return head
end
- if empty then
- head = insert_node_before(head,f,r)
- setlink(r,getnext(l))
- setprev(f)
- setnext(l)
- flushlist(f)
+ local r, m
+ if strip then
+ if trace_ruled then
+ local before = n_tosequence(f,l,true)
+ f, l = striprange(f,l)
+ local after = n_tosequence(f,l,true)
+ report_ruled("range stripper, before %a, after %a",before,after)
+ else
+ f, l = striprange(f,l)
+ end
+ end
+ if not f then
+ return head
+ end
+ local wd, ht, dp = getrangedimensions(parent,f,getnext(l))
+ local method = d.method
+ local empty = d.empty == v_yes
+ local offset = d.offset
+ local dy = d.dy
+ local order = d.order
+ local max = d.max
+ local mp = d.mp
+ local rulethickness = d.rulethickness
+ local unit = d.unit
+ local ma = d.ma
+ local ca = d.ca
+ local ta = d.ta
+ local colorspace = ma > 0 and ma or getattr(f,a_colormodel) or 1
+ local color = ca > 0 and ca or getattr(f,a_color)
+ local transparency = ta > 0 and ta or getattr(f,a_transparency)
+ local foreground = order == v_foreground
+ local layer = getattr(f,a_viewerlayer)
+ local e = dimenfactor(unit,font) -- what if no glyph node
+ local rt = tonumber(rulethickness)
+ if rt then
+ rulethickness = e * rulethickness / 2
else
- local k = new_kern(-wd)
- if foreground then
- insert_node_after(head,l,k)
- insert_node_after(head,k,r)
- l = r
+ local n, u = splitdimen(rulethickness)
+ if n and u then -- we need to intercept ex and em and % and ...
+ rulethickness = n * dimenfactor(u,fontdata[font]) / 2
else
- head = insert_node_before(head,f,r)
- insert_node_after(head,r,k)
+ rulethickness = 1/5
end
end
- if trace_ruled then
- report_ruled("level %a, width %p, height %p, depth %p, nodes %a, text %a",
- level,wd,ht,dp,n_tostring(f,l),n_tosequence(f,l,true))
+ --
+ if level > max then
+ level = max
+ end
+ if method == 0 then -- center
+ offset = 2*offset
+ m = (offset+(level-1)*dy)*e/2 + rulethickness/2
+ else
+ m = 0
end
- end
- if mp and mp ~= "" then
- local r = usernutrule {
- width = wd,
- height = ht,
- depth = dp,
- type = "mp",
- factor = e,
- offset = offset,
- line = rulethickness,
- data = mp,
- ma = colorspace,
- ca = color,
- ta = transparency,
- }
- inject(r,wd,ht,dp)
- else
- local tx = d.text
- if tx then
- local l = copy_list(tx)
- if d["repeat"] == v_yes then
- l = new_leader(wd,l)
- setattrlist(l,tx)
+ local function inject(r,wd,ht,dp)
+ if layer then
+ setattr(r,a_viewerlayer,layer)
end
- l = hpack_nodes(l,wd,"exactly")
- inject(l,wd,ht,dp)
+ if empty then
+ head = insertnodebefore(head,f,r)
+ setlink(r,getnext(l))
+ setprev(f)
+ setnext(l)
+ flushlist(f)
+ else
+ local k = new_kern(-wd)
+ if foreground then
+ insertnodeafter(head,l,k)
+ insertnodeafter(head,k,r)
+ l = r
+ else
+ head = insertnodebefore(head,f,r)
+ insertnodeafter(head,r,k)
+ end
+ end
+ if trace_ruled then
+ report_ruled("level %a, width %p, height %p, depth %p, nodes %a, text %a",
+ level,wd,ht,dp,n_tostring(f,l),n_tosequence(f,l,true))
+ end
+ end
+
+ if mp and mp ~= "" then
+ local r = usernutrule {
+ width = wd,
+ height = ht,
+ depth = dp,
+ type = "mp",
+ factor = e,
+ offset = offset - (level-1)*dy, -- br ... different direction
+ line = rulethickness,
+ data = mp,
+ ma = colorspace,
+ ca = color,
+ ta = transparency,
+ }
+ inject(r,wd,ht,dp)
else
- for i=1,level do
- local hd = (offset+(i-1)*dy)*e - m
+ local tx = d.text
+ if tx then
+ local l = copylist(tx)
+ if d["repeat"] == v_yes then
+ l = new_leader(wd,l)
+ setattrlist(l,tx)
+ end
+ l = hpack_nodes(l,wd,"exactly")
+ inject(l,wd,ht,dp)
+ else
+ local hd = (offset+(level-1)*dy)*e - m
local ht = hd + rulethickness
local dp = -hd + rulethickness
inject(setcoloring(new_rule(wd,ht,dp),colorspace,color,transparency),wd,ht,dp)
end
end
+ return head
end
- return head
-end
-
-rules.handler = function(head)
- return processwords(a_ruled,data,flush_ruled,head)
-end
-
-function rules.enable()
- enableaction("shipouts","nodes.rules.handler")
-end
-local trace_shifted = false trackers.register("nodes.shifting", function(v) trace_shifted = v end)
+ rules.handler = function(head)
+ local data = attributes.values[a_ruled]
+ --or-- local data = getvalues(a_ruled)
+ if data then
+ head = processwords(a_ruled,data,flush_ruled,head)
-local report_shifted = logs.reporter("nodes","shifting")
+ end
+ return head
+ end
-local a_shifted = attributes.private('shifted')
+ implement {
+ name = "setrule",
+ actions = rules.set,
+ arguments = {
+ {
+ { "continue" },
+ { "unit" },
+ { "order" },
+ { "level", "integer" },
+ { "stack", "integer" },
+ { "method", "integer" },
+ { "offset", "number" },
+ { "rulethickness" },
+ { "dy", "number" },
+ { "max", "number" },
+ { "ma", "integer" },
+ { "ca", "integer" },
+ { "ta", "integer" },
+ { "mp" },
+ { "empty" },
+ { "text", "box" },
+ { "repeat" },
+ }
+ }
+ }
-local shifts = nodes.shifts or { }
-nodes.shifts = shifts
-shifts.data = shifts.data or { }
+end
-storage.register("nodes/shifts/data", shifts.data, "nodes.shifts.data")
+do
-local data = shifts.data
+ local trace_shifted = false trackers.register("nodes.shifting", function(v) trace_shifted = v end)
+ local report_shifted = logs.reporter("nodes","shifting")
+ local a_shifted = attributes.private('shifted')
+ local enabled = false
-function shifts.define(settings)
- local nofdata = #data + 1
- data[nofdata] = settings
- return nofdata
-end
+ local shifts = nodes.shifts or { }
+ nodes.shifts = shifts
-local function flush_shifted(head,first,last,data,level,parent,strip) -- not that fast but acceptable for this purpose
- if true then
- first, last = striprange(first,last)
- end
- local prev = getprev(first)
- local next = getnext(last)
- setprev(first)
- setnext(last)
- local width, height, depth = getrangedimensions(parent,first,next)
- local list = hpack_nodes(first,width,"exactly") -- we can use a simple pack
- if first == head then
- head = list
- end
- if prev then
- setlink(prev,list)
+ function shifts.set(settings)
+ if not enabled then
+ -- we could disable when no more found
+ enableaction("shipouts","nodes.shifts.handler")
+ enabled = true
+ end
+ texsetattribute(a_shifted,registervalue(a_shifted,settings))
end
- if next then
- setlink(list,next)
+
+ local function flush_shifted(head,first,last,data,level,parent,strip) -- not that fast but acceptable for this purpose
+ if true then
+ first, last = striprange(first,last)
+ end
+ local prev = getprev(first)
+ local next = getnext(last)
+ setprev(first)
+ setnext(last)
+ local width, height, depth = getrangedimensions(parent,first,next)
+ local list = hpack_nodes(first,width,"exactly") -- we can use a simple pack
+ if first == head then
+ head = list
+ end
+ if prev then
+ setlink(prev,list)
+ end
+ if next then
+ setlink(list,next)
+ end
+ local raise = data.dy * dimenfactor(data.unit,fontdata[getfont(first)])
+ setshift(list,raise)
+ setwhd(list,width,height,depth)
+ if trace_shifted then
+ report_shifted("width %p, nodes %a, text %a",width,n_tostring(first,last),n_tosequence(first,last,true))
+ end
+ return head
end
- local raise = data.dy * dimenfactor(data.unit,fontdata[getfont(first)])
- setshift(list,raise)
- setwhd(list,width,height,depth)
- if trace_shifted then
- report_shifted("width %p, nodes %a, text %a",width,n_tostring(first,last),n_tosequence(first,last,true))
+
+ shifts.handler = function(head)
+ local data = attributes.values[a_shifted]
+ if data then
+ head = processwords(a_shifted,data,flush_shifted,head)
+ end
+ return head
end
- return head
-end
-shifts.handler = function(head)
- return processwords(a_shifted,data,flush_shifted,head)
-end
+ implement {
+ name = "setshift",
+ actions = shifts.set,
+ arguments = {
+ {
+ { "continue" },
+ { "unit" },
+ { "method", "integer" },
+ { "dy", "number" },
+ }
+ }
+ }
-function shifts.enable()
- enableaction("shipouts","nodes.shifts.handler")
end
-- linefillers
-local linefillers = nodes.linefillers or { }
-nodes.linefillers = linefillers
-linefillers.data = linefillers.data or { }
+do
-storage.register("nodes/linefillers/data", linefillers.data, "nodes.linefillers.data")
+ local linefillers = nodes.linefillers or { }
+ nodes.linefillers = linefillers
+ local enabled = false
-local data = linefillers.data
+ local usernutrule = nuts.rules.userrule
-function linefillers.define(settings)
- local nofdata = #data + 1
- data[nofdata] = settings
- return nofdata
-end
+ function linefillers.set(settings)
+ if not enabled then
+ enableaction("finalizers","nodes.linefillers.handler")
+ enabled = true
+ end
+ texsetattribute(a_linefiller,registervalue(a_linefiller,settings))
+ end
-local function linefiller(current,data,width,location)
- local height = data.height
- local depth = data.depth
- local mp = data.mp
- local ma = data.ma
- local ca = data.ca
- local ta = data.ta
- if mp and mp ~= "" then
- return usernutrule {
- width = width,
- height = height,
- depth = depth,
- type = "mp",
- line = data.rulethickness,
- data = mp,
- ma = ma,
- ca = ca,
- ta = ta,
- option = location,
- direction = getdirection(current),
- }
- else
- return setcoloring(new_rule(width,height,depth),ma,ca,ta)
+ local function linefiller(current,data,width,location)
+ local height = data.height
+ local depth = data.depth
+ local mp = data.mp
+ local ma = data.ma
+ local ca = data.ca
+ local ta = data.ta
+ if mp and mp ~= "" then
+ return usernutrule {
+ width = width,
+ height = height,
+ depth = depth,
+ type = "mp",
+ line = data.rulethickness,
+ data = mp,
+ ma = ma,
+ ca = ca,
+ ta = ta,
+ option = location,
+ direction = getdirection(current),
+ }
+ else
+ return setcoloring(new_rule(width,height,depth),ma,ca,ta)
+ end
end
-end
-function linefillers.filler(current,data,width,height,depth)
- if width and width > 0 then
- local height = height or data.height or 0
- local depth = depth or data.depth or 0
- if (height + depth) ~= 0 then
- local mp = data.mp
- local ma = data.ma
- local ca = data.ca
- local ta = data.ta
- if mp and mp ~= "" then
- return usernutrule {
- width = width,
- height = height,
- depth = depth,
- type = "mp",
- line = data.rulethickness,
- data = mp,
- ma = ma,
- ca = ca,
- ta = ta,
- option = location,
- direction = getdirection(current),
- }
- else
- return setcoloring(new_rule(width,height,depth),ma,ca,ta)
+ function linefillers.filler(current,data,width,height,depth)
+ if width and width > 0 then
+ local height = height or data.height or 0
+ local depth = depth or data.depth or 0
+ if (height + depth) ~= 0 then
+ local mp = data.mp
+ local ma = data.ma
+ local ca = data.ca
+ local ta = data.ta
+ if mp and mp ~= "" then
+ return usernutrule {
+ width = width,
+ height = height,
+ depth = depth,
+ type = "mp",
+ line = data.rulethickness,
+ data = mp,
+ ma = ma,
+ ca = ca,
+ ta = ta,
+ option = location,
+ direction = getdirection(current),
+ }
+ else
+ return setcoloring(new_rule(width,height,depth),ma,ca,ta)
+ end
end
end
end
-end
-local function getskips(list) -- this could be a helper
- local ls = nil
- local rs = nil
- local is = nil
- local pl = nil
- local pr = nil
- local ok = false
- for n, subtype in nextglue, list do
- if subtype == rightskip_code then
- rs = n
- elseif subtype == parfillrightskip_code then
- pr = n
- elseif subtype == leftskip_code then
- ls = n
- elseif subtype == indentskip_code then
- is = n
- elseif subtype == parfillleftskip_code then
- pl = n
+ local function getskips(list) -- this could be a helper
+ local ls = nil
+ local rs = nil
+ local is = nil
+ local pl = nil
+ local pr = nil
+ local ok = false
+ for n, subtype in nextglue, list do
+ if subtype == rightskip_code then
+ rs = n
+ elseif subtype == parfillrightskip_code then
+ pr = n
+ elseif subtype == leftskip_code then
+ ls = n
+ elseif subtype == indentskip_code then
+ is = n
+ elseif subtype == parfillleftskip_code then
+ pl = n
+ end
end
+ return is, ls, pl, pr, rs
end
- return is, ls, pl, pr, rs
-end
-function linefillers.handler(head)
- -- we have a normalized line ..
- for current, id, subtype, list in nextlist, head do
- if subtype == linelist_code and list then
- local a = getattr(current,a_linefiller)
- if a then
- local class = a % 1000
- local data = data[class]
- if data then
- local location = data.location
- local scope = data.scope
- local distance = data.distance
- local threshold = data.threshold
- local leftlocal = false
- local rightlocal = false
- --
- if scope == v_right then
- leftlocal = true
- elseif scope == v_left then
- rightlocal = true
- elseif scope == v_local then
- leftlocal = true
- rightlocal = true
- end
- --
- local is, ls, pl, pr, rs = getskips(list)
- if ls and rs then
- if location == v_left or location == v_both then
- local indentation = is and getwidth(is) or 0
- local leftfixed = ls and getwidth(ls) or 0
- local lefttotal = ls and effective_glue(ls,current) or 0
- local width = lefttotal - (leftlocal and leftfixed or 0) + indentation - distance
- if width > threshold then
- if is then
- setwidth(is,0)
- end
- setglue(ls,leftlocal and getwidth(ls) or nil)
- if distance > 0 then
- insert_node_after(list,ls,new_kern(distance))
- end
- insert_node_after(list,ls,linefiller(current,data,width,"left"))
+ linefillers.handler = function(head)
+ local data = attributes.values[a_linefiller]
+ if data then
+ -- we have a normalized line ..
+ for current, id, subtype, list in nextlist, head do
+ if subtype == linelist_code and list then
+ local a = getattr(current,a_linefiller)
+ if a then
+ local data = data[a]
+ if data then
+ local location = data.location
+ local scope = data.scope
+ local distance = data.distance
+ local threshold = data.threshold
+ local leftlocal = false
+ local rightlocal = false
+ --
+ if scope == v_right then
+ leftlocal = true
+ elseif scope == v_left then
+ rightlocal = true
+ elseif scope == v_local then
+ leftlocal = true
+ rightlocal = true
end
- end
- --
- if location == v_right or location == v_both then
- local rightfixed = rs and getwidth(rs) or 0
- local righttotal = rs and effective_glue(rs,current) or 0
- local parfixed = pr and getwidth(pr) or 0
- local partotal = pr and effective_glue(pr,current) or 0
- local width = righttotal - (rightlocal and rightfixed or 0) + partotal - distance
- if width > threshold then
- if pr then
- setglue(pr)
+ -- todo: initleft initright fillleft
+ local is, ls, pl, pr, rs = getskips(list)
+ if ls and rs then
+ if location == v_left or location == v_both then
+ local indentation = is and getwidth(is) or 0
+ local leftfixed = ls and getwidth(ls) or 0
+ local lefttotal = ls and effectiveglue(ls,current) or 0
+ local width = lefttotal - (leftlocal and leftfixed or 0) + indentation - distance
+ if width > threshold then
+ if is then
+ setwidth(is,0)
+ end
+ setglue(ls,leftlocal and getwidth(ls) or nil)
+ if distance > 0 then
+ insertnodeafter(list,ls,new_kern(distance))
+ end
+ insertnodeafter(list,ls,linefiller(current,data,width,"left"))
+ end
end
- setglue(rs,rightlocal and getwidth(rs) or nil)
- if distance > 0 then
- insert_node_before(list,rs,new_kern(distance))
+ --
+ if location == v_right or location == v_both then
+ local rightfixed = rs and getwidth(rs) or 0
+ local righttotal = rs and effectiveglue(rs,current) or 0
+ local parfixed = pr and getwidth(pr) or 0
+ local partotal = pr and effectiveglue(pr,current) or 0
+ local width = righttotal - (rightlocal and rightfixed or 0) + partotal - distance
+ if width > threshold then
+ if pr then
+ setglue(pr)
+ end
+ setglue(rs,rightlocal and getwidth(rs) or nil)
+ if distance > 0 then
+ insertnodebefore(list,rs,new_kern(distance))
+ end
+ insertnodebefore(list,rs,linefiller(current,data,width,"right"))
+ end
end
- insert_node_before(list,rs,linefiller(current,data,width,"right"))
+ else
+ -- error, not a properly normalized line
end
end
- else
- -- error, not a properly normalized line
end
end
end
end
+ return head
end
- return head
-end
-
-local enable = false
-
-function linefillers.enable()
- if not enable then
- -- we could now nil it
- enableaction("finalizers","nodes.linefillers.handler")
- enable = true
- end
-end
-
--- interface
-
-implement {
- name = "definerule",
- actions = { rules.define, context },
- arguments = {
- {
- { "continue" },
- { "unit" },
- { "order" },
- { "method", "integer" },
- { "offset", "number" },
- { "rulethickness" },
- { "dy", "number" },
- { "max", "number" },
- { "ma", "integer" },
- { "ca", "integer" },
- { "ta", "integer" },
- { "mp" },
- { "empty" },
- { "text", "integer" },
- { "repeat" },
- }
- }
-}
-implement {
- name = "enablerules",
- onlyonce = true,
- actions = rules.enable
-}
-
-implement {
- name = "defineshift",
- actions = { shifts.define, context },
- arguments = {
- {
- { "continue" },
- { "unit" },
- { "method", "integer" },
- { "dy", "number" },
+ implement {
+ name = "setlinefiller",
+ actions = linefillers.set,
+ arguments = {
+ {
+ { "method", "integer" },
+ { "location", "string" },
+ { "scope", "string" },
+ { "mp", "string" },
+ { "ma", "integer" },
+ { "ca", "integer" },
+ { "ta", "integer" },
+ { "depth", "dimension" },
+ { "height", "dimension" },
+ { "distance", "dimension" },
+ { "threshold", "dimension" },
+ { "rulethickness", "dimension" },
+ }
}
}
-}
-implement {
- name = "enableshifts",
- onlyonce = true,
- actions = shifts.enable
-}
-
-implement {
- name = "definelinefiller",
- actions = { linefillers.define, context },
- arguments = {
- {
- { "method", "integer" },
- { "location", "string" },
- { "scope", "string" },
- { "mp", "string" },
- { "ma", "integer" },
- { "ca", "integer" },
- { "ta", "integer" },
- { "depth", "dimension" },
- { "height", "dimension" },
- { "distance", "dimension" },
- { "threshold", "dimension" },
- { "rulethickness", "dimension" },
- }
- }
-}
-
-implement {
- name = "enablelinefillers",
- onlyonce = true,
- actions = linefillers.enable
-}
+end
-- We add a bonus feature here (experiment):
interfaces.implement {
name = "autorule",
+ protected = true,
+ public = true,
arguments = {
{
{ "width", "dimension" },
@@ -706,9 +712,9 @@ interfaces.implement {
},
actions = function(t)
local n = new_rule(
- t.width or running,
- t.height or running,
- t.depth or running
+ t.width or runningrule,
+ t.height or runningrule,
+ t.depth or runningrule
)
setattrlist(n,true)
setoffsets(n,t.xoffset,t.yoffset) -- ,t.left, t.right
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-rul.mkxl b/Master/texmf-dist/tex/context/base/mkxl/node-rul.mkxl
index 2b55561d85d..04c0e0dc30a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-rul.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-rul.mkxl
@@ -71,102 +71,98 @@
%definesystemattribute[ruled]
%definesystemattribute[shifted]
-\registerctxluafile{node-rul}{autosuffix,optimize}
+\newdimension\d_rule_width
+\newdimension\d_rule_height
+\newdimension\d_rule_depth
+\newdimension\d_rule_h
+\newdimension\d_rule_v
+\newdimension\d_rule_line
+\newdimension\d_rule_offset
+\newdimension\d_rule_factor
+
+\mutable\lettonothing\m_rule_direction
+%mutable\lettonothing\m_rule_factor
+\mutable\lettonothing\m_rule_option
+\mutable\lettonothing\m_rule_color
+
+\registerctxluafile{node-rul}{autosuffix}
\installcorenamespace{bar}
-\installcorenamespace{barindex}
-\installcorenamespace{barattribute}
\installcorenamespace{barstack}
\installcommandhandler \??bar {bar} \??bar
-\newtoks\t_node_rules_checklist
-
-\mutable\let\c_node_rules_index\relax % temporary synonym (can be shared)
-\mutable\let\p_node_rules_color\empty
+\mutable\lettonothing\p_node_color % of just \p_*
+\mutable\lettonothing\p_node_text
+\mutable\lettonothing\p_node_offset
\aliased\let\setupbars\setupbar
\appendtoks
- \ifempty\currentbar
- \the\t_node_rules_checklist
- \else
- \node_rules_define
- \fi
-\to \everysetupbar
-
-\appendtoks
- \ifcsname\??barindex\currentbar\endcsname
- \lastnamedcs\zerocount
- \else
- \expandafter\newcount\csname\??barindex\currentbar\endcsname
- \fi
- % \normalexpanded{\t_node_rules_checklist{\node_rules_redefine{\currentbar}\the\t_node_rules_checklist}}%
- \normalexpanded{\t_node_rules_checklist{\the\t_node_rules_checklist\relax\node_rules_redefine{\currentbar}}}%
- % \etoksapp\t_node_rules_checklist{\node_rules_redefine{\currentbar}}%
- \node_rules_define
- \frozen\instance\setuevalue\currentbar{\node_rules_direct{\currentbar}}%
+ \frozen\protected\instance\edefcsname\currentbar\endcsname{\node_rules_direct{\currentbar}}%
\to \everydefinebar
-\newbox\b_node_rules
+% \protected\def\node_rules_direct#1%
+% {\groupedcommand
+% {\node_rules_set{#1}\barparameter\c!left}%
+% {\relax\barparameter\c!right}}
-\protected\def\node_rules_define
- {\edef\p_node_rules_color{\barparameter\c!color}%
- \edef\p_node_text{\barparameter\c!text}%
- \ifempty\p_node_text\else
- \setbox\b_node_rules\hbox{\p_node_text}%
- \fi
- \expandafter\integerdef\csname\??barattribute\currentbar\endcsname
- \clf_definerule
+\protected\def\node_rules_direct#1%
+ {\groupedcommand
+ {\dontleavehmode % this should not be needed but it is in \bTD
+ \node_rules_set{#1}%
+ \barparameter\c!left
+ }%\ignorespaces}%
+ {%\removeunwantedspaces
+ \barparameter\c!right}}
+
+\permanent\protected\def\inlinebar[#1]%
+ {\node_rules_direct{#1}}
+
+%D \overbar{Über} \underbar{Unterstrich \underbar{steigt \overbar{auf} den \underbar{Unterberg}}}.
+%D
+%D \underbar {\underbar {\samplefile{tufte}}}\par
+%D \underbar {\underdot {\samplefile{tufte}}}\par
+%D \underbar {\underdot {\samplefile{tufte}}}\par
+%D \underdot {\underbar {\samplefile{tufte}}}\par
+%D \underbars{\underdot {\samplefile{tufte}}}\par
+%D \underbar {\underdots{\samplefile{tufte}}}\par
+%D \underdots{\underdots{\samplefile{tufte}}}\par
+
+\newinteger\c_node_rules_nesting % todo: same as colors
+\newinteger\c_node_rules_level
+\newinteger\c_node_rules_up
+\newinteger\c_node_rules_down
+
+\permanent\protected\def\node_rules_set#1%
+ {\edef\currentbar{#1}%
+ \advanceby\c_node_rules_level\plusone
+ \usebarstyleandcolor\c!foregroundstyle\c!foregroundcolor
+ \edef\p_node_color {\barparameter\c!color}% todo
+ \edef\p_node_text {\barparameter\c!text}%
+ \edef\p_node_offset{\barparameter\c!offset}%
+ % better is a dedicated key: up/down .. todo
+ \advanceby\ifdim\p_node_offset\onepoint<\zeropoint\c_node_rules_down\else\c_node_rules_up\fi\plusone
+ \clf_setrule
continue {\barparameter\c!continue}%
unit {\barparameter\c!unit}%
order {\barparameter\c!order}%
+ level \c_node_rules_level
+ stack \ifdim\p_node_offset\onepoint<\zeropoint\c_node_rules_down\else\c_node_rules_up\fi
rulethickness {\barparameter\c!rulethickness}%
method \barparameter\c!method
max \barparameter\c!max\space % number
- mp {\includeMPgraphic{\barparameter\c!mp}}
+ mp {\includeMPgraphic{\barparameter\c!mp}}
ma \c_attr_colormodel
- ca \rawcolorattribute\p_node_rules_color
- ta \rawtransparencyattribute\p_node_rules_color
- offset \barparameter\c!offset\space % number
- dy \barparameter\c!dy\space % number
- empty {\barparameter\c!empty}%
+ ca \rawcolorattribute\p_node_color
+ ta \rawtransparencyattribute\p_node_color
+ offset \p_node_offset\space % number
+ dy \barparameter\c!dy\space % number, also fraction
+ empty {\barparameter\c!empty}%
\ifempty\p_node_text\else
- % not that useful and efficient, more for testing something
- text \b_node_rules
- repeat {\barparameter\c!repeat}%
+ text \hbox{\p_node_text}%
+ repeat {\barparameter\c!repeat}%
\fi
- \relax
- \relax}
-
-\protected\def\node_rules_redefine#1%
- {\def\currentbar{#1}\node_rules_define}
-
-\protected\def\node_rules_direct#1%
- {\groupedcommand
- {\node_rules_set{#1}\barparameter\c!left}%
- {\relax\barparameter\c!right}}
-
-\permanent\protected\def\inlinebar[#1]%
- {\node_rules_direct{#1}}
-
-% \protected\def\inlinecurrentbar
-% {\node_rules_direct{\currentbar}}
-
-% store in properties
-
-\permanent\protected\def\node_rules_set#1% maybe reverse the 1000 (also maybe use more attributes instead of settings)
- {\edef\currentbar{#1}%
- \usebarstyleandcolor\c!foregroundstyle\c!foregroundcolor
- % maybe: \usebarstyleandcolor\c!textgroundstyle\c!textcolor
- % todo: move this to lua .. we callout anyway
- \expandafter\let\expandafter\c_node_rules_index\csname\??barindex#1\endcsname
- \advance\c_node_rules_index\plusone
- \clf_enablerules % will be relaxed
- \c_attr_ruled\numexpr
- \plusthousand*\c_node_rules_index
- % optimizing this one needs testing
- +\csname\??barattribute#1\ifcsname\??bar#1:\number\c_node_rules_index\s!parent\endcsname:\number\c_node_rules_index\fi\endcsname
\relax}
\permanent\protected\def\resetbar
@@ -193,22 +189,23 @@
\aliased\let\directsetbar\node_rules_set
-% ungrouped
-
-\newcount\c_node_rules_nesting % todo: same as colors
+% ungrouped % todo: use the lua based stacker
\permanent\protected\def\pushbar[#1]%
- {\global\advance\c_node_rules_nesting\plusone
- \edefcsname\??barstack\number\c_node_rules_nesting\endcsname{\c_attr_ruled\the\c_attr_ruled}%
+ {\global\advanceby\c_node_rules_nesting\plusone
+ \edefcsname\??barstack\number\c_node_rules_nesting\endcsname
+ {\c_node_rules_level\the\c_node_rules_level
+ \c_attr_ruled \the\c_attr_ruled}%
\node_rules_set{#1}}
\permanent\protected\def\popbar
- {\csname\??barstack\number\c_node_rules_nesting\endcsname
- \global\advance\c_node_rules_nesting\minusone}
+ {\csname\??barstack\number\c_node_rules_nesting\endcsname\relax
+ \global\advanceby\c_node_rules_nesting\minusone}
\setupbars
[\c!method=0, % new: 0=center nested, 1=stack nested
\c!continue=\v!no,
+ \c!level=\v!yes,
\c!empty=, % new: yes = hide text
\c!offset=0, % upwards, replaces: topoffset bottomoffset
\c!dy=0,
@@ -341,74 +338,43 @@
\definebar
[undergraphic]
[\c!mp=rules:under:dash,
+ \c!level=\v!auto,
\c!offset=-.2,
+ \c!dy=.4,
+ \c!continue=\v!yes,
\c!order=\v!background]
-\definebar[underrandom] [undergraphic][\c!mp=rules:under:random]
-\definebar[underrandoms][underrandom] [\c!continue=\v!yes]
+\definebar[underrandom] [undergraphic][\c!mp=rules:under:random,]
+\definebar[underrandoms][underrandom] [\c!continue=\v!no]
\definebar[underdash] [undergraphic][\c!mp=rules:under:dash]
-\definebar[underdashes] [underdash] [\c!continue=\v!yes]
+\definebar[underdashes] [underdash] [\c!continue=\v!no]
\definebar[underdot] [undergraphic][\c!mp=rules:under:dots]
-\definebar[underdots] [underdot] [\c!continue=\v!yes]
+\definebar[underdots] [underdot] [\c!continue=\v!no]
%D This will move: (a bit duplicated)
\installcorenamespace{shift}
-\installcorenamespace{shiftindex}
-\installcorenamespace{shiftattribute}
\installcommandhandler \??shift {shift} \??shift
-\newtoks\t_node_shifts_checklist
-
-\mutable\let\c_node_shifts_index\relax % temporary synonym (can be shared)
-
\let\setupshifts\setupshift
\appendtoks
- \ifempty\currentshift
- \the\t_node_shifts_checklist
- \else
- \node_shifts_define
- \fi
-\to \everysetupshift
-
-\appendtoks
- \ifcsname\??shiftindex\currentshift\endcsname
- \lastnamedcs\zerocount
- \else
- \expandafter\newcount\csname\??shiftindex\currentshift\endcsname
- \fi
- \normalexpanded{\t_node_shifts_checklist{\the\t_node_shifts_checklist\node_shifts_redefine{\currentshift}}}% order ?
- \node_shifts_define
- \frozen\instance\setuevalue\currentshift{\node_shifts_direct{\currentshift}}%
+ \frozen\protected\instance\edefcsname\currentshift\endcsname{\node_shifts_direct{\currentshift}}%
\to \everydefineshift
-\protected\def\node_shifts_define
- {\setevalue{\??shiftattribute\currentshift}{\number
- \clf_defineshift
- continue {\shiftparameter\c!continue}%
- unit {\shiftparameter\c!unit}%
- method \shiftparameter\c!method
- dy \shiftparameter\c!dy % number
- \relax}}
-
-\protected\def\node_shifts_redefine#1%
- {\def\currentshift{#1}\node_shifts_define}
-
\protected\def\node_shifts_set#1% todo: check parent ! todo: move attr etc to lua
{\def\currentshift{#1}%
- \expandafter\let\expandafter\c_node_shifts_index\csname\??shiftindex#1\endcsname
- \advance\c_node_shifts_index\plusone
- \clf_enableshifts % will be relaxed
- \c_attr_shifted\numexpr
- \plusthousand*\c_node_shifts_index
- +\csname\??shiftattribute#1\ifcsname\??shift#1:\number\c_node_shifts_index\s!parent\endcsname:\number\c_node_shifts_index\fi\endcsname
- \relax
\useshiftstyleandcolor\c!style\c!color
- \dosetupisolatedalign{\shiftparameter\c!align}} % weird feature that i probably needed once
+ \dosetupisolatedalign{\shiftparameter\c!align}% a weird feature that i probably needed once
+ \clf_setshift
+ continue {\shiftparameter\c!continue}%
+ unit {\shiftparameter\c!unit}%
+ method \shiftparameter\c!method
+ dy \shiftparameter\c!dy % number
+ \relax}
\permanent\protected\def\startshift[#1]%
{\begingroup
@@ -438,8 +404,8 @@
% we want these always so ...
-\expandafter\let\expandafter\shiftup \csname\v!shiftup \endcsname
-\expandafter\let\expandafter\shiftdown \csname\v!shiftdown \endcsname
+\expandafter\let\expandafter\shiftup \csname\v!shiftup \endcsname
+\expandafter\let\expandafter\shiftdown\csname\v!shiftdown\endcsname
% This is a weird helper.. these might go away:
@@ -463,67 +429,29 @@
% Phillips on drums). The Amsterdam concert is equally energizing.
\installcorenamespace{linefiller}
-\installcorenamespace{linefillerindex}
-\installcorenamespace{linefillerattribute}
\installcommandhandler \??linefiller {linefiller} \??linefiller
\definesystemattribute[linefiller][public]
-\newtoks\t_node_linefiller_checklist
-
-\mutable\let\c_node_linefiller_index\relax % temporary synonym (can be shared)
-
\aliased\let\setuplinefillers\setuplinefiller
-\appendtoks
- \ifempty\currentlinefiller
- \the\t_node_linefiller_checklist
- \else
- \node_linefiller_define
- \fi
-\to \everysetuplinefiller
-
-\appendtoks
- \ifcsname\??linefillerindex\currentlinefiller\endcsname
- \lastnamedcs\zerocount
- \else
- \expandafter\newcount\csname\??linefillerindex\currentlinefiller\endcsname
- \fi
- \etoksapp\t_node_linefiller_checklist{\t_node_linefiller_checklist\node_linefiller_redefine{\currentlinefiller}}%
- \node_linefiller_define
-\to \everydefinelinefiller
-
-\protected\def\node_linefiller_define
- {\edef\p_node_rules_color{\linefillerparameter\c!color}%
- \expandafter\integerdef\csname\??linefillerattribute\currentlinefiller\endcsname
- \clf_definelinefiller
+\protected\def\node_linefiller_set#1% todo: check parent ! todo: move attr etc to lua
+ {\def\currentlinefiller{#1}%
+ \edef\p_node_color{\linefillerparameter\c!color}%
+ \clf_setlinefiller
%method \linefillerparameter\c!method
location {\linefillerparameter\c!location}%
scope {\linefillerparameter\c!scope}%
mp {\includeMPgraphic{\linefillerparameter\c!mp}}%
ma \c_attr_colormodel
- ca \rawcolorattribute\p_node_rules_color
- ta \rawtransparencyattribute\p_node_rules_color
+ ca \rawcolorattribute\p_node_color
+ ta \rawtransparencyattribute\p_node_color
height \dimexpr\linefillerparameter\c!height\relax
depth \dimexpr\linefillerparameter\c!depth\relax
distance \dimexpr\linefillerparameter\c!distance\relax
threshold \dimexpr\linefillerparameter\c!threshold\relax
rulethickness \dimexpr\linefillerparameter\c!rulethickness\relax
- \relax
- \relax}
-
-\protected\def\node_linefiller_redefine#1%
- {\def\currentlinefiller{#1}\node_linefiller_define}
-
-\protected\def\node_linefiller_set#1% todo: check parent ! todo: move attr etc to lua
- {\def\currentlinefiller{#1}%
- \expandafter\let\expandafter\c_node_linefiller_index\csname\??linefillerindex#1\endcsname
- \advance\c_node_linefiller_index\plusone
- \clf_enablelinefillers
- \c_attr_linefiller\numexpr
- \plusthousand*\c_node_linefiller_index
- +\csname\??linefillerattribute#1\ifcsname\??linefiller#1:\number\c_node_linefiller_index\s!parent\endcsname:\number\c_node_linefiller_index\fi\endcsname
\relax}
\permanent\tolerant\protected\def\startlinefiller[#1]#*[#2]%
@@ -594,7 +522,6 @@
\node_linefiller_set{#3}% already sets the attribute
#1%
attr \backgroundattribute \plusone
- % attr \linefillerattribute \the\c_attr_linefiller
{\box\nextbox}%
\egroup}%
#2}
@@ -605,6 +532,6 @@
%D Bonus:
-\permanent\protected\def\autorule{\clf_autorule} % todo: public implementor
+% \autorule : defined at the lua end
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-scn.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-scn.lmt
index 0ec1ba387c9..1530174c22a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-scn.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-scn.lmt
@@ -21,8 +21,6 @@ local getsubtype = nuts.getsubtype
local getlist = nuts.getlist
local setlist = nuts.setlist
-local end_of_math = nuts.end_of_math
-
local nodecodes = nodes.nodecodes
local gluecodes = nodes.gluecodes
local kerncodes = nodes.kerncodes
@@ -43,6 +41,8 @@ local userskip_code = gluecodes.userskip
local spaceskip_code = gluecodes.spaceskip
local xspaceskip_code = gluecodes.xspaceskip
local leaders_code = gluecodes.leaders
+local rightfillskip_code = gluecodes.rightparfillskip
+local righthangskip_code = gluecodes.righthangskip
local fontkern_code = kerncodes.fontkern
@@ -113,17 +113,54 @@ nuts.striprange = striprange
-- todo: switching inside math
--- handlers
+-- handlers (some are very specialized and demanding)
+
+local maxlevel = 1
-local function processwords(attribute,data,flush,head,parent,skip) -- we have hlistdir and local dir
+local function processwords(nesting,attribute,data,flush,head,parent,skip) -- we have hlistdir and local dir
local n = head
if n then
- local f, l, a, d, i, class
- local continue, leaders, done, strip, level = false, false, false, true, -1
+ local f, l, a, d, class
+ local continue, leaders, strip, level = false, false, true, -1
while n do
local id = getid(n)
- if id == glyph_code or id == rule_code or (id == hlist_code and getattr(n,a_runningtext)) then
+ if id == glyph_code
+ or id == rule_code
+ or (id == hlist_code and getattr(n,a_runningtext))
+ or id == disc_code
+ or id == boundary_code
+ then
local aa = getattr(n,attribute)
+ -- new approach
+ local dd, ll
+ if aa then
+ dd = data[aa]
+ ll = dd.level or 1
+ if nesting == 1 and ll > maxlevel then
+ maxlevel = ll
+ end
+ if ll == nesting then
+ -- we're okay
+ else
+ while true do
+ local nestingvalue = dd.nestingvalue
+ if nestingvalue then
+ dd = dd.nestingdata
+ ll = dd.level
+ if ll == nesting then
+ aa = nestingvalue
+ break
+ end
+ else
+ -- no matching level found
+ aa = nil
+ dd = nil
+ break
+ end
+ end
+ end
+ end
+ -- old approach
if aa and aa ~= skip then
if aa == a then
if not f then -- ?
@@ -131,101 +168,121 @@ local function processwords(attribute,data,flush,head,parent,skip) -- we have hl
end
l = n
else
- -- possible extensions: when in same class then keep spanning
- local newlevel, newclass = floor(aa/1000), aa%1000 -- will be configurable
- -- strip = not continue or level == 1 -- 0
if f then
- if class == newclass then -- and newlevel > level then
- head, done = flush(head,f,l,d,level,parent,false), true
+ if class == aa then -- and newlevel > level then
+ head = flush(head,f,l,d,level,parent,false)
else
- head, done = flush(head,f,l,d,level,parent,strip), true
+ head = flush(head,f,l,d,level,parent,strip)
end
end
f, l, a = n, n, aa
- level, class = newlevel, newclass
- d = data[class]
+ d = dd
+ class = aa
if d then
- local c = d.continue
- leaders = c == v_all
- continue = leaders or c == v_yes
+ continue = d.continue
+ level = d.level or 1
+ leaders = continue == v_all
+ continue = leaders or continue == v_yes
else
continue = true
+ level = 1
+ leaders = false
end
end
else
if f then
- head, done = flush(head,f,l,d,level,parent,strip), true
+ head = flush(head,f,l,d,level,parent,strip)
end
f, l, a = nil, nil, nil
end
if id == hlist_code then
local list = getlist(n)
if list then
- setlist(n,(processwords(attribute,data,flush,list,n,aa))) -- watch ()
+ setlist(n,processwords(nesting,attribute,data,flush,list,n,aa))
end
end
- elseif id == disc_code or id == boundary_code then
- if f then
- l = n
- end
- elseif id == kern_code and getsubtype(n) == fontkern_code then
- if f then
- l = n
+ goto next
+ -- elseif id == disc_code or id == boundary_code then
+ -- if f then
+ -- l = n
+ -- end
+ -- goto next
+ elseif id == kern_code then
+ if getsubtype(n) == fontkern_code then
+ if f then
+ l = n
+ end
+ goto next
+ else
+ goto rest
end
elseif id == math_code then
-- otherwise not consistent: a $b$ c vs a $b+c$ d etc
-- we need a special (optional) go over math variant
if f then
- head, done = flush(head,f,l,d,level,parent,strip), true
+ head = flush(head,f,l,d,level,parent,strip)
f, l, a = nil, nil, nil
end
+ goto next
elseif id == hlist_code or id == vlist_code then
if f then
- head, done = flush(head,f,l,d,level,parent,strip), true
+ head = flush(head,f,l,d,level,parent,strip)
f, l, a = nil, nil, nil
end
local list = getlist(n)
if list then
- setlist(n,(processwords(attribute,data,flush,list,n,skip))) -- watch ()
+ setlist(n,processwords(nesting,attribute,data,flush,list,n,skip))
end
+ goto next
elseif id == dir_code then -- only changes in dir, we assume proper boundaries
if f then
l = n
end
- elseif f then
+ goto next
+ end
+ ::rest::
+ if f then
if continue then
if id == penalty_code then
l = n
+ goto next
-- elseif id == kern_code then
-- l = n
+ -- goto next
elseif id == glue_code then
-- catch \underbar{a} \underbar{a} (subtype test is needed)
local subtype = getsubtype(n)
if getattr(n,attribute) and (subtype == userskip_code or subtype == spaceskip_code or subtype == xspaceskip_code or (leaders and subtype >= leaders_code)) then
l = n
else
- head, done = flush(head,f,l,d,level,parent,strip), true
+ head = flush(head,f,l,d,level,parent,strip)
f, l, a = nil, nil, nil
end
end
else
- head, done = flush(head,f,l,d,level,parent,strip), true
+ head = flush(head,f,l,d,level,parent,strip)
f, l, a = nil, nil, nil
end
end
+ ::next::
n = getnext(n)
end
if f then
- head, done = flush(head,f,l,d,level,parent,strip), true
+ head = flush(head,f,l,d,level,parent,strip)
end
- return head, true -- todo: done
- else
- return head, false
end
+ return head
end
nuts.processwords = function(attribute,data,flush,head,parent) -- we have hlistdir and local dir
- return processwords(attribute,data,flush,head,parent)
+ -- print("processing words at level "..1)io.flush()
+ maxlevel = 1
+ head = processwords(1,attribute,data,flush,head,parent)
+ for i=2,maxlevel do
+ -- print("processing words at level "..i)io.flush()
+ head = processwords(i,attribute,data,flush,head,parent)
+ end
+ return head
end
-- works on lines !
@@ -235,12 +292,11 @@ local function processranges(attribute,flush,head,parent,depth,skip)
local n = head
if n then
local f, l, a
- local done = false
while n do
local id = getid(n)
if id == glyph_code or id == rule_code then
local aa = getattr(n,attribute)
--- if aa and (not skip or aa ~= skip) then
+ -- if aa and (not skip or aa ~= skip) then
if aa then
if aa == a then
if not f then
@@ -249,13 +305,13 @@ local function processranges(attribute,flush,head,parent,depth,skip)
l = n
else
if f then
- head, done = flush(head,f,l,a,parent,depth), true
+ head = flush(head,f,l,a,parent,depth)
end
f, l, a = n, n, aa
end
else
if f then
- head, done = flush(head,f,l,a,parent,depth), true
+ head = flush(head,f,l,a,parent,depth)
end
f, l, a = nil, nil, nil
end
@@ -265,16 +321,21 @@ local function processranges(attribute,flush,head,parent,depth,skip)
else
-- weird
end
- elseif id == kern_code and getsubtype(n) == fontkern_code then
- if f then
- l = n
+ elseif id == kern_code then
+ if getsubtype(n) == fontkern_code then
+ if f then
+ l = n
+ end
end
-- elseif id == penalty_code then
elseif id == glue_code then
-- todo: leaders
+-- if getsubtype(n) == rightfillskip_code or getsubtype(n) == righthangskip_code then
+-- break
+-- end
elseif id == hlist_code or id == vlist_code then
local aa = getattr(n,attribute)
--- if aa and (not skip or aa ~= skip) then
+ -- if aa and (not skip or aa ~= skip) then
if aa then
if aa == a then
if not f then
@@ -283,30 +344,28 @@ local function processranges(attribute,flush,head,parent,depth,skip)
l = n
else
if f then
- head, done = flush(head,f,l,a,parent,depth), true
+ head = flush(head,f,l,a,parent,depth), true
end
f, l, a = n, n, aa
end
else
if f then
- head, done = flush(head,f,l,a,parent,depth), true
+ head = flush(head,f,l,a,parent,depth), true
end
f, l, a = nil, nil, nil
end
local list = getlist(n)
if list then
- setlist(n,(processranges(attribute,flush,list,n,depth+1,aa)))
+ setlist(n,processranges(attribute,flush,list,n,depth+1,aa))
end
end
n = getnext(n)
end
if f then
- head, done = flush(head,f,l,a,parent,depth), true
+ head = flush(head,f,l,a,parent,depth)
end
- return head, done
- else
- return head, false
end
+ return head
end
nuts.processranges = function(attribute,flush,head,parent) -- we have hlistdir and local dir
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-ser.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-ser.lmt
index 8fcbb31e473..e45d7f2497a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-ser.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-ser.lmt
@@ -6,6 +6,8 @@ if not modules then modules = { } end modules ['node-ser'] = {
license = "see context related readme files"
}
+-- needs to be updated (mayeb fetch field types)
+
local type, tostring = type, tostring
local concat, tohash, sortedkeys, sortedhash, printtable, serialize = table.concat, table.tohash, table.sortedkeys, table.sortedhash, table.print, table.serialize
local formatters, format, rep = string.formatters, string.format, string.rep
@@ -14,15 +16,11 @@ local allocate = utilities.storage.allocate
local context = context
local nodes = nodes
-local node = node
-
-local getfields = node.fields
-
-local is_node = nodes.is_node
+local getfields = nodes.fields
+local isnode = nodes.isnode
local nodecodes = nodes.nodecodes
local subtypes = nodes.subtypes
-
local tonode = nodes.tonode
local tonut = nodes.tonut
@@ -43,12 +41,11 @@ local canbezero = {
}
local canbelist = {
- attribute = "<attribute>",
- node = "<node>",
- token = "<token>",
- attribute_list = "<attributes>",
- node_list = "<nodes>",
- token_list = "<tokens>",
+ attribute = "<attribute>",
+ node = "<node>",
+ token = "<token>",
+ node_list = "<nodes>",
+ token_list = "<tokens>",
}
local canbeignored = {
@@ -56,9 +53,9 @@ local canbeignored = {
}
local canbechar = {
- char = true,
- small_char = true,
- large_char = true,
+ char = true,
+ smallchar = true,
+ largechar = true,
}
local fieldtypes = table.setmetatableindex(function(t,k)
@@ -69,16 +66,22 @@ end)
nodes.fieldtypes = fieldtypes
+-- todo: subtype zero too
+
local function astable(n)
n = tonode(n)
if n then
- local fields = fieldtypes[n.id]
+ local id = n.id
+ local fields = fieldtypes[id]
if fields then
- local result = { }
- for field, fieldtype in sortedhash(fields) do
+ local subtype = n.subtype
+ local result = { }
+ for field, fieldtype in sortedhash(fields) do -- no need to sort
local value = n[field]
if value then
- if canbeignored[field] then
+ if field == "subtype" then
+ -- we always show them now
+ elseif canbeignored[field] then
value = nil
elseif canbezero[fieldtype] and value == 0 then
value = nil
@@ -90,16 +93,12 @@ local function astable(n)
end
end
end
- local id = n.id
- if id then
- id = nodecodes[id]
- result.id = id
- local subtype = n.subtype
- if subtype then
- local subtypes = subtypes[id]
- if subtypes then
- result.subtype = subtypes[subtype]
- end
+ id = nodecodes[id]
+ result.id = id
+ if subtype then
+ local subtypes = subtypes[id]
+ if subtypes then
+ result.subtype = subtypes[subtype]
end
end
return result
@@ -109,7 +108,7 @@ end
nodes.astable = astable
-setinspector("node",function(v) if is_node(v) then printtable(astable(v),tostring(v)) return true end end)
+setinspector("node",function(v) if isnode(v) then printtable(astable(v),tostring(v)) return true end end)
local function to_table(n,flat,verbose,noattributes,done)
local d = tonut(n)
@@ -123,7 +122,7 @@ local function to_table(n,flat,verbose,noattributes,done)
for field, fieldtype in sortedhash(fields) do
local value = n[field]
if value then
- if fieldtype == "attribute_list" or fieldtype == "attribute" then
+ if fieldtype == "attribute" then
if noattributes then
result[value] = canbeignored[value]
else
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-shp.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-shp.lmt
index 64508ecc746..fc149330be6 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-shp.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-shp.lmt
@@ -28,13 +28,57 @@ local getbox = nuts.getbox
local implement = interfaces.implement
+local v_yes = interfaces.variables.yes
+
local actions = tasks.actions("shipouts")
+handlers.finalizelist = actions
+
function handlers.finalizebox(box)
actions(getbox(box)) -- nut
end
-handlers.cleanuppage = nuts.flatten_discretionaries
+function handlers.finalizelist(list) -- beware of export: block it if needed
+ actions(list) -- nut
+end
+
+do
+
+ local flattendiscretionaries = nuts.flattendiscretionaries
+ local softenhyphens = nuts.softenhyphens
+
+ local report = logs.reporter("shipout")
+
+ local trace = false trackers.register("backend.cleanup", function(v) trace = v end)
+
+ local flatten = true -- also done as line option
+ local soften = true -- true by default
+
+ nodes.handlers.cleanuppage = function(head)
+ -- local count = 0
+ local found = 0
+ local replaced = 0
+ if flatten then
+ head, count = flattendiscretionaries(head,true) -- nested
+ end
+ if soften then
+ head, found, replaced = softenhyphens(head) -- could have been a lua loop
+ end
+ if trace then
+ report("%i discretionaries flattened, %i of %i discretionary hyphens softened",count,replaced,found)
+ end
+ return head
+ end
+
+ implement {
+ name = "setsofthyphens",
+ arguments = "string",
+ actions = function(v)
+ soften = v == v_yes
+ end
+ }
+
+end
-- interface
@@ -113,3 +157,53 @@ statistics.register("node frequencies", function()
return format("saved in %q",filename)
end
end)
+
+do -- for the moment:
+
+ local whatsitcodes = nodes.whatsitcodes
+ local whatsit_code = nodecodes.whatsit
+
+ local removables = {
+ [whatsitcodes.open] = true,
+ [whatsitcodes.close] = true,
+ [whatsitcodes.write] = true,
+ [whatsitcodes.savepos] = true,
+ [whatsitcodes.latelua] = true,
+ }
+
+ local setlist = nuts.setlist
+ local getlist = nuts.getlist
+ local remove = nuts.remove
+
+ local function cleanup(head)
+ for current, id, subtype in nextnode, head do
+ if id == whatsit_code then
+ if removables[subtype] then
+ head = remove(head,current,true)
+ end
+ elseif id == hlist_code or id == vlist_code then
+ local sl = getlist(current)
+ if sl then
+ local rl = cleanup(sl)
+ if rl ~= sl then
+ setlist(current,rl)
+ end
+ end
+ end
+ end
+ return head
+ end
+
+ function handlers.cleanupbox(box)
+ cleanup(getbox(box))
+ end
+
+ implement {
+ name = "cleanupbox",
+ public = true,
+ protected = true,
+ actions = handlers.cleanupbox,
+ arguments = "integerargument"
+ }
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-syn.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-syn.lmt
index ce5f0d2ddf4..fe607bac8b9 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-syn.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-syn.lmt
@@ -125,10 +125,10 @@ if not modules then modules = { } end modules ['node-syn'] = {
-- Some generic (more clever code) has been removed as I don't see things change
-- that much.
-local type, rawset = type, rawset
+local type, rawset, rawget = type, rawset, rawget
local concat = table.concat
local formatters = string.formatters
-local replacesuffix, suffixonly, nameonly = file.replacesuffix, file.suffix, file.nameonly
+local replacesuffix, suffixonly, nameonly, collapsepath = file.replacesuffix, file.suffix, file.nameonly, file.collapsepath
local openfile, renamefile, removefile = io.open, os.rename, os.remove
local report_system = logs.reporter("system")
@@ -143,27 +143,24 @@ local getlist = nuts.getlist
local setlist = nuts.setlist
local getnext = nuts.getnext
local getwhd = nuts.getwhd
-local getwidth = nuts.getwidth
local getsubtype = nuts.getsubtype
local nodecodes = nodes.nodecodes
local kerncodes = nodes.kerncodes
+local nextnode = nuts.traversers.node
+
local glyph_code = nodecodes.glyph
local disc_code = nodecodes.disc
local glue_code = nodecodes.glue
local penalty_code = nodecodes.penalty
local kern_code = nodecodes.kern
------ rule_code = nodecodes.rule
local hlist_code = nodecodes.hlist
local vlist_code = nodecodes.vlist
-local dir_code = nodecodes.dir
local fontkern_code = kerncodes.fontkern
-local cancel_code = nodes.dircodes.cancel
-
-local insert_before = nuts.insert_before
-local insert_after = nuts.insert_after
+local insertbefore = nuts.insertbefore
+local insertafter = nuts.insertafter
local nodepool = nuts.pool
local new_latelua = nodepool.latelua
@@ -173,29 +170,29 @@ local new_kern = nodepool.kern
local getdimensions = nuts.dimensions
local getrangedimensions = nuts.rangedimensions
-local getsynctexfields = nuts.getsynctexfields or nuts.get_synctex_fields
-local forcesynctextag = tex.forcesynctextag or tex.force_synctex_tag
-local forcesynctexline = tex.forcesynctexline or tex.force_synctex_line
-local getsynctexline = tex.getsynctexline or tex.get_synctex_line
-local setsynctexmode = tex.setsynctexmode or tex.set_synctex_mode
+local getinputfields = nuts.getinputfields
+local forceinputstatefile = tex.forceinputstatefile
+local forceinputstateline = tex.forceinputstateline
+local getinputstateline = tex.getinputstateline
+local setinputstatemode = tex.setinputstatemode
local foundintree = resolvers.foundintree
local getpagedimensions = layouts.getpagedimensions
-local eol = "\010"
+local eol <const> = "\010"
----- f_glue = formatters["g%i,%i:%i,%i\010"]
----- f_glyph = formatters["x%i,%i:%i,%i\010"]
----- f_kern = formatters["k%i,%i:%i,%i:%i\010"]
----- f_rule = formatters["r%i,%i:%i,%i:%i,%i,%i\010"]
----- f_form = formatters["f%i,%i,%i\010"]
-local z_hlist = "[0,0:0,0:0,0,0\010"
-local z_vlist = "(0,0:0,0:0,0,0\010"
------ z_xform = "<0,0:0,0,0\010" -- or so
-local s_hlist = "]\010"
-local s_vlist = ")\010"
------ s_xform = ">\010"
+local z_hlist <const> = "[0,0:0,0:0,0,0\010"
+local z_vlist <const> = "(0,0:0,0:0,0,0\010"
+----- z_xform <const> = "<0,0:0,0,0\010" -- or so
+local s_hlist <const> = "]\010"
+local s_vlist <const> = ")\010"
+----- s_xform <const> = ">\010"
local f_hlist_1 = formatters["h%i,%i:%i,%i:%i,%i,%i\010"]
local f_hlist_2 = formatters["h%i,%i:%i,%s:%i,%i,%i\010"]
local f_vlist_1 = formatters["v%i,%i:%i,%i:%i,%i,%i\010"]
@@ -213,7 +210,7 @@ local paused = 0
local used = false
local never = false
--- the file name stuff
+-- the file name stuff (called tags in synctex)
local noftags = 0
local stnums = { }
@@ -230,7 +227,8 @@ local blockedsuffixes = {
-- lfg = true,
}
-local sttags = table.setmetatableindex(function(t,name)
+local sttags = table.setmetatableindex(function(t,fullname)
+ local name = collapsepath(fullname)
if blockedsuffixes[suffixonly(name)] then
-- Just so that I don't get the ones on my development tree.
nofblocked = nofblocked + 1
@@ -246,6 +244,9 @@ local sttags = table.setmetatableindex(function(t,name)
else
noftags = noftags + 1
t[name] = noftags
+ if name ~= fullname then
+ t[fullname] = noftags
+ end
stnums[noftags] = name
return noftags
end
@@ -257,17 +258,17 @@ end
function synctex.setfilename(name,line)
if paused == 0 and name then
- forcesynctextag(sttags[name])
+ forceinputstatefile(sttags[name])
if line then
- forcesynctexline(line)
+ forceinputstateline(line)
end
end
end
function synctex.resetfilename()
if paused == 0 then
- forcesynctextag(0)
- forcesynctexline(0)
+ forceinputstatefile(0)
+ forceinputstateline(0)
end
end
@@ -279,10 +280,10 @@ do
function synctex.pushline()
nesting = nesting + 1
if nesting == 1 then
- local l = getsynctexline()
+ local l = getinputstateline()
ignored = l and l > 0
if not ignored then
- forcesynctexline(texget("inputlineno"))
+ forceinputstateline(texget("inputlineno"))
end
end
end
@@ -290,7 +291,7 @@ do
function synctex.popline()
if nesting == 1 then
if not ignored then
- forcesynctexline()
+ forceinputstateline()
ignored = false
end
end
@@ -334,6 +335,7 @@ local function flushpreamble()
makenames()
filehandle = openfile(tmpfile,"wb")
if filehandle then
+ filehandle:setvbuf("full",64*1024)
filehandle:write("SyncTeX Version:1",eol)
writefiles()
filehandle:write("Output:pdf",eol)
@@ -372,22 +374,60 @@ local function flushpostamble()
enabled = false
end
+-- local x_hlist do
+--
+-- local function doaction_1(t,l,w,h,d)
+-- local pagewidth, pageheight = getpagedimensions()
+-- local x, y = getpos()
+-- filehandle:write(f_hlist_1(t,l,x,pageheight-y,w,h,d))
+-- nofobjects = nofobjects + 1
+-- end
+--
+-- local lasty = false
+--
+-- local function doaction_2(t,l,w,h,d)
+-- local pagewidth, pageheight = getpagedimensions()
+-- local x, y = getpos()
+-- y = pageheight - y
+-- filehandle:write(f_hlist_2(t,l,x,y == lasty and "=" or y,w,h,d))
+-- lasty = y
+-- nofobjects = nofobjects + 1
+-- end
+--
+-- local doaction = doaction_1
+--
+-- x_hlist = function(head,current,t,l,w,h,d)
+-- if filehandle then
+-- return insertbefore(head,current,new_latelua(function() doaction(t,l,w,h,d) end))
+-- else
+-- return head
+-- end
+-- end
+--
+-- directives.register("system.synctex.compression", function(v)
+-- doaction = tonumber(v) == 2 and doaction_2 or doaction_1
+-- end)
+--
+-- end
+
+-- local pagewidth, pageheight
+
local x_hlist do
- local function doaction_1(t,l,w,h,d)
+ local function doaction_1(data)
local pagewidth, pageheight = getpagedimensions()
local x, y = getpos()
- filehandle:write(f_hlist_1(t,l,x,pageheight-y,w,h,d))
+ filehandle:write(f_hlist_1(data[1],data[2],x,pageheight-y,data[3],data[4],data[5]))
nofobjects = nofobjects + 1
end
local lasty = false
- local function doaction_2(t,l,w,h,d)
+ local function doaction_2(data)
local pagewidth, pageheight = getpagedimensions()
local x, y = getpos()
y = pageheight - y
- filehandle:write(f_hlist_2(t,l,x,y == lasty and "=" or y,w,h,d))
+ filehandle:write(f_hlist_2(t[1],data[2],x,y == lasty and "=" or y,data[3],data[3],data[5]))
lasty = y
nofobjects = nofobjects + 1
end
@@ -396,7 +436,7 @@ local x_hlist do
x_hlist = function(head,current,t,l,w,h,d)
if filehandle then
- return insert_before(head,current,new_latelua(function() doaction(t,l,w,h,d) end))
+ return insertbefore(head,current,new_latelua { action = doaction, t, l, w, h, d })
else
return head
end
@@ -432,8 +472,8 @@ local function inject(head,first,last,tag,line)
d = depth
end
if trace then
- head = insert_before(head,first,new_rule(w,fulltrace and h or traceheight,fulltrace and d or tracedepth))
- head = insert_before(head,first,new_kern(-w))
+ head = insertbefore(head,first,new_rule(w,fulltrace and h or traceheight,fulltrace and d or tracedepth))
+ head = insertbefore(head,first,new_kern(-w))
end
head = x_hlist(head,first,tag,line,w,h,d)
return head
@@ -450,7 +490,7 @@ local function collect_min(head)
local line = 0
while true do
if id == glyph_code then
- local tc, lc = getsynctexfields(current)
+ local tc, lc = getinputfields(current)
if tc and tc > 0 then
tag = tc
line = lc
@@ -499,8 +539,8 @@ local function inject(parent,head,first,last,tag,line)
d = depth
end
if trace then
- head = insert_before(head,first,new_rule(w,fulltrace and h or traceheight,fulltrace and d or tracedepth))
- head = insert_before(head,first,new_kern(-w))
+ head = insertbefore(head,first,new_rule(w,fulltrace and h or traceheight,fulltrace and d or tracedepth))
+ head = insertbefore(head,first,new_kern(-w))
end
head = x_hlist(head,first,tag,line,w,h,d)
return head
@@ -517,7 +557,7 @@ local function collect_max(head,parent)
local line = 0
while true do
if id == glyph_code then
- local tc, lc = getsynctexfields(current)
+ local tc, lc = getinputfields(current)
if tc and tc > 0 then
if tag > 0 and (tag ~= tc or line ~= lc) then
head = inject(parent,head,first,last,tag,line)
@@ -544,24 +584,6 @@ local function collect_max(head,parent)
last = current
end
elseif id == glue_code then
- if tag > 0 then
- local tc, lc = getsynctexfields(current)
- if tc and tc > 0 then
- if tag ~= tc or line ~= lc then
- head = inject(parent,head,first,last,tag,line)
- tag = 0
- break
- end
- else
- head = inject(parent,head,first,last,tag,line)
- tag = 0
- break
- end
- else
- tag = 0
- break
- end
- id = nil -- so no test later on
elseif id == penalty_code then
-- go on (and be nice for math)
else
@@ -617,6 +639,7 @@ function synctex.start()
filehandle:write("{",nofsheets,eol)
-- this seems to work:
local pagewidth, pageheight = getpagedimensions()
+-- pagewidth, pageheight = getpagedimensions()
filehandle:write(z_hlist)
filehandle:write(f_vlist_1(0,0,0,pageheight,pagewidth,pageheight,0))
end
@@ -647,7 +670,7 @@ end
function synctex.enable()
if not never and not enabled then
enabled = true
- setsynctexmode(3) -- we want details
+ setinputstatemode(3) -- we want details
if not used then
nodes.tasks.enableaction("shipouts","luatex.synctex.collect")
report_system("synctex functionality is enabled, expect 5-10 pct runtime overhead!")
@@ -656,12 +679,14 @@ function synctex.enable()
for i=1,#enablers do
enablers[i](true)
end
+ -- we have a different trigger moment in lmtx
+ flushpreamble()
end
end
function synctex.disable()
if enabled then
- setsynctexmode(0)
+ setinputstatemode(0)
report_system("synctex functionality is disabled!")
enabled = false
for i=1,#disablers do
@@ -685,13 +710,13 @@ local filename = nil
function synctex.pause()
paused = paused + 1
if enabled and paused == 1 then
- setsynctexmode(0)
+ setinputstatemode(0)
end
end
function synctex.resume()
if enabled and paused == 1 then
- setsynctexmode(3)
+ setinputstatemode(3)
end
paused = paused - 1
end
@@ -731,17 +756,23 @@ end
implement {
name = "synctexblockfilename",
arguments = "string",
+ protected = true,
+ public = true,
actions = synctex.blockfilename,
}
implement {
name = "synctexsetfilename",
arguments = "string",
+ protected = true,
+ public = true,
actions = synctex.setfilename,
}
implement {
name = "synctexresetfilename",
+ protected = true,
+ public = true,
actions = synctex.resetfilename,
}
diff --git a/Master/texmf-dist/tex/context/base/mkii/tabl-com.mkii b/Master/texmf-dist/tex/context/base/mkxl/node-syn.mkxl
index 8a0bb9e0c48..5dcd624d6c3 100644
--- a/Master/texmf-dist/tex/context/base/mkii/tabl-com.mkii
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-syn.mkxl
@@ -1,8 +1,8 @@
%D \module
-%D [ file=tabl-com,
-%D version=2009.08.22,
-%D title=\CONTEXT\ Table Macros,
-%D subtitle=Common Code,
+%D [ file=node-syn,
+%D version=2006.08.20, % moved to separate module
+%D title=\CONTEXT\ Node Macros,
+%D subtitle=Synctex,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
@@ -11,11 +11,10 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{ConTeXt Table Macros / Common Code}
+\registerctxluafile{node-syn}{autosuffix}
\unprotect
-\let\NC\relax
-\let\NR\relax
+%D There is nothing defined at the \TEX\ end.
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-tex.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-tex.lmt
index aae084740dc..b856d5d4b0e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-tex.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-tex.lmt
@@ -14,12 +14,13 @@ local nuts = nodes.nuts
local hyphenate = language.hyphenate
+local collapsing = nuts.collapsing
local hyphenating = nuts.hyphenating
local ligaturing = nuts.ligaturing
local kerning = nuts.kerning
-function kernel.hyphenation(head)
- return (hyphenate(head)) -- nodes !
+function kernel.collapsing(head)
+ return (collapsing(head)) -- for now we don't pass the three character numbers
end
function kernel.hyphenating(head)
@@ -34,6 +35,7 @@ function kernel.kerning(head)
return (kerning(head))
end
+callbacks.register('collapse' , false, "normal collapsing routine, called elsewhere")
callbacks.register('hyphenate' , false, "normal hyphenation routine, called elsewhere")
callbacks.register('ligaturing', false, "normal ligaturing routine, called elsewhere")
callbacks.register('kerning' , false, "normal kerning routine, called elsewhere")
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-tra.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-tra.lmt
index 6060522bec4..1ef1bb8ad78 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/node-tra.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-tra.lmt
@@ -52,7 +52,6 @@ local isglyph = nuts.isglyph
local getdirection = nuts.getdirection
local getwidth = nuts.getwidth
-local flush_list = nuts.flush_list
local count_nodes = nuts.countall
local used_nodes = nuts.usedlist
@@ -86,7 +85,7 @@ local whatsit_code = nodecodes.whatsit
local dimenfactors = number.dimenfactors
local formatters = string.formatters
-local start_of_par = nuts.start_of_par
+local startofpar = nuts.startofpar
-- this will be reorganized:
@@ -157,7 +156,7 @@ local function tosequence(start,stop,compact)
elseif id == dir_code then
local d, p = getdirection(start)
n = n + 1 ; t[n] = "[<" .. (p and "-" or "+") .. d .. ">]" -- todo l2r etc
- elseif id == par_code and start_of_par(current) then
+ elseif id == par_code and startofpar(current) then
n = n + 1 ; t[n] = "[<" .. getdirection(start) .. ">]" -- todo l2r etc
elseif compact then
n = n + 1 ; t[n] = "[]"
@@ -308,57 +307,64 @@ end
nodes.showsimplelist = function(h,depth) showsimplelist(h,depth,0) end
local function listtoutf(h,joiner,textonly,last,nodisc)
- local w = { }
- local n = 0
- local g = formatters["<%i>"]
- local d = formatters["[%s|%s|%s]"]
- while h do
- local c, id = isglyph(h)
- if c then
- n = n + 1 ; w[n] = c >= 0 and utfchar(c) or g(c)
- if joiner then
- n = n + 1 ; w[n] = joiner
- end
- elseif id == disc_code then
- local pre, pos, rep = getdisc(h)
- if not nodisc then
- n = n + 1 ; w[n] = d(
- pre and listtoutf(pre,joiner,textonly) or "",
- pos and listtoutf(pos,joiner,textonly) or "",
- rep and listtoutf(rep,joiner,textonly) or ""
- )
- elseif rep then
- n = n + 1 ; w[n] = listtoutf(rep,joiner,textonly) or ""
- end
- if joiner then
- n = n + 1 ; w[n] = joiner
- end
- elseif textonly then
- if id == glue_code then
- if getwidth(h) > 0 then
- n = n + 1 ; w[n] = " "
+ if h then
+ local w = { }
+ local n = 0
+ local g = formatters["<%i>"]
+ local d = formatters["[%s|%s|%s]"]
+ while h do
+ local c, id = isglyph(h)
+ if c then
+ n = n + 1 ; w[n] = c >= 0 and utfchar(c) or g(c)
+ if joiner then
+ n = n + 1 ; w[n] = joiner
+ end
+ elseif id == disc_code then
+ local pre, pos, rep = getdisc(h)
+ if not nodisc then
+ n = n + 1 ; w[n] = d(
+ pre and listtoutf(pre,joiner,textonly) or "",
+ pos and listtoutf(pos,joiner,textonly) or "",
+ rep and listtoutf(rep,joiner,textonly) or ""
+ )
+ elseif rep then
+ n = n + 1 ; w[n] = listtoutf(rep,joiner,textonly) or ""
+ end
+ if joiner then
+ n = n + 1 ; w[n] = joiner
end
- elseif id == hlist_code or id == vlist_code then
- n = n + 1 ; w[n] = "["
- n = n + 1 ; w[n] = listtoutf(getlist(h),joiner,textonly,last,nodisc)
- n = n + 1 ; w[n] = "]"
+ elseif textonly then
+ if id == glue_code then
+ if getwidth(h) > 0 then
+ n = n + 1 ; w[n] = " "
+ end
+ elseif id == hlist_code or id == vlist_code then
+ local l = getlist(h)
+ n = n + 1 ; w[n] = "["
+ if l then
+ n = n + 1 ; w[n] = listtoutf(l,joiner,textonly,last,nodisc)
+ end
+ n = n + 1 ; w[n] = "]"
+ end
+ else
+ n = n + 1 ; w[n] = "[-]"
+ end
+ if h == last then
+ break
+ else
+ h = getnext(h)
end
- else
- n = n + 1 ; w[n] = "[-]"
- end
- if h == last then
- break
- else
- h = getnext(h)
end
+ return concat(w,"",1,(w[n] == joiner) and (n-1) or n)
+ else
+ return ""
end
- return concat(w,"",1,(w[n] == joiner) and (n-1) or n)
end
function nodes.listtoutf(h,joiner,textonly,last,nodisc)
if h then
local joiner = joiner == true and utfchar(0x200C) or joiner -- zwnj
- return listtoutf(tonut(h),joiner,textonly,last and tonut(last),nodisc)
+ return listtoutf(tonut(h),joiner,textonly,last and tonut(last) or nil,nodisc)
else
return ""
end
@@ -475,6 +481,8 @@ end
number.todimen = numbertodimen
nodes .todimen = nodetodimen
+-- todo: dk
+
function number.topoints (n,fmt) return numbertodimen(n,"pt",fmt) end
function number.toinches (n,fmt) return numbertodimen(n,"in",fmt) end
function number.tocentimeters (n,fmt) return numbertodimen(n,"cm",fmt) end
@@ -737,3 +745,51 @@ end
trackers.register("fonts.result.show", function(v)
nodes.tasks.setaction("processors","nodes.handlers.show",v)
end)
+
+-- This is a weird spot but it's just a compatibility hack:
+
+local getattributes = nuts.getattributes
+local patchattributes = nuts.patchattributes
+
+local texgetattribute = tex.getattribute
+
+function recolor(head,colormodel,color,transparency)
+ -- todo loop over content
+ for n, id in nextnode, head do
+ if id == glyph_code or id == rule_code then
+ local m, c, t = getattributes(n,a_colormodel,a_color,a_transparency)
+ if not c or c == 1 then
+ if not t then
+ patchattributes(n,a_colormodel,colormodel,a_color,color,a_transparency,transparency)
+ else
+ patchattributes(n,a_colormodel,colormodel,a_color,color)
+ end
+ else
+ if not t then
+ patchattributes(n,a_transparency,transparency)
+ end
+ end
+ -- maybe skip the visuals
+ elseif id == hlist_node or id == vlist_node then
+ recolor(getlist(n),colormodel,color,transparency)
+ end
+ end
+end
+
+local function recolorbox(head)
+ recolor(getlist(head),texgetattribute(a_colormodel),texgetattribute(a_color),texgetattribute(a_transparency))
+end
+
+nodes.handlers.recolor = recolorbox
+
+local getbox = nodes.nuts.getbox
+
+interfaces.implement {
+ name = "recolorbox",
+ public = true,
+ protected = true,
+ arguments = { "integer" },
+ actions = function(n)
+ recolor(getbox(n))
+ end
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-tsk.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-tsk.lmt
new file mode 100644
index 00000000000..c4871b56808
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-tsk.lmt
@@ -0,0 +1,1137 @@
+if not modules then modules = { } end modules ['node-tsk'] = {
+ version = 1.001,
+ comment = "companion to node-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- This might move to task-* and become less code as in sequencers
+-- we already have dirty flags as well. On the other hand, nodes are
+-- rather specialized and here we focus on node related tasks.
+
+local format = string.format
+
+local trace_tasks = false trackers.register("tasks.creation", function(v) trace_tasks = v end)
+
+local report_tasks = logs.reporter("tasks")
+
+local allocate = utilities.storage.allocate
+
+local context = context
+local nodes = nodes
+
+local tasks = nodes.tasks or { }
+nodes.tasks = tasks
+
+local tasksdata = { } -- no longer public
+
+local sequencers = utilities.sequencers
+local compile = sequencers.compile
+local nodeprocessor = sequencers.nodeprocessor
+
+local newsequencer = sequencers.new
+
+local appendgroup = sequencers.appendgroup
+----- prependgroup = sequencers.prependgroup
+----- replacegroup = sequencers.replacegroup
+local enablegroup = sequencers.enablegroup
+local disablegroup = sequencers.disablegroup
+
+local appendaction = sequencers.appendaction
+local prependaction = sequencers.prependaction
+local replaceaction = sequencers.replaceaction
+local enableaction = sequencers.enableaction
+local disableaction = sequencers.disableaction
+
+local frozengroups = "no"
+
+function tasks.freeze(kind)
+ frozengroups = kind or "tolerant" -- todo: hook into jobname
+end
+
+function tasks.new(specification) -- was: name,arguments,list
+ local name = specification.name
+ local sequence = specification.sequence
+ if name and sequence then
+ local tasklist = newsequencer {
+ name = name
+ -- we can move more to the sequencer now .. todo
+ }
+ tasksdata[name] = {
+ name = name,
+ list = tasklist,
+ runner = false,
+ frozen = { },
+ processor = specification.processor or nodeprocessor,
+ -- could be metatable but best freeze it
+ arguments = specification.arguments or 0,
+ templates = specification.templates,
+ }
+ for l=1,#sequence do
+ appendgroup(tasklist,sequence[l])
+ end
+ end
+end
+
+local function valid(name)
+ local data = tasksdata[name]
+ if not data then
+ report_tasks("unknown task %a",name)
+ else
+ return data
+ end
+end
+
+local function validgroup(name,group,what)
+ local data = tasksdata[name]
+ if not data then
+ report_tasks("unknown task %a",name)
+ else
+ local frozen = data.frozen[group]
+ if frozen then
+ if frozengroup == "no" then
+ -- default
+ elseif frozengroup == "strict" then
+ report_tasks("warning: group %a of task %a is frozen, %a applied but not supported",group,name,what)
+ return
+ else -- if frozengroup == "tolerant" then
+ report_tasks("warning: group %a of task %a is frozen, %a ignored",group,name,what)
+ end
+ end
+ return data
+ end
+end
+
+function tasks.freezegroup(name,group)
+ local data = valid(name)
+ if data then
+ data.frozen[group] = true
+ end
+end
+
+function tasks.restart(name)
+ local data = valid(name)
+ if data then
+ data.runner = false
+ end
+end
+
+function tasks.enableaction(name,action)
+ local data = valid(name)
+ if data then
+ enableaction(data.list,action)
+ data.runner = false
+ end
+end
+
+function tasks.disableaction(name,action)
+ local data = valid(name)
+ if data then
+ disableaction(data.list,action)
+ data.runner = false
+ end
+end
+
+function tasks.replaceaction(name,group,oldaction,newaction)
+ local data = valid(name)
+ if data then
+ replaceaction(data.list,group,oldaction,newaction)
+ data.runner = false
+ end
+end
+
+do
+
+ local enableaction = tasks.enableaction
+ local disableaction = tasks.disableaction
+
+ function tasks.setaction(name,action,value)
+ if value then
+ enableaction(name,action)
+ else
+ disableaction(name,action)
+ end
+ end
+
+end
+
+function tasks.enablegroup(name,group)
+ local data = validgroup(name,"enable group")
+ if data then
+ enablegroup(data.list,group)
+ data.runner = false
+ end
+end
+
+function tasks.disablegroup(name,group)
+ local data = validgroup(name,"disable group")
+ if data then
+ disablegroup(data.list,group)
+ data.runner = false
+ end
+end
+
+function tasks.appendaction(name,group,action,where,kind,state)
+ local data = validgroup(name,"append action")
+ if data then
+ local list = data.list
+ appendaction(list,group,action,where,kind)
+ if state == "disabled" or (state == "production" and environment.initex) then
+ disableaction(list,action)
+ end
+ data.runner = false
+ end
+end
+
+function tasks.prependaction(name,group,action,where,kind,state)
+ local data = validgroup(name,"prepend action")
+ if data then
+ local list = data.list
+ prependaction(list,group,action,where,kind)
+ if state == "disabled" or (state == "production" and environment.initex) then
+ disableaction(list,action)
+ end
+ data.runner = false
+ end
+end
+
+function tasks.removeaction(name,group,action)
+ local data = validgroup(name,"remove action")
+ if data then
+ removeaction(data.list,group,action)
+ data.runner = false
+ end
+end
+
+function tasks.showactions(name,group,action,where,kind)
+ local data = valid(name)
+ if data then
+ report_tasks("task %a, list:\n%s",name,nodeprocessor(data.list))
+ end
+end
+
+-- Optimizing for the number of arguments makes sense, but getting rid of
+-- the nested call (no problem but then we also need to register the
+-- callback with this mechanism so that it gets updated) does not save
+-- much time (24K calls on mk.tex).
+
+local created, total = 0, 0
+
+statistics.register("node list callback tasks", function()
+ if total > 0 then
+ return format("%s unique task lists, %s instances (re)created, %s calls",table.count(tasksdata),created,total)
+ else
+ return nil
+ end
+end)
+
+local function create(data,t)
+ created = created + 1
+ local runner = compile(data.list,data.processor,t)
+ if trace_tasks then
+ report_tasks("creating runner %a, %i actions enabled",t.name,data.list.steps or 0)
+ end
+ data.runner = runner
+ return runner
+end
+
+function tasks.actions(name)
+ local data = tasksdata[name]
+ if data then
+ local t = data.templates
+ if t then
+ t.name = data.name
+ return function(...)
+ total = total + 1
+ return (data.runner or create(data,t))(...)
+ end
+ end
+ end
+ return nil
+end
+
+function tasks.table(name) --maybe move this to task-deb.lua
+ local tsk = tasksdata[name]
+ local lst = tsk and tsk.list
+ local HL, NC, NR, bold, type = context.HL, context.NC, context.NR, context.bold, context.type
+ if lst then
+ local list, order = lst.list, lst.order
+ if list and order then
+ context.starttabulate { "|l|l|" }
+ NC() bold("category") NC() bold("function") NC() NR()
+ for i=1,#order do
+ HL()
+ local o = order[i]
+ local l = list[o]
+ if #l == 0 then
+ NC() type(o) NC() context("unset") NC() NR()
+ else
+ local done = false
+ for k, v in table.sortedhash(l) do
+ NC() if not done then type(o) done = true end NC() type(v) NC() NR()
+ end
+ end
+ end
+ context.stoptabulate()
+ end
+ end
+end
+
+-- -- shipouts everypar -- --
+
+-- the shipout handlers acts on boxes so we don't need to return something
+-- and also don't need to keep the state (done)
+
+local templates = {
+
+default = [[
+return function(head)
+ return head
+end
+]],
+
+process = [[
+local tonut = nodes.tonut
+local tonode = nodes.nuts.tonode
+
+%localize%
+
+return function(head)
+ local nuthead = tonut(head)
+
+%actions%
+ return tonode(nuthead)
+end
+]],
+
+step = [[
+ nuthead = tonut((%action%(tonode(nuthead))))
+]],
+
+nut = [[
+ nuthead = %action%(nuthead)
+]],
+
+nohead = [[
+ %action%(tonode(nuthead))
+]],
+
+nonut = [[
+ %action%(nuthead)
+]],
+
+}
+
+tasks.new {
+ name = "shipouts",
+ processor = nodeprocessor,
+ sequence = {
+ "before", -- users
+ "normalizers", -- system
+ "finishers", -- system
+ "after", -- users
+ "wrapup", -- system
+ },
+ templates = templates
+}
+
+tasks.new {
+ name = "everypar",
+ processor = nodeprocessor,
+ sequence = {
+ "before", -- users
+ "normalizers", -- system
+ "after", -- users
+ },
+ templates = templates,
+}
+
+-- -- alignment -- -- gets temp node ! (currently as that might change)
+
+tasks.new {
+ name = "alignments",
+ processor = nodeprocessor,
+ sequence = {
+ "before", -- users
+ "normalizers", -- system
+ "after", -- users
+ },
+ templates = {
+
+default = [[
+return function(head)
+end
+]],
+
+process = [[
+local tonut = nodes.tonut
+local tonode = nodes.nuts.tonode
+
+%localize%
+
+return function(head,where,attr,preamble)
+ local nuthead = tonut(head)
+ local nutattr = tonut(attr)
+ local nutpreamble = tonut(preamble)
+
+%actions%
+end
+]],
+
+step = [[
+ %action%(head,where,attr,preamble)
+]],
+
+nut = [[
+ %action%(nuthead,where,nutattr,nutpreamble)
+]],
+
+nohead = [[
+ %action%(head,where,attr,preamble)
+]],
+
+nonut = [[
+ %action%(nuthead,where,nutattr,nutpreamble)
+]],
+
+ }
+}
+
+-- -- finalizers -- --
+
+tasks.new {
+ name = "finalizers",
+ sequence = {
+ "before", -- for users
+ "normalizers",
+ "fonts",
+ "lists",
+ "after", -- for users
+ },
+ processor = nodeprocessor,
+ templates = {
+
+default = [[
+return function(head)
+ return head
+end
+]],
+
+process = [[
+local tonut = nodes.tonut
+local tonode = nodes.nuts.tonode
+
+%localize%
+
+return function(head,groupcode)
+ local nuthead = tonut(head)
+
+%actions%
+ return tonode(nuthead)
+end
+]],
+
+step = [[
+ nuthead = tonut((%action%(tonode(nuthead),groupcode)))
+]],
+
+nut = [[
+ nuthead = %action%(nuthead,groupcode)
+]],
+
+nohead = [[
+ %action%(tonode(nuthead),groupcode)
+]],
+
+nonut = [[
+ %action%(nuthead,groupcode)
+]],
+
+ }
+}
+
+-- -- processors -- --
+
+tasks.new {
+ name = "processors",
+ processor = nodeprocessor,
+ sequence = {
+ "before", -- for users
+ "normalizers",
+ "characters",
+ "words",
+ "fonts",
+ "lists",
+ "after", -- for users
+ },
+ templates = {
+
+default = [[
+return function(head)
+ return head
+end
+]],
+
+process = [[
+local tonut = nodes.tonut
+local tonode = nodes.nuts.tonode
+
+%localize%
+
+return function(head,groupcode,direction)
+ local nuthead = tonut(head)
+
+%actions%
+ return tonode(nuthead)
+end
+]],
+
+step = [[
+ nuthead = tonut((%action%(tonode(nuthead),groupcode,direction)))
+]],
+
+nut = [[
+ nuthead = %action%(nuthead,groupcode,direction)
+]],
+
+nohead = [[
+ %action%(tonode(nuthead),groupcode,direction)
+]],
+
+nonut = [[
+ %action%(nuthead,groupcode,direction)
+]],
+
+ }
+}
+
+-- -- paragraphs -- --
+
+tasks.new {
+ name = "paragraphs",
+ processor = nodeprocessor,
+ sequence = {
+ "before", -- for users
+ "lists",
+ "after", -- for users
+ },
+ templates = {
+
+default = [[
+return function(head)
+ return head
+end
+]],
+
+process = [[
+local tonut = nodes.tonut
+local tonode = nodes.nuts.tonode
+
+%localize%
+
+return function(head,groupcode)
+ local nuthead = tonut(head)
+
+%actions%
+ return tonode(nuthead)
+end
+]],
+
+step = [[
+ nuthead = tonut((%action%(tonode(nuthead),groupcode)))
+]],
+
+nut = [[
+ nuthead = %action%(nuthead,groupcode)
+]],
+
+nohead = [[
+ %action%(tonode(nuthead),groupcode)
+]],
+
+nonut = [[
+ %action%(nuthead,groupcode)
+]],
+
+ }
+}
+
+-- -- hpackers -- --
+
+-- tasks.new {
+-- name = "processors",
+-- processor = nodeprocessor,
+-- sequence = {
+-- "before", -- for users
+-- "normalizers",
+-- "characters",
+-- "words",
+-- "fonts",
+-- "lists",
+-- "after", -- for users
+-- },
+-- templates = {
+--
+-- default = [[
+-- return function(head)
+-- return head
+-- end
+-- ]],
+--
+-- process = [[
+-- local tonut = nodes.tonut
+-- local tonode = nodes.nuts.tonode
+--
+-- %localize%
+--
+-- return function(head,groupcode,size,packtype,direction,attributes)
+-- local nuthead = tonut(head)
+--
+-- %actions%
+-- return tonode(nuthead)
+-- end
+-- ]],
+--
+-- step = [[
+-- nuthead = tonut((%action%(tonode(nuthead),groupcode,size,packtype,direction,attributes)))
+-- ]],
+--
+-- nut = [[
+-- nuthead = %action%(nuthead,groupcode,size,packtype,direction,attributes)
+-- ]],
+--
+-- nohead = [[
+-- %action%(tonode(nuthead),groupcode,size,packtype,direction,attributes)
+-- ]],
+--
+-- nonut = [[
+-- %action%(nuthead,groupcode,size,packtype,direction,attributes)
+-- ]],
+--
+-- }
+-- }
+
+tasks.new {
+ name = "finalizers",
+ processor = nodeprocessor,
+ sequence = {
+ "before", -- for users
+ "normalizers",
+ "fonts",
+ "lists",
+ "after", -- for users
+ },
+ templates = {
+
+default = [[
+return function(head)
+ return head
+end
+]],
+
+process = [[
+local tonut = nodes.tonut
+local tonode = nodes.nuts.tonode
+
+%localize%
+
+return function(head)
+ local nuthead = tonut(head)
+
+%actions%
+ return tonode(nuthead)
+end
+]],
+
+step = [[
+ nuthead = tonut((%action%(tonode(nuthead))))
+]],
+
+nut = [[
+ nuthead = %action%(nuthead)
+]],
+
+nohead = [[
+ %action%(tonode(nuthead))
+]],
+
+nonut = [[
+ %action%(nuthead)
+]],
+
+ }
+}
+
+tasks.new {
+ name = "mvlbuilders",
+ processor = nodeprocessor,
+ sequence = {
+ "before", -- for users
+ "normalizers",
+ "after", -- for users
+ },
+ templates = {
+
+default = [[
+return function(head)
+ return head
+end
+]],
+
+-- process = [[
+-- local tonut = nodes.tonut
+-- local tonode = nodes.nuts.tonode
+--
+-- %localize%
+--
+-- return function(head,groupcode)
+-- local nuthead = tonut(head)
+--
+-- return function(nuthead,groupcode)
+--
+-- %actions%
+-- return tonode(nuthead)
+-- end
+-- ]],
+
+process = [[
+local tonut = nodes.tonut
+local tonode = nodes.nuts.tonode
+
+%localize%
+
+return function(nuthead,groupcode)
+
+%actions%
+ return nuthead
+end
+]],
+
+step = [[
+ nuthead = tonut((%action%(tonode(nuthead),groupcode)))
+]],
+
+nut = [[
+ nuthead = %action%(nuthead,groupcode)
+]],
+
+nohead = [[
+ %action%(tonode(nuthead),groupcode)
+]],
+
+nonut = [[
+ %action%(nuthead,groupcode)
+]],
+
+ }
+
+}
+
+tasks.new {
+ name = "vboxbuilders",
+ processor = nodeprocessor,
+ sequence = {
+ "before", -- for users
+ "normalizers",
+ "after", -- for users
+ },
+ templates = {
+
+default = [[
+return function(head)
+ return head
+end
+]],
+
+process = [[
+local tonut = nodes.tonut
+local tonode = nodes.nuts.tonode
+
+%localize%
+
+return function(head,groupcode,size,packtype,maxdepth,direction)
+ local nuthead = tonut(head)
+
+%actions%
+ return tonode(nuthead)
+end
+]],
+
+step = [[
+ nuthead = tonut((%action%(tonode(nuthead),groupcode,size,packtype,maxdepth,direction)))
+]],
+
+nut = [[
+ nuthead = %action%(nuthead,groupcode,size,packtype,maxdepth,direction)
+]],
+
+nohead = [[
+ %action%(tonode(nuthead),groupcode,size,packtype,maxdepth,direction)
+]],
+
+nonut = [[
+ %action%(nuthead,groupcode,size,packtype,maxdepth,direction)
+]],
+
+ }
+
+}
+
+tasks.new {
+ name = "vboxhandlers",
+ processor = nodeprocessor,
+ sequence = {
+ "before", -- for users
+ "normalizers",
+ "after", -- for users
+ },
+ templates = {
+
+default = [[
+return function(head)
+ return head
+end
+]],
+
+process = [[
+local tonut = nodes.tonut
+local tonode = nodes.nuts.tonode
+
+%localize%
+
+return function(head,groupcode)
+ local nuthead = tonut(head)
+
+%actions%
+ return tonode(nuthead)
+end
+]],
+
+step = [[
+ nuthead = tonut((%action%(tonode(nuthead),groupcode)))
+]],
+
+nut = [[
+ nuthead = %action%(nuthead,groupcode)
+]],
+
+nohead = [[
+ %action%(tonode(nuthead),groupcode)
+]],
+
+nonut = [[
+ %action%(nuthead,groupcode)
+]],
+
+ }
+
+}
+
+-- these operate on the content on a line, so no injections
+
+tasks.new {
+ name = "contributers",
+ processor = nodeprocessor,
+ sequence = {
+ "before", -- for users
+ "normalizers",
+ "after", -- for users
+ },
+ templates = {
+
+default = [[
+return function(head)
+ return head
+end
+]],
+
+process = [[
+local tonut = nodes.tonut
+local tonode = nodes.nuts.tonode
+
+%localize%
+
+-- we operate exclusively on nuts (no index yet)
+
+return function(head,where,tail)
+ local nuthead = tonut(head)
+ local nuttail = tonut(tail)
+
+%actions%
+ return tonode(nuthead)
+end
+]],
+
+step = [[
+ nuthead = tonut((%action%(tonode(nuthead),where,tonode(nuttail))))
+]],
+
+nut = [[
+ nuthead = %action%(nuthead,where,nuttail)
+]],
+
+nohead = [[
+ %action%(tonode(nuthead),where,tonode(nuttail))
+]],
+
+nonut = [[
+ %action%(nuthead,where,nuttail)
+]],
+
+ }
+
+}
+
+ tasks.new {
+ name = "adjusters",
+ processor = nodeprocessor,
+ sequence = {
+ "before", -- for users
+ "normalizers",
+ "after", -- for users
+ },
+ templates = {
+
+default = [[
+return function(head)
+ return head
+end
+]],
+
+process = [[
+local tonut = nodes.tonut
+local tonode = nodes.nuts.tonode
+local nodetail = nodes.nuts.tail
+
+%localize%
+
+-- we operate exclusively on nuts
+
+return function(head,where,tail,index)
+ local nuthead = tonut(head)
+ local nuttail = tonut(tail)
+
+%actions%
+ return tonode(nuthead)
+end
+]],
+
+step = [[
+ nuthead = tonut((%action%(tonode(nuthead),where,tonode(nuttail),index)))
+ nuttail = nodetail(nuthead)
+]],
+
+nut = [[
+ nuthead = %action%(nuthead,where,nuttail,index)
+ nuttail = nodetail(nuthead)
+]],
+
+nohead = [[
+ %action%(tonode(nuthead),where,tonode(nuttail),index)
+ nuttail = nodetail(nuthead)
+]],
+
+nonut = [[
+ %action%(nuthead,where,nuttail,index)
+ nuttail = nodetail(nuthead)
+]],
+
+ }
+
+}
+
+-- -- math -- --
+
+tasks.new {
+ name = "math",
+ processor = nodeprocessor,
+ sequence = {
+ "before",
+ "normalizers",
+ "builders",
+ "finalizers",
+ "after",
+ },
+ templates = {
+
+default = [[
+return function(head)
+ return head
+end
+]],
+
+process = [[
+local tonut = nodes.tonut
+local tonode = nodes.nuts.tonode
+
+%localize%
+
+return function(head,style,penalties,beginclass,endclass,level)
+ local nuthead = tonut(head)
+
+%actions%
+ return tonode(nuthead)
+end
+]],
+
+step = [[
+ nuthead = tonut((%action%(tonode(nuthead),style,penalties,beginclass,endclass,level)))
+]],
+
+nut = [[
+ nuthead = %action%(nuthead,style,penalties,beginclass,endclass,level)
+]],
+
+nohead = [[
+ %action%(tonode(nuthead),style,penalties,beginclass,endclass,level)
+]],
+
+nonut = [[
+ %action%(nuthead,style,penalties,beginclass,endclass,level)
+]],
+
+ }
+}
+
+-- tasks.new {
+-- name = "parbuilders",
+-- arguments = 1,
+-- processor = nodeprocessor,
+-- sequence = {
+-- "before", -- for users
+-- "lists",
+-- "after", -- for users
+-- }
+-- }
+
+-- tasks.new {
+-- name = "pagebuilders",
+-- arguments = 5,
+-- processor = nodeprocessor,
+-- sequence = {
+-- "before", -- for users
+-- "lists",
+-- "after", -- for users
+-- }
+-- }
+
+-- for now quite useless (too fuzzy)
+--
+-- tasks.new {
+-- name = "listbuilders",
+-- processor = nodeprocessor,
+-- sequence = {
+-- "before", -- for users
+-- "normalizers",
+-- "after", -- for users
+-- },
+-- templates = {
+-- -- we don't need a default
+-- default = [[
+-- return function(box,location,prevdepth)
+-- return box, prevdepth
+-- end
+-- ]],
+-- process = [[
+-- %localize%
+-- return function(box,location,prevdepth,mirrored)
+-- %actions%
+-- return box, prevdepth
+-- end
+-- ]],
+-- step = [[
+-- box, prevdepth = %action%(box,location,prevdepth,mirrored)
+-- ]],
+-- },
+-- }
+
+-- -- math -- --
+
+-- not really a node processor
+
+-- tasks.new {
+-- name = "newpar",
+-- processor = nodeprocessor,
+-- sequence = {
+-- "before",
+-- "normalizers",
+-- "after",
+-- },
+-- templates = {
+--
+-- default = [[
+-- return function(mode,indent)
+-- return indent
+-- end
+-- ]],
+--
+-- process = [[
+-- %localize%
+--
+-- return function(mode,indent)
+--
+-- %actions%
+-- return indent
+-- end
+-- ]],
+--
+-- step = [[
+-- indent = %action%(mode,indent)
+-- ]],
+--
+-- }
+-- }
+
+-- -- localboxes -- --
+
+tasks.new {
+ name = "localboxes",
+ processor = nodeprocessor,
+ sequence = {
+ "before", -- for users
+ "lists",
+ "after", -- for users
+ },
+ templates = {
+
+default = [[
+return function(head)
+end
+]],
+
+process = [[
+local tonut = nodes.tonut
+local tonode = nodes.nuts.tonode
+
+%localize%
+
+-- line,leftbox,rightbox,middlebox,linenumber,leftskip,rightskip,lefthang,righthang,indent,parinitleftskip,parinitrightskip,parfillleftskip,parfillrightskip,overshoot
+
+return function(line,leftbox,rightbox,middlebox,...)
+ nutline = tonut(line)
+ nutleftbox = leftbox and tonut(leftbox)
+ nutrightbox = rightbox and tonut(rightbox)
+ nutmiddlebox = middlebox and tonut(middlebox)
+%actions%
+end
+]],
+
+step = [[
+ tonut((%action%(line,leftbox,rightbox,middlebox,...)))
+]],
+
+nut = [[
+ %action%(nutline,nutleftbox,nutrightbox,nutmiddlebox,...)
+]],
+
+nohead = [[
+ %action%(line,leftbox,rightbox,middlebox,...)
+]],
+
+nonut = [[
+ %action%(nutline,nutleftbox,nutrightbox,nutmiddlebox,...)
+]],
+
+ }
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-tst.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-tst.lmt
new file mode 100644
index 00000000000..c28086f8146
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-tst.lmt
@@ -0,0 +1,97 @@
+if not modules then modules = { } end modules ['node-tst'] = {
+ version = 1.001,
+ comment = "companion to node-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local nodes, node = nodes, node
+
+local chardata = characters.data
+local nodecodes = nodes.nodecodes
+local gluecodes = nodes.gluecodes
+
+local glue_code = nodecodes.glue
+local penalty_code = nodecodes.penalty
+local kern_code = nodecodes.kern
+local glyph_code = nodecodes.glyph
+
+local abovedisplayshortskip_code = gluecodes.abovedisplayshortskip
+local belowdisplayshortskip_code = gluecodes.belowdisplayshortskip
+
+local nuts = nodes.nuts
+
+local getnext = nuts.getnext
+local getprev = nuts.getprev
+local getid = nuts.getid
+local getchar = nuts.getchar
+local getsubtype = nuts.getsubtype
+local getkern = nuts.getkern
+local getpenalty = nuts.getpenalty
+local getwidth = nuts.getwidth
+
+function nuts.somespace(n,all)
+ if n then
+ local id = getid(n)
+ if id == glue_code then
+ return (all or (getwidth(n) ~= 0)) and glue_code -- temp: or 0
+ elseif id == kern_code then
+ return (all or (getkern(n) ~= 0)) and kern_code
+ elseif id == glyph_code then
+ -- maybe more category checks are needed
+ return (chardata[getchar(n)].category == "zs") and glyph_code
+ end
+ end
+ return false
+end
+
+function nuts.somepenalty(n,value)
+ if n then
+ local id = getid(n)
+ if id == penalty_code then
+ if value then
+ return getpenalty(n) == value
+ else
+ return true
+ end
+ end
+ end
+ return false
+end
+
+function nuts.is_display_math(head)
+ local n = getprev(head)
+ while n do
+ local id = getid(n)
+ if id == penalty_code then
+ elseif id == glue_code then
+ if getsubtype(n) == abovedisplayshortskip_code then
+ return true
+ end
+ else
+ break
+ end
+ n = getprev(n)
+ end
+ n = getnext(head)
+ while n do
+ local id = getid(n)
+ if id == penalty_code then
+ elseif id == glue_code then
+ if getsubtype(n) == belowdisplayshortskip_code then
+ return true
+ end
+ else
+ break
+ end
+ n = getnext(n)
+ end
+ return false
+end
+
+nodes.leftmarginwidth = nodes.vianuts(nuts.leftmarginwidth)
+nodes.rightmarginwidth = nodes.vianuts(nuts.rightmarginwidth)
+nodes.somespace = nodes.vianuts(nuts.somespace)
+nodes.somepenalty = nodes.vianuts(nuts.somepenalty)
+nodes.is_display_math = nodes.vianuts(nuts.is_display_math)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/node-typ.lmt b/Master/texmf-dist/tex/context/base/mkxl/node-typ.lmt
new file mode 100644
index 00000000000..c09fd5f67c1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/node-typ.lmt
@@ -0,0 +1,135 @@
+if not modules then modules = { } end modules ['node-typ'] = {
+ version = 1.001,
+ comment = "companion to node-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- code has been moved to blob-ini.lua
+
+local typesetters = nodes.typesetters or { }
+nodes.typesetters = typesetters
+
+local nuts = nodes.nuts
+local tonode = nuts.tonode
+local tonut = nuts.tonut
+
+local setlink = nuts.setlink
+local setchar = nuts.setchar
+local setattrlist = nuts.setattrlist
+
+local getfont = nuts.getfont
+
+local hpack_node_list = nuts.hpack
+local vpack_node_list = nuts.vpack
+local full_hpack_list = nuts.fullhpack
+
+local nodepool = nuts.pool
+local new_glyph = nodepool.glyph
+local new_glue = nodepool.glue
+
+local utfvalues = utf.values
+
+local currentfont = font.current
+local currentattributes = nodes.currentattributes
+local fontparameters = fonts.hashes.parameters
+
+-- when attrid == true then take from glyph or current else use the given value
+
+-- todo: glyphscale etc
+
+local function tonodes(str,fontid,spacing,templateglyph,attrid) -- quick and dirty
+ local head, prev = nil, nil
+ if not fontid then
+ fontid = templateglyph and getfont(templateglyph) or currentfont()
+ end
+ if attrid == true then
+ if templateglyph then
+ attrid = false -- we copy with the glyph
+ else
+ attrid = currentattributes()
+ end
+ end
+ local fp = fontparameters[fontid]
+ local s, p, m
+ if spacing then
+ s, p, m = spacing, 0, 0
+ else
+ s, p, m = fp.space, fp.spacestretch, fp.spaceshrink
+ end
+ local spacedone = false
+ for c in utfvalues(str) do
+ local next
+ if c == 32 then
+ if not spacedone then
+ next = new_glue(s,p,m)
+ spacedone = true
+ end
+ elseif templateglyph then
+ next = copy_glyph(templateglyph)
+ setchar(next,c)
+ spacedone = false
+ else
+ next = new_glyph(fontid or 1,c)
+ spacedone = false
+ end
+ if not next then
+ -- nothing
+ elseif not head then
+ if attrid then
+ setattrlist(next,attrid)
+ end
+ head = next
+ else
+ if attrid then
+ setattrlist(next,attrid)
+ end
+ setlink(prev,next)
+ end
+ prev = next
+ end
+ return head
+end
+
+local function tohpack(str,fontid,spacing)
+ return hpack_node_list(tonodes(str,fontid,spacing),"exactly")
+end
+
+local function tohbox(str,fontid,spacing)
+ return full_hpack_list(tonodes(str,fontid,spacing),"exactly")
+end
+
+local function tovpack(str,fontid,spacing)
+ -- vpack is just a hack, and a proper implementation is on the agenda
+ -- as it needs more info etc than currently available
+ return vpack_node_list(tonodes(str,fontid,spacing))
+end
+
+local tovbox = tovpack -- for now no vpack filter
+
+local tnuts = { }
+nuts.typesetters = tnuts
+
+tnuts.tonodes = tonodes
+tnuts.tohpack = tohpack
+tnuts.tohbox = tohbox
+tnuts.tovpack = tovpack
+tnuts.tovbox = tovbox
+
+typesetters.tonodes = function(...) local h, b = tonodes(...) return tonode(h), b end
+typesetters.tohpack = function(...) local h, b = tohpack(...) return tonode(h), b end
+typesetters.tohbox = function(...) local h, b = tohbox (...) return tonode(h), b end
+typesetters.tovpack = function(...) local h, b = tovpack(...) return tonode(h), b end
+typesetters.tovbox = function(...) local h, b = tovbox (...) return tonode(h), b end
+
+typesetters.hpack = typesetters.tohpack -- obsolete
+typesetters.hbox = typesetters.tohbox -- obsolete
+typesetters.vpack = typesetters.tovpack -- obsolete
+
+-- context(nodes.typesetters.tohpack("Hello World!"))
+-- context(nodes.typesetters.tohbox ("Hello World!"))
+-- context(nodes.typesetters.tohpack("Hello World!",1,100*1024*10))
+-- context(nodes.typesetters.tohbox ("Hello World!",1,100*1024*10))
+
+string.tonodes = function(...) return tonode(tonodes(...)) end -- quite convenient
diff --git a/Master/texmf-dist/tex/context/base/mkxl/norm-ctx.mkxl b/Master/texmf-dist/tex/context/base/mkxl/norm-ctx.mkxl
index 5cee04935b6..0ec92589642 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/norm-ctx.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/norm-ctx.mkxl
@@ -15,73 +15,8 @@
%D A few more might end up here (like the weird ones in syst-ini).
-\let\normalreqno\normaleqno
-
-% more friendly in setups:
-
-\aliased\let\ordordspacing \Umathordordspacing
-\aliased\let\ordopspacing \Umathordopspacing
-\aliased\let\ordbinspacing \Umathordbinspacing
-\aliased\let\ordrelspacing \Umathordrelspacing
-\aliased\let\ordopenspacing \Umathordopenspacing
-\aliased\let\ordclosespacing \Umathordclosespacing
-\aliased\let\ordpunctspacing \Umathordpunctspacing
-\aliased\let\ordinnerspacing \Umathordinnerspacing
-\aliased\let\opordspacing \Umathopordspacing
-\aliased\let\opopspacing \Umathopopspacing
-\aliased\let\opbinspacing \Umathopbinspacing
-\aliased\let\oprelspacing \Umathoprelspacing
-\aliased\let\opopenspacing \Umathopopenspacing
-\aliased\let\opclosespacing \Umathopclosespacing
-\aliased\let\oppunctspacing \Umathoppunctspacing
-\aliased\let\opinnerspacing \Umathopinnerspacing
-\aliased\let\binordspacing \Umathbinordspacing
-\aliased\let\binopspacing \Umathbinopspacing
-\aliased\let\binbinspacing \Umathbinbinspacing
-\aliased\let\binrelspacing \Umathbinrelspacing
-\aliased\let\binopenspacing \Umathbinopenspacing
-\aliased\let\binclosespacing \Umathbinclosespacing
-\aliased\let\binpunctspacing \Umathbinpunctspacing
-\aliased\let\bininnerspacing \Umathbininnerspacing
-\aliased\let\relordspacing \Umathrelordspacing
-\aliased\let\relopspacing \Umathrelopspacing
-\aliased\let\relbinspacing \Umathrelbinspacing
-\aliased\let\relrelspacing \Umathrelrelspacing
-\aliased\let\relopenspacing \Umathrelopenspacing
-\aliased\let\relclosespacing \Umathrelclosespacing
-\aliased\let\relpunctspacing \Umathrelpunctspacing
-\aliased\let\relinnerspacing \Umathrelinnerspacing
-\aliased\let\openordspacing \Umathopenordspacing
-\aliased\let\openopspacing \Umathopenopspacing
-\aliased\let\openbinspacing \Umathopenbinspacing
-\aliased\let\openrelspacing \Umathopenrelspacing
-\aliased\let\openopenspacing \Umathopenopenspacing
-\aliased\let\openclosespacing \Umathopenclosespacing
-\aliased\let\openpunctspacing \Umathopenpunctspacing
-\aliased\let\openinnerspacing \Umathopeninnerspacing
-\aliased\let\closeordspacing \Umathcloseordspacing
-\aliased\let\closeopspacing \Umathcloseopspacing
-\aliased\let\closebinspacing \Umathclosebinspacing
-\aliased\let\closerelspacing \Umathcloserelspacing
-\aliased\let\closeopenspacing \Umathcloseopenspacing
-\aliased\let\closeclosespacing\Umathcloseclosespacing
-\aliased\let\closepunctspacing\Umathclosepunctspacing
-\aliased\let\closeinnerspacing\Umathcloseinnerspacing
-\aliased\let\punctordspacing \Umathpunctordspacing
-\aliased\let\punctopspacing \Umathpunctopspacing
-\aliased\let\punctbinspacing \Umathpunctbinspacing
-\aliased\let\punctrelspacing \Umathpunctrelspacing
-\aliased\let\punctopenspacing \Umathpunctopenspacing
-\aliased\let\punctclosespacing\Umathpunctclosespacing
-\aliased\let\punctpunctspacing\Umathpunctpunctspacing
-\aliased\let\punctinnerspacing\Umathpunctinnerspacing
-\aliased\let\innerordspacing \Umathinnerordspacing
-\aliased\let\inneropspacing \Umathinneropspacing
-\aliased\let\innerbinspacing \Umathinnerbinspacing
-\aliased\let\innerrelspacing \Umathinnerrelspacing
-\aliased\let\inneropenspacing \Umathinneropenspacing
-\aliased\let\innerclosespacing\Umathinnerclosespacing
-\aliased\let\innerpunctspacing\Umathinnerpunctspacing
-\aliased\let\innerinnerspacing\Umathinnerinnerspacing
+\let\normalreqno \normaleqno
+%let\mathtopaccent \normaloverline
+%let\mathbottomaccent\normalunderline
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/pack-bck.mklx b/Master/texmf-dist/tex/context/base/mkxl/pack-bck.mklx
index 3c15beb5f4f..e754c24514a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/pack-bck.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/pack-bck.mklx
@@ -131,7 +131,7 @@
\ifdim\scratchdimen<\zeropoint
\scratchdimen\pagegoal
\fi
- \advance\scratchdimen\dimexpr
+ \advanceby\scratchdimen\dimexpr
-\backgroundparameter\c!topoffset
-\backgroundparameter\c!bottomoffset
\relax
diff --git a/Master/texmf-dist/tex/context/base/mkxl/pack-box.mkxl b/Master/texmf-dist/tex/context/base/mkxl/pack-box.mkxl
index 77b0bbc69c8..5a66d394598 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/pack-box.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/pack-box.mkxl
@@ -51,10 +51,10 @@
%
% \anchor[text-1][preset=lefttop][framed settings]{HELLO WORLD}
-\mutable\let\currentanchor\empty
+\mutable\lettonothing\currentanchor
\permanent\tolerant\protected\def\defineanchor[#1]#*[#2]#*[#3]#*[#4]% name targetlayer layersetting framedsetting
- {\setvalue{\??anchor#1}{\pack_anchors_process_defined{#2}{#3}{#4}}}
+ {\defcsname\??anchor#1\endcsname{\pack_anchors_process_defined{#2}{#3}{#4}}}
\let\pack_anchors_process_defined_indeed\gobbletwooptionals
@@ -92,18 +92,18 @@
\def\pack_anchor_notdefined_two #1#2{\dowithnextbox{\pack_anchors_process_finish\currentanchor{#1}{#2}}\vbox}
\def\pack_anchors_process_indeed#1#2#3{\dowithnextbox{\pack_anchors_process_finish {#1}{#2}{#3}}\vbox}
-\newbox \b_pack_anchors
-\newdimen\d_pack_anchors_width
-\newdimen\d_pack_anchors_height
-\newdimen\d_pack_anchors_depth
+\newbox \b_pack_anchors
+\newdimension\d_pack_anchors_width
+\newdimension\d_pack_anchors_height
+\newdimension\d_pack_anchors_depth
% \definelayer[anchor]
-\newcount\c_pack_anchors_n
-\newtoks \t_pack_anchors_flush
+\newinteger\c_pack_anchors_n
+\newtoks \t_pack_anchors_flush
\protected\def\pack_anchors_register#1#2%
- {\global\advance\c_pack_anchors_n\plusone
+ {\global\advanceby\c_pack_anchors_n\plusone
\pagereference[\v!layer:\v!anchor:\number\c_pack_anchors_n]%
\putboxincache\v!anchor{\number\c_pack_anchors_n}\b_pack_anchors
% \xtoksapp\t_pack_anchors_flush{\pack_anchors_flush{\number\c_pack_anchors_n}{#1}{#2}}%
@@ -228,23 +228,23 @@
\installcorenamespace{collectorcorners}
-\setvalue{\??collectorcorners\v!middle}%
+\defcsname\??collectorcorners\v!middle\endcsname
{\ifdim\d_pack_layers_x_size>\zeropoint
- \advance\d_pack_layers_x_position.5\d_pack_layers_x_size
+ \advanceby\d_pack_layers_x_position.5\d_pack_layers_x_size
\fi
\ifdim\d_pack_layers_y_size>\zeropoint
- \advance\d_pack_layers_y_position.5\d_pack_layers_y_size
+ \advanceby\d_pack_layers_y_position.5\d_pack_layers_y_size
\fi}
-\setvalue{\??collectorcorners\v!bottom}%
+\defcsname\??collectorcorners\v!bottom\endcsname
{\ifdim\d_pack_layers_y_size>\zeropoint
- \advance\d_pack_layers_y_position-\d_pack_layers_y_size
+ \advanceby\d_pack_layers_y_position-\d_pack_layers_y_size
\d_pack_layers_y_position-\d_pack_layers_y_position
\fi}
-\setvalue{\??collectorcorners\v!right}%
+\defcsname\??collectorcorners\v!right\endcsname
{\ifdim\d_pack_layers_x_size>\zeropoint
- \advance\d_pack_layers_x_position-\d_pack_layers_x_size
+ \advanceby\d_pack_layers_x_position-\d_pack_layers_x_size
\d_pack_layers_x_position-\d_pack_layers_x_position
\fi}
@@ -271,13 +271,13 @@
\setbox\nextbox\hpack
{\alignedbox[\collectorparameter\c!location]\vpack{\box\nextbox}}%
\boxmaxdepth\zeropoint % really needed, nice example
- \global\advance\boxhdisplacement\d_pack_layers_x_position
+ \global\advanceby\boxhdisplacement\d_pack_layers_x_position
\ifdim\boxhdisplacement<\zeropoint
\global\setbox\b_pack_boxes_collector\hpack
{\kern-\boxhdisplacement
\box\b_pack_boxes_collector}%
\fi
- \global\advance\boxvdisplacement\d_pack_layers_y_position
+ \global\advanceby\boxvdisplacement\d_pack_layers_y_position
\ifdim\boxvdisplacement<\zeropoint
\global\setbox\b_pack_boxes_collector\hpack
{\lower-\boxvdisplacement
@@ -359,8 +359,8 @@
{\box\nextbox}%
\setcollector
[caption][#1]%
- {\letdummyparameter\c!style\empty
- \letdummyparameter\c!color\empty
+ {\resetdummyparameter\c!style
+ \resetdummyparameter\c!color
\getdummyparameters[#2]%
\dousestyleparameter{\directdummyparameter\c!style}%
\setupinterlinespace
@@ -393,8 +393,8 @@
\installsimpleframedcommandhandler \??layeredtext {layeredtext} \??layeredtext
-\newdimen\d_pack_layeredtexts_width
-\newdimen\d_pack_layeredtexts_height
+\newdimension\d_pack_layeredtexts_width
+\newdimension\d_pack_layeredtexts_height
\definelayer % private
[\??layeredtextlayer]
@@ -465,7 +465,7 @@
\permanent\tolerant\protected\def\ornamenttext[#1]#*[#2]% takes another argument
{\bgroup
- \doifelseassignment{#1}
+ \doifelseassignment{#1}%
{\letdummyparameter\c!alternative\v!a
\getdummyparameters[#1]%
\doifelse{\directdummyparameter\c!alternative}\v!a
@@ -509,7 +509,7 @@
%
% \affiliation{drawing}{\externalfigure[hakker][width=3cm]}
-\newcount\c_pack_boxes_bleeds
+\newinteger\c_pack_boxes_bleeds
\installcorenamespace {bleeding}
@@ -535,25 +535,25 @@
\installcorenamespace{bleedinglocation}
-\setvalue{\??bleedinglocation t}{\settrue\c_pack_boxes_t\scratchhoffset\zeropoint}
-\setvalue{\??bleedinglocation b}{\settrue\c_pack_boxes_b\scratchhoffset\zeropoint}
-\setvalue{\??bleedinglocation l}{\settrue\c_pack_boxes_l\scratchvoffset\zeropoint}
-\setvalue{\??bleedinglocation r}{\settrue\c_pack_boxes_r\scratchvoffset\zeropoint}
-\setvalue{\??bleedinglocation bl}{\settrue\c_pack_boxes_l\settrue\c_pack_boxes_b}
-\setvalue{\??bleedinglocation lb}{\settrue\c_pack_boxes_l\settrue\c_pack_boxes_b}
-\setvalue{\??bleedinglocation br}{\settrue\c_pack_boxes_r\settrue\c_pack_boxes_b}
-\setvalue{\??bleedinglocation rb}{\settrue\c_pack_boxes_r\settrue\c_pack_boxes_b}
-\setvalue{\??bleedinglocation tl}{\settrue\c_pack_boxes_l\settrue\c_pack_boxes_t}
-\setvalue{\??bleedinglocation lt}{\settrue\c_pack_boxes_l\settrue\c_pack_boxes_t}
-\setvalue{\??bleedinglocation tr}{\settrue\c_pack_boxes_r\settrue\c_pack_boxes_t}
-\setvalue{\??bleedinglocation rt}{\settrue\c_pack_boxes_r\settrue\c_pack_boxes_t}
-
-\mutable\let\currentbleedposition\empty
-\mutable\let\currentpageposition \empty
+\defcsname\??bleedinglocation t\endcsname{\settrue\c_pack_boxes_t\scratchhoffset\zeropoint}
+\defcsname\??bleedinglocation b\endcsname{\settrue\c_pack_boxes_b\scratchhoffset\zeropoint}
+\defcsname\??bleedinglocation l\endcsname{\settrue\c_pack_boxes_l\scratchvoffset\zeropoint}
+\defcsname\??bleedinglocation r\endcsname{\settrue\c_pack_boxes_r\scratchvoffset\zeropoint}
+\defcsname\??bleedinglocation bl\endcsname{\settrue\c_pack_boxes_l\settrue\c_pack_boxes_b}
+\defcsname\??bleedinglocation lb\endcsname{\settrue\c_pack_boxes_l\settrue\c_pack_boxes_b}
+\defcsname\??bleedinglocation br\endcsname{\settrue\c_pack_boxes_r\settrue\c_pack_boxes_b}
+\defcsname\??bleedinglocation rb\endcsname{\settrue\c_pack_boxes_r\settrue\c_pack_boxes_b}
+\defcsname\??bleedinglocation tl\endcsname{\settrue\c_pack_boxes_l\settrue\c_pack_boxes_t}
+\defcsname\??bleedinglocation lt\endcsname{\settrue\c_pack_boxes_l\settrue\c_pack_boxes_t}
+\defcsname\??bleedinglocation tr\endcsname{\settrue\c_pack_boxes_r\settrue\c_pack_boxes_t}
+\defcsname\??bleedinglocation rt\endcsname{\settrue\c_pack_boxes_r\settrue\c_pack_boxes_t}
+
+\mutable\lettonothing\currentbleedposition
+\mutable\lettonothing\currentpageposition
\permanent\tolerant\protected\def\bleed[#1]%
{\hbox\bgroup
- \global\advance\c_pack_boxes_bleeds\plusone
+ \global\advanceby\c_pack_boxes_bleeds\plusone
%
\enforced\permanent\xdef\bleedwidth {\the\hsize}%
\enforced\permanent\xdef\bleedheight{\the\vsize}%
@@ -694,10 +694,10 @@
\permanent\tolerant\protected\def\setlayertext[#1]#*[#2]#*[#3]%
{\bgroup
- \letdummyparameter\c!align\empty
- \letdummyparameter\c!width\hsize
- \letdummyparameter\c!color\empty
- \letdummyparameter\c!style\empty
+ \resetdummyparameter\c!align
+ \letdummyparameter \c!width\hsize
+ \resetdummyparameter\c!color
+ \resetdummyparameter\c!style
\getdummyparameters[#3]%
\dowithnextboxcontent
{\forgetall
@@ -859,10 +859,10 @@
\pack_boxes_offset_check[#1]%
\dowithnextboxcs\pack_boxes_offsetfinish\hbox}
-\newcount\c_pack_boxes_offset_level
+\newinteger\c_pack_boxes_offset_level
\def\pack_boxes_offset_check
- {\advance\c_pack_boxes_offset_level\plusone
+ {\advanceby\c_pack_boxes_offset_level\plusone
\edef\currentoffsetbox{\the\c_pack_boxes_offset_level}%
\checkoffsetboxparent
\setupcurrentoffsetbox}
@@ -1030,8 +1030,8 @@
\ifcase\scratchcounter
% just one
\else
- \scratchdimen\scratchwidth \divide\scratchdimen\wd\nextbox\scratchnx\scratchdimen\advance\scratchnx\plusone\relax
- \scratchdimen\scratchheight\divide\scratchdimen\ht\nextbox\scratchny\scratchdimen\advance\scratchny\plusone\relax
+ \scratchdimen\scratchwidth \divideby\scratchdimen\wd\nextbox\scratchnx\scratchdimen\advanceby\scratchnx\plusone\relax
+ \scratchdimen\scratchheight\divideby\scratchdimen\ht\nextbox\scratchny\scratchdimen\advanceby\scratchny\plusone\relax
% to be considered: methods
\ifcase\scratchcounter
\or % x and y
@@ -1118,4 +1118,224 @@
[\c!width=\overlaywidth,\c!height=\overlayheight]
{\overlayimage{#1}}}
+%D Here is an end December 2021 experimental feature: anchored boxes.
+
+\installcorenamespace{boxanchor}
+\installcorenamespace{boxanchorid}
+\installcorenamespace{boxanchorbox}
+\installcorenamespace{boxpreset}
+\installcorenamespace{boxanchors}
+
+\installparameterhandler \??boxanchor {boxanchor}
+\installsetuphandler \??boxanchor {boxanchor}
+
+\setupboxanchor
+ [\c!xoffset=\zeropoint,
+ \c!yoffset=\zeropoint]
+
+\newinteger\c_boxes_n_of_anchors
+
+\permanent\protected\def\defineanchorbox[#1]%
+ {\ifcsname\??boxanchorid#1\endcsname
+ \box\lastnamedcs\emptybox
+ \else
+ \global\advanceby\c_boxes_n_of_anchors\plusone
+ \expandafter\integerdef\csname\??boxanchorid #1\endcsname\c_boxes_n_of_anchors
+ \expandafter\newbox \csname\??boxanchorbox#1\endcsname
+ \fi}
+
+\permanent\protected\def\defineanchorboxoverlay[#1]%
+ {\defineanchorbox[#1:\v!background]%
+ \defineanchorbox[#1:\v!foreground]%
+ \defineoverlay[#1:\v!background][\overlayanchorbox{#1:\v!background}]%
+ \defineoverlay[#1:\v!foreground][\overlayanchorbox{#1:\v!foreground}]}
+
+\permanent\def\namedanchorbox#1%
+ {\begincsname\??boxanchorid#1\endcsname} % no checking
+
+\permanent\protected\def\overlayanchorbox#1%
+ {\begingroup
+ \scratchcounter\csname\??boxanchorbox#1\endcsname
+ \ifvoid\scratchcounter\else
+ \boxsource\scratchcounter\namedanchorbox{#1}%
+ \wd\scratchcounter\d_overlay_width
+ \ht\scratchcounter\d_overlay_height
+ \dp\scratchcounter\d_overlay_depth
+ \box\scratchcounter
+ \fi
+ \endgroup}
+
+\permanent\tolerant\protected\def\setanchorbox[#1]#*[#2]%
+ {\begingroup
+ \dowithnextbox
+ {\def\currentanchorbox{#1}%
+ \setupboxanchor[#2]%
+ \scratchcounterone\csname\??boxanchorbox#1\endcsname\relax
+ \scratchxoffset\boxanchorparameter\c!xoffset\relax
+ \scratchyoffset\boxanchorparameter\c!yoffset\relax
+ \boxtarget\nextbox \namedanchorbox {#1}\relax
+ \boxanchors\nextbox
+ % target
+ \numexpr
+ \ifcsname\??boxpreset\boxanchorparameter\c!target\endcsname
+ \lastnamedcs
+ \else
+ \halfwaytotallistanchorcode
+ \fi
+ \relax
+ % source
+ \numexpr
+ \ifcsname\??boxpreset\boxanchorparameter\c!source\endcsname
+ \lastnamedcs
+ \else
+ \halfwaytotallistanchorcode
+ \fi
+ \relax
+ \ifzeropt\scratchxoffset\else
+ \boxxoffset\nextbox\scratchxoffset
+ \fi
+ \ifzeropt\scratchyoffset\else
+ \boxyoffset\nextbox\scratchyoffset
+ \fi
+ \global\setbox\scratchcounterone\hpack\bgroup
+ \unhbox\scratchcounterone
+ \kern-\wd\nextbox
+ \box\nextbox
+ \egroup
+ \endgroup}}
+
+\expandafter\integerdef\csname\??boxpreset\v!left \endcsname\leftoriginlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!left,\v!height \endcsname\leftheightlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!left,\v!top \endcsname\leftheightlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!left,\v!depth \endcsname\leftdepthlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!left,\v!bottom \endcsname\leftdepthlistanchorcode
+
+\expandafter\integerdef\csname\??boxpreset\v!right \endcsname\rightoriginlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!right,\v!height \endcsname\rightheightlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!right,\v!top \endcsname\rightheightlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!right,\v!depth \endcsname\rightdepthlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!right,\v!bottom \endcsname\rightdepthlistanchorcode
+
+\expandafter\integerdef\csname\??boxpreset\v!line \endcsname\centeroriginlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!height \endcsname\centerheightlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!depth \endcsname\centerdepthlistanchorcode
+
+\expandafter\integerdef\csname\??boxpreset\v!middle \endcsname\halfwaytotallistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!middle,\v!height\endcsname\halfwayheightlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!middle,\v!top \endcsname\halfwayheightlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!middle,\v!depth \endcsname\halfwaydepthlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!middle,\v!bottom\endcsname\halfwaydepthlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!middle,\v!left \endcsname\halfwayleftlistanchorcode
+\expandafter\integerdef\csname\??boxpreset\v!middle,\v!right \endcsname\halfwayrightlistanchorcode
+
+% Musical timestamp: 2022-02-07 while listening Hypneurotic from The Blurred Horizon (n times);
+% Jim Matheos with Gavin Harrison; very hypnotic indeed.
+
+\permanent\def\boxanchorpresetcode#1%
+ {\ifcsname\??boxpreset#1\endcsname\lastnamedcs\else\halfwaytotallistanchorcode\fi}
+
+\newinteger\registeredboxanchor
+
+\installmacrostack\boxanchoringclass
+
+\mutable\lettonothing\boxanchoringclass
+
+\newinteger\c_anchor_auto_box_class
+
+\permanent\protected\def\startboxanchoring[#1]% + == auto
+ {\push_macro_boxanchoringclass
+ \iftok{#1}{+}%
+ \global\advanceby\c_anchor_auto_box_class\plusone
+ \edef\boxanchoringclass{\the\c_anchor_auto_box_class::}%
+ \else
+ \edef\boxanchoringclass{#1}
+ \fi}
+
+\permanent\protected\def\stopboxanchoring
+ {\pop_macro_boxanchoringclass}
+
+\permanent\protected\def\registerboxanchor
+ {\global\advanceby\registeredboxanchor\minusone}
+
+\permanent\protected\def\defineboxanchor[#1]%
+ {\registerboxanchor
+ \global\expandafter\integerdef\csname\??boxanchors#1\endcsname\registeredboxanchor}
+
+\permanent\protected\def\doifnotanchorbox#1%
+ {\ifcsname\??boxanchors#1\endcsname
+ \expandafter\gobbleoneargument
+ \else
+ \expandafter\firstofoneargument
+ \fi}
+
+\permanent\def\namedboxanchor#1%
+ {\normalexpanded{\ifcsname\??boxanchors#1\endcsname\lastnamedcs\orelse\ifchknum#1\or#1\else\zerocount\fi}}
+
+\permanent\def\namespacedboxanchor#1%
+ {boxanchor:\number\namedboxanchor{#1}}
+
+\installcorenamespace{boxanchorcontent}
+
+% \installparameterhandler \??boxanchorcontent {boxanchorcontent}
+% \installautosetuphandler \??boxanchorcontent {boxanchorcontent}
+
+\installcommandhandler \??boxanchorcontent {boxanchorcontent} \??boxanchorcontent % no real need but let's have a define too
+
+\setupboxanchorcontent
+ [\c!yoffset=\zeropoint,
+ \c!xoffset=\zeropoint,
+ \c!width=\zeropoint,
+ \c!location=\v!height,
+ \c!corner=\v!depth]
+
+\permanent\tolerant\protected\def\setboxanchor[#1]#*[#2]#*[#3]#*% assumes \defineboxanchor[#1]
+ {\begingroup
+ \dowithnextbox
+ {\ifhastok={#2}%
+ \setupcurrentboxanchorcontent[#2]%
+ \else
+ \def\currentboxanchorcontent{#2}%
+ \setupcurrentboxanchorcontent[#3]%
+ \fi
+ \scratchxoffset\boxanchorcontentparameter\c!xoffset
+ \scratchyoffset\boxanchorcontentparameter\c!yoffset
+ \scratchcounter\namedboxanchor{#1}%
+ \registeranchorbox
+ \scratchcounter
+ \plusone % order
+ \hbox
+ \s!anchors % check order of these:
+ \boxanchorpresetcode{\boxanchorcontentparameter\c!corner}
+ \boxanchorpresetcode{\boxanchorcontentparameter\c!location}
+ \ifzeropt\scratchxoffset\else \s!xoffset \scratchxoffset\fi
+ \ifzeropt\scratchyoffset\else \s!yoffset \scratchyoffset\fi
+ \s!target \scratchcounter
+ {\box\nextbox}%
+ \endgroup}}
+
+%D The name might change:
+
+\permanent\protected\def\mathrowanchored #1{\alignmentwrapsource\namedboxanchor{#1}\relax}
+\permanent\protected\def\mathcellanchored#1{\alignmentcellsource\namedboxanchor{#1}\relax}
+
+%permanent\protected\def\mathboxanchored#1#2{#2\Umathsource\namedboxanchor{#1}\relax}
+
+\permanent\tolerant\protected\def\mathboxanchored[#1]#:#2#3%
+ {#3\Umathsource\iftok{#1}{nucleus}#1\fi\namedboxanchor{\boxanchoringclass:#2}\relax}
+
+% to be used as:
+%
+% \scratchcounter\registeredboxanchor
+%
+% \registeranchorbox
+% \scratchcounter
+% \plusone
+% \ruledhbox{...}
+%
+% \hbox source \scratchcounter
+
+% \negatexlistsigncode
+% \negateylistsigncode
+% \negatelistsigncode
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/pack-com.mkxl b/Master/texmf-dist/tex/context/base/mkxl/pack-com.mkxl
index 44cfc9a4fa2..0fff4ca1bbf 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/pack-com.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/pack-com.mkxl
@@ -75,18 +75,24 @@
\globalresetsystemmode{combination}%
\to \everyinsidefloat
-\newcount\c_pack_combinations_nesting % local
-
-\newcount\c_pack_combinations_x % global
-\newcount\c_pack_combinations_y % global
-\newcount\c_pack_combinations_max % global
-
-\newdimen\d_pack_combinations_ht % global
-
-\newbox \b_pack_combinations_captions % global % can go
-\newbox \b_pack_combinations_temp % global % can go
-\newbox \b_pack_combinations_content % local
-\newbox \b_pack_combinations_caption % local
+\newinteger \c_pack_combinations_nesting % local
+
+\newinteger \c_pack_combinations_x % global
+\newinteger \c_pack_combinations_y % global
+\newinteger \c_pack_combinations_x_saved
+\newinteger \c_pack_combinations_y_saved
+\newinteger \c_pack_combinations_max % global
+\newinteger \c_pack_combinations_max_saved
+\newdimension\d_pack_combinations_ht % global
+\newdimension\d_pack_combinations_ht_saved
+\newbox \b_pack_combinations_captions % global % can go
+\newbox \b_pack_combinations_captions_saved
+\newbox \b_pack_combinations_temp % global % can go
+\newbox \b_pack_combinations_temp_saved
+\newbox \b_pack_combinations_content % local
+\newbox \b_pack_combinations_content_saved
+\newbox \b_pack_combinations_caption % local
+\newbox \b_pack_combinations_caption_saved
\installcorenamespace{combination}
@@ -95,21 +101,10 @@
\initializeboxstack{\??combination captions}
\initializeboxstack{\??combination temp}
-\newcount\c_pack_combinations_x_saved
-\newcount\c_pack_combinations_y_saved
-\newcount\c_pack_combinations_max_saved
-
-\newdimen\d_pack_combinations_ht_saved
-
-\newbox \b_pack_combinations_captions_saved
-\newbox \b_pack_combinations_temp_saved
-\newbox \b_pack_combinations_content_saved
-\newbox \b_pack_combinations_caption_saved
-
\setfalse\c_strc_constructions_define_commands
\def\pack_combinations_push
- {\advance\c_pack_combinations_nesting\plusone
+ {\advanceby\c_pack_combinations_nesting\plusone
\ifnum\c_pack_combinations_nesting>\plusone
\c_pack_combinations_x_saved \c_pack_combinations_x
\c_pack_combinations_y_saved \c_pack_combinations_y
@@ -136,7 +131,7 @@
\else
\globalresetsystemmode{combination}% why global
\fi
- \advance\c_pack_combinations_nesting\minusone}
+ \advanceby\c_pack_combinations_nesting\minusone}
\definelabel
[\v!combination] % handy for configuring
@@ -174,10 +169,10 @@
\settrue\c_strc_constructions_define_commands
\to \everydefinecombination
-\setvalue{\??combinationlocation\v!left }{\let\m_pack_combinations_leftfiller\relax}
-\setvalue{\??combinationlocation\v!right }{\let\m_pack_combinations_rightfiller\relax}
-\setvalue{\??combinationlocation\v!top }{\let\m_pack_combinations_valigner\depthonlybox}
-\setvalue{\??combinationlocation\v!middle}{\let\m_pack_combinations_valigner\halfwaybox}
+\defcsname\??combinationlocation\v!left \endcsname{\let\m_pack_combinations_leftfiller \relax}
+\defcsname\??combinationlocation\v!right \endcsname{\let\m_pack_combinations_rightfiller\relax}
+\defcsname\??combinationlocation\v!top \endcsname{\let\m_pack_combinations_valigner \depthonlybox}
+\defcsname\??combinationlocation\v!middle\endcsname{\let\m_pack_combinations_valigner \halfwaybox}
\def\pack_combinations_location_reset
{\let\m_pack_combinations_rightfiller\hfil
@@ -228,16 +223,101 @@
\newtoks\everycombination
-\aliased\let\combination\empty
+\aliased\lettonothing\combination
-\let\p_nx_ny\empty
+\lettonothing\p_nx_ny
-\permanent\protected\def\stopcombination
- {\bgroup\normalexpanded{\egroup{}\ntimes{{}{}}\c_pack_combinations_y}% brr
- \dostoptagged
- \egroup
- \pack_combinations_pop
- \egroup}
+% \permanent\tolerant\protected\def\startcombination[#1]#*[#2]% can be simplified
+% {\bgroup % so we can grab a group
+% \pack_combinations_push
+% \edef\currentcombination{#1}%
+% \edef\p_nx_ny{#2}%
+% %
+% \ifempty\p_nx_ny
+% \ifcondition\validassignment{#1}%
+% \lettonothing\currentcombination
+% \setupcurrentcombination[#1]%
+% \edef\p_nx_ny{\combinationparameter\c!nx*\combinationparameter\c!ny*}%
+% \else
+% \doifelseinstring{*}\currentcombination
+% {\edef\p_nx_ny{\currentcombination*\plusone*}%
+% \lettonothing\currentcombination}
+% {\doifelsenumber\currentcombination
+% {\edef\p_nx_ny{\currentcombination*\plusone*}%
+% \lettonothing\currentcombination}
+% {\edef\p_nx_ny{\combinationparameter\c!nx*\combinationparameter\c!ny*}}}%
+% \fi
+% \else
+% \ifcondition\validassignment{#2}%
+% \setupcurrentcombination[#2]%
+% \edef\p_nx_ny{\combinationparameter\c!nx*\combinationparameter\c!ny*}%
+% \else
+% \edef\p_nx_ny{\p_nx_ny*\plusone*}%
+% \fi
+% \fi
+% %
+% % test first:
+% %
+% % \ifempty\p_nx_ny
+% % \ifhastok={#1}%
+% % \lettonothing\currentcombination
+% % \setupcurrentcombination[#1]%
+% % \edef\p_nx_ny{\combinationparameter\c!nx*\combinationparameter\c!ny*}%
+% % \orelse\ifhastok*{\currentcombination}%
+% % \edef\p_nx_ny{\currentcombination*\plusone*}%
+% % \lettonothing\currentcombination
+% % \orelse\ifchknum\currentcombination\or
+% % \edef\p_nx_ny{\currentcombination*\plusone*}%
+% % \lettonothing\currentcombination
+% % \else
+% % \edef\p_nx_ny{\combinationparameter\c!nx*\combinationparameter\c!ny*}%
+% % \fi
+% % \orelse\ifhastok={#2}%
+% % \setupcurrentcombination[#2]%
+% % \edef\p_nx_ny{\combinationparameter\c!nx*\combinationparameter\c!ny*}%
+% % \else
+% % \edef\p_nx_ny{\p_nx_ny*\plusone*}%
+% % \fi
+% %
+% \forgetall
+% %
+% \the\everycombination
+% %
+% \enforced\let\startcontent\pack_common_content_start
+% \enforced\let\stopcontent \pack_common_content_stop
+% \enforced\let\startcaption\pack_common_caption_start
+% \enforced\let\stopcaption \pack_common_caption_stop
+% %
+% \edef\p_height {\combinationparameter\c!height}%
+% \edef\p_width {\combinationparameter\c!width}%
+% \edef\p_location{\combinationparameter\c!location}%
+% \edef\p_distance{\combinationparameter\c!distance}%
+% %
+% \pack_combinations_location_reset
+% \rawprocesscommacommand[\p_location]\pack_combinations_location_step
+% %
+% \dostarttaggedchained\t!combination\currentcombination\??combination
+% \vbox \ifx\p_height\v!fit\else to \p_height \fi \bgroup
+% \enforced\lettonothing\combination % permits \combination{}{} handy for cld
+% \normalexpanded{\pack_combinations_start_indeed[\p_nx_ny]}}
+%
+% \permanent\protected\def\stopcombination
+% {\bgroup\normalexpanded{\egroup{}\ntimes{{}{}}\c_pack_combinations_y}% brr
+% \dostoptagged
+% \egroup
+% \pack_combinations_pop
+% \egroup}
+
+\installcorenamespace{combinationmethod}
+
+% \defcsname\??combinationmethod:\v!start\endcsname
+% {}
+%
+% \defcsname\??combinationmethod\endcsname
+% {\vbox}
+%
+% \defcsname\??combinationmethod:\v!stop\endcsname
+% {}
\permanent\tolerant\protected\def\startcombination[#1]#*[#2]% can be simplified
{\bgroup % so we can grab a group
@@ -247,16 +327,16 @@
%
\ifempty\p_nx_ny
\ifcondition\validassignment{#1}%
- \let\currentcombination\empty
+ \lettonothing\currentcombination
\setupcurrentcombination[#1]%
\edef\p_nx_ny{\combinationparameter\c!nx*\combinationparameter\c!ny*}%
\else
\doifelseinstring{*}\currentcombination
{\edef\p_nx_ny{\currentcombination*\plusone*}%
- \let\currentcombination\empty}
+ \lettonothing\currentcombination}
{\doifelsenumber\currentcombination
{\edef\p_nx_ny{\currentcombination*\plusone*}%
- \let\currentcombination\empty}
+ \lettonothing\currentcombination}
{\edef\p_nx_ny{\combinationparameter\c!nx*\combinationparameter\c!ny*}}}%
\fi
\else
@@ -267,20 +347,21 @@
\edef\p_nx_ny{\p_nx_ny*\plusone*}%
\fi
\fi
+ \begincsname\??combinationmethod\combinationparameter\c!method:\v!start\endcsname
%
% test first:
%
% \ifempty\p_nx_ny
% \ifhastok={#1}%
-% \let\currentcombination\empty
+% \lettonothing\currentcombination
% \setupcurrentcombination[#1]%
% \edef\p_nx_ny{\combinationparameter\c!nx*\combinationparameter\c!ny*}%
% \orelse\ifhastok*{\currentcombination}%
% \edef\p_nx_ny{\currentcombination*\plusone*}%
-% \let\currentcombination\empty
+% \lettonothing\currentcombination
% \orelse\ifchknum\currentcombination\or
% \edef\p_nx_ny{\currentcombination*\plusone*}%
-% \let\currentcombination\empty
+% \lettonothing\currentcombination
% \else
% \edef\p_nx_ny{\combinationparameter\c!nx*\combinationparameter\c!ny*}%
% \fi
@@ -309,12 +390,25 @@
\rawprocesscommacommand[\p_location]\pack_combinations_location_step
%
\dostarttaggedchained\t!combination\currentcombination\??combination
- \vbox \ifx\p_height\v!fit\else to \p_height \fi \bgroup
- \enforced\let\combination\empty % permits \combination{}{} handy for cld
+% \vbox \ifx\p_height\v!fit\else to \p_height \fi \bgroup
+ \ifcsname\??combinationmethod\combinationparameter\c!method\endcsname
+ \lastnamedcs\else\vbox
+ \fi\ifx\p_height\v!fit\else to \p_height \fi \bgroup
+ \enforced\lettonothing\combination % permits \combination{}{} handy for cld
\normalexpanded{\pack_combinations_start_indeed[\p_nx_ny]}}
+\permanent\protected\def\stopcombination
+ {\bgroup\normalexpanded{\egroup{}\ntimes{{}{}}\c_pack_combinations_y}% brr
+ \dostoptagged
+ \egroup
+ \begincsname\??combinationmethod\combinationparameter\c!method:\v!stop\endcsname
+ \pack_combinations_pop
+ \egroup}
+
\let\pack_combinations_check_x_y\relax
+\aliased\let\combinationwidth\!!zeropoint
+
\protected\def\pack_combinations_start_indeed[#1*#2*#3]%
{\global\c_pack_combinations_x#1\relax
\global\c_pack_combinations_y#2\relax
@@ -324,16 +418,21 @@
\dotagcombination
\global\setbox\b_pack_combinations_captions\emptybox
\global\c_pack_combinations_max\c_pack_combinations_x
- \multiply\c_pack_combinations_y\c_pack_combinations_x
+ \multiplyby\c_pack_combinations_y\c_pack_combinations_x
\tabskip\zeropoint
+ \enforced\permanent\protected\edef\combinationwidth % \immutable
+ {\the\dimexpr
+ (\hsize-\numexpr\c_pack_combinations_x-\plusone\relax\dimexpr\combinationparameter\c!distance\relax)/\c_pack_combinations_x
+ \relax}%
\halign \ifx\p_width\v!fit\else to \p_width \fi \bgroup % repetitive preamble
+ % \halign noskips \ifx\p_width\v!fit\else to \p_width \fi \bgroup % repetitive preamble
\aligntab
\m_pack_combinations_leftfiller
- \alignmark\alignmark
+ \aligncontent
\m_pack_combinations_rightfiller
\aligntab
\tabskip\zeropoint \s!plus 1fill % \fillskip
- \alignmark\alignmark
+ \aligncontent
\cr
\pack_combinations_pickup}
@@ -359,10 +458,10 @@
\dostarttagged\t!combinationcaption\empty
\expandnamespacemacro\??combinationalternative\p_pack_combinations_alternative\v!text}
-\setvalue{\??combinationalternative\v!text}%
+\defcsname\??combinationalternative\v!text\endcsname
{\expandafterpars\pack_combinations_alternative_text_indeed}
-\setvalue{\??combinationalternative\v!label}%
+\defcsname\??combinationalternative\v!label\endcsname
{\expandafterpars\pack_combinations_alternative_label_indeed}
\def\pack_combinations_alternative_text_indeed
@@ -422,8 +521,8 @@
% we need to save the caption for a next alignment line
\pack_combinations_save_caption}%
\ifnum\c_pack_combinations_y>\plusone
- \global\advance\c_pack_combinations_y\minusone
- \global\advance\c_pack_combinations_x\minusone
+ \global\advanceby\c_pack_combinations_y\minusone
+ \global\advanceby\c_pack_combinations_x\minusone
\ifcase\c_pack_combinations_x
\doubleexpandafter\pack_combinations_pickup_package_pair_a
\else
@@ -488,7 +587,7 @@
\foundbox{\??combinationcaption:\number\c_pack_combinations_nesting}{\number\c_pack_combinations_x}%
\vss
\egroup
- \global\advance\c_pack_combinations_x\minusone
+ \global\advanceby\c_pack_combinations_x\minusone
\ifnum\c_pack_combinations_x>\zerocount % \c_pack_combinations_max
\expandafter\pack_combinations_flush_captions_yes_followup
\else
@@ -558,7 +657,7 @@
{\pack_combinations_float_hack_b{\recurselevel}}%
\to\scratchtoks}% brrr
\let\pack_combinations_check_x_y\pack_combinations_float_check_x_y
- \expanded{\startcombination[#1]\the\scratchtoks}\stopcombination
+ \normalexpanded{\startcombination[#1]\the\scratchtoks}\stopcombination
\resetlocalfloats
\egroup}
@@ -708,15 +807,15 @@
% watch the hsize/vsize tricks
-\newbox \b_pack_pairedboxes_first
-\newbox \b_pack_pairedboxes_second
-\newdimen\s_pack_pairedboxes_size
+\newbox \b_pack_pairedboxes_first
+\newbox \b_pack_pairedboxes_second
+\newdimension\s_pack_pairedboxes_size
\appendtoks
- \frozen\instance\setuevalue{\e!setup\currentpairedbox\e!endsetup}{\setuppairedbox [\currentpairedbox]}%
- \frozen\instance\setuevalue{\e!place\currentpairedbox }{\placepairedbox [\currentpairedbox]}% one argument is mandate anyway
- \frozen\instance\setuevalue{\e!start\e!place\currentpairedbox }{\startplacepairedbox[\currentpairedbox]}% one argument is mandate anyway
- \frozen\instance\setuevalue{\e!stop\e!place \currentpairedbox }{\stopplacepairedbox }%
+ \frozen\protected\instance\edefcsname\e!setup\currentpairedbox\e!endsetup\endcsname{\setuppairedbox [\currentpairedbox]}%
+ \frozen\protected\instance\edefcsname\e!place\currentpairedbox \endcsname{\placepairedbox [\currentpairedbox]}% one argument is mandate anyway
+ \frozen\protected\instance\edefcsname\e!start\e!place\currentpairedbox \endcsname{\startplacepairedbox[\currentpairedbox]}% one argument is mandate anyway
+ \frozen\protected\instance\edefcsname\e!stop\e!place \currentpairedbox \endcsname{\stopplacepairedbox }%
\to \everydefinepairedbox
\permanent\tolerant\protected\def\startplacepairedbox[#1]#*[#2]%
@@ -981,10 +1080,10 @@
\def\pack_sidebyside_one {\bgroup\setbox\scratchboxone\box\nextbox\dowithnextboxcs\pack_sidebyside_two \hbox}
\def\pack_topofeachother_two{\setbox\scratchboxtwo\box\nextbox
- \halign{\hss\alignmark\alignmark\hss\cr\box\scratchboxone\cr\box\scratchboxtwo\cr}%
+ \halign{\hss\aligncontent\hss\cr\box\scratchboxone\cr\box\scratchboxtwo\cr}%
\egroup\egroup}
\def\pack_sidebyside_two {\setbox\scratchboxtwo\box\nextbox
- \valign{\vss\alignmark\alignmark\vss\cr\box\scratchboxone\cr\box\scratchboxtwo\cr}%
+ \valign{\vss\aligncontent\vss\cr\box\scratchboxone\cr\box\scratchboxtwo\cr}%
\egroup\egroup}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/pack-cut.mkxl b/Master/texmf-dist/tex/context/base/mkxl/pack-cut.mkxl
index 0cd06ed43e8..772b2ba6466 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/pack-cut.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/pack-cut.mkxl
@@ -13,6 +13,8 @@
\unprotect
+% to be redone in a more modern way
+
%D \macros
%D {makecutbox, cuthbox, cutvbox, cutvtop}
%D
@@ -47,22 +49,23 @@
%D By setting the next macros one can influence the length of the marks as well as
%D the horizontal and vertical divisions.
-\newdimen\d_pack_cutmarks_width
-\newdimen\d_pack_cutmarks_height
-\newdimen\d_pack_cutmarks_depth
+\newdimension\d_pack_cutmarks_width
+\newdimension\d_pack_cutmarks_height
+\newdimension\d_pack_cutmarks_depth
-\newcount\horizontalcutmarks \horizontalcutmarks \plustwo
-\newcount\verticalcutmarks \verticalcutmarks \plustwo
-\newcount\cutmarkoffset \cutmarkoffset \plusone
+\newinteger \horizontalcutmarks \horizontalcutmarks \plustwo
+\newinteger \verticalcutmarks \verticalcutmarks \plustwo
+\newinteger \cutmarkoffset \cutmarkoffset \plusone
\mutable\let\cutmarksymbol \relax
-\mutable\let\cutmarktoptext \empty
-\mutable\let\cutmarkbottomtext \empty
-\mutable\let\cutmarkhoffset \empty
-\mutable\let\cutmarkvoffset \empty
\mutable\def\cutmarklength {2\bodyfontsize}
\mutable\def\cutmarkrulethickness{\onepoint}
+\mutable\lettonothing\cutmarktoptext
+\mutable\lettonothing\cutmarkbottomtext
+\mutable\lettonothing\cutmarkhoffset
+\mutable\lettonothing\cutmarkvoffset
+
\permanent\protected\def\horizontalcuts
{\hpack to \d_pack_cutmarks_width
{\dorecurse\horizontalcutmarks{\vrule\s!width\cutmarkrulethickness\s!height\cutmarklength\hfill}%
@@ -101,9 +104,8 @@
\vss}%
\hss}}
-\permanent\protected\def\makecutbox#1%
- {\bgroup
- \d_pack_cutmarks_height\ht#1%
+\permanent\protected\def\makecutbox#1% not grouped !
+ {\d_pack_cutmarks_height\ht#1%
\d_pack_cutmarks_depth \dp#1%
\d_pack_cutmarks_width \wd#1%
\setbox#1\hpack
@@ -121,7 +123,7 @@
{\scratchskip\ifempty\cutmarkhoffset\cutmarkoffset\scratchdimen\else\cutmarkhoffset\fi
\setbox\scratchbox\hpack{\verticalcuts}%
\llap{\copy\scratchbox\hskip\scratchskip}%
- \ifdim\d_pack_cutmarks_depth=\zeropoint
+ \ifzeropt\d_pack_cutmarks_depth
\hfill
\else
\bgroup
@@ -155,7 +157,7 @@
\wd#1\d_pack_cutmarks_width
\ht#1\d_pack_cutmarks_height
\dp#1\d_pack_cutmarks_depth
- \egroup}
+ \box#1}
\permanent\protected\def\cuthbox{\hpack\bgroup\dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\hbox}
\permanent\protected\def\cutvbox{\vpack\bgroup\dowithnextbox{\makecutbox\nextbox\flushnextbox\egroup}\vbox}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/pack-lyr.mkxl b/Master/texmf-dist/tex/context/base/mkxl/pack-lyr.mkxl
index 3c0352bf3d1..b93d3296079 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/pack-lyr.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/pack-lyr.mkxl
@@ -97,51 +97,51 @@
\permanent\def\layeranchor{\currentlayer:\the\realpageno}
-\let\p_pack_layers_doublesided\empty
-\let\p_pack_layers_state \empty
-\let\p_pack_layers_option \empty
-\let\p_pack_layers_method \empty
-\let\p_pack_layers_preset \empty
-\let\p_pack_layers_rotation \empty
-\let\p_pack_layers_position \empty
-\let\p_pack_layers_hoffset \empty
-\let\p_pack_layers_voffset \empty
-\let\p_pack_layers_offset \empty
-\let\p_pack_layers_dx \empty
-\let\p_pack_layers_dy \empty
-\let\p_pack_layers_sx \empty
-\let\p_pack_layers_sy \empty
-\let\p_pack_layers_x \empty
-\let\p_pack_layers_y \empty
-\let\p_pack_layers_corner \empty
-\let\p_pack_layers_location \empty
-\let\p_pack_layers_line \empty
-\let\p_pack_layers_column \empty
-\let\p_pack_layers_width \empty
-\let\p_pack_layers_height \empty
-\let\p_pack_layers_direction \empty
-\let\p_pack_layers_region \empty
-
-\let\m_pack_layers_page \empty
-\let\m_pack_layers_target \empty
-\let\m_pack_layers_region \empty
-\let\m_pack_layers_anchor \empty
+\lettonothing\p_pack_layers_doublesided
+\lettonothing\p_pack_layers_state
+\lettonothing\p_pack_layers_option
+\lettonothing\p_pack_layers_method
+\lettonothing\p_pack_layers_preset
+\lettonothing\p_pack_layers_rotation
+\lettonothing\p_pack_layers_position
+\lettonothing\p_pack_layers_hoffset
+\lettonothing\p_pack_layers_voffset
+\lettonothing\p_pack_layers_offset
+\lettonothing\p_pack_layers_dx
+\lettonothing\p_pack_layers_dy
+\lettonothing\p_pack_layers_sx
+\lettonothing\p_pack_layers_sy
+\lettonothing\p_pack_layers_x
+\lettonothing\p_pack_layers_y
+\lettonothing\p_pack_layers_corner
+\lettonothing\p_pack_layers_location
+\lettonothing\p_pack_layers_line
+\lettonothing\p_pack_layers_column
+\lettonothing\p_pack_layers_width
+\lettonothing\p_pack_layers_height
+\lettonothing\p_pack_layers_direction
+\lettonothing\p_pack_layers_region
+
+\lettonothing\m_pack_layers_page
+\lettonothing\m_pack_layers_target
+\lettonothing\m_pack_layers_region
+\lettonothing\m_pack_layers_anchor
\newconditional\c_pack_layers_repeated
\newconditional\c_pack_layers_trace
-\newcount \c_pack_layers_current_data
+\newinteger \c_pack_layers_current_data
\newbox\b_layers \pushoverloadmode \mutable\let\b_layers\b_layers \popoverloadmode
-\newdimen\d_pack_layers_x_size
-\newdimen\d_pack_layers_y_size
-\newdimen\d_pack_layers_x_offset
-\newdimen\d_pack_layers_y_offset
-\newdimen\d_pack_layers_x_position
-\newdimen\d_pack_layers_y_position
+\newdimension\d_pack_layers_x_size
+\newdimension\d_pack_layers_y_size
+\newdimension\d_pack_layers_x_offset
+\newdimension\d_pack_layers_y_offset
+\newdimension\d_pack_layers_x_position
+\newdimension\d_pack_layers_y_position
-\newdimen\layerwidth
-\newdimen\layerheight
+\newdimension\layerwidth
+\newdimension\layerheight
\mutable\let\lastlayerxpos\!!zeropoint
\mutable\let\lastlayerypos\!!zeropoint
@@ -196,8 +196,8 @@
%D \setlayer [identifier] [optional parameters] {data}
%D \stoptyping
-\mutable\let\currentlayerwidth \empty
-\mutable\let\currentlayerheight\empty
+\mutable\lettonothing\currentlayerwidth
+\mutable\lettonothing\currentlayerheight
\permanent\tolerant\protected\def\setcurrentlayerdimensions[#1]#*[#2]% name left|right
{\edef\currentlayerwidth {\thelayerwidth {#2#1}}%
@@ -218,7 +218,7 @@
\edef\m_pack_layers_target{#2}%
\pack_layers_set_indeed{#3}%
\orelse\ifhastok={#2}%
- \let\m_pack_layers_target\empty
+ \lettonothing\m_pack_layers_target
\pack_layers_set_indeed{#2}%
\else
\edef\m_pack_layers_target{#2}%
@@ -227,7 +227,7 @@
\def\pack_layers_set_indeed#1%
{\page_backgrounds_recalculate % brrr
- \global\advance\c_pack_layers_current_data\plusone
+ \global\advanceby\c_pack_layers_current_data\plusone
\forgetall
\dontcomplain
\edef\p_pack_layers_option{\layerparameter\c!option}%
@@ -400,10 +400,12 @@
{\alignedbox[\p_pack_layers_location]\vpack{\box\nextbox}}%
\fi
\ifnum\p_pack_layers_line=\zerocount\else % no \ifcase, can be negative
- \advance\d_pack_layers_y_position\dimexpr\p_pack_layers_line\lineheight+\topskip-\lineheight-\ht\nextbox\relax
+ % \ifzero\p_pack_layers_line\else % todo: test this
+ \advanceby\d_pack_layers_y_position\dimexpr\p_pack_layers_line\lineheight+\topskip-\lineheight-\ht\nextbox\relax
\fi
\ifnum\p_pack_layers_column=\zerocount\else % no \ifcase, can be negative
- \advance\d_pack_layers_x_position\layoutcolumnoffset\p_pack_layers_column\relax
+ % \ifzero\p_pack_layers_column\else % todo: test this
+ \advanceby\d_pack_layers_x_position\layoutcolumnoffset\p_pack_layers_column\relax
\fi
\ifx\p_pack_layers_location\v!grid
\setbox\nextbox\hpack
@@ -414,14 +416,14 @@
\ifdim\scratchdimen<\getboxllx\b_layers_page
\gsetboxllx\b_layers_page\scratchdimen
\fi
- \advance\scratchdimen\wd\nextbox
+ \advanceby\scratchdimen\wd\nextbox
\wd\nextbox\ifdim\scratchdimen>\scratchwidth \scratchdimen \else \scratchwidth \fi
\scratchdimen\dimexpr\d_pack_layers_y_position+\d_pack_layers_y_offset\relax
\ifdim\scratchdimen<\getboxlly\b_layers_page
\gsetboxlly\b_layers_page\scratchdimen
\fi
% ll compensation
- \advance\scratchdimen\dimexpr\ht\nextbox+\dp\nextbox\relax
+ \advanceby\scratchdimen\dimexpr\ht\nextbox+\dp\nextbox\relax
\ht\nextbox\ifdim\scratchdimen>\scratchheight \scratchdimen \else \scratchheight \fi
\dp\nextbox\zeropoint
% placement
@@ -449,27 +451,29 @@
\def\pack_layers_set_bottom_positions
{\ifnum\p_pack_layers_line=\zerocount\else % can be < 0
+% {\ifzero\p_pack_layers_line\else % todo: test this
\edef\p_pack_layers_line{\the\numexpr-\p_pack_layers_line+\layoutlines+\plusone\relax}% use counter instead ?
\fi
\ifdim\d_pack_layers_y_size>\zeropoint
- \advance\d_pack_layers_y_position-\d_pack_layers_y_size
+ \advanceby\d_pack_layers_y_position-\d_pack_layers_y_size
\d_pack_layers_y_position-\d_pack_layers_y_position
\d_pack_layers_y_offset-\d_pack_layers_y_offset
\fi}
\def\pack_layers_set_right_positions
{\ifnum\p_pack_layers_column=\zerocount\else % can be < 0
+% {\ifzero\p_pack_layers_column\else % todo: test this
\edef\p_pack_layers_column{\the\numexpr-\layerparameter\c!column+\layoutcolumns+\plusone\relax}% use counter instead ?
\fi
\ifdim\d_pack_layers_x_size>\zeropoint
- \advance\d_pack_layers_x_position-\d_pack_layers_x_size
+ \advanceby\d_pack_layers_x_position-\d_pack_layers_x_size
\d_pack_layers_x_position-\d_pack_layers_x_position
\d_pack_layers_x_offset-\d_pack_layers_x_offset
\fi}
\def\pack_layers_set_middle_positions
- {\ifdim\d_pack_layers_x_size>\zeropoint \advance\d_pack_layers_x_position.5\d_pack_layers_x_size \fi
- \ifdim\d_pack_layers_y_size>\zeropoint \advance\d_pack_layers_y_position.5\d_pack_layers_y_size \fi}
+ {\ifdim\d_pack_layers_x_size>\zeropoint \advanceby\d_pack_layers_x_position.5\d_pack_layers_x_size \fi
+ \ifdim\d_pack_layers_y_size>\zeropoint \advanceby\d_pack_layers_y_position.5\d_pack_layers_y_size \fi}
%D Given the task to be accomplished, the previous macro is not even that
%D complicated. It mainly comes down to skipping to the right place and placing a
@@ -657,11 +661,11 @@
%
\pack_layers_bottom_fill}%
% \edef\currentlayer{#2}% :\the\realpageno}% local .. check \anchor
- % \edef\p_pack_layers_position{\layerparameter\c!position}% local
+ \edef\p_pack_layers_position{\layerparameter\c!position}% local
\ifx\p_pack_layers_position\v!yes
\edef\p_pack_layers_region{\layerparameter\c!region}%
\ifempty\p_pack_layers_region\else
- \anch_mark_tagged_box\nextbox\p_pack_layers_region % was \layeranchor
+ \anch_mark_tagged_box\nextbox\p_pack_layers_region\zerocount % was \layeranchor
\fi
\fi
\box\nextbox
diff --git a/Master/texmf-dist/tex/context/base/mkxl/pack-mat.mkxl b/Master/texmf-dist/tex/context/base/mkxl/pack-mat.mkxl
new file mode 100644
index 00000000000..a810c8a47ae
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/pack-mat.mkxl
@@ -0,0 +1,384 @@
+%D \module
+%D [ file=pack-rul, % was core-rul,
+%D version=2022.02.23,
+%D title=\CONTEXT\ Packaging Macros,
+%D subtitle=Ruled Math,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Packaging Macros / Ruled Math}
+
+%D This is a by product of the math improvement activity by Mikael Sundqvist and
+%D myself. More might end up here and more control might be added.
+
+\unprotect
+
+% todo \v!mathframed
+% todo \v!mathstrikeout
+
+\newconditional\c_framed_math_framed
+
+\installtextracker
+ {framed.math}
+ {\settrue \c_framed_math_framed}
+ {\setfalse\c_framed_math_framed}
+
+\integerdef\c_framed_math_last_left \zerocount
+\integerdef\c_framed_math_last_right\zerocount
+
+\installglobalmacrostack\c_framed_math_last_left
+\installglobalmacrostack\c_framed_math_last_right
+
+\installcorenamespace{mathframed}
+
+\defineframed[\??mathframed]
+
+\setupframed[\??mathframed][\c!location=\v!middle]
+
+\tolerant\permanent\protected\def\definemathframed[#1]#*[#2]#*[#3]%
+ {\ifarguments\or
+ \defineframed[#1][\??mathframed]%
+ \or
+ \defineframed[#1][\??mathframed][#2]%
+ \or
+ \defineframed[#1][#2][#3]%
+ \fi
+ \tolerant\frozen\protected\defcsname#1\endcsname{\math_framed{#1}}}
+
+\definemathframed[mathframed]
+
+% \def\math_framed#1#*[#2]#:#3%
+% {\begingroup
+% \ifconditional\c_framed_math_framed
+% \defineboxanchor[temp]%
+% \fi
+% \setmathatomrule\mathbegincode\mathbincode\allmathstyles\mathbegincode\mathbincode % hm
+% \normalexpanded
+% {\setbox\scratchbox\hpack
+% \ifconditional\c_framed_math_framed
+% \s!source \namedboxanchor{temp}
+% \fi
+% \s!ymove \Umathaxis\Ustyle\mathstyle
+% \bgroup
+% \localframedwithsettings
+% [#1][#2]%
+% {\startimath
+% \Ustyle\mathstyle
+% #3%
+% \stopimath
+% \integerdef\c_framed_math_last_left \lastleftclass
+% \integerdef\c_framed_math_last_right\lastrightclass
+% \push_macro_c_framed_math_last_left
+% \push_macro_c_framed_math_last_right
+% }%
+% \egroup}%
+% \pop_macro_c_framed_math_last_left
+% \pop_macro_c_framed_math_last_right
+% \mathatom
+% \s!class \mathexplicitcode
+% \ifnum\c_framed_math_last_left <\zerocount\else\s!leftclass \c_framed_math_last_left \fi
+% \ifnum\c_framed_math_last_right<\zerocount\else\s!rightclass\c_framed_math_last_right\fi
+% \bgroup
+% \ifconditional\c_framed_math_framed
+% \setboxanchor[temp][\c!corner={\v!left ,\v!bottom},\c!location={\v!right,\v!height}]%
+% \hpack{\smallinfofont\the\c_framed_math_last_left}%
+% \setboxanchor[temp][\c!corner={\v!right,\v!bottom},\c!location={\v!left ,\v!height}]%
+% \hpack{\smallinfofont\the\c_framed_math_last_right}%
+% \fi
+% \box\scratchbox
+% \egroup
+% \endgroup}
+
+\dimensiondef\d_math_framed_offset\zeropoint
+
+\def\math_framed#1#*[#2]#:#3%
+ {\begingroup
+ \ifconditional\c_framed_math_framed
+ \defineboxanchor[temp]%
+ \fi
+ \setmathatomrule\mathbegincode\mathbincode\allmathstyles\mathbegincode\mathbincode % hm
+ %
+ \scratchdimen\Umathaxis\Ustyle\mathstyle
+ %
+ \edef\currentframed{#1}%
+ \setbox\scratchbox\hbox{\localframedwithsettings[#1][#2]%
+ {\strut\global\dimensiondef\d_math_framed_offset\dimexpr
+ \framedoffset/2
+% +2\d_framed_linewidth
+ \relax}}%
+ %
+ \setbox\scratchbox\hpack\bgroup
+ \startimath
+ \Ustyle\mathstyle
+ #3%
+ \stopimath
+ \normalexpanded{\aftergrouped{%
+ \integerdef\c_framed_math_last_left \the\lastleftclass
+ \integerdef\c_framed_math_last_right\the\lastrightclass
+ }}%
+ \egroup
+ %
+ \boxymove\scratchbox\dimexpr
+ \scratchdimen
+ -\d_math_framed_offset/2
+ \relax
+ %
+ \setbox\scratchbox\hpack
+ \localframedwithsettings
+ [#1][#2]%
+ {\box\scratchbox}%
+ %
+ \boxymove\scratchbox\scratchdimen
+ %
+ \ifconditional\c_framed_math_framed
+ \boxsource\scratchbox \namedboxanchor{temp}% test
+ \fi
+ %
+ \mathatom
+ \s!class \mathexplicitcode
+ \ifnum\c_framed_math_last_left <\zerocount\else\s!leftclass \c_framed_math_last_left \fi
+ \ifnum\c_framed_math_last_right<\zerocount\else\s!rightclass\c_framed_math_last_right\fi
+ \bgroup
+ \ifconditional\c_framed_math_framed
+ \setboxanchor[temp][\c!corner={\v!left ,\v!bottom},\c!location={\v!right,\v!height}]%
+ \hpack{\smallinfofont\the\c_framed_math_last_left}%
+ \setboxanchor[temp][\c!corner={\v!right,\v!bottom},\c!location={\v!left ,\v!height}]%
+ \hpack{\smallinfofont\the\c_framed_math_last_right}%
+ \fi
+ \box\scratchbox
+ \egroup
+ \endgroup}
+
+\defineoverlay[mathstrikeout][\useMPgraphic{\framedparameter{mp}}]
+
+\definemathframed
+ [mathstrikeout]
+ [\c!offset=\v!overlay,
+ \c!mp=mathstrikeout,
+ \c!rulethickness=1.5\linewidth,
+ \c!background={\v!foreground,mathstrikeout},
+ %\c!color=darkgreen,
+ \c!textstyle=\txx,
+ \c!mathstyle=\s!script,
+ \c!frame=\v!off,
+ \c!arrow=\v!yes]
+
+\definemathframed
+ [mathcrossout]
+ [mathstrikeout]
+ [\c!mp=mathcrossout,
+ strike:location=bottom]
+
+\permanent\protected\def\mathstrikeoutlabel
+ {\iftok{\framedparameter{strike:math}}\emptytoks
+ \useframedstyleandcolor\c!textstyle\c!color
+ \framedparameter{strike:text}%
+ \else
+ \startimath
+ \dousecolorparameter{\framedparameter\c!color}% mathcolor
+ \usemathstyleparameter\framedparameter\c!mathstyle
+ \framedparameter{strike:math}%
+ \stopimath
+ \fi}
+
+\startuseMPgraphic{mathstrikeout}
+ path arr ; arr := (llcorner OverlayBox -- urcorner OverlayBox) ;
+ if "\framedparameter{arrow}" = "yes" : drawarrow else : draw fi arr
+ withpen pencircle scaled OverlayLineWidth
+ withcolor OverlayColor
+ ;
+ label.top("\mathstrikeoutlabel", point 1 of arr)
+ withcolor OverlayColor
+ ;
+ % draw OverlayBox
+ % dashed evenly
+ % withpen pencircle scaled .5OverlayLineWidth
+ % withcolor OverlayColor
+ % ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+
+\startuseMPgraphic{mathcrossout}
+ draw (
+ (llcorner OverlayBox -- urcorner OverlayBox) &&
+ (ulcorner OverlayBox -- lrcorner OverlayBox)
+ )
+ withpen pencircle scaled OverlayLineWidth
+ withcolor OverlayColor
+ ;
+ if "\framedparameter{strike:location}" = "bottom" :
+ label.bot("\mathstrikeoutlabel", center bottomboundary currentpicture)
+ else :
+ label.top("\mathstrikeoutlabel", center topboundary currentpicture)
+ fi
+ withcolor OverlayColor
+ ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+
+%D \starttyping
+%D \enabletrackers[framed.math]
+%D
+%D \startTEXpage[offset=10pt,width=40dk]
+%D \showmakeup[mathglue]
+%D \def\MyTest#1%
+%D {$ x #1 x $\quad
+%D $ x \mathframed[offset=0pt]{#1} x $\quad
+%D $\displaystyle x #1 x $\quad
+%D $\displaystyle x \mathframed[offset=0pt]{#1} x $}
+%D \MyTest{>}\blank
+%D \MyTest{+}\blank
+%D \MyTest{!}\blank
+%D \MyTest{+\frac{1}{2}+}\blank
+%D \MyTest{\frac{1}{2}}\blank
+%D \stopTEXpage
+%D \stoptyping
+
+%D From the list:
+
+%D \starttyping
+%D \startformula[spaceinbetween=.5\lineheight]
+%D \left\{
+%D \mparagraph{Quaternion algebras\par over $\blackboard{Q}$ up to isomorphism}
+%D \right\}
+%D \alignhere \leftrightarrow
+%D \left\{
+%D \mparagraph
+%D [foregroundcolor=darkred,offset=.1ex,frame=on]
+%D {Finite subset of places of $\blackboard{Q}$\par of even cardinality}
+%D \right\}
+%D \breakhere \leftrightarrow
+%D \left\{
+%D \mparagraph{more text}
+%D \right\}
+%D \breakhere \leftrightarrow
+%D \left\{
+%D \mparagraph[foregroundcolor=darkblue]{and more text}
+%D \right\}
+%D \stopformula
+%D \stoptyping
+
+\permanent\tolerant\protected\def\mparagraph[#1]#*#:#2%
+ {\vcenter class \mathconstructcode \bgroup % \mathwrappedcode would be like fraction
+ \framed[\c!offset=\v!overlay,\c!frame=\v!overlay,\c!align=\v!middle,#1]{#2}%
+ \egroup}
+
+%D Moved from pack-rul.mkxl to here:
+
+%D \macros
+%D {mframed, minframed}
+%D
+%D See mkii and mkiv files for some history on this already rather old mechanism; it
+%D dates from the real beginning. In the meantime we used anchoring, and now we're
+%D doing it more \LMTX ish.
+
+% mframed xx\mframed {x^2 + \frac{2}{x} + \sqrt{\frac{2}{\sqrt{\frac{2}{x}}}}} \input tufte
+% inmframed xx\inmframed{x^2 + \frac{2}{x} + \sqrt{\frac{2}{\sqrt{\frac{2}{x}}}}} \input tufte
+% mcframed xx\mcframed {x^2 + \frac{2}{x} + \sqrt{\frac{2}{\sqrt{\frac{2}{x}}}}} \input tufte
+% mtframed xx\mtframed {x^2 + \frac{2}{x} + \sqrt{\frac{2}{\sqrt{\frac{2}{x}}}}} \input tufte
+
+\newinteger\c_framed_mstyle
+
+\installcorenamespace{mathframed}
+
+\installframedcommandhandler \??mathframed {mathframed} \??mathframed
+
+\newtoks \t_pack_framed_mathframed
+\newdimension\d_pack_framed_mathframed
+
+\appendtoks
+ \frozen\protected\instance\edefcsname\currentmathframed\endcsname{\pack_framed_mathframed[\currentmathframed]}%
+\to \everydefinemathframed
+
+\tolerant\protected\def\pack_framed_mathframed[#1]#*[#2]#:#3% needs testing !
+ {\begingroup
+ \edef\currentmathframed{#1}%
+ \setupcurrentmathframed[#2]%
+ \c_framed_mstyle\normalmathstyle
+ \edef\m_framed_location{\mathframedparameter\c!location}%
+ \ifx\m_framed_location\v!mathematics
+ \inheritedmathframedframed\bgroup
+ \setbox\scratchbox\hbox\bgroup
+ \Ustartmath
+ \triggermathstyle\c_framed_mstyle
+ \the\t_pack_framed_mathframed
+ \mathatom \mathunspacedcode\bgroup
+ #3%
+ \egroup
+ \Ustopmath
+ \egroup
+ \global\d_pack_framed_mathframed\dp\scratchbox
+ \dontleavehmode\box\scratchbox
+ \egroup
+ \else
+ \inheritedmathframedframed\bgroup
+ \hbox\bgroup
+ \Ustartmath
+ \triggermathstyle\c_framed_mstyle
+ #3%
+ \Ustopmath
+ \egroup
+ \egroup
+ \fi
+ \endgroup}
+
+\appendtoks
+ \c_strc_math_ragged_status \plustwo
+ \c_strc_formulas_check_width\zerocount
+\to \t_pack_framed_mathframed
+
+\installframedlocator \v!mathematics
+ {}
+ {\pack_framed_locator_set_lo
+ \ifzeropt\d_framed_locator_lo\else
+ \lower\dimexpr\d_framed_locator_lo+\d_pack_framed_mathframed\relax
+ \fi
+ \box\b_framed_normal}
+
+\definemathframed[mframed]
+\definemathframed[inmframed][\c!location=\v!low]
+\definemathframed[mcframed] [\c!location=\v!mathematics] % centered
+\definemathframed[mtframed] [\c!location=\v!mathematics,\c!offset=\v!overlay,\c!frame=\v!overlay] % tight
+
+%D So instead of the rather versatile \type {\framed}, we use \type {\mframed}:
+%D
+%D \startbuffer
+%D \startformula
+%D x \times \mframed{y} \times y^{z_z}
+%D x \times \inmframed{y} \times y^{z_z}
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D And:
+%D
+%D \startbuffer
+%D \startformula
+%D x \times \mframed{y} \times y^{\mframed{z}_{\mframed{z}}}
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D As usual, one can specify in what way the text should be framed. One should be
+%D aware of the fact that, inorder to preserve the proper spacing, the \type
+%D {offset} is set to \type {overlay} and \type {frameoffset} is used used instead.
+%D
+%D \startbuffer
+%D \startformula
+%D x \times y^{\mframed[framecolor=red]{z}_{z}}
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D For inline use, we also provide the \type {\inmframed} alternative: we want $x
+%D \times \inmframed{y}$ in inline math, right?
+
+\protect
diff --git a/Master/texmf-dist/tex/context/base/mkxl/pack-mrl.mkxl b/Master/texmf-dist/tex/context/base/mkxl/pack-mrl.mkxl
index 8bbeeb7985e..fbc51bef558 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/pack-mrl.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/pack-mrl.mkxl
@@ -39,32 +39,82 @@
\installsimplecommandhandler \??blackrules {blackrules} \??blackrules
\permanent\protected\def\blackrule
- {\hpack\bgroup
+ {% this was \hpack\bgroup\dontleavehmode but we want leader support
+ \begingroup
\doifelsenextoptionalcs\pack_black_rule_pickup\pack_black_rule_indeed}
\def\pack_black_rule_pickup[#1]%
{\setupcurrentblackrules[#1]%
\pack_black_rule_indeed}
+% \def\pack_black_rule_indeed
+% {\edef\p_width {\directblackrulesparameter\c!width }%
+% \edef\p_height{\directblackrulesparameter\c!height}%
+% \edef\p_depth {\directblackrulesparameter\c!depth }%
+% \ifx\p_height\v!max
+% \setstrut
+% \orelse\ifx\p_depth\v!max
+% \setstrut
+% \fi
+% \useblackrulesstyleandcolor\c!style\c!color
+% \ifcsname\??blackruletype\directblackrulesparameter\c!type\endcsname
+% \lastnamedcs
+% \else
+% \vrule
+% \fi
+% \ifx\p_width \v!max\s!width \emwidth\orelse\ifempty\p_width \else\s!width \p_width \fi
+% \ifx\p_height\v!max\s!height\strutht\orelse\ifempty\p_height\else\s!height\p_height\fi
+% \ifx\p_depth \v!max\s!depth \strutdp\orelse\ifempty\p_depth \else\s!depth \p_depth \fi
+% \egroup}
+
\def\pack_black_rule_indeed
- {\edef\p_width {\directblackrulesparameter\c!width }%
- \edef\p_height{\directblackrulesparameter\c!height}%
- \edef\p_depth {\directblackrulesparameter\c!depth }%
+ {\edef\p_width {\directblackrulesparameter\c!width}%
+ \edef\p_height {\directblackrulesparameter\c!height}%
+ \edef\p_depth {\directblackrulesparameter\c!depth}%
+ \edef\p_stretch{\directblackrulesparameter\c!stretch}%
+ \edef\p_shrink {\directblackrulesparameter\c!shrink}%
\ifx\p_height\v!max
\setstrut
+ \let\p_height\strutdp
\orelse\ifx\p_depth\v!max
\setstrut
\fi
+ % \ifx\p_height\v!max
+ % \let\p_height\strutdp
+ % \fi
+ \ifx\p_depth\v!max
+ \let\p_depth\strutdp
+ \fi
+ \ifx\p_width\v!max
+ \let\p_width\emwidth
+ \fi
\useblackrulesstyleandcolor\c!style\c!color
+ \ifempty\p_stretch
+ \ifempty\p_shrink
+ \donefalse
+ \else
+ \donetrue
+ \leaders
+ \fi
+ \else
+ \donetrue
+ \leaders
+ \fi
\ifcsname\??blackruletype\directblackrulesparameter\c!type\endcsname
\lastnamedcs
\else
\vrule
\fi
- \ifx\p_width \v!max\s!width \emwidth\orelse\ifempty\p_width \else\s!width \p_width \fi
- \ifx\p_height\v!max\s!height\strutht\orelse\ifempty\p_height\else\s!height\p_height\fi
- \ifx\p_depth \v!max\s!depth \strutdp\orelse\ifempty\p_depth \else\s!depth \p_depth \fi
- \egroup}
+ \ifempty\p_height\else\s!height\p_height\fi
+ \ifempty\p_depth\else\s!depth\p_depth\fi
+ \ifdone
+ \hskip\ifempty\p_width\zeropoint\else\p_width\fi
+ \ifempty\p_stretch\else\s!plus\p_stretch\fi
+ \ifempty\p_shrink\else\s!minus\p_shrink\fi
+ \else
+ \ifempty\p_width\else\s!width\p_width\fi
+ \fi
+ \endgroup}
\setupblackrules
[\c!width=\emwidth,
@@ -99,7 +149,7 @@
%D would probably have taken more tokens.
\permanent\tolerant\protected\def\blackrules[#1]% probably never used
- {\hpack\bgroup
+ {\hpack\bgroup % we keep this because breaking into lines breaks compatibility
\ifarguments\or\setupcurrentblackrules[#1]\fi
\scratchwidth \directblackrulesparameter\c!width
\scratchheight \directblackrulesparameter\c!height
@@ -131,20 +181,20 @@
\s!depth \scratchdepth
\relax
\ifzeropt\scratchdistance\else
- \hskip\scratchdistance
+ \kern\scratchdistance % hskip
\fi}
\installcorenamespace{blackruletype}
-\setvalue{\??blackruletype mp}%
+\defcsname\??blackruletype mp\endcsname
{\frule
type {mp}%
data {\includeMPgraphic{\directblackrulesparameter\c!mp}}
line \dimexpr\directblackrulesparameter\c!rulethickness\relax
}
-\letvalue{\??blackruletype\s!no }\novrule
-%letvalue{\??blackruletype\s!yes}\vrule
+\letcsname\??blackruletype\s!no \endcsname\novrule
+%letcsname\??blackruletype\s!yes\endcsname\vrule
\setupblackrules
[\c!n=3,
@@ -189,7 +239,7 @@
\s!height\linewidth
\s!depth \zeropoint}}
-% \let\dovlwdhtdp\pack_rule_vl_indeed % used elsewhere .. not any more
+\let\dovlwdhtdp\pack_rule_vl_indeed % used elsewhere .. in font manual
%D \macros
%D {hairline, thinrule, thinrules, setupthinrules}
@@ -257,10 +307,10 @@
\c!background=,
\c!rulethickness=\linewidth]
-\letvalue{\??thinrulealternatives\v!a }\zerocount
-\letvalue{\??thinrulealternatives\v!b }\plusone
-\letvalue{\??thinrulealternatives\v!c }\plustwo
-\letvalue{\??thinrulealternatives\v!none}\zerocount
+\letcsname\??thinrulealternatives\v!a \endcsname\zerocount
+\letcsname\??thinrulealternatives\v!b \endcsname\plusone
+\letcsname\??thinrulealternatives\v!c \endcsname\plustwo
+\letcsname\??thinrulealternatives\v!none\endcsname\zerocount
\newconstant\c_pack_thinrules_type
@@ -562,7 +612,7 @@
%D
%D \typebuffer \start \getbuffer \stop
-\setvalue{\??textrulealternatives\v!top}#1%
+\defcsname\??textrulealternatives\v!top\endcsname#1%
{\page[\v!preference] % interferes
\directtextrulesparameter\c!before\relax
\blank[\v!samepage,\v!nowhite]%
@@ -571,14 +621,14 @@
\directtextrulesparameter\c!inbetween\relax
\endgraf}
-\setvalue{\??textrulealternatives\v!bottom}#1%
+\defcsname\??textrulealternatives\v!bottom\endcsname#1%
{\blank[\v!samepage,\v!nowhite]%
\pack_textrule_following{#1}%
\blank[\v!samepage,\v!nowhite]%
\directtextrulesparameter\c!after\relax
\page[\v!preference]}
-\setvalue{\??textrulealternatives\v!middle}#1%
+\defcsname\??textrulealternatives\v!middle\endcsname#1%
{\blank[\v!samepage,\v!nowhite]%
\directtextrulesparameter\c!inbetween\relax
\pack_textrule_following{#1}%
@@ -598,7 +648,7 @@
{\llap
{\usetextrulesstyleandcolor\c!style\c!color
#1%
- \hskip\leftmargindistance}}
+ \kern\leftmargindistance}} % hskip
{\color[\directtextrulesparameter\c!rulecolor]
{\vrule
\s!height\scratchheight
@@ -697,6 +747,8 @@
%D
%D \showsetup{fillinrules}
%D \showsetup{setupfillinrules}
+%D
+%D I NEED TO UPGRADE THIS!
\installcorenamespace{fillinrules}
@@ -742,7 +794,7 @@
\strut
#2%
\hfill\directfillinrulesparameter\c!separator
- \hskip\scratchdistance
+ \kern\scratchdistance % hskip
\egroup
\fi
\setupwhitespace[\v!big]%
@@ -831,12 +883,13 @@
\c!width=\scratchwidth,
\c!height=\scratchheight,
\c!depth=\scratchheight]}%
- \frozen\advance\rightskip \directfillinlinesparameter\c!margin\relax
+ \frozen\advanceby\rightskip \directfillinlinesparameter\c!margin\relax
\frozen\parfillskip\zeropoint\relax
\endgroup}
\permanent\tolerant\protected\def\fillinline[#1]%
- {\registerparwrapper
+ {\dontleavehmode
+ \registerparwrapper
{fillinline}%
{\pack_fillinline_before{#1}}%
{\pack_fillinline_after {#1}%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/pack-obj.lmt b/Master/texmf-dist/tex/context/base/mkxl/pack-obj.lmt
index f021339b472..1e22515b95b 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/pack-obj.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/pack-obj.lmt
@@ -89,41 +89,6 @@ jobobjects.get = getobject
jobobjects.number = getobjectnumber
jobobjects.page = getobjectpage
--- implement {
--- name = "saveobject",
--- actions = saveobject
--- }
---
--- implement {
--- name = "setobject",
--- actions = setobject,
--- arguments = { "string", "integer", "integer" }
--- }
---
--- implement {
--- name = "objectnumber",
--- actions = { getobjectnumber, context },
--- arguments = "2 strings",
--- }
---
--- implement {
--- name = "objectpage",
--- actions = { getobjectpage, context },
--- arguments = "2 strings",
--- }
---
--- implement {
--- name = "doifelseobjectreferencefound",
--- actions = { getobject, commands.doifelse },
--- arguments = "string"
--- }
-
--- if false then
--- -- we can flush the inline ref ourselves now if we want
--- local flush = new_latelua("pdf.flushxform("..index..")")
--- flush.next = list
--- next.prev = flush
--- end
local data = table.setmetatableindex("table")
@@ -134,14 +99,23 @@ objects = {
local objects = objects
-function objects.register(ns,id,b,referenced,offset,mode)
- local n = objects.n + 1
- objects.n = n
+function objects.register(ns,id,b,referenced,offset,mode,delay)
+ -- The delay feature is just an experiment: a value of 1 delays the
+ -- flushing and 2 overloads the content. It might disappear again.
+ local found = data[ns][id]
nodes.handlers.finalizebox(b)
- if mode == 0 then
+ if found and delay == 2 then
+ data[ns][id] = {
+ codeinjections.registerboxresource(b,nil,nil,found[1]), -- hardcoded [1]
+ offset,
+ referenced or false,
+ mode,
+ }
+ return
+ elseif mode == 0 then
-- tex
data[ns][id] = {
- codeinjections.registerboxresource(b), -- a box number
+ codeinjections.registerboxresource(b,nil,delay), -- a box number
offset,
referenced or false,
mode,
@@ -149,7 +123,7 @@ function objects.register(ns,id,b,referenced,offset,mode)
else
-- box (backend)
data[ns][id] = {
- codeinjections.registerboxresource(b,offset), -- a box number
+ codeinjections.registerboxresource(b,offset,delay), -- a box number
false,
referenced,
mode,
@@ -179,11 +153,11 @@ function objects.restore(ns,id) -- why not just pass a box number here too (ok,
-- list is a rule
setlink(list,page)
end
- setbox("objectbox",hbox)
- settexdimen("objectoff",offset or 0)
+ setbox("b_pack_objects",hbox)
+ settexdimen("d_pack_objects_offset",offset or 0)
else
- setbox("objectbox",nil)
- settexdimen("objectoff",0) -- for good old times
+ setbox("b_pack_objects",nil)
+ settexdimen("d_pack_objects_offset",0) -- for good old times
end
if trace then
report("restoring object %a",id)
@@ -218,13 +192,13 @@ end
implement {
name = "registerreferencedobject",
- arguments = { "string", "string", "integer", true, "dimension", "integer" },
+ arguments = { "string", "string", "integer", true, "dimension", "integer", "integer" },
actions = objects.register,
}
implement {
name = "registerobject",
- arguments = { "string", "string", "integer", false, "dimension", "integer" },
+ arguments = { "string", "string", "integer", false, "dimension", "integer", "integer" },
actions = objects.register,
}
@@ -287,10 +261,10 @@ implement {
if object then
w, h, d, o = codeinjections.boxresourcedimensions(object[1])
end
- settexdimen("objectwd",w or 0)
- settexdimen("objectht",h or 0)
- settexdimen("objectdp",d or 0)
- settexdimen("objectoff",o or #objects > 2 and object[2] or 0)
+ settexdimen("d_pack_objects_width", w or 0)
+ settexdimen("d_pack_objects_height",h or 0)
+ settexdimen("d_pack_objects_depth", d or 0)
+ settexdimen("d_pack_objects_offset",o or #objects > 2 and object[2] or 0)
end
}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/pack-obj.mkxl b/Master/texmf-dist/tex/context/base/mkxl/pack-obj.mkxl
index 04fc90a5853..6334c6ce9ac 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/pack-obj.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/pack-obj.mkxl
@@ -39,34 +39,54 @@
\installcorenamespace {objects}
-\newif \ifinobject
-\newbox \objectbox
+\mutable\def\objectoffset{1cm} % Still public but use with care!
-\mutable\def\objectoffset{1cm}
-
-\newdimen\objectoff \permanent\def\objectmargin{\the\objectoff}
-\newdimen\objectwd \permanent\def\objectwidth {\the\objectwd}
-\newdimen\objectht \permanent\def\objectheight{\the\objectht}
-\newdimen\objectdp \permanent\def\objectdepth {\the\objectdp}
+\newif \ifinobject
+\newbox \b_pack_objects
+\newdimension\d_pack_objects_offset \permanent\def\objectmargin{\the\d_pack_objects_offset}
+\newdimension\d_pack_objects_width \permanent\def\objectwidth {\the\d_pack_objects_width}
+\newdimension\d_pack_objects_height \permanent\def\objectheight{\the\d_pack_objects_height}
+\newdimension\d_pack_objects_depth \permanent\def\objectdepth {\the\d_pack_objects_depth}
%D If I have time I will use the unreferenced variant for e.g. mp reuse. This can be
%D rewritten in \LUA\ anyway.
-\permanent\protected\def\setreferencedobject #1#2{\begingroup\synctexpause\objectoff\objectoffset\inobjecttrue\dowithnextbox{\pack_objects_set_yes{#1}{#2}}}
-\permanent\protected\def\settightreferencedobject #1#2{\begingroup\synctexpause\objectoff\zeropoint \inobjecttrue\dowithnextbox{\pack_objects_set_yes{#1}{#2}}}
-\permanent\protected\def\setunreferencedobject #1#2{\begingroup\synctexpause\objectoff\objectoffset\inobjecttrue\dowithnextbox{\pack_objects_set_nop{#1}{#2}}}
-\permanent\protected\def\settightunreferencedobject#1#2{\begingroup\synctexpause\objectoff\zeropoint \inobjecttrue\dowithnextbox{\pack_objects_set_nop{#1}{#2}}}
+\permanent\protected\def\setreferencedobject #1#2{\begingroup\synctexpause\d_pack_objects_offset\objectoffset\inobjecttrue\dowithnextbox{\pack_objects_set_yes{#1}{#2}}}
+\permanent\protected\def\settightreferencedobject #1#2{\begingroup\synctexpause\d_pack_objects_offset\zeropoint \inobjecttrue\dowithnextbox{\pack_objects_set_yes{#1}{#2}}}
+\permanent\protected\def\setunreferencedobject #1#2{\begingroup\synctexpause\d_pack_objects_offset\objectoffset\inobjecttrue\dowithnextbox{\pack_objects_set_nop{#1}{#2}}}
+\permanent\protected\def\settightunreferencedobject#1#2{\begingroup\synctexpause\d_pack_objects_offset\zeropoint \inobjecttrue\dowithnextbox{\pack_objects_set_nop{#1}{#2}}}
\aliased\let\setobject \setreferencedobject
\aliased\let\settightobject\settightreferencedobject
%D We can get subtle differences in boundingboxes but both methods work ok.
+% How useful is this ... delayed but refered objects .. messy concept.
+%
+% \def\InitIt{%
+% \c_pack_objects_delay\plusone
+% \setobject{test}{1}\hbox{test me 1}
+% \c_pack_objects_delay\zerocount
+% }
+%
+% \def\GetIt{%
+% \c_pack_objects_delay\plusone
+% \getobject{test}{1}
+% \c_pack_objects_delay\zerocount
+% }
+%
+% \def\SetIt{%
+% \c_pack_objects_delay\plustwo
+% \setobject{test}{1}\hbox{\bf HERE}% we cannot have interactivity in xforms
+% \c_pack_objects_delay\zerocount
+% }
+
\newconstant\c_pack_objects_offset_mode % 0=tex 1=box
+\newconstant\c_pack_objects_delay % 0=immediate 1=delay
\protected\def\pack_objects_set_yes#1#2%
{\ifcase\c_pack_objects_offset_mode
- \ifzeropt\objectoff
+ \ifzeropt\d_pack_objects_offset
\pack_objects_package_nop\nextbox
\else
\pack_objects_package_yes\nextbox
@@ -74,13 +94,18 @@
\else
\pack_objects_package_nop\nextbox
\fi
- \clf_registerreferencedobject{#1}{#2}\objectbox\objectoff\c_pack_objects_offset_mode
+ \clf_registerreferencedobject
+ {#1}{#2}%
+ \b_pack_objects
+ \d_pack_objects_offset
+ \c_pack_objects_offset_mode
+ \c_pack_objects_delay
\synctexresume
\endgroup}
\protected\def\pack_objects_set_nop#1#2%
{\ifcase\c_pack_objects_offset_mode
- \ifzeropt\objectoff
+ \ifzeropt\d_pack_objects_offset
\pack_objects_package_nop\nextbox
\else
\pack_objects_package_yes\nextbox
@@ -88,33 +113,36 @@
\else
\pack_objects_package_nop\nextbox
\fi
- \clf_registerobject{#1}{#2}\objectbox\objectoff\c_pack_objects_offset_mode
+ \clf_registerobject
+ {#1}{#2}%
+ \b_pack_objects
+ \d_pack_objects_offset
+ \c_pack_objects_offset_mode
+ \c_pack_objects_delay
\synctexresume
\endgroup}
\def\pack_objects_package_nop#1% we pack because otherwise \ruledhbox is still tight
- {\setbox\objectbox\hpack{\box#1}}
+ {\setbox\b_pack_objects\hpack{\box#1}}
\def\pack_objects_package_yes#1%
- {\objectwd\dimexpr\wd#1+2\objectoff\relax
- \objectht\dimexpr\ht#1+ \objectoff\relax
- \objectdp\dimexpr\dp#1+ \objectoff\relax
- \setbox\objectbox\hpack
- {\hskip\objectoff
- \box#1}%
- \wd\objectbox\objectwd
- \ht\objectbox\objectht
- \dp\objectbox\objectdp}
+ {\d_pack_objects_width \dimexpr\wd#1+2\d_pack_objects_offset\relax
+ \d_pack_objects_height\dimexpr\ht#1+ \d_pack_objects_offset\relax
+ \d_pack_objects_depth \dimexpr\dp#1+ \d_pack_objects_offset\relax
+ \setbox\b_pack_objects\hpack{\hskip\d_pack_objects_offset\box#1}%
+ \wd\b_pack_objects\d_pack_objects_width
+ \ht\b_pack_objects\d_pack_objects_height
+ \dp\b_pack_objects\d_pack_objects_depth}
\permanent\protected\def\getobject#1#2%
{\begingroup
\synctexpause
\clf_restoreobject{#1}{#2}%
- \ifzeropt\objectoff\else
- \objectoff-\objectoff
- \pack_objects_package_yes\objectbox
+ \ifzeropt\d_pack_objects_offset\else
+ \d_pack_objects_offset-\d_pack_objects_offset
+ \pack_objects_package_yes\b_pack_objects
\fi
- \box\objectbox
+ \box\b_pack_objects
\synctexresume
\endgroup}
@@ -155,7 +183,7 @@
%D For the moment here:
-\mutable\let\lastpredefinedsymbol\empty % some day we can do more at the lua end
+\mutable\lettonothing\lastpredefinedsymbol % some day we can do more at the lua end
\permanent\protected\def\predefinesymbol[#1]%
{\begingroup
diff --git a/Master/texmf-dist/tex/context/base/mkxl/pack-ori.lmt b/Master/texmf-dist/tex/context/base/mkxl/pack-ori.lmt
index a786b19ef13..81e8776b96a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/pack-ori.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/pack-ori.lmt
@@ -30,8 +30,8 @@ local horizontal = {
[variables.middle] = 0x000,
[variables.flushleft] = 0x100,
[variables.flushright] = 0x200,
- [variables.left] = 0x300,
- [variables.right] = 0x400,
+ [variables.left] = 0x300, -- why not 0x100
+ [variables.right] = 0x400, -- why not 0x200
}
implement {
diff --git a/Master/texmf-dist/tex/context/base/mkxl/pack-ori.mkxl b/Master/texmf-dist/tex/context/base/mkxl/pack-ori.mkxl
index 4365db3ac66..584e70c2225 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/pack-ori.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/pack-ori.mkxl
@@ -36,7 +36,7 @@
\c!vertical=\v!normal]
\appendtoks
- \expandafter\chardef\csname\??orientations\currentorientation\endcsname\toorientation
+ \expandafter\integerdef\csname\??orientations\currentorientation\endcsname\toorientation
orientation {\orientationparameter\c!orientation}
horizontal {\orientationparameter\c!horizontal}
vertical {\orientationparameter\c!vertical}
@@ -51,6 +51,7 @@
\defineorientation[\v!right] [\c!orientation=\v!right]
\defineorientation[\v!top] [\c!orientation=\v!top]
\defineorientation[\v!bottom][\c!orientation=\v!bottom]
+\defineorientation[\v!line] [\c!orientation=\v!line]
%D There will be some more helpers here.
@@ -72,15 +73,14 @@
\fi
\relax}
-%D The \type {\immediateassignment} and \type {\immediateassigned} primitives are
-%D kind of obsolete and might be dropped (if not already) from \LUAMETATEX. Local
-%D scanning is, although it is a bit slower, more general. We didn't really need and
-%D use these primitives in \CONTEXT\ anyway, apart from some playing around with
-%D some full expansion, which made no sense in the end so it was dropped. When
-%D things get that hairy it's often a good reason to look into \LUA\ variants.
+%D The \type {\immediateassignment} and \type {\immediateassigned} primitives that
+%D are in \LUATEX\ are obsolete in \LUAMETATEX. Local scanning is, although it is
+%D a bit slower, more general. We didn't really need and use these primitives in
+%D \CONTEXT\ anyway, apart from some playing around with some full expansion, which
+%D made no sense in the end so it was dropped. When things get that hairy it's often
+%D a good reason to look into \LUA\ variants.
\def\auto_orientation#1%
- %{\immediateassignment\global\expandafter\chardef\csname\??orientations#1\endcsname\stringtoorientation{#1}% % quite fast
{\beginlocalcontrol\global\expandafter\chardef\csname\??orientations#1\endcsname\stringtoorientation{#1}\endlocalcontrol % good enough
%{\localcontrolled{\global\expandafter\chardef\csname\??orientations#1\endcsname\stringtoorientation{#1}}% % a bit slower
\csname\??orientations#1\endcsname}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/pack-pos.mkxl b/Master/texmf-dist/tex/context/base/mkxl/pack-pos.mkxl
index aee22081fdd..74ec38629db 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/pack-pos.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/pack-pos.mkxl
@@ -44,22 +44,22 @@
\c!xoffset=\zeropoint,
\c!yoffset=\zeropoint]
-\newdimen\d_pack_positioning_x_position
-\newdimen\d_pack_positioning_y_position
-\newdimen\d_pack_positioning_x_dimension
-\newdimen\d_pack_positioning_y_dimension
-\newdimen\d_pack_positioning_x_offset
-\newdimen\d_pack_positioning_y_offset
+\newdimension\d_pack_positioning_x_position
+\newdimension\d_pack_positioning_y_position
+\newdimension\d_pack_positioning_x_dimension
+\newdimension\d_pack_positioning_y_dimension
+\newdimension\d_pack_positioning_x_offset
+\newdimension\d_pack_positioning_y_offset
-\newbox\b_pack_positioning
+\newbox \b_pack_positioning
\permanent\tolerant\protected\def\startpositioning[#1]#*[#2]%
{\bgroup
\ifparameters
- \let\currentpositioning\empty
+ \lettonothing\currentpositioning
\or
\ifhastok={#1}%
- \let\currentpositioning\empty
+ \lettonothing\currentpositioning
\setupcurrentpositioning[#1]%
\else
\edef\currentpositioning{#1}%
@@ -84,13 +84,13 @@
\doifnot{\positioningparameter\c!offset}\v!yes
{\global\d_pack_positioning_x_offset\zeropoint
\global\d_pack_positioning_y_offset\zeropoint}%
- \global\advance\d_pack_positioning_x_dimension\d_pack_positioning_x_offset
- \global\advance\d_pack_positioning_y_dimension\d_pack_positioning_y_offset
+ \global\advanceby\d_pack_positioning_x_dimension\d_pack_positioning_x_offset
+ \global\advanceby\d_pack_positioning_y_dimension\d_pack_positioning_y_offset
\egroup
\vbox to \d_pack_positioning_y_dimension
{\vskip\d_pack_positioning_y_offset
\hbox to \d_pack_positioning_x_dimension
- {\hskip\d_pack_positioning_x_offset
+ {\kern\d_pack_positioning_x_offset
\box\b_pack_positioning
\hfill}
\vfill}%
@@ -100,10 +100,10 @@
{\setdimensionwithunit\scratchdimen{#1}{\positioningparameter\c!unit}%
\scratchdimen\positioningparameter#8\scratchdimen
\scratchdimen\positioningparameter#9\scratchdimen
- \advance\scratchdimen\positioningparameter#4\relax
+ \advanceby\scratchdimen\positioningparameter#4\relax
% == \scratchdimen\dimexpr#8\dimexpr#9\scratchdimen\relax+#4\relax
\doif{\positioningparameter#2}\v!relative
- {\advance\scratchdimen#3%
+ {\advanceby\scratchdimen#3%
\letpositioningparameter#4\zeropoint}%
#3\scratchdimen
\doifnot{\positioningparameter\c!state}\v!overlay
@@ -145,7 +145,7 @@
{\offinterlineskip % else we get an empty line
\vskip\d_pack_positioning_y_position
\hbox to \zeropoint
- {\hskip\d_pack_positioning_x_position
+ {\kern\d_pack_positioning_x_position
\box\nextbox
\hss}
\vss}%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/pack-rul.lmt b/Master/texmf-dist/tex/context/base/mkxl/pack-rul.lmt
index d99f0a78e2c..12d131c8873 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/pack-rul.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/pack-rul.lmt
@@ -35,6 +35,8 @@ local equationlist_code = listcodes.equation
local texsetdimen = tex.setdimen
local texsetcount = tex.setcount
+local texisdimen = tex.isdimen
+local texiscount = tex.iscount
local implement = interfaces.implement
@@ -52,13 +54,13 @@ local getdirection = nuts.getdirection
local setshift = nuts.setshift
local setwidth = nuts.setwidth
local getwidth = nuts.getwidth
-local setboxglue = nuts.setboxglue
-local getboxglue = nuts.getboxglue
+local setboxglue = nuts.setglue
+local getboxglue = nuts.getglue
local hpack = nuts.hpack
local getdimensions = nuts.dimensions
local naturalhsize = nuts.naturalhsize
-local flush_node = nuts.flush
+local flushnode = nuts.flush
local traversers = nuts.traversers
local nexthlist = traversers.hlist
@@ -71,8 +73,18 @@ directives.register("framed.checkmath",function(v) checkformath = v end) -- expe
-- beware: dir nodes and pseudostruts can end up on lines of their own
-local function doreshapeframedbox(n)
- local box = getbox(n)
+local c_framednoflines = texiscount("framednoflines")
+local d_framedfirstheight = texisdimen("framedfirstheight")
+local d_framedlastdepth = texisdimen("framedlastdepth")
+local d_framedminwidth = texisdimen("framedminwidth")
+local d_framedmaxwidth = texisdimen("framedmaxwidth")
+local d_framedaveragewidth = texisdimen("framedaveragewidth")
+
+local function doreshapeframedbox(n,resync)
+ if resync then
+ resync = drivers.converters.resyncbox
+ end
+ local box = resync and resync(n) or getbox(n)
local noflines = 0
local nofnonzero = 0
local firstheight = nil
@@ -135,15 +147,15 @@ local function doreshapeframedbox(n)
if list and id == hlist_code then
-- called a lot so maybe a simple case is needed
if subtype == boxlist_code or subtype == linelist_code then
- -- getdirection is irrelevant here so it will go
- -- somehow a parfillskip also can get influenced
- local p = hpack(list,maxwidth,'exactly',getdirection(h)) -- multiple return value
+ -- -- getdirection is irrelevant here so it will go
+ -- local p = hpack(list,maxwidth,'exactly',getdirection(h)) -- multiple return value
+ local p = hpack(list,maxwidth,'exactly') -- multiple return value
local set, order, sign = getboxglue(p)
setboxglue(h,set,order,sign)
setlist(p)
- flush_node(p)
+ flushnode(p)
elseif checkformath and subtype == equationlist_code then
- -- display formulas use a shift
+ -- display formulas use a shift .. actually we never have display mode
if nofnonzero == 1 then
setshift(h,0)
end
@@ -167,15 +179,15 @@ local function doreshapeframedbox(n)
end
end
end
- texsetcount("global","framednoflines",noflines)
- texsetdimen("global","framedfirstheight",firstheight or 0) -- also signal
- texsetdimen("global","framedlastdepth",lastdepth or 0)
- texsetdimen("global","framedminwidth",minwidth)
- texsetdimen("global","framedmaxwidth",maxwidth)
- texsetdimen("global","framedaveragewidth",averagewidth)
+ texsetcount("global",c_framednoflines,noflines)
+ texsetdimen("global",d_framedfirstheight,firstheight or 0) -- also signal
+ texsetdimen("global",d_framedlastdepth,lastdepth or 0)
+ texsetdimen("global",d_framedminwidth,minwidth)
+ texsetdimen("global",d_framedmaxwidth,maxwidth)
+ texsetdimen("global",d_framedaveragewidth,averagewidth)
end
-local function doanalyzeframedbox(n) -- traverse_list
+local function doanalyzeframedbox(n)
local box = getbox(n)
local noflines = 0
local firstheight = nil
@@ -183,15 +195,7 @@ local function doanalyzeframedbox(n) -- traverse_list
if getwidth(box) ~= 0 then
local list = getlist(box)
if list then
- for n in nexthlist, list do
- local width, height, depth = getwhd(n)
- if not firstheight then
- firstheight = height
- end
- lastdepth = depth
- noflines = noflines + 1
- end
- for n in nextvlist, list do
+ for n in nextlist, list do
local width, height, depth = getwhd(n)
if not firstheight then
firstheight = height
@@ -199,14 +203,31 @@ local function doanalyzeframedbox(n) -- traverse_list
lastdepth = depth
noflines = noflines + 1
end
+ -- for n in nexthlist, list do
+ -- local width, height, depth = getwhd(n)
+ -- if not firstheight then
+ -- firstheight = height
+ -- end
+ -- lastdepth = depth
+ -- noflines = noflines + 1
+ -- end
+ -- for n in nextvlist, list do
+ -- local width, height, depth = getwhd(n)
+ -- if not firstheight then
+ -- firstheight = height
+ -- end
+ -- lastdepth = depth
+ -- noflines = noflines + 1
+ -- end
end
end
- texsetcount("global","framednoflines",noflines)
- texsetdimen("global","framedfirstheight",firstheight or 0)
- texsetdimen("global","framedlastdepth",lastdepth or 0)
+ texsetcount("global",c_framednoflines,noflines)
+ texsetdimen("global",d_framedfirstheight,firstheight or 0)
+ texsetdimen("global",d_framedlastdepth,lastdepth or 0)
end
implement { name = "doreshapeframedbox", actions = doreshapeframedbox, arguments = "integer" }
+implement { name = "doresyncframedbox", actions = doreshapeframedbox, arguments = { "integer", true } }
implement { name = "doanalyzeframedbox", actions = doanalyzeframedbox, arguments = "integer" }
local function maxboxwidth(box)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/pack-rul.mkxl b/Master/texmf-dist/tex/context/base/mkxl/pack-rul.mkxl
index b6a22d89492..36b4fc7b0c0 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/pack-rul.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/pack-rul.mkxl
@@ -18,7 +18,14 @@
%D packaging and expansion we also keep tracing reasonable. For instance, multiple
%D stacked backgrounds can slow down a run if not optimized this way.
-\registerctxluafile{pack-rul}{autosuffix,optimize}
+\newinteger \framednoflines
+\newdimension\framedfirstheight
+\newdimension\framedlastdepth
+\newdimension\framedminwidth
+\newdimension\framedmaxwidth
+\newdimension\framedaveragewidth
+
+\registerctxluafile{pack-rul}{autosuffix}
\unprotect
@@ -35,7 +42,7 @@
%D The linewidth is available in \type{\linewidth}. The preset value of .4pt equals
%D the default hard coded \TEX\ rule width.
-\newdimen\linewidth
+\newdimension\linewidth
\permanent\tolerant\protected\def\setuplinewidth[#1]%
{\assigndimension{#1}\linewidth{.2\points}{.4\points}{.6\points}}
@@ -114,6 +121,32 @@
{\installsimplecommandhandler{#1}{#2}{#3}%
\installinheritedframed{#2}}
+% corner options (with radius=0pt rectangular):
+%
+% 0 round ltrb trbl rblt bltr
+% 1 2 3 4 5 6 7 8 ltrb
+% 9 lbr rbl / 10 tlb blt / 11 ltr rtl / 12 lbr rbl
+% 13 rt tr / 14 rb br / 15 bl lb / 16 tl lt
+% 32 lr rl / 33 tb bt
+% 28 l / 29 r / 30 b / 31 t
+
+%D \starttyping
+%D \dostepwiserecurse{0}{33}{1}{
+%D \startTEXpage[offset=1dk]
+%D \dontleavehmode\ruledhbox{\framed
+%D [framecolor=red,
+%D framecorner=#1,
+%D frameradius=\zeropoint]
+%D {TEST #1}}
+%D \ruledhbox{\framed
+%D [framecolor=red,
+%D framecorner=#1,
+%D frameradius=10pt]
+%D {TEST #1}}
+%D \stopTEXpage
+%D }
+%D \stoptyping
+
% for regular framed
\setupframed
@@ -157,6 +190,7 @@
%\c!anchoring=,
\c!autowidth=\v!yes,
%\c!setups=,
+ \c!synchronize=,
\c!loffset=\zeropoint,
\c!roffset=\zeropoint,
\c!toffset=\zeropoint,
@@ -197,33 +231,36 @@
%D We will communicate through module specific variables, current framed
%D parameters and some reserved dimension registers.
-\newdimen\d_framed_target_wd
-\newdimen\d_framed_target_ht
-\newdimen\d_framed_target_dp
-\newdimen\d_framed_linewidth \aliased\let\ruledlinewidth\d_framed_linewidth % needed at lua end
-
-\let\p_framed_frame \empty % \framedparameter\c!frame
-\let\p_framed_backgroundoffset\empty
-\let\p_framed_foregroundstyle \empty
-\let\p_framed_autostrut \empty
-\let\p_framed_location \empty
-\let\p_framed_orientation \empty
-\let\p_framed_anchoring \empty
-\let\p_framed_autowidth \empty
-\let\p_framed_franalyze \empty
-\let\p_framed_backgroundcorner\empty
-\let\p_framed_backgroundradius\empty
-\let\p_framed_framecorner \empty
-\let\p_framed_frameradius \empty
-\let\p_framed_lines \empty
-\let\p_framed_empty \empty
-\let\p_framed_backgroundcolor \empty
-\let\p_framed_framecolor \empty
-\let\p_framed_component \empty
-\let\p_framed_background \empty
-\let\p_framed_rulethickness \empty
-\let\p_framed_foregroundcolor \empty
-\let\p_framed_setups \empty
+\newdimension\d_framed_target_wd
+\newdimension\d_framed_target_ht
+\newdimension\d_framed_target_dp
+%newdimen \d_framed_linewidth \aliased\let \ruledlinewidth\d_framed_linewidth % needed at lua end
+\newdimension\d_framed_linewidth \aliasdimension\ruledlinewidth\d_framed_linewidth % needed at lua end
+
+\lettonothing\p_framed_frame % \framedparameter\c!frame
+\lettonothing\p_framed_backgroundoffset
+\lettonothing\p_framed_foregroundstyle
+\lettonothing\p_framed_autostrut
+\lettonothing\p_framed_location
+\lettonothing\p_framed_orientation
+\lettonothing\p_framed_anchoring
+\lettonothing\p_framed_synchronize
+\lettonothing\p_framed_autowidth
+\lettonothing\p_framed_franalyze
+\lettonothing\p_framed_backgroundcorner
+\lettonothing\p_framed_backgroundradius
+\lettonothing\p_framed_framecorner
+\lettonothing\p_framed_frameradius
+\lettonothing\p_framed_lines
+\lettonothing\p_framed_empty
+\lettonothing\p_framed_backgroundcolor
+\lettonothing\p_framed_framecolor
+\lettonothing\p_framed_component
+\lettonothing\p_framed_background
+\lettonothing\p_framed_rulethickness
+\lettonothing\p_framed_foregroundcolor
+\lettonothing\p_framed_setups
+\lettonothing\p_framed_synchronize
%D We don't have to stick to a \TEX\ drawn rule, but also can use rounded
%D or even fancier shapes, as we will see later on.
@@ -262,32 +299,56 @@
corner {\p_framed_backgroundcorner}
\relax}}
+% we keep this as reference (should still work when uncommented)
+%
+% \def\pack_framed_stroked_box
+% {\edef\p_framed_framecorner{\framedparameter\c!framecorner}%
+% \ifx\p_framed_framecorner\v!rectangular
+% \pack_framed_stroked_box_normal
+% \else
+% \pack_framed_stroked_box_radius
+% \fi}
+%
+% \def\pack_framed_stroked_box_radius
+% {\edef\p_framed_frameradius{\framedparameter\c!frameradius}%
+% \ifzeropt\dimexpr\p_framed_frameradius\relax % just in case of .x\bodyfontsize
+% \pack_framed_stroked_box_normal
+% \orelse\ifx\p_framed_frame\v!on
+% \pack_framed_stroked_box_round
+% \fi}
+%
+% % \pack_framed_stroked_box_normal % later
+%
+% \def\pack_framed_stroked_box_round
+% {\raise\d_framed_target_dp\hpack{\frule
+% width \d_framed_target_wd
+% height \d_framed_target_ht
+% depth \d_framed_target_dp
+% line \d_framed_linewidth
+% radius \p_framed_frameradius\space
+% corner {\p_framed_framecorner}
+% \relax}}
+%
+% corner is the parent of framecorner and backgroundcorner (round value never checked)
+% when 'round' is passed it is not a number and therefore we get four sides
+
\def\pack_framed_stroked_box
{\edef\p_framed_framecorner{\framedparameter\c!framecorner}%
\ifx\p_framed_framecorner\v!rectangular
\pack_framed_stroked_box_normal
- \else
- \pack_framed_stroked_box_radius
- \fi}
-
-\def\pack_framed_stroked_box_radius
- {\edef\p_framed_frameradius{\framedparameter\c!frameradius}%
- \ifzeropt\dimexpr\p_framed_frameradius\relax % just in case of .x\bodyfontsize
- \pack_framed_stroked_box_normal
\orelse\ifx\p_framed_frame\v!on
\pack_framed_stroked_box_round
\fi}
-% \pack_framed_stroked_box_normal % later
-
-\def\pack_framed_stroked_box_round
- {\raise\d_framed_target_dp\hpack{\frule
- width \d_framed_target_wd
- height \d_framed_target_ht
- depth \d_framed_target_dp
- line \d_framed_linewidth
- radius \p_framed_frameradius\space
- corner {\p_framed_framecorner}
+\def\pack_framed_stroked_box_round % todo: variant without keywords
+ {\raise\d_framed_target_dp
+ \hpack{\clf_roundedoutline % we could access these at the lua end!
+ \d_framed_target_wd
+ \d_framed_target_ht
+ \d_framed_target_dp
+ \d_framed_linewidth
+ \framedparameter\c!frameradius
+ {\p_framed_framecorner}
\relax}}
% a lot of weird corners
@@ -404,13 +465,13 @@
%D
%D The resulting box is lowered to the right depth.
-\newdimen\d_overlay_width
-\newdimen\d_overlay_height
-\newdimen\d_overlay_depth
-\newdimen\d_overlay_offset
-\newdimen\d_overlay_linewidth
+\newdimension\d_overlay_width
+\newdimension\d_overlay_height
+\newdimension\d_overlay_depth
+\newdimension\d_overlay_offset
+\newdimension\d_overlay_linewidth
-\let\m_overlay_region\empty
+\lettonothing\m_overlay_region
% expandable ... in a future version the space will go (in mp one can use Overlay*)
@@ -427,11 +488,11 @@
%mutable \edef\overlaycorner {\framedparameter\c!backgroundcorner}
%mutable \edef\overlayradius {\framedparameter\c!backgroundradius}
-\permanent\def\usedoverlaywidth {\dimexpr\d_overlay_width \relax}
-\permanent\def\usedoverlayheight {\dimexpr\d_overlay_height \relax}
-\permanent\def\usedoverlaydepth {\dimexpr\d_overlay_depth \relax}
-\permanent\def\usedoverlayoffset {\dimexpr\d_overlay_offset \relax}
-\permanent\def\usedoverlaylinewidth{\dimexpr\d_overlay_linewidth\relax}
+\aliased\let\usedoverlaywidth \d_overlay_width
+\aliased\let\usedoverlayheight \d_overlay_height
+\aliased\let\usedoverlaydepth \d_overlay_depth
+\aliased\let\usedoverlayoffset \d_overlay_offset
+\aliased\let\usedoverlaylinewidth\d_overlay_linewidth
%D The next register is used to initialize overlays.
@@ -452,8 +513,12 @@
\vsize\d_overlay_height
\to \everyoverlay
+\protected\def\pack_overlay_define#1#2%
+ {\defcsname\??overlay#1\endcsname{\executedefinedoverlay{#1}{#2}}}
+
\permanent\tolerant\protected\def\defineoverlay[#1]#*[#2]% wil be overloaded
- {\def\pack_framed_define_overlay_indeed##1{\defcsname\??overlay##1\endcsname{\executedefinedoverlay{##1}{#2}}}%
+% {\def\pack_framed_define_overlay_indeed##1{\defcsname\??overlay##1\endcsname{\executedefinedoverlay{##1}{#2}}}%
+ {\def\pack_framed_define_overlay_indeed##1{\pack_overlay_define{##1}{#2}}%
\processcommalist[#1]\pack_framed_define_overlay_indeed}
\permanent\protected\def\executedefinedoverlay#1#2% we can share the definitions
@@ -497,7 +562,7 @@
\newtoks\everybackgroundbox
-\let\m_framed_background\empty % we might need a public name
+\lettonothing\m_framed_background % we might need a public name
\def\pack_framed_process_background
{\ifcsname\??overlaybuiltin\m_framed_background\endcsname
@@ -536,10 +601,10 @@
%D Beware, a backgroundbox can be empty which is another reason why we set the
%D width to zero instead of back-skipping.
-\newdimen\framedbackgroundwidth
-\newdimen\framedbackgroundheight
-\newdimen\framedbackgrounddepth
-\newdimen\framedbackgroundoffset
+\newdimension\framedbackgroundwidth
+\newdimension\framedbackgroundheight
+\newdimension\framedbackgrounddepth
+\newdimension\framedbackgroundoffset
\aliased\let\foregroundbox\relax
@@ -551,11 +616,14 @@
\edef\m_overlay_region{\reservedautoregiontag}%
\fi}
-\def\pack_framed_add_region % experiment
- {\anch_mark_tagged_box\b_framed_normal\m_overlay_region}
+\def\pack_framed_add_region % experiment, zerocount forces the given region
+ {\anch_mark_tagged_box\b_framed_normal\m_overlay_region\zerocount}
\def\pack_framed_add_background
- {\setbox\b_framed_normal\hpack % was vbox % see also *1*
+ {\ifconditional\c_pack_reanchor
+ \analyzelocalanchors\b_framed_normal
+ \fi
+ \setbox\b_framed_normal\hpack % was vbox % see also *1*
{%\pack_framed_forgetall % can be relaxed
\boxmaxdepth\maxdimen
\framedbackgroundoffset\d_framed_backgroundoffset
@@ -596,9 +664,9 @@
%D
%D We predefine two already familiar backgrounds:
-%letvalue{\??overlaybuiltin\v!screen }\pack_framed_background_box_gray
-\letvalue{\??overlaybuiltin\v!color }\pack_framed_background_box_color
-\letvalue{\??overlaybuiltin\v!foreground}\pack_framed_background_box_content % replaces: \defineoverlay[\v!foreground][\foregroundbox]
+%letcsname\??overlaybuiltin\v!screen \endcsname\pack_framed_background_box_gray
+\letcsname\??overlaybuiltin\v!color \endcsname\pack_framed_background_box_color
+\letcsname\??overlaybuiltin\v!foreground\endcsname\pack_framed_background_box_content % replaces: \defineoverlay[\v!foreground][\foregroundbox]
%D We can specify overlays as a comma separated list of overlays, a sometimes
%D handy feature.
@@ -614,7 +682,7 @@
\d_framed_target_ht\dimexpr\ht\b_framed_normal+ \d_framed_frameoffset\relax
\d_framed_target_dp\dimexpr\dp\b_framed_normal+ \d_framed_frameoffset+\framedparameter\c!framedepth\relax
\ifdim\d_framed_target_dp<\zeropoint
- \advance\d_framed_target_ht \d_framed_target_dp
+ \advanceby\d_framed_target_ht \d_framed_target_dp
\scratchdimen-\d_framed_target_dp
\d_framed_target_dp\zeropoint
\else
@@ -632,10 +700,48 @@
\box\b_framed_normal
\box\b_framed_extra}}
+%D A probably unknown feature:
+%D
+%D \startbuffer
+%D \hpack\bgroup
+%D \framed[framecolor=MyColor,frame=on] {!!!!!!!!}
+%D \framed[framecolor=MyColor,frame=closed]{!!!!!!!!}
+%D \framed[framecolor=MyColor,frame=small] {!!!!!!!!}
+%D \egroup
+%D \stopbuffer
+%D
+%D \typebuffer \startlinecorrection[blank] \getbuffer \stoplinecorrection
+
+% \def\pack_framed_stroked_box_normal_opened
+% {\setbox\scratchbox\vpack \bgroup
+% \csname\??framedtop\p_framed_frame\framedparameter\c!topframe\endcsname
+% \nointerlineskip % new (needed for fences)
+% \hpack \bgroup
+% \csname\??framedleft\p_framed_frame\framedparameter\c!leftframe\endcsname
+% \novrule
+% \s!width \d_framed_target_wd
+% \s!height\d_framed_target_ht
+% \s!depth \d_framed_target_dp
+% \csname\??framedright\p_framed_frame\framedparameter\c!rightframe\endcsname
+% \egroup
+% \nointerlineskip % new (needed for fences)
+% \csname\??framedbottom\p_framed_frame\framedparameter\c!bottomframe\endcsname
+% \egroup
+% \wd\scratchbox\d_framed_target_wd
+% \ht\scratchbox\d_framed_target_ht
+% \dp\scratchbox\d_framed_target_dp
+% \box\scratchbox}
+
+% less logging:
+
\def\pack_framed_stroked_box_normal_opened
{\setbox\scratchbox\vpack \bgroup
+ % \normaloffinterlineskip % sets baselineskip, lineskip and lineskiplimit
+ \baselineskip-\thousandpoint
+ \lineskip \zeropoint
+ \lineskiplimit\maxdimen
\csname\??framedtop\p_framed_frame\framedparameter\c!topframe\endcsname
- \nointerlineskip % new (needed for fences)
+ % \nointerlineskip % new (needed for fences)
\hpack \bgroup
\csname\??framedleft\p_framed_frame\framedparameter\c!leftframe\endcsname
\novrule
@@ -644,7 +750,7 @@
\s!depth \d_framed_target_dp
\csname\??framedright\p_framed_frame\framedparameter\c!rightframe\endcsname
\egroup
- \nointerlineskip % new (needed for fences)
+ % \nointerlineskip % new (needed for fences)
\csname\??framedbottom\p_framed_frame\framedparameter\c!bottomframe\endcsname
\egroup
\wd\scratchbox\d_framed_target_wd
@@ -655,7 +761,7 @@
\def\pack_framed_stroked_box_normal_closed
{\hpack\bgroup
\scratchdimen.5\d_framed_linewidth
- \hskip\scratchdimen
+ \kern\scratchdimen
\clf_framedoutline
\dimexpr\d_framed_target_wd-\d_framed_linewidth\relax
\dimexpr\d_framed_target_ht-\scratchdimen\relax
@@ -676,44 +782,61 @@
\def\pack_framed_r_rule{\kern-\d_framed_linewidth\vrule\s!width\d_framed_linewidth}
\def\pack_framed_l_rule{\vrule\s!width\d_framed_linewidth\kern-\d_framed_linewidth}
-\letvalue{\??framedtop \v!on \v!on}\pack_framed_t_rule
-\letvalue{\??framedtop \v!off\v!on}\pack_framed_t_rule
-\letvalue{\??framedtop \v!on }\pack_framed_t_rule
+\letcsname\??framedtop \v!on \v!on\endcsname\pack_framed_t_rule
+\letcsname\??framedtop \v!off\v!on\endcsname\pack_framed_t_rule
+\letcsname\??framedtop \v!on \endcsname\pack_framed_t_rule
-\letvalue{\??framedbottom\v!on \v!on}\pack_framed_b_rule
-\letvalue{\??framedbottom\v!off\v!on}\pack_framed_b_rule
-\letvalue{\??framedbottom\v!on }\pack_framed_b_rule
+\letcsname\??framedbottom\v!on \v!on\endcsname\pack_framed_b_rule
+\letcsname\??framedbottom\v!off\v!on\endcsname\pack_framed_b_rule
+\letcsname\??framedbottom\v!on \endcsname\pack_framed_b_rule
-\letvalue{\??framedleft \v!on \v!on}\pack_framed_l_rule
-\letvalue{\??framedleft \v!off\v!on}\pack_framed_l_rule
-\letvalue{\??framedleft \v!on }\pack_framed_l_rule
+\letcsname\??framedleft \v!on \v!on\endcsname\pack_framed_l_rule
+\letcsname\??framedleft \v!off\v!on\endcsname\pack_framed_l_rule
+\letcsname\??framedleft \v!on \endcsname\pack_framed_l_rule
-\letvalue{\??framedright \v!on \v!on}\pack_framed_r_rule
-\letvalue{\??framedright \v!off\v!on}\pack_framed_r_rule
-\letvalue{\??framedright \v!on }\pack_framed_r_rule
+\letcsname\??framedright \v!on \v!on\endcsname\pack_framed_r_rule
+\letcsname\??framedright \v!off\v!on\endcsname\pack_framed_r_rule
+\letcsname\??framedright \v!on \endcsname\pack_framed_r_rule
% no overlapping rules
-\def\pack_framed_t_rules{\hpack{\kern\d_framed_linewidth\vrule\s!width\dimexpr\d_framed_target_wd-2\d_framed_linewidth\relax\s!height\d_framed_linewidth}\nointerlineskip\kern-\d_framed_linewidth}
-\def\pack_framed_b_rules{\kern-\d_framed_linewidth\nointerlineskip\hpack{\kern\d_framed_linewidth\vrule\s!width\dimexpr\d_framed_target_wd-2\d_framed_linewidth\relax\s!height\d_framed_linewidth}}
-\def\pack_framed_r_rules{\kern-\d_framed_linewidth\vrule\s!height\dimexpr\d_framed_target_ht-\d_framed_linewidth\relax\s!depth-\d_framed_linewidth\s!width\d_framed_linewidth}
-\def\pack_framed_l_rules{\vrule\s!height\dimexpr\d_framed_target_ht-\d_framed_linewidth\relax\s!depth-\d_framed_linewidth\s!width\d_framed_linewidth\kern-\d_framed_linewidth}
+% \def\pack_framed_t_rules{\hpack{\kern\d_framed_linewidth\vrule\s!width\dimexpr\d_framed_target_wd-2\d_framed_linewidth\relax\s!height\d_framed_linewidth}\nointerlineskip\kern-\d_framed_linewidth}
+% \def\pack_framed_b_rules{\kern-\d_framed_linewidth\nointerlineskip\hpack{\kern\d_framed_linewidth\vrule\s!width\dimexpr\d_framed_target_wd-2\d_framed_linewidth\relax\s!height\d_framed_linewidth}}
+% \def\pack_framed_r_rules{\kern-\d_framed_linewidth\vrule\s!height\dimexpr\d_framed_target_ht-\d_framed_linewidth\relax\s!depth-\d_framed_linewidth\s!width\d_framed_linewidth}
+% \def\pack_framed_l_rules{\vrule\s!height\dimexpr\d_framed_target_ht-\d_framed_linewidth\relax\s!depth-\d_framed_linewidth\s!width\d_framed_linewidth\kern-\d_framed_linewidth}
+%
+% see above, less tracing
+%
+% \def\pack_framed_t_rules{\hpack{\kern\d_framed_linewidth\vrule\s!width\dimexpr\d_framed_target_wd-2\d_framed_linewidth\relax\s!height\d_framed_linewidth}\kern-\d_framed_linewidth}
+% \def\pack_framed_b_rules{\kern-\d_framed_linewidth\hpack{\kern\d_framed_linewidth\vrule\s!width\dimexpr\d_framed_target_wd-2\d_framed_linewidth\relax\s!height\d_framed_linewidth}}
+% \def\pack_framed_r_rules{\kern-\d_framed_linewidth\vrule\s!height\dimexpr\d_framed_target_ht-\d_framed_linewidth\relax\s!depth-\d_framed_linewidth\s!width\d_framed_linewidth}
+% \def\pack_framed_l_rules{\vrule\s!height\dimexpr\d_framed_target_ht-\d_framed_linewidth\relax\s!depth-\d_framed_linewidth\s!width\d_framed_linewidth\kern-\d_framed_linewidth}
+%
+% more modern:
+
+\def\pack_framed_rules_hrule{\hrule\s!height\d_framed_linewidth\s!left\d_framed_linewidth\s!right \d_framed_linewidth\relax}
+\def\pack_framed_rules_vrule{\vrule\s!width \d_framed_linewidth\s!top \d_framed_linewidth\s!bottom\d_framed_linewidth\relax}% \s!yoffset-\d_framed_linewidth}
-\letvalue{\??framedtop \v!small\v!small}\pack_framed_t_rules
-\letvalue{\??framedtop \v!off \v!small}\pack_framed_t_rules
-\letvalue{\??framedtop \v!small }\pack_framed_t_rules
+\def\pack_framed_t_rules{\pack_framed_rules_hrule\kern-\d_framed_linewidth}
+\def\pack_framed_b_rules{\kern-\d_framed_linewidth\pack_framed_rules_hrule}
+\def\pack_framed_r_rules{\kern-\d_framed_linewidth\pack_framed_rules_vrule}
+\def\pack_framed_l_rules{\pack_framed_rules_vrule\kern-\d_framed_linewidth}
-\letvalue{\??framedbottom\v!small\v!small}\pack_framed_b_rules
-\letvalue{\??framedbottom\v!off \v!small}\pack_framed_b_rules
-\letvalue{\??framedbottom\v!small }\pack_framed_b_rules
+\letcsname\??framedtop \v!small\v!small\endcsname\pack_framed_t_rules
+\letcsname\??framedtop \v!off \v!small\endcsname\pack_framed_t_rules
+\letcsname\??framedtop \v!small \endcsname\pack_framed_t_rules
-\letvalue{\??framedleft \v!small\v!small}\pack_framed_l_rules
-\letvalue{\??framedleft \v!off \v!small}\pack_framed_l_rules
-\letvalue{\??framedleft \v!small }\pack_framed_l_rules
+\letcsname\??framedbottom\v!small\v!small\endcsname\pack_framed_b_rules
+\letcsname\??framedbottom\v!off \v!small\endcsname\pack_framed_b_rules
+\letcsname\??framedbottom\v!small \endcsname\pack_framed_b_rules
-\letvalue{\??framedright \v!small\v!small}\pack_framed_r_rules
-\letvalue{\??framedright \v!off \v!small}\pack_framed_r_rules
-\letvalue{\??framedright \v!small }\pack_framed_r_rules
+\letcsname\??framedleft \v!small\v!small\endcsname\pack_framed_l_rules
+\letcsname\??framedleft \v!off \v!small\endcsname\pack_framed_l_rules
+\letcsname\??framedleft \v!small \endcsname\pack_framed_l_rules
+
+\letcsname\??framedright \v!small\v!small\endcsname\pack_framed_r_rules
+\letcsname\??framedright \v!off \v!small\endcsname\pack_framed_r_rules
+\letcsname\??framedright \v!small \endcsname\pack_framed_r_rules
% \framed
% [width=4cm,height=3cm,rulethickness=3mm,
@@ -775,11 +898,11 @@
% \presetlocalframed[\??framed]
-\newcount\c_pack_framed_nesting
+\newinteger\c_pack_framed_nesting
\permanent\tolerant\protected\def\framed[#1]%
{\bgroup
- \advance\c_pack_framed_nesting\plusone
+ \advanceby\c_pack_framed_nesting\plusone
\letcsname\??framed>\the\c_pack_framed_nesting:\s!parent\endcsname\??framed
\edef\currentframed{>\the\c_pack_framed_nesting}%
\pack_framed_initialize
@@ -794,7 +917,7 @@
\bgroup
\or
\ifhastok={#1}%
- \advance\c_pack_framed_nesting\plusone
+ \advanceby\c_pack_framed_nesting\plusone
\letcsname\??framed>\the\c_pack_framed_nesting:\s!parent\endcsname\??framed
\edef\currentframed{>\the\c_pack_framed_nesting}%
\pack_framed_initialize
@@ -823,7 +946,7 @@
\permanent\protected\def\normalframedwithsettings[#1]%
{\bgroup
- \advance\c_pack_framed_nesting\plusone
+ \advanceby\c_pack_framed_nesting\plusone
\letcsname\??framed>\the\c_pack_framed_nesting:\s!parent\endcsname\??framed
\bgroup
\edef\currentframed{>\the\c_pack_framed_nesting}%
@@ -881,6 +1004,7 @@
\edef\p_framed_background{\framedparameter\c!background}%
% not here, in calling macro: setups
\pack_framed_remove_depth
+ % beware, depth goes away when we have a frame, otherwise it's retained
\ifx\p_framed_frame\v!overlay \orelse \ifx\p_framed_frame\v!none \else
\ifempty\p_framed_rulethickness\else
\d_framed_linewidth\p_framed_rulethickness\relax
@@ -909,7 +1033,11 @@
%D can better be correct.
\protected\def\pack_framed_process_box_indeed#1#2% component box (assumes parameters set and grouped usage)
- {\setbox\b_framed_normal\box#2% could actually be \let\b_framed_normal#2
+ {%
+ %\setbox\b_framed_normal\box#2%
+ %\def\b_framed_normal{#2}% protected against overload
+ \enforced\let\b_framed_normal#2%
+ %
\edef\m_overlay_region{\framedparameter\c!region}%
\ifempty\m_overlay_region\else
\pack_framed_set_region
@@ -960,11 +1088,49 @@
%D \defineframed[test][hoffset=1cm]
%D \stoptyping
-\newdimen\d_framed_width
-\newdimen\d_framed_height
-\newdimen\d_framed_frameoffset
-\newdimen\d_framed_backgroundoffset
-\newdimen\d_framed_local_offset
+%D A byproduct of \type {\uleaders} in the 2022 math upgrade project:
+%D
+%D \starttyping
+%D \startsetups adaptive:test:a
+%D \setbox\usedadaptivebox\vbox to \usedadaptivetotal \bgroup
+%D \externalfigure
+%D [cow.pdf]
+%D [width=\framedmaxwidth,
+%D frame=on,
+%D height=\usedadaptivetotal]%
+%D \egroup
+%D \stopsetups
+%D
+%D \startsetups adaptive:test:b
+%D \setbox\usedadaptivebox\vbox to \usedadaptivetotal \bgroup
+%D \externalfigure
+%D [cow.pdf]
+%D [width=\usedadaptivewidth,
+%D frame=on,
+%D height=\usedadaptivetotal]%
+%D \egroup
+%D \stopsetups
+%D
+%D \framed[height=18cm,align=middle,adaptive=yes,top=,bottom=] {%
+%D \begstrut \samplefile{tufte} \endstrut
+%D \par
+%D \adaptivevbox
+%D [strut=yes,setups=adaptive:test:a]
+%D {\showstruts\strut\hsize5cm\hss}%
+%D \par
+%D \adaptivevbox
+%D [strut=yes,setups=adaptive:test:b]
+%D {\showstruts\strut\hsize5cm\hss}%
+%D \par
+%D \begstrut \samplefile{tufte} \endstrut
+%D }
+%D \stoptyping
+
+\newdimension\d_framed_width
+\newdimension\d_framed_height
+\newdimension\d_framed_frameoffset
+\newdimension\d_framed_backgroundoffset
+\newdimension\d_framed_local_offset
% todo: protect local \framednames
@@ -989,23 +1155,49 @@
\defineinterfaceconstant {fr!analyze} {fr:analyze} % private option
-\aliased\let\delayedbegstrut\relax
-\aliased\let\delayedendstrut\relax
-\aliased\let\delayedstrut \relax
-
-\mutable\let\localoffset\empty
-\mutable\let\localwidth \empty
-\mutable\let\localheight\empty
-\mutable\let\localformat\empty
-\mutable\let\localstrut \empty
-
-\mutable\let\framedwidth \empty
-\mutable\let\framedheight\empty
-\mutable\let\framedoffset\empty
-
-\aliased\let\localbegstrut\relax
-\aliased\let\localendstrut\relax
-\aliased\let\localstrut \relax
+\permanent\protected\lettonothing\delayedbegstrut
+\permanent\protected\lettonothing\delayedendstrut
+\permanent\protected\lettonothing\delayedstrut
+
+\permanent\protected\lettonothing\localbegstrut
+\permanent\protected\lettonothing\localendstrut
+\permanent\protected\lettonothing\localstrut
+
+\mutable\lettonothing\localoffset
+\mutable\lettonothing\localwidth
+\mutable\lettonothing\localheight
+\mutable\lettonothing\localformat
+
+\mutable\lettonothing\framedwidth
+\mutable\lettonothing\framedheight
+\mutable\lettonothing\framedoffset
+
+% better a constant:
+
+\newconditional\c_pack_resync
+\newconditional\c_pack_reanchor
+
+% \let\spac_framed_pop_local_anchors\relax
+
+\def\spac_framed_push_local_anchors
+ {\ifx\p_framed_synchronize\v!yes
+ \settrue\c_pack_resync
+ \settrue\c_pack_reanchor
+ \pushlocalanchors
+ % \aftergrouped{\aftergrouped{\poplocalanchors}}%
+ \aftergroup\poplocalanchors
+ \orelse\ifx\p_framed_synchronize\v!text
+ \settrue\c_pack_resync
+ \pushlocalanchors
+ \aftergroup\poplocalanchors
+ \orelse\ifx\p_framed_synchronize\v!background
+ \settrue\c_pack_reanchor
+ \pushlocalanchors
+ \aftergroup\poplocalanchors
+ \else
+ \setfalse\c_pack_resync
+ \setfalse\c_pack_reanchor
+ \fi}
\protected\def\pack_framed_process_indeed
{\d_framed_frameoffset\framedparameter\c!frameoffset
@@ -1037,10 +1229,19 @@
\edef\p_framed_location {\framedparameter\c!location}%
\edef\p_framed_orientation{\framedparameter\c!orientation}%
\edef\p_framed_anchoring {\framedparameter\c!anchoring}%
+ \edef\p_framed_synchronize{\framedparameter\c!synchronize}%
%
\edef\p_framed_autowidth {\framedparameter\c!autowidth}%
\edef\p_framed_franalyze {\framedparameter\c!fr!analyze}% experimental option
%
+ \ifempty\p_framed_synchronize
+ \setfalse\c_pack_resync
+ \setfalse\c_pack_reanchor
+% \let\spac_framed_pop_local_anchors\relax
+ \else
+ \spac_framed_push_local_anchors
+ \fi
+ %
\ifx\p_framed_frame\v!overlay % no frame, no offset, no framewidth
\setfalse\c_framed_has_frame
\let\localoffset\v!overlay
@@ -1088,8 +1289,13 @@
\fi
% the next check could move to heightalternative
\ifconditional\c_framed_has_height
- % obey user set height, also downward compatible
+ \ifcstok{\framedparameter\c!adaptive}\v!yes
+ \let\p_framed_adaptive\s!delay
+ \else
+ \lettonothing\p_framed_adaptive
+ \fi
\else
+ \lettonothing\p_framed_adaptive
\edef\p_framed_lines{\framedparameter\c!lines}%
\ifempty\p_framed_lines
\orelse\ifcase\p_framed_lines
@@ -1107,8 +1313,8 @@
% \d_framed_width\localhsize
% \fi
% i.e. disable (colsetbackgroundproblemintechniek)
- \advance\d_framed_width -2\d_framed_local_offset
- \advance\d_framed_height -2\d_framed_local_offset
+ \advanceby\d_framed_width -2\d_framed_local_offset
+ \advanceby\d_framed_height -2\d_framed_local_offset
\ifcsname\??framedstrutalternative\p_strut\endcsname
\lastnamedcs
\else
@@ -1116,9 +1322,9 @@
\fi
% the next check could move to strutalternative
\ifcase\c_framed_has_strut % none (not even noindent)
- \enforced\let\localbegstrut\relax
- \enforced\let\localendstrut\relax
- \enforced\let\localstrut \relax
+ \enforced\lettonothing\localbegstrut
+ \enforced\lettonothing\localendstrut
+ \enforced\lettonothing\localstrut
\or % no / overlay
\enforced\let\localbegstrut\pseudobegstrut
\enforced\let\localendstrut\pseudoendstrut
@@ -1129,16 +1335,16 @@
\enforced\let\localstrut \strut
\fi
\ifx\p_framed_autostrut\v!yes
- \enforced\let\delayedbegstrut\relax
- \enforced\let\delayedendstrut\relax
- \enforced\let\delayedstrut \relax
+ \enforced\lettonothing\delayedbegstrut
+ \enforced\lettonothing\delayedendstrut
+ \enforced\lettonothing\delayedstrut
\else
- \enforced\let\delayedbegstrut\localbegstrut
- \enforced\let\delayedendstrut\localendstrut
- \enforced\let\delayedstrut \localstrut
- \enforced\let\localbegstrut \relax
- \enforced\let\localendstrut \relax
- \enforced\let\localstrut \relax
+ \enforced\let \delayedbegstrut\localbegstrut
+ \enforced\let \delayedendstrut\localendstrut
+ \enforced\let \delayedstrut \localstrut
+ \enforced\lettonothing\localbegstrut
+ \enforced\lettonothing\localendstrut
+ \enforced\lettonothing\localstrut
\fi
\ifconditional\c_framed_has_height
\enforced\let\\\pack_framed_vboxed_newline
@@ -1174,17 +1380,17 @@
\fi
\pack_framed_check_extra_offsets
\edef\p_framed_background{\framedparameter\c!background}%
-% \ifempty\p_framed_background
-% \let\pack_framed_forgetall\forgetall
-% \else
-% \let\pack_framed_forgetall\relax
-% \forgetall
-% \fi
+ % \ifempty\p_framed_background
+ % \let\pack_framed_forgetall\forgetall
+ % \else
+ % \let\pack_framed_forgetall\relax
+ % \forgetall
+ % \fi
\edef\framedwidth {\the\ifdim\d_framed_width >\zeropoint \d_framed_width \else\zeropoint\fi}% public
\edef\framedheight{\the\ifdim\d_framed_height>\zeropoint \d_framed_height\else\zeropoint\fi}% public
\edef\framedoffset{\the\dimexpr\ifconditional\c_framed_has_offset\localoffset \else\zeropoint\fi}% public
% for now: i need to think of something better
- % \bitwiseflip \normalizelinemode -\clipwidthcode % now handled in analyzer
+ % \bitwiseflip \normalizelinemode -\clipwidthnormalizecode % now handled in analyzer
% but that's for later
\ifempty\p_framed_orientation
\let\pack_framed_stop_orientation\relax
@@ -1202,8 +1408,12 @@
\installcorenamespace{framedoffsetalternative}
% widths
+%
+% \inframed[adaptive=0500]{Just some words}
+% \inframed[adaptive=0] {Just some words}
+% \inframed[adaptive=-500]{Just some words}
-\setvalue{\??framedwidthalternative\empty}%
+\defcsname\??framedwidthalternative\empty\endcsname
{\ifconditional\c_framed_has_format
\settrue\c_framed_has_width
\d_framed_width\hsize
@@ -1212,7 +1422,7 @@
\d_framed_width\zeropoint
\fi}
-\setvalue{\??framedwidthalternative\v!fit}%
+\defcsname\??framedwidthalternative\v!fit\endcsname
{\ifconditional\c_framed_has_format
\settrue\c_framed_has_width
\d_framed_width\hsize
@@ -1221,7 +1431,7 @@
\d_framed_width\zeropoint
\fi}
-\setvalue{\??framedwidthalternative\v!fixed}% equals \v!fit but no shapebox
+\defcsname\??framedwidthalternative\v!fixed\endcsname % equals \v!fit but no shapebox
{\ifconditional\c_framed_has_format
\settrue\c_framed_has_width
\d_framed_width\hsize
@@ -1230,20 +1440,20 @@
\d_framed_width\zeropoint
\fi}
-\setvalue{\??framedwidthalternative\v!broad}%
+\defcsname\??framedwidthalternative\v!broad\endcsname
{\settrue\c_framed_has_width
\d_framed_width\hsize}
-\setvalue{\??framedwidthalternative\v!max}% idem broad
+\defcsname\??framedwidthalternative\v!max\endcsname % idem broad
{\settrue\c_framed_has_width
\d_framed_width\hsize}
-\setvalue{\??framedwidthalternative\v!local}%
+\defcsname\??framedwidthalternative\v!local\endcsname
{\settrue\c_framed_has_width
%\setlocalhsize
\d_framed_width\localhsize}
-\setvalue{\??framedwidthalternative\s!unknown}%
+\defcsname\??framedwidthalternative\s!unknown\endcsname
{\settrue\c_framed_has_width
\d_framed_width\localwidth}
@@ -1253,23 +1463,23 @@
% heights
-\setvalue{\??framedheightalternative\empty}%
+\defcsname\??framedheightalternative\empty\endcsname
{\setfalse\c_framed_has_height
\d_framed_height\zeropoint}
-\setvalue{\??framedheightalternative\v!fit}%
+\defcsname\??framedheightalternative\v!fit\endcsname
{\setfalse\c_framed_has_height
\d_framed_height\zeropoint}
-\setvalue{\??framedheightalternative\v!broad}%
+\defcsname\??framedheightalternative\v!broad\endcsname
{\setfalse\c_framed_has_height
\d_framed_height\zeropoint}
-\setvalue{\??framedheightalternative\v!max}%
+\defcsname\??framedheightalternative\v!max\endcsname
{\settrue\c_framed_has_height
\d_framed_height\vsize}
-\setvalue{\??framedheightalternative\s!unknown}%
+\defcsname\??framedheightalternative\s!unknown\endcsname
{\settrue\c_framed_has_height
\d_framed_height\localheight}
@@ -1279,49 +1489,49 @@
% struts (use let instead?)
-\setvalue{\??framedstrutalternative\v!no}%
+\defcsname\??framedstrutalternative\v!no\endcsname
{\c_framed_has_strut\plusone}
-\setvalue{\??framedstrutalternative\v!global}%
+\defcsname\??framedstrutalternative\v!global\endcsname
{\setstrut}
-\setvalue{\??framedstrutalternative\v!local}%
+\defcsname\??framedstrutalternative\v!local\endcsname
{\setfontstrut}
-\setvalue{\??framedstrutalternative\v!yes}%
+\defcsname\??framedstrutalternative\v!yes\endcsname
{\setstrut}
-\setvalue{\??framedstrutalternative\s!unknown}%
+\defcsname\??framedstrutalternative\s!unknown\endcsname
{\setstrut}
\def\framed_strut_alternative_unknown
{\setstrut}
-\setvalue{\??framedstrutalternative\v!none}% not even pseudo struts
+\defcsname\??framedstrutalternative\v!none\endcsname % not even pseudo struts
{\c_framed_has_strut\zerocount}
% offsets
-\setvalue{\??framedoffsetalternative\v!none}%
+\defcsname\??framedoffsetalternative\v!none\endcsname
{\setfalse\c_framed_has_offset
\c_framed_has_strut\plusone
\setfalse\c_framed_is_overlaid
\d_framed_local_offset\d_framed_linewidth}
-\setvalue{\??framedoffsetalternative\v!overlay}%
+\defcsname\??framedoffsetalternative\v!overlay\endcsname
{% \ifx\p_framed_frame\v!no \setfalse\c_framed_has_frame \fi % test first
\setfalse\c_framed_has_offset
\c_framed_has_strut\plusone
\settrue\c_framed_is_overlaid
\d_framed_local_offset\zeropoint}
-% \setvalue{\??framedoffsetalternative\v!strut}%
+% \defcsname\??framedoffsetalternative\v!strut\endcsname
% {\setfalse\c_framed_has_offset
% \c_framed_has_strut\plustwo
% \settrue\c_framed_is_overlaid
% \d_framed_local_offset\zeropoint}
-\setvalue{\??framedoffsetalternative\v!default}% new per 2-6-2000
+\defcsname\??framedoffsetalternative\v!default\endcsname % new per 2-6-2000
{\settrue \c_framed_has_offset
\c_framed_has_strut\plustwo
\setfalse\c_framed_is_overlaid
@@ -1336,7 +1546,7 @@
\let\defaultframeoffset\localoffset
\d_framed_local_offset\dimexpr\localoffset+\d_framed_linewidth\relax}
-\letvalue{\??framedoffsetalternative\s!unknown}\framed_offset_alternative_unknown
+\letcsname\??framedoffsetalternative\s!unknown\endcsname\framed_offset_alternative_unknown
% so far for alternatives
@@ -1412,6 +1622,19 @@
% options (btw, beware of location settings of derived functionality that bleed
% into this
+\def\pack_framed_profile_box
+ {\profilegivenbox\p_profile\b_framed_normal
+ \setbox\b_framed_normal\vpack{\unvbox\b_framed_normal}}
+
+\def\pack_framed_reverse_box
+ {\ifvbox\b_framed_normal
+ \edef\p_linedirection{\framedparameter\c!linedirection}%
+ \ifx\p_linedirection\v!reverse
+ \reversevboxcontent\b_framed_normal
+ \setbox\b_framed_normal\vpack{\unvbox\b_framed_normal}%
+ \fi
+ \fi}
+
\def\pack_framed_finish_a
{\ifreshapeframebox
\pack_framed_reshape_process
@@ -1437,29 +1660,20 @@
\pack_framed_reshape_reset
\fi}
-\def\pack_framed_profile_box
- {\profilegivenbox\p_profile\b_framed_normal
- \setbox\b_framed_normal\vpack{\unvbox\b_framed_normal}}
-
-\def\pack_framed_reverse_box
- {\ifvbox\b_framed_normal
- \edef\p_linedirection{\framedparameter\c!linedirection}%
- \ifx\p_linedirection\v!reverse
- \reversevboxcontent\b_framed_normal
- \setbox\b_framed_normal\vpack{\unvbox\b_framed_normal}%
- \fi
- \fi}
+% Musical timestamp for the adding the "freezespacing" feature: Porcupine Tree -
+% Herd Culling (Single Edit - Official Visualiser : some old sql code scrolling by
+% on some paper terminal font); scalefactors are in the range -1000..1000.
\protected\def\pack_framed_finish
- {%\pack_framed_stop_orientation % hm, wrong place ! should rotate the result (after reshape) .. moved down
+ {\edef\p_freeze{\framedparameter\c!freezespacing}%
+ \ifempty\p_freeze
+ % \orelse\ifx\p_freeze\v!yes
+ % \boxfreeze\b_framed_normal\zerocount
+ \else
+ \boxadapt\b_framed_normal\p_freeze\relax
+ \fi
\pack_framed_locator_before\p_framed_location
\ifconditional\c_framed_has_format
- %\ifconditional\c_framed_has_height \else
- % \edef\p_profile{\framedparameter\c!profile}%
- % \ifempty\p_profile\else
- % \pack_framed_profile_box
- % \fi
- %\fi
\ifempty\p_framed_anchoring\else
\pack_framed_reverse_box
\fi
@@ -1496,10 +1710,8 @@
\ht\b_framed_normal\d_framed_height
\else
\edef\p_framed_minheight{\framedparameter\c!minheight}%
- \ifempty\p_framed_minheight \else
- \ifdim\ht\b_framed_normal<\p_framed_minheight
- \ht\b_framed_normal\p_framed_minheight
- \fi
+ \ifempty\p_framed_minheight \orelse \ifdim\ht\b_framed_normal<\p_framed_minheight
+ \ht\b_framed_normal\p_framed_minheight
\fi
\fi
\edef\p_framed_empty{\framedparameter\c!empty}%
@@ -1523,15 +1735,13 @@
\d_framed_linewidth
\fi
\ifconditional\c_framed_has_offset
- \advance\d_framed_applied_offset\localoffset\relax
+ \advanceby\d_framed_applied_offset\localoffset\relax
\fi
\ifconditional\c_framed_has_extra_offset
\pack_framed_apply_extra_offsets % includes \d_framed_applied_offset
+ \orelse\ifzeropt\d_framed_applied_offset
\else
- \ifzeropt\d_framed_applied_offset
- \else
- \pack_framed_widen_box
- \fi
+ \pack_framed_widen_box
\fi
%
\ifrelax\postprocessframebox \else
@@ -1551,11 +1761,10 @@
\pack_framed_add_background
\fi
\fi
+% \pack_framed_pop_local_anchors
\pack_framed_locator_after\p_framed_location
- \iftrialtypesetting \else
- \ifempty\m_overlay_region\else
- \pack_framed_add_region
- \fi
+ \iftrialtypesetting \orelse \ifempty\m_overlay_region \else
+ \pack_framed_add_region
\fi
\box\b_framed_normal
\global\frameddimensionstate % global so to be used directly afterwards !
@@ -1620,10 +1829,10 @@
\def\pack_framed_locator_before#1{\begincsname\??framedlocatorbefore#1\endcsname}
\def\pack_framed_locator_after #1{\begincsname\??framedlocatorafter #1\endcsname}
-\newdimen\d_framed_locator_ht
-\newdimen\d_framed_locator_dp
-\newdimen\d_framed_locator_lo
-\newdimen\d_framed_locator_ro
+\newdimension\d_framed_locator_ht
+\newdimension\d_framed_locator_dp
+\newdimension\d_framed_locator_lo
+\newdimension\d_framed_locator_ro
\def\pack_framed_locator_set#1%
{\d_framed_locator_ht\dimexpr
@@ -1674,6 +1883,12 @@
% \framed[width=2cm,align=middle,location=lohi] {location\\equals\\lohi}
% \framed[width=2cm,align=middle,location=middle] {location\\equals\\middle}
% B}
+% \vskip2cm
+% \ruledhbox
+% {A
+% \framed[width=2cm,align=middle,location=keep] {location\\equals\\top}
+% \framed[width=2cm,align=middle,location=formula {location\\equals\\bottom}
+% B}
\installframedlocator \v!hanging % best with strut=no *1* / see mail to list by SB
{}
@@ -1753,7 +1968,7 @@
{\pack_framed_remove_depth}
{\pack_framed_restore_depth}
-\newdimen\d_framed_formula
+\newdimension\d_framed_formula
\installframedlocator \v!formula % private, will become a more generic name
{}
@@ -1765,9 +1980,9 @@
% also used in fastlocalframed
-\newdimen\d_framed_original_wd
-\newdimen\d_framed_original_ht
-\newdimen\d_framed_original_dp
+\newdimension\d_framed_original_wd
+\newdimension\d_framed_original_ht
+\newdimension\d_framed_original_dp
\def\pack_framed_remove_depth
{\d_framed_original_wd\wd\b_framed_normal
@@ -1817,151 +2032,14 @@
%D When we set \type{empty} to \type{yes}, we get ourselves a frame and/or background,
%D but no content, so actually we have a sort of phantom framed box.
-%D \macros
-%D {mframed, minframed}
-%D
-%D When Tobias asked how to frame mathematical elements in formulas, Taco's posted the
-%D next macro:
-%D
-%D \starttyping
-%D \def\mframed#1%
-%D {\relax
-%D \ifmmode
-%D \vcenter{\hbox{\framed{$\ifinner\else\displaystyle\fi#1$}}}%
-%D \else
-%D \framed{$#1$}%
-%D \fi}
-%D \stoptyping
-%D
-%D Because \type {\ifinner} does not (always) reports what one would expect, we move the
-%D test to the outer level. We also want to pass arguments,
-%D
-%D \starttyping
-%D \def\mframed%
-%D {\dosingleempty\domframed}
-%D
-%D \def\domframed[#1]#2% % tzt \dowithnextmathbox ?
-%D {\relax
-%D \ifmmode
-%D \ifinner
-%D \inframed[#1]{$#2$}%
-%D \else
-%D \vcenter{\hbox{\framed[#1]{$\displaystyle#2$}}}%
-%D \fi
-%D \else
-%D \inframed[#1]{$#2$}%
-%D \fi}
-%D \stoptyping
-%D
-%D Still better is the next alternative, if only because it takes care of setting the super-
-%D and subscripts styles
-
-\newcount\c_framed_mstyle
-
-\protected\def\pack_framed_math_strut
- {\Ustartmath
- \triggermathstyle\c_framed_mstyle
- \vphantom{(}%
- \Ustopmath}
-
-\installcorenamespace{mathframed}
-
-\installframedcommandhandler \??mathframed {mathframed} \??mathframed
-
-\newcount\c_pack_framed_mathframed
-\newtoks \t_pack_framed_mathframed
-
-\appendtoks
- \frozen\protected\instance\edefcsname\currentmathframed\endcsname{\pack_framed_mathframed[\currentmathframed]}%
-\to \everydefinemathframed
-
-\let\pack_framed_mc_one\relax
-\let\pack_framed_mc_two\relax
-
-\tolerant\protected\def\pack_framed_mathframed[#1]#*[#2]#:#3% needs testing !
- {\begingroup
- \edef\currentmathframed{#1}%
- \setupcurrentmathframed[#2]%
- \c_framed_mstyle\normalmathstyle
- \edef\m_framed_location{\mathframedparameter\c!location}%
- \ifx\m_framed_location\v!mathematics
- \enforced\let\normalstrut\pack_framed_math_pos % I don't like this overload!
- \orelse\ifx\m_framed_location\v!low\else
- \enforced\let\normalstrut\pack_framed_math_strut
- \fi
- \inheritedmathframedframed\bgroup
- \Ustartmath
- \triggermathstyle\c_framed_mstyle
- \the\t_pack_framed_mathframed
- #3%
- \Ustopmath
- \egroup
- \endgroup}
-
-\def\pack_framed_math_pos
- {\global\advance\c_pack_framed_mathframed\plusone
- \xdef\pack_framed_mc_one{mcf:1:\number\c_pack_framed_mathframed}%
- \xdef\pack_framed_mc_two{mcf:2:\number\c_pack_framed_mathframed}%
- \xypos\pack_framed_mc_two}
-
-\appendtoks
- \mathraggedstatus\plustwo % makes \startalign work
- \eqalignmode \zerocount % makes \startalign fit
-\to \t_pack_framed_mathframed
-
-\installframedlocator \v!mathematics
- {}
- {\lower\dimexpr\MPy\pack_framed_mc_two-\MPy\pack_framed_mc_one\relax
- \hpack{\xypos\pack_framed_mc_one\box\b_framed_normal}}
-
-\definemathframed[mframed]
-\definemathframed[inmframed][\c!location=\v!low]
-\definemathframed[mcframed] [\c!location=\v!mathematics]
-
-%D So instead of the rather versatile \type {\framed}, we use \type {\mframed}:
-%D
-%D \startbuffer
-%D \startformula
-%D x \times \mframed{y} \times y^{z_z}
-%D x \times \inmframed{y} \times y^{z_z}
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D And:
-%D
-%D \startbuffer
-%D \startformula
-%D x \times \mframed{y} \times y^{\mframed{z}_{\mframed{z}}}
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D As usual, one can specify in what way the text should be framed. One should be
-%D aware of the fact that, inorder to preserve the proper spacing, the \type
-%D {offset} is set to \type {overlay} and \type {frameoffset} is used used instead.
-%D
-%D \startbuffer
-%D \startformula
-%D x \times y^{\mframed[framecolor=red]{z}_{z}}
-%D \stopformula
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-%D
-%D For inline use, we also provide the \type {\inmframed} alternative: we want $x
-%D \times \inmframed{y}$ in inline math, right?
-
%D This previous framing macros needs a lot of alternatives for putting rules around
%D boxes, inserting offsets and aligning text. Each step is handled by separate macros.
-\newdimen\d_framed_applied_offset
-\newdimen\d_framed_loffset
-\newdimen\d_framed_roffset
-\newdimen\d_framed_toffset
-\newdimen\d_framed_boffset
+\newdimension\d_framed_applied_offset
+\newdimension\d_framed_loffset
+\newdimension\d_framed_roffset
+\newdimension\d_framed_toffset
+\newdimension\d_framed_boffset
\def\pack_framed_check_extra_offsets % we could check h and v indepently
{\setfalse\c_framed_has_extra_offset
@@ -1969,17 +2047,17 @@
\d_framed_roffset\framedparameter\c!roffset\relax
\d_framed_toffset\framedparameter\c!toffset\relax
\d_framed_boffset\framedparameter\c!boffset\relax
- \ifzeropt\d_framed_loffset\else \advance\d_framed_width -\d_framed_loffset \settrue\c_framed_has_extra_offset \fi
- \ifzeropt\d_framed_roffset\else \advance\d_framed_width -\d_framed_roffset \settrue\c_framed_has_extra_offset \fi
- \ifzeropt\d_framed_toffset\else \advance\d_framed_height-\d_framed_toffset \settrue\c_framed_has_extra_offset \fi
- \ifzeropt\d_framed_boffset\else \advance\d_framed_height-\d_framed_boffset \settrue\c_framed_has_extra_offset \fi}
+ \ifzeropt\d_framed_loffset\else \advanceby\d_framed_width -\d_framed_loffset \settrue\c_framed_has_extra_offset \fi
+ \ifzeropt\d_framed_roffset\else \advanceby\d_framed_width -\d_framed_roffset \settrue\c_framed_has_extra_offset \fi
+ \ifzeropt\d_framed_toffset\else \advanceby\d_framed_height-\d_framed_toffset \settrue\c_framed_has_extra_offset \fi
+ \ifzeropt\d_framed_boffset\else \advanceby\d_framed_height-\d_framed_boffset \settrue\c_framed_has_extra_offset \fi}
\def\pack_framed_apply_extra_offsets
{\setbox\b_framed_normal\vpack\bgroup
- \advance\d_framed_toffset\d_framed_applied_offset
- \advance\d_framed_boffset\d_framed_applied_offset
- \advance\d_framed_loffset\d_framed_applied_offset
- \advance\d_framed_roffset\d_framed_applied_offset
+ \advanceby\d_framed_toffset\d_framed_applied_offset
+ \advanceby\d_framed_boffset\d_framed_applied_offset
+ \advanceby\d_framed_loffset\d_framed_applied_offset
+ \advanceby\d_framed_roffset\d_framed_applied_offset
\kern\d_framed_toffset
\hpack\bgroup
\kern\d_framed_loffset
@@ -2120,7 +2198,7 @@
\fi}
\def\pack_framed_format_format_yes
- {\vbox to \d_framed_height
+ {\vbox to \d_framed_height \p_framed_adaptive
\bgroup
\let\postprocessframebox\relax
% \pack_framed_forgetall
@@ -2303,12 +2381,12 @@
%D It is possible to let the frame macro calculate the width of a centered box
%D automatically (\type {fit}). When doing so, we need to reshape the box:
-\newcount\framednoflines
-\newdimen\framedfirstheight
-\newdimen\framedlastdepth
-\newdimen\framedminwidth
-\newdimen\framedmaxwidth
-\newdimen\framedaveragewidth
+% \newinteger \framednoflines
+% \newdimension\framedfirstheight
+% \newdimension\framedlastdepth
+% \newdimension\framedminwidth
+% \newdimension\framedmaxwidth
+% \newdimension\framedaveragewidth
\def\pack_framed_reshape_reset
{\framednoflines \zerocount
@@ -2318,8 +2396,26 @@
\framedmaxwidth \zeropoint
\framedaveragewidth\zeropoint}
-\def\pack_framed_reshape_process{\ifvbox\b_framed_normal\clf_doreshapeframedbox\b_framed_normal\relax\fi}
-\def\pack_framed_reshape_analyze{\ifvbox\b_framed_normal\clf_doanalyzeframedbox\b_framed_normal\relax\fi}
+\def\pack_framed_reshape_process
+ {\ifvbox\b_framed_normal
+ \ifconditional\c_pack_resync
+ \clf_doresyncframedbox
+ \else
+ \clf_doreshapeframedbox
+ \fi\b_framed_normal\relax
+ \ifx\p_framed_adaptive\s!delay
+ \adaptivecheckbox\b_framed_normal
+ \fi
+ \fi}
+
+\def\pack_framed_reshape_analyze
+ {\ifvbox\b_framed_normal
+ \ifconditional\c_pack_resync
+ \clf_doresyncframedbox
+ \else
+ \clf_doanalyzeframedbox
+ \fi\b_framed_normal\relax
+ \fi}
% torture test / strange case (much depth) / method 2 needed
%
@@ -2629,29 +2725,33 @@
\frozen\instance\protected\edefcsname \currentframedtext\endcsname{\pack_framed_text_direct[\currentframedtext]}%
\to \everydefineframedtext
-\setvalue{\??framedtextlocation\v!left }{\letframedtextparameter\c!left \relax
- \letframedtextparameter\c!right\hfill}
+\defcsname\??framedtextlocation\v!left\endcsname
+ {\letframedtextparameter\c!left \relax
+ \letframedtextparameter\c!right\hfill}
-\setvalue{\??framedtextlocation\v!right }{\letframedtextparameter\c!left \hfill
- \letframedtextparameter\c!right\relax}
+\defcsname\??framedtextlocation\v!right\endcsname
+ {\letframedtextparameter\c!left \hfill
+ \letframedtextparameter\c!right\relax}
-\setvalue{\??framedtextlocation\v!middle}{\letframedtextparameter\c!left \hfill
- \letframedtextparameter\c!right\hfill}
+\defcsname\??framedtextlocation\v!middle\endcsname
+ {\letframedtextparameter\c!left \hfill
+ \letframedtextparameter\c!right\hfill}
-\setvalue{\??framedtextlocation\v!none }{\letframedtextparameter\c!left \relax
- \letframedtextparameter\c!right\relax
- \settrue\c_framed_text_location_none}
+\defcsname\??framedtextlocation\v!none\endcsname
+ {\letframedtextparameter\c!left \relax
+ \letframedtextparameter\c!right\relax
+ \settrue\c_framed_text_location_none}
\tolerant\protected\def\pack_framed_text_start[#1]#*[#2]#*[#3]% or #1#*[#2]#*[#3]% and pass {#1}
{\bgroup
- \edef\currentframedtext{#1}
+ \edef\currentframedtext{#1}%
\doifelseassignment{#2}
- {\pack_framed_text_start_continue\empty{#2}}
- {\pack_framed_text_start_continue{#2}{#3}}}
+ {\pack_framed_text_start_indeed\empty{#2}}
+ {\pack_framed_text_start_indeed{#2}{#3}}}
-% todo: sort out first/lastline ht/dp
+% todo: sort out first/lastline ht/dp . . will be a more advanced mechanism some day (soon)
-\def\pack_framed_text_start_continue#1#2%
+\def\pack_framed_text_start_indeed#1#2%
{\setupframedtexts[\currentframedtext][#2]%
\doifsomething{#1}{\setframedtextparameter\c!location{#1}}% does not listen to #3
\setfalse\c_framed_text_location_none
@@ -2673,7 +2773,7 @@
\else
\bgroup
\fi
- \vskip-\strutdp % brrr why is this needed ... needs to be sorted out, see testcase 1
+ % no longer: \vskip-\strutdp % brrr why is this needed ... needs to be sorted out, see testcase 1
\doinhibitblank
\useindentingparameter\framedtextparameter
\useframedtextstyleandcolor\c!style\c!color
@@ -2786,7 +2886,7 @@
\blank[\v!disable]%
\enforced\let\\\endgraf
\useframedtextstyleandcolor\c!style\c!color
- \vskip-\strutdp % brrr why is this needed ... needs to be sorted out, see testcase 1
+ % no longer: \vskip-\strutdp % brrr why is this needed ... needs to be sorted out, see testcase 1
\framedtextparameter\c!inner
\ifx\p_framed_text_strut\v!no
\let\pack_framed_strut\relax
@@ -2823,7 +2923,7 @@
\ifcsname\??regularframedlevel\currentframed\endcsname
% already defined, keeps settings
\else
- \expandafter\newcount\csname\??regularframedlevel\currentframed\endcsname
+ \expandafter\newinteger\csname\??regularframedlevel\currentframed\endcsname
\fi
\to \everypresetframed
@@ -2831,7 +2931,7 @@
\frozen\instance\setuevalue{\currentframed}{\pack_framed_defined_process[\currentframed]}%
\to \everydefineframed
-\newcount\c_temp_framed_crap
+\newinteger\c_temp_framed_crap
% \permanent\tolerant\protected\def\pack_framed_defined_process[#1]#*[#2]% official (not much checking, todo: parent)
% {\bgroup
@@ -2841,7 +2941,7 @@
% \else
% \let\c_pack_framed_temp\c_temp_framed_crap
% \fi
-% \advance\c_pack_framed_temp\plusone
+% \advanceby\c_pack_framed_temp\plusone
% \defcsname\??framed#1>\the\c_pack_framed_temp:\s!parent\endcsname{\??framed#1}% \inheritlocalframed
% \bgroup
% \edef\currentframed{#1>\the\c_pack_framed_temp}%
@@ -2857,7 +2957,7 @@
\else
\scratchcounter\c_temp_framed_crap
\fi
- \advance\scratchcounter\plusone
+ \advanceby\scratchcounter\plusone
\defcsname\??framed#1>\the\scratchcounter:\s!parent\endcsname{\??framed#1}% \inheritlocalframed
\bgroup
\edef\currentframed{#1>\the\scratchcounter}%
@@ -2949,8 +3049,8 @@
\scratchrightoffset \framedcontentparameter\c!rightoffset \relax
\scratchtopoffset \framedcontentparameter\c!topoffset \relax
\scratchbottomoffset\framedcontentparameter\c!bottomoffset\relax
- \advance\hsize\dimexpr-\scratchleftoffset-\scratchrightoffset \relax
- \advance\vsize\dimexpr-\scratchtopoffset -\scratchbottomoffset\relax
+ \advanceby\hsize\dimexpr-\scratchleftoffset-\scratchrightoffset \relax
+ \advanceby\vsize\dimexpr-\scratchtopoffset -\scratchbottomoffset\relax
\kern\scratchleftoffset
\vpack\bgroup
\vskip\scratchtopoffset
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-app.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-app.mkxl
index d75366cca0d..9a800841d92 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-app.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-app.mkxl
@@ -21,9 +21,9 @@
\installframedcommandhandler \??fittingpage {fittingpage} \??fittingpage
-\newdimen\d_page_fitting_width
-\newdimen\d_page_fitting_height
-\newbox \b_page_fitting
+\newdimension\d_page_fitting_width
+\newdimension\d_page_fitting_height
+\newbox \b_page_fitting
\definepapersize
[fittingpage]
@@ -75,6 +75,7 @@
\bgroup
\inheritedfittingpageframed
\bgroup
+ \pack_framed_initialize
\gobblespacetokens}
\protected\def\page_fitting_stop_normal % todo: figure out why a small mp image gets shifted
@@ -95,10 +96,10 @@
{\setbox\b_page_fitting\hpack\bgroup
\scale[\c!scale=\fittingpageparameter\c!scale]{\box\b_page_fitting}%
\egroup}%
- \ifdim\ht\b_page_fitting=\zeropoint
+ \ifzeropt\ht\b_page_fitting
\ht\b_page_fitting\onepoint
\fi
- \ifdim\wd\b_page_fitting=\zeropoint
+ \ifzeropt\wd\b_page_fitting
\wd\b_page_fitting\onepoint
\fi
\d_page_fitting_width \wd\b_page_fitting
@@ -123,7 +124,7 @@
\setupfittingpage
[%\c!scale=1000,
%\c!pagestate=,
- \c!strut=\v!no,
+ \c!strut=\v!none, % was no, but we get a noindent then (with the danger of a lineskip)
\c!align=\v!normal,
\c!offset=\v!overlay,
\c!width=\v!fit,
@@ -193,7 +194,7 @@
{\bgroup
\setupexternalfigure[\v!page:\v!figure][\c!offset=\v!overlay,#2]%
\startTEXpage[\c!offset=\namedexternalfigureparameter{\v!page:\v!figure}\c!offset,\c!align=\v!normal]%
- \externalfigure[#1]\ignorespaces} % so we can put some text below the graphic
+ \externalfigure[#1][\v!page:\v!figure]\ignorespaces} % so we can put some text below the graphic
\permanent\protected\def\stoppagefigure
{\stopTEXpage
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-bck.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-bck.mkxl
index 5683ba2505e..bdea7b2fe50 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-bck.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-bck.mkxl
@@ -19,6 +19,8 @@
\unprotect
+\startcontextdefinitioncode
+
% maybe use \currentframedhash here
%D For special purposes, users can question the \type {*background} mode. This mode
@@ -50,7 +52,7 @@
%D We keep calculations and checks to a minimum and also try to minimize
%D the amount of tracing due to expansion.
-\mutable\let\currentotrbackground\empty
+\mutable\lettonothing\currentotrbackground
%D This is the only spot where we have a low level dependency on the way
%D parent chains are defined but we want the speed.
@@ -227,8 +229,8 @@
%D cached in dedicated boxes. The offsets and depth of the page are used for
%D alignment purposes.
-%newdimen\pageoffset % bleed
-%newdimen\pagedepth % built-in
+%newdimension\pageoffset % bleed
+%newdimension\pagedepth % built-in
%D We need a bit more clever mechanism in order to handle layers well. This means
%D that we cannot calculate both background at the same time since something may
@@ -289,11 +291,11 @@
\box#1}%
\fi}
-\newdimen\pagebackgroundhoffset % THESE WILL BECOME OBSOLETE
-\newdimen\pagebackgroundvoffset
-\newdimen\pagebackgroundoffset % used elsewhere
-\newdimen\pagebackgrounddepth
-\newdimen\pagebackgroundcompensation
+\newdimension\pagebackgroundhoffset % THESE WILL BECOME OBSOLETE
+\newdimension\pagebackgroundvoffset
+\newdimension\pagebackgroundoffset % used elsewhere
+\newdimension\pagebackgrounddepth
+\newdimension\pagebackgroundcompensation
\def\page_backgrounds_set_offsets % used in menus (we can use ifcsname's here)
{\ifconditional\c_page_backgrounds_some \ifconditional\c_page_backgrounds_new
@@ -352,7 +354,7 @@
\def\page_backgrounds_set_box#1% #2%
{\global\setbox#1\vpack
{\dontcomplain
- \page_layouts_swap_margins
+ \page_layouts_swap_margins\v!background
\ifconditional\swapbackgroundmargins
\doifelsemarginswap \donothing
{\enforced\swapcsvalues\v!rightmargin\v!leftmargin
@@ -360,9 +362,6 @@
\fi
\calculatereducedvsizes
\offinterlineskip
- % \ifconditional#2\relax
- % \page_layouts_swap_margins_indeed % hm, this one gets nilled in \page_layouts_swap_margin anyway
- % \fi
\ifdim\topheight>\zeropoint
\kern\dimexpr-\topheight-\topdistance\relax
\page_backgrounds_set_box_row\v!top\topheight
@@ -486,8 +485,8 @@
\expandafter\page_backgrounds_setup_double
\fi[#1][#2][#3]}
-\newdimen\d_page_backgrounds_offset
-\newdimen\d_page_backgrounds_depth
+\newdimension\d_page_backgrounds_offset
+\newdimension\d_page_backgrounds_depth
\appendtoks
\edef\p_page_backgrounds_offset{\namedframedparameter{\??layoutbackgrounds\v!page}\c!offset}%
@@ -664,6 +663,8 @@
\permanent\let\popbackground\relax
+\stopcontextdefinitioncode
+
\protect \endinput
% %D The next series is used in local (for instance floating) backgrounds.
@@ -692,7 +693,7 @@
%
% \def\page_backgrounds_add_local_to_box_indeed#1%
% {\setbox#1\hbox{\localbackgroundframed{\??layoutbackgrounds\v!local}\v!local#1}%
-% \global\advance\localpositionnumber\plusone} % afterwards !
+% \global\advanceby\localpositionnumber\plusone} % afterwards !
%
% \let\page_backgrounds_add_local_to_box\gobbleoneargument
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-blk.lmt b/Master/texmf-dist/tex/context/base/mkxl/page-blk.lmt
new file mode 100644
index 00000000000..4a4441fd10c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-blk.lmt
@@ -0,0 +1,100 @@
+if not modules then modules = { } end modules ['page-blk'] = {
+ version = 1.001,
+ comment = "companion to page-blk.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local context = context
+local implement = interfaces.implement
+local texgetcount = tex.getcount
+
+local c_realpageno = tex.iscount("realpageno")
+
+local blocks = { }
+local block = false
+
+implement {
+ name = "startpageblock",
+ arguments = "string",
+ actions = function(s)
+ local p = texgetcount(c_realpageno)
+ block = { p, p }
+ blocks[s] = block
+ end,
+}
+
+implement {
+ name = "stoppageblock",
+ actions = function()
+ local p = texgetcount(c_realpageno) - 1
+ block[2] = p
+ end,
+}
+
+implement {
+ name = "pageblockrealpage",
+ arguments = "string",
+ actions = function(name)
+ local b = blocks[name]
+ context(b and b[1] or 0)
+ end,
+}
+
+implement {
+ name = "flushpageblocks",
+ arguments = "string",
+ actions = function(list)
+ local count = 0
+ local order = utilities.parsers.settings_to_array(list)
+ local pages = { }
+ for i=1,#order do
+ local name = order[i]
+ local block = blocks[name]
+ if block then
+ for i=block[1],block[2] do
+ count = count + 1
+ pages[count] = i
+ end
+ end
+ end
+ -- if count ~= nofpages then
+ -- end
+ -- inspect(blocks)
+ -- inspect(pages)
+ if lpdf.setpageorder then
+ lpdf.setpageorder(pages) -- ,count)
+ end
+ end
+}
+
+-- maybe intercept nesting with error
+
+local currentpreroll = false
+local prerolled = { }
+
+implement {
+ name = "startprerollpageblock",
+ arguments = "string",
+ actions = function(name)
+ currentrealpage = texgetcount(c_realpageno)
+ currentpreroll = name
+ end
+}
+
+implement {
+ name = "stopprerollpageblock",
+ actions = function()
+ prerolled[currentpreroll] = texgetcount(c_realpageno) - currentrealpage
+ currentpreroll = false
+ end
+}
+
+implement {
+ name = "prerolledpages",
+ arguments = "string",
+ actions = function(name)
+ context(prerolled[name] or 0)
+ end
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-blk.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-blk.mkxl
new file mode 100644
index 00000000000..9553ea643b6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-blk.mkxl
@@ -0,0 +1,192 @@
+%D \module
+%D [ file=page-blk,
+%D version=2022.06.04,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Shuffling Pages,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Page Macros / Shuffling pages}
+
+%D This is a somewhat tricky module and although we have a somewhat abstract
+%D interface we are pretty much bound to \PDF\ output here. When large amounts of
+%D documents are to be generated and|/|or when saving a run makes sense the table
+%D of contents can be typeset at the end and moved to the beginning. However, it
+%D assumes a rather stable and predictable rendering. Don't use this without
+%D checking it really works out well.
+%D
+%D The low level backend code has been around for quite a while but we never had
+%D a real (need and therefore) interface for it. There actually is not that much
+%D code involved anyway. There is no need to backport it to \MKIV.
+
+\registerctxluafile{page-blk}{autosuffix}
+
+% Musical timestamp: end May 2022 xpropaganda (in loop mode to keep the pace).
+
+% pitfalls: we need to keep the toc in order (or generate it 'manually' based on
+% deltas but even then we get the numbers wrong)
+
+\unprotect
+
+\newinteger\c_pages_prerolled
+
+\permanent\protected\def\startpageblock[#1]%
+ {\page
+ \clf_startpageblock{#1}}
+
+\permanent\protected\def\stoppageblock
+ {\page
+ \clf_stoppageblock}
+
+\permanent\protected\def\flushpageblocks[#1]%
+ {\page
+ \clf_flushpageblocks{#1}}
+
+\permanent\def\pageblockrealpage#1%
+ {\clf_pageblockrealpage{#1}}
+
+\tolerant\permanent\protected\def\startprerollpageblock[#1]%
+ {\page
+ \clf_startprerollpageblock{#1}%
+ \global\c_pages_prerolled\realpageno % hack
+ \setuppaper[\c!method=\v!none]}
+
+\permanent\protected\def\stopprerollpageblock
+ {\page
+ \clf_stopprerollpageblock
+ \setcounter[realpage][\c_pages_prerolled]% hack
+ \setuppaper[\c!method=\v!normal]}
+
+\permanent\def\prerolledpages#1%
+ {\clf_prerolledpages{#1}}
+
+\protect \endinput
+
+\usemodule[article-basic]
+
+\setupinteraction[state=start]
+
+% \enabletrackers[*reference*]
+% \enabletrackers[*destination*]
+
+\useMPlibrary[dum]
+
+\starttext
+
+\def\AlphaOffset{0}
+\def\BetaOffset {0}
+
+% the flexible ones (can come from files)
+
+\startbuffer[alpha]
+ \startchapter[title=Alpha]
+ \dorecurse{20}{\samplefile{tufte}\par}
+ \stopchapter
+\stopbuffer
+
+\startbuffer[beta]
+ \startchapter[title=Beta]
+ \dorecurse{6}{\samplefile{tufte}\par}
+ \stopchapter
+\stopbuffer
+
+% the fixed ones
+
+\startbuffer[gamma]
+ \startchapter[title=Gamma]
+ \externalfigure[whatever-dummy-3][width=\textwidth]
+ \stopchapter
+\stopbuffer
+
+\startbuffer[rest]
+ \startchapter[title=Rest A]
+ \samplefile{tufte}
+ \stopchapter
+ \startchapter[title=Rest B]
+ \samplefile{tufte}
+ \blank
+ Alpha : \goto{page \AlphaPages}[realpage(\AlphaPages)]\par
+ Beta : \goto{page \BetaPages }[realpage(\BetaPages )]
+ \stopchapter
+\stopbuffer
+
+\startbuffer[contents]
+ \starttitle[title=Contents]
+ \placelist[chapter][criterium=text]
+ \stoptitle
+\stopbuffer
+
+% Preroll.
+
+\startprerollpageblock[alpha]
+ \start
+ \setuphead[chapter][incrementnumber=no]
+ \getbuffer[alpha]
+ \stop
+\stopprerollpageblock
+
+% \writestatus{!!!!!}{nofalphapages: \prerolledpages{alpha}}
+
+\startprerollpageblock[beta]
+ \start
+ \setuphead[chapter][incrementnumber=no]
+ \getbuffer[beta]
+ \stop
+\stopprerollpageblock
+
+% \writestatus{!!!!!}{nofbetapages: \prerolledpages{beta}}
+
+% Some titling.
+
+\startpageblock[titlepage]
+ \startstandardmakeup
+ \externalfigure[whatever-dummy-1][height=\textheight,width=\textwidth]
+ \stopstandardmakeup
+\stoppageblock
+
+\startpageblock[boguspage]
+ \startstandardmakeup
+ \externalfigure[whatever-dummy-2][height=\textheight,width=\textwidth]
+ \stopstandardmakeup
+\stoppageblock
+
+% The contents will end up here.
+
+% page 1
+
+% The main document.
+
+\setuppagenumber[number=2]
+
+\startpageblock[chapters]
+ % we have a predictable rest:
+
+ \edef\AlphaPages{\the\numexpr 4 \relax}
+ \edef\BetaPages {\the\numexpr 4 + \prerolledpages{alpha} \relax}
+
+ \getbuffer[rest]
+ \getbuffer[alpha]
+ \getbuffer[beta]
+ \getbuffer[gamma]
+\stoppageblock
+
+% This one will move:
+
+\setuppagenumber[number=1]
+
+\startpageblock[contents]
+ \getbuffer[contents]
+\stoppageblock
+
+\flushpageblocks
+ [titlepage,
+ boguspage,
+ contents,
+ chapters]
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-box.mklx b/Master/texmf-dist/tex/context/base/mkxl/page-box.mklx
index c8ceeb8282e..3d78e73d80f 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-box.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-box.mklx
@@ -59,15 +59,6 @@
\v_page_target_bottom_fill
\v_page_target_bottom}}
-\def\page_boxes_apply_offset % #box
- {\unless\ifzeropt\topoffset
- \expandafter\page_boxes_apply_offset_indeed
- \orelse\ifzeropt\backoffset
- \expandafter\gobbleoneargument
- \else
- \expandafter\page_boxes_apply_offset_indeed
- \fi}
-
\def\page_boxes_apply_offset_indeed#box%
{\scratchwidth \wd#box%
\scratchheight\ht#box%
@@ -75,12 +66,37 @@
\setbox#box\vpack
{\offinterlineskip
\vskip\topoffset
- \hskip\doifbothsides\backoffset\backoffset{-\backoffset}%
+ %\hskip\doifbothsides\backoffset\backoffset{-\backoffset}%
+ \hskip\doifbothsides++-\backoffset
\box#box}%
\wd#box\scratchwidth
\ht#box\scratchheight
\dp#box\scratchdepth}
+% a variant (no gain so we stay mkiv compatible):
+%
+% \def\page_boxes_apply_offset_indeed#box% this needs testing in real situations
+% {\boxxoffset#box\dimexpr\boxxoffset#box\doifbothsides++-\backoffset\relax
+% \boxyoffset#box\dimexpr\boxyoffset#box-\topoffset\relax}
+
+% \def\page_boxes_apply_offset % #box
+% {\unless\ifdim\topoffset=\zeropoint
+% \expandafter\page_boxes_apply_offset_indeed
+% \orunless\ifdim\backoffset=\zeropoint
+% \expandafter\page_boxes_apply_offset_indeed
+% \else
+% \expandafter\gobbleoneargument
+% \fi}
+
+\def\page_boxes_apply_offset % #box
+ {\unless\ifzeropt\topoffset
+ \expandafter\page_boxes_apply_offset_indeed
+ \orunless\ifzeropt\backoffset
+ \expandafter\page_boxes_apply_offset_indeed
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
\def\page_boxes_apply_replicate
{\ifnum\layoutparameter\c!nx>\plusone
\expandafter\page_boxes_apply_replicate_indeed
@@ -93,9 +109,9 @@
\def\page_boxes_apply_replicate_indeed#box%
{\setbox#box\vpack
{\offinterlineskip
- \dorecurse{\layoutparameter\c!ny}
+ \dorecurse{\layoutparameter\c!ny}%
{\hpack{\dorecurse{\layoutparameter\c!nx}{\copy#box\kern\layoutparameter\c!dx}\unskip}%
- \vskip\layoutparameter\c!dy}
+ \vskip\layoutparameter\c!dy}%
\unskip}}
\def\page_boxes_apply_orientate_paper#box%
@@ -189,8 +205,8 @@
\scratchheight\ht#box%
\scratchdepth \dp#box%
\setbox#box\hpack
- {\advance\scratchheight\dimexpr\scratchdepth+2\scratchoffset\relax
- \advance\scratchwidth \scratchoffset
+ {\advanceby\scratchheight\dimexpr\scratchdepth+2\scratchoffset\relax
+ \advanceby\scratchwidth \scratchoffset
\ifconditional#right\relax
\scratchdimen-\scratchoffset
\kern\scratchdimen
@@ -221,10 +237,10 @@
\scratchheight\ht#box%
\scratchdepth \dp#box%
\setbox#box\hpack
- {\advance\scratchheight\dimexpr\scratchdepth+2\scratchoffset\relax
- \advance\scratchwidth \scratchoffset
+ {\advanceby\scratchheight\dimexpr\scratchdepth+2\scratchoffset\relax
+ \advanceby\scratchwidth \scratchoffset
\doifbothsides
- {\advance\scratchwidth\scratchoffset
+ {\advanceby\scratchwidth\scratchoffset
\scratchdimen-\scratchoffset
\kern\scratchdimen}%
{\scratchdimen\zeropoint}
@@ -243,14 +259,34 @@
% nearly always some displacement so no speedup test needed
+% \def\page_boxes_apply_offsets#1%
+% {\setbox#1\vpack to \paperheight
+% {\hsize\paperwidth
+% \vkern\topspace
+% \hkern\doifbothsides\backspace\backspace{\dimexpr\paperwidth-\backspace-\makeupwidth\relax}%
+% \box#1}%
+% \dp#1\zeropoint}
+
\def\page_boxes_apply_offsets#1%
{\setbox#1\vpack to \paperheight
{\hsize\paperwidth
\vkern\topspace
\hkern\doifbothsides\backspace\backspace{\dimexpr\paperwidth-\backspace-\makeupwidth\relax}%
+% \hkern\doifbothsides\backspace\backspace\cutspace
+% \page_layouts_swap_margins\v!page
+% \hkern\backspace
\box#1}%
\dp#1\zeropoint}
+% a variant (no gain so we stay mkiv compatible):
+%
+% \def\page_boxes_apply_offsets#1%
+% {\scratchhoffset\doifbothsides\backspace\backspace{\dimexpr\paperwidth-\backspace-\makeupwidth\relax}%
+% \boxxoffset#1\dimexpr\boxxoffset#1+\scratchhoffset\relax
+% \boxyoffset#1\dimexpr\boxyoffset#1-\topspace\relax
+% \wd#1\dimexpr\paperwidth+\scratchhoffset\relax
+% \ht#1\dimexpr\paperheight+\topspace\relax}
+
%D This is rather specialized:
\newconditional\c_page_areas_enabled
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-brk.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-brk.mkxl
index aca1d097d12..23ffc872d38 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-brk.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-brk.mkxl
@@ -40,13 +40,13 @@
% \definepagebreak[forsure][yes,+4]
\newconditional\c_page_breaks_enabled \settrue\c_page_breaks_enabled
-\newcount \c_page_breaks_prevpage
+\newinteger \c_page_breaks_prevpage
\newtoks\everybeforepagebreak
\newtoks\everyafterpagebreak
-\let\page_breaks_current_option \empty
-\let\page_breaks_current_options\empty
+\lettonothing\page_breaks_current_option
+\lettonothing\page_breaks_current_options
\installcorenamespace{pagebreakmethod}
\installcorenamespace{pagebreaks}
@@ -90,6 +90,7 @@
% disable reset after shipout
\global\pageornamentstate\plustwo
\fi
+ % maybe \ifcstok{#1}\emptytoks
\ifparameter#1\or
\page_breaks_handle{#1}%
\else % so, no pagebreak when \pagebreak[] ! ! !
@@ -287,8 +288,8 @@
\newtoks\everyaftercolumnbreak
\newtoks\everysynchronizecolumn
-\let\page_breaks_columns_current_option \empty
-\let\page_breaks_columns_current_options\empty
+\lettonothing\page_breaks_columns_current_option
+\lettonothing\page_breaks_columns_current_options
\def\page_breaks_columns_handle#1%
{\edef\page_breaks_columns_current_options{#1}%
@@ -341,8 +342,8 @@
%D Test page breaks.
-% \newdimen \d_page_tests_test
-% \newconstant\c_page_tests_mode
+% \newdimension\d_page_tests_test
+% \newconstant \c_page_tests_mode
\newconstant\testpagemethod % old
\newconstant\testpagetrigger % old
@@ -369,7 +370,7 @@
\relax}
\permanent\tolerant\protected\def\checkpage[#1]#*[#2]%
- {\relax % needed before \if
+ {\relax % look ahead prevention
\endgraf
\triggerpagebuilder
\relax
@@ -465,14 +466,17 @@
\definepagechecker[\s!unknown:2][\s!unknown:0][\c!method=2]
\definepagechecker[\s!unknown:3][\s!unknown:0][\c!method=3]
-\permanent\tolerant\protected\def\testpage [#1]#*[#2]{\normalexpanded{\checkpage[\s!unknown:1][\c!lines=#1,\c!offset=\ifparameter#2\or#2\else\zeropoint\fi]}} %
-\permanent\tolerant\protected\def\testpageonly[#1]#*[#2]{\normalexpanded{\checkpage[\s!unknown:2][\c!lines=#1,\c!offset=\ifparameter#2\or#2\else\zeropoint\fi]}} % no penalties added to the mvl
-\permanent\tolerant\protected\def\testpagesync[#1]#*[#2]{\normalexpanded{\checkpage[\s!unknown:3][\c!lines=#1,\c!offset=\ifparameter#2\or#2\else\zeropoint\fi]}} % force sync
+% the \relax prevents premature expansion in case of lookahead
+
+\permanent\tolerant\protected\def\testpage [#1]#*[#2]{\relax\normalexpanded{\checkpage[\s!unknown:1][\c!lines=#1,\c!offset=\ifparameter#2\or#2\else\zeropoint\fi]}} %
+\permanent\tolerant\protected\def\testpageonly[#1]#*[#2]{\relax\normalexpanded{\checkpage[\s!unknown:2][\c!lines=#1,\c!offset=\ifparameter#2\or#2\else\zeropoint\fi]}} % no penalties added to the mvl
+\permanent\tolerant\protected\def\testpagesync[#1]#*[#2]{\relax\normalexpanded{\checkpage[\s!unknown:3][\c!lines=#1,\c!offset=\ifparameter#2\or#2\else\zeropoint\fi]}} % force sync
%D Test column breaks.
\permanent\tolerant\protected\def\testcolumn[#1]#*[#2]%
- {\ifdefined\page_otr_command_test_column
+ {\relax % look ahead prevention
+ \ifdefined\page_otr_command_test_column
\ifparameter#2\or
\page_otr_command_test_column[#1][#2]%
\else
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-col.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-col.mkxl
index 43330c9a7c8..c2598afc172 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-col.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-col.mkxl
@@ -24,17 +24,15 @@
%D We reserve a counter for the number of columns as well as the current
%D column. Both are not to be changed by users!
-%newcount\nofcolumns \nofcolumns\plusone % already in core-ini.mkiv
-\newcount\mofcolumns \mofcolumns\plusone
-
-\newconstant\columndirection % 0:lr 1:rl
+%newinteger \nofcolumns \nofcolumns\plusone % already in core-ini.mkiv
+\newinteger \mofcolumns \mofcolumns\plusone
+\newdimension \columnwidth
+\newdimension \columndistance
+\newconstant \columndirection % 0:lr 1:rl
\setnewconstant\maxnofcolumns 50
\setnewconstant\allocatednofcolumns 0
-\newdimen\columnwidth
-\newdimen\columndistance
-
%D During initialization the temporary boxes are allocated. This enables us to
%D use as much columns as we want, without exhausting the pool of boxes too
%D fast. We could have packed them in one box, but we've got enough boxes.
@@ -125,7 +123,7 @@
\fi}
\protected\def\page_columns_all_next
- {\advance\mofcolumns\plusone
+ {\advanceby\mofcolumns\plusone
\edef\currentcolumn{\the\mofcolumns}%
\page_columns_action\relax
\ifnum\mofcolumns<\nofcolumns
@@ -141,7 +139,7 @@
\fi}
\protected\def\page_columns_rev_prev
- {\advance\mofcolumns\minusone
+ {\advanceby\mofcolumns\minusone
\edef\currentcolumn{\the\mofcolumns}%
\page_columns_action\relax
\ifnum\mofcolumns>\plusone
@@ -157,7 +155,7 @@
\protected\def\page_columns_mid_next
{\edef\currentcolumn{\the\mofcolumns}%
\page_columns_action\relax
- \advance\mofcolumns\plusone
+ \advanceby\mofcolumns\plusone
\ifnum\mofcolumns<\nofcolumns
\expandafter\page_columns_mid_next
\fi}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-com.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-com.mkxl
index a7d8aaba71a..ae408f384ad 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-com.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-com.mkxl
@@ -34,12 +34,12 @@
\installcorenamespace{pagecommentlocations}
\installcorenamespace{pagecommentstates}
-\newdimen\d_page_comments_offset
-\newdimen\d_page_comments_page_width
-\newdimen\d_page_comments_page_height
-\newdimen\d_page_comments_width
-\newdimen\d_page_comments_height
-\newdimen\d_page_comments_distance
+\newdimension\d_page_comments_offset
+\newdimension\d_page_comments_page_width
+\newdimension\d_page_comments_page_height
+\newdimension\d_page_comments_width
+\newdimension\d_page_comments_height
+\newdimension\d_page_comments_distance
\newconditional\c_page_comment_enabled
@@ -66,7 +66,7 @@
% \fi
-\setvalue{\??pagecommentstates\v!start}%
+\defcsname\??pagecommentstates\v!start\endcsname
{\d_page_comments_offset \directpagecommentparameter\c!offset \relax
\d_page_comments_distance\directpagecommentparameter\c!distance\relax
\d_page_comments_width \directpagecommentparameter\c!width \relax
@@ -76,41 +76,41 @@
\setuppapersize[\papersize][\v!pagecomment]%
\setupbackgrounds[\v!paper][\c!background=\v!pagecomment]} % maybe append if already set
-\setvalue{\??pagecommentstates\v!stop}%
+\defcsname\??pagecommentstates\v!stop\endcsname
{\setupbackgrounds[\v!paper][\c!background=]}
-\setvalue{\??pagecommentstates\v!none}%
+\defcsname\??pagecommentstates\v!none\endcsname
{}
-\setvalue{\??pagecommentlocations\v!bottom}%
+\defcsname\??pagecommentlocations\v!bottom\endcsname
{\setuplayout[\c!location=]%
\setuppapersize[\c!top=\vskip\d_page_comments_offset,\c!bottom=\vss,\c!left=\hskip\d_page_comments_offset,\c!right=]%
\d_page_comments_page_height\dimexpr\paperheight+2\d_page_comments_offset+\d_page_comments_distance+\d_page_comments_height\relax
\d_page_comments_page_width \dimexpr\paperwidth +2\d_page_comments_offset\relax
\defineoverlay[\v!pagecomment][\page_comments_top_bottom]}
-\setvalue{\??pagecommentlocations\v!top}%
+\defcsname\??pagecommentlocations\v!top\endcsname
{\setuplayout[\c!location=]%
\setuppapersize[\c!top=\vss,\c!bottom=\vskip\d_page_comments_offset,\c!left=\hskip\d_page_comments_offset,\c!right=]%
\d_page_comments_page_height\dimexpr\paperheight+2\d_page_comments_offset+\d_page_comments_distance+\d_page_comments_height\relax
\d_page_comments_page_width \dimexpr\paperwidth +2\d_page_comments_offset\relax
\defineoverlay[\v!pagecomment][\page_comments_top_bottom]}
-\setvalue{\??pagecommentlocations\v!left}%
+\defcsname\??pagecommentlocations\v!left\endcsname
{\setuplayout[\c!location=]%
\setuppapersize[\c!top=\vskip\d_page_comments_offset,\c!bottom=,\c!left=\hss,\c!right=\hskip\d_page_comments_offset]%
\d_page_comments_page_height\dimexpr\paperheight+2\d_page_comments_offset\relax
\d_page_comments_page_width \dimexpr\paperwidth +2\d_page_comments_offset+\d_page_comments_distance+\d_page_comments_width\relax
\defineoverlay[\v!pagecomment][\page_comments_left_right]}
-\setvalue{\??pagecommentlocations\v!right}%
+\defcsname\??pagecommentlocations\v!right\endcsname
{\setuplayout[\c!location=]%
\setuppapersize[\c!top=\vskip\d_page_comments_offset,\c!bottom=,\c!left=\hskip\d_page_comments_offset,\c!right =\hss]%
\d_page_comments_page_height\dimexpr\paperheight+2\d_page_comments_offset\relax
\d_page_comments_page_width \dimexpr\paperwidth +2\d_page_comments_offset+\d_page_comments_distance+\d_page_comments_width\relax
\defineoverlay[\v!pagecomment][\page_comments_left_right]}
-\setvalue{\??pagecommentlocations\v!none}%
+\defcsname\??pagecommentlocations\v!none\endcsname
{}% \setuppapersize[\c!bottom=,\c!top=,\c!left=,\c!right=]}
\protected\def\page_comments_top_bottom
@@ -163,7 +163,7 @@
\hskip\dimexpr\paperwidth+\d_page_comments_distance+\d_page_comments_offset\relax
\fi}}
-\permanent\protected\setvalue{\e!start\v!pagecomment}%
+\permanent\protected\defcsname\e!start\v!pagecomment\endcsname
{\global\settrue\c_page_comment_enabled
\grabbufferdatadirect\v!pagecomment{\e!start\v!pagecomment}{\e!stop\v!pagecomment}}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-cst.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-cst.mkxl
index a6f63a56219..6e5ed21686a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-cst.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-cst.mkxl
@@ -64,33 +64,33 @@
\c!maxwidth=\makeupwidth]
\appendtoks % could become an option
- \frozen\instance\setuevalue{\e!start\currentpagegrid}{\startpagegrid[\currentpagegrid]}%
- \frozen\instance\setuevalue{\e!stop \currentpagegrid}{\stoppagegrid}%
+ \frozen\instance\protected\edefcsname\e!start\currentpagegrid\endcsname{\startpagegrid[\currentpagegrid]}%
+ \frozen\instance\protected\edefcsname\e!stop \currentpagegrid\endcsname{\stoppagegrid}%
\clf_definecolumnset {
name {\currentpagegrid}%
}%
\to \everydefinepagegrid
-\newdimen\d_page_grd_column_width
-\newdimen\d_page_grd_max_height
-\newdimen\d_page_grd_max_width
-\newdimen\d_page_grd_distance
+\newdimension\d_page_grd_column_width
+\newdimension\d_page_grd_max_height
+\newdimension\d_page_grd_max_width
+\newdimension\d_page_grd_distance
-\newdimen\d_page_grd_reserved_height
-\newdimen\d_page_grd_reserved_width
-\newcount\c_page_grd_reserved_state
+\newdimension\d_page_grd_reserved_height
+\newdimension\d_page_grd_reserved_width
+\newinteger \c_page_grd_reserved_state
-\newdimen\d_page_grd_gap_height
+\newdimension\d_page_grd_gap_height
-\newcount\c_page_grd_n_of_left
-\newcount\c_page_grd_n_of_right
-\newcount\c_page_grd_n_of_rows
-\newcount\c_page_grd_first_column
-\newcount\c_page_grd_last_column
+\newinteger \c_page_grd_n_of_left
+\newinteger \c_page_grd_n_of_right
+\newinteger \c_page_grd_n_of_rows
+\newinteger \c_page_grd_first_column
+\newinteger \c_page_grd_last_column
-\newbox \b_page_grd_collected
-\newbox \b_page_grd_column_rest
-\newbox \b_page_grd_column
+\newbox \b_page_grd_collected
+\newbox \b_page_grd_column_rest
+\newbox \b_page_grd_column
%D All the parameters are mandate!
@@ -128,10 +128,10 @@
{\bgroup
\enforced\let\startpagegrid\page_grd_start_dummy
\ifarguments
- \let\currentpagegrid\empty
+ \lettonothing\currentpagegrid
\or
\ifhastok={#1}%
- \let\currentpagegrid\empty
+ \lettonothing\currentpagegrid
\setupcurrentpagegrid[#1]%
\else
\def\currentpagegrid{#1}%
@@ -148,6 +148,8 @@
\d_page_grd_max_height\pagegridparameter\c!maxheight\relax
\d_page_grd_distance \pagegridparameter\c!distance\relax
%
+ \automigrationmode\zerocount % for now
+ %
\ifcase\c_page_grd_n_of_rows
\getrawnoflines{\dimexpr\d_page_grd_max_height-\strutheight+\topskip\relax}%
\c_page_grd_n_of_rows\noflines
@@ -253,7 +255,6 @@
\fi
\endgroup}
-
\protected\def\page_grd_command_set_vsize
{\clf_setvsizecolumnset{\currentpagegrid}%
\ifdim\d_page_grd_gap_height<\lineheight
@@ -302,7 +303,7 @@
\anch_mark_column_box\b_page_grd_column\privatescratchcounter
\page_marks_synchronize_column\c_page_grd_first_column\c_page_grd_last_column\privatescratchcounter\b_page_grd_column
\ifnum\privatescratchcounter>\c_page_grd_n_of_left
- \advance\privatescratchcounter-\c_page_grd_n_of_left
+ \advanceby\privatescratchcounter-\c_page_grd_n_of_left
\page_lines_add_numbers_to_box\b_page_grd_column\privatescratchcounter\c_page_grd_n_of_right\plustwo
\else
\page_lines_add_numbers_to_box\b_page_grd_column\privatescratchcounter\c_page_grd_n_of_left\plustwo
@@ -631,7 +632,7 @@
\c!default=\v!here,
\c!alternative=\v!a]
-\newdimen\d_page_grd_span_width
+\newdimension\d_page_grd_span_width
\let\page_grd_span_stop\relax
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-ffl.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-ffl.mkxl
index 350c4500073..02c56e2e9e5 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-ffl.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-ffl.mkxl
@@ -51,13 +51,93 @@
%D \startcontent \dorecurse{10}{\samplefile{ward} } \stopcontent
%D \stopfacingfloat
%D
+%D \flushfacingfloats[whatever]
+%D
%D \dorecurse{10}{\samplefile{sapolsky} }
+%D
+%D \flushpendingtopcontent
+%D
%D \stoptyping
%D
%D The idea is to flush related floats more or less in parallel.
\unprotect
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \starttext
+%
+% \registertopcontent[3]\vbox{\framed[align=normal,width=\textwidth]{\samplefile{ward}}}
+% \registertopcontent[3]\vbox{\framed[align=normal,width=\textwidth]{\samplefile{davis}}}
+% \registertopcontent[5]\vbox{\framed[align=normal,width=\textwidth]{\samplefile{ward}}}
+%
+% \dorecurse{20}{\samplefile{tufte}\par}
+%
+% \stoptext
+
+\newdimension\d_page_adapts_preroll
+\newinteger \c_page_adapts_pushed
+
+% this assumes a constant textheight and no adaptations otherwise so we
+% should block these for already set pages in adaptheight .. or we can
+% make these independent (so not use adaptheight)
+
+\def\page_adapts_layout_preroll#1%
+ {\begingroup
+ \global\d_page_adapts_preroll\zeropoint
+ \def\page_adapts_layout_indeed##1%
+ {\setupcurrentadaptlayout[\c!top=\zeropoint,##1]%
+ \global\d_page_adapts_preroll\dimexpr\adaptlayoutparameter\c!top\relax}
+ \begincsname\??pageadaptations\number#1\endcsname
+ \endgroup}
+
+\permanent\protected\def\registertopcontent[#1]%
+ {\begingroup
+ \dowithnextbox
+ {\page_adapts_layout_preroll{#1}%
+ \scratchdimen\dimexpr
+ \htdp\nextbox+\d_page_adapts_preroll
+ \ifzeropt\d_page_adapts_preroll
+ +\lineheight
+ \fi
+ \relax
+ \putboxincache{\v!page:\number#1}{+}\nextbox
+ \normalexpanded{\adaptlayout[\number#1][\c!top=\the\scratchdimen]}%
+ \global\advanceby\c_page_adapts_pushed\plusone
+ \endgroup}}
+
+\def\page_otr_flush_top_content
+ {\scratchcounter\getboxcountfromcache{\v!page:\number\realpageno}\relax
+ \ifcase\scratchcounter\else
+ \dorecurse\scratchcounter
+ {\directboxfromcache{\v!page:\number\realpageno}\recurselevel
+ \nointerlineskip
+ \par}%
+ \disposeboxesincache{\v!page:\number\realpageno}%
+ \global\advanceby\c_page_adapts_pushed\minusone
+ \nointerlineskip
+ \fi}
+
+\permanent\protected\def\flushpendingtopcontent
+ {\ifcase\c_page_adapts_pushed\else
+ \null
+ \page
+ \expandafter\flushpendingtopcontent
+ \fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \let\page_check_weird_page\relax
+
+\def\page_check_weird_page_indeed % for now only when facing floats
+ {\ifdim\vsize>\zeropoint\else
+ %\showmessage\m!layouts9{}%
+ \writestatus\m!layouts{forcing zero height page}%
+ \emptyhbox\page
+ \fi}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
% width:
%
% -- fit : do nothing
@@ -71,64 +151,104 @@
\setupfacingfloat
[\c!spaceinbetween=\v!big,
\c!inbetween={\blank[\v!big]},
- \c!width=\v!fit,
+ %\c!page=\v!left, % not used
%\c!style,
%\c!color,
- \c!page=\v!left]
+ \c!width=\v!fit]
+
+\newinteger\c_defining_facing_float
\appendtoks
- \ifempty\currentfacingfloatparent
- \normalexpanded{\definefacingfloat[\currentfacingfloat:\v!left ][\currentfacingfloat]}%
- \normalexpanded{\definefacingfloat[\currentfacingfloat:\v!right][\currentfacingfloat]}%
+ \advanceby\c_defining_facing_float\plusone
+ \ifcase\c_defining_facing_float\or
+ \expanded{
+ \definefacingfloat[\currentfacingfloat:\v!left ][\currentfacingfloat]%
+ \definefacingfloat[\currentfacingfloat:\v!right][\currentfacingfloat]%
+ }%
\fi
+ \advanceby\c_defining_facing_float\minusone
\to \everydefinefacingfloat
-\newcount\c_strc_floats_facing_saved
-\newcount\c_strc_floats_facing_flushed
-
-\newbox\b_strc_floats_facing_l
-\newbox\b_strc_floats_facing_r
+\newinteger\c_strc_floats_facing_saved
+\newinteger\c_strc_floats_facing_flushed
+\newbox \b_strc_floats_facing_l
+\newbox \b_strc_floats_facing_r
\let\m_strc_floats_state\relax
-\permanent\protected\def\strc_floats_facing_flush
- {\ifnum\c_strc_floats_facing_flushed<\c_strc_floats_facing_saved
- \ifodd\c_strc_floats_facing_flushed
- \ifodd\realpageno
- \strc_floats_facing_flush_indeed
- \doifelsependingpagecontent\relax{\null\page}%
- \fi
- \else
- \ifodd\realpageno\else
- \strc_floats_facing_flush_indeed
- \doifelsependingpagecontent\relax{\null\page}%
- \fi
- \fi
+\installcorenamespace {facingfloatflusher}
+
+\def\strc_floats_facing_flush_indeed_step#1#2#3%
+ {\ifnum#2<#3\relax
+ \advanceby#2\plusone
+ \donetrue
+ \writestatus
+ {facing}
+ {page: \the\scratchcounterone, location: #1, blob: \the#2, max: \the#3}%
+ \registertopcontent
+ [\scratchcounterone]
+ \hbox{\directboxfromcache{\currentfacingfloat:#1}{\the#2}}%
\fi}
-\permanent\protected\def\strc_floats_facing_flush_indeed
- {\global\advance\c_strc_floats_facing_flushed\plusone
- \floatingpenalty\zerocount
- \insert\namedinsertionnumber\s!topfloat\bgroup
- \forgetall
- \ifconditional\c_page_one_top_of_insert
- \ifconditional\c_page_one_correct_top_insert
- \topskipcorrection % [xx] new: see icare topbleed
- \kern-\lineskip
- \par
- \prevdepth\maxdimen
+\def\strc_floats_facing_flush_indeed#1%
+ {\begingroup
+ \edef\currentfacingfloat{#1}%
+ \glet\page_check_weird_page\page_check_weird_page_indeed % for now only when facing floats
+ \scratchcounterone \realpageno
+ \scratchcounterthree\getboxcountfromcache{\currentfacingfloat:\v!left }\relax
+ \scratchcounterfour \getboxcountfromcache{\currentfacingfloat:\v!right}\relax
+ \scratchcounterfive \zerocount
+ \scratchcountersix \zerocount
+ % find first empty spread i.e. odd (left) and even (right) empty
+ \ifdim\pagetotal>\zeropoint
+ \advanceby\scratchcounterone\plusone
+ \fi
+ \ifodd\scratchcounterone
+ \advanceby\scratchcounterone\plusone
+ \fi
+ \writestatus
+ {facing}
+ {page: \the\scratchcounterone, start checking}%
+ \doloop{%
+ \page_adapts_layout_preroll\scratchcounterone
+ \ifzeropt\d_page_adapts_preroll
+ % left empty
+ \advanceby\scratchcounterone\plusone
+ \page_adapts_layout_preroll\scratchcounterone
+ \ifzeropt\d_page_adapts_preroll
+ % right empty
+ \advanceby\scratchcounterone\minusone
+ \exitloop
+ \fi
+ \else
+ \advanceby\scratchcounterone\plustwo
\fi
+ }
+ \writestatus
+ {facing}
+ {page: \the\scratchcounterone, start flushing}%
+ \doloop{%
+ \ifodd\scratchcounterone
+ \strc_floats_facing_flush_indeed_step\v!right\scratchcountersix \scratchcounterfour
+ \else
+ \strc_floats_facing_flush_indeed_step\v!left \scratchcounterfive\scratchcounterthree
\fi
- \directboxfromcache{\currentfacingfloat}{\number\c_strc_floats_facing_flushed}%
- \vkern\s_page_one_between_top_insert
- \egroup
- \ifnum\c_strc_floats_facing_saved=\c_strc_floats_facing_flushed
- \global\c_strc_floats_facing_saved \zerocount
- \global\c_strc_floats_facing_flushed\zerocount
- \resetboxesincache{\currentfacingfloat}%
- \fi}
+ \ifnum\scratchcountersix<\scratchcounterfour
+ % more
+ \orelse\ifnum\scratchcounterfive<\scratchcounterthree
+ % more
+ \else
+ \exitloop
+ \fi
+ \advanceby\scratchcounterone\plusone
+ }
+ \disposeboxesincache{\currentfacingfloat:\v!right}%
+ \disposeboxesincache{\currentfacingfloat:\v!left}%
+ \page_check_weird_page_indeed
+ \endgroup}
-\aliased\let\flushfacingfloats\strc_floats_facing_flush
+\permanent\protected\tolerant\def\flushfacingfloats[#1]%
+ {\processcommalist[#1]\strc_floats_facing_flush_indeed}
\protected\def\strc_floats_facing_setup
{\edef\currentfacingfloat{\currentfacingfloat:\m_strc_floats_state}%
@@ -178,18 +298,12 @@
\permanent\protected\def\startfacingfloat[#1]%
{\begingroup
- % todo: \usepageparameter
-% \edef\p_page{\facingfloatparameter\c!page}%
-% \ifempty\p_page\else
-% \page[\p_page]%
-% \fi
- %
\edef\currentfacingfloat{#1}%
\edef\p_width{\facingfloatparameter\c!width}%
\letfacingfloatparameter\c!width\v!fit
\ifx\p_width\v!frame
\setbox\scratchbox\hpack{\inheritedfacingfloatframed{}}%
- \advance\hsize-\wd\scratchbox
+ \advanceby\hsize-\wd\scratchbox
\orelse\ifx\p_width\v!fit
% whatever
\else
@@ -220,6 +334,7 @@
\doloop{%
\strc_floats_facing_flush_wrap\b_strc_floats_facing_l\v!left
\strc_floats_facing_flush_wrap\b_strc_floats_facing_r\v!right
+ \global\advanceby\c_strc_floats_facing_saved\plusone
\ifvoid\b_strc_floats_facing_l\relax\ifvoid\b_strc_floats_facing_r\relax
\exitloop
\fi\fi}}
@@ -229,18 +344,26 @@
% todo
\else
\begingroup
- \setbox\scratchbox\vsplit#1 upto \textheight
+ \setbox\scratchboxone\hpack\bgroup
+ \edef\currentfacingfloat{\currentfacingfloat:#2}%
+ \inheritedfacingfloatframed{\strut}%
+ \egroup
+ \scratchdimenone\dimexpr\textheight-\htdp\scratchboxone+\lineheight\relax
+ \dontcomplain
+ \splittopskip\zeropoint
+ \setbox\scratchbox\vsplit#1 upto \scratchdimenone
+ \setsplitlisthtdp\scratchbox\strutht\strutdp
\setbox\scratchbox\hpack\bgroup
\edef\currentfacingfloat{\currentfacingfloat:#2}%
\inheritedfacingfloatframed{\box\scratchbox}%
\egroup
- \ifdim\ht\scratchbox<\dimexpr\textheight-\scratchdimen\relax
- \setbox\scratchbox\vbox{\box\scratchbox\directvspacing\p_spaceinbetween}%
- \else
- \setbox\scratchbox\vbox to \textheight{\box\scratchbox\vss}%
- \fi
- \global\advance\c_strc_floats_facing_saved\plusone
- \putboxincache{\currentfacingfloat}{\number\c_strc_floats_facing_saved}\scratchbox
+ \setbox\scratchbox\vbox
+ \ifdim\ht\scratchbox<\dimexpr\textheight-\scratchdimen\relax
+ {\box\scratchbox\directvspacing\p_spaceinbetween}%
+ \else
+ to \textheight{\box\scratchbox\vss}%
+ \fi
+ \putboxincache{\currentfacingfloat:#2}{+}\scratchbox
\endgroup
\fi}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-flt.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-flt.mkxl
index a97cc7f0d2e..8808ef00b6c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-flt.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-flt.mkxl
@@ -24,12 +24,12 @@
\defineinsertion[\s!bottomfloat]
\defineinsertion[\s!pagefloat]
-\newdimen \d_page_floats_inserted_bottom
-\newdimen \d_page_floats_inserted_top
-\newdimen \d_page_floats_inserted_page
-\newcount \c_page_floats_n_of_top \c_page_floats_n_of_top \plustwo
-\newcount \c_page_floats_n_of_bottom \c_page_floats_n_of_bottom\zerocount
-\newcount \c_page_floats_n_of_page \c_page_floats_n_of_page \plustwo
+\newdimension\d_page_floats_inserted_bottom
+\newdimension\d_page_floats_inserted_top
+\newdimension\d_page_floats_inserted_page
+\newinteger \c_page_floats_n_of_top \c_page_floats_n_of_top \plustwo
+\newinteger \c_page_floats_n_of_bottom \c_page_floats_n_of_bottom\zerocount
+\newinteger \c_page_floats_n_of_page \c_page_floats_n_of_page \plustwo
\newconstant\c_page_floats_insertions_topskip_mode % 1 = no topskip
@@ -55,26 +55,25 @@
\newconditional\c_page_floats_center_box \settrue\c_page_floats_center_box
\newconditional\c_page_floats_center_box_local
\newconditional\c_page_floats_center_box_global
-\newconditional\c_page_floats_compress_flushed \settrue\c_page_floats_compress_flushed
+\newconditional\c_page_floats_compress_flushed \settrue\c_page_floats_compress_flushed
-\newdimen \d_page_floats_compress_distance
+\newdimension \d_page_floats_compress_distance
%D For the moment we keep this but they will become private too.
-\newcount\totalnoffloats % these will be redone ... handled at the lua end anyway
-\newcount\savednoffloats % these will be redone ... handled at the lua end anyway
-\newcount\nofcollectedfloats % communication channel
-\newdimen\maxcollectedfloatstotal % communication channel
+\newinteger \totalnoffloats % these will be redone ... handled at the lua end anyway
+\newinteger \savednoffloats % these will be redone ... handled at the lua end anyway
+\newinteger \nofcollectedfloats % communication channel
+\newdimension\maxcollectedfloatstotal % communication channel
+\newinteger \noffloatinserts % these will be redone ... handled at the lua end anyway
-\newcount\noffloatinserts % these will be redone ... handled at the lua end anyway
+\newbox \floattext
-\newbox \floattext
-
-\newdimen\floatwidth
-\newdimen\floatheight
-\newdimen\floatdepth
-\newdimen\floattextwidth
-\newdimen\floattextheight
+\newdimension\floatwidth
+\newdimension\floatheight
+\newdimension\floatdepth
+\newdimension\floattextwidth
+\newdimension\floattextheight
\newbox \floatbox
\newbox \savedfloatbox
@@ -182,10 +181,10 @@
%
% \placefloatwithsetups[somefigure]{}{\externalfigure[dummy][width=5cm,height=2cm]}
-\mutable\let\floatsetupcaption\empty
-\mutable\let\floatsetupcontent\empty
-\mutable\let\floatsetupwidth \empty
-\mutable\let\floatsetupheight \empty
+\mutable\lettonothing\floatsetupcaption
+\mutable\lettonothing\floatsetupcontent
+\mutable\lettonothing\floatsetupwidth
+\mutable\lettonothing\floatsetupheight
\aliased\let\placesetupfloat\gobbleoneoptional
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-flw.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-flw.mkxl
index ef92b9b52f9..c1d480e9856 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-flw.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-flw.mkxl
@@ -74,7 +74,7 @@
\fi
\to \everydefinetextflow
-\newcount\b_page_textflow_box
+\newinteger\b_page_textflow_box
\permanent\def\textflowcollector#1%
{\begincsname\??textflowbox#1\endcsname}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-imp.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-imp.mkxl
index 4ee7c159be3..00a0430e6e3 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-imp.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-imp.mkxl
@@ -55,13 +55,13 @@
\installcorenamespace{layoutarranger}
\installcorenamespace{layoutarrangeoption}
-\newcount \shippedoutpages
-\newcount \combinedpagescounter
+\newinteger \shippedoutpages
+\newinteger \combinedpagescounter
\newconstant \whichpagetoshipout % 0=all 1=odd 2=even
\newbox \shipoutscratchbox
\setnewconstant\shipoutfinalizemethod\plusone
-\mutable\let\pagestoshipout\empty % {1,3,6}
+\mutable\lettonothing\pagestoshipout % {1,3,6}
\permanent\protected\def\shipoutrange#1#2%
{\begingroup
@@ -100,9 +100,31 @@
\installshipoutmethod \v!none
{\page_shipouts_ignore}
+% \setuppaper[method=rotate,rotation=15] \showframe
+% \starttext \dorecurse{10}{\input knuth\endgraf} \stoptext
+
+\installshipoutmethod\v!rotate
+ {\page_shipouts_rotate}
+
+\protected\def\page_shipouts_rotate#1%
+ {\invokepagehandler\v!normal{\rotate[\c!rotation=\rootlayouttargetparameter\c!rotation]{#1}}}
+
+% inject an empty page after each page
+
+\def\page_shipouts_double#1%
+ {\page_shipouts_normal{#1}%
+ \page_shipouts_normal{\null}}
+
+\installshipoutmethod \v!doublesided
+ {\ifarrangingpages
+ \expandafter\page_shipouts_arrange
+ \else
+ \expandafter\page_shipouts_double
+ \fi}
+
% extension mechanism
-\newcount\c_page_boxes_flush_n % set at the lua end
+\newinteger\c_page_boxes_flush_n % set at the lua end
\let\page_boxes_flush_before\relax
\let\page_boxes_flush_after \relax
@@ -133,9 +155,9 @@
\def\page_shipouts_ignore#1%
{\begingroup
\writestatus\m!system
- {\ifarrangingpages arranged \fi page
+ {\ifarrangingpages arranged\normalspace\fi page\normalspace
\ifarrangingpages\the\arrangeno\else\the\realpageno\fi\normalspace
- not flushed}%
+ not\normalspace flushed}%
% \setbox\scratchbox\hpack
% {#1}% no finalize
\deadcycles\zerocount
@@ -160,6 +182,15 @@
\box\scratchbox
\endgroup}
+%D We just ignore \type {\shipout}.
+
+\pushoverloadmode
+
+\permanent\protected\def\shipout
+ {\begingroup\dowithnextboxcs\endgroup}
+
+\popoverloadmode
+
%D Also in normal \MKIV\ we nos use the indirect way so that we benefit from timing
%D and tracing.
@@ -171,10 +202,11 @@
\fi
\clf_shipoutpage#1\relax
\global\setbox#1\emptybox
- \global\deadcycles\zerocount}
+ \global\deadcycles\zerocount
+ \clf_cleanupattributes}
\def\page_shipouts_normal#1%
- {\global\advance\shippedoutpages\plusone
+ {\global\advanceby\shippedoutpages\plusone
% this is not resource safe!
\ifempty\pagestoshipout
\ifcase\whichpagetoshipout\relax
@@ -244,17 +276,17 @@
\mutable\def\arrangedrotationO{0}
\mutable\def\arrangedrotationE{0}
-\newcount\arrangedpageN
-\newcount\arrangedpageM
+\newinteger\arrangedpageN
+\newinteger\arrangedpageM
-\newcount\arrangedpageT \arrangedpageT\plusone
-\newcount\arrangedpageX \arrangedpageX\plusone
-\newcount\arrangedpageY \arrangedpageY\plusone
+\newinteger\arrangedpageT \arrangedpageT\plusone
+\newinteger\arrangedpageX \arrangedpageX\plusone
+\newinteger\arrangedpageY \arrangedpageY\plusone
\def\page_paper_set_offsets
{\global\paperoffset\v_page_target_offset
- \global\advance\paperwidth -2\dimexpr\paperoffset/\arrangedpageX\relax
- \global\advance\paperheight-2\dimexpr\paperoffset/\arrangedpageY\relax}
+ \global\advanceby\paperwidth -2\dimexpr\paperoffset/\arrangedpageX\relax
+ \global\advanceby\paperheight-2\dimexpr\paperoffset/\arrangedpageY\relax}
\permanent\protected\def\doinstallarrangedoption#1#2%
{\gdefcsname\??layoutarrangeoption#1\endcsname{#2}}
@@ -416,7 +448,7 @@
\scratchcounter\numexpr\realpageno-\plusone\relax
\dosetmodulo\scratchcounter\arrangedpageT\scratchcounter
\ifcase\scratchcounter\else
- \advance\scratchcounter \plusone
+ \advanceby\scratchcounter \plusone
\dostepwiserecurse\scratchcounter\arrangedpageT\plusone
{\noheaderandfooterlines\page_otr_insert_dummy_page}%
\fi
@@ -434,7 +466,7 @@
\box\scratchbox\box#5\hss}}
\permanent\protected\def\gotonextarrangepage
- {\global\advance\arrangeno\plusone}
+ {\global\advanceby\arrangeno\plusone}
\permanent\protected\def\outputarrangedbox#1%
{\begingroup
@@ -480,7 +512,7 @@
{\showmessage\m!system{23}{\the\realpageno.\the\pageno\ifnum\subpageno>0 .\the\subpageno\fi,\number#1}}
\permanent\protected\def\advancearrangedpageN
- {\global\advance\arrangedpageN\plusone}
+ {\global\advanceby\arrangedpageN\plusone}
% TOP
@@ -674,7 +706,7 @@
\wd\arrangedpageA\paperwidth
\outputarrangedbox\arrangedpageA
\egroup
- \ifdim\ht\arrangedpageB=\zeropoint
+ \ifzeropt\ht\arrangedpageB
\exitloop
\fi}%
\global\arrangedpageN\zerocount
@@ -1234,7 +1266,7 @@
\permanent\protected\protected\def\pusharrangedpageXY#1%
{\advancearrangedpageN
- \global\advance\arrangedpageM\plusone
+ \global\advanceby\arrangedpageM\plusone
\reportarrangedpage\arrangedpageN
\global\setbox\arrangedpageB\hpack \ifdim\v_page_target_width>\zeropoint to \v_page_target_width \fi
{\ifvoid\arrangedpageB\else
@@ -1335,16 +1367,15 @@
\installcorenamespace {pageshift}
\permanent\protected\tolerant\def\definepageshift[#1]#*[#2]#*[#3]%
- {\setvalue{\??pageshift#2:#1}{#3}}
-
-\let\page_boxes_h_shifts\empty
-\let\page_boxes_v_shifts\empty
+ {\defcsname\??pageshift#2:#1\endcsname{#3}}
-\newcount\c_page_boxes_h_shifts
-\newcount\c_page_boxes_v_shifts
+\lettonothing\page_boxes_h_shifts
+\lettonothing\page_boxes_v_shifts
-\newdimen\d_page_boxes_h_shifts
-\newdimen\d_page_boxes_v_shifts
+\newinteger \c_page_boxes_h_shifts
+\newinteger \c_page_boxes_v_shifts
+\newdimension\d_page_boxes_h_shifts
+\newdimension\d_page_boxes_v_shifts
\let\page_boxes_apply_shift_print\gobbleoneargument
\let\page_boxes_apply_shift_paper\gobbleoneargument
@@ -1352,7 +1383,7 @@
\def\page_boxes_filter_shift#1#2#3% #1=\dimenx #2=\xpageshifts #3=\nofxpageshifts
{#1\zeropoint
\ifempty#2\else
- \global\advance#3\plusone
+ \global\advanceby#3\plusone
\getfromcommacommand[#2][#3]%
\ifempty\commalistelement
\global#3\plusone % we cycle
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-inf.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-inf.mkxl
index 7e65d6e9a80..4865d5990cb 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-inf.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-inf.mkxl
@@ -22,23 +22,25 @@
\newtoks\everyresetversion
\newtoks\everysetupversion
-\mutable\let\currentversioninfo\empty
-\mutable\let\currentversiontext\empty
+\mutable\lettonothing\currentversioninfo
+\mutable\lettonothing\currentversiontext
\let\page_info_add_to_box\gobbleoneargument
\permanent\tolerant\protected\def\setupversion[#1]%
{\the\everyresetversion
- \doifelseassignment{#1}%
- {\getdummyparameters[\c!alternative=,\c!text=,#1]%
- \edef\currentversioninfo{\dummyparameter\c!alternative}%
- \edef\currentversiontext{\dummyparameter\c!text}}%
- {\edef\currentversioninfo{#1}%
- \let \currentversiontext\empty}%
+ \ifhastok={#1}%
+ \getdummyparameters[\c!alternative=,\c!text=,#1]%
+ \edef\currentversioninfo{\dummyparameter\c!alternative}%
+ \edef\currentversiontext{\dummyparameter\c!text}%
+ \else
+ \edef\currentversioninfo{#1}%
+ \lettonothing\currentversiontext
+ \fi
\ifcsname\??layoutinfo\currentversioninfo\endcsname
\let\page_info_add_to_box\page_info_add_to_box_indeed
\else
- \let\currentversioninfo\empty
+ \lettonothing\currentversioninfo
\let\page_info_add_to_box\gobbleoneargument
\fi
\the\everysetupversion}
@@ -49,13 +51,13 @@
{\begincsname\??layoutinfo\currentversioninfo\endcsname}
\permanent\protected\def\installversioninfo#1#2%
- {\setvalue{\??layoutinfo#1}{#2}}
+ {\defcsname\??layoutinfo#1\endcsname{#2}}
\permanent\protected\def\includeversioninfo#1%
{\begincsname\??layoutinfo#1\endcsname}
\installversioninfo\v!final
- {\let\currentversioninfo\empty
+ {\lettonothing\currentversioninfo
\let\page_info_add_to_box\gobbleoneargument}
\installversioninfo\v!concept
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/page-ini.lmt
new file mode 100644
index 00000000000..c2acd7f215f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-ini.lmt
@@ -0,0 +1,374 @@
+if not modules then modules = { } end modules ['page-ini'] = {
+ version = 1.001,
+ comment = "companion to page-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- Some day I need to make this more efficient.
+
+local tonumber, rawget, rawset, type, next = tonumber, rawget, rawset, type, next
+local match = string.match
+local sort, tohash, insert, remove, sortedkeys = table.sort, table.tohash, table.insert, table.remove, table.sortedkeys
+local settings_to_array, settings_to_hash = utilities.parsers.settings_to_array, utilities.parsers.settings_to_hash
+
+local texgetcount = tex.getcount
+
+local tonut = nodes.tonut
+local nextlist = nodes.nuts.traversers.list
+local texlists = tex.lists
+
+local context = context
+local ctx_doif = commands.doif
+local ctx_doifelse = commands.doifelse
+
+local implement = interfaces.implement
+
+local data = table.setmetatableindex("table")
+local last = 0
+local pages = structures.pages
+local autolist = { }
+local report = logs.reporter("pages","mark")
+local active = false
+
+local trace = false trackers.register("pages.mark",function(v) trace = v end)
+
+local c_realpageno = tex.iscount("realpageno")
+
+function pages.mark(name,list,settings)
+ active = true
+ --
+ local realpage = texgetcount(c_realpageno)
+ if type(settings) == "string" then
+ settings = settings_to_hash(settings)
+ end
+ if not list or list == "" then
+ if trace then
+ report("marking current page %i as %a",realpage,name)
+ end
+ data[realpage][name] = settings or true
+ return
+ end
+ if type(list) == "string" then
+ list = settings_to_array(list)
+ end
+ if type(list) == "table" then
+ for i=1,#list do
+ local page = list[i]
+ local sign = false
+ if type(page) == "string" then
+ local f, t = match(page,"(%d+)[:%-](%d+)")
+ if f and t then
+ f, t = tonumber(f), tonumber(t)
+ if f and t and f <= t then
+ if trace then
+ report("marking page %i upto %i as %a",f,t,name)
+ end
+ for page=f,t do
+ data[page][name] = settings or true
+ end
+ end
+ page = false
+ else
+ local s, p = match(page,"([%+%-])(%d+)")
+ if s then
+ sign, page = s, p
+ end
+ end
+ end
+ if page then
+ page = tonumber(page)
+ if page then
+ if sign == "+" then
+ page = realpage + page
+ end
+ if sign == "-" then
+ report("negative page numbers are not supported")
+ else
+ if trace then
+ report("marking page %i as %a",page,name)
+ end
+ data[page][name] = settings or true
+ end
+ end
+ end
+ end
+ else
+ if trace then
+ report("marking current page %i as %a",realpage,name)
+ end
+ data[realpage][name] = settings or true
+ end
+end
+
+local tobemarked = { }
+
+function pages.markedlist(realpage)
+ if active and realpage then
+ local m = rawget(tobemarked,realpage) or rawget(data,realpage)
+ return m and next(m) and sortedkeys(m)
+ end
+end
+
+local function marked(name)
+ if active then
+ local realpage = texgetcount(c_realpageno)
+ if last ~= 0 then
+ for i=last,realpage-1 do
+ -- print(last)
+ local di = data[i]
+ if di then
+ tobemarked[i] = di
+ rawset(data,i,nil)
+ end
+ end
+ last = 0 -- needs checking
+ end
+ local pagedata = rawget(data,realpage)
+ return pagedata and pagedata[name] and true or false
+ else
+ return false
+ end
+end
+
+local function markedparameter(name,key)
+ if active then
+ local pagedata = rawget(data,texgetcount(c_realpageno))
+ if pagedata then
+ pagedata = pagedata[name]
+ if pagedata then
+ pagedata = pagedata[key]
+ end
+ end
+ return pagedata
+ end
+end
+
+local function toranges(marked)
+ local list = { }
+ local size = #marked
+ if size > 0 then
+ local first = marked[1]
+ local last = first
+ for i=2,size do
+ local page = marked[i]
+ if page > last + 1 then
+ list[#list+1] = { first, last }
+ first = page
+ end
+ last = page
+ end
+ list[#list+1] = { first, last }
+ --
+ active = true
+ end
+ return list
+end
+
+local function allmarked(list)
+ if active and list then
+ local collected = pages.collected
+ if collected then
+ if type(list) == "string" then
+ list = settings_to_hash(list)
+ elseif type(list) == "table" and #list > 0 then
+ list = tohash(list)
+ end
+ if type(list) == "table" then
+ local found = { }
+ for name in next, list do
+ for page, list in next, data do
+ if list[name] and collected[page] then
+ found[#found+1] = page
+ end
+ end
+ end
+ if #found > 0 then
+ sort(found)
+ if trace then
+ local ranges = toranges(found)
+ for i=1,#ranges do
+ local range = ranges[i]
+ local first = range[1]
+ local last = range[2]
+ if first == last then
+ report("marked page : %i",first)
+ else
+ report("marked range: %i upto %i",first,last)
+ end
+ end
+ end
+ return found
+ end
+ end
+ end
+ end
+end
+
+pages.marked = marked
+pages.toranges = toranges
+pages.allmarked = allmarked
+
+-- An alternative is to use an attribute and identify the state by parsing the node
+-- list but that's a bit overkill for a hardly used feature like this.
+
+-- Page actions are bound to a real page. When we set one, we need to bind to the
+-- current page unless we just flushed. So we also need to check the current page.
+
+-- \page ... \start : sync realpage
+-- \page \start : sync realpage
+-- \page \stop : reset synced because no content yet
+-- \page ... \stop : keep sync
+
+local function autopageaction()
+ if active then
+ local nofauto = #autolist
+ if nofauto > 0 then
+ local realpage = texgetcount(c_realpageno)
+ for i=1,nofauto do
+ local entry = autolist[i]
+ local names = entry[1]
+ local settings = entry[2]
+ for j=1,#names do
+ local name = names[j]
+ local list = data[realpage]
+ if not list[name] then
+ if trace then
+ report("automatically marking page %i as %a",realpage,name)
+ end
+ list[name] = settings or true
+ end
+ end
+ end
+ end
+ end
+end
+
+local function startmarked(name,settings)
+ active = true
+ --
+ insert(autolist, { settings_to_array(name), settings_to_hash(settings) })
+ autopageaction(true)
+end
+
+local function stopmarked()
+ local nofauto = #autolist
+ if nofauto > 0 then
+ if not texlists.pagehead then
+ local realpage = texgetcount(c_realpageno)
+ for i=1,nofauto do
+ local entry = autolist[i]
+ local names = entry[1]
+ for j=1,#names do
+ local name = names[j]
+ local list = data[realpage]
+ if list[name] then
+ if trace then
+ report("automatically unmarking page %i as %a",realpage,name)
+ end
+ list[name] = nil
+ end
+ end
+ end
+ end
+ remove(autolist)
+ end
+end
+
+implement {
+ name = "checkmarkedpages",
+ protected = true,
+ public = true,
+ actions = autopageaction,
+}
+
+implement {
+ name = "markpage",
+ arguments = "3 strings",
+ actions = pages.mark
+}
+
+implement {
+ name = "doifelsemarkedpage",
+ arguments = "argument",
+ protected = true,
+ public = true,
+ actions = { marked, ctx_doifelse }
+}
+
+implement {
+ name = "doifmarkedpage",
+ arguments = "argument",
+ protected = true,
+ public = true,
+ actions = { marked, ctx_doif }
+}
+
+implement {
+ name = "markedpageparameter",
+ arguments = "2 arguments",
+ public = true,
+ actions = function(name,key)
+ local value = markedparameter(name,key)
+ if value then
+ context(value)
+ end
+ end
+}
+
+implement {
+ name = "markedpages",
+ arguments = "string",
+ actions = function(name)
+ local t = allmarked(name)
+ if t then
+ context("%,t",t)
+ end
+ end
+}
+
+implement {
+ name = "startmarkpages",
+ arguments = "2 strings",
+ actions = startmarked,
+}
+
+implement {
+ name = "stopmarkpages",
+ protected = true,
+ public = true,
+ actions = stopmarked,
+}
+
+implement {
+ name = "doifelsependingpagecontent",
+ actions = function()
+ local h = texlists.contrib_head
+ -- local t = texlists.contrib_tail
+ local p = false
+ if h then
+ for n in nextlist, tonut(h) do
+ p = true
+ break
+ end
+ end
+ ctx_doifelse(p)
+ end,
+}
+
+-- implement {
+-- name = "pagestate",
+-- public = true,
+-- usage = "value",
+-- actions = function()
+-- local result = 0
+-- if nodes.nuts.getspeciallist("contributehead") then
+-- result = result | 1
+-- end
+-- if nodes.nuts.getspeciallist("pagehead") then
+-- result = result | 2
+-- end
+-- return tokens.values.integer, result
+-- end
+-- }
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-ini.mkxl
index 0a0993d44d3..38fe1e60d6d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-ini.mkxl
@@ -13,7 +13,7 @@
\writestatus{loading}{ConTeXt Page Macros / Initializations}
-\registerctxluafile{page-ini}{}
+\registerctxluafile{page-ini}{autosuffix}
%D The \type {\processpage} command has become obsolete. It's original
%D purpose was to flush only parts of a document but nowadays we have
@@ -28,10 +28,10 @@
%D Shipout control.
-\newcount\nofshipouts
+\newinteger\nofshipouts
\appendtoks
- \global\advance\nofshipouts\plusone
+ \global\advanceby\nofshipouts\plusone
\to \everyaftershipout
\newconditional\c_otr_shipout_enabled \settrue\c_otr_shipout_enabled
@@ -47,7 +47,7 @@
\protected\def\page_otr_shipout_nop
{\writestatus\m!system{ignoring shipout of real page \the\realpageno}%
- \global\advance\realpageno\minusone % else no flush of resources
+ \global\advanceby\realpageno\minusone % else no flush of resources
\dowithnextbox{\deadcycles\zerocount}}
% We don't support direct user \shipouts (weird: this does not work, bug?)
@@ -110,8 +110,15 @@
\installoutputroutine\savepagecontent
{\global\setbox\b_page_otr_saved\box\normalpagebox}
-\permanent\protected\def\flushpagecontent
- {\ifvoid\b_page_otr_saved\else\unvbox\b_page_otr_saved\fi}
+% \permanent\protected\def\flushpagecontent
+% {\ifvoid\b_page_otr_saved\else\unvbox\b_page_otr_saved\fi}
+
+\permanent\protected\def\flushpagecontent % used in postponing
+ {\ifvoid\b_page_otr_saved\else
+ \scratchdepth\dp\b_page_otr_saved
+ \unvbox\b_page_otr_saved
+ \prevdepth\scratchdepth
+ \fi}
% Test case: assumes one group level for output routine, todo:
% a toks.
@@ -148,6 +155,8 @@
%
% \stoptext
+\ifdefined\page_check_weird_page \else \let\page_check_weird_page\relax \fi
+
\def\page_otr_construct_and_shipout#1#2#3%
{\forgetall
\page_boxes_shipout{\page_boxes_constructed_page#1#2}% \hbox removed
@@ -162,7 +171,6 @@
\strc_pagenumbers_increment_counters % should hook into an every
\page_adapts_synchronize
\page_otr_check_for_pending_inserts
- \page_otr_command_flush_facing_floats
\page_floats_flush_page_floats % before postponed blocks
\page_spread_flush % defined later
\ifnum#3=\plusone
@@ -174,7 +182,8 @@
\fi
\else
\page_postponed_blocks_flush
- \fi}
+ \fi
+ \page_check_weird_page}
% Can't we get rid of this hackery? It's used in some widgets
% stuff so probably not.
@@ -224,17 +233,30 @@
\newconditional\c_page_marks_building_successive_pages \settrue\c_page_marks_building_successive_pages
-\def\page_marks_synchronize_page#1% box
- {\strc_markings_synchronize\v!page{#1}{\ifconditional\c_page_marks_building_successive_pages\v!keep\fi}}
-\def\page_marks_synchronize_column#1#2#3#4% first last column box
- {\ifnum#3=#1\relax
- \strc_markings_synchronize{\number#3,\v!column:\number#3,\v!first,\v!column:\v!first}{#4}{}%
- \orelse\ifnum#3=#2\relax
- \strc_markings_synchronize{\number#3,\v!column:\number#3,\v!last, \v!column:\v!last }{#4}{}%
- \else
- \strc_markings_synchronize{\number#3,\v!column:\number#3 }{#4}{}%
- \fi}
+\ifdefined\??markingclass
+
+ \def\page_marks_synchronize_page#1% box
+ {} % \strc_markings_synchronize\v!page{1}{#1}
+
+ \def\page_marks_synchronize_column#1#2#3#4% first last column box
+ {\strc_markings_synchronize\v!column{#3}{#4}}
+
+\else
+
+ \def\page_marks_synchronize_page#1% box
+ {\strc_markings_synchronize\v!page{#1}{\ifconditional\c_page_marks_building_successive_pages\v!keep\fi}}
+
+ \def\page_marks_synchronize_column#1#2#3#4% first last column box
+ {\ifnum#3=#1\relax
+ \strc_markings_synchronize{\number#3,\v!column:\number#3,\v!first,\v!column:\v!first}{#4}{}%
+ \orelse\ifnum#3=#2\relax
+ \strc_markings_synchronize{\number#3,\v!column:\number#3,\v!last,\v!column:\v!last}{#4}{}%
+ \else
+ \strc_markings_synchronize{\number#3,\v!column:\number#3}{#4}{}%
+ \fi}
+
+\fi
% Page body building
@@ -277,6 +299,7 @@
\appendtoks
\restoreglobalbodyfont
+ \restoreglobalinterlinespace
\pickupattributes
\to \everybeforepagebody
@@ -317,47 +340,41 @@
\aliased\let\doiftopofpageelse\doifelsetopofpage
-% %D Idea:
-%
-% \newinsert\thispageinsert % <- installinsertion
-%
-% \def\flushatthispage
-% {\bgroup
-% \dowithnextbox{\insert\thispageinsert{\box\nextbox}\egroup}%
-% \hbox}
-%
-% \appendtoks
-% \ifvoid\thispageinsert\else\hbox{\smashedbox\thispageinsert}\fi
-% \to \everyshipout
-
-% not yet in i-* file
-
\installcorenamespace{markedpage}
% todo: just define at the lua end ... less hassle
-\permanent\tolerant\protected\def\markpage [#1]#*[#2]{\clf_markpage {#1}{#2}}
-\permanent \def\markedpages [#1]{\clf_markedpages {#1}} % expandable
-\permanent\protected \def\doifelsemarkedpage#1{\clf_doifelsemarkedpage{#1}}
-\permanent\protected \def\startmarkpages [#1]{\clf_startmarkpages {#1}}
-\permanent\protected \def\stopmarkpages {\clf_stopmarkpages }
+\permanent\tolerant\protected\def\markpage [#1]#*[#2]#*[#3]{\clf_markpage{#1}{#2}{#3}}
+\permanent\tolerant\protected\def\startmarkpages [#1]#*[#2]{\clf_startmarkpages{#1}{#2}}
+%permanent \protected\def\stopmarkpages {\clf_stopmarkpages}
+\permanent \def\markedpages [#1]{\clf_markedpages{#1}} % expandable
+%permanent \protected\def\doifmarkedpage #1{\clf_doifmarkedpage{#1}}
+%permanent \protected\def\doifelsemarkedpage #1{\clf_doifelsemarkedpage{#1}}
+% \def\markedpageparameter #1#2{\clf_markedpageparameter{#1}{#2}}
+%permanent \protected\def\checkmarkedpages {\clf_checkmarkedpages}
+
+\appendtoks
+ \checkmarkedpages % defined at lua end
+\to \everyaftershipout
%D Experimental:
\newconstant\c_page_force_strut_depth_trace_mode
-\installtextracker
- {otr.forcestrutdepth}
- {\c_page_force_strut_depth_trace_mode\plusone}
- {\c_page_force_strut_depth_trace_mode\zerocount}
+% \installtextracker
+% {otr.forcestrutdepth}
+% {\c_page_force_strut_depth_trace_mode\plusone}
+% {\c_page_force_strut_depth_trace_mode\zerocount}
+
+% todo: only in mvl!
-\installoutputroutine\forcestrutdepth
- {\clf_forcestrutdepth\normalpagebox\strutdp\c_page_force_strut_depth_trace_mode
- \unvbox\normalpagebox}
+% \installoutputroutine\forcestrutdepth
+% {\clf_forcestrutdepth\normalpagebox\strutdp\c_page_force_strut_depth_trace_mode
+% \unvbox\normalpagebox}
-\installoutputroutine\forcestrutdepthplus % experimental
- {\clf_forcestrutdepthplus\normalpagebox\strutdp\c_page_force_strut_depth_trace_mode
- \unvbox\normalpagebox}
+% \installoutputroutine\forcestrutdepthplus % experimental
+% {\clf_forcestrutdepthplus\normalpagebox\strutdp\c_page_force_strut_depth_trace_mode
+% \unvbox\normalpagebox}
% maybe better:
%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-inj.mklx b/Master/texmf-dist/tex/context/base/mkxl/page-inj.mklx
index fda757dbe57..02f853c5561 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-inj.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-inj.mklx
@@ -33,8 +33,14 @@
\let\page_boxes_flush_after \clf_flushpageinjectionsafter
\def\page_injections_flush_indeed
- {\scrn_canvas_synchronize_set{\pageinjectionparameter\c!width}{\pageinjectionparameter\c!height}%
- \invokepagehandler\v!normal{\inheritedpageinjectionframed{\texsetup\p_page_injectionalternative_rederingsetup}}%
+ {\begingroup
+ \setbox\scratchbox\normalhpack
+ {\inheritedpageinjectionframed{\texsetup\p_page_injectionalternative_rederingsetup}}%
+ \printpaperwidth \wd\scratchbox
+ \printpaperheight\ht\scratchbox
+ \scrn_canvas_synchronize_only
+ \invokepagehandler\v!normal{\box\scratchbox}%
+ \endgroup
\scrn_canvas_synchronize_reset}
\def\page_injections_flush_saved#name#parameters%
@@ -64,13 +70,13 @@
\fi}
\def\page_injections_direct_settings_parameters#settings% #parameters%
- {\let\currentpageinjection\empty
+ {\lettonothing\currentpageinjection
\checkpageinjectionparent
\setupcurrentpageinjection[#settings]%
\page_injections_direct_indeed}
\def\page_injections_direct_parameters% #parameters%
- {\let\currentpageinjection\empty
+ {\lettonothing\currentpageinjection
\checkpageinjectionparent
\page_injections_direct_indeed}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-ins.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-ins.mkxl
index 2ab7449ab11..8d2dfe84631 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-ins.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-ins.mkxl
@@ -56,11 +56,11 @@
\page_inserts_check_anchoring
\to \everystarttext % or \everyjob
-\newcount\currentinsertionnumber % This is a count and not a macro !
+\newinteger\currentinsertionnumber % This is a count and not a macro !
\newtoks\t_page_inserts_list
-\mutable\let\doprocessinsert\relax % probably kind of obsolete now
+\mutable\let\doprocessinsert\gobbleoneargument % probably kind of obsolete now
%D Maybe some day we will move settings here.
@@ -73,13 +73,6 @@
\protected\def\page_inserts_synchronize_registers
{\currentinsertionnumber\csname\??insertionnumber\currentinsertion\endcsname}
-% for practical reasons we still set these elsewhere but that might change in the future
-%
-% \global\count\currentinsertionnumber\numexpr\insertionparameter\c!factor/\insertionparameter\c!n\relax
-% \global\skip \currentinsertionnumber\insertionparameter\c!distance \relax
-% \global\dimen\currentinsertionnumber\insertionparameter\c!maxheight\relax}
-% \floatingpenalty\zerocount
-
\appendtoks
\ifempty\currentinsertionparent \else
\page_inserts_synchronize_registers
@@ -94,14 +87,14 @@
\permanent\protected\def\processinsertions
{\the\t_page_inserts_list}
-\permanent\protected\def\synchronizeinsertions
- {\let\doprocessinsert\page_inserts_synchronize
- \processinsertions}
-
-\protected\def\page_inserts_synchronize#1% yes or no
- {\ifvoid#1\else
- \insert#1{\unvbox#1}%
- \fi}
+% \permanent\protected\def\synchronizeinsertions
+% {\let\doprocessinsert\page_inserts_synchronize
+% \processinsertions}
+%
+% \protected\def\page_inserts_synchronize#1% yes or no
+% {\ifvoid#1\else
+% \page_inserts_inject#1{\unvbox#1}%
+% \fi}
\permanent\protected\def\doifelseinsertion#1%
{\ifcsname\??insertionnumber#1\endcsname
@@ -113,7 +106,7 @@
\aliased\let\doifinsertionelse\doifelseinsertion
% \protected\def\startinsertion[#1]%
-% {\insert\csname\??insertionnumber#1\endcsname\bgroup}
+% {\page_inserts_inject\csname\??insertionnumber#1\endcsname\bgroup}
%
% \protected\def\stopinsertion
% {\egroup}
@@ -124,12 +117,66 @@
% pass pass them explicitly. Actually, when we see an insertion node at that end,
% we already know the number.
+\insertmode\plustwo
+
+% \ifnum\insertmode=\plustwo
+
+ \protected\def\page_inserts_inject {\insert}
+
+ \protected\def\page_inserts_set_limit {\insertlimit}
+ \protected\def\page_inserts_set_distance {\insertdistance}
+ \protected\def\page_inserts_set_multiplier{\insertmultiplier}
+ \protected\def\page_inserts_set_penalty {\insertpenalty}
+ \protected\def\page_inserts_set_maxdepth {\insertmaxdepth}
+
+ \protected\def\page_inserts_get_limit {\insertlimit}
+ \protected\def\page_inserts_get_distance {\insertdistance}
+ \protected\def\page_inserts_get_multiplier{\insertmultiplier}
+ \protected\def\page_inserts_get_penalty {\insertpenalty}
+ \protected\def\page_inserts_get_maxdepth {\insertmaxdepth}
+
+ \protected\def\page_inserts_get_boxed {\insertbox}
+ \protected\def\page_inserts_get_copied {\insertcopy}
+ \protected\def\page_inserts_get_unboxed {\insertunbox}
+ \protected\def\page_inserts_get_uncopied {\insertuncopy}
+
+ \protected\def\page_inserts_get_height {\insertheight}
+ \protected\def\page_inserts_get_depth {\insertdepth}
+ \protected\def\page_inserts_get_width {\insertwidth}
+
+% \else
+%
+% \protected\def\page_inserts_inject {\insert}
+%
+% \protected\def\page_inserts_set_limit {\global\dimen}
+% \protected\def\page_inserts_set_distance {\global\skip }
+% \protected\def\page_inserts_set_multiplier{\global\count}
+%
+% \protected\def\page_inserts_get_limit {\dimen}
+% \protected\def\page_inserts_get_distance {\skip }
+% \protected\def\page_inserts_get_multiplier{\count}
+%
+% \protected\def\page_inserts_get_boxed {\box}
+% \protected\def\page_inserts_get_copied {\copy}
+% \protected\def\page_inserts_get_unboxed {\unvbox}
+% \protected\def\page_inserts_get_uncopied {\unvcopy}
+%
+% \protected\def\page_inserts_get_height {\ht}
+% \protected\def\page_inserts_get_depth {\dp}
+% \protected\def\page_inserts_get_width {\wd}
+%
+% \fi
+
+\newinteger\c_page_inserts_last_allocated
+
\appendtoks
\ifempty\currentinsertionparent
\ifcsname\??insertionnumber\currentinsertion\endcsname
% bad news
\else
- \expandafter\newinsert\csname\??insertionnumber\currentinsertion\endcsname
+ %expandafter\newinsert\csname\??insertionnumber\currentinsertion\endcsname
+ \global\advanceby\c_page_inserts_last_allocated\plusone
+ \global\expandafter\integerdef\csname\??insertionnumber\currentinsertion\endcsname\c_page_inserts_last_allocated
\page_inserts_synchronize_registers
\clf_defineinsertion
{\currentinsertion}%
@@ -137,12 +184,13 @@
number \currentinsertionnumber
}%
\relax
- \t_page_inserts_list\expandafter\expandafter\expandafter
- {\expandafter\the\expandafter\t_page_inserts_list
- \expandafter\page_inserts_process\csname\??insertionnumber\currentinsertion\endcsname}%
- \count\currentinsertionnumber\plusthousand
- \skip \currentinsertionnumber\zeropoint
- \dimen\currentinsertionnumber\maxdimen
+% \t_page_inserts_list\expandafter\expandafter\expandafter
+% {\expandafter\the\expandafter\t_page_inserts_list
+% \expandafter\page_inserts_process\csname\??insertionnumber\currentinsertion\endcsname}%
+ \xtoksapp\t_page_inserts_list{\page_inserts_process{\currentinsertion}}%
+ \page_inserts_set_multiplier\currentinsertionnumber\plusthousand
+ \page_inserts_set_distance \currentinsertionnumber\zeropoint
+ \page_inserts_set_limit \currentinsertionnumber\maxdimen
\fi
\else
\letcsname\??insertionnumber\currentinsertion\expandafter\endcsname
@@ -169,41 +217,10 @@
\def\page_insert_insertion_height#1%
{\dimexpr\expandafter\page_insert_insertion_height_indeed\csname\??insertionnumber#1\endcsname\relax}
-\def\page_insert_insertion_height_indeed#1%
- {\ifvoid#1\zeropoint\else1\skip#1+\ht#1\fi}
-
-%D Obsolete:
+% \def\page_insert_insertion_height_indeed#1%
+% {\ifvoid#1\zeropoint\else1\page_inserts_get_distance#1+\ht#1\fi}
-% \installcorenamespace{insertionbackup}
-%
-% \protected\def\installbackupinsertion#1%
-% {\ifcsname\??insertionbackup\string#1\endcsname \else
-% \expandafter\newinsert\csname\??insertionbackup\string#1\endcsname
-% \count\csname\??insertionbackup\string#1\endcsname\zerocount
-% \skip \csname\??insertionbackup\string#1\endcsname\zeropoint
-% \dimen\csname\??insertionbackup\string#1\endcsname\maxdimen
-% \fi}
-%
-% \protected\def\saveinsertionbox#1% hm, actually unknown
-% {\global\setbox\csname\??insertionbackup\string#1\endcsname
-% \ifdim\ht#1>\zeropoint\box#1\else\emptybox\fi}
-%
-% \protected\def\restoreinsertionbox#1%
-% {\ifvoid\backupinsertion#1\else % if void, we keep the content
-% \global\setbox#1\box\csname\??insertionbackup\string#1\endcsname
-% \fi}
-%
-% \protected\def\eraseinsertionbackup#1%
-% {\global\setbox\csname\??insertionbackup\string#1\endcsname\emptybox}
-%
-% \protected\def\saveinsertiondata#1%
-% {\global\skip \csname\??insertionbackup\string#1\endcsname\skip #1%
-% \global\count\csname\??insertionbackup\string#1\endcsname\count#1%
-% \global\dimen\csname\??insertionbackup\string#1\endcsname\dimen#1}
-%
-% \protected\def\restoreinsertiondata#1%
-% {\global\skip #1\skip \csname\??insertionbackup\string#1\endcsname
-% \global\count#1\count\csname\??insertionbackup\string#1\endcsname
-% \global\dimen#1\dimen\csname\??insertionbackup\string#1\endcsname}
+\def\page_insert_insertion_height_indeed#1%
+ {\ifzeropt\page_inserts_get_height#1\zeropoint\else\dimexpr\page_inserts_get_distance#1\relax+\page_inserts_get_height#1\fi}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-lay.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-lay.mkxl
index 21cb48f20de..5e2281a2f3f 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-lay.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-lay.mkxl
@@ -24,90 +24,92 @@
%D The dimensions related to layout areas are represented by real dimensions.
-\newdimen\paperheight \paperheight = 297mm
-\newdimen\paperwidth \paperwidth = 210mm
-\newdimen\paperoffset \paperoffset = \zeropoint
-\newdimen\paperbleed \paperbleed = \zeropoint
-\newdimen\spinewidth \spinewidth = \zeropoint
+\newdimension\paperheight \paperheight = 297mm
+\newdimension\paperwidth \paperwidth = 210mm
+\newdimension\paperoffset \paperoffset = \zeropoint
+\newdimension\paperbleed \paperbleed = \zeropoint
+\newdimension\spinewidth \spinewidth = \zeropoint
-\newdimen\printpaperheight \printpaperheight = \paperheight
-\newdimen\printpaperwidth \printpaperwidth = \paperwidth
+\newdimension\printpaperheight \printpaperheight = \paperheight
+\newdimension\printpaperwidth \printpaperwidth = \paperwidth
-\newdimen\makeupheight % calculated
-\newdimen\makeupwidth % calculated
+\newdimension\makeupheight % calculated
+\newdimension\makeupwidth % calculated
-\newdimen\textheight % calculated
-\newdimen\textwidth % calculated
+\newdimension\textheight % calculated
+\newdimension\textwidth % calculated
-\newdimen\topspace \topspace = 2cm
-\newdimen\backspace \backspace = \topspace
-\newdimen\cutspace \cutspace = \zeropoint
-\newdimen\bottomspace \bottomspace = \zeropoint
+\newdimension\topspace \topspace = 2cm
+\newdimension\backspace \backspace = \topspace
+\newdimension\cutspace \cutspace = \zeropoint
+\newdimension\bottomspace \bottomspace = \zeropoint
-\newdimen\headerheight \headerheight = 2cm
-\newdimen\footerheight \footerheight = \headerheight
+\newdimension\headerheight \headerheight = 2cm
+\newdimension\footerheight \footerheight = \headerheight
-\newdimen\topoffset \topoffset = \zeropoint
-\newdimen\backoffset \backoffset = \topoffset
+\newdimension\topoffset \topoffset = \zeropoint
+\newdimension\backoffset \backoffset = \topoffset
-\newdimen\leftmarginwidth \leftmarginwidth = 3cm
-\newdimen\rightmarginwidth \rightmarginwidth = \leftmarginwidth
+\newdimension\leftmarginwidth \leftmarginwidth = 3cm
+\newdimension\rightmarginwidth \rightmarginwidth = \leftmarginwidth
-\newdimen\leftedgewidth \leftedgewidth = 3cm
-\newdimen\rightedgewidth \rightedgewidth = \leftedgewidth
+\newdimension\leftedgewidth \leftedgewidth = 3cm
+\newdimension\rightedgewidth \rightedgewidth = \leftedgewidth
-\newdimen\topheight \topheight = \zeropoint
-\newdimen\bottomheight \bottomheight = \topheight
+\newdimension\topheight \topheight = \zeropoint
+\newdimension\bottomheight \bottomheight = \topheight
-\newcount\layoutlines \layoutlines = \zerocount
-\newcount\layoutcolumns \layoutcolumns = \zerocount
-\newdimen\layoutcolumndistance \layoutcolumndistance = \zeropoint
-\newdimen\layoutcolumnwidth \layoutcolumnwidth = \zeropoint
+\newinteger \layoutlines \layoutlines = \zerocount
+\newinteger \layoutcolumns \layoutcolumns = \zerocount
+\newdimension\layoutcolumndistance \layoutcolumndistance = \zeropoint
+\newdimension\layoutcolumnwidth \layoutcolumnwidth = \zeropoint
-\newdimen\totaltextwidth
+\newdimension\totaltextwidth
+
+\newdimension\textadaptive
%D The next series of dimensions are complemented by left and rights ones.
-\newdimen\margindistance
-\newdimen\edgedistance
-\newdimen\marginwidth
-\newdimen\edgewidth
+\newdimension\margindistance
+\newdimension\edgedistance
+\newdimension\marginwidth
+\newdimension\edgewidth
%D Because a distance does not really makes sense when there is no area, we use a
%D zero distance in case there is no area.
%D The horizontal distances are:
-\newdimen\leftedgedistance
-\newdimen\rightedgedistance
-\newdimen\leftmargindistance
-\newdimen\rightmargindistance
+\newdimension\leftedgedistance
+\newdimension\rightedgedistance
+\newdimension\leftmargindistance
+\newdimension\rightmargindistance
%D The vertical distances are:
-\newdimen\topdistance
-\newdimen\headerdistance
-\newdimen\textdistance
-\newdimen\footerdistance
-\newdimen\bottomdistance
+\newdimension\topdistance
+\newdimension\headerdistance
+\newdimension\textdistance
+\newdimension\footerdistance
+\newdimension\bottomdistance
-\newdimen\textovershoot % available in pagebuilder
+\newdimension\textovershoot % available in pagebuilder
%D We need to calculate the extra distances:
-\newdimen\naturalmarginwidth
-\newdimen\naturaledgewidth
-\newdimen\naturalmargindistance
-\newdimen\naturaledgedistance
-\newdimen\naturalleftedgedistance
-\newdimen\naturalrightedgedistance
-\newdimen\naturalleftmargindistance
-\newdimen\naturalrightmargindistance
-\newdimen\naturaltopdistance
-\newdimen\naturalheaderdistance
-\newdimen\naturaltextdistance
-\newdimen\naturalfooterdistance
-\newdimen\naturalbottomdistance
+\newdimension\naturalmarginwidth
+\newdimension\naturaledgewidth
+\newdimension\naturalmargindistance
+\newdimension\naturaledgedistance
+\newdimension\naturalleftedgedistance
+\newdimension\naturalrightedgedistance
+\newdimension\naturalleftmargindistance
+\newdimension\naturalrightmargindistance
+\newdimension\naturaltopdistance
+\newdimension\naturalheaderdistance
+\newdimension\naturaltextdistance
+\newdimension\naturalfooterdistance
+\newdimension\naturalbottomdistance
%D Now we've come to the setup and definition commands.
@@ -119,11 +121,20 @@
\installswitchcommandhandler \??layout {layout} \??layout
+\pushoverloadmode
+
+ \let\page_layouts_define\definelayout % ugly hack for MS
+
+ \permanent\protected\def\definelayout[#1]% intercept relative pages
+ {\normalexpanded{\page_layouts_define[\ifhastoks{+}{#1}\the\numexpr\realpageno#1\relax\else#1\fi]}}
+
+\popoverloadmode
+
\appendtoks
\doifnothing{\directlayoutparameter\c!state}{\letlayoutparameter\c!state\v!start}%
\to \everydefinelayout
-\newconditional \layouthaschanged \settrue\layouthaschanged % used in mp
+\newinteger\c_page_layouts_changed
\appendtoks
\ifcase\layoutsetupmode
@@ -143,7 +154,7 @@
\page_layouts_check_next
\or % \setuplayout[name]
\ifx\currentlayout\v!reset
- \let\currentlayout\empty
+ \lettonothing\currentlayout
\fi
\letlayoutparameter\c!state\v!normal % global ? still needed ?
\glet\currentlayout\currentlayout % global
@@ -151,17 +162,13 @@
\page_layouts_check_next
\or % \setuplayout (reverts to main layout)
\letlayoutparameter\c!state\v!normal % global ? still needed ?
- \glet\currentlayout\empty % global
+ \glettonothing\currentlayout % global
\page_layouts_synchronize
\page_layouts_check_next
\fi
- \global\settrue\layouthaschanged
+ \global\c_page_layouts_changed\realpageno
\to \everysetuplayout
-\appendtoks
- \global\setfalse\layouthaschanged
-\to \everyaftershipout
-
\permanent\def\doifelselayoutdefined#1%
{\ifcsname\namedlayouthash{#1}\c!state\endcsname % maybe a helper
\expandafter\firstoftwoarguments
@@ -173,6 +180,20 @@
\permanent\def\layoutdistance#1#2{\ifdim\zeropoint<#1#2\else\zeropoint\fi}
+\appendtoks
+ \global\pageextragoal\zeropoint
+\to \everysetuplayout
+
+\appendtoks
+ \global\pageextragoal \zeropoint
+\to \everysetupoutputroutine
+
+\immutable\integerdef\lasttextadaptive\zerocount
+
+\prependtoks
+ \enforced\integerdef\lasttextadaptive\plusone
+\to \everybeforeoutput
+
% \newconditional\reverselayout
\def\page_layouts_set_dimensions
@@ -218,12 +239,22 @@
\newtoks\everyswapmargins % watch the order !
+\newconditional\marginsareswapped
+
\appendtoks
+ \ifconditional\marginsareswapped
+ \setfalse\marginsareswapped
+ \else
+ \settrue\marginsareswapped
+ \fi
+ %
\enforced\swapcsvalues\leftmargindistance\rightmargindistance
\enforced\swapcsvalues\leftedgedistance \rightedgedistance
\enforced\swapcsvalues\leftmarginwidth \rightmarginwidth
\enforced\swapcsvalues\leftedgewidth \rightedgewidth
%
+ \enforced\swapcsvalues\backspace \cutspace
+ %
\enforced\swapcsvalues\leftmargintotal \rightmargintotal
\enforced\swapcsvalues\leftedgetotal \rightedgetotal
\enforced\swapcsvalues\leftsidetotal \rightsidetotal
@@ -303,8 +334,8 @@
\let\v_page_target_top_fill \relax
\let\v_page_target_bottom_fill\relax
-\let\papersize \empty
-\let\printpapersize\empty
+\lettonothing\papersize
+\lettonothing\printpapersize
\def\v_page_target_top {\namedlayouttargetparameter\papersize\c!top }
\def\v_page_target_bottom {\namedlayouttargetparameter\papersize\c!bottom}
@@ -399,7 +430,7 @@
\fi}
\protected\def\page_paper_setup_size_settings[#1]% sometimes used to set paper/print size
- {\let\currentlayouttarget\empty
+ {\lettonothing\currentlayouttarget
\edef\m_layouttarget_paper_saved{\page_paper_the_paper_size{\layouttargetparameter\c!page }}%
\edef\m_layouttarget_print_saved{\page_paper_the_print_size{\layouttargetparameter\c!paper}}%
\setupcurrentlayouttarget[#1]%
@@ -469,35 +500,58 @@
\global\c_page_target_print_orientation\uprotationangle
\global\c_page_target_print_reverse \uprotationangle}
-\letvalue{\??layoutpaper\v!reset}\page_paper_reset_paper
-\letvalue{\??layoutprint\v!reset}\page_paper_reset_print
-
-\setvalue{\??layoutpaper\v!landscape }{\global\settrue\c_page_target_paper_landscape}
-\setvalue{\??layoutpaper\v!mirrored }{\global\settrue\c_page_target_paper_mirror}
-\setvalue{\??layoutpaper\v!negative }{\global\settrue\c_page_target_paper_negate}
-\setvalue{\??layoutpaper\v!rotated }{\global\c_page_target_paper_orientation\rightrotationangle
- \global\c_page_target_paper_reverse \leftrotationangle}
-\setvalue{\??layoutpaper\number\rightrotationangle}{\global\c_page_target_paper_orientation\rightrotationangle
- \global\c_page_target_paper_reverse \leftrotationangle}
-\setvalue{\??layoutpaper\number\downrotationangle }{\global\c_page_target_paper_orientation\downrotationangle
- \global\c_page_target_paper_reverse \zerocount}
-\setvalue{\??layoutpaper\number\leftrotationangle }{\global\c_page_target_paper_orientation\leftrotationangle
- \global\c_page_target_paper_reverse \rightrotationangle}
-
-\setvalue{\??layoutprint\v!landscape }{\global\settrue\c_page_target_print_landscape}
-\setvalue{\??layoutprint\v!mirrored }{\global\settrue\c_page_target_print_mirror}
-\setvalue{\??layoutprint\v!negative }{\global\settrue\c_page_target_print_negate}
-\setvalue{\??layoutprint\v!rotated }{\global\c_page_target_print_orientation\rightrotationangle
- \global\c_page_target_print_reverse \leftrotationangle}
-\setvalue{\??layoutprint\number\rightrotationangle}{\global\c_page_target_print_orientation\rightrotationangle
- \global\c_page_target_print_reverse \leftrotationangle}
-\setvalue{\??layoutprint\number\downrotationangle }{\global\c_page_target_print_orientation\downrotationangle
- \global\c_page_target_print_reverse \zerocount}
-\setvalue{\??layoutprint\number\leftrotationangle }{\global\c_page_target_print_orientation\leftrotationangle
- \global\c_page_target_print_reverse \rightrotationangle}
-
-%def\page_paper_handle_page_option #1{\ifcsname\??layoutpaper#1\endcsname\csname\??layoutpaper#1\endcsname\fi}
-%def\page_paper_handle_print_option#1{\ifcsname\??layoutprint#1\endcsname\csname\??layoutprint#1\endcsname\fi}
+\letcsname\??layoutpaper\v!reset\endcsname\page_paper_reset_paper
+\letcsname\??layoutprint\v!reset\endcsname\page_paper_reset_print
+
+\defcsname\??layoutpaper\v!landscape\endcsname
+ {\global\settrue\c_page_target_paper_landscape}
+
+\defcsname\??layoutpaper\v!mirrored\endcsname
+ {\global\settrue\c_page_target_paper_mirror}
+
+\defcsname\??layoutpaper\v!negative\endcsname
+ {\global\settrue\c_page_target_paper_negate}
+
+\defcsname\??layoutpaper\v!rotated\endcsname
+ {\global\c_page_target_paper_orientation\rightrotationangle
+ \global\c_page_target_paper_reverse \leftrotationangle}
+
+\defcsname\??layoutpaper\number\rightrotationangle\endcsname
+ {\global\c_page_target_paper_orientation\rightrotationangle
+ \global\c_page_target_paper_reverse \leftrotationangle}
+
+\defcsname\??layoutpaper\number\downrotationangle\endcsname
+ {\global\c_page_target_paper_orientation\downrotationangle
+ \global\c_page_target_paper_reverse \zerocount}
+
+\defcsname\??layoutpaper\number\leftrotationangle\endcsname
+ {\global\c_page_target_paper_orientation\leftrotationangle
+ \global\c_page_target_paper_reverse \rightrotationangle}
+
+\defcsname\??layoutprint\v!landscape\endcsname
+ {\global\settrue\c_page_target_print_landscape}
+
+\defcsname\??layoutprint\v!mirrored\endcsname
+ {\global\settrue\c_page_target_print_mirror}
+
+\defcsname\??layoutprint\v!negative\endcsname
+ {\global\settrue\c_page_target_print_negate}
+
+\defcsname\??layoutprint\v!rotated\endcsname
+ {\global\c_page_target_print_orientation\rightrotationangle
+ \global\c_page_target_print_reverse \leftrotationangle}
+
+\defcsname\??layoutprint\number\rightrotationangle\endcsname
+ {\global\c_page_target_print_orientation\rightrotationangle
+ \global\c_page_target_print_reverse \leftrotationangle}
+
+\defcsname\??layoutprint\number\downrotationangle \endcsname
+ {\global\c_page_target_print_orientation\downrotationangle
+ \global\c_page_target_print_reverse \zerocount}
+
+\defcsname\??layoutprint\number\leftrotationangle \endcsname
+ {\global\c_page_target_print_orientation\leftrotationangle
+ \global\c_page_target_print_reverse \rightrotationangle}
\def\page_paper_handle_page_option #1{\begincsname\??layoutpaper#1\endcsname}
\def\page_paper_handle_print_option#1{\begincsname\??layoutprint#1\endcsname}
@@ -507,7 +561,7 @@
\edef\currentlayouttarget{#1}%
\fi}
-\newdimen\d_page_minimum_paper_size \d_page_minimum_paper_size\luaexpr{math.pi}\onebasepoint
+\newdimension\d_page_minimum_paper_size \d_page_minimum_paper_size\luaexpr{math.pi}\onebasepoint
\protected\def\page_paper_set_current_indeed[#1][#2]%
{\edef\m_page_asked_paper{#1}% can be the restores
@@ -516,7 +570,7 @@
\page_paper_set_restore\m_page_asked_paper\m_page_asked_print
%
% locate page target
- \let\currentlayouttarget\empty
+ \lettonothing\currentlayouttarget
\page_paper_reset_paper
\processcommacommand[\m_page_asked_paper]\page_paper_identify_target
\ifempty\currentlayouttarget
@@ -598,8 +652,8 @@
\def\page_paper_set_offsets % will move
{\global\paperoffset\v_page_target_offset
- \global\advance\paperwidth -2\paperoffset
- \global\advance\paperheight-2\paperoffset}
+ \global\advanceby\paperwidth -2\paperoffset
+ \global\advanceby\paperheight-2\paperoffset}
\fi
@@ -607,8 +661,8 @@
\let\synchronizegridsnapping\relax
\fi
-\let\p_page_layouts_width \empty
-\let\p_page_layouts_height\empty
+\lettonothing\p_page_layouts_width
+\lettonothing\p_page_layouts_height
\def\page_layouts_synchronize
{\setups[\layoutparameter\c!preset]\relax
@@ -622,6 +676,7 @@
\global\topheight \layoutparameter\c!top
\global\backspace \layoutparameter\c!backspace
\global\topspace \layoutparameter\c!topspace
+ \global\textadaptive \layoutparameter\c!adaptive
\page_layouts_set_dimensions
\synchronizegridsnapping
\usesetupsparameter\layoutparameter % depends on gridsnapping !
@@ -646,7 +701,7 @@
\ifdim\scratchdimen<\zeropoint
\scratchdimen\zeropoint
\fi
- \global\advance\makeupwidth\dimexpr
+ \global\advanceby\makeupwidth\dimexpr
-\rightmargindistance-\rightmarginwidth
-\rightedgedistance -\rightedgewidth
-\scratchdimen\relax
@@ -683,7 +738,7 @@
\ifdim\scratchdimen<\zeropoint
\scratchdimen\zeropoint
\fi
- \global\advance\makeupheight\dimexpr-\bottomdistance-\bottomheight-\scratchdimen\relax
+ \global\advanceby\makeupheight\dimexpr-\bottomdistance-\bottomheight-\scratchdimen\relax
\else
\global\makeupheight\layoutparameter\c!height\relax
\ifzeropt\bottomspace
@@ -731,9 +786,9 @@
\ifx\p_direction\v!reverse
\enforced\global\swapcsvalues\naturalleftedgedistance \naturalrightedgedistance
\enforced\global\swapcsvalues\naturalleftmargindistance\naturalrightmargindistance
- \enforced\global\swapcsvalues\leftedgedistance \rightedgedistance
\enforced\global\swapcsvalues\leftmargindistance \rightmargindistance
\enforced\global\swapcsvalues\leftmarginwidth \rightmarginwidth
+ \enforced\global\swapcsvalues\leftedgedistance \rightedgedistance
\enforced\global\swapcsvalues\leftedgewidth \rightedgewidth
\enforced\global\swapcsvalues\backspace \cutspace
\expandafter\setsystemmode
@@ -746,7 +801,7 @@
\global\layoutcolumndistance\layoutparameter\c!columndistance
\global\layoutcolumnwidth\dimexpr\makeupwidth-\layoutcolumns\layoutcolumndistance+\layoutcolumndistance\relax
\ifnum\layoutcolumns>\plusone
- \global\divide\layoutcolumnwidth\layoutcolumns
+ \global\divideby\layoutcolumnwidth\layoutcolumns
\dorecurse\layoutcolumns\page_layouts_check_pseudo_column
\fi}
@@ -754,11 +809,14 @@
{\xdefcsname\??layoutcolumn\recurselevel\endcsname
{\the\numexpr\recurselevel-\plusone\relax\dimexpr\layoutcolumnwidth+\layoutcolumndistance\relax}}
-\letvalue{\??layoutcolumn0}\zeropoint
+\aliased\letcsname\??layoutcolumn0\endcsname\zeropoint
\permanent\def\layoutcolumnoffset#1% can travel around so we can't use \lastnamedcs
{\csname\??layoutcolumn\ifcsname\??layoutcolumn#1\endcsname#1\else0\fi\endcsname}
+\permanent\protected\def\layoutlineoffset#1%
+ {\the\dimexpr\topskip-\strutht+#1\lineheight-\lineheight\relax}
+
\def\page_layouts_synchronize_at_start
{\ifdim\makeupheight=\layoutlines\lineheight \else % weird check
\page_layouts_synchronize
@@ -824,8 +882,40 @@
\glet\v_page_layouts_pre_check\relax
\page_layouts_synchronize}
+% \def\page_layouts_check_default
+% {\ifcsname\namedlayouthash\v_real_page_normal\c!state\endcsname
+% \page_layouts_check_default_indeed\v_real_page_normal
+% \orelse\ifcsname\namedlayouthash\v_real_page_reverse\c!state\endcsname
+% \page_layouts_check_default_indeed\v_real_page_reverse
+% \orelse\ifcsname\namedlayouthash\v_real_page_named\c!state\endcsname
+% \page_layouts_check_default_indeed\v_real_page_named
+% \orelse\ifcsname\namedlayouthash\v_real_page_current\c!state\endcsname
+% \page_layouts_check_default_indeed\v_real_page_current
+% \orelse\ifcsname\namedlayouthash\v_real_page_odd_or_even\c!state\endcsname
+% \page_layouts_check_default_indeed\v_real_page_odd_or_even
+% \orelse\ifrelax\v_page_layouts_pre_check
+% % okay
+% \else
+% \page_layouts_check_revert
+% \fi}
+
+% \showframe
+%
+% \setuplayout [width=100mm,height=200mm]
+% \definelayout[shorta][height=80mm]
+% \definelayout[shortb][height=130mm]
+%
+% \starttext
+% \definelayout[2][shorta] \definelayout[4][shortb]
+% \definelayout[7][shorta] \definelayout[8][shortb] % we need to check before
+% \dorecurse{20}{#1: \samplefile{knuth}\par}
+% \stoptext
+
\def\page_layouts_check_default
- {\ifcsname\namedlayouthash\v_real_page_normal\c!state\endcsname
+ {\ifrelax\v_page_layouts_pre_check\else
+ \page_layouts_check_revert
+ \fi
+ \ifcsname\namedlayouthash\v_real_page_normal\c!state\endcsname
\page_layouts_check_default_indeed\v_real_page_normal
\orelse\ifcsname\namedlayouthash\v_real_page_reverse\c!state\endcsname
\page_layouts_check_default_indeed\v_real_page_reverse
@@ -835,10 +925,10 @@
\page_layouts_check_default_indeed\v_real_page_current
\orelse\ifcsname\namedlayouthash\v_real_page_odd_or_even\c!state\endcsname
\page_layouts_check_default_indeed\v_real_page_odd_or_even
- \orelse\ifrelax\v_page_layouts_pre_check
- % okay
- \else
- \page_layouts_check_revert
+ % \orelse\ifrelax\v_page_layouts_pre_check
+ % % okay
+ % \else
+ % \page_layouts_check_revert
\fi}
\permanent\protected\def\installlayoutmethod#1#2%
@@ -847,13 +937,6 @@
\installlayoutmethod\v!default{\page_layouts_check_default}
\installlayoutmethod\v!normal {\page_layouts_check_default}
-% \def\page_layouts_check_next
-% {\csname\??layoutmethod\ifcsname\??layoutmethod\layoutparameter\c!method\endcsname
-% \layoutparameter\c!method
-% \else
-% \v!normal
-% \fi\endcsname}
-
\permanent\protected\def\page_layouts_check_next
{\ifcsname\??layoutmethod\layoutparameter\c!method\endcsname
\lastnamedcs
@@ -907,41 +990,55 @@
{\setfalse\c_page_layouts_location_is_set
\setfalse\c_page_layouts_location_is_middle
\let\v_page_target_left_fill \relax
- \let\v_page_target_right_fill \hss % ? \relax
+ \let\v_page_target_right_fill \hss % ? \relax
\let\v_page_target_top_fill \relax
\let\v_page_target_bottom_fill\vss} % \relax}
-\setvalue{\??layoutlocation\v!right }{\settrue\c_page_layouts_location_is_set
- \setfalse\c_page_layouts_location_is_middle
- \let\v_page_target_left_fill \hss
- \let\v_page_target_right_fill \relax}
-\setvalue{\??layoutlocation\v!left }{\settrue\c_page_layouts_location_is_set
- \setfalse\c_page_layouts_location_is_middle
- \let\v_page_target_left_fill \relax
- \let\v_page_target_right_fill \hss}
-\setvalue{\??layoutlocation\v!bottom }{\settrue\c_page_layouts_location_is_set
- \setfalse\c_page_layouts_location_is_middle
- \let\v_page_target_top_fill \vss
- \let\v_page_target_bottom_fill\relax}
-\setvalue{\??layoutlocation\v!top }{\settrue\c_page_layouts_location_is_set
- \setfalse\c_page_layouts_location_is_middle
- \let\v_page_target_top_fill \relax
- \let\v_page_target_bottom_fill\vss}
-\setvalue{\??layoutlocation\v!middle }{\settrue\c_page_layouts_location_is_set
- \settrue\c_page_layouts_location_is_middle
- \let\v_page_target_left_fill \hss
- \let\v_page_target_right_fill \hss
- \let\v_page_target_top_fill \vss
- \let\v_page_target_bottom_fill\vss}
-\setvalue{\??layoutlocation\empty }{\setfalse\c_page_layouts_location_is_set % default also signal to scrn_
- \setfalse\c_page_layouts_location_is_middle
- \let\v_page_target_right_fill \hss
- \let\v_page_target_bottom_fill\hss}
-\setvalue{\??layoutlocation\v!doublesided}{\settrue \c_page_target_print_doublesided}
-\setvalue{\??layoutlocation\v!singlesided}{\setfalse\c_page_target_print_doublesided}
+\defcsname\??layoutlocation\v!right\endcsname
+ {\settrue\c_page_layouts_location_is_set
+ \setfalse\c_page_layouts_location_is_middle
+ \let\v_page_target_left_fill \hss
+ \let\v_page_target_right_fill\relax}
+
+\defcsname\??layoutlocation\v!left\endcsname
+ {\settrue\c_page_layouts_location_is_set
+ \setfalse\c_page_layouts_location_is_middle
+ \let\v_page_target_left_fill \relax
+ \let\v_page_target_right_fill\hss}
+
+\defcsname\??layoutlocation\v!bottom\endcsname
+ {\settrue\c_page_layouts_location_is_set
+ \setfalse\c_page_layouts_location_is_middle
+ \let\v_page_target_top_fill \vss
+ \let\v_page_target_bottom_fill\relax}
+
+\defcsname\??layoutlocation\v!top\endcsname
+ {\settrue\c_page_layouts_location_is_set
+ \setfalse\c_page_layouts_location_is_middle
+ \let\v_page_target_top_fill \relax
+ \let\v_page_target_bottom_fill\vss}
+
+\defcsname\??layoutlocation\v!middle\endcsname
+ {\settrue\c_page_layouts_location_is_set
+ \settrue\c_page_layouts_location_is_middle
+ \let\v_page_target_left_fill \hss
+ \let\v_page_target_right_fill \hss
+ \let\v_page_target_top_fill \vss
+ \let\v_page_target_bottom_fill\vss}
+
+\defcsname\??layoutlocation\empty\endcsname
+ {\setfalse\c_page_layouts_location_is_set % default also signal to scrn_
+ \setfalse\c_page_layouts_location_is_middle
+ \let\v_page_target_right_fill \hss
+ \let\v_page_target_bottom_fill\hss}
+
+\defcsname\??layoutlocation\v!doublesided\endcsname
+ {\settrue\c_page_target_print_doublesided}
+
+\defcsname\??layoutlocation\v!singlesided\endcsname
+ {\setfalse\c_page_target_print_doublesided}
\def\page_target_check_centering_indeed#1%
- % {\ifcsname\??layoutlocation#1\endcsname\csname\??layoutlocation#1\endcsname\fi}
{\begincsname\??layoutlocation#1\endcsname}
\protected\def\page_target_check_centering
@@ -967,13 +1064,6 @@
\installlayoutalternative\v!default{\page_boxes_construct_content_default}
\installlayoutalternative\v!normal {\page_boxes_construct_content_default}
-% \def\page_boxes_construct_content % targetbox flusher box
-% {\csname\??layoutalternative\ifcsname\??layoutalternative\layoutparameter\c!alternative\endcsname
-% \layoutparameter\c!alternative
-% \else
-% \v!normal
-% \fi\endcsname}
-
\def\page_boxes_construct_content % targetbox flusher box
{\ifcsname\??layoutalternative\layoutparameter\c!alternative\endcsname
\expandafter\lastnamedcs
@@ -984,15 +1074,19 @@
%D \macros
%D {adaptlayout}
+% this will move to lua
+
\installcorenamespace{adaptlayout}
\installcorenamespace{pageadaptations}
\installsetuponlycommandhandler \??adaptlayout {adaptlayout}
-\newdimen\d_page_adepts_pushed_text_height
-\newdimen\d_page_adepts_pushed_footer_height
-\newdimen\d_page_adepts_height
-\newdimen\d_page_adapts_delta
+\newdimension\d_page_adapts_pushed_text_height
+\newdimension\d_page_adapts_pushed_footer_height
+\newdimension\d_page_adapts_height
+\newdimension\d_page_adapts_delta
+
+\appendtoks \global\d_page_adapts_delta\zeropoint \to \everyshipout
\permanent\protected\tolerant\def\adaptlayout[#1]#*[#2]%
{\ifparameter#2\or
@@ -1008,42 +1102,37 @@
\let\p_adapts_height\zeropoint
\let\p_adapts_lines \zerocount
-\def\page_adapts_layout_indeed#1%
- {\setupcurrentadaptlayout[\c!height=\zeropoint,\c!lines=\zerocount,#1]%
- \page_adepts_push
+\def\page_adapts_layout_indeed#1% called often
+ {\setupcurrentadaptlayout[\c!height=\zeropoint,\c!lines=\zerocount,\c!top=\zeropoint,#1]%
+ \page_adapts_push
\edef\p_adapts_height{\adaptlayoutparameter\c!height}%
\edef\p_adapts_lines {\adaptlayoutparameter\c!lines}%
\ifx\p_adapts_height\v!max
- \global\d_page_adepts_height\footerheight
+ \global\d_page_adapts_height\footerheight
\else
- \global\d_page_adepts_height\dimexpr
+ \global\d_page_adapts_height\dimexpr
\ifnum\p_adapts_lines=\zerocount
\p_adapts_height
\else
\p_adapts_lines\openlineheight
\fi
\relax
- \ifdim\d_page_adepts_height>\footerheight
- \global\d_page_adepts_height\footerheight
+ \ifdim\d_page_adapts_height>\footerheight
+ \global\d_page_adapts_height\footerheight
\fi
\fi
- \global\advance\textheight \d_page_adepts_height
- \global\advance\footerheight-\d_page_adepts_height
- \showmessage\m!layouts1{\the\d_page_adepts_height,\the\realpageno}%
+ %
+ \global\d_page_adapts_delta-\dimexpr\adaptlayoutparameter\c!top\relax
+ %
+ \global\advanceby\textheight \d_page_adapts_height
+ \global\advanceby\footerheight-\d_page_adapts_height
+ \showmessage\m!layouts1{\the\dimexpr\d_page_adapts_height,\the\realpageno}%
% this will become a better one (do we need insert correction?)
\page_otr_command_set_vsize
%
\page_backgrounds_recalculate
- \glet\page_adepts_push\relax
- \glet\page_adepts_pop\page_adepts_pop_indeed}
-
-% \def\page_adapts_check
-% {\csname\??pageadaptations\the\ifcsname\??pageadaptations\the\realpageno\endcsname\realpageno\else\zerocount\fi\endcsname}
-%
-% \def\page_adapts_reset
-% {\ifcsname\??pageadaptations\the\realpageno\endcsname
-% \global\undefinevalue{\??pageadaptations\the\realpageno}%
-% \fi}
+ \glet\page_adapts_push\relax
+ \glet\page_adapts_pop\page_adapts_pop_indeed}
\def\page_adapts_check
{\begincsname\??pageadaptations\the\realpageno\endcsname}
@@ -1053,30 +1142,30 @@
\gletcsname\??pageadaptations\the\realpageno\endcsname\relax
\fi}
-\def\page_adepts_push_indeed
- {\global\d_page_adepts_pushed_text_height \textheight
- \global\d_page_adepts_pushed_footer_height\footerheight}
+\def\page_adapts_push_indeed
+ {\global\d_page_adapts_pushed_text_height \textheight
+ \global\d_page_adapts_pushed_footer_height\footerheight}
-\def\page_adepts_pop_indeed
- {\global\textheight \d_page_adepts_pushed_text_height
- \global\footerheight\d_page_adepts_pushed_footer_height
+\def\page_adapts_pop_indeed
+ {\global\textheight \d_page_adapts_pushed_text_height
+ \global\footerheight\d_page_adapts_pushed_footer_height
\page_layouts_synchronize
- \glet\page_adepts_push\page_adepts_push_indeed
- \glet\page_adepts_pop\relax}
+ \glet\page_adapts_push\page_adapts_push_indeed
+ \glet\page_adapts_pop\relax}
\appendtoks \page_adapts_check \to \everystarttext
\appendtoks \page_adapts_reset \to \everyshipout
-\let\page_adepts_pop \relax
-\let\page_adepts_push\page_adepts_push_indeed
+\let\page_adapts_pop \relax
+\let\page_adapts_push\page_adapts_push_indeed
\protected\def\page_adapts_synchronize % used elsewhere
- {\page_adepts_pop
+ {\page_adapts_pop
\page_adapts_check}
\def\page_adapts_status_info % used elsewhere
- {\ifrelax\page_adepts_pop \else
- \space(adept: \the\d_page_adepts_height)\space
+ {\ifrelax\page_adapts_pop \else
+ \space(adept: \the\d_page_adapts_height)\space
\fi
\the\realpageno}
@@ -1099,10 +1188,10 @@
\let\doifelselayoutsomeline\secondofthreearguments
\fi
-\permanent\def\compensatevsizeheader {\advance\textheight-\dimexpr\headerheight+\headerdistance\relax}
-\permanent\def\compensatevsizefooter {\advance\textheight-\dimexpr\footerheight+\footerdistance\relax}
-\permanent\def\globalcompensatevsizeheader{\global\advance\textheight-\dimexpr\headerheight+\headerdistance\relax}
-\permanent\def\globalcompensatevsizefooter{\global\advance\textheight-\dimexpr\footerheight+\footerdistance\relax}
+\permanent\def\compensatevsizeheader {\advanceby\textheight-\dimexpr\headerheight+\headerdistance\relax}
+\permanent\def\compensatevsizefooter {\advanceby\textheight-\dimexpr\footerheight+\footerdistance\relax}
+\permanent\def\globalcompensatevsizeheader{\global\advanceby\textheight-\dimexpr\headerheight+\headerdistance\relax}
+\permanent\def\globalcompensatevsizefooter{\global\advanceby\textheight-\dimexpr\footerheight+\footerdistance\relax}
\permanent\def\compensatevsizeheaderzero{\headerheight\zeropoint\page_layouts_set_distances}
\permanent\def\compensatevsizefooterzero{\footerheight\zeropoint\page_layouts_set_distances}
@@ -1139,8 +1228,8 @@
\doifelselayoutsomeline\v!header\compensatevsizeheader\compensatevsizeheaderzero
\doifelselayoutsomeline\v!footer\compensatevsizefooter\compensatevsizefooterzero}
-\newdimen\innermakeupwidth % special purpose
-\newdimen\innermakeupmargin % special purpose
+\newdimension\innermakeupwidth % special purpose
+\newdimension\innermakeupmargin % special purpose
\newconditional\innermakeupcompensation \settrue\innermakeupcompensation
@@ -1161,8 +1250,8 @@
\global\innermakeupmargin\m_currentlayout_text_margin\relax
\fi
\scratchdimen\dimexpr\innermakeupmargin+\innermakeupmargin\relax
- \global\advance\innermakeupwidth-\scratchdimen
- \advance\textwidth-\scratchdimen} % local
+ \global\advanceby\innermakeupwidth-\scratchdimen
+ \advanceby\textwidth-\scratchdimen} % local
\permanent\protected\def\calculatehsizes % name will change
{\freezetextwidth
@@ -1220,7 +1309,7 @@
\expandafter\page_layouts_if_odd_else_again
\fi}
-\newdimen\texthoffset
+\newdimension\texthoffset
\permanent\protected\def\settexthoffset % name will change
{\texthoffset\doifbothsides\backspace\backspace{\dimexpr\paperwidth-\backspace-\makeupwidth\relax}}
@@ -1234,13 +1323,16 @@
\aliased\let\doifmarginswapelse\doifelsemarginswap
\protected\def\page_layouts_swap_margins % name will change, frozen?
- {\doifelsemarginswap\relax\page_layouts_swap_margins_indeed}
+ {\doifelsemarginswap\gobbleoneargument\page_layouts_swap_margins_indeed}
-\protected\def\page_layouts_swap_margins_indeed
- {\let\page_layouts_swap_margins \relax % to prevent local swapping
- \let\page_layouts_swap_margins_indeed\relax % to prevent local swapping
+\protected\def\page_layouts_swap_margins_indeed#1%
+ {\let\page_layouts_swap_margins\gobbleoneargument % to prevent local swapping
+ %\writestatus\m!layouts{swapping margins for #1}%
\the\everyswapmargins}
+\permanent\protected\def\swapmargindimensions
+ {\page_layouts_swap_margins\v!page}
+
\permanent\def\rightorleftpageaction
{\ifdoublesided
\expandafter\page_layouts_right_or_left_page_action
@@ -1320,17 +1412,27 @@
%D %showsetup{showgrid}
%D %showsetup{showusage}
-\fetchmodulecommand \showprint \f!page_run
-\fetchmodulecommand \showframe \f!page_run
-\fetchmodulecommand \showlayout \f!page_run
-\fetchmodulecommand \showsetups \f!page_run
-\fetchmodulecommand \showmargins \f!page_run
-\fetchmodulecommand \showgrid \f!page_run
+\fetchmodulecommand \showprint \f!page_run
+\fetchmodulecommand \showframe \f!page_run
+\fetchmodulecommand \showlayout \f!page_run
+\fetchmodulecommand \showsetups \f!page_run
+\fetchmodulecommand \showmargins \f!page_run
+\fetchmodulecommand \showgrid \f!page_run
+\fetchmodulecommand \showcentering\f!page_run
\glet\page_grids_add_to_box\gobbleoneargument
\glet\page_grids_add_to_one\gobbleoneargument
\glet\page_grids_add_to_mix\gobbleoneargument
+%D Play safe:
+
+\appendtoks
+ \ifnum\realpageno>\plusone
+ \page[\v!odd]%
+ \setuplayout
+ \fi
+\to \everysetuppagenumbering
+
%D The default dimensions are quite old and will not change. The funny fractions
%D were introduced when we went from fixed dimensions to relative ones. Since
%D \CONTEXT\ is a dutch package, the dimensions are based on the metric system. The
@@ -1392,8 +1494,9 @@
\c!setups=\systemsetupsprefix\s!default,
\c!clipoffset=\zeropoint,
\c!lines=0,
- \c!paper=, % for foxet
- \c!page=, % for foxet
+ \c!paper=,
+ \c!page=,
+ \c!adaptive=\zeropoint, % new: experiment
\c!columns=\plusone,
\c!columndistance=\zeropoint]
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-lin.mklx b/Master/texmf-dist/tex/context/base/mkxl/page-lin.mklx
index 3b3a3d71b73..71a0e0c6eda 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-lin.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-lin.mklx
@@ -56,7 +56,7 @@
\mutable\let\linenumber\!!zerocount
\newbox \b_page_lines_scratch
-\newcount \c_page_lines_reference
+\newinteger \c_page_lines_reference
\newconstant\c_page_lines_nesting
\newconditional\tracelinenumbering % we keep this for old times sake
@@ -94,9 +94,10 @@
\glet\page_postprocessors_linenumbers_column \page_postprocessors_linenumbers_column_indeed}
\def\page_lines_start_define
- {\setxvalue{\??linenumberinginstance\currentlinenumbering}%
+ {\xdefcsname\??linenumberinginstance\currentlinenumbering\endcsname
{\clf_registerlinenumbering
- continue {\ifnum\c_page_lines_mode=\zerocount\v!yes\else\v!no\fi}%
+ % continue {\ifnum\c_page_lines_mode=\zerocount\v!yes\else\v!no\fi}%
+ continue {\ifzero\c_page_lines_mode\v!yes\else\v!no\fi}%
start \linenumberingparameter\c!start
step \linenumberingparameter\c!step
method {\linenumberingparameter\c!method}%
@@ -107,7 +108,8 @@
{\clf_setuplinenumbering
\csname\??linenumberinginstance\currentlinenumbering\endcsname
{%
- continue {\ifnum\c_page_lines_mode=\zerocount\v!yes\else\v!no\fi}%
+ % continue {\ifnum\c_page_lines_mode=\zerocount\v!yes\else\v!no\fi}%
+ continue {\ifzero\c_page_lines_mode\v!yes\else\v!no\fi}%
}%
\relax}
@@ -116,7 +118,8 @@
\clf_setuplinenumbering
\lastnamedcs
{%
- continue {\ifnum\c_page_lines_mode=\zerocount\v!yes\else\v!no\fi}%
+ % continue {\ifnum\c_page_lines_mode=\zerocount\v!yes\else\v!no\fi}%
+ continue {\ifzero\c_page_lines_mode\v!yes\else\v!no\fi}%
start \linenumberingparameter\c!start
step \linenumberingparameter\c!step
method {\linenumberingparameter\c!method}%
@@ -130,7 +133,7 @@
\protected\def\page_lines_some_reference#1#2#3%
{\dontleavehmode\begingroup
- \global\advance\c_page_lines_reference\plusone
+ \global\advanceby\c_page_lines_reference\plusone
\c_attr_linereference\c_page_lines_reference
#3% todo: #3{#1} as there is no need to pass #1 as part of #3
% for the moment we use a simple system i.e. no prefixes etc .. todo: store as number
@@ -155,8 +158,10 @@
\setnewconstant\c_page_lines_location \plusone % 0=middle, 1=left, 2=right, 3=inner, 4=outer, 5=text, 6=begin, 7=end
\setnewconstant\c_page_lines_alignment\plusfive % 0=middle, 1=left, 2=right, 5=auto
-\newdimen\d_page_lines_width
-\newdimen\d_page_lines_distance
+\newdimension \d_page_lines_width
+\newdimension \d_page_lines_distance
+
+\newinteger \c_pages_lines_nesting
\newevery \beforeeverylinenumbering \relax
\newevery \aftereverylinenumbering \relax
@@ -193,12 +198,10 @@
% \startlinenumbering[<startvalue>|continue|settings|name]
% \startlinenumbering[name][<startvalue>|continue|settings]
-\newcount\c_pages_lines_nesting
-
\permanent\tolerant\protected\def\startlinenumbering[#1]#*[#2]%
{\begingroup
\page_postprocessors_linenumbers_check
- \advance\c_pages_lines_nesting\plusone
+ \advanceby\c_pages_lines_nesting\plusone
\ifnum\c_pages_lines_nesting>\plusone
\expandafter\gobbletwooptionals
\orelse\ifparameter#2\or
@@ -222,17 +225,17 @@
{\edef\m_argument{#1}%
\ifx\m_argument\v!continue
\c_page_lines_mode\zerocount
- \let\currentlinenumbering\empty
+ \lettonothing\currentlinenumbering
\else
\c_page_lines_mode\plusone
\ifx\m_argument\v!empty
- \let\currentlinenumbering\empty
+ \lettonothing\currentlinenumbering
\orelse\ifhastok={#1}%
- \let\currentlinenumbering\empty
+ \lettonothing\currentlinenumbering
\setupcurrentlinenumbering[#1]%
\else
\doifelsenumber\m_argument
- {\let\currentlinenumbering\empty
+ {\lettonothing\currentlinenumbering
\letlinenumberingparameter\c!start\m_argument}
{\let\currentlinenumbering\m_argument}%
\fi
@@ -285,17 +288,17 @@
\ifhmode \else
\ifx\p_location\v!text
\ifdim\leftskip>\zeropoint \else
- \advance\leftskip\linenumberingparameter\c!margin
+ \advanceby\leftskip\linenumberingparameter\c!margin
\settrue\c_page_lines_auto_narrow
\fi
\orelse\ifx\p_location\v!begin
\ifdim\leftskip>\zeropoint \else
- \advance\leftskip\linenumberingparameter\c!margin
+ \advanceby\leftskip\linenumberingparameter\c!margin
\settrue\c_page_lines_auto_narrow
\fi
\orelse\ifx\p_location\v!end
\ifdim\leftskip>\zeropoint \else
- \advance\rightskip\linenumberingparameter\c!margin
+ \advanceby\rightskip\linenumberingparameter\c!margin
\settrue\c_page_lines_auto_narrow
\fi
\fi
@@ -344,7 +347,9 @@
\def\page_lines_add_numbers_to_box#box#column#max#nesting%
{\bgroup
- \strc_tags_enable_indeed
+ \ifconditional\c_strc_tags_enabled
+ \strc_tags_enable_indeed
+ \fi
\b_page_lines_number #box\relax
\c_page_lines_column #column\relax
\c_page_lines_last_column#max\relax
@@ -466,13 +471,13 @@
\dostoptagged}%
\dostoptagged}
-\setuvalue{\??linenumberinghandler\v!left}%
+\protected\defcsname\??linenumberinghandler\v!left\endcsname
{\page_line_handle_left\p_align\leftmarginwidth\leftmargindistance}
-\setuvalue{\??linenumberinghandler\v!right}%
+\protected\defcsname\??linenumberinghandler\v!right\endcsname
{\page_line_handle_right\p_align\rightmarginwidth\rightmargindistance}
-\setuvalue{\??linenumberinghandler\v!inner}%
+\protected\defcsname\??linenumberinghandler\v!inner\endcsname
{\ifodd\realpageno
\ifx\p_align\v!inner
\page_line_handle_left\v!flushleft\leftmarginwidth\leftmargindistance
@@ -491,7 +496,7 @@
\fi
\fi}
-\setuvalue{\??linenumberinghandler\v!outer}%
+\protected\defcsname\??linenumberinghandler\v!outer\endcsname
{\ifodd\realpageno
\ifx\p_align\v!inner
\page_line_handle_right\v!flushleft\leftmarginwidth\leftmargindistance
@@ -572,8 +577,8 @@
\permanent\def\currentreferencelinenumber{\clf_filterreference{linenumber}}
-\let\m_page_lines_from\empty
-\let\m_page_lines_to \empty
+\lettonothing\m_page_lines_from
+\lettonothing\m_page_lines_to
\permanent\protected\def\doifelsesamelinereference#1#2#3%
{\doifelsereferencefound{lr:b:#1}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-mak.mklx b/Master/texmf-dist/tex/context/base/mkxl/page-mak.mklx
index 2a5cd435218..f0d01cc362c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-mak.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-mak.mklx
@@ -184,11 +184,11 @@
\normalexpanded{\setuplayout[\m_page_makeup_name][\s!parent=\??layout]}% is remembered but checked later anyway
\fi}
-\setvalue{\??makeupdoublesided\v!yes}%
+\defcsname\??makeupdoublesided\v!yes\endcsname
{\emptyhbox
\page}
-\setvalue{\??makeupdoublesided\v!empty}%
+\defcsname\??makeupdoublesided\v!empty\endcsname
{\the\t_page_makeup_every_setup
% == \page[\v!dummy]
\page[\v!blank]%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-mbk.mklx b/Master/texmf-dist/tex/context/base/mkxl/page-mbk.mklx
index 05b09c79e87..57c23abc6e3 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-mbk.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-mbk.mklx
@@ -69,6 +69,12 @@
\c!inbetween=\blank,
\c!bottom=\vfill]
+\definesystemconstant{marginblock}
+
+\resetboxesincache \s!marginblock \s!marginblock
+
+\setfalse\c_page_margin_blocks_enabled
+
\permanent\tolerant\protected\def\startmarginblock[#tag]%
{\begingroup
\edef\currentmarginblock{#tag}%
@@ -77,60 +83,45 @@
\page_margin_blocks_start_block_nop}
\permanent\protected\def\stopmarginblock
- {\doifelse{\marginblockparameter\c!state}\v!start
- \page_margin_blocks_stop_block_yes
- \page_margin_blocks_stop_block_nop
+ {\page_margin_blocks_stop_block
\endgroup}
-\def\page_margin_blocks_start_block_yes % 2 maal \vbox ivm \unvbox elders
- {\showmessage\m!layouts4\empty
- \global\settrue\c_page_margin_blocks_present
- \global\setbox\b_page_margin_blocks\vtop\bgroup\vbox\bgroup
- \hsize\marginblockparameter\c!width
- \ifvoid\b_page_margin_blocks\else
- \unvbox\b_page_margin_blocks
- \marginblockparameter\c!inbetween
- \fi
- \usealignparameter\marginblockparameter
- \usemarginblockstyleandcolor\c!style\c!color
- \begstrut
- \ignorespaces}
+\def\page_margin_blocks_start_block_yes
+ {%\showmessage\m!layouts4\empty
+ \global\settrue\c_page_margin_blocks_enabled
+ \dowithnextboxcs
+ \page_margin_blocks_start_block_save
+ \vbox\bgroup
+ \let\page_margin_blocks_stop_block\page_margin_blocks_stop_block_yes
+ \hsize\marginblockparameter\c!width
+ \usealignparameter\marginblockparameter
+ \usemarginblockstyleandcolor\c!style\c!color
+ \begstrut
+ \ignorespaces}
\def\page_margin_blocks_stop_block_yes
{\removeunwantedspaces
\endstrut
- \egroup
\egroup}
+\def\page_margin_blocks_start_block_save
+ {\putboxincache\s!marginblock{+}\nextbox}
+
\def\page_margin_blocks_start_block_nop
- {\showmessage\m!layouts5\empty
+ {%\showmessage\m!layouts5\empty
\marginblockparameter\c!before
\bgroup
+ \let\page_margin_blocks_stop_block\page_margin_blocks_stop_block_nop
\usemarginblockstyleandcolor\c!style\c!color}
\def\page_margin_blocks_stop_block_nop
{\egroup
\marginblockparameter\c!after}
-\def\page_margin_blocks_reshape
- {\ifdim\ht\b_page_margin_blocks_prepared>\zeropoint
- \beginofshapebox
- \unvbox\b_page_margin_blocks_prepared
- \endofshapebox
- \reshapebox
- {\box\shapebox}%
- \setbox\b_page_margin_blocks_prepared\vbox to \textheight
- {\marginblockparameter\c!top
- \flushshapebox
- \marginblockparameter\c!bottom}%
- \fi}
-
\permanent\protected\def\checkmarginblocks
- {\ifvoid\b_page_margin_blocks
- \global\setfalse\c_page_margin_blocks_present
- \else
- \page_margin_blocks_check_indeed
- \fi}
+ {\ifconditional\c_page_margin_blocks_enabled\ifcase\getboxcountfromcache\s!marginblock\else
+ \expandafter\page_margin_blocks_check_indeed
+ \fi\fi}
\def\page_margin_blocks_check_indeed
{\ifcsname\??marginblocklocation\marginblockparameter\c!location\endcsname
@@ -138,39 +129,58 @@
\csname\??marginblocklocation\marginblockparameter\c!location\endcsname
\else
\global\setbox\b_page_margin_blocks\emptybox
- \global\setfalse\c_page_margin_blocks_present
\fi}
\def\page_margin_blocks_prepare_box
- {\setbox\b_page_margin_blocks_prepared\vbox
- {\forgetall
- \splittopskip\topskip
- \ifvoid\b_page_margin_blocks\else
- \ifdim\ht\b_page_margin_blocks>\textheight
- \vsplit\b_page_margin_blocks to \textheight
- \else
- \unvbox\b_page_margin_blocks
- \fi
+ {\begingroup
+ \scratchcounter\zerocount
+ \localcontrolledloop \plusone \getboxcountfromcache\s!marginblock \plusone
+ {\scratchcounter\currentloopiterator
+ \setbox\scratchbox\vbox\bgroup
+ \marginblockparameter\c!top
+ \localcontrolledloop \plusone \scratchcounter \plusone
+ {\ifcase\currentloopiterator\or
+ \marginblockparameter\c!before
+ \else
+ \marginblockparameter\c!inbetween
+ \fi
+ \setbox\scratchbox\emptyvbox
+ \ht\scratchbox\getboxhtfromcache\s!marginblock{\number\currentloopiterator}%
+ \dp\scratchbox\getboxdpfromcache\s!marginblock{\number\currentloopiterator}%
+ \box\scratchbox
+ \marginblockparameter\c!after}%
+ \marginblockparameter\c!bottom
+ \egroup
+ \ifdim\htdp\scratchbox>\textheight
+ \advanceby\scratchcounter\minusone
+ %\writestatus{quit}{\the\scratchcounter=>\the\htdp\scratchbox}
+ \quitloop
+ \else
+ %\writestatus{progress}{\the\htdp\scratchbox}
\fi}%
- \page_margin_blocks_reshape
- \setbox\b_page_margin_blocks_prepared\vbox
- {\marginblockparameter\c!before
- \box\b_page_margin_blocks_prepared
- \marginblockparameter\c!after}}
+ \ifcase\scratchcounter\else
+ \global\setbox\b_page_margin_blocks_prepared\vbox to \textheight\bgroup
+ \marginblockparameter\c!top
+ \localcontrolledloop \plusone \scratchcounter \plusone
+ {\ifcase\currentloopiterator\or
+ \marginblockparameter\c!before
+ \else
+ \marginblockparameter\c!inbetween
+ \fi
+ \getboxfromcache\s!marginblock{\number\currentloopiterator}\scratchbox
+ \box\scratchbox
+ \marginblockparameter\c!after}%
+ \marginblockparameter\c!bottom
+ \egroup
+ \pruneboxesincache\s!marginblock
+ \ifcase\getboxcountfromcache\s!marginblock\relax
+ \global\settrue\c_page_margin_blocks_enabled
+ \fi
+ \fi
+ \endgroup}
% inner outer
-\setvalue{\??marginblocklocation\v!left }{\page_margin_blocks_set_l_box}
-\setvalue{\??marginblocklocation\v!right }{\page_margin_blocks_set_r_box}
-\setvalue{\??marginblocklocation\v!inmargin}{\doifbothsidesoverruled
- \page_margin_blocks_set_r_box
- \page_margin_blocks_set_r_box
- \page_margin_blocks_set_l_box}
-\setvalue{\??marginblocklocation\v!middle }{\doifbothsidesoverruled
- \page_margin_blocks_set_r_box
- \page_margin_blocks_set_l_box
- \page_margin_blocks_set_r_box}
-
\permanent\protected\def\page_margin_blocks_place_r_yes
{\setbox\b_page_margin_blocks_prepared\hbox to \rightmarginwidth
{\marginblockparameter\c!left
@@ -196,6 +206,21 @@
\def\page_margin_blocks_set_r_box{\enforced\aliased\let\placerightmarginblock\page_margin_blocks_place_r_yes}
\def\page_margin_blocks_set_l_box{\enforced\aliased\let\placeleftmarginblock \page_margin_blocks_place_l_yes}
+\letcsname\??marginblocklocation\v!left \endcsname\page_margin_blocks_set_l_box
+\letcsname\??marginblocklocation\v!right\endcsname\page_margin_blocks_set_r_box
+
+\defcsname\??marginblocklocation\v!inmargin\endcsname
+ {\doifbothsidesoverruled
+ \page_margin_blocks_set_r_box
+ \page_margin_blocks_set_r_box
+ \page_margin_blocks_set_l_box}
+
+\defcsname\??marginblocklocation\v!middle\endcsname
+ {\doifbothsidesoverruled
+ \page_margin_blocks_set_r_box
+ \page_margin_blocks_set_l_box
+ \page_margin_blocks_set_r_box}
+
% margin floats (keyword 'margin' in option list)
\protected\def\page_margin_blocks_process_float
@@ -204,40 +229,41 @@
\page_margin_blocks_process_float_nop}
\def\page_margin_blocks_process_float_yes
- {\global\setbox\b_page_margin_blocks\vbox
- {\hsize\marginblockparameter\c!width
- \unvcopy\b_page_margin_blocks
- \ifvoid\b_page_margin_blocks\else
- \expandafter\marginblockparameter\expandafter\c!inbetween
- \fi
- \box\floatbox
- \filbreak}%
- \ifdim\ht\b_page_margin_blocks>\textheight
- % page_floats_report_saved % no saving done anyway
- \else
- \page_floats_report_total
- \fi}
+ {\global\settrue\c_page_margin_blocks_enabled
+ \putboxincache\s!marginblock{+}\floatbox}
\def\page_margin_blocks_process_float_nop
{\handlefloatmethod\v!here}
-\def\page_margin_blocks_float_before
- {\ifconditional\c_page_margin_blocks_enabled
- \doifinset\v!margin\floatlocation\endgraf
- \fi}
-
-\def\page_margin_blocks_float_set_hsize
- {\ifconditional\c_page_margin_blocks_enabled
- \doifinset\v!margin\floatlocation{\hsize\rootmarginblockparameter\c!width}%
- \fi}
-
\appendtoks
- \ifvoid\b_page_margin_blocks \else
+ \ifcase\getboxcountfromcache\s!marginblock\else
\writestatus\m!layouts{beware: there are left-over margin floats!}%
\fi
\to \everystoptext
\permanent\protected\def\flushmarginblocks
- {\page_otr_command_flush_margin_blocks}
+ {\ifconditional\c_page_margin_blocks_enabled
+ \page_otr_command_flush_margin_blocks
+ \fi}
+
+\permanent\tolerant\protected\def\flushallmarginblocks[#1]%
+ {\ifconditional\c_page_margin_blocks_enabled
+ \begingroup
+ \scratchcounterone\getboxcountfromcache\s!marginblock\relax
+ \ifcase\scratchcounterone\else
+ \scratchcountertwo\ifparameter#1\or\numexpr\scratchcounterone-#1+\plusone\relax\else\plusone\fi
+ \localcontrolledloop \scratchcountertwo \scratchcounterone \plusone
+ {\ifcase\currentloopiterator\or
+ \marginblockparameter\c!before
+ \else
+ \marginblockparameter\c!inbetween
+ \fi
+ \getboxfromcache\s!marginblock{\number\currentloopiterator}\scratchbox
+ \box\scratchbox
+ \marginblockparameter\c!after}%
+ \pruneboxesincache\s!marginblock
+ \fi
+ \endgroup
+ \fi}
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-mcl.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-mcl.mkxl
index d36e76d94f4..3faf13db7a1 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-mcl.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-mcl.mkxl
@@ -54,19 +54,19 @@
\installframedcommandhandler \??multicolumns {multicolumns} \??multicolumns
-\newdimen \d_page_mcl_available_width
-\newdimen \d_page_mcl_distance
-\newdimen \d_page_mcl_leftskip
-\newdimen \d_page_mcl_rightskip
-\newdimen \d_page_mcl_used_width
-\newdimen \d_page_mcl_temp
-\newdimen \d_page_mcl_saved_pagetotal % brrr, still needed ?
+\newdimension \d_page_mcl_available_width
+\newdimension \d_page_mcl_distance
+\newdimension \d_page_mcl_leftskip
+\newdimension \d_page_mcl_rightskip
+\newdimension \d_page_mcl_used_width
+\newdimension \d_page_mcl_temp
+\newdimension \d_page_mcl_saved_pagetotal % brrr, still needed ?
-\newcount \c_page_mcl_balance_minimum
-\newcount \c_page_mcl_n_of_lines
+\newinteger \c_page_mcl_balance_minimum
+\newinteger \c_page_mcl_n_of_lines
\newbox \b_page_mcl_preceding
-\newdimen \d_page_mcl_preceding_height
+\newdimension \d_page_mcl_preceding_height
\newconditional\c_page_mcl_preceding_present
\newbox \b_page_mcl_rest_of_page
@@ -85,10 +85,10 @@
\newbox \b_page_mcl_balance_content
\newconstant \c_page_mcl_balance_tries_max
-\newcount \c_page_mcl_balance_tries
-\newdimen \d_page_mcl_balance_target
-\newdimen \d_page_mcl_balance_natural_height
-\newdimen \d_page_mcl_balance_step
+\newinteger \c_page_mcl_balance_tries
+\newdimension \d_page_mcl_balance_target
+\newdimension \d_page_mcl_balance_natural_height
+\newdimension \d_page_mcl_balance_step
\newconditional\c_page_mcl_balance_possible
\c_page_mcl_balance_tries_max 250 % 100 is too small when floats are involved
@@ -125,6 +125,7 @@
\fi \fi
\c_page_mcl_n_of_lines\noflines}
+
% \protected\def\page_mcl_command_set_vsize
% {%%\page_one_command_set_vsize % indeed?
% \page_mcl_set_n_of_lines\zeropoint
@@ -187,7 +188,7 @@
{\scratchdimen\dimexpr
\d_page_mcl_saved_pagetotal
-\d_page_mcl_preceding_height
- -\topskip
+ % -\topskip % no, this is already part of the saved total
\relax
\box\b_page_mcl_preceding
\kern\scratchdimen}
@@ -293,7 +294,7 @@
\settrue\c_page_mcl_balance_possible
\else % check criterium to available lines
\getnoflines{\ht\b_page_mcl_balance_content}%
- \divide\noflines \nofcolumns \relax
+ \divideby\noflines \nofcolumns \relax
\ifnum\noflines<\c_page_mcl_balance_minimum \relax
\ifdim\dimexpr\ht\b_page_mcl_balance_content+\openlineheight\relax>\makeupheight
\settrue\c_page_mcl_balance_possible % column exceeding text height
@@ -325,7 +326,7 @@
\def\page_mcl_balance_try_one
{\d_page_mcl_balance_target\dimexpr\ht\b_page_mcl_balance_content+\topskip-\baselineskip\relax
- \divide\d_page_mcl_balance_target \nofcolumns
+ \divideby\d_page_mcl_balance_target \nofcolumns
\vbadness\plustenthousand
\c_page_mcl_balance_tries\zerocount
\bgroup
@@ -344,18 +345,18 @@
\egroup}
\def\page_mcl_balance_try_one_attempt
- {\advance\c_page_mcl_balance_tries \plusone
+ {\advanceby\c_page_mcl_balance_tries \plusone
\global\setbox\b_page_mcl_rest_of_page\copy\b_page_mcl_balance_content\relax
\dohandleallcolumns{\page_mcl_split_column\b_page_mcl_rest_of_page\d_page_mcl_balance_target}%
\d_page_mcl_balance_natural_height\zeropoint
\dohandleallcolumns\page_mcl_balance_try_one_attempt_step
-\advance\d_page_mcl_balance_natural_height-33\scaledpoint % some slack
+\advanceby\d_page_mcl_balance_natural_height-33\scaledpoint % some slack
\ifnum\c_page_mcl_balance_tries>\c_page_mcl_balance_tries_max\relax
\exitloop
\orelse\ifdim\ht\b_page_mcl_rest_of_page>\zeropoint
- \advance\d_page_mcl_balance_target\d_page_mcl_balance_step\relax
+ \advanceby\d_page_mcl_balance_target\d_page_mcl_balance_step\relax
\orelse\ifdim\d_page_mcl_balance_natural_height>\ht\firstcolumnbox\relax
- \advance\d_page_mcl_balance_target\d_page_mcl_balance_step\relax
+ \advanceby\d_page_mcl_balance_target\d_page_mcl_balance_step\relax
\else
\exitloop
\fi}
@@ -464,7 +465,7 @@
%
\reseteverypar % todo
%
- \ifdim\pagetotal=\zeropoint \else
+ \ifzeropt\pagetotal\else
\verticalstrut
\vskip-\struttotal
\fi
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-mix.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-mix.mkxl
index 433d94ab6bb..3d11794834c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-mix.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-mix.mkxl
@@ -31,9 +31,23 @@
% offsets (inner ones, so we change the hsize ... needed with backgrounds
% when no content we currently loose the page
-% luatex buglet:
+% nasty test case from mailing list (rest issue)
%
-% \ctxlua{tex.setbox("global",0,node.hpack(nodes.pool.glyph("a",font.current())))}\box0
+% \starttext
+% . \blank[32*big]
+% \startitemize
+% \item 0 \startchoice[text] \item 0 \item 0 \item 0 \item 0 \stopchoice
+% \item 0 \startchoice \item 0 \item 0 \item 0 \item 0 \stopchoice
+% \item 0 \startchoice \item 0 \item 0 \item 0 \item 0 \stopchoice
+% \item 0 \startchoice \item 0 \item 0 \item 0 \item 0 \stopchoice
+% \item 0 \startchoice \item 0 \item 0 \item 0 \item 0 \stopchoice
+% \item 0 \startchoice \item 0 \item 0 \item 0 \item 0 \stopchoice
+% \item 0 \startchoice \item 0 \item 0 \item 0 \item 0 \stopchoice \blank[6*big]
+% \item 0 \startchoice \item 0 \item 0 \item 0 \item 0 \stopchoice
+% \item 0 \startchoice \item 0 \item 0 \item 0 \item 0 \stopchoice
+% \item 0 \startchoice \item 0 \item 0 \item 0 \item 0 \stopchoice
+% \stopitemize
+% \stoptext
\registerctxluafile{page-mix}{}
@@ -93,29 +107,29 @@
\appendtoks % could become an option
\ifcstok{\mixedcolumnsparameter\c!define}\v!yes
- \frozen\instance\setuevalue{\e!start\currentmixedcolumns}{\startmixedcolumns[\currentmixedcolumns]}%
- \frozen\instance\setuevalue{\e!stop \currentmixedcolumns}{\stopmixedcolumns}%
+ \frozen\instance\protected\edefcsname\e!start\currentmixedcolumns\endcsname{\startmixedcolumns[\currentmixedcolumns]}%
+ \frozen\instance\protected\edefcsname\e!stop \currentmixedcolumns\endcsname{\stopmixedcolumns}%
\fi
\to \everydefinemixedcolumns
%D In order to avoid a mixup we use quite some local registers.
-\newdimen \d_page_mix_column_width
-\newdimen \d_page_mix_max_height
-\newdimen \d_page_mix_max_width
-\newdimen \d_page_mix_distance
-\newcount \c_page_mix_n_of_columns
-\newdimen \d_page_mix_threshold
-\newdimen \d_page_mix_leftskip
-\newdimen \d_page_mix_rightskip
+\newdimension \d_page_mix_column_width
+\newdimension \d_page_mix_max_height
+\newdimension \d_page_mix_max_width
+\newdimension \d_page_mix_distance
+\newinteger \c_page_mix_n_of_columns
+\newdimension \d_page_mix_threshold
+\newdimension \d_page_mix_leftskip
+\newdimension \d_page_mix_rightskip
-\newdimen \d_page_mix_balance_step
+\newdimension \d_page_mix_balance_step
\setnewconstant\c_page_mix_balance_cycles 500
\setnewconstant\c_page_mix_break_forced -123
\newbox \b_page_mix_preceding
-\newdimen \d_page_mix_preceding_height
+\newdimension \d_page_mix_preceding_height
\newbox \b_page_mix_collected
@@ -248,7 +262,7 @@
\global\setbox\b_page_mix_preceding\vbox % pack ?
{\forgetall
\page_otr_command_flush_top_insertions
- \ifdim\htdp\b_page_mix_preceding=\zeropoint \else
+ \ifzeropt\htdp\b_page_mix_preceding\else
\writestatus\m!columns{preceding error}%
\unvbox\b_page_mix_preceding
\fi
@@ -342,7 +356,7 @@
\installcorenamespace{mixedcolumnsseparator}
\permanent\protected\def\installmixedcolumnseparator#1#2%
- {\setvalue{\??mixedcolumnsseparator#1}{#2}}
+ {\defcsname\??mixedcolumnsseparator#1\endcsname{#2}}
\installmixedcolumnseparator\v!rule
{\vrule
@@ -387,7 +401,7 @@
%D \stopmixedcolumns
%D \stoptyping
-\mutable\let\currentmixedcolumnsmethod\empty
+\mutable\lettonothing\currentmixedcolumnsmethod
\installmacrostack\currentmixedcolumns
\installmacrostack\currentmixedcolumnsmethod
@@ -434,7 +448,7 @@
\def\page_mix_start_columns_b[#1][#2]%
{\ifhastok={#1}%
- \let\currentmixedcolumns\empty
+ \lettonothing\currentmixedcolumns
\page_mix_error_b
\page_mix_start_columns_checked\page_mix_start_columns_b_yes\page_mix_start_columns_b_nop[#1]%
\else
@@ -459,7 +473,7 @@
{\writestatus\m!columns{best use an instance of mixed columns}}
\def\page_mix_start_columns_c[#1][#2]%
- {\let\currentmixedcolumns\empty
+ {\lettonothing\currentmixedcolumns
\page_mix_start_columns_checked
\page_mix_start_columns_c_yes
\page_mix_start_columns_c_nop}
@@ -566,6 +580,7 @@
\d_page_mix_max_width\dimexpr\d_page_mix_max_width-\leftskip-\rightskip\relax
\d_page_mix_leftskip \leftskip
\d_page_mix_rightskip\rightskip
+ % \frozen ?
\leftskip \zeropoint
\rightskip\zeropoint
%
@@ -591,41 +606,43 @@
\useblankparameter \mixedcolumnsparameter
\useprofileparameter\mixedcolumnsparameter % new
%
+ \automigrationmode\zerocount % for now
+ %
\nofcolumns\c_page_mix_n_of_columns} % public
%D The otr method related hooks are defined next:
-% \setvalue{\??mixedcolumnsbefore\s!otr}%
+% \defcsname\??mixedcolumnsbefore\s!otr\endcsname
% {\par
-% \ifdim\pagetotal=\zeropoint \else
+% \ifzeropt\pagetotal\else
% \verticalstrut % probably no longer needed
% \vskip-\struttotal % probably no longer needed
% \fi}
-\newcount\c_page_mix_otr_nesting
+\newinteger\c_page_mix_otr_nesting
-% \setvalue{\??mixedcolumnsbefore\s!otr}%
+% \defcsname\??mixedcolumnsbefore\s!otr\endcsname
% {\par
-% \global\advance\c_page_mix_otr_nesting\plusone
+% \global\advanceby\c_page_mix_otr_nesting\plusone
% \ifcase\c_page_mix_otr_nesting\or
-% \ifdim\pagetotal=\zeropoint \else
+% \ifzeropt\pagetotal\else
% \obeydepth % we could handle this in pre material
% \fi
% \fi}
-\setvalue{\??mixedcolumnsbefore\s!otr}%
+\defcsname\??mixedcolumnsbefore\s!otr\endcsname
{\par
- \global\advance\c_page_mix_otr_nesting\plusone
+ \global\advanceby\c_page_mix_otr_nesting\plusone
\ifcase\c_page_mix_otr_nesting\or
- \ifdim\pagetotal=\zeropoint \else
- % make sure that whitespace an dblanks are done
+ \ifzeropt\pagetotal\else
+ % make sure that whitespace and blanks are done
\strut
\vskip-\lineheight
% no, bad spacing: \obeydepth % we could handle this in pre material
\fi
\fi}
-\setvalue{\??mixedcolumnsstart\s!otr}%
+\defcsname\??mixedcolumnsstart\s!otr\endcsname
{\ifcase\c_page_mix_otr_nesting\or
\scratchwidth\textwidth
\setupoutputroutine[\s!mixedcolumn]%
@@ -651,14 +668,14 @@
\usealignparameter\mixedcolumnsparameter
\usesetupsparameter\mixedcolumnsparameter}
-% \setvalue{\??mixedcolumnsstop\s!otr}%
+% \defcsname\??mixedcolumnsstop\s!otr\endcsname
% {\par
% \ifcase\c_page_mix_otr_nesting\or
% \c_page_mix_routine\c_page_mix_routine_balance
% \page_otr_trigger_output_routine
% \fi}
-\setvalue{\??mixedcolumnsstop\s!otr}%
+\defcsname\??mixedcolumnsstop\s!otr\endcsname
{\par
\ifcase\c_page_mix_otr_nesting\or
\doifelse{\mixedcolumnsparameter\c!balance}\v!yes
@@ -671,13 +688,13 @@
\fi
\fi}
-\setvalue{\??mixedcolumnsafter\s!otr}%
+\defcsname\??mixedcolumnsafter\s!otr\endcsname
{\ifcase\c_page_mix_otr_nesting\or
\prevdepth\strutdp
\page_otr_command_set_vsize
\page_otr_command_set_hsize
\fi
- \global\advance\c_page_mix_otr_nesting\minusone}
+ \global\advanceby\c_page_mix_otr_nesting\minusone}
%D The splitting and therefore balancing is done at the \LUA\ end. This gives
%D more readable code and also makes it easier to deal with insertions like
@@ -711,9 +728,9 @@
\relax
\deadcycles\zerocount}
-\newdimen\mixedcolumnseparatorheight
-\newdimen\mixedcolumnseparatordepth
-\newdimen\mixedcolumnseparatorwidth
+\newdimension\mixedcolumnseparatorheight
+\newdimension\mixedcolumnseparatordepth
+\newdimension\mixedcolumnseparatorwidth
\def\page_mix_routine_package_step
{% needs packaging anyway
@@ -854,7 +871,7 @@
\page_mix_construct_and_shipout\box\b_page_mix_collected\zerocount % three arguments
\setbox\b_page_mix_collected\vpack{\clf_mixflushrest}% we could avoid this
\clf_mixcleanup
- \ifdim\ht\b_page_mix_collected=\zeropoint
+ \ifzeropt\ht\b_page_mix_collected
\exitloop
\fi
\fi}%
@@ -918,10 +935,10 @@
%D Next we define the hooks:
-\letvalue{\??mixedcolumnsbefore\s!box}\donothing
-\letvalue{\??mixedcolumnsafter \s!box}\donothing
+\letcsname\??mixedcolumnsbefore\s!box\endcsname\donothing
+\letcsname\??mixedcolumnsafter \s!box\endcsname\donothing
-\setvalue{\??mixedcolumnsstart\s!box}%
+\defcsname\??mixedcolumnsstart\s!box\endcsname
{\edef\p_page_mix_strut{\mixedcolumnsparameter\c!strut}%
\setbox\b_page_mix_collected\vbox \bgroup
\let\currentoutputroutine\s!mixedcolumn % makes \column work
@@ -934,7 +951,7 @@
\ignorespaces
\fi}
-\setvalue{\??mixedcolumnsstop\s!box}%
+\defcsname\??mixedcolumnsstop\s!box\endcsname
{\ifx\p_page_mix_strut\v!yes
\removeunwantedspaces
\endstrut
@@ -982,7 +999,7 @@
% \setbox\scratchbox\vbox % tricky met objecten ?
% {\blank[\rootfloatparameter\c!spacebefore]
% \snaptogrid\vbox{\vskip\floatheight}}% copy?
-% \advance\dimen0\dimexpr\ht\scratchbox+2\openlineheight+.5\lineheight\relax\relax % needed because goal a bit higher
+% \advanceby\dimen0\dimexpr\ht\scratchbox+2\openlineheight+.5\lineheight\relax\relax % needed because goal a bit higher
% \ifdim\dimen0>\dimen2
% \global\setfalse\c_page_floats_room
% \else
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-mrk.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-mrk.mkxl
index 143fab180e1..597cff17d3b 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-mrk.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-mrk.mkxl
@@ -39,9 +39,9 @@
\newconditional\c_page_marks_add_page_lines
\newconditional\c_page_marks_add_more_number
-\newcount\c_page_marks_max
-\newcount\c_page_marks_nx
-\newcount\c_page_marks_ny
+\newinteger \c_page_marks_max
+\newinteger \c_page_marks_nx
+\newinteger \c_page_marks_ny
\startuniqueMPgraphic{print:color}{w,h,l,o}
loadmodule "crop" ;
@@ -103,7 +103,7 @@
\setbox\scratchbox\hpack \layoutcomponentboxattribute\bgroup
\useMPgraphic
{print:number}%
- {w=\the\scratchwidth ,h=\the\scratchheight,%
+ {w=\the\scratchwidth,h=\the\scratchheight,%
l=\pagecutmarklength,o=\pagecutmarkoffset,%
n=\number\ifcase\arrangeno\realpageno\else\arrangeno\fi}%
\egroup
@@ -143,7 +143,7 @@
\ifconditional\c_page_marks_add_more_number
\page_marks_add_number
\fi
- \global\advance\c_page_marks_max\minusone
+ \global\advanceby\c_page_marks_max\minusone
\ifnum\c_page_marks_max>\zerocount\else
\glet\page_marks_add_more\gobbleoneargument
\glet\page_marks_add_page\gobbleoneargument
@@ -186,41 +186,44 @@
\permanent\protected\def\page_marks_set#1%
{\begincsname\??layoutmarking#1\endcsname}
+\def\page_marks_setup_layout
+ {\setfalse\c_page_marks_add_page_lines
+ \setfalse\c_page_marks_add_more_color
+ \setfalse\c_page_marks_add_more_marking
+ \setfalse\c_page_marks_add_more_lines
+ \setfalse\c_page_marks_add_more_number
+ \global\c_page_marks_max\maxcount
+ \rawprocesscommacommand[\layoutparameter\c!marking]\page_marks_set
+ \ifnum\c_page_marks_max<\maxcount
+ \ifconditional\c_page_marks_add_page_lines \orelse
+ \ifconditional\c_page_marks_add_more_color \orelse
+ \ifconditional\c_page_marks_add_more_marking\orelse
+ \ifconditional\c_page_marks_add_more_lines \orelse
+ \ifconditional\c_page_marks_add_more_number \else
+ \settrue\c_page_marks_add_page_lines
+ \settrue\c_page_marks_add_more_number
+ \fi
+ \fi
+ \ifconditional\c_page_marks_add_page_lines
+ \let\page_marks_add_page\page_marks_add_page_indeed
+ \else
+ \let\page_marks_add_page\gobbleoneargument
+ \fi
+ % we can get a double set of (overlayed) lines .. needs to be redone (too many objects anyway)
+ \ifconditional\c_page_marks_add_more_lines
+ \let\page_marks_add_more\page_marks_add_more_indeed
+ \orelse\ifconditional\c_page_marks_add_more_color
+ \let\page_marks_add_more\page_marks_add_more_indeed
+ \orelse\ifconditional\c_page_marks_add_more_marking
+ \let\page_marks_add_more\page_marks_add_more_indeed
+ \orelse\ifconditional\c_page_marks_add_more_number
+ \let\page_marks_add_more\page_marks_add_more_indeed
+ \else
+ \let\page_marks_add_more\gobbleoneargument
+ \fi}
+
\appendtoks
- \setfalse\c_page_marks_add_page_lines
- \setfalse\c_page_marks_add_more_color
- \setfalse\c_page_marks_add_more_marking
- \setfalse\c_page_marks_add_more_lines
- \setfalse\c_page_marks_add_more_number
- \global\c_page_marks_max\maxcount
- \rawprocesscommacommand[\layoutparameter\c!marking]\page_marks_set
- \ifnum\c_page_marks_max<\maxcount
- \ifconditional\c_page_marks_add_page_lines \orelse
- \ifconditional\c_page_marks_add_more_color \orelse
- \ifconditional\c_page_marks_add_more_marking\orelse
- \ifconditional\c_page_marks_add_more_lines \orelse
- \ifconditional\c_page_marks_add_more_number \else
- \settrue\c_page_marks_add_page_lines
- \settrue\c_page_marks_add_more_number
- \fi
- \fi
- \ifconditional\c_page_marks_add_page_lines
- \let\page_marks_add_page\page_marks_add_page_indeed
- \else
- \let\page_marks_add_page\gobbleoneargument
- \fi
- % we can get a double set of (overlayed) lines .. needs to be redone (too many objects anyway)
- \ifconditional\c_page_marks_add_more_lines
- \let\page_marks_add_more\page_marks_add_more_indeed
- \orelse\ifconditional\c_page_marks_add_more_color
- \let\page_marks_add_more\page_marks_add_more_indeed
- \orelse\ifconditional\c_page_marks_add_more_marking
- \let\page_marks_add_more\page_marks_add_more_indeed
- \orelse\ifconditional\c_page_marks_add_more_number
- \let\page_marks_add_more\page_marks_add_more_indeed
- \else
- \let\page_marks_add_more\gobbleoneargument
- \fi
+ \page_marks_setup_layout
\to \everysetuplayout
\setuplayout
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-not.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-not.mkxl
index 82523cc66a3..a13e4884d40 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-not.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-not.mkxl
@@ -19,7 +19,7 @@
\unprotect
-\newdimen\totalinsertionheight
+\newdimension\totalinsertionheight
\permanent\protected\def\settotalinsertionheight
{\calculatetotalnoteheight
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-one.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-one.mkxl
index 9d0fb2065a2..8571c29829a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-one.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-one.mkxl
@@ -35,6 +35,39 @@
\protected\def\page_one_command_set_float_hsize
{\global\hsize\textwidth}
+%D It's complicated:
+
+\newconditional\c_page_one_set_vsize_tmp
+
+\installtextracker{otr.insertheights}
+ {\settrue\c_page_one_set_vsize_tmp}
+ {\setfalse\c_page_one_set_vsize_tmp}
+
+\def\page_one_command_set_vsize_tmp
+ {\settotalinsertionheight
+ \writestatus
+ {set vsize one}
+ {insert heights=\the\insertheights,
+ total insertion height=\the\totalinsertionheight,
+ delta=\the\dimexpr\insertheights-\totalinsertionheight}%
+ \page_one_command_set_vsize_new}
+
+\def\page_one_command_set_vsize_old
+ {\settotalinsertionheight
+ \pagegoal\dimexpr
+ \vsize
+ -\totalinsertionheight
+ \relax}
+
+\def\page_one_command_set_vsize_new
+ {\pagegoal\dimexpr
+ \vsize
+ -\d_page_floats_inserted_top
+ -\d_page_floats_inserted_bottom
+ -\insertheights
+ \relax
+ }% no: \insertheights\zeropoint}
+
\protected\def\page_one_command_set_vsize
{\ifgridsnapping
\ifcase\layoutlines
@@ -46,15 +79,23 @@
\else
\global\vsize\textheight
\fi
- \global\advance\vsize\d_page_adapts_delta
+ %
+ \ifzeropt\textadaptive\else
+ \global\d_page_adapts_delta\textadaptive
+ \global\pageextragoal-\textadaptive
+ \fi
+ %
+ \global\advanceby\vsize\d_page_adapts_delta
% alternatively we could set it in builders.buildpage_filter
% \ifdim\pagegoal<\maxdimen .. \fi
- \pagegoal\dimexpr
- \vsize
- -\d_page_floats_inserted_top
- -\d_page_floats_inserted_bottom
- -\insertheights
- \relax}
+ % \writestatus{!!!!!!!!}{\the\vsize-> v:\the\pagevsize,g:\the\pagegoal,t:\the\pagetotal,i:\the\insertheights}%
+ \ifconditional\c_page_one_set_vsize_tmp
+ \page_one_command_set_vsize_tmp
+ \orelse\ifzeropt\insertheights
+ \page_one_command_set_vsize_old
+ \else
+ \page_one_command_set_vsize_new
+ \fi}
% 1 = partial page, 2 = whole page, 3 = partial page
@@ -62,7 +103,7 @@
\pushoverloadmode
\setnewconstant\kindofpagetextareas\plustwo % \plusone can become default some day
- \overloaded\mutable\let\kindofpagetextareas\kindofpagetextareas % fo rnow mutable, can become a key/value
+ \overloaded\mutable\let\kindofpagetextareas\kindofpagetextareas % for now mutable, can become a key/value
\popoverloadmode
\def\page_one_registered_text_area_a % two arguments: (un)vbox n
@@ -101,9 +142,9 @@
% \expandafter\firstofoneargument
\fi}
-\newdimen\d_page_one_natural_depth
-\newbox \b_page_one_bottom_notes
-\newbox \b_page_one_contents
+\newdimension\d_page_one_natural_depth
+\newbox \b_page_one_bottom_notes
+\newbox \b_page_one_contents
\let\page_one_command_package_show_state\relax
@@ -111,6 +152,103 @@
%
% we can also have bottom notes on top of bottom insertions
+% \protected\def\page_one_command_package_contents#1#2% \box<n> \unvbox<n> % this one will be redone (checked)
+% {\bgroup
+% \strc_notes_check_if_bottom_present
+% \d_page_one_natural_depth\dp#2\relax
+% % we need to set the height as otherwise the shrink will not kick in so the following
+% % no longer applies:
+% %
+% % \setbox\b_page_one_contents\vbox \ifconditional\c_notes_bottom_present to \textheight \fi
+% %
+% \setbox\b_page_one_contents\vbox to \textheight % probably no pack
+% {\page_otr_command_flush_top_insertions
+% % this is messy ... we will provide a more tight area (no big deal as we can
+% % do that at the lua end)
+% % \parfillskip\zeropoint
+% \page_one_registered_text_area_a#1#2% \unvbox <box>
+% %
+% \ifgridsnapping
+% \unskip % new per 2019-06-18, otherwise weird bottom floats
+% \vkern\dimexpr\openstrutdepth-\d_page_one_natural_depth\relax
+% \prevdepth\openstrutdepth
+% \page_otr_command_flush_bottom_insertions
+% \vfil
+% \orelse\ifcase\bottomraggednessmode
+% % ragged (default)
+% \unskip % new per 2019-06-18, otherwise weird bottom floats
+% \vkern\dimexpr\openstrutdepth-\d_page_one_natural_depth\relax
+% \prevdepth\openstrutdepth
+% % these have whitespace before but we can have some more options
+% % like a \vfill or so
+% \page_otr_command_flush_bottom_insertions
+% \vfil
+% \or
+% % align (normal)
+% \page_otr_command_flush_bottom_insertions
+% \or
+% % baseline
+% \unskip % new per 2019-06-18, otherwise weird bottom floats
+% \vkern\dimexpr\maxdepth-\d_page_one_natural_depth\relax
+% \page_otr_command_flush_bottom_insertions
+% \fi
+% \fakepagenotes}%
+% \page_one_command_package_show_state
+% \ifconditional\c_notes_bottom_present
+% \ifgridsnapping
+% \ifcase\layoutlines
+% \getrawnoflines\textheight
+% \else
+% \noflines\layoutlines
+% \fi
+% \scratchoffset\dimexpr\numexpr\noflines-\plusone\relax\lineheight+\topskip\relax
+% \else
+% \scratchoffset\ht\b_page_one_contents
+% \fi
+% \setbox\b_page_one_bottom_notes\hpack
+% {\lower\scratchoffset\vbox{\placebottomnotes\par\kern\zeropoint}}% kerns makes notes sit on bottom % pack ?
+% \smashbox\b_page_one_bottom_notes
+% \ht\b_page_one_contents\zeropoint
+% \page_one_registered_text_area_b
+% {\vpack to \textheight
+% {\box\b_page_one_contents
+% \box\b_page_one_bottom_notes}}%
+% \else
+% \ht\b_page_one_contents\textheight
+% \page_one_registered_text_area_b
+% {\box\b_page_one_contents}%
+% \fi
+% \egroup}
+
+%D \starttyping
+%D \setuplayout[height=middle] \showframe
+%D
+%D % \markpages[stretch][lines=2] % current page
+%D
+%D \starttext
+%D \brokenpenalty 10000 \clubpenalty 20000 \widowpenalty 20000
+%D \dorecurse{10}{\samplefile{tufte}\par} \page
+%D \startmarkpages[stretch][lines=2]
+%D \dorecurse{10}{\samplefile{tufte}\par} \page
+%D \stopmarkpages
+%D \dorecurse{10}{\samplefile{tufte}\par} \page
+%D \stoptext
+%D \stoptyping
+
+\newinteger\c_page_one_stretch % we use marked pages which actually slow down a little
+
+\def\page_one_check_stretch_contents
+ {\ifdim\dimexpr\textheight-\ht\b_page_one_contents\relax<\c_page_one_stretch\lineheight
+ \setbox\b_page_one_contents\vpack\bgroup
+ % no need to speed up low level
+ \scale[\c!height=\textheight,\c!width=\textwidth]{\box\b_page_one_contents}%
+ \egroup
+ \fi}
+
+\def\page_one_check_stretch_lines
+ {\edef\m_lines{\markedpageparameter\v!stretch\v!lines}%
+ \ifempty\m_lines\else\c_page_one_stretch\m_lines\fi}
+
\protected\def\page_one_command_package_contents#1#2% \box<n> \unvbox<n> % this one will be redone (checked)
{\bgroup
\strc_notes_check_if_bottom_present
@@ -120,11 +258,14 @@
%
% \setbox\b_page_one_contents\vbox \ifconditional\c_notes_bottom_present to \textheight \fi
%
- \setbox\b_page_one_contents\vbox to \textheight % probably no pack
+ \ifconditional\c_notes_bottom_present\else
+ \doifmarkedpage\v!stretch\page_one_check_stretch_lines
+ \fi
+ \setbox\b_page_one_contents\vbox \ifcase\c_page_one_stretch to \textheight\fi % probably no pack
{\page_otr_command_flush_top_insertions
% this is messy ... we will provide a more tight area (no big deal as we can
% do that at the lua end)
-% \parfillskip\zeropoint
+ % \parfillskip\zeropoint
\page_one_registered_text_area_a#1#2% \unvbox <box>
%
\ifgridsnapping
@@ -149,6 +290,7 @@
% baseline
\unskip % new per 2019-06-18, otherwise weird bottom floats
\vkern\dimexpr\maxdepth-\d_page_one_natural_depth\relax
+ % \srule depth \dimexpr\maxdepth-\d_page_one_natural_depth\relax
\page_otr_command_flush_bottom_insertions
\fi
\fakepagenotes}%
@@ -173,6 +315,9 @@
{\box\b_page_one_contents
\box\b_page_one_bottom_notes}}%
\else
+ \ifcase\c_page_one_stretch\else
+ \page_one_check_stretch_contents
+ \fi
\ht\b_page_one_contents\textheight
\page_one_registered_text_area_b
{\box\b_page_one_contents}%
@@ -189,20 +334,20 @@
\newconditional\c_page_one_top_of_insert
\newconditional\c_page_one_correct_top_insert \settrue\c_page_one_correct_top_insert % false moves up (tight)
-\newskip \s_page_one_between_top_insert
+\newgluespec \s_page_one_between_top_insert
\def\page_one_prepare_top_float
- {\ifdim\d_page_floats_inserted_top=\zeropoint
+ {\ifzeropt\d_page_floats_inserted_top
\settrue\c_page_one_top_of_insert
\else
\setfalse\c_page_one_top_of_insert
\fi
\s_page_one_between_top_insert\ifdim\d_strc_floats_top>\d_strc_floats_bottom\d_strc_floats_top\else\d_strc_floats_bottom\fi\relax
- \global\advance\d_page_floats_inserted_top\dimexpr\ht\floatbox+\dp\floatbox+\s_page_one_between_top_insert\relax}
+ \global\advanceby\d_page_floats_inserted_top\dimexpr\ht\floatbox+\dp\floatbox+\s_page_one_between_top_insert\relax}
\def\page_one_insert_top_float % maybe remember last beforeskip
{\floatingpenalty\zerocount
- \insert\namedinsertionnumber\s!topfloat\bgroup
+ \page_inserts_inject\namedinsertionnumber\s!topfloat\bgroup
\forgetall
\ifconditional\c_page_one_top_of_insert
\ifconditional\c_page_one_correct_top_insert
@@ -225,7 +370,7 @@
\noffloatinserts\zerocount
\let\totaltopinserted\!!zeropoint
\page_one_command_set_top_insertions_indeed
- \ifnum\rootfloatparameter\c!nbottom=\zerocount
+ \ifnum\rootfloatparameter\c!nbottom=\zerocount % \ifnum\c_page_floats_n_of_bottom=\zerocount
\ifnum\rootfloatparameter\c!nlines>\zerocount
\ifdim\totaltopinserted>\zeropoint\relax
\ifdim\dimexpr\rootfloatparameter\c!nlines\lineheight+\totaltopinserted\relax>\textheight
@@ -246,7 +391,7 @@
\xdef\totaltopinserted{\the\d_page_floats_inserted_top}%
\page_one_insert_top_float
\ifconditional\c_page_floats_some_waiting
- \advance\noffloatinserts \plusone
+ \advanceby\noffloatinserts \plusone
\else
\noffloatinserts\c_page_floats_n_of_top\relax
\fi
@@ -274,16 +419,16 @@
\def\page_one_command_set_bottom_insertions_indeed
{\ifnum\noffloatinserts<\c_page_floats_n_of_bottom\relax
\page_floats_get
- \global\advance\d_page_floats_inserted_bottom\dimexpr\ht\floatbox+\dp\floatbox+\d_strc_floats_top\relax
+ \global\advanceby\d_page_floats_inserted_bottom\dimexpr\ht\floatbox+\dp\floatbox+\d_strc_floats_top\relax
\ifdim\d_page_floats_inserted_bottom<\pagegoal\relax
\floatingpenalty\zerocount
- \insert\namedinsertionnumber\s!bottomfloat\bgroup
+ \page_inserts_inject\namedinsertionnumber\s!bottomfloat\bgroup
\forgetall
\blank[\rootfloatparameter\c!spacebefore]%
\page_otr_command_flush_float_box
\egroup
\ifconditional\c_page_floats_some_waiting
- \advance\noffloatinserts \plusone
+ \advanceby\noffloatinserts \plusone
\else
\noffloatinserts\c_page_floats_n_of_bottom
\fi
@@ -301,15 +446,25 @@
\fi
\page_one_command_set_bottom_insertions_indeed}
+% \protected\def\page_one_command_flush_top_insertions
+% {\ifzeropt\page_inserts_get_height\namedinsertionnumber\s!topfloat\else
+% \page_one_command_flush_top_insertions_indeed % less tracing
+% \fi
+% \global\d_page_floats_inserted_top\zeropoint}
+
\protected\def\page_one_command_flush_top_insertions
- {\ifvoid\namedinsertionnumber\s!topfloat\else
+ {\ifzeropt\page_inserts_get_height\namedinsertionnumber\s!topfloat\else
\page_one_command_flush_top_insertions_indeed % less tracing
+ \ifcase\bottomraggednessmode\or\else
+ % will be an option
+ \vskip\zeropoint plus \openstrutdepth minus \openstrutdepth
+ \fi
\fi
\global\d_page_floats_inserted_top\zeropoint}
\def\page_one_command_flush_top_insertions_indeed
{\ifgridsnapping
- \box\namedinsertionnumber\s!topfloat
+ \page_inserts_get_boxed\namedinsertionnumber\s!topfloat
\vkern-\topskip
\vkern\strutheight % [xx] new: see icare topbleed
\else
@@ -320,11 +475,11 @@
\vskip-\topskip % skip !
\vkern\strutheight
\fi
- \unvbox\namedinsertionnumber\s!topfloat
+ \page_inserts_get_unboxed\namedinsertionnumber\s!topfloat
\fi}
\protected\def\page_one_command_flush_bottom_insertions
- {\ifvoid\namedinsertionnumber\s!bottomfloat\else
+ {\ifzeropt\page_inserts_get_height\namedinsertionnumber\s!bottomfloat\else
\page_one_command_flush_bottom_insertions_indeed
\fi
\global\d_page_floats_inserted_bottom\zeropoint
@@ -332,13 +487,13 @@
\def\page_one_command_flush_bottom_insertions_indeed
{\ifgridsnapping
- % \floatparameter\c!bottombefore
- \snaptogrid\hbox{\box\namedinsertionnumber\s!bottomfloat}%
- % \floatparameter\c!bottomafter
+ % \rootfloatparameter\c!bottombefore
+ \snaptogrid\hbox{\page_inserts_get_boxed\namedinsertionnumber\s!bottomfloat}%
+ % \rootfloatparameter\c!bottomafter
\else
- \floatparameter\c!bottombefore
- \unvbox\namedinsertionnumber\s!bottomfloat
- \floatparameter\c!bottomafter
+ \rootfloatparameter\c!bottombefore
+ \page_inserts_get_unboxed\namedinsertionnumber\s!bottomfloat
+ \rootfloatparameter\c!bottomafter
\fi}
\protected\def\page_one_command_flush_floats
@@ -403,7 +558,7 @@
\protected\def\page_one_command_flush_margin_blocks
{\ifconditional\c_page_margin_blocks_present % \ifvoid\b_page_margin_blocks \else
- \ifdim\pagetotal=\zeropoint
+ \ifzeropt\pagetotal
\null % \fixedspace
\fi
\page_otr_command_next_page % \page
@@ -440,10 +595,10 @@
\or
% method 1 : safe
% too fuzzy as it can change and for a high page it's a lot : \scratchdimentwo .99\pagegoal
- \advance\scratchdimentwo -\strutdp
+ \advanceby\scratchdimentwo -\strutdp
\or
% method 2 : tight
- \advance\scratchdimenone -\onepoint
+ \advanceby\scratchdimenone -\onepoint
\fi
\relax % really needed ! ! ! !
\ifdim\scratchdimenone>\scratchdimentwo
@@ -476,14 +631,24 @@
% \page_floats_report_total
% \dohandlenextfloatindent}
+% \def\page_one_place_float_here_indeed
+% {\ifgridsnapping
+% % otherwise real bad outcome
+% \else
+% % this was not really applied (delayed)
+% % \baselinecorrection % this has to be done better (and definitely not in column mode)
+% % so we now use this:
+% \checkprevdepth
+% \fi
+% \doplacefloatbox
+% \page_floats_report_total
+% \dohandlenextfloatindent}
+
\def\page_one_place_float_here_indeed
{\ifgridsnapping
% otherwise real bad outcome
\else
- % this was not really applied (delayed)
- % \baselinecorrection % this has to be done better (and definitely not in column mode)
- % so we now use this:
- \checkprevdepth
+ \forcestrutdepth
\fi
\doplacefloatbox
\page_floats_report_total
@@ -633,9 +798,9 @@
\page_floats_report_total}
\def\page_one_place_float_bottom_indeed
- {\global\advance\d_page_floats_inserted_bottom\dimexpr\ht\floatbox+\dp\floatbox+\d_strc_floats_top\relax
+ {\global\advanceby\d_page_floats_inserted_bottom\dimexpr\ht\floatbox+\dp\floatbox+\d_strc_floats_top\relax
\floatingpenalty\zerocount
- \insert\namedinsertionnumber\s!bottomfloat\bgroup
+ \page_inserts_inject\namedinsertionnumber\s!bottomfloat\bgroup
\forgetall
\blank[\rootfloatparameter\c!spacebefore]%
\page_otr_command_flush_float_box
@@ -673,9 +838,6 @@
\endgroup
\fi}
-\protected\def\page_one_command_flush_facing_floats
- {\strc_floats_facing_flush}
-
\defineoutputroutine
[\s!singlecolumn]
[\s!page_otr_command_routine =\page_one_command_routine,
@@ -700,7 +862,6 @@
\s!page_otr_command_flush_all_floats =\page_one_command_flush_all_floats,
\s!page_otr_command_flush_margin_blocks =\page_one_command_flush_margin_blocks,
\s!page_otr_command_test_column =\page_one_command_test_page,
- \s!page_otr_command_flush_facing_floats =\page_one_command_flush_facing_floats
]
% \setupoutputroutine
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-otr.mklx b/Master/texmf-dist/tex/context/base/mkxl/page-otr.mklx
index f2a341d4bc0..d88a16c0604 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-otr.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-otr.mklx
@@ -86,18 +86,17 @@
\let\page_otr_specifics_preset\page_otr_specifics_preset_traced
\to \t_page_otr_tracers
-%D We have a couple of output routines and the default one is
-%D the single column routine. Then there is a multicolumn variant
-%D that can be used mixed, and a columnset variant that is more
-%D exclusive.
+%D We have a couple of output routines and the default one is the single column
+%D routine. Then there is a multicolumn variant that can be used mixed, and a
+%D columnset variant that is more exclusive.
\installcorenamespace{otrtriggers}
\newconstant\c_page_otr_eject_penalty \c_page_otr_eject_penalty -\plustenthousand
\newconstant\c_page_otr_super_penalty \c_page_otr_super_penalty -\plustwentythousand
-\newcount \c_page_otr_trigger_penalty \c_page_otr_trigger_penalty -100010
+\newinteger \c_page_otr_trigger_penalty \c_page_otr_trigger_penalty -100010
-\newcount \c_page_otr_columns % we will share this one
+\newinteger \c_page_otr_columns % we will share this one
\newif \ifinotr % we keep this (name) for old times sake
@@ -136,7 +135,7 @@
\endgroup}
\permanent\protected\def\installoutputroutine#invoke#action% \invoke \action
- {\global\advance\c_page_otr_trigger_penalty\minusone
+ {\global\advanceby\c_page_otr_trigger_penalty\minusone
\frozen\protected\edef#invoke{\page_otr_trigger{\number\c_page_otr_trigger_penalty}}%
\setvalue{\??otrtriggers\number\c_page_otr_trigger_penalty}{#action}}
@@ -176,26 +175,6 @@
#content\relax
\the\everyafteroutput}}
-% Just as fuzzy (and in 'one' we are okay with \aftergroup anyway):
-%
-% \ifdefined\everybeforeoutputgroup \else \newtoks\everybeforeoutputgroup \fi
-% \ifdefined\everyafteroutputgroup \else \newtoks\everyafteroutputgroup \fi
-%
-% \def\page_otr_set_engine_output_routine#content%
-% {\the\everybeforeoutputgroup
-% \global\output
-% {\inotrtrue
-% \the\everybeforeoutput
-% #content\relax
-% \the\everyafteroutput
-% \aftergroup\the\aftergroup\everyafteroutputgroup}}
-%
-% \appendtoks
-% \ifnum\c_page_postponed_mode=\plusone
-% \page_postponed_blocks_flush % and then not in \page_otr_construct_and_shipout
-% \fi
-% \to \everyafteroutputgroup
-
\page_otr_set_engine_output_routine\page_otr_triggered_output_routine
\installoutputroutine\synchronizeoutput % use \triggerpagebuilder instead
@@ -261,16 +240,14 @@
\penalty\c_page_otr_super_penalty
\resetpagebreak}
-%D For those who've read the plain \TEX\ book, we provide the next
-%D macro:
+%D For those who've read the plain \TEX\ book, we provide the next macro:
\permanent\protected\def\bye
{\writestatus\m!system{Sorry, you're not done yet, so no goodbye!}}
-%D We define a few constants because that (1) provides some checking
-%D and (2) is handier when aligning definitions (checks nicer). Most
-%D routines will use ard codes names but sometimes we want to adapt,
-%D which is why we have these:
+%D We define a few constants because that (1) provides some checking and (2) is
+%D handier when aligning definitions (checks nicer). Most routines will use ard
+%D codes names but sometimes we want to adapt, which is why we have these:
\definesystemconstant{page_otr_command_routine}
\definesystemconstant{page_otr_command_package_contents}
@@ -294,7 +271,6 @@
\definesystemconstant{page_otr_command_flush_all_floats}
\definesystemconstant{page_otr_command_flush_margin_blocks}
\definesystemconstant{page_otr_command_test_column}
-\definesystemconstant{page_otr_command_flush_facing_floats}
\definesystemconstant{singlecolumn}
\definesystemconstant{multicolumn} % will move
@@ -323,8 +299,7 @@
\s!page_otr_command_flush_saved_floats,
\s!page_otr_command_flush_all_floats,
\s!page_otr_command_flush_margin_blocks,
- \s!page_otr_command_test_column,
- \s!page_otr_command_flush_facing_floats]
+ \s!page_otr_command_test_column]
\appendtoks
\setupoutputroutine[\s!singlecolumn]%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-par.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-par.mkxl
index c198784dc4d..4cfc3f9bfcb 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-par.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-par.mkxl
@@ -22,7 +22,7 @@
\definecounter[\v!paragraph]
-\permanent\let\showparagraphnumber\relax
+\permanent\lettonothing\showparagraphnumber
\appendtoks
\page_par_check_state
@@ -36,16 +36,16 @@
\lastnamedcs
\fi}
-\setvalue{\??paragraphnumberingvariants\v!start}%
+\defcsname\??paragraphnumberingvariants\v!start\endcsname
{\enforced\let\showparagraphnumber\page_par_show_number_normal}
-\setvalue{\??paragraphnumberingvariants\v!stop}%
- {\enforced\let\showparagraphnumber\relax}
+\defcsname\??paragraphnumberingvariants\v!stop\endcsname
+ {\enforced\lettonothing\showparagraphnumber}
-\setvalue{\??paragraphnumberingvariants\v!line}%
+\defcsname\??paragraphnumberingvariants\v!line\endcsname
{\enforced\let\showparagraphnumber\page_par_show_number_lines}
-\setvalue{\??paragraphnumberingvariants\v!reset}%
+\defcsname\??paragraphnumberingvariants\v!reset\endcsname
{\strc_counters_reset\v!paragraph
\enforced\let\showparagraphnumber\page_par_show_number_normal}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-pcl.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-pcl.mkxl
index 6d186a4cd4c..d6298982c77 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-pcl.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-pcl.mkxl
@@ -30,17 +30,17 @@
\definemeasure[threecolumns][\dimexpr\plusthree\columnwidth+\plustwo \columndistance\relax]
\definemeasure[fourcolumns] [\dimexpr\plusfour \columnwidth+\plusthree\columndistance\relax]
-\newcount \c_page_col_n_of_columns \c_page_col_n_of_columns\plusone
-\newcount \c_page_col_current \c_page_col_current \plusone
-\newdimen \d_page_col_distance
-\newdimen \d_page_col_max_height
-\newdimen \d_page_col_max_width
-%newdimen \d_page_col_balance_step
-\newdimen \d_page_col_column_width
-\newdimen \d_page_col_top_height
-\newdimen \d_page_col_top_width
-\newdimen \d_page_col_available
-\newdimen \d_page_col_sofar
+\newinteger \c_page_col_n_of_columns \c_page_col_n_of_columns\plusone
+\newinteger \c_page_col_current \c_page_col_current \plusone
+\newdimension \d_page_col_distance
+\newdimension \d_page_col_max_height
+\newdimension \d_page_col_max_width
+%newdimension \d_page_col_balance_step
+\newdimension \d_page_col_column_width
+\newdimension \d_page_col_top_height
+\newdimension \d_page_col_top_width
+\newdimension \d_page_col_available
+\newdimension \d_page_col_sofar
\newconditional\c_page_col_page
%D We need to step over empty columns.
@@ -70,7 +70,7 @@
\fi
\page_otr_eject_page
\scratchcounterone\c_page_col_current
- \advance\scratchcounterthree\plusone
+ \advanceby\scratchcounterthree\plusone
\fi
}%
\endgroup}
@@ -100,20 +100,6 @@
%D \unknown
-\protected\def\page_col_command_set_vsize % \page_one_command_set_vsize minus the pagegoal setting
- {\ifgridsnapping
- \ifcase\layoutlines
- \getrawnoflines\textheight
- \else
- \noflines\layoutlines
- \fi
- \global\vsize\noflines\openlineheight
- \else
- \global\vsize\textheight
- \fi}
-
-%D \unknown
-
\def\page_col_registered_text_area_b#1%
{\begingroup
\makeupwidth\d_page_col_column_width
@@ -196,12 +182,12 @@
\protected\def\page_col_command_side_float_output
{% % %
- \ifvoid\namedinsertionnumber\s!topfloat\else
- \scratchwidth\wd\namedinsertionnumber\s!topfloat
+ \ifzeropt\page_inserts_get_height\namedinsertionnumber\s!topfloat\else
+ \scratchwidth\page_inserts_get_width\namedinsertionnumber\s!topfloat\relax
\ifdim\scratchwidth>\d_page_col_top_width
\global\d_page_col_top_width \scratchwidth
\fi
- \global\d_page_col_top_height\ht\namedinsertionnumber\s!topfloat
+ \global\d_page_col_top_height\page_inserts_get_height\namedinsertionnumber\s!topfloat\relax
\fi
% % %
\setbox\scratchbox\vbox\bgroup
@@ -221,7 +207,7 @@
\ifdim\dimexpr\d_page_col_top_width>\d_page_col_sofar\relax
\begingroup
\floatingpenalty\zerocount
- \insert\namedinsertionnumber\s!topfloat\bgroup
+ \page_inserts_inject\namedinsertionnumber\s!topfloat\bgroup
\vbox to \d_page_col_top_height{\vss}
% can be an option
\page_col_command_flush_top_insertions
@@ -231,9 +217,11 @@
\endgroup
\fi
\fi
- \global\advance\c_page_col_current\plusone
+ \global\advanceby\c_page_col_current\plusone
\fi
%
+ \page_col_notes_synchronize
+ %
\page_col_command_set_vsize
\page_col_command_set_hsize}
@@ -241,13 +229,14 @@
\def\page_col_routine_package_step
{% needs packaging anyway
+ \mofcolumns\recurselevel % added
\getboxfromcache{\s!pagecolumn}{\number\recurselevel}\scratchbox
\page_lines_add_numbers_to_box\scratchbox\recurselevel\c_page_col_n_of_columns\plusone % new
\page_marks_synchronize_column\plusone\c_page_col_n_of_columns\recurselevel\scratchbox
% backgrounds
\anch_mark_column_box\scratchbox\recurselevel
- \mixedcolumnseparatorheight\ht\scratchbox
- \mixedcolumnseparatordepth \dp\scratchbox
+ \pagecolumnseparatorheight\ht\scratchbox
+ \pagecolumnseparatordepth \dp\scratchbox
\inheritedpagecolumnsframedbox\recurselevel\scratchbox}
\def\page_col_routine_package
@@ -304,10 +293,10 @@
% % method 0 : raw
% \or
% % method 1 : safe
-% \advance\scratchdimentwo -\strutdp
+% \advanceby\scratchdimentwo -\strutdp
% \or
% % method 2 : tight
-% \advance\scratchdimenone -\onepoint
+% \advanceby\scratchdimenone -\onepoint
% \fi
% \relax % really needed ! ! ! !
% \ifdim\scratchdimenone>\scratchdimentwo
@@ -345,10 +334,10 @@
% method 0 : raw
\or
% method 1 : safe
- \advance\scratchdimentwo -\strutdp
+ \advanceby\scratchdimentwo -\strutdp
\or
% method 2 : tight
- \advance\scratchdimenone -\onepoint
+ \advanceby\scratchdimenone -\onepoint
\fi
\relax % really needed ! ! ! !
\ifdim\scratchdimenone>\scratchdimentwo
@@ -371,7 +360,7 @@
{\ifnum\c_page_col_current=\c_page_col_n_of_columns
\c_page_col_current\plusone
\else
- \advance\c_page_col_current\plusone
+ \advanceby\c_page_col_current\plusone
\fi
\page_col_command_set_hsize
\hsize\d_page_col_available}
@@ -526,7 +515,7 @@
\xdef\totaltopinserted{\the\d_page_floats_inserted_top}%
\page_one_insert_top_float
\ifconditional\c_page_floats_some_waiting
- \advance\noffloatinserts \plusone
+ \advanceby\noffloatinserts \plusone
\else
\noffloatinserts\c_page_floats_n_of_top\relax
\fi
@@ -557,9 +546,9 @@
%D The separator code is more or less the same as mixed columns but we need
%D to compensate for the top floats so we comment a bit for now.
-\newdimen\pagecolumnseparatorheight
-\newdimen\pagecolumnseparatordepth
-\newdimen\pagecolumnseparatorwidth
+\newdimension\pagecolumnseparatorheight
+\newdimension\pagecolumnseparatordepth
+\newdimension\pagecolumnseparatorwidth
% \installcorenamespace{pagecolumnsseparator}
%
@@ -719,8 +708,8 @@
\c!direction=\v!normal]
\appendtoks % could become an option
- \frozen\instance\setuevalue{\e!start\currentpagecolumns}{\startpagecolumns[\currentpagecolumns]}%
- \frozen\instance\setuevalue{\e!stop \currentpagecolumns}{\stoppagecolumns}%
+ \frozen\instance\protected\edefcsname\e!start\currentpagecolumns\endcsname{\startpagecolumns[\currentpagecolumns]}%
+ \frozen\instance\protected\edefcsname\e!stop \currentpagecolumns\endcsname{\stoppagecolumns}%
\to \everydefinepagecolumns
\def\page_col_pickup_preceding
@@ -754,11 +743,52 @@
\endgroup
\fi}
+% \let\page_col_notes_initialize \relax
+% \let\page_col_notes_synchronize\relax
+% \let\page_col_notes_reset \relax
+%
+% \protected\def\page_col_command_set_vsize % \page_one_command_set_vsize minus the pagegoal setting
+% {\ifgridsnapping
+% \ifcase\layoutlines
+% \getrawnoflines\textheight
+% \else
+% \noflines\layoutlines
+% \fi
+% \global\vsize\noflines\openlineheight
+% \else
+% \global\vsize\textheight
+% \fi}
+
+\newconditional\c_page_col_notes_lastcolumn
+
+\def\page_col_notes_synchronize
+ {\insertstoring\zerocount
+ \ifnum\c_page_col_current=\c_page_col_n_of_columns\relax
+ \strc_notes_process\page_col_notes_inject
+ \ifconditional\c_page_col_notes_lastcolumn
+ \insertstoring\plusone
+ \fi
+ \else
+ \strc_notes_process\page_col_notes_delay
+ \ifconditional\c_page_col_notes_lastcolumn
+ \insertstoring\plustwo
+ \fi
+ \fi}
+
+\def\page_col_notes_delay {\setfalse\c_page_col_notes_lastcolumn\ifcstok{\noteparameter\c!location}\v!lastcolumn\settrue\c_page_col_notes_lastcolumn\insertstorage\currentnoteinsertionnumber\plusone \fi}
+\def\page_col_notes_inject{\setfalse\c_page_col_notes_lastcolumn\ifcstok{\noteparameter\c!location}\v!lastcolumn\settrue\c_page_col_notes_lastcolumn\insertstorage\currentnoteinsertionnumber\zerocount\fi}
+
+\def\page_col_notes_initialize {\insertstoring\zerocount\strc_notes_process\page_col_notes_delay}
+\def\page_col_notes_reset {\insertstoring\zerocount\strc_notes_process\page_col_notes_inject}
+
+\protected\def\page_col_command_set_vsize % different !
+ {\page_one_command_set_vsize}
+
\permanent\tolerant\protected\def\startpagecolumns[#1]%
{\begingroup
\begingroup
\doifelseassignment{#1}%
- {\let\currentpagecolumns\empty
+ {\lettonothing\currentpagecolumns
\setuppagecolumns[#1]}%
{\edef\currentpagecolumns{#1}}%
\edef\p_page{\pagecolumnsparameter\c!page}%
@@ -824,6 +854,8 @@
\setupfloats[\c!ntop=\plusthousand]%
% \setupfloats[\c!nbottom=\plusthousand]%
%
+ \page_col_notes_initialize
+ %
\page_col_command_set_vsize
\page_col_command_set_hsize
%
@@ -836,13 +868,14 @@
\enforced\let\stoppagecolumns\page_col_stop_nop}
\protected\def\page_col_stop_yes
- {\column % \page_otr_eject_page
- \page
+ {%\column % \page_otr_eject_page
+ \page % beware for empty pages
\endgroup
% \setupoutputroutine[\s!singlecolumn]%
\page_otr_command_set_vsize
\page_otr_command_set_hsize
\page
+ \page_col_notes_reset
\endgroup}
\protected\def\page_col_stop_nop
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-plg.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-plg.mkxl
index 10cc1447bf0..7671a39c442 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-plg.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-plg.mkxl
@@ -111,6 +111,8 @@
\unprotect
+\startcontextdefinitioncode
+
\installcorenamespace{layoutmakeupalternative}
\def\page_boxes_construct_content_makeup#1#2#3% targetbox flusher box
@@ -196,8 +198,8 @@
% to be done nicely (proper namespacing)
-\setvalue{\??layoutmakeupalternative\v!leftpage }{\csname\??layoutmakeupalternative\v!page\endcsname}
-\setvalue{\??layoutmakeupalternative\v!rightpage}{\csname\??layoutmakeupalternative\v!page\endcsname}
+\defcsname\??layoutmakeupalternative\v!leftpage \endcsname{\csname\??layoutmakeupalternative\v!page\endcsname}
+\defcsname\??layoutmakeupalternative\v!rightpage\endcsname{\csname\??layoutmakeupalternative\v!page\endcsname}
\permanent\protected\def\startpagelayout
{\bgroup
@@ -208,6 +210,8 @@
\def\page_layouts_start_layout[#1]#2\stoppagelayout
{\egroup
- \setvalue{\??layoutmakeupalternative#1}{#2}}
+ \defcsname\??layoutmakeupalternative#1\endcsname{#2}}
+
+\stopcontextdefinitioncode
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-pst.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-pst.mkxl
index 026c64d629e..45d049760fd 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-pst.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-pst.mkxl
@@ -49,17 +49,17 @@
%D and we also can erase buffers easier when we keep a local cache, especially as we
%D can flush per page.
-\newcount \c_page_postponed_blocks_next_page % set at the lua end
+\newinteger \c_page_postponed_blocks_next_page % set at the lua end
\newconditional\c_page_postponed_busy
-\mutable\let\currentpostponedpage\empty
+\mutable\lettonothing\currentpostponedpage
-\permanent\protected\setvalue{\e!start\v!postponing}%
+\permanent\protected\defcsname\e!start\v!postponing\endcsname
{\bgroup
\obeylines
\doifelsenextoptional{\egroup\page_postponed_blocks_start}{\egroup\page_postponed_blocks_start[0]}}
-\permanent\protected\setvalue{\e!stop\v!postponing}%
+\permanent\protected\defcsname\e!stop\v!postponing\endcsname
{\clf_registerpostponedblock{\currentpostponedpage}\relax}
\def\page_postponed_blocks_start[#1]%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-sel.lmt b/Master/texmf-dist/tex/context/base/mkxl/page-sel.lmt
new file mode 100644
index 00000000000..a6ea84f472a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-sel.lmt
@@ -0,0 +1,77 @@
+if not modules then modules = { } end modules ['page-sel'] = {
+ version = 1.001,
+ comment = "companion to page-sel.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--- maybe more will end up here
+
+local addsuffix = file.addsuffix
+local context = context
+
+do
+
+ local sections = { }
+
+ local function sectionpage(filename,reference,what)
+ local filedata = sections[filename]
+ if not filedata then
+ filedata = {
+ data = job.loadother(addsuffix(filename,"tuc")) or false,
+ list = { }
+ }
+ sections[filename] = filedata
+ end
+ local list = filedata.list
+ local entry = list[reference]
+ if not entry then
+ local first = 0
+ local last = 0
+ local data = filedata.data
+ if data then
+ local lists = data.structures.lists.collected
+ local pages = data.structures.pages.collected
+ if lists and pages then
+ for i=1,#lists do
+ local li = lists[i]
+ if li.references.reference == reference then
+ local level = li.metadata.level
+ first = li.references.realpage
+ last = pages[#pages].number
+ for j=i+1,#lists do
+ local lj = lists[j]
+ if lj.metadata.level == level then
+ last = lj.references.realpage - 1
+ break
+ end
+ end
+ end
+ end
+ end
+ end
+ entry = {
+ first = first,
+ last = last,
+ }
+ list[reference] = entry
+ end
+ context(what and entry.first or entry.last)
+ end
+
+ interfaces.implement {
+ name = "firstsectionpage",
+ public = true,
+ arguments = { "optional", "optional", true },
+ actions = sectionpage
+ }
+
+ interfaces.implement {
+ name = "lastsectionpage",
+ public = true,
+ arguments = { "optional", "optional", false },
+ actions = sectionpage
+ }
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-sel.mklx b/Master/texmf-dist/tex/context/base/mkxl/page-sel.mklx
index 1ec1b40e3df..6344a0cc9d4 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-sel.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-sel.mklx
@@ -19,6 +19,10 @@
\unprotect
+\registerctxluafile{page-sel}{autosuffix}
+
+\startcontextdefinitioncode
+
%D One can (mis)use this mechanism to (re)arrange pages of already produced files.
%D
%D \starttyping
@@ -51,7 +55,7 @@
\installsetuponlycommandhandler \??withpages {withpages}
% \installdirectcommandhandler \??withpages {withpages}
-\newcount\c_page_selectors_n
+\newinteger\c_page_selectors_n
\permanent\tolerant\protected\def\insertpages[#filename]#spacer[#emptylist]#spacer[#settings]%
{\doifelseassignment{#emptylist}
@@ -63,9 +67,9 @@
\dontcomplain
\getfiguredimensions[#filename]%
\setupcurrentwithpages
- [\c!width=\zeropoint,%
- \c!n=\noffigurepages,%
- \c!category=,%
+ [\c!width=\zeropoint,
+ \c!n=\noffigurepages,
+ \c!category=,
#settings]%
\global\c_page_selectors_n\directwithpagesparameter\c!n\relax
\scratchwidth\directwithpagesparameter\c!width\relax
@@ -85,9 +89,9 @@
\dontcomplain
\getfiguredimensions[#filename]%
\setupcurrentwithpages
- [\c!width=\zeropoint,%
- \c!n=\noffigurepages,%
- \c!category=,%
+ [\c!width=\zeropoint,
+ \c!n=\noffigurepages,
+ \c!category=,
#settings]%
\global\c_page_selectors_n\directwithpagesparameter\c!n\relax
\scratchwidth\directwithpagesparameter\c!width\relax
@@ -114,7 +118,8 @@
\egroup}
\def\page_selectors_filter_a_page#filename#page%
- {\hpack to \textwidth
+ {%\startpagemakeup
+ \hpack to \textwidth
{\ifdim\scratchwidth>\zeropoint
\rightorleftpageaction{\scratchwidth\zeropoint}{\hfill}%
\fi
@@ -128,17 +133,17 @@
\fi
\hss}%
\wd\scratchbox\zeropoint
- \box\scratchbox}
- \page}
+ \box\scratchbox}%
+ \page}%\stoppagemakeup}
\permanent\tolerant\protected\def\copypages[#filename]#spacer[#settings]#spacer[#figuresettings]%
{\bgroup
\getfiguredimensions[#filename]%
\setupcurrentwithpages
- [\c!marking=\v!off,%
- \c!offset=\zeropoint,%
- \c!n=\noffigurepages,%
- \c!category=,%
+ [\c!marking=\v!off,
+ \c!offset=\zeropoint,
+ \c!n=\noffigurepages,
+ \c!category=,
#settings]%
\global\c_page_selectors_n\directwithpagesparameter\c!n\relax
\scratchoffset\directwithpagesparameter\c!offset\relax
@@ -148,8 +153,8 @@
\centeredbox
{\doifelse{\directwithpagesparameter\c!marking}\v!on\cuthbox\hpack % only place where cuthbox is used
{\ifdim\scratchoffset>\zeropoint\relax
- \advance\vsize -2\scratchoffset
- \advance\hsize -2\scratchoffset
+ \advanceby\vsize -2\scratchoffset
+ \advanceby\hsize -2\scratchoffset
\externalfigure[#filename][\c!page=\recurselevel,#figuresettings,\c!scale=,\c!factor=\v!max,\c!offset=\v!overlay]%
\else
\externalfigure[#filename][\c!page=\recurselevel,#figuresettings,\c!offset=\v!overlay]%
@@ -211,7 +216,7 @@
\directwithpagesparameter\c!after
\egroup}
-\setvalue{\??combinepagesalternative\v!a}% use hpacks
+\defcsname\??combinepagesalternative\v!a\endcsname % use hpacks
{\global\combinedpagescounter\directwithpagesparameter\c!start\relax
\doloop
{\vbox to \textheight
@@ -236,9 +241,9 @@
\c!backgroundcolor=\directwithpagesparameter\c!backgroundcolor,
\c!frame=\directwithpagesparameter\c!frame]%
\fi
- \directwithpagesparameter\c!right}
+ \directwithpagesparameter\c!right}%
\directwithpagesparameter\c!bottom}%
- \global\advance\combinedpagescounter\plusone
+ \global\advanceby\combinedpagescounter\plusone
\hfil}%
\hfilneg}
\vfil}%
@@ -248,7 +253,7 @@
\exitloop
\fi}}
-\setvalue{\??combinepagesalternative\v!c}%
+\defcsname\??combinepagesalternative\v!c\endcsname
{\global\combinedpagescounter\directwithpagesparameter\c!start\relax
\doloop
{\vbox to \textheight
@@ -275,7 +280,7 @@
\c!backgroundcolor=\directwithpagesparameter\c!backgroundcolor,
\c!frame=\directwithpagesparameter\c!frame]%
\fi}}
- \global\advance\combinedpagescounter\plusone
+ \global\advanceby\combinedpagescounter\plusone
\directwithpagesparameter\c!bottom}}%
\hfil}%
\hfilneg}}%
@@ -287,13 +292,13 @@
\letcsname\??combinepagesalternative\v!horizontal\expandafter\endcsname\csname\??combinepagesalternative\v!a\endcsname
\letcsname\??combinepagesalternative\v!vertical \expandafter\endcsname\csname\??combinepagesalternative\v!c\endcsname
-\setvalue{\??combinepagesalternative\v!b}%
+\defcsname\??combinepagesalternative\v!b\endcsname
{\global\combinedpagescounter\directwithpagesparameter\c!start\relax
\doloop
{\startbaselinecorrection
\hbox to \textwidth
{\dorecurse\scratchnx
- {\global\advance\combinedpagescounter\plusone
+ {\global\advanceby\combinedpagescounter\plusone
\ifnum\combinedpagescounter>\c_page_selectors_n \else
\normalexpanded{\externalfigure
[\directwithpagesparameter\c!name]
@@ -331,20 +336,23 @@
\glet\slicedpagenumber\!!zerocount
\getfiguredimensions[#filename]%
\setupcurrentwithpages
- [\c!offset=\zeropoint,%
- \c!hoffset=\zeropoint,%
+ [\c!offset=\zeropoint,
+ \c!hoffset=\zeropoint,
\c!voffset=\zeropoint,
- \c!width=\figurewidth,%
- \c!height=\figureheight,%
- \c!n=\noffigurepages,%
- \c!category=,%
+ \c!width=\figurewidth,
+ \c!height=\figureheight,
+ \c!n=\noffigurepages,
+ \c!category=,
#oddsettings]%
\global\c_page_selectors_n\directwithpagesparameter\c!n\relax
\ifnum\c_page_selectors_n>\zerocount
\definepapersize
- [\s!dummy][\c!height=\directwithpagesparameter\c!height,\c!width=\directwithpagesparameter\c!width]%
+ [\s!dummy]
+ [\c!height=\directwithpagesparameter\c!height,
+ \c!width=\directwithpagesparameter\c!width]%
\setuppapersize
- [\s!dummy][\s!dummy]%
+ [\s!dummy]
+ [\s!dummy]%
\setuplayout
[\c!backspace=\zeropoint,\c!topspace=\zeropoint,
\c!height=\v!middle,\c!width=\v!middle,
@@ -359,9 +367,9 @@
\dorecurse\c_page_selectors_n
{\let\slicedpagestepy\recurselevel
\clip
- [\c!nx=\c_page_selectors_n,\c!ny=\c_page_selectors_n,\c!x=\slicedpagestepx,\c!y=\slicedpagestepy]
+ [\c!nx=\c_page_selectors_n,\c!ny=\c_page_selectors_n,\c!x=\slicedpagestepx,\c!y=\slicedpagestepy]%
{\scale
- [\c!scale=\number\c_page_selectors_n000]
+ [\c!scale=\number\c_page_selectors_n000]%
{\externalfigure[#filename][\c!page=\slicedpagenumber]}}%
\page}}%
\else
@@ -384,21 +392,21 @@
\permanent\protected\def\trimpages[#1]% was for a over decade in p-pdf-51.tex
{\begingroup
\getdummyparameters
- [\c!file=dummy,
+ [\c!file=dummy,%
\c!hoffset=\zeropoint,
\c!voffset=\zeropoint,
\c!width=17cm,
\c!height=24cm,
\c!x=\zeropoint,
\c!y=\zeropoint,
- #1]
+ #1]%
\getfiguredimensions
[\dummyparameter\c!file]
- [\c!object=\v!no]
+ [\c!object=\v!no]%
\dorecurse\noffigurepages
{\scale
[\c!width=\paperwidth,
- \c!height=\paperheight]
+ \c!height=\paperheight]%
{\offset
[\c!x=\dummyparameter\c!x,
\c!y=\dummyparameter\c!y]
@@ -417,4 +425,40 @@
\fi}}}}%
\endgroup}
+\stopcontextdefinitioncode
+
+%D Implemented in Lua:
+
+% crap.tex:
+%
+% \starttext
+% \dorecurse{10}{
+% \startchapter[title=Chapter #1,reference=chapter:#1]
+% \dorecurse{10}{
+% \startsubject[title=Subject #1]
+% \dorecurse{2}{\samplefile{tufte}\par}
+% \stopsubject
+% \startsection[title=Section #1.##1,reference=#1.##1]
+% \dorecurse{10}{\samplefile{tufte}\par}
+% \stopsection
+% }
+% \stopchapter
+% }
+% \stoptext
+%
+% load.tex:
+%
+% \starttext
+% \dostepwiserecurse {\firstsectionpage[crap][chapter:3]} {\lastsectionpage[crap][chapter:3]} {1} {
+% \startpagemakeup
+% \externalfigure[crap.pdf][page=#1]
+% \stoppagemakeup
+% }
+% \dostepwiserecurse {\firstsectionpage[crap][chapter:5]} {\lastsectionpage[crap][chapter:5]} {1} {
+% \dontleavehmode
+% \externalfigure[crap.pdf][page=#1,width=3cm,frame=on]%
+% \space\allowbreak
+% }
+% \stoptext
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-sid.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-sid.mkxl
index 3c1f1f7beea..13131fa8d9b 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-sid.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-sid.mkxl
@@ -32,46 +32,50 @@
%D Earth, sophisticated Massive Attack video clips, impressive Davie504 movies
%D and so on).
-\newdimen \d_page_sides_margin
-\newdimen \d_page_sides_height % includes the topskip
-\newdimen \d_page_sides_width
-\newdimen \d_page_sides_hsize
-\newdimen \d_page_sides_vsize
-\newdimen \d_page_sides_vsize_reset
-\newdimen \d_page_sides_progress
-\newdimen \d_page_sides_page_total
-
-\newdimen \d_page_sides_leftoffset
-\newdimen \d_page_sides_rightoffset
+\newdimension \d_page_sides_margin
+\newdimension \d_page_sides_height % includes the topskip
+\newdimension \d_page_sides_width
+\newdimension \d_page_sides_hsize
+\newdimension \d_page_sides_vsize
+\newdimension \d_page_sides_vsize_reset
+\newdimension \d_page_sides_progress
+\newdimension \d_page_sides_page_total
+\newdimension \d_page_sides_shape_down_shift
+
+\newdimension \d_page_sides_leftoffset
+\newdimension \d_page_sides_rightoffset
%newbox \b_page_sides_bottom
+\newbox \b_page_sides_spill_over
-\newcount \c_page_sides_lines_done
-\newcount \c_page_sides_checks_done
-\newcount \c_page_sides_n_of_lines
-\newcount \c_page_sides_n_of_hang
+\newinteger \c_page_sides_lines_done
+\newinteger \c_page_sides_checks_done
+\newinteger \c_page_sides_n_of_lines
+\newinteger \c_page_sides_n_of_hang
\newconstant \c_page_sides_float_type
-\newcount \c_page_sides_hangafter
+\newinteger \c_page_sides_hangafter
\newconditional \c_page_sides_short
\newconditional \c_page_sides_flag
-
-\newdimen \d_page_sides_shift
-\newdimen \d_page_sides_extrashift
-\newdimen \d_page_sides_leftshift
-\newdimen \d_page_sides_rightshift
-\newdimen \d_page_sides_leftskip
-\newdimen \d_page_sides_rightskip
-\newdimen \d_page_sides_maximum
-\newdimen \d_page_sides_topskip
-\newdimen \d_page_sides_bottomskip
-\newdimen \d_page_sides_midskip
-\newdimen \d_page_sides_downshift
-\newdimen \d_page_sides_pagetotal
-\newdimen \d_page_sides_topoffset
-\newdimen \d_page_sides_bottomoffset
-\newdimen \d_page_sides_toptotal
-\newdimen \d_page_sides_bottomtotal
+\newconditional \c_page_sides_shape_down
+\newconditional \c_page_sides_keep_together
+
+\newdimension \d_page_sides_shift
+\newdimension \d_page_sides_extrashift
+\newdimension \d_page_sides_leftshift
+\newdimension \d_page_sides_rightshift
+\newdimension \d_page_sides_leftskip
+\newdimension \d_page_sides_rightskip
+\newdimension \d_page_sides_maximum
+\newdimension \d_page_sides_topskip
+\newdimension \d_page_sides_bottomskip
+\newdimension \d_page_sides_midskip
+\newdimension \d_page_sides_downshift
+\newdimension \d_page_sides_pagetotal
+\newdimension \d_page_sides_topoffset
+\newdimension \d_page_sides_bottomoffset
+\newdimension \d_page_sides_toptotal
+\newdimension \d_page_sides_bottomtotal
\newconstant \c_page_sides_align
\newconstant \c_page_sides_skipmode
@@ -79,12 +83,12 @@
\newconstant \c_page_sides_method % sort of obsolete
-\newdimen \d_page_sides_progression
+\newdimension \d_page_sides_progression
-\newcount \c_page_sides_m_of_lines
+\newinteger \c_page_sides_m_of_lines
\newconditional \c_page_sides_delayed
-\newconditional \c_page_sides_check_same_page
+%newconditional \c_page_sides_check_same_page
\newif \iftracesidefloats % public (might change)
@@ -168,12 +172,12 @@
% cutspace
\fi
\fi
- \ifdim\d_page_sides_shift=\zeropoint \relax
+ \ifzeropt\d_page_sides_shift
\ifnum\c_page_sides_float_type=\plusfour
- \global\advance\d_page_sides_shift\d_page_sides_extrashift
+ \global\advanceby\d_page_sides_shift\d_page_sides_extrashift
\global\d_page_sides_extrashift\zeropoint
\orelse\ifnum\c_page_sides_float_type=\plusfive
- \global\advance\d_page_sides_shift\d_page_sides_extrashift
+ \global\advanceby\d_page_sides_shift\d_page_sides_extrashift
\global\d_page_sides_extrashift\zeropoint
\fi
\else
@@ -228,10 +232,10 @@
\global\d_page_sides_leftoffset \d_page_sides_rightskip
\global\d_page_sides_rightoffset\d_page_sides_leftskip
\ifdim\d_page_sides_rightskip>\zeropoint
- \global\advance\d_page_sides_rightskip\rightskip
+ \global\advanceby\d_page_sides_rightskip\rightskip
\fi
\ifdim\d_page_sides_leftskip >\zeropoint
- \global\advance\d_page_sides_leftskip \leftskip
+ \global\advanceby\d_page_sides_leftskip \leftskip
\fi}
%D Shifts get applied to the float box:
@@ -292,7 +296,7 @@
\box\floatbox
% somehow we need this \scratchbox magic, but at least it's the same as the
% tracer now
- \setbox\scratchbox\emptybox
+ \setbox\scratchbox\emptyhbox
\wd\scratchbox\hsize
\ht\scratchbox\d_page_sides_bottomtotal
\box\scratchbox
@@ -327,10 +331,11 @@
\getnoflines{\ht\floatbox}%
\privatescratchdimen\dimexpr\noflines\lineheight-\strutdp\relax
\getrawnoflines\d_page_sides_toptotal
- \advance\privatescratchdimen\noflines\lineheight
+ \advanceby\privatescratchdimen\noflines\lineheight
\page_sides_force_depth
\ht\floatbox\privatescratchdimen
\dp\floatbox\zeropoint
+ \else
\fi
\ifcase\c_page_sides_align \else
\global\d_page_sides_toptotal\zeropoint
@@ -346,22 +351,31 @@
% the top of the box is at the previous baseline
\ifcase\c_page_sides_align
% 0 normal
- \advance\privatescratchdimen\strutdp % or \openstrutdepth
+ \advanceby\privatescratchdimen\strutdp % or \openstrutdepth
\or % 1 height
- \advance\privatescratchdimen\strutdp % or \openstrutdepth
+ \advanceby\privatescratchdimen\strutdp % or \openstrutdepth
\or % 2 line
\or % 3 depth
- \advance\privatescratchdimen\lineheight % or \openlineheight
- \advance\privatescratchdimen\strutdp % or \openstrutdepth
+ \advanceby\privatescratchdimen\lineheight % or \openlineheight
+ \advanceby\privatescratchdimen\strutdp % or \openstrutdepth
\or % 4 grid
\privatescratchdimen\zeropoint
\or
- \advance\privatescratchdimen\strutht % or \openstrutheight
+ \advanceby\privatescratchdimen\strutht % or \openstrutheight
\fi
% new
\global\c_page_sides_lines_done\zerocount
- \ifnum\c_page_sides_n_of_lines>\zerocount
- \advance\privatescratchdimen\c_page_sides_n_of_lines\lineheight
+ \ifconditional\c_page_sides_shape_down
+ \global\d_page_sides_shape_down_shift\dimexpr
+ \privatescratchdimen
+ +\htdp\floatbox
+% -\lineheight
+ \relax
+ \advanceby\privatescratchdimen\c_page_sides_n_of_lines\lineheight
+\advanceby\privatescratchdimen2\lineheight
+ \else
+ \global\d_page_sides_shape_down_shift\zeropoint
+ \advanceby\privatescratchdimen\c_page_sides_n_of_lines\lineheight
\fi
\iftracesidefloats
\page_sides_apply_vertical_shift_traced % uses \privatescratchdimen
@@ -397,27 +411,56 @@
%D preceding material has more depth than that already. This way anchoring
%D becomes predictable.
+% \protected\def\page_sides_force_depth
+% {\iftracesidefloats
+% \begingroup
+% \c_page_force_strut_depth_trace_mode\plusone
+% \ifconditional\c_page_sides_check_same_page
+% \forcestrutdepthplus
+% \else
+% \forcestrutdepth
+% \fi
+% \endgroup
+% \else
+% \ifconditional\c_page_sides_check_same_page
+% \forcestrutdepthplus
+% \else
+% \forcestrutdepth
+% \fi
+% \fi
+% \page_otr_command_set_vsize} % new
+
+% test case:
+%
+% \starttext
+% \strut\vskip180mm \input ward
+% \subject{Test}
+% \placefigure[right,none]{none}{\blackrule[width=4cm,height=3cm]} test
+% \stoptext
+
\protected\def\page_sides_force_depth
{\iftracesidefloats
- \begingroup
- \c_page_force_strut_depth_trace_mode\plusone
- \ifconditional\c_page_sides_check_same_page
- \forcestrutdepthplus
- \else
- \forcestrutdepth
- \fi
- \endgroup
+ \enabletrackers[otr.forcestrutdepth]% \c_page_force_strut_depth_trace_mode\plusone
+ \fi
+ % \unless\ifvmode
+ % \writestatus{side floats}{confusion}
+ % \fi
+ % flush what we have and check
+ \forcestrutdepth
+ % trigger pagebuilder, \pageboundary gives nicer tracing
+ \iffalse
+ \penalty\zerocount % works too
\else
- \ifconditional\c_page_sides_check_same_page
- \forcestrutdepthplus
- \else
- \forcestrutdepth
- \fi
+ %\tracingpages\plusone \tracingonline\plustwo
+ \pageboundary\plustenthousand % becomes a penalty (after triggering the callback) (experimental!)
+ %\tracingpages\zerocount
\fi
- \page_otr_command_set_vsize} % new
+ \page_otr_command_set_vsize} % new, no longer really needed
\def\page_sides_flush_floats
- {\par
+ {\ifconditional\c_page_sides_shape_down\else
+ \par
+ \fi
\ifdim\d_page_sides_flush_criterium>\zeropoint
\page_sides_flush_floats_progress
\page_sides_flush_floats_after_next
@@ -472,10 +515,10 @@
\installcorenamespace{sidefloatsteps}
-\setvalue{\??sidefloatsteps\v!line }{\strut}
-\setvalue{\??sidefloatsteps\v!big }{\strut}
-\setvalue{\??sidefloatsteps\v!medium}{\halflinestrut} % was \halfstrut
-\setvalue{\??sidefloatsteps\v!small }{\noheightstrut} % was \quarterstrut
+\defcsname\??sidefloatsteps\v!line \endcsname{\strut}
+\defcsname\??sidefloatsteps\v!big \endcsname{\strut}
+\defcsname\??sidefloatsteps\v!medium\endcsname{\halflinestrut} % was \halfstrut
+\defcsname\??sidefloatsteps\v!small \endcsname{\noheightstrut} % was \quarterstrut
\def\page_sides_flush_floats_tracer
{\dontleavehmode
@@ -491,7 +534,7 @@
\egroup}}
\def\page_sides_flush_floats_normal
- {\ifdim\scratchdimen>\htdp\strutbox
+ {\ifdim\scratchdimen>\struthtdp
\strut
\else
\m_pages_strut
@@ -623,15 +666,19 @@
\def\page_sides_place_float
{\ifnum\c_page_sides_float_type=\plusfour \kern\d_page_sides_toptotal \fi
\ifnum\c_page_sides_float_type=\plusfive \kern\d_page_sides_toptotal \fi
- \ifgridsnapping
- \page_sides_place_float_grid
- \else
+ \ifconditional\c_page_sides_shape_down
\page_sides_place_float_normal
- \fi
- \par
- \kern-\d_page_sides_height
- \penalty10001 % oeps, this will change
- \normalbaselines}
+ \else
+ \ifgridsnapping
+ \page_sides_place_float_grid
+ \else
+ \page_sides_place_float_normal
+ \fi
+ \par
+ \kern-\d_page_sides_height
+ \penalty10001 % oeps, this will change
+ \normalbaselines
+ \fi}
\def\page_sides_place_float_normal
{\page_sides_push_float_inline\firstofoneargument}
@@ -653,17 +700,39 @@
\let\strc_floats_mark_par_as_free\relax
-\def\page_sides_push_float_inline#1%
- {\begingroup
- \reseteverypar % needed !
- \parskip\zeropoint % needed !
- \nointerlineskip
- \page_sides_set_skips
- \page_floats_report_total
- \relax
- \lefttoright
- \strc_floats_mark_par_as_free
- \ifcase\c_page_sides_float_type
+% \def\page_sides_push_float_inline#1%
+% {\begingroup
+% \reseteverypar % needed !
+% \parskip\zeropoint % needed !
+% \nointerlineskip
+% \page_sides_set_skips
+% \page_floats_report_total
+% \relax
+% %\lefttoright % not needed in lmtx
+% \strc_floats_mark_par_as_free
+% \ifcase\c_page_sides_float_type
+% % invalid
+% \or % backspace
+% \noindent#1{\llap{\rlap{\box\floatbox}\kern\d_page_sides_leftskip}}\hfill
+% \or % leftedge
+% \noindent#1{\llap{\box\floatbox\kern\d_page_sides_leftskip}}\hfill
+% \or % leftmargin
+% \noindent#1{\llap{\box\floatbox\kern\d_page_sides_leftskip}}\hfill
+% \or % leftside
+% \noindent#1{\box\floatbox}\hfill
+% \or % rightside
+% \hfill#1{\box\floatbox}%
+% \or % rightmargin
+% \hfill#1{\rlap{\kern\d_page_sides_rightskip\box\floatbox}}%
+% \or % rightedge
+% \hfill#1{\rlap{\kern\d_page_sides_rightskip\box\floatbox}}%
+% \or % cutspace
+% \hfill#1{\rlap{\kern\d_page_sides_rightskip\llap{\box\floatbox}}}%
+% \fi
+% \endgroup}
+
+\def\page_sides_push_float_inline_indeed#1%
+ {\ifcase\c_page_sides_float_type
% invalid
\or % backspace
\noindent#1{\llap{\rlap{\box\floatbox}\kern\d_page_sides_leftskip}}\hfill
@@ -681,16 +750,36 @@
\hfill#1{\rlap{\kern\d_page_sides_rightskip\box\floatbox}}%
\or % cutspace
\hfill#1{\rlap{\kern\d_page_sides_rightskip\llap{\box\floatbox}}}%
- \fi
- \endgroup}
+ \fi}
+
+\def\page_sides_push_float_inline#1%
+ {\ifconditional\c_page_sides_shape_down
+ \page_sides_set_skips
+ \page_floats_report_total
+ \global\setbox\floatbox\hbox to \hsize\bgroup
+ \page_sides_push_float_inline_indeed#1%
+ \egroup
+ \else
+ \begingroup
+ \reseteverypar % needed !
+ \parskip\zeropoint % needed !
+ \nointerlineskip
+ \page_sides_set_skips
+ \page_floats_report_total
+ \relax
+ %\lefttoright % not needed in lmtx
+ \strc_floats_mark_par_as_free
+ \page_sides_push_float_inline_indeed#1%
+ \endgroup
+ \fi}
% \def\page_sides_analyse_progress
% {\d_page_sides_progress\d_page_sides_vsize
% \ifconditional\c_page_sides_flag
-% \advance\d_page_sides_progress-\d_page_sides_page_total
+% \advanceby\d_page_sides_progress-\d_page_sides_page_total
% \global\setfalse\c_page_sides_flag
% \else
-% \advance\d_page_sides_progress-\pagetotal
+% \advanceby\d_page_sides_progress-\pagetotal
% \fi}
% test case
@@ -711,7 +800,7 @@
{%\page_otr_command_set_vsize % this is new, otherwise topfloats are not taken into account
\d_page_sides_progress\d_page_sides_vsize
\ifconditional\c_page_sides_flag
- \advance\d_page_sides_progress-\d_page_sides_page_total
+ \advanceby\d_page_sides_progress-\d_page_sides_page_total
\global\setfalse\c_page_sides_flag
\else
\ifdim\dimexpr\d_page_sides_progress+\d_page_sides_bottomtotal\relax>\pagegoal
@@ -719,7 +808,7 @@
% everypar and we hope that it triggers a flush, see test above
\pagegoal\dimexpr\pagegoal-\d_page_sides_bottomtotal\relax
\fi
- \advance\d_page_sides_progress-\pagetotal
+ \advanceby\d_page_sides_progress-\pagetotal
\fi}
\def\page_sides_analyse_space_stage_one
@@ -727,7 +816,7 @@
% \ifdim\pagegoal=\maxdimen
% \pagegoal\textheight % maybe
% \fi
- \global\d_page_sides_page_total \pagetotal % global
+ \global\d_page_sides_page_total\pagetotal % global
\ifnum\c_page_sides_float_type<\plusfour
\global\d_page_sides_width \zeropoint
\orelse\ifnum\c_page_sides_float_type>\plusfive
@@ -739,7 +828,7 @@
\global\d_page_sides_width\zeropoint
\fi
\global\d_page_sides_hsize \dimexpr\hsize-\d_page_sides_width\relax
- \global\d_page_sides_height\dimexpr\ht\floatbox+\dp\floatbox+\d_page_sides_toptotal\relax
+ \global\d_page_sides_height\dimexpr\htdp\floatbox+\d_page_sides_toptotal\relax
\global\d_page_sides_vsize \dimexpr\d_page_sides_height+\d_page_sides_page_total\relax
\scratchdimenone\d_page_sides_vsize
\scratchdimentwo\pagegoal
@@ -748,19 +837,19 @@
% method 0 : raw
\or
% method 1 : safe (default)
- \advance\scratchdimentwo -\strutdp
+ \advanceby\scratchdimentwo -\strutdp
\or
% method 2 : tight (grid default)
- \advance\scratchdimenone -\onepoint
+ \advanceby\scratchdimenone -\onepoint
\fi
\or
% tolerant
- \advance\scratchdimentwo -.5\strutdp
+ \advanceby\scratchdimentwo -.5\strutdp
\or
% verytolerant
- % \advance\scratchdimenone -\onepoint (maybe)
+ % \advanceby\scratchdimenone -\onepoint (maybe)
\else
- \advance\scratchdimentwo -\strutdp
+ \advanceby\scratchdimentwo -\strutdp
\fi}
\def\page_sides_analyse_space_stage_two
@@ -769,11 +858,11 @@
\global\setfalse\c_page_floats_room
\else
\ifdim\dimexpr\pagegoal-\d_page_sides_vsize\relax<\d_page_sides_bottomtotal
- % just weird: \global\advance\d_page_sides_vsize \scratchdimenone
+ % just weird: \global\advanceby\d_page_sides_vsize \scratchdimenone
\global\settrue\c_page_sides_short
% why was this \global\holdinginserts\plusone
\else
- \global\advance\d_page_sides_vsize \d_page_sides_bottomtotal % wins over inbetween
+ \global\advanceby\d_page_sides_vsize \d_page_sides_bottomtotal % wins over inbetween
\global\setfalse\c_page_sides_short
\fi
\global\settrue\c_page_floats_room
@@ -781,19 +870,22 @@
\def\page_sides_analyse_space
{\page_sides_analyse_space_stage_one
- \ifconditional\c_page_sides_check_same_page
- \ifdim\d_spac_prevcontent>\zeropoint
- \ifdim\dimexpr\scratchdimenone+\d_spac_prevcontent>\scratchdimentwo
- \clf_pushatsame
- \setbox\scratchbox\vpack{\clf_popatsame}%
- \page
- \box\scratchbox
- \vskip-\lineskip
- \page_sides_analyse_space_stage_one
- \fi
- \fi
- \fi
- \page_sides_analyse_space_stage_two}
+% \ifconditional\c_page_sides_check_same_page
+% \ifdim\d_spac_prevcontent>\zeropoint
+% \ifdim\dimexpr\scratchdimenone+\d_spac_prevcontent>\scratchdimentwo
+% \clf_pushatsame
+% \setbox\scratchbox\vpack{\clf_popatsame}%
+% \page
+% \box\scratchbox
+% \vskip-\lineskip
+% \page_sides_analyse_space_stage_one
+% \fi
+% \fi
+% \fi
+ \page_sides_analyse_space_stage_two
+ \ifconditional\c_page_sides_shape_down
+ \global\settrue\c_page_floats_room
+ \fi}
%D As we have no clear end of one or more paragraphs we only have pre float
%D skips.
@@ -807,6 +899,40 @@
\prevdepth\strutdp}
%\ignoreparskip}
+% \def\page_sides_handle_float#1%
+% {\page_sides_initialize_checker
+% \page_sides_check_horizontal_skips
+% \page_sides_check_vertical_skips
+% \page_sides_apply_horizontal_shift
+% \page_sides_check_previous_float
+% \page_sides_inject_before
+% \page_sides_inject_dummy_lines
+% \page_sides_relocate_float{#1}%
+% \page_sides_apply_vertical_shift
+% \page_sides_analyse_space
+% \ifconditional\c_page_floats_room
+% \global\setfalse\c_page_sides_delayed
+% % we're ok
+% \else
+% \global\settrue\c_page_sides_delayed
+% \global\c_page_sides_m_of_lines\c_page_sides_n_of_lines
+% \ifcase\c_page_sides_page_method
+% \page_otr_fill_and_eject_page
+% \or
+% \page_otr_force_new_page_one
+% \else
+% \page_otr_fill_and_eject_page
+% \fi
+% \global\c_page_sides_n_of_lines\c_page_sides_m_of_lines
+% \page_sides_analyse_space
+% %\page_sides_inject_before
+% \page_sides_inject_dummy_lines
+% \fi
+% \page_sides_place_float
+% \global\setfalse\c_page_sides_delayed
+% \page_sides_check_floats_reset
+% \page_sides_wrapup}
+
\def\page_sides_handle_float#1%
{\page_sides_initialize_checker
\page_sides_check_horizontal_skips
@@ -822,16 +948,21 @@
\global\setfalse\c_page_sides_delayed
% we're ok
\else
+ \ifconditional\c_page_sides_keep_together
+ \clf_interceptsamepagecontent\b_page_sides_spill_over
+ \fi
\global\settrue\c_page_sides_delayed
\global\c_page_sides_m_of_lines\c_page_sides_n_of_lines
\ifcase\c_page_sides_page_method
- \page_otr_fill_and_eject_page
+ \page_otr_fill_and_eject_page
\or
- \page_otr_force_new_page_one
+ \page_otr_force_new_page_one
\else
- \page_otr_fill_and_eject_page
+ \page_otr_fill_and_eject_page
+ \fi
+ \ifvoid\b_page_sides_spill_over\else
+ \box\b_page_sides_spill_over
\fi
- \global\c_page_sides_n_of_lines\c_page_sides_m_of_lines
\page_sides_analyse_space
%\page_sides_inject_before
\page_sides_inject_dummy_lines
@@ -845,7 +976,39 @@
{% we need to do this aftergroup
\aftergroup\par
\aftergroup\ignoreparskip
- \aftergroup\ignorespaces}
+ \aftergroup\ignorespaces
+ \aftergroup\page_sizes_delay_float}%
+
+\def\page_sides_local_float_flush
+ {\ifconditional\c_page_sides_shape_down
+ \ifnum\localboxlinenumber=\c_page_sides_n_of_lines\relax
+ \hpack to \localboxlinewidth
+ xoffset -\the\localboxlinewidth
+ yoffset -\d_page_sides_shape_down_shift
+ {\box\floatbox}%
+ \fi
+ \fi}
+
+%D Experimental and tricky:
+%D
+%D \starttext
+%D \samplefile{lorem} \blank[20*line]
+%D \startplacefigure[location={right,15*hang,force}]
+%D %\startplacefigure[location={right,15*hang}]
+%D \framed[width=30mm,height=20mm]{!!}
+%D \stopplacefigure
+%D \dorecurse{10}{\samplefile{lorem}}
+%D \stoptext
+
+\definelocalboxes
+ [\v!left:\v!float]
+ [\c!command=\page_sides_local_float_flush,
+ \c!location=\v!middle]
+
+\def\page_sizes_delay_float
+ {\ifconditional\c_page_sides_shape_down
+ \localbox[\v!left:\v!float]{}%
+ \fi}%
\def\page_sides_check_floats_indeed
{\page_sides_analyse_progress
@@ -911,7 +1074,7 @@
\ifx\p_sidethreshold\v!old
\d_page_sides_progression\dimexpr\d_page_sides_progress+\strutht-\roundingeps\relax
\c_page_sides_n_of_hang\d_page_sides_progression
- \divide\c_page_sides_n_of_hang \baselineskip\relax
+ \divideby\c_page_sides_n_of_hang \baselineskip\relax
\else
\d_page_sides_progression
\ifempty\p_sidethreshold
@@ -935,8 +1098,8 @@
\global\c_page_sides_lines_done\c_page_sides_n_of_hang
\else
\privatescratchcounter\c_page_sides_lines_done
- \advance\privatescratchcounter-\c_page_sides_n_of_hang
- \global\advance\c_page_sides_n_of_lines-\privatescratchcounter
+ \advanceby\privatescratchcounter-\c_page_sides_n_of_hang
+ \global\advanceby\c_page_sides_n_of_lines-\privatescratchcounter
\fi
\fi
\ifnum\c_page_sides_n_of_lines>\zerocount
@@ -946,8 +1109,8 @@
\dorecurse\c_page_sides_n_of_lines
{\toksapp\privatescratchtoks{\zeropoint\hsize}}%
\ifnum\c_page_sides_n_of_hang>\c_page_sides_n_of_lines
- \advance\c_page_sides_n_of_hang -\c_page_sides_n_of_lines\relax
- \advance\privatescratchcounter\c_page_sides_n_of_hang
+ \advanceby\c_page_sides_n_of_hang -\c_page_sides_n_of_lines\relax
+ \advanceby\privatescratchcounter\c_page_sides_n_of_hang
\dorecurse\c_page_sides_n_of_hang % weird, shouldn't that be scratchcounter
{\ifnum\c_page_sides_float_type>\plusfour
\toksapp\privatescratchtoks{\zeropoint\privatescratchdimen}%
@@ -966,7 +1129,7 @@
\global\c_page_sides_hangafter\hangafter
\fi
\fi
- \global\advance\c_page_sides_checks_done \plusone
+ \global\advanceby\c_page_sides_checks_done \plusone
\iftracesidefloats
\page_sides_check_floats_tracer
\fi}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-smp.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-smp.mkxl
index ccb0e989e82..2f620bdbca3 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-smp.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-smp.mkxl
@@ -13,6 +13,8 @@
\unprotect
+\startcontextdefinitioncode
+
%D The old one:
\definemixedcolumns
@@ -30,6 +32,7 @@
{\bgroup
\setsimplecolumnshsize[#1]%
\nopenalties
+ \enforced\permanent\protected\def\column{\vfill\break}% quick hack
\setbox\scratchbox\vbox\bgroup
\forgetall} % \blank[\v!disable]
@@ -49,8 +52,10 @@
\edef\rigidcolumnlines
{\directdummyparameter\c!lines}%
\setrigidcolumnhsize
- {\directdummyparameter\c!width}%
- {\directdummyparameter\c!distance}%
+ {\directdummyparameter\c!width}
+ {\directdummyparameter\c!distance}
{\directdummyparameter\c!n}}
+\stopcontextdefinitioncode
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-spr.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-spr.mkxl
index 49285c96fef..3d83126ce4a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-spr.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-spr.mkxl
@@ -29,6 +29,7 @@
\freezetextwidth
\hsize\textwidth % local variant of \sethsize
\boxmaxdepth\maxdepth
+ \page_otr_flush_top_content
\noindent % content can be < \hsize
\page_otr_command_package_contents#2#3}}%
\dp#1\zeropoint
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-str.lmt b/Master/texmf-dist/tex/context/base/mkxl/page-str.lmt
new file mode 100644
index 00000000000..9c2562cc40b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-str.lmt
@@ -0,0 +1,320 @@
+if not modules then modules = { } end modules ['page-str'] = {
+ version = 1.001,
+ comment = "companion to page-str.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- streams -> managers.streams
+
+-- work in progresss .. unfinished .. non-optimized
+
+local concat, insert, remove = table.concat, table.insert, table.remove
+
+local nodes, node = nodes, node
+
+local tasks = nodes.tasks
+
+local implement = interfaces.implement
+
+local nodecodes = nodes.nodecodes
+
+local nuts = nodes.nuts
+local tonut = nodes.tonut
+local slide_node_list = nuts.slide
+local write_node = nuts.write
+local flushnode = nuts.flush
+local copy_node_list = nuts.copylist
+local vpack_node_list = nuts.vpack
+local new_strut = nuts.pool.strutrule
+
+----- getbox = nuts.getbox
+local setlink = nuts.setlink
+local getlist = nuts.getlist
+local setlist = nuts.setlist
+local getwhd = nuts.getwhd
+local setwhd = nuts.setwhd
+local setattrlist = nuts.setattrlist
+
+local settings_to_array = utilities.parsers.settings_to_array
+
+local enableaction = nodes.tasks.enableaction
+
+local texgetdimen = tex.getdimen
+
+local trace_collecting = false trackers.register("streams.collecting", function(v) trace_collecting = v end)
+local trace_flushing = false trackers.register("streams.flushing", function(v) trace_flushing = v end)
+
+local report_streams = logs.reporter("streams")
+
+streams = streams or { } -- might move to the builders namespace
+local streams = streams
+
+-- maybe store head and tail ... first we need usage
+
+local data = { }
+local name = nil
+local stack = { }
+
+function streams.enable(newname)
+ if newname == "default" then
+ name = nil
+ else
+ name = newname
+ end
+end
+
+function streams.disable()
+ name = stack[#stack]
+end
+
+function streams.start(newname)
+ insert(stack,name)
+ name = newname
+end
+
+function streams.stop(newname)
+ name = remove(stack)
+end
+
+function streams.collect(head,where)
+ if name and head and name ~= "default" then
+ local head = tonut(head)
+ local dana = data[name]
+ if not dana then
+ dana = { }
+ data[name] = dana
+ end
+ local last = dana[#dana]
+ if last then
+ local tail = slide_node_list(last)
+ setlink(tail,head)
+ elseif last == false then
+ dana[#dana] = head
+ else
+ dana[1] = head
+ end
+ if trace_collecting then
+ report_streams("appending snippet %a to slot %s",name,#dana)
+ end
+ return nil
+ else
+ return head
+ end
+end
+
+function streams.push(thename)
+ if not thename or thename == "" then
+ thename = name
+ end
+ if thename and thename ~= "" then
+ local dana = data[thename]
+ if dana then
+ dana[#dana+1] = false
+ if trace_collecting then
+ report_streams("pushing snippet %a",thename)
+ end
+ end
+ end
+end
+
+function streams.flush(name,copy) -- problem: we need to migrate afterwards
+ local dana = data[name]
+ if dana then
+ local dn = #dana
+ if dn == 0 then
+ -- nothing to flush
+ elseif copy then
+ if trace_flushing then
+ report_streams("flushing copies of %s slots of %a",dn,name)
+ end
+ for i=1,dn do
+ local di = dana[i]
+ if di then
+ write_node(copy_node_list(getlist(di))) -- list, will be option
+ end
+ end
+ if copy then
+ data[name] = nil
+ end
+ else
+ if trace_flushing then
+ report_streams("flushing %s slots of %a",dn,name)
+ end
+ for i=1,dn do
+ local di = dana[i]
+ if di then
+ write_node(getlist(di)) -- list, will be option
+ setlist(di)
+ flushnode(di)
+ end
+ end
+ end
+ end
+end
+
+function streams.synchronize(list) -- this is an experiment !
+ -- we don't optimize this as we want to trace in detail
+ list = settings_to_array(list)
+ local max = 0
+ if trace_flushing then
+ report_streams("synchronizing list: % t",list)
+ end
+ for i=1,#list do
+ local dana = data[list[i]]
+ if dana then
+ local n = #dana
+ if n > max then
+ max = n
+ end
+ end
+ end
+ if trace_flushing then
+ report_streams("maximum number of slots: %s",max)
+ end
+ for m=1,max do
+ local height, depth = 0, 0
+ for i=1,#list do
+ local name = list[i]
+ local dana = data[name]
+ if dana then
+ local slot = dana[m]
+ if slot then
+ local vbox = vpack_node_list(slot)
+ local wd, ht, dp = getwhd(vbox)
+ if ht > height then
+ height = ht
+ end
+ if dp > depth then
+ depth = dp
+ end
+ dana[m] = vbox
+ if trace_flushing then
+ report_streams("slot %s of %a is packed to height %p and depth %p",m,name,ht,dp)
+ end
+ end
+ end
+ end
+ if trace_flushing then
+ report_streams("slot %s has max height %p and max depth %p",m,height,depth)
+ end
+ local strutht = texgetdimen("globalbodyfontstrutheight")
+ local strutdp = texgetdimen("globalbodyfontstrutdepth")
+ local struthtdp = strutht + strutdp
+ for i=1,#list do
+ local name = list[i]
+ local dana = data[name]
+ if dana then
+ local vbox = dana[m]
+ if vbox then
+ local wd, ht, dp = getwhd(vbox)
+ local delta_height = height - ht
+ local delta_depth = depth - dp
+ if delta_height > 0 or delta_depth > 0 then
+ if false then
+ -- actually we need to add glue and repack
+ setwhd(vbox,false,height,depth)
+ if trace_flushing then
+ report_streams("slot %s of %a with delta (%p,%p) is compensated",m,i,delta_height,delta_depth)
+ end
+ else
+ -- this is not yet ok as we also need to keep an eye on vertical spacing
+ -- so we might need to do some splitting or whatever
+ local list = getlist(vbox)
+ local tail = list and slide_node_list(list)
+ local n = 0
+ local delta = delta_height -- for tracing
+ while delta > 0 do
+ -- we need to add some interline penalties
+ local strut = new_strut(0,strutht,strutdp)
+ setattrlist(strut,vbox)
+ if tail then
+ -- todo: inject at a better place
+ setlink(tail,strut)
+ end
+ tail = strut
+ n = n + 1
+ delta = delta - struthtdp
+ end
+ dana[m] = vpack_node_list(getlist(vbox))
+ setlist(vbox)
+ flushnode(vbox)
+ if trace_flushing then
+ report_streams("slot %s:%s with delta (%p,%p) is compensated by %s lines",m,i,delta_height,delta_depth,n)
+ end
+ end
+ end
+ end
+ else
+ -- make dummy
+ end
+ end
+ end
+end
+
+-- hm, nut or node
+
+tasks.appendaction("mvlbuilders", "normalizers", "streams.collect")
+
+tasks.disableaction("mvlbuilders", "streams.collect")
+
+function streams.initialize()
+ enableaction("mvlbuilders","streams.collect")
+ function streams.initialize() end
+end
+
+-- todo: remove empty last { }'s
+-- todo: better names, enable etc
+
+implement {
+ name = "initializestream",
+ actions = streams.initialize,
+ onlyonce = true,
+}
+
+implement {
+ name = "enablestream",
+ actions = streams.enable,
+ arguments = "string"
+}
+
+implement {
+ name = "disablestream",
+ actions = streams.disable
+}
+
+implement {
+ name = "startstream",
+ actions = streams.start,
+ arguments = "string"
+}
+
+implement {
+ name = "stopstream",
+ actions = streams.stop
+}
+
+implement {
+ name = "flushstream",
+ actions = streams.flush,
+ arguments = "string"
+}
+
+implement {
+ name = "flushstreamcopy",
+ actions = streams.flush,
+ arguments = { "string", true }
+}
+
+implement {
+ name = "synchronizestream",
+ actions = streams.synchronize,
+ arguments = "string"
+}
+
+implement {
+ name = "pushstream",
+ actions = streams.push,
+ arguments = "string"
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-str.mkxl b/Master/texmf-dist/tex/context/base/mkxl/page-str.mkxl
index d6e01ea595c..e883d8859e5 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-str.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-str.mkxl
@@ -27,11 +27,11 @@
%D
%D Remark: marknotes are gone, at least for a while.
-\registerctxluafile{page-str}{}
+\registerctxluafile{page-str}{autosuffix}
\unprotect
-\mutable\let\currentoutputstream\empty
+\mutable\lettonothing\currentoutputstream
\newif \ifinoutputstream % will become a conditional or mode
\newtoks \everyenableoutputstream
diff --git a/Master/texmf-dist/tex/context/base/mkxl/page-txt.mklx b/Master/texmf-dist/tex/context/base/mkxl/page-txt.mklx
index f8db27f38e7..76aa15cabf5 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/page-txt.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/page-txt.mklx
@@ -90,8 +90,8 @@
\fi
\to \everysetuplayoutelement
-\mutable\let\currenttextstate \empty
-\mutable\let\previoustextstate\empty
+\mutable\lettonothing\currenttextstate
+\mutable\lettonothing\previoustextstate
\def\page_layouts_reset_element_status#vertical%
{\gdefcsname\??layouttextsreset#vertical\endcsname{\page_layouts_set_element_status_normal#vertical}}
@@ -175,7 +175,7 @@
\permanent\protected\def\setupfootertexts{\setuptexts[\v!footer]}
\permanent\protected\def\setupbottomtexts{\setuptexts[\v!bottom]}
-\mutable\let\currentlayoutelementstate\empty
+\mutable\lettonothing\currentlayoutelementstate
\permanent\tolerant\protected\def\setuptexts[#vertical]#spacer[#horizontal]#spacer[#a]#spacer[#b]#spacer[#c]#spacer[#d]%
{\ifarguments
@@ -219,9 +219,9 @@
%D Left and right texts are swapped on odd and even pages, but only when double
%D sided typesetting is enabled.
-\setvalue{\??layouttextstrut\v!yes}{\setstrut\strut} % maybe more variants
+\defcsname\??layouttextstrut\v!yes\endcsname{\setstrut\strut} % maybe more variants
-\let\m_page_layouts_element_content\empty
+\lettonothing\m_page_layouts_element_content
\protected\def\page_layouts_process_element_single#content%
{\edef\m_page_layouts_element_content{\detokenize{#content}}% so no \v!xxx
@@ -252,12 +252,12 @@
\def\page_layouts_process_element_limited#content% are the {}{}{} still needed?
{\limitated
left \p_width
- text {#content}
- sentinel {\unknown}
+ text {#content}%
+ sentinel {\unknown}%
\relax}
-\setvalue{\??layouttextspecial\v!pagenumber}{\page_layouts_place_page_number}
-\setvalue{\??layouttextspecial\v!date }{\currentdate}
+\defcsname\??layouttextspecial\v!pagenumber\endcsname{\page_layouts_place_page_number}
+\defcsname\??layouttextspecial\v!date \endcsname{\currentdate}
%D When specified, the texts are automatically limited in length.
@@ -270,9 +270,9 @@
%D Texts can be disabled, moved up and ignored, depending in the \type {status}
%D variable. This is handled by the next couple of macros.
-\newcount\c_page_layouts_element_state_n
+\newinteger\c_page_layouts_element_state_n
-\mutable\let\textlinestatus\empty
+\mutable\lettonothing\textlinestatus
\def\page_layouts_set_element_status#vertical%
{\c_page_layouts_element_state_n=0\namedlayoutelementparameter#vertical\c!n\relax
@@ -321,24 +321,24 @@
\newconditional\resyncaftertextline
-\setvalue{\??layouttextsline\v!normal}{\page_layouts_place_text_line_indeed}
-\setvalue{\??layouttextsline\empty }{\page_layouts_place_text_line_indeed}
+\defcsname\??layouttextsline\v!normal\endcsname{\page_layouts_place_text_line_indeed}
+\defcsname\??layouttextsline\empty \endcsname{\page_layouts_place_text_line_indeed}
-\letvalue{\??layouttextsline\v!none}\gobbletwoarguments
-\letvalue{\??layouttextsline\v!stop}\gobbletwoarguments
+\letcsname\??layouttextsline\v!none\endcsname\gobbletwoarguments
+\letcsname\??layouttextsline\v!stop\endcsname\gobbletwoarguments
-\setvalue{\??layouttextsline\v!high}#vertical#height%
+\defcsname\??layouttextsline\v!high\endcsname#vertical#height%
{\global\settrue\resyncaftertextline
\page_layouts_reset_element_status#vertical}
-\setvalue{\??layouttextsline\v!empty}#vertical#height%
+\defcsname\??layouttextsline\v!empty\endcsname#vertical#height%
{\page_layouts_reset_element_status#vertical}
-\setvalue{\??layouttextsline\v!start}#vertical#height%
+\defcsname\??layouttextsline\v!start\endcsname#vertical#height%
{\page_layouts_reset_element_status#vertical%
\page_layouts_place_text_line_indeed#vertical#height}
-\setvalue{\??layouttextsline\v!nomarking}#vertical#height%
+\defcsname\??layouttextsline\v!nomarking\endcsname#vertical#height%
{\bgroup
\page_layouts_reset_element_status#vertical%
\settrue\inhibitgetmarking
@@ -367,7 +367,7 @@
\page_layouts_place_text_line_indeed#vertical#height%
\endgroup}
-\letvalue{\??layouttextsline\s!unknown}\page_layouts_place_text_line_unknown
+\letcsname\??layouttextsline\s!unknown\endcsname\page_layouts_place_text_line_unknown
%D The following macro has to be called after a page is flushed.
@@ -451,8 +451,8 @@
\box\b_page_layouts_element
\vkern-#height\relax}
-\let\page_layouts_place_extra_text_left \empty % historic
-\let\page_layouts_place_extra_text_right\empty % historic
+\lettonothing\page_layouts_place_extra_text_left % historic
+\lettonothing\page_layouts_place_extra_text_right % historic
\def\page_layouts_place_text_line_right
{\hpack
@@ -478,13 +478,13 @@
\page_layouts_left_edge_element\c!righttext\c!rightstyle\c!rightcolor\c!rightwidth
\fi
\ifdim\leftmarginwidth>\zeropoint
- \page_layouts_left_margin_element\c!righttext\c!rightstyle\c!rightcolor\c!rightwidth\zerocount
+ \page_layouts_left_margin_element\c!righttext\c!rightstyle\c!rightcolor\c!rightwidth\plusone
\fi
\ifdim\makeupwidth>\zeropoint
\page_layouts_text_body_element_e_r_m_l
\fi
\ifdim\rightmarginwidth>\zeropoint
- \page_layouts_right_margin_element\c!lefttext\c!leftstyle\c!leftcolor\c!leftwidth\plusone
+ \page_layouts_right_margin_element\c!lefttext\c!leftstyle\c!leftcolor\c!leftwidth\zerocount
\fi
\ifdim\rightedgewidth>\zeropoint
\page_layouts_right_edge_element\c!lefttext\c!leftstyle\c!leftcolor\c!leftwidth
@@ -495,10 +495,10 @@
\ifempty\p_text
\kern\leftedgewidth
\else
- \hbox to \leftedgewidth\bgroup
- \hss
- \page_layouts_process_element_indeed#style#color#width%
- \egroup
+ \hbox to \leftedgewidth\bgroup
+ \hss
+ \page_layouts_process_element_indeed#style#color#width%
+ \egroup
\fi}
\def\page_layouts_left_edge_element#text#style#color#width%
@@ -526,6 +526,9 @@
% margin needs checking!
+% \hbox to \leftmarginwidth{\hss\layoutelementparameter\c!margintext}%
+% \hbox to \rightmarginwidth{\layoutelementparameter\c!margintext\hss}%
+
\def\page_layouts_left_margin_element_indeed#text#style#color#width#margintoo%
{\letfromlayoutelementparameter\p_text#text%
\ifempty\p_text
@@ -766,7 +769,7 @@
% this can be done better now, no meaning hackery needed
\edef\currentlayoutelement{\m_page_layouts_page_number_location_v:\m_page_layouts_page_number_location_h}%
\edef\tempstring{\detokenizedlayoutelementparameter\m_page_layouts_page_number_location_x}%
- \doif{\meaning\tempstring}{\meaning\page_layouts_place_page_number}
+ \doif{\normalmeaningless\tempstring}{\normalmeaningless\page_layouts_place_page_number}
{\resetlayoutelementparameter\m_page_layouts_page_number_location_x}%
\fi}
@@ -777,33 +780,33 @@
\let\page_layouts_place_extra_text_left \page_layouts_place_page_number_left
\let\page_layouts_place_extra_text_right\page_layouts_place_page_number_right
\else
- \let\page_layouts_place_extra_text_left \empty
- \let\page_layouts_place_extra_text_right\empty
+ \lettonothing\page_layouts_place_extra_text_left
+ \lettonothing\page_layouts_place_extra_text_right
\fi}
\def\page_layouts_identify_page_number_location
{\let\m_page_layouts_page_number_location_v\v!footer
\let\m_page_layouts_page_number_location_h\v!text
\let\m_page_layouts_page_number_location_x\c!middletext
- \processallactionsinset[\directpagenumberingparameter\c!location]
- [ \v!header=>\let\m_page_layouts_page_number_location_v\v!header,
- \v!footer=>\let\m_page_layouts_page_number_location_v\v!footer,
+ \processallactionsinset[\directpagenumberingparameter\c!location]%
+ [ \v!header=>\let\m_page_layouts_page_number_location_v\v!header,%
+ \v!footer=>\let\m_page_layouts_page_number_location_v\v!footer,%
\v!middle=>\let\m_page_layouts_page_number_location_h\v!text
- \let\m_page_layouts_page_number_location_x\c!middletext,
+ \let\m_page_layouts_page_number_location_x\c!middletext,%
\v!left=>\let\m_page_layouts_page_number_location_h\v!text
- \let\m_page_layouts_page_number_location_x\c!lefttext,
+ \let\m_page_layouts_page_number_location_x\c!lefttext,%
\v!right=>\let\m_page_layouts_page_number_location_h\v!text
- \let\m_page_layouts_page_number_location_x\c!righttext,
+ \let\m_page_layouts_page_number_location_x\c!righttext,%
\v!inleft=>\let\m_page_layouts_page_number_location_h\v!margin
- \let\m_page_layouts_page_number_location_x\c!lefttext,
+ \let\m_page_layouts_page_number_location_x\c!lefttext,%
\v!inright=>\let\m_page_layouts_page_number_location_h\v!margin
- \let\m_page_layouts_page_number_location_x\c!righttext,
+ \let\m_page_layouts_page_number_location_x\c!righttext,%
\v!inmargin=>\let\m_page_layouts_page_number_location_h\v!margin
- \def\m_page_layouts_page_number_location_x{\ifdoublesided\c!margintext\else\c!righttext\fi},
+ \def\m_page_layouts_page_number_location_x{\ifdoublesided\c!margintext\else\c!righttext\fi},%
\v!margin=>\let\m_page_layouts_page_number_location_h\v!margin
- \def\m_page_layouts_page_number_location_x{\ifdoublesided\c!margintext\else\c!righttext\fi},
+ \def\m_page_layouts_page_number_location_x{\ifdoublesided\c!margintext\else\c!righttext\fi},%
\v!atmargin=>\let\m_page_layouts_page_number_location_h\v!text
- \let\m_page_layouts_page_number_location_x\c!marginedgetext,
+ \let\m_page_layouts_page_number_location_x\c!marginedgetext,%
\v!marginedge=>\let\m_page_layouts_page_number_location_h\v!text
\let\m_page_layouts_page_number_location_x\c!marginedgetext]}
@@ -863,7 +866,7 @@
{\setbox\b_page_layouts_element\vpack
{\dontcomplain
\calculatereducedvsizes
- \page_layouts_swap_margins
+ \page_layouts_swap_margins\v!text
\offinterlineskip
\vkern\dimexpr-\topheight-\topdistance\relax
\the\toptextcontent
@@ -884,10 +887,6 @@
\smashbox\b_page_layouts_element
\box\b_page_layouts_element}
-% \ifdefined\page_prepare_backgrounds\else
-% \let\page_prepare_backgrounds\gobbleoneargument
-% \fi
-
% only for very special controlled cases or experiments:
\let\page_scale_text_box\gobbleoneargument
@@ -897,13 +896,12 @@
{\offinterlineskip
\calculatereducedvsizes
\calculatehsizes
- \page_layouts_swap_margins
+ \page_layouts_swap_margins\v!page
\vkern\dimexpr\headerheight+\headerdistance+\textdistance\relax
\dontleavehmode
- %\page_prepare_backgrounds{#2}%
\hpack to \makeupwidth
{\begingroup
- \page_layouts_swap_margins
+ % \page_layouts_swap_margins\v!page
\goleftonpage
\ifdim\leftedgewidth>\zeropoint
\the\leftedgetextcontent
@@ -942,6 +940,8 @@
%D overload the the stored version .. eventually i will clear up the experimental
%D mess.
+\ifdefined\page_otr_flush_top_content\else \let\page_otr_flush_top_content\relax \fi
+
\protected\def\settextpagecontent#1#2#3% #2 and #3 will disappear / is overloaded
{\setbox#1\hpack to \makeupwidth
{\hss % so don't change this
@@ -951,6 +951,7 @@
\freezetextwidth
\hsize\textwidth % local variant of \sethsize <<< in columns?
\boxmaxdepth\maxdepth
+ \page_otr_flush_top_content
\noindent % content can be < \hsize
\page_otr_command_package_contents#2#3}% this will vbox
\hss}%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/phys-dim.mkxl b/Master/texmf-dist/tex/context/base/mkxl/phys-dim.mkxl
index 51ebbe17209..8277ba2317d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/phys-dim.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/phys-dim.mkxl
@@ -168,18 +168,13 @@
% \definesymbol[units][times][\ifmmode\cdot\else\kern.2\emwidth\cdot\kern.2\emwidth\fi]
\permanent\protected\def\digitstextbinop#1% assumes preceding
- {\ifmmode#1\else\fourperemspace\nobreak#1\fourperemspace\fi}
+ {\ifmmode\mathord{#1}\else\nobreak#1\fi}
-%frozen\def\digitstimessymbol{\ifmmode\cdot\else\digitstextbinop\cdot\fi}
\frozen\def\digitstimessymbol{\digitstextbinop\times}
\frozen\protected\def\digitszeropadding {\hphantom{0}}
-%frozen\protected\def\digitsnegative {\phys_digits_normalized{0}{\phys_digits_raised{\textminus}}}
-%frozen\protected\def\digitspositive {\phys_digits_normalized{0}{\phys_digits_raised{\textplus}}}
\frozen\protected\def\digitsnegative {\phys_digits_normalized{0}{\mathematics{\negative}}}
\frozen\protected\def\digitspositive {\phys_digits_normalized{0}{\mathematics{\positive}}}
-%frozen\protected\def\digitsminus {\phys_digits_normalized{0}{\mathematics{-}}}
-%frozen\protected\def\digitsplus {\phys_digits_normalized{0}{\mathematics{+}}}
\frozen\protected\def\digitsminus {\phys_digits_normalized{0}{\mathminus}}
\frozen\protected\def\digitsplus {\phys_digits_normalized{0}{\mathplus}}
\frozen\protected\def\digitsplusminus {\phys_digits_normalized{0}{\mathplusminus}}
@@ -388,31 +383,45 @@
\frozen\protected\def\unitsmediumspace{\medspace}
\frozen\protected\def\unitsbigspace {\thickspace}
\frozen\protected\def\unitsbackspace {\negthinspace}
+\frozen\protected\def\unitsmathspace {\ifmmode\mathatomskip\mathdimensioncode\mathdimensioncode\mathstyle\fi}
\permanent\protected\def\installunitsseparator#1#2%
{\defcsname\??unitseparator#1\endcsname{#2}}
\protected\def\phys_units_separator
- {\ifcsname\??unitseparator\unitparameter\c!separator\endcsname\lastnamedcs\else\cdot\fi}
+ {\ifcsname\??unitseparator\unitparameter\c!separator\endcsname\lastnamedcs\else\ifmmode\mathord\cdot\else\cdot\fi\fi} % Made \cdot an "ord" in math mode -GP
-\installunitsseparator\v!normal {\cdot}
-\installunitsseparator\v!big {\unitsbigspace}
-\installunitsseparator\v!medium {\unitsmediumspace}
-\installunitsseparator\v!small {\unitssmallspace}
-\installunitsseparator\v!none {}
+\installunitsseparator\v!normal{\ifmmode\mathord\cdot\else\cdot\fi} % Made \cdot an "ord" in math mode -GP
+\installunitsseparator\v!big {\unitsbigspace}
+\installunitsseparator\v!medium{\unitsmediumspace}
+\installunitsseparator\v!small {\unitssmallspace}
+\installunitsseparator\v!none {}
+\installunitsseparator\v!math {\unitsmathspace}
\permanent\protected\def\installunitsspace#1#2%
{\defcsname\??unitspace#1\endcsname{#2}}
+% \protected\def\phys_units_space
+% {\unskip % weird, why is unskip needed
+% \ifcsname\??unitspace\unitparameter\c!space\endcsname\lastnamedcs\else\unitsmediumspace\fi}
+
+% \im{1 \unit{hour} 20 \unit{minute} 56 \unit{second}}
+% \im{\unit{1 hour} \unit{20 minute} 56 \unit{second}}
+
\protected\def\phys_units_space
- {\unskip % weird, why is unskip needed
- \ifcsname\??unitspace\unitparameter\c!space\endcsname\lastnamedcs\else\unitsmediumspace\fi}
+ {\ifmmode
+ % let the atoms do the work
+ \else
+ \unskip % weird, why is unskip needed
+ \ifcsname\??unitspace\unitparameter\c!space\endcsname\lastnamedcs\else\unitsmediumspace\fi
+ \fi}
\installunitsspace\v!normal{\unitsmediumspace}
\installunitsspace\v!big {\unitsbigspace}
\installunitsspace\v!medium{\unitsmediumspace}
\installunitsspace\v!small {\unitssmallspace}
\installunitsspace\v!none {}
+\installunitsspace\v!math {\unitsmathspace}
\newtoks \everyunits % we keep the old \units command so we need a longer one
@@ -441,15 +450,14 @@
% \the\everyunits
%\removeunwantedspaces % not ok yet
\useunitstyleandcolor\c!style\c!color
- \edef\scratchstringone{\unitparameter\c!alternative}%
\ifmmode
- \ifx\scratchstringone\v!text
+ \ifcstok{\unitparameter\c!alternative}\v!text
\expandafter\expandafter\expandafter\phys_units_direct_text_in_math
\else
\expandafter\expandafter\expandafter\phys_units_direct_math
\fi
\else
- \ifx\scratchstringone\v!mathematics
+ \ifcstok{\unitparameter\c!alternative}\v!mathematics
\expandafter\expandafter\expandafter\phys_units_direct_math_in_text
\else
\expandafter\expandafter\expandafter\phys_units_direct_text
@@ -499,9 +507,6 @@
{\edef\p_order{\unitparameter\c!order}%
\ifx\p_order\v!reverse\expandafter\clf_unit_reverse\else\expandafter\clf_unit_normal\fi{\detokenize{#1}}}
-\permanent\protected\def\digitstextbinnop#1%
- {\ifmmode#1\else#1\fourperemspace\fi}
-
\permanent\protected\def\unitsPUS#1#2#3{\phys_units_next\prefixtext{#1}\unittext{#2}\unitsraise{\suffixtext{#3}}\c_phys_units_state\plusone} % suffix
\permanent\protected\def\unitsPU #1#2{\phys_units_next\prefixtext{#1}\unittext{#2}\c_phys_units_state\plusthree} % unit
\permanent\protected\def\unitsPS #1#2{\phys_units_next\prefixtext{#1}\unitsraise{\suffixtext{#2}}\c_phys_units_state\plusone} % suffix
@@ -609,7 +614,10 @@
\def\phys_units_start
{\ifmmode
\dostarttagged\t!maction\t!unit
- \bgroup % make an mrow
+ \mathatom
+ \s!leftclass \mathdimensioncode
+ \s!rightclass \mathdimensioncode
+ \bgroup
\else
\dostarttagged\t!unit\empty
\fi
@@ -674,7 +682,7 @@
\setfalse\c_phys_units_dospace
\phys_units_start}
-\permanent\protected\def\unitsTIMES
+\permanent\protected\def\unitsTIMES % GP: Does this do anything? HH: yes "times"
{\ifnum\c_phys_units_state=\plusone % suffix
\else
\unitssmallspace
diff --git a/Master/texmf-dist/tex/context/base/mkxl/publ-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/publ-ini.mkxl
index 2f4d817f24b..b75a933adbf 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/publ-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/publ-ini.mkxl
@@ -81,7 +81,7 @@
\defineinterfacevariable {btxlist} {btxlist}
\defineinterfacevariable {btxrendering} {btxrendering}
-\definelabelclass[btxlabel][2]
+\definelabelclass [btxlabel] [2]
\clf_definelabels{btxlabel}{btx}\s!false\relax
@@ -112,8 +112,8 @@
%D to split between cite and list here as it only complicates matters (timing) and is
%D not clear either.
-\mutable\let\currentbtxspecification \empty
-\mutable\let\currentbtxspecificationfallback\empty
+\mutable\lettonothing\currentbtxspecification
+\mutable\lettonothing\currentbtxspecificationfallback
\installmacrostack\currentbtxspecification
\installmacrostack\currentbtxspecificationfallback
@@ -139,7 +139,7 @@
\edef\currentbtxspecification{#1}%
\edef\currentbtxspecificationfallback{\namedbtxparameter\currentbtxspecification\c!default}%
\ifx\currentbtxspecificationfallback\currentbtxspecification
- \let\currentbtxspecificationfallback\empty
+ \lettonothing\currentbtxspecificationfallback
\fi
\clf_btxsetspecification{\currentbtxspecification}}
@@ -152,7 +152,7 @@
{\edef\currentbtxspecification{#1}%
\edef\currentbtxspecificationfallback{\namedbtxparameter\currentbtxspecification\c!default}%
\ifx\currentbtxspecificationfallback\currentbtxspecification
- \let\currentbtxspecificationfallback\empty
+ \lettonothing\currentbtxspecificationfallback
\fi
% has to be done explicitly: \loadbtxdefinitionfile[\currentbtxspecification]%
\ifempty\currentbtxspecification
@@ -363,12 +363,12 @@
\publ_command_yes{#1}}
\permanent\protected\def\definebtxcommand#1% {body} #1..#n{body}
- {\setuvalue{\??btxcommand\csstring#1}}%
+ {\protected\defcsname\??btxcommand\csstring#1\endcsname}%
% access
-\let\currentbtxtag \empty
-\let\currentbtxdataset\v!default
+\lettonothing\currentbtxtag
+\let \currentbtxdataset\v!default
\permanent\protected\def\setbtxentry[#1]% or maybe btxsetentry
{\edef\currentbtxtag{\clf_btxsetentry{\currentbtxdataset}{#1}}}
@@ -441,30 +441,31 @@
%D Variables:
-\mutable\let\currentbtxbacklink \empty \permanent\protected\def\btxsetbacklink {\def\currentbtxbacklink}
-\mutable\let\currentbtxcategory \empty \permanent\protected\def\btxsetcategory {\def\currentbtxcategory}
-\mutable\let\currentbtxcombis \empty \permanent\protected\def\btxsetcombis {\def\currentbtxcombis}
-\mutable\let\currentbtxdataset \empty \permanent\protected\def\btxsetdataset {\def\currentbtxdataset}
-\mutable\let\currentbtxfirst \empty \permanent\protected\def\btxsetfirst {\def\currentbtxfirst}
-\mutable\let\currentbtxsecond \empty \permanent\protected\def\btxsetsecond {\def\currentbtxsecond}
-\mutable\let\currentbtxsuffix \empty \permanent\protected\def\btxsetsuffix {\def\currentbtxsuffix}
-\mutable\let\currentbtxinternal \empty \permanent\protected\def\btxsetinternal {\def\currentbtxinternal}
-\mutable\let\currentbtxlefttext \empty \permanent\protected\def\btxsetlefttext {\def\currentbtxlefttext}
-\mutable\let\currentbtxrighttext \empty \permanent\protected\def\btxsetrighttext {\def\currentbtxrighttext}
-\mutable\let\currentbtxbefore \empty \permanent\protected\def\btxsetbefore {\def\currentbtxbefore}
-\mutable\let\currentbtxafter \empty \permanent\protected\def\btxsetafter {\def\currentbtxafter}
-\mutable\let\currentbtxlanguage \empty \permanent\protected\def\btxsetlanguage {\def\currentbtxlanguage}
-\mutable\let\currentbtxtag \empty \permanent\protected\def\btxsettag {\def\currentbtxtag}
-\mutable\let\currentbtxnumber \empty \permanent\protected\def\btxsetnumber {\def\currentbtxnumber}
-\mutable\let\currentbtxfirstinternal\empty \permanent\protected\def\btxsetfirstinternal{\def\currentbtxfirstinternal}
-\mutable\let\currentbtxlastinternal \empty \permanent\protected\def\btxsetlastinternal {\def\currentbtxlastinternal}
+\mutable\lettonothing\currentbtxbacklink \permanent\protected\def\btxsetbacklink {\def\currentbtxbacklink}
+\mutable\lettonothing\currentbtxcategory \permanent\protected\def\btxsetcategory {\def\currentbtxcategory}
+\mutable\lettonothing\currentbtxcombis \permanent\protected\def\btxsetcombis {\def\currentbtxcombis}
+\mutable\lettonothing\currentbtxdataset \permanent\protected\def\btxsetdataset {\def\currentbtxdataset}
+\mutable\lettonothing\currentbtxfirst \permanent\protected\def\btxsetfirst {\def\currentbtxfirst}
+\mutable\lettonothing\currentbtxsecond \permanent\protected\def\btxsetsecond {\def\currentbtxsecond}
+\mutable\lettonothing\currentbtxsuffix \permanent\protected\def\btxsetsuffix {\def\currentbtxsuffix}
+\mutable\lettonothing\currentbtxinternal \permanent\protected\def\btxsetinternal {\def\currentbtxinternal}
+\mutable\lettonothing\currentbtxlefttext \permanent\protected\def\btxsetlefttext {\def\currentbtxlefttext}
+\mutable\lettonothing\currentbtxrighttext \permanent\protected\def\btxsetrighttext {\def\currentbtxrighttext}
+\mutable\lettonothing\currentbtxbefore \permanent\protected\def\btxsetbefore {\def\currentbtxbefore}
+\mutable\lettonothing\currentbtxafter \permanent\protected\def\btxsetafter {\def\currentbtxafter}
+\mutable\lettonothing\currentbtxlanguage \permanent\protected\def\btxsetlanguage {\def\currentbtxlanguage}
+\mutable\lettonothing\currentbtxtag \permanent\protected\def\btxsettag {\def\currentbtxtag}
+\mutable\lettonothing\currentbtxnumber \permanent\protected\def\btxsetnumber {\def\currentbtxnumber}
+\mutable\lettonothing\currentbtxfirstinternal \permanent\protected\def\btxsetfirstinternal{\def\currentbtxfirstinternal}
+\mutable\lettonothing\currentbtxlastinternal \permanent\protected\def\btxsetlastinternal {\def\currentbtxlastinternal}
\mutable\let\currentbtxauthorvariant\v!normal \permanent\protected\def\btxsetauthorvariant{\def\currentbtxauthorvariant}
-\mutable\let\currentbtxfirstnames \empty \permanent\protected\def\btxsetfirstnames {\let\currentbtxfirstnames\currentbtxfirstnames_indeed}
-\mutable\let\currentbtxinitials \empty \permanent\protected\def\btxsetinitials {\let\currentbtxinitials \currentbtxinitials_indeed }
-\mutable\let\currentbtxjuniors \empty \permanent\protected\def\btxsetjuniors {\let\currentbtxjuniors \currentbtxjuniors_indeed }
-\mutable\let\currentbtxsurnames \empty \permanent\protected\def\btxsetsurnames {\let\currentbtxsurnames \currentbtxsurnames_indeed }
-\mutable\let\currentbtxvons \empty \permanent\protected\def\btxsetvons {\let\currentbtxvons \currentbtxvons_indeed }
+
+\mutable\lettonothing\currentbtxfirstnames \permanent\protected\def\btxsetfirstnames {\let\currentbtxfirstnames\currentbtxfirstnames_indeed}
+\mutable\lettonothing\currentbtxinitials \permanent\protected\def\btxsetinitials {\let\currentbtxinitials \currentbtxinitials_indeed }
+\mutable\lettonothing\currentbtxjuniors \permanent\protected\def\btxsetjuniors {\let\currentbtxjuniors \currentbtxjuniors_indeed }
+\mutable\lettonothing\currentbtxsurnames \permanent\protected\def\btxsetsurnames {\let\currentbtxsurnames \currentbtxsurnames_indeed }
+\mutable\lettonothing\currentbtxvons \permanent\protected\def\btxsetvons {\let\currentbtxvons \currentbtxvons_indeed }
\newconstant\currentbtxoverflow \permanent\protected\def\btxsetoverflow #1{\currentbtxoverflow #1\relax}
\newconstant\currentbtxconcat \permanent\protected\def\btxsetconcat #1{\currentbtxconcat #1\relax}
@@ -479,70 +480,70 @@
\protected\def\currentbtxsurnames_indeed {\clf_btxcurrentsurnames \numexpr\currentbtxauthorindex\relax}
\protected\def\currentbtxvons_indeed {\clf_btxcurrentvons \numexpr\currentbtxauthorindex\relax}
-\mutable\let\currentbtxfirstpage \empty \permanent\protected\def\btxsetfirstpage#1{\def\currentbtxfirstpage{\btx_page_number{#1}}}
-\mutable\let\currentbtxlastpage \empty \permanent\protected\def\btxsetlastpage #1{\def\currentbtxlastpage {\btx_page_number{#1}}}
-
-\mutable\let\currentbtxfield \empty
-\mutable\let\currentbtxfielddoi \empty
-\mutable\let\currentbtxfieldmonth \empty
-\mutable\let\currentbtxfieldyear \empty
-\mutable\let\currentbtxfieldurl \empty
-\mutable\let\currentbtxcriterium \empty
-\mutable\let\currentbtxlist \empty
-\mutable\let\currentbtxlistentry \empty
-\mutable\let\currentbtxlistindex \empty
-\mutable\let\currentbtxreference \empty
-\mutable\let\currentbtxrenderingtitle \empty
-\mutable\let\currentbtxcitetag \empty
+\mutable\lettonothing\currentbtxfirstpage \permanent\protected\def\btxsetfirstpage#1{\def\currentbtxfirstpage{\btx_page_number{#1}}}
+\mutable\lettonothing\currentbtxlastpage \permanent\protected\def\btxsetlastpage #1{\def\currentbtxlastpage {\btx_page_number{#1}}}
+
+\mutable\lettonothing\currentbtxfield
+\mutable\lettonothing\currentbtxfielddoi
+\mutable\lettonothing\currentbtxfieldmonth
+\mutable\lettonothing\currentbtxfieldyear
+\mutable\lettonothing\currentbtxfieldurl
+\mutable\lettonothing\currentbtxcriterium
+\mutable\lettonothing\currentbtxlist
+\mutable\lettonothing\currentbtxlistentry
+\mutable\lettonothing\currentbtxlistindex
+\mutable\lettonothing\currentbtxreference
+\mutable\lettonothing\currentbtxrenderingtitle
+\mutable\lettonothing\currentbtxcitetag
\mutable\def\currentbtxauthorvariant{normal}
\protected\def\btx_reset_list % not needed as we're grouped
- {\let\currentbtxcombis \empty
- \let\currentbtxcategory \empty
- \let\currentbtxinternal \empty
- \let\currentbtxlefttext \empty
- \let\currentbtxrighttext\empty
- \let\currentbtxbefore \empty
- \let\currentbtxafter \empty
- \let\currentbtxbacklink \empty
- \let\currentbtxlanguage \empty
- \let\currentbtxsuffix \empty
- %\let\currentbtxdataset \empty % will always be set
- %\let\currentbtxtag \empty % will always be set
- \let\currentbtxnumber \empty}
+ {\lettonothing\currentbtxcombis
+ \lettonothing\currentbtxcategory
+ \lettonothing\currentbtxinternal
+ \lettonothing\currentbtxlefttext
+ \lettonothing\currentbtxrighttext
+ \lettonothing\currentbtxbefore
+ \lettonothing\currentbtxafter
+ \lettonothing\currentbtxbacklink
+ \lettonothing\currentbtxlanguage
+ \lettonothing\currentbtxsuffix
+ %\lettonothing\currentbtxdataset % will always be set
+ %\lettonothing\currentbtxtag % will always be set
+ \lettonothing\currentbtxnumber}
\protected\def\btx_reset_cite % check for less .. not all resets needed when we're grouped (only subcites)
- {\let \currentbtxfirst \empty
- \let \currentbtxsecond \empty
- \let \currentbtxsuffix \empty
- \let \currentbtxinternal \empty
- \let \currentbtxlefttext \empty
- \let \currentbtxrighttext \empty
- \let \currentbtxbefore \empty
- \let \currentbtxafter \empty
- \let \currentbtxbacklink \empty
- \let \currentbtxlanguage \empty
- %\let \currentbtxdataset \empty % will always be set, beware of local reset ~
- %\let \currentbtxtag \empty % will always be set, beware of local reset ~
- \let \currentbtxnumber \empty
- \setconstant\currentbtxoverflow \zerocount
- \setconstant\currentbtxconcat \zerocount
- \setconstant\currentbtxcount \zerocount}
+ {\lettonothing\currentbtxfirst
+ \lettonothing\currentbtxsecond
+ \lettonothing\currentbtxsuffix
+ \lettonothing\currentbtxinternal
+ \lettonothing\currentbtxlefttext
+ \lettonothing\currentbtxrighttext
+ \lettonothing\currentbtxbefore
+ \lettonothing\currentbtxafter
+ \lettonothing\currentbtxbacklink
+ \lettonothing\currentbtxlanguage
+ %\lettonothing\currentbtxdataset % will always be set, beware of local reset ~
+ %\lettonothing\currentbtxtag % will always be set, beware of local reset ~
+ \lettonothing\currentbtxnumber
+ \setconstant\currentbtxoverflow\zerocount
+ \setconstant\currentbtxconcat\zerocount
+ \setconstant\currentbtxcount\zerocount}
\protected\def\btx_reset_page % probably not needed
- {\let \currentbtxfirstpage \empty
- \let \currentbtxlastpage \empty
- \let \currentbtxfirstinternal\empty
- \let \currentbtxlastinternal \empty
- \setconstant\currentbtxoverflow \zerocount
- \setconstant\currentbtxconcat \zerocount
- \setconstant\currentbtxcount \zerocount}
+ {\lettonothing\currentbtxfirstpage
+ \lettonothing\currentbtxlastpage
+ \lettonothing\currentbtxfirstinternal
+ \lettonothing\currentbtxlastinternal
+ \setconstant\currentbtxoverflow\zerocount
+ \setconstant\currentbtxconcat\zerocount
+ \setconstant\currentbtxcount\zerocount}
\protected\def\btx_reset_numbering % probably not needed
- {\let \currentbtxfirst \empty
- \let \currentbtxsecond\empty
- \let \currentbtxsuffix\empty
+ {\lettonothing\currentbtxfirst
+ \lettonothing\currentbtxsecond
+ \lettonothing\currentbtxsuffix
\setconstant\currentbtxconcat\zerocount}
%D Pages:
@@ -586,10 +587,10 @@
%D Lists:
-\newdimen\d_publ_number_width
+\newdimension\d_publ_number_width
-\ifdefined\btxblock \else \newcount\btxblock \fi \btxblock\plusone
-\ifdefined\btxcitecounter \else \newcount\btxcitecounter \fi % maybe pass this to lua
+\ifdefined\btxblock \else \newinteger\btxblock \fi \btxblock\plusone
+\ifdefined\btxcitecounter \else \newinteger\btxcitecounter \fi % maybe pass this to lua
\newtoks\everysetupbtxlistplacement % name will change
\newtoks\everysetupbtxciteplacement % name will change
@@ -775,9 +776,9 @@
\fi
%
\iflocation
- \letinteractionparameter\c!style\empty
-% \letinteractionparameter\c!color\empty
-% \letinteractionparameter\c!contrastcolor\empty
+ \resetinteractionparameter\c!style
+ %\resetinteractionparameter\c!color
+ %\resetinteractionparameter\c!contrastcolor
\fi
\to \everybtxlistrendering
@@ -805,9 +806,13 @@
\permanent\protected\def\btxdoifelsecombiinlist#1#2%
{\clf_btxdoifelsecombiinlist{#1}{#2}}
+\permanent\protected\def\btxdoifelsecitedone#1#2%
+ {\clf_btxdoifelsecitedone{#1}{#2}}
+
\aliased\let\btxdoifsameaspreviouscheckedelse\btxdoifelsesameaspreviouschecked
\aliased\let\btxdoifsameaspreviouselse \btxdoifelsesameasprevious
\aliased\let\btxdoifcombiinlistelse \btxdoifelsecombiinlist
+\aliased\let\btxdoifcitedoneelse \btxdoifelsecitedone
\tolerant\def\publ_place_list_indeed#1#2#*[#3]#*[#4]%
{\begingroup
@@ -873,6 +878,7 @@
filter {\btxrenderingparameter\c!filter}%
\relax
\ifnum\nofbtxlistentries>\zerocount
+ \clf_btxpreparelistentries{\currentbtxdataset}% could be put in collect
\forgetall
\btxrenderingparameter\c!before
\ifconditional#2\relax
@@ -891,7 +897,6 @@
\dostarttagged\t!list{btx}%
\startpacked[\v!blank]%
% sorting and so
- \clf_btxpreparelistentries{\currentbtxdataset}% could be put in collect
% next we analyze the width
\ifempty\currentbtxnumbering \else
\edef\p_width{\listparameter\c!width}%
@@ -901,7 +906,7 @@
\clf_btxfetchlistentries{\currentbtxdataset}%
\egroup
\d_publ_number_width\wd\scratchbox
- \letlistparameter\c!width\d_publ_number_width
+ \letlistparameter\c!width\d_publ_number_width % no need for _reference here, frozen
\fi
\fi
\doifelse{\listparameter\c!prefix}\v!yes\settrue\setfalse\c_publ_prefixed
@@ -919,12 +924,12 @@
\ifconditional#1\relax
\stopnamedsection
\fi
- \global\advance\btxblock\plusone
+ \global\advanceby\btxblock\plusone
\endgroup}
-\permanent\protected\def\placebtxrendering {\publ_place_list_indeed\conditionalfalse\conditionalfalse}
-\permanent\protected\def\completebtxrendering{\publ_place_list_indeed\conditionaltrue \conditionalfalse}
-\permanent\protected\def\flushbtxrendering {\publ_place_list_indeed\conditionalfalse\conditionaltrue }
+\permanent\protected\def\placebtxrendering {\publ_place_list_indeed\conditionalfalse\conditionalfalse}
+\permanent\protected\def\completebtxrendering {\publ_place_list_indeed\conditionaltrue \conditionalfalse}
+\permanent\protected\def\flushbtxrendering {\publ_place_list_indeed\conditionalfalse\conditionaltrue }
\aliased\let\completelistofpublications\completebtxrendering % for old times sake
\aliased\let\placelistofpublications \placebtxrendering % for old times sake
@@ -962,15 +967,15 @@
\permanent\protected\def\btxsetlisttag#1%
{\clf_btxflushlisttag{\currentbtxdataset}#1\relax}
-\newcount\c_btx_list_index
+\newinteger\c_btx_list_index
-\let\m_btx_list_action\empty
+\lettonothing\m_btx_list_action
\def\publ_flush_list_step_command
{\btxsetlisttag{\c_btx_list_index}
\expandafter\m_btx_list_action\expandafter{\currentbtxtag}%
\ifnum\c_btx_list_index<\nofbtxlistentries
- \advance\c_btx_list_index\plusone
+ \advanceby\c_btx_list_index\plusone
\expandafter\publ_flush_list_step_command
\else
\glet\m_btx_list_action\relax
@@ -980,7 +985,7 @@
{\btxsetlisttag{\c_btx_list_index}
\directsetup{\m_btx_list_action}%
\ifnum\c_btx_list_index<\nofbtxlistentries
- \advance\c_btx_list_index\plusone
+ \advanceby\c_btx_list_index\plusone
\expandafter\publ_flush_list_step_setup
\else
\glet\m_btx_list_action\relax
@@ -1043,11 +1048,11 @@
\permanent\protected\def\btxstartlistentry % maybe pass i
{\begingroup
- \global\advance\c_btx_list_reference\plusone}
+ \global\advanceby\c_btx_list_reference\plusone}
\permanent\protected\def\btxstoplistentry
{\iftrialtypesetting
- \global\advance\c_btx_list_reference\minusone
+ \global\advanceby\c_btx_list_reference\minusone
\fi
\endgroup}
@@ -1105,7 +1110,7 @@
\btx_reference_indeed
\egroup}
-\newcount\c_btx_list_reference
+\newinteger\c_btx_list_reference
\protected\def\btx_list_reference_inject
{\dontleavehmode\begingroup % no box
@@ -1166,8 +1171,8 @@
\aliased\let\btxcitereference\btx_cite_reference_inject
-\mutable\let\currentbtxnumbering \empty
-\mutable\let\currentbtxcitealternative \empty
+\mutable\lettonothing\currentbtxnumbering
+\mutable\lettonothing\currentbtxcitealternative
\appendtoks
\edef\currentbtxnumbering{\btxrenderingparameter\c!numbering}%
@@ -1177,7 +1182,7 @@
\letlistparameter\c!headnumber\v!always
\orelse\ifx\currentbtxnumbering\v!no
\letlistparameter\c!headnumber\v!no
- \let\currentbtxnumbering\empty
+ \lettonothing\currentbtxnumbering
% \letlistparameter\c!textcommand\outdented % needed? we can use titlealign
\letlistparameter\c!symbol \v!none
\letlistparameter\c!aligntitle \v!yes
@@ -1299,16 +1304,16 @@
\newconditional\btxinteractivetext
\newconditional\btxinteractivepage
-\mutable\let\currentbtxinteraction\empty
+\mutable\lettonothing\currentbtxinteraction
\installcorenamespace{btxinteraction}
-\setvalue{\??btxinteraction\v!number}{\settrue\btxinteractivenumber}
-\setvalue{\??btxinteraction\v!text }{\settrue\btxinteractivetext}
-\setvalue{\??btxinteraction\v!page }{\settrue\btxinteractivepage}
-\setvalue{\??btxinteraction\v!all }{\settrue\btxinteractivenumber
- \settrue\btxinteractivetext
- \settrue\btxinteractivepage}
+\defcsname\??btxinteraction\v!number\endcsname{\settrue\btxinteractivenumber}
+\defcsname\??btxinteraction\v!text \endcsname{\settrue\btxinteractivetext}
+\defcsname\??btxinteraction\v!page \endcsname{\settrue\btxinteractivepage}
+\defcsname\??btxinteraction\v!all \endcsname{\settrue\btxinteractivenumber
+ \settrue\btxinteractivetext
+ \settrue\btxinteractivepage}
% \setupbtx[interaction=page] % or text or number or all
% \setupbtxrendering[pagestate=start]
@@ -1319,7 +1324,7 @@
\ifx\currentbtxinteraction\v!stop
\setfalse\btxinteractive
\else
- \enforced\let\structurelistlocation\empty
+ \enforced\lettonothing\structurelistlocation
\settrue\btxinteractive
\begincsname\??btxinteraction\currentbtxinteraction\endcsname
\fi
@@ -1372,13 +1377,13 @@
% text : not to list, show in text
% always : mark for list, show in text
-\let\p_publ_cite_before \empty
-\let\p_publ_cite_after \empty
-\let\p_publ_cite_lefttext \empty
-\let\p_publ_cite_righttext\empty
+\lettonothing\p_publ_cite_before
+\lettonothing\p_publ_cite_after
+\lettonothing\p_publ_cite_lefttext
+\lettonothing\p_publ_cite_righttext
-\mutable\let\currentbtxciteuservariables\empty
-\mutable\let\currentbtxcitealternative \empty
+\mutable\lettonothing\currentbtxciteuservariables
+\mutable\lettonothing\currentbtxcitealternative
\permanent\protected\def\btxhybridcite % so one can alias the old
{\dontleavehmode
@@ -1389,7 +1394,7 @@
{\strictdoifelsenextoptional{\publ_cite_tags_options_indeed{#1}}{\publ_cite_tags_indeed{#1}}}
\protected\def\publ_cite_tags_indeed#1%
- {\letinteractionparameter\c!style\empty
+ {\resetinteractionparameter\c!style
\setbtxparametersetroot\s!cite % we need to get the default
\edef\currentbtxcitealternative{\btxparameter\c!alternative}%
\setbtxparameterset\s!cite\currentbtxcitealternative
@@ -1402,14 +1407,14 @@
{\doifelseassignment{#1}\publ_cite_tags_settings_indeed\publ_cite_tags_variants_indeed{#1}}
\def\publ_cite_tags_settings_indeed#1[#2]%
- {\letinteractionparameter\c!style\empty
- %\letinteractionparameter\c!color\empty
- \letdummyparameter\c!reference \empty
- \letdummyparameter\c!alternative\empty
- \letdummyparameter\c!before \empty
- \letdummyparameter\c!after \empty
- \letdummyparameter\c!lefttext \empty
- \letdummyparameter\c!righttext \empty
+ {\resetinteractionparameter\c!style
+ %\resetinteractionparameter\c!color
+ \resetdummyparameter\c!reference
+ \resetdummyparameter\c!alternative
+ \resetdummyparameter\c!before
+ \resetdummyparameter\c!after
+ \resetdummyparameter\c!lefttext
+ \resetdummyparameter\c!righttext
\getdummyparameters[#1]%
\edef\p_reference{\dummyparameter\c!reference}%
\ifempty\p_reference
@@ -1443,7 +1448,7 @@
\endgroup}
\def\publ_cite_tags_variants_indeed#1[#2]%
- {\letinteractionparameter\c!style\empty
+ {\resetinteractionparameter\c!style
\edef\currentbtxcitealternative{#1}%
\edef\currentbtxcitetag{#2}%
\setbtxparameterset\s!cite\currentbtxcitealternative
@@ -1502,7 +1507,7 @@
\permanent\protected\def\btxtextcitation {\publ_citation\v!text}
\permanent\protected\def\btxalwayscitation{\publ_citation\v!always}
-\tolerant\def\publ_citation#1[#2]#*[#3]% could be made more efficient but not now
+\tolerant\def\publ_citation#1[#2]#,[#3]% could be made more efficient but not now
{\dontleavehmode
\begingroup
\let\currentbtxcitemethod#1%
@@ -1526,8 +1531,14 @@
\endgroup
\fi}
+% \permanent\protected\def\btxmissing#1%
+% {\dontleavehmode{\tttf<#1>}}
+
+\permanent\protected\def\currentbtxmissingreference
+ {\clf_btxmissing{\currentbtxdataset}{\currentbtxreference}}
+
\permanent\protected\def\btxmissing#1%
- {\dontleavehmode{\tttf<#1>}}
+ {\dontleavehmode{\tttf<\clf_btxmissing{\currentbtxdataset}{#1}>}}
%D Compatibility:
@@ -1557,7 +1568,7 @@
%D Setup helpers, beware, we need to wrap this .. now we need to know
%D how setups are implemented.
-\setvalue{\??setup:\s!btx:\s!unknown}#1{\inframed{\tttf#1}}
+\defcsname\??setup:\s!btx:\s!unknown\endcsname#1{\inframed{\tttf#1}}
\def\publ_fast_setup_yes#1#2%
{\csname\??setup:\s!btx:%
@@ -1746,9 +1757,9 @@
% \installcorenamespace{btxjournal}
%
-% \letvalue{\s!btxjournal\v!long }\btxexpandedjournal
-% \letvalue{\s!btxjournal\v!short }\btxabbreviatedjournal
-% \letvalue{\s!btxjournal\v!normal}\firstofoneargument
+% \aliased\letcsname\s!btxjournal\v!long \endcsname\btxexpandedjournal
+% \aliased\letcsname\s!btxjournal\v!short \endcsname\btxabbreviatedjournal
+% \aliased\letcsname\s!btxjournal\v!normal\endcsname\firstofoneargument
%
% \protected\def\btxcheckedjournal
% {\expandnamespaceparameter\s!btxjournal\btxrenderingparameter\c!journalconversion}
@@ -1792,6 +1803,7 @@
filename {\dummyparameter\c!file}%
filetype {\dummyparameter\c!type}%
criterium {\dummyparameter\c!criterium}%
+ options {\dummyparameter\c!option}%
\relax
\endgroup}
@@ -1898,7 +1910,7 @@
% \btxusecommand[btx:apa:list:article:title]{foo}
% \btxstopstyle
-\mutable\let\m_btx_saved_current\empty
+\mutable\lettonothing\m_btx_saved_current
\permanent\protected\def\btxstartstyle[#1]%
{\begingroup
diff --git a/Master/texmf-dist/tex/context/base/mkxl/regi-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/regi-ini.lmt
new file mode 100644
index 00000000000..c0cd4f1c8ef
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/regi-ini.lmt
@@ -0,0 +1,367 @@
+if not modules then modules = { } end modules ['regi-ini'] = {
+ version = 1.001,
+ comment = "companion to regi-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[ldx--
+<p>Regimes take care of converting the input characters into
+<l n='utf'/> sequences. The conversion tables are loaded at
+runtime.</p>
+--ldx]]--
+
+local tostring = tostring
+local utfchar = utf.char
+local P, Cs, Cc, lpegmatch = lpeg.P, lpeg.Cs, lpeg.Cc, lpeg.match
+local char, gsub, format, gmatch, byte, match, lower = string.char, string.gsub, string.format, string.gmatch, string.byte, string.match, string.lower
+local next = next
+local insert, remove, fastcopy = table.insert, table.remove, table.fastcopy
+local concat = table.concat
+local totable = string.totable
+
+local allocate = utilities.storage.allocate
+local sequencers = utilities.sequencers
+local textlineactions = resolvers.openers.helpers.textlineactions
+local setmetatableindex = table.setmetatableindex
+
+-- We will hook regime handling code into the input methods.
+
+local trace_translating = false trackers.register("regimes.translating", function(v) trace_translating = v end)
+
+local report_loading = logs.reporter("regimes","loading")
+local report_translating = logs.reporter("regimes","translating")
+
+regimes = regimes or { }
+local regimes = regimes
+
+local mapping = allocate {
+ utf = false
+}
+
+local backmapping = allocate {
+}
+
+-- regimes.mapping = mapping
+
+local synonyms = { -- backward compatibility list
+
+ ["windows-1250"] = "cp1250",
+ ["windows-1251"] = "cp1251",
+ ["windows-1252"] = "cp1252",
+ ["windows-1253"] = "cp1253",
+ ["windows-1254"] = "cp1254",
+ ["windows-1255"] = "cp1255",
+ ["windows-1256"] = "cp1256",
+ ["windows-1257"] = "cp1257",
+ ["windows-1258"] = "cp1258",
+
+ ["il1"] = "8859-1",
+ ["il2"] = "8859-2",
+ ["il3"] = "8859-3",
+ ["il4"] = "8859-4",
+ ["il5"] = "8859-9",
+ ["il6"] = "8859-10",
+ ["il7"] = "8859-13",
+ ["il8"] = "8859-14",
+ ["il9"] = "8859-15",
+ ["il10"] = "8859-16",
+
+ ["iso-8859-1"] = "8859-1",
+ ["iso-8859-2"] = "8859-2",
+ ["iso-8859-3"] = "8859-3",
+ ["iso-8859-4"] = "8859-4",
+ ["iso-8859-9"] = "8859-9",
+ ["iso-8859-10"] = "8859-10",
+ ["iso-8859-13"] = "8859-13",
+ ["iso-8859-14"] = "8859-14",
+ ["iso-8859-15"] = "8859-15",
+ ["iso-8859-16"] = "8859-16",
+
+ ["latin1"] = "8859-1",
+ ["latin2"] = "8859-2",
+ ["latin3"] = "8859-3",
+ ["latin4"] = "8859-4",
+ ["latin5"] = "8859-9",
+ ["latin6"] = "8859-10",
+ ["latin7"] = "8859-13",
+ ["latin8"] = "8859-14",
+ ["latin9"] = "8859-15",
+ ["latin10"] = "8859-16",
+
+ ["utf-8"] = "utf",
+ ["utf8"] = "utf",
+ [""] = "utf",
+
+ ["windows"] = "cp1252",
+
+ ["pdf"] = "pdfdoc",
+
+ ["437"] = "ibm",
+}
+
+local currentregime = "utf"
+
+local function loadregime(mapping,regime)
+ regime = lower(tostring(regime))
+ regime = synonyms[regime] or synonyms["windows-"..regime] or regime
+ local name = resolvers.findfile(format("regi-%s.lua",regime)) or ""
+ local data = name ~= "" and dofile(name)
+ if data then
+ vector = { }
+ for eightbit, unicode in next, data do
+ vector[char(eightbit)] = utfchar(unicode)
+ end
+ report_loading("vector %a is loaded",regime)
+ else
+ vector = false
+ report_loading("vector %a is unknown",regime)
+ end
+ mapping[regime] = vector
+ return vector
+end
+
+local function loadreverse(t,k)
+ local t = { }
+ local m = mapping[k]
+ if m then
+ for k, v in next, m do
+ t[v] = k
+ end
+ end
+ backmapping[k] = t
+ return t
+end
+
+setmetatableindex(mapping, loadregime)
+setmetatableindex(backmapping,loadreverse)
+
+regimes.mapping = mapping
+regimes.backmapping = backmapping
+
+local function fromregime(regime,line)
+ if line and #line > 0 then
+ -- local map = mapping[regime and synonyms[regime] or regime or currentregime]
+ local map = mapping[regime or currentregime]
+ if map then
+ line = gsub(line,".",map)
+ end
+ end
+ return line
+end
+
+local cache = { } -- if really needed we can copy vectors and hash defaults
+
+setmetatableindex(cache, function(t,k)
+ local v = { remappers = { } }
+ t[k] = v
+ return v
+end)
+
+local function toregime(vector,str,default) -- toregime('8859-1',"abcde Ä","?")
+ local d = default or "?"
+ local c = cache[vector].remappers
+ local r = c[d]
+ if not r then
+ local t = fastcopy(backmapping[vector])
+ -- r = utf.remapper(t) -- not good for defaults here
+ local pattern = Cs((lpeg.utfchartabletopattern(t)/t + lpeg.patterns.utf8character/d + P(1)/d)^0)
+ r = function(str)
+ if not str or str == "" then
+ return ""
+ else
+ return lpegmatch(pattern,str)
+ end
+ end
+ c[d] = r
+ end
+ return r(str)
+end
+
+local function disable()
+ currentregime = "utf"
+ sequencers.disableaction(textlineactions,"regimes.process")
+ return currentregime
+end
+
+local function enable(regime)
+ regime = synonyms[regime] or regime
+ if mapping[regime] == false then
+ disable()
+ else
+ currentregime = regime
+ sequencers.enableaction(textlineactions,"regimes.process")
+ end
+ return currentregime
+end
+
+regimes.toregime = toregime
+regimes.fromregime = fromregime
+regimes.translate = function(str,regime) return fromregime(regime,str) end
+regimes.enable = enable
+regimes.disable = disable
+
+-- The following function can be used when we want to make sure that utf gets passed
+-- unharmed. This is needed for modules.
+
+local level = 0
+
+function regimes.process(str,filename,currentline,noflines,coding)
+ if level == 0 and coding ~= "utf-8" then
+ str = fromregime(currentregime,str)
+ if trace_translating then
+ report_translating("utf: %s",str)
+ end
+ end
+ return str
+end
+
+local function push()
+ level = level + 1
+ if trace_translating then
+ report_translating("pushing level %s",level)
+ end
+end
+
+local function pop()
+ if level > 0 then
+ if trace_translating then
+ report_translating("popping level %s",level)
+ end
+ level = level - 1
+ end
+end
+
+regimes.push = push
+regimes.pop = pop
+
+function regimes.list()
+ local name = resolvers.findfile(format("regi-ini.lua",regime)) or ""
+ local okay = { }
+ if name then
+ local list = dir.glob(file.join(file.dirname(name),"regi-*.lua"))
+ for i=1,#list do
+ local name = list[i]
+ if name ~= "regi-ini.lua" then
+ okay[#okay+1] = match(name,"regi%-(.-)%.lua")
+ end
+ table.sort(okay)
+ end
+ end
+ return okay
+end
+
+sequencers.prependaction(textlineactions,"system","regimes.process")
+sequencers.disableaction(textlineactions,"regimes.process")
+
+-- Next we provide some hacks. Unfortunately we run into crappy encoded (read:
+-- mixed) encoded xml files that have these ë ä ö ü sequences instead of ë ä ö ü
+-- etc.
+
+local patterns = { }
+
+function regimes.cleanup(regime,str)
+ if not str or str == "" then
+ return str
+ end
+ local p = patterns[regime]
+ if p == nil then
+ regime = regime and synonyms[regime] or regime or currentregime
+ local vector = regime ~= "utf" and regime ~= "utf-8" and mapping[regime]
+ if vector then
+ local mapping = { }
+ for k, v in next, vector do
+ local split = totable(v)
+ for i=1,#split do
+ split[i] = utfchar(byte(split[i]))
+ end
+ split = concat(split)
+ if v ~= split then
+ mapping[split] = v
+ end
+ end
+ p = Cs((lpeg.utfchartabletopattern(mapping)/mapping+P(1))^0)
+ else
+ p = false
+ end
+ patterns[regime] = p
+ end
+ return p and lpegmatch(p,str) or str
+end
+
+-- local old = [[test ë ä ö ü crap]]
+-- local new = regimes.cleanup("cp1252",old)
+-- report_translating("%s -> %s",old,new)
+-- local old = "Pozn" .. char(0xE1) .. "mky"
+-- local new = fromregime("cp1250",old)
+-- report_translating("%s -> %s",old,new)
+
+-- interface (might move to regi-tex.lua)
+
+if interfaces then
+
+ local implement = interfaces.implement
+ local setmacro = interfaces.setmacro
+
+ implement {
+ name = "enableregime",
+ public = true,
+ protected = true,
+ arguments = "optional",
+ actions = function(regime) setmacro("currentregime",enable(regime)) end
+ }
+
+ implement {
+ name = "disableregime",
+ public = true,
+ protected = true,
+ actions = function() setmacro("currentregime",disable()) end
+ }
+
+ implement {
+ name = "pushregime",
+ public = true,
+ protected = true,
+ actions = push
+ }
+
+ implement {
+ name = "popregime",
+ public = true,
+ protected = true,
+ actions = pop
+ }
+
+ local stack = { }
+
+ implement {
+ name = "startregime",
+ public = true,
+ protected = true,
+ arguments = "optional",
+ actions = function(regime)
+ insert(stack,currentregime)
+ if trace_translating then
+ report_translating("start using %a",regime)
+ end
+ setmacro("currentregime",enable(regime))
+ end
+ }
+
+ implement {
+ name = "stopregime",
+ public = true,
+ protected = true,
+ actions = function()
+ if #stack > 0 then
+ local regime = remove(stack)
+ if trace_translating then
+ report_translating("stop using %a",regime)
+ end
+ setmacro("currentregime",enable(regime))
+ end
+ end
+ }
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/regi-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/regi-ini.mkxl
index 515b6afd6f9..da5bdf0816e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/regi-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/regi-ini.mkxl
@@ -11,27 +11,30 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\registerctxluafile{regi-ini}{}
+\registerctxluafile{regi-ini}{autosuffix}
\unprotect
%D \macros
%D {enableregime,disableregime,
%D startregime,stopregime,
+%D pushregime, popregime,
%D currentregime}
%D
%D Beware, the enable and disable commands are global switches, so best use the
%D start|/|stop commands.
-\mutable\let\currentregime\empty
+\mutable\lettonothing\currentregime
-\permanent\protected\def\enableregime[#1]{\clf_enableregime{#1}}
-\permanent\protected\def\disableregime {\clf_disableregime}
-\permanent\protected\def\startregime [#1]{\clf_startregime{#1}}
-\permanent\protected\def\stopregime {\clf_stopregime}
-
-% only for diagnostics:
-
-% \def\codepagename#1{\cldcontext{os.tocodepage("#1")}}
+%D These are defined at the \LUA\ end:
+%D
+%D \starttyping
+%D \enableregime[#1]
+%D \disableregime
+%D \startregime [#1]
+%D \stopregime
+%D \pushregime
+%D \popregime
+%D \stoptyping
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/scrn-bar.mklx b/Master/texmf-dist/tex/context/base/mkxl/scrn-bar.mklx
index 4cfcbde817e..5fbd47d6cf9 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/scrn-bar.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/scrn-bar.mklx
@@ -64,7 +64,7 @@
{\iflocation
\begingroup
\ifhastok={#tag}%
- \let\currentinteractionbar\empty
+ \lettonothing\currentinteractionbar
\setupcurrentinteractionbar[#tag]%
\edef\currentinteractionbar{\interactionbarparameter\c!alternative}%
\else
@@ -76,10 +76,10 @@
\endgroup
\fi}
-\newdimen\d_scrn_bar_width
-\newdimen\d_scrn_bar_height
-\newdimen\d_scrn_bar_depth
-\newdimen\d_scrn_bar_distance
+\newdimension\d_scrn_bar_width
+\newdimension\d_scrn_bar_height
+\newdimension\d_scrn_bar_depth
+\newdimension\d_scrn_bar_distance
%D Interaction buttons, in fact a row of tiny buttons, are typically only used for
%D navigational purposed. The next macro builds such a row based on a specification
@@ -112,7 +112,7 @@
\def\scrn_bar_buttons_indeed#settings#list%
{\begingroup
- %\let\currentinteractionbar\empty
+ %\lettonothing\currentinteractionbar
\setupcurrentinteractionbar[#settings]%
\d_scrn_bar_width \interactionbarparameter\c!width\relax
\d_scrn_bar_distance\interactionbarparameter\c!distance\relax
@@ -121,7 +121,7 @@
\fi
\doifnothing{\interactionbarparameter\c!height}{\letinteractionbarparameter\c!height\v!broad}%
\doifnothing{\interactionbarparameter\c!depth }{\letinteractionbarparameter\c!depth\zeropoint}%%%
- \letinteractionbarparameter\c!background\empty
+ \resetinteractionbarparameter\c!background
\setbox2\hbox{\inheritedinteractionbarframed{\symbol[\interactionparameter\c!symbolset][\v!previouspage]}}%
\scratchheight\ht2 % needed because we default to nothing
\letinteractionbarparameter\c!strut\v!no
@@ -129,17 +129,17 @@
\scratchcounterone\zerocount % new, was 1
\processallactionsinset
[#list]
- [ \v!page=>\advance\scratchcounterone\plusfour,
- \v!subpage=>\advance\scratchcounterone\plusfour,
- \s!unknown=>\advance\scratchcounterone\plusone]%
+ [ \v!page=>\advanceby\scratchcounterone\plusfour,
+ \v!subpage=>\advanceby\scratchcounterone\plusfour,
+ \s!unknown=>\advanceby\scratchcounterone\plusone]%
\ifzeropt\d_scrn_bar_width
\scratchdimenone\dimexpr2\emwidth+\d_scrn_bar_distance\relax
\scratchdimentwo\dimexpr\scratchcounterone\scratchdimenone-\d_scrn_bar_distance\relax
\else
\scratchdimenone\d_scrn_bar_width
\scratchdimentwo\dimexpr\scratchcounterone\d_scrn_bar_distance-\d_scrn_bar_distance\relax
- \advance\scratchdimenone -\scratchdimentwo
- \divide\scratchdimenone \scratchcounterone
+ \advanceby\scratchdimenone -\scratchdimentwo
+ \divideby\scratchdimenone \scratchcounterone
\scratchdimentwo\d_scrn_bar_width
\fi
\hbox to \scratchdimentwo
@@ -167,9 +167,6 @@
\def\scrn_bar_goto#action%
{\button{\symbol[#action]}[#action]\hss}
-% todo: this will be \letblackruleparameter\c!width\scratchdimenone (faster)
-% todo: make these setups
-
\def\scrn_bar_alternative_a
{\d_scrn_bar_width \interactionbarparameter\c!width
\d_scrn_bar_distance\interactionbarparameter\c!distance
@@ -306,23 +303,23 @@
\doloop
{\scratchcounterthree\numexpr(\nofsubpages/\recurselevel)+\plusone\relax % rounding
\scratchdimentwo\d_scrn_bar_distance
- \multiply\scratchdimentwo \scratchcounterthree
- \advance\scratchdimentwo -\d_scrn_bar_distance
+ \multiplyby\scratchdimentwo \scratchcounterthree
+ \advanceby\scratchdimentwo -\d_scrn_bar_distance
\scratchdimenone\d_scrn_bar_width
- \advance\scratchdimenone -\scratchdimentwo
- \divide\scratchdimenone \scratchcounterthree
+ \advanceby\scratchdimenone -\scratchdimentwo
+ \divideby\scratchdimenone \scratchcounterthree
\ifdim\scratchdimenone<\d_scrn_bar_distance\else
\scratchcountertwo\recurselevel
\exitloop
\fi}%
\ifnum\scratchcounterthree>\plusone
% this is not that well tested
- \advance\scratchcounterthree \minustwo
+ \advanceby\scratchcounterthree \minustwo
\scratchdimenone-\d_scrn_bar_distance
\scratchdimenone\scratchcounterthree\scratchdimenone
- \advance\scratchdimenone \d_scrn_bar_width
- \advance\scratchcounterthree \plusone
- \divide\scratchdimenone \scratchcounterthree
+ \advanceby\scratchdimenone \d_scrn_bar_width
+ \advanceby\scratchcounterthree \plusone
+ \divideby\scratchdimenone \scratchcounterthree
\fi
\doifelse{\interactionbarparameter\c!symbol}\v!yes
{\setupsymbolset[\interactionparameter\c!symbolset]%
@@ -334,7 +331,7 @@
\scratchcounterfive\zerocount
\dostepwiserecurse\firstsubpage\lastsubpage\plusone
{\donefalse
- \advance\scratchcounterfive \plusone
+ \advanceby\scratchcounterfive \plusone
\ifnum\recurselevel=\firstsubpage\relax \donetrue \fi
\ifnum\recurselevel=\lastsubpage \relax \donetrue \fi
\scratchcountersix\therealsubpageno\recurselevel\relax
diff --git a/Master/texmf-dist/tex/context/base/mkxl/scrn-but.mklx b/Master/texmf-dist/tex/context/base/mkxl/scrn-but.mklx
index 9832ffbbb26..e227516183d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/scrn-but.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/scrn-but.mklx
@@ -328,8 +328,8 @@
\aliased\let\setupinteractionmenus\setupinteractionmenu
-\mutable\let\currentinteractionmenudistance\empty
-\mutable\let\currentinteractionmenustate \empty
+\mutable\lettonothing\currentinteractionmenudistance
+\mutable\lettonothing\currentinteractionmenustate
\let\scrn_menu_action\relax
@@ -418,23 +418,23 @@
%D After all, menus need some setup anyway. The offsets are added to the width or
%D height (this is different from \MKII).
-\newbox \b_scrn_menu
+\newbox \b_scrn_menu
-\newdimen\d_scrn_menu_next_distance
-\newdimen\d_scrn_menu_final_width
-\newdimen\d_scrn_menu_final_height
-\newdimen\d_scrn_menu_used_width
-\newdimen\d_scrn_menu_used_height
-\newdimen\d_scrn_menu_asked_width
-\newdimen\d_scrn_menu_asked_height
-\newdimen\d_scrn_menu_offset_top
-\newdimen\d_scrn_menu_offset_bottom
-\newdimen\d_scrn_menu_offset_left
-\newdimen\d_scrn_menu_offset_right
+\newdimension\d_scrn_menu_next_distance
+\newdimension\d_scrn_menu_final_width
+\newdimension\d_scrn_menu_final_height
+\newdimension\d_scrn_menu_used_width
+\newdimension\d_scrn_menu_used_height
+\newdimension\d_scrn_menu_asked_width
+\newdimension\d_scrn_menu_asked_height
+\newdimension\d_scrn_menu_offset_top
+\newdimension\d_scrn_menu_offset_bottom
+\newdimension\d_scrn_menu_offset_left
+\newdimension\d_scrn_menu_offset_right
\newconditional\c_scrn_menu_zerodimensions
-\mutable\let\currentinteractionmenulocation\empty
+\mutable\lettonothing\currentinteractionmenulocation
\def\scrn_menu_set_used
{\d_scrn_menu_offset_left \ifchkdim\interactionmenuparameter\c!leftoffset \or\lastchkdim\else\zeropoint\fi
@@ -475,14 +475,14 @@
\ht\b_scrn_menu\d_scrn_menu_asked_height
\dp\b_scrn_menu\zeropoint}
-\setvalue{\??menualign\v!right }{\let\scrn_menu_left_align\raggedright}
-\setvalue{\??menualign\v!left }{\let\scrn_menu_left_align\raggedleft}
-\setvalue{\??menualign\v!flushright}{\let\scrn_menu_left_align\raggedleft}
-\setvalue{\??menualign\v!flushleft }{\let\scrn_menu_left_align\raggedright}
-\setvalue{\??menualign\v!middle }{\let\scrn_menu_left_align\raggedcenter}
-\setvalue{\??menualign\v!low }{\let\scrn_menu_top_align\vss\let\scrn_menu_bottom_align\relax}
-\setvalue{\??menualign\v!high }{\let\scrn_menu_top_align\relax\let\scrn_menu_bottom_align\vss}
-\setvalue{\??menualign\v!lohi }{\let\scrn_menu_top_align\vss\let\scrn_menu_bottom_align\vss}
+\defcsname\??menualign\v!right \endcsname{\let\scrn_menu_left_align\raggedright}
+\defcsname\??menualign\v!left \endcsname{\let\scrn_menu_left_align\raggedleft}
+\defcsname\??menualign\v!flushright\endcsname{\let\scrn_menu_left_align\raggedleft}
+\defcsname\??menualign\v!flushleft \endcsname{\let\scrn_menu_left_align\raggedright}
+\defcsname\??menualign\v!middle \endcsname{\let\scrn_menu_left_align\raggedcenter}
+\defcsname\??menualign\v!low \endcsname{\let\scrn_menu_top_align\vss\let\scrn_menu_bottom_align\relax}
+\defcsname\??menualign\v!high \endcsname{\let\scrn_menu_top_align\relax\let\scrn_menu_bottom_align\vss}
+\defcsname\??menualign\v!lohi \endcsname{\let\scrn_menu_top_align\vss\let\scrn_menu_bottom_align\vss}
\let\scrn_menu_left_align \relax
\let\scrn_menu_right_align \relax
@@ -490,7 +490,7 @@
\let\scrn_menu_bottom_align\relax
\def\scrn_menu_set_align
- {\csname\??menualign\interactionmenuparameter\c!itemalign\endcsname}
+ {\begincsname\??menualign\interactionmenuparameter\c!itemalign\endcsname}
%D Hook into the pagebuilder (as less testing as possible):
@@ -523,13 +523,13 @@
\let\scrn_menu_packager\relax
-\setvalue{\??menupacker\v!vertical}% all menus
+\defcsname\??menupacker\v!vertical\endcsname % all menus
{\let\scrn_menu_packager\scrn_menu_packager_vertical
\setbox\b_scrn_menu\hbox{\scrn_menu_actions\currentinteractionmenulocation}%
\scrn_menu_apply_final
\box\b_scrn_menu}
-\setvalue{\??menupacker\v!horizontal}% all menus
+\defcsname\??menupacker\v!horizontal\endcsname % all menus
{\let\scrn_menu_packager\scrn_menu_packager_horizontal
\setbox\b_scrn_menu\vbox{\scrn_menu_actions\currentinteractionmenulocation}%
\scrn_menu_apply_final
@@ -608,7 +608,7 @@
%D positional info. The status variable is 0, 1 or~2: not found, found and found but
%D current page.
-\newcount \c_scrn_menu_position
+\newinteger \c_scrn_menu_position
\newconstant \c_scrn_menu_page_mode % 0=notfound 1=found 2=currentpage
\newconditional\c_scrn_menu_positioning
\newtoks \t_scrn_menu_meta_data
@@ -682,13 +682,13 @@
\endgroup
\ignorespaces}
-\aliased\let\startraw \aliased\let\stopraw\relax \ifdefined\raw\else \aliased\let\raw\relax \fi
-\aliased\let\startbut \aliased\let\stopbut\relax \ifdefined\but\else \aliased\let\but\relax \fi
-\aliased\let\startgot \aliased\let\stopgot\relax \ifdefined\got\else \aliased\let\got\relax \fi
-\aliased\let\startnop \aliased\let\stopnop\relax \ifdefined\nop\else \aliased\let\nop\relax \fi
-\aliased\let\starttxt \aliased\let\stoptxt\relax \ifdefined\txt\else \aliased\let\txt\relax \fi
-\aliased\let\startrul \aliased\let\stoprul\relax \ifdefined\rul\else \aliased\let\rul\relax \fi
-\aliased\let\startcom \aliased\let\stopcom\relax \ifdefined\com\else \aliased\let\com\relax \fi
+\aliased\let\startraw\relax \aliased\let\stopraw\relax \ifdefined\raw\else \aliased\let\raw\relax \fi
+\aliased\let\startbut\relax \aliased\let\stopbut\relax \ifdefined\but\else \aliased\let\but\relax \fi
+\aliased\let\startgot\relax \aliased\let\stopgot\relax \ifdefined\got\else \aliased\let\got\relax \fi
+\aliased\let\startnop\relax \aliased\let\stopnop\relax \ifdefined\nop\else \aliased\let\nop\relax \fi
+\aliased\let\starttxt\relax \aliased\let\stoptxt\relax \ifdefined\txt\else \aliased\let\txt\relax \fi
+\aliased\let\startrul\relax \aliased\let\stoprul\relax \ifdefined\rul\else \aliased\let\rul\relax \fi
+\aliased\let\startcom\relax \aliased\let\stopcom\relax \ifdefined\com\else \aliased\let\com\relax \fi
\protected\def\scrn_menu_raw_start[#action]#text\stopraw
{\scrn_menu_action_start
@@ -711,7 +711,7 @@
\scrn_menu_action_stop}
\def\scrn_button_make_position#currentparameter#inheritedframed#letparameter#setparameter#text#action%
- {\global\advance\c_scrn_menu_position\plusone
+ {\global\advanceby\c_scrn_menu_position\plusone
\doifelsereferencefound{#action}% 0=not found, 1=same page, >1=elsewhere
{\c_scrn_menu_page_mode\ifnum\currentreferencerealpage=\realpageno\plusone\else\plustwo\fi}%
{\c_scrn_menu_page_mode\plustwo}%
@@ -729,7 +729,7 @@
\permanent\protected\def\scrn_menu_got_start[#action]#text\stopgot
{\scrn_menu_action_start
\letinteractionmenuparameter\c!frame\v!off
- \letinteractionmenuparameter\c!background\empty
+ \resetinteractionmenuparameter\c!background
\scrn_button_make
\interactionmenuparameter
\inheritedinteractionmenuframed
@@ -742,7 +742,7 @@
\permanent\protected\def\scrn_menu_nop_start#text\stopnop
{\scrn_menu_action_start
\letinteractionmenuparameter\c!frame\v!off
- \letinteractionmenuparameter\c!background\empty
+ \resetinteractionmenuparameter\c!background
\letinteractionmenuparameter\c!empty\v!yes
\inheritedinteractionmenuframed{\ignorespaces#text\removeunwantedspaces}%
\scrn_menu_action_stop}
@@ -750,7 +750,7 @@
\permanent\protected\def\scrn_menu_txt_start#text\stoptxt
{\scrn_menu_action_start
\letinteractionmenuparameter\c!frame\v!off
- \letinteractionmenuparameter\c!background\empty
+ \resetinteractionmenuparameter\c!background
\inheritedinteractionmenuframed{\ignorespaces#text\removeunwantedspaces}%
\scrn_menu_action_stop}
@@ -763,13 +763,13 @@
{\ignorespaces#text\removeunwantedspaces
\ignorespaces}
-\permanent\protected\def\scrn_menu_raw#content\\{\scrn_menu_raw_start#content\stopraw} \aliased\let\stopraw\relax
-\permanent\protected\def\scrn_menu_but#content\\{\scrn_menu_but_start#content\stopbut} \aliased\let\stopbut\relax
-\permanent\protected\def\scrn_menu_got#content\\{\scrn_menu_got_start#content\stopgot} \aliased\let\stopgot\relax
-\permanent\protected\def\scrn_menu_nop#content\\{\scrn_menu_nop_start#content\stopnop} \aliased\let\stopnop\relax
-\permanent\protected\def\scrn_menu_txt#content\\{\scrn_menu_txt_start#content\stoptxt} \aliased\let\stoptxt\relax
-\permanent\protected\def\scrn_menu_rul#content\\{\scrn_menu_rul_start#content\stoprul} \aliased\let\stoprul\relax
-\permanent\protected\def\scrn_menu_com#content\\{\scrn_menu_com_start#content\stopcom} \aliased\let\stopcom\relax
+\permanent\protected\def\scrn_menu_raw#content\\{\scrn_menu_raw_start#content\stopraw}
+\permanent\protected\def\scrn_menu_but#content\\{\scrn_menu_but_start#content\stopbut}
+\permanent\protected\def\scrn_menu_got#content\\{\scrn_menu_got_start#content\stopgot}
+\permanent\protected\def\scrn_menu_nop#content\\{\scrn_menu_nop_start#content\stopnop}
+\permanent\protected\def\scrn_menu_txt#content\\{\scrn_menu_txt_start#content\stoptxt}
+\permanent\protected\def\scrn_menu_rul#content\\{\scrn_menu_rul_start#content\stoprul}
+\permanent\protected\def\scrn_menu_com#content\\{\scrn_menu_com_start#content\stopcom}
\newtoks\everysetmenucommands % public
@@ -1005,7 +1005,7 @@
\def\scrn_menu_menu_button_b#settings#dummy#text#action%
{\dontleavehmode \begingroup
- \let\currentbutton\empty
+ \lettonothing\currentbutton
\setupcurrentbutton[#settings]%
\scrn_button_make
\buttonparameter
diff --git a/Master/texmf-dist/tex/context/base/mkxl/scrn-fld.mklx b/Master/texmf-dist/tex/context/base/mkxl/scrn-fld.mklx
index 6c134268c60..d5dadcb78bf 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/scrn-fld.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/scrn-fld.mklx
@@ -110,13 +110,13 @@
\setupforms
[\c!method=XML] % no need for everyjob initialization as this is the default
-\mutable\let\currentfieldbackgroundcolor \empty
-\mutable\let\currentfieldbackgroundcolorvalue\empty
-\mutable\let\currentfieldbodycategory \empty
-\mutable\let\currentfieldframecolor \empty
-\mutable\let\currentfieldframecolorvalue \empty
-\mutable\let\currentfieldlabel \empty
-\mutable\let\currentfieldstackname \empty
+\mutable\lettonothing\currentfieldbackgroundcolor
+\mutable\lettonothing\currentfieldbackgroundcolorvalue
+\mutable\lettonothing\currentfieldbodycategory
+\mutable\lettonothing\currentfieldframecolor
+\mutable\lettonothing\currentfieldframecolorvalue
+\mutable\lettonothing\currentfieldlabel
+\mutable\lettonothing\currentfieldstackname
\appendtoks
\iflocation
@@ -327,7 +327,7 @@
%D (implemented as properties).
\appendtoks
- \let\currentfieldcategory\empty
+ \lettonothing\currentfieldcategory
\doifelse{\interactionparameter\c!fieldlayer}\v!auto
{\setupcurrentfieldcategory[\c!fieldlayer=\currentviewerlayer]}%
{\setupcurrentfieldcategory[\c!fieldlayer=]}%
@@ -476,13 +476,13 @@
\newconditional\fieldisvertical
\newconditional\fieldishorizontal
-\mutable\let\currentfieldtotalframed \empty
-\mutable\let\currentfieldlabelframed \empty
-\mutable\let\currentfieldcontentframed\empty
+\mutable\lettonothing\currentfieldtotalframed
+\mutable\lettonothing\currentfieldlabelframed
+\mutable\lettonothing\currentfieldcontentframed
-\mutable\let\fieldtotalframedparameterhash \empty % weird that we have to flag this
-\mutable\let\fieldlabelframedparameterhash \empty % idem
-\mutable\let\fieldcontentframedparameterhash\empty % idem
+\mutable\lettonothing\fieldtotalframedparameterhash % weird that we have to flag this
+\mutable\lettonothing\fieldlabelframedparameterhash % idem
+\mutable\lettonothing\fieldcontentframedparameterhash % idem
\permanent\tolerant\protected\def\field[#tag]#spacer[#label]% can be sped up with \setupcurrentfieldtotalframed etc
{\iflocation
@@ -620,12 +620,12 @@
%D Common stuff (obsolete)
-\newcount\c_scrn_field_system_n
+\newinteger\c_scrn_field_system_n
\permanent\def\currentsystemfield{sys::\number\c_scrn_field_system_n}
\permanent\protected\def\nextsystemfield
- {\global\advance\c_scrn_field_system_n\plusone}
+ {\global\advanceby\c_scrn_field_system_n\plusone}
%D \CONTEXT\ had tooltips right from the moment that it supported fields. Due to the
%D at that moment somewhat limited \PDF\ specification, they were implemented using
@@ -640,9 +640,9 @@
%D before \tooltip[left]{inbetween}{a very nice tip} after\par
%D \stoptyping
-\newbox \b_scrn_tooltip_anchor
-\newbox \b_scrn_tooltip_text
-\newcount\c_scrn_tooltip_n
+\newbox \b_scrn_tooltip_anchor
+\newbox \b_scrn_tooltip_text
+\newinteger\c_scrn_tooltip_n
\installcorenamespace{tooltip}
@@ -670,12 +670,12 @@
\tolerant\def\scrn_tooltip_ignore[#settings]#:#anchortext#tiptext%
{#anchortext}
-\mutable\let\currenttooltipname\empty
+\mutable\lettonothing\currenttooltipname
\tolerant\def\scrn_tooltip_indeed[#settings]#:#anchortext#tiptext% a more modern aproach (push buttons)
{\dontleavehmode \hbox \bgroup
\dontcomplain
- \global\advance\c_scrn_tooltip_n\plusone
+ \global\advanceby\c_scrn_tooltip_n\plusone
\edef\currenttooltipname{tooltip:\number\c_scrn_tooltip_n}%
\setbox\b_scrn_tooltip_anchor\hbox
{\strut#anchortext}%
@@ -683,7 +683,7 @@
{\setupcurrenttooltip[#settings]}%
{\setupcurrenttooltip[\c!location=#settings]}%
\setbox\b_scrn_tooltip_text\hbox
- {\lettooltipparameter\c!location\empty
+ {\resettooltipparameter\c!location
\inheritedtooltipframed{#tiptext}}%
\definesymbol
[\currenttooltipname:txt]
@@ -763,7 +763,7 @@
\definesymbol[\s!empty][]
\def\scrn_fieldstack_add#tag#settings#symbol%
- {\advance\scratchcounter\plusone
+ {\advanceby\scratchcounter\plusone
\edef\currentfieldstackname{#tag:\number\scratchcounter}%
\ifnum\scratchcounter=\fieldcategoryparameter\c!start\relax
\definefieldbody[\currentfieldstackname][\c!type=check,\c!values={#symbol,\s!empty},\c!default={#symbol}]%
@@ -811,13 +811,13 @@
%D \framed[background=WithTest]{toggle}
%D \stoptyping
-\newcount\c_scrn_rollbutton_n
+\newinteger\c_scrn_rollbutton_n
\permanent\tolerant\protected\def\overlayrollbutton[#1]#*[#2]#;#=#=%
{\iflocation
\bgroup
- \global\advance\c_scrn_rollbutton_n_button\plusone
- \global\advance\c_scrn_rollbutton_n_symbol\plusone
+ \global\advanceby\c_scrn_rollbutton_n_button\plusone
+ \global\advanceby\c_scrn_rollbutton_n_symbol\plusone
\definesymbol
[rollsymbol:\number\c_scrn_rollbutton_n_symbol]
[{\framed[\c!frame=\v!off,\c!width=\overlaywidth,\c!height=\overlayheight]{}}]%
@@ -866,7 +866,7 @@
% \stopTEXpage
% \stoptext
-\newcount\c_scrn_pushbutton_n
+\newinteger\c_scrn_pushbutton_n
\permanent\tolerant\protected\def\definepushbutton[#tag]#spacer[#settings]%
{\scrn_pushbutton_define_variant{#tag}{n}{push}%
@@ -881,7 +881,7 @@
\def\scrn_pushbutton_handle#tag#settings#reference%
{\bgroup
- \global\advance\c_scrn_pushbutton_n\plusone
+ \global\advanceby\c_scrn_pushbutton_n\plusone
\setupfield
[pushbutton]%
[\c!frame=\v!overlay,%
@@ -949,8 +949,8 @@
r=green,
d=blue]
-\newcount\c_scrn_rollbutton_n_button
-\newcount\c_scrn_rollbutton_n_symbol
+\newinteger\c_scrn_rollbutton_n_button
+\newinteger\c_scrn_rollbutton_n_symbol
\permanent\def\lastrollbuttonindex{\the\c_scrn_rollbutton_n_button}
@@ -978,15 +978,15 @@
\permanent\tolerant\protected\def\rollbutton[#tag]#spacer[#settings]#:#text[#reference]%
{\dontleavehmode
\bgroup
- \global\advance\c_scrn_rollbutton_n_button\plusone
- \global\advance\c_scrn_rollbutton_n_symbol\plusone
+ \global\advanceby\c_scrn_rollbutton_n_button\plusone
+ \global\advanceby\c_scrn_rollbutton_n_symbol\plusone
\ifparameter#tag\or
\ifparameter#settings\or
\edef\currentinteractionmenu{#tag}%
\setupcurrentinteractionmenu[#settings]%
\let\scrn_rollbutton_symbol\scrn_rollbutton_symbol_m
\orelse\ifhastok={#tag}%
- \let\currentbutton\empty
+ \lettonothing\currentbutton
\setupcurrentbutton[#tag]%
\let\scrn_rollbutton_symbol\scrn_rollbutton_symbol_b
\else
diff --git a/Master/texmf-dist/tex/context/base/mkxl/scrn-hlp.mklx b/Master/texmf-dist/tex/context/base/mkxl/scrn-hlp.mklx
index da2afd0d0c1..9f0c5dbdd07 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/scrn-hlp.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/scrn-hlp.mklx
@@ -53,8 +53,8 @@
% also status
-\newbox \b_scrn_help_box
-\newcount\c_scrn_help_n
+\newbox \b_scrn_help_box
+\newinteger\c_scrn_help_n
\definesystemattribute[help][public]
@@ -74,12 +74,12 @@
\frozen\instance\protected\edefcsname\e!stop \currenthelp\endcsname{\scrn_help_stop }%
\to \everydefinehelp
-\mutable\let\currenthelpreference\empty
-\mutable\let\currenthelpname \empty
+\mutable\lettonothing\currenthelpreference
+\mutable\lettonothing\currenthelpname
\protected\def\scrn_help_argument#category%
{\def\currenthelp{#category}%
- \global\advance\c_scrn_help_n\plusone
+ \global\advanceby\c_scrn_help_n\plusone
\edef\currenthelpname{help:\number\c_scrn_help_n}%
\doifelselocation\scrn_help_argument_indeed\scrn_help_argument_ignore}
@@ -98,7 +98,7 @@
{#target}
\tolerant\protected\def\scrn_help_start#category#spacer[#reference]%
- {\global\advance\c_scrn_help_n\plusone
+ {\global\advanceby\c_scrn_help_n\plusone
\edef\currenthelp{#category}%
\edef\currenthelpreference{#reference}%
\edef\currenthelpname{help:\number\c_scrn_help_n}%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/scrn-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/scrn-ini.lmt
new file mode 100644
index 00000000000..2d01a1a28ef
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/scrn-ini.lmt
@@ -0,0 +1,62 @@
+if not modules then modules = { } end modules ['scrn-ini'] = {
+ version = 1.001,
+ comment = "companion to scrn-int.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local next = next
+
+-- We delay preroll because it needs a font and don't want to force a font load (at
+-- startup) because we preset a field so some are tokenlists as we need to preserve
+-- catcodes.
+
+interactions = { }
+interactions.general = interactions.general or { }
+local general = interactions.general
+
+local expand_macro = token.expand_macro
+
+local prerolled = { }
+local identitydata = { }
+
+local function setidentityvariable(key,value)
+ prerolled[key] = value
+end
+
+table.setmetatableindex(identitydata, function(t,k)
+ if k == "keywords" then
+ k = "keyword"
+ end
+ -- fetch and process at the tex end (catcode etc)
+ expand_macro("scrn_identity_get",true,k)
+ -- return the registered return value
+ local v = prerolled[k] or ""
+ if k == "title" and v == "" then
+ v = tex.jobname
+ end
+ return v
+end)
+
+function general.getidentityvariable(name)
+ return identitydata[name]
+end
+
+function general.getidentity()
+ return identitydata
+end
+
+interfaces.implement {
+ name = "setidentityvariable",
+ actions = setidentityvariable,
+ arguments = "2 strings",
+}
+
+interfaces.implement {
+ name = "setautoprefix",
+ actions = function(prefix)
+ backends.codeinjections.setautoprefix(prefix)
+ end,
+ arguments = "string",
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/scrn-ini.mklx b/Master/texmf-dist/tex/context/base/mkxl/scrn-ini.mklx
index c0246bc8328..1308ff6ec9b 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/scrn-ini.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/scrn-ini.mklx
@@ -15,7 +15,7 @@
\unprotect
-\registerctxluafile{scrn-ini}{}
+\registerctxluafile{scrn-ini}{autosuffix}
%D There is no interaction at all unless enabled by saying:
%D
@@ -184,56 +184,11 @@
%D Identity
-% \newconditional\c_scrn_identity_preroll
-%
-% \installtexdirective
-% {interaction.identity.preroll}
-% {\settrue \c_scrn_identity_preroll}
-% {\setfalse\c_scrn_identity_preroll}
-%
-% \def\scrn_identity_prerolled#1%
-% {\begingroup
-% \edef\tempstring{\interactionparameter#1}%
-% \ifempty\tempstring
-% \endgroup
-% \else
-% \the\everypreroll
-% \nodestostring\tempstring{\tempstring}%
-% \normalexpanded{\endgroup\setexpandedinteractionparameter{#1}{\tempstring}}%
-% \fi}
-%
-% \def\scrn_identity_synchronize
-% {\begingroup
-% \ifconditional\c_scrn_identity_preroll
-% \scrn_identity_prerolled\c!title
-% \scrn_identity_prerolled\c!subtitle
-% \scrn_identity_prerolled\c!author
-% \scrn_identity_prerolled\c!date
-% \scrn_identity_prerolled\c!keyword
-% \fi
-% \clf_setupidentity
-% title {\interactionparameter\c!title}%
-% subtitle {\interactionparameter\c!subtitle}%
-% author {\interactionparameter\c!author}%
-% % creator {ConTeXt - \contextversion}%
-% date {\interactionparameter\c!date}%
-% keywords {\interactionparameter\c!keyword}%
-% \relax
-% \endgroup}
-
-\def\scrn_identity_synchronize
- {\clf_setupidentity
- title {\prerolltostring{\interactionparameter\c!title}}%
- subtitle {\prerolltostring{\interactionparameter\c!subtitle}}%
- author {\prerolltostring{\interactionparameter\c!author}}%
- % creator {ConTeXt - \contextversion}% fixed
- date {\prerolltostring{\interactionparameter\c!date}}%
- keywords {\prerolltostring{\interactionparameter\c!keyword}}%
- \relax}
+%D We want to delay the preroll as it needs fonts so we now actively fetch from
+%D the \LUA\ end. So this one gets called by the time we need the value.
-\appendtoks
- \scrn_identity_synchronize
-\to \everysetupinteraction
+\def\scrn_identity_get#1%
+ {\clf_setidentityvariable{#1}{\prerolltostring{\interactionparameter{#1}}}}
% this comes before starttext
@@ -251,4 +206,8 @@
\scrn_identity_document {date}\c!date
\to \everystartdocument % or stop
+\appendtoks
+ \clf_setautoprefix{\interactionparameter\c!prefix}%
+\to \everysetupinteraction
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/scrn-pag.mklx b/Master/texmf-dist/tex/context/base/mkxl/scrn-pag.mklx
index 09c542678fd..312051d0c05 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/scrn-pag.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/scrn-pag.mklx
@@ -24,20 +24,20 @@
\installparameterhandler \??interactionscreen {interactionscreen}
\installsetuphandler \??interactionscreen {interactionscreen}
-\newdimen\canvaswidth
-\newdimen\canvasheight
-\newdimen\canvasbackoffset
-\newdimen\canvastopoffset
-\newdimen\canvasmaxwidth
-\newdimen\canvasmaxheight
-\newdimen\canvascropoffset
-\newdimen\canvastrimoffset
-\newdimen\canvasbleedoffset
-\newdimen\canvasartoffset
-
-\mutable\let\currentinteractionscreendelay \empty
-\mutable\let\currentinteractionscreenheight\empty
-\mutable\let\currentinteractionscreenwidth \empty
+\newdimension\canvaswidth
+\newdimension\canvasheight
+\newdimension\canvasbackoffset
+\newdimension\canvastopoffset
+\newdimension\canvasmaxwidth
+\newdimension\canvasmaxheight
+\newdimension\canvascropoffset
+\newdimension\canvastrimoffset
+\newdimension\canvasbleedoffset
+\newdimension\canvasartoffset
+
+\mutable\lettonothing\currentinteractionscreendelay
+\mutable\lettonothing\currentinteractionscreenheight
+\mutable\lettonothing\currentinteractionscreenwidth
\newconditional\c_scrn_canvas_tight_page
@@ -65,10 +65,10 @@
\donefalse
\ifdim\backspace>\canvaswidth
\ifdim\backspace>\zeropoint\relax
- \global\advance\canvasbackoffset -\canvaswidth
+ \global\advanceby\canvasbackoffset -\canvaswidth
\fi
\fi
- \global\advance\canvaswidth\dimexpr
+ \global\advanceby\canvaswidth\dimexpr
\makeupwidth
+ \rightcombitotal
+ 2\dimexpr
@@ -100,10 +100,10 @@
\global\canvasheight\dimexpr\topheight+\topdistance\relax
\ifdim\topspace>\canvasheight
\ifdim\topspace>\zeropoint\relax
- \global\advance\canvastopoffset -\canvasheight
+ \global\advanceby\canvastopoffset -\canvasheight
\fi
\fi
- \global\advance\canvasheight\dimexpr
+ \global\advanceby\canvasheight\dimexpr
\makeupheight
+ \bottomdistance
+ \bottomheight
@@ -140,10 +140,10 @@
\fi
\endgroup}
-\newdimen\layoutcropoffset
-\newdimen\layouttrimoffset
-\newdimen\layoutbleedoffset
-\newdimen\layoutartoffset
+\newdimension\layoutcropoffset
+\newdimension\layouttrimoffset
+\newdimension\layoutbleedoffset
+\newdimension\layoutartoffset
\appendtoks
\edef\p_cropoffset{\layoutparameter\c!cropoffset}%
@@ -210,7 +210,7 @@
}
\appendtoks
- \let\scrn_canvas_synchronize_common\empty
+ \lettonothing\scrn_canvas_synchronize_common
\to \everyaftershipout
\def\scrn_canvas_synchronize_only
@@ -289,12 +289,12 @@
%D Page transitions:
-\let\scrn_transitions_list\empty
+\lettonothing\scrn_transitions_list
\permanent\tolerant\protected\def\setuppagetransitions[#list]%
{\edef\scrn_transitions_list{#list}%
\ifx\scrn_transitions_list\v!reset
- \let\scrn_transitions_list\empty
+ \lettonothing\scrn_transitions_list
\fi}
\def\scrn_transitions_set
diff --git a/Master/texmf-dist/tex/context/base/mkxl/scrn-ref.lmt b/Master/texmf-dist/tex/context/base/mkxl/scrn-ref.lmt
new file mode 100644
index 00000000000..be298e2d1d2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/scrn-ref.lmt
@@ -0,0 +1,57 @@
+if not modules then modules = { } end modules ['scrn-ref'] = {
+ version = 1.001,
+ comment = "companion to scrn-int.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+interactions = interactions or { }
+interactions.references = interactions.references or { }
+local references = interactions.references
+
+local codeinjections = backends.codeinjections
+
+local identify = structures.references.identify
+
+local implement = interfaces.implement
+
+local function check(what)
+ if what and what ~= "" then
+ local set, bug = identify("",what)
+ return not bug and #set > 0 and set
+ end
+end
+
+function references.setopendocumentaction(open)
+ local opendocument = check(open)
+ if opendocument then
+ codeinjections.registerdocumentopenaction(opendocument)
+ end
+end
+
+function references.setclosedocumentaction(close)
+ local closedocument = check(close)
+ if closedocument then
+ codeinjections.registerdocumentcloseaction(closedocument)
+ end
+end
+
+function references.setopenpageaction(open)
+ local openpage = check(open)
+ if openpage then
+ codeinjections.registerpageopenaction(openpage)
+ end
+end
+
+function references.setclosepageaction(close)
+ local closepage = check(close)
+ if closepage then
+ codeinjections.registerpagecloseaction(closepage)
+ end
+end
+
+implement { name = "setopendocumentaction", arguments = "string", actions = references.setopendocumentaction }
+implement { name = "setclosedocumentaction", arguments = "string", actions = references.setclosedocumentaction }
+implement { name = "setopenpageaction", arguments = "string", actions = references.setopenpageaction }
+implement { name = "setclosepageaction", arguments = "string", actions = references.setclosepageaction }
diff --git a/Master/texmf-dist/tex/context/base/mkxl/scrn-ref.mklx b/Master/texmf-dist/tex/context/base/mkxl/scrn-ref.mklx
index 63f76a0920d..b86677ab238 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/scrn-ref.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/scrn-ref.mklx
@@ -13,18 +13,18 @@
\writestatus{loading}{ConTeXt Screen Macros / References}
-\registerctxluafile{scrn-ref}{}
+\registerctxluafile{scrn-ref}{autosuffix}
\unprotect
\appendtoks
\doifsomething{\interactionparameter\c!calculate}%
{\clf_setfieldcalculationset{\interactionparameter\c!calculate}}%
- \doifelse{\interactionparameter\c!click }\v!yes
+ \doifelse{\interactionparameter\c!click}\v!yes
\settrue\setfalse\highlighthyperlinks
\doifelse{\interactionparameter\c!display}\v!new
\settrue\setfalse\gotonewwindow
- \doifnot {\interactionparameter\c!page}\v!no
+ \doifnot{\interactionparameter\c!page}\v!no
\scrn_reference_enable_page_destinations
\to \everysetupinteraction
@@ -51,10 +51,10 @@
\enabledirectives[destinations.offset=\the\dimexpr\interactionparameter\c!focusoffset\relax]%
\to \everysetupinteraction
-\mutable\let\currentinteractioncloseaction \empty
-\mutable\let\currentinteractionclosepageaction\empty
-\mutable\let\currentinteractionopenaction \empty
-\mutable\let\currentinteractionopenpageaction \empty
+\mutable\lettonothing\currentinteractioncloseaction
+\mutable\lettonothing\currentinteractionclosepageaction
+\mutable\lettonothing\currentinteractionopenaction
+\mutable\lettonothing\currentinteractionopenpageaction
%D We have to make sure of some settings:
diff --git a/Master/texmf-dist/tex/context/base/mkxl/scrn-wid.lmt b/Master/texmf-dist/tex/context/base/mkxl/scrn-wid.lmt
new file mode 100644
index 00000000000..caa09adbd93
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/scrn-wid.lmt
@@ -0,0 +1,317 @@
+if not modules then modules = { } end modules ['scrn-wid'] = {
+ version = 1.001,
+ comment = "companion to scrn-wid.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- Support for interactive features is handled elsewhere. Now that is some mess! In
+-- the early days one had media features like sound and movies that were easy to set
+-- up. Then at some point renditions came around which were more work and somewhat
+-- unreliable. Now, both mechanism are obsolete and replaced by rich media which is
+-- a huge mess and has no real concept of what media are supported. There's flash
+-- cq. shockwave (basically obsolete too), and for instance mp4 needs to be handled
+-- by a swf player, and there's u3d which somehow has its own specification. One
+-- would expect native support for video and audio to be en-par with browsers but
+-- alas ... pdf has lost the battle with html here due to a few decades of
+-- unstability and changing support. So far we could catch on and even were ahead
+-- but I wonder if we should keep doing that. As we can't trust support for media we
+-- can better not embed anything and just use a hyperlink to an external resource. No
+-- sane person will create media rich pdf's as long as it's that unpredictable. Just
+-- look at the specification and viewer preferences and decide.
+
+local next = next
+
+interactions = interactions or { }
+local interactions = interactions
+
+local context = context
+local implement = interfaces.implement
+
+local allocate = utilities.storage.allocate
+
+local attachments = allocate()
+local comments = allocate()
+local renderings = allocate()
+local linkedlists = allocate()
+
+interactions.attachments = attachments
+interactions.renderings = renderings
+interactions.linkedlists = linkedlists
+
+local texsetbox = tex.setbox
+
+local jobpasses = job.passes
+
+local texgetcount = tex.getcount
+
+local codeinjections = backends.codeinjections
+local nodeinjections = backends.nodeinjections
+
+local variables = interfaces.variables
+local v_auto = variables.auto
+
+local trace_attachments = false trackers.register("widgets.attachments", function(v) trace_attachments = v end)
+
+local report_attachments = logs.reporter("widgets","attachments")
+
+-- Symbols
+
+implement {
+ name = "presetsymbollist",
+ arguments = "string",
+ actions = function(list)
+ codeinjections.presetsymbollist(list)
+ end
+}
+
+-- Attachments
+--
+-- registered : unique id
+-- tag : used at the tex end
+-- file : name that the file has on the filesystem
+-- name : name that the file will get in the output
+-- title : up to the backend
+-- subtitle : up to the backend
+-- author : up to the backend
+-- method : up to the backend (hidden == no rendering)
+
+local nofautoattachments, lastregistered = 0, nil
+
+local function checkregistered(specification)
+ local registered = specification.registered
+ if not registered or registered == "" or registered == v_auto then
+ nofautoattachments = nofautoattachments + 1
+ lastregistered = "attachment-" .. nofautoattachments
+ specification.registered = lastregistered
+ return lastregistered
+ else
+ return registered
+ end
+end
+
+local function checkbuffer(specification)
+ local buffer = specification.buffer
+ if buffer ~= "" then
+ specification.data = buffers.getcontent(buffer) or "<no data>"
+ end
+end
+
+function attachments.register(specification) -- beware of tag/registered mixup(tag is namespace)
+ local registered = checkregistered(specification)
+ checkbuffer(specification)
+ attachments[registered] = specification
+ if trace_attachments then
+ report_attachments("registering %a",registered)
+ end
+ return specification
+end
+
+function attachments.insert(specification)
+ local registered = checkregistered(specification)
+ local r = attachments[registered]
+ if r then
+ if trace_attachments then
+ report_attachments("including registered %a",registered)
+ end
+ for k, v in next, r do
+ local s = specification[k]
+ if s == "" then
+ specification[k] = v
+ end
+ end
+ elseif trace_attachments then
+ report_attachments("including unregistered %a",registered)
+ end
+ checkbuffer(specification)
+ return nodeinjections.attachfile(specification)
+end
+
+implement {
+ name = "registerattachment",
+ actions = attachments.register,
+ arguments = {
+ {
+ { "tag" },
+ { "registered" },
+ { "title" },
+ { "subtitle" },
+ { "author" },
+ { "file" },
+ { "name" },
+ { "buffer" },
+ { "mimetype" },
+ }
+ }
+}
+
+implement {
+ name = "insertattachment",
+ actions = function(specification)
+ texsetbox("b_scrn_attachment_link",(attachments.insert(specification)))
+ end,
+ arguments = {
+ {
+ { "tag" },
+ { "registered" },
+ { "method" },
+ { "width", "dimen" },
+ { "height", "dimen" },
+ { "depth", "dimen" },
+ { "colormodel", "integer" },
+ { "colorvalue", "integer" },
+ { "color" },
+ { "transparencyvalue", "integer" },
+ { "symbol" },
+ { "layer" },
+ { "title" },
+ { "subtitle" },
+ { "author" },
+ { "file" },
+ { "name" },
+ { "buffer" },
+ { "mimetype" },
+ }
+ }
+}
+
+-- Comment
+
+function comments.insert(specification)
+ local buffer = specification.buffer
+ if buffer ~= "" then
+ specification.data = buffers.getcontent(buffer) or ""
+ end
+ return nodeinjections.comment(specification)
+end
+
+implement {
+ name = "insertcomment",
+ actions = function(specification)
+ texsetbox("b_scrn_comment_link",(comments.insert(specification)))
+ end,
+ arguments = {
+ {
+ { "tag" },
+ { "title" },
+ { "subtitle" },
+ { "author" },
+ { "width", "dimen" },
+ { "height", "dimen" },
+ { "depth", "dimen" },
+ { "nx" },
+ { "ny" },
+ { "colormodel", "integer" },
+ { "colorvalue", "integer" },
+ { "transparencyvalue", "integer" },
+ { "option" },
+ { "symbol" },
+ { "buffer" },
+ { "layer" },
+ { "space" },
+ }
+ }
+}
+
+-- Renderings
+
+function renderings.register(specification)
+ if specification.label then
+ renderings[specification.label] = specification
+ return specification
+ end
+end
+
+function renderings.rendering(label)
+ local rn = renderings[label]
+ if not rn then
+ -- todo: message
+ return renderings.register { label = label }
+ else
+ return rn
+ end
+end
+
+function renderings.var(label,key)
+ local rn = renderings[label]
+ return rn and rn[key] or ""
+end
+
+implement {
+ name = "renderingvar",
+ actions = { renderings.var, context },
+ arguments = "2 strings",
+}
+
+implement {
+ name = "registerrendering",
+ actions = renderings.register,
+ arguments = {
+ {
+ { "label" },
+ { "mime" },
+ { "filename" },
+ { "option" },
+ }
+ }
+}
+
+-- Rendering:
+
+implement {
+ name = "insertrenderingwindow",
+ actions = function(specification)
+ codeinjections.insertrenderingwindow(specification)
+ end,
+ arguments = {
+ {
+ { "label" },
+ { "width", "dimen" },
+ { "height", "dimen" },
+ { "option" },
+ { "page", "integer" },
+ { "openpage" },
+ { "closepage" },
+ }
+ }
+}
+
+-- Linkedlists (only a context interface)
+
+implement {
+ name = "definelinkedlist",
+ arguments = "string",
+ actions = function(tag)
+ -- no need
+ end
+}
+
+implement {
+ name = "enhancelinkedlist",
+ arguments = { "string", "integer" },
+ actions = function(tag,n)
+ local ll = jobpasses.gettobesaved(tag)
+ if ll then
+ ll[n] = texgetcount("realpageno")
+ end
+ end
+}
+
+implement {
+ name = "addlinklistelement",
+ arguments = "string",
+ actions = function(tag)
+ local tobesaved = jobpasses.gettobesaved(tag)
+ local collected = jobpasses.getcollected(tag) or { }
+ local currentlink = #tobesaved + 1
+ local noflinks = #collected
+ tobesaved[currentlink] = 0
+ local f = collected[1] or 0
+ local l = collected[noflinks] or 0
+ local p = collected[currentlink-1] or f
+ local n = collected[currentlink+1] or l
+ context.setlinkedlistproperties(currentlink,noflinks,f,p,n,l)
+ -- context.ctxlatelua(function() commands.enhancelinkedlist(tag,currentlink) end)
+ end
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/scrn-wid.mklx b/Master/texmf-dist/tex/context/base/mkxl/scrn-wid.mklx
index 5d1d67a99d2..382635882e6 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/scrn-wid.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/scrn-wid.mklx
@@ -13,7 +13,7 @@
\writestatus{loading}{ConTeXt Interaction Macros / Widgets}
-\registerctxluafile{scrn-wid}{}
+\registerctxluafile{scrn-wid}{autosuffix}
% todo: expansion in comments (default is expanded)
% todo: check renderings ... acrobat crashes too easily on missing one
@@ -94,11 +94,11 @@
\c!depth=\v!fit,
\c!location=\v!high]
-\mutable\let\currentattachmentdepth \empty
-\mutable\let\currentattachmentheight \empty
-\mutable\let\currentattachmentregistered\empty
-\mutable\let\currentattachmentsymbol \empty
-\mutable\let\currentattachmentwidth \empty
+\mutable\lettonothing\currentattachmentdepth
+\mutable\lettonothing\currentattachmentheight
+\mutable\lettonothing\currentattachmentregistered
+\mutable\lettonothing\currentattachmentsymbol
+\mutable\lettonothing\currentattachmentwidth
\permanent\tolerant\protected\def\registerattachment[#tag]#spacer[#settings]% we save (globally) at the lua end
{\ifarguments\else
@@ -171,7 +171,7 @@
\setupattachment[\currentattachment][#settings]%
\expandnamespaceparameter\??attachmentmethod\attachmentparameter\c!method\v!normal}
-\setvalue{\??attachmentmethod\v!normal}%
+\defcsname\??attachmentmethod\v!normal\endcsname
{\edef\currentattachmentsymbol{\attachmentparameter\c!symbol}%
\edef\currentattachmentwidth {\attachmentparameter\c!width }%
\edef\currentattachmentheight{\attachmentparameter\c!height}%
@@ -214,7 +214,7 @@
\dp\b_scrn_attachment_link\currentattachmentdepth
\expandnamespaceparameter\??attachmentlocation\attachmentparameter\c!location\s!unknown}
-\setvalue{\??attachmentmethod\v!hidden}%
+\defcsname\??attachmentmethod\v!hidden\endcsname
{\clf_insertattachment
tag {\currentattachment}%
registered {\currentattachmentregistered}%
@@ -249,14 +249,14 @@
\let\scrn_attachment_flush\scrn_attachment_flush_normal
-\setvalue{\??attachmentlocation\v!inmargin }{\inmargin {\scrn_attachment_flush}}
-\setvalue{\??attachmentlocation\v!leftedge }{\inleftedge {\scrn_attachment_flush}}
-\setvalue{\??attachmentlocation\v!rightedge }{\inrightedge {\scrn_attachment_flush}}
-\setvalue{\??attachmentlocation\v!leftmargin }{\inleftmargin {\scrn_attachment_flush}}
-\setvalue{\??attachmentlocation\v!rightmargin}{\inrightmargin{\scrn_attachment_flush}}
-\setvalue{\??attachmentlocation\v!high }{\high {\scrn_attachment_flush}}
+\defcsname\??attachmentlocation\v!inmargin \endcsname{\inmargin {\scrn_attachment_flush}}
+\defcsname\??attachmentlocation\v!leftedge \endcsname{\inleftedge {\scrn_attachment_flush}}
+\defcsname\??attachmentlocation\v!rightedge \endcsname{\inrightedge {\scrn_attachment_flush}}
+\defcsname\??attachmentlocation\v!leftmargin \endcsname{\inleftmargin {\scrn_attachment_flush}}
+\defcsname\??attachmentlocation\v!rightmargin\endcsname{\inrightmargin{\scrn_attachment_flush}}
+\defcsname\??attachmentlocation\v!high \endcsname{\high {\scrn_attachment_flush}}
-\setvalue{\??attachmentlocation\v!none}%
+\defcsname\??attachmentlocation\v!none\endcsname
{\global\setbox\b_scrn_attachment_collect\hbox\bgroup
\ifvoid\b_scrn_attachment_collect\else
\box\b_scrn_attachment_collect
@@ -265,7 +265,7 @@
\scrn_attachment_flush
\egroup}
-\setvalue{\??attachmentlocation\s!unknown}%
+\defcsname\??attachmentlocation\s!unknown\endcsname
{\ifvoid\b_scrn_attachment_collect\else
\box\b_scrn_attachment_collect
\fi}
@@ -403,15 +403,15 @@
\c!buffer=\v!comment,
\c!location=\v!high]
-\mutable\let\currentcommentdepth \empty
-\mutable\let\currentcommentheight\empty
-\mutable\let\currentcommentsymbol\empty
-\mutable\let\currentcommentwidth \empty
+\mutable\lettonothing\currentcommentdepth
+\mutable\lettonothing\currentcommentheight
+\mutable\lettonothing\currentcommentsymbol
+\mutable\lettonothing\currentcommentwidth
\appendtoks
- \frozen\instance\setuevalue \currentcomment {\scrn_comment_argument[\currentcomment]}%
- \frozen\instance\setuevalue{\e!start\currentcomment}{\scrn_comment_start [\currentcomment]}%
- \frozen\instance\setuevalue{\e!stop \currentcomment}{\scrn_comment_stop }%
+ \frozen\protected\instance\edefcsname \currentcomment\endcsname{\scrn_comment_argument[\currentcomment]}%
+ \frozen\protected\instance\edefcsname\e!start\currentcomment\endcsname{\scrn_comment_start [\currentcomment]}%
+ \frozen\protected\instance\edefcsname\e!stop \currentcomment\endcsname{\scrn_comment_stop }%
\to \everydefinecomment
\tolerant\protected\def\scrn_comment_argument[#category]#spacer[#title]#spacer[#settings]#:#text%%
@@ -461,7 +461,7 @@
%D Beware: comments symbols don't scale in acrobat (cf. spec but somewhat
%D weird, esp because for instance attachment symbols do scale).
-\setvalue{\??commentmethods\v!normal}%
+\defcsname\??commentmethods\v!normal\endcsname
{\edef\currentcommentsymbol{\commentparameter\c!symbol}%
\edef\currentcommentwidth {\commentparameter\c!width }%
\edef\currentcommentheight{\commentparameter\c!height}%
@@ -502,7 +502,7 @@
\dp\b_scrn_comment_link\currentcommentdepth
\expandnamespaceparameter\??commentlocation\commentparameter\c!location\s!unknown}
-\letvalue{\??commentmethods\v!hidden}\donothing
+\aliased\letcsname\??commentmethods\v!hidden\endcsname\donothing
\protected\def\scrn_comment_flush_traced
{\hpack\bgroup
@@ -527,14 +527,14 @@
% todo: dedicated margin classes
-\setvalue{\??commentlocation\v!inmargin }{\inmargin {\scrn_comment_flush}}
-\setvalue{\??commentlocation\v!leftedge }{\inleftedge {\scrn_comment_flush}}
-\setvalue{\??commentlocation\v!rightedge }{\inrightedge {\scrn_comment_flush}}
-\setvalue{\??commentlocation\v!leftmargin }{\inleftmargin {\scrn_comment_flush}}
-\setvalue{\??commentlocation\v!rightmargin}{\inrightmargin{\scrn_comment_flush}}
-\setvalue{\??commentlocation\v!high }{\high {\scrn_comment_flush}}
+\defcsname\??commentlocation\v!inmargin \endcsname{\inmargin {\scrn_comment_flush}}
+\defcsname\??commentlocation\v!leftedge \endcsname{\inleftedge {\scrn_comment_flush}}
+\defcsname\??commentlocation\v!rightedge \endcsname{\inrightedge {\scrn_comment_flush}}
+\defcsname\??commentlocation\v!leftmargin \endcsname{\inleftmargin {\scrn_comment_flush}}
+\defcsname\??commentlocation\v!rightmargin\endcsname{\inrightmargin{\scrn_comment_flush}}
+\defcsname\??commentlocation\v!high \endcsname{\high {\scrn_comment_flush}}
-\setvalue{\??commentlocation\v!none}%
+\defcsname\??commentlocation\v!none\endcsname
{\global\setbox\b_scrn_comment_collect\hbox\bgroup
\ifvoid\b_scrn_comment_collect\else
\box\b_scrn_comment_collect
@@ -543,7 +543,7 @@
\scrn_comment_flush
\egroup}
-\setvalue{\??commentlocation\s!unknown}%
+\defcsname\??commentlocation\s!unknown\endcsname
{\ifvoid\b_scrn_comment_collect\else
\box\b_scrn_comment_collect
\fi}
@@ -559,96 +559,69 @@
% \definecomment[\v!comment]
% \fi
-%D Soundclips:
+%D Conform Michals recommendations support for the old movie (and sound) annotations
+%D has been removed. This also means that movies are no longer a valid external figure
+%D format. So be it.
%D
-%D Defining sound tracks:
+%D Renderings (adapted to \MKIV\ by Michal Vlasák). We no longer have the \MKII\ internal
+%D and external rendering because over time all this widget stuff changed in \PDF\ and
+%D Acrobat.
%D
%D \starttyping
-%D \useexternalsoundtrack[label][file]
-%D \stoptyping
-%D
-%D associated actions: StartSound StopSound PauseSound ResumeSound
+%D \setupinteraction[state=start]
%D
-%D Todo: like external figures, also search on path,
-%D although, they need to be present ar viewing time, so ...
-
-\installcorenamespace{externalsoundtracks}
-
-\installsetuponlycommandhandler \??externalsoundtracks {externalsoundtracks}
-
-\setupexternalsoundtracks
- [\c!option=]
-
-\permanent\tolerant\protected\def\useexternalsoundtrack[#tag]#spacer[#filename]%
- {\clf_registersoundclip
- tag {#tag}%
- file {#filename}%
- \relax}
-
-\permanent\def\checksoundtrack#tag% yet untested in mkiv (also move management to lua)
- {\iflocation
- \clf_insertsoundclip
- tag {#tag}%
- repeat {\directexternalsoundtracksparameter\c!option}%
- \relax
- \fi}
-
-%D Renderings (not yet tested in mkvi):
-
-% Todo: multiple instances and inheritance .. will be done when needed i.e. when I
-% see usage. Probaly by that time this feature is dropped (as are other media
-% rel;ated ones).
-
-\mutable\let\currentrendering \empty
-\mutable\let\currentrenderingtype \empty
-\mutable\let\currentrenderingwindow\empty
+%D \starttext
+%D \startTEXpage[offset=10pt]
+%D % \definerenderingwindow[myrenderingwindow][width=\textwidth, height=\textwidth]
+%D % \definerenderingwindow[myrenderingwindow][width=\textwidth, height=\textwidth, openpageaction=StartRendering{myvideo}]
+%D \definerenderingwindow[myrenderingwindow][width=\textwidth, height=\textwidth, openpageaction=StartCurrentRendering, closepageaction=StopCurrentRendering]
+%D % \userendering[myvideo][video/mp4][edited.mp4][embed=yes, auto]
+%D \userendering[myvideo][video/mp4][woodwork.mp4][embed=yes, auto]
+%D % auto = openpageaction=StartCurrentRendering, closepageaction=StopCurrentRendering
+%D \placerenderingwindow[myrenderingwindow][myvideo]
+%D \blank
+%D \goto{start}[StartRendering{myvideo}]
+%D \goto{stop}[StopRendering{myvideo}]
+%D \stopTEXpage
+%D \stoptext
+%D \stoptyping
-\definereference[StartCurrentRendering] [\v!StartRendering {\currentrendering}]
-\definereference[StopCurrentRendering] [\v!StopRendering {\currentrendering}]
-\definereference[PauseCurrentRendering] [\v!PauseRendering {\currentrendering}]
-\definereference[ResumeCurrentRendering][\v!ResumeRendering{\currentrendering}]
+\mutable\lettonothing\currentrendering
+\mutable\lettonothing\currentrenderingwindow
-\permanent\tolerant\protected\def\useexternalrendering[#tag]#spacer[#mime]#spacer[#file]#spacer[#option]%
+\permanent\tolerant\protected\def\userendering[#tag]#spacer[#mime]#spacer[#file]#spacer[#option]%
{\clf_registerrendering
- type {external}%
label {#tag}%
mime {#mime}%
filename {#file}%
option {#option}%
\relax}
-\permanent\tolerant\protected\def\setinternalrendering[#tag]#spacer[#option]% {content} % crappy
- {\bgroup
- \dowithnextbox
- {\clf_registerrendering
- type {internal}%
- label {#tag}%
- mime {IRO}% brrr
- filename {#tag}%
- option {#option}%
- \relax
- \let\objectoffset\zeropoint
- \setobject{IRO}{#tag}\hpack{\box\nextbox}%
- \egroup}%
- \hbox}
+\permanent\tolerant\protected\let\useexternalrendering\userendering
-\permanent\def\renderingtype #tag{\clf_renderingvar{#tag}{type}}
\permanent\def\renderingoption#tag{\clf_renderingvar{#tag}{option}}
-\newdimen\d_scrn_rendering_width \d_scrn_rendering_width 8cm
-\newdimen\d_scrn_rendering_height \d_scrn_rendering_height 6cm
+\newdimension\d_scrn_rendering_width \d_scrn_rendering_width 8cm
+\newdimension\d_scrn_rendering_height \d_scrn_rendering_height 6cm
\let\m_scrn_rendering_page\!!zerocount
+%D \starttyping
+%D \definerenderingwindow[soundplace][width=0pt, height=0pt]
+%D \useexternalrendering[mainsound][audio/mp3][sound.mp3][embed=yes]
+%D \placerenderingwindow[soundplace][mainsound]
+%D \stoptyping
+
\installcorenamespace{renderingwindow}
\installframedcommandhandler \??renderingwindow {renderingwindow} \??renderingwindow
\appendtoks
- \letrenderingwindowparameter\c!openpageaction \empty
- \letrenderingwindowparameter\c!closepageaction\empty
- \setrenderingwindowparameter\c!width {\d_scrn_rendering_width }%
- \setrenderingwindowparameter\c!height {\d_scrn_rendering_height}%
+ \resetrenderingwindowparameter\c!openpageaction
+ \resetrenderingwindowparameter\c!closepageaction
+ \setrenderingwindowparameter \c!width {\d_scrn_rendering_width }%
+ \setrenderingwindowparameter \c!height {\d_scrn_rendering_height}%
+ \letrenderingwindowparameter \c!align \v!flushleft
\to \everypresetrenderingwindow
\permanent\tolerant\protected\def\placerenderingwindow[#window]#spacer[#rendering]% do all in lua
@@ -662,13 +635,7 @@
\else
\edef\currentrenderingwindow{#window}%
\fi
- \edef\currentrenderingtype{\renderingtype\currentrendering}%
- \ifx\currentrenderingtype\s!internal
- \getobjectdimensions{IRO}\currentrendering
- \d_scrn_rendering_height\dimexpr\objectheight+\objectdepth\relax
- \d_scrn_rendering_width\objectwidth\relax
- \getobjectreferencepage{IRO}\currentrendering\m_scrn_rendering_page
- \orelse\ifx\currentrenderingwindow\s!default
+ \ifx\currentrenderingwindow\s!default
\d_scrn_rendering_height\vsize
\d_scrn_rendering_width \hsize
\let\m_scrn_rendering_page\realpageno
@@ -677,19 +644,18 @@
\d_scrn_rendering_width \renderingwindowparameter\c!width
\let\m_scrn_rendering_page\realpageno
\fi
- % todo:
- % \handlereferenceactions{\renderingwindowparameter\c!openpageaction }\dosetuprenderingopenpageaction
- % \handlereferenceactions{\renderingwindowparameter\c!closepageaction}\dosetuprenderingclosepageaction
\letrenderingwindowparameter\c!offset\v!overlay
\inheritedrenderingwindowframed
{\vfilll
\dontleavehmode
\clf_insertrenderingwindow
- label {\currentrendering}%
- width \d_scrn_rendering_width
- height \d_scrn_rendering_height
- option {\renderingoption\currentrendering}%
- page \m_scrn_rendering_page
+ label {\currentrendering}%
+ width \d_scrn_rendering_width
+ height \d_scrn_rendering_height
+ option {\renderingoption\currentrendering}%
+ page \m_scrn_rendering_page
+ openpage {\renderingwindowparameter\c!openpageaction}%
+ closepage {\renderingwindowparameter\c!closepageaction}%
\relax
\hfill}%
\egroup}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/scrp-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/scrp-ini.lmt
new file mode 100644
index 00000000000..a8856f14877
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/scrp-ini.lmt
@@ -0,0 +1,918 @@
+if not modules then modules = { } end modules ['scrp-ini'] = {
+ version = 1.001,
+ comment = "companion to scrp-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- We need to rewrite this a bit ... rather old code ... will be done when japanese
+-- is finished.
+
+local tonumber, next = tonumber, next
+local setmetatableindex = table.setmetatableindex
+local utfbyte, utfsplit = utf.byte, utf.split
+local gmatch = string.gmatch
+
+local trace_analyzing = false trackers.register("scripts.analyzing", function(v) trace_analyzing = v end)
+local trace_injections = false trackers.register("scripts.injections", function(v) trace_injections = v end)
+local trace_splitting = false trackers.register("scripts.splitting", function(v) trace_splitting = v end)
+local trace_splitdetails = false trackers.register("scripts.splitting.details", function(v) trace_splitdetails = v end)
+
+local report_preprocessing = logs.reporter("scripts","preprocessing")
+local report_splitting = logs.reporter("scripts","splitting")
+
+local attributes = attributes
+local nodes = nodes
+local context = context
+
+local nodecodes = nodes.nodecodes
+
+local implement = interfaces.implement
+
+local glyph_code = nodecodes.glyph
+local glue_code = nodecodes.glue
+
+local emwidths = fonts.hashes.emwidths
+local exheights = fonts.hashes.exheights
+
+local a_script = attributes.private('script')
+
+local fontdata = fonts.hashes.identifiers
+local allocate = utilities.storage.allocate
+local setnodecolor = nodes.tracers.colors.set
+
+local enableaction = nodes.tasks.enableaction
+local disableaction = nodes.tasks.disableaction
+
+local nuts = nodes.nuts
+
+local getnext = nuts.getnext
+local getchar = nuts.getchar
+local getfont = nuts.getfont
+local getscript = nuts.getscript
+local getid = nuts.getid
+local getglyphdata = nuts.getglyphdata
+local setglyphdata = nuts.setglyphdata
+
+local isglyph = nuts.isglyph
+
+local firstglyph = nuts.firstglyph
+
+local nextglyph = nuts.traversers.glyph
+local nextchar = nuts.traversers.char
+
+local texsetglyphscript = tex.setglyphscript
+
+local nodepool = nuts.pool
+
+local new_glue = nodepool.glue
+local new_rule = nodepool.rule
+local new_penalty = nodepool.penalty
+
+scripts = scripts or { }
+local scripts = scripts
+
+local handlers = allocate()
+scripts.handlers = handlers
+
+local injectors = allocate()
+scripts.injectors = handlers
+
+local splitters = allocate()
+scripts.splitters = splitters
+
+local helpers = allocate()
+scripts.helpers = helpers
+
+local insertnodebefore, insertnodeafter do
+
+ local insertafter = nuts.insertafter
+ local insertbefore = nuts.insertbefore
+ local setattributelist = nuts.setattributelist
+
+ insertnodebefore = function (head,current,what) -- todo : lmtx
+ setattributelist(what,current)
+ head, current = insertbefore(head,current,what)
+ return head, current
+ end
+
+ insertnodeafter = function(head,current,what) -- todo : lmtx
+ setattributelist(what,current)
+ head, current = insertafter(head,current,what)
+ return head, current
+ end
+
+ helpers.insertnodebefore = insertnodebefore
+ helpers.insertnodeafter = insertnodeafter
+
+end
+
+local hash = characters.scripthash
+
+local numbertodataset = allocate()
+local numbertohandler = allocate()
+
+scripts.numbertodataset = numbertodataset
+scripts.numbertohandler = numbertohandler
+
+local defaults = {
+ inter_char_shrink_factor = 0,
+ inter_char_shrink_factor = 0,
+ inter_char_stretch_factor = 0,
+ inter_char_half_shrink_factor = 0,
+ inter_char_half_stretch_factor = 0,
+ inter_char_quarter_shrink_factor = 0,
+ inter_char_quarter_stretch_factor = 0,
+ inter_char_hangul_penalty = 0,
+
+ inter_word_stretch_factor = 0,
+}
+
+scripts.defaults = defaults -- so we can add more
+
+-- todo: copy more efficient than metatable
+
+function scripts.installmethod(handler)
+ local name = handler.name
+ handlers[name] = handler
+ local attributes = { }
+ local datasets = handler.datasets
+ if not datasets or not datasets.default then
+ report_preprocessing("missing (default) dataset in script %a",name)
+ datasets.default = { } -- slower but an error anyway
+ end
+
+ for k, v in next, datasets do
+ setmetatableindex(v,defaults)
+ end
+ setmetatableindex(attributes, function(t,k)
+ local v = datasets[k] or datasets.default
+ local a = 0
+ if v then
+ v.name = name -- for tracing
+ a = #numbertodataset + 1
+ numbertodataset[a] = v
+ numbertohandler[a] = handler
+ end
+ t[k] = a
+ return a
+ end)
+ handler.attributes = attributes
+end
+
+function scripts.installdataset(specification) -- global overload
+ local method = specification.method
+ local name = specification.name
+ local dataset = specification.dataset
+ if method and name and dataset then
+ local parent = specification.parent or ""
+ local handler = handlers[method]
+ if handler then
+ local datasets = handler.datasets
+ if datasets then
+ local defaultset = datasets.default
+ if defaultset then
+ if parent ~= "" then
+ local p = datasets[parent]
+ if p then
+ defaultset = p
+ else
+ report_preprocessing("dataset, unknown parent %a for method %a",parent,method)
+ end
+ end
+ setmetatable(dataset,defaultset)
+ local existing = datasets[name]
+ if existing then
+ for k, v in next, existing do
+ existing[k] = dataset
+ end
+ else
+ datasets[name] = dataset
+ end
+ else
+ report_preprocessing("dataset, no default for method %a",method)
+ end
+ else
+ report_preprocessing("dataset, no datasets for method %a",method)
+ end
+ else
+ report_preprocessing("dataset, no method %a",method)
+ end
+ else
+ report_preprocessing("dataset, invalid specification") -- maybe report table
+ end
+end
+
+local injectorenabled = false
+local splitterenabled = false
+
+local function getscriptdata(n)
+ local s = getscript(n)
+ if s then
+ return s and numbertodataset[s]
+ end
+end
+
+local function getinjector(n)
+ local s = getscript(n)
+ if s then
+ s = numbertohandler[s]
+ return s and s.injector
+ end
+end
+
+local function getsplitter(n)
+ local s = getscript(n)
+ if s then
+ s = numbertodataset[s]
+ return s and s.splitter
+ end
+end
+
+scripts.getdata = getscriptdata
+scripts.getinjector = getinjector
+scripts.getsplitter = getsplitter
+
+function scripts.set(name,method,preset)
+ local handler = handlers[method]
+ if handler then
+ local index = handler.attributes[preset]
+ if handler.injector then
+ if not injectorenabled then
+ enableaction("processors","scripts.injectors.handler")
+ injectorenabled = true
+ end
+ end
+ if handler.splitter then
+ if not splitterenabled then
+ enableaction("processors","scripts.splitters.handler")
+ splitterenabled = true
+ end
+ end
+ if handler.initializer then
+ handler.initializer(handler)
+ handler.initializer = nil
+ end
+ texsetglyphscript(index)
+ else
+ texsetglyphscript()
+ end
+end
+
+function scripts.reset()
+ texsetglyphscript()
+end
+
+-- 0=gray 1=red 2=green 3=blue 4=yellow 5=magenta 6=cyan 7=x-yellow 8=x-magenta 9=x-cyan
+
+-- local categories = allocate { -- rather bound to cjk ... will be generalized
+-- "korean",
+-- "chinese",
+-- "katakana",
+-- "hiragana",
+-- "full_width_open",
+-- "full_width_close",
+-- "half_width_open",
+-- "half_width_close",
+-- "full_width_punct",
+-- "hyphen",
+-- "non_starter",
+-- "jamo_initial",
+-- "jamo_medial",
+-- "jamo_final",
+-- "ethiopic_syllable",
+-- "ethiopic_word",
+-- "ethiopic_sentence",
+-- "breaking_tsheg",
+-- "nonbreaking_tsheg",
+-- }
+--
+-- scripts.categories = categories
+
+local scriptcolors = allocate {
+ -- todo: just named colors
+ hyphen = "trace:5",
+}
+
+scripts.colors = scriptcolors
+
+-- this can become setprop ...
+
+local propertydata = nodes.properties.data
+
+local function setscriptstatus(n,s)
+ local p = propertydata[n]
+ if p then
+ p.scriptstatus = s
+ else
+ propertydata[n] = { scriptstatus = s }
+ end
+end
+
+function getscriptstatus(n)
+ local p = propertydata[n]
+ if p then
+ return p.scriptstatus
+ end
+end
+
+scripts.setstatus = setscriptstatus
+scripts.getstatus = getscriptstatus
+
+--
+
+local function colorize(start,stop)
+ for n in nextglyph, start do
+ local kind = getscriptstatus(n)
+ if kind then
+ local ac = scriptcolors[kind]
+ if ac then
+ setnodecolor(n,ac)
+ end
+ end
+ if n == stop then
+ break
+ end
+ end
+end
+
+local function traced_process(head,first,last,process,a)
+ if start ~= last then
+ local f, l = first, last
+ local name = numbertodataset[a]
+ name = name and name.name or "?"
+ report_preprocessing("before %s: %s",name,nodes.tosequence(f,l))
+ process(head,first,last)
+ report_preprocessing("after %s: %s", name,nodes.tosequence(f,l))
+ end
+end
+
+function scripts.injectors.handler(head)
+ local start = firstglyph(head) -- we already have glyphs here (subtype 1)
+ if not start then
+ return head
+ else
+ local last_a, normal_process, lastfont, originals, first, last
+ local ok = false
+ while start do
+ local char, id = isglyph(start)
+ if char then
+ local a = getscript(start)
+ if a then
+ if a ~= last_a then
+ if first then
+ if ok then
+ if trace_analyzing then
+ colorize(first,last)
+ end
+ if trace_injections then
+ traced_process(head,first,last,normal_process,last_a)
+ else
+ normal_process(head,first,last)
+ end
+ ok = false
+ end
+ first, last = nil, nil
+ end
+ last_a = a
+ -- normal_process = getinjector(start)
+ normal_process = numbertohandler[a]
+ if normal_process then
+ normal_process = normal_process.injector
+ end
+ end
+ if normal_process then
+ if id ~= lastfont then
+ originals = fontdata[id].resources
+ if resources then
+ originals = resources.originals
+ else
+ originals = nil -- can't happen
+ end
+ lastfont = id
+ end
+ if originals and type(originals) == "number" then
+ char = originals[char] or char
+ end
+ local h = hash[char]
+ if h then
+ setscriptstatus(start,h)
+ if not first then
+ first, last = start, start
+ else
+ last = start
+ end
+ -- if cjk == "chinese" or cjk == "korean" then -- we need to prevent too much ( ) processing
+ ok = true
+ -- end
+ elseif first then
+ if ok then
+ if trace_analyzing then
+ colorize(first,last)
+ end
+ if trace_injections then
+ traced_process(head,first,last,normal_process,last_a)
+ else
+ normal_process(head,first,last)
+ end
+ ok = false
+ end
+ first, last = nil, nil
+ end
+ end
+ elseif first then
+ if ok then
+ if trace_analyzing then
+ colorize(first,last)
+ end
+ if trace_injections then
+ traced_process(head,first,last,normal_process,last_a)
+ else
+ normal_process(head,first,last)
+ end
+ ok = false
+ end
+ first, last = nil, nil
+ end
+ elseif id == glue_code then
+ if ok then
+ -- continue
+ elseif first then
+ -- no chinese or korean
+ first, last = nil, nil
+ end
+ elseif first then
+ if ok then
+ -- some chinese or korean
+ if trace_analyzing then
+ colorize(first,last)
+ end
+ if trace_injections then
+ traced_process(head,first,last,normal_process,last_a)
+ else
+ normal_process(head,first,last)
+ end
+ first, last, ok = nil, nil, false
+ elseif first then
+ first, last = nil, nil
+ end
+ end
+ start = getnext(start)
+ end
+ if ok then
+ if trace_analyzing then
+ colorize(first,last)
+ end
+ if trace_injections then
+ traced_process(head,first,last,normal_process,last_a)
+ else
+ normal_process(head,first,last)
+ end
+ end
+ return head
+ end
+end
+
+-- kind of experimental .. might move to it's own module
+
+-- function scripts.splitters.handler(head)
+-- return head
+-- end
+
+local function addwords(tree,data)
+ if not tree then
+ tree = { }
+ end
+ for word in gmatch(data,"%S+") do
+ local root = tree
+ local list = utfsplit(word,true)
+ for i=1,#list do
+ local l = utfbyte(list[i])
+ local r = root[l]
+ if not r then
+ r = { }
+ root[l] = r
+ end
+ if i == #list then
+ r.final = word -- true -- could be something else, like word in case of tracing
+ else
+ root = r
+ end
+ end
+ end
+ return tree
+end
+
+local loaded = { }
+
+function splitters.load(handler,files)
+ local files = handler.files
+ local tree = handler.tree or { }
+ handler.tree = tree
+ if not files then
+ return
+ elseif type(files) == "string" then
+ files = { files }
+ handler.files = files
+ end
+ if trace_splitting then
+ report_splitting("loading splitter data for language/script %a",handler.name)
+ end
+ loaded[handler.name or "unknown"] = (loaded[handler.name or "unknown"] or 0) + 1
+ statistics.starttiming(loaded)
+ for i=1,#files do
+ local filename = files[i]
+ local fullname = resolvers.findfile(filename)
+ if fullname == "" then
+ fullname = resolvers.findfile(filename .. ".gz")
+ end
+ if fullname ~= "" then
+ if trace_splitting then
+ report_splitting("loading file %a",fullname)
+ end
+ local suffix, gzipped = gzip.suffix(fullname)
+ if suffix == "lua" then
+ local specification = table.load(fullname,gzipped and gzip.load)
+ if specification then
+ local lists = specification.lists
+ if lists then
+ for i=1,#lists do
+ local entry = lists[i]
+ local data = entry.data
+ if data then
+ if entry.compression == "zlib" then
+ data = zlib.decompress(data)
+ if entry.length and entry.length ~= #data then
+ report_splitting("compression error in file %a",fullname)
+ end
+ end
+ if data then
+ addwords(tree,data)
+ end
+ end
+ end
+ end
+ end
+ else
+ local data = gzipped and io.loadgzip(fullname) or io.loaddata(fullname)
+ if data then
+ addwords(tree,data)
+ end
+ end
+ else
+ report_splitting("unknown file %a",filename)
+ end
+ end
+ statistics.stoptiming(loaded)
+ return tree
+end
+
+statistics.register("loaded split lists", function()
+ if next(loaded) then
+ return string.format("%s, load time: %s",table.sequenced(loaded),statistics.elapsedtime(loaded))
+ end
+end)
+
+-- function splitters.addlist(name,filename)
+-- local handler = scripts.handlers[name]
+-- if handler and filename then
+-- local files = handler.files
+-- if not files then
+-- files = { }
+-- elseif type(files) == "string" then
+-- files = { files }
+-- end
+-- handler.files = files
+-- if type(filename) == "string" then
+-- filename = utilities.parsers.settings_to_array(filename)
+-- end
+-- if type(filename) == "table" then
+-- for i=1,#filename do
+-- files[#files+1] = filenames[i]
+-- end
+-- end
+-- end
+-- end
+--
+-- commands.setscriptsplitterlist = splitters.addlist
+
+local categories = characters.categories or { }
+
+local function hit(root,head)
+ local current = getnext(head)
+ local lastrun = false
+ local lastfinal = false
+ while current do
+ local char = isglyph(current)
+ if char then
+ local newroot = root[char]
+ if newroot then
+ local final = newroot.final
+ if final then
+ lastrun = current
+ lastfinal = final
+ end
+ root = newroot
+ elseif categories[char] == "mn" then
+ -- continue
+ else
+ return lastrun, lastfinal
+ end
+ else
+ break
+ end
+ end
+ if lastrun then
+ return lastrun, lastfinal
+ end
+end
+
+local tree, attr, proc
+
+function splitters.handler(head) -- todo: also firstglyph test
+ local current = head
+ while current do
+ if getid(current) == glyph_code then
+ local a = getsplitter(current)
+ if a then
+ if a ~= attr then
+ local handler = numbertohandler[a]
+ tree = handler.tree or { }
+ attr = a
+ proc = a
+ end
+ if proc then
+ local root = tree[getchar(current)]
+ if root then
+ -- we don't check for attributes in the hitter (yet)
+ local last, final = hit(root,current)
+ if last then
+ local next = getnext(last)
+ if next then
+ local nextchar = isglyph(next)
+ if not nextchar then
+ -- we're done
+ elseif tree[nextchar] then
+ if trace_splitdetails then
+ if type(final) == "string" then
+ report_splitting("advance %s processing between <%s> and <%c>","with",final,nextchar)
+ else
+ report_splitting("advance %s processing between <%c> and <%c>","with",char,nextchar)
+ end
+ end
+ head, current = proc(handler,head,current,last,1)
+ else
+ if trace_splitdetails then
+ -- could be punctuation
+ if type(final) == "string" then
+ report_splitting("advance %s processing between <%s> and <%c>","without",final,nextchar)
+ else
+ report_splitting("advance %s processing between <%c> and <%c>","without",char,nextchar)
+ end
+ end
+ head, current = proc(handler,head,current,last,2)
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ current = getnext(current)
+ end
+ return head
+end
+
+local function marker(head,current,font,color) -- could become: nodes.tracers.marker
+ local ex = exheights[font]
+ local em = emwidths [font]
+ head, current = insertnodeafter(head,current,new_penalty(10000))
+ head, current = insertnodeafter(head,current,new_glue(-0.05*em))
+ head, current = insertnodeafter(head,current,new_rule(0.05*em,1.5*ex,0.5*ex))
+ setnodecolor(current,color)
+ return head, current
+end
+
+local last_a, last_f, last_s, last_q
+
+function splitters.insertafter(handler,head,first,last,detail)
+ local a = getscriptdata(first)
+ local f = getfont(first)
+ if a and a ~= last_a or f ~= last_f then
+ last_s = emwidths[f] * data.inter_word_stretch_factor
+ last_a = a
+ last_f = f
+ end
+ if trace_splitting then
+ head, last = marker(head,last,f,detail == 2 and "trace:r" or "trace:g")
+ end
+ if ignore then
+ return head, last
+ else
+ return insertnodeafter(head,last,new_glue(0,last_s))
+ end
+end
+
+-- word-xx.lua:
+--
+-- return {
+-- comment = "test",
+-- copyright = "not relevant",
+-- language = "en",
+-- timestamp = "2013-05-20 14:15:21",
+-- version = "1.00",
+-- lists = {
+-- {
+-- -- data = "we thrive information in thick worlds because of our marvelous and everyday capacity to select edit single out structure highlight group pair merge harmonize synthesize focus organize condense reduce boil down choose categorize catalog classify list abstract scan look into idealize isolate discriminate distinguish screen pigeonhole pick over sort integrate blend inspect filter lump skip smooth chunk average approximate cluster aggregate outline summarize itemize review dip into flip through browse glance into leaf through skim refine enumerate glean synopsize winnow the wheat from the chaff and separate the sheep from the goats",
+-- data = "abstract aggregate and approximate average because blend boil browse capacity catalog categorize chaff choose chunk classify cluster condense dip discriminate distinguish down edit enumerate everyday filter flip focus from glance glean goats group harmonize highlight idealize in information inspect integrate into isolate itemize leaf list look lump marvelous merge of organize our out outline over pair pick pigeonhole reduce refine review scan screen select separate sheep single skim skip smooth sort structure summarize synopsize synthesize the thick thrive through to we wheat winnow worlds",
+-- },
+-- },
+-- }
+
+scripts.installmethod {
+ name = "test",
+ splitter = splitters.insertafter,
+ initializer = splitters.load,
+ files = {
+ -- "scrp-imp-word-test.lua",
+ "word-xx.lua",
+ },
+ datasets = {
+ default = {
+ inter_word_stretch_factor = 0.25, -- of quad
+ },
+ },
+}
+
+-- new plugin:
+
+local registercontext = fonts.specifiers.registercontext
+local mergecontext = fonts.specifiers.mergecontext
+
+local otfscripts = characters.otfscripts
+
+local report_scripts = logs.reporter("scripts","auto feature")
+local trace_scripts = false trackers.register("scripts.autofeature",function(v) trace_scripts = v end)
+
+local autofontfeature = scripts.autofontfeature or { }
+scripts.autofontfeature = autofontfeature
+
+local cache_yes = { }
+local cache_nop = { }
+
+setmetatableindex(cache_yes,function(t,k) local v = { } t[k] = v return v end)
+setmetatableindex(cache_nop,function(t,k) local v = { } t[k] = v return v end)
+
+-- beware: we need to tag a done (otherwise too many extra instances ... but how
+-- often unpack? wait till we have a bitmap
+--
+-- we can consider merging this in handlers.characters(head) at some point as there
+-- already check for the dynamic attribute so it saves a pass, however, then we also
+-- need to check for a_scriptinjection there which nils the benefit
+--
+-- we can consider cheating: set all glyphs in a word as the first one but it's not
+-- playing nice
+
+function autofontfeature.handler(head)
+ for n, char, font in nextchar, head do
+ -- if getscript(n) then
+ -- -- already tagged by script feature, maybe some day adapt
+ -- else
+ local script = otfscripts[char]
+ if script then
+ local dynamic = getglyphdata(n) or 0
+ if dynamic > 0 then
+ local slot = cache_yes[font]
+ local attr = slot[script]
+ if not attr then
+ attr = mergecontext(dynamic,name,2)
+ slot[script] = attr
+ if trace_scripts then
+ report_scripts("script: %s, trigger %C, dynamic: %a, variant: %a",script,char,attr,"extended")
+ end
+ end
+ if attr ~= 0 then
+ n[0] = attr
+ -- maybe set scriptinjection when associated
+ end
+ else
+ local slot = cache_nop[font]
+ local attr = slot[script]
+ if not attr then
+ attr = registercontext(font,script,2)
+ slot[script] = attr
+ if trace_scripts then
+ report_scripts("script: %s, trigger %C, dynamic: %s, variant: %a",script,char,attr,"normal")
+ end
+ end
+ if attr ~= 0 then
+ setglyphdata(n,attr)
+ -- maybe set scriptinjection when associated
+ end
+ end
+ end
+ -- end
+ end
+ return head
+end
+
+function autofontfeature.enable()
+ report_scripts("globally enabled")
+ enableaction("processors","scripts.autofontfeature.handler")
+end
+
+function autofontfeature.disable()
+ report_scripts("globally disabled")
+ disableaction("processors","scripts.autofontfeature.handler")
+end
+
+implement {
+ name = "enableautofontscript",
+ actions = autofontfeature.enable
+}
+
+implement {
+ name = "disableautofontscript",
+ actions = autofontfeature.disable }
+
+implement {
+ name = "setscript",
+ actions = scripts.set,
+ arguments = "3 strings",
+}
+
+implement {
+ name = "resetscript",
+ actions = scripts.reset
+}
+
+-- some common helpers
+
+do
+
+ local parameters = fonts.hashes.parameters
+
+ local space, stretch, shrink, lastfont
+
+ local inter_character_space_factor = 1
+ local inter_character_stretch_factor = 1
+ local inter_character_shrink_factor = 1
+
+ local function space_glue(current)
+ -- local data = numbertodataset[getattr(current,a_scriptinjection)]
+ local data = getscriptdata(current)
+ if data then
+ inter_character_space_factor = data.inter_character_space_factor or 1
+ inter_character_stretch_factor = data.inter_character_stretch_factor or 1
+ inter_character_shrink_factor = data.inter_character_shrink_factor or 1
+ end
+ local font = getfont(current)
+ if lastfont ~= font then
+ local pf = parameters[font]
+ space = pf.space
+ stretch = pf.spacestretch
+ shrink = pf.spaceshrink
+ lastfont = font
+ end
+ return new_glue(
+ inter_character_space_factor * space,
+ inter_character_stretch_factor * stretch,
+ inter_character_shrink_factor * shrink
+ )
+ end
+
+ scripts.inserters = {
+
+ space_before = function(head,current)
+ return insertnodebefore(head,current,space_glue(current))
+ end,
+ space_after = function(head,current)
+ return insertnodeafter(head,current,space_glue(current))
+ end,
+
+ zerowidthspace_before = function(head,current)
+ return insertnodebefore(head,current,new_glue(0))
+ end,
+ zerowidthspace_after = function(head,current)
+ return insertnodeafter(head,current,new_glue(0))
+ end,
+
+ nobreakspace_before = function(head,current)
+ local g = space_glue(current)
+ local p = new_penalty(10000)
+ head, current = insertnodebefore(head,current,p)
+ return insertnodebefore(head,current,g)
+ end,
+ nobreakspace_after = function(head,current)
+ local g = space_glue(current)
+ local p = new_penalty(10000)
+ head, current = insertnodeafter(head,current,g)
+ return insertnodeafter(head,current,p)
+ end,
+
+ }
+
+end
+
+-- end of helpers
diff --git a/Master/texmf-dist/tex/context/base/mkxl/scrp-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/scrp-ini.mkxl
index 77412738b4d..99f064accff 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/scrp-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/scrp-ini.mkxl
@@ -36,7 +36,7 @@
%D Todo: as in bidi mode we need a way to globally keep the setting.
-\registerctxluafile{scrp-ini}{}
+\registerctxluafile{scrp-ini}{autosuffix}
\registerctxluafile{scrp-cjk}{}
\registerctxluafile{scrp-eth}{}
\registerctxluafile{scrp-tha}{}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/spac-ali.lmt b/Master/texmf-dist/tex/context/base/mkxl/spac-ali.lmt
index 5c434fcdf2a..9fa02467292 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/spac-ali.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/spac-ali.lmt
@@ -31,6 +31,7 @@ local nextlist = nuts.traversers.list
local new_stretch = nuts.pool.stretch
local a_realign = attributes.private("realign")
+local c_realpageno = tex.iscount("realpageno")
local texsetattribute = tex.setattribute
local texgetcount = tex.getcount
@@ -51,7 +52,7 @@ local nofrealigned = 0
-- raggedright 0 0 fil
-- raggedcenter 0 + 0 + -
-local function handler(head,leftpage,realpageno) -- traverse_list
+local function handler(head,leftpage,realpageno)
for current, id, subtype, list in nextlist, head do
if subtype == linelist_code then
local a = takeattr(current,a_realign)
@@ -103,7 +104,7 @@ local function handler(head,leftpage,realpageno) -- traverse_list
end
function alignments.handler(head)
- return handler(head,isleftpage(),texgetcount("realpageno"))
+ return handler(head,isleftpage(),texgetcount(c_realpageno))
end
local enabled = false
@@ -116,7 +117,7 @@ function alignments.set(n)
report_realign("enabled")
end
end
- texsetattribute(a_realign,texgetcount("realpageno") * 10 + n)
+ texsetattribute(a_realign,texgetcount(c_realpageno) * 10 + n)
end
interfaces.implement {
diff --git a/Master/texmf-dist/tex/context/base/mkxl/spac-ali.mkxl b/Master/texmf-dist/tex/context/base/mkxl/spac-ali.mkxl
index 78d09295db3..f5b0e2fb846 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/spac-ali.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/spac-ali.mkxl
@@ -19,7 +19,7 @@
%D variants. Starting at the last day of 2011 both methods are merged into one and
%D caching has been added, which makes switching twice as fast.
-\registerctxluafile{spac-ali}{autosuffix,optimize}
+\registerctxluafile{spac-ali}{autosuffix}
% Used once so ... replace it or use if more frequently ...
@@ -192,6 +192,9 @@
\permanent\protected\def\leftorrightvbox{\ifconditional\displaylefttoright\expandafter\lefttorightvbox\else\expandafter\righttoleftvbox\fi}
\permanent\protected\def\leftorrightvtop{\ifconditional\displaylefttoright\expandafter\lefttorightvtop\else\expandafter\righttoleftvtop\fi}
+\permanent\protected\def\rtltext{\groupedcommand{\dontleavehmode\righttoleft\ignorespaces}\removeunwantedspaces}
+\permanent\protected\def\ltrtext{\groupedcommand{\dontleavehmode\lefttoright\ignorespaces}\removeunwantedspaces}
+
% Tolerance and hyphenation
\ifdefined\lesshyphens \else \let\lesshyphens\relax \fi
@@ -294,8 +297,8 @@
\let\v_spac_align_space_amount \interwordspace
\def\v_spac_align_space_amount_x {.5\emwidth}
-\newskip\s_zero_plus_one_fil \s_zero_plus_one_fil = 0pt plus 1fil
-\newskip\s_zero_plus_zero \s_zero_plus_zero = 0pt plus 0pt
+\newgluespec\s_zero_plus_one_fil \s_zero_plus_one_fil = 0pt plus 1fil
+\newgluespec\s_zero_plus_zero \s_zero_plus_zero = 0pt plus 0pt
% \s!plus ... slower than inline
@@ -306,6 +309,8 @@
\rightskip \plusone\rightskip
\spaceskip \zeropoint
\xspaceskip \zeropoint
+ \parinitleftskip \zeropoint
+ \parinitrightskip \zeropoint
\parfillleftskip \zeropoint
\parfillskip \s_zero_plus_one_fil % new
\setfalse \raggedonelinerstate % now here
@@ -319,6 +324,8 @@
\rightskip \plusone\rightskip\s!plus\zeropoint
\spaceskip \v_spac_align_space_amount
\xspaceskip \v_spac_align_space_amount_x
+ \parinitleftskip \zeropoint
+ \parinitrightskip \zeropoint
\parfillleftskip \zeropoint
\parfillskip \s_zero_plus_zero
\parindent \zeropoint
@@ -332,6 +339,8 @@
\rightskip \plusone\rightskip\s!plus\spac_align_set_raggedness_middle
\spaceskip \v_spac_align_space_amount
\xspaceskip \v_spac_align_space_amount_x
+ \parinitleftskip \zeropoint
+ \parinitrightskip \zeropoint
\parfillleftskip \zeropoint
\parfillskip \s_zero_plus_zero
\parindent \zeropoint
@@ -345,6 +354,8 @@
\rightskip \plusone\rightskip\s!plus\spac_align_set_raggedness_right
\spaceskip \v_spac_align_space_amount
\xspaceskip \v_spac_align_space_amount_x
+ \parinitleftskip \zeropoint
+ \parinitrightskip \zeropoint
\parfillleftskip \zeropoint
\parfillskip \s_zero_plus_one_fil
%\parindent \parindent
@@ -357,6 +368,8 @@
\rightskip \plusone\rightskip\s!plus\zeropoint
\spaceskip \v_spac_align_space_amount
\xspaceskip \v_spac_align_space_amount_x
+ \parinitleftskip \zeropoint
+ \parinitrightskip \zeropoint
\parfillleftskip \zeropoint
\parfillskip \s_zero_plus_zero
\parindent \zeropoint
@@ -369,6 +382,8 @@
\rightskip \plusone\rightskip\s!plus\v_spac_align_fill_amount
\spaceskip \v_spac_align_space_amount
\xspaceskip \v_spac_align_space_amount_x
+ \parinitleftskip \zeropoint
+ \parinitrightskip \zeropoint
\parfillleftskip \zeropoint
\parfillskip \s_zero_plus_zero
\parindent \zeropoint
@@ -381,6 +396,8 @@
\rightskip \plusone\rightskip\s!plus\v_spac_align_fill_amount
\spaceskip \v_spac_align_space_amount
\xspaceskip \v_spac_align_space_amount_x
+ \parinitleftskip \zeropoint
+ \parinitrightskip \zeropoint
\parfillleftskip \zeropoint
\parfillskip \s_zero_plus_zero
%\parindent \parindent
@@ -394,6 +411,8 @@
\rightskip \plusone\rightskip\s!plus\v_spac_align_fill_amount_half
\spaceskip \v_spac_align_space_amount
\xspaceskip \v_spac_align_space_amount_x
+ \parinitleftskip \zeropoint
+ \parinitrightskip \zeropoint
\parfillleftskip \zeropoint
\parfillskip \s_zero_plus_zero
\parindent \zeropoint
@@ -404,8 +423,10 @@
\c_attr_alignstate\attributeunsetvalue
\leftskip \plusone\leftskip \s!plus\v_spac_align_fill_amount\relax
\rightskip \plusone\rightskip\s!plus\v_spac_align_fill_amount_negative\relax
- \spaceskip \zeropoint\relax
- \xspaceskip \zeropoint\relax
+ \spaceskip \zeropoint
+ \xspaceskip \zeropoint
+ \parinitleftskip \zeropoint
+ \parinitrightskip \zeropoint
\parfillleftskip \zeropoint
\parfillskip \zeropoint\s!plus\v_spac_align_fill_amount_double\relax
\parindent \zeropoint
@@ -416,8 +437,10 @@
\c_attr_alignstate\attributeunsetvalue
\leftskip \plusone\leftskip \s!plus\v_spac_align_fill_amount\relax
\rightskip \plusone\rightskip\s!plus\v_spac_align_fill_amount_negative\relax
- \spaceskip \zeropoint\relax
- \xspaceskip \zeropoint\relax
+ \spaceskip \zeropoint
+ \xspaceskip \zeropoint
+ \parinitleftskip \zeropoint
+ \parinitrightskip \zeropoint
\parfillskip \zeropoint
\parfillleftskip \zeropoint\s!plus\v_spac_align_fill_amount_extreme\relax
\parindent \zeropoint
@@ -429,13 +452,30 @@
\c_attr_alignstate\plusthree
\leftskip \plusone\leftskip \s!plus\zeropoint\relax
\rightskip \plusone\rightskip\s!plus\spac_align_set_raggedness_right\relax
- \spaceskip \zeropoint\relax
- \xspaceskip \zeropoint\relax
+ \spaceskip \zeropoint
+ \xspaceskip \zeropoint
+ \parinitleftskip \zeropoint
+ \parinitrightskip \zeropoint
\parfillleftskip \zeropoint
\parfillskip \s_zero_plus_zero
%\parindent \parindent
\relax}
+\permanent\protected\def\spac_align_set_horizontal_slanted
+ {\raggedstatus \zerocount
+ %\c_attr_alignstate\attributeunsetvalue
+ \c_attr_alignstate\plustwo
+ \leftskip \plusone\leftskip \s!plus\spac_align_set_raggedness_middle
+ \rightskip \plusone\rightskip\s!plus\spac_align_set_raggedness_middle
+ \spaceskip \zeropoint
+ \xspaceskip \zeropoint
+ \parinitleftskip \zeropoint
+ \parinitrightskip \zeropoint\s!plus\v_spac_align_fill_amount_extreme\relax
+ \parfillleftskip \zeropoint\s!plus\v_spac_align_fill_amount_extreme\relax
+ \parfillskip \zeropoint
+ \parindent \zeropoint
+ \relax}
+
\permanent\protected\def\spac_align_set_horizontal_extra
{\xspaceskip\zeropoint\s!plus\v_spac_align_fill_amount_space\relax}
@@ -495,6 +535,9 @@
\or
% 9 paragraph
\parfillskip\zeropoint
+ \or
+ % 10 slanted
+ \spac_align_set_horizontal_slanted
\fi
\relax}
@@ -567,28 +610,58 @@
\c_spac_align_state_direction \zerocount % what is default ?
\c_spac_align_state_page \zerocount
\c_spac_align_state_par_fill \zerocount
- \ifcsname\??aligncommand\m_spac_align_asked\endcsname
+ \ifcsname\??aligncommand\m_spac_align_named\endcsname
\lastnamedcs
\else
\rawprocesscommacommand[\m_spac_align_asked]\spac_align_collect
\fi
- \normalexpanded{\t_spac_align_collected
- {\setfalse\raggedonelinerstate % bad
- \the\t_spac_align_collected
- \spac_align_flush_horizontal
- \spac_align_flush_vertical
- \spac_align_flush_direction
- \spac_align_flush_page
- \spac_align_flush_parfill
- }}% kept, nice for tracing
+ % % kept, nice for tracing
+ %
+ % \normalexpanded{\t_spac_align_collected
+ % {\setfalse\raggedonelinerstate % bad
+ % \the\t_spac_align_collected
+ % \spac_align_flush_horizontal
+ % \spac_align_flush_vertical
+ % \spac_align_flush_direction
+ % \spac_align_flush_page
+ % \spac_align_flush_parfill
+ % }}%
+ %
+ % \etoksapp\t_spac_align_collected
+ % {\spac_align_flush_horizontal
+ % \spac_align_flush_vertical
+ % \spac_align_flush_direction
+ % \spac_align_flush_page
+ % \spac_align_flush_parfill}%
+ % \etokspre\t_spac_align_collected
+ % {\setfalse\raggedonelinerstate}% bad
+ %
+ \etoks\t_spac_align_collected
+ {\setfalse\raggedonelinerstate % bad
+ \the\t_spac_align_collected
+ \spac_align_flush_horizontal
+ \spac_align_flush_vertical
+ \spac_align_flush_direction
+ \spac_align_flush_page
+ \spac_align_flush_parfill}%
+ %
\enforced\permanent\protected\edef\raggedcommand {\the\t_spac_align_collected }%
\enforced\permanent\protected\edef\updateraggedskips{\spac_align_flush_horizontal}%
- \enforced\aliased\gletcsname\??alignmentnormalcache\m_spac_align_asked\endcsname\raggedcommand
- \enforced\aliased\gletcsname\??alignmentraggedcache\m_spac_align_asked\endcsname\updateraggedskips}
+ \enforced\aliased\gletcsname\??alignmentnormalcache\m_spac_align_named\endcsname\raggedcommand
+ \enforced\aliased\gletcsname\??alignmentraggedcache\m_spac_align_named\endcsname\updateraggedskips}
+
+\mutable\def\m_spac_align_named{\m_spac_align_asked}
\def\spac_align_collect#1%
{\csname\??aligncommand#1\endcsname}
+\permanent\protected\tolerant\def\definealign[#1]#*[#2]%
+ {\pushmacro\m_spac_align_named
+ \edef\m_spac_align_named{#1}%
+ \edef\m_spac_align_asked{#2}%
+ \spac_align_add_to_cache
+ \popmacro\m_spac_align_named}
+
% The local (key driven) setter:
\permanent\protected\def\spac_align_prepare#1% deferred
@@ -652,7 +725,7 @@
% Maybe we need something different in columns.
\permanent\protected\def\installalign#1#2% beware: commands must be unexpandable!
- {\ifcsname\??aligncommand#1\endcsname \else
+ {\ifcsname\??aligncommand#1\endcsname \else % : so maybe we should use \etoksapp
\defcsname\??aligncommand#1\endcsname{\toksapp\t_spac_align_collected{#2}}%
\fi}
@@ -699,6 +772,11 @@
\defcsname\??aligncommand l2r\endcsname{\c_spac_align_state_direction \plusone }
\defcsname\??aligncommand r2l\endcsname{\c_spac_align_state_direction \plustwo }
+
+\defcsname\??aligncommand\v!slanted \endcsname{\c_spac_align_state_horizontal\plusten
+ \c_spac_align_state_broad \plustwo }
+
+
\defcsname\??aligncommand\v!table \endcsname{\c_spac_align_state_vertical \plusthree
\c_spac_align_state_broad \plusone
\c_spac_align_state_horizontal\plustwo }
@@ -716,30 +794,42 @@
%defcsname\??aligncommand\v!nospacing \endcsname{\toksapp\t_spac_align_collected{\normalspacing\plusone}} % not yet
\defcsname\??aligncommand\v!hyphenated \endcsname{\toksapp\t_spac_align_collected{\dohyphens}}
\defcsname\??aligncommand\v!nothyphenated \endcsname{\toksapp\t_spac_align_collected{\nohyphens}}
+\defcsname\??aligncommand\v!collapsed \endcsname{\toksapp\t_spac_align_collected{\dohyphencollapsing}}
+\defcsname\??aligncommand\v!notcollapsed \endcsname{\toksapp\t_spac_align_collected{\nohyphencollapsing}}
+\defcsname\??aligncommand\v!explicit \endcsname{\toksapp\t_spac_align_collected{\nohyphens\doexplicithyphens}}
\defcsname\??aligncommand\v!tolerant \endcsname{\toksapp\t_spac_align_collected{\spac_align_set_tolerant}}
\defcsname\??aligncommand\v!verytolerant \endcsname{\toksapp\t_spac_align_collected{\spac_align_set_very_tolerant}}
\defcsname\??aligncommand\v!stretch \endcsname{\toksapp\t_spac_align_collected{\spac_align_set_stretch}}
\defcsname\??aligncommand\v!extremestretch \endcsname{\toksapp\t_spac_align_collected{\spac_align_set_extreme_stretch}}
-\defcsname\??aligncommand \v!final\endcsname{\c_spac_align_state_par_fill\plusone}
-\defcsname\??aligncommand1*\v!final\endcsname{\c_spac_align_state_par_fill\plusone}
-\defcsname\??aligncommand2*\v!final\endcsname{\c_spac_align_state_par_fill\plustwo} % hardcoded multiplier
-\defcsname\??aligncommand3*\v!final\endcsname{\c_spac_align_state_par_fill\plusthree}
-\defcsname\??aligncommand4*\v!final\endcsname{\c_spac_align_state_par_fill\plusfour}
+\defcsname\??aligncommand \v!final\endcsname{\c_spac_align_state_par_fill\plusone}
+\defcsname\??aligncommand 1*\v!final\endcsname{\c_spac_align_state_par_fill\plusone}
+\defcsname\??aligncommand 2*\v!final\endcsname{\c_spac_align_state_par_fill\plustwo} % hardcoded multiplier
+\defcsname\??aligncommand 3*\v!final\endcsname{\c_spac_align_state_par_fill\plusthree}
+\defcsname\??aligncommand 4*\v!final\endcsname{\c_spac_align_state_par_fill\plusfour}
% a one shot (only usefull in e.g. framed, also needs tolerance and stretch)
-\defcsname\??aligncommand \v!more\endcsname{\toksapp\t_spac_align_collected{\looseness\plusone}}
-\defcsname\??aligncommand1*\v!more\endcsname{\toksapp\t_spac_align_collected{\looseness\plusone}}
-\defcsname\??aligncommand2*\v!more\endcsname{\toksapp\t_spac_align_collected{\looseness\plustwo}}
+\defcsname\??aligncommand \v!more\endcsname{\toksapp\t_spac_align_collected{\looseness\plusone}}
+\defcsname\??aligncommand 1*\v!more\endcsname{\toksapp\t_spac_align_collected{\looseness\plusone}}
+\defcsname\??aligncommand 2*\v!more\endcsname{\toksapp\t_spac_align_collected{\looseness\plustwo}}
%defcsname\??aligncommand ...\endcsname{\toksapp\t_spac_align_collected{\nopenalties}}
%defcsname\??aligncommand ...\endcsname{\toksapp\t_spac_align_collected{\setdefaultpenalties}}
% experiment
-\defcsname\??aligncommand\v!always\endcsname{\toksapp\t_spac_align_collected{\bitwiseflip\hyphenationmode\forcecheckhyphenationmodecode}}
+\defcsname\??aligncommand \v!flushforward\endcsname{\c_spac_align_state_horizontal\ifconditional\inlinelefttoright\plustwo\else\plusthree\fi}
+\defcsname\??aligncommand\v!flushbackward\endcsname{\c_spac_align_state_horizontal\ifconditional\inlinelefttoright\plusthree\else\plustwo\fi}
+
+% experiment
+
+\defcsname\??aligncommand\v!always\endcsname{\toksapp\t_spac_align_collected{\bitwiseflip\hyphenationmode\forcecheckhyphenationcode}}
+
+% experiment
+
+\defcsname\??aligncommand\v!profile\endcsname{\toksapp\t_spac_align_collected{\setmainlineprofile}}
\definehspace [\v!final] [\emspaceamount]
@@ -782,6 +872,7 @@
\aliased\let\flushedrightlastline\spac_align_set_horizontal_flushedright_last_line
\aliased\let\ttraggedright \spac_align_set_horizontal_right_tt % a plain command
\aliased\let\forgetragged \spac_align_set_horizontal_none
+\aliased\let\raggedslanted \spac_align_set_horizontal_slanted
\appendtoks
\spac_align_set_horizontal_none
@@ -865,7 +956,7 @@
\defcsname\??alignhorizontal\v!flushright\endcsname{\enforced\let\raggedbox\spac_align_horizontal_flushright}
\defcsname\??alignhorizontal\v!center \endcsname{\enforced\let\raggedbox\spac_align_horizontal_center}
-% The next one can be in use so we keep it around but oen should
+% The next one can be in use so we keep it around but one should
% be aware of possible interference.
\permanent\protected\def\setraggedskips#1#2#3#4#5#6#7% never change this name (todo: inline this one .. less tracingall)
@@ -1073,6 +1164,28 @@
{\normalexpanded{\spac_word_right_indeed{#1}{\hpack{\thebox\nextbox}}}}
\hbox}
+% \protected\def\spac_word_right_indeed#1#2%
+% {\registerparwrapper
+% {\v!word:\v!right}
+% {\begingroup
+% \frozen\parfillskip \zeropoint
+% \frozen\finalhyphendemerits\zerocount
+% \endgroup}
+% {\doifelseparwrapper{\v!word:\v!right}%
+% {\doifelse{#1}\v!right{\kern-\rightskip}{\doifsomething{#1}{\kern-#1}}%
+% \strut \removeunwantedspaces
+% \hfill
+% \allowbreak % changed back from \hskip\zeropoint
+% \quad}%
+% {\allowbreak % changed back from \hskip\zeropoint
+% \break}%
+% \unregisterparwrapper{\v!word:\v!right}%
+% \strut
+% \hfill
+% \nobreak
+% #2%
+% \allowbreak}}
+
\protected\def\spac_word_right_indeed#1#2%
{\registerparwrapper
{\v!word:\v!right}
@@ -1080,20 +1193,14 @@
\frozen\parfillskip \zeropoint
\frozen\finalhyphendemerits\zerocount
\endgroup}
- {\doifelseparwrapper{\v!word:\v!right}%
- {\doifelse{#1}\v!right{\kern-\rightskip}{\doifsomething{#1}{\kern-#1}}%
- \strut \removeunwantedspaces
- \hfill
- \allowbreak % changed back from \hskip\zeropoint
- \quad}%
- {\allowbreak % changed back from \hskip\zeropoint
- \break}%
- \unregisterparwrapper{\v!word:\v!right}%
- \strut
- \hfill
- \nobreak
- #2%
- \allowbreak}}
+ {\doifelseparwrapper{\v!word:\v!right}{\unregisterparwrapper{\v!word:\v!right}}\donothing
+ \removeunwantedspaces
+ \doifelse{#1}\v!right{\kern-\rightskip}{\doifsomething{#1}{\kern-#1}}%
+ \hfilll
+ \discretionary{\strut}{\strut}{\strut}% \allowbreak % changed back from \hskip\zeropoint
+ \hfilll
+ \quad % decent spacing
+ #2}}
% \dorecurse{5}{something} \wordright{--someone} \endgraf
% \dorecurse{6}{something} \wordright{--someone} \endgraf
@@ -1150,6 +1257,9 @@
\letcsname\??alignsimplereverse\v!flushright\endcsname\spac_align_simple_left
\letcsname\??alignsimplereverse\v!middle \endcsname\spac_align_simple_middle
+\protected\def\spac_align_simple#1%
+ {\begincsname\??alignsimple#1\endcsname}
+
\permanent\protected\def\simplealignedbox#1#2%
{\hbox \ifdim#1>\zeropoint to #1
\ifcsname\??alignsimple#2\endcsname
diff --git a/Master/texmf-dist/tex/context/base/mkxl/spac-chr.lmt b/Master/texmf-dist/tex/context/base/mkxl/spac-chr.lmt
index ac90926e1ab..58071c431b8 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/spac-chr.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/spac-chr.lmt
@@ -28,6 +28,9 @@ local nodes, node = nodes, node
local nuts = nodes.nuts
+local getid = nuts.getid
+local getsubtype = nuts.getsubtype
+local setsubtype = nuts.setsubtype
local getboth = nuts.getboth
local getnext = nuts.getnext
local getprev = nuts.getprev
@@ -37,16 +40,13 @@ local getlanguage = nuts.getlanguage
local setchar = nuts.setchar
local setattrlist = nuts.setattrlist
local getfont = nuts.getfont
-local setsubtype = nuts.setsubtype
local isglyph = nuts.isglyph
local setcolor = nodes.tracers.colors.set
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local remove_node = nuts.remove
------ traverse_id = nuts.traverse_id
------ traverse_char = nuts.traverse_char
local nextchar = nuts.traversers.char
local nextglyph = nuts.traversers.glyph
@@ -62,10 +62,12 @@ local nodecodes = nodes.nodecodes
local gluecodes = nodes.gluecodes
local glyph_code = nodecodes.glyph
+local glue_code = nodecodes.glue
local spaceskip_code = gluecodes.spaceskip
local chardata = characters.data
-local is_punctuation = characters.is_punctuation
+local ispunctuation = characters.is_punctuation
+local canhavespace = characters.can_have_space
local typesetters = typesetters
@@ -95,7 +97,7 @@ local function inject_quad_space(unicode,head,current,fraction)
setattrlist(glue,current)
setattrlist(current) -- why reset all
setattr(glue,a_character,unicode)
- return insert_node_after(head,current,glue)
+ return insertnodeafter(head,current,glue)
end
local function inject_char_space(unicode,head,current,parent)
@@ -105,32 +107,33 @@ local function inject_char_space(unicode,head,current,parent)
setattrlist(glue,current)
setattrlist(current) -- why reset all
setattr(glue,a_character,unicode)
- return insert_node_after(head,current,glue)
+ return insertnodeafter(head,current,glue)
end
local function inject_nobreak_space(unicode,head,current,space,spacestretch,spaceshrink)
local glue = new_glue(space,spacestretch,spaceshrink)
local penalty = new_penalty(10000)
setattrlist(glue,current)
+ setattrlist(penalty,current)
setattrlist(current) -- why reset all
setattr(glue,a_character,unicode) -- bombs
- head, current = insert_node_after(head,current,penalty)
+ head, current = insertnodeafter(head,current,penalty)
if trace_nbsp then
local rule = new_rule(space)
local kern = new_kern(-space)
local penalty = new_penalty(10000)
setcolor(rule,"orange")
- head, current = insert_node_after(head,current,rule)
- head, current = insert_node_after(head,current,kern)
- head, current = insert_node_after(head,current,penalty)
+ head, current = insertnodeafter(head,current,rule)
+ head, current = insertnodeafter(head,current,kern)
+ head, current = insertnodeafter(head,current,penalty)
end
- return insert_node_after(head,current,glue)
+ return insertnodeafter(head,current,glue)
end
local function nbsp(head,current)
local para = fontparameters[getfont(current)]
local attr = getattr(current,a_alignstate) or 0
- if attr >= 1 or attr <= 3 then -- flushright
+ if attr >= 1 and attr <= 3 then -- flushright
head, current = inject_nobreak_space(0x00A0,head,current,para.space,0,0)
else
head, current = inject_nobreak_space(0x00A0,head,current,para.space,para.spacestretch,para.spaceshrink)
@@ -147,8 +150,9 @@ function characters.replacenbsp(head,original)
end
function characters.replacenbspaces(head)
+ -- todo: wiping as in characters.handler(head)
local wipe = false
- for current, char, font in nextglyph, head do -- can be anytime so no traverse_char
+ for current, char, font in nextglyph, head do -- can be anytime so no traversechar
if char == 0x00A0 then
if wipe then
head = remove_node(h,current,true)
@@ -184,18 +188,41 @@ local methods = {
-- maybe also 0x0008 : backspace
+ -- Watch out: a return value means "remove"!
+
+ [0x001E] = function(head,current) -- kind of special
+ local next = getnext(current)
+ if next and getid(next) == glue_code and getsubtype(next) == spaceskip_code then
+ -- remove when no valid character following
+ local nextnext = getnext(next)
+ if nextnext then
+ local char, font = isglyph(nextnext)
+ if char and not canhavespace[char] then
+ remove_node(head,next,true)
+ end
+ end
+ else
+ -- insert when valid character following
+ local char, font = isglyph(next)
+ if char and canhavespace[char] then
+ local p = fontparameters[font]
+ head, current = insertnodebefore(head,current,new_glue(p.space,p.spacestretch,p.spaceshrink))
+ end
+
+ end
+ return head, current
+ end,
+
[0x001F] = function(head,current) -- kind of special
local next = getnext(current)
if next then
local char, font = isglyph(next)
- if char then
- head, current = remove_node(head,current,true)
- if not is_punctuation[char] then
- local p = fontparameters[font]
- head, current = insert_node_before(head,current,new_glue(p.space,p.space_stretch,p.space_shrink))
- end
+ if char and not ispunctuation[char] then
+ local p = fontparameters[font]
+ head, current = insertnodebefore(head,current,new_glue(p.space,p.spacestretch,p.spaceshrink))
end
end
+ return head, current
end,
[0x00A0] = function(head,current) -- nbsp
@@ -226,7 +253,7 @@ local methods = {
end,
[0x00AD] = function(head,current) -- softhyphen
- return insert_node_after(head,current,languages.explicithyphen(current))
+ return insertnodeafter(head,current,languages.explicithyphen(current))
end,
[0x2000] = function(head,current) -- enquad
@@ -295,34 +322,6 @@ local methods = {
characters.methods = methods
--- function characters.handler(head) -- todo: use traverse_id
--- local current = head
--- while current do
--- local char, id = isglyph(current)
--- if char then
--- local next = getnext(current)
--- local method = methods[char]
--- if method then
--- if trace_characters then
--- report_characters("replacing character %C, description %a",char,lower(chardata[char].description))
--- end
--- local h = method(head,current)
--- if h then
--- head = remove_node(h,current,true)
--- end
--- end
--- current = next
--- else
--- current = getnext(current)
--- end
--- end
--- return head
--- end
-
--- this also works ok in math as we run over glyphs and these stay glyphs ... not sure
--- about scripts and such but that is not important anyway ... some day we can consider
--- special definitions in math
-
function characters.handler(head)
local wipe = false
for current, char in nextchar, head do
@@ -346,3 +345,30 @@ function characters.handler(head)
end
return head
end
+
+-- function characters.handler(head)
+-- local wiped = false
+-- for current, char in nextchar, head do
+-- local method = methods[char]
+-- if method then
+-- if wiped then
+-- wiped[#wiped+1] = current
+-- else
+-- wiped = { current }
+-- end
+-- if trace_characters then
+-- report_characters("replacing character %C, description %a",char,lower(chardata[char].description))
+-- end
+-- local h = method(head,current)
+-- if h then
+-- head = h
+-- end
+-- end
+-- end
+-- if wiped then
+-- for i=1,#wiped do
+-- head = remove_node(head,wiped[i],true)
+-- end
+-- end
+-- return head
+-- end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/spac-chr.mkxl b/Master/texmf-dist/tex/context/base/mkxl/spac-chr.mkxl
index 82c8be0ec34..ef63b2b8204 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/spac-chr.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/spac-chr.mkxl
@@ -15,7 +15,7 @@
\unprotect
-\registerctxluafile{spac-chr}{autosuffix,optimize}
+\registerctxluafile{spac-chr}{autosuffix}
\definesystemattribute[characters][public]
@@ -66,13 +66,18 @@
\popoverloadmode
-\immutable\chardef\optionalspace"1F % will be space unless before punctuation
+\immutable\chardef\optionalspace "1F % will be space unless before punctuation
+\immutable\chardef\autoinsertedspace"1E % a more clever \autoinsertspace
% Shortcuts:
% unexpanded as otherwise we need to intercept / cleanup a lot
+\pushoverloadmode
+
\protected\def~{\nobreakspace}
+\popoverloadmode
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/spac-def.mkxl b/Master/texmf-dist/tex/context/base/mkxl/spac-def.mkxl
index 294843cce71..729968c5de1 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/spac-def.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/spac-def.mkxl
@@ -56,12 +56,13 @@
\setupinterlinespace
[\c!minheight=\zeropoint, % only special purpose
- \c!mindepth=\zeropoint, % only special purpose
+ \c!mindepth=\zeropoint, % only special purpose
\c!height=.72,
\c!depth=.28,
\c!top=1.0,
+ \c!ntop=\minusone, % >= 0 : times lineheight
\c!bottom=0.4,
- \c!distance=\onepoint, % \dimexpr\openlineheight/10\relax
+ \c!distance=\onepoint, % \dimexpr\openlineheight/10\relax
\c!line=2.8\exheight,
\c!stretch=\zerocount,
\c!shrink=\zerocount]
diff --git a/Master/texmf-dist/tex/context/base/mkxl/spac-flr.mkxl b/Master/texmf-dist/tex/context/base/mkxl/spac-flr.mkxl
index 3ea90bc2c15..e6147facd90 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/spac-flr.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/spac-flr.mkxl
@@ -82,10 +82,10 @@
\endgroup
\ignorespaces}
-\setvalue{\??filleralternative\s!unknown}%
+\defcsname\??filleralternative\s!unknown\endcsname
{}
-\setvalue{\??filleralternative\v!symbol}%
+\defcsname\??filleralternative\v!symbol\endcsname
{\expandnamespaceparameter\??fillerleadermethod\fillerparameter\c!method\v!local
\ifdim\fillerparameter\c!offset>\zeropoint
\simplealignedspreadbox
@@ -100,23 +100,23 @@
\fi
\hfill}
-\setvalue{\??filleralternative\v!stretch}%
+\defcsname\??filleralternative\v!stretch\endcsname
{\hfill}
-\setvalue{\??filleralternative\v!space}%
+\defcsname\??filleralternative\v!space\endcsname
{\hskip\fillerparameter\c!distance\relax}
-\setvalue{\??filleralternative\v!rule}%
+\defcsname\??filleralternative\v!rule\endcsname
{\expandnamespaceparameter\??fillerleadermethod\fillerparameter\c!method\v!local
\hrule
\s!height\fillerparameter\c!height
\s!depth \fillerparameter\c!depth
\hfill}
-\letvalue{\??fillerleadermethod\s!local }\normalleaders % overflow ends up inbetween (current box)
-\letvalue{\??fillerleadermethod\v!global}\normalgleaders % overflow ends up inbetween (outermost box)
-\letvalue{\??fillerleadermethod\v!middle}\normalcleaders % overflow ends up before, after (current box)
-\letvalue{\??fillerleadermethod\v!broad }\normalxleaders % overflow ends up before, inbetween, after (current box)
+\letcsname\??fillerleadermethod\s!local \endcsname\normalleaders % overflow ends up inbetween (current box)
+\letcsname\??fillerleadermethod\v!global\endcsname\normalgleaders % overflow ends up inbetween (outermost box)
+\letcsname\??fillerleadermethod\v!middle\endcsname\normalcleaders % overflow ends up before, after (current box)
+\letcsname\??fillerleadermethod\v!broad \endcsname\normalxleaders % overflow ends up before, inbetween, after (current box)
\setupfillers
[\c!width=\emwidth,
diff --git a/Master/texmf-dist/tex/context/base/mkxl/spac-grd.mkxl b/Master/texmf-dist/tex/context/base/mkxl/spac-grd.mkxl
index 65739cabea7..33bf0c706d7 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/spac-grd.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/spac-grd.mkxl
@@ -101,11 +101,11 @@
% \definecolor[GridLineColor][red]
% \definecolor[GridTextColor][blue]
-\newdimen\d_spac_lines_correction_before
-\newdimen\d_spac_lines_correction_after
+\newdimension\d_spac_lines_correction_before
+\newdimension\d_spac_lines_correction_after
-\newbox \b_spac_lines_correction_before
-\newbox \b_spac_lines_correction_after
+\newbox \b_spac_lines_correction_before
+\newbox \b_spac_lines_correction_after
\def\spac_lines_initialize_corrections
{\setbox\b_spac_lines_correction_before\hpack{\setstrut\strut}%
@@ -176,7 +176,7 @@
{\ifdim\pagegoal<\maxdimen
\ifdim\pagetotal>\lineheight % or \topskip
\scratchdimen\pagetotal
- \advance\scratchdimen\lineheight
+ \advanceby\scratchdimen\lineheight
\ifdim\scratchdimen<\pagegoal
\baselinecorrection
\fi
diff --git a/Master/texmf-dist/tex/context/base/mkxl/spac-hor.lmt b/Master/texmf-dist/tex/context/base/mkxl/spac-hor.lmt
index 7db8d4d6f3f..a4a8f0ade52 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/spac-hor.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/spac-hor.lmt
@@ -10,24 +10,14 @@ local chardata = characters.data
local peekchar = tokens.scanners.peekchar
local ctx_space = context.space
-local can_have_space = table.tohash {
- "lu", "ll", "lt", "lm", "lo", -- letters
- -- "mn", "mc", "me", -- marks
- "nd", "nl", "no", -- numbers
- "ps", "pi", -- initial
- -- "pe", "pf", -- final
- -- "pc", "pd", "po", -- punctuation
- "sm", "sc", "sk", "so", -- symbols
- -- "zs", "zl", "zp", -- separators
- -- "cc", "cf", "cs", "co", "cn", -- others
-}
+local can_have_space = characters.can_have_space
interfaces.implement {
name = "autoinsertnextspace",
protected = true,
public = true,
actions = function()
- local char = peekchar()
+ local char = peekchar() -- nil means space command
if char then
local d = chardata[char]
if d and can_have_space[d.category] then
@@ -36,3 +26,35 @@ interfaces.implement {
end
end,
}
+
+local nuts = nodes.nuts
+local tonut = nodes.tonut
+local traverseglue = nuts.traversers.glue
+local setwidth = nodes.nuts.setwidth
+local indentskip_code = nodes.gluecodes.indentskip
+local texgetnest = tex.getnest
+
+local function lateindent(amount)
+ local head = tonut(texgetnest("top","head"))
+ if head then
+ for n, s in traverseglue, head do
+ if s == indentskip_code then
+ setwidth(n,amount or 0)
+ end
+ end
+ end
+end
+
+interfaces.implement {
+ name = "lateindent",
+ public = true,
+ protected = "true",
+ arguments = "dimension",
+ actions = lateindent,
+}
+interfaces.implement {
+ name = "lateundent",
+ public = true,
+ protected = "true",
+ actions = lateindent,
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/spac-hor.mkxl b/Master/texmf-dist/tex/context/base/mkxl/spac-hor.mkxl
index f64207a2cb5..3c4fd1eb466 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/spac-hor.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/spac-hor.mkxl
@@ -13,20 +13,28 @@
\writestatus{loading}{ConTeXt Spacing Macros / Horizontal}
+% document: \enabledirectives[backends.spaces]
+
\unprotect
\registerctxluafile{spac-hor}{autosuffix}
\aliased\let\parfillrightskip\parfillskip
-\bitwiseflip \normalizelinemode \parindentskipcode
-\bitwiseflip \normalizelinemode \normalizelinecode
-\bitwiseflip \normalizelinemode \clipwidthcode
+\bitwiseflip \normalizelinemode \normalizelinenormalizecode
+\bitwiseflip \normalizelinemode \parindentskipnormalizecode
+\bitwiseflip \normalizelinemode \clipwidthnormalizecode
+\bitwiseflip \normalizelinemode \flattendiscretionariesnormalizecode
+\bitwiseflip \normalizelinemode \flattenhleadersnormalizecode
+%bitwiseflip \normalizelinemode \discardzerotabskipsnormalizecode
+
+\bitwiseflip \normalizeparmode \normalizeparnormalizeparcode
+\bitwiseflip \normalizeparmode \flattenvleadersnormalizeparcode
-\let\v_spac_indentation_current\empty % amount/keyword
+\lettonothing\v_spac_indentation_current % amount/keyword
-\newdimen \d_spac_indentation_par
-\parindent\d_spac_indentation_par % for the show
+\newdimension\d_spac_indentation_par
+\parindent \d_spac_indentation_par % for the show
\newconditional\c_spac_indentation_indent_first \settrue\c_spac_indentation_indent_first
\newconstant \c_spac_indentation_toggle_state
@@ -48,7 +56,7 @@
\aliased\let\synchronizeindenting\spac_indentation_setup_size
-\let\m_spac_indentation_options\empty
+\lettonothing\m_spac_indentation_options
\def\spac_indentation_setup_options[#1]%
{\edef\m_spac_indentation_options{#1}% comma separated list
@@ -91,7 +99,7 @@
\installcorenamespace {indentingpreset}
\permanent\tolerant\protected\def\defineindenting[#1]#*[#2]% todo: mixes
- {\ifarguments\else\setevalue{\??indentingpreset#1}{#2}\fi}
+ {\ifarguments\else\edefcsname\??indentingpreset#1\endcsname{#2}\fi}
\def\spac_indentation_apply_step_one_nested
{\expandafter\processcommacommand\expandafter[\lastnamedcs]\spac_indentation_apply_step_one}
@@ -377,7 +385,7 @@
\permanent\protected\def\newfrenchspacing{\spac_spacecodes_set_fixed{1050}}
\permanent\protected\def\nonfrenchspacing{\spac_spacecodes_set_stretch}
-\permanent\protected\def\installspacingmethod#1#2{\setvalue{\??spacecodemethod#1}{#2}}
+\permanent\protected\def\installspacingmethod#1#2{\defcsname\??spacecodemethod#1\endcsname{#2}}
\installspacingmethod \empty {} % keep values
\installspacingmethod \v!fixed {\frenchspacing } % equal spaces everywhere
@@ -390,6 +398,22 @@
\fi
\updateraggedskips}
+% test test\fsp. test % beats frenchspacing
+
+% \permanent\protected\def\fsp#1% fixed space puncuation
+% {\begingroup
+% \ifchknum`#1\or
+% \sfcode`#1\plusthousand
+% \fi
+% #1%
+% \endgroup}
+
+\permanent\protected\def\fsp#1% fixed space puncuation
+ {#1%
+ \ifchknum`#1\or
+ \spacefactor\plusthousand
+ \fi}
+
%D Here's a tweak .. if needed one can configure it in the configuration
%D so that initialization happens more efficient.
%D
@@ -517,23 +541,49 @@
\permanent\protected\def\fixedspaces
{\letcatcodecommand \ctxcatcodes \tildeasciicode\fixedspace
- \enforced\let~\fixedspace} % we need to renew it
+ %\enforced\let~\fixedspace} % we need to renew it
+ \enforced\letcharcode\tildeasciicode\fixedspace} % why this
\appendtoks
- \enforced\let~\space
+ %\enforced\let~\space
+ \enforced\letcharcode\tildeasciicode\space
\enforced\let\ \space
\to \everysimplifycommands
-\newsignal\d_spac_keep_unwanted_space_signal
+% \newsignal\d_spac_keep_unwanted_space_signal
+%
+% % \parindentmode\plusone
+%
+% \permanent\protected\def\keepunwantedspaces
+% {\ifhmode
+% \ifdim\lastskip=\d_spac_keep_unwanted_space_signal\else
+% \hskip\d_spac_keep_unwanted_space_signal\relax
+% \fi
+% \fi}
+%
+% \permanent\protected\def\removeunwantedspaces
+% {\ifhmode
+% \expandafter \spac_helpers_remove_unwantedspace
+% \fi}
+%
+% \def\spac_helpers_remove_unwantedspace
+% {\ifnum\lastnodetype=\gluenodecode\relax
+% \ifnum\lastnodesubtype=\indentskipsubtypecode\relax
+% % keep parindent
+% \orelse\ifdim\lastskip=\d_spac_keep_unwanted_space_signal\relax
+% \unskip
+% \else
+% \unskip
+% \doubleexpandafter\spac_helpers_remove_unwantedspace
+% \fi
+% \fi}
-% \parindentmode\plusone
+\newboundary\c_spac_keepspaces_boundary
\permanent\protected\def\keepunwantedspaces
- {\ifhmode
- \ifdim\lastskip=\d_spac_keep_unwanted_space_signal\else
- \hskip\d_spac_keep_unwanted_space_signal\relax
- \fi
- \fi}
+ {\ifhmode\ifnum\lastboundary=\c_spac_keepspaces_boundary\else
+ \boundary\c_spac_keepspaces_boundary
+ \fi\fi}
\permanent\protected\def\removeunwantedspaces
{\ifhmode
@@ -541,15 +591,15 @@
\fi}
\def\spac_helpers_remove_unwantedspace
- {\ifnum\lastnodetype=\gluenodecode\relax
- \ifnum\lastnodesubtype=\indentskipsubtypecode\relax
- % keep parindent
- \orelse\ifdim\lastskip=\d_spac_keep_unwanted_space_signal\relax
- \unskip
- \else
- \unskip
- \doubleexpandafter\spac_helpers_remove_unwantedspace
- \fi
+ {\ifnum\lastboundary=\c_spac_keepspaces_boundary
+ \expandafter\unboundary
+ \orunless\ifnum\lastnodetype=\gluenodecode
+ % no skip
+ \orelse\ifnum\lastnodesubtype=\indentskipsubtypecode
+ % keep parindent
+ \else
+ \unskip
+ \expandafter\spac_helpers_remove_unwantedspace
\fi}
\permanent\protected\def\onlynonbreakablespace
@@ -584,6 +634,8 @@
%D A couple of plain macros:
\ifdefined\enspace \else \permanent\protected\def\enspace{\kern .5\emwidth} \fi
+\ifdefined\emspace \else \permanent\protected\def\emspace{\kern \emwidth} \fi
+
\ifdefined\quad \else \permanent\protected\def\quad {\hskip \emwidth\relax} \fi
\ifdefined\enskip \else \permanent\protected\def\enskip {\hskip.5\emwidth\relax} \fi
\ifdefined\qquad \else \permanent\protected\def\qquad {\hskip 2\emwidth\relax} \fi
@@ -591,7 +643,7 @@
\permanent\protected\def\negenspace{\kern-.5\emwidth}
\permanent\protected\def\negemspace{\kern- \emwidth}
-\aliased\let\emspace\quad
+% \aliased\let\emspace\quad
\permanent\protected\def\charspace{ } % the unexpandable \space (as space can also be delimiter for numbers)
@@ -609,13 +661,13 @@
% Bovendien definieren we enkele extra \fill's:
-\newskip\s_spac_fil \s_spac_fil = \zeropoint \s!plus 1\s!fil \relax
-\newskip\s_spac_fill \s_spac_fill = \zeropoint \s!plus 1\s!fill \relax
-\newskip\s_spac_filll \s_spac_filll = \zeropoint \s!plus 1\s!filll\relax
+\newgluespec\s_spac_fil \s_spac_fil \zeropoint \s!plus 1\s!fil \relax
+\newgluespec\s_spac_fill \s_spac_fill \zeropoint \s!plus 1\s!fill \relax
+\newgluespec\s_spac_filll \s_spac_filll \zeropoint \s!plus 1\s!filll\relax
-\newskip\s_spac_neg_fil \s_spac_neg_fil = \zeropoint \s!plus-1\s!fil \relax
-\newskip\s_spac_neg_fill \s_spac_neg_fill = \zeropoint \s!plus-1\s!fill \relax
-\newskip\s_spac_neg_filll \s_spac_neg_filll = \zeropoint \s!plus-1\s!filll\relax
+\newgluespec\s_spac_neg_fil \s_spac_neg_fil \zeropoint \s!plus-1\s!fil \relax
+\newgluespec\s_spac_neg_fill \s_spac_neg_fill \zeropoint \s!plus-1\s!fill \relax
+\newgluespec\s_spac_neg_filll \s_spac_neg_filll \zeropoint \s!plus-1\s!filll\relax
\permanent\protected\def\hfilll {\hskip\s_spac_filll\relax}
\permanent\protected\def\vfilll {\vskip\s_spac_filll\relax}
@@ -633,9 +685,9 @@
\installcorenamespace{narrower}
\installcorenamespace{narrowermethod}
-\newskip\s_spac_narrower_left
-\newskip\s_spac_narrower_right
-\newskip\s_spac_narrower_middle
+\newgluespec\s_spac_narrower_left
+\newgluespec\s_spac_narrower_right
+\newgluespec\s_spac_narrower_middle
\installcommandhandler \??narrower {narrower} \??narrower
@@ -659,18 +711,18 @@
{\ifcsname\??narrowermethod#1\endcsname
\lastnamedcs
\else
- \global\advance\s_spac_narrower_middle#1\relax
+ \global\advanceby\s_spac_narrower_middle#1\relax
\fi}
\def\spac_narrower_initialize[#1]% hm, can be dorepeat directly
{\dorepeatwithcommand[#1]\spac_narrower_method_analyze}
-\installnarrowermethod \v!left {\global\advance\s_spac_narrower_left \narrowerparameter\c!left \relax}
-\installnarrowermethod \v!middle {\global\advance\s_spac_narrower_middle \narrowerparameter\c!middle\relax}
-\installnarrowermethod \v!right {\global\advance\s_spac_narrower_right \narrowerparameter\c!right \relax}
-\installnarrowermethod{-\v!left }{\global\advance\s_spac_narrower_left -\narrowerparameter\c!left \relax}
-\installnarrowermethod{-\v!middle}{\global\advance\s_spac_narrower_middle-\narrowerparameter\c!middle\relax}
-\installnarrowermethod{-\v!right }{\global\advance\s_spac_narrower_right -\narrowerparameter\c!right \relax}
+\installnarrowermethod \v!left {\global\advanceby\s_spac_narrower_left \narrowerparameter\c!left \relax}
+\installnarrowermethod \v!middle {\global\advanceby\s_spac_narrower_middle \narrowerparameter\c!middle\relax}
+\installnarrowermethod \v!right {\global\advanceby\s_spac_narrower_right \narrowerparameter\c!right \relax}
+\installnarrowermethod{-\v!left }{\global\advanceby\s_spac_narrower_left -\narrowerparameter\c!left \relax}
+\installnarrowermethod{-\v!middle}{\global\advanceby\s_spac_narrower_middle-\narrowerparameter\c!middle\relax}
+\installnarrowermethod{-\v!right }{\global\advanceby\s_spac_narrower_right -\narrowerparameter\c!right \relax}
\installnarrowermethod \v!reset {\global \s_spac_narrower_left \zeropoint
\global \s_spac_narrower_middle \zeropoint
\global \s_spac_narrower_right \zeropoint\relax}
@@ -686,8 +738,8 @@
\spac_narrower_start_apply{\narrowerparameter\v!default}%
\fi}
-\newskip \s_spac_narrower_left_last
-\newskip \s_spac_narrower_right_last
+\newgluespec \s_spac_narrower_left_last
+\newgluespec \s_spac_narrower_right_last
\newconditional\s_spac_narrower_last_swap
\def\spac_narrower_start_apply#1%
@@ -708,8 +760,8 @@
\fi
\else
\normalexpanded{\processcommalistwithparameters[\scratchstringone]}\spac_narrower_initialize
- \frozen\advance\leftskip \dimexpr\s_spac_narrower_left +\s_spac_narrower_middle\relax
- \frozen\advance\rightskip\dimexpr\s_spac_narrower_right+\s_spac_narrower_middle\relax
+ \frozen\advanceby\leftskip \dimexpr\s_spac_narrower_left +\s_spac_narrower_middle\relax
+ \frozen\advanceby\rightskip\dimexpr\s_spac_narrower_right+\s_spac_narrower_middle\relax
\fi
\seteffectivehsize}
@@ -728,7 +780,7 @@
\permanent\tolerant\protected\def\startnarrower[#1]%
{\begingroup
- \let\currentnarrower\empty
+ \lettonothing\currentnarrower
\ifparameter#1\or
\spac_narrower_start_apply{#1}%
\else
@@ -777,9 +829,9 @@
\aliased\let\stopnarrow\spac_narrower_stop
-\newdimen\d_spac_effective_hsize \permanent\protected\def\effectivehsize {\hsize}
-\newdimen\d_spac_effective_leftskip \permanent\protected\def\effectiveleftskip {\dimexpr\leftskip \relax}
-\newdimen\d_spac_effective_rightskip \permanent\protected\def\effectiverightskip{\dimexpr\rightskip\relax}
+\newdimension\d_spac_effective_hsize \permanent\protected\def\effectivehsize {\hsize}
+\newdimension\d_spac_effective_leftskip \permanent\protected\def\effectiveleftskip {\dimexpr\leftskip \relax}
+\newdimension\d_spac_effective_rightskip \permanent\protected\def\effectiverightskip{\dimexpr\rightskip\relax}
\permanent\protected\def\seteffectivehsize
{\setlocalhsize
@@ -793,8 +845,8 @@
\installcorenamespace{skipadaptionleft}
\installcorenamespace{skipadaptionright}
-\newskip\leftskipadaption
-\newskip\rightskipadaption
+\newgluespec\leftskipadaption
+\newgluespec\rightskipadaption
\defcsname\??skipadaptionleft \v!yes\endcsname{\ifzeropt\d_spac_indentation_par\narrowerparameter\c!left\else\d_spac_indentation_par\fi}
\letcsname\??skipadaptionleft \v!no \endcsname\zeropoint
@@ -809,8 +861,8 @@
\permanent\protected\def\dosetleftskipadaption #1{\leftskipadaption \ifcsname\??skipadaptionleft #1\endcsname\lastnamedcs\else#1\fi\relax}
\permanent\protected\def\dosetrightskipadaption#1{\rightskipadaption\ifcsname\??skipadaptionright#1\endcsname\lastnamedcs\else#1\fi\relax}
-\permanent\protected\def\doadaptleftskip #1{\normalexpanded{\dosetleftskipadaption {#1}}\permanent\advance\leftskip \leftskipadaption }
-\permanent\protected\def\doadaptrightskip#1{\normalexpanded{\dosetrightskipadaption{#1}}\permanent\advance\rightskip\rightskipadaption}
+\permanent\protected\def\doadaptleftskip #1{\normalexpanded{\dosetleftskipadaption {#1}}\frozen\advanceby\leftskip \leftskipadaption }
+\permanent\protected\def\doadaptrightskip#1{\normalexpanded{\dosetrightskipadaption{#1}}\frozen\advanceby\rightskip\rightskipadaption}
\permanent\protected\def\forgetbothskips
{\leftskip\zeropoint
@@ -836,12 +888,12 @@
\installcorenamespace{tolerancemethods}
-\mutable\let\bottomtolerance\empty % why not zero (not used annyway, but for now we keep it)
+\mutable\lettonothing\bottomtolerance % why not zero (not used annyway, but for now we keep it)
\permanent\protected\def\installtolerancemethod#1#2#3%
{\defcsname\??tolerancemethods#1:#2\endcsname{#3}}
-\installtolerancemethod \v!vertical \v!verystrict {\let\bottomtolerance\empty} % why not zero
+\installtolerancemethod \v!vertical \v!verystrict {\lettonothing\bottomtolerance} % why not zero
\installtolerancemethod \v!vertical \v!strict {\def\bottomtolerance{.050}}
\installtolerancemethod \v!vertical \v!tolerant {\def\bottomtolerance{.075}}
\installtolerancemethod \v!vertical \v!verytolerant {\def\bottomtolerance{.100}}
@@ -896,6 +948,8 @@
% \box\b_spac_indentations_a
% \endgroup}
+%D Struts are done differently now.
+%D
%D The only complication lays in \type{\strut}. In \PLAIN\ \TEX\ a \type{\strut} is
%D defined as:
%D
@@ -1000,8 +1054,8 @@
\definehspace [\v!default] [\spaceamount]
\definehspace [\v!none] [\zeropoint]
-%D Taken from Taco's math module (cq. \AMS\ macros), but
-%D adapted to \type {\hspace}:
+%D Taken from Taco's math module (cq. \AMS\ macros), but %D adapted to \type
+%D {\hspace}:
\permanent\protected\def\textormathspace #1#2#3{\ifmmode\mskip#1#2\else\kern #1\hspaceamount\empty{#3}\fi\relax}
\permanent\protected\def\textormathspacecommand #1#2#3{\ifmmode\mskip#1#2\else#3\fi\relax}
@@ -1017,28 +1071,30 @@
\overloaded\permanent\protected \def\negthickspace{\textormathspace-\thickmuskip3}
\overloaded\permanent\protected\edef\medspace {\textormathspacecommand+\medmuskip{\Uchar"205F}}
-% needed for unicode:
-
-% \protected\def\breakablethinspace {\breakabletextormathspace+\thinmuskip1}
-% \protected\def\twoperemspace {\hskip\dimexpr\emwidth/2\relax} % == \enspace
-% \protected\def\threeperemspace {\hskip\dimexpr\emwidth/3\relax}
-% \protected\def\fourperemspace {\hskip\dimexpr\emwidth/4\relax}
-% \protected\def\fiveperemspace {\hskip\dimexpr\emwidth/5\relax} % goodie
-% \protected\def\sixperemspace {\hskip\dimexpr\emwidth/6\relax}
-% \protected\def\figurespace {\begingroup\setbox\scratchbox\hbox{0}\hskip\wd\scratchbox\endgroup} % there is a command for this
-% \protected\def\punctuationspace {\begingroup\setbox\scratchbox\hbox{.}\hskip\wd\scratchbox\endgroup}
-% \protected\def\ideographicspace {\hskip\dimexpr\emwidth/1\relax}
-% \protected\def\ideographichalffillspace{\hskip\dimexpr\emwidth/2\relax}
-% \protected\def\nobreakspace {\penalty\plustenthousand\kern\interwordspace}
-% \protected\def\narrownobreakspace {\penalty\plustenthousand\thinspace}
-% \protected\def\zerowidthnobreakspace {\penalty\plustenthousand\kern\zeropoint}
-% \protected\def\zerowidthspace {\hskip\zeropoint}
+% maybe
+
+% \protected\def\breakablethinskip {\breakabletextormathspace+\thinmuskip1}
+% \protected\def\twoperemskip {\hskip\dimexpr\emwidth/2\relax} % == \enspace
+% \protected\def\threeperemskip {\hskip\dimexpr\emwidth/3\relax}
+% \protected\def\fourperemskip {\hskip\dimexpr\emwidth/4\relax}
+% \protected\def\fiveperemskip {\hskip\dimexpr\emwidth/5\relax} % goodie
+% \protected\def\sixperemskip {\hskip\dimexpr\emwidth/6\relax}
+% \protected\def\figureskip {\begingroup\setbox\scratchbox\hbox{0}\hskip\wd\scratchbox\endgroup} % there is a command for this
+% \protected\def\punctuationskip {\begingroup\setbox\scratchbox\hbox{.}\hskip\wd\scratchbox\endgroup}
+% \protected\def\ideographicskip {\hskip\dimexpr\emwidth/1\relax}
+% \protected\def\ideographichalffillskip{\hskip\dimexpr\emwidth/2\relax}
+% \protected\def\nobreakskip {\penalty\plustenthousand\kern\interwordspace}
+% \protected\def\narrownobreakskip {\penalty\plustenthousand\thinspace}
+% \protected\def\zerowidthnobreakskip {\penalty\plustenthousand\kern\zeropoint}
+% \protected\def\zerowidthskip {\hskip\zeropoint}
\definehspace[.5][.1250\emwidth] % hair
\definehspace[1] [.1667\emwidth] % thin
\definehspace[2] [.2222\emwidth] % med
\definehspace[3] [.2777\emwidth] % thick
+% These will be redefined anyway in math-ini:
+
\suggestedalias \, \thinspace
\suggestedalias \: \medspace
\suggestedalias \; \thickspace
@@ -1173,33 +1229,40 @@
%D \oeps}
%D \stoptyping
-\newsignal\d_spac_ignore_spaces_signal
-\newcount \c_spac_ignore_spaces
+% \newsignal \d_spac_ignore_spaces_signal
+% \newinteger\c_spac_ignore_spaces
+%
+% \permanent\protected\def\startignorespaces
+% {\advanceby\c_spac_ignore_spaces\plusone
+% \ifcase\c_spac_ignore_spaces\or \ifhmode
+% \hskip\d_spac_ignore_spaces_signal
+% \fi \fi
+% \ignorespaces}
+%
+% \permanent\protected\def\stopignorespaces
+% {\ifcase\c_spac_ignore_spaces \or
+% \ifhmode
+% \doloop\spac_ignore_spaces_body
+% \fi
+% \fi
+% \advanceby\c_spac_ignore_spaces\minusone}
+%
+% \def\spac_ignore_spaces_body
+% {\ifzeropt\lastskip
+% \exitloop
+% \orelse\ifdim\lastskip=\d_spac_ignore_spaces_signal
+% \unskip
+% \exitloop
+% \else
+% \unskip
+% \fi}
\permanent\protected\def\startignorespaces
- {\advance\c_spac_ignore_spaces\plusone
- \ifcase\c_spac_ignore_spaces\or \ifhmode
- \hskip\d_spac_ignore_spaces_signal
- \fi \fi
- \ignorespaces}
+ {\pushmacro\nospaces
+ \nospaces\plusone}
\permanent\protected\def\stopignorespaces
- {\ifcase\c_spac_ignore_spaces \or
- \ifhmode
- \doloop\spac_ignore_spaces_body
- \fi
- \fi
- \advance\c_spac_ignore_spaces\minusone}
-
-\def\spac_ignore_spaces_body
- {\ifzeropt\lastskip
- \exitloop
- \orelse\ifdim\lastskip=\d_spac_ignore_spaces_signal
- \unskip
- \exitloop
- \else
- \unskip
- \fi}
+ {\popmacro\nospaces}
%D \macros
%D {obeyfollowingtoken}
@@ -1215,4 +1278,25 @@
\permanent\protected\def\interwordspacesafter #1{\dofastloopcs{#1}\interwordspaceafter}
\permanent\protected\def\interwordspaces #1{\wordboundary\zwnj\dofastloopcs{\numexpr#1+\minusone}\interwordspaceafter}
+%D For mp:
+
+\installcorenamespace{mplocation}
+
+\defcsname\??mplocation\v!left \endcsname{1}
+\defcsname\??mplocation\v!right\endcsname{2}
+\defcsname\??mplocation\v!inner\endcsname{3}
+\defcsname\??mplocation\v!outer\endcsname{4}
+
+\permanent\def\mplocation#1{\ifcsname\??mplocation#1\endcsname\lastnamedcs\else0\fi}
+%permanent\def\mplocation#1{\csname\??mplocation\ifcsname\??mplocation#1\endcsname#1\else\v!left\fi\endcsname}
+
+% new: \lateindent \lateundent
+
+% \parinitleftskip1cm \parindent 1cm \indent test \par
+% \parinitleftskip1cm \parindent 1cm \undent test \par
+% \parinitleftskip1cm \parindent 1cm \indent \undent test \par
+% \parinitleftskip1cm \parindent 1cm \indent \strut \undent test \par
+% \parinitleftskip1cm \parindent 1cm \strut \lateindent 2cm test \par
+% \parinitleftskip1cm \parindent 1cm \strut \lateindent 2cm test \lateundent \par
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/spac-lin.mkxl b/Master/texmf-dist/tex/context/base/mkxl/spac-lin.mkxl
index 53da64923af..d462caeaa1d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/spac-lin.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/spac-lin.mkxl
@@ -63,7 +63,7 @@
\frozen\instance\letvalue {\e!stop \currentlines }\spac_lines_stop
\to \everydefinelines
-\let\p_lines_option\empty
+\lettonothing\p_lines_option
\let\spac_lines_break \relax
\let\spac_after_first_obeyed_line\relax
@@ -80,15 +80,15 @@
%D \setuplines[indentlist={0pt,1em,*}]
%D \starttyping
-\newcount\c_spac_lines_indent_cnt
-\newcount\c_spac_lines_indent_max
-\newdimen\d_spac_lines_indent
+\newinteger \c_spac_lines_indent_cnt
+\newinteger \c_spac_lines_indent_max
+\newdimension\d_spac_lines_indent
\def\spac_lines_indent_indeed
{\ifnum\c_spac_lines_indent_cnt=\c_spac_lines_indent_max
\c_spac_lines_indent_cnt\plusone
\else
- \advance\c_spac_lines_indent_cnt\plusone
+ \advanceby\c_spac_lines_indent_cnt\plusone
\fi
\getfromcommacommand[\m_spac_lines_indentlist][\c_spac_lines_indent_cnt]%
\ifx\commalistelement\wildcardsymbol
@@ -96,7 +96,7 @@
\else
\scratchdimen\dimexpr\commalistelement\relax
\hskip
- \ifdim\scratchdimen=\zeropoint
+ \ifzeropt\scratchdimen
\zeropoint
\else
\scratchdimen
diff --git a/Master/texmf-dist/tex/context/base/mkxl/spac-pag.mkxl b/Master/texmf-dist/tex/context/base/mkxl/spac-pag.mkxl
index d9f7c67a1ee..d61ddcbe6ae 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/spac-pag.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/spac-pag.mkxl
@@ -16,7 +16,7 @@
\unprotect
\newif \ifpagestatemismatch
-\newcount \realpagestateno
+\newinteger \realpagestateno
\newconstant\frozenpagestate
\permanent\protected\def\dotrackpagestate#1#2%
@@ -26,11 +26,11 @@
\permanent\protected\def\doforcedtrackpagestate#1#2%
{\ifcase\frozenpagestate
- \global\advance#2\plusone
+ \global\advanceby#2\plusone
\setpagestate[#1][\number#2]%
\fi}
-\let\m_spac_pagestates_realpage\empty
+\lettonothing\m_spac_pagestates_realpage
\newconditional\c_spac_pagestates_found
@@ -133,7 +133,7 @@
% \dorecurse{500}{\dontleavehmode\signalrightpage\doifrightpageelse{right}{left}\par} % given doublesided
-\newcount\nofraggedparagraphs
+\newinteger\nofraggedparagraphs
\definepagestate[\s!paragraph]
@@ -145,7 +145,7 @@
\installcorenamespace{pagechanges}
-\newif\ifpagechanged \mutable\let\lastchangedpage\empty
+\newif\ifpagechanged \mutable\lettonothing\lastchangedpage
\def\spac_pagechanges_check#1#2#3%
{\pagechangedfalse
@@ -155,7 +155,7 @@
\pagechangedtrue
\fi
\ifpagechanged
- \letgvalue{\??pagechanges#2:#1}\m_spac_pagestates_realpage
+ \gletcsname\??pagechanges#2:#1\endcsname\m_spac_pagestates_realpage
\glet\lastchangedpage\m_spac_pagestates_realpage
\else
\glet\lastchangedpage\realfolio
diff --git a/Master/texmf-dist/tex/context/base/mkxl/spac-par.mkxl b/Master/texmf-dist/tex/context/base/mkxl/spac-par.mkxl
index 134a60e2a02..f924165872a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/spac-par.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/spac-par.mkxl
@@ -24,62 +24,67 @@
% this might move to syst-ini.mkxl
\setnewconstant\paragraphupdatecodes\numexpr
- \frozentolerancecode
- + \frozenloosenesscode
- + \frozenlinepenaltycode
- + \frozenwidowpenaltycode
- + \frozenclubpenaltycode
- + \frozenbrokenpenaltycode
- + \frozendemeritscode
+ \tolerancefrozenparcode
+ + \loosenessfrozenparcode
+ + \linepenaltyfrozenparcode
+ + \widowpenaltyfrozenparcode
+ + \clubpenaltyfrozenparcode
+ + \brokenpenaltyfrozenparcode
+ + \demeritsfrozenparcode
+ + \orphanpenaltyfrozenparcode
\relax
\setnewconstant\paragraphpenaltycodes\numexpr
- \frozenlinepenaltycode
- + \frozenwidowpenaltycode
- + \frozenclubpenaltycode
- + \frozenbrokenpenaltycode
+ \linepenaltyfrozenparcode
+ + \widowpenaltyfrozenparcode
+ + \clubpenaltyfrozenparcode
+ + \brokenpenaltyfrozenparcode
+ + \shapingpenaltyfrozenparcode
+ + \orphanpenaltyfrozenparcode
\relax
\setnewconstant\paragraphdemeritcodes\numexpr
- \frozendemeritscode
+ \demeritsfrozenparcode
\relax
\setnewconstant\paragraphshapecodes\numexpr
- \frozenhangcode
- + \frozenskipcode
- + \frozenparfillcode
- + \frozenshapecode
+ \hangfrozenparcode
+ + \skipfrozenparcode
+ + \parfillfrozenparcode
+ + \shapefrozenparcode
\relax
\setnewconstant\paragraphlinecodes\numexpr
- \frozenlinecode
+ \linefrozenparcode
\relax
\setnewconstant\paragraphhyphenationcodes\numexpr
- \frozenhyphenationcode
+ \hyphenationfrozenparcode
\relax
\setnewconstant\frozenparagraphdefault\numexpr
- \frozenhsizecode % \hsize
- + \frozenskipcode % \leftskip \rightskip
- + \frozenhangcode % \hangindent \hangafter
- + \frozenindentcode % \parindent
- + \frozenparfillcode % \parfillskip \parfillleftskip
- + \frozenadjustcode % \adjustspacing
- + \frozenprotrudecode % \protrudechars
- + \frozentolerancecode % \tolerance \pretolerance
- + \frozenstretchcode % \emergcystretch
- + \frozenloosenesscode % \looseness
- + \frozenlastlinecode % \lastlinefit
- + \frozenlinepenaltycode % \linepenalty \interlinepenalty \interlinepenalties
- + \frozenclubpenaltycode % \clubpenalty \clubpenalties
- + \frozenwidowpenaltycode % \widowpenalty \widowpenalties
- + \frozendisplaypenaltycode % \displaypenalty \displaypenalties
- + \frozenbrokenpenaltycode % \brokenpenalty
- + \frozendemeritscode % \doublehyphendemerits \finalhyphendemerits \adjdemerits
- + \frozenshapecode % \parshape
- % \frozenlinecode % \baselineskip \lineskip \lineskiplimit
- + \frozenhyphenationcode % \hyphenationmode
+ \hsizefrozenparcode % \hsize
+ + \skipfrozenparcode % \leftskip \rightskip
+ + \hangfrozenparcode % \hangindent \hangafter
+ + \indentfrozenparcode % \parindent
+ + \parfillfrozenparcode % \parfillskip \parfillleftskip
+ + \adjustfrozenparcode % \adjustspacing
+ + \protrudefrozenparcode % \protrudechars
+ + \tolerancefrozenparcode % \tolerance \pretolerance
+ + \stretchfrozenparcode % \emergcystretch
+ + \loosenessfrozenparcode % \looseness
+ + \lastlinefrozenparcode % \lastlinefit
+ + \linepenaltyfrozenparcode % \linepenalty \interlinepenalty \interlinepenalties
+ + \clubpenaltyfrozenparcode % \clubpenalty \clubpenalties
+ + \widowpenaltyfrozenparcode % \widowpenalty \widowpenalties
+ + \displaypenaltyfrozenparcode % \displaypenalty \displaypenalties
+ + \brokenpenaltyfrozenparcode % \brokenpenalty
+ + \demeritsfrozenparcode % \doublehyphendemerits \finalhyphendemerits \adjdemerits
+ + \shapefrozenparcode % \parshape
+ % \linefrozenparcode % \baselineskip \lineskip \lineskiplimit
+ + \hyphenationfrozenparcode % \hyphenationmode
+ + \shapingpenaltyfrozenparcode % \shapingpenaltymode
+ + \orphanpenaltyfrozenparcode
\relax
\permanent\protected\def\freezeparagraphproperties {\snapshotpar\frozenparagraphdefault}
@@ -104,9 +109,9 @@
\installcorenamespace {parwrapafter}
\installcorenamespace {parwrapcount}
-\let\spac_paragraph_wrap\relax
+\lettonothing\spac_paragraph_wrap
-\newcount\c_spac_paragraph_group_level
+\newinteger\c_spac_paragraph_group_level
\protected\def\spac_paragraph_update
{\c_spac_paragraph_group_level\currentgrouplevel\relax
@@ -125,7 +130,7 @@
\expandafter\newtoks\csname\??eparwrap\the\currentgrouplevel\endcsname}
\def\spac_paragraph_install_count#1%
- {\expandafter\newcount\csname\??parwrapcount#1\endcsname}
+ {\expandafter\newinteger\csname\??parwrapcount#1\endcsname}
\def\spac_paragraph_install_pair#1#2#3%
{\expandafter\newtoks\csname\??parwrapbefore#3\endcsname
@@ -143,17 +148,17 @@
\ifcsname\??parwrapbefore#3\endcsname \else
\spac_paragraph_install_pair#1#2{#3}%
\fi
- #1\csname\??parwrapbefore#3\endcsname{\advance\csname\??parwrapcount#3\endcsname\plusone\relax
+ #1\csname\??parwrapbefore#3\endcsname{\global\advanceby\csname\??parwrapcount#3\endcsname\plusone\relax % global, see (!)
\clf_setparwrapper{#3}#4}%
#2\csname\??parwrapafter #3\endcsname{#5}%
\clf_newparwrapper{#3}%
- \enforced\let\spac_paragraph_wrap\spac_paragraph_update}
+ \let\spac_paragraph_wrap\spac_paragraph_update}
\def\spac_register_par_wrapper_nop#1#2#3#4#5%
{\ifcsname\??parwrapcount#3\endcsname \else
\spac_paragraph_install_count{#3}%
\fi
- \csname\??parwrapcount#3\endcsname\plusone
+ \global\csname\??parwrapcount#3\endcsname\plusone % global, see (!)
#4\wrapuppar{#5}}
\protected\def\spac_register_par_wrapper
@@ -168,7 +173,7 @@
\csname\??eparwrap\the\currentgrouplevel\endcsname\emptytoks}
\permanent\protected\def\unregisterparwrapper#1%
- {\csname\??parwrapcount#1\endcsname\zerocount
+ {\global\csname\??parwrapcount#1\endcsname\zerocount % global, see (!)
\ifcsname\??parwrapbefore#1\endcsname
\lastnamedcs\emptytoks
\csname\??parwrapafter#1\endcsname\emptytoks
@@ -200,9 +205,19 @@
%appendtoks\spac_paragraph_wrap \to\everypar
%appendtoks\spac_paragraph_freeze \to\everypar
+% (!) testcase for global setting of count
+%
+% \starttext
+% \hsize3cm
+% Aaa\wordright{Aaa}\par
+% \sc{Bbb\wordright{Bbb}}\par
+% {\sc Ccc\wordright{Ccc}}\par
+% \sc{Ddd}\wordright{\sc{Ddd}}\par
+% \stoptext
+
\setparagraphfreezing
-\appendtoks\enforced\let\spac_paragraph_wrap\relax\to\everyforgetall
+\appendtoks\lettonothing\spac_paragraph_wrap\to\everyforgetall
%D In due time, the code below will be upgraded using the above mechanisms.
@@ -212,7 +227,7 @@
%D indentation as set (by the output routine) inside the group are forgotten
%D afterwards. (I must not forget its existence).
-\mutable\let\currentparagraphproperties\empty % visible for tracing
+\mutable\lettonothing\currentparagraphproperties % visible for tracing
\permanent\def\carryoverpar#1% #1 can be \endgroup or \egroup or ... expandable !
{\normalexpanded
@@ -240,8 +255,6 @@
\installcorenamespace{paragraphintro}
-\let\spac_paragraphs_flush_intro\relax % hook into everypar
-
\newtoks\t_spac_paragraphs_intro_first
\newtoks\t_spac_paragraphs_intro_next
\newtoks\t_spac_paragraphs_intro_each
@@ -250,8 +263,8 @@
\newconditional\c_spac_paragraphs_intro_next
\newconditional\c_spac_paragraphs_intro_each
-\let\spac_paragraphs_flush_intro\relax
-\let\spac_paragraphs_intro_step \relax
+\lettonothing\spac_paragraphs_flush_intro
+\lettonothing\spac_paragraphs_intro_step
\permanent\protected\tolerant\def\setupparagraphintro[#1]#*[#2]%
{\def\spac_paragraphs_intro_step##1%
@@ -267,7 +280,7 @@
\global\t_spac_paragraphs_intro_first\emptytoks
\global\t_spac_paragraphs_intro_next \emptytoks
\global\t_spac_paragraphs_intro_each \emptytoks
- \glet\spac_paragraphs_flush_intro\relax}
+ \glettonothing\spac_paragraphs_flush_intro}
\defcsname\??paragraphintro\v!first\endcsname#1%
{\global\settrue\c_spac_paragraphs_intro_first
@@ -362,7 +375,7 @@
\the\t_spac_paragraphs_intro_next
\the\t_spac_paragraphs_intro_each
\else
- \glet\spac_paragraphs_flush_intro\relax
+ \glettonothing\spac_paragraphs_flush_intro
\the\t_spac_paragraphs_intro_next
\fi}}
@@ -375,22 +388,22 @@
%D This macro collects data that will be flushed at the next paragraph. By using
%D this macro you can avoid interfering nodes (writes, etc).
-\aliased\let\flushpostponednodedata\relax % hook into everypar
+\lettonothing\flushpostponednodedata % hook into everypar
-\newbox \b_spac_postponed_data
-%newcount\c_spac_postponed_data
+\newbox \b_spac_postponed_data
+%newinteger\c_spac_postponed_data
% \installcorenamespace {postponednodesstack}
%
% \initializeboxstack\??postponednodesstack
%
% \protected\def\pushpostponednodedata
-% {\global\advance\c_spac_postponed_data\plusone
+% {\global\advanceby\c_spac_postponed_data\plusone
% \savebox\??postponednodesstack{\the\c_spac_postponed_data}{\box\b_spac_postponed_data}}
%
% \protected\def\poppostponednodedata
% {\global\setbox\b_spac_postponed_data\hbox{\foundbox\??postponednodesstack{\the\c_spac_postponed_data}}%
-% \global\advance\c_spac_postponed_data\minusone
+% \global\advanceby\c_spac_postponed_data\minusone
% \ifvoid\b_spac_postponed_data\else
% \enforced\glet\flushpostponednodedata\spac_postponed_data_flush
% \fi}
@@ -435,7 +448,7 @@
{\unhbox\b_spac_postponed_data
\scratchdimen\wd\nextbox
\unhbox\nextbox
- \ifcase\scratchdimen\else\kern-\b_spac_postponed_data\fi}%
+ \ifcase\scratchdimen\else\kern-\scratchdimen\fi}%
\endgroup}
\def\spac_postponed_data_flush
@@ -443,7 +456,7 @@
\ifvoid\b_spac_postponed_data\else
\hpack{\smashedbox\b_spac_postponed_data}% \box\b_spac_postponed_data
\fi
- \enforced\glet\flushpostponednodedata\relax
+ \enforced\glettonothing\flushpostponednodedata
}%\fi}
\permanent\protected\def\doflushatpar % might be renamed
diff --git a/Master/texmf-dist/tex/context/base/mkxl/spac-prf.lmt b/Master/texmf-dist/tex/context/base/mkxl/spac-prf.lmt
index 2223c77302d..d8f5169f191 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/spac-prf.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/spac-prf.lmt
@@ -1,4 +1,4 @@
- if not modules then modules = { } end modules ['spac-prf'] = {
+if not modules then modules = { } end modules ['spac-prf'] = {
version = 1.001,
comment = "companion to spac-prf.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
@@ -16,7 +16,6 @@ local formatters = string.formatters
local nodecodes = nodes.nodecodes
local gluecodes = nodes.gluecodes
-local listcodes = nodes.listcodes
local glyph_code = nodecodes.glyph
local disc_code = nodecodes.disc
@@ -34,10 +33,17 @@ local leaders_code = gluecodes.leaders
local lineskip_code = gluecodes.lineskip
local baselineskip_code = gluecodes.baselineskip
-local linelist_code = listcodes.line
+local strutrule_code = nodes.rulecodes.strut
+local linelist_code = nodes.listcodes.line
local texlists = tex.lists
local settexattribute = tex.setattribute
+local texgetdimen = tex.getdimen
+
+local d_strutht = tex.isdimen("strutht")
+local d_strutdp = tex.isdimen("strutdp")
+
+local newindex = lua.newindex
local nuts = nodes.nuts
local tonut = nodes.tonut
@@ -46,6 +52,7 @@ local tonode = nuts.tonode
local getreplace = nuts.getreplace
local getattr = nuts.getattr
local getid = nuts.getid
+local getboth = nuts.getboth
local getnext = nuts.getnext
local getprev = nuts.getprev
local getsubtype = nuts.getsubtype
@@ -59,6 +66,14 @@ local getwidth = nuts.getwidth
local getheight = nuts.getheight
local getdepth = nuts.getdepth
local getboxglue = nuts.getboxglue
+local effectiveglue = nuts.effectiveglue
+local findattribute = nuts.findattribute
+local getspeciallist = nuts.getspeciallist
+
+local getlistdimensions = nuts.getlistdimensions
+
+local nextnode = nuts.traversers.node
+local nextglue = nuts.traversers.glue
local setlink = nuts.setlink
local setlist = nuts.setlist
@@ -76,6 +91,8 @@ local theprop = nuts.theprop
local floor = math.floor
local ceiling = math.ceil
+local min = math.min
+local max = math.max
local new_rule = nuts.pool.rule
local new_glue = nuts.pool.glue
@@ -119,7 +136,7 @@ local function getprofile(line,step)
return
end
- local glue_set, glue_order, glue_sign = getboxglue(line)
+-- local glue_set, glue_order, glue_sign = getboxglue(line)
local heights = { }
local depths = { }
@@ -140,71 +157,24 @@ local function getprofile(line,step)
-- remember p
- local function progress()
- position = width
- width = position + wd
- p = floor((position - margin)/step + 0.5)
- w = floor((width + margin)/step - 0.5)
- if p < 0 then
- p = 0
- end
- if w < 0 then
- w = 0
- end
- if p > w then
- w, p = p, w
- end
- if w > max then
- for i=max+1,w+1 do
- heights[i] = 0
- depths [i] = 0
- end
- max = w
- end
- for i=p,w do
- if ht > heights[i] then
- heights[i] = ht
- end
- if dp > depths[i] then
- depths[i] = dp
- end
- end
- end
-
local function process(current) -- called nested in disc replace
- while current do
- local id = getid(current)
+ for current, id, subtype in nextnode, current do
if id == glyph_code then
wd, ht, dp = getwhd(current)
- progress()
elseif id == kern_code then
wd = getkern(current)
ht = 0
dp = 0
- progress()
elseif id == disc_code then
local replace = getreplace(current)
if replace then
process(replace)
end
+ goto done
elseif id == glue_code then
- local width, stretch, shrink, stretch_order, shrink_order = getglue(current)
- if glue_sign == 1 then
- if stretch_order == glue_order then
- wd = width + stretch * glue_set
- else
- wd = width
- end
- elseif glue_sign == 2 then
- if shrink_order == glue_order then
- wd = width - shrink * glue_set
- else
- wd = width
- end
- else
- wd = width
- end
- if getsubtype(current) >= leaders_code then
+ wd = effectiveglue(current, line) -- geteffectivewhd
+ -- tricky
+ if subtype >= leaders_code then
local leader = getleader(current)
local w
w, ht, dp = getwhd(leader) -- can become getwhd(current) after 1.003
@@ -212,12 +182,11 @@ local function getprofile(line,step)
ht = 0
dp = 0
end
- progress()
elseif id == hlist_code then
+ -- maybe: offsets
-- we could do a nested check .. but then we need to push / pop glue
local shift = getshift(current)
local w, h, d = getwhd(current)
- -- if getattr(current,a_specialcontent) then
if getprop(current,"specialcontent") then
-- like a margin note, maybe check for wd
wd = w
@@ -228,29 +197,49 @@ local function getprofile(line,step)
ht = h - shift
dp = d + shift
end
- progress()
elseif id == vlist_code or id == unset_code then
local shift = getshift(current) -- todo
- wd, ht, dp = getwhd(current)
- progress()
+ wd, ht, dp = getwhd(current) -- todo: use combined getter
elseif id == rule_code then
wd, ht, dp = getwhd(current)
- progress()
elseif id == math_code then
+ -- todo get glue
wd = getkern(current) + getwidth(current) -- surround
ht = 0
dp = 0
- progress()
- elseif id == marginkern_code then
- -- not in lmtx
- wd = getwidth(current)
- ht = 0
- dp = 0
- progress()
else
--- print(nodecodes[id])
+ goto done
+ end
+ -- progress
+ position = width
+ width = position + wd
+ p = floor((position - margin)/step + 0.5)
+ w = floor((width + margin)/step - 0.5)
+ if p < 0 then
+ p = 0
+ end
+ if w < 0 then
+ w = 0
+ end
+ if p > w then
+ w, p = p, w
end
- current = getnext(current)
+ if w > max then
+ for i=max+1,w+1 do
+ heights[i] = 0
+ depths [i] = 0
+ end
+ max = w
+ end
+ for i=p,w do
+ if ht > heights[i] then
+ heights[i] = ht
+ end
+ if dp > depths[i] then
+ depths[i] = dp
+ end
+ end
+ ::done::
end
end
@@ -269,9 +258,9 @@ end
profiling.get = getprofile
local function getpagelist()
- local pagehead = texlists.page_head
+ local pagehead = texlists.pagehead
if pagehead then
- pagehead = tonut(texlists.page_head)
+ pagehead = tonut(texlists.pagehead)
pagetail = find_node_tail(pagehead)
else
pagetail = nil
@@ -362,6 +351,7 @@ local function addprofile(node,profile,step)
return
end
local what = nil
+ -- beware: basically end of line so we actually need to put it elsewhere
if lastht == 0 and lastdp == 0 then
what = new_kern(lastwd)
else
@@ -470,12 +460,17 @@ end
-- lineskip | lineskiplimit
local function inject(top,bot,amount) -- todo: look at penalties
- local glue = new_glue(amount)
- --
- setattr(glue,a_profilemethod,0)
- setattr(glue,a_visual,getattr(top,a_visual))
- --
- setlink(top,glue,bot)
+ if amount ~= 0 then
+ local glue = new_glue(amount)
+ --
+ setattr(glue,a_profilemethod,0)
+ -- setattr(glue,a_visual,getattr(top,a_visual))
+ setattr(glue,a_visual,nodes.visualizers.modes.glue)
+ --
+ setlink(top,glue,bot)
+ --
+ report("injected correction %p at page",amount,tex.getcount("realpageno"))
+ end
end
methods[v_none] = function()
@@ -487,8 +482,8 @@ methods[v_strict] = function(top,bot,t_profile,b_profile,specification)
local top = tonut(top)
local bot = tonut(bot)
- local strutht = specification.height or texdimen.strutht
- local strutdp = specification.depth or texdimen.strutdp
+ local strutht = specification.height or texgetdimen(d_strutht)
+ local strutdp = specification.depth or texgetdimen(d_strutdp)
local lineheight = strutht + strutdp
local depth = getdepth(top)
@@ -523,8 +518,8 @@ methods[v_fixed] = function(top,bot,t_profile,b_profile,specification)
local top = tonut(top)
local bot = tonut(bot)
- local strutht = specification.height or texdimen.strutht
- local strutdp = specification.depth or texdimen.strutdp
+ local strutht = specification.height or texgetdimen(d_strutht)
+ local strutdp = specification.depth or texgetdimen(d_strutdp)
local lineheight = strutht + strutdp
local depth = getdepth(top)
@@ -545,7 +540,7 @@ methods[v_fixed] = function(top,bot,t_profile,b_profile,specification)
return true
end
- local delta = getdelta(t_profile,b_profile)
+ local delta = getdelta(t_profile,b_profile)
local dp = strutdp
while depth > lineheight - strutdp do
@@ -642,8 +637,6 @@ end
local function profilelist(line,mvl)
- local current = line
-
local top = nil
local bot = nil
@@ -666,11 +659,8 @@ local function profilelist(line,mvl)
pagehead, pagetail = getpagelist()
if pagetail then
- local current = pagetail
- while current do
- local id = getid(current)
+ for current, id, subtype in nextnode, pagetail do
if id == hlist_code then
- local subtype = getsubtype(current)
if subtype == linelist_code then
t_profile = hasprofile(current)
if t_profile then
@@ -690,13 +680,12 @@ local function profilelist(line,mvl)
else
break
end
- current = getnext(current)
end
end
end
- while current do
+ for current, id, subtype in nextnode, line do
local attr = getattr(current,a_profilemethod)
@@ -709,10 +698,7 @@ local function profilelist(line,mvl)
lastattr = attr
end
- local id = getid(current)
-
if id == hlist_code then -- check subtype
- local subtype = getsubtype(current)
if subtype == linelist_code then
if top == current then
-- skip
@@ -751,7 +737,6 @@ local function profilelist(line,mvl)
end
elseif id == glue_code then
if top then
- local subtype = getsubtype(current)
-- if subtype == lineskip_code or subtype == baselineskip_code then
local wd = getwidth(current)
if wd > 0 then
@@ -781,7 +766,6 @@ local function profilelist(line,mvl)
top = nil
bot = nil
end
- current = getnext(current)
end
if top then
t_profile = setprofile(top)
@@ -795,6 +779,8 @@ profiling.list = profilelist
local enabled = false
+-- todo: use attribute storage
+
function profiling.set(specification)
if not enabled then
enableaction("mvlbuilders", "builders.profiling.pagehandler")
@@ -818,10 +804,8 @@ function profiling.profilebox(specification)
local action = method and methods[method] or methods[v_strict]
local lastglue = nil
local distance = 0
- while current do
- local id = getid(current)
+ for current, id, subtype in nextnode, current do
if id == hlist_code then
- local subtype = getsubtype(current)
if subtype == linelist_code then
if top then
bot = current
@@ -855,7 +839,6 @@ function profiling.profilebox(specification)
bot = nil
end
elseif id == glue_code then
- local subtype = getsubtype(current)
if subtype == lineskip_code or subtype == baselineskip_code then
if top then
local wd = getwidth(current)
@@ -882,7 +865,6 @@ function profiling.profilebox(specification)
top = nil
bot = nil
end
- current = getnext(current)
end
if top then
@@ -947,3 +929,387 @@ interfaces.implement {
}
}
}
+
+-- The following is an experiment that I picked up after demoing this already old but never
+-- used feature and in the process it got applied to document of hundreds of pages. Actually
+-- performance is quite okay but this mechanism is not really meant for that scenario. We'll
+-- see where this ends. We could (an d might) integrate it in the above but the next is more
+-- lightweight while the previous was basically some exploration with lots of options.
+
+do
+
+ -- we could share the two arrays if needed
+
+ local a_lineprofile = attributes.private("lineprofile")
+
+ local registervalue = attributes.registervalue
+ local getvalue = attributes.getvalue
+ local texsetattribute = tex.setattribute
+
+ local function getdepthprofile(line,step,margin,max,list)
+
+ local width = 0
+ local position = 0
+ local profile = newindex(max+2,0)
+ local wd = 0
+ local ht = 0
+ local dp = 0
+
+ profile[0] = 0
+
+ local function process(current) -- called nested in disc replace
+ for current, id, subtype in nextnode, current do
+ if id == glyph_code then
+ wd, ht, dp = getwhd(current)
+ elseif id == kern_code then
+ wd = getkern(current)
+ dp = 0
+ elseif id == disc_code then
+ local replace = getreplace(current)
+ if replace then
+ process(replace)
+ end
+ goto done
+ elseif id == glue_code then
+ wd = effectiveglue(current, line) -- geteffectivewhd
+ -- tricky
+ if subtype >= leaders_code then
+ local leader = getleader(current)
+ local w
+ w, ht, dp = getwhd(leader)
+ else
+ dp = 0
+ end
+ elseif id == hlist_code then
+ local w, h, d, shift = getlistdimensions(current)
+ if getprop(current,"specialcontent") then
+ -- like a margin note, maybe check for wd
+ wd = w
+ dp = 0
+ else
+ wd = w
+ dp = d + shift
+ end
+ elseif id == vlist_code then
+ local shift
+ wd, ht, dp, shift = getlistdimensions(current)
+ dp = dp + shift
+ elseif id == rule_code then
+ if subtype == strutrule_code then
+ dp = 0
+ else
+ wd, ht, dp = getwhd(current)
+ end
+ elseif id == math_code then
+ -- todo get glue
+ wd = getkern(current) + getwidth(current) -- surround
+ dp = 0
+ else
+ goto done
+ end
+ -- progress
+ position = width
+ width = position + wd
+ p = floor((position - margin)/step + 0.5)
+ w = floor((width + margin)/step - 0.5)
+ if p < 0 then
+ p = 0
+ end
+ if w < 0 then
+ w = 0
+ end
+ if p > w then
+ w, p = p, w
+ end
+ if w > max then
+ for i=max+1,w+1 do
+ profile[i] = 0
+ end
+ max = w
+ end
+ for i=p,w do
+ if dp > profile[i] then
+ profile[i] = dp
+ end
+ end
+ ::done::
+ end
+ end
+
+ process(list)
+
+ return profile
+
+ end
+
+ local function getheightprofile(line,step,margin,max,list)
+
+ local width = 0
+ local position = 0
+ local profile = newindex(max+2,0)
+ local wd = 0
+ local ht = 0
+ local dp = 0
+
+ profile[0] = 0
+
+ local function process(current) -- called nested in disc replace
+ for current, id, subtype in nextnode, current do
+ if id == glyph_code then
+ wd, ht, dp = getwhd(current)
+ elseif id == kern_code then
+ wd = getkern(current)
+ ht = 0
+ elseif id == disc_code then
+ local replace = getreplace(current)
+ if replace then
+ process(replace)
+ end
+ goto done
+ elseif id == glue_code then
+ wd = effectiveglue(current, line) -- geteffectivewhd
+ -- tricky
+ if subtype >= leaders_code then
+ local leader = getleader(current)
+ local w
+ w, ht, dp = getwhd(leader)
+ else
+ ht = 0
+ end
+ elseif id == hlist_code then
+ local w, h, d, shift = getlistdimensions(current)
+ if getprop(current,"specialcontent") then
+ -- like a margin note, maybe check for wd
+ wd = w
+ ht = 0
+ else
+ wd = w
+ ht = h - shift
+ end
+ elseif id == vlist_code then
+ local shift
+ wd, ht, dp, shift = getlistdimensions(current)
+ ht = ht - shift
+ elseif id == rule_code then
+ if subtype == strutrule_code then
+ ht = 0
+ else
+ wd, ht, dp = getwhd(current)
+ end
+ elseif id == math_code then
+ -- todo get glue
+ wd = getkern(current) + getwidth(current) -- surround
+ ht = 0
+ else
+ goto done
+ end
+ -- progress
+ position = width
+ width = position + wd
+ p = floor((position - margin)/step + 0.5)
+ w = floor((width + margin)/step - 0.5)
+ if p < 0 then
+ p = 0
+ end
+ if w < 0 then
+ w = 0
+ end
+ if p > w then
+ w, p = p, w
+ end
+ if w > max then
+ for i=max+1,w+1 do
+ profile[i] = 0
+ end
+ max = w
+ end
+ for i=p,w do
+ if ht > profile[i] then
+ profile[i] = ht
+ end
+ end
+ ::done::
+ end
+ end
+
+ process(list)
+
+ return profile
+
+ end
+
+ local show_lineprofile = false
+ local show_linedetails = false
+
+ trackers.register("profiling.lines.show", function(v)
+ local visualizers = nodes.visualizers
+ glue_mode = visualizers.modes.glue
+ line_mode = visualizers.modes.line
+ show_lineprofile = v
+ visualizers.enable()
+ end)
+
+ trackers.register("profiling.lines.details", function(v)
+ show_linedetail = v
+ end)
+
+ local defaultstep = 65536 * 2 -- 2pt
+ local defaultmethod = "a"
+ local defaultfactor = 1
+
+ local v_yes = interfaces.variables.yes
+
+ -- I played with different methods (like only get depths and then on the fly check with heights
+ -- but there is no gain and it is also fuzzy. So for now we just do the whole scan.
+
+ function profilelines(list,prev)
+
+ if not list then
+ return
+ end
+
+ local _, start = findattribute(list,a_lineprofile)
+ if not start then
+ return
+ end
+
+ -- no height or depth ... skip
+ for current, subtype in nextglue, start do
+ if subtype == lineskip_code and not getprop(current,"profiled") then
+ local detail = getattr(current,a_lineprofile)
+ if detail then
+ local amount = getwidth(current)
+ if amount > 0 then
+ detail = getvalue(a_lineprofile,detail) or { }
+ --
+ local top, bot = getboth(current)
+ setprop(current,"profiled",amount) -- original amount, maybe move up
+ if not top and prev and detail.paragraph == v_yes then
+ top = prev
+ end
+ if top then
+ if getid(top) == penalty_code then
+ top = getprev(top)
+ end
+ if top and bot then
+ if getid(top) == hlist_code and getsubtype(top) == linelist_code then
+ if getid(bot) == hlist_code and getsubtype(bot) == linelist_code then
+ local toplist = getlist(top)
+ local botlist = getlist(bot)
+ if toplist and botlist then
+ --
+ local step = detail.step or defaultstep
+ local factor = tonumber(detail.factor) or defaultfactor
+ local method = detail.method or defaultmethod
+ local margin = step / 4
+ --
+ if factor > 1 then
+ factor = 1
+ elseif factor <= 0 then
+ factor = 0 -- we could actually go the other way
+ end
+ --
+ local natural = getdepth(top) + getheight(bot)
+ local added = factor * amount
+ local possible = natural - added
+ local overshoot = 0
+ local topmax = ceiling(getwidth(top)/step) + 1
+ local botmax = ceiling(getwidth(bot)/step) + 1
+ -- if method == "a" then
+ local depths = getdepthprofile (top,step,margin,topmax,toplist)
+ local heights = getheightprofile(bot,step,margin,botmax,botlist)
+ local steps = min(#depths,#heights)
+ for i=1,steps do
+ local o = heights[i] + depths[i] - possible
+ if o > overshoot then
+ -- we can quit when >= added
+ overshoot = o
+ -- if overshoot > added then
+ -- break
+ -- end
+ end
+ end
+ -- end
+ -- if overshoot < added / 2 then
+ -- overshoot = added / 2
+ -- end
+ if overshoot ~= amount then -- shouldn't we round
+ setwidth(current,overshoot)
+ if show_lineprofile then
+ setattr(current,a_visual,glue_mode)
+ setattr(bot,a_visual,line_mode)
+ setattr(top,a_visual,line_mode)
+ end
+ if show_linedetail then
+ report("lineskip changed from %p to %p on page %i",amount,overshoot,tex.getcount("realpageno"))
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ prev = nil
+ end
+ end
+
+ builders.profiling.profilelines = profilelines
+
+ function profiling.boxlinehandler(head)
+ if head then
+ profilelines(head)
+ end
+ return head
+ end
+
+ function profiling.pagelinehandler(head,...)
+ if head then
+ local h, t = getspeciallist("pagehead")
+ profilelines(head,t)
+ end
+ return head
+ end
+
+ -- actually we need a proper callback for this kind of things ...
+
+ function profiling.setlines(specification)
+ if not enabled then
+ enableaction("mvlbuilders", "builders.profiling.pagelinehandler")
+ enableaction("vboxbuilders", "builders.profiling.boxlinehandler")
+ enabled = true
+ end
+ texsetattribute(a_lineprofile,registervalue(a_lineprofile,specification))
+ end
+
+ interfaces.implement {
+ name = "setlineprofile",
+ actions = profiling.setlines,
+ arguments = {
+ {
+ { "name" },
+ { "method" },
+ { "step", "dimension" },
+ { "factor" },
+ { "paragraph" },
+ }
+ }
+ }
+
+ interfaces.implement {
+ name = "lineprofilebox",
+ public = true,
+ protected = true,
+ actions = function(box)
+ local okay = nuts.getbox(box)
+ local list = getlist(okay)
+ if list then
+ profiling.boxlinehandler(list)
+ end
+ end,
+ arguments = "integer"
+ }
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/spac-prf.mklx b/Master/texmf-dist/tex/context/base/mkxl/spac-prf.mklx
index 6b4a966f2af..06038d8678c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/spac-prf.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/spac-prf.mklx
@@ -52,21 +52,52 @@
\c!distance=\zeropoint,
\c!factor=\plusone]
-\defineprofile[halffixed] [\v!fixed][\c!factor=\plustwo]
-\defineprofile[quarterfixed][\v!fixed][\c!factor=\plusfour]
-\defineprofile[eightsfixed] [\v!fixed][\c!factor=\pluseight]
+\appendtoks
+ \ifcstok{\profileparameter\c!define}\v!yes
+ \frozen\protected\edefcsname\e!start\currentprofile\endcsname{\spac_profile_start{\currentprofile}}%
+ \frozen\protected\defcsname \e!stop \currentprofile\endcsname{\spac_profile_stop}%
+ \fi
+\to \everydefineprofile
+
+\def\spac_profile_set
+ {\clf_setprofile
+ name {\currentprofile}%
+ height \dimexpr\profileparameter\c!height\relax
+ depth \dimexpr\profileparameter\c!depth\relax
+ distance \dimexpr\profileparameter\c!distance\relax
+ factor \numexpr\profileparameter\c!factor\relax
+ lines \numexpr\profileparameter\c!lines\relax
+ method {\profileparameter\c!method}%
+ \relax}
+
+\tolerant\protected\def\spac_profile_start#profile#spacer[#settings]%
+ {\begingroup
+ \ifparameter#settings\or
+ \edef\currentprofile{#profile}%
+ \setupcurrentprofile[#settings]%
+ \orelse\ifhastok={#profile}%
+ \let\currentprofile\v!none
+ \setupcurrentprofile[#profile]%
+ \else
+ \edef\currentprofile{#profile}%
+ \fi
+ \spac_profile_set
+ \profileparameter\c!before}
+
+\protected\def\spac_profile_stop
+ {\par % otherwise not applied
+ \profileparameter\c!after
+ \endgroup}
+
+\permanent\protected\def\startprofile[#profile]%
+ {\spac_profile_start{#profile}}
+
+\permanent\protected\def\stopprofile
+ {\spac_profile_stop}
\permanent\protected\def\setprofile[#profile]%
{\edef\currentprofile{#profile}%
- \clf_setprofile
- name {\currentprofile}%
- height \dimexpr\profileparameter\c!height\relax
- depth \dimexpr\profileparameter\c!depth\relax
- distance \dimexpr\profileparameter\c!distance\relax
- factor \numexpr\profileparameter\c!factor\relax
- lines \numexpr\profileparameter\c!lines\relax
- method {\profileparameter\c!method}%
- \relax}
+ \spac_profile_set}
\permanent\protected\def\resetprofile
{\c_attr_profilemethod\attributeunsetvalue}
@@ -110,4 +141,46 @@
\relax
\endgroup}
+\defineprofile[halffixed] [\v!fixed][\c!factor=\plustwo]
+\defineprofile[quarterfixed][\v!fixed][\c!factor=\plusfour]
+\defineprofile[eightsfixed] [\v!fixed][\c!factor=\pluseight]
+
+% Finally some follow up on this experiment:
+
+\definesystemattribute[lineprofile] [public]
+
+\installcorenamespace {lineprofile}
+
+\installcommandhandler \??lineprofile {lineprofile} \??lineprofile
+
+\setuplineprofile
+ [\c!method=\v!a,
+ \c!step=.5\emwidth, % maybe 2pt
+ \c!paragraph=\v!no,
+ \c!factor=.125] % maybe 0.250
+
+\def\spac_line_profile_set
+ {\clf_setlineprofile
+ name {\currentlineprofile}%
+ step \dimexpr\lineprofileparameter\c!step\relax
+ factor {\lineprofileparameter\c!factor}%
+ method {\lineprofileparameter\c!method}%
+ paragraph {\lineprofileparameter\c!paragraph}%
+ \relax}
+
+\permanent\tolerant\protected\def\setlineprofile[#profile]%
+ {\edef\currentlineprofile{#profile}%
+ \spac_line_profile_set}
+
+\permanent\protected\def\resetlineprofile
+ {\c_attr_lineprofile\attributeunsetvalue}
+
+\permanent\protected\def\setmainlineprofile
+ {\lettonothing\currentlineprofile
+ \spac_line_profile_set}
+
+\appendtoks
+ \c_attr_lineprofile\attributeunsetvalue % or in general resetter
+\to \everyforgetall
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/spac-ver.lmt b/Master/texmf-dist/tex/context/base/mkxl/spac-ver.lmt
index 2d4aace2437..06032bcce9d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/spac-ver.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/spac-ver.lmt
@@ -33,7 +33,6 @@ if not modules then modules = { } end modules ['spac-ver'] = {
local next, type, tonumber = next, type, tonumber
local gmatch, concat = string.gmatch, table.concat
-local ceil, floor, abs = math.ceil, math.floor, math.abs
local lpegmatch = lpeg.match
local unpack = unpack or table.unpack
local allocate = utilities.storage.allocate
@@ -70,19 +69,12 @@ local v_split = variables.split
local v_min = variables.min
local v_max = variables.max
local v_none = variables.none
-local v_line = variables.line
-local v_noheight = variables.noheight
-local v_nodepth = variables.nodepth
-local v_line = variables.line
-local v_halfline = variables.halfline
-local v_line_m = "-" .. v_line
-local v_halfline_m = "-" .. v_halfline
local v_first = variables.first
local v_last = variables.last
local v_top = variables.top
local v_bottom = variables.bottom
-local v_minheight = variables.minheight
local v_maxheight = variables.maxheight
+local v_minheight = variables.minheight
local v_mindepth = variables.mindepth
local v_maxdepth = variables.maxdepth
local v_offset = variables.offset
@@ -98,13 +90,12 @@ local v_blines = variables.blines
local trace_vbox_vspacing = false trackers.register("vspacing.vbox", function(v) trace_vbox_vspacing = v end)
local trace_page_vspacing = false trackers.register("vspacing.page", function(v) trace_page_vspacing = v end)
-local trace_page_builder = false trackers.register("builders.page", function(v) trace_page_builder = v end)
local trace_collect_vspacing = false trackers.register("vspacing.collect", function(v) trace_collect_vspacing = v end)
local trace_vspacing = false trackers.register("vspacing.spacing", function(v) trace_vspacing = v end)
local trace_vsnapping = false trackers.register("vspacing.snapping", function(v) trace_vsnapping = v end)
local trace_specials = false trackers.register("vspacing.specials", function(v) trace_specials = v end)
-local remove_math_skips = true directives.register("vspacing.removemathskips", function(v) remnove_math_skips = v end)
+local remove_math_skips = true directives.register("vspacing.removemathskips", function(v) remnove_math_skips = v end)
local report_vspacing = logs.reporter("vspacing","spacing")
local report_collapser = logs.reporter("vspacing","collapsing")
@@ -117,6 +108,16 @@ local a_skiporder = attributes.private('skiporder')
local a_snapmethod = attributes.private('snapmethod')
local a_snapvbox = attributes.private('snapvbox')
+local d_bodyfontstrutheight = tex.isdimen("bodyfontstrutheight")
+local d_bodyfontstrutdepth = tex.isdimen("bodyfontstrutdepth")
+local d_globalbodyfontstrutheight = tex.isdimen("globalbodyfontstrutheight")
+local d_globalbodyfontstrutdepth = tex.isdimen("globalbodyfontstrutdepth")
+----- d_strutht = tex.isdimen("strutht")
+local d_strutdp = tex.isdimen("strutdp")
+local d_spac_overlay = tex.isdimen("d_spac_overlay")
+
+local c_spac_vspacing_ignore_parskip = tex.iscount("c_spac_vspacing_ignore_parskip")
+
local nuts = nodes.nuts
local tonut = nuts.tonut
@@ -127,8 +128,9 @@ local getid = nuts.getid
local getlist = nuts.getlist
local setlist = nuts.setlist
local getattr = nuts.getattr
-local getattrs = nuts.getattrs
local setattr = nuts.setattr
+local setattrs = nuts.setattrs
+local getattrs = nuts.getattrs
local getsubtype = nuts.getsubtype
local getbox = nuts.getbox
local getwhd = nuts.getwhd
@@ -147,14 +149,16 @@ local getheight = nuts.getheight
local setdepth = nuts.setdepth
local getdepth = nuts.getdepth
local setnext = nuts.setnext
+local setprev = nuts.setprev
local find_node_tail = nuts.tail
-local flush_node = nuts.flush_node
+local flushnode = nuts.flushnode
local remove_node = nuts.remove
local count_nodes = nuts.countall
local hpack_node = nuts.hpack
local vpack_node = nuts.vpack
-local start_of_par = nuts.start_of_par
+
+local startofpar = nuts.startofpar
local write_node = nuts.write
@@ -163,8 +167,6 @@ local nexthlist = nuts.traversers.hlist
local nodereference = nuts.reference
-local theprop = nuts.theprop
-
local listtoutf = nodes.listtoutf
local nodeidstostring = nodes.idstostring
@@ -187,6 +189,7 @@ local hlist_code = nodecodes.hlist
local vlist_code = nodecodes.vlist
local rule_code = nodecodes.rule
local par_code = nodecodes.par
+local boundary_code = nodecodes.boundary
local userskip_code = gluecodes.userskip
local lineskip_code = gluecodes.lineskip
@@ -197,6 +200,8 @@ local splittopskip_code = gluecodes.splittopskip
local linelist_code = nodes.listcodes.line
+local setvisual = function(...) setvisual = nuts.setvisual return setvisual(...) end
+
local properties = nodes.properties.data
local vspacing = builders.vspacing or { }
@@ -289,7 +294,7 @@ end
local function validvbox(parentid,list)
if parentid == hlist_code then
local id = getid(list)
- if id == par_code and start_of_par(list) then
+ if id == par_code and startofpar(list) then
list = getnext(list)
if not next then
return nil
@@ -323,7 +328,7 @@ local function already_done(parentid,list,a_snapmethod) -- todo: done when only
-- problem: any snapped vbox ends up in a line
if list and parentid == hlist_code then
local id = getid(list)
- if id == par_code and start_of_par(list) then
+ if id == par_code and startofpar(list) then
list = getnext(list)
if not list then
return false
@@ -351,354 +356,368 @@ local function already_done(parentid,list,a_snapmethod) -- todo: done when only
return false
end
--- quite tricky: ceil(-something) => -0
-
-local function ceiled(n)
- if n < 0 or n < 0.01 then
- return 0
- else
- return ceil(n)
- end
-end
+-- check variables.none etc
-local function floored(n)
- if n < 0 or n < 0.01 then
- return 0
- else
- return floor(n)
- end
-end
+local snap_hlist do
--- check variables.none etc
+ local v_noheight = variables.noheight
+ local v_nodepth = variables.nodepth
+ local v_line = variables.line
+ local v_halfline = variables.halfline
+ local v_line_m = "-" .. v_line
+ local v_halfline_m = "-" .. v_halfline
-local function fixedprofile(current)
- local profiling = builders.profiling
- return profiling and profiling.fixedprofile(current)
-end
+ local floor = math.floor
+ local ceil = math.ceil
-local function snap_hlist(where,current,method,height,depth) -- method[v_strut] is default
- if fixedprofile(current) then
- return
- end
- local list = getlist(current)
- local t = trace_vsnapping and { }
- if t then
- t[#t+1] = formatters["list content: %s"](listtoutf(list))
- t[#t+1] = formatters["snap method: %s"](method.name) -- not interfaced
- t[#t+1] = formatters["specification: %s"](method.specification) -- not interfaced
+ local function fixedprofile(current)
+ local profiling = builders.profiling
+ return profiling and profiling.fixedprofile(current)
end
- local snapht, snapdp
- if method[v_local] then
- -- snapping is done immediately here
- snapht = texgetdimen("bodyfontstrutheight")
- snapdp = texgetdimen("bodyfontstrutdepth")
- if t then
- t[#t+1] = formatters["local: snapht %p snapdp %p"](snapht,snapdp)
- end
- elseif method[v_global] then
- snapht = texgetdimen("globalbodyfontstrutheight")
- snapdp = texgetdimen("globalbodyfontstrutdepth")
- if t then
- t[#t+1] = formatters["global: snapht %p snapdp %p"](snapht,snapdp)
- end
- else
- -- maybe autolocal
- -- snapping might happen later in the otr
- snapht = texgetdimen("globalbodyfontstrutheight")
- snapdp = texgetdimen("globalbodyfontstrutdepth")
- local lsnapht = texgetdimen("bodyfontstrutheight")
- local lsnapdp = texgetdimen("bodyfontstrutdepth")
- if snapht ~= lsnapht and snapdp ~= lsnapdp then
- snapht, snapdp = lsnapht, lsnapdp
- end
- if t then
- t[#t+1] = formatters["auto: snapht %p snapdp %p"](snapht,snapdp)
+
+ -- quite tricky: ceil(-something) => -0
+
+ local function ceiled(n)
+ if n < 0 or n < 0.01 then
+ return 0
+ else
+ return ceil(n)
end
end
- local wd, ht, dp = getwhd(current)
-
- local h = (method[v_noheight] and 0) or height or ht
- local d = (method[v_nodepth] and 0) or depth or dp
- local hr = method[v_hfraction] or 1
- local dr = method[v_dfraction] or 1
- local br = method[v_bfraction] or 0
- local ch = h
- local cd = d
- local tlines = method[v_tlines] or 1
- local blines = method[v_blines] or 1
- local done = false
- local plusht = snapht
- local plusdp = snapdp
- local snaphtdp = snapht + snapdp
- local extra = 0
-
- if t then
- t[#t+1] = formatters["hlist: wd %p ht %p (used %p) dp %p (used %p)"](wd,ht,h,dp,d)
- t[#t+1] = formatters["fractions: hfraction %s dfraction %s bfraction %s tlines %s blines %s"](hr,dr,br,tlines,blines)
+ local function floored(n)
+ if n < 0 or n < 0.01 then
+ return 0
+ else
+ return floor(n)
+ end
end
- if method[v_box] then
- local br = 1 - br
- if br < 0 then
- br = 0
- elseif br > 1 then
- br = 1
- end
- local n = ceiled((h+d-br*snapht-br*snapdp)/snaphtdp)
- local x = n * snaphtdp - h - d
- plusht = h + x / 2
- plusdp = d + x / 2
+ snap_hlist = function(where,current,method,height,depth) -- method[v_strut] is default
+ if fixedprofile(current) then
+ return
+ end
+ local list = getlist(current)
+ local t = trace_vsnapping and { }
if t then
- t[#t+1] = formatters["%s: plusht %p plusdp %p"](v_box,plusht,plusdp)
+ t[#t+1] = formatters["list content: %s"](listtoutf(list))
+ t[#t+1] = formatters["snap method: %s"](method.name) -- not interfaced
+ t[#t+1] = formatters["specification: %s"](method.specification) -- not interfaced
+ end
+ local snapht, snapdp
+ if method[v_local] then
+ -- snapping is done immediately here
+ snapht = texgetdimen(d_bodyfontstrutheight)
+ snapdp = texgetdimen(d_bodyfontstrutdepth)
+ if t then
+ t[#t+1] = formatters["local: snapht %p snapdp %p"](snapht,snapdp)
+ end
+ elseif method[v_global] then
+ snapht = texgetdimen(d_globalbodyfontstrutheight)
+ snapdp = texgetdimen(d_globalbodyfontstrutdepth)
+ if t then
+ t[#t+1] = formatters["global: snapht %p snapdp %p"](snapht,snapdp)
+ end
+ else
+ -- maybe autolocal
+ -- snapping might happen later in the otr
+ snapht = texgetdimen(d_globalbodyfontstrutheight)
+ snapdp = texgetdimen(d_globalbodyfontstrutdepth)
+ local lsnapht = texgetdimen(d_bodyfontstrutheight)
+ local lsnapdp = texgetdimen(d_bodyfontstrutdepth)
+ if snapht ~= lsnapht and snapdp ~= lsnapdp then
+ snapht, snapdp = lsnapht, lsnapdp
+ end
+ if t then
+ t[#t+1] = formatters["auto: snapht %p snapdp %p"](snapht,snapdp)
+ end
end
- elseif method[v_max] then
- local n = ceiled((h+d)/snaphtdp)
- local x = n * snaphtdp - h - d
- plusht = h + x / 2
- plusdp = d + x / 2
+
+ local wd, ht, dp = getwhd(current)
+
+ local h = (method[v_noheight] and 0) or height or ht
+ local d = (method[v_nodepth] and 0) or depth or dp
+ local hr = method[v_hfraction] or 1
+ local dr = method[v_dfraction] or 1
+ local br = method[v_bfraction] or 0
+ local ch = h
+ local cd = d
+ local tlines = method[v_tlines] or 1
+ local blines = method[v_blines] or 1
+ local done = false
+ local plusht = snapht
+ local plusdp = snapdp
+ local snaphtdp = snapht + snapdp
+ local extra = 0
+
if t then
- t[#t+1] = formatters["%s: plusht %p plusdp %p"](v_max,plusht,plusdp)
+ t[#t+1] = formatters["hlist: wd %p ht %p (used %p) dp %p (used %p)"](wd,ht,h,dp,d)
+ t[#t+1] = formatters["fractions: hfraction %s dfraction %s bfraction %s tlines %s blines %s"](hr,dr,br,tlines,blines)
end
- elseif method[v_min] then
- -- we catch a lone min
- if method.specification ~= v_min then
- local n = floored((h+d)/snaphtdp)
+
+ if method[v_box] then
+ local br = 1 - br
+ if br < 0 then
+ br = 0
+ elseif br > 1 then
+ br = 1
+ end
+ local n = ceiled((h+d-br*snapht-br*snapdp)/snaphtdp)
local x = n * snaphtdp - h - d
plusht = h + x / 2
plusdp = d + x / 2
- if plusht < 0 then
- plusht = 0
+ if t then
+ t[#t+1] = formatters["%s: plusht %p plusdp %p"](v_box,plusht,plusdp)
end
- if plusdp < 0 then
- plusdp = 0
+ elseif method[v_max] then
+ local n = ceiled((h+d)/snaphtdp)
+ local x = n * snaphtdp - h - d
+ plusht = h + x / 2
+ plusdp = d + x / 2
+ if t then
+ t[#t+1] = formatters["%s: plusht %p plusdp %p"](v_max,plusht,plusdp)
+ end
+ elseif method[v_min] then
+ -- we catch a lone min
+ if method.specification ~= v_min then
+ local n = floored((h+d)/snaphtdp)
+ local x = n * snaphtdp - h - d
+ plusht = h + x / 2
+ plusdp = d + x / 2
+ if plusht < 0 then
+ plusht = 0
+ end
+ if plusdp < 0 then
+ plusdp = 0
+ end
+ end
+ if t then
+ t[#t+1] = formatters["%s: plusht %p plusdp %p"](v_min,plusht,plusdp)
+ end
+ elseif method[v_none] then
+ plusht, plusdp = 0, 0
+ if t then
+ t[#t+1] = formatters["%s: plusht %p plusdp %p"](v_none,0,0)
end
end
- if t then
- t[#t+1] = formatters["%s: plusht %p plusdp %p"](v_min,plusht,plusdp)
- end
- elseif method[v_none] then
- plusht, plusdp = 0, 0
- if t then
- t[#t+1] = formatters["%s: plusht %p plusdp %p"](v_none,0,0)
- end
- end
- -- for now, we actually need to tag a box and then check at several points if something ended up
- -- at the top of a page
- if method[v_halfline] then -- extra halfline
- extra = snaphtdp/2
- plusht = plusht + extra
- plusdp = plusdp + extra
- if t then
- t[#t+1] = formatters["%s: plusht %p plusdp %p"](v_halfline,plusht,plusdp)
+ -- for now, we actually need to tag a box and then check at several points if something ended up
+ -- at the top of a page
+ if method[v_halfline] then -- extra halfline
+ extra = snaphtdp/2
+ plusht = plusht + extra
+ plusdp = plusdp + extra
+ if t then
+ t[#t+1] = formatters["%s: plusht %p plusdp %p"](v_halfline,plusht,plusdp)
+ end
end
- end
- if method[v_line] then -- extra line
- extra = snaphtdp
- plusht = plusht + extra
- plusdp = plusdp + extra
- if t then
- t[#t+1] = formatters["%s: plusht %p plusdp %p"](v_line,plusht,plusdp)
+ if method[v_line] then -- extra line
+ extra = snaphtdp
+ plusht = plusht + extra
+ plusdp = plusdp + extra
+ if t then
+ t[#t+1] = formatters["%s: plusht %p plusdp %p"](v_line,plusht,plusdp)
+ end
end
- end
- if method[v_halfline_m] then -- extra halfline
- extra = - snaphtdp/2
- plusht = plusht + extra
- plusdp = plusdp + extra
- if t then
- t[#t+1] = formatters["%s: plusht %p plusdp %p"](v_halfline_m,plusht,plusdp)
+ if method[v_halfline_m] then -- extra halfline
+ extra = - snaphtdp/2
+ plusht = plusht + extra
+ plusdp = plusdp + extra
+ if t then
+ t[#t+1] = formatters["%s: plusht %p plusdp %p"](v_halfline_m,plusht,plusdp)
+ end
end
- end
- if method[v_line_m] then -- extra line
- extra = - snaphtdp
- plusht = plusht + extra
- plusdp = plusdp + extra
- if t then
- t[#t+1] = formatters["%s: plusht %p plusdp %p"](v_line_m,plusht,plusdp)
+ if method[v_line_m] then -- extra line
+ extra = - snaphtdp
+ plusht = plusht + extra
+ plusdp = plusdp + extra
+ if t then
+ t[#t+1] = formatters["%s: plusht %p plusdp %p"](v_line_m,plusht,plusdp)
+ end
end
- end
- if method[v_first] then
- local thebox = current
- local id = getid(thebox)
- if id == hlist_code then
- thebox = validvbox(id,getlist(thebox))
- id = thebox and getid(thebox)
- end
- if thebox and id == vlist_code then
- local list = getlist(thebox)
- local lw, lh, ld
- for n in nexthlist, list do
- lw, lh, ld = getwhd(n)
- break
+ if method[v_first] then
+ local thebox = current
+ local id = getid(thebox)
+ if id == hlist_code then
+ thebox = validvbox(id,getlist(thebox))
+ id = thebox and getid(thebox)
end
- if lh then
- local wd, ht, dp = getwhd(thebox)
- if t then
- t[#t+1] = formatters["first line: height %p depth %p"](lh,ld)
- t[#t+1] = formatters["dimensions: height %p depth %p"](ht,dp)
+ if thebox and id == vlist_code then
+ local list = getlist(thebox)
+ local lw, lh, ld
+ for n in nexthlist, list do
+ lw, lh, ld = getwhd(n)
+ break
end
- local delta = h - lh
- ch, cd = lh, delta + d
- h, d = ch, cd
- local shifted = hpack_node(getlist(current))
- setshift(shifted,delta)
- setlist(current,shifted)
- done = true
- if t then
- t[#t+1] = formatters["first: height %p depth %p shift %p"](ch,cd,delta)
+ if lh then
+ local wd, ht, dp = getwhd(thebox)
+ if t then
+ t[#t+1] = formatters["first line: height %p depth %p"](lh,ld)
+ t[#t+1] = formatters["dimensions: height %p depth %p"](ht,dp)
+ end
+ local delta = h - lh
+ ch, cd = lh, delta + d
+ h, d = ch, cd
+ local shifted = hpack_node(getlist(current))
+ setshift(shifted,delta)
+ setlist(current,shifted)
+ done = true
+ if t then
+ t[#t+1] = formatters["first: height %p depth %p shift %p"](ch,cd,delta)
+ end
+ elseif t then
+ t[#t+1] = "first: not done, no content"
end
elseif t then
- t[#t+1] = "first: not done, no content"
- end
- elseif t then
- t[#t+1] = "first: not done, no vbox"
- end
- elseif method[v_last] then
- local thebox = current
- local id = getid(thebox)
- if id == hlist_code then
- thebox = validvbox(id,getlist(thebox))
- id = thebox and getid(thebox)
- end
- if thebox and id == vlist_code then
- local list = getlist(thebox)
- local lw, lh, ld
- for n in nexthlist, list do
- lw, lh, ld = getwhd(n)
- end
- if lh then
- local wd, ht, dp = getwhd(thebox)
- if t then
- t[#t+1] = formatters["last line: height %p depth %p" ](lh,ld)
- t[#t+1] = formatters["dimensions: height %p depth %p"](ht,dp)
+ t[#t+1] = "first: not done, no vbox"
+ end
+ elseif method[v_last] then
+ local thebox = current
+ local id = getid(thebox)
+ if id == hlist_code then
+ thebox = validvbox(id,getlist(thebox))
+ id = thebox and getid(thebox)
+ end
+ if thebox and id == vlist_code then
+ local list = getlist(thebox)
+ local lw, lh, ld
+ for n in nexthlist, list do
+ lw, lh, ld = getwhd(n)
end
- local delta = d - ld
- cd, ch = ld, delta + h
- h, d = ch, cd
- local shifted = hpack_node(getlist(current))
- setshift(shifted,delta)
- setlist(current,shifted)
- done = true
- if t then
- t[#t+1] = formatters["last: height %p depth %p shift %p"](ch,cd,delta)
+ if lh then
+ local wd, ht, dp = getwhd(thebox)
+ if t then
+ t[#t+1] = formatters["last line: height %p depth %p" ](lh,ld)
+ t[#t+1] = formatters["dimensions: height %p depth %p"](ht,dp)
+ end
+ local delta = d - ld
+ cd, ch = ld, delta + h
+ h, d = ch, cd
+ local shifted = hpack_node(getlist(current))
+ setshift(shifted,delta)
+ setlist(current,shifted)
+ done = true
+ if t then
+ t[#t+1] = formatters["last: height %p depth %p shift %p"](ch,cd,delta)
+ end
+ elseif t then
+ t[#t+1] = "last: not done, no content"
end
elseif t then
- t[#t+1] = "last: not done, no content"
+ t[#t+1] = "last: not done, no vbox"
end
- elseif t then
- t[#t+1] = "last: not done, no vbox"
- end
- end
- if method[v_minheight] then
- ch = floored((h-hr*snapht)/snaphtdp)*snaphtdp + plusht
- if t then
- t[#t+1] = formatters["minheight: %p"](ch)
- end
- elseif method[v_maxheight] then
- ch = ceiled((h-hr*snapht)/snaphtdp)*snaphtdp + plusht
- if t then
- t[#t+1] = formatters["maxheight: %p"](ch)
end
- else
- ch = plusht
- if t then
- t[#t+1] = formatters["set height: %p"](ch)
+ if method[v_minheight] then
+ ch = floored((h-hr*snapht)/snaphtdp)*snaphtdp + plusht
+ if t then
+ t[#t+1] = formatters["minheight: %p"](ch)
+ end
+ elseif method[v_maxheight] then
+ ch = ceiled((h-hr*snapht)/snaphtdp)*snaphtdp + plusht
+ if t then
+ t[#t+1] = formatters["maxheight: %p"](ch)
+ end
+ else
+ ch = plusht
+ if t then
+ t[#t+1] = formatters["set height: %p"](ch)
+ end
end
- end
- if method[v_mindepth] then
- cd = floored((d-dr*snapdp)/snaphtdp)*snaphtdp + plusdp
- if t then
- t[#t+1] = formatters["mindepth: %p"](cd)
+ if method[v_mindepth] then
+ cd = floored((d-dr*snapdp)/snaphtdp)*snaphtdp + plusdp
+ if t then
+ t[#t+1] = formatters["mindepth: %p"](cd)
+ end
+ elseif method[v_maxdepth] then
+ cd = ceiled((d-dr*snapdp)/snaphtdp)*snaphtdp + plusdp
+ if t then
+ t[#t+1] = formatters["maxdepth: %p"](cd)
+ end
+ else
+ cd = plusdp
+ if t then
+ t[#t+1] = formatters["set depth: %p"](cd)
+ end
end
- elseif method[v_maxdepth] then
- cd = ceiled((d-dr*snapdp)/snaphtdp)*snaphtdp + plusdp
- if t then
- t[#t+1] = formatters["maxdepth: %p"](cd)
+ if method[v_top] then
+ ch = ch + tlines * snaphtdp
+ if t then
+ t[#t+1] = formatters["top height: %p"](ch)
+ end
end
- else
- cd = plusdp
- if t then
- t[#t+1] = formatters["set depth: %p"](cd)
+ if method[v_bottom] then
+ cd = cd + blines * snaphtdp
+ if t then
+ t[#t+1] = formatters["bottom depth: %p"](cd)
+ end
end
- end
- if method[v_top] then
- ch = ch + tlines * snaphtdp
- if t then
- t[#t+1] = formatters["top height: %p"](ch)
+ local offset = method[v_offset]
+ if offset then
+ -- we need to set the attr
+ if t then
+ local wd, ht, dp = getwhd(current)
+ t[#t+1] = formatters["before offset: %p (width %p height %p depth %p)"](offset,wd,ht,dp)
+ end
+ local shifted = hpack_node(getlist(current))
+ setshift(shifted,offset)
+ setlist(current,shifted)
+ if t then
+ local wd, ht, dp = getwhd(current)
+ t[#t+1] = formatters["after offset: %p (width %p height %p depth %p)"](offset,wd,ht,dp)
+ end
+ setattr(shifted,a_snapmethod,0)
+ setattr(current,a_snapmethod,0)
end
- end
- if method[v_bottom] then
- cd = cd + blines * snaphtdp
- if t then
- t[#t+1] = formatters["bottom depth: %p"](cd)
+ if not height then
+ setheight(current,ch)
+ if t then
+ t[#t+1] = formatters["forced height: %p"](ch)
+ end
end
- end
- local offset = method[v_offset]
- if offset then
- -- we need to set the attr
- if t then
- local wd, ht, dp = getwhd(current)
- t[#t+1] = formatters["before offset: %p (width %p height %p depth %p)"](offset,wd,ht,dp)
+ if not depth then
+ setdepth(current,cd)
+ if t then
+ t[#t+1] = formatters["forced depth: %p"](cd)
+ end
end
- local shifted = hpack_node(getlist(current))
- setshift(shifted,offset)
- setlist(current,shifted)
+ local lines = (ch+cd)/snaphtdp
if t then
- local wd, ht, dp = getwhd(current)
- t[#t+1] = formatters["after offset: %p (width %p height %p depth %p)"](offset,wd,ht,dp)
+ local original = (h+d)/snaphtdp
+ local whatever = (ch+cd)/(texgetdimen(d_globalbodyfontstrutheight) + texgetdimen(d_globalbodyfontstrutdepth))
+ t[#t+1] = formatters["final lines : %p -> %p (%p)"](original,lines,whatever)
+ t[#t+1] = formatters["final height: %p -> %p"](h,ch)
+ t[#t+1] = formatters["final depth : %p -> %p"](d,cd)
end
- setattr(shifted,a_snapmethod,0)
- setattr(current,a_snapmethod,0)
- end
- if not height then
- setheight(current,ch)
+ -- todo:
+ --
+ -- if h < 0 or d < 0 then
+ -- h = 0
+ -- d = 0
+ -- end
if t then
- t[#t+1] = formatters["forced height: %p"](ch)
+ report_snapper("trace: %s type %s\n\t%\n\tt",where,nodecodes[getid(current)],t)
end
- end
- if not depth then
- setdepth(current,cd)
- if t then
- t[#t+1] = formatters["forced depth: %p"](cd)
+ if not method[v_split] then
+ -- so extra will not be compensated at the top of a page
+ extra = 0
end
+ return h, d, ch, cd, lines, extra
end
- local lines = (ch+cd)/snaphtdp
- if t then
- local original = (h+d)/snaphtdp
- local whatever = (ch+cd)/(texgetdimen("globalbodyfontstrutheight") + texgetdimen("globalbodyfontstrutdepth"))
- t[#t+1] = formatters["final lines : %p -> %p (%p)"](original,lines,whatever)
- t[#t+1] = formatters["final height: %p -> %p"](h,ch)
- t[#t+1] = formatters["final depth : %p -> %p"](d,cd)
- end
--- todo:
---
--- if h < 0 or d < 0 then
--- h = 0
--- d = 0
--- end
- if t then
- report_snapper("trace: %s type %s\n\t%\n\tt",where,nodecodes[getid(current)],t)
- end
- if not method[v_split] then
- -- so extra will not be compensated at the top of a page
- extra = 0
- end
- return h, d, ch, cd, lines, extra
+
end
-local categories = {
- [0] = "discard",
- [1] = "largest",
- [2] = "force",
- [3] = "penalty",
- [4] = "add",
- [5] = "disable",
- [6] = "nowhite",
- [7] = "goback",
- [8] = "packed",
- [9] = "overlay",
- [10] = "enable",
- [11] = "notopskip",
+local categories = { [0] =
+ "discard",
+ "largest",
+ "force",
+ "penalty",
+ "add",
+ "disable",
+ "nowhite",
+ "goback",
+ "packed",
+ "overlay",
+ "enable",
+ "notopskip",
}
categories = allocate(table.swapped(categories,categories))
@@ -731,6 +750,126 @@ vspacingdata.skip = vspacingdata.skip or { } -- allocate ?
storage.register("builders/vspacing/data/map", vspacingdata.map, "builders.vspacing.data.map")
storage.register("builders/vspacing/data/skip", vspacingdata.skip, "builders.vspacing.data.skip")
+local setspecification, getspecification
+
+-- 1 statepool : 2 : more overhead : a bit slower than properties
+-- 2 attributes : 1 : more overhead : feels faster than properties
+-- 3 properties : 3 : more natural : feels slower than attributes
+-- 4 data : 1 : more native : is little faster than attributes (limited penalty)
+
+-- testfile: t:/bugs/bottomfloats-001.tex
+
+local method = 1 -- better tracing
+-- local method = 2
+-- local method = 3
+-- local method = 4
+
+-- todo: not true but only visual a_visual,tex.getattribute(a_visual)
+
+if method == 1 then
+
+ local registervalue = attributes.registervalue
+ local getvalue = attributes.getvalue
+ local values = attributes.values
+
+ setspecification = function(n,category,penalty,order)
+ local detail = { category, penalty, order or 1 }
+ local value = registervalue(a_skipcategory,detail)
+ setattr(n,a_skipcategory,value)
+ end
+
+ getspecification = function(n)
+ local value = getattr(n,a_skipcategory)
+ if value then
+ local detail = getvalue(a_skipcategory,value)
+ -- local detail = attributes.values[a_skipcategory][value]
+ -- local detail = values[a_skipcategory][value]
+ if detail then
+ return detail[1], detail[2], detail[3]
+ end
+ end
+ return false, false, 1
+ end
+
+elseif method == 2 then
+
+ -- quite okay but more memory due to attributes (not many)
+
+ setspecification = function(n,category,penalty,order)
+ setattrs(n,false,a_skipcategory,category or nil,a_skippenalty,penalty or nil,a_skiporder,order or 1)
+ end
+
+ getspecification = function(n)
+ local c, p, o = getattrs(n,a_skipcategory,a_skippenalty,a_skiporder)
+ return c or false, p or false, o or 1
+ end
+
+elseif method == 3 then
+
+ -- more natural as we stay in lua
+
+ setspecification = function(n,category,penalty,order)
+ -- we know that there are no properties
+ properties[n] = {
+ [a_skipcategory] = category,
+ [a_skippenalty] = penalty,
+ [a_skiporder] = order or 1,
+ }
+ end
+
+ getspecification = function(n)
+ local p = properties[n]
+ if p then
+ return p[a_skipcategory], p[a_skippenalty], p[a_skiporder]
+ end
+ end
+
+elseif method == 4 then
+
+ -- quite efficient but needs testing because we limit values
+
+ local getdata = nuts.getdata
+ local setdata = nuts.setdata
+
+ setspecification = function(n,category,penalty,order)
+ if not category or category > 0xF then
+ category = 0xF
+ end
+ if not order or order > 0xFF then
+ order = 0xFF
+ end
+ if not penalty or penalty > 0x7FFFF then
+ penalty = 0x7FFFF
+ elseif penalty < -0x7FFFF then
+ penalty = -0x7FFFF
+ end
+ -- we need overflow checks
+ setdata(n, (penalty << 12) + (order << 4) + category)
+ end
+
+ getspecification = function(n)
+ local data = getdata(n)
+ if data and data ~= 0 then
+ local category = data & 0x0F
+ local order = (data >> 4) & 0xFF
+ local penalty = data >> 12
+ if category == 0xF then
+ category = nil
+ end
+ if order == 0xFF then
+ order = nil
+ end
+ if penalty == 0x7FFFF then
+ penalty = nil
+ end
+ return category, penalty, order
+ else
+ return nil, nil, nil
+ end
+ end
+
+end
+
do
local P, C, R, S, Cc, Cs = lpeg.P, lpeg.C, lpeg.R, lpeg.S, lpeg.Cc, lpeg.Cs
@@ -750,9 +889,10 @@ do
local k_fixed = variables.fixed
local k_flexible = variables.flexible
- local k_category = "category"
- local k_penalty = "penalty"
- local k_order = "order"
+
+ local k_category <const> = "category"
+ local k_penalty <const> = "penalty"
+ local k_order <const> = "order"
function vspacing.setmap(from,to)
map[from] = to
@@ -765,14 +905,12 @@ do
end
end
- local expandmacro = token.expand_macro
+ local expandmacro = token.expandmacro -- todo
-- local runlocal = tex.runlocal
-- local setmacro = tokens.setters.macro
-- local settoks = tex.settoks
local toscaled = tex.toscaled
- local setattrs = nuts.setattrs
-
local b_done = false
local b_packed = false
@@ -817,8 +955,10 @@ do
local function inject()
local n = new_glue(b_amount,b_stretch,b_shrink)
- setattrs(n,false,a_skipcategory,b_category,a_skippenalty,b_penalty,a_skiporder,b_order or 1)
+ setspecification(n,b_category,b_penalty,b_order or 1)
+ setvisual(k)
write_node(n)
+ -- todo: inject via value
end
local function flush()
@@ -833,6 +973,9 @@ do
-- local cmd = token.create("vspacingfromtempstring")
-- local cmd = token.create("vspacingpredefinedvalue") -- not yet known
+ ----- s_predefined = "s_spac_vspacing_predefined"
+ local s_predefined = tex.isskip("s_spac_vspacing_predefined")
+
local function handler(multiplier, keyword, detail)
if not keyword then
report_vspacing("unknown directive %a",s)
@@ -887,7 +1030,7 @@ do
-- setmacro("tempstring",keyword)
-- runlocal(ctx_vspacingfromtempstring)
--
- amount, stretch, shrink = texgetglue("scratchskip")
+ amount, stretch, shrink = texgetglue(s_predefined)
if not stretch then
stretch = 0
end
@@ -924,7 +1067,7 @@ do
end
b_done = false
b_packed = false
- b_grid = grid
+ b_grid = grid == true or grid == 1
before()
lpegmatch(pattern,str)
after()
@@ -941,19 +1084,25 @@ do
function vspacing.injectpenalty(penalty)
local n = new_glue()
- setattrs(n,false,a_skipcategory,categories.penalty,a_skippenalty,penalty,a_skiporder,1)
+ -- setattrs(n,false,a_skipcategory,categories.penalty,a_skippenalty,penalty,a_skiporder,1)
+ setspecification(n,categories.penalty,penalty,1)
+ setvisual(k)
write_node(n)
end
function vspacing.injectskip(amount)
local n = new_glue(amount)
- setattrs(n,false,a_skipcategory,categories.largest,a_skippenalty,false,a_skiporder,1)
+ -- setattrs(n,false,a_skipcategory,categories.largest,a_skippenalty,false,a_skiporder,1)
+ setspecification(n,categories.largest,false,1)
+ setvisual(k)
write_node(n)
end
function vspacing.injectdisable(amount)
local n = new_glue()
- setattrs(n,false,a_skipcategory,categories.disable,a_skippenalty,false,a_skiporder,1)
+ -- setattrs(n,false,a_skipcategory,categories.disable,a_skippenalty,false,a_skiporder,1)
+ setspecification(n,categories.disable,false,1)
+ setvisual(k)
write_node(n)
end
@@ -961,7 +1110,7 @@ end
-- implementation
--- alignment box begin_of_par vmode_par hmode_par insert penalty before_display after_display
+-- alignment box begin_of_par vmodepar hmodepar insert penalty before_display after_display
function vspacing.snapbox(n,how)
local sv = snapmethods[how]
@@ -1018,8 +1167,8 @@ end
do
- local insert_node_after = nuts.insert_after
- local insert_node_before = nuts.insert_before
+ local insertnodeafter = nuts.insertafter
+ local insertnodebefore = nuts.insertbefore
local abovedisplayskip_code = gluecodes.abovedisplayskip
local belowdisplayskip_code = gluecodes.belowdisplayskip
@@ -1059,7 +1208,7 @@ do
end
local function trace_skip(str,sc,so,sp,data)
- trace_list[#trace_list+1] = { "skip", formatters["%s | %p | category %s | order %s | penalty %s"](str, getwidth(data), sc or "-", so or "-", sp or "-") }
+ trace_list[#trace_list+1] = { "skip", formatters["%s | %p | category %s | order %s | penalty %s | subtype %s"](str, getwidth(data), sc or "-", so or "-", sp or "-", gluecodes[getsubtype(data)]) }
tracing_info = true
end
@@ -1115,16 +1264,22 @@ do
end
if width == 0 then
-- do nothing
- elseif where == "after" then
- head, current = insert_node_after(head,current,new_rule(w,h,d))
- head, current = insert_node_after(head,current,new_kern(width))
- head, current = insert_node_after(head,current,new_rule(w,h,d))
else
- local c = current
- head, current = insert_node_before(head,current,new_rule(w,h,d))
- head, current = insert_node_before(head,current,new_kern(width))
- head, current = insert_node_before(head,current,new_rule(w,h,d))
- current = c
+ local b = new_rule(w,h,d)
+ local k = new_kern(width)
+ local a = new_rule(w,h,d)
+ setvisual(k)
+ if where == "after" then
+ head, current = insertnodeafter(head,current,b)
+ head, current = insertnodeafter(head,current,k)
+ head, current = insertnodeafter(head,current,a)
+ else
+ local c = current
+ head, current = insertnodebefore(head,current,b)
+ head, current = insertnodebefore(head,current,k)
+ head, current = insertnodebefore(head,current,a)
+ current = c
+ end
end
if trace then
report_vspacing("inserting forced skip of %p",width)
@@ -1301,13 +1456,15 @@ do
end
--
local delta = n_ht + skips + p_dp
- texsetdimen("global","d_spac_overlay",-delta) -- for tracing
+ texsetdimen("global",d_spac_overlay,-delta) -- for tracing
-- we should adapt pagetotal ! (need a hook for that) .. now we have the wrong pagebreak
local k = new_kern(-delta)
- head = insert_node_before(head,n,k)
+ setvisual(k)
+ head = insertnodebefore(head,n,k)
if n_ht > p_ht then
local k = new_kern(n_ht-p_ht)
- head = insert_node_before(head,p,k)
+ setvisual(k)
+ head = insertnodebefore(head,p,k)
end
if trace_vspacing then
report_vspacing("overlaying, prev height: %p, prev depth: %p, next height: %p, skips: %p, move up: %p",p_ht,p_dp,n_ht,skips,delta)
@@ -1347,7 +1504,7 @@ do
-- quit, we're not on the mvl
else
-- inefficient when we're at the end of a page
- local c = tonut(texlists.page_head)
+ local c = tonut(texlists.pagehead)
while c and c ~= n do
local id = getid(c)
if id == hlist_code then
@@ -1367,6 +1524,21 @@ do
return remove_node(head,current,true)
end
+ -- where -> scope
+ -- what -> where (original context)
+
+ local checkslide = false
+
+ directives.register("vspacing.checkslide", function(v)
+ if v then
+ checkslide = function(head,where,what)
+ nuts.checkslide(head,where .. " : " .. what)
+ end
+ else
+ checkslide = false
+ end
+ end)
+
local function collapser(head,where,what,trace,snap,a_snapmethod) -- maybe also pass tail
if trace then
reset_tracing(head)
@@ -1390,10 +1562,11 @@ do
local pagetail
--
-- todo: keep_together: between headers
+ -- todo: make this nicer in the engine
--
local function getpagelist()
if not pagehead then
- pagehead = texlists.page_head
+ pagehead = texlists.pagehead -- pagehead, pagetail = tex.getlist("pagehead")
if pagehead then
pagehead = tonut(pagehead)
pagetail = find_node_tail(pagehead) -- no texlists.page_tail yet-- no texlists.page_tail yet
@@ -1401,6 +1574,12 @@ do
end
end
--
+ -- local function getpagelist()
+ -- if not pagehead then
+ -- pagehead, pagetail = texgetlist("pagehead")
+ -- end
+ -- end
+ --
local function compensate(n)
local g = 0
while n and getid(n) == glue_code do
@@ -1442,6 +1621,7 @@ do
local d = g - t
if d < -e then
local penalty = new_penalty(1000000)
+ setvisual(penalty)
setlink(penalty,head)
head = penalty
report_snapper("force pagebreak due to extra space at bottom: %p",e)
@@ -1470,6 +1650,7 @@ do
local function flush(why)
if penalty_data then
local p = new_penalty(penalty_data)
+ setvisual(p)
if trace then
trace_done("flushed due to " .. why,p)
end
@@ -1477,12 +1658,12 @@ do
local prev = getprev(current)
if getid(prev) == glue_code then -- maybe go back more, or maybe even push back before any glue
-- tricky case: spacing/grid-007.tex: glue penalty glue
- head = insert_node_before(head,prev,p)
+ head = insertnodebefore(head,prev,p)
else
- head = insert_node_before(head,current,p)
+ head = insertnodebefore(head,current,p)
end
else
- head = insert_node_before(head,current,p)
+ head = insertnodebefore(head,current,p)
end
-- if penalty_data > special_penalty_min and penalty_data < special_penalty_max then
local props = properties[p]
@@ -1501,22 +1682,22 @@ do
trace_done("flushed due to forced " .. why,glue_data)
end
head = forced_skip(head,current,getwidth(glue_data,width),"before",trace)
- flush_node(glue_data)
+ flushnode(glue_data)
else
local width, stretch, shrink = getglue(glue_data)
if width ~= 0 then
if trace then
trace_done("flushed due to non zero " .. why,glue_data)
end
- head = insert_node_before(head,current,glue_data)
+ head = insertnodebefore(head,current,glue_data)
elseif stretch ~= 0 or shrink ~= 0 then
if trace then
trace_done("flushed due to stretch/shrink in" .. why,glue_data)
end
- head = insert_node_before(head,current,glue_data)
+ head = insertnodebefore(head,current,glue_data)
else
-- report_vspacing("needs checking (%s): %p",gluecodes[getsubtype(glue_data)],w)
- flush_node(glue_data)
+ flushnode(glue_data)
end
end
end
@@ -1531,10 +1712,10 @@ do
--
if trace_vsnapping then
report_snapper("global ht/dp = %p/%p, local ht/dp = %p/%p",
- texgetdimen("globalbodyfontstrutheight"),
- texgetdimen("globalbodyfontstrutdepth"),
- texgetdimen("bodyfontstrutheight"),
- texgetdimen("bodyfontstrutdepth")
+ texgetdimen(d_globalbodyfontstrutheight),
+ texgetdimen(d_globalbodyfontstrutdepth),
+ texgetdimen(d_bodyfontstrutheight),
+ texgetdimen(d_bodyfontstrutdepth)
)
end
if trace then
@@ -1543,6 +1724,9 @@ do
if snap and where == "page" then
removetopsnap()
end
+ if checkslide then
+ checkslide(head,where,what)
+ end
while current do
local id = getid(current)
if id == hlist_code or id == vlist_code then
@@ -1613,7 +1797,8 @@ do
elseif id == glue_code then
local subtype = getsubtype(current)
if subtype == userskip_code then
- local sc, so, sp = getattrs(current,a_skipcategory,a_skiporder,a_skippenalty)
+ -- local sc, so, sp = getattrs(current,a_skipcategory,a_skiporder,a_skippenalty)
+ local sc, sp, so = getspecification(current)
if not so then
so = 1 -- the others have no default value
end
@@ -1647,7 +1832,7 @@ do
if trace then
trace_done("flush",glue_data)
end
- head = insert_node_before(head,current,glue_data)
+ head = insertnodebefore(head,current,glue_data)
if trace then
trace_natural("natural",current)
end
@@ -1737,7 +1922,7 @@ do
trace_skip("force",sc,so,sp,current)
end
glue_order = so
- flush_node(glue_data)
+ flushnode(glue_data)
head, current, glue_data = remove_node(head,current)
elseif glue_order == so then
-- is now exclusive, maybe support goback as combi, else why a set
@@ -1748,7 +1933,7 @@ do
if trace then
trace_skip("largest",sc,so,sp,current)
end
- flush_node(glue_data)
+ flushnode(glue_data)
head, current, glue_data = remove_node(head,current)
else
if trace then
@@ -1760,7 +1945,7 @@ do
if trace then
trace_skip("goback",sc,so,sp,current)
end
- flush_node(glue_data)
+ flushnode(glue_data)
head, current, glue_data = remove_node(head,current)
elseif sc == force then
-- last one counts, some day we can provide an accumulator and largest etc
@@ -1768,13 +1953,13 @@ do
if trace then
trace_skip("force",sc,so,sp,current)
end
- flush_node(glue_data)
+ flushnode(glue_data)
head, current, glue_data = remove_node(head,current)
elseif sc == penalty then
if trace then
trace_skip("penalty",sc,so,sp,current)
end
- flush_node(glue_data)
+ flushnode(glue_data)
glue_data = nil
head, current = remove_node(head,current,true)
elseif sc == add then
@@ -1855,7 +2040,7 @@ do
elseif glue_data then
local w = getwidth(current)
if w ~= 0 and w > getwidth(glue_data) then
-flush_node(glue_data)
+ flushnode(glue_data)
glue_data = current
if trace then
trace_natural("taking parskip",current)
@@ -1875,8 +2060,9 @@ flush_node(glue_data)
end
elseif subtype == topskip_code or subtype == splittopskip_code then
local next = getnext(current)
- if next and getattr(next,a_skipcategory) == notopskip then
- nuts.setglue(current) -- zero
+ -- if next and getattr(next,a_skipcategory) == notopskip then
+ if next and getspecification(next) == notopskip then
+ setglue(current) -- zero
end
if snap then
local s = getattr(current,a_snapmethod)
@@ -1963,6 +2149,7 @@ flush_node(glue_data)
if penalty_data then
tail = find_node_tail(head)
local p = new_penalty(penalty_data)
+ setvisual(p)
if trace then
trace_done("result",p)
end
@@ -1985,14 +2172,15 @@ flush_node(glue_data)
end
if force_glue then
head, tail = forced_skip(head,tail,getwidth(glue_data),"after",trace)
- flush_node(glue_data)
+ flushnode(glue_data)
glue_data = nil
elseif tail then
setlink(tail,glue_data)
-setnext(glue_data)
+ setnext(glue_data)
else
head = glue_data
end
+ -- texsetnest("top","prevdepth",0)
texnest[texnest.ptr].prevdepth = 0 -- appending to the list bypasses tex's prevdepth handler
end
if trace then
@@ -2007,6 +2195,22 @@ setnext(glue_data)
return head
end
+-- local function collapser(head,...)
+-- local current = head
+-- while current do
+-- local id = getid(current)
+-- if id == glue_code then
+-- if getsubtype(current) == userskip_code then
+-- local glue_data
+-- head, current, glue_data = remove_node(head,current)
+-- head, current = insertnodebefore(head,current,glue_data)
+-- end
+-- end
+-- current = getnext(current)
+-- end
+-- return head
+-- end
+
local stackhead, stacktail, stackhack = nil, nil, false
local function report(message,where,lst)
@@ -2020,6 +2224,8 @@ setnext(glue_data)
-- ugly code: we get partial lists (check if this stack is still okay) ... and we run
-- into temp nodes (sigh)
+ -- this really need a rework
+
local forceflush = false
function vspacing.pagehandler(newhead,where)
@@ -2027,26 +2233,27 @@ setnext(glue_data)
local newtail = find_node_tail(newhead) -- best pass that tail, known anyway
local flush = false
stackhack = true -- todo: only when grid snapping once enabled
- -- todo: fast check if head = tail
- for n, id, subtype in nextnode, newhead do -- we could just look for glue nodes
+
+ for n, id, subtype in nextnode, newhead do
if id ~= glue_code then
flush = true
elseif subtype == userskip_code then
- if getattr(n,a_skipcategory) then
+ -- local sc = getattr(n,a_skipcategory)
+ local sc = getspecification(n)
+ if sc then
stackhack = true
else
flush = true
end
elseif subtype == parskip_code then
-- if where == new_graf then ... end
- if texgetcount("c_spac_vspacing_ignore_parskip") > 0 then
- -- texsetcount("c_spac_vspacing_ignore_parskip",0)
+ if texgetcount(c_spac_vspacing_ignore_parskip) > 0 then
setglue(n)
-- maybe removenode
end
end
end
- texsetcount("c_spac_vspacing_ignore_parskip",0)
+ texsetcount(c_spac_vspacing_ignore_parskip,0)
if forceflush then
forceflush = false
@@ -2101,18 +2308,16 @@ setnext(glue_data)
forceflush = true
end
- local ignore = table.tohash {
- "split_keep",
- "split_off",
- -- "vbox",
+ local ignored = table.tohash {
+ "splitkeep",
+ "splitoff",
+-- "insert",
}
function vspacing.vboxhandler(head,where)
- if head and not ignore[where] and getnext(head) then
- if getnext(head) then -- what if a one liner and snapping?
- head = collapser(head,"vbox",where,trace_vbox_vspacing,true,a_snapvbox) -- todo: local snapper
- return head
- end
+ if head and not ignored[where] and getnext(head) then
+-- if getid(head) == glue_code and getsubtype(head) == topskip_code then
+ head = collapser(head,"vbox",where,trace_vbox_vspacing,true,a_snapvbox) -- todo: local snapper
end
return head
end
@@ -2154,7 +2359,9 @@ do
enabled = v
end)
- local ignoredepth = -65536000
+ local function ignoredepth()
+ return texgetdimen("ignoredepthcriterium") -- -65536000
+ end
-- A previous version analyzed the number of lines moved to the next page in
-- synchronizepage because prevgraf is unreliable in that case. However, we cannot
@@ -2166,7 +2373,7 @@ do
function vspacing.getnofpreviouslines(head)
if enabled then
if not thead then
- head = texlists.page_head
+ head = texlists.pagehead
end
local noflines = 0
if head then
@@ -2217,35 +2424,38 @@ do
if trace then
local newdepth = outer.prevdepth
local olddepth = newdepth
- if not texlists.page_head then
- newdepth = ignoredepth
- texset("prevdepth",ignoredepth)
- outer.prevdepth = ignoredepth
+ if not texlists.pagehead then
+ newdepth = ignoredepth()
+ texset("prevdepth",newdepth)
+ outer.prevdepth = newdepth
end
report("page %i, prevdepth %p => %p",texgetcount("realpageno"),olddepth,newdepth)
-- report("list %s",nodes.idsandsubtypes(head))
else
- if not texlists.page_head then
- texset("prevdepth",ignoredepth)
- outer.prevdepth = ignoredepth
+ if not texlists.pagehead then
+ local newdepth = ignoredepth()
+ texset("prevdepth",newdepth)
+ outer.prevdepth = newdepth
end
end
end
end
- local trace = false
- local last = nil
- local vmode_code = tex.modelevels.vertical
- local temp_code = nodecodes.temp
- local getnest = tex.getnest
- local getlist = tex.getlist
+ local trace = false
+ local abs = math.abs
+ -- local last = nil
+ local vmode_code = tex.modelevels.vertical
+ local temp_code = nodecodes.temp
+ local texgetnest = tex.getnest
+ local texgetlist = tex.getlist
+ local getnodetail = nodes.tail
- trackers.register("vspacing.forcestrutdepth",function(v) trace = v end)
+ -- trackers.register("vspacing.forcestrutdepth",function(v) trace = v end)
-- abs : negative is inner
function vspacing.checkstrutdepth(depth)
- local nest = getnest()
+ local nest = texgetnest()
if abs(nest.mode) == vmode_code and nest.head then
local tail = nest.tail
local id = tail.id
@@ -2254,10 +2464,10 @@ do
tail.depth = depth
end
nest.prevdepth = depth
- elseif id == temp_code and getnest("ptr") == 0 then
- local head = getlist("page_head")
+ elseif id == temp_code and texgetnest("ptr") == 0 then
+ local head = texgetlist("pagehead")
if head then
- tail = nodes.tail(head)
+ tail = getnodetail(head)
if tail and tail.id == hlist_code then
if tail.depth < depth then
tail.depth = depth
@@ -2277,69 +2487,234 @@ do
actions = vspacing.checkstrutdepth,
}
- function vspacing.forcestrutdepth(n,depth,trace_mode,plus)
- local box = texgetbox(n)
- if box then
- box = tonut(box)
- local head = getlist(box)
- if head then
- local tail = find_node_tail(head)
- if tail then
- if getid(tail) == hlist_code then
- local dp = getdepth(tail)
- if dp < depth then
- setdepth(tail,depth)
- outer.prevdepth = depth
- if trace or trace_mode > 0 then
- nuts.setvisual(tail,"depth")
+ -- function vspacing.forcestrutdepth(n,depth,trace_mode,plus)
+ -- local box = texgetbox(n)
+ -- if box then
+ -- box = tonut(box)
+ -- local head = getlist(box)
+ -- if head then
+ -- local tail = find_node_tail(head)
+ -- if tail then
+ -- if getid(tail) == hlist_code then
+ -- local dp = getdepth(tail)
+ -- if dp < depth then
+ -- setdepth(tail,depth)
+ -- outer.prevdepth = depth
+ -- if trace or trace_mode > 0 then
+ -- nuts.setvisual(tail,"depth")
+ -- end
+ -- end
+ -- end
+ -- -- last = nil
+ -- -- if plus then
+ -- -- -- penalty / skip ...
+ -- -- local height = 0
+ -- -- local sofar = 0
+ -- -- local same = false
+ -- -- local seen = false
+ -- -- local list = { }
+ -- -- last = nil
+ -- -- while tail do
+ -- -- local id = getid(tail)
+ -- -- if id == hlist_code or id == vlist_code then
+ -- -- local w, h, d = getwhd(tail)
+ -- -- height = height + h + d + sofar
+ -- -- sofar = 0
+ -- -- last = tail
+ -- -- elseif id == kern_code then
+ -- -- sofar = sofar + getkern(tail)
+ -- -- elseif id == glue_code then
+ -- -- if seen then
+ -- -- sofar = sofar + getwidth(tail)
+ -- -- seen = false
+ -- -- else
+ -- -- break
+ -- -- end
+ -- -- elseif id == penalty_code then
+ -- -- local p = getpenalty(tail)
+ -- -- if p >= 10000 then
+ -- -- same = true
+ -- -- seen = true
+ -- -- else
+ -- -- break
+ -- -- end
+ -- -- else
+ -- -- break
+ -- -- end
+ -- -- tail = getprev(tail)
+ -- -- end
+ -- -- texsetdimen("global","d_spac_prevcontent",same and height or 0)
+ -- -- end
+ -- end
+ -- end
+ -- end
+ -- end
+
+ local hlist_code = nodes.nodecodes.hlist
+ local insert_code = nodes.nodecodes.insert
+ local mark_code = nodes.nodecodes.mark
+ local line_code = nodes.listcodes.line
+
+ -- local nuts = nodes.nuts
+ -- local getid = nuts.getid
+ -- local getsubtype = nuts.getsubtype
+ -- local getdepth = nuts.getdepth
+ -- local setdepth = nuts.setdepth
+ local gettotal = nuts.gettotal
+ local getspeciallist = nuts.getspeciallist
+ local setspeciallist = nuts.setspeciallist
+
+ local triggerbuildpage = tex.triggerbuildpage
+
+ -- local texgetdimen = tex.getdimen
+ -- local texsetdimen = tex.setdimen
+ local texgetnest = tex.getnest
+ -- local texget = tex.get
+ -- local texset = tex.set
+
+ local trace = false trackers.register("otr.forcestrutdepth", function(v)
+ trace = v and function(n)
+ setvisual(nuts.tonut(n),nodes.visualizers.modes.depth)
+ end
+ end)
+
+ local treversenode = nuts.treversers.node
+
+ local function flushcontributions()
+ if texgetnest("ptr") == 0 then
+ -- this flushes the contributions
+ local prev = nil
+ local cycle = 1
+ while cycle <= 10 do
+ local head = getspeciallist("contributehead")
+ if head == prev then
+ -- This can happen .. maybe 10 is already too much ... e.g.
+ -- extreme side float case in m4all.
+ cycle = cycle + 1
+ else
+ triggerbuildpage()
+ prev = head
+ end
+ end
+ return true
+ else
+ return false
+ end
+ end
+
+ vspacing.flushcontributions = flushcontributions
+
+ function vspacing.forcestrutdepth()
+ -- check if in mvl
+ if flushcontributions() then
+ -- now we consult the last line (if present)
+ local head, tail = getspeciallist("pagehead")
+ if tail then
+ for n, id, subtype in treversenode, tail do
+ if id == hlist_code then
+ if subtype == line_code then
+ local strutdp = texgetdimen(d_strutdp)
+ local delta = strutdp - getdepth(n)
+ if delta > 0 then
+ setdepth(n,strutdp)
+ texset("pagetotal",texget("pagetotal") + delta)
+ texset("pagedepth",strutdp)
+ if trace then
+ trace(n)
+ end
end
end
+ break
+ elseif id == insert_code or id == mark_code then
+ -- prev
+ else
+ break
end
- last = nil
- if plus then
- -- penalty / skip ...
- local height = 0
- local sofar = 0
- local same = false
- local seen = false
- local list = { }
- last = nil
- while tail do
- local id = getid(tail)
- if id == hlist_code or id == vlist_code then
- local w, h, d = getwhd(tail)
- height = height + h + d + sofar
- sofar = 0
- last = tail
- elseif id == kern_code then
- sofar = sofar + getkern(tail)
- elseif id == glue_code then
- if seen then
- sofar = sofar + getwidth(tail)
- seen = false
- else
- break
- end
- elseif id == penalty_code then
- local p = getpenalty(tail)
- if p >= 10000 then
- same = true
- seen = true
+ end
+ end
+ else
+ local nest = texgetnest()
+ -- if abs(nest.mode) == vmode_code and nest.head then
+ local tail = nest.tail
+ if tail.id == hlist_code and tail.subtype == line_code then
+ local strutdp = texgetdimen(d_strutdp)
+ if tail.depth < strutdp then
+ tail.depth = strutdp
+ end
+ nest.prevdepth = strutdp
+ if trace then
+ trace(tail)
+ end
+ end
+ -- end
+ end
+ end
+
+ -- highly experimental, only for m4all now; todo: tracing
+
+ local setbox = nuts.setbox
+
+ function vspacing.interceptsamepagecontent(box)
+ if vspacing.flushcontributions() then
+ -- now we consult the last line (if present)
+ local head, tail = getspeciallist("pagehead")
+ if tail and getid(tail) == glue_code then
+ local prev = getprev(tail)
+ if prev and getid(prev) == penalty_code then
+ if getpenalty(prev) >= 10000 then
+ local state = nil
+ local first = nil
+ local last = tail
+ local c = getprev(prev)
+ while c do
+ if getid(c) == glue_code then
+ local p = getprev(c)
+ if p and getid(p) == penalty_code then
+ if getpenalty(p) < 10000 then
+ state = 1
+ end
else
+ state = 2
break
end
- else
- break
end
- tail = getprev(tail)
+ first = c
+ c = getprev(c)
+ end
+ if first and first ~= head then
+ setnext(getprev(first))
+ setprev(first)
+ local vbox = vpack_node(first)
+ setvisual(vbox)
+ setbox(box,vbox)
+ report_vspacing("same page intercept, case %i")
end
- texsetdimen("global","d_spac_prevcontent",same and height or 0)
end
end
end
end
end
+ interfaces.implement {
+ name = "interceptsamepagecontent",
+ arguments = "integer",
+ actions = vspacing.interceptsamepagecontent,
+ }
+
+ -- interfaces.implement {
+ -- name = "removelastline",
+ -- actions = function()
+ -- local h, t = getspeciallist("pagehead")
+ -- if t and getid(t) == hlist_code and getsubtype(t) == line_code then
+ -- local total = gettotal(t)
+ -- h = remove_node(h,t,true)
+ -- setspeciallist(h)
+ -- texset("pagetotal",texget("pagetotal") - total)
+ -- -- set prevdepth
+ -- end
+ -- end
+ -- }
+
function vspacing.pushatsame()
-- needs better checking !
if last then -- setsplit
@@ -2390,18 +2765,25 @@ do
scope = "private"
}
- implement {
- name = "forcestrutdepth",
- arguments = { "integer", "dimension", "integer" },
- actions = vspacing.forcestrutdepth,
- scope = "private"
- }
+ -- implement {
+ -- name = "forcestrutdepth",
+ -- arguments = { "integer", "dimension", "integer" },
+ -- actions = vspacing.forcestrutdepth,
+ -- scope = "private"
+ -- }
+
+ -- implement {
+ -- name = "forcestrutdepthplus",
+ -- arguments = { "integer", "dimension", "integer", true },
+ -- actions = vspacing.forcestrutdepth,
+ -- scope = "private"
+ -- }
implement {
- name = "forcestrutdepthplus",
- arguments = { "integer", "dimension", "integer", true },
+ name = "forcestrutdepth",
+ public = true,
+ protected = true,
actions = vspacing.forcestrutdepth,
- scope = "private"
}
implement {
@@ -2464,10 +2846,10 @@ do
-- interfaces.implement {
-- name = "fakenextstrutline",
-- actions = function()
- -- local head = texlists.page_head
+ -- local head = texlists.pagehead
-- if head then
-- local head = remove_node(head,find_node_tail(head),true)
- -- texlists.page_head = head
+ -- texlists.pagehead = head
-- buildpage()
-- end
-- end
@@ -2476,13 +2858,13 @@ do
implement {
name = "removelastline",
actions = function()
- local head = texlists.page_head
+ local head = texlists.pagehead
if head then
local tail = find_node_tail(head)
if tail then
-- maybe check for hlist subtype 1
local head = remove_node(head,tail,true)
- texlists.page_head = head
+ texlists.pagehead = head
buildpage()
end
end
@@ -2492,7 +2874,7 @@ do
implement {
name = "showpagelist", -- will improve
actions = function()
- local head = texlists.page_head
+ local head = texlists.pagehead
if head then
print("start")
while head do
@@ -2514,3 +2896,14 @@ do
}
end
+
+do
+
+ implement {
+ name = "injectzerobaselineskip",
+ protected = true,
+ public = true,
+ actions = { nodes.pool.baselineskip, context },
+ }
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/spac-ver.mkxl b/Master/texmf-dist/tex/context/base/mkxl/spac-ver.mkxl
index d116113399d..640d493b961 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/spac-ver.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/spac-ver.mkxl
@@ -15,7 +15,23 @@
\unprotect
-\registerctxluafile{spac-ver}{autosuffix,optimize}
+\newgluespec\bodyfontlineheight % why a skip
+\newdimen \bodyfontstrutheight
+\newdimen \bodyfontstrutdepth
+
+\newgluespec\globalbodyfontlineheight % why a skip
+\newdimen \globalbodyfontstrutheight
+\newdimen \globalbodyfontstrutdepth
+
+\newgluespec \s_spac_vspacing_predefined
+\newdimension\d_spac_overlay
+\newinteger \c_spac_vspacing_ignore_parskip
+
+% \overloaded\let\strutht \undefined \newdimen\strutht % already defined
+% \overloaded\let\strutdp \undefined \newdimen\strutdp
+% \overloaded\let\struthtdp\undefined \newdimen\struthtdp
+
+\registerctxluafile{spac-ver}{autosuffix}
% todo: use usernodes ?
@@ -59,7 +75,7 @@
\newif\iflocalinterlinespace
-\newskip \s_spac_vspacing_temp \s_spac_vspacing_temp\bigskipamount
+\newgluespec\s_spac_vspacing_temp \s_spac_vspacing_temp\bigskipamount
\mutable\def\skipfactor {.75}
\mutable\def\skipgluefactor{.25}
@@ -73,7 +89,7 @@
\relax}
\ifdefined\bodyfontinterlinespace \else
- \let\bodyfontinterlinespace\empty
+ \lettonothing\bodyfontinterlinespace
\fi
\permanent\protected\def\presetnormallineheight % each bodyfont
@@ -97,6 +113,7 @@
\edef\minimumlinedistance {\interlinespaceparameter\c!distance }%
\edef\normallineheight {\interlinespaceparameter\c!line }%
\edef\topskipfactor {\interlinespaceparameter\c!top }%
+ \edef\ntopskipfactor {\interlinespaceparameter\c!ntop }%
\edef\maxdepthfactor {\interlinespaceparameter\c!bottom }%
\edef\m_spac_vertical_baseline_stretch_factor{\interlinespaceparameter\c!stretch}%
\edef\m_spac_vertical_baseline_shrink_factor {\interlinespaceparameter\c!shrink }%
@@ -109,12 +126,13 @@
\installcorenamespace{interlinespacerelative}
-\aliased\let\setrelativeinterlinespace \relax % used elsewhere
-\mutable\let\currentrelativeinterlinespace\empty
+\aliased\let\setrelativeinterlinespace\relax % used elsewhere
+
+\mutable\lettonothing\currentrelativeinterlinespace
\defcsname\??interlinespacerelative\v!on \endcsname{\oninterlineskip}
\defcsname\??interlinespacerelative\v!off \endcsname{\offinterlineskip}
-\defcsname\??interlinespacerelative\v!reset\endcsname{\enforced\let\currentrelativeinterlinespace\empty
+\defcsname\??interlinespacerelative\v!reset\endcsname{\enforced\lettonothing\currentrelativeinterlinespace
\enforced\let\setrelativeinterlinespace\relax
\setfontparameters}
\defcsname\??interlinespacerelative\v!auto \endcsname{\enforced\let\setrelativeinterlinespace\spac_linespacing_set_relative_interlinespace}
@@ -230,10 +248,10 @@
%D Helpers
-\newskip \s_spac_lastskip
-\newdimen\d_spac_prevdepth
-\newcount\c_spac_spacefactor
-\newdimen\d_spac_prevcontent % set by lua
+\newgluespec \s_spac_lastskip
+\newdimension\d_spac_prevdepth
+\newinteger \c_spac_spacefactor
+%newdimension\d_spac_prevcontent % set by lua (no longer it seems)
% \permanent\overloaded\protected\def\removelastskip
% {\ifvmode\ifzeropt\lastskip\else\vskip-\lastskip\fi\fi}
@@ -339,7 +357,7 @@
\installcorenamespace{whitespacemethod}
-\newskip \s_spac_whitespace_parskip \s_spac_whitespace_parskip\zeropoint
+\newgluespec \s_spac_whitespace_parskip \s_spac_whitespace_parskip\zeropoint
\newconditional\c_spac_whitespace_flexible \settrue\c_spac_whitespace_flexible
\newconstant \c_spac_whitespace_grid_mode % option in layout / 1=permit_half_lines
@@ -419,8 +437,8 @@
{\ifcsname\??whitespacemethod#1\endcsname
\lastnamedcs
\else
- \s_spac_whitespace_parskip#1\fi
- \relax}
+ \s_spac_whitespace_parskip#1%
+ \fi\relax}
\permanent\protected\def\forgetparskip
{\s_spac_whitespace_parskip\zeropoint
@@ -447,10 +465,10 @@
% todo: when packed blocks blank, we need to enable forced
\newconditional\c_spac_packed_blank \settrue\c_spac_packed_blank
-\newcount \c_spac_packed_level
+\newinteger \c_spac_packed_level
\permanent\tolerant\protected\def\startpacked[#1]%
- {\global\advance\c_spac_packed_level\plusone
+ {\global\advanceby\c_spac_packed_level\plusone
\par
\ifnum\c_spac_packed_level=\plusone \ifvmode
\begingroup
@@ -465,7 +483,7 @@
\ifnum\c_spac_packed_level=\plusone \ifvmode
\endgroup
\fi \fi
- \global\advance\c_spac_packed_level\minusone}
+ \global\advanceby\c_spac_packed_level\minusone}
\permanent\protected\def\startunpacked
{\directdefaultvspacing % \blank
@@ -488,17 +506,18 @@
\installtextracker
{linecorrection.boxes}
- {\letfrozen\let\spac_lines_vbox\ruledvbox}
- {\letfrozen\let\spac_lines_vbox\vbox}
+ {\enforced\let\spac_lines_vbox\ruledvbox}
+ {\enforced\let\spac_lines_vbox\vbox}
\let\v_spac_lines_around_action_set\relax
-\let\m_spac_lines_around \empty
+
+\lettonothing\m_spac_lines_around
\newconstant\c_spac_lines_correction_mode
-\setvalue{\??linesaround\v!blank }{\blank}
-\letvalue{\??linesaround\empty }\relax
-\setvalue{\??linesaround\s!unknown}{\directcheckedvspacing\m_spac_lines_around} % \blank[\m_spac_lines_around]}
+\defcsname\??linesaround\v!blank \endcsname{\blank}
+\letcsname\??linesaround\empty \endcsname\relax
+\defcsname\??linesaround\s!unknown\endcsname{\directcheckedvspacing\m_spac_lines_around} % \blank[\m_spac_lines_around]}
\def\spac_lines_action_around % we used to let this one but it's cleaner this way
{\csname\??linesaround % i.e. do it twice
@@ -639,17 +658,17 @@
%D that can be prevented with \type {\dontleavehmode}. Never use \type
%D {\leavevmode}!
-\newdimen\strutdimen
-\newdimen\lineheight
-\newdimen\openlineheight
-\newdimen\openstrutheight
-\newdimen\openstrutdepth
-\newdimen\topskipgap
+\newdimension\strutdimen % not used
+\newdimension\lineheight
+\newdimension\openlineheight
+\newdimension\openstrutheight
+\newdimension\openstrutdepth
+\newdimension\topskipgap
-\newdimen\strutheight
-\newdimen\strutdepth
-\newdimen\struttotal
-\newdimen\strutwidth
+\newdimension\strutheight
+\newdimension\strutdepth
+\newdimension\struttotal
+\newdimension\strutwidth
\let\m_spac_vertical_baseline_stretch_factor \zerocount
\let\m_spac_vertical_baseline_shrink_factor \zerocount
@@ -659,6 +678,7 @@
\mutable\def\baselinefactor {2.8}
\mutable\def\topskipfactor {1.0}
\mutable\def\maxdepthfactor {0.5}
+\mutable\let\ntopskipfactor \minusone
\mutable\def\minimumstrutheight {\zeropoint}
\mutable\def\minimumstrutdepth {\zeropoint}
@@ -672,7 +692,7 @@
\mutable\def\systemmaxdepthfactor{\maxdepthfactor}
\ifdefined\globalbodyfontsize \else
- \newdimen\globalbodyfontsize
+ \newdimension\globalbodyfontsize
\globalbodyfontsize=12pt
\fi
@@ -699,12 +719,17 @@
\else
\systemtopskipfactor\globalbodyfontsize
\ifcase\bottomraggednessmode % ragged bottom
- \s!plus5\globalbodyfontsize
+ \s!plus
+ \ifnum\ntopskipfactor<\zerocount
+ 5\globalbodyfontsize % old hard coded value
+ \else
+ \ntopskipfactor\openlineheight
+ \fi
\fi
\fi
%\relax
\topskipgap\topskip
- \advance\topskipgap -\openstrutheight\relax
+ \advanceby\topskipgap -\openstrutheight\relax
\ifdim\minimumstrutheight>\zeropoint
\ifdim\topskip<\minimumstrutheight
\topskip\minimumstrutheight\relax
@@ -718,9 +743,9 @@
\permanent\protected\def\setmaxdepth
{\maxdepth\systemmaxdepthfactor\globalbodyfontsize}
-\newskip \usedbaselineskip % These used to be \normal... but that isn't pretty
-\newskip \usedlineskip % in the token interface, so thes few now have new
-\newdimen\usedlineskiplimit % names. They are public but not really user commands.
+\newgluespec \usedbaselineskip % These used to be \normal... but that isn't pretty
+\newgluespec \usedlineskip % in the token interface, so these few now have new
+\newdimension\usedlineskiplimit % names. They are public but not really user commands.
\permanent\protected\def\normalbaselines
{\baselineskip \usedbaselineskip
@@ -789,6 +814,8 @@
%D \starttyping
%D \rm \saveinterlinespace .... {\ss \restoreinterlinespace .... \endgraf}
%D \stoptyping
+%D
+%D This is no longer needed.
\aliased\let\restoreinterlinespace\relax
@@ -818,22 +845,20 @@
%D
%D But we do things differently.
-\newbox\strutbox
+\newbox\b_strut_box
+\newbox\b_strut_tmp
-\setbox\strutbox\hpack{\vrule\s!height8.5pt\s!depth3.5pt\s!width\zeropoint} % just a start
-
-% \permanent\protected\def\strut{\relax\ifmmode\copy\else\unhcopy\fi\strutbox}
-%
-% \protected\def\strut
-% {\relax
-% \ifmmode\copy\else\dontleavehmode\unhcopy\fi\strutbox}
-%
-% \aliased\let\normalstrut\strut
+\permanent\protected\def\strutbox % not to be used but this is sort of an alias
+ {\beginlocalcontrol
+ \setbox\b_strut_tmp\hpack{\normalsrule\s!height\strutht\s!depth\strutdp}% just a start
+ \endlocalcontrol
+ \b_strut_tmp}
%D The double \type {\hbox} construction enables us to backtrack boxes.
-\overloaded\let\strutht\undefined \newdimen\strutht
-\overloaded\let\strutdp\undefined \newdimen\strutdp
+% \overloaded\let\strutht \undefined \newdimension\strutht % see above
+% \overloaded\let\strutdp \undefined \newdimension\strutdp
+% \overloaded\let\struthtdp\undefined \newdimension\struthtdp
\permanent\protected\def\setstrut
{\ifgridsnapping
@@ -877,9 +902,9 @@
\dosetstrut}
\permanent\protected\def\setcharstrut#1%
- {\setbox\strutbox\hbox{#1}% no \hpack, in case we have smallcaps
- \strutht\ht\strutbox
- \strutdp\dp\strutbox
+ {\setbox\b_strut_box\hbox{#1}% no \hpack, in case we have smallcaps
+ \strutht\ht\b_strut_box
+ \strutdp\dp\b_strut_box
\dosetstrut}
\permanent\protected\def\settightstrut
@@ -896,13 +921,17 @@
\permanent\protected\def\charhtstrut
{\begingroup
\setcharstrut{GJY}%
- \vrule\s!width\zeropoint\s!depth\zeropoint\s!height\strutht
+ \normalsrule
+ \s!depth \zeropoint
+ \s!height\strutht
\endgroup}
\permanent\protected\def\chardpstrut
{\begingroup
\setcharstrut{gjy}%
- \vrule\s!width\zeropoint\s!depth\strutdp\s!height\zeropoint
+ \normalsrule
+ \s!depth \strutdp
+ \s!height\zeropoint
\endgroup}
%D Because of all the callbacks in mkiv, we avoid unnecessary boxes ... maybe use an
@@ -912,143 +941,82 @@
\permanent\protected\def\dosetstrut
{\enforced\let\strut\normalstrut
- \ifabsnum\dimexpr\strutht+\strutdp-\lineheight\relax<\plustwo
+ \struthtdp\dimexpr\strutht+\strutdp\relax
+ \ifabsnum\dimexpr\struthtdp-\lineheight\relax<\plustwo
% compensate rounding error /- 1sp to avoid too many
% 1sp baselineskips in for instance verbatim
% \strutht\dimexpr\lineheight-\strutdp\relax
% better:
\strutdp\dimexpr\lineheight-\strutht\relax
- \struttotal\lineheight
- \else
- \struttotal\dimexpr\strutht+\strutdp\relax
+ \struthtdp\lineheight
\fi
\strutheight\strutht
\strutdepth \strutdp
- \ifdim\strutwidth=\zeropoint
- \spac_struts_set_hide
- \else
- \spac_struts_set_vide
- \fi}
-
-\def\spac_struts_set_hide
- {\setbox\strutbox\hpack
- {\vrule
- \s!width \zeropoint
- \s!height\strutht
- \s!depth \strutdp}}
+ \struttotal \struthtdp}
\newconstant\c_strut_visual_mode
-\def\spac_struts_set_vide
- {\setbox\strutbox\hpack % at some time this extra wrapping was needed
- {\spac_struts_vide_hbox to \zeropoint
- {\ifcase\c_strut_visual_mode
- \spac_struts_black
- \or
- \spac_struts_color
- \else
- \spac_struts_black
- \fi}}}
-
-\def\spac_struts_black
- {\vrule
- \s!width \strutwidth
- \s!height\strutht
- \s!depth \strutdp
- \hss}
-
-\def\spac_struts_color
- {\hss % new, will be option
- \scratchwidth.1\struthtdp
- \begingroup
- \directcolor[f:b:t]%
- \vrule
- \s!width \scratchwidth
- \s!height\strutht
- \s!depth \strutdp
- \kern-\scratchwidth
- \vrule
- \s!width \scratchwidth
- \s!height\zeropoint
- \s!depth \strutdp
- \endgroup
- \kern-.625\scratchwidth
- \vrule
- \s!width .25\scratchwidth
- \s!height\strutht
- \s!depth \strutdp
- \hss}
-
-\let\spac_struts_vide_hbox\hbox % overloaded in trac-vis.mkiv
-
%D The dimen \type {\struttotal} holds the exact size of the strut; occasionally a
%D one scaled point difference can show up with the lineheight. This is more
%D efficient (less callbacks):
-\newbox\b_spac_struts_empty \setbox\b_spac_struts_empty\emptyhbox
-
-\def\spac_struts_set_hide
- {\setbox\strutbox\copy\b_spac_struts_empty
- \ht\strutbox\strutht
- \dp\strutbox\strutdp}
-
\permanent\protected\def\strut % still callbacks for \hbox{\strut}
{\relax
\dontleavehmode
- \copy\strutbox}
-
-% \protected\def\strut % slightly faster
-% {\relax
-% \ifmmode\copy\else\dontleavehmode\unhcopy\fi\strutbox}
+ \normalsrule
+ \s!height\strutht
+ \s!depth \strutdp
+ \relax}
\aliased\let\normalstrut\strut
\permanent\protected\def\halfstrut
{\relax
\dontleavehmode
- \begingroup
- \setbox\scratchbox\copy\strutbox
- \ht\scratchbox\dimexpr\strutht/\plustwo\relax
- \dp\scratchbox\dimexpr\strutdp/\plustwo\relax
- \box\scratchbox
- \endgroup}
+ \normalsrule
+ \s!height.5\strutht
+ \s!depth .5\strutdp
+ \relax}
\permanent\protected\def\quarterstrut
{\relax
\dontleavehmode
- \begingroup
- \setbox\scratchbox\copy\strutbox
- \ht\scratchbox\dimexpr\strutht/\plusfour\relax
- \dp\scratchbox\dimexpr\strutdp/\plusfour\relax
- \box\scratchbox
- \endgroup}
+ \normalsrule
+ \s!height.25\strutht
+ \s!depth .25\strutdp
+ \relax}
\permanent\protected\def\depthstrut
{\relax
\dontleavehmode
- \begingroup
- \setbox\scratchbox\copy\strutbox
- \ht\scratchbox\dimexpr\strutht-\struthtdp/\plustwo\relax % assumes that ht > lineheight/2
- \box\scratchbox
- \endgroup}
+ \normalsrule
+ \s!height\dimexpr\strutht-\struthtdp/\plustwo\relax
+ \s!depth \strutdp
+ \relax}
\permanent\protected\def\halflinestrut
{\relax
\dontleavehmode
- \begingroup
- \setbox\scratchbox\copy\strutbox
- \ht\scratchbox\dimexpr\strutht-.5\strutht-.5\strutdp\relax
- \box\scratchbox
- \endgroup}
+ \normalsrule
+ \s!height\dimexpr\strutht-.5\struthtdp\relax
+ \s!depth \strutdp
+ \relax}
\permanent\protected\def\noheightstrut
{\relax
\dontleavehmode
- \begingroup
- \setbox\scratchbox\copy\strutbox
- \ht\scratchbox\zeropoint
- \box\scratchbox
- \endgroup}
+ \normalsrule
+ \s!height\zeropoint
+ \s!depth \strutdp
+ \relax}
+
+\permanent\protected\def\nodepthstrut
+ {\relax
+ \dontleavehmode
+ \normalsrule
+ \s!height\strutht
+ \s!depth \zeropoint
+ \relax}
%D Sometimes a capstrut comes in handy
%D
@@ -1088,32 +1056,16 @@
\fi}
\permanent\protected\def\showstruts % adapts .. is wrong
- {\c_strut_visual_mode\zerocount
- \setteststrut
- \settestcrlf}
-
-\permanent\protected\def\showcolorstruts % adapts .. is wrong
- {\c_strut_visual_mode\plusone
- \setteststrut
+ {\showmakeup[strut]%
\settestcrlf}
-\permanent\protected\def\setteststrut
- {\strutwidth.8\onepoint
- \setstrut}
-
-\permanent\protected\def\dontshowstruts
- {\unsetteststrut
- \settestcrlf}
-
-\permanent\protected\def\unsetteststrut
- {\strutwidth\zeropoint
- \setstrut}
+\aliased\let\showcolorstruts\showstruts
\mutable\def\autostrutfactor{1.1}
\permanent\protected\def\setautostrut
{\begingroup
- \setbox\scratchbox\copy\strutbox
+ \setbox\scratchbox\copy\b_strut_box
\setstrut
\ifdim\strutht>\autostrutfactor\ht\scratchbox
\endgroup \setstrut
@@ -1131,10 +1083,10 @@
{\the\everysetnostrut}
\appendtoks
- \setbox\strutbox\copy\nostrutbox
- \enforced\let\strut \empty
- \enforced\let\endstrut\empty
- \enforced\let\begstrut\empty
+ % \setbox\strutbox\copy\nostrutbox
+ \enforced\lettonothing\strut
+ \enforced\lettonothing\endstrut
+ \enforced\lettonothing\begstrut
\to \everysetnostrut
%D When enabled, sigstruts will remove themselves if nothing goes inbetween. For
@@ -1144,30 +1096,25 @@
\permanent\protected\def\rightboundary {\protrusionboundary\plustwo}
\permanent\protected\def\signalcharacter{\boundary\plusone\char\zerocount\boundary\plustwo} % not the same as strut signals
-\newsignal\d_spac_struts_signal \setfalse\sigstruts
+%D \starttyping
+%D $ \ifhmode H1\fi x \ifhmode H2\fi $\par
+%D $ \ifmmode M1\fi x \ifmmode M2\fi $\par
+%D $$\ifvmode H1\fi x \ifvmode H2\fi$$\par
+%D $$\ifvmode M1\fi x \ifvmode M2\fi$$\par
+%D \stoptyping
\permanent\protected\def\begstrut
- {\relax\ifcase\strutht
- % \ignorespaces % maybe
- \else
- \spac_struts_beg
- \fi}
-
-\def\spac_struts_beg
- {\ifconditional\sigstruts
- \spac_struts_beg_signal
+ {\ifmmode
+ \strut
\else
- \spac_struts_beg_normal
+ \dontleavehmode
+ \ifcase\struthtdp\else
+ \spac_struts_beg
+ \fi
\fi
\ignorespaces}
-\def\spac_struts_beg_signal
- {\noindent\horizontalstrut
- \penalty\plustenthousand
- \hskip-\d_spac_struts_signal
- \hskip\d_spac_struts_signal}
-
-\def\spac_struts_beg_normal
+\def\spac_struts_beg
{\boundary\plusone
\strut
%\boundary\plusone
@@ -1176,36 +1123,22 @@
\hskip\zeropoint}
\permanent\protected\def\endstrut
- {\relax\ifhmode
- \ifcase\strutht
- % \removeunwantedspaces % maybe
- \else
+ {% \ifmmode M\fi
+ % \ifinner I\fi
+ \relax\ifhmode
+ %\removeunwantedspaces
+ \spac_helpers_remove_unwantedspace
+ \ifcase\struthtdp\else
\spac_struts_end
\fi
- \fi}
-
-\def\spac_struts_end
- {\ifconditional\sigstruts
- \spac_struts_end_signal
- \else
- \spac_struts_end_normal
- \fi}
-
-\def\spac_struts_end_signal
- {\ifdim\lastskip=\d_spac_struts_signal
- \unskip
- \unskip
- \unpenalty
- \setbox\scratchbox\lastbox
- \else
- \penalty\plustenthousand
- \hskip\zeropoint
+ \orelse\ifmmode
+ %\removeunwantedspaces hmode only anyway
+ \spac_helpers_remove_unwantedspace
\strut
\fi}
-\def\spac_struts_end_normal
- {\removeunwantedspaces
- \penalty\plustenthousand
+\def\spac_struts_end
+ {\penalty\plustenthousand
%\boundary\plustwo
\hskip\zeropoint
%\boundary\plustwo
@@ -1263,15 +1196,15 @@
\pushoverloadmode
-\overloaded\permanent\protected\def\offinterlineskip
- {\baselineskip-\thousandpoint
+\overloaded\permanent\protected\def\offinterlineskip % later we will overload this with a push pop
+ {\baselineskip \ignoredepthcriterium % -\thousandpoint
\lineskip \zeropoint
\lineskiplimit\maxdimen
% We also need this here now; thanks to taco for figuring that out!
\let\minimumlinedistance\zeropoint}
\overloaded\permanent\protected\def\nointerlineskip
- {\prevdepth-\thousandpoint}
+ {\prevdepth\ignoredepthcriterium}% -\thousandpoint
\aliased\let\normaloffinterlineskip\offinterlineskip % knuth's original
@@ -1346,6 +1279,13 @@
\frozen#1\numexpr#2+\plusone\relax\space\doexpandedrecurse{\the\numexpr#2\relax}{ #3}\zerocount\relax
\fi}
+% to be tested:
+%
+% \permanent\protected\def\setpenalties#1#2#3%
+% {\ifdefined#1% space before #3 prevents lookahead problems, needed when #3=text
+% \frozen#1\numexpr#2+\plusone\relax\space\expandedloop\plusone\numexpr#2\relax\plusone{ #3}\zerocount\relax
+% \fi}
+
%D \macros
%D {keeplinestogether}
%D
@@ -1354,12 +1294,12 @@
% just before margintexts ... will eventually be done differently in mkiv using
% attributes
-\newcount\c_spac_keep_lines_together
+\newinteger\c_spac_keep_lines_together
-\aliased\let\restoreinterlinepenalty\relax
+\permanent\protected\lettonothing\restoreinterlinepenalty
\protected\def\spac_penalties_restore
- {\global\enforced\let\restoreinterlinepenalty\relax
+ {\enforced\protected\glettonothing\restoreinterlinepenalty
\overloaded\global\resetpenalties\interlinepenalties
\global\c_spac_keep_lines_together\zerocount}
@@ -1401,6 +1341,7 @@
\resetpenalties\widowpenalties
\resetpenalties\clubpenalties
\resetpenalties\interlinepenalties
+ \resetpenalties\orphanpenalties
\stopsetups
%D We use \directsetup because it's faster and we know there is no csl:
@@ -1439,12 +1380,13 @@
\directsetup{\systemsetupsprefix\s!reset}
- \setpenalties \widowpenalties \plustwo \maxdimen
- \setpenalties \clubpenalties \plustwo \maxdimen
- \frozen \brokenpenalty \maxdimen
- \frozen \doublehyphendemerits \defaultdoublehyphendemerits
- \frozen \finalhyphendemerits \defaultfinalhyphendemerits
- \frozen \adjdemerits \defaultadjdemerits
+ \setpenalties \widowpenalties \plustwo \maxdimen
+ \setpenalties \clubpenalties \plustwo \maxdimen
+ \setpenalties \orphanpenalties \zerocount
+ \frozen \brokenpenalty \maxdimen
+ \frozen \doublehyphendemerits \defaultdoublehyphendemerits
+ \frozen \finalhyphendemerits \defaultfinalhyphendemerits
+ \frozen \adjdemerits \defaultadjdemerits
\stopsetups
@@ -1452,10 +1394,10 @@
%D To be checked:
-\newbox\b_spac_struts_saved
-
-\permanent\protected\def\savestrut {\setbox\b_spac_struts_saved\copy\strutbox}
-\permanent\protected\def\savedstrut{\copy \b_spac_struts_saved}
+% \newbox\b_spac_struts_saved
+%
+% \permanent\protected\def\savestrut {\setbox\b_spac_struts_saved\copy\b_strut_box}
+% \permanent\protected\def\savedstrut{\copy \b_spac_struts_saved}
%D Good old blank redone:
@@ -1473,13 +1415,13 @@
\installcorenamespace{gridsnapperattributes}
\installcorenamespace{gridsnappersets}
-\newskip \bodyfontlineheight
-\newdimen \bodyfontstrutheight
-\newdimen \bodyfontstrutdepth
+% \newgluespec \bodyfontlineheight % see top
+% \newdimension\bodyfontstrutheight % see top
+% \newdimension\bodyfontstrutdepth % see top
-\newskip \globalbodyfontlineheight % why a skip
-\newdimen \globalbodyfontstrutheight
-\newdimen \globalbodyfontstrutdepth
+% \newgluespec \globalbodyfontlineheight % see top
+% \newdimension\globalbodyfontstrutheight % see top
+% \newdimension\globalbodyfontstrutdepth % see top
\permanent\def\snappedvboxattribute{\ifgridsnapping attr\snapvboxattribute\c_attr_snapmethod\fi}
\permanent\def\setlocalgridsnapping{\ifgridsnapping \c_attr_snapvbox \c_attr_snapmethod\fi}
@@ -1497,7 +1439,7 @@
\ifcsname\??gridsnappersets#1\endcsname\lastnamedcs\else#1\fi}}
\permanent\protected\def\installsnapvalues#1#2%
- {\let\m_spac_snapper\empty
+ {\lettonothing\m_spac_snapper
\rawprocesscommacommand[#2]\spac_grids_expand_snapper
\edef\p_spac_snapper{#1:\m_spac_snapper}%
\ifcsname\??gridsnapperattributes\p_spac_snapper\endcsname
@@ -1633,6 +1575,18 @@
\synchronizelocallinespecs
\to \everysetuplocalinterlinespace
+%D More might be added here:
+
+\def\restoreglobalinterlinespace
+ {\mutable\let\normallineheight\globalbodyfontlineheight
+ \bodyfontlineheight \globalbodyfontlineheight
+ \bodyfontstrutheight\globalbodyfontstrutheight
+ \bodyfontstrutdepth \globalbodyfontstrutdepth}
+
+% \appendtoks
+% \restoreglobalinterlinespace % done elsewhere
+% \to \everybeforepagebody
+
%D We still have to synchronize these:
\permanent\protected\def\synchronizeskipamounts
@@ -1641,8 +1595,8 @@
\s!plus\skipgluefactor\baselineskip
\s!minus\skipgluefactor\baselineskip
\relax
- \medskipamount \bigskipamount \divide\medskipamount \plustwo
- \smallskipamount\bigskipamount \divide\smallskipamount\plusfour}
+ \medskipamount \bigskipamount \divideby\medskipamount \plustwo
+ \smallskipamount\bigskipamount \divideby\smallskipamount\plusfour}
%D Snapping.
@@ -1705,14 +1659,15 @@
\permanent\protected\def\setupgridsnapping[#1]% less overhead than setuplayout (needs testing)
{\setlayoutparameter\c!grid{#1}\synchronizegridsnapping}
-\mutable\let\checkedgridmethod\empty % these can become private
-\mutable\let\checkedgridscope \v!local % these can become private
+\mutable\lettonothing\checkedgridmethod % this can become private
+
+\mutable\let\checkedgridscope\v!local % this can become private
\permanent\protected\def\checkgridmethod#1%
{\edef\p_grid{#1}%
\ifempty\p_grid
- \let\checkedgridmethod\empty
- \let\checkedgridscope \v!local
+ \lettonothing\checkedgridmethod
+ \let\checkedgridscope\v!local
\else
\splitatcolon\p_grid\checkedgridscope\checkedgridmethod
\ifempty\checkedgridmethod
@@ -1908,7 +1863,7 @@
{\c_attr_skipcategory\pluseleven}
%permanent\def\vspacingfromscratchtoks {\scratchdimen\dimexpr\csname\??vspacingamount\the\scratchtoks\endcsname\relax}
-\permanent\def\vspacingpredefinedvalue#1{\scratchskip\glueexpr\csname\??vspacingamount#1\endcsname\relax}
+\permanent\def\vspacingpredefinedvalue#1{\s_spac_vspacing_predefined\glueexpr\csname\??vspacingamount#1\endcsname\relax}
%permanent\def\vspacingfromtempstring {\scratchdimen\dimexpr\csname\??vspacingamount\tempstring\endcsname\relax}
% \installcorenamespace{vspacingamountnormal}
@@ -1928,33 +1883,33 @@
%D The injector code (generated at the \LUA\ end). This will go away!
-\newtoks\everybeforeblankhandling
-\newtoks\everyafterblankhandling
-
-\newconditional\c_space_vspacing_done
-\newconditional\c_space_vspacing_fixed
-\newconditional\c_space_ignore_parskip
-
-\appendtoks
- \s_spac_vspacing_temp\zeropoint
- \c_attr_skipcategory\plusone
- \c_attr_skippenalty \attributeunsetvalue
- \c_attr_skiporder \attributeunsetvalue
- \ifgridsnapping
- \settrue\c_space_vspacing_fixed
- \else
- \setfalse\c_space_vspacing_fixed
- \fi
-\to \everybeforeblankhandling
-
-\appendtoks
- \s_spac_vspacing_temp\plusone\s_spac_vspacing_temp
- \ifconditional\c_space_vspacing_fixed \else
- \s!plus \skipgluefactor\s_spac_vspacing_temp
- \s!minus\skipgluefactor\s_spac_vspacing_temp
- \fi
- \relax
-\to \everyafterblankhandling
+% \newtoks\everybeforeblankhandling
+% \newtoks\everyafterblankhandling
+%
+% \newconditional\c_space_vspacing_done
+% \newconditional\c_space_vspacing_fixed
+% \newconditional\c_space_ignore_parskip
+%
+% \appendtoks
+% \s_spac_vspacing_temp\zeropoint
+% \c_attr_skipcategory\plusone
+% \c_attr_skippenalty \attributeunsetvalue
+% \c_attr_skiporder \attributeunsetvalue
+% \ifgridsnapping
+% \settrue\c_space_vspacing_fixed
+% \else
+% \setfalse\c_space_vspacing_fixed
+% \fi
+% \to \everybeforeblankhandling
+%
+% \appendtoks
+% \s_spac_vspacing_temp\plusone\s_spac_vspacing_temp
+% \ifconditional\c_space_vspacing_fixed \else
+% \s!plus \skipgluefactor\s_spac_vspacing_temp
+% \s!minus\skipgluefactor\s_spac_vspacing_temp
+% \fi
+% \relax
+% \to \everyafterblankhandling
% The main spacer:
@@ -2067,8 +2022,6 @@
%D used in itemize \unknown\ always test this:
-\newdimen\d_spac_overlay
-
\def\spac_overlay_lines
{\directcheckedvspacing{\v!back,\v!overlay}% \blank[\v!back,\v!overlay]%
\nointerlineskip}
@@ -2112,9 +2065,9 @@
\definevspacing[\s!default] [\v!white] % was big for a while
-\newcount\c_spac_vspacing_special_base \c_spac_vspacing_special_base = 32250 % 4000
-\newcount\c_spac_vspacing_special_step \c_spac_vspacing_special_step = 10 % 250
-\newcount\c_spac_vspacing_special_done
+\newinteger\c_spac_vspacing_special_base \c_spac_vspacing_special_base = 32250 % 4000
+\newinteger\c_spac_vspacing_special_step \c_spac_vspacing_special_step = 10 % 250
+\newinteger\c_spac_vspacing_special_done
% 2019-05-31 : upgraded a bit to more distinctive samepage-[level]-[0|1|2] names
@@ -2190,10 +2143,10 @@
\defcsname\??vspace#1:#2\endcsname{#3}%
\fi}
-\letvalue{\??vspace:\s!unknown}\zeropoint
+\letcsname\??vspace:\s!unknown\endcsname\zeropoint
\def\spac_vspace_unknown
- {\csname\??vspace:\s!unknown\endcsname}
+ {\csname\??vspace:\s!unknown\endcsname} % why not a let?
\permanent\tolerant\protected\def\vspace[#1]#*[#2]%
{\par
@@ -2235,12 +2188,12 @@
\c!location=\v!left,
\c!n=\zerocount]
-\let\m_spac_hanging_location\empty
+\lettonothing\m_spac_hanging_location
\permanent\tolerant\protected\def\starthanging[#1]%
{\dontleavehmode\bgroup
\ifhastok={#1}%
- \let\m_spac_hanging_location\empty
+ \lettonothing\m_spac_hanging_location
\setupcurrenthanging[#1]%
\else
\edef\m_spac_hanging_location{#1}%
@@ -2303,7 +2256,7 @@
\installcorenamespace{fixedalternatives}
-\aliased\let\stopfixed\relax
+\permanent\protected\lettonothing\stopfixed
\permanent\protected\def\startfixed
{\bgroup
@@ -2385,7 +2338,7 @@
% \prerollblank[2*line] \the\prerolledblank
% \prerollblank[-2*line] \the\prerolledblank
-\newskip\prerolledblank
+\newgluespec\prerolledblank
\permanent\protected\def\prerollblank[#1]%
{\begingroup
@@ -2402,13 +2355,11 @@
\kern\zeropoint
\blank[\p_blank]}%
% \dimexpr doesn't work well with skips
- \advance\scratchskip-\ht\scratchbox
+ \advanceby\scratchskip-\ht\scratchbox
\global\prerolledblank-\scratchskip
\fi
\endgroup}
-\newcount\c_spac_vspacing_ignore_parskip
-
% \setupwhitespace[line]
% \setuphead[subject][after={\blank[packed]},style=\bfb]
% \subject{foo}
@@ -2427,4 +2378,91 @@
\permanent\protected\def\ignoreparskip{\c_spac_vspacing_ignore_parskip\plusone}
+%D New, use with care:
+%D
+%D \starttyping
+%D test test test \hfill\break
+%D test \blankbefore test
+%D test \blankbefore[2*line] test
+%D test \blankbefore test
+%D test test test \hfill\break
+%D test \blankbefore test
+%D test \blankbefore test
+%D test \blankbefore test
+%D test test test \hfill\break
+%D test \blankafter test
+%D test \blankafter test
+%D test \blankafter test
+%D test test test \hfill\break
+%D test test test \hfill\break
+%D \stoptyping
+
+\permanent\tolerant\protected\def\blankbefore[#1]{\vadjust pre {\ifcstok{#1}\emptytoks\blank\else\blank[#1]\fi}}
+\permanent\tolerant\protected\def\blankafter [#1]{\vadjust post{\ifcstok{#1}\emptytoks\blank\else\blank[#1]\fi}}
+
+%D Experimental:
+
+\installcorenamespace{textdisplay}
+
+\installcommandhandler \??textdisplay {textdisplay} \??textdisplay
+
+\appendtoks
+ \frozen\protected\edefcsname\e!start\currenttextdisplay\endcsname{\spac_textdisplay_start{\currenttextdisplay}}%
+ \frozen\protected\edefcsname\e!stop \currenttextdisplay\endcsname{\spac_textdisplay_stop}%
+\to \everydefinetextdisplay
+
+\setuptextdisplay
+ [\c!factor=.5,
+ \c!after=\textdisplayparameter\c!before]
+
+\tolerant\protected\def\spac_textdisplay_start#1#:[#2]%
+ {\par
+ \begingroup
+ \whitespace
+ \forgetall
+ \edef\currenttextdisplay{#1}%
+ \setupcurrenttextdisplay[#2]%
+ \textdisplayparameter\c!before
+ \dpack
+ \bgroup
+ \strut
+ \vskip-\lineheight
+ \vpack
+ \s!yoffset -\textdisplayparameter\c!factor\strutdp
+ \bgroup}
+
+\protected\def\spac_textdisplay_stop
+ {\egroup
+ \vskip-\lineheight
+ \strut
+ \egroup
+ \textdisplayparameter\c!after
+ \endgroup
+ \par}
+
+\definetextdisplay[\v!textdisplay]
+
+% \useMPlibrary[dum]
+%
+% \definetextdisplay[steppedbystep][before={\blank[halfline]}]
+%
+% \starttext \showmakeup[line]
+% \dostepwiserecurse{10}{25}{1}{
+% xxxxxxxxxxxxxxxx\par
+% \starttextdisplay
+% \externalfigure[dummydummy][height=#1mm,text=no]%
+% \stoptextdisplay
+% xxxxxxxxxxxxxxxx\par
+% \starttextdisplay[before=\blank,after=\blank] % factor=.5
+% \externalfigure[dummydummy][height=#1mm,text=no]%
+% \stoptextdisplay
+% xxxxxxxxxxxxxxxx\par
+% \startsteppedbystep
+% \externalfigure[dummydummy][height=#1mm,text=no]%
+% \stopsteppedbystep
+% xxxxxxxxxxxxxxxx\par
+% \page
+% }
+% \stoptext
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-bkm.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-bkm.mkxl
index c5bd8732421..8e5e7e4b113 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-bkm.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-bkm.mkxl
@@ -90,8 +90,8 @@
\expandafter\gobblethreeoptionals
\fi}
-\let\m_bookmarks_names \empty
-\let\m_bookmarks_opened\empty
+\lettonothing\m_bookmarks_names
+\lettonothing\m_bookmarks_opened
\tolerant\def\strc_bookmarks_place_yes[#1]#*[#2]#*[#3]%
{\begingroup
@@ -104,7 +104,7 @@
\let\m_bookmarks_names\v!all
\fi
\ifparameters\or\or
- \doifelseassignment{#2}{\let\m_bookmarks_opened\empty\setupcurrentbookmark[#2]}\donothing
+ \doifelseassignment{#2}{\lettonothing\m_bookmarks_opened\setupcurrentbookmark[#2]}\donothing
\or
\setupcurrentbookmark[#3]% no every so not all possible
\fi
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-blk.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-blk.mkxl
index 4cfbd51eb58..c8173953051 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-blk.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-blk.mkxl
@@ -34,8 +34,8 @@
\appendtoks
\clf_definestructureblock{\currentblock}%
- \frozen\setuevalue{\e!begin\currentblock}{\strc_blocks_begin{\currentblock}}%
- \frozen\letvalue {\e!end \currentblock}\donothing
+ \frozen\protected\edefcsname\e!begin\currentblock\endcsname{\strc_blocks_begin{\currentblock}}%
+ \frozen \letcsname \e!end \currentblock\endcsname\donothing
\to \everydefineblock
% We need to prevent too much lookahead which will gobble newlines that are needed
@@ -43,12 +43,12 @@
% maybe: systemmode "block:<name>"
-\let\m_block \empty
-\let\m_subblock\empty
+\lettonothing\m_block
+\lettonothing\m_subblock
\protected\def\strc_blocks_begin#1%
- {\edef\m_block {#1}%
- \let \m_subblock\empty
+ {\edef\m_block{#1}%
+ \lettonothing\m_subblock
\doifelsenextoptionalcs\strc_blocks_begin_yes\strc_blocks_begin_nop}
\protected\def\strc_blocks_begin_yes[#1]%
@@ -73,6 +73,30 @@
{\clf_savestructureblock{\m_block}{\m_subblock}{#1}{\??block}}%
\plusone}
+% \tolerant\protected\def\strc_blocks_begin#1#*[#2]#*[#3]% #:#/% get rid of spaces and pars
+% {\edef\m_block{#1}%
+% \lettonothing\m_subblock
+% \ifhastok={#2}%
+% \expandafter\strc_blocks_begin_a % [settings]
+% \orelse\ifparameter#2\or
+% \expandafter\strc_blocks_begin_b % [tag] [settings]
+% \else
+% \expandafter\strc_blocks_begin_c %
+% \fi{#2}{#3}}% #4}
+%
+% \protected\def\strc_blocks_begin_a#1#2% settings dummy
+% {\normalexpanded{\buff_pickup{\??block}{\e!begin\m_block}{\e!end\m_block}}%
+% {}%
+% {\clf_savestructureblock{\m_block}{\m_subblock}{#1}{\??block}}%
+% \plusone}
+%
+% \protected\def\strc_blocks_begin_b#1#2% tag settings
+% {\edef\m_subblock{#1}%
+% \strc_blocks_begin_a{#2}{}}
+%
+% \protected\def\strc_blocks_begin_c#1#2%
+% {\strc_blocks_begin_a{}{}}
+
\let\strc_blocks_setup\relax
\newconstant \c_strc_blocks_index
@@ -145,11 +169,11 @@
\ifhastok={#3}%
\getparameters[\??blocktemp][\c!criterium=\v!text,#3]%
\def\strc_blocks_setup{\setupcurrentblock[#3]}%
- \clf_selectstructureblock{#1}{#2}{}{\csname\??blocktemp\c!criterium\endcsname}%
+ \clf_selectstructureblock{#1}{#2}{}{\begincsname\??blocktemp\c!criterium\endcsname}%
\else
\getparameters[\??blocktemp][\c!criterium=\v!text,#4]%
\def\strc_blocks_setup{\setupcurrentblock[#4]}%
- \clf_selectstructureblock{#1}{#2}{#3}{\csname\??blocktemp\c!criterium\endcsname}%
+ \clf_selectstructureblock{#1}{#2}{#3}{\begincsname\??blocktemp\c!criterium\endcsname}%
\fi
\endgroup}
@@ -168,4 +192,6 @@
\permanent\protected\def\processblocks{\strc_blocks_select [process]}
\permanent\protected\def\selectblocks {\strc_blocks_select [use]}
+\permanent\protected\def\doifelseblocksempty{\clf_doifelsestructureblocksempty} % {name}{tag}{criterium}
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-con.mklx b/Master/texmf-dist/tex/context/base/mkxl/strc-con.mklx
index 5e0ceb8338c..0f7750bfedb 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-con.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-con.mklx
@@ -105,63 +105,61 @@
%aliased\let\currentconstructionhash \??construction
-\mutable\let\currentconstructionmain \empty
-\mutable\let\currentconstructionlevel \empty
-\mutable\let\currentconstructionhandler \empty
-
-\mutable\let\currentconstructionattribute \empty
-\mutable\let\currentconstructionbookmark \empty
-\mutable\let\currentconstructioncatcodes \empty
-\mutable\let\currentconstructioncoding \empty
-\mutable\let\currentconstructionexpansion \empty
-\mutable\let\currentconstructionincrementnumber\empty
-\mutable\let\currentconstructionlabel \empty
-\mutable\let\currentconstructionlist \empty
-\mutable\let\currentconstructionlistentry \empty
-\mutable\let\currentconstructionlistnumber \empty
-\mutable\let\currentconstructionmarking \empty
-\mutable\let\currentconstructionnumber \empty
-\mutable\let\currentconstructionreference \empty
-\mutable\let\currentconstructionreferencetext \empty
-\mutable\let\currentconstructionreferenceprefix\empty
-\mutable\let\currentconstructionsynchronize \empty
-\mutable\let\currentconstructiontitle \empty
-\mutable\let\currentconstructionxmlsetup \empty
+\mutable\lettonothing\currentconstructionmain
+\mutable\lettonothing\currentconstructionlevel
+\mutable\lettonothing\currentconstructionhandler
+\mutable\lettonothing\currentconstructionattribute
+\mutable\lettonothing\currentconstructionbookmark
+\mutable\lettonothing\currentconstructioncatcodes
+\mutable\lettonothing\currentconstructioncoding
+\mutable\lettonothing\currentconstructionexpansion
+\mutable\lettonothing\currentconstructionincrementnumber
+\mutable\lettonothing\currentconstructionlabel
+\mutable\lettonothing\currentconstructionlist
+\mutable\lettonothing\currentconstructionlistentry
+\mutable\lettonothing\currentconstructionlistnumber
+\mutable\lettonothing\currentconstructionmarking
+\mutable\lettonothing\currentconstructionnumber
+\mutable\lettonothing\currentconstructionreference
+\mutable\lettonothing\currentconstructionreferencetext
+\mutable\lettonothing\currentconstructionreferenceprefix
+\mutable\lettonothing\currentconstructionsynchronize
+\mutable\lettonothing\currentconstructiontitle
+\mutable\lettonothing\currentconstructionxmlsetup
\settrue\c_strc_constructions_define_commands % use with care, might become a proper key
\appendtoks
\ifempty\currentconstructionparent
- \letvalue{\??constructionmain\currentconstruction}\currentconstruction
+ \letcsname\??constructionmain\currentconstruction\endcsname\currentconstruction
\definelist[\currentconstruction]% goodie
\else
- \letvalue{\??constructionmain\currentconstruction}\currentconstructionparent
+ \letcsname\??constructionmain\currentconstruction\endcsname\currentconstructionparent
\definelist[\currentconstruction][\currentconstructionparent]% goodie
\fi
- \setevalue{\??constructionlevel\currentconstruction}{\number\constructionparameter\c!level}%
- \setevalue{\??constructionclass\currentconstruction}{\constructionparameter\s!handler}%
+ \edefcsname\??constructionlevel\currentconstruction\endcsname{\number\constructionparameter\c!level}%
+ \edefcsname\??constructionclass\currentconstruction\endcsname{\constructionparameter\s!handler}%
\to \everydefineconstruction
% todo: inhibit this when we have a different handle .. current we cannot do \frozen
\appendtoks
\ifconditional\c_strc_constructions_define_commands
- %% \instance\setuevalue{\e!start\currentconstruction}{\strc_constructions_start{\currentconstruction}}%
- \instance\setuevalue{\e!start\currentconstruction}{\strc_constructions_start[\currentconstruction]}%
- \instance\setuevalue{\e!stop \currentconstruction}{\strc_constructions_stop}%
+ \protected\instance\edefcsname\e!start\currentconstruction\endcsname{\startnamedconstruction[\currentconstruction]}%
+ \protected\instance \defcsname\e!stop \currentconstruction\endcsname{\stopnamedconstruction}%
\fi
\to \everydefineconstruction
%D Just a basic environment (mostly for testing). We will provide a 'setup' based
%D plugin once the rest is sorted out.
-\tolerant\protected\def\strc_constructions_start[#1]#*[#2]#*[#3]%
+\tolerant\permanent\protected\def\startnamedconstruction[#1]#*[#2]#*[#3]%
{\begingroup
\strc_constructions_initialize{#1}%
\strc_constructions_register[#3][\c!label={\constructionparameter\c!text},\c!reference=,\c!title=,\c!bookmark=,\c!list=,\c!referencetext=,#2]%
\csname\??constructionstarthandler\currentconstructionhandler\endcsname}
-\protected\def\strc_constructions_stop
+\permanent\protected\def\stopnamedconstruction
{\csname\??constructionstophandler\currentconstructionhandler\endcsname
\endgroup}
@@ -196,11 +194,11 @@
\newconditional\c_strc_constructions_number_state
\newconditional\c_strc_constructions_title_state
-\protected\setvalue{\??constructioninitializer\v!construction}%
+\protected\defcsname\??constructioninitializer\v!construction\endcsname
{\setfalse\c_strc_constructions_number_state
\setfalse\c_strc_constructions_title_state}
-\protected\setvalue{\??constructionfinalizer\v!construction}%
+\protected\defcsname\??constructionfinalizer\v!construction\endcsname
{}
%D We keep the command variant around but rather would move to the start-stop one.
@@ -261,7 +259,7 @@
\currentconstructiontext
\endgroup}
-\protected\setvalue{\??constructionmainhandler\v!construction}#1%
+\protected\defcsname\??constructionmainhandler\v!construction\endcsname#1%
{\iftrialtypesetting \else
\begingroup
\currentconstructionsynchronize % reinstated
@@ -270,7 +268,7 @@
\endgroup
\fi#1}
-\protected\setvalue{\??constructiontexthandler\v!construction}%
+\protected\defcsname\??constructiontexthandler\v!construction\endcsname
{\begingroup
\useconstructionstyleandcolor\c!headstyle\c!headcolor % move to \currentconstructiontext
\the\everyconstruction
@@ -294,20 +292,20 @@
% \def\resetconstructions % to be used in e.g. footnotes
% {\c_strc_constructions_nested_state\zerocount}
-\protected\setvalue{\??constructioncommandhandler\v!construction}%
+\protected\defcsname\??constructioncommandhandler\v!construction\endcsname
{\endgroup}
-\let\p_strc_constructions_sample \empty
-\let\p_strc_constructions_align \empty
-\let\p_strc_constructions_indenting \empty
-\let\p_strc_constructions_width \empty
-\let\p_strc_constructions_aligntitle \empty
-\let\p_strc_constructions_renderingsetup\empty
-\let\p_strc_constructions_headalign \empty
-\let\p_strc_constructions_hang \empty
-\let\p_strc_constructions_inbetween \empty
-\let\p_strc_constructions_closesymbol \empty
-\let\p_strc_constructions_distance \empty
+\lettonothing\p_strc_constructions_sample
+\lettonothing\p_strc_constructions_align
+\lettonothing\p_strc_constructions_indenting
+\lettonothing\p_strc_constructions_width
+\lettonothing\p_strc_constructions_aligntitle
+\lettonothing\p_strc_constructions_renderingsetup
+\lettonothing\p_strc_constructions_headalign
+\lettonothing\p_strc_constructions_hang
+\lettonothing\p_strc_constructions_inbetween
+\lettonothing\p_strc_constructions_closesymbol
+\lettonothing\p_strc_constructions_distance
\newconditional\c_strc_constructions_distance_none
@@ -331,7 +329,7 @@
% we also need to make sure that no stretch creeps in (new per 2015-02-02, for Alan)
\settrue\c_strc_constructions_distance_none}
-\protected\setvalue{\??constructionstarthandler\v!construction}% this will be redone (reorganized) .. too much boxing
+\protected\defcsname\??constructionstarthandler\v!construction\endcsname % this will be redone (reorganized) .. too much boxing
{\dostarttaggedchained\t!construction\currentconstruction\currentconstructionhash
% \dotagsetconstruction
\constructionparameter\c!before
@@ -400,8 +398,12 @@
%
\dostarttagged\t!constructiontag\empty % todo
\setbox\constructionheadbox\hbox
- {\forgetall
+ {\scratchskip\parindent
+ \forgetall
\dontcomplain
+ % new and under testing
+ \doif{\constructionparameter\c!headindenting}\v!yes{\hskip\scratchskip}%
+ %
\ifx\currentconstructionalternative\v!serried % brrr, hack, will change
\csname\??constructionmainhandler\currentconstructionhandler\endcsname\currentconstructiontext
\else
@@ -411,11 +413,9 @@
\ifx\p_strc_constructions_aligntitle\v!no
\leftconstructionskip \leftskip
\rightconstructionskip\rightskip
- \else
- \ifcase\c_strc_constructions_nested_state
- \leftconstructionskip \leftskip
- \rightconstructionskip\rightskip
- \fi
+ \orelse\ifcase\c_strc_constructions_nested_state
+ \leftconstructionskip \leftskip
+ \rightconstructionskip\rightskip
\fi
\edef\p_strc_constructions_align{\constructionparameter\c!align}%
\ifempty\p_strc_constructions_align \else
@@ -443,7 +443,7 @@
\updateparagraphshapes
\ignorespaces} % args not needed
-\protected\setvalue{\??constructionstophandler\v!construction}%
+\protected\defcsname\??constructionstophandler\v!construction\endcsname
{\strc_constructions_close_symbol_place
\doifnot{\constructionparameter\c!display}\v!no\par
\dostoptagged % content
@@ -552,11 +552,11 @@
[\c!renderingsetup=\??constructionrenderings:\v!label,
\c!width=]
-\newbox \constructionheadbox
-\newskip \leftconstructionskip
-\newskip \rightconstructionskip
-\newdimen \constructionsheadwidth
-\newdimen \constructionsheaddistance
+\newbox \constructionheadbox
+\newgluespec \leftconstructionskip
+\newgluespec \rightconstructionskip
+\newdimension\constructionsheadwidth
+\newdimension\constructionsheaddistance
\def\strc_constructions_set_hang_box#1% messy left/rightskip
{\setbox\constructionheadbox\vtop % \vbox gaat fout in hang
@@ -569,7 +569,7 @@
\setupalign[\p_strc_constructions_headalign]% use fast one
\fi
\ifconditional\c_strc_constructions_distance_none \else
- \advance\ifx#1\v!flushleft\rightskip\else\leftskip\fi\constructionsheaddistance % only difference and wrong anyway
+ \advanceby\ifx#1\v!flushleft\rightskip\else\leftskip\fi\constructionsheaddistance % only difference and wrong anyway
\fi
\flushconstructionheadbox}%
\setbox\constructionheadbox\hpack{\box\constructionheadbox}% needed in case of e.g. a real big head font, see descriptions-006.tex
@@ -676,7 +676,7 @@
\hskip\rightconstructionskip
}
\nobreak
- \advance\rightskip \constructionsheaddistance
+ \advanceby\rightskip \constructionsheaddistance
\useconstructionstyleandcolor\c!style\c!color
\ignorespaces
\stopsetups
@@ -722,7 +722,7 @@
\startsetups[\??constructionrenderings:\v!left:\v!hanging]%
\enforced\let\\\crlf
\dontcomplain
- \advance\constructionsheadwidth \constructionsheaddistance
+ \advanceby\constructionsheadwidth \constructionsheaddistance
\strc_constructions_set_hang_box\v!flushleft
\strc_constructions_set_hang\v!left
\noindent
@@ -739,7 +739,7 @@
\startsetups[\??constructionrenderings:\v!right:\v!hanging]%
\enforced\let\\\crlf
\dontcomplain
- \advance\constructionsheadwidth \constructionsheaddistance
+ \advanceby\constructionsheadwidth \constructionsheaddistance
\strc_constructions_set_hang_box\v!flushright
\strc_constructions_set_hang\v!right
\noindent
@@ -883,7 +883,7 @@
% tricky: leftskipadaption is somewhat unpredictable
\enforced\let\\\crlf
\noindent
- \advance\leftskip-\leftskipadaption\relax
+ \advanceby\leftskip-\leftskipadaption\relax
\ifdim\leftskipadaption=\zeropoint
\leftskipadaption1.5\emwidth\relax % just some default
\ifnum\c_strc_constructions_nested_state=\plusone
@@ -893,7 +893,7 @@
\fi
\fi
\ifnum\c_strc_constructions_nested_state>\zerocount % was \ifnum\c_strc_constructions_nested_state=\plusone
- \advance\leftskip\leftskipadaption % but we're already further on
+ \advanceby\leftskip\leftskipadaption % but we're already further on
\fi
\hskip-\leftskipadaption\relax
\ifhbox\constructionheadbox \unhbox\else\box\fi\constructionheadbox
@@ -939,10 +939,6 @@
\endgroup
\stopsetups
-\ifcase\contextlmtxmode \else
- % just an empty check so that we can grep for contextlmtxmode in mkiv files
-\fi
-
% \definedescription[whatever][alternative=right:bottom]
%
% \startwhatever{just a small\\example}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-des.mklx b/Master/texmf-dist/tex/context/base/mkxl/strc-des.mklx
index b44593a3218..6c04c9ac163 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-des.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-des.mklx
@@ -58,6 +58,7 @@
%\s!catcodes=,
\c!title=\v!yes,
%\c!text=,
+ \c!define=\v!yes,
]
\appendtoks
@@ -67,14 +68,16 @@
\defineconstruction[\currentdescription][\s!handler=\v!description,\c!level=1]%
\fi
% We can combine these but in tracing (or errors) using a different caller is nicer.
- \frozen\instance\setuevalue {\currentdescription}{\strc_descriptions_command[\currentdescription]}%
- \frozen\instance\setuevalue{\e!start\currentdescription}{\strc_descriptions_start [\currentdescription]}%
- \frozen\instance\setuevalue{\e!stop \currentdescription}{\strc_descriptions_stop}%
+ \ifcstok{\descriptionparameter\c!define}\v!yes
+ \frozen\protected\instance\edefcsname \currentdescription\endcsname{\nameddescription[\currentdescription]}%
+ \frozen\protected\instance\edefcsname\e!start\currentdescription\endcsname{\startnameddescription[\currentdescription]}%
+ \frozen\protected\instance \defcsname \e!stop\currentdescription\endcsname{\stopnameddescription}%
+ \fi
\to \everydefinedescription
-\let\p_strc_constructions_title \empty
+\lettonothing\p_strc_constructions_title
-\protected\setvalue{\??constructioninitializer\v!description}%
+\protected\defcsname\??constructioninitializer\v!description\endcsname
{\let \currentdescription \currentconstruction
\enforced\let\constructionparameter \descriptionparameter
\enforced\let\constructionnamespace \??description
@@ -99,7 +102,7 @@
% A bit over the top, the optional title but mkii has it too.
-\tolerant\protected\def\strc_descriptions_start[#1]#*[#2]%
+\tolerant\permanent\protected\def\startnameddescription[#1]#*[#2]%
{\begingroup
\strc_constructions_initialize{#1}%
\ifhastok={#2}%
@@ -130,13 +133,13 @@
{\strc_constructions_register[][\c!label={\descriptionparameter\c!text},\c!reference={#1},\c!title=,\c!bookmark=,\c!list=,\c!referencetext=]%
\csname\??constructionstarthandler\currentconstructionhandler\endcsname}
-\protected\def\strc_descriptions_stop
+\permanent\protected\def\stopnameddescription
{\csname\??constructionstophandler\currentconstructionhandler\endcsname}
% \description [reference] text \par
% \description [reference] {title} text \par
-\tolerant\protected\def\strc_descriptions_command[#1]#*[#2]%
+\tolerant\permanent\protected\def\nameddescription[#1]#*[#2]%
{\begingroup
\strc_constructions_initialize{#1}%
\ifhastok={#2}%
@@ -165,16 +168,16 @@
\letcsname\??constructioncommandhandler\v!description\expandafter\endcsname\csname\??constructioncommandhandler\v!construction\endcsname
\letcsname\??constructiontexthandler \v!description\expandafter\endcsname\csname\??constructiontexthandler \v!construction\endcsname
-\protected\setvalue{\??constructioncommandhandler\v!description}%
+\protected\defcsname\??constructioncommandhandler\v!description\endcsname
{\dowithpar
{\csname\??constructionstarthandler\v!construction\endcsname}%
{\csname\??constructionstophandler \v!construction\endcsname\endgroup}}
-\protected\setvalue{\??constructionstarthandler\v!description}%
+\protected\defcsname\??constructionstarthandler\v!description\endcsname
{\dogotopar
{\csname\??constructionstarthandler\v!construction\endcsname}}
-\protected\setvalue{\??constructionstophandler\v!description}%
+\protected\defcsname\??constructionstophandler\v!description\endcsname
{\csname\??constructionstophandler\v!construction\endcsname
\endgroup}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-doc.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-doc.mkxl
index 50b71d9d2dc..11c96f9c149 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-doc.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-doc.mkxl
@@ -19,45 +19,45 @@
%D This will move:
-\mutable\let\currentstructureattribute \empty
-\mutable\let\currentstructurebackreference \empty
-\mutable\let\currentstructurebookmark \empty
-\mutable\let\currentstructurecatcodes \empty
-\mutable\let\currentstructurecoding \empty
-\mutable\let\currentstructurecoupling \empty
-\mutable\let\currentstructureexpansion \empty
-\mutable\let\currentstructureincrementnumber \empty
-\mutable\let\currentstructurelabel \empty
-\mutable\let\currentstructurelevel \empty
-\mutable\let\currentstructurelist \empty
-\mutable\let\currentstructurelistattribute \empty
-\mutable\let\currentstructuremarking \empty
-\mutable\let\currentstructurename \empty
-\mutable\let\currentstructureownnumber \empty
-\mutable\let\currentstructureplaceholder \empty
-\mutable\let\currentstructurereference \empty
-\mutable\let\currentstructurereferenceattribute \empty
-\mutable\let\currentstructurereferenceprefix \empty
-\mutable\let\currentstructuresaveinlist \empty
-\mutable\let\currentstructureshownumber \empty
-\mutable\let\currentstructuretitle \empty
-\mutable\let\currentstructurexmlsetup \empty
+\mutable\lettonothing\currentstructureattribute
+\mutable\lettonothing\currentstructurebackreference
+\mutable\lettonothing\currentstructurebookmark
+\mutable\lettonothing\currentstructurecatcodes
+\mutable\lettonothing\currentstructurecoding
+\mutable\lettonothing\currentstructurecoupling
+\mutable\lettonothing\currentstructureexpansion
+\mutable\lettonothing\currentstructureincrementnumber
+\mutable\lettonothing\currentstructurelabel
+\mutable\lettonothing\currentstructurelevel
+\mutable\lettonothing\currentstructurelist
+\mutable\lettonothing\currentstructurelistattribute
+\mutable\lettonothing\currentstructuremarking
+\mutable\lettonothing\currentstructurename
+\mutable\lettonothing\currentstructureownnumber
+\mutable\lettonothing\currentstructureplaceholder
+\mutable\lettonothing\currentstructurereference
+\mutable\lettonothing\currentstructurereferenceattribute
+\mutable\lettonothing\currentstructurereferenceprefix
+\mutable\lettonothing\currentstructuresaveinlist
+\mutable\lettonothing\currentstructureshownumber
+\mutable\lettonothing\currentstructuretitle
+\mutable\lettonothing\currentstructurexmlsetup
-\mutable\let\currentstructurecomponentattribute \empty
-\mutable\let\currentstructurecomponentbookmark \empty
-\mutable\let\currentstructurecomponentcatcodes \empty
-\mutable\let\currentstructurecomponentcoding \empty
-\mutable\let\currentstructurecomponentexpansion \empty
-\mutable\let\currentstructurecomponentlabel \empty
-\mutable\let\currentstructurecomponentlevel \empty
-\mutable\let\currentstructurecomponentlist \empty
-\mutable\let\currentstructurecomponentmarking \empty
-\mutable\let\currentstructurecomponentname \empty
-\mutable\let\currentstructurecomponentreference \empty
-\mutable\let\currentstructurecomponentreferenceprefix\empty
-\mutable\let\currentstructurecomponentsynchronize \empty
-\mutable\let\currentstructurecomponenttitle \empty
-\mutable\let\currentstructurecomponentxmlsetup \empty
+\mutable\lettonothing\currentstructurecomponentattribute
+\mutable\lettonothing\currentstructurecomponentbookmark
+\mutable\lettonothing\currentstructurecomponentcatcodes
+\mutable\lettonothing\currentstructurecomponentcoding
+\mutable\lettonothing\currentstructurecomponentexpansion
+\mutable\lettonothing\currentstructurecomponentlabel
+\mutable\lettonothing\currentstructurecomponentlevel
+\mutable\lettonothing\currentstructurecomponentlist
+\mutable\lettonothing\currentstructurecomponentmarking
+\mutable\lettonothing\currentstructurecomponentname
+\mutable\lettonothing\currentstructurecomponentreference
+\mutable\lettonothing\currentstructurecomponentreferenceprefix
+\mutable\lettonothing\currentstructurecomponentsynchronize
+\mutable\lettonothing\currentstructurecomponenttitle
+\mutable\lettonothing\currentstructurecomponentxmlsetup
\permanent\protected\def\setstructuresynchronization#1% todo: use ctxcontext
{\clf_setinternalreference
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-enu.mklx b/Master/texmf-dist/tex/context/base/mkxl/strc-enu.mklx
index 4bcdb6c4f32..d3cf165dec8 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-enu.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-enu.mklx
@@ -120,7 +120,8 @@
\c!number=\v!yes, % else description
\c!start=0,
\c!state=\v!start,
- \c!levels=4]
+ \c!levels=4,
+ \c!define=\v!yes]
% to be considered:
%
@@ -129,22 +130,26 @@
% with push/pop (also at definition time)
\protected\def\strc_define_commands_enumeration#tag#level#parent%
- {\doifelsenothing{#parent}
- {\normalexpanded{\defineconstruction[#tag][\s!handler=\v!enumeration,\c!level=#level]}%
- \setevalue{\??enumeration#tag:\s!parent}{\??enumeration}}%
- {\normalexpanded{\defineconstruction[#tag][#parent][\s!handler=\v!enumeration,\c!level=#level]}%
- \setevalue{\??enumeration#tag:\s!parent}{\??enumeration#parent}}%
- \frozen\instance\setuevalue{\e!next #tag}{\strc_enumerations_next {#tag}{\number#level}}% obsolete
- \frozen\instance\setuevalue{\c!reset#tag}{\strc_enumerations_reset {#tag}{\number#level}}% obsolete
- %frozen\instance\setuevalue{\c!set #tag}{\strc_enumerations_set {#tag}{\number#level}}% obsolete
- \frozen\instance\setuevalue {#tag}{\strc_enumerations_command[#tag]}% we could pass level here as well (faster)
- \frozen\instance\setuevalue{\e!start#tag}{\strc_enumerations_start [#tag]}% we could pass level here as well (faster)
- \frozen\instance\setuevalue{\e!stop #tag}{\strc_enumerations_stop }}
-
-\let\m_strc_enumeration_sub\empty
+ {\iftok{#parent}\emptytoks
+ \normalexpanded{\defineconstruction[#tag][\s!handler=\v!enumeration,\c!level=#level]}%
+ \edefcsname\??enumeration#tag:\s!parent\endcsname{\??enumeration}%
+ \else
+ \normalexpanded{\defineconstruction[#tag][#parent][\s!handler=\v!enumeration,\c!level=#level]}%
+ \edefcsname\??enumeration#tag:\s!parent\endcsname{\??enumeration#parent}%
+ \fi
+ \ifcstok{\enumerationparameter\c!define}\v!yes
+ \frozen\protected\instance\edefcsname\e!next #tag\endcsname{\strc_enumerations_next{#tag}{\number#level}}% obsolete
+ \frozen\protected\instance\edefcsname\c!reset#tag\endcsname{\strc_enumerations_reset{#tag}{\number#level}}% obsolete
+ %frozen\protected\instance\edefcsname\c!set #tag\endcsname{\strc_enumerations_set{#tag}{\number#level}}% obsolete
+ \frozen\protected\instance\edefcsname #tag\endcsname{\namedenumeration[#tag]}%
+ \frozen\protected\instance\edefcsname\e!start#tag\endcsname{\startnamedenumeration[#tag]}%
+ \frozen\protected\instance \defcsname\e!stop #tag\endcsname{\stopnamedenumeration}%
+ \fi}
+
+\lettonothing\m_strc_enumeration_sub
\appendtoks
- \let\m_strc_enumeration_sub\empty
+ \lettonothing\m_strc_enumeration_sub
\ifempty\currentenumerationparent
% clone => parent | subclone => clone | subsubclone => subclone
\strc_define_commands_enumeration
@@ -177,10 +182,10 @@
%\strc_enumerations_setup_counter\currentenumeration
\to \everydefineenumeration
-\let\p_strc_constructions_title \empty
-\let\p_strc_constructions_number\empty
+\lettonothing\p_strc_constructions_title
+\lettonothing\p_strc_constructions_number
-\protected\setvalue{\??constructioninitializer\v!enumeration}%
+\protected\defcsname\??constructioninitializer\v!enumeration\endcsname
{\let \currentenumeration \currentconstruction
\enforced\let\constructionparameter \enumerationparameter
\enforced\let\constructionnamespace \??enumeration
@@ -205,7 +210,7 @@
\setfalse\c_strc_constructions_title_state
\fi}
-\protected\setvalue{\??constructionfinalizer\v!enumeration}%
+\protected\defcsname\??constructionfinalizer\v!enumeration\endcsname
{\ifconditional\c_strc_constructions_number_state
\iftrialtypesetting
\strc_counters_restore\currentconstructionnumber
@@ -214,9 +219,9 @@
%D Interfaces:
-\let\strc_enumerations_command\strc_descriptions_command
-\let\strc_enumerations_start \strc_descriptions_start
-\let\strc_enumerations_stop \strc_descriptions_stop
+\let\namedenumeration \nameddescription
+\let\startnamedenumeration\startnameddescription
+\let\stopnamedenumeration \stopnameddescription
\protected\def\strc_enumerations_next {\strc_constructions_next_indeed \namedenumerationparameter} % #1#2
\protected\def\strc_enumerations_reset{\strc_constructions_reset_indeed\namedenumerationparameter} % #1#2
@@ -250,7 +255,7 @@
\letcsname\??constructionstarthandler \v!enumeration\expandafter\endcsname\csname\??constructionstarthandler \v!description\endcsname
\letcsname\??constructionstophandler \v!enumeration\expandafter\endcsname\csname\??constructionstophandler \v!description\endcsname
-\protected\setvalue{\??constructiontexthandler\v!enumeration}%
+\protected\defcsname\??constructiontexthandler\v!enumeration\endcsname
{\begingroup
\useconstructionstyleandcolor\c!headstyle\c!headcolor
\strc_enumerations_text
@@ -302,16 +307,22 @@
\endgroup}
\protected\def\strc_enumerations_inject_symbol % todo check
- {\constructionparameter\c!left
+ {\begingroup
+ \useconstructionstyleandcolor\c!numberstyle\c!numbercolor
+ \constructionparameter\c!left
\constructionparameter\c!symbol
- \constructionparameter\c!right}
+ \constructionparameter\c!right
+ \endgroup}
\protected\def\strc_enumerations_inject_number
- {\constructionparameter\c!left
+ {\begingroup
+ \useconstructionstyleandcolor\c!numberstyle\c!numbercolor
+ \constructionparameter\c!left
\constructionparameter\c!starter
\clf_savedlistprefixednumber{\currentconstructionmain}\currentconstructionlistentry\relax
\constructionparameter\c!stopper
- \constructionparameter\c!right}
+ \constructionparameter\c!right
+ \endgroup}
\protected\def\strc_enumerations_inject_text_and_number
{\constructionparameter\c!numbercommand
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-flt.mklx b/Master/texmf-dist/tex/context/base/mkxl/strc-flt.mklx
index 8f96701f5df..55b825fe1e9 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-flt.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-flt.mklx
@@ -1,5 +1,4 @@
%D \module
-%D \module
%D [ file=strc-flt,
%D version=2008.10.20,
%D title=\CONTEXT\ Structure Macros,
@@ -188,13 +187,13 @@
\d_page_floats_compress_distance\floatparameter\c!compressdistance\relax
\to \everysetupfloat
-\mutable\let\currentfloatattribute \empty
-\mutable\let\currentfloatcounter \empty
-\mutable\let\currentfloatgroup \empty
-\mutable\let\currentfloatnumber \empty
-\mutable\let\currentfloatsynchronize\empty
+\mutable\lettonothing\currentfloatattribute
+\mutable\lettonothing\currentfloatcounter
+\mutable\lettonothing\currentfloatgroup
+\mutable\lettonothing\currentfloatnumber
+\mutable\lettonothing\currentfloatsynchronize
-\let\m_strc_floats_previous_number \empty % we can also just push/pop
+\lettonothing\m_strc_floats_previous_number % we can also just push/pop
%D We need to do it again here:
@@ -263,17 +262,17 @@
\strc_floats_define_commands{#1}{#2}}
\def\strc_floats_define_commands#1#2%
- {\frozen\instance\setuevalue{\e!place\e!listof#2}{\strc_lists_place[#1]}% call will change
- \frozen\instance\setuevalue{\e!complete\e!listof#2}{\strc_lists_complete[#1][#2]}% call will change
- \frozen\instance\setuevalue{\e!place#1}{\placefloat[#1]}%
- \frozen\instance\setuevalue{\e!start\e!place#1}{\startplacefloat[#1]}%
- \frozen\instance\setuevalue{\e!stop\e!place#1}{\stopplacefloat}%
- \frozen\instance\setuevalue{\e!start#1\e!text}{\strc_floats_start_text[#1]}%
- \frozen\instance\setuevalue{\e!stop#1\e!text}{\strc_floats_stop_text}%
+ {\frozen\protected\instance\edefcsname\e!place \e!listof#2\endcsname{\strc_lists_place[#1]}% call will change
+ \frozen\protected\instance\edefcsname\e!complete\e!listof#2\endcsname{\strc_lists_complete[#1][#2]}% call will change
+ \frozen\protected\instance\edefcsname\e!place #1\endcsname{\placefloat[#1]}%
+ \frozen\protected\instance\edefcsname\e!start \e!place#1\endcsname{\startplacefloat[#1]}%
+ \frozen\protected\instance\edefcsname\e!stop \e!place#1\endcsname{\stopplacefloat}%
+ \frozen\protected\instance\edefcsname\e!start #1\e!text\endcsname{\strc_floats_start_text[#1]}%
+ \frozen\protected\instance\edefcsname\e!stop #1\e!text\endcsname{\strc_floats_stop_text}%
% these will become obsolete:
- \frozen\instance\setuevalue{\e!reserve#1}{\strc_floats_reserve[#1]}%
- \frozen\instance\setuevalue{\e!start\e!reserve#1\e!text}{\strc_floats_start_reserve_text[#1]}%
- \frozen\instance\setuevalue{\e!stop\e!reserve#1\e!text}{\strc_floats_stop_reserve_text}}
+ \frozen\instance\protected\edefcsname\e!reserve #1\endcsname{\strc_floats_reserve[#1]}%
+ \frozen\instance\protected\edefcsname\e!start\e!reserve#1\e!text\endcsname{\strc_floats_start_reserve_text[#1]}%
+ \frozen\instance\protected\edefcsname\e!stop \e!reserve#1\e!text\endcsname{\strc_floats_stop_reserve_text}}
%D Fallback float body:
@@ -324,12 +323,12 @@
%D Captions.
-\mutable\let\floatcaptionarrangement\empty
-\mutable\let\floatcaptionattribute \empty
-\mutable\let\floatcaptiondirectives \empty
-\mutable\let\floatcaptionlocation \empty
-\mutable\let\floatcaptionnumber \empty
-\mutable\let\floatcaptionsuffix \empty
+\mutable\lettonothing\floatcaptionarrangement
+\mutable\lettonothing\floatcaptionattribute
+\mutable\lettonothing\floatcaptiondirectives
+\mutable\lettonothing\floatcaptionlocation
+\mutable\lettonothing\floatcaptionnumber
+\mutable\lettonothing\floatcaptionsuffix
% For a while these were placeholders:
%
@@ -380,7 +379,12 @@
\setupcurrentfloatcaption[#settings]%
\edef\currentfloatcounter{\namedcounterparameter\currentfloat\s!name}%
\iftrialtypesetting\strc_counters_save\currentfloatcounter\fi
- \strc_counters_increment\currentfloatcounter
+ \doifelse{\floatcaptionparameter\c!number}\v!yes
+ {\global\nofloatnumberfalse}%
+ {\global\nofloatnumbertrue}%
+ \ifnofloatnumber\else
+ \strc_counters_increment\currentfloatcounter
+ \fi
\strc_counters_register_component
\s!float
\setupcurrentfloatcaption
@@ -392,7 +396,7 @@
[\s!name=\currentfloat,
\s!counter=\currentfloatcounter,%
\s!hascaption=\v!yes,%
- \s!hasnumber=\v!yes,%
+ \s!hasnumber=\ifnofloatnumber\v!no\else\v!yes\fi,%
\s!hastitle=\v!yes]%
[#userdata]%
\glet\m_strc_floats_previous_number\m_strc_counters_last_registered_index
@@ -410,12 +414,12 @@
\egroup
\fi}
-\newbox \b_strc_floats_caption
-\newbox \b_strc_floats_content
-\newdimen\d_strc_floats_caption_height
-\newdimen\d_strc_floats_caption_depth
+\newbox \b_strc_floats_caption
+\newbox \b_strc_floats_content
+\newdimension\d_strc_floats_caption_height
+\newdimension\d_strc_floats_caption_depth
-\let\m_strc_floats_last_caption_tag\empty
+\lettonothing\m_strc_floats_last_caption_tag
\def\strc_floats_make_complete_caption
{\doifsomething{\floatcaptionparameter\c!spacebefore}{\blank[\floatcaptionparameter\c!spacebefore]}%
@@ -523,10 +527,57 @@
\fi
\fi}
+\def\strc_floats_apply_caption_command
+ {\setbox\b_strc_floats_caption\hbox\bgroup
+ %\unless\ifcstok{\floatcaptionparameter\c!command}\emptytoks
+ \floatcaptionparameter\c!command{\box\b_strc_floats_caption}%
+ %\orunless\ifcstok{\floatcaptionparameter\c!deeptextcommand}\emptytoks
+ % \floatcaptionparameter\c!deeptextcommand{\unvbox\b_strc_floats_caption}%
+ %\else
+ % \box\b_strc_floats_caption
+ %\fi
+ \egroup}
+
+%D Some trickery (example by MS):
+%D
+%D \starttyping
+%D \defineframed
+%D [MyCaptionFramed]
+%D [align={lohi,flushleft},
+%D width=fit,
+%D frame=off,
+%D strut=no,
+%D topframe=on,
+%D loffset=1em,
+%D toffset=0.25\lineheight]
+%D
+%D \starttexdefinition protected MyCaption #1
+%D \MyCaptionFramed {
+%D % we ignore #1 as we want to unpack
+%D \unvbox\floatcaptionbox
+%D }
+%D \stoptexdefinition
+%D
+%D \definefloat[pagefloat][pagefloats][graphic]
+%D
+%D \setupfloat
+%D [pagefloat]
+%D [default={page,header,footer}]
+%D
+%D \setupcaption
+%D [pagefloat]
+%D [location={top,inner},
+%D align=inner,
+%D command=\MyCaption,
+%D spaceinbetween=nowhite]
+%D \stoptyping
+
+\permanent\protected\def\floatcaptionbox{\b_strc_floats_caption}
+
%D We can do this ...
%D
%D \starttyping
-%D \newcount\c_strc_floats_n
+%D \newinteger\c_strc_floats_n
%D
%D \definedataset[\s!float][\c!delay=\v!yes]
%D
@@ -536,7 +587,7 @@
%D {\setdataset[\s!float][\number\c_strc_floats_n][]}
%D
%D \def\strc_float_load_data % precedes save !
-%D {\global\advance\c_strc_floats_n\plusone
+%D {\global\advanceby\c_strc_floats_n\plusone
%D \xdef\strc_float_realpage{\datasetvariable\s!float{\number\c_strc_floats_n}\s!page}%
%D \ifempty\strc_float_realpage
%D \glet\strc_float_realpage\realpageno % \realfolio
@@ -547,7 +598,7 @@
\definepagestate[\s!float][\c!delay=\v!yes]
-\newcount\c_strc_floats_n
+\newinteger\c_strc_floats_n
\let\strc_float_realpage\realpageno
@@ -555,7 +606,7 @@
{\setpagestate[\s!float][\number\c_strc_floats_n]}
\def\strc_float_load_data % precedes save !
- {\global\advance\c_strc_floats_n\plusone
+ {\global\advanceby\c_strc_floats_n\plusone
\xdef\strc_float_realpage{\pagestaterealpage\s!float{\number\c_strc_floats_n}}%
\ifempty\strc_float_realpage
\glet\strc_float_realpage\realpageno % \realfolio
@@ -584,7 +635,7 @@
% before we're really dealing with the float. Some day I'll root out the global
% settings.
-\aliased\let\lastplacedfloat\empty
+\aliased\lettonothing\lastplacedfloat
\def\strc_floats_set_current_tag#tag%
{\edef\currentfloat{#tag}%
@@ -596,32 +647,33 @@
{\writestatus\m!floatblocks{unknown float type '\currentfloat'}%
\let\currentfloat\v!figure}% also a hack
\enforced\glet\lastplacedfloat\currentfloat
- \let\m_strc_floats_saved_userdata\empty
+ \lettonothing\m_strc_floats_saved_userdata
\let\currentfloatcaption\currentfloat}
-\mutable\let\askedfloatmethod \empty
-\mutable\let\askedfloatoptions\empty
+\mutable\lettonothing\askedfloatmethod
+\mutable\lettonothing\askedfloatoptions
\def\strc_floats_reset_variables
{\global\emptyfloatcaptionfalse
\global\nofloatcaptionfalse
\global\nofloatnumberfalse
- \glet\askedfloatmethod \empty
- \glet\askedfloatoptions\empty}
+ \glettonothing\askedfloatmethod
+ \glettonothing\askedfloatoptions}
% place
-\mutable\let\floatlabel \empty
-\mutable\let\floatcolumn \empty
-\mutable\let\floatrow \empty
-\mutable\let\floatlocation \empty
-\mutable\let\floatlocationmethod\empty
+\mutable\lettonothing\floatlabel
+\mutable\lettonothing\floatcolumn
+\mutable\lettonothing\floatrow
+\mutable\lettonothing\floatlocation
+\mutable\lettonothing\floatlocationmethod
+\mutable\lettonothing\floatlocationdefault
\def\strc_floats_analyze_location
{% more will be moved here
- \let\floatlabel \empty
- \let\floatcolumn\empty
- \let\floatrow \empty
+ \lettonothing\floatlabel
+ \lettonothing\floatcolumn
+ \lettonothing\floatrow
%
\edef\floatcaptionlocation{\floatcaptionparameter\c!location}%
%
@@ -640,9 +692,10 @@
{\strc_floats_set_current_tag{#tag}%
\strc_floats_reset_variables
\xdef\askedfloatoptions{#location}%
+ \edef\floatlocationdefault{\floatparameter\c!default}%
\edef\floatlocation{#location}%
\ifempty\floatlocation
- \edef\floatlocation{\floatparameter\c!default}% beware of a clash between alignment locations
+ \let\floatlocation\floatlocationdefault % beware of a clash between alignment locations
\fi
\ifintable
\the\c_floats_every_table_float
@@ -668,13 +721,17 @@
\installsetuponlycommandhandler \??floatuserdata {floatuserdata}
-\let\m_strc_floats_saved_userdata\empty % todo: reset this in non start|stop cases
+\lettonothing\m_strc_floats_saved_userdata % todo: reset this in non start|stop cases
%D We abuse the settings to pick up some float parameters too which makes it
%D messy.
+%D Do we need a \setuplayout here (kind of costly) in case we mix multi page text
+%D with a side float and less height.
+
\permanent\tolerant\protected\def\startplacefloat[#tag]#spacer[#settings]#spacer[#userdata]%
{\flushnotes
+ %\setuplayout
\page_otr_command_flush_side_floats % here !
\strc_floats_begin_group
\strc_floats_set_current_tag{#tag}%
@@ -703,12 +760,13 @@
\setupcurrentfloatuserdata[#userdata]%
\def\m_strc_floats_saved_userdata{#userdata}%
\else
- \let\m_strc_floats_saved_userdata\empty
+ \lettonothing\m_strc_floats_saved_userdata
\fi
- % check
+ % check (see elsewhere
+ \edef\floatlocationdefault{\floatparameter\c!default}%
\edef\floatlocation{\floatcaptionparameter\c!location}%
\ifempty\floatlocation
- \edef\floatlocation{\floatparameter\c!default}%
+ \let\floatlocation\floatlocationdefault % beware of a clash between alignment locations
\fi
% inherit
\setexpandedfloatparameter\c!topoffset {\floatcaptionparameter\c!topoffset}%
@@ -856,8 +914,9 @@
\ifempty\forcedfloatmethod \else
\doifelsecommandhandler\??float\forcedfloatmethod
{\let\currentfloat\forcedfloatmethod
- \edef\floatlocation{\floatparameter\c!default}%
- \let\forcedfloatmethod\floatlocation}
+ \edef\floatlocationdefault{\floatparameter\c!default}%
+ \let\floatlocation\floatlocationdefault
+ \let\forcedfloatmethod\floatlocationdefault}
\donothing
\fi
\ifempty\forcedfloatmethod
@@ -880,9 +939,9 @@
% nicer is a bunch of states and one loop that sets those states
-\newdimen\d_strc_floats_top
-\newdimen\d_strc_floats_bottom
-\newdimen\d_strc_floats_overflow
+\newdimension\d_strc_floats_top
+\newdimension\d_strc_floats_bottom
+\newdimension\d_strc_floats_overflow
% \def\strc_floats_calculate_skip#target#skip%
% {\begingroup
@@ -932,6 +991,7 @@
\global\c_page_floats_n_of_top \rootfloatparameter\c!ntop
\global\c_page_floats_n_of_bottom\rootfloatparameter\c!nbottom
\global\d_strc_floats_overflow \zeropoint
+ \global\setfalse\c_page_sides_shape_down
\ifconditional\c_strc_floats_par_float
\global\d_strc_floats_top \zeropoint
\global\d_strc_floats_bottom \zeropoint
@@ -974,6 +1034,12 @@
180=>\global\c_strc_floats_rotation\commalistelement\relax,%
270=>\global\c_strc_floats_rotation\commalistelement\relax]%
\fi
+ \doifelseinset\v!force\floatlocation
+ {\global\settrue\c_page_sides_shape_down}
+ {\global\setfalse\c_page_sides_shape_down}%
+ \doifelseinset\v!keeptogether\floatlocation
+ {\global\settrue\c_page_sides_keep_together}
+ {\global\setfalse\c_page_sides_keep_together}%
\doifelseinset\v!nonumber\floatlocation
{\global\nofloatnumbertrue}%
{\doifelse{\floatcaptionparameter\c!number}\v!yes
@@ -1016,13 +1082,13 @@
\permanent\def\floatcaptionwidth {\the\floatcaptionht}
\permanent\def\floatcaptiondepth {\the\floatcaptiondp}
-\newdimen\naturalfloatwd
-\newdimen\naturalfloatht
-\newdimen\naturalfloatdp
+\newdimension\naturalfloatwd
+\newdimension\naturalfloatht
+\newdimension\naturalfloatdp
-\newdimen\floatcaptionwd
-\newdimen\floatcaptionht
-\newdimen\floatcaptiondp
+\newdimension\floatcaptionwd
+\newdimension\floatcaptionht
+\newdimension\floatcaptiondp
\def\strc_floats_set_natural_dimensions#box%
{\global\naturalfloatwd\wd#box\relax
@@ -1089,14 +1155,43 @@
\def\strc_floats_group_index
{\numexpr\clf_listgroupindex{\currentfloat}{\currentfloatgroup}\relax}
+%D A lightweight subnumber feature:
+%D
+%D \starttyping
+%D \startplacefigure [location=none]
+%D \startsubfloatnumbering
+%D \startfloatcombination [nx=3]
+%D \startplacefigure [title=Left] \externalfigure \stopplacefigure
+%D \startplacefigure [title=Middle] \externalfigure \stopplacefigure
+%D \startplacefigure [title=Right] \externalfigure \stopplacefigure
+%D \stopfloatcombination
+%D \stopsubfloatnumbering
+%D \stopplacefigure
+%D \stoptyping
+
+\glettonothing\currentsubfloatcounter
+
+\permanent\protected\def\startsubfloatnumbering
+ {\glet\currentsubfloatcounter\s!unknown}
+
+\permanent\protected\def\stopsubfloatnumbering
+ {\strc_counters_reset_sub\currentsubfloatcounter\plustwo
+ \glettonothing\currentsubfloatcounter}
+
+\defineconversionset[subfloats][number,characters]
+
+\setupcaptions
+ %[figure]
+ [\c!numberconversionset=subfloats]
+
\def\strc_floats_place_packaged_boxes
{\expandafter\strc_floats_place_packaged_boxes_indeed\expandafter{\m_strc_floats_saved_userdata}}
\def\strc_floats_place_packaged_boxes_indeed#userdata%
{\bgroup
\ifconditional\usesamefloatnumber
- \glet\currentfloatnumber \m_strc_floats_previous_number
- \glet\currentfloatattribute \empty
+ \glet\currentfloatnumber\m_strc_floats_previous_number
+ \glettonothing\currentfloatattribute
\glet\currentfloatsynchronize\relax
\else
\edef\currentfloatcounter{\namedcounterparameter\currentfloat\s!name}%
@@ -1106,7 +1201,17 @@
\orelse\ifempty\currentfloatgroup
% independent
\iftrialtypesetting\strc_counters_save\currentfloatcounter\fi
- \strc_counters_increment\currentfloatcounter
+ \ifempty\currentsubfloatcounter
+ \strc_counters_increment\currentfloatcounter
+ \strc_counters_reset_sub\currentfloatcounter\plustwo
+ \else
+ \ifcase\strc_counters_raw_sub\currentfloatcounter\plustwo\relax
+ \strc_counters_increment\currentfloatcounter
+ \strc_counters_reset_sub\currentfloatcounter\plustwo
+ \fi
+ \strc_counters_increment_sub\currentfloatcounter\plustwo
+ \glet\currentsubfloatcounter\currentfloatcounter
+ \fi
\orelse\ifcase\strc_floats_group_index
% first in group
\iftrialtypesetting\strc_counters_save\currentfloatcounter\fi
@@ -1161,8 +1266,8 @@
\strc_floats_get_box
\global\insidefloatfalse}
-\newdimen\availablefloatwidth
-\newdimen\availablefloatheight
+\newdimension\availablefloatwidth
+\newdimension\availablefloatheight
\def\strc_floats_set_local_hsize
{\ifconditional\c_page_floats_center_box_local
@@ -1235,18 +1340,18 @@
\installcorenamespace{floatmovement}
-\setvalue{\??floatmovement \v!line}{\strc_floats_move_down_line+}
-\setvalue{\??floatmovement+\v!line}{\strc_floats_move_down_line+}
-\setvalue{\??floatmovement-\v!line}{\strc_floats_move_down_line-}
-\setvalue{\??floatmovement \v!hang}{\strc_floats_move_down_hang\plusone}
-\setvalue{\??floatmovement+\v!hang}{\strc_floats_move_down_hang\plusone}
-\setvalue{\??floatmovement-\v!hang}{\strc_floats_move_down_hang\minusone}
+\defcsname\??floatmovement \v!line\endcsname{\strc_floats_move_down_line+}
+\defcsname\??floatmovement+\v!line\endcsname{\strc_floats_move_down_line+}
+\defcsname\??floatmovement-\v!line\endcsname{\strc_floats_move_down_line-}
+\defcsname\??floatmovement \v!hang\endcsname{\strc_floats_move_down_hang\plusone}
+\defcsname\??floatmovement+\v!hang\endcsname{\strc_floats_move_down_hang\plusone}
+\defcsname\??floatmovement-\v!hang\endcsname{\strc_floats_move_down_hang\minusone}
-\setvalue{\??floatmovement-2*\v!line}{\strc_floats_move_down_line{-2}}
-\setvalue{\??floatmovement+2*\v!line}{\strc_floats_move_down_line{2}}
-\setvalue{\??floatmovement 2*\v!line}{\strc_floats_move_down_line{2}}
+\defcsname\??floatmovement-2*\v!line\endcsname{\strc_floats_move_down_line{-2}}
+\defcsname\??floatmovement+2*\v!line\endcsname{\strc_floats_move_down_line{2}}
+\defcsname\??floatmovement 2*\v!line\endcsname{\strc_floats_move_down_line{2}}
-\permanent\protected\def\installfloatmovement#1#2{\setvalue{\??floatmovement#1}{#2}}
+\permanent\protected\def\installfloatmovement#1#2{\defcsname\??floatmovement#1\endcsname{#2}}
\def\strc_floats_move_down#setting%
{\begincsname\??floatmovement#setting\endcsname}
@@ -1256,14 +1361,14 @@
\global\d_page_sides_downshift\zeropoint
\scratchconditiononetrue
\fi
- \global\advance\d_page_sides_downshift#sign\lineheight}
+ \global\advanceby\d_page_sides_downshift#sign\lineheight}
\def\strc_floats_move_down_hang#lines%
{\ifscratchconditiontwo \else
\global\c_page_sides_n_of_lines\zerocount
\scratchconditiontwotrue
\fi
- \global\advance\c_page_sides_n_of_lines#lines\relax}
+ \global\advanceby\c_page_sides_n_of_lines#lines\relax}
\permanent\protected\def\movedownsidefloat[#settings]% already in core
{\unless\ifhastok:{#settings}%
@@ -1277,7 +1382,7 @@
\permanent\protected\def\hangsidefloat[#number]%
{\global\c_page_sides_n_of_lines#number\relax}
-\mutable\let\extrafloatlocation\empty
+\mutable\lettonothing\extrafloatlocation
\def\strc_floats_set_extra_action#rightpagelocation#leftpagelocation%
{\rightorleftpageaction
@@ -1287,23 +1392,23 @@
\installcorenamespace{extrafloataction}
-\setvalue{\??extrafloataction \v!inner}#1{\strc_floats_set_extra_action\v!left \v!right}
-\setvalue{\??extrafloataction \v!outer}#1{\strc_floats_set_extra_action\v!right \v!left}
-\setvalue{\??extrafloataction\v!innermargin}#1{\strc_floats_set_extra_action\v!leftmargin \v!rightmargin}
-\setvalue{\??extrafloataction\v!outermargin}#1{\strc_floats_set_extra_action\v!rightmargin\v!leftmargin}
-\setvalue{\??extrafloataction \v!inneredge}#1{\strc_floats_set_extra_action\v!leftedge \v!rightedge}
-\setvalue{\??extrafloataction \v!outeredge}#1{\strc_floats_set_extra_action\v!rightedge \v!leftedge}
-\setvalue{\??extrafloataction \v!backspace}#1{\strc_floats_set_extra_action\v!backspace \v!cutspace}
-\setvalue{\??extrafloataction \v!cutspace}#1{\strc_floats_set_extra_action\v!cutspace \v!backspace}
-%setvalue{\??extrafloataction \v!margin}#1{\strc_floats_set_extra_action\v!cutspace \v!backspace}
-\setvalue{\??extrafloataction \v!left}#1{\strc_floats_set_extra_action\v!left \v!left}
-\setvalue{\??extrafloataction \v!right}#1{\strc_floats_set_extra_action\v!right \v!right}
-\setvalue{\??extrafloataction \v!line}#1{} % only -n*line is handled (see ***)
-\setvalue{\??extrafloataction \s!unknown}#1{\movedownsidefloat[#1]}
+\defcsname\??extrafloataction \v!inner\endcsname#1{\strc_floats_set_extra_action\v!left \v!right}
+\defcsname\??extrafloataction \v!outer\endcsname#1{\strc_floats_set_extra_action\v!right \v!left}
+\defcsname\??extrafloataction\v!innermargin\endcsname#1{\strc_floats_set_extra_action\v!leftmargin \v!rightmargin}
+\defcsname\??extrafloataction\v!outermargin\endcsname#1{\strc_floats_set_extra_action\v!rightmargin\v!leftmargin}
+\defcsname\??extrafloataction \v!inneredge\endcsname#1{\strc_floats_set_extra_action\v!leftedge \v!rightedge}
+\defcsname\??extrafloataction \v!outeredge\endcsname#1{\strc_floats_set_extra_action\v!rightedge \v!leftedge}
+\defcsname\??extrafloataction \v!backspace\endcsname#1{\strc_floats_set_extra_action\v!backspace \v!cutspace}
+\defcsname\??extrafloataction \v!cutspace\endcsname#1{\strc_floats_set_extra_action\v!cutspace \v!backspace}
+%defcsname\??extrafloataction \v!margin\endcsname#1{\strc_floats_set_extra_action\v!cutspace \v!backspace}
+\defcsname\??extrafloataction \v!left\endcsname#1{\strc_floats_set_extra_action\v!left \v!left}
+\defcsname\??extrafloataction \v!right\endcsname#1{\strc_floats_set_extra_action\v!right \v!right}
+\defcsname\??extrafloataction \v!line\endcsname#1{} % only -n*line is handled (see ***)
+\defcsname\??extrafloataction \s!unknown\endcsname#1{\movedownsidefloat[#1]}
\def\strc_floats_check_extra_actions % less tracingthis way ....
{\doifnotinset\v!text\floatlocation % fuzzy, text overloads left, since then it's a directive
- {\let\extrafloatlocation\empty
+ {\lettonothing\extrafloatlocation
% \d_page_sides_downshift will be reset afterwards, and can
% already be set at this point
\processcommacommand[\floatlocation]\strc_floats_check_extra_actions_step
@@ -1488,7 +1593,7 @@
\whitespace
\blank[\rootfloatparameter\c!spacebefore]%
\doifnotinset\v!tall\floatlocation
- {\dp\floatbox\openstrutdepth}% dp\strutbox}% % toegevoegd
+ {\dp\floatbox\openstrutdepth}% \strutdp % toegevoegd
\box\floatbox
\dostoptagged
\blank[\rootfloatparameter\c!spaceafter]%
@@ -1564,16 +1669,16 @@
\let\strc_floats_align_indeed_local\firstofoneargument
-\newdimen\d_strc_floats_content
-\newdimen\d_strc_float_temp_height
-\newdimen\d_strc_float_temp_width
+\newdimension\d_strc_floats_content
+\newdimension\d_strc_float_temp_height
+\newdimension\d_strc_float_temp_width
\newconditional\c_floats_adapt_to_caption_width
\newconditional\c_floats_store_minimal_package
-\newdimen\d_strc_floats_caption_hsize
-\newdimen\d_strc_floats_caption_min_width
-\newdimen\d_strc_floats_caption_overshoot
+\newdimension\d_strc_floats_caption_hsize
+\newdimension\d_strc_floats_caption_min_width
+\newdimension\d_strc_floats_caption_overshoot
% These are expandable, for diagnostic purposes only, but might eventually go away:
@@ -1617,12 +1722,15 @@
\strc_floats_prepare_no_caption
\strc_floats_set_caption_dimensions\voidbox
%\page_backgrounds_add_local_to_box\floatbox % was \doglobal but not needed
+\ifx\forcedfloatmethod\v!local
+ % we need \ifinfloatcombination
+ \strc_floats_build_box
+\fi
\else
% todo: installable maken, variant/method=auto vs macro
\strc_floats_prepare_page_caption
%\page_backgrounds_add_local_to_box\b_strc_floats_content
- \setbox\b_strc_floats_caption\hbox % text
- {\floatcaptionparameter\c!command{\box\b_strc_floats_caption}}%
+ \strc_floats_apply_caption_command
\strc_floats_set_caption_dimensions\b_strc_floats_caption
%\moveboxontogrid\b_strc_floats_caption{\floatcaptionparameter\c!grid}\d_strc_floats_caption_height
%\page_backgrounds_add_local_to_box\b_strc_floats_caption
@@ -2021,13 +2129,13 @@
\def\strc_floats_build_box_top_stack_normal
{\doifelseinset\v!overlay{\floatcaptionparameter\c!location}
- \strc_floats_build_box_top_stack_normal_overlay
- \strc_floats_build_box_top_stack_normal_content}
+ \strc_floats_build_box_top_stack_normal_overlay
+ \strc_floats_build_box_top_stack_normal_content}
\def\strc_floats_build_box_bottom_stack_normal
{\doifinset\v!overlay{\floatcaptionparameter\c!location}
- \strc_floats_build_box_bottom_stack_normal_overlay
- \strc_floats_build_box_bottom_stack_normal_content}
+ \strc_floats_build_box_bottom_stack_normal_overlay
+ \strc_floats_build_box_bottom_stack_normal_content}
\def\strc_floats_build_box_top_stack_grid
{\dp\b_strc_floats_caption\strutdepth
@@ -2122,7 +2230,7 @@
\def\strc_floats_relocate_caption_right#1{\strc_floats_align_caption{\hbox to \d_strc_float_temp_width{\hss#1}}}
\def\strc_floats_relocate_caption_left #1{\strc_floats_align_caption{\hbox to \d_strc_float_temp_width{#1\hss}}}
-\permanent\protected\def\installfloatboxbuilder#1#2{\setvalue{\??floatbuilder#1}{#2}}
+\permanent\protected\def\installfloatboxbuilder#1#2{\defcsname\??floatbuilder#1\endcsname{#2}}
\def\strc_floats_build_box
{\strc_floats_build_box_before
@@ -2293,7 +2401,7 @@
\else
\strc_floats_check_caption_content
\strc_floats_prepare_side_caption
- \setbox\b_strc_floats_caption\hbox{\floatcaptionparameter\c!command{\box\b_strc_floats_caption}}% \hpack ?
+ \strc_floats_apply_caption_command
%\moveboxontogrid\b_strc_floats_caption{\floatcaptionparameter\c!grid}\d_strc_floats_caption_height
%\page_backgrounds_add_local_to_box\b_strc_floats_caption
\strc_floats_build_side_box
@@ -2357,13 +2465,13 @@
% \expandnamespacemacro\??floatpreparesidecaption\p_strc_floats_caption_width\s!unknown
% \dostoptagged}
%
-% \setvalue{\??floatpreparesidecaption\v!max}%
+% \defcsname\??floatpreparesidecaption\v!max\endcsname
% {\setbox\b_strc_floats_caption\vbox
% {\strc_floats_caption_set_align
% \hsize\wd\b_strc_floats_content
% \strc_floats_make_complete_caption}}
%
-% \setvalue{\??floatpreparesidecaption\v!fit}%
+% \defcsname\??floatpreparesidecaption\v!fit\endcsname
% {\ifdim\wd\b_strc_floats_caption>\wd\b_strc_floats_content\relax
% \setbox\b_strc_floats_caption\vbox
% {\forgetall % needed?
@@ -2374,7 +2482,7 @@
% {\hss\hbox{\strc_floats_make_complete_caption}\hss}%
% \fi}
%
-% \setvalue{\??floatpreparesidecaption\s!unknown}%
+% \defcsname\??floatpreparesidecaption\s!unknown\endcsname
% {\setbox\b_strc_floats_caption\vbox
% {\strc_floats_caption_set_align
% \hsize\p_strc_floats_caption_width % \wd\b_strc_floats_content
@@ -2403,7 +2511,7 @@
\strc_floats_set_page_variant
\fi
\strc_floats_set_local_dimensions
- \global\advance\totalnoffloats\plusone
+ \global\advanceby\totalnoffloats\plusone
\ifconditional\c_floats_store_minimal_package \else
\setbox\floatbox\hpack{\strc_float_save_data\box\floatbox}% still needed? we will do renumbering differently
\fi
@@ -2450,13 +2558,12 @@
\installcorenamespace{floatmethods}
-\mutable\let\floatmethod \empty % set by lua
-\mutable\let\floatlabel \empty % set by lua
-\mutable\let\floatcolumn \empty % set by lua
-\mutable\let\floatrow \empty % set by lua
-\mutable\let\floatspecification\empty
-
-\mutable\let\forcedfloatmethod \empty % set by lua and floatcombinations
+\mutable\lettonothing\floatmethod % set by lua
+\mutable\lettonothing\floatlabel % set by lua
+\mutable\lettonothing\floatcolumn % set by lua
+\mutable\lettonothing\floatrow % set by lua
+\mutable\lettonothing\floatspecification
+\mutable\lettonothing\forcedfloatmethod % set by lua and floatcombinations
\permanent\protected\def\setfloatmethodvariables#1% \floatmethod \floatlabel \floatrow \floatcolumn
{\clf_analysefloatmethod{#1}} % move definition to lua end
@@ -2467,7 +2574,10 @@
\def\strc_floats_get_box
{\ifvisible
\ifcsname\??floatmethods\currentoutputroutine:\floatmethod\endcsname \else
- \let\floatmethod\v!here
+ \let\floatmethod\floatlocationdefault
+ \ifcsname\??floatmethods\currentoutputroutine:\floatmethod\endcsname \else
+ \let\floatmethod\v!here
+ \fi
\fi
\ifempty\forcedfloatmethod \else
\let\floatmethod\forcedfloatmethod
@@ -2485,7 +2595,7 @@
\installcorenamespace{floatsettings}
\permanent\protected\def\installfloatmethod#1#2#3% routine keyword handler
- {\setvalue{\??floatmethods#1:#2}{#3}}
+ {\defcsname\??floatmethods#1:#2\endcsname{#3}}
\permanent\protected\def\handlefloatmethod#1%
{\csname\??floatmethods\currentoutputroutine:#1\endcsname}
@@ -2494,7 +2604,7 @@
% {\ifcsname\??floatsettings#1:#2\endcsname \else
% \expandafter\newtoks\csname\??floatsettings#1:#2\endcsname
% \fi
-% \setvalue{\??floatmethods#1:#2}{#3}}
+% \defcsname\??floatmethods#1:#2\endcsname{#3}}
%
% \protected\def\startfloatmethodsettings#1#2 #3\stopfloatmethodsettings
% {\csname\??floatsettings#1:#2\endcsname\expandafter{\the\csname\??floatsettings#1:#2\endcsname#3}}
@@ -2566,14 +2676,15 @@
\initializeboxstack\??localfloatstack
-\newcount\c_strc_localfloats_n \aliased\let\noflocalfloats\c_strc_localfloats_n
+%newcount \c_strc_localfloats_n \aliased\let \noflocalfloats\c_strc_localfloats_n
+\newinteger\c_strc_localfloats_n \aliasinteger\noflocalfloats\c_strc_localfloats_n
\permanent\protected\def\resetlocalfloats
{\global\c_strc_localfloats_n\zerocount
\initializeboxstack\??localfloatstack}
\permanent\protected\def\somelocalfloat
- {\global\advance\c_strc_localfloats_n\plusone
+ {\global\advanceby\c_strc_localfloats_n\plusone
\savebox\??localfloatstack{\number\c_strc_localfloats_n}{\box\floatbox}}
\permanent\protected\def\getlocalfloats
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-ind.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-ind.mkxl
index 31d7eb5755a..10bd7f468f7 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-ind.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-ind.mkxl
@@ -55,9 +55,9 @@
%D
%D \typebuffer \getbuffer
-\newcount\c_strc_indentedtexts_nesting
-\newdimen\d_strc_indentedtexts_width
-\newdimen\d_strc_indentedtexts_distance
+\newinteger \c_strc_indentedtexts_nesting
+\newdimension\d_strc_indentedtexts_width
+\newdimension\d_strc_indentedtexts_distance
\appendtoks
\frozen\instance\setuevalue {\e!start\currentindentedtext}{\strc_indentedtexts_start{\currentindentedtext}\c_strc_indentedtexts_nesting}%
@@ -84,7 +84,7 @@
\indentedtextparameter\c!sample
\spr{\indentedtextparameter\c!separator}}
{\d_strc_indentedtexts_distance}%
- \advance\d_strc_indentedtexts_width \d_strc_indentedtexts_distance
+ \advanceby\d_strc_indentedtexts_width \d_strc_indentedtexts_distance
\setbox\scratchbox\hbox to \d_strc_indentedtexts_width
{\useindentedtextstyleandcolor\c!headstyle\c!headcolor
\strut
@@ -94,7 +94,7 @@
\hskip\d_strc_indentedtexts_distance}%
\parindent\zeropoint
\hskip\c_strc_indentedtexts_nesting\d_strc_indentedtexts_width
- \advance\c_strc_indentedtexts_nesting\plusone
+ \advanceby\c_strc_indentedtexts_nesting\plusone
\dontleavehmode\box\scratchbox
\hangindent\c_strc_indentedtexts_nesting\d_strc_indentedtexts_width
\useindentedtextstyleandcolor\c!style\c!color}
@@ -109,8 +109,11 @@
\permanent\let\stopindentedtext\strc_indentedtexts_stop
-\protected\def\strc_indentedtexts_direct#1#2#3\par % no longer clever grabpar trickery
- {\strc_indentedtexts_start{#1}{#2}#3\strc_indentedtexts_stop}
+% \protected\def\strc_indentedtexts_direct#1#2#3\par % no longer clever grabpar trickery
+% {\strc_indentedtexts_start{#1}{#2}#3\strc_indentedtexts_stop}
+
+\protected\def\strc_indentedtexts_direct#1#2% more modern anyway
+ {\strc_indentedtexts_start{#1}{#2}\wrapuppar{\strc_indentedtexts_stop}}
\setupindentedtext
[\c!style=\v!normal,
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-itm.mklx b/Master/texmf-dist/tex/context/base/mkxl/strc-itm.mklx
index efead3d83a7..a3a4c004076 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-itm.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-itm.mklx
@@ -203,31 +203,31 @@
% 0 = before/after
% 1 = between unless before
-% 2 = between
+% 2 = between (auto)
\newconstant \c_strc_itemgroups_spacing_mode \c_strc_itemgroups_spacing_mode\plustwo
\newconditional\c_strc_itemgroups_optimize \settrue\c_strc_itemgroups_optimize
\newconditional\c_strc_itemgroups_auto_concat \settrue\c_strc_itemgroups_auto_concat
-\newsignal \d_strc_itemgroups_signal
+\newboundary \c_strc_itemgroups_boundary
\newbox \b_strc_itemgroups
-\newdimen \d_strc_itemgroups_list_width
-\newdimen \d_strc_itemgroups_asked_width
+\newdimension \d_strc_itemgroups_list_width
+\newdimension \d_strc_itemgroups_asked_width
-\newdimen \d_strc_itemgroups_max_width % multipass
-\newcount \c_strc_itemgroups_max_items % multipass
+\newdimension \d_strc_itemgroups_max_width \def\d_strc_itemgroups_max_width_reference{\d_strc_itemgroups_max_width}
+\newinteger \c_strc_itemgroups_max_items
-\newcount \c_strc_itemgroups_n_of_items
-\newcount \c_strc_itemgroups_nesting
-\newcount \c_strc_itemgroups_column_depth
+\newinteger \c_strc_itemgroups_n_of_items
+\newinteger \c_strc_itemgroups_nesting
+\newinteger \c_strc_itemgroups_column_depth
\def \v_strc_itemgroups_counter {itemgroup:\currentparentitemgroup}
-\let \m_strc_itemgroups_repeat_start \empty
+\lettonothing \m_strc_itemgroups_repeat_start
\def \v_strc_itemgroups_unknown_symbol {?}
-\let \m_strc_itemgroups_indenting \empty
-\let \m_strc_itemgroups_destination \empty
+\lettonothing \m_strc_itemgroups_indenting
+\lettonothing \m_strc_itemgroups_destination
\mutable\let \currentitemlevel \!!zerocount % public
\mutable\def \currentnofitems {\the\c_strc_itemgroups_max_items}
@@ -235,9 +235,9 @@
\newtoks \itemgroupcommands % maybe public
-\mutable\def \currentitemgroupsymbol {n} % here we cannot use a _ in the name
-\mutable\let \currentitemgroupconversionset \empty % here we cannot use a _ in the name
-\mutable\let \currentitemgroupsegments \empty
+\mutable\def \currentitemgroupsymbol {n} % here we cannot use a _ in the name
+\mutable\lettonothing \currentitemgroupconversionset % here we cannot use a _ in the name
+\mutable\lettonothing \currentitemgroupsegments
\def\strc_itemgroups_register_status
{\clf_registeritemgroup{\currentparentitemgroup}\c_strc_itemgroups_nesting\c_strc_itemgroups_n_of_items\dimexpr\itemgroupparameter\c!maxwidth\relax}
@@ -369,21 +369,28 @@
\fi
\fi}
-\def\strc_itemgroups_insert_breakallow {\strc_itemgroups_insert_break_when_needed\strc_itemgroups_insert_breakallow_indeed}
-\def\strc_itemgroups_insert_breakno {\strc_itemgroups_insert_break_when_needed\strc_itemgroups_insert_breakno_indeed }
-\def\strc_itemgroups_insert_break {\strc_itemgroups_insert_break_when_needed\strc_itemgroups_insert_break_indeed }
-\def\strc_itemgroups_insert_nobreak {\strc_itemgroups_insert_break_when_needed\strc_itemgroups_insert_nobreak_indeed }
-
-\def\strc_itemgroups_insert_breakallow_indeed{\vspacing[\v!item @0]}
-\def\strc_itemgroups_insert_breakno_indeed {\vspacing[\v!item @10000]}
-\def\strc_itemgroups_insert_break_indeed {\flushnotes
- \vspacing[\v!item @-5]}
-\def\strc_itemgroups_insert_nobreak_indeed {\flushnotes
- \ifinsidecolumns % todo
- \vspacing[\v!item @5]%
- \else
- \vspacing[\v!item @500]%
- \fi}
+\def\strc_itemgroups_insert_breakallow{\strc_itemgroups_insert_break_when_needed\strc_itemgroups_insert_breakallow_indeed}
+\def\strc_itemgroups_insert_breakno {\strc_itemgroups_insert_break_when_needed\strc_itemgroups_insert_breakno_indeed }
+\def\strc_itemgroups_insert_break {\strc_itemgroups_insert_break_when_needed\strc_itemgroups_insert_break_indeed }
+\def\strc_itemgroups_insert_nobreak {\strc_itemgroups_insert_break_when_needed\strc_itemgroups_insert_nobreak_indeed }
+
+\def\strc_itemgroups_insert_breakallow_indeed
+ {\vspacing[\v!item @0]}
+
+\def\strc_itemgroups_insert_breakno_indeed
+ {\vspacing[\v!item @10000]}
+
+\def\strc_itemgroups_insert_break_indeed
+ {\flushnotes
+ \vspacing[\v!item @-5]}
+
+\def\strc_itemgroups_insert_nobreak_indeed
+ {\flushnotes
+ \ifinsidecolumns % todo
+ \vspacing[\v!item @5]%
+ \else
+ \vspacing[\v!item @500]%
+ \fi}
\protected\def\strc_itemgroups_process_options#options%
{\processcommacommand[#options]\strc_itemgroups_process_option} % expansion of options is handy for xml
@@ -393,8 +400,8 @@
% \protected\def\strc_itemgroups_process_options#options%
% {\normalexpanded{\strc_itemgroups_process_option_list[#options]}} % expansion of options is handy for xml
-\mutable\let\itemgroupfirst \empty
-\mutable\let\itemgroupsecond\empty
+\mutable\lettonothing\itemgroupfirst
+\mutable\lettonothing\itemgroupsecond
\def\strc_itemgroups_process_option#option%
{\edef\scratchstringone{#option}%
@@ -421,65 +428,123 @@
\setfalse\c_strc_itemgroups_pack
\fi}
-\setvalue{\??itemgroupkeyword\!!zerocount }{} % ignore 0
-\setvalue{\??itemgroupkeyword\v!packed }{\strc_itemgroups_process_set_option_pack}
-\setvalue{\??itemgroupkeyword\v!unpacked }{\strc_itemgroups_process_set_option_unpack}
-\setvalue{\??itemgroupkeyword\v!intro }{\settrue\c_strc_itemgroups_intro} % here? not set to false
-\setvalue{\??itemgroupkeyword\v!autointro }{\settrue\c_strc_itemgroups_auto_intro}
-\setvalue{\??itemgroupkeyword\v!broad }{\ifempty\itemgroupfirst
- \let\itemgroupfirst\!!plusone
- \fi
- \letitemgroupparameter\c!factor\itemgroupfirst}
-\setvalue{\??itemgroupkeyword\v!text }{\settrue\c_strc_itemgroups_text
- \settrue\c_strc_itemgroups_inline
- \settrue\c_strc_itemgroups_joined
- \strc_itemgroups_process_set_option_pack}
-\setvalue{\??itemgroupkeyword\v!before }{\settrue\c_strc_itemgroups_before}
-\setvalue{\??itemgroupkeyword\v!after }{\settrue\c_strc_itemgroups_after}
-\setvalue{\??itemgroupkeyword\v!nowhite }{\settrue\c_strc_itemgroups_nowhite}
-\setvalue{\??itemgroupkeyword\v!margin }{\setitemgroupparameter\c!width{-2em}} % signal
-\setvalue{\??itemgroupkeyword\v!inmargin }{\setitemgroupparameter\c!width{-2em}} % signal
-\setvalue{\??itemgroupkeyword\v!atmargin }{\ifnum\c_strc_itemgroups_nesting>\plusone
- \setitemgroupparameter\c!width{0em}%
- \fi} % signal
-\setvalue{\??itemgroupkeyword\v!intext }{\settrue\c_strc_itemgroups_inline}
-\setvalue{\??itemgroupkeyword\v!headintext }{\settrue\c_strc_itemgroups_inline_head}
-\setvalue{\??itemgroupkeyword\v!loose }{\setfalse\c_strc_itemgroups_optimize}
-\setvalue{\??itemgroupkeyword\v!fit }{\settrue\c_strc_itemgroups_fitting}
-\setvalue{\??itemgroupkeyword\v!nofit }{\setfalse\c_strc_itemgroups_fitting}
-\setvalue{\??itemgroupkeyword\v!paragraph }{\settrue\c_strc_itemgroups_paragraph
- \strc_itemgroups_process_set_option_pack}
-\setvalue{\??itemgroupkeyword\v!joinedup }{\settrue\c_strc_itemgroups_joined
- \strc_itemgroups_process_set_option_pack}
-\setvalue{\??itemgroupkeyword\v!notjoinedup}{\setfalse\c_strc_itemgroups_joined}
-\setvalue{\??itemgroupkeyword\v!serried }{\edef\itemgroupfirst{-\ifempty\itemgroupfirst1\else\itemgroupfirst\fi}%
- \letitemgroupparameter\c!factor\itemgroupfirst}
-\setvalue{\??itemgroupkeyword\v!stopper }{\letitemgroupparameter\c!placestopper\v!yes} % keep {}
-\setvalue{\??itemgroupkeyword\v!nostopper }{\letitemgroupparameter\c!placestopper\v!no} % keep {}
-\setvalue{\??itemgroupkeyword\v!repeat }{\settrue\c_strc_itemgroups_repeat}
-\setvalue{\??itemgroupkeyword\v!norepeat }{\setfalse\c_strc_itemgroups_repeat}
-\setvalue{\??itemgroupkeyword\v!reverse }{\settrue\c_strc_itemgroups_reverse}
-\setvalue{\??itemgroupkeyword\v!columns }{\settrue\c_strc_itemgroups_columns}
-\setvalue{\??itemgroupkeyword\v!one }{\letitemgroupparameter\c!n\plusone}
-\setvalue{\??itemgroupkeyword\v!two }{\letitemgroupparameter\c!n\plustwo}
-\setvalue{\??itemgroupkeyword\v!three }{\letitemgroupparameter\c!n\plusthree}
-\setvalue{\??itemgroupkeyword\v!four }{\letitemgroupparameter\c!n\plusfour}
-\setvalue{\??itemgroupkeyword\v!five }{\letitemgroupparameter\c!n\plusfive}
-\setvalue{\??itemgroupkeyword\v!six }{\letitemgroupparameter\c!n\plussix}
-\setvalue{\??itemgroupkeyword\v!seven }{\letitemgroupparameter\c!n\plusseven}
-\setvalue{\??itemgroupkeyword\v!eight }{\letitemgroupparameter\c!n\pluseight}
-\setvalue{\??itemgroupkeyword\v!nine }{\letitemgroupparameter\c!n\plusnine}
-\setvalue{\??itemgroupkeyword\v!standard }{\setitemgroupparameter\c!width {1.5\emwidth}%
- \setitemgroupparameter\c!distance {.5\emwidth}%
- %\letitemgroupparameter\c!factor \!!zerocount
- \letitemgroupparameter\c!factor {\zerocount}%
- \setitemgroupparameter\c!packcriterium{\zerocount}%
- \letitemgroupparameter\c!inner \empty
- \letitemgroupparameter\c!beforehead \empty
- \letitemgroupparameter\c!afterhead \blank
- \letitemgroupparameter\c!before \blank
- \letitemgroupparameter\c!inbetween \blank
- \letitemgroupparameter\c!after \blank}
+\defcsname\??itemgroupkeyword\!!zerocount\endcsname
+ {} % ignore 0
+
+\defcsname\??itemgroupkeyword\v!packed\endcsname
+ {\strc_itemgroups_process_set_option_pack}
+
+\defcsname\??itemgroupkeyword\v!unpacked\endcsname
+ {\strc_itemgroups_process_set_option_unpack}
+
+\defcsname\??itemgroupkeyword\v!intro\endcsname
+ {\settrue\c_strc_itemgroups_intro} % here? not set to false
+
+\defcsname\??itemgroupkeyword\v!autointro\endcsname
+ {\settrue\c_strc_itemgroups_auto_intro}
+
+\defcsname\??itemgroupkeyword\v!broad\endcsname
+ {\ifempty\itemgroupfirst
+ \let\itemgroupfirst\!!plusone
+ \fi
+ \letitemgroupparameter\c!factor\itemgroupfirst}
+
+\defcsname\??itemgroupkeyword\v!text\endcsname
+ {\settrue\c_strc_itemgroups_text
+ \settrue\c_strc_itemgroups_inline
+ \settrue\c_strc_itemgroups_joined
+ \strc_itemgroups_process_set_option_pack}
+
+\defcsname\??itemgroupkeyword\v!before\endcsname
+ {\settrue\c_strc_itemgroups_before}
+
+\defcsname\??itemgroupkeyword\v!after\endcsname
+ {\settrue\c_strc_itemgroups_after}
+
+\defcsname\??itemgroupkeyword\v!nowhite\endcsname
+ {\settrue\c_strc_itemgroups_nowhite}
+
+\defcsname\??itemgroupkeyword\v!margin\endcsname % signal
+ {\setitemgroupparameter\c!width{-2em}}
+
+\defcsname\??itemgroupkeyword\v!inmargin\endcsname % signal
+ {\setitemgroupparameter\c!width{-2em}}
+
+\defcsname\??itemgroupkeyword\v!atmargin\endcsname% signal
+ {\ifnum\c_strc_itemgroups_nesting>\plusone
+ \setitemgroupparameter\c!width{0em}%
+ \fi}
+
+\defcsname\??itemgroupkeyword\v!intext\endcsname
+ {\settrue\c_strc_itemgroups_inline}
+
+\defcsname\??itemgroupkeyword\v!headintext\endcsname
+ {\settrue\c_strc_itemgroups_inline_head}
+
+\defcsname\??itemgroupkeyword\v!loose\endcsname
+ {\setfalse\c_strc_itemgroups_optimize}
+
+\defcsname\??itemgroupkeyword\v!fit\endcsname
+ {\settrue\c_strc_itemgroups_fitting}
+
+\defcsname\??itemgroupkeyword\v!nofit\endcsname
+ {\setfalse\c_strc_itemgroups_fitting}
+
+\defcsname\??itemgroupkeyword\v!paragraph\endcsname
+ {\settrue\c_strc_itemgroups_paragraph
+ \strc_itemgroups_process_set_option_pack}
+
+\defcsname\??itemgroupkeyword\v!joinedup\endcsname
+ {\settrue\c_strc_itemgroups_joined
+ \strc_itemgroups_process_set_option_pack}
+
+\defcsname\??itemgroupkeyword\v!notjoinedup\endcsname
+ {\setfalse\c_strc_itemgroups_joined}
+
+\defcsname\??itemgroupkeyword\v!serried\endcsname
+ {\edef\itemgroupfirst{-\ifempty\itemgroupfirst1\else\itemgroupfirst\fi}%
+ \letitemgroupparameter\c!factor\itemgroupfirst}
+
+\defcsname\??itemgroupkeyword\v!stopper\endcsname
+ {\letitemgroupparameter\c!placestopper\v!yes} % keep {}
+
+\defcsname\??itemgroupkeyword\v!nostopper\endcsname
+ {\letitemgroupparameter\c!placestopper\v!no} % keep {}
+
+\defcsname\??itemgroupkeyword\v!repeat\endcsname
+ {\settrue\c_strc_itemgroups_repeat}
+
+\defcsname\??itemgroupkeyword\v!norepeat\endcsname
+ {\setfalse\c_strc_itemgroups_repeat}
+
+\defcsname\??itemgroupkeyword\v!reverse\endcsname
+ {\settrue\c_strc_itemgroups_reverse}
+
+\defcsname\??itemgroupkeyword\v!columns\endcsname
+ {\settrue\c_strc_itemgroups_columns}
+
+\defcsname\??itemgroupkeyword\v!one \endcsname{\letitemgroupparameter\c!n\plusone}
+\defcsname\??itemgroupkeyword\v!two \endcsname{\letitemgroupparameter\c!n\plustwo}
+\defcsname\??itemgroupkeyword\v!three\endcsname{\letitemgroupparameter\c!n\plusthree}
+\defcsname\??itemgroupkeyword\v!four \endcsname{\letitemgroupparameter\c!n\plusfour}
+\defcsname\??itemgroupkeyword\v!five \endcsname{\letitemgroupparameter\c!n\plusfive}
+\defcsname\??itemgroupkeyword\v!six \endcsname{\letitemgroupparameter\c!n\plussix}
+\defcsname\??itemgroupkeyword\v!seven\endcsname{\letitemgroupparameter\c!n\plusseven}
+\defcsname\??itemgroupkeyword\v!eight\endcsname{\letitemgroupparameter\c!n\pluseight}
+\defcsname\??itemgroupkeyword\v!nine \endcsname{\letitemgroupparameter\c!n\plusnine}
+
+\defcsname\??itemgroupkeyword\v!standard\endcsname
+ {\setitemgroupparameter \c!width {1.5\emwidth}%
+ \setitemgroupparameter \c!distance {.5\emwidth}%
+ %\letitemgroupparameter \c!factor \!!zerocount
+ \letitemgroupparameter \c!factor {\zerocount}%
+ \setitemgroupparameter \c!packcriterium{\zerocount}%
+ \resetitemgroupparameter\c!inner
+ \resetitemgroupparameter\c!beforehead
+ \letitemgroupparameter \c!afterhead \blank
+ \letitemgroupparameter \c!before \blank
+ \letitemgroupparameter \c!inbetween \blank
+ \letitemgroupparameter \c!after \blank}
\def\strc_itemgroups_initialize_local
{\setfalse\c_strc_itemgroups_inline
@@ -503,23 +568,30 @@
\setfalse\c_strc_itemgroups_symbol
\setfalse\c_strc_itemgroups_columns
% to be checked
- \let\m_strc_itemgroups_destination\empty
- \let\strc_itemgroups_used_symbol \empty % ** start value
- \let\strc_itemgroups_margin_symbol\empty
- \let\strc_itemgroups_extra_symbol \empty
+ \lettonothing\m_strc_itemgroups_destination
+ \lettonothing\strc_itemgroups_used_symbol % ** start value
+ \lettonothing\strc_itemgroups_margin_symbol
+ \lettonothing\strc_itemgroups_extra_symbol
%
\global\letitemgroupparameter\c!maxwidth\!!zeropoint
}
-\setvalue{\??itemgroupfirst\v!intro }{\settrue\c_strc_itemgroups_intro}
-\setvalue{\??itemgroupfirst\v!continue }{\settrue\c_strc_itemgroups_continue}
-\setvalue{\??itemgroupfirst\v!random }{\settrue\c_strc_itemgroups_randomize
- \settrue\c_strc_itemgroups_collecting}
-\setvalue{\??itemgroupkeyword\v!horizontal}{\settrue\c_strc_itemgroups_horizontal
- \settrue\c_strc_itemgroups_collecting
- \settrue\c_strc_itemgroups_inline
- \settrue\c_strc_itemgroups_joined
- \strc_itemgroups_process_set_option_pack}
+\defcsname\??itemgroupfirst\v!intro\endcsname
+ {\settrue\c_strc_itemgroups_intro}
+
+\defcsname\??itemgroupfirst\v!continue\endcsname
+ {\settrue\c_strc_itemgroups_continue}
+
+\defcsname\??itemgroupfirst\v!random\endcsname
+ {\settrue\c_strc_itemgroups_randomize
+ \settrue\c_strc_itemgroups_collecting}
+
+\defcsname\??itemgroupkeyword\v!horizontal\endcsname
+ {\settrue\c_strc_itemgroups_horizontal
+ \settrue\c_strc_itemgroups_collecting
+ \settrue\c_strc_itemgroups_inline
+ \settrue\c_strc_itemgroups_joined
+ \strc_itemgroups_process_set_option_pack}
\def\strc_itemgroups_preset_stage_one#options%
{\processcommacommand[#options]\strc_itemgroups_preset_stage_one_indeed}
@@ -682,9 +754,18 @@
\installcorenamespace{itemstopper}
-\setvalue{\??itemstopper\v!yes }{\itemgroupparameter\c!stopper}
-\setvalue{\??itemstopper\v!display}{\ifconditional\c_strc_itemgroups_inline\else\itemgroupparameter\c!stopper\fi}
-\setvalue{\??itemstopper\v!inline }{\ifconditional\c_strc_itemgroups_inline\itemgroupparameter\c!stopper\fi}
+\defcsname\??itemstopper\v!yes\endcsname
+ {\itemgroupparameter\c!stopper}
+
+\defcsname\??itemstopper\v!display\endcsname
+ {\ifconditional\c_strc_itemgroups_inline\else
+ \itemgroupparameter\c!stopper
+ \fi}
+
+\defcsname\??itemstopper\v!inline\endcsname
+ {\ifconditional\c_strc_itemgroups_inline
+ \itemgroupparameter\c!stopper
+ \fi}
\def\strc_itemgroups_insert_item_counter_indeed % quite slow ... every time this setup .. but it
{\begingroup % can be optimized ... best move some to strc-num
@@ -741,11 +822,11 @@
% \strc_itemgroups_insert_reference
% \endgroup}
-\let\strc_itemgroups_temp_symbol \empty
-\let\strc_itemgroups_used_symbol \empty
-\let\strc_itemgroups_asked_symbol \empty
-\let\strc_itemgroups_margin_symbol\empty
-\let\strc_itemgroups_extra_symbol \empty
+\lettonothing\strc_itemgroups_temp_symbol
+\lettonothing\strc_itemgroups_used_symbol
+\lettonothing\strc_itemgroups_asked_symbol
+\lettonothing\strc_itemgroups_margin_symbol
+\lettonothing\strc_itemgroups_extra_symbol
\def\strc_itemgroups_set_symbol#symbol%
{\edef\strc_itemgroups_temp_symbol{#symbol}%
@@ -762,14 +843,14 @@
\strc_itemgroups_store_global_symbol\currentitemgroupsymbol
\strc_itemgroups_store_local_symbol\v_strc_itemgroups_unknown_symbol
\let\strc_itemgroups_used_symbol\strc_itemgroups_set_symbol_symbol_item
- \let\strc_itemgroups_asked_symbol\empty}
+ \lettonothing\strc_itemgroups_asked_symbol}
\def\strc_itemgroups_set_symbol_conversion
{\let\currentitemgroupsymbol\strc_itemgroups_temp_symbol
\strc_itemgroups_store_global_symbol\currentitemgroupsymbol
\strc_itemgroups_store_local_symbol\strc_itemgroups_insert_item_counter
\let\strc_itemgroups_used_symbol\strc_itemgroups_set_symbol_conversion_item
- \let\strc_itemgroups_asked_symbol\empty}
+ \lettonothing\strc_itemgroups_asked_symbol}
\def\strc_itemgroups_set_symbol_symbol_item
{\symbol[\currentitemgroupsymbol]}
@@ -794,29 +875,29 @@
\orelse\ifnum\itemgroupparameter\c!factor>\zerocount
\d_strc_itemgroups_list_width\itemgroupparameter\c!step\relax
\ifzeropt\d_strc_itemgroups_list_width \d_strc_itemgroups_list_width=.5em\fi
- \multiply\d_strc_itemgroups_list_width \itemgroupparameter\c!factor
- \advance\d_strc_itemgroups_list_width\itemgroupparameter\c!width\relax
+ \multiplyby\d_strc_itemgroups_list_width \itemgroupparameter\c!factor
+ \advanceby\d_strc_itemgroups_list_width\itemgroupparameter\c!width\relax
\else
\d_strc_itemgroups_list_width\itemgroupparameter\c!width\relax
\fi
- \advance\d_strc_itemgroups_list_width\itemgroupparameter\c!distance\relax
+ \advanceby\d_strc_itemgroups_list_width\itemgroupparameter\c!distance\relax
\let\currentitemgroup\m_strc_itemgroups_saved}
-\let\p_itemgroups_options \empty
-\let\p_itemgroups_extra_options\empty
+\lettonothing\p_itemgroups_options
+\lettonothing\p_itemgroups_extra_options
\permanent\tolerant\protected\def\startitemgroup[#category]#spacer[#options]#spacer[#settings]%
{\begingroup % (1)
\nofarguments\lastarguments
\def\currentitemgroup{#category}% no nested mixing of itemgroups
\let\currentparentitemgroup\currentitemgroup
- \global\advance\c_strc_itemgroups_nesting\plusone
+ \global\advanceby\c_strc_itemgroups_nesting\plusone
\def\currentitemlevel{\number\c_strc_itemgroups_nesting}%
\normalexpanded{\chaintocurrentitemgroup{\currentparentitemgroup:\currentitemlevel}}%
\edef\currentitemgroup{\currentparentitemgroup:\currentitemlevel}%
%
\edef\p_itemgroups_options{\itemgroupparameter\c!option}%
- \let\p_itemgroups_extra_options\empty
+ \lettonothing\p_itemgroups_extra_options
\ifcase\nofarguments
\strc_itemgroups_start_indeed{}%
\or
@@ -849,7 +930,7 @@
%
% \ifhmode
% \ifconditional\c_strc_itemgroups_auto_concat
-% \ifdim\lastskip=\d_strc_itemgroups_signal
+% \ifnum\lastboundary=\c_strc_itemgroups_boundary
% \settrue\c_strc_itemgroups_concat
% \fi
% \fi
@@ -883,7 +964,7 @@
%
\ifhmode
\ifconditional\c_strc_itemgroups_auto_concat
- \ifdim\lastskip=\d_strc_itemgroups_signal
+ \ifnum\lastboundary=\c_strc_itemgroups_boundary
\settrue\c_strc_itemgroups_concat
\fi
\fi
@@ -909,6 +990,15 @@
\doadaptleftskip {\itemgroupparameter\c!leftmargindistance}%
\doadaptrightskip{\itemgroupparameter\c!rightmargindistance}%
%
+ \edef\m_strc_itemgroups_spacing{\itemgroupparameter\c!spacing}%
+ \ifx\m_strc_itemgroups_spacing\v!before
+ \c_strc_itemgroups_spacing_mode\zerocount
+ \orelse\ifx\m_strc_itemgroups_spacing\v!inbetween
+ \c_strc_itemgroups_spacing_mode\plusone
+ \orelse\ifx\m_strc_itemgroups_spacing\v!auto
+ \c_strc_itemgroups_spacing_mode\plustwo
+ \fi
+ %
\usealignparameter\itemgroupparameter
\edef\m_strc_itemgroups_indenting{\itemgroupparameter\c!indenting}%
\ifnum\c_strc_itemgroups_nesting>\zerocount
@@ -928,11 +1018,11 @@
\fi\fi
\ifconditional\c_strc_itemgroups_paragraph
\ifnum\c_strc_itemgroups_nesting>\plusone
- \letitemgroupparameter\c!inbetween\empty
+ \resetitemgroupparameter\c!inbetween
\fi
\fi
\ifconditional\c_strc_itemgroups_pack
- \letitemgroupparameter\c!inbetween\empty
+ \resetitemgroupparameter\c!inbetween
\fi
\ifconditional\c_strc_itemgroups_columns
\ifinsidecolumns\orelse\ifcase\c_strc_itemgroups_column_depth
@@ -944,13 +1034,13 @@
\fi
\ifconditional\c_strc_itemgroups_fitting
\ifdim\d_strc_itemgroups_max_width>\zeropoint
- \letitemgroupparameter\c!width\d_strc_itemgroups_max_width
+ \letitemgroupparameter\c!width\d_strc_itemgroups_max_width_reference
\fi
\fi
\strc_itemgroups_calculate_list_width\c_strc_itemgroups_nesting
\ifdim\d_strc_itemgroups_list_width>\zeropoint\relax
\ifconditional\c_strc_itemgroups_inline\else
- \frozen\advance\leftskip\d_strc_itemgroups_list_width\relax
+ \frozen\advanceby\leftskip\d_strc_itemgroups_list_width\relax
\fi
\fi
\ifempty\m_strc_itemgroups_repeat_start
@@ -966,12 +1056,12 @@
\let\startcollectitems\relax
\let\stopcollectitems \relax
-\letvalue{\??itemgroupalign\v!flushleft }\relax
-\letvalue{\??itemgroupalign\v!right }\relax
-\letvalue{\??itemgroupalign\v!flushright}\hfill
-\letvalue{\??itemgroupalign\v!left }\hfill
-\letvalue{\??itemgroupalign\v!middle }\hfil
-\letvalue{\??itemgroupalign\v!center }\hfil
+\letcsname\??itemgroupalign\v!flushleft \endcsname\relax
+\letcsname\??itemgroupalign\v!right \endcsname\relax
+\letcsname\??itemgroupalign\v!flushright\endcsname\hfill
+\letcsname\??itemgroupalign\v!left \endcsname\hfill
+\letcsname\??itemgroupalign\v!middle \endcsname\hfil
+\letcsname\??itemgroupalign\v!center \endcsname\hfil
\def\strc_itemgroups_left_sym_filler
{\csname\??itemgroupalign\itemgroupparameter\c!symalign\endcsname}
@@ -979,10 +1069,10 @@
% symbols + states
\def\strc_itemgroups_store_global_symbol#symbol%
- {\letgvalue{\??itemgroupglobal\currentitemgroup:\currentitemlevel}#symbol}
+ {\gletcsname\??itemgroupglobal\currentitemgroup:\currentitemlevel\endcsname#symbol}
\def\strc_itemgroups_store_local_symbol#symbol%
- {\letgvalue{\??itemgrouplocal\currentitemgroup:\currentitemlevel}#symbol}
+ {\gletcsname\??itemgrouplocal\currentitemgroup:\currentitemlevel\endcsname#symbol}
\def\strc_itemgroups_fetch_global_symbol
{\csname\??itemgroupglobal\currentitemgroup:\currentitemlevel\endcsname}
@@ -1035,7 +1125,7 @@
\ifconditional\c_strc_itemgroups_text
\removeunwantedspaces
\space
- \ignorespaces
+ \ignorepars % \ignorespaces
\else
\par
\fi
@@ -1070,7 +1160,7 @@
\iftrialtypesetting
\strc_counters_restore\v_strc_itemgroups_counter % could happen in LUA
\fi
- \global\advance\c_strc_itemgroups_nesting\minusone
+ \global\advanceby\c_strc_itemgroups_nesting\minusone
\xdef\currentitemlevel{\number\c_strc_itemgroups_nesting}%
%\ifconditional\c_strc_itemgroups_text
\endgroup % (2)
@@ -1103,7 +1193,7 @@
\ifconditional\c_strc_itemgroups_intro\strc_itemgroups_insert_breakno\fi
\fi}
-\newcount\c_strc_itemgroups_prev_level
+\newinteger\c_strc_itemgroups_prev_level
\def\strc_itemgroups_inbetween_command
{\nameditemgroupparameter{\currentparentitemgroup:\number\c_strc_itemgroups_prev_level}\c!inbetween}
@@ -1150,7 +1240,7 @@
% \stopitemize
% \stopitemize
-\mutable\let\currentitemreference\empty
+\mutable\lettonothing\currentitemreference
\tolerant\permanent\protected\def\startitemgroupitem[#reference]% we can reuse more
{\def\currentitemreference{#reference}%
@@ -1187,7 +1277,7 @@
\begstrut % \strut
\nobreak % else problems with intext items
\seteffectivehsize % NEW !
- \hskip\d_strc_itemgroups_signal % concat
+ \boundary\c_strc_itemgroups_boundary % was signal
\itemgroupparameter\c!command}
\protected\permanent\def\stopitemgroupitem
@@ -1229,18 +1319,19 @@
{\settrue\c_strc_itemgroups_head
\dotagsetitem\s!head% % weird place
\dostarttagged\t!itemhead\empty
- \useitemgroupstyleandcolor\c!headstyle\c!headcolor\ignorespaces}
+ \useitemgroupstyleandcolor\c!headstyle\c!headcolor
+ \ignorepars} % \ignorespaces
\protected\def\strc_itemgroups_stop_head_indeed
{\removeunwantedspaces
\dostoptagged
\ifconditional\c_strc_itemgroups_inline_head
\space
- \ignorespaces
+ \ignorepars % \ignorespaces
\else
\ifconditional\c_strc_itemgroups_text
\space
- \ignorespaces
+ \ignorepars % \ignorespaces
\else
\par
\fi
@@ -1252,7 +1343,7 @@
\protected\def\strc_itemgroups_head_body_indeed
{\dostarttagged\t!itembody\empty
\noindentation
- \ignorespaces}
+ \ignorepars} % \ignorespaces
% Simple commands.
@@ -1260,12 +1351,12 @@
{\startitemgroupitem}
\protected\def\strc_itemgroups_start_no_item
- {\let\currentitemreference\empty
+ {\lettonothing\currentitemreference
\strc_itemgroups_increment_item_counter
- %\advance\c_strc_itemgroups_n_of_items\plusone
+ %\advanceby\c_strc_itemgroups_n_of_items\plusone
\setbox\b_strc_itemgroups\emptyhbox
\strc_itemgroups_check_for_repeated
- \ignorespaces}
+ \ignorepars} % \ignorespaces
\protected\def\strc_itemgroups_start_button[#destination]%
{\edef\m_strc_itemgroups_destination{#destination}%
@@ -1314,16 +1405,13 @@
\settrue\c_strc_itemgroups_txt
\startitemgroupitem}
-% \protected\def\strc_itemgroups_start_head
-% {\settrue\c_strc_itemgroups_head
-% \startitemgrouphead}
-
-\protected\def\strc_itemgroups_start_items
- {\dosingleempty\strc_itemgroups_start_items_indeed}
-
-\protected\def\strc_itemgroups_start_items_indeed[#whatever]% something got lost
+\protected\tolerant\def\strc_itemgroups_start_items[#1]%
{\strc_itemgroups_start_edge
- {\dorecurse{0\itemgroupparameter\c!items}{\strc_itemgroups_used_symbol\hss}%
+ {\localcontrolledloop
+ \plusone
+ \ifchknum#1\or#1\else0\itemgroupparameter\c!items\fi
+ \plusone
+ {\strc_itemgroups_used_symbol\hss}%
\unskip}}
\protected\permanent\def\startspecialitemgroupitem[#name]% todo: frozen
@@ -1336,13 +1424,14 @@
\protected\permanent\def\stopspecialitemgroupitem % todo: frozen
{\stopitemgroupitem}
-\letvalue{\??itemgroupstart\v!item}\strc_itemgroups_start_do_item
-\letvalue{\??itemgroupstart\v!sub }\strc_itemgroups_start_subitem
-\letvalue{\??itemgroupstart\v!sym }\strc_itemgroups_start_symbol
-\letvalue{\??itemgroupstart\v!ran }\strc_itemgroups_start_edge
-\letvalue{\??itemgroupstart\v!its }\strc_itemgroups_start_items
-\letvalue{\??itemgroupstart\v!mar }\strc_itemgroups_start_margin
-\letvalue{\??itemgroupstart\v!txt }\strc_itemgroups_start_text
+\letcsname\??itemgroupstart\v!item\endcsname\strc_itemgroups_start_do_item
+\letcsname\??itemgroupstart\v!sub \endcsname\strc_itemgroups_start_subitem
+\letcsname\??itemgroupstart\v!sym \endcsname\strc_itemgroups_start_symbol
+\letcsname\??itemgroupstart\v!ran \endcsname\strc_itemgroups_start_edge
+\letcsname\??itemgroupstart\v!its \endcsname\strc_itemgroups_start_items
+\letcsname\??itemgroupstart\v!mar \endcsname\strc_itemgroups_start_margin
+\letcsname\??itemgroupstart\v!txt \endcsname\strc_itemgroups_start_text
+\letcsname\??itemgroupstart\v!no \endcsname\strc_itemgroups_start_no_item
\def\strc_itemgroups_optimize_breaks
{\ifcase\c_strc_itemgroups_column_depth
@@ -1372,9 +1461,9 @@
\def\strc_itemgroups_handle_text_item
{\scratchdimen\wd\b_strc_itemgroups
- \advance \scratchdimen \itemgroupparameter\c!distance\relax
+ \advanceby \scratchdimen \itemgroupparameter\c!distance\relax
\ifdim\scratchdimen>\d_strc_itemgroups_list_width
- \advance\scratchdimen -\d_strc_itemgroups_list_width
+ \advanceby\scratchdimen -\d_strc_itemgroups_list_width
\else
\scratchdimen\zeropoint
\fi
@@ -1454,7 +1543,7 @@
\strc_itemgroups_used_symbol
\fi
\fi}%
- \let\strc_itemgroups_extra_symbol\empty
+ \lettonothing\strc_itemgroups_extra_symbol
\setfalse\c_strc_itemgroups_symbol}
\def\strc_itemgroups_make_fitting_box
@@ -1496,7 +1585,7 @@
\edef\m_strc_itemgroups_repeat_start{\currentitemlevel}%
\fi
\else
- \let\m_strc_itemgroups_repeat_start\empty
+ \lettonothing\m_strc_itemgroups_repeat_start
\fi}
\def\strc_itemgroups_insert_item
@@ -1505,7 +1594,7 @@
\else
\par % done twice?
\fi
- \advance\c_strc_itemgroups_n_of_items\plusone
+ \advanceby\c_strc_itemgroups_n_of_items\plusone
\strc_itemgroups_optimize_breaks
\strc_itemgroups_check_indenting
\dontleavehmode
@@ -1519,7 +1608,7 @@
\orelse\ifdim\d_strc_itemgroups_asked_width>\zeropoint
\strc_itemgroups_make_aligned_box
\fi
- \let\m_strc_itemgroups_destination\empty
+ \lettonothing\m_strc_itemgroups_destination
\ht\b_strc_itemgroups\strutheight % just in case a symbols is not yet available in
\dp\b_strc_itemgroups\strutdepth % the current run (more a mkii mp side artifact)
\strc_itemgroups_check_for_repeated
@@ -1546,25 +1635,25 @@
\ifconditional\c_strc_itemgroups_indented_first
\hskip\parindent
\fi
- \ignorespaces}
+ \ignorepars} % \ignorespaces
\def\strc_itemgroups_start_item_nop
- {\let\currentitemreference\empty
+ {\lettonothing\currentitemreference
\strc_itemgroups_increment_item_counter
- \advance\c_strc_itemgroups_n_of_items\plusone
+ \advanceby\c_strc_itemgroups_n_of_items\plusone
\setbox\b_strc_itemgroups\hbox
{\useitemgroupstyleandcolor\c!style\c!color
\strc_itemgroups_used_symbol}%
\strc_itemgroups_check_for_repeated
- \ignorespaces}
+ \ignorepars} % \ignorespaces
-\setvalue{\??itemgroupdistance\v!none}%
+\defcsname\??itemgroupdistance\v!none\endcsname
{\let\m_strc_itemgroups_text_distance\zeropoint}
-\setvalue{\??itemgroupdistance\v!space}%
+\defcsname\??itemgroupdistance\v!space\endcsname
{\def\m_strc_itemgroups_text_distance{\interwordspace\s!plus\interwordstretch\s!minus\interwordshrink}}
-\setvalue\??itemgroupdistance % catches empty value
+\defcsname\??itemgroupdistance\endcsname % catches empty value
{\let\m_strc_itemgroups_text_distance\zeropoint}
\protected\def\strc_itemgroups_set_text_item_distance
@@ -1590,7 +1679,7 @@
% \ignorespaces}
\protected\def\strc_itemgroups_default_command
- {\ignorespaces}
+ {\ignorepars} % \ignorespaces
%D Special case:
@@ -1699,17 +1788,18 @@
% better collectitems als conditional and a real plugin mechanism (some day)
-\newcount\c_strc_itemgroups_collected_stored
-\newcount\c_strc_itemgroups_collected_done
-\newcount\c_strc_itemgroups_collected_current
+\newinteger\c_strc_itemgroups_collected_stored
+\newinteger\c_strc_itemgroups_collected_done
+\newinteger\c_strc_itemgroups_collected_current
\let\strc_itemgroups_collected_store\relax
-\let\m_strc_itemgroups_collected\empty
+\lettonothing\m_strc_itemgroups_collected
\normalexpanded{\def\strc_itemgroups_collected_store#1\csname\e!stop\v!item\endcsname}%
- {\advance\c_strc_itemgroups_collected_stored\plusone
- \setvalue{\??itemgroupstack\number\c_strc_itemgroups_collected_stored}{\startitemgroupitem#1\stopitemgroupitem}}
+ {\advanceby\c_strc_itemgroups_collected_stored\plusone
+ \defcsname\??itemgroupstack\number\c_strc_itemgroups_collected_stored\endcsname
+ {\startitemgroupitem#1\stopitemgroupitem}}
\def\strc_itemgroups_collected_flush_randomize
{\m_strc_itemgroups_collected}
@@ -1736,7 +1826,7 @@
{\ifconditional\c_strc_itemgroups_randomize
\getrandomcount\c_strc_itemgroups_collected_current\plusone\c_strc_itemgroups_collected_stored
\else
- \advance\c_strc_itemgroups_collected_current\plusone
+ \advanceby\c_strc_itemgroups_collected_current\plusone
\fi
\ifcsname\??itemgroupstack\number\c_strc_itemgroups_collected_current\endcsname
\edef\m_strc_itemgroups_collected{\lastnamedcs}%
@@ -1745,7 +1835,7 @@
\else
\strc_itemgroups_collected_flush_indeed
\fi
- \advance\c_strc_itemgroups_collected_done\plusone
+ \advanceby\c_strc_itemgroups_collected_done\plusone
\fi
\ifnum\c_strc_itemgroups_collected_done<\c_strc_itemgroups_collected_stored
\expandafter\strc_itemgroups_collected_flush
@@ -1812,7 +1902,7 @@
% \setbox\scratchbox\hbox{\settrialtypesetting#text}%
% \setbox\scratchbox\hbox\ifdim\wd\scratchbox<1em to 1.5\else spread 1\fi em{#text\hfil}%
% \normalexpanded{\box\scratchbox\endgroup\hangindent\the\wd\scratchbox}%
-% \ignorespaces}
+% \ignorepars} % \ignorespaces
%D End of plugin.
@@ -1836,11 +1926,11 @@
%letitemgroupparameter\c!width\zeropoint
\strc_itemgroups_make_symbol_box
\strc_itemgroups_make_destination_box
- \let\m_strc_itemgroups_destination\empty
+ \lettonothing\m_strc_itemgroups_destination
\ht\b_strc_itemgroups\strutheight
\dp\b_strc_itemgroups\strutdepth
\box\b_strc_itemgroups
- \ignorespaces}
+ \ignorepars} % \ignorespaces
%D Done again.
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-lab.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-lab.mkxl
index 3794fdca935..327810a5198 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-lab.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-lab.mkxl
@@ -71,10 +71,10 @@
% todo: \strc_labels_command for user
-\let\m_strc_labels_sub\empty
+\lettonothing\m_strc_labels_sub
\appendtoks
- \let\m_strc_labels_sub\empty
+ \lettonothing\m_strc_labels_sub
\ifempty\currentlabelparent
% clone => parent | subclone => clone | subsubclone => subclone
\strc_define_commands_label
@@ -106,12 +106,12 @@
\letlabelparameter\s!counter\p_counter
\to \everydefinelabel
-\let\p_strc_constructions_title \empty
-\let\p_strc_constructions_number\empty
+\lettonothing\p_strc_constructions_title
+\lettonothing\p_strc_constructions_number
\newconditional\c_strc_constructions_number_keep
-\setvalue{\??constructioninitializer\v!label}%
+\defcsname\??constructioninitializer\v!label\endcsname
{\let \currentlabel \currentconstruction
\enforced\let\constructionparameter \labelparameter
\enforced\let\constructionnamespace \??label
@@ -139,7 +139,7 @@
\setfalse\c_strc_constructions_title_state
\fi}
-\setvalue{\??constructionfinalizer\v!label}%
+\defcsname\??constructionfinalizer\v!label\endcsname
{\ifconditional\c_strc_constructions_number_state
\iftrialtypesetting
\strc_counters_restore\currentconstructionnumber
@@ -148,8 +148,8 @@
%D Interfaces:
-\protected\def\strc_labels_command{\setfalse\c_strc_constructions_number_keep\strc_descriptions_command}
-\protected\def\strc_labels_current{\settrue \c_strc_constructions_number_keep\strc_descriptions_command}
+\protected\def\strc_labels_command{\setfalse\c_strc_constructions_number_keep\nameddescription}
+\protected\def\strc_labels_current{\settrue \c_strc_constructions_number_keep\nameddescription}
\protected\def\strc_labels_next {\strc_constructions_next_indeed \namedlabelparameter} % #1#2
\protected\def\strc_labels_reset {\strc_constructions_reset_indeed\namedlabelparameter} % #1#2
@@ -173,12 +173,12 @@
\letcsname\??constructionmainhandler\v!label\expandafter\endcsname\csname\??constructionmainhandler\v!description\endcsname
-\protected\setevalue{\??constructioncommandhandler\v!label}%
+\protected\edefcsname\??constructioncommandhandler\v!label\endcsname
{\csname\??constructionstarthandler\v!construction\endcsname
\csname\??constructionstophandler \v!construction\endcsname
\endgroup}
-\protected\setvalue{\??constructiontexthandler\v!label}%
+\protected\defcsname\??constructiontexthandler\v!label\endcsname
{\begingroup
\useconstructionstyleandcolor\c!headstyle\c!headcolor
\strc_labels_text
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-lnt.mklx b/Master/texmf-dist/tex/context/base/mkxl/strc-lnt.mklx
index f389442d83c..331be873728 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-lnt.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-lnt.mklx
@@ -23,8 +23,8 @@
\aliased\let\setuplinenote\setupnote
-\newcount\c_strc_linenotes
-\newtoks\everydefinelinenote
+\newinteger\c_strc_linenotes
+\newtoks \everydefinelinenote
\permanent\tolerant\protected\def\definelinenote[#1]#*[#2]#*[#3]%
{\ifarguments
@@ -55,13 +55,13 @@
\fi}
\protected\def\strc_linenotes_direct#1#2%
- {\global\advance\c_strc_linenotes\plusone
+ {\global\advanceby\c_strc_linenotes\plusone
\strc_linenotes_indeed{#1}{\the\c_strc_linenotes}{#2}%
\strc_linenotes_traced\empty
\normalexpanded{\someline[\the\c_strc_linenotes]}}
\protected\def\strc_linenotes_start#1[#2]#3%
- {\global\advance\c_strc_linenotes\plusone
+ {\global\advanceby\c_strc_linenotes\plusone
\keepunwantedspaces
\strc_linenotes_indeed{#1}{#2}{#3}%
\strc_linenotes_traced{#2}%
@@ -87,7 +87,7 @@
% maybe do this in lua
-\mutable\let\currentlinenotereference\empty
+\mutable\lettonothing\currentlinenotereference
\def\page_lines_in_from{\in[lr:b:\currentlinenotereference]}
\def\page_lines_in_to {\in[lr:e:\currentlinenotereference]}
@@ -136,7 +136,7 @@
\fi
\fi}
-\let\currentlinenotereference\empty
+\lettonothing\currentlinenotereference
\mutable\let\linenotelinenumber\relax
@@ -163,7 +163,7 @@
% compress=yes|no
% compressmethod=separator|stopper
-\setvalue{\??linenotescompressmethod\v!separator}%
+\defcsname\??linenotescompressmethod\v!separator\endcsname
{\edef\p_compressseparator{\noteparameter\c!compressseparator}%
\scratchskip\noteparameter\c!compressdistance\relax
\ifempty\p_compressseparator
@@ -174,7 +174,7 @@
\hskip.5\scratchskip
\fi}
-\setvalue{\??linenotescompressmethod\v!stopper}%
+\defcsname\??linenotescompressmethod\v!stopper\endcsname
{\edef\p_compressstopper{\noteparameter\c!compressstopper}%
\scratchskip\noteparameter\c!compressdistance\relax
\ifempty\p_compressstopper
@@ -184,7 +184,7 @@
\hskip.5\scratchskip
\fi}
-\setvalue{\??linenotescompressmethod\v!space}%
+\defcsname\??linenotescompressmethod\v!space\endcsname
{\hskip\noteparameter\c!compressdistance\relax}
\def\strc_linenotes_check_compression
@@ -200,7 +200,10 @@
\fi}
\def\strc_linenotes_inbetween % \ifcsname\??linenote\currentnote\expandafter\endcsname
- {\begincsname\??linenotescompressmethod\p_linenotes_compressmethod\endcsname}
+ {\begingroup
+ \strc_linenotes_check_compression
+ \begincsname\??linenotescompressmethod\p_linenotes_compressmethod\endcsname
+ \endgroup}
\def\strc_notes_compress_distance{\emwidth \s!plus .5\emwidth \s!minus .25\emwidth}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-lst.lmt b/Master/texmf-dist/tex/context/base/mkxl/strc-lst.lmt
new file mode 100644
index 00000000000..359fbd6b64c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-lst.lmt
@@ -0,0 +1,1544 @@
+if not modules then modules = { } end modules ['strc-lst'] = {
+ version = 1.001,
+ comment = "companion to strc-lst.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- when all datastructures are stable a packer will be added which will
+-- bring down memory consumption a bit; we can use for instance a pagenumber,
+-- section, metadata cache (internal then has to move up one level) or a
+-- shared cache [we can use a fast and stupid serializer]
+
+-- todo: tag entry in list is crap
+--
+-- move more to commands
+
+local tonumber, type, next = tonumber, type, next
+local concat, insert, remove, sort = table.concat, table.insert, table.remove, table.sort
+local lpegmatch = lpeg.match
+
+local setmetatableindex = table.setmetatableindex
+local sortedkeys = table.sortedkeys
+
+local settings_to_set = utilities.parsers.settings_to_set
+local allocate = utilities.storage.allocate
+local checked = utilities.storage.checked
+
+local trace_lists = false trackers.register("structures.lists", function(v) trace_lists = v end)
+
+local report_lists = logs.reporter("structure","lists")
+
+local context = context
+local commands = commands
+local implement = interfaces.implement
+local conditionals = tex.conditionals
+
+local ctx_latelua = context.latelua
+
+local cheat = true
+
+local structures = structures
+local lists = structures.lists
+local sections = structures.sections
+local helpers = structures.helpers
+local documents = structures.documents
+local tags = structures.tags
+local counters = structures.counters
+local references = structures.references
+
+local collected = allocate()
+local tobesaved = allocate()
+local cached = allocate()
+local pushed = allocate()
+local kinds = allocate()
+local names = allocate()
+
+lists.collected = collected
+lists.tobesaved = tobesaved
+
+lists.enhancers = lists.enhancers or { }
+-----.internals = allocate(lists.internals or { }) -- to be checked
+lists.ordered = allocate(lists.ordered or { }) -- to be checked
+lists.cached = cached
+lists.pushed = pushed
+lists.kinds = kinds
+lists.names = names
+
+local sorters = sorters
+local sortstripper = sorters.strip
+local sortsplitter = sorters.splitters.utf
+local sortcomparer = sorters.comparers.basic
+
+local sectionblocks = allocate()
+lists.sectionblocks = sectionblocks
+
+references.specials = references.specials or { }
+
+local matchingtilldepth = sections.matchingtilldepth
+local numberatdepth = sections.numberatdepth
+local getsectionlevel = sections.getlevel
+local typesetnumber = sections.typesetnumber
+local autosectiondepth = sections.autodepth
+
+local variables = interfaces.variables
+
+local v_all = variables.all
+local v_reference = variables.reference
+local v_title = variables.title
+local v_command = variables.command
+local v_text = variables.text
+local v_current = variables.current
+local v_previous = variables.previous
+local v_intro = variables.intro
+local v_here = variables.here
+local v_component = variables.component
+local v_product = variables.product
+local v_local = variables["local"]
+local v_default = variables.default
+
+local cheats = {
+ [variables.fit] = true,
+ [variables.tight] = true,
+}
+
+local function zerostrippedconcat(t,separator)
+ local f = 1
+ local l = #t
+ for i=f,l do
+ if t[i] == 0 then
+ f = f + 1
+ end
+ end
+ for i=l,f,-1 do
+ if t[i] == 0 then
+ l = l - 1
+ end
+ end
+ return concat(t,separator,f,l)
+end
+
+-- -- -- -- -- --
+
+local function initializer()
+ -- create a cross reference between internal references
+ -- and list entries
+ local collected = lists.collected
+ local internals = checked(references.internals)
+ local ordered = lists.ordered
+ local usedinternals = references.usedinternals
+ local blockdone = { }
+ local lastblock = nil
+ for i=1,#collected do
+ local c = collected[i]
+ local m = c.metadata
+ local r = c.references
+ if m then
+ -- access by internal reference
+ if r then
+ local internal = r.internal
+ if internal then
+ internals[internal] = c
+ usedinternals[internal] = r.used
+ end
+ local block = r.block
+ if not block then
+ -- shouldn't happen
+ elseif lastblock == block then
+ -- we're okay
+ elseif lastblock then
+ if blockdone[block] then
+ report_lists("out of order sectionsblocks, maybe use \\setsectionblock")
+ else
+ blockdone[block] = true
+ sectionblocks[#sectionblocks+1] = block
+ end
+ lastblock = block
+ elseif not blockdone[block] then
+ blockdone[block] = true
+ sectionblocks[#sectionblocks+1] = block
+ lastblock = block
+ end
+ end
+ -- access by order in list
+ local kind = m.kind
+ local name = m.name
+ if kind and name then
+ local ok = ordered[kind]
+ if ok then
+ local on = ok[name]
+ if on then
+ on[#on+1] = c
+ else
+ ok[name] = { c }
+ end
+ else
+ ordered[kind] = { [name] = { c } }
+ end
+ kinds[kind] = true
+ names[name] = true
+ elseif kind then
+ kinds[kind] = true
+ elseif name then
+ names[name] = true
+ end
+ end
+ if r then
+ r.listindex = i -- handy to have
+ end
+ end
+end
+
+local function finalizer()
+ local flaginternals = references.flaginternals
+ local usedviews = references.usedviews
+ for i=1,#tobesaved do
+ local r = tobesaved[i].references
+ if r then
+ local i = r.internal
+ local f = flaginternals[i]
+ local v = usedviews[i]
+ if cheat and v and cheats[v] then -- cheats check added, to be tested by RKB
+ -- this permits runs=2 with interactivity
+ r.view = v
+ end
+ if f then
+ r.used = v or true
+ end
+ end
+ end
+end
+
+job.register('structures.lists.collected', tobesaved, initializer, finalizer)
+
+local groupindices = setmetatableindex("table")
+
+function lists.groupindex(name,group)
+ local groupindex = groupindices[name]
+ return groupindex and groupindex[group] or 0
+end
+
+-- we could use t (as hash key) in order to check for dup entries
+
+function lists.addto(t) -- maybe more more here (saves parsing at the tex end)
+ local metadata = t.metadata
+ local userdata = t.userdata
+ local numberdata = t.numberdata
+ if userdata and type(userdata) == "string" then
+ t.userdata = helpers.touserdata(userdata)
+ end
+ if not metadata.level then
+ metadata.level = structures.sections.currentlevel() -- this is not used so it will go away
+ end
+ --
+ -- if not conditionals.inlinelefttoright then
+ -- metadata.idir = "r2l"
+ -- end
+ -- if not conditionals.displaylefttoright then
+ -- metadata.ddir = "r2l"
+ -- end
+ --
+ if numberdata then
+ local numbers = numberdata.numbers
+ if type(numbers) == "string" then
+ counters.compact(numberdata,numbers,numberdata.level)
+ end
+ end
+ local group = numberdata and numberdata.group
+ local name = metadata.name
+ local kind = metadata.kind
+ if not group then
+ -- forget about it
+ elseif group == "" then
+ group, numberdata.group = nil, nil
+ else
+ local groupindex = groupindices[name][group]
+ if groupindex then
+ numberdata.numbers = cached[groupindex].numberdata.numbers
+ end
+ end
+ local setcomponent = references.setcomponent
+ if setcomponent then
+ setcomponent(t) -- can be inlined
+ end
+ local r = t.references
+ if r and not r.section then
+ r.section = structures.sections.currentid()
+ end
+ local b = r and t.block
+ if r and not b then
+ local s = r.section
+ if s then
+ s = structures.sections.tobesaved[s]
+ r.block = s and s.block or nil
+ end
+ end
+ local i = r and r.internal or 0 -- brrr
+ if r and kind and name then
+ local tag = tags.getid(kind,name)
+ if tag and tag ~= "?" then
+ r.tag = tag -- todo: use internal ... is unique enough
+ end
+ end
+ local p = pushed[i]
+ if not p then
+ p = #cached + 1
+ cached[p] = helpers.simplify(t)
+ pushed[i] = p
+ if r then
+ r.listindex = p
+ end
+ end
+ if group then
+ groupindices[name][group] = p
+ end
+ if trace_lists then
+ report_lists("added %a, internal %a",name,p)
+ end
+ return p
+end
+
+function lists.discard(n)
+ n = tonumber(n)
+ if not n then
+ -- maybe an error message
+ elseif n == #cached then
+ cached[n] = nil
+ n = n - 1
+ while n > 0 and cached[n] == false do
+ cached[n] = nil -- collect garbage
+ n = n - 1
+ end
+ else
+ cached[n] = false
+ end
+end
+
+function lists.iscached(n)
+ return cached[tonumber(n)]
+end
+
+-- this is the main pagenumber enhancer
+
+local enhanced = { }
+
+local synchronizepage = function(r) -- bah ... will move
+ synchronizepage = references.synchronizepage
+ return synchronizepage(r)
+end
+
+local function enhancelist(specification)
+ local n = specification.n
+ local l = cached[n]
+ if not l then
+ report_lists("enhancing %a, unknown internal",n)
+ elseif enhanced[n] then
+ if trace_lists then
+ report_lists("enhancing %a, name %a, duplicate ignored",n,name)
+ end
+ else
+ local metadata = l.metadata
+ local references = l.references
+ --
+ l.directives = nil -- might change
+ -- save in the right order (happens at shipout)
+ lists.tobesaved[#lists.tobesaved+1] = l
+ -- default enhancer (cross referencing)
+ synchronizepage(references)
+ -- tags
+ local kind = metadata.kind
+ local name = metadata.name
+ if trace_lists then
+ report_lists("enhancing %a, name %a, page %a",n,name,references.realpage or 0)
+ end
+-- if references then
+-- -- is this used ?
+-- local tag = tags.getid(kind,name)
+-- if tag and tag ~= "?" then
+-- references.tag = tag
+-- end
+-- end
+ -- specific enhancer (kind of obsolete)
+ local enhancer = kind and lists.enhancers[kind]
+ if enhancer then
+ enhancer(l)
+ end
+ --
+ enhanced[n] = true
+ return l
+ end
+end
+
+lists.enhance = enhancelist
+
+-- we can use level instead but we can also decide to remove level from the metadata
+
+local nesting = { }
+
+function lists.pushnesting(i)
+ local parent = lists.result[i]
+ local name = parent.metadata.name
+ local numberdata = parent and parent.numberdata
+ local numbers = numberdata and numberdata.numbers
+ local number = numbers and numbers[getsectionlevel(name)] or 0
+ insert(nesting, {
+ number = number,
+ name = name,
+ result = lists.result,
+ parent = parent
+ })
+end
+
+function lists.popnesting()
+ local old = remove(nesting)
+ if old then
+ lists.result = old.result
+ else
+ report_lists("nesting error")
+ end
+end
+
+-- Historically we had blocks but in the mkiv approach that could as well be a level
+-- which would simplify things a bit.
+
+local splitter = lpeg.splitat(":") -- maybe also :: or have a block parameter
+
+local listsorters = {
+ [v_command] = function(a,b)
+ if a.metadata.kind == "command" or b.metadata.kind == "command" then
+ return a.references.internal < b.references.internal
+ else
+ return a.references.order < b.references.order
+ end
+ end,
+ [v_all] = function(a,b)
+ return a.references.internal < b.references.internal
+ end,
+ [v_title] = function(a,b)
+ local da = a.titledata
+ local db = b.titledata
+ if da and db then
+ local ta = da.title
+ local tb = db.title
+ if ta and tb then
+ local sa = da.split
+ if not sa then
+ sa = sortsplitter(sortstripper(ta))
+ da.split = sa
+ end
+ local sb = db.split
+ if not sb then
+ sb = sortsplitter(sortstripper(tb))
+ db.split = sb
+ end
+ return sortcomparer(da,db) == -1
+ end
+ end
+ return a.references.internal < b.references.internal
+ end
+}
+
+-- was: names, criterium, number, collected, forced, nested, sortorder
+
+local filters = setmetatableindex(function(t,k) return t[v_default] end)
+
+local function filtercollected(specification)
+ --
+ local names = specification.names or { }
+ local criterium = specification.criterium or v_default
+ local number = 0 -- specification.number
+ local reference = specification.reference or ""
+ local collected = specification.collected or lists.collected
+ local forced = specification.forced or { }
+ local nested = specification.nested or false
+ local sortorder = specification.sortorder or specification.order
+ --
+ local numbers = documents.data.numbers
+ local depth = documents.data.depth
+ local block = false -- all
+ local wantedblock, wantedcriterium = lpegmatch(splitter,criterium) -- block:criterium
+ if wantedblock == "" or wantedblock == v_all or wantedblock == v_text then
+ criterium = wantedcriterium ~= "" and wantedcriterium or criterium
+ elseif not wantedcriterium then
+ block = documents.data.block
+ else
+ block = wantedblock
+ criterium = wantedcriterium
+ end
+ if block == "" then
+ block = false
+ end
+ if type(names) == "string" then
+ names = settings_to_set(names)
+ end
+ local all = not next(names) or names[v_all] or false
+ --
+ specification.names = names
+ specification.criterium = criterium
+ specification.number = 0 -- obsolete
+ specification.reference = reference -- new
+ specification.collected = collected
+ specification.forced = forced -- todo: also on other branched, for the moment only needed for bookmarks
+ specification.nested = nested
+ specification.sortorder = sortorder
+ specification.numbers = numbers
+ specification.depth = depth
+ specification.block = block
+ specification.all = all
+ --
+ if specification.atmost then
+ criterium = v_text
+ end
+ --
+ if trace_lists then
+ report_lists("filtering names %,t, criterium %a, block %a",sortedkeys(names), criterium, block or "*")
+ end
+ local result = filters[criterium](specification)
+ if trace_lists then
+ report_lists("criterium %a, block %a, found %a",specification.criterium, specification.block or "*", #result)
+ end
+ --
+ local levels = tonumber(specification.levels)
+ if levels then
+ local minlevel = 1000
+ local found = result
+ local nofresult = #result
+ for i=1,nofresult do
+ local v = found[i]
+ local l = v.metadata.level or 1
+ if l < minlevel then
+ minlevel = l
+ end
+ end
+ local maxlevel = minlevel + levels - 1
+ result = { }
+ nofresult = 0
+ for i=1,#found do
+ local v = found[i]
+ local l = v.metadata.level or 1
+ if l >= minlevel and l <= maxlevel then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ end
+ end
+ --
+ if sortorder then -- experiment
+ local sorter = listsorters[sortorder]
+ if sorter then
+ if trace_lists then
+ report_lists("sorting list using method %a",sortorder)
+ end
+ for i=1,#result do
+ result[i].references.order = i
+ end
+ sort(result,sorter)
+ end
+ end
+ --
+ return result
+end
+
+filters[v_intro] = function(specification)
+ local collected = specification.collected
+ local result = { }
+ local nofresult = 0
+ local all = specification.all
+ local names = specification.names
+ for i=1,#collected do
+ local v = collected[i]
+ local metadata = v.metadata
+ if metadata and (all or names[metadata.name or false]) then
+ local r = v.references
+ if r and r.section == 0 then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ end
+ end
+ return result
+end
+
+filters[v_reference] = function(specification)
+ local collected = specification.collected
+ local result = { }
+ local nofresult = 0
+ local names = specification.names
+ local sections = sections.collected
+ local reference = specification.reference
+ if reference ~= "" then
+ local prefix, rest = lpegmatch(references.prefixsplitter,reference) -- p::r
+ local r = prefix and rest and references.derived[prefix][rest] or references.derived[""][reference]
+ local s = r and r.numberdata -- table ref !
+ if s then
+ local depth = getsectionlevel(r.metadata.name)
+ local numbers = s.numbers
+ for i=1,#collected do
+ local v = collected[i]
+ local r = v.references
+ if r and (not block or not r.block or block == r.block) then
+ local metadata = v.metadata
+ if metadata and names[metadata.name or false] then
+ local sectionnumber = (r.section == 0) or sections[r.section]
+ if sectionnumber then
+ if matchingtilldepth(depth,numbers,sectionnumber.numbers) then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ end
+ end
+ end
+ end
+ else
+ report_lists("unknown reference %a specified",reference)
+ end
+ else
+ report_lists("no reference specified")
+ end
+ return result
+end
+
+-- maybe:
+--
+-- filters[v_reference] = function(specification)
+-- local collected = specification.collected
+-- local result = { }
+-- local nofresult = 0
+-- local names = specification.names
+-- local sections = sections.collected
+-- local reference = specification.reference
+-- if reference ~= "" then
+-- local split = references.splitreference(reference)
+-- if split then
+-- local prefix = split and split.outer
+-- local rest = split and split.inner
+-- if prefix and rest then
+-- local d = references.derived
+-- local r = (d[prefix] and d[prefix][rest]) or (d[""] and d[""][reference])
+-- local s = r and r.numberdata -- table ref !
+-- if s then
+-- local depth = getsectionlevel(r.metadata.name)
+-- local numbers = s.numbers
+-- for i=1,#collected do
+-- local v = collected[i]
+-- local r = v.references
+-- if r and (not block or not r.block or block == r.block) then
+-- local metadata = v.metadata
+-- if metadata and names[metadata.name or false] then
+-- local sectionnumber = (r.section == 0) or sections[r.section]
+-- if sectionnumber then
+-- if matchingtilldepth(depth,numbers,sectionnumber.numbers) then
+-- nofresult = nofresult + 1
+-- result[nofresult] = v
+-- end
+-- end
+-- end
+-- end
+-- end
+-- else
+-- report_lists("unknown reference %a specified",reference)
+-- end
+-- end
+-- end
+-- else
+-- report_lists("no reference specified")
+-- end
+-- return result
+-- end
+
+filters[v_all] = function(specification)
+ local collected = specification.collected
+ local result = { }
+ local nofresult = 0
+ local block = specification.block
+ local all = specification.all
+ local forced = specification.forced
+ local names = specification.names
+ local sections = sections.collected
+ for i=1,#collected do
+ local v = collected[i]
+ local r = v.references
+ if r and (not block or not r.block or block == r.block) then
+ local metadata = v.metadata
+ if metadata then
+ local name = metadata.name or false
+ local sectionnumber = (r.section == 0) or sections[r.section]
+ if forced[name] or (sectionnumber and not metadata.nolist and (all or names[name])) then -- and not sectionnumber.hidenumber then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ end
+ end
+ end
+ return result
+end
+
+filters[v_text] = filters[v_all]
+
+filters[v_current] = function(specification)
+ if specification.depth == 0 then
+ specification.nested = false
+ specification.criterium = v_intro
+ return filters[v_intro](specification)
+ end
+ local collected = specification.collected
+ local result = { }
+ local nofresult = 0
+ local depth = specification.depth
+ local block = specification.block
+ local all = specification.all
+ local names = specification.names
+ local numbers = specification.numbers
+ local sections = sections.collected
+ for i=1,#collected do
+ local v = collected[i]
+ local r = v.references
+ if r and (not block or not r.block or block == r.block) then
+ local sectionnumber = sections[r.section]
+ if sectionnumber then -- and not sectionnumber.hidenumber then
+ local cnumbers = sectionnumber.numbers
+ local metadata = v.metadata
+ if cnumbers then
+ if metadata and not metadata.nolist and (all or names[metadata.name or false]) and #cnumbers > depth then
+ local ok = true
+ for d=1,depth do
+ local cnd = cnumbers[d]
+ if not (cnd == 0 or cnd == numbers[d]) then
+ ok = false
+ break
+ end
+ end
+ if ok then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ end
+ end
+ end
+ end
+ end
+ return result
+end
+
+filters[v_here] = function(specification)
+ -- this is quite dirty ... as cnumbers is not sparse we can misuse #cnumbers
+ if specification.depth == 0 then
+ specification.nested = false
+ specification.criterium = v_intro
+ return filters[v_intro](specification)
+ end
+ local collected = specification.collected
+ local result = { }
+ local nofresult = 0
+ local depth = specification.depth
+ local block = specification.block
+ local all = specification.all
+ local names = specification.names
+ local numbers = specification.numbers
+ local sections = sections.collected
+ for i=1,#collected do
+ local v = collected[i]
+ local r = v.references
+ if r then -- and (not block or not r.block or block == r.block) then
+ local sectionnumber = sections[r.section]
+ if sectionnumber then -- and not sectionnumber.hidenumber then
+ local cnumbers = sectionnumber.numbers
+ local metadata = v.metadata
+ if cnumbers then
+ if metadata and not metadata.nolist and (all or names[metadata.name or false]) and #cnumbers >= depth then
+ local ok = true
+ for d=1,depth do
+ local cnd = cnumbers[d]
+ if not (cnd == 0 or cnd == numbers[d]) then
+ ok = false
+ break
+ end
+ end
+ if ok then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ end
+ end
+ end
+ end
+ end
+ return result
+end
+
+filters[v_previous] = function(specification)
+ if specification.depth == 0 then
+ specification.nested = false
+ specification.criterium = v_intro
+ return filters[v_intro](specification)
+ end
+ local collected = specification.collected
+ local result = { }
+ local nofresult = 0
+ local block = specification.block
+ local all = specification.all
+ local names = specification.names
+ local numbers = specification.numbers
+ local sections = sections.collected
+ local depth = specification.depth
+ for i=1,#collected do
+ local v = collected[i]
+ local r = v.references
+ if r and (not block or not r.block or block == r.block) then
+ local sectionnumber = sections[r.section]
+ if sectionnumber then -- and not sectionnumber.hidenumber then
+ local cnumbers = sectionnumber.numbers
+ local metadata = v.metadata
+ if cnumbers then
+ if metadata and not metadata.nolist and (all or names[metadata.name or false]) and #cnumbers >= depth then
+ local ok = true
+ for d=1,depth-1 do
+ local cnd = cnumbers[d]
+ if not (cnd == 0 or cnd == numbers[d]) then
+ ok = false
+ break
+ end
+ end
+ if ok then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ end
+ end
+ end
+ end
+ end
+ return result
+end
+
+filters[v_local] = function(specification)
+ local numbers = specification.numbers
+ local nested = nesting[#nesting]
+ if nested then
+ return filtercollected {
+ names = specification.names,
+ criterium = nested.name,
+ collected = specification.collected,
+ forced = specification.forced,
+ nested = nested,
+ sortorder = specification.sortorder,
+ }
+ else
+ specification.criterium = autosectiondepth(numbers) == 0 and v_all or v_current
+ specification.nested = false
+ return filtercollected(specification) -- rechecks, so better (for determining all)
+ end
+end
+
+filters[v_component] = function(specification)
+ -- special case, no structure yet
+ local collected = specification.collected
+ local result = { }
+ local nofresult = 0
+ local all = specification.all
+ local names = specification.names
+ local component = resolvers.jobs.currentcomponent() or ""
+ if component ~= "" then
+ for i=1,#collected do
+ local v = collected[i]
+ local r = v.references
+ local m = v.metadata
+ if r and r.component == component and (m and names[m.name] or all) then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ end
+ end
+ return result
+end
+
+-- filters[v_product] = function(specification)
+-- local reference = specification.reference
+-- if reference and reference ~= "" then
+-- -- local utilitydata = job.loadother(reference,true)
+-- local fullname = file.replacesuffix(reference,"tuc")
+-- if lfs.isfile(fullname) then
+-- local utilitydata = job.loadother(fullname)
+-- if utilitydata then
+-- local collected = utilitydata.structures.lists.collected or { }
+-- setmetatableindex(collected,{ external = reference })
+-- return collected
+-- end
+-- end
+-- end
+-- return { }
+-- end
+
+filters[v_product] = function(specification)
+ local reference = specification.reference
+ if reference and reference ~= "" then
+ local utilitydata = job.loadother(reference,true)
+-- local fullname = file.replacesuffix(reference,"tuc")
+-- if lfs.isfile(fullname) then
+-- local utilitydata = job.loadother(fullname)
+ if utilitydata then
+ local collected = utilitydata.structures.lists.collected or { }
+ local result = { }
+ local nofresult = 0
+ local all = specification.all
+ local names = specification.names
+setmetatableindex(result,{ external = reference }) -- brr
+ for i=1,#collected do
+ local v = collected[i]
+ local m = v.metadata
+ if m and names[m.name] or all then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ end
+ return result
+-- end
+ end
+ end
+ return { }
+end
+
+-- local number = tonumber(number) or numberatdepth(depth) or 0
+-- if number > 0 then
+-- ...
+-- end
+
+filters[v_default] = function(specification) -- is named
+ local collected = specification.collected
+ local result = { }
+ local nofresult = 0
+ ----- depth = specification.depth
+ local block = specification.block
+ local criterium = specification.criterium
+ local all = specification.all
+ local names = specification.names
+ local numbers = specification.numbers
+ local sections = sections.collected
+ local reference = specification.reference
+ local nested = specification.nested
+ --
+ if reference then
+ reference = tonumber(reference)
+ end
+ --
+ local depth = getsectionlevel(criterium)
+ local pnumbers = nil
+ local pblock = block
+ local parent = nested and nested.parent
+ --
+ if parent then
+ pnumbers = parent.numberdata.numbers or pnumbers -- so local as well as nested
+ pblock = parent.references.block or pblock
+ if trace_lists then
+ report_lists("filtering by block %a and section %a",pblock,criterium)
+ end
+ end
+ --
+ for i=1,#collected do
+ local v = collected[i]
+ local r = v.references
+-- inspect(v)
+ if r and (not block or not r.block or pblock == r.block) then
+ local sectionnumber = sections[r.section]
+ if sectionnumber then
+ local metadata = v.metadata
+ local cnumbers = sectionnumber.numbers
+ if cnumbers then
+ if all or names[metadata.name or false] then
+ if reference then
+ -- filter by number
+ if reference == cnumbers[depth] then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ else
+ if #cnumbers >= depth and matchingtilldepth(depth,cnumbers,pnumbers) then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ return result
+end
+
+-- names, criterium, number, collected, forced, nested, sortorder) -- names is hash or string
+
+lists.filter = filtercollected
+
+lists.result = { }
+
+function lists.getresult(r)
+ return lists.result[r]
+end
+
+function lists.process(specification)
+ local result = filtercollected(specification)
+ local total = #result
+ lists.result = result
+ if total > 0 then
+ local usedinternals = references.usedinternals
+ local usedviews = references.usedviews
+ local specials = settings_to_set(specification.extras or "")
+ specials = next(specials) and specials or nil
+ for i=1,total do
+ local listentry = result[i]
+ local metadata = listentry.metadata
+ local numberdata = listentry.numberdata
+ local references = listentry.references
+ local special = specials and numberdata and specials[zerostrippedconcat(numberdata.numbers,".")] or ""
+ local view = usedviews[i]
+ -- if cheat and references then
+ -- -- HH: I still need to test this patch:
+ if cheat and references and view and cheats[view] then
+ -- this permits runs=2 with interactivity
+ local internal = references.internal
+ usedinternals[internal] = true
+ usedviews [internal] = references.view
+ end
+ context.strclistsentryprocess(metadata.name,metadata.kind,i,special)
+ end
+ end
+end
+
+function lists.analyze(specification)
+ lists.result = filtercollected(specification)
+end
+
+function lists.userdata(name,r,tag) -- to tex (todo: xml)
+ local result = lists.result[r]
+ if result then
+ local userdata = result.userdata
+ local str = userdata and userdata[tag]
+ if str then
+ return str, result.metadata
+ end
+ end
+end
+
+function lists.uservalue(name,r,tag,default) -- to lua
+ local str = lists.result[r]
+ if str then
+ str = str.userdata
+ end
+ if str then
+ str = str[tag]
+ end
+ return str or default
+end
+
+function lists.size()
+ return #lists.result
+end
+
+function lists.external(n)
+ return lists.result.external or ""
+end
+
+function lists.location(n)
+ local l = lists.result[n]
+ return l and l.references.internal or n
+end
+
+function lists.label(n,default)
+ local l = lists.result[n]
+ local t = l.titledata
+ return t and t.label or default or ""
+end
+
+function lists.sectionnumber(name,n,spec)
+ local data = lists.result[n]
+ local sectiondata = sections.collected[data.references.section]
+ -- hm, prefixnumber?
+ typesetnumber(sectiondata,"prefix",spec,sectiondata) -- data happens to contain the spec too
+end
+
+-- some basics (todo: helpers for pages)
+
+function lists.title(name,n,tag) -- tag becomes obsolete
+ local data = lists.result[n]
+ if data then
+ local titledata = data.titledata
+ if titledata then
+ helpers.title(titledata[tag] or titledata.list or titledata.title or "",data.metadata)
+ end
+ end
+end
+
+function lists.hastitledata(name,n,tag)
+ local data = cached[tonumber(n)]
+ if data then
+ local titledata = data.titledata
+ if titledata then
+ return (titledata[tag] or titledata.title or "") ~= ""
+ end
+ end
+ return false
+end
+
+function lists.haspagedata(name,n)
+ local data = lists.result[n]
+ if data then
+ local references = data.references
+ if references and references.realpage then -- or references.pagedata
+ return true
+ end
+ end
+ return false
+end
+
+function lists.hasnumberdata(name,n)
+ local data = lists.result[n]
+ if data then
+ local numberdata = data.numberdata
+ if numberdata and not numberdata.hidenumber then -- the hide number is true
+ return true
+ end
+ end
+ return false
+end
+
+function lists.rawnumber(n,name)
+ local data = lists.result[n]
+ if data then
+ local numberdata = data.numberdata
+ if numberdata then
+ numberdata = numberdata.numbers
+ return numberdata and numberdata[getsectionlevel(name)] or numberdata[name] or 0
+ end
+ end
+ return 0
+end
+
+function lists.prefix(name,n,spec)
+ helpers.prefix(lists.result[n],spec)
+end
+
+function lists.page(name,n,pagespec)
+ helpers.page(lists.result[n],pagespec)
+end
+
+function lists.prefixedpage(name,n,prefixspec,pagespec)
+ helpers.prefixpage(lists.result[n],prefixspec,pagespec)
+end
+
+function lists.realpage(name,n)
+ local data = lists.result[n]
+ if data then
+ local references = data.references
+ return references and references.realpage or 0
+ else
+ return 0
+ end
+end
+
+-- numbers stored in entry.numberdata + entry.numberprefix
+
+function lists.number(name,n,spec)
+ local data = lists.result[n]
+ if data then
+ local numberdata = data.numberdata
+ if numberdata then
+ typesetnumber(numberdata,"number",spec or false,numberdata or false)
+ end
+ end
+end
+
+function lists.prefixednumber(name,n,prefixspec,numberspec,forceddata)
+ local data = lists.result[n]
+ if data then
+ helpers.prefix(data,prefixspec)
+ local numberdata = data.numberdata or forceddata
+ if numberdata then
+ typesetnumber(numberdata,"number",numberspec or false,numberdata or false)
+ end
+ end
+end
+
+-- todo, do this in references namespace ordered instead (this is an experiment)
+--
+-- also see lpdf-ano (maybe move this there)
+
+local splitter = lpeg.splitat(":")
+
+function references.specials.order(var,actions) -- references.specials !
+ local operation = var.operation
+ if operation then
+ local kind, name, n = lpegmatch(splitter,operation)
+ local order = lists.ordered[kind]
+ order = order and order[name]
+ local v = order[tonumber(n)]
+ local r = v and v.references.realpage
+ if r then
+ actions.realpage = r
+ var.operation = r -- brrr, but test anyway
+ return references.specials.page(var,actions)
+ end
+ end
+end
+
+-- interface (maybe strclistpush etc)
+
+if not lists.reordered then
+ function lists.reordered(data)
+ return data.numberdata
+ end
+end
+
+implement { name = "pushlist", actions = lists.pushnesting, arguments = "integer" }
+implement { name = "poplist", actions = lists.popnesting }
+
+implement {
+ name = "addtolist",
+ actions = { lists.addto, context },
+ arguments = {
+ {
+ { "references", {
+ { "internal", "integer" },
+ { "block" },
+ { "section", "integer" },
+ { "location" },
+ { "prefix" },
+ { "reference" },
+ { "view" },
+ { "order", "integer" },
+ }
+ },
+ { "metadata", {
+ { "kind" },
+ { "name" },
+ { "level", "integer" },
+ { "catcodes", "integer" },
+ { "coding" },
+ { "xmlroot" },
+ { "setup" },
+ }
+ },
+ { "userdata" },
+ { "titledata", {
+ { "label" },
+ { "title" },
+ { "bookmark" },
+ { "marking" },
+ { "list" },
+ { "reference" },
+ }
+ },
+ { "prefixdata", {
+ { "prefix" },
+ { "separatorset" },
+ { "conversionset" },
+ { "conversion" },
+ { "set" },
+ { "segments" },
+ { "connector" },
+ }
+ },
+ { "numberdata", {
+ { "level", "integer" },
+ { "numbers" },
+ { "groupsuffix" },
+ { "group" },
+ { "counter" },
+ { "separatorset" },
+ { "conversionset" },
+ { "conversion" },
+ { "starter" },
+ { "stopper" },
+ { "segments" },
+ }
+ }
+ }
+ }
+}
+
+implement {
+ name = "enhancelist",
+ arguments = "integer",
+ actions = function(n)
+ enhancelist { n = n }
+ end
+}
+
+implement {
+ name = "deferredenhancelist",
+ arguments = "integer",
+ protected = true, -- for now, pre 1.09
+ actions = function(n)
+ ctx_latelua { action = enhancelist, n = n }
+ end,
+}
+
+implement {
+ name = "processlist",
+ actions = lists.process,
+ arguments = {
+ {
+ { "names" },
+ { "criterium" },
+ { "reference" },
+ { "extras" },
+ { "order" },
+ { "levels" },
+ }
+ }
+}
+
+implement {
+ name = "analyzelist",
+ actions = lists.analyze,
+ arguments = {
+ {
+ { "names" },
+ { "criterium" },
+ { "reference" },
+ }
+ }
+}
+
+implement {
+ name = "listtitle",
+ actions = lists.title,
+ arguments = { "string", "integer" }
+}
+
+implement {
+ name = "listprefixednumber",
+ actions = lists.prefixednumber,
+ arguments = {
+ "string",
+ "integer",
+ {
+ { "prefix" },
+ { "separatorset" },
+ { "conversionset" },
+ { "starter" },
+ { "stopper" },
+ { "set" },
+ { "segments" },
+ { "connector" },
+ },
+ {
+ { "separatorset" },
+ { "conversionset" },
+ { "starter" },
+ { "stopper" },
+ { "segments" },
+ }
+ }
+}
+
+implement {
+ name = "listprefixedpage",
+ actions = lists.prefixedpage,
+ arguments = {
+ "string",
+ "integer",
+ {
+ { "separatorset" },
+ { "conversionset" },
+ { "set" },
+ { "segments" },
+ { "connector" },
+ },
+ {
+ { "prefix" },
+ { "conversionset" },
+ { "starter" },
+ { "stopper" },
+ }
+ }
+}
+
+implement { name = "listsize", actions = { lists.size, context } }
+implement { name = "listexternal", actions = { lists.external, context }, arguments = "integer" }
+implement { name = "listlocation", actions = { lists.location, context }, arguments = "integer" }
+implement { name = "listlabel", actions = { lists.label, context }, arguments = { "integer", "string" } }
+implement { name = "listrealpage", actions = { lists.realpage, context }, arguments = { "string", "integer" } }
+implement { name = "listgroupindex", actions = { lists.groupindex, context }, arguments = "2 strings", }
+
+implement {
+ name = "currentsectiontolist",
+ actions = { sections.current, lists.addto, context }
+}
+
+local function userdata(name,r,tag)
+ local str, metadata = lists.userdata(name,r,tag)
+ if str then
+ -- local catcodes = metadata and metadata.catcodes
+ -- if catcodes then
+ -- context.sprint(catcodes,str)
+ -- else
+ -- context(str)
+ -- end
+ helpers.title(str,metadata)
+ end
+end
+
+implement {
+ name = "listuserdata",
+ actions = userdata,
+ arguments = { "string", "integer", "string" }
+}
+
+-- we could also set variables .. names will change (when this module is done)
+-- maybe strc_lists_savedtitle etc
+
+implement { name = "doifelselisthastitle", actions = { lists.hastitledata, commands.doifelse }, arguments = { "string", "integer" } }
+implement { name = "doifelselisthaspage", actions = { lists.haspagedata, commands.doifelse }, arguments = { "string", "integer" } }
+implement { name = "doifelselisthasnumber", actions = { lists.hasnumberdata, commands.doifelse }, arguments = { "string", "integer" } }
+implement { name = "doifelselisthasentry", actions = { lists.iscached, commands.doifelse }, arguments = "integer" }
+
+local function savedlisttitle(name,n,tag)
+ local data = cached[tonumber(n)]
+ if data then
+ local titledata = data.titledata
+ if titledata then
+ helpers.title(titledata[tag] or titledata.title or "",data.metadata)
+ end
+ end
+end
+
+local function savedlistnumber(name,n)
+ local data = cached[tonumber(n)]
+ if data then
+ local numberdata = data.numberdata
+ if numberdata then
+ typesetnumber(numberdata,"number",numberdata or false)
+ end
+ end
+end
+
+local function savedlistprefixednumber(name,n)
+ local data = cached[tonumber(n)]
+ if data then
+ local numberdata = lists.reordered(data)
+ if numberdata then
+ helpers.prefix(data,data.prefixdata)
+ typesetnumber(numberdata,"number",numberdata or false)
+ end
+ end
+end
+
+lists.savedlisttitle = savedlisttitle
+lists.savedlistnumber = savedlistnumber
+lists.savedlistprefixednumber = savedlistprefixednumber
+
+implement {
+ name = "savedlistnumber",
+ actions = savedlistnumber,
+ arguments = { "string", "integer" }
+}
+
+implement {
+ name = "savedlisttitle",
+ actions = savedlisttitle,
+ arguments = { "string", "integer" }
+}
+
+implement {
+ name = "savedlistprefixednumber",
+ actions = savedlistprefixednumber,
+ arguments = { "string", "integer" }
+}
+
+implement {
+ name = "discardfromlist",
+ actions = lists.discard,
+ arguments = "integer"
+}
+
+implement {
+ name = "rawlistnumber",
+ actions = { lists.rawnumber, context },
+ arguments = { "integer", "string" },
+}
+
+-- new and experimental and therefore off by default
+
+lists.autoreorder = false -- true
+
+local function addlevel(t,k)
+ local v = { }
+ setmetatableindex(v,function(t,k)
+ local v = { }
+ t[k] = v
+ return v
+ end)
+ t[k] = v
+ return v
+end
+
+local internals = setmetatableindex({ }, function(t,k)
+
+ local sublists = setmetatableindex({ },addlevel)
+
+ local collected = lists.collected or { }
+
+ for i=1,#collected do
+ local entry = collected[i]
+ local numberdata = entry.numberdata
+ if numberdata then
+ local metadata = entry.metadata
+ if metadata then
+ local references = entry.references
+ if references then
+ local kind = metadata.kind
+ local name = numberdata.counter or metadata.name
+ local internal = references.internal
+ if kind and name and internal then
+ local sublist = sublists[kind][name]
+ sublist[#sublist + 1] = { internal, numberdata }
+ end
+ end
+ end
+ end
+ end
+
+ for k, v in next, sublists do
+ for k, v in next, v do
+ local tmp = { }
+ for i=1,#v do
+ tmp[i] = v[i]
+ end
+ sort(v,function(a,b) return a[1] < b[1] end)
+ for i=1,#v do
+ t[v[i][1]] = tmp[i][2]
+ end
+ end
+ end
+
+ setmetatableindex(t,nil)
+
+ return t[k]
+
+end)
+
+function lists.reordered(entry)
+ local numberdata = entry.numberdata
+ if lists.autoreorder then
+ if numberdata then
+ local metadata = entry.metadata
+ if metadata then
+ local references = entry.references
+ if references then
+ local kind = metadata.kind
+ local name = numberdata.counter or metadata.name
+ local internal = references.internal
+ if kind and name and internal then
+ return internals[internal] or numberdata
+ end
+ end
+ end
+ end
+ else
+ function lists.reordered(entry)
+ return entry.numberdata
+ end
+ end
+ return numberdata
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-lst.mklx b/Master/texmf-dist/tex/context/base/mkxl/strc-lst.mklx
index 049a0370e9f..66a801241ee 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-lst.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-lst.mklx
@@ -13,7 +13,7 @@
\writestatus{loading}{ConTeXt Structure Macros / Lists}
-\registerctxluafile{strc-lst}{}
+\registerctxluafile{strc-lst}{autosuffix}
% clean up in progress ...
%
@@ -116,17 +116,6 @@
\installcorenamespace {listlocations}
-% \permanent\protected\def\doifelseinlistentry#1%
-% {\ifcsname\??listlocations#1\endcsname
-% \ifnum\lastnamedcs=\structurelistlocation\relax
-% \doubleexpandafter\firstoftwoarguments
-% \else
-% \doubleexpandafter\secondoftwoarguments
-% \fi
-% \else
-% \expandafter\secondoftwoarguments
-% \fi}
-
\permanent\protected\def\doifelseinlistentry#1%
{\unless\ifcsname\??listlocations#1\endcsname
\expandafter\secondoftwoarguments
@@ -157,7 +146,7 @@
\scratchcounter\clf_addtolist
references {
internal \locationcount
- % block {\currentsectionblock}
+ % block {\currentsectionblock} % needed for publications (can be get from section)
% section structures.sections.currentid()
% location {\p_location}
}
@@ -170,7 +159,7 @@
userdata {\detokenize\expandafter{\normalexpanded{#userdata}}}
\relax
\edef\currentlistnumber{\the\scratchcounter}%
- \setxvalue{\??listlocations\currentlist}{\the\locationcount}%
+ \xdefcsname\??listlocations\currentlist\endcsname{\the\locationcount}%
\ifx\p_location\v!here
% this branch injects nodes !
\strc_lists_inject_enhance{\currentlistnumber}%
@@ -236,6 +225,22 @@
\tolerant\def\strc_lists_write_to_nop[#settings]#:#first#second%
{\endgroup} % \strc_lists_inject_nop[][]
+% \starttyping
+% \installstructurelistprocessor{chapter:userdata}
+% {\startlinecorrection[blank]
+% \hfill \inframed{you really need to look at \structurelistuservariable{pagenumber}}%
+% \stoplinecorrection}
+%
+% \starttext
+% \placelist[chapter]
+% \chapter{one}
+% \writebetweenlist[chapter][location=here]{\blank page 4\blank}
+% \writedatatolist[chapter][location=here][pagenumber=4]
+% \writetolist[chapter]{}{It's a test}
+% \chapter{two}
+% \stoptext
+% \stoptyping
+
%D When placing a list either one or a set can be giving. This makes it possible to
%D flush for instance an nested (or merged) table of contents. Keep in mind that
%D placing a list is what we do most (think of tables of contents, figures, etc.\
@@ -253,7 +258,7 @@
% use settings of first
\else
% use settings of root
- \let\m_first\empty
+ \lettonothing\m_first
\fi
\strc_lists_place_indeed\m_first\m_list{#settings}%
\stoppacked
@@ -266,7 +271,7 @@
\def\strc_lists_place_indeed#tag#list#settings%
{\begingroup
- \the\t_lists_every_renderingcleanup % \let\currentlistentrylocation\empty
+ \the\t_lists_every_renderingcleanup % \lettonothing\currentlistentrylocation
\edef\currentlist{#tag}%
\setupcurrentlist[#settings]%
\the\everystructurelist
@@ -277,6 +282,7 @@
{\listparameter\c!reference}%
{\listparameter\c!extras}%
{\listparameter\c!order}%
+ {\listparameter\c!levels}%
% \stoplistreferences
\par % todo: only when vertical list mode
\endgroup
@@ -320,9 +326,9 @@
\permanent\tolerant\protected\def\definecombinedlist[#tag]#spacer[#list]#spacer[#settings]%
{\definelist[#tag][\c!criterium=\v!local,\c!reference=,\c!alternative=,\c!list={#list},#settings]% inherits from root
- \frozen\instance\setvalue{\e!setup#tag\e!endsetup}{\setupcombinedlist[#tag]}%
- \frozen\instance\setvalue{\e!place#tag}{\placecombinedlist[#tag]}%
- \frozen\instance\setvalue{\e!complete#tag}{\strc_lists_combined_complete[#tag]}}
+ \frozen\instance\defcsname\e!setup#tag\e!endsetup\endcsname{\setupcombinedlist[#tag]}%
+ \frozen\instance\defcsname\e!place#tag\endcsname{\placecombinedlist[#tag]}%
+ \frozen\instance\defcsname\e!complete#tag\endcsname{\strc_lists_combined_complete[#tag]}}
\permanent\tolerant\protected\def\setupcombinedlist[#tag]#spacer[#settings]%
{\ifarguments\or\or
@@ -352,16 +358,22 @@
\installcorenamespace {listpagenumber}
-\setvalue{\??listpagenumber\v!always }{\settrue\c_lists_show_page\settrue\c_lists_has_page}
-\setvalue{\??listpagenumber\v!yes }{\settrue\c_lists_show_page}
-\setvalue{\??listpagenumber\s!realpage}{\settrue\c_lists_show_page\settrue\c_lists_show_realpage}
+\defcsname\??listpagenumber\v!always \endcsname{\settrue\c_lists_show_page\settrue\c_lists_has_page}
+\defcsname\??listpagenumber\v!yes \endcsname{\settrue\c_lists_show_page}
+\defcsname\??listpagenumber\s!realpage\endcsname{\settrue\c_lists_show_page\settrue\c_lists_show_realpage}
\def\strc_lists_process_pagenumber#1%
{\begincsname\??listpagenumber#1\endcsname}
+\permanent\def\structurelistexternal
+ {\clf_listexternal\numexpr\currentlistindex\relax}
+
\permanent\def\structurelistlocation
{\clf_listlocation\numexpr\currentlistindex\relax}
+\permanent\def\structurelistrawnumber#1%
+ {\clf_rawlistnumber\numexpr\currentlistindex\relax{#1}}
+
\permanent\def\structurelistrealpagenumber
{\clf_listrealpage{\currentlist}\numexpr\currentlistindex\relax}
@@ -445,7 +457,7 @@
% TODO: pass extra tag name (contents, figures, bibliography ...)
-\protected\def\strc_lists_place_current#list#criterium#reference#extras#order% beware, not a user command
+\protected\def\strc_lists_place_current#list#criterium#reference#extras#order#levels% beware, not a user command
{\dostarttaggedchained\t!list\empty\??list
\clf_processlist
names {#list}
@@ -453,6 +465,7 @@
reference {#reference}
extras {#extras}
order {#order}
+ levels {#levels}
\relax
\dostoptagged}
@@ -493,7 +506,7 @@
{\expandafter\normaldef\csname\??structurelistprocessor#tag\endcsname{#meaning}}
\permanent\def\usestructurelistprocessor#tag%
- {\csname\??structurelistprocessor#tag\endcsname}
+ {\begincsname\??structurelistprocessor#tag\endcsname}
\aliased\let\dotaglistlocation\relax
@@ -513,7 +526,7 @@
\permanent\protected\def\strclistsentryprocess#tag#method#index#extra% This one is called at the lua end!
{\clf_pushlist#index\relax
- %\let\currentlistentrylocation\empty
+ %\lettonothing\currentlistentrylocation
\edef\currentlist {#tag}%
\edef\currentlistmethod{#method}%
\edef\currentlistindex {#index}%
@@ -549,7 +562,7 @@
% example of usage elsewhere:
%
-% \installstructcurelistprocessor{pubs:userdata}
+% \installstructurelistprocessor{pubs:userdata}
% {\clf_listuserdata{\currentlist}\currentlistindex{bibref}}
%D List symbols are used in interactive documents where no numbers are used but
@@ -617,7 +630,8 @@
\rightlabeltext\currentlistlabel}
\mutable\let\currentlistnumber\!!zerocount
-\mutable\let\currentlistlabel \empty
+
+\mutable\lettonothing\currentlistlabel
\protected\def\strc_lists_symbol_default
{\dontleavehmode
@@ -631,22 +645,22 @@
\fi
\endgroup}
-\letvalue{\??listsymbollabels\s!unknown}\strc_lists_symbol_default
+\letcsname\??listsymbollabels\s!unknown\endcsname\strc_lists_symbol_default
-\setvalue{\??listsymbollabels}% default (empty)
+\defcsname\??listsymbollabels\endcsname % default (empty)
{\listparameter\c!starter
\currentlistentrynumber
\listparameter\c!stopper}
-\setvalue{\??listsymbollabels\v!no}% also default
+\defcsname\??listsymbollabels\v!no\endcsname % also default
{\listparameter\c!starter
\currentlistentrynumber
\listparameter\c!stopper}
-\setvalue{\??listsymbollabels\v!none}% real minimal (as suggested by WS)
+\defcsname\??listsymbollabels\v!none\endcsname % real minimal (as suggested by WS)
{\currentlistentrynumber}
-\setvalue{\??listsymbollabels\v!yes}% auto (use value stored in tuc file)
+\defcsname\??listsymbollabels\v!yes\endcsname % auto (use value stored in tuc file)
{\edef\currentlistlabel{\clf_listlabel\currentlistindex{\currentlistlabel}}%
\leftlabeltext\currentlistlabel
\listparameter\c!starter
@@ -673,7 +687,7 @@
% \installcorenamespace{listfiller}
%
% \protected\def\installlistfiller#1#2%
-% {\setuvalue{\??listfiller#1}{#2}}
+% {\protected\defcsname\??listfiller#1\endcsname{#2}}
%
% \protected\def\listfiller#1%
% {\begincsname\??listfiller#1\endcsname}
@@ -842,10 +856,10 @@
\newconditional\c_lists_show_number
\newconditional\c_lists_show_page
-\mutable\let\currentlistentrylocation \empty % watch the 'entry' in the name
-\mutable\let\currentlistentrynumber \empty % watch the 'entry' in the name
-\mutable\let\currentlistentrytitle \empty % watch the 'entry' in the name
-\mutable\let\currentlistentrypagenumber\empty % watch the 'entry' in the name
+\mutable\lettonothing\currentlistentrylocation % watch the 'entry' in the name
+\mutable\lettonothing\currentlistentrynumber % watch the 'entry' in the name
+\mutable\lettonothing\currentlistentrytitle % watch the 'entry' in the name
+\mutable\lettonothing\currentlistentrypagenumber % watch the 'entry' in the name
\appendtoks
\dontcomplain
@@ -908,10 +922,10 @@
\appendtoks
% as we don't want any interference we clear some variables
% afterwards
- \let\currentlistentrylocation \empty
- \let\currentlistentrynumber \empty
- \let\currentlistentrytitle \empty
- \let\currentlistentrypagenumber\empty
+ \lettonothing\currentlistentrylocation
+ \lettonothing\currentlistentrynumber
+ \lettonothing\currentlistentrytitle
+ \lettonothing\currentlistentrypagenumber
\setfalse\c_lists_has_page
\setfalse\c_lists_has_number
\setfalse\c_lists_show_page
@@ -919,7 +933,7 @@
\setfalse\c_lists_show_number
\to \t_lists_every_renderingcleanup
-\let\m_strc_list_alternative\empty % combined
+\lettonothing\m_strc_list_alternative % combined
\protected\def\strc_lists_apply_renderingsetup
{\the\t_lists_every_renderingsetup
@@ -1022,7 +1036,7 @@
\startsetups[\??listrenderings:abc]
\endgraf % are we grouped?
\typo_injectors_check_list
- % \advance % yes or no ... \rightskip is also honored
+ % \advanceby % yes or no ... \rightskip is also honored
\leftskip\listparameter\c!margin % after \endgraf !
\listparameter\c!before
\endgraf
@@ -1167,7 +1181,7 @@
\startsetups[\??listrenderings:d]
\ifvmode
- \advance\leftskip\listparameter\c!margin
+ \advanceby\leftskip\listparameter\c!margin
\fi
\begingroup
\ifvmode
@@ -1237,8 +1251,8 @@
\noindent % otherwise annotations are mirrored up
\typo_injectors_mark_list
\hbox \strc_lists_get_reference_attribute\v!all \strc_lists_get_destination_attribute {
- \letlistparameter\c!depth\zeropoint
- \letlistparameter\c!color\empty
+ \letlistparameter \c!depth\zeropoint
+ \resettlistparameter\c!color
\inheritedlistframed {
\letinteractionparameter\c!strut\v!no % still needed?
\strc_lists_set_style_color\c!style\c!color\v!all
@@ -1418,14 +1432,14 @@
\installcorenamespace{listinteractions}
-\letvalue{\??listinteractions\v!number }\v!number
-\letvalue{\??listinteractions\v!sectionnumber}\v!number
-\letvalue{\??listinteractions\v!text }\v!text
-\letvalue{\??listinteractions\v!title }\v!text
-\letvalue{\??listinteractions\v!page }\v!pagenumber
-\letvalue{\??listinteractions\v!pagenumber }\v!pagenumber
-\letvalue{\??listinteractions\v!all }\v!all
-\letvalue{\??listinteractions\v!yes }\v!all
+\letcsname\??listinteractions\v!number \endcsname\v!number
+\letcsname\??listinteractions\v!sectionnumber\endcsname\v!number
+\letcsname\??listinteractions\v!text \endcsname\v!text
+\letcsname\??listinteractions\v!title \endcsname\v!text
+\letcsname\??listinteractions\v!page \endcsname\v!pagenumber
+\letcsname\??listinteractions\v!pagenumber \endcsname\v!pagenumber
+\letcsname\??listinteractions\v!all \endcsname\v!all
+\letcsname\??listinteractions\v!yes \endcsname\v!all
\permanent\def\listboxproperties {\strc_lists_get_reference_attribute}
\permanent\def\listrenderingsetup {\the\t_lists_every_renderingtext}
@@ -1438,12 +1452,53 @@
\strc_lists_interaction_check_nop
\fi}
+% \def\strc_lists_interaction_check_yes_yes
+% {\edef\p_interaction_forward{\listparameter\c!interaction}%
+% \ifcsname\??listinteractions\p_interaction_forward\endcsname
+% %\expandafter\let\expandafter\p_interaction_forward\csname\??listinteractions\p_interaction_forward\endcsname
+% \expandafter\let\expandafter\p_interaction_forward\lastnamedcs
+% \strc_references_get_simple_reference{internal(\currentlistentrylocation)}%
+% \a_strc_lists_reference\currentreferenceattribute
+% \else
+% \a_strc_lists_reference\attributeunsetvalue
+% \fi
+% \ifnum\a_strc_lists_reference=\attributeunsetvalue
+% \let\strc_lists_get_reference_attribute\gobbleoneargument
+% \let\strc_lists_set_reference_attribute\gobbleoneargument
+% \let\strc_lists_set_style_color \strc_lists_set_style_color_normal
+% \else
+% \let\strc_lists_get_reference_attribute\strc_lists_get_reference_attribute_indeed
+% \let\strc_lists_set_reference_attribute\strc_lists_set_reference_attribute_indeed
+% \let\strc_lists_set_style_color \strc_lists_set_style_color_special
+% \fi
+% \edef\p_interaction_backward{\namedheadparameter\currentlist\c!interaction}% \namedheadparameter !
+% \ifx\p_interaction_backward\v!list
+% \strc_references_set_simple_reference{*\currentlistentrylocation}%
+% \a_strc_lists_destination\currentdestinationattribute
+% \else
+% \a_strc_lists_destination\attributeunsetvalue
+% \fi
+% \ifnum\a_strc_lists_destination=\attributeunsetvalue
+% \lettonothing\strc_lists_get_destination_attribute
+% \lettonothing\strc_lists_set_destination_attribute
+% \else
+% \let\strc_lists_get_destination_attribute\strc_lists_get_destination_attribute_indeed
+% \let\strc_lists_set_destination_attribute\strc_lists_set_destination_attribute_indeed
+% \fi}
+
\def\strc_lists_interaction_check_yes_yes
- {\edef\p_interaction_forward{\listparameter\c!interaction}%
+ {\edef\p_interaction_forward {\listparameter\c!interaction}%
+ \edef\p_interaction_backward{\namedheadparameter\currentlist\c!interaction}% \namedheadparameter !
\ifcsname\??listinteractions\p_interaction_forward\endcsname
%\expandafter\let\expandafter\p_interaction_forward\csname\??listinteractions\p_interaction_forward\endcsname
\expandafter\let\expandafter\p_interaction_forward\lastnamedcs
- \strc_references_get_simple_reference{internal(\currentlistentrylocation)}%
+ \ifcstok{\structurelistexternal}\emptytoks % luacall
+ \strc_references_get_simple_reference{internal(\currentlistentrylocation)}%
+ \else
+ % \writestatus{FAR OUT LIST}{\structurelistexternal::page(\number\structurelistrealpagenumber)}%
+ \strc_references_get_simple_reference{\structurelistexternal::page(\number\structurelistrealpagenumber)}%
+ \let\p_interaction_backward\empty
+ \fi
\a_strc_lists_reference\currentreferenceattribute
\else
\a_strc_lists_reference\attributeunsetvalue
@@ -1457,7 +1512,6 @@
\let\strc_lists_set_reference_attribute\strc_lists_set_reference_attribute_indeed
\let\strc_lists_set_style_color \strc_lists_set_style_color_special
\fi
- \edef\p_interaction_backward{\namedheadparameter\currentlist\c!interaction}% \namedheadparameter !
\ifx\p_interaction_backward\v!list
\strc_references_set_simple_reference{*\currentlistentrylocation}%
\a_strc_lists_destination\currentdestinationattribute
@@ -1465,8 +1519,8 @@
\a_strc_lists_destination\attributeunsetvalue
\fi
\ifnum\a_strc_lists_destination=\attributeunsetvalue
- \let\strc_lists_get_destination_attribute\empty
- \let\strc_lists_set_destination_attribute\empty
+ \lettonothing\strc_lists_get_destination_attribute
+ \lettonothing\strc_lists_set_destination_attribute
\else
\let\strc_lists_get_destination_attribute\strc_lists_get_destination_attribute_indeed
\let\strc_lists_set_destination_attribute\strc_lists_set_destination_attribute_indeed
@@ -1477,8 +1531,8 @@
\a_strc_lists_destination\attributeunsetvalue
\let\strc_lists_get_reference_attribute\gobbleoneargument
\let\strc_lists_set_reference_attribute\gobbleoneargument
- \let\strc_lists_get_destination_attribute\empty
- \let\strc_lists_set_destination_attribute\empty
+ \lettonothing\strc_lists_get_destination_attribute
+ \lettonothing\strc_lists_set_destination_attribute
\let\strc_lists_set_style_color\strc_lists_set_style_color_normal}
\def\strc_lists_interaction_check_yes
@@ -1493,8 +1547,8 @@
\def\strc_lists_interaction_check_nop
{\let\strc_lists_get_reference_attribute \gobbleoneargument
\let\strc_lists_set_reference_attribute \gobbleoneargument
- \let\strc_lists_get_destination_attribute\empty
- \let\strc_lists_set_destination_attribute\empty
+ \lettonothing\strc_lists_get_destination_attribute
+ \lettonothing\strc_lists_set_destination_attribute
\let\strc_lists_set_style_color \strc_lists_set_style_color_normal}
\strc_lists_interaction_check_nop
@@ -1533,7 +1587,7 @@
%D A helper:
-\def\strc_lists_limitated_text#text%
+\protected\def\strc_lists_limitated_text#text%
{\edef\p_maxwidth{\listparameter\c!maxwidth}%
\ifempty\p_maxwidth
\listparameter\c!textcommand{#text}%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-mar-old.lmt b/Master/texmf-dist/tex/context/base/mkxl/strc-mar-old.lmt
new file mode 100644
index 00000000000..eb94f9fc391
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-mar-old.lmt
@@ -0,0 +1,759 @@
+if not modules then modules = { } end modules ['strc-mar'] = {
+ version = 1.001,
+ comment = "companion to strc-mar.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- todo: cleanup stack (structures.marks.reset(v_all) also does the job)
+-- todo: only commands.* print to tex, native marks return values
+
+local insert, concat = table.insert, table.concat
+local tostring, next, rawget, type = tostring, next, rawget, type
+local lpegmatch = lpeg.match
+
+local context = context
+local commands = commands
+
+local implement = interfaces.implement
+
+local allocate = utilities.storage.allocate
+local setmetatableindex = table.setmetatableindex
+
+local nuts = nodes.nuts
+local tonut = nuts.tonut
+
+local getid = nuts.getid
+local getlist = nuts.getlist
+local getattr = nuts.getattr
+local getbox = nuts.getbox
+
+local nextnode = nuts.traversers.node
+
+local nodecodes = nodes.nodecodes
+local whatsitcodes = nodes.whatsitcodes
+
+local glyph_code = nodecodes.glyph
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+local whatsit_code = nodecodes.whatsit
+
+local lateluawhatsit_code = whatsitcodes.latelua
+
+local texsetattribute = tex.setattribute
+
+local a_marks = attributes.private("marks")
+
+local trace_set = false trackers.register("marks.set", function(v) trace_set = v end)
+local trace_get = false trackers.register("marks.get", function(v) trace_get = v end)
+local trace_details = false trackers.register("marks.details", function(v) trace_details = v end)
+
+local report_marks = logs.reporter("structure","marks")
+
+local variables = interfaces.variables
+
+local v_first = variables.first
+local v_last = variables.last
+local v_previous = variables.previous
+local v_next = variables.next
+local v_top = variables.top
+local v_bottom = variables.bottom
+local v_current = variables.current
+local v_default = variables.default
+local v_page = variables.page
+local v_all = variables.all
+local v_keep = variables.keep
+
+local v_nocheck_suffix = ":" .. variables.nocheck
+
+local v_first_nocheck = variables.first .. v_nocheck_suffix
+local v_last_nocheck = variables.last .. v_nocheck_suffix
+local v_previous_nocheck = variables.previous .. v_nocheck_suffix
+local v_next_nocheck = variables.next .. v_nocheck_suffix
+local v_top_nocheck = variables.top .. v_nocheck_suffix
+local v_bottom_nocheck = variables.bottom .. v_nocheck_suffix
+
+local structures = structures
+local marks = structures.marks
+
+local settings_to_array = utilities.parsers.settings_to_array
+
+local boxes_too = false -- at some point we can also tag boxes or use a zero char
+
+directives.register("marks.boxestoo", function(v) boxes_too = v end)
+
+local data = marks.data or allocate()
+marks.data = data
+
+storage.register("structures/marks/data", marks.data, "structures.marks.data")
+
+local stack, topofstack = { }, 0
+
+local ranges = {
+ [v_page] = {
+ first = 0,
+ last = 0,
+ },
+}
+
+local function resolve(t,k)
+ if k then
+ if trace_set or trace_get then
+ report_marks("undefined mark, name %a",k)
+ end
+ local crap = { autodefined = true } -- maybe set = 0 and reset = 0
+ t[k] = crap
+ return crap
+ else
+ -- weird: k is nil
+ end
+end
+
+setmetatableindex(data, resolve)
+
+function marks.exists(name)
+ return rawget(data,name) ~= nil
+end
+
+-- identify range
+
+local function sweep(head,first,last)
+ for n, id, subtype in nextnode, head do
+ -- we need to handle empty heads so we test for latelua
+ if id == glyph_code or (id == whatsit_code and subtype == lateluawhatsit_code) then -- brrr
+ local a = getattr(n,a_marks)
+ if not a then
+ -- next
+ elseif first == 0 then
+ first, last = a, a
+ elseif a > last then
+ last = a
+ end
+ elseif id == hlist_code or id == vlist_code then
+ if boxes_too then
+ local a = getattr(n,a_marks)
+ if not a then
+ -- next
+ elseif first == 0 then
+ first, last = a, a
+ elseif a > last then
+ last = a
+ end
+ end
+ local list = getlist(n)
+ if list then
+ first, last = sweep(list,first,last)
+ end
+ end
+ end
+ return first, last
+end
+
+local classes = { }
+
+setmetatableindex(classes, function(t,k) local s = settings_to_array(k) t[k] = s return s end)
+
+local lasts = { }
+
+function marks.synchronize(class,n,option)
+ local box = getbox(n)
+ if box then
+ local first, last = sweep(getlist(box),0,0)
+ if option == v_keep and first == 0 and last == 0 then
+ if trace_get or trace_set then
+ report_marks("action %a, class %a, box %a","retain at synchronize",class,n)
+ end
+ -- todo: check if still valid first/last in range
+ first = lasts[class] or 0
+ last = first
+ else
+ lasts[class] = last
+ local classlist = classes[class]
+ for i=1,#classlist do
+ local class = classlist[i]
+ local range = ranges[class]
+ if range then
+ range.first = first
+ range.last = last
+ else
+ range = {
+ first = first,
+ last = last,
+ }
+ ranges[class] = range
+ end
+ if trace_get or trace_set then
+ report_marks("action %a, class %a, first %a, last %a","synchronize",class,range.first,range.last)
+ end
+ end
+ end
+ elseif trace_get or trace_set then
+ report_marks("action %s, class %a, box %a","synchronize without content",class,n)
+ end
+end
+
+-- define etc
+
+local function resolve(t,k)
+ if k == "fullchain" then
+ local fullchain = { }
+ local chain = t.chain
+ while chain and chain ~= "" do
+ insert(fullchain,1,chain)
+ chain = data[chain].chain
+ end
+ t[k] = fullchain
+ return fullchain
+ elseif k == "chain" then
+ t[k] = ""
+ return ""
+ elseif k == "reset" or k == "set" then
+ t[k] = 0
+ return 0
+ elseif k == "parent" then
+ t[k] = false
+ return false
+ end
+end
+
+function marks.define(name,settings)
+ if not settings then
+ settings = { }
+ elseif type(settings) == "string" then
+ settings = { parent = settings }
+ end
+ data[name] = settings
+ local parent = settings.parent
+ if parent == nil or parent == "" or parent == name then
+ settings.parent = false
+ else
+ local dp = data[parent]
+ if not dp then
+ settings.parent = false
+ elseif dp.parent then
+ settings.parent = dp.parent
+ end
+ end
+ setmetatableindex(settings, resolve)
+end
+
+for k, v in next, data do
+ setmetatableindex(v,resolve) -- runtime loaded table
+end
+
+local function parentname(name)
+ local dn = data[name]
+ return dn and dn.parent or name
+end
+
+function marks.relate(name,chain)
+ local dn = data[name]
+ if dn and not dn.parent then
+ if chain and chain ~= "" then
+ dn.chain = chain
+ local dc = data[chain]
+ if dc then
+ local children = dc.children
+ if not children then
+ children = { }
+ dc.children = children
+ end
+ children[#children+1] = name
+ end
+ elseif trace_set then
+ report_marks("error: invalid relation, name %a, chain %a",name,chain)
+ end
+ end
+end
+
+local function resetchildren(new,name)
+ local dn = data[name]
+ if dn and not dn.parent then
+ local children = dn.children
+ if children then
+ for i=1,#children do
+ local ci = children[i]
+ new[ci] = false
+ if trace_set then
+ report_marks("action %a, parent %a, child %a","reset",name,ci)
+ end
+ resetchildren(new,ci)
+ end
+ end
+ end
+end
+
+function marks.set(name,value)
+ local dn = data[name]
+ if dn then
+ local child = name
+ local parent = dn.parent
+ if parent then
+ name = parent
+ dn = data[name]
+ end
+ dn.set = topofstack
+ if not dn.reset then
+ dn.reset = 0 -- in case of selfdefined
+ end
+ local top = stack[topofstack]
+ local new = { }
+ if top then
+ for k, v in next, top do
+ local d = data[k]
+ local r = d.reset or 0
+ local s = d.set or 0
+ if r <= topofstack and s < r then
+ new[k] = false
+ else
+ new[k] = v
+ end
+ end
+ end
+ resetchildren(new,name)
+ new[name] = value
+ topofstack = topofstack + 1
+ stack[topofstack] = new
+ if trace_set then
+ if name == child then
+ report_marks("action %a, name %a, index %a, value %a","set",name,topofstack,value)
+ else
+ report_marks("action %a, parent %a, child %a, index %a, value %a","set",parent,child,topofstack,value)
+ end
+ end
+ texsetattribute("global",a_marks,topofstack)
+ end
+end
+
+local function reset(name)
+ if v_all then
+ if trace_set then
+ report_marks("action %a","reset all")
+ end
+ stack = { }
+ for name, dn in next, data do
+ local parent = dn.parent
+ if parent then
+ dn.reset = 0
+ dn.set = 0
+ end
+ end
+ else
+ local dn = data[name]
+ if dn then
+ local parent = dn.parent
+ if parent then
+ name = parent
+ dn = data[name]
+ end
+ if trace_set then
+ report_marks("action %a, name %a, index %a","reset",name,topofstack)
+ end
+ dn.reset = topofstack
+ local children = dn.children
+ if children then
+ for i=1,#children do
+ local ci = children[i]
+ reset(ci)
+ end
+ end
+ end
+ end
+end
+
+marks.reset = reset
+
+function marks.get(n,name,value)
+ local dn = data[name]
+ if dn then
+ name = dn.parent or name
+ local top = stack[n]
+ if top then
+ context(top[name])
+ end
+ end
+end
+
+function marks.show(first,last)
+ if first and last then
+ for k=first,last do
+ local v = stack[k]
+ if v then
+ report_marks("% 4i: %s",k,table.sequenced(v))
+ end
+ end
+ else
+ for k, v in table.sortedpairs(stack) do
+ report_marks("% 4i: %s",k,table.sequenced(v))
+ end
+ end
+end
+
+local function resolve(name,first,last,strict,quitonfalse,notrace)
+ local dn = data[name]
+ if dn then
+ local child = name
+ local parent = dn.parent
+ name = parent or child
+ dn = data[name]
+ local step, method
+ if first > last then
+ step, method = -1, "bottom-up"
+ else
+ step, method = 1, "top-down"
+ end
+ if trace_get and not notrace then
+ report_marks("action %a, strategy %a, name %a, parent %a, strict %a","request",method,child,parent,strict or false)
+ end
+ if trace_details and not notrace then
+ marks.show(first,last)
+ end
+ local r = dn.reset
+ local s = dn.set
+ if first <= last and first <= r then
+ if trace_get and not notrace then
+ report_marks("action %a, name %a, first %a, last %a, reset %a, index %a","reset first",name,first,last,r,first)
+ end
+ elseif first >= last and last <= r then
+ if trace_get and not notrace then
+ report_marks("action %a, name %a, first %a, last %a, reset %a, index %a","reset last",name,first,last,r,last)
+ end
+ elseif not stack[first] or not stack[last] then
+ if trace_get and not notrace then
+ -- a previous or next method can give an out of range, which is valid
+ report_marks("error: out of range, name %a, reset %a, index %a",name,r,first)
+ end
+ elseif strict then
+ local top = stack[first]
+ local fullchain = dn.fullchain
+ if not fullchain or #fullchain == 0 then
+ if trace_get and not notrace then
+ report_marks("warning: no full chain, trying again, name %a, first %a, last %a",name,first,last)
+ end
+ return resolve(name,first,last)
+ else
+ if trace_get and not notrace then
+ report_marks("found chain [ % => T ]",fullchain)
+ end
+ local chaindata = { }
+ local chainlength = #fullchain
+ for i=1,chainlength do
+ local cname = fullchain[i]
+ if data[cname].set > 0 then
+ local value = resolve(cname,first,last,false,false,true)
+ if value == "" then
+ if trace_get and not notrace then
+ report_marks("quitting chain, name %a, reset %a, start %a",name,r,first)
+ end
+ return ""
+ else
+ chaindata[i] = value
+ end
+ end
+ end
+ if trace_get and not notrace then
+ report_marks("using chain [ % => T ]",chaindata)
+ end
+ local value, index, found = resolve(name,first,last,false,false,true)
+ if value ~= "" then
+ if trace_get and not notrace then
+ report_marks("following chain [ % => T ]",chaindata)
+ end
+ for i=1,chainlength do
+ local cname = fullchain[i]
+ if data[cname].set > 0 and chaindata[i] ~= found[cname] then
+ if trace_get and not notrace then
+ report_marks("quiting chain, name %a, reset %a, index %a",name,r,first)
+ end
+ return ""
+ end
+ end
+ if trace_get and not notrace then
+ report_marks("found in chain, name %a, reset %a, start %a, index %a, value %a",name,r,first,index,value)
+ end
+ return value, index, found
+ elseif trace_get and not notrace then
+ report_marks("not found, name %a, reset %a",name,r)
+ end
+ end
+ else
+ for i=first,last,step do
+ local current = stack[i]
+ local value = current and current[name]
+ if value == nil then
+ -- search on
+ elseif value == false then
+ if quitonfalse then
+ return ""
+ end
+ elseif value == true then
+ if trace_get and not notrace then
+ report_marks("quitting steps, name %a, reset %a, start %a, index %a",name,r,first,i)
+ end
+ return ""
+ elseif value ~= "" then
+ if trace_get and not notrace then
+ report_marks("found in steps, name %a, reset %a, start %a, index %a, value %a",name,r,first,i,value)
+ end
+ return value, i, current
+ end
+ end
+ if trace_get and not notrace then
+ report_marks("not found in steps, name %a, reset %a",name,r)
+ end
+ end
+ end
+ return ""
+end
+
+-- todo: column:first column:last
+
+local methods = { }
+
+local function doresolve(name,rangename,swap,df,dl,strict)
+ local range = ranges[rangename] or ranges[v_page]
+ local first = range.first
+ local last = range.last
+ if trace_get then
+ report_marks("action %a, name %a, range %a, swap %a, first %a, last %a, df %a, dl %a, strict %a",
+ "resolving",name,rangename,swap or false,first,last,df,dl,strict or false)
+ end
+ if swap then
+ first, last = last + df, first + dl
+ else
+ first, last = first + df, last + dl
+ end
+ local value, index, found = resolve(name,first,last,strict)
+ -- maybe something more
+ return value, index, found
+end
+
+-- previous : last before sync
+-- next : first after sync
+
+-- top : first in sync
+-- bottom : last in sync
+
+-- first : first not top in sync
+-- last : last not bottom in sync
+
+methods[v_previous] = function(name,range) return doresolve(name,range,false,-1,0,true ) end -- strict
+methods[v_top] = function(name,range) return doresolve(name,range,false, 0,0,true ) end -- strict
+methods[v_bottom] = function(name,range) return doresolve(name,range,true , 0,0,true ) end -- strict
+methods[v_next] = function(name,range) return doresolve(name,range,true , 0,1,true ) end -- strict
+
+methods[v_previous_nocheck] = function(name,range) return doresolve(name,range,false,-1,0,false) end
+methods[v_top_nocheck] = function(name,range) return doresolve(name,range,false, 0,0,false) end
+methods[v_bottom_nocheck] = function(name,range) return doresolve(name,range,true , 0,0,false) end
+methods[v_next_nocheck] = function(name,range) return doresolve(name,range,true , 0,1,false) end
+
+local function do_first(name,range,check)
+ if trace_get then
+ report_marks("action %a, name %a, range %a","resolving first",name,range)
+ end
+ local f_value, f_index, f_found = doresolve(name,range,false,0,0,check)
+ if f_found then
+ if trace_get then
+ report_marks("action %a, name %a, range %a","resolving last",name,range)
+ end
+ local l_value, l_index, l_found = doresolve(name,range,true ,0,0,check)
+ if l_found and l_index > f_index then
+ local name = parentname(name)
+ for i=f_index,l_index,1 do
+ local si = stack[i]
+ local sn = si[name]
+ if sn and sn ~= false and sn ~= true and sn ~= "" and sn ~= f_value then
+ if trace_get then
+ report_marks("action %a, name %a, range %a, index %a, value %a","resolving",name,range,i,sn)
+ end
+ return sn, i, si
+ end
+ end
+ end
+ end
+ if trace_get then
+ report_marks("resolved, name %a, range %a, using first",name,range)
+ end
+ return f_value, f_index, f_found
+end
+
+local function do_last(name,range,check)
+ if trace_get then
+ report_marks("action %a, name %a, range %a","resolving last",name,range)
+ end
+ local l_value, l_index, l_found = doresolve(name,range,true ,0,0,check)
+ if l_found then
+ if trace_get then
+ report_marks("action %a, name %a, range %a","resolving first",name,range)
+ end
+ local f_value, f_index, f_found = doresolve(name,range,false,0,0,check)
+ if f_found and l_index > f_index then
+ local name = parentname(name)
+ for i=l_index,f_index,-1 do
+ local si = stack[i]
+ local sn = si[name]
+ if sn and sn ~= false and sn ~= true and sn ~= "" and sn ~= l_value then
+ if trace_get then
+ report_marks("action %a, name %a, range %a, index %a, value %a","resolving",name,range,i,sn)
+ end
+ return sn, i, si
+ end
+ end
+ end
+ end
+ if trace_get then
+ report_marks("resolved, name %a, range %a, using first",name,range)
+ end
+ return l_value, l_index, l_found
+end
+
+methods[v_first ] = function(name,range) return do_first(name,range,true ) end
+methods[v_last ] = function(name,range) return do_last (name,range,true ) end
+methods[v_first_nocheck] = function(name,range) return do_first(name,range,false) end
+methods[v_last_nocheck ] = function(name,range) return do_last (name,range,false) end
+
+methods[v_current] = function(name,range) -- range is ignored here
+ local top = stack[topofstack]
+ return top and top[parentname(name)] or ""
+end
+
+local function fetched(name,range,method)
+ local value = (methods[method] or methods[v_first])(name,range) or ""
+ if not trace_get then
+ -- no report
+ elseif value == "" then
+ report_marks("nothing fetched, name %a, range %a, method %a",name,range,method)
+ else
+ report_marks("marking fetched, name %a, range %a, method %a, value %a",name,range,method,value)
+ end
+ return value or ""
+end
+
+-- can be used at the lua end:
+
+marks.fetched = fetched
+
+-- this will move to a separate runtime modules
+
+marks.tracers = marks.tracers or { }
+
+function marks.tracers.showtable()
+ context.starttabulate { "|l|l|l|lp|lp|" }
+ context.tabulaterowbold("name","parent","chain","children","fullchain")
+ context.ML()
+ for k, v in table.sortedpairs(data) do
+ local parent = v.parent or ""
+ local chain = v.chain or ""
+ local children = v.children or { }
+ local fullchain = v.fullchain or { }
+ table.sort(children) -- in-place but harmless
+ context.tabulaterowtyp(k,parent,chain,concat(children," "),concat(fullchain," "))
+ end
+ context.stoptabulate()
+end
+
+-- pushing to context:
+
+-- local separator = context.nested.markingseparator
+-- local command = context.nested.markingcommand
+-- local ctxconcat = context.concat
+
+-- local function fetchonemark(name,range,method)
+-- context(command(name,fetched(name,range,method)))
+-- end
+
+-- local function fetchtwomarks(name,range)
+-- ctxconcat( {
+-- command(name,fetched(name,range,v_first)),
+-- command(name,fetched(name,range,v_last)),
+-- }, separator(name))
+-- end
+
+-- local function fetchallmarks(name,range)
+-- ctxconcat( {
+-- command(name,fetched(name,range,v_previous)),
+-- command(name,fetched(name,range,v_first)),
+-- command(name,fetched(name,range,v_last)),
+-- }, separator(name))
+-- end
+
+ local ctx_separator = context.markingseparator
+ local ctx_command = context.markingcommand
+
+ local function fetchonemark(name,range,method)
+ ctx_command(name,fetched(name,range,method))
+ end
+
+ local function fetchtwomarks(name,range)
+ ctx_command(name,fetched(name,range,v_first))
+ ctx_separator(name)
+ ctx_command(name,fetched(name,range,v_last))
+ end
+
+ local function fetchallmarks(name,range)
+ ctx_command(name,fetched(name,range,v_previous))
+ ctx_separator(name)
+ ctx_command(name,fetched(name,range,v_first))
+ ctx_separator(name)
+ ctx_command(name,fetched(name,range,v_last))
+ end
+
+function marks.fetch(name,range,method) -- chapter page first | chapter column:1 first
+ if trace_get then
+ report_marks("marking requested, name %a, range %a, method %a",name,range,method)
+ end
+ if method == "" or method == v_default then
+ fetchonemark(name,range,v_first)
+ elseif method == v_both then
+ fetchtwomarks(name,range)
+ elseif method == v_all then
+ fetchallmarks(name,range)
+ else
+ fetchonemark(name,range,method)
+ end
+end
+
+function marks.fetchonemark (name,range,method) fetchonemark (name,range,method) end
+function marks.fetchtwomarks(name,range) fetchtwomarks(name,range ) end
+function marks.fetchallmarks(name,range) fetchallmarks(name,range ) end
+
+-- here we have a few helpers .. will become commands.*
+
+local pattern = lpeg.afterprefix("li::")
+
+function marks.title(tag,n)
+ local listindex = lpegmatch(pattern,n)
+ if listindex then
+ commands.savedlisttitle(tag,listindex,"marking")
+ else
+ context(n)
+ end
+end
+
+function marks.number(tag,n) -- no spec
+ local listindex = lpegmatch(pattern,n)
+ if listindex then
+ commands.savedlistnumber(tag,listindex)
+ else
+ -- no prefix (as it is the prefix)
+ context(n)
+ end
+end
+
+-- interface
+
+implement { name = "markingtitle", actions = marks.title, arguments = "2 strings" }
+implement { name = "markingnumber", actions = marks.number, arguments = "2 strings" }
+
+implement { name = "definemarking", actions = marks.define, arguments = "2 strings" }
+implement { name = "relatemarking", actions = marks.relate, arguments = "2 strings" }
+implement { name = "setmarking", actions = marks.set, arguments = "2 strings" }
+implement { name = "resetmarking", actions = marks.reset, arguments = "string" }
+implement { name = "synchronizemarking", actions = marks.synchronize, arguments = { "string", "integer", "string" } }
+implement { name = "getmarking", actions = marks.fetch, arguments = "3 strings" }
+implement { name = "fetchonemark", actions = marks.fetchonemark, arguments = "3 strings" }
+implement { name = "fetchtwomarks", actions = marks.fetchtwomarks, arguments = "2 strings" }
+implement { name = "fetchallmarks", actions = marks.fetchallmarks, arguments = "2 strings" }
+
+implement { name = "doifelsemarking", actions = { marks.exists, commands.doifelse }, arguments = "string" }
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-mar-old.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-mar-old.mkxl
new file mode 100644
index 00000000000..b2c421dbf89
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-mar-old.mkxl
@@ -0,0 +1,142 @@
+%D \module
+%D [ file=strc-mar,
+%D version=2008.10.20,
+%D title=\CONTEXT\ Structure Macros,
+%D subtitle=Markings,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Structure Macros / Markings}
+
+\registerctxluafile{strc-mar-old}{autosuffix}
+
+\unprotect
+
+%D Synchronizing marks is a rather tricky and messy business. When setting a mark, a
+%D node is added to the list in order for to \TEX\ be able to figure out the 3
+%D current marks when a page is made (last mark on previous page, first on current
+%D page, last on current page; in \LUATEX\ we might at one point have the first on
+%D the next page as well).
+%D
+%D Resetting a mark is not easy. An empty one will not erase the last one on the
+%D previous page for instance. In \LUATEX\ we can clear a marks state register with
+%D \type {\clearmarks} but since this is an immediate operation it might have
+%D unwanted side effects when \TEX\ has collected several pages of text and
+%D finishing off these pages uses marks.
+%D
+%D In \MKIV\ we provide an alternative model that permits some more control over the
+%D way marks are used. It is not entirely compatible with \MKII\ or previous \MKIV\
+%D implementations but in practice this is not a real problem. It's also easier now
+%D to extend this mechanism.
+
+% first last previous next top bottom [:nocheck]
+% current
+% default page all keep
+
+\definesystemattribute [marks] [global]
+
+\installcorenamespace{marking}
+
+\installcommandhandler \??marking {marking} \??marking
+
+\newconditional\inhibitgetmarking % will become private
+\newconditional\inhibitsetmarking % will become private
+
+\newtoks \everymarking
+
+\appendtoks
+ \clf_definemarking{\currentmarking}{\currentmarkingparent}%
+\to \everydefinemarking
+
+\permanent\protected\tolerant\def\relatemarking [#1]#*[#2]{\clf_relatemarking{#1}{#2}}
+\permanent\protected\tolerant\def\resetmarking [#1]{\clf_resetmarking{#1}}
+\permanent\protected\tolerant\def\synchronizemarking[#1]#*[#2]#*[#3]{\ifvoid#2\else\clf_synchronizemarking{#1}#2{#3}\fi}
+\permanent \def\doifelsemarking #1{\clf_doifelsemarking{#1}} % no \noexpanded
+
+\aliased\let\clearmarking\resetmarking % different in the new situation
+
+\def\strc_markings_synchronize#1#2#3{\ifvoid#2\else\clf_synchronizemarking{#1}#2{#3}\fi} % called in page-ini
+
+\permanent\protected\tolerant\def\setmarking[#1]#:#2%
+ {\ifconditional\inhibitsetmarking\else
+ \doifelse{\namedmarkingparameter{#1}\c!expansion}\v!yes
+ {\clf_setmarking{#1}{#2}}%
+ {\clf_setmarking{#1}{\detokenize{#2}}}%
+ \fi}
+
+\aliased\let\marking \setmarking
+\aliased\let\doifmarkingelse\doifelsemarking
+
+% defaults
+
+\setupmarking
+ [\c!expansion=\v!no,
+ \c!separator=\space\emdash\space,
+ \c!filtercommand=\firstofoneargument,
+ \c!state=\v!start]
+
+% fetching, regular interface
+
+\permanent\protected\def\getmarking
+ {\ifconditional\inhibitgetmarking
+ \expandafter\strc_markings_get_nop
+ \else
+ \expandafter\strc_markings_get_yes
+ \fi}
+
+\tolerant\def\strc_markings_get_nop[#-]#*[#-]#*[#-]%
+ {}
+
+\tolerant\def\strc_markings_get_yes[#1]#*[#2]#*[#3]%
+ {\ifcstok{\namedmarkingparameter{#1}\c!state}\v!start
+ \begingroup
+ \setsystemmode\v!marking
+ \the\everymarking
+ \ifparameter#3\or
+ \clf_getmarking{#1}{#2}{#3}%
+ \else
+ \clf_getmarking{#1}{\v!page}{#2}%
+ \fi
+ \endgroup
+ \fi}
+
+% the fetchers are fully expandable: [name][method]
+
+\permanent\tolerant\def\fetchonemark[#1]#*[#2]{\ifconditional\inhibitgetmarking\else\clf_fetchonemark {#1}{\v!page}{#2}\fi}
+\permanent\tolerant\def\fetchtwomarks [#1]{\ifconditional\inhibitgetmarking\else\clf_fetchtwomarks{#1}{\v!page}\fi}
+\permanent\tolerant\def\fetchallmarks [#1]{\ifconditional\inhibitgetmarking\else\clf_fetchallmarks{#1}{\v!page}\fi}
+
+\aliased\let\fetchmark\fetchonemark
+
+% also fully expandable but here we have: [name][range][method]
+
+\permanent\tolerant\def\fetchonemarking[#1]#*[#2]#*[#3]{\ifconditional\inhibitgetmarking\else\clf_fetchonemark {#1}{#2}{#3}\fi}
+\permanent\tolerant\def\fetchtwomarkings [#1]#*[#2]{\ifconditional\inhibitgetmarking\else\clf_fetchtwomarks{#1}{#2}\fi}
+\permanent\tolerant\def\fetchallmarkings [#1]#*[#2]{\ifconditional\inhibitgetmarking\else\clf_fetchallmarks{#1}{#2}\fi}
+
+\aliased\let\fetchmarking\fetchonemarking
+
+\permanent\def\markingseparator#1{\namedmarkingparameter{#1}\c!separator}
+\permanent\def\markingcommand #1{\namedmarkingparameter{#1}\c!filtercommand}
+
+%D Experimental:
+%D
+%D \starttyping
+%D \definemarking[boxmark]
+%D
+%D \setbox0\ruledvbox{
+%D \marking[boxmark]{tufte} \input tufte \par
+%D \marking[boxmark]{ward} \input ward \par
+%D }
+%D
+%D \synchronizemarking[zerobox][0] \box0
+%D
+%D marks: (\getmarking[boxmark][zerobox][first],\getmarking[boxmark][zerobox][last])
+%D \stoptyping
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-mar.lmt b/Master/texmf-dist/tex/context/base/mkxl/strc-mar.lmt
new file mode 100644
index 00000000000..e5266daf0dc
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-mar.lmt
@@ -0,0 +1,171 @@
+if not modules then modules = { } end modules ['strc-mar'] = {
+ version = 1.001,
+ comment = "companion to strc-mar.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local lpegmatch = lpeg.match
+local setmetatableindex = table.setmetatableindex
+
+local context = context
+
+local implement = interfaces.implement
+local variables = interfaces.variables
+
+local v_first = variables.first
+local v_last = variables.last
+local v_previous = variables.previous
+local v_next = variables.next
+local v_column = variables.column
+
+local nuts = nodes.nuts
+local nextmark = nuts.traversers.mark
+local getbox = nuts.getbox
+local getid = nuts.getid
+local getlist = nuts.getlist
+local getindex = nuts.getindex
+local getdata = nuts.getdata
+----- setmark_code = nodes.markcodes.set
+local flushmark_code = nodes.markcodes.flush
+local hlist_code = nodes.nodecodes.hlist
+local vlist_code = nodes.nodecodes.vlist
+
+local marks = { }
+structures.marks = marks
+
+local markdata = setmetatableindex("table")
+local pattern = lpeg.splitat(":")
+
+implement {
+ name = "synchronizemarking",
+ arguments = { "string", "integer", "integer" },
+ actions = function(category,index,boxnumber)
+ local new = setmetatableindex("table")
+ local box = getbox(boxnumber)
+ while box and getid(box) == hlist_code do
+ box = getlist(box)
+ end
+ if box and getid(box) == vlist_code then
+ local list = getlist(box)
+ if list then
+ for n, subtype in nextmark, list do
+ local class = getindex(n)
+ local entry = new[class]
+ if subtype == flushmark_code then
+ entry.first = false
+ entry.last = false
+ else
+ if not entry.first then
+ entry.first = n
+ end
+ entry.last = n
+ end
+ end
+ for class, entry in next, new do
+ local first = entry.first
+ local last = entry.last
+ if last and first ~= last then
+ entry.last = getdata(last,true)
+ end
+ if first then
+ entry.first = getdata(first,true)
+ end
+ end
+ else
+ -- wipe empty columns
+ end
+ else
+ -- wipe empty columns
+ end
+ local m = markdata[category]
+ if m then
+ local entry = m[index]
+ if entry then
+ local prev = index == 1 and m[#m] or m[index-1]
+ for class, data in next, entry do
+ local pcls = prev[class]
+ local last = pcls and pcls.last
+ if last then
+ local ncls = new[class]
+ ncls.previous = last
+ if not ncls.first then
+ ncls.first = last
+ end
+ if not ncls.last then
+ ncls.last = ncls.first
+ end
+ end
+ end
+ end
+ m[index] = new
+ else
+ new.previous = ""
+ markdata[category] = { [index] = new }
+ end
+ -- inspect(data)
+ end,
+}
+
+implement {
+ name = "getsynchronizedmarking",
+ arguments = { "integer", "string", "string" },
+ actions = function(class,category,what)
+ local category, n = lpegmatch(pattern,category)
+ local useddata = markdata[category]
+ if useddata then
+ local index = tonumber(n) or 1
+ local data = useddata[index]
+ if data then
+ local entry = data[class]
+ if entry then
+ if what == v_first then
+ context(entry.first or "")
+ elseif what == v_last then
+ context(entry.last or "")
+ elseif what == v_previous then
+ context(entry.previous or "")
+ elseif what == v_next then
+ -- context(entry.next or "") -- will be done when i need it, unreliable anyway
+ end
+ end
+ end
+ end
+ end
+}
+
+implement {
+ name = "resetsynchronizedmarking",
+ arguments = "argument",
+ actions = function(category)
+ local category, n = lpegmatch(pattern,category)
+ markdata[category] = nil
+ end
+}
+
+local pattern = lpeg.afterprefix("li::")
+
+function marks.title(tag,n)
+ local listindex = lpegmatch(pattern,n)
+ if listindex then
+ commands.savedlisttitle(tag,listindex,"marking")
+ else
+ context(n)
+ end
+end
+
+function marks.number(tag,n) -- no spec
+ local listindex = lpegmatch(pattern,n)
+ if listindex then
+ commands.savedlistnumber(tag,listindex)
+ else
+ -- no prefix (as it is the prefix)
+ context(n)
+ end
+end
+
+-- interface
+
+implement { name = "markingtitle", actions = marks.title, arguments = "2 strings" }
+implement { name = "markingnumber", actions = marks.number,arguments = "2 strings" }
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-mar.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-mar.mkxl
index eb095a2a572..4c279f6dd6e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-mar.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-mar.mkxl
@@ -13,7 +13,7 @@
\writestatus{loading}{ConTeXt Structure Macros / Markings}
-\registerctxluafile{strc-mar}{}
+\registerctxluafile{strc-mar}{autosuffix}
\unprotect
@@ -34,9 +34,31 @@
%D implementations but in practice this is not a real problem. It's also easier now
%D to extend this mechanism.
-\definesystemattribute [marks] [global]
+%D In \LUAMETATEX\ we have extended the marks mechanism with a few handy options.
+%D First of all we have automigration built in for inserts and marks (so we no
+%D longer need to do that in \LUA) and marks can be properly flushed.
+
+% \ifdefined\automigrationmode \automigrationmode0 \fi
+% \starttext
+% \dorecurse{10}{
+% \dontleavehmode\setbox0\hbox{SAMPLE #1}\box0
+% \marks\foomark{sample #1}%
+% \samplefile{tufte}\par
+% }%
+% \stoptext
+
+% current
+
+% column:n | n | column | etc ... now only column:n
+
+% default page all keep
+
+%definesystemattribute [marks] [global]
\installcorenamespace{marking}
+\installcorenamespace{markingclass}
+\installcorenamespace{markingsyncs}
+\installcorenamespace{markingfilter}
\installcommandhandler \??marking {marking} \??marking
@@ -45,22 +67,74 @@
\newtoks \everymarking
+% \clf_definemarking{\currentmarking}{\currentmarkingparent}%
+
\appendtoks
- \clf_definemarking{\currentmarking}{\currentmarkingparent}%
+ \ifcsname\??markingclass\currentmarking\endcsname\else
+ \ifempty\currentmarkingparent
+ \expandafter\newmarks\csname\??markingclass\currentmarking\endcsname
+ \expandafter\newtoks \csname\??markingsyncs\currentmarking\endcsname
+ \else
+ \expandafter\letcsname\??markingclass\currentmarking\expandafter\endcsname\csname\??markingclass\currentmarkingparent\endcsname
+ \expandafter\letcsname\??markingsyncs\currentmarking\expandafter\endcsname\csname\??markingsyncs\currentmarkingparent\endcsname
+ \fi
+ \fi
\to \everydefinemarking
-\permanent\protected\tolerant\def\relatemarking [#1]#*[#2]{\clf_relatemarking{#1}{#2}}
-\permanent\protected\tolerant\def\resetmarking [#1]{\clf_resetmarking{#1}}
-\permanent\protected\tolerant\def\synchronizemarking[#1]#*[#2]#*[#3]{\ifvoid#2\else\clf_synchronizemarking{#1}#2{#3}\fi}
-\permanent \def\doifelsemarking #1{\clf_doifelsemarking{#1}} % no \noexpanded
+\permanent\protected\tolerant\def\relatemarking[#1]#*[#2]%
+ {\ifarguments\or\else
+ \xtoksapp\csname\??markingsyncs#2\endcsname{%
+ \flushmarks\csname\??markingclass#1\endcsname
+ \noexpand\the\begincsname\??markingsyncs#1\endcsname
+ }%
+ \fi}
-\def\strc_markings_synchronize#1#2#3{\ifvoid#2\else\clf_synchronizemarking{#1}#2{#3}\fi} % called in page-ini
+\permanent\protected\tolerant\def\clearmarking[#1]%
+ {\ifarguments\else
+ \begingroup
+ \clearmarks\csname\??markingclass#1\endcsname
+ \enforced\let\flushmarks\clearmarks
+ \the\csname\??markingsyncs#1\endcsname
+ \endgroup
+ \fi}
+
+\permanent\protected\tolerant\def\resetmarking[#1]%
+ {\ifarguments\else
+ % probably best: \dontleavehmode
+ \the\csname\??markingsyncs#1\endcsname
+ \fi}
+
+\permanent\protected\tolerant\def\resetsynchronizemarking[#1]%
+ {\clf_resetsynchronizemarking{#1}}
+
+\tolerant\def\synchronizemarking[#1]#*[#2]#*[#3]% #3: options
+ {\clf_synchronizemarking{#1}\plusone\numexpr#2\relax}
+
+\def\strc_markings_synchronize#1#2#3% category n box
+ {\ifvoid#3\orelse\ifcstok{#1}\v!page\else
+ \clf_synchronizemarking{#1}\numexpr#2\relax\numexpr#3\relax
+ \fi}
+
+\permanent\def\doifelsemarking#1%
+ {\ifcondition\ifcommandhandler\??marking{#1}%
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
\permanent\protected\tolerant\def\setmarking[#1]#:#2%
- {\ifconditional\inhibitsetmarking\else
- \doifelse{\namedmarkingparameter{#1}\c!expansion}\v!yes
- {\clf_setmarking{#1}{#2}}%
- {\clf_setmarking{#1}{\detokenize{#2}}}%
+ {\ifarguments\orelse\ifconditional\inhibitsetmarking\else
+ % so no: \dontleavehmode
+ \the\csname\??markingsyncs#1\endcsname
+ \ifcstok{\namedmarkingparameter{#1}\c!expansion}\v!yes
+ \normalexpanded{%
+ \ifvmode\expandafter\flushatnextpar\else\expandafter\firstofoneargument\fi
+ {\marks\csname\??markingclass#1\endcsname{#2}}%
+ }%
+ \else
+ \ifvmode\expandafter\flushatnextpar\else\expandafter\firstofoneargument\fi
+ {\marks\csname\??markingclass#1\endcsname{#2}}%
+ \fi
\fi}
\aliased\let\marking \setmarking
@@ -87,31 +161,103 @@
{}
\tolerant\def\strc_markings_get_yes[#1]#*[#2]#*[#3]%
- {\ifcstok{\namedmarkingparameter{#1}\c!state}\v!start
+ {\ifarguments\orelse\ifcstok{\namedmarkingparameter{#1}\c!state}\v!start
\begingroup
\setsystemmode\v!marking
\the\everymarking
\ifparameter#3\or
- \clf_getmarking{#1}{#2}{#3}%
+ \ifcstok{#2}\v!page
+ \markingcommand{#1}{\csname\??markingfilter#3\endcsname{#1}}%
+ \else
+ \markingcommand{#1}{\clf_getsynchronizedmarking\begincsname\??markingclass#1\endcsname{#2}{#3}}%
+ \fi
+ \orelse\ifparameter#2\or
+ \markingcommand{#1}{\csname\??markingfilter#2\endcsname{#1}}%
\else
- \clf_getmarking{#1}{\v!page}{#2}%
+ \markingcommand{#1}{\csname\??markingfilter\v!default\endcsname{#1}}%
\fi
\endgroup
\fi}
+% previous : last before sync next : first after sync
+% top : first in sync bottom : last in sync
+% first|default : first not top in sync last : last not bottom in sync
+
+% current
+
+\defcsname\??markingfilter\v!previous\endcsname#1{\topmarks \csname\??markingclass#1\endcsname}
+\defcsname\??markingfilter\v!next \endcsname#1{\botmarks \csname\??markingclass#1\endcsname}
+
+%defcsname\??markingfilter\v!top \endcsname#1{\topmarks \csname\??markingclass#1\endcsname}
+\defcsname\??markingfilter\v!top \endcsname#1{\firstmarks \csname\??markingclass#1\endcsname}
+\defcsname\??markingfilter\v!bottom \endcsname#1{\botmarks \csname\??markingclass#1\endcsname}
+
+\defcsname\??markingfilter\v!first \endcsname#1{\firstmarks \csname\??markingclass#1\endcsname}
+\defcsname\??markingfilter\v!last \endcsname#1{\botmarks \csname\??markingclass#1\endcsname}
+
+\defcsname\??markingfilter\v!current \endcsname#1{\currentmarks\csname\??markingclass#1\endcsname}
+
+\letcsname\??markingfilter\v!default\expandafter\endcsname
+ \csname\??markingfilter\v!first \endcsname
+
% the fetchers are fully expandable: [name][method]
-\permanent\tolerant\def\fetchonemark[#1]#*[#2]{\ifconditional\inhibitgetmarking\else\clf_fetchonemark {#1}{\v!page}{#2}\fi}
-\permanent\tolerant\def\fetchtwomarks [#1]{\ifconditional\inhibitgetmarking\else\clf_fetchtwomarks{#1}{\v!page}\fi}
-\permanent\tolerant\def\fetchallmarks [#1]{\ifconditional\inhibitgetmarking\else\clf_fetchallmarks{#1}{\v!page}\fi}
+\def\strc_markings_fetch_one#1#2#3%
+ {\ifparameter#1\or
+ \ifconditional\inhibitgetmarking\else
+ \ifcstok{#2}\v!page
+ \markingcommand{#1}{\begincsname\??markingfilter#3\endcsname{#1}}%
+ \else
+ \markingcommand{#1}{\clf_getsynchronizedmarking{#1}{#2}}%
+ \fi
+ \fi
+ \fi}
+
+\def\strc_markings_fetch_two#1#2%
+ {\ifparameter#1\or
+ \ifconditional\inhibitgetmarking\else
+ \ifcstok{#2}\v!page
+ \markingcommand{#1}{\begincsname\??markingfilter\v!first\endcsname{#1}}%
+ \markingseparator{#1}%
+ \markingcommand{#1}{\begincsname\??markingfilter\v!last\endcsname{#1}}%
+ \else
+ \markingcommand{#1}{\clf_getsynchronizedmarking{#1}\v!first}%
+ \markingseparator{#1}%
+ \markingcommand{#1}{\clf_getsynchronizedmarking{#1}\v!last}%
+ \fi
+ \fi
+ \fi}
+
+\def\strc_markings_fetch_all#1#2%
+ {\ifparameter#1\or
+ \ifconditional\inhibitgetmarking\else
+ \ifcstok{#2}\v!page
+ \markingcommand{#1}{\begincsname\??markingfilter\v!previous\endcsname{#1}}%
+ \markingseparator{#1}%
+ \markingcommand{#1}{\begincsname\??markingfilter\v!first\endcsname{#1}}%
+ \markingseparator{#1}%
+ \markingcommand{#1}{\begincsname\??markingfilter\v!last\endcsname{#1}}%
+ \else
+ %\markingcommand{#1}{\begincsname\??markclass:\v!previous\endcsname{#1}}%
+ %\markingseparator{#1}%
+ \markingcommand{#1}{\clf_getsynchronizedmarking{#1}\v!first}%
+ \markingseparator{#1}%
+ \markingcommand{#1}{\clf_getsynchronizedmarking{#1}\v!last}%
+ \fi
+ \fi
+ \fi}
+
+\permanent\tolerant\def\fetchonemark [#1]#*[#2]{\strc_markings_fetch_one{#1}\v!page{#2}}
+\permanent\tolerant\def\fetchtwomarks [#1]{\strc_markings_fetch_two{#1}\v!page}
+\permanent\tolerant\def\fetchallmarks [#1]{\strc_markings_fetch_all{#1}\v!page}
\aliased\let\fetchmark\fetchonemark
% also fully expandable but here we have: [name][range][method]
-\permanent\tolerant\def\fetchonemarking[#1]#*[#2]#*[#3]{\ifconditional\inhibitgetmarking\else\clf_fetchonemark {#1}{#2}{#3}\fi}
-\permanent\tolerant\def\fetchtwomarkings [#1]#*[#2]{\ifconditional\inhibitgetmarking\else\clf_fetchtwomarks{#1}{#2}\fi}
-\permanent\tolerant\def\fetchallmarkings [#1]#*[#2]{\ifconditional\inhibitgetmarking\else\clf_fetchallmarks{#1}{#2}\fi}
+\permanent\tolerant\def\fetchonemarking [#1]#*[#2]#*[#3]{\strc_markings_fetch_one{#1}{#2}{#3}}
+\permanent\tolerant\def\fetchtwomarkings [#1]#*[#2]{\strc_markings_fetch_two{#1}{#2}}
+\permanent\tolerant\def\fetchallmarkings [#1]#*[#2]{\strc_markings_fetch_all{#1}{#2}}
\aliased\let\fetchmarking\fetchonemarking
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-mat.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-mat.mkxl
index 0b90eecba27..bcbe4a6f87f 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-mat.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-mat.mkxl
@@ -32,6 +32,9 @@
%\c!margin=,
%\c!align=,
%\c!separator=,
+ % \c!splitmethod=\v!both, % first|last|both|<empty>
+ \c!snap=\v!no,
+ \c!snapstep=\v!medium,
\c!grid=\v!math,
\c!location=\v!right,
\c!left=(,
@@ -39,14 +42,16 @@
\c!expansion=\v!yes, % maybe automatically
\c!spacebefore=\v!big,
\c!spaceafter=\formulaparameter\c!spacebefore,
+ \c!spaceinbetween=\v!quarterline,
\c!width=\hsize,
\c!leftmargin=\zeropoint,
\c!rightmargin=\zeropoint,
\c!indentnext=\v!no,
\c!alternative=\s!default,
- \c!strut=\v!no,
+ \c!strut=\v!yes, % per 2022-04, was \v!no
\c!numberstrut=\v!yes, % \v!no \v!yes \v!always
- \c!distance=2\emwidth]
+ \c!numberthreshold=\emwidth,
+ \c!numberdistance=2\emwidth]
\setupformulaframed
[%c!location=<auto set>,
@@ -54,18 +59,7 @@
%c!align=<auto set>,
\c!offset=.5\exheight]
-\ifdefined\matheqnogapstep
- % we're ok, now we have that quad in the distance which is
- % more consistent and not depending on the text font in math
- \matheqnogapstep\zerocount
-\else
- % we will keep this for a while
- \setupformulas[\c!distance=\emwidth]
-\fi
-
-% \ifdefined\mathdisplayskipmode
-% \mathdisplayskipmode\plustwo % only when not zero / needs adapted space handler
-% \fi
+\matheqnogapstep\zerocount % we no longer need this as we don't use displaymode
% \mathdisplayskipmode\plusthree
%
@@ -144,18 +138,18 @@
\definelist[\v!formula]
-\permanent\defcsname\e!start\v!formula\endcsname{\strc_formulas_start_formula{}}
-\permanent\defcsname\e!stop \v!formula\endcsname{\strc_formulas_stop_formula}
+\permanent\protected\defcsname\e!start\v!formula\endcsname{\strc_formulas_start_formula{}}
+\permanent\protected\defcsname\e!stop \v!formula\endcsname{\strc_formulas_stop_formula}
\let\strc_formulas_start_formula\relax % defined later
\let\strc_formulas_stop_formula \relax % defined later
\permanent\tolerant\protected\def\defineformulaalternative[#1]#*[#2]#*[#3]%
- {\frozen\instance\defcsname\e!start#1\v!formula\endcsname{#2}%
- \frozen\instance\defcsname\e!stop #1\v!formula\endcsname{#3}}
+ {\frozen\instance\protected\defcsname\e!start#1\v!formula\endcsname{#2}%
+ \frozen\instance\protected\defcsname\e!stop #1\v!formula\endcsname{#3}}
-% sp = single line paragraph sd = single line display
-% mp = multi line paragraph md = multy line display
+% sp = single line paragraph sd = single line display
+% mp = multi line paragraph md = multi line display
\defineformulaalternative[\s!default][\startdisplaymath][\stopdisplaymath]
\defineformulaalternative[\s!single] [\startdisplaymath][\stopdisplaymath]
@@ -188,22 +182,25 @@
\newtoks\everyresetformulas
\appendtoks
- \let\currentformula\empty % to be checked:
+ \lettonothing\currentformula % to be checked:
\to \everyresetformulas
% implementation
-\protected\def\strc_formulas_store_number#1#2#3#4#5% ref, todo:str, \sync % todo: title etc (like float)
+\protected\def\strc_formulas_store_number#1#2#3#4#5#6% ref, todo:str, \sync % todo: title etc (like float)
{\settrue\c_strc_formulas_handle_number
\strc_counters_register_component
{formula}%
\setupcurrentformula \formulaparameter \detokenizedformulaparameter
\relax \relax \relax
[\c!name=\v!formula,\s!counter=\v!formula,%
- \s!hascaption=\v!yes,\s!hastitle=\v!yes,\s!hasnumber=\v!yes,%\s!haslevel=#6,%
- \c!reference=#1,\c!title=\namedformulaentry,\c!bookmark=]%
+ \s!hascaption=\v!yes,\s!hastitle=\v!yes,\s!hasnumber=\v!yes,\s!haslevel=#6,%
+ \c!reference=#1,%
+ \c!title=\namedformulaentry,
+ \c!list=\currentplaceformulalist,
+ \c!bookmark=\currentplaceformulabookmark]%
[#2]%
- \glet\namedformulaentry\empty % \relax
+ \glettonothing\namedformulaentry % \relax
\glet#3\m_strc_counters_last_registered_index
\glet#4\m_strc_counters_last_registered_synchronize
\glet#5\m_strc_counters_last_registered_attribute}
@@ -215,6 +212,66 @@
\newconstant\c_strc_formulas_sub_number_mode
\newconstant\c_strc_formulas_nested_number_mode
+\let\strc_formulas_show_modes \relax
+\let\strc_formulas_show_references\relax
+
+\installtextracker
+ {math.numbering}
+ {\let\strc_formulas_show_modes \strc_formulas_show_modes_indeed
+ \let\strc_formulas_show_references\strc_formulas_show_references_indeed}
+ {\let\strc_formulas_show_modes \relax
+ \let\strc_formulas_show_references\relax}
+
+\def\strc_formulas_mode_row#1#2#3#4%
+ {\NC #1%
+ \NC \ifcase#2\relax unset\or forced\or none\or reference\fi
+ \NC #3%
+ \NC #4%
+ \NC \NR}
+
+\protected\def\strc_formulas_show_modes_indeed
+ {\rlap{\enspace\vcenter to \zeropoint{\vss\ruledvcenter{%
+ \forgetall\smallinfofont\setupinterlinespace
+ \starttabulate[|l|l|l|l|]
+ \strc_formulas_mode_row{place} \c_strc_formulas_place_number_mode \currentplaceformulareference \currentplaceformulasuffix
+ \strc_formulas_mode_row{main} \c_strc_formulas_number_mode \currentformulareference \currentformulasuffix
+ \strc_formulas_mode_row{sub} \c_strc_formulas_sub_number_mode \currentsubformulareference \currentsubformulasuffix
+ \strc_formulas_mode_row{nested} \c_strc_formulas_nested_number_mode \currentnestedformulareference \currentnestedformulasuffix
+ \stoptabulate
+ \vss}}}}
+
+\protected\def\strc_formulas_show_references_indeed
+ {\llap{\vcenter to \zeropoint{\vss\ruledvcenter{%
+ \forgetall\smallinfofont\setupinterlinespace
+ \starttabulate[|l|l|l|l|]
+ \NC place\NC
+ \ifnum\c_strc_formulas_place_number_mode=\plusthree
+ \ifconditional\c_strc_formulas_referenced
+ \textminus
+ \else
+ \textplus
+ \fi
+ \else
+ \textminus
+ \fi
+ \NC \NR
+ \NC formulas\NC
+ \ifnum\c_strc_formulas_number_mode=\plusthree
+ \textplus
+ \else
+ \textminus
+ \fi
+ \NC \NR
+ \NC nested\NC
+ \ifnum\c_strc_formulas_nested_number_mode=\plusthree
+ \textplus
+ \else
+ \textminus
+ \fi
+ \NC \NR
+ \stoptabulate
+ \vss}}}\enspace}
+
\appendtoks
\c_strc_formulas_place_number_mode \zerocount
\c_strc_formulas_number_mode \zerocount
@@ -227,6 +284,8 @@
\newconditional\c_strc_formulas_inside_place_sub
\newconditional\c_strc_formulas_inside_formulas
\newconditional\c_strc_formulas_inside_formulas_sub
+\newconditional\c_strc_formulas_incremented
+\newconditional\c_strc_formulas_referenced
\appendtoks
\global\setfalse\c_strc_formulas_inside_place
@@ -257,7 +316,8 @@
\empty
\currentsubformulasnumber
\currentsubformulassynchronize
- \currentsubformulasattribute}
+ \currentsubformulasattribute
+ \plustwo}
\def\strc_formulas_handle_sub_number % sub formulas
{\iftrialtypesetting
@@ -275,8 +335,9 @@
{\begingroup
\rm % determines the distance and main font
\edef\p_location{\formulaparameter\c!location}%
+ \strc_formulas_show_references
\ifx\p_location\v!right
- \hskip\formulaparameter\c!distance
+ \strc_formulas_add_distance\plusone\v!left\formulaparameter
\fi
\begingroup
\useformulastyleandcolor\c!numberstyle\c!numbercolor
@@ -295,14 +356,17 @@
\formulaparameter\c!right}%
\endgroup
\ifx\p_location\v!left
- \hskip\formulaparameter\c!distance
+ \strc_formulas_add_distance\plusone\v!right\formulaparameter
\fi
+ \strc_formulas_show_modes
\endgroup}
\protected\def\strc_formulas_place_current_number
{\ifempty\namedformulaentry
+ \begingroup
\strc_formulas_handle_current_references
\labeltexts\currentformula{\convertedcounter[\v!formula][]}%
+ \endgroup
\else
\expandafter % hm, the next one reset \namedformulaentry
\strc_formulas_handle_current_references
@@ -325,30 +389,30 @@
\mutable\let\currentsubformulanumber \relax
\mutable\let\currentformulasnumber \relax
-\mutable\let\currentformulasreference \empty
-\mutable\let\currentformulareference \empty
-\mutable\let\currentsubformulareference \empty
-\mutable\let\currentnestedformulanumber \empty
-\mutable\let\currentnestedformulareference\empty
-\mutable\let\currentnestedformulaattribute\empty
+\mutable\lettonothing\currentformulasreference
+\mutable\lettonothing\currentformulareference
+\mutable\lettonothing\currentsubformulareference
+\mutable\lettonothing\currentnestedformulanumber
+\mutable\lettonothing\currentnestedformulareference
+\mutable\lettonothing\currentnestedformulaattribute
\appendtoks
- \glet\currentformulasreference \empty
- \glet\currentformulareference \empty
- \glet\currentsubformulareference \empty
- \glet\currentnestedformulareference\empty
+ \glettonothing\currentformulasreference
+ \glettonothing\currentformulareference
+ \glettonothing\currentsubformulareference
+ \glettonothing\currentnestedformulareference
\to \everyresetformulas
-\mutable\let\currentformulassuffix \empty
-\mutable\let\currentformulasuffix \empty
-\mutable\let\currentsubformulasuffix \empty
-\mutable\let\currentnestedformulasuffix\empty
+\mutable\lettonothing\currentformulassuffix
+\mutable\lettonothing\currentformulasuffix
+\mutable\lettonothing\currentsubformulasuffix
+\mutable\lettonothing\currentnestedformulasuffix
\appendtoks
- \glet\currentformulassuffix \empty
- \glet\currentformulasuffix \empty
- \glet\currentsubformulasuffix \empty
- \glet\currentnestedformulasuffix\empty
+ \glettonothing\currentformulassuffix
+ \glettonothing\currentformulasuffix
+ \glettonothing\currentsubformulasuffix
+ \glettonothing\currentnestedformulasuffix
\to \everyresetformulas
\mutable\let\currentplaceformulasynchronize \relax
@@ -363,25 +427,28 @@
\glet\currentnestedformulasynchronize\relax
\to \everyresetformulas
-\mutable\let\currentsubformulasattribute \empty
-\mutable\let\currentsubformulasnumber \empty
-\mutable\let\currentsubformulasreference \empty
-\mutable\let\currentsubformulassynchronize\empty
-
-% currently we do the number, some day we will do the (sub) formula
+\mutable\lettonothing\currentsubformulasattribute
+\mutable\lettonothing\currentsubformulasnumber
+\mutable\lettonothing\currentsubformulasreference
+\mutable\lettonothing\currentsubformulassynchronize
\def\strc_formulas_handle_current_references
{\strc_formulas_reference_show
\ifnum\c_strc_formulas_place_number_mode=\plusthree
- \strc_formulas_store_number
- \currentplaceformulareference
- \empty
- \currentplaceformulanumber
+ \ifconditional\c_strc_formulas_referenced
+ \else
+ \strc_formulas_store_number
+ \currentplaceformulareference
+ \empty
+ \currentplaceformulanumber
+ \currentplaceformulasynchronize
+ \currentplaceformulaattribute
+ \plusone
\currentplaceformulasynchronize
- \currentplaceformulaattribute
- \currentplaceformulasynchronize
- \glet\currentplaceformulasynchronize\relax
- \theformuladestinationattribute\currentplaceformulaattribute
+ \glet\currentplaceformulasynchronize\relax
+ \theformuladestinationattribute\currentplaceformulaattribute
+ \global\settrue\c_strc_formulas_referenced
+ \fi
\fi
\ifnum\c_strc_formulas_number_mode=\plusthree
\strc_formulas_store_number
@@ -390,6 +457,7 @@
\currentformulasnumber
\currentformulassynchronize
\currentformulasattribute
+ \plustwo
\currentformulassynchronize
\glet\currentformulassynchronize\relax
\theformuladestinationattribute\currentformulasattribute
@@ -405,18 +473,53 @@
\currentnestedformulanumber
\currentnestedformulasynchronize
\currentnestedformulaattribute
+ \plustwo
\currentnestedformulasynchronize
\glet\currentnestedformulasynchronize\relax
\theformuladestinationattribute\currentnestedformulaattribute
\fi}
-% needs checking ... too many:
+% \def\strc_formulas_handle_numbering_indeed
+% {\ifempty\namedformulaentry
+% \doifelsetext\currentnestedformulasuffix
+% {\strc_counters_increment\v!formula
+% \ifcstok{+}\currentnestedformulasuffix
+% \strc_counters_increment_sub\v!formula\plustwo
+% \else
+% \strc_counters_setown_sub\v!formula\plustwo\currentnestedformulasuffix
+% \fi}%
+% {\ifempty\currentplaceformulasuffix\else
+% \let\currentnestedformulasuffix \currentplaceformulasuffix
+% \let\currentnestedformulareference\currentplaceformulareference
+% \strc_formulas_place_number_nested_check
+% \fi
+% \strc_counters_increment\v!formula}%
+% \fi
+% \glettonothing\currentplaceformulasuffix
+% \glettonothing\currentnestedformulasuffix
+% \placecurrentformulanumber}
\def\strc_formulas_handle_numbering_indeed
{\ifempty\namedformulaentry
- \strc_counters_increment\v!formula
- \doiftext\currentplaceformulasuffix{\strc_counters_setown_sub\v!formula\plustwo\currentplaceformulasuffix}%
+ \doifelsetext\currentnestedformulasuffix
+ {\ifconditional\c_strc_formulas_incremented\else
+ \strc_counters_increment\v!formula
+ \fi
+ \global\settrue\c_strc_formulas_incremented
+ \ifcstok{+}\currentnestedformulasuffix
+ \strc_counters_increment_sub\v!formula\plustwo
+ \else
+ \strc_counters_setown_sub\v!formula\plustwo\currentnestedformulasuffix
+ \fi}%
+ {\ifempty\currentplaceformulasuffix\else
+ \let\currentnestedformulasuffix \currentplaceformulasuffix
+ \let\currentnestedformulareference\currentplaceformulareference
+ \strc_formulas_place_number_nested_check
+ \fi
+ \strc_counters_increment\v!formula}%
\fi
+ \glettonothing\currentplaceformulasuffix
+ \glettonothing\currentnestedformulasuffix
\placecurrentformulanumber}
\def\strc_formulas_handle_numbering
@@ -430,9 +533,11 @@
\def\strc_formulas_handle_sub_numbering_indeed
{\let\strc_formulas_handle_sub_numbering\relax % else error: see math/numbering-001.tex
- \doifelsetext\currentsubformulasuffix
- {\strc_counters_setown_sub\v!formula\plustwo\currentsubformulasuffix}
+ \doifelsetext\currentnestedformulasuffix
+ {\strc_counters_setown_sub\v!formula\plustwo\currentnestedformulasuffix}%
{\strc_counters_increment_sub\v!formula\plustwo}%
+ \glettonothing\currentplaceformulasuffix
+ \glettonothing\currentnestedformulasuffix
\placecurrentformulanumber}
\def\strc_formulas_handle_sub_numbering
@@ -497,27 +602,21 @@
%D
%D \starttyping
%D \displaylines
-%D \eqalignno
-%D \eqalignno
%D \stoptyping
%D
%D Otherwise we get a missing \type {$$} error reported.
\pushoverloadmode
-\aliased\let\reqno\eqno % no longer valid as we just nil it
-
-\aliased\let\math_native_leqno\leqno
-\aliased\let\math_native_reqno\reqno
-
-\permanent\protected\def\normaleqno#1{\writestatus\m!system{no native (l)eqno equation number support}}
+ \permanent\protected\def\normaleqno#1{\writestatus\m!system{no native (l/r)eqno equation number support}}
-\aliased\let\normalleqno\normaleqno
-\aliased\let\normalreqno\normaleqno
+ \aliased\let\normalleqno\normaleqno
+ \aliased\let\normalreqno\normaleqno
+ \aliased\let\normaleqno \normaleqno
-\aliased\let\leqno\normaleqno
-\aliased\let\reqno\normaleqno
-\aliased\let\eqno \normaleqno
+ \aliased\let\leqno \normaleqno
+ \aliased\let\reqno \normaleqno
+ \aliased\let\eqno \normaleqno
\popoverloadmode
@@ -553,104 +652,53 @@
% \predisplaygapfactor \zerocount % default is 2000
-\protected\def\strc_formulas_forget_display_skips
- {\mathdisplayskipmode \plusthree
- \abovedisplayskip \zeropoint
- \belowdisplayskip \zeropoint
- \abovedisplayshortskip\zeropoint
- \belowdisplayshortskip\zeropoint}
+%D We no longer need to do this every time as we don't use display mode
+%D at all, so:
-\newdimen\d_strc_formulas_display_skip_left
-\newdimen\d_strc_formulas_display_skip_right
-\newdimen\d_strc_formulas_display_margin_left
-\newdimen\d_strc_formulas_display_margin_right
-\newdimen\d_strc_formulas_display_pre_threshold
-\newdimen\d_strc_formulas_display_width
+% \protected\def\strc_formulas_forget_display_skips
+% {\mathdisplayskipmode \plusthree
+% \abovedisplayskip \zeropoint
+% \belowdisplayskip \zeropoint
+% \abovedisplayshortskip\zeropoint
+% \belowdisplayshortskip\zeropoint}
-\newconstant\c_strc_formulas_mode % this will go away
-\newconstant\c_strc_formulas_space_model
+%D Became this, where setting the mode is now also irrelevant but the engine still
+%D has it, so:
-\newconstant\c_strc_math_vertical % experiment
+\mathdisplayskipmode \plusthree
+\abovedisplayskip \zeropoint
+\belowdisplayskip \zeropoint
+\abovedisplayshortskip\zeropoint
+\belowdisplayshortskip\zeropoint
-\c_strc_formulas_mode \plustwo % 0=native 1=simple (old) 2=align (new)
-\c_strc_formulas_space_model\plusthree % replaces \plusone, we might use \plusfour in the future
+\newdimension\d_strc_formulas_display_width
-\newconditional\c_strc_formulas_tight
-
-\newbox\b_strc_formulas_number
-\newbox\b_strc_formulas_content
-
-\def\strc_formulas_flush_content_and_number
- {\noindentation
- % \dontleavehmode
- \kern\d_strc_formulas_display_margin_left
- \ifcase\wd\b_strc_formulas_number
- \hbox to \displaywidth \bgroup
- \hfill
- \box\b_strc_formulas_content
- \hfill
- \egroup
- \orelse\ifdim\dimexpr\wd\b_strc_formulas_content+\wd\b_strc_formulas_number\relax>\displaywidth
- \vbox \bgroup
- \hsize\displaywidth
- \box\b_strc_formulas_content
- \par
- \ifx\p_location\v!left
- \box\b_strc_formulas_number\hfill
- \else
- \hfill\box\b_strc_formulas_number
- \fi
- \egroup
- \else
- \hbox to \displaywidth \bgroup
- \ifx\p_location\v!left
- \rlap{\box\b_strc_formulas_number}%
- \hfill\box\b_strc_formulas_content\hfill
- \else
- \hfill\box\b_strc_formulas_content\hfill
- \llap{\box\b_strc_formulas_number}%
- \fi
- \egroup
- \fi}
-
-\installcorenamespace{mathdisplayspacemodel}
+%D In \LMTX\ we have three ways of rendering formulas:
+%D
+%D \startitemize
+%D \startitem line: a single boxed line \stopitem
+%D \startitem text: multiple boxed lines \stopitem
+%D \startitem page: multiple unboxed lines \stopitem
+%D \stopitemize
+%D
+%D So, yes has become text
-\setvalue{\??mathdisplayspacemodel\v!before:1}% old
- {\ifx\p_spacebefore\v!none
- % nothing
- \else
- \directvspacing\p_spacebefore
- \fi}
+\newconstant\c_strc_math_split_mode
-\setvalue{\??mathdisplayspacemodel\v!after:1}% old
- {\prevdepth .5\strutdp
- \edef\p_spaceafter{\formulaparameter\c!spaceafter}%
- \ifx\p_spaceafter\v!none
- % nothing
- \else
- \directvspacing\p_spaceafter
- \fi}
+\mutable\lettonothing\m_strc_math_split
-\setvalue{\??mathdisplayspacemodel\v!before:2}% old
- {\ifx\p_spacebefore\v!none
- % nothing
- \else
- \directvspacing\p_spacebefore
- \fi
- \prevdepth-\maxdimen} % texbook pagina 79-80
+\aliased\let\c_strc_math_line_mode\zerocount
+\aliased\let\c_strc_math_flow_mode\plusone
+\aliased\let\c_strc_math_wrap_mode\plusthree
-\setvalue{\??mathdisplayspacemodel\v!after:2}% old
- {\prevdepth\lineheight
- \edef\p_spaceafter{\formulaparameter\c!spaceafter}%
- \ifx\p_spaceafter\v!none
- % nothing
- \else
- \directvspacing\p_spaceafter
- \fi}
+\newconditional\c_strc_formulas_tight
+\newconditional\c_strc_formulas_packed
+\newconditional\c_strc_formulas_depth
+\newbox \b_strc_formulas_number
-\setvalue{\??mathdisplayspacemodel\v!before:3}%
+\def\strc_formulas_display_space_before_normal
{% not ok, try \stopformula\par\startformula vs \stopformula\startformula
- \let\m_spacebefore\empty
+ \lettonothing\m_spacebefore
\ifvmode
\ifdim\lastskip>\zeropoint\else
\ifdim\prevdepth<\zeropoint\else
@@ -672,7 +720,7 @@
\orelse\ifempty\p_spacebefore
\directvspacing\currentvspacing
\else
- \directvspacing{\p_spacebefore,\the\scratchdimen}%
+ \directvspacing\p_spacebefore
\fi
\else
\ifx\p_spacebefore\v!none
@@ -684,9 +732,8 @@
\fi
\fi}
-\setvalue{\??mathdisplayspacemodel\v!after:3}%
- {\prevdepth\strutdp % \directvspacing\v!depth
- \ifx\p_spaceafter\v!none
+\def\strc_formulas_display_space_after_common
+ {\ifx\p_spaceafter\v!none
% nothing
\orelse\ifempty\p_spaceafter
\directvspacing\currentvspacing
@@ -694,15 +741,17 @@
\directvspacing\p_spaceafter
\fi}
-\newconditional\c_math_model_four_indeed
+\def\strc_formulas_display_space_after_normal
+ {\prevdepth\strutdp % \directvspacing\v!depth
+ \strc_formulas_display_space_after_common}
-\setvalue{\??mathdisplayspacemodel\v!before:4}%
+\def\strc_formulas_display_space_before_depth
{% not ok, try \stopformula\par\startformula vs \stopformula\startformula
\ifvmode
\ifinner
- \csname\??mathdisplayspacemodel\v!before:3\endcsname
+ \strc_formulas_display_space_before_normal
+ \setfalse\c_strc_formulas_depth
\else
- \settrue\c_math_model_four_indeed
\forcestrutdepth
\nointerlineskip
\ifx\p_spacebefore\v!none
@@ -710,31 +759,33 @@
\orelse\ifempty\p_spacebefore
\directvspacing\currentvspacing
\else
- \directvspacing{\p_spacebefore,\the\scratchdimen}%
+ \directvspacing\p_spacebefore
\fi
\fi
- \else
- \csname\??mathdisplayspacemodel\v!before:3\endcsname
- \fi}
+ \else
+ \strc_formulas_display_space_before_normal
+ \fi}
-\setvalue{\??mathdisplayspacemodel\v!after:4}%
- {\ifconditional\c_math_model_four_indeed
- \setfalse\c_math_model_four_indeed
+\def\strc_formulas_display_space_after_depth
+ {\ifconditional\c_strc_formulas_depth
\forcestrutdepth
+ \strc_formulas_display_space_after_common
\else
- \prevdepth\strutdp % \directvspacing\v!depth
- \fi
- \ifx\p_spaceafter\v!none
- % nothing
- \orelse\ifempty\p_spaceafter
- \directvspacing\currentvspacing
+ \strc_formulas_display_space_after_depth_normal
+ \fi}
+
+\def\strc_formulas_display_space_before
+ {\ifconditional\c_strc_formulas_depth
+ \strc_formulas_display_space_before_depth
\else
- \directvspacing\p_spaceafter
+ \strc_formulas_display_space_before_normal
\fi}
-\permanent\protected\def\setdisplaymathspacemodel[#1]%
- {\ifcsname\??mathdisplayspacemodel\v!before:\number#1\endcsname
- \c_strc_formulas_space_model#1\relax
+\def\strc_formulas_display_space_after
+ {\ifconditional\c_strc_formulas_depth
+ \strc_formulas_display_space_after_depth
+ \else
+ \strc_formulas_display_space_after_normal
\fi}
% \newtoks\everybeforedisplay
@@ -745,8 +796,13 @@
\par
\fi
\ifvmode
- \edef\p_spacebefore{\formulaparameter\c!spacebefore}%
- \begincsname\??mathdisplayspacemodel\v!before:\number\c_strc_formulas_space_model\endcsname
+ \ifconditional\c_strc_formulas_packed
+ \lettonothing\p_spacebefore
+ \else
+ \edef\p_spacebefore{\formulaparameter\c!spacebefore}%
+ \fi
+ % \begincsname\??mathdisplayspacemodel\v!before:\number\c_strc_formulas_space_model\endcsname
+ \strc_formulas_display_space_before
\fi
\ifhmode
\par
@@ -758,38 +814,24 @@
\par
\fi
\ifvmode
- \edef\p_spaceafter{\formulaparameter\c!spaceafter}%
- \begincsname\??mathdisplayspacemodel\v!after:\number\c_strc_formulas_space_model\endcsname
+ \ifconditional\c_strc_formulas_packed
+ \lettonothing\p_spaceafter
+ \else
+ \edef\p_spaceafter{\formulaparameter\c!spaceafter}%
+ \fi
+ % \begincsname\??mathdisplayspacemodel\v!after:\number\c_strc_formulas_space_model\endcsname
+ \strc_formulas_display_space_after
\fi
\ifhmode
\par
\fi}
-\permanent\protected\def\setdisplaydimensions
- {\displayindent\dimexpr
- \d_strc_formulas_display_skip_left
- +\d_strc_formulas_display_margin_left
- \relax
- \displaywidth\d_strc_formulas_display_width
- %\setlocalhsize
- %\displaywidth\localhsize
- \ifdim\hangindent>\zeropoint
- \advance\displayindent\hangindent
- \else
- \advance\displaywidth\hangindent
- \fi
- \advance\displaywidth\dimexpr
- -\displayindent
- -\d_strc_formulas_display_skip_right
- -\d_strc_formulas_display_margin_right
- \relax
- \hsize\displaywidth} % new, else overfull in itemize
-
-\protected\def\strc_formulas_start_formula#1%
- {\dodoubleempty\strc_formulas_start_formula_indeed[#1]}
+\ifdefined\setdisplaydimensions \else
+ \let\setdisplaydimensions\relax % this one will be defined in math-ali
+\fi
-% \newskip\formulastrutht
-% \newskip\formulastrutdp
+% \newgluespec\formulastrutht
+% \newgluespec\formulastrutdp
%D \startbuffer
%D \startformula[9pt] x = 1 \stopformula
@@ -798,35 +840,76 @@
%D
%D \typebuffer \getbuffer
-\setvalue{\??formulaoption\v!packed}%
- {\c_strc_formulas_space_model\zerocount}
+%D Some tracing of distances and thresholds:
-\setvalue{\??formulaoption\v!tight}%
+\def\strc_formulas_add_distance_normal#1#2#3% maybe a skip with stretch/shrink
+ {\kern#3\c!numberdistance\relax}
+
+\def\strc_formulas_add_distance_traced#1#2#3%
+ {\begingroup
+ \scratchdimenone #3\c!numberdistance\relax
+ \scratchdimentwo \ifconditional\c_strc_formulas_tight\formulaparameter\c!numberthreshold\else\zeropoint\fi\relax
+ \scratchdimenthree.5\exheight
+ \ifcase\scratchdimentwo\else\ifx#2\v!left
+ \middlered
+ \kern-\scratchdimentwo
+ \vrule
+ \s!height\scratchdimenthree
+ \s!depth \scratchdimenthree
+ \s!width \scratchdimentwo
+ \fi\fi
+ \ifcase\scratchdimenone\else
+ \ifcase#1\or\middlegreen\else\middleblue\fi
+ \vrule
+ \s!height\scratchdimenthree
+ \s!depth \scratchdimenthree
+ \s!width \scratchdimenone
+ \fi
+ \ifcase\scratchdimentwo\else\ifx#2\v!right
+ \middlered
+ \vrule
+ \s!height\scratchdimenthree
+ \s!depth \scratchdimenthree
+ \s!width \scratchdimentwo
+ \kern-\scratchdimentwo
+ \fi\fi
+ \endgroup}
+
+\installtextracker
+ {math.numberdistance}
+ {\let\strc_formulas_add_distance\strc_formulas_add_distance_traced}
+ {\let\strc_formulas_add_distance\strc_formulas_add_distance_normal}
+
+\let\strc_formulas_add_distance \strc_formulas_add_distance_normal
+
+\defcsname\??formulaoption\v!packed\endcsname
+ {\settrue\c_strc_formulas_packed}
+
+\defcsname\??formulaoption\v!tight\endcsname
{\settrue\c_strc_formulas_tight}
-\setvalue{\??formulaoption\v!middle}%
- {\d_strc_formulas_display_skip_left \zeropoint
- \d_strc_formulas_display_skip_right\zeropoint}
+\defcsname\??formulaoption\v!middle\endcsname
+ {}
-\setvalue{\??formulaoption\v!depth}%
- {\c_strc_formulas_space_model\plusfour}
+\defcsname\??formulaoption\v!depth\endcsname
+ {\settrue\c_strc_formulas_depth}
-\setvalue{\??formulaoption\v!line}%
+\defcsname\??formulaoption\v!line\endcsname
{\ifgridsnapping
\setformulaparameter\c!grid{\v!math:\v!line}%
\fi}
-\setvalue{\??formulaoption\v!halfline}%
+\defcsname\??formulaoption\v!halfline\endcsname
{\ifgridsnapping
\setformulaparameter\c!grid{\v!math:\v!halfline}%
\fi}
-\setvalue{\??formulaoption-\v!line}%
+\defcsname\??formulaoption-\v!line\endcsname
{\ifgridsnapping
\setformulaparameter\c!grid{\v!math:-\v!line}%
\fi}
-\setvalue{\??formulaoption-\v!halfline}%
+\defcsname\??formulaoption-\v!halfline\endcsname
{\ifgridsnapping
\setformulaparameter\c!grid{\v!math:-\v!halfline}%
\fi}
@@ -836,92 +919,660 @@
% \prebinoppenalty -100
% \prerelpenalty -100
+% \placeformula[eq:a]
+% \startformula[split=text]
+% m(b-a)\leq\int_a^b f(x)\dd x\leq M(b-a).
+% \stopformula
+%
+% \placeformula[eq:b]
+% \startformula[split=line]
+% m(b-a)\leq\int_a^b f(x)\dd x\leq M(b-a).
+% \stopformula
+%
+% \placeformula[eq:c]
+% \startformula[split=line,numberlocation=overlay]
+% m(b-a)\leq\int_a^b f(x)\dd x\leq M(b-a).
+% \stopformula
+
\def\strc_math_set_split
- {\edef\p_split{\formulaparameter\c!split}%
- \ifx\p_split\v!yes
- \global\c_strc_math_vertical\plusone
- \orelse\ifx\p_split\v!page
- \global\c_strc_math_vertical\plustwo
+ {\edef\m_strc_math_split{\formulaparameter\c!split}%
+ \ifx\m_strc_math_split\v!line
+ \global\c_strc_math_split_mode\c_strc_math_line_mode
+ \orelse\ifx\m_strc_math_split\v!no
+ \global\c_strc_math_split_mode\c_strc_math_line_mode
+ \orelse\ifx\m_strc_math_split\v!box
+ \global\c_strc_math_split_mode\c_strc_math_wrap_mode
+ % \orelse\ifx\m_strc_math_split\v!page
+ % \global\c_strc_math_split_mode\c_strc_math_flow_mode
+ % \orelse\ifx\m_strc_math_split\v!text
+ % \global\c_strc_math_split_mode\c_strc_math_flow_mode
+ % \orelse\ifx\m_strc_math_split\v!yes
+ % \global\c_strc_math_split_mode\c_strc_math_flow_mode
+ % \orelse\ifx\m_strc_math_split\v!paragraph
+ % \global\c_strc_math_split_mode\c_strc_math_flow_mode
\else
- \global\c_strc_math_vertical\zerocount
+ \global\c_strc_math_split_mode\c_strc_math_flow_mode
\fi
- \ifcase\c_strc_math_vertical
- % \mathpenaltiesmode \zerocount
- \clf_setmathpenalties\zerocount
- \clf_resetmathhang
+ \mathpenaltiesmode\plusone
+ \ifnum\c_strc_math_split_mode=\c_strc_math_line_mode
+ \global\setfalse\c_strc_math_indent
\else
- % \mathpenaltiesmode \plusone
- \clf_setmathpenalties\plusone
- \edef\p_hang{\formulaparameter\c!hang}%
- \ifx\p_hang\v!none
- \global\setfalse\c_strc_math_indent
- \clf_resetmathhang
- \else
- \global\settrue\c_strc_math_indent
- \clf_setmathhang {%
- method {\p_hang}%
- distance \formulaparameter\c!distance
- }%
- \fi
+ \global\settrue\c_strc_math_indent % otherwise no breaks
+ \fi
+ \global\d_strc_math_indent\zeropoint}
+
+\def\strc_math_set_number_location
+ {\ifcstok{\formulaparameter\c!numberlocation}\v!overlay
+ \settrue\c_strc_formulas_overlay_number
+ \else
+ \setfalse\c_strc_formulas_overlay_number
+ \fi
+ \ifcstok{\formulaparameter\c!numbermethod}\v!down
+ \settrue\c_math_align_overflow_mode
+ \else
+ \setfalse\c_math_align_overflow_mode
\fi}
\setupformula
- [\c!split=\v!no,
- \c!distance=\zeropoint,
+% [\c!split=\v!no,
+ [\c!split=\v!text, % multi line no page breaks
+ \c!numberlocation=,
+ \c!textdistance=\zeropoint,
%\c!interlinespace=1.5\lineheight,
- \c!interlinespace=,
- \c!hang=\v!none]
+ \c!textmargin=2\emwidth,
+ \c!numbermethod=\v!down,
+ \c!interlinespace=]
% for the moment (when testing) we use a penalty 1
-\protected\def\strc_math_align_here{\ifmmode\penalty\plusone\fi}%
-\protected\def\strc_math_break_here{\ifmmode\hfill\break \fi}%
+%D Alignment in vertically rendered formulas using \type {\alignhere} and friends
+%D has been an experimental \MKIV\ features for quite a while but probably very few
+%D users were aware of it. It works quite well and little code is needed. With
+%D \LMTX\ defaulting to multiline display math it was time to add a couple of
+%D features and tracing. It can actually often replace math alignments and thereby
+%D not only save coding but also keep formulas as formulas instead of snippets.
+%D
+%D There can of course be more tricks applied but most already were rejected when I
+%D wrote the original version which is actually not that far from what we do now
+%D (like deeply burried align points). The main difference between the following
+%D variant and the \MKIV\ one is that we try to honour the new inter|-|atom spacing
+%D and adapt to the general alignment settings.
+
+\def\strc_math_pickup_again
+% {\mathatom \s!leftclass \mathendcode \s!rightclass \mathbegincode{}\noatomruling}
+ {\mathatom \s!class \mathbegincode{}\noatomruling}
+
+% maybe: \newboundary \c_strc_math_align_boundary
+
+\defineboundary[mathalign] % this one is also used at the lua end
+
+\newconditional\c_strc_math_trace_hang
+\newdimension \d_strc_math_hang_state
+
+\installtextracker
+ {math.autohang}
+ {\settrue\c_strc_math_trace_hang}
+ {\setfalse\c_strc_math_trace_hang}
+
+\newconditional\c_strc_math_aligned_here
+
+\def\strc_math_trace_okay#1#2%
+ {\mathghost{\llap{\backgroundline[#1]{\white\tttf#2}}}}
+
+\protected\def\strc_math_align_here
+ {\ifmmode
+ \global\settrue\c_strc_math_aligned_here
+ % we can have a more dedicated value, and also maybe store the class so that we can
+ % pick it up at the engine end (second pass)
+ \ifconditional\c_strc_math_trace_hang
+ \strc_math_trace_okay{darkred}{A}%
+ \fi
+ \boundary\c_bndr_mathalign
+ \fi}
+
+\tolerant\protected\def\strc_math_skip_here[#1]%
+ {% no strut as it will influence fences
+ \ifconditional\c_strc_math_trace_hang
+ \strc_math_trace_okay{darkblue}{S #1}%
+ \fi
+ \scratchdimen\dimexpr\formulaparameter\c!textmargin\relax
+ \ifchkdim#1\or
+ \d_strc_math_hang_state#1%
+ \orelse\ifchknum#1\or
+ \d_strc_math_hang_state#1\scratchdimen
+ \orelse\iftok{#1}{+}%
+ \advanceby\d_strc_math_hang_state\scratchdimen
+ \orelse\iftok{#1}{-}%
+ \advanceby\d_strc_math_hang_state-\scratchdimen
+ \else
+ \d_strc_math_hang_state\scratchdimen
+ \fi
+ \kern\d_strc_math_hang_state
+ \strc_math_pickup_again}
+
+% \blank[line] \ruledhbox{zzzz} \blank[line]
+%
+% xxxx \vadjust
+% depth check
+% depth after -\thousandpoint
+% {\blue xxxx +}
+% xxxx \vadjust
+% pre
+% {\red xxxx -}
+% xxxx
+%
+% \blank[line] \ruledhbox{zzzz} \blank[line]
+
+% \tolerant\protected\def\strc_math_text_here[#1]#:#*#=%
+% {\ifparameter#2\or
+% \ifnum\lastboundary=\c_math_begin_boundary\else
+% \ifcstok{#1}\v!right\else
+% \strc_math_break_here
+% \fi
+% \fi
+% \vadjust
+% \ifcstok{#1}\v!before
+% pre
+% \orelse\ifcstok{#1}\v!left
+% pre
+% baseline
+% depth before -\thousandpoint
+% \orelse\ifcstok{#1}\v!right
+% post
+% baseline
+% \fi
+% \bgroup
+% \hbox to \displaywidth \bgroup
+% \strut
+% \ifcstok{#1}\v!right
+% \hfill#2%
+% \else
+% #2\hss
+% \fi
+% \strut
+% \egroup
+% \egroup
+% \ifcstok{#1}\v!right
+% \strc_math_break_here
+% \else
+% % \mathatom class \mathexplicitcode{}%
+% \strc_math_pickup_again
+% \fi
+% \orelse\ifcstok{#1}\v!page
+% \strc_math_page_here
+% \orelse\ifcstok{#1}\v!samepage
+% \strc_math_same_here
+% \else
+% \strc_math_break_here
+% \fi}
+
+\definelocalboxes
+ [\v!lefttext]
+ [\c!command=\localmarginlefttext\zeropoint,
+ \c!repeat=\v!no,
+ \c!distance=\zeropoint,
+ \c!location=\v!middle]
+
+\definelocalboxes
+ [\v!righttext]
+ [\c!command=\localmarginrighttext\zeropoint,
+ \c!repeat=\v!no,
+ \c!distance=\zeropoint,
+ \c!location=\v!middle]
+
+\installcorenamespace{mathtexthere}
+\installcorenamespace{mathbreakhere}
+
+\def\strc_math_text_here_right#1%
+ {\localbox[\v!righttext]{\llap{#1}}}
+
+\def\strc_math_text_here_left#1%
+ {\localbox[\v!lefttext]{\rlap{#1}}}
+
+\def\strc_math_text_here_before#1%
+ {\vadjust pre \bgroup
+ \hbox to \displaywidth \bgroup
+ \strut
+ \hskip\leftskip
+ #1\hss
+ \hskip\rightskip
+ \strut
+ \egroup
+ \egroup}
+
+\def\strc_math_text_here_after#1%
+ {\vadjust \bgroup
+ \hbox to \displaywidth \bgroup
+ \strut
+ \hskip\leftskip
+ #1\hss
+ \hskip\rightskip
+ \strut
+ \egroup
+ \egroup}
+
+\letcsname\??mathtexthere\v!left \endcsname\strc_math_text_here_left
+\letcsname\??mathtexthere\v!right \endcsname\strc_math_text_here_right
+\letcsname\??mathtexthere\v!before\endcsname\strc_math_text_here_before
+\letcsname\??mathtexthere\v!after \endcsname\strc_math_text_here_after
+
+\defcsname\??mathbreakhere\v!left\endcsname#1%
+ {\ifnum\lastboundary=\c_math_begin_boundary\else
+ \strc_math_line_here
+ \fi
+ \strc_math_text_here_left{#1}%
+ \strc_math_pickup_again}
+
+\defcsname\??mathbreakhere\v!right\endcsname#1%
+ {\strc_math_text_here_right{#1}%
+ \strc_math_line_here
+ \strc_math_pickup_again}
+
+\defcsname\??mathbreakhere\v!before\endcsname#1%
+ {\ifnum\lastboundary=\c_math_begin_boundary\else
+ \strc_math_line_here
+ \fi
+ \strc_math_text_here_before{#1}%
+ \strc_math_pickup_again}
+
+\defcsname\??mathbreakhere\v!after\endcsname#1%
+ {\ifnum\lastboundary=\c_math_begin_boundary\else
+ \strc_math_line_here
+ \fi
+ \strc_math_text_here_after{#1}%
+ \strc_math_pickup_again}
+
+\tolerant\protected\def\strc_math_break_here[#1]#:#*#=%
+ {\ifparameter#2\or
+ \ifcsname\??mathbreakhere#1\endcsname
+ \expandafter\lastnamedcs
+ \else
+ \csname\??mathbreakhere\v!after\expandafter\endcsname
+ \fi{#2}%
+ \orelse\ifcstok{#1}\v!page
+ \strc_math_page_here
+ \orelse\ifcstok{#1}\v!samepage
+ \strc_math_same_here
+ \else
+ \strc_math_line_here
+ \fi}
+
+\tolerant\protected\def\strc_math_text_here[#1]#:#*#=%
+ {\ifparameter#2\or
+ \ifcsname\??mathtexthere#1\endcsname
+ \expandafter\lastnamedcs
+ \else
+ \csname\??mathtexthere\v!after\expandafter\endcsname
+ \fi{#2}%
+ \fi}
+
+\protected\def\strc_math_page_here
+ {\ifmmode
+ \ifconditional\c_strc_math_trace_hang
+ \strc_math_trace_okay{darkyellow}{B P}%
+ \fi
+ \break
+ \vadjust pre {\vfill\penalty-100000}%
+ \strc_math_pickup_again
+ \fi}
+
+\protected\def\strc_math_same_here
+ {\ifmmode
+ \ifconditional\c_strc_math_trace_hang
+ \strc_math_trace_okay{darkyellow}{B S}%
+ \fi
+ \break
+ \vadjust pre {\penalty\plustenthousand}%
+ \strc_math_pickup_again
+ \fi}
+
+\protected\def\strc_math_line_here
+ {\ifmmode
+ \ifconditional\c_strc_math_trace_hang
+ \strc_math_trace_okay{darkgreen}{B}%
+ \fi
+ \break
+ \strc_math_pickup_again
+ \fi}
\ifdefined\alignhere \else \aliased\let\alignhere\relax \fi
+\ifdefined\texthere \else \aliased\let\texthere \relax \fi
+\ifdefined\skiphere \else \aliased\let\skiphere \relax \fi
\ifdefined\breakhere \else \aliased\let\breakhere\relax \fi
-\appendtoks
+\appendtoks % must move to alignment
\enforced\let\alignhere\strc_math_align_here
\enforced\let\breakhere\strc_math_break_here
+ \enforced\let\skiphere \strc_math_skip_here
+ \enforced\let\texthere \strc_math_text_here
+ % \global\setfalse\c_strc_math_aligned_here
\to \everymathematics
-\protected\def\strc_formulas_start_formula_indeed[#1][#2]% setting leftskip adaption is slow !
- {\ifhmode
- \par
+\installcorenamespace{mathtextalign}
+
+\newconstant\c_strc_math_ragged_status
+\newconstant\c_strc_math_split_status
+
+\prependtoks
+ \c_strc_math_ragged_status\plustwo
+ \c_strc_math_split_status \zerocount
+\to \everymathematics
+
+\prependtoks
+ % we need to keep an eye on this
+ \mathgluemode\ifcase\raggedstatus\plusthree\else\zerocount\fi
+\to \everymathematics
+
+\defcsname\??mathtextalign\v!flushleft\endcsname
+ {\raggedright
+ \mathgluemode\plustwo
+ \c_strc_math_ragged_status\plusone
+ \updateparagraphproperties} % not needed
+
+\defcsname\??mathtextalign\v!middle\endcsname
+ {\raggedcenter
+ \mathgluemode\plustwo
+ \c_strc_math_ragged_status\plustwo
+ \updateparagraphproperties} % not needed
+
+\defcsname\??mathtextalign\v!flushright\endcsname
+ {\raggedleft
+ \mathgluemode\plustwo
+ \c_strc_math_ragged_status\plusthree
+ \updateparagraphproperties} % not needed
+
+\defcsname\??mathtextalign\v!slanted\endcsname
+ {\raggedslanted
+ %\mathgluemode\plustwo
+ \c_strc_math_ragged_status\plustwo
+ \ifcase\c_strc_math_number_location\or
+ \parinitleftskip\wd\b_strc_formulas_number % should normally fit
+ \else
+ \parfillrightskip\wd\b_strc_formulas_number % should normally fit
\fi
- \bgroup % HERE
- \iftrialtypesetting\else
- \global\advance\c_strc_formulas_n\plusone
+ \updateparagraphproperties} % not needed
+
+\def\strc_math_setup_align
+ {\ifcsname\??mathtextalign\formulaparameter\c!align\endcsname
+ \lastnamedcs\else\begincsname\??mathtextalign\v!middle\endcsname
+ \fi}
+
+\defcsname\??mathtextalign\v!flushleft:\v!auto\endcsname
+ {\raggedright
+ \mathgluemode\plustwo
+ \c_strc_math_ragged_status\plusone
+ \strc_math_analyze_box}
+
+\defcsname\??mathtextalign\v!middle:\v!auto\endcsname
+ {\raggedright
+ \mathgluemode\plustwo
+ \c_strc_math_ragged_status\plustwo
+ \strc_math_analyze_box}
+
+\defcsname\??mathtextalign\v!flushright:\v!auto\endcsname
+ {\raggedright
+ \mathgluemode\plustwo
+ \c_strc_math_ragged_status\plusthree
+ \strc_math_analyze_box}
+
+\defcsname\??mathtextalign\v!slanted:\v!auto\endcsname
+ {\raggedright
+ \mathgluemode\plustwo
+ \c_strc_math_ragged_status\plustwo
+ \strc_math_analyze_box}
+
+\def\strc_math_setup_align_auto
+ {\ifcsname\??mathtextalign\formulaparameter\c!align:\v!auto\endcsname
+ \lastnamedcs\else\begincsname\??mathtextalign\v!middle:\v!auto\endcsname
+ \fi}
+
+\letcsname\??mathtextalign\v!right \expandafter\endcsname\csname\??mathtextalign\v!flushleft \endcsname
+\letcsname\??mathtextalign\v!left \expandafter\endcsname\csname\??mathtextalign\v!flushright \endcsname
+\letcsname\??mathtextalign\v!right:\v!auto\expandafter\endcsname\csname\??mathtextalign\v!flushleft :\v!auto\endcsname
+\letcsname\??mathtextalign\v!left :\v!auto\expandafter\endcsname\csname\??mathtextalign\v!flushright:\v!auto\endcsname
+
+\startsetups[math:penalties:\v!text]
+ \interlinepenalty \plustenthousand
+ \shapingpenalty \plustenthousand
+\stopsetups
+
+% or (test):
+%
+% \startsetups[math:penalties:\v!text]
+% \shapingpenaltiesmode \zerocount
+% \interlinepenalty \plustenthousand
+% \stopsetups
+
+\startsetups[math:penalties:\v!page]
+ \shapingpenaltiesmode \zerocount
+ \widowpenalties \plusthree \plustenthousand \plustenthousand \zerocount
+ \clubpenalties \plusthree \plustenthousand \plustenthousand \zerocount
+\stopsetups
+
+\setupformula
+ [\c!penalties=math:penalties:\formulaparameter\c!split] % math:penalties:\m_strc_math_split
+
+\def\strc_math_setup_penalties
+ {\directsetup{\formulaparameter\c!penalties}}
+
+% a limitation is that this only works in a regular setting, so no shapes
+
+\appendtoks
+ \global\d_strc_math_indent \zeropoint
+ \global\c_strc_math_n_of_lines \zerocount
+ \global\d_strc_math_max_width \zeropoint
+ \global\d_strc_math_first_width \zeropoint
+ \global\d_strc_math_first_height\zeropoint
+ \global\d_strc_math_last_width \zeropoint
+ \global\d_strc_math_last_depth \zeropoint
+\to \everyresetformulas
+
+\newbox\b_strc_math_display % most code is in math-ali (for historical reasons)
+
+\newgluespec\s_strc_formulas_margin_left
+\newgluespec\s_strc_formulas_margin_right
+
+\def\strc_formulas_set_paragraph
+ {%\setlocalhsize
+ %\hsize\localhsize
+ %
+ \d_strc_formulas_display_width\formulaparameter\c!width\relax
+ \s_strc_formulas_margin_left \leftskip
+ \s_strc_formulas_margin_right\rightskip
+ \edef\p_margin{\formulaparameter\c!leftmargin}%
+ \ifempty\p_margin \else
+ \doadaptleftskip\p_margin
\fi
- \def\currentformula{#1}%
- \strc_math_set_split
- \dostarttaggedchained\t!formula\currentformula\??formula
- \setfalse\c_strc_formulas_tight
- \d_strc_formulas_display_skip_left \leftskip
- \d_strc_formulas_display_skip_right \rightskip
- \d_strc_formulas_display_width \formulaparameter\c!width\relax
- \d_strc_formulas_display_margin_left \formulaparameter\c!leftmargin\relax
- \d_strc_formulas_display_margin_right\formulaparameter\c!rightmargin\relax
- \iftok{#2}\emptytoks
+ \edef\p_margin{\formulaparameter\c!rightmargin}%
+ \ifempty\p_margin \else
+ \doadaptrightskip\p_margin
+ \fi
+ \edef\p_margin{\formulaparameter\c!margin}%
+ \ifempty\p_margin \else
+ \doadaptleftskip\p_margin
+ \doadaptrightskip\p_margin
+ \fi
+ %
+ \global\setfalse\c_strc_math_aligned_here
+ \hsize\d_strc_formulas_display_width
+ \displaywidth\hsize
+ \displayindent\zeropoint}
+
+% \def\strc_math_analyze_box
+% {\clf_handlemathhang
+% stage \plusone
+% alignstate \c_strc_math_ragged_status
+% box \b_strc_math_display
+% distance \formulaparameter\c!textdistance
+% \relax
+% %\holdingmigrations\zerocount
+% \setbox\b_strc_math_display\vbox\bgroup % \vtop
+% \ifnum\c_strc_math_split_mode=\c_strc_math_line_mode
+% % we can't end up here
+% \orelse\ifconditional\c_strc_math_aligned_here
+% \ifzeropt\d_strc_math_indent\else
+% \hangafter\plusone
+% \hangindent\d_strc_math_indent
+% \fi
+% % \strc_math_setup_align % _inner
+% \else
+% \strc_math_setup_align
+% \fi
+% % \strc_math_setup_spacing\formulaparameter
+% \strc_math_setup_penalties
+% \unhbox\b_strc_math_display
+% \egroup
+% \clf_handlemathhang
+% stage \ifconditional\c_strc_math_aligned_here \plustwo \else \plusthree \fi
+% % alignstate \c_strc_math_ragged_status
+% % box \b_strc_math_display
+% % distance \formulaparameter\c!textdistance
+% \relax
+% %
+% \begingroup
+% \edef\v_spac_whitespace_current{\formulaparameter\c!spaceinbetween}%
+% \spac_whitespace_setup
+% \clf_handlemathhang
+% stage \plusfour
+% inbetween 1\parskip
+% height \strutht
+% depth \strutdp
+% \relax
+% \endgroup}
+
+\def\strc_math_analyze_box
+ {\clf_handlemathhang
+ stage \plusone
+ alignstate \c_strc_math_ragged_status
+ box \b_strc_math_display
+ distance \formulaparameter\c!textdistance
+ \relax
+ %\holdingmigrations\zerocount
+ \setbox\b_strc_math_display\vbox\bgroup % \vtop
+ \ifnum\c_strc_math_split_mode=\c_strc_math_line_mode
+ % we can't end up here
+ \orelse\ifconditional\c_strc_math_aligned_here
+ \ifzeropt\d_strc_math_indent\else
+% \ifnum\c_page_sides_hangafter=\zerocount
+% \hangafter\plusone
+% \hangindent\d_strc_math_indent
+% \else
+ % this might become the default anyway:
+ \advanceby\leftskip\d_strc_math_indent
+ \hskip-\d_strc_math_indent
+% \fi
+ \fi
+ % \strc_math_setup_align % _inner
+ \else
+ \strc_math_setup_align
+ \fi
+ % \strc_math_setup_spacing\formulaparameter
+ \strc_math_setup_penalties
+ \unhbox\b_strc_math_display
+ \egroup
+ \clf_handlemathhang
+ stage \ifconditional\c_strc_math_aligned_here \plustwo \else \plusthree \fi
+ % alignstate \c_strc_math_ragged_status
+ % box \b_strc_math_display
+ % distance \formulaparameter\c!textdistance
+ \relax
+ %
+ \begingroup
+ \edef\v_spac_whitespace_current{\formulaparameter\c!spaceinbetween}%
+ \spac_whitespace_setup
+ \clf_handlemathhang
+ stage \plusfour
+ inbetween 1\parskip
+ height \strutht
+ depth \strutdp
+ splitmethod {\formulaparameter\c!splitmethod}%
+ \relax
+ \endgroup}
+
+\def\strc_math_show_margins_there
+ {\vadjust pre \bgroup
+ \c_attr_visual\attributeunsetvalue
+ \hbox to \hsize \bgroup
+ \setbox\scratchbox\hbox to \hsize\bgroup
+ \bgroup\darkred \vrule \s!width\leftskip \egroup\hss
+ \bgroup\darkgray\leaders\vrule\hfill \egroup\hss
+ \bgroup\white \vrule \s!width\emwidth \egroup\hss
+ \bgroup\darkgray\leaders\vrule\hfill \egroup\hss
+ \bgroup\darkblue\vrule \s!width\rightskip\egroup
+ \egroup
+ \ht\scratchbox1.2\exheight
+ \dp\scratchbox0.4\exheight
+ \strut
+ \box\scratchbox
+ \hskip-\hsize
+ \hbox to \hsize \bgroup
+ \white
+ \infofont
+ \hskip1\leftskip
+ \quad
+ \formulaparameter\c!split
+ \quad
+ \formulaparameter\c!align
+ \egroup
+ \egroup
+ \egroup}
+
+\let\strc_math_inject_show_margins_here\relax
+
+\def\strc_math_show_margins_indeed
+ {\gdef\strc_math_inject_show_margins_here
+ {\strc_math_show_margins_there
+ \glet\strc_math_inject_show_margins_here\relax}%
+ \appendtoks\strc_math_inject_show_margins_here\to\everypar}
+
+\installtextracker
+ {math.showmargins}
+ {\let\strc_math_show_margins\strc_math_show_margins_indeed}
+ {\let\strc_math_show_margins\relax}
+
+\let\strc_math_show_margins\relax
+
+\def\strc_math_set_options#1%
+ {\setfalse\c_strc_formulas_tight
+ \setfalse\c_strc_formulas_packed
+ \setfalse\c_strc_formulas_depth
+ \iftok{#1}\emptytoks
\edef\p_option{\formulaparameter\c!option}%
- \orelse\ifhastok={#2}% this is new, so that we can also set the grid
- \setupcurrentformula[#2]%
+ \orelse\ifhastok={#1}% this is new, so that we can also set the grid
+ \setupcurrentformula[#1]%
\edef\p_option{\formulaparameter\c!option}%
\else
\edef\p_option{\formulaparameter\c!option}%
- \edef\p_option{\ifempty\p_option\else\p_option,\fi#2}%
+ \edef\p_option{\ifempty\p_option\else\p_option,\fi#1}%
\fi
\ifempty\p_option \else
\rawprocesscommacommand[\p_option]\strc_formulas_option
+ \fi}
+
+\tolerant\protected\def\strc_formulas_start_formula#1#:#*[#2]% setting leftskip adaption is slow !
+ {\ifhmode
+ \par
\fi
- \edef\p_margin{\formulaparameter\c!margin}%
- \ifempty\p_margin \else
- \dosetleftskipadaption\p_margin
- \d_strc_formulas_display_margin_left\leftskipadaption
+ \bgroup % HERE
+ \iftrialtypesetting\else
+ \global\advanceby\c_strc_formulas_n\plusone
\fi
+ \def\currentformula{#1}%
+ \dostarttaggedchained\t!formula\currentformula\??formula
+ \strc_math_set_options{#2}%
+ \strc_math_set_split
+ \strc_math_set_number_location
+ \strc_formulas_set_paragraph
\let\strc_formulas_start_formula\strc_formulas_start_formula_nested
- \strc_formulas_forget_display_skips
\the\everybeforedisplayformula
+ \strc_math_setup_align
+ \ifcstok{\formulaparameter\c!strut}\v!yes
+ \let\strc_formulas_begstrut\begstrut
+ \let\strc_formulas_endstrut\endstrut
+ \else
+ \let\strc_formulas_begstrut\relax
+ \let\strc_formulas_endstrut\relax
+ \fi
\csname\e!start\formulaparameter\c!alternative\v!formula\endcsname}
\protected\def\strc_formulas_start_formula_nested#1%
@@ -933,9 +1584,11 @@
{\dostoptagged
\egroup}
+% the application of the above is in math-ali.mkxl: \strc_math_flush_aligned
+
% tagging of formulanumbers is not ok (we get two display maths blobs)
-\newcount\c_strc_formulas_n
+\newinteger\c_strc_formulas_n
\ifdefined\dotagregisterformula \else \aliased\let\dotagregisterformula\gobbleoneargument \fi
@@ -970,14 +1623,12 @@
\fi
\to \everybeforedisplayformula
-% \protected\def\switchtoformulabodyfont
-% {\switchtobodyfont}
-
-\tolerant\permanent\protected\def\formula[#1];#2% todo: tagged
+\tolerant\permanent\protected\def\formula[#1]#;#2% todo: tagged
{\begingroup
\ifparameters#1\else
\rawprocesscommacommand[#1]\strc_formulas_option
\fi
+ \useformulastyleandcolor\c!style\c!color
\mathematics{#2}%
\endgroup}
@@ -990,6 +1641,11 @@
%D \startformula x \stopformula % now has \noindent (in mkii we messed with baselineskip)
%D \stoptyping
+\let\strc_formulas_begstrut\relax
+\let\strc_formulas_endstrut\relax
+
+\newboundary\c_math_begin_boundary
+
\permanent\protected\def\startdisplaymath
{\ifhmode
\par
@@ -997,39 +1653,26 @@
\bgroup
\informulatrue
\beforedisplayspace
- \setdisplaydimensions
- \ifcase\c_strc_formulas_mode
- \noindent % prevents that tex injects empty line (when using native display mechanism)
- \Ucheckedstartdisplaymath
- \the\everydisplay % new (probably too much)
- \or
- \setbox\b_strc_formulas_content\hbox\bgroup
- \normalUstartmath
- \displaystyle
- \the\everydisplay % new (probably too much)
- \else
- \expandafter\startinnermath
+ \startinnermath
+ \ifrelax\strc_formulas_begstrut\else
+ \strc_formulas_begstrut
+ \boundary\c_math_begin_boundary
\fi
\begingroup} % less interference with upcoming a \over b
\permanent\protected\def\stopdisplaymath
{\endgroup % less interference with upcoming a \over b
- \ifcase\c_strc_formulas_mode
- \Ucheckedstopdisplaymath
- \or
- \normalUstopmath
- \egroup
- \strc_formulas_flush_content_and_number
- \else
- \expandafter\stopinnermath
- \fi
+% \ifrelax\strc_formulas_begstrut\else
+ \strc_formulas_endstrut
+% \fi
+ \stopinnermath
\afterdisplayspace
\egroup}
% already defined
%
-% \let\startinnermath\empty
-% \let\stopinnermath \empty
+% \lettonothing\startinnermath
+% \lettonothing\stopinnermath
% \defineformulaalternative[multi][\begindmath][\enddmath]
%
@@ -1052,10 +1695,7 @@
% \placeformula {f} \startspformule \fakespacingformula \stopspformule
% \fakewords{20}{40}
-\permanent\protected\def\startsubformulas
- {\dosingleempty\strc_formulas_start_sub_formulas}
-
-\def\strc_formulas_start_sub_formulas[#1]%
+\tolerant\permanent\protected\def\startsubformulas[#1]%
{\edef\currentsubformulasreference{#1}%
\global\settrue\c_strc_formulas_inside_formulas_sub
\strc_formulas_handle_sub_number}
@@ -1069,10 +1709,7 @@
%D Named subformulas (to be redone)
-\permanent\protected\def\startnamedsubformulas
- {\dosingleempty\strc_formulas_start_named_sub_formulas}
-
-\def\strc_formulas_start_named_sub_formulas[#1]#2%
+\tolerant\permanent\protected\def\startnamedsubformulas[#1]#2%
{\setformulalistentry{#2}%
\startsubformulas[#1]}
@@ -1094,21 +1731,25 @@
\permanent\letcsname\e!stop\v!formulas\endcsname\relax
-\protected\def\strc_formulas_nested_formula_start
- {\hbox to \displaywidth \bgroup
- \hsize\displaywidth
- \hss
- %\Ustartmath
+\tolerant\protected\def\strc_formulas_nested_formula_start[#1]%
+ {\begingroup
+ \ifparameter#1\or
+ \setupformula[\c!width=\d_strc_formulas_display_width,#1]%
+ \d_strc_formulas_display_width\formulaparameter\c!width\relax
+ \fi
+ \vcenter \bgroup
+ \hsize \d_strc_formulas_display_width
+ \displaywidth\d_strc_formulas_display_width
+ \raggedcenter
\dostarttagged\t!formulacontent\empty
\csname\e!start\formulaparameter\c!alternative\v!formula\endcsname}
\protected\def\strc_formulas_nested_formula_stop
{\csname\e!stop\formulaparameter\c!alternative\v!formula\endcsname
\dostoptagged
- %\Ustopmath
- \hss
\egroup
- \hss}
+ \hss
+ \endgroup}
\normalexpanded{\tolerant\def\noexpand\strc_formulas_start_formulas[#1]#:#2\csname\e!stop\v!formulas\endcsname}%
{\startformula
@@ -1116,15 +1757,17 @@
\global\settrue\c_strc_formulas_inside_formulas
\edef\currentformulasreference{#1}%
\strc_formulas_handle_number
- \let\currentformula\empty
- \strc_formulas_forget_display_skips
+ \lettonothing\currentformula
+ % \strc_formulas_forget_display_skips
\enforced\protected\def\startformula
- {\advance\scratchcounter\plusone
+ {\advanceby\scratchcounter\plusone
\expandafter\gobbleuntil\csname\e!stop\v!formula\endcsname}%
\scratchcounter\zerocount
#2% preroll
- \hbox to \displaywidth \bgroup
- \divide\displaywidth\scratchcounter
+ \hbox to \d_strc_formulas_display_width \bgroup
+ \ifcase\scratchcounter\else
+ \divideby\d_strc_formulas_display_width\scratchcounter
+ \fi
\hss
\enforced\let\startformula\strc_formulas_nested_formula_start
\enforced\let\stopformula \strc_formulas_nested_formula_stop
@@ -1155,10 +1798,7 @@
\plusthree
\fi}
-\permanent\protected\def\formulanumber
- {\strc_formulas_number} % for the moment
-
-\tolerant\protected\def\strc_formulas_number[#1]%
+\tolerant\permanent\protected\def\formulanumber[#1]%
{\def\currentformulareference{#1}%
\strc_formulas_place_number_in_box}
@@ -1166,12 +1806,16 @@
\permanent\protected\def\placesubformula{\global\settrue\c_strc_formulas_inside_place_sub\strc_formulas_place}
\tolerant\protected\def\strc_formulas_place[#1]%
- {\def\currentplaceformulareference{#1}%
- \let\currentplaceformulasuffix\empty
+ {\xdef\currentplaceformulareference{#1}%
+ \glettonothing\currentplaceformulasuffix
+ \glettonothing\currentnestedformulasuffix
+ \global\setfalse\c_strc_formulas_incremented
+ \global\setfalse\c_strc_formulas_referenced
+ \global\settrue\c_strc_formulas_inside_place
\doifelsenextbgroup\strc_formulas_place_yes\strc_formulas_place_nop} % [ref]{}
\protected\def\strc_formulas_place_yes#1%
- {\def\currentplaceformulasuffix{#1}%
+ {\xdef\currentplaceformulasuffix{#1}%
\strc_formulas_place_nop}
\protected\def\strc_formulas_place_nop
@@ -1194,12 +1838,14 @@
% \startplaceformula[title=whatever] \startformula e=mc^2 \stopformula \stopplaceformula
% \startplaceformula[suffix=x] \startformula e=mc^2 \stopformula \stopplaceformula
-\mutable\let\currentplaceformulatitle \empty
-\mutable\let\currentplaceformulareference\empty
-\mutable\let\currentplaceformulasuffix \empty
+\mutable\lettonothing\currentplaceformulatitle
+\mutable\lettonothing\currentplaceformulareference
+\mutable\lettonothing\currentplaceformulasuffix
\permanent\tolerant\protected\def\startplaceformula[#1]%
{\begingroup
+ \global\setfalse\c_strc_formulas_incremented
+ \global\setfalse\c_strc_formulas_referenced
\global\settrue\c_strc_formulas_inside_place
\ifparameter#1\or
\expandafter\strc_formulas_start_place_yes
@@ -1207,27 +1853,34 @@
\expandafter\strc_formulas_start_place_nop
\fi[#1]}
-\def\strc_formulas_start_place_yes[#1]%
+\def\strc_formulas_start_place_yes[#1]% todo
{\doifassignmentelse{#1}\strc_formulas_start_place_parameters\strc_formulas_start_place_reference[#1]}
\def\strc_formulas_start_place_nop[#1]%
- {\let\currentplaceformulareference\empty
- \let\currentplaceformulasuffix \empty
+ {\glettonothing\currentplaceformulareference
+ \glettonothing\currentplaceformulasuffix
\strc_formulas_place_nop}
\def\strc_formulas_start_place_reference[#1]%
- {\edef\currentplaceformulareference{#1}%
- \let\currentplaceformulasuffix\empty
+ {\xdef\currentplaceformulareference{#1}%
+ \glettonothing\currentplaceformulasuffix
%\doifelsenextbgroup\strc_formulas_place_yes\strc_formulas_place_nop} % [ref]{}
\strc_formulas_place_nop}
-\def\strc_formulas_start_place_parameters[#1]%
- {\letdummyparameter\c!title \empty
- \letdummyparameter\c!reference\empty
- \letdummyparameter\c!suffix \empty
+\mutable\lettonothing\currentplaceformulabookmark
+\mutable\lettonothing\currentplaceformulalist
+
+\def\strc_formulas_start_place_parameters[#1]% maybe a dedicated setup handler
+ {\resetdummyparameter\c!title
+ \resetdummyparameter\c!reference
+ \resetdummyparameter\c!bookmark
+ \resetdummyparameter\c!list
+ \resetdummyparameter\c!suffix
\getdummyparameters[#1]%
\edef\currentplaceformulatitle {\dummyparameter\c!title}%
\edef\currentplaceformulareference{\dummyparameter\c!reference}%
+ \edef\currentplaceformulabookmark {\dummyparameter\c!bookmark}%
+ \edef\currentplaceformulalist {\dummyparameter\c!list}%
\edef\currentplaceformulasuffix {\dummyparameter\c!suffix}%
\ifempty\currentplaceformulatitle\else
\normalexpanded{\setformulalistentry{\currentplaceformulatitle}}%
@@ -1244,61 +1897,131 @@
\let\strc_formulas_place_number_nested\gobbletwoarguments
\def\strc_formulas_place_number_nested_indeed#1#2%
- {\def\currentnestedformulareference{#1}%
- \def\currentnestedformulasuffix{#2}%
- \strc_formulas_check_reference\c_strc_formulas_nested_number_mode\currentnestedformulareference
+ {\ifhastok={#1}%
+ \setupcurrentmathalignment[#1]%
+ \xdef\currentnestedformulareference{\mathalignmentparameter\c!reference}%
+ \xdef\currentnestedformulasuffix {\mathalignmentparameter\c!suffix}%
+ \global\d_math_eqalign_number_threshold\mathalignmentparameter\c!numberthreshold\relax
+ \orelse\ifhastok+{#1}%
+ \glettonothing\currentnestedformulareference
+ \xdef\currentnestedformulasuffix {+}%
+ \orelse\ifempty\currentplaceformulareference
+ \xdef\currentnestedformulareference{#1}%
+ \xdef\currentnestedformulasuffix {#2}%
+ \else
+ \glettonothing\currentnestedformulareference
+ \xdef\currentnestedformulasuffix {#1}%
+ \fi
+ \strc_formulas_place_number_nested_check}
+
+\def\strc_formulas_place_number_nested_check
+ {\ifempty\currentnestedformulareference
+ \ifempty\currentnestedformulasuffix \else
+ \c_strc_formulas_nested_number_mode\plusthree
+ \fi
+ \else
+ \strc_formulas_check_reference\c_strc_formulas_nested_number_mode\currentnestedformulareference
+ \fi
\ifcase\c_strc_formulas_nested_number_mode
% nothing
\or
\glet\strc_formulas_place_number\relax
- \expandafter\strc_formulas_number % hm, looks ahead for []
+ \strc_formulas_place_number_in_box
\or
% nothing
\or
\glet\strc_formulas_place_number\relax
- \expandafter\strc_formulas_number % hm, looks ahead for []
+ \strc_formulas_place_number_in_box
\fi}
\def\strc_formulas_place_number_indeed
{\strc_formulas_place_number_in_box}
+% \startplaceformula
+% \startformula
+% \startalign
+% \NC a \NC = p \NR[eq:one]
+% \NC b \NC = q \NR
+% \NC c \NC = r \NR[eq:two]
+% \NC d \NC = s \NR[eq:three]
+% \stopalign
+% \stopformula
+% \stopplaceformula
+% \stoptext
+
\def\strc_formulas_place_number_in_box
{\dostarttagged\t!formulacaption\empty
+ % this is really needed, otherwise we get spurious numbers probably due to some
+ % interference with other local variables .. also keep an eye on eqtest in the
+ % MS tests
+ \glet\strc_formulas_place_number \relax
+ %\glet\strc_formulas_place_number_nested\gobbletwoarguments
+ %
\global\setbox\b_strc_formulas_number\naturalhbox{\strc_formulas_number_indeed}%
\dostoptagged}
-\def\strc_formulas_flush_number
- {\ifcase\c_strc_formulas_mode
- \ifzeropt\wd\b_strc_formulas_number
- % nothing to be done
- \orelse\ifx\p_location\v!left
- \math_native_leqno{\box\b_strc_formulas_number}%
- \else
- \math_native_reqno{\box\b_strc_formulas_number}%
- \fi
- \fi}
+\let\strc_formulas_flush_number\relax
% todo
\permanent\tolerant\protected\def\placenamedformula[#1]%
{\ifarguments
- \expandafter\strc_formulase_place_named_nop
+ \expandafter\strc_formulas_place_named_nop
\else
- \expandafter\strc_formulase_place_named_yes
+ \expandafter\strc_formulas_place_named_yes
\fi[#1]}
-\def\strc_formulase_place_named_yes[#1]#2%
+\def\strc_formulas_place_named_yes[#1]#2%
{\setformulalistentry{#2}%
\placeformula[#1]}
-\def\strc_formulase_place_named_nop[#1]#2%
+\def\strc_formulas_place_named_nop[#1]#2%
{\setformulalistentry{#2}%
\placeformula}
-\mutable\let\namedformulaentry\empty % \relax % this will become a key/value so that we can do bookmarks
+\def\strc_math_flush_aligned_boxed_direct_yes
+ {\dontleavehmode % NO!
+ \hskip-\leftskip % bah
+ \box\b_strc_math_display
+ \llap{\box\b_strc_formulas_number}}
+
+\def\strc_math_flush_aligned_boxed_direct_nop
+ {\dontleavehmode % NO!
+ \hskip-\leftskip % bah
+ \box\b_strc_math_display}
+
+\mutable\lettonothing\namedformulaentry % \relax % this will become a key/value so that we can do bookmarks
\permanent\protected\def\setformulalistentry#1%
- {\gdef\namedformulaentry{#1}}
+ {\xdef\namedformulaentry{#1}}
+
+%D New:
+%D
+%D \setupformula[snap=yes,snapstep=medium]
+
+\definesystemattribute[mathsnap][public]
+
+\appendtoks
+ \ifcstok{\formulaparameter\c!snap}\v!yes
+ \setmathsnapping{\formulaparameter\c!snapstep}%
+ \else
+ \setmathsnapping\v!reset
+ \fi
+\to \everysetupformula
+
+%D Also new, handy for articles and manuals:
+
+% \starttext
+% \showmakeup[line]
+% \input tufte \startformula e = mc^2 \stopformula
+% \input tufte \startformula[bodyfont=10pt] e = mc^2 \stopformula
+% \input tufte \startformula[bodyfont=24pt] e = mc^2 \stopformula
+% \input tufte
+% \stoptext
+
+\prependtoks
+ \usebodyfontparameter\formulaparameter
+\to \everymathematics
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-not.lmt b/Master/texmf-dist/tex/context/base/mkxl/strc-not.lmt
new file mode 100644
index 00000000000..e05228b2b51
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-not.lmt
@@ -0,0 +1,530 @@
+if not modules then modules = { } end modules ['strc-not'] = {
+ version = 1.001,
+ comment = "companion to strc-not.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format = string.format
+local next = next
+
+local trace_notes = false trackers.register("structures.notes", function(v) trace_notes = v end)
+local trace_references = false trackers.register("structures.notes.references", function(v) trace_references = v end)
+
+local report_notes = logs.reporter("structure","notes")
+
+local structures = structures
+local helpers = structures.helpers
+local lists = structures.lists
+local sections = structures.sections
+local counters = structures.counters
+local notes = structures.notes
+local references = structures.references
+local counterspecials = counters.specials
+
+local texgetcount = tex.getcount
+local texgetbox = tex.getbox
+
+-- todo: allocate
+
+notes.states = notes.states or { }
+lists.enhancers = lists.enhancers or { }
+notes.numbers = notes.numbers or { }
+
+storage.register("structures/notes/states", notes.states, "structures.notes.states")
+storage.register("structures/notes/numbers", notes.numbers, "structures.notes.numbers")
+
+local notestates = notes.states
+local notedata = table.setmetatableindex("table")
+
+local variables = interfaces.variables
+local context = context
+local commands = commands
+
+local implement = interfaces.implement
+
+-- state: store, insert, postpone
+
+local function store(tag,n)
+ -- somewhat weird but this is a cheap hook spot
+ if not counterspecials[tag] then
+ counterspecials[tag] = function(tag)
+ context.doresetlinenotecompression(tag) -- maybe flag that controls it
+ end
+ end
+ --
+ local nd = notedata[tag]
+ local nnd = #nd + 1
+ nd[nnd] = n
+ local state = notestates[tag]
+ if not state then
+ report_notes("unknown state for %a",tag)
+ elseif state.kind ~= "insert" then
+ if trace_notes then
+ report_notes("storing %a with state %a as %a",tag,state.kind,nnd)
+ end
+ state.start = state.start or nnd
+ end
+ return nnd
+end
+
+notes.store = store
+
+implement {
+ name = "storenote",
+ actions = { store, context },
+ arguments = { "string", "integer" }
+}
+
+local function get(tag,n) -- tricky ... only works when defined
+ local nd = notedata[tag]
+ if not n then
+ n = #nd
+ end
+ nd = nd[n]
+ if nd then
+ if trace_notes then
+ report_notes("getting note %a of %a with listindex %a",n,tag,nd)
+ end
+ -- is this right?
+ local newdata = lists.cached[nd]
+ return newdata
+ end
+end
+
+local function getn(tag)
+ return #notedata[tag]
+end
+
+notes.get = get
+notes.getn = getn
+
+-- we could make a special enhancer
+
+local function listindex(tag,n)
+ local ndt = notedata[tag]
+ return ndt and ndt[n]
+end
+
+notes.listindex = listindex
+
+implement {
+ name = "notelistindex",
+ actions = { listindex, context },
+ arguments = { "string", "integer" }
+}
+
+local function setstate(tag,newkind)
+ local state = notestates[tag]
+ if trace_notes then
+ report_notes("setting state of %a from %s to %s",tag,(state and state.kind) or "unset",newkind)
+ end
+ if not state then
+ state = {
+ kind = newkind
+ }
+ notestates[tag] = state
+ elseif newkind == "insert" then
+ if not state.start then
+ state.kind = newkind
+ end
+ else
+-- if newkind == "postpone" and state.kind == "store" then
+-- else
+ state.kind = newkind
+-- end
+ end
+ -- state.start can already be set and will be set when an entry is added or flushed
+ return state
+end
+
+local function getstate(tag)
+ local state = notestates[tag]
+ return state and state.kind or "unknown"
+end
+
+notes.setstate = setstate
+notes.getstate = getstate
+
+
+
+implement {
+ name = "setnotestate",
+ actions = setstate,
+ arguments = "2 strings",
+}
+
+implement {
+ name = "getnotestate",
+ actions = { getstate, context },
+ arguments = "string"
+}
+
+function notes.define(tag,kind,number)
+ local state = setstate(tag,kind)
+ notes.numbers[number] = state
+ state.number = number
+end
+
+implement {
+ name = "definenote",
+ actions = notes.define,
+ arguments = { "string", "string", "integer" }
+}
+
+function notes.save(tag,newkind)
+ local state = notestates[tag]
+ if state and not state.saved then
+ if trace_notes then
+ report_notes("saving state of %a, old: %a, new %a",tag,state.kind,newkind or state.kind)
+ end
+ state.saveddata = notedata[tag]
+ state.savedkind = state.kind
+ state.kind = newkind or state.kind
+ state.saved = true
+ notedata[tag] = { }
+ end
+end
+
+function notes.restore(tag,forcedstate)
+ local state = notestates[tag]
+ if state and state.saved then
+ if trace_notes then
+ report_notes("restoring state of %a, old: %a, new: %a",tag,state.kind,state.savedkind)
+ end
+ notedata[tag] = state.saveddata
+ state.kind = forcedstate or state.savedkind
+ state.saveddata = nil
+ state.saved = false
+ end
+end
+
+implement { name = "savenote", actions = notes.save, arguments = "2 strings" }
+implement { name = "restorenote", actions = notes.restore, arguments = "2 strings" }
+
+local function hascontent(tag)
+ local ok = notestates[tag]
+ if ok then
+ if ok.kind == "insert" then
+ ok = texgetbox(ok.number)
+ if ok then
+ ok = tbs.list
+ ok = lst and lst.next
+ end
+ else
+ ok = ok.start
+ end
+ end
+ return ok and true or false
+end
+
+notes.hascontent = hascontent
+
+implement {
+ name = "doifnotecontent",
+ actions = { hascontent, commands.doif },
+ arguments = "string",
+}
+
+local function internal(tag,n)
+ local nd = get(tag,n)
+ if nd then
+ local r = nd.references
+ if r then
+ local i = r.internal
+ return i and references.internals[i] -- dependency on references
+ end
+ end
+ return nil
+end
+
+local function ordered(kind,name,n)
+ local o = lists.ordered[kind]
+ o = o and o[name]
+ return o and o[n]
+end
+
+notes.internal = internal
+notes.ordered = ordered
+
+-- local function onsamepageasprevious(tag)
+-- local same = false
+-- local n = getn(tag,n)
+-- local current = get(tag,n)
+-- local previous = get(tag,n-1)
+-- if current and previous then
+-- local cr = current.references
+-- local pr = previous.references
+-- same = cr and pr and cr.realpage == pr.realpage
+-- end
+-- return same and true or false
+-- end
+
+local function onsamepageasprevious(tag)
+ local n = getn(tag,n)
+ local current = get(tag,n)
+ if not current then
+ return false
+ end
+ local cr = current.references
+ if not cr then
+ return false
+ end
+ local previous = get(tag,n-1)
+ if not previous then
+ return false
+ end
+ local pr = previous.references
+ if not pr then
+ return false
+ end
+ return cr.realpage == pr.realpage
+end
+
+notes.doifonsamepageasprevious = onsamepageasprevious
+
+implement {
+ name = "doifnoteonsamepageasprevious",
+ actions = { onsamepageasprevious, commands.doifelse },
+ arguments = "string",
+}
+
+function notes.checkpagechange(tag) -- called before increment !
+ local nd = notedata[tag] -- can be unset at first entry
+ if nd then
+ local current = ordered("note",tag,#nd)
+ local nextone = ordered("note",tag,#nd+1)
+ if nextone then
+ -- we can use data from the previous pass
+ if nextone.pagenumber.number > current.pagenumber.number then
+ counters.reset(tag)
+ end
+ elseif current then
+ -- we need to locate the next one, best guess
+ if texgetcount("realpageno") > current.pagenumber.number then
+ counters.reset(tag)
+ end
+ end
+ end
+end
+
+function notes.postpone()
+ if trace_notes then
+ report_notes("postponing all insert notes")
+ end
+ for tag, state in next, notestates do
+ if state.kind ~= "store" then
+ setstate(tag,"postpone")
+ end
+ end
+end
+
+implement {
+ name = "postponenotes",
+ actions = notes.postpone
+}
+
+local function getinternal(tag,n)
+ local li = internal(tag,n)
+ if li then
+ local references = li.references
+ if references then
+ return references.internal or 0
+ end
+ end
+ return 0
+end
+
+local function getdeltapage(tag,n)
+ -- 0:unknown 1:textbefore, 2:textafter, 3:samepage
+ local li = internal(tag,n)
+ if li then
+ local references = li.references
+ if references then
+ -- local symb = structures.references.collected[""]["symb:"..tag..":"..n]
+ local rymb = structures.references.collected[""]
+ local symb = rymb and rymb["*"..(references.internal or 0)]
+ local notepage = references.realpage or 0
+ local symbolpage = symb and symb.references.realpage or -1
+ if trace_references then
+ report_notes("note number %a of %a points from page %a to page %a",n,tag,symbolpage,notepage)
+ end
+ if notepage < symbolpage then
+ return 3 -- after
+ elseif notepage > symbolpage then
+ return 2 -- before
+ elseif notepage > 0 then
+ return 1 -- same
+ end
+ else
+ -- might be a note that is not flushed due to to deep
+ -- nesting in a vbox
+ end
+ end
+ return 0
+end
+
+notes.getinternal = getinternal
+notes.getdeltapage = getdeltapage
+
+implement { name = "noteinternal", actions = { getinternal, context }, arguments = { "string", "integer" } }
+implement { name = "notedeltapage", actions = { getdeltapage, context }, arguments = { "string", "integer" } }
+
+local function flushnotes(tag,whatkind,how) -- store and postpone
+ local state = notestates[tag]
+ local kind = state.kind
+ if kind == whatkind then
+ local nd = notedata[tag]
+ local ns = state.start -- first index
+ if kind == "postpone" then
+ if nd and ns then
+ if trace_notes then
+ report_notes("flushing state %a of %a from %a to %a",whatkind,tag,ns,#nd)
+ end
+ for i=ns,#nd do
+ context.handlenoteinsert(tag,i)
+ end
+ end
+ state.start = nil
+ state.kind = "insert"
+ elseif kind == "store" then
+ if nd and ns then
+ if trace_notes then
+ report_notes("flushing state %a of %a from %a to %a",whatkind,tag,ns,#nd)
+ end
+ -- todo: as registers: start, stop, inbetween
+ for i=ns,#nd do
+ -- tricky : trialtypesetting
+ if how == variables.page then
+ local rp = get(tag,i)
+ rp = rp and rp.references
+ rp = rp and rp.symbolpage or 0
+ if rp > texgetcount("realpageno") then
+ state.start = i
+ return
+ end
+ end
+ if i > ns then
+ context.betweennoteitself(tag)
+ end
+ context.handlenoteitself(tag,i)
+ end
+ end
+ state.start = nil
+ elseif kind == "reset" then
+ if nd and ns then
+ if trace_notes then
+ report_notes("flushing state %a of %a from %a to %a",whatkind,tag,ns,#nd)
+ end
+ end
+ state.start = nil
+ elseif trace_notes then
+ report_notes("not flushing state %a of %a",whatkind,tag)
+ end
+ elseif trace_notes then
+ report_notes("not flushing state %a of %a",whatkind,tag)
+ end
+end
+
+local function flushpostponednotes()
+ if trace_notes then
+ report_notes("flushing all postponed notes")
+ end
+ for tag, _ in next, notestates do
+ flushnotes(tag,"postpone")
+ end
+end
+
+implement {
+ name = "flushpostponednotes",
+ actions = flushpostponednotes
+}
+
+implement {
+ name = "flushnotes",
+ actions = flushnotes,
+ arguments = "3 strings",
+}
+
+function notes.resetpostponed()
+ if trace_notes then
+ report_notes("resetting all postponed notes")
+ end
+ for tag, state in next, notestates do
+ if state.kind == "postpone" then
+ state.start = nil
+ state.kind = "insert"
+ end
+ end
+end
+
+implement {
+ name = "notetitle",
+ actions = function(tag,n) lists.savedlisttitle(tag,notedata[tag][n]) end,
+ arguments = { "string", "integer" }
+}
+
+implement {
+ name = "noteprefixednumber",
+ actions = function(tag,n) lists.savedlistprefixednumber(tag,notedata[tag][n]) end,
+ arguments = { "string", "integer" }
+}
+
+function notes.internalid(tag,n)
+ local nd = get(tag,n)
+ if nd then
+ local r = nd.references
+ return r.internal
+ end
+end
+
+-- for the moment here but better in some builder modules
+
+-- gets register "n" and location "i" (where 1 is before)
+
+-- this is an experiment, we will make a more general handler instead
+-- of the current note one
+
+local report_insert = logs.reporter("pagebuilder","insert")
+local trace_insert = false trackers.register("pagebuilder.insert",function(v) trace_insert = v end)
+
+local texgetglue = tex.getglue
+----- texsetglue = tex.setglue
+
+local tonode = nodes.nuts.tonode
+local newgluespec = nodes.nuts.pool.gluespec -- nodes.pool.gluespec
+
+-- needs to be sorted out!
+
+local function check_spacing(index,slot)
+ -- we can also check for tex.insertheights > 0 (instead of i > 1)
+ local gn, pn, mn = tex.getinsertdistance(index) -- ,true so no testing needed
+ if not pn then pn = 0 end
+ if not mn then mn = 0 end
+ local gi, pi, mi = texgetglue(slot > 1 and "s_strc_notes_inbetween" or "s_strc_notes_before")
+ if not pi then pi = 0 end
+ if not mi then mi = 0 end
+ local gt = gn + gi
+ local pt = pn + pi
+ local mt = mn + mi
+ if trace_insert then
+ report_insert("%s %i: %p plus %p minus %p","always ",index,gn,pn,mn)
+ report_insert("%s %i: %p plus %p minus %p",slot > 1 and "inbetween" or "before ",index,gi,pi,mi)
+ report_insert("%s %i: %p plus %p minus %p","effective",index,gt,pt,mt)
+ end
+ return gt, pt, mt
+end
+
+notes.check_spacing = check_spacing
+
+-- only notes, kind of hardcoded .. bah
+
+callback.register("build_page_insert", function(index,slot)
+ local state = notes.numbers[index]
+ if state then
+ return tonode(newgluespec(check_spacing(index,slot)))
+ else
+ return tonode(newgluespec())
+ end
+end)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-not.mklx b/Master/texmf-dist/tex/context/base/mkxl/strc-not.mklx
index 5ac57137422..29440f58208 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-not.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-not.mklx
@@ -13,7 +13,7 @@
\writestatus{loading}{ConTeXt Structure Macros / Note Handling}
-\registerctxluafile{strc-not}{}
+\registerctxluafile{strc-not}{autosuffix}
\unprotect
@@ -24,9 +24,6 @@
\ifdefined\dotagsetnotesymbol \else \aliased\let\dotagsetnotesymbol\relax \fi
\ifdefined\dotagsetnotation \else \aliased\let\dotagsetnotation \relax \fi
-\permanent\protected\def\unvboxed {\ifvmode\unvbox \else\box \fi} % will change or used more often
-\permanent\protected\def\unvcopied{\ifvmode\unvcopy\else\copy\fi} % will change or used more often
-
%D \LMTX\ testcase:
%D
%D \starttyping
@@ -139,20 +136,20 @@
\protected\def\strc_define_commands_notation#tag#level#parent%
{\doifelsenothing{#parent}
{\normalexpanded{\defineconstruction[#tag][\s!handler=\v!notation,\c!level=#level]}%
- \setevalue{\??notation#tag:\s!parent}{\??notation}}%
+ \edefcsname\??notation#tag:\s!parent\endcsname{\??notation}}%
{\normalexpanded{\defineconstruction[#tag][#parent][\s!handler=\v!notation,\c!level=#level]}%
- \setevalue{\??note #tag:\s!parent}{\??note#parent}% see later for \s!note
- \setevalue{\??notation#tag:\s!parent}{\??notation#parent}}%
- \instance\setuevalue{\e!next #tag}{\strc_notations_next {#tag}{\number#level}}% obsolete
- \instance\setuevalue{\c!reset#tag}{\strc_notations_reset {#tag}{\number#level}}% obsolete
- \instance\setuevalue {#tag}{\strc_notations_command[#tag]}%
- \instance\setuevalue{\e!start#tag}{\strc_notations_start [#tag]}%
- \instance\setuevalue{\e!stop #tag}{\strc_notations_stop }}
+ \edefcsname\??note #tag:\s!parent\endcsname{\??note#parent}% see later for \s!note
+ \edefcsname\??notation#tag:\s!parent\endcsname{\??notation#parent}}%
+ \instance\protected\edefcsname\e!next #tag\endcsname{\strc_notations_next{#tag}{\number#level}}% obsolete
+ \instance\protected\edefcsname\c!reset#tag\endcsname{\strc_notations_reset{#tag}{\number#level}}% obsolete
+ \instance\protected\edefcsname #tag\endcsname{\strc_notations_command[#tag]}%
+ \instance\protected\edefcsname\e!start#tag\endcsname{\strc_notations_start[#tag]}%
+ \instance\protected\edefcsname\e!stop #tag\endcsname{\strc_notations_stop}}
-\let\m_strc_notation_sub\empty
+\lettonothing\m_strc_notation_sub
\appendtoks
- \let\m_strc_notation_sub\empty
+ \lettonothing\m_strc_notation_sub
\ifempty\currentnotationparent
% clone => parent | subclone => clone | subsubclone => subclone
\strc_define_commands_notation
@@ -187,10 +184,10 @@
%\strc_notes_setup_counter\currentnotation
\to \everydefinenotation
-\let\p_strc_constructions_title \empty
-\let\p_strc_constructions_number\empty
+\lettonothing\p_strc_constructions_title
+\lettonothing\p_strc_constructions_number
-\protected\setvalue{\??constructioninitializer\v!notation}%
+\protected\defcsname\??constructioninitializer\v!notation\endcsname
{\let \currentnotation \currentconstruction
\enforced\let\constructionparameter \notationparameter
\enforced\let\constructionnamespace \??notation
@@ -215,7 +212,7 @@
\setfalse\c_strc_constructions_title_state
\fi}
-\protected\setvalue{\??constructionfinalizer\v!notation}%
+\protected\defcsname\??constructionfinalizer\v!notation\endcsname
{\ifconditional\c_strc_constructions_number_state
\iftrialtypesetting
\strc_counters_restore\currentconstructionnumber
@@ -283,32 +280,45 @@
\strc_constructions_finalize
\strc_notations_finalize}
-\tolerant\protected\def\strc_notations_start[#1]#*[#2]%
+\tolerant\protected\def\strc_notations_start
+ {\strc_notations_start_indeed{\csname\e!stop\currentnotation\endcsname}}
+
+\tolerant\protected\defcsname\e!start\e!namednotation\endcsname
+ {\strc_notations_start_indeed{\csname\e!stop\e!namednotation\endcsname}}
+
+\ifdefined\startnamednotation
+ % we're in the english interface
+\else
+ \tolerant\protected\def\startnamednotation
+ {\strc_notations_start_indeed\stopnamednotation}
+\fi
+
+\tolerant\protected\def\strc_notations_start_indeed#1#*[#2]#*[#3]%
{\begingroup
- \edef\currentnote{#1}%
- \strc_constructions_initialize{#1}%
+ \edef\currentnote{#2}%
+ \strc_constructions_initialize{#2}%
\strc_notes_synchronize
\ifnotesenabled
\strc_counters_increment_sub\currentconstructionnumber\currentconstructionlevel
\fi
- \ifhastok={#2}%
+ \ifhastok={#3}%
\expandafter\strc_notations_start_setups
\else
\expandafter\strc_notations_start_reference
- \fi[#2]}
+ \fi#1[#3]}
\let\strc_notations_pickup_yes\relax
-\protected\def\strc_notations_start_setups[#1]%
- {\normalexpanded{\def\noexpand\strc_notations_pickup_yes##/\csname\e!stop\currentconstruction\endcsname{\strc_notations_start_setups_indeed[#1]{##1}}}%
+\protected\def\strc_notations_start_setups#1[#2]%
+ {\normalexpanded{\def\noexpand\strc_notations_pickup_yes##/#1{\strc_notations_start_setups_indeed[#2]{##1}}}%
\strc_notations_pickup_yes}
\protected\def\strc_notations_start_setups_indeed[#1]#*#2%
{\strc_constructions_register[][\c!label={\descriptionparameter\c!text},\c!reference=,\c!title={#2},\c!bookmark=,\c!list=,\c!referencetext=,#1]%
\strc_notations_wrapup}
-\protected\def\strc_notations_start_reference[#1]%
- {\normalexpanded{\def\noexpand\strc_notations_pickup_yes##/\csname\e!stop\currentconstruction\endcsname{\strc_notations_start_reference_indeed[#1]{##1}}}%
+\protected\def\strc_notations_start_reference#1[#2]%
+ {\normalexpanded{\def\noexpand\strc_notations_pickup_yes##/#1{\strc_notations_start_reference_indeed[#2]{##1}}}%
\strc_notations_pickup_yes}
\protected\def\strc_notations_start_reference_indeed[#1]#*#2%
@@ -323,10 +333,10 @@
%D indirectness. This way notations don't bark on undefined macros when used in
%D combination.
-\protected\setvalue{\??constructionnotehandler\v!notation}%
+\protected\defcsname\??constructionnotehandler\v!notation\endcsname
{\csname\??constructionnotehandler\currentconstructionhandler:\constructionparameter\c!type\endcsname}
-\protected\setvalue{\??constructionnotehandler\v!notation:}% empty case
+\protected\defcsname\??constructionnotehandler\v!notation:\endcsname % empty case
{[\currentconstructionhandler:\currentconstruction]}
%D Here is a simple renderer for notes
@@ -409,7 +419,8 @@
\doifelseinsertion\currentnote
\donothing
{\defineinsertion[\currentnote]% could be an option
- \normalexpanded{\t_strc_notes{\the\t_strc_notes\noexpand\strc_notes_process_list{\currentnote}}}}%
+% \normalexpanded{\t_strc_notes{\the\t_strc_notes\noexpand\strc_notes_process_list{\currentnote}}}}%
+ \xtoksapp\t_strc_notes{\noexpand\strc_notes_process_list{\currentnote}}}%
\letnoteparameter\s!insert\currentnote
\definenotation[\currentnote][\c!type=\v!note]%
\else
@@ -445,16 +456,19 @@
\letcsname\??constructioncommandhandler\v!notation\expandafter\endcsname\csname\??constructioncommandhandler\v!enumeration \endcsname
\letcsname\??constructiontexthandler \v!notation\expandafter\endcsname\csname\??constructiontexthandler \v!enumeration \endcsname
-\protected\setvalue{\??constructionmainhandler\v!notation}#following%
+\protected\defcsname\??constructionmainhandler\v!notation\endcsname#following%
{\iftrialtypesetting \else
\begingroup
\currentconstructionsynchronize
\c_attr_destination\currentconstructionattribute\relax % todo, whole text
\signalcharacter
\endgroup
- \fi#following}
+ \fi
+ \ifconditional\c_strc_notes_flushed\else
+ #following\relax
+ \fi}
-\protected\setvalue{\??constructionnotehandler\v!notation:\v!note}% in the running text
+\protected\defcsname\??constructionnotehandler\v!notation:\v!note\endcsname % in the running text
{\ifnotesenabled
% do be done elsewhere
%
@@ -484,6 +498,8 @@
\global\settrue\postponednote
\orelse\ifconditional\inlocalnotes % todo: per note class
\global\settrue\postponednote
+ \orelse\ifconditional\c_strc_notes_flushed
+ \handlenoteitself\currentnote\currentnotenumber
\orelse\ifconditional\c_strc_notes_delayed
% probably end notes
\else
@@ -495,7 +511,7 @@
\ifconditional\c_strc_notes_skip
\global\setfalse\c_strc_notes_skip
\else
- \kern\d_strc_notes_signal\relax % \relax is needed to honor spaces
+ \boundary\noteboundary
\fi}
%D Interaction in notes is somewhat complex due to the way notes get flushed. In
@@ -528,8 +544,8 @@
\newconstant\a_strc_notes_text_reference
\newconstant\a_strc_notes_text_destination
-\let\strc_notes_get_reference_attribute_symbol \empty
-\let\strc_notes_get_destination_attribute_symbol\empty
+\lettonothing\strc_notes_get_reference_attribute_symbol
+\lettonothing\strc_notes_get_destination_attribute_symbol
\def\strc_notes_interaction_check_inline
{\edef\p_interaction{\noteparameter\c!interaction}%
@@ -545,8 +561,8 @@
\mutable\let\currentnotenumber\!!zerocount
-\let\strc_notes_get_reference_attribute_symbol \empty
-\let\strc_notes_get_destination_attribute_symbol\empty
+\lettonothing\strc_notes_get_reference_attribute_symbol
+\lettonothing\strc_notes_get_destination_attribute_symbol
\let\strc_notes_set_reference_attribute_number\donothing
\let\strc_notes_set_reference_attribute_text \donothing
@@ -560,8 +576,8 @@
\let\m_strc_notes_internal\relax
\def\strc_notes_prepare_inline_references_nop
- {\let\strc_notes_get_reference_attribute_symbol\empty
- \let\strc_notes_get_destination_attribute_symbol\empty
+ {\lettonothing\strc_notes_get_reference_attribute_symbol
+ \lettonothing\strc_notes_get_destination_attribute_symbol
\let\strc_notes_set_style_color_inline\strc_notes_set_style_color_inline_nop}
\def\strc_notes_prepare_inline_references_yes
@@ -572,11 +588,11 @@
\edef\strc_notes_get_reference_attribute_symbol{attr\referenceattribute\currentreferenceattribute}%
\let\strc_notes_set_style_color_inline\strc_notes_set_style_color_inline_yes}
-\letvalue{\??noteinteractioninline\v!no }\strc_notes_prepare_inline_references_nop
-\letvalue{\??noteinteractioninline\v!all }\strc_notes_prepare_inline_references_yes
-\letvalue{\??noteinteractioninline\v!number}\strc_notes_prepare_inline_references_yes
-\letvalue{\??noteinteractioninline\v!text }\strc_notes_prepare_inline_references_yes
-\letvalue{\??noteinteractioninline\v!yes }\strc_notes_prepare_inline_references_yes
+\letcsname\??noteinteractioninline\v!no \endcsname\strc_notes_prepare_inline_references_nop
+\letcsname\??noteinteractioninline\v!all \endcsname\strc_notes_prepare_inline_references_yes
+\letcsname\??noteinteractioninline\v!number\endcsname\strc_notes_prepare_inline_references_yes
+\letcsname\??noteinteractioninline\v!text \endcsname\strc_notes_prepare_inline_references_yes
+\letcsname\??noteinteractioninline\v!yes \endcsname\strc_notes_prepare_inline_references_yes
% display (for 'all' we need unique text and number attributes so we resolve twice
% as we otherwise don't get the number one which is lapped in the margin so we need
@@ -622,11 +638,11 @@
\let\strc_notes_set_style_color_display\strc_notes_set_style_color_display_yes
\fi}
-\letvalue{\??noteinteractiondisplay\v!no }\strc_notes_prepare_display_references_nop
-\letvalue{\??noteinteractiondisplay\v!all }\strc_notes_prepare_display_references_yes_all
-\letvalue{\??noteinteractiondisplay\v!number}\strc_notes_prepare_display_references_yes_number
-\letvalue{\??noteinteractiondisplay\v!text }\strc_notes_prepare_display_references_yes_text
-\letvalue{\??noteinteractiondisplay\v!yes }\strc_notes_prepare_display_references_yes_number
+\letcsname\??noteinteractiondisplay\v!no \endcsname\strc_notes_prepare_display_references_nop
+\letcsname\??noteinteractiondisplay\v!all \endcsname\strc_notes_prepare_display_references_yes_all
+\letcsname\??noteinteractiondisplay\v!number\endcsname\strc_notes_prepare_display_references_yes_number
+\letcsname\??noteinteractiondisplay\v!text \endcsname\strc_notes_prepare_display_references_yes_text
+\letcsname\??noteinteractiondisplay\v!yes \endcsname\strc_notes_prepare_display_references_yes_number
\mutable\let\strc_notes_set_style_color_inline_nop \usenotestyleandcolor
\mutable\let\strc_notes_set_style_color_display_nop\usenotationstyleandcolor
@@ -647,7 +663,7 @@
\setlocationcolorspecified\scratchcounter
\fi}
-\setvalue{\??constructiontexthandler\v!notation}%
+\defcsname\??constructiontexthandler\v!notation\endcsname
{\begingroup
% we need to retrigger the reference as otherwise it gets lost because we don't do nested
% references with the same id ... maybe some day if we can figure out a nice heuristic ...
@@ -692,14 +708,14 @@
\removeunwantedspaces
\doifelseitalic\/\donothing % Charles IV \footnote{the fourth}
\fi
- \ifdim\lastkern=\d_strc_notes_signal
+ \ifnum\lastboundary=\noteboundary
+ \unboundary
% \kern\noteparameter\c!distance % yes or no note font? or main text
\strc_notes_inject_separator
\fi
\nobreak
\begingroup
- \strc_notes_interaction_check_inline
- \strc_notes_set_style_color_inline\c!textstyle\c!textcolor
+ \strc_notes_interaction_check_inline\strc_notes_set_style_color_inline\c!textstyle\c!textcolor
\hbox \strc_notes_get_reference_attribute_symbol \strc_notes_get_destination_attribute_symbol \bgroup
% \hbox \strc_notes_get_reference_attribute_symbol \bgroup \strc_notes_destination_hack
\strc_references_flush_destination_nodes % a bit late but ok
@@ -711,18 +727,19 @@
\dostoptagged
\egroup
\endgroup
- \glet\lastnotesymbol\empty}
+ \glettonothing\lastnotesymbol}
\protected\def\strc_notes_inject_dummy % temp hack
{\removeunwantedspaces
\doifelseitalic\/\donothing % Charles IV \footnote{the fourth}
- \ifdim\lastkern=\d_strc_notes_signal
+ \ifnum\lastboundary=\noteboundary
+ \unboundary
% \kern\noteparameter\c!distance % yes or no note font? or main text
\strc_notes_inject_separator
\fi
\nobreak
\hpack to .5\emwidth{}%
- \glet\lastnotesymbol\empty}
+ \glettonothing\lastnotesymbol}
\protected\def\strc_notes_inject_separator % patch by WS due to request on list
{\edef\p_textseparator{\noteparameter\c!textseparator}%
@@ -732,8 +749,7 @@
% skip or kern
\nobreak
\hbox\bgroup
- \strc_notes_interaction_check_inline
- \strc_notes_set_style_color_inline\c!textstyle\c!textcolor
+ \usenotestyleandcolor\c!textstyle\c!textcolor
\noteparameter\c!textcommand{\p_textseparator}%
\kern\noteparameter\c!distance
\egroup
@@ -885,16 +901,16 @@
\def\strc_notes_set_rule_autodir
{\doifelserighttoleftinbox\currentnoteinsertionnumber\righttoleft\lefttoright}
-\setvalue{\??noterule \v!command}{\letcurrentnoterulecommand\currentnoterulecommandcommand}
-\setvalue{\??noterule \v!on}{\letcurrentnoterulecommand\currentnoterulecommandnormal}
-\setvalue{\??noterule \v!normal}{\letcurrentnoterulecommand\currentnoterulecommandnormal}
-\setvalue{\??noterule \v!left}{\letcurrentnoterulecommand\currentnoterulecommandnormal
- \letcurrentnoterulealign \lefttoright}
-\setvalue{\??noterule \v!right}{\letcurrentnoterulecommand\currentnoterulecommandnormal
- \letcurrentnoterulealign \righttoleft}
-\setvalue{\??noterule\v!paragraph}{\letcurrentnoterulecommand\currentnoterulecommandnormal
- \letcurrentnoterulealign \strc_notes_set_rule_autodir}
-\setvalue{\??noterule \v!off}{\letcurrentnoterulecommand\relax}
+\defcsname\??noterule \v!command\endcsname{\letcurrentnoterulecommand\currentnoterulecommandcommand}
+\defcsname\??noterule \v!on\endcsname{\letcurrentnoterulecommand\currentnoterulecommandnormal}
+\defcsname\??noterule \v!normal\endcsname{\letcurrentnoterulecommand\currentnoterulecommandnormal}
+\defcsname\??noterule \v!left\endcsname{\letcurrentnoterulecommand\currentnoterulecommandnormal
+ \letcurrentnoterulealign \lefttoright}
+\defcsname\??noterule \v!right\endcsname{\letcurrentnoterulecommand\currentnoterulecommandnormal
+ \letcurrentnoterulealign \righttoleft}
+\defcsname\??noterule\v!paragraph\endcsname{\letcurrentnoterulecommand\currentnoterulecommandnormal
+ \letcurrentnoterulealign \strc_notes_set_rule_autodir}
+\defcsname\??noterule \v!off\endcsname{\letcurrentnoterulecommand\relax}
\appendtoks
\strc_notes_set_rule
@@ -911,10 +927,10 @@
\setnewconstant\notepenaltystrict 9999
\setnewconstant\notepenaltyverystrict\maxdimen
-\letvalue{\??notepenalty\v!tolerant }\notepenaltytolerant
-\letvalue{\??notepenalty\v!strict }\notepenaltystrict
-\letvalue{\??notepenalty\v!verystrict}\notepenaltyverystrict
-\letvalue{\??notepenalty }\notepenaltytolerant
+\letcsname\??notepenalty\v!tolerant \endcsname\notepenaltytolerant
+\letcsname\??notepenalty\v!strict \endcsname\notepenaltystrict
+\letcsname\??notepenalty\v!verystrict\endcsname\notepenaltyverystrict
+\letcsname\??notepenalty \endcsname\notepenaltytolerant
%D The following switch can be used to disable limiting the height of the footnote
%D area, something that is needed in multi column balancing. Use this switch with
@@ -927,7 +943,7 @@
\ifempty\p_factor \else
\ifnum\p_factor<\zerocount \else
% \global
- \count\currentnoteinsertionnumber\p_factor % new: global
+ \page_inserts_set_multiplier\currentnoteinsertionnumber\p_factor % new: global
\fi
\fi}
@@ -943,28 +959,49 @@
\installcorenamespace{notelocation}
\newconditional\c_strc_notes_delayed
+\newconditional\c_strc_notes_flushed
+
+\protected\def\strc_notes_set_delayed_yes{\settrue \c_strc_notes_delayed\setfalse\c_strc_notes_flushed}
+\protected\def\strc_notes_set_delayed_nop{\setfalse\c_strc_notes_delayed\setfalse\c_strc_notes_flushed}
+\protected\def\strc_notes_set_delayed_lst{\settrue \c_strc_notes_delayed\settrue \c_strc_notes_flushed}
+
+\defcsname\??notelocation\v!page\endcsname
+ {\letcsname\??notedelayedvariant \currentnote\endcsname\strc_notes_set_delayed_nop
+ \letcsname\??notelocationvariant\currentnote\endcsname\strc_notes_set_location_page}
+
+\defcsname\??notelocation\v!columns\endcsname
+ {\letcsname\??notedelayedvariant \currentnote\endcsname\strc_notes_set_delayed_nop
+ \letcsname\??notelocationvariant\currentnote\endcsname\strc_notes_set_location_columns}
+
+\defcsname\??notelocation\v!lastcolumn\endcsname
+ {\letcsname\??notedelayedvariant \currentnote\endcsname\strc_notes_set_delayed_nop
+ \letcsname\??notelocationvariant\currentnote\endcsname\strc_notes_set_location_lastcolumn}
+
+\defcsname\??notelocation\v!firstcolumn\endcsname
+ {\letcsname\??notedelayedvariant \currentnote\endcsname\strc_notes_set_delayed_nop
+ \letcsname\??notelocationvariant\currentnote\endcsname\strc_notes_set_location_firstcolumn}
+
+\defcsname\??notelocation\v!none\endcsname
+ {\letcsname\??notedelayedvariant \currentnote\endcsname\strc_notes_set_delayed_yes
+ \letcsname\??notelocationvariant\currentnote\endcsname\strc_notes_set_location_none}
+
+\defcsname\??notelocation\v!list\endcsname
+ {\letcsname\??notedelayedvariant \currentnote\endcsname\strc_notes_set_delayed_lst
+ \letcsname\??notelocationvariant\currentnote\endcsname\strc_notes_set_location_none}
+
+\defcsname\??notelocation\v!text\endcsname
+ {\letcsname\??notedelayedvariant \currentnote\endcsname\strc_notes_set_delayed_yes
+ \letcsname\??notelocationvariant\currentnote\endcsname\strc_notes_set_location_text}
-\protected\def\strc_notes_set_delayed_yes{\settrue \c_strc_notes_delayed}
-\protected\def\strc_notes_set_delayed_nop{\setfalse\c_strc_notes_delayed}
-
-\setvalue{\??notelocation\v!page }{\letcsname\??notedelayedvariant \currentnote\endcsname\strc_notes_set_delayed_nop
- \letcsname\??notelocationvariant\currentnote\endcsname\strc_notes_set_location_page}
-\setvalue{\??notelocation\v!columns }{\letcsname\??notedelayedvariant \currentnote\endcsname\strc_notes_set_delayed_nop
- \letcsname\??notelocationvariant\currentnote\endcsname\strc_notes_set_location_columns}
-\setvalue{\??notelocation\v!lastcolumn }{\letcsname\??notedelayedvariant \currentnote\endcsname\strc_notes_set_delayed_nop
- \letcsname\??notelocationvariant\currentnote\endcsname\strc_notes_set_location_lastcolumn}
-\setvalue{\??notelocation\v!firstcolumn}{\letcsname\??notedelayedvariant \currentnote\endcsname\strc_notes_set_delayed_nop
- \letcsname\??notelocationvariant\currentnote\endcsname\strc_notes_set_location_firstcolumn}
-\setvalue{\??notelocation\v!none }{\letcsname\??notedelayedvariant \currentnote\endcsname\strc_notes_set_delayed_yes
- \letcsname\??notelocationvariant\currentnote\endcsname\strc_notes_set_location_none}
-\setvalue{\??notelocation\v!text }{\letcsname\??notedelayedvariant \currentnote\endcsname\strc_notes_set_delayed_yes
- \letcsname\??notelocationvariant\currentnote\endcsname\strc_notes_set_location_text}
-\setvalue{\??notelocation\v!high }{\letcsname\??notepositionvariant\currentnote\endcsname\strc_notes_set_position_high}
-\setvalue{\??notelocation\v!bottom }{\letcsname\??notepositionvariant\currentnote\endcsname\strc_notes_set_position_bottom}
-
-\setvalue{\??notedelayedvariant \??notedelayedvariant }{\strc_notes_set_delayed_nop} % not let
-\setvalue{\??notepositionvariant\??notepositionvariant}{\strc_notes_set_position_bottom} % not let
-\setvalue{\??notelocationvariant\??notelocationvariant}{\strc_notes_set_location_page} % not let
+\defcsname\??notelocation\v!high\endcsname
+ {\letcsname\??notepositionvariant\currentnote\endcsname\strc_notes_set_position_high}
+
+\defcsname\??notelocation\v!bottom\endcsname
+ {\letcsname\??notepositionvariant\currentnote\endcsname\strc_notes_set_position_bottom}
+
+\defcsname\??notedelayedvariant \??notedelayedvariant \endcsname{\strc_notes_set_delayed_nop } % not \let
+\defcsname\??notepositionvariant\??notepositionvariant\endcsname{\strc_notes_set_position_bottom} % not \let
+\defcsname\??notelocationvariant\??notelocationvariant\endcsname{\strc_notes_set_location_page } % not \let
\protected\def\strc_notes_set_delayed
{\csname\??notedelayedvariant
@@ -1004,13 +1041,14 @@
\strc_notes_set_delayed
\to \everysynchronizenote
-\newskip \s_strc_notes_distance % we need to implement stretch
-\newcount\c_strc_notes_columns
-
-\newskip \s_strc_notes_before
-\newskip \s_strc_notes_inbetween
+\newgluespec \s_strc_notes_distance % we need to implement stretch
+\newinteger \c_strc_notes_columns
+\newgluespec \s_strc_notes_before
+\newgluespec \s_strc_notes_inbetween
\newconditional\c_strc_notes_first_flushed
+% we can store them per insert so so real need to redo it
+
\appendtoks
\edef\p_spacebefore{\rootnoteparameter\c!spacebefore}%
\ifempty\p_spacebefore
@@ -1018,7 +1056,7 @@
\else
\setbox\scratchbox\vbox{\blank[\p_spacebefore]\global\s_strc_notes_before\lastskip}%
\fi
- \edef\p_spaceinbetween{\rootnoteparameter\c!spaceinbetween}%
+ \edef\p_spaceinbetween{\noteparameter\c!spaceinbetween}%
\ifempty\p_spaceinbetween
\global\s_strc_notes_inbetween\zeropoint
\else
@@ -1055,10 +1093,10 @@
{\setfalse\c_strc_notes_delayed
\strc_notes_set_distance
\strc_notes_set_columns
- \page_inserts_set_location\currentnoteinsertion\v!page % \setupinsertion[\currentnote][\c!location=\v!page]%
- \global\count\currentnoteinsertionnumber\numexpr(\plusthousand/\c_strc_notes_columns)*\nofmulticolumns\relax
- \global\dimen\currentnoteinsertionnumber\ifnotelimit\dimexpr\noteparameter\c!height*\c_strc_notes_columns\relax\else\maxdimen\fi
- \global\skip \currentnoteinsertionnumber\s_strc_notes_distance}
+ \page_inserts_set_location \currentnoteinsertion\v!page % \setupinsertion[\currentnote][\c!location=\v!page]%
+ \page_inserts_set_multiplier\currentnoteinsertionnumber\numexpr(\plusthousand/\c_strc_notes_columns)*\nofmulticolumns\relax
+ \page_inserts_set_limit \currentnoteinsertionnumber\ifnotelimit\dimexpr\noteparameter\c!height*\c_strc_notes_columns\relax\else\maxdimen\fi
+ \page_inserts_set_distance \currentnoteinsertionnumber\s_strc_notes_distance}
\def\strc_notes_set_location_columns
{\setfalse\c_strc_notes_delayed
@@ -1068,19 +1106,19 @@
\ifnum\nofcolumns=\zerocount
\c_strc_notes_columns\plusone
\fi
- \page_inserts_set_location\currentnoteinsertion\v!columns % \setupinsertion[\currentnote][\c!location=\v!columns]%
- \global\count\currentnoteinsertionnumber\numexpr\plusthousand/\c_strc_notes_columns\relax
- \global\dimen\currentnoteinsertionnumber\ifnotelimit\dimexpr\noteparameter\c!height*\c_strc_notes_columns\relax\else\maxdimen\fi
- \global\skip \currentnoteinsertionnumber\s_strc_notes_distance}
+ \page_inserts_set_location \currentnoteinsertion\v!columns % \setupinsertion[\currentnote][\c!location=\v!columns]%
+ \page_inserts_set_multiplier\currentnoteinsertionnumber\numexpr\plusthousand/\c_strc_notes_columns\relax
+ \page_inserts_set_limit \currentnoteinsertionnumber\ifnotelimit\dimexpr\noteparameter\c!height*\c_strc_notes_columns\relax\else\maxdimen\fi
+ \page_inserts_set_distance \currentnoteinsertionnumber\s_strc_notes_distance}
\def\strc_notes_set_location_somecolumn#whatcolumn%
{\setfalse\c_strc_notes_delayed
\strc_notes_set_distance
\strc_notes_set_columns
- \page_inserts_set_location\currentnoteinsertion#whatcolumn% \setupinsertion[\currentnote][\c!location=#whatcolumn]%
- \global\count\currentnoteinsertionnumber\plusthousand
- \global\dimen\currentnoteinsertionnumber\ifnotelimit\noteparameter\c!height\else\maxdimen\fi
- \global\skip \currentnoteinsertionnumber\s_strc_notes_distance}
+ \page_inserts_set_location \currentnoteinsertion#whatcolumn% \setupinsertion[\currentnote][\c!location=#whatcolumn]%
+ \page_inserts_set_multiplier\currentnoteinsertionnumber\plusthousand
+ \page_inserts_set_limit \currentnoteinsertionnumber\ifnotelimit\noteparameter\c!height\else\maxdimen\fi
+ \page_inserts_set_distance \currentnoteinsertionnumber\s_strc_notes_distance}
\def\strc_notes_set_location_firstcolumn{\strc_notes_set_location_somecolumn\v!firstcolumn}
\def\strc_notes_set_location_lastcolumn {\strc_notes_set_location_somecolumn\v!lastcolumn }
@@ -1088,10 +1126,10 @@
\def\strc_notes_set_location_text % we don't use inserts anyway (e.g. endnotes)
{\settrue\c_strc_notes_delayed
\clf_setnotestate{\currentnote}{store}%
- \page_inserts_set_location\currentnoteinsertion\v!text % \setupinsertion[\currentnote][\c!location=\v!text]%
- \global\count\currentnoteinsertionnumber\zerocount
- \global\dimen\currentnoteinsertionnumber\maxdimen
- \global\skip \currentnoteinsertionnumber\zeropoint}
+ \page_inserts_set_location \currentnoteinsertion\v!text % \setupinsertion[\currentnote][\c!location=\v!text]%
+ \page_inserts_set_multiplier\currentnoteinsertionnumber\zerocount
+ \page_inserts_set_limit \currentnoteinsertionnumber\maxdimen
+ \page_inserts_set_distance \currentnoteinsertionnumber\zeropoint}
\let\strc_notes_set_location_none\strc_notes_set_location_text
@@ -1114,8 +1152,13 @@
\newconditional\c_notes_bottom_present
+% \def\strc_notes_check_if_bottom_present_indeed % in otr !
+% {\ifvoid\currentnoteinsertionnumber\else
+% \strc_notes_set_position
+% \fi}
+
\def\strc_notes_check_if_bottom_present_indeed % in otr !
- {\ifvoid\currentnoteinsertionnumber\else
+ {\ifzeropt\page_inserts_get_height\currentnoteinsertionnumber\else
\strc_notes_set_position
\fi}
@@ -1261,7 +1304,9 @@
\begstrut
\strc_references_flush_destination_nodes
\strc_notes_set_destination_attribute_text
- \strc_notes_inject_text\relax
+ \ifconditional\c_strc_notes_flushed\else
+ \strc_notes_inject_text\relax
+ \fi
\ifvmode\obeydepth\else\endstrut\fi % \obeydepth is new per 2015-01-10
\strc_constructions_stored_stop
%endgroup
@@ -1270,7 +1315,9 @@
\protected\def\strc_notes_inject_text % hm main?
{\clf_savedlisttitle{\currentconstructionmain}\currentconstructionlistentry\relax}
-\newsignal\d_strc_notes_signal
+\installstructurelistprocessor{construction}{\usestructurelistprocessor{section}}
+
+\newboundary\noteboundary
\newconditional\processingnote
\newconditional\postponednote
@@ -1287,8 +1334,8 @@
\fi}
\appendtoks
- \enforced\let\flushnotes \relax
- \enforced\let\postponenotes\relax
+ \enforced\lettonothing\flushnotes
+ \enforced\lettonothing\postponenotes
\forgetall
\resetallattributes % new, we don't want color bleed into notes
\inheritmaintextcolor % but we do want to obey the textcolor
@@ -1296,7 +1343,8 @@
\def\strc_notes_set_penalties
{% stored in insert node
- \floatingpenalty \currentnotepenalty
+ \floatingpenalty \currentnotepenalty % now per note
+ \page_inserts_set_penalty\currentnoteinsertionnumber\currentnotepenalty
% used when typesetting
\interlinepenalty\plushundred % plain value
% used when we need to split in columns
@@ -1311,6 +1359,7 @@
\redoconvertfont % to undo \undo calls in in headings etc
\splittopskip\strutht % not actually needed here
\splitmaxdepth\strutdp % not actually needed here
+\page_inserts_set_maxdepth \currentnoteinsertionnumber\strutdp
%
% not:
%
@@ -1337,22 +1386,33 @@
\setupnotes
[\c!width=\v!auto]
+% \permanent\protected\def\setnotehsize
+% {\ifinsidemulticolumns
+% \setnoteparameter\c!width{\makeupwidth}%
+% \else
+% \edef\p_width{\noteparameter\c!width}%
+% \ifx\p_width\v!auto
+% % \ifinsidecolumns
+% \setnoteparameter\c!width{\ifdim\hsize<\makeupwidth\hsize\else\makeupwidth\fi}%
+% % \else
+% % \setnoteparameter\c!width{\makeupwidth}%
+% % \fi
+% \orelse\ifempty\p_width
+% \setnoteparameter\c!width{\hsize}%
+% \fi
+% \fi
+% \hsize\noteparameter\c!width\relax}
+%
+% We construct immediately and migrate so:
+
\permanent\protected\def\setnotehsize
- {\ifinsidemulticolumns
+ {\edef\p_width{\noteparameter\c!width}%
+ \ifx\p_width\v!auto
+ % intercept old value
+ \let\p_width\makeupwidth
\setnoteparameter\c!width{\makeupwidth}%
- \else
- \edef\p_width{\noteparameter\c!width}%
- \ifx\p_width\v!auto
- % \ifinsidecolumns
- \setnoteparameter\c!width{\ifdim\hsize<\makeupwidth\hsize\else\makeupwidth\fi}%
- % \else
- % \setnoteparameter\c!width{\makeupwidth}%
- % \fi
- \orelse\ifempty\p_width
- \setnoteparameter\c!width{\hsize}%
- \fi
- \fi
- \hsize\noteparameter\c!width\relax}
+ \fi
+ \hsize\p_width\relax}
\appendtoks
% only needed when columns (could be three \set...)
@@ -1377,7 +1437,8 @@
\def\strc_notes_place_inserts
{\strc_notes_set_delayed % \strc_notes_synchronize % we need to know if it's delayed
\ifconditional\c_strc_notes_delayed \else
- \ifdim\ht\currentnoteinsertionnumber>\zeropoint % or a faster delayed test
+% \ifdim\ht\currentnoteinsertionnumber>\zeropoint % or a faster delayed test
+ \ifcase\page_inserts_get_height\currentnoteinsertionnumber\else
\strc_notes_place_inserts_indeed
\settrue\c_strc_notes_first_placed
\fi
@@ -1385,7 +1446,8 @@
\def\strc_notes_place_inserts_indeed
{\relax
- \ifdim\ht\currentnoteinsertionnumber>\zeropoint
+% \ifdim\ht\currentnoteinsertionnumber>\zeropoint
+ \ifcase\page_inserts_get_height\currentnoteinsertionnumber\else
\endgraf
\ifvmode
\whitespace
@@ -1395,7 +1457,7 @@
\blank[\p_spaceinbetween]%
\fi
\else
- \edef\p_spacebefore{\noteparameter\c!spacebefore}%
+ \edef\p_spacebefore{\rootnoteparameter\c!spacebefore}%
\ifempty\p_spacebefore\else
\blank[\p_spacebefore]%
\fi
@@ -1463,9 +1525,19 @@
\doifelse{\noteparameter\c!paragraph}\v!yes
{\leftorrightvbox % cf mail from ws to list
{\starthboxestohbox
- \iftrialtypesetting\unvcopy\else\unvbox\fi\currentnoteinsertionnumber
+ \iftrialtypesetting
+ \page_inserts_get_uncopied
+ \else
+ \page_inserts_get_unboxed
+ \fi
+ \currentnoteinsertionnumber
\stophboxestohbox}}
- {\iftrialtypesetting\unvcopied\else\unvboxed\fi\currentnoteinsertionnumber}%
+ {\iftrialtypesetting
+ \ifvmode\page_inserts_get_uncopied\else\page_inserts_get_copied\fi
+ \else
+ \ifvmode\page_inserts_get_unboxed \else\page_inserts_get_boxed \fi
+ \fi
+ \currentnoteinsertionnumber}%
\endgroup}
%D Supporting end notes is surprisingly easy. Even better, we can combine this
@@ -1505,7 +1577,7 @@
\fi
\fi}
-\aliased\let\flushnotes\relax
+\permanent\lettonothing\flushnotes
% also \ifcase\insertionmigrationmode here, needs testing:
@@ -1522,8 +1594,8 @@
\permanent\protected\def\doflushnotes
{\ifconditional\postponingnotes
\begingroup
- \enforced\let\flushnotes \relax
- \enforced\let\postponenotes\relax
+ \enforced\lettonothing\flushnotes
+ \enforced\lettonothing\postponenotes
\ifconditional\postponednote
\ifhmode
% needed for tagging ... otherwise we get some weird node free error
@@ -1533,7 +1605,7 @@
\clf_flushpostponednotes% this also resets the states !
\global\setfalse\postponednote
\global\setfalse\postponingnotes
- \enforced\glet\flushnotes\relax
+ \enforced\glettonothing\flushnotes
\endgroup
\fi}
@@ -1551,13 +1623,13 @@
\newtoks\everyplacelocalnotes
\appendtoks
- \enforced\let\flushnotes \relax
- \enforced\let\postponenotes\relax
+ \enforced\lettonothing\flushnotes
+ \enforced\lettonothing\postponenotes
\to \everyplacelocalnotes
\newconditional\inlocalnotes
-\mutable\let\localnoteslist\empty
+\mutable\lettonothing\localnoteslist
\permanent\tolerant\protected\def\startlocalnotes[#list]% grouping ? (we used to have a second argument ... settings)
{\settrue\inlocalnotes
@@ -1568,7 +1640,7 @@
{\processcommacommand[\localnoteslist]\strc_notes_local_stop_step
\setfalse\inlocalnotes}
-\let\p_strc_notes_continue\empty
+\lettonothing\p_strc_notes_continue
\def\strc_notes_local_start_step#tag%
{\p_strc_notes_continue{\noteparameter\c!continue}%
@@ -1658,7 +1730,7 @@
\installcorenamespace{notealternative}
\permanent\protected\def\installnotealternative#alternative#command%
- {\setvalue{\??notealternative#alternative}{#command}}
+ {\defcsname\??notealternative#alternative\endcsname{#command}}
\permanent\protected\def\doifnotescollected#tag%
{\clf_doifnotecontent{#tag}}
@@ -1672,7 +1744,7 @@
\fi
\begingroup
\strc_notes_set_bodyfont
- \csname\??notealternative\noteparameter\c!alternative\endcsname
+ \begincsname\??notealternative\noteparameter\c!alternative\endcsname
\endgroup
\ifvmode
\noteparameter\c!after
@@ -1743,7 +1815,8 @@
\strc_notes_process\strc_notes_check_presence}
\def\strc_notes_check_presence
- {\ifdim\ht\currentnoteinsertionnumber>\zeropoint
+% {\ifdim\page_inserts_get_height\currentnoteinsertionnumber>\zeropoint % not reliable
+ {\ifcase\page_inserts_get_height\currentnoteinsertionnumber\else
\notespresenttrue
\fi}
@@ -1772,29 +1845,28 @@
\permanent\protected\def\additionaltotalnoteheight#insert% temp hacks anyway
{\dimexpr
- \ifdim\ht#insert>\zeropoint
- \ifcase\count#insert %
- \zeropoint
- \else % todo: divide by count
- \ht#insert+\skip#insert% hm, no stretch but a dimen anyway
- \fi
- \else
+ \ifnum\page_inserts_get_height#insert=\zeropoint
+ \zeropoint
+ \orelse\ifnum\page_inserts_get_multiplier#insert=\zeropoint
\zeropoint
+ \else % todo: divide by count
+ \page_inserts_get_height #insert
+ +\page_inserts_get_distance#insert% hm, no stretch but a dimen anyway
\fi
\relax}
\permanent\def\docalculatetotalnoteheight
{\ifcase\c_strc_notes_page_location % tricky here ! ! ! to be sorted out ! ! !
- \advance\totalnoteheight\normalexpanded{\additionaltotalnoteheight\currentnoteinsertionnumber}%
+ \advanceby\totalnoteheight\normalexpanded{\additionaltotalnoteheight\currentnoteinsertionnumber}%
\fi}
\permanent\def\docalculatetotalclevernoteheight
{\ifcase\c_strc_notes_page_location \else % tricky here ! ! ! to be sorted out ! ! !
- \advance\totalnoteheight\normalexpanded{\additionaltotalnoteheight\currentnoteinsertionnumber}%
+ \advanceby\totalnoteheight\normalexpanded{\additionaltotalnoteheight\currentnoteinsertionnumber}%
\fi}
\permanent\def\docalculatetotalpagenoteheight
- {\advance\totalnoteheight\normalexpanded{\additionaltotalnoteheight\currentnoteinsertionnumber}}
+ {\advanceby\totalnoteheight\normalexpanded{\additionaltotalnoteheight\currentnoteinsertionnumber}}
\permanent\def\calculatetotalnoteheight {\totalnoteheight\zeropoint\strc_notes_process\docalculatetotalnoteheight}
\permanent\def\calculatetotalclevernoteheight{\totalnoteheight\zeropoint\strc_notes_process\docalculatetotalclevernoteheight}
@@ -1901,9 +1973,9 @@
\installcorenamespace{notesymbol}
-\mutable\let\lastnotesymbol\empty % todo: per class
+\mutable\lettonothing\lastnotesymbol % todo: per class
-\permanent\tolerant\protected\def\notesymbol[#tag]#spacer[#reference]%
+\permanent\tolerant\protected\def\notesymbol[#tag]#keepspacer[#reference]%
{\ifnotesenabled
\dontleavehmode
\begingroup
@@ -1918,7 +1990,7 @@
\endgroup
\fi}
-\permanent\tolerant\protected\def\note[#tag]#spacer[#reference]%
+\permanent\tolerant\protected\def\note[#tag]#keepspacer[#reference]%
{\iftok{#reference}\emptytoks
\notesymbol[\v!footnote][#tag]%
\else
@@ -1932,7 +2004,7 @@
%
% \protected\def\setnotesymbol[#1]#2#3%
% {\prewordbreak % prevent lookback
-% \setgvalue{\??notesymbol#1}{#3}
+% \gdefcsname\??notesymbol#1\endcsname{#3}
% \strc_notes_inject_symbol}
%
% \protected\def\ownnote[#1]#2#3#4%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-num.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-num.mkxl
index 02674bce29c..3f3bd21430d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-num.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-num.mkxl
@@ -70,7 +70,7 @@
\edef\p_number{\counterparameter\c!number}%
\ifempty\p_number \else
\clf_setcounter{\counterparameter\s!name}\numexpr\p_number\relax
- \letcounterparameter\c!number\empty
+ \resetcounterparameter\c!number
\fi
\edef\p_start{\counterparameter\c!start}%
\setexpandedcounterparameter\c!start{\ifempty\p_start0\else\number\p_start\fi}%
@@ -378,8 +378,8 @@
% currentstructurecomponent => \strc_current_ or just \m_strc_
-\mutable\let\currentname \empty
-\mutable\let\currentcounter\empty
+\mutable\lettonothing\currentname
+\mutable\lettonothing\currentcounter
\protected\def\strc_counters_register_component#1#2#3#4#5#6#7[#8][#9]% maybe also nolist
{\begingroup
@@ -426,7 +426,7 @@
\let\currentstructurecomponentreferenceprefix\referenceprefix
\fi
\ifdefined\currentstructurecomponentreferenceprefix\else
- \let\currentstructurecomponentreferenceprefix\empty
+ \lettonothing\currentstructurecomponentreferenceprefix
\fi}
\def\strc_counters_register_component_page#1%
@@ -454,13 +454,17 @@
\def\strc_counters_register_component_list#1#2#3#4%
{\xdef\currentstructurecomponentname {#2\s!name}%
- \xdef\currentstructurecomponentlevel {#2\c!level}%
+ \xdef\currentstructurecomponentcounter {#2\s!counter}%
+ \xdef\currentstructurecomponentlevel {#2\s!haslevel}%
\edef\currentstructurecomponentexpansion {#2\c!expansion}%
\xdef\currentstructurecomponentxmlsetup {#2\c!xmlsetup}%
\xdef\currentstructurecomponentcatcodes {#2\s!catcodes}%
\xdef\currentstructurecomponentlabel {#2\c!label}%
\xdef\currentstructurecomponentreference {#2\c!reference}%
\xdef\currentstructurecomponentreferenceprefix{#2\c!referenceprefix}%
+ \ifempty\currentstructurecomponentcounter
+ \glet\currentstructurecomponentcounter\currentcounter
+ \fi
\strc_counters_register_component_check_prefix
\ifx\currentstructurecomponentexpansion\s!xml
\xmlstartraw
@@ -533,7 +537,7 @@
list {\detokenize\expandafter{\currentstructurecomponentlist}}
\fi
}
- \ifx\p_hasnumber\v!yes
+ \ifx\p_hasnumber\v!yes\ifempty\currentstructurecomponentcounter\else
prefixdata {
prefix {#2\c!prefix}
separatorset {#2\c!prefixseparatorset}
@@ -545,10 +549,13 @@
connector {#2\c!prefixconnector}
}
numberdata { % more helpers here, like compact elsewhere
- numbers {\currentcounter}
+ \ifempty\currentstructurecomponentlevel\else
+ level \currentstructurecomponentlevel
+ \fi
+ numbers {\currentstructurecomponentcounter}
group {#2\c!group}
groupsuffix {#2\c!groupsuffix}
- counter {\currentcounter}
+ counter {\currentstructurecomponentcounter}
separatorset {#2\c!numberseparatorset}
conversion {#2\c!numberconversion}
conversionset {#2\c!numberconversionset}
@@ -556,7 +563,7 @@
stopper {#2\c!numberstopper}
segments {#2\c!numbersegments}
}
- \fi
+ \fi\fi
userdata {\detokenize{#4}}
%}
\relax
@@ -659,7 +666,7 @@
% \ifempty#2%
% \the#5%
% \else
-% \let\currentcounter\empty
+% \lettonothing\currentcounter
% \the\everysetupcounter
% \fi
% \strc_counter_setup_pop}%
@@ -681,7 +688,7 @@
% \edef\p_number{\counterparameter\c!number}%
% \ifempty\p_number \else
% \strc_counters_set\currentcounter\p_number
-% \letcounterparameter\c!number\empty
+% \resetcounterparameter\c!number
% \fi
% \fi
% \to \everysetupcounter
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-pag.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-pag.mkxl
index c27fd942953..2da56506768 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-pag.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-pag.mkxl
@@ -21,12 +21,14 @@
% Allocation:
-\ifdefined\realpageno \else \permanent\countdef\realpageno \zerocount \fi \realpageno \plusone
-\ifdefined\userpageno \else \permanent\countdef\userpageno \plusone \fi \userpageno \plusone
-\ifdefined\subpageno \else \permanent\countdef\subpageno \plustwo \fi \subpageno \plusone % was \zerocount but that doesn't work well with bytext
-\ifdefined\arrangeno \else \permanent\countdef\arrangeno \plusthree \fi \arrangeno \zerocount % !
-\ifdefined\pagenoshift \else \permanent\countdef\pagenoshift\plusfour \fi \pagenoshift\zerocount % !
-\ifdefined\lastpageno \else \permanent\countdef\lastpageno \plusfive \fi \lastpageno \zerocount % !
+\ifdefined\realpageno \else \permanent\countdef\realpageno \zerocount \fi \realpageno \plusone
+\ifdefined\userpageno \else \permanent\countdef\userpageno \plusone \fi \userpageno \plusone
+\ifdefined\subpageno \else \permanent\countdef\subpageno \plustwo \fi \subpageno \plusone % was \zerocount but that doesn't work well with bytext
+\ifdefined\arrangeno \else \permanent\countdef\arrangeno \plusthree \fi \arrangeno \zerocount % !
+\ifdefined\pagenoshift \else \permanent\countdef\pagenoshift \plusfour \fi \pagenoshift \zerocount % !
+\ifdefined\lastpageno \else \permanent\countdef\lastpageno \plusfive \fi \lastpageno \zerocount % !
+\ifdefined\lastuserpageno\else \permanent\countdef\lastuserpageno\plussix \fi \lastuserpageno\zerocount % !
+\ifdefined\lastsubpageno \else \permanent\countdef\lastsubpageno \plusseven \fi \lastsubpageno \zerocount % !
\ifdefined\pageno \else \aliased\let\pageno\userpageno \fi
@@ -101,7 +103,9 @@
\strc_counters_set\s!realpage\realpageno
\strc_counters_set\s!userpage\userpageno
\strc_counters_set\s!subpage \subpageno
- \lastpageno\lastcountervalue[\s!realpage]\relax
+ \lastpageno \lastcountervalue[\s!realpage]\relax
+ \lastuserpageno\lastcountervalue[\s!userpage]\relax
+ \lastsubpageno \lastcountervalue[\s!subpage ]\relax
\to \everyinitializepagecounters
\aliased\let\setuppagenumber\setupuserpagenumber
@@ -233,7 +237,7 @@
\strc_pagenumbers_decrement_counters
\to \everygoodbye
-\newcount\c_strc_subpage_first_real \c_strc_subpage_first_real\plusone
+\newinteger\c_strc_subpage_first_real \c_strc_subpage_first_real\plusone
\appendtoks
\ifcase\subpageno\relax
@@ -288,14 +292,14 @@
\permanent\protected\def\decrementpagenumber{\csname\??pagenumberdec\namedcounterparameter\s!userpage\c!state\endcsname}
\permanent\protected\def\incrementpagenumber{\csname\??pagenumberinc\namedcounterparameter\s!userpage\c!state\endcsname}
-\letvalue{\??pagenumberdec\v!start}\strc_pagenumbers_decrement_userpage
-\letvalue{\??pagenumberdec\v!none }\strc_pagenumbers_decrement_userpage
-\letvalue{\??pagenumberdec\v!empty}\strc_pagenumbers_decrement_userpage
+\letcsname\??pagenumberdec\v!start\endcsname\strc_pagenumbers_decrement_userpage
+\letcsname\??pagenumberdec\v!none \endcsname\strc_pagenumbers_decrement_userpage
+\letcsname\??pagenumberdec\v!empty\endcsname\strc_pagenumbers_decrement_userpage
-\letvalue{\??pagenumberinc\v!start}\strc_pagenumbers_increment_userpage
-\letvalue{\??pagenumberinc\v!none }\strc_pagenumbers_increment_userpage
-\setvalue{\??pagenumberinc\v!empty}{\strc_pagenumbers_increment_userpage\strc_pagenumbers_synchronize_userpage}
-\letvalue{\??pagenumberinc\v!keep }\strc_pagenumbers_synchronize_userpage
+\letcsname\??pagenumberinc\v!start\endcsname\strc_pagenumbers_increment_userpage
+\letcsname\??pagenumberinc\v!none \endcsname\strc_pagenumbers_increment_userpage
+\defcsname\??pagenumberinc\v!empty\endcsname{\strc_pagenumbers_increment_userpage\strc_pagenumbers_synchronize_userpage}
+\letcsname\??pagenumberinc\v!keep \endcsname\strc_pagenumbers_synchronize_userpage
% Setup general page numbering
@@ -335,12 +339,22 @@
\let\strc_pagenumbers_set_location\relax
\fi
+% \protected\def\strc_pagenumbers_flush_final_page
+% {\edef\p_strc_pagenumbers_page{\directpagenumberingparameter\c!page}%
+% \ifempty\p_strc_pagenumbers_page \else
+% \ifx\p_strc_pagenumbers_page\v!no \else
+% \page[\p_strc_pagenumbers_page]%
+% \fi
+% \fi}
+
\protected\def\strc_pagenumbers_flush_final_page
{\edef\p_strc_pagenumbers_page{\directpagenumberingparameter\c!page}%
- \ifempty\p_strc_pagenumbers_page \else
- \ifx\p_strc_pagenumbers_page\v!no \else
- \page[\p_strc_pagenumbers_page]%
- \fi
+ \ifempty\p_strc_pagenumbers_page
+ % nothing
+ \orelse\ifx\p_strc_pagenumbers_page\v!no
+ % nothing
+ \else
+ \page[\p_strc_pagenumbers_page]%
\fi}
% The numbered location handler is there because we need to be downward
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-ref.lmt b/Master/texmf-dist/tex/context/base/mkxl/strc-ref.lmt
new file mode 100644
index 00000000000..b97a1619b3f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-ref.lmt
@@ -0,0 +1,2974 @@
+if not modules then modules = { } end modules ['strc-ref'] = {
+ version = 1.001,
+ comment = "companion to strc-ref.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- beware, this is a first step in the rewrite (just getting rid of
+-- the tuo file); later all access and parsing will also move to lua
+
+-- the useddata and pagedata names might change
+-- todo: pack exported data
+
+-- todo: autoload components when :::
+
+local format, gmatch, match, strip = string.format, string.gmatch, string.match, string.strip
+local floor = math.floor
+local rawget, tonumber, type, next = rawget, tonumber, type, next
+local lpegmatch = lpeg.match
+local insert, remove, copytable = table.insert, table.remove, table.copy
+local formatters = string.formatters
+local P, Cs, lpegmatch = lpeg.P, lpeg.Cs, lpeg.match
+
+local allocate = utilities.storage.allocate
+local mark = utilities.storage.mark
+local setmetatableindex = table.setmetatableindex
+
+local trace_referencing = false trackers.register("structures.referencing", function(v) trace_referencing = v end)
+local trace_analyzing = false trackers.register("structures.referencing.analyzing", function(v) trace_analyzing = v end)
+local trace_identifying = false trackers.register("structures.referencing.identifying", function(v) trace_identifying = v end)
+local trace_importing = false trackers.register("structures.referencing.importing", function(v) trace_importing = v end)
+local trace_empty = false trackers.register("structures.referencing.empty", function(v) trace_empty = v end)
+
+local check_duplicates = true
+
+directives.register("structures.referencing.checkduplicates", function(v) check_duplicates = v end)
+
+local report_references = logs.reporter("references")
+local report_identifying = logs.reporter("references","identifying")
+local report_importing = logs.reporter("references","importing")
+local report_empty = logs.reporter("references","empty")
+local report = report_references
+
+local variables = interfaces.variables
+local v_page = variables.page
+local v_auto = variables.auto
+local v_yes = variables.yes
+local v_name = variables.name
+
+local context = context
+local commands = commands
+local implement = interfaces.implement
+
+local ctx_latelua = context.latelua
+
+local texiscount = tex.iscount
+local texgetcount = tex.getcount
+local texsetcount = tex.setcount
+local texconditionals = tex.conditionals
+
+local getexpansion = token.getexpansion
+
+local productcomponent = resolvers.jobs.productcomponent
+local justacomponent = resolvers.jobs.justacomponent
+
+local settings_to_array = utilities.parsers.settings_to_array
+local settings_to_table = utilities.parsers.settings_to_array_obey_fences
+local process_settings = utilities.parsers.process_stripped_settings
+local unsetvalue = attributes.unsetvalue
+
+local structures = structures
+local helpers = structures.helpers
+local sections = structures.sections
+local references = structures.references
+local lists = structures.lists
+local counters = structures.counters
+
+local jobpositions = job.positions
+local getpos = jobpositions.getpos
+
+-- some might become local
+
+references.defined = references.defined or allocate()
+
+local defined = references.defined
+local derived = allocate()
+local specials = allocate()
+local functions = allocate()
+local runners = allocate()
+local internals = allocate()
+local filters = allocate()
+local executers = allocate()
+local handlers = allocate()
+local tobesaved = allocate()
+local collected = allocate()
+local tobereferred = allocate()
+local referred = allocate()
+local usedinternals = allocate()
+local flaginternals = allocate()
+local usedviews = allocate()
+
+references.derived = derived
+references.specials = specials
+references.functions = functions
+references.runners = runners
+references.internals = internals
+references.filters = filters
+references.executers = executers
+references.handlers = handlers
+references.tobesaved = tobesaved
+references.collected = collected
+references.tobereferred = tobereferred
+references.referred = referred
+references.usedinternals = usedinternals
+references.flaginternals = flaginternals
+references.usedviews = usedviews
+
+local splitreference = references.splitreference
+local splitprefix = references.splitcomponent -- replaces: references.splitprefix
+local prefixsplitter = references.prefixsplitter
+local componentsplitter = references.componentsplitter
+
+local currentreference = nil
+
+local txtcatcodes = catcodes.numbers.txtcatcodes -- or just use "txtcatcodes"
+
+local c_realpageno = texiscount("realpageno")
+local c_locationcount = texiscount("locationcount")
+local c_locationorder = texiscount("locationorder")
+local c_lastdestinationattribute = texiscount("lastdestinationattribute")
+
+local context = context
+
+local ctx_pushcatcodes = context.pushcatcodes
+local ctx_popcatcodes = context.popcatcodes
+local ctx_dofinishreference = context.dofinishreference
+local ctx_dofromurldescription = context.dofromurldescription
+local ctx_dofromurlliteral = context.dofromurlliteral
+local ctx_dofromfiledescription = context.dofromfiledescription
+local ctx_dofromfileliteral = context.dofromfileliteral
+local ctx_expandreferenceoperation = context.expandreferenceoperation
+local ctx_expandreferencearguments = context.expandreferencearguments
+local ctx_convertnumber = context.convertnumber
+local ctx_emptyreference = context.emptyreference
+
+storage.register("structures/references/defined", references.defined, "structures.references.defined")
+
+local initializers = { }
+local finalizers = { }
+local somefound = false -- so we don't report missing when we have a fresh start
+
+function references.registerinitializer(func) -- we could use a token register instead
+ initializers[#initializers+1] = func
+end
+
+function references.registerfinalizer(func) -- we could use a token register instead
+ finalizers[#finalizers+1] = func
+end
+
+local function initializer() -- can we use a tobesaved as metatable for collected?
+ tobesaved = references.tobesaved
+ collected = references.collected
+ for i=1,#initializers do
+ initializers[i](tobesaved,collected)
+ end
+ for prefix, list in next, collected do
+ for tag, data in next, list do
+ local r = data.references
+ local i = r.internal
+ if i then
+ internals[i] = data
+ usedinternals[i] = r.used
+ end
+ end
+ end
+ somefound = next(collected)
+end
+
+local function finalizer()
+ for i=1,#finalizers do
+ finalizers[i](tobesaved)
+ end
+ for prefix, list in next, tobesaved do
+ for tag, data in next, list do
+ local r = data.references
+ local i = r.internal
+ local f = flaginternals[i]
+ if f then
+ r.used = usedviews[i] or true
+ end
+ end
+ end
+end
+
+job.register('structures.references.collected', tobesaved, initializer, finalizer)
+
+local maxreferred = 1
+local nofreferred = 0
+
+local function initializer() -- can we use a tobesaved as metatable for collected?
+ tobereferred = references.tobereferred
+ referred = references.referred
+ nofreferred = #referred
+end
+
+-- no longer done this way
+
+-- references.resolvers = references.resolvers or { }
+-- local resolvers = references.resolvers
+--
+-- function resolvers.section(var)
+-- local vi = lists.collected[var.i[2]]
+-- if vi then
+-- var.i = vi
+-- var.r = (vi.references and vi.references.realpage) or (vi.pagedata and vi.pagedata.realpage) or 1
+-- else
+-- var.i = nil
+-- var.r = 1
+-- end
+-- end
+--
+-- resolvers.float = resolvers.section
+-- resolvers.description = resolvers.section
+-- resolvers.formula = resolvers.section
+-- resolvers.note = resolvers.section
+--
+-- function resolvers.reference(var)
+-- local vi = var.i[2]
+-- if vi then
+-- var.i = vi
+-- var.r = (vi.references and vi.references.realpage) or (vi.pagedata and vi.pagedata.realpage) or 1
+-- else
+-- var.i = nil
+-- var.r = 1
+-- end
+-- end
+
+-- We make the array sparse (maybe a finalizer should optionally return a table) because
+-- there can be quite some page links involved. We only store one action number per page
+-- which is normally good enough for what we want (e.g. see above/below) and we do
+-- a combination of a binary search and traverse backwards. A previous implementation
+-- always did a traverse and was pretty slow on a large number of links (given that this
+-- methods was used). It took me about a day to locate this as a bottleneck in processing
+-- a 2500 page interactive document with 60 links per page. In that case, traversing
+-- thousands of slots per link then brings processing to a grinding halt (especially when
+-- there are no slots at all, which is the case in a first run).
+
+local sparsetobereferred = { }
+
+local function finalizer()
+ local lastr, lasti
+ local n = 0
+ for i=1,maxreferred do
+ local r = tobereferred[i]
+ if not lastr then
+ lastr = r
+ lasti = i
+ elseif r ~= lastr then
+ n = n + 1
+ sparsetobereferred[n] = { lastr, lasti }
+ lastr = r
+ lasti = i
+ end
+ end
+ if lastr then
+ n = n + 1
+ sparsetobereferred[n] = { lastr, lasti }
+ end
+end
+
+job.register('structures.references.referred', sparsetobereferred, initializer, finalizer)
+
+local function referredpage(n)
+ local max = nofreferred
+ if max > 0 then
+ -- find match
+ local min = 1
+ while true do
+ local mid = floor((min+max)/2)
+ local r = referred[mid]
+ local m = r[2]
+ if n == m then
+ return r[1]
+ elseif n > m then
+ min = mid + 1
+ else
+ max = mid - 1
+ end
+ if min > max then
+ break
+ end
+ end
+ -- find first previous
+ for i=min,1,-1 do
+ local r = referred[i]
+ if r and r[2] < n then
+ return r[1]
+ end
+ end
+ end
+ -- fallback
+ return texgetcount(c_realpageno)
+end
+
+references.referredpage = referredpage
+
+function references.registerpage(n) -- called in the backend code
+ if not tobereferred[n] then
+ if n > maxreferred then
+ maxreferred = n
+ end
+ tobereferred[n] = texgetcount(c_realpageno)
+ end
+end
+
+-- todo: delay split till later as in destinations we split anyway
+
+local orders, lastorder = { }, 0
+
+local function setnextorder(kind,name)
+ lastorder = 0
+ if kind and name then
+ local ok = orders[kind]
+ if not ok then
+ ok = { }
+ orders[kind] = ok
+ end
+ lastorder = (ok[name] or 0) + 1
+ ok[name] = lastorder
+ end
+ texsetcount("global",c_locationorder,lastorder)
+end
+
+
+local function setnextinternal(kind,name)
+ setnextorder(kind,name) -- always incremented with internal
+ local n = texgetcount(c_locationcount) + 1
+ texsetcount("global",c_locationcount,n)
+ return n
+end
+
+local function currentorder(kind,name)
+ return orders[kind] and orders[kind][name] or lastorder
+end
+
+local function setcomponent(data)
+ -- we might consider doing this at the tex end, just like prefix
+ local component = productcomponent()
+ if component then
+ local references = data and data.references
+ if references then
+ references.component = component
+ if references.prefix == component then
+ references.prefix = nil
+ end
+ end
+ return component
+ end
+ -- but for the moment we do it here (experiment)
+end
+
+references.setnextorder = setnextorder
+references.setnextinternal = setnextinternal
+references.currentorder = currentorder
+references.setcomponent = setcomponent
+
+-- implement {
+-- name = "setnextreferenceorder",
+-- actions = setnextorder,
+-- arguments = "2 strings",
+-- }
+--
+-- implement {
+-- name = "currentreferenceorder",
+-- actions = { currentorder, context },
+-- arguments = "2 strings",
+-- }
+
+implement {
+ name = "setnextinternalreferences",
+ public = true,
+ protected = true,
+ actions = setnextinternal,
+ arguments = "2 arguments",
+}
+
+implement {
+ name = "getinternalorderreference",
+ public = true,
+ protected = true,
+ actions = { currentorder, context },
+ arguments = "2 arguments",
+}
+
+local reported = setmetatableindex("table")
+
+function references.set(data)
+ local references = data.references
+ local reference = references.reference
+ if not reference or reference == "" then
+ -- report_references("invalid reference") -- harmless
+ return 0
+ end
+ local prefix = references.prefix or ""
+ local pd = tobesaved[prefix] -- nicer is a metatable
+ if not pd then
+ pd = { }
+ tobesaved[prefix] = pd
+ end
+ local n = 0
+ local function action(ref)
+ if ref == "" then
+ -- skip
+ elseif check_duplicates and pd[ref] then
+ if not prefix then
+ prefix = ""
+ end
+ if not reported[prefix][ref] then
+ if prefix ~= "" then
+ report_references("redundant reference %a in namespace %a",ref,prefix)
+ else
+ report_references("redundant reference %a",ref)
+ end
+ reported[prefix][ref] = true
+ end
+ else
+ n = n + 1
+ pd[ref] = data
+ local r = data.references
+ ctx_dofinishreference(prefix or "",ref or "",r and r.internal or 0)
+ -- ctx_latelua(function() structures.references.enhance(prefix or ref,ref or "") end)
+ end
+ end
+ process_settings(reference,action)
+ return n > 0
+end
+
+-- function references.enhance(prefix,tag)
+-- local l = tobesaved[prefix][tag]
+-- if l then
+-- l.references.realpage = texgetcount(c_realpageno)
+-- end
+-- end
+
+local function synchronizepage(reference) -- non public helper
+ reference.realpage = texgetcount(c_realpageno)
+ if jobpositions.used() then
+ reference.x, reference.y = getpos()
+ end
+end
+
+references.synchronizepage = synchronizepage
+
+local function enhancereference(specification)
+ local prefix = specification.prefix
+ if prefix then
+ local entry = tobesaved[prefix]
+ if entry then
+ entry = entry[specification.tag]
+ if entry then
+ synchronizepage(entry.references)
+ else
+ -- normally a bug
+ end
+ else
+ -- normally a bug
+ end
+ else
+ -- normally a bug
+ end
+end
+
+references.enhance = enhancereference
+
+-- implement {
+-- name = "enhancereference",
+-- arguments = "2 strings",
+-- actions = function(prefix,tag)
+-- enhancereference { prefix = prefix, tag = tag }
+-- end,
+-- }
+
+implement {
+ name = "deferredenhancereference",
+ arguments = "2 strings",
+ protected = true,
+ actions = function(prefix,tag)
+ ctx_latelua { action = enhancereference, prefix = prefix, tag = tag }
+ end,
+}
+
+-- -- -- related to strc-ini.lua -- -- --
+
+-- no metatable here .. better be sparse
+
+local function register_from_list(collected,derived,pages,sections)
+ local derived_g = derived[""] -- global
+ local derived_p = nil
+ local derived_c = nil
+ local prefix = nil
+ local component = nil
+ local entry = nil
+ if not derived_g then
+ derived_g = { }
+ derived[""] = derived_g
+ end
+ local function action(s)
+ if trace_referencing then
+ report_references("list entry %a provides %a reference %a on realpage %a",i,kind,s,realpage)
+ end
+ if derived_p and not derived_p[s] then
+ derived_p[s] = entry
+ end
+ if derived_c and not derived_c[s] then
+ derived_c[s] = entry
+ end
+ if not derived_g[s] then
+ derived_g[s] = entry -- first wins
+ end
+ end
+ for i=1,#collected do
+ entry = collected[i]
+ local metadata = entry.metadata
+ if metadata then
+ local kind = metadata.kind -- why this check
+ if kind then
+ local references = entry.references
+ if references then
+ local reference = references.reference
+ if reference and reference ~= "" then
+ local realpage = references.realpage
+ if realpage then
+ prefix = references.prefix
+ component = references.component
+ if prefix and prefix ~= "" then
+ derived_p = derived[prefix]
+ if not derived_p then
+ derived_p = { }
+ derived[prefix] = derived_p
+ end
+ end
+ if component and component ~= "" and component ~= prefix then
+ derived_c = derived[component]
+ if not derived_c then
+ derived_c = { }
+ derived[component] = derived_c
+ end
+ end
+ process_settings(reference,action)
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+references.registerfromlist = function(collected,pages,sections)
+ register_from_list(collected,derived,pages,sections)
+end
+
+references.registerinitializer(function() register_from_list(lists.collected,derived) end)
+
+-- tracing
+
+local function collectbypage(tracedpages)
+ -- lists
+ do
+ local collected = structures.lists.collected
+ local data = nil
+ local function action(reference)
+ local prefix = data.prefix
+ local component = data.component
+ local realpage = data.realpage
+ if realpage then
+ local pagelist = rawget(tracedpages,realpage)
+ local internal = data.internal or 0
+ local prefix = (prefix ~= "" and prefix) or (component ~= "" and component) or ""
+ local pagedata = { prefix, reference, internal }
+ if pagelist then
+ pagelist[#pagelist+1] = pagedata
+ else
+ tracedpages[realpage] = { pagedata }
+ end
+ if internal > 0 then
+ data.usedprefix = prefix
+ end
+ end
+ end
+ for i=1,#collected do
+ local entry = collected[i]
+ local metadata = entry.metadata
+ if metadata and metadata.kind then
+ data = entry.references
+ if data then
+ local reference = data.reference
+ if reference and reference ~= "" then
+ process_settings(reference,action)
+ end
+ end
+ end
+ end
+ end
+ -- references
+ do
+ for prefix, list in next, collected do
+ for reference, entry in next, list do
+ local data = entry.references
+ if data then
+ local realpage = data.realpage
+ local internal = data.internal or 0
+ local pagelist = rawget(tracedpages,realpage)
+ local pagedata = { prefix, reference, internal }
+ if pagelist then
+ pagelist[#pagelist+1] = pagedata
+ else
+ tracedpages[realpage] = { pagedata }
+ end
+ if internal > 0 then
+ data.usedprefix = prefix
+ end
+ end
+ end
+ end
+ end
+end
+
+references.tracedpages = table.setmetatableindex(allocate(),function(t,k)
+ if collectbypage then
+ collectbypage(t)
+ collectbypage = nil
+ end
+ return rawget(t,k)
+end)
+
+-- urls
+
+local urls = references.urls or { }
+references.urls = urls
+local urldata = urls.data or { }
+urls.data = urldata
+
+local p_untexurl = Cs ( (
+ P("\\")/"" * (P("%")/"%%" + P(1))
+ + P(" ")/"%%20"
+ + P(1)
+)^1 )
+
+function urls.untex(url)
+ return lpegmatch(p_untexurl,url) or url
+end
+
+function urls.define(name,url,file,description)
+ if name and name ~= "" then
+ -- url = lpegmatch(replacer,url)
+ urldata[name] = { url or "", file or "", description or url or file or ""}
+ end
+end
+
+function urls.get(name)
+ local u = urldata[name]
+ if u then
+ local url, file = u[1], u[2]
+ if file and file ~= "" then
+ return formatters["%s/%s"](url,file)
+ else
+ return url
+ end
+ end
+end
+
+function urls.found(name)
+ return urldata[name]
+end
+
+local function geturl(name)
+ local url = urls.get(name)
+ if url and url ~= "" then
+ ctx_pushcatcodes(txtcatcodes)
+ context(url)
+ ctx_popcatcodes()
+ end
+end
+
+implement {
+ name = "doifelseurldefined",
+ actions = { urls.found, commands.doifelse },
+ arguments = "string"
+}
+
+implement {
+ name = "useurl",
+ actions = urls.define,
+ arguments = "4 strings",
+}
+
+implement {
+ name = "geturl",
+ actions = geturl,
+ arguments = "string",
+}
+
+-- files
+
+local files = references.files or { }
+references.files = files
+local filedata = files.data or { }
+files.data = filedata
+
+function files.define(name,file,description)
+ if name and name ~= "" then
+ filedata[name] = { file or "", description or file or "" }
+ end
+end
+
+function files.get(name,method,space) -- method: none, before, after, both, space: yes/no
+ local f = filedata[name]
+ if f then
+ context(f[1])
+ end
+end
+
+function files.found(name)
+ return filedata[name]
+end
+
+local function getfile(name)
+ local fil = files.get(name)
+ if fil and fil ~= "" then
+ ctx_pushcatcodes(txtcatcodes)
+ context(fil)
+ ctx_popcatcodes()
+ end
+end
+
+implement {
+ name = "doifelsefiledefined",
+ actions = { files.found, commands.doifelse },
+ arguments = "string"
+}
+
+implement {
+ name = "usefile",
+ actions = files.define,
+ arguments = "3 strings"
+}
+
+implement {
+ name = "getfile",
+ actions = getfile,
+ arguments = "string"
+}
+
+-- helpers
+
+function references.checkedfile(whatever) -- return whatever if not resolved
+ if whatever then
+ local w = filedata[whatever]
+ if w then
+ return w[1]
+ else
+ return whatever
+ end
+ end
+end
+
+function references.checkedurl(whatever) -- return whatever if not resolved
+ if whatever then
+ local w = urldata[whatever]
+ if w then
+ local u, f = w[1], w[2]
+ if f and f ~= "" then
+ return u .. "/" .. f
+ else
+ return u
+ end
+ else
+ return whatever
+ end
+ end
+end
+
+function references.checkedfileorurl(whatever,default) -- return nil, nil if not resolved
+ if whatever then
+ local w = filedata[whatever]
+ if w then
+ return w[1], nil
+ else
+ local w = urldata[whatever]
+ if w then
+ local u, f = w[1], w[2]
+ if f and f ~= "" then
+ return nil, u .. "/" .. f
+ else
+ return nil, u
+ end
+ end
+ end
+ end
+ return default
+end
+
+-- programs
+
+local programs = references.programs or { }
+references.programs = programs
+local programdata = programs.data or { }
+programs.data = programdata
+
+function programs.define(name,file,description)
+ if name and name ~= "" then
+ programdata[name] = { file or "", description or file or ""}
+ end
+end
+
+function programs.get(name)
+ local f = programdata[name]
+ return f and f[1]
+end
+
+function references.checkedprogram(whatever) -- return whatever if not resolved
+ if whatever then
+ local w = programdata[whatever]
+ if w then
+ return w[1]
+ else
+ return whatever
+ end
+ end
+end
+
+implement {
+ name = "defineprogram",
+ actions = programs.define,
+ arguments = "3 strings",
+}
+
+local function getprogram(name)
+ local p = programdata[name]
+ if p then
+ context(p[1])
+ end
+end
+
+implement {
+ name = "getprogram",
+ actions = getprogram,
+ arguments = "string"
+}
+
+-- shared by urls and files
+
+function references.from(name)
+ local u = urldata[name]
+ if u then
+ local url, file, description = u[1], u[2], u[3]
+ if description ~= "" then
+ return description
+ -- ok
+ elseif file and file ~= "" then
+ return url .. "/" .. file
+ else
+ return url
+ end
+ else
+ local f = filedata[name]
+ if f then
+ local file, description = f[1], f[2]
+ if description ~= "" then
+ return description
+ else
+ return file
+ end
+ end
+ end
+end
+
+local function from(name)
+ local u = urldata[name]
+ if u then
+ local url, file, description = u[1], u[2], u[3]
+ if description ~= "" then
+ ctx_dofromurldescription(description)
+ -- ok
+ elseif file and file ~= "" then
+ ctx_dofromurlliteral(url .. "/" .. file)
+ else
+ ctx_dofromurlliteral(url)
+ end
+ else
+ local f = filedata[name]
+ if f then
+ local file, description = f[1], f[2]
+ if description ~= "" then
+ ctx_dofromfiledescription(description)
+ else
+ ctx_dofromfileliteral(file)
+ end
+ end
+ end
+end
+
+implement {
+ name = "from",
+ actions = from,
+ arguments = "string"
+}
+
+function references.define(prefix,reference,list)
+ local d = defined[prefix] if not d then d = { } defined[prefix] = d end
+ d[reference] = list
+end
+
+function references.reset(prefix,reference)
+ local d = defined[prefix]
+ if d then
+ d[reference] = nil
+ end
+end
+
+implement {
+ name = "definereference",
+ actions = references.define,
+ arguments = "3 strings",
+}
+
+implement {
+ name = "resetreference",
+ actions = references.reset,
+ arguments = "2 strings",
+}
+
+setmetatableindex(defined,"table")
+
+local function resolve(prefix,reference,args,set) -- we start with prefix,reference
+ if reference and reference ~= "" then
+ if not set then
+ set = { prefix = prefix, reference = reference }
+ else
+ if not set.reference then set.reference = reference end
+ if not set.prefix then set.prefix = prefix end
+ end
+ -- local r = settings_to_array(reference)
+ local r = settings_to_table(reference) -- maybe option to honor () []
+ for i=1,#r do
+ local ri = r[i]
+ local d = defined[prefix][ri] or defined[""][ri]
+ if d then
+ d = getexpansion(d)
+ resolve(prefix,d,nil,set)
+ else
+ local var = splitreference(ri)
+ if var then
+ var.reference = ri
+ local vo, vi = var.outer, var.inner
+ -- we catch this here .. it's a way to pass references with commas
+ if vi == "name" then
+ local arguments = var.arguments
+ if arguments then
+ vi = arguments
+ var.inner = arguments
+ var.reference = arguments
+ var.arguments = nil
+ end
+ elseif var.special == "name" then
+ local operation = var.operation
+ if operation then
+ vi = operation
+ var.inner = operation
+ var.reference = operation
+ var.operation = nil
+ var.special = nil
+ end
+ end
+ -- end of catch
+ if not vo and vi then
+ -- to be checked
+ d = defined[prefix][vi] or defined[""][vi]
+ --
+ if d then
+ d = getexpansion(d)
+ resolve(prefix,d,var.arguments,set) -- args can be nil
+ else
+ if args then var.arguments = args end
+ set[#set+1] = var
+ end
+ else
+ if args then var.arguments = args end
+ set[#set+1] = var
+ end
+ else
+ -- report_references("funny pattern %a",ri)
+ end
+ end
+ end
+ return set
+ else
+ return { }
+ end
+end
+
+-- prefix == "" is valid prefix which saves multistep lookup
+
+references.currentset = nil
+
+local externals = { }
+
+-- we have prefixes but also components:
+--
+-- : prefix
+-- :: always external
+-- ::: internal (for products) or external (for components)
+
+local function loadexternalreferences(name,utilitydata)
+ local struc = utilitydata.structures
+ if struc then
+ local external = struc.references.collected -- direct references
+ local lists = struc.lists.collected -- indirect references (derived)
+ local pages = struc.pages.collected -- pagenumber data
+ local sections = struc.sections.collected
+ -- a bit weird one, as we don't have the externals in the collected
+ for prefix, set in next, external do
+ if prefix == "" then
+ prefix = name -- this can clash!
+ end
+ for reference, data in next, set do
+ if trace_importing then
+ report_importing("registering %a reference, kind %a, name %a, prefix %a, reference %a",
+ "external","regular",name,prefix,reference)
+ end
+ -- weird code
+ -- local section = reference.section
+ -- local realpage = reference.realpage
+ -- if section then
+ -- reference.sectiondata = lists[section]
+ -- end
+ -- if realpage then
+ -- reference.pagedata = pages[realpage]
+ -- end
+ -- better?
+ local references = data.references -- hm. plural
+ if references then
+ local section = references.section
+ local realpage = references.realpage
+ if not references.sectiondata then
+ references.sectiondata = sections[references.section or false]
+ end
+ if not references.pagedata then
+ references.pagedata = pages[references.realpage or false]
+ end
+ end
+ end
+ end
+ -- maybe store utilitydata in metatable so that we can access all
+ for i=1,#lists do
+ local entry = lists[i]
+ local metadata = entry.metadata
+ local references = entry.references
+ if metadata and references then
+ local reference = references.reference
+ if reference and reference ~= "" then
+ local kind = metadata.kind
+ local realpage = references.realpage
+ if kind and realpage then
+ -- quite likely already done so this might go
+ if pages and not references.pagedata then
+ references.pagedata = pages[references.realpage or false]
+ end
+ if sections and not references.sectiondata then
+ references.sectiondata = sections[references.section or false]
+ end
+ --
+ local prefix = references.prefix or ""
+ if prefix == "" then
+ prefix = name -- this can clash!
+ end
+ local target = external[prefix]
+ if not target then
+ target = { }
+ external[prefix] = target
+ end
+ -- for s in gmatch(reference,"%s*([^,]+)") do
+ -- if trace_importing then
+ -- report_importing("registering %s reference, kind %a, name %a, prefix %a, reference %a",
+ -- "external",kind,name,prefix,s)
+ -- end
+ -- target[s] = target[s] or entry
+ -- end
+ local function action(s)
+ if trace_importing then
+ report_importing("registering %s reference, kind %a, name %a, prefix %a, reference %a",
+ "external",kind,name,prefix,s)
+ end
+ target[s] = target[s] or entry
+ end
+ process_settings(reference,action)
+ end
+ end
+ end
+ end
+ externals[name] = external
+ return external
+ end
+end
+
+local externalfiles = { }
+
+setmetatableindex(externalfiles, function(t,k)
+ local v = filedata[k]
+ if not v then
+ v = { k, k }
+ end
+ externalfiles[k] = v
+ return v
+end)
+
+setmetatableindex(externals, function(t,k) -- either or not automatically
+ local filename = externalfiles[k][1] -- filename
+ local fullname = file.replacesuffix(filename,"tuc")
+ if lfs.isfile(fullname) then -- todo: use other locator
+ local utilitydata = job.loadother(fullname)
+ if utilitydata then
+ local external = loadexternalreferences(k,utilitydata)
+ t[k] = external or false
+ return external
+ end
+ end
+ t[k] = false
+ return false
+end)
+
+local productdata = allocate {
+ productreferences = { },
+ componentreferences = { },
+ components = { },
+}
+
+references.productdata = productdata
+
+local function loadproductreferences(productname,componentname,utilitydata)
+ local struc = utilitydata.structures
+ if struc then
+ local productreferences = struc.references.collected -- direct references
+ local lists = struc.lists.collected -- indirect references (derived)
+ local pages = struc.pages.collected -- pagenumber data
+ local sections = struc.sections.collected -- section number data
+ -- we use indirect tables to save room but as they are eventually
+ -- just references we resolve them to data here (the mechanisms
+ -- that use this data check for indirectness)
+ for prefix, set in next, productreferences do
+ for reference, data in next, set do
+ if trace_importing then
+ report_importing("registering %s reference, kind %a, name %a, prefix %a, reference %a",
+ "product","regular",productname,prefix,reference)
+ end
+ if not reference.sectiondata then
+ reference.sectiondata = sections[reference.section or false]
+ end
+ if not reference.pagedata then
+ reference.pagedata = pages[reference.realpage or false]
+ end
+ end
+ end
+ --
+ local componentreferences = { }
+ for i=1,#lists do
+ local entry = lists[i]
+ local metadata = entry.metadata
+ local references = entry.references
+ if metadata and references then
+ local reference = references.reference
+ if reference and reference ~= "" then
+ local kind = metadata.kind
+ local realpage = references.realpage
+ if kind and realpage then
+ local prefix = references.prefix or ""
+ local component = references.component
+ local ctarget, ptarget
+ if not component or component == componentname then
+ -- skip
+ else
+ -- one level up
+ local external = componentreferences[component]
+ if not external then
+ external = { }
+ componentreferences[component] = external
+ end
+ if component == prefix then
+ prefix = ""
+ end
+ ctarget = external[prefix]
+ if not ctarget then
+ ctarget = { }
+ external[prefix] = ctarget
+ end
+ end
+ ptarget = productreferences[prefix]
+ if not ptarget then
+ ptarget = { }
+ productreferences[prefix] = ptarget
+ end
+ local function action(s)
+ if ptarget then
+ if trace_importing then
+ report_importing("registering %s reference, kind %a, name %a, prefix %a, reference %a",
+ "product",kind,productname,prefix,s)
+ end
+ ptarget[s] = ptarget[s] or entry
+ end
+ if ctarget then
+ if trace_importing then
+ report_importing("registering %s reference, kind %a, name %a, prefix %a, referenc %a",
+ "component",kind,productname,prefix,s)
+ end
+ ctarget[s] = ctarget[s] or entry
+ end
+ end
+ process_settings(reference,action)
+ end
+ end
+ end
+ end
+ productdata.productreferences = productreferences -- not yet used
+ productdata.componentreferences = componentreferences
+ end
+end
+
+local function loadproductvariables(product,component,utilitydata)
+ local struc = utilitydata.structures
+ if struc then
+ local lists = struc.lists and struc.lists.collected
+ if lists then
+ local pages = struc.pages and struc.pages.collected
+ for i=1,#lists do
+ local li = lists[i]
+ if li.metadata.kind == "section" and li.references.component == component then
+ local firstsection = li
+ if firstsection.numberdata then
+ local numbers = firstsection.numberdata.numbers
+ if numbers then
+ if trace_importing then
+ report_importing("initializing section number to %:t",numbers)
+ end
+ productdata.firstsection = firstsection
+ structures.documents.preset(numbers)
+ end
+ end
+ if pages and firstsection.references then
+ local firstpage = pages[firstsection.references.realpage]
+ local number = firstpage and firstpage.number
+ if number then
+ if trace_importing then
+ report_importing("initializing page number to %a",number)
+ end
+ productdata.firstpage = firstpage
+ counters.set("userpage",1,number)
+ end
+ end
+ break
+ end
+ end
+ end
+ end
+end
+
+local function componentlist(tree,target)
+ local branches = tree and tree.branches
+ if branches then
+ for i=1,#branches do
+ local branch = branches[i]
+ local type = branch.type
+ if type == "component" then
+ if target then
+ target[#target+1] = branch.name
+ else
+ target = { branch.name }
+ end
+ elseif type == "product" or type == "component" then
+ target = componentlist(branch,target)
+ end
+ end
+ end
+ return target
+end
+
+local function loadproductcomponents(product,component,utilitydata)
+ local job = utilitydata.job
+ productdata.components = componentlist(job and job.structure and job.structure.collected) or { }
+end
+
+references.registerinitializer(function(tobesaved,collected)
+ -- not that much related to tobesaved or collected
+ productdata.components = componentlist(job.structure.collected) or { }
+end)
+
+function references.loadpresets(product,component) -- we can consider a special components hash
+ if product and component and product~= "" and component ~= "" and not productdata.product then -- maybe: productdata.filename ~= filename
+ productdata.product = product
+ productdata.component = component
+ -- todo: use other locator
+ local fullname = file.replacesuffix(product,"tuc")
+ if lfs.isfile(fullname) then
+ local utilitydata = job.loadother(fullname)
+ if utilitydata then
+ if trace_importing then
+ report_importing("loading references for component %a of product %a from %a",component,product,fullname)
+ end
+ loadproductvariables (product,component,utilitydata)
+ loadproductreferences(product,component,utilitydata)
+ loadproductcomponents(product,component,utilitydata)
+ end
+ end
+ end
+end
+
+references.productdata = productdata
+
+local useproduct = commands.useproduct
+
+if useproduct then
+
+ local function newuseproduct(product)
+ useproduct(product)
+ if texconditionals.autocrossfilereferences then
+ local component = justacomponent()
+ if component then
+ if trace_referencing or trace_importing then
+ report_references("loading presets for component %a of product %a",component,product)
+ end
+ references.loadpresets(product,component)
+ end
+ end
+ end
+
+ implement {
+ name = "useproduct",
+ actions = newuseproduct,
+ arguments = "optional",
+ overload = true,
+ }
+
+end
+
+-- productdata.firstsection.numberdata.numbers
+-- productdata.firstpage.number
+
+local function report_identify_special(set,var,i,type)
+ local reference = set.reference
+ local prefix = set.prefix or ""
+ local special = var.special
+ local error = var.error
+ local kind = var.kind
+ if error then
+ report_identifying("type %a, reference %a, index %a, prefix %a, special %a, error %a",type,reference,i,prefix,special,error)
+ else
+ report_identifying("type %a, reference %a, index %a, prefix %a, special %a, kind %a",type,reference,i,prefix,special,kind)
+ end
+end
+
+local function report_identify_arguments(set,var,i,type)
+ local reference = set.reference
+ local prefix = set.prefix or ""
+ local arguments = var.arguments
+ local error = var.error
+ local kind = var.kind
+ if error then
+ report_identifying("type %a, reference %a, index %a, prefix %a, arguments %a, error %a",type,reference,i,prefix,arguments,error)
+ else
+ report_identifying("type %a, reference %a, index %a, prefix %a, arguments %a, kind %a",type,reference,i,prefix,arguments,kind)
+ end
+end
+
+local function report_identify_outer(set,var,i,type)
+ local reference = set.reference
+ local prefix = set.prefix or ""
+ local outer = var.outer
+ local error = var.error
+ local kind = var.kind
+ if outer then
+ if error then
+ report_identifying("type %a, reference %a, index %a, prefix %a, outer %a, error %a",type,reference,i,prefix,outer,error)
+ else
+ report_identifying("type %a, reference %a, index %a, prefix %a, outer %a, kind %a",type,reference,i,prefix,outer,kind)
+ end
+ else
+ if error then
+ report_identifying("type %a, reference %a, index %a, prefix %a, error %a",type,reference,i,prefix,error)
+ else
+ report_identifying("type %a, reference %a, index %a, prefix %a, kind %a",type,reference,i,prefix,kind)
+ end
+ end
+end
+
+local function identify_special(set,var,i)
+ local special = var.special
+ local s = specials[special]
+ if s then
+ local outer = var.outer
+ local operation = var.operation
+ local arguments = var.arguments
+ if outer then
+ if operation then
+ -- special(outer::operation)
+ var.kind = "special outer with operation"
+ else
+ -- special()
+ var.kind = "special outer"
+ end
+ var.f = outer
+ elseif operation then
+ if arguments then
+ -- special(operation{argument,argument})
+ var.kind = "special operation with arguments"
+ else
+ -- special(operation)
+ var.kind = "special operation"
+ end
+ else
+ -- special()
+ var.kind = "special"
+ end
+ if trace_identifying then
+ report_identify_special(set,var,i,"1a")
+ end
+ else
+ var.error = "unknown special"
+ end
+ return var
+end
+
+local function identify_arguments(set,var,i)
+ local s = specials[var.inner]
+ if s then
+ -- inner{argument}
+ var.kind = "special operation with arguments"
+ else
+ var.error = "unknown inner or special"
+ end
+ if trace_identifying then
+ report_identify_arguments(set,var,i,"3a")
+ end
+ return var
+end
+
+-- needs checking: if we don't do too much (redundant) checking now
+-- inner ... we could move the prefix logic into the parser so that we have 'm for each entry
+-- foo:bar -> foo == prefix (first we try the global one)
+-- -:bar -> ignore prefix
+
+local function finish_inner(var,p,i)
+ var.kind = "inner"
+ var.i = i
+ var.p = p
+ var.r = (i.references and i.references.realpage) or (i.pagedata and i.pagedata.realpage) or 1
+ return var
+end
+
+local function identify_inner(set,var,prefix,collected,derived)
+ local inner = var.inner
+ -- the next test is a safeguard when references are auto loaded from outer
+ if not inner or inner == "" then
+ return false
+ end
+ local splitprefix, splitinner = lpegmatch(prefixsplitter,inner)
+ if splitprefix and splitinner then
+ -- we check for a prefix:reference instance in the regular set of collected
+ -- references; a special case is -: which forces a lookup in the global list
+ if splitprefix == "-" then
+ local i = collected[""]
+ if i then
+ i = i[splitinner]
+ if i then
+ return finish_inner(var,"",i)
+ end
+ end
+ end
+ local i = collected[splitprefix]
+ if i then
+ i = i[splitinner]
+ if i then
+ return finish_inner(var,splitprefix,i)
+ end
+ end
+ if derived then
+ -- next we look for a reference in the regular set of collected references
+ -- using the prefix that is active at this moment (so we overload the given
+ -- these are taken from other data structures (like lists)
+ if splitprefix == "-" then
+ local i = derived[""]
+ if i then
+ i = i[splitinner]
+ if i then
+ return finish_inner(var,"",i)
+ end
+ end
+ end
+ local i = derived[splitprefix]
+ if i then
+ i = i[splitinner]
+ if i then
+ return finish_inner(var,splitprefix,i)
+ end
+ end
+ end
+ end
+ -- we now ignore the split prefix and treat the whole inner as a potential
+ -- reference into the global list
+ local i = collected[prefix]
+ if i then
+ i = i[inner]
+ if i then
+ return finish_inner(var,prefix,i)
+ end
+ end
+ if not i and derived then
+ -- and if not found we look in the derived references
+ local i = derived[prefix]
+ if i then
+ i = i[inner]
+ if i then
+ return finish_inner(var,prefix,i)
+ end
+ end
+ end
+ return false
+end
+
+local function unprefixed_inner(set,var,prefix,collected,derived,tobesaved)
+ local inner = var.inner
+ local s = specials[inner]
+ if s then
+ var.kind = "special"
+ else
+ local i = (collected and collected[""] and collected[""][inner]) or
+ (derived and derived [""] and derived [""][inner]) or
+ (tobesaved and tobesaved[""] and tobesaved[""][inner])
+ if i then
+ var.kind = "inner"
+ var.p = ""
+ var.i = i
+ var.r = (i.references and i.references.realpage) or (i.pagedata and i.pagedata.realpage) or 1
+ else
+ var.error = "unknown inner or special"
+ end
+ end
+ return var
+end
+
+local function identify_outer(set,var,i)
+ local outer = var.outer
+ local inner = var.inner
+ local external = externals[outer]
+ if external then
+ local v = identify_inner(set,var,"",external)
+ if v then
+ v.kind = "outer with inner"
+ set.external = true
+ if trace_identifying then
+ report_identify_outer(set,v,i,"2a")
+ end
+ return v
+ end
+-- weird too (we really need to check how this table is build
+ local v = identify_inner(set,var,var.outer,external)
+ if v then
+ v.kind = "outer with inner"
+ set.external = true
+ if trace_identifying then
+ report_identify_outer(set,v,i,"2c")
+ end
+ return v
+ end
+--
+ -- somewhat rubish: we use outer as first step in the externals table so it makes no
+ -- sense to have it as prefix so the next could be an option
+ local external = external[""]
+ if external then
+ local v = identify_inner(set,var,var.outer,external)
+ if v then
+ v.kind = "outer with inner"
+ set.external = true
+ if trace_identifying then
+ report_identify_outer(set,v,i,"2b")
+ end
+ return v
+ end
+ end
+ end
+ local external = productdata.componentreferences[outer]
+ if external then
+ local v = identify_inner(set,var,"",external)
+ if v then
+ v.kind = "outer with inner"
+ set.external = true
+ if trace_identifying then
+ report_identify_outer(set,v,i,"2c")
+ end
+ return v
+ end
+ end
+ local external = productdata.productreferences[outer]
+ if external then
+ local vi = external[inner]
+ if vi then
+ var.kind = "outer with inner"
+ var.i = vi
+ set.external = true
+ if trace_identifying then
+ report_identify_outer(set,var,i,"2d")
+ end
+ return var
+ end
+ end
+ -- the rest
+ local special = var.special
+ local arguments = var.arguments
+ local operation = var.operation
+ if inner then
+ -- tricky: in this case we can only use views when we're sure that all inners
+ -- are flushed in the outer document so that should become an option
+ if arguments then
+ -- outer::inner{argument}
+ var.kind = "outer with inner with arguments"
+ else
+ -- outer::inner
+ var.kind = "outer with inner"
+ end
+ var.i = inner
+ var.f = outer
+ if type(inner) == "table" then
+ -- can this really happen?
+ var.r = (inner.references and inner.references.realpage) or (inner.pagedata and inner.pagedata.realpage) or 1
+ else
+ var.r = 1
+ end
+ if trace_identifying then
+ report_identify_outer(set,var,i,"2e")
+ end
+ elseif special then
+ local s = specials[special]
+ if s then
+ if operation then
+ if arguments then
+ -- outer::special(operation{argument,argument})
+ var.kind = "outer with special and operation and arguments"
+ else
+ -- outer::special(operation)
+ var.kind = "outer with special and operation"
+ end
+ else
+ -- outer::special()
+ var.kind = "outer with special"
+ end
+ var.f = outer
+ else
+ var.error = "unknown outer with special"
+ end
+ if trace_identifying then
+ report_identify_outer(set,var,i,"2f")
+ end
+ else
+ -- outer::
+ var.kind = "outer"
+ var.f = outer
+ if trace_identifying then
+ report_identify_outer(set,var,i,"2g")
+ end
+ end
+ return var
+end
+
+-- todo: avoid copy
+
+local function identify_inner_or_outer(set,var,i)
+ -- here we fall back on product data
+ local inner = var.inner
+ if inner and inner ~= "" then
+
+ -- first we look up in collected and derived using the current prefix
+
+ local prefix = set.prefix
+
+ local v = identify_inner(set,var,set.prefix,collected,derived)
+ if v then
+ if trace_identifying then
+ report_identify_outer(set,v,i,"4a")
+ end
+ return v
+ end
+
+ -- nest we look at each component (but we can omit the already consulted one
+
+ local jobstructure = job.structure
+ local components = jobstructure and jobstructure.components
+ if components then
+ for c=1,#components do
+ local component = components[c]
+ if component ~= prefix then
+ local v = identify_inner(set,var,component,collected,derived)
+ if v then
+ if trace_identifying then
+ report_identify_outer(set,var,i,"4b")
+ end
+ return v
+ end
+ end
+ end
+ end
+
+ -- as a last resort we will consult the global lists
+
+ local v = unprefixed_inner(set,var,"",collected,derived,tobesaved)
+ if v then
+ if trace_identifying then
+ report_identify_outer(set,v,i,"4c")
+ end
+ return v
+ end
+
+ -- not it gets bad ... we need to look in external files ... keep in mind that
+ -- we can best use explicit references for this ... we might issue a warning
+
+ local componentreferences = productdata.componentreferences
+ local productreferences = productdata.productreferences
+ local components = productdata.components
+ if components and componentreferences then
+ for c=1,#components do
+ local component = components[c]
+ local data = componentreferences[component]
+ if data then
+ local d = data[""]
+ local vi = d and d[inner]
+ if vi then
+ var.outer = component
+ var.i = vi
+ var.kind = "outer with inner"
+ set.external = true
+ if trace_identifying then
+ report_identify_outer(set,var,i,"4d")
+ end
+ return var
+ end
+ end
+ end
+ end
+ local component, inner = lpegmatch(componentsplitter,inner)
+ if component then
+ local data = componentreferences and componentreferences[component]
+ if data then
+ local d = data[""]
+ local vi = d and d[inner]
+ if vi then
+ var.inner = inner
+ var.outer = component
+ var.i = vi
+ var.kind = "outer with inner"
+ set.external = true
+ if trace_identifying then
+ report_identify_outer(set,var,i,"4e")
+ end
+ return var
+ end
+ end
+ local data = productreferences and productreferences[component]
+ if data then
+ local vi = data[inner]
+ if vi then
+ var.inner = inner
+ var.outer = component
+ var.i = vi
+ var.kind = "outer with inner"
+ set.external = true
+ if trace_identifying then
+ report_identify_outer(set,var,i,"4f")
+ end
+ return var
+ end
+ end
+ end
+ var.error = "unknown inner"
+ else
+ var.error = "no inner"
+ end
+ if trace_identifying then
+ report_identify_outer(set,var,i,"4g")
+ end
+ return var
+end
+
+local function identify_inner_component(set,var,i)
+ -- we're in a product (maybe ignore when same as component)
+ local component = var.component
+ local v = identify_inner(set,var,component,collected,derived)
+ if not v then
+ var.error = "unknown inner in component"
+ end
+ if trace_identifying then
+ report_identify_outer(set,var,i,"5a")
+ end
+ return var
+end
+
+local function identify_outer_component(set,var,i)
+ local component = var.component
+ local inner = var.inner
+ local data = productdata.componentreferences[component]
+ if data then
+ local d = data[""]
+ local vi = d and d[inner]
+ if vi then
+ var.inner = inner
+ var.outer = component
+ var.i = vi
+ var.kind = "outer with inner"
+ set.external = true
+ if trace_identifying then
+ report_identify_outer(set,var,i,"6a")
+ end
+ return var
+ end
+ end
+ local data = productdata.productreferences[component]
+ if data then
+ local vi = data[inner]
+ if vi then
+ var.inner = inner
+ var.outer = component
+ var.i = vi
+ var.kind = "outer with inner"
+ set.external = true
+ if trace_identifying then
+ report_identify_outer(set,var,i,"6b")
+ end
+ return var
+ end
+ end
+ var.error = "unknown component"
+ if trace_identifying then
+ report_identify_outer(set,var,i,"6c")
+ end
+ return var
+end
+
+local nofidentified = 0
+
+local function identify(prefix,reference)
+ if not reference then
+ prefix, reference = "", prefix
+ end
+ local set = resolve(prefix,reference)
+ local bug = false
+ nofidentified = nofidentified + 1
+ set.n = nofidentified
+ for i=1,#set do
+ local var = set[i]
+ local spe = var.special
+ local fnc = functions[spe]
+ if fnc then
+ var = fnc(var) or { error = "invalid special function" }
+ elseif spe then
+ var = identify_special(set,var,i)
+ elseif var.outer then
+ var = identify_outer(set,var,i)
+ elseif var.arguments then
+ var = identify_arguments(set,var,i)
+ elseif not var.component then
+ var = identify_inner_or_outer(set,var,i)
+ elseif productcomponent() then
+ var = identify_inner_component(set,var,i)
+ else
+ var = identify_outer_component(set,var,i)
+ end
+ set[i] = var
+ bug = bug or var.error
+ end
+ references.currentset = mark(set) -- mark, else in api doc
+ if trace_analyzing then
+ report_references(table.serialize(set,reference))
+ end
+ return set, bug
+end
+
+references.identify = identify
+
+local unknowns, nofunknowns, f_valid = { }, 0, formatters["[%s][%s]"]
+
+function references.valid(prefix,reference,specification,silent)
+ local set, bug = identify(prefix,reference)
+ local unknown = bug or #set == 0
+ if unknown then
+ currentreference = nil -- will go away
+ local str = f_valid(prefix,reference)
+ local u = unknowns[str]
+ if not u then
+ if somefound and not silent then
+ interfaces.showmessage("references",1,str) -- 1 = unknown, 4 = illegal
+ end
+ unknowns[str] = 1
+ nofunknowns = nofunknowns + 1
+ else
+ unknowns[str] = u + 1
+ end
+ else
+ set.highlight = specification.highlight
+ set.newwindow = specification.newwindow
+ set.layer = specification.layer
+ currentreference = set[1]
+ end
+ -- we can do the expansion here which saves a call
+ return not unknown
+end
+
+function references.checked(prefix,reference,specification)
+ return references.valid(prefix,reference,specification,true)
+end
+
+implement {
+ name = "doifelsereference",
+ actions = { references.valid, commands.doifelse },
+ arguments = {
+ "string",
+ "string",
+ {
+ { "highlight", "boolean" },
+ { "newwindow", "boolean" },
+ { "layer" },
+ }
+ }
+}
+
+implement {
+ name = "doifelsereferencechecked",
+ actions = { references.checked, commands.doifelse },
+ arguments = {
+ "string",
+ "string",
+ {
+ { "highlight", "boolean" },
+ { "newwindow", "boolean" },
+ { "layer" },
+ }
+ }
+}
+
+logs.registerfinalactions(function()
+ if nofunknowns > 0 then
+ statistics.register("cross referencing", function()
+ return format("%s identified, %s unknown",nofidentified,nofunknowns)
+ end)
+ local sortedhash = table.sortedhash
+ logs.startfilelogging(report,"missing references")
+ for k, v in table.sortedhash(unknowns) do
+ report("%4i %s",v,k)
+ end
+ logs.stopfilelogging()
+ if logs.loggingerrors() then
+ logs.starterrorlogging(report,"missing references")
+ for k, v in table.sortedhash(unknowns) do
+ report("%4i %s",v,k)
+ end
+ logs.stoperrorlogging()
+ end
+ end
+end)
+
+-- The auto method will try to avoid named internals in a clever way which
+-- can make files smaller without sacrificing external references. Some of
+-- the housekeeping happens the backend side.
+
+local innermethod = v_auto -- only page|auto now
+local outermethod = v_auto -- only page|auto now
+local defaultinnermethod = defaultinnermethod
+local defaultoutermethod = defaultoutermethod
+references.innermethod = innermethod -- don't mess with this one directly
+references.outermethod = outermethod -- don't mess with this one directly
+
+function references.setlinkmethod(inner,outer)
+ if not outer and type(inner) == "string" then
+ local m = settings_to_array(inner)
+ inner = m[1]
+ outer = m[2] or v_auto
+ end
+ if toboolean(inner) or inner == v_page or inner == v_yes then
+ innermethod = v_page
+ elseif inner == v_name then
+ innermethod = v_name
+ else
+ innermethod = v_auto
+ end
+ if toboolean(outer) or outer == v_page or outer == v_yes then
+ outermethod = v_page
+ elseif inner == v_name then
+ outermethod = v_name
+ else
+ outermethod = v_auto
+ end
+ references.innermethod = innermethod
+ references.outermethod = outermethod
+ function references.setlinkmethod()
+ report_references("link method is already set and frozen: inner %a, outer %a",innermethod,outermethod)
+ end
+end
+
+implement {
+ name = "setreferencelinkmethod",
+ actions = references.setlinkmethod,
+ arguments = "string",
+ -- onlyonce = true
+}
+
+function references.getinnermethod()
+ return innermethod or defaultinnermethod
+end
+
+function references.getoutermethod()
+ return outermethod or defaultoutermethod
+end
+
+directives.register("references.linkmethod", function(v) -- page auto
+ references.setlinkmethod(v)
+end)
+
+-- we can call setinternalreference with an already known internal or with
+-- a reference/prefix specification
+
+local destinationattributes = { }
+
+local function setinternalreference(specification)
+ local internal = specification.internal
+ local destination = unsetvalue
+ if innermethod == v_auto or innermethod == v_name then
+ local t = { } -- maybe add to current (now only used for tracing)
+ local tn = 0
+ local reference = specification.reference
+ local view = specification.view
+ if reference then
+ local prefix = specification.prefix
+ if prefix and prefix ~= "" then
+ local prefix = prefix .. ":" -- watch out, : here
+ local function action(ref)
+ tn = tn + 1
+ t[tn] = prefix .. ref
+ end
+ process_settings(reference,action)
+ else
+ local function action(ref)
+ tn = tn + 1
+ t[tn] = ref
+ end
+ process_settings(reference,action)
+ end
+ end
+ -- ugly .. later we decide to ignore it when we have a real one
+ -- but for testing we might want to see them all
+ if internal then
+ if innermethod ~= v_name then -- innermethod == v_auto
+ -- we don't want too many #1 #2 #3 etc
+ tn = tn + 1
+ t[tn] = internal -- when number it's internal
+ end
+ if not view then
+ local i = references.internals[internal]
+ if i then
+ view = i.references.view
+ end
+ end
+ end
+ destination = references.mark(t,nil,nil,view) -- returns an attribute
+ end
+ if internal then -- new
+ destinationattributes[internal] = destination
+ end
+ texsetcount(c_lastdestinationattribute,destination)
+ return destination
+end
+
+local function getinternalreference(internal)
+ return destinationattributes[internal] or 0
+end
+
+references.setinternalreference = setinternalreference
+references.getinternalreference = getinternalreference
+
+implement {
+ name = "setinternalreference",
+ actions = setinternalreference,
+ arguments = {
+ {
+ { "prefix" },
+ { "reference" },
+ { "internal", "integer" },
+ { "view" }
+ }
+ }
+}
+
+-- implement {
+-- name = "getinternalreference",
+-- actions = { getinternalreference, context },
+-- arguments = "integer",
+-- }
+
+function references.setandgetattribute(data) -- maybe do internal automatically here
+ local attr = unsetvalue
+ local mdat = data.metadata
+ local rdat = data.references
+ if mdat and rdat then
+ if not rdat.section then
+ rdat.section = structures.sections.currentid()
+ end
+ local ndat = data.numberdata
+ if ndat then
+ local numbers = ndat.numbers
+ if type(numbers) == "string" then
+ counters.compact(ndat,numbers)
+ end
+ data.numberdata = helpers.simplify(ndat)
+ end
+ local pdat = data.prefixdata
+ if pdat then
+ data.prefixdata = helpers.simplify(pdat)
+ end
+ local udat = data.userdata
+ if type(udat) == "string" then
+ data.userdata = helpers.touserdata(udat)
+ end
+ if not rdat.block then
+ rdat.block = structures.sections.currentblock()
+ end
+ local done = references.set(data) -- we had kind i.e .item -> full
+ if done then
+ attr = setinternalreference {
+ prefix = rdat.prefix,
+ reference = rdat.reference,
+ internal = rdat.internal,
+ view = rdat.view
+ } or unsetvalue
+ end
+ end
+ texsetcount(c_lastdestinationattribute,attr)
+ return attr
+end
+
+implement {
+ name = "setdestinationattribute",
+ actions = references.setandgetattribute,
+ arguments = {
+ {
+ {
+ "references", {
+ { "internal", "integer" },
+ { "block" },
+ { "view" },
+ { "prefix" },
+ { "reference" },
+ },
+ },
+ {
+ "metadata", {
+ { "kind" },
+ { "xmlroot" },
+ { "catcodes", "integer" },
+ },
+ },
+ {
+ "prefixdata", { "*" }
+ },
+ {
+ "numberdata", { "*" }
+ },
+ {
+ "entries", { "*" }
+ },
+ {
+ "userdata"
+ }
+ }
+ }
+}
+
+function references.getinternallistreference(n) -- n points into list (todo: registers)
+ local l = lists.collected[n]
+ local i = l and l.references.internal
+ return i and destinationattributes[i] or 0
+end
+
+function references.getinternalcachedlistreference(n) -- n points into list (todo: registers)
+ local l = lists.cached[n]
+ local i = l and l.references.internal
+ return i and destinationattributes[i] or 0
+end
+
+implement {
+ name = "getinternallistreference",
+ actions = { references.getinternallistreference, context },
+ arguments = "integer"
+}
+
+implement {
+ name = "getinternalcachedlistreference",
+ actions = { references.getinternalcachedlistreference, context },
+ arguments = "integer"
+}
+
+
+--
+
+function references.getcurrentmetadata(tag)
+ local data = currentreference and currentreference.i
+ return data and data.metadata and data.metadata[tag]
+end
+
+implement {
+ name = "getcurrentreferencemetadata",
+ actions = { references.getcurrentmetadata, context },
+ arguments = "string",
+}
+
+local function currentmetadata(tag)
+ local data = currentreference and currentreference.i
+ return data and data.metadata and data.metadata[tag]
+end
+
+references.currentmetadata = currentmetadata
+
+local function getcurrentprefixspec(default)
+ local data = currentreference and currentreference.i
+ local metadata = data and data.metadata
+ return
+ metadata and metadata.kind or "?",
+ metadata and metadata.name or "?",
+ default or "?"
+end
+
+references.getcurrentprefixspec = getcurrentprefixspec
+
+-- implement {
+-- name = "getcurrentprefixspec",
+-- actions = { getcurrentprefixspec, context }, -- returns 3 arguments
+-- arguments = "string",
+-- }
+
+implement {
+ name = "getcurrentprefixspec",
+ actions = function(tag)
+ context("{%s}{%s}{%s}",getcurrentprefixspec(tag))
+ end,
+ arguments = "string",
+}
+
+local genericfilters = { }
+local userfilters = { }
+local textfilters = { }
+local fullfilters = { }
+local sectionfilters = { }
+
+filters.generic = genericfilters
+filters.user = userfilters
+filters.text = textfilters
+filters.full = fullfilters
+filters.section = sectionfilters
+
+local function filterreference(name,prefixspec,numberspec) -- number page title ...
+ local data = currentreference and currentreference.i -- maybe we should take realpage from here
+ if data then
+ if name == "realpage" then
+ local cs = references.analyze() -- normally already analyzed but also sets state
+ context(tonumber(cs.realpage) or 0)
+ else -- assumes data is table
+ local kind = false
+ if type(data) == "string" then
+ -- todo
+ end
+ if type(data) == "table" then
+ kind = data.metadata and data.metadata.kind
+ end
+ if kind then
+ local filter = filters[kind] or genericfilters
+ filter = filter and (filter[name] or filter.unknown or genericfilters[name] or genericfilters.unknown)
+ if filter then
+ if trace_referencing then
+ report_references("name %a, kind %a, using dedicated filter",name,kind)
+ end
+ filter(data,name,prefixspec,numberspec)
+ elseif trace_referencing then
+ report_references("name %a, kind %a, using generic filter",name,kind)
+ end
+ elseif trace_referencing then
+ report_references("name %a, unknown kind",name)
+ end
+ end
+ elseif name == "realpage" then
+ context(0)
+ elseif trace_referencing then
+ report_references("name %a, no reference",name)
+ end
+end
+
+local function filterreferencedefault()
+ return filterreference("default",getcurrentprefixspec("default"))
+end
+
+references.filter = filterreference
+references.filterdefault = filterreferencedefault
+
+implement {
+ name = "filterreference",
+ actions = filterreference,
+ arguments = "string",
+}
+
+implement {
+ name = "filterdefaultreference",
+ actions = filterreference,
+ arguments = {
+ "string", -- 'default'
+ { { "*" } }, -- prefixspec
+ { { "*" } }, -- numberspec
+ }
+}
+
+function genericfilters.title(data)
+ if data then
+ local titledata = data.titledata or data.useddata
+ if titledata then
+ helpers.title(titledata.reference or titledata.title or "?",data.metadata)
+ end
+ end
+end
+
+function genericfilters.text(data)
+ if data then
+ local entries = data.entries or data.useddata
+ if entries then
+ helpers.title(entries.text or "?",data.metadata)
+ end
+ end
+end
+
+function genericfilters.number(data,what,prefixspec,numberspec)
+ if data then
+ numberdata = lists.reordered(data) -- data.numberdata
+ if numberdata then
+ helpers.prefix(data,prefixspec)
+ sections.typesetnumber(numberdata,"number",numberspec,numberdata)
+ else
+ local useddata = data.useddata
+ if useddata and useddata.number then
+ context(useddata.number)
+ end
+ end
+ end
+end
+
+genericfilters.default = genericfilters.text
+
+function genericfilters.page(data,prefixspec,pagespec)
+ local pagedata = data.pagedata
+ if pagedata then
+ local number = pagedata.number
+ local conversion = pagedata.conversion
+ if not number then
+ -- error
+ elseif conversion then
+ ctx_convertnumber(conversion,number)
+ else
+ context(number)
+ end
+ else
+ helpers.prefixpage(data,prefixspec,pagespec)
+ end
+end
+
+function userfilters.unknown(data,name)
+ if data then
+ local userdata = data.userdata
+ local userkind = userdata and userdata.kind
+ if userkind then
+ local filter = filters[userkind] or genericfilters
+ filter = filter and (filter[name] or filter.unknown)
+ if filter then
+ filter(data,name)
+ return
+ end
+ end
+ local namedata = userdata and userdata[name]
+ if namedata then
+ context(namedata)
+ end
+ end
+end
+
+function textfilters.title(data)
+ helpers.title(data.entries.text or "?",data.metadata)
+end
+
+-- no longer considered useful:
+--
+-- function filters.text.number(data)
+-- helpers.title(data.entries.text or "?",data.metadata)
+-- end
+
+function textfilters.page(data,prefixspec,pagespec)
+ helpers.prefixpage(data,prefixspec,pagespec)
+end
+
+fullfilters.title = textfilters.title
+fullfilters.page = textfilters.page
+
+function sectionfilters.number(data,what,prefixspec)
+ if data then
+ local numberdata = data.numberdata
+ if not numberdata then
+ local useddata = data.useddata
+ if useddata and useddata.number then
+ context(useddata.number)
+ end
+ elseif numberdata.hidenumber then
+ local references = data.references
+ if trace_empty then
+ report_empty("reference %a has a hidden number",references.reference)
+ ctx_emptyreference() -- maybe an option
+ end
+ else
+ sections.typesetnumber(numberdata,"number",prefixspec,numberdata)
+ end
+ end
+end
+
+sectionfilters.title = genericfilters.title
+sectionfilters.page = genericfilters.page
+sectionfilters.default = sectionfilters.number
+
+-- filters.note = { default = genericfilters.number }
+-- filters.formula = { default = genericfilters.number }
+-- filters.float = { default = genericfilters.number }
+-- filters.description = { default = genericfilters.number }
+-- filters.item = { default = genericfilters.number }
+
+setmetatableindex(filters, function(t,k) -- beware, test with rawget
+ local v = { default = genericfilters.number } -- not copy as it might be extended differently
+ t[k] = v
+ return v
+end)
+
+-- function references.sectiontitle(n)
+-- helpers.sectiontitle(lists.collected[tonumber(n) or 0])
+-- end
+
+-- function references.sectionnumber(n)
+-- helpers.sectionnumber(lists.collected[tonumber(n) or 0])
+-- end
+
+-- function references.sectionpage(n,prefixspec,pagespec)
+-- helpers.prefixedpage(lists.collected[tonumber(n) or 0],prefixspec,pagespec)
+-- end
+
+-- analyze
+
+references.testrunners = references.testrunners or { }
+references.testspecials = references.testspecials or { }
+
+local runners = references.testrunners
+local specials = references.testspecials
+
+-- We need to prevent ending up in the 'relative location' analyzer as it is
+-- pretty slow (progressively). In the pagebody one can best check the reference
+-- real page to determine if we need contrastlocation as that is more lightweight.
+
+local function checkedpagestate(n,page,actions,position,spread)
+ local p = tonumber(page)
+ if not p then
+ return 0
+ end
+ if position and #actions > 0 then
+ local i = actions[1].i -- brrr
+ if i then
+ local a = i.references
+ if a then
+ local x = a.x
+ local y = a.y
+ if x and y then
+ local jp = jobpositions.collected[position]
+ if jp then
+ local px = jp.x
+ local py = jp.y
+ local pp = jp.p
+ if p == pp then
+ -- same page
+ if py > y then
+ return 5 -- above
+ elseif py < y then
+ return 4 -- below
+ elseif px > x then
+ return 4 -- below
+ elseif px < x then
+ return 5 -- above
+ else
+ return 1 -- same
+ end
+ elseif spread then
+ if pp % 2 == 0 then
+ -- left page
+ if pp > p then
+ return 2 -- before
+ elseif pp + 1 == p then
+-- return 4 -- below (on right page)
+ return 5 -- above (on left page)
+ else
+ return 3 -- after
+ end
+ else
+ -- right page
+ if pp < p then
+ return 3 -- after
+ elseif pp - 1 == p then
+-- return 5 -- above (on left page)
+ return 4 -- below (on right page)
+ else
+ return 2 -- before
+ end
+ end
+ elseif pp > p then
+ return 2 -- before
+ else
+ return 3 -- after
+ end
+ end
+ end
+ end
+ end
+ end
+ local r = referredpage(n) -- sort of obsolete
+ if p > r then
+ return 3 -- after
+ elseif p < r then
+ return 2 -- before
+ else
+ return 1 -- same
+ end
+end
+
+local function setreferencerealpage(actions)
+ if not actions then
+ actions = references.currentset
+ end
+ if type(actions) == "table" then
+ local realpage = actions.realpage
+ if realpage then
+ return realpage
+ end
+ local nofactions = #actions
+ if nofactions > 0 then
+ for i=1,nofactions do
+ local a = actions[i]
+ local what = runners[a.kind]
+ if what then
+ what = what(a,actions) -- needs documentation
+ end
+ end
+ realpage = actions.realpage
+ if realpage then
+ return realpage
+ end
+ end
+ actions.realpage = 0
+ end
+ return 0
+end
+
+references.setreferencerealpage = setreferencerealpage
+
+-- we store some analysis data alongside the indexed array
+-- at this moment only the real reference page is analyzed
+-- normally such an analysis happens in the backend code
+
+function references.analyze(actions,position,spread)
+ if not actions then
+ actions = references.currentset
+ end
+ if not actions then
+ actions = { realpage = 0, pagestate = 0 }
+ elseif actions.pagestate then
+ -- already done
+ else
+ local realpage = actions.realpage or setreferencerealpage(actions)
+ if realpage == 0 then
+ actions.pagestate = 0
+ elseif actions.external then
+ actions.pagestate = 0
+ else
+ actions.pagestate = checkedpagestate(actions.n,realpage,actions,position,spread)
+ end
+ end
+ return actions
+end
+
+local function referencepagestate(position,detail,spread)
+ local actions = references.currentset
+ if not actions then
+ return 0
+ else
+ local pagestate = actions.pagestate
+ for i=1,#actions do
+ local a = actions[i]
+ if a.outer then
+ pagestate = 0
+ actions.pagestate = pagestate
+ break
+ end
+ end
+ if not pagestate then
+ references.analyze(actions,position,spread) -- delayed unless explicitly asked for
+ pagestate = actions.pagestate
+ end
+ if detail then
+ return pagestate
+ elseif pagestate == 4 then
+ return 2 -- compatible
+ elseif pagestate == 5 then
+ return 3 -- compatible
+ else
+ return pagestate
+ end
+ end
+end
+
+implement {
+ name = "referencepagestate",
+ actions = { referencepagestate, context },
+ arguments = "string"
+}
+
+implement {
+ name = "referencepagedetail",
+ actions = { referencepagestate, context },
+ arguments = { "string", "boolean", "boolean" }
+}
+
+-- local function referencerealpage()
+-- local actions = references.currentset
+-- return not actions and 0 or actions.realpage or setreferencerealpage(actions)
+-- end
+--
+-- implement {
+-- name = "referencerealpage",
+-- actions = { referencerealpage, context },
+-- -- arguments = "string" -- hm, weird
+-- }
+
+implement {
+ name = "askedreference",
+ public = true,
+ protected = true,
+ actions = function()
+ local actions = references.currentset
+ if actions then
+ context("[p=%s,r=%s]",actions.prefix or "",actions.reference)
+ end
+ end
+}
+
+implement {
+ name = "referencerealpage",
+ actions = function()
+ local actions = references.currentset
+ context(not actions and 0 or actions.realpage or setreferencerealpage(actions))
+ end
+}
+
+local function referencepos(key)
+ local actions = references.currentset
+ local i = actions[1].i -- brrr
+ local v = 0
+ if i then
+ local a = i.references
+ if a then
+ v = a[key] or 0
+ end
+ end
+ return v
+end
+
+implement { name = "referenceposx", actions = function() context("%p",referencepos("x")) end }
+implement { name = "referenceposy", actions = function() context("%p",referencepos("y")) end }
+
+implement {
+ name = "referencecolumn",
+ actions = function()
+ local actions = references.currentset
+ local column = 1
+ if actions then
+ column = jobpositions.columnofpos(actions.realpage or setreferencerealpage(actions),referencepos("x"))
+ end
+ context(column or 1)
+ end
+}
+
+local plist, nofrealpages
+
+local function realpageofpage(p) -- the last one counts !
+ if not plist then
+ local pages = structures.pages.collected
+ nofrealpages = #pages
+ plist = { }
+ for rp=1,nofrealpages do
+ local page = pages[rp]
+ if page then
+ plist[page.number] = rp
+ end
+ end
+ references.nofrealpages = nofrealpages
+ end
+ return plist[p]
+end
+
+references.realpageofpage = realpageofpage
+
+function references.checkedrealpage(r)
+ if not plist then
+ realpageofpage(r) -- just initialize
+ end
+ if not r then
+ return texgetcount(c_realpageno)
+ elseif r < 1 then
+ return 1
+ elseif r > nofrealpages then
+ return nofrealpages
+ else
+ return r
+ end
+end
+
+-- use local ?
+
+local pages = allocate {
+ [variables.firstpage] = function() return counters.record("realpage")["first"] end,
+ [variables.previouspage] = function() return counters.record("realpage")["previous"] end,
+ [variables.nextpage] = function() return counters.record("realpage")["next"] end,
+ [variables.lastpage] = function() return counters.record("realpage")["last"] end,
+
+ [variables.firstsubpage] = function() return counters.record("subpage" )["first"] end,
+ [variables.previoussubpage] = function() return counters.record("subpage" )["previous"] end,
+ [variables.nextsubpage] = function() return counters.record("subpage" )["next"] end,
+ [variables.lastsubpage] = function() return counters.record("subpage" )["last"] end,
+
+ [variables.forward] = function() return counters.record("realpage")["forward"] end,
+ [variables.backward] = function() return counters.record("realpage")["backward"] end,
+}
+
+references.pages = pages
+
+-- maybe some day i will merge this in the backend code with a testmode (so each
+-- runner then implements a branch)
+
+runners["inner"] = function(var,actions)
+ local r = var.r
+ if r then
+ actions.realpage = r
+ end
+end
+
+runners["special"] = function(var,actions)
+ local handler = specials[var.special]
+ return handler and handler(var,actions)
+end
+
+runners["special operation"] = runners["special"]
+runners["special operation with arguments"] = runners["special"]
+
+function specials.internal(var,actions)
+ local v = internals[tonumber(var.operation)]
+ local r = v and v.references
+ if r then
+ local p = r.realpage
+ if p then
+-- setmetatableindex(actions,r)
+ actions.realpage = p
+ actions.view = r.view
+ end
+ end
+end
+
+specials.i = specials.internal
+
+function specials.page(var,actions)
+ local o = var.operation
+ local p = pages[o]
+ if type(p) == "function" then
+ p = p()
+ else
+ p = tonumber(realpageofpage(tonumber(o)))
+ end
+ if p then
+ var.r = p
+ actions.realpage = actions.realpage or p -- first wins
+ end
+end
+
+function specials.realpage(var,actions)
+ local p = tonumber(var.operation)
+ if p then
+ var.r = p
+ actions.realpage = actions.realpage or p -- first wins
+ end
+end
+
+function specials.userpage(var,actions)
+ local p = tonumber(realpageofpage(var.operation))
+ if p then
+ var.r = p
+ actions.realpage = actions.realpage or p -- first wins
+ end
+end
+
+function specials.deltapage(var,actions)
+ local p = tonumber(var.operation)
+ if p then
+ p = references.checkedrealpage(p + texgetcount(c_realpageno))
+ var.r = p
+ actions.realpage = actions.realpage or p -- first wins
+ end
+end
+
+function specials.section(var,actions)
+ local sectionname = var.arguments
+ local destination = var.operation
+ local internal = structures.sections.internalreference(sectionname,destination)
+ if internal then
+ var.special = "internal"
+ var.operation = internal
+ var.arguments = nil
+ specials.internal(var,actions)
+ end
+end
+
+-- experimental:
+
+local p_splitter = lpeg.splitat(":")
+local p_lower = lpeg.patterns.utf8lower
+
+-- We can cache lowercased titles which saves a lot of time, but then
+-- we can better have a global cache with weak keys.
+
+-- local lowercache = table.setmetatableindex(function(t,k)
+-- local v = lpegmatch(p_lower,k)
+-- t[k] = v
+-- return v
+-- end)
+
+local lowercache = false
+
+local function locate(list,askedkind,askedname,pattern)
+ local kinds = lists.kinds
+ local names = lists.names
+ if askedkind and not kinds[askedkind] then
+ return false
+ end
+ if askedname and not names[askedname] then
+ return false
+ end
+ for i=1,#list do
+ local entry = list[i]
+ local metadata = entry.metadata
+ if metadata then
+ local found = false
+ if askedname then
+ local name = metadata.name
+ if name then
+ found = name == askedname
+ end
+ elseif askedkind then
+ local kind = metadata.kind
+ if kind then
+ found = kind == askedkind
+ end
+ end
+ if found then
+ local titledata = entry.titledata
+ if titledata then
+ local title = titledata.title
+ if title then
+ if lowercache then
+ found = lpegmatch(pattern,lowercache[title])
+ else
+ found = lpegmatch(pattern,lpegmatch(p_lower,title))
+ end
+ if found then
+ return {
+ inner = pattern,
+ kind = "inner",
+ reference = pattern,
+ i = entry,
+ p = "",
+ r = entry.references.realpage,
+ }
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+function functions.match(var,actions)
+ if not var.outer then
+ local operation = var.operation
+ if operation and operation ~= "" then
+ local operation = lpegmatch(p_lower,operation)
+ local list = lists.collected
+ local names = false
+ local kinds = false
+ local where, what = lpegmatch(p_splitter,operation)
+ if where and what then
+ local pattern = lpeg.finder(what)
+ return
+ locate(list,false,where,pattern)
+ or locate(list,where,false,pattern)
+ or { error = "no match" }
+ else
+ local pattern = lpeg.finder(operation)
+ -- todo: don't look at section and float in last pass
+ return
+ locate(list,"section",false,pattern)
+ or locate(list,"float",false,pattern)
+ or locate(list,false,false,pattern)
+ or { error = "no match" }
+ end
+ end
+ end
+end
+
+-- needs a better split ^^^
+
+-- done differently now:
+
+function references.export(usedname) end
+function references.import(usedname) end
+function references.load (usedname) end
+
+implement { name = "exportreferences", actions =references.export }
+
+-- better done here .... we don't insert/remove, just use a pointer
+
+local prefixstack = { "" }
+local prefixlevel = 1
+
+local function pushreferenceprefix(prefix)
+ prefixlevel = prefixlevel + 1
+ prefixstack[prefixlevel] = prefix
+ return prefix
+end
+
+local function popreferenceprefix()
+ prefixlevel = prefixlevel - 1
+ if prefixlevel > 0 then
+ return prefixstack[prefixlevel]
+ else
+ report_references("unable to pop referenceprefix")
+ return ""
+ end
+end
+
+implement {
+ name = "pushreferenceprefix",
+ actions = { pushreferenceprefix, context }, -- we can use setmacro
+ arguments = "string",
+}
+
+implement {
+ name = "popreferenceprefix",
+ actions = { popreferenceprefix, context }, -- we can use setmacro
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-ref.mklx b/Master/texmf-dist/tex/context/base/mkxl/strc-ref.mklx
index f3a90ed6764..e7073b36ded 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-ref.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-ref.mklx
@@ -27,9 +27,17 @@
\writestatus{loading}{ConTeXt Structure Macros / Cross Referencing}
-\registerctxluafile{strc-rsc}{}
-\registerctxluafile{strc-ref}{}
-\registerctxluafile{node-ref}{autosuffix,optimize}
+\newif \iflocation
+\newinteger\locationcount
+\newinteger\locationorder
+\newbox \locationbox
+\newinteger\lastreferenceattribute
+\newinteger\lastdestinationattribute
+\newinteger\prefixcounter
+
+\registerctxluafile{strc-rsc}{autosuffix}
+\registerctxluafile{strc-ref}{autosuffix}
+\registerctxluafile{node-ref}{autosuffix}
\unprotect
@@ -62,29 +70,28 @@
\installdirectcommandhandler \??referencing {referencing} % \??referencing
-\mutable\let\referenceprefix \empty
-
-\mutable\let\currentdestinationattribute \empty
-
-\mutable\let\currentreferenceattribute \empty
-\mutable\let\currentreferencecoding \empty
-\mutable\let\currentreferencecontent \empty
-\mutable\let\currentreferencedata \empty
-\mutable\let\currentreferenceexpansion \empty
-\mutable\let\currentreferenceformatautocase\empty
-\mutable\let\currentreferenceformatlabel \empty
-\mutable\let\currentreferenceformatsetups \empty
-\mutable\let\currentreferenceformattype \empty
-\mutable\let\currentreferencekind \empty
-\mutable\let\currentreferencelabels \empty
-%mutable\let\currentreferencenumber \empty
-\mutable\let\currentreferenceorder \empty
-%mutable\let\currentreferencepage \empty
-%mutable\let\currentreferencerealpage \empty
-%mutable\let\currentreferencetext \empty
-%mutable\let\currentreferencetitle \empty
-\mutable\let\currentreferenceuserdata \empty
-
+\mutable\lettonothing\referenceprefix
+
+\mutable\lettonothing\currentdestinationattribute
+
+\mutable\lettonothing\currentreferenceattribute
+\mutable\lettonothing\currentreferencecoding
+\mutable\lettonothing\currentreferencecontent
+\mutable\lettonothing\currentreferencedata
+\mutable\lettonothing\currentreferenceexpansion
+\mutable\lettonothing\currentreferenceformatautocase
+\mutable\lettonothing\currentreferenceformatlabel
+\mutable\lettonothing\currentreferenceformatsetups
+\mutable\lettonothing\currentreferenceformattype
+\mutable\lettonothing\currentreferencekind
+\mutable\lettonothing\currentreferencelabels
+%mutable\lettonothing\currentreferencenumber
+%mutable\lettonothing\currentreferenceorder
+%mutable\lettonothing\currentreferencepage
+%mutable\lettonothing\currentreferencerealpage
+%mutable\lettonothing\currentreferencetext
+%mutable\lettonothing\currentreferencetitle
+\mutable\lettonothing\currentreferenceuserdata
\newif\ifreferencing \referencingtrue
@@ -138,8 +145,8 @@
%D Actually there is not much difference between a text and a full reference, but
%D it's the concept that counts. The low level implementation is:
-\newcount\lastreferenceattribute
-\newcount\lastdestinationattribute
+% sett top : \newinteger\lastreferenceattribute
+% sett top : \newinteger\lastdestinationattribute
\def\strc_references_finish#prefix#reference#internal% gets expanded anyway
{\normalexpanded{\clf_deferredenhancereference{#prefix}{#reference}}}
@@ -164,7 +171,6 @@
\prewordbreak % to be tested: \removeunwantedspaces\permithyphenation
\fi}
-
\protected\def\strc_references_set_named_reference
{\ifreferencing
\expandafter\strc_references_set_named_reference_indeed
@@ -188,7 +194,7 @@
\protected\def\strc_references_destination_point_yes
{\strc_references_inject_before % new
\dostarttagged\t!reference\empty
- \dontleavehmode\hbox attr \destinationattribute\lastdestinationattribute\bgroup
+ \dontleavehmode\hbox attr \destinationattribute\lastdestinationattribute\bgroup % \hpack
\strc_references_flush_destination_nodes
\strc_references_placeholder
\egroup
@@ -198,7 +204,7 @@
\protected\def\strc_references_destination_point_nop
{\strc_references_inject_before % new
\dostarttagged\t!reference\empty
- \dontleavehmode\hbox \bgroup
+ \dontleavehmode\hbox \bgroup % \hpack
\strc_references_flush_destination_nodes
\strc_references_placeholder
\egroup
@@ -369,7 +375,7 @@
\ifnum\lastdestinationattribute>\zerocount
\edef#cs{attr \destinationattribute\number\lastdestinationattribute}%
\else
- \let#cs\empty
+ \lettonothing#cs%
\fi}
%D It's about time to clean up references .. stable enough now.
@@ -446,8 +452,8 @@
{\referenceprefix}%
{#label}%
{%
- height \ht\strutbox
- depth \dp\strutbox
+ height \strutht
+ depth \strutdp
\extrareferencearguments
}%
\relax
@@ -536,7 +542,7 @@
%D one keeps references local, but the global ones in view. To enable this feature,
%D we explictly split the prefix from the reference.
-\let\referenceprefix\empty
+\lettonothing\referenceprefix
%D For a long time the only way to access an external file was to use the file
%D prefix (\type {somefile::}. However, when you split up a document, redefining the
@@ -574,13 +580,11 @@
%D
%D We also use the odd/even characteristic to determine the page state.
-\mutable\let\currentrealreference \empty
-\mutable\let\currentpagereference \empty
-\mutable\let\currenttextreference \empty
-\mutable\let\currentsubtextreference \empty
-\mutable\let\currentsubsubtextreference\empty
-
-\newcount\referencehastexstate % set in backend
+\mutable\lettonothing\currentrealreference
+\mutable\lettonothing\currentpagereference
+\mutable\lettonothing\currenttextreference
+\mutable\lettonothing\currentsubtextreference
+\mutable\lettonothing\currentsubsubtextreference
% referencepagestate:
%
@@ -692,19 +696,15 @@
\newconditional\gotonewwindow \setfalse\gotonewwindow
-\permanent\def\expandtexincurrentreference % will happen in lua some time
- {\ifcase\referencehastexstate\else\clf_expandcurrentreference\fi}
+\permanent\def\doifelsereferencefound#label%
+ {\clf_doifelsereference{\referenceprefix}{#label}{\extrareferencearguments}}
-\permanent\def\expandreferenceoperation#tag#content{\clf_setreferenceoperation#tag{#content}}
-\permanent\def\expandreferencearguments#tag#content{\clf_setreferencearguments#tag{#content}}
+\aliased\let\doifreferencefoundelse\doifelsereferencefound
-\permanent\def\doifelsereferencefound#label#yes#nop%
- {\clf_doifelsereference{\referenceprefix}{#label}{\extrareferencearguments}%
- {\expandtexincurrentreference
- #yes}%
- {#nop}}
+\permanent\def\doifelsereferencechecked#label%
+ {\clf_doifelsereferencechecked{\referenceprefix}{#label}{\extrareferencearguments}}
-\aliased\let\doifreferencefoundelse\doifelsereferencefound
+\aliased\let\doifcheckedreferencefoundelse\doifelsereferencechecked
%D The tester only splits the reference in components but does not look into them.
%D The following macro does a preroll and determines for instance the current real
@@ -798,8 +798,8 @@
%D
%D The flag \type {\iflocation} signals if we're in interactive mode.
-\ifdefined\buttonheight \else \newdimen\buttonheight \fi
-\ifdefined\buttonwidth \else \newdimen\buttonwidth \fi
+\ifdefined\buttonheight \else \newdimension\buttonheight \fi
+\ifdefined\buttonwidth \else \newdimension\buttonwidth \fi
%D Internal references can best be set using the next few macros. Setting such
%D references to unique values is completely up to the macros that call them.
@@ -811,22 +811,28 @@
%D
%D We could do this in \LUA\ \unknown
-\newif \iflocation
-\newcount\locationcount
-\newcount\locationorder
-\newbox \locationbox
+% seet top: \newif \iflocation
+% seet top: \newinteger\locationcount
+% seet top: \newinteger\locationorder
+% seet top: \newbox \locationbox
+
+\appendtoks
+ \locationfalse
+\to \everypreroll
\permanent\def\nextinternalreference {\the\locationcount}
\permanent\def\nextinternalorderreference{\the\locationorder}
\permanent\def\setnextinternalreference
- {\global\advance\locationcount\plusone}
-
-\permanent\def\setnextinternalreferences#kind#name% plural
- {\clf_setnextinternalreference{#kind}{#name}}
+ {\global\advanceby\locationcount\plusone}
-\permanent\def\getinternalorderreference#kind#name%
- {\clf_currentreferenceorder{#kind}{#name}}
+% defined at the lua end
+%
+% \permanent\def\setnextinternalreferences#kind#name% plural
+% {\clf_setnextinternalreference{#kind}{#name}}
+%
+% \permanent\def\getinternalorderreference#kind#name%
+% {\clf_currentreferenceorder{#kind}{#name}}
\permanent\def\thisissomeinternal#kind#name% only for old time sake, will go away
{\begingroup
@@ -838,7 +844,7 @@
\installcorenamespace{savedinternalreference}
-\letvalue{\??savedinternalreference\s!default}\!!zerocount
+\letcsname\??savedinternalreference\s!default\endcsname\!!zerocount
\permanent\protected\def\storeinternalreference#1#2%
{\xdefcsname\??savedinternalreference\currentstructurename\endcsname{\number#2}}
@@ -876,7 +882,7 @@
%D \type {\prefix} variable to \type {+}, the prefix is incremented, when set to
%D \type {-} or empty, the prefix is reset. Other values become the prefix.
-\newcount\prefixcounter
+% \see top: newinteger\prefixcounter
\newconditional\autocrossfilereferences
@@ -917,14 +923,14 @@
\permanent\protected\def\setupreferenceprefix[#prefix]%
{\edef\p_prefix{#prefix}%
\ifempty\p_prefix
- \let\referenceprefix\empty
+ \lettonothing\referenceprefix
\orelse\ifx\p_prefix\m_strc_references_prefix_yes
\letreferencingparameter\c!prefix\s!unknown
- \global\advance\prefixcounter\plusone
+ \global\advanceby\prefixcounter\plusone
\edef\referenceprefix{\the\prefixcounter}%
\orelse\ifx\p_prefix\m_strc_references_prefix_nop
\letreferencingparameter\c!prefix\s!unknown
- \let\referenceprefix\empty
+ \lettonothing\referenceprefix
\orelse\ifx\p_prefix\s!unknown
% forget about it
\else
@@ -997,6 +1003,8 @@
\permanent\def\currentreferencetext {\clf_filterreference{text}}
%permanent\def\currentreferencedefault {\clf_filterreference{default}}
\permanent\def\currentreferencerealpage{\clf_filterreference{realpage}}
+\aliased \let\currentreferenceorder \getinternalorderreference
+
%D The most straightforward way of retrieving references is using \type {\ref}.
@@ -1068,7 +1076,7 @@
% }
% }
-\newcount \nofreferencestates
+\newinteger \nofreferencestates
\newconditional\pagestatespread
\appendtoks
@@ -1117,7 +1125,7 @@
% issue warning that not stable
\else
% needs checking ... but probably never in trialmode
- \global\advance\nofreferencestates\plusone
+ \global\advanceby\nofreferencestates\plusone
\xypos{rst::\number\nofreferencestates}%
% \tracedpagestate
\fi
@@ -1130,7 +1138,7 @@
\def\strc_references_handle_page_state_yes
{\markreferencepage
- \ifcase\referencepagedetail
+ \ifcase\referencepagedetail\relax
\expandafter\sixthofsixarguments \or
\expandafter\thirdofsixarguments \or
\expandafter\firstofsixarguments \or
@@ -1209,9 +1217,9 @@
\newtoks\defaultleftreferencetoks
\newtoks\defaultrightreferencetoks
-\permanent\let\rightofreferencecontent\empty
-\permanent\let\leftofreference \empty
-\permanent\let\rightofreference \empty
+\permanent\lettonothing\rightofreferencecontent
+\permanent\lettonothing\leftofreference
+\permanent\lettonothing\rightofreference
\permanent\protected\def\leftofreferencecontent
{\removeunwantedspaces
@@ -1230,20 +1238,20 @@
\doifelsesometoks\rightreferencetoks\rightofreferencecontent\donothing
\the\rightreferencetoks}
-\letvalue{\??referencinginteraction\v!all}\strc_references_interaction_all
+\letcsname\??referencinginteraction\v!all\endcsname\strc_references_interaction_all
-\setvalue{\??referencinginteraction\v!label}%
+\defcsname\??referencinginteraction\v!label\endcsname
{\leftofreference
\the\leftreferencetoks
\the\rightreferencetoks
\rightofreference}
-\setvalue{\??referencinginteraction\v!text}%
+\defcsname\??referencinginteraction\v!text\endcsname
{\leftofreference
\currentreferencecontent
\rightofreference}
-\setvalue{\??referencinginteraction\v!symbol}%
+\defcsname\??referencinginteraction\v!symbol\endcsname
{\referencesymbol}
\permanent\def\referencesequence
@@ -1276,14 +1284,14 @@
{#1}%
\else
\defaultleftreferencetoks
- \enforced\let\leftofreferencecontent\empty
+ \enforced\lettonothing\leftofreferencecontent
\fi
\rightreferencetoks
\ifparameter#2\or
{#2}%
\else
\defaultrightreferencetoks
- \enforced\let\rightofreferencecontent\empty
+ \enforced\lettonothing\rightofreferencecontent
\fi
% inefficient: double resolve
\doifelsereferencefound{#3} % we need to resolve the text
@@ -1403,8 +1411,8 @@
\def\currentreferencecontent{\directsetup\currentreferenceformatsetups}%
\fi
%
- \enforced\let\leftofreferencecontent \empty
- \enforced\let\rightofreferencecontent\empty
+ \enforced\lettonothing\leftofreferencecontent
+ \enforced\lettonothing\rightofreferencecontent
\strc_references_pickup_goto}
\permanent\protected\def\autoreferencelabeltext
@@ -1471,7 +1479,7 @@
% The unbox trick is needed in order to permit \par inside a reference. Otherwise
% the reference attribute migrates to the outer boxes.
-\newcount\lastsavedreferenceattribute
+\newinteger\lastsavedreferenceattribute
\newbox\referencebox
@@ -1488,8 +1496,8 @@
{\referenceprefix}%
{#label}%
{%
- height \ht\strutbox
- depth \dp\strutbox
+ height \strutht
+ depth \strutdp
\extrareferencearguments
}%
\relax
@@ -1539,10 +1547,9 @@
\c_attr_reference\attributeunsetvalue
\iflocation
\clf_doifelsereference{\referenceprefix}{#label}{\extrareferencearguments}%
- {\expandtexincurrentreference
- \clf_injectcurrentreferencehtdp
- \ht\strutbox
- \dp\strutbox
+ {\clf_injectcurrentreferencehtdp
+ \strutht
+ \strutdp
\relax
\setlocationattributes
\setstrut % can be option
@@ -1588,7 +1595,7 @@
\expandafter\strc_references_start_goto_nop
\fi}
-\aliased\let\stopgoto\relax
+\permanent\protected\lettonothing\stopgoto
\permanent\protected\def\strc_references_start_goto_nop
{\enforced\let\stopgoto\strc_references_stop_goto_nop}
@@ -1597,10 +1604,9 @@
{\endgroup}
\protected\def\strc_references_start_goto_yes
- {\expandtexincurrentreference
- \clf_injectcurrentreferencehtdp
- \ht\strutbox
- \dp\strutbox
+ {\clf_injectcurrentreferencehtdp
+ \strutht
+ \strutdp
\relax
\setlocationattributes
\setstrut % can be option
@@ -1620,8 +1626,7 @@
\c_attr_reference\attributeunsetvalue
\iflocation
\clf_doifelsereference{\referenceprefix}{#label}{\extrareferencearguments}%
- {\expandtexincurrentreference
- \clf_injectcurrentreferencehtdp
+ {\clf_injectcurrentreferencehtdp
\dimexpr\interactionparameter\c!height\relax
\dimexpr\interactionparameter\c!depth \relax
\relax
@@ -1706,8 +1711,7 @@
\c_attr_reference\attributeunsetvalue
\iflocation
\clf_doifelsereference{\referenceprefix}{#label}{\extrareferencearguments}%
- {\expandtexincurrentreference
- \clf_injectcurrentreference
+ {\clf_injectcurrentreference
\setlocationattributes
\global\lastsavedreferenceattribute\lastreferenceattribute
\dostarttagged\t!link\empty
@@ -2019,8 +2023,6 @@
\definereference [\v!LastPage ] [action(last)]
\definereference [\v!NextJump ] [action(forward)]
\definereference [\v!NextPage ] [action(next)]
-\definereference [\v!PauseMovie ] [action(pausemovie)]
-\definereference [\v!PauseSound ] [action(pausesound)]
\definereference [\v!PauseRendering ] [action(pauserendering)]
\definereference [\v!PreviousJump ] [action(backward)]
\definereference [\v!PreviousPage ] [action(previous)]
@@ -2028,19 +2030,13 @@
\definereference [\v!SaveForm ] [action(exportform)]
\definereference [\v!LoadForm ] [action(importform)]
\definereference [\v!ResetForm ] [action(resetform)]
-\definereference [\v!ResumeMovie ] [action(resumemovie)]
-\definereference [\v!ResumeSound ] [action(resumesound)]
\definereference [\v!ResumeRendering ] [action(resumerendering)]
\definereference [\v!SaveDocument ] [action(save)]
\definereference [\v!SaveNamedDocument] [action(savenamed)]
\definereference [\v!OpenNamedDocument] [action(opennamed)]
\definereference [\v!SearchDocument ] [action(search)]
\definereference [\v!SearchAgain ] [action(searchagain)]
-\definereference [\v!StartMovie ] [action(startmovie)]
-\definereference [\v!StartSound ] [action(startsound)]
\definereference [\v!StartRendering ] [action(startrendering)]
-\definereference [\v!StopMovie ] [action(stopmovie)]
-\definereference [\v!StopSound ] [action(stopsound)]
\definereference [\v!StopRendering ] [action(stoprendering)]
\definereference [\v!SubmitForm ] [action(submitform)]
\definereference [\v!ToggleViewer ] [action(toggle)]
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-reg.lmt b/Master/texmf-dist/tex/context/base/mkxl/strc-reg.lmt
new file mode 100644
index 00000000000..a3a7dae6c88
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-reg.lmt
@@ -0,0 +1,1698 @@
+if not modules then modules = { } end modules ['strc-reg'] = {
+ version = 1.001,
+ comment = "companion to strc-reg.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local next, type, tonumber, rawget = next, type, tonumber, rawget
+local char, format, gmatch = string.char, string.format, string.gmatch
+local equal, concat, remove = table.are_equal, table.concat, table.remove
+local lpegmatch, lpegpatterns, P, C, Ct, Cs = lpeg.match, lpeg.patterns, lpeg.P, lpeg.C, lpeg.Ct, lpeg.Cs
+local allocate = utilities.storage.allocate
+
+local trace_registers = false trackers.register("structures.registers", function(v) trace_registers = v end)
+
+local report_registers = logs.reporter("structure","registers")
+
+local structures = structures
+local registers = structures.registers
+local helpers = structures.helpers
+local sections = structures.sections
+local documents = structures.documents
+local pages = structures.pages
+local references = structures.references
+
+local usedinternals = references.usedinternals
+
+local mappings = sorters.mappings
+local entries = sorters.entries
+local replacements = sorters.replacements
+
+local processors = typesetters.processors
+local splitprocessor = processors.split
+
+local texgetcount = tex.getcount
+local texiscount = tex.iscount
+
+local variables = interfaces.variables
+local v_forward = variables.forward
+local v_all = variables.all
+local v_no = variables.no
+local v_yes = variables.yes
+local v_packed = variables.packed
+local v_current = variables.current
+local v_previous = variables.previous
+local v_first = variables.first
+local v_last = variables.last
+local v_text = variables.text
+local v_section = variables.section
+
+local context = context
+local ctx_latelua = context.latelua
+
+local implement = interfaces.implement
+
+local matchingtilldepth = sections.matchingtilldepth
+local numberatdepth = sections.numberatdepth
+local currentlevel = sections.currentlevel
+local currentid = sections.currentid
+
+local touserdata = helpers.touserdata
+
+local internalreferences = references.internals
+local setinternalreference = references.setinternalreference
+
+local setmetatableindex = table.setmetatableindex
+
+local absmaxlevel = 5 -- \c_strc_registers_maxlevel
+
+local c_realpageno = texiscount("realpageno")
+local c_locationcount = texiscount("locationcount")
+
+local h_prefixpage = helpers.prefixpage
+local h_prefixlastpage = helpers.prefixlastpage
+local h_title = helpers.title
+local h_prefix = helpers.prefix
+
+local ctx_startregisteroutput = context.startregisteroutput
+local ctx_stopregisteroutput = context.stopregisteroutput
+local ctx_startregistersection = context.startregistersection
+local ctx_stopregistersection = context.stopregistersection
+local ctx_startregisterentries = context.startregisterentries
+local ctx_stopregisterentries = context.stopregisterentries
+local ctx_startregisterentry = context.startregisterentry
+local ctx_stopregisterentry = context.stopregisterentry
+local ctx_startregisterpages = context.startregisterpages
+local ctx_stopregisterpages = context.stopregisterpages
+local ctx_startregisterseewords = context.startregisterseewords
+local ctx_stopregisterseewords = context.stopregisterseewords
+
+local ctx_registerentry = context.registerentry
+local ctx_registerseeword = context.registerseeword
+local ctx_registerpagerange = context.registerpagerange
+local ctx_registeronepage = context.registeronepage
+local ctx_registersection = context.registersection
+local ctx_registerpacked = context.registerpacked
+
+-- possible export, but ugly code (overloads)
+--
+-- local output, section, entries, nofentries, pages, words, rawtext
+--
+-- h_title = function(a,b) rawtext = a end
+--
+-- local function ctx_startregisteroutput()
+-- output = { }
+-- section = nil
+-- entries = nil
+-- nofentries = nil
+-- pages = nil
+-- words = nil
+-- rawtext = nil
+-- end
+-- local function ctx_stopregisteroutput()
+-- inspect(output)
+-- output = nil
+-- section = nil
+-- entries = nil
+-- nofentries = nil
+-- pages = nil
+-- words = nil
+-- rawtext = nil
+-- end
+-- local function ctx_startregistersection(tag)
+-- section = { }
+-- output[#output+1] = {
+-- section = section,
+-- tag = tag,
+-- }
+-- end
+-- local function ctx_stopregistersection()
+-- end
+-- local function ctx_startregisterentries(n)
+-- entries = { }
+-- nofentries = 0
+-- section[#section+1] = entries
+-- end
+-- local function ctx_stopregisterentries()
+-- end
+-- local function ctx_startregisterentry(n) -- or subentries (nested?)
+-- nofentries = nofentries + 1
+-- entry = { }
+-- entries[nofentries] = entry
+-- end
+-- local function ctx_stopregisterentry()
+-- nofentries = nofentries - 1
+-- entry = entries[nofentries]
+-- end
+-- local function ctx_startregisterpages()
+-- pages = { }
+-- entry.pages = pages
+-- end
+-- local function ctx_stopregisterpages()
+-- end
+-- local function ctx_startregisterseewords()
+-- words = { }
+-- entry.words = words
+-- end
+-- local function ctx_stopregisterseewords()
+-- end
+-- local function ctx_registerentry(processor,internal,seeparent,text)
+-- text()
+-- entry.text = {
+-- processor = processor,
+-- internal = internal,
+-- seeparent = seeparent,
+-- text = rawtext,
+-- }
+-- end
+-- local function ctx_registerseeword(i,n,processor,internal,seeindex,seetext)
+-- seetext()
+-- entry.words[i] = {
+-- processor = processor,
+-- internal = internal,
+-- seeparent = seeparent,
+-- seetext = rawtext,
+-- }
+-- end
+-- local function ctx_registerpagerange(fprocessor,finternal,frealpage,lprocessor,linternal,lrealpage)
+-- pages[#pages+1] = {
+-- first = {
+-- processor = fprocessor,
+-- internal = finternal,
+-- realpage = frealpage,
+-- },
+-- last = {
+-- processor = lprocessor,
+-- internal = linternal,
+-- realpage = lrealpage,
+-- },
+-- }
+-- end
+-- local function ctx_registeronepage(processor,internal,realpage)
+-- pages[#pages+1] = {
+-- processor = processor,
+-- internal = internal,
+-- realpage = realpage,
+-- }
+-- end
+
+-- some day we will share registers and lists (although there are some conceptual
+-- differences in the application of keywords)
+
+local function filtercollected(names,criterium,number,collected,prevmode)
+ if not criterium or criterium == "" then
+ criterium = v_all
+ end
+ local data = documents.data
+ local numbers = data.numbers
+ local depth = data.depth
+ local hash = { }
+ local result = { }
+ local nofresult = 0
+ local all = not names or names == "" or names == v_all
+ local detail = nil
+ if not all then
+ for s in gmatch(names,"[^, ]+") do
+ hash[s] = true
+ end
+ end
+ if criterium == v_all or criterium == v_text then
+ for i=1,#collected do
+ local v = collected[i]
+ if all then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ else
+ local vmn = v.metadata and v.metadata.name
+ if hash[vmn] then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ end
+ end
+ elseif criterium == v_current then
+ local collectedsections = sections.collected
+ for i=1,#collected do
+ local v = collected[i]
+ local sectionnumber = collectedsections[v.references.section]
+ if sectionnumber then
+ local cnumbers = sectionnumber.numbers
+ if prevmode then
+ if (all or hash[v.metadata.name]) and #cnumbers >= depth then -- is the = ok for lists as well?
+ local ok = true
+ for d=1,depth do
+ if not (cnumbers[d] == numbers[d]) then -- no zero test
+ ok = false
+ break
+ end
+ end
+ if ok then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ end
+ else
+ if (all or hash[v.metadata.name]) and #cnumbers > depth then
+ local ok = true
+ for d=1,depth do
+ local cnd = cnumbers[d]
+ if not (cnd == 0 or cnd == numbers[d]) then
+ ok = false
+ break
+ end
+ end
+ if ok then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ end
+ end
+ end
+ end
+ elseif criterium == v_previous then
+ local collectedsections = sections.collected
+ for i=1,#collected do
+ local v = collected[i]
+ local sectionnumber = collectedsections[v.references.section]
+ if sectionnumber then
+ local cnumbers = sectionnumber.numbers
+ if (all or hash[v.metadata.name]) and #cnumbers >= depth then
+ local ok = true
+ if prevmode then
+ for d=1,depth do
+ if not (cnumbers[d] == numbers[d]) then
+ ok = false
+ break
+ end
+ end
+ else
+ for d=1,depth do
+ local cnd = cnumbers[d]
+ if not (cnd == 0 or cnd == numbers[d]) then
+ ok = false
+ break
+ end
+ end
+ end
+ if ok then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ end
+ end
+ end
+ elseif criterium == variables["local"] then
+ if sections.autodepth(data.numbers) == 0 then
+ return filtercollected(names,v_all,number,collected,prevmode)
+ else
+ return filtercollected(names,v_current,number,collected,prevmode)
+ end
+ else -- sectionname, number
+ -- beware, this works ok for registers
+ -- to be redone with reference instead
+ local depth = sections.getlevel(criterium)
+ local number = tonumber(number) or numberatdepth(depth) or 0
+ if trace_registers then
+ detail = format("depth: %s, number: %s, numbers: %s, startset: %s",depth,number,concat(sections.numbers(),".",1,depth),#collected)
+ end
+ if number > 0 then
+ for i=1,#collected do
+ local v = collected[i]
+ local r = v.references
+ if r then
+ local sectionnumber = sections.collected[r.section]
+ if sectionnumber then
+ local metadata = v.metadata
+ local cnumbers = sectionnumber.numbers
+ if cnumbers then
+ if (all or hash[metadata.name or false]) and #cnumbers >= depth and matchingtilldepth(depth,cnumbers) then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ if trace_registers then
+ if detail then
+ report_registers("criterium %a, detail %a, found %a",criterium,detail,#result)
+ else
+ report_registers("criterium %a, detail %a, found %a",criterium,nil,#result)
+ end
+ end
+ return result
+end
+
+local tobesaved = allocate()
+local collected = allocate()
+
+registers.collected = collected
+registers.tobesaved = tobesaved
+registers.filtercollected = filtercollected
+
+-- we follow a different strategy than by lists, where we have a global
+-- result table; we might do that here as well but since sorting code is
+-- older we delay that decision
+
+-- maybe store the specification in the format (although we predefine only
+-- saved registers)
+
+local function checker(t,k)
+ local v = {
+ metadata = {
+ language = 'en',
+ sorted = false,
+ class = class,
+ },
+ entries = { },
+ }
+ t[k] = v
+ return v
+end
+
+local function initializer()
+ tobesaved = registers.tobesaved
+ collected = registers.collected
+ setmetatableindex(tobesaved,checker)
+ setmetatableindex(collected,checker)
+ local usedinternals = references.usedinternals
+ for name, list in next, collected do
+ local entries = list.entries
+ if not list.metadata.notsaved then
+ for e=1,#entries do
+ local entry = entries[e]
+ local r = entry.references
+ if r then
+ local internal = r and r.internal
+ if internal then
+ internalreferences[internal] = entry
+ usedinternals[internal] = r.used
+ end
+ end
+ end
+ end
+ end
+ -- references.sortedinternals = sortedkeys(internalreferences) -- todo: when we need it more than once
+end
+
+local function finalizer()
+ local flaginternals = references.flaginternals
+ local usedviews = references.usedviews
+ for k, v in next, tobesaved do
+ local entries = v.entries
+ if entries then
+ for i=1,#entries do
+ local r = entries[i].references
+ if r then
+ local i = r.internal
+ local f = flaginternals[i]
+ if f then
+ r.used = usedviews[i] or true
+ end
+ end
+ end
+ end
+ end
+end
+
+job.register('structures.registers.collected', tobesaved, initializer, finalizer)
+
+setmetatableindex(tobesaved,checker)
+setmetatableindex(collected,checker)
+
+local function defineregister(class,method)
+ local d = tobesaved[class]
+ if method == v_forward then
+ d.metadata.notsaved = true
+ end
+end
+
+registers.define = defineregister -- 4 times is somewhat over the top but we want consistency
+registers.setmethod = defineregister -- and we might have a difference some day
+
+implement {
+ name = "defineregister",
+ actions = defineregister,
+ arguments = "2 strings",
+}
+
+implement {
+ name = "setregistermethod",
+ actions = defineregister, -- duplicate use
+ arguments = "2 strings",
+}
+
+local p_s = P("+") -- & obsolete in mkiv
+local p_e = P("&") * (1-P(";"))^0 * P(";")
+local p_r = C((p_e + (1-p_s))^0)
+
+local p_t = Cs ( (
+ lpegpatterns.nestedbraces
+--+ lpegpatterns.nestedbrackets
+ + lpegpatterns.nestedparents
+ + P("$") * (1-P("$"))^1 * P("$")
+ + (1-p_s)
+ )^1)
+
+local entrysplitter_xml = Ct(p_r * (p_s * p_r)^0) -- bah
+----- entrysplitter_tex = lpeg.tsplitat('+')
+local entrysplitter_tex = Ct((p_t * p_s^-1)^0)
+
+local tagged = { }
+
+-- this whole splitting is an inheritance of mkii
+
+local function preprocessentries(rawdata)
+ local entries = rawdata.entries
+ if entries then
+ local processors = rawdata.processors
+ local et = entries.entries
+ local kt = entries.keys
+ local pt = entries.processors
+ local entryproc = processors and processors.entry
+ local pageproc = processors and processors.page
+ local coding = rawdata.metadata.coding
+ if entryproc == "" then
+ entryproc = nil
+ end
+ if pageproc == "" then
+ pageproc = nil
+ end
+ if not et then
+ local p, e = splitprocessor(entries.entry or "")
+ if p then
+ entryproc = p
+ end
+ et = lpegmatch(coding == "xml" and entrysplitter_xml or entrysplitter_tex,e)
+ end
+ if not kt then
+ local p, k = splitprocessor(entries.key or "")
+ if p then
+ pageproc = p
+ end
+ kt = lpegmatch(coding == "xml" and entrysplitter_xml or entrysplitter_tex,k)
+ end
+ if not pt then
+ pt = { }
+ end
+ --
+ entries = { }
+ local ok = false
+ for k=#et,1,-1 do
+ local etk = et[k]
+ local ktk = kt[k]
+ local ptk = pt[k]
+ if not ok and etk == "" then
+ entries[k] = nil
+ else
+ if not etk then
+ etk = ""
+ end
+ -- we save some space by pruning
+ if ptk == "" then
+ ptk = nil
+ end
+ -- we save even more space by pruning
+ if ktk == "" then
+ if ptk then
+ ktk = false
+ else
+ ktk = nil
+ end
+ end
+ entries[k] = { etk, ktk, ptk }
+ ok = true
+ end
+ end
+ rawdata.list = entries
+ if pageproc or entryproc then
+ rawdata.processors = { entryproc, pageproc } -- old way: indexed .. will be keys
+ end
+ rawdata.entries = nil
+ end
+ local seeword = rawdata.seeword
+ if seeword then
+ seeword.processor, seeword.text = splitprocessor(seeword.text or "")
+ end
+end
+
+local function storeregister(rawdata) -- metadata, references, entries
+ local references = rawdata.references
+ local metadata = rawdata.metadata
+ -- checking
+ if not metadata then
+ metadata = { }
+ rawdata.metadata = metadata
+ end
+ --
+ if not metadata.kind then
+ metadata.kind = "entry"
+ end
+ --
+ --
+ if not metadata.catcodes then
+ metadata.catcodes = tex.catcodetable -- get
+ end
+ --
+ local name = metadata.name
+ local notsaved = tobesaved[name].metadata.notsaved
+ --
+ if not references then
+ references = { }
+ rawdata.references = references
+ end
+ --
+ local internal = references.internal
+ if not internal then
+ internal = texgetcount(c_locationcount) -- we assume that it has been set
+ references.internal = internal
+ end
+ --
+ if notsaved then
+ usedinternals[internal] = references.used -- todo view (we assume that forward references index entries are used)
+ end
+ --
+ if not references.realpage then
+ references.realpage = 0 -- just to be sure as it can be refered to
+ end
+ --
+ local userdata = rawdata.userdata
+ if userdata then
+ rawdata.userdata = touserdata(userdata)
+ end
+ --
+ references.section = currentid()
+ metadata.level = currentlevel()
+ --
+ local data = notsaved and collected[name] or tobesaved[name]
+ local entries = data.entries
+ --
+ internalreferences[internal] = rawdata
+ preprocessentries(rawdata)
+ entries[#entries+1] = rawdata
+ local label = references.label
+ if label and label ~= "" then
+ tagged[label] = #entries
+ else
+ references.label = nil
+ end
+ return #entries
+end
+
+local function enhanceregister(specification)
+ local name = specification.name
+ local n = specification.n
+ local saved = tobesaved[name]
+ local data = saved.metadata.notsaved and collected[name] or saved
+ local entry = data.entries[n]
+ if entry then
+ entry.references.realpage = texgetcount(c_realpageno)
+ end
+end
+
+-- This can become extendregister(specification)!
+
+local function extendregister(name,tag,rawdata) -- maybe do lastsection internally
+ if type(tag) == "string" then
+ tag = tagged[tag]
+ end
+ if tag then
+ local data = tobesaved[name].metadata.notsaved and collected[name] or tobesaved[name]
+ local entry = data.entries[tag]
+ if entry then
+ local references = entry.references
+ references.lastrealpage = texgetcount(c_realpageno)
+ references.lastsection = currentid()
+ if rawdata then
+ local userdata = rawdata.userdata
+ if userdata then
+ rawdata.userdata = touserdata(userdata)
+ end
+ if rawdata.entries then
+ preprocessentries(rawdata)
+ end
+ local metadata = rawdata.metadata
+ if metadata and not metadata.catcodes then
+ metadata.catcodes = tex.catcodetable -- get
+ end
+ for k, v in next, rawdata do
+ local rk = references[k]
+ if not rk then
+ references[k] = v
+ else
+ for kk, vv in next, v do
+ if type(vv) == "table" then
+ if next(vv) then
+ rk[kk] = vv
+ end
+ elseif vv ~= "" then
+ rk[kk] = vv
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+registers.store = storeregister
+registers.enhance = enhanceregister
+registers.extend = extendregister
+
+function registers.get(tag,n)
+ local list = tobesaved[tag]
+ return list and list.entries[n]
+end
+
+implement {
+ name = "enhanceregister",
+ arguments = { "string", "integer" },
+ actions = function(name,n)
+ enhanceregister { name = name, n = n } -- todo: move to scanner
+ end,
+}
+
+implement {
+ name = "deferredenhanceregister",
+ arguments = { "string", "integer" },
+ protected = true,
+ actions = function(name,n)
+ ctx_latelua { action = enhanceregister, name = name, n = n }
+ end,
+}
+
+implement {
+ name = "extendregister",
+ actions = extendregister,
+ arguments = "2 strings",
+}
+
+implement {
+ name = "storeregister",
+ -- actions = function(rawdata)
+ -- local nofentries = storeregister(rawdata)
+ -- setinternalreference { internal = rawdata.references.internal }
+ -- context(nofentries)
+ -- end,
+ actions = { storeregister, context },
+ arguments = {
+ {
+ { "metadata", {
+ { "kind" },
+ { "name" },
+ { "coding" },
+ { "level", "integer" },
+ { "catcodes", "integer" },
+ { "own" },
+ { "xmlroot" },
+ { "xmlsetup" },
+ }
+ },
+ { "entries", {
+ { "entries", "list" },
+ { "keys", "list" },
+ { "processors", "list" },
+ { "entry" },
+ { "key" },
+ { "processor" },
+ }
+ },
+ { "references", {
+ { "internal", "integer" },
+ { "section", "integer" },
+ { "view" },
+ { "label" },
+ }
+ },
+ { "seeword", {
+ { "text" },
+ }
+ },
+ { "processors", {
+ { "entry" },
+ { "key" },
+ { "page" },
+ }
+ },
+ { "userdata" },
+ }
+ }
+}
+
+-- sorting and rendering
+
+local compare = sorters.comparers.basic
+
+function registers.compare(a,b)
+ local result = compare(a,b)
+ if result ~= 0 then
+ return result
+ else
+ local ka = a.metadata.kind
+ local kb = b.metadata.kind
+ if ka == kb then
+ local ra = a.references
+ local rb = b.references
+ local pa = ra.realpage
+ local pb = rb.realpage
+ if not pa or not pb then
+ return 0
+ elseif pa < pb then
+ return -1
+ elseif pa > pb then
+ return 1
+ else
+ -- new, we need to pick the right one of multiple and
+ -- we want to prevent oscillation in the tuc file so:
+ local ia = ra.internal
+ local ib = rb.internal
+ if not ia or not ib then
+ return 0
+ elseif ia < ib then
+ return -1
+ elseif ia > ib then
+ return 1
+ else
+ return 0
+ end
+ end
+ elseif ka == "see" then
+ return 1
+ elseif kb == "see" then
+ return -1
+ end
+ end
+ return 0
+end
+
+function registers.filter(data,options)
+ data.result = registers.filtercollected(nil,options.criterium,options.number,data.entries,true)
+end
+
+local seeindex = 0
+
+-- meerdere loops, seewords, dan words, anders seewords
+
+-- todo: split seeword
+
+local function crosslinkseewords(result,check) -- all words
+ -- collect all seewords
+ local seewords = { }
+ for i=1,#result do
+ local data = result[i]
+ local seeword = data.seeword
+ if seeword then
+ local seetext = seeword.text
+ if seetext and not seewords[seetext] then
+ seeindex = seeindex + 1
+ seewords[seetext] = seeindex
+ if trace_registers then
+ report_registers("see word %03i: %s",seeindex,seetext)
+ end
+ end
+ end
+ end
+
+ -- mark seeparents
+
+ -- local seeparents = { }
+ -- for i=1,#result do
+ -- local data = result[i]
+ -- local word = data.list[1]
+ -- local okay = word and word[1]
+ -- if okay then
+ -- local seeindex = seewords[okay]
+ -- if seeindex then
+ -- seeparents[okay] = data
+ -- data.references.seeparent = seeindex
+ -- if trace_registers then
+ -- report_registers("see parent %03i: %s",seeindex,okay)
+ -- end
+ -- end
+ -- end
+ -- end
+
+ local entries = { }
+ local keywords = { }
+ local seeparents = { }
+ for i=1,#result do
+ local data = result[i]
+ local word = data.list
+ local size = #word
+ if data.seeword then
+ -- beware: a seeword has an extra entry for sorting purposes
+ size = size - 1
+ end
+ for i=1,size do
+ local w = word[i]
+ local e = w[1]
+ local k = w[2] or e
+ entries [i] = e
+ keywords[i] = k
+ end
+ -- first try the keys
+ local okay, seeindex
+ for n=size,1,-1 do
+ okay = concat(keywords,"+",1,n)
+ seeindex = seewords[okay]
+ -- first try the entries
+ if seeindex then
+ break
+ end
+ okay = concat(entries,"+",1,n)
+ seeindex = seewords[okay]
+ if seeindex then
+ break
+ end
+ end
+ if seeindex then
+ seeparents[okay] = data
+ data.references.seeparent = seeindex
+ if trace_registers then
+ report_registers("see parent %03i: %s",seeindex,okay)
+ end
+ end
+ end
+
+ -- mark seewords and extend sort list
+ for i=1,#result do
+ local data = result[i]
+ local seeword = data.seeword
+ if seeword then
+ local text = seeword.text
+ if text then
+ local seeparent = seeparents[text]
+ if seeparent then
+ local seeindex = seewords[text]
+ data.references.seeindex = seeindex
+ if trace_registers then
+ report_registers("see crosslink %03i: %s",seeindex,text)
+ end
+ seeword.valid = true
+ elseif check then
+ report_registers("invalid crosslink : %s, %s",text,"ignored")
+ seeword.valid = false
+ else
+ report_registers("invalid crosslink : %s, %s",text,"passed")
+ seeword.valid = true
+ end
+ end
+ end
+ end
+end
+
+local function removeemptyentries(result)
+ local i, n, m = 1, #result, 0
+ while i <= n do
+ local entry = result[i]
+ if #entry.list == 0 or #entry.split == 0 then
+ remove(result,i)
+ n = n - 1
+ m = m + 1
+ else
+ i = i + 1
+ end
+ end
+ if m > 0 then
+ report_registers("%s empty entries removed in register",m)
+ end
+end
+
+function registers.prepare(data,options)
+ -- data has 'list' table
+ local strip = sorters.strip
+ local splitter = sorters.splitters.utf
+ local result = data.result
+ if result then
+ local seeprefix = char(0)
+ for i=1, #result do
+ local entry = result[i]
+ local split = { }
+ local list = entry.list
+ if list then
+ if entry.seeword then
+ -- we can have multiple seewords, only two levels supported
+ list[#list+1] = { seeprefix .. strip(entry.seeword.text) }
+ end
+ for l=1,#list do
+ local ll = list[l]
+ local word = ll[1]
+ local key = ll[2]
+ if not key or key == "" then
+ key = word
+ end
+ split[l] = splitter(strip(key))
+ end
+ end
+ entry.split = split
+ end
+ removeemptyentries(result)
+ crosslinkseewords(result,options.check ~= v_no)
+ end
+end
+
+function registers.sort(data,options)
+ -- if options.pagenumber == false then
+ -- sorters.sort(data.result,compare)
+ -- else
+ sorters.sort(data.result,registers.compare)
+ -- end
+end
+
+function registers.unique(data,options)
+ local result = { }
+ local nofresult = 0
+ local prev = nil
+ local dataresult = data.result
+ local bysection = options.pagemethod == v_section -- normally page
+ for k=1,#dataresult do
+ local v = dataresult[k]
+ if prev then
+ local vr = v.references
+ local pr = prev.references
+ if not equal(prev.list,v.list) then
+ -- ok
+ elseif bysection and vr.section == pr.section then
+ v = nil
+ -- ok
+ elseif pr.realpage ~= vr.realpage then
+ -- ok
+ else
+ local pl = pr.lastrealpage
+ local vl = vr.lastrealpage
+ if pl or vl then
+ if not vl then
+ -- ok
+ elseif not pl then
+ -- ok
+ elseif pl ~= vl then
+ -- ok
+ else
+ v = nil
+ end
+ else
+ v = nil
+ end
+ end
+ end
+ if v then
+ nofresult = nofresult + 1
+ result[nofresult] = v
+ prev = v
+ end
+ end
+ data.result = result
+end
+
+function registers.finalize(data,options) -- maps character to index (order)
+ local result = data.result
+ data.metadata.nofsorted = #result
+ local split = { }
+ local nofsplit = 0
+ local lasttag = nil
+ local done = nil
+ local nofdone = 0
+ local firstofsplit = sorters.firstofsplit
+ for k=1,#result do
+ local v = result[k]
+ local entry, tag = firstofsplit(v)
+ if tag ~= lasttag then
+ if trace_registers then
+ report_registers("splitting at %a",tag)
+ end
+ done = { }
+ nofdone = 0
+ nofsplit = nofsplit + 1
+ lasttag = tag
+ split[nofsplit] = { tag = tag, data = done }
+ end
+ nofdone = nofdone + 1
+ done[nofdone] = v
+ end
+ data.result = split
+end
+
+-- local function analyzeregister(class,options)
+-- local data = collected[class]
+-- if data and data.entries then
+-- options = options or { }
+-- sorters.setlanguage(options.language,options.method,options.numberorder)
+-- registers.filter(data,options) -- filter entries into results (criteria)
+-- registers.prepare(data,options) -- adds split table parallel to list table
+-- registers.sort(data,options) -- sorts results
+-- registers.unique(data,options) -- get rid of duplicates
+-- registers.finalize(data,options) -- split result in ranges
+-- data.metadata.sorted = true
+-- return data.metadata.nofsorted or 0
+-- else
+-- return 0
+-- end
+-- end
+
+local function analyzeregister(class,options)
+ local data = rawget(collected,class)
+ if not data then
+ local list = utilities.parsers.settings_to_array(class)
+ local entries = { }
+ local metadata = false
+ for i=1,#list do
+ local l = list[i]
+ local d = collected[l]
+ local e = d.entries
+ for i=1,#e do
+ entries[#entries+1] = e[i]
+ end
+ if not metadata then
+ metadata = d.metadata
+ end
+ end
+ data = {
+ metadata = metadata or { },
+ entries = entries,
+ }
+ collected[class] = data
+ end
+ if data and data.entries then
+ options = options or { }
+ sorters.setlanguage(options.language,options.method,options.numberorder)
+ registers.filter(data,options) -- filter entries into results (criteria)
+ registers.prepare(data,options) -- adds split table parallel to list table
+ registers.sort(data,options) -- sorts results
+ registers.unique(data,options) -- get rid of duplicates
+ registers.finalize(data,options) -- split result in ranges
+ data.metadata.sorted = true
+ return data.metadata.nofsorted or 0
+ else
+ return 0
+ end
+end
+
+registers.analyze = analyzeregister
+
+implement {
+ name = "analyzeregister",
+ actions = { analyzeregister, context },
+ arguments = {
+ "string",
+ {
+ { "language" },
+ { "method" },
+ { "numberorder" },
+ { "compress" },
+ { "criterium" },
+ { "pagenumber", "boolean" },
+ }
+ }
+}
+
+-- todo take conversion from index
+
+function registers.userdata(index,name)
+ local data = references.internals[tonumber(index)]
+ return data and data.userdata and data.userdata[name] or nil
+end
+
+implement {
+ name = "registeruserdata",
+ actions = { registers.userdata, context },
+ arguments = { "integer", "string" }
+}
+
+-- todo: ownnumber
+
+local function pagerange(f_entry,t_entry,is_last,prefixspec,pagespec)
+ local fer = f_entry.references
+ local ter = t_entry.references
+ ctx_registerpagerange(
+ f_entry.metadata.name or "",
+ f_entry.processors and f_entry.processors[2] or "",
+ fer.internal or 0,
+ fer.realpage or 0,
+ function()
+ h_prefixpage(f_entry,prefixspec,pagespec)
+ end,
+ ter.internal or 0,
+ ter.lastrealpage or ter.realpage or 0,
+ function()
+ if is_last then
+ h_prefixlastpage(t_entry,prefixspec,pagespec) -- swaps page and realpage keys
+ else
+ h_prefixpage (t_entry,prefixspec,pagespec)
+ end
+ end
+ )
+end
+
+local function pagenumber(entry,prefixspec,pagespec)
+ local er = entry.references
+ ctx_registeronepage(
+ entry.metadata.name or "",
+ entry.processors and entry.processors[2] or "",
+ er.internal or 0,
+ er.realpage or 0,
+ function() h_prefixpage(entry,prefixspec,pagespec) end
+ )
+end
+
+local function packed(f_entry,t_entry)
+ local fer = f_entry.references
+ local ter = t_entry.references
+ ctx_registerpacked(
+ fer.internal or 0,
+ ter.internal or 0
+ )
+end
+
+local function collapsedpage(pages)
+ for i=2,#pages do
+ local first = pages[i-1]
+ local second = pages[i]
+ local first_first = first[1]
+ local first_last = first[2]
+ local second_first = second[1]
+ local second_last = second[2]
+ local first_last_pn = first_last .references.realpage
+ local second_first_pn = second_first.references.realpage
+ local second_last_pn = second_last .references.realpage
+ local first_last_last = first_last .references.lastrealpage
+ local second_first_last = second_first.references.lastrealpage
+ if first_last_last then
+ first_last_pn = first_last_last
+ if second_first == second_last and second_first_pn <= first_last_pn then
+ -- 2=8, 5 -> 12=8
+ remove(pages,i)
+ return true
+ elseif second_first == second_last and second_first_pn > first_last_pn then
+ -- 2=8, 9 -> 2-9
+ pages[i-1] = { first_first, second_last }
+ remove(pages,i)
+ return true
+ elseif second_last_pn < first_last_pn then
+ -- 2=8, 3-4 -> 2=8
+ remove(pages,i)
+ return true
+ elseif first_last_pn < second_last_pn then
+ -- 2=8, 3-9 -> 2-9
+ pages[i-1] = { first_first, second_last }
+ remove(pages,i)
+ return true
+ elseif first_last_pn + 1 == second_first_pn and second_last_pn > first_last_pn then
+ -- 2=8, 9-11 -> 2-11
+ pages[i-1] = { first_first, second_last }
+ remove(pages,i)
+ return true
+ elseif second_first.references.lastrealpage then
+ -- 2=8, 9=11 -> 2-11
+ pages[i-1] = { first_first, second_last }
+ remove(pages,i)
+ return true
+ end
+ elseif second_first_last then
+ second_first_pn = second_first_last
+ if first_last_pn == second_first_pn then
+ -- 2-4, 5=9 -> 2-9
+ pages[i-1] = { first_first, second_last }
+ remove(pages,i)
+ return true
+ end
+ elseif first_last_pn == second_first_pn then
+ -- 2-3, 3-4 -> 2-4
+ pages[i-1] = { first_last, second_last }
+ remove(pages,i)
+ return true
+ end
+ end
+ return false
+end
+
+local function collapsepages(pages)
+ while collapsedpage(pages) do end
+ return #pages
+end
+
+-- todo: create an intermediate structure and flush that
+
+function registers.flush(data,options,prefixspec,pagespec)
+ local compress = options.compress
+ local collapse_singles = compress == v_yes
+ local collapse_ranges = compress == v_all
+ local collapse_packed = compress == v_packed
+ local show_page_number = options.pagenumber ~= false -- true or false
+ local bysection = options.pagemethod == v_section
+ local result = data.result
+ local maxlevel = 0
+ --
+ for i=1,#result do
+ local data = result[i].data
+ for d=1,#data do
+ local m = #data[d].list
+ if m > maxlevel then
+ maxlevel = m
+ end
+ end
+ end
+ if maxlevel > absmaxlevel then
+ maxlevel = absmaxlevel
+ report_registers("limiting level to %a",maxlevel)
+ end
+ --
+ ctx_startregisteroutput()
+ local done = { }
+ local started = false
+ for i=1,#result do
+ -- ranges need checking !
+ local sublist = result[i]
+ -- local done = { false, false, false, false }
+ for i=1,maxlevel do
+ done[i] = false
+ end
+ local data = sublist.data
+ local d = 0
+ local n = 0
+ ctx_startregistersection(sublist.tag)
+ for d=1,#data do
+ local entry = data[d]
+ if entry.metadata.kind == "see" then
+ local list = entry.list
+ if #list > 1 then
+ list[#list] = nil
+ else
+ -- we have an \seeindex{Foo}{Bar} without Foo being defined anywhere .. somehow this message is wrong
+ -- report_registers("invalid see entry in register %a, reference %a",entry.metadata.name,list[1][1])
+ end
+ end
+ end
+ -- ok, this is tricky: we use e[i] delayed so we need it to be local
+ -- but we don't want to allocate too many entries so there we go
+
+ while d < #data do
+ d = d + 1
+ local entry = data[d]
+-- inspect(entry)
+ local metadata = entry.metadata
+ local kind = metadata.kind
+ local list = entry.list
+ local e = { false, false, false }
+ for i=3,maxlevel do
+ e[i] = false
+ end
+ for i=1,maxlevel do
+ local li = list[i]
+ if list[i] then
+ e[i] = li[1]
+ end
+ if e[i] == done[i] then
+ -- skip
+ elseif not e[i] then
+ -- see ends up here
+ -- can't happen any more
+ done[i] = false
+ for j=i+1,maxlevel do
+ done[j] = false
+ end
+ elseif e[i] == "" then
+ done[i] = false
+ for j=i+1,maxlevel do
+ done[j] = false
+ end
+ else
+ done[i] = e[i]
+ for j=i+1,maxlevel do
+ done[j] = false
+ end
+ if started then
+ ctx_stopregisterentry()
+ started = false
+ end
+ if n == i then
+ -- ctx_stopregisterentries()
+ -- ctx_startregisterentries(n)
+ else
+ while n > i do
+ n = n - 1
+ ctx_stopregisterentries()
+ end
+ while n < i do
+ n = n + 1
+ ctx_startregisterentries(n)
+ end
+ end
+ local references = entry.references
+ local processors = entry.processors
+ local internal = references.internal or 0
+ local seeparent = references.seeparent or ""
+ local processor = (li and li[3]) or (processors and processors[1]) or ""
+ -- so, we need to keep e as is (local), or we need local title = e[i] ... which might be
+ -- more of a problem
+ ctx_startregisterentry(0) -- will become a counter
+ started = true
+ if metadata then
+ ctx_registerentry(metadata.name or "",processor,internal,seeparent,function() h_title(e[i],metadata) end)
+ else
+ -- can this happen?
+ ctx_registerentry("",processor,internal,seeindex,e[i])
+ end
+ end
+ end
+
+ local function case_1()
+ -- we collapse ranges and keep existing ranges as they are
+ -- so we get prebuilt as well as built ranges
+ local first, last, prev, pages, dd, nofpages = entry, nil, entry, { }, d, 0
+ while dd < #data do
+ dd = dd + 1
+ local next = data[dd]
+ if next and next.metadata.kind == "see" then
+ dd = dd - 1
+ break
+ else
+ local el, nl = entry.list, next.list
+ if not equal(el,nl) then
+ dd = dd - 1
+ --~ first = nil
+ break
+ elseif next.references.lastrealpage then
+ nofpages = nofpages + 1
+ pages[nofpages] = first and { first, last or first } or { entry, entry }
+ nofpages = nofpages + 1
+ pages[nofpages] = { next, next }
+ first, last, prev = nil, nil, nil
+ elseif not first then
+ first, prev = next, next
+ elseif next.references.realpage - prev.references.realpage == 1 then -- 1 ?
+ last, prev = next, next
+ else
+ nofpages = nofpages + 1
+ pages[nofpages] = { first, last or first }
+ first, last, prev = next, nil, next
+ end
+ end
+ end
+ if first then
+ nofpages = nofpages + 1
+ pages[nofpages] = { first, last or first }
+ end
+ if collapse_ranges and nofpages > 1 then
+ nofpages = collapsepages(pages)
+ end
+ if nofpages > 0 then -- or 0
+ d = dd
+ for p=1,nofpages do
+ local page = pages[p]
+ local first = page[1]
+ local last = page[2]
+ if first == last then
+ if first.references.lastrealpage then
+ pagerange(first,first,true,prefixspec,pagespec)
+ else
+ pagenumber(first,prefixspec,pagespec)
+ end
+ elseif last.references.lastrealpage then
+ pagerange(first,last,true,prefixspec,pagespec)
+ else
+ pagerange(first,last,false,prefixspec,pagespec)
+ end
+ end
+ elseif entry.references.lastrealpage then
+ pagerange(entry,entry,true,prefixspec,pagespec)
+ else
+ pagenumber(entry,prefixspec,pagespec)
+ end
+ end
+
+ local function case_2()
+ local first = nil
+ local last = nil
+ while true do
+ if not first then
+ first = entry
+ end
+ last = entry
+ if d == #data then
+ break
+ else
+ d = d + 1
+ local next = data[d]
+ if next.metadata.kind == "see" or not equal(entry.list,next.list) then
+ d = d - 1
+ break
+ else
+ entry = next
+ end
+ end
+ end
+ packed(first,last) -- returns internals
+ end
+
+ local function case_3()
+ while true do
+ if entry.references.lastrealpage then
+ pagerange(entry,entry,true,prefixspec,pagespec)
+ else
+ pagenumber(entry,prefixspec,pagespec)
+ end
+ if d == #data then
+ break
+ else
+ d = d + 1
+ local next = data[d]
+ if next.metadata.kind == "see" or not equal(entry.list,next.list) then
+ d = d - 1
+ break
+ else
+ entry = next
+ end
+ end
+ end
+ end
+
+ local function case_4()
+ local t = { }
+ local nt = 0
+ while true do
+ if entry.seeword and entry.seeword.valid then
+ nt = nt + 1
+ t[nt] = entry
+ end
+ if d == #data then
+ break
+ else
+ d = d + 1
+ local next = data[d]
+ if next.metadata.kind ~= "see" or not equal(entry.list,next.list) then
+ d = d - 1
+ break
+ else
+ entry = next
+ end
+ end
+ end
+ for i=1,nt do
+ local entry = t[i]
+ local seeword = entry.seeword
+ local seetext = seeword.text or ""
+ local processor = seeword.processor or (entry.processors and entry.processors[1]) or ""
+ local seeindex = entry.references.seeindex or ""
+ ctx_registerseeword(
+ metadata.name or "",
+ i,
+ nt,
+ processor,
+ 0,
+ seeindex,
+ function() h_title(seetext,metadata) end
+ )
+ end
+ end
+
+ local function case_5()
+ local first = d
+ while true do
+ if d == #data then
+ break
+ else
+ d = d + 1
+ local next = data[d]
+ if next.metadata.kind == "see" or not equal(entry.list,next.list) then
+ d = d - 1
+ break
+ else
+ entry = next
+ end
+ end
+ end
+ local last = d
+ local n = last - first + 1
+ local i = 0
+ local name = metadata.name or ""
+ local processor = entry.processors and entry.processors[1] or ""
+ for e=first,last do
+ local d = data[e]
+ local sectionindex = d.references.internal or 0
+ i = i + 1
+ ctx_registersection(
+ name,
+ i,
+ n,
+ processor,
+ 0,
+ sectionindex,
+ function() h_prefix(d,prefixspec,true) end
+ )
+ end
+ end
+
+ if kind == "entry" then
+ if show_page_number then
+ ctx_startregisterpages()
+ if bysection then
+ case_5()
+ elseif collapse_singles or collapse_ranges then
+ case_1()
+ elseif collapse_packed then
+ case_2()
+ else
+ case_3()
+ end
+ ctx_stopregisterpages()
+ end
+ elseif kind == "see" then
+ ctx_startregisterseewords()
+ case_4()
+ ctx_stopregisterseewords()
+ end
+
+ end
+
+ if started then
+ ctx_stopregisterentry()
+ started = false
+ end
+ while n > 0 do
+ ctx_stopregisterentries()
+ n = n - 1
+ end
+ ctx_stopregistersection()
+ end
+ ctx_stopregisteroutput()
+ -- for now, maybe at some point we will do a multipass or so
+ data.result = nil
+ data.metadata.sorted = false
+ -- temp hack for luajittex :
+ local entries = data.entries
+ for i=1,#entries do
+ entries[i].split = nil
+ end
+ -- collectgarbage("collect")
+end
+
+function registers.process(class,...)
+ if analyzeregister(class,...) > 0 then
+ local data = collected[class]
+ registers.flush(data,...)
+ end
+end
+
+implement {
+ name = "processregister",
+ actions = registers.process,
+ arguments = {
+ "string",
+ {
+ { "language" },
+ { "method" },
+ { "numberorder" },
+ { "compress" },
+ { "criterium" },
+ { "check" },
+ { "pagemethod" },
+ { "pagenumber", "boolean" },
+ },
+ {
+ { "separatorset" },
+ { "conversionset" },
+ { "starter" },
+ { "stopper" },
+ { "set" },
+ { "segments" },
+ { "connector" },
+ },
+ {
+ { "prefix" },
+ { "separatorset" },
+ { "conversionset" },
+ { "starter" },
+ { "stopper" },
+ { "segments" },
+ }
+ }
+}
+
+-- linked registers
+
+function registers.findinternal(tag,where,n)
+ -- local collected = registers.collected
+ local current = collected[tag]
+ if not current then
+ return 0
+ end
+ local entries = current.entries
+ if not entries then
+ return 0
+ end
+ local entry = entries[n]
+ if not entry then
+ return 0
+ end
+ local list = entry.list
+ local size = #list
+ --
+ local start, stop, step
+ if where == v_previous then
+ start = n - 1
+ stop = 1
+ step = -1
+ elseif where == v_first then
+ start = 1
+ stop = #entries
+ step = 1
+ elseif where == v_last then
+ start = #entries
+ stop = 1
+ step = -1
+ else
+ start = n + 1
+ stop = #entries
+ step = 1
+ end
+ --
+ for i=start,stop,step do
+ local r = entries[i]
+ local l = r.list
+ local s = #l
+ if s == size then
+ local ok = true
+ for i=1,size do
+ if list[i][1] ~= l[i][1] then
+ ok = false
+ break
+ end
+ end
+ if ok then
+ return r.references.internal or 0
+ end
+ end
+ end
+ return 0
+end
+
+interfaces.implement {
+ name = "findregisterinternal",
+ arguments = { "string", "string", "integer" },
+ actions = { registers.findinternal, context },
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-reg.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-reg.mkxl
index 22a6614b785..485b68b746c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-reg.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-reg.mkxl
@@ -13,7 +13,7 @@
\writestatus{loading}{ConTeXt Structure Macros / Registers}
-\registerctxluafile{strc-reg}{}
+\registerctxluafile{strc-reg}{autosuffix}
\unprotect
@@ -138,36 +138,37 @@
%D test \index{test+one} test \index{test+two} more \index{more}
%D \stoptyping
-\mutable\let\currentregistercharacter \empty
-\mutable\let\currentregistercoding \empty
-\mutable\let\currentregisterentries \empty
-\mutable\let\currentregisterentriesa \empty
-\mutable\let\currentregisterentriesb \empty
-\mutable\let\currentregisterentriesc \empty
-\mutable\let\currentregisterexpansion \empty
-\mutable\let\currentregisterkeys \empty
-\mutable\let\currentregisterkeysa \empty
-\mutable\let\currentregisterkeysb \empty
-\mutable\let\currentregisterkeysc \empty
-\mutable\let\currentregisterlabel \empty
-\mutable\let\currentregistermaxwidth \empty
-\mutable\let\currentregistername \empty
-\mutable\let\currentregisternumber \empty
-\mutable\let\currentregisterownnumber \empty
-\mutable\let\currentregisterpageindex \empty
-\mutable\let\currentregisterpagesymbol \empty
-\mutable\let\currentregistersectionindex\empty
-\mutable\let\currentregisterseeindex \empty
-\mutable\let\currentregisterseeword \empty
-\mutable\let\currentregistersynchronize \empty
-\mutable\let\currentregisterxmlsetup \empty
-\mutable\let\currentregisterprocessors \empty
-\mutable\let\currentregisterprocessorsa \empty
-\mutable\let\currentregisterprocessorsb \empty
-\mutable\let\currentregisterprocessorsc \empty
+\mutable\lettonothing\currentregistercharacter
+\mutable\lettonothing\currentregistercoding
+\mutable\lettonothing\currentregisterentries
+\mutable\lettonothing\currentregisterentriesa
+\mutable\lettonothing\currentregisterentriesb
+\mutable\lettonothing\currentregisterentriesc
+\mutable\lettonothing\currentregisterexpansion
+\mutable\lettonothing\currentregisterkeys
+\mutable\lettonothing\currentregisterkeysa
+\mutable\lettonothing\currentregisterkeysb
+\mutable\lettonothing\currentregisterkeysc
+\mutable\lettonothing\currentregisterlabel
+\mutable\lettonothing\currentregistermaxwidth
+\mutable\lettonothing\currentregistername
+\mutable\lettonothing\currentregisternumber
+\mutable\lettonothing\currentregisterownnumber
+\mutable\lettonothing\currentregisterpageindex
+\mutable\lettonothing\currentregisterpagesymbol
+\mutable\lettonothing\currentregistersectionindex
+\mutable\lettonothing\currentregisterseeindex
+\mutable\lettonothing\currentregisterseeword
+\mutable\lettonothing\currentregistersynchronize
+\mutable\lettonothing\currentregisterxmlsetup
+\mutable\lettonothing\currentregisterprocessors
+\mutable\lettonothing\currentregisterprocessorsa
+\mutable\lettonothing\currentregisterprocessorsb
+\mutable\lettonothing\currentregisterprocessorsc
\newconditional\c_strc_registers_defining
\setnewconstant\c_strc_registers_maxlevel \plusfive
+\newconditional\c_strc_registers_vertical \settrue\c_strc_registers_vertical
\ifdefined\Word \else \protected\def\Word#1{#1} \fi
@@ -187,8 +188,8 @@
\dorecurse\c_strc_registers_maxlevel{% weird, expanded should not be needed
\normalexpanded{\defineregister[\currentregister:\recurselevel][\currentregister]}%
%\defineregister[\currentregister:\recurselevel][\currentregister]%
- \letregisterparameter{\c!entries:\recurselevel}\empty % needed as we use detokenize (ok, we can
- \letregisterparameter{\c!keys :\recurselevel}\empty % avoid it, but it's faster too)
+ \resetregisterparameter{\c!entries:\recurselevel}% needed as we use detokenize (ok, we can
+ \resetregisterparameter{\c!keys :\recurselevel}% avoid it, but it's faster too)
}%
%
\setfalse\c_strc_registers_defining
@@ -201,12 +202,14 @@
%D Registering:
-\glet\currentregistername \empty
-\glet\currentregisternumber\!!zerocount
+\glettonothing\currentregistername
+\glet \currentregisternumber\!!zerocount
\def\strc_registers_register_page_entry
{\iftrialtypesetting
\expandafter\gobblethreearguments
+ \orelse\ifconditional\prerollrun
+ \expandafter\gobblethreearguments
\else
\expandafter\strc_registers_register_page_entry_indeed
\fi}
@@ -441,16 +444,16 @@
\fi}
\def\strc_registers_insert_entry_nop_par#1#2%
- {\flushatnextpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!entries={#2}}{}}}
+ {\ifprerolling\else\flushatnextpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!entries={#2}}{}}\fi}
\def\strc_registers_insert_entry_yes_par#1#2#3%
- {\flushatnextpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!alternative=#2,\c!entries={#3}}{}}}
+ {\ifprerolling\else\flushatnextpar{\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!alternative=#2,\c!entries={#3}}{}}\fi}
\def\strc_registers_insert_entry_nop_txt#1#2%
- {\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!entries={#2}}{}}
+ {\ifprerolling\else\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!entries={#2}}{}\fi}
\def\strc_registers_insert_entry_yes_txt#1#2#3%
- {\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!alternative=#2,\c!entries={#3}}{}}
+ {\ifprerolling\else\strc_registers_register_page_entry\currentregister{\c!keys={#1},\c!alternative=#2,\c!entries={#3}}{}\fi}
%D This is one of the few commands where a stop has arguments.
@@ -798,7 +801,7 @@
\endgroup
\blank[\v!samepage]%
\registerparameter\c!after
- \par
+ \endgraf
\nobreak}
% b = <goodbreak> <before> <character> <after> <nobreak>
@@ -819,10 +822,10 @@
\registerparameter\c!after
\nobreak}
-\setvalue{\??registerindicator a}#1{\strc_registers_indicator_a{#1}{#1}}
-\setvalue{\??registerindicator A}#1{\strc_registers_indicator_a{#1}{\WORD{#1}}}
-\setvalue{\??registerindicator b}#1{\strc_registers_indicator_b{#1}{#1}}
-\setvalue{\??registerindicator B}#1{\strc_registers_indicator_b{#1}{\WORD{#1}}}
+\defcsname\??registerindicator a\endcsname#1{\strc_registers_indicator_a{#1}{#1}}
+\defcsname\??registerindicator A\endcsname#1{\strc_registers_indicator_a{#1}{\WORD{#1}}}
+\defcsname\??registerindicator b\endcsname#1{\strc_registers_indicator_b{#1}{#1}}
+\defcsname\??registerindicator B\endcsname#1{\strc_registers_indicator_b{#1}{\WORD{#1}}}
%D The following macros are the interface to the rendering. These are
%D generated by \LUA. This might change.
@@ -844,8 +847,19 @@
%D placeindex as then flushing takes place inside the index. Took me hours
%D to notice that.
-\newconstant\c_strc_registers_page_state % 0=nothing 1=page 2=see
-\newdimen \d_strc_registers_distance
+\newconstant \c_strc_registers_page_state % 0=nothing 1=page 2=see
+\newdimension\d_strc_registers_distance
+\newinteger \c_strc_register_level
+
+\def\strc_registers_update_text_properties
+ {\ifx\m_current_register\currentregister\else
+ \useregisterstyleandcolor\c!textstyle\c!textcolor
+ \fi}
+
+\def\strc_registers_update_page_properties
+ {\ifx\m_current_register\currentregister\else
+ \useregisterstyleandcolor\c!pagestyle\c!pagecolor
+ \fi}
\permanent\protected\def\startregisteroutput
{\endgraf
@@ -861,8 +875,70 @@
\dostoptagged
\endgroup}
-\newdimen\d_strc_registers_hangindent
-\newcount\c_strc_registers_hangafter
+\newdimension\d_strc_registers_hangindent
+\newinteger \c_strc_registers_hangafter
+
+% \permanent\protected\def\usenestedregisterstyleandcolor#1#2% will change
+% {\useregisterstyleandcolor#1#2%
+% % how about style
+% \ifconditional\c_strc_registers_text_interaction
+% \ifempty\currentcolorparameter \else
+% \resetinteractionparameter\c!color
+% \resetinteractionparameter\c!contrastcolor
+% \fi
+% \fi}
+%
+% \permanent\protected\def\startregisterentries#1% depth
+% {\endgraf
+% \begingroup
+% \c_strc_register_level\ifnum#1>\c_strc_registers_maxlevel\c_strc_registers_maxlevel\else#1\fi\relax
+% \dostarttagged\t!registerentries\empty
+% % \let\savedcurrentregister\currentregister
+% \pushmacro\currentregister
+% \edef\currentregister{\currentregister:\number\c_strc_register_level}%
+% \usenestedregisterstyleandcolor\c!textstyle\c!textcolor
+% \ifnum\c_strc_register_level>\plusone
+% \advanceby\leftskip\d_strc_registers_distance\relax
+% \fi
+% \d_strc_registers_hangindent\registerparameter\c!distance\relax
+% \c_strc_registers_hangafter \plusone
+% \blank[\v!samepage]%
+% % \let\currentregister\savedcurrentregister}
+% \popmacro\currentregister}
+%
+% \permanent\protected\def\stopregisterentries
+% {\endgraf
+% \dostoptagged
+% \endgroup}
+
+%D See test suite \type {registers/horizontal-001.tex} for a more extensive example
+%D of horizontal:
+%D
+%D \stoptyping
+%D \defineregister
+%D [demo]
+%D [n=1,
+%D pagenumber=no,
+%D textalternative=horizontal,
+%D distance=0pt]
+%D
+%D \setupregister [demo] [2] [textstyle=bold,left={, }]
+%D \setupregister [demo] [3] [textstyle=italic,left={, }]
+%D
+%D \setregisterentry [demo] [entries:1={alpha}, entries:2={one}, entries:3={first}]
+%D \setregisterentry [demo] [entries:1={beta}, entries:2={two}, entries:3={last}]
+%D
+%D \starttext
+%D \starttitle[title=Demo]
+%D \placeregister[demo]
+%D \stoptitle
+%D \stoptext
+%D \stoptyping
+
+\appendtoks
+ \doifelse{\registerparameter\c!textalternative}\v!horizontal
+ \setfalse\settrue\c_strc_registers_vertical
+\to \everysetupregister
\permanent\protected\def\usenestedregisterstyleandcolor#1#2% will change
{\useregisterstyleandcolor#1#2%
@@ -875,21 +951,24 @@
\fi}
\permanent\protected\def\startregisterentries#1% depth
- {\endgraf
+ {\ifconditional\c_strc_registers_vertical
+ \endgraf
+ \fi
\begingroup
- \scratchcounter\ifnum#1>\c_strc_registers_maxlevel\c_strc_registers_maxlevel\else#1\fi\relax
+ \c_strc_register_level\ifnum#1>\c_strc_registers_maxlevel\c_strc_registers_maxlevel\else#1\fi\relax
\dostarttagged\t!registerentries\empty
-% \let\savedcurrentregister\currentregister
- \pushmacro\currentregister
- \edef\currentregister{\currentregister:\number\scratchcounter}%
+ \pushmacro\currentregister % bah
+ \edef\currentregister{\currentregister:\number\c_strc_register_level}%
+ \let\currentnestedregister\currentregister
\usenestedregisterstyleandcolor\c!textstyle\c!textcolor
- \ifnum\scratchcounter>\plusone
- \advance\leftskip\d_strc_registers_distance\relax
+ \ifnum\c_strc_register_level>\plusone
+ \advanceby\leftskip\d_strc_registers_distance\relax
\fi
\d_strc_registers_hangindent\registerparameter\c!distance\relax
\c_strc_registers_hangafter \plusone
- \blank[\v!samepage]%
-% \let\currentregister\savedcurrentregister}
+ \ifconditional\c_strc_registers_vertical
+ \blank[\v!samepage]%
+ \fi
\popmacro\currentregister}
\permanent\protected\def\stopregisterentries
@@ -897,17 +976,40 @@
\dostoptagged
\endgroup}
+% \permanent\protected\def\startregisterentry#1% todo: level
+% {\typo_injectors_check_register
+% \begingroup
+% \dostarttagged\t!registerentry\empty
+% \global\setconstant\c_strc_registers_page_state\zerocount
+% \hangindent\d_strc_registers_hangindent
+% \hangafter \c_strc_registers_hangafter
+% \typo_injectors_mark_register}
+%
+% \permanent\protected\def\stopregisterentry
+% {\endgraf
+% \global\setconstant\c_strc_registers_page_state\zerocount
+% \dostoptagged
+% \endgroup}
+
\permanent\protected\def\startregisterentry#1% todo: level
{\typo_injectors_check_register
\begingroup
\dostarttagged\t!registerentry\empty
\global\setconstant\c_strc_registers_page_state\zerocount
- \hangindent\d_strc_registers_hangindent
- \hangafter \c_strc_registers_hangafter
+ \ifconditional\c_strc_registers_vertical
+ \hangindent\d_strc_registers_hangindent
+ \hangafter \c_strc_registers_hangafter
+ \else
+ \namedregisterparameter\currentnestedregister\c!left\relax
+ \fi
\typo_injectors_mark_register}
\permanent\protected\def\stopregisterentry
- {\endgraf
+ {\ifconditional\c_strc_registers_vertical
+ \endgraf
+ \else
+ \namedregisterparameter\currentnestedregister\c!right\relax
+ \fi
\global\setconstant\c_strc_registers_page_state\zerocount
\dostoptagged
\endgroup}
@@ -966,11 +1068,14 @@
% \applyprocessor{#1}{\registerparameter\c!pagecommand{#4}}%
% \fi}
+\let\currentregisterrealpage\!!zerocount % todo: more general accessor
+
\permanent\protected\def\withregisterpagecommand#1#2#3#4%
{\ifcase#3\relax
{\tt [entry\space not\space flushed]}%
\else
\def\currentregisterpageindex{#2}%
+ \def\currentregisterrealpage{#3}%
\iflocation
\strc_references_goto_internal{\applyprocessor{#1}{\registerparameter\c!pagecommand{#4}}}[internal(#2)]%
\else
@@ -978,6 +1083,8 @@
\fi
\fi}
+\lettonothing\m_current_register
+
\permanent\protected\def\pushcurrentregister#1%
{\let\m_current_register\currentregister
\edef\currentregister{#1}}
@@ -987,6 +1094,7 @@
\permanent\protected\def\registeronepage#1#2#3#4#5% #1:class #2:processor content
{\pushcurrentregister{#1}%
+ \strc_registers_update_page_properties
\edef\p_pagenumber{\registerparameter\c!pagenumber}%
\ifx\p_pagenumber\v!no\else
\registerpageseparator
@@ -1011,6 +1119,7 @@
\permanent\protected\def\registerpagerange#1#2#3#4#5#6#7#8% #1:class #2:processor content, content todo: -- configurable
{\pushcurrentregister{#1}%
+ \strc_registers_update_page_properties
\edef\p_pagenumber{\registerparameter\c!pagenumber}%
\ifx\p_pagenumber\v!no\else
\registerpageseparator
@@ -1037,6 +1146,7 @@
\permanent\protected\def\defaultregisterentry#1#2#3#4#5% #1:class #2:processor #3:internal #4:seeindex #5:word
{\pushcurrentregister{#1}%
+ \strc_registers_update_text_properties
\def\currentregisterpageindex{#3}%
\iflocation
\def\currentregisterseeindex{#4}%
@@ -1046,7 +1156,7 @@
\doapplyregisterentrycommand{#2}{#5}%
\fi
\else
- \let\currentregisterseeindex\empty
+ \lettonothing\currentregisterseeindex
\doapplyregisterentrycommand{#2}{#5}%
\fi
\popcurrentregister}
@@ -1081,7 +1191,7 @@
\iflocation
\def\currentregisterseeindex{#6}%
\else
- \let\currentregisterseeindex\empty
+ \lettonothing\currentregisterseeindex
\fi
\ifnum#2=\plusone
\labeltexts\v!see{\doapplyregisterseecommand{#4}{#7}}%
@@ -1114,7 +1224,7 @@
\iflocation
\def\currentregistersectionindex{#6}%
\else
- \let\currentregistersectionindex\empty
+ \lettonothing\currentregistersectionindex
\fi
\ifnum#2=\plusone\else
,\space
@@ -1174,30 +1284,30 @@
% not yet ok : new internal handler names
-\aliased\let\registerpageseparatorsymbol\empty
+\lettonothing\registerpageseparatorsymbol
\permanent\protected\def\registerpagebuttonsymbol
{\vrule\s!width\emwidth\s!height\exheight\s!depth\zeropoint\relax}
\installcorenamespace{registersymbol}
-\setvalue{\??registersymbol n}%
+\defcsname\??registersymbol n\endcsname
{\enforced\frozen\def\registerpageseparatorsymbol{,\space}}
-\setvalue{\??registersymbol a}%
+\defcsname\??registersymbol a\endcsname
{\enforced\frozen\def\registerpageseparatorsymbol{,\space}} % now done via conversion
-\setvalue{\??registersymbol\v!none}%
- {\enforced\frozen\let\registerpageseparatorsymbol\empty
+\defcsname\??registersymbol\v!none\endcsname
+ {\enforced\frozen\lettonothing\registerpageseparatorsymbol
\enforced\frozen\let\registeronepage\gobblefivearguments
\enforced\frozen\let\registerpagerange\gobbleeightarguments}
-\setvalue{\??registersymbol 1}%
+\defcsname\??registersymbol 1\endcsname
{\enforced\frozen\let\registerpageseparatorsymbol\space
\enforced\frozen\def\registeronepage{\symbol[1]\gobblefivearguments}%
\enforced\frozen\def\registerpagerange{\symbol[1]\gobbleeightarguments}}
-\setvalue{\??registersymbol 2}%
+\defcsname\??registersymbol 2\endcsname
{\enforced\frozen\let\registerpageseparatorsymbol\space
\enforced\frozen\def\registeronepage{\registerpagebuttonsymbol\gobblefivearguments}%
\enforced\frozen\def\registerpagerange{\registerpagebuttonsymbol\gobbleeightarguments}}
@@ -1274,3 +1384,190 @@
\stopcontextdefinitioncode
\protect \endinput
+
+% % maybe also more levels with [entries|keys|processors]:n
+% %
+% % \setregisterentry
+% % [index]
+% % [entries:1=one,
+% % entries:2=two,
+% % entries:3=three,
+% % entries:4=four]
+% %
+% % test \blank \placeregister[index][balance=no]
+%
+% \def\expanddetokenizedregistervalues#1#2%
+% {\edef\expandedregistervalue{\detokenizedregisterparameter{#1:#2}}%
+% \ifempty\expandedregistervalue\else
+% \letregisterparameter{#1:#2}\expandedregistervalue
+% \expandafter\expanddetokenizedregistervalues
+% \expandafter#1%
+% \expandafter{\the\numexpr#2+1}%
+% \fi}%
+%
+% \def\expandregistervalues#1#2%
+% {\edef\expandedregistervalue{\registerparameter{#1:#2}}%
+% \ifempty\expandedregistervalue\else
+% \letregisterparameter{#1:#2}\expandedregistervalue
+% \expandafter\expandregistervalues
+% \expandafter#1%
+% \expandafter{\the\numexpr#2+1}%
+% \fi}%
+%
+% % \def\injectregistervalues#1#2%
+% % {\beginlocalcontrol
+% % \edef\expandedregistervalue{\registerparameter{#1:\the\numexpr#2}}%
+% % \endlocalcontrol
+% % \ifempty\expandedregistervalue\else
+% % {\expandedregistervalue}%
+% % \injectregistervalues#1{#2+1}%
+% % \fi}%
+%
+% \def\injectregistervalues#1#2%
+% {\iftok{\registerparameter{#1:\the\numexpr#2}}\emptytoks\else
+% \expandafter{\lastnamedcs}%
+% \injectregistervalues#1{#2+1}%
+% \fi}%
+%
+% \def\strc_registers_register_page_expand_xml_entries
+% {\xmlstartraw
+% \beginlocalcontrol
+% \expandregistervalues\c!entries1%
+% \endlocalcontrol
+% \xmlstopraw
+% \glet\currentregistercoding\s!xml}
+%
+% \def\strc_registers_register_page_expand_yes_entries
+% {\beginlocalcontrol
+% \expandregistervalues\c!entries1%
+% \endlocalcontrol
+% \glet\currentregistercoding\s!tex}
+%
+% \def\strc_registers_register_page_expand_nop_entries
+% {\beginlocalcontrol
+% \expanddetokenizesregistervalues\c!entries1%
+% \endlocalcontrol
+% \glet\currentregistercoding\s!tex}
+%
+% \def\strc_registers_register_page_expand_nop_entries
+% {\beginlocalcontrol
+% \expandregistervalues\c!entries1%
+% \endlocalcontrol
+% \glet\currentregistercoding\s!tex}
+%
+% \def\strc_registers_register_page_expand_xml_keys
+% {\xmlstartraw
+% \beginlocalcontrol
+% \expandregistervalues\c!keys1%
+% \endlocalcontrol
+% \xmlstopraw}
+%
+% \def\strc_registers_register_page_expand_yes_keys
+% {\beginlocalcontrol
+% \expandregistervalues\c!keys1%
+% \endlocalcontrol}
+%
+% \def\strc_registers_register_page_expand_processors
+% {\beginlocalcontrol
+% \expandregistervalues\c!processors1%
+% \endlocalcontrol}
+%
+% \def\strc_registers_register_page_entry_indeed#1#2#3% register data userdata
+% {\begingroup
+% \edef\currentregister{#1}%
+% %\setupcurrentregister[\c!entries=,\c!label=,\c!keys=,\c!alternative=,#2]%
+% \setupcurrentregister[#2]%
+% \edef\currentregisterlabel {\registerparameter\c!label}%
+% \edef\currentregisterexpansion {\registerparameter\c!expansion}%
+% \edef\currentregisterownnumber {\registerparameter\c!ownnumber}%
+% \xdef\currentregisterkeys {\registerparameter\c!keys}%
+% \xdef\currentregisterentries {\registerparameter\c!entries}%
+% \xdef\currentregisterprocessors{\registerparameter\c!processors}%
+% \xdef\currentregisterxmlsetup {\registerparameter\c!xmlsetup}%
+% \ifempty\currentregisterentries
+% \ifx\currentregisterexpansion\s!xml
+% \strc_registers_register_page_expand_xml_entries
+% \orelse\ifx\currentregisterexpansion\v!yes
+% \strc_registers_register_page_expand_yes_entries
+% \else
+% \strc_registers_register_page_expand_nop_entries
+% \fi
+% \else
+% \ifx\currentregisterexpansion\s!xml
+% \strc_registers_register_page_expand_xml
+% \orelse\ifx\currentregisterexpansion\v!yes
+% \strc_registers_register_page_expand_yes
+% \else
+% \strc_registers_register_page_expand_nop
+% \fi
+% \fi
+% \ifempty\currentregisterkeys
+% \ifx\currentregistercoding\s!xml
+% \strc_registers_register_page_expand_xml_keys
+% \else
+% \strc_registers_register_page_expand_yes_keys
+% \fi
+% \fi
+% \strc_registers_register_page_expand_processors
+% \setnextinternalreference
+% % we could consider storing register entries in a list which we
+% % could then sort
+% \glet\currentregistername\currentregister
+% \xdef\currentregisternumber{\clf_storeregister % 'own' should not be in metadata
+% metadata {%
+% name {\currentregister}%
+% coding {\currentregistercoding}%
+% \ifx\currentregisterownnumber\v!yes
+% own {\registerparameter\c!alternative}% can be used instead of pagenumber
+% \fi
+% \ifx\currentreferencecoding\s!xml
+% xmlroot {\xmldocument} % only useful when text
+% \fi
+% \ifempty\currentregisterxmlsetup \else
+% xmlsetup {\currentregisterxmlsetup}%
+% \fi
+% }%
+% references {%
+% \ifempty\currentregisterlabel \else
+% label {\currentregisterlabel}%
+% \fi
+% % view {\interactionparameter\c!focus}%
+% }%
+% entries {%
+% % we need a special one for xml, this is just a single one
+% \ifempty\currentregisterentries
+% entries {\injectregistervalues\c!entries1}%
+% \else
+% entry {\currentregisterentries}%
+% \fi
+% \ifempty\currentregisterkeys
+% keys {\injectregistervalues\c!keys1}%
+% \else
+% key {\currentregisterkeys}%
+% \fi
+% \ifempty\currentregisterprocessors
+% processors {\injectregistervalues\c!processors1}%
+% \else
+% processor {\currentregisterprocessors}%
+% \fi
+% }%
+% userdata {\detokenize\expandafter{\normalexpanded{#3}}}
+% }%
+% \clf_setinternalreference
+% internal \locationcount
+% view {\interactionparameter\c!focus}%
+% \relax % this will change
+% \ifx\currentregisterownnumber\v!yes
+% \glet\currentregistersynchronize\relax
+% \else
+% \xdef\currentregistersynchronize{\clf_deferredenhanceregister{\currentregister}\number\currentregisternumber}%
+% \fi
+% \currentregistersynchronize % here?
+% % needs thinking ... bla\index{bla}. will break before the . but adding a
+% % penalty is also no solution
+% \dostarttagged\t!registerlocation\currentregister
+% \c_attr_destination\lastdestinationattribute
+% \signalcharacter % no \strut as it will be removed during cleanup
+% \dotagregisterlocation
+% \dostoptagged
+% \endgroup}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-ren.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-ren.mkxl
index 774f6f64049..b78155d21b9 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-ren.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-ren.mkxl
@@ -15,10 +15,9 @@
\unprotect
-\newbox\b_strc_rendering_head
-
-\newdimen\d_strc_rendering_local_leftoffset
-\newdimen\d_strc_rendering_local_rightoffset
+\newbox \b_strc_rendering_head
+\newdimension\d_strc_rendering_local_leftoffset
+\newdimension\d_strc_rendering_local_rightoffset
% Martin Kolarik's problem:
%
@@ -246,12 +245,11 @@
% \subsubsection {Test\\Test} \input tufte \page
% \subsubsubsection{Test\\Test} \input tufte \page
-\newdimen\d_strc_rendering_hang_height
-\newcount\n_strc_rendering_hang_lines
-
-\newdimen\d_strc_rendering_local_height
-\newdimen\d_strc_rendering_local_depth
-\newdimen\d_strc_rendering_local_lineheight
+\newdimension\d_strc_rendering_hang_height
+\newinteger \n_strc_rendering_hang_lines
+\newdimension\d_strc_rendering_local_height
+\newdimension\d_strc_rendering_local_depth
+\newdimension\d_strc_rendering_local_lineheight
\def\strc_rendering_initialize_line_state
{\global\d_strc_rendering_local_height\strutht
@@ -272,16 +270,27 @@
\installcorenamespace{headplacementcheckhang}
-\setvalue{\??headplacementcheckhang\v!line }{\strc_rendering_check_hang
- \n_strc_rendering_hang_lines\zerocount}
-\setvalue{\??headplacementcheckhang\v!broad }{\strc_rendering_check_hang
- \getnoflines\d_strc_rendering_hang_height}
-\setvalue{\??headplacementcheckhang\v!fit }{\strc_rendering_check_hang
- \getrawnoflines\d_strc_rendering_hang_height}
-\setvalue{\??headplacementcheckhang\v!none }{\n_strc_rendering_hang_lines\zerocount}
-\setvalue{\??headplacementcheckhang }{\n_strc_rendering_hang_lines\zerocount}
-\setvalue{\??headplacementcheckhang\s!unknown}{\strc_rendering_check_hang
- \n_strc_rendering_hang_lines\numexpr\headparameter\c!hang-\plusone\relax}
+\defcsname\??headplacementcheckhang\v!line\endcsname
+ {\strc_rendering_check_hang
+ \n_strc_rendering_hang_lines\zerocount}
+
+\defcsname\??headplacementcheckhang\v!broad\endcsname
+ {\strc_rendering_check_hang
+ \getnoflines\d_strc_rendering_hang_height}
+
+\defcsname\??headplacementcheckhang\v!fit\endcsname
+ {\strc_rendering_check_hang
+ \getrawnoflines\d_strc_rendering_hang_height}
+
+\defcsname\??headplacementcheckhang\v!none\endcsname
+ {\n_strc_rendering_hang_lines\zerocount}
+
+\defcsname\??headplacementcheckhang\endcsname
+ {\n_strc_rendering_hang_lines\zerocount}
+
+\defcsname\??headplacementcheckhang\s!unknown\endcsname
+ {\strc_rendering_check_hang
+ \n_strc_rendering_hang_lines\numexpr\headparameter\c!hang-\plusone\relax}
\def\strc_rendering_initialize_line_hang
{\ifconditional\headisdisplay
@@ -384,6 +393,7 @@
\noindentation
\else
\ignoreparskip
+ \doindentation
\fi}
% nice testcase
@@ -423,9 +433,10 @@
\c!renderingsetup=\??headrenderings:\currentheadalternative]
\let\currentheadalternative \v!normal
-\let\currentheadrenderingsetup \empty
\let\currentheadrenderingalternative\v!vertical
+\lettonothing\currentheadrenderingsetup
+
\permanent\tolerant\protected\def\defineheadplacement[#1]#*[#2]%
{\doifelsenextbgroup
{\strc_rendering_define_placement_yes[#1][#2]}%
@@ -433,11 +444,11 @@
\def\strc_rendering_define_placement_yes[#1][#2]%
{\defineheadalternative[#1][\c!alternative=#2,\c!renderingsetup=\??headrenderings:\v!command]%
- \setuvalue{\??headplacementalternative#1}##1##2}
+ \protected\defcsname\??headplacementalternative#1\endcsname##1##2}
\def\strc_rendering_define_placement_nop[#1][#2]%
{\defineheadalternative[#1][\c!alternative=#2,\c!renderingsetup=\??headrenderings:\v!command]%
- \setuvalue{\??headplacementalternative#1}}
+ \protected\defcsname\??headplacementalternative#1\endcsname}
% these can be used in setups:
%
@@ -453,14 +464,14 @@
% \headshownumber
% \headisdisplay
-\let\headnumbercontent\empty
-\let\headtextcontent \empty
+\lettonothing\headnumbercontent
+\lettonothing\headtextcontent
-\newdimen\headwidth
-\newdimen\headtextwidth
-\newskip \headtextdistance
-\newdimen\headnumberdistance
-\newdimen\headnumberwidth
+\newdimension\headwidth
+\newdimension\headtextwidth
+\newgluespec \headtextdistance
+\newdimension\headnumberdistance
+\newdimension\headnumberwidth
% \newconditional\headshownumber % defined already
% \newconditional\headisdisplay % defined already
@@ -536,8 +547,7 @@
% {\hbox to \zeropoint{\let\getheadnumber\fakedheadnumber\headnumbercontent}}
\permanent\protected\def\fakeheadnumbercontent
- {\edef\p_hidenumber{\headparameter\c!hidenumber}%
- \ifx\p_hidenumber\v!yes\else
+ {\ifcstok{\headparameter\c!hidenumber}\v!yes\else
\hbox to \zeropoint{\let\getheadnumber\fakedheadnumber\headnumbercontent}%
\fi}
@@ -766,7 +776,7 @@
}
\setbox\scratchboxtwo\vbox {
\headsetupspacing
- \advance\hsize-\wd\scratchboxone\relax
+ \advanceby\hsize-\wd\scratchboxone\relax
\headtextcontent
}
\hpack {
@@ -795,7 +805,7 @@
}
\setbox\scratchboxtwo\vtop {
\headsetupspacing
- \advance\hsize-\wd\scratchboxone\relax
+ \advanceby\hsize-\wd\scratchboxone\relax
\headtextcontent
}
\hpack {
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-rsc.lmt b/Master/texmf-dist/tex/context/base/mkxl/strc-rsc.lmt
new file mode 100644
index 00000000000..e725ebf71de
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-rsc.lmt
@@ -0,0 +1,180 @@
+if not modules then modules = { } end modules ['strc-rsc'] = {
+ version = 1.001,
+ comment = "companion to strc-ref.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- The scanner is in a separate module so that we can test without too
+-- many dependencies.
+
+-- The scanner accepts nested outer, but we don't care too much, maybe
+-- some day we will have both but currently the innermost wins.
+
+local lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns
+local lpegP, lpegS, lpegCs, lpegCt, lpegCf, lpegCc, lpegC, lpegCg = lpeg.P, lpeg.S, lpeg.Cs, lpeg.Ct, lpeg.Cf, lpeg.Cc, lpeg.C, lpeg.Cg
+local find = string.find
+
+local spaces = lpegP(" ")^0
+local lparent = lpegP("(")
+local rparent = lpegP(")")
+local lbrace = lpegP("{")
+local rbrace = lpegP("}")
+local tcolon = lpegP(":::") -- component or outer
+local dcolon = lpegP("::") -- outer
+local scolon = lpegP(":") -- prefix
+local backslash = lpegP("\\")
+
+ lparent = spaces * lparent * spaces
+ rparent = spaces * rparent * spaces
+ lbrace = spaces * lbrace * spaces
+ rbrace = spaces * rbrace * spaces
+ tcolon = spaces * tcolon * spaces
+ dcolon = spaces * dcolon * spaces
+
+local endofall = spaces * lpegP(-1)
+
+----- o_token = 1 - rparent - rbrace - lparent - lbrace -- can be made more efficient
+----- a_token = 1 - rbrace
+local s_token = 1 - lparent - lbrace
+local i_token = 1 - lparent - lbrace - endofall
+local f_token = 1 - lparent - lbrace - dcolon
+local c_token = 1 - lparent - lbrace - tcolon
+
+-- experimental
+
+local o_token = lpegpatterns.nestedparents
+ + (1 - rparent - lbrace)
+local a_token = lpegpatterns.nestedbraces
+ + (1 - rbrace)
+local q_token = lpegpatterns.unsingle
+ + lpegpatterns.undouble
+
+local component = lpegCg(lpegCc("component") * lpegCs(c_token^1))
+local outer = lpegCg(lpegCc("outer") * lpegCs(f_token^1))
+----- operation = lpegCg(lpegCc("operation") * lpegCs(o_token^1))
+local operation = lpegCg(lpegCc("operation") * lpegCs(q_token + o_token^1))
+local arguments = lpegCg(lpegCc("arguments") * lpegCs(q_token + a_token^0))
+local special = lpegCg(lpegCc("special") * lpegCs(s_token^1))
+local inner = lpegCg(lpegCc("inner") * lpegCs(i_token^1))
+
+ arguments = (lbrace * arguments * rbrace)^-1
+ component = component * tcolon
+ outer = outer * dcolon
+ operation = outer^-1 * operation -- special case: page(file::1) and file::page(1)
+ inner = inner * arguments
+ special = special * lparent * (operation * arguments)^-1 * rparent
+
+local referencesplitter = spaces
+ * lpegCf (lpegCt("") * (component + outer)^-1 * (special + inner)^-1 * endofall, rawset)
+
+local prefixsplitter = lpegCs(lpegP((1-scolon)^1 * scolon))
+ * #-scolon
+ * lpegCs(lpegP(1)^1)
+
+local componentsplitter = lpegCs(lpegP((1-scolon)^1))
+ * scolon * #-scolon
+ * lpegCs(lpegP(1)^1)
+
+prefixsplitter = componentsplitter
+
+local function splitreference(str)
+ if str and str ~= "" then
+ return lpegmatch(referencesplitter,str)
+ end
+end
+
+local function splitprefix(str)
+ return lpegmatch(prefixsplitter,str)
+end
+
+local function splitcomponent(str)
+ return lpegmatch(componentsplitter,str)
+end
+
+-- register in the right namespace
+
+structures = structures or { }
+structures.references = structures.references or { }
+local references = structures.references
+
+references.referencesplitter = referencesplitter
+references.splitreference = splitreference
+references.prefixsplitter = prefixsplitter
+references.splitprefix = splitprefix
+references.componentsplitter = componentsplitter
+references.splitcomponent = splitcomponent
+
+-- test code:
+
+-- inspect(splitreference([[component:::inner]]))
+-- inspect(splitprefix([[component:::inner]]))
+-- inspect(splitprefix([[component:inner]]))
+
+-- inspect(splitreference([[name(foo)]]))
+-- inspect(splitreference([[name{foo}]]))
+-- inspect(splitreference([[xx::name(foo, bar and me)]]))
+
+-- inspect(splitreference([[ ]]))
+-- inspect(splitreference([[ inner ]]))
+-- inspect(splitreference([[ special ( operation { argument, argument } ) ]]))
+-- inspect(splitreference([[ special ( operation { argument } ) ]]))
+-- inspect(splitreference([[ special ( operation { argument, \argument } ) ]]))
+-- inspect(splitreference([[ special ( operation { \argument } ) ]]))
+-- inspect(splitreference([[ special ( operation ) ]]))
+-- inspect(splitreference([[ special ( \operation ) ]]))
+-- inspect(splitreference([[ special ( o\peration ) ]]))
+-- inspect(splitreference([[ special ( ) ]]))
+-- inspect(splitreference([[ inner { argument } ]]))
+-- inspect(splitreference([[ inner { \argument } ]]))
+-- inspect(splitreference([[ inner { ar\gument } ]]))
+-- inspect(splitreference([[inner{a\rgument}]]))
+-- inspect(splitreference([[ inner { argument, argument } ]]))
+-- inspect(splitreference([[ inner { argument, \argument } ]])) -- fails: bug in lpeg?
+-- inspect(splitreference([[ inner { \argument, \argument } ]]))
+-- inspect(splitreference([[ outer :: ]]))
+-- inspect(splitreference([[ outer :: inner]]))
+-- inspect(splitreference([[ outer :: special (operation { argument,argument } ) ]]))
+-- inspect(splitreference([[ outer :: special (operation { } )]]))
+-- inspect(splitreference([[ outer :: special ( operation { argument, \argument } ) ]]))
+-- inspect(splitreference([[ outer :: special ( operation ) ]]))
+-- inspect(splitreference([[ outer :: special ( \operation ) ]]))
+-- inspect(splitreference([[ outer :: special ( ) ]]))
+-- inspect(splitreference([[ outer :: inner { argument } ]]))
+-- inspect(splitreference([[ special ( outer :: operation ) ]]))
+
+-- inspect(splitreference([[inner(foo,bar)]]))
+
+-- inspect(splitreference([[]]))
+-- inspect(splitreference([[inner]]))
+-- inspect(splitreference([[special(operation{argument,argument})]]))
+-- inspect(splitreference([[special(operation)]]))
+-- inspect(splitreference([[special(\operation)]]))
+-- inspect(splitreference([[special()]]))
+-- inspect(splitreference([[inner{argument}]]))
+-- inspect(splitreference([[inner{\argument}]]))
+-- inspect(splitreference([[outer::]]))
+-- inspect(splitreference([[outer::inner]]))
+-- inspect(splitreference([[outer::special(operation{argument,argument})]]))
+-- inspect(splitreference([[outer::special(operation{argument,\argument})]]))
+-- inspect(splitreference([[outer::special(operation)]]))
+-- inspect(splitreference([[outer::special(\operation)]]))
+-- inspect(splitreference([[outer::special()]]))
+-- inspect(splitreference([[outer::inner{argument}]]))
+-- inspect(splitreference([[special(outer::operation)]]))
+
+-- inspect(splitreference([[special(operation)]]))
+-- inspect(splitreference([[special(operation(whatever))]]))
+-- inspect(splitreference([[special(operation{argument,argument{whatever}})]]))
+-- inspect(splitreference([[special(operation{argument{whatever}})]]))
+
+-- inspect(splitreference([[special("operation(")]]))
+-- inspect(splitreference([[special("operation(whatever")]]))
+-- inspect(splitreference([[special(operation{"argument,argument{whatever"})]]))
+-- inspect(splitreference([[special(operation{"argument{whatever"})]]))
+
+-- inspect(splitreference([[url(http://a,b.c)]]))
+-- inspect(splitcomponent([[url(http://a,b.c)]]))
+-- inspect(splitcomponent([[url(http://a.b.c)]]))
+
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-sbe.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-sbe.mkxl
index d3141d28b66..ade59da0b60 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-sbe.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-sbe.mkxl
@@ -44,8 +44,8 @@
{\strc_sectionblock_define_normal[#1][#3]%
%\expandafter\newif\csname if#2\endcsname % obsolete
\strc_sectionblock_set_environment{#1}\empty
- \frozen\setuvalue{\e!start#2}{\startsectionblock[#1]}%
- \frozen\setuvalue{\e!stop #2}{\stopsectionblock}}
+ \frozen\protected\defcsname\e!start#2\endcsname{\startsectionblock[#1]}%
+ \frozen\protected\defcsname\e!stop #2\endcsname{\stopsectionblock}}
\ifdefined \resetallstructuremarks \else
\let\resetallstructuremarks\relax
@@ -79,7 +79,7 @@
bookmark {\sectionblockparameter\c!bookmark}%
\relax}
-\mutable\let\currentsectionblock\empty % was \s!unknown
+\mutable\lettonothing\currentsectionblock % was \s!unknown
\permanent\tolerant\protected\def\startsectionblock[#1]#*[#2]%
{%\ctxlua{structures.counters.check(0)}% we assume sane usage of \page, as this is the only workable place (in push)
@@ -123,15 +123,14 @@
\installcorenamespace{sectionblockenvironment}
\protected\def\strc_sectionblock_set_environment#1#2%
- {\setvalue{\??sectionblockenvironment#1}{#2}}
+ {\defcsname\??sectionblockenvironment#1\endcsname{#2}}
\protected\def\strc_sectionblock_get_environment#1%
{\csname\??sectionblockenvironment#1\endcsname}
-\permanent\tolerant\protected\setvalue{\e!start\v!sectionblockenvironment}[#1]% evt \pushendofline \popendofline
+\permanent\tolerant\protected\defcsname\e!start\v!sectionblockenvironment\endcsname[#1]% evt \pushendofline \popendofline
{\grabuntil{\e!stop\v!sectionblockenvironment}{\strc_sectionblock_set_environment{#1}}}
-\aliased\letvalue{\e!stop\v!sectionblockenvironment}\relax
-
+\permanent\protected\expandafter\lettonothing\csname\e!stop\v!sectionblockenvironment\endcsname
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-sec.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-sec.mkxl
index 7c4a8fc249d..002945208f2 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-sec.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-sec.mkxl
@@ -55,8 +55,8 @@
\def\m_strc_references_prefix_yes{+}
\def\m_strc_references_prefix_nop{-}
-\mutable\let\currentstructurereferenceprefix\empty
-\mutable\let\currentstructurereferencetext \empty
+\mutable\lettonothing\currentstructurereferenceprefix
+\mutable\lettonothing\currentstructurereferencetext
\installglobalmacrostack\currentstructurereferenceprefix
@@ -64,8 +64,12 @@
{\ifempty\currentstructurereferenceprefix
% nothing
\orelse\ifx\currentstructurereferenceprefix\m_strc_references_prefix_yes
- \global\advance\prefixcounter \plusone % temp here
- \setupglobalreferenceprefix[\the\prefixcounter]%
+ \ifempty\currentstructurereference
+ \global\advanceby\prefixcounter \plusone % temp here
+ \setupglobalreferenceprefix[\the\prefixcounter]%
+ \else
+ \setupglobalreferenceprefix[\currentstructurereference]%
+ \fi
\orelse\ifx\currentstructurereferenceprefix\m_strc_references_prefix_nop
\setupglobalreferenceprefix[]%
\else
@@ -101,15 +105,16 @@
\permanent\def\namedstructureheadlocation#1% expandable, maybe [#1]
{\csname\??savedinternalreference\ifcsname\??savedinternalreference#1\endcsname#1\else\s!default\fi\endcsname}
-\mutable\let\currentheadbackreference \empty
-\mutable\let\currentheaddefault \empty
-\mutable\let\currentheadincrement \empty
-\mutable\let\currentheadinteraction \empty
-\mutable\let\currentheadlabeltag \empty
-\mutable\let\currentheadnumber \!!zerocount
-\mutable\let\currentheadrenderingalternative\empty
-\mutable\let\currentheadrenderingsetup \empty
-\mutable\let\currentheadtext \empty
+\mutable\lettonothing\currentheadbackreference
+\mutable\lettonothing\currentheaddefault
+\mutable\lettonothing\currentheadincrement
+\mutable\lettonothing\currentheadinteraction
+\mutable\lettonothing\currentheadlabeltag
+\mutable\lettonothing\currentheadrenderingalternative
+\mutable\lettonothing\currentheadrenderingsetup
+\mutable\lettonothing\currentheadtext
+
+\mutable\let\currentheadnumber\!!zerocount
% zeros:
%
@@ -453,9 +458,9 @@
\setstructurelevel\currenthead{\thenamedheadlevel\currenthead}%
\to \everyredefinehead
-\mutable\let\currentsectionheadcoupling\empty
-\mutable\let\currentsectionheadsection \empty
-\mutable\let\currentsectionlevel \empty
+\mutable\lettonothing\currentsectionheadcoupling
+\mutable\lettonothing\currentsectionheadsection
+\mutable\lettonothing\currentsectionlevel
\appendtoks
% beware, this is a global register
@@ -498,22 +503,22 @@
\pop_macro_currentheadparent
\pop_macro_currenthead}
-\mutable\let\currentnamedsection\empty
+\mutable\lettonothing\currentnamedsection
\installmacrostack\currentnamedsection
% structure sections (the parents of chapter etc)
-\aliased\let\firstsectionname\empty
-\aliased\let\lastsectionname \empty
+\mutable\lettonothing\firstsectionname
+\mutable\lettonothing\lastsectionname
%aliased\let\resetallstructuremarks \relax
%aliased\let\resetcurrentstructuremarks \relax
\aliased\let\resetcurrentstructuremarkswithpage\relax
-\permanent\protected\def\resetallstructuremarks {\resetmarking[\firstsectionname]} % will become option (was \v!section-1)
-\permanent\protected\def\resetcurrentstructuremarks {\resetmarking[\lastsectionname]} % will become option
-%permanent\protected\def\resetcurrentstructuremarkswithpage{\resetmarking[\lastsectionname]} % will become option
+\permanent\protected\def\resetallstructuremarks {\clearmarking[\firstsectionname]} % will become option (was \v!section-1)
+\permanent\protected\def\resetcurrentstructuremarks {\clearmarking[\lastsectionname]} % will become option
+%permanent\protected\def\resetcurrentstructuremarkswithpage{\clearmarking[\lastsectionname]} % will become option
% We could use a commandhandler here but sections are somewhat special in the
% sense that we have two ways of chaining: the main section (levels) as well
@@ -524,7 +529,7 @@
% 0 = block
% +1 = structurelevel 1 .. n
-\newcount\maxstructuredepth
+\newinteger\maxstructuredepth
\permanent\def\sectionlevel#1%
{\csname\??headlevel\ifcsname\??headlevel#1\endcsname#1\else\v!none\fi\endcsname}
@@ -550,14 +555,14 @@
\newtoks\everydefinesection
-\mutable\let\currentsection\empty % historic alias
+\mutable\lettonothing\currentsection % historic alias
\permanent\protected\def\definesection[#1]%
{\ifcsname\??headlevel#1\endcsname \else
\edef\currenthead{#1}%
\let\currentsection\currenthead % just an alias
- \global\advance\maxstructuredepth\plusone
- \setevalue{\??headlevel#1}{\the\maxstructuredepth}%
+ \global\advanceby\maxstructuredepth\plusone
+ \edefcsname\??headlevel#1\endcsname{\the\maxstructuredepth}%
\setstructurelevel{#1}{\sectionlevel{#1}}%
\normalexpanded{\setheadparameter{\s!parent}{\??head\lastsectionname}}% TO BE CHECKED, WE HAVE A HELPER
\the\everydefinesection
@@ -815,9 +820,10 @@
\fi
\dostoptagged}
-\mutable\let\currenthead \empty
-\mutable\let\currentheadcoupling\empty
-\mutable\let\currentheadsection \empty
+\mutable\lettonothing\currenthead
+\mutable\lettonothing\currentheadcoupling
+\mutable\lettonothing\currentheadsection
+
\mutable\let\currentheadlevel \!!zerocount
\mutable\let\currentheadcounter \!!zerocount
@@ -847,7 +853,7 @@
\permanent\tolerant\protected\def\placeheadtext[#1]%
{\dontleavehmode
\begingroup
- \protected\def\\{\space}% messy here, but the default (and needs to be grouped)
+ \enforced\permanent\protected\def\\{\space}% messy here, but the default (and needs to be grouped)
\global\settrue\headisdisplay % triggers interlinespace checking
\edef\currenthead{#1}% maybe only when #1 is given
\strc_rendering_initialize_style_and_color\c!textstyle\c!textcolor
@@ -872,9 +878,9 @@
\newtoks\everybeforesectionheadhandle
\newtoks\everyaftersectionheadhandle
-\mutable\let\getheadnumber\empty
-\mutable\let\getheadtitle \empty
-\mutable\let\getheadsyncs \empty
+\mutable\lettonothing\getheadnumber
+\mutable\lettonothing\getheadtitle
+\mutable\lettonothing\getheadsyncs
\def\strc_sectioning_handle#1#2#3% name data userdata (we can move #1 to the caller)
{\xdef\currenthead {#1}%
@@ -901,9 +907,9 @@
%
% \currentstructuresynchronize % will move
%
- \let\getheadnumber\empty
- \let\getheadtitle \empty
- \let\getheadsyncs \empty
+ \lettonothing\getheadnumber
+ \lettonothing\getheadtitle
+ \lettonothing\getheadsyncs
\ifconditional\c_strc_sectioning_increment
\ifconditional\c_strc_sectioning_place
\strc_sectioning_before_yes
@@ -981,14 +987,12 @@
\setfalse\c_strc_sectioning_ignore_page
% ignorespaces prevents spaces creeping in when after=\dontleavehmode
\dostarttagged\t!sectioncontent\empty
- \ifempty\currentstructureplaceholder
- \ifconditional\headisdisplay
- \doubleexpandafter\ignorespaces
- \else
- \doubleexpandafter\ignorepars
- \fi
+ \unless\ifempty\currentstructureplaceholder
+ \expandafter\strc_sectioning_placeholder
+ \orelse\ifconditional\headisdisplay
+ \expandafter\ignorespaces
\else
- \expandafter\strc_sectioning_placeholder
+ \expandafter\ignorepars
\fi}
%D \starttyping
@@ -1030,21 +1034,46 @@
\smashedbox\b_sectioning_delayed
\fi}
-\protected\def\strc_rendering_place_head_section % see hidden below
- {\global\setbox\b_sectioning_delayed\hpack\bgroup
- \setmarking[\currentheadcoupling]{li::\currentstructurelistnumber}%
- \hpack\headreferenceattributes{}% also does the mark
- \theheadsynchronization
- \egroup}
-
-\protected\def\strc_rendering_place_head_hidden % maybe trialtypesetting check
- {\xdefcsname\??hiddenheadattr\currenthead\endcsname
- {\headreferenceattributes}% can be used when making a box
- \xdefcsname\??hiddenheadsync\currenthead\endcsname
- {\noexpand\letgvalue{\??hiddenheadsync\currenthead}\relax
- \noexpand\setmarking[\currentheadcoupling]{li::\currentstructurelistnumber}%
- \hpack\headreferenceattributes{}% otherwise no destination ... maybe tag ref as hidden and fall back on page reference
- \theheadsynchronization}} % and it's a node anyway
+\ifdefined\??markingclass % uses a node, so we need to embed / bind
+
+ \protected\def\strc_rendering_place_head_section % see hidden below
+ {\global\setbox\b_sectioning_delayed\hpack\bgroup
+ \hpack\headreferenceattributes\bgroup
+ \setmarking[\currentheadcoupling]{li::\currentstructurelistnumber}% also does the mark
+ \egroup
+ \theheadsynchronization
+ \egroup}
+
+ \protected\def\strc_rendering_place_head_hidden % maybe trialtypesetting check
+ {\xdefcsname\??hiddenheadattr\currenthead\endcsname
+ {\headreferenceattributes}% can be used when making a box
+ \xdefcsname\??hiddenheadsync\currenthead\endcsname
+ {\noexpand\gletcsname\??hiddenheadsync\currenthead\endcsname\relax
+ % {\noexpand\gletcsname\??hiddenheadsync\currenthead\endcsname\relax
+ \hpack\headreferenceattributes\bgroup
+ \noexpand\setmarking[\currentheadcoupling]{li::\currentstructurelistnumber}% otherwise no destination ... maybe tag ref as hidden and fall back on page reference
+ \egroup
+ \theheadsynchronization}} % and it's a node anyway
+
+\else % uses attributes so no interference
+
+ \protected\def\strc_rendering_place_head_section % see hidden below
+ {\global\setbox\b_sectioning_delayed\hpack\bgroup
+ \setmarking[\currentheadcoupling]{li::\currentstructurelistnumber}%
+ \hpack\headreferenceattributes{}% also does the mark
+ \theheadsynchronization
+ \egroup}
+
+ \protected\def\strc_rendering_place_head_hidden % maybe trialtypesetting check
+ {\xdefcsname\??hiddenheadattr\currenthead\endcsname
+ {\headreferenceattributes}% can be used when making a box
+ \xdefcsname\??hiddenheadsync\currenthead\endcsname
+ {\noexpand\gletcsname\??hiddenheadsync\currenthead\endcsname\relax
+ \noexpand\setmarking[\currentheadcoupling]{li::\currentstructurelistnumber}%
+ \hpack\headreferenceattributes{}% otherwise no destination ... maybe tag ref as hidden and fall back on page reference
+ \theheadsynchronization}} % and it's a node anyway
+
+\fi
\permanent\def\synchronizehead #1{\begincsname\??hiddenheadsync#1\endcsname}
\permanent\def\theheadreferenceattributes#1{\begincsname\??hiddenheadattr#1\endcsname}
@@ -1121,14 +1150,14 @@
\doifelselayouttextline\v!footer{\normalexpanded{\setuplayouttext[\v!footer][\c!state=\p_footer]}}\donothing
\fi}
-\newcount \c_strc_sectioning_preceding_level \c_strc_sectioning_preceding_level\plusone
+\newinteger \c_strc_sectioning_preceding_level \c_strc_sectioning_preceding_level\plusone
\newconditional\c_strc_sectioning_auto_break \settrue\c_strc_sectioning_auto_break
\newconditional\c_strc_sectioning_ignore_page
-\newsignal \d_strc_sectioning_continuous_signal
+\newboundary \c_strc_sectioning_boundary
\protected\def\strc_sectioning_inject_continuous_signal
{\ifhmode
- \hskip\d_strc_sectioning_continuous_signal\relax
+ \boundary\c_strc_sectioning_boundary
\fi}
% \let\dotagsectionlevel\relax
@@ -1161,7 +1190,7 @@
{\ifhmode
\scratchcounter\lastpenalty
\unpenalty % no beauty in this
- \ifdim\lastskip=\d_strc_sectioning_continuous_signal
+ \ifnum\lastboundary=\c_strc_sectioning_boundary
% no page break
\ifconditional\c_strc_sectioning_ignore_page
\setfalse\c_strc_sectioning_ignore_page
@@ -1187,7 +1216,7 @@
%permanent\def\previoussectioncountervalue{\clf_depthnumber\numexpr\thenamedheadlevel\currenthead+\minusone\relax}
\permanent\def\previoussectioncountervalue{\clf_depthnumber\numexpr\thenamedheadlevel\previoushead\relax}
-\mutable\let\previoushead\empty
+\mutable\lettonothing\previoushead
\def\strc_sectioning_handle_page_nop
{\edef\p_continue{\headparameter\c!continue}%
@@ -1217,7 +1246,7 @@
\spac_vspacing_same_page\currentheadlevel\zerocount
\fi
\headparameter\c!before\relax
- \indent
+ \indent % hm, not a clever one?
\else
\page_otr_command_flush_side_floats
\ifconditional\c_strc_sectioning_auto_break
@@ -1252,7 +1281,6 @@
\spac_vspacing_same_page\currentheadlevel\plustwo
\fi}
-
% We do support negative numbers but it can have side effects that we won't catch:
%
% \chapter{some} \setupheadnumber[chapter][3] \chapter{more}
@@ -1272,8 +1300,8 @@
\permanent\def\namedheadnumber #1{\getstructurenumber {\thenamedheadlevel{#1}}}
\permanent\def\somenamedheadnumber#1#2{\getsomestructurenumber{\thenamedheadlevel{#1}}{#2}}
-\permanent\tolerant\protected\def\headnumber[#1]#*[#2]% simple case is just a number
- {\getsomefullstructurenumber{\ifparameter#1\or\thenamedheadlevel{#1}\fi}{#2}}
+\permanent\tolerant\protected\def\headnumber[#1]#*[#2]%
+ {\getsomefullstructurenumber{\thenamedheadlevel{#1}}{#2}}
\permanent\tolerant\protected\def\someheadnumber[#1]#*[#2]%
{\dontleavehmode
@@ -1317,6 +1345,10 @@
\finalizeautostructurelevels
\to \everystoptext
+%D Defined at the \LUA\ end:
+
+% \doifelsefirstsectionpage{chapter}{do this}{or that} % in pagebody building
+
\stopcontextdefinitioncode
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-syn.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-syn.mkxl
index df573a7e995..af6d0c6e204 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-syn.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-syn.mkxl
@@ -101,6 +101,31 @@
%D
%D The lists are constructions (like descriptions are) and can be set up
%D likewise.
+%D
+%D You can show the currently accessed entries as follows:
+%D
+%D \starttyping
+%D \startchapter[title=One]
+%D test \FIRST\ test test \THIRD\ test \blank
+%D \placelistofsynonyms[myabbreviation]
+%D \resetsynonymsprogress[myabbreviation] % reset state
+%D \stopchapter
+%D
+%D \startchapter[title=Two]
+%D test \FIRST\ test test \SECOND\ test \blank
+%D \placelistofsynonyms[myabbreviation][criterium=current]
+%D \resetsynonymsprogress[myabbreviation] % reset state
+%D \stopchapter
+%D
+%D \startchapter[title=Three]
+%D test test test test test test \blank
+%D \placelistofsynonyms[myabbreviation][criterium=current] % also reset state
+%D \stopchapter
+%D
+%D \startchapter[title=All]
+%D \placelistofsynonyms[myabbreviation][criterium=all]
+%D \stopchapter
+%D \stoptyping
% todo: add 'define only' option to descriptions, then add sorting (also based on key)
% and call to definition -> replaces this module
@@ -235,12 +260,12 @@
% these might become private
-\mutable\let\currentsynonymoption \empty
-\mutable\let\currentsynonymcoding \empty
-\mutable\let\currentsynonymexpansion\empty
-\mutable\let\currentsynonym \empty
-\mutable\let\currentsynonymtag \empty
-\mutable\let\currentsynonymtext \empty
+\mutable\lettonothing\currentsynonymoption
+\mutable\lettonothing\currentsynonymcoding
+\mutable\lettonothing\currentsynonymexpansion
+\mutable\lettonothing\currentsynonym
+\mutable\lettonothing\currentsynonymtag
+\mutable\lettonothing\currentsynonymtext
\permanent\tolerant\protected\def\definesynonyms[#1]#*[#2]#*[#3]#*[#4]% name plural \meaning \use
{\ifnum\lastarguments=\plusfour
@@ -274,13 +299,29 @@
\frozen\instance\protected\defcsname\e!complete\e!listof#2\endcsname{\completelistofsynonyms[#1]}%
\fi}
-\permanent\tolerant\protected\def\definesynonym[#1]#*[#2]#*[#3]%
+% \abbreviation[XXX][321]{321}{Three, Two, One} : optional sort key
+
+\permanent\tolerant\protected\def\definesynonym[#1]#*[#2]#*[#3]#*[#4]% [yes][abbreviation][FOO]{foo}{foo me}
{\begingroup
\edef\currentsynonymoption{#1}%
\edef\currentsynonym{#2}%
\edef\currentsynonymtag{#3}%
+ \edef\currentsynonymsortkey{#4}%
\strc_synonyms_define_entry}
+% \installcorenamespace {synonymentry}
+%
+% \installsetuponlycommandhandler \??synonymentry {synonymentry}
+%
+% \permanent\tolerant\protected\def\setsynonym[#1]#*[#2]%
+% {\begingroup
+% \setupsynonymentry[#2]%
+% \edef\currentsynonym {#1}%
+% \edef\currentsynonymoption {\synonymentryparameter\c!option}%
+% \edef\currentsynonymtag {\synonymentryparameter\c!tag}%
+% \edef\currentsynonymsortkey{\synonymentryparameter\c!sortkey}%
+% \strc_synonyms_define_entry{\synonymentryparameter\c!text}{\synonymentryparameter\c!meaning}}
+
\def\strc_synonyms_define_entry#1#2%
{\let\currentsimplelist\currentsynonym
\ifempty\currentsynonymtag
@@ -305,6 +346,7 @@
}%
definition {%
tag {\currentsynonymtag}%
+ sortkey {\currentsynonymsortkey}%
synonym {\m_synonyms_text}%
meaning {\m_synonyms_meaning}%
% used false
@@ -322,8 +364,11 @@
\permanent \protected\def\currentsynonymmeaning {\clf_synonymmeaning{\currentsimplelist}{\currentsynonymtag}}
\permanent \protected\def\doifelsecurrentsynonymused {\clf_doifelsesynonymused{\currentsimplelist}{\currentsynonymtag}}
\permanent \protected\def\doifelsecurrentsynonymshown{\clf_doifelsesynonymshown{\currentsimplelist}{\currentsynonymtag}}
-\permanent \protected\def\resetusedsynonyms [#1]{\clf_resetusedsynonyms{#1}}
-\permanent \protected\def\resetshownsynonyms [#1]{\clf_resetshownsynonyms{#1}}
+\permanent \protected\def\resetusedsynonyms [#1]{\clf_resetsynonyms{#1}{used}}
+\permanent \protected\def\resetshownsynonyms [#1]{\clf_resetsynonyms{#1}{shown}}
+\permanent \protected\def\resetlistsynonyms [#1]{\clf_resetsynonyms{#1}{list}}
+\permanent \protected\def\resetsynonyms [#1]{\clf_resetsynonyms{#1}{all}}
+\permanent \protected\def\resetsynonymsprogress [#1]{\clf_resetsynonyms{#1}{progress}}
\aliased\let\rawsynonymname \clf_synonymname
\aliased\let\rawsynonymmeaning\clf_synonymmeaning
@@ -453,7 +498,7 @@
{}% todo: message that invalid
\endgroup}
-\mutable\let\currentsimplelistentry\empty
+\mutable\lettonothing\currentsimplelistentry
\protected\def\strc_synonym_normal#1#2#3#4%
{\begingroup
@@ -482,12 +527,12 @@
% these might become private
-\mutable\let\currentsortingoption \empty
-\mutable\let\currentsortingcoding \empty
-\mutable\let\currentsortingexpansion\empty
-\mutable\let\currentsorting \empty
-\mutable\let\currentsortingtag \empty
-\mutable\let\currentsortingtext \empty
+\mutable\lettonothing\currentsortingoption
+\mutable\lettonothing\currentsortingcoding
+\mutable\lettonothing\currentsortingexpansion
+\mutable\lettonothing\currentsorting
+\mutable\lettonothing\currentsortingtag
+\mutable\lettonothing\currentsortingtext
\permanent\tolerant\protected\def\definesorting[#1]#*[#2]#*[#3]%
{\ifnum\lastarguments=\plusthree
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-tag.lmt b/Master/texmf-dist/tex/context/base/mkxl/strc-tag.lmt
index 96510f24eac..ec6455cc645 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-tag.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-tag.lmt
@@ -182,34 +182,34 @@ local properties = allocate { -- todo: more "record = true" to improve forma
margintext = { pdf = "Span", nature = "inline" },
marginanchor = { pdf = "Span", nature = "inline" },
- math = { pdf = "Div", nature = "inline" }, -- no display
- mn = { pdf = "Span", nature = "mixed" },
- mi = { pdf = "Span", nature = "mixed" },
- mo = { pdf = "Span", nature = "mixed" },
- ms = { pdf = "Span", nature = "mixed" },
- mrow = { pdf = "Span", nature = "display" },
- msubsup = { pdf = "Span", nature = "display" },
- msub = { pdf = "Span", nature = "display" },
- msup = { pdf = "Span", nature = "display" },
- merror = { pdf = "Span", nature = "mixed" },
- munderover = { pdf = "Span", nature = "display" },
- munder = { pdf = "Span", nature = "display" },
- mover = { pdf = "Span", nature = "display" },
- mtext = { pdf = "Span", nature = "mixed" },
- mfrac = { pdf = "Span", nature = "display" },
- mroot = { pdf = "Span", nature = "display" },
- msqrt = { pdf = "Span", nature = "display" },
- mfenced = { pdf = "Span", nature = "display" },
- maction = { pdf = "Span", nature = "display" },
+ math = { pdf = "Div", nature = "inline", namespace = "mathml" }, -- no display
+ mn = { pdf = "Span", nature = "mixed", namespace = "mathml" },
+ mi = { pdf = "Span", nature = "mixed", namespace = "mathml" },
+ mo = { pdf = "Span", nature = "mixed", namespace = "mathml" },
+ ms = { pdf = "Span", nature = "mixed", namespace = "mathml" },
+ mrow = { pdf = "Span", nature = "display", namespace = "mathml" },
+ msubsup = { pdf = "Span", nature = "display", namespace = "mathml" },
+ msub = { pdf = "Span", nature = "display", namespace = "mathml" },
+ msup = { pdf = "Span", nature = "display", namespace = "mathml" },
+ merror = { pdf = "Span", nature = "mixed", namespace = "mathml" },
+ munderover = { pdf = "Span", nature = "display", namespace = "mathml" },
+ munder = { pdf = "Span", nature = "display", namespace = "mathml" },
+ mover = { pdf = "Span", nature = "display", namespace = "mathml" },
+ mtext = { pdf = "Span", nature = "mixed", namespace = "mathml" },
+ mfrac = { pdf = "Span", nature = "display", namespace = "mathml" },
+ mroot = { pdf = "Span", nature = "display", namespace = "mathml" },
+ msqrt = { pdf = "Span", nature = "display", namespace = "mathml" },
+ mfenced = { pdf = "Span", nature = "display", namespace = "mathml" },
+ maction = { pdf = "Span", nature = "display", namespace = "mathml" },
mstacker = { pdf = "Span", nature = "display" }, -- these are only internally used
mstackertop = { pdf = "Span", nature = "display" }, -- these are only internally used
mstackerbot = { pdf = "Span", nature = "display" }, -- these are only internally used
mstackermid = { pdf = "Span", nature = "display" }, -- these are only internally used
- mtable = { pdf = "Table", nature = "display" }, -- might change
- mtr = { pdf = "TR", nature = "display" }, -- might change
- mtd = { pdf = "TD", nature = "display" }, -- might change
+ mtable = { pdf = "Table", nature = "display", namespace = "mathml" }, -- might change
+ mtr = { pdf = "TR", nature = "display", namespace = "mathml" }, -- might change
+ mtd = { pdf = "TD", nature = "display", namespace = "mathml" }, -- might change
ignore = { pdf = "Span", nature = "mixed" }, -- used internally
private = { pdf = "Span", nature = "mixed" }, -- for users (like LS) when they need it
@@ -330,6 +330,10 @@ function tags.getextradata()
return extradata
end
+function tags.enabled()
+ return enabled
+end
+
function tags.start(tag,specification)
if not enabled then
codeinjections.enabletags()
@@ -572,7 +576,8 @@ implement {
public = true,
protected = true,
actions = tags.setproperty,
- arguments = { "optional", "'backend'", "optional" },
+-- arguments = { "optional", "'backend'", "optional" },
+ arguments = { "optional", "'pdf'", "optional" },
}
implement {
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-tag.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-tag.mkxl
index c2597074750..3c00acb6506 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-tag.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-tag.mkxl
@@ -206,21 +206,6 @@
\installsetuponlycommandhandler \??tagging {tagging}
-\def\strc_tags_report_hyphen#1%
- {\writestatus\m!languages{setting #1 to U+00AD}}
-
-\protected\def\strc_tags_patch_hyphen
- {% for the moment here
- \ifnum\languageparameter\s!lefthyphenchar>\zerocount
- \setuplanguage[\s!default][\s!lefthyphenchar="AD]%
- \strc_tags_report_hyphen\s!lefthyphenchar
- \fi
- \ifnum\languageparameter\s!righthyphenchar>\zerocount
- \setuplanguage[\s!default][\s!righthyphenchar="AD]%
- \strc_tags_report_hyphen\s!righthyphenchar
- \fi
- \let\strc_tags_report_hyphen\gobbleoneargument}
-
% It makes no sense to have labels ... maybe some day as a last 'replace' in the export
% which might be more efficient then ... okay, we now cannot overload but who cares.
@@ -245,8 +230,7 @@
\fi}
\protected\def\strc_tags_enable_elements
- {\strc_tags_patch_hyphen
- \enforced\let\startelement \strc_tags_element_start_yes
+ {\enforced\let\startelement \strc_tags_element_start_yes
\enforced\let\stopelement \strc_tags_element_stop_yes
\enforced\let\dosettagproperty\strc_tags_set_aspect}
@@ -296,7 +280,7 @@
\newconditional\c_strc_tags_enabled
-\aliased\let\dotaggedplaceholder\empty
+\lettonothing\dotaggedplaceholder
\immutable\chardef\strc_tags_placeholder_char\zerocount % "FFFC
@@ -325,7 +309,7 @@
\enforced\let\dostoptagged \donothing
\else
% initial
- \enforced\let\dotaggedplaceholder \empty
+ \enforced\lettonothing\dotaggedplaceholder
\enforced\let\dostarttagged \gobbletwoarguments
\enforced\let\dostarttaggednodetail\gobbleoneargument
\enforced\let\dostarttaggedchained \gobblethreearguments
@@ -351,6 +335,8 @@
{\enforced\let\getelementtag \donothing
\enforced\let\setupelementuserproperties\gobbletwooptionals}
+\strc_tags_disable
+
%D The triggers:
\newtoks\everyenableelements
@@ -402,10 +388,10 @@
{\endgraf % we end before the group
\begingroup
\ifarguments
- \let\currentparagraph\empty
+ \lettonothing\currentparagraph
\or
\ifhastok={#1}%
- \let\currentparagraph\empty
+ \lettonothing\currentparagraph
\setupcurrentparagraph[#1]
\else
\edef\currentparagraph{#1}%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/strc-usr.mkxl b/Master/texmf-dist/tex/context/base/mkxl/strc-usr.mkxl
index 28d398194f1..cd1f97dec0b 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/strc-usr.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/strc-usr.mkxl
@@ -91,21 +91,16 @@
\installcommandhandler \????userdata {userdata} \????userdata
\installcommandhandler \????userdataalternative {userdataalternative} \????userdataalternative
+\appendtoks
+ \frozen\protected\instance\edefcsname\e!start\currentuserdata\endcsname{\userdata_start_instance{\currentuserdata}}%
+ \frozen\protected\instance\letcsname \e!stop \currentuserdata\endcsname\userdata_stop_instance
+\to \everydefineuserdata
+
\permanent\protected\def\startuserdata
{\begingroup
- \let\currentuserdata\empty
+ \lettonothing\currentuserdata
\doifelsenextoptionalcs\userdata_start_delayed\userdata_start_indeed}
-% This variant works only when the userdata instance exists while the assignment check
-% can also be used with undefined instances which falls back to the global settings.
-%
-% \def\userdata_start_delayed[#1]%
-% {\ifcsname\nameduserdatahash{\detokenize\expandafter{\normalexpanded{#1}}}\s!parent\endcsname
-% \expandafter\userdata_start_delayed_name
-% \else
-% \expandafter\userdata_start_delayed_parameters
-% \fi[#1]}
-
\def\userdata_start_delayed[#1]%
{\doifelseassignmentcs{#1}%
\userdata_start_delayed_parameters
@@ -121,15 +116,29 @@
\checkuserdataparent
\doifelsenextoptionalcs\userdata_start_delayed_parameters\userdata_start_indeed}
+\protected\tolerant\def\userdata_start_instance#1#*[#2]%
+ {\begingroup
+ \edef\currentuserdata{#1}%
+ \setupcurrentuserdata[#2]%
+ \grabbufferdatadirect
+ % {\s!userdata:\currentuserdata}%
+ {\s!userdata}% unnested, as before
+ {\e!start\currentuserdata}%
+ {\e!stop \currentuserdata}}
+
\def\userdata_start_indeed
- {\grabbufferdatadirect\s!userdata{\csstring\startuserdata}{\csstring\stopuserdata}}
+ {\grabbufferdatadirect
+ % {\s!userdata:\currentuserdata}%
+ {\s!userdata}% unnested, as before
+ {\csstring\startuserdata}%
+ {\csstring\stopuserdata}}
\permanent\protected\def\stopuserdata
- {\userdataparameter\c!before % HH: moved, so we obey the outer spacing
- \dostarttagged\t!userdata\currentuserdata % HH: added, maybe move up ?
+ {\userdataparameter\c!before
+ \dostarttagged\t!userdata\currentuserdata
\begingroup
\useuserdatastyleandcolor\c!style\c!color
- \usealignparameter\userdataparameter % HH: added
+ \usealignparameter\userdataparameter
\edef\currentuserdataalternative{\userdataparameter\c!alternative}%
\ifcsname\currentuserdataalternativehash\s!parent\endcsname \else
\let\currentuserdataalternative\s!default
@@ -139,14 +148,20 @@
\directsetup\p_renderingsetup
\endgroup
\dostoptagged
- \userdataparameter\c!after % HH: moved
+ \userdataparameter\c!after
\endgroup}
-\permanent\protected\def\getuserdata
- {\getbufferdata[\s!userdata]}
+\aliased\let\userdata_stop_instance\stopuserdata
+
+% kind of nested, when we need it:
+%
+% \permanent\tolerant\protected\def\getuserdata [#1]{\normalexpanded{\getbufferdata[\s!userdata:\ifparameter#1\or#1\else\currentuserdata\fi]}}
+% \permanent\tolerant\protected\def\getinlineuserdata[#1]{\normalexpanded{\inlinebuffer [\s!userdata:\ifparameter#1\or#1\else\currentuserdata\fi]}}
+
+% unnested, as before:
-\permanent\protected\def\getinlineuserdata
- {\inlinebuffer[\s!userdata]}
+\permanent\tolerant\protected\def\getuserdata [#1]{\getbufferdata[\s!userdata]}
+\permanent\tolerant\protected\def\getinlineuserdata[#1]{\inlinebuffer [\s!userdata]}
\defineuserdataalternative
[\s!default]
diff --git a/Master/texmf-dist/tex/context/base/mkxl/supp-box.lmt b/Master/texmf-dist/tex/context/base/mkxl/supp-box.lmt
index 657e3addb97..a5bfe139452 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/supp-box.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/supp-box.lmt
@@ -7,8 +7,6 @@ if not modules then modules = { } end modules ['supp-box'] = {
license = "see context related readme files"
}
--- this is preliminary code, use insert_before etc
-
local report_hyphenation = logs.reporter("languages","hyphenation")
local tonumber, next, type = tonumber, next, type
@@ -32,6 +30,8 @@ local glyph_code = nodecodes.glyph
local par_code = nodecodes.par
local indent_code = nodes.listcodes.indent
+local topskip_code = nodes.gluecodes.topskip
+local line_code = nodes.listcodes.line
local hmode_code = tex.modelevels.horizontal
@@ -71,20 +71,20 @@ local setattrlist = nuts.setattrlist
local setwhd = nuts.setwhd
local setglue = nuts.setglue
-local flush_node = nuts.flush_node
-local flush_list = nuts.flush_list
+local flushnode = nuts.flushnode
+local flushlist = nuts.flushlist
local copy_node = nuts.copy
-local copy_list = nuts.copy_list
+local copylist = nuts.copylist
local find_tail = nuts.tail
local getdimensions = nuts.dimensions
local hpack = nuts.hpack
local vpack = nuts.vpack
-local traverse_id = nuts.traverse_id
+local traverseid = nuts.traverseid
local traverse = nuts.traverse
local free = nuts.free
local findtail = nuts.tail
local reverse = nuts.reverse
-local effective_glue= nuts.effective_glue
+local effectiveglue = nuts.effectiveglue
local nextdisc = nuts.traversers.disc
local nextdir = nuts.traversers.dir
@@ -101,9 +101,18 @@ local setlistcolor = nodes.tracers.colors.setlist
local texget = tex.get
local texgetbox = tex.getbox
+local texisdimen = tex.isdimen
local texsetdimen = tex.setdimen
local texgetnest = tex.getnest
+local d_lastnaturalboxwd = texisdimen("lastnaturalboxwd")
+local d_lastnaturalboxht = texisdimen("lastnaturalboxht")
+local d_lastnaturalboxdp = texisdimen("lastnaturalboxdp")
+
+local d_givenwidth = texisdimen("givenwidth")
+local d_givenheight = texisdimen("givenheight")
+local d_givendepth = texisdimen("givendepth")
+
local function hyphenatedlist(head,usecolor)
local current = head and tonut(head)
while current do
@@ -122,7 +131,7 @@ local function hyphenatedlist(head,usecolor)
setlistcolor(post,"darkyellow")
end
if replace then
- flush_list(replace)
+ flushlist(replace)
end
setdisc(current)
if pre then
@@ -164,218 +173,226 @@ implement {
arguments = "integer",
actions = function(n)
-- we just hyphenate (as we pass a hpack) .. a bit too much casting but ...
- local l = languages.hyphenators.handler(tonode(checkedlist(n)))
+ local l = languages.hyphenators.handler(checkedlist(n))
report_hyphenation("show: %s",listtoutf(l,false,true))
end
}
-local function applytochars(current,doaction,noaction,nested)
- while current do
- local id = getid(current)
- if nested and (id == hlist_code or id == vlist_code) then
- context.beginhbox()
- applytochars(getlist(current),doaction,noaction,nested)
- context.endhbox()
- elseif id ~= glyph_code then
- noaction(tonode(copy_node(current)))
- else
- doaction(tonode(copy_node(current)))
+do
+
+ local function applytochars(current,doaction,noaction,nested)
+ while current do
+ local id = getid(current)
+ if nested and (id == hlist_code or id == vlist_code) then
+ context.beginhbox()
+ applytochars(getlist(current),doaction,noaction,nested)
+ context.endhbox()
+ elseif id ~= glyph_code then
+ noaction(tonode(copy_node(current)))
+ else
+ doaction(tonode(copy_node(current)))
+ end
+ current = getnext(current)
end
- current = getnext(current)
end
-end
-local function applytowords(current,doaction,noaction,nested)
- local start
- while current do
- local id = getid(current)
- if id == glue_code then
- if start then
- doaction(tonode(copy_list(start,current)))
- start = nil
+ local function applytowords(current,doaction,noaction,nested)
+ local start
+ while current do
+ local id = getid(current)
+ if id == glue_code then
+ if start then
+ doaction(tonode(copylist(start,current)))
+ start = nil
+ end
+ noaction(tonode(copy_node(current)))
+ elseif nested and (id == hlist_code or id == vlist_code) then
+ context.beginhbox()
+ applytowords(getlist(current),doaction,noaction,nested)
+ context.egroup()
+ elseif not start then
+ start = current
end
- noaction(tonode(copy_node(current)))
- elseif nested and (id == hlist_code or id == vlist_code) then
- context.beginhbox()
- applytowords(getlist(current),doaction,noaction,nested)
- context.egroup()
- elseif not start then
- start = current
+ current = getnext(current)
+ end
+ if start then
+ doaction(tonode(copylist(start)))
end
- current = getnext(current)
- end
- if start then
- doaction(tonode(copy_list(start)))
end
-end
-local methods = {
- char = applytochars,
- characters = applytochars,
- word = applytowords,
- words = applytowords,
-}
+ local methods = {
+ char = applytochars,
+ characters = applytochars,
+ word = applytowords,
+ words = applytowords,
+ }
-implement {
- name = "applytobox",
- arguments = {
- {
- { "box", "integer" },
- { "command" },
- { "method" },
- { "nested", "boolean" },
- }
- },
- actions = function(specification)
- local list = checkedlist(specification.box)
- local action = methods[specification.method or "char"]
- if list and action then
- action(list,context[specification.command or "ruledhbox"],context,specification.nested)
- end
- end
-}
+ implement {
+ name = "applytobox",
+ arguments = {
+ {
+ { "box", "integer" },
+ { "command" },
+ { "method" },
+ { "nested", "boolean" },
+ }
+ },
+ actions = function(specification)
+ local list = checkedlist(specification.box)
+ local action = methods[specification.method or "char"]
+ if list and action then
+ action(list,context[specification.command or "ruledhbox"],context,specification.nested)
+ end
+ end
+ }
-local split_char = lpeg.Ct(lpeg.C(1)^0)
-local split_word = lpeg.tsplitat(lpeg.patterns.space)
-local split_line = lpeg.tsplitat(lpeg.patterns.eol)
-
-local function processsplit(specification)
- local str = specification.data or ""
- local command = specification.command or "ruledhbox"
- local method = specification.method or "word"
- local spaced = specification.spaced
- if command then
- command = context[command]
- end
- if method == "char" or method == "character" then
- if spaced then
- spaced = context.space
+ local split_char = lpeg.Ct(lpeg.C(1)^0)
+ local split_word = lpeg.tsplitat(lpeg.patterns.space)
+ local split_line = lpeg.tsplitat(lpeg.patterns.eol)
+
+ local function processsplit(specification)
+ local str = specification.data or ""
+ local command = specification.command or "ruledhbox"
+ local method = specification.method or "word"
+ local spaced = specification.spaced
+ if command then
+ command = context[command]
end
- local words = lpegmatch(split_char,str)
- for i=1,#words do
- local word = words[i]
- if word == " " then
- if spaced then
- spaced()
+ if method == "char" or method == "character" then
+ if spaced then
+ spaced = context.space
+ end
+ local words = lpegmatch(split_char,str)
+ for i=1,#words do
+ local word = words[i]
+ if word == " " then
+ if spaced then
+ spaced()
+ end
+ elseif command then
+ command(word)
+ else
+ context(word)
end
- elseif command then
- command(word)
- else
- context(word)
end
- end
- elseif method == "word" then
- if spaced then
- spaced = context.space
- end
- local words = lpegmatch(split_word,str)
- for i=1,#words do
- local word = words[i]
- if spaced and i > 1 then
- spaced()
+ elseif method == "word" then
+ if spaced then
+ spaced = context.space
end
- if command then
- command(word)
- else
- context(word)
+ local words = lpegmatch(split_word,str)
+ for i=1,#words do
+ local word = words[i]
+ if spaced and i > 1 then
+ spaced()
+ end
+ if command then
+ command(word)
+ else
+ context(word)
+ end
end
- end
- elseif method == "line" then
- if spaced then
- spaced = context.par
- end
- local words = lpegmatch(split_line,str)
- for i=1,#words do
- local word = words[i]
- if spaced and i > 1 then
- spaced()
+ elseif method == "line" then
+ if spaced then
+ spaced = context.par
end
- if command then
- command(word)
- else
- context(word)
+ local words = lpegmatch(split_line,str)
+ for i=1,#words do
+ local word = words[i]
+ if spaced and i > 1 then
+ spaced()
+ end
+ if command then
+ command(word)
+ else
+ context(word)
+ end
end
+ else
+ context(str)
end
- else
- context(str)
end
-end
-implement {
- name = "processsplit",
- actions = processsplit,
- arguments = {
- {
- { "data" },
- { "command" },
- { "method" },
- { "spaced", "boolean" },
+ implement {
+ name = "processsplit",
+ actions = processsplit,
+ arguments = {
+ {
+ { "data" },
+ { "command" },
+ { "method" },
+ { "spaced", "boolean" },
+ }
}
}
-}
-local a_vboxtohboxseparator = attributes.private("vboxtohboxseparator")
+end
-implement {
- name = "vboxlisttohbox",
- arguments = { "integer", "integer", "dimen" },
- actions = function(original,target,inbetween)
- local current = getlist(getbox(original))
- local head = nil
- local tail = nil
- while current do
- local id = getid(current)
- local next = getnext(current)
- if id == hlist_code then
- local list = getlist(current)
- if head then
- if inbetween > 0 then
- local n = new_glue(0,0,inbetween)
- setlink(tail,n)
- tail = n
- end
- setlink(tail,list)
- else
- head = list
- end
- tail = find_tail(list)
- -- remove last separator
- if getid(tail) == hlist_code and getattribute(tail,a_vboxtohboxseparator) == 1 then
- local temp = tail
- local prev = getprev(tail)
- if next then
- local list = getlist(tail)
- setlink(prev,list)
- setlist(tail)
- tail = find_tail(list)
+do
+
+ local a_vboxtohboxseparator = attributes.private("vboxtohboxseparator")
+
+ implement {
+ name = "vboxlisttohbox",
+ arguments = { "integer", "integer", "dimen" },
+ actions = function(original,target,inbetween)
+ local current = getlist(getbox(original))
+ local head = nil
+ local tail = nil
+ while current do
+ local id = getid(current)
+ local next = getnext(current)
+ if id == hlist_code then
+ local list = getlist(current)
+ if head then
+ if inbetween > 0 then
+ local n = new_glue(0,0,inbetween)
+ setlink(tail,n)
+ tail = n
+ end
+ setlink(tail,list)
else
- tail = prev
+ head = list
+ end
+ tail = find_tail(list)
+ -- remove last separator
+ if getid(tail) == hlist_code and getattribute(tail,a_vboxtohboxseparator) == 1 then
+ local temp = tail
+ local prev = getprev(tail)
+ if next then
+ local list = getlist(tail)
+ setlink(prev,list)
+ setlist(tail)
+ tail = find_tail(list)
+ else
+ tail = prev
+ end
+ flushnode(temp)
end
- flush_node(temp)
+ -- done
+ setnext(tail)
+ setlist(current)
end
- -- done
- setnext(tail)
- setlist(current)
+ current = next
end
- current = next
+ local result = new_hlist()
+ setlist(result,head)
+ setbox(target,result)
+ -- setbox(target,new_hlist(head))
end
- local result = new_hlist()
- setlist(result,head)
- setbox(target,result)
- -- setbox(target,new_hlist(head))
- end
-}
+ }
-implement {
- name = "hboxtovbox",
- arguments = "integer",
- actions = function(n)
- local b = getbox(n)
- local factor = texget("baselineskip",false) / texget("hsize")
- setdepth(b,0)
- setheight(b,getwidth(b) * factor)
- end
-}
+ implement {
+ name = "hboxtovbox",
+ arguments = "integer",
+ actions = function(n)
+ local b = getbox(n)
+ local factor = texget("baselineskip",false) / texget("hsize")
+ setdepth(b,0)
+ setheight(b,getwidth(b) * factor)
+ end
+ }
+
+end
implement {
name = "boxtostring",
@@ -386,39 +403,14 @@ implement {
end
}
-local function getnaturaldimensions(n)
- local w = 0
- local h = 0
- local d = 0
- local l = getlist(getbox(n))
- if l then
- w, h, d = getdimensions(l)
- end
- texsetdimen("lastnaturalboxwd",w)
- texsetdimen("lastnaturalboxht",h)
- texsetdimen("lastnaturalboxdp",d)
- return w, h, d
-end
+do
-implement {
- name = "getnaturaldimensions",
- arguments = "integer",
- actions = getnaturaldimensions
-}
+ -- we can now move this to the tex end
-implement {
- name = "naturalwd",
- arguments = "integer",
- actions = function(n)
- getnaturaldimensions(n)
- context.lastnaturalboxwd(false)
- end
-}
+ local values = tokens.values
+ local dimension_value = values.dimension
-implement {
- name = "getnaturalwd",
- arguments = "integer",
- actions = function(n)
+ local function getnaturaldimensions(n)
local w = 0
local h = 0
local d = 0
@@ -426,25 +418,64 @@ implement {
if l then
w, h, d = getdimensions(l)
end
- context("\\dimexpr%i\\scaledpoint\\relax",w)
+ texsetdimen(d_lastnaturalboxwd,w)
+ texsetdimen(d_lastnaturalboxht,h)
+ texsetdimen(d_lastnaturalboxdp,d)
+ return w, h, d
end
-}
-local function setboxtonaturalwd(n)
- local old = takebox(n)
- local new = hpack(getlist(old))
- setlist(old,nil)
- flush_node(old)
- setbox(n,new)
-end
+ local function setboxtonaturalwd(n)
+ local old = takebox(n)
+ local new = hpack(getlist(old))
+ setlist(old,nil)
+ flushnode(old)
+ setbox(n,new)
+ end
-implement {
- name = "setnaturalwd",
- arguments = "integer",
- actions = setboxtonaturalwd
-}
+ implement {
+ name = "getnaturaldimensions",
+ arguments = "integer",
+ public = true,
+ protected = true,
+ untraced = true,
+ actions = getnaturaldimensions
+ }
+
+ implement {
+ name = "naturalwd",
+ arguments = "integer",
+ usage = "value",
+ public = true,
+ protected = true,
+ actions = function(n)
+ return dimension_value, (getnaturaldimensions(n))
+ end
+ }
+
+ implement {
+ name = "getnaturalwd",
+ arguments = "integer",
+ usage = "value",
+ public = true,
+ protected = true,
+ actions = function(n)
+ local l = getlist(getbox(n))
+ return dimension_value, l and getdimensions(l) or 0
+ end
+ }
-nodes.setboxtonaturalwd = setboxtonaturalwd
+ implement {
+ name = "setnaturalwd",
+ arguments = "integer",
+ public = true,
+ protected = true,
+ untraced = true,
+ actions = setboxtonaturalwd
+ }
+
+ nodes.setboxtonaturalwd = setboxtonaturalwd
+
+end
local doifelse = commands.doifelse
@@ -488,14 +519,15 @@ do
local tonut = nodes.tonut
local takebox = nuts.takebox
- local flush_list = nuts.flush_list
- local copy_list = nuts.copy_list
+ local flushlist = nuts.flushlist
+ local copylist = nuts.copylist
local getwhd = nuts.getwhd
local setbox = nuts.setbox
local new_hlist = nuts.pool.hlist
local values = tokens.values
local dimension_value = values.dimension
+ local cardinal_value = values.cardinal
local boxes = { }
nodes.boxes = boxes
@@ -511,6 +543,9 @@ do
if trace then
report("category %a, name %a, %s (%s)",category,name,"save",b and "content" or "empty")
end
+ if name == "+" then
+ name = #cache[category] + 1
+ end
cache[category][name] = b or false
end
@@ -527,14 +562,23 @@ do
return cache[category][name] and true or false
end
+ function boxes.count(category)
+ return #cache[category]
+ end
+
function boxes.direct(category,name,copy)
name = tonumber(name) or name
local c = cache[category]
local b = c[name]
+-- if name == "+" then
+-- b = remove(c, 1)
+-- else
+-- b = c[name]
+-- end
if not b then
-- do nothing, maybe trace
elseif copy then
- b = copy_list(b)
+ b = copylist(b)
else
c[name] = false
end
@@ -551,13 +595,13 @@ do
local c = cache[category]
local b = takebox(box)
if b then
- flush_list(b)
+ flushlist(b)
end
local b = c[name]
if not b then
-- do nothing, maybe trace
elseif copy then
- b = copy_list(b)
+ b = copylist(b)
else
c[name] = false
end
@@ -567,6 +611,20 @@ do
setbox(box,b or nil)
end
+ function boxes.prune(category)
+ -- this one assumes an indexed list
+ local c = cache[category]
+ local t = { }
+ local n = 0
+ for i=1,#c do
+ local ci = c[i]
+ if ci then
+ n = n + 1 ; t[n] = ci
+ end
+ end
+ cache[category] = t
+ end
+
local function dimensions(category,name)
name = tonumber(name) or name
local b = cache[category][name]
@@ -585,7 +643,7 @@ do
if name and name ~= "" then
local b = c[name]
if b then
- flush_list(b)
+ flushlist(b)
c[name] = false
end
if trace then
@@ -594,7 +652,7 @@ do
else
for k, b in next, c do
if b then
- flush_list(b)
+ flushlist(b)
end
end
cache[category] = { }
@@ -604,6 +662,11 @@ do
end
end
+ function boxes.dispose(category)
+ boxes.reset(category)
+ cache[category] = nil -- or false (for tracing)
+ end
+
implement {
name = "putboxincache",
public = true,
@@ -662,9 +725,36 @@ do
actions = boxes.reset,
}
+ implement {
+ name = "pruneboxesincache",
+ public = true,
+ protected = true,
+ arguments = "string",
+ actions = boxes.prune,
+ }
+
+ implement {
+ name = "disposeboxesincache",
+ public = true,
+ protected = true,
+ arguments = "string",
+ actions = boxes.dispose,
+ }
+
-- we can share this ...
implement {
+ name = "getboxcountfromcache",
+ public = true,
+ protected = true,
+ usage = "value",
+ arguments = "string",
+ actions = function(category)
+ return cardinal_value, #cache[category]
+ end,
+ }
+
+ implement {
name = "getboxwdfromcache",
public = true,
protected = true,
@@ -701,6 +791,18 @@ do
}
implement {
+ name = "getboxhtdpfromcache",
+ arguments = "2 strings",
+ public = true,
+ protected = true,
+ usage = "value",
+ actions = function(category,name)
+ local w, h, d = dimensions(category,name)
+ return dimension_value, h + d
+ end,
+ }
+
+ implement {
name = "putnextboxincache",
public = true,
protected = true,
@@ -720,9 +822,9 @@ end
implement {
name = "lastlinewidth",
actions = function()
- local head = tex.lists.page_head
+ local head = tex.lists.pagehead
-- list dimensions returns 3 value but we take the first
- context(head and getdimensions(getlist(find_tail(tonut(tex.lists.page_head)))) or 0)
+ context(head and getdimensions(getlist(find_tail(tonut(tex.lists.pagehead)))) or 0)
end
}
@@ -752,9 +854,9 @@ implement {
},
},
actions = function(t)
- texsetdimen("givenwidth", t.width or 0)
- texsetdimen("givenheight",t.height or 0)
- texsetdimen("givendepth", t.depth or 0)
+ texsetdimen(d_givenwidth, t.width or 0)
+ texsetdimen(d_givenheight,t.height or 0)
+ texsetdimen(d_givendepth, t.depth or 0)
end,
}
@@ -772,7 +874,7 @@ local function stripglue(list)
if first and first ~= list then
-- we have discardables
setsplit(getprev(first),first)
- flush_list(list)
+ flushlist(list)
list = first
done = true
end
@@ -789,7 +891,7 @@ local function stripglue(list)
end
if last ~= tail then
-- we have discardables
- flush_list(getnext(last))
+ flushlist(getnext(last))
setnext(last)
done = true
end
@@ -843,7 +945,7 @@ local function limitate(t) -- don't pack the result !
else
maxleft = maxleft - swidth
end
- for n in traverse_id(glue_code,list) do
+ for n in traverseid(glue_code,list) do
local width = getdimensions(list,n)
if width > maxleft then
if not last then
@@ -855,7 +957,7 @@ local function limitate(t) -- don't pack the result !
end
end
if last and maxright > 0 then
- for n in traverse_id(glue_code,last) do
+ for n in traverseid(glue_code,last) do
local width = getdimensions(n)
if width < maxright then
first = n
@@ -884,7 +986,7 @@ local function limitate(t) -- don't pack the result !
end
setlink(last,sentinel)
setprev(rest)
- flush_list(rest)
+ flushlist(rest)
end
end
end
@@ -893,11 +995,11 @@ local function limitate(t) -- don't pack the result !
if t.freeze then
local l = hpack(list,total,"exactly")
- for n in traverse_id(glue_code,list) do
- setglue(n,(effective_glue(n,l)))
+ for n in traverseid(glue_code,list) do
+ setglue(n,(effectiveglue(n,l)))
end
setlist(l)
- flush_node(l)
+ flushnode(l)
end
return tonode(list)
@@ -1178,7 +1280,7 @@ do
else
setlink(p,temp,n)
end
- flush_node(found)
+ flushnode(found)
getprop(box,"boxlines")[line] = temp
end
end
@@ -1206,6 +1308,8 @@ do
["rh"] = function(p,l,found) return dimension_value, p.righthangskip end,
["lp"] = function(p,l,found) return dimension_value, p.parfillleftskip end,
["rp"] = function(p,l,found) return dimension_value, p.parfillrightskip end,
+ ["il"] = function(p,l,found) return dimension_value, p.parinitleftskip end,
+ ["ir"] = function(p,l,found) return dimension_value, p.parinitrightskip end,
["in"] = function(p,l,found) return dimension_value, p.indent end,
["nw"] = function(p,l,found) return dimension_value, naturaldimensions(p,l,found).naturalwidth end,
@@ -1303,6 +1407,8 @@ do
define_one("boxlinerh", "rh")
define_one("boxlinelp", "lp")
define_one("boxlinerp", "rp")
+ define_one("boxlineil", "il")
+ define_one("boxlineir", "ir")
define_one("boxlinein", "in")
define_one("boxlinenw", "nw")
define_one("boxlinenh", "nh")
@@ -1319,7 +1425,7 @@ do
local getbox = tex.getbox
local setfield = nodes.setfield
local getfield = nodes.getfield
- local flush = nodes.flush
+ local flush = nodes.flushnode
local copynode = nodes.copy
local function get(n,field,copy)
@@ -1393,3 +1499,45 @@ do
}
end
+
+do
+
+ local function setsplitlisthtdp(n,ht,dp)
+ local box = getbox(n)
+ if box then
+ local head = getlist(box)
+ if head then
+ local tail = findtail(head)
+ local id = getid(head)
+ if id == glue_code and getsubtype(head) == topskip_code then
+ head = getnext(head)
+ id = head and getid(head)
+ ht = ht - getwidth(head)
+ end
+ if id == hlist_code and getsubtype(head) == line_code and getheight(head) < ht then
+-- print("set height",ht)
+ setheight(head,ht)
+ end
+ local id = getid(tail)
+ if id == glue_code then
+ tail = getprev(tail)
+ id = tail and getid(tail)
+ dp = dp - getwidth(tail)
+ end
+ if id == hlist_code and getsubtype(tail) == line_code and getdepth(tail) < dp then
+ setdepth(dept,dp)
+-- print("set depth",dp)
+ end
+ end
+ end
+ end
+
+ implement {
+ name = "setsplitlisthtdp",
+ public = true,
+ protected = true,
+ arguments = { "integer", "dimen", "dimen" },
+ actions = setsplitlisthtdp,
+ }
+end
+
diff --git a/Master/texmf-dist/tex/context/base/mkxl/supp-box.mkxl b/Master/texmf-dist/tex/context/base/mkxl/supp-box.mkxl
index e52ea90b81c..710a4892ed1 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/supp-box.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/supp-box.mkxl
@@ -15,13 +15,26 @@
\unprotect
-\registerctxluafile{supp-box}{autosuffix,optimize}
+\permanent\integerdef\negatelistsigncode\numexpr
+ \negatexlistsigncode
+ +\negateylistsigncode
+\relax
%D And some dimensions:
-\newdimen\givenwidth
-\newdimen\givenheight
-\newdimen\givendepth
+\newdimension\strutht % see above
+\newdimension\strutdp
+\newdimension\struthtdp
+
+\newdimension\givenwidth
+\newdimension\givenheight
+\newdimension\givendepth
+
+\newdimension\lastnaturalboxwd % maybe alias !
+\newdimension\lastnaturalboxht
+\newdimension\lastnaturalboxdp
+
+\registerctxluafile{supp-box}{autosuffix}
% \fixupboxesmode\plusone % gone: is now the default
@@ -35,11 +48,14 @@
%D not, you're in trouble). These shortcuts can be used like a dimension, opposite
%D to the core macros \type {\strutdepth} and alike, which are values.
- \def\strutdp {\dp\strutbox} % overloaded in spac-ver
- \def\strutht {\ht\strutbox} % overloaded in spac-ver
-\permanent\protected\def\strutwd {\wd\strutbox}
-\permanent\protected\def\struthtdp{\dimexpr\strutht+\strutdp\relax}
-\permanent\protected\def\strutgap {\dimexpr\strutht-\strutdp\relax}
+\iffalse
+ \def\strutdp {\dp\strutbox} % overloaded in spac-ver
+ \def\strutht {\ht\strutbox} % overloaded in spac-ver
+ \def\struthtdp{\htdp\strutbox} % overloaded in spac-ver
+\fi
+
+\permanent\protected\def\strutwd {\wd\strutbox}
+\permanent\protected\def\strutgap{\dimexpr\strutht-\strutdp\relax}
%D \macros
%D {voidbox,nextbox}
@@ -57,7 +73,7 @@
%D \DIMENSION\ \type{\prevdepth} and append it later on. The name \type {\nextdepth}
%D suits this purpose well.
-\newdimen\nextdepth
+\newdimension\nextdepth
%D \macros
%D {smashbox, smashboxed, smashedbox}
@@ -91,7 +107,7 @@
%D The next implementation is less sensitive for spurious spaces.
-\newcount\c_boxes_register
+\newinteger\c_boxes_register
\permanent\protected\def\smashbox
{\afterassignment\syst_boxes_smash_boxes_register\c_boxes_register}
@@ -169,14 +185,29 @@
\permanent\protected\def\smashedhbox{\hpack\bgroup\dowithnextboxcs\syst_boxes_smashed_nextbox\hbox}
\permanent\protected\def\smashedvbox{\vpack\bgroup\dowithnextboxcs\syst_boxes_smashed_nextbox\vbox}
-%D First we define a helper. We use a \LUATEX\ feature in order to avoid
-%D mathpalettes.
+%D \starttyping
+%D \startTEXpage[offset=1dk,width=4em]
+%D \dontleavehmode \hbox {0} 0\par
+%D \dontleavehmode \vphantom{0} 0\par
+%D \dontleavehmode \hphantom{0} 0\par
+%D $\textstyle \vphantom{0}$ $\textstyle 0$\par
+%D $\scriptstyle \vphantom{0}$ $\scriptstyle 0$\par
+%D $\scriptscriptstyle\vphantom{0}$ $\scriptscriptstyle 0$\par
+%D \stopTEXpage
+%D \stoptyping
-\newcount\c_boxes_math_style
+% \newinteger\c_boxes_math_style
+%
+% \protected\def\syst_boxes_math_set_nextbox#1%
+% {\c_boxes_math_style\normalmathstyle
+% \setbox\nextbox\hbox{\normalstartimath\mathsurround\zeropoint\triggermathstyle\c_boxes_math_style{#1}\normalstopimath}}
\protected\def\syst_boxes_math_set_nextbox#1%
- {\c_boxes_math_style\normalmathstyle
- \setbox\nextbox\hbox{\normalstartimath\mathsurround\zeropoint\triggermathstyle\c_boxes_math_style{#1}\normalstopimath}}
+ {\setbox\nextbox\hbox\expandafter\bgroup
+ \expandafter\normalstartimath\expandafter\Ustyle\the\mathstackstyle
+ \mathsurround\zeropoint{#1}%
+ \normalstopimath
+ \egroup}
%D \macros
%D {smash}
@@ -224,11 +255,13 @@
\installcorenamespace {smashoptions}
-\setvalue{\??smashoptions w}{\wd\nextbox\zeropoint}
-\setvalue{\??smashoptions h}{\ht\nextbox\zeropoint}
-\setvalue{\??smashoptions d}{\dp\nextbox\zeropoint}
-\setvalue{\??smashoptions t}{\ht\nextbox\zeropoint}
-\setvalue{\??smashoptions b}{\dp\nextbox\zeropoint}
+\defcsname\??smashoptions w\endcsname{\wd\nextbox\zeropoint}
+\defcsname\??smashoptions h\endcsname{\ht\nextbox\zeropoint}
+\defcsname\??smashoptions d\endcsname{\dp\nextbox\zeropoint}
+\defcsname\??smashoptions t\endcsname{\ht\nextbox\zeropoint}
+\defcsname\??smashoptions b\endcsname{\dp\nextbox\zeropoint}
+\defcsname\??smashoptions hd\endcsname{\ht\nextbox\zeropoint\dp\nextbox\zeropoint}
+\defcsname\??smashoptions whd\endcsname{\wd\nextbox\zeropoint\ht\nextbox\zeropoint\dp\nextbox\zeropoint}
\def\syst_boxes_smash_process_option#1%
{\ifx#1\relax\else
@@ -323,7 +356,7 @@
%D We also define plain's \type {\mathstrut}.
-\permanent\protected\def\mathstrut{\vphantom(} % can be made faster by inlining
+\permanent\protected\def\mathstrut{\Ustack{\vphantom(}} % can be made faster by inlining
%D \macros
%D {getboxheight}
@@ -351,7 +384,7 @@
%D
%D \starttyping
%D \def\getboxheight#1\of#2\box#3%
-%D {#1\ht#3\advance#1\dp#3\relax}
+%D {#1\ht#3\advanceby#1\dp#3\relax}
%D \stoptyping
%D
%D The next alternative is slightly more clever, since it accepts \type {{12}} as
@@ -378,25 +411,25 @@
%D met 0~regels. The raw alternative does not round. See the \MKII\ and \MKIV\ files
%D for historic variants.
-\ifdefined\roundingeps \else \newdimen\roundingeps \roundingeps=10sp \fi
+\ifdefined\roundingeps \else \newdimension\roundingeps \roundingeps=10sp \fi
-\newcount\noflines
-\newdimen\noflinesheight
+\newinteger \noflines
+\newdimension\noflinesheight
\permanent\protected\def\getnoflines#1%
{\noflinesheight#1\relax
\ifzeropt\noflinesheight
\noflines\zerocount
\orelse\ifdim\noflinesheight>\zeropoint
- \advance\noflinesheight-\roundingeps
- \divide\noflinesheight\openlineheight
+ \advanceby\noflinesheight-\roundingeps
+ \divideby\noflinesheight\openlineheight
\noflines\noflinesheight
- \advance\noflines\plusone
+ \advanceby\noflines\plusone
\else
- \advance\noflinesheight\roundingeps
- \divide\noflinesheight\openlineheight
+ \advanceby\noflinesheight\roundingeps
+ \divideby\noflinesheight\openlineheight
\noflines\noflinesheight
- \advance\noflines\minusone
+ \advanceby\noflines\minusone
\fi}
\permanent\protected\def\getroundednoflines#1%
@@ -404,12 +437,12 @@
\ifzeropt\noflinesheight
\noflines\zerocount
\orelse\ifdim\noflinesheight>\zeropoint
- \advance\noflinesheight\roundingeps
- \divide\noflinesheight\openlineheight
+ \advanceby\noflinesheight\roundingeps
+ \divideby\noflinesheight\openlineheight
\noflines\noflinesheight
\else
- \advance\noflinesheight-\roundingeps
- \divide\noflinesheight\openlineheight
+ \advanceby\noflinesheight-\roundingeps
+ \divideby\noflinesheight\openlineheight
\noflines\noflinesheight
\fi}
@@ -418,14 +451,14 @@
\ifzeropt\noflinesheight
\noflines\zerocount
\orelse\ifdim\noflinesheight>\zeropoint
- \advance\noflinesheight\roundingeps
- \advance\noflinesheight.5\openlineheight
- \divide\noflinesheight\openlineheight
+ \advanceby\noflinesheight\roundingeps
+ \advanceby\noflinesheight.5\openlineheight
+ \divideby\noflinesheight\openlineheight
\noflines\noflinesheight
\else
- \advance\noflinesheight-\roundingeps
- \advance\noflinesheight-.5\openlineheight
- \divide\noflinesheight\openlineheight
+ \advanceby\noflinesheight-\roundingeps
+ \advanceby\noflinesheight-.5\openlineheight
+ \divideby\noflinesheight\openlineheight
\noflines\noflinesheight
\fi}
@@ -471,7 +504,7 @@
% \unvbox\nextbox
% \endofshapebox
% \globalscratchcounter\zerocount
-% \reshapebox{\global\advance\globalscratchcounter\plusone}%
+% \reshapebox{\global\advanceby\globalscratchcounter\plusone}%
% \expandafter\egroup\expandafter\noflines\the\globalscratchcounter\relax}
\def\syst_boxes_determine_noflines
@@ -484,6 +517,9 @@
\enforced\let\\\endgraf
\dowithnextboxcs\syst_boxes_determine_noflines\vbox}
+\def\determinednoflines#1%
+ {\localcontrolled{\determinenoflines{#1}}\noflines}
+
%D \macros
%D {doiftextelse, doiftext}
%D
@@ -665,20 +701,32 @@
\def\syst_boxes_do_tlap{\vpack to \zeropoint{\vss\box\nextbox}\endgroup}
\def\syst_boxes_do_blap{\vpack to \zeropoint{\box\nextbox\vss}\endgroup}
-\def\syst_boxes_rlap {\begingroup\dowithnextboxcs\syst_boxes_do_rlap\hbox}
-\def\syst_boxes_llap {\begingroup\dowithnextboxcs\syst_boxes_do_llap\hbox}
-\def\syst_boxes_clap {\begingroup\dowithnextboxcs\syst_boxes_do_clap\hbox}
-\def\syst_boxes_math_clap{\mathpalette\syst_boxes_do_math_clap}
-\def\syst_boxes_math_llap{\mathpalette\syst_boxes_do_math_llap}
-\def\syst_boxes_math_rlap{\mathpalette\syst_boxes_do_math_rlap}
+\protected\def\syst_boxes_rlap{\begingroup\dowithnextboxcs\syst_boxes_do_rlap\hbox}
+\protected\def\syst_boxes_llap{\begingroup\dowithnextboxcs\syst_boxes_do_llap\hbox}
+\protected\def\syst_boxes_clap{\begingroup\dowithnextboxcs\syst_boxes_do_clap\hbox}
-\def\syst_boxes_do_math_clap#1#2{\syst_boxes_clap{\normalstartimath\mathsurround\zeropoint#1#2\normalstopimath}}
-\def\syst_boxes_do_math_llap#1#2{\syst_boxes_llap{\normalstartimath\mathsurround\zeropoint#1#2\normalstopimath}}
-\def\syst_boxes_do_math_rlap#1#2{\syst_boxes_rlap{\normalstartimath\mathsurround\zeropoint#1#2\normalstopimath}}
+% \def\syst_boxes_do_math_clap#1#2{\syst_boxes_clap{\normalstartimath\mathsurround\zeropoint#1#2\normalstopimath}}
+% \def\syst_boxes_do_math_llap#1#2{\syst_boxes_llap{\normalstartimath\mathsurround\zeropoint#1#2\normalstopimath}}
+% \def\syst_boxes_do_math_rlap#1#2{\syst_boxes_rlap{\normalstartimath\mathsurround\zeropoint#1#2\normalstopimath}}
+%
+% \def\syst_boxes_math_clap{\mathpalette\syst_boxes_do_math_clap}
+% \def\syst_boxes_math_llap{\mathpalette\syst_boxes_do_math_llap}
+% \def\syst_boxes_math_rlap{\mathpalette\syst_boxes_do_math_rlap}
+
+\def\syst_boxes_math_xlap#1#2%
+ {\normalexpanded{#1\bgroup\normalstartimath\Ustyle\the\mathstyle}%
+ %{\expandafter#1\expandafter\bgroup\expandafter\normalstartimath\expandafter\Ustyle\the\mathstyle
+ \mathsurround\zeropoint#2%
+ \normalstopimath\egroup}
+
+\def\syst_boxes_math_clap{\syst_boxes_math_xlap\syst_boxes_clap}
+\def\syst_boxes_math_llap{\syst_boxes_math_xlap\syst_boxes_llap}
+\def\syst_boxes_math_rlap{\syst_boxes_math_xlap\syst_boxes_rlap}
\permanent\protected\def\rlap{\mathortext\syst_boxes_math_rlap\syst_boxes_rlap}
\permanent\protected\def\llap{\mathortext\syst_boxes_math_llap\syst_boxes_llap}
\permanent\protected\def\clap{\mathortext\syst_boxes_math_clap\syst_boxes_clap}
+
\permanent\protected\def\tlap{\begingroup\dowithnextboxcs\syst_boxes_do_tlap\vbox}
\permanent\protected\def\blap{\begingroup\dowithnextboxcs\syst_boxes_do_blap\vbox}
@@ -805,18 +853,15 @@
\newif \ifreshapingbox
\newif \ifreshapingfailed % may save redundant runs
-\newbox \shapebox
-\newcount \shapepenalty
-\newdimen \shapekern
-\newskip \shapeskip
-
-\newbox \newshapebox
-\newbox \oldshapebox
-\newbox \tmpshapebox
-
-\newcount \shapecounter
-
-\newevery \everyshapebox \relax
+\newbox \shapebox
+\newinteger \shapepenalty
+\newdimension\shapekern
+\newgluespec \shapeskip
+\newbox \newshapebox
+\newbox \oldshapebox
+\newbox \tmpshapebox
+\newinteger \shapecounter
+\newevery \everyshapebox \relax
\permanent\dimensiondef\shapesignal.12345678pt % or 12345sp
@@ -880,7 +925,7 @@
\restoreshapebox
\exitloop
\else
- \advance\shapecounter \plusone
+ \advanceby\shapecounter \plusone
\fi}
\permanent\protected\def\beginofshapebox
@@ -905,7 +950,7 @@
% \par before the next \vskip gives far worse results
\ifdim\parskip>\zeropoint\vskip\parskip\else\par\fi
% and take a look
- \ifdim\prevdepth=-\thousandpoint
+ \ifdim\prevdepth=-\thousandpoint % or <=
\prevdepth\zeropoint
\fi
\ifdim\prevdepth<\zeropoint\relax
@@ -1044,7 +1089,7 @@
%D This can be done in a more modern way but for nostalgic reasons we keep it.
-\mutable\let\nextprocessedtoken\empty
+\mutable\lettonothing\nextprocessedtoken
\mutable\let\before \relax % for now mutable
%mutable\let\between\relax % is a math character
@@ -1109,7 +1154,7 @@
\def\syst_boxes_boundtext#1%
{\setbox\scratchboxone\hbox{#1}%
- \advance\scratchdimen -\wd\scratchboxone
+ \advanceby\scratchdimen -\wd\scratchboxone
\ifdim\scratchdimen>\zeropoint\relax#1\fi}
\permanent\protected\def\doboundtext#1#2#3% still used?
@@ -1118,7 +1163,7 @@
\scratchdimen#2\relax
\ifdim\wd\scratchbox>\scratchdimen
\setbox\scratchbox\hbox{#3}%
- \advance\scratchdimen -\wd\scratchbox
+ \advanceby\scratchdimen -\wd\scratchbox
\handletokens#1\with\syst_boxes_boundtext
\fi
\box\scratchbox}}
@@ -1143,8 +1188,8 @@
%D See \MKIV\ file for the older implementation.
-\let\m_syst_boxes_left \empty
-\let\m_syst_boxes_right\empty
+\lettonothing\m_syst_boxes_left
+\lettonothing\m_syst_boxes_right
\permanent\protected\def\limitatetext#1#2#3%
{% we could also split in \LUA
@@ -1173,7 +1218,7 @@
\ifdim\wd\scratchbox>#2\relax
\setbox\scratchbox\hbox{#3}%
\hsize#2\relax
- \advance\hsize-\wd\scratchbox
+ \advanceby\hsize-\wd\scratchbox
\setbox\scratchbox\vbox{\forgetall\veryraggedright#1}%
\setbox\scratchbox\vsplit\scratchbox to \lineheight
\vbox
@@ -1441,8 +1486,8 @@
\dontcomplain
\forgetall
\scangivendimensions#1\relax
- \advance\vsize\givenheight
- \advance\hsize\givenwidth
+ \advanceby\vsize\givenheight
+ \advanceby\hsize\givenwidth
\dowithnextboxcs\syst_boxes_centered_finish
\hbox}
@@ -1526,19 +1571,19 @@
\mutable\let\rigidcolumnlines\!!zerocount
-\newbox \rigidcolumnbox
-\newdimen\rigidhsize
-\newcount\rigidcolumns
+\newbox \rigidcolumnbox
+\newdimension\rigidhsize
+\newinteger \rigidcolumns
\permanent\protected\def\setrigidcolumnhsize#1#2#3% todo: \dimexpr
{\global\rigidhsize\hsize
\global\rigidcolumns#3\relax
\hsize#1\relax
\scratchdimen -#2\relax
- \multiply\scratchdimen #3\relax
- \advance\scratchdimen #2\relax
- \advance\hsize \scratchdimen
- \divide\hsize #3\relax}
+ \multiplyby\scratchdimen #3\relax
+ \advanceby\scratchdimen #2\relax
+ \advanceby\hsize \scratchdimen
+ \divideby\hsize #3\relax}
% ==
%
@@ -1563,15 +1608,15 @@
% \iffalse
% % maybe some day an option
% \scratchskip\ht\rigidcolumnbox
- % \advance\scratchskip\dp\rigidcolumnbox
+ % \advanceby\scratchskip\dp\rigidcolumnbox
% \getnoflines\scratchskip
% \ifodd\noflines
- % \advance\noflines\plusone
+ % \advanceby\noflines\plusone
% \fi
- % \divide\noflines\rigidcolumns
+ % \divideby\noflines\rigidcolumns
%\else
\scratchdimen\ht\rigidcolumnbox
- \divide\scratchdimen \rigidcolumns
+ \divideby\scratchdimen \rigidcolumns
\getnoflines\scratchdimen
%\fi
\else
@@ -1582,31 +1627,33 @@
% since in practice we also use this macro for
% funny lineheights and border cases
\setbox0=\box\rigidcolumnbox
- \doloop
- {\setbox\rigidcolumnbox=\copy0
- \setbox\scratchbox\hpack to \rigidhsize
- {\dorecurse\rigidcolumns
- {\setbox\scratchbox\vsplit\rigidcolumnbox to \scratchdimen
- \dp\scratchbox\openstrutdepth
- \setbox\scratchbox\vtop
- \ifalignrigidcolumns to
- \ifstretchrigidcolumns\vsize\else\scratchdimen\fi
- \fi
- {\unvbox\scratchbox}%
- \wd\scratchbox\hsize
- \box\scratchbox
- \hfill}%
- \hfillneg}%
- \ifvoid\rigidcolumnbox\exitloop\else\advance\scratchdimen\lineheight\fi}%
- \iftightrigidcolumns
- \setbox\scratchbox\hpack{\raise\dp\scratchbox\box\scratchbox}%
- \else
- \advance\scratchdimen -\openstrutdepth
- \setbox\scratchbox\hpack{\raise\scratchdimen\box\scratchbox}%
- \dp\scratchbox\openstrutdepth
- \ht\scratchbox\scratchdimen
- \fi
- \box\scratchbox}%
+ \ifvoid0\else
+ \doloop
+ {\setbox\rigidcolumnbox=\copy0
+ \setbox\scratchbox\hpack to \rigidhsize
+ {\dorecurse\rigidcolumns
+ {\setbox\scratchbox\vsplit\rigidcolumnbox to \scratchdimen
+ \dp\scratchbox\openstrutdepth
+ \setbox\scratchbox\vtop
+ \ifalignrigidcolumns to
+ \ifstretchrigidcolumns\vsize\else\scratchdimen\fi
+ \fi
+ {\unvbox\scratchbox}%
+ \wd\scratchbox\hsize
+ \box\scratchbox
+ \hfill}%
+ \hfillneg}%
+ \ifvoid\rigidcolumnbox\exitloop\else\advanceby\scratchdimen\lineheight\fi}%
+ \iftightrigidcolumns
+ \setbox\scratchbox\hpack{\raise\dp\scratchbox\box\scratchbox}%
+ \else
+ \advanceby\scratchdimen -\openstrutdepth
+ \setbox\scratchbox\hpack{\raise\scratchdimen\box\scratchbox}%
+ \dp\scratchbox\openstrutdepth
+ \ht\scratchbox\scratchdimen
+ \fi
+ \box\scratchbox
+ \fi}%
\fi}
%D \macros
@@ -1632,8 +1679,8 @@
%D These macros are used in reformatting footnotes, so they do what they're meant
%D for.
-\newdimen\vboxtohboxslack
-\newdimen\hboxestohboxslack
+\newdimension\vboxtohboxslack
+\newdimension\hboxestohboxslack
%D Create line and fake height of paragraph by messign with heights: a nice hack by
%D DEK himself.
@@ -1642,14 +1689,14 @@
% {\bgroup
% \ifdim\baselineskip<16pt \relax
% \scratchdimen\baselineskip
-% \multiply\scratchdimen 1024
+% \multiplyby\scratchdimen 1024
% \else
% \message{cropping \baselineskip to 16pt}%
% \scratchdimen\maxdimen
% \fi
-% \divide\scratchdimen \hsize
-% \multiply\scratchdimen 64
-% \xdef\vboxtohboxfactor{\withoutpt\the\scratchdimen}%
+% \divideby\scratchdimen \hsize
+% \multiplyby\scratchdimen 64
+% \xdef\vboxtohboxfactor{\toscaled\scratchdimen}%
% \egroup}
%
% \protected\def\startvboxtohbox
@@ -1735,10 +1782,10 @@
%D The next macro is used in typesetting inline headings. Let's first look at the
%D macro and then show an example.
-\newbox \unhhedbox
-\newbox \hhbox
-\newdimen \lasthhboxwidth
-\newskip \hhboxindent
+\newbox \unhhedbox
+\newbox \hhbox
+\newdimension\lasthhboxwidth
+\newgluespec \hhboxindent
\permanent\protected\def\unhhbox#1\with#2%
{\bgroup
@@ -1787,7 +1834,7 @@
%D \unhhbox0\with{\ruledhbox{\box\hhbox}}
%D \hskip1em plus 1em minus 1em
%D \hhboxindent=\lasthhboxwidth
-%D \advance\hhboxindent by \lastskip
+%D \advanceby\hhboxindent by \lastskip
%D \unhhbox2\with{\ruledhbox{\box\hhbox}}
%D \stopbuffer
%D
@@ -1938,7 +1985,7 @@
\enforced\aliased\let\stopoverlay\egroup
\processboxes\syst_boxes_overlay_process}
-\aliased\let\stopoverlay\relax
+\permanent\protected\lettonothing\stopoverlay
%D \macros
%D {fakebox}
@@ -2017,7 +2064,7 @@
\permanent\protected\def\bbox{\hpack\bgroup\dowithnextboxcs\syst_boxes_bbox_finish\hbox}
\def\syst_boxes_tbox_finish
- {\scratchheight\ht\strutbox
+ {\scratchheight\strutht
\scratchdepth\dimexpr\htdp\nextbox-\scratchheight\relax
\ht\nextbox\scratchheight
\dp\nextbox\scratchdepth
@@ -2026,7 +2073,7 @@
\egroup}
\def\syst_boxes_bbox_finish
- {\scratchdepth\dp\strutbox
+ {\scratchdepth\strutdp
\scratchheight\dimexpr\htdp\nextbox-\scratchdepth\relax
\dp\nextbox\scratchdepth
\ht\nextbox\scratchheight
@@ -2064,14 +2111,14 @@
%D This example demonstrates that one can use positive and negative values.
%D Dimension registers are also accepted.
-\newdimen\sizeofbox
+\newdimension\sizeofbox
\permanent\protected\def\boxofsize#1%
{\bgroup
\sizeofbox\zeropoint
\scratchdimen\zeropoint
\def\docommand
- {\advance\sizeofbox\scratchdimen
+ {\advanceby\sizeofbox\scratchdimen
\futurelet\nexttoken\dodocommand}%
\def\dodocommand
{\ifx\nexttoken\bgroup
@@ -2093,7 +2140,7 @@
{\scratchdimen#1\hsize
\ifdim\wd\nextbox>\scratchdimen
\setbox\nextbox\hbox
- {\advance\scratchdimen -.1\hsize
+ {\advanceby\scratchdimen -.1\hsize
\limitatetext{\unhbox\nextbox}{\scratchdimen}{\nobreak#2}}%
\fi
\unhbox\nextbox}
@@ -2109,7 +2156,7 @@
\hpack{\box\nextbox}
\prevdepth\strutdp
\doloop
- {\advance\scratchdimen -\lineheight
+ {\advanceby\scratchdimen -\lineheight
\ifdim\scratchdimen<\zeropoint
\exitloop
\else
@@ -2148,9 +2195,9 @@
\permanent\protected\def\placedbox
{\iftraceboxplacement\ruledhbox\else\hbox\fi}
-\newdimen\boxoffset
-\newdimen\boxhdisplacement
-\newdimen\boxvdisplacement
+\newdimension\boxoffset
+\newdimension\boxhdisplacement
+\newdimension\boxvdisplacement
\permanent\protected\def\rightbox {\hpack\bgroup\dowithnextboxcs\syst_boxes_rightbox_finish \placedbox}
\permanent\protected\def\leftbox {\hpack\bgroup\dowithnextboxcs\syst_boxes_leftbox_finish \placedbox}
@@ -2287,8 +2334,8 @@
\permanent\protected\def\lrtbbox#1#2#3#4% l r t b
{\bgroup
\dowithnextboxcontent
- {\advance\hsize-#1\advance\hsize-#2\relax
- \advance\vsize-#3\advance\vsize-#4\relax}
+ {\advanceby\hsize-#1\advanceby\hsize-#2\relax
+ \advanceby\vsize-#3\advanceby\vsize-#4\relax}
{\forgetall\vpack to \vsize{\vskip#3\hpack to \hsize{\hskip#1\box\nextbox\hss}\vss}\egroup}
\vbox}
@@ -2303,7 +2350,7 @@
\def\syst_boxes_toplinebox_finish
{\ifdim\dp\nextbox>\strutdepth
\scratchdimen\dp\nextbox
- \advance\scratchdimen-\strutdepth
+ \advanceby\scratchdimen-\strutdepth
\getnoflines\scratchdimen
\struttedbox{\box\nextbox}%
\dorecurse\noflines\verticalstrut
@@ -2393,7 +2440,7 @@
\installcorenamespace {boxstack}
-\newcount\c_syst_boxes_stack
+\newinteger\c_syst_boxes_stack
\mutable\let\b_syst_boxes_stack\relax
@@ -2402,7 +2449,7 @@
\letcsname\??boxstack\number\c_syst_boxes_stack\endcsname\b_syst_boxes_stack}
\protected\def\syst_boxes_push#1#2%
- {\global\advance\c_syst_boxes_stack\plusone
+ {\global\advanceby\c_syst_boxes_stack\plusone
\expandafter\let\expandafter\b_syst_boxes_stack\csname\??boxstack\number\c_syst_boxes_stack\endcsname
\ifrelax\b_syst_boxes_stack % cheaper then csname check as in most cases it's defined
\syst_boxes_stack_allocate
@@ -2411,7 +2458,7 @@
\protected\def\syst_boxes_pop#1#2%
{#1\setbox#2\box\csname\??boxstack\number\c_syst_boxes_stack\endcsname
- \global\advance\c_syst_boxes_stack\minusone}
+ \global\advanceby\c_syst_boxes_stack\minusone}
\permanent\protected\def\localpushbox {\syst_boxes_push\relax}
\permanent\protected\def\localpopbox {\syst_boxes_pop \relax}
@@ -2432,6 +2479,7 @@
%D \getboxfromcache{foo}{\recurselevel}\zerocount
%D \fi
%D }
+%D % \startMPcode draw rawtexbox("category","name") ; \stopMPcode
%D \resetboxesincache{foo}
%D \stoptyping
@@ -2446,6 +2494,7 @@
% \getboxwdfromcache % {category} {name}
% \getboxhtfromcache % {category} {name}
% \getboxdpfromcache % {category} {name}
+% \getboxhtdpfromcache % {category} {name}
%D \macros
%D {removedepth, obeydepth}
@@ -2475,8 +2524,11 @@
%D
%D A funny (but rather stupid) one, plus a redefinition.
+% \permanent\protected\def\removebottomthings
+% {\dorecurse\plusfive{\unskip\unkern\unpenalty}}
+
\permanent\protected\def\removebottomthings
- {\dorecurse\plusfive{\unskip\unkern\unpenalty}}
+ {\localcontrolledloop\plusone\plusfive\plusone{\unskip\unkern\unpenalty}}
\permanent\protected\def\removelastskip % \ifvmode the plain tex one \fi, overloaded to \permanent in spac-ver
{\ifvmode\ifzeropt\lastskip\else\vskip-\lastskip\fi\fi}
@@ -2606,8 +2658,8 @@
\permanent\protected\def\shownextbox % seldom used
{\dowithnextbox
{\bgroup
- \showboxbreadth\maxdimen
- \showboxdepth \maxdimen
+ \showboxbreadth\maxcount
+ \showboxdepth \maxcount
\scratchcounter\interactionmode
\batchmode
\showbox\nextbox
@@ -2636,10 +2688,8 @@
\fi
\egroup}
-% Why not ...
-
-\showboxbreadth\plusthousand
-\showboxdepth \plusthousand
+% \showboxbreadth\plusthousand
+% \showboxdepth \plusthousand
%D Moved from cont-new:
%D
@@ -2678,7 +2728,12 @@
{\beginlocalcontrol\begingroup
\dowithnextboxcs\syst_boxes_contenttostring\hbox}
-\newtoks\everypreroll
+\newtoks \everypreroll
+\newif \ifprerolling
+
+\appendtoks
+ \prerollingtrue
+\to \everypreroll
\let\prerolltostring\firstofoneargument % we need to bypass initializations
@@ -2710,17 +2765,17 @@
%D \setbox0\hbox to 10cm{foo} \the\naturalwd0
%D \stoptyping
-\newdimen\lastnaturalboxwd
-\newdimen\lastnaturalboxht
-\newdimen\lastnaturalboxdp
+% \newdimension\lastnaturalboxwd
+% \newdimension\lastnaturalboxht
+% \newdimension\lastnaturalboxdp
%D We can define these public in lua:
-\aliased\let\getnaturaldimensions\clf_getnaturaldimensions % sets three dimensions
-\aliased\let\naturalwd \clf_naturalwd % calculates and returns wd
+% \aliased\let\getnaturaldimensions\clf_getnaturaldimensions % sets three dimensions
+% \aliased\let\naturalwd \clf_naturalwd % calculates and returns wd
-\aliased\let\getnaturalwd\clf_getnaturalwd % no intermediate
-\aliased\let\setnaturalwd\clf_setnaturalwd % no intermediate
+% \aliased\let\getnaturalwd\clf_getnaturalwd % no intermediate
+% \aliased\let\setnaturalwd\clf_setnaturalwd % no intermediate
\permanent\protected\def\doifelserighttoleftinbox{\clf_doifelserighttoleftinbox}
@@ -2795,10 +2850,10 @@
\permanent\protected\def\linebox
{\hpack\bgroup\dowithnextbox
- {\scratchdimen\dimexpr\dimexpr\htdp\nextbox-\lineheight\relax/2+\dp\strutbox\relax
+ {\scratchdimen\dimexpr\dimexpr\htdp\nextbox-\lineheight\relax/2+\strutdp\relax
\setbox\nextbox\hpack{\lower\scratchdimen\box\nextbox}%
- \ht\nextbox\ht\strutbox
- \dp\nextbox\dp\strutbox
+ \ht\nextbox\strutht
+ \dp\nextbox\strutdp
\box\nextbox
\egroup}
\hbox}
@@ -2867,6 +2922,29 @@
%D \setpostlistbox <box> <hbox|vbox|vtop|somebox>
%D \stoptyping
+%D Defined in lua:
+%D
+%D setsplitlisthtdp\scratchbox\struthp\strutdp
+
+%D Handy but I'll probably forget it:
+%D
+%D \starttyping
+%D \setbox0\hbox{!!!!!}
+%D \showbox 0
+%D \showboxhere 0 % always on console, less clutter
+%D \stoptyping
+
+\untraced\permanent\protected\def\showboxhere{\showbox nolevels content online all }
+
+% % possible extra interface, currently disabled
+%
+% \permanent\tolerant\protected\def\registeranchorbox[#1]#*[#2]%
+% {\dowithnextbox
+% {\clf_registeranchorbox
+% \namedboxanchor{#1}%
+% \ifcstok{#2}\v!before\minusone\else\plusone\fi
+% \box\nextbox}}
+
\protect \endinput
% a bit of test code:
diff --git a/Master/texmf-dist/tex/context/base/mkxl/supp-mat.mkxl b/Master/texmf-dist/tex/context/base/mkxl/supp-mat.mkxl
index 5822e959dd3..c3c69593aff 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/supp-mat.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/supp-mat.mkxl
@@ -44,21 +44,21 @@
%D
%D Which is implemented (in \type{syst-ini.mkiv}) as:
-\permanent\protected\def\Ucheckedstartdisplaymath
- {\ifinner
- \ifhmode
- \normalUstartmath
- \let\Ucheckedstopdisplaymath\normalUstopmath
- \else
- \normalUstartdisplaymath
- \let\Ucheckedstopdisplaymath\normalUstopdisplaymath
- \fi
- \else
- \normalUstartdisplaymath
- \let\Ucheckedstopdisplaymath\normalUstopdisplaymath
- \fi}
-
-\aliased\let\Ucheckedstopdisplaymath\relax
+% \permanent\protected\def\Ucheckedstartdisplaymath
+% {\ifinner
+% \ifhmode
+% \normalUstartmath
+% \let\Ucheckedstopdisplaymath\normalUstopmath
+% \else
+% \normalUstartdisplaymath
+% \let\Ucheckedstopdisplaymath\normalUstopdisplaymath
+% \fi
+% \else
+% \normalUstartdisplaymath
+% \let\Ucheckedstopdisplaymath\normalUstopdisplaymath
+% \fi}
+%
+% \aliased\let\Ucheckedstopdisplaymath\relax
% \let\normalsuper\Usuperscript % obsolete
% \let\normalsuber\Usubscript % obsolete
@@ -69,8 +69,8 @@
\aliased\let\stopdmath \Ustopdisplaymath % \Ucheckedstopdisplaymath
\permanent\protected\def\mathematics#1{\relax \ifmmode#1\else\normalstartimath#1\normalstopimath\fi}
-\permanent\protected\def\displaymath#1{\noindent \ifmmode#1\else\normalstartdmath#1\normalstopdmath\fi}
-\permanent\protected\def\inlinemath #1{\dontleavehmode\ifmmode#1\else\normalstartimath#1\normalstopimath\fi}
+%permanent\protected\def\displaymath#1{\noindent \ifmmode#1\else\normalstartdmath#1\normalstopdmath\fi}
+%permanent\protected\def\inlinemath #1{\dontleavehmode\ifmmode#1\else\normalstartimath#1\normalstopimath\fi}
\permanent\protected\def\textmath #1{\dontleavehmode\ifmmode#1\else\begingroup\everymath\emptytoks\normalstartimath#1\normalstopimath\endgroup\fi} % \mathsurround\zeropoint
\aliased\let\stopmathmode\relax
@@ -93,17 +93,23 @@
%D \macros
%D {displaymathematics,inlinemathematics,automathematics}
%D
-%D An example of usage of the following can be found in the MathML module:
+%D We no longer support native displaymath, which is no big deal because already
+%D for many years we abandoned it. We therefore also default differently now. We
+%D signal \LUAMETATEX\ that the double dollar mode actually has to be inline
+%D display math anyway.
\ifdefined\strc_formulas_start_formula \else
- \def\strc_formulas_start_formula{\normalstartdmath}
- \def\strc_formulas_stop_formula {\normalstopdmath }
+ \def\strc_formulas_start_formula{\normalstartdmath}
+ \def\strc_formulas_stop_formula {\normalstopdmath }
\fi
\permanent\protected\def\displaymathematics#1{\relax\ifmmode#1\else\strc_formulas_start_formula{}#1\strc_formulas_stop_formula\fi}
\permanent\protected\def\inlinemathematics {\dontleavehmode\mathematics}
%permanent\protected\def\automathematics {\relax\ifhmode\expandafter\inlinemathematics\else\expandafter\displaymathematics\fi}
+\aliased\let\displaymath\displaymathematics % we no longer support native displaymath
+\aliased\let\inlinemath \inlinemathematics % we no longer support native displaymath
+
% better, esp when used in bTABLE ... eTABLE
\permanent\protected\def\automathematics
@@ -125,36 +131,36 @@
%D
%D REPLACED (keep commented):
-\newsignal\dimensionsignal
-
-\mutable\def\dimensiontypeface {\tf}
-\mutable\def\dimensionhalfspace {\,}
-
-\aliased\let\dodimensionsignal\relax
-
-\permanent\protected\def\dimension#1%
- {\pushmacro\dodimensionsignal
- \enforced\gdef\dodimensionsignal{\kern\dimensionsignal}%
- \ifzeropt\lastskip
- \ifzeropt\lastkern
- \ifmmode
- \mathematics{\dimensionhalfspace\dimensionhalfspace\dimensiontypeface#1}%
- \else
- \mathematics{\dimensiontypeface#1}%
- \fi
- \orelse\ifdim\lastkern=\dimensionsignal
- \mathematics{\dimensionhalfspace\dimensiontypeface#1}%
- \else
- \unkern\mathematics{\dimensionhalfspace\dimensionhalfspace\dimensiontypeface#1}%
- \fi
- \else
- \unskip\mathematics{\dimensionhalfspace\dimensionhalfspace\dimensiontypeface#1}%
- \fi
- \dodimensionsignal
- \popmacro\dodimensionsignal}
-
-\permanent\protected\def\nodimension#1%
- {\unskip#1\enforced\glet\dodimensionsignal\relax}
+% \newsignal\dimensionsignal
+%
+% \mutable\def\dimensiontypeface {\tf}
+% \mutable\def\dimensionhalfspace {\,}
+%
+% \aliased\let\dodimensionsignal\relax
+%
+% \permanent\protected\def\dimension#1%
+% {\pushmacro\dodimensionsignal
+% \enforced\gdef\dodimensionsignal{\kern\dimensionsignal}%
+% \ifzeropt\lastskip
+% \ifzeropt\lastkern
+% \ifmmode
+% \mathematics{\dimensionhalfspace\dimensionhalfspace\dimensiontypeface#1}%
+% \else
+% \mathematics{\dimensiontypeface#1}%
+% \fi
+% \orelse\ifdim\lastkern=\dimensionsignal
+% \mathematics{\dimensionhalfspace\dimensiontypeface#1}%
+% \else
+% \unkern\mathematics{\dimensionhalfspace\dimensionhalfspace\dimensiontypeface#1}%
+% \fi
+% \else
+% \unskip\mathematics{\dimensionhalfspace\dimensionhalfspace\dimensiontypeface#1}%
+% \fi
+% \dodimensionsignal
+% \popmacro\dodimensionsignal}
+%
+% \permanent\protected\def\nodimension#1%
+% {\unskip#1\enforced\glet\dodimensionsignal\relax}
% experiment, not yet to be used
@@ -170,6 +176,7 @@
\aliased\let\superscript \Usuperscript
\aliased\let\subscript \Usubscript
+\aliased\let\primescript \Uprimescript
\aliased\let\nosuperscript \Unosuperscript
\aliased\let\nosubscript \Unosubscript
\aliased\let\superprescript \Usuperprescript
diff --git a/Master/texmf-dist/tex/context/base/mkxl/supp-ran.lmt b/Master/texmf-dist/tex/context/base/mkxl/supp-ran.lmt
new file mode 100644
index 00000000000..6aee728962f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/supp-ran.lmt
@@ -0,0 +1,245 @@
+if not modules then modules = { } end modules ['supp-ran'] = {
+ version = 1.001,
+ comment = "companion to supp-ran.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- We cannot ask for the current seed, so we need some messy hack here.
+
+local report_system = logs.reporter("system","randomizer")
+
+local trace_random = false trackers.register("system.randomizer", function(v) trace_random = v end)
+local trace_details = false trackers.register("system.randomizer.details", function(v) trace_random = v trace_details = v end)
+
+local insert, remove = table.insert, table.remove
+
+local tonumber = tonumber
+local sub = string.sub
+local math = math
+local context = context
+local implement = interfaces.implement
+
+local random = math.random
+local randomseed = math.randomseed
+local round = math.round
+local stack = { }
+local last = 1
+local maxcount = 0x3FFFFFFF -- 2^30-1
+
+math.random = function(...)
+ local n = random(...)
+ if trace_details then
+ report_system("math %s",n)
+ end
+ return n
+end
+
+local function setrandomseedi(n)
+ if n <= 1 then
+ n = n * maxcount
+ elseif n < 1000 then
+ n = n * 1000
+ end
+ n = round(n)
+ randomseed(n)
+ last = random(0,maxcount) -- we need an initial value
+ if trace_details then
+ report_system("seed %s from %s",last,n)
+ elseif trace_random then
+ report_system("setting seed %s",n)
+ end
+end
+
+math.setrandomseedi = setrandomseedi
+
+local function getrandomnumber(min,max)
+ if min > max then
+ min, max = max, min
+ end
+ last = random(min,max)
+ if trace_details then
+ report_system("number %s",last)
+ end
+ return last
+end
+
+local function setrandomseed(n)
+ last = n
+ setrandomseedi(n)
+end
+
+local function getrandomseed()
+ return last
+end
+
+-- local function getmprandomnumber()
+-- last = random(0,4095)
+-- if trace_details then
+-- report_system("mp number %s",last)
+-- end
+-- return last
+-- end
+
+-- maybe stack
+
+local function pushrandomseed()
+ -- insert(stack,last) -- doesn't work okay
+ insert(stack,randomseed(last) or last)
+ if trace_random or trace_details then
+ report_system("pushing seed %s",last)
+ end
+end
+
+local function reuserandomseed(n)
+ local seed = stack[#stack]
+ if seed then
+ if trace_random or trace_details then
+ report_system("reusing seed %s",last)
+ end
+ randomseed(seed)
+ end
+end
+
+local function poprandomseed()
+ local seed = remove(stack)
+ if seed then
+ if trace_random or trace_details then
+ report_system("popping seed %s",seed)
+ end
+ randomseed(seed)
+ end
+end
+
+local function getrandom(where,...)
+ if type(where) == "string" then
+ local n = random(...)
+ if trace_details then
+ report_system("%s %s",where,n)
+ end
+ return n
+ else
+ local n = random(where,...)
+ if trace_details then
+ report_system("utilities %s",n)
+ end
+ return n
+ end
+end
+
+-- todo: also open up in utilities.randomizer.*
+
+implement { name = "getrandomnumber", actions = { getrandomnumber, context }, arguments = { "integer", "integer" } }
+implement { name = "getrandomdimen", actions = { getrandomnumber, context }, arguments = { "dimen", "dimen" } }
+implement { name = "getrandomfloat", actions = { getrandomnumber, context }, arguments = { "number", "number" } }
+implement { name = "getrandomseed", actions = { getrandomseed, context } }
+implement { name = "setrandomseed", actions = setrandomseed, arguments = "integer" }
+implement { name = "pushrandomseed", actions = pushrandomseed, public = true, }
+implement { name = "poprandomseed", actions = poprandomseed, public = true, }
+implement { name = "reuserandomseed", actions = reuserandomseed, public = true, }
+
+-- fun stuff
+
+local newrepeatable, getrepeatable, getrepeatableseed, repeatable
+
+do
+
+ local default = environment.version or "context lmtx"
+ local hashed = md5.HEX
+ ----- hashed = sha2.HASH256
+ local list = { }
+ local saved = false
+
+ newrepeatable = function(name,seed)
+ if not name or name == "" then
+ name = "default"
+ seed = default
+ elseif not seed then
+ seed = default
+ end
+ if not saved then
+ saved = { }
+ job.variables.collected.repeatable = saved
+ end
+ saved[name] = seed
+ local hash = hashed(seed)
+ if trace_random then
+ report_system("repeatable %a with seed %a starts out as %a",name,seed,hash)
+ end
+ local func = function()
+ local n = tonumber(sub(hash,1,8),16)
+ -- local n = tonumber(sub(hash,1,15),16)
+ local r = n / 0xFFFFFFFF
+ -- local r = n / 0xFFFFFFFFFFFFFFF
+ hash = hashed(hash)
+ if trace_details then
+ report_system("repeatable %a moves on to %a giving %i and %0.9f",name,hash,n,r)
+ end
+ return r
+ end
+ list[name] = func
+ -- we need to delay this till we have job available
+ -- but we seldom call this so it's okay
+ return func
+ end
+
+ table.setmetatableindex(list,function(t,k)
+ local v = rawget(t,"default")
+ if not v then
+ v = newrepeatable("default",default)
+ end
+ t[k] = v
+ return v
+ end)
+
+ getrepeatable = function(name)
+ return list[name or "default"]
+ end
+
+ repeatable = function(name)
+ return list[name or "default"]()
+ end
+
+ getrepeatableseed = function(name)
+ local r = job.variables.collected.repeatable
+ return r and r[name or "default"] or default
+ end
+
+ implement {
+ name = "newrepeatablerandom",
+ public = true,
+ protected = true,
+ arguments = { "csnameunchecked", "argument" },
+ actions = function(c,s)
+ -- local c = tokens.scanners.csname(true)
+ -- local s = tokens.scanners.argument()
+ implement {
+ name = c,
+ public = true,
+ actions = { newrepeatable(c,s), context },
+ }
+ end
+ }
+
+end
+
+-- public
+
+utilities.randomizer = {
+ setseedi = setrandomseedi,
+ getnumber = getrandomnumber,
+ setseed = setrandomseed,
+ getseed = getrandomseed,
+ -- getmpnumber = getmprandomnumber,
+ pushseed = pushrandomseed,
+ reuseseed = reuserandomseed,
+ popseed = poprandomseed,
+ get = getrandom,
+ -- the original, only for testing
+ -- mathrandom = random,
+ newrepeatable = newrepeatable,
+ getrepeatable = getrepeatable,
+ getrepeatableseed = getrepeatableseed,
+ repeatable = repeatable,
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/supp-ran.mkxl b/Master/texmf-dist/tex/context/base/mkxl/supp-ran.mkxl
index 7d212fdfd01..4bcff6a9449 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/supp-ran.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/supp-ran.mkxl
@@ -26,7 +26,7 @@
%D \type{new}: \dorecurse{10}{\randomnumber{1}{100} }\par
%D \stoptyping
-\registerctxluafile{supp-ran}{}
+\registerctxluafile{supp-ran}{autosuffix}
\unprotect
@@ -49,4 +49,41 @@
\permanent\def\randomnumber #1#2{\clf_getrandomnumber\numexpr#1\relax\numexpr#2\relax}
\permanent\def\mprandomnumber {\clf_getrandomnumber\zerocount\mpscaledmax}
+%D \startbuffer
+%D \enabletrackers[system.randomizer.details]
+%D
+%D \newrepeatablerandom\MyRandom {Welcome 2 America}
+%D \newrepeatablerandom\MyRandomN{\randomnumber{0}{1000}}
+%D \newrepeatablerandom\MyRandomM{\randomnumber{0}{1000}}
+%D
+%D \cldcontext{utilities.randomizer.getrepeatableseed()}\par
+%D \cldcontext{utilities.randomizer.getrepeatableseed("default")}\par
+%D \cldcontext{utilities.randomizer.getrepeatableseed("MyRandom")}\par
+%D \cldcontext{utilities.randomizer.getrepeatableseed("MyRandomN")}\par
+%D \cldcontext{utilities.randomizer.getrepeatableseed("MyRandomM")}\par
+%D
+%D \dorecurse{10}{\MyRandom\par}
+%D
+%D \startMPcode
+%D randomseed := repeatablerandom("MyRandom") ;
+%D draw image (
+%D for i=1 upto 10000 :
+%D draw origin randomized 100 ;
+%D endfor ;
+%D ) withpen pencircle scaled 1 ;
+%D \stopMPcode
+%D
+%D \startluacode
+%D context(utilities.randomizer.getrepeatableseed("MyRandom"))
+%D context.par()
+%D local rep = utilities.randomizer.getrepeatable("MyRandom")
+%D for i=1,5 do
+%D context(rep())
+%D context.par()
+%D end
+%D \stopluacode
+%D \stopbuffer
+%D
+%D \typebuffer \blank \getbuffer \blank
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/symb-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/symb-ini.mkxl
index c29b073606d..cf61ddb1f79 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/symb-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/symb-ini.mkxl
@@ -58,12 +58,12 @@
\setupsymbols
[\c!stylealternative=\v!text]
-\mutable\let\currentsymbol \empty
-\mutable\let\currentsymbolset\empty
+\mutable\lettonothing\currentsymbol
+\mutable\lettonothing\currentsymbolset
\newtoks\t_symb_setups
-\let\m_symb_current_set\empty
+\lettonothing\m_symb_current_set
\newconditional\c_symb_found
@@ -88,7 +88,7 @@
\aliased\let\doifinsymbolsetelse\doifelseinsymbolset
\aliased\let\doifsymbolsetelse \doifelsesymbolset
-\letvalue{\??symbolset}\empty
+\letvalue\??symbolset\empty
%def\symbolset#1{\csname\??symbolset\ifcsname\??symbolset#1\endcsname#1\fi\endcsname} % no [#1], to be used in commalists etc
@@ -143,7 +143,7 @@
\csname\??symbol#1\endcsname\relax
\endgroup}
-\letvalue{\??symbol}\firstofoneargument
+\letcsname\??symbol\endcsname\firstofoneargument
\permanent\def\directsymbol#1#2% no \relax, there can be an argument, see lists
{\begincsname\??symbol#1:#2\endcsname}
@@ -212,7 +212,7 @@
\mutable\def\defaultsymbolfactor{10}
\mutable\def\defaultsymbolheight{1.25ex}
-\permanent\tolerant\protected\def\figuresymbol[#1]#*[#2]%
+\permanent\tolerant\protected\def\figuresymbol[#1]#,[#2]%
{\externalfigure[#1][\c!reset=\v!yes,\c!symbol=\v!yes,\c!height=\defaultsymbolheight,#2]}
\permanent\tolerant\protected\def\definefiguresymbol[#1]#*[#2]#*[#3]%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/syst-aux.lmt b/Master/texmf-dist/tex/context/base/mkxl/syst-aux.lmt
index 726fd4d326a..39ceae3767d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/syst-aux.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/syst-aux.lmt
@@ -184,20 +184,21 @@ local option = (
local pattern = (
(
spaces * (
- ( P("spaces") * space / catcodes_s )
- + ( P("nospaces") * space / catcodes_n )
- + ( P("global") * space / function() global = true end)
- + ( P("protected") * space / function() protected = true end)
- + ( P("permanent") * space / function() permanent = true end)
- + ( P("expanded") * space / function() expanded = true end)
- + ( P("tolerant") * space / function() tolerant = true end)
- + ( P("instance") * space / function() instance = true end)
- + ( P("frozen") * space / function() frozen = true end)
- + ( P("mutable") * space / function() mutable = true end)
- + ( P("immutable") * space / function() immutable = true end)
- + ( P("unexpanded") * space / function() protected = true end)
- + ( option * space / function(s) tolerant = true
- optional = s end)
+ ( P("spaces") * space / catcodes_s )
+ + ( P("nospaces") * space / catcodes_n )
+ + ( P("global") * space / function() global = true end)
+ + ( P("protected") * space / function() protected = 1 end)
+ + ( P("semiprotected") * space / function() protected = 2 end)
+ + ( P("permanent") * space / function() permanent = true end)
+ + ( P("expanded") * space / function() expanded = true end)
+ + ( P("tolerant") * space / function() tolerant = true end)
+ + ( P("instance") * space / function() instance = true end)
+ + ( P("frozen") * space / function() frozen = true end)
+ + ( P("mutable") * space / function() mutable = true end)
+ + ( P("immutable") * space / function() immutable = true end)
+ + ( P("unexpanded") * space / function() protected = 1 end)
+ + ( option * space / function(s) tolerant = true
+ optional = s end)
)
)^0
* spaces * ( C((1-S(" #["))^1) )
@@ -229,7 +230,7 @@ local function texdefinition_two()
context (
(tolerant and [[\tolerant]] or "") ..
(frozen and [[\frozen]] or "") ..
- (protected and [[\protected]] or "") ..
+ (protected and (protected == 1 and [[\protected]] or [[\semiprotected]]) or "") ..
(permanent and [[\permanent]] or "") ..
(instance and [[\instance]] or "") ..
(mutable and [[\mutable]] or "") ..
@@ -648,14 +649,14 @@ implement {
-- name = "hascommonargumentcondition",
-- actions = hascommonargumentcondition,
-- arguments = "2 strings",
--- arguments = { "argument", "argument" },
+-- arguments = "2 arguments",
-- }
implement {
name = "doifelseinset",
actions = doifelseinset,
arguments = "2 strings",
--- arguments = { "argument", "argument" },
+-- arguments = "2 arguments",
}
implement {
@@ -780,3 +781,30 @@ implement {
public = true,
actions = function() getshape("widowpenalties") end,
}
+
+implement {
+ name = "loopcs",
+ public = true,
+ arguments = { "integerargument", "csname" },
+ actions = function(n,cs)
+ local c = context[cs]
+ if n < 0 then
+ for i=-n,1 do c() end
+ else
+ for i= 1,n do c() end
+ end
+ end
+}
+implement {
+ name = "loopcsn",
+ public = true,
+ arguments = { "integerargument", "csname" },
+ actions = function(n,cs)
+ local c = context[cs]
+ if n < 0 then
+ for i=-n,1 do c(i) end
+ else
+ for i= 1,n do c(i) end
+ end
+ end
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/syst-aux.mkxl b/Master/texmf-dist/tex/context/base/mkxl/syst-aux.mkxl
index e4cecfe58e2..2b87f4b3d45 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/syst-aux.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/syst-aux.mkxl
@@ -66,10 +66,10 @@
%D We're definitely in \LMTX\ mode here.
-\aliased \let\startlmtxmode\relax
-\aliased \let\stoplmtxmode \relax
-\permanent\def\startmkivmode#-\stopmkivmode{}
-\permanent\let\stopmkivmode \relax
+\permanent\protected\lettonothing\startlmtxmode
+\permanent\protected\lettonothing\stoplmtxmode
+\permanent \def\startmkivmode#-\stopmkivmode{}
+\permanent\protected\lettonothing\stopmkivmode
%D As we don't have namespace definers yet, we use a special one. Later we will
%D do a better job.
@@ -80,7 +80,7 @@
\else
- \newcount\c_syst_helpers_n_of_namespaces \c_syst_helpers_n_of_namespaces\pluseight % 1-8 reserved for catcodes
+ \newinteger\c_syst_helpers_n_of_namespaces \c_syst_helpers_n_of_namespaces\pluseight % 1-8 reserved for catcodes
\def\v_interfaces_prefix_template_system{\number \c_syst_helpers_n_of_namespaces>>}
%def\v_interfaces_prefix_template_system{\characters\c_syst_helpers_n_of_namespaces>>} % no \characters yet
@@ -91,7 +91,7 @@
{\ifcsname ??#1\endcsname
\writestatus\m!system{duplicate system namespace '#1'}\wait
\else
- \global\advance\c_syst_helpers_n_of_namespaces\plusone
+ \global\advanceby\c_syst_helpers_n_of_namespaces\plusone
\immutable\edefcsname ??#1\endcsname{\v_interfaces_prefix_template_system}%
\fi}
@@ -163,7 +163,7 @@
%D alternatives to this command. Beware, only the simple one has \type {\noexpand}
%D before its argument.
-\let\m_syst_helpers_expanded\empty
+\lettonothing\m_syst_helpers_expanded
\pushoverloadmode
@@ -175,7 +175,7 @@
\permanent\protected\def\startexpanded#1\stopexpanded
{\xdef\m_syst_helpers_expanded{#1}\m_syst_helpers_expanded}
-\aliased\let\stopexpanded\relax
+\permanent\protected\lettonothing\stopexpanded
%D Recent \TEX\ engines have a primitive \type {\expanded} and we will use that when
%D possible. After all, we can make not expandable macros now. The name clash is an
@@ -216,15 +216,25 @@
%D Reserved macros for tests:
-\aliased\let\donothing\empty
+%D A \type \type {\let} is more efficient than a \type {\def} so we often let something
+%D to relax or do nothing. However, we then loose the name in tracing. For that we now
+%D have \type {\lettonothing \foo} which is efficient but also keeps the name. Of course
+%D this is no solution for commands that take arguments but at least it helps tracing a
+%D bit. We keep of course \type {\donothing}.
-\let\m_syst_string_one \empty
-\let\m_syst_string_two \empty
-\let\m_syst_string_three\empty
-\let\m_syst_string_four \empty
+%D Maybe even nicer is a let that aliases but keeps the name.
-\let\m_syst_action_yes \empty
-\let\m_syst_action_nop \empty
+ % \lettonothing\donothing
+ \immutable\def\donothing {} % better in tracing
+%untraced\immutable\def\untraceddonothing{}
+
+\lettonothing\m_syst_string_one
+\lettonothing\m_syst_string_two
+\lettonothing\m_syst_string_three
+\lettonothing\m_syst_string_four
+
+\lettonothing\m_syst_action_yes
+\lettonothing\m_syst_action_nop
%D \macros
%D {doifnextcharelse}
@@ -474,24 +484,41 @@
%D When we were developing the scientific units module, we encountered different
%D behavior in text and math mode, which was due to this grouping subtilities. We
%D therefore decided to use \type {\begingroup} instead of \type {\bgroup}.
+%D
+%D \stoptyping
+%D \doifelsealldefined {foo,ofo} {YES}{NOP}
+%D \doifelseallundefined{foo,ofo} {YES}{NOP}
+%D \doifelsealldefined {relax,ofo}{YES}{NOP}
+%D \doifelseallundefined{foo,relax}{YES}{NOP}
+%D \stoptyping
+
+\def\syst_helpers_do_if_all_defined_else#1%
+ {\ifcsname#1\endcsname\else
+ \donefalse
+ \expandafter\quitcommalist % added
+ \fi}
-\permanent\protected\def\doifelsealldefined#1%
+\def\syst_helpers_do_if_all_undefined_else#1%
+ {\ifcsname#1\endcsname
+ \donefalse
+ \expandafter\quitcommalist
+ \fi}
+
+\permanent\protected\def\syst_helpers_do_if_all_else#1#2%
{\begingroup
\donetrue % we could use a reserved one and avoid the group
- \processcommalist[#1]\syst_helpers_do_if_all_defined_else
+ \processcommalist[#2]#1%
\ifdone
\endgroup\expandafter\firstoftwoarguments
\else
\endgroup\expandafter\secondoftwoarguments
\fi}
-\aliased\let\doifalldefinedelse\doifelsealldefined
+\permanent\protected\def\doifelsealldefined {\syst_helpers_do_if_all_else\syst_helpers_do_if_all_defined_else}
+\permanent\protected\def\doifelseallundefined{\syst_helpers_do_if_all_else\syst_helpers_do_if_all_undefined_else}
-\def\syst_helpers_do_if_all_defined_else#1%
- {\ifcsname#1\endcsname\else
- \donefalse
- \expandafter\quitcommalist % added
- \fi}
+\aliased\let\doifalldefinedelse \doifelsealldefined
+\aliased\let\doifallundefinedelse\doifelseallundefined
%D \macros
%D {doif,doifelse,doifnot}
@@ -557,6 +584,15 @@
\expandafter\secondoftwoarguments
\fi}
+% or (test this):
+%
+% \permanent\protected\def\processallactionsinset[#1]%
+% {\ifcstok{#1}\emptytoks
+% \expandafter\processaction
+% \else
+% \expandafter\syst_helpers_process_all_actions_in_set_indeed
+% \fi[#1]}
+
\aliased\let\doifemptyelse\doifelseempty
\permanent\protected\def\doifempty#1%
@@ -779,7 +815,7 @@
%D arguments state. Again it permits leaner and meaner macro definitions with a bit
%D less clutter in tracing.
-\mutable\let\commalistcommand\empty
+\mutable\lettonothing\commalistcommand
\protected\def\syst_helpers_process_comma_item#+,%
{\ifarguments
@@ -840,9 +876,9 @@
\popmacro\commalistcommand}
% \let\syst_helpers_process_comma_item_next_a \syst_helpers_process_comma_item_next
-% \def\syst_helpers_process_comma_item_next_b#0\ignorearguments{\let\syst_helpers_process_comma_item_next\syst_helpers_process_comma_item_next_a}
-% \def\syst_helpers_process_comma_item_next_c#0\ignorearguments{\let\syst_helpers_process_comma_item_next\syst_helpers_process_comma_item_next_b}
-% \def\syst_helpers_process_comma_item_gobble#0\ignorearguments{}
+% \def\syst_helpers_process_comma_item_next_b#-\ignorearguments{\let\syst_helpers_process_comma_item_next\syst_helpers_process_comma_item_next_a}
+% \def\syst_helpers_process_comma_item_next_c#-\ignorearguments{\let\syst_helpers_process_comma_item_next\syst_helpers_process_comma_item_next_b}
+% \def\syst_helpers_process_comma_item_gobble#-\ignorearguments{}
\let\syst_helpers_process_comma_item_next_a \syst_helpers_process_comma_item_next
\def\syst_helpers_process_comma_item_next_b#-\ignorearguments{\let\syst_helpers_process_comma_item_next\syst_helpers_process_comma_item_next_a}
@@ -904,7 +940,7 @@
\let\syst_helpers_comma_list_step\relax
-\mutable\let\currentcommalistitem\empty
+\mutable\lettonothing\currentcommalistitem
\permanent\protected\def\startprocesscommalist[#1]#2\stopprocesscommalist
{\def\syst_helpers_comma_list_step##1{\def\currentcommalistitem{##1}#2}%
@@ -914,8 +950,8 @@
{\def\syst_helpers_comma_list_step##1{\def\currentcommalistitem{##1}#2}%
\normalexpanded{\processcommalist[#1]}\syst_helpers_comma_list_step}
-\aliased\let\stopprocesscommalist \relax
-\aliased\let\stopprocesscommacommand\relax
+\permanent\protected\lettonothing\stopprocesscommalist
+\permanent\protected\lettonothing\stopprocesscommacommand
%D \macros
%D {processaction,
@@ -960,17 +996,17 @@
%D this more hip and a bit faster now but \unknown\ it's seldom used nowadays as we
%D have better ways now.
-\mutable\let\commalistelement\empty
+\mutable\lettonothing\commalistelement
-\let\m_syst_string_one\empty
-\let\m_syst_string_two\empty
+\lettonothing\m_syst_string_one
+\lettonothing\m_syst_string_two
\let\syst_helpers_do_compare_process_action\relax
\protected\def\syst_helpers_do_compare_process_action_a[#1=>#2][#3]%
{\edef\m_syst_string_two{#1}%
\ifx\m_syst_string_two\s!default
- \let\commalistelement\empty
+ \lettonothing\commalistelement
#2%
\fi}
@@ -1069,7 +1105,7 @@
% \expandafterspaces\syst_helpers_process_comma_item#2#3\ignorearguments\ignorearguments\ignorearguments
% \popmacro\commalistcommand}
-\permanent\protected\def\processnextcommalist#1[#2#3]%
+\permanent\protected\def\processnextcommalist#1[#2#3]% watch out: mkiv has two extra initial arguments
{\pushmacro\commalistcommand
\def\commalistcommand{#1}%
\expandafterspaces\syst_helpers_process_comma_item#2#3\ignorearguments\ignorearguments\ignorearguments
@@ -1088,8 +1124,8 @@
%D A two step expansion is used to prevent problems with complicated arguments, for
%D instance arguments that consist of two or more expandable tokens.
-\mutable\let\firstcharacter \empty
-\mutable\let\remainingcharacters\empty
+\mutable\lettonothing\firstcharacter
+\mutable\lettonothing\remainingcharacters
\permanent\protected\def\getfirstcharacter #1{\clf_getfirstcharacter{#1}}
\permanent\protected\def\doifelsefirstchar #1#2{\clf_doifelsefirstchar{#1}{#2}}
@@ -1133,7 +1169,7 @@
% \let\syst_helpers_do_do_if_in_string \relax
% \let\syst_helpers_do_do_if_not_in_string \relax
%
-% \let\m_syst_sub_string \empty
+% \lettonothing\m_syst_sub_string
%
% \protected\def\doifelseinstring#1%
% {\edef\m_syst_sub_string{#1}% expand #1 here
@@ -1201,7 +1237,7 @@
% \fi}%
% \normalexpanded{\syst_helpers_do_do_if_not_in_string#1}\s!e_o_t_token\ignorearguments\ignorearguments}
%
-% \def\syst_helpers_do_if_in_string_else_yes#0\ignorearguments\ignorearguments#2#0{#2}
+% \def\syst_helpers_do_if_in_string_else_yes#0\ignorearguments\ignorearguments#2#0{#2} % of #- and #1
% \def\syst_helpers_do_if_in_string_else_nop#0\ignorearguments#0#3{#3}
% \def\syst_helpers_do_if_in_string_yes #0\ignorearguments\ignorearguments#2{#2}
% \def\syst_helpers_do_if_in_string_nop #0\ignorearguments#0{}
@@ -1559,7 +1595,7 @@
%D funny to see that this alternative saw the light so lately --- can be used to do
%D expanded assigments.
-% \mutable\let\currentvalue\empty % only mkii
+% \mutable\lettonothing\currentvalue % only mkii
\permanent\protected\def\getparameters {\dogetparameters\dosetvalue}
\permanent\protected\def\geteparameters {\dogetparameters\dosetevalue}
@@ -1634,8 +1670,9 @@
%D trouble and tokens.
\mutable\let\currentassignmentlistcommand\gobbletwoarguments
-\mutable\let\currentassignmentlistkey \empty
-\mutable\let\currentassignmentlistvalue \empty
+
+\mutable\lettonothing\currentassignmentlistkey
+\mutable\lettonothing\currentassignmentlistvalue
\let\syst_helpers_process_assign_entry\gobbleoneargument
@@ -1650,13 +1687,13 @@
{\def\currentassignmentlistcommand##1##2{\def\currentassignmentlistkey{##1}\def\currentassignmentlistvalue{##2}#2}%
\processassignmentlist[#1]\currentassignmentlistcommand}
-\aliased\let\stopprocessassignmentlist\relax
+\permanent\protected\lettonothing\stopprocessassignmentlist
\permanent\protected\def\startprocessassignmentcommand[#1]#2\stopprocessassignmentcommand
{\def\currentassignmentlistcommand##1##2{\def\currentassignmentlistkey{##1}\def\currentassignmentlistvalue{##2}#2}%
\normalexpanded{\processassignmentlist[#1]}\currentassignmentlistcommand}
-\aliased\let\stopprocessassignmentcommand\relax
+\permanent\protected\lettonothing\stopprocessassignmentcommand
%D \macros
%D {currentvalue}
@@ -1753,13 +1790,13 @@
%D Afterwards, the length is available in the macro \type {\commalistsize}
%D (not a \COUNTER).
-\newcount\commalistcounter
+\newinteger\commalistcounter
\mutable\def\commalistsize{0}
\def\syst_helpers_get_comma_list_size#0,% no #- as we need to count
{\ifarguments\or
- \advance\commalistcounter\plusone
+ \advanceby\commalistcounter\plusone
\expandafter\syst_helpers_get_comma_list_size
\fi}
@@ -1778,6 +1815,18 @@
\permanent\protected\def\getcommacommandsize[#1]%
{\normalexpanded{\getcommalistsize[#1]}}
+\permanent\def\getcommalistcount[#1]%
+ {\beginlocalcontrol
+ \getcommalistsize[#1]%
+ \endlocalcontrol
+ \the\commalistcounter}
+
+\permanent\def\getcommacommandcount[#1]%
+ {\beginlocalcontrol
+ \getcommacommandsize[#1]%
+ \endlocalcontrol
+ \the\commalistcounter}
+
%D Filters:
% \def\syst_helpers_gobble_comma_list#0\ignorearguments{}
@@ -1786,7 +1835,7 @@
\def\syst_helpers_get_from_comma_list#1,%
{\ifarguments \or
- \advance\commalistcounter \minusone
+ \advanceby\commalistcounter \minusone
\ifcase\commalistcounter
\def\commalistelement{#1}%
\expandafter\expandafter\expandafter\syst_helpers_gobble_comma_list
@@ -1799,7 +1848,7 @@
{\expandafterspaces\syst_helpers_get_from_comma_list}
\permanent\protected\def\getfromcommalist[#1]#*[#2]%
- {\let\commalistelement\empty
+ {\lettonothing\commalistelement
\commalistcounter#2\relax
\expandafterspaces\syst_helpers_get_from_comma_list#1\ignorearguments\ignorearguments}
@@ -1905,7 +1954,7 @@
%D We use some signals for telling the calling macros if all wanted arguments are
%D indeed supplied by the user.
-\newcount\nofarguments
+\newinteger\nofarguments
\newif\iffirstargument
\newif\ifsecondargument
@@ -2780,8 +2829,8 @@
%D
%D Trivial:
-\permanent\protected\def\letempty #1{\let #1\empty}
-\permanent\protected\def\globalletempty#1{\glet#1\empty}
+\permanent\protected\def\letempty #1{\lettonothing #1}
+\permanent\protected\def\globalletempty#1{\glettonothing#1}
\permanent\protected\def\letvalueempty #1{\letcsname #1\endcsname\empty}
\permanent\protected\def\letgvalueempty#1{\gletcsname#1\endcsname\empty}
@@ -2905,7 +2954,7 @@
{\enforced\let\redoglobal\syst_helpers_redo_global
\enforced\let\dodoglobal\syst_helpers_dodo_global}
-%D Whatever (will be overtoaded):
+%D Whatever (will be overloaded):
\protected\def\define#1%
{\ifdefined#1%
@@ -2951,22 +3000,30 @@
%
% [\test]
+%D When okay the parameter hack will also go into \MKIV.
+
+\integerdef\c_syst_parameter_catcode\parametercatcode
+
\bgroup \obeylines
\permanent\protected\gdef\starttexdefinition%
- {\bgroup%
+ {\integerdef\c_syst_parameter_catcode\catcode\hashasciicode%
+ \catcode\hashasciicode\parametercatcode%
+ \bgroup%
\obeylines%
\syst_helpers_start_tex_definition}
\gdef\syst_helpers_start_tex_definition#1
- {\catcode\endoflineasciicode\ignorecatcode%
+ {%catcodetable\ctxcatcodes% can be adapted
+ \catcode\endoflineasciicode\ignorecatcode%
\clf_texdefinition_one{#1}}
-\aliased\glet\stoptexdefinition\relax
+\permanent\protected\glettonothing\stoptexdefinition
\permanent\gdef\dostarttexdefinition#1\stoptexdefinition%
{\egroup%
- \clf_texdefinition_two{#1}}
+ \clf_texdefinition_two{#1}%
+ \catcode\hashasciicode\c_syst_parameter_catcode}
\egroup
@@ -3072,11 +3129,11 @@
%D Signals old dimensions and can be used in skips, kerns and tests like \type
%D {\ifdim}.
-\newdimen\d_syst_maximum_signal % step is about 0.00025pt
+\newdimension\d_syst_maximum_signal % step is about 0.00025pt
\permanent\protected\def\newsignal#1%
{\ifdefined#1\else
- \advance\d_syst_maximum_signal2\scaledpoint % to be save in rounding
+ \advanceby\d_syst_maximum_signal2\scaledpoint % to be save in rounding
\immutable\dimensiondef#1\d_syst_maximum_signal
\fi}
@@ -3141,65 +3198,71 @@
%D We now use the macro stack which is somewhat leaner and meaner and a little
%D faster too.
-% left overs: too much \protected here
-
-\newcount\outerrecurse
-\newcount\innerrecurse
+\newinteger\outerrecurse
+\newinteger\innerrecurse
\mutable\def\recursedepth{\the\outerrecurse}
\mutable\def\recurselevel{0}
\mutable\let\recurseaction\relax
-\mutable\let\recursestring\empty
-
-% \let\syst_helpers_stepwise_next\relax
-
-% \protected\def\syst_helpers_stepwise_recurse#1#2#3% from to step
-% {\ifnum#1>#2\relax
-% \expandafter\syst_helpers_stepwise_recurse_nop
-% \else
-% \def\recurselevel{#1}%
-% \doubleexpandafter\syst_helpers_stepwise_recurse_yes\expandafter
-% \fi\expandafter{\the\numexpr\recurselevel+#3\relax}{#2}{#3}}
-
-\protected\def\syst_helpers_stepwise_recurse#1#2#3% from to step
- {\ifnum#1>#2\relax
- \expandafter\gobblefourarguments
- \else
- \def\recurselevel{#1}%
-% \doubleexpandafter\syst_helpers_stepwise_recurse_yes\expandafter
-% \fi\expandafter{\the\numexpr\recurselevel+#3\relax}{#2}{#3}}
- \doubleexpandafter\syst_helpers_stepwise_recurse_yes
- \fi\expandafter{\the\numexpr\recurselevel+#3\relax}{#2}{#3}}
-
-\protected\def\syst_helpers_stepwise_recurse_yes
- {\syst_helpers_recurse_content
- \syst_helpers_stepwise_recurse}
-
-\protected\def\syst_helpers_stepwise_reverse#1#2#3% from to step
- {\ifnum#1<#2\relax
-% \expandafter\syst_helpers_stepwise_recurse_nop
- \expandafter\gobblefourarguments
- \else
- \def\recurselevel{#1}%
- \innerrecurse#1\relax
- \advance\innerrecurse#3\relax
-% \doubleexpandafter\syst_helpers_stepwise_reverse_yes\expandafter
-% \fi\expandafter{\the\innerrecurse}{#2}{#3}}
- \doubleexpandafter\syst_helpers_stepwise_reverse_yes
- \fi\expandafter{\the\numexpr\recurselevel+#3\relax}{#2}{#3}}
-
-\protected\def\syst_helpers_stepwise_reverse_yes
- {\syst_helpers_recurse_content
- \syst_helpers_stepwise_reverse}
-% \protected\def\syst_helpers_stepwise_exit
-% {\syst_helpers_stepwise_recurse_nop\relax}
-
-\permanent\def\doexpandedrecurse#1#2% user macro (also was \doxprecurse)
- {\ifnum#1>\zerocount
- #2\expandafter\doexpandedrecurse\expandafter{\the\numexpr#1-\plusone\relax}{#2}%
- \fi}
+\mutable\lettonothing\recursestring
+
+%% \protected\def\syst_helpers_stepwise_recurse#1#2#3% from to step
+%% {\ifnum#1>#2\relax
+%% \expandafter\gobblefourarguments
+%% \else
+%% \def\recurselevel{#1}%
+%% \doubleexpandafter\syst_helpers_stepwise_recurse_yes
+%% \fi\expandafter{\the\numexpr\recurselevel+#3\relax}{#2}{#3}}
+%%
+%% \protected\def\syst_helpers_stepwise_recurse_yes
+%% {\syst_helpers_recurse_content
+%% \syst_helpers_stepwise_recurse}
+%%
+%% \protected\def\syst_helpers_stepwise_reverse#1#2#3% from to step
+%% {\ifnum#1<#2\relax
+%% \expandafter\gobblefourarguments
+%% \else
+%% \def\recurselevel{#1}%
+%% \innerrecurse#1\relax
+%% \advanceby\innerrecurse#3\relax
+%% \doubleexpandafter\syst_helpers_stepwise_reverse_yes
+%% \fi\expandafter{\the\numexpr\recurselevel+#3\relax}{#2}{#3}}
+%%
+%% \protected\def\syst_helpers_stepwise_reverse_yes
+%% {\syst_helpers_recurse_content
+%% \syst_helpers_stepwise_reverse}
+%%
+%% \permanent\def\doexpandedrecurse#1#2% user macro (also was \doxprecurse)
+%% {\ifnum#1>\zerocount
+%% #2\expandafter\doexpandedrecurse\expandafter{\the\numexpr#1-\plusone\relax}{#2}%
+%% \fi}
+
+%D The next one might replace the above and provides the current step in \type {#1}
+%D like \type {\dorecurse} do, but it comes with a tiny performance hit.
+
+%% \installsystemnamespace{expandedrecurse}
+%%
+%% \mutable\let\m_expanded_recursed\gobbleoneargument
+%%
+%% \permanent\def\doexpandedrecursed#1#2% this might replace: \doexpandedrecurse
+%% {\beginlocalcontrol
+%% \localpushmacro\m_expanded_recursed
+%% \def\m_expanded_recursed##1{#2}%
+%% \endlocalcontrol
+%% \syst_do_expanded_recursed{1}{#1}{#2}% no \plusone !
+%% \beginlocalcontrol
+%% \localpopmacro\m_expanded_recursed
+%% \endlocalcontrol}
+%%
+%% \def\syst_do_expanded_recursed#1#2#3%
+%% {\ifnum#1>#2\norelax
+%% \expandafter\gobblethreearguments
+%% \else
+%% \m_expanded_recursed{#1}\doubleexpandafter\syst_do_expanded_recursed
+%% \fi
+%% {\the\numexpr#1+\plusone\relax}{#2}{#3}}
%D As we can see here, the simple command \type{\dorecurse} is a special case of the
%D more general:
@@ -3218,31 +3281,31 @@
%D
%D Because the simple case (n=1) is used often, we implement it more efficiently:
-\permanent\protected\def\dorecurse#1%
- {\ifcase#1\relax
- \expandafter\gobbletwoarguments
- \or
- \expandafter\syst_helpers_recurse_y
- \else
- \expandafter\syst_helpers_recurse_x
- \fi{#1}}
-
-\protected\def\syst_helpers_recurse_indeed#1#2% from to
-% {\ifnum#1>#2 %
- {\ifnum#1>#2\relax
- \expandafter\syst_helpers_recurse_indeed_nop
- \else
- \def\recurselevel{#1}%
- \innerrecurse#1\advance\innerrecurse\plusone
- \doubleexpandafter\syst_helpers_recurse_indeed_yes
- \fi\expandafter{\the\innerrecurse}{#2}}
-
-\protected\def\syst_helpers_recurse_indeed_yes
- {\syst_helpers_recurse_content
- \syst_helpers_recurse_indeed}
-
-\protected\def\syst_helpers_recurse_indeed_nop#0#0#0%
- {}
+%% \permanent\protected\def\dorecurse#1%
+%% {\ifcase#1\relax
+%% \expandafter\gobbletwoarguments
+%% \or
+%% \expandafter\syst_helpers_recurse_y
+%% \else
+%% \expandafter\syst_helpers_recurse_x
+%% \fi{#1}}
+%%
+%% \protected\def\syst_helpers_recurse_indeed#1#2% from to
+%% % {\ifnum#1>#2 %
+%% {\ifnum#1>#2\relax
+%% \expandafter\syst_helpers_recurse_indeed_nop
+%% \else
+%% \def\recurselevel{#1}%
+%% \innerrecurse#1\advanceby\innerrecurse\plusone
+%% \doubleexpandafter\syst_helpers_recurse_indeed_yes
+%% \fi\expandafter{\the\innerrecurse}{#2}}
+%%
+%% \protected\def\syst_helpers_recurse_indeed_yes
+%% {\syst_helpers_recurse_content
+%% \syst_helpers_recurse_indeed}
+%%
+%% \protected\def\syst_helpers_recurse_indeed_nop#0#0#0%
+%% {}
%D \macros
%D {dowith}
@@ -3278,7 +3341,7 @@
\aliased\let\endofloop\donothing % maybe \syst_helpers_loop_end
\permanent\protected\def\doloop#1%
- {\global\advance\outerrecurse \plusone
+ {\global\advanceby\outerrecurse \plusone
\globalpushmacro\recurseaction
\globalpushmacro\recurselevel
\protected\gdef\recurseaction##1##2{#1}%
@@ -3289,20 +3352,24 @@
{\def\recurselevel{#1}%
\expandafter\syst_helpers_loop_yes\expandafter{\the\numexpr\recurselevel+\plusone\relax}}
+%% \protected\def\syst_helpers_loop_yes
+%% {\syst_helpers_recurse_content
+%% \endofloop}
+
\protected\def\syst_helpers_loop_yes
- {\syst_helpers_recurse_content
+ {\normalexpanded{\recurseaction{\recurselevel}{\the\outerrecurse}}%
\endofloop}
-\protected\def\syst_helpers_loop_nop#0%
+\protected\def\syst_helpers_loop_nop#-%
{\enforced\let\endofloop\syst_helpers_loop
\globalpopmacro\recurselevel
\globalpopmacro\recurseaction
- \global\advance\outerrecurse\minusone}
+ \global\advanceby\outerrecurse\minusone}
\permanent\protected\def\exitloop % \exitloop quits at end
{\enforced\let\endofloop\syst_helpers_loop_nop}
-\permanent\protected\def\exitloopnow#0\endofloop % \exitloopnow quits directly
+\permanent\protected\def\exitloopnow#-\endofloop % \exitloopnow quits directly
{\syst_helpers_loop_nop}
%D The loop is executed at least once, so beware of situations like:
@@ -3340,81 +3407,54 @@
%D \dorecurse{3}{\expanded{\definesymbol[test-\recurselevel][xx-\recurselevel]}}
%D \stoptyping
-\def\syst_helpers_recurse_content
- {\normalexpanded{\recurseaction{\recurselevel}{\the\outerrecurse}}}
-
-\protected\def\syst_helpers_recurse_x#1#2%
- {\global\advance\outerrecurse\plusone
- \globalpushmacro\recurseaction
- \globalpushmacro\recurselevel
- \protected\gdef\recurseaction##1##2{#2}%
- \expandafter\syst_helpers_recurse_indeed\expandafter1\expandafter{\number#1}%
- \globalpopmacro\recurselevel
- \globalpopmacro\recurseaction
- \global\advance\outerrecurse\minusone}
-
-\protected\def\syst_helpers_recurse_y#1#2%
- {\global\advance\outerrecurse\plusone
- \globalpushmacro\recurseaction
- \globalpushmacro\recurselevel
- \let\recurselevel\!!plusone
- \protected\gdef\recurseaction##1##2{#2}%
- \syst_helpers_recurse_content
- \globalpopmacro\recurselevel
- \globalpopmacro\recurseaction
- \global\advance\outerrecurse\minusone}
-
-% \protected\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4
-% {\global\advance\outerrecurse \plusone
-% \globalpushmacro\recurseaction
-% \globalpushmacro\recurselevel
-% \protected\gdef\recurseaction##1##2{#4}%
-% \normalexpanded{\ifcmpnum#3\zerocount
-% \ifnum#1<#2\relax\relax % so we catch \number\numexpr xx without \relax's
-% \syst_helpers_stepwise_exit
-% \else
-% \syst_helpers_stepwise_reverse
-% \fi
-% \or
-% \syst_helpers_stepwise_exit
-% \or
-% \ifnum#2<#1\relax\relax % so we catch \number\numexpr xx without \relax's
-% \syst_helpers_stepwise_exit
-% \else
-% \syst_helpers_stepwise_recurse
-% \fi
-% \fi{\number#1}{\number#2}{\number#3}}%
-% \globalpopmacro\recurselevel
-% \globalpopmacro\recurseaction
-% \global\advance\outerrecurse\minusone}
-
-\permanent\protected\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4 ... todo: remove unused helpers
- {\global\advance\outerrecurse \plusone
- \globalpushmacro\recurseaction
- \globalpushmacro\recurselevel
- \protected\gdef\recurseaction##1##2{#4}%
- \normalexpanded{\ifcmpnum#3\zerocount
- \ifnum#1<#2\relax\relax % so we catch \number\numexpr xx without \relax's
- \doubleexpandafter\gobbletwoarguments
- \else
- \tripleexpandafter\syst_helpers_stepwise_reverse
- \fi
- \or
- \doubleexpandafter\gobbletwoarguments
- \orelse\ifnum#2<#1\relax\relax % so we catch \number\numexpr xx without \relax's
- \doubleexpandafter\gobbletwoarguments
- \else
- \doubleexpandafter\syst_helpers_stepwise_recurse
- \fi\normalexpanded{{\number#1}{\number#2}{\number#3}}}%
- \globalpopmacro\recurselevel
- \globalpopmacro\recurseaction
- \global\advance\outerrecurse\minusone}
-
-% \protected\def\syst_helpers_stepwise_recurse_nop#0#0#0#0%
-% {}
-
-\newcount\fastloopindex
-\newcount\fastloopfinal
+%% \def\syst_helpers_recurse_content
+%% {\normalexpanded{\recurseaction{\recurselevel}{\the\outerrecurse}}}
+%%
+%% \protected\def\syst_helpers_recurse_x#1#2%
+%% {\global\advanceby\outerrecurse\plusone
+%% \globalpushmacro\recurseaction
+%% \globalpushmacro\recurselevel
+%% \protected\gdef\recurseaction##1##2{#2}%
+%% \expandafter\syst_helpers_recurse_indeed\expandafter1\expandafter{\number#1}%
+%% \globalpopmacro\recurselevel
+%% \globalpopmacro\recurseaction
+%% \global\advanceby\outerrecurse\minusone}
+%%
+%% \protected\def\syst_helpers_recurse_y#1#2%
+%% {\global\advanceby\outerrecurse\plusone
+%% \globalpushmacro\recurseaction
+%% \globalpushmacro\recurselevel
+%% \let\recurselevel\!!plusone
+%% \protected\gdef\recurseaction##1##2{#2}%
+%% \syst_helpers_recurse_content
+%% \globalpopmacro\recurselevel
+%% \globalpopmacro\recurseaction
+%% \global\advanceby\outerrecurse\minusone}
+%%
+%% \permanent\protected\def\dostepwiserecurse#1#2#3#4% can be made faster by postponing #4 ... todo: remove unused helpers
+%% {\global\advanceby\outerrecurse \plusone
+%% \globalpushmacro\recurseaction
+%% \globalpushmacro\recurselevel
+%% \protected\gdef\recurseaction##1##2{#4}%
+%% \normalexpanded{\ifcmpnum#3\zerocount
+%% \ifnum#1<#2\relax\relax % so we catch \number\numexpr xx without \relax's
+%% \doubleexpandafter\gobbletwoarguments
+%% \else
+%% \tripleexpandafter\syst_helpers_stepwise_reverse
+%% \fi
+%% \or
+%% \doubleexpandafter\gobbletwoarguments
+%% \orelse\ifnum#2<#1\relax\relax % so we catch \number\numexpr xx without \relax's
+%% \doubleexpandafter\gobbletwoarguments
+%% \else
+%% \doubleexpandafter\syst_helpers_stepwise_recurse
+%% \fi\normalexpanded{{\number#1}{\number#2}{\number#3}}}%
+%% \globalpopmacro\recurselevel
+%% \globalpopmacro\recurseaction
+%% \global\advanceby\outerrecurse\minusone}
+
+\newinteger\fastloopindex
+\newinteger\fastloopfinal
\let\m_syst_helpers_fast_loop_cs\relax
@@ -3436,10 +3476,71 @@
\let\m_syst_helpers_fast_loop_cs\relax
\else
\m_syst_helpers_fast_loop_cs
- \advance\fastloopindex\plusone
+ \advanceby\fastloopindex\plusone
\expandafter\syst_helpers_fast_loop_cs_step
\fi}
+%D Here are the more modern implementations:
+
+\permanent\protected\def\installmacrostack#1%
+ {\ifdefined#1\else\mutable\lettonothing#1\fi
+ \protected\gdefcsname push_macro_\csstring#1\endcsname{\localpushmacro#1}%
+ \protected\gdefcsname pop_macro_\csstring#1\endcsname{\localpopmacro #1}}
+
+\permanent\protected\def\installglobalmacrostack#1%
+ {\ifdefined#1\else\mutable\glettonothing#1\fi
+ \protected\gdefcsname push_macro_\csstring#1\endcsname{\globalpushmacro#1}%
+ \protected\gdefcsname pop_macro_\csstring#1\endcsname{\globalpopmacro #1}}
+
+% \showmacrostack can be used to see if there are different entries
+
+\installglobalmacrostack \recurseaction
+\installglobalmacrostack \recurselevel
+\installglobalmacrostack \recursedepth
+
+\permanent\protected\def\dostepwiserecurse#1#2#3#4%
+ {\push_macro_recurseaction
+ \push_macro_recurselevel
+ \push_macro_recursedepth
+ \protected\gdef\recurseaction##1##2{#4}%
+ \localcontrolledloop=#1=#2=#3%
+ {\edef\recurselevel{\the\currentloopiterator}%
+ \edef\recursedepth{\the\currentloopnesting}%
+ \normalexpanded{\recurseaction{\recurselevel}{\recursedepth}}}%
+ \pop_macro_recursedepth
+ \pop_macro_recurselevel
+ \pop_macro_recurseaction}
+
+\permanent\protected\def\dorecurse#1#2%
+ {\push_macro_recurseaction
+ \push_macro_recurselevel
+ \push_macro_recursedepth
+ \protected\gdef\recurseaction##1##2{#2}%
+ \localcontrolledloop=\plusone=#1=\plusone
+ {\edef\recurselevel{\the\currentloopiterator}%
+ \edef\recursedepth{\the\currentloopnesting}%
+ \normalexpanded{\recurseaction{\recurselevel}{\recursedepth}}}%
+ \pop_macro_recursedepth
+ \pop_macro_recurselevel
+ \pop_macro_recurseaction}
+
+\permanent\def\doexpandedrecurse#1#2% user macro (also was \doxprecurse)
+ {\expandedloop\plusone#1\plusone{#2}}
+
+\mutable\let\m_expanded_recursed\gobbleoneargument
+
+\installmacrostack\m_expanded_recursed
+
+\permanent\def\doexpandedrecursed#1#2% this might replace: \doexpandedrecurse
+ {\beginlocalcontrol
+ \push_macro_m_expanded_recursed
+ \def\m_expanded_recursed##1{#2}%
+ \endlocalcontrol
+ \expandedloop\plusone#1\plusone{\expandafter\m_expanded_recursed\expandafter{\the\currentloopiterator}}%
+ \beginlocalcontrol
+ \pop_macro_m_expanded_recursed
+ \endlocalcontrol}
+
% Helper:
\permanent\protected\def\resetrecurselevel{\let\recurselevel\!!zerocount}
@@ -3472,14 +3573,14 @@
%D \stoptyping
\permanent\protected\def\doloopoverlist#1#2%
- {\global\advance\outerrecurse\plusone
+ {\global\advanceby\outerrecurse\plusone
\globalpushmacro\recurseaction
\globalpushmacro\recursestring
\protected\gdef\recurseaction##1{\edef\recursestring{##1}#2}%
\processcommacommand[#1]\recurseaction
\globalpopmacro\recursestring
\globalpopmacro\recurseaction
- \global\advance\outerrecurse\minusone}
+ \global\advanceby\outerrecurse\minusone}
%D This is some \LMTX\ experiment:
%D
@@ -3987,18 +4088,18 @@
\m_syst_helpers_handle_group_b}
\def\syst_helpers_handle_group_nop_b
- {\bgroup
+ {\beginsimplegroup
\aftergroup\m_syst_helpers_handle_group_a
\aftergroup\egroup
\m_syst_helpers_handle_group_b}
\protected\def\syst_helpers_handle_group_normal
- {\bgroup
+ {\beginsimplegroup
\afterassignment\m_syst_helpers_handle_group_normal_before
\let\next=}
\def\m_syst_helpers_handle_group_normal_before
- {\bgroup
+ {\beginsimplegroup
\m_syst_helpers_handle_group_b
\bgroup
\aftergroup\m_syst_helpers_handle_group_a
@@ -4006,26 +4107,26 @@
\aftergroup\egroup}
\protected\def\syst_helpers_handle_group_simple% no inner group (so no kerning interference)
- {\bgroup
+ {\beginsimplegroup
\afterassignment\m_syst_helpers_handle_group_simple_before
\let\next=}
\def\m_syst_helpers_handle_group_simple_before
- {\bgroup
+ {\beginsimplegroup
\aftergroup\m_syst_helpers_handle_group_simple_after
\m_syst_helpers_handle_group_b}
\def\m_syst_helpers_handle_group_simple_after
{\m_syst_helpers_handle_group_a
- \egroup}%
+ \egroup}
\protected\def\syst_helpers_handle_group_pickup% no inner group (so no kerning interference)
- {\bgroup
+ {\beginsimplegroup
\afterassignment\m_syst_helpers_handle_group_pickup_before
\let\next=}
\def\m_syst_helpers_handle_group_pickup_before
- {\bgroup
+ {\beginsimplegroup
\aftergroup\m_syst_helpers_handle_group_a
\aftergroup\egroup
\aftergroup\m_syst_helpers_handle_group_p
@@ -4036,20 +4137,20 @@
\begingroup
\aftergroup\endgroup
\else
- \bgroup
+ \beginsimplegroup
\aftergroup\egroup
\fi
\m_syst_helpers_handle_group_b}
\protected\def\syst_helpers_handle_group_normal_x
- {\bgroup
+ {\beginsimplegroup
\afterassignment\m_syst_helpers_handle_group_normal_before_x
\let\next=}
\def\m_syst_helpers_handle_group_normal_before_x
- {\bgroup
- \m_syst_helpers_handle_group_b
- \bgroup
+ {\beginsimplegroup
+ \expandafter\m_syst_helpers_handle_group_b
+ \ifmmode\beginsimplegroup\else\bgroup\fi % is this save enough? also the other ones?
\aftergroup\egroup
\aftergroup\egroup}
@@ -4079,12 +4180,23 @@
\def\m_syst_helpers_handle_group_a{#2}%
\futureexpandis\bgroup\syst_helpers_handle_group_simple\syst_helpers_handle_group_nop}
+\permanent\protected\def\simplegroupedcommandcs#1#2%
+ {\let\m_syst_helpers_handle_group_b#1%
+ \let\m_syst_helpers_handle_group_a#2%
+ \futureexpandis\bgroup\syst_helpers_handle_group_simple\syst_helpers_handle_group_nop}
+
\permanent\protected\def\pickupgroupedcommand#1#2#3%
{\def\m_syst_helpers_handle_group_b{#1}%
\def\m_syst_helpers_handle_group_a{#2}%
\def\m_syst_helpers_handle_group_p{#3}%
\futureexpandis\bgroup\syst_helpers_handle_group_pickup\syst_helpers_handle_group_nop}
+\permanent\protected\def\pickupgroupedcommandcs#1#2#3%
+ {\let\m_syst_helpers_handle_group_b#1%
+ \let\m_syst_helpers_handle_group_a#2%
+ \let\m_syst_helpers_handle_group_p#3%
+ \futureexpandis\bgroup\syst_helpers_handle_group_pickup\syst_helpers_handle_group_nop}
+
\permanent\protected\def\triggergroupedcommand#1%
{\def\m_syst_helpers_handle_group_b{#1}%
\futureexpandis\bgroup\syst_helpers_handle_group_normal_x\syst_helpers_handle_group_nop_x}
@@ -4103,6 +4215,21 @@
%D {\groupedcommand{\raggedcenter\bf}{\par}}
%D \stoptyping
+%D For math we use this:
+
+\permanent\protected\def\mathgroupedcommandcs#1%
+ {\let\m_syst_helpers_handle_group_b#1%
+ \futureexpandis\bgroup\syst_helpers_handle_math_group_normal\syst_helpers_handle_math_group_nop}
+
+\protected\def\syst_helpers_handle_math_group_normal#1%
+ {\beginmathgroup
+ \m_syst_helpers_handle_group_b
+ #1%
+ \endmathgroup}
+
+\protected\def\syst_helpers_handle_math_group_nop
+ {\m_syst_helpers_handle_group_b}
+
% %D \macros
% %D {checkdefined}
% %D
@@ -4176,15 +4303,21 @@
\let\syst_helpers_par_before\relax
\let\syst_helpers_par_around\relax
+% \permanent\protected\def\dowithpar#1#2%
+% {\globalpushmacro\syst_helpers_par_around
+% \def\syst_helpers_par_around##1\par{#1##1#2\globalpopmacro\syst_helpers_par_around}%
+% \expandafter\syst_helpers_par_around\ignorepars}
+
+% \permanent\protected\def\dogotopar#1%
+% {\globalpushmacro\syst_helpers_par_before
+% \def\syst_helpers_par_before{#1\globalpopmacro\syst_helpers_par_before}%
+% \expandafter\syst_helpers_par_before\ignorepars}
+
\permanent\protected\def\dowithpar#1#2%
- {\globalpushmacro\syst_helpers_par_around
- \def\syst_helpers_par_around##1\par{#1##1#2\globalpopmacro\syst_helpers_par_around}%
- \expandafter\syst_helpers_par_around\ignorepars}
+ {\begingroup\aftergrouped{#1\dontleavehmode\wrapuppar{#2}}\expandafter\endgroup\ignorepars}
\permanent\protected\def\dogotopar#1%
- {\globalpushmacro\syst_helpers_par_before
- \def\syst_helpers_par_before{#1\globalpopmacro\syst_helpers_par_before}%
- \expandafter\syst_helpers_par_before\ignorepars}
+ {\begingroup\aftergrouped{#1}\expandafter\endgroup\ignorepars}
\aliased\let\dogotoparcs\dogotopar
@@ -4371,7 +4504,8 @@
%D These macros are clones of the ones implemented in page~378 of Knuth's \TEX book.
\newtoks\t_syst_helpers_scratch
-\let \m_syst_helpers_scratch\empty
+
+\lettonothing\m_syst_helpers_scratch
\permanent\protected\def\appendtoks#1\to#2%
{\ifrelax\dodoglobal
@@ -4431,8 +4565,8 @@
\newtoks \collectingtoks
-\aliased\let\stopcollect \relax
-\aliased\let\stopexpandedcollect\relax
+\permanent\protected\lettonothing\stopcollect
+\permanent\protected\lettonothing\stopexpandedcollect
\permanent\protected\def\startcollect #1\stopcollect {\toksapp \collectingtoks{#1}}
\permanent\protected\def\startexpandedcollect#1\stopexpandedcollect{\etoksapp\collectingtoks{#1}}
@@ -4507,9 +4641,9 @@
\permanent\protected\def\beforesplitstring#1\at#2\to#3%
{\def\syst_helpers_split_string##1#2##0^^^^0004% no #- as we need to count
{\ifarguments
- \let#3\empty
+ \lettonothing#3%
\or
- \let#3\empty
+ \lettonothing#3%
\else
\def#3{##1}%
\fi}%
@@ -4518,7 +4652,7 @@
\permanent\protected\def\aftersplitstring#1\at#2\to#3%
{\def\syst_helpers_split_string##0#2##2^^^^0004% no #- as we need to count
{\ifarguments
- \let#3\empty
+ \lettonothing#3%
\or
\def#3{#1}%
\else
@@ -4534,11 +4668,11 @@
\permanent\protected\def\splitstring#1\at#2\to#3\and#4%
{\def\syst_helpers_split_string##1#2##2^^^^0004%
{\ifarguments
- \let#3\empty
- \let#4\empty
+ \lettonothing#3*
+ \lettonothing#4*
\or
\def#3{#1}%
- \let#4\empty
+ \lettonothing#4%
\else
\def#3{##1}%
\def#4{##2}%
@@ -4548,11 +4682,11 @@
\permanent\protected\def\greedysplitstring#1\at#2\to#3\and#4%
{\def\syst_helpers_split_string##1#2##2^^^^0004%
{\ifarguments
- \let#3\empty
- \let#4\empty
+ \lettonothing#3%
+ \lettonothing#4%
\or
\def#3{#1}%
- \let#4\empty
+ \lettonothing#4%
\else
\def#3{##1}%
\def#4{##2}%
@@ -4578,9 +4712,9 @@
\permanent\protected\def\aftertestandsplitstring#1\at#2\to#3%
{\def\syst_helpers_split_string##0#2##2^^^^0004% no #- as we need to count
{\ifarguments
- \let#3\empty
+ \lettonothing#3%
\or
- \let#3\empty
+ \lettonothing#3%
\else
\def#3{##2}%
\fi}%
@@ -4589,11 +4723,11 @@
\permanent\protected\def\testandsplitstring#1\at#2\to#3\and#4%
{\def\syst_helpers_split_string##1#2##2^^^^0004%
{\ifarguments
- \let#3\empty
- \let#4\empty
+ \lettonothing#3%
+ \lettonothing#4%
\or
- \let#3\empty
- \let#4\empty
+ \lettonothing#3%
+ \lettonothing#4%
\else
\def#3{##1}%
\def#4{##2}%
@@ -4627,8 +4761,8 @@
%D Which in terms of \TEX\ looks like:
\permanent\protected\def\removesubstring#1\from#2\to#3%
- {\splitstring#2\to\m_syst_string_one\and\m_syst_string_two
- \dodoglobal#3{\m_syst_string_one\m_syst_string_two}}
+ {\splitstring#2\at#1\to\m_syst_string_one\and\m_syst_string_two
+ \dodoglobal\def#3{\m_syst_string_one\m_syst_string_two}}
%D \macros
%D {appendtocommalist,prependtocommalist,
@@ -4754,7 +4888,7 @@
\permanent\protected\def\substituteincommalist#1#2#3% old, new, list (slooow)
{\edef\m_syst_string_one{#1}%
\edef\m_syst_string_two{#2}%
- \let\m_syst_string_four\empty
+ \lettonothing\m_syst_string_four
\normalexpanded{\rawprocesscommacommand[#3]}\syst_helpers_substitute_in_comma_list_step
\let#3\m_syst_string_four}
@@ -4780,10 +4914,11 @@
%D
%D This macro was used in the bibtex code (and is probably no longer needed).
-\newcount\c_syst_helpers_comma_list_index
-\let \m_syst_helpers_comma_list_target\empty
+\newinteger\c_syst_helpers_comma_list_index
+
+\lettonothing\m_syst_helpers_comma_list_target
-\mutable\let\newcommalistelement\empty
+\mutable\lettonothing\newcommalistelement
\def\syst_helpers_replace_in_comma_list_step#1% we can use #+ here too
{\ifnum\commalistcounter=\c_syst_helpers_comma_list_index\relax
@@ -4812,12 +4947,12 @@
\fi
\fi
\fi
- \advance\commalistcounter\plusone}
+ \advanceby\commalistcounter\plusone}
\permanent\protected\def\replaceincommalist#1#2% #1 = commalistelement #2 = position starts at 1
{\c_syst_helpers_comma_list_index#2\relax
- \let\m_syst_helpers_comma_list_target\empty
- \let\commalistelement\empty
+ \lettonothing\m_syst_helpers_comma_list_target
+ \lettonothing\commalistelement
\commalistcounter\plusone
\expandafter\processcommalist\expandafter[#1]\syst_helpers_replace_in_comma_list_step
\dodoglobal\let#1\m_syst_helpers_comma_list_target}
@@ -4830,7 +4965,7 @@
%D kind of useless for handling comma lists in alignments. In these situations the
%D next macro can be of use.
-\let\m_syst_helpers_comma_list_command_global\empty
+\lettonothing\m_syst_helpers_comma_list_command_global
\def\syst_helpers_comma_list_command_global_step#1,%
{\if]#1\else
@@ -4867,7 +5002,9 @@
% that \TEX\ was written, it made no sense to add a lot of that. After decades we know
% what extras we need.
-\permanent\def\withoutpt#1{\thewithoutunit\dimexpr#1} % best use the primitive directly
+% \permanent\def\withoutpt#1{\thewithoutunit\dimexpr#1}
+
+\aliased\let\withoutpt\toscaled
%D The capitals are needed because \type {p} and \type {t} have catcode~12, while
%D macronames only permit tokens with the catcode~11. As a result we cannot use the
@@ -4875,10 +5012,9 @@
%D manipulations, we advice to study the \TEX book in detail. Because this macro
%D does not do any assignment, we can use it in the following way too.
-% \def\PtToCm#1%
-% {\withoutpt\the\dimexpr0.0351459804\dimexpr#1\relax\relax cm}
+% \permanent\def\PtToCm#1{\thewithoutunit\dimexpr0.0351459804\dimexpr#1\relax\relax cm}
-\permanent\def\PtToCm#1{\thewithoutunit\dimexpr0.0351459804\dimexpr#1\relax\relax cm}
+\permanent\def\PtToCm#1{\toscaled\dimexpr0.0351459804\dimexpr#1\relax\relax cm}
%D We also support:
%D
@@ -4902,10 +5038,10 @@
%D Simple but effective are the next two macros. There name exactly states their
%D purpose.
-\newdimen\d_syst_helpers_swapped
-\newskip \s_syst_helpers_swapped
-\newcount\c_syst_helpers_swapped
-\let \m_syst_helpers_swapped\relax
+\newdimension\d_syst_helpers_swapped
+\newgluespec \s_syst_helpers_swapped
+\newinteger \c_syst_helpers_swapped
+\let \m_syst_helpers_swapped\relax
% \protected\def\swapdimens#1#2{\d_syst_helpers_swapped#1#1#2#2\d_syst_helpers_swapped}
% \protected\def\swapskips #1#2{\s_syst_helpers_swapped#1#1#2#2\s_syst_helpers_swapped}
@@ -4956,7 +5092,7 @@
%D These examples show us that an optional can be used. The value provided is added
%D to \type {\localhsize}.
-\newdimen\localhsize
+\newdimension\localhsize
\permanent\protected\def\setlocalhsize % don't change !
{\doifelsenextoptional
@@ -4968,7 +5104,7 @@
\def\syst_helpers_set_local_hsize_yes[#1]%
{\syst_helpers_set_local_hsize_nop
- \advance\localhsize#1\relax}
+ \advanceby\localhsize#1\relax}
\permanent\def\availablehsize
{\dimexpr
@@ -5238,14 +5374,15 @@
%D As we can see below, spaces following a control sequence are to enclosed in \type
%D {{}}.
-\let\syst_helpers_strip_character \relax
-\let\m_syst_helpers_strip_character\empty
+\let\syst_helpers_strip_character\relax
+
+\lettonothing\m_syst_helpers_strip_character
\permanent\protected\def\stripcharacter#1\from#2\to#3%
{\def\syst_helpers_strip_character##1#1##2\end
{\edef\m_syst_helpers_strip_character{\m_syst_helpers_strip_character##1}%
\doifnotempty{##2}{\syst_helpers_strip_character##2\end}}%
- \let\m_syst_helpers_strip_character\empty
+ \lettonothing\m_syst_helpers_strip_character
\edef\m_syst_string_one{#2}%
\expandafter\syst_helpers_strip_character\m_syst_string_one#1\end
\dodoglobal\let#3\m_syst_helpers_strip_character}
@@ -5476,7 +5613,7 @@
%D
%D They remove braces and backslashes and give us something to sort.
-\let\m_syst_helpers_untexed\empty
+\lettonothing\m_syst_helpers_untexed
\permanent\protected\def\untexsomething
{\begingroup
@@ -5523,11 +5660,9 @@
%D \PointsToReal {dimension} \target
%D \stoptyping
-% \protected\def\PointsToReal#1#2%
-% {\edef#2{\withoutpt\the\dimexpr#1}}
+% \permanent\protected\def\PointsToReal#1#2{\edef#2{\thewithoutunit\dimexpr#1}}
-\permanent\protected\def\PointsToReal#1#2%
- {\edef#2{\thewithoutunit\dimexpr#1}}
+\permanent\protected\def\PointsToReal#1#2{\edef#2{\toscaled#1}}
%D \macros
%D {dontleavehmode}
@@ -5630,7 +5765,7 @@
{\def\m_syst_string_three{#1}%
\ifx\m_syst_string_two\m_syst_string_three \else
\ifx\m_syst_string_one\m_syst_string_three
- \advance\privatescratchcounter\plusone
+ \advanceby\privatescratchcounter\plusone
\fi
\expandafter\syst_helpers_count_token
\fi}
@@ -5644,7 +5779,7 @@
\permanent\protected\def\counttokens#1\to#2%
{\privatescratchcounter\zerocount
- \def\syst_helpers_count_token##1{\advance\privatescratchcounter\plusone}%
+ \def\syst_helpers_count_token##1{\advanceby\privatescratchcounter\plusone}%
\handletokens#1\with\syst_helpers_count_token
\dodoglobal#2\privatescratchcounter}
@@ -5661,10 +5796,10 @@
\privatescratchcounter#1\relax
\def\syst_helpers_split_off_tokens##1%
{\ifnum\privatescratchcounter>\zerocount
- \advance\privatescratchcounter \minusone
+ \advanceby\privatescratchcounter \minusone
\edef#3{#3##1}%
\fi}%
- % \let#3\empty % #3 can be #2, so:
+ % \lettonothing#3% #3 can be #2, so:
\expandafter\let\expandafter#3\expandafter\empty
\expandafter\handletokens#2\with\syst_helpers_split_off_tokens
\else
@@ -5700,7 +5835,7 @@
%D assignment, this time by using \type {\futurelet}, and grabbing an argument as
%D well. That way we can handle the sentinal, a blank space and grouped tokens.
-\mutable\let\nexthandledtoken\empty % part of public interface
+\mutable\lettonothing\nexthandledtoken % part of public interface
\let\syst_helpers_handle_tokens_command\relax
@@ -5785,14 +5920,30 @@
%D {\processcontent{stophans}\test{\message{\test}\wait}}
%D \stoptyping
-\permanent\protected\def\processcontent#1%
- {\begingroup\expandafter\syst_helpers_process_content\csname#1\endcsname}
+% \starttabulate[|||]
+% \NC \type{#} \NC # \NC \NR
+% \stoptabulate
+%
+% \def\test#1%
+% {\starttabulate[|||]
+% \NC \type{#1} \NC #1 \NC \NR
+% \stoptabulate}
+%
+% \test{!}
+
+%% \permanent\protected\def\processcontent#1%
+%% {\begingroup\expandafter\syst_helpers_process_content\csname#1\endcsname}
\protected\def\syst_helpers_process_content#1#2#3%
{\protected\def\syst_helpers_process_content##1#1%
{\endgroup\def#2{##1}#3}%
\syst_helpers_process_content}
+\permanent\protected\def\processcontent#1%
+ {\begingroup
+ \catcode\hashasciicode\othercatcode
+ \expandafter\syst_helpers_process_content\csname#1\endcsname}
+
%D \macros
%D {dogobblesingleempty, dogobbledoubleempty}
%D
@@ -5814,7 +5965,7 @@
%D \setdimensionwithunit\scratchdimen{10cm}{cm}
%D \setdimensionwithunit\scratchdimen{10cm}{}
%D \freezedimensionwithunit\SomeWidth{\textwidth}
-%D \freezedimensionwithunit\SomeDepth{\dp\strutbox}
+%D \freezedimensionwithunit\SomeDepth{\strutdp}
%D \stoptyping
%D
%D As an alternative for the next macro we can use a global assignment inside a box.
@@ -5914,13 +6065,13 @@
\let\syst_helpers_serialize_comma_list_step\relax
-\mutable\let\serializedcommalist\empty
+\mutable\lettonothing\serializedcommalist
\def\syst_helpers_serialize_comma_list_step#1%
{\edef\serializedcommalist{\serializedcommalist#1}}
\permanent\protected\def\serializecommalist[#1]%
- {\let\serializedcommalist\empty
+ {\lettonothing\serializedcommalist
\processcommacommand[#1]\syst_helpers_serialize_comma_list_step}
%D \macros
@@ -5953,7 +6104,7 @@
% can be sped up with ignored arguments
\def\syst_filter_from_next_yes#1%
- {\advance\scratchcounterone\plusone
+ {\advanceby\scratchcounterone\plusone
\ifnum\scratchcounterone=\scratchcountertwo
\scratchtoks{#1}%
\fi
@@ -6039,10 +6190,10 @@
%D This one can be used inside a measure (used in m4all):
%D
%D \starttyping
-%D \definemeasure[columnwidth][\dividedsize\textwidth{1em}{3}]
+%D \definemeasure[columnwidth][\dividebydsize\textwidth{1em}{3}]
%D \stoptyping
-\permanent\def\dividedsize#1#2#3% size gap n
+\permanent\def\dividebydsize#1#2#3% size gap n
{\dimexpr
\ifnum\dimexpr#1\relax>\plusone
(\dimexpr#1\relax-\numexpr#3-\plusone\relax\dimexpr#2\relax)/#3\else#1%
@@ -6088,8 +6239,8 @@
%D
%D We no longer use the \MKIV\ dirty trick. These are obsolete anyway.
-\newdimen \roundingeps \roundingeps=10sp
-\newconstant\compresult
+\newdimension\roundingeps \roundingeps=10sp
+\newconstant \compresult
\permanent\protected\def\comparedimension#1#2%
{\compresult
@@ -6230,24 +6381,26 @@
%D Sort of obsolete:
-\newcount\c_syst_helpers_mod
+\newinteger\c_syst_helpers_mod
\permanent\protected\def\dosetmodulo#1#2#3%
- {\c_syst_helpers_mod#1\divide\c_syst_helpers_mod#2\multiply\c_syst_helpers_mod#2%
- #3#1\advance#3-\c_syst_helpers_mod}
+ {\c_syst_helpers_mod#1\divideby\c_syst_helpers_mod#2\multiplyby\c_syst_helpers_mod#2%
+ #3#1\advanceby#3-\c_syst_helpers_mod}
\permanent\protected\def\dosetdivision#1#2#3%
- {#3#1\divide#3 #2\relax}
+ {#3#1\divideby#3 #2\relax}
\permanent\protected\def\DoMod#1by#2to#3{\dosetmodulo {#1}{#2}{#3}}
\permanent\protected\def\DoDiv#1by#2to#3{\dosetdivision{#1}{#2}{#3}}
-\def\syst_helpers_unprotected#1\par
- {#1\protect}
+%D This is obsolete, just use \type {\unprotect} and \type {\protect} instead.
-\permanent\protected\def\unprotected
- {\unprotect
- \syst_helpers_unprotected}
+% \def\syst_helpers_unprotected#1\par
+% {#1\protect}
+%
+% \permanent\protected\def\unprotected
+% {\unprotect
+% \syst_helpers_unprotected}
\aliased\let\resettimer \clf_resettimer % todo: at lua end
\aliased\let\elapsedtime \clf_elapsedtime % todo: at lua end
@@ -6258,8 +6411,8 @@
\permanent\protected\def\elapsedsteptime % unexpanded ! a bit useless but who knows ...
{\clf_elapsedsteptime\elapsedsteps\relax}
-\newcount\c_syst_helpers_test_feature_n
-\newcount\c_syst_helpers_test_feature_m
+\newinteger\c_syst_helpers_test_feature_n
+\newinteger\c_syst_helpers_test_feature_m
\let\syst_helpers_test_feature_yes\relax
\let\syst_helpers_test_feature_nop\relax
@@ -6267,15 +6420,15 @@
\permanent\def\currentfeaturetest{\number\c_syst_helpers_test_feature_n}
\permanent\protected\def\testfeature#1#2%
- {\c_syst_helpers_test_feature_m#1\relax
+ {\c_syst_helpers_test_feature_m\ifparameter#1\or#1\else\maxiterator\fi\relax
\enforced\xdef\elapsedsteps{\number\c_syst_helpers_test_feature_m}%
\def\syst_helpers_test_feature_yes
- {\advance\c_syst_helpers_test_feature_n\plusone
+ {\advanceby\c_syst_helpers_test_feature_n\plusone
\ifnum\c_syst_helpers_test_feature_n>\c_syst_helpers_test_feature_m\else
#2\expandafter\syst_helpers_test_feature_yes
\fi}%
\def\syst_helpers_test_feature_nop
- {\advance\c_syst_helpers_test_feature_n\plusone
+ {\advanceby\c_syst_helpers_test_feature_n\plusone
\ifnum\c_syst_helpers_test_feature_n>\c_syst_helpers_test_feature_m\else
\expandafter\syst_helpers_test_feature_nop
\fi}%
@@ -6508,18 +6661,32 @@
\or \plusten
\else {\number#1}\fi}
-\permanent\def\constantdimen#1%
- {\ifdim#1=\zeropoint
+% \permanent\def\constantdimen#1% takes register
+% {\ifdim#1=\zeropoint
+% \zeropoint
+% \else
+% \the#1\relax
+% \fi}
+
+\permanent\def\constantdimen#1% takes register
+ {\ifzeropt#1\norelax
\zeropoint
\else
- \the#1\relax
+ \todimension#1\norelax
\fi}
+% \permanent\def\constantdimenargument#1% takes register
+% {\ifdim#1=\zeropoint
+% \zeropoint
+% \else
+% {\the#1}%
+% \fi}
+
\permanent\def\constantdimenargument#1%
- {\ifdim#1=\zeropoint
+ {\ifzeropt#1%\norelax
\zeropoint
\else
- {\the#1}%
+ {\todimension#1}%
\fi}
\permanent\def\constantemptyargument#1%
@@ -6668,4 +6835,71 @@
\permanent\protected\def\resetmacros[#1]%
{\processcommalist[#1]\syst_reset_macro}
+%D These demos are for hvdm who needs ways to manipulate arguments but
+%D in a fully expandable way (some explanation is given in the low level
+%D expansion manual).
+%D
+%D \startbuffer
+%D \edef\xxx{[\wipetokens {123}{abc123abc123abc123abc123abc}]}1 : \meaningless\xxx\par
+%D \edef\xxx{[\wipetokens {123}{abc}]} 2 : \meaningless\xxx\par
+%D \edef\xxx{[\wipetokens {123}{123}]} 3 : \meaningless\xxx\par
+%D \edef\xxx{[\wipetokens {123}{123123}]} 4 : \meaningless\xxx\par
+%D \edef\xxx{[\wipetokens {123}{}]} 5 : \meaningless\xxx\par
+%D \edef\xxx{[\wipetokens {}{123}]} 6 : \meaningless\xxx\par
+%D \edef\xxx{[\wipetokens {\relax}{1\relax2\relax3}]} 7 : \meaningless\xxx\par
+%D \edef\xxx{[\wipetokens {1}{1{2}3}]} 8 : \meaningless\xxx\par
+%D \edef\xxx{[\wipedtokens{{1}}{{1}23}]} 9 : \meaningless\xxx\par
+%D \edef\xxx{[\wipedtokens{{1}}{123}]} 0 : \meaningless\xxx\par
+%D \stopbuffer
+%D
+%D \typebuffer \startpacked \getbuffer \stoppacked
+
+\def\syst_helpers_wipe_tokens_nop#-^^04{}%
+
+\permanent\def\wipetokens#1#2%
+ {\beginlocalcontrol
+ \tolerant\def\syst_helpers_wipe_tokens_yes##1#1##2^^04%
+ {##1%
+ \ifparameter##2\or
+ \expandafter\syst_helpers_wipe_tokens_yes
+ \else
+ \expandafter\syst_helpers_wipe_tokens_nop
+ \fi
+ ##2^^04}%
+ \endlocalcontrol
+ \syst_helpers_wipe_tokens_yes#2#1^^04}
+
+\permanent\def\wipedtokens#1#2%
+ {\tokenized{\normalexpanded{\noexpand\wipetokens{\detokenize{#1}}{\detokenize{#2}}}}}
+
+%D \startbuffer
+%D \def\abc{abc}
+%D \semiprotected \def\xyz{xyz}
+%D \edef\pqr{\expandtoken\notcatcodes`p%
+%D \expandtoken\notcatcodes`q%
+%D \expandtoken\notcatcodes`r}
+%D
+%D 1: \ifcondition\similartokens{abc} {def}YES\else NOP\fi (NOP) \quad
+%D 2: \ifcondition\similartokens{abc}{\abc}YES\else NOP\fi (YES)
+%D
+%D 3: \ifcondition\similartokens{xyz} {pqr}YES\else NOP\fi (NOP) \quad
+%D 4: \ifcondition\similartokens{xyz}{\xyz}YES\else NOP\fi (YES)
+%D
+%D 5: \ifcondition\similartokens{pqr} {pqr}YES\else NOP\fi (YES) \quad
+%D 6: \ifcondition\similartokens{pqr}{\pqr}YES\else NOP\fi (YES)
+%D \stopbuffer
+%D
+%D \typebuffer \startpacked \getbuffer \stoppacked
+
+\permanent\protected\def\similartokens#1#2%
+ %{\normalexpanded{\noexpand\iftok{\noexpand\detokenize{#1}}{\noexpand\detokenize{#2}}}}
+ {\semiexpanded{\noexpand\iftok{\noexpand\detokenize{#1}}{\noexpand\detokenize{#2}}}}
+
+\permanent\protected\def\doifelsesimilartokens#1#2%
+ {\ifcondition\similartokens{#1}{#2}%
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi}
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/syst-fnt.mkxl b/Master/texmf-dist/tex/context/base/mkxl/syst-fnt.mkxl
index e6029d80511..62239917f7c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/syst-fnt.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/syst-fnt.mkxl
@@ -23,13 +23,25 @@
\immutable\protected\def\fontemwidth {\scaledfontdimen\plussix }
\immutable\protected\def\fontextraspace {\scaledfontdimen\plusseven}
-\immutable\protected\def\slantperpoint {\scaledfontdimen\plusone \font}
-\immutable\protected\def\interwordspace {\scaledfontdimen\plustwo \font}
-\immutable\protected\def\interwordstretch {\scaledfontdimen\plusthree\font}
-\immutable\protected\def\interwordshrink {\scaledfontdimen\plusfour \font}
-\immutable\protected\def\exheight {\scaledfontdimen\plusfive \font}
-\immutable\protected\def\emwidth {\scaledfontdimen\plussix \font}
-\immutable\protected\def\extraspace {\scaledfontdimen\plusseven\font}
+%immutable\protected\def\slantperpoint {\scaledfontdimen\plusone \font}
+%immutable\protected\def\interwordspace {\scaledfontdimen\plustwo \font}
+%immutable\protected\def\interwordstretch {\scaledfontdimen\plusthree\font}
+%immutable\protected\def\interwordshrink {\scaledfontdimen\plusfour \font}
+%immutable\protected\def\exheight {\scaledfontdimen\plusfive \font}
+%immutable\protected\def\emwidth {\scaledfontdimen\plussix \font}
+%immutable\protected\def\extraspace {\scaledfontdimen\plusseven\font}
+
+%D This saves a little bit of overhead but more important, it gives less tracing,
+%D and for practical reasone we keep this indirectness because we syntax highlight
+%D these pseudo constants different than primitives.
+
+\immutable\aliased\let\slantperpoint \scaledslantperpoint
+\immutable\aliased\let\interwordspace \scaledinterwordspace
+\immutable\aliased\let\interwordstretch \scaledinterwordstretch
+\immutable\aliased\let\interwordshrink \scaledinterwordshrink
+\immutable\aliased\let\exheight \scaledexheight
+\immutable\aliased\let\emwidth \scaledemwidth
+\immutable\aliased\let\extraspace \scaledextraspace
\aliased\let\mathaxisheight\Umathaxis % takes style
diff --git a/Master/texmf-dist/tex/context/base/mkxl/syst-ini.mkxl b/Master/texmf-dist/tex/context/base/mkxl/syst-ini.mkxl
index 50304d1048a..2b37e30c622 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/syst-ini.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/syst-ini.mkxl
@@ -16,13 +16,92 @@
%D this loader is found in \type {syst-tex.tex}. Some of the comment's are Don
%D Knuths and more of it can be found in the plain \TEX\ format.
%D
+%D Successive versions will be adapted to \LUAMETATEX. That also means that we
+%D define things a bit differently than in \MKII\ and \MKIV. This is party due to
+%D the fact that in this engine we removed some side effects or added features. The
+%D original \TEX\ program is well defined and documented and is still the benchmark.
+%D The \ETEX\ extensions originally were meant as systematic follow up but that
+%D never went beyond a first upgrade. It had a dual mode: compatible or extensible.
+%D We always used the second mode. The \LUATEX\ engines don't have that.
+%D
+%D There are some hard coded properties that relate to for instance node types but
+%D we always used abstraction. There are also side effects that (probably) originate
+%D in the fact that \ETEX\ had to stay compatible with the dominant set of macros
+%D using the original \TEX\ ones (either or not wrapped). Even unwanted side effects
+%D eventually become features. In\LUATEX\ and even more in \LUAMETATEX\ we get
+%D around that by additional mode variables that you can find below.
+%D
+%D Side note: those who complain about \TEX\ as rather special language, \ETEX\
+%D extensions that should have been or be different, should really look into how
+%D \TEX\ and friends evolved, and not come to quick and wrong conclusions. There are
+%D only a very few languages that evolve this way. As a comparison one can wonder
+%D why \CCODE\ never had proper strings like \PASCAL\ bit it's just hindsight and
+%D discussing it has no use. In a similar fashion one should keep in mind that what
+%D you see here is just a logical follow up in \MKII\ where we had to bend the rules
+%D and \MKIV\ where we had a bit more available. Not many who look at the latest
+%D engines had to jump though all the hoops.
+%D
+%D This is for instance noticeable in the names of some primitvies: \CONTEXT\ has a
+%D concept of protection before \type {\protected} showed up, and similarly had
+%D expansion helpers. This is why in \MKII\ you find \type {\protected}, \type
+%D {\expanded}, and \type {\unexpanded} commands with different meanings than the
+%D later \ETEX\ primitives. In \MKIV\ we stuck to the \CONTEXT\ originals and use
+%D \type {\normal...} ones when needed (so \type {\normal...} is there for a
+%D reason!). In \LMTX\ we made the transition from \type {\unexpanded} to \type
+%D {\protected} so again this file looks different than the \MKIV\ ancestor.
+%D
+%D When primitives get initialized they come from the \TEX\ namespace (the
+%D originals), the \ETEX\ extensions (although we dropped some) and \LUATEX\ which
+%D includes the \LUAMETATEX\ ones. The most noticeable \ETEX\ extensions we kept are
+%D those that relate to expansion and the expression scanners. The last group has
+%D always been somewhat special because (we were told) it was modelled after a macro
+%D set so it had to be compatible. It is tempting to replace it (and eventually I
+%D might do that) but for now we stick to them (although with an integer divide
+%D extension (like the \LUA\ \type {//} and the source has commented binary
+%D operators but I haven't yet decided on the symbols to use because we need to
+%D avoid expansion issues). For the record: the more extensive, related to \ETEX\
+%D follow up \NTS\ never took of, probably because of the implementation language
+%D and because performance made it unuseable. This is also why \LUATEX\ took a
+%D different route: extending by an extension language. Of course in the end some
+%D core functionality got added too.
+%D
+%D The most noticeable \LUAMETATEX\ specific code here has to do with additional
+%D data types (integer and dimension constants) and macro argument extensions. We
+%D also set up some defaults in handling math, languages, etc. Elsewhere in the
+%D \CONTEXT\ source the real configuration and usage happens so don't consider this
+%D an tutorial (as the plain format is).
+%D
+%D Category codes are another areas where subtle changed happened. You might not
+%D grasp it (maybe because \CONTEXT\ is alien to you) but whenever you see something
+%D that looks weird keep in mind that there is a valid reason for it.
+%D
+%D In due time I will add some more comments here, also because some \CONTEXT\
+%D users might be interested in the hostiry. Now to the code!
+
%D Characters can have special states, that can be triggered by setting their
%D category coded. Some are preset, others are to be set as soon as possible,
%D otherwise we cannot define any useful macros.
%D
%D First we define a bunch of constants. Normally we would \type {\setconstant}
%D but we're prestine and have no macros defined yet. Abstraction also makes it
-%D possible to avoid the \type {^^} in the input.
+%D possible to avoid the \type {^^} in the input. We no longer define the \ETEX\
+%D nodes here (we have not only more, but also different numbers) so we do it
+%D elsewhere.
+
+% cheatsheet
+%
+% # : 0--9
+% * : ignore spaces
+% + : keep the braces
+% - : discard and don't count the argument
+% . : ignore pars and spaces
+% , : push back space when no match
+% / : remove leading and trailing spaces and pars
+% : : pick up scanning here
+% ; : quit scanning
+% = : braces are mandate
+% ^ : keep leading spaces
+% _ : braces are mandate and kept
\immutable\integerdef\escapecatcode 0
\immutable\integerdef\begingroupcatcode 1
@@ -63,6 +142,7 @@
\immutable\integerdef\periodasciicode 46
\immutable\integerdef\forwardslashasciicode 47 % /
\immutable\integerdef\colonasciicode 58
+\immutable\integerdef\semicolonasciicode 59
\immutable\integerdef\lessthanasciicode 60 % < used as alternative verbatim {
\immutable\integerdef\morethanasciicode 62 % > used as alternative verbatim }
\immutable\integerdef\questionmarkasciicode 63 % ? used in namespace protection
@@ -141,7 +221,7 @@
function tex.enableprimitives() end % so we kind of protect what's there
}
-\permanent\let\undefined\undefined
+\untraced\permanent\let\undefined\undefined
\immutable\def\space{ }
\immutable\def\empty{}
@@ -199,48 +279,62 @@
%D non||\type {\global} assignments with respect to registers 0, 2, 4, \unknown\ 30.
%D This will prevent \quote {save stack buildup} that might otherwise occur.
%D
-%D We reserve some registers for special (management) purposes:
+%D We reserve some registers for special (management) purposes. In the mkiv file you
+%D can see how we also (even if we don't use it) deal with families and languages
+%D and distinguish read and write ranges. There we also use a more traditional
+%D insert allocator that operates in its own range. In \MKIV\ the ranges are:
% 0 - 20 : scratch
% 21 - 127 : internal
-% 128 - 254 : inserts
+% 128 - 254 : inserts (no longer)
% 255 : page
-% 256 - : user
+% 256 - : user defined
-% use \chardef instead for min and max
-%
-% will be blocked: \newfamily \newlanguage
-
-\permanent\countdef \c_syst_min_allocated_register = 52 \c_syst_min_allocated_register = 256 % can change
-\permanent\countdef \c_syst_max_allocated_register = 53 \c_syst_max_allocated_register = 65535
-\permanent\countdef \c_syst_min_allocated_read = 54 \c_syst_min_allocated_read = 0
-\permanent\countdef \c_syst_max_allocated_read = 55 \c_syst_max_allocated_read = 1023
-\permanent\countdef \c_syst_min_allocated_language = 56 \c_syst_min_allocated_language = 0
-\permanent\countdef \c_syst_max_allocated_language = 57 \c_syst_max_allocated_language = 8191
-\permanent\countdef \c_syst_min_allocated_insert = 58 \c_syst_min_allocated_insert = 128
-\permanent\countdef \c_syst_max_allocated_insert = 59 \c_syst_max_allocated_insert = 254
-\permanent\countdef \c_syst_min_allocated_family = 60 \c_syst_min_allocated_family = 128
-\permanent\countdef \c_syst_max_allocated_family = 61 \c_syst_max_allocated_family = 255
-\permanent\countdef \c_syst_min_allocated_attribute = 62 \c_syst_min_allocated_attribute = 1024 % 0-1023 : private
-\permanent\countdef \c_syst_min_allocated_write = 63 \c_syst_min_allocated_write = 0
-\permanent\countdef \c_syst_max_allocated_write = 64 \c_syst_max_allocated_write = 1023
-
-\permanent\countdef \c_syst_last_allocated_count = 32 \c_syst_last_allocated_count = \c_syst_min_allocated_register
-\permanent\countdef \c_syst_last_allocated_dimen = 33 \c_syst_last_allocated_dimen = \c_syst_min_allocated_register
-\permanent\countdef \c_syst_last_allocated_skip = 34 \c_syst_last_allocated_skip = \c_syst_min_allocated_register
-\permanent\countdef \c_syst_last_allocated_muskip = 35 \c_syst_last_allocated_muskip = \c_syst_min_allocated_register
-\permanent\countdef \c_syst_last_allocated_box = 36 \c_syst_last_allocated_box = \c_syst_min_allocated_register
-\permanent\countdef \c_syst_last_allocated_toks = 37 \c_syst_last_allocated_toks = \c_syst_min_allocated_register
-\permanent\countdef \c_syst_last_allocated_read = 38 \c_syst_last_allocated_read = \c_syst_min_allocated_read
-\permanent\countdef \c_syst_last_allocated_write = 39 \c_syst_last_allocated_write = \c_syst_min_allocated_write
-\permanent\countdef \c_syst_last_allocated_marks = 40 \c_syst_last_allocated_marks = \c_syst_min_allocated_register
-\permanent\countdef \c_syst_last_allocated_language = 41 \c_syst_last_allocated_language = \c_syst_min_allocated_language % not used in context
-\permanent\countdef \c_syst_last_allocated_insertion = 42 \c_syst_last_allocated_insertion = \c_syst_min_allocated_insert
-\permanent\countdef \c_syst_last_allocated_family = 43 \c_syst_last_allocated_family = \c_syst_min_allocated_family % not used in context
-\permanent\countdef \c_syst_last_allocated_attribute = 44 \c_syst_last_allocated_attribute = \c_syst_min_allocated_attribute % not used in context
-
-\permanent\countdef \c_syst_min_counter_value = 125 \c_syst_min_counter_value = -"7FFFFFFF % beware, we use index 125 at the lua end
-\permanent\countdef \c_syst_max_counter_value = 126 \c_syst_max_counter_value = "7FFFFFFF % beware, we use index 126 at the lua end
+%D However, in \LMTX\ we have:
+
+% 0 - 199 : scratch
+% 200 - 254 : internal
+% 255 : page
+% 256 - : user defined
+
+%D Later on, the \type {\c_syst_max_allocated_*} variables will be halfed so that
+%D while local allocators will use the 23* range. So we have plenty of room reserved
+%D for more private ones.
+
+\directlua {tex.magicconstants = status.getconstants()} % this will be reset later on
+
+\permanent\countdef\c_syst_min_allocated_register = 201 \c_syst_min_allocated_register = 256 % can change
+
+\permanent\countdef\c_syst_min_allocated_iohandle = 203 \c_syst_min_allocated_iohandle = 0
+\permanent\countdef\c_syst_max_allocated_iohandle = 204 \c_syst_max_allocated_iohandle = 1023
+
+\permanent\countdef\c_syst_min_allocated_mark = 205 \c_syst_min_allocated_mark = 16 % a few scratch ones
+\permanent\countdef\c_syst_max_allocated_mark = 206 \c_syst_max_allocated_mark = 1024 % max 10K in luametatex anyway
+
+\permanent\countdef\c_syst_min_allocated_attribute = 207 \c_syst_min_allocated_attribute = 1024 % 0-1023 : private
+\permanent\countdef\c_syst_max_allocated_attribute = 208 \c_syst_min_allocated_attribute = \directlua{tex.write(tex.magicconstants.max_attribute_register_index)} % 65535 % no allocator, managed differently
+
+\permanent\countdef\c_syst_max_allocated_count = 211 \c_syst_max_allocated_count = \directlua{tex.write(tex.magicconstants.max_int_register_index)} % 65535 % is adapted later on
+\permanent\countdef\c_syst_max_allocated_dimen = 212 \c_syst_max_allocated_dimen = \directlua{tex.write(tex.magicconstants.max_dimen_register_index)} % idem
+\permanent\countdef\c_syst_max_allocated_skip = 213 \c_syst_max_allocated_skip = \directlua{tex.write(tex.magicconstants.max_glue_register_index)} % idem
+\permanent\countdef\c_syst_max_allocated_muskip = 214 \c_syst_max_allocated_muskip = \directlua{tex.write(tex.magicconstants.max_mu_glue_register_index)} % idem
+\permanent\countdef\c_syst_max_allocated_box = 215 \c_syst_max_allocated_box = \directlua{tex.write(tex.magicconstants.max_box_register_index)} % idem
+\permanent\countdef\c_syst_max_allocated_toks = 216 \c_syst_max_allocated_toks = \directlua{tex.write(tex.magicconstants.max_toks_register_index)} % idem
+\permanent\countdef\c_syst_max_allocated_read = 217 \c_syst_max_allocated_read = \c_syst_max_allocated_iohandle
+\permanent\countdef\c_syst_max_allocated_write = 218 \c_syst_max_allocated_write = \c_syst_max_allocated_iohandle
+
+\permanent\countdef\c_syst_last_allocated_count = 221 \c_syst_last_allocated_count = \c_syst_min_allocated_register
+\permanent\countdef\c_syst_last_allocated_dimen = 222 \c_syst_last_allocated_dimen = \c_syst_min_allocated_register
+\permanent\countdef\c_syst_last_allocated_skip = 223 \c_syst_last_allocated_skip = \c_syst_min_allocated_register
+\permanent\countdef\c_syst_last_allocated_muskip = 224 \c_syst_last_allocated_muskip = \c_syst_min_allocated_register
+\permanent\countdef\c_syst_last_allocated_box = 225 \c_syst_last_allocated_box = \c_syst_min_allocated_register
+\permanent\countdef\c_syst_last_allocated_toks = 226 \c_syst_last_allocated_toks = \c_syst_min_allocated_register
+\permanent\countdef\c_syst_last_allocated_read = 227 \c_syst_last_allocated_read = \c_syst_min_allocated_iohandle
+\permanent\countdef\c_syst_last_allocated_write = 228 \c_syst_last_allocated_write = \c_syst_min_allocated_iohandle
+\permanent\countdef\c_syst_last_allocated_marks = 229 \c_syst_last_allocated_marks = \c_syst_min_allocated_mark
+
+\permanent\countdef\c_syst_min_counter_value = 253 \c_syst_min_counter_value = -"7FFFFFFF
+\permanent\countdef\c_syst_max_counter_value = 254 \c_syst_max_counter_value = "7FFFFFFF
\immutable\integerdef\zerocount 0
\immutable\integerdef\plusone 1
@@ -250,6 +344,29 @@
\immutable\integerdef\statuswrite \minusone
+\immutable\dimensiondef\zeropoint 0pt
+
+%D These alternatives avoid the indirect references. Don't use these for generic
+%D code because one never knows what happens elsewhere.
+
+% \permanent\protected\def\newinteger #1{\ifdefined#1\else\integerdef #1\fi\zerocount} % can be relax
+% \permanent\protected\def\newdimension #1{\ifdefined#1\else\dimensiondef #1\fi\zeropoint}
+% \permanent\protected\def\newgluespec #1{\ifdefined#1\else\gluespecdef #1\fi\zeropoint}
+% \permanent\protected\def\newmugluespec#1{\ifdefined#1\else\mugluespecdef#1\fi\zeropoint}
+
+\permanent\protected\def\newinteger #1{\integerdef #1\zerocount}
+\permanent\protected\def\newdimension #1{\dimensiondef #1\zeropoint}
+\permanent\protected\def\newgluespec #1{\gluespecdef #1\zeropoint}
+\permanent\protected\def\newmugluespec#1{\mugluespecdef#1\zeropoint}
+
+%D The aliasing here is tricky: we need to make sure the alias is not let to the
+%D current value but behaves dynamic. Instead we can use just \newcount, unless of
+%D course I introduce a reference in the engine which is not more efficient so then
+%D one can as well use registers.
+
+\protected\def\aliasinteger #1#2{\untraced\protected\def#1{#2}}% name parent
+\protected\def\aliasdimension#1#2{\untraced\protected\def#1{#2}}% name parent
+
%D So, effectively we start allocating from 256 and upwards. The inserts sit in the
%D range 128 upto 254. Page numbers use the counters 0 upto 9 and the pagebox is
%D 255. Users can use the scratch registers upto 31 without problem but all others
@@ -257,27 +374,23 @@
\permanent\let\wlog\gobbleoneargument % Let's get rid of this one.
-%D The allocators share a common helper macro.
+%D The allocators share a common helper macro. Marks might be changed to work in lower
+%D regions and we always assumes allocation.
-\permanent\protected\def\newcount {\syst_basics_allocate\c_syst_last_allocated_count \count \countdef \c_syst_max_allocated_register}
-\permanent\protected\def\newdimen {\syst_basics_allocate\c_syst_last_allocated_dimen \dimen \dimendef \c_syst_max_allocated_register}
-\permanent\protected\def\newskip {\syst_basics_allocate\c_syst_last_allocated_skip \skip \skipdef \c_syst_max_allocated_register}
-\permanent\protected\def\newmuskip {\syst_basics_allocate\c_syst_last_allocated_muskip \muskip \muskipdef \c_syst_max_allocated_register}
-\permanent\protected\def\newbox {\syst_basics_allocate\c_syst_last_allocated_box \box \integerdef\c_syst_max_allocated_register}
-\permanent\protected\def\newtoks {\syst_basics_allocate\c_syst_last_allocated_toks \toks \toksdef \c_syst_max_allocated_register}
-\permanent\protected\def\newread {\syst_basics_allocate\c_syst_last_allocated_read \read \integerdef\c_syst_max_allocated_read}
-\permanent\protected\def\newwrite {\syst_basics_allocate\c_syst_last_allocated_write \write \integerdef\c_syst_max_allocated_write}
-\permanent\protected\def\newmarks {\syst_basics_allocate\c_syst_last_allocated_marks \marks \integerdef\c_syst_max_allocated_register}
-\permanent\protected\def\newinsert {\syst_basics_allocate\c_syst_last_allocated_insertion\insert \chardef \c_syst_max_allocated_insert}
-\permanent\protected\def\newlanguage{\syst_basics_allocate\c_syst_last_allocated_language \language\integerdef\c_syst_max_allocated_language} % not needed in context
-\permanent\protected\def\newfamily {\syst_basics_allocate\c_syst_last_allocated_family \fam \integerdef\c_syst_max_allocated_family} % not needed in context
-
-\aliased\let\newfam\newfamily
+\permanent\protected\def\newcount {\syst_basics_allocate\c_syst_last_allocated_count \count \countdef \c_syst_max_allocated_count}
+\permanent\protected\def\newdimen {\syst_basics_allocate\c_syst_last_allocated_dimen \dimen \dimendef \c_syst_max_allocated_dimen}
+\permanent\protected\def\newskip {\syst_basics_allocate\c_syst_last_allocated_skip \skip \skipdef \c_syst_max_allocated_skip}
+\permanent\protected\def\newmuskip{\syst_basics_allocate\c_syst_last_allocated_muskip\muskip\muskipdef \c_syst_max_allocated_muskip}
+\permanent\protected\def\newbox {\syst_basics_allocate\c_syst_last_allocated_box \box \integerdef\c_syst_max_allocated_box}
+\permanent\protected\def\newtoks {\syst_basics_allocate\c_syst_last_allocated_toks \toks \toksdef \c_syst_max_allocated_toks}
+\permanent\protected\def\newread {\syst_basics_allocate\c_syst_last_allocated_read \read \integerdef\c_syst_max_allocated_read}
+\permanent\protected\def\newwrite {\syst_basics_allocate\c_syst_last_allocated_write \write \integerdef\c_syst_max_allocated_write}
+\permanent\protected\def\newmarks {\syst_basics_allocate\c_syst_last_allocated_marks \marks \integerdef\c_syst_max_allocated_mark}
\firstvalidlanguage \plusone % so zero is ignored in hyphenation, this might become the default
-% Watch out, for the moment we disable the check for already being defined
-% later we will revert this but first all chardefs must be replaced.
+%D Watch out, for the moment we disable the check for already being defined later we
+%D will revert this but first all chardefs must be replaced.
\permanent\protected\def\setconstant {}
\permanent\protected\def\setconstantvalue#1#2{\csname#1\endcsname\numexpr#2\relax}
@@ -286,11 +399,13 @@
{\ifrelax#1%
%\writestatus{!!!!!!!!!!}{\string #1 => RELAX}%
\unletfrozen#1%
- \newcount#1%
+ % \newcount#1%
+ \newinteger#1%
\orelse\ifdefined#1%
%\writestatus{!!!!!!!!!!}{\string #1 => DEFINED}%
\else
- \newcount#1%
+ % \newcount#1%
+ \newinteger#1%
\fi}
\permanent\protected\def\setnewconstant#1{\newconstant#1#1}
@@ -303,16 +418,31 @@
%D consecutive ranges more easily, for instance if for \MPLIB\ we want to allocate a
%D continuous range of boxes. It also permits us to do a proper upward allocation
%D for inserts. The current code evolved from code that dealt with older engines but
-%D as all engines now provide many registers we removed all traces.
+%D as all engines now provide many registers we removed all traces. If you ever run
+%D into the \MKII\ \type {mptopdf} code, you'll notice that some register magic was
+%D needed to fit into existing macro packages. The same is true for \PICTEX\ that we
+%D used in (generic) \PPCHTEX.
\ifdefined\writestatus \else
%\protected\def\writestatus#1#2{\immediate\write\statuswrite{#1: #2}}
\frozen\protected\def\writestatus#1#2{\message{#1: #2}}
\fi
+%D The above command will normally hook into the interface commands and is a
+%D protected command. We also have an \type {\diagnostic} predefined which is an
+%D expandable command:
+%D
+%D \starttyping
+%D test \diagnostic {here 1} test
+%D test \diagnostic[2] {here 2} test
+%D test \diagnostic[.05]{here 3} test
+%D \stoptyping
+%D
+%D The optional argument triggers a sleep in seconds.
+
\def\syst_basics_allocate_yes#1#2#3#4#5% last class method max name
{\ifnum#1<#4\relax
- \global\advance#1\plusone
+ \global\advanceby#1\plusone
\permanent\global#3#5=#1\relax
\else
\writestatus{warning}{no room for \string#2\space \string#5\space (max: \number#4)}%
@@ -334,9 +464,6 @@
%D Since the number of chars exceed 256 now, we can use \type {\chardef} instead of
%D the more limited \type {\mathchardef}.
-% \protected\def\newbox {\syst_basics_allocate\c_syst_last_allocated_box \box \chardef\c_syst_max_allocated_register}
-% \protected\def\newmarks{\syst_basics_allocate\c_syst_last_allocated_marks\marks\chardef\c_syst_max_allocated_register}
-
%D Attributes are something very \LUATEX. In \CONTEXT\ you are not supposed to use
%D the attributes directly but always allocate then first. For instance attribute~0
%D is reserved for special purposes (this might change). Attributes in the range
@@ -344,7 +471,7 @@
\immutable\integerdef\attributeunsetvalue\c_syst_min_counter_value % used to be \minusone
-% \permanent\protected\def\newattribute{\syst_basics_allocate\c_syst_last_allocated_attribute\attribute\attributedef\c_syst_max_allocated_register}
+% \permanent\protected\def\newattribute{\syst_basics_allocate\c_syst_last_allocated_attribute\attribute\attributedef\c_syst_max_allocated_attribute}
% %D Not used by \CONTEXT\ but for instance \PICTEX\ needs it. It's a trick to force
% %D strings instead of tokens that take more memory.
@@ -361,30 +488,30 @@
%D some available. The private ones are used in cases where we don't want to
%D intrude on normal scratch ones.
-\newcount \scratchcounter \newcount \globalscratchcounter \newcount \privatescratchcounter
-\newdimen \scratchdimen \newdimen \globalscratchdimen \newdimen \privatescratchdimen
-\newskip \scratchskip \newskip \globalscratchskip \newskip \privatescratchskip
-\newmuskip\scratchmuskip \newmuskip\globalscratchmuskip \newmuskip\privatescratchmuskip
-\newtoks \scratchtoks \newtoks \globalscratchtoks \newtoks \privatescratchtoks
-\newbox \scratchbox \newbox \globalscratchbox \newbox \privatescratchbox
-
-\newcount\scratchcounterone \newcount\scratchcountertwo \newcount\scratchcounterthree
-\newdimen \scratchdimenone \newdimen \scratchdimentwo \newdimen \scratchdimenthree
-\newskip \scratchskipone \newskip \scratchskiptwo \newskip \scratchskipthree
-\newmuskip\scratchmuskipone \newmuskip\scratchmuskiptwo \newmuskip\scratchmuskipthree
-\newtoks \scratchtoksone \newtoks \scratchtokstwo \newtoks \scratchtoksthree
-\newbox \scratchboxone \newbox \scratchboxtwo \newbox \scratchboxthree
-
-\newcount\scratchcounterfour \newcount\scratchcounterfive \newcount\scratchcountersix
-\newdimen \scratchdimenfour \newdimen \scratchdimenfive \newdimen \scratchdimensix
-\newskip \scratchskipfour \newskip \scratchskipfive \newskip \scratchskipsix
-\newmuskip\scratchmuskipfour \newmuskip\scratchmuskipfive \newmuskip\scratchmuskipsix
-\newtoks \scratchtoksfour \newtoks \scratchtoksfive \newtoks \scratchtokssix
-\newbox \scratchboxfour \newbox \scratchboxfive \newbox \scratchboxsix
-
-\newcount\globalscratchcounterone
-\newcount\globalscratchcountertwo
-\newcount\globalscratchcounterthree
+\newinteger \scratchcounter \newinteger \globalscratchcounter \newinteger \privatescratchcounter
+\newdimension\scratchdimen \newdimension\globalscratchdimen \newdimension\privatescratchdimen
+\newgluespec \scratchskip \newgluespec \globalscratchskip \newgluespec \privatescratchskip
+\newmuskip \scratchmuskip \newmuskip \globalscratchmuskip \newmuskip \privatescratchmuskip
+\newtoks \scratchtoks \newtoks \globalscratchtoks \newtoks \privatescratchtoks
+\newbox \scratchbox \newbox \globalscratchbox \newbox \privatescratchbox
+
+\newinteger \scratchcounterone \newinteger \scratchcountertwo \newinteger \scratchcounterthree
+\newdimension\scratchdimenone \newdimension\scratchdimentwo \newdimension\scratchdimenthree
+\newgluespec \scratchskipone \newgluespec \scratchskiptwo \newgluespec \scratchskipthree
+\newmuskip \scratchmuskipone \newmuskip \scratchmuskiptwo \newmuskip \scratchmuskipthree
+\newtoks \scratchtoksone \newtoks \scratchtokstwo \newtoks \scratchtoksthree
+\newbox \scratchboxone \newbox \scratchboxtwo \newbox \scratchboxthree
+
+\newinteger \scratchcounterfour\newinteger \scratchcounterfive \newinteger \scratchcountersix
+\newdimension\scratchdimenfour \newdimension\scratchdimenfive \newdimension\scratchdimensix
+\newgluespec \scratchskipfour \newgluespec \scratchskipfive \newgluespec \scratchskipsix
+\newmuskip \scratchmuskipfour \newmuskip \scratchmuskipfive \newmuskip \scratchmuskipsix
+\newtoks \scratchtoksfour \newtoks \scratchtoksfive \newtoks \scratchtokssix
+\newbox \scratchboxfour \newbox \scratchboxfive \newbox \scratchboxsix
+
+\newinteger\globalscratchcounterone
+\newinteger\globalscratchcountertwo
+\newinteger\globalscratchcounterthree
\mutable\let\scratchmacro \relax
\mutable\let\scratchmacroone\relax
@@ -393,56 +520,57 @@
%D \macros
%D {tempstring, scratchstring*}
-\mutable\let\tempstring \empty
+\mutable\lettonothing\tempstring
-\mutable\let\scratchstring \empty
-\mutable\let\scratchstringone\empty
-\mutable\let\scratchstringtwo\empty
+\mutable\lettonothing\scratchstring
+\mutable\lettonothing\scratchstringone
+\mutable\lettonothing\scratchstringtwo
%D \macros
%D {scratchwidth, scratchheight, scratchdepth, scratchoffset, scratchdistance}
%D
%D A few more scratch dimensions:
-\newdimen\scratchwidth
-\newdimen\scratchheight
-\newdimen\scratchdepth
-\newdimen\scratchtotal
+\newdimension\scratchwidth
+\newdimension\scratchheight
+\newdimension\scratchdepth
+\newdimension\scratchitalic
+\newdimension\scratchtotal
-\newdimen\scratchoffset
-\newdimen\scratchleftoffset
-\newdimen\scratchrightoffset
-\newdimen\scratchtopoffset
-\newdimen\scratchbottomoffset
+\newdimension\scratchoffset
+\newdimension\scratchleftoffset
+\newdimension\scratchrightoffset
+\newdimension\scratchtopoffset
+\newdimension\scratchbottomoffset
-\newdimen\scratchdistance
+\newdimension\scratchdistance
-\newdimen\scratchhsize
-\newdimen\scratchvsize
+\newdimension\scratchhsize
+\newdimension\scratchvsize
-\newdimen\scratchxoffset
-\newdimen\scratchyoffset
-\newdimen\scratchhoffset
-\newdimen\scratchvoffset
+\newdimension\scratchxoffset
+\newdimension\scratchyoffset
+\newdimension\scratchhoffset
+\newdimension\scratchvoffset
-\newdimen\scratchxposition
-\newdimen\scratchyposition
+\newdimension\scratchxposition
+\newdimension\scratchyposition
-\newcount\scratchnx
-\newcount\scratchny
+\newinteger\scratchnx
+\newinteger\scratchny
-\newcount\scratchmx
-\newcount\scratchmy
+\newinteger\scratchmx
+\newinteger\scratchmy
-\newcount\scratchmin
-\newcount\scratchmax
+\newinteger\scratchmin
+\newinteger\scratchmax
-\newcount\scratchunicode
+\newinteger\scratchunicode
-\newdimen\scratchleftskip
-\newdimen\scratchrightskip
-\newdimen\scratchtopskip
-\newdimen\scratchbottomskip
+\newdimension\scratchleftskip
+\newdimension\scratchrightskip
+\newdimension\scratchtopskip
+\newdimension\scratchbottomskip
%D More allocations:
@@ -458,7 +586,7 @@
\immutable\integerdef \maxcount 2147483647
-\immutable\dimensiondef \zeropoint 0pt
+%immutable\dimensiondef \zeropoint 0pt
\immutable\dimensiondef \onepoint 1pt
\immutable\dimensiondef \halfapoint 0.5pt
\immutable\dimensiondef \maxdimen 16383.99999pt % 1073741823sp
@@ -466,7 +594,13 @@
\immutable\dimensiondef \scaledpoint 1sp
\immutable\dimensiondef \thousandpoint 1000pt
-\immutable\gluespecdef \zeroskip 0pt plus 0pt minus 0pt
+\immutable\gluespecdef \zeroskip \zeropoint plus \zeropoint minus \zeropoint
+\immutable\gluespecdef \centeringskip \zeropoint plus \thousandpoint minus \thousandpoint
+\immutable\gluespecdef \stretchingskip \zeropoint plus \thousandpoint
+\immutable\gluespecdef \shrinkingskip \zeropoint minus \thousandpoint
+\immutable\gluespecdef \centeringfillskip \zeropoint plus 1fill minus 1fill
+\immutable\gluespecdef \stretchingfillskip \zeropoint plus 1fill
+\immutable\gluespecdef \shrinkingfillskip \zeropoint minus 1fill
\immutable\mugluespecdef \zeromuskip 0mu
\immutable\mugluespecdef \onemuskip 1mu
@@ -512,6 +646,11 @@
\immutable\integerdef\medcard 32768
\immutable\integerdef\maxcard 65536 % pdftex has less mathchars
\immutable\integerdef\maxcardminusone 65535
+\immutable\integerdef\maxiterator "FFFFF
+
+\immutable\integerdef\binaryshiftedten 1024
+\immutable\integerdef\binaryshiftedtwenty 1048576
+\immutable\integerdef\binaryshiftedthirty 1073741824
%D \macros
%D {doubleexpandafter,tripleexpandafter,expanded,startexpanded}
@@ -535,9 +674,15 @@
\aliased\let\leavevmode\unvoidbox % we prefer to use \dontleavehmode
%D \macros
-%D {dontcomplain}
+%D {dontcomplain,lessboxtracing}
%D
-%D We need this one soon:
+%D We need this one soon. The second one shows less box details (because that actually
+%D slows down noticeably due to the more extensive details in node content.
+
+% With \showboxdepth\maxcount and \showboxbreadth\maxcount the second one is way slower:
+%
+% \testfeatureonce{10}{\setbox\scratchbox\vbox {\samplefile{tufte}}} \elapsedtime\par
+% \testfeatureonce{10}{\setbox\scratchbox\vbox to 10cm{\samplefile{tufte}}} \elapsedtime\par
\permanent\protected\def\dontcomplain
{\hbadness\plustenthousand
@@ -545,8 +690,20 @@
\hfuzz \maxdimen
\vfuzz \maxdimen}
-%D Some expected plain variants follow. We don't reuse registers because we
-%D don't want clashes.
+\permanent\protected\def\noboxtracing
+ {\showboxdepth \zerocount
+ \showboxbreadth\zerocount}
+
+\permanent\protected\def\lessboxtracing
+ {\showboxdepth \plusfive
+ \showboxbreadth\plusten}
+
+\permanent\protected\def\moreboxtracing
+ {\showboxbreadth\maxcount
+ \showboxdepth \maxcount}
+
+%D Some expected plain variants follow. We don't reuse registers because we don't
+%D want clashes. These will go away and packages that need them have to define them.
\aliased\let\p@ \onepoint
\aliased\let\m@ne \minusone
@@ -621,28 +778,20 @@
\newif\ifscratchconditionone
\newif\ifscratchconditiontwo
+%D This used to be a protected definition with a \type {dimexpr} but now we have
+%D it natively (less tracking noise).
+
\aliased\let\htdp\boxtotal
-%D A few shortcuts:
+%D A few shortcuts (gone by now):
% \permanent\protected\def\udef {\protected\def }
% \permanent\protected\def\ugdef{\protected\gdef}
% \permanent\protected\def\uedef{\protected\edef}
% \permanent\protected\def\uxdef{\protected\xdef}
-% For now:
-
-\permanent\protected\def\defUmathtopaccent #1#2#3#4{\global\immutable\protected\def#1{\Umathaccent "#2 "#3 "#4 }}
-\permanent\protected\def\defUmathbotaccent #1#2#3#4{\global\immutable\protected\def#1{\Umathbotaccent "#2 "#3 "#4 }}
-\permanent\protected\def\defUdelimiterover #1#2#3#4{\global\immutable\protected\def#1{\Udelimiterover "#2 "#3 }}
-\permanent\protected\def\defUdelimiterunder #1#2#3#4{\global\immutable\protected\def#1{\Udelimiterunder "#2 "#3 }}
-\permanent\protected\def\defUdelimiter #1#2#3#4{\global\immutable\protected\def#1{\Udelimiter "#2 "#3 "#4 }}
-\permanent\protected\def\defUradical #1#2#3{\global\immutable\protected\def#1{\Uradical "#2 "#3 }}
-\permanent\protected\def\defUroot #1#2#3{\global\immutable\protected\def#1{\Uroot "#2 "#3 }}
-\permanent\protected\def\defUmathchar #1#2#3#4{\global\immutable\Umathchardef #1 "#2 "#3 "#4 }
-
%D For a while we keep the following, as systems like tikz need it. Best not use
-%D that one \CONTEXT.
+%D that one \CONTEXT. It will probably move to the tikz loader.
\aliased\let\active\activecatcode
@@ -672,29 +821,36 @@
% no longer \errorstopmode cf. plain tex 3.141592653
\permanent\protected\def\tracingall
- {\tracingonline \plusone
- \tracingcommands \plusthree
- \tracingmacros \plustwo
+ {\tracingcommands \plusfour % > 3: show mode change independent
+ \tracingmacros \plusthree % > 2: obey \untraced
\tracingoutput \plusone
\tracingpages \plusone
- \tracingparagraphs\plusone
+ \tracingparagraphs\plustwo
\tracingrestores \plusone
\tracinggroups \plusone
\tracingifs \plusone
- \tracingnesting \plustwo
+ \tracingnesting \plusthree
\tracingassigns \plustwo
\tracingmath \plusone
- \tracingalignments\plusone
+ \tracingalignments\plustwo % > 1: also show preamble
+ \showboxbreadth \maxcount
+ \showboxdepth \maxcount
+ \tracingonline \plusone}
+
+\permanent\protected\def\tracingless
+ {\tracingall
+ \tracingoutput \zerocount
\showboxbreadth \maxcount
- \showboxdepth \maxcount}
+ \showboxdepth \plusten}
\permanent\protected\def\loggingall
{\tracingall
\tracingonline \zerocount}
\permanent\protected\def\tracingnone
- {\showboxdepth \plusthree
- \showboxbreadth \plusfive
+ {\tracingonline \zerocount
+ \showboxdepth \plusfive % lessboxtracing
+ \showboxbreadth \plusten
\tracingalignments\zerocount
\tracingmath \zerocount
\tracingassigns \zerocount
@@ -711,8 +867,10 @@
%D When we want to see a box we can as well show all of it.
-\showboxdepth \maxdimen
-\showboxbreadth\maxdimen
+% \showboxdepth \maxcount
+% \showboxbreadth\maxcount
+
+\lessboxtracing
%D Just for tracing purposes we set:
@@ -806,7 +964,7 @@
\aliased\let\newconditional\setfalse
\aliased\let\ifconditional \ifcase
-\aliased\let\then\relax % so that we can say: \ifnum1>2\then -)
+\permanent\protected\lettonothing\then % so that we can say: \ifnum1>2\then -)
\permanent\def\truecondition {\iftrue}
\permanent\def\falsecondition{\iffalse}
@@ -824,7 +982,7 @@
%D {\let} (the only advantage is that we often give them names with some
%D prefix.
-\permanent\protected\def\newmacro #1{\mutable\let#1\empty}
+\permanent\protected\def\newmacro #1{\mutable\lettonothing#1}
\permanent\protected\def\setnewmacro#1{\mutable\let#1}
\permanent\protected\def\newfraction#1{\mutable\let#1\!!plusone}
@@ -846,7 +1004,8 @@
%D \ifzeropt \somedimen ... \else ... \fi
%D \stoptyping
-\aliased\let\ifzeropt\ifcase
+\aliased\let\ifzeropt\ifzerodim % was \let\ifzeropt\ifcase
+\aliased\let\ifzero \ifzeronum % was \let\ifzeropt\ifcase
% these token list helpers might move to syst-aux.mkiv
%
@@ -992,16 +1151,15 @@
%D The following registers are kind of standard and (for the moment) we define
%D them here. This might change.
-\newskip \bigskipamount \bigskipamount = 12pt plus 4pt minus 4pt
-\newskip \medskipamount \medskipamount = 6pt plus 2pt minus 2pt
-\newskip \smallskipamount \smallskipamount = 3pt plus 1pt minus 1pt
+\newgluespec \bigskipamount \bigskipamount = 12pt plus 4pt minus 4pt
+\newgluespec \medskipamount \medskipamount = 6pt plus 2pt minus 2pt
+\newgluespec \smallskipamount \smallskipamount = 3pt plus 1pt minus 1pt
\baselineskip = 12pt
\lineskip = 1pt
\lineskiplimit = 0pt
-%D Sometimes kerns make more sense than glue but we need to be in the
-%D right mode:
+%D Sometimes kerns make more sense than glue but we need to be in the right mode:
\permanent\protected\def\vkern {\ifhmode\par \fi\kern}
\permanent\protected\def\hkern {\ifvmode\dontleavehmode\fi\kern}
@@ -1009,19 +1167,19 @@
\permanent\protected\def\vpenalty{\ifhmode\par \fi\penalty}
\permanent\protected\def\hpenalty{\ifvmode\dontleavehmode\fi\penalty}
-%D Again a few kind-of-extensions the core. These come from plain \TEX\ but
-%D are probably not used in \CONTEXT.
+%D Again a few kind-of-extensions the core. These come from plain \TEX\ but are
+%D probably not used in \CONTEXT.
-\newskip \hideskip \hideskip = -1000pt plus 1fill
-\newskip \centering \centering = 0pt plus 1000pt minus 1000pt
+\newgluespec \hideskip \hideskip = -1000pt plus 1fill % obsolete
+\newgluespec \centering \centering = 0pt plus 1000pt minus 1000pt % obsolete
-\permanent\def\hidewidth % for alignment entries that can stick out
- {\hskip\hideskip}
-
-\permanent\def\ialign % initialized \halign
- {\everycr\emptytoks
- \tabskip\zeroskip
- \halign}
+% \permanent\def\hidewidth % for alignment entries that can stick out
+% {\hskip\hideskip}
+%
+% \permanent\def\ialign % initialized \halign, to be used grouped!
+% {\everycr\emptytoks
+% \tabskip\zeroskip
+% \halign}
\newcount \mscount
@@ -1032,7 +1190,7 @@
\mscount#1\relax
\loop
\ifnum\mscount>\plusone
- \spanomit \advance\mscount\minusone
+ \spanomit \advanceby\mscount\minusone
\repeat}
\let\nopdfcompression \relax % later
@@ -1089,14 +1247,15 @@
{\ifcsname ??#1\endcsname
\immediate\write\statuswrite{fatal error: duplicate system namespace '#1'}%
\else
- \global\advance\c_syst_helpers_n_of_namespaces\plusone
- \immutable\edefcsname ??#1\endcsname{\v_interfaces_prefix_template_system}%
+ \global\advanceby\c_syst_helpers_n_of_namespaces\plusone
+ \immutable\cdefcsname ??#1\endcsname{\v_interfaces_prefix_template_system}%
\fi}
%D It makes more sense to have these here:
\aliased\let\normalsuperscript \Usuperscript
\aliased\let\normalsubscript \Usubscript
+\aliased\let\normalprimescript \Uprimescript
\aliased\let\normalnosuperscript\Unosuperscript
\aliased\let\normalnosubscript \Unosubscript
\aliased\let\normalstartimath \Ustartmath
@@ -1110,19 +1269,14 @@
%D For a while we will keep these useless numbers as for instance tikz checks for them:
-\immutable\integerdef\eTeXversion 2
-\immutable\def \eTeXrevision {2}
-
-%D Experiment:
+\immutable\integerdef\eTeXversion 2
+\immutable\def \eTeXrevision {.2} % there is a funny period here
-\glyphoptions"80 % replaces \glyphdimensionsmode=1
+% %D Just in case users use this (or some styles still have it):
-%D Just in case users use this:
-
-\aliased\let\immediateassign \immediate
\aliased\let\immediateassigned\localcontrolled
-%D Needed:
+%D Needed (maybe no longer the multiple next ones):
\mutable\let\nexttoken \relax
\mutable\let\next \relax
@@ -1135,18 +1289,15 @@
% \mutable\let\par\par
% \popoverloadmode
-%D Also here:
-
-\listcallbackmode\plusone
-
%D Often used as cs key:
-\mutable\let\on \empty
-\mutable\let\of \empty
-\mutable\let\and \empty
-\mutable\let\with\empty
-\mutable\let\nop \empty % used often
-\mutable\let\yes \empty % used often
+\mutable\let\on \relax % \empty
+\mutable\let\of \relax % \empty
+\mutable\let\and \relax % \empty
+\mutable\let\with\relax % \empty
+
+\mutable\lettonothing\nop % used often
+\mutable\lettonothing\yes % used often
%D Another experiment:
@@ -1161,7 +1312,7 @@
{\ifflags#2\permanent\permanent\fi % the rest is taken with the copy
\def#1{\syst_suggested_alias#1#2}}
-% A few traditional allocations (these might go):
+% A few traditional allocations (these might go too):
% \countdef \count@ 255 % hm, used in \newif .. todo: replace it there
% \dimendef \dimen@ 0
@@ -1199,53 +1350,49 @@
%D \stoptyping
%D
%D There is a little extra overhead in the overload protection but not that much.
-%D Instead of:
-
-% \newcount\c_syst_local_count \c_syst_local_count \c_syst_max_allocated_register
-% \newcount\c_syst_local_dimen \c_syst_local_dimen \c_syst_local_count
-% \newcount\c_syst_local_skip \c_syst_local_skip \c_syst_local_count
-% \newcount\c_syst_local_muskip\c_syst_local_muskip\c_syst_local_count
-% \newcount\c_syst_local_box \c_syst_local_box \c_syst_local_count
-% \newcount\c_syst_local_toks \c_syst_local_toks \c_syst_local_count
-
-%D We do this:
-
-\permanent\countdef\c_syst_local_count = 72 \c_syst_local_count = \c_syst_max_allocated_register
-\permanent\countdef\c_syst_local_dimen = 73 \c_syst_local_dimen = \c_syst_local_count
-\permanent\countdef\c_syst_local_skip = 74 \c_syst_local_skip = \c_syst_local_count
-\permanent\countdef\c_syst_local_muskip = 75 \c_syst_local_muskip = \c_syst_local_count
-\permanent\countdef\c_syst_local_box = 76 \c_syst_local_box = \c_syst_local_count
-\permanent\countdef\c_syst_local_toks = 77 \c_syst_local_toks = \c_syst_local_count
-\permanent\countdef\c_syst_local_read = 78 \c_syst_local_read = \c_syst_local_count
-\permanent\countdef\c_syst_local_write = 79 \c_syst_local_write = \c_syst_local_count
-% We should have used \c_syst_local_dimen = \numexpr \c_syst_max_allocated_register +
-% 1\relax, but we do this instead (it's no problem loosing a few registers).
-
-\c_syst_max_allocated_register \numexpr\c_syst_max_allocated_register:2\relax % floor
+% integerdef is local
+
+\permanent\countdef\c_syst_local_count = 231 \c_syst_local_count = \c_syst_max_allocated_count
+\permanent\countdef\c_syst_local_dimen = 232 \c_syst_local_dimen = \c_syst_max_allocated_dimen
+\permanent\countdef\c_syst_local_skip = 233 \c_syst_local_skip = \c_syst_max_allocated_skip
+\permanent\countdef\c_syst_local_muskip = 234 \c_syst_local_muskip = \c_syst_max_allocated_muskip
+\permanent\countdef\c_syst_local_box = 235 \c_syst_local_box = \c_syst_max_allocated_box
+\permanent\countdef\c_syst_local_toks = 236 \c_syst_local_toks = \c_syst_max_allocated_toks
+\permanent\countdef\c_syst_local_read = 237 \c_syst_local_read = \c_syst_max_allocated_read
+\permanent\countdef\c_syst_local_write = 238 \c_syst_local_write = \c_syst_max_allocated_write
+
+\c_syst_max_allocated_count \numexpr\c_syst_max_allocated_count :2\relax % floor
+\c_syst_max_allocated_dimen \numexpr\c_syst_max_allocated_dimen :2\relax % floor
+\c_syst_max_allocated_skip \numexpr\c_syst_max_allocated_skip :2\relax % floor
+\c_syst_max_allocated_muskip \numexpr\c_syst_max_allocated_muskip :2\relax % floor
+\c_syst_max_allocated_toks \numexpr\c_syst_max_allocated_toks :2\relax % floor
+\c_syst_max_allocated_box \numexpr\c_syst_max_allocated_box :2\relax % floor
+\c_syst_max_allocated_read \numexpr\c_syst_max_allocated_read :2\relax % floor
+\c_syst_max_allocated_write \numexpr\c_syst_max_allocated_write :2\relax % floor
\permanent\protected\def\syst_local_overflow#1#2{\writestatus\m!system{no room for local #1 \string#2}\wait}
-\permanent\protected\def\setnewlocaldimen#1%
- {\ifnum\c_syst_local_dimen>\c_syst_max_allocated_register
- \advance\c_syst_local_dimen\minusone\dimendef#1\c_syst_local_dimen
+\permanent\protected\def\setnewlocalcount#1%
+ {\ifnum\c_syst_local_count>\c_syst_max_allocated_count
+ \advanceby\c_syst_local_count\minusone
+ \overloaded\frozen\countdef#1\c_syst_local_count
\else
- \syst_local_overflow_dimen#1%
+ \syst_local_overflow_count#1%
\fi
#1}
-\permanent\protected\def\setnewlocalcount#1%
- {\ifnum\c_syst_local_count>\c_syst_max_allocated_register
- \advance\c_syst_local_count\minusone
- \overloaded\frozen\countdef#1\c_syst_local_count
+\permanent\protected\def\setnewlocaldimen#1%
+ {\ifnum\c_syst_local_dimen>\c_syst_max_allocated_dimen
+ \advanceby\c_syst_local_dimen\minusone\dimendef#1\c_syst_local_dimen
\else
- \syst_local_overflow_count#1%
+ \syst_local_overflow_dimen#1%
\fi
#1}
\permanent\protected\def\setnewlocalskip#1%
- {\ifnum\c_syst_local_skip>\c_syst_max_allocated_register
- \advance\c_syst_local_skip\minusone
+ {\ifnum\c_syst_local_skip>\c_syst_max_allocated_skip
+ \advanceby\c_syst_local_skip\minusone
\overloaded\frozen\skipdef#1\c_syst_local_skip
\else
\syst_local_overflow_skip#1%
@@ -1253,8 +1400,8 @@
#1}
\permanent\protected\def\setnewlocalmuskip#1%
- {\ifnum\c_syst_local_muskip>\c_syst_max_allocated_register
- \advance\c_syst_local_muskip\minusone
+ {\ifnum\c_syst_local_muskip>\c_syst_max_allocated_muskip
+ \advanceby\c_syst_local_muskip\minusone
\overloaded\frozen\muskipdef#1\c_syst_local_muskip
\else
\syst_local_overflow_muskip#1%
@@ -1262,8 +1409,8 @@
#1}
\permanent\protected\def\setnewlocaltoks#1%
- {\ifnum\c_syst_local_toks>\c_syst_max_allocated_register
- \advance\c_syst_local_toks\minusone
+ {\ifnum\c_syst_local_toks>\c_syst_max_allocated_toks
+ \advanceby\c_syst_local_toks\minusone
\overloaded\frozen\toksdef#1\c_syst_local_toks
\else
\syst_local_overflow_toks#1%
@@ -1271,8 +1418,8 @@
#1}
\permanent\protected\def\setnewlocalbox#1%
- {\ifnum\c_syst_local_box>\c_syst_max_allocated_register
- \advance\c_syst_local_box\minusone
+ {\ifnum\c_syst_local_box>\c_syst_max_allocated_box
+ \advanceby\c_syst_local_box\minusone
\overloaded\frozen\integerdef#1\c_syst_local_box
\else
\syst_local_overflow_box#1%
@@ -1280,16 +1427,16 @@
\setbox#1}
\permanent\protected\def\newlocalread#1% so no set
- {\ifnum\c_syst_local_read>\c_syst_max_allocated_register
- \advance\c_syst_local_read\minusone
+ {\ifnum\c_syst_local_read>\c_syst_max_allocated_read
+ \advanceby\c_syst_local_read\minusone
\overloaded\frozen\integerdef#1\c_syst_local_read
\else
\syst_local_overflow_read#1%
\fi}
\permanent\protected\def\newlocalwrite#1% so no set
- {\ifnum\c_syst_local_write>\c_syst_max_allocated_register
- \advance\c_syst_local_write\minusone
+ {\ifnum\c_syst_local_write>\c_syst_max_allocated_write
+ \advanceby\c_syst_local_write\minusone
\overloaded\frozen\integerdef#1\c_syst_local_write
\else
\syst_local_overflow_write#1%
@@ -1306,7 +1453,7 @@
\permanent\protected\def\syst_local_overflow_read {\syst_local_overflow {read}}
\permanent\protected\def\syst_local_overflow_write {\syst_local_overflow {write}}
-%D We sacrifice a little performance but save some tokens by not defineing these
+%D We sacrifice a little performance but save some tokens by not defining these
%D completely:
\permanent\protected\def\newlocalcount #1{\setnewlocalcount #1\zerocount }
@@ -1316,4 +1463,36 @@
\permanent\protected\def\newlocaltoks #1{\setnewlocaltoks #1\emptytoks }
\permanent\protected\def\newlocalbox #1{\setnewlocalbox #1\emptybox }
+%D Let's be detailed: grouplevel:inputlevel:catcodetable (bits 1 2 4)
+
+\tracinglevels\plusthree
+
+\permanent\protected\def\tracingcatcodes{\tracinglevels\plusseven}
+
+%D We just report duplicate patterns being ignored:
+
+\tracinghyphenation\plusone
+
+%D Sometimes nicer:
+
+\let\ifexpression\ifnumexpression
+
+%D This will be default:
+
+\autoparagraphmode\plusone % we need at least 1 in order to be able to switch to 2
+%autoparagraphmode\plustwo % because we define two \par delimited macros
+
+%D The same values apply as \type {\shownodedetails}. When set the box is shown in
+%D the the log file but that is pretty slow when we have much detail.
+
+\tracingfullboxes\zerocount
+
+%D We don't do this:
+
+% \setdefaultmathcodes % initializes traditional codes
+
+%D Catch
+
+\ifdefined\mathpunctuation \else \let\mathpunctuation\mathpunct \fi % fixed in 2.10.06
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/syst-lua.lmt b/Master/texmf-dist/tex/context/base/mkxl/syst-lua.lmt
index a89cea852bf..d8e06d4fd2f 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/syst-lua.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/syst-lua.lmt
@@ -15,13 +15,10 @@ local S, C, P, lpegmatch, lpegtsplitat = lpeg.S, lpeg.C, lpeg.P, lpeg.match, lpe
local xmath = xmath or math
local xcomplex = xcomplex or { }
-local scan_next = token.scan_next or token.get_next
-local scan_cmdchr = token.scan_cmdchr_expanded
-local scan_token = token.scan_token
-
-local get_csname = token.get_csname
------ get_macro = token.get_macro
------ put_next = token.put_next
+----- scannext = token.scannext
+local scancmdchr = token.scancmdchrexpanded
+local scantoken = token.scantoken
+local getcsname = token.getcsname
local cmd = tokens.commands
local letter_code = cmd.letter
@@ -224,7 +221,7 @@ do
local w = 0
local r = 1
while true do
- local n, i = scan_cmdchr()
+ local n, i = scancmdchr()
if n == letter_code then
w = w + 1 ; word[w] = utfchar(i)
else
@@ -262,7 +259,7 @@ do
elseif n == char_given_code or n == math_given_code or n == xmath_given_code then
r = r + 1 ; result[r] = i
elseif n == some_item_code then
- local n = get_csname(t)
+ local n = getcsname(t)
if n then
local s = gettex(n)
if s then
@@ -274,7 +271,7 @@ do
unexpected(c)
end
-- elseif n == call_code then
- -- local n = get_csname(t)
+ -- local n = getcsname(t)
-- if n then
-- local s = get_macro(n)
-- if s then
@@ -287,7 +284,7 @@ do
-- end
-- elseif n == the_code or n == convert_code or n == lua_expandable_call_code then
-- put_next(t)
- -- scan_token() -- expands
+ -- scantoken() -- expands
else
unexpected(c)
end
@@ -345,10 +342,10 @@ do
local l = 0
implement {
- name = "openin",
- public = true,
- usage = "value",
- actions = function()
+ name = "openin",
+ public = true,
+ usage = "value",
+ actions = function()
local n = scaninteger()
scankeyword("=")
local s = scanstring(true)
@@ -368,10 +365,10 @@ do
}
implement {
- name = "closein",
- public = true,
- usage = "value",
- actions = function()
+ name = "closein",
+ public = true,
+ usage = "value",
+ actions = function()
local n = scaninteger()
local c = channels[n]
if c then
@@ -391,10 +388,10 @@ do
end
interfaces.implement {
- name = "read",
- public = true,
- usage = "value",
- actions = function(prefix)
+ name = "read",
+ public = true,
+ usage = "value",
+ actions = function(prefix)
local n = scaninteger()
local c = channels[n]
if scankeyword("line") and c then
diff --git a/Master/texmf-dist/tex/context/base/mkxl/syst-lua.mkxl b/Master/texmf-dist/tex/context/base/mkxl/syst-lua.mkxl
index 158682399a8..4b60ee59f53 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/syst-lua.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/syst-lua.mkxl
@@ -52,18 +52,21 @@
\popoverloadmode
%D We can omit the tex.ctxcatcodes here as nowadays we seldom change the regime at
-%D the \TEX\ end:
+%D the \TEX\ end. Beware: the expression is compiled each time so it is not that
+%D efficient.
-%def\luaexpr#1{\ctxlua{context (tostring(#1))}} % more efficient:
-\permanent\def\luaexpr#1{\ctxlua{tex.print(tostring(#1))}} % no use is shortcutting has to be compiled
+% \def\luaexpr #1{\ctxlua {context (tostring(#1))}} % more efficient:
+% \permanent\def\luaexpr #1{\ctxlua {tex.print(tostring(#1))}} % no use is shortcutting has to be compiled
+\tolerant\permanent\edef\luaexpr[#1]#:#2{\noexpand\cldcontext{\noexpand\iftok{#1}\noexpand\emptytoks\noexpand\else"\letterpercent #1",\noexpand\fi#2}}
%D But as we only use write 16 we could as well do all in \LUA\ and ignore the rest.
%D Okay, we still can do writes here but only when not blocked.
\aliased\let\syst_write_execute\clf_execute % always {...}
-%D There is a probably rather useless \type {\expression} command that can mix \LUA\ numeric
-%D expressions with \TEX\ commands (for as far that makes sense) that works like this:
+%D There is a probably rather useless \type {\expression} command that can mix \LUA\
+%D numeric expressions with \TEX\ commands (for as far that makes sense) that works
+%D like this:
%D
%D \starttyping
%D \mathchardef\foooo 1234
diff --git a/Master/texmf-dist/tex/context/base/mkxl/syst-mac.lmt b/Master/texmf-dist/tex/context/base/mkxl/syst-mac.lmt
index 410a49f8b11..bd1d8476ff6 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/syst-mac.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/syst-mac.lmt
@@ -17,21 +17,21 @@ if not modules then modules = { } end modules ['syst-mac'] = {
local insert, remove = table.insert, table.remove
-local push_macro = token.push_macro
-local pop_macro = token.pop_macro
-local scan_csname = token.scan_csname
-local create_token = token.create
-local gobble_token = token.gobble
+local pushmacrotoken = token.pushmacro
+local popmacrotoken = token.popmacro
+local scancsname = token.scancsname
+local createtoken = token.create
+local gobbletoken = token.gobble
-local context = context
-local implement = interfaces.implement
+local context = context
+local implement = interfaces.implement
-local report = logs.reporter("system","macrostack")
+local report = logs.reporter("system","macrostack")
-local stack = table.setmetatableindex("table")
+local stack = table.setmetatableindex("table")
local function pushmacro(name,global)
- local s = push_macro(name,global)
+ local s = pushmacrotoken(name,global)
if s then
insert(stack[name],s)
else
@@ -43,7 +43,7 @@ end
local function popmacro(name)
local s = remove(stack[name])
if s then
- pop_macro(s)
+ popmacrotoken(s)
else
report("no macro %a to pop",name)
end
@@ -57,7 +57,7 @@ implement {
public = true,
protected = true,
actions = function()
- pushmacro(scan_csname())
+ pushmacro(scancsname())
end
}
@@ -66,7 +66,7 @@ implement {
public = true,
protected = true,
actions = function()
- pushmacro(scan_csname(),true)
+ pushmacro(scancsname(),true)
end
}
@@ -75,7 +75,7 @@ implement {
public = true,
protected = true,
actions = function()
- popmacro(scan_csname())
+ popmacro(scancsname())
end
}
@@ -84,7 +84,7 @@ implement {
public = true,
protected = true,
actions = function()
- popmacro(scan_csname())
+ popmacro(scancsname())
end
}
@@ -93,7 +93,7 @@ implement {
public = true,
protected = true,
actions = function()
- local n = scan_csname()
+ local n = scancsname()
local s = stack[n]
local m = #s
report("%s : %i stack slots used",n,m)
@@ -109,8 +109,8 @@ implement {
protected = true,
arguments = "3 strings",
actions = function(start,stop,command)
- gobble_token(create_token(start),create_token(stop))
- if command then
+ gobbletoken(createtoken(start),createtoken(stop))
+ if command and command ~= "" then
context[command]()
end
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/syst-pln.mkxl b/Master/texmf-dist/tex/context/base/mkxl/syst-pln.mkxl
index 38ec9c4c1c5..f6c0f6556b9 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/syst-pln.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/syst-pln.mkxl
@@ -57,8 +57,8 @@
\pretolerance = 100
\relpenalty = 500
\righthyphenmin = 3
-\showboxbreadth = 5
-\showboxdepth = 3
+%showboxbreadth = 5
+%showboxdepth = 3
%time = 0
\tolerance = 200
%tracingcommands = 0
diff --git a/Master/texmf-dist/tex/context/base/mkxl/tabl-com.mkxl b/Master/texmf-dist/tex/context/base/mkxl/tabl-com.mkxl
index bdae8711bb9..d8eb7ada7eb 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/tabl-com.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/tabl-com.mkxl
@@ -17,72 +17,98 @@
\pushoverloadmode
+\registerctxluafile{node-ali}{autosuffix}
+
+\definesystemattribute[aligncharacter][public]
+
+\permanent\protected\def\setalignmentcharacter#1%
+ {\enablealignmentcharacter
+ \global\settrue\c_tabl_use_size
+ \global\settrue\c_tabl_sparse_skips
+ \enforced\permanent\protected\gdef\setalignmentcharacter##1%
+ {\attribute\aligncharacterattribute`##1\relax}%
+ \attribute\aligncharacterattribute`#1\relax}
+
+\permanent\protected\def\resetalignmentcharacter
+ {\attribute\aligncharacterattribute\attributeunsetvalue}
+
+\permanent\def\alignmentcharactertrigger
+ {\s!callback\space\s!attr\aligncharacterattribute\plusone}
+
+\noaligned\permanent\protected\def\aligncontentleft {\ignorespaces\aligncontent\unskip\hss}
+\noaligned\permanent\protected\def\aligncontentmiddle{\hss\ignorespaces\aligncontent\unskip\hss}
+\noaligned\permanent\protected\def\aligncontentright {\hss\ignorespaces\aligncontent\unskip}
+
+% \enablealignmentcharacter % defined at the lua end
+
% maybe frozen instead
-\permanent\let\AR\relax
-\permanent\let\BA\relax
-\permanent\let\BC\relax
-\permanent\let\BH\relax
-\permanent\let\BL\relax
-\permanent\let\BR\relax
-\permanent\let\CC\relax
-\permanent\let\CL\relax
-\permanent\let\CM\relax
-\permanent\let\CR\relax
-\permanent\let\DB\relax
-\permanent\let\DC\relax
-\permanent\let\DL\relax
-\permanent\let\DR\relax
-\permanent\let\DV\relax
-\permanent\let\EH\relax
-\permanent\let\EQ\relax
-\permanent\let\ER\relax
-\permanent\let\FB\relax
-\permanent\let\FL\relax
-\permanent\let\FR\relax
-\permanent\let\HC\relax
-\permanent\let\HL\relax
-\permanent\let\HQ\relax
-\permanent\let\HR\relax
-\permanent\let\LB\relax
-\permanent\let\LC\relax
-\permanent\let\LT\relax
-\permanent\let\LL\relax
-\permanent\let\LR\relax
-\permanent\let\MC\relax
-\permanent\let\ML\relax
-\permanent\let\MR\relax
-\permanent\let\NA\relax
-\permanent\let\NB\relax
-\permanent\let\NC\relax
-\permanent\let\ND\relax
-\permanent\let\NF\relax
-\permanent\let\NG\relax
-\permanent\let\NI\relax
-\permanent\let\NL\relax
-\permanent\let\NN\relax
-\permanent\let\NP\relax
-\permanent\let\NR\relax
-\permanent\let\PB\relax
-\permanent\let\RC\relax
-\permanent\let\RQ\relax
-\permanent\let\SL\relax
-\permanent\let\SM\relax
-\permanent\let\SR\relax
-\permanent\let\TB\relax
-\permanent\let\TL\relax
-\permanent\let\TR\relax
-\permanent\let\VL\relax
-\permanent\let\VC\relax
-\permanent\let\VD\relax
-\permanent\let\VN\relax
-\permanent\let\VS\relax
-\permanent\let\VT\relax
-\permanent\let\XC\relax
-
-\permanent\let\FC\relax
-\permanent\let\RB\relax
-\permanent\let\RT\relax
+\permanent\protected\lettonothing\AR
+\permanent\protected\lettonothing\BA
+\permanent\protected\lettonothing\BC
+\permanent\protected\lettonothing\BH
+\permanent\protected\lettonothing\BL
+\permanent\protected\lettonothing\BR
+\permanent\protected\lettonothing\CC
+\permanent\protected\lettonothing\CL
+\permanent\protected\lettonothing\CM
+\permanent\protected\lettonothing\CR
+\permanent\protected\lettonothing\DB
+\permanent\protected\lettonothing\DC
+\permanent\protected\lettonothing\DL
+\permanent\protected\lettonothing\DR
+\permanent\protected\lettonothing\DV
+\permanent\protected\lettonothing\EH
+\permanent\protected\lettonothing\EQ
+\permanent\protected\lettonothing\ER
+\permanent\protected\lettonothing\FB
+\permanent\protected\lettonothing\FL
+\permanent\protected\lettonothing\FR
+\permanent\protected\lettonothing\HC
+\permanent\protected\lettonothing\HL
+\permanent\protected\lettonothing\HQ
+\permanent\protected\lettonothing\HR
+\permanent\protected\lettonothing\LB
+\permanent\protected\lettonothing\LC
+\permanent\protected\lettonothing\LT
+\permanent\protected\lettonothing\LL
+\permanent\protected\lettonothing\LR
+\permanent\protected\lettonothing\MC
+\permanent\protected\lettonothing\ML
+\permanent\protected\lettonothing\MR
+\permanent\protected\lettonothing\NA
+\permanent\protected\lettonothing\NB
+\permanent\protected\lettonothing\NC
+\permanent\protected\lettonothing\ND
+\permanent\protected\lettonothing\NF
+\permanent\protected\lettonothing\NG
+\permanent\protected\lettonothing\NI
+\permanent\protected\lettonothing\NL
+\permanent\protected\lettonothing\NN
+\permanent\protected\lettonothing\NP
+\permanent\protected\lettonothing\NR
+\permanent\protected\lettonothing\PB
+\permanent\protected\lettonothing\RC
+\permanent\protected\lettonothing\RQ
+\permanent\protected\lettonothing\SL
+\permanent\protected\lettonothing\SM
+\permanent\protected\lettonothing\SR
+\permanent\protected\lettonothing\TB
+\permanent\protected\lettonothing\TL
+\permanent\protected\lettonothing\TR
+\permanent\protected\lettonothing\VL
+\permanent\protected\lettonothing\VC
+\permanent\protected\lettonothing\VD
+\permanent\protected\lettonothing\VN
+\permanent\protected\lettonothing\VS
+\permanent\protected\lettonothing\VT
+\permanent\protected\lettonothing\XC
+
+\permanent\protected\lettonothing\FC
+\permanent\protected\lettonothing\RB
+\permanent\protected\lettonothing\RT
+
+\permanent\protected\lettonothing\NS % span
\popoverloadmode
diff --git a/Master/texmf-dist/tex/context/base/mkxl/tabl-frm.mkxl b/Master/texmf-dist/tex/context/base/mkxl/tabl-frm.mkxl
index ec530e7a4a5..e19ea34fee3 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/tabl-frm.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/tabl-frm.mkxl
@@ -21,11 +21,11 @@
\installcorenamespace{framedtablerow}
\installcorenamespace{framedtablecolumn}
-\newcount\c_tabl_framed_c
-\newcount\c_tabl_framed_r
-\newdimen\d_tabl_framed_h
-\newdimen\d_tabl_framed_d
-\newdimen\b_tabl_framed
+\newinteger \c_tabl_framed_c
+\newinteger \c_tabl_framed_r
+\newdimension\d_tabl_framed_h \def\d_tabl_framed_h_reference{\d_tabl_framed_h}%
+\newdimension\d_tabl_framed_d
+\newdimension\b_tabl_framed
\initializeboxstack\??framedtable
@@ -102,19 +102,20 @@
\setupframed[\??framedtablecolumn#1:#2][#3]%
\fi}
-\mutable\let\currentframedtable\empty
+\mutable\lettonothing\currentframedtable
\permanent\tolerant\protected\def\startframedtable[#1]#*[#2]%
{\begingroup
\forgetall
\ifhastok={#1}%
- \let\currentframedtable\empty
+ \lettonothing\currentframedtable
\setupframed[\??framedtable][#1]%
\else
\edef\currentframedtable{#1}%
\setupframed[\??framedtable][#2]%
\fi
\edef\currentframed{\??framedtable\currentframedtable}%
+ \pack_framed_initialize
\c_tabl_framed_r\zerocount
\d_tabl_framed_d\framedparameter\c!distance
\framedparameter\c!before}
@@ -126,7 +127,7 @@
% a two pass variant that deals with the height .. so no catcode changes here
\tolerant\protected\def\pack_framed_start_framed_whatever[#1]%
- {\pack_framed_initialize
+ {\pack_framed_initialize % moved up
\bgroup
\setupcurrentframed[#1]% here !
\pack_framed_process_indeed
@@ -134,7 +135,7 @@
\ignorespaces}
% \permanent\protected\def\startframedrow
-% {\advance\c_tabl_framed_r\plusone
+% {\advanceby\c_tabl_framed_r\plusone
% \c_tabl_framed_c\zerocount
% \d_tabl_framed_h\zeropoint
% \bgroup
@@ -159,12 +160,12 @@
{\vpack to \d_tabl_framed_h{\flushbox\??framedtable{\number\fastloopindex}\vfill}%
\ifzeropt\d_tabl_framed_d\else\kern\d_tabl_framed_d\fi}
-\newcount\c_tabl_framed_pass
+\newinteger\c_tabl_framed_pass
\permanent\let\stopframedrow\relax
\permanent\protected\def\startframedrow#1\stopframedrow
- {\advance\c_tabl_framed_r\plusone
+ {\advanceby\c_tabl_framed_r\plusone
\startframedrow_one#1\stopframedrow_one
\startframedrow_two#1\stopframedrow_two}
@@ -204,7 +205,7 @@
\ifzeropt\d_tabl_framed_d\else\kern\d_tabl_framed_d\fi}
\permanent\protected\def\startframedcell
- {\advance\c_tabl_framed_c\plusone
+ {\advanceby\c_tabl_framed_c\plusone
\setbox\b_tabl_framed\hpack\bgroup
%\bgroup
\edef\currentframed{\number\c_tabl_framed_c}%
@@ -217,10 +218,10 @@
\fi}%
\ifcase\c_tabl_framed_pass
\or
- \letframedparameter\c!background\empty
+ \resetframedparameter\c!background
\letframedparameter\c!frame\v!off
\or
- \letframedparameter\c!height\d_tabl_framed_h
+ \letframedparameter\c!height\d_tabl_framed_h_reference
\fi
\pack_framed_start_framed_whatever}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/tabl-ltb.mkxl b/Master/texmf-dist/tex/context/base/mkxl/tabl-ltb.mkxl
index ec4a373603b..7fcdba6f2ad 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/tabl-ltb.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/tabl-ltb.mkxl
@@ -70,23 +70,23 @@
\newconditional \c_tabl_lines_preroll
\newconditional \c_tabl_lines_in_table
-\newdimen \d_tabl_lines_width
-\newdimen \d_tabl_lines_height
-%newdimen \d_tabl_lines_depth
+\newdimension \d_tabl_lines_width
+\newdimension \d_tabl_lines_height
+%newdimension \d_tabl_lines_depth
\newbox \b_tabl_lines_cell
-\newcount \c_tabl_lines_n_of_columns
-\newcount \c_tabl_lines_n_of_rows
-\newcount \c_tabl_lines_n_of_lines
-\newcount \c_tabl_lines_n_of_parts
-\newcount \c_tabl_lines_part \c_tabl_lines_part\plusone
-\newcount \c_tabl_lines_step \c_tabl_lines_step\plusone
-\newcount \c_tabl_lines_line
-\newcount \c_tabl_lines_row
-\newcount \c_tabl_lines_rows
-\newcount \c_tabl_lines_column
-\newcount \c_tabl_lines_subcol
+\newinteger \c_tabl_lines_n_of_columns
+\newinteger \c_tabl_lines_n_of_rows
+\newinteger \c_tabl_lines_n_of_lines
+\newinteger \c_tabl_lines_n_of_parts
+\newinteger \c_tabl_lines_part \c_tabl_lines_part\plusone
+\newinteger \c_tabl_lines_step \c_tabl_lines_step\plusone
+\newinteger \c_tabl_lines_line
+\newinteger \c_tabl_lines_row
+\newinteger \c_tabl_lines_rows
+\newinteger \c_tabl_lines_column
+\newinteger \c_tabl_lines_subcol
\newconstant \c_tabl_lines_hmode
\newconstant \c_tabl_lines_page
@@ -140,7 +140,8 @@
\permanent\def\linetablerparameter#1% faster, leaner and meaner
{\begincsname
\??linetable
- \ifnum\c_tabl_lines_row=\zerocount % geen ifcase
+ % \ifnum\c_tabl_lines_row=\zerocount % geen ifcase
+ \ifzero\c_tabl_lines_row
\ifcsname\??linetable r:\v!header#1\endcsname
r:\v!header
\orelse\ifcsname\??linetable r:0#1\endcsname
@@ -181,9 +182,9 @@
\fi}
\def\tabl_lines_step_cell
- {\advance\scratchdimen\linetablecparameter\c!width
- \global\advance \c_tabl_lines_column\plusone
- \advance\scratchskip \linetablecparameter\c!distance}
+ {\advanceby\scratchdimen\linetablecparameter\c!width
+ \global\advanceby \c_tabl_lines_column\plusone
+ \advanceby\scratchskip \linetablecparameter\c!distance}
\permanent\tolerant\protected\def\startlinetablecell[#1]%
{\global\setbox\b_tabl_lines_cell\hbox\bgroup
@@ -226,8 +227,8 @@
% 1 = width, fixed height
% 2 = no width, auto hsize
\ifnum\c_tabl_lines_mode<\plustwo
- \advance\scratchdimen-\linetablecparameter\c!leftoffset
- \advance\scratchdimen-\linetablecparameter\c!rightoffset
+ \advanceby\scratchdimen-\linetablecparameter\c!leftoffset
+ \advanceby\scratchdimen-\linetablecparameter\c!rightoffset
\fi
\ifcase\c_tabl_lines_mode
\dosetraggedcommand{\linetablecparameter\c!align}%
@@ -261,8 +262,7 @@
\egroup}
\def\tabl_lines_wrap_up
- {\edef\p_background{\linetablecparameter\c!background}%
- \ifx\p_background\v!color
+ {\ifcstok{\linetablecparameter\c!background}\v!color
\ifconditional\linetableautoheight
\tabl_lines_wrap_up_auto
\else
@@ -325,23 +325,19 @@
\else
\vbox
{\ifvoid\b_tabl_lines_current\c_tabl_lines_part\else\unvbox\b_tabl_lines_current\c_tabl_lines_part\fi
- \edef\p_background{\linetablerparameter\c!background}%
- \ifx\p_background\v!color
+ \ifcstok{\linetablerparameter\c!background}\v!color
\backgroundline[\linetablerparameter\c!backgroundcolor]{\box\scratchbox}%
+ \orelse\iftok{\linetablerparameter\c!type}\emptytoks
+ \box\scratchbox
\else
- \edef\p_type{\linetablerparameter\c!type}%
- \ifempty\p_type
- \box\scratchbox
- \else
- \tabl_lines_wrap_up_auto_r
- \fi
+ \tabl_lines_wrap_up_auto_r
\fi
\endgraf
\linetablerparameter\c!after}%
\fi}
\def\tabl_lines_flush_parts
- {\global\advance\c_tabl_lines_line\plusone
+ {\global\advanceby\c_tabl_lines_line\plusone
\ifnum\c_tabl_lines_line<\c_tabl_lines_n_of_lines
% keep collecting
\else
@@ -353,7 +349,7 @@
\dp\b_tabl_lines_current\c_tabl_lines_part\strutdepth
% noindent en endgraf needed else whitespace mess-up!
\whitespace % here not after verticalstrut
- \ifdim\topskipgap=\zeropoint\else
+ \ifzeropt\topskipgap\else
\verticalstrut
\nobreak
\kern-\struttotal
@@ -396,44 +392,39 @@
\unskip \unskip % remove last intercolumn skip (distance+fill)
\fi
\egroup
- \ifconditional\c_tabl_lines_preroll \else
- \ifcase\c_tabl_lines_part
- % we're collecting the repeater
- \else
- \ifdim\dimexpr\hsize-\wd\scratchbox\relax>\linetableparameter\c!stretch\else
- \setbox\scratchbox\hpack to \hsize{\unhbox\scratchbox}%
- \fi
- \fi
+ \ifconditional\c_tabl_lines_preroll
+ \orelse\ifcase\c_tabl_lines_part
+ % we're collecting the repeater
+ \orelse\ifdim\dimexpr\hsize-\wd\scratchbox\relax>\linetableparameter\c!stretch
+ \else
+ \setbox\scratchbox\hpack to \hsize{\unhbox\scratchbox}%
\fi}
\def\tabl_lines_check_part
- {\global\advance\d_tabl_lines_width\wd\b_tabl_lines_cell
- \global\advance\c_tabl_lines_column\c_tabl_lines_step
- \global\advance\c_tabl_lines_subcol\c_tabl_lines_step
+ {\global\advanceby\d_tabl_lines_width\wd\b_tabl_lines_cell
+ \global\advanceby\c_tabl_lines_column\c_tabl_lines_step
+ \global\advanceby\c_tabl_lines_subcol\c_tabl_lines_step
\relax
%\message{\the\c_tabl_lines_column,\the\c_tabl_lines_subcol}\wait
% from now on the column counter is already incremented
\ifcase\c_tabl_lines_split_state
- \ifconditional\c_tabl_lines_preroll \else
+ \ifconditional\c_tabl_lines_preroll
+ \else
\box\b_tabl_lines_cell
% the columncounter is one ahead !
\hskip\scratchskip
\fi
%%%
\donefalse
- \ifcase\c_tabl_lines_repeat\else
- % calculate ahead
- \ifnum\c_tabl_lines_repeat=\numexpr\c_tabl_lines_column-\plustwo\relax
- \donetrue % collecting repeater
- \fi
+ \ifcase\c_tabl_lines_repeat
+ \orelse\ifnum\c_tabl_lines_repeat=\numexpr\c_tabl_lines_column-\plustwo\relax % calculate ahead
+ \donetrue % collecting repeater
\fi
%%%%
\ifdone
% collecting repeater
- \else
- \ifnum\c_tabl_lines_column>\csname\??linetablepart\number\c_tabl_lines_part\endcsname\relax
- \donetrue
- \fi
+ \orelse\ifnum\c_tabl_lines_column>\csname\??linetablepart\number\c_tabl_lines_part\endcsname\relax
+ \donetrue
\fi
\ifdone
\tabl_lines_stop_part
@@ -445,7 +436,7 @@
\else
\global\c_tabl_lines_page \plusone
\fi
- \global\advance\c_tabl_lines_part\plusone
+ \global\advanceby\c_tabl_lines_part\plusone
\global\d_tabl_lines_width\wd\b_tabl_lines_current\zerocount
\tabl_lines_start_part
\fi
@@ -464,7 +455,7 @@
\orelse\ifdim\d_tabl_lines_width>\hsize
\donetrue
\else
- \global\advance\d_tabl_lines_width\scratchskip
+ \global\advanceby\d_tabl_lines_width\scratchskip
\ifdim\d_tabl_lines_width>\hsize % ?
\donetrue
\fi
@@ -477,7 +468,7 @@
\else
\global\c_tabl_lines_page \plusone
\fi
- \global\advance\c_tabl_lines_part\plusone
+ \global\advanceby\c_tabl_lines_part\plusone
\ifnum\c_tabl_lines_part>\c_tabl_lines_n_of_parts
\global\c_tabl_lines_n_of_parts\c_tabl_lines_part
\tabl_lines_initialize_box\c_tabl_lines_part
@@ -486,9 +477,10 @@
\tabl_lines_start_part
\ifscratchconditionone \orelse \ifcase\c_tabl_lines_repeat \else
% check for left/right page
- \ifcase\c_tabl_lines_page\donetrue\or\donetrue\or\donefalse\fi\ifdone
+ \ifcase\c_tabl_lines_page\donetrue\or\donetrue\or\donefalse\fi
+ \ifdone
% insert repeater
- \global\advance\d_tabl_lines_width\wd\b_tabl_lines_current\zerocount
+ \global\advanceby\d_tabl_lines_width\wd\b_tabl_lines_current\zerocount
\ifconditional\c_tabl_lines_preroll\kern\wd\else\unhcopy\fi\b_tabl_lines_current\zerocount
\fi
\fi
@@ -529,8 +521,8 @@
\global\c_tabl_lines_n_of_parts\zerocount
\scratchcounter\zerocount
\def\docommand##1%
- {\global\advance\c_tabl_lines_n_of_parts\plusone
- \advance\scratchcounter##1%
+ {\global\advanceby\c_tabl_lines_n_of_parts\plusone
+ \advanceby\scratchcounter##1%
\xdefcsname\??linetablepart\number\c_tabl_lines_n_of_parts\endcsname{\the\scratchcounter}}%
\processcommacommand[\linetableparameter\c!n]\docommand
\tabl_lines_initialize_boxes\c_tabl_lines_n_of_parts
@@ -583,8 +575,8 @@
\permanent\tolerant\protected\def\tabl_lines_BR[#1]% #1 not yet implemented
{\ifnum\c_tabl_lines_head_state=1\else
- \global\advance\c_tabl_lines_row\plusone
- \global\advance\c_tabl_lines_rows\plusone
+ \global\advanceby\c_tabl_lines_row\plusone
+ \global\advanceby\c_tabl_lines_rows\plusone
\fi
\global\c_tabl_lines_column\plusone
\global\c_tabl_lines_subcol\plusone
@@ -618,7 +610,7 @@
% no \box\b_tabl_lines_cell, i.e. dummy columnn, last \NC \NR
\tabl_lines_stop_part
\tabl_lines_save_part
- \advance\c_tabl_lines_column \minusone
+ \advanceby\c_tabl_lines_column \minusone
\ifnum\c_tabl_lines_column>\c_tabl_lines_n_of_columns
\global\c_tabl_lines_n_of_columns\c_tabl_lines_column
\fi
@@ -636,8 +628,9 @@
\def\tabl_lines_check_page
{\global\c_tabl_lines_page\zerocount
\ifcase\c_tabl_lines_repeat\orelse\ifcase\c_tabl_lines_page
- \doif{\linetableparameter\c!repeat}\v!no
- {\global\c_tabl_lines_page\doifelseoddpage\plusone\plustwo}%
+ \iftok{\linetableparameter\c!repeat}\v!no
+ \global\c_tabl_lines_page\doifelseoddpage\plusone\plustwo
+ \fi
\fi}
\def\tabl_lines_flush_head
@@ -694,7 +687,7 @@
% todo: store in box instead of macro
-\aliased\let\stoplinetablehead\relax
+\permanent\protected\lettonothing\stoplinetablehead
\permanent\protected\def\startlinetablehead#1\stoplinetablehead
{\ifconditional\c_tabl_lines_in_table
diff --git a/Master/texmf-dist/tex/context/base/mkxl/tabl-mis.mkxl b/Master/texmf-dist/tex/context/base/mkxl/tabl-mis.mkxl
index 7b6f0ffac1f..e65c97e0de1 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/tabl-mis.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/tabl-mis.mkxl
@@ -153,10 +153,10 @@
\typo_paragraphs_setup_saved[\currentparagraphs:1][\c!distance=\zeropoint]%
\to \everydefineparagraphs
-\newcount\c_typo_paragraphs_n
-\newcount\c_typo_paragraphs_max
-\newdimen\d_typo_paragraphs_width
-\newdimen\d_typo_paragraphs_auto
+\newinteger \c_typo_paragraphs_n
+\newinteger \c_typo_paragraphs_max
+\newdimension\d_typo_paragraphs_width
+\newdimension\d_typo_paragraphs_auto
\let\typo_paragraphs_start_cell\relax
\let\typo_paragraphs_stop_cell \relax
@@ -171,22 +171,22 @@
\else
\d_typo_paragraphs_width\p_width\relax
\fi
- \advance\d_typo_paragraphs_width-2\dimexpr\paragraphsparameter\c!offset\relax
+ \advanceby\d_typo_paragraphs_width-2\dimexpr\paragraphsparameter\c!offset\relax
\c_typo_paragraphs_max\paragraphsparameter\c!n\relax
\d_typo_paragraphs_auto\d_typo_paragraphs_width\relax
\scratchcounter\zerocount
\dorecurse\c_typo_paragraphs_max
{\edef\p_width{\namedparagraphsparameter{\currentparagraphs:\recurselevel}\c!width}%
\ifempty\p_width
- \advance\scratchcounter\plusone
+ \advanceby\scratchcounter\plusone
\else
- \advance\d_typo_paragraphs_auto-\p_width\relax
+ \advanceby\d_typo_paragraphs_auto-\p_width\relax
\fi
\ifnum\recurselevel>\plusone
- \advance\d_typo_paragraphs_auto-\namedparagraphsparameter{\currentparagraphs:\recurselevel}\c!distance\relax
+ \advanceby\d_typo_paragraphs_auto-\namedparagraphsparameter{\currentparagraphs:\recurselevel}\c!distance\relax
\fi}%
\ifnum\scratchcounter>\zerocount
- \divide\d_typo_paragraphs_auto\scratchcounter
+ \divideby\d_typo_paragraphs_auto\scratchcounter
\else
\d_typo_paragraphs_auto\zeropoint
\fi
@@ -200,7 +200,7 @@
\setbox\scratchbox\hpack
\bgroup % (2)
\forgetall
- \advance\hsize-2\scratchoffset
+ \advanceby\hsize-2\scratchoffset
\let\typo_paragraphs_start_cell\typo_paragraphs_start_cell_indeed
\let\typo_paragraphs_stop_cell \typo_paragraphs_stop_cell_indeed
\typo_paragraphs_start_cell_indeed}
@@ -223,7 +223,7 @@
\def\typo_paragraphs_start_cell_indeed
{\removeunwantedspaces
- \advance\c_typo_paragraphs_n\plusone
+ \advanceby\c_typo_paragraphs_n\plusone
\ifnum\c_typo_paragraphs_n>\c_typo_paragraphs_max
\expandafter\typo_paragraphs_start_cell_nop
\else
diff --git a/Master/texmf-dist/tex/context/base/mkxl/tabl-ntb.mkxl b/Master/texmf-dist/tex/context/base/mkxl/tabl-ntb.mkxl
index 5b30c449ca4..6eb926b09e4 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/tabl-ntb.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/tabl-ntb.mkxl
@@ -105,7 +105,7 @@
\dotagTABLEcell
%\tabl_ntb_next_level
\font_styles_math_reset
- \usenaturaltablelocalstyleandcolor\c!style\c!color
+ \usenaturaltablelocalstyleandcolor\c!style\c!color % done twice ? needed for style (test onbly style)
\everypar\t_tabl_ntb_cell_start
\font_styles_math_start}
@@ -139,64 +139,64 @@
% \fi
% \fi}
-\newcount\c_tabl_ntb_row
-\newcount\c_tabl_ntb_col
-\newcount\c_tabl_ntb_spn
+\newinteger \c_tabl_ntb_row
+\newinteger \c_tabl_ntb_col
+\newinteger \c_tabl_ntb_spn
-\newcount\c_tabl_ntb_nx
-\newcount\c_tabl_ntb_ny
+\newinteger \c_tabl_ntb_nx
+\newinteger \c_tabl_ntb_ny
\setnewconstant\c_tabl_ntb_cell \plusone
\setnewconstant\c_tabl_ntb_none \plustwo
-\newcount\c_tabl_ntb_current_row
-\newcount\c_tabl_ntb_current_col
-\newcount\c_tabl_ntb_current_row_one
-\newcount\c_tabl_ntb_current_col_one
-\newcount\c_tabl_ntb_current_row_two
-\newcount\c_tabl_ntb_current_col_two
-\newcount\c_tabl_ntb_current_row_three
-\newcount\c_tabl_ntb_current_col_three
-\newcount\c_tabl_ntb_current_row_four
-\newcount\c_tabl_ntb_current_col_four
+\newinteger \c_tabl_ntb_current_row
+\newinteger \c_tabl_ntb_current_col
+\newinteger \c_tabl_ntb_current_row_one
+\newinteger \c_tabl_ntb_current_col_one
+\newinteger \c_tabl_ntb_current_row_two
+\newinteger \c_tabl_ntb_current_col_two
+\newinteger \c_tabl_ntb_current_row_three
+\newinteger \c_tabl_ntb_current_col_three
+\newinteger \c_tabl_ntb_current_row_four
+\newinteger \c_tabl_ntb_current_col_four
-\newcount\c_tabl_ntb_running_col
-\newcount\c_tabl_ntb_maximum_row
-\newcount\c_tabl_ntb_maximum_col
-\newcount\c_tabl_ntb_maximum_row_span
-\newcount\c_tabl_ntb_maximum_col_span
+\newinteger \c_tabl_ntb_running_col \def\c_tabl_ntb_running_col_reference{\c_tabl_ntb_running_col}
+\newinteger \c_tabl_ntb_maximum_row
+\newinteger \c_tabl_ntb_maximum_col
+\newinteger \c_tabl_ntb_maximum_row_span
+\newinteger \c_tabl_ntb_maximum_col_span
-\newcount\c_tabl_ntb_encountered_col
-\newcount\c_tabl_ntb_encountered_max
+\newinteger \c_tabl_ntb_encountered_col
+\newinteger \c_tabl_ntb_encountered_max
-\newtoks\t_tabl_ntb
-\newtoks\t_tabl_ntb_row
+\newtoks \t_tabl_ntb
+\newtoks \t_tabl_ntb_row
-\newconstant\c_tabl_tbl_pass
+\newconstant \c_tabl_tbl_pass
-\newtoks\t_tabl_ntb_head
-\newtoks\t_tabl_ntb_next
-\newtoks\t_tabl_ntb_body
-\newtoks\t_tabl_ntb_foot
+\newtoks \t_tabl_ntb_head
+\newtoks \t_tabl_ntb_next
+\newtoks \t_tabl_ntb_body
+\newtoks \t_tabl_ntb_foot
-\newcount\c_tabl_ntb_n_of_head_lines
-\newcount\c_tabl_ntb_n_of_next_lines
-\newcount\c_tabl_ntb_n_of_hdnx_lines
+\newinteger \c_tabl_ntb_n_of_head_lines
+\newinteger \c_tabl_ntb_n_of_next_lines
+\newinteger \c_tabl_ntb_n_of_hdnx_lines
-\newdimen\d_tabl_ntb_height
-\newdimen\d_tabl_ntb_width
+\newdimension \d_tabl_ntb_height
+\newdimension \d_tabl_ntb_width
-\newdimen\d_tabl_ntb_leftmargindistance
-\newdimen\d_tabl_ntb_rightmargindistance
-\newdimen\d_tabl_ntb_columndistance
-\newdimen\d_tabl_ntb_maxwidth
+\newdimension \d_tabl_ntb_leftmargindistance
+\newdimension \d_tabl_ntb_rightmargindistance
+\newdimension \d_tabl_ntb_columndistance
+\newdimension \d_tabl_ntb_maxwidth
-\newtoks\everyTABLEpass % public
+\newtoks \everyTABLEpass % public
-\newcount\tablecellrows % public (needs checking)
-\newcount\tablecellcolumns % public (needs checking)
+\newinteger \tablecellrows % public (needs checking)
+\newinteger \tablecellcolumns % public (needs checking)
-\newbox\b_tabl_ntb_final
+\newbox \b_tabl_ntb_final
%D For tagging and export:
@@ -205,10 +205,58 @@
\newconstant \c_tabl_ntb_foot
\newconditional \c_tabl_ntb_okay
+%D For local anchoring:
+
+\installcorenamespace{naturaltableanchor}
+
+\let\tabl_ntb_anchor_start \gobbletwoarguments
+\let\tabl_ntb_anchor_stop \relax
+\let\tabl_ntb_anchor_process\gobbleoneargument
+
+\lettonothing\m_tabl_ntb_anchor_background
+
+\let\xanchor\!!zerocount
+\let\yanchor\!!zerocount
+
+\def\tabl_ntb_anchor_start_indeed#1#2%
+ {\hpack\bgroup
+ \edef\xanchor{\number#2}%
+ \edef\yanchor{\number#1}%
+ \markanchor{matrix}{#1}{#2}}
+
+\let\tabl_ntb_anchor_stop_indeed\egroup
+
+\def\tabl_ntb_anchor_process_indeed#1%
+ {\localframed[\??naturaltableanchor]{\box#1}}
+
+\definesimplifiedframed
+ [\??naturaltableanchor]
+
+\setupframed
+ [\??naturaltableanchor]
+ [\c!synchronize=\v!background,
+ \c!background=\m_tabl_ntb_anchor_background]
+
+\def\tabl_ntb_anchor_setup
+ {\ifcstok{\naturaltablelocalparameter\c!synchronize}\v!background
+ \let\tabl_ntb_anchor_start\tabl_ntb_anchor_start_indeed
+ \let\tabl_ntb_anchor_stop\tabl_ntb_anchor_stop_indeed
+ \let\tabl_ntb_anchor_process\tabl_ntb_anchor_process_indeed
+ \edef\m_tabl_ntb_anchor_background{\naturaltablelocalparameter\c!background}%
+ \resetnaturaltablelocalparameter\c!background
+ \setlocalanchoring
+ \else
+ \lettonothing\m_tabl_ntb_anchor_background
+ \let\tabl_ntb_anchor_start\gobbletwoarguments
+ \let\tabl_ntb_anchor_stop\relax
+ \let\tabl_ntb_anchor_process\gobbleoneargument
+ \fi
+ \resetnaturaltablelocalparameter\c!synchronize}
+
%D We have already prepared the previous macros for nesting, so we only have to pop
%D in the right ones:
-\newcount\c_tabl_level
+\newinteger\c_tabl_level
\installglobalmacrostack\m_tabl_ntb_saved_row
\installglobalmacrostack\m_tabl_ntb_saved_col
@@ -232,11 +280,11 @@
\fi}
\protected\def\tabl_ntb_next_level
- {\advance\c_tabl_level\plusone
+ {\advanceby\c_tabl_level\plusone
\edef\m_tabl_tbl_level{\the\c_tabl_level}}
\protected\def\tabl_ntb_prev_level
- {\advance\c_tabl_level\minusone
+ {\advanceby\c_tabl_level\minusone
\edef\m_tabl_tbl_level{\the\c_tabl_level}}
\tabl_ntb_next_level % go to level 1
@@ -273,35 +321,43 @@
\installcorenamespace{naturaltablesqueeze}
\installcorenamespace{naturaltabletok}
-\letvalue{\??naturaltablesqueeze }\donefalse
-\letvalue{\??naturaltablesqueeze\v!fit }\donetrue
-\letvalue{\??naturaltablesqueeze\v!fixed}\donetrue
-\letvalue{\??naturaltablesqueeze\v!broad}\donetrue
-\letvalue{\??naturaltablesqueeze\v!local}\donetrue
+% \integerdefcsname
+% \dimensiondefcsname
+
+\letcsname\??naturaltablesqueeze \endcsname\donefalse
+\letcsname\??naturaltablesqueeze\v!fit \endcsname\donetrue
+\letcsname\??naturaltablesqueeze\v!fixed\endcsname\donetrue
+\letcsname\??naturaltablesqueeze\v!broad\endcsname\donetrue
+\letcsname\??naturaltablesqueeze\v!local\endcsname\donetrue
\def\tabl_ntb_let_gal{\gletcsname\??naturaltablegal\m_tabl_tbl_level\endcsname}
-\def\tabl_ntb_get_gal{\csname\??naturaltablegal\m_tabl_tbl_level\endcsname}
+\def\tabl_ntb_get_gal{\csname \??naturaltablegal\m_tabl_tbl_level\endcsname}
\def\tabl_ntb_let_tal#1{\gletcsname\??naturaltabletal\m_tabl_tbl_level:\number#1\endcsname}
-\def\tabl_ntb_get_tal#1{\csname\??naturaltabletal\m_tabl_tbl_level:\number#1\endcsname}
+\def\tabl_ntb_get_tal#1{\csname \??naturaltabletal\m_tabl_tbl_level:\number#1\endcsname}
\def\tabl_ntb_set_nob#1{\letcsname\??naturaltablenob\m_tabl_tbl_level:\number#1\endcsname\plusone}
-\def\tabl_ntb_get_nob#1{\ifcsname\??naturaltablenob\m_tabl_tbl_level:\number#1\endcsname\plusone\else\zerocount\fi}
+\def\tabl_ntb_get_nob#1{\ifcsname \??naturaltablenob\m_tabl_tbl_level:\number#1\endcsname\plusone\else\zerocount\fi}
-%def\tabl_ntb_set_tag#1#2{\edefcsname\??naturaltabletag\m_tabl_tbl_level:\number#1:\number#2\endcsname}
-\def\tabl_ntb_set_col#1#2{\edefcsname\??naturaltablecol\m_tabl_tbl_level:\number#1:\number#2\endcsname}
-\def\tabl_ntb_set_row#1#2{\edefcsname\??naturaltablerow\m_tabl_tbl_level:\number#1:\number#2\endcsname}
+%def\tabl_ntb_set_tag#1#2{\expandafter\integerdef\csname\??naturaltabletag\m_tabl_tbl_level:\number#1:\number#2\endcsname}
+\def\tabl_ntb_set_col#1#2{\expandafter\integerdef\csname\??naturaltablecol\m_tabl_tbl_level:\number#1:\number#2\endcsname}
+\def\tabl_ntb_set_row#1#2{\expandafter\integerdef\csname\??naturaltablerow\m_tabl_tbl_level:\number#1:\number#2\endcsname}
\def\tabl_ntb_let_tag#1#2{\letcsname\??naturaltabletag\m_tabl_tbl_level:\number#1:\number#2\endcsname}
\def\tabl_ntb_let_col#1#2{\letcsname\??naturaltablecol\m_tabl_tbl_level:\number#1:\number#2\endcsname}
\def\tabl_ntb_let_row#1#2{\letcsname\??naturaltablerow\m_tabl_tbl_level:\number#1:\number#2\endcsname}
-%def\tabl_ntb_set_wd#1#2{\xdefcsname\??naturaltablewd\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
-\def\tabl_ntb_set_ht#1#2{\xdefcsname\??naturaltableht\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
+% \let\tabl_ntb_let_col\tabl_ntb_set_col
+% \let\tabl_ntb_let_row\tabl_ntb_set_row
+
+%def\tabl_ntb_set_wd#1#2{\global\expandafter\dimensiondef\csname\??naturaltablewd\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
+\def\tabl_ntb_set_ht#1#2{\global\expandafter\dimensiondef\csname\??naturaltableht\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
%def\tabl_ntb_let_wd#1#2{\letcsname\??naturaltablewd\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
\def\tabl_ntb_let_ht#1#2{\letcsname\??naturaltableht\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
+% \let\tabl_ntb_let_ht\tabl_ntb_set_ht
+
\def\tabl_ntb_get_tag#1#2{\csname\??naturaltabletag\m_tabl_tbl_level:\number#1:\number#2\endcsname}
\def\tabl_ntb_get_col#1#2{\csname\??naturaltablecol\m_tabl_tbl_level:\number#1:\number#2\endcsname}
\def\tabl_ntb_get_row#1#2{\csname\??naturaltablerow\m_tabl_tbl_level:\number#1:\number#2\endcsname}
@@ -309,22 +365,27 @@
%def\tabl_ntb_get_wd#1#2{\csname\??naturaltablewd\m_tabl_tbl_level:\number#1:\number#2\endcsname}
\def\tabl_ntb_get_ht#1#2{\csname\??naturaltableht\m_tabl_tbl_level:\number#1:\number#2\endcsname}
-\def\tabl_ntb_set_wid#1{\xdefcsname\??naturaltablewid\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
-\def\tabl_ntb_set_hei#1{\xdefcsname\??naturaltablehei\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
-\def\tabl_ntb_set_dis#1{\xdefcsname\??naturaltabledis\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
-\def\tabl_ntb_set_aut#1{\xdefcsname\??naturaltableaut\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
+\def\tabl_ntb_set_wid#1{\global\expandafter\dimensiondef\csname\??naturaltablewid\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
+\def\tabl_ntb_set_hei#1{\global\expandafter\dimensiondef\csname\??naturaltablehei\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
+\def\tabl_ntb_set_dis#1{\global\expandafter\dimensiondef\csname\??naturaltabledis\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
+\def\tabl_ntb_set_aut#1{\global\expandafter\dimensiondef\csname\??naturaltableaut\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
\def\tabl_ntb_let_wid#1{\gletcsname\??naturaltablewid\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
\def\tabl_ntb_let_hei#1{\gletcsname\??naturaltablehei\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
\def\tabl_ntb_let_dis#1{\gletcsname\??naturaltabledis\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
\def\tabl_ntb_let_aut#1{\gletcsname\??naturaltableaut\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
+% \let\tabl_ntb_let_wid\tabl_ntb_set_wid
+% \let\tabl_ntb_let_hei\tabl_ntb_set_hei
+% \let\tabl_ntb_let_dis\tabl_ntb_set_dis
+% \let\tabl_ntb_let_aut\tabl_ntb_set_aut
+
\def\tabl_ntb_get_wid#1{\ifcsname\??naturaltablewid\m_tabl_tbl_level:\number#1\endcsname\lastnamedcs\else\zeropoint\fi}
\def\tabl_ntb_get_hei#1{\ifcsname\??naturaltablehei\m_tabl_tbl_level:\number#1\endcsname\lastnamedcs\else\zeropoint\fi}
\def\tabl_ntb_get_dis#1{\ifcsname\??naturaltabledis\m_tabl_tbl_level:\number#1\endcsname\lastnamedcs\else\zeropoint\fi}
\def\tabl_ntb_get_aut#1{\csname \??naturaltableaut\m_tabl_tbl_level:\number#1\endcsname}
-\def\tabl_ntb_let_bck#1#2{\global\expandafter\chardef\csname\??naturaltablebck\m_tabl_tbl_level:\number#1:\number#2\endcsname}
+\def\tabl_ntb_let_bck#1#2{\global\expandafter\integerdef\csname\??naturaltablebck\m_tabl_tbl_level:\number#1:\number#2\endcsname}
\def\tabl_ntb_get_bck#1#2{\csname\??naturaltablebck\m_tabl_tbl_level:\number#1:\number#2\endcsname}
@@ -358,11 +419,18 @@
%def\tabl_ntb_get_ref #1#2{\ifcsname\??naturaltableref\m_tabl_tbl_level:\number#1:\number#2\endcsname\csname\??naturaltableref\m_tabl_tbl_level:\number#1:\number#2\endcsname\fi}
\def\tabl_ntb_get_ref #1#2{\begincsname\??naturaltableref\m_tabl_tbl_level:\number#1:\number#2\endcsname}
-\def\tabl_ntb_set_spn #1{\letcsname\??naturaltablespn\m_tabl_tbl_level:\number#1\endcsname \!!plusone}
-\def\tabl_ntb_spn_doifelse#1{\ifcase0\csname\??naturaltablespn\m_tabl_tbl_level:\number#1\endcsname\relax % could be inlined
- \expandafter\secondoftwoarguments % unset
- \else
+% \def\tabl_ntb_set_spn #1{\letcsname\??naturaltablespn\m_tabl_tbl_level:\number#1\endcsname \!!plusone}
+% \def\tabl_ntb_spn_doifelse#1{\ifcase0\csname\??naturaltablespn\m_tabl_tbl_level:\number#1\endcsname\relax % could be inlined
+% \expandafter\secondoftwoarguments % unset
+% \else
+% \expandafter\firstoftwoarguments % a span
+% \fi}
+
+\def\tabl_ntb_set_spn #1{\letcsname\??naturaltablespn\m_tabl_tbl_level:\number#1\endcsname\plusone}
+\def\tabl_ntb_spn_doifelse#1{\ifcsname\??naturaltablespn\m_tabl_tbl_level:\number#1\endcsname
\expandafter\firstoftwoarguments % a span
+ \else
+ \expandafter\secondoftwoarguments % unset
\fi}
\protected\def\tabl_ntb_set_txt_process#1#2#3#4#5#6%
@@ -383,6 +451,7 @@
\newif\ifautoTBLcheckwidth \autoTBLcheckwidthtrue
\newif\ifappendTBLsetups \appendTBLsetupstrue
\newif\ifenableTBLbreak \enableTBLbreakfalse
+\newif\ifforceTBLpageflow \forceTBLpageflowfalse
\newif\ifmultipleTBLheads \multipleTBLheadsfalse
\newif\iftightTBLrowspan \tightTBLrowspantrue
\newif\iftightTBLcolspan \tightTBLcolspanfalse
@@ -398,9 +467,9 @@
\protected\def\tabl_ntb_cell_process#1#2[#3]{}
-\permanent\protected\def\bTC#1\eTC{\bTD#1\eTD} \aliased\let\eTC\relax
-\permanent\protected\def\bTX#1\eTX{\bTD#1\eTD} \aliased\let\eTX\relax
-\permanent\protected\def\bTY#1\eTY{\bTR#1\eTR} \aliased\let\eTY\relax
+\permanent\protected\def\bTC#1\eTC{\bTD#1\eTD} \permanent\protected\lettonothing\eTC
+\permanent\protected\def\bTX#1\eTX{\bTD#1\eTD} \permanent\protected\lettonothing\eTX
+\permanent\protected\def\bTY#1\eTY{\bTR#1\eTR} \permanent\protected\lettonothing\eTY
\let\tabl_ntb_parameters_get\setupcurrentnaturaltablelocal
@@ -444,28 +513,38 @@
\def\tabl_ntb_setup_three[#1]{\ifcsname\??naturaltablesetupthree#1\endcsname\expandafter\lastnamedcs\else\expandafter\tabl_ntb_setup_un\fi[#1]}
\def\tabl_ntb_setup_two [#1]{\ifcsname\??naturaltablesetuptwo #1\endcsname\expandafter\lastnamedcs\else\expandafter\tabl_ntb_setup_ux\fi[#1]}
-\setvalue{\??naturaltablesetupthree \v!row}[#1]{\tabl_ntb_setup_xy [\c!y]}
-\setvalue{\??naturaltablesetupthree \v!column}[#1]{\tabl_ntb_setup_xy [\c!x]}
-\setvalue{\??naturaltablesetupthree \v!start}[#1]{\tabl_ntb_setup_xy [\v!start]}
-\setvalue{\??naturaltablesetupthree \v!header}[#1]{\tabl_ntb_setup_xy [\v!header]}
+\defcsname\??naturaltablesetupthree \v!row\endcsname[#1]{\tabl_ntb_setup_xy [\c!y]}
+\defcsname\??naturaltablesetupthree \v!column\endcsname[#1]{\tabl_ntb_setup_xy [\c!x]}
+\defcsname\??naturaltablesetupthree \v!start\endcsname[#1]{\tabl_ntb_setup_xy [\v!start]}
+\defcsname\??naturaltablesetupthree \v!header\endcsname[#1]{\tabl_ntb_setup_xy [\v!header]}
+
+\defcsname\??naturaltablesetuptwo \v!row\endcsname[#1]{\tabl_ntb_setup_each[\c!y]}
+\defcsname\??naturaltablesetuptwo \v!column\endcsname[#1]{\tabl_ntb_setup_each[\c!x]}
+\defcsname\??naturaltablesetuptwo \v!start\endcsname[#1]{\tabl_ntb_setup_each[\v!start]}
+\defcsname\??naturaltablesetuptwo \v!header\endcsname[#1]{\tabl_ntb_setup_each[\v!header]}
+
+\letcsname\??naturaltablesetupthree\s!unknown\endcsname\tabl_ntb_setup_un
+\letcsname\??naturaltablesetuptwo \s!unknown\endcsname\tabl_ntb_setup_ux
-\setvalue{\??naturaltablesetuptwo \v!row}[#1]{\tabl_ntb_setup_each[\c!y]}
-\setvalue{\??naturaltablesetuptwo \v!column}[#1]{\tabl_ntb_setup_each[\c!x]}
-\setvalue{\??naturaltablesetuptwo \v!start}[#1]{\tabl_ntb_setup_each[\v!start]}
-\setvalue{\??naturaltablesetuptwo \v!header}[#1]{\tabl_ntb_setup_each[\v!header]}
+% \letcsnamecsname\csname\??naturaltablesetupthree r\endcsname\csname\??naturaltablesetupthree \v!row\endcsname
+% \letcsnamecsname\csname\??naturaltablesetupthree c\endcsname\csname\??naturaltablesetupthree\v!column\endcsname
+% \letcsnamecsname\csname\??naturaltablesetupthree y\endcsname\csname\??naturaltablesetupthree \v!row\endcsname
+% \letcsnamecsname\csname\??naturaltablesetupthree x\endcsname\csname\??naturaltablesetupthree\v!column\endcsname
-\letvalue{\??naturaltablesetupthree\s!unknown}\tabl_ntb_setup_un
-\letvalue{\??naturaltablesetuptwo \s!unknown}\tabl_ntb_setup_ux
+% \letcsnamecsname\csname\??naturaltablesetuptwo r\endcsname\csname\??naturaltablesetuptwo \v!row\endcsname
+% \letcsnamecsname\csname\??naturaltablesetuptwo c\endcsname\csname\??naturaltablesetuptwo \v!column\endcsname
+% \letcsnamecsname\csname\??naturaltablesetuptwo y\endcsname\csname\??naturaltablesetuptwo \v!row\endcsname
+% \letcsnamecsname\csname\??naturaltablesetuptwo x\endcsname\csname\??naturaltablesetuptwo \v!column\endcsname
-\letcsnamecsname\csname\??naturaltablesetupthree r\endcsname\csname\??naturaltablesetupthree \v!row\endcsname
-\letcsnamecsname\csname\??naturaltablesetupthree c\endcsname\csname\??naturaltablesetupthree\v!column\endcsname
-\letcsnamecsname\csname\??naturaltablesetupthree y\endcsname\csname\??naturaltablesetupthree \v!row\endcsname
-\letcsnamecsname\csname\??naturaltablesetupthree x\endcsname\csname\??naturaltablesetupthree\v!column\endcsname
+\letcsname\??naturaltablesetupthree r\expandafter\endcsname\csname\??naturaltablesetupthree \v!row\endcsname
+\letcsname\??naturaltablesetupthree c\expandafter\endcsname\csname\??naturaltablesetupthree\v!column\endcsname
+\letcsname\??naturaltablesetupthree y\expandafter\endcsname\csname\??naturaltablesetupthree \v!row\endcsname
+\letcsname\??naturaltablesetupthree x\expandafter\endcsname\csname\??naturaltablesetupthree\v!column\endcsname
-\letcsnamecsname\csname\??naturaltablesetuptwo r\endcsname\csname\??naturaltablesetuptwo \v!row\endcsname
-\letcsnamecsname\csname\??naturaltablesetuptwo c\endcsname\csname\??naturaltablesetuptwo \v!column\endcsname
-\letcsnamecsname\csname\??naturaltablesetuptwo y\endcsname\csname\??naturaltablesetuptwo \v!row\endcsname
-\letcsnamecsname\csname\??naturaltablesetuptwo x\endcsname\csname\??naturaltablesetuptwo \v!column\endcsname
+\letcsname\??naturaltablesetuptwo r\expandafter\endcsname\csname\??naturaltablesetuptwo \v!row\endcsname
+\letcsname\??naturaltablesetuptwo c\expandafter\endcsname\csname\??naturaltablesetuptwo \v!column\endcsname
+\letcsname\??naturaltablesetuptwo y\expandafter\endcsname\csname\??naturaltablesetuptwo \v!row\endcsname
+\letcsname\??naturaltablesetuptwo x\expandafter\endcsname\csname\??naturaltablesetuptwo \v!column\endcsname
\def\tabl_ntb_parameters_set[#1][#2]%
{\ifappendTBLsetups
@@ -547,10 +626,12 @@
{\tabl_ntb_setup_section % already forgotten
\edef\m_tabl_ntb_positive_row{\number#1}%
\edef\m_tabl_ntb_positive_col{\number#2}%
- \edef\m_tabl_ntb_negative_row{\the\numexpr-\c_tabl_ntb_maximum_row+#1+\minusone\relax}%
- \edef\m_tabl_ntb_negative_col{\the\numexpr-\c_tabl_ntb_maximum_col+#2+\minusone\relax}%
+% \edef\m_tabl_ntb_negative_row{\the\numexpr-\c_tabl_ntb_maximum_row+#1+\minusone\relax}%
+% \edef\m_tabl_ntb_negative_col{\the\numexpr-\c_tabl_ntb_maximum_col+#2+\minusone\relax}%
+ \edef\m_tabl_ntb_negative_row{\number\numexpr-\c_tabl_ntb_maximum_row+#1+\minusone}%
+ \edef\m_tabl_ntb_negative_col{\number\numexpr-\c_tabl_ntb_maximum_col+#2+\minusone}%
% saves tokens (no speed gain)
- \edef\m_tabl_ntb_prefix{\??naturaltableset\m_tabl_tbl_level:}%
+ \edef\m_tabl_ntb_prefix{\??naturaltableset\m_tabl_tbl_level:}% can move to \tabl_ntb_next_level etc
% each each
\begincsname\m_tabl_ntb_prefix\c!x\v!each\c!y\v!each\endcsname
\begincsname\m_tabl_ntb_prefix\c!y\v!each\endcsname
@@ -640,9 +721,9 @@
% \dorecurse{10}{\bTR \dorecurse{6}{\bTD xxx \eTD} \eTR}
% \eTABLE
-\let\m_tabl_ntb_before_split\empty
-\let\m_tabl_ntb_after_split \empty
-\let\m_tabl_ntb_same_page \empty
+\lettonothing\m_tabl_ntb_before_split
+\lettonothing\m_tabl_ntb_after_split
+\lettonothing\m_tabl_ntb_same_page
% split + page:
%
@@ -652,10 +733,24 @@
% \bTR \bTD left \eTD\bTD right \eTD\eTR
% \eTABLE
+% plugin
+
+\let\tabl_ntb_section_mark \relax
+\let\tabl_ntb_section_checkup\relax
+\let\tabl_ntb_section_split \relax
+\let\tabl_ntb_section_install\relax
+\let\tabl_ntb_section_setup \relax
+\let\tabl_ntb_section_wrapup \relax
+
+% till here
+
\tolerant\protected\def\tabl_ntb_tr[#1]%
{\c_tabl_ntb_running_col\zerocount
\c_tabl_ntb_encountered_col\zerocount
- \advance\c_tabl_ntb_maximum_row\plusone
+ %
+ \tabl_ntb_section_mark
+ %
+ \advanceby\c_tabl_ntb_maximum_row\plusone
\ifparameter#1\or
\expandafter\tabl_ntb_tr_yes
\else
@@ -669,7 +764,7 @@
\def\m_tabl_ntb_default_nc{\naturaltableparameter\c!nc}
\tolerant\protected\def\tabl_ntb_td[#1]%
- {\advance\c_tabl_ntb_encountered_col\plusone
+ {\advanceby\c_tabl_ntb_encountered_col\plusone
\ifparameter#1\or
\expandafter\tabl_ntb_td_yes
\else
@@ -677,13 +772,13 @@
\fi[#1]}
\def\tabl_ntb_td_yes[#1]#2\eTD
- {\letnaturaltableparameter\c!ny \m_tabl_ntb_default_nr
- \letnaturaltableparameter\c!nx \m_tabl_ntb_default_nc
- \letnaturaltableparameter\c!nc \plusone
- \letnaturaltableparameter\c!nr \plusone
- \letnaturaltableparameter\c!n \c_tabl_ntb_running_col
- \letnaturaltableparameter\c!m \empty
- \letnaturaltableparameter\c!action\empty % not that important
+ {\letnaturaltableparameter \c!ny\m_tabl_ntb_default_nr
+ \letnaturaltableparameter \c!nx\m_tabl_ntb_default_nc
+ \letnaturaltableparameter \c!nc\plusone
+ \letnaturaltableparameter \c!nr\plusone
+ \letnaturaltableparameter \c!n \c_tabl_ntb_running_col_reference
+ \resetnaturaltableparameter\c!m
+ \resetnaturaltableparameter\c!action% not that important
\setupcurrentnaturaltable[#1]%
%
\c_tabl_ntb_nx\naturaltableparameter\c!nx\relax
@@ -693,19 +788,20 @@
\edef\m_tabl_ntb_m{\naturaltableparameter\c!m}%
%
\ifempty\m_tabl_ntb_n
- \global\advance\c_tabl_ntb_spn\c_tabl_ntb_nx\relax
- \orelse\ifnum\m_tabl_ntb_n=\c_tabl_ntb_running_col\else
+ \global\advanceby\c_tabl_ntb_spn\c_tabl_ntb_nx\relax
+ \orelse\ifnum\m_tabl_ntb_n=\c_tabl_ntb_running_col
+ \else
\tabl_ntb_td_pass_n{#1}%
\fi
- \ifempty\m_tabl_ntb_m \else
- \ifnum\m_tabl_ntb_m=\c_tabl_ntb_running_col\else
- \tabl_ntb_td_pass_m{#1}%
- \fi
+ \ifempty\m_tabl_ntb_m
+ \orelse\ifnum\m_tabl_ntb_m=\c_tabl_ntb_running_col
+ \else
+ \tabl_ntb_td_pass_m{#1}%
\fi
- \doloop % skip over columns that result from earlier span
- {\advance\c_tabl_ntb_running_col\plusone
+ \localcontrolledloop\plusone\maxcard\plusone % skip over columns that result from earlier span
+ {\advanceby\c_tabl_ntb_running_col\plusone
\ifcsname\tabl_ntb_tag_pattern\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\endcsname \else
- \exitloop
+ \quitloop
\fi}%
% fill r*c cells and set span
\c_tabl_ntb_nx\naturaltableparameter\c!nx\relax
@@ -723,8 +819,8 @@
\fi
% set values
\tabl_ntb_let_tag\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\c_tabl_ntb_cell
- \tabl_ntb_set_col\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col{\the\c_tabl_ntb_nx}%
- \tabl_ntb_set_row\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col{\the\c_tabl_ntb_ny}%
+ \tabl_ntb_set_col\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\c_tabl_ntb_nx
+ \tabl_ntb_set_row\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\c_tabl_ntb_ny
% the action key will change!
\tabl_ntb_set_ref\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col{\naturaltableparameter\c!action}%
% save text
@@ -736,11 +832,11 @@
\fi}
\def\tabl_ntb_td_nop[#1]#2\eTD
- {\global\advance\c_tabl_ntb_spn\plusone\relax
- \doloop
- {\advance\c_tabl_ntb_running_col\plusone
+ {\global\advanceby\c_tabl_ntb_spn\plusone\relax
+ \localcontrolledloop\plusone\maxcard\plusone
+ {\advanceby\c_tabl_ntb_running_col\plusone
\ifcsname\tabl_ntb_tag_pattern\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\endcsname \else
- \exitloop
+ \quitloop
\fi}%
\c_tabl_ntb_nx\plusone
\c_tabl_ntb_ny\plusone
@@ -748,8 +844,8 @@
\c_tabl_ntb_maximum_col\c_tabl_ntb_running_col
\fi
\tabl_ntb_let_tag\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\c_tabl_ntb_cell
- \tabl_ntb_set_col\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col{\the\c_tabl_ntb_nx}%
- \tabl_ntb_set_row\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col{\the\c_tabl_ntb_ny}%
+ \tabl_ntb_set_col\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\c_tabl_ntb_nx
+ \tabl_ntb_set_row\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\c_tabl_ntb_ny
\tabl_ntb_let_ref\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\empty
\normalexpanded
{\tabl_ntb_set_txt_process\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col{\the\c_tabl_ntb_maximum_row}{\the\c_tabl_ntb_running_col}}%
@@ -768,43 +864,43 @@
\letnaturaltableparameter\c!nc\plusone
\letnaturaltableparameter\c!nr\plusone
\setupcurrentnaturaltable[#1]%
- \letnaturaltableparameter\c!n \empty
- \letnaturaltableparameter\c!m \empty}
+ \resetnaturaltableparameter\c!n
+ \resetnaturaltableparameter\c!m}
\def\tabl_ntb_td_pass_m#1%
{\scratchcounter\numexpr\m_tabl_ntb_m-\c_tabl_ntb_running_col+\minusone-\c_tabl_ntb_spn\relax
- \dorecurse\scratchcounter{\normalexpanded{\tabl_ntb_td[\c!n=,\c!m=]}\eTD}%
+ \localcontrolledloop\plusone\scratchcounter\plusone{\normalexpanded{\tabl_ntb_td[\c!n=,\c!m=]}\eTD}%
% can be sped up
\letnaturaltableparameter\c!ny\m_tabl_ntb_default_nr
\letnaturaltableparameter\c!nx\m_tabl_ntb_default_nc
\letnaturaltableparameter\c!nc\plusone
\letnaturaltableparameter\c!nr\plusone
\setupcurrentnaturaltable[#1]%
- \letnaturaltableparameter\c!n \empty
- \letnaturaltableparameter\c!m \empty}
+ \resetnaturaltableparameter\c!n
+ \resetnaturaltableparameter\c!m}
\def\tabl_ntb_cell_preset
{\c_tabl_ntb_current_row\c_tabl_ntb_maximum_row
\c_tabl_ntb_current_col\c_tabl_ntb_running_col
- \dorecurse\c_tabl_ntb_ny\tabl_ntb_cell_preset_rows
+ \localcontrolledloop\plusone\c_tabl_ntb_ny\plusone{\tabl_ntb_cell_preset_rows}%
% check max column
- \advance\c_tabl_ntb_current_col\minusone
+ \advanceby\c_tabl_ntb_current_col\minusone
\ifnum\c_tabl_ntb_current_col>\c_tabl_ntb_maximum_col\relax
\c_tabl_ntb_maximum_col\c_tabl_ntb_current_col
\fi}
\def\tabl_ntb_cell_preset_rows
{\c_tabl_ntb_current_col\c_tabl_ntb_running_col
- \tabl_ntb_set_col\c_tabl_ntb_current_row\c_tabl_ntb_current_col{\the\c_tabl_ntb_nx}%
+ \tabl_ntb_set_col\c_tabl_ntb_current_row\c_tabl_ntb_current_col\c_tabl_ntb_nx
\ifnum\c_tabl_ntb_nx>\c_tabl_ntb_maximum_row_span\relax
\c_tabl_ntb_maximum_row_span\c_tabl_ntb_nx
\fi
- \dorecurse\c_tabl_ntb_nx\tabl_ntb_cell_preset_cells
- \advance\c_tabl_ntb_current_row\plusone}
+ \localcontrolledloop\plusone\c_tabl_ntb_nx\plusone{\tabl_ntb_cell_preset_cells}%
+ \advanceby\c_tabl_ntb_current_row\plusone}
\def\tabl_ntb_cell_preset_cells
{\tabl_ntb_let_tag\c_tabl_ntb_current_row\c_tabl_ntb_current_col\c_tabl_ntb_none
- \advance\c_tabl_ntb_current_col\plusone}
+ \advanceby\c_tabl_ntb_current_col\plusone}
%D The usage of n and m:
%D
@@ -893,10 +989,10 @@
% to be done: head <raw> foot, dus state var
-\aliased\let\eTABLEhead\relax
-\aliased\let\eTABLEnext\relax
-\aliased\let\eTABLEbody\relax
-\aliased\let\eTABLEfoot\relax
+\permanent\protected\lettonothing\eTABLEhead
+\permanent\protected\lettonothing\eTABLEnext
+\permanent\protected\lettonothing\eTABLEbody
+\permanent\protected\lettonothing\eTABLEfoot
\permanent\tolerant\protected\def\bTABLEhead[#1]#:#2\eTABLEhead{\appendtoks\tabl_ntb_section[#1]{#2}\to\t_tabl_ntb_head}
\permanent\tolerant\protected\def\bTABLEnext[#1]#:#2\eTABLEnext{\appendtoks\tabl_ntb_section[#1]{#2}\to\t_tabl_ntb_next}
@@ -926,26 +1022,35 @@
\resetcharacteralign % new
\setupcurrentnaturaltablelocal[\c!align={\v!right,\v!broad,\v!high},#1]%
%
+ \tabl_ntb_anchor_setup
+ \tabl_ntb_section_setup
+ %
\d_tabl_ntb_leftmargindistance \naturaltablelocalparameter\c!leftmargindistance\relax
\d_tabl_ntb_rightmargindistance\naturaltablelocalparameter\c!rightmargindistance\relax
\d_tabl_ntb_columndistance \naturaltablelocalparameter\c!columndistance\relax
\d_tabl_ntb_maxwidth \naturaltablelocalparameter\c!maxwidth\relax
%
\usesetupsparameter\naturaltablelocalparameter
- \doifelse{\naturaltablelocalparameter\c!textwidth}\v!local
- {\hsize\availablehsize}
- {\hsize\naturaltablelocalparameter\c!textwidth}%
+ \hsize
+ \ifcstok{\naturaltablelocalparameter\c!textwidth}\v!local
+ \availablehsize
+ \else
+ \naturaltablelocalparameter\c!textwidth
+ \fi
+ \relax
\enableTBLbreakfalse
\multipleTBLheadsfalse
+ \forceTBLpageflowfalse
\autoTBLspreadfalse
\tightTBLcolspanfalse
\processaction
- [\naturaltablelocalparameter\c!split]
+ [\naturaltablelocalparameter\c!split]%
[ \v!yes=>\enableTBLbreaktrue,
\v!repeat=>\enableTBLbreaktrue\multipleTBLheadstrue,
- \v!auto=>\ifinsidesplitfloat\enableTBLbreaktrue\fi]
+ \v!page=>\enableTBLbreaktrue\forceTBLpageflowtrue,
+ \v!auto=>\ifinsidesplitfloat\enableTBLbreaktrue\fi]%
\processaction
- [\naturaltablelocalparameter\c!header]
+ [\naturaltablelocalparameter\c!header]%
[\v!repeat=>\multipleTBLheadstrue]%
\tabl_ntb_preset_parameters
\processallactionsinset
@@ -962,6 +1067,7 @@
\let\currentTABLEcolumn\tabl_ntb_current_column
\let\nofTABLErows \tabl_ntb_n_of_rows
\let\nofTABLEcolumns \tabl_ntb_n_of_columns
+ %
\enforced\let\bTR\tabl_ntb_bTR
\enforced\let\bTD\tabl_ntb_bTD
\enforced\let\bTH\tabl_ntb_bTH
@@ -997,7 +1103,7 @@
{% tricky and dirty order -)
\setfalse\c_tabl_ntb_okay
% head
- \doifelsesometoks\t_tabl_ntb_head % slow, better a flag
+ \doifelsesometoks\t_tabl_ntb_head % slow, better a flag \iftok
{\c_tabl_ntb_head\numexpr\c_tabl_ntb_maximum_row+\plusone\relax
\the\t_tabl_ntb_head
\c_tabl_ntb_n_of_head_lines\c_tabl_ntb_maximum_row\relax
@@ -1028,11 +1134,11 @@
\ifcase\c_tabl_ntb_maximum_col\else
\startTBLprocessing
\tabl_ntb_table_start
- \dorecurse\c_tabl_ntb_maximum_row
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_row\plusone
{\tabl_ntb_row_start
- \c_tabl_ntb_current_row\recurselevel\relax
- \dorecurse\c_tabl_ntb_maximum_col
- {\c_tabl_ntb_current_col\recurselevel\relax
+ \c_tabl_ntb_current_row\currentloopiterator\relax
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\c_tabl_ntb_current_col\currentloopiterator\relax
\normalexpanded{\tabl_ntb_cell{\the\c_tabl_ntb_current_row}{\the\c_tabl_ntb_current_col}}}%
\tabl_ntb_row_stop}%
\removeunwantedspaces % only if hmode
@@ -1043,13 +1149,14 @@
% \vskip-\strutdp
% \fi
\fi
+ \tabl_ntb_section_wrapup
% tracing
% \iftrue
% \blank \tttf
- % \dorecurse\c_tabl_ntb_maximum_row
- % {\c_tabl_ntb_current_row\recurselevel\relax
- % \dorecurse\c_tabl_ntb_maximum_col
- % {\c_tabl_ntb_current_col\recurselevel\relax
+ % \localcontrolledloop\plusone\c_tabl_ntb_maximum_row\plusone
+ % {\c_tabl_ntb_current_row\currentloopiterator\relax
+ % \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ % {\c_tabl_ntb_current_col\currentloopiterator\relax
% [r=\the\c_tabl_ntb_current_row,c=\the\c_tabl_ntb_current_col,h=\the\dimexpr\tabl_ntb_get_ht\c_tabl_ntb_current_row\c_tabl_ntb_current_col,w=\the\dimexpr\tabl_ntb_get_wd\c_tabl_ntb_current_row\c_tabl_ntb_current_col]}%
% \par}%
% \blank
@@ -1059,14 +1166,14 @@
\tabl_ntb_table_pop}
\def\tabl_ntb_loop_one
- {\dorecurse\c_tabl_ntb_maximum_row{\tabl_ntb_loop_one_rows}}
+ {\localcontrolledloop\plusone\c_tabl_ntb_maximum_row\plusone{\tabl_ntb_loop_one_rows}}
\def\tabl_ntb_loop_one_rows
- {\c_tabl_ntb_current_row\recurselevel\relax
- \dorecurse\c_tabl_ntb_maximum_col\tabl_ntb_loop_one_cells}
+ {\c_tabl_ntb_current_row\currentloopiterator\relax
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone{\tabl_ntb_loop_one_cells}}
\def\tabl_ntb_loop_one_cells
- {\c_tabl_ntb_current_col\recurselevel\relax
+ {\c_tabl_ntb_current_col\currentloopiterator\relax
\ifcsname\tabl_ntb_tag_pattern\c_tabl_ntb_current_row\c_tabl_ntb_current_col\endcsname \else
\tabl_ntb_loop_one_cells_indeed
\fi}
@@ -1075,25 +1182,25 @@
{\c_tabl_ntb_current_col_two\c_tabl_ntb_current_col
\c_tabl_ntb_current_row_two\c_tabl_ntb_current_row
\c_tabl_ntb_current_row_one\c_tabl_ntb_current_row
- \doloop
+ \localcontrolledloop\plusone\maxcard\plusone
{\c_tabl_ntb_current_col_one\c_tabl_ntb_current_col
- \doloop
+ \localcontrolledloop\plusone\maxcard\plusone
{\ifcsname\tabl_ntb_tag_pattern\c_tabl_ntb_current_row_one\c_tabl_ntb_current_col_one\endcsname
- \exitloop
+ \quitloop
\else
- \advance\c_tabl_ntb_current_col_one\plusone
+ \advanceby\c_tabl_ntb_current_col_one\plusone
\ifnum\c_tabl_ntb_current_col_one>\c_tabl_ntb_maximum_col\relax
- \exitloop
+ \quitloop
\fi
\fi}%
\ifcsname\tabl_ntb_tag_pattern\c_tabl_ntb_current_row_one\c_tabl_ntb_current_col_one\endcsname
- \exitloop
+ \quitloop
\else
\c_tabl_ntb_current_row_two\c_tabl_ntb_current_row_one
\c_tabl_ntb_current_col_two\c_tabl_ntb_current_col_one
- \advance\c_tabl_ntb_current_row_one\plusone
+ \advanceby\c_tabl_ntb_current_row_one\plusone
\ifnum\c_tabl_ntb_current_row_one>\c_tabl_ntb_maximum_row
- \exitloop
+ \quitloop
\fi
\fi}%
\ifnum\c_tabl_ntb_current_row_two>\c_tabl_ntb_maximum_row\c_tabl_ntb_current_row_two\c_tabl_ntb_maximum_row\fi
@@ -1101,16 +1208,16 @@
\c_tabl_ntb_current_row_two\numexpr\c_tabl_ntb_current_row_two-\c_tabl_ntb_current_row+\plusone\relax
\c_tabl_ntb_current_col_two\numexpr\c_tabl_ntb_current_col_two-\c_tabl_ntb_current_col+\plusone\relax
\c_tabl_ntb_current_row_one\c_tabl_ntb_current_row
- \dorecurse\c_tabl_ntb_current_row_two
+ \localcontrolledloop\plusone\c_tabl_ntb_current_row_two\plusone
{\c_tabl_ntb_current_col_one\c_tabl_ntb_current_col
- \tabl_ntb_set_col\c_tabl_ntb_current_row_one\c_tabl_ntb_current_col_one{\the\c_tabl_ntb_current_col_two}%
- \dorecurse\c_tabl_ntb_current_col_two
+ \tabl_ntb_set_col\c_tabl_ntb_current_row_one\c_tabl_ntb_current_col_one\c_tabl_ntb_current_col_two
+ \localcontrolledloop\plusone\c_tabl_ntb_current_col_two\plusone
{\tabl_ntb_let_tag\c_tabl_ntb_current_row_one\c_tabl_ntb_current_col_one\c_tabl_ntb_none
- \advance\c_tabl_ntb_current_col_one\plusone}%
- \advance\c_tabl_ntb_current_row_one\plusone}%
+ \advanceby\c_tabl_ntb_current_col_one\plusone}%
+ \advanceby\c_tabl_ntb_current_row_one\plusone}%
\tabl_ntb_let_tag\c_tabl_ntb_current_row\c_tabl_ntb_current_col\c_tabl_ntb_cell
- \tabl_ntb_set_col\c_tabl_ntb_current_row\c_tabl_ntb_current_col{\the\c_tabl_ntb_current_col_two}%
- \tabl_ntb_set_row\c_tabl_ntb_current_row\c_tabl_ntb_current_col{\the\c_tabl_ntb_current_row_two}%
+ \tabl_ntb_set_col\c_tabl_ntb_current_row\c_tabl_ntb_current_col\c_tabl_ntb_current_col_two
+ \tabl_ntb_set_row\c_tabl_ntb_current_row\c_tabl_ntb_current_col\c_tabl_ntb_current_row_two%
\ifautoTBLemptycell
\normalexpanded
{\tabl_ntb_set_txt_process\c_tabl_ntb_current_row\c_tabl_ntb_current_col{\the\c_tabl_ntb_current_row}{\the\c_tabl_ntb_current_col}}%
@@ -1118,18 +1225,19 @@
\fi}
\def\tabl_ntb_loop_two
- {\dorecurse\c_tabl_ntb_maximum_row\tabl_ntb_loop_two_rows}
+ {\localcontrolledloop\plusone\c_tabl_ntb_maximum_row\plusone{\tabl_ntb_loop_two_rows}}
\def\tabl_ntb_loop_two_rows
- {\c_tabl_ntb_current_row\recurselevel\relax
- \dorecurse\c_tabl_ntb_maximum_col\tabl_ntb_loop_two_cells}
+ {\c_tabl_ntb_current_row\currentloopiterator\relax
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone{\tabl_ntb_loop_two_cells}}
\def\tabl_ntb_loop_two_cells
- {\c_tabl_ntb_current_col\recurselevel\relax
+ {\c_tabl_ntb_current_col\currentloopiterator\relax
\ifcsname\tabl_ntb_row_pattern\c_tabl_ntb_current_row\c_tabl_ntb_current_col\endcsname
\scratchcounter\numexpr\c_tabl_ntb_maximum_row-\c_tabl_ntb_current_row+\plusone\relax
\ifnum\tabl_ntb_get_row\c_tabl_ntb_current_row\c_tabl_ntb_current_col>\scratchcounter
- \tabl_ntb_set_row\c_tabl_ntb_current_row\c_tabl_ntb_current_col{\the\scratchcounter}%
+% \tabl_ntb_set_row\c_tabl_ntb_current_row\c_tabl_ntb_current_col{\the\scratchcounter}%
+ \tabl_ntb_set_row\c_tabl_ntb_current_row\c_tabl_ntb_current_col\scratchcounter
\fi
\fi
\tabl_ntb_let_ht\c_tabl_ntb_current_row\c_tabl_ntb_current_col\zeropoint
@@ -1144,7 +1252,7 @@
\mutable\let\startTBLprocessing\relax % public
\mutable\let\stopTBLprocessing \relax % public
-\newcount\c_tabl_prelocated_rows % \prelocateTBLrows{1000} may speed up large tables
+\newinteger\c_tabl_prelocated_rows % \prelocateTBLrows{1000} may speed up large tables
% \def\tabl_ntb_row_start{\t_tabl_ntb_row\emptytoks}
% \def\tabl_ntb_row_stop {\normalexpanded{\t_tabl_ntb{\the\t_tabl_ntb\noexpand\tabl_ntb_row_align_start\the\t_tabl_ntb_row\tabl_ntb_row_align_stop}}}
@@ -1200,9 +1308,9 @@
\xdef\m_tabl_ntb_same_page {#3}}
\protected\def\tabl_ntb_row_align_reset
- {\glet\m_tabl_ntb_before_split\empty
- \glet\m_tabl_ntb_after_split \empty
- \glet\m_tabl_ntb_same_page \empty}
+ {\glettonothing\m_tabl_ntb_before_split
+ \glettonothing\m_tabl_ntb_after_split
+ \glettonothing\m_tabl_ntb_same_page }
\def\tabl_ntb_prelocate_error
{\writestatus\m!TABLE{fatal error: use \string\prelocateTBLrows\space to increase table memory (now: \the\c_tabl_prelocated_rows)}}
@@ -1210,8 +1318,8 @@
% \prelocateTBLrows{1000} % may speed up large tables
\permanent\protected\def\prelocateTBLrows#1% we start at zero so we have one to much, better play safe anyway
- {\dostepwiserecurse\c_tabl_prelocated_rows{#1}\plusone
- {\expandafter\newtoks\csname\??naturaltabletok\recurselevel\endcsname}%
+ {\localcontrolledloop\c_tabl_prelocated_rows#1\plusone
+ {\expandafter\newtoks\csname\??naturaltabletok\the\currentloopiterator\endcsname}%
\def\tabl_ntb_row_start
{\ifnum\c_tabl_ntb_row<\c_tabl_prelocated_rows\relax
\tabl_ntb_prelocate_okay
@@ -1277,13 +1385,14 @@
\fi}
\protected\def\tabl_ntb_row_align_start
- {\global\advance\c_tabl_ntb_row\plusone
+ {\global\advanceby\c_tabl_ntb_row\plusone
\global\c_tabl_ntb_col\plusone
\global\c_tabl_ntb_spn\zerocount
\tabl_ntb_row_align_start_inject
\ifconditional\c_strc_tags_enabled
\tabl_ntb_start_tagged
\fi
+ \tabl_ntb_section_checkup
\hbox\bgroup
\kern\dimexpr\d_tabl_ntb_leftmargindistance\relax}
@@ -1298,18 +1407,15 @@
\protected\def\tabl_ntb_before_page
{\ifx\m_tabl_ntb_same_page\v!before
% \blank[\v!samepage,\v!strong]%
- \unpenalty
\nobreak
\orelse\ifx\m_tabl_ntb_same_page\v!both
% \blank[\v!samepage,\v!strong]%
- \unpenalty
\nobreak
\fi}
\protected\def\tabl_ntb_after_page
{\ifnum\c_tabl_ntb_row>\c_tabl_ntb_n_of_head_lines
- \ifnum\tabl_ntb_get_nob\c_tabl_ntb_row=\zerocount
- \unpenalty
+ \ifnum\tabl_ntb_get_nob\c_tabl_ntb_row=\zerocount % no \ifzero
\ifx\m_tabl_ntb_same_page\v!after
% \blank[\v!samepage,\v!strong]%
\nobreak
@@ -1363,7 +1469,7 @@
\global\c_tabl_ntb_spn\zerocount
\global\c_tabl_ntb_col\zerocount
\global\c_tabl_ntb_row\zerocount
- \global\advance\c_tabl_ntb_row\minusone
+ \global\advanceby\c_tabl_ntb_row\minusone
\dostarttaggedchained\t!table\empty\??naturaltable
%\registerparoptions % (*) triggers max hsize
\the\t_tabl_ntb
@@ -1371,25 +1477,25 @@
\protected\def\tabl_ntb_span#1%
{\hskip\tabl_ntb_get_dis\c_tabl_ntb_col
- \dorecurse{#1}
+ \localcontrolledloop\plusone#1\plusone
{\hskip\tabl_ntb_get_wid\c_tabl_ntb_col\relax
- \global\advance\c_tabl_ntb_col\plusone}}
+ \global\advanceby\c_tabl_ntb_col\plusone}}
\protected\def\tabl_ntb_skip#1%
- {\global\advance\c_tabl_ntb_col#1\relax}
+ {\global\advanceby\c_tabl_ntb_col#1\relax}
\protected\def\tabl_ntb_plus
- {\global\advance\c_tabl_ntb_col\plusone
+ {\global\advanceby\c_tabl_ntb_col\plusone
\kern\d_tabl_ntb_columndistance}
-\setvalue{\??naturaltablecell\the\c_tabl_ntb_none}#1#2%
+\defcsname\??naturaltablecell\the\c_tabl_ntb_none\endcsname#1#2%
{\scratchcounter\tabl_ntb_get_col{#1}{#2}\relax
\ifnum\scratchcounter>\zerocount
\etoksapp\t_tabl_ntb_row
{\tabl_ntb_span{\the\scratchcounter}}%
\fi}
-\setvalue{\??naturaltablecell\the\c_tabl_ntb_cell}#1#2%
+\defcsname\??naturaltablecell\the\c_tabl_ntb_cell\endcsname#1#2%
{\toksapp\t_tabl_ntb_row{\tabl_ntb_pass #1 #2 }% space delimited -> less tokens
\scratchcounter\tabl_ntb_get_col{#1}{#2}\relax
\ifnum\scratchcounter>\zerocount
@@ -1419,27 +1525,27 @@
\scratchcounter\c_tabl_ntb_col
\scratchcounterone\tabl_ntb_get_col{#1}{#2}\relax
\ifcase\scratchcounterone\or
- \advance\d_tabl_ntb_width\dimexpr
+ \advanceby\d_tabl_ntb_width\dimexpr % no need for dimexpr
\tabl_ntb_get_wid\scratchcounter
\relax
- \advance\scratchcounter\plusone
+ \advanceby\scratchcounter\plusone
\else
- \dorecurse\scratchcounterone
- {\advance\d_tabl_ntb_width\dimexpr
+ \localcontrolledloop\plusone\scratchcounterone\plusone
+ {\advanceby\d_tabl_ntb_width\dimexpr
\tabl_ntb_get_wid\scratchcounter
- \ifnum\recurselevel<\scratchcounterone
+ \ifnum\currentloopiterator<\scratchcounterone
+\d_tabl_ntb_columndistance
+\tabl_ntb_get_dis\scratchcounter
\fi
\relax
- \advance\scratchcounter\plusone}%
+ \advanceby\scratchcounter\plusone}%
\fi
\setbox\scratchbox\hbox{\tabl_ntb_get_txt{#1}{#2}}%
- \tabl_ntb_set_ht{#1}{#2}{\the\ht\scratchbox}%
- %tabl_ntb_set_wd{#1}{#2}{\the\wd\scratchbox}%
+ \tabl_ntb_set_ht{#1}{#2}\ht\scratchbox
+ %tabl_ntb_set_wd{#1}{#2}\wd\scratchbox
\ifdim\ht\scratchbox>\tabl_ntb_get_hei{#1}\relax
- \tabl_ntb_set_hei{#1}{\the\ht\scratchbox}%
- \fi}%
+ \tabl_ntb_set_hei{#1}\ht\scratchbox
+ \fi}
\def\tabl_ntb_pass_three#1 #2 %
{% height
@@ -1454,9 +1560,9 @@
% case: nc=maxcolumns
\else
\scratchcounter#1\relax
- \dorecurse\scratchcountertwo
- {\advance\d_tabl_ntb_height\tabl_ntb_get_hei\scratchcounter
- \advance\scratchcounter\plusone}%
+ \localcontrolledloop\plusone\scratchcountertwo\plusone
+ {\advanceby\d_tabl_ntb_height\tabl_ntb_get_hei\scratchcounter
+ \advanceby\scratchcounter\plusone}%
\ifdim\d_tabl_ntb_height<\scratchheight\relax
\d_tabl_ntb_height\scratchheight
\fi
@@ -1465,20 +1571,20 @@
\d_tabl_ntb_width\zeropoint
\scratchcounter\c_tabl_ntb_col
\ifcase\scratchcounterone\or
- \advance\d_tabl_ntb_width\dimexpr
+ \advanceby\d_tabl_ntb_width\dimexpr
\tabl_ntb_get_wid\scratchcounter
\relax
- \advance\scratchcounter\plusone
+ \advanceby\scratchcounter\plusone
\else
- \dorecurse\scratchcounterone
- {\advance\d_tabl_ntb_width\dimexpr
+ \localcontrolledloop\plusone\scratchcounterone\plusone
+ {\advanceby\d_tabl_ntb_width\dimexpr
\tabl_ntb_get_wid\scratchcounter
- \ifnum\recurselevel<\scratchcounterone
+ \ifnum\currentloopiterator<\scratchcounterone
+\d_tabl_ntb_columndistance
+\tabl_ntb_get_dis\scratchcounter
\fi
\relax
- \advance\scratchcounter\plusone}%
+ \advanceby\scratchcounter\plusone}%
\fi
% cell
\setbox\scratchbox\hbox attr \taggedattribute \c_attr_tagged \bgroup
@@ -1516,7 +1622,7 @@
\def\tabl_ntb_cell_finalize_indeed
{\scratchdimen\tabl_ntb_get_aut\c_tabl_ntb_col\relax
\ifdim\localwidth>\scratchdimen
- \tabl_ntb_set_aut\c_tabl_ntb_col{\the\dimexpr\localwidth}%
+ \tabl_ntb_set_aut\c_tabl_ntb_col\localwidth\relax
\fi}
\let\tabl_ntb_preroll\relax
@@ -1524,11 +1630,11 @@
\def\tabl_ntb_table_get_max_width
{\scratchdimen\wd\scratchbox\relax}
-% enable dper 2018-02-22
+% enabled per 2018-02-22
\def\tabl_ntb_table_get_max_width_step
- {\advance\scratchdimen\tabl_ntb_get_wid\fastloopindex
- \advance\scratchdimen\tabl_ntb_get_dis\fastloopindex}
+ {\advanceby\scratchdimen\tabl_ntb_get_wid\fastloopindex
+ \advanceby\scratchdimen\tabl_ntb_get_dis\fastloopindex}
\def\tabl_ntb_table_get_max_width
{\scratchdimen\zeropoint
@@ -1537,31 +1643,31 @@
\scratchdimen\wd\scratchbox\relax
\fi}
-\newdimen\d_tabl_ntb_saved_hsize
+\newdimension\d_tabl_ntb_saved_hsize
\let\tabl_ntb_pass\relax
\def\tabl_ntb_table_stop
{\forgetall % new, here see narrower-004.tex
%\setbox\scratchbox\hbox
- % {\letnaturaltablelocalparameter\c!frame\v!off
- % \letnaturaltablelocalparameter\c!background\empty
- % \letnaturaltablelocalparameter\c!align\v!no
+ % {\letnaturaltablelocalparameter \c!frame \v!off
+ % \resetnaturaltablelocalparameter\c!background
+ % \letnaturaltablelocalparameter \c!align \v!no
% \inheritednaturaltablelocalframed{\strut}}%
%\edef\minimalcellheight{\the\ht\scratchbox}% not used
- \dorecurse\c_tabl_ntb_maximum_col
- {\tabl_ntb_let_aut\recurselevel\zeropoint
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\tabl_ntb_let_aut\currentloopiterator\zeropoint
% new
- \c_tabl_ntb_current_col_one\recurselevel\relax
- \dorecurse\c_tabl_ntb_maximum_row
- {%tabl_ntb_let_wd\recurselevel\c_tabl_ntb_current_col_one\zeropoint
- \tabl_ntb_let_ht\recurselevel\c_tabl_ntb_current_col_one\zeropoint}%
+ \c_tabl_ntb_current_col_one\currentloopiterator\relax
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_row\plusone
+ {%tabl_ntb_let_wd\currentloopiterator\c_tabl_ntb_current_col_one\zeropoint
+ \tabl_ntb_let_ht\currentloopiterator\c_tabl_ntb_current_col_one\zeropoint}%
% till here
- \tabl_ntb_let_tal\recurselevel\zerocount
- \tabl_ntb_let_wid\recurselevel\zeropoint
- \tabl_ntb_let_dis\recurselevel\zeropoint}%
- \dorecurse\c_tabl_ntb_maximum_row
- {\tabl_ntb_let_hei\recurselevel\maxdimen}%
+ \tabl_ntb_let_tal\currentloopiterator\zerocount
+ \tabl_ntb_let_wid\currentloopiterator\zeropoint
+ \tabl_ntb_let_dis\currentloopiterator\zeropoint}%
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_row\plusone
+ {\tabl_ntb_let_hei\currentloopiterator\maxdimen}%
\tabl_ntb_let_gal\zerocount
\tabl_ntb_preroll\relax
\c_tabl_tbl_pass\plusone
@@ -1636,27 +1742,29 @@
-\d_tabl_ntb_rightmargindistance
+\d_tabl_ntb_columndistance
\relax
- \dorecurse\c_tabl_ntb_maximum_col
- {\advance\scratchdimenfour\dimexpr
- \tabl_ntb_get_wid\recurselevel
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\advanceby\scratchdimenfour\dimexpr
+ \tabl_ntb_get_wid\currentloopiterator
\relax
- \advance\scratchdimenfive\dimexpr
- -\tabl_ntb_get_dis\recurselevel
+ \advanceby\scratchdimenfive\dimexpr
+ -\tabl_ntb_get_dis\currentloopiterator
-\d_tabl_ntb_columndistance
\relax}%
\relax
% distribute width (stretch)
\ifdim\scratchdimenfour<\scratchdimenfive
- \advance\scratchdimenfour-\scratchdimenfive
- \divide\scratchdimenfour\c_tabl_ntb_maximum_col
- \dorecurse\c_tabl_ntb_maximum_col
- {\tabl_ntb_set_wid\recurselevel{\the\dimexpr\tabl_ntb_get_wid\recurselevel-\scratchdimenfour\relax}}%
+ \advanceby\scratchdimenfour-\scratchdimenfive
+ \divideby\scratchdimenfour\c_tabl_ntb_maximum_col
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\scratchdimen\dimexpr\tabl_ntb_get_wid\currentloopiterator-\scratchdimenfour\relax
+ \tabl_ntb_set_wid\currentloopiterator\scratchdimen}%
\fi
\fi}
\def\tabl_ntb_split_nop
{\setbox\b_tabl_ntb_final\vbox{\tabl_ntb_flush_content}%
\postprocessTABLEbox\b_tabl_ntb_final
+ \tabl_ntb_anchor_process\b_tabl_ntb_final
\beforeTABLEbox
% packaging prevents max hsized box
% \hbox{\registerparoptions\box\b_tabl_ntb_final}% (*) better here
@@ -1670,18 +1778,29 @@
\box\b_tabl_ntb_final
\afterTABLEbox}
+\def\tabl_ntb_split_page
+ {%\postprocessTABLEbox\b_tabl_ntb_final
+ %\tabl_ntb_anchor_process\b_tabl_ntb_final
+ \beforeTABLEbox
+ \registerparoptions % (*) better here (also does a \dontleavehmode)
+ \ifhmode\else\dontleavehmode\fi
+ \tabl_ntb_flush_content
+ \afterTABLEbox}
+
\def\tabl_ntb_split_yes
{\ifinsidesplitfloat
- \donetrue
- \orelse\ifinsidefloat
\donefalse
- \else
+ \orelse\ifinsidefloat
\donetrue
+ \else
+ \donefalse
\fi
\ifdone
- \expandafter\tabl_ntb_split_box
- \else
\expandafter\tabl_ntb_split_nop
+ \orelse\ifforceTBLpageflow
+ \expandafter\tabl_ntb_split_page
+ \else
+ \expandafter\tabl_ntb_split_box
\fi}
\newbox\TABLEsplitbox % public, don't change
@@ -1697,11 +1816,12 @@
\t_split_after{\m_tabl_ntb_after_split}%
\t_split_before{\m_tabl_ntb_before_split}% not used (yet)
\setbox\b_split_content\vbox{\tabl_ntb_flush_content}%
+ \tabl_ntb_section_install % we need content to be set
\ifmultipleTBLheads
- \dorecurse\c_tabl_ntb_n_of_head_lines
+ \localcontrolledloop\plusone\c_tabl_ntb_n_of_head_lines\plusone
{\setbox\scratchbox\vsplit\b_split_content to \lineheight
\setbox\b_split_head\vbox{\unvcopy\b_split_head\unvcopy\scratchbox}}% \vpack ?
- \dorecurse\c_tabl_ntb_n_of_next_lines
+ \localcontrolledloop\plusone\c_tabl_ntb_n_of_next_lines\plusone
{\setbox\scratchbox\vsplit\b_split_content to \lineheight
\setbox\b_split_next\vbox{\unvcopy\b_split_next\unvcopy\scratchbox}}% \vpack ?
\fi
@@ -1734,110 +1854,105 @@
-\d_tabl_ntb_rightmargindistance
-\d_tabl_ntb_columndistance
\relax
- \dorecurse\c_tabl_ntb_maximum_col
- {\scratchdimen\tabl_ntb_get_aut\recurselevel\relax
- \advance\scratchdimenone\dimexpr
- -\tabl_ntb_get_dis\recurselevel
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\scratchdimen\tabl_ntb_get_aut\currentloopiterator
+ \advanceby\scratchdimenone\dimexpr
+ -\tabl_ntb_get_dis\currentloopiterator
-\d_tabl_ntb_columndistance
\relax
\ifdim\scratchdimen>\zeropoint\relax
- \advance\scratchdimenone -\scratchdimen
+ \advanceby\scratchdimenone -\scratchdimen
\else
- \scratchdimen\tabl_ntb_get_wid\recurselevel\relax
+ \scratchdimen\tabl_ntb_get_wid\currentloopiterator\relax
\ifdim\scratchdimen>\d_tabl_ntb_maxwidth\relax
- \ifcase#1\else\tabl_ntb_let_wid\recurselevel\zeropoint\fi
- \advance\scratchcounterone \plusone
+ \ifcase#1\else\tabl_ntb_let_wid\currentloopiterator\zeropoint\fi
+ \advanceby\scratchcounterone \plusone
\orelse\ifdim\scratchdimen>\zeropoint\relax
- \advance\scratchdimenone -\scratchdimen
- \else
+ \advanceby\scratchdimenone -\scratchdimen
+ \orelse\ifnum\c_tabl_ntb_encountered_max=\c_tabl_ntb_maximum_col % *nx* bah
% eigenlijk moet dit alleen als de kolom wordt overspannen door een
% vorige, maw extra dubbele loop en status var
- \ifnum\c_tabl_ntb_encountered_max=\c_tabl_ntb_maximum_col % *nx* bah
- \advance\scratchcounterone \plusone % setting maxwidth to a large value also works
- \fi
+ \advanceby\scratchcounterone \plusone % setting maxwidth to a large value also works
\fi
\fi}%
\ifconditional\c_tabl_ntb_trace_widths\tabl_ntb_show_widths M#1\fi
- \ifcase\scratchcounterone \else \divide\scratchdimenone \scratchcounterone \fi
- \dorecurse\c_tabl_ntb_maximum_col
- {\scratchdimen\tabl_ntb_get_wid\recurselevel\relax
+ \ifcase\scratchcounterone \else \divideby\scratchdimenone \scratchcounterone \fi
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\scratchdimen\tabl_ntb_get_wid\currentloopiterator
\ifcase#1\relax
\ifdim\scratchdimen<\scratchdimenone % take natural width
- \tabl_ntb_set_aut\recurselevel{\the\scratchdimen}%
+ \tabl_ntb_set_aut\currentloopiterator\scratchdimen
\fi
\else
\ifzeropt\scratchdimen % auto set width
- \tabl_ntb_set_wid\recurselevel{\the\scratchdimenone}%
+ \tabl_ntb_set_wid\currentloopiterator\scratchdimenone
\fi
\fi}%
\ifconditional\c_tabl_ntb_trace_widths\tabl_ntb_show_widths E#1\fi}
-% todo: use scratchcounters, not !! ones
-
\def\tabl_ntb_check_heights_one_indeed
{\scratchcountertwo\tabl_ntb_get_row\c_tabl_ntb_current_row_three\c_tabl_ntb_current_col_three\relax
% check row span
\ifnum\scratchcountertwo>\plusone
% current height in row
- \dimen0=\tabl_ntb_get_ht\c_tabl_ntb_current_row_three\c_tabl_ntb_current_col_three
+ \scratchdimenone\tabl_ntb_get_ht\c_tabl_ntb_current_row_three\c_tabl_ntb_current_col_three
% find nearest height in row
- \dimen2=\zeropoint
- \dorecurse\c_tabl_ntb_maximum_col
- {\ifnum\recurselevel=\c_tabl_ntb_current_col_three\else
- \ifcsname\tabl_ntb_row_pattern\c_tabl_ntb_current_row_three\recurselevel\endcsname
- \scratchcounterthree\tabl_ntb_get_row\c_tabl_ntb_current_row_three\recurselevel\relax
- \ifnum\scratchcounterthree=\plusone
- \dimen4=\tabl_ntb_get_ht\c_tabl_ntb_current_row_three\recurselevel\relax
- \ifdim\dimen2<\dimen4
- \dimen2=\dimen4
- \fi
+ \scratchdimentwo\zeropoint
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\ifnum\currentloopiterator=\c_tabl_ntb_current_col_three
+ \orelse\ifcsname\tabl_ntb_row_pattern\c_tabl_ntb_current_row_three\the\currentloopiterator\endcsname
+ \scratchcounterthree\tabl_ntb_get_row\c_tabl_ntb_current_row_three\currentloopiterator\relax
+ \ifnum\scratchcounterthree=\plusone
+ \scratchdimenthree\tabl_ntb_get_ht\c_tabl_ntb_current_row_three\currentloopiterator\relax
+ \ifdim\scratchdimentwo<\scratchdimenthree
+ \scratchdimentwo\scratchdimenthree
\fi
\fi
\fi}%
\c_tabl_ntb_current_row_four\c_tabl_ntb_current_row_three
% calculate cummulative height
- \dimen4=\dimen2
+ \scratchdimenthree\scratchdimentwo
\scratchcounterthree\c_tabl_ntb_current_row_three
- \advance\scratchcounterthree\minusone
- \dorecurse\scratchcountertwo
+ \advanceby\scratchcounterthree\minusone
+ \localcontrolledloop\plusone\scratchcountertwo\plusone
{\ifnum\c_tabl_ntb_current_row_four=\c_tabl_ntb_current_row_three\else
- \advance\dimen4 \tabl_ntb_get_hei\c_tabl_ntb_current_row_four
+ \advanceby\scratchdimenthree\tabl_ntb_get_hei\c_tabl_ntb_current_row_four
\fi
- \ifnum\recurselevel=\scratchcountertwo\else
+ \ifnum\currentloopiterator=\scratchcountertwo\else
\tabl_ntb_set_nob\scratchcounterthree
- \advance\scratchcounterthree\plusone
- \fi
- \advance\c_tabl_ntb_current_row_four\plusone}%
+ \advanceby\scratchcounterthree\plusone
+ \fi
+ \advanceby\c_tabl_ntb_current_row_four\plusone}%
% distribute overshoot equally
- \ifdim\dimen2>\zeropoint % new: test on natural-003
- \ifdim\dimen4<\dimen0
- \advance\dimen0 -\dimen4
- \divide\dimen0 \scratchcountertwo
+ \ifdim\scratchdimentwo>\zeropoint % new: test on natural-003
+ \ifdim\scratchdimenthree<\scratchdimenone
+ \advanceby\scratchdimenone -\scratchdimenthree
+ \divideby\scratchdimenone \scratchcountertwo
\c_tabl_ntb_current_row_four\c_tabl_ntb_current_row_three
- \tabl_ntb_set_hei\c_tabl_ntb_current_row_three{\the\dimen2}%
- \dorecurse\scratchcountertwo
- {\dorecurse\c_tabl_ntb_maximum_col
- {\ifnum\recurselevel=\c_tabl_ntb_current_col_three\else
- \scratchdimen\dimexpr\tabl_ntb_get_ht\c_tabl_ntb_current_row_four\recurselevel+\dimen0\relax
- \tabl_ntb_set_ht\c_tabl_ntb_current_row_four\recurselevel{\the\scratchdimen}%
+ \tabl_ntb_set_hei\c_tabl_ntb_current_row_three\scratchdimentwo\relax
+ \localcontrolledloop\plusone\scratchcountertwo\plusone
+ {\localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\ifnum\currentloopiterator=\c_tabl_ntb_current_col_three\else
+ \scratchdimen\dimexpr\tabl_ntb_get_ht\c_tabl_ntb_current_row_four\currentloopiterator+\scratchdimenone\relax
+ \tabl_ntb_set_ht\c_tabl_ntb_current_row_four\currentloopiterator\scratchdimen
\ifdim\tabl_ntb_get_hei\c_tabl_ntb_current_row_four<\scratchdimen
- \tabl_ntb_set_hei\c_tabl_ntb_current_row_four{\the\scratchdimen}%
+ \tabl_ntb_set_hei\c_tabl_ntb_current_row_four\scratchdimen
\fi
\fi}%
- \advance\c_tabl_ntb_current_row_four\plusone}%
- \orelse\ifdim\dimen4>\dimen0
+ \advanceby\c_tabl_ntb_current_row_four\plusone}%
+ \orelse\ifdim\scratchdimenthree>\scratchdimenone
\iftightTBLrowspan
- \tabl_ntb_set_hei\c_tabl_ntb_current_row_three{\the\dimen2}%
+ \tabl_ntb_set_hei\c_tabl_ntb_current_row_three\scratchdimentwo\relax
\fi
\fi
\fi
\fi}
\def\tabl_ntb_check_heights_one
- {\dorecurse\c_tabl_ntb_maximum_row
- {\c_tabl_ntb_current_row_three\recurselevel\relax
- \dorecurse\c_tabl_ntb_maximum_col
- {\c_tabl_ntb_current_col_three\recurselevel\relax
+ {\localcontrolledloop\plusone\c_tabl_ntb_maximum_row\plusone
+ {\c_tabl_ntb_current_row_three\currentloopiterator\relax
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\c_tabl_ntb_current_col_three\currentloopiterator\relax
\ifcsname\tabl_ntb_row_pattern\c_tabl_ntb_current_row_three\c_tabl_ntb_current_col_three\endcsname
\tabl_ntb_check_heights_one_indeed
\fi}}}
@@ -1848,16 +1963,15 @@
\def\tabl_ntb_show_widths#1#2%
{\begingroup
\scratchdimen\zeropoint
- \dorecurse\c_tabl_ntb_maximum_col
- {\advance\scratchdimen\tabl_ntb_get_wid\recurselevel\relax}%
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\advanceby\scratchdimen\tabl_ntb_get_wid\currentloopiterator\relax}%
\writestatus\m!TABLE{#1 \ifcase#2trial\else real\fi: hsize: \the\hsize, total: \the\scratchdimen}%
- \dorecurse\c_tabl_ntb_maximum_col
- {\writestatus\m!TABLE{\space\space\recurselevel: \the\dimexpr\tabl_ntb_get_wid\recurselevel}}%
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\writestatus\m!TABLE{\space\space\the\currentloopiterator: \the\dimexpr\tabl_ntb_get_wid\currentloopiterator}}%
\endgroup}
\def\tabl_ntb_char_align % called often
- {\edef\p_characteralign{\naturaltablelocalparameter\c!aligncharacter}%
- \ifx\p_characteralign\v!yes
+ {\ifcstok{\naturaltablelocalparameter\c!aligncharacter}\v!yes
\ifcase\c_tabl_tbl_pass\or
\tabl_ntb_let_tal\currentTABLEcolumn\plusone
\tabl_ntb_let_gal\plusone
@@ -1907,21 +2021,21 @@
\def\tabl_ntb_cell_process_a_check_span_two_nop
{\ifdim\tabl_ntb_get_wid\c_tabl_ntb_col<\wd\scratchbox
- \tabl_ntb_set_wid\c_tabl_ntb_col{\the\wd\scratchbox}%
+ \tabl_ntb_set_wid\c_tabl_ntb_col\wd\scratchbox
\fi}
\protected\def\tabl_ntb_cell_process_a#1#2[#3]#4% grouping added ! ! !
- {\bgroup
- \letnaturaltablelocalparameter\c!option\empty
+ {\begingroup
+ \resetnaturaltablelocalparameter\c!option\empty
\tabl_ntb_setup_cell{#1}{#2}%
\setupcurrentnaturaltablelocal[#3]%
- \letnaturaltablelocalparameter\c!background\empty
+ \resetnaturaltablelocalparameter\c!background
\letnaturaltablelocalparameter\c!frame\v!off
\scratchcounter\tabl_ntb_get_col{#1}{#2}\relax
\setbox\scratchbox\hbox
{\scratchdimen\naturaltablelocalparameter\c!distance\relax
\ifdim\scratchdimen>\tabl_ntb_get_dis{#2}\relax
- \tabl_ntb_set_dis{#2}{\the\scratchdimen}%
+ \tabl_ntb_set_dis{#2}\scratchdimen
\fi
\anch_backgrounds_text_level_start
\inheritednaturaltablelocalframed{\tabl_ntb_cell_start\tabl_ntb_char_align{#1}{#2}#4\tabl_ntb_cell_stop\tabl_ntb_cell_finalize}%
@@ -1942,10 +2056,10 @@
\scratchcounter\numexpr\c_tabl_ntb_row+\plusone\relax
\scratchdimen\tabl_ntb_get_hei\scratchcounter\relax
\ifdim\ht\scratchbox<\scratchdimen
- \tabl_ntb_set_hei\scratchcounter{\the\ht\scratchbox}% auto set
+ \tabl_ntb_set_hei\scratchcounter\ht\scratchbox% auto set
\fi
- \tabl_ntb_set_ht{#1}{#2}{\the\ht\scratchbox}%
- %tabl_ntb_set_wd{#1}{#2}{\the\wd\scratchbox}%
+ \tabl_ntb_set_ht{#1}{#2}\ht\scratchbox
+ %tabl_ntb_set_wd{#1}{#2}\wd\scratchbox
\ifautoTBLcheckwidth
\ifdim\wd\scratchbox<.75\hsize % fuzzy guess
\ifdim\ht\scratchbox>2\openlineheight % honor width since this
@@ -1953,10 +2067,10 @@
\ifzeropt\scratchdimen
% side effect: when width is set to 0pt,
% we can force a span that fits the sum of spans widths
- \tabl_ntb_set_aut\c_tabl_ntb_col{\the\scratchdimen}%
+ \tabl_ntb_set_aut\c_tabl_ntb_col\scratchdimen
\orelse\ifdim\wd\scratchbox>\scratchdimen
% unless span
- \tabl_ntb_set_aut\c_tabl_ntb_col{\the\wd\scratchbox}%
+ \tabl_ntb_set_aut\c_tabl_ntb_col\wd\scratchbox
% to be translated
\writestatus\m!TABLE{no auto width in (\number#1,\number#2)\space\the\wd\scratchbox/\the\hsize}%
\fi
@@ -1968,31 +2082,33 @@
\ht\scratchboxone\ht\scratchbox
\dp\scratchboxone\dp\scratchbox
\box\scratchboxone
- \egroup}
+ \endgroup}
\protected\def\tabl_ntb_cell_process_b_c#1#2#3[#4]#5%
- {\setbox\scratchbox\hbox
+ {\begingroup
+ \setbox\scratchbox\hbox
{\tabl_ntb_setup_cell{#2}{#3}%
\setupcurrentnaturaltablelocal[#4,#1]%
- \letnaturaltablelocalparameter\c!background\empty
+ \resetnaturaltablelocalparameter\c!background
\letnaturaltablelocalparameter\c!frame\v!off
\inheritednaturaltablelocalframed{\tabl_ntb_cell_start#5\tabl_ntb_cell_stop}}%
- \setbox2\emptyhbox % todo: \scratchboxtwo
- \wd2\wd\scratchbox
- \ht2\ht\scratchbox
- \dp2\dp\scratchbox
+ \setbox\scratchboxone\emptyhbox
+ \wd\scratchboxone\wd\scratchbox
+ \ht\scratchboxone\ht\scratchbox
+ \dp\scratchboxone\dp\scratchbox
\ifautoTBLrowspan
\scratchcounter\numexpr\c_tabl_ntb_row+\plusone\relax
\ifcsname\tabl_ntb_row_pattern\scratchcounter\c_tabl_ntb_col\endcsname
\scratchdimen\tabl_ntb_get_hei\scratchcounter\relax
\ifnum\tabl_ntb_get_row\scratchcounter\c_tabl_ntb_col>\plusone
\ifdim\ht\scratchbox>\scratchdimen
- \ht2\dimexpr-\scratchdimen-\ht\scratchbox\relax
+ \ht\scratchboxone\dimexpr-\scratchdimen-\ht\scratchbox\relax
\fi
\fi
\fi
\fi
- \box2 }
+ \box\scratchboxone
+ \endgroup}
\protected\def\tabl_ntb_cell_process_b#1#2[#3]#4%
{\scratchdimen\tabl_ntb_get_aut\c_tabl_ntb_col\relax
@@ -2015,35 +2131,40 @@
{\tabl_ntb_setup_cell{#1}{#2}%
\bgroup
\setupcurrentnaturaltablelocal[#3]%
- \letnaturaltablelocalparameter\c!background\empty
- \letnaturaltablelocalparameter\c!frame\v!off
- \setnaturaltablelocalparameter\c!width{\d_tabl_ntb_width}%
+ \resetnaturaltablelocalparameter\c!background
+ \letnaturaltablelocalparameter \c!frame \v!off
+ \setnaturaltablelocalparameter \c!width {\d_tabl_ntb_width}%
\inheritednaturaltablelocalframed{\tabl_ntb_cell_start\tabl_ntb_char_align{#1}{#2}#4\tabl_ntb_cell_stop}%
\egroup}
\protected\def\tabl_ntb_cell_process_e#1#2[#3]#4%
- {\tabl_ntb_setup_cell{#1}{#2}%
+ {\begingroup
+ \tabl_ntb_setup_cell{#1}{#2}%
\setupcurrentnaturaltablelocal[#3]% to get the color right, the way we
- \color % handle color here prevents interference due to whatsit nodes
- [\naturaltablelocalparameter\c!color] % as well as permits local colors to take precedence
- {\letnaturaltablelocalparameter\c!color\empty
- \setnaturaltablelocalparameter\c!width{\d_tabl_ntb_width}%
- \ifzeropt\d_tabl_ntb_height % case: nc=maxcolumns
- \else
- \setnaturaltablelocalparameter\c!height{\d_tabl_ntb_height}%
- \fi
- \ifcase\c_anch_backgrounds_text_count\else
- \edef\p_region{\naturaltablelocalparameter\c!region}%
- \ifempty\p_region\ifnum\tabl_ntb_get_bck{#1}{#2}>\zerocount
- \letnaturaltablelocalparameter\c!region\v!yes
- \fi\fi
- \fi
- \inheritednaturaltablelocalframed{\tabl_ntb_cell_start\tabl_ntb_char_align{#1}{#2}#4\tabl_ntb_cell_stop}}%
- \hskip\tabl_ntb_get_dis{#2}}
+ \directcolor[\naturaltablelocalparameter\c!color]%
+ \resetnaturaltablelocalparameter\c!color
+ \setnaturaltablelocalparameter \c!width{\d_tabl_ntb_width}%
+ \ifzeropt\d_tabl_ntb_height % case: nc=maxcolumns
+ \else
+ \setnaturaltablelocalparameter\c!height{\d_tabl_ntb_height}%
+ \fi
+ \ifcase\c_anch_backgrounds_text_count\else
+ \edef\p_region{\naturaltablelocalparameter\c!region}%
+ \ifempty\p_region\ifnum\tabl_ntb_get_bck{#1}{#2}>\zerocount
+ \letnaturaltablelocalparameter\c!region\v!yes
+ \fi\fi
+ \fi
+ \tabl_ntb_anchor_start{#1}{#2}%
+ \inheritednaturaltablelocalframed{\tabl_ntb_cell_start\tabl_ntb_char_align{#1}{#2}#4\tabl_ntb_cell_stop}%
+ \tabl_ntb_anchor_stop
+ \hskip\tabl_ntb_get_dis{#2}%
+ \endgroup}
\newtoks\everyresetTABLEyes
\newtoks\everyresetTABLEnop
+% todo : use \letTABLEparameter\c!width\v!fit ...
+
\appendtoks
\setupTABLE [%
%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/tabl-tab.mkxl b/Master/texmf-dist/tex/context/base/mkxl/tabl-tab.mkxl
index 547ff93ff5d..8c872cd477b 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/tabl-tab.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/tabl-tab.mkxl
@@ -34,11 +34,11 @@
\newconditional\c_tabl_table_spacing_left
\newconditional\c_tabl_table_spacing_right
-\newdimen \d_tabl_table_line_thickness_unit
-\newdimen \d_tabl_table_strut_unit
-\newskip \s_tabl_table_inter_column_space_unit
-\newdimen \d_tabl_table_column_width_unit
-\newdimen \d_tabl_table_kern_unit
+\newdimension \d_tabl_table_line_thickness_unit
+\newdimension \d_tabl_table_strut_unit
+\newgluespec \s_tabl_table_inter_column_space_unit
+\newdimension \d_tabl_table_column_width_unit
+\newdimension \d_tabl_table_kern_unit
\mutable\def\tablestrutheightfactor {8}
\mutable\def\tablestrutdepthfactor {3}
@@ -57,7 +57,8 @@
\dontcomplain
\tabl_table_restore_lineskips
\normalbaselines
- \enforced\let~\fixedspace
+ % \enforced\let~\fixedspace
+` \enforced\letcharcode\tildeasciicode\fixedspace % why
\inhibitblank % \blank[\v!disable]% % added
\the\everytableparbox}
@@ -84,26 +85,26 @@
\rightskip\zeropoint \s!plus 4em \relax
\to \everytableparbox
-\newskip \tablelefttabskip
-\newskip \tablerighttabskip
+\newgluespec \tablelefttabskip
+\newgluespec \tablerighttabskip
-\newcount\!taColumnNumber
-\newcount\!taRecursionLevel % (Initially 0)
+\newinteger \!taColumnNumber
+\newinteger \!taRecursionLevel % (Initially 0)
-\newdimen\!taDimenA % used by \Enlarge
-\newdimen\!taDimenB % used by \Enlarge
-\newdimen\!taDimenC % used by numeric.tex
-\newdimen\!taMinimumColumnWidth
+\newdimension\!taDimenA % used by \Enlarge
+\newdimension\!taDimenB % used by \Enlarge
+\newdimension\!taDimenC % used by numeric.tex
+\newdimension\!taMinimumColumnWidth
-\newtoks \!taTableSpread
-\newtoks \!taPreamble
-\newtoks \!taDataColumnTemplate
-\newtoks \!taRuleColumnTemplate
-\newtoks \!taOldRuleColumnTemplate
-\newtoks \!taLeftGlue
-\newtoks \!taRightGlue
+\newtoks \!taTableSpread
+\newtoks \!taPreamble
+\newtoks \!taDataColumnTemplate
+\newtoks \!taRuleColumnTemplate
+\newtoks \!taOldRuleColumnTemplate
+\newtoks \!taLeftGlue
+\newtoks \!taRightGlue
-\newskip \!taLastRegularTabskip
+\newgluespec \!taLastRegularTabskip
\newif \if!taBeginFormat
\newif \if!taOnceOnlyTabskip
@@ -122,13 +123,13 @@
{\!taPreamble\emptytoks
\!taColumnNumber\zerocount
\scratchskip\s_tabl_table_inter_column_space_unit
- \multiply\scratchskip\tableintercolumnspacefactor
- \divide\scratchskip\plustwo
+ \multiplyby\scratchskip\tableintercolumnspacefactor
+ \divideby\scratchskip\plustwo
\!taRuleColumnTemplate\expandafter{\expandafter\tabskip\the\scratchskip}%
\!taLastRegularTabskip\scratchskip
\!taOnceOnlyTabskipfalse
\!taBeginFormattrue
- \let\!tfRowOfWidths\empty
+ \lettonothing\!tfRowOfWidths
\doreadtableformatkeys}
\def\!tfSetWidth
@@ -143,7 +144,7 @@
\aftergroup\omit
\!thLoop
\ifnum \scratchcounter<\!taColumnNumber
- \advance\scratchcounter\plusone
+ \advanceby\scratchcounter\plusone
\aftergroup\!tfAOAO
\repeat
\aftergroup}%
@@ -169,18 +170,18 @@
\else
\!tgValue
\fi
- \let\!tfWidthText\empty % Override possible prior `w[sample entry]'
+ \lettonothing\!tfWidthText % Override possible prior `w[sample entry]'
\doreadtableformatkeys}
\def\!tfSetTabskip
{\ifnum\!tgCode=\plusone
\scratchskip\s_tabl_table_inter_column_space_unit
- \multiply\scratchskip \ifempty\!tgValue\tableintercolumnspacefactor\else\!tgValue\fi
+ \multiplyby\scratchskip \ifempty\!tgValue\tableintercolumnspacefactor\else\!tgValue\fi
\else
\scratchskip\!tgValue
\fi
- \divide\scratchskip\plustwo
- \ifnum\!taColumnNumber=\zerocount
+ \divideby\scratchskip\plustwo
+ \ifzero\!taColumnNumber
%\!thToksEdef\!taRuleColumnTemplate{\the\!taRuleColumnTemplate\tabskip\the\scratchskip}%
\normalexpanded{\!taRuleColumnTemplate{\the\!taRuleColumnTemplate\tabskip\the\scratchskip}}%
\else
@@ -207,7 +208,7 @@
\else
\!tgValue
\fi
- \alignmark\alignmark\alignmark\alignmark
+ \aligncontent
\hfil
\the\!taRuleColumnTemplate}%
\!tfAdjoinPriorColumn}
@@ -220,7 +221,7 @@
\!tfAdjoinPriorColumn}
\def\!tfAdjoinPriorColumn
- {\ifnum\!taColumnNumber=\zerocount
+ {\ifzero\!taColumnNumber
\!taPreamble=\!taRuleColumnTemplate % New \tabskip may have been added
\else
\ifempty\!tfRowOfWidths\else % no "w" keys specified yet, not even this col
@@ -229,17 +230,17 @@
\!thToksEdef\!taDataColumnTemplate{\the\!taLeftGlue\the\!taDataColumnTemplate\the\!taRightGlue}%
\!thToksEdef\!taPreamble{\the\!taPreamble\aligntab\the\!taDataColumnTemplate\aligntab\the\!taRuleColumnTemplate}%
\fi
- \advance\!taColumnNumber\plusone
+ \advanceby\!taColumnNumber\plusone
\if!taOnceOnlyTabskip
- \!thToksEdef\!taDataColumnTemplate{\alignmark\alignmark\alignmark\alignmark\tabskip\the\!taLastRegularTabskip}%
+ \!thToksEdef\!taDataColumnTemplate{\aligncontent\tabskip\the\!taLastRegularTabskip}%
\else
- \!taDataColumnTemplate{\alignmark\alignmark}%
+ \!taDataColumnTemplate{\aligncontent}%
\fi
\!taRuleColumnTemplate\emptytoks
\!taLeftGlue{\hfil}%
\!taRightGlue{\hfil}%
\!taMinimumColumnWidth\zeropoint
- \let\!tfWidthText\empty
+ \lettonothing\!tfWidthText
\!taOnceOnlyTabskipfalse
\doreadtableformatkeys}
@@ -259,24 +260,24 @@
\def\!tfComputeMinColWidth
{\setbox\scratchbox\vbox
- {\ialign{% Plain's initialized \halign; \tabskip=0pt \everycr={}
- \span\the\!taDataColumnTemplate\cr
- \!tfWidthText\cr}}%
+ {\everycr\emptytoks
+ \tabskip\zeroskip
+ \halign{\span\the\!taDataColumnTemplate\cr\!tfWidthText\cr}}%
\!taMinimumColumnWidth\wd\scratchbox}
\def\!tfFinishFormat
{\!thToksEdef\!taPreamble{%
- \alignmark\alignmark\alignmark\alignmark\tabskip\tablelefttabskip
+ \aligncontent\tabskip\tablelefttabskip
\aligntab
\the\!taPreamble\tabskip\tablerighttabskip
\aligntab
- \alignmark\alignmark\alignmark\alignmark\tabskip\zeropoint\cr}
+ \aligncontent\tabskip\zeropoint\cr}
\!taBeginFormatfalse
\!ttDoHalign}
\def\tabl_table_reformat[#1]% will become local
{\omit
- \!taDataColumnTemplate{\alignmark\alignmark}%
+ \!taDataColumnTemplate{\aligncontent}%
\!taLeftGlue\emptytoks
\!taRightGlue\emptytoks
\begingroup
@@ -298,7 +299,11 @@
\def\!tfReFormat#1%
{\the \!taLeftGlue
- \vbox{\forgetall\ialign{\span\the\!taDataColumnTemplate\cr#1\cr}}%
+ \vbox
+ {\forgetall
+ \everycr\emptytoks
+ \tabskip\zeroskip
+ \halign{\span\the\!taDataColumnTemplate\cr#1\cr}}%
\the \!taRightGlue
\kern\zeropoint} % prevents \unskip / really needed
@@ -320,7 +325,7 @@
\def\!tgCheckForSpace
{\def\!tgCode{1}%
- \let\!tgValue\empty
+ \lettonothing\!tgValue
\ifx\tempstring\!thSpaceToken
\expandafter\!tgReturn
\else
@@ -421,7 +426,7 @@
\!thLoop
\ifnum\scratchcounter>\zerocount
\toksapp\scratchtoks{#2}%
- \advance\scratchcounter\minusone
+ \advanceby\scratchcounter\minusone
\repeat
\expandafter\doreadtableformatkeys\the\scratchtoks}
@@ -626,7 +631,7 @@
\scratchcounter#1\relax
\!thLoop
\ifnum \scratchcounter>\zerocount
- \advance\scratchcounter\minusone
+ \advanceby\scratchcounter\minusone
\aftergroup0
\repeat
\def\tempstring{#3}%
@@ -635,7 +640,7 @@
\scratchcounter#2\relax
\!thLoop
\ifnum \scratchcounter>\zerocount
- \advance\scratchcounter\minusone
+ \advanceby\scratchcounter\minusone
\aftergroup0
\repeat
\fi
@@ -677,7 +682,7 @@
% extensions
\newtableformatkey q%
- {\let\!tqStyle\empty
+ {\lettonothing\!tqStyle
\futurelet\!tnext\!tqTestForBracket}
\newtableformatkey Q%
@@ -703,7 +708,7 @@
\scratchcounter#1\relax
\!thLoop
\ifnum \scratchcounter>\zerocount
- \advance\scratchcounter\minusone
+ \advanceby\scratchcounter\minusone
\aftergroup0
\repeat
\def\tempstring{#3}%
@@ -712,7 +717,7 @@
\scratchcounter#2\relax
\!thLoop
\ifnum\scratchcounter>\zerocount
- \advance\scratchcounter\minusone
+ \advanceby\scratchcounter\minusone
\aftergroup0
\repeat
\fi
@@ -754,9 +759,9 @@
% #2=extra depth
\!taDimenA=#1\relax
\!taDimenB=#2\relax
- \let\!TsSpaceFactor\empty
+ \lettonothing\!TsSpaceFactor
\ifmmode
- \expandafter\mathpalette
+ \expandafter\mathpalette % (*) the only place where still use this
\expandafter\!TsEnlargeMath
\else
\expandafter\!TsEnlargeOther
@@ -821,7 +826,7 @@
\fi
\bgroup % for the \vtop, \vbox, or \vcenter
\fi
- \advance\!taRecursionLevel\plusone
+ \advanceby\!taRecursionLevel\plusone
\let\!ttRightGlue\relax
\everycr\emptytoks
\ifnum\!taRecursionLevel=\plusone
@@ -831,7 +836,7 @@
\bgroup \catcode\tildeasciicode\activecatcode
\appendtoks
- \catcode\barasciicode\activecatcode
+% \catcode\barasciicode\activecatcode
\enforced\protected\def ~{\kern.5em}%
\enforced\protected\def\\{\ifhmode\space\else\par\fi}%
\to \everytable
@@ -889,10 +894,10 @@
% INSERT VRULE
-\newcount\c_tabl_table_n_of_vrules \c_tabl_table_n_of_vrules\plusone
+\newinteger\c_tabl_table_n_of_vrules \c_tabl_table_n_of_vrules\plusone
-\let\m_tabl_table_vrule_color\empty
-\let\m_tabl_table_hrule_color\empty
+\lettonothing\m_tabl_table_vrule_color
+\lettonothing\m_tabl_table_hrule_color
\def\tabl_table_insert_vrule
{\vrule\s!width
@@ -925,7 +930,7 @@
\global\c_tabl_table_n_of_vrules\plusone
\unskip
\fi
- \glet\m_tabl_table_vrule_color\empty
+ \glettonothing\m_tabl_table_vrule_color
\hfil
\aligntab}
@@ -945,22 +950,22 @@
\omit
\global\setfalse\c_tabl_table_is_division % added
\scratchcounter\currenttablecolumn % added
- \advance\scratchcounter #1% % added
- \advance\scratchcounter \minusone % added
+ \advanceby\scratchcounter #1% % added
+ \advanceby\scratchcounter \minusone % added
\def\next % added
- {\global\advance\currenttablecolumn #1% % added
- \global\advance\currenttablecolumn \minusone % added
+ {\global\advanceby\currenttablecolumn #1% % added
+ \global\advanceby\currenttablecolumn \minusone % added
\scratchcounter#1%
- \advance\scratchcounter \minusone
- \advance\scratchcounter \scratchcounter
+ \advanceby\scratchcounter \minusone
+ \advanceby\scratchcounter \scratchcounter
\!thLoop
\ifnum\scratchcounter>\plusone
- \spanomit \advance\scratchcounter\minusone
+ \spanomit \advanceby\scratchcounter\minusone
\repeat
\span}%
\else % added
\def\next % conflicts with possible next \omit % added
- {\global\advance\currenttablecolumn \plusone}%% added
+ {\global\advanceby\currenttablecolumn \plusone}%% added
\fi
\next} % added
@@ -1014,7 +1019,7 @@
\else
\!tgValue % user-specified dimension
\fi
- \divide\scratchdimen\plustwo}
+ \divideby\scratchdimen\plustwo}
% \emptyhbox prevents \unskip
@@ -1023,8 +1028,8 @@
\def\tabl_table_Right #1{\hfill#1}
\def\tabl_table_OpenUp#1#2%
- {\edef\tablestrutheightfactor{\withoutpt\the\dimexpr\tablestrutheightfactor\points+#1\points}%
- \edef\tablestrutdepthfactor {\withoutpt\the\dimexpr\tablestrutdepthfactor \points+#2\points}}
+ {\edef\tablestrutheightfactor{\toscaled\dimexpr\tablestrutheightfactor\points+#1\points}%
+ \edef\tablestrutdepthfactor {\toscaled\dimexpr\tablestrutdepthfactor \points+#2\points}}
% SetTableToWidth -> textwidth=dimension [to dimension]
% Expand -> textwidth=max [to \hsize]
@@ -1040,7 +1045,7 @@
\def\tabl_table_Smash
{\relax
\ifmmode
- \expandafter\mathpalette
+ \expandafter\mathpalette % (*)
\expandafter\!thDoMathVCS
\else
\expandafter\!thDoVCS
@@ -1069,8 +1074,8 @@
{\ifnum\!tgCode=\plusone
\ifempty\!tgValue
\!taDimenA\tablestrutheightfactor\d_tabl_table_strut_unit
- \advance\!taDimenA\tablestrutdepthfactor\d_tabl_table_strut_unit
- \divide\!taDimenA\plustwo
+ \advanceby\!taDimenA\tablestrutdepthfactor\d_tabl_table_strut_unit
+ \divideby\!taDimenA\plustwo
\else
\!taDimenA\!tgValue\d_tabl_table_strut_unit
\fi
@@ -1079,7 +1084,7 @@
\fi
\!taDimenA\!thSign\!taDimenA\relax
\ifmmode
- \expandafter\mathpalette
+ \expandafter\mathpalette % (*)
\expandafter\!thDoMathRaise
\else
\expandafter\!thDoSimpleRaise
@@ -1376,8 +1381,8 @@
{\tabl_tables_chuck_auto_row % before the tail, else noalign problem
\tabl_table_insert_tail
\noalign\bgroup
- \glet\tabl_table_head\empty
- \glet\tabl_table_tail\empty
+ \glettonothing\tabl_table_head
+ \glettonothing\tabl_table_tail
\egroup
\tabl_table_finish
\ifempty\p_tabl_table_frame
@@ -1429,7 +1434,7 @@
\tolerant\def\tabl_table_define_template[#1]#*[#2]#*[#3]#*[#4]%
{\ifarguments\or\else
- \setgvalue{\??tabletemplate#1}{\tabl_table_use_template{#2}{#3}{#4}}%
+ \gdefcsname\??tabletemplate#1\endcsname{\tabl_table_use_template{#2}{#3}{#4}}%
\fi
\egroup}
@@ -1488,26 +1493,42 @@
% \noalign{\globalpopmacro\simpletableHL}%
}
-\bgroup \catcode\barasciicode\othercatcode
+% \bgroup \catcode\barasciicode\othercatcode
+%
+% \gdef\tabl_table_second_stage[#1]% brr nested mess
+% {\bgroup
+% \tabl_table_use_bar
+% \global\setfalse\tableactionstatepermitted
+% \global\setfalse\hassometablehead
+% \global\setfalse\hassometabletail
+% \expanded{\doifelseinstring{|}{#1}}
+% {\xdef\tabl_table_restart{\noexpand\tabl_table_restart_indeed{\noexpand\tabl_table_third_stage{#1}}}}
+% {\ifcsname\??tabletemplate#1\endcsname
+% \gdef\tabl_table_restart{\csname\??tabletemplate#1\endcsname}%
+% \else
+% \gdef\tabl_table_restart{\tabl_table_restart_indeed{\begincsname#1\endcsname}}%
+% \fi}%
+% \egroup
+% \tabl_table_restart}
+%
+% \egroup
-\gdef\tabl_table_second_stage[#1]% brr nested mess
+\def\tabl_table_second_stage[#1]% brr nested mess
{\bgroup
\tabl_table_use_bar
\global\setfalse\tableactionstatepermitted
\global\setfalse\hassometablehead
\global\setfalse\hassometabletail
- \expanded{\doifelseinstring{|}{#1}}
- {\xdef\tabl_table_restart{\noexpand\tabl_table_restart_indeed{\noexpand\tabl_table_third_stage{#1}}}}
- {\ifcsname\??tabletemplate#1\endcsname
- \gdef\tabl_table_restart{\csname\??tabletemplate#1\endcsname}%
- \else
- \gdef\tabl_table_restart{\tabl_table_restart_indeed{\begincsname#1\endcsname}}%
- \fi}%
+ \normalexpanded{\noexpand\ifhastoks{|}{#1}}%
+ \xdef\tabl_table_restart{\noexpand\tabl_table_restart_indeed{\noexpand\tabl_table_third_stage{#1}}}%
+ \orelse\ifcsname\??tabletemplate#1\endcsname
+ \gdef\tabl_table_restart{\csname\??tabletemplate#1\endcsname}%
+ \else
+ \gdef\tabl_table_restart{\tabl_table_restart_indeed{\begincsname#1\endcsname}}%
+ \fi
\egroup
\tabl_table_restart}
-\egroup
-
%D The third stage involves a lot of (re)sets, which we will explain later.
\appendtoks
@@ -1519,7 +1540,7 @@
\newtoks\localtabledefinitions
-\mutable\let\currenttableformat\empty
+\mutable\lettonothing\currenttableformat
\def\tabl_table_third_stage#1%
{\global\settrue\tableactionstatepermitted
@@ -1591,8 +1612,8 @@
\egroup
\dontcomplain
\tabl_table_split_box\tablecontentbox
- \glet\tabl_table_head\empty % new here
- \glet\tabl_table_tail\empty % new here
+ \glettonothing\tabl_table_head % new here
+ \glettonothing\tabl_table_tail % new here
\flushnotes
\egroup}
@@ -1640,13 +1661,15 @@
%D (grouped) if needed. The rather complicated definition below is due to the fact
%D that the stopcondition is interface language dependant.
-\let\tabl_table_head\empty % needs checking
-\let\tabl_table_tail\empty % needs checking
+%D This is so old ... adapting it to use tolerant might break something:
-\letvalue{\e!start\v!tablehead}\relax % todo: frozen, but we use a grabber
-\letvalue{\e!stop \v!tablehead}\relax % todo: frozen, but we use a grabber
-\letvalue{\e!start\v!tabletail}\relax % todo: frozen, but we use a grabber
-\letvalue{\e!stop \v!tabletail}\relax % todo: frozen, but we use a grabber
+\lettonothing\tabl_table_head % needs checking
+\lettonothing\tabl_table_tail % needs checking
+
+\letcsname\e!start\v!tablehead\endcsname\relax % todo: frozen, but we use a grabber
+\letcsname\e!stop \v!tablehead\endcsname\relax % todo: frozen, but we use a grabber
+\letcsname\e!start\v!tabletail\endcsname\relax % todo: frozen, but we use a grabber
+\letcsname\e!stop \v!tabletail\endcsname\relax % todo: frozen, but we use a grabber
%D The second argument is a dummy one, by scanning for it, we get rid of
%D interfering spaces.
@@ -1655,9 +1678,6 @@
\newconditional\hassometablehead
\newconditional\hassometabletail
-% \def\tabl_table_set_head[#1][#2]#3\end{\setvalue{\??tablehead#1}{\noalign{\global\settrue\hassometablehead}#3}}
-% \def\tabl_table_set_tail[#1][#2]#3\end{\setvalue{\??tabletail#1}{\noalign{\global\settrue\hassometabletail}#3}}
-
\permanent\protected\def\settablehead{\dodoubleempty\tabl_table_set_head} % todo: use pickup
\permanent\protected\def\settabletail{\dodoubleempty\tabl_table_set_tail} % todo: use pickup
@@ -1691,8 +1711,8 @@
\noalign\bgroup
\nobreak
\tabl_table_set_action\tableunknownstate
- \glet\tabl_tables_check_auto_row\empty
- \glet\tabl_tables_chuck_auto_row\empty
+ \glettonothing\tabl_tables_check_auto_row
+ \glettonothing\tabl_tables_chuck_auto_row
\global\currenttablecolumn\zerocount
\egroup}
@@ -1821,18 +1841,18 @@
{\glet\tabl_tables_check_auto_row\tabl_tables_check_auto_row_indeed
\glet\tabl_tables_chuck_auto_row\tabl_tables_chuck_auto_row_indeed}
-\let\tabl_tables_check_auto_row\empty
-\let\tabl_tables_chuck_auto_row\empty
+\lettonothing\tabl_tables_check_auto_row
+\lettonothing\tabl_tables_chuck_auto_row
\def\tabl_tables_check_auto_row_indeed
- {\glet\tabl_tables_check_auto_row\empty
+ {\glettonothing\tabl_tables_check_auto_row
\ifnum\tableactionstate=\tablerulestate \FR\orelse
\ifnum\tableactionstate=\tableunknownstate\FR\else
\MR\fi}
\def\tabl_tables_chuck_auto_row_indeed
- {\glet\tabl_tables_check_auto_row\empty
- \glet\tabl_tables_chuck_auto_row\empty
+ {\glettonothing\tabl_tables_check_auto_row
+ \glettonothing\tabl_tables_chuck_auto_row
\ifnum\tableactionstate=\tablerulestate \SR\orelse
\ifnum\tableactionstate=\tableunknownstate\SR\else
\LR\fi}
@@ -1854,16 +1874,17 @@
%D the number of \type{|}'s and \type{\VL}'s or alike is always one more than the
%D number of columns.
-\newcount\currenttablecolumn
+\newinteger\currenttablecolumn
-% DWhile defining this macro we change the \CATCODE\ of \type{|}. When counting the
-% Dbars, we use a non active representation of the bar, simply because we cannot be
-% Dsure if the bar is active or not.\footnote{Normally it is, but \TABLE\ changes
-% Dthe catcode when needed.}
+%D While defining this macro we change the \CATCODE\ of \type{|}. When counting the
+%D bars, we use a non active representation of the bar, simply because we cannot be
+%D sure if the bar is active or not.\footnote{Normally it is, but \TABLE\ changes
+%D the catcode when needed.}
\bgroup
- \catcode\barasciicode\othercatcode \permanent\gdef\tabl_table_bar{|}
- \catcode\barasciicode\activecatcode\gdef\tabl_table_use_bar{\enforced\let|\tabl_table_bar}
+% \catcode\barasciicode\othercatcode \permanent\gdef\tabl_table_bar{|}
+% \catcode\barasciicode\activecatcode\gdef\tabl_table_use_bar{\enforced\let|\tabl_table_bar}
+\glet\tabl_table_use_bar\relax
\egroup
\bgroup \catcode\barasciicode\othercatcode
@@ -1871,7 +1892,7 @@
\gdef\tabl_tables_get_nofcolumns#1% todo: also divert this to lua as with tabulate
{\bgroup
\cleanupfeatures % needed !
- \tabl_table_use_bar
+ \tabl_table_use_bar % doesn't do anything as we don't treat #1
\egroup}
\egroup
@@ -1883,12 +1904,12 @@
%D \sym{\type{\HC}} a horizontal colored line
%D \stopitemize
-\newcount\c_tabl_table_vrule_thickness_factor
-\newcount\c_tabl_table_hrule_thickness_factor
-\newcount\c_tabl_table_drule_span
+\newinteger\c_tabl_table_vrule_thickness_factor
+\newinteger\c_tabl_table_hrule_thickness_factor
+\newinteger\c_tabl_table_drule_span
-\let\m_tabl_table_vrule_color\empty
-\let\m_tabl_table_hrule_color\empty
+\lettonothing\m_tabl_table_vrule_color
+\lettonothing\m_tabl_table_hrule_color
\appendtoks
\enforced\let\VL\tabl_table_VL
@@ -1907,13 +1928,13 @@
\def\tabl_table_vrulecommand#1% global assignments
{\doifelsenumber{#1}
{\global\c_tabl_table_vrule_thickness_factor#1\relax
- \global\multiply\c_tabl_table_vrule_thickness_factor\m_tabl_table_VLwidth\relax}
+ \global\multiplyby\c_tabl_table_vrule_thickness_factor\m_tabl_table_VLwidth\relax}
{\xdef\m_tabl_table_vrule_color{#1}}}
\permanent\tolerant\protected\def\tabl_table_VL[#1]%
{\tabl_tables_check_auto_row
- \global\advance\currenttablecolumn\plusone
- \glet\m_tabl_table_vrule_color\empty
+ \global\advanceby\currenttablecolumn\plusone
+ \glettonothing\m_tabl_table_vrule_color
\global\c_tabl_table_vrule_thickness_factor\m_tabl_table_VLwidth\relax
\iftok{#1}\emptytoks\else
\rawprocesscommalist[#1]\tabl_table_vrulecommand
@@ -1938,7 +1959,7 @@
\def\tabl_table_hrulecommand#1% global assignments
{\doifelsenumber{#1}
{\global\c_tabl_table_hrule_thickness_factor#1\relax
- \global\multiply\c_tabl_table_hrule_thickness_factor\m_tabl_table_HLheight\relax}
+ \global\multiplyby\c_tabl_table_hrule_thickness_factor\m_tabl_table_HLheight\relax}
{\xdef\m_tabl_table_hrule_color{#1}}}
\permanent\tolerant\protected\def\tabl_table_HL[#1]%
@@ -1957,7 +1978,7 @@
\bgroup
\global\c_tabl_table_hrule_thickness_factor\m_tabl_table_HLheight\relax
\ifparameter#1\or
- \glet\m_tabl_table_hrule_color\empty
+ \glettonothing\m_tabl_table_hrule_color
\rawprocesscommalist[#1]\tabl_table_hrulecommand
\ifempty\m_tabl_table_hrule_color\else
\switchtocolor[\m_tabl_table_hrule_color]%
@@ -2022,7 +2043,7 @@
\protected\def\tabl_table_NC
{\tabl_tables_check_auto_row
- \global\advance\currenttablecolumn \plusone
+ \global\advanceby\currenttablecolumn \plusone
\tabl_table_normal_no_bar}
%D \startitemize[3*broad]
@@ -2055,7 +2076,7 @@
\global\c_tabl_table_drule_span#1\relax
\else
\global\c_tabl_table_hrule_thickness_factor#1\relax
- \global\multiply\c_tabl_table_hrule_thickness_factor\m_tabl_table_VLwidth\relax
+ \global\multiplyby\c_tabl_table_hrule_thickness_factor\m_tabl_table_VLwidth\relax
\fi}
{\xdef\m_tabl_table_hrule_color{#1}}}
@@ -2073,20 +2094,20 @@
\global\c_tabl_table_hrule_thickness_factor\m_tabl_table_HLheight\relax
\global\c_tabl_table_drule_span\zerocount
\iftok{#1}\emptytoks\else
- \glet\m_tabl_table_hrule_color\empty
+ \glettonothing\m_tabl_table_hrule_color
\rawprocesscommalist[#1]\tabl_table_drulecommand
% \ifempty\m_tabl_table_hrule_color\else
% \switchtocolor[\m_tabl_table_hrule_color]% see *DL*
% \fi
\fi
\ifcase\c_tabl_table_drule_span
- \global\advance\currenttablecolumn \plusone
+ \global\advanceby\currenttablecolumn \plusone
\tabl_table_normal_single_rule
\or
- \global\advance\currenttablecolumn \plustwo
+ \global\advanceby\currenttablecolumn \plustwo
\tabl_table_normal_single_rule
\else
- \global\advance\currenttablecolumn \plusone
+ \global\advanceby\currenttablecolumn \plusone
\tabl_table_normal_multi_rule
\fi
\fi}
@@ -2100,7 +2121,7 @@
\permanent\protected\def\tabl_table_DCV#1%
{\tabl_table_check_division
\tabl_tables_check_auto_row
- \global\advance\currenttablecolumn \plusone
+ \global\advanceby\currenttablecolumn \plusone
#1}
\permanent\protected\def\tabl_table_DR
@@ -2189,8 +2210,8 @@
\else
\let\tablestrutdepthfactor\p_tabl_table_depth
\fi
- \edef\tablestrutheightfactor{\withoutpt\the\dimexpr10\dimexpr\tablestrutheightfactor\points}%
- \edef\tablestrutdepthfactor {\withoutpt\the\dimexpr10\dimexpr\tablestrutdepthfactor \points}%
+ \edef\tablestrutheightfactor{\toscaled\dimexpr10\dimexpr\tablestrutheightfactor\points}%
+ \edef\tablestrutdepthfactor {\toscaled\dimexpr10\dimexpr\tablestrutdepthfactor \points}%
\d_tabl_table_strut_unit \dimexpr\normalbaselineskip/12\relax % 12 is default bodyfont
\d_tabl_table_kern_unit .5em\relax
\s_tabl_table_inter_column_space_unit.5em plus 1fil minus .25em\relax
diff --git a/Master/texmf-dist/tex/context/base/mkxl/tabl-tbl.lmt b/Master/texmf-dist/tex/context/base/mkxl/tabl-tbl.lmt
new file mode 100644
index 00000000000..50d8719055b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/tabl-tbl.lmt
@@ -0,0 +1,60 @@
+if not modules then modules = { } end modules ['tabl-tbl'] = {
+ version = 1.001,
+ comment = "companion to tabl-tbl.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- A couple of hacks ... easier to do in Lua than in regular TeX. More will
+-- follow.
+
+local tonumber = tonumber
+local gsub, rep, sub, find = string.gsub, string.rep, string.sub, string.find
+local P, C, Cc, Ct, lpegmatch = lpeg.P, lpeg.C, lpeg.Cc, lpeg.Ct, lpeg.match
+
+local context = context
+local commands = commands
+
+local texsetcount = tex.setcount
+local texiscount = tex.iscount
+
+local separator = P("|") -- keep { }
+----- nested = C(lpeg.patterns.nested) -- remove { }
+local nested = lpeg.patterns.argument
+local pattern = Ct((separator * (nested + Cc("")) * C((1-separator)^0))^0)
+
+local ctx_settabulatelastentry = context.settabulatelastentry
+local ctx_settabulateentry = context.settabulateentry
+
+local c_tabl_tabulate_nofcolumns = texiscount("c_tabl_tabulate_nofcolumns")
+local c_tabl_tabulate_has_rule_spec_first = texiscount("c_tabl_tabulate_has_rule_spec_first")
+local c_tabl_tabulate_has_rule_spec_last = texiscount("c_tabl_tabulate_has_rule_spec_last")
+
+-- the lmtx raw processor handles {} like the normal one so we need to prune
+
+local function presettabulate(preamble)
+ preamble = gsub(preamble,"~","d") -- let's get rid of ~ mess here
+ if find(preamble,"*",1,true) then
+ -- todo: lpeg but not now
+ preamble = gsub(preamble, "%*(%b{})(%b{})", function(n,p)
+ return rep(sub(p,2,-2),tonumber(sub(n,2,-2)) or 1)
+ end)
+ end
+ local t = lpegmatch(pattern,preamble)
+ local m = #t - 2
+ texsetcount("global",c_tabl_tabulate_nofcolumns, m/2)
+ texsetcount("global",c_tabl_tabulate_has_rule_spec_first, t[1] == "" and 0 or 1)
+ texsetcount("global",c_tabl_tabulate_has_rule_spec_last, t[m+1] == "" and 0 or 1)
+ for i=1,m,2 do
+ ctx_settabulateentry(t[i],t[i+1])
+ end
+ ctx_settabulatelastentry(t[m+1])
+end
+
+interfaces.implement {
+ name = "presettabulate",
+ actions = presettabulate,
+ arguments = "string",
+ scope = "private",
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/tabl-tbl.mkxl b/Master/texmf-dist/tex/context/base/mkxl/tabl-tbl.mkxl
index 88cd791e488..b3b4b4c886c 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/tabl-tbl.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/tabl-tbl.mkxl
@@ -15,7 +15,13 @@
\unprotect
-\registerctxluafile{tabl-tbl}{} % experiment
+% These are set at the lua end by parser:
+
+\newinteger\c_tabl_tabulate_nofcolumns
+\newinteger\c_tabl_tabulate_has_rule_spec_first
+\newinteger\c_tabl_tabulate_has_rule_spec_last
+
+\registerctxluafile{tabl-tbl}{autosuffix} % experiment
%D I can probably reimplement this using a \LUATEX\ combination but it does not pay
%D of in development time. If I need something else I will write it from scratch
@@ -161,58 +167,61 @@
\newtoks \t_tabl_tabulate_initializers_first
\newtoks \t_tabl_tabulate_initializers_second
-\newcount \c_tabl_tabulate_nofauto
-\newcount \c_tabl_tabulate_columns
-\newcount \c_tabl_tabulate_column
-\newcount \c_tabl_tabulate_plines_min
-\newcount \c_tabl_tabulate_plines_max
-\newcount \c_tabl_tabulate_max_colorcolumn
-\newcount \c_tabl_tabulate_max_vrulecolumn
-\newcount \c_tabl_tabulate_repeathead
-\newcount \c_tabl_tabulate_noflines
-\newcount \c_tabl_tabulate_totalnoflines
-\newcount \c_tabl_tabulate_minusnoflines
-\newcount \c_tabl_tabulate_align
-\newcount \c_tabl_tabulate_nofrealrows
-\newcount \c_tabl_tabulate_autocolor
-
-\newcount \c_tabl_tabulate_nofcolumns % set at the lua end by parser
-\newcount \c_tabl_tabulate_has_rule_spec_first % set at the lua end by parser (for the moment a count)
-\newcount \c_tabl_tabulate_has_rule_spec_last % set at the lua end by parser (for the moment a count)
+\newinteger \c_tabl_tabulate_nofauto
+\newinteger \c_tabl_tabulate_columns
+\newinteger \c_tabl_tabulate_column
+\newinteger \c_tabl_tabulate_plines_min
+\newinteger \c_tabl_tabulate_plines_max
+\newinteger \c_tabl_tabulate_max_colorcolumn
+\newinteger \c_tabl_tabulate_max_vrulecolumn
+\newinteger \c_tabl_tabulate_repeathead
+\newinteger \c_tabl_tabulate_noflines
+\newinteger \c_tabl_tabulate_totalnoflines
+\newinteger \c_tabl_tabulate_minusnoflines
+\newinteger \c_tabl_tabulate_align
+\newinteger \c_tabl_tabulate_nofrealrows
+\newinteger \c_tabl_tabulate_autocolor
\newconditional \c_tabl_tabulate_nopbreak
\newconditional \c_tabl_tabulate_firstflushed
\newconditional \c_tabl_tabulate_equal
-\newconditional \c_tabl_tabulate_split \settrue\c_tabl_tabulate_split
+\newconditional \c_tabl_tabulate_split
\newconditional \c_tabl_tabulate_automode
-\newconditional \c_tabl_tabulate_handlepbreak \settrue\c_tabl_tabulate_handlepbreak
-\newconditional \c_tabl_tabulate_autorulespacing \settrue\c_tabl_tabulate_autorulespacing
+\newconditional \c_tabl_tabulate_handlepbreak
+\newconditional \c_tabl_tabulate_autorulespacing
\newconditional \c_tabl_tabulate_someamble
\newconditional \c_tabl_tabulate_tolerant_break
\newconditional \c_tabl_tabulate_splitoff_whitespace
\newconditional \c_tabl_tabulate_pwidth_set
\newconditional \c_tabl_tabulate_reshape
-
-\newdimen \d_tabl_tabulate_width_p
-\newdimen \d_tabl_tabulate_width_w
-\newdimen \d_tabl_tabulate_width
-\newdimen \d_tabl_tabulate_unit
-\newdimen \d_tabl_tabulate_height_p_max
-\newdimen \d_tabl_tabulate_vrulethickness_default
-\newdimen \d_tabl_tabulate_hrulethickness_default
-\newdimen \d_tabl_tabulate_vrulethickness
-\newdimen \d_tabl_tabulate_hrulethickness % not used
-\newdimen \d_tabl_tabulate_vrulethickness_local
-\newdimen \d_tabl_tabulate_hrulethickness_local
-\newdimen \d_tabl_tabulate_indent
-\newdimen \d_tabl_tabulate_splitoff_betweenskip
-\newdimen \d_tabl_tabulate_margin
-
-\newskip \s_tabl_tabulate_pre
-\newskip \s_tabl_tabulate_post
-\newskip \s_tabl_tabulate_first
-\newskip \s_tabl_tabulate_last
-\newskip \s_tabl_tabulate_separator
+\newconditional \c_tabl_tabulate_no_blank_in_paragraphs % can become always on
+\newconditional \c_tabl_tabulate_no_interline_space
+
+\settrue \c_tabl_tabulate_split
+\settrue \c_tabl_tabulate_handlepbreak
+\settrue \c_tabl_tabulate_autorulespacing
+\settrue \c_tabl_tabulate_no_blank_in_paragraphs
+
+\newdimension \d_tabl_tabulate_width_p
+\newdimension \d_tabl_tabulate_width_w
+\newdimension \d_tabl_tabulate_width
+\newdimension \d_tabl_tabulate_unit
+\newdimension \d_tabl_tabulate_height_p_max
+\newdimension \d_tabl_tabulate_vrulethickness_default
+\newdimension \d_tabl_tabulate_hrulethickness_default
+\newdimension \d_tabl_tabulate_vrulethickness
+\newdimension \d_tabl_tabulate_hrulethickness % not used
+\newdimension \d_tabl_tabulate_vrulethickness_local
+\newdimension \d_tabl_tabulate_hrulethickness_local
+\newdimension \d_tabl_tabulate_indent
+\newdimension \d_tabl_tabulate_splitoff_betweenskip
+\newdimension \d_tabl_tabulate_margin
+
+\newgluespec \s_tabl_tabulate_pre
+\newgluespec \s_tabl_tabulate_post
+\newgluespec \s_tabl_tabulate_first
+\newgluespec \s_tabl_tabulate_last
+\newgluespec \s_tabl_tabulate_separator
\newbox \b_tabl_tabulate
@@ -227,7 +236,7 @@
%newconditional \c_tabl_pre_is_set
\newconditional \c_tabl_post_is_set
-\let \m_tabl_tabulate_separator_factor \empty % fraction
+\lettonothing \m_tabl_tabulate_separator_factor % fraction
\aliased\let\tabulatesplitlinemode\c_tabl_tabulate_splitlinemode % temp hack, we need an interface
@@ -262,7 +271,7 @@
\to \t_tabl_tabulate_initializers_second
\prependtoks
- \global\advance\c_tabl_tabulate_nofrealrows\plusone
+ \global\advanceby\c_tabl_tabulate_nofrealrows\plusone
\to \t_tabl_tabulate_every_real_row
\permanent\def\b_tabl_tabulate_current#1%
@@ -275,7 +284,7 @@
\def\tabl_tabulate_initialize_boxes_step
{\ifnum\scratchcounter>\zerocount
\tabl_tabulate_initialize_box\scratchcounter
- \advance\scratchcounter\minusone
+ \advanceby\scratchcounter\minusone
\expandafter\tabl_tabulate_initialize_boxes_step
\fi}
@@ -286,7 +295,7 @@
\tabl_tabulate_initialize_box_nop#1%
\fi}
-\def\tabl_tabulate_initialize_box_yes {\global \setbox\lastnamedcs\emptybox}
+\def\tabl_tabulate_initialize_box_yes {\global\setbox\lastnamedcs\emptybox}
\def\tabl_tabulate_initialize_box_nop#1{\expandafter\newbox\csname\??tabulatebox\number#1\endcsname}
\tabl_tabulate_initialize_boxes{16} % not really needed
@@ -295,7 +304,8 @@
% 1 = RC column raw RQ equal column raw
% 2 = HC column hook HQ equal column hook
-% [|lg{.}|] => \NG 12.34 \NC
+% [|lg{.}|] => \NG 12.34 \NC % old
+% [|lG{.}|] => \NG 12.34 \NC % new
\def\tabl_tabulate_nobreak_inject_tracer
{\red % maybe use the fast color switcher here
@@ -328,8 +338,10 @@
\protected\def\tabl_tabulate_setups_check
{\begincsname\??tabulatesetup\the\c_tabl_tabulate_column\endcsname}
+\let\tabl_tabulate_kooh\relax
+
\protected\def\tabl_tabulate_entry_before{\ignorespaces\tabl_tabulate_hook}
-\protected\def\tabl_tabulate_entry_after {\unskip\unskip\ifmmode\else\endgraf\fi}
+\protected\def\tabl_tabulate_entry_after {\unskip\unskip\ifmmode\else\endgraf\fi\tabl_tabulate_kooh}
\protected\def\tabl_tabulate_shaped_par_begin
{\dowithnextboxcs\tabl_tabulate_shaped_par_finish\vbox\bgroup}
@@ -352,7 +364,7 @@
\xdef\m_tabl_tabulate_color{#1}%
\else
\glet\m_tabl_tabulate_color\m_tabl_tabulate_color_local
- \glet\m_tabl_tabulate_color_local\empty
+ \glettonothing\m_tabl_tabulate_color_local
\fi
\ifcase\c_tabl_tabulate_localcolorspan
\global\c_tabl_tabulate_colorspan#2\relax
@@ -379,7 +391,7 @@
\xdef\m_tabl_tabulate_vrule_color{#1}%
\else
\glet\m_tabl_tabulate_vrule_color\m_tabl_tabulate_vrule_color_local
- \glet\m_tabl_tabulate_vrule_color_local\empty
+ \glettonothing\m_tabl_tabulate_vrule_color_local
\fi}
\let\tabl_tabulate_check_local_color \gobbletwoarguments
@@ -398,11 +410,11 @@
% \protected % we can expand this one
\def\tabl_tabulate_inject_pre_skip#1%
{\ifdim#1>\zeropoint
- \kern#1\relax % was \hskip
- \orelse\ifnum\c_tabl_tabulate_column=\zerocount
+ \kern#1\relax % hskip
+ \orelse\ifzero\c_tabl_tabulate_column
\ifconditional\c_tabl_tabulate_autorulespacing
\ifcase\c_tabl_tabulate_has_rule_spec_first\else
- \kern\s_tabl_tabulate_first\relax % was \hskip
+ \kern\s_tabl_tabulate_first\relax % hskip
\fi
\fi
\fi}
@@ -414,32 +426,50 @@
\orelse\ifnum\c_tabl_tabulate_columns=\c_tabl_tabulate_nofcolumns
\ifconditional\c_tabl_tabulate_autorulespacing
\ifcase\c_tabl_tabulate_has_rule_spec_last\else
- \kern\s_tabl_tabulate_last\relax % was \hskip
+ \kern\s_tabl_tabulate_last\relax % hskip
\fi
\fi
\fi}
\let\tabl_tabulate_hook_b\donothing
\let\tabl_tabulate_hook_e\donothing
-
\let\tabl_tabulate_hook_g\donothing
+\let\tabl_tabulate_hook_G\donothing
+
+\newconditional\c_tabl_use_size
+\newconditional\c_tabl_sparse_skips
+
+\settrue\c_tabl_use_size % default per 2022-08-25
+\settrue\c_tabl_sparse_skips % default per 2022-08-25
+
+\installtexdirective {tabulateusesize} {\settrue\c_tabl_use_size} {\setfalse\c_tabl_use_size}
+\installtexdirective {tabulatesparseskips} {\settrue\c_tabl_sparse_skips} {\setfalse\c_tabl_sparse_skips}
\def\tabl_tabulate_set_preamble_step#1#2% only makes sense for many tabulates
{\etoksapp\t_tabl_tabulate_preamble{%
+ % begin of between/initial part
\tabl_tabulate_check_local_vrule_thickness\constantdimenargument\d_tabl_tabulate_vrulethickness
\tabl_tabulate_check_local_vrule_color\constantemptyargument\m_tabl_tabulate_vrule_color
\tabl_tabulate_check_local_color\constantemptyargument\m_tabl_tabulate_color\constantnumberargument\c_tabl_tabulate_colorspan
\tabl_tabulate_color_side_right
+ % end of between/initial part
\aligntab
+ % begin of left part
\tabl_tabulate_column_vrule_inject
\tabl_tabulate_color_side_left
\tabl_tabulate_inject_pre_skip{\the\dimexpr\s_tabl_tabulate_pre}% get rid of plus
- \alignmark\alignmark
+ \aligncontent % \alignmark\alignmark
+ % end of left part
+ \ifconditional\c_tabl_use_size
+ \tabsize\zeropoint
+ \fi
\aligntab
+ % begin of main cell
\tabl_tabulate_color_side_both
\global\c_tabl_tabulate_colorspan\zerocount
\global\c_tabl_tabulate_column\constantnumber\c_tabl_tabulate_columns
\tabl_tabulate_hook_g
+ \tabl_tabulate_anchor % new
\tabl_tabulate_setups_check % unexpandable
\tabl_tabulate_hook_check % unexpandable
\ifzeropt\d_tabl_tabulate_width
@@ -448,7 +478,11 @@
\fi
\else
\ifcase\c_tabl_tabulate_modus
- \hbox to
+ \ifconditional\c_tabl_use_size
+ \tabsize % we could remove one level of grouping
+ \else
+ \hbox to
+ \fi
\else
\hsize
\fi
@@ -483,8 +517,11 @@
% grouping needs to be outside macros (or expandable), nice test
% example \NC \string \aligntab \NC which will fail otherwise (mk)
\bgroup
+ \tabl_tabulate_hook_G
\tabl_tabulate_entry_before
- \alignmark\alignmark
+\tabl_tabulate_hook_box_begin % might move
+ \aligncontent
+\tabl_tabulate_hook_box_end % might move
\tabl_tabulate_entry_after
\egroup
\noexpand\ifnum\noexpand\c_tabl_tabulate_type=\plusone\noexpand\else
@@ -493,17 +530,24 @@
\noexpand\fi
\ifconditional\c_tabl_tabulate_reshape
\tabl_tabulate_shaped_par_end
+ \else
\fi
\noexpand#2%
\tabl_tabulate_hook_e
\egroup
\egroup
+ % end of main cell
\aligntab
+ \ifconditional\c_tabl_use_size
+ \tabsize\zeropoint
+ \fi
+ % begin of right part
\noexpand\dostoptagged
\tabl_tabulate_inject_post_skip
{\the\ifconditional\c_tabl_post_is_set\s_tabl_tabulate_post\else\s_tabl_tabulate_last\fi}%
{\the\s_tabl_tabulate_post}%
- \alignmark\alignmark
+ \aligncontent % \alignmark\alignmark
+ % end of right part
}%
\toksapp\t_tabl_tabulate_dummy{\NC}%
\s_tabl_tabulate_pre.5\d_tabl_tabulate_unit\relax
@@ -557,6 +601,7 @@
\installtabulatepreambleoption{e}{\toksapp\t_tabl_tabulate_settings{\global\settrue\c_tabl_tabulate_equal}%
\tabl_tabulate_set_preamble}
\installtabulatepreambleoption{g}{\tabl_tabulate_set_align}
+\installtabulatepreambleoption{G}{\tabl_tabulate_set_align_new}
\installtabulatepreambleoption{.}{\tabl_tabulate_set_align.}
\installtabulatepreambleoption{,}{\tabl_tabulate_set_align,}
\installtabulatepreambleoption{C}{\tabl_tabulate_set_color_span}
@@ -623,7 +668,8 @@
% begin of character align plugin
-\newconditional\c_tabl_auto_align_mode % reset later
+\newconditional\c_tabl_auto_align_mode % reset later
+\newconditional\c_tabl_auto_align_mode_new % reset later
\def\tabl_tabulate_hook_g % partly expanded
{\ifconditional\c_tabl_auto_align_mode
@@ -631,11 +677,24 @@
\typo_charalign_adapt_font
\fi}
+\def\tabl_tabulate_hook_G % partly expanded
+ {\ifconditional\c_tabl_auto_align_mode_new
+ \typo_charalign_adapt_font
+ \attribute\aligncharacterattribute\the\attribute\aligncharacterattribute\relax
+ \else
+ \attribute\aligncharacterattribute\attributeunsetvalue
+ \fi}
+
\def\tabl_tabulate_set_align#1%
{\global\settrue\c_tabl_auto_align_mode
\setcharacteralign\c_tabl_tabulate_columns{#1}%
\tabl_tabulate_set_preamble}
+\def\tabl_tabulate_set_align_new#1%
+ {\global\settrue\c_tabl_auto_align_mode_new
+ \iftok{#1}\emptytoks\else\setalignmentcharacter{#1}\fi% todo: check for number or char or ... in lua
+ \tabl_tabulate_set_preamble}
+
% end of character align plugin
\def\tabl_tabulate_set_before#1%
@@ -682,41 +741,82 @@
% \dorecurse{100}{\NC \getbuffer \NC test \par test \par \NC \NR}
% \stoptabulate
+% \starttabulate[|w(top,3cm)|w(top,3cm)|]
+% \NC test \NC test \par test \NC \NR
+% \NC test \NC test \par test \NC \NR
+% \stoptabulate
+%
+% \starttabulate[|w(top,packed,3cm)|w(top,packed,3cm)|]
+% \NC test \NC test \par test \NC \NR
+% \NC test \NC test \par test \NC \NR
+% \stoptabulate
+%
+% \starttabulate[interlinespace=no,format={|w(bottom,3cm)|w(bottom,3cm)|}]
+% \NC test \NC test \par test \NC \NR
+% \NC test \NC test \par test \NC \NR
+% \stoptabulate
+%
+% \starttabulate[format={|w(3cm)|w(3cm)|}]
+% \NC \vtop{\strut test} \NC \vtop{\strut test\par \strut test} \NC \NR
+% \NC \vtop{\strut test} \NC \vtop{\strut test\par \strut test} \NC \NR
+% \stoptabulate
+%
+% \starttabulate[interlinespace=no,format={|w(3cm)|w(3cm)|}]
+% \NC \vtop{\strut test} \NC \vtop{\strut test\par \strut test} \NC \NR
+% \NC \vtop{\strut test} \NC \vtop{\strut test\par \strut test} \NC \NR
+% \stoptabulate
+%
+% \starttabulate[interlinespace=no,format={|w(3cm)|w(3cm)|}]
+% \NC \vbox{\strut test} \NC \vbox{\strut test\par \strut test} \NC \NR
+% \NC \vbox{\strut test} \NC \vbox{\strut test\par \strut test} \NC \NR
+% \stoptabulate
+%
+% \starttabulate[interlinespace=no,format={|w(3cm)|w(3cm)|}]
+% \NC \vtop{\strut test} \NC \vbox{\strut test\par \strut test} \NC \NR
+% \NC \vbox{\strut test} \NC \vtop{\strut test\par \strut test} \NC \NR
+% \stoptabulate
+
+\installcorenamespace{tabulatewidth}
+
+\defcsname\??tabulatewidth\v!fit\endcsname
+ {\c_tabl_tabulate_modus\plusthree}
+
+\defcsname\??tabulatewidth\v!fixed\endcsname
+ {\c_tabl_tabulate_modus\plusthree
+ \settrue\c_tabl_tabulate_nopbreak}
+
+\defcsname\??tabulatewidth\v!packed\endcsname
+ {\settrue\c_tabl_tabulate_no_interline_space}
+
+\defcsname\??tabulatewidth\v!auto\endcsname
+ {\c_tabl_tabulate_modus\plusthree\settrue\c_tabl_tabulate_reshape}
+
+\lettonothing\tabl_tabulate_hook_box_begin
+\lettonothing\tabl_tabulate_hook_box_end
+
+\defcsname\??tabulatewidth\v!top\endcsname
+ {\def\tabl_tabulate_hook_box_begin{\vtop\bgroup\begstrut}%
+ \def\tabl_tabulate_hook_box_end {\endstrut\egroup}}
+
+\defcsname\??tabulatewidth\v!bottom\endcsname
+ {\def\tabl_tabulate_hook_box_begin{\vbox\bgroup\begstrut}%
+ \def\tabl_tabulate_hook_box_end {\endstrut\egroup}}
+
+\def\tabl_tabulate_set_width_step#1%
+ {\ifcsname\??tabulatewidth#1\endcsname
+ \lastnamedcs
+ \else
+ \d_tabl_tabulate_width#1\relax
+ \fi}
+
\def\tabl_tabulate_set_width_indeed(#1)%
- {\processallactionsinset % can be made faster
- [#1]%
- [ \v!fit=>\c_tabl_tabulate_modus\plusthree,
- \v!fixed=>\c_tabl_tabulate_modus\plusthree
- \settrue\c_tabl_tabulate_nopbreak,
- \v!auto=>\c_tabl_tabulate_modus\plusthree
- \settrue\c_tabl_tabulate_reshape,
- \s!unknown=>\d_tabl_tabulate_width#1\relax]%
+ {\rawprocesscommacommand[#1]\tabl_tabulate_set_width_step
\ifconditional\c_tabl_tabulate_pwidth_set
- \global\advance\d_tabl_tabulate_width_p\d_tabl_tabulate_width % accumulated parwidth
+ \global\advanceby\d_tabl_tabulate_width_p\d_tabl_tabulate_width % accumulated parwidth
\fi
\tabl_tabulate_set_preamble}
-% faster but seldom used
-%
-% \installcorenamespace{tabulatewidth}
-%
-% \setvalue{\??tabulatewidth\v!fit }{\c_tabl_tabulate_modus\plusthree}
-% \setvalue{\??tabulatewidth\v!fixed}{\c_tabl_tabulate_modus\plusthree\settrue\c_tabl_tabulate_nopbreak}
-% \setvalue{\??tabulatewidth\v!auto }{\c_tabl_tabulate_modus\plusthree\settrue\c_tabl_tabulate_reshape}
-%
-% \def\tabl_tabulate_set_width_step#1%
-% {\ifcsname\??tabulatewidth#1\endcsname
-% \lastnamedcs
-% \else
-% \d_tabl_tabulate_width#1\relax
-% \fi}
-%
-% \def\tabl_tabulate_set_width_indeed(#1)%
-% {\rawprocesscommacommand[#1]\tabl_tabulate_set_width_step
-% \ifconditional\c_tabl_tabulate_pwidth_set
-% \global\advance\d_tabl_tabulate_width_p\d_tabl_tabulate_width % accumulated parwidth
-% \fi
-% \tabl_tabulate_set_preamble}
+% done
\def\tabl_tabulate_set_raggedright {\ifnum\c_tabl_tabulate_type=\plusone \else\raggedright \fi}
\def\tabl_tabulate_set_raggedcenter{\ifnum\c_tabl_tabulate_type=\plusone \else\raggedcenter\fi}
@@ -743,7 +843,7 @@
\tabl_tabulate_set_preamble_step\tabl_tabulate_bskip_raggedcenter\tabl_tabulate_eskip \fi}
\def\tabl_tabulate_set_width_auto
- {\global\advance\c_tabl_tabulate_nofauto\plusone
+ {\global\advanceby\c_tabl_tabulate_nofauto\plusone
\ifcase\c_tabl_tabulate_align\relax
\tabl_tabulate_set_preamble_step\tabl_tabulate_bskip \tabl_tabulate_eskip \or
\tabl_tabulate_set_preamble_step\tabl_tabulate_bskip_raggedright \tabl_tabulate_eskip \or
@@ -788,13 +888,17 @@
\t_tabl_tabulate_emath\emptytoks
\t_tabl_tabulate_font\emptytoks
\t_tabl_tabulate_settings\emptytoks
- \glet\m_tabl_tabulate_alignment\empty
- \glet\m_tabl_tabulate_color\empty
- \glet\m_tabl_tabulate_text_color\empty
- \glet\m_tabl_tabulate_vrule_color\empty
+ \glettonothing\m_tabl_tabulate_alignment
+ \glettonothing\m_tabl_tabulate_color
+ \glettonothing\m_tabl_tabulate_text_color
+ \glettonothing\m_tabl_tabulate_vrule_color
+ \glettonothing\tabl_tabulate_hook_box
\global\c_tabl_tabulate_colorspan\zerocount
\global\setfalse\c_tabl_auto_align_mode
- \global\advance\c_tabl_tabulate_columns\plusone
+ \global\setfalse\c_tabl_auto_align_mode_new
+ \resetalignmentcharacter
+ % \attribute\aligncharacterattribute\attributeunsetvalue
+ \global\advanceby\c_tabl_tabulate_columns\plusone
\letcsname\??tabulatesetup\the\c_tabl_tabulate_columns\endcsname\donothing % here ?
\iftok{#1}\emptytoks
\global\d_tabl_tabulate_vrulethickness\zeropoint
@@ -803,7 +907,7 @@
% the lmtx raw processor handles {} like the normal one so we need to prune
\rawprocesscommalist[#1]\tabl_tabulate_set_vrule_command
\fi
- \tabl_tabulate_set_preamble#2\relax\relax % permits i without n
+ \tabl_tabulate_set_preamble#2\relax\relax % permits i without n
\ifcase\c_tabl_tabulate_modus\relax
\tabl_tabulate_set_width_normal
\or % fixed width
@@ -815,8 +919,8 @@
\fi}
\permanent\protected\def\tabl_tabulate_set_last_entry#1% rulespec
- {\glet\m_tabl_tabulate_color\empty
- \glet\m_tabl_tabulate_vrule_color\empty
+ {\glettonothing\m_tabl_tabulate_color
+ \glettonothing\m_tabl_tabulate_vrule_color
\iftok{#1}\emptytoks
\global\d_tabl_tabulate_vrulethickness\zeropoint
\else
@@ -867,7 +971,7 @@
\let\tabl_tabulate_check_linenumbers\relax
-\def\tabl_tabulate_splitoff_box
+\def\tabl_tabulate_splitoff_box % maybe use the modern splitter
{\dontcomplain
\global\setbox\b_tabl_tabulate\vsplit\b_tabl_tabulate_current\c_tabl_tabulate_column to \lineheight % % % global ? % % %
\setbox\b_tabl_tabulate\vbox
@@ -913,7 +1017,7 @@
\ifnum\c_tabl_tabulate_plines_min=\plusone
\tabl_tabulate_nobreak_inject
\fi
- \global\advance\c_tabl_tabulate_plines_min\plusone
+ \global\advanceby\c_tabl_tabulate_plines_min\plusone
\ifnum\c_tabl_tabulate_plines_min=\c_tabl_tabulate_plines_max\relax
\tabl_tabulate_nobreak_inject
\fi
@@ -1050,8 +1154,8 @@
\appendtoks
\enforced\permanent\protected\edefcsname\e!start \currenttabulation\endcsname{\tabl_start_defined[\currenttabulation]}%
\enforced\aliased \letcsname \e!stop \currenttabulation\endcsname\relax
- \enforced\aliased \letcsname \??tabulatehead\currenttabulation\endcsname\empty
- \enforced\aliased \letcsname \??tabulatefoot\currenttabulation\endcsname\empty
+ \mutable \letcsname \??tabulatehead\currenttabulation\endcsname\empty
+ \mutable \letcsname \??tabulatefoot\currenttabulation\endcsname\empty
\to \everydefinetabulation
\aliased \let\tabulateparameter\tabulationparameter % will stay for a while
@@ -1059,9 +1163,9 @@
% Here begins the implementation.
-\let\tabl_tabulate_insert_head\empty
-\let\tabl_tabulate_insert_body\empty
-\let\tabl_tabulate_insert_foot\empty
+\lettonothing\tabl_tabulate_insert_head
+\lettonothing\tabl_tabulate_insert_body
+\lettonothing\tabl_tabulate_insert_foot
\def\tabl_tabulate_insert_head_content
{\noalign{\global\settrue\c_tabl_tabulate_someamble}%
@@ -1078,23 +1182,23 @@
%\expandafter\ifempty\csname\??tabulatehead\currenttabulation\endcsname
%\expandafter\ifempty\lastnamedcs
\ifempty\lastnamedcs
- \let\tabl_tabulate_insert_head\empty
+ \lettonothing\tabl_tabulate_insert_head
\else
\let\tabl_tabulate_insert_head\tabl_tabulate_insert_head_content
\fi
\else
- \let\tabl_tabulate_insert_head\empty
+ \lettonothing\tabl_tabulate_insert_head
\fi
\ifcsname\??tabulatefoot\currenttabulation\endcsname
%\expandafter\ifempty\csname\??tabulatefoot\currenttabulation\endcsname
%\expandafter\ifempty\lastnamedcs
\ifempty\lastnamedcs
- \let\tabl_tabulate_insert_foot\empty
+ \lettonothing\tabl_tabulate_insert_foot
\else
\let\tabl_tabulate_insert_foot\tabl_tabulate_insert_foot_content
\fi
\else
- \let\tabl_tabulate_insert_foot\empty
+ \lettonothing\tabl_tabulate_insert_foot
\fi}
\def\tabl_tabulate_insert_content
@@ -1117,22 +1221,25 @@
\permanent\protected\defcsname\e!start\v!tabulatehead\endcsname{\doifelsenextoptionalcs\tabl_tabulate_start_head_yes\tabl_tabulate_start_head_nop}
\permanent\protected\defcsname\e!start\v!tabulatetail\endcsname{\doifelsenextoptionalcs\tabl_tabulate_start_foot_yes\tabl_tabulate_start_foot_nop}
-\let\m_tabl_tabulate_data\empty
+\lettonothing\m_tabl_tabulate_data
\def\tabl_tabulate_start_head_yes[#1]%
- {\processcontent{\e!stop\v!tabulatehead}\m_tabl_tabulate_data{\letvalue{\??tabulatehead#1}\m_tabl_tabulate_data}}
+ {\processcontent{\e!stop\v!tabulatehead}\m_tabl_tabulate_data{\letcsname\??tabulatehead#1\endcsname\m_tabl_tabulate_data}}
\def\tabl_tabulate_start_foot_yes[#1]%
- {\processcontent{\e!stop\v!tabulatetail}\m_tabl_tabulate_data{\letvalue{\??tabulatefoot#1}\m_tabl_tabulate_data}}
+ {\processcontent{\e!stop\v!tabulatetail}\m_tabl_tabulate_data{\letcsname\??tabulatefoot#1\endcsname\m_tabl_tabulate_data}}
+
+% \def\tabl_tabulate_start_head_nop{\tabl_tabulate_start_head_yes[\v!tabulate]}
+% \def\tabl_tabulate_start_foot_nop{\tabl_tabulate_start_foot_yes[\v!tabulate]}
-\def\tabl_tabulate_start_head_nop{\tabl_tabulate_start_head_yes[\v!tabulate]}
-\def\tabl_tabulate_start_foot_nop{\tabl_tabulate_start_foot_yes[\v!tabulate]}
+\def\tabl_tabulate_start_head_nop{\tabl_tabulate_start_head_yes[]}
+\def\tabl_tabulate_start_foot_nop{\tabl_tabulate_start_foot_yes[]}
\protected\def\tabl_start_defined[#1]%
{\bgroup
\edef\currenttabulationparent{#1}%
\let\currenttabulation\currenttabulationparent
- \iftok{\tabulationparameter\c!format}{\v!none}%
+ \ifcstok{\tabulationparameter\c!format}\v!none
% this is special case: we need to define the generic english
% \starttabulate in other interfaces as well
\lettabulationparameter\c!format\tabl_default_format
@@ -1158,37 +1265,18 @@
\def\tabl_default_format{|l|p|} % actually format is always set
-\permanent\protected\setuvalue{\e!start\v!tabulate}%
+\permanent\protected\defcsname\e!start\v!tabulate\endcsname
{\bgroup % whole thing
- \let\currenttabulationparent\empty
+ \lettonothing\currenttabulationparent
\tabl_start_regular}
-% \tolerant\protected\def\tabl_start_regular[#1]#*[#2]% [format] | [settings] | [format] [settings] | [settings] [format]
-% {\let\currenttabulation\currenttabulationparent
-% \iftok{#1}\emptytoks
-% \ifhastok={#2}\relax
-% \setupcurrenttabulation[#2]%
-% \fi
-% \orelse\ifhastok={#1}\relax
-% \iftok{#2}\emptytoks\else
-% \settabulationparameter\c!format{#2}%
-% \fi
-% \setupcurrenttabulation[#1]%
-% \else
-% \settabulationparameter\c!format{#1}%
-% \ifhastok={#2}\relax
-% \setupcurrenttabulation[#2]%
-% \fi
-% \fi
-% \tabl_tabulate_start_building}
-
\tolerant\protected\def\tabl_start_regular[#1]#*[#2]% [format] | [settings] | [format] [settings] | [settings] [format]
{\let\currenttabulation\currenttabulationparent
\iftok{#1}\emptytoks
- \ifhastok={#2}\relax
+ \ifhaschar={#2}\relax
\setupcurrenttabulation[#2]%
\fi
- \orelse\ifhastok={#1}\relax
+ \orelse\ifhaschar={#1}\relax
\iftok{#2}\emptytoks\else
\settabulationparameter\c!format{#2}%
\fi
@@ -1197,7 +1285,7 @@
\iftok{#1}\emptytoks\else
\settabulationparameter\c!format{#1}%
\fi
- \ifhastok={#2}\relax
+ \ifhaschar={#2}\relax
\setupcurrenttabulation[#2]%
\fi
\fi
@@ -1212,7 +1300,7 @@
\expandafter\gobbleuntil\csname\ifconditional\c_tabl_generic stoptabulate\else\e!stop\v!tabulate\fi\endcsname}
\appendtoks
- \enforced\letvalue{\e!start\v!tabulate}\tabl_tabulate_start_ignore % only the main one
+ \enforced\letcsname\e!start\v!tabulate\endcsname\tabl_tabulate_start_ignore % only the main one
\to \everytabulate
\defcsname\??tabulatesplit\v!yes \endcsname{\settrue\c_tabl_tabulate_split}
@@ -1289,16 +1377,18 @@
{\tabulationparameter\c!after}
\def\tabl_tabulate_outside_inbetween_indeed
- {\doifempty{\tabulationparameter\c!after}
- {\vskip\strutdp
- \verticalstrut
- \vskip-\struttotal}}
+ {\ifcstok{\tabulationparameter\c!after}\emptytoks\else
+ \vskip\strutdp
+ \verticalstrut
+ \vskip-\struttotal
+ \fi}
\def\tabl_tabulate_inside_inbetween % needs checking
- {\doifempty{\tabulationparameter\c!after}
- {\vskip\strutdp
- \verticalstrut
- \vskip-\struttotal}}
+ {\ifcstok{\tabulationparameter\c!after}\emptytoks\else
+ \vskip\strutdp
+ \verticalstrut
+ \vskip-\struttotal
+ \fi}
\protected\def\tabl_tabulate_start_building
{\ifinsidefloat
@@ -1313,15 +1403,16 @@
%
\resetcharacteralign
%
- \edef\p_distance {\tabulationparameter\c!distance}%
- \edef\p_align {\tabulationparameter\c!align}%
- \edef\p_line {\tabulationparameter\c!rule}%
- \edef\p_rulecolor {\tabulationparameter\c!rulecolor}%
- \edef\p_rulethickness{\tabulationparameter\c!rulethickness}%
- \edef\p_bodyfont {\tabulationparameter\c!bodyfont}%
- \edef\p_indenting {\tabulationparameter\c!indenting}%
- \edef\p_keeptogether {\tabulationparameter\c!keeptogether}%
- \edef\p_blank {\tabulationparameter\c!blank}%
+ \edef\p_distance {\tabulationparameter\c!distance}%
+ \edef\p_align {\tabulationparameter\c!align}%
+ \edef\p_line {\tabulationparameter\c!rule}%
+ \edef\p_rulecolor {\tabulationparameter\c!rulecolor}%
+ \edef\p_rulethickness {\tabulationparameter\c!rulethickness}%
+ \edef\p_bodyfont {\tabulationparameter\c!bodyfont}%
+ \edef\p_indenting {\tabulationparameter\c!indenting}%
+ \edef\p_keeptogether {\tabulationparameter\c!keeptogether}%
+ \edef\p_blank {\tabulationparameter\c!blank}%
+ \edef\p_interlinespace{\tabulationparameter\c!interlinespace}%
%
\ifx\p_keeptogether\v!no
\settrue \c_tabl_tabulate_tolerant_break
@@ -1331,6 +1422,12 @@
%\settrue \c_tabl_tabulate_handlepbreak
\fi
%
+ \ifx\p_interlinespace\v!no
+ \settrue\c_tabl_tabulate_no_interline_space
+ \else
+ \setfalse\c_tabl_tabulate_no_interline_space
+ \fi
+ %
\settrue\c_tabl_tabulate_split
\begincsname\??tabulatesplit\tabulationparameter\c!split\endcsname
%
@@ -1374,30 +1471,30 @@
% color columns
-\let\m_tabl_tabulate_color_previous \empty
-\let\m_tabl_tabulate_color \empty
-\let\m_tabl_tabulate_text_color \empty
-\let\m_tabl_tabulate_color_local \empty
-\let\m_tabl_tabulate_vrule_color \empty
-\let\m_tabl_tabulate_vrule_color_local \empty
-\let\m_tabl_tabulate_vrule_color_default\empty % used local
-\let\m_tabl_tabulate_hrule_color_default\empty % used local
-\let\m_tabl_tabulate_blank_default \empty
+\lettonothing\m_tabl_tabulate_color_previous
+\lettonothing\m_tabl_tabulate_color
+\lettonothing\m_tabl_tabulate_text_color
+\lettonothing\m_tabl_tabulate_color_local
+\lettonothing\m_tabl_tabulate_vrule_color
+\lettonothing\m_tabl_tabulate_vrule_color_local
+\lettonothing\m_tabl_tabulate_vrule_color_default % used local
+\lettonothing\m_tabl_tabulate_hrule_color_default % used local
+\lettonothing\m_tabl_tabulate_blank_default
\appendtoks
- \glet \m_tabl_tabulate_color_previous \empty
- \glet \m_tabl_tabulate_color \empty
- \glet \m_tabl_tabulate_text_color \empty
- \glet \m_tabl_tabulate_color_local \empty
- \glet \m_tabl_tabulate_vrule_color \empty
- \glet \m_tabl_tabulate_vrule_color_local \empty
+ \glettonothing\m_tabl_tabulate_color_previous
+ \glettonothing\m_tabl_tabulate_color
+ \glettonothing\m_tabl_tabulate_text_color
+ \glettonothing\m_tabl_tabulate_color_local
+ \glettonothing\m_tabl_tabulate_vrule_color
+ \glettonothing\m_tabl_tabulate_vrule_color_local
\global\d_tabl_tabulate_vrulethickness_local\zeropoint
\to \t_tabl_tabulate_every_row
\protected\def\tabl_tabulate_color_side_right_second
{\ifempty\m_tabl_tabulate_color_previous \else
\tabl_tabulate_color_set\m_tabl_tabulate_color_previous
- \glet\m_tabl_tabulate_color_previous\empty
+ \glettonothing\m_tabl_tabulate_color_previous
\fi}
\protected\def\tabl_tabulate_color_side_left_second
@@ -1414,9 +1511,9 @@
{\ifempty\m_tabl_tabulate_color \else
\tabl_tabulate_color_set\m_tabl_tabulate_color
\ifcase\c_tabl_tabulate_colorspan
- %\glet\m_tabl_tabulate_color_previous\empty
+ %\glettonothing\m_tabl_tabulate_color_previous
\or
- \glet\m_tabl_tabulate_color_previous\empty
+ \glettonothing\m_tabl_tabulate_color_previous
\or
\glet\m_tabl_tabulate_color_previous\m_tabl_tabulate_color
\or
@@ -1536,12 +1633,11 @@
\global\d_tabl_tabulate_vrulethickness\zeropoint} % nils second one
\protected\def\tabl_tabulate_column_vrule_inject_second
- {\ifcase\d_tabl_tabulate_vrulethickness\else
- \ifempty\m_tabl_tabulate_vrule_color
- \tabl_tabulate_column_vruled_normal
- \else
- \tabl_tabulate_column_vruled_colored
- \fi
+ {\ifcase\d_tabl_tabulate_vrulethickness
+ \orelse\ifempty\m_tabl_tabulate_vrule_color
+ \tabl_tabulate_column_vruled_normal
+ \else
+ \tabl_tabulate_column_vruled_colored
\fi
\global\d_tabl_tabulate_vrulethickness\zeropoint} % nils second one
@@ -1562,7 +1658,7 @@
\ifnum\c_tabl_tabulate_column>\c_tabl_tabulate_columns\relax
\expandafter\NR
\else
- \expandafter\ignorespaces % interferes with the more tricky hooks
+ \expandafter\ignorepars % \ignorespaces % interferes with the more tricky hooks
\fi}
\protected\def\tabl_tabulate_set_quick#1% see \startlegend \startgiven (for the moment still public)
@@ -1599,7 +1695,7 @@
\directvskip\s_tabl_tabulate_separator
\egroup}
-\let\m_tabl_tabulate_hrule_color\empty
+\lettonothing\m_tabl_tabulate_hrule_color
\def\tabl_tabulate_hrule_preset_step#1%
{\doifelsenumber{#1}%
@@ -1702,9 +1798,6 @@
\tabl_tabulate_color_reset_indeed
\fi}
-% \def\tabl_tabulate_color_reset_indeed
-% {\dorecurse\c_tabl_tabulate_max_colorcolumn{\letgvalue{\??tabulatecolor\recurselevel}\undefined}} % slow
-
\def\tabl_tabulate_color_reset_indeed
{\dofastloopcs\c_tabl_tabulate_max_colorcolumn\tabl_tabulate_color_reset_step}
@@ -1720,10 +1813,10 @@
% \registerparoptions
% \ifinsidefloat
% % that is, an unbreakable one
-% \glet\tabl_tabulate_register_par_options\empty
+% \glettonothing\tabl_tabulate_register_par_options
% \else
% % unsafe in crossing pages, at each b...
-% % \glet\tabl_tabulate_register_par_options\empty
+% % \glettonothing\tabl_tabulate_register_par_options
% \fi
% \fi}
%
@@ -1738,10 +1831,10 @@
{\registerparoptions
\ifinsidefloat
% that is, an unbreakable one
- \glet\tabl_tabulate_register_par_options\empty
+ \glettonothing\tabl_tabulate_register_par_options
\else
% unsafe in crossing pages, at each b...
- % \glet\tabl_tabulate_register_par_options\empty
+ % \glettonothing\tabl_tabulate_register_par_options
\fi}
\let\tabl_tabulate_register_par_options\relax
@@ -1763,14 +1856,14 @@
{% we now have a local hsize, and since we want to
% register positional info (i.e. real hsizes) we
% need to reconstitute the original hsize
- \advance\hsize\d_tabl_tabulate_indent
+ \advanceby\hsize\d_tabl_tabulate_indent
% this is indeed rather messy and took a few hours
% to dis/uncover
\the\t_tabl_tabulate_every_row
\hss}}
\def\tabl_tabulate_flush_indent
- {\ifnum\c_tabl_tabulate_column=\zerocount
+ {\ifzero\c_tabl_tabulate_column
\tabl_tabulate_flush_indent_indeed
\fi}
@@ -1778,6 +1871,7 @@
%D Beware, we cannot use \type {\protected} on \type {\HL} cum suis, since \TEX's
%D hard coded noalign lookahead fails on it! I mistakenly added this for a while.
+%D Well, this is no longer true in \LMTX.
\defcsname\??tabulatealigning\v!normal\endcsname{0}
\defcsname\??tabulatealigning\v!right \endcsname{1}
@@ -1851,6 +1945,84 @@
\permanent\protected\def\tabl_tabulate_CM_first{\global\c_tabl_tabulate_localcolorspan\plustwo \tabl_tabulate_set_color_column\zerocount}
\permanent\protected\def\tabl_tabulate_CR_first{\global\c_tabl_tabulate_localcolorspan\plusthree\tabl_tabulate_set_color_column\zerocount}
+%D New per 27/12/2022:
+
+% \defineorientation[test][orientation=down,vertical=top]
+%
+% \definetabulatemove[a][xoffset=40pt]
+% \definetabulatemove[b][orientation=test,yoffset=depth]
+%
+% \startbuffer[b]
+% \starttabulate[|c|c|]
+% \TM[a] \NC \darkred cell one \NC \darkgray cell one \NC \NR
+% \TM[b] \NC \darkgreen cell one \NC \darkblue cell one \NC \NR
+% \TM[a] \NC \darkred cell two \NC \darkgray cell two \NC \NR
+% \TM[b] \NC \darkgreen cell two \NC \darkblue cell two \NC \NR
+% \TM[a] \NC \darkred cell three \NC \darkgray cell three \NC \NR
+% \TM[b] \NC \darkgreen cell three \NC \darkblue cell three \NC \NR
+% \TM[a] \NC \darkred cell four \NC \darkgray cell four \NC \NR
+% \TM[b] \NC \darkgreen cell four \NC \darkblue cell four \NC \NR
+% \stoptabulate
+% \stopbuffer
+%
+% \start \showmakeup[line] \showstruts \ruledvbox{\getbuffer[b]} \stop
+% \start \showstruts \ruledvbox{\getbuffer[b]} \stop
+% \start \ruledvbox{\getbuffer[b]} \stop
+%
+% \startbuffer[b]
+% \starttabulate[|p|p|]
+% \TM[a] \NC \darkred \samplefile{tufte} \NC \darkgray \samplefile{ward} \NC \NR
+% \NC \darkgreen \samplefile{tufte} \NC \darkblue \samplefile{ward} \NC \NR
+% \TM[a] \NC \darkred \samplefile{tufte} \NC \darkgray \samplefile{ward} \NC \NR
+% \NC \darkgreen \samplefile{tufte} \NC \darkblue \samplefile{ward} \NC \NR
+% \stoptabulate
+% \stopbuffer
+%
+% \start \showmakeup[line] \showstruts \getbuffer[b] \stop
+
+\installcorenamespace{tabulatemove}
+
+\installcommandhandler \??tabulatemove {tabulatemove} \??tabulatemove
+
+\setuptabulatemove
+ [\c!xoffset=\zeropoint,
+ \c!yoffset=\zeropoint,
+ \c!orientation=]
+
+\noaligned\permanent\tolerant\protected\def\tabl_tabulate_TM_yes[#1]#*[#2]%
+ {\beginlocalcontrol
+ \ifhastok={#1}%
+ \setupcurrenttabulatemove[#1]%
+ \else
+ \edef\currenttabulatemove{#1}%
+ \setupcurrenttabulatemove[#2]%
+ \fi
+ \edef\m_orientation{\theorientation{\tabulatemoveparameter\c!orientation}}%
+ \edef\m_xoffset {\tabulatemoveparameter\c!xoffset}%
+ \edef\m_yoffset {\tabulatemoveparameter\c!yoffset}%
+ \scratchyoffset
+ \ifx\m_yoffset\v!depth
+ -\strutdp
+ \orelse\ifx\m_yoffset\v!height
+ -\strutht
+ \else
+ \m_yoffset
+ \fi
+ \relax
+ \scratchxoffset\m_xoffset\relax
+ \xdef\tabl_tabulate_tm
+ {\ifzeropt\scratchxoffset\else\s!xmove \the\scratchxoffset\fi % or move
+ \ifzeropt\scratchyoffset\else\s!ymove \the\scratchyoffset\fi % or move
+ \ifzero \m_orientation \else\s!orientation\m_orientation \fi
+ }%
+ \endlocalcontrol
+ \noalign\tabl_tabulate_tm{}}
+
+\noaligned\permanent\tolerant\protected\def\tabl_tabulate_TM_nop[#1]#*[#2]%
+ {}
+
+\lettonothing\tabl_tabulate_tm % new 27/12/2022
+
%D Sort of special:
%D
%D \startbuffer
@@ -1908,6 +2080,7 @@
\appendtoks
\enforced\let\NR\tabl_tabulate_NR_second
\enforced\let\NB\tabl_tabulate_NB_second
+ \enforced\let\TM\tabl_tabulate_TM_yes
\to \t_tabl_tabulate_initializers_second
\appendtoks
@@ -1916,10 +2089,33 @@
\enforced\let\MR\NR
\enforced\let\LR\NR
\enforced\let\AR\NR
+ \enforced\let\TM\tabl_tabulate_TM_nop
\to \t_tabl_tabulate_initializers_first
-\permanent\protected\def\tabl_tabulate_NR_common#1#2%
- {\global\advance\c_tabl_tabulate_noflines\plusone
+% \permanent\protected\def\tabl_tabulate_NR_common#1#2%
+% {\global\advanceby\c_tabl_tabulate_noflines\plusone
+% \global\setfalse\c_tabl_tabulate_firstflushed
+% \global\setfalse\c_tabl_tabulate_equal
+% \global\c_tabl_tabulate_column\zerocount
+% \ifconditional#1\relax
+% \tabl_tabulate_break_state_reset
+% \fi
+% \tabl_tabulate_pheight_reset
+% \unskip\unskip\crcr\tabl_tabulate_flush_collected
+% % can we omit the next one in the first run? probably
+% \noalign{\the\t_tabl_tabulate_every_after_row#2}}
+
+% test case for ignorepar error
+%
+% \starttabulatehead
+% \NC A \NC B \NC \NR
+% \stoptabulatehead
+% \starttabulate[|l|l|]
+% \NC 1 \NC 2 \NC \NR
+% \stoptabulate
+
+\permanent\tolerant\protected\def\tabl_tabulate_NR_common#1#2% #. gobbles pars and spaces
+ {\global\advanceby\c_tabl_tabulate_noflines\plusone
\global\setfalse\c_tabl_tabulate_firstflushed
\global\setfalse\c_tabl_tabulate_equal
\global\c_tabl_tabulate_column\zerocount
@@ -1929,7 +2125,8 @@
\tabl_tabulate_pheight_reset
\unskip\unskip\crcr\tabl_tabulate_flush_collected
% can we omit the next one in the first run? probably
- \noalign{\the\t_tabl_tabulate_every_after_row#2}}
+ % todo: move \ignorepars ourside so no alignment error then
+ \noalign{\the\t_tabl_tabulate_every_after_row#2\ignorepars}}
\def\tabl_tabulate_check_penalties
{\ifconditional\c_tabl_tabulate_tolerant_break\else
@@ -1952,7 +2149,11 @@
\fi
\fi
\fi
- \global\setfalse\c_tabl_tabulate_firstflushed}
+ \global\setfalse\c_tabl_tabulate_firstflushed
+ \ifconditional\c_tabl_tabulate_no_interline_space
+ \nointerlineskip
+ \injectzerobaselineskip
+ \fi}
\protected\def\tabl_tabulate_bbskip_second_split_yes
{\ifvoid\b_tabl_tabulate_current\c_tabl_tabulate_column
@@ -1962,7 +2163,11 @@
\fi}
\protected\def\tabl_tabulate_eskip_second
- {\par\egroup
+ {\par
+ \ifconditional\c_tabl_tabulate_no_blank_in_paragraphs
+ \removelastskip
+ \fi
+ \egroup
\tabl_tabulate_pheight_set
\glet\tabl_tabulate_hook\tabl_tabulate_hook_yes
\tabl_tabulate_splitoff_box}
@@ -1972,15 +2177,18 @@
% first line
\global\setbox\b_tabl_tabulate_current\c_tabl_tabulate_column\vbox
\bgroup
+ \ifconditional\c_tabl_tabulate_no_blank_in_paragraphs
+ \inhibitblank
+ \fi
\glet\tabl_tabulate_hook\tabl_tabulate_hook_nop
\ifconditional\c_tabl_tabulate_automode\hsize\d_tabl_tabulate_width\fi
% \begstrut % interferes with pre-\pars
% evt: \appendtoks\begstrut\to\everypar
- \ignorespaces
\let\tabl_tabulate_eskip\tabl_tabulate_eskip_second
+ \expandafter\ignorepars % \ignorespaces
\else
% successive lines
- \let\tabl_tabulate_eskip\empty
+ \lettonothing\tabl_tabulate_eskip
\dontcomplain
\glet\tabl_tabulate_hook\tabl_tabulate_hook_yes
\expandafter\tabl_tabulate_splitoff_box
@@ -1989,20 +2197,45 @@
\protected\def\tabl_tabulate_xbskip_second{\tabl_tabulate_bskip}
\protected\def\tabl_tabulate_xeskip_second{\tabl_tabulate_eskip}
+% \protected\def\tabl_tabulate_flush_second_indeed
+% {\glettonothing\tabl_tabulate_flush_collected_indeed
+% \global\c_tabl_tabulate_column\zerocount
+% \tabl_tabulate_pbreak_check
+% \dofastloopcs\c_tabl_tabulate_columns\tabl_tabulate_flush_second_step
+% \global\settrue\c_tabl_tabulate_firstflushed}
+%
+% \protected\def\tabl_tabulate_flush_second_step
+% {\ifvoid\b_tabl_tabulate_current\fastloopindex\else
+% \gdef\tabl_tabulate_flush_collected_indeed{\the\t_tabl_tabulate_dummy}%
+% \fi}
+%
+% \def\tabl_tabulate_flush_second
+% {\noalign{\tabl_tabulate_flush_second_indeed}%
+% \tabl_tabulate_flush_collected_indeed}
+
\protected\def\tabl_tabulate_flush_second_indeed
- {\glet\tabl_tabulate_flush_collected_indeed\empty
+ {\glettonothing\tabl_tabulate_flush_collected_indeed
\global\c_tabl_tabulate_column\zerocount
\tabl_tabulate_pbreak_check
+ \global\setfalse\c_tabl_tabulate_split_done % new 27/12/2022
\dofastloopcs\c_tabl_tabulate_columns\tabl_tabulate_flush_second_step
+ \ifconditional\c_tabl_tabulate_split_done\else
+ \glet\tabl_tabulate_tm\s!reset % new 27/12/2022
+ \fi
\global\settrue\c_tabl_tabulate_firstflushed}
\protected\def\tabl_tabulate_flush_second_step
- {\ifvoid\b_tabl_tabulate_current\fastloopindex\else
+ {\ifvoid\b_tabl_tabulate_current\fastloopindex
+ \else
\gdef\tabl_tabulate_flush_collected_indeed{\the\t_tabl_tabulate_dummy}%
+ \ifvoid\b_tabl_tabulate_current\fastloopindex \else
+ \global\settrue\c_tabl_tabulate_split_done % new 27/12/2022
+ \fi
\fi}
\def\tabl_tabulate_flush_second
{\noalign{\tabl_tabulate_flush_second_indeed}%
+ \noalign\tabl_tabulate_tm{\ifx\tabl_tabulate_tm\s!reset\glettonothing\tabl_tabulate_tm\fi}% new 27/12/2022
\tabl_tabulate_flush_collected_indeed}
\protected\def\tabl_tabulate_bskip_second_split_nop
@@ -2010,7 +2243,7 @@
\ifconditional\c_tabl_tabulate_automode\hsize\d_tabl_tabulate_width\fi
% \begstrut % interferes with pre-\pars
% evt: \appendtoks\begstrut\to\everypar
- \ignorespaces}
+ \ignorepars} % \ignorespaces
\protected\def\tabl_tabulate_eskip_second_split_nop % vertical strut added august 2003
{\par\verticalstrut
@@ -2048,8 +2281,8 @@
\permanent\tolerant\noaligned\protected\def\tabl_tabulate_BL_second[#1]{\noalign{\tabl_tabulate_hrule_preset[#1]\tabl_tabulate_BL_second_indeed}}
\protected\def\tabl_tabulate_FL_second_indeed
- {\ifinsidefloat\else
- \doifempty{\tabulationparameter\c!before}\tabl_tabulate_baselinecorrection % no expansion
+ {\ifinsidefloat\orelse\ifcstok{\tabulationparameter\c!before}\emptytoks
+ \tabl_tabulate_baselinecorrection
\fi
\tabl_tabulate_hrule_inject
\tabl_tabulate_nobreak_inject
@@ -2099,6 +2332,7 @@
\permanent\def\tabl_tabulate_HL_second
{\csname
\ifnum\c_tabl_tabulate_noflines=\zerocount F\orelse
+ % \ifzeroc_tabl_tabulate_noflines F\orelse
\ifnum\c_tabl_tabulate_noflines=\c_tabl_tabulate_totalnoflines L\else
M\fi
L\endcsname}
@@ -2156,8 +2390,8 @@
%D places where we can use \LUA\ code (for instance in alignment of numbers. The
%D repeat parser is replace at the \LUA\ end as well.
-\let\tabl_tabulate_flush_collected \empty
-\let\tabl_tabulate_flush_collected_indeed\empty
+\lettonothing\tabl_tabulate_flush_collected
+\lettonothing\tabl_tabulate_flush_collected_indeed
\let\v_tabl_tabulate_align\!!zerocount
@@ -2165,7 +2399,7 @@
{\ifdefined\page_sides_check_floats_indeed
\page_sides_check_floats_indeed
\ifdim\hangindent>\zeropoint
- \advance\d_tabl_tabulate_indent\hangindent
+ \advanceby\d_tabl_tabulate_indent\hangindent
\fi
\fi}
@@ -2182,6 +2416,45 @@
% \ruledvbox{\starttabulate[|k8|] \NC xxx \NC \NR \stoptabulate}
% \ruledvbox{\starttabulate[|l|l|] \NC xxx \NC xxx \NC \NR \stoptabulate}
+% \enabletrackers[localanchor]
+%
+% \startoverlayMPgraphic{mp:whatever-6}
+% draw anchorcell (1,1) withpen pencircle scaled 1pt withcolor "blue" ;
+% fill anchorspan (2,2) (3,5) withpen pencircle scaled 1pt withcolor "yellow" ;
+% draw anchorcell (2,2) withpen pencircle scaled 1pt withcolor "green" ;
+% draw anchorcell (3,3) withpen pencircle scaled 1pt withcolor "red" ;
+% \stopoverlayMPgraphic
+%
+% \starttabulate[synchronize=background,background=mp:whatever-6,format={|l|c|r|}]
+% \NC test \NC test \NC test \NC \NR
+% \NC test \NC test test \NC test \NC \NR
+% \NC test test \NC test \NC test \NC \NR
+% \NC test \NC test \NC test \NC \NR
+% \NC test \NC test \NC test test \NC \NR
+% \stoptabulate
+
+\protected\def\tabl_tabulate_anchor_indeed
+ {\edef\xanchor{\number\c_tabl_tabulate_column}%
+ \edef\yanchor{\number\c_tabl_tabulate_nofrealrows}%
+ \markanchor{matrix}{\c_tabl_tabulate_column}{\c_tabl_tabulate_nofrealrows}}
+
+\def\tabl_tabulate_anchor_setup % a bit of a cheat but good enough for a lightweight experiment
+ {\edef\p_synchronize{\tabulationparameter\c!synchronize}%
+ \ifx\p_synchronize\v!background
+ \edef\currentframedcontent{\tabulationparameter\c!frame}%
+ \ifx\currentframedcontent\v!off
+ \resettabulationparameter\c!frame
+ \lettonothing\currentframedcontent
+ \letframedcontentparameter\c!frame\v!off
+ \fi
+ \letframedcontentparameter\c!synchronize\p_synchronize
+ \setframedcontentparameter\c!background {\tabulationparameter\c!background}%
+ \enforced\let\tabl_tabulate_anchor\tabl_tabulate_anchor_indeed
+ \setlocalanchoring
+ \fi}
+
+\permanent\protected\lettonothing\tabl_tabulate_anchor
+
\def\tabl_tabulate_process
{\c_tabl_tabulate_pass\plusone
\tabl_tabulate_check_full_content
@@ -2222,28 +2495,28 @@
%
\the\t_tabl_tabulate_initializers_first % collect more here
%
- \glet\tabl_tabulate_flush_collected\empty
+ \glettonothing\tabl_tabulate_flush_collected
\ifdim\d_tabl_tabulate_margin>\zeropoint
\t_tabl_tabulate_preamble
{\aligntab
\tabl_tabulate_flush_indent
-% \global\advance\c_tabl_tabulate_noflines\plusone
+% \global\advanceby\c_tabl_tabulate_noflines\plusone
\strut
- \alignmark\alignmark
+ \aligncontent % \alignmark\alignmark
\tabskip\d_tabl_tabulate_margin
\strut
\aligntab
- \alignmark\alignmark
+ \aligncontent % \alignmark\alignmark
\tabskip\zeropoint}%
\else
\t_tabl_tabulate_preamble
{\aligntab
\tabl_tabulate_flush_indent
-% \global\advance\c_tabl_tabulate_noflines\plusone
+% \global\advanceby\c_tabl_tabulate_noflines\plusone
\strut
- \alignmark\alignmark
+ \aligncontent % \alignmark\alignmark
\aligntab
- \alignmark\alignmark
+ \aligncontent % \alignmark\alignmark
\tabskip\zeropoint}%
\fi
\d_tabl_tabulate_width\zeropoint
@@ -2257,8 +2530,9 @@
\d_tabl_tabulate_width\zeropoint
\tabl_tabulate_initialize_boxes\c_tabl_tabulate_columns
\toksapp\t_tabl_tabulate_preamble{%
- \aligntab\alignmark\alignmark
- \global\advance\c_tabl_tabulate_column\plusone % maybe just set it already
+ \aligntab
+ \aligncontent % \alignmark\alignmark
+ \global\advanceby\c_tabl_tabulate_column\plusone % maybe just set it already
}%
\toksapp\t_tabl_tabulate_dummy{%
\NC\unskip\unskip\crcr\tabl_tabulate_flush_collected % no count
@@ -2283,7 +2557,10 @@
\d_tabl_tabulate_indent\zeropoint
\settrialtypesetting % very important
\anch_backgrounds_text_level_start
- \expandafter\halign\expandafter{\the\t_tabl_tabulate_preamble\crcr\tabl_tabulate_insert_content\crcr}}%
+ \halign
+ \ifconditional\c_tabl_sparse_skips \s!noskips\fi
+ \ifconditional\c_tabl_auto_align_mode_new \alignmentcharactertrigger\fi
+ \expandafter{\the\t_tabl_tabulate_preamble\crcr\tabl_tabulate_insert_content\crcr}}%
\anch_backgrounds_text_level_stop
\ifcase\c_anch_backgrounds_text_state\else
\global\settrue\tablehaspositions
@@ -2292,13 +2569,13 @@
% so, even if the natural size is larger, in the final run, we force the calculated width
\d_tabl_tabulate_width\dimexpr\hsize-\wd\scratchbox-\d_tabl_tabulate_width_p-\d_tabl_tabulate_width_w\relax
\ifnum\c_tabl_tabulate_nofauto>\zerocount
- \divide\d_tabl_tabulate_width \c_tabl_tabulate_nofauto\relax
+ \divideby\d_tabl_tabulate_width \c_tabl_tabulate_nofauto\relax
\fi
\fi
\setbox\scratchbox\emptybox % free memory
\ifconditional\c_tabl_tabulate_split
\splittopskip\strutht
- \glet\tabl_tabulate_flush_collected_indeed\empty
+ \glettonothing\tabl_tabulate_flush_collected_indeed
\glet\tabl_tabulate_flush_collected\tabl_tabulate_flush_second
\fi
\c_tabl_tabulate_totalnoflines\c_tabl_tabulate_noflines
@@ -2318,6 +2595,7 @@
\ifinsidesplitfloat
\global\setbox\b_tabl_tabulate\vbox \bgroup
\else
+ \tabl_tabulate_anchor_setup
\startframedcontent[\tabulationparameter\c!frame]%
\fi
\else
@@ -2329,7 +2607,10 @@
\setfalse\inhibitmargindata % new per 2012.06.13 ... really needed
% % \everycr\expandafter{\the\everycr\noalign{\the\t_tabl_tabulate_every_real_row}\dostoptagged\dostarttagged\t!tabulaterow\empty}%
\toksapp\everycr{\noalign{\the\t_tabl_tabulate_every_real_row\dostoptagged\dostarttagged\t!tabulaterow\empty}}%
- \expandafter\halign\expandafter{\the\t_tabl_tabulate_preamble\crcr\tabl_tabulate_insert_content\crcr}%
+ \halign
+ \ifconditional\c_tabl_sparse_skips \s!noskips\fi
+ \ifconditional\c_tabl_auto_align_mode_new \alignmentcharactertrigger\fi
+ \expandafter{\the\t_tabl_tabulate_preamble\crcr\tabl_tabulate_insert_content\crcr}%
\dostoptagged
\dostoptagged
\ifhmode\par\prevdepth\strutdp\fi % nog eens beter, temporary hack
@@ -2376,6 +2657,8 @@
% \NC test \NC \input tufte \relax \NC \NR
% \stoptabulate
+% todo: use the more modern line getter
+
\def\tabl_split_box#1% #1 <> 0/2 / derived from the one in core-ntb.tex
{\ifinsidesplitfloat
\tabl_split_box_indeed#1%
@@ -2421,7 +2704,7 @@
% \NC text \NC text \NC \NR
% \stoptabulate
-\permanent\tolerant\noaligned\protected\def\tabl_tabulate_TB[#1]%
+\permanent\tolerant\noaligned\protected\def\tabl_tabulate_TB_yes[#1]%
{\noalign\bgroup
\unless\iftok{#1}\emptytoks
\blank[#1]
@@ -2432,9 +2715,16 @@
\fi
\egroup}
+\permanent\tolerant\noaligned\protected\def\tabl_tabulate_TB_nop[#1]%
+ {}
+
\appendtoks
- \enforced\let\TB\tabl_tabulate_TB
-\to \everytabulate
+ \enforced\let\TB\tabl_tabulate_TB_nop
+\to \t_tabl_tabulate_initializers_first
+
+\appendtoks
+ \enforced\let\TB\tabl_tabulate_TB_yes
+\to \t_tabl_tabulate_initializers_second
% %D Between alignment lines certain rules apply, and even a simple test can mess
% %D up a table, which is why we have a special test facilityL
@@ -2608,7 +2898,7 @@
\permanent\protected\defcsname starttabulate\endcsname
{\bgroup % whole thing
\settrue\c_tabl_generic
- \let\currenttabulationparent\empty
+ \lettonothing\currenttabulationparent
\tabl_start_regular}
\permanent\letcsname stoptabulate\endcsname\relax % testcase cvs-002.tex
@@ -2723,11 +3013,11 @@
% \c!foregroundcolor=,
% \c!foregroundstyle=]
-\let\m_table_current_row_background \empty
-\let\m_table_current_row_background_default \empty
-\let\m_table_current_row_background_filler \empty
-\let\m_table_current_row_background_defaultfiller\empty
-\let\m_table_current_row_background_auto \empty
+\lettonothing\m_table_current_row_background
+\lettonothing\m_table_current_row_background_default
+\lettonothing\m_table_current_row_background_filler
+\lettonothing\m_table_current_row_background_defaultfiller
+\lettonothing\m_table_current_row_background_auto
\protected\def\tabl_register_row_background#1%
{\xdef\m_table_current_row_background{#1}}
@@ -2780,16 +3070,16 @@
\fi}
\appendtoks
- \glet\m_table_current_row_background\empty
- \glet\m_table_current_row_background_filler\empty
+ \glettonothing\m_table_current_row_background
+ \glettonothing\m_table_current_row_background_filler
\global\c_tabl_tabulate_nofrealrows\zerocount
\global\c_tabl_tabulate_autocolor\zerocount
\clf_resetbackgroundrowdata
\to \t_tabl_tabulate_initializers_first
\appendtoks
- \glet\m_table_current_row_background\empty
- \glet\m_table_current_row_background_filler\empty
+ \glettonothing\m_table_current_row_background
+ \glettonothing\m_table_current_row_background_filler
\global\c_tabl_tabulate_nofrealrows\zerocount
\global\c_tabl_tabulate_autocolor\zerocount
\clf_resetbackgroundrowdata
@@ -2800,8 +3090,8 @@
\to \t_tabl_tabulate_every_real_row
\appendtoks
- \glet\m_table_current_row_background\empty
- \glet\m_table_current_row_background_filler\empty
+ \glettonothing\m_table_current_row_background
+ \glettonothing\m_table_current_row_background_filler
\to \t_tabl_tabulate_every_after_row
\permanent\protected\def\tabl_tabulate_NL_first[#1]%
@@ -2809,7 +3099,7 @@
\ifcase\c_tabl_tabulate_column\or
\tabl_register_row_background{#1}%
\fi
- \ignorespaces}
+ \ignorepars} % \ignorespaces
\pushoverloadmode
@@ -2820,7 +3110,7 @@
\ifcase\c_tabl_tabulate_column\or
\tabl_register_row_background\m_table_current_row_background_default
\fi
- \ignorespaces}
+ \ignorepars} % \ignorespaces
\popoverloadmode
@@ -2830,7 +3120,7 @@
\tabl_register_row_background{#1}%
\fi
\usetabulationstyleandcolor\c!foregroundstyle\c!foregroundcolor
- \ignorespaces}
+ \ignorepars} % \ignorespaces
\permanent\protected\def\tabl_tabulate_DB_first
{\tabl_tabulate_column_normal\plusone\zerocount\relax
@@ -2839,21 +3129,21 @@
\fi
\enforced\let\fontstyle\globalfontstyle
\usetabulationstyleandcolor\c!foregroundstyle\c!foregroundcolor
- \ignorespaces}
+ \ignorepars} % \ignorespaces
\permanent\protected\def\tabl_tabulate_NF_first[#1]%
{\tabl_tabulate_column_normal\zerocount\zerocount\relax
\ifcase\c_tabl_tabulate_column\or
\tabl_register_row_background_filler{#1}%
\fi
- \ignorespaces}
+ \ignorepars} % \ignorespaces
\permanent\protected\def\tabl_tabulate_NP_first
{\tabl_tabulate_column_normal\zerocount\zerocount\relax
\ifcase\c_tabl_tabulate_column\or
\tabl_register_row_background_filler\m_table_current_row_background_default_filler
\fi
- \ignorespaces}
+ \ignorepars} % \ignorespaces
\permanent\protected\def\tabl_tabulate_FB_first[#1]%
{\tabl_tabulate_column_normal\plusone\zerocount\relax
@@ -2861,7 +3151,7 @@
\tabl_register_row_background_filler{#1}%
\fi
\usetabulationstyleandcolor\c!foregroundstyle\c!foregroundcolor
- \ignorespaces}
+ \ignorepars} % \ignorespaces
\permanent\protected\def\tabl_tabulate_PB_first
{\tabl_tabulate_column_normal\plusone\zerocount\relax
@@ -2870,7 +3160,7 @@
\fi
\enforced\let\fontstyle\globalfontstyle
\usetabulationstyleandcolor\c!foregroundstyle\c!foregroundcolor
- \ignorespaces}
+ \ignorepars} % \ignorespaces
\pushoverloadmode
@@ -2890,35 +3180,31 @@
\popoverloadmode
\permanent\protected\def\tabl_tabulate_A_first
- {\global\advance\c_tabl_tabulate_autocolor\plusone
+ {\global\advanceby\c_tabl_tabulate_autocolor\plusone
\edef\m_table_current_row_background_auto{\tabulateparameter{\c!backgroundcolor:\number\c_tabl_tabulate_autocolor}}%
\ifempty\m_table_current_row_background_auto
\global\c_tabl_tabulate_autocolor\plusone
\edef\m_table_current_row_background_auto{\tabulateparameter{\c!backgroundcolor:\number\c_tabl_tabulate_autocolor}}%
\fi
\ifempty\m_table_current_row_background_auto
- \let\m_table_current_row_background_auto\empty % \m_table_current_row_background_default
+ \lettonothing\m_table_current_row_background_auto % \m_table_current_row_background_default
\fi
\tabl_register_row_background{\m_table_current_row_background_auto}}
\permanent\protected\def\tabl_tabulate_NA_first
{\tabl_tabulate_column_normal\zerocount\zerocount\relax
- \iftrialtypesetting\else
- \ifcase\c_tabl_tabulate_column\or
- \tabl_tabulate_A_first
- \fi
+ \iftrialtypesetting\orelse\ifcase\c_tabl_tabulate_column\or
+ \tabl_tabulate_A_first
\fi
- \ignorespaces}
+ \ignorepars} % \ignorespaces
\permanent\protected\def\tabl_tabulate_BA_first
{\tabl_tabulate_column_normal\plusone\zerocount\relax
- \iftrialtypesetting\else
- \ifcase\c_tabl_tabulate_column\or
- \tabl_tabulate_A_first
- \fi
+ \iftrialtypesetting\orelse\ifcase\c_tabl_tabulate_column\or
+ \tabl_tabulate_A_first
\fi
\usetabulationstyleandcolor\c!foregroundstyle\c!foregroundcolor
- \ignorespaces}
+ \ignorepars} % \ignorespaces
\appendtoks
\enforced\let\NL\tabl_tabulate_NL_first % NC with Line
@@ -2934,9 +3220,9 @@
\to \t_tabl_tabulate_initializers_first
\appendtoks
- \edef\m_table_current_row_background_default {\tabulateparameter\c!backgroundcolor}%
+ \edef\m_table_current_row_background_default{\tabulateparameter\c!backgroundcolor}%
\edef\m_table_current_row_background_default_filler{\tabulateparameter\c!background}%
- \let \m_table_current_row_background_auto \empty
+ \lettonothing\m_table_current_row_background_auto
\to \everytabulate
\setuptabulate
@@ -2946,4 +3232,49 @@
\c!foregroundcolor=,
\c!foregroundstyle=\tabulationparameter\c!headstyle]
+%D Only for simple cases (read:myself):
+%D
+%D \starttyping
+%D \starttabulate[|c|c|c|]
+%D \NC 1 \NC second column \NC third column \NC \NR
+%D \NC 2 \NC second \NC third \NC \NR
+%D \NC 3 r \NS[1][r]second & third \NC \NR
+%D \NC 3 c \NS[1][c]second & third \NC \NR
+%D \NC 3 l \NS[1][l]second & third \NC \NR
+%D \stoptabulate
+%D \stoptyping
+
+% Not okay yet as we loose alignment in later columns .. weird .. do
+% we miss a tab?
+
+\installcorenamespace{tabulatespanb}
+\installcorenamespace{tabulatespana}
+
+\noaligned\def\tabl_tabulate_span{\omit\span\omit\span\omit\span}
+
+%\letcsname\??tabulatespanb l\endcsname\relax
+\letcsname\??tabulatespana l\endcsname\hfill
+\letcsname\??tabulatespanb c\endcsname\hfill
+\letcsname\??tabulatespana c\endcsname\hfill
+\letcsname\??tabulatespanb m\endcsname\hfill
+\letcsname\??tabulatespana m\endcsname\hfill
+\letcsname\??tabulatespanb r\endcsname\hfill
+%\letcsname\??tabulatespana r\endcsname\relax
+
+\noaligned\tolerant\def\tabl_tabulate_NS[#1]#*[#2]%
+ {\NC\loopcs{#1}\tabl_tabulate_span
+ \gdef\tabl_tabulate_kooh
+ {\begincsname\??tabulatespana#2\endcsname
+ \glet\tabl_tabulate_kooh\relax}%
+ \begincsname\??tabulatespanb#2\endcsname
+ \ignorepars} % \ignorespaces
+
+\appendtoks
+ \enforced\let\NS\tabl_tabulate_NS
+\to \t_tabl_tabulate_initializers_first
+
+% \appendtoks
+% \let\NS\tabl_tabulate_NS
+% \to \t_tabl_tabulate_initializers_second
+
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/tabl-tsp.mkxl b/Master/texmf-dist/tex/context/base/mkxl/tabl-tsp.mkxl
index 5f01e7eb4ae..6facbfcae00 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/tabl-tsp.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/tabl-tsp.mkxl
@@ -69,16 +69,15 @@
\newconditional\splitfloatdone
\newconditional\onlyonesplitofffloat \settrue\onlyonesplitofffloat
-\newif \ifinsidesplitfloat % will become conditional
+\newif \ifinsidesplitfloat % will become conditional
+\newcount\noffloatssplits
+\newtoks \everysplitfloatsetup
-\newcount \noffloatssplits
-\newtoks \everysplitfloatsetup
+\mutable\let\extrasplitfloatlines \!!zerocount
+\mutable\let\splitfloatfinalizer \relax
-\mutable\let \extrasplitfloatlines \!!zerocount
-\mutable\let \splitfloatfinalizer \relax
-\mutable\let \splitfloatcommand \empty
-
-\mutable\let \floatcaptionsuffix \empty
+\mutable\lettonothing\splitfloatcommand
+\mutable\lettonothing\floatcaptionsuffix
\permanent\tolerant\protected\def\splitfloat[#1]#:#2% nog dubbele refs
{\bgroup
@@ -131,10 +130,10 @@
\dontcomplain
\global\settrue\splitfloatdone
% \nodelocationmode\zerocount % bypass auto-renumbering
- \global\advance\noffloatssplits\plusone
+ \global\advanceby\noffloatssplits\plusone
\ifcase\noffloatssplits\relax \or
\ifconditional\onlyonesplitofffloat
- \let\floatcaptionsuffix\empty
+ \lettonothing\floatcaptionsuffix
\fi
\fi
\bgroup
@@ -191,7 +190,7 @@
\setbox\scratchbox\vbox{\flushlocalfloats}% \vpack ?
\getnoflines{\ht\scratchbox}%
\resetlocalfloats
- \advance\noflines\minusone % compensate dummy line
+ \advanceby\noflines\minusone % compensate dummy line
\normalexpanded{\egroup\noexpand\edef\noexpand\extrasplitfloatlines{\the\noflines}}%
\global\settrue\usesamefloatnumber
\else
@@ -207,25 +206,25 @@
% todo: keep tail to rest, so we need a lookahead
-\newbox\b_split_content
-\newbox\b_split_result
-\newbox\b_split_head
-\newbox\b_split_next
-\newbox\b_split_tail
-
-\newtoks\t_split_before_result
-\newtoks\t_split_after_result
-\newtoks\t_split_before
-\newtoks\t_split_inbetween
-\newtoks\t_split_after
+\newbox \b_split_content
+\newbox \b_split_result % watch out, semi public, accessed in cs-*
+\newbox \b_split_head
+\newbox \b_split_next
+\newbox \b_split_tail
-\newtoks\everyresettsplit
+\newtoks \t_split_before_result
+\newtoks \t_split_after_result
+\newtoks \t_split_before
+\newtoks \t_split_inbetween
+\newtoks \t_split_after
+\newtoks \t_split_section
+\newtoks \everyresettsplit
-\newcount\c_split_minimum_free_lines
+\newinteger \c_split_minimum_free_lines
-\newdimen\d_split_minimum_free_space
-\newdimen\d_split_available_height
-\newdimen\d_split_inbetween_height
+\newdimension \d_split_minimum_free_space
+\newdimension \d_split_available_height
+\newdimension \d_split_inbetween_height
\newconditional\c_tabl_split_done
\newconditional\c_tabl_split_head
@@ -233,6 +232,8 @@
\newconditional\tabl_split_forced_page
+% \permanent\protected\def\lastsplithtdp{\htdp\b_split_result}
+
\appendtoks
\c_split_minimum_free_lines\zerocount
\d_split_minimum_free_space\zeropoint
@@ -246,6 +247,7 @@
\t_split_inbetween \emptytoks
\t_split_before \emptytoks
\t_split_after \emptytoks
+ \t_split_section \emptytoks
\let\postprocesstsplit \donothing
\to \everyresettsplit
@@ -296,11 +298,12 @@
-\extrasplitfloatlines\lineheight
\relax
\ifdim\htdp\b_split_tail>\zeropoint
- \advance\d_split_available_height-\htdp\b_split_tail
+ \advanceby\d_split_available_height-\htdp\b_split_tail
\fi
\setbox\b_split_result\vbox
{\ifdim\ht\b_split_head>\zeropoint
\unvcopy\b_split_head
+ \the\t_split_section
\the\t_split_inbetween
\fi}%
\ifconditional\c_tabl_split_done \else
diff --git a/Master/texmf-dist/tex/context/base/mkxl/tabl-xtb.lmt b/Master/texmf-dist/tex/context/base/mkxl/tabl-xtb.lmt
new file mode 100644
index 00000000000..b69bfd87346
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/tabl-xtb.lmt
@@ -0,0 +1,1325 @@
+if not modules then modules = { } end modules ['tabl-xtb'] = {
+ version = 1.001,
+ comment = "companion to tabl-xtb.mkvi",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+--[[
+
+This table mechanism is a combination between TeX and Lua. We do process
+cells at the TeX end and inspect them at the Lua end. After some analysis
+we have a second pass using the calculated widths, and if needed cells
+will go through a third pass to get the heights right. This last pass is
+avoided when possible which is why some code below looks a bit more
+complex than needed. The reason for such optimizations is that each cells
+is actually a framed instance and because tables like this can be hundreds
+of pages we want to keep processing time reasonable.
+
+To a large extend the behaviour is comparable with the way bTABLE/eTABLE
+works and there is a module that maps that one onto this one. Eventually
+this mechamism will be improved so that it can replace its older cousin.
+
+]]--
+
+-- todo: use linked list instead of r/c array
+-- todo: we can use the sum of previously forced widths for column spans
+
+local tonumber, next = tonumber, next
+
+local commands = commands
+local context = context
+local ctxnode = context.nodes.flush
+
+local implement = interfaces.implement
+
+local tex = tex
+local texgetcount = tex.getcount
+local texsetcount = tex.setcount
+local texiscount = tex.iscount
+local texgetdimen = tex.getdimen
+local texsetdimen = tex.setdimen
+local texisdimen = tex.isdimen
+local texget = tex.get
+
+local format = string.format
+local concat = table.concat
+local points = number.points
+
+local todimen = string.todimen
+
+local ctx_beginvbox = context.beginvbox
+local ctx_endvbox = context.endvbox
+local ctx_blank = context.blank
+local ctx_nointerlineskip = context.nointerlineskip
+local ctx_dummyxcell = context.dummyxcell
+
+local variables = interfaces.variables
+
+local setmetatableindex = table.setmetatableindex
+local settings_to_hash = utilities.parsers.settings_to_hash
+
+local nuts = nodes.nuts -- here nuts gain hardly nothing
+local tonut = nuts.tonut
+local tonode = nuts.tonode
+
+local getnext = nuts.getnext
+local getprev = nuts.getprev
+local getlist = nuts.getlist
+local getwidth = nuts.getwidth
+local getbox = nuts.getbox
+local getwhd = nuts.getwhd
+
+local setlink = nuts.setlink
+local setdirection = nuts.setdirection
+local setshift = nuts.setshift
+
+local copynodelist = nuts.copylist
+local hpacknodelist = nuts.hpack
+local flushnodelist = nuts.flushlist
+local takebox = nuts.takebox
+
+local nodepool = nuts.pool
+
+local new_glue = nodepool.glue
+local new_kern = nodepool.kern
+local new_hlist = nodepool.hlist
+
+local lefttoright_code = nodes.dirvalues.lefttoright
+
+local v_stretch = variables.stretch
+local v_normal = variables.normal
+local v_width = variables.width
+local v_height = variables.height
+local v_repeat = variables["repeat"]
+local v_max = variables.max
+local v_fixed = variables.fixed
+----- v_auto = variables.auto
+local v_before = variables.before
+local v_after = variables.after
+local v_both = variables.both
+local v_samepage = variables.samepage
+local v_tight = variables.tight
+
+local xtables = { }
+typesetters.xtables = xtables
+
+local trace_xtable = false
+local report_xtable = logs.reporter("xtable")
+
+trackers.register("xtable.construct", function(v) trace_xtable = v end)
+
+local c_tabl_x_nx = texiscount("c_tabl_x_nx")
+local c_tabl_x_ny = texiscount("c_tabl_x_ny")
+local c_tabl_x_state = texiscount("c_tabl_x_state")
+local c_tabl_x_mode = texiscount("c_tabl_x_mode")
+local c_tabl_x_skip_mode = texiscount("c_tabl_x_skip_mode")
+local d_tabl_x_final_width = texisdimen("d_tabl_x_final_width")
+local d_tabl_x_distance = texisdimen("d_tabl_x_distance")
+local d_tabl_x_width = texisdimen("d_tabl_x_width")
+local d_tabl_x_height = texisdimen("d_tabl_x_height")
+local d_tabl_x_depth = texisdimen("d_tabl_x_depth")
+local d_lineheight = texisdimen("lineheight")
+
+local c_frameddimensionstate = texiscount("frameddimensionstate")
+
+local head_mode = 1
+local foot_mode = 2
+local more_mode = 3
+local body_mode = 4
+
+local namedmodes = { [0] =
+ "null",
+ "head",
+ "foot",
+ "next",
+ "body",
+}
+
+local stack, data = { }, nil
+
+function xtables.create(settings)
+ table.insert(stack,data)
+ local rows = { }
+ local widths = { }
+ local heights = { }
+ local depths = { }
+ -- local spans = { }
+ local distances = { }
+ local autowidths = { }
+ local modes = { }
+ local fixedrows = { }
+ local fixedcolumns = { }
+ -- local fixedcspans = { }
+ local frozencolumns = { }
+ local options = { }
+ local rowproperties = { }
+ data = {
+ rows = rows,
+ widths = widths,
+ heights = heights,
+ depths = depths,
+ -- spans = spans,
+ distances = distances,
+ modes = modes,
+ autowidths = autowidths,
+ fixedrows = fixedrows,
+ fixedcolumns = fixedcolumns,
+ -- fixedcspans = fixedcspans,
+ frozencolumns = frozencolumns,
+ options = options,
+ nofrows = 0,
+ nofcolumns = 0,
+ currentrow = 0,
+ currentcolumn = 0,
+ settings = settings or { },
+ rowproperties = rowproperties,
+ }
+ local function add_zero(t,k)
+ t[k] = 0
+ return 0
+ end
+ local function add_table(t,k)
+ local v = { }
+ t[k] = v
+ return v
+ end
+ local function add_cell(row,c)
+ local cell = {
+ nx = 0,
+ ny = 0,
+ list = false,
+ wd = 0,
+ ht = 0,
+ dp = 0,
+ }
+ row[c] = cell
+ if c > data.nofcolumns then
+ data.nofcolumns = c
+ end
+ return cell
+ end
+ local function add_row(rows,r)
+ local row = { }
+ setmetatableindex(row,add_cell)
+ rows[r] = row
+ if r > data.nofrows then
+ data.nofrows = r
+ end
+ return row
+ end
+ setmetatableindex(rows,add_row)
+ setmetatableindex(widths,add_zero)
+ setmetatableindex(heights,add_zero)
+ setmetatableindex(depths,add_zero)
+ setmetatableindex(distances,add_zero)
+ setmetatableindex(modes,add_zero)
+ setmetatableindex(fixedrows,add_zero)
+ setmetatableindex(fixedcolumns,add_zero)
+ setmetatableindex(options,add_table)
+ -- setmetatableindex(fixedcspans,add_table)
+ --
+ local globaloptions = settings_to_hash(settings.option)
+ --
+ settings.columndistance = tonumber(settings.columndistance) or 0
+ settings.rowdistance = tonumber(settings.rowdistance) or 0
+ settings.leftmargindistance = tonumber(settings.leftmargindistance) or 0
+ settings.rightmargindistance = tonumber(settings.rightmargindistance) or 0
+ settings.options = globaloptions
+ settings.textwidth = tonumber(settings.textwidth) or texget("hsize")
+ settings.lineheight = tonumber(settings.lineheight) or texgetdimen(d_lineheight)
+ settings.maxwidth = tonumber(settings.maxwidth) or settings.textwidth/8
+ -- if #stack > 0 then
+ -- settings.textwidth = texget("hsize")
+ -- end
+ data.criterium_v = 2 * data.settings.lineheight
+ data.criterium_h = .75 * data.settings.textwidth
+ --
+ data.tight = globaloptions[v_tight] and true or false
+end
+
+function xtables.initialize_reflow_width(option,width)
+ local r = data.currentrow
+ local c = data.currentcolumn + 1
+ local drc = data.rows[r][c]
+ drc.nx = texgetcount(c_tabl_x_nx)
+ drc.ny = texgetcount(c_tabl_x_ny)
+ local distances = data.distances
+ local distance = texgetdimen(d_tabl_x_distance)
+ if distance > distances[c] then
+ distances[c] = distance
+ end
+ if option and option ~= "" then
+ local options = settings_to_hash(option)
+ data.options[r][c] = options
+ if options[v_fixed] then
+ data.frozencolumns[c] = true
+ end
+ end
+ data.currentcolumn = c
+end
+
+-- todo: we can better set the cell values in one go
+
+function xtables.set_reflow_width()
+ local r = data.currentrow
+ local c = data.currentcolumn
+ local rows = data.rows
+ local row = rows[r]
+ local cold = c
+ while row[c].span do -- can also be previous row ones
+ c = c + 1
+ end
+ -- bah, we can have a span already
+ if c > cold then
+ local ro = row[cold]
+ local rx = ro.nx
+ local ry = ro.ny
+ if rx > 1 or ry > 1 then
+ local rn = row[c]
+ rn.nx = rx
+ rn.ny = ry
+ ro.nx = 1 -- or 0
+ ro.ny = 1 -- or 0
+ -- do we also need to set ro.span and rn.span
+ end
+ end
+ local tb = getbox("b_tabl_x")
+ local drc = row[c]
+ --
+ drc.list = true -- we don't need to keep the content around as we're in trial mode (no: copynodelist(tb))
+ --
+ local width, height, depth = getwhd(tb)
+ --
+ local widths = data.widths
+ local heights = data.heights
+ local depths = data.depths
+ local cspan = drc.nx
+ if cspan < 2 then
+ if width > widths[c] then
+ widths[c] = width
+ end
+ else
+ local options = data.options[r][c]
+ if data.tight then
+ -- no check
+ elseif not options then
+ if width > widths[c] then
+ widths[c] = width
+ end
+ elseif not options[v_tight] then
+ if width > widths[c] then
+ widths[c] = width
+ end
+ end
+ end
+ -- if cspan > 1 then
+ -- local f = data.fixedcspans[c]
+ -- local w = f[cspan] or 0
+ -- if width > w then
+ -- f[cspan] = width -- maybe some day a solution for autospanmax and so
+ -- end
+ -- end
+ if drc.ny < 2 then
+ -- report_xtable("set width, old: ht=%p, dp=%p",heights[r],depths[r])
+ -- report_xtable("set width, new: ht=%p, dp=%p",height,depth)
+ if height > heights[r] then
+ heights[r] = height
+ end
+ if depth > depths[r] then
+ depths[r] = depth
+ end
+ end
+ --
+ drc.wd = width
+ drc.ht = height
+ drc.dp = depth
+ --
+ local dimensionstate = texgetcount(c_frameddimensionstate)
+ local fixedcolumns = data.fixedcolumns
+ local fixedrows = data.fixedrows
+ if dimensionstate == 1 then
+ if cspan > 1 then
+ -- ignore width
+ elseif width > fixedcolumns[c] then -- how about a span here?
+ fixedcolumns[c] = width
+ end
+ elseif dimensionstate == 2 then
+ fixedrows[r] = height
+ elseif dimensionstate == 3 then
+ fixedrows[r] = height -- width
+ fixedcolumns[c] = width -- height
+ elseif width <= data.criterium_h and height >= data.criterium_v then
+ -- somewhat tricky branch
+ if width > fixedcolumns[c] then -- how about a span here?
+ -- maybe an image, so let's fix
+ fixedcolumns[c] = width
+ end
+ end
+--
+-- -- this fails so not good enough predictor
+--
+-- -- \startxtable
+-- -- \startxrow
+-- -- \startxcell knuth \stopxcell
+-- -- \startxcell \input knuth \stopxcell
+-- -- \stopxrow
+--
+-- else
+-- local o = data.options[r][c]
+-- if o and o[v_auto] then -- new per 5/5/2014 - removed per 15/07/2014
+-- data.autowidths[c] = true
+-- else
+-- -- no dimensions are set in the cell
+-- if width <= data.criterium_h and height >= data.criterium_v then
+-- -- somewhat tricky branch
+-- if width > fixedcolumns[c] then -- how about a span here?
+-- -- maybe an image, so let's fix
+-- fixedcolumns[c] = width
+-- end
+-- else
+-- -- safeguard as it could be text that can be recalculated
+-- -- and the previous branch could have happened in a previous
+-- -- row and then forces a wrong one-liner in a multiliner
+-- if width > fixedcolumns[c] then
+-- data.autowidths[c] = true -- new per 5/5/2014 - removed per 15/07/2014
+-- end
+-- end
+-- end
+-- end
+--
+ --
+ drc.dimensionstate = dimensionstate
+ --
+ local nx = drc.nx
+ local ny = drc.ny
+ if nx > 1 or ny > 1 then
+ -- local spans = data.spans -- not used
+ local self = true
+ for y=1,ny do
+ for x=1,nx do
+ if self then
+ self = false
+ else
+ local ry = r + y - 1
+ local cx = c + x - 1
+ -- if y > 1 then
+ -- spans[ry] = true -- not used
+ -- end
+ rows[ry][cx].span = true
+ end
+ end
+ end
+ c = c + nx - 1
+ end
+ if c > data.nofcolumns then
+ data.nofcolumns = c
+ end
+ data.currentcolumn = c
+end
+
+function xtables.initialize_reflow_height()
+ local r = data.currentrow
+ local c = data.currentcolumn + 1
+ local rows = data.rows
+ local row = rows[r]
+ while row[c].span do -- can also be previous row ones
+ c = c + 1
+ end
+ data.currentcolumn = c
+ local widths = data.widths
+ local w = widths[c]
+ local drc = row[c]
+ for x=1,drc.nx-1 do
+ w = w + widths[c+x]
+ end
+ texsetdimen(d_tabl_x_width,w)
+ local dimensionstate = drc.dimensionstate or 0
+ if dimensionstate == 1 or dimensionstate == 3 then
+ -- width was fixed so height is known
+ texsetcount(c_tabl_x_skip_mode,1)
+ elseif dimensionstate == 2 then
+ -- height is enforced
+ texsetcount(c_tabl_x_skip_mode,1)
+ elseif data.autowidths[c] then
+ -- width has changed so we need to recalculate the height
+ texsetcount(c_tabl_x_skip_mode,0)
+ elseif data.fixedcolumns[c] then
+ texsetcount(c_tabl_x_skip_mode,0) -- new
+ else
+ texsetcount(c_tabl_x_skip_mode,1)
+ end
+end
+
+function xtables.set_reflow_height()
+ local r = data.currentrow
+ local c = data.currentcolumn
+ local rows = data.rows
+ local row = rows[r]
+ -- while row[c].span do -- we could adapt drc.nx instead
+ -- c = c + 1
+ -- end
+ local tb = getbox("b_tabl_x")
+ local drc = row[c]
+ --
+ local width, height, depth = getwhd(tb)
+ --
+ if drc.ny < 2 then
+ if data.fixedrows[r] == 0 then -- and drc.dimensionstate < 2
+ if drc.ht + drc.dp <= height + depth then -- new per 2017-12-15
+ local heights = data.heights
+ local depths = data.depths
+ -- report_xtable("set height, old: ht=%p, dp=%p",heights[r],depths[r])
+ -- report_xtable("set height, new: ht=%p, dp=%p",height,depth)
+ if height > heights[r] then
+ heights[r] = height
+ end
+ if depth > depths[r] then
+ depths[r] = depth
+ end
+ end
+ end
+ end
+ --
+ drc.wd = width
+ drc.ht = height
+ drc.dp = depth
+ --
+ -- c = c + drc.nx - 1
+ -- data.currentcolumn = c
+end
+
+function xtables.initialize_construct()
+ local r = data.currentrow
+ local c = data.currentcolumn + 1
+ local settings = data.settings
+ local rows = data.rows
+ local row = rows[r]
+ while row[c].span do -- can also be previous row ones
+ c = c + 1
+ end
+ data.currentcolumn = c
+ local widths = data.widths
+ local heights = data.heights
+ local depths = data.depths
+ local distances = data.distances
+ --
+ local drc = row[c]
+ local wd = drc.wd
+ local ht = drc.ht
+ local dp = drc.dp
+ local nx = drc.nx - 1
+ local ny = drc.ny - 1
+ --
+ local width = widths[c]
+ local height = heights[r]
+ local depth = depths[r] -- problem: can be the depth of a one liner
+ --
+ local total = height + depth
+ --
+ if nx > 0 then
+ for x=1,nx do
+ width = width + widths[c+x] + distances[c+x-1]
+ end
+ local distance = settings.columndistance
+ if distance ~= 0 then
+ width = width + nx * distance
+ end
+ end
+ --
+ if ny > 0 then
+ for y=1,ny do
+ local nxt = r + y
+ total = total + heights[nxt] + depths[nxt]
+ end
+ local distance = settings.rowdistance
+ if distance ~= 0 then
+ total = total + ny * distance
+ end
+ end
+ --
+ texsetdimen(d_tabl_x_width,width)
+ texsetdimen(d_tabl_x_height,total)
+ texsetdimen(d_tabl_x_depth,0) -- for now
+end
+
+function xtables.set_construct()
+ local r = data.currentrow
+ local c = data.currentcolumn
+ local rows = data.rows
+ local row = rows[r]
+ -- while row[c].span do -- can also be previous row ones
+ -- c = c + 1
+ -- end
+ local drc = row[c]
+ -- this will change as soon as in luatex we can reset a box list without freeing
+ drc.list = takebox("b_tabl_x")
+ -- c = c + drc.nx - 1
+ -- data.currentcolumn = c
+end
+
+local function showwidths(where,widths,autowidths)
+ local result = { }
+ for i=1,#widths do
+ result[#result+1] = format("%12s%s",points(widths[i]),autowidths[i] and "*" or " ")
+ end
+ return report_xtable("%s widths: %s",where,concat(result," "))
+end
+
+function xtables.reflow_width()
+ local nofrows = data.nofrows
+ local nofcolumns = data.nofcolumns
+ local rows = data.rows
+ for r=1,nofrows do
+ local row = rows[r]
+ for c=1,nofcolumns do
+ local drc = row[c]
+ if drc.list then
+ -- flushnodelist(drc.list)
+ drc.list = false
+ end
+ end
+ end
+ -- spread
+ local settings = data.settings
+ local options = settings.options
+ local maxwidth = settings.maxwidth
+ -- calculate width
+ local widths = data.widths
+ local heights = data.heights
+ local depths = data.depths
+ local distances = data.distances
+ local autowidths = data.autowidths
+ local fixedcolumns = data.fixedcolumns
+ local frozencolumns = data.frozencolumns
+ local width = 0
+ local distance = 0
+ local nofwide = 0
+ local widetotal = 0
+ local available = settings.textwidth - settings.leftmargindistance - settings.rightmargindistance
+ if trace_xtable then
+ showwidths("stage 1",widths,autowidths)
+ end
+ local noffrozen = 0
+ -- here we can also check spans
+ if options[v_max] then
+ for c=1,nofcolumns do
+ width = width + widths[c]
+ if width > maxwidth then
+ autowidths[c] = true
+ nofwide = nofwide + 1
+ widetotal = widetotal + widths[c]
+ end
+ if c < nofcolumns then
+ distance = distance + distances[c]
+ end
+ if frozencolumns[c] then
+ noffrozen = noffrozen + 1 -- brr, should be nx or so
+ end
+ end
+ else
+ for c=1,nofcolumns do -- also keep track of forced
+ local fixedwidth = fixedcolumns[c]
+ if fixedwidth > 0 then
+ widths[c] = fixedwidth
+ width = width + fixedwidth
+ else
+ local wc = widths[c]
+ width = width + wc
+ -- if width > maxwidth then
+ if wc > maxwidth then -- per 2015-08-09
+ autowidths[c] = true
+ nofwide = nofwide + 1
+ widetotal = widetotal + wc
+ end
+ end
+ if c < nofcolumns then
+ distance = distance + distances[c]
+ end
+ if frozencolumns[c] then
+ noffrozen = noffrozen + 1 -- brr, should be nx or so
+ end
+ end
+ end
+ if trace_xtable then
+ showwidths("stage 2",widths,autowidths)
+ end
+ local delta = available - width - distance - (nofcolumns-1) * settings.columndistance
+ if delta == 0 then
+ -- nothing to be done
+ if trace_xtable then
+ report_xtable("perfect fit")
+ end
+ elseif delta > 0 then
+ -- we can distribute some
+ if not options[v_stretch] then
+ -- not needed
+ if trace_xtable then
+ report_xtable("too wide but no stretch, delta %p",delta)
+ end
+ elseif options[v_width] then
+ local factor = delta / width
+ if trace_xtable then
+ report_xtable("proportional stretch, delta %p, width %p, factor %a",delta,width,factor)
+ end
+ for c=1,nofcolumns do
+ widths[c] = widths[c] + factor * widths[c]
+ end
+ else
+ -- frozen -> a column with option=fixed will not stretch
+ local extra = delta / (nofcolumns - noffrozen)
+ if trace_xtable then
+ report_xtable("normal stretch, delta %p, extra %p",delta,extra)
+ end
+ for c=1,nofcolumns do
+ if not frozencolumns[c] then
+ widths[c] = widths[c] + extra
+ end
+ end
+ end
+ elseif nofwide > 0 then
+ while true do
+ done = false
+ local available = (widetotal + delta) / nofwide
+ if trace_xtable then
+ report_xtable("shrink check, total %p, delta %p, columns %s, fixed %p",widetotal,delta,nofwide,available)
+ end
+ for c=1,nofcolumns do
+ if autowidths[c] and available >= widths[c] then
+ autowidths[c] = nil
+ nofwide = nofwide - 1
+ widetotal = widetotal - widths[c]
+ done = true
+ end
+ end
+ if not done then
+ break
+ end
+ end
+ -- maybe also options[v_width] here but tricky as width does not say
+ -- much about amount
+ if options[v_width] then -- not that much (we could have a clever vpack loop balancing .. no fun)
+ local factor = (widetotal + delta) / width
+ if trace_xtable then
+ report_xtable("proportional shrink used, total %p, delta %p, columns %s, factor %s",widetotal,delta,nofwide,factor)
+ end
+ for c=1,nofcolumns do
+ if autowidths[c] then
+ widths[c] = factor * widths[c]
+ end
+ end
+ else
+ local available = (widetotal + delta) / nofwide
+ if trace_xtable then
+ report_xtable("normal shrink used, total %p, delta %p, columns %s, fixed %p",widetotal,delta,nofwide,available)
+ end
+ for c=1,nofcolumns do
+ if autowidths[c] then
+ widths[c] = available
+ end
+ end
+ end
+ end
+ if trace_xtable then
+ showwidths("stage 3",widths,autowidths)
+ end
+ --
+ data.currentrow = 0
+ data.currentcolumn = 0
+end
+
+function xtables.reflow_height()
+ data.currentrow = 0
+ data.currentcolumn = 0
+ local settings = data.settings
+ --
+ -- analyze ny
+ --
+ local nofrows = data.nofrows
+ local nofcolumns = data.nofcolumns
+ local widths = data.widths
+ local heights = data.heights
+ local depths = data.depths
+ --
+ for r=1,nofrows do
+ for c=1,nofcolumns do
+ local drc = data.rows[r][c]
+ if drc then
+ local ny = drc.ny
+ if ny > 1 then
+ local height = heights[r]
+ local depth = depths[r]
+ local total = height + depth
+ local htdp = drc.ht + drc.dp
+ for y=1,ny-1 do
+ local nxt = r + y
+ total = total + heights[nxt] + depths[nxt]
+ end
+ local delta = htdp - total
+ if delta > 0 then
+ delta = delta / ny
+ for y=0,ny-1 do
+ local nxt = r + y
+ heights[nxt] = heights[nxt] + delta
+ end
+ end
+ end
+ end
+ end
+ end
+ --
+ if settings.options[v_height] then
+ local totalheight = 0
+ local totaldepth = 0
+ for i=1,nofrows do
+ totalheight = totalheight + heights[i]
+ totalheight = totalheight + depths [i]
+ end
+ local total = totalheight + totaldepth
+ local leftover = settings.textheight - total
+ if leftover > 0 then
+ local leftheight = (totalheight / total) * leftover / #heights
+ local leftdepth = (totaldepth / total) * leftover / #depths
+ for i=1,nofrows do
+ heights[i] = heights[i] + leftheight
+ depths [i] = depths [i] + leftdepth
+ end
+ end
+ end
+end
+
+local function showspans(data)
+ local rows = data.rows
+ local modes = data.modes
+ local nofcolumns = data.nofcolumns
+ local nofrows = data.nofrows
+ for r=1,nofrows do
+ local line = { }
+ local row = rows[r]
+ for c=1,nofcolumns do
+ local cell =row[c]
+ if cell.list then
+ line[#line+1] = "list"
+ elseif cell.span then
+ line[#line+1] = "span"
+ else
+ line[#line+1] = "none"
+ end
+ end
+ report_xtable("%3d : %s : % t",r,namedmodes[modes[r]] or "----",line)
+ end
+end
+
+function xtables.construct()
+ local rows = data.rows
+ local heights = data.heights
+ local depths = data.depths
+ local widths = data.widths
+ -- local spans = data.spans
+ local distances = data.distances
+ local modes = data.modes
+ local settings = data.settings
+ local nofcolumns = data.nofcolumns
+ local nofrows = data.nofrows
+ local columndistance = settings.columndistance
+ local rowdistance = settings.rowdistance
+ local leftmargindistance = settings.leftmargindistance
+ local rightmargindistance = settings.rightmargindistance
+ local rowproperties = data.rowproperties
+ -- ranges can be mixes so we collect
+
+ if trace_xtable then
+ showspans(data)
+ end
+
+ local ranges = {
+ [head_mode] = { },
+ [foot_mode] = { },
+ [more_mode] = { },
+ [body_mode] = { },
+ }
+ for r=1,nofrows do
+ local m = modes[r]
+ if m == 0 then
+ m = body_mode
+ end
+ local range = ranges[m]
+ range[#range+1] = r
+ end
+ -- todo: hook in the splitter ... the splitter can ask for a chunk of
+ -- a certain size ... no longer a split memory issue then and header
+ -- footer then has to happen here too .. target height
+ local function packaged_column(r)
+ local row = rows[r]
+ local start = nil
+ local stop = nil
+ if leftmargindistance > 0 then
+ start = new_kern(leftmargindistance)
+ stop = start
+ end
+ local hasspan = false
+ for c=1,nofcolumns do
+ local drc = row[c]
+ if not hasspan then
+ hasspan = drc.span
+ end
+ local list = drc.list
+ if list then
+ local w, h, d = getwhd(list)
+ setshift(list,h+d)
+ -- list = hpacknodelist(list) -- is somehow needed
+ -- setwhd(list,0,0,0)
+ -- faster:
+ local h = new_hlist(list)
+ list = h
+ --
+ if start then
+ setlink(stop,list)
+ else
+ start = list
+ end
+ stop = list
+ end
+ local step = widths[c]
+ if c < nofcolumns then
+ step = step + columndistance + distances[c]
+ end
+ local kern = new_kern(step)
+ if stop then
+ setlink(stop,kern)
+ else -- can be first spanning next row (ny=...)
+ start = kern
+ end
+ stop = kern
+ end
+ if start then
+ if rightmargindistance > 0 then
+ local kern = new_kern(rightmargindistance)
+ setlink(stop,kern)
+ -- stop = kern
+ end
+ return start, heights[r] + depths[r], hasspan
+ end
+ end
+ local function collect_range(range)
+ local result, nofr = { }, 0
+ local nofrange = #range
+ for i=1,#range do
+ local r = range[i]
+ -- local row = rows[r]
+ local list, size, hasspan = packaged_column(r)
+ if list then
+ if hasspan and nofr > 0 then
+ result[nofr][4] = true
+ end
+ nofr = nofr + 1
+ local rp = rowproperties[r]
+ -- we have a direction issue here but hpacknodelist(list,0,"exactly") cannot be used
+ -- due to the fact that we need the width
+ local hbox = hpacknodelist(list)
+ setdirection(hbox,lefttoright_code)
+ result[nofr] = {
+ hbox,
+ size,
+ i < nofrange and rowdistance > 0 and rowdistance or false, -- might move
+ false,
+ rp or false,
+ }
+ end
+ end
+ if nofr > 0 then
+ -- the [5] slot gets the after break
+ result[1] [5] = false
+ result[nofr][5] = false
+ for i=2,nofr-1 do
+ local r = result[i][5]
+ if r == v_both or r == v_before then
+ result[i-1][5] = true
+ elseif r == v_after then
+ result[i][5] = true
+ end
+ end
+ end
+ return result
+ end
+ local body = collect_range(ranges[body_mode])
+ data.results = {
+ [head_mode] = collect_range(ranges[head_mode]),
+ [foot_mode] = collect_range(ranges[foot_mode]),
+ [more_mode] = collect_range(ranges[more_mode]),
+ [body_mode] = body,
+ }
+ if #body == 0 then
+ texsetcount("global",c_tabl_x_state,0)
+ texsetdimen("global",d_tabl_x_final_width,0)
+ else
+ texsetcount("global",c_tabl_x_state,1)
+ texsetdimen("global",d_tabl_x_final_width,getwidth(body[1][1]))
+ end
+end
+
+-- todo: join as that is as efficient as fushing multiple
+
+local function inject(row,copy,package)
+ local list = row[1]
+ if copy then
+ row[1] = copynodelist(list)
+ end
+ if package then
+ ctx_beginvbox()
+ ctxnode(tonode(list))
+ ctxnode(tonode(new_kern(row[2])))
+ ctx_endvbox()
+ ctx_nointerlineskip() -- figure out a better way
+ if row[4] then
+ -- nothing as we have a span
+ elseif row[5] then
+ if row[3] then
+ ctx_blank { v_samepage, row[3] .. "sp" }
+ else
+ ctx_blank { v_samepage }
+ end
+ elseif row[3] then
+ ctx_blank { row[3] .. "sp" } -- why blank ?
+ else
+ ctxnode(tonode(new_glue(0)))
+ end
+ else
+ ctxnode(tonode(list))
+ ctxnode(tonode(new_kern(row[2])))
+ if row[3] then
+ ctxnode(tonode(new_glue(row[3])))
+ end
+ end
+end
+
+local function total(row,distance)
+ local n = #row > 0 and rowdistance or 0
+ for i=1,#row do
+ local ri = row[i]
+ n = n + ri[2] + (ri[3] or 0)
+ end
+ return n
+end
+
+-- local function append(list,what)
+-- for i=1,#what do
+-- local l = what[i]
+-- list[#list+1] = l[1]
+-- local k = l[2] + (l[3] or 0)
+-- if k ~= 0 then
+-- list[#list+1] = new_kern(k)
+-- end
+-- end
+-- end
+
+local function spanheight(body,i)
+ local height, n = 0, 1
+ while true do
+ local bi = body[i]
+ if bi then
+ height = height + bi[2] + (bi[3] or 0)
+ if bi[4] then
+ n = n + 1
+ i = i + 1
+ else
+ break
+ end
+ else
+ break
+ end
+ end
+ return height, n
+end
+
+function xtables.flush(directives) -- todo split by size / no inbetween then .. glue list kern blank
+ local height = directives.height
+ local method = directives.method or v_normal
+ local settings = data.settings
+ local results = data.results
+ local rowdistance = settings.rowdistance
+ local head = results[head_mode]
+ local foot = results[foot_mode]
+ local more = results[more_mode]
+ local body = results[body_mode]
+ local repeatheader = settings.header == v_repeat
+ local repeatfooter = settings.footer == v_repeat
+ if height and height > 0 then
+ ctx_beginvbox()
+ local bodystart = data.bodystart or 1
+ local bodystop = data.bodystop or #body
+ if bodystart > 0 and bodystart <= bodystop then
+ local bodysize = height
+ local footsize = total(foot,rowdistance)
+ local headsize = total(head,rowdistance)
+ local moresize = total(more,rowdistance)
+ local firstsize, firstspans = spanheight(body,bodystart)
+ if bodystart == 1 then -- first chunk gets head
+ bodysize = bodysize - headsize - footsize
+ if headsize > 0 and bodysize >= firstsize then
+ for i=1,#head do
+ inject(head[i],repeatheader)
+ end
+ if rowdistance > 0 then
+ ctxnode(tonode(new_glue(rowdistance)))
+ end
+ if not repeatheader then
+ results[head_mode] = { }
+ end
+ end
+ elseif moresize > 0 then -- following chunk gets next
+ bodysize = bodysize - footsize - moresize
+ if bodysize >= firstsize then
+ for i=1,#more do
+ inject(more[i],true)
+ end
+ if rowdistance > 0 then
+ ctxnode(tonode(new_glue(rowdistance)))
+ end
+ end
+ elseif headsize > 0 and repeatheader then -- following chunk gets head
+ bodysize = bodysize - footsize - headsize
+ if bodysize >= firstsize then
+ for i=1,#head do
+ inject(head[i],true)
+ end
+ if rowdistance > 0 then
+ ctxnode(tonode(new_glue(rowdistance)))
+ end
+ end
+ else -- following chunk gets nothing
+ bodysize = bodysize - footsize
+ end
+ if bodysize >= firstsize then
+ local i = bodystart
+ while i <= bodystop do -- room for improvement
+ local total, spans = spanheight(body,i)
+ local bs = bodysize - total
+ if bs > 0 then
+ bodysize = bs
+ for s=1,spans do
+ inject(body[i])
+ body[i] = nil
+ i = i + 1
+ end
+ bodystart = i
+ else
+ break
+ end
+ end
+ if bodystart > bodystop then
+ -- all is flushed and footer fits
+ if footsize > 0 then
+ if rowdistance > 0 then
+ ctxnode(tonode(new_glue(rowdistance)))
+ end
+ for i=1,#foot do
+ inject(foot[i])
+ end
+ results[foot_mode] = { }
+ end
+ results[body_mode] = { }
+ texsetcount("global",c_tabl_x_state,0)
+ else
+ -- some is left so footer is delayed
+ -- todo: try to flush a few more lines
+ if repeatfooter and footsize > 0 then
+ if rowdistance > 0 then
+ ctxnode(tonode(new_glue(rowdistance)))
+ end
+ for i=1,#foot do
+ inject(foot[i],true)
+ end
+ else
+ -- todo: try to fit more of body
+ end
+ texsetcount("global",c_tabl_x_state,2)
+ end
+ else
+ if firstsize > height then
+ -- get rid of the too large cell
+ for s=1,firstspans do
+ inject(body[bodystart])
+ body[bodystart] = nil
+ bodystart = bodystart + 1
+ end
+ end
+ texsetcount("global",c_tabl_x_state,2) -- 1
+ end
+ else
+ texsetcount("global",c_tabl_x_state,0)
+ end
+ data.bodystart = bodystart
+ data.bodystop = bodystop
+ ctx_endvbox()
+ else
+ if method == variables.split then
+ -- maybe also a non float mode with header/footer repeat although
+ -- we can also use a float without caption
+ for i=1,#head do
+ inject(head[i],false,true)
+ end
+ if #head > 0 and rowdistance > 0 then
+ ctx_blank { rowdistance .. "sp" }
+ end
+ for i=1,#body do
+ inject(body[i],false,true)
+ end
+ if #foot > 0 and rowdistance > 0 then
+ ctx_blank { rowdistance .. "sp" }
+ end
+ for i=1,#foot do
+ inject(foot[i],false,true)
+ end
+ else -- normal
+ ctx_beginvbox()
+ for i=1,#head do
+ inject(head[i])
+ end
+ if #head > 0 and rowdistance > 0 then
+ ctxnode(tonode(new_glue(rowdistance)))
+ end
+ for i=1,#body do
+ inject(body[i])
+ end
+ if #foot > 0 and rowdistance > 0 then
+ ctxnode(tonode(new_glue(rowdistance)))
+ end
+ for i=1,#foot do
+ inject(foot[i])
+ end
+ ctx_endvbox()
+ end
+ results[head_mode] = { }
+ results[body_mode] = { }
+ results[foot_mode] = { }
+ texsetcount("global",c_tabl_x_state,0)
+ end
+end
+
+function xtables.cleanup()
+ for mode, result in next, data.results do
+ for _, r in next, result do
+ flushnodelist(r[1])
+ end
+ end
+
+ -- local rows = data.rows
+ -- for i=1,#rows do
+ -- local row = rows[i]
+ -- for i=1,#row do
+ -- local cell = row[i]
+ -- local list = cell.list
+ -- if list then
+ -- cell.width, cell.height, cell.depth = getwhd(list)
+ -- cell.list = true
+ -- end
+ -- end
+ -- end
+ -- data.result = nil
+
+ data = table.remove(stack)
+end
+
+function xtables.next_row(specification)
+ local r = data.currentrow + 1
+ data.modes[r] = texgetcount(c_tabl_x_mode)
+ data.currentrow = r
+ data.currentcolumn = 0
+ data.rowproperties[r] = specification
+end
+
+function xtables.finish_row()
+ local c = data.currentcolumn
+ local r = data.currentrow
+ local d = data.rows[r][c]
+ local n = data.nofcolumns - c
+ if d then
+ local nx = d.nx
+ if nx > 0 then
+ n = n - nx + 1
+ end
+ end
+ if n > 0 then
+ for i=1,n do
+ ctx_dummyxcell()
+ end
+ end
+end
+
+-- eventually we might only have commands
+
+implement {
+ name = "x_table_create",
+ actions = xtables.create,
+ arguments = {
+ {
+ { "option" },
+ { "textwidth", "dimen" },
+ { "textheight", "dimen" },
+ { "maxwidth", "dimen" },
+ { "lineheight", "dimen" },
+ { "columndistance", "dimen" },
+ { "leftmargindistance", "dimen" },
+ { "rightmargindistance", "dimen" },
+ { "rowdistance", "dimen" },
+ { "header" },
+ { "footer" },
+ }
+ }
+}
+
+implement {
+ name = "x_table_flush",
+ actions = xtables.flush,
+ arguments = {
+ {
+ { "method" },
+ { "height", "dimen" }
+ }
+ }
+}
+
+implement { name = "x_table_reflow_width", actions = xtables.reflow_width }
+implement { name = "x_table_reflow_height", actions = xtables.reflow_height }
+implement { name = "x_table_construct", actions = xtables.construct }
+implement { name = "x_table_cleanup", actions = xtables.cleanup }
+implement { name = "x_table_next_row", actions = xtables.next_row }
+implement { name = "x_table_next_row_option", actions = xtables.next_row, arguments = "string" }
+implement { name = "x_table_finish_row", actions = xtables.finish_row }
+implement { name = "x_table_init_reflow_width", actions = xtables.initialize_reflow_width }
+implement { name = "x_table_init_reflow_height", actions = xtables.initialize_reflow_height }
+implement { name = "x_table_init_reflow_width_option", actions = xtables.initialize_reflow_width, arguments = "string" }
+implement { name = "x_table_init_reflow_height_option", actions = xtables.initialize_reflow_height, arguments = "string" }
+implement { name = "x_table_init_construct", actions = xtables.initialize_construct }
+implement { name = "x_table_set_reflow_width", actions = xtables.set_reflow_width }
+implement { name = "x_table_set_reflow_height", actions = xtables.set_reflow_height }
+implement { name = "x_table_set_construct", actions = xtables.set_construct }
+implement { name = "x_table_r", actions = function() context(data.currentrow or 0) end }
+implement { name = "x_table_c", actions = function() context(data.currentcolumn or 0) end }
+
+-- experiment:
+
+do
+
+ local context = context
+ local ctxcore = context.core
+
+ local startxtable = ctxcore.startxtable
+ local stopxtable = ctxcore.stopxtable
+
+ local startcollecting = context.startcollecting
+ local stopcollecting = context.stopcollecting
+
+ function ctxcore.startxtable(...)
+ startcollecting()
+ startxtable(...)
+ end
+
+ function ctxcore.stopxtable()
+ stopxtable()
+ stopcollecting()
+ end
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/tabl-xtb.mklx b/Master/texmf-dist/tex/context/base/mkxl/tabl-xtb.mklx
index b15d99c1221..f7121dc5840 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/tabl-xtb.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/tabl-xtb.mklx
@@ -15,7 +15,27 @@
\writestatus{loading}{ConTeXt Table Macros / Xtreme}
-\registerctxluafile{tabl-xtb}{}
+\unprotect
+
+\newdimension\d_tabl_x_width \def\d_tabl_x_width_reference {\d_tabl_x_width }
+\newdimension\d_tabl_x_height \def\d_tabl_x_height_reference{\d_tabl_x_height}
+\newdimension\d_tabl_x_depth % not used
+\newdimension\d_tabl_x_distance
+\newdimension\d_tabl_x_final_width \def\d_tabl_x_final_width_reference{\d_tabl_x_final_width}
+\newinteger \c_tabl_x_nx
+\newinteger \c_tabl_x_ny
+\newinteger \c_tabl_x_mode
+\newbox \b_tabl_x
+\newinteger \c_tabl_x_state % 0=empty 1=content 3=splitleft
+\newinteger \c_tabl_x_nesting
+\newinteger \c_tabl_x_skip_mode % 1 = skip
+\newdimension\d_tabl_x_textwidth
+\newinteger \c_tabl_x_swapped
+\newinteger \c_tabl_x_swapped_max
+
+\protect
+
+\registerctxluafile{tabl-xtb}{autosuffix}
% todo:
%
@@ -82,23 +102,7 @@
{\signalcharacter}% not used
\to \everyenableelements
-\newdimen\d_tabl_x_width
-\newdimen\d_tabl_x_height
-\newdimen\d_tabl_x_depth % not used
-\newdimen\d_tabl_x_distance
-\newcount\c_tabl_x_nx
-\newcount\c_tabl_x_ny
-\newcount\c_tabl_x_mode
-\newbox \b_tabl_x
-\newcount\c_tabl_x_state % 0=empty 1=content 3=splitleft
-\newdimen\d_tabl_x_final_width
-\newcount\c_tabl_x_nesting
-\newcount\c_tabl_x_skip_mode % 1 = skip
-\newdimen\d_tabl_x_textwidth
-\newcount\c_tabl_x_swapped
-\newcount\c_tabl_x_swapped_max
-
-\let\m_tabl_x_swapped_settings\empty
+\lettonothing\m_tabl_x_swapped_settings
\aliased\let\currentxtablerow \clf_x_table_r
\aliased\let\currentxtablecolumn\clf_x_table_c
@@ -156,8 +160,8 @@
\c!rightmargindistance=\zeropoint,% whole table
]
-\def\tabl_x_default_buffer{x_table_\number\c_tabl_x_nesting}
-\let\tabl_x_current_buffer\empty
+\def \tabl_x_default_buffer{x_table_\number\c_tabl_x_nesting}
+\lettonothing\tabl_x_current_buffer
\permanent\protected\def\startxtable{\tabl_x_start_table}
@@ -169,7 +173,7 @@
% \permanent\protected\aliased\startxtable\tabl_x_start_table
-\aliased\permanent\let\stopxtable\relax
+\permanent\protected\lettonothing\stopxtable
% These direct buffers can be somewhat faster but it's probably neglectable.
% Anyway, no nesting is supported as we then need to catch (e.g.) rows and keep
@@ -204,19 +208,19 @@
\edef\tabl_x_current_buffer{embedded_x_table}%
\tabl_x_process}
-\aliased\permanent\let\stopembeddedxtable\relax
+\permanent\protected\lettonothing\stopembeddedxtable
%D We can also define xtables.
\appendtoks
- \permanent\setuevalue{\e!start\currentxtable}{\tabl_x_start_named[\currentxtable]}%
- \permanent\setuevalue{\e!stop \currentxtable}{\tabl_x_stop_named}%
+ \permanent\protected\edefcsname\e!start\currentxtable\endcsname{\tabl_x_start_named[\currentxtable]}%
+ \permanent\protected\edefcsname\e!stop \currentxtable\endcsname{\tabl_x_stop_named}%
\to \everydefinextable
\protected\def\tabl_x_start_named[#tag]#spacer[#settings]%
{\bgroup
\edef\currentxtable{#tag}%
- \advance\c_tabl_x_nesting\plusone
+ \advanceby\c_tabl_x_nesting\plusone
\dostarttaggedchained\t!table\empty\??xtable
\setupcurrentxtable[#settings]%
\tabl_x_check_textwidth
@@ -240,7 +244,7 @@
\newtoks\everypreparextable
\protected\def\tabl_x_prepare#settings%
- {\advance\c_tabl_x_nesting\plusone
+ {\advanceby\c_tabl_x_nesting\plusone
\dostarttaggedchained\t!table\empty\??xtable
\tabl_x_set_checked{#settings}%
\tabl_x_check_textwidth
@@ -248,7 +252,7 @@
}% else whitespace mess
\def\tabl_x_get_buffer
- {\clf_gettexbuffer{\tabl_x_current_buffer}}
+ {\clf_getbuffertex{\tabl_x_current_buffer}}
\let\tabl_x_start_row_yes \relax
\let\tabl_x_start_row_nop \relax
@@ -280,7 +284,7 @@
footer {\xtableparameter\c!footer}%
\relax
%
- \letxtableparameter\c!option\empty
+ \resetxtableparameter\c!option
% not so nice but needed as we use this in the setup
\linewidth\xtableparameter\c!rulethickness\relax
% so we freeze it
@@ -353,14 +357,14 @@
% in text flow: headers and footers only once
-\setvalue{\??xtableflushsplit\v!yes}%
+\defcsname\??xtableflushsplit\v!yes\endcsname
{\clf_x_table_flush
method {\v!split}%
\relax}
% in text flow: headers and footers only once
-\setvalue{\??xtableflushsplit\v!no}%
+\defcsname\??xtableflushsplit\v!no\endcsname
{% \noindent % gives extra line after table
% \noindentation % messes up the next indentation
% \dontleavehmode % no leftskip
@@ -373,11 +377,24 @@
% in text flow: headers and footers get repeated
-\setvalue{\??xtableflushsplit\v!repeat}%
+% \defcsname\??xtableflushsplit\v!repeat\endcsname
+% {\doloop
+% {\clf_x_table_flush
+% method {\v!split}%
+% height \ifdim\pagegoal=\maxdimen\textheight\else\pagegoal\fi
+% \relax
+% \ifcase\c_tabl_x_state
+% \exitloop
+% \else
+% \page
+% \fi}}
+
+\defcsname\??xtableflushsplit\v!repeat\endcsname
{\doloop
- {\clf_x_table_flush
+ {\testpage[5]% for now hard coded, just as the \lineheight below, see mail end of april 2021
+ \clf_x_table_flush
method {\v!split}%
- height \ifdim\pagegoal=\maxdimen\textheight\else\pagegoal\fi
+ height \ifdim\pagegoal=\maxdimen\textheight\else\dimexpr\pagegoal-\pagetotal-\lineheight\relax\fi
\relax
\ifcase\c_tabl_x_state
\exitloop
@@ -385,7 +402,7 @@
\page
\fi}}
-% \setvalue{\??xtableflushsplit\v!setups}%
+% \defcsname\??xtableflushsplit\v!setups\endcsname
% {\directsetup{xtable:split:user}}
%
% \startsetups[xtable:split:user]
@@ -423,7 +440,7 @@
\d_split_minimum_free_space\dimexpr\extraxtablesplitheight+\xtableparameter\c!splitoffset\relax
%\c_split_minimum_free_lines\plustwo % not needed here as we're precise enough
\let\tsplitdirectsplitter\tabl_x_split_splitter
- \let\tsplitdirectwidth \d_tabl_x_final_width
+ \let\tsplitdirectwidth \d_tabl_x_final_width_reference
\handledirecttsplit}
\protected\def\tabl_x_split_splitter#height%
@@ -614,7 +631,7 @@
\fi
\setupcurrentxtable[#settings]%
\relax
- \letxtableparameter\c!width\d_tabl_x_width % overloads given width
+ \letxtableparameter\c!width\d_tabl_x_width_reference % overloads given width
\inheritedxtableframed\bgroup
\tabl_x_begin_of_cell
\fi}
@@ -627,7 +644,7 @@
\letxtableparameter\c!height\v!fit % overloads given height
\fi
\relax
- \letxtableparameter\c!width\d_tabl_x_width % overloads given width
+ \letxtableparameter\c!width\d_tabl_x_width_reference % overloads given width
\inheritedxtableframed\bgroup
\tabl_x_begin_of_cell
\fi}
@@ -644,8 +661,8 @@
{\dostarttagged\t!tablecell\empty % can't we just tag the box
\setbox\b_tabl_x\hpack\bgroup
\setupcurrentxtable[#settings]%
- \letxtableparameter\c!width \d_tabl_x_width % overloads given width
- \letxtableparameter\c!height\d_tabl_x_height % overloads given height
+ \letxtableparameter\c!width \d_tabl_x_width_reference % overloads given width
+ \letxtableparameter\c!height\d_tabl_x_height_reference % overloads given height
\clf_x_table_init_construct
\inheritedxtableframed\bgroup
\tabl_x_begin_of_cell
@@ -654,8 +671,8 @@
\protected\def\tabl_x_start_cell_construct_nop
{\dostarttagged\t!tablecell\empty % can't we just tag the box
\setbox\b_tabl_x\hpack\bgroup
- \letxtableparameter\c!width \d_tabl_x_width % overloads given width
- \letxtableparameter\c!height\d_tabl_x_height % overloads given height (commenting it ... nice option)
+ \letxtableparameter\c!width \d_tabl_x_width_reference % overloads given width
+ \letxtableparameter\c!height\d_tabl_x_height_reference % overloads given height (commenting it ... nice option)
\clf_x_table_init_construct
\inheritedxtableframed\bgroup
\tabl_x_begin_of_cell
@@ -886,7 +903,7 @@
\expandafter\let\expandafter\t_tabl_x_swapped\csname\??xtableswap\number\c_tabl_x_swapped\endcsname}
\def\tabl_x_collect_advance
- {\global\advance\c_tabl_x_swapped\plusone
+ {\global\advanceby\c_tabl_x_swapped\plusone
\ifnum\c_tabl_x_swapped>\c_tabl_x_swapped_max
\global\c_tabl_x_swapped_max\c_tabl_x_swapped
\fi
diff --git a/Master/texmf-dist/tex/context/base/mkxl/task-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/task-ini.lmt
new file mode 100644
index 00000000000..6d4ebfcc2d4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/task-ini.lmt
@@ -0,0 +1,228 @@
+if not modules then modules = { } end modules ['task-ini'] = {
+ version = 1.001,
+ comment = "companion to task-ini.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- this is a temporary solution, we need to isolate some modules and then
+-- the load order can determine the trickery to be applied to node lists
+--
+-- we can disable more handlers and enable then when really used (*)
+--
+-- todo: two finalizers: real shipout (can be imposed page) and page shipout (individual page)
+--
+-- todo: consider moving the kernel kerning/ligaturing functions in the main font loop because
+-- there we know if they are needed; doesn't save time but; if we overload unh* commands to
+-- not apply the font handler, we can remove all checks for subtypes 255
+
+local tasks = nodes.tasks
+local appendaction = tasks.appendaction
+local disableaction = tasks.disableaction
+local enableaction = tasks.enableaction
+local freezegroup = tasks.freezegroup
+local freezecallbacks = callbacks.freeze
+
+------------("processors", "before", "nodes.properties.attach", nil, "nut", "enabled" )
+
+appendaction("processors", "normalizers", "builders.kernel.collapsing", nil, "nut", "enabled" )
+appendaction("processors", "normalizers", "typesetters.periodkerns.handler", nil, "nut", "disabled" )
+appendaction("processors", "normalizers", "languages.replacements.handler", nil, "nut", "disabled" )
+appendaction("processors", "normalizers", "typesetters.wrappers.handler", nil, "nut", "disabled" )
+appendaction("processors", "normalizers", "typesetters.characters.handler", nil, "nut", "enabled" )
+appendaction("processors", "normalizers", "fonts.collections.process", nil, "nut", "disabled" )
+appendaction("processors", "normalizers", "fonts.checkers.missing", nil, "nut", "disabled" )
+
+appendaction("processors", "characters", "scripts.autofontfeature.handler", nil, "nut", "disabled" )
+appendaction("processors", "characters", "scripts.splitters.handler", nil, "nut", "disabled" )
+appendaction("processors", "characters", "typesetters.cleaners.handler", nil, "nut", "disabled" )
+appendaction("processors", "characters", "typesetters.directions.handler", nil, "nut", "disabled" )
+appendaction("processors", "characters", "typesetters.cases.handler", nil, "nut", "disabled" )
+appendaction("processors", "characters", "typesetters.breakpoints.handler", nil, "nut", "disabled" )
+appendaction("processors", "characters", "scripts.injectors.handler", nil, "nut", "disabled" )
+
+appendaction("processors", "words", "languages.words.check", nil, "nut", "disabled" )
+appendaction("processors", "words", "languages.hyphenators.handler", nil, "nut", "enabled" )
+appendaction("processors", "words", "typesetters.initials.handler", nil, "nut", "disabled" )
+appendaction("processors", "words", "typesetters.firstlines.handler", nil, "nut", "disabled" )
+
+appendaction("processors", "fonts", "builders.paragraphs.solutions.splitters.split", nil, "nut", "disabled" )
+appendaction("processors", "fonts", "nodes.handlers.characters", nil, "nut", "enabled" )
+appendaction("processors", "fonts", "nodes.injections.handler", nil, "nut", "enabled" )
+appendaction("processors", "fonts", "typesetters.fontkerns.handler", nil, "nut", "disabled" )
+appendaction("processors", "fonts", "nodes.handlers.protectglyphs", nil, "nonut", "enabled" )
+appendaction("processors", "fonts", "builders.kernel.ligaturing", nil, "nut", "disabled" )
+appendaction("processors", "fonts", "builders.kernel.kerning", nil, "nut", "disabled" )
+appendaction("processors", "fonts", "nodes.handlers.show", nil, "nut", "disabled" )
+appendaction("processors", "fonts", "nodes.handlers.stripping", nil, "nut", "disabled" )
+appendaction("processors", "fonts", "nodes.handlers.flatten", nil, "nut", "disabled" )
+appendaction("processors", "fonts", "fonts.goodies.colorschemes.coloring", nil, "nut", "disabled" )
+
+appendaction("processors", "lists", "typesetters.rubies.check", nil, "nut", "disabled" )
+appendaction("processors", "lists", "typesetters.characteralign.handler", nil, "nut", "disabled" )
+appendaction("processors", "lists", "typesetters.spacings.handler", nil, "nut", "disabled" )
+appendaction("processors", "lists", "typesetters.kerns.handler", nil, "nut", "disabled" )
+appendaction("processors", "lists", "typesetters.digits.handler", nil, "nut", "disabled" )
+appendaction("processors", "lists", "typesetters.italics.handler", nil, "nut", "disabled" )
+appendaction("processors", "lists", "languages.visualizediscretionaries", nil, "nut", "disabled" )
+
+appendaction("processors", "after", "typesetters.marksuspects", nil, "nut", "disabled" )
+
+appendaction("shipouts", "normalizers", "nodes.handlers.cleanuppage", nil, "nut", "production")
+appendaction("shipouts", "normalizers", "typesetters.showsuspects", nil, "nut", "disabled" )
+appendaction("shipouts", "normalizers", "typesetters.margins.finalhandler", nil, "nut", "disabled" )
+appendaction("shipouts", "normalizers", "builders.paragraphs.expansion.trace", nil, "nut", "disabled" )
+appendaction("shipouts", "normalizers", "typesetters.alignments.handler", nil, "nut", "disabled" )
+appendaction("shipouts", "normalizers", "nodes.references.handler", nil, "nut", "production")
+appendaction("shipouts", "normalizers", "nodes.destinations.handler", nil, "nut", "production")
+appendaction("shipouts", "normalizers", "nodes.rules.handler", nil, "nut", "disabled" )
+appendaction("shipouts", "normalizers", "nodes.shifts.handler", nil, "nut", "disabled" )
+appendaction("shipouts", "normalizers", "structures.tags.handler", nil, "nut", "disabled" )
+appendaction("shipouts", "normalizers", "nodes.handlers.accessibility", nil, "nut", "disabled" )
+appendaction("shipouts", "normalizers", "nodes.handlers.backgrounds", nil, "nut", "disabled" )
+appendaction("shipouts", "normalizers", "typesetters.rubies.attach", nil, "nut", "disabled" )
+------------("shipouts", "normalizers", "nodes.properties.delayed", nil, "nut", "production")
+appendaction("shipouts", "normalizers", "nodes.tracers.directions", nil, "nut", "disabled" )
+
+appendaction("shipouts", "finishers", "nodes.visualizers.handler", nil, "nut", "disabled" )
+appendaction("shipouts", "finishers", "attributes.colors.handler", nil, "nut", "disabled" )
+appendaction("shipouts", "finishers", "attributes.transparencies.handler", nil, "nut", "disabled" )
+appendaction("shipouts", "finishers", "attributes.colorintents.handler", nil, "nut", "disabled" )
+appendaction("shipouts", "finishers", "attributes.negatives.handler", nil, "nut", "disabled" )
+appendaction("shipouts", "finishers", "attributes.effects.handler", nil, "nut", "disabled" )
+appendaction("shipouts", "finishers", "attributes.alternates.handler", nil, "nut", "disabled" )
+appendaction("shipouts", "finishers", "attributes.viewerlayers.handler", nil, "nut", "disabled" )
+
+appendaction("shipouts", "wrapup", "nodes.handlers.export", nil, "nut", "disabled" ) -- always last
+appendaction("shipouts", "wrapup", "luatex.synctex.collect", nil, "nut", "disabled" )
+
+appendaction("math", "normalizers", "noads.handlers.showtree", nil, "nonut", "disabled" )
+appendaction("math", "normalizers", "noads.handlers.collapse", nil, "nonut", "disabled" ) -- first time
+appendaction("math", "normalizers", "noads.handlers.numbers", nil, "nonut", "disabled" )
+appendaction("math", "normalizers", "noads.handlers.spacing", nil, "nonut", "disabled" )
+appendaction("math", "normalizers", "noads.handlers.fencing", nil, "nonut", "disabled" )
+appendaction("math", "normalizers", "noads.handlers.unscript", nil, "nonut", "enabled" )
+appendaction("math", "normalizers", "noads.handlers.unstack", nil, "nonut", "disabled" )
+appendaction("math", "normalizers", "noads.handlers.relocate", nil, "nonut", "enabled" )
+appendaction("math", "normalizers", "noads.handlers.variants", nil, "nonut", "enabled" )
+appendaction("math", "normalizers", "noads.handlers.families", nil, "nonut", "enabled" )
+appendaction("math", "normalizers", "noads.handlers.render", nil, "nonut", "enabled" )
+appendaction("math", "normalizers", "noads.handlers.collapse", nil, "nonut", "disabled" ) -- second time
+appendaction("math", "normalizers", "noads.handlers.fixscripts", nil, "nonut", "enabled" )
+------------("math", "normalizers", "noads.handlers.domains", nil, "nonut", "disabled" )
+appendaction("math", "normalizers", "noads.handlers.autofences", nil, "nonut", "disabled" )
+appendaction("math", "normalizers", "noads.handlers.resize", nil, "nonut", "enabled" )
+------------("math", "normalizers", "noads.handlers.respace", nil, "nonut", "enabled" )
+appendaction("math", "normalizers", "noads.handlers.alternates", nil, "nonut", "enabled" )
+appendaction("math", "normalizers", "noads.handlers.tags", nil, "nonut", "disabled" )
+------------("math", "normalizers", "noads.handlers.italics", nil, "nonut", "disabled" ) -- replaced
+appendaction("math", "normalizers", "noads.handlers.kernpairs", nil, "nonut", "disabled" )
+appendaction("math", "normalizers", "noads.handlers.classes", nil, "nonut", "disabled" )
+appendaction("math", "normalizers", "noads.handlers.dictionaries", nil, "nonut", "enabled" )
+appendaction("math", "normalizers", "noads.handlers.suspicious", nil, "nonut", "enabled" )
+
+appendaction("math", "builders", "builders.kernel.mlisttohlist", nil, "nut", "enabled" ) -- mandate
+------------("math", "builders", "typesetters.directions.processmath", nil, "nut", "disabled" )
+appendaction("math", "builders", "noads.handlers.makeup", nil, "nonut", "disabled" )
+------------("math", "builders", "noads.handlers.align", nil, "nonut", "enabled" )
+
+appendaction("math", "finalizers", "noads.handlers.normalize", nil, "nonut", "enabled" )
+appendaction("math", "finalizers", "noads.handlers.snap", nil, "nonut", "disabled" )
+
+appendaction("finalizers", "lists", "nodes.handlers.showhyphenation", nil, "nut", "disabled" )
+appendaction("finalizers", "lists", "nodes.handlers.visualizehyphenation", nil, "nut", "disabled" )
+
+appendaction("finalizers", "lists", "typesetters.margins.localhandler", nil, "nut", "disabled" )
+appendaction("finalizers", "lists", "builders.paragraphs.keeptogether", nil, "nut", "disabled" )
+appendaction("finalizers", "fonts", "builders.paragraphs.solutions.splitters.optimize", nil, "nonut", "disabled" )
+appendaction("finalizers", "lists", "builders.paragraphs.tag", nil, "nut", "disabled" )
+appendaction("finalizers", "lists", "nodes.linefillers.handler", nil, "nut", "disabled" )
+
+appendaction("contributers", "normalizers", "nodes.handlers.flattenline", nil, "nut", "disabled" )
+appendaction("contributers", "normalizers", "nodes.handlers.textbackgrounds", nil, "nut", "disabled" )
+appendaction("contributers", "normalizers", "nodes.handlers.wipe", nil, "nut", "disabled" )
+
+appendaction("adjusters", "normalizers", "nodes.handlers.adjusters", nil, "nut", "enabled" )
+
+appendaction("vboxbuilders", "normalizers", "nodes.adaptive.handlehorizontal", nil, "nut", "disabled" )
+appendaction("vboxbuilders", "normalizers", "nodes.handlers.backgroundsvbox", nil, "nut", "disabled" )
+------------("vboxbuilders", "normalizers", "typesetters.margins.localhandler", nil, "nut", "disabled" )
+appendaction("vboxbuilders", "normalizers", "builders.vspacing.vboxhandler", nil, "nut", "enabled" )
+appendaction("vboxbuilders", "normalizers", "builders.profiling.vboxhandler", nil, "nut", "disabled" )
+appendaction("vboxbuilders", "normalizers", "builders.profiling.boxlinehandler", nil, "nut", "disabled" )
+appendaction("vboxbuilders", "normalizers", "typesetters.checkers.handler", nil, "nut", "disabled" )
+appendaction("vboxbuilders", "normalizers", "typesetters.synchronize.handler", nil, "nut", "disabled" )
+
+appendaction("mvlbuilders", "normalizers", "nodes.handlers.backgroundspage", nil, "nut", "disabled" )
+appendaction("mvlbuilders", "normalizers", "typesetters.margins.globalhandler", nil, "nut", "disabled" )
+appendaction("mvlbuilders", "normalizers", "nodes.handlers.migrate", nil, "nut", "disabled" )
+appendaction("mvlbuilders", "normalizers", "builders.vspacing.pagehandler", nil, "nut", "enabled" )
+appendaction("mvlbuilders", "normalizers", "builders.profiling.pagehandler", nil, "nut", "disabled" )
+appendaction("mvlbuilders", "normalizers", "builders.profiling.pagelinehandler", nil, "nut", "disabled" )
+appendaction("mvlbuilders", "normalizers", "typesetters.checkers.handler", nil, "nut", "disabled" )
+appendaction("mvlbuilders", "normalizers", "typesetters.synchronize.handler", nil, "nut", "disabled" )
+
+appendaction("vboxhandlers", "normalizers", "nodes.adaptive.handlevertical", nil, "nut", "disabled" )
+
+appendaction("everypar", "normalizers", "nodes.handlers.checkparcounter", nil, "nut", "disabled" )
+
+appendaction("alignments", "normalizers", "nodes.handlers.showpreamble", nil, "nut", "enabled" )
+appendaction("alignments", "normalizers", "nodes.handlers.aligncharacter", nil, "nut", "disabled" )
+appendaction("alignments", "normalizers", "nodes.handlers.fixmathalign", nil, "nut", "disabled" )
+appendaction("alignments", "normalizers", "nodes.handlers.mathmatrixornaments", nil, "nut", "disabled" )
+appendaction("alignments", "normalizers", "nodes.handlers.mathmatrixrules", nil, "nut", "disabled" )
+
+appendaction("localboxes", "lists", "typesetters.localboxes.handler", nil, "nut", "enabled" )
+
+-- some protection
+
+freezecallbacks("find_.*_file", "find file using resolver")
+freezecallbacks("read_.*_file", "read file at once")
+freezecallbacks("open_.*_file", "open file for reading")
+
+-- experimental (needs to be updated):
+
+freezegroup("processors", "normalizers")
+freezegroup("processors", "characters")
+freezegroup("processors", "words")
+freezegroup("processors", "fonts")
+freezegroup("processors", "lists")
+
+freezegroup("finalizers", "normalizers")
+freezegroup("finalizers", "fonts")
+freezegroup("finalizers", "lists")
+
+freezegroup("math", "normalizers")
+freezegroup("math", "builders")
+
+freezegroup("shipouts", "normalizers")
+freezegroup("shipouts", "finishers")
+freezegroup("shipouts", "wrapup")
+
+freezegroup("mvlbuilders", "normalizers")
+freezegroup("vboxbuilders", "normalizers")
+
+-----------("parbuilders", "lists")
+-----------("pagebuilders", "lists")
+
+freezegroup("math", "normalizers")
+freezegroup("math", "builders")
+
+freezegroup("everypar", "normalizers")
+
+freezegroup("alignments", "normalizers")
+
+-----------("localboxes", "lists")
+
+-- new: disabled here
+
+directives.register("nodes.basepass", function(v)
+ if v then
+ enableaction("processors", "builders.kernel.ligaturing")
+ enableaction("processors", "builders.kernel.kerning")
+ else
+ disableaction("processors", "builders.kernel.ligaturing")
+ disableaction("processors", "builders.kernel.kerning")
+ end
+end)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/toks-aux.lmt b/Master/texmf-dist/tex/context/base/mkxl/toks-aux.lmt
index 03f4dc2c106..83e714d7738 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/toks-aux.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/toks-aux.lmt
@@ -5,11 +5,31 @@ if not modules then modules = { } end modules ['toks-aux'] = {
license = "see context related readme files"
}
-local type, tostring = type, tostring
+local type, tostring, next = type, tostring, next
local max = math.max
-local formatters, gsub, char = string.formatters, string.gsub, string.char
+local formatters, gsub, char, gmatch = string.formatters, string.gsub, string.char, string.gmatch
local concat = table.concat
+do
+
+ -- tex.magicconstants = { -- we use tex.constants for something else
+ -- running = -1073741824, -- null_flag
+ -- maxdimen = 1073741823, -- max_dimen
+ -- -- trueinch = 4736286, -- obsolete
+ -- }
+
+ local c = status.getconstants()
+ local t = { }
+ for k, v in next, c do
+ t[gsub(k,"_","")] = v
+ end
+
+ tex.magicconstants = table.setmetatableindex(t,c)
+
+end
+
+-- todo : locals from scanners
+
local function flags(t)
if type(t) == "string" then
t = token.create(t)
@@ -24,6 +44,7 @@ local function flags(t)
if t.instance then r[#r+1] = "instance" end
if t.tolerant then r[#r+1] = "tolerant" end
if t.protected then r[#r+1] = "protected" end
+ if t.constant then r[#r+1] = "constant" end
return r
end
@@ -37,27 +58,27 @@ interfaces.implement {
local f0 = formatters["%s: %s"]
local nl = logs.newline
local wr = logs.writer
- local t = token.peek_next() -- local t = token.scan_next() token.put_back(t)
+ local t = token.peeknext() -- local t = token.scannext() token.putback(t)
local n = ""
local w = ""
local c = t.cmdname
if c == "left_brace" then
w = "given token list"
- t = token.scan_toks(false)
+ t = token.scantoks(false)
elseif c == "register_toks" then
- token.scan_next()
+ token.scannext()
w = "token register"
n = t.csname or t.index
t = tex.gettoks(n,true)
elseif c == "internal_toks" then
- token.scan_next()
+ token.scannext()
w = "internal token variable"
n = t.csname or t.index
t = tex.gettoks(n,true)
else
- n = token.scan_csname()
+ n = token.scancsname()
local r = flags(t)
- local m = token.get_meaning(n,true)
+ local m = token.getmeaning(n,true)
r[#r+1] = "control sequence"
if type(m) == "table" then
t = m
@@ -99,6 +120,7 @@ interfaces.implement {
elseif cn == "letter" or cn == "other char" then
wr(f3(id,cd,ix,cn,ix))
elseif cn == "match" then
+ -- needs checking for additions
local s
if ix == 32 then s = "optional spacer" -- space
elseif ix == 42 then s = "skip spaces" -- *
@@ -128,56 +150,74 @@ interfaces.implement {
-- For the moment here, will move to initex only (also see node-ini.lua); we need
-- to actually store these.
-local groupcodes = { }
-local glyphoptioncodes = { }
-local hyphenationcodes = { }
-local frozenparcodes = { }
-local flagcodes = { }
-local normalizecodes = { }
+local context = context
-for k, v in next, tex.getgroupvalues() do
- groupcodes[k] = gsub(v,"[_ ]","")
-end
-for k, v in next, tex.gethyphenationvalues() do
- hyphenationcodes[k] = gsub(v,"[_ ]","")
-end
-for k, v in next, tex.getglyphoptionvalues() do
- glyphoptioncodes[k] = gsub(v,"[_ ]","")
-end
-for k, v in next, tex.getfrozenparvalues() do
- frozenparcodes[k] = gsub(v,"[_ ]","")
-end
-for k, v in next, tex.getflagvalues() do
- flagcodes[k] = gsub(v,"[_ ]","")
-end
-for k, v in next, tex.getnormalizevalues() do
- normalizecodes[k] = gsub(v,"[_ ]","")
+local function getthem(getter,post)
+ local codes = { }
+ if getter then
+ local texintegerdef = tex.integerdef
+ for k, v in next, getter() do
+ codes[k] = gsub(v,"[_ ]","")
+ end
+ if post and post ~= "" then
+ if environment.initex then
+ for k, v in next, codes do
+ texintegerdef(v .. post,k,"immutable")
+ end
+ end
+ interfaces.implement {
+ name = post .. "string",
+ public = true,
+ arguments = "integer",
+ actions = function(i)
+ context(codes[i] or "unknown")
+ end
+ }
+ end
+ end
+ return utilities.storage.allocate(table.swapped(codes,codes))
end
+tex.discoptioncodes = getthem(tex.getdiscoptionvalues, "discoptioncode")
+tex.flagcodes = getthem(tex.getflagvalues, "flagcode" )
+tex.frozenparcodes = getthem(tex.getfrozenparvalues, "frozenparcode")
+tex.glyphoptioncodes = getthem(tex.getglyphoptionvalues, "glyphoptioncode")
+tex.groupcodes = getthem(tex.getgroupvalues, "groupcode")
+tex.hyphenationcodes = getthem(tex.gethyphenationvalues, "hyphenationcode")
+tex.mathcontrolcodes = getthem(tex.getmathcontrolvalues, "mathcontrolcode")
+---.mathflattencodes = getthem(tex.getmathflattenvalues, "mathflattencode")
+tex.noadoptioncodes = getthem(tex.getnoadoptionvalues ) -- only at lua end
+tex.normalizelinecodes = getthem(tex.getnormalizelinevalues, "normalizecode") -- we keep the short name
+tex.normalizeparcodes = getthem(tex.getnormalizeparvalues, "normalizeparcode")
+tex.automigrationcodes = getthem(tex.getautomigrationvalues, "automigrationcode")
+tex.parcontextcodes = getthem(tex.getparcontextvalues, "parcontextcode")
+tex.textcontrolcodes = getthem(tex.gettextcontrolvalues ) -- only at lua end
+tex.listanchorcodes = getthem(tex.getlistanchorvalues, "listanchorcode")
+tex.listsigncodes = getthem(tex.getlistsignvalues, "listsigncode")
+tex.classoptioncodes = getthem(tex.getmathclassoptionvalues, "classoptioncode")
+---.alignmentcontextcodes = getthem(tex.getalignmentcontextvalues ) -- only at lua end
+tex.specialmathclasscodes = getthem(tex.getspecialmathclassvalues ) -- only at lua end
-if environment.initex then
-
- local texintegerdef = tex.integerdef
-
- for k, v in next, groupcodes do texintegerdef(v .. "groupcode", k,"immutable") end
- for k, v in next, glyphoptioncodes do texintegerdef(v .. "code", k,"immutable") end
- for k, v in next, hyphenationcodes do texintegerdef(v .. "hyphenationmodecode",k,"immutable") end
- for k, v in next, frozenparcodes do texintegerdef("frozen" .. v .. "code", k,"immutable") end
- for k, v in next, flagcodes do texintegerdef(v .. "flagcode", k,"immutable") end
- for k, v in next, normalizecodes do texintegerdef(v .. "code", k,"immutable") end
-
+function tex.stringtocodesbitmap(str,codes)
+ local bitmap = 0
+ if codes then
+ if not str or str == "" then
+ -- zero
+ elseif str == "all" then
+ for k in next, codes do
+ if type(k) == "number" then
+ bitmap = bitmap | k
+ end
+ end
+ else
+ str = gsub(str,"[_ ]","")
+ for s in gmatch(str,"[^%,]+") do
+ local b = codes[s]
+ if b then
+ bitmap = bitmap | b
+ end
+ end
+ end
+ end
+ return bitmap
end
-
-groupcodes = utilities.storage.allocate(table.swapped(groupcodes, groupcodes))
-glyphoptioncodes = utilities.storage.allocate(table.swapped(glyphoptioncodes,glyphoptioncodes))
-hyphenationcodes = utilities.storage.allocate(table.swapped(hyphenationcodes,hyphenationcodes))
-frozenparcodes = utilities.storage.allocate(table.swapped(frozenparcodes, frozenparcodes))
-flagcodes = utilities.storage.allocate(table.swapped(flagcodes, flagcodes))
-normalizecodes = utilities.storage.allocate(table.swapped(normalizecodes, normalizecodes))
-
-tex.groupcodes = groupcodes
-tex.glyphoptioncodes = glyphoptioncodes
-tex.hyphenationcodes = hyphenationcodes
-tex.frozenparcodes = frozenparcodes
-tex.flagcodes = flagcodes
-tex.normalizecodes = normalizecodes
diff --git a/Master/texmf-dist/tex/context/base/mkxl/toks-aux.mkxl b/Master/texmf-dist/tex/context/base/mkxl/toks-aux.mkxl
index 4563014ecfc..ed063f8db11 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/toks-aux.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/toks-aux.mkxl
@@ -47,7 +47,7 @@
\fi
\toksapp\lastnamedcs{#2}}
-\aliased\let\stoptokenlist\relax
+\permanent\protected\lettonothing\stoptokenlist
\permanent\def\gettokenlist[#1]%
{\ifcsname\??tokenlist#1\endcsname
diff --git a/Master/texmf-dist/tex/context/base/mkxl/toks-ini.lmt b/Master/texmf-dist/tex/context/base/mkxl/toks-ini.lmt
index 4b2d1faccf5..e4bf7626f19 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/toks-ini.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/toks-ini.lmt
@@ -25,58 +25,59 @@ values.count = values.integer
tokens.values = utilities.storage.allocate(table.swapped(values, values))
tokens.commands = utilities.storage.allocate(table.swapped(commands,commands))
-local scan_toks = token.scan_toks
-local scan_string = token.scan_string
-local scan_argument = token.scan_argument
-local scan_delimited = token.scan_delimited
-local scan_tokenlist = token.scan_tokenlist or scan_string
-local scan_integer = token.scan_integer or token.scan_int
-local scan_cardinal = token.scan_cardinal
-local scan_code = token.scan_code
-local scan_token_code = token.scan_token_code
-local scan_dimen = token.scan_dimen
-local scan_glue = token.scan_glue
-local scan_skip = token.scan_skip
-local scan_keyword = token.scan_keyword
-local scan_keyword_cs = token.scan_keyword_cs or scan_keyword
-local scan_token = token.scan_token
-local scan_box = token.scan_box
-local scan_word = token.scan_word
-local scan_letters = token.scan_letters or scan_word -- lmtx
-local scan_key = token.scan_key
-local scan_value = token.scan_value
-local scan_char = token.scan_char
-local scan_number = token.scan_number -- not defined
-local scan_csname = token.scan_csname
-local scan_real = token.scan_real
-local scan_float = token.scan_float
-local scan_luanumber = token.scan_luanumber or scan_float -- only lmtx
-local scan_luainteger = token.scan_luainteger or scan_integer -- only lmtx
-local scan_luacardinal = token.scan_luacardinal or scan_cardinal -- only lmtx
-
-local scan_integer_argument = token.scan_integer_argument
-local scan_dimen_argument = token.scan_dimen_argument
-
--- todo: gobble_integer -- might go away
--- todo: gobble_dimension -- might go away
-
-local set_macro = token.set_macro
-local set_char = token.set_char
-local set_lua = token.set_lua
-
-local create_token = token.create
-local new_token = token.new
-local is_defined = token.is_defined
-local is_token = token.is_token
-
-tokens.new = new_token
-tokens.create = create_token
-tokens.istoken = is_token
-tokens.isdefined = is_defined
-tokens.defined = is_defined
-
-tokens.getinteger = token.get_integer
-tokens.setinteger = token.set_integer
+local scantoks = token.scantoks
+local scanstring = token.scanstring
+local scanargument = token.scanargument
+local scandelimited = token.scandelimited
+local scantokenlist = token.scantokenlist
+local scaninteger = token.scaninteger
+local scancardinal = token.scancardinal
+local scancode = token.scancode
+local scantokencode = token.scantokencode
+local scandimen = token.scandimen
+local scanglue = token.scanglue
+local scanskip = token.scanskip
+local scankeyword = token.scankeyword
+local scankeywordcs = token.scankeywordcs
+local scantoken = token.scantoken
+local scanbox = token.scanbox
+local scanword = token.scanword
+local scanletters = token.scanletters
+local scankey = token.scankey
+local scanvalue = token.scanvalue
+local scanchar = token.scanchar
+local scancsname = token.scancsname
+local scannextchar = token.scannextchar
+local scanreal = token.scanreal
+local scanfloat = token.scanfloat
+local scanluanumber = token.scanluanumber
+local scanluainteger = token.scanluainteger
+local scanluacardinal = token.scanluacardinal
+local scanintegerargument = token.scanintegerargument
+local scandimenargument = token.scandimenargument
+
+local scannumber = token.scannumber
+local scanboolean = token.scanboolean
+
+local setmacro = token.setmacro
+local setchar = token.setchar
+local setlua = token.setlua
+
+local createtoken = token.create
+local newtoken = token.new
+local isdefined = token.isdefined
+local istoken = token.istoken
+
+tokens.new = newtoken
+tokens.create = createtoken
+tokens.istoken = istoken
+tokens.isdefined = isdefined
+tokens.defined = isdefined
+
+tokens.gobble = token.gobble
+
+tokens.getinteger = token.getinteger
+tokens.setinteger = token.setinteger
local bits = {
escape = 0x00000001, -- 2^00
@@ -110,10 +111,10 @@ tokens.bits = bits
-- words are space or \relax terminated and the trailing space is gobbled; a word
-- can contain any non-space letter/other (see archive for implementation in lua)
-if not scan_number then
+if not scannumber then -- we do have float and real .. this is actually scanluanumber
- scan_number = function(base)
- local s = scan_word()
+ scannumber = function(base)
+ local s = scanword()
if not s then
return nil
elseif base then
@@ -125,100 +126,89 @@ if not scan_number then
end
-local function scan_boolean()
- local kw = scan_word()
- if kw == "true" then
- return true
- elseif kw == "false" then
- return false
- else
- return nil
- end
-end
-
-local function scan_verbatim()
- return scan_argument(false)
-end
-
-if not scan_box then
+if not scanboolean then
- local scan_list = token.scan_list
- local put_next = token.put_next
-
- scan_box = function(s)
- if s == "hbox" or s == "vbox" or s == "vtop" then
- put_next(create_token(s))
+ scanboolean = function()
+ local kw = scanword()
+ if kw == "true" then
+ return true
+ elseif kw == "false" then
+ return false
+ else
+ return nil
end
- return scan_list()
end
- token.scan_box = scan_box
+end
+local function scanverbatim() -- check
+ return scanargument(false)
end
tokens.scanners = { -- these expand
- token = scan_token,
- toks = scan_toks,
- tokens = scan_toks,
- box = scan_box,
- hbox = function() return scan_box("hbox") end,
- vbox = function() return scan_box("vbox") end,
- vtop = function() return scan_box("vtop") end,
- dimen = scan_dimen,
- dimension = scan_dimen,
- glue = scan_glue,
- gluevalues = function() return scan_glue(false,false,true) end,
- gluespec = scan_skip,
- integer = scan_integer,
- cardinal = scan_cardinal,
- real = scan_real,
- float = scan_float,
- luanumber = scan_luanumber,
- luainteger = scan_luainteger,
- luacardinal = scan_luacardinal,
- count = scan_integer,
- string = scan_string,
- argument = scan_argument,
- delimited = scan_delimited,
- tokenlist = scan_tokenlist,
- verbatim = scan_verbatim, -- detokenize
- code = scan_code,
- tokencode = scan_token_code,
- word = scan_word,
- letters = scan_letters,
- key = scan_key,
- value = scan_value,
- char = scan_char,
- number = scan_number,
- boolean = scan_boolean,
- keyword = scan_keyword,
- keywordcs = scan_keyword_cs,
- csname = scan_csname,
-
- next = token.scan_next,
- nextexpanded = token.scan_next_expanded,
-
- peek = token.peek_next,
- peekexpanded = token.peek_next_expanded,
- peekchar = token.peek_next_char,
-
- skip = token.skip_next,
- skipexpanded = token.skip_next_expanded,
-
- cmdchr = token.scan_cmdchr,
- cmdchrexpanded = token.scan_cmdchr_expanded,
-
- ischar = token.is_next_char,
-
- integerargument = scan_integer_argument,
- dimenargument = scan_dimen_argument,
+ token = scantoken,
+ toks = scantoks,
+ tokens = scantoks,
+ box = scanbox,
+ hbox = function() return scanbox("hbox") end,
+ vbox = function() return scanbox("vbox") end,
+ vtop = function() return scanbox("vtop") end,
+ dimen = scandimen,
+ dimension = scandimen,
+ glue = scanglue,
+ gluevalues = function() return scanglue(false,false,true) end,
+ gluespec = scanskip,
+ integer = scaninteger,
+ cardinal = scancardinal,
+ real = scanreal,
+ float = scanfloat,
+ luanumber = scanluanumber,
+ luainteger = scanluainteger,
+ luacardinal = scanluacardinal,
+ count = scaninteger,
+ string = scanstring,
+ argument = scanargument,
+ delimited = scandelimited,
+ tokenlist = scantokenlist,
+ verbatim = scanverbatim, -- detokenize
+ code = scancode,
+ tokencode = scantokencode,
+ word = scanword,
+ letters = scanletters,
+ key = scankey,
+ value = scanvalue,
+ char = scanchar,
+ number = scannumber,
+ boolean = scanboolean,
+ keyword = scankeyword,
+ keywordcs = scankeywordcs,
+ csname = scancsname,
+ nextchar = scannextchar,
+
+ next = token.scannext,
+ nextexpanded = token.scannextexpanded,
+
+ peek = token.peeknext,
+ peekexpanded = token.peeknextexpanded,
+ peekchar = token.peeknextchar,
+
+ skip = token.skipnext,
+ skipexpanded = token.skipnextexpanded,
+
+ cmdchr = token.scancmdchr,
+ cmdchrexpanded = token.scancmdchrexpanded,
+
+ ischar = token.isnextchar,
+
+ integerargument = scanintegerargument,
+ dimenargument = scandimenargument,
}
tokens.getters = { -- these don't expand
- meaning = token.get_meaning,
- macro = token.get_macro,
- token = token.scan_next or token.get_next, -- not here, use scanners.next or token
- cstoken = token.get_cstoken,
+ meaning = token.getmeaning,
+ macro = token.getmacro,
+ token = token.scannext,
+ cstoken = token.getcstoken,
count = tex.getcount,
dimen = tex.getdimen,
skip = tex.getglue,
@@ -229,9 +219,9 @@ tokens.getters = { -- these don't expand
}
tokens.setters = {
- macro = set_macro,
- char = set_char,
- lua = set_lua,
+ macro = setmacro,
+ char = setchar,
+ lua = setlua,
count = tex.setcount,
dimen = tex.setdimen,
skip = tex.setglue,
@@ -241,50 +231,29 @@ tokens.setters = {
box = tex.setbox,
}
-token.accessors = {
- command = token.get_command,
- cmd = token.get_command,
- cmdname = token.get_cmdname,
- name = token.get_cmdname,
- csname = token.get_csname,
- index = token.get_index,
- active = token.get_active,
- frozen = token.get_frozen,
- protected = token.get_protected,
- expandable = token.get_protected,
- user = token.get_user,
- cmdchrcs = token.get_cmdchrcs,
- active = token.get_active,
- range = token.get_range,
+tokens.accessors = {
+ command = token.getcommand,
+ cmd = token.getcommand,
+ cmdname = token.getcmdname,
+ name = token.getcmdname,
+ csname = token.getcsname,
+ index = token.getindex,
+ active = token.getactive,
+ frozen = token.getfrozen,
+ protected = token.getprotected,
+ expandable = token.getprotected,
+ user = token.getuser,
+ cmdchrcs = token.getcmdchrcs,
+ active = token.getactive,
+ range = token.getrange,
}
--- static int run_scan_token(lua_State * L)
--- {
--- saved_tex_scanner texstate;
--- save_tex_scanner(texstate);
--- get_x_token();
--- make_new_token(L, cur_cmd, cur_chr, cur_cs);
--- unsave_tex_scanner(texstate);
--- return 1;
--- }
---
--- static int run_get_future(lua_State * L)
--- {
--- /* saved_tex_scanner texstate; */
--- /* save_tex_scanner(texstate); */
--- get_token();
--- make_new_token(L, cur_cmd, cur_chr, cur_cs);
--- back_input();
--- /* unsave_tex_scanner(texstate); */
--- return 1;
--- }
-
-if setinspector then
+if setinspector then -- can best be true
local simple = { letter = "letter", other_char = "other" }
local astable = function(t)
- if t and is_token(t) then
+ if t and istoken(t) then
local cmdname = t.cmdname
local simple = simple[cmdname]
if simple then
@@ -323,10 +292,98 @@ if setinspector then
end
tokens.cache = table.setmetatableindex(function(t,k)
- if not is_defined(k) then
- set_macro(k,"","global")
+ if not isdefined(k) then
+ setmacro(k,"","global") -- So we default to nothing! Maybe some message as option?
end
- local v = create_token(k)
+ local v = createtoken(k)
t[k] = v
return v
end)
+
+-- This will go, although ... we use some old names in styles. Check what we
+-- actually use.
+
+token.is_token = token.istoken
+token.is_defined = token.isdefined
+token.scan_next = token.scannext
+token.scan_next_expanded = token.scannextexpanded
+token.scan_next_char = token.scannextchar
+token.skip_next = token.skipnext
+token.skip_next_expanded = token.skipnextexpanded
+token.peek_next = token.peeknext
+token.peek_next_expanded = token.peeknextexpanded
+token.peek_next_char = token.peeknextchar
+token.scan_cmdchr = token.scancmdchr
+token.scan_cmdchr_expanded = token.scancmdchrexpanded
+token.scan_keyword = token.scankeyword
+token.scan_keyword_cs = token.scankeywordcs
+token.scan_integer = token.scaninteger
+token.scan_integer_argument = token.scanintegerargument
+token.scan_dimen_argument = token.scandimenargument
+token.scan_cardinal = token.scancardinal
+token.scan_float = token.scanfloat
+token.scan_real = token.scanreal
+token.scan_luanumber = token.scanluanumber
+token.scan_luainteger = token.scanluainteger
+token.scan_luacardinal = token.scanluacardinal
+token.scan_scale = token.scanscale
+token.scan_dimen = token.scandimen
+token.scan_skip = token.scanskip
+token.scan_glue = token.scanglue
+token.scan_toks = token.scantoks
+token.scan_tokenlist = token.scantokenlist
+token.scan_code = token.scancode
+token.scan_token_code = token.scantokencode
+token.scan_string = token.scanstring
+token.scan_argument = token.scanargument
+token.scan_delimited = token.scandelimited
+token.scan_word = token.scanword
+token.scan_letters = token.scanletters
+token.scan_key = token.scankey
+token.scan_value = token.scanvalue
+token.scan_char = token.scanchar
+token.scan_csname = token.scancsname
+token.scan_token = token.scantoken
+token.scan_box = token.scanbox
+token.is_next_char = token.isnextchar
+token.put_next = token.putnext
+token.put_back = token.putback
+token.get_command = token.getcommand
+token.get_index = token.getindex
+token.get_range = token.getrange
+token.get_cmdname = token.getcmdname
+token.get_csname = token.getcsname
+token.get_id = token.getid
+token.get_tok = token.gettok
+token.get_active = token.getactive
+token.get_expandable = token.getexpandable
+token.get_protected = token.getprotected
+token.get_frozen = token.getfrozen
+token.get_tolerant = token.gettolerant
+token.get_noaligned = token.getnoaligned
+token.get_primitive = token.getprimitive
+token.get_permanent = token.getpermanent
+token.get_immutable = token.getimmutable
+token.get_instance = token.getinstance
+token.get_flags = token.getflags
+token.get_parameters = token.getparameters
+token.get_macro = token.getmacro
+token.get_meaning = token.getmeaning
+token.get_cmdchrcs = token.getcmdchrcs
+token.get_cstoken = token.getcstoken
+token.get_fields = token.getfields
+token.set_macro = token.setmacro
+token.undefine_macro = token.undefinemacro
+token.expand_macro = token.expandmacro
+token.set_char = token.setchar
+token.set_lua = token.setlua
+token.set_integer = token.setinteger
+token.get_integer = token.getinteger
+token.set_dimension = token.setdimension
+token.get_dimension = token.getdimension
+token.gobble_integer = token.gobbleinteger
+token.gobble_dimen = token.gobbledimen
+token.future_expand = token.futureexpand
+token.push_macro = token.pushmacro
+token.pop_macro = token.popmacro
+token.save_lua = token.savelua
diff --git a/Master/texmf-dist/tex/context/base/mkxl/toks-scn.lmt b/Master/texmf-dist/tex/context/base/mkxl/toks-scn.lmt
index 73eedbba789..5af351939f1 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/toks-scn.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/toks-scn.lmt
@@ -60,7 +60,7 @@ local close = tokenbits.close
local function scanopen()
while true do
local c = scancode(open)
- if c == 123 then
+ if c == 123 then -- {
return true
-- elseif c ~= 32 then
elseif not c then
@@ -72,7 +72,7 @@ end
local function scanclose()
while true do
local c = scancode(close)
- if c == 125 then
+ if c == 125 then -- }
return true
-- elseif c ~= 32 then
elseif not c then
@@ -202,10 +202,15 @@ local function scanargumentasis()
return scanargument(false)
end
-scanners.bracketed = scanbracketed
-scanners.optional = scanoptional
-scanners.bracketedasis = scanbracketedasis
-scanners.argumentasis = scanargumentasis
+local function scancsnameunchecked()
+ return scancsname(true)
+end
+
+scanners.bracketed = scanbracketed
+scanners.optional = scanoptional
+scanners.bracketedasis = scanbracketedasis
+scanners.argumentasis = scanargumentasis
+scanners.csnameunchecked = scancsnameunchecked
local shortcuts = {
tokens = tokens,
@@ -243,6 +248,7 @@ local shortcuts = {
scanclose = scanclose,
scanlist = scanlist,
scancsname = scancsname,
+ scancsnameunchecked = scancsnameunchecked,
scandelimited = scandelimited, -- not directly useable
scanbracketed = scanbracketed,
scanoptional = scanoptional,
@@ -287,43 +293,43 @@ tokens.converters = {
-- the gain is only some 10 percent but if we don't have keywords with numbers it might
-- make sense in the end, some day.
-local f_if = formatters[ " if scankeywordcs('%s') then data['%s'] = scan%s()"]
-local f_elseif = formatters[" elseif scankeywordcs('%s') then data['%s'] = scan%s()"]
+local f_if = formatters[ " if scankeywordcs('%s') then data['%s'] = scan%s()"]
+local f_elseif = formatters[" elseif scankeywordcs('%s') then data['%s'] = scan%s()"]
------ f_if_x = formatters[ " if not data['%s'] and scankeywordcs('%s') then data['%s'] = scan%s()"]
------ f_elseif_x = formatters[" elseif not data['%s'] and scankeywordcs('%s') then data['%s'] = scan%s()"]
+----- f_if_x = formatters[ " if not data['%s'] and scankeywordcs('%s') then data['%s'] = scan%s()"]
+----- f_elseif_x = formatters[" elseif not data['%s'] and scankeywordcs('%s') then data['%s'] = scan%s()"]
------ f_if = formatters[" local key = scanletters() if key == '' then break elseif key == '%s' then data['%s'] = scan%s()"]
------ f_elseif = formatters[" elseif key == '%s' then data['%s'] = scan%s()"]
+----- f_if = formatters[" local key = scanletters() if key == '' then break elseif key == '%s' then data['%s'] = scan%s()"]
+----- f_elseif = formatters[" elseif key == '%s' then data['%s'] = scan%s()"]
-local f_local = formatters["local scan%s = scanners.%s"]
-local f_scan = formatters["scan%s()"]
-local f_shortcut = formatters["local %s = scanners.converters.%s"]
+local f_local = formatters["local scan%s = scanners.%s"]
+local f_scan = formatters["scan%s()"]
+local f_shortcut = formatters["local %s = scanners.converters.%s"]
-local f_if_c = formatters[ " if scankeywordcs('%s') then data['%s'] = %s(scan%s())"]
-local f_elseif_c = formatters[" elseif scankeywordcs('%s') then data['%s'] = %s(scan%s())"]
-local f_scan_c = formatters["%s(scan%s())"]
+local f_if_c = formatters[ " if scankeywordcs('%s') then data['%s'] = %s(scan%s())"]
+local f_elseif_c = formatters[" elseif scankeywordcs('%s') then data['%s'] = %s(scan%s())"]
+local f_scan_c = formatters["%s(scan%s())"]
-- see above
------ f_if_c = formatters[" local key = scanletters() if key == '' then break elseif key == '%s' then data['%s'] = %s(scan%s())"]
------ f_elseif_c = formatters[" elseif k == '%s' then data['%s'] = %s(scan%s())"]
+----- f_if_c = formatters[" local key = scanletters() if key == '' then break elseif key == '%s' then data['%s'] = %s(scan%s())"]
+----- f_elseif_c = formatters[" elseif k == '%s' then data['%s'] = %s(scan%s())"]
-local f_any = formatters[" else local key = scanword(true) if key then data[key] = scan%s() else break end end"]
-local f_any_c = formatters[" else local key = scanword(true) if key then data[key] = %s(scan%s()) else break end end"]
-local s_done = " else break end"
+local f_any = formatters[" else local key = scanword(true) if key then data[key] = scan%s() else break end end"]
+local f_any_c = formatters[" else local key = scanword(true) if key then data[key] = %s(scan%s()) else break end end"]
+local s_done <const> = " else break end"
-local f_any_all = formatters[" local key = scanword(true) if key then data[key] = scan%s() else break end"]
-local f_any_all_c= formatters[" local key = scanword(true) if key then data[key] = %s(scan%s()) else break end"]
+local f_any_all = formatters[" local key = scanword(true) if key then data[key] = scan%s() else break end"]
+local f_any_all_c = formatters[" local key = scanword(true) if key then data[key] = %s(scan%s()) else break end"]
-local f_table = formatters["%\nt\nreturn function()\n local data = { }\n%s\n return %s\nend\n"]
-local f_sequence = formatters["%\nt\n%\nt\n%\nt\nreturn function()\n return %s\nend\n"]
-local f_singular = formatters["%\nt\n%\nt\n\nreturn function(%s)\n return %s\nend\n"]
-local f_simple = formatters["%\nt\nreturn function()\n return %s\nend\n"]
-local f_string = formatters["%q"]
-local f_action_f = formatters["action%s(%s)"]
-local f_action_s = formatters["local action%s = tokens._action[%s]"]
-local f_nested = formatters["local function scan%s()\n local data = { }\n%s\n return data\nend\n"]
+local f_table = formatters["%\nt\nreturn function()\n local data = { }\n%s\n return %s\nend\n"]
+local f_sequence = formatters["%\nt\n%\nt\n%\nt\nreturn function()\n return %s\nend\n"]
+local f_singular = formatters["%\nt\n%\nt\n\nreturn function(%s)\n return %s\nend\n"]
+local f_simple = formatters["%\nt\nreturn function()\n return %s\nend\n"]
+local f_string = formatters["%q"]
+local f_action_f = formatters["action%s(%s)"]
+local f_action_s = formatters["local action%s = tokens._action[%s]"]
+local f_nested = formatters["local function scan%s()\n local data = { }\n%s\n return data\nend\n"]
local f_check = formatters[ [[
local wrapped = scanopen()
diff --git a/Master/texmf-dist/tex/context/base/mkxl/trac-ctx.mkxl b/Master/texmf-dist/tex/context/base/mkxl/trac-ctx.mkxl
index 656a7a9aa9b..5d760598b7f 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/trac-ctx.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/trac-ctx.mkxl
@@ -27,6 +27,20 @@
\clf_initializetexexperiments
\to \everyjob
+% \pushoverloadmode
+%
+% \let\syst_beginsimplegroup_yes\beginsimplegroup
+% \let\syst_beginsimplegroup_nop\bgroup
+%
+% \let\beginsimplegroup\syst_beginsimplegroup_nop
+%
+% \installtexexperiment
+% {simplegroups}
+% {\enforced\let\beginsimplegroup\syst_beginsimplegroup_yes}
+% {\enforced\let\beginsimplegroup\syst_beginsimplegroup_nop}
+%
+% \popoverloadmode
+
\protect \endinput
% this is one option:
diff --git a/Master/texmf-dist/tex/context/base/mkxl/trac-deb.lmt b/Master/texmf-dist/tex/context/base/mkxl/trac-deb.lmt
index 8ff12410528..caa5464f8d4 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/trac-deb.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/trac-deb.lmt
@@ -24,7 +24,9 @@ local implement = interfaces.implement
local ioflush = io.flush
local ioread = io.read
-local writenl = texio.write_nl
+local ossleep = os.sleep
+local osexit = os.exit
+local writenl = texio.writenl
local write = texio.write
local runlocal = tex.runlocal
@@ -135,7 +137,7 @@ local nop = function() end
local resetmessages = status.resetmessages or nop
local function processerror(offset,errortype)
- local readstate = status.readstate
+ local readstate = status.getreadstate()
local filename = readstate.filename
local linenumber = readstate.linenumber
local skiplinenumber = readstate.skiplinenumber
@@ -163,6 +165,7 @@ local function processerror(offset,errortype)
if job and type(job.disablesave) == "function" then
job.disablesave()
end
+ lua.setexitcode(1)
end
directives.register("system.quitonerror",function(v)
@@ -248,9 +251,11 @@ function tracers.printerror(specification)
report_str(tracers.showlines(filename,linenumber,offset,tonumber(luaerrorline)))
report_nl()
end
- local errname = file.addsuffix(tex.jobname .. "-error","log")
if quitonerror then
- table.save(errname,specification)
+ local name = tex.jobname or ""
+ if name ~= "" then
+ table.save(name .. "-error.log",specification)
+ end
local help = specification.lasttexhelp
if help and #help > 0 then
report_nl()
@@ -264,7 +269,7 @@ function tracers.printerror(specification)
end
end
-luatex.wrapup(function() os.remove(file.addsuffix(tex.jobname .. "-error","log")) end)
+luatex.wrapup(function() os.remove(tex.jobname .. "-error.log") end)
local function processwarning(offset)
local warningstate = status.warningstate
@@ -315,7 +320,7 @@ local function reportback(lmxname,default,variables)
end
local function showerror(lmxname)
- local readstate = status.readstate()
+ local readstate = status.getreadstate()
local filename = readstate.filename
local linenumber = tonumber(readstate.linenumber) or 0
local errorcontext = ""
@@ -327,7 +332,7 @@ local function showerror(lmxname)
end
local variables = {
['title'] = 'ConTeXt Error Information',
- ['errormessage'] = status.errorstatus.error or "?",
+ ['errormessage'] = status.geterrorstate().error or "?",
['linenumber'] = linenumber,
['color-background-one'] = lmx.get('color-background-yellow'),
['color-background-two'] = lmx.get('color-background-purple'),
@@ -345,8 +350,8 @@ function lmx.overloaderror(v)
usescitelexer = true
end
callback.register('show_error_message', function() showerror() end)
- callback.register('intercept_lua_error', function() showerror() end)
- callback.register('intercept_tex_error', function() showerror() end)
+-- callback.register('intercept_lua_error', function() showerror() end)
+-- callback.register('intercept_tex_error', function() showerror() end)
end
directives.register("system.showerror", lmx.overloaderror)
@@ -415,3 +420,28 @@ directives.register("system.profile",function(n)
logs.report("system","profiler started")
debugger.enable()
end)
+
+local report = logs.reporter("[[diagnostic]]")
+
+implement {
+ name = "diagnostic",
+ public = true,
+ -- protected = false, -- expandable
+ arguments = { "optional", "string" },
+ actions = function(t,s)
+ if t == "quit" then
+ report(s)
+ osexit()
+ else
+ t = tonumber(t)
+ if t then
+ report("%s (sleep: %.3N)",s,t)
+ ioflush()
+ ossleep(t)
+ else
+ report(s)
+ ioflush()
+ end
+ end
+ end
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/trac-inf.lmt b/Master/texmf-dist/tex/context/base/mkxl/trac-inf.lmt
index ebcd21e07af..feef3714fe7 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/trac-inf.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/trac-inf.lmt
@@ -210,8 +210,8 @@ function statistics.memused() -- no math.round yet -)
local luastate = status.getluastate()
return format("%s MB, ctx: %s MB, max: %s MB",
round(collectgarbage("count")//1024),
- round(luastate.state_bytes//1048576),
- luastate.state_bytes_max and round(luastate.state_bytes_max//1048576) or "unknown"
+ round(luastate.statebytes//1048576),
+ luastate.statebytesmax and round(luastate.statebytesmax//1048576) or "unknown"
)
end
@@ -264,7 +264,52 @@ status.iocodes = setmetatableindex(tex.getiovalues(), function() return "unknown
local report = logs.reporter("system")
+local list = {
+ "string", "pool", "hash", "lookup", "node", "token",
+ "buffer", "input", "file", "nest", "parameter", "save", "font", "language", "mark", "insert",
+ -- "extra", "sparse",
+}
+
+local function show(data,fields)
+ local line = rep("-",3+11*#list)
+ local columns = rep("%11s",#list)
+ report("")
+ report("%w%s",2,line)
+ report("%w"..columns,5,unpack(list))
+ report("%w%s",2,line)
+ for i=1,#fields do
+ local f = fields[i]
+ if f then
+ local t = { }
+ for i=1,#list do
+ local n = data[list[i].."state"][f]
+ t[i] = n < 0 and formatters["%w"](11) or formatters["%11i"](n)
+ end
+ report(" %3s"..columns,f,unpack(t))
+ else
+ report("")
+ end
+ end
+ report("%w%s",2,line)
+ report("")
+end
+
+function statistics.showmemory(when)
+ report("")
+ report("memory configuration")
+ show(status.list(), { "max", "min", "set", "stp" })
+end
+
+local registered = false
+local enabled = false
+local finished = false
+
function statistics.showusage(when)
+ if finished and when == "finish" then
+ return
+ else
+ finished = true
+ end
local s = status.list()
local c = status.getcallbackstate() -- status.callbacks
local m = mplib.getcallbackstate()
@@ -287,40 +332,7 @@ function statistics.showusage(when)
else
report("status after shipping out page %s",tex.getcount("realpageno"))
end
- report("")
- local list = {
- "stringstate", "poolstate", "hashstate", "lookupstate",
- "nodestate", "extrastate", "tokenstate",
- "bufferstate", "inputstate", "filestate",
- "neststate", "parameterstate", "savestate",
- "fontstate", "languagestate", "markstate", "sparsestate",
- }
- local fields = { "max", "min", "set", "stp", false, "mem", "all", false, "ini", "ptr", "top" }
- local line = rep("-",190)
- do
- local t = { }
- for i=1,#list do
- t[i] = gsub(list[i],"state","")
- end
- report("%w%s",2,line)
- report("%w%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s",5,unpack(t))
- report("%w%s",2,line)
- end
- for i=1,#fields do
- local f = fields[i]
- if f then
- local t = { }
- for i=1,#list do
- local n = s[list[i]][f]
- t[i] = n < 0 and formatters["%w"](11) or formatters["%11i"](n)
- end
- report(" %3s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s",f,unpack(t))
- else
- report("")
- end
- end
- report("%w%s",2,line)
- report("")
+ show(s, { "max", "min", "set", "stp", false, "mem", "all", false, "ini", "ptr", "top" })
report(" current input type : %s", iocode)
if iocode == "file" then
report(" current file name : %s", rstatus.filename or "")
@@ -332,9 +344,9 @@ function statistics.showusage(when)
report(" expansion depth : min: %s, max: %s, set: %s, top: %s", estatus.min, estatus.max, estatus.set, estatus.top)
report("")
report(" luabytecode registers : %s", lstatus.bytecodes)
- report(" luabytecode bytes : %s (%s MB)", lstatus.bytecode_bytes, lstatus.bytecode_bytes // 1048576)
- report(" luastate bytes now : %s (%s MB)", lstatus.state_bytes, lstatus.state_bytes // 1048576)
- report(" luastate bytes max : %s (%s MB)", lstatus.state_bytes_max, lstatus.state_bytes_max // 1048576)
+ report(" luabytecode bytes : %s (%s MB)", lstatus.bytecodebytes, lstatus.bytecodebytes // 1048576)
+ report(" luastate bytes now : %s (%s MB)", lstatus.statebytes, lstatus.statebytes // 1048576)
+ report(" luastate bytes max : %s (%s MB)", lstatus.statebytesmax, lstatus.statebytesmax // 1048576)
report("")
report(" file callbacks : %s", c.file)
report(" saved callbacks : %s", c.saved)
@@ -355,55 +367,13 @@ function statistics.showusage(when)
report(" mp total callbacks : %s", m.count)
report(" backend callbacks : %s", b.count)
report("")
- report(" page numbers : realpage %s, userpage %s, subpage %s",pstatus.page.real,pstatus.page.user,pstatus.page.sub)
- report(" page timing : total %0.03f, page %0.03f, average %0.03f",pstatus.time.elapsed,pstatus.time.page,pstatus.time.average)
- report("")
-end
-
-function statistics.showmemory(when)
- local s = status.list()
- --
- report("")
- report("memory configuration")
- report("")
- local list = {
- "stringstate", "poolstate", "hashstate", "lookupstate",
- "nodestate", "tokenstate",
- "bufferstate", "inputstate", "filestate",
- "neststate", "parameterstate", "savestate",
- "fontstate", "languagestate", "markstate",
- }
- local fields = { "max", "min", "set", "stp" }
- local line = rep("-",168)
- do
- local t = { }
- for i=1,#list do
- t[i] = gsub(list[i],"state","")
- end
- report("%w%s",2,line)
- report("%w%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s",5,unpack(t))
- report("%w%s",2,line)
- end
- for i=1,#fields do
- local f = fields[i]
- if f then
- local t = { }
- for i=1,#list do
- local n = s[list[i]][f]
- t[i] = n < 0 and formatters["%w"](11) or formatters["%11i"](n)
- end
- report(" %3s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s%11s",f,unpack(t))
- else
- report("")
- end
+ if pstatus then
+ report(" page numbers : realpage %s, userpage %s, subpage %s",pstatus.page.real,pstatus.page.user,pstatus.page.sub)
+ report(" page timing : total %0.03f, page %0.03f, average %0.03f",pstatus.time.elapsed,pstatus.time.page,pstatus.time.average)
+ report("")
end
- report("%w%s",2,line)
- report("")
end
-local registered = false
-local enabled = false
-
trackers.register("system.usage", function(v)
if v and not registered then
logs.private.enablepagetiming()
@@ -423,3 +393,13 @@ trackers.register("system.usage", function(v)
end
enabled = v
end)
+
+-- can't be done here:
+--
+-- luatex.registerstopactions(function()
+-- if not enabled then
+-- logs.push("logfile")
+-- statistics.showusage("finish")
+-- logs.pop()
+-- end
+-- end)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/trac-jus.lmt b/Master/texmf-dist/tex/context/base/mkxl/trac-jus.lmt
new file mode 100644
index 00000000000..e9c8fac2844
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/trac-jus.lmt
@@ -0,0 +1,122 @@
+if not modules then modules = { } end modules ['trac-jus'] = {
+ version = 1.001,
+ comment = "companion to trac-jus.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local checkers = typesetters.checkers or { }
+typesetters.checkers = checkers
+
+----- report_justification = logs.reporter("visualize","justification")
+
+local a_alignstate = attributes.private("alignstate")
+local a_justification = attributes.private("justification")
+
+local nuts = nodes.nuts
+
+local getfield = nuts.getfield
+local getlist = nuts.getlist
+local getattr = nuts.getattr
+local setattr = nuts.setattr
+local setlist = nuts.setlist
+local setlink = nuts.setlink
+local getwidth = nuts.getwidth
+local findtail = nuts.tail
+
+local nexthlist = nuts.traversers.hlist
+
+local getdimensions = nuts.dimensions
+local copylist = nuts.copylist
+
+local tracedrule = nodes.tracers.pool.nuts.rule
+
+local nodepool = nuts.pool
+
+local new_hlist = nodepool.hlist
+local new_kern = nodepool.kern
+
+local hlist_code = nodes.nodecodes.hlist
+
+local texsetattribute = tex.setattribute
+local unsetvalue = attributes.unsetvalue
+
+local enableaction = nodes.tasks.enableaction
+
+local min_threshold = 0
+local max_threshold = 0
+
+local function set(n)
+ enableaction("mvlbuilders", "typesetters.checkers.handler")
+ enableaction("vboxbuilders","typesetters.checkers.handler")
+ texsetattribute(a_justification,n or 1)
+ function typesetters.checkers.set(n)
+ texsetattribute(a_justification,n or 1)
+ end
+end
+
+local function reset()
+ texsetattribute(a_justification,unsetvalue)
+end
+
+checkers.set = set
+checkers.reset = reset
+
+interfaces.implement {
+ name = "showjustification",
+ actions = set
+}
+
+trackers.register("visualizers.justification", function(v)
+ if v then
+ set(1)
+ else
+ reset()
+ end
+end)
+
+function checkers.handler(head)
+ for current in nexthlist, head do
+ if getattr(current,a_justification) == 1 then
+ setattr(current,a_justification,0) -- kind of reset
+ local width = getwidth(current)
+ if width > 0 then
+ local list = getlist(current)
+ if list then
+ local naturalwidth, naturalheight, naturaldepth = getdimensions(list)
+ local delta = naturalwidth - width
+ if naturalwidth == 0 or delta == 0 then
+ -- special box
+ elseif delta >= max_threshold then
+ local rule = new_hlist(tracedrule(delta,naturalheight,naturaldepth,getfield(list,"glueset") == 1 and "trace:dr" or "trace:db"))
+ setlink(findtail(list),rule)
+ setlist(current,list)
+ elseif delta <= min_threshold then
+ local alignstate = getattr(list,a_alignstate)
+ if alignstate == 1 then
+ local rule = new_hlist(tracedrule(-delta,naturalheight,naturaldepth,"trace:dc"))
+ setlink(rule,list)
+ setlist(current,rule)
+ elseif alignstate == 2 then
+ local lrule = new_hlist(tracedrule(-delta/2,naturalheight,naturaldepth,"trace:dy"))
+ local rrule = copylist(lrule)
+ setlink(lrule,list)
+ setlink(findtail(list),new_kern(delta/2),rrule)
+ setlist(current,lrule)
+ elseif alignstate == 3 then
+ local rule = new_hlist(tracedrule(-delta,naturalheight,naturaldepth,"trace:dm"))
+ setlink(findtail(list),new_kern(delta),rule)
+ setlist(current,list)
+ else
+ local rule = new_hlist(tracedrule(-delta,naturalheight,naturaldepth,"trace:dg"))
+ setlink(findtail(list),new_kern(delta),rule)
+ setlist(current,list)
+ end
+ end
+ end
+ end
+ end
+ end
+ return head
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/trac-jus.mkxl b/Master/texmf-dist/tex/context/base/mkxl/trac-jus.mkxl
index 3375e5ee76f..387478cb123 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/trac-jus.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/trac-jus.mkxl
@@ -13,7 +13,7 @@
\writestatus{loading}{ConTeXt Tracing Macros / Justification}
-\registerctxluafile{trac-jus}{}
+\registerctxluafile{trac-jus}{autosuffix}
\unprotect
diff --git a/Master/texmf-dist/tex/context/base/mkxl/trac-set.lmt b/Master/texmf-dist/tex/context/base/mkxl/trac-set.lmt
new file mode 100644
index 00000000000..5c21f65250b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/trac-set.lmt
@@ -0,0 +1,453 @@
+if not modules then modules = { } end modules ['trac-set'] = { -- might become util-set.lua
+ version = 1.001,
+ comment = "companion to luat-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- maybe this should be util-set.lua
+
+local type, next, tostring, tonumber = type, next, tostring, tonumber
+local print = print
+local concat, sortedhash = table.concat, table.sortedhash
+local formatters, find, lower, gsub, topattern = string.formatters, string.find, string.lower, string.gsub, string.topattern
+local is_boolean = string.is_boolean
+local settings_to_hash = utilities.parsers.settings_to_hash
+local allocate = utilities.storage.allocate
+
+utilities = utilities or { }
+local utilities = utilities
+
+local setters = utilities.setters or { }
+utilities.setters = setters
+
+local data = { }
+
+-- We can initialize from the cnf file. This is sort of tricky as
+-- later defined setters also need to be initialized then. If set
+-- this way, we need to ensure that they are not reset later on.
+--
+-- The sorting is needed to get a predictable setters in case of *.
+
+local trace_initialize = false -- only for testing during development
+local frozen = true -- this needs checking
+
+local function initialize_setter(filename,name,values) -- filename only for diagnostics
+ local setter = data[name]
+ if setter then
+ -- trace_initialize = true
+ local data = setter.data
+ if data then
+ for key, newvalue in sortedhash(values) do
+ local newvalue = is_boolean(newvalue,newvalue,true) -- strict
+ local functions = data[key]
+ if functions then
+ local oldvalue = functions.value
+ if functions.frozen then
+ if trace_initialize then
+ setter.report("%s: %a is %s to %a",filename,key,"frozen",oldvalue)
+ end
+ elseif #functions > 0 and not oldvalue then
+-- elseif #functions > 0 and oldvalue == nil then
+ if trace_initialize then
+ setter.report("%s: %a is %s to %a",filename,key,"set",newvalue)
+ end
+ for i=1,#functions do
+ functions[i](newvalue)
+ end
+ functions.value = newvalue
+ functions.frozen = functions.frozen or frozen
+ else
+ if trace_initialize then
+ setter.report("%s: %a is %s as %a",filename,key,"kept",oldvalue)
+ end
+ end
+ else
+ -- we do a simple preregistration i.e. not in the
+ -- list as it might be an obsolete entry
+ functions = { default = newvalue, frozen = frozen }
+ data[key] = functions
+ if trace_initialize then
+ setter.report("%s: %a is %s to %a",filename,key,"defaulted",newvalue)
+ end
+ end
+ end
+ return true
+ end
+ end
+end
+
+-- user interface code
+
+local function set(t,what,newvalue)
+ local data = t.data -- somehow this can be nil
+ if data and not data.frozen then
+ local done = t.done
+ if type(what) == "string" then
+ what = settings_to_hash(what) -- inefficient but ok
+ end
+ if type(what) ~= "table" then
+ return
+ end
+ if not done then -- catch ... why not set?
+ done = { }
+ t.done = done
+ end
+ for w, value in sortedhash(what) do
+ if value == "" then
+ value = newvalue
+ elseif not value then
+ value = false -- catch nil
+ else
+ value = is_boolean(value,value,true) -- strict
+ end
+ w = topattern(w,true,true)
+ for name, functions in sortedhash(data) do
+ if done[name] then
+ -- prevent recursion due to wildcards
+ elseif find(name,w) then
+ done[name] = true
+ for i=1,#functions do
+ functions[i](value)
+ end
+ functions.value = value
+ end
+ end
+ end
+ end
+end
+
+local function reset(t)
+ local data = t.data
+ if data and not data.frozen then
+ for name, functions in sortedthash(data) do
+ for i=1,#functions do
+ functions[i](false)
+ end
+ functions.value = false
+ end
+ end
+end
+
+local function enable(t,what)
+ set(t,what,true)
+end
+
+local function disable(t,what)
+ local data = t.data
+ if not what or what == "" then
+ t.done = { }
+ reset(t)
+ else
+ set(t,what,false)
+ end
+end
+
+local function register_setter(t,what,...)
+ local data = t.data
+ what = lower(what)
+ local functions = data[what]
+ if not functions then
+ functions = { }
+ data[what] = functions
+ if trace_initialize then
+ t.report("defining %a",what)
+ end
+ end
+ local default = functions.default -- can be set from cnf file
+ for i=1,select("#",...) do
+ local fnc = select(i,...)
+ local typ = type(fnc)
+ if typ == "string" then
+ if trace_initialize then
+ t.report("coupling %a to %a",what,fnc)
+ end
+ local s = fnc -- else wrong reference
+ fnc = function(value) set(t,s,value) end
+ elseif typ == "table" then
+ functions.values = fnc
+ fnc = nil
+ elseif typ ~= "function" then
+ fnc = nil
+ end
+ if fnc then
+ functions[#functions+1] = fnc
+ -- default: set at command line or in cnf file
+ -- value : set in tex run (needed when loading runtime)
+ local value = functions.value or default
+ if value ~= nil then
+ fnc(value)
+ functions.value = value
+ end
+ end
+ end
+ return false -- so we can use it in an assignment
+end
+
+local function enable_setter(t,what)
+ local e = t.enable
+ t.enable, t.done = enable, { }
+ set(t,what,true)
+ enable(t,what)
+ t.enable, t.done = e, { }
+end
+
+local function disable_setter(t,what)
+ local e = t.disable
+ t.disable, t.done = disable, { }
+ disable(t,what)
+ t.disable, t.done = e, { }
+end
+
+local function reset_setter(t)
+ t.done = { }
+ reset(t)
+end
+
+local function list_setter(t) -- pattern
+ local list = table.sortedkeys(t.data)
+ local user, system = { }, { }
+ for l=1,#list do
+ local what = list[l]
+ if find(what,"^%*") then
+ system[#system+1] = what
+ else
+ user[#user+1] = what
+ end
+ end
+ return user, system
+end
+
+local function show_setter(t,pattern)
+ local list = list_setter(t)
+ t.report()
+ for k=1,#list do
+ local name = list[k]
+ if not pattern or find(name,pattern) then
+ local functions = t.data[name]
+ if functions then
+ local value = functions.value
+ local default = functions.default
+ local values = functions.values
+ local modules = #functions
+ if default == nil then
+ default = "unset"
+ elseif type(default) == "table" then
+ default = concat(default,"|")
+ else
+ default = tostring(default)
+ end
+ if value == nil then
+ value = "unset"
+ elseif type(value) == "table" then
+ value = concat(value,"|")
+ else
+ value = tostring(value)
+ end
+ t.report(name)
+ t.report(" modules : %i",modules)
+ t.report(" default : %s",default)
+ t.report(" value : %s",value)
+ if values then
+ local v = { } for i=1,#values do v[i] = tostring(values[i]) end
+ t.report(" values : % t",v)
+ end
+ t.report()
+ end
+ end
+ end
+end
+
+-- we could have used a bit of oo and the trackers:enable syntax but
+-- there is already a lot of code around using the singular tracker
+
+-- we could make this into a module but we also want the rest avaliable
+
+function setters.report(setter,fmt,...)
+ if fmt then
+ print(formatters["%-15s : %s"](setter.name,formatters[fmt](...)))
+ else
+ print("")
+ end
+end
+
+local function setter_default(setter,name)
+ local d = setter.data[name]
+ return d and d.default
+end
+
+local function setter_value(setter,name)
+ local d = setter.data[name]
+ return d and (d.value or d.default)
+end
+
+local function setter_values(setter,name)
+ local d = setter.data[name]
+ return d and d.values
+end
+
+local function new_setter(name) -- we could use foo:bar syntax (but not used that often)
+ local setter -- we need to access it in setter itself
+ setter = {
+ data = allocate(), -- indexed, but also default and value fields
+ name = name,
+ report = function(...) setters.report (setter,...) end, -- setters.report gets implemented later
+ enable = function(...) enable_setter (setter,...) end,
+ disable = function(...) disable_setter (setter,...) end,
+ reset = function(...) reset_setter (setter,...) end, -- can be dangerous
+ register = function(...) register_setter(setter,...) end,
+ list = function(...) return list_setter (setter,...) end,
+ show = function(...) show_setter (setter,...) end,
+ default = function(...) return setter_default (setter,...) end,
+ value = function(...) return setter_value (setter,...) end,
+ values = function(...) return setter_values (setter,...) end,
+ }
+ data[name] = setter
+ return setter
+end
+
+setters.enable = enable_setter
+setters.disable = disable_setter
+-------.report = report_setter -- todo: adapt after call (defaults to print)
+setters.register = register_setter
+setters.list = list_setter
+setters.show = show_setter
+setters.reset = reset_setter
+setters.new = new_setter
+setters.initialize = initialize_setter
+
+trackers = new_setter("trackers")
+directives = new_setter("directives")
+experiments = new_setter("experiments")
+
+local t_enable, t_disable = trackers .enable, trackers .disable
+local d_enable, d_disable = directives .enable, directives .disable
+local e_enable, e_disable = experiments.enable, experiments.disable
+
+-- nice trick: we overload two of the directives related functions with variants that
+-- do tracing (itself using a tracker) .. proof of concept
+
+local trace_directives = false local trace_directives = false trackers.register("system.directives", function(v) trace_directives = v end)
+local trace_experiments = false local trace_experiments = false trackers.register("system.experiments", function(v) trace_experiments = v end)
+
+function directives.enable(...)
+ if trace_directives then
+ directives.report("enabling: % t",{...})
+ end
+ d_enable(...)
+end
+
+function directives.disable(...)
+ if trace_directives then
+ directives.report("disabling: % t",{...})
+ end
+ d_disable(...)
+end
+
+function experiments.enable(...)
+ if trace_experiments then
+ experiments.report("enabling: % t",{...})
+ end
+ e_enable(...)
+end
+
+function experiments.disable(...)
+ if trace_experiments then
+ experiments.report("disabling: % t",{...})
+ end
+ e_disable(...)
+end
+
+-- a useful example
+
+directives.register("system.nostatistics", function(v)
+ if statistics then
+ statistics.enable = not v
+ else
+ -- forget about it
+ end
+end)
+
+directives.register("system.nolibraries", function(v)
+ if libraries then
+ libraries = nil -- we discard this tracing for security
+ else
+ -- no libraries defined
+ end
+end)
+
+-- experiment
+
+if environment then
+
+ -- The engineflags are known earlier than environment.arguments but maybe we
+ -- need to handle them both as the later are parsed differently. The c: prefix
+ -- is used by mtx-context to isolate the flags from those that concern luatex.
+
+ local engineflags = environment.engineflags
+
+ if engineflags then
+ local list = engineflags["c:trackers"] or engineflags["trackers"]
+ if type(list) == "string" then
+ initialize_setter("commandline flags","trackers",settings_to_hash(list))
+ -- t_enable(list)
+ end
+ local list = engineflags["c:directives"] or engineflags["directives"]
+ if type(list) == "string" then
+ initialize_setter("commandline flags","directives", settings_to_hash(list))
+ -- d_enable(list)
+ end
+ end
+
+end
+
+-- here
+
+if texconfig then
+
+ -- this happens too late in ini mode but that is no problem
+
+ local function set(k,v)
+ if v then
+ texconfig[k] = v
+ end
+ end
+
+ directives.register("luametatex.memory.expand", function(v) set("expand_depth",v) end)
+ directives.register("luametatex.memory.hash", function(v) set("hash_extra",v) end)
+ directives.register("luametatex.memory.nest", function(v) set("nest_size",v) end)
+ directives.register("luametatex.memory.file", function(v) set("max_in_open",v) end)
+ directives.register("luametatex.memory.string", function(v) set("max_strings",v) end)
+ directives.register("luametatex.memory.parameter", function(v) set("param_size",v) end)
+ directives.register("luametatex.memory.save", function(v) set("save_size",v) end)
+ directives.register("luametatex.memory.stack", function(v) set("stack_size",v) end)
+
+ -- poolstate
+ -- lookupstate
+ -- nodestate
+ -- tokenstate
+ -- bufferstate
+ -- fontstate
+ -- languagestate
+ -- markstate
+ -- sparsestate
+
+end
+
+-- for now here:
+
+local data = table.setmetatableindex("table")
+
+updaters = {
+ register = function(what,f)
+ local d = data[what]
+ d[#d+1] = f
+ end,
+ apply = function(what,...)
+ local d = data[what]
+ for i=1,#d do
+ d[i](...)
+ end
+ end,
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/trac-tex.mkxl b/Master/texmf-dist/tex/context/base/mkxl/trac-tex.mkxl
index 13c1a047f76..cf46bed26e5 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/trac-tex.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/trac-tex.mkxl
@@ -24,7 +24,7 @@
% \def\enabletextracerwhatever {...}
% \def\disabletextracerwhatever{...}
-\mutable\let\alltextracers\empty % so that we can report available tracers
+\mutable\lettonothing\alltextracers % so that we can report available tracers
\permanent\protected\def\installtextracer#1%
{\addtocommalist{#1}\alltextracers}
@@ -56,14 +56,14 @@
\permanent\protected\def\profilemacro#1% an oldie, but modernized a bit
{\edef\p_name{\csstring#1}%
\ifcsname\??profilemacrocount\p_name\endcsname \else
- \expandafter\newcount\csname\??profilemacrocount\p_name\endcsname
+ \expandafter\newinteger\csname\??profilemacrocount\p_name\endcsname
\letcsname\??profilemacromacro\p_name\endcsname#1%
\xtoksapp\t_syst_profile
{\writestatus
{profile}%
{\string#1: \noexpand\the\csname\??profilemacrocount\p_name\endcsname}}%
\enforced\protected\xdef#1%
- {\global\advance\csname\??profilemacrocount\p_name\endcsname\plusone
+ {\global\advanceby\csname\??profilemacrocount\p_name\endcsname\plusone
\expandafter\noexpand\csname\??profilemacromacro\p_name\endcsname}%
\fi}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/trac-vis.lmt b/Master/texmf-dist/tex/context/base/mkxl/trac-vis.lmt
index 44723e38fad..dddb4799deb 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/trac-vis.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/trac-vis.lmt
@@ -9,7 +9,7 @@ if not modules then modules = { } end modules ['trac-vis'] = {
local node, nodes, attributes, tex = node, nodes, attributes, tex
local type, tonumber, next, rawget = type, tonumber, next, rawget
-local gmatch = string.gmatch
+local gmatch, gsub = string.gmatch, string.gsub
local formatters = string.formatters
local round = math.round
@@ -30,8 +30,6 @@ local round = math.round
-- todo: tags can also be numbers (just add to hash)
-- todo: make a lmtx variant (a few more efficient fetchers)
-local nodecodes = nodes.nodecodes
-
local nuts = nodes.nuts
local tonut = nuts.tonut
@@ -42,6 +40,8 @@ local setsubtype = nuts.setsubtype
local setattr = nuts.setattr
local setwidth = nuts.setwidth
local setshift = nuts.setshift
+local setoffsets = nuts.setoffsets
+local getglyphdimensions = nuts.getglyphdimensions
local getid = nuts.getid
local getfont = nuts.getfont
@@ -49,26 +49,30 @@ local getattr = nuts.getattr
local getsubtype = nuts.getsubtype
local getbox = nuts.getbox
local getlist = nuts.getlist
+local getprev = nuts.getprev
local getnext = nuts.getnext
local getboth = nuts.getboth
local getwhd = nuts.getwhd
local getkern = nuts.getkern
+local getpenalty = nuts.getpenalty
local getwidth = nuts.getwidth
local getdepth = nuts.getdepth
local getexpansion = nuts.getexpansion
local getstate = nuts.getstate
local getoffsets = nuts.getoffsets
+local getindex = nuts.getindex
+local getprop = nuts.getprop
local isglyph = nuts.isglyph
local hpack_nodes = nuts.hpack
local vpack_nodes = nuts.vpack
-local copy_list = nuts.copy_list
-local copy_node = nuts.copy_node
-local flush_node_list = nuts.flush_list
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local copylist = nuts.copylist
+local copy_node = nuts.copy
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local apply_to_nodes = nuts.apply
+local flushnodelist = nuts.flushlist
local hpack_string = nuts.typesetters.tohpack
@@ -89,6 +93,7 @@ local pt_factor = number.dimenfactors.pt
local nodepool = nuts.pool
local new_rule = nodepool.rule
+local new_virtual_rule = nodepool.virtualrule
local new_kern = nodepool.kern
local new_glue = nodepool.glue
local new_hlist = nodepool.hlist
@@ -108,74 +113,60 @@ local stoptiming = statistics.stoptiming
local a_visual = attributes.private("visual")
local a_layer = attributes.private("viewerlayer")
-local band = bit32.band
-local bor = bit32.bor
-
local enableaction = nodes.tasks.enableaction
--- local trace_hbox
--- local trace_vbox
--- local trace_vtop
--- local trace_kern
--- local trace_glue
--- local trace_penalty
--- local trace_fontkern
--- local trace_strut
--- local trace_whatsit
--- local trace_user
--- local trace_math
--- local trace_italic
--- local trace_discretionary
--- local trace_expansion
--- local trace_line
--- local trace_space
-
local report_visualize = logs.reporter("visualize")
local modes = {
- hbox = 0x000001,
- vbox = 0x000002,
- vtop = 0x000004,
- kern = 0x000008,
- glue = 0x000010,
- penalty = 0x000020,
- fontkern = 0x000040,
- strut = 0x000080,
- whatsit = 0x000100,
- glyph = 0x000200,
- simple = 0x000400,
- simplehbox = 0x000401,
- simplevbox = 0x000402,
- simplevtop = 0x000404,
- user = 0x000800,
- math = 0x001000,
- italic = 0x002000,
- origin = 0x004000,
- discretionary = 0x008000,
- expansion = 0x010000,
- line = 0x020000,
- space = 0x040000,
- depth = 0x080000,
- marginkern = 0x100000,
- mathlistkern = 0x200000,
- dir = 0x400000,
- par = 0x800000,
+ hbox = 0x0000001,
+ vbox = 0x0000002,
+ vtop = 0x0000004,
+ kern = 0x0000008,
+ glue = 0x0000010,
+ penalty = 0x0000020,
+ fontkern = 0x0000040,
+ strut = 0x0000080,
+ whatsit = 0x0000100,
+ glyph = 0x0000200,
+ simple = 0x0000400,
+ simplehbox = 0x0000401,
+ simplevbox = 0x0000402,
+ simplevtop = 0x0000404,
+ user = 0x0000800,
+ math = 0x0001000,
+ italic = 0x0002000,
+ origin = 0x0004000,
+ discretionary = 0x0008000,
+ expansion = 0x0010000,
+ line = 0x0020000,
+ space = 0x0040000,
+ depth = 0x0080000,
+ marginkern = 0x0100000,
+ mathkern = 0x0200000, --
+ dir = 0x0400000,
+ par = 0x0800000,
+ mathglue = 0x1000000, --
+ mark = 0x2000000,
+ insert = 0x4000000,
+ boundary = 0x8000000,
}
+visualizers.modes = modes
+
local usedfont, exheight, emwidth
-local l_penalty, l_glue, l_kern, l_fontkern, l_hbox, l_vbox, l_vtop, l_strut, l_whatsit, l_glyph, l_user, l_math, l_marginkern, l_mathlistkern, l_italic, l_origin, l_discretionary, l_expansion, l_line, l_space, l_depth,
- l_dir, l_whatsit
+local l_penalty, l_glue, l_kern, l_fontkern, l_hbox, l_vbox, l_vtop, l_strut, l_whatsit, l_glyph, l_user, l_math, l_marginkern, l_mathkern, l_mathshape, l_italic, l_origin, l_discretionary, l_expansion, l_line, l_space, l_depth,
+ l_dir, l_whatsit, l_mark, l_insert, l_boundary
local enabled = false
local layers = { }
local preset_boxes = modes.hbox + modes.vbox + modes.vtop + modes.origin
local preset_makeup = preset_boxes
- + modes.kern + modes.glue + modes.penalty
+ + modes.kern + modes.glue + modes.penalty + modes.boundary
local preset_all = preset_makeup
- + modes.fontkern + modes.marginkern + modes.mathlistkern
+ + modes.fontkern + modes.marginkern + modes.mathkern
+ modes.whatsit + modes.glyph + modes.user + modes.math
- + modes.dir + modes.whatsit
+ + modes.dir + modes.mathglue + modes.mark + modes.insert
function visualizers.setfont(id)
usedfont = id or current_font()
@@ -221,7 +212,8 @@ local function initialize()
l_math = layers.math
l_italic = layers.italic
l_marginkern = layers.marginkern
- l_mathlistkern = layers.mathlistkern
+ l_mathkern = layers.mathkern
+ l_mathshapekern = layers.mathshapekern
l_origin = layers.origin
l_discretionary = layers.discretionary
l_expansion = layers.expansion
@@ -230,6 +222,9 @@ local function initialize()
l_depth = layers.depth
l_dir = layers.dir
l_par = layers.par
+ l_mark = layers.mark
+ l_insert = layers.insert
+ l_boundary = layers.boundary
--
if not userrule then
userrule = nuts.rules.userrule
@@ -255,6 +250,12 @@ local function enable()
tex.setcount("global","c_syst_visualizers_state",1) -- so that we can optimize at the tex end
end
+function visualizers.enable()
+ if not enabled then
+ enable()
+ end
+end
+
local function setvisual(n,a,what,list) -- this will become more efficient when we have the bit lib linked in
if not n or n == "reset" then
return unsetvalue
@@ -262,13 +263,13 @@ local function setvisual(n,a,what,list) -- this will become more efficient when
if not a or a == 0 or a == unsetvalue then
a = preset_makeup
else
- a = bor(a,preset_makeup)
+ a = a | preset_makeup
end
elseif n == "boxes" then
if not a or a == 0 or a == unsetvalue then
a = preset_boxes
else
- a = bor(a,preset_boxes)
+ a = a | preset_boxes
end
elseif n == "all" then
if what == false then
@@ -276,9 +277,9 @@ local function setvisual(n,a,what,list) -- this will become more efficient when
elseif not a or a == 0 or a == unsetvalue then
a = preset_all
else
- a = bor(a,preset_all)
+ a = a | preset_all
end
- else
+ elseif type(n) == "string" then
for s in gmatch(n,"[a-z]+") do
local m = modes[s]
if not m then
@@ -286,9 +287,15 @@ local function setvisual(n,a,what,list) -- this will become more efficient when
elseif not a or a == 0 or a == unsetvalue then
a = m
else
- a = bor(a,m)
+ a = a | m
end
end
+ elseif type(n) == "number" then
+ if not a or a == 0 or a == unsetvalue then
+ a = n
+ else
+ a = a | n
+ end
end
if not a or a == 0 or a == unsetvalue then
return unsetvalue
@@ -299,7 +306,14 @@ local function setvisual(n,a,what,list) -- this will become more efficient when
end
function nuts.setvisual(n,mode)
- setattr(n,a_visual,setvisual(mode,getattr(n,a_visual),true))
+ if mode then
+ setattr(n,a_visual,setvisual(mode,getattr(n,a_visual),true))
+ else
+ local a = texgetattribute(a_visual)
+ if a ~= unsetvalue then
+ setattr(n,a_visual,a)
+ end
+ end
end
function nuts.setvisuals(n,mode) -- currently the same
@@ -372,7 +386,6 @@ for mode, value in next, modes do
end
local fraction = 10
-local normalize = true
trackers .register("visualizers.reset", function(v) set("reset", v) end)
trackers .register("visualizers.all", function(v) set("all", v) end)
@@ -380,71 +393,102 @@ trackers .register("visualizers.makeup", function(v) set("makeup",v) end)
trackers .register("visualizers.boxes", function(v) set("boxes", v) end)
directives.register("visualizers.fraction", function(v) fraction = (v and tonumber(v)) or (v == "more" and 5) or 10 end)
-local c_positive = "trace:b"
-local c_negative = "trace:r"
-local c_zero = "trace:g"
-local c_text = "trace:s"
-local c_space = "trace:y"
-local c_space_x = "trace:m"
-local c_skip_a = "trace:c"
-local c_skip_b = "trace:m"
-local c_glyph = "trace:o"
-local c_ligature = "trace:s"
-local c_white = "trace:w"
------ c_math = "trace:s"
------ c_origin = "trace:o"
------ c_discretionary = "trace:d"
------ c_expansion = "trace:o"
-local c_depth = "trace:o"
-local c_indent = "trace:s"
-
-local c_positive_d = "trace:db"
-local c_negative_d = "trace:dr"
-local c_zero_d = "trace:dg"
-local c_text_d = "trace:ds"
-local c_space_d = "trace:dy"
-local c_space_x_d = "trace:dm"
-local c_skip_a_d = "trace:dc"
-local c_skip_b_d = "trace:dm"
-local c_glyph_d = "trace:do"
-local c_ligature_d = "trace:ds"
-local c_white_d = "trace:dw"
-local c_math_d = "trace:dr"
-local c_origin_d = "trace:do"
-local c_discretionary_d = "trace:dd"
------ c_expansion_d = "trace:do"
------ c_depth_d = "trace:do"
------ c_indent_d = "trace:ds"
-
-- we can just paste verbatim together .. no typesetting needed
+-- experiment ... we can move the font definition away too
+
+ local expandmacro = token.expand_macro
+ local takebox = tex.takebox
+
+ local function hpack_string(str)
+ expandmacro("syst_v_p",true,str)
+ return tonut(takebox("scratchbox"))
+ end
+
+-- ... if okay it will replace the current hpack_string in node_typ
+
+-- local function sometext(str,layer,color,textcolor,lap,variant)
+-- local text = hpack_string(str,usedfont)
+-- local size = getwidth(text)
+-- local rule = new_rule(size,2*exheight,exheight/2)
+-- local kern = new_kern(-size)
+-- if color then
+-- setcolor(rule,color)
+-- end
+-- if textcolor then
+-- setlistcolor(getlist(text),textcolor)
+-- end
+-- local info = setlink(rule,kern,text)
+-- setlisttransparency(info,"trace:g")
+-- info = hpack_nodes(info)
+-- local width = getwidth(info)
+-- if variant then
+-- setoffsets(info,0,variant*exheight)
+-- end
+-- if lap then
+-- info = new_hlist(setlink(new_kern(-width),info)) -- use xoffset and set info wd to 0
+-- else
+-- info = new_hlist(info) -- a bit overkill: double wrapped
+-- end
+-- if layer then
+-- setattr(info,a_layer,layer)
+-- end
+-- return info, width
+-- end
+
+-- local function sometext(str,layer,color,textcolor,lap,variant)
+-- local text = hpack_string(str,usedfont)
+-- local size = getwidth(text)
+-- local rule = new_virtual_rule(size,2*exheight,exheight/2)
+-- if color then
+-- setcolor(rule,color)
+-- end
+-- if textcolor then
+-- setlistcolor(getlist(text),textcolor)
+-- end
+-- local info = setlink(rule,text)
+-- setlisttransparency(info,"trace:g")
+-- info = hpack_nodes(info)
+-- if variant then
+-- setoffsets(info,0,variant*exheight)
+-- end
+-- info = new_hlist(info) -- a bit overkill: double wrapped
+-- if lap then
+-- setoffsets(info,-size)
+-- end
+-- if layer then
+-- setattr(info,a_layer,layer)
+-- end
+-- return info, size
+-- end
+
local function sometext(str,layer,color,textcolor,lap,variant)
local text = hpack_string(str,usedfont)
local size = getwidth(text)
- local rule = new_rule(size,2*exheight,exheight/2)
- local kern = new_kern(-size)
+ local rule = new_virtual_rule(size,2*exheight,exheight/2)
if color then
setcolor(rule,color)
end
if textcolor then
setlistcolor(getlist(text),textcolor)
end
- local info = setlink(rule,kern,text)
- setlisttransparency(info,c_zero)
- info = hpack_nodes(info)
- local width = getwidth(info)
+ local info = setlink(rule,text)
+ setlisttransparency(info,"trace:g")
+ info = new_hlist(info)
+ local x, y
+ if lap then
+ x = -size
+ end
if variant then
- nuts.setoffsets(info,0,variant*exheight)
+ y = variant * exheight
end
- if lap then
- info = new_hlist(setlink(new_kern(-width),info))
- else
- info = new_hlist(info) -- a bit overkill: double wrapped
+ if x or y then
+ setoffsets(info,x,y)
end
if layer then
setattr(info,a_layer,layer)
end
- return info, width
+ return info, size
end
local function someblob(str,layer,color,textcolor,width)
@@ -459,7 +503,7 @@ local function someblob(str,layer,color,textcolor,width)
setlistcolor(getlist(text),textcolor)
end
local info = setlink(rule,kern,text)
- setlisttransparency(info,c_zero)
+ setlisttransparency(info,"trace:g")
info = hpack_nodes(info)
local width = getwidth(info)
info = new_hlist(info)
@@ -471,12 +515,13 @@ end
local caches = setmetatableindex("table")
-local fontkern, italickern, marginkern, mathlistkern do
+local fontkern, italickern, marginkern, mathkern do
local f_cache = caches["fontkern"]
local i_cache = caches["italickern"]
+ local s_cache = caches["shapekern"]
local m_cache = caches["marginkern"]
- local l_cache = caches["mathlistkern"]
+ local l_cache = caches["mathkern"]
local function somekern(head,current,cache,color,layer)
local width = getkern(current)
@@ -488,11 +533,11 @@ local fontkern, italickern, marginkern, mathlistkern do
local rule = new_rule(emwidth/fraction,6*exheight,2*exheight)
local list = getlist(text)
if kern > 0 then
- setlistcolor(list,c_positive_d)
+ setlistcolor(list,"trace:db")
elseif kern < 0 then
- setlistcolor(list,c_negative_d)
+ setlistcolor(list,"trace:dr")
else
- setlistcolor(list,c_zero_d)
+ setlistcolor(list,"trace:dg")
end
setlisttransparency(list,color)
setcolor(rule,color)
@@ -500,58 +545,61 @@ local fontkern, italickern, marginkern, mathlistkern do
setshift(text,-5 * exheight)
info = new_hlist(setlink(rule,text))
setattr(info,a_layer,layer)
- f_cache[kern] = info
+ cache[kern] = info
end
- head = insert_node_before(head,current,copy_list(info))
+ head = insertnodebefore(head,current,copylist(info))
return head, current
end
fontkern = function(head,current)
- return somekern(head,current,f_cache,c_text_d,l_fontkern)
+ return somekern(head,current,f_cache,"trace:ds",l_fontkern)
end
italickern = function(head,current)
- return somekern(head,current,i_cache,c_glyph_d,l_italic)
+ return somekern(head,current,i_cache,"trace:do",l_italic)
+ end
+
+ mathshapekern = function(head,current)
+ return somekern(head,current,s_cache,"trace:do",l_mathshapekern)
end
marginkern = function(head,current)
- return somekern(head,current,m_cache,c_glyph_d,l_marginkern)
+ return somekern(head,current,m_cache,"trace:do",l_marginkern)
end
- mathlistkern = function(head,current)
- return somekern(head,current,l_cache,c_glyph_d,l_mathlistkern)
+ mathkern = function(head,current)
+ return somekern(head,current,l_cache,"trace:do",l_mathkern)
end
end
-local glyphexpansion do
+local ruledglyphexpansion do
local f_cache = caches["glyphexpansion"]
- glyphexpansion = function(head,current)
+ ruledglyphexpansion = function(head,current)
local extra = getexpansion(current)
if extra and extra ~= 0 then
extra = extra / 1000
local info = f_cache[extra]
if not info then
- local text = hpack_string(round(extra),usedfont)
+ local text = hpack_string(tostring(round(extra)),usedfont)
local rule = new_rule(emwidth/fraction,exheight,2*exheight)
local list = getlist(text)
if extra > 0 then
- setlistcolor(list,c_positive_d)
+ setlistcolor(list,"trace:db")
elseif extra < 0 then
- setlistcolor(list,c_negative_d)
+ setlistcolor(list,"trace:dr")
end
- setlisttransparency(list,c_text_d)
- setcolor(rule,c_text_d)
- settransparency(rule,c_text_d)
- setshift(text,1.5 * exheight)
+ setlisttransparency(list,"trace:ds")
+ setcolor(rule,"trace:ds")
+ settransparency(rule,"trace:ds")
+ setshift(text,1.75 * exheight)
info = new_hlist(setlink(rule,text))
setattr(info,a_layer,l_expansion)
f_cache[extra] = info
end
- head = insert_node_before(head,current,copy_list(info))
- return head, current
+ head = insertnodebefore(head,current,copylist(info))
end
return head, current
end
@@ -570,31 +618,73 @@ local kernexpansion do
extra = extra / 1000
local info = f_cache[extra]
if not info then
- local text = hpack_string(round(extra),usedfont)
+ local text = hpack_string(tostring(round(extra)),usedfont)
local rule = new_rule(emwidth/fraction,exheight,4*exheight)
local list = getlist(text)
if extra > 0 then
- setlistcolor(list,c_positive_d)
+ setlistcolor(list,"trace:db")
elseif extra < 0 then
- setlistcolor(list,c_negative_d)
+ setlistcolor(list,"trace:dr")
end
- setlisttransparency(list,c_text_d)
- setcolor(rule,c_text_d)
- settransparency(rule,c_text_d)
+ setlisttransparency(list,"trace:ds")
+ setcolor(rule,"trace:ds")
+ settransparency(rule,"trace:ds")
setshift(text,3.5 * exheight)
info = new_hlist(setlink(rule,text))
setattr(info,a_layer,l_expansion)
f_cache[extra] = info
end
- head = insert_node_before(head,current,copy_list(info))
- return head, current
+ head = insertnodebefore(head,current,copylist(info))
end
return head, current
end
end
-local whatsit do
+local ruledmark do
+
+ local set_code = nodes.markcodes.set
+
+ local sm_cache = setmetatableindex(caches["setmark"], function(t,index)
+ local info = sometext(formatters["SM:%i"](index),usedfont,nil,"trace:w") -- whatsit
+ setattr(info,a_layer,l_mark)
+ t[index] = info
+ return info
+ end)
+
+ local rm_cache = setmetatableindex(caches["resetmark"], function(t,index)
+ local info = sometext(formatters["RM:%i"](index),usedfont,nil,"trace:w") -- whatsit
+ setattr(info,a_layer,l_mark)
+ t[index] = info
+ return info
+ end)
+
+ ruledmark = function(head,current)
+ local index = getindex(current)
+ local info = getsubtype(current) == set_code and sm_cache[index] or rm_cache[index]
+ head, current = insertnodeafter(head,current,copylist(info))
+ return head, current
+ end
+
+end
+
+local ruledinsert do
+
+ local si_cache = setmetatableindex(caches["insert"], function(f,index)
+ local info = sometext(formatters["SI:%i"](index),usedfont,nil,"trace:w") -- whatsit
+ setattr(info,a_layer,l_insert)
+ si_cache[index] = info
+ end)
+
+ ruledinsert = function(head,current)
+ local info = si_cache[getindex(current)]
+ head, current = insertnodeafter(head,current,copylist(info))
+ return head, current
+ end
+
+end
+
+local ruledwhatsit do
local whatsitcodes = nodes.whatsitcodes
local w_cache = caches["whatsit"]
@@ -624,23 +714,51 @@ local whatsit do
[whatsitcodes.setstate] = "SET", -- can't happen because these are added after visualizing
}
- whatsit = function(head,current)
+ ruledwhatsit = function(head,current)
local what = getsubtype(current)
local info = w_cache[what]
if info then
-- print("hit whatsit")
else
- info = sometext(formatters["W:%s"](tags[what] or what),usedfont,nil,c_white)
+ info = sometext(formatters["W:%s"](tags[what] or what),usedfont,nil,"trace:w")
setattr(info,a_layer,l_whatsit)
w_cache[what] = info
end
- head, current = insert_node_after(head,current,copy_list(info))
+ head, current = insertnodeafter(head,current,copylist(info))
return head, current
end
end
-local dir, par do
+local ruledboundary do
+
+ local boundarycodes = nodes.boundarycodes
+ local b_cache = caches["boundary"]
+
+ local tags = {
+ [boundarycodes.cancel] = "CAN",
+ [boundarycodes.user] = "USR",
+ [boundarycodes.protrusion] = "PRO",
+ [boundarycodes.word] = "WRD",
+ }
+
+ ruledboundary = function(head,current)
+ local what = getsubtype(current)
+ local info = b_cache[what]
+ if info then
+ -- print("hit whatsit")
+ else
+ info = sometext(formatters["B:%s"](tags[what] or what),usedfont,nil,"trace:w")
+ setattr(info,a_layer,l_boundary)
+ b_cache[what] = info
+ end
+ head, current = insertnodeafter(head,current,copylist(info))
+ return head, current
+ end
+
+end
+
+local ruleddir, ruledpar do
local dircodes = nodes.dircodes
local dirvalues = nodes.dirvalues
@@ -660,22 +778,23 @@ local dir, par do
par = "PAR",
}
- par = function(head,current)
+ ruledpar = function(head,current)
local what = "par" -- getsubtype(current)
local info = d_cache[what]
if info then
-- print("hit par")
else
- info = sometext(formatters["L:%s"](what),usedfont,nil,c_white)
+ info = sometext(formatters["L:%s"](what),usedfont,nil,"trace:w")
setattr(info,a_layer,l_dir)
d_cache[what] = info
end
+ head, current = insertnodeafter(head,current,copylist(info))
return head, current
end
- dir = function(head,current)
+ ruleddir = function(head,current)
local what = getsubtype(current)
- if what == cancelcode then
+ if what == cancel_code then
what = "cancel"
elseif getdirection(current) == r2l_code then
what = "r2l"
@@ -686,20 +805,21 @@ local dir, par do
if info then
-- print("hit dir")
else
- info = sometext(formatters["D:%s"](what),usedfont,nil,c_white)
+ info = sometext(formatters["D:%s"](what),usedfont,nil,"trace:w")
setattr(info,a_layer,l_dir)
d_cache[what] = info
end
+ head, current = insertnodeafter(head,current,copylist(info))
return head, current
end
end
-local user do
+local ruleduser do
local u_cache = caches["user"]
- user = function(head,current)
+ ruleduser = function(head,current)
local what = getsubtype(current)
local info = u_cache[what]
if info then
@@ -709,46 +829,7 @@ local user do
setattr(info,a_layer,l_user)
u_cache[what] = info
end
- head, current = insert_node_after(head,current,copy_list(info))
- return head, current
- end
-
-end
-
-local math do
-
- local mathcodes = nodes.mathcodes
- local m_cache = {
- beginmath = caches["bmath"],
- endmath = caches["emath"],
- }
- local tags = {
- beginmath = "B",
- endmath = "E",
- }
-
- math = function(head,current)
- local what = getsubtype(current)
- local tag = mathcodes[what]
- local skip = getkern(current) + getwidth(current) -- surround
- local info = m_cache[tag][skip]
- if info then
- -- print("hit math")
- else
- local text, width = sometext(formatters["M:%s"](tag and tags[tag] or what),usedfont,nil,c_math_d)
- local rule = new_rule(skip,-655360/fraction,2*655360/fraction)
- setcolor(rule,c_math_d)
- settransparency(rule,c_math_d)
- setattr(rule,a_layer,l_math)
- if tag == "beginmath" then
- info = new_hlist(setlink(new_glue(-skip),rule,new_glue(-width),text))
- else
- info = new_hlist(setlink(new_glue(-skip),rule,new_glue(-skip),text))
- end
- setattr(info,a_layer,l_math)
- m_cache[tag][skip] = info
- end
- head, current = insert_node_after(head,current,copy_list(info))
+ head, current = insertnodeafter(head,current,copylist(info))
return head, current
end
@@ -760,8 +841,8 @@ local ruleddepth do
local wd, ht, dp = getwhd(current)
if dp ~= 0 then
local rule = new_rule(wd,0,dp)
- setcolor(rule,c_depth)
- settransparency(rule,c_zero)
+ setcolor(rule,"trace:o")
+ settransparency(rule,"trace:g")
setattr(rule,a_layer,l_depth)
setlist(current,setlink(rule,new_kern(-wd),getlist(current)))
end
@@ -774,13 +855,16 @@ local ruledbox do
local b_cache = caches["box"]
local o_cache = caches["origin"]
- local getshift = nuts.getshift
+ local getshift = nuts.getshift
+ local getorientation = nuts.getorientation
+ local setorientation = nuts.setorientation
+ local getheight = nuts.getheight
setmetatableindex(o_cache,function(t,size)
local rule = new_rule(2*size,size,size)
local origin = hpack_nodes(rule)
- setcolor(rule,c_origin_d)
- settransparency(rule,c_origin_d)
+ setcolor(rule,"trace:do")
+ settransparency(rule,"trace:do")
setattr(rule,a_layer,l_origin)
t[size] = origin
return origin
@@ -788,97 +872,131 @@ local ruledbox do
ruledbox = function(head,current,vertical,layer,what,simple,previous,trace_origin,parent)
local wd, ht, dp = getwhd(current)
+-- local wd, ht, dh, shift = nuts.getlistdimensions(current) -- MAYBE
local force_origin = wd == 0 or (dp + ht) == 0
- local shift = getshift(current)
- local next = getnext(current)
- local prev = previous
- setboth(current)
- local linewidth = emwidth/fraction
- local size = 2*linewidth
- local this
- if not simple then
- this = b_cache[what]
- if not this then
- local text = hpack_string(what,usedfont)
- this = setlink(new_kern(-getwidth(text)),text)
- setlisttransparency(this,c_text)
- this = new_hlist(this)
- b_cache[what] = this
- end
+ local shift = getshift(current)
+-- print(getorientation(current,true))
+ local orientation, xoffset, yoffset, w, h, d = getorientation(current) -- TODO
+if orientation and orientation ~= 0 and (h ~= 0 or d ~= 0) then
+-- wd = w
+ ht = h
+ dp = d
+end
+ local next = getnext(current)
+ local prev = previous
+ setboth(current)
+ local linewidth = emwidth/fraction
+ local size = 2*linewidth
+ local this
+ if not simple then
+ this = b_cache[what]
+ if not this then
+ local text = hpack_string(what,usedfont)
+ this = setlink(new_kern(-getwidth(text)),text)
+ setlisttransparency(this,"trace:s")
+ this = new_hlist(this)
+ b_cache[what] = this
end
- -- we need to trigger the right mode (else sometimes no whatits)
- local info = setlink(
- this and copy_list(this) or nil,
- (force_origin and emptyrule(wd,ht,dp)) -- we accept some overhead
- or (dp == 0 and outlinerule and outlinerule(wd,ht,dp,linewidth))
- or userrule {
- width = wd,
- height = ht,
- depth = dp,
- line = linewidth,
- type = "box",
- dashed = 3*size,
- }
- )
- --
- setlisttransparency(info,c_text)
- info = new_hlist(info) -- important
- --
- setattr(info,a_layer,layer)
- if vertical then
- if not force_origin and shift == 0 then
- info = setlink(current,dp ~= 0 and new_kern(-dp) or nil,info)
- elseif trace_origin or force_origin then
- local size = 2*size
- local origin = o_cache[size]
- origin = copy_list(origin)
- if getid(parent) == vlist_code then
- setshift(origin,-shift)
- info = setlink(current,new_kern(-size),origin,new_kern(-size-dp),info)
- else
- -- todo .. i need an example
- info = setlink(current,dp ~= 0 and new_kern(-dp) or nil,info)
- end
- setshift(current,0)
+ end
+ local rest, more
+ if force_origin then
+ rest = emptyrule(wd,ht,dp) -- we accept some overhead
+ elseif what == "_D_" then
+ -- also the other line
+ local up = nil
+ local list = getlist(current)
+ if list then
+ up = getheight(list)
+ end
+ rest = userrule {
+ width = wd,
+ height = ht,
+ depth = dp,
+ line = linewidth,
+ type = "box",
+ dashed = 3*size,
+ double = ht - up,
+ }
+ elseif dp == 0 then
+ rest = userrule {
+ width = wd,
+ height = ht,
+ line = linewidth,
+ type = "box",
+ baseline = false,
+ }
+ else
+ rest = userrule {
+ width = wd,
+ height = ht,
+ depth = dp,
+ line = linewidth,
+ type = "box",
+ dashed = 3*size,
+ }
+ end
+ --
+ local info = setlink(this and copylist(this) or nil,rest,more)
+ --
+ setlisttransparency(info,"trace:s")
+ info = new_hlist(info) -- important
+ --
+ setattr(info,a_layer,layer)
+ if vertical then
+ if not force_origin and shift == 0 then
+ info = setlink(current,dp ~= 0 and new_kern(-dp) or nil,info)
+ elseif trace_origin or force_origin then
+ local size = 2*size
+ local origin = o_cache[size]
+ origin = copylist(origin)
+ if getid(parent) == vlist_code then
+ setshift(origin,-shift)
+ info = setlink(current,new_kern(-size),origin,new_kern(-size-dp),info)
else
- info = setlink(current,new_dp ~= 0 and new_kern(-dp) or nil,info)
- setshift(current,0)
+ -- todo .. i need an example
+ info = setlink(current,dp ~= 0 and new_kern(-dp) or nil,info)
end
- info = new_vlist(info,wd,ht,dp,shift)
+ setshift(current,0)
else
- if not force_origin and shift == 0 then
- info = setlink(current,new_kern(-wd),info)
- elseif trace_origin or force_origin then
- local size = 2*size
- local origin = o_cache[size]
- origin = copy_list(origin)
- if getid(parent) == vlist_code then
- info = setlink(current,new_kern(-wd-size-shift),origin,new_kern(-size+shift),info)
- else
- setshift(origin,-shift)
- info = setlink(current,new_kern(-wd-size),origin,new_kern(-size),info)
- end
- setshift(current,0)
+ info = setlink(current,new_dp ~= 0 and new_kern(-dp) or nil,info)
+ setshift(current,0)
+ end
+ info = new_vlist(info,wd,ht,dp,shift)
+ else
+ if not force_origin and shift == 0 then
+ info = setlink(current,new_kern(-wd),info)
+ elseif trace_origin or force_origin then
+ local size = 2*size
+ local origin = o_cache[size]
+ origin = copylist(origin)
+ if getid(parent) == vlist_code then
+ info = setlink(current,new_kern(-wd-size-shift),origin,new_kern(-size+shift),info)
else
- info = setlink(current,new_kern(-wd),info)
- setshift(current,0)
+ setshift(origin,-shift)
+ info = setlink(current,new_kern(-wd-size),origin,new_kern(-size),info)
end
- info = new_hlist(info,wd,ht,dp,shift)
- end
- if next then
- setlink(info,next)
- end
- if prev and prev > 0 then
- setlink(prev,info)
- end
- if head == current then
- return info, info
+ setshift(current,0)
else
- return head, info
+ info = setlink(current,new_kern(-wd),info)
+ setshift(current,0)
end
- -- else
- -- return head, current
- -- end
+ info = new_hlist(info,wd,ht,dp,shift)
+ end
+-- if orientation then
+-- setorientation(current,0,0)
+-- setorientation(info,orientation,xoffset,yoffset)
+-- end
+ if next then
+ setlink(info,next)
+ end
+ if prev and prev > 0 then
+ setlink(prev,info)
+ end
+ if head == current then
+ return info, info
+ else
+ return head, info
+ end
end
end
@@ -889,30 +1007,42 @@ local ruledglyph do
-- have a frozen color anyway or i need a more detailed cache .. below is a more
-- texie approach
+ -- local ligature_code = 0x8000 + nodes.glyphcodes.ligature
+
ruledglyph = function(head,current,previous) -- wrong for vertical glyphs
- local wd = getwidth(current)
+ local wd, ht, dp = getglyphdimensions(current)
if wd ~= 0 then
- local wd, ht, dp = getwhd(current)
local next = getnext(current)
local prev = previous
setboth(current)
local linewidth = emwidth/(2*fraction)
local x_offset, y_offset, l_margin, r_margin, raise = getoffsets(current)
- local info = setlink((dp == 0 and outlinerule and outlinerule(wd,ht,dp,linewidth)) or userrule {
+-- local info = setlink((dp == 0 and outlinerule and outlinerule(wd,ht,dp,linewidth)) or userrule {
+-- width = wd,
+-- height = ht,
+-- depth = dp,
+-- line = linewidth,
+-- type = "box",
+-- },new_kern(-wd))
+-- if ht == 0 and dp == 0 then
+-- ht = linewidth/2
+-- dp = ht
+-- end
+ local info = (dp == 0 and outlinerule and outlinerule(wd,ht,dp,linewidth)) or userrule {
width = wd,
height = ht,
depth = dp,
line = linewidth,
type = "box",
- },new_kern(-wd))
+ }
local c, f = isglyph(current)
local char = chardata[f][c]
if char and type(char.unicode) == "table" then -- hackery test
- setlistcolor(info,c_ligature)
- setlisttransparency(info,c_ligature_d)
+ setlistcolor(info,"trace:s")
+ setlisttransparency(info,"trace:ds")
else
- setlistcolor(info,c_glyph)
- setlisttransparency(info,c_glyph_d)
+ setlistcolor(info,"trace:o")
+ setlisttransparency(info,"trace:do")
end
info = new_hlist(info)
setattr(info,a_layer,l_glyph)
@@ -941,9 +1071,10 @@ local ruledglyph do
end
-local ruledglue do
+local ruledglue, ruledmathglue do
- local effectiveglue = nuts.effective_glue
+ local effectiveglue = nuts.effectiveglue
+ local iszeroglue = nuts.iszeroglue
local gluecodes = nodes.gluecodes
@@ -958,19 +1089,19 @@ local ruledglue do
local righthangskip_code = gluecodes.righthangskip
local parfillleftskip_code = gluecodes.parfillleftskip or parfillskip_code
local parfillrightskip_code = gluecodes.parfillrightskip or parfillskip_code
+ local parinitleftskip_code = gluecodes.parinitleftskip
+ local parinitrightskip_code = gluecodes.parinitrightskip
local indentskip_code = gluecodes.indentskip
+ local intermathskip_code = gluecodes.intermathskip
local correctionskip_code = gluecodes.correctionskip
+ local tabskip_code = gluecodes.tabskip
local g_cache_v = caches["vglue"]
local g_cache_h = caches["hglue"]
- local g_cache_ls = caches["leftskip"]
- local g_cache_rs = caches["rightskip"]
- local g_cache_lh = caches["lefthang"]
- local g_cache_rh = caches["righthang"]
- local g_cache_lp = caches["parfillleftskip"]
- local g_cache_rp = caches["parfillrightskip"]
- local g_cache_is = caches["indentskip"]
- local g_cache_cs = caches["correctionskip"]
+
+ local g_cache_gn = caches["gluename"]
+ local g_cache_gz = caches["gluezero"]
+ local g_cache_gf = caches["gluefixed"]
local tags = {
-- [userskip_code] = "US",
@@ -983,11 +1114,11 @@ local ruledglue do
[gluecodes.belowdisplayshortskip] = "SB",
[gluecodes.topskip] = "TS",
[gluecodes.splittopskip] = "ST",
- [gluecodes.tabskip] = "AS",
+ [tabskip_code] = "TB",
[gluecodes.thinmuskip] = "MS",
[gluecodes.medmuskip] = "MM",
[gluecodes.thickmuskip] = "ML",
- [gluecodes.intermathskip] = "IM",
+ [intermathskip_code] = "IM",
[gluecodes.keepskip or 99] = "KS",
[gluecodes.mathskip] = "MT",
[gluecodes.leaders] = "NL",
@@ -1005,6 +1136,8 @@ local ruledglue do
[zerospaceskip_code] = "ZS",
[parfillleftskip_code] = "PL",
[parfillrightskip_code] = "PR",
+ [parinitleftskip_code] = "IL",
+ [parinitrightskip_code] = "IR",
[indentskip_code] = "IN",
[correctionskip_code] = "CS",
}
@@ -1014,140 +1147,313 @@ local ruledglue do
[righthangskip_code] = 0.5,
[leftskip_code] = -2,
[rightskip_code] = -2,
+ [parinitleftskip_code] = -1.3775,
+ [parinitrightskip_code] = -1.3775,
[parfillleftskip_code] = -0.75,
[parfillrightskip_code] = -0.75,
}
- -- we sometimes pass previous as we can have issues in math (not watertight for all)
+ local f_amount = formatters["%s:%0.3f"]
+
+-- ruledglue = function(head,current,vertical,parent)
+-- local subtype = getsubtype(current)
+-- local width = effectiveglue(current,parent)
+-- local stag = stags[subtype]
+-- local amount = f_amount(tags[subtype] or (vertical and "VS") or "HS",width*pt_factor) -- can be sped up
+-- local info = (vertical and g_cache_v or g_cache_h)[amount]
+-- if subtype == intermathskip_code then
+-- head = ruledmathglue(head, current)
+-- end
+-- if info then
+-- -- print("glue hit")
+-- else
+-- if subtype == spaceskip_code or subtype == xspaceskip_code or subtype == zerospaceskip_code then
+-- info = sometext(amount,l_glue,"trace:y")
+-- elseif subtype == userskip_code then
+-- if width > 0 then
+-- info = sometext(amount,l_glue,"trace:b")
+-- elseif width < 0 then
+-- info = sometext(amount,l_glue,"trace:r")
+-- else
+-- info = sometext(amount,l_glue,"trace:g")
+-- end
+-- elseif subtype == tabskip_code then
+-- info = sometext(amount,l_glue,"trace:s")
+-- elseif subtype == indentskip_code or subtype == correctionskip_code then
+-- info = sometext(amount,l_glue,"trace:s")
+-- elseif subtype == leftskip_code then
+-- info = sometext(amount,l_glue,"trace:y",false,true,stag)
+-- elseif subtype == rightskip_code then
+-- info = sometext(amount,l_glue,"trace:y",false,false,stag)
+-- elseif subtype == lefthangskip_code then
+-- info = sometext(amount,l_glue,"trace:y",false,true,stag)
+-- elseif subtype == righthangskip_code then
+-- info = sometext(amount,l_glue,"trace:y",false,false,stag)
+-- elseif subtype == parfillleftskip_code then
+-- info = sometext(amount,l_glue,"trace:s",false,true,stag)
+-- elseif subtype == parfillrightskip_code then
+-- info = sometext(amount,l_glue,"trace:s",false,false,stag)
+-- elseif subtype == parinitleftskip_code then
+-- info = sometext(amount,l_glue,"trace:s",false,true,stag)
+-- elseif subtype == parinitrightskip_code then
+-- info = sometext(amount,l_glue,"trace:s",false,false,stag)
+-- else
+-- info = sometext(amount,l_glue,"trace:m")
+-- end
+-- (vertical and g_cache_v or g_cache_h)[amount] = info
+-- end
+-- info = copylist(info)
+-- if vertical then
+-- info = vpack_nodes(info)
+-- end
+-- head, current = insertnodebefore(head,current,info)
+-- return head, getnext(current)
+-- end
+
+ local g_caches = { } for k, v in next, tags do g_caches[k] = caches[v] end
ruledglue = function(head,current,vertical,parent)
local subtype = getsubtype(current)
local width = effectiveglue(current,parent)
- local stag = normalize and stags[subtype]
- local amount = formatters["%s:%0.3f"](tags[subtype] or (vertical and "VS") or "HS",width*pt_factor)
- local info = (vertical and g_cache_v or g_cache_h)[amount]
+ local stag = stags[subtype]
+ local cache = g_caches[subtype] or (vertical and g_cache_v) or g_cache_h
+ local info = cache[amount]
+ if subtype == intermathskip_code then
+ head = ruledmathglue(head, current)
+ end
if info then
-- print("glue hit")
else
+ local amount = f_amount(tags[subtype] or (vertical and "VS") or "HS",width*pt_factor)
if subtype == spaceskip_code or subtype == xspaceskip_code or subtype == zerospaceskip_code then
- info = sometext(amount,l_glue,c_space)
+ info = sometext(amount,l_glue,"trace:y")
elseif subtype == userskip_code then
if width > 0 then
- info = sometext(amount,l_glue,c_positive)
+ info = sometext(amount,l_glue,"trace:b")
elseif width < 0 then
- info = sometext(amount,l_glue,c_negative)
+ info = sometext(amount,l_glue,"trace:r")
else
- info = sometext(amount,l_glue,c_zero)
+ info = sometext(amount,l_glue,"trace:g")
end
+ elseif subtype == tabskip_code then
+ info = sometext(amount,l_glue,"trace:s")
elseif subtype == indentskip_code or subtype == correctionskip_code then
- info = sometext(amount,l_glue,c_indent)
+ info = sometext(amount,l_glue,"trace:s")
elseif subtype == leftskip_code then
- info = sometext(amount,l_glue,normalize and c_space or c_skip_a,false,true,stag)
+ info = sometext(amount,l_glue,"trace:y",false,true,stag)
elseif subtype == rightskip_code then
- info = sometext(amount,l_glue,normalize and c_space or c_skip_a,false,false,stag)
+ info = sometext(amount,l_glue,"trace:y",false,false,stag)
elseif subtype == lefthangskip_code then
- info = sometext(amount,l_glue,normalize and c_space or c_skip_b,false,true,stag)
+ info = sometext(amount,l_glue,"trace:y",false,true,stag)
elseif subtype == righthangskip_code then
- info = sometext(amount,l_glue,normalize and c_space or c_skip_b,false,false,stag)
+ info = sometext(amount,l_glue,"trace:y",false,false,stag)
elseif subtype == parfillleftskip_code then
- info = sometext(amount,l_glue,c_indent,false,true,stag)
+ info = sometext(amount,l_glue,"trace:s",false,true,stag)
elseif subtype == parfillrightskip_code then
- info = sometext(amount,l_glue,c_indent,false,false,stag)
+ info = sometext(amount,l_glue,"trace:s",false,false,stag)
+ elseif subtype == parinitleftskip_code then
+ info = sometext(amount,l_glue,"trace:s",false,true,stag)
+ elseif subtype == parinitrightskip_code then
+ info = sometext(amount,l_glue,"trace:s",false,false,stag)
else
- info = sometext(amount,l_glue,c_skip_b)
+ info = sometext(amount,l_glue,"trace:m")
end
- (vertical and g_cache_v or g_cache_h)[amount] = info
+ cache[amount] = info
end
- ::PICKIP::
- info = copy_list(info)
+ info = copylist(info)
if vertical then
info = vpack_nodes(info)
end
- head, current = insert_node_before(head,current,info)
+ head, current = insertnodebefore(head,current,info)
return head, getnext(current)
end
- -- ruledspace = function(head,current,parent)
- -- local subtype = getsubtype(current)
- -- if subtype == spaceskip_code or subtype == xspaceskip_code or subtype == zerospaceskip_code then
- -- local width = effectiveglue(current,parent)
- -- local amount = formatters["%s:%0.3f"](tags[subtype] or "HS",width*pt_factor)
- -- local info = g_cache_h[amount]
- -- if info then
- -- -- print("space hit")
- -- else
- -- info = sometext(amount,l_glue,c_space)
- -- g_cache_h[amount] = info
- -- end
- -- info = copy_list(info)
- -- head, current = insert_node_before(head,current,info)
- -- return head, getnext(current)
- -- else
- -- return head, current
- -- end
- -- end
-
local g_cache_s = caches["space"]
local g_cache_x = caches["xspace"]
ruledspace = function(head,current,parent)
local subtype = getsubtype(current)
- if subtype == spaceskip_code or subtype == xspaceskip_code or subtype == zerospaceskip_code then -- not yet all space
- local width = effectiveglue(current,parent)
- local info
- if subtype == spaceskip_code then
- info = g_cache_s[width]
- if not info then
- info = someblob("SP",l_glue,c_space,nil,width)
- g_cache_s[width] = info
- end
- else
- info = g_cache_x[width]
- if not info then
- info = someblob("XS",l_glue,c_space_x,nil,width)
- g_cache_x[width] = info
- end
+ local width = effectiveglue(current,parent)
+ local info
+ if subtype == spaceskip_code then
+ info = g_cache_s[width]
+ if not info then
+ info = someblob("SP",l_glue,"trace:y",nil,width)
+ g_cache_s[width] = info
end
- info = copy_list(info)
- head, current = insert_node_before(head,current,info)
- return head, getnext(current)
else
- return head, current
+ info = g_cache_x[width]
+ if not info then
+ info = someblob("XS",l_glue,"trace:m",nil,width)
+ g_cache_x[width] = info
+ end
+ end
+ info = copylist(info)
+ head, current = insertnodebefore(head,current,info)
+ return head, getnext(current)
+ end
+
+ -- we sometimes pass previous as we can have issues in math (not watertight for all)
+
+ local mathvalues = nodes.mathvalues
+
+ mathvalues[-1] = "left"
+ mathvalues[-2] = "right"
+
+ local morehack = setmetatableindex(function(t,k)
+ local v = mathematics.classnames[k] -- yet unknown
+ v = v and string.sub(v,1,3) or string.formatters["x%02x"](k)
+ t[k] = v
+ return v
+ end)
+
+ local temphack = setmetatableindex(function(t,k)
+ local v = mathvalues[k]
+ if v then
+ v = gsub(v,"spacing","") -- old, quads and so
+ else
+ v = k - 256
+ v = morehack[v//64] .. morehack[v%64]
end
+ t[k] = v
+ return v
+ end)
+
+ local g_cache_qd = caches["mathquad"]
+
+ ruledmathglue = function(head,current,parent)
+ local name = getfont(current)
+ local zero = iszeroglue(current)
+ local fixed = getprop(current,"fixedmathalign")
+ local color = false
+ local info = zero and g_cache_gz[name]
+ local quad = name == 0
+ local width = quad and effectiveglue(current,parent)
+ if not info then
+ if quad then
+ info = g_cache_qd[width]
+ color = "trace:z"
+ elseif fixed then
+ info = g_cache_gf[name]
+ color = "trace:dr"
+ else
+ info = g_cache_gn[name]
+ color = "trace:z"
+ end
+ end
+ if not info then
+ local amount = quad and f_amount("QUAD",width*pt_factor) or temphack[name]
+ -- local amount = quad and f_amount("QD",width*pt_factor) or temphack[name]
+ local text = hpack_string(amount,usedfont)
+ local rule = new_rule(emwidth/fraction,2*exheight,(zero and 4.25 or 2.75)*exheight)
+ local list = getlist(text)
+ setlistcolor(list,color)
+ setcolor(rule,color)
+ setlisttransparency(list,color)
+ settransparency(rule,color)
+ setshift(text,(zero and 3.5 or 2)*exheight)
+ info = new_hlist(setlink(rule,text))
+ setattr(info,a_layer,l_glue)
+ if quad then
+ g_cache_qd[width] = info
+ elseif fixed then
+ g_cache_gf[name] = info
+ else
+ g_cache_gn[name] = info
+ end
+ end
+ return insertnodebefore(head,current,copylist(info))
end
end
local ruledkern do
- local k_cache_v = caches["vkern"]
- local k_cache_h = caches["hkern"]
+ local v_cache = caches["vkern"]
+ local h_cache = caches["hkern"]
- ruledkern = function(head,current,vertical,mk)
+ ruledkern = function(head,current,vertical)
local kern = getkern(current)
- local cache = vertical and k_cache_v or k_cache_h
+ local cache = vertical and v_cache or h_cache
local info = cache[kern]
if not info then
- local amount = formatters["%s:%0.3f"](vertical and "VK" or (mk and "MK") or "HK",kern*pt_factor)
+ local amount = formatters["%s:%0.3f"](vertical and "VK" or "HK",kern*pt_factor)
if kern > 0 then
- info = sometext(amount,l_kern,c_positive)
+ info = sometext(amount,l_kern,"trace:b")
elseif kern < 0 then
- info = sometext(amount,l_kern,c_negative)
+ info = sometext(amount,l_kern,"trace:r")
else
- info = sometext(amount,l_kern,c_zero)
+ info = sometext(amount,l_kern,"trace:g")
end
cache[kern] = info
end
- info = copy_list(info)
+ info = copylist(info)
if vertical then
info = vpack_nodes(info)
end
- head, current = insert_node_before(head,current,info)
+ head, current = insertnodebefore(head,current,info)
return head, getnext(current)
end
end
+local ruledstrut do
+
+ local strut_size = 65536 * 8 / 10
+ local strut_code = nodes.rulecodes.strut
+ local math_code = nodes.nodecodes.math
+ local traverseid = nuts.traverseid
+ local rangedimensions = nuts.rangedimensions
+ local a_mathaxis = attributes.private("mathaxis")
+
+ ruledstrut = function(head,current,parent)
+ if getwidth(current) == 0 then
+ if getsubtype(current) == strut_code then
+ local w = strut_size
+ local a = getattr(current,a_mathaxis)
+ setattr(current,a_layer,l_strut)
+ if a then
+ local p = getprev(current)
+ local b, e
+ for n in traverseid(math_code,current) do
+ e = n
+ break
+ end
+ for n in traverseid(math_code,current,true) do
+ b = n
+ break
+ end
+ if not b then
+ b = head
+ end
+ if not e then
+ e = nuts.tail(b)
+ end
+ w = rangedimensions(parent,b,e)
+ setwidth(current,w)
+ setcolor(current,"trace:ds")
+ settransparency(current,"trace:ds")
+ head, current, rule = nuts.remove(head,current)
+ local kern = new_kern(-w)
+ if a == 2 then
+ head = insertnodebefore(head,e,kern)
+ head = insertnodebefore(head,e,rule)
+ else
+ insertnodeafter(head,b,kern)
+ insertnodeafter(head,b,rule)
+ end
+ current = p
+ else
+ setwidth(current,w)
+ head, current = insertnodeafter(head,current,new_kern(-w))
+ end
+ end
+ end
+ return head, current
+ end
+
+end
+
local ruleditalic do
local i_cache = caches["italic"]
@@ -1158,16 +1464,16 @@ local ruleditalic do
if not info then
local amount = formatters["%s:%0.3f"]("IC",kern*pt_factor)
if kern > 0 then
- info = sometext(amount,l_kern,c_positive)
+ info = sometext(amount,l_kern,"trace:b")
elseif kern < 0 then
- info = sometext(amount,l_kern,c_negative)
+ info = sometext(amount,l_kern,"trace:r")
else
- info = sometext(amount,l_kern,c_zero)
+ info = sometext(amount,l_kern,"trace:g")
end
i_cache[kern] = info
end
- info = copy_list(info)
- head, current = insert_node_before(head,current,info)
+ info = copylist(info)
+ head, current = insertnodebefore(head,current,info)
return head, getnext(current)
end
@@ -1175,49 +1481,54 @@ end
local ruledmarginkern do
- local m_cache = caches["marginkern"]
+ local l_cache = caches["leftmarginkern"]
+ local r_cache = caches["rightmarginkern"]
- ruledmarginkern = function(head,current)
- local kern = getkern(current)
- local info = m_cache[kern]
+ ruledmarginkern = function(head,current,subtype)
+ local kern = getkern(current)
+ local left = subtype == leftmarginkern_code
+ local cache = left and l_cache or r_cache
+ local info = cache[kern]
if not info then
- local amount = formatters["%s:%0.3f"]("MK",kern*pt_factor)
+ local amount = formatters["%s:%0.3f"](left and "ML" or "MR",kern*pt_factor)
if kern > 0 then
- info = sometext(amount,l_marginkern,c_positive)
+ info = sometext(amount,l_marginkern,"trace:b")
elseif kern < 0 then
- info = sometext(amount,l_marginkern,c_negative)
+ info = sometext(amount,l_marginkern,"trace:r")
else
- info = sometext(amount,l_marginkern,c_zero)
+ info = sometext(amount,l_marginkern,"trace:g")
end
- m_cache[kern] = info
+ cache[kern] = info
end
- info = copy_list(info)
- head, current = insert_node_before(head,current,info)
+ info = copylist(info)
+ head, current = insertnodebefore(head,current,info)
return head, getnext(current)
end
end
-local ruledmathlistkern do
+local ruledmathkern do
- local l_cache = caches["mathlistkern"]
+ local h_cache = caches["horizontalmathkern"]
+ local v_cache = caches["verticalmathkern"]
- ruledmathlistkern = function(head,current)
- local kern = getkern(current)
- local info = l_cache[kern]
+ ruledmathkern = function(head,current,vertical)
+ local kern = getkern(current)
+ local cache = vertical and v_cache or h_cache
+ local info = cache[kern]
if not info then
- local amount = formatters["%s:%0.3f"]("LK",kern*pt_factor)
+ local amount = formatters["%s:%0.3f"](vertical and "MV" or "MH",kern*pt_factor)
if kern > 0 then
- info = sometext(amount,l_mathlistkern,c_positive)
+ info = sometext(amount,l_mathkern,"trace:b")
elseif kern < 0 then
- info = sometext(amount,l_mathlistkern,c_negative)
+ info = sometext(amount,l_mathkern,"trace:r")
else
- info = sometext(amount,l_mathlistkern,c_zero)
+ info = sometext(amount,l_mathkern,"trace:g")
end
- l_cache[kern] = info
+ cache[kern] = info
end
- info = copy_list(info)
- head, current = insert_node_before(head,current,info)
+ info = copylist(info)
+ head, current = insertnodebefore(head,current,info)
return head, getnext(current)
end
@@ -1233,13 +1544,13 @@ local ruleddiscretionary do
local rule = new_rule(4*emwidth/fraction,4*exheight,exheight)
local kern = new_kern(-2*emwidth/fraction)
setlink(kern,rule)
- setcolor(rule,c_discretionary_d)
- settransparency(rule,c_discretionary_d)
+ setcolor(rule,"trace:dd")
+ settransparency(rule,"trace:dd")
setattr(rule,a_layer,l_discretionary)
d = new_hlist(kern)
d_cache[true] = d
end
- insert_node_after(head,current,copy_list(d))
+ insertnodeafter(head,current,copylist(d))
return head, current
end
@@ -1249,78 +1560,141 @@ local ruledpenalty do
local p_cache_v = caches["vpenalty"]
local p_cache_h = caches["hpenalty"]
+ local p_cache_m = caches["mpenalty"]
local raisepenalties = false
- local getpenalty = nuts.getpenalty
+ ----- getpenalty = nuts.getpenalty
+ local pre_penalty_code = nodes.penaltycodes.mathprepenalty
+ local post_penalty_code = nodes.penaltycodes.mathpostpenalty
directives.register("visualizers.raisepenalties",function(v) raisepenalties = v end)
- ruledpenalty = function(head,current,vertical)
+ ruledpenalty = function(head,current,vertical,subtype)
local penalty = getpenalty(current)
- local info = (vertical and p_cache_v or p_cache_h)[penalty]
+ local ismath = subtype == pre_penalty_code or subtype == post_penalty_code or subtype == true
+ local cache = (ismath and p_cache_m) or (vertical and p_cache_v) or p_cache_h
+ local info = cache[penalty]
if info then
-- print("penalty hit")
else
- local amount = formatters["%s:%s"](vertical and "VP" or "HP",penalty)
- if penalty > 0 then
- info = sometext(amount,l_penalty,c_positive)
+ local amount = formatters["%s:%s"]((ismath and "MP") or (vertical and "VP") or "HP",penalty)
+ if ismath then
+ info = sometext(amount,l_penalty,"trace:s")
+ elseif penalty > 0 then
+ info = sometext(amount,l_penalty,"trace:b")
elseif penalty < 0 then
- info = sometext(amount,l_penalty,c_negative)
+ info = sometext(amount,l_penalty,"trace:r")
else
- info = sometext(amount,l_penalty,c_zero)
+ info = sometext(amount,l_penalty,"trace:g")
end
- (vertical and p_cache_v or p_cache_h)[penalty] = info
+ cache[penalty] = info
end
- info = copy_list(info)
+ info = copylist(info)
if vertical then
info = vpack_nodes(info)
+ elseif ismath then
+ setshift(info, 65536*4)
elseif raisepenalties then
setshift(info,-65536*4)
end
- head, current = insert_node_before(head,current,info)
+ head, current = insertnodebefore(head,current,info)
return head, getnext(current)
end
end
+local ruledmath do
+
+ local mathcodes = nodes.mathcodes
+ local m_cache = {
+ beginmath = caches["bmath"],
+ endmath = caches["emath"],
+ }
+ local tags = {
+ beginmath = "B",
+ endmath = "E",
+ }
+
+ ruledmath = function(head,current)
+ local what = getsubtype(current)
+ local tag = mathcodes[what]
+ local skip = getkern(current) + getwidth(current) -- surround
+ local info = m_cache[tag][skip]
+ if info then
+ -- print("hit math")
+ else
+ local text, width = sometext(formatters["M:%s"](tag and tags[tag] or what),usedfont,nil,"trace:dr")
+ local rule = new_rule(skip,-655360/fraction,2*655360/fraction)
+ local dist = tag == "beginmath" and width or skip
+ setcolor(rule,"trace:dr")
+ settransparency(rule,"trace:dr")
+ setattr(rule,a_layer,l_math)
+ info = new_hlist(setlink(new_glue(-skip),rule,new_glue(-dist),text))
+ setattr(info,a_layer,l_math)
+ m_cache[tag][skip] = info
+ end
+ local saved = current
+ head, current = insertnodeafter(head,current,copylist(info))
+ if getpenalty(saved) ~= 0 then
+ head, current = ruledpenalty(head,saved,false,true)
+ end
+ return head, current
+ end
+
+end
+
do
- local disc_code = nodecodes.disc
- local kern_code = nodecodes.kern
- local glyph_code = nodecodes.glyph
- local glue_code = nodecodes.glue
- local penalty_code = nodecodes.penalty
- local whatsit_code = nodecodes.whatsit
- local user_code = nodecodes.user
- local math_code = nodecodes.math
- local hlist_code = nodecodes.hlist
- local vlist_code = nodecodes.vlist
- local marginkern_code = nodecodes.marginkern
- local mathlistkern_code = nodecodes.mathlistkern
- local dir_code = nodecodes.dir
- local par_code = nodecodes.par
-
- local kerncodes = nodes.kerncodes
- local fontkern_code = kerncodes.fontkern
- local italickern_code = kerncodes.italiccorrection
- local leftmarginkern_code = kerncodes.leftmarginkern
- local rightmarginkern_code = kerncodes.rightmarginkern
- local mathlistkern_code = kerncodes.mathlistkern
- ----- userkern_code = kerncodes.userkern
-
- local listcodes = nodes.listcodes
- local linelist_code = listcodes.line
-
- local vtop_package_state = 3 -- todo: symbolic
-
- local getleader = nuts.getleader
- local getdisc = nuts.getdisc
-
- local setleader = nuts.setleader
- local setdisc = nuts.setdisc
-
- local cache
+ local nodecodes = nodes.nodecodes
+ local disc_code = nodecodes.disc
+ local kern_code = nodecodes.kern
+ local glyph_code = nodecodes.glyph
+ local glue_code = nodecodes.glue
+ local penalty_code = nodecodes.penalty
+ local whatsit_code = nodecodes.whatsit
+ local user_code = nodecodes.user
+ local math_code = nodecodes.math
+ local hlist_code = nodecodes.hlist
+ local vlist_code = nodecodes.vlist
+ local dir_code = nodecodes.dir
+ local par_code = nodecodes.par
+ local mark_code = nodecodes.mark
+ local insert_code = nodecodes.insert
+ local rule_code = nodecodes.rule
+ local boundary_code = nodecodes.boundary
+
+ local kerncodes = nodes.kerncodes
+ local fontkern_code = kerncodes.fontkern
+ local italickern_code = kerncodes.italiccorrection
+ local leftmarginkern_code = kerncodes.leftmarginkern
+ local rightmarginkern_code = kerncodes.rightmarginkern
+ local mathshapekern_code = kerncodes.mathshapekern
+ local horizontalmathkern_code = kerncodes.horizontalmathkern
+ local verticalmathkern_code = kerncodes.verticalmathkern
+ ----- userkern_code = kerncodes.userkern
+
+ local skipcodes = nodes.skipcodes
+ local spaceskip_code = skipcodes.spaceskip
+ local xspaceskip_code = skipcodes.xspaceskip
+ local zerospaceskip_code = skipcodes.zerospaceskip
+ local intermathskip_code = skipcodes.intermathskip
+
+ local listcodes = nodes.listcodes
+ local linelist_code = listcodes.line
+ local rowlist_code = listcodes.alignment
+
+ local vtop_package_state = 3 -- todo: symbolic
+ local dbox_package_state = 4 -- todo: symbolic
+
+ local getleader = nuts.getleader
+ local getdisc = nuts.getdisc
+
+ local setleader = nuts.setleader
+ local setdisc = nuts.setdisc
+ local hpack = nuts.hpack
+
+ -- local cache
local function visualize(head,vertical,forced,parent)
local trace_hbox = false
@@ -1336,6 +1710,8 @@ do
local trace_simple = false
local trace_user = false
local trace_math = false
+ local trace_mathkern = false
+ local trace_marginkern = false
local trace_italic = false
local trace_origin = false
local trace_discretionary = false
@@ -1345,25 +1721,25 @@ do
local trace_depth = false
local trace_dir = false
local trace_par = false
+ local trace_mathglue = false
+ local trace_mark = false
+ local trace_insert = false
+ local trace_boundary = false
local current = head
local previous = nil
local attr = unsetvalue
local prev_trace_fontkern = nil
local prev_trace_italic = nil
- local prev_trace_marginkern = nil
--- local prev_trace_mathlist = nil
local prev_trace_expansion = nil
while current do
local id = getid(current)
local a = forced or getattr(current,a_visual) or unsetvalue
- local subtype
+ local subtype, content
if a ~= attr then
- prev_trace_fontkern = trace_fontkern
- prev_trace_italic = trace_italic
- prev_trace_marginkern = trace_marginkern
--- prev_trace_mathlistkern = trace_mathlistkern
- prev_trace_expansion = trace_expansion
+ prev_trace_fontkern = trace_fontkern
+ prev_trace_italic = trace_italic
+ prev_trace_expansion = trace_expansion
attr = a
if a == unsetvalue then
trace_hbox = false
@@ -1387,52 +1763,61 @@ do
trace_space = false
trace_depth = false
trace_marginkern = false
- trace_mathlistkern = false
+ trace_mathkern = false
trace_dir = false
trace_par = false
+ trace_mathglue = false
+ trace_mark = false
+ trace_insert = false
+ trace_boundary = false
if id == kern_code then
goto kern
else
goto list
end
- else -- dead slow:
+ else -- we need them to be booleans
-- cache[a]()
- trace_hbox = band(a,0x000001) ~= 0
- trace_vbox = band(a,0x000002) ~= 0
- trace_vtop = band(a,0x000004) ~= 0
- trace_kern = band(a,0x000008) ~= 0
- trace_glue = band(a,0x000010) ~= 0
- trace_penalty = band(a,0x000020) ~= 0
- trace_fontkern = band(a,0x000040) ~= 0
- trace_strut = band(a,0x000080) ~= 0
- trace_whatsit = band(a,0x000100) ~= 0
- trace_glyph = band(a,0x000200) ~= 0
- trace_simple = band(a,0x000400) ~= 0
- trace_user = band(a,0x000800) ~= 0
- trace_math = band(a,0x001000) ~= 0
- trace_italic = band(a,0x002000) ~= 0
- trace_origin = band(a,0x004000) ~= 0
- trace_discretionary = band(a,0x008000) ~= 0
- trace_expansion = band(a,0x010000) ~= 0
- trace_line = band(a,0x020000) ~= 0
- trace_space = band(a,0x040000) ~= 0
- trace_depth = band(a,0x080000) ~= 0
- trace_marginkern = band(a,0x100000) ~= 0
- trace_mathlistkern = band(a,0x200000) ~= 0
- trace_dir = band(a,0x400000) ~= 0
- trace_par = band(a,0x800000) ~= 0
+ trace_hbox = a & 0x0000001 ~= 0
+ trace_vbox = a & 0x0000002 ~= 0
+ trace_vtop = a & 0x0000004 ~= 0
+ trace_kern = a & 0x0000008 ~= 0
+ trace_glue = a & 0x0000010 ~= 0
+ trace_penalty = a & 0x0000020 ~= 0
+ trace_fontkern = a & 0x0000040 ~= 0
+ trace_strut = a & 0x0000080 ~= 0
+ trace_whatsit = a & 0x0000100 ~= 0
+ trace_glyph = a & 0x0000200 ~= 0
+ trace_simple = a & 0x0000400 ~= 0
+ trace_user = a & 0x0000800 ~= 0
+ trace_math = a & 0x0001000 ~= 0
+ trace_italic = a & 0x0002000 ~= 0
+ trace_origin = a & 0x0004000 ~= 0
+ trace_discretionary = a & 0x0008000 ~= 0
+ trace_expansion = a & 0x0010000 ~= 0
+ trace_line = a & 0x0020000 ~= 0
+ trace_space = a & 0x0040000 ~= 0
+ trace_depth = a & 0x0080000 ~= 0
+ trace_marginkern = a & 0x0100000 ~= 0
+ trace_mathkern = a & 0x0200000 ~= 0
+ trace_dir = a & 0x0400000 ~= 0
+ trace_par = a & 0x0800000 ~= 0
+ trace_mathglue = a & 0x1000000 ~= 0
+ trace_mark = a & 0x2000000 ~= 0
+ trace_insert = a & 0x4000000 ~= 0
+ trace_boundary = a & 0x8000000 ~= 0
end
elseif a == unsetvalue then
goto list
end
- if trace_strut then
- setattr(current,a_layer,l_strut)
- elseif id == glyph_code then
+ -- if trace_strut then
+ -- setattr(current,a_layer,l_strut)
+ -- else
+ if id == glyph_code then
if trace_glyph then
head, current = ruledglyph(head,current,previous)
end
if trace_expansion then
- head, current = glyphexpansion(head,current)
+ head, current = ruledglyphexpansion(head,current)
end
elseif id == disc_code then
if trace_discretionary then
@@ -1452,43 +1837,70 @@ do
elseif id == kern_code then
goto kern
elseif id == glue_code then
- local content = getleader(current)
- if content then
- setleader(current,visualize(content,false,nil,parent))
- elseif trace_glue then
- head, current = ruledglue(head,current,vertical,parent)
- elseif trace_space then
- head, current = ruledspace(head,current,parent)
- end
+ goto glue
elseif id == penalty_code then
if trace_penalty then
- head, current = ruledpenalty(head,current,vertical)
+ subtype = getsubtype(current)
+ head, current = ruledpenalty(head,current,vertical,subtype)
end
elseif id == hlist_code or id == vlist_code then
goto list
+ elseif id == rule_code then
+ if trace_strut then
+ head, current = ruledstrut(head,current,parent)
+ end
elseif id == whatsit_code then
if trace_whatsit then
- head, current = whatsit(head,current)
+ head, current = ruledwhatsit(head,current)
end
elseif id == user_code then
if trace_user then
- head, current = user(head,current)
+ head, current = ruleduser(head,current)
end
elseif id == math_code then
+ local saved = current
if trace_math then
- head, current = math(head,current)
- end
- elseif id == marginkern_code then
- if trace_kern then
- head, current = ruledkern(head,current,vertical,true)
+ head, current = ruledmath(head,current)
end
elseif id == dir_code then
if trace_dir then
- head, current = dir(head,current)
+ head, current = ruleddir(head,current)
end
elseif id == par_code then
if trace_par then
- head, current = par(head,current)
+ head, current = ruledpar(head,current)
+ end
+ elseif id == mark_code then
+ if trace_mark then
+ head, current = ruledmark(head,current)
+ end
+ elseif id == insert_code then
+ if trace_insert then
+ head, current = ruledinsert(head,current)
+ end
+ elseif id == boundary_code then
+ if trace_boundary then
+ head, current = ruledboundary(head,current)
+ end
+ end
+ goto next
+ ::glue::
+ content = getleader(current)
+ if content then
+ -- setleader(current,hpack(visualize(content,false,nil,parent)))
+ setleader(current,visualize(content,false,nil,parent))
+ elseif trace_glue then
+ head, current = ruledglue(head,current,vertical,parent)
+ else
+ subtype = getsubtype(current)
+ if subtype == spaceskip_code or subtype == xspaceskip_code or subtype == zerospaceskip_code then -- not yet all space
+ if trace_space then
+ head, current = ruledspace(head,current,parent)
+ end
+ elseif subtype == intermathskip_code then
+ if trace_math or trace_mathglue then
+ head = ruledmathglue(head,current,parent)
+ end
end
end
goto next
@@ -1508,16 +1920,26 @@ do
head, current = ruleditalic(head,current)
end
elseif subtype == leftmarginkern_code or subtype == rightmarginkern_code then
- if trace_marginkern or prev_trace_marginkern then
+ if trace_marginkern then
head, current = marginkern(head,current)
elseif trace_kern then
- head, current = ruledmarginkern(head,current)
+ head, current = ruledmarginkern(head,current,subtype)
+ end
+ elseif subtype == verticalmathkern_code then
+ if trace_mathkern or trace_kern then
+ head, current = ruledmathkern(head,current,true)
+ end
+ elseif subtype == horizontalmathkern_code then
+ if trace_mathkern then
+ head, current = mathkern(head,current)
+ elseif trace_kern then
+ head, current = ruledmathkern(head,current,false)
end
- elseif subtype == mathlistkern_code then
- if trace_mathlist then -- or prev_trace_mathlist then
- head, current = mathlistkern(head,current)
+ elseif subtype == mathshapekern_code then
+ if trace_mathkern or trace_italic then
+ head, current = mathshapekern(head,current)
elseif trace_kern then
- head, current = ruledmathlistkern(head,current)
+ head, current = ruledmathkern(head,current,false)
end
else
if trace_kern then
@@ -1534,21 +1956,26 @@ do
if trace_depth then
ruleddepth(current)
end
- if trace_line and getsubtype(current) == linelist_code then
+ if trace_line and (getsubtype(current) == linelist_code or getsubtype(current) == rowlist_code) then
head, current = ruledbox(head,current,false,l_line,"L__",trace_simple,previous,trace_origin,parent)
elseif trace_hbox then
head, current = ruledbox(head,current,false,l_hbox,"H__",trace_simple,previous,trace_origin,parent)
end
elseif id == vlist_code then
local content = getlist(current)
- local isvtop = getstate(current) == vtop_package_state
+ local state = getstate(current)
+ local isvtop = state == vtop_package_state
+ local isdbox = state == dbox_package_state
local tag = nil
local layer = nil
if content then
setlist(current,visualize(content,true,nil,current))
end
if trace_vtop then
- if isvtop then
+ if isdbox then
+ tag = "_D_"
+ layer = l_vtop
+ elseif isvtop then
tag = "_T_"
layer = l_vtop
elseif trace_vbox then
@@ -1556,7 +1983,10 @@ do
layer = l_vbox
end
elseif trace_vbox then
- if not isvtop then
+ if isdbox then
+ tag = "_D_"
+ layer = l_vtop
+ elseif not isvtop then
tag = "__V"
layer = l_vbox
end
@@ -1575,7 +2005,7 @@ do
local function cleanup()
for tag, cache in next, caches do
for k, v in next, cache do
- flush_node_list(v)
+ flushnodelist(v)
end
end
cleanup = function()
@@ -1614,6 +2044,7 @@ end
do
+ local nodecodes = nodes.nodecodes
local hlist_code = nodecodes.hlist
local vlist_code = nodecodes.vlist
local nextnode = nuts.traversers.node
@@ -1682,7 +2113,7 @@ do
actions = { setvisual, context }
}
- implement {
+ implement {
name = "setvisuallayer",
arguments = "string",
actions = visualizers.setlayer
@@ -1736,10 +2167,10 @@ do
local cache = caches[name]
local layer = layers[name]
if not textcolor then
- textcolor = c_text_d
+ textcolor = "trace:ds"
end
if not rulecolor then
- rulecolor = c_origin_d
+ rulecolor = "trace:do"
end
return function(str)
if not str then
diff --git a/Master/texmf-dist/tex/context/base/mkxl/trac-vis.mkxl b/Master/texmf-dist/tex/context/base/mkxl/trac-vis.mkxl
index dd69e0bb8d3..ec51ad4b059 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/trac-vis.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/trac-vis.mkxl
@@ -32,13 +32,13 @@
\writestatus{loading}{ConTeXt Tracing Macros / Visualization}
-\registerctxluafile{trac-vis}{autosuffix,optimize}
-
\unprotect
\newconstant\c_syst_visualizers_state
\newtoks \t_syst_visualizers_optimize
+\registerctxluafile{trac-vis}{autosuffix}
+
% \definesystemattribute[visual][public,global] % already defined
% no, but can become an option:
@@ -53,20 +53,37 @@
\aliased\let\syst_visualizers_hbox \hbox
\aliased\let\syst_visualizers_vbox \vbox
\aliased\let\syst_visualizers_vtop \vtop
+\aliased\let\syst_visualizers_dbox \dbox
\aliased\let\syst_visualizers_vcenter\vcenter
\aliased\let\syst_visualizers_hpack \hpack
\aliased\let\syst_visualizers_vpack \vpack
\aliased\let\syst_visualizers_tpack \tpack
-
-\permanent\protected\def\ruledhbox {\syst_visualizers_hbox attr \visualattribute \clf_getvisual{simplehbox} }
-\permanent\protected\def\ruledhpack {\syst_visualizers_hpack attr \visualattribute \clf_getvisual{simplehbox} }
-\permanent\protected\def\ruledvbox {\syst_visualizers_vbox attr \visualattribute \clf_getvisual{simplevbox} }
-\permanent\protected\def\ruledvpack {\syst_visualizers_vpack attr \visualattribute \clf_getvisual{simplevbox} }
-\permanent\protected\def\ruledvtop {\syst_visualizers_vtop attr \visualattribute \clf_getvisual{simplevtop} }
-\permanent\protected\def\ruledtpack {\syst_visualizers_tpack attr \visualattribute \clf_getvisual{simplevtop} }
-\permanent\protected\def\ruledvcenter{\syst_visualizers_vcenter attr \visualattribute \clf_getvisual{simplevbox} }
+\aliased\let\syst_visualizers_dpack \dpack
+\aliased\let\syst_visualizers_vsplit \vsplit
+\aliased\let\syst_visualizers_tsplit \tsplit
+\aliased\let\syst_visualizers_dsplit \dsplit
+
+\permanent\protected\def\ruledhbox {\syst_visualizers_hbox \s!attr \visualattribute \clf_getvisual{simplehbox} }
+\permanent\protected\def\ruledhpack {\syst_visualizers_hpack \s!attr \visualattribute \clf_getvisual{simplehbox} }
+\permanent\protected\def\ruledvbox {\syst_visualizers_vbox \s!attr \visualattribute \clf_getvisual{simplevbox} }
+\permanent\protected\def\ruledvpack {\syst_visualizers_vpack \s!attr \visualattribute \clf_getvisual{simplevbox} }
+\permanent\protected\def\ruledvtop {\syst_visualizers_vtop \s!attr \visualattribute \clf_getvisual{simplevtop} }
+\permanent\protected\def\ruledtpack {\syst_visualizers_tpack \s!attr \visualattribute \clf_getvisual{simplevtop} }
+\permanent\protected\def\ruleddbox {\syst_visualizers_dbox \s!attr \visualattribute \clf_getvisual{simplevtop} }
+\permanent\protected\def\ruleddpack {\syst_visualizers_dpack \s!attr \visualattribute \clf_getvisual{simplevtop} }
+\permanent\protected\def\ruledvcenter{\syst_visualizers_vcenter \s!attr \visualattribute \clf_getvisual{simplevbox} }
\permanent\protected\def\ruledmbox #1{\ruledhbox{\startimath#1\stopimath}}
+\mutable\integerdef\c_syst_visualizer\zerocount
+
+\permanent\protected\def\ruledvsplit{\afterassignment\syst_visualizers_v_split\integerdef\c_syst_visualizer}
+\permanent\protected\def\ruledtsplit{\afterassignment\syst_visualizers_t_split\integerdef\c_syst_visualizer}
+\permanent\protected\def\ruleddsplit{\afterassignment\syst_visualizers_d_split\integerdef\c_syst_visualizer}
+
+\permanent\protected\def\syst_visualizers_v_split{\syst_visualizers_vsplit\c_syst_visualizer \s!attr \visualattribute \clf_getvisual {simplevbox}}
+\permanent\protected\def\syst_visualizers_t_split{\syst_visualizers_tsplit\c_syst_visualizer \s!attr \visualattribute \clf_getvisual {simplevtop}}
+\permanent\protected\def\syst_visualizers_d_split{\syst_visualizers_dsplit\c_syst_visualizer \s!attr \visualattribute \clf_getvisual {simplevtop}}
+
\appendtoks
\ifcase\c_syst_visualizers_state\else
\syst_visualizers_speedup
@@ -80,7 +97,7 @@
\def\syst_visualizers_speedup{\the\t_syst_visualizers_optimize}
-\appendtoks
+% \appendtoks
% \enforced\global\protected\edef\ruledhbox {\syst_visualizers_hbox attr \visualattribute \number\clf_getvisual{simplehbox} }
% \enforced\global\protected\edef\ruledhpack {\syst_visualizers_hpack attr \visualattribute \number\clf_getvisual{simplehbox} }
% \enforced\global\protected\edef\ruledvbox {\syst_visualizers_vbox attr \visualattribute \number\clf_getvisual{simplevbox} }
@@ -88,7 +105,7 @@
% \enforced\global\protected\edef\ruledvtop {\syst_visualizers_vtop attr \visualattribute \number\clf_getvisual{simplevtop} }
% \enforced\global\protected\edef\ruledtpack {\syst_visualizers_tpack attr \visualattribute \number\clf_getvisual{simplevtop} }
% \enforced\global\protected\edef\ruledvcenter{\syst_visualizers_vcenter attr \visualattribute \number\clf_getvisual{simplevbox} }
-\to \t_syst_visualizers_optimize
+% \to \t_syst_visualizers_optimize
\permanent\tolerant\protected\def\showmakeup[#1]%
{\ifarguments
@@ -105,6 +122,8 @@
\permanent\protected\def\showglyphdata {\showglyphs\showfontkerns\showfontitalics}
\permanent\protected\def\showfontexpansion{\clf_setvisual{expansion}}
+% lmmonoltcond10regular 4pt
+
\permanent\tolerant\protected\def\setvisualizerfont[#1]% somename at 4pt
{\begingroup
\iftok{#1}\emptytoks
@@ -115,6 +134,14 @@
\clf_setvisualfont\fontid\font
\endgroup}
+\def\syst_v_p_indeed#1%
+ {\setbox\scratchbox\hpack{\visualizerfont#1}}
+
+\def\syst_v_p
+ {\definefrozenfont[visualizerfont][lmmonoltcond10regular @ 4pt]%
+ \let\syst_v_p\syst_v_p_indeed
+ \syst_v_p_indeed}
+
\permanent\protected\def\resetvisualizers
{\c_attr_visual\attributeunsetvalue}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/type-imp-bengali.mkxl b/Master/texmf-dist/tex/context/base/mkxl/type-imp-bengali.mkxl
new file mode 100644
index 00000000000..84a0b6402f0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/type-imp-bengali.mkxl
@@ -0,0 +1,73 @@
+%D \module
+%D [ file=type-imp-bengali,
+%D version=2022.02.02,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Bengali,
+%D author=śrīrāma (Sreeram),
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescriptcollection[bengali]
+
+ \doifunknownfontfeature {bengali-bold-30} {\definefontfeature[bengali-bold-30][boldened-30]}
+
+ % Symbolic names for fonts:
+
+ \starttypescript [\s!serif] [murty-bangla]
+ \definefontsynonym [MurtyBengali-Regular] [\s!name:murtybanglaregular] [\s!features=bengali-two]
+ \definefontsynonym [MurtyBengali-Bold] [\s!name:murtybanglaregular] [\s!features={bengali-two,bengali-bold-30}]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-da, baloo-da-extrabold]
+ \definefontsynonym [BalooDa2-Regular] [\s!name:balooda2regular] [\s!features=bengali-two]
+ \definefontsynonym [BalooDa2-Medium] [\s!name:balooda2medium] [\s!features=bengali-two]
+ \definefontsynonym [BalooDa2-Semibold] [\s!name:balooda2semibold] [\s!features=bengali-two]
+ \definefontsynonym [BalooDa2-Bold] [\s!name:balooda2bold] [\s!features=bengali-two]
+ \definefontsynonym [BalooDa2-Extrabold] [\s!name:balooda2extrabold] [\s!features=bengali-two]
+ \stoptypescript
+
+ % Grouping of styles:
+
+ \starttypescript [\s!sans] [baloo-da] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooDa2-Regular]
+ \definefontsynonym [\s!SansSlanted] [BalooDa2-Medium]
+ \definefontsynonym [\s!SansBold] [BalooDa2-Bold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooDa2-Semibold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-da-extrabold] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooDa2-Medium]
+ \definefontsynonym [\s!SansSlanted] [BalooDa2-Semibold]
+ \definefontsynonym [\s!SansBold] [BalooDa2-Extrabold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooDa2-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [murty-bangla] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [MurtyBengali-Regular]
+ \definefontsynonym [\s!SerifBold] [MurtyBengali-Bold]
+ \stoptypescript
+
+ % Typefaces:
+
+ \starttypescript [baloo-da, baloo-da-extrabold]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default] [\s!rscale=1.1]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [murty-bangla]
+ \definetypeface [murty-bangla] [\s!rm] [\s!serif] [murty-bangla] [\s!default] [\s!rscale=1.1]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/base/mkxl/type-imp-braille.mkxl b/Master/texmf-dist/tex/context/base/mkxl/type-imp-braille.mkxl
new file mode 100644
index 00000000000..17209d50c17
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/type-imp-braille.mkxl
@@ -0,0 +1,88 @@
+%D \module
+%D [ file=type-imp-vraille,
+%D version=2021.11.17,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Braille (using Dejavu fonts),
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\continuewhenlmtxmode
+
+%D There is no need to waste money on a commercial braille font if we have dejavu. After
+%D all it's just dots. We also don't need features.
+
+\registerctxluafile{font-imp-braille}{autosuffix}
+
+% todo : not fallback, just replace directly .. special case anyway .. now inefficient and slow
+
+\starttypescriptcollection[braille]
+
+ \doifunknownfontfeature {dejavu-math-bold} {\definefontfeature[dejavu-math-bold][boldened]}
+
+ \definefontfeature[brailletext] [braille=text] % no ligatures, no kerning etc
+ \definefontfeature[braillemath] [braille=math] % no ligatures, no kerning etc
+ \definefontfeature[serifbraille] [features=none] % no ligatures, no kerning etc
+ \definefontfeature[sansbraille] [features=none] % no ligatures, no kerning etc
+ \definefontfeature[monobraille] [features=none] % no ligatures, no kerning etc
+ \definefontfeature[mathbraille] [features=none] % [compactmath=yes] % no ssty so compact anyway
+
+ % Maybe some day sans and mono will also have braille but it doesn't really matter because we
+ % don't really need sans and for mono we only need the fixed spacing.
+
+ \definefontfallback[BrailleMono] [\s!name:dejavuserif*brailletext][0x0000-0x1FFFF][force=yes]
+ \definefontfallback[BrailleSerif][\s!name:dejavuserif*brailletext][0x0000-0x1FFFF][force=yes]
+ \definefontfallback[BrailleSans] [\s!name:dejavuserif*brailletext][0x0000-0x1FFFF][force=yes]
+ %\definefontfallback[BrailleMath] [\s!name:dejavuserif*braillemath][0x0000-0x1FFFF][force=yes]
+
+ \definefontfallback[BrailleMonoBold] [\s!name:dejavuserifbold*brailletext][0x0000-0x1FFFF][force=yes]
+ \definefontfallback[BrailleSerifBold][\s!name:dejavuserifbold*brailletext][0x0000-0x1FFFF][force=yes]
+ \definefontfallback[BrailleSansBold] [\s!name:dejavuserifbold*brailletext][0x0000-0x1FFFF][force=yes]
+
+ \starttypescript [\s!serif] [braille] [\s!name]
+ \definefontsynonym [\s!Serif] [\s!name:dejavuserif] [\s!features=serifbraille,\s!fallbacks=BrailleSerif]
+ \definefontsynonym [\s!SerifBold] [\s!name:dejavuserifbold][\s!features=serifbraille,\s!fallbacks=BrailleSerifBold]
+ \definefontsynonym [\s!SerifItalic] [\s!Serif]
+ \definefontsynonym [\s!SerifBoldItalic] [\s!SerifBold]
+ \definefontsynonym [\s!SerifSlanted] [\s!Serif]
+ \definefontsynonym [\s!SerifBoldSlanted][\s!SerifBold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [braille] [\s!name]
+ \definefontsynonym [\s!Sans] [\s!name:dejavusans] [\s!features=sansbraille,\s!fallbacks=BrailleSans]
+ \definefontsynonym [\s!SansBold] [\s!name:dejavusansbold][\s!features=sansbraille,\s!fallbacks=BrailleSansBold]
+ \definefontsynonym [\s!SansItalic] [\s!Sans]
+ \definefontsynonym [\s!SansBoldItalic] [\s!SansBold]
+ \definefontsynonym [\s!SansSlanted] [\s!Sans]
+ \definefontsynonym [\s!SansBoldSlanted][\s!SansBold]
+ \stoptypescript
+
+ \starttypescript [\s!mono] [braille] [\s!name]
+ \definefontsynonym [\s!Mono] [\s!name:dejavusansmono] [\s!features=monobraille,\s!fallbacks=BrailleMono]
+ \definefontsynonym [\s!MonoBold] [\s!name:dejavusansmonobold][\s!features=monobraille,\s!fallbacks=BrailleMonoBold]
+ \definefontsynonym [\s!MonoItalic] [\s!Mono]
+ \definefontsynonym [\s!MonoBoldItalic] [\s!MonoBold]
+ \definefontsynonym [\s!MonoSlanted] [\s!Mono]
+ \definefontsynonym [\s!MonoBoldSlanted][\s!MonoBold]
+ \stoptypescript
+
+ \starttypescript [\s!math][braille] [\s!name]
+ \loadfontgoodies[dejavu-math]
+ %\definefontsynonym[\s!MathRoman] [\s!file:texgyredejavu-math][\s!features={mathbraille,\s!math\mathsizesuffix},\s!fallbacks=BrailleMath]
+ %\definefontsynonym[\s!MathRomanBold][\s!file:texgyredejavu-math][\s!features={mathbraille,\s!math\mathsizesuffix,dejavu-math-bold},\s!fallbacks=BrailleMath]
+ \definefontsynonym[\s!MathRoman] [\s!file:texgyredejavu-math][\s!features={braillemath,\s!math\mathsizesuffix},\s!goodies=dejavu-math]
+ \definefontsynonym[\s!MathRomanBold][\s!file:texgyredejavu-math][\s!features={braillemath,\s!math\mathsizesuffix,dejavu-math-bold},\s!goodies=dejavu-math]
+ \stoptypescript
+
+ \starttypescript[braille]
+ \definetypeface [braille] [\s!rm] [\s!serif] [braille] [\s!default]
+ \definetypeface [braille] [\s!ss] [\s!sans] [braille] [\s!default]
+ \definetypeface [braille] [\s!tt] [\s!mono] [braille] [\s!default]
+ \definetypeface [braille] [\s!mm] [\s!math] [braille] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/base/mkxl/type-imp-devanagari.mkxl b/Master/texmf-dist/tex/context/base/mkxl/type-imp-devanagari.mkxl
new file mode 100644
index 00000000000..4fb082094eb
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/type-imp-devanagari.mkxl
@@ -0,0 +1,244 @@
+%D \module
+%D [ file=type-imp-devanagari,
+%D version=2022.02.02,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Devanagari,
+%D author=śrīrāma (Sreeram),
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This collection uses rscaling so that the fonts can be used alongside.
+
+\starttypescriptcollection[devanagari]
+
+ \definefontfeature
+ [shobhikafeatures]
+ [devanagari-two]
+ [goodies=shobhika.lfg,
+ indic={movematra=auto,conjuncts=quit},
+ sanitizer=dev2rkrf]
+
+ \definefontfeature
+ [baloofeatures]
+ [shobhikafeatures]
+
+ \definefontfeature
+ [amitafeatures]
+ [devanagari-two]
+ [goodies=shobhika.lfg,
+ sanitizer=dev2rkrf]
+
+ \definefontfeature
+ [jainifeatures]
+ [shobhikafeatures]
+ [\s!ss01=yes,ss05=yes]
+
+ \definefontfeature
+ [adishilafeatures]
+ [devanagari-one]
+ [indic={movematra=auto,conjuncts=quit}]
+
+ % Symbolic names for fonts:
+
+ \starttypescript [\s!serif] [adishila]
+ \definefontsynonym [Adishila-Regular] [\s!name:adishilaregular] [\s!features=adishilafeatures]
+ \definefontsynonym [Adishila-Bold] [\s!name:adishilabold] [\s!features=adishilafeatures]
+ \definefontsynonym [Adishila-Italic] [\s!name:adishilaitalic] [\s!features=adishilafeatures]
+ \definefontsynonym [Adishila-BoldItalic] [\s!name:adishilabolditalic] [\s!features=adishilafeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-semibold]
+ \definefontsynonym [AdishilaSemibold-Regular] [\s!name:adishilasemiboldregular] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaSemibold-Italic] [\s!name:adishilasemibolditalic] [\s!features=adishilafeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-heavy]
+ \definefontsynonym [AdishilaHeavy-Regular] [\s!name:adishilaheavyregular] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaHeavy-Italic] [\s!name:adishilaheavyitalic] [\s!features=adishilafeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-dev]
+ \definefontsynonym [AdishilaDev-Regular] [\s!name:adishiladevregular] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaDev-Bold] [\s!name:adishiladevbold] [\s!features=adishilafeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-dev-guru]
+ \definefontsynonym [AdishilaDev-Guru] [\s!name:adishiladevguru] [\s!features=adishilafeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-san]
+ \definefontsynonym [AdishilaSan-Regular] [\s!name:adishilasanregular] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaSan-Bold] [\s!name:adishilasanbold] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaSan-Italic] [\s!name:adishilasanitalic] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaSan-BoldItalic] [\s!name:adishilasanbolditalic] [\s!features=adishilafeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-san-letterpress]
+ \definefontsynonym [AdishilaSanLetterpress-Regular] [\s!name:adishilasanletterpressregular] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaSanLetterpress-Bold] [\s!name:adishilasanletterpressbold] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaSanLetterpress-Italic] [\s!name:adishilasanletterpressitalic] [\s!features=adishilafeatures]
+ \definefontsynonym [AdishilaSanLetterpress-BoldItalic] [\s!name:adishilasanletterpressbolditalic] [\s!features=adishilafeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [shobhika]
+ \definefontsynonym [Shobhika-Regular] [\s!name:shobhikaregular] [\s!features=shobhikafeatures]
+ \definefontsynonym [Shobhika-Bold] [\s!name:shobhikabold] [\s!features=shobhikafeatures]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo,baloo-extrabold]
+ \definefontsynonym [Baloo2-Regular] [\s!name:baloo2regular] [\s!features=baloofeatures]
+ \definefontsynonym [Baloo2-Medium] [\s!name:baloo2medium] [\s!features=baloofeatures]
+ \definefontsynonym [Baloo2-Semibold] [\s!name:baloo2semibold] [\s!features=baloofeatures]
+ \definefontsynonym [Baloo2-Bold] [\s!name:baloo2bold] [\s!features=baloofeatures]
+ \definefontsynonym [Baloo2-Extrabold] [\s!name:baloo2extrabold] [\s!features=baloofeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [jaini]
+ \definefontsynonym [Jaini-Regular] [\s!name:jainiregular] [\s!features=jainifeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [jaini-purva]
+ \definefontsynonym [JainiPurva-Regular] [\s!name:jainipurvaregular] [\s!features=jainifeatures]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [amita]
+ \definefontsynonym [Amita-Regular] [\s!name:amitaregular] [\s!features=amitafeatures]
+ \definefontsynonym [Amita-Bold] [\s!name:amitabold] [\s!features=amitafeatures]
+ \stoptypescript
+
+ % Grouping of styles:
+
+ \starttypescript [\s!serif] [adishila] [\s!name]
+ \definefontsynonym [\s!Serif] [Adishila-Regular]
+ \definefontsynonym [\s!SerifBold] [Adishila-Bold]
+ \definefontsynonym [\s!SerifItalic] [Adishila-Italic]
+ \definefontsynonym [\s!SerifBoldItalic] [Adishila-BoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-semibold] [\s!name]
+ \definefontsynonym [\s!Serif] [AdishilaSemibold-Regular]
+ \definefontsynonym [\s!SerifItalic] [AdishilaSemibold-Italic]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-heavy] [\s!name]
+ \definefontsynonym [\s!Serif] [AdishilaHeavy-Regular]
+ \definefontsynonym [\s!SerifItalic] [AdishilaHeavy-Italic]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-dev] [\s!name]
+ \definefontsynonym [\s!Serif] [AdishilaDev-Regular]
+ \definefontsynonym [\s!SerifBold] [AdishilaDev-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-dev-guru] [\s!name]
+ \definefontsynonym [\s!Serif] [AdishilaDev-Guru]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-san] [\s!name]
+ \definefontsynonym [\s!Serif] [AdishilaSan-Regular]
+ \definefontsynonym [\s!SerifBold] [AdishilaSan-Bold]
+ \definefontsynonym [\s!SerifItalic] [AdishilaSan-Italic]
+ \definefontsynonym [\s!SerifBoldItalic] [AdishilaSan-BoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [adishila-san-letterpress] [\s!name]
+ \definefontsynonym [\s!Serif] [AdishilaSanLetterpress-Regular]
+ \definefontsynonym [\s!SerifBold] [AdishilaSanLetterpress-Bold]
+ \definefontsynonym [\s!SerifItalic] [AdishilaSanLetterpress-Italic]
+ \definefontsynonym [\s!SerifBoldItalic] [AdishilaSanLetterpress-BoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [shobhika] [\s!name]
+ \definefontsynonym [\s!Serif] [Shobhika-Regular]
+ \definefontsynonym [\s!SerifBold] [Shobhika-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo] [\s!name]
+ \definefontsynonym [\s!Sans] [Baloo2-Regular]
+ \definefontsynonym [\s!SansBold] [Baloo2-Bold]
+ \definefontsynonym [\s!SansItalic] [Baloo2-Medium]
+ \definefontsynonym [\s!SansBoldItalic] [Baloo2-Semibold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-extrabold] [\s!name]
+ \definefontsynonym [\s!Sans] [Baloo2-Medium]
+ \definefontsynonym [\s!SansItalic] [Baloo2-Semibold]
+ \definefontsynonym [\s!SansBoldItalic] [Baloo2-Bold]
+ \definefontsynonym [\s!SansBold] [Baloo2-Extrabold]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [jaini] [\s!name]
+ \definefontsynonym [\s!Serif] [Jaini-Regular]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [jaini-purva] [\s!name]
+ \definefontsynonym [\s!Serif] [JainiPurva-Regular]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [amita] [\s!name]
+ \definefontsynonym [\s!Serif] [Amita-Regular]
+ \definefontsynonym [\s!SerifBold] [Amita-Bold]
+ \stoptypescript
+
+ % Typefaces:
+
+ \starttypescript [adishila]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!rscale=1.42]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+ \starttypescript [adishila-semibold,adishila-heavy]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!rscale=1.46]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [adishila-dev]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!rscale=1.65]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [adishila-dev-guru,adishila-san,adishila-san-letterpress]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!rscale=1.62]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [shobhika]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [baloo,baloo-extrabold]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [jaini,jaini-purva]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!rscale=1.5]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [amita]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!rscale=1.2]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/base/mkxl/type-imp-euler.mkxl b/Master/texmf-dist/tex/context/base/mkxl/type-imp-euler.mkxl
new file mode 100644
index 00000000000..a2e066f6b36
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/type-imp-euler.mkxl
@@ -0,0 +1,71 @@
+%D \module
+%D [ file=type-otf,
+%D version=2007.07.30,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Euler,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% Instead of euler.otf we now use euler-math.otf which is a copy of the version
+% that Daniel Flipo maintains now. We will also make an euler-regular.otf for
+% text usage (which might have slighty different metrics then).
+
+\loadtypescriptfile[texgyre]
+\loadtypescriptfile[dejavu]
+
+\definefontfeature[pagellaovereuler][pagellaovereuler=yes]
+\definefontfeature[euleroverpagella][euleroverpagella=yes]
+
+\starttypescriptcollection[pagella-eulernova]
+
+ \starttypescript [\s!serif] [eulernova] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [\s!file:euler-math.otf] [\s!features=\s!default]
+ \stoptypescript
+
+ \starttypescript [\s!math] [eulernova] [\s!name]
+ \definefontsynonym [\s!MathRoman] [\s!file:euler-math.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=euler-math]
+ \stoptypescript
+
+ \starttypescript [pagella-eulernova]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [pagella] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default] [\s!rscale=0.9]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [eulernova] [\s!default]
+ \quittypescriptscanning
+ \stoptypescript
+
+ \starttypescript [eulernova]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [eulernova] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default] [\s!rscale=0.9]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [eulernova] [\s!default]
+ \quittypescriptscanning
+ \stoptypescript
+
+ \starttypescript [\s!math] [euleroverpagella] [\s!name]
+ \definefontsynonym [\s!MathRoman] [texgyrepagella-math] [\s!features={\s!math\mathsizesuffix,euleroverpagella,mathextra},\s!fallbacks=euleroverpagella,\s!goodies=pagella-math]
+ \stoptypescript
+
+ \starttypescript [\s!math] [pagellaovereuler] [\s!name]
+ \definefontsynonym [\s!MathRoman] [\s!file:euler-math.otf] [\s!features={\s!math\mathsizesuffix,pagellaovereuler,mathextra},\s!fallbacks=pagellaovereuler,\s!goodies=euler-math]
+ \stoptypescript
+
+ \starttypescript [pagella-with-euler,euleroverpagella]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [pagella] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default] [\s!rscale=0.9]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [euleroverpagella] [\s!default]
+ \quittypescriptscanning
+ \stoptypescript
+
+ \starttypescript [euler-with-pagella,pagellaovereuler]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [eulernova] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default] [\s!rscale=0.9]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [pagellaovereuler] [\s!default]
+ \quittypescriptscanning
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/base/mkxl/type-imp-gujarati.mkxl b/Master/texmf-dist/tex/context/base/mkxl/type-imp-gujarati.mkxl
new file mode 100644
index 00000000000..d7f3f707284
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/type-imp-gujarati.mkxl
@@ -0,0 +1,77 @@
+%D \module
+%D [ file=type-imp-gujarati,
+%D version=2022.02.02,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Gujarati,
+%D author=śrīrāma (Sreeram),
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescriptcollection[gujarati]
+
+ \definefontfeature
+ [baloobhaifeatures]
+ [gujarati-two]
+ [goodies=bhai.lfg,
+ indic={movematra=auto,conjuncts=quit},
+ sanitizer=gjr2rkrf]
+
+ % Symbolic names for fonts:
+ \starttypescript [\s!serif] [noto-serif-gujarati]
+ \definefontsynonym [NotoSerifGujarati-Regular] [\s!name:notoserifgujaratiregular] [\s!features=baloobhaifeatures]
+ \definefontsynonym [NotoSerifGujarati-Bold] [\s!name:notoserifgujaratibold] [\s!features=baloobhaifeatures]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-bhai, baloo-bhai-extrabold]
+ \definefontsynonym [BalooBhai2-Regular] [\s!name:baloobhai2regular] [\s!features=baloobhaifeatures]
+ \definefontsynonym [BalooBhai2-Medium] [\s!name:baloobhai2medium] [\s!features=baloobhaifeatures]
+ \definefontsynonym [BalooBhai2-Semibold] [\s!name:baloobhai2semibold] [\s!features=baloobhaifeatures]
+ \definefontsynonym [BalooBhai2-Bold] [\s!name:baloobhai2bold] [\s!features=baloobhaifeatures]
+ \definefontsynonym [BalooBhai2-Extrabold] [\s!name:baloobhai2extrabold] [\s!features=baloobhaifeatures]
+ \stoptypescript
+
+ % Grouping of styles:
+
+ \starttypescript [\s!serif] [noto-serif-gujarati] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [NotoSerifGujarati-Regular]
+ \definefontsynonym [\s!SerifBold] [NotoSerifGujarati-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-bhai] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooBhai2-Regular]
+ \definefontsynonym [\s!SansSlanted] [BalooBhai2-Medium]
+ \definefontsynonym [\s!SansBold] [BalooBhai2-Bold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooBhai2-Semibold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-bhai-extrabold] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooBhai2-Medium]
+ \definefontsynonym [\s!SansSlanted] [BalooBhai2-Semibold]
+ \definefontsynonym [\s!SansBold] [BalooBhai2-Extrabold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooBhai2-Bold]
+ \stoptypescript
+
+ % Typefaces:
+
+ \starttypescript [baloo-bhai, baloo-bhai-extrabold]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default] [\s!rscale=1.1]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [noto-serif-gujarati]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!rscale=1.1]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/base/mkxl/type-imp-indic.mkxl b/Master/texmf-dist/tex/context/base/mkxl/type-imp-indic.mkxl
new file mode 100644
index 00000000000..aeda0833768
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/type-imp-indic.mkxl
@@ -0,0 +1,800 @@
+%D \module
+%D [ file=type-imp-indic,
+%D version=2022.02.02,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=A Collection of Indic Fonts,
+%D author=Sreeram & Hans,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This file is a compation to the other indic typescript that evolved out
+%D of a series of experiments with fonts and extensive research by Sreeram
+%D with respect to them either or not supporting level one and level two
+%D features. When there are issues, just ask on the mailing list.
+
+\definefilesynonym [type-imp-adishila.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-adishila-semibold.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-adishila-heavy.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-adishila-dev.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-adishila-dev-guru.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-adishila-san.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-adishila-san-letterpress.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-shobhika.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-baloo-extrabold.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-baloo.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-jaini.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-jaini-purva.mkxl] [type-imp-devanagari.mkxl]
+\definefilesynonym [type-imp-amita.mkxl] [type-imp-devanagari.mkxl]
+
+\definefilesynonym [type-imp-rit-rachana.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-panmana.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-ezhuthu.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-karumbi.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-chilanka.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-anjali-oldlipi.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-dyuthi.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-tn-joy.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-tn-joy-extrabold.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-gayathri.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-gayathri-thin.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-manjari.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-manjari-thin.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-baloo-chettan.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-baloo-chettan-extrabold.mkxl] [type-imp-malayalam.mkxl]
+\definefilesynonym [type-imp-rit-sundar.mkxl] [type-imp-malayalam.mkxl]
+
+\definefilesynonym [type-imp-baloo-tammudu.mkxl] [type-imp-telugu.mkxl]
+\definefilesynonym [type-imp-baloo-tammudu-extrabold.mkxl] [type-imp-telugu.mkxl]
+\definefilesynonym [type-imp-murty-telugu.mkxl] [type-imp-telugu.mkxl]
+
+\definefilesynonym [type-imp-murty-kannada.mkxl] [type-imp-kannada.mkxl]
+
+\definefilesynonym [type-imp-baloo-thambi.mkxl] [type-imp-tamil.mkxl]
+\definefilesynonym [type-imp-baloo-thambi-extrabold.mkxl] [type-imp-tamil.mkxl]
+
+\definefilesynonym [type-imp-baloo-bhai.mkxl] [type-imp-gujarati.mkxl]
+\definefilesynonym [type-imp-baloo-bhai-extrabold.mkxl] [type-imp-gujarati.mkxl]
+\definefilesynonym [type-imp-noto-serif-gujarati.mkxl] [type-imp-gujarati.mkxl]
+
+\definefilesynonym [type-imp-baloo-da.mkxl] [type-imp-bengali.mkxl]
+\definefilesynonym [type-imp-baloo-da-extrabold.mkxl] [type-imp-bengali.mkxl]
+\definefilesynonym [type-imp-murty-bangla.mkxl] [type-imp-bengali.mkxl]
+
+\continueifinputfile{type-imp-indic.mkxl}
+
+% \usetypescriptfile[type-imp-indic]
+
+\usemodule[article-basics]
+
+\setupbodyfont
+ [pagella]
+
+\setuphead
+ [title]
+ [alternative=middle,
+ hidenumber=yes,
+ after={\blank[halfline]},
+ before={\blank[line]},
+ page=no,
+ style=\bfb]
+
+\definedescription
+ [fs]
+ [alternative=left,
+ title=yes,
+ width=3cm,
+ distance=0cm,
+ before=,
+ after=,
+ headstyle={\switchtobodyfont[pagella]}]
+
+\usetransliteration
+ [indic]
+
+\definetransliteration
+ [devatoiast]
+ [color=blue,
+ vector={deva to iast},
+ before=]
+
+\definetransliteration
+ [devatomlym]
+ [vector={deva to mlym}]
+
+\definetransliteration
+ [devatotlgu]
+ [vector={deva to tlgu}]
+
+\definetransliteration
+ [devatoknda]
+ [vector={deva to knda}]
+
+\definetransliteration
+ [devatogujr]
+ [vector={deva to gujr}]
+
+\definetransliteration
+ [devatobngl]
+ [vector={deva to bngl}]
+
+\definebuffer[words]
+\definebuffer[iastbuffer]
+
+\language[sa]
+
+\starttext
+
+\startbuffer[words]
+दंष्ट्रा श्रेयस्करी त्रेता विक्रेता तच्छ्री अङ्कित शृङ्गार क्व्य शार्ङ्ग निरृति
+क्रतुवित्त बर्हिस् प्रेप्सित अङ्घ्रि पङ्क्ति कर्त्तव्य कर्तव्य श्लाघ्यम्
+अवप्लुतम् युङ्क्ष्वा क्षेत्रज्ञ अग्निमीळे चँद्र हर्त्रे श्री आर्द्रं
+\stopbuffer
+
+\startbuffer
+\getbuffer[words]
+\stopbuffer
+
+
+% \startbuffer[iastbuffer]
+% \startdevatoiast[before=\blank,after=\blank]
+% \getbuffer
+% \stopdevatoiast
+% \stopbuffer
+%
+% \getbuffer[iastbuffer]
+
+%
+%
+% Devanagari
+%
+%
+\starttitle[title={Adishila}]
+ \start
+ \switchtobodyfont[adishila]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Italic}
+ {\it\getbuffer}
+ \stopfs
+ \startfs{Bold Italic}
+ {\bi\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Adishila Semibold}]
+ \start
+ \switchtobodyfont[adishila-semibold]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Italic}
+ {\it\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Adishila Heavy}]
+ \start
+ \switchtobodyfont[adishila-heavy]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Italic}
+ {\it\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Adishila Dev}]
+ \start
+ \switchtobodyfont[adishila-dev]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Adishila Dev}]
+ \start
+ \switchtobodyfont[adishila-dev-guru]
+ \startfs{Guru}
+ \getbuffer
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Adishila San}]
+ \start
+ \switchtobodyfont[adishila-san]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Italic}
+ {\it\getbuffer}
+ \stopfs
+ \startfs{Bold Italic}
+ {\bi\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Adishila San Letterpress}]
+ \start
+ \switchtobodyfont[adishila-san-letterpress]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Italic}
+ {\it\getbuffer}
+ \stopfs
+ \startfs{Bold Italic}
+ {\bi\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Shobhika}]
+ \start
+ \switchtobodyfont[shobhika]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Baloo 2 Extra Bold}]
+ \start
+ \switchtobodyfont[baloo-extrabold]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Italic}
+ {\it\getbuffer}
+ \stopfs
+ \startfs{Bold Italic}
+ {\bi\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Baloo 2}]
+ \start
+ \switchtobodyfont[baloo]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Italic}
+ {\it\getbuffer}
+ \stopfs
+ \startfs{Bold Italic}
+ {\bi\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Jaini}]
+ \start
+ \switchtobodyfont[jaini]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Jaini Purva}]
+ \start
+ \switchtobodyfont[jaini-purva]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Amita}]
+ \start
+ \switchtobodyfont[amita]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+%
+%
+% Malayalam
+%
+%
+\startbuffer
+\startdevatomlym
+\getbuffer[words]
+\stopdevatomlym
+\stopbuffer
+
+\starttitle[title={RIT Rachana}]
+ \start
+ \switchtobodyfont[rit-rachana]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Italic}
+ {\it\getbuffer}
+ \stopfs
+ \startfs{Bold Italic}
+ {\bi\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Panmana}]
+ \start
+ \switchtobodyfont[panmana]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Ezhuthu}]
+ \start
+ \switchtobodyfont[ezhuthu]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Slanted}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Bold Slanted}
+ {\bs\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Karumbi}]
+ \start
+ \switchtobodyfont[karumbi]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Chilanka}]
+ \start
+ \switchtobodyfont[chilanka]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Anjali Old Lipi}]
+ \start
+ \switchtobodyfont[anjali-oldlipi]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Dyuthi}]
+ \start
+ \switchtobodyfont[dyuthi]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={TN Joy}]
+ \start
+ \switchtobodyfont[tn-joy]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={TN Joy Extrabold}]
+ \start
+ \switchtobodyfont[tn-joy-extrabold]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Gayathri}]
+ \start
+ \switchtobodyfont[gayathri]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Gayathri Thin}]
+ \start
+ \switchtobodyfont[gayathri-thin]
+ \startfs{Thin (R)}
+ \getbuffer
+ \stopfs
+ \startfs{Bold*}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Manjari}]
+ \start
+ \switchtobodyfont[manjari]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Manjari Thin}]
+ \start
+ \switchtobodyfont[manjari-thin]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Baloo Chettan 2}]
+ \start
+ \switchtobodyfont[baloo-chettan]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Medium \type{\sl}}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Semibold \type{\bs}}
+ {\bs\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Baloo Chettan 2 Extrabold}]
+ \start
+ \switchtobodyfont[baloo-chettan-extrabold]
+ \startfs{Medium \type{\tf}}
+ \getbuffer
+ \stopfs
+ \startfs{Extrabold \type{\bf}}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Semibold \type{\sl}}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Bold \type{\bs}}
+ {\bs\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={RIT Sundar}]
+ \start
+ \switchtobodyfont[rit-sundar]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+%
+%
+% Telugu
+%
+%
+\startbuffer
+\startdevatotlgu
+\getbuffer[words]
+\stopdevatotlgu
+\stopbuffer
+
+\starttitle[title={Baloo Tammudu 2}]
+ \start
+ \switchtobodyfont[baloo-tammudu]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Slanted}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Bold Slanted}
+ {\bs\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Baloo Tammudu 2 Extrabold}]
+ \start
+ \switchtobodyfont[baloo-tammudu-extrabold]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Italic}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Bold Italic}
+ {\bs\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Murty Telugu}]
+ \start
+ \switchtobodyfont[murty-telugu]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Regular}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Regular}
+ {\bf\getbuffer}
+ \stopfs
+ \startfs{Regular}
+ {\bs\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+%
+%
+% Kannada
+%
+%
+\startbuffer
+\startdevatoknda
+\getbuffer[words]
+\stopdevatoknda
+\stopbuffer
+
+\starttitle[title={Murty Kannada}]
+ \start
+ \switchtobodyfont[murty-kannada]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Regular}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+%
+%
+% Tamil
+%
+%
+\start
+\language[ta]
+\startbuffer
+சிற்றமபலம் புயல் காற்று முன்னர் அதே எதெ அதை ஔவையார்
+தொடர்கதை கிழால்லி அழைப்பு வாயிலாக இயற்கை நுழைவாயில்
+இளமை காஞ்சி கச்சி இல்க்கியம் ஸ்ரீ
+\stopbuffer
+
+\starttitle[title={Baloo Thambi 2}]
+ \start
+ \switchtobodyfont[baloo-thambi]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{ஂMedium \type{\sl}}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Semibold \type{\bs}}
+ {\bs\getbuffer}
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Baloo Thambi 2 Extrabold}]
+ \start
+ \switchtobodyfont[baloo-thambi-extrabold]
+ \startfs{Medium}
+ \getbuffer
+ \stopfs
+ \startfs{Semibold \type{\sl}}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Bold \type{\bs}}
+ {\bs\getbuffer}
+ \stopfs
+ \startfs{Extrabold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+\stop
+%
+%
+% Gujarati
+%
+%
+\startbuffer
+\startdevatogujr
+\getbuffer[words]
+\stopdevatogujr
+\stopbuffer
+
+\starttitle[title={Baloo Bhai 2}]
+ \start
+ \switchtobodyfont[baloo-bhai]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{ஂMedium \type{\sl}}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Semibold \type{\bs}}
+ {\bs\getbuffer}
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Baloo Bhai 2 Extrabold}]
+ \start
+ \switchtobodyfont[baloo-bhai-extrabold]
+ \startfs{Medium}
+ \getbuffer
+ \stopfs
+ \startfs{Semibold \type{\sl}}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Bold \type{\bs}}
+ {\bs\getbuffer}
+ \stopfs
+ \startfs{Extrabold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Noto Serif Gujarati}]
+ \start
+ \switchtobodyfont[noto-serif-gujarati]
+ \startfs{Medium}
+ \getbuffer
+ \stopfs
+ \startfs{Extrabold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+%
+%
+% Bengali
+%
+%
+\startbuffer
+\startdevatobngl
+\getbuffer[words]
+\stopdevatobngl
+\stopbuffer
+
+\starttitle[title={Baloo Da 2}]
+ \start
+ \switchtobodyfont[baloo-da]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Medium \type{\sl}}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Semibold \type{\bs}}
+ {\bs\getbuffer}
+ \stopfs
+ \startfs{Bold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Baloo Da 2 Extrabold}]
+ \start
+ \switchtobodyfont[baloo-da-extrabold]
+ \startfs{Medium}
+ \getbuffer
+ \stopfs
+ \startfs{Semibold \type{\sl}}
+ {\sl\getbuffer}
+ \stopfs
+ \startfs{Bold \type{\bs}}
+ {\bs\getbuffer}
+ \stopfs
+ \startfs{Extrabold}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\starttitle[title={Murty Bengali}]
+ \start
+ \switchtobodyfont[murty-bangla]
+ \startfs{Regular}
+ \getbuffer
+ \stopfs
+ \startfs{Regular}
+ {\bf\getbuffer}
+ \stopfs
+ \stop
+\stoptitle
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkxl/type-imp-kannada.mkxl b/Master/texmf-dist/tex/context/base/mkxl/type-imp-kannada.mkxl
new file mode 100644
index 00000000000..4838075b2e6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/type-imp-kannada.mkxl
@@ -0,0 +1,73 @@
+%D \module
+%D [ file=type-imp-kannada,
+%D version=2022.01.27,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Dekannada,
+%D author=śrīrāma (Sreeram),
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescriptcollection[kannada]
+
+ \doifunknownfontfeature {kannada-bold-30} {\definefontfeature[kannada-bold-30][boldened-30]}
+
+ % Symbolic names for fonts:
+
+ \starttypescript [\s!serif] [murty-kannada]
+ \definefontsynonym [MurtyKannada-Regular] [\s!name:murtykannadaregular] [\s!features=kannada-two]
+ \definefontsynonym [MurtyKannada-Bold] [\s!name:murtykannadaregular] [\s!features={kannada-two,kannada-bold-30}]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-tamma, baloo-tamma-extrabold]
+ \definefontsynonym [BalooTamma2-Regular] [\s!name:balootamma2regular] [\s!features=kannada-two]
+ \definefontsynonym [BalooTamma2-Medium] [\s!name:balootamma2medium] [\s!features=kannada-two]
+ \definefontsynonym [BalooTamma2-Semibold] [\s!name:balootamma2semibold] [\s!features=kannada-two]
+ \definefontsynonym [BalooTamma2-Bold] [\s!name:balootamma2bold] [\s!features=kannada-two]
+ \definefontsynonym [BalooTamma2-Extrabold] [\s!name:balootamma2extrabold] [\s!features=kannada-two]
+ \stoptypescript
+
+ % Grouping of styles:
+
+ \starttypescript [\s!sans] [baloo-tamma] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooTamma2-Regular]
+ \definefontsynonym [\s!SansSlanted] [BalooTamma2-Medium]
+ \definefontsynonym [\s!SansBold] [BalooTamma2-Bold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooTamma2-Semibold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-tamma-extrabold] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooTamma2-Medium]
+ \definefontsynonym [\s!SansSlanted] [BalooTamma2-Semibold]
+ \definefontsynonym [\s!SansBold] [BalooTamma2-Extrabold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooTamma2-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [murty-kannada] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [MurtyKannada-Regular]
+ \definefontsynonym [\s!SerifBold] [MurtyKannada-Bold]
+ \stoptypescript
+
+ % Typefaces:
+
+ \starttypescript [baloo-tamma, baloo-tamma-extrabold]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [murty-kannada]
+ \definetypeface [murty-kannada] [\s!rm] [\s!serif] [murty-kannada] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/base/mkxl/type-imp-malayalam.mkxl b/Master/texmf-dist/tex/context/base/mkxl/type-imp-malayalam.mkxl
new file mode 100644
index 00000000000..67a35d47258
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/type-imp-malayalam.mkxl
@@ -0,0 +1,224 @@
+%D \module
+%D [ file=type-imp-malayam,
+%D version=2022.01.27,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Demalayalam,
+%D author=śrīrāma (Sreeram),
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This collection uses rscaling so that the fonts can be used alongside.
+
+\starttypescriptcollection[malayalam]
+
+ \doifunknownfontfeature {malayalam-bold-30} {\definefontfeature[malayalam-bold-30][boldened-30]}
+
+ % Symbolic names for fonts:
+
+ \starttypescript [\s!serif] [rit-rachana]
+ \definefontsynonym [RITRachana-Regular] [\s!name:ritrachanaregular] [\s!features=malayalam-two]
+ \definefontsynonym [RITRachana-Bold] [\s!name:ritrachanabold] [\s!features=malayalam-two]
+ \definefontsynonym [RITRachana-Italic] [\s!name:ritrachanaitalic] [\s!features=malayalam-two]
+ \definefontsynonym [RITRachana-BoldItalic] [\s!name:ritrachanabolditalic] [\s!features=malayalam-two]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [panmana]
+ \definefontsynonym [Panmana-Regular] [\s!name:panmanaregular] [\s!features=malayalam-two]
+ \definefontsynonym [Panmana-Bold] [\s!name:panmanaregular] [\s!features={malayalam-two,malayalam-bold-30}]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [rit-sundar]
+ \definefontsynonym [RITSundar-Regular] [\s!name:ritsundarbold] [\s!features=malayalam-two]
+ \definefontsynonym [RITSundar-Bold] [\s!name:ritsundarbold] [\s!features={malayalam-two,malayalam-bold-30}]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [tn-joy, tn-joy-extrabold]
+ \definefontsynonym [TNJoy-Regular] [\s!name:tnjoyregular] [\s!features=malayalam-two]
+ \definefontsynonym [TNJoy-Bold] [\s!name:tnjoybold] [\s!features=malayalam-two]
+ \definefontsynonym [TNJoy-Extrabold] [\s!name:tnjoyextrabold] [\s!features=malayalam-two]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [ezhuthu]
+ \definefontsynonym [Ezhuthu-Regular] [\s!name:ezhuthuregular] [\s!features=malayalam-two]
+ \definefontsynonym [Ezhuthu-Bold] [\s!name:ezhuthuregular] [\s!features={malayalam-two,malayalam-bold-30}]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-chettan,baloo-chettan-extrabold]
+ \definefontsynonym [BalooChettan2-Regular] [\s!name:baloochettan2regular] [\s!features=malayalam-two]
+ \definefontsynonym [BalooChettan2-Medium] [\s!name:baloochettan2medium] [\s!features=malayalam-two]
+ \definefontsynonym [BalooChettan2-Semibold] [\s!name:baloochettan2semibold] [\s!features=malayalam-two]
+ \definefontsynonym [BalooChettan2-Bold] [\s!name:baloochettan2bold] [\s!features=malayalam-two]
+ \definefontsynonym [BalooChettan2-Extrabold] [\s!name:baloochettan2extrabold] [\s!features=malayalam-two]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [gayathri, gayathri-thin]
+ \definefontsynonym [Gayathri-Regular] [\s!name:gayathriregular] [\s!features=malayalam-two]
+ \definefontsynonym [Gayathri-Bold] [\s!name:gayathribold] [\s!features=malayalam-two]
+ \definefontsynonym [Gayathri-Thin] [\s!name:gayathrithin] [\s!features=malayalam-two]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [manjari,manjari-thin]
+ \definefontsynonym [Manjari-Regular] [\s!name:manjariregular] [\s!features=malayalam-two]
+ \definefontsynonym [Manjari-Bold] [\s!name:manjaribold] [\s!features=malayalam-two]
+ \definefontsynonym [Manjari-Thin] [\s!name:manjarithin] [\s!features=malayalam-two]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [karumbi]
+ \definefontsynonym [Karumbi-Regular] [\s!name:karumbiregular] [\s!features=malayalam-two]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [chilanka]
+ \definefontsynonym [Chilanka-Regular] [\s!name:chilankaregular] [\s!features=malayalam-two]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [anjali-oldlipi]
+ \definefontsynonym [Anjali-Oldlipi-Regular] [\s!name:anjalioldlipiregular] [\s!features=malayalam-two]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [dyuthi]
+ \definefontsynonym [Dyuthi-Regular] [\s!name:dyuthiregular] [\s!features=malayalam-two]
+ \stoptypescript
+
+ % Grouping of styles:
+
+ \starttypescript [\s!serif] [rit-rachana] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [RITRachana-Regular]
+ \definefontsynonym [\s!SerifBold] [RITRachana-Bold]
+ \definefontsynonym [\s!SerifItalic] [RITRachana-Italic]
+ \definefontsynonym [\s!SerifBoldItalic] [RITRachana-BoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [panmana] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [Panmana-Regular]
+ \definefontsynonym [\s!SerifBold] [Panmana-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [rit-sundar] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [RITSundar-Regular]
+ \definefontsynonym [\s!SerifBold] [RITSundar-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [tn-joy] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [TNJoy-Regular]
+ \definefontsynonym [\s!SansBold] [TNJoy-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [tn-joy-extrabold] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [TNJoy-Bold]
+ \definefontsynonym [\s!SansBold] [TNJoy-Extrabold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [ezhuthu] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Ezhuthu-Regular]
+ \definefontsynonym [\s!SansBold] [Ezhuthu-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [karumbi] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Karumbi-Regular]
+ \definefontsynonym [\s!SansBold] [Karumbi-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [chilanka] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Chilanka-Regular]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [anjali-oldlipi] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Anjali-Oldlipi-Regular]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [dyuthi] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Dyuthi-Regular]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [gayathri] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Gayathri-Regular]
+ \definefontsynonym [\s!SansBold] [Gayathri-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [gayathri-thin] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Gayathri-Thin]
+ \definefontsynonym [\s!SansBold] [Gayathri-Regular]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [manjari] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans ] [Manjari-Regular]
+ \definefontsynonym [\s!SansBold] [Manjari-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [manjari-thin] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Manjari-Thin]
+ \definefontsynonym [\s!SansBold] [Manjari-Regular]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-chettan] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [BalooChettan2-Regular]
+ \definefontsynonym [\s!SansBold] [BalooChettan2-Bold]
+ \definefontsynonym [\s!SansSlanted] [BalooChettan2-Medium]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooChettan2-Semibold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-chettan-extrabold] [name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [BalooChettan2-Medium]
+ \definefontsynonym [\s!SansSlanted] [BalooChettan2-Semibold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooChettan2-Bold]
+ \definefontsynonym [\s!SansBold] [BalooChettan2-Extrabold]
+ \stoptypescript
+
+ % Typefaces:
+
+ \starttypescript [rit-rachana,rit-sundar,panmana]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!rscale=1.25]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [ezhuthu,karumbi,tn-joy,tn-joy-extrabold]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default] [\s!rscale=1.25]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [chilanka,anjali-oldlipi]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [dyuthi,gayathri,gayathri-thin,manjari,manjari-thin]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default] [\s!rscale=1.1]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [baloo-chettan,baloo-chettan-extrabold]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [baloo-chettan] [\s!default]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/base/mkxl/type-imp-tamil.mkxl b/Master/texmf-dist/tex/context/base/mkxl/type-imp-tamil.mkxl
new file mode 100644
index 00000000000..90516365efa
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/type-imp-tamil.mkxl
@@ -0,0 +1,53 @@
+%D \module
+%D [ file=type-imp-tamil,
+%D version=2022.02.02,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Tamil,
+%D author=śrīrāma (Sreeram),
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescriptcollection[tamil]
+
+ % Symbolic names for fonts:
+
+ \starttypescript [\s!sans] [baloo-thambi, baloo-thambi-extrabold]
+ \definefontsynonym [BalooThambi2-Regular] [\s!name:baloothambi2regular] [\s!features=tamil-two]
+ \definefontsynonym [BalooThambi2-Medium] [\s!name:baloothambi2medium] [\s!features=tamil-two]
+ \definefontsynonym [BalooThambi2-Semibold] [\s!name:baloothambi2semibold] [\s!features=tamil-two]
+ \definefontsynonym [BalooThambi2-Bold] [\s!name:baloothambi2bold] [\s!features=tamil-two]
+ \definefontsynonym [BalooThambi2-Extrabold] [\s!name:baloothambi2extrabold] [\s!features=tamil-two]
+ \stoptypescript
+
+ % Grouping of styles:
+
+ \starttypescript [\s!sans] [baloo-thambi] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooThambi2-Regular]
+ \definefontsynonym [\s!SansSlanted] [BalooThambi2-Medium]
+ \definefontsynonym [\s!SansBold] [BalooThambi2-Bold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooThambi2-Semibold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-thambi-extrabold] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooThambi2-Medium]
+ \definefontsynonym [\s!SansSlanted] [BalooThambi2-Semibold]
+ \definefontsynonym [\s!SansBold] [BalooThambi2-Extrabold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooThambi2-Bold]
+ \stoptypescript
+
+ % Typefaces:
+
+ \starttypescript [baloo-thambi, baloo-thambi-extrabold]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/base/mkxl/type-imp-telugu.mkxl b/Master/texmf-dist/tex/context/base/mkxl/type-imp-telugu.mkxl
new file mode 100644
index 00000000000..33d07664c75
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/type-imp-telugu.mkxl
@@ -0,0 +1,74 @@
+%D \module
+%D [ file=type-imp-telugu,
+%D version=2022.01.27,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Telugu,
+%D author=śrīrāma (Sreeram),
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescriptcollection[telugu]
+
+ \doifunknownfontfeature {telugu-bold-30} {\definefontfeature[telugu-bold-30][boldened-30]}
+ \doifunknownfontfeature {telugu-slant} {\definefontfeature[telugu-slant][slant=0.25]}
+
+ % Symbolic names for fonts:
+
+ \starttypescript [\s!serif] [murty-telugu]
+ \definefontsynonym [MurtyTelugu-Regular] [\s!name:murtyteluguregular] [\s!features=telugu-two]
+ \definefontsynonym [MurtyTelugu-Bold] [\s!name:murtyteluguregular] [\s!features={telugu-two,telugu-bold-30}]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-tammudu, baloo-tammudu-extrabold]
+ \definefontsynonym [BalooTammudu2-Regular] [\s!name:balootammudu2regular] [\s!features=telugu-two]
+ \definefontsynonym [BalooTammudu2-Medium] [\s!name:balootammudu2medium] [\s!features=telugu-two]
+ \definefontsynonym [BalooTammudu2-Semibold] [\s!name:balootammudu2semibold] [\s!features=telugu-two]
+ \definefontsynonym [BalooTammudu2-Bold] [\s!name:balootammudu2bold] [\s!features=telugu-two]
+ \definefontsynonym [BalooTammudu2-Extrabold] [\s!name:balootammudu2extrabold] [\s!features=telugu-two]
+ \stoptypescript
+
+ % Grouping of styles:
+
+ \starttypescript [\s!sans] [baloo-tammudu] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooTammudu2-Regular]
+ \definefontsynonym [\s!SansSlanted] [BalooTammudu2-Medium]
+ \definefontsynonym [\s!SansBold] [BalooTammudu2-Bold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooTammudu2-Semibold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [baloo-tammudu-extrabold] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Sans] [BalooTammudu2-Medium]
+ \definefontsynonym [\s!SansSlanted] [BalooTammudu2-Semibold]
+ \definefontsynonym [\s!SansBold] [BalooTammudu2-Extrabold]
+ \definefontsynonym [\s!SansBoldSlanted] [BalooTammudu2-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [murty-telugu] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [MurtyTelugu-Regular]
+ \definefontsynonym [\s!SerifBold] [MurtyTelugu-Bold]
+ \stoptypescript
+
+ % Typefaces:
+
+ \starttypescript [baloo-tammudu, baloo-tammudu-extrabold]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+ \starttypescript [murty-telugu]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [murty-telugu] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/base/mkxl/type-ini.mklx b/Master/texmf-dist/tex/context/base/mkxl/type-ini.mklx
index bba2d433b20..4842451e7e9 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/type-ini.mklx
+++ b/Master/texmf-dist/tex/context/base/mkxl/type-ini.mklx
@@ -27,7 +27,7 @@
\unprotect
-\newcount \c_font_typescripts_n_of_preloaded
+\newinteger \c_font_typescripts_n_of_preloaded
\newconditional\c_font_typescripts_quit
\newtoks \c_font_typescripts_document
\newconditional\c_font_typescripts_preload
@@ -39,29 +39,29 @@
\newtoks \everybeforedefinetypeface
\newtoks \everyafterdefinetypeface
-\mutable\let\typescriptfiles \empty
-\mutable\let\currenttypescripts\empty
-\mutable\let\currenttypefile \empty
+\mutable\lettonothing\typescriptfiles
+\mutable\lettonothing\currenttypescripts
+\mutable\lettonothing\currenttypefile
\installmacrostack\currenttypefile
-\mutable\let\typescriptone \empty % public, used in typescripts
-\mutable\let\typescripttwo \empty % public, used in typescripts
-\mutable\let\typescriptthree\empty % public, used in typescripts
+\mutable\lettonothing\typescriptone % public, used in typescripts
+\mutable\lettonothing\typescripttwo % public, used in typescripts
+\mutable\lettonothing\typescriptthree % public, used in typescripts
\installmacrostack\typescriptone
\installmacrostack\typescripttwo
\installmacrostack\typescriptthree
-\mutable\let\fontclassstyle \empty
+\mutable\lettonothing\fontclassstyle
\installmacrostack\fontclassstyle
-\let\m_font_typescripts_one \empty
-\let\m_font_typescripts_two \empty
-\let\m_font_typescripts_three\empty
-\let\m_font_typescripts_check\empty
-\let\m_font_typescripts_match\empty
+\lettonothing\m_font_typescripts_one
+\lettonothing\m_font_typescripts_two
+\lettonothing\m_font_typescripts_three
+\lettonothing\m_font_typescripts_check
+\lettonothing\m_font_typescripts_match
\installmacrostack\m_font_typescripts_one
\installmacrostack\m_font_typescripts_two
@@ -105,7 +105,7 @@
\permanent\protected\def\usetypescriptfile[#filename]%
{\ifcstok{#filename}\v!reset
- \let\typescriptfiles\empty
+ \lettonothing\typescriptfiles
\else
\splitfilename{#filename}%
\addtocommalist\splitoffbase\typescriptfiles
@@ -195,14 +195,14 @@
{\settrue\c_font_typescripts_quit} % public
\permanent\protected\def\font_typescripts_start_store#definitions\stoptypescript
- {\global\advance\c_font_typescripts_n_of_preloaded\plusone
+ {\global\advanceby\c_font_typescripts_n_of_preloaded\plusone
\gdefcsname\??typescriptcache\the\c_font_typescripts_n_of_preloaded\endcsname
{\starttypescript#definitions\stoptypescript}%
\gtoksapp\t_font_typescripts\expandafter
{\csname\??typescriptcache\the\c_font_typescripts_n_of_preloaded\endcsname}}
\permanent\protected\def\font_typescripts_collection_start_store#definitions\stoptypescriptcollection
- {\global\advance\c_font_typescripts_n_of_preloaded\plusone
+ {\global\advanceby\c_font_typescripts_n_of_preloaded\plusone
\gdefcsname\??typescriptcache\the\c_font_typescripts_n_of_preloaded\endcsname
{\starttypescriptcollection#definitions\stoptypescriptcollection}%
\gtoksapp\t_font_typescripts\expandafter
@@ -296,7 +296,7 @@
{\let\typescriptone \m_font_typescripts_one
\let\typescripttwo \m_font_typescripts_two
\let\typescriptthree\m_font_typescripts_three
- \let\m_font_typescripts_match\empty
+ \lettonothing\m_font_typescripts_match
\doifelsenextoptionalcs\font_typescripts_start_process_one\font_typescripts_start_process_all}
\def\font_typescripts_start_process_all % could be a \let
@@ -496,11 +496,11 @@
\def\font_typefaces_defining_start#name#style#settings%
{\let\m_ts_rscale \!!plusone % as we push/pop
- \let\m_ts_features \empty
- \let\m_ts_fallbacks \empty
- \let\m_ts_goodies \empty
- \let\m_ts_direction \empty
- \let\m_ts_designsize\empty
+ \lettonothing\m_ts_features
+ \lettonothing\m_ts_fallbacks
+ \lettonothing\m_ts_goodies
+ \lettonothing\m_ts_direction
+ \lettonothing\m_ts_designsize
\geteparameters[m_ts_][#settings]% todo raw ... no need for key interpretation
\push_macro_fontclass
\push_macro_fontclassstyle
diff --git a/Master/texmf-dist/tex/context/base/mkxl/type-set.mkxl b/Master/texmf-dist/tex/context/base/mkxl/type-set.mkxl
index 4a22b59a50a..5b83f287e48 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/type-set.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/type-set.mkxl
@@ -31,7 +31,7 @@
\loadfoundtypescriptfile\empty{type-lua.mkxl}
\loadfoundtypescriptfile\empty{type-siz.mkxl}
\loadfoundtypescriptfile\empty{type-fbk.mkxl}
- \loadfoundtypescriptfile\empty{type-imp-latinmodern.mkiv}
+ \loadfoundtypescriptfile\empty{type-imp-latinmodern.mkiv} % maybe no longer
% and not:
@@ -54,86 +54,130 @@
\usetypescriptfile[fbk]
\usetypescriptfile[lua]
\usetypescriptfile[siz]
- \usetypescriptfile[latinmodern]
+ \usetypescriptfile[latinmodern] % maybe no longer
\usetypescriptfile[loc]
\fi
-\definefilesynonym [type-imp-latin-modern.mkiv] [type-imp-latinmodern.mkiv]
-\definefilesynonym [type-imp-modern-latin.mkiv] [type-imp-modernlatin.mkiv]
-
-\definefilesynonym [type-imp-lucida.mkiv] [type-imp-lucida-typeone.mkiv]
-\definefilesynonym [type-imp-lucidaot.mkiv] [type-imp-lucida-opentype.mkiv]
-\definefilesynonym [type-imp-lucidadk.mkiv] [type-imp-lucida-opentype.mkiv]
-
-\definefilesynonym [type-imp-dejavu-condensed.mkiv] [type-imp-dejavu.mkiv]
-
-\definefilesynonym [type-imp-palatino.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-courier.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-avantgarde.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-helvetica.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-chancery.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-bookman.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-schoolbook.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-times.mkiv] [type-imp-texgyre.mkiv]
-
-\definefilesynonym [type-imp-cursor.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-adventor.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-heros.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-chorus.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-bonum.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-schola.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-pagella.mkiv] [type-imp-texgyre.mkiv]
-\definefilesynonym [type-imp-termes.mkiv] [type-imp-texgyre.mkiv]
-
-\definefilesynonym [type-imp-mscoretimes.mkiv] [type-imp-mscore.mkiv]
-\definefilesynonym [type-imp-mscorearial.mkiv] [type-imp-mscore.mkiv]
-\definefilesynonym [type-imp-mscorecourier.mkiv] [type-imp-mscore.mkiv]
-\definefilesynonym [type-imp-mscoreverdana.mkiv] [type-imp-mscore.mkiv]
-
-\definefilesynonym [type-imp-candara.mkiv] [type-imp-cleartype.mkiv]
-\definefilesynonym [type-imp-consolas.mkiv] [type-imp-cleartype.mkiv]
-\definefilesynonym [type-imp-constantia.mkiv] [type-imp-cleartype.mkiv]
-\definefilesynonym [type-imp-corbel.mkiv] [type-imp-cleartype.mkiv]
-\definefilesynonym [type-imp-calibri.mkiv] [type-imp-cleartype.mkiv]
-
-\definefilesynonym [type-imp-antykwa-poltawskiego.mkiv] [type-imp-antykwapoltawskiego.mkiv]
-
-%definefilesynonym [type-imp-mac.mkiv] [type-imp-osx.mkiv]
-%definefilesynonym [type-imp-win.mkiv] [type-imp-mscore.mkiv]
-
-\definefilesynonym [type-imp-eulernovum.mkiv] [type-imp-euler.mkiv]
-\definefilesynonym [type-imp-eulernova.mkiv] [type-imp-euler.mkiv]
-
-\definefilesynonym [type-imp-euler-with-pagella.mkiv] [type-imp-euler.mkiv]
-\definefilesynonym [type-imp-pagella-with-euler.mkiv] [type-imp-euler.mkiv]
-
-\definefilesynonym [type-imp-mdbch.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mdugm.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mdput.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mdici.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mdpgd.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mdpus.mkiv] [type-imp-mathdesign.mkiv]
-
-\definefilesynonym [type-imp-mathdesignch.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mathdesigngm.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mathdesignut.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mathdesignci.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mathdesigngd.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mathdesignus.mkiv] [type-imp-mathdesign.mkiv]
-
-\definefilesynonym [type-imp-mathdesigncharter.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mathdesigngaramond.mkiv] [type-imp-mathdesign.mkiv]
-\definefilesynonym [type-imp-mathdesignutopia.mkiv] [type-imp-mathdesign.mkiv]
-
-\definefilesynonym [type-imp-cows.mkiv] [type-imp-koeielettersot.mkiv]
-\definefilesynonym [type-imp-sheep.mkiv] [type-imp-koeielettersot.mkiv]
-\definefilesynonym [type-imp-coloredcows.mkiv] [type-imp-koeielettersot.mkiv]
-\definefilesynonym [type-imp-coloredsheep.mkiv] [type-imp-koeielettersot.mkiv]
-\definefilesynonym [type-imp-koeieletters.mkiv] [type-imp-koeielettersot.mkiv]
-
-\definefilesynonym [type-imp-stixtwo.mkiv] [type-imp-stix.mkiv]
-
-\definefilesynonym [type-imp-ibmplex.mkiv] [type-imp-plex.mkiv]
+\definefilesynonym [type-imp-modern.mkiv] [type-imp-latinmodern.mkiv]
+\definefilesynonym [type-imp-latin-modern.mkiv] [type-imp-latinmodern.mkiv]
+\definefilesynonym [type-imp-modern-latin.mkiv] [type-imp-modernlatin.mkiv]
+\definefilesynonym [type-imp-less-modern-latin.mkiv] [type-imp-modernlatin.mkiv]
+
+\definefilesynonym [type-imp-lucida-opentype.mkiv] [type-imp-lucida.mkiv]
+\definefilesynonym [type-imp-lucidaot.mkiv] [type-imp-lucida.mkiv]
+\definefilesynonym [type-imp-lucidadk.mkiv] [type-imp-lucida.mkiv]
+
+\definefilesynonym [type-imp-dejavu-condensed.mkiv] [type-imp-dejavu.mkiv]
+
+\definefilesynonym [type-imp-palatino.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-courier.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-avantgarde.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-helvetica.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-chancery.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-bookman.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-schoolbook.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-times.mkiv] [type-imp-texgyre.mkiv]
+
+\definefilesynonym [type-imp-cursor.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-adventor.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-heros.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-chorus.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-bonum.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-schola.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-pagella.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-termes.mkiv] [type-imp-texgyre.mkiv]
+
+\definefilesynonym [type-imp-mscoretimes.mkiv] [type-imp-mscore.mkiv]
+\definefilesynonym [type-imp-mscorearial.mkiv] [type-imp-mscore.mkiv]
+\definefilesynonym [type-imp-mscorecourier.mkiv] [type-imp-mscore.mkiv]
+\definefilesynonym [type-imp-mscoreverdana.mkiv] [type-imp-mscore.mkiv]
+
+\definefilesynonym [type-imp-candara.mkiv] [type-imp-cleartype.mkiv]
+\definefilesynonym [type-imp-consolas.mkiv] [type-imp-cleartype.mkiv]
+\definefilesynonym [type-imp-constantia.mkiv] [type-imp-cleartype.mkiv]
+\definefilesynonym [type-imp-corbel.mkiv] [type-imp-cleartype.mkiv]
+\definefilesynonym [type-imp-calibri.mkiv] [type-imp-cleartype.mkiv]
+
+%definefilesynonym [type-imp-mac.mkiv] [type-imp-osx.mkiv]
+%definefilesynonym [type-imp-win.mkiv] [type-imp-mscore.mkiv]
+
+\definefilesynonym [type-imp-eulernovum.mkiv] [type-imp-euler.mkiv]
+\definefilesynonym [type-imp-eulernova.mkiv] [type-imp-euler.mkiv]
+
+\definefilesynonym [type-imp-euler-with-pagella.mkiv] [type-imp-euler.mkiv]
+\definefilesynonym [type-imp-pagella-with-euler.mkiv] [type-imp-euler.mkiv]
+
+\definefilesynonym [type-imp-mdbch.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mdugm.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mdput.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mdici.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mdpgd.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mdpus.mkiv] [type-imp-mathdesign.mkiv]
+
+\definefilesynonym [type-imp-mathdesignch.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mathdesigngm.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mathdesignut.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mathdesignci.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mathdesigngd.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mathdesignus.mkiv] [type-imp-mathdesign.mkiv]
+
+\definefilesynonym [type-imp-mathdesigncharter.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mathdesigngaramond.mkiv] [type-imp-mathdesign.mkiv]
+\definefilesynonym [type-imp-mathdesignutopia.mkiv] [type-imp-mathdesign.mkiv]
+
+\definefilesynonym [type-imp-cows.mkiv] [type-imp-koeielettersot.mkiv]
+\definefilesynonym [type-imp-sheep.mkiv] [type-imp-koeielettersot.mkiv]
+\definefilesynonym [type-imp-coloredcows.mkiv] [type-imp-koeielettersot.mkiv]
+\definefilesynonym [type-imp-coloredsheep.mkiv] [type-imp-koeielettersot.mkiv]
+\definefilesynonym [type-imp-koeieletters.mkiv] [type-imp-koeielettersot.mkiv]
+
+\definefilesynonym [type-imp-xits.mkiv] [type-imp-stix.mkiv]
+\definefilesynonym [type-imp-stixtwo.mkiv] [type-imp-stix.mkiv]
+
+\definefilesynonym [type-imp-ibmplex.mkiv] [type-imp-plex.mkiv]
+
+\definefilesynonym [type-imp-newcomputermodern-book.mkiv] [type-imp-newcomputermodern.mkiv]
+
+\definefilesynonym [type-imp-kpfonts-light.mkiv] [type-imp-kpfonts.mkiv]
+\definefilesynonym [type-imp-kpfonts-bold.mkiv] [type-imp-kpfonts.mkiv]
+\definefilesynonym [type-imp-kpfonts-sans.mkiv] [type-imp-kpfonts.mkiv]
+
+\definefilesynonym [type-imp-gentiumplus.mkiv] [type-imp-gentium.mkiv]
+\definefilesynonym [type-imp-gentiumbook.mkiv] [type-imp-gentium.mkiv]
+
+%D These \type {*-nt} variants come in handy when we want top compare with non-tweaked math.
+
+\definefilesynonym [type-imp-bonum-nt.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-schola-nt.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-pagella-nt.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-termes-nt.mkiv] [type-imp-texgyre.mkiv]
+\definefilesynonym [type-imp-dejavu-nt.mkiv] [type-imp-dejavu.mkiv]
+\definefilesynonym [type-imp-cambria-nt.mkiv] [type-imp-cambria.mkiv]
+\definefilesynonym [type-imp-lucidaot-nt.mkiv] [type-imp-lucida-opentype.mkiv]
+\definefilesynonym [type-imp-lucida-nt.mkiv] [type-imp-lucida-opentype.mkiv]
+\definefilesynonym [type-imp-modern-nt.mkiv] [type-imp-latinmodern.mkiv]
+\definefilesynonym [type-imp-stix-nt.mkiv] [type-imp-stix.mkiv]
+\definefilesynonym [type-imp-stixtwo-nt.mkiv] [type-imp-stix.mkiv]
+\definefilesynonym [type-imp-libertinus-nt.mkiv] [type-imp-libertinus.mkiv]
+\definefilesynonym [type-imp-ebgaramond-nt.mkiv] [type-imp-ebgaramond.mkiv]
+\definefilesynonym [type-imp-erewhon-nt.mkiv] [type-imp-erewhon.mkiv]
+\definefilesynonym [type-imp-kpfonts-nt.mkiv] [type-imp-kpfonts.mkiv]
+\definefilesynonym [type-imp-concrete-nt.mkiv] [type-imp-concrete.mkiv]
+\definefilesynonym [type-imp-xcharter-nt.mkiv] [type-imp-xcharter.mkiv]
+
+\definefilesynonym [type-imp-antykwa-poltawskiego.mkiv] [type-imp-antykwapoltawskiego.mkiv]
+
+\definefilesynonym [type-imp-iwona-light.mkiv] [type-imp-iwona.mkiv]
+\definefilesynonym [type-imp-iwona-medium.mkiv] [type-imp-iwona.mkiv]
+\definefilesynonym [type-imp-iwona-heavy.mkiv] [type-imp-iwona.mkiv]
+
+\definefilesynonym [type-imp-kurier-light.mkiv] [type-imp-kurier.mkiv]
+\definefilesynonym [type-imp-kurier-medium.mkiv] [type-imp-kurier.mkiv]
+\definefilesynonym [type-imp-kurier-heavy.mkiv] [type-imp-kurier.mkiv]
+
+\definefilesynonym [type-imp-antykwa-light.mkiv] [type-imp-antykwa.mkiv]
+\definefilesynonym [type-imp-antykwa-cond.mkiv] [type-imp-antykwa.mkiv]
+\definefilesynonym [type-imp-antykwa-lightcond.mkiv] [type-imp-antykwa.mkiv]
\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-ada.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-ada.lmt
new file mode 100644
index 00000000000..37393ca77f7
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-ada.lmt
@@ -0,0 +1,172 @@
+if not modules then modules = { } end modules ['typo-adj'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to typo-adj.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local setdimen = tex.setdimen
+local isdimen = tex.isdimen
+local setmacro = tokens.setters.macro
+local expandmacro = token.expandmacro
+
+local nuts = nodes.nuts
+local getid = nuts.getid
+local getlist = nuts.getlist
+local getwhd = nuts.getwhd
+local getattr = nuts.getattr
+local getwidth = nuts.getwidth
+local setlist = nuts.setlist
+local setlink = nuts.setlink
+local setstate = nuts.setstate
+local setattr = nuts.setattr
+
+local hlist_code = nodes.nodecodes.hlist
+local vlist_code = nodes.nodecodes.vlist
+
+local getbox = nuts.getbox
+local takebox = nuts.takebox
+
+local new_kern = nuts.pool.kern
+
+local flattenleaders = nuts.flattenleaders
+local traverselist = nuts.traverselist
+local traverseleader = nuts.traverseleader
+
+local a_adaptive = attributes.private("adaptive")
+
+local registervalue = attributes.registervalue
+local getvalue = attributes.getvalue
+local hasvalues = attributes.hasvalues
+local texsetattribute = tex.setattribute
+
+local adaptive = nodes.adaptive or { }
+nodes.adaptive = adaptive
+local enabled = false
+
+local enableaction = nodes.tasks.enableaction
+
+local d_adaptive_width = isdimen("d_adaptive_width")
+local d_adaptive_height = isdimen("d_adaptive_height")
+local d_adaptive_depth = isdimen("d_adaptive_depth")
+local d_adaptive_line = isdimen("d_adaptive_line")
+
+function adaptive.set(settings)
+ if not enabled then
+ enableaction("vboxbuilders","nodes.adaptive.handlehorizontal")
+ enableaction("vboxhandlers","nodes.adaptive.handlevertical")
+ enabled = true
+ end
+ texsetattribute(a_adaptive,registervalue(a_adaptive,settings))
+end
+
+local function setadaptive(w,h,d,l,c)
+ setdimen(d_adaptive_width,w)
+ setdimen(d_adaptive_height,h)
+ setdimen(d_adaptive_depth,d)
+ setdimen(d_adaptive_line,l)
+ setmacro("m_adaptive_color",c)
+end
+
+local methods = {
+ -- overlay
+ [1] = function(settings,parent,list)
+ local setups = settings.setups
+ if setups and setups ~= "" then
+ local w, h, d = getwhd(parent)
+ setadaptive(w,h,d,settings.rulethickness,settings.color)
+ expandmacro("setup",true,setups)
+ local l = takebox("b_adaptive_box")
+ if l then
+ setlist(parent, setlink(l,new_kern(-getwidth(l)),list))
+ end
+ end
+ end
+}
+
+-- The hlist leaders get done before we enter vpacking, so that is where the
+-- first call kicks in. Then we do a vpack (so one can indeed also adapt the
+-- ht/dp). After packing we know the glue and do the vlist leaders.
+
+local function handlehorizontal(n)
+ if hasvalues(a_adaptive) then
+ for _, t, _, l in traverselist(n) do
+ if t == hlist_code then
+ for m, _, _, ll in traverseleader(l) do
+ local a = getattr(m,a_adaptive)
+ if a then
+ local settings = getvalue(a_adaptive,a)
+ if settings then
+ setstate(m,0)
+ local action = methods[settings.method or 1]
+ if action then
+ action(settings,m,ll)
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ return n
+end
+
+local function handlevertical(n)
+ if hasvalues(a_adaptive) then
+ -- not a list just a node
+ for nn, t, _, l in traverselist(n) do
+ if t == vlist_code then
+ for m, _, _, ll in traverseleader(l) do
+ local a = getattr(m,a_adaptive)
+ if a then
+ local settings = getvalue(a_adaptive,a)
+ if settings then
+ setstate(m,0)
+ local action = methods[settings.method or 1]
+ if action then
+ action(settings,m,ll)
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ return n
+end
+
+adaptive.handlehorizontal = handlehorizontal
+adaptive.handlevertical = handlevertical
+
+interfaces.implement {
+ name = "setadaptive",
+ actions = adaptive.set,
+ arguments = {
+ {
+ { "setups", "string" },
+ { "method", "integer" },
+ { "mp", "string" },
+ { "color", "string" },
+ { "rulethickness", "dimension" },
+ }
+ }
+}
+
+interfaces.implement {
+ name = "adaptivecheckbox",
+ arguments = "integer",
+ public = true,
+ protected = true,
+ actions = function(n)
+ local b = getbox(n)
+ if b and flattenleaders(b) > 0 then
+ if getid(b) == hlist_code then
+ handlehorizontal(b)
+ else
+ handlevertical(b)
+ end
+ end
+ end,
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-ada.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-ada.mkxl
new file mode 100644
index 00000000000..733b2ca5be0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-ada.mkxl
@@ -0,0 +1,218 @@
+%D \module
+%D [ file=typo-ada,
+%D version=2022.04.04,
+%D title=\CONTEXT\ Typesetting Macros,
+%D subtitle=Adaptive,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Typesetting Macros / Adaptive}
+
+% Musical timestamp: the postponed by COVID concert of Gazpacho in Zwolle NL: a joy
+% to see dedicated and talented musicians perform their work in perfection and as a
+% well balanced and equiped team.
+
+\unprotect
+
+\ifdefined\d_adaptive_width \else
+ \newdimension\d_adaptive_width
+ \newdimension\d_adaptive_height
+ \newdimension\d_adaptive_depth
+ \newdimension\d_adaptive_line
+ \newdimension\d_adaptive_hsize
+ \newbox \b_adaptive_box
+\fi
+
+\aliasdimension\usedadaptivewidth \d_adaptive_width
+\aliasdimension\usedadaptiveheight\d_adaptive_height
+\aliasdimension\usedadaptivedepth \d_adaptive_depth
+\aliasdimension\usedadaptiveline \d_adaptive_line
+\aliasdimension\usedadaptivehsize \d_adaptive_hsize
+
+\registerctxluafile{typo-ada}{autosuffix}
+
+\aliased\let\usedadaptivebox\b_adaptive_box
+
+\mutable\lettonothing\m_adaptive_color
+
+\protected\untraced\def\usedadaptivetotal{\dimexpr\usedadaptiveheight+\usedadaptivedepth\relax}
+
+\definesystemattribute[adaptive][public]
+
+\installcorenamespace{adaptive}
+
+\installcommandhandler \??adaptive {adaptive} \??adaptive
+
+% \appendtoks
+% %
+% \to \everydefineadaptive
+
+\setupadaptive
+ [\c!foregroundstyle=,
+ \c!foregroundcolor=,
+ \c!color=gray,
+ \c!rulethickness=\linewidth,
+ \c!method=1,
+ \c!stretch=,
+ \c!shrink=,
+ %\c!strut=\v!no,
+ \c!margin=2\emwidth]
+
+\permanent\protected\def\adaptivehbox{\typo_adaptive_box\zerocount}
+\permanent\protected\def\adaptivevbox{\typo_adaptive_box\plusone }
+
+\aliased\let\adaptivebox\adaptivehbox
+
+\tolerant\def\typo_adaptive_box#1#*[#2]#*[#3]%
+ {\ifcase#1\dontleavehmode\fi
+ \begingroup
+ \ifhastok={#2}%
+ \lettonothing\currentadaptive
+ \setupcurrentadaptive[#2]%
+ \else
+ \edef\currentadaptive{#2}%
+ \setupcurrentadaptive[#3]%
+ \fi
+ \edef\p_setups{\adaptiveparameter\c!setups}%
+ \dowithnextboxcontent
+ {\useadaptivestyleandcolor\c!foregroundstyle\c!foregroundcolor
+ \ifcstok{\adaptiveparameter\c!strut}\v!yes
+ \ifcase#1%
+ \strut
+ \else
+ % maybe \begstrut .. \endstrut
+ \fi
+ \fi}
+ {\ifempty\p_setups
+ % there is no need for postprocessing
+ \else
+ \clf_setadaptive {
+ method \adaptiveparameter\c!method
+ setups {\p_setups}%
+ color {\adaptiveparameter\c!color}%
+ rulethickness \adaptiveparameter\c!rulethickness
+ }%
+ \fi
+ \scratchdimen\adaptiveparameter\c!margin\relax
+ \edef\p_stretch{\adaptiveparameter\c!stretch}%
+ \edef\p_shrink {\adaptiveparameter\c!shrink}%
+ \uleaders
+ \ifcase#1%
+ \hbox
+ \s!spread \scratchdimen
+ \bgroup
+ \hss\box\nextbox\hss
+ \egroup
+ \hskip
+ \else
+ \vbox
+ \s!spread \scratchdimen
+ \bgroup
+ \vss\box\nextbox\vss
+ \egroup
+ \vskip
+ \fi
+ \zeropoint
+ \s!plus \ifempty\p_stretch\scratchdimen\else\p_stretch\fi
+ \s!minus \ifempty\p_shrink \scratchdimen\else\p_shrink \fi
+ \endgroup}%
+ \ifcase#1\hbox\else\vbox\fi}
+
+%D Here is a test case, expect more:
+%D
+%D \starttyping
+%D \startMPdefinitions
+%D def TickTock =
+%D interim linecap := squared;
+%D save p ; path p ; p := fullsquare xysized(AdaptiveWidth,.9(AdaptiveHeight+AdaptiveDepth)) ;
+%D fill p withcolor AdaptiveColor ;
+%D draw bottomboundary (p enlarged (-AdaptiveThickness) )
+%D withdashes (3*AdaptiveThickness)
+%D withpen pencircle scaled AdaptiveThickness
+%D withcolor white ;
+%D enddef ;
+%D \stopMPdefinitions
+%D
+%D \startsetups adaptive:test
+%D \setbox\usedadaptivebox\hbox to \usedadaptivewidth yoffset -.9\usedadaptivedepth \bgroup
+%D \hss
+%D \startMPcode
+%D TickTock ;
+%D \stopMPcode
+%D \hss
+%D \egroup
+%D \stopsetups
+%D
+%D \definecolor[adaptive:tick][.25(blue,green)]
+%D \definecolor[adaptive:tock][.75(blue,green)]
+%D
+%D \defineadaptive
+%D [tick]
+%D [setups=adaptive:test,
+%D color=adaptive:tick,
+%D foregroundcolor=white,
+%D foregroundstyle=\infofont,
+%D strut=yes]
+%D
+%D \defineadaptive
+%D [tock]
+%D [tick]
+%D [color=adaptive:tock]
+%D
+%D \dorecurse{5}{
+%D \dostepwiserecurse{1}{150}{1}{%
+%D this~#1.##1 is~#1.##1 test~#1.##1
+%D \ifodd##1\relax
+%D \adaptivebox[tick]{\hss tick #1.##1\hss}
+%D \else
+%D \adaptivebox[tock]{\hss tock #1.##1\hss}
+%D \fi
+%D }
+%D \blank
+%D }
+%D
+%D \setupexternalfigures
+%D [location={default,global}]
+%D
+%D \startsetups adaptive:test
+%D \setbox\usedadaptivebox\hbox to \usedadaptivewidth yoffset -\usedadaptivedepth \bgroup
+%D \externalfigure
+%D [cow.pdf]
+%D [width=\usedadaptivewidth,
+%D height=\dimexpr\usedadaptiveheight+\usedadaptivedepth\relax]%
+%D \egroup
+%D \stopsetups
+%D
+%D \dorecurse{5}{
+%D \dostepwiserecurse{1}{150}{1}{%
+%D this~#1.##1 is~#1.##1 test~#1.##1
+%D {\adaptivebox[strut=yes,setups=adaptive:test]{}}
+%D }
+%D \blank
+%D }
+%D
+%D \page
+%D
+%D \startsetups adaptive:test
+%D \setbox\usedadaptivebox\vbox to \usedadaptivetotal \bgroup
+%D \externalfigure
+%D [cow.pdf]
+%D [width=\usedadaptivewidth,
+%D height=\usedadaptivetotal]%
+%D \egroup
+%D \stopsetups
+%D
+%D \ruledvbox to \textheight {
+%D \par \begstrut \samplefile{tufte} \endstrut \par
+%D \adaptivevbox[strut=yes,setups=adaptive:test]{\hsize\textwidth\hss}
+%D \par \begstrut \samplefile{tufte} \endstrut
+%D }
+%D
+%D \stoptyping
+
+\protect
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-adj.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-adj.lmt
new file mode 100644
index 00000000000..d902187e3d4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-adj.lmt
@@ -0,0 +1,93 @@
+if not modules then modules = { } end modules ['typo-adj'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to typo-adj.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local nodecodes = nodes.nodecodes
+local hlist_code = nodecodes.hlist
+local penalty_code = nodecodes.penalty
+
+local nuts = nodes.nuts
+local getprev = nuts.getprev
+local getid = nuts.getid
+----- getattr = nuts.getattribute
+local getdepth = nuts.getdepth
+local newglue = nuts.pool.glue
+local insertafter = nuts.insertafter
+
+local texgetdimen = tex.getdimen
+
+----- a_adjuster = attributes.system("adjuster")
+
+local function correct_depth(head,tail)
+ local prev = getprev(tail)
+ if getid(prev) == penalty_code then -- linebreakpenalty
+ prev = getprev(prev)
+ end
+ if getid(prev) == hlist_code then -- line
+ local delta = getdepth(tail) - getdepth(prev)
+ if delta > 0 then
+ head = insertafter(head,prev,newglue(delta))
+ end
+ tex.prevdepth = getdepth(tail)
+ end
+ return head
+end
+
+local function block_baselineskip(head,tail)
+ -- tex.prevdepth = -1000 * 65536 -- ignoredepth
+ tex.prevdepth = texgetdimen("ignoredepthcriterium")
+ return head
+end
+
+local preactions = {
+ [1] = correct_depth,
+ [2] = block_baselineskip,
+}
+
+local postactions = {
+ [1] = correct_depth,
+ [2] = block_baselineskip,
+}
+
+-- function nodes.handlers.adjusters(head,where,tail)
+-- if where == "preadjust" then
+-- local a = getattr(tail,a_adjuster)
+-- if a then
+-- a = preactions[a]
+-- if a then
+-- head = a(head,tail)
+-- end
+-- end
+-- elseif where == "postadjust" then
+-- local a = getattr(tail,a_adjuster)
+-- if a then
+-- a = postactions[a]
+-- if a then
+-- head = a(head,tail)
+-- end
+-- end
+-- else
+-- -- can't happen
+-- end
+-- return head
+-- end
+
+function nodes.handlers.adjusters(head,where,tail,index)
+ if where == "preadjust" then
+ local a = preactions[index]
+ if a then
+ head = a(head,tail)
+ end
+ else -- if where == "postadjust" then
+ local a = postactions[index]
+ if a then
+ head = a(head,tail)
+ end
+ end
+ return head
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-adj.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-adj.mkxl
new file mode 100644
index 00000000000..5c129f07e35
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-adj.mkxl
@@ -0,0 +1,65 @@
+%D \module
+%D [ file=typo-adj,
+%D version=2021.11.02,
+%D title=\CONTEXT\ Typesetting Macros,
+%D subtitle=Adjusters,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% This is preliminary (mostly test) code ... for it to be useful we also need to
+% add some spacing options as well as penalty control. So far I never needed this
+% but who knows.
+
+\writestatus{loading}{ConTeXt Typesetting Macros / Adjusters}
+
+\registerctxluafile{typo-adj}{autosuffix}
+
+% \definesystemattribute[adjuster][public]
+
+% Musical timestamp: the announcement of the new Porcupine Tree album: Closure /
+% Continuation and the related upcoming tour. They're back!
+
+\unprotect
+
+%D \starttyping
+%D \start \showboxes
+%D \dorecurse{20}{test #1 }
+%D \insertlinebefore{BEFORE 1}
+%D \insertlineafter {AFTER 1}
+%D \dorecurse{20}{test #1 }
+%D \dorecurse{20}{test #1 }
+%D \insertlinebefore{BEFORE 2}
+%D \insertlineafter {AFTER 2}
+%D \dorecurse{20}{test #1 }
+%D \stop
+%D \stoptyping
+
+\def\typo_adjusters_line#1% no need for speed
+ {\begingroup
+ \dowithnextbox
+ {\ht\nextbox\strutht
+ \dp\nextbox\strutdp
+ %\boxattribute\nextbox \adjusterattribute \plusone
+ \vadjust #1 index \plusone {\box\nextbox}%
+ \endgroup}%
+ \hbox}
+
+\tolerant\def\typo_adjusters_blank#1[#2]% no need for speed
+ {\begingroup
+ % \setbox\scratchbox\vbox{\ifcstok{#2}\emptytoks\blank\else\blank[#2]\fi}%
+ \setbox\scratchbox\vbox{\blank[#2]}%
+ \vadjust #1 index \plustwo {\vskip\htdp\scratchbox}%
+ \endgroup}
+
+\permanent\protected\def\insertlinebefore{\typo_adjusters_line{pre}}
+\permanent\protected\def\insertlineafter {\typo_adjusters_line{post}}
+
+\permanent\protected\def\insertblankbefore{\typo_adjusters_blank{pre}}
+\permanent\protected\def\insertblankafter {\typo_adjusters_blank{post}}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-bld.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-bld.lmt
index 599106ccd61..00ff9f26796 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-bld.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-bld.lmt
@@ -34,25 +34,23 @@ constructors.attribute = a_parbuilder
local unsetvalue = attributes.unsetvalue
local texsetattribute = tex.setattribute
local texnest = tex.nest
-local texlists = tex.lists
-
local texget = tex.get
local texset = tex.set
-local texgetdimen = tex.getdimen
+local getspeciallist = nodes.nuts.getspeciallist
+local setspeciallist = nodes.nuts.setspeciallist
local nodes = nodes
local nodeidstostring = nodes.idstostring
local nodepool = nodes.pool
local new_baselineskip = nodepool.baselineskip
local new_lineskip = nodepool.lineskip
-local insert_node_before = nodes.insert_before
+local insertnodebefore = nodes.insertbefore
local hpack_node = nodes.hpack
local nuts = nodes.nuts
local tonode = nodes.tonode
local tonut = nodes.tonut
-local count_nodes = nuts.countall
local getattr = nuts.getattr
local starttiming = statistics.starttiming
@@ -157,9 +155,9 @@ function parbuilders.constructors.methods.oneline(head,followed_by_display)
t.prevdepth = h.depth
t.prevgraf = 1
if d < texget("lineskiplimit") then
- return insert_node_before(h,h,new_lineskip(texget("lineskip",false))) -- no stretch etc
+ return insertnodebefore(h,h,new_lineskip(texget("lineskip",false))) -- no stretch etc
else
- return insert_node_before(h,h,new_baselineskip(d))
+ return insertnodebefore(h,h,new_baselineskip(d))
end
end
@@ -177,9 +175,7 @@ local function processor(head,followed_by_display)
-- todo: not again in otr so we need to flag
if enabled then
starttiming(parbuilders)
- head = tonut(head)
- head = actions(head,followed_by_display)
- head = tonode(head)
+ head = tonode(actions(tonut(head),followed_by_display))
stoptiming(parbuilders)
return head
else
@@ -190,7 +186,7 @@ end
function constructors.enable () enabled = true end
function constructors.disable() enabled = false end
-registercallback('linebreak_filter', processor, "breaking paragraps into lines")
+registercallback("linebreak_filter", processor, "breaking paragraps into lines")
statistics.register("linebreak processing time", function()
return statistics.elapsedseconds(parbuilders)
@@ -201,22 +197,13 @@ end)
nodes.builders = nodes.builder or { }
local builders = nodes.builders
-local vboxactions = nodes.tasks.actions("vboxbuilders")
+local vpackactions = nodes.tasks.actions("vboxbuilders")
function builders.vpack_filter(head,groupcode,size,packtype,maxdepth,direction)
local done = false
if head then
starttiming(builders)
- head = tonut(head)
- if trace_vbox_builder then
- local before = count_nodes(head)
- head, done = vboxactions(head,groupcode,size,packtype,maxdepth,direction)
- local after = count_nodes(head)
- nodes.processors.tracer("vpack",head,groupcode,before,after,done)
- else
- head, done = vboxactions(head,groupcode)
- end
- head = tonode(head)
+ head, done = vpackactions(head,groupcode)
stoptiming(builders)
end
return head, done
@@ -228,51 +215,50 @@ end
local pageactions = nodes.tasks.actions("mvlbuilders")
----- lineactions = nodes.tasks.actions("linebuilders")
-local function report(groupcode,head)
- report_page_builder("trigger: %s",groupcode)
+local function report(pagecontext,head)
+ report_page_builder("trigger: %s at level %i",pagecontext,texnest.ptr)
report_page_builder(" vsize : %p",texget("vsize"))
report_page_builder(" pagegoal : %p",texget("pagegoal"))
report_page_builder(" pagetotal: %p",texget("pagetotal"))
report_page_builder(" list : %s",head and nodeidstostring(head) or "<empty>")
end
--- check why box is called before after_linebreak .. maybe make categories and
--- call 'm less
-
--- this will be split into contribute_filter for these 4 so at some point
--- the check can go away
+-- Watch out: contributehead can be any head (kind of) not per se the page one
+-- but that needs to be intercepted when needed by groupcode and level. At some
+-- point this one might be split by group.
--- Todo: contrib_head can be any head (kind of) not per se the page one so maybe I will
--- intercept that in the engine with page_contribute_head or so.
-
-function builders.buildpage_filter(groupcode)
- local head = texlists.contribute_head
+function builders.buildpage_filter(pagecontext)
+ local head, tail = getspeciallist("contributehead")
if head then
- local done = false
- -- called quite often ... maybe time to remove timing
- starttiming(builders)
if trace_page_builder then
- report(groupcode,head)
+ report(pagecontext,head)
end
- head, done = pageactions(head,groupcode)
+ starttiming(builders)
+ head = pageactions(head,pagecontext) -- todo: tail
stoptiming(builders)
- -- -- doesn't work here (not passed on?)
- -- texset("pagegoal,texget("vsize") - texgetdimen("d_page_floats_inserted_top") - texgetdimen("d_page_floats_inserted_bottom")
- texlists.contribute_head = head or nil -- needs checking
- -- tex.setlist("contribute_head",head,head and nodes.tail(head))
- return done and head or true -- no return value needed
+ setspeciallist("contributehead", head)
else
- -- happens quite often
if trace_page_builder then
- report(groupcode)
+ report(pagecontext)
end
--- return nil, false -- no return value needed
- return nil
end
end
-registercallback('vpack_filter', builders.vpack_filter, "vertical spacing etc")
-registercallback('buildpage_filter', builders.buildpage_filter, "vertical spacing etc (mvl)")
+registercallback('vpack_filter', builders.vpack_filter, "vertical spacing etc")
+registercallback('buildpage_filter', builders.buildpage_filter, "vertical spacing etc (mvl)")
+
+local vboxactions = nodes.tasks.actions("vboxhandlers")
+
+function builders.vbox_filter(head,groupcode)
+ if head then
+ starttiming(builders)
+ head = vboxactions(head,groupcode)
+ stoptiming(builders)
+ end
+ return head
+end
+
+registercallback('packed_vbox_filter', builders.vbox_filter, "packed vbox treatments")
statistics.register("v-node processing time", function()
return statistics.elapsedseconds(builders)
@@ -368,7 +354,7 @@ local function hpack_quality(how,detail,n,first,last,filename)
setcolor(rule,"cyan")
end
rule = hpack(rule)
- setwidth(rule,0)
+ setwidth(rule,0) -- maybe better whd all zero
setdirection(rule,direction)
return tonode(rule) -- can be a nut
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-bld.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-bld.mkxl
index ff1f569cb86..a84b0ef2cca 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-bld.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-bld.mkxl
@@ -33,6 +33,28 @@
% \dorecurse{100}{\input ward \par}
% \stopparbuilder
+% \startluacode
+% function builders.paragraphs.constructors.methods.preroll_a(head)
+% local result, info = tex.linebreak(head)
+% tex.prevdepth = info.prevdepth
+% tex.prevgraf = info.prevgraf
+% return result
+% end
+% function builders.paragraphs.constructors.methods.preroll_b(head)
+% local result, info = tex.linebreak(nodes.nuts.copylist(head))
+% return true
+% end
+% \stopluacode
+%
+% \defineparbuilder[preroll_a]
+% \defineparbuilder[preroll_b]
+%
+% \starttext
+% \setmainparbuilder[default] \input tufte \par \input tufte \page
+% \setmainparbuilder[preroll_a] \input tufte \par \input tufte \page
+% \setmainparbuilder[preroll_b] \input tufte \par \input tufte \page
+% \stoptext
+
\unprotect
\registerctxluafile{typo-bld}{autosuffix}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-brk.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-brk.lmt
index 8d2fcd147b7..3a7b69db9bc 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-brk.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-brk.lmt
@@ -45,15 +45,15 @@ local setprev = nuts.setprev
local setboth = nuts.setboth
local setsubtype = nuts.setsubtype
-local copy_node = nuts.copy_node
-local copy_node_list = nuts.copy_list
-local flush_node = nuts.flush_node
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local copy_node = nuts.copy
+local copy_node_list = nuts.copylist
+local flushnode = nuts.flushnode
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local remove_node = nuts.remove
-local end_of_math = nuts.end_of_math
-local find_attribute = nuts.find_attribute
-local unset_attributes = nuts.unset_attributes
+local endofmath = nuts.endofmath
+local findattribute = nuts.findattribute
+local unsetattributes = nuts.unsetattributes
local tonodes = nuts.tonodes
@@ -117,15 +117,15 @@ local function insert_break(head,start,stop,before,after,kern)
local g = new_glue()
setattrlist(p,start)
setattrlist(g,start)
- insert_node_before(head,start,p)
- insert_node_before(head,start,g)
+ insertnodebefore(head,start,p)
+ insertnodebefore(head,start,g)
end
local p = new_penalty(after)
local g = new_glue()
setattrlist(p,start)
setattrlist(g,start)
- insert_node_after(head,stop,g)
- insert_node_after(head,stop,p)
+ insertnodeafter(head,stop,g)
+ insertnodeafter(head,stop,p)
end
methods[1] = function(head,start,stop,settings,kern)
@@ -143,6 +143,7 @@ methods[6] = function(head,start,stop,settings,kern)
if kern then
insert_break(head,start,stop,10000,0,kern)
else
+ -- replace this
local l = new_wordboundary()
local d = new_disc()
local r = new_wordboundary()
@@ -171,7 +172,7 @@ methods[2] = function(head,start) -- ( => (-
local hyphen = copy_node(post)
setchar(hyphen,languages.prehyphenchar(getlanguage(post)))
setlink(post,hyphen)
- head, start = insert_node_before(head,start,new_disc(nil,post,replace))
+ head, start = insertnodebefore(head,start,new_disc(nil,post,replace))
setattrlist(start,replace)
insert_break(head,start,start,10000,10000)
end
@@ -187,7 +188,7 @@ methods[3] = function(head,start) -- ) => -)
local hyphen = copy_node(pre)
setchar(hyphen,languages.prehyphenchar(getlanguage(pre)))
setlink(hyphen,pre)
- head, start = insert_node_before(head,start,new_disc(hyphen,nil,replace)) -- so not pre !
+ head, start = insertnodebefore(head,start,new_disc(hyphen,nil,replace)) -- so not pre !
setattrlist(start,tmp)
insert_break(head,start,start,10000,10000)
end
@@ -199,7 +200,7 @@ methods[4] = function(head,start) -- - => - - -
if p and n then
local tmp
head, start, tmp = remove_node(head,start)
- head, start = insert_node_before(head,start,new_disc())
+ head, start = insertnodebefore(head,start,new_disc())
setattrlist(start,tmp)
setdisc(start,copy_node(tmp),copy_node(tmp),tmp)
insert_break(head,start,start,10000,10000)
@@ -212,7 +213,7 @@ methods[5] = function(head,start,stop,settings) -- x => p q r
if p and n then
local tmp
head, start, tmp = remove_node(head,start)
- head, start = insert_node_before(head,start,new_disc())
+ head, start = insertnodebefore(head,start,new_disc())
local attr = getattrlist(tmp)
local font = getfont(tmp)
local left = settings.left
@@ -229,7 +230,7 @@ methods[5] = function(head,start,stop,settings) -- x => p q r
end
setdisc(start,left,right,middle)
setattrlist(start,attr)
- flush_node(tmp)
+ flushnode(tmp)
insert_break(head,start,start,10000,10000)
end
return head, start
@@ -240,7 +241,7 @@ end
-- do we need to go into disc nodes (or do it as first step but then we need a pre/post font handler)
function breakpoints.handler(head)
- local _, current = find_attribute(head, a_breakpoints)
+ local _, current = findattribute(head, a_breakpoints)
if current then
local done = false
local attr = nil
@@ -303,7 +304,7 @@ function breakpoints.handler(head)
end
elseif id == math_code then
attr = nil
- current = end_of_math(current)
+ current = endofmath(current)
if current then
current = getnext(current)
end
@@ -396,9 +397,6 @@ function breakpoints.handler(head)
-- end
end
end
- if done then
--- unset_attributes(a_breakpoints, head)
- end
end
return head
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-brk.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-brk.mkxl
index 47e5da886e2..0988e3a6b75 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-brk.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-brk.mkxl
@@ -53,11 +53,11 @@
\endgroup}
\permanent\protected\def\setbreakpoints[#1]%
- {\exhyphenchar\minusone % we use a different order than base tex, so we really need this
+ {%\exhyphenchar\minusone % we now use collapsing so ...
\clf_setbreakpoints{#1}}
\permanent\protected\def\resetbreakpoints
- {\exhyphenchar\hyphenasciicode % 2020.03.05
+ {%\exhyphenchar\hyphenasciicode % 2020.03.05 / we now use collapsing so ...
\c_attr_breakpoint\attributeunsetvalue}
\definebreakpoints[compound]
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-cap.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-cap.lmt
index 67acb2535c3..c0e19757647 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-cap.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-cap.lmt
@@ -19,96 +19,81 @@ local report_casing = logs.reporter("typesetting","casing")
local nodes, node = nodes, node
-local nuts = nodes.nuts
+local nuts = nodes.nuts
-local getnext = nuts.getnext
-local getid = nuts.getid
-local getattr = nuts.getattr
-local getfont = nuts.getfont
-local getsubtype = nuts.getsubtype
-local getchar = nuts.getchar
-local isglyph = nuts.isglyph
-local getdisc = nuts.getdisc
+local getnext = nuts.getnext
+local getid = nuts.getid
+local getattr = nuts.getattr
+local getcharspec = nuts.getcharspec
+local getsubtype = nuts.getsubtype
+local getchar = nuts.getchar
+local isglyph = nuts.isglyph
+local getdisc = nuts.getdisc
-local setchar = nuts.setchar
-local setfont = nuts.setfont
-local setscales = nuts.setscales
+local setchar = nuts.setchar
+local setfont = nuts.setfont
+local setscales = nuts.setscales
-local copy_node = nuts.copy
-local end_of_math = nuts.end_of_math
-local insert_after = nuts.insert_after
-local find_attribute = nuts.find_attribute
-local unset_attributes = nuts.unset_attributes
+local copy_node = nuts.copy
+local endofmath = nuts.endofmath
+local insertafter = nuts.insertafter
+local findattribute = nuts.findattribute
+----- unsetattributes = nuts.unsetattributes
-local nextglyph = nuts.traversers.glyph
+local nextglyph = nuts.traversers.glyph
-local nodecodes = nodes.nodecodes
-local kerncodes = nodes.kerncodes
+local nodecodes = nodes.nodecodes
+local kerncodes = nodes.kerncodes
-local glyph_code = nodecodes.glyph
-local kern_code = nodecodes.kern
-local disc_code = nodecodes.disc
-local math_code = nodecodes.math
+local glyph_code = nodecodes.glyph
+local kern_code = nodecodes.kern
+local disc_code = nodecodes.disc
+local math_code = nodecodes.math
-local fontkern_code = kerncodes.fontkern
+local fontkern_code = kerncodes.fontkern
-local enableaction = nodes.tasks.enableaction
+local enableaction = nodes.tasks.enableaction
-local newkern = nuts.pool.kern
+local newkern = nuts.pool.kern
-local fonthashes = fonts.hashes
-local fontdata = fonthashes.identifiers
-local fontchar = fonthashes.characters
+local fonthashes = fonts.hashes
+local fontdata = fonthashes.identifiers
+local fontchar = fonthashes.characters
-local currentfont = font.current
+local currentfont = font.current
-local variables = interfaces.variables
-local v_reset = variables.reset
+local variables = interfaces.variables
+local v_reset = variables.reset
-local texsetattribute = tex.setattribute
-local unsetvalue = attributes.unsetvalue
-local texgetcount = tex.getcount
+local texsetattribute = tex.setattribute
+local texgetscales = tex.getglyphscales
-typesetters = typesetters or { }
-local typesetters = typesetters
+typesetters = typesetters or { }
+local typesetters = typesetters
-typesetters.cases = typesetters.cases or { }
-local cases = typesetters.cases
+typesetters.cases = typesetters.cases or { }
+local cases = typesetters.cases
-cases.actions = { }
-local actions = cases.actions
-local a_cases = attributes.private("case")
+cases.actions = { }
+local actions = cases.actions
+local a_cases = attributes.private("case")
-local run = 0 -- a trick to make neighbouring ranges work
-local blocked = { }
+local run = 0 -- a trick to make neighbouring ranges work
-local fontstate = { } -- this will become something generic
+local registervalue = attributes.registervalue
+local getvalue = attributes.getvalue
+local texsetattribute = tex.setattribute
local function set(tag,font)
- if run < 0x7F then
- run = run + 1
- else
- run = 1
- end
- local a = (font << 16)
- + (tag << 8)
- + (run << 0)
- blocked[a] = false
- -- it makes sense to fetch them all at once
- fontstate[a] = {
- texgetcount("glyphscale"),
- texgetcount("glyphxscale"),
- texgetcount("glyphyscale"),
- texgetcount("glyphdatafield")
+ run = run + 1
+ local settings = {
+ font = font,
+ tag = tag,
+ run = run, -- still needed ?
+ -- blocked = false
+ scales = { texgetscales() },
}
- return a
-end
-
-local function get(a)
- return
- (a >> 8) & 0x00FF, -- tag
- (a >> 16) & 0xFFFF, -- font
- (a >> 0) & 0x00FF -- run
+ texsetattribute(a_cases,registervalue(a_cases,settings))
end
-- a previous implementation used char(0) as placeholder for the larger font, so we needed
@@ -145,7 +130,7 @@ local function replacer(start,codes)
else
local g = copy_node(start)
setchar(g,chr)
- insert_after(start,start,g)
+ insertafter(start,start,g)
end
end
elseif ifc[dc] then
@@ -172,17 +157,17 @@ end
cases.register = register
-local function WORD(start,attr,lastfont,n,count,where,first)
+local function WORD(start,data,lastfont,n,count,where,first)
lastfont[n] = false
return replacer(first or start,uccodes)
end
-local function word(start,attr,lastfont,n,count,where,first)
+local function word(start,data,lastfont,n,count,where,first)
lastfont[n] = false
return replacer(first or start,lccodes)
end
-local function Words(start,attr,lastfont,n,count,where,first) -- looks quite complex
+local function Words(start,data,lastfont,n,count,where,first) -- looks quite complex
if where == "post" then
return
end
@@ -194,18 +179,18 @@ local function Words(start,attr,lastfont,n,count,where,first) -- looks quite com
end
end
-local function Word(start,attr,lastfont,n,count,where,first)
- blocked[attr] = true
- return Words(start,attr,lastfont,n,count,where,first)
+local function Word(start,data,lastfont,n,count,where,first)
+ data.blocked = true
+ return Words(start,data,lastfont,n,count,where,first)
end
-local function camel(start,attr,lastfont,n,count,where,first)
- word(start,attr,lastfont,n,count,where,first)
- Words(start,attr,lastfont,n,count,where,first)
+local function camel(start,data,lastfont,n,count,where,first)
+ word(start,data,lastfont,n,count,where,first)
+ Words(start,data,lastfont,n,count,where,first)
return start, true
end
-local function mixed(start,attr,lastfont,n,count,where,first)
+local function mixed(start,data,lastfont,n,count,where,first)
if where == "post" then
return
end
@@ -217,10 +202,10 @@ local function mixed(start,attr,lastfont,n,count,where,first)
elseif dc == char then
local lfa = lastfont[n]
if lfa then
- local s = fontstate[attr]
+ local s = data.scales
setfont(used,lfa)
if s then
- setscales(used, s[1], s[2], s[3])
+ setscales(used,s[1],s[2],s[3])
end
end
else
@@ -229,17 +214,17 @@ local function mixed(start,attr,lastfont,n,count,where,first)
return start, true
end
-local function Capital(start,attr,lastfont,n,count,where,first,once) -- 3
+local function Capital(start,data,lastfont,n,count,where,first,once) -- 3
local used = first or start
if count == 1 and where ~= "post" then
local lfa = lastfont[n]
if lfa then
local dc = uccodes[getchar(used)]
if dc then
- local s = fontstate[attr]
+ local s = data.scales
setfont(used,lfa)
if s then
- setscales(used, s[1], s[2], s[3])
+ setscales(used,s[1],s[2],s[3])
end
end
end
@@ -251,18 +236,18 @@ local function Capital(start,attr,lastfont,n,count,where,first,once) -- 3
return start, c
end
-local function capital(start,attr,lastfont,n,where,count,first,count) -- 4
- return Capital(start,attr,lastfont,n,where,count,first,true)
+local function capital(start,data,lastfont,n,where,count,first,count) -- 4
+ return Capital(start,data,lastfont,n,where,count,first,true)
end
-local function none(start,attr,lastfont,n,count,where,first)
+local function none(start,data,lastfont,n,count,where,first)
return start, true
end
-local function randomized(start,attr,lastfont,n,count,where,first)
+local function randomized(start,data,lastfont,n,count,where,first)
local used = first or start
- local char = getchar(used)
- local font = getfont(used)
+ local char,
+ font = getcharfont(used)
local tfm = fontchar[font]
lastfont[n] = false
local kind = categories[char]
@@ -301,93 +286,96 @@ register(variables.cap, variables.capital) -- clone
register(variables.Cap, variables.Capital) -- clone
function cases.handler(head)
- local _, start = find_attribute(head, a_cases)
+ local _, start = findattribute(head,a_cases)
if start then
local lastfont = { }
local lastattr = nil
local count = 0
- local done = false
while start do -- while because start can jump ahead
local id = getid(start)
if id == glyph_code then
local attr = getattr(start,a_cases)
- if attr and attr > 0 and not blocked[attr] then
- if attr ~= lastattr then
- lastattr = attr
- count = 1
- else
- count = count + 1
- end
- local n, id, m = get(attr)
- if lastfont[n] == nil then
- lastfont[n] = id
- end
- local action = actions[n] -- map back to low number
- if action then
- local quit
- start, quit = action(start,attr,lastfont,n,count)
- if trace_casing then
- report_casing("case trigger %a, instance %a, fontid %a, result %a",n,m,id,quit and "-" or "+")
+ if attr and attr > 0 then
+ local data = getvalue(a_cases,attr)
+ if data and not data.blocked then
+ if attr ~= lastattr then
+ lastattr = attr
+ count = 1
+ else
+ count = count + 1
+ end
+ local tag = data.tag
+ local font = data.font
+ local run = data.run
+ local action = actions[tag] -- map back to low number
+ lastfont[tag] = font
+ if action then
+ local quit
+ start, quit = action(start,data,lastfont,tag,count)
+ if trace_casing then
+ report_casing("case trigger %a, instance %a, fontid %a, result %a",
+ tag,run,font,quit and "-" or "+")
+ end
+ elseif trace_casing then
+ report_casing("unknown case trigger %a",tag)
end
- elseif trace_casing then
- report_casing("unknown case trigger %a",n)
end
- done = true
end
elseif id == disc_code then
local attr = getattr(start,a_cases)
- if attr and attr > 0 and not blocked[attr] then
- if attr ~= lastattr then
- lastattr = attr
- count = 0
- end
- local n, id, m = get(attr)
- if lastfont[n] == nil then
- lastfont[n] = id
- end
- local action = actions[n] -- map back to low number
- if action then
- local pre, post, replace = getdisc(start)
- if replace then
- local cnt = count
- for g in nextglyph, replace do
- cnt = cnt + 1
- getattr(g,a_cases)
- local h, quit = action(start,attr,lastfont,n,cnt,"replace",g)
- if quit then
- break
+ if attr and attr > 0 then
+ local data = getvalue(a_cases,attr)
+ if data and not data.blocked then
+ if attr ~= lastattr then
+ lastattr = attr
+ count = 0
+ end
+ local tag = data.tag
+ local font = data.font
+ local action = actions[tag] -- map back to low number
+ lastfont[tag] = font
+ if action then
+ local pre, post, replace = getdisc(start)
+ if replace then
+ local cnt = count
+ for g in nextglyph, replace do
+ cnt = cnt + 1
+ getattr(g,a_cases)
+ local h, quit = action(start,data,lastfont,tag,cnt,"replace",g)
+ if quit then
+ break
+ end
end
end
- end
- if pre then
- local cnt = count
- for g in nextglyph, pre do
- cnt = cnt + 1
- getattr(g,a_cases)
- local h, quit = action(start,attr,lastfont,n,cnt,"pre",g)
- if quit then
- break
+ if pre then
+ local cnt = count
+ for g in nextglyph, pre do
+ cnt = cnt + 1
+ getattr(g,a_cases)
+ local h, quit = action(start,data,lastfont,tag,cnt,"pre",g)
+ if quit then
+ break
+ end
end
end
- end
- if post then
- local cnt = count
- for g in nextglyph, post do
- cnt = cnt + 1
- getattr(g,a_cases)
- local h, quit = action(start,attr,lastfont,n,cnt,"post",g)
- if quit then
- break
+ if post then
+ local cnt = count
+ for g in nextglyph, post do
+ cnt = cnt + 1
+ getattr(g,a_cases)
+ local h, quit = action(start,data,lastfont,tag,cnt,"post",g)
+ if quit then
+ break
+ end
end
end
end
+ count = count + 1
end
- count = count + 1
- done = true
end
else
if id == math_code then
- start = end_of_math(start)
+ start = endofmath(start)
end
count = 0
end
@@ -395,9 +383,6 @@ function cases.handler(head)
start = getnext(start)
end
end
- if done then
- -- unset_attributes(a_cases,head)
- end
end
return head
end
@@ -405,9 +390,7 @@ end
local enabled = false
function cases.set(n,id)
- if n == v_reset then
- n = unsetvalue
- else
+ if n ~= v_reset then
n = registered[n] or tonumber(n)
if n then
if not enabled then
@@ -417,13 +400,11 @@ function cases.set(n,id)
end
enabled = true
end
- n = set(n,id or currentfont())
- else
- n = unsetvalue
+ set(n,id or currentfont())
+ return
end
end
- texsetattribute(a_cases,n)
- -- return n -- bonus
+ texsetattribute(a_cases)
end
-- interface
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-cap.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-cap.mkxl
index bab69e130e7..0a6867a4365 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-cap.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-cap.mkxl
@@ -18,7 +18,6 @@
%D Maybe we need a more clever system: either command or style mode etc. so
%D that we can avoid the grouped mess in a simple style switch.
-% \registerctxluafile{typo-cap}{autosuffix,optimize}
\registerctxluafile{typo-cap}{autosuffix}
% \definesystemattribute[case][public] % already predefined
@@ -74,7 +73,10 @@
% test \word{test TEST \TeX} test
% test \Word{test TEST \TeX} test
-\permanent\protected\def\setcharactercasing[#1]{\clf_setcharactercasing{#1}} % can be public implementor
+\permanent\tolerant\protected\def\setcharactercasing[#1]{\clf_setcharactercasing{#1}} % can be public implementor
+
+\protected\def\casing[#1]{\groupedcommand{\clf_setcharactercasing{#1}}{}}
+\protected\def\nocasing {\groupedcommand{\clf_setcharactercasing {}}{}}
\protected\def\typo_capitale_WORD {\clf_setcharactercasing\v!WORD }
\protected\def\typo_capitale_word {\clf_setcharactercasing\v!word }
@@ -163,7 +165,7 @@
\def\typo_capitals_set_real#1%
{\edef\currentcapitals{#1}%
- \sc
+ \sc % \smallcaps
\clf_setcharactercasing\currentcapitals}
\permanent\protected\def\pseudosmallcapped{\triggergroupedcommandcs\font_style_pseudosmallcapped}
@@ -251,6 +253,8 @@
\definefont
[MixedCaps]
[CurrentFont*default cp 1.2\exheight]
+% [CurrentFont*default at 1.5\exheight] % better adaptation to slanted but still not nice
+% [CurrentFont*default ht 1.2\exheight] % maybe this is better indeed
\setupcapitals
[\v!mixed]
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-chr.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-chr.lmt
index bb11f54a64c..56218440fd2 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-chr.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-chr.lmt
@@ -27,11 +27,11 @@ local wordboundary_code = boundarycodes.word
local texgetnest = tex.getnest -- to be used
local texsetcount = tex.setcount
-local flush_node = nodes.flush_node
-local flush_list = nodes.flush_list
+local flushnode = nodes.flushnode
+local flushlist = nodes.flushlist
local settexattribute = tex.setattribute
-local punctuation = characters.is_punctuation
+local ispunctuation = characters.is_punctuation
local variables = interfaces.variables
local v_all = variables.all
@@ -51,7 +51,7 @@ local function pickup()
local list = texgetnest()
if list then
local tail = list.tail
- if tail and tail.id == glyph_code and punctuation[tail.char] then
+ if tail and tail.id == glyph_code and ispunctuation[tail.char] then
local prev = tail.prev
list.tail = prev
if prev then
@@ -68,7 +68,7 @@ local actions = {
remove = function(specification)
local n = pickup()
if n then
- flush_node(n)
+ flushnode(n)
end
end,
push = function(specification)
@@ -103,7 +103,7 @@ local function pickup(head,tail,str)
while true do
local prev = first.prev
if prev and prev[a_marked] == attr then
- if prev.id == par_code then -- and start_of_par(prev)
+ if prev.id == par_code then -- and startofpar(prev)
break
else
first = prev
@@ -140,7 +140,7 @@ local actions = {
list.tail = prev
prev.next = nil
end
- flush_list(first)
+ flushlist(first)
end
end
end,
@@ -228,6 +228,8 @@ interfaces.implement {
-- not needed in lmtx ...
+local c_syst_last_node_id = tex.iscount("c_syst_last_node_id")
+
interfaces.implement {
name = "lastnodeid",
actions = function()
@@ -239,7 +241,7 @@ interfaces.implement {
okay = tail.id
end
end
- texsetcount("c_syst_last_node_id",okay)
+ texsetcount(c_syst_last_node_id,okay)
end,
}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-chr.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-chr.mkxl
index 1c459cfcf35..ad531480122 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-chr.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-chr.mkxl
@@ -33,6 +33,8 @@
%D for instance when combining bit and pieces where keeping a state is complex compared
%D to cleaning up unwanted stuff.
+\newinteger\c_syst_last_node_id
+
\registerctxluafile{typo-chr}{autosuffix}
\definesystemattribute[marked][public]
@@ -78,8 +80,6 @@
%D test test\number\lastnodeid test
%D \stoptyping
-\newcount\c_syst_last_node_id
-
\permanent\protected\def\doifelselastnode {\clf_lastnodeequals} % can be public implementors
\permanent\protected\def\doifelseatwordboundary{\clf_atwordboundary} % can be public implementors
\permanent\protected\def\lastnodeid {\clf_lastnodeid\c_syst_last_node_id} % can be public implementors
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-del.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-del.mkxl
index 8e17ea82b3f..08d0a9b09a1 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-del.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-del.mkxl
@@ -28,11 +28,11 @@
{\getdummyparameters[#1]%
\expandnamespaceparameter\??hyphenmarksign\dummyparameter\c!sign\v!normal}
-\setvalue{\??hyphenmarksign\v!normal}%
+\defcsname\??hyphenmarksign\v!normal\endcsname
{\enforced\let\textmodehyphen\normalhyphen
\enforced\let\textmodehyphendiscretionary\normalhyphendiscretionary}
-\setvalue{\??hyphenmarksign\v!wide}%
+\defcsname\??hyphenmarksign\v!wide\endcsname
{\enforced\let\textmodehyphen\composedhyphen
\enforced\let\textmodehyphendiscretionary\composedhyphendiscretionary}
@@ -142,8 +142,7 @@
[\c!rightsubsentence]
[\rightboundarycharacter\c!rightsubsentence{sentence}]
-\newsignal\d_typo_subsentence_signal
-\newcount \c_typo_subsentence_nesting
+\newinteger\c_typo_subsentence_nesting
\mutable\let\beforesubsentence\donothing % maybe just a parameter
\mutable\let\aftersubsentence \donothing % maybe just a parameter
@@ -171,13 +170,15 @@
\symbol[\c!midsentence]%
\dostoptagged}
+\newboundary\c_typo_subsentence_boundary
+
\permanent\protected\def\beginofsubsentence
{\beforesubsentence
- \ifdim\lastkern=\d_typo_subsentence_signal
- \unskip
+ \ifnum\lastboundary=\c_typo_subsentence_boundary
+ \unboundary
\kern\hspaceamount\currentusedlanguage{intersentence}%
\fi
- \global\advance\c_typo_subsentence_nesting\plusone
+ \global\advanceby\c_typo_subsentence_nesting\plusone
\ifnum\c_typo_subsentence_nesting=\plusone
\dontleavehmode
\fi
@@ -197,17 +198,17 @@
\symbol[\ifodd\c_typo_subsentence_nesting\c!rightsentence\else\c!rightsubsentence\fi]%
\dostoptagged
\dostoptagged
- \global\advance\c_typo_subsentence_nesting\minusone
+ \global\advanceby\c_typo_subsentence_nesting\minusone
\unskip
- \kern\d_typo_subsentence_signal\relax
+ \boundary\c_typo_subsentence_boundary
\aftersubsentence}
\permanent\protected\def\beginofsubsentencespacing % relax prevents space gobbling
- {\kern\d_typo_subsentence_signal\relax}% \ignorespaces}
+ {\boundary\c_typo_subsentence_boundary}% \ignorespaces}
\permanent\protected\def\endofsubsentencespacing
- {\ifdim\lastkern=\d_typo_subsentence_signal
- \unskip
+ {\ifnum\lastboundary=\c_typo_subsentence_boundary
+ \unboundary
\hskip\hspaceamount\currentusedlanguage{intersentence}%
% no good, actually language dependent:
% \ignorespaces
@@ -286,8 +287,6 @@
%D could be build on top of it. The speech opening and closing symbols are defined
%D per language. Italian is an example of a language that has them set.
-\newsignal\d_typo_delimited_signal
-
\mutable\let\currentdelimitedtext \s!unknown
\mutable\let\currentparentdelimitedtext\currentdelimitedtext
@@ -315,9 +314,9 @@
%D \NC [fr:en] \NC {\tttf fr} \quotation[fr:en]{{\tttf <en=\currentlanguage>} something french} \NC \NR
%D \stoptabulate
-\mutable\let\currentdelimitedlanguage\empty
-\mutable\let\innerdelimitedlanguage \empty
-\mutable\let\outerdelimitedlanguage \empty
+\mutable\lettonothing\currentdelimitedlanguage
+\mutable\lettonothing\innerdelimitedlanguage
+\mutable\lettonothing\outerdelimitedlanguage
\installglobalmacrostack\currentdelimitedlanguage
@@ -345,11 +344,11 @@
{\let\currentdelimitedlanguage\innerdelimitedlanguage}%
\donothing
\fi
- \let\m_delimited_argument\empty}
+ \lettonothing\m_delimited_argument}
\def\typo_delimited_set_language_yes_a
{\let\currentdelimitedlanguage\m_delimited_argument
- \let\m_delimited_argument\empty}
+ \lettonothing\m_delimited_argument}
\def\typo_delimited_push#1#2%
{\push_macro_currentdelimitedtext % can we combine these two
@@ -362,13 +361,13 @@
\typo_delimited_set_language_yes
\fi
\let\currentparentdelimitedtext\currentdelimitedtext
- \global\advance\c_typo_delimited_nesting\plusone
+ \global\advanceby\c_typo_delimited_nesting\plusone
\edef\delimitedtextlevel{\number\c_typo_delimited_nesting}%
\normalexpanded{\chaintocurrentdelimitedtext{\currentparentdelimitedtext:\delimitedtextlevel}}%
\edef\currentdelimitedtext{\currentparentdelimitedtext:\delimitedtextlevel}}
\def\typo_delimited_pop
- {\global\advance\c_typo_delimited_nesting\minusone
+ {\global\advanceby\c_typo_delimited_nesting\minusone
\pop_macro_currentdelimitedlanguage
\pop_macro_currentdelimitedtext}
@@ -378,10 +377,10 @@
\installcommandhandler \??delimitedtext {delimitedtext} \??delimitedtext
\appendtoks
- \expandafter\newcount\csname\??delimitedtextlevel\currentdelimitedtext\endcsname
- \frozen\instance\setuevalue{\currentdelimitedtext }{\delimitedtext[\currentdelimitedtext]}%
- \frozen\instance\setuevalue{\e!start\currentdelimitedtext}{\startdelimitedtext[\currentdelimitedtext]}%
- \frozen\instance\setuevalue{\e!stop \currentdelimitedtext}{\stopdelimitedtext}%
+ \expandafter\newinteger\csname\??delimitedtextlevel\currentdelimitedtext\endcsname
+ \frozen\instance\protected\edefcsname\currentdelimitedtext \endcsname{\delimitedtext[\currentdelimitedtext]}%
+ \frozen\instance\protected\edefcsname\e!start\currentdelimitedtext\endcsname{\startdelimitedtext[\currentdelimitedtext]}%
+ \frozen\instance\protected\edefcsname\e!stop \currentdelimitedtext\endcsname{\stopdelimitedtext}%
\to \everydefinedelimitedtext
\setupdelimitedtext
@@ -407,7 +406,7 @@
\typo_delimited_handle_middle\c!middle
\fi}
-\let\typo_delimited_repeat\relax
+\lettonothing\typo_delimited_repeat
\permanent\tolerant\protected\def\startdelimitedtext[#1]#*[#2]%
{\begingroup
@@ -416,6 +415,8 @@
\edef\p_delimited_method{\delimitedtextparameter\c!method}%
\ifx\p_delimited_method\v!font
\expandafter\typo_delimited_start_font
+ \orelse\ifx\p_delimited_method\v!paragraph
+ \expandafter\typo_delimited_start_font
\else
\expandafter\typo_delimited_start_other
\fi}
@@ -437,7 +438,7 @@
\ifx\p_delimited_repeat\v!yes
\let\typo_delimited_repeat\typo_delimited_repeat_indeed
\else
- \let\typo_delimited_repeat\relax
+ \lettonothing\typo_delimited_repeat
\fi
\setfalse\c_typo_delimited_repeating
\edef\p_delimited_location{\delimitedtextparameter\c!location}%
@@ -512,10 +513,11 @@
\usedelimitedtextstyleandcolor\c!style\c!color
%
\begingroup
- \edef\p_delimited_left {\delimitedtextparameter{\c!left}}%
- \edef\p_delimited_right {\delimitedtextparameter{\c!right}}%
- \edef\p_delimited_nextleft {\delimitedtextparameter{\c!nextleft}}%
- \edef\p_delimited_nextright{\delimitedtextparameter{\c!nextright}}%
+ \usealignparameter\delimitedtextparameter
+ \edef\p_delimited_left {\delimitedtextparameter\c!left}%
+ \edef\p_delimited_right {\delimitedtextparameter\c!right}%
+ \edef\p_delimited_nextleft {\delimitedtextparameter\c!nextleft}%
+ \edef\p_delimited_nextright{\delimitedtextparameter\c!nextright}%
%
\leftdelimitedtextmark
%
@@ -567,6 +569,8 @@
\edef\p_delimited_method{\delimitedtextparameter\c!method}%
\ifx\p_delimited_method\v!font
\expandafter\typo_delimited_fontdriven
+ \orelse\ifx\p_delimited_method\v!text
+ \expandafter\typo_delimited_fontdriven
\else
\expandafter\typo_delimited_other
\fi}
@@ -706,14 +710,16 @@
% even in \MKII. Maybe we should to this in \LUA. Only Italian has the
% middlespeech parameter set.
+\newboundary\c_typo_delimited_boundary
+
\def\typo_delimited_handle_middle#1% special case
{\ifconditional\c_typo_delimited_repeating
\begingroup
\usedelimitedtextstyleandcolor\c!symstyle\c!symcolor
\setbox\scratchbox\hbox{\delimitedtextparameter#1}%
\ifdim\wd\scratchbox>\zeropoint
- \ifdim\lastkern=\d_typo_delimited_signal
- \unkern
+ \ifnum\lastboundary=\c_typo_delimited_boundary
+ \unboundary
\hskip\hspaceamount\currentusedlanguage{interquotation}%
\else % maybe an option:
%\edef\p_delimited_margin{\delimitedtextparameter\c!location}%
@@ -727,7 +733,7 @@
\delimitedtextparameter#1% unhbox\scratchbox
\dostoptagged
% \penalty\plustenthousand % else overfull boxes, but that's better than dangling periods
- \kern\d_typo_delimited_signal % +- \prewordbreak
+ \boundary\c_typo_delimited_boundary
\fi
\endgroup
\else
@@ -739,11 +745,8 @@
\usedelimitedtextstyleandcolor\c!symstyle\c!symcolor
\setbox\scratchbox\hbox{\delimitedtextparameter#1}%
\ifdim\wd\scratchbox>\zeropoint
- \ifdim\lastkern=\d_typo_delimited_signal
- \unkern
- \hskip\hspaceamount\currentusedlanguage{interquotation}%
- \orelse\ifdim\lastskip=\d_typo_delimited_signal
- \unskip
+ \ifnum\lastboundary=\c_typo_delimited_boundary
+ \unboundary
\hskip\hspaceamount\currentusedlanguage{interquotation}%
\fi
% \strut % new, needed below
@@ -757,7 +760,7 @@
\delimitedtextparameter#1% unhbox\scratchbox
\dostoptagged
\penalty\plustenthousand % new per 2013-03-09 WS mailing list
- \hskip\d_typo_delimited_signal % +- \prewordbreak
+ \boundary\c_typo_delimited_boundary
\fi
\endgroup}
@@ -766,12 +769,8 @@
\usedelimitedtextstyleandcolor\c!symstyle\c!symcolor
\setbox\scratchbox\hbox{\delimitedtextparameter#1}%
\ifdim\wd\scratchbox>\zeropoint
- \ifdim\lastkern=\d_typo_delimited_signal
- \unkern
- \penalty\plustenthousand
- \hskip\hspaceamount\currentusedlanguage{interquotation}%
- \orelse\ifdim\lastskip=\d_typo_delimited_signal
- \unskip
+ \ifnum\lastboundary=\c_typo_delimited_boundary
+ \unboundary
\penalty\plustenthousand
\hskip\hspaceamount\currentusedlanguage{interquotation}%
\fi
@@ -784,7 +783,7 @@
\dotagsetdelimitedsymbol\s!right
\delimitedtextparameter#1% unhbox\scratchbox
\dostoptagged
- \kern\d_typo_delimited_signal % +- \prewordbreak
+ \boundary\c_typo_delimited_boundary
\fi
\endgroup}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-dig.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-dig.lmt
index 7f6663db98a..9e72d25c299 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-dig.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-dig.lmt
@@ -33,12 +33,11 @@ local setlink = nuts.setlink
local setnext = nuts.setnext
local setprev = nuts.setprev
-local hpack_node = nuts.hpack
-local traverse_id = nuts.traverse_id
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
-local find_attribute = nuts.find_attribute
-local unset_attributes = nuts.unset_attributes
+local hpacknode = nuts.hpack
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
+local findattribute = nuts.findattribute
+local unsetattributes = nuts.unsetattributes
local texsetattribute = tex.setattribute
local unsetvalue = attributes.unsetvalue
@@ -75,16 +74,16 @@ local a_digits = attributes.private("digits")
function nodes.aligned(head,start,stop,width,how)
if how == "flushright" or how == "middle" then
- head, start = insert_node_before(head,start,new_glue(0,65536,65536))
+ head, start = insertnodebefore(head,start,new_glue(0,65536,65536))
end
if how == "flushleft" or how == "middle" then
- head, stop = insert_node_after(head,stop,new_glue(0,65536,65536))
+ head, stop = insertnodeafter(head,stop,new_glue(0,65536,65536))
end
local prv = getprev(start)
local nxt = getnext(stop)
setprev(start)
setnext(stop)
- local packed = hpack_node(start,width,"exactly") -- no directional mess here, just lr
+ local packed = hpacknode(start,width,"exactly") -- no directional mess here, just lr
if prv then
setlink(prv,packed)
end
@@ -117,7 +116,7 @@ actions[1] = function(head,start,attr)
end
function digits.handler(head)
- local _, start = find_attribute(head, a_digits)
+ local _, start = findattribute(head, a_digits)
if start then
local current = head
while current do
@@ -138,7 +137,7 @@ function digits.handler(head)
end
end
if done then
- unset_attributes(a_digits, head)
+ unsetattributes(a_digits, head)
end
end
return head
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-dir.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-dir.lmt
new file mode 100644
index 00000000000..c1d2a8601a0
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-dir.lmt
@@ -0,0 +1,212 @@
+if not modules then modules = { } end modules ['typo-dir'] = {
+ version = 1.001,
+ comment = "companion to typo-dir.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- When we started with this, there were some issues in luatex so we needed to take care of
+-- intereferences. Some has been improved but we stil might end up with each node having a
+-- dir property. Now, the biggest problem is that there is an official bidi algorithm but
+-- some searching on the web shows that there are many confusing aspects and therefore
+-- proposals circulate about (sometimes imcompatible ?) improvements. In the end it all boils
+-- down to the lack of willingness to tag an input source. Of course tagging of each number
+-- and fenced strip is somewhat over the top, but now it has to be captured in logic. Texies
+-- normally have no problem with tagging but we need to handle any input. So, what we have
+-- done here (over the years) is starting from what we expect to see happen, especially with
+-- respect to punctation, numbers and fences. Eventually alternative algorithms will be provides
+-- so that users can choose (the reason why suggestion sfor improvements circulate on the web
+-- is that it is non trivial to predict the expected behaviour so one hopes that the ditor
+-- and the rest of the machinery match somehow. Anyway, the fun of tex is that it has no hard
+-- coded behavior. And ... we also want to have more debugging and extras and ... so we want
+-- a flexible approach. In the end we will have:
+--
+-- = full tagging (mechanism turned off)
+-- = half tagging (the current implementation)
+-- = unicode version x interpretation (several depending on the evolution)
+
+local next, type = next, type
+local format, insert, sub, find, match = string.format, table.insert, string.sub, string.find, string.match
+
+local nodes, node = nodes, node
+
+local trace_textdirections = false trackers.register("typesetters.directions.text", function(v) trace_textdirections = v end)
+local trace_mathdirections = false trackers.register("typesetters.directions.math", function(v) trace_mathdirections = v end)
+local trace_directions = false trackers.register("typesetters.directions", function(v) trace_textdirections = v trace_mathdirections = v end)
+
+local one_too = false directives.register("typesetters.directions.onetoo", function(v) one_too = v end)
+
+local report_textdirections = logs.reporter("typesetting","text directions")
+----- report_mathdirections = logs.reporter("typesetting","math directions")
+
+local texsetattribute = tex.setattribute
+local unsetvalue = attributes.unsetvalue
+
+local nuts = nodes.nuts
+local getnext = nuts.getnext
+local getattr = nuts.getattr
+
+local enableaction = nodes.tasks.enableaction
+local tracers = nodes.tracers
+local setcolor = tracers.colors.set
+local resetcolor = tracers.colors.reset
+
+local implement = interfaces.implement
+
+local directions = typesetters.directions or { }
+typesetters.directions = directions
+
+local a_directions = attributes.private('directions')
+
+local variables = interfaces.variables
+local v_global = variables["global"]
+local v_local = variables["local"]
+local v_on = variables.on
+local v_yes = variables.yes
+
+local m_enabled = 0x00000040 -- 2^6 64
+local m_global = 0x00000080 -- 2^7
+local m_fences = 0x00000100 -- 2^8
+
+local handlers = { }
+local methods = { }
+local lastmethod = 0
+
+local function installhandler(name,handler)
+ local method = methods[name]
+ if not method then
+ lastmethod = lastmethod + 1
+ method = lastmethod
+ methods[name] = method
+ end
+ handlers[method] = handler
+ return method
+end
+
+directions.handlers = handlers
+directions.installhandler = installhandler
+
+local function tomode(specification)
+ local scope = specification.scope
+ local mode
+ if scope == v_global or scope == v_on then
+ mode = m_enabled + m_global
+ elseif scope == v_local then
+ mode = m_enabled
+ else
+ return 0
+ end
+ local method = methods[specification.method]
+ if method then
+ mode = mode + method
+ else
+ return 0
+ end
+ if specification.fences == v_yes then
+ mode = mode + m_fences
+ end
+ return mode
+end
+
+local function getglobal(a)
+ return a and a > 0 and (a & m_global) ~= 0
+end
+
+local function getfences(a)
+ return a and a > 0 and (a & m_fences) ~= 0
+end
+
+local function getmethod(a)
+ return a and a > 0 and a % m_enabled or 0
+end
+
+directions.tomode = tomode
+directions.getglobal = getglobal
+directions.getfences = getfences
+directions.getmethod = getmethod
+directions.installhandler = installhandler
+
+-- beware: in dha we have character properties and in dua|b we have direction properties
+
+function directions.setcolor(current,direction,reversed,mirror)
+ if mirror then
+ setcolor(current,"bidi:mirrored")
+ elseif direction == "l" then
+ setcolor(current,reversed and "bidi:left:reversed" or "bidi:left:original")
+ elseif direction == "r" then
+ setcolor(current,reversed and "bidi:right:reversed" or "bidi:right:original")
+ else
+ resetcolor(current)
+ end
+end
+
+implement {
+ name = "getbidimode",
+ actions = { tomode, context },
+ arguments = {
+ {
+ { "scope" },
+ { "method" },
+ { "fences" },
+ }
+ }
+}
+
+local enabled = false
+
+local starttiming = statistics.starttiming
+local stoptiming = statistics.stoptiming
+
+-- If we have hbox{!} then the hbox determines the direction but we can consider
+-- a fast analysis, not that it matters much because there's nothing to swap in
+-- the list unless one glyphs becomes multiple (can that really happen?).
+--
+-- \enabledirectives[typesetters.directions.onetoo]
+
+function directions.handler(head,where,direction)
+ local only_one = not getnext(head)
+ if only_one and not one_too then
+ return head
+ end
+ local attr = getattr(head,a_directions)
+ if not attr or attr == 0 then
+ return head
+ end
+ local method = getmethod(attr)
+ local handler = handlers[method]
+ if not handler then
+ return head
+ end
+ starttiming(directions)
+ head = handler(head,direction,only_one,where)
+ stoptiming(directions)
+ return head
+end
+
+statistics.register("text directions", function()
+ if enabled then
+ return statistics.elapsedseconds(directions)
+ end
+end)
+
+function directions.set(n) -- todo: names and numbers
+ if not enabled then
+ if trace_textdirections then
+ report_textdirections("enabling directions handler")
+ end
+ enableaction("processors","typesetters.directions.handler")
+ enabled = true
+ end
+ if not n or n == 0 then
+ n = unsetvalue
+ -- maybe tracing
+ end
+ texsetattribute(a_directions,n)
+end
+
+implement {
+ name = "setdirection",
+ arguments = "integer",
+ actions = directions.set
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-dir.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-dir.mkxl
index 8439ed342d0..a5a4bc5686d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-dir.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-dir.mkxl
@@ -18,7 +18,7 @@
\unprotect
-\registerctxluafile{typo-dir}{optimize}
+\registerctxluafile{typo-dir}{autosuffix}
\registerctxluafile{typo-dha}{}
%registerctxluafile{typo-dua}{}
%registerctxluafile{typo-dub}{}
@@ -51,8 +51,8 @@
% maybe use chardefs
-\mutable\let\currentbidimode\empty
-\mutable\let\currentbidistamp\empty
+\mutable\lettonothing\currentbidimode
+\mutable\lettonothing\currentbidistamp
\def\typo_dir_get_mode
{\def\currentbidimode{\clf_getbidimode % test edef
@@ -87,7 +87,7 @@
\appendtoks
\edef\p_option{\directionsparameter\c!break}% name can change
- \bitwiseflip\normalizelinemode\ifx\p_option\v!both\else-\fi\breakafterdircode
+ \bitwiseflip\normalizelinemode\ifx\p_option\v!both\else-\fi\breakafterdirnormalizecode
\to \everysetupdirections
% bidi: local=obey grouping, global=ignore grouping (unicode has no grouping)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-drp.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-drp.lmt
index 2c53cc111a9..1ea4f47154b 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-drp.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-drp.lmt
@@ -18,7 +18,7 @@ local settings_to_hash = utilities.parsers.settings_to_hash
local trace_initials = false trackers.register("typesetters.initials", function(v) trace_initials = v end)
local report_initials = logs.reporter("nodes","initials")
-local initials = typesetters.paragraphs or { }
+local initials = typesetters.initials or { }
typesetters.initials = initials or { }
local nodes = nodes
@@ -44,7 +44,7 @@ local setlink = nuts.setlink
local setprev = nuts.setprev
local setnext = nuts.setnext
local setfont = nuts.setfont
-local setchar = nuts.setchar
+local setscale = nuts.setscale
local setwhd = nuts.setwhd
local setkern = nuts.setkern
local setoffsets = nuts.setoffsets
@@ -57,10 +57,11 @@ local nodecodes = nodes.nodecodes
local nodepool = nuts.pool
local new_kern = nodepool.kern
-local insert_before = nuts.insert_before
-local insert_after = nuts.insert_after
+local insertbefore = nuts.insertbefore
+local insertafter = nuts.insertafter
local remove_node = nuts.remove
-local start_of_par = nuts.start_of_par
+
+local startofpar = nuts.startofpar
local nextnode = nuts.traversers.node
local nextglyph = nuts.traversers.glyph
@@ -72,6 +73,7 @@ local v_default = variables.default
local v_margin = variables.margin
local v_auto = variables.auto
local v_first = variables.first
+local v_keep = variables.keep
local v_last = variables.last
local texget = tex.get
@@ -115,6 +117,7 @@ interfaces.implement {
{ "hoffset" ,"dimen" },
{ "voffset" ,"dimen" },
{ "font", "integer" },
+ { "glyphscale", "integer" },
{ "dynamic", "integer" },
{ "ca", "integer" },
{ "ma", "integer" },
@@ -129,6 +132,7 @@ interfaces.implement {
-- a page so this has a low priority
actions[v_default] = function(head,setting)
+ local skip = false
-- begin of par
local first = getnext(head)
local indent = false
@@ -154,6 +158,7 @@ actions[v_default] = function(head,setting)
local lines = tonumber(setting.n) or 0
local dynamic = setting.dynamic
local font = setting.font
+ local scale = setting.glyphscale
local method = settings_to_hash(setting.method)
local length = tonumber(setting.m) or 1
--
@@ -192,6 +197,9 @@ actions[v_default] = function(head,setting)
else
-- keep quote etc with initial
local next = getnext(first)
+ if next and method[v_keep] then
+ skip = first
+ end
if not next then
-- don't start with a quote or so
return head
@@ -241,15 +249,18 @@ actions[v_default] = function(head,setting)
local id = getid(current)
if id == kern_code then
setkern(current,0)
- elseif id == glyph_code then
+ elseif id == glyph_code and skip ~= current then
local next = getnext(current)
if font then
setfont(current,font)
end
+ if scale then
+ setscale(current,scale)
+ end
if dynamic > 0 then
setglyphdata(current,dynamic)
end
- setcoloring(ma,ca,ta)
+ setcoloring(current,ma,ca,ta)
end
if current == last then
break
@@ -269,8 +280,7 @@ actions[v_default] = function(head,setting)
local width, height, depth = getwhd(dropper)
setwhd(dropper,0,0,0)
--
- setlink(prev,dropper)
- setlink(dropper,next)
+ setlink(prev,dropper,next)
--
if next then
local current = next
@@ -289,7 +299,11 @@ actions[v_default] = function(head,setting)
--
local hoffset = width + hoffset + distance + (indent and parindent or 0)
for current in nextglyph, first do
- setoffsets(current,-hoffset,-voffset) -- no longer - height here
+ if skip == current then
+ setoffsets(current,-hoffset,0)
+ else
+ setoffsets(current,-hoffset,-voffset) -- no longer - height here
+ end
if current == last then
break
end
@@ -312,9 +326,18 @@ actions[v_default] = function(head,setting)
end
texset("hangafter",hangafter,true)
texset("hangindent",hangindent,true)
+-- local hsize = texget("hsize",false)
+-- local step = { hangindent, hsize - hangindent }
+-- local shape = { ["shift"] = true }
+-- for i=1,-hangafter do
+-- shape[#shape+1] = step
+-- end
+-- shape[#shape+1] = { 0, hsize }
+-- texset("parshape",shape)
+-- tex.snapshotpar(0x20000)
end
if indent then
- insert_after(first,first,new_kern(-parindent))
+ insertafter(first,first,new_kern(-parindent))
end
end
return head
@@ -322,8 +345,8 @@ end
-- we can count ... when all done, we can disable ...
-function initials.handler(head)
- if getid(head) == par_code and start_of_par(head) then
+function initials.handler(head,groupcode)
+ if getid(head) == par_code and startofpar(head) then
local settings = getprop(head,a_initial)
if settings then
disableaction("processors","typesetters.initials.handler")
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-drp.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-drp.mkxl
index 94e08c9b013..0a128b0d639 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-drp.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-drp.mkxl
@@ -71,10 +71,33 @@
\permanent\tolerant\protected\def\placeinitial[#1]% old command
{\par
\namedinitialparameter{#1}\c!before
- \edef\typo_initial_handle{\typo_initial_handle_indeed{#1}{}}}
+ \enforced\edef\typo_initial_handle{\typo_initial_handle_indeed{#1}{}}}
\permanent\tolerant\protected\def\setinitial[#1]#*[#2]%
- {\edef\typo_initial_handle{\typo_initial_handle_indeed{#1}{#2}}}
+ {\enforced\edef\typo_initial_handle{\typo_initial_handle_indeed{#1}{#2}}}
+
+\permanent\tolerant\protected\def\flushinitial % when used inside a mechanism that forgets
+ {\typo_initial_handle}
+
+\newconstant \c_initial_lines
+\newconditional\c_initial_synchronize
+
+% First experiment:
+%
+% \startluacode
+% function nodes.handlers.forgetinitial(mode,indented,context)
+% token.expandmacro("forgetinitial")
+% return indented
+% end
+% utilities.sequencers.prependaction("paragraph","system","nodes.handlers.forgetinitial")
+% utilities.sequencers.enableaction("paragraph","nodes.handlers.forgetinitial")
+% \stopluacode
+%
+% Second experiment:
+%
+% \appendtoks
+% \forgetinitial
+% \to \everybeforepar
\protected\def\typo_initial_handle_indeed#1#2%
{\dontleavehmode
@@ -90,26 +113,66 @@
\scratchcounter \initialparameter\c!n\relax
\scratchvoffset\dimexpr\ifx\p_voffset\v!line\scratchcounter\lineheight-\lineheight\else\p_voffset\fi\relax
\clf_setinitial
- location {\initialparameter\c!location}%
- enabled true\space
- n \scratchcounter
- m \numexpr\initialparameter\c!m\relax
- method {\initialparameter\c!method}%
- distance \dimexpr\initialparameter\c!distance\relax
- hoffset \dimexpr\initialparameter\c!hoffset\relax
- voffset \scratchvoffset
- ma \c_attr_colormodel
- ca \c_attr_color
- ta \c_attr_transparency
- font \fontid\font
- dynamic \font_dynamic_value % it's a bit over the top to support this here
+ location {\initialparameter\c!location}%
+ enabled true\space
+ n \scratchcounter
+ m \numexpr\initialparameter\c!m\relax
+ method {\initialparameter\c!method}%
+ distance \dimexpr\initialparameter\c!distance\relax
+ hoffset \dimexpr\initialparameter\c!hoffset\relax
+ voffset \scratchvoffset
+ ma \c_attr_colormodel
+ ca \c_attr_color
+ ta \c_attr_transparency
+ font \fontid\font
+ glyphscale \glyphscale
+ dynamic \font_dynamic_value % it's a bit over the top to support this here
\relax
\c_attr_initial\plusone
\initialparameter\c!text
- \endgroup
- \glet\typo_initial_handle\relax}
+ \normalexpanded{\endgroup\c_initial_lines\the\scratchcounter}%
+ \enforced\glettonothing\typo_initial_handle
+ \ifconditional\c_initial_synchronize
+ \appendtoks \forgetinitial \to \everybeforepar
+ \fi}
+
+\lettonothing\typo_initial_handle % hook into everypar
+
+\permanent\protected\def\forgetinitial
+ {\ifcase\c_initial_lines\else
+ \begingroup
+ \advanceby\c_initial_lines-\prevgraf\relax
+ \ifcase\c_initial_lines\else
+ \obeydepth
+ \forgetall
+ \testpage[\the\c_initial_lines]%
+ \dorecurse\c_initial_lines{\nointerlineskip\hpack to \hsize{\strut}\par}%
+ \fi
+ \endgroup
+ \c_initial_lines\zerocount
+ \ifconditional\c_initial_synchronize
+ \removetoks \forgetinitial \from \everybeforepar
+ \fi
+ \fi}
+
+%D \starttyping
+%D \setupinitial[n=2,style=\tfd,location=text]
+%D \setuphead[chapter][after=\placeinitial]
+%D \enableexperiments[autoforgetinitials]
+%D
+%D \starttext
+%D \chapter{Test me} Hello world!
+%D %\forgetinitial \input tufte
+%D \input tufte
+%D \stoptext
+%D \stoptyping
+
+% \enableexperiments[autoforgetinitials]
-\let\typo_initial_handle\relax
+\installtexexperiment
+ {autoforgetinitials}
+ {\settrue \c_initial_synchronize}
+ {\setfalse\c_initial_synchronize}
% \setupbodyfont[dejavu,9pt]
%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-duc.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-duc.lmt
index 07ae140e867..2e36389466d 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-duc.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-duc.lmt
@@ -31,7 +31,7 @@ if not modules then modules = { } end modules ['typo-duc'] = {
-- todo: no need for a max check
-- todo: collapse bound similar ranges (not ok yet)
-- todo: combine some sweeps
--- todo: removing is not needed when we inject at the same spot (only chnage the dir property)
+-- todo: removing is not needed when we inject at the same spot (only change the dir property)
-- todo: isolated runs (isolating runs are similar to bidi=local in the basic analyzer)
-- todo: check unicode addenda (from the draft):
@@ -76,9 +76,10 @@ local setattrlist = nuts.setattrlist
local properties = nodes.properties.data
local remove_node = nuts.remove
-local insert_node_after = nuts.insert_after
-local insert_node_before = nuts.insert_before
-local start_of_par = nuts.start_of_par
+local insertnodeafter = nuts.insertafter
+local insertnodebefore = nuts.insertbefore
+
+local startofpar = nuts.startofpar
local nodepool = nuts.pool
local new_direction = nodepool.direction
@@ -426,7 +427,7 @@ end
local function get_baselevel(head,list,size,direction)
if direction == lefttoright_code or direction == righttoleft_code then
return direction, true
- elseif getid(head) == par_code and start_of_par(head) then
+ elseif getid(head) == par_code and startofpar(head) then
direction = getdirection(head)
if direction == lefttoright_code or direction == righttoleft_code then
return direction, true
@@ -957,30 +958,46 @@ local function apply_to_list(list,size,head,pardir)
setdirection(current,pardir) -- is this really needed?
elseif id == glue_code then
-- Maybe I should also fix dua and dub but on the other hand ... why?
- if enddir and getsubtype(current) == parfillskip_code then
- -- insert the last enddir before \parfillskip glue
- local c = current
- local p = getprev(c)
- if p and getid(p) == glue_code and getsubtype(p) == parfillleftskip_code then
- c = p
- p = getprev(c)
- end
- if p and getid(p) == penalty_code then -- linepenalty
- c = p
- end
- -- there is always a par nodes so head will stay
- head = insert_node_before(head,c,new_direction(enddir,true))
+-- if enddir and getsubtype(current) == parfillskip_code then
+-- -- insert the last enddir before \parfillskip glue
+-- local c = current
+-- local p = getprev(c)
+-- if p and getid(p) == glue_code and getsubtype(p) == parfillleftskip_code then
+-- c = p
+-- p = getprev(c)
+-- end
+-- while p and getid(p) == glue_code do
+-- c = p
+-- p = getprev(c)
+-- end
+-- if p and getid(p) == penalty_code then -- linepenalty
+-- c = p
+-- end
+-- -- there is always a par nodes so head will stay
+-- local d = new_direction(enddir,true)
+-- setattrlist(d,current)
+-- head = insertnodebefore(head,c,d)
+-- enddir = false
+-- end
+ if enddir then
+ local d = new_direction(enddir,true)
+ setattrlist(d,current)
+ head = insertnodebefore(head,current,d)
enddir = false
end
elseif begindir then
- if id == par_code and start_of_par(current) then
+ if id == par_code and startofpar(current) then
-- par should always be the 1st node
- head, current = insert_node_after(head,current,new_direction(begindir))
+ local d = new_direction(begindir)
+ setattrlist(d,current)
+ head, current = insertnodeafter(head,current,d)
begindir = nil
end
end
if begindir then
- head = insert_node_before(head,current,new_direction(begindir))
+ local d = new_direction(begindir)
+ setattrlist(d,current)
+ head = insertnodebefore(head,current,d)
end
local skip = entry.skip
if skip and skip > 0 then
@@ -995,7 +1012,9 @@ local function apply_to_list(list,size,head,pardir)
end
end
if enddir then
- head, current = insert_node_after(head,current,new_direction(enddir,true))
+ local d = new_direction(enddir,true)
+ setattrlist(d,current)
+ head, current = insertnodeafter(head,current,d)
end
if not entry.remove then
current = getnext(current)
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-fln.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-fln.lmt
index fa507df4b1a..10d802cf3c7 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-fln.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-fln.lmt
@@ -62,15 +62,15 @@ local spaceskip_code = nodes.gluecodes.spaceskip
local nextglyph = nuts.traversers.glyph
local nextdisc = nuts.traversers.disc
-local flush_node_list = nuts.flush_list
-local flush_node = nuts.flush_node
-local copy_node_list = nuts.copy_list
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local flushnodelist = nuts.flushlist
+local flushnode = nuts.flushnode
+local copy_node_list = nuts.copylist
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local remove_node = nuts.remove
local getdimensions = nuts.dimensions
local hpack_node_list = nuts.hpack
-local start_of_par = nuts.start_of_par
+local startofpar = nuts.startofpar
local setcoloring = nuts.colors.set
@@ -180,7 +180,7 @@ actions[v_line] = function(head,setting)
-- temp = typesetters.kerns.handler(temp) -- maybe when enabled
-- temp = typesetters.cases.handler(temp) -- maybe when enabled
local width = getdimensions(temp)
- flush_node_list(temp)
+ flushnodelist(temp)
return width
end
@@ -228,7 +228,7 @@ actions[v_line] = function(head,setting)
end
end
- flush_node_list(temp)
+ flushnodelist(temp)
local start = head
local n = 0
@@ -238,7 +238,7 @@ actions[v_line] = function(head,setting)
setglyphdata(start,dynamic)
end
setfont(start,font)
- setcoloring(ma,ca,ta)
+ setcoloring(start,ma,ca,ta)
end
for i=1,noflines do
@@ -288,11 +288,11 @@ actions[v_line] = function(head,setting)
end
end
setdisc(disc,pre,post,replace)
- flush_node(disc)
+ flushnode(disc)
elseif id == glue_code then
n = n + 1
if linebreak ~= n then
- head = insert_node_before(head,start,newpenalty(10000)) -- nobreak
+ head = insertnodebefore(head,start,newpenalty(10000)) -- nobreak
end
end
local next = getnext(start)
@@ -300,11 +300,11 @@ actions[v_line] = function(head,setting)
if start ~= head then
local where = id == glue_code and getprev(start) or start
if trace_firstlines then
- head, where = insert_node_after(head,where,newpenalty(10000)) -- nobreak
- head, where = insert_node_after(head,where,newkern(-65536))
- head, where = insert_node_after(head,where,tracerrule(65536,4*65536,2*65536,"darkblue"))
+ head, where = insertnodeafter(head,where,newpenalty(10000)) -- nobreak
+ head, where = insertnodeafter(head,where,newkern(-65536))
+ head, where = insertnodeafter(head,where,tracerrule(65536,4*65536,2*65536,"darkblue"))
end
- head, where = insert_node_after(head,where,newpenalty(-10000)) -- break
+ head, where = insertnodeafter(head,where,newpenalty(-10000)) -- break
end
start = next
break
@@ -335,7 +335,7 @@ actions[v_word] = function(head,setting)
words = words + 1
ok = true
end
- setcoloring(ma,ca,ta)
+ setcoloring(start,ma,ca,ta)
if dynamic > 0 then
setglyphdata(start,dynamic)
end
@@ -358,7 +358,7 @@ end
actions[v_default] = actions[v_line]
function firstlines.handler(head)
- if getid(head) == par_code and start_of_par(head) then
+ if getid(head) == par_code and startofpar(head) then
local settings = getprop(head,a_firstline)
if settings then
disableaction("processors","typesetters.firstlines.handler")
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-fln.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-fln.mkxl
index 3ef688bb55a..a62646ffff9 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-fln.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-fln.mkxl
@@ -88,9 +88,9 @@
% \kern\zeropoint % we need a node
% \hskip\zeropoint\s!plus\emwidth\relax % can be an option
\endgroup
- \glet\typo_firstline_handle\relax}
+ \glettonothing\typo_firstline_handle}
-\let\typo_firstline_handle\relax
+\lettonothing\typo_firstline_handle
% goodie, question on list
%
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-hid.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-hid.lmt
new file mode 100644
index 00000000000..45dde497934
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-hid.lmt
@@ -0,0 +1,74 @@
+if not modules then modules = { } end modules ['typo-hid'] = {
+ version = 1.001,
+ comment = "companion to typo-hid.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local a_hidecontent = attributes.system("hidecontent")
+local specialskips = nodes.specialskipcodes
+local glue_code = nodes.nodecodes.glue
+local nuts = nodes.nuts
+local getattr = nuts.getattr
+local getnext = nuts.getnext
+local setnext = nuts.setnext
+local getprev = nuts.getprev
+local setlist = nuts.setlist
+local setlink = nuts.setlink
+local nextnode = nuts.traversers.node
+local flushlist = nuts.flushlist
+local dimensions = nuts.rangedimensions
+local hpack = nuts.hpack
+local setwhd = nuts.setwhd
+local setattrlist = nuts.setattrlist
+local enableaction = nodes.tasks.enableaction
+
+function nodes.handlers.wipe(head,groupcode,line)
+ if getattr(line,a_hidecontent) then
+ flushlist(head)
+ setlist(line)
+ else
+ -- we have normalized lines so always some skip to start with
+ local b, e = nil, nil
+ local function wipe()
+ local h = hpack()
+ local n = getnext(e)
+ setwhd(h,dimensions(line,b,n))
+ setlink(getprev(b),h,n)
+ setattrlist(h,b)
+ setnext(b)
+ flushlist(b)
+ b = nil
+ e = nil
+ end
+ for n, id, subtype in nextnode, head do
+ if id == glue_code and specialskips[subtype] then
+ if b then
+ wipe()
+ end
+ elseif getattr(n,a_hidecontent) then
+ if not b then
+ b = n
+ end
+ e = n
+ elseif b then
+ wipe()
+ end
+ end
+ if b then
+ -- can't happen because we had a skip
+ wipe()
+ end
+ setlist(line,head)
+ end
+ return nil
+end
+
+interfaces.implement {
+ name = "enablehidecontent",
+ onlyonce = true,
+ actions = function()
+ enableaction("contributers","nodes.handlers.wipe")
+ end,
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-hid.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-hid.mkxl
new file mode 100644
index 00000000000..13d8f14ca6f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-hid.mkxl
@@ -0,0 +1,38 @@
+%D \module
+%D [ file=typo-hid,
+%D version=2021.03.15, % based on old code lying around
+%D title=\CONTEXT\ Typesetting Macros,
+%D subtitle=Hiding,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Typesetting Macros / Hiding}
+
+\registerctxluafile{typo-hid}{autosuffix}
+
+\definesystemattribute[hidecontent][public]
+
+\unprotect
+
+\newinteger\c_typo_hidden_level
+
+\permanent\protected\def\starthiddencontent
+ {\ifcase\c_typo_hidden_level
+ \clf_enablehidecontent
+ \let\clf_enablehidecontent\relax
+ \attribute\hidecontentattribute\plusone
+ \fi
+ \advanceby\c_typo_hidden_level\plusone}
+
+\permanent\protected\def\stophiddencontent
+ {\advanceby\c_typo_hidden_level\minusone
+ \ifcase\c_typo_hidden_level
+ \attribute\hidecontentattribute\attributeunsetvalue
+ \fi}
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-inj.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-inj.mkxl
index f615014b04f..bf329482ed2 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-inj.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-inj.mkxl
@@ -61,12 +61,12 @@
% use \v!list instead of \s!list
\permanent\protected\def\doinstallinjector#1%
- {\letcsname typo_injectors_mark_#1\endcsname\donothing
- \letcsname typo_injectors_check_#1\endcsname\donothing}
+ {\gletcsname typo_injectors_mark_#1\endcsname\donothing
+ \gletcsname typo_injectors_check_#1\endcsname\donothing}
\permanent\protected\def\doactivateinjector#1% used at lua end
- {\protected\defcsname typo_injectors_mark_#1\endcsname{\dontleavehmode\noexpand\clf_markinjector{#1}}%
- \protected\defcsname typo_injectors_check_#1\endcsname{\noexpand\clf_checkinjector{#1}}}
+ {\protected\xdefcsname typo_injectors_mark_#1\endcsname{\dontleavehmode\noexpand\clf_markinjector{#1}}%
+ \protected\xdefcsname typo_injectors_check_#1\endcsname{\noexpand\clf_checkinjector{#1}}}
\permanent\protected\def\dotestinjector#1% only for testing outside unprotect
{\begincsname typo_injectors_check_#1\endcsname
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-itc.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-itc.lmt
index 4350053b367..c26d4a824a0 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-itc.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-itc.lmt
@@ -6,17 +6,22 @@ if not modules then modules = { } end modules ['typo-itc'] = {
license = "see context related readme files"
}
+-- very old code ...
+
local tonumber = tonumber
local trace_italics = false trackers.register("typesetters.italics", function(v) trace_italics = v end)
local report_italics = logs.reporter("nodes","italics")
-local threshold = 0.5 trackers.register("typesetters.threshold", function(v) threshold = v == true and 0.5 or tonumber(v) end)
+local threshold = 0.5 directives.register("typesetters.italics.threshold", function(v) threshold = v == true and 0.5 or tonumber(v) end)
typesetters.italics = typesetters.italics or { }
local italics = typesetters.italics
+local variables = interfaces.variables
+local settings_to_hash = utilities.parsers.settings_to_hash
+
local nodecodes = nodes.nodecodes
local glyph_code = nodecodes.glyph
local kern_code = nodecodes.kern
@@ -43,10 +48,11 @@ local isglyph = nuts.isglyph
local setkern = nuts.setkern
local getkern = nuts.getkern
local getheight = nuts.getheight
+local getoptions = nuts.getoptions
-local insert_node_after = nuts.insert_after
+local insertnodeafter = nuts.insertafter
local remove_node = nuts.remove
-local end_of_math = nuts.end_of_math
+local endofmath = nuts.endofmath
local texgetattribute = tex.getattribute
local texsetattribute = tex.setattribute
@@ -58,13 +64,15 @@ local unsetvalue = attributes.unsetvalue
local new_correction_kern = nodepool.italickern
local new_correction_glue = nodepool.glue
+local no_correction_code = tex.glyphoptioncodes.noitaliccorrection
+
local fonthashes = fonts.hashes
local fontdata = fonthashes.identifiers
local italicsdata = fonthashes.italics
local exheights = fonthashes.exheights
local chardata = fonthashes.characters
-local is_punctuation = characters.is_punctuation
+local ispunctuation = characters.is_punctuation
local implement = interfaces.implement
@@ -74,7 +82,7 @@ function typesetters.italics.forcevariant(variant)
forcedvariant = variant
end
--- We use the same key as the tex font handler. So, if a valua has already be set, we
+-- We use the same key as the tex font handler. So, if a value has already be set, we
-- use that one.
local function setitalicinfont(font,char)
@@ -100,6 +108,7 @@ local function setitalicinfont(font,char)
end
end
end
+ -- we don't want to do this each time so we also set zero here
if trace_italics then
report_italics("setting italic correction of %C of font %a to %p",char,font,italic)
end
@@ -116,36 +125,46 @@ end
-- todo: clear attribute
+local function correction_okay(n)
+ return not (getoptions(n) & no_correction_code == no_correction_code)
+end
+
local function okay(data,current,font,prevchar,previtalic,char,what)
- if data then
+ if getoptions(current) & no_correction_code == no_correction_code then
if trace_italics then
- report_italics("ignoring %p between %s italic %C and italic %C",previtalic,what,prevchar,char)
+ report_italics("ignoring %p between %s italic %C and italic %C, %s",previtalic,what,prevchar,char,"disabled")
end
return false
- end
- if threshold then
- -- if getid(current) == glyph_code then
- while current and getid(current) ~= glyph_code do
- current = getprev(current)
+ elseif data then
+ if trace_italics then
+ report_italics("ignoring %p between %s italic %C and italic %C, %s",previtalic,what,prevchar,char,"no data")
end
- if current then
- local ht = getheight(current)
- local ex = exheights[font]
- local th = threshold * ex
- if ht <= th then
- if trace_italics then
- report_italics("ignoring correction between %s italic %C and regular %C, height %p less than threshold %p",prevchar,what,char,ht,th)
+ return false
+ else
+ if threshold then
+ -- if getid(current) == glyph_code then
+ while current and getid(current) ~= glyph_code do
+ current = getprev(current)
+ end
+ if current then
+ local ht = getheight(current)
+ local ex = exheights[font]
+ local th = threshold * ex
+ if ht <= th then
+ if trace_italics then
+ report_italics("ignoring correction between %s italic %C and regular %C, height %p less than threshold %p",prevchar,what,char,ht,th)
+ end
+ return false
end
- return false
+ else
+ -- maybe backtrack to glyph
end
- else
- -- maybe backtrack to glyph
end
+ if trace_italics then
+ report_italics("inserting %p between %s italic %C and regular %C",previtalic,what,prevchar,char)
+ end
+ return true
end
- if trace_italics then
- report_italics("inserting %p between %s italic %C and regular %C",previtalic,what,prevchar,char)
- end
- return true
end
-- maybe: with_attributes(current,n) :
@@ -184,27 +203,23 @@ local enablemath = false
local enabletext = false
local function domath(head,current)
- current = end_of_math(current)
+ current = endofmath(current)
local next = getnext(current)
if next then
local char, id = isglyph(next)
- if char then
+ if char and correction_okay(next) then
-- we can have an old font where italic correction has been applied
- -- or a new one where it hasn't been done
+ -- or a new one where it hasn't been done ... actually, we now always
+ -- have one under detailed engine control
local kern = getprev(current)
if kern and getid(kern) == kern_code then
local glyph = getprev(kern)
if glyph and getid(glyph) == glyph_code then
-- [math: <glyph><kern>]<glyph> : we remove the correction when we have
-- punctuation
- if is_punctuation[char] then
+ if ispunctuation[char] then
local a = getattr(glyph,a_mathitalics)
- if a and (a < 100 or a > 100) then
- if a > 100 then
- a = a - 100
- else
- a = a + 100
- end
+ if a then
local i = getkern(kern)
local c, f = isglyph(glyph)
if getheight(next) < 1.25*exheights[f] then
@@ -218,45 +233,45 @@ local function domath(head,current)
end
setkern(kern,0) -- or maybe a small value or half the ic
end
- elseif i == 0 then
- local d = chardata[f][c]
- local i = d.italic
- if i == 0 then
- if trace_italics then
- report_italics("%s italic %p between math %C and punctuation %C","ignoring",i,c,char)
- end
- else
- setkern(kern,i)
- if trace_italics then
- report_italics("%s italic %p between math %C and punctuation %C","setting",i,c,char)
- end
- end
+ -- elseif i == 0 then
+ -- local d = chardata[f][c]
+ -- local i = d.italic
+ -- if i == 0 then
+ -- if trace_italics then
+ -- report_italics("%s italic %p between math %C and punctuation %C","ignoring",i,c,char)
+ -- end
+ -- else
+ -- setkern(kern,i)
+ -- if trace_italics then
+ -- report_italics("%s italic %p between math %C and punctuation %C","setting",i,c,char)
+ -- end
+ -- end
elseif trace_italics then
report_italics("%s italic %p between math %C and punctuation %C","keeping",k,c,char)
end
end
end
end
- else
- local glyph = kern
- if glyph and getid(glyph) == glyph_code then
- -- [math: <glyph>]<glyph> : we add the correction when we have
- -- no punctuation
- if not is_punctuation[char] then
- local a = getattr(glyph,a_mathitalics)
- if a and (a < 100 or a > 100) then
- if a > 100 then
- a = a - 100
- else
- a = a + 100
- end
- if trace_italics then
- report_italics("%s italic %p between math %C and non punctuation %C","adding",a,getchar(glyph),char)
- end
- insert_node_after(head,glyph,correction_kern(a,glyph))
- end
- end
- end
+ -- else
+ -- local glyph = kern
+ -- if glyph and getid(glyph) == glyph_code then
+ -- -- [math: <glyph>]<glyph> : we add the correction when we have
+ -- -- no punctuation
+ -- if not ispunctuation[char] then
+ -- local a = getattr(glyph,a_mathitalics)
+ -- if a and (a < 100 or a > 100) then
+ -- if a > 100 then
+ -- a = a - 100
+ -- else
+ -- a = a + 100
+ -- end
+ -- if trace_italics then
+ -- report_italics("%s italic %p between math %C and non punctuation %C","adding",a,getchar(glyph),char)
+ -- end
+ -- insertnodeafter(head,glyph,correction_kern(a,glyph))
+ -- end
+ -- end
+ -- end
end
end
end
@@ -311,7 +326,7 @@ local function texthandler(head)
if font ~= lastfont then
if previtalic ~= 0 then
if okay(data,current,font,prevchar,previtalic,char,"glyph") then
- insert_node_after(prevhead,prev,correction_kern(previtalic,current))
+ insertnodeafter(prevhead,prev,correction_kern(previtalic,current))
end
elseif previnserted and data then
if trace_italics then
@@ -322,7 +337,7 @@ local function texthandler(head)
--
if replaceitalic ~= 0 then
if okay(data,replace,font,replacechar,replaceitalic,char,"replace") then
- insert_node_after(replacehead,replace,correction_kern(replaceitalic,current))
+ insertnodeafter(replacehead,replace,correction_kern(replaceitalic,current))
end
replaceitalic = 0
elseif replaceinserted and data then
@@ -334,7 +349,7 @@ local function texthandler(head)
--
if postitalic ~= 0 then
if okay(data,post,font,postchar,postitalic,char,"post") then
- insert_node_after(posthead,post,correction_kern(postitalic,current))
+ insertnodeafter(posthead,post,correction_kern(postitalic,current))
end
postitalic = 0
elseif postinserted and data then
@@ -393,35 +408,39 @@ local function texthandler(head)
while current do
local char, id = isglyph(current)
if char then
- local font = id
- if font ~= lastfont then
- local data = italicsdata[font]
- if data then
- local attr = forcedvariant or getattr(current,a_italics)
- if attr and attr > 0 then
- local cd = data[char]
- if not cd then
- -- this really can happen
- replaceitalic = 0
- else
- replaceitalic = cd.italic
- if not replaceitalic then
- replaceitalic = setitalicinfont(font,char) -- calculated once
- -- replaceitalic = 0
- end
- if replaceitalic ~= 0 then
- lastfont = font
- lastattr = attr
- replacechar = char
- replacehead = replace
- updated = true
+ if correction_okay(current) then
+ local font = id
+ if font ~= lastfont then
+ local data = italicsdata[font]
+ if data then
+ local attr = forcedvariant or getattr(current,a_italics)
+ if attr and attr > 0 then
+ local cd = data[char]
+ if not cd then
+ -- this really can happen
+ replaceitalic = 0
+ else
+ replaceitalic = cd.italic
+ if not replaceitalic then
+ replaceitalic = setitalicinfont(font,char) -- calculated once
+ -- replaceitalic = 0
+ end
+ if replaceitalic ~= 0 then
+ lastfont = font
+ lastattr = attr
+ replacechar = char
+ replacehead = replace
+ updated = true
+ end
end
end
end
+ replacefont = font
end
- replacefont = font
+ break
+ else
+ current = getprev(current)
end
- break
else
current = getprev(current)
end
@@ -432,35 +451,39 @@ local function texthandler(head)
while current do
local char, id = isglyph(current)
if char then
- local font = id
- if font ~= lastfont then
- local data = italicsdata[font]
- if data then
- local attr = forcedvariant or getattr(current,a_italics)
- if attr and attr > 0 then
- local cd = data[char]
- if not cd then
- -- this really can happen
- -- postitalic = 0
- else
- postitalic = cd.italic
- if not postitalic then
- postitalic = setitalicinfont(font,char) -- calculated once
- -- postitalic = 0
- end
- if postitalic ~= 0 then
- lastfont = font
- lastattr = attr
- postchar = char
- posthead = post
- updated = true
+ if correction_okay(current) then
+ local font = id
+ if font ~= lastfont then
+ local data = italicsdata[font]
+ if data then
+ local attr = forcedvariant or getattr(current,a_italics)
+ if attr and attr > 0 then
+ local cd = data[char]
+ if not cd then
+ -- this really can happen
+ -- postitalic = 0
+ else
+ postitalic = cd.italic
+ if not postitalic then
+ postitalic = setitalicinfont(font,char) -- calculated once
+ -- postitalic = 0
+ end
+ if postitalic ~= 0 then
+ lastfont = font
+ lastattr = attr
+ postchar = char
+ posthead = post
+ updated = true
+ end
end
end
end
+ postfont = font
end
- postfont = font
+ break
+ else
+ current = getprev(current)
end
- break
else
current = getprev(current)
end
@@ -486,7 +509,7 @@ local function texthandler(head)
end
previnserted = correction_glue(previtalic,current) -- maybe just add ? else problem with penalties
previtalic = 0
- insert_node_after(prevhead,prev,previnserted)
+ insertnodeafter(prevhead,prev,previnserted)
else
if replaceitalic ~= 0 then
if trace_italics then
@@ -494,7 +517,7 @@ local function texthandler(head)
end
replaceinserted = correction_kern(replaceitalic,current) -- needs to be a kern
replaceitalic = 0
- insert_node_after(replacehead,replace,replaceinserted)
+ insertnodeafter(replacehead,replace,replaceinserted)
end
if postitalic ~= 0 then
if trace_italics then
@@ -502,7 +525,7 @@ local function texthandler(head)
end
postinserted = correction_kern(postitalic,current) -- needs to be a kern
postitalic = 0
- insert_node_after(posthead,post,postinserted)
+ insertnodeafter(posthead,post,postinserted)
end
end
elseif id == math_code then
@@ -516,45 +539,43 @@ local function texthandler(head)
if mathokay then
current = domath(head,current)
else
- current = end_of_math(current)
+ current = endofmath(current)
end
+ elseif previtalic ~= 0 then
+ if trace_italics then
+ report_italics("inserting %p between %s italic %C and whatever",previtalic,"glyph",prevchar)
+ end
+ insertnodeafter(prevhead,prev,correction_kern(previtalic,current))
+ previnserted = nil
+ previtalic = 0
+ replaceinserted = nil
+ replaceitalic = 0
+ postinserted = nil
+ postitalic = 0
else
- if previtalic ~= 0 then
+ if replaceitalic ~= 0 then
if trace_italics then
- report_italics("inserting %p between %s italic %C and whatever",previtalic,"glyph",prevchar)
+ report_italics("inserting %p between %s italic %C and whatever",replaceitalic,"replace",replacechar)
end
- insert_node_after(prevhead,prev,correction_kern(previtalic,current))
+ insertnodeafter(replacehead,replace,correction_kern(replaceitalic,current))
previnserted = nil
previtalic = 0
replaceinserted = nil
replaceitalic = 0
postinserted = nil
postitalic = 0
- else
- if replaceitalic ~= 0 then
- if trace_italics then
- report_italics("inserting %p between %s italic %C and whatever",replaceitalic,"replace",replacechar)
- end
- insert_node_after(replacehead,replace,correction_kern(replaceitalic,current))
- previnserted = nil
- previtalic = 0
- replaceinserted = nil
- replaceitalic = 0
- postinserted = nil
- postitalic = 0
- end
- if postitalic ~= 0 then
- if trace_italics then
- report_italics("inserting %p between %s italic %C and whatever",postitalic,"post",postchar)
- end
- insert_node_after(posthead,post,correction_kern(postitalic,current))
- previnserted = nil
- previtalic = 0
- replaceinserted = nil
- replaceitalic = 0
- postinserted = nil
- postitalic = 0
+ end
+ if postitalic ~= 0 then
+ if trace_italics then
+ report_italics("inserting %p between %s italic %C and whatever",postitalic,"post",postchar)
end
+ insertnodeafter(posthead,post,correction_kern(postitalic,current))
+ previnserted = nil
+ previtalic = 0
+ replaceinserted = nil
+ replaceitalic = 0
+ postinserted = nil
+ postitalic = 0
end
end
current = getnext(current)
@@ -564,19 +585,19 @@ local function texthandler(head)
if trace_italics then
report_italics("inserting %p between %s italic %C and end of list",previtalic,"glyph",prevchar)
end
- insert_node_after(prevhead,prev,correction_kern(previtalic,current))
+ insertnodeafter(prevhead,prev,correction_kern(previtalic,current))
else
if replaceitalic ~= 0 then
if trace_italics then
report_italics("inserting %p between %s italic %C and end of list",replaceitalic,"replace",replacechar)
end
- insert_node_after(replacehead,replace,correction_kern(replaceitalic,current))
+ insertnodeafter(replacehead,replace,correction_kern(replaceitalic,current))
end
if postitalic ~= 0 then
if trace_italics then
report_italics("inserting %p between %s italic %C and end of list",postitalic,"post",postchar)
end
- insert_node_after(posthead,post,correction_kern(postitalic,current))
+ insertnodeafter(posthead,post,correction_kern(postitalic,current))
end
end
end
@@ -649,9 +670,6 @@ implement {
actions = italics.reset,
}
-local variables = interfaces.variables
-local settings_to_hash = utilities.parsers.settings_to_hash
-
local function setupitaliccorrection(option) -- no grouping !
if enabletext then
enabletext()
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-itm.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-itm.mkxl
index 7ae1b732f42..5a10cfc9d82 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-itm.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-itm.mkxl
@@ -60,13 +60,13 @@
\c!inbetween={\blank[\v!medium]},
\c!after=\blank]
-\newcount\c_typo_items_n
-\newcount\c_typo_items_m
-\newdimen\d_typo_items_text_width
-\newdimen\d_typo_items_symbol_width
-\newdimen\d_typo_items_distance
-\newbox \b_typo_items_symbols
-\newbox \b_typo_items_texts
+\newinteger \c_typo_items_n
+\newinteger \c_typo_items_m
+\newdimension\d_typo_items_text_width
+\newdimension\d_typo_items_symbol_width
+\newdimension\d_typo_items_distance
+\newbox \b_typo_items_symbols
+\newbox \b_typo_items_texts
\permanent\tolerant\protected\def\items[#1]#:#2%
{\bgroup
@@ -103,7 +103,7 @@
\ifempty\p_typo_items_symbol
\let\m_typo_items_symbol\firstofoneargument
\orelse\ifx\p_typo_items_symbol\v!none
- \let\p_typo_items_symbol\empty
+ \lettonothing\p_typo_items_symbol
\let\m_typo_items_symbol\firstofoneargument
\else
\doifelseconversiondefined\p_typo_items_symbol
@@ -138,7 +138,7 @@
\let\typo_items_make\relax
\def\typo_items_item_horizontal
- {\advance\c_typo_items_m\plusone
+ {\advanceby\c_typo_items_m\plusone
\csname\??itemshorizontal
\ifcsname\??itemshorizontal\p_typo_items_align\endcsname
\p_typo_items_align
@@ -148,7 +148,7 @@
\endcsname}
\def\typo_items_item_vertical
- {\advance\c_typo_items_m\plusone
+ {\advanceby\c_typo_items_m\plusone
\csname\??itemsvertical
\ifcsname\??itemsvertical\p_typo_items_align\endcsname
\p_typo_items_align
@@ -169,7 +169,7 @@
{\simplealignedbox\scratchwidth\m_typo_items_align}
\def\typo_items_make_horizontal#1%
- {\divide\scratchwidth\c_typo_items_n
+ {\divideby\scratchwidth\c_typo_items_n
\hbox{#1}}
\def\typo_items_make_vertical#1%
@@ -197,7 +197,7 @@
\defineitems[\v!top][\c!width=\d_typo_items_text_width,\c!textalign=\itemsparameter\c!align]
-\setvalue{\??itemsalternatives\v!top}#1%
+\defcsname\??itemsalternatives\v!top\endcsname#1%
{\let\typo_items_make\typo_items_make_horizontal
\let\typo_items_item\typo_items_item_horizontal
\typo_items_construct_items_boxes{#1}%
@@ -213,7 +213,7 @@
\defineitems[\v!bottom][\c!width=\d_typo_items_text_width,\c!textalign=\itemsparameter\c!align]
-\setvalue{\??itemsalternatives\v!bottom}#1%
+\defcsname\??itemsalternatives\v!bottom\endcsname#1%
{\let\typo_items_make\typo_items_make_horizontal
\let\typo_items_item\typo_items_item_horizontal
\typo_items_construct_items_boxes{#1}%
@@ -229,7 +229,7 @@
\defineitems[\v!inmargin][\c!width=1.5\emwidth,\c!align=\v!flushright,\c!distance=\leftmargindistance]
-\setvalue{\??itemsalternatives\v!inmargin}#1%
+\defcsname\??itemsalternatives\v!inmargin\endcsname#1%
{\let\typo_items_make\typo_items_make_vertical
\let\typo_items_item\typo_items_item_vertical
\typo_items_construct_items_boxes{#1}%
@@ -242,10 +242,10 @@
\defineitems[\v!left][\c!width=1.5\emwidth,\c!align=\v!flushleft]
-\setvalue{\??itemsalternatives\v!left}#1%
+\defcsname\??itemsalternatives\v!left\endcsname#1%
{\let\typo_items_make\typo_items_make_vertical
\let\typo_items_item\typo_items_item_vertical
- \advance\d_typo_items_text_width-\dimexpr\d_typo_items_symbol_width+\d_typo_items_distance\relax
+ \advanceby\d_typo_items_text_width-\dimexpr\d_typo_items_symbol_width+\d_typo_items_distance\relax
\typo_items_construct_items_boxes{#1}%
\noindent\hbox\bgroup
\ifvoid\b_typo_items_symbols \else
@@ -257,10 +257,10 @@
\defineitems[\v!right][\c!width=1.5\emwidth,\c!align=\v!flushright]
-\setvalue{\??itemsalternatives\v!right}#1%
+\defcsname\??itemsalternatives\v!right\endcsname#1%
{\let\typo_items_make\typo_items_make_vertical
\let\typo_items_item\typo_items_item_vertical
- \advance\d_typo_items_text_width-\dimexpr\d_typo_items_symbol_width+\d_typo_items_distance\relax
+ \advanceby\d_typo_items_text_width-\dimexpr\d_typo_items_symbol_width+\d_typo_items_distance\relax
\typo_items_construct_items_boxes{#1}%
\noindent\hbox\bgroup
\box\b_typo_items_texts
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-krn.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-krn.lmt
index a8ccedccf44..65068d89733 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-krn.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-krn.lmt
@@ -24,13 +24,12 @@ local nodepool = nuts.pool
-- check what is used
local find_node_tail = nuts.tail
-local flush_node = nuts.flush_node
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
-local end_of_math = nuts.end_of_math
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
+local endofmath = nuts.endofmath
local copy_node = nuts.copy
-local find_attribute = nuts.find_attribute
-local unset_attributes = nuts.unset_attributes
+local findattribute = nuts.findattribute
+local unsetattributes = nuts.unsetattributes
local getnext = nuts.getnext
local getprev = nuts.getprev
@@ -130,7 +129,7 @@ local factors = kerns.factors
-- make sure it runs after all others
-- there will be a width adaptor field in nodes so this will change
-- todo: interchar kerns / disc nodes / can be made faster
--- todo: use insert_before etc
+-- todo: use insertbefore etc
local gluefactor = 4 -- assumes quad = .5 enspace
@@ -208,7 +207,7 @@ local function kern_injector(fillup,kern)
if fillup then
local g = new_glue(kern)
setfield(g,"stretch",kern)
- setfield(g,"stretch_order",1)
+ setfield(g,"stretchorder",1)
return g
else
return new_kern(kern)
@@ -221,22 +220,7 @@ end
local function inject_begin(boundary,prev,keeptogether,krn,ok) -- prev is a glyph
local char, id = isglyph(boundary)
- if id == kern_code then
- if getsubtype(boundary) == fontkern_code then
- local inject = true
- if keeptogether then
- local next = getnext(boundary)
- if not next or (getid(next) == glyph_code and keeptogether(prev,next)) then
- inject = false
- end
- end
- if inject then
- -- not yet ok, as injected kerns can be overlays (from node-inj.lua)
- setkern(boundary,getkern(boundary) + quaddata[getfont(prev)]*krn,userkern_code)
- return boundary, true
- end
- end
- elseif char then
+ if char then
if keeptogether and keeptogether(boundary,prev) then
-- keep 'm
else
@@ -250,29 +234,29 @@ local function inject_begin(boundary,prev,keeptogether,krn,ok) -- prev is a glyp
return kern, true
end
end
- end
- return boundary, ok
-end
-
-local function inject_end(boundary,next,keeptogether,krn,ok)
- local tail = find_node_tail(boundary)
- local char, id = isglyph(tail)
- if id == kern_code then
- if getsubtype(tail) == fontkern_code then
+ elseif id == kern_code then
+ if getsubtype(boundary) == fontkern_code then
local inject = true
if keeptogether then
- local prev = getprev(tail)
- if getid(prev) == glyph_code and keeptogether(prev,two) then
+ local next = getnext(boundary)
+ if not next or (getid(next) == glyph_code and keeptogether(prev,next)) then
inject = false
end
end
if inject then
-- not yet ok, as injected kerns can be overlays (from node-inj.lua)
- setkern(tail,getkern(tail) + quaddata[getfont(next)]*krn,userkern_code)
+ setkern(boundary,getkern(boundary) + quaddata[getfont(prev)]*krn,userkern_code)
return boundary, true
end
end
- elseif char then
+ end
+ return boundary, ok
+end
+
+local function inject_end(boundary,next,keeptogether,krn,ok)
+ local tail = find_node_tail(boundary)
+ local char, id = isglyph(tail)
+ if char then
if keeptogether and keeptogether(tail,two) then
-- keep 'm
else
@@ -286,6 +270,21 @@ local function inject_end(boundary,next,keeptogether,krn,ok)
return boundary, true
end
end
+ elseif id == kern_code then
+ if getsubtype(tail) == fontkern_code then
+ local inject = true
+ if keeptogether then
+ local prev = getprev(tail)
+ if getid(prev) == glyph_code and keeptogether(prev,two) then
+ inject = false
+ end
+ end
+ if inject then
+ -- not yet ok, as injected kerns can be overlays (from node-inj.lua)
+ setkern(tail,getkern(tail) + quaddata[getfont(next)]*krn,userkern_code)
+ return boundary, true
+ end
+ end
end
return boundary, ok
end
@@ -332,7 +331,7 @@ local function process_list(head,keeptogether,krn,font,okay)
-- if kerns then
-- print("it happens indeed, basemode kerns not yet injected")
-- end
- insert_node_before(head,start,new_kern((kerns and kerns[char] or 0) + kern))
+ insertnodebefore(head,start,new_kern((kerns and kerns[char] or 0) + kern))
okay = true
end
end
@@ -366,7 +365,7 @@ local function closest_bound(b,get)
end
function kerns.handler(head)
- local _, start = find_attribute(head, a_kerns)
+ local _, start = findattribute(head, a_kerns)
if start then
local lastfont = nil
local keepligature = kerns.keepligature
@@ -415,7 +414,7 @@ function kerns.handler(head)
setattr(n,a_kerns,attr) -- we took away the attr
end
setchar(n,unicode[i])
- insert_node_after(head,s,n)
+ insertnodeafter(head,s,n)
s = n
end
end
@@ -447,10 +446,10 @@ function kerns.handler(head)
local data = chardata[font][prevchar]
local kerns = data and data.kerns
local kern = (kerns and kerns[char] or 0) + quaddata[font]*krn
- insert_node_before(head,start,kern_injector(fillup,kern))
+ insertnodebefore(head,start,kern_injector(fillup,kern))
end
else
- insert_node_before(head,start,kern_injector(fillup,quaddata[font]*krn))
+ insertnodebefore(head,start,kern_injector(fillup,quaddata[font]*krn))
end
end
prev = start
@@ -539,7 +538,7 @@ function kerns.handler(head)
elseif id == glue_code then
local subtype = getsubtype(start)
if subtype == userskip_code or subtype == xspaceskip_code or subtype == spaceskip_code then
- local width, stretch, shrink, stretch_order, shrink_order = getglue(start)
+ local width, stretch, shrink, stretchorder, shrinkorder = getglue(start)
if width > 0 then
local w = width + gluefactor * width * krn
stretch = stretch * w / width
@@ -547,10 +546,10 @@ function kerns.handler(head)
if fillup then
stretch = 2 * stretch
shrink = 2 * shrink
- stretch_order = 1
- -- shrink_order = 1 ?
+ stretchorder = 1
+ -- shrinkorder = 1 ?
end
- setglue(start,w,stretch,shrink,stretch_order,shrink_order)
+ setglue(start,w,stretch,shrink,stretchorder,shrinkorder)
end
end
bound = false
@@ -560,16 +559,16 @@ function kerns.handler(head)
-- special case
local b, f = closest_bound(start,getprev)
if b then
- insert_node_before(head,start,kern_injector(fillup,quaddata[f]*krn))
+ insertnodebefore(head,start,kern_injector(fillup,quaddata[f]*krn))
end
local b, f = closest_bound(start,getnext)
if b then
- insert_node_after(head,start,kern_injector(fillup,quaddata[f]*krn))
+ insertnodeafter(head,start,kern_injector(fillup,quaddata[f]*krn))
end
end
bound = false
elseif id == math_code then
- start = end_of_math(start)
+ start = endofmath(start)
bound = false
end
if start then
@@ -590,7 +589,7 @@ function kerns.handler(head)
end
end
if done then
- -- unset_attributes(a_kerns, head)
+ -- unsetattributes(a_kerns, head)
end
end
return head
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-lan.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-lan.lmt
new file mode 100644
index 00000000000..21aead80c3f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-lan.lmt
@@ -0,0 +1,89 @@
+if not modules then modules = { } end modules ['typo-lan'] = {
+ version = 1.001,
+ comment = "companion to typo-lan.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local type, next = type, next
+
+local currentfont = font.current
+local setmetatableindex = table.setmetatableindex
+local utfbyte = utf.byte
+
+local hashes = fonts.hashes
+local fontdata = hashes.characters
+local emwidths = hashes.emwidths
+
+local frequencies = languages.frequencies or { }
+languages.frequencies = frequencies
+
+local frequencydata = { }
+local frequencyfile = string.formatters["lang-frq-%s.lua"]
+local frequencycache = { }
+
+setmetatableindex(frequencydata, function(t,language)
+ local fullname = resolvers.findfile(frequencyfile(language))
+ local v = fullname ~= "" and dofile(fullname)
+ if not v or not v.frequencies then
+ v = t.en
+ end
+ t[language] = v
+ return v
+end)
+
+setmetatableindex(frequencycache, function(t,language)
+ local dataset = frequencydata[language]
+ local frequencies = dataset.frequencies
+ if not frequencies then
+ return t.en
+ end
+ local v = { }
+ setmetatableindex(v, function(t,font)
+ local average = emwidths[font] / 2
+ if frequencies then
+ local characters = fontdata[font]
+ local sum, tot = 0, 0
+ for k, v in next, frequencies do
+ local character = characters[k] -- characters[type(k) == "number" and k or utfbyte(k)]
+ tot = tot + v
+ sum = sum + v * (character and character.width or average)
+ end
+ average = sum / tot -- widths
+ end
+ t[font] = average
+ return average
+ end)
+ t[language] = v
+ return v
+end)
+
+function frequencies.getdata(language)
+ return frequencydata[language]
+end
+
+function frequencies.averagecharwidth(language,font)
+ return frequencycache[language or "en"][font or currentfont()]
+end
+
+-- Just because we can, we also have a setter ...
+
+local dimension_value = tokens.values.dimension
+local scanstring = tokens.scanners.string
+local scandimension = tokens.scanners.dimension
+
+interfaces.implement {
+ name = "languagecharwidth",
+ public = true,
+ usage = "value",
+ actions = function(what)
+ local language = scanstring()
+ local font = currentfont()
+ if what == "value" then
+ return dimension_value, frequencycache[language][font] or 0
+ else
+ frequencycache[language][font] = scandimension(false,false,true)
+ end
+ end,
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-lan.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-lan.mkxl
index 9d137f5a561..7fc2a7b46a8 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-lan.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-lan.mkxl
@@ -15,10 +15,10 @@
\unprotect
-\registerctxluafile{typo-lan}{}
+\registerctxluafile{typo-lan}{autosuffix}
%D \macros
-%D {averagecharwidth, charwidthlanguage}
+%D {languagecharwidth, averagecharwidth, charwidthlanguage}
%D
%D This is a more \MKIV-ish variant of lang-frq.mkiv. The methods are gone as one
%D doesn't need the tables for them. The main macro is \type {\averagecharwidth}
@@ -26,39 +26,41 @@
%D
%D I finally decided to reimplement this as I needed it for a manual (which is often
%D a reason for such a rewrite). With some inspiring Porcupine Tree in the
-%D background it's not the worst thing to do.
+%D background it's not the worst thing to do. The \LMTX\ variant is a bit more
+%D flexible as it can also set, not that someone will notice.
\mutable\def\charwidthlanguage{\currentmainlanguage}
-\permanent\def\averagecharwidth {\dimexpr\clf_averagecharwidth{\charwidthlanguage}\scaledpoint\relax}
-\permanent\def\languagecharwidth#1{\dimexpr\clf_averagecharwidth{#1}\scaledpoint\relax}
-
-\protect
-
-\continueifinputfile{typo-lan.mkiv}
-
-\setuplayout[backspace=4cm]
-
-\showframe
-
-\starttext
-
-\startbuffer
-
-\mainlanguage[en] \hsize65\averagecharwidth \normalexpanded{\inleft{\the\hsize}} \input ward \par
-\mainlanguage[de] \hsize65\averagecharwidth \normalexpanded{\inleft{\the\hsize}} \input ward \par
-\mainlanguage[nl] \hsize65\averagecharwidth \normalexpanded{\inleft{\the\hsize}} \input ward \par
-
-\stopbuffer
-
-\getbuffer \blank
-
-\switchtobodyfont[pagella]
-
-\getbuffer \blank
-
-\switchtobodyfont[tt,8pt]
-
-\getbuffer
-
-\stoptext
+% \languagecharwidth{language} is defined at the lua end
+
+\permanent\def\averagecharwidth{\languagecharwidth{\charwidthlanguage}}
+
+\protect \endinput
+
+% \setuplayout[backspace=4cm]
+%
+% \showframe
+%
+% \starttext
+%
+% \startbuffer
+%
+% \mainlanguage[en] \hsize65\averagecharwidth \normalexpanded{\inleft{\the\hsize}} \input ward \par
+% \mainlanguage[de] \hsize65\averagecharwidth \normalexpanded{\inleft{\the\hsize}} \input ward \par
+% \mainlanguage[nl] \hsize65\averagecharwidth \normalexpanded{\inleft{\the\hsize}} \input ward \par
+%
+% \languagecharwidth{de}=\languagecharwidth{en}
+%
+% \stopbuffer
+%
+% \getbuffer \blank
+%
+% \switchtobodyfont[pagella]
+%
+% \getbuffer \blank
+%
+% \switchtobodyfont[tt,8pt]
+%
+% \getbuffer
+%
+% \stoptext
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-lbx.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-lbx.lmt
new file mode 100644
index 00000000000..55b9a9ca732
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-lbx.lmt
@@ -0,0 +1,251 @@
+if not modules then modules = { } end modules ['typo-lbx'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to typo-lbx.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local context = context
+
+local tostring = tostring
+
+local nuts = nodes.nuts
+local tonut = nodes.tonut
+local tonode = nodes.tonode
+
+local left_box_code = nodes.listcodes.left
+local right_box_code = nodes.listcodes.right
+local local_box_code = nodes.listcodes["local"]
+local hlist_code = nodes.nodecodes.hlist
+
+-- some can go:
+
+local getlist = nuts.getlist
+local getprev = nuts.getprev
+local getnext = nuts.getnext
+local getattribute = nuts.getattribute
+local gettail = nuts.tail
+local getwidth = nuts.getwidth
+local getboth = nuts.getboth
+local getindex = nuts.getindex
+local setlist = nuts.setlist
+local flushlist = nuts.flushlist
+local takebox = nuts.takebox
+local setbox = nuts.setbox
+local copynode = nuts.copynode
+local rangedimensions = nuts.rangedimensions
+local traverse_list = nuts.traversers.list
+
+----- setlocalbox = tex.setlocalbox -- todo: also in node.direct namespace
+----- getlocalbox = tex.getlocalbox -- todo: also in node.direct namespace
+
+local expandmacro = token.expandmacro
+
+local dimension_value = tokens.values.dimension
+local integer_value = tokens.values.integer
+
+local implement = interfaces.implement
+
+typesetters = typesetters or { }
+local typesetters = typesetters
+
+typesetters.localboxes = typesetters.localboxes or { }
+local localboxes = typesetters.localboxes
+
+local a_localboxesmark = attributes.private("localboxesmark")
+
+local starttiming = statistics.starttiming
+local stoptiming = statistics.stoptiming
+
+do
+ local lb_found = nil
+ local lb_index = 0
+ local lb_linenumber = 0
+ local lb_linewidth = 0
+ local lb_localwidth = 0
+ local lb_progress = 0
+ local lb_leftoffset = 0
+ local lb_rightoffset = 0
+ local lb_leftskip = 0
+ local lb_rightskip = 0
+ local lb_lefthang = 0
+ local lb_righthang = 0
+ local lb_indent = 0
+ local lb_parfillleftskip = 0
+ local lb_parfillrightskip = 0
+ local lb_parinitleftskip = 0
+ local lb_parinitrightskip = 0
+ local lb_overshoot = 0
+
+ implement { name = "localboxindex", public = true, usage = "value", actions = function() return integer_value, lb_index end }
+ implement { name = "localboxlinenumber", public = true, usage = "value", actions = function() return integer_value, lb_linenumber end }
+ implement { name = "localboxlinewidth", public = true, usage = "value", actions = function() return dimension_value, lb_linewidth end }
+ implement { name = "localboxlocalwidth", public = true, usage = "value", actions = function() return dimension_value, lb_localwidth end }
+ implement { name = "localboxprogress", public = true, usage = "value", actions = function() return dimension_value, lb_progress end }
+ implement { name = "localboxleftoffset", public = true, usage = "value", actions = function() return dimension_value, lb_leftoffset end }
+ implement { name = "localboxrightoffset", public = true, usage = "value", actions = function() return dimension_value, lb_rightoffset end }
+ implement { name = "localboxleftskip", public = true, usage = "value", actions = function() return dimension_value, lb_leftskip end }
+ implement { name = "localboxrightskip", public = true, usage = "value", actions = function() return dimension_value, lb_rightskip end }
+ implement { name = "localboxlefthang", public = true, usage = "value", actions = function() return dimension_value, lb_lefthang end }
+ implement { name = "localboxrighthang", public = true, usage = "value", actions = function() return dimension_value, lb_righthang end }
+ implement { name = "localboxindent", public = true, usage = "value", actions = function() return dimension_value, lb_indent end }
+ implement { name = "localboxparfillleftskip", public = true, usage = "value", actions = function() return dimension_value, lb_parfillleftskip end }
+ implement { name = "localboxparfillrightskip", public = true, usage = "value", actions = function() return dimension_value, lb_parfillrightskip end }
+ implement { name = "localboxparinitleftskip", public = true, usage = "value", actions = function() return dimension_value, lb_parinitleftskip end }
+ implement { name = "localboxparinitrightskip", public = true, usage = "value", actions = function() return dimension_value, lb_parinitrightskip end }
+ implement { name = "localboxovershoot", public = true, usage = "value", actions = function() return dimension_value, lb_overshoot end }
+
+ local cache = table.setmetatableindex(function(t,k)
+ local v = { n = 0, m = 0 }
+ t[k] = v
+ return v
+ end)
+
+ -- todo: use a simple usernode that refers to a cache so that we don't need to
+ -- make copies
+
+ implement {
+ name = "localboxmarkonce",
+ public = true,
+ arguments = "integer",
+ actions = function(attr)
+ local c = cache[attr]
+ local n = c.n
+-- first test this:
+-- if n == c.m then
+-- print("all false",attr,n)
+-- -- all false
+-- n = 1
+-- c.m = 0
+-- else
+ n = n + 1
+-- end
+ c[n] = true
+ c.n = n
+ context(n)
+ end
+ }
+
+ local function action(current)
+ local list = getlist(current)
+ if list then
+ local attr = getattribute(list,a_localboxesmark) or 0
+ local cach = attr and cache[lb_index]
+ local once = cach and cach[attr]
+ if once == false then
+ setlist(current)
+ flushlist(list)
+ else
+ setlist(current)
+ local head = copynode(current)
+ setlist(head,list)
+ setbox("localboxcontentbox",head)
+ expandmacro("localboxcommand") -- no longer pass arguments
+ local box = takebox("localboxcontentbox")
+ setlist(current,box)
+ if once and cach[attr] == true then
+ cach[attr] = false
+ cach.m = cach.m + 1
+ end
+ end
+ end
+ end
+
+ -- these two are now more or less the same so ... todo: add
+ -- warning about non zero width
+
+ local function processleftbox(box)
+ local list = getlist(box)
+ for current, id, subtype in traverse_list, list do
+ if subtype == local_box_code and getwidth(current) == 0 then
+ local index = getindex(current)
+ if index then
+ lb_found = current
+ lb_index = index
+ lb_progress = rangedimensions(box,list,current)
+ action(current)
+ end
+ end
+ end
+ end
+
+ local function processrightbox(box)
+ local list = getlist(box)
+ for current, id, subtype in traverse_list, list do
+ if subtype == local_box_code and getwidth(current) == 0 then
+ local index = getindex(current)
+ if index then
+ lb_found = current
+ lb_index = index
+ lb_progress = rangedimensions(box,list,current)
+ action(current)
+ end
+ end
+ end
+ end
+
+ local function processmiddlebox(box,line)
+ local list = getlist(box)
+ for current, id, subtype in traverse_list, list do
+ if subtype == local_box_code and getwidth(current) == 0 then
+ local index = getindex(current)
+ if index then
+ lb_found = current
+ lb_index = index
+ lb_progress = rangedimensions(line,getlist(line),box)
+ action(current)
+ end
+ end
+ end
+ end
+
+ local function processlocalboxes(line,leftbox,rightbox,middlebox,linenumber,leftskip,rightskip,lefthang,righthang,indent,parinitleftskip,parinitrightskip,parfillleftskip,parfillrightskip,overshoot)
+ --
+ lb_found = nil
+ lb_index = 0
+ lb_linenumber = linenumber
+ lb_progress = 0
+ lb_leftskip = leftskip
+ lb_rightskip = rightskip
+ lb_lefthang = lefthang
+ lb_righthang = righthang
+ lb_indent = indent
+ lb_parfillleftskip = parfillleftskip
+ lb_parfillrightskip = parfillrightskip
+ lb_parinitleftskip = parinitleftskip
+ lb_parinitrightskip = parinitrightskip
+ lb_overshoot = overshoot
+ lb_linewidth = getwidth(line)
+ -- only true for some cases
+ lb_leftoffset = leftskip + lefthang + parfillleftskip + parinitleftskip + indent
+ lb_rightoffset = rightskip + righthang + parfillrightskip + parinitrightskip - overshoot
+ --
+ if leftbox then
+ lb_localwidth = getwidth(leftbox)
+ processleftbox(leftbox)
+ end
+ if middlebox then
+ lb_localwidth = getwidth(middlebox)
+ processmiddlebox(middlebox,line)
+ end
+ if rightbox then
+ lb_localwidth = getwidth(rightbox)
+ processrightbox(rightbox)
+ end
+ end
+
+ typesetters.localboxes.handler = processlocalboxes
+
+end
+
+local localboxactions = nodes.tasks.actions("localboxes")
+
+function builders.local_box_filter(...)
+ starttiming(builders)
+ localboxactions(...)
+ stoptiming(builders)
+end
+
+callbacks.register("local_box_filter", builders.local_box_filter, "process local boxes")
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-lbx.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-lbx.mkxl
new file mode 100644
index 00000000000..93a2fc86fa8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-lbx.mkxl
@@ -0,0 +1,378 @@
+%D \module
+%D [ file=typo-lbx,
+%D version=2021.10.10,
+%D title=\CONTEXT\ Typesetting Macros,
+%D subtitle=Local Boxes,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Typesetting Macros / Local Boxes}
+
+% This time the usual musical timestamp is: New Scary Goldings ft. John Scofield
+% MonoNeon & Louis Cole (late October 2021) (plus the playlist in loop mode) and
+% further improved after watching Cory Wong's LIVE IN MPLS (9 FEB 2019) concert.
+
+% maybe: \iflocalbox 0/1/2
+
+\registerctxluafile{typo-lbx}{autosuffix}
+
+%D The advantage is that it's deal with in the par builder which has some advantages
+%D but when used in complex situation there can be side effects. Therefore is should
+%D be considered a somewhat low level mechanism on top of which one can write more
+%D mechanisms that provide more rendering control. Also, keep in mind that combining
+%D many instances at the same time add some complizity. Therefore, for the moment it's
+%D a playground.
+
+\unprotect
+
+\def\typo_localboxes_reset
+ {\localleftbox {}% no index here, works grouped
+ \localrightbox {}%
+ \localmiddlebox{}}
+
+\appendtoks
+ \typo_localboxes_reset
+\to\everyforgetall
+
+\definesystemattribute[localboxesmark][public]
+
+%D We used to pass arguments but there might be many so ...
+
+\newbox\localboxcontentbox
+
+\installcorenamespace{localboxes}
+\installcorenamespace{localboxesattribute}
+\installcorenamespace{localboxesnamespace}
+\installcorenamespace{localboxeslocations}
+\installcorenamespace{localboxesresetters}
+
+\installcommandhandler \??localboxes {localboxes} \??localboxes
+
+\setuplocalboxes
+ [\c!command=\localboxcontent,
+ \c!width=\zeropoint,
+ \c!location=\v!left,
+ \c!distance=\zeropoint]
+
+\newinteger\c_typo_localboxes
+\newinteger\c_typo_localboxes_index
+
+\appendtoks
+ \global\advanceby\c_typo_localboxes\plusone
+ \global\expandafter\integerdef\csname\??localboxesattribute\currentlocalboxes\endcsname\c_typo_localboxes
+ \gletcsname\??localboxesnamespace\number\c_typo_localboxes\endcsname\currentlocalboxes
+\to \everydefinelocalboxes
+
+%D The optional argument forces setting the \quote {whole} paragraph properties (which is needed
+%D when the assignment happens after e.g.\ \type {\everypar} but is also meant for the first
+%D line.
+
+%D Todo: reserve index 1 for this:
+
+\def\typo_paragraphs_l#1{\localleftbox \ifcstok{#1}\v!global par\fi}
+\def\typo_paragraphs_r#1{\localrightbox \ifcstok{#1}\v!global par\fi}
+\def\typo_paragraphs_m#1{\localmiddlebox\ifcstok{#1}\v!global par\fi}
+
+\permanent\tolerant\protected\def\leftparbox [#1]{\typo_paragraphs_l{#1}\bgroup\enforced\let\leftparbox \relax\let\next}
+\permanent\tolerant\protected\def\rightparbox [#1]{\typo_paragraphs_r{#1}\bgroup\enforced\let\rightparbox\relax\let\next}
+\permanent\tolerant\protected\def\middleparbox[#1]{\typo_paragraphs_m{#1}\bgroup\enforced\let\rightparbox\relax\let\next}
+
+% called back:
+
+\permanent\protected\def\localboxcontent
+ {\box\localboxcontentbox}
+
+\permanent\protected\def\localboxcommand
+ {\ifcsname\??localboxesnamespace\number\localboxindex\endcsname
+ %\edef\currentlocalboxes{\lastnamedcs}%
+ \expandafter\let\expandafter\currentlocalboxes\lastnamedcs
+ \setbox\localboxcontentbox\hbox
+ {\uselocalboxesstyleandcolor\c!style\c!color % sometimes redundant
+ \localboxesparameter\c!command}%
+ \fi}
+
+%D We don't group because we set the local boxes. Also, watch out: by injecting the
+%D existing local box we create nested ones. This is handled in the callback but if
+%D really needed one can do something like (do we need a primitive?):
+
+\def\typo_localboxes_localbox
+ {\ifx\currentlocalboxeslocation\v!right
+ \localrightbox
+ \orelse\ifx\currentlocalboxeslocation\v!left
+ \localleftbox
+ \else
+ \localmiddlebox
+ \fi}
+
+\def\typo_localboxes_zero#1#2#3%
+ {\ifcsname\??localboxesattribute#2\endcsname
+ \c_typo_localboxes_index\lastnamedcs
+ \edef\currentlocalboxes{#2}%
+ \edef\currentlocalboxeslocation{#1}%
+ \typo_localboxes_localbox
+ index \c_typo_localboxes_index
+ \bgroup
+ \hpack
+ \ifcstok{\localboxesparameter\c!repeat}\v!no
+ attr \localboxesmarkattribute \localboxmarkonce\c_typo_localboxes_index\relax
+ \fi
+ to \zeropoint
+ \bgroup
+ \uselocalboxesstyleandcolor\c!style\c!color
+ \hbox{#3}%
+ \hss
+ \egroup
+ \egroup
+ \fi}
+
+\def\typo_localboxes_asis#1#2#3%
+ {\ifcsname\??localboxesattribute#2\endcsname
+ \c_typo_localboxes_index\lastnamedcs
+ \edef\currentlocalboxes{#2}%
+ \edef\currentlocalboxeslocation{#1}%
+ \typo_localboxes_localbox
+ index \c_typo_localboxes_index
+ \bgroup
+ \hpack
+ \ifcstok{\localboxesparameter\c!repeat}\v!no
+ attr \localboxesmarkattribute \localboxmarkonce\c_typo_localboxes_index\relax
+ \fi
+ % todo: use width if dimension, use distance if given
+ \bgroup
+ \uselocalboxesstyleandcolor\c!style\c!color
+ \hbox{#3}% no \hss
+ \egroup
+ \egroup
+ \fi}
+
+\defcsname\??localboxeslocations\v!left \endcsname{\typo_localboxes_zero\v!left }
+\defcsname\??localboxeslocations\v!right \endcsname{\typo_localboxes_zero\v!right }
+\defcsname\??localboxeslocations\v!lefttext \endcsname{\typo_localboxes_asis\v!left }
+\defcsname\??localboxeslocations\v!righttext\endcsname{\typo_localboxes_asis\v!right }
+\defcsname\??localboxeslocations\v!middle \endcsname{\typo_localboxes_asis\v!middle}
+
+\letcsname\??localboxesresetters\v!left \endcsname\v!left
+\letcsname\??localboxesresetters\v!right \endcsname\v!right
+\letcsname\??localboxesresetters\v!lefttext \endcsname\v!left
+\letcsname\??localboxesresetters\v!righttext\endcsname\v!right
+\letcsname\??localboxesresetters\v!middle \endcsname\v!middle
+
+\permanent\tolerant\protected\def\resetlocalbox[#1]%
+ {\ifcsname\??localboxesattribute#1\endcsname
+ \c_typo_localboxes_index\lastnamedcs
+ \edef\currentlocalboxes{#1}%
+ \ifcsname\??localboxesresetters\localboxesparameter\c!location\endcsname
+ \edef\currentlocalboxeslocation{\lastnamedcs}%
+ \typo_localboxes_localbox index \c_typo_localboxes_index {}%
+ \fi
+ \fi}
+
+\def\typo_localboxes_box#1%
+ {\dowithnextboxcontent
+ {\edef\currentlocalboxes{#1}%
+ \uselocalboxesstyleandcolor\c!style\c!color}
+ {\ifcsname\??localboxeslocations\namedlocalboxesparameter{#1}\c!location\endcsname
+ \expandafter\lastnamedcs
+ \else
+ \csname\??localboxeslocations\v!left\expandafter\endcsname
+ \fi{#1}{\unhbox\nextbox}}}
+
+
+\permanent\tolerant\protected\def\localbox[#1]%
+ {\typo_localboxes_box{#1}\hbox}
+
+\permanent\tolerant\protected\def\startlocalbox[#1]%
+ {\dowithnextbox
+ {\ifcsname\??localboxeslocations\namedlocalboxesparameter{#1}\c!location\endcsname
+ \expandafter\lastnamedcs
+ \else
+ \csname\??localboxeslocations\v!left\expandafter\endcsname
+ \fi{#1}{\unhbox\nextbox}}%
+ \hbox\bgroup
+ \edef\currentlocalboxes{#1}%
+ \uselocalboxesstyleandcolor\c!style\c!color
+ \enforced\def\stoplocalbox{\removeunwantedspaces\egroup}%
+ \ignorespaces}
+
+\aliased\let\stoplocalbox\donothing
+
+\permanent\tolerant\protected\def\startlocalboxrange[#1]%
+ {\globalpushmacro\stoplocalboxrange
+ \ifcsname\??localboxeslocations\namedlocalboxesparameter{#1}\c!location\endcsname
+ \lastnamedcs{#1}{}%
+ \fi}
+
+\permanent\protected\def\stoplocalboxrange
+ {\globalpopmacro\stoplocalboxrange}%
+
+% using left and right with left lagging behind:
+%
+% \permanent\protected\def\localmarginlefttext#1%
+% {\setbox\localboxcontentbox\hpack
+% {\unhbox\localboxcontentbox
+% \setbox\localboxcontentbox\lastbox
+% \unhbox\localboxcontentbox}%
+% \hpack xoffset -\dimexpr
+% #1
+% +\localboxprogress
+% +\localboxleftoffset
+% +\wd\localboxcontentbox
+% +\localboxesparameter\c!distance
+% \relax{\box\localboxcontentbox}}
+%
+% \permanent\protected\def\localmarginrighttext#1%
+% {\hpack xoffset \dimexpr
+% #1
+% +\localboxrightoffset
+% +\localboxlocalwidth
+% -\localboxprogress
+% +\localboxesparameter\c!distance
+% \relax{\box\localboxcontentbox}}
+
+% using middle:
+
+\permanent\protected\def\localmarginlefttext#1%
+ {\ifzeropt\localboxesparameter\c!width\relax
+ % a but ugly hack ... for now
+ \setbox\localboxcontentbox\hpack
+ {\unhbox\localboxcontentbox
+ \setbox\localboxcontentbox\lastbox
+ \unhbox\localboxcontentbox}%
+ \fi
+ \hpack xoffset \dimexpr
+ -#1
+ -\localboxprogress
+ -\wd\localboxcontentbox
+ -\localboxesparameter\c!distance
+ \relax{\box\localboxcontentbox}}
+
+\permanent\protected\def\localmarginrighttext#1%
+ {\hpack xoffset \dimexpr
+ #1
+ +\localboxlinewidth
+ -\localboxprogress
+ +\localboxesparameter\c!distance
+ \relax{\box\localboxcontentbox}}
+
+% todo: use generic one above
+
+\permanent\protected\def\localmargintext[#1]#2%
+ {\dontleavehmode
+ \ifcsname\??localboxesattribute#1\endcsname
+ \c_typo_localboxes_index\lastnamedcs
+ \edef\currentlocalboxes{#1}%
+ \edef\currentlocalboxeslocation{\localboxesparameter\c!location}%
+ \ifx\currentlocalboxeslocation\v!right\localrightbox\orelse\ifx\currentlocalboxeslocation\v!left\localleftbox\else\localmiddlebox\fi
+ index \c_typo_localboxes_index
+ \bgroup
+ \hpack
+ \ifcstok{\localboxesparameter\c!repeat}\v!no
+ attr \localboxesmarkattribute \localboxmarkonce\c_typo_localboxes_index\relax
+ \fi
+ to \zeropoint
+ \bgroup
+ \uselocalboxesstyleandcolor\c!style\c!color
+ \hbox{#2}%
+ \hss
+ \egroup
+ \egroup
+ \fi}
+
+\definelocalboxes
+ [\v!leftmargin]
+ [\c!command=\localmarginlefttext\zeropoint,
+ \c!repeat=\v!no,
+ \c!distance=\leftmargindistance,
+ % \c!location=\v!left]
+ \c!location=\v!middle]
+
+\definelocalboxes
+ [\v!rightmargin]
+ [\c!command=\localmarginrighttext\zeropoint,
+ \c!repeat=\v!no,
+ \c!distance=\rightmargindistance,
+ % \c!location=\v!right]
+ \c!location=\v!middle]
+
+\definelocalboxes
+ [\v!leftedge]
+ [\c!command=\localmarginlefttext\leftmargintotal,
+ \c!repeat=\v!no,
+ \c!distance=\leftedgedistance,
+ % \c!location=\v!left]
+ \c!location=\v!middle]
+
+\definelocalboxes
+ [\v!rightedge]
+ [\c!command=\localmarginrighttext\rightmargintotal,
+ \c!repeat=\v!no,
+ \c!distance=\rightedgedistance,
+ % \c!location=\v!right]
+ \c!location=\v!middle]
+
+%D Here is an example of usage:
+
+%D \starttyping
+%D \definelocalboxes
+%D [linenumber]
+%D [command=\LeftNumber,location=left,width=3em,style=\bs,color=darkred]
+%D
+%D \definelocalboxes
+%D [linenumbertwo] [linenumber]
+%D [command=\RightNumber,location=right,width=6em,style=\bf,color=darkgreen]
+%D
+%D \definelocalboxes
+%D [linetext]
+%D [command=\LeftText,location=lefttext,style=\bs,color=darkblue]
+%D
+%D \definelocalboxes
+%D [linetexttwo] [linetext]
+%D [command=\RightText,location=righttext,style=\bf,color=darkgray]
+%D
+%D % \def\LineNumberL{\the\localboxlinenumber}
+%D % \def\LineNumberR{\the\localboxlinenumber}
+%D
+%D % \newinteger\MyLineNumberL
+%D % \newinteger\MyLineNumberR
+%D % \def\LineNumberL{\global\advanceby\MyLineNumberL\plusone\the\MyLineNumberL}
+%D % \def\LineNumberR{\global\advanceby\MyLineNumberR\plusone\the\MyLineNumberR}
+%D
+%D \definecounter[MyLineNumberL]
+%D \definecounter[MyLineNumberR]
+%D
+%D \setupcounter[MyLineNumberL][numberconversion=characters]
+%D \setupcounter[MyLineNumberR][numberconversion=romannumerals]
+%D
+%D \def\LineNumberL{\incrementcounter[MyLineNumberL]\convertedcounter[MyLineNumberL]}
+%D \def\LineNumberR{\incrementcounter[MyLineNumberR]\convertedcounter[MyLineNumberR]}
+%D
+%D \protected\def\LeftNumber {\hbox to \localboxesparameter{width}{\strut(\LineNumberL\hss)}}
+%D \protected\def\RightNumber{\hbox to \localboxesparameter{width}{\strut(\hss\LineNumberR)}}
+%D
+%D % \protected\def\LeftNumber {\hbox to \localboxesparameter{width}{\strut\box\localboxcontentbox\hss)}}
+%D % \protected\def\RightNumber{\hbox to \localboxesparameter{width}{\strut(\hss\box\localboxcontentbox)}}
+%D
+%D \protected\def\LeftText {\localboxcontentbox\quad}
+%D \protected\def\RightText{\quad\localboxcontentbox}
+%D
+%D \start
+%D \localbox[linenumber]{}%
+%D \localbox[linenumbertwo]{}%
+%D \localbox[linetext]{L}%
+%D \startlocalbox[linetexttwo]
+%D R
+%D \stoplocalbox
+%D \dorecurse{100}{
+%D \samplefile{tufte}
+%D \par
+%D }
+%D \stop
+%D \stoptyping
+
+\protect \endinput
+
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-lin.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-lin.lmt
index 86365c3ba03..42ee5a9576f 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-lin.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-lin.lmt
@@ -68,8 +68,8 @@ local tonut = nodes.tonut
local tonode = nodes.tonode
local nexthlist = nuts.traversers.hlist
-local insert_before = nuts.insert_before
-local insert_after = nuts.insert_after
+local insertbefore = nuts.insertbefore
+local insertafter = nuts.insertafter
local getlist = nuts.getlist
local setlist = nuts.setlist
@@ -89,7 +89,7 @@ local getnormalizedline = nuts.getnormalizedline
local setprop = nuts.setprop
local getprop = nuts.rawprop -- getprop
-local effectiveglue = nuts.effective_glue
+local effectiveglue = nuts.effectiveglue
local nodepool = nuts.pool
local new_kern = nodepool.kern
@@ -99,7 +99,6 @@ local new_glue = nodepool.glue
local righttoleft_code = nodes.dirvalues.righttoleft
-local texgetcount = tex.getcount
local setmetatableindex = table.setmetatableindex
local jobpositions = job.positions
@@ -127,9 +126,9 @@ local function finalize(prop,key) -- delayed calculations
end
local kern1 = new_kern(delta)
local kern2 = new_kern(-delta)
- head = insert_before(head,head,kern1) -- setlink
- head = insert_before(head,head,pack)
- head = insert_before(head,head,kern2)
+ head = insertbefore(head,head,kern1) -- setlink
+ head = insertbefore(head,head,pack)
+ head = insertbefore(head,head,kern2)
setlist(line,head)
local where = {
pack = pack,
@@ -144,7 +143,7 @@ local function finalize(prop,key) -- delayed calculations
end
local function normalize(line,islocal) -- assumes prestine lines, nothing pre/appended
- local prop = getnormalizedline(line) -- we also can have "lineproperties" set but for a different porpose
+ local prop = getnormalizedline(line) -- we also can have "lineproperties" set but for a different purpose
local width = getwidth(line)
local hsize = islocal and width or tex.hsize
noflines = noflines + 1
@@ -193,10 +192,10 @@ local function addtoline(n,list,option)
if trace_anchors and not line.traced then
line.traced = true
local rule = new_rule(2*65536,2*65536,1*65536)
- local list = insert_before(rule,rule,new_kern(-1*65536))
+ local list = insertbefore(rule,rule,new_kern(-1*65536))
addtoline(n,list)
local rule = new_rule(2*65536,6*65536,-3*65536)
- local list = insert_before(rule,rule,new_kern(-1*65536))
+ local list = insertbefore(rule,rule,new_kern(-1*65536))
addtoline(n,list,"internal")
else
line.traced = true
@@ -214,19 +213,25 @@ local function addtoline(n,list,option)
delta = line.lefthangskip + line.leftskip
end
end
+
+ -- this is a quick hack for line numbering in aligned math but maybe we need
+ -- a signal in the properties: if getprops(n,"repositioned")
+ local xoffset = nuts.getoffsets(n)
+ delta = delta - xoffset
+
-- always kerns, also when 0 so that we can adapt but we can optimize if needed
-- by keeping a hash as long as we use the shiftinline helper .. no need to
-- optimize now .. we can also decide to put each blob in a hlist
local kern = new_kern(delta)
if tail then
- head, tail = insert_after(head,tail,kern)
+ head, tail = insertafter(head,tail,kern)
else
head, tail = kern, kern
setlist(where.pack,head)
end
- head, tail = insert_after(head,tail,blob)
+ head, tail = insertafter(head,tail,blob)
local kern = new_kern(-delta)
- head, tail = insert_after(head,tail,kern)
+ head, tail = insertafter(head,tail,kern)
--
where.head = head
where.tail = tail
@@ -256,7 +261,7 @@ local function addanchortoline(n,anchor)
end
if where.tail then
local head = where.head
- insert_before(head,head,anchor)
+ insertbefore(head,head,anchor)
else
where.tail = anchor
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-mar.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-mar.lmt
index 7e69162a900..cf0ef39b23a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-mar.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-mar.lmt
@@ -61,9 +61,9 @@ local v_line = variables.line
local nuts = nodes.nuts
local tonode = nuts.tonode
-local hpack_nodes = nuts.hpack
-local traverse_id = nuts.traverse_id
-local flush_node_list = nuts.flush_list
+local hpacknodes = nuts.hpack
+local traverseid = nuts.traverseid
+local flushnodelist = nuts.flushlist
local getnext = nuts.getnext
local getprev = nuts.getprev
@@ -82,8 +82,6 @@ local setwidth = nuts.setwidth
local getheight = nuts.getheight
local setattrlist = nuts.setattrlist
-
-local getbox = nuts.getbox
local takebox = nuts.takebox
local setprop = nuts.setprop
@@ -105,6 +103,7 @@ local new_usernode = nodepool.usernode
local latelua = nodepool.latelua
local texgetdimen = tex.getdimen
+
local texgetcount = tex.getcount
local texget = tex.get
@@ -251,7 +250,7 @@ function margins.save(t)
local si = store[i]
if si.name == name then
local s = remove(store,i)
- flush_node_list(s.box)
+ flushnodelist(s.box)
end
end
else
@@ -259,7 +258,7 @@ function margins.save(t)
local si = store[i]
if si.name == name then
local s = remove(store,i)
- flush_node_list(s.box)
+ flushnodelist(s.box)
end
end
end
@@ -270,8 +269,8 @@ function margins.save(t)
if t.number then
local leftmargindistance = texgetdimen("naturalleftmargindistance")
local rightmargindistance = texgetdimen("naturalrightmargindistance")
- local strutbox = getbox("strutbox")
- local _, strutht, strutdp = getwhd(strutbox)
+ local strutht = texgetdimen("strutht")
+ local strutdp = texgetdimen("strutdp")
-- better make a new table and make t entry in t
t.box = content
t.n = nofsaved
@@ -285,11 +284,11 @@ function margins.save(t)
--
t.leftmargindistance = leftmargindistance -- todo:layoutstatus table
t.rightmargindistance = rightmargindistance
- t.leftedgedistance = texgetdimen("naturalleftedgedistance")
- + texgetdimen("leftmarginwidth")
+ t.leftedgedistance = texgetdimen("naturalleftedgedistance") -- can be swapped
+ + texgetdimen("leftmarginwidth") -- can be swapped
+ leftmargindistance
- t.rightedgedistance = texgetdimen("naturalrightedgedistance")
- + texgetdimen("rightmarginwidth")
+ t.rightedgedistance = texgetdimen("naturalrightedgedistance") -- can be swapped
+ + texgetdimen("rightmarginwidth") -- can be swapped
+ rightmargindistance
t.lineheight = texgetdimen("lineheight")
--
@@ -492,9 +491,9 @@ local function markovershoot(current) -- todo: alleen als offset > line
v_anchors = v_anchors + 1
cache[v_anchors] = fastcopy(stacked)
local anchor = setanchor(v_anchors)
- -- local list = hpack_nodes(setlink(anchor,getlist(current))) -- not ok, we need to retain width
+ -- local list = hpacknodes(setlink(anchor,getlist(current))) -- not ok, we need to retain width
-- local list = setlink(anchor,getlist(current)) -- why not this ... better play safe
- local list = hpack_nodes(setlink(anchor,getlist(current)),getwidth(current),"exactly")--
+ local list = hpacknodes(setlink(anchor,getlist(current)),getwidth(current),"exactly")--
if trace_marginstack then
report_margindata("marking anchor %a",v_anchors)
end
@@ -790,7 +789,7 @@ local function flushed(scope,parent) -- current is hlist
if done then
local a = getattr(head,a_linenumber) -- hack .. we need a more decent critical attribute inheritance mechanism
if false then
- local l = hpack_nodes(head,getwidth(parent),"exactly")
+ local l = hpacknodes(head,getwidth(parent),"exactly")
setlist(parent,l)
if a then
setattr(l,a_linenumber,a)
@@ -806,7 +805,7 @@ local function flushed(scope,parent) -- current is hlist
return done, continue
end
--- only when group : vbox|vmode_par
+-- only when group : vbox|vmodepar
-- only when subtype : line, box (no indent alignment cell)
local function handler(scope,head,group)
@@ -884,9 +883,9 @@ function margins.globalhandler(head,group) -- check group
report_margindata("ignored 1, group %a, stored %s, inhibit %a",group,nofstored,inhibit)
end
return head
- elseif group == "hmode_par" then
+ elseif group == "hmodepar" then
return handler(v_global,head,group)
- elseif group == "vmode_par" then -- experiment (for alignments)
+ elseif group == "vmodepar" then -- experiment (for alignments)
return handler(v_global,head,group)
-- this needs checking as we then get quite some one liners to process and
-- we cannot look ahead then:
@@ -905,7 +904,7 @@ end
local function finalhandler(head)
if nofdelayed > 0 then
local current = head
- while current and nofdelayed > 0 do -- traverse_list
+ while current and nofdelayed > 0 do
local id = getid(current)
if id == hlist_code then -- only lines?
local a = getprop(current,"margindata")
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-mar.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-mar.mkxl
index 4862ee671ba..85161c942ef 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-mar.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-mar.mkxl
@@ -142,10 +142,10 @@
\newconditional\inhibitmargindata % This one is used at the Lua end!
\newtoks \everymargindatacontent % Later on we will set this one.
-\mutable\let\currentmargindatastrut \empty
-\mutable\let\currentmargindatawidth \empty
-\mutable\let\currentmarginfirstheight\empty
-\mutable\let\currentmarginreference \empty
+\mutable\lettonothing\currentmargindatastrut
+\mutable\lettonothing\currentmargindatawidth
+\mutable\lettonothing\currentmarginfirstheight
+\mutable\lettonothing\currentmarginreference
\appendtoks
\settrue\inhibitmargindata
@@ -161,8 +161,8 @@
% trialtypesetting: no need for margin stuff while trialing as
% is has no dimensions
-\newcount\nofmargintexts
-\newcount\c_typo_margins_n
+\newinteger\nofmargintexts
+\newinteger\c_typo_margins_n
\ifdefined\dotagmarginanchor \else \aliased\let\dotagmarginanchor\gobbleoneargument \fi
\ifdefined\dotagmargintext \else \aliased\let\dotagmargintext \gobbleoneargument \fi
@@ -174,7 +174,7 @@
\docheckpagestate\s!margintext\nofmargintexts
%\doifelserightpagestate\s!margintext\nofmargintexts\relax\relax
\realpageno\realpagestateno
- \page_layouts_swap_margins}
+ \page_layouts_swap_margins\v!margin}
\permanent\protected\def\margindata
{\iftrialtypesetting
@@ -198,7 +198,7 @@
% \doifelsenothing{#content}\donefalse\donetrue
% \doifelsetext{#content}\donetrue\donefalse
\ifparameter#content\donefalse\or\donetrue\else\donefalse\fi
- \global\advance\c_typo_margins_n\plusone
+ \global\advanceby\c_typo_margins_n\plusone
\ifdone
\edef\currentmarginreference{\margindataparameter\c!reference}%
\ifempty\currentmarginreference \else
@@ -239,7 +239,7 @@
\margindataparameter\c!command{#content}%
\endstrut
\egroup
- \let\currentmarginfirstheight\empty
+ \lettonothing\currentmarginfirstheight
\else
\setbox\nextbox\naturalhbox \currentmarginreference \bgroup
\typo_margins_data_synchronize
@@ -328,11 +328,11 @@
% \installcorenamespace{oppositemargin}
%
-% \letvalue{\??oppositemargin\v!left }\v!right
-% \letvalue{\??oppositemargin\v!right }\v!left
-% \letvalue{\??oppositemargin\v!inner }\v!outer
-% \letvalue{\??oppositemargin\v!outer }\v!inner
-% \letvalue{\??oppositemargin\v!normal}\v!normal
+% \letcsname\??oppositemargin\v!left \endcsname\v!right
+% \letcsname\??oppositemargin\v!right \endcsname\v!left
+% \letcsname\??oppositemargin\v!inner \endcsname\v!outer
+% \letcsname\??oppositemargin\v!outer \endcsname\v!inner
+% \letcsname\??oppositemargin\v!normal\endcsname\v!normal
%
% \def\oppositemargin#1%
% {\csname\??oppositemargin\ifcsname\??oppositemargin#1\endcsname#1\else\v!normal\fi\endcsname}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-ovl.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-ovl.mkxl
index b3ba2e78388..d4a0db0f16a 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-ovl.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-ovl.mkxl
@@ -30,7 +30,7 @@
%D Watch how we abuse highlights.
-\newcount\c_typo_overload_font_id
+\newinteger\c_typo_overload_font_id
\protected\def\typo_overloads_define#1%
{\begingroup
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-pag.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-pag.lmt
index 9f8a3a1f418..f8ba6822253 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-pag.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-pag.lmt
@@ -39,7 +39,7 @@ local setpenalty = nuts.setpenalty
local getwidth = nuts.getwidth
local getdepth = nuts.getdepth
-local insert_node_after = nuts.insert_after
+local insertnodeafter = nuts.insertafter
local new_penalty = nuts.pool.penalty
local trace_keeptogether = false
@@ -129,7 +129,7 @@ local function keeptogether(start,a,specification)
if getid(previous) == penalty_code then
setpenalty(previous,10000)
else
- insert_node_after(head,previous,new_penalty(10000))
+ insertnodeafter(head,previous,new_penalty(10000))
end
else
break
@@ -144,7 +144,7 @@ local function keeptogether(start,a,specification)
if getid(previous) == penalty_code then
setpenalty(previous,10000)
else
- insert_node_after(head,previous,new_penalty(10000))
+ insertnodeafter(head,previous,new_penalty(10000))
end
else
break
@@ -158,7 +158,7 @@ local function keeptogether(start,a,specification)
if getid(previous) == penalty_code then
setpenalty(previous,10000)
else
- insert_node_after(head,previous,new_penalty(10000))
+ insertnodeafter(head,previous,new_penalty(10000))
end
else
break
@@ -180,7 +180,7 @@ end
-- also look at first non glue/kern node e.g for a dropped caps
--- todo: find_attribute and unset_attributes instead of takeattr
+-- todo: findattribute and unsetattributes instead of takeattr
function parbuilders.keeptogether(head)
local done = false -- can go
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-par.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-par.lmt
index 005d1b32ecb..271a5894ac4 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-par.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-par.lmt
@@ -66,7 +66,7 @@ implement {
}
function builders.checkparcontext(where)
- if top and where == "normal" then
+ if top and (where == "normal" or where == "vmode") then -- vmode added, needs checking
if top == "cycle" then
local s = texget("parshape",true)
if s then
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-par.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-par.mkxl
index 22450e76edb..077d3566c3f 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-par.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-par.mkxl
@@ -24,7 +24,7 @@
\unprotect
%registerctxluafile{node-ltp}{optimize}
-\registerctxluafile{node-ltp}{}
+\registerctxluafile{node-ltp}{autosuffix} % this one has to be updated!
\registerctxluafile{trac-par}{}
\registerctxluafile{typo-par}{}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-pnc.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-pnc.lmt
new file mode 100644
index 00000000000..090cbb5b622
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-pnc.lmt
@@ -0,0 +1,170 @@
+if not modules then modules = { } end modules ['typo-pnc'] = {
+ version = 1.001,
+ comment = "companion to typo-pnc.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local nodes = nodes
+local fonts = fonts
+
+local enableaction = nodes.tasks.enableaction
+
+local nuts = nodes.nuts
+local tonut = nodes.tonut
+
+local nodecodes = nodes.nodecodes
+local gluecodes = nodes.gluecodes
+local glyph_code = nodecodes.glyph
+local glue_code = nodecodes.glue
+local spaceskip_code = gluecodes.spaceskip
+
+local new_kern = nuts.pool.kern
+local insertafter = nuts.insertafter
+
+local nextglyph = nuts.traversers.glyph
+
+local getchar = nuts.getchar
+local getfont = nuts.getfont
+local getboth = nuts.getboth
+local getnext = nuts.getnext
+local getattr = nuts.getattr
+local getid = nuts.getid
+local getsubtype = nuts.getsubtype
+local getwidth = nuts.getwidth
+local setwidth = nuts.setwidth
+local findattribute = nuts.findattribute
+
+local glyph_code = nodes.nodecodes.glyph
+
+local parameters = fonts.hashes.parameters
+local categories = characters.categories
+
+local texsetattribute = tex.setattribute
+local unsetvalue = attributes.unsetvalue
+
+local period = 0x2E
+local factor = 0.5
+
+-- alternative: tex.getlccode and tex.getuccode
+
+typesetters = typesetters or { }
+local typesetters = typesetters
+
+local periodkerns = typesetters.periodkerns or { }
+typesetters.periodkerns = periodkerns
+
+local report = logs.reporter("period kerns")
+local trace = false
+
+trackers.register("typesetters.periodkerns",function(v) trace = v end)
+
+periodkerns.mapping = periodkerns.mapping or { }
+periodkerns.factors = periodkerns.factors or { }
+local a_periodkern = attributes.private("periodkern")
+
+storage.register("typesetters/periodkerns/mapping", periodkerns.mapping, "typesetters.periodkerns.mapping")
+storage.register("typesetters/periodkerns/factors", periodkerns.factors, "typesetters.periodkerns.factors")
+
+local mapping = periodkerns.mapping
+local factors = periodkerns.factors
+
+function periodkerns.handler(head)
+ local _, start = findattribute(head,a_periodkern,glyph_code)
+ if start then
+ for current, char, font in nextglyph, start do
+ if char == period then
+ local a = getattr(current,a_periodkern)
+ if a then
+ local factor = mapping[a]
+ if factor then
+ local prev, next = getboth(current)
+ if prev and next and getid(prev) == glyph_code and getid(next) == glyph_code then
+ local pchar = getchar(prev)
+ local pcode = categories[pchar]
+ if pcode == "lu" or pcode == "ll" then
+ local nchar = getchar(next)
+ local ncode = categories[nchar]
+ if ncode == "lu" or ncode == "ll" then
+ local next2 = getnext(next)
+ if next2 and getid(next2) == glyph_code and getchar(next2) == period then
+ -- A.B.
+ local fontspace, inserted
+ if factor ~= 0 then
+ fontspace = parameters[getfont(current)].space -- can be sped up
+ inserted = factor * fontspace
+ insertafter(head,current,new_kern(inserted))
+ if trace then
+ report("inserting space at %C . [%p] %C .",pchar,inserted,nchar)
+ end
+ end
+ local next3 = getnext(next2)
+ if next3 and getid(next3) == glue_code and getsubtype(next3) == spaceskip_code then
+ local width = getwidth(next3)
+ local space = fontspace or parameters[getfont(current)].space -- can be sped up
+ if width > space then -- space + extraspace
+ local next4 = getnext(next3)
+ if next4 and getid(next4) == glyph_code then
+ local fchar = getchar(next4)
+ if categories[fchar] ~= "lu" then
+ -- A.B.<glue>X
+ if trace then
+ if inserted then
+ report("reverting space at %C . [%p] %C . [%p->%p] %C",pchar,inserted,nchar,width,space,fchar)
+ else
+ report("reverting space at %C . %C . [%p->%p] %C",pchar,nchar,width,space,fchar)
+ end
+ end
+ setwidth(next3,space)
+ else
+ if trace then
+ if inserted then
+ report("keeping space at %C . [%p] %C . [%p] %C",pchar,inserted,nchar,width,fchar)
+ else
+ report("keeping space at %C . %C . [%p] %C",pchar,nchar,width,fchar)
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ return head
+end
+
+local enabled = false
+
+function periodkerns.set(factor)
+ factor = tonumber(factor) or 0
+ if not enabled then
+ enableaction("processors","typesetters.periodkerns.handler")
+ enabled = true
+ end
+ local a = factors[factor]
+ if not a then
+ a = #mapping + 1
+ factors[factors], mapping[a] = a, factor
+ end
+ factor = a
+ texsetattribute(a_periodkern,factor)
+ return factor
+end
+
+-- interface
+
+interfaces.implement {
+ name = "setperiodkerning",
+ actions = periodkerns.set,
+ arguments = "string"
+}
+
+
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-pnc.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-pnc.mkxl
index b5b1a17d676..aceab268523 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-pnc.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-pnc.mkxl
@@ -19,7 +19,7 @@
% with "foo e.g.\ bar" so let's see if we can automate that and at the same time
% inject spaces between the snippets. It gets boring writing this kind of code.
-\registerctxluafile{typo-pnc}{}
+\registerctxluafile{typo-pnc}{autosuffix}
\definesystemattribute[periodkern][public,global]
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-rub.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-rub.lmt
index 82aa3c269df..0de0221ef83 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-rub.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-rub.lmt
@@ -49,7 +49,6 @@ local getwidth = nuts.getwidth
local setwidth = nuts.setwidth
local hpack = nuts.hpack
-local insert_after = nuts.insert_after
local takebox = nuts.takebox
local nextlist = nuts.traversers.list
@@ -74,6 +73,8 @@ local new_kern = nodepool.kern
local setprop = nuts.setprop
local getprop = nuts.getprop
+local findattribute = nuts.findattribute
+
local enableaction = nodes.tasks.enableaction
local nofrubies = 0
@@ -87,6 +88,12 @@ typesetters.rubies = rubies
local trace_rubies = false trackers.register("typesetters.rubies",function(v) trace_rubies = v end)
local report_rubies = logs.reporter("rubies")
+-- todo: use the more modern lmtx storage model
+
+local registervalue = attributes.registervalue
+local getvalue = attributes.getvalue
+local texsetattribute = tex.setattribute
+
do
local shared = nil
@@ -171,14 +178,16 @@ do
local function setruby(n,m)
nofrubies = nofrubies + 1
local r = takebox(n)
- rubylist[nofrubies] = setmetatableindex({
+ local t = {
text = r,
width = getwidth(r),
basewidth = 0,
start = false,
stop = false,
- }, shared)
- texsetattribute(a_ruby,nofrubies)
+ }
+ -- rubylist[nofrubies] = setmetatableindex(t,shared)
+ -- texsetattribute(a_ruby,nofrubies)
+ texsetattribute(a_ruby,registervalue(a_ruby,setmetatableindex(t,shared)))
end
implement {
@@ -189,51 +198,156 @@ do
end
+-- function rubies.check(head)
+-- local current = head
+-- local start = nil
+-- local stop = nil
+-- local found = nil
+--
+-- local function flush(where)
+-- local r = rubylist[found]
+-- if r then
+-- local prev = getprev(start)
+-- local next = getnext(stop)
+-- setprev(start)
+-- setnext(stop)
+-- local h = hpack(start)
+-- if start == head then
+-- head = h
+-- else
+-- setlink(prev,h)
+-- end
+-- setlink(h,next)
+-- local bwidth = getwidth(h)
+-- local rwidth = r.width
+-- r.basewidth = bwidth
+-- r.start = start
+-- r.stop = stop
+-- setprop(h,"ruby",found)
+-- if rwidth > bwidth then
+-- -- ruby is wider
+-- setwidth(h,rwidth)
+-- end
+-- end
+-- end
+--
+-- while current do
+-- local nx = getnext(current)
+-- local id = getid(current)
+-- if id == glyph_code then
+-- local a = getattr(current,a_ruby)
+-- if not a then
+-- if found then
+-- flush("flush 1")
+-- found = nil
+-- end
+-- elseif a == found then
+-- stop = current
+-- else
+-- if found then
+-- flush("flush 2")
+-- end
+-- found = a
+-- start = current
+-- stop = current
+-- end
+-- -- go on
+-- elseif id == kern_code and getsubtype(current,fontkern_code) then
+-- -- go on
+-- elseif found and id == disc_code then
+-- -- go on (todo: look into disc)
+-- elseif found then
+-- flush("flush 3")
+-- found = nil
+-- end
+-- current = nx
+-- end
+--
+-- if found then
+-- flush("flush 4")
+-- end
+-- return head, true -- no need for true
+-- end
+
function rubies.check(head)
- local current = head
- local start = nil
- local stop = nil
- local found = nil
-
- local function flush(where)
- local r = rubylist[found]
- if r then
- local prev = getprev(start)
- local next = getnext(stop)
- setprev(start)
- setnext(stop)
- local h = hpack(start)
- if start == head then
- head = h
- else
- setlink(prev,h)
- end
- setlink(h,next)
- local bwidth = getwidth(h)
- local rwidth = r.width
- r.basewidth = bwidth
- r.start = start
- r.stop = stop
- setprop(h,"ruby",found)
- if rwidth > bwidth then
- -- ruby is wider
- setwidth(h,rwidth)
+ local _, current = findattribute(head,a_ruby)
+ if current then
+
+ local start = nil
+ local stop = nil
+ local found = nil
+
+ local function flush(where)
+-- local r = rubylist[found]
+local r = getvalue(a_ruby,found)
+ if r then
+ -- can be an option
+ while start ~= stop and getid(start) == glue_code do
+ start = getnext(start)
+ end
+ while stop ~= start and getid(stop) == glue_code do
+ stop = getprev(stop)
+ end
+ --
+ local prev = getprev(start)
+ local next = getnext(stop)
+ setprev(start)
+ setnext(stop)
+ local h = hpack(start)
+ if start == head then
+ head = h
+ else
+ setlink(prev,h)
+ end
+ setlink(h,next)
+ local bwidth = getwidth(h)
+ local rwidth = r.width
+ r.basewidth = bwidth
+ r.start = start
+ r.stop = stop
+ setprop(h,"ruby",found)
+ if rwidth > bwidth then
+ -- ruby is wider
+ setwidth(h,rwidth)
+ end
end
end
- end
- while current do
- local nx = getnext(current)
- local id = getid(current)
- if id == glyph_code then
+-- while current do
+-- local nx = getnext(current)
+-- local a = getattr(current,a_ruby)
+-- if not a then
+-- if found then
+-- flush("flush 1")
+-- found = nil
+-- end
+-- elseif a == found then
+-- stop = current
+-- else
+-- if found then
+-- flush("flush 2")
+-- end
+-- found = a
+-- start = current
+-- stop = current
+-- end
+-- current = nx
+-- end
+
+ -- todo: we can avoid a lookup
+
+ while current do
+ local nx = getnext(current)
local a = getattr(current,a_ruby)
if not a then
if found then
flush("flush 1")
found = nil
end
+_, current = findattribute(nx,a_ruby)
elseif a == found then
stop = current
+current = nx
else
if found then
flush("flush 2")
@@ -241,30 +355,26 @@ function rubies.check(head)
found = a
start = current
stop = current
+current = nx
end
- -- go on
- elseif id == kern_code and getsubtype(current,fontkern_code) then
- -- go on
- elseif found and id == disc_code then
- -- go on (todo: look into disc)
- elseif found then
- flush("flush 3")
- found = nil
end
- current = nx
+
end
+
if found then
flush("flush 4")
end
return head, true -- no need for true
end
+
local attach
local function whatever(current,list)
local a = getprop(current,"ruby")
if a then
- local ruby = rubylist[a]
+-- local ruby = rubylist[a]
+local ruby = getvalue(a_ruby,a)
local align = ruby.align or v_middle
local stretch = ruby.stretch or v_no
local hoffset = ruby.hoffset or 0
@@ -358,7 +468,7 @@ local function whatever(current,list)
setlist(current,text)
end
setprop(current,"ruby",false)
- rubylist[a] = nil
+-- rubylist[a] = nil
elseif list then
attach(list)
end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-rub.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-rub.mkxl
index b4b0cbc5ee8..79760c32880 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-rub.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-rub.mkxl
@@ -45,7 +45,8 @@
\enforced\let\ruby\noruby
\edef\currentruby{#1}%
\edef\p_location{\rubyparameter\c!location}%
- \enforced\let|\relax
+ % \enforced\let|\relax
+ \enforced\letcharcode\barasciicode\relax
\ifcsname\??rubyanalyze\p_location\endcsname
\expandafter\lastnamedcs\else\expandafter\typo_ruby_analyze
\fi{#2}{#3}%
@@ -60,7 +61,7 @@
comment {#2}
\relax}
-\setvalue{\??rubyanalyze\v!top}#1#2%
+\defcsname\??rubyanalyze\v!top\endcsname#1#2%
{\clf_ruby
align {\rubyparameter\c!align}%
stretch {\rubyparameter\c!stretch}%
@@ -70,7 +71,7 @@
comment {#2}
\relax}
-\setvalue{\??rubyplacement\v!top}#1#2%
+\defcsname\??rubyplacement\v!top\endcsname#1#2%
{\setbox\scratchbox\hbox\bgroup
\userubystyleandcolor\c!style\c!color
#2%
@@ -79,7 +80,7 @@
\relax
#1}
-\setvalue{\??rubyplacement\v!right}#1#2%
+\defcsname\??rubyplacement\v!right\endcsname#1#2%
{#1%
\edef\p_distance{\rubyparameter\c!distance}%
\ifempty\p_distance\orelse\ifx\p_distance\v!none\else\hskip\p_distance\fi
@@ -88,7 +89,7 @@
\rubyparameter\c!left#2\rubyparameter\c!right
\endgroup}
-\setvalue{\??rubyplacement\v!left}#1#2%
+\defcsname\??rubyplacement\v!left\endcsname#1#2%
{\begingroup
\userubystyleandcolor\c!style\c!color
\rubyparameter\c!left#2\rubyparameter\c!right
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-shp.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-shp.lmt
index 30719c40e28..139468a1929 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-shp.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-shp.lmt
@@ -14,7 +14,7 @@ local texset = tex.set
local texgetcount = tex.getcount
local texgetglue = tex.getglue
-local expandmacro = token.expand_macro
+local expandmacro = token.expandmacro or token.expand_macro -- todo
local implement = interfaces.implement
@@ -217,6 +217,8 @@ do
a = l + r
goto AGAIN
end
+ elseif key == "inspect" then
+ inspect(t)
else
logs.report("system","bad key %a in paragraphshape",key)
break
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-shp.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-shp.mkxl
index b74003068fa..12d3c0115a8 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-shp.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-shp.mkxl
@@ -45,8 +45,21 @@
%D But we wrap this in a more abstract interface:
\installcorenamespace {parshapes}
+\installcorenamespace {shapedparagraph}
-\aliased\let\stopparagraphshape\relax
+\installbasicnativeautosetuphandler \??shapedparagraph {shapedparagraph}
+
+\setupshapedparagraph
+ [\c!method=,
+ \c!list=,
+ \c!lines=\zerocount,
+ \c!mp=,
+ \c!repeat=,
+ \c!hoffset=\zeropoint,
+ \c!voffset=\zeropoint,
+ \c!distance=\zeropoint]
+
+\permanent\protected\lettonothing\stopparagraphshape
\permanent\protected\def\startparagraphshape[#1]#2\stopparagraphshape
{\gdefcsname\??parshapes#1\endcsname{#2}} % global
@@ -62,28 +75,111 @@
\def\spac_shapes_calculate#1% called locally in \LUA
{\startMPcalculation \includeMPgraphic{#1} \stopMPcalculation}
-\permanent\protected\tolerant\def\startshapedparagraph[#1]% no grouping
- {\begingroup
- \getdummyparameters[\c!method=,\c!list=,\c!mp=,\c!repeat=,#1]%
- \edef\p_mp {\dummyparameter\c!mp}%
- \edef\p_repeat{\dummyparameter\c!repeat}%
- \setlocalhsize
+% \permanent\protected\tolerant\def\startshapedparagraph[#1]% no grouping
+% {\begingroup
+% \lettonothing\currentshapedparagraph
+% \setupshapedparagraph[#1]%
+% \edef\p_mp {\shapedparagraphparameter\c!mp}%
+% \edef\p_repeat{\shapedparagraphparameter\c!repeat}%
+% \setlocalhsize
+% \normalexpanded
+% {\endgroup
+% \ifempty\p_mp
+% \setparagraphshape[\shapedparagraphparameter\c!list]%
+% \else
+% \setparagraphmetashape[\shapedparagraphparameter\c!mp][\ifx\p_repeat\v!yes repeat\fi]%
+% \fi
+% \pushparagraphtweak{\shapedparagraphparameter\c!method}\relax}}
+
+\newbox\b_spac_shapes
+
+\def\spac_shapes_list
+ {\edef\p_mp {\shapedparagraphparameter\c!mp}%
+ \edef\p_repeat{\shapedparagraphparameter\c!repeat}%
\normalexpanded
{\endgroup
\ifempty\p_mp
- \setparagraphshape[\dummyparameter\c!list]%
+ \setparagraphshape[\shapedparagraphparameter\c!list]%
\else
- \setparagraphmetashape[\dummyparameter\c!mp][\ifx\p_repeat\v!yes repeat\fi]%
+ \setparagraphmetashape[\p_mp][\ifx\p_repeat\v!yes repeat\fi]%
\fi
- \pushparagraphtweak{\dummyparameter\c!method}\relax}}
+ \pushparagraphtweak{\shapedparagraphparameter\c!method}\relax}}
+
+\def\spac_shapes_text
+ {\getnoflines{\dimexpr\htdp\b_spac_shapes+\shapedparagraphparameter\c!voffset}%
+ \normalexpanded
+ {\endgroup
+ \clf_setparagraphshape
+ left \the\dimexpr
+ \wd\b_spac_shapes+\shapedparagraphparameter\c!distance
+ +\shapedparagraphparameter\c!hoffset
+ \relax
+ right \zeropoint
+ copy \the\numexpr
+ \noflines
+ +\shapedparagraphparameter\c!lines
+ \relax
+ left \zeropoint
+ right \zeropoint
+ % inspect
+ done
+ \relax
+ \pushparagraphtweak{shift}%
+ \dontleavehmode
+ \vtop
+ xoffset \the\dimexpr
+ -\shapedparagraphparameter\c!distance
+ -\wd\b_spac_shapes
+ \relax
+ yoffset \the\dimexpr
+ \shapedparagraphparameter\c!voffset
+ +\strutht
+ \relax
+ {\smashbox\b_spac_shapes
+ \box\b_spac_shapes}}}
+
+\def\spac_shapes_lines
+ {\normalexpanded
+ {\endgroup
+ \clf_setparagraphshape
+ left \shapedparagraphparameter\c!width
+ right \zeropoint
+ copy \shapedparagraphparameter\c!lines
+ left \zeropoint
+ right \zeropoint
+ % inspect
+ done
+ \relax
+ \pushparagraphtweak{shift}}}
+
+\permanent\protected\tolerant\def\startshapedparagraph[#1]% no grouping
+ {\begingroup
+ \lettonothing\currentshapedparagraph
+ \setupshapedparagraph[#1]%
+ \setlocalhsize
+ \doifsomething{\shapedparagraphparameter\c!text}
+ {\global\setbox\b_spac_shapes\vpack\bgroup
+ \forgetall
+ \shapedparagraphparameter\c!text
+ \egroup}%
+ \ifvoid\b_spac_shapes
+ \ifnum\shapedparagraphparameter\c!lines>\zerocount
+ \spac_shapes_lines
+ \else
+ \spac_shapes_list
+ \fi
+ \else
+ \spac_shapes_text
+ \fi
+ \ignorespaces}
\permanent\protected\def\stopshapedparagraph
{\popparagraphtweak}
%D As it is not much code we now put it here:
-\newbox \shapetextbox
-\newcount\shapetextindex
+\newbox \shapetextbox
+\newinteger\shapetextindex
\permanent\protected\def\startshapetext[#1]%
{\begingroup
@@ -94,33 +190,61 @@
\dontcomplain
\setuptolerance[\v!verytolerant,\v!stretch]% default
% \setuplayout[\c!grid=\v!yes]% goes wrong, we need a local one
- \pushparagraphtweak {shift}}
+ \pushparagraphtweak{shift}}
\permanent\protected\def\stopshapetext
{\popparagraphtweak
\egroup
\endgroup}
+% \permanent\protected\def\getshapetext
+% {\vbox\bgroup
+% \forgetall
+% \dontcomplain
+% \global\advanceby\shapetextindex\plusone
+% \scratchcounter\getshapeparameter{lines}\relax
+% \ifnum\scratchcounter>\zerocount
+% \scratchwidth \getshapeparameter{width}\scaledpoint\relax
+% \scratchheight \getshapeparameter{height}\scaledpoint\relax
+% \setbox\scratchbox\vpack to \scratchheight
+% {\splittopskip\strutheight
+% \vskip\dimexpr\getshapeparameter{voffset}\scaledpoint\relax
+% \ifcase\numexpr\getshapeparameter{first}\relax\else
+% \vskip\lineheight
+% \fi
+% \hskip\dimexpr\getshapeparameter{hoffset}\scaledpoint\relax
+% \hpack{\vsplit\shapetextbox to \scratchcounter\lineheight}}%
+% \wd\scratchbox\scratchwidth
+% \ht\scratchbox\scratchheight
+% \dp\scratchbox\zeropoint
+% \box\scratchbox
+% \else
+% % what now
+% \fi
+% \egroup}
+
\permanent\protected\def\getshapetext
{\vbox\bgroup
\forgetall
\dontcomplain
- \global\advance\shapetextindex\plusone
+ \global\advanceby\shapetextindex\plusone
\scratchcounter\getshapeparameter{lines}\relax
\ifnum\scratchcounter>\zerocount
\scratchwidth \getshapeparameter{width}\scaledpoint\relax
\scratchheight \getshapeparameter{height}\scaledpoint\relax
+ \scratchhoffset\dimexpr\getshapeparameter{hoffset}\scaledpoint\relax
+ \scratchvoffset\dimexpr\getshapeparameter{voffset}\scaledpoint\relax
\setbox\scratchbox\vpack to \scratchheight
{\splittopskip\strutheight
- \vskip\dimexpr\getshapeparameter{voffset}\scaledpoint\relax
+ \vskip\scratchvoffset
\ifcase\numexpr\getshapeparameter{first}\relax\else
\vskip\lineheight
\fi
- \hskip\dimexpr\getshapeparameter{hoffset}\scaledpoint\relax
+ \hskip\scratchhoffset
\hpack{\vsplit\shapetextbox to \scratchcounter\lineheight}}%
- \wd\scratchbox\scratchwidth
- \ht\scratchbox\scratchheight
- \dp\scratchbox\zeropoint
+ \wd\scratchbox\dimexpr\scratchwidth +\scratchhoffset\relax
+ \ht\scratchbox\dimexpr\scratchheight+\scratchvoffset\relax
+ \dp\scratchbox\strutdp % zeropoint
\box\scratchbox
\else
% what now
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-spa.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-spa.lmt
index 84dd0696d6c..88ade876ed7 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-spa.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-spa.lmt
@@ -29,12 +29,12 @@ local getprev = nuts.getprev
local getattr = nuts.getattr
local isglyph = nuts.isglyph
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local remove_node = nuts.remove
-local end_of_math = nuts.end_of_math
-local unset_attributes = nuts.unset_attributes
-local find_attribute = nuts.find_attribute
+local endofmath = nuts.endofmath
+local unsetattributes = nuts.unsetattributes
+local findattribute = nuts.findattribute
local nodepool = nuts.pool
local new_penalty = nodepool.penalty
@@ -72,7 +72,7 @@ end
-- todo cache lastattr
function spacings.handler(head)
- local _, start = find_attribute(head, a_spacings)
+ local _, start = findattribute(head, a_spacings)
if start then
local done = false
-- head is always begin of par (whatsit), so we have at least two prev nodes
@@ -96,10 +96,8 @@ function spacings.handler(head)
local ok = false
local prevprev = getprev(prev)
if alternative == 1 then
- local somespace = somespace(prev,true)
- if somespace then
- local somepenalty = somepenalty(prevprev,10000)
- if somepenalty then
+ if somespace(prev,true) then
+ if somepenalty(prevprev,10000) then
if trace_spacing then
report_spacing("removing penalty and space before %C (left)",char)
end
@@ -120,8 +118,8 @@ function spacings.handler(head)
if trace_spacing then
report_spacing("inserting penalty and space before %C (left)",char)
end
- insert_node_before(head,start,new_penalty(10000))
- insert_node_before(head,start,new_glue(left*quad))
+ insertnodebefore(head,start,new_penalty(10000))
+ insertnodebefore(head,start,new_glue(left*quad))
end
end
local next = getnext(start)
@@ -129,24 +127,19 @@ function spacings.handler(head)
local ok = false
local nextnext = getnext(next)
if alternative == 1 then
- local somepenalty = somepenalty(next,10000)
- if somepenalty then
- local somespace = somespace(nextnext,true)
- if somespace then
+ if somepenalty(next,10000) then
+ if somespace(nextnext,true) then
if trace_spacing then
report_spacing("removing penalty and space after %C right",char)
end
head = remove_node(head,next,true)
head = remove_node(head,nextnext,true)
end
- else
- local somespace = somespace(next,true)
- if somespace then
- if trace_spacing then
- report_spacing("removing space after %C (right)", char)
- end
- head = remove_node(head,next,true)
+ elseif somespace(next,true) then
+ if trace_spacing then
+ report_spacing("removing space after %C (right)", char)
end
+ head = remove_node(head,next,true)
end
ok = true
else
@@ -156,8 +149,8 @@ function spacings.handler(head)
if trace_spacing then
report_spacing("inserting penalty and space after %C (right)",char)
end
- insert_node_after(head,start,new_glue(right*quad))
- insert_node_after(head,start,new_penalty(10000))
+ insertnodeafter(head,start,new_glue(right*quad))
+ insertnodeafter(head,start,new_penalty(10000))
end
end
end
@@ -165,14 +158,14 @@ function spacings.handler(head)
done = true
end
elseif id == math_code then
- start = end_of_math(start) -- weird, can return nil .. no math end?
+ start = endofmath(start) -- weird, can return nil .. no math end?
end
if start then
start = getnext(start)
end
end
if done then
- -- unset_attributes(a_spacings,head)
+ -- unsetattributes(a_spacings,head)
end
end
return head
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-sus.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-sus.lmt
index 2c6d9ea69c9..b8d0d1cd97e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-sus.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-sus.lmt
@@ -59,9 +59,9 @@ local setattr = nuts.setattr
local setlist = nuts.setlist
local setcolor = nodes.tracers.colors.set
-local insert_before = nuts.insert_before
-local insert_after = nuts.insert_after
-local end_of_math = nuts.end_of_math
+local insertbefore = nuts.insertbefore
+local insertafter = nuts.insertafter
+local endofmath = nuts.endofmath
local nodepool = nuts.pool
@@ -127,22 +127,22 @@ local function mark(head,current,id,color)
local width = getwidth(current)
local rule = new_rule(width)
local kern = new_kern(-width)
- head = insert_before(head,current,rule)
- head = insert_before(head,current,kern)
+ head = insertbefore(head,current,rule)
+ head = insertbefore(head,current,kern)
setcolor(rule,color)
-- elseif id == kern_code then
-- local width = getkern(current)
-- local rule = new_rule(width)
-- local kern = new_kern(-width)
- -- head = insert_before(head,current,rule)
- -- head = insert_before(head,current,kern)
+ -- head = insertbefore(head,current,rule)
+ -- head = insertbefore(head,current,kern)
-- setcolor(rule,color)
else
local width, height, depth = getwhd(current)
local extra = fonts.hashes.xheights[getfont(current)] / 2
local rule = new_rule(width,height+extra,depth+extra)
local hlist = new_hlist(rule)
- head = insert_before(head,current,hlist)
+ head = insertbefore(head,current,hlist)
setcolor(rule,color)
setcolor(current,"white")
end
@@ -230,7 +230,7 @@ function typesetters.marksuspects(head)
end
current = getnext(current)
elseif id == math_code then
- current = getnext(end_of_math(current))
+ current = getnext(endofmath(current))
elseif id == glue_code then
local a = getattr(current,a_characters)
if a then
@@ -273,7 +273,7 @@ local function showsuspects(head)
head, current = mark(head,current,id,colors[a])
end
elseif id == math_code then
- current = end_of_math(current)
+ current = endofmath(current)
elseif id == hlist_code or id == vlist_code then
local list = getlist(current)
if list then
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-syn.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-syn.lmt
new file mode 100644
index 00000000000..53e5763919a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-syn.lmt
@@ -0,0 +1,668 @@
+if not modules then modules = { } end modules ['typo-syn'] = {
+ version = 1.000,
+ optimize = true,
+ comment = "companion to typo-syn.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- For the moment we have the splitter here but it actually belongs
+-- in the builders namespace.
+
+local nodes = nodes
+
+local tasks = nodes.tasks
+local enableaction = tasks.enableaction
+----- disableaction = tasks.disableaction
+
+local nuts = nodes.nuts
+local tonut = nodes.tonut
+
+local getattr = nuts.getattr
+local getattrlist = nuts.getattrlist
+local getdepth = nuts.getdepth
+local getdirection = nuts.getdirection
+local getdisc = nuts.getdisc
+local getglue = nuts.getglue
+local getheight = nuts.getheight
+local getid = nuts.getid
+local getlist = nuts.getlist
+local getnext = nuts.getnext
+local getprev = nuts.getprev
+local getprop = nuts.getprop
+local getsubtype = nuts.getsubtype
+local gettotal = nuts.gettotal
+local getwhd = nuts.getwhd
+local getwidth = nuts.getwidth
+local setattrlist = nuts.setattrlist
+local setdepth = nuts.setdepth
+local setdisc = nuts.setdisc
+local setheight = nuts.setheight
+local setlink = nuts.setlink
+local setlist = nuts.setlist
+local setnext = nuts.setnext
+local setoffsets = nuts.setoffsets
+local setprev = nuts.setprev
+local setprop = nuts.setprop
+local setwidth = nuts.setwidth
+
+local hpack = nuts.hpack
+local rangedimensions = nuts.rangedimensions
+local insertbefore = nuts.insertbefore
+local insertafter = nuts.insertafter
+local removenode = nuts.remove
+local flushnode = nuts.flush
+
+local traverselist = nuts.traverselist
+
+local nodecodes = nodes.nodecodes
+local glyph_code = nodecodes.glyph
+local rule_code = nodecodes.rule
+local dir_code = nodecodes.dir
+local disc_code = nodecodes.disc
+local hlist_code = nodecodes.hlist
+local vlist_code = nodecodes.vlist
+local math_code = nodecodes.math
+local glue_code = nodecodes.glue
+local kern_code = nodecodes.kern
+local penalty_code = nodecodes.penalty
+
+local line_code = nodes.listcodes.line
+local fontkern_code = nodes.kerncodes.fontkern
+local parfillskip_code = nodes.gluecodes.parfillrightskip
+local baselineskip_code = nodes.gluecodes.baselineskip
+
+local new_direction = nuts.pool.direction
+
+local runningrule = tex.magicconstants.runningrule
+
+-----------------
+
+local synchronize = typesetters.synchronize or { }
+typesetters.synchronize = synchronize or { }
+
+local a_synchronize = attributes.private("synchronize")
+local registervalue = attributes.registervalue
+local getvalue = attributes.getvalue
+local hasvalues = attributes.hasvalues
+
+local trace = false
+-- local trace = true
+local report = logs.reporter("parallel")
+
+local pushsavelevel = tex.pushsavelevel -- token.expandmacro("bgroup")
+local popsavelevel = tex.popsavelevel -- token.expandmacro("egroup")
+local dontcomplain = tex.dontcomplain
+
+local index = 0
+local lastattr = nil
+local lastline = nil
+
+interfaces.implement {
+ name = "registersynchronize",
+ arguments = { "dimen", "dimen", "dimen", "box" },
+ actions = function(ht,dp,slack,box)
+ index = index + 1
+ box = tonut(box)
+ local t = {
+ index = index,
+ lineheight = ht,
+ linedepth = dp,
+ slack = slack,
+ height = getheight(height),
+ depth = getheight(depth),
+ box = box,
+ }
+ local v = registervalue(a_synchronize,t)
+ tex.setattribute(a_synchronize,v)
+ if index > 0 then
+ enableaction("vboxbuilders", "typesetters.synchronize.handler")
+ enableaction("mvlbuilders", "typesetters.synchronize.handler")
+ end
+ end,
+}
+
+-- When this is stable it can become a proper helper and primitive.
+
+local function hsplit(box,targetwidth,targetheight,targetdepth,mcriterium,pcriterium,upto)
+ local first = getlist(box)
+ local last = first
+ local current = first
+ local previous = current
+ local lastdisc = nil
+ local lastglyph = nil
+ -- local stretch = 0
+ -- local shrink = 0
+ local width = 0
+ local height = 0
+ local depth = 0
+ local dirstack = { } -- can move to outer
+ local dirtop = 0
+ local minwidth = targetwidth
+ local maxwidth = targetwidth
+ local usedwidth = targetwidth
+ while true do
+ previous = current
+ local id = getid(current)
+ if id == glyph_code then
+ local wd, ht, dp = getwhd(current)
+ -- find next break first
+ local newwidth = width + wd
+ if newwidth >= usedwidth then
+ if not lastdisc and lastglyph then
+ last = getprev(lastglyph)
+ end
+ break
+ else
+ width = newwidth
+ if ht > height then
+ height = ht
+ end
+ if dp > depth then
+ depth = dp
+ end
+ end
+ if not lastglyph then
+ lastglyph = current
+ end
+ elseif id == kern_code then
+ local wd = getwidth(current)
+ local newwidth = width + wd
+ if getsubtype(current) == fontkern_code then
+ -- assume sane kerns
+ width = newwidth
+ else
+ last = previous
+ if newwidth >= usedwidth then
+ break
+ else
+ width = newwidth
+ end
+ lastdisc = nil
+ lastglyph = nil
+ end
+ elseif id == disc_code then
+ local pre, post, replace = getdisc(current)
+ local wd = replace and rangedimensions(box,replace) or 0
+ local newwidth = width + wd
+ if newwidth >= usedwidth then
+ break
+ end
+ local wd = pre and rangedimensions(box,pre) or 0
+ local prewidth = width + wd
+ if prewidth >= usedwidth then
+ break
+ end
+ width = newwidth
+ lastdisc = current
+ else
+ -- common code at the end
+ if id == glue_code or id == math_code then -- refactor : common code
+ -- leaders
+ last = previous
+ local wd, more, less = getglue(current)
+ local newwidth = width + wd
+ if newwidth >= usedwidth then
+ break
+ else
+ width = newwidth
+ -- stretch = stretch + more
+ -- shrink = shrink + less
+ -- also for statistics
+ maxwidth = maxwidth + more
+ minwidth = minwidth + less
+ -- can become an option:
+ usedwidth = minwidth
+ end
+ elseif id == hlist_code or id == vlist_code then
+ last = previous
+ local wd, ht, dp = getwhd(current)
+ local newwidth = width + wd
+ if newwidth >= usedwidth then
+ break
+ else
+ width = newwidth
+ if ht > height then
+ height = ht
+ end
+ if dp > depth then
+ depth = dp
+ end
+ end
+ elseif id == rule_code then
+ last = previous
+ local wd, ht, dp = getwhd(current)
+ local newwidth = width + wd
+ if newwidth >= usedwidth then
+ break
+ else
+ width = newwidth
+ if ht ~= runningrule and ht > height then
+ height = ht
+ end
+ if dp ~= runningrule and dp > depth then
+ depth = dp
+ end
+ end
+ elseif id == dir_code then
+ local dir, cancel = getdirection(current)
+ if cancel then
+ if dirtop > 0 then
+ dirtop = dirtop - 1
+ end
+ else
+ dirtop = dirtop + 1
+ dirstack[dirtop] = dir
+ end
+ end
+ lastdisc = nil
+ lastglyph = nil
+ end
+ local next = getnext(current)
+ if next then
+ current = next
+ else
+ last = previous
+ break
+ end
+ end
+ local next
+ if lastdisc then
+ local pre, post, replace, pretail, posttail, replacetail = getdisc(lastdisc,true)
+ last = getprev(lastdisc)
+ --
+ next = getnext(lastdisc)
+ if next then
+ setprev(next)
+ end
+ --
+ setlink(last,pre)
+ last = pretail
+ if post then
+ setlink(posttail,next)
+ next = post
+ end
+ setdisc(lastdisc,nil,nil,replace)
+ flushnode(lastdisc)
+ else
+ next = getnext(last)
+ if next then
+ setprev(next)
+ end
+ setnext(last)
+ end
+ while last do
+ local id = getid(last)
+ if id == glue_code or id == penalty_code then
+ -- if id == glue_code then
+ -- local wd, more, less = getglue(last)
+ -- -- stretch = stretch - more
+ -- -- shrink = shrink - less
+ -- width = width - wd
+ -- -- also for statistics
+ -- maxwidth = maxwidth - more
+ -- minwidth = minwidth - less
+ -- -- can become an option:
+ -- usedwidth = minwidth
+ -- end
+ first, last = removenode(first,last,true)
+ else
+ break
+ end
+ end
+ if dirtop > 0 then
+ for i=dirtop,1,-1 do
+ local d = new_direction(dirstack[i],true)
+ first, last = insertafter(first,last,d)
+ end
+ for i=1,dirtop do
+ local d = new_direction(dirstack[i],false)
+ next = insertbefore(next,next,d)
+ end
+ end
+ if first then
+ -- pushsavelevel()
+ -- dontcomplain()
+ local result
+ if upto then
+ result = hpack(first)
+ else
+ local badness, overshoot
+ result, badness, overshoot = hpack(first,targetwidth,"exactly")
+ local pdone = pcriterium and badness > pcriterium
+ local mdone = mcriterium and badness > mcriterium
+ if overshoot > 0 then
+ if pdone then
+ result = hpack(first)
+ end
+ elseif overshoot < 0 then
+ if mdone then
+ result = hpack(first)
+ end
+ else
+ if pdone or mdone then
+ result = hpack(first)
+ end
+ end
+ end
+ -- popsavelevel()
+ setattrlist(result,getattrlist(box)) -- useattrlist(result,box)
+ setheight(result,targetheight or height)
+ setdepth(result,targetdepth or depth)
+ setlist(box,next)
+ setwidth(box,rangedimensions(box,next))
+ return result
+ end
+end
+
+do
+
+ local scanners = tokens.scanners
+ local scanword = scanners.word
+ local scaninteger = scanners.integer
+ local scandimen = scanners.dimen
+
+ local tonode = nuts.tonode
+ local getbox = nuts.getbox
+ local setbox = nuts.setbox
+
+ local direct_value = tokens.values.direct
+ local none_value = tokens.values.none
+
+ interfaces.implement {
+ name = "hsplit",
+ protected = true,
+ public = true,
+ usage = "value",
+ actions = function(what)
+ local n = scaninteger()
+ local w = 0
+ local h = false
+ local d = false
+ local pcriterium = false
+ local mcriterium = false
+ local upto = false
+ while true do
+ local key = scanword()
+ if key == "to" then
+ upto = false
+ w = scandimen()
+ elseif key == "upto" then
+ upto = true
+ w = scandimen()
+ elseif key == "width" then
+ w = scandimen()
+ elseif key == "height" then
+ h = scandimen()
+ elseif key == "depth" then
+ d = scandimen()
+ elseif key == "criterium" then
+ pcriterium = scaninteger()
+ mcriterium = scaninteger()
+ elseif key == "shrinkcriterium" then
+ mcriterium = scaninteger()
+ elseif key == "stretchcriterium" then
+ pcriterium = scaninteger()
+ else
+ break
+ end
+ end
+ pushsavelevel()
+ dontcomplain()
+ local r = hsplit(getbox(n),w,h,d,mcriterium,pcriterium,upto)
+ popsavelevel()
+ if r then
+ if what == "value" then
+ return direct_value, r
+ else
+ context(tonode(r))
+ end
+ else
+ setbox(n)
+ if what == "value" then
+ return none_value, nil
+ end
+ end
+ end,
+ }
+
+end
+
+local function getproperties(parent)
+ local props = getprop(parent,"parallel")
+ if not props then
+ local w, h, d = getwhd(parent)
+ props = {
+ width = w,
+ height = h,
+ depth = d,
+ }
+ setprop(parent,"parallel",props)
+ end
+ return props
+end
+
+local function setproperties(parent,data,result,level,ctotal)
+ local props = getproperties(parent)
+ local depth = props.depth
+ local height = props.height
+ local delta = data.linedepth - depth
+ if delta > 0 then
+ depth = data.linedepth
+ setdepth(parent,depth)
+ props.depth = depth
+ local n = getnext(parent)
+ if n and getid(n) == glue_code and getsubtype(n) == baselineskip_code then
+ setwidth(n,getwidth(n) - delta)
+ end
+ end
+-- if height < data.lineheight then
+-- height = data.lineheight
+-- setheight(parent,height)
+-- props.height = height
+-- end
+ local offset = level * ctotal
+ if props.depth + offset > depth then
+ setdepth(parent,props.depth+offset)
+ end
+ setoffsets(result,0,-offset)
+ setwidth(result,0)
+end
+
+local function flush(head,first,last,a,parent,nesting)
+ if first and nesting == 0 then
+ local data = getvalue(a_synchronize,a)
+ local upto = getnext(last)
+ if upto and getid(upto) == penalty_code then
+ upto = getnext(upto)
+ end
+ if upto and getid(upto) == glue_code and getsubtype(upto) == parfillskip_code then
+ upto = getnext(upto)
+ end
+ local props = getproperties(parent)
+ local width = rangedimensions(parent,first,upto)
+ if width > props.width then
+ width = props.width
+ end
+ local content = data.box
+ local index = data.index
+ if not content then
+ if trace then
+ report("index %i, verdict %a",index,"done")
+ end
+ else
+ local result = nil
+ local cwidth = getwidth(content)
+ local ctotal = gettotal(content)
+ if cwidth <= width then
+ if trace then
+ report("index %i, available %p, content %p, verdict %a",index,width,cwidth,"fit")
+ end
+ result = content
+ data.box = nil
+ elseif cwidth > width then
+ if trace then
+ report("index %i, available %p, content %p, verdict %a",index,width,cwidth,"overflow")
+ end
+ result = hsplit(content,width-(data.slack or 0),nil,nil,200)
+ lastattr = a
+ lastline = parent
+ else
+ report("index %i, verdict %a",index,"weird")
+ end
+ if result then
+ setproperties(parent,data,result,1,ctotal)
+ head = insertbefore(head,first,result)
+ end
+ end
+ end
+ return head
+end
+
+local function lastflush(lastline,lastattr)
+ local data = getvalue(a_synchronize,lastattr)
+ if not data then
+ return
+ end
+ local content = data.box
+ if not content or getwidth(content) == 0 then
+ return
+ end
+ local head = getlist(lastline)
+ if not head then
+ return
+ end
+ local first = head
+ local last = nil
+ local props = getproperties(lastline)
+ local width = props.width
+ local height = props.height
+ local depth = props.depth
+ local level = 1
+ if depth < data.linedepth then
+ depth = data.linedepth
+ setdepth(lastline,depth)
+ end
+ if height < data.lineheight then
+ height = data.lineheight
+ setheight(lastline,height)
+ end
+ while true do
+ local content = data.box
+ local index = data.index
+ if content then
+ local result = nil
+ local total = 0
+ local cwidth = getwidth(content)
+ local ctotal = gettotal(content)
+ if cwidth <= width then
+ if trace then
+ report("index %i, available %p, content %p, verdict %a",index,width,cwidth,"fit")
+ end
+ result = content
+ data.box = nil
+ elseif cwidth > width then
+ if trace then
+ report("index %i, available %p, content %p, verdict %a",index,width,cwidth,"overflow")
+ end
+ result = hsplit(content,width-(data.slack or 0),nil,nil,200)
+ else
+ report("index %i, verdict %a",index,"weird")
+ end
+ if result then
+ level = level + 1
+ setproperties(lastline,data,result,level,ctotal)
+ head = insertbefore(head,first,result)
+ setlist(lastline,head)
+ else
+ break
+ end
+ else
+ break
+ end
+ end
+end
+
+local processranges = nuts.processranges
+
+function synchronize.handler(head,where)
+ if where == "hmodepar" and hasvalues(a_synchronize) then
+ lastattr = nil
+ lastline = nil
+ for n, id, subtype in traverselist(head) do
+ if subtype == line_code then
+ lastattr = nil
+ local list = getlist(n)
+ local head = processranges(a_synchronize,flush,list,n)
+ if head ~= list then
+ setlist(n,head)
+ end
+ end
+ end
+ if lastattr and lastline then
+ lastflush(lastline,lastattr)
+ end
+ end
+ return head
+end
+
+--
+
+local settings_to_array = utilities.parsers.settings_to_array
+local get_buffer_content = buffers.getcontent
+local splitlines = string.splitlines
+
+interfaces.implement {
+ name = "synchronizesteps",
+ arguments = { {
+ { "list" },
+ { "split" },
+ { "buffer" },
+ { "text" },
+ } },
+ actions = function(t)
+ local split = t.split -- not used yet
+ local list = t.list
+ local buffer = t.buffer
+ local text = t.text
+ local data = false
+ if buffer and buffer ~= "" then
+ data = settings_to_array(buffer)
+ if #data == 2 then
+ for i=1,#data do
+ data[i] = splitlines(get_buffer_content(data[i]) or "")
+ end
+ else
+ return
+ end
+ elseif text and text ~= "" then
+ data = settings_to_array(text)
+ if #data == 2 then
+ for i=1,#data do
+ data[i] = settings_to_array(data[i])
+ end
+ else
+ return
+ end
+ else
+ return
+ end
+ if list and list ~= "" then
+ list = settings_to_array(list)
+ else
+ list = { }
+ end
+ local done = data[1]
+ local dtwo = data[2]
+ if #done == #dtwo then
+ local lone = list[1] or ""
+ local ltwo = list[2] or ""
+ for i=1,#done do
+ context.dosplitsynchronize(lone,ltwo,done[i],dtwo[i])
+ end
+ else
+ context.type("[different sizes in synchronize]")
+ end
+ end,
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-syn.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-syn.mkxl
new file mode 100644
index 00000000000..3f71fa43d62
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-syn.mkxl
@@ -0,0 +1,261 @@
+%D \module
+%D [ file=typo-syn,
+%D version=2022.01.06,
+%D title=\CONTEXT\ Typesetting Macros,
+%D subtitle=synchronizers,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% Musical timestamp: this code was written when I start relistening my whole
+% digitized cd collection with the (new) r2r soekris dac in my setup.
+
+\writestatus{loading}{ConTeXt Typesetting Macros / Synchronizers}
+
+\registerctxluafile{typo-syn}{autosuffix}
+
+%D Yet another experiment (triggered by a question / demand from Ton Otten.)
+%D
+%D \starttyping
+%D \setupsynchronize [paralleltext] [color=darkblue]
+%D % \setupsynchronize [paralleltext] [style=\tx,color=darkred]
+%D % \setupsynchronize [paralleltext] [style=\txx,color=darkgreen]
+%D
+%D \dorecurse{10}{%
+%D \paralleltext
+%D {[een allereerste zinnetje]}
+%D {[een tweede zinnetje]}%
+%D \space
+%D \paralleltext
+%D {[een derde zin]}
+%D {[een vierde zinnetje]}
+%D \space
+%D } \removeunwantedspaces
+%D \par test line \page
+%D
+%D \paralleltext
+%D {[\ignorespaces\samplefile{tufte}\removeunwantedspaces]}
+%D {[\samplefile{ward}\removeunwantedspaces]}%
+%D \par test line \page
+%D
+%D \paralleltext
+%D {[\ignorespaces\samplefile{tufte}\removeunwantedspaces]}
+%D {[\ignorespaces\samplefile{tufte}\removeunwantedspaces]}%
+%D \par test line \page
+%D
+%D \paralleltext
+%D {[\ignorespaces\samplefile{ward}\removeunwantedspaces]}%
+%D {[\ignorespaces\samplefile{tufte}\removeunwantedspaces]}
+%D \par test line \page
+%D
+%D \startbuffer[en]
+%D This is an english text and
+%D this is also something english;
+%D as is this.
+%D Not that there is much meaning in it.
+%D \stopbuffer
+%D
+%D \startbuffer[nl]
+%D Dit is een nederlandse tekst
+%D en dit is ook wat nederlands;
+%D net als dit.
+%D Niet dat het veel te betekenen heeft.
+%D \stopbuffer
+%D
+%D \definesynchronizecontent
+%D [nl]
+%D [language=nl,
+%D color=darkred]
+%D
+%D \definesynchronizecontent
+%D [en]
+%D [language=en,
+%D color=darkgreen]
+%D
+%D \definesynchronize
+%D [parallel-en-nl]
+%D [list={en,nl}]
+%D
+%D \placesynchronize
+%D [parallel-en-nl]
+%D [buffer={en,nl}]
+%D
+%D \blank
+%D
+%D \placesynchronize
+%D [parallel-en-nl]
+%D [split={.},
+%D text={
+%D {This is an english text and this is also something english; as is this. Not that there is much meaning in it.},
+%D {Dit is een nederlandse tekst en dit is ook wat nederlands; net als dit. Niet dat het veel te betekenen heeft.}
+%D }]
+%D
+%D \blank
+%D
+%D \placesynchronize
+%D [parallel-en-nl]
+%D [split={.},
+%D text={
+%D {
+%D {This is an english text and this is also something english;},
+%D {as is this.},
+%D {Not that there is much meaning in it.}
+%D },
+%D {
+%D {Dit is een nederlandse tekst en dit is ook wat nederlands;},
+%D {net als dit.},
+%D {Niet dat het veel te betekenen heeft.}
+%D }
+%D }]
+%D
+%D \setupsynchronizecontent
+%D [nl]
+%D [language=nl,
+%D style=\tx,
+%D left={[},
+%D right={]},
+%D color=darkblue]
+%D
+%D \placesynchronize
+%D [parallel-en-nl]
+%D [distance=1pt,
+%D buffer={en,nl}]
+%D \stoptyping
+
+\unprotect
+
+\definesystemattribute[synchronize][public]
+
+\installcorenamespace {synchronize}
+\installcorenamespace {synchronizecontent}
+
+\installcommandhandler \??synchronize {synchronize} \??synchronize
+\installcommandhandler \??synchronizecontent {synchronizecontent} \??synchronizecontent
+
+\setupsynchronize
+ [\c!buffer=,
+ \c!text=,
+ \c!list=,
+ \c!split=,
+ \c!distance=\zeropoint]
+
+\let\typo_sync_rule\novrule
+
+\installtextracker
+ {synchronize}
+ {\let\typo_sync_rule\vrule}
+ {\let\typo_sync_rule\novrule}
+
+\tolerant\protected\def\typo_synchronize#1#*[#2]#:#3#4%
+ {\dontleavehmode
+ \begingroup
+ \def\currentsynchronize{#1}%
+ \setupcurrentsynchronize[#2]%
+ \scratchdistance\synchronizeparameter\c!distance
+ \dontcomplain
+ \setbox\scratchboxtwo\hbox\bgroup
+ \usesynchronizestyleandcolor\c!style\c!color
+ \begstrut
+ \ignorespaces#4\removeunwantedspaces
+ \endstrut
+ \egroup
+ \scratchdimentwo\wd\scratchboxtwo
+ \advanceby\scratchdimentwo\scratchdistance
+ \clf_registersynchronize
+ \strutht
+ \strutdp
+ .1\onepoint
+ \box\scratchboxtwo
+ \relax
+ \setbox\scratchboxone\hbox\bgroup
+ \ignorespaces#3\removeunwantedspaces
+ \egroup
+ \scratchdimenone\wd\scratchboxone
+ \unhbox\scratchboxone
+ \advanceby\scratchdimentwo-\scratchdimenone
+ \ifdim\scratchdimentwo>\zeropoint
+ \wordboundary
+ \typo_sync_rule
+ \s!width \scratchdimentwo
+ \s!height \exheight
+ \s!depth \zeropoint
+ \relax
+ \fi
+ \endgroup}
+
+\protected\def\dosplitsynchronize#1#2#3#4%
+ {\begingroup
+ \dontcomplain
+ \setbox\scratchboxtwo\hbox\bgroup
+ \def\currentsynchronizecontent{#2}%
+ \usesynchronizecontentstyleandcolor\c!style\c!color
+ \uselanguageparameter\synchronizecontentparameter
+ \synchronizecontentparameter\c!left
+ \begstrut
+ \ignorespaces
+ #4\removeunwantedspaces
+ \endstrut
+ \synchronizecontentparameter\c!right
+ \egroup
+ \scratchdimentwo\wd\scratchboxtwo
+ \advanceby\scratchdimentwo\scratchdistance
+ \clf_registersynchronize
+ \strutht
+ \strutdp
+ .1\onepoint
+ \box\scratchboxtwo
+ \relax
+ \setbox\scratchboxone\hbox\bgroup
+ \def\currentsynchronizecontent{#1}%
+ \usesynchronizecontentstyleandcolor\c!style\c!color
+ \uselanguageparameter\synchronizecontentparameter
+ \synchronizecontentparameter\c!left
+ \ignorespaces#3\removeunwantedspaces
+ \synchronizecontentparameter\c!right
+ \egroup
+ \scratchdimenone\wd\scratchboxone
+ \unhbox\scratchboxone
+ \advanceby\scratchdimentwo-\scratchdimenone
+ \ifdim\scratchdimentwo>\zeropoint
+ \wordboundary
+ \typo_sync_rule
+ \s!width \scratchdimentwo
+ \s!height \exheight
+ \s!depth \zeropoint
+ \relax
+ \fi
+ \endgroup
+ \space}
+
+\tolerant\protected\def\placesynchronize[#1]#*[#2]%
+ {\dontleavehmode
+ \begingroup
+ \def\currentsynchronize{#1}%
+ \setupcurrentsynchronize[#2]%
+ \scratchdistance\synchronizeparameter\c!distance
+ \clf_synchronizesteps
+ list {\synchronizeparameter\c!list}%
+ split {\synchronizeparameter\c!split}%
+ buffer {\synchronizeparameter\c!buffer}%
+ text {\synchronizeparameter\c!text}%
+ \relax
+ \removeunwantedspaces
+ \endgroup}
+
+\appendtoks
+ \protected\instance\edefcsname\currentsynchronize\endcsname{\typo_synchronize{\currentsynchronize}}%
+\to \everydefinesynchronize
+
+% \setupsynchronize
+% [\c!alternative=\v!horizontal]
+
+\definesynchronize
+ [paralleltext]
+
+% defined in lua: \hsplit to upto width height depth criterium shrinkcriterium stretchcriterium
+
+\protect \endinput
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-tal.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-tal.lmt
index 5c32e9ef9fc..e5431cffc6e 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-tal.lmt
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-tal.lmt
@@ -47,8 +47,8 @@ local isglyph = nuts.isglyph
local setattr = nuts.setattr
local setchar = nuts.setchar
-local insert_node_before = nuts.insert_before
-local insert_node_after = nuts.insert_after
+local insertnodebefore = nuts.insertbefore
+local insertnodeafter = nuts.insertafter
local nextglyph = nuts.traversers.glyph
local getdimensions = nuts.dimensions
@@ -393,46 +393,46 @@ function characteralign.handler(head,where)
local new_kern = trace_split and traced_kern or new_kern
if b_start then
if before < maxbefore then
- head = insert_node_before(head,b_start,new_kern(maxbefore-before))
+ head = insertnodebefore(head,b_start,new_kern(maxbefore-before))
end
if not c then
-- print("[before]")
if dataset.hasseparator then
local width = fontcharacters[getfont(b_start)][separator].width
- insert_node_after(head,b_stop,new_kern(maxafter+width))
+ insertnodeafter(head,b_stop,new_kern(maxafter+width))
end
elseif a_start then
-- print("[before] [separator] [after]")
if after < maxafter then
- insert_node_after(head,a_stop,new_kern(maxafter-after))
+ insertnodeafter(head,a_stop,new_kern(maxafter-after))
end
else
-- print("[before] [separator]")
if maxafter > 0 then
- insert_node_after(head,c,new_kern(maxafter))
+ insertnodeafter(head,c,new_kern(maxafter))
end
end
elseif a_start then
if c then
-- print("[separator] [after]")
if maxbefore > 0 then
- head = insert_node_before(head,c,new_kern(maxbefore))
+ head = insertnodebefore(head,c,new_kern(maxbefore))
end
else
-- print("[after]")
local width = fontcharacters[getfont(b_stop)][separator].width
- head = insert_node_before(head,a_start,new_kern(maxbefore+width))
+ head = insertnodebefore(head,a_start,new_kern(maxbefore+width))
end
if after < maxafter then
- insert_node_after(head,a_stop,new_kern(maxafter-after))
+ insertnodeafter(head,a_stop,new_kern(maxafter-after))
end
elseif c then
-- print("[separator]")
if maxbefore > 0 then
- head = insert_node_before(head,c,new_kern(maxbefore))
+ head = insertnodebefore(head,c,new_kern(maxbefore))
end
if maxafter > 0 then
- insert_node_after(head,c,new_kern(maxafter))
+ insertnodeafter(head,c,new_kern(maxafter))
end
end
return head
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-tal.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-tal.mkxl
index d96d1348bb8..f3d9e54e0d3 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-tal.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-tal.mkxl
@@ -123,11 +123,11 @@
\c!character =\alignmentcharacter]
\permanent\protected\def\typo_charalign_pass_one
- {\advance\scratchcounter\plusone
+ {\advanceby\scratchcounter\plusone
\setbox\scratchbox\typo_charalign_pass}
\permanent\protected\def\typo_charalign_pass_two
- {\advance\scratchcounter\plusone
+ {\advanceby\scratchcounter\plusone
\typo_charalign_pass}
\def\typo_charalign_pass
@@ -212,7 +212,8 @@
\resetcharacteralign
\egroup}
-\aliased\let\stopcharacteralign \relax
+\permanent\protected\lettonothing\stopcharacteralign
+
\aliased\let\checkcharacteralign\gobbleoneargument
\permanent\protected\def\setfirstpasscharacteralign {\enforced\let\checkcharacteralign\gobbleoneargument}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-wrp.lmt b/Master/texmf-dist/tex/context/base/mkxl/typo-wrp.lmt
new file mode 100644
index 00000000000..5b31c401591
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-wrp.lmt
@@ -0,0 +1,81 @@
+if not modules then modules = { } end modules ['typo-wrp'] = {
+ version = 1.001,
+ comment = "companion to typo-wrp.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- begin/end par wrapping stuff ... more to come
+
+local boundary_code = nodes.nodecodes.boundary
+local wordboundary_code = nodes.boundarycodes.word
+
+local nuts = nodes.nuts
+
+local findtail = nuts.tail
+local getprev = nuts.getprev
+local setnext = nuts.setnext
+local getid = nuts.getid
+local getsubtype = nuts.getsubtype
+local getattr = nuts.getattr
+local flushnodelist = nuts.flushlist
+
+local enableaction = nodes.tasks.enableaction
+
+local wrappers = { }
+typesetters.wrappers = wrappers
+
+local trace_wrappers = trackers.register("typesetters.wrappers",function(v) trace_wrappers = v end)
+local report = logs.reporter("paragraphs","wrappers")
+
+-- In luametatex we don't have the parfilskip attached yet but we can have final glue
+-- anyway. This check is very bound to the \crlf definition where we get:
+--
+-- ... boundary [strut: hlist] [break: glue penalty] boundary
+
+local a_crlf = attributes.private("crlf")
+
+local function remove_dangling_crlf(head,tail)
+ if head and tail then
+ if getid(tail) == boundary_code and getsubtype(tail) == wordboundary_code then
+ -- findnode could run backwards
+ if getattr(tail,a_crlf) then
+ local t = tail
+ while t do
+ t = getprev(t)
+ if not t then
+ break
+ elseif getid(t) == boundary_code and getsubtype(t) == wordboundary_code then
+ if t ~= head then
+ if trace_wrappers then
+ report("removing a probably unwanted end-of-par break in line %s (guess)",tex.inputlineno)
+ end
+ tail = getprev(t)
+ setnext(tail)
+ flushnodelist(t)
+ end
+ break
+ end
+ end
+ end
+ end
+ end
+ return head, tail
+end
+
+function wrappers.handler(head)
+ if head then
+ local tail = findtail(head)
+ head, tail = remove_dangling_crlf(head,tail) -- will be action chain
+ end
+ return head
+end
+
+interfaces.implement {
+ name = "enablecrlf",
+ onlyonce = true,
+ actions = function()
+ enableaction("processors","typesetters.wrappers.handler")
+ end
+}
diff --git a/Master/texmf-dist/tex/context/base/mkxl/typo-wrp.mkxl b/Master/texmf-dist/tex/context/base/mkxl/typo-wrp.mkxl
index b552c151aa7..71559a8a3a5 100644
--- a/Master/texmf-dist/tex/context/base/mkxl/typo-wrp.mkxl
+++ b/Master/texmf-dist/tex/context/base/mkxl/typo-wrp.mkxl
@@ -15,7 +15,9 @@
\unprotect
-\registerctxluafile{typo-wrp}{}
+\registerctxluafile{typo-wrp}{autosuffix}
+
+\definesystemattribute[crlf]
\permanent\protected\def\crlf
{\ifhmode
@@ -25,30 +27,32 @@
\protected\def\spac_crlf
{\clf_enablecrlf % once
\unskip
- \spac_crlf_placeholder
+ \wordboundary
+ \spac_crlf_placeholder % box
\ifcase\raggedstatus\hfil\or\or\or\hfil\fi
- % in bad usage this can lead to: [break -10000] [wordboundary] [line(break)penalty] [parfillskip]
+ % in bad usage this can lead to: [break -10000] [wordboundary] [line(break)penalty] [glue (filler)]
\break
+ \begingroup
+ \c_attr_crlf\plusone
\wordboundary
+ \endgroup
% which we then remove (maybe we should flag the wordboundary with an attribute but not now
\ignorespaces}
\protected\def\spac_crlf_placeholder
- {\strut}
+ {\strut} % or \endstrut
\protected\def\spac_crlf_placeholder_show
- {\wordboundary
- %\nobreak
- \hpack to \zeropoint{\strut{\infofont\kern.25\emwidth}\lohi{\infofont CR}{\infofont LF}\hss}}
+ {\hpack to \zeropoint{\strut{\infofont\kern.25\emwidth}\lohi{\infofont CR}{\infofont LF}\hss}}
\permanent\protected\def\settestcrlf
{\let\spac_crlf_placeholder\spac_crlf_placeholder_show}
\permanent\protected\def\crlfplaceholder % for old times sake
- {\spac_crlf_placeholder}
+ {\wordboundary\strut}
\appendtoks
- \let\spac_crlf_placeholder\empty
+ \lettonothing\spac_crlf_placeholder
\to \everysetnostrut
\appendtoks
diff --git a/Master/texmf-dist/tex/context/base/mkxl/util-deb.lmt b/Master/texmf-dist/tex/context/base/mkxl/util-deb.lmt
new file mode 100644
index 00000000000..73846f2b61c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/util-deb.lmt
@@ -0,0 +1,391 @@
+if not modules then modules = { } end modules ['util-deb'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- the <anonymous> tag is kind of generic and used for functions that are not
+-- bound to a variable, like node.new, node.copy etc (contrary to for instance
+-- node.hasattribute which is bound to a hasattribute local variable in mkiv)
+
+local type, next, tostring, tonumber, xpcall, print = type, next, tostring, tonumber, xpcall, print
+local format, find, sub, gsub = string.format, string.find, string.sub, string.gsub
+local insert, remove, sort = table.insert, table.remove, table.sort
+local setmetatableindex = table.setmetatableindex
+
+utilities = utilities or { }
+local debugger = utilities.debugger or { }
+utilities.debugger = debugger
+
+local report = logs.reporter("debugger")
+
+local ticks = os.gettimeofday or os.clock
+local seconds = function(n) return n or 0 end
+local overhead = 0
+local dummycalls = 10*1000
+local nesting = 0
+local names = { }
+
+local function initialize()
+ ticks = lua.getpreciseticks
+ seconds = lua.getpreciseseconds
+ initialize = false
+end
+
+setmetatableindex(names,function(t,name)
+ local v = setmetatableindex(function(t,source)
+ local v = setmetatableindex(function(t,line)
+ -- local v = { total = 0, count = 0, nesting = 0, ticks = 0 }
+ local v = { 0, 0, 0, 0 }
+ t[line] = v
+ return v
+ end)
+ t[source] = v
+ return v
+ end)
+ t[name] = v
+ return v
+end)
+
+local getinfo = nil
+local sethook = nil
+
+-- local function hook(where)
+-- local f = getinfo(2,"nS")
+-- if f then
+-- local source = f.short_src
+-- if not source then
+-- return
+-- end
+-- local line = f.linedefined or 0
+-- local name = f.name
+-- if not name then
+-- local what = f.what
+-- if what == "C" then
+-- name = "<anonymous>"
+-- else
+-- name = f.namewhat or what or "<unknown>"
+-- end
+-- end
+-- local data = names[name][source][line]
+-- if where == "call" then
+-- local nesting = data.nesting
+-- if nesting == 0 then
+-- data.count = data.count + 1
+-- insert(data,ticks())
+-- data.nesting = 1
+-- else
+-- data.nesting = nesting + 1
+-- end
+-- elseif where == "return" then
+-- local nesting = data.nesting
+-- if nesting == 1 then
+-- local t = remove(data)
+-- if t then
+-- data.total = data.total + ticks() - t
+-- end
+-- data.nesting = 0
+-- else
+-- data.nesting = nesting - 1
+-- end
+-- end
+-- end
+-- end
+
+local getdebuginfo = lua.getdebuginfo
+
+-- local function hook(where) -- make two hooks
+-- local name, source, line = getdebuginfo()
+-- if name then
+-- local data = names[name][source][line]
+-- if where == "call" then
+-- local nesting = data.nesting
+-- if nesting == 0 then
+-- data.count = data.count + 1
+-- -- insert(data,ticks())
+-- data.nesting = 1
+-- data.ticks = ticks()
+-- else
+-- data.nesting = nesting + 1
+-- end
+-- elseif where == "return" then
+-- local nesting = data.nesting
+-- if nesting == 1 then
+-- -- local t = remove(data)
+-- local t = data.ticks
+-- if t then
+-- data.total = data.total + ticks() - t
+-- end
+-- data.nesting = 0
+-- elseif nesting > 0 then
+-- data.nesting = nesting - 1
+-- end
+-- elseif where == "tail call" then
+-- local nesting = data.nesting
+-- if nesting == 1 then
+-- -- local t = remove(data)
+-- local t = data.ticks
+-- if t then
+-- data.total = data.total + ticks() - t
+-- end
+-- data.nesting = 0
+-- elseif nesting > 0 then
+-- data.nesting = nesting - 1
+-- end
+-- end
+-- end
+-- end
+
+local function hook(where) -- make two hooks
+ local name, source, line = getdebuginfo()
+ if name then
+ local data = names[name][source][line]
+ if where == "call" then
+ local nesting = data[3]
+ if nesting == 0 then
+ data[2] = data[2] + 1
+ data[3] = 1
+ data[4] = ticks()
+ else
+ data[3] = nesting + 1
+ end
+ -- elseif where == "return" then
+ else
+ local nesting = data[3]
+ if nesting == 1 then
+ local t = data[4]
+ if t then
+ data[1] = data[1] + ticks() - t
+ end
+ data[3] = 0
+ elseif nesting > 0 then
+ data[3] = nesting - 1
+ end
+ -- elseif where == "tail call" then
+ -- local nesting = data[3]
+ -- if nesting == 1 then
+ -- local t = data[4]
+ -- if t then
+ -- data[4] = data[4] + ticks() - t
+ -- end
+ -- data[3] = 0
+ -- elseif nesting > 0 then
+ -- data[3] = nesting - 1
+ -- end
+ end
+ end
+end
+
+function debugger.showstats(printer,threshold)
+ local printer = printer or report
+ local calls = 0
+ local functions = 0
+ local dataset = { }
+ local length = 0
+ local realtime = 0
+ local totaltime = 0
+ local threshold = threshold or 0
+ for name, sources in next, names do
+ for source, lines in next, sources do
+ for line, data in next, lines do
+ -- local count = data.count
+ local count = data[2]
+ if count > threshold then
+ if #name > length then
+ length = #name
+ end
+ -- local total = data.total
+ local total = data[1]
+ local real = total
+ if real > 0 then
+ real = total - (count * overhead / dummycalls)
+ if real < 0 then
+ real = 0
+ end
+ realtime = realtime + real
+ end
+ totaltime = totaltime + total
+ if line < 0 then
+ line = 0
+ end
+ -- if name = "a" then
+ -- -- weird name
+ -- end
+ dataset[#dataset+1] = { real, total, count, name, source, line }
+ end
+ end
+ end
+ end
+ sort(dataset,function(a,b)
+ if a[1] == b[1] then
+ if a[2] == b[2] then
+ if a[3] == b[3] then
+ if a[4] == b[4] then
+ if a[5] == b[5] then
+ return a[6] < b[6]
+ else
+ return a[5] < b[5]
+ end
+ else
+ return a[4] < b[4]
+ end
+ else
+ return b[3] < a[3]
+ end
+ else
+ return b[2] < a[2]
+ end
+ else
+ return b[1] < a[1]
+ end
+ end)
+ if length > 50 then
+ length = 50
+ end
+ local fmt = string.formatters["%4.9k s %3.3k %% %4.9k s %3.3k %% %8i # %-" .. length .. "s %4i %s"]
+ for i=1,#dataset do
+ local data = dataset[i]
+ local real = data[1]
+ local total = data[2]
+ local count = data[3]
+ local name = data[4]
+ local source = data[5]
+ local line = data[6]
+ calls = calls + count
+ functions = functions + 1
+ name = gsub(name,"%s+"," ")
+ if #name > length then
+ name = sub(name,1,length)
+ end
+ printer(fmt(seconds(total),100*total/totaltime,seconds(real),100*real/realtime,count,name,line,source))
+ end
+ printer("")
+ printer(format("functions : %i", functions))
+ printer(format("calls : %i", calls))
+ printer(format("overhead : %f", seconds(overhead/1000)))
+
+ -- table.save("luatex-profile.lua",names)
+end
+
+local function getdebug()
+ if sethook and getinfo then
+ return
+ end
+ if not debug then
+ local okay
+ okay, debug = pcall(require,"debug")
+ end
+ if type(debug) ~= "table" then
+ return
+ end
+ getinfo = debug.getinfo
+ sethook = debug.sethook
+ if type(getinfo) ~= "function" then
+ getinfo = nil
+ end
+ if type(sethook) ~= "function" then
+ sethook = nil
+ end
+end
+
+function debugger.savestats(filename,threshold)
+ local f = io.open(filename,'w')
+ if f then
+ debugger.showstats(function(str) f:write(str,"\n") end,threshold)
+ f:close()
+ end
+end
+
+function debugger.enable()
+ getdebug()
+ if sethook and getinfo and nesting == 0 then
+ running = true
+ if initialize then
+ initialize()
+ end
+ sethook(hook,"cr")
+-- sethook(hook_c,"c")
+-- sethook(hook_r,"r")
+ local function dummy() end
+ local t = ticks()
+ for i=1,dummycalls do
+ dummy()
+ end
+ overhead = ticks() - t
+ end
+ if nesting > 0 then
+ nesting = nesting + 1
+ end
+end
+
+function debugger.disable()
+ if nesting > 0 then
+ nesting = nesting - 1
+ end
+ if sethook and getinfo and nesting == 0 then
+ sethook()
+ end
+end
+
+-- debugger.enable()
+--
+-- print(math.sin(1*.5))
+-- print(math.sin(1*.5))
+-- print(math.sin(1*.5))
+-- print(math.sin(1*.5))
+-- print(math.sin(1*.5))
+--
+-- debugger.disable()
+--
+-- print("")
+-- debugger.showstats()
+-- print("")
+-- debugger.showstats(print,3)
+--
+-- from the lua book:
+
+local function showtraceback(rep) -- from lua site / adapted
+ getdebug()
+ if getinfo then
+ local level = 2 -- we don't want this function to be reported
+ local reporter = rep or report
+ while true do
+ local info = getinfo(level, "Sl")
+ if not info then
+ break
+ elseif info.what == "C" then
+ reporter("%2i : %s",level-1,"C function")
+ else
+ reporter("%2i : %s : %s",level-1,info.short_src,info.currentline)
+ end
+ level = level + 1
+ end
+ end
+end
+
+debugger.showtraceback = showtraceback
+-- debug.showtraceback = showtraceback
+
+-- showtraceback()
+
+if luac then
+
+ local show, dump = luac.print, string.dump
+
+ function luac.inspect(v)
+ if type(v) == "function" then
+ local ok, str = xpcall(dump,function() end,v)
+ if ok then
+ v = str
+ end
+ end
+ if type(v) == "string" then
+ show(v,true)
+ else
+ print(v)
+ end
+ end
+
+end
diff --git a/Master/texmf-dist/tex/context/base/mkxl/util-fil.lmt b/Master/texmf-dist/tex/context/base/mkxl/util-fil.lmt
new file mode 100644
index 00000000000..b8d3747559c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/util-fil.lmt
@@ -0,0 +1,172 @@
+if not modules then modules = { } end modules ['util-fil'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to luat-lib.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- For the old ones, see util-fil.lua.
+
+local byte = string.byte
+local char = string.char
+
+utilities = utilities or { }
+local files = { }
+utilities.files = files
+
+local zerobased = { }
+
+function files.open(filename,zb)
+ local f = io.open(filename,"rb")
+ if f then
+ zerobased[f] = zb or false
+ end
+ return f
+end
+
+function files.close(f)
+ if f then
+ zerobased[f] = nil
+ f:close()
+ end
+end
+
+function files.size(f)
+ if f then
+ local current = f:seek()
+ local size = f:seek("end")
+ f:seek("set",current)
+ return size
+ else
+ return 0
+ end
+end
+
+files.getsize = files.size
+
+function files.setposition(f,n)
+ if zerobased[f] then
+ f:seek("set",n)
+ else
+ f:seek("set",n - 1)
+ end
+end
+
+function files.getposition(f)
+ if zerobased[f] then
+ return f:seek()
+ else
+ return f:seek() + 1
+ end
+end
+
+function files.look(f,n,chars)
+ local p = f:seek()
+ local s = f:read(n)
+ f:seek("set",p)
+ if chars then
+ return s
+ else
+ return byte(s,1,#s)
+ end
+end
+
+function files.skip(f,n)
+ if n == 1 then
+ f:read(n)
+ else
+ f:seek("set",f:seek()+n)
+ end
+end
+
+-- readers:
+
+files.readcardinal1 = fio.readcardinal1
+files.readcardinal2 = fio.readcardinal2
+files.readcardinal3 = fio.readcardinal3
+files.readcardinal4 = fio.readcardinal4
+
+files.readcardinal1le = fio.readcardinal1le or files.readcardinal1le
+files.readcardinal2le = fio.readcardinal2le or files.readcardinal2le
+files.readcardinal3le = fio.readcardinal3le or files.readcardinal3le
+files.readcardinal4le = fio.readcardinal4le or files.readcardinal4le
+
+files.readinteger1 = fio.readinteger1
+files.readinteger2 = fio.readinteger2
+files.readinteger3 = fio.readinteger3
+files.readinteger4 = fio.readinteger4
+
+files.readinteger1le = fio.readinteger1le or files.readinteger1le
+files.readinteger2le = fio.readinteger2le or files.readinteger2le
+files.readinteger3le = fio.readinteger3le or files.readinteger3le
+files.readinteger4le = fio.readinteger4le or files.readinteger4le
+
+files.readfixed2 = fio.readfixed2
+files.readfixed4 = fio.readfixed4
+files.read2dot14 = fio.read2dot14
+files.setposition = fio.setposition
+files.getposition = fio.getposition
+
+files.readbyte = files.readcardinal1
+files.readsignedbyte = files.readinteger1
+files.readcardinal = files.readcardinal1
+files.readinteger = files.readinteger1
+
+local skipposition = fio.skipposition
+files.skipposition = skipposition
+
+files.readbytes = fio.readbytes
+files.readbytetable = fio.readbytetable
+files.readcardinaltable = fio.readcardinaltable
+files.readintegertable = fio.readintegertable
+
+files.readcstring = fio.readcstring
+files.readcline = fio.readcline
+
+function files.readchar(f)
+ return f:read(1)
+end
+
+function files.readstring(f,n)
+ return f:read(n or 1)
+end
+
+function files.skipshort(f,n)
+ skipposition(f,2*(n or 1))
+end
+
+function files.skiplong(f,n)
+ skipposition(f,4*(n or 1))
+end
+
+-- writers
+
+function files.writestring(f,s)
+ f:write(char(byte(s,1,#s)))
+end
+
+function files.writebyte(f,b)
+ f:write(char(b))
+end
+
+files.writecardinal1 = fio.writecardinal1
+files.writecardinal2 = fio.writecardinal2
+files.writecardinal3 = fio.writecardinal3
+files.writecardinal4 = fio.writecardinal4
+
+files.writecardinal1le = fio.writecardinal1le
+files.writecardinal2le = fio.writecardinal2le
+files.writecardinal3le = fio.writecardinal3le
+files.writecardinal4le = fio.writecardinal4le
+
+files.writeinteger1 = fio.writeinteger1 or fio.writecardinal1
+files.writeinteger2 = fio.writeinteger2 or fio.writecardinal2
+files.writeinteger3 = fio.writeinteger3 or fio.writecardinal3
+files.writeinteger4 = fio.writeinteger4 or fio.writecardinal4
+
+files.writeinteger1le = files.writeinteger1le or fio.writecardinal1le
+files.writeinteger2le = files.writeinteger2le or fio.writecardinal2le
+files.writeinteger3le = files.writeinteger3le or fio.writecardinal3le
+files.writeinteger4le = files.writeinteger4le or fio.writecardinal4le
diff --git a/Master/texmf-dist/tex/context/base/mkxl/util-pck.lmt b/Master/texmf-dist/tex/context/base/mkxl/util-pck.lmt
new file mode 100644
index 00000000000..fff2d280a53
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/util-pck.lmt
@@ -0,0 +1,176 @@
+if not modules then modules = { } end modules ['util-pck'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- moved from core-uti
+
+local next, tostring, type = next, tostring, type
+local sort, concat = table.sort, table.concat
+local format = string.format
+local sortedhashkeys, sortedkeys, tohash = table.sortedhashkeys, table.sortedkeys, table.tohash
+
+utilities = utilities or { }
+utilities.packers = utilities.packers or { }
+local packers = utilities.packers
+packers.version = 1.01
+
+-- local fmt_kv <const> = "%s=%q"
+-- local fmt_kt <const> = "%s={%q}"
+
+-- local function hashed(t)
+-- local s, ns = { }, 0
+-- for k, v in next, t do
+-- ns = ns + 1
+-- if type(v) == "table" then
+-- s[ns] = format(fmt_kt,k,hashed(v))
+-- else
+-- s[ns] = format(fmt_kv,k,v)
+-- end
+-- end
+-- sort(s)
+-- return concat(s,",")
+-- end
+
+local function hashed(t) --local function tabstr_normal(t)
+ local s = { }
+ local n = 0
+ for k, v in next, t do
+ n = n + 1
+ if type(v) == "table" then
+ s[n] = k .. ">" .. hashed(v)
+ elseif v == true then
+ s[n] = k .. "+" -- "=true"
+ elseif v then
+ s[n] = k .. "=" .. v
+ else
+ s[n] = k .. "-" -- "=false"
+ end
+ end
+ if n == 0 then
+ return ""
+ elseif n == 1 then
+ return s[1]
+ else
+ sort(s) -- costly but needed (occasional wrong hit otherwise)
+ return concat(s,",")
+ end
+end
+
+local function simplehashed(t)
+ local s = { }
+ local n = 0
+ for k, v in next, t do
+ n = n + 1
+ -- s[n] = format(fmt_kv,k,v)
+ s[n] = k .. "=" .. v
+ end
+ sort(s)
+ return concat(s,",")
+end
+
+packers.hashed = hashed
+packers.simplehashed = simplehashed
+
+-- In luatex < 0.74 (lua 5.1) a next chain was the same for each run so no sort was needed,
+-- but in the latest greatest versions (lua 5.2) we really need to sort the keys in order
+-- not to get endless runs due to a difference in tuc files.
+
+local function pack(t,keys,skip,hash,index)
+ if t then
+ local sk = #t > 0 and sortedkeys(t) or sortedhashkeys(t)
+ for i=1,#sk do
+ local k = sk[i]
+ if not skip or not skip[k] then
+ local v = t[k]
+ if type(v) == "table" then
+ pack(v,keys,skip,hash,index)
+ if keys[k] then
+ local h = hashed(v)
+ local i = hash[h]
+ if not i then
+ i = #index + 1
+ index[i] = v
+ hash[h] = i
+ end
+ t[k] = i
+ end
+ end
+ end
+ end
+ end
+end
+
+local function unpack(t,keys,skip,index)
+ if t then
+ for k, v in next, t do
+ if keys[k] and type(v) == "number" then
+ local iv = index[v]
+ if iv then
+ v = iv
+ t[k] = v
+ end
+ end
+ if type(v) == "table" and (not skip or not skip[k]) then
+ unpack(v,keys,skip,index)
+ end
+ end
+ end
+end
+
+function packers.new(keys,version,skip)
+ return {
+ version = version or packers.version,
+ keys = tohash(keys),
+ skip = tohash(skip),
+ hash = { },
+ index = { },
+ }
+end
+
+function packers.pack(t,p,shared)
+ if shared then
+ pack(t,p.keys,p.skip,p.hash,p.index)
+ elseif not t.packer then
+ pack(t,p.keys,p.skip,p.hash,p.index)
+ if #p.index > 0 then
+ t.packer = {
+ version = p.version or packers.version,
+ keys = p.keys,
+ skip = p.skip,
+ index = p.index,
+ }
+ end
+ p.hash = { }
+ p.index = { }
+ end
+end
+
+function packers.unpack(t,p,shared)
+ if shared then
+ if p then
+ unpack(t,p.keys,p.skip,p.index)
+ end
+ else
+ local tp = t.packer
+ if tp then
+ if tp.version == (p and p.version or packers.version) then
+ unpack(t,tp.keys,tp.skip,tp.index)
+ else
+ return false
+ end
+ t.packer = nil
+ end
+ end
+ return true
+end
+
+function packers.strip(p)
+ p.hash = nil
+end
+
+-- We could have a packer.serialize where we first flush the shared table
+-- and then use inline a reference . This saves an unpack.
diff --git a/Master/texmf-dist/tex/context/base/mkxl/util-sac.lmt b/Master/texmf-dist/tex/context/base/mkxl/util-sac.lmt
new file mode 100644
index 00000000000..f64602d54f6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/mkxl/util-sac.lmt
@@ -0,0 +1,312 @@
+if not modules then modules = { } end modules ['util-sac'] = {
+ version = 1.001,
+ optimize = true,
+ comment = "companion to luat-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+
+local byte, sub = string.byte, string.sub
+local tonumber = tonumber
+
+utilities = utilities or { }
+local streams = { }
+utilities.streams = streams
+
+function streams.open(filename,zerobased)
+ local f = filename and io.loaddata(filename)
+ if f then
+ return { f, 1, #f, zerobased or false }
+ end
+end
+
+function streams.openstring(f,zerobased)
+ if f then
+ return { f, 1, #f, zerobased or false }
+ end
+end
+
+function streams.getstring(f)
+ if f then
+ return f[1]
+ end
+end
+
+function streams.close()
+ -- dummy
+end
+
+function streams.size(f)
+ return f and f[3] or 0
+end
+
+streams.getsize = streams.size
+
+function streams.setposition(f,i)
+ if f[4] then
+ -- zerobased
+ if i <= 0 then
+ f[2] = 1
+ else
+ f[2] = i + 1
+ end
+ else
+ if i <= 1 then
+ f[2] = 1
+ else
+ f[2] = i
+ end
+ end
+end
+
+function streams.getposition(f)
+ if f[4] then
+ -- zerobased
+ return f[2] - 1
+ else
+ return f[2]
+ end
+end
+
+function streams.look(f,n,chars)
+ local b = f[2]
+ local e = b + n - 1
+ if chars then
+ return sub(f[1],b,e)
+ else
+ return byte(f[1],b,e)
+ end
+end
+
+function streams.skip(f,n)
+ f[2] = f[2] + n
+end
+
+--
+
+function streams.readbyte(f)
+ local i = f[2]
+ f[2] = i + 1
+ return byte(f[1],i)
+end
+
+function streams.readbytes(f,n)
+ local i = f[2]
+ local j = i + n
+ f[2] = j
+ return byte(f[1],i,j-1)
+end
+
+function streams.readbytetable(f,n)
+ local i = f[2]
+ local j = i + n
+ f[2] = j
+ return { byte(f[1],i,j-1) }
+end
+
+function streams.skipbytes(f,n)
+ f[2] = f[2] + n
+end
+
+function streams.readchar(f)
+ local i = f[2]
+ f[2] = i + 1
+ return sub(f[1],i,i)
+end
+
+function streams.readstring(f,n)
+ local i = f[2]
+ local j = i + n
+ f[2] = j
+ return sub(f[1],i,j-1)
+end
+
+function streams.skipshort(f,n) f[2] = f[2] + 2*(n or 1) end
+function streams.skiplong (f,n) f[2] = f[2] + 4*(n or 1) end
+
+local readcardinal1 = sio.readcardinal1
+local readcardinal2 = sio.readcardinal2
+local readcardinal3 = sio.readcardinal3
+local readcardinal4 = sio.readcardinal4
+
+function streams.readcardinal1(f) local i = f[2] f[2] = i + 1 return readcardinal1(f[1],i) end
+function streams.readcardinal2(f) local i = f[2] f[2] = i + 2 return readcardinal2(f[1],i) end
+function streams.readcardinal3(f) local i = f[2] f[2] = i + 3 return readcardinal3(f[1],i) end
+function streams.readcardinal4(f) local i = f[2] f[2] = i + 4 return readcardinal4(f[1],i) end
+
+local readcardinal1le = sio.readcardinal1le
+local readcardinal2le = sio.readcardinal2le
+local readcardinal3le = sio.readcardinal3le
+local readcardinal4le = sio.readcardinal4le
+
+function streams.readcardinal1le(f) local i = f[2] f[2] = i + 1 return readcardinal1le(f[1],i) end
+function streams.readcardinal2le(f) local i = f[2] f[2] = i + 2 return readcardinal2le(f[1],i) end
+function streams.readcardinal3le(f) local i = f[2] f[2] = i + 3 return readcardinal3le(f[1],i) end
+function streams.readcardinal4le(f) local i = f[2] f[2] = i + 4 return readcardinal4le(f[1],i) end
+
+local readinteger1 = sio.readinteger1
+local readinteger2 = sio.readinteger2
+local readinteger3 = sio.readinteger3
+local readinteger4 = sio.readinteger4
+
+function streams.readinteger1(f) local i = f[2] f[2] = i + 1 return readinteger1(f[1],i) end
+function streams.readinteger2(f) local i = f[2] f[2] = i + 2 return readinteger2(f[1],i) end
+function streams.readinteger3(f) local i = f[2] f[2] = i + 3 return readinteger3(f[1],i) end
+function streams.readinteger4(f) local i = f[2] f[2] = i + 4 return readinteger4(f[1],i) end
+
+local readinteger1le = sio.readinteger1le
+local readinteger2le = sio.readinteger2le
+local readinteger3le = sio.readinteger3le
+local readinteger4le = sio.readinteger4le
+
+function streams.readinteger1le(f) local i = f[2] f[2] = i + 1 return readinteger1le(f[1],i) end
+function streams.readinteger2le(f) local i = f[2] f[2] = i + 2 return readinteger2le(f[1],i) end
+function streams.readinteger3le(f) local i = f[2] f[2] = i + 3 return readinteger3le(f[1],i) end
+function streams.readinteger4le(f) local i = f[2] f[2] = i + 4 return readinteger4le(f[1],i) end
+
+local readfixed2 = sio.readfixed2
+local readfixed4 = sio.readfixed4
+local read2dot14 = sio.read2dot14
+
+function streams.readfixed2(f) local i = f[2] f[2] = i + 2 return readfixed2(f[1],i) end
+function streams.readfixed4(f) local i = f[2] f[2] = i + 4 return readfixed4(f[1],i) end
+function streams.read2dot14(f) local i = f[2] f[2] = i + 2 return read2dot14(f[1],i) end
+
+local readcstring = sio.readcstring
+local readcline = sio.readcline
+
+function streams.readcstring(f)
+ local s, p = readcstring(f[1],f[2])
+ f[2] = p
+ return s
+end
+
+function streams.readcline(f,n)
+ local s, p = readcline(f[1],f[2])
+ f[2] = p
+ return s
+end
+
+local readbytes = sio.readbytes
+local readbytetable = sio.readbytetable
+
+function streams.readbytes(f,n)
+ local i = f[2]
+ local s = f[3]
+ local p = i + n
+ if p > s then
+ f[2] = s + 1
+ else
+ f[2] = p
+ end
+ return readbytes(f[1],i,n)
+end
+
+function streams.readbytetable(f,n)
+ local i = f[2]
+ local s = f[3]
+ local p = i + n
+ if p > s then
+ f[2] = s + 1
+ else
+ f[2] = p
+ end
+ return readbytetable(f[1],i,n)
+end
+
+streams.readbyte = streams.readcardinal1
+streams.readsignedbyte = streams.readinteger1
+streams.readcardinal1 = streams.readcardinal1
+streams.readcardinal = streams.readcardinal1
+streams.readinteger = streams.readinteger1
+streams.readinteger1 = streams.readinteger1
+
+local readcardinaltable = sio.readcardinaltable
+local readintegertable = sio.readintegertable
+
+function utilities.streams.readcardinaltable(f,n,b)
+ local i = f[2]
+ local s = f[3]
+ local p = i + n * b
+ if p > s then
+ f[2] = s + 1
+ else
+ f[2] = p
+ end
+ return readcardinaltable(f[1],i,n,b)
+end
+
+function utilities.streams.readintegertable(f,n,b)
+ local i = f[2]
+ local s = f[3]
+ local p = i + n * b
+ if p > s then
+ f[2] = s + 1
+ else
+ f[2] = p
+ end
+ return readintegertable(f[1],i,n,b)
+end
+
+-- For practical reasons we put this here. It's less efficient but ok when we don't
+-- have much access.
+
+local files = utilities.files
+
+if files then
+
+ local openfile = files.open
+ local openstream = streams.open
+ local openstring = streams.openstring
+
+ local setmetatable = setmetatable
+
+ function io.newreader(str,method)
+ local f, m
+ if method == "string" then
+ f = openstring(str,true)
+ m = streams
+ elseif method == "stream" then
+ f = openstream(str,true)
+ m = streams
+ else
+ f = openfile(str,"rb")
+ m = files
+ end
+ if f then
+ local t = { }
+ setmetatable(t, {
+ __index = function(t,k)
+ local r = m[k]
+ if k == "close" then
+ if f then
+ m.close(f)
+ f = nil
+ end
+ return function() end
+ elseif r then
+ local v = function(_,a,b) return r(f,a,b) end
+ t[k] = v
+ return v
+ else
+ print("unknown key",k)
+ end
+ end
+ } )
+ return t
+ end
+ end
+
+end
+
+streams.tocardinal1 = sio.tocardinal1
+streams.tocardinal2 = sio.tocardinal2
+streams.tocardinal3 = sio.tocardinal3
+streams.tocardinal4 = sio.tocardinal4
+
+streams.tocardinal1le = sio.tocardinal1le
+streams.tocardinal2le = sio.tocardinal2le
+streams.tocardinal3le = sio.tocardinal3le
+streams.tocardinal4le = sio.tocardinal4le
diff --git a/Master/texmf-dist/tex/context/bib/mkii/bibl-ams.tex b/Master/texmf-dist/tex/context/bib/mkii/bibl-ams.tex
deleted file mode 100644
index 6adddbf3fc0..00000000000
--- a/Master/texmf-dist/tex/context/bib/mkii/bibl-ams.tex
+++ /dev/null
@@ -1,438 +0,0 @@
-%D \module
-%D [ file=bibl-ams,
-%D version=2009.07.22
-%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/mkii/bibl-apa-de.tex b/Master/texmf-dist/tex/context/bib/mkii/bibl-apa-de.tex
deleted file mode 100644
index 60ef3113b1d..00000000000
--- a/Master/texmf-dist/tex/context/bib/mkii/bibl-apa-de.tex
+++ /dev/null
@@ -1,386 +0,0 @@
-%D \module
-%D [ file=bibl-apa-de,
-%D version=2006.9.12,
-%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{}{\ }{Kapitel\ }}{#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{}{, }{Masterarbeit, }%
- \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
diff --git a/Master/texmf-dist/tex/context/bib/mkii/bibl-apa-fr.tex b/Master/texmf-dist/tex/context/bib/mkii/bibl-apa-fr.tex
deleted file mode 100644
index 20216c9ba6c..00000000000
--- a/Master/texmf-dist/tex/context/bib/mkii/bibl-apa-fr.tex
+++ /dev/null
@@ -1,389 +0,0 @@
-%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{}{\ }{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{}{ }{\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/mkii/bibl-apa-it.tex b/Master/texmf-dist/tex/context/bib/mkii/bibl-apa-it.tex
deleted file mode 100644
index 1f2dd00e4a5..00000000000
--- a/Master/texmf-dist/tex/context/bib/mkii/bibl-apa-it.tex
+++ /dev/null
@@ -1,385 +0,0 @@
-%D \module
-%D [ file=bibl-apa-it,
-%D version=2014.10.10,
-%D title=APA bibliography style,
-%D subtitle=Publications,
-%D author={Andrea Valle \& Alan Braslau},
-%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={ e },
- \c!otherstext={ et al.},
- \c!pubsep={, },
- \c!lastpubsep={ e },
- \c!compress=\v!no,
- \c!inbetween={ },
- \c!left={(},
- \c!right={)}]
-
-\setupcite
- [authoryear]
- [\c!andtext={ e },
- \c!otherstext={ et al.},
- \c!pubsep={, },
- \c!lastpubsep={ e },
- \c!compress=\v!yes,
- \c!inbetween={ },
- \c!left={(},
- \c!right={)}]
-
-\setupcite
- [authoryears]
- [\c!andtext={ e },
- \c!otherstext={ et al.},
- \c!pubsep={, },
- \c!lastpubsep={ e },
- \c!compress=\v!yes,
- \c!inbetween={, },
- \c!left={(},
- \c!right={)}]
-
-\setupcite
- [key,serial,authornum,page,short,type,doi,url]
- [\c!andtext={ e },
- \c!otherstext={ et al.},
- \c!pubsep={, },
- \c!lastpubsep={ e },
- \c!compress=\v!no,
- \c!inbetween={ },
- \c!left={[},
- \c!right={]}]
-
-\setupcite
- [num]
- [\c!andtext={ e },
- \c!otherstext={ et al.},
- \c!pubsep={, },
- \c!lastpubsep={ e },
- \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={ e },
- \c!finalnamesep={ e },
- \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{}{\ }{capitolo\ }}{#2}%
- {#3}}
-
-% #1city, country: pubname#2
-% #1country: pubname#2
-% #1pubname#2
-% #1city, country#2
-% #3
-
-\def\insertpublisher#1#2#3%
- {\insertpubname
- {\insertcity
- {#1}
- {\insertcountry{, }{}{}: }%
- {#1\insertcountry{}{: }{}}}%
- {#2}%
- {\insertcity
- {#1}
- {\insertcountry{, }{}{#2}}%
- {\insertcountry{#1}{#2}{#3}}}%
- }
-
-\def\insertorg#1#2#3%
- {\insertorganization
- {\insertcity
- {#1}
- {\insertcountry{, }{}{#2}: }%
- {\insertcountry{}{: }{#2}}}%
- {}%
- {\insertcity
- {#1}
- {\insertcountry{, }{}{#2}}%
- {\insertcountry{}{#2}{#3}}}%
- }
-
-
-
-\setuppublicationlayout[article]{%
- \insertartauthors{}{ }{\insertthekey{}{ }{}}%
- \insertpubyear{(}{). }{\unskip.}%
- \insertarttitle{\bgroup }{\egroup. }{}%
- \insertjournal{\bgroup \it}{\egroup}
- {\insertcrossref{In }{}{}}%
- \insertvolume
- {\bgroup \it, }
- {\egroup\insertissue{\/(}{)}{}\insertpages{, }{.}{.}}
- {\insertpages{, pp. }{.}{.}}%
- \insertnote{ }{.}{}%
- \insertcomment{}{.}{}%
-}
-
-% \newif\ifeditedbook
-
-\setuppublicationlayout[book]{%
- \insertauthors{}{ }{\inserteditors{}{, a c. di%
- \ \global\editedbooktrue
- }{\insertthekey{}{. }{}}}%
- \insertpubyear{(}{). }{\unskip.}%
- \inserttitle
- {\bgroup\it }%
- {\/\egroup
- \ifeditedbook
- \global\editedbookfalse
- \insertvolume
- { N.~}%
- {\insertseries
- { in~\bgroup}%
- {\egroup. }%
- {\insertcrossref{ in~}{}{. }}}%
- {\insertseries{ }{.}{.}}%
- \else
- \insertcrossref
- {\insertchap{, }{}{}%
- \insertpages{\unskip, pp. }{. }{. }%
- \insertvolume{Vol.~}{ di~}{}%
- }%
- {}%
- {\insertvolume
- {, vol.~}%
- {\insertseries
- { di~\bgroup\it}%
- {\egroup}
- {}}
- {}%
- \insertchap{, }{}{}%
- \insertpages{\unskip, pp. }{.}{.}%
- }%
- \fi}%
- {}%
- \insertedition{ }{ ed.}{}%
- \insertpublisher{ }{.}{.}%
- \insertpages{ }{p. }{ }%
- \insertnote{}{.}{}%
-}
-
-\setuppublicationlayout[inbook]{%
- \insertauthors{}{ }{\inserteditors{}{, a c. di%
- \ \global\editedbooktrue
- }{\insertthekey{}{. }{}}}%
- \insertpubyear{(}{). }{\unskip.}%
- \inserttitle
- {\bgroup\it }%
- {\/\egroup
- \ifeditedbook
- \global\editedbookfalse
- \insertvolume
- { number~}%
- {\insertseries
- { in~\bgroup}%
- {\egroup. }%
- {\insertcrossref{ in~}{}{.}}}%
- {\insertseries{ }{.}{}}%
- \else
- \insertcrossref
- {\insertchap{, }{}{}%
- \insertpages{\unskip, pp. }{. }{. }%
- \insertvolume{Volume~}{ di~}{}%
- }%
- {}%
- {\insertvolume
- {, volume~}%
- {\insertseries
- { di~\bgroup\it}%
- {\egroup}
- {}}
- {}%
- \insertchap{, }{}{}%
- \insertpages{\unskip, pp. }{.}{}%
- }%
- \fi}%
- { }%
- \insertedition{ }{ ed.}{}%
- \insertpublisher{ }{.}{.}%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[booklet]{%
- \insertauthors{}{ }{\insertthekey{}{. }{}}%
- \insertpubyear{(}{). }{}%
- \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertedition{ }{ ed.}{}%
- \insertpublisher{ }{.}{.}%
- \insertpages{}{p. }{}%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[manual]{%
- \insertauthors{}{ }{\insertthekey{}{. }{}}%
- \insertpubyear{(}{). }{}%
- \inserttitle{\bgroup \it }{\/\egroup \insertseries{ (}{)}{}. }{}%
- \insertedition{ }{ ed.}{}%
- \insertorg{ }{.}{.}%
- \insertpages{}{p. }{}%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[incollection]{%
- \insertartauthors{}{ }{\insertthekey{}{. }{}}%
- \insertpubyear{(}{). }{}%
- \insertarttitle{\bgroup }{\egroup. }{}%
- \inserttitle
- {In \inserteditors{}%
- {, a c. di, }%
- {}%
- \bgroup\it}%
- {\egroup
- \insertseries
- {\insertvolume{, number }{~in }{ }}%
- {}%
- {}%
- \insertchap{\unskip, }{ }{ }%
- \insertpages{\unskip, pp.~}{. }{\unskip. }%
- \insertedition{ }{ edition}{}%
- \insertpublisher{ }{.}{.}%
- }%
- {In \insertcrossref{}{}{}%
- \insertchap{\unskip, }{ }{ }%
- \insertpages{\unskip, pp.~}{. }{\unskip. }%
- }%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[inproceedings]{%
- \insertauthors{}{ }{}%
- \insertpubyear{(}{). }{}%
- \insertarttitle{\bgroup }{\egroup. }{}%%
- \inserttitle
- {In \inserteditors{}%
- {, a c. di, }%
- {}%
- \bgroup\it}%
- {\egroup
- \insertseries
- {\insertvolume{, number }{~in }{ }}%
- {}%
- {}%
- \insertchap{\unskip, }{ }{ }%
- \insertpages{\unskip, pp.~}{}{}%
- \insertorg{. }{.}{.}%
- }%
- {In \insertcrossref{}{}{}%
- \insertchap{\unskip, }{ }{ }%
- \insertpages{\unskip, pp.~}{. }{\unskip. }%
- }%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[proceedings]{%
- \inserteditors{}{, a c. di%
- \ \global\editedbooktrue
- }{\insertthekey{}{ }{}}%
- \insertpubyear{(}{). }{}%
- \inserttitle
- {\bgroup\it}%
- {\egroup
- \insertseries
- {\insertvolume{, number }{~in }{ }}%
- {}%
- {}%
- \insertchap{\unskip, }{ }{ }%
- \insertpages{\unskip, pp.~}{}{}%
- \insertorg{. }{.}{.}%
- }%
- {}%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[mastersthesis]{%
- \insertauthors{}{ }{}%
- \insertpubyear{(}{). }{}%
- \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertbibtype{}{, }{Tesi di laurea, }%
- \insertpublisher{ }{.}{.}%
- \insertpages{ }{p. }{}%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[phdthesis]{%
- \insertauthors{}{ }{}%
- \insertpubyear{(}{). }{}%
- \inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertbibtype{}{, }{Tesi di dottorato,}%
- \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{ }{, }{, }}{Relazione tecnica}%
- \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/mkii/bibl-apa.tex b/Master/texmf-dist/tex/context/bib/mkii/bibl-apa.tex
deleted file mode 100644
index d9ac9c5bf2c..00000000000
--- a/Master/texmf-dist/tex/context/bib/mkii/bibl-apa.tex
+++ /dev/null
@@ -1,390 +0,0 @@
-%D \module
-%D [ file=bibl-apa,
-%D version=2008.06.09,
-%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={ 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=\invertedshortauthor,
- \c!editor=\invertedshortauthor,
- \c!author=\invertedshortauthor,
- \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{insertchapter,insertpublisher}
-
-%D Some shortcuts.
-
-% ((#1(type\ |)chapter#2)|#3)
-
-\def\insertchap#1#2#3%
- {\insertchapter
- {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
- {#3}}
-
-% #1city, country: pubname#2
-% #1country: pubname#2
-% #1pubname#2
-% #1city, country#2
-% #3
-
-\def\insertpublisher#1#2#3%
- {\insertpubname
- {\insertcity
- {#1}
- {\insertcountry{, }{}{}: }%
- {#1\insertcountry{}{: }{}}}%
- {#2}%
- {\insertcity
- {#1}
- {\insertcountry{, }{}{#2}}%
- {\insertcountry{#1}{#2}{#3}}}%
- }
-
-\def\insertorg#1#2#3%
- {\insertorganization
- {\insertcity
- {#1}
- {\insertcountry{, }{}{#2}: }%
- {\insertcountry{}{: }{#2}}}%
- {}%
- {\insertcity
- {#1}
- {\insertcountry{, }{}{#2}}%
- {\insertcountry{}{#2}{#3}}}%
- }
-
-
-
-\setuppublicationlayout[article]{%
- \insertartauthors{}{ }{\insertthekey{}{ }{}}%
- \insertpubyear{(}{). }{\unskip.}%
- \insertarttitle{\bgroup }{\egroup. }{}%
- \insertjournal{\bgroup \it}{\egroup}
- {\insertcrossref{In }{}{}}%
- \insertvolume
- {\bgroup \it, }
- {\egroup\insertissue{\/(}{)}{}\insertpages{, }{.}{.}}
- {\insertpages{, pp. }{.}{.}}%
- \insertnote{ }{.}{}%
- \insertcomment{}{.}{}%
-}
-
-% \newif\ifeditedbook
-\setuppublicationlayout[book]{%
- \insertauthors{}{ }{\inserteditors{}{, editor%
- \ifnum\getvalue{editor@num}> 1 s\fi
- \ \global\editedbooktrue
- }{\insertthekey{}{. }{}}}%
- \insertpubyear{(}{). }{\unskip.}%
- \inserttitle
- {\bgroup\it }%
- {\/\egroup
- \ifeditedbook
- \global\editedbookfalse
- \insertvolume
- { Number~}%
- {\insertseries
- { in~\bgroup}%
- {\egroup. }%
- {\insertcrossref{ in~}{}{. }}}%
- {\insertseries{ }{.}{.}}%
- \else
- \insertcrossref
- {\insertchap{, }{}{}%
- \insertpages{\unskip, pages }{. }{. }%
- \insertvolume{Volume~}{ of~}{}%
- }%
- {}%
- {\insertvolume
- {, volume~}%
- {\insertseries
- { of~\bgroup\it}%
- {\egroup}
- {}}
- {}%
- \insertchap{, }{}{}%
- \insertpages{\unskip, pages }{.}{.}%
- }%
- \fi}%
- {}%
- \insertedition{ }{ edition}{}%
- \insertpublisher{ }{.}{.}%
- \insertpages{ }{p. }{ }%
- \insertnote{}{.}{}%
-}
-
-\setuppublicationlayout[inbook]{%
- \insertauthors{}{ }{\inserteditors{}{, editor%
- \ifnum\getvalue{editor@num}> 1 s\fi
- \ \global\editedbooktrue
- }{\insertthekey{}{. }{}}}%
- \insertpubyear{(}{). }{\unskip.}%
- \inserttitle
- {\bgroup\it }%
- {\/\egroup
- \ifeditedbook
- \global\editedbookfalse
- \insertvolume
- { number~}%
- {\insertseries
- { in~\bgroup}%
- {\egroup. }%
- {\insertcrossref{ in~}{}{.}}}%
- {\insertseries{ }{.}{}}%
- \else
- \insertcrossref
- {\insertchap{, }{}{}%
- \insertpages{\unskip, pages }{. }{. }%
- \insertvolume{Volume~}{ of~}{}%
- }%
- {}%
- {\insertvolume
- {, volume~}%
- {\insertseries
- { of~\bgroup\it}%
- {\egroup}
- {}}
- {}%
- \insertchap{, }{}{}%
- \insertpages{\unskip, pages }{.}{}%
- }%
- \fi}%
- { }%
- \insertedition{ }{ edition.}{}%
- \insertpublisher{ }{.}{.}%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[booklet]{%
- \insertauthors{}{ }{\insertthekey{}{. }{}}%
- \insertpubyear{(}{). }{}%
- \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertedition{ }{ edition.}{}%
- \insertpublisher{ }{.}{.}%
- \insertpages{}{p. }{}%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[manual]{%
- \insertauthors{}{ }{\insertthekey{}{. }{}}%
- \insertpubyear{(}{). }{}%
- \inserttitle{\bgroup \it }{\/\egroup \insertseries{ (}{)}{}. }{}%
- \insertedition{ }{ edition.}{}%
- \insertorg{ }{.}{.}%
- \insertpages{}{p. }{}%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[incollection]{%
- \insertartauthors{}{ }{\insertthekey{}{. }{}}%
- \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. }%
- \insertedition{ }{ edition}{}%
- \insertpublisher{ }{.}{.}%
- }%
- {In \insertcrossref{}{}{}%
- \insertchap{\unskip, }{ }{ }%
- \insertpages{\unskip, pages~}{. }{\unskip. }%
- }%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[inproceedings]{%
- \insertauthors{}{ }{}%
- \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~}{}{}%
- \insertorg{. }{.}{.}%
- }%
- {In \insertcrossref{}{}{}%
- \insertchap{\unskip, }{ }{ }%
- \insertpages{\unskip, pages~}{. }{\unskip. }%
- }%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[proceedings]{%
- \inserteditors{}{, editor%
- \ifnum\getvalue{editor@num}> 1 s\fi
- \ \global\editedbooktrue
- }{\insertthekey{}{ }{}}%
- \insertpubyear{(}{). }{}%
- \inserttitle
- {\bgroup\it}%
- {\egroup
- \insertseries
- {\insertvolume{, number }{~in }{ }}%
- {}%
- {}%
- \insertchap{\unskip, }{ }{ }%
- \insertpages{\unskip, pages~}{}{}%
- \insertorg{. }{.}{.}%
- }%
- {}%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[mastersthesis]{%
- \insertauthors{}{ }{}%
- \insertpubyear{(}{). }{}%
- \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertbibtype{}{, }{Master's thesis, }%
- \insertpublisher{ }{.}{.}%
- \insertpages{ }{p. }{}%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[phdthesis]{%
- \insertauthors{}{ }{}%
- \insertpubyear{(}{). }{}%
- \inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertbibtype{}{, }{PhD thesis,}%
- \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{ }{, }{, }}{Technical Report}%
- \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/mkii/bibl-aps.tex b/Master/texmf-dist/tex/context/bib/mkii/bibl-aps.tex
deleted file mode 100644
index 2997e2066d8..00000000000
--- a/Master/texmf-dist/tex/context/bib/mkii/bibl-aps.tex
+++ /dev/null
@@ -1,441 +0,0 @@
-%D \module
-%D [ file=bibl-aps,
-%D version=2004.7.16,
-%D title=APS 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={ 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=num,
- \c!numbercommand=\bibalignednumber,
- \c!numbering=\v!yes,
- \c!autohang=\v!yes]
-
-\def\bibalignednumber#1{\hfill[#1]~~}
-
-\setuppublicationlist
- [\c!width=24pt,
- \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{}{ }{}}%
- \insertjournal{\unskip, \bgroup }{\egroup}
- {}% \insertcrossref{In }{}{}}%
- \insertvolume
- { \bgroup \bf }
- {\egroup %\insertissue{(}{)}{}%
- \insertfirstpage{, }{}{}}
- {\insertfirstpage{ }{}{}}%
- \insertpubyear{ (}{). }{\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 }{\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/mkii/bibl-num-fr.tex b/Master/texmf-dist/tex/context/bib/mkii/bibl-num-fr.tex
deleted file mode 100644
index 649e7e3f263..00000000000
--- a/Master/texmf-dist/tex/context/bib/mkii/bibl-num-fr.tex
+++ /dev/null
@@ -1,427 +0,0 @@
-%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/mkii/bibl-num.tex b/Master/texmf-dist/tex/context/bib/mkii/bibl-num.tex
deleted file mode 100644
index 8f2cbf34f50..00000000000
--- a/Master/texmf-dist/tex/context/bib/mkii/bibl-num.tex
+++ /dev/null
@@ -1,427 +0,0 @@
-%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{}{\unskip. }{\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{}{\unskip. }{}%
- \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertbibtype{}{, }{Master's thesis, }%
- \insertpublisher
- {}
- {, \insertpubyear{}{}{}}
- {\insertpubyear{}{}{}}%
- \insertpages{, }{p.}{.}%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[phdthesis]{%
- \insertauthors{}{\unskip. }{}%
- \inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertbibtype{}{, }{PhD thesis, }%
- \insertpublisher
- {}
- {, \insertpubyear{}{}{}}
- {\insertpubyear{}{}{}}%
- \insertpages{, }{p.}{.}%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[misc]{%
- \insertauthors{}{\unskip. }{\insertthekey{}{. }{}}%
- \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}. }{}%
- \insertpublisher
- {}
- {, \insertpubyear{}{}{}}
- {\insertpubyear{}{}{}}%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[techreport]{%
- \insertauthors{}{\unskip. }{}%
- \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertbibtype{}{\insertvolume{ }{, }{, }}{Technical Report, }%
- \insertpublisher
- {}
- {, \insertpubyear{}{}{}}
- {\insertpubyear{}{}{}}%
- \insertpages{, }{p.}{.}%
- \insertnote{ }{.}{}%
-}
-
-\setuppublicationlayout[unpublished]{%
- \insertauthors{}{\unskip. }{}%
- \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \insertpublisher
- {}
- {, \insertpubyear{}{.}{}}
- {\insertpubyear{}{.}{}}%
- \insertbibtype{ (}{)}{}%
- \insertnote{ }{.}{}%
-}
-
-\protect
diff --git a/Master/texmf-dist/tex/context/bib/mkii/bibl-ssa.tex b/Master/texmf-dist/tex/context/bib/mkii/bibl-ssa.tex
deleted file mode 100644
index cc8e124a8ba..00000000000
--- a/Master/texmf-dist/tex/context/bib/mkii/bibl-ssa.tex
+++ /dev/null
@@ -1,486 +0,0 @@
-%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
diff --git a/Master/texmf-dist/tex/context/colors/icc/profiles/default_gray.icc b/Master/texmf-dist/tex/context/colors/icc/profiles/default_gray.icc
new file mode 100644
index 00000000000..daaa7480ad7
--- /dev/null
+++ b/Master/texmf-dist/tex/context/colors/icc/profiles/default_gray.icc
Binary files differ
diff --git a/Master/texmf-dist/tex/context/colors/icc/profiles/ecirgb_v2.icc b/Master/texmf-dist/tex/context/colors/icc/profiles/ecirgb_v2.icc
new file mode 100644
index 00000000000..8fd642f8568
--- /dev/null
+++ b/Master/texmf-dist/tex/context/colors/icc/profiles/ecirgb_v2.icc
Binary files differ
diff --git a/Master/texmf-dist/tex/context/colors/icc/profiles/ecirgb_v2_iccv4.icc b/Master/texmf-dist/tex/context/colors/icc/profiles/ecirgb_v2_iccv4.icc
new file mode 100644
index 00000000000..efceaef631b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/colors/icc/profiles/ecirgb_v2_iccv4.icc
Binary files differ
diff --git a/Master/texmf-dist/tex/context/colors/icc/profiles/isocoated_v2_300_eci.icc b/Master/texmf-dist/tex/context/colors/icc/profiles/isocoated_v2_300_eci.icc
new file mode 100644
index 00000000000..0c46e9eb8bf
--- /dev/null
+++ b/Master/texmf-dist/tex/context/colors/icc/profiles/isocoated_v2_300_eci.icc
Binary files differ
diff --git a/Master/texmf-dist/tex/context/colors/icc/profiles/isocoated_v2_eci.icc b/Master/texmf-dist/tex/context/colors/icc/profiles/isocoated_v2_eci.icc
new file mode 100644
index 00000000000..dceb393f600
--- /dev/null
+++ b/Master/texmf-dist/tex/context/colors/icc/profiles/isocoated_v2_eci.icc
Binary files differ
diff --git a/Master/texmf-dist/tex/context/colors/icc/profiles/srgb.icc b/Master/texmf-dist/tex/context/colors/icc/profiles/srgb.icc
new file mode 100644
index 00000000000..7f9d18d097d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/colors/icc/profiles/srgb.icc
Binary files differ
diff --git a/Master/texmf-dist/tex/context/colors/icc/profiles/srgb_v4_icc_preference.icc b/Master/texmf-dist/tex/context/colors/icc/profiles/srgb_v4_icc_preference.icc
new file mode 100644
index 00000000000..cfbd03e1f78
--- /dev/null
+++ b/Master/texmf-dist/tex/context/colors/icc/profiles/srgb_v4_icc_preference.icc
Binary files differ
diff --git a/Master/texmf-dist/tex/context/fonts/mkii/type-buy.mkii b/Master/texmf-dist/tex/context/fonts/mkii/type-buy.mkii
deleted file mode 100644
index b8518acb0ea..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkii/type-buy.mkii
+++ /dev/null
@@ -1,571 +0,0 @@
-%D \module
-%D [ file=type-buy,
-%D version=2003.07.08, % 2001.04.12,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=A Few Commercial Fonts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% fallback
-
-% todo \typescriptthree
-
-\starttypescriptcollection[commercial fonts]
-
-% Informal : Vulis
-
-\starttypescript [casual] [informal] [name]
- \definefontsynonym [Serif] [Informal-Regular]
- \definefontsynonym [SerifBold] [Informal-Bold]
- \definefontsynonym [SerifSlanted] [Informal-Oblique]
- \definefontsynonym [SerifItalic] [Informal-Oblique]
- \definefontsynonym [SerifBoldSlanted] [Informal-BoldOblique]
- \definefontsynonym [SerifBoldItalic] [Informal-BoldOblique]
- \definefontsynonym [SerifCaps] [Informal-Regular]
-\stoptypescript
-
-\starttypescript [math] [informal] [name]
- \definefontsynonym [MathRoman] [Informal-Regular]
- \definefontsynonym [MathExtension] [Informal-MathExtendedSymbols]
- \definefontsynonym [MathItalic] [Informal-MathItalics]
- \definefontsynonym [MathSymbol] [Informal-MathSymbols]
-\stoptypescript
-
-\starttypescript [casual] [informal] [default]
- \definefontsynonym [Informal-Regular] [ifrm10cm]
- \definefontsynonym [Informal-Bold] [ifrb10cm]
- \definefontsynonym [Informal-Oblique] [ifro10cm]
- \definefontsynonym [Informal-BoldOblique] [ifbo10cm]
- \loadmapfile[original-micropress-informal.map]
-\stoptypescript
-
-\starttypescript [math] [informal] [default]
- \definefontsynonym [Informal-Regular] [ifrm10cm]
- \definefontsynonym [Informal-MathExtendedSymbols] [ifex10]
- \definefontsynonym [Informal-MathItalics] [ifmi10]
- \definefontsynonym [Informal-MathSymbols] [ifsy10]
- \loadmapfile[original-micropress-informal.map]
-\stoptypescript
-
-% ITC Officina
-
-\starttypescript [serif] [officina] [name]
- \definefontsynonym [Serif] [OfficinaSerif-Book]
- \definefontsynonym [SerifItalic] [OfficinaSerif-BookItalic]
- \definefontsynonym [SerifSlanted] [OfficinaSerif-BookSlanted]
- \definefontsynonym [SerifBold] [OfficinaSerif-Bold]
- \definefontsynonym [SerifBoldItalic] [OfficinaSerif-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [OfficinaSerif-BoldSlanted]
- \definefontsynonym [SerifCaps] [OfficinaSerif-Caps]
-\stoptypescript
-
-\starttypescript [sans] [officina] [name]
- \definefontsynonym [Sans] [OfficinaSans-Book]
- \definefontsynonym [SansItalic] [OfficinaSans-BookItalic]
- \definefontsynonym [SansSlanted] [OfficinaSans-BookSlanted]
- \definefontsynonym [SansBold] [OfficinaSans-Bold]
- \definefontsynonym [SansBoldItalic] [OfficinaSans-BoldItalic]
- \definefontsynonym [SansBoldSlanted] [OfficinaSans-BoldSlanted]
- \definefontsynonym [SansCaps] [OfficinaSans-Caps]
-\stoptypescript
-
-\starttypescript [serif] [officina] [texnansi,ec,8r]
- \definefontsynonym [OfficinaSerif-Book] [\typescriptthree-ovbk] [encoding=\typescriptthree]
- \definefontsynonym [OfficinaSerif-BookItalic] [\typescriptthree-ovwi] [encoding=\typescriptthree]
- \definefontsynonym [OfficinaSerif-Bold] [\typescriptthree-ovb] [encoding=\typescriptthree]
- \definefontsynonym [OfficinaSerif-BoldItalic] [\typescriptthree-ovbi] [encoding=\typescriptthree]
- \definefontsynonym [OfficinaSerif-BookSlanted] [\typescriptthree-ovbk-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [OfficinaSerif-BoldSlanted] [\typescriptthree-ovb-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [OfficinaSerif-Caps] [\typescriptthree-ovbk-capitalized-800] [encoding=\typescriptthree]
- \loadmapfile [\typescriptthree-itc-officina.map]
-\stoptypescript
-
-\starttypescript [sans] [officina] [texnansi,ec,8r]
- \definefontsynonym [OfficinaSans-Book] [\typescriptthree-owbk] [encoding=\typescriptthree]
- \definefontsynonym [OfficinaSans-BookItalic] [\typescriptthree-owwi] [encoding=\typescriptthree]
- \definefontsynonym [OfficinaSans-Bold] [\typescriptthree-owb] [encoding=\typescriptthree]
- \definefontsynonym [OfficinaSans-BoldItalic] [\typescriptthree-owbi] [encoding=\typescriptthree]
- \definefontsynonym [OfficinaSans-BookSlanted] [\typescriptthree-owbk-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [OfficinaSans-BoldSlanted] [\typescriptthree-owb-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [OfficinaSans-Caps] [\typescriptthree-owbk-capitalized-800] [encoding=\typescriptthree]
- \loadmapfile [\typescriptthree-itc-officina.map]
-\stoptypescript
-
-% FontFont Meta
-
-\starttypescript [sans] [meta] [name]
- \definefontsynonym [Sans] [MetaNormal-Roman]
- \definefontsynonym [SansItalic] [MetaNormal-Italic]
- \definefontsynonym [SansSlanted] [MetaNormal-Italic]
- \definefontsynonym [SansBold] [MetaBold-Roman]
- \definefontsynonym [SansBoldItalic] [MetaBold-Italic]
- \definefontsynonym [SansBoldSlanted][MetaBold-Italic]
- \definefontsynonym [SansCaps] [MetaNormal-Caps]
-\stoptypescript
-
-\starttypescript [sans] [meta-medium] [name]
- \definefontsynonym [Sans] [MetaMedium-Roman]
- \definefontsynonym [SansItalic] [MetaMedium-Italic]
- \definefontsynonym [SansSlanted] [MetaMedium-Italic]
- \definefontsynonym [SansBold] [MetaBold-Roman]
- \definefontsynonym [SansBoldItalic] [MetaBold-Italic]
- \definefontsynonym [SansBoldSlanted][MetaBold-Italic]
- \definefontsynonym [SansCaps] [MetaMedium-Caps]
-\stoptypescript
-
-\starttypescript [sans] [meta-lf] [name]
- \definefontsynonym [Sans] [MetaBookLF-Roman]
- \definefontsynonym [SansBold] [MetaBoldLF-Roman]
- \definefontsynonym [SansItalic] [MetaBookLF-Italic]
- \definefontsynonym [SansBoldItalic] [MetaBoldLF-Italic]
- \definefontsynonym [SansCaps] [MetaBookLF-Caps]
-\stoptypescript
-
-\starttypescript [sans] [meta,meta-book] [texnansi,ec,8r]
- \definefontsynonym [MetaBook-Roman] [\typescriptthree-mtbk] [encoding=\typescriptthree]
- \definefontsynonym [MetaBook-Italic] [\typescriptthree-mtbki] [encoding=\typescriptthree]
- \definefontsynonym [MetaBook-Caps] [\typescriptthree-mtbkc] [encoding=\typescriptthree]
- \definefontsynonym [MetaBook-ItalicCaps] [\typescriptthree-mtbkic] [encoding=\typescriptthree]
- \loadmapfile [\typescriptthree-fontfont-meta.map]
-\stoptypescript
-
-\starttypescript [sans] [meta-lf,meta-book-lf] [texnansi,ec,8r]
- \definefontsynonym [MetaBookLF-Roman] [\typescriptthree-mtbkf] [encoding=\typescriptthree]
- \definefontsynonym [MetaBookLF-Italic] [\typescriptthree-mtbkfi] [encoding=\typescriptthree]
- \definefontsynonym [MetaBookLF-Caps] [\typescriptthree-mtbkfc] [encoding=\typescriptthree]
- \definefontsynonym [MetaBookLF-ItalicCaps] [\typescriptthree-mtbkfic] [encoding=\typescriptthree]
- \loadmapfile [\typescriptthree-fontfont-meta.map]
-\stoptypescript
-
-\starttypescript [sans] [meta,meta-bold] [texnansi,ec,8r]
- \definefontsynonym [MetaBold-Roman] [\typescriptthree-mtbd] [encoding=\typescriptthree]
- \definefontsynonym [MetaBold-Italic] [\typescriptthree-mtbdi] [encoding=\typescriptthree]
- \definefontsynonym [MetaBold-Caps] [\typescriptthree-mtbdc] [encoding=\typescriptthree]
- \definefontsynonym [MetaBold-ItalicCaps] [\typescriptthree-mtbdic] [encoding=\typescriptthree]
- \loadmapfile [\typescriptthree-fontfont-meta.map]
-\stoptypescript
-
-\starttypescript [sans] [meta-lf,meta-bold-lf] [texnansi,ec,8r]
- \definefontsynonym [MetaBoldLF-Roman] [\typescriptthree-mtbdf] [encoding=\typescriptthree]
- \definefontsynonym [MetaBoldLF-Italic] [\typescriptthree-mtbdfi] [encoding=\typescriptthree]
- \definefontsynonym [MetaBoldLF-Caps] [\typescriptthree-mtbdfc] [encoding=\typescriptthree]
- \definefontsynonym [MetaBoldLF-ItalicCaps] [\typescriptthree-mtbdfic] [encoding=\typescriptthree]
- \loadmapfile [\typescriptthree-fontfont-meta.map]
-\stoptypescript
-
-\starttypescript [sans] [meta-normal] [texnansi,ec,8r]
- \definefontsynonym [MetaNormal-Roman] [\typescriptthree-mtn] [encoding=\typescriptthree]
- \definefontsynonym [MetaNormal-Italic] [\typescriptthree-mtni] [encoding=\typescriptthree]
- \definefontsynonym [MetaNormal-Caps] [\typescriptthree-mtnc] [encoding=\typescriptthree]
- \definefontsynonym [MetaNormal-ItalicCaps] [\typescriptthree-mtnic] [encoding=\typescriptthree]
- \loadmapfile [\typescriptthree-fontfont-meta.map]
-\stoptypescript
-
-\starttypescript [sans] [meta-normal-lf] [texnansi,ec,8r]
- \definefontsynonym [MetaNormalLF-Roman] [\typescriptthree-mtnf] [encoding=\typescriptthree]
- \definefontsynonym [MetaNormalLF-Italic] [\typescriptthree-mtnfi] [encoding=\typescriptthree]
- \definefontsynonym [MetaNormalLF-Caps] [\typescriptthree-mtnfc] [encoding=\typescriptthree]
- \definefontsynonym [MetaNormalLF-ItalicCaps] [\typescriptthree-mtnfic] [encoding=\typescriptthree]
- \loadmapfile [\typescriptthree-fontfont-meta.map]
-\stoptypescript
-
-\starttypescript [sans] [meta-medium] [texnansi,ec,8r]
- \definefontsynonym [MetaMedium-Roman] [\typescriptthree-mtm] [encoding=\typescriptthree]
- \definefontsynonym [MetaMedium-Italic] [\typescriptthree-mtmi] [encoding=\typescriptthree]
- \definefontsynonym [MetaMedium-Caps] [\typescriptthree-mtmc] [encoding=\typescriptthree]
- \definefontsynonym [MetaMedium-ItalicCaps] [\typescriptthree-mtmic] [encoding=\typescriptthree]
- \loadmapfile [\typescriptthree-fontfont-meta.map]
-\stoptypescript
-
-\starttypescript [sans] [meta-medium-lf] [texnansi,ec,8r]
- \definefontsynonym [MetaMediumLF-Roman] [\typescriptthree-mtmf] [encoding=\typescriptthree]
- \definefontsynonym [MetaMediumLF-Italic] [\typescriptthree-mtmfi] [encoding=\typescriptthree]
- \definefontsynonym [MetaMediumLF-Caps] [\typescriptthree-mtmfc] [encoding=\typescriptthree]
- \definefontsynonym [MetaMediumLF-ItalicCaps] [\typescriptthree-mtmfic] [encoding=\typescriptthree]
- \loadmapfile [\typescriptthree-fontfont-meta.map]
-\stoptypescript
-
-\starttypescript [sans] [meta-black] [texnansi,ec,8r]
- \definefontsynonym [MetaBlack-Roman] [\typescriptthree-mtbl] [encoding=\typescriptthree]
- \definefontsynonym [MetaBlack-Italic] [\typescriptthree-mtbli] [encoding=\typescriptthree]
- \definefontsynonym [MetaBlack-Caps] [\typescriptthree-mtblc] [encoding=\typescriptthree]
- \definefontsynonym [MetaBlack-ItalicCaps] [\typescriptthree-mtblic] [encoding=\typescriptthree]
- \loadmapfile [\typescriptthree-fontfont-meta.map]
-\stoptypescript
-
-\starttypescript [sans] [meta-black-lf] [texnansi,ec,8r]
- \definefontsynonym [MetaBlackLF-Roman] [\typescriptthree-mtblf] [encoding=\typescriptthree]
- \definefontsynonym [MetaBlackLF-Italic] [\typescriptthree-mtblfi] [encoding=\typescriptthree]
- \definefontsynonym [MetaBlackLF-Caps] [\typescriptthree-mtblfc] [encoding=\typescriptthree]
- \definefontsynonym [MetaBlackLF-ItalicCaps] [\typescriptthree-mtblfic] [encoding=\typescriptthree]
- \loadmapfile [\typescriptthree-fontfont-meta.map]
-\stoptypescript
-
-\starttypescript [expert] [meta] % incomplete
- \definefontsynonym [MetaNormal-Expert] [mtnx]
- \loadmapfile [\typescriptthree-fontfont-meta.map]
-\stoptypescript
-
-%D Linotype Univers
-
-\starttypescript [sans] [univers,univers-light,univers-black] [name]
- \definefontsynonym [Sans] [Univers]
- \definefontsynonym [SansBold] [Univers-Bold]
- \definefontsynonym [SansSlanted] [Univers-Oblique]
- \definefontsynonym [SansBoldSlanted] [Univers-BoldOblique]
-\stoptypescript
-
-\starttypescript [sans] [univers-light] [name]
- \definefontsynonym [Sans] [Univers-Light]
- \definefontsynonym [SansSlanted] [Univers-LightOblique]
-\stoptypescript
-
-\starttypescript [sans] [univers-black] [name]
- \definefontsynonym [Sans] [Univers-Black]
- \definefontsynonym [SansSlanted] [Univers-BlackOblique]
- \definefontsynonym [SansBold] [Univers-Black]
- \definefontsynonym [SansBoldSlanted] [Univers-BlackOblique]
-\stoptypescript
-
-\starttypescript [sans] [univers,univers-black,univers-light] [texnansi,ec,8r]
- \definefontsynonym [Univers-Light] [\typescriptthree-lt50136] [encoding=\typescriptthree]
- \definefontsynonym [Univers-LightOblique] [\typescriptthree-lt50137] [encoding=\typescriptthree]
- \definefontsynonym [Univers] [\typescriptthree-lt50138] [encoding=\typescriptthree]
- \definefontsynonym [Univers-Oblique] [\typescriptthree-lt50139] [encoding=\typescriptthree]
- \definefontsynonym [Univers-Bold] [\typescriptthree-lt50140] [encoding=\typescriptthree]
- \definefontsynonym [Univers-BoldOblique] [\typescriptthree-lt50141] [encoding=\typescriptthree]
- \definefontsynonym [Univers-Black] [\typescriptthree-lt50142] [encoding=\typescriptthree]
- \definefontsynonym [Univers-BlackOblique] [\typescriptthree-lt50143] [encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-linotype-univers.map]
-\stoptypescript
-
-% mendoza
-
-\starttypescript [serif] [mendoza] [name]
- \definefontsynonym [Serif] [MendozaRoman-Book]
- \definefontsynonym [SerifCaps] [MendozaRoman-Book]
- \definefontsynonym [SerifSlanted] [MendozaRoman-BookItalic]
- \definefontsynonym [SerifItalic] [MendozaRoman-BookItalic]
- \definefontsynonym [SerifBold] [MendozaRoman-Bold]
- \definefontsynonym [SerifBoldSlanted] [MendozaRoman-BoldItalic]
- \definefontsynonym [SerifBoldItalic] [MendozaRoman-BoldItalic]
-\stoptypescript
-
-\starttypescript [serif] [mendoza] [ec,8r,texnansi]
- \definefontsynonym[MendozaRoman-Bold] [\typescriptthree-zab] [encoding=\typescriptthree]
- \definefontsynonym[MendozaRoman-BoldItalic] [\typescriptthree-zabi][encoding=\typescriptthree]
- \definefontsynonym[MendozaRoman-Medium] [\typescriptthree-zam] [encoding=\typescriptthree]
- \definefontsynonym[MendozaRoman-MediumItalic][\typescriptthree-zami][encoding=\typescriptthree]
- \definefontsynonym[MendozaRoman-Book] [\typescriptthree-zaw] [encoding=\typescriptthree]
- \definefontsynonym[MendozaRoman-BookItalic] [\typescriptthree-zawi][encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-itc-mendoza.map]
-\stoptypescript
-
-% frutiger
-
-\starttypescript [sans] [frutiger] [name]
- \definefontsynonym [Sans] [Frutiger-Roman]
- \definefontsynonym [SansCaps] [Frutiger-Roman]
- \definefontsynonym [SansItalic] [Frutiger-Italic]
- \definefontsynonym [SansSlanted] [Frutiger-Italic]
- \definefontsynonym [SansBold] [Frutiger-Bold]
- \definefontsynonym [SansBoldItalic] [Frutiger-BoldItalic]
- \definefontsynonym [SansBoldSlanted] [Frutiger-BoldItalic]
-\stoptypescript
-
-\starttypescript [sans] [frutiger] [ec,8r,texnansi]
- \definefontsynonym[Frutiger-Bold] [\typescriptthree-ftb] [encoding=\typescriptthree]
- \definefontsynonym[Frutiger-BoldItalic] [\typescriptthree-ftbi] [encoding=\typescriptthree]
- \definefontsynonym[Frutiger-Black] [\typescriptthree-ftbl] [encoding=\typescriptthree]
- \definefontsynonym[Frutiger-BlackItalic][\typescriptthree-ftbli][encoding=\typescriptthree]
- \definefontsynonym[Frutiger-Italic] [\typescriptthree-fti] [encoding=\typescriptthree]
- \definefontsynonym[Frutiger-Light] [\typescriptthree-ftl] [encoding=\typescriptthree]
- \definefontsynonym[Frutiger-LightItalic][\typescriptthree-ftli] [encoding=\typescriptthree]
- \definefontsynonym[Frutiger-Roman] [\typescriptthree-ftr] [encoding=\typescriptthree]
- \definefontsynonym[Frutiger-UltraBlack] [\typescriptthree-ftubl][encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-adobe-frutiger.map]
-\stoptypescript
-
-\starttypescript [frutiger] [texnansi,ec,8r,uc]
- \definetypeface [frutiger] [ss] [sans] [frutiger] [default] [encoding=\typescripttwo]
-% \loadmapfile [\typescripttwo-adobe-frutiger.map]
-\stoptypescript
-
-% kabel
-
-\starttypescript [sans] [kabel] [ec,8r,texnansi]
- \definefontsynonym [ItcKabel-Bold] [\typescriptthree-kbb] [encoding=\typescriptthree]
- \definefontsynonym [ItcKabel-Demi] [\typescriptthree-kbd] [encoding=\typescriptthree]
- \definefontsynonym [ItcKabel-Medium] [\typescriptthree-kbm] [encoding=\typescriptthree]
- \definefontsynonym [ItcKabel-Ultra] [\typescriptthree-kbu] [encoding=\typescriptthree]
- \definefontsynonym [ItcKabel-Book] [\typescriptthree-kbw] [encoding=\typescriptthree]
- \loadmapfile [\typescriptthree-itc-kabel.map]
-\stoptypescript
-
-% thesans
-
-\starttypescript [sans] [thesans] [name]
- \definefontsynonym [Sans] [TheSans-Plain]
- \definefontsynonym [SansItalic] [TheSans-Italic]
- \definefontsynonym [SansSlanted] [TheSans-Italic]
- \definefontsynonym [SansBold] [TheSansBold-Plain]
- \definefontsynonym [SansBoldItalic] [TheSansBold-Italic]
- \definefontsynonym [SansBoldSlanted] [TheSansBold-Italic]
- \definefontsynonym [SansCaps] [TheSans-Caps]
- \definefontsynonym [SansCapsItalic] [TheSans-CapsItalic]
- \definefontsynonym [SansCapsSlanted] [TheSans-CapsItalic]
- \definefontsynonym [SansCapsBold] [TheSansBold-Caps]
- \definefontsynonym [SansCapsBoldItalic] [TheSansBold-CapsItalic]
- \definefontsynonym [SansCapsBoldSlanted] [TheSansBold-CapsItalic]
-\stoptypescript
-
-\starttypescript [mono] [thesans] [name]
- \definefontsynonym [Mono] [TheSansTypewriter-Plain]
- \definefontsynonym [MonoCaps] [TheSansTypewriter-Plain]
- \definefontsynonym [MonoItalic] [TheSansTypewriter-Italic]
- \definefontsynonym [MonoSlanted] [TheSansTypewriter-Italic]
- \definefontsynonym [MonoBold] [TheSansTypewriter-Bold]
- \definefontsynonym [MonoBoldItalic] [TheSansTypewriter-BoldItalic]
- \definefontsynonym [MonoBoldSlanted] [TheSansTypewriter-BoldItalic]
-\stoptypescript
-
-\starttypescript [sans] [thesans] [ec,8r,texnansi]
- \definefontsynonym [TheSans-Plain] [\typescriptthree-tsan5] [encoding=\typescriptthree]
- \definefontsynonym [TheSans-Italic] [\typescriptthree-tsan5i] [encoding=\typescriptthree]
- \definefontsynonym [TheSansBold-Plain] [\typescriptthree-tsan7] [encoding=\typescriptthree]
- \definefontsynonym [TheSansBold-Italic] [\typescriptthree-tsan7i] [encoding=\typescriptthree]
- \definefontsynonym [TheSans-Caps] [\typescriptthree-tsan5c] [encoding=\typescriptthree]
- \definefontsynonym [TheSans-CapsItalic] [\typescriptthree-tsan5ci] [encoding=\typescriptthree]
- \definefontsynonym [TheSansBold-Caps] [\typescriptthree-tsan7c] [encoding=\typescriptthree]
- \definefontsynonym [TheSansBold-CapsItalic] [\typescriptthree-tsan7ci] [encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-lucas-thesans.map]
-\stoptypescript
-
-\starttypescript [mono] [thesans] [ec,8r,texnansi]
- \definefontsynonym [TheSansTypewriter-Plain] [\typescriptthree-tsaty5] [encoding=\typescriptthree]
- \definefontsynonym [TheSansTypewriter-Italic] [\typescriptthree-tsaty5i] [encoding=\typescriptthree]
- \definefontsynonym [TheSansTypewriter-Bold] [\typescriptthree-tsaty7] [encoding=\typescriptthree]
- \definefontsynonym [TheSansTypewriter-BoldItalic] [\typescriptthree-tsaty7i] [encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-lucas-thesans.map]
-\stoptypescript
-
-\starttypescript [expert] [thesans]
- \definefontsynonym [TheSans-Expert] [tsan5e] [encoding=\typescriptthree]
- \definefontsynonym [TheSans-ExpertItalic] [tsan5ei] [encoding=\typescriptthree]
- \definefontsynonym [TheSansBold-Expert] [tsan7e] [encoding=\typescriptthree]
- \definefontsynonym [TheSansBold-ExpertItalic] [tsan7ei] [encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-lucas-thesans.map]
-\stoptypescript
-
-% monotype sabon
-
-\starttypescript [serif] [sabon] [name]
- \definefontsynonym [Serif] [SabonMT]
- \definefontsynonym [SerifItalic] [SabonMT-Italic]
- \definefontsynonym [SerifSlanted] [SabonMT-Italic]
- \definefontsynonym [SerifBold] [SabonMT-SemiBold]
- \definefontsynonym [SerifBoldItalic] [SabonMT-SemiBoldItalic]
- \definefontsynonym [SerifBoldSlanted] [SabonMT-SemiBoldItalic]
- \definefontsynonym [SerifCaps] [SabonMT-RegularSC]
-\stoptypescript
-
-\starttypescript [serif] [sabon] [ec,8r,texnansi]
- \definefontsynonym[SabonMT] [\typescriptthree-sab] [encoding=\typescriptthree]
- \definefontsynonym[SabonMT-Italic] [\typescriptthree-sabi] [encoding=\typescriptthree]
- \definefontsynonym[SabonMT-ItalicOsF] [\typescriptthree-saboi][encoding=\typescriptthree]
- \definefontsynonym[SabonMT-SemiBoldOsF] [\typescriptthree-sabos][encoding=\typescriptthree]
- \definefontsynonym[SabonMT-SemiBold] [\typescriptthree-sabs] [encoding=\typescriptthree]
- \definefontsynonym[SabonMT-RegularSC] [\typescriptthree-sabsc][encoding=\typescriptthree]
- \definefontsynonym[SabonMT-SemiBoldItalic] [\typescriptthree-sabsi][encoding=\typescriptthree]
- \definefontsynonym[SabonMT-SemiBoldItalicOsF][\typescriptthree-sasio][encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-monotype-sabon.map]
-\stoptypescript
-
-% itc stone
-
-\starttypescript [sans] [stone] [name]
- \definefontsynonym [Sans] [StoneSansITC-Medium]
- \definefontsynonym [SansItalic] [StoneSansITC-MediumItalic]
- \definefontsynonym [SansSlanted] [StoneSansITC-MediumItalic]
- \definefontsynonym [SansBold] [StoneSansITC-Bold]
- \definefontsynonym [SansBoldItalic] [StoneSansITC-BoldItalic]
- \definefontsynonym [SansBoldSlanted] [StoneSansITC-BoldItalic]
- \definefontsynonym [SansCaps] [StoneSansSCITC-Medium]
-\stoptypescript
-
-\starttypescript [serif] [stone] [name]
- \definefontsynonym [Serif] [StoneSerifITC-Medium]
- \definefontsynonym [SerifItalic] [StoneSerifITC-MediumItalic]
- \definefontsynonym [SerifSlanted] [StoneSerifITC-MediumItalic]
- \definefontsynonym [SerifBold] [StoneSerifITC-Bold]
- \definefontsynonym [SerifBoldItalic] [StoneSerifITC-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [StoneSerifITC-BoldItalic]
- \definefontsynonym [SerifCaps] [StoneSerifSCITC-Medium]
-\stoptypescript
-
-\starttypescript [sans] [stone-oldstyle] [name]
- \definefontsynonym [Sans] [StoneSansOSITC-Medium]
- \definefontsynonym [SansItalic] [StoneSansOSITC-MediumItalic]
- \definefontsynonym [SansSlanted] [StoneSansOSITC-MediumItalic]
- \definefontsynonym [SansBold] [StoneSansOSITC-Bold]
- \definefontsynonym [SansBoldItalic] [StoneSansOSITC-BoldItalic]
- \definefontsynonym [SansBoldSlanted] [StoneSansOSITC-BoldItalic]
- \definefontsynonym [SansCaps] [StoneSansSCITC-Medium]
-\stoptypescript
-
-\starttypescript [serif] [stone-oldstyle] [name]
- \definefontsynonym [Serif] [StoneSerifOSITC-Medium]
- \definefontsynonym [SerifItalic] [StoneSerifOSITC-MediumItalic]
- \definefontsynonym [SerifSlanted] [StoneSerifOSITC-MediumItalic]
- \definefontsynonym [SerifBold] [StoneSerifOSITC-Bold]
- \definefontsynonym [SerifBoldItalic] [StoneSerifOSITC-BoldItalic]
- \definefontsynonym [SerifBoldSlanted] [StoneSerifOSITC-BoldItalic]
- \definefontsynonym [SerifCaps] [StoneSerifSCITC-Medium]
-\stoptypescript
-
-\starttypescript [sans] [stone] [ec,texnansi]
- \definefontsynonym[StoneSansITC-Bold] [\typescriptthree-stosnb] [encoding=\typescriptthree]
- \definefontsynonym[StoneSansITC-BoldItalic] [\typescriptthree-stosnbi] [encoding=\typescriptthree]
- \definefontsynonym[StoneSansITC-Medium] [\typescriptthree-stosnm] [encoding=\typescriptthree]
- \definefontsynonym[StoneSansITC-MediumItalic] [\typescriptthree-stosnmi] [encoding=\typescriptthree]
- \definefontsynonym[StoneSansOSITC-Bold] [\typescriptthree-stosnob] [encoding=\typescriptthree]
- \definefontsynonym[StoneSansOSITC-BoldItalic] [\typescriptthree-stosnobi][encoding=\typescriptthree]
- \definefontsynonym[StoneSansOSITC-Medium] [\typescriptthree-stosnom] [encoding=\typescriptthree]
- \definefontsynonym[StoneSansOSITC-MediumItalic][\typescriptthree-stosnomi][encoding=\typescriptthree]
- \definefontsynonym[StoneSansSCITC-Medium] [\typescriptthree-stosnscm][encoding=\typescriptthree]
- \definefontsynonym[StoneSansSemITC-Semi] [\typescriptthree-stosns] [encoding=\typescriptthree]
- \definefontsynonym[StoneSansSemITC-SemiIta] [\typescriptthree-stosnsi] [encoding=\typescriptthree]
- \definefontsynonym[StoneSansSemOSITC-Semi] [\typescriptthree-stosnos] [encoding=\typescriptthree]
- \definefontsynonym[StoneSansSemOSITC-SemiIta] [\typescriptthree-stosnosi][encoding=\typescriptthree]
- \definefontsynonym[StoneSansSemSCITC-Semi] [\typescriptthree-stosnscs][encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-itc-stone.map]
-\stoptypescript
-
-\starttypescript [serif] [stone] [ec,texnansi]
- \definefontsynonym[StoneSerifITC-Bold] [\typescriptthree-stosfb] [encoding=\typescriptthree]
- \definefontsynonym[StoneSerifITC-BoldItalic] [\typescriptthree-stosfbi] [encoding=\typescriptthree]
- \definefontsynonym[StoneSerifITC-Medium] [\typescriptthree-stosfm] [encoding=\typescriptthree]
- \definefontsynonym[StoneSerifITC-MediumItalic] [\typescriptthree-stosfmi] [encoding=\typescriptthree]
- \definefontsynonym[StoneSerifOSITC-Bold] [\typescriptthree-stosfob] [encoding=\typescriptthree]
- \definefontsynonym[StoneSerifOSITC-BoldItalic] [\typescriptthree-stosfobi][encoding=\typescriptthree]
- \definefontsynonym[StoneSerifOSITC-Medium] [\typescriptthree-stosfom] [encoding=\typescriptthree]
- \definefontsynonym[StoneSerifOSITC-MediumItalic][\typescriptthree-stosfomi][encoding=\typescriptthree]
- \definefontsynonym[StoneSerifSCITC-Medium] [\typescriptthree-stosfscm][encoding=\typescriptthree]
- \definefontsynonym[StoneSerifSemITC-Semi] [\typescriptthree-stosfs] [encoding=\typescriptthree]
- \definefontsynonym[StoneSerifSemITC-SemiIta] [\typescriptthree-stosfsi] [encoding=\typescriptthree]
- \definefontsynonym[StoneSerifSemOSITC-Semi] [\typescriptthree-stosfos] [encoding=\typescriptthree]
- \definefontsynonym[StoneSerifSemOSITC-SemiIta] [\typescriptthree-stosfosi][encoding=\typescriptthree]
- \definefontsynonym[StoneSerifSemSCITC-Semi] [\typescriptthree-stosfscs][encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-itc-stone.map]
-\stoptypescript
-
-% linotype industria
-
-\starttypescript [sans] [industria] [ec,texnansi]
- \definefontsynonym[Industria-Solid][\typescriptthree-lt50545][encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-linotype-industria.map]
-\stoptypescript
-
-% itc bauhaus
-%
-% texfont --enc=texnansi --ven=itc --col=bauhaus type-buy.dat
-
-\starttypescript [sans] [bauhaus] [ec,texnansi]
- \definefontsynonym[Bauhaus-Light] [\typescriptthree-bhl] [encoding=\typescriptthree]
- \definefontsynonym[Bauhaus-Medium] [\typescriptthree-bhm] [encoding=\typescriptthree]
- \definefontsynonym[Bauhaus-Demi] [\typescriptthree-bhd] [encoding=\typescriptthree]
- \definefontsynonym[Bauhaus-Bold] [\typescriptthree-bhb] [encoding=\typescriptthree]
- \definefontsynonym[Bauhaus-Heavy] [\typescriptthree-bhh] [encoding=\typescriptthree]
- \definefontsynonym[Bauhaus-Bold-Slanted] [\typescriptthree-bhb-slanted-167][encoding=\typescriptthree]
- \definefontsynonym[Bauhaus-Demi-Slanted] [\typescriptthree-bhd-slanted-167][encoding=\typescriptthree]
- \definefontsynonym[Bauhaus-Heavy-Slanted] [\typescriptthree-bhh-slanted-167][encoding=\typescriptthree]
- \definefontsynonym[Bauhaus-Light-Slanted] [\typescriptthree-bhl-slanted-167][encoding=\typescriptthree]
- \definefontsynonym[Bauhaus-Medium-Slanted][\typescriptthree-bhm-slanted-167][encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-itc-bauhaus.map]
-\stoptypescript
-
-% ef swift
-%
-% texfont --enc=texnansi --ven=ef --col=swift type-buy.dat
-
-\starttypescript [serif] [swift] [name]
- \definefontsynonym [Serif] [SwiftEF-Regular]
- \definefontsynonym [SerifItalic] [SwiftEF-RegularItalic]
- \definefontsynonym [SerifSlanted] [SwiftEF-RegularItalic]
- \definefontsynonym [SerifBold] [SwiftEF-Bold]
- \definefontsynonym [SerifBoldItalic] [SwiftEF-Bold]
- \definefontsynonym [SerifBoldSlanted] [SwiftEF-Bold]
- \definefontsynonym [SerifCaps] [SwiftSCEF-Regular]
-\stoptypescript
-
-\starttypescript [serif] [swift-light] [name]
- \definefontsynonym [Serif] [SwiftEF-Light]
- \definefontsynonym [SerifItalic] [SwiftEF-LightItalic]
- \definefontsynonym [SerifSlanted] [SwiftEF-LightItalic]
- \definefontsynonym [SerifBold] [SwiftEF-Regular]
- \definefontsynonym [SerifBoldItalic] [SwiftEF-RegularItalic]
- \definefontsynonym [SerifBoldSlanted] [SwiftEF-RegularItalic]
- \definefontsynonym [SerifCaps] [SwiftSCEF-Regular]
-\stoptypescript
-
-\starttypescript [serif] [swift] [ec,texnansi]
- \definefontsynonym[SwiftEF-Light] [\typescriptthree-swlt] [encoding=\typescriptthree]
- \definefontsynonym[SwiftEF-Regular] [\typescriptthree-swrg] [encoding=\typescriptthree]
- \definefontsynonym[SwiftEF-Bold] [\typescriptthree-swbd] [encoding=\typescriptthree]
- \definefontsynonym[SwiftEF-ExtraBold] [\typescriptthree-swxb] [encoding=\typescriptthree]
- \definefontsynonym[SwiftEF-LightItalic] [\typescriptthree-swlti][encoding=\typescriptthree]
- \definefontsynonym[SwiftEF-RegularItalic][\typescriptthree-swrgi][encoding=\typescriptthree]
- \definefontsynonym[SwiftEF-BoldCondensed][\typescriptthree-swbdc][encoding=\typescriptthree]
- \definefontsynonym[SwiftSCEF-Regular] [\typescriptthree-swrgs][encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-ef-swift.map]
-\stoptypescript
-
-% linotype syntax
-
-\starttypescript [sans] [syntax] [name]
- \definefontsynonym [Sans] [SyntaxLT-Roman]
- \definefontsynonym [SansItalic] [SyntaxLT-Italic]
- \definefontsynonym [SansSlanted] [SyntaxLT-Italic]
- \definefontsynonym [SansBold] [SyntaxLT-Black]
- \definefontsynonym [SansBoldItalic] [SyntaxLT-Black]
- \definefontsynonym [SansBoldSlanted][SyntaxLT-Black]
-\stoptypescript
-
-\starttypescript [sans] [syntax] [ec,texnansi]
- \definefontsynonym [SyntaxLT-Roman] [\typescriptthree-lte50617] [encoding=\typescriptthree]
- \definefontsynonym [SyntaxLT-Italic] [\typescriptthree-lte50618] [encoding=\typescriptthree]
- \definefontsynonym [SyntaxLT-Bold] [\typescriptthree-lte50619] [encoding=\typescriptthree]
- \definefontsynonym [SyntaxLT-Black] [\typescriptthree-lte50620] [encoding=\typescriptthree]
- \definefontsynonym [SyntaxLT-UltraBlack] [\typescriptthree-lte50621] [encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-linotype-syntax.map]
-\stoptypescript
-
-% linotype linoletter
-
-\starttypescript [serif] [linoletter] [name]
- \definefontsynonym [Serif] [LinoLetterLT-Roman]
- \definefontsynonym [SerifItalic] [LinoLetterLT-Italic]
- \definefontsynonym [SerifSlanted] [LinoLetterLT-Italic]
- \definefontsynonym [SerifBold] [LinoLetterLT-Bold]
- \definefontsynonym [SerifBoldItalic] [LinoLetterLT-BoldItalic]
- \definefontsynonym [SerifBoldSlanted][LinoLetterLT-BoldItalic]
-\stoptypescript
-
-\starttypescript [serif] [linoletter] [ec,texnansi]
- \definefontsynonym[LinoLetterLT-Roman] [texnansi-lte51129] [encoding=\typescriptthree]
- \definefontsynonym[LinoLetterLT-Italic] [texnansi-lte51130] [encoding=\typescriptthree]
- \definefontsynonym[LinoLetterLT-Bold] [texnansi-lte51133] [encoding=\typescriptthree]
- \definefontsynonym[LinoLetterLT-BoldItalic] [texnansi-lte51134] [encoding=\typescriptthree]
- \definefontsynonym[LinoLetterLT-BlackItalic] [texnansi-lte51136] [encoding=\typescriptthree]
- \definefontsynonym[LinoLetter-MediumSC] [texnansi-llmsc] [encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-linotype-linoletter.map]
-\stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/fonts/mkii/type-cbg.mkii b/Master/texmf-dist/tex/context/fonts/mkii/type-cbg.mkii
deleted file mode 100644
index a45a71d4ed4..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkii/type-cbg.mkii
+++ /dev/null
@@ -1,352 +0,0 @@
-%D \module
-%D [ file=type-cbg,
-%D version=2004.08.23,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=CB Greek,
-%D author={Giuseppe Bilotta, Hans Hagen},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% legend:
-%
-% g=greek
-% r=regular s=sansserif t=typewriter
-% m=medium x=boldextended t=monospaced
-% n=normal o=oblique i=italic u=uprightitalic c=smallcaps
-
-% ruby script to make small zip file:
-%
-% zipfile = 'cbsmall.zip'
-%
-% fontfiles = Array.new
-%
-% fontfiles.push(Dir.glob("fonts/{tfm,vf,afm,type1}/public/cb/{gr,gs,gt}{m,s,t}{n,o,i,u,c}{0800,1000,1200}.{tfm,afm,pfb}"))
-% fontfiles.push(Dir.glob("fonts/{map,enc,lig}/{dvips,pdftex,dvipdfm,dvipdfmx}/cb/{cbgreek,cbsmall}.{map,enc,lig}"))
-%
-% File.delete(zipfile) if FileTest.file?(zipfile)
-% system("zip -r -9 cbsmall #{fontfiles.join(' ')}")
-
-\starttypescriptcollection[cbgreek]
-
-\starttypescript [serif] [cbgreek] [name]
- \definefontsynonym [CBGreek-Regular-Medium-Normal] [grmn1000]
- \definefontsynonym [CBGreek-Regular-Medium-Oblique] [grmo1000]
- \definefontsynonym [CBGreek-Regular-Medium-Italic] [grmi1000]
- \definefontsynonym [CBGreek-Regular-Medium-UprightItalic] [grmu1000]
- \definefontsynonym [CBGreek-Regular-Medium-Caps] [grmc1000]
- \definefontsynonym [CBGreek-Regular-Medium-Leipzig] [grml1000]
- \definefontsynonym [CBGreek-Regular-Medium-Roman] [grmr1000]
- \definefontsynonym [CBGreek-Regular-BoldExtended-Normal] [grxn1000]
- \definefontsynonym [CBGreek-Regular-BoldExtended-Oblique] [grxo1000]
- \definefontsynonym [CBGreek-Regular-BoldExtended-Italic] [grxi1000]
- \definefontsynonym [CBGreek-Regular-BoldExtended-UprightItalic] [grxu1000]
- \definefontsynonym [CBGreek-Regular-BoldExtended-Caps] [grxc1000]
- \definefontsynonym [CBGreek-Regular-BoldExtended-Leipzig] [grxl1000]
- \definefontsynonym [CBGreek-Regular-BoldExtended-Roman] [grxr1000]
- \loadmapfile [cbgreek.map]
-\stoptypescript
-
-\starttypescript [sans] [cbgreek] [name]
- \definefontsynonym [CBGreek-Sans-Medium-Normal] [gsmn1000]
- \definefontsynonym [CBGreek-Sans-Medium-Oblique] [gsmo1000]
- \definefontsynonym [CBGreek-Sans-Medium-Italic] [gsmi1000]
- \definefontsynonym [CBGreek-Sans-Medium-UprightItalic] [gsmu1000]
- \definefontsynonym [CBGreek-Sans-Medium-Caps] [gsmc1000]
- \definefontsynonym [CBGreek-Sans-Medium-Leipzig] [gsml1000]
- \definefontsynonym [CBGreek-Sans-Medium-Roman] [gsmr1000]
- \definefontsynonym [CBGreek-Sans-BoldExtended-Normal] [gsxn1000]
- \definefontsynonym [CBGreek-Sans-BoldExtended-Oblique] [gsxo1000]
- \definefontsynonym [CBGreek-Sans-BoldExtended-Italic] [gsxi1000]
- \definefontsynonym [CBGreek-Sans-BoldExtended-UprightItalic] [gsxu1000]
- \definefontsynonym [CBGreek-Sans-BoldExtended-Caps] [gsxc1000]
- \definefontsynonym [CBGreek-Sans-BoldExtended-Leipzig] [gsxl1000]
- \definefontsynonym [CBGreek-Sans-BoldExtended-Roman] [gsxr1000]
- \loadmapfile [cbgreek.map]
-\stoptypescript
-
-\starttypescript [mono] [cbgreek] [name]
- \definefontsynonym [CBGreek-Typewriter-Medium-Normal] [gttn1000]
- \definefontsynonym [CBGreek-Typewriter-Medium-Oblique] [gtto1000]
- \definefontsynonym [CBGreek-Typewriter-Medium-Italic] [gtti1000]
- \definefontsynonym [CBGreek-Typewriter-Medium-UprightItalic] [gttu1000]
- \definefontsynonym [CBGreek-Typewriter-Medium-Caps] [gttc1000]
- \definefontsynonym [CBGreek-Typewriter-Medium-Leipzig] [gttl1000]
- \definefontsynonym [CBGreek-Typewriter-Medium-Roman] [gttr1000]
- \loadmapfile [cbgreek.map]
-\stoptypescript
-
-\starttypescript [serif] [cbgreek] [name]
- \definefontsynonym [Serif] [CBGreek-Regular-Medium-Normal]
- \definefontsynonym [SerifSlanted] [CBGreek-Regular-Medium-Oblique]
- \definefontsynonym [SerifItalic] [CBGreek-Regular-Medium-Italic]
- \definefontsynonym [SerifCaps] [CBGreek-Regular-Medium-Caps]
- \definefontsynonym [SerifBold] [CBGreek-Regular-BoldExtended-Normal]
- \definefontsynonym [SerifBoldSlanted] [CBGreek-Regular-BoldExtended-Oblique]
- \definefontsynonym [SerifBoldItalic] [CBGreek-Regular-BoldExtended-Italic]
- \definefontsynonym [SerifBoldCaps] [CBGreek-Regular-BoldExtended-Caps]
- \loadmapfile [cbgreek.map]
-\stoptypescript
-
-\starttypescript [sans] [cbgreek] [name]
- \definefontsynonym [Sans] [CBGreek-Sans-Medium-Normal]
- \definefontsynonym [SansSlanted] [CBGreek-Sans-Medium-Oblique]
- \definefontsynonym [SansItalic] [CBGreek-Sans-Medium-Italic]
- \definefontsynonym [SansCaps] [CBGreek-Sans-Medium-Caps]
- \definefontsynonym [SansBold] [CBGreek-Sans-BoldExtended-Normal]
- \definefontsynonym [SansBoldSlanted] [CBGreek-Sans-BoldExtended-Oblique]
- \definefontsynonym [SansBoldItalic] [CBGreek-Sans-BoldExtended-Italic]
- \definefontsynonym [SansBoldCaps] [CBGreek-Sans-BoldExtended-Caps]
- \loadmapfile [cbgreek.map]
-\stoptypescript
-
-\starttypescript [mono] [cbgreek] [name]
- \definefontsynonym [Mono] [CBGreek-Typewriter-Medium-Normal]
- \definefontsynonym [MonoSlanted] [CBGreek-Typewriter-Medium-Oblique]
- \definefontsynonym [MonoItalic] [CBGreek-Typewriter-Medium-Italic]
- \definefontsynonym [MonoCaps] [CBGreek-Typewriter-Medium-Caps]
- \loadmapfile [cbgreek.map]
-\stoptypescript
-
-% Please note that we use Bold Extended instead of Bold
-
-\starttypescript [serif] [cbgreek-all] [size]
-
- \definebodyfont [4pt,5pt] [rm]
- [tf=grmn0500 sa 1,sl=grmo0500 sa 1,it=grmi0500 sa 1,
- bf=grxn0500 sa 1,bs=grxo0500 sa 1,bi=grxi0500 sa 1,
- sc=grmc0500 sa 1]
-
- \definebodyfont [6pt] [rm]
- [tf=grmn0600,sl=grmo0600,it=grmi0600,
- bf=grxn0600,bs=grxo0600,bi=grxi0600,
- sc=grmc0600]
-
- \definebodyfont [7pt] [rm]
- [tf=grmn0700,sl=grmo0700,it=grmi0700,
- bf=grxn0700,bs=grxo0700,bi=grxi0700,
- sc=grmc0700]
-
- \definebodyfont [8pt] [rm]
- [tf=grmn0800,sl=grmo0800,it=grmi0800,
- bf=grxn0800,bs=grxo0800,bi=grxi0800,
- sc=grmc0800]
-
- \definebodyfont [9pt] [rm]
- [tf=grmn0900,sl=grmo0900,it=grmi0900,
- bf=grxn0900,bs=grxo0900,bi=grxi0900,
- sc=grmc0900]
-
- \definebodyfont [10pt] [rm]
- [tf=grmn1000,sl=grmo1000,it=grmi1000,
- bf=grxn1000,bs=grxo1000,bi=grxi1000,
- sc=grmc1000]
-
- \definebodyfont [11pt] [rm]
- [tf=grmn1095,sl=grmo1095,it=grmi1095,
- bf=grxn1095,bs=grxo1095,bi=grxi1095,
- sc=grmc1095]
-
- \definebodyfont [12pt] [rm]
- [tf=grmn1200,sl=grmo1200,it=grmi1200,
- bf=grxn1200,bs=grxo1200,bi=grxi1200,
- sc=grmc1200]
-
- \definebodyfont [14.4pt,17.3pt,20.7pt] [rm]
- [tf=grmn1440 sa 1,sl=grmo1440 sa 1,it=grmi1440 sa 1,
- bf=grxn1440 sa 1,bs=grxo1440 sa 1,bi=grxi1440 sa 1,
- sc=grmc1440 sa 1]
-
- \loadmapfile [cbgreek.map]
-
-\stoptypescript
-
-\starttypescript [sans] [cbgreek-all] [size]
-
- \definebodyfont [4pt,5pt] [ss]
- [tf=gsmn0500 sa 1,sl=gsmo0500 sa 1,it=gsmi0500 sa 1,
- bf=gsxn0500 sa 1,bs=gsxo0500 sa 1,bi=gsxi0500 sa 1,
- sc=gsmc0500 sa 1]
-
- \definebodyfont [6pt] [ss]
- [tf=gsmn0600,sl=gsmo0600,it=gsmi0600,
- bf=gsxn0600,bs=gsxo0600,bi=gsxi0600,
- sc=gsmc0600]
-
- \definebodyfont [7pt] [ss]
- [tf=gsmn0700,sl=gsmo0700,it=gsmi0700,
- bf=gsxn0700,bs=gsxo0700,bi=gsxi0700,
- sc=gsmc0700]
-
- \definebodyfont [8pt] [ss]
- [tf=gsmn0800,sl=gsmo0800,it=gsmi0800,
- bf=gsxn0800,bs=gsxo0800,bi=gsxi0800,
- sc=gsmc0800]
-
- \definebodyfont [9pt] [ss]
- [tf=gsmn0900,sl=gsmo0900,it=gsmi0900,
- bf=gsxn0900,bs=gsxo0900,bi=gsxi0900,
- sc=gsmc0900]
-
- \definebodyfont [10pt] [ss]
- [tf=gsmn1000,sl=gsmo1000,it=gsmi1000,
- bf=gsxn1000,bs=gsxo1000,bi=gsxi1000,
- sc=gsmc1000]
-
- \definebodyfont [11pt] [ss]
- [tf=gsmn1095,sl=gsmo1095,it=gsmi1095,
- bf=gsxn1095,bs=gsxo1095,bi=gsxi1095,
- sc=gsmc1095]
-
- \definebodyfont [12pt] [ss]
- [tf=gsmn1200,sl=gsmo1200,it=gsmi1200,
- bf=gsxn1200,bs=gsxo1200,bi=gsxi1200,
- sc=gsmc1200]
-
- \definebodyfont [14.4pt,17.3pt,20.7pt] [ss]
- [tf=gsmn1440 sa 1,sl=gsmo1440 sa 1,it=gsmi1440 sa 1,
- bf=gsxn1440 sa 1,bs=gsxo1440 sa 1,bi=gsxi1440 sa 1,
- sc=gsmc1440 sa 1]
-
- \loadmapfile [cbgreek.map]
-
-\stoptypescript
-
-\starttypescript [mono] [cbgreek-all] [size]
-
- \definebodyfont [4pt,5pt] [tt]
- [tf=gttn0500 sa 1,sl=gtto0500 sa 1,it=gtti0500 sa 1,
- sc=gttc0500 sa 1]
-
- \definebodyfont [6pt] [tt]
- [tf=gttn0600,sl=gtto0600,it=gtti0600,
- sc=gttc0600]
-
- \definebodyfont [7pt] [tt]
- [tf=gttn0700,sl=gtto0700,it=gtti0700,
- sc=gttc0700]
-
- \definebodyfont [8pt] [tt]
- [tf=gttn0800,sl=gtto0800,it=gtti0800,
- sc=gttc0800]
-
- \definebodyfont [9pt] [tt]
- [tf=gttn0900,sl=gtto0900,it=gtti0900,
- sc=gttc0900]
-
- \definebodyfont [10pt] [tt]
- [tf=gttn1000,sl=gtto1000,it=gtti1000,
- sc=gttc1000]
-
- \definebodyfont [11pt] [tt]
- [tf=gttn1095,sl=gtto1095,it=gtti1095,
- sc=gttc1095]
-
- \definebodyfont [12pt] [tt]
- [tf=gttn1200,sl=gtto1200,it=gtti1200,
- sc=gttc1200]
-
- \definebodyfont [14.4pt,17.3pt,20.7pt] [tt]
- [tf=gttn1440 sa 1,sl=gtto1440 sa 1,it=gtti1440 sa 1,
- sc=gttc1440 sa 1]
-
- \loadmapfile [cbgreek.map]
-
-\stoptypescript
-
-\starttypescript [serif] [cbgreek-medium] [size]
-
- \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt] [rm]
- [tf=grmn0800 sa 1,sl=grmo0800 sa 1,it=grmi0800 sa 1,
- bf=grxn0800 sa 1,bs=grxo0800 sa 1,bi=grxi0800 sa 1,
- sc=grmc0800 sa 1]
-
- \definebodyfont [10pt,11pt] [rm]
- [tf=grmn1000 sa 1,sl=grmo1000 sa 1,it=grmi1000 sa 1,
- bf=grxn1000 sa 1,bs=grxo1000 sa 1,bi=grxi1000 sa 1,
- sc=grmc1000 sa 1]
-
- \definebodyfont [12pt,14.4pt,17.3pt,20.7pt] [rm]
- [tf=grmn1200 sa 1,sl=grmo1200 sa 1,it=grmi1200 sa 1,
- bf=grxn1200 sa 1,bs=grxo1200 sa 1,bi=grxi1200 sa 1,
- sc=grmc1200 sa 1]
-
- \loadmapfile [cbgreek.map]
-
-\stoptypescript
-
-\starttypescript [sans] [cbgreek-medium] [size]
-
- \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt] [ss]
- [tf=gsmn0800 sa 1,sl=gsmo0800 sa 1,it=gsmi0800 sa 1,
- bf=gsxn0800 sa 1,bs=gsxo0800 sa 1,bi=gsxi0800 sa 1,
- sc=gsmc0800 sa 1]
-
- \definebodyfont [10pt,11pt] [ss]
- [tf=gsmn1000 sa 1,sl=gsmo1000 sa 1,it=gsmi1000 sa 1,
- bf=gsxn1000 sa 1,bs=gsxo1000 sa 1,bi=gsxi1000 sa 1,
- sc=gsmc1000 sa 1]
-
- \definebodyfont [12pt,14.4pt,17.3pt,20.7pt] [ss]
- [tf=gsmn1200 sa 1,sl=gsmo1200 sa 1,it=gsmi1200 sa 1,
- bf=gsxn1200 sa 1,bs=gsxo1200 sa 1,bi=gsxi1200 sa 1,
- sc=gsmc1200 sa 1]
-
- \loadmapfile [cbgreek.map]
-
-\stoptypescript
-
-\starttypescript [mono] [cbgreek-medium] [size]
-
- \definebodyfont [4pt,5pt,6pt,7pt,8pt,9pt] [tt]
- [tf=gttn0800 sa 1,sl=gtto0800 sa 1,it=gtti0800 sa 1,
- sc=gttc0800 sa 1]
-
- \definebodyfont [10pt,11pt] [tt]
- [tf=gttn1000 sa 1,sl=gtto1000 sa 1,it=gtti1000 sa 1,
- sc=gttc1000 sa 1]
-
- \definebodyfont [12pt,14.4pt,17.3pt,20.7pt] [tt]
- [tf=gttn1200 sa 1,sl=gtto1200 sa 1,it=gtti1200 sa 1,
- sc=gttc1200 sa 1]
-
- \loadmapfile [cbgreek.map]
-
-\stoptypescript
-
-\starttypescript [cbgreek-all]
-
- \definebodyfontenvironment [cbgreek] [default] []
-
- \definetypeface [cbgreek] [rm] [serif] [cbgreek] [cbgreek-all]
- \definetypeface [cbgreek] [ss] [sans] [cbgreek] [cbgreek-all]
- \definetypeface [cbgreek] [tt] [mono] [cbgreek] [cbgreek-all]
-
-\stoptypescript
-
-\starttypescript [cbgreek-medium] % lowercase, patched HH
-
- \definebodyfontenvironment [cbgreek] [default] []
-
- \definetypeface [cbgreek] [rm] [serif] [cbgreek] [cbgreek-medium]
- \definetypeface [cbgreek] [ss] [sans] [cbgreek] [cbgreek-medium]
- \definetypeface [cbgreek] [tt] [mono] [cbgreek] [cbgreek-medium]
-
-\stoptypescript
-
-\starttypescript [cbgreek] % lowercase, patched HH
-
- \definebodyfontenvironment [cbgreek] [default] []
-
- \definetypeface [cbgreek] [rm] [serif] [cbgreek] [default]
- \definetypeface [cbgreek] [ss] [sans] [cbgreek] [default]
- \definetypeface [cbgreek] [tt] [mono] [cbgreek] [default]
-
-\stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/fonts/mkii/type-cow.mkii b/Master/texmf-dist/tex/context/fonts/mkii/type-cow.mkii
deleted file mode 100644
index f46ac968bb6..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkii/type-cow.mkii
+++ /dev/null
@@ -1,85 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%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] [rm][serif][cow] [default][encoding=default]
- \definetypeface [cow] [ss][serif][cow] [default][encoding=default]
- \definetypeface [cow] [mm][math] [cow] [default][encoding=default]
- \definetypeface [cow] [tt][mono] [modern][default][encoding=default,rscale=0.85]
-\stoptypescript
-
-\starttypescript [sheep] [default]
- \definetypeface [sheep][rm][serif][sheep] [default][encoding=default]
- \definetypeface [sheep][ss][serif][sheep] [default][encoding=default]
- \definetypeface [sheep][mm][math] [sheep] [default][encoding=default]
- \definetypeface [sheep][tt][mono] [modern][default][encoding=default,rscale=0.85]
-\stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/fonts/mkii/type-exp.mkii b/Master/texmf-dist/tex/context/fonts/mkii/type-exp.mkii
deleted file mode 100644
index c7c6e4b45d3..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkii/type-exp.mkii
+++ /dev/null
@@ -1,95 +0,0 @@
-%D \module
-%D [ file=type-exp,
-%D version=2007.01.28,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Experimental Definitions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \usetypescript[palatino-light] [texnansi] \setupbodyfont[palatino-light] \input zapf \par
-% \usetypescript[palatino-normal][texnansi] \setupbodyfont[palatino-normal] \input zapf \par
-% \usetypescript[palatino-medium][texnansi] \setupbodyfont[palatino-medium] \input zapf \par
-
-%D This file is used for \LUATEX\ experiments.
-
-\starttypescriptcollection[experiment]
-
-\starttypescript [sans] [palatino-sans-light] [name]
-
- \definefontsynonym [Sans] [PalatinoSans-Light]
- \definefontsynonym [SansItalic] [PalatinoSans-LightItalic]
- \definefontsynonym [SansBold] [PalatinoSans-Regular]
- \definefontsynonym [SansBoldItalic] [PalatinoSans-Italic]
- \definefontsynonym [SansSlanted] [PalatinoSans-Regular]
- \definefontsynonym [SansBoldSlanted] [PalatinoSans-Italic]
- \definefontsynonym [SansCaps] [PalatinoSans-Light]
-
-\stoptypescript
-
-\starttypescript [sans] [palatino-sans-normal] [name]
-
- \definefontsynonym [Sans] [PalatinoSans-Regular]
- \definefontsynonym [SansItalic] [PalatinoSans-Italic]
- \definefontsynonym [SansBold] [PalatinoSans-Bold]
- \definefontsynonym [SansBoldItalic] [PalatinoSans-BoldItalic]
- \definefontsynonym [SansSlanted] [PalatinoSans-Italic]
- \definefontsynonym [SansBoldSlanted] [PalatinoSans-BoldItalic]
- \definefontsynonym [SansCaps] [PalatinoSans-Regular]
-
-\stoptypescript
-
-\starttypescript [sans] [palatino-sans-medium] [name]
-
- \definefontsynonym [Sans] [PalatinoSans-Medium]
- \definefontsynonym [SansItalic] [PalatinoSans-MediumItalic]
- \definefontsynonym [SansBold] [PalatinoSans-Bold]
- \definefontsynonym [SansBoldItalic] [PalatinoSans-BoldItalic]
- \definefontsynonym [SansSlanted] [PalatinoSans-Bold]
- \definefontsynonym [SansBoldSlanted] [PalatinoSans-BoldItalic]
- \definefontsynonym [SansCaps] [PalatinoSans-MediumSC]
-
-\stoptypescript
-
-\starttypescript [sans] [palatino-sans-light,palatino-sans-normal,palatino-sans-medium] [texnansi,ec,8r]
-
- \definefontsynonym[PalatinoSans-Light] [\typescriptthree-palatinosanscom-light] [encoding=\typescriptthree]
- \definefontsynonym[PalatinoSans-LightItalic] [\typescriptthree-palatinosanscom-lightitalic] [encoding=\typescriptthree]
- \definefontsynonym[PalatinoSans-Regular] [\typescriptthree-palatinosanscom-regular] [encoding=\typescriptthree]
- \definefontsynonym[PalatinoSans-Italic] [\typescriptthree-palatinosanscom-italic] [encoding=\typescriptthree]
- \definefontsynonym[PalatinoSans-Medium] [\typescriptthree-palatinosanscom-medium] [encoding=\typescriptthree]
- \definefontsynonym[PalatinoSans-MediumItalic][\typescriptthree-palatinosanscom-mediumitalic][encoding=\typescriptthree]
- \definefontsynonym[PalatinoSans-Bold] [\typescriptthree-palatinosanscom-bold] [encoding=\typescriptthree]
- \definefontsynonym[PalatinoSans-BoldItalic] [\typescriptthree-palatinosanscom-bolditalic] [encoding=\typescriptthree]
-
-\stoptypescript
-
-\starttypescript[palatino-normal][texnansi,ec]
- \definetypeface[palatino-normal][ss][sans] [palatino-sans-normal] [default][encoding=\typescripttwo]
- \definetypeface[palatino-normal][rm][serif][palatino-nova] [default][encoding=\typescripttwo]
- \definetypeface[palatino-normal][tt][mono] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
- \definetypeface[palatino-normal][mm][math] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
- \quittypescriptscanning
-\stoptypescript
-
-\starttypescript[palatino-medium][texnansi,ec]
- \definetypeface[palatino-medium][ss][sans] [palatino-sans-medium] [default][encoding=\typescripttwo]
- \definetypeface[palatino-medium][rm][serif][palatino-nova] [default][encoding=\typescripttwo]
- \definetypeface[palatino-medium][tt][mono] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
- \definetypeface[palatino-medium][mm][math] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
- \quittypescriptscanning
-\stoptypescript
-
-\starttypescript[palatino-light][texnansi,ec]
- \definetypeface[palatino-light][ss][sans] [palatino-sans-light] [default][encoding=\typescripttwo]
- \definetypeface[palatino-light][rm][serif][palatino-nova] [default][encoding=\typescripttwo]
- \definetypeface[palatino-light][tt][mono] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
- \definetypeface[palatino-light][mm][math] [latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
- \quittypescriptscanning
-\stoptypescript
-
-\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/fonts/mkii/type-fsf.mkii b/Master/texmf-dist/tex/context/fonts/mkii/type-fsf.mkii
deleted file mode 100644
index 6782d3dcf76..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkii/type-fsf.mkii
+++ /dev/null
@@ -1,94 +0,0 @@
-%D \module
-%D [ file=page-new,
-%D version=2000.10.20,
-%D title=\CONTEXT\ Page Macros,
-%D subtitle=Fontsite 500,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D I'm not sure how correct the fontsite cd is. These are probably
-%D mostly rip-offs. I no longer use these fonts.
-
-% run texfont from currentpath with the fonts on subpath fontsite/500
-
-% texfont --en=texnansi --ve=fontsite --co=opus type-fsf.dat
-% texfont --en=texnansi --ve=fontsite --co=typewriter type-fsf.dat
-
-\starttypescriptcollection[font site 500]
-
-%D Please use the original Optima!
-
-\starttypescript [sans] [opus] [name]
- \definefontsynonym [Sans] [Opus]
- \definefontsynonym [SansCaps] [OpusSmCaps]
- \definefontsynonym [SansItalic] [Opus-Italic]
- \definefontsynonym [SansBold] [Opus-Bold]
- \definefontsynonym [SansBoldCaps] [OpusSmCaps-Bold]
- \definefontsynonym [SansBoldItalic] [Opus-BoldItalic]
- \definefontsynonym [SansSlanted] [Opus-Slanted] % faked
- \definefontsynonym [SansBoldSlanted] [Opus-BoldSlanted] % faked
-\stoptypescript
-
-\starttypescript [sans] [opus] [texnansi,ec,8r]
- \definefontsynonym [Opus] [\typescriptthree-opusrg] [encoding=\typescriptthree]
- \definefontsynonym [OpusSmCaps] [\typescriptthree-opusscrg] [encoding=\typescriptthree]
- \definefontsynonym [Opus-Italic] [\typescriptthree-opusi] [encoding=\typescriptthree]
- \definefontsynonym [Opus-Bold] [\typescriptthree-opusb] [encoding=\typescriptthree]
- \definefontsynonym [Opus-BoldItalic] [\typescriptthree-opusbi] [encoding=\typescriptthree]
- \definefontsynonym [OpusSmCaps-Bold] [\typescriptthree-opusscb] [encoding=\typescriptthree]
- \definefontsynonym [Opus-Slanted] [\typescriptthree-opusrg-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Opus-BoldSlanted] [\typescriptthree-opusb-slanted-167] [encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-fontsite-opus.map]
-\stoptypescript
-
-\starttypescript [mono] [typewriter] [name]
- \definefontsynonym [Mono] [Typewriter]
- \definefontsynonym [MonoItalic] [Typewriter-Italic]
- \definefontsynonym [MonoBold] [Typewriter-Bold]
- \definefontsynonym [MonoBoldItalic] [Typewriter-BoldItalic]
- \definefontsynonym [MonoSlanted] [Typewriter-Slanted] % faked
- \definefontsynonym [MonoBoldSlanted] [Typewriter-BoldSlanted] % faked
-\stoptypescript
-
-\starttypescript [mono] [typewriter] [texnansi,ec,8r]
- \definefontsynonym [Typewriter] [\typescriptthree-typerg] [encoding=\typescriptthree]
- \definefontsynonym [Typewriter-Italic] [\typescriptthree-typei] [encoding=\typescriptthree]
- \definefontsynonym [Typewriter-Bold] [\typescriptthree-typeb] [encoding=\typescriptthree]
- \definefontsynonym [Typewriter-BoldItalic] [\typescriptthree-typebi] [encoding=\typescriptthree]
- \definefontsynonym [Typewriter-Slanted] [\typescriptthree-typerg-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [Typewriter-BoldSlanted] [\typescriptthree-typeb-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [TypewriterCond] [\typescriptthree-typecrg]
- \definefontsynonym [TypewriterCond-Bold] [\typescriptthree-typecb]
- \loadmapfile[\typescriptthree-fontsite-typewriter.map]
-\stoptypescript
-
-\starttypescript [serif] [garamond] [name]
- \definefontsynonym [Serif] [FSGaramond]
- \definefontsynonym [SerifCaps] [FSGaramondSmCaps]
- \definefontsynonym [SerifItalic] [FSGaramond-Italic]
- \definefontsynonym [SerifBold] [FSGaramond-Bold]
- \definefontsynonym [SerifBoldCaps] [FSGaramondSmCaps-Bold]
- \definefontsynonym [SerifSlanted] [FSGaramond-Slanted]
- \definefontsynonym [SerifBoldSlanted] [FSGaramond-BoldSlanted]
-\stoptypescript
-
-\starttypescript [serif] [garamond] [texnansi,ec,8r]
- \definefontsynonym [FSGaramond] [\typescriptthree-garamond] [encoding=\typescriptthree]
- \definefontsynonym [FSGaramondSmCaps] [\typescriptthree-garasc] [encoding=\typescriptthree]
- \definefontsynonym [FSGaramond-Italic] [\typescriptthree-garai] [encoding=\typescriptthree]
- \definefontsynonym [FSGaramond-Bold] [\typescriptthree-garab] [encoding=\typescriptthree]
- \definefontsynonym [FSGaramond-BoldItalic] [\typescriptthree-garabi] [encoding=\typescriptthree]
- \definefontsynonym [FSGaramondSmCaps-Bold] [\typescriptthree-garascb] [encoding=\typescriptthree]
- \definefontsynonym [FSGaramond-Slanted] [\typescriptthree-garamond-slanted-167] [encoding=\typescriptthree]
- \definefontsynonym [FSGaramond-BoldSlanted] [\typescriptthree-garab-slanted-167] [encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-fontsite-garamond.map]
-\stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/fonts/mkii/type-ghz.mkii b/Master/texmf-dist/tex/context/fonts/mkii/type-ghz.mkii
deleted file mode 100644
index 3778cd96485..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkii/type-ghz.mkii
+++ /dev/null
@@ -1,409 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \usetypescriptfile[type-ghz]
-%
-% \definetypeface[optima] [ss][sans] [optima-nova] [default]
-% \definetypeface[palatino][rm][serif][palatino-nova][default]
-% \definetypeface[aldus] [rm][serif][aldus-nova] [default]
-%
-% \starttext
-% \setupbodyfont[optima] \input zapf \blank
-% \setupbodyfont[palatino] \input zapf \blank
-% \setupbodyfont[aldus] \input zapf \blank
-% \stoptext
-
-\starttypescriptcollection[zapf collection]
-
-% zapfino
-
-\starttypescript [serif,handwriting] [zapfino] [texnansi,ec,8r] % todo: handwriting
-
- \definefontsynonym [ZapfinoOne] [\typescriptthree-lt54223] [encoding=\typescriptthree]
- \definefontsynonym [ZapfinoTwo] [\typescriptthree-lt54224] [encoding=\typescriptthree]
- \definefontsynonym [ZapfinoThree] [\typescriptthree-lt54225] [encoding=\typescriptthree]
- \definefontsynonym [ZapfinoFour] [\typescriptthree-lt54226] [encoding=\typescriptthree]
-
- \loadmapfile[\typescriptthree-linotype-zapfino.map]
-
-\stoptypescript
-
-% \starttypescript [handwriting] [zapfino-1] \definefontsynonym [Handwriting] [ZapfinoOne] \stoptypescript
-% \starttypescript [handwriting] [zapfino-2] \definefontsynonym [Handwriting] [ZapfinoTwo] \stoptypescript
-% \starttypescript [handwriting] [zapfino-3] \definefontsynonym [Handwriting] [ZapfinoThree] \stoptypescript
-% \starttypescript [handwriting] [zapfino-4] \definefontsynonym [Handwriting] [ZapfinoFour] \stoptypescript
-
-% optima
-
-\starttypescript [sans] [optima] [name]
-
- \definefontsynonym [Sans] [OptimaLT]
- \definefontsynonym [SansItalic] [OptimaLT-Italic]
- \definefontsynonym [SansBold] [OptimaLT-Bold]
- \definefontsynonym [SansBoldItalic] [OptimaLT-BoldItalic]
- \definefontsynonym [SansSlanted] [SansItalic]
- \definefontsynonym [SansBoldSlanted] [SansBoldItalic]
- \definefontsynonym [SansCaps] [Sans]
-
-\stoptypescript
-
-\starttypescript [sans] [optima,optima-nova] [texnansi,ec,8r]
-
- \definefontsynonym [OptimaLT] [\typescriptthree-lte50019] [encoding=\typescriptthree]
- \definefontsynonym [OptimaLT-Italic] [\typescriptthree-lte52401] [encoding=\typescriptthree]
- \definefontsynonym [OptimaLT-Bold] [\typescriptthree-lte50021] [encoding=\typescriptthree]
- \definefontsynonym [OptimaLT-BoldItalic] [\typescriptthree-lte54379] [encoding=\typescriptthree]
-
- \definefontsynonym [OptimaLT-Medium] [\typescriptthree-lte53505] [encoding=\typescriptthree]
- \definefontsynonym [OptimaLT-MediumItalic] [\typescriptthree-lte53506] [encoding=\typescriptthree]
- \definefontsynonym [OptimaLT-DemiBold] [\typescriptthree-lte53507] [encoding=\typescriptthree]
- \definefontsynonym [OptimaLT-DemiBoldItalic] [\typescriptthree-lte53508] [encoding=\typescriptthree]
- \definefontsynonym [OptimaLT-Black] [\typescriptthree-lte53509] [encoding=\typescriptthree]
- \definefontsynonym [OptimaLT-BlackItalic] [\typescriptthree-lte53510] [encoding=\typescriptthree]
- \definefontsynonym [OptimaLT-ExtraBlack] [\typescriptthree-lte53511] [encoding=\typescriptthree]
- \definefontsynonym [OptimaLT-ExtraBlackItalic] [\typescriptthree-lte53512] [encoding=\typescriptthree]
-
- \loadmapfile[\typescriptthree-linotype-optima.map]
-
-\stoptypescript
-
-\starttypescript [optima] [texnansi,ec,qx]
- \definetypeface[optima][ss][sans] [optima-nova][default][encoding=\typescripttwo]
- \definetypeface[optima][rm][serif][palatino] [default][encoding=\typescripttwo]
- \definetypeface[optima][tt][mono] [modern] [default][encoding=\typescripttwo,rscale=1.1]
- \definetypeface[optima][mm][math] [palatino] [default][encoding=\typescripttwo]
- \quittypescriptscanning
-\stoptypescript
-
-% optima nova
-
-% see antykwa, we could define variants for light and osf
-
-\starttypescript [sans] [optima-nova] [name]
-
- \definefontsynonym [Sans] [OptimaNovaLT-Regular]
- \definefontsynonym [SansItalic] [OptimaNovaLT-Italic]
- \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,optima-nova-light,optima-nova-medium,optima-nova-os] [texnansi,ec,8r]
-
- \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]
-
- \loadmapfile[\typescriptthree-linotype-optima-nova.map]
-
-\stoptypescript
-
-\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.1]
- \definetypeface[optima][mm][math][latin-modern][default][encoding=\typescripttwo,rscale=1.1]
- \quittypescriptscanning
-\stoptypescript
-
-\starttypescript[optima-nova-os][texnansi,ec] % will change to more narrow tt
- \definetypeface[optima-os][ss][sans][optima-nova-os] [default][encoding=\typescripttwo]
- \definetypeface[optima-os][rm][sans][optima-nova-os] [default][encoding=\typescripttwo]
- \definetypeface[optima-os][tt][mono][latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
- \definetypeface[optima-os][mm][math][latin-modern] [default][encoding=\typescripttwo,rscale=1.1]
- \quittypescriptscanning
-\stoptypescript
-
-% palatino
-
-\starttypescript [serif] [palatino] [name]
-
- \definefontsynonym [Serif] [PalatinoLT-Roman]
- \definefontsynonym [SerifItalic] [PalatinoLT-Italic]
- \definefontsynonym [SerifBold] [PalatinoLT-Bold]
- \definefontsynonym [SerifBoldItalic] [PalatinoLT-BoldItalic]
- \definefontsynonym [SerifSlanted] [SerifItalic]
- \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
-
- \definefontsynonym [SerifCaps] [PalatinoSC]
-
-\stoptypescript
-
-\starttypescript [serif] [palatino] [texnansi,ec,8r]
-
- \definefontsynonym[PalatinoLT-Roman] [\typescriptthree-lte50001] [encoding=\typescriptthree]
- \definefontsynonym[PalatinoLT-Italic] [\typescriptthree-lte50002] [encoding=\typescriptthree]
- \definefontsynonym[PalatinoLT-Bold] [\typescriptthree-lte50003] [encoding=\typescriptthree]
- \definefontsynonym[PalatinoLT-BoldItalic] [\typescriptthree-lte50004] [encoding=\typescriptthree]
-
- \definefontsynonym[PalatinoLT-Light] [\typescriptthree-lte52168] [encoding=\typescriptthree]
- \definefontsynonym[PalatinoLT-LightItalic] [\typescriptthree-lte52169] [encoding=\typescriptthree]
- \definefontsynonym[PalatinoLT-Medium] [\typescriptthree-lte52170] [encoding=\typescriptthree]
- \definefontsynonym[PalatinoLT-MediumItalic] [\typescriptthree-lte52171] [encoding=\typescriptthree]
- \definefontsynonym[PalatinoLT-Black] [\typescriptthree-lte52172] [encoding=\typescriptthree]
- \definefontsynonym[PalatinoLT-BlackItalic] [\typescriptthree-lte52173] [encoding=\typescriptthree]
- \definefontsynonym[Palatino-BoldItalicOsF] [\typescriptthree-pobio] [encoding=\typescriptthree]
- \definefontsynonym[Palatino-BoldOsF] [\typescriptthree-pobos] [encoding=\typescriptthree]
- \definefontsynonym[Palatino-ItalicOsF] [\typescriptthree-poios] [encoding=\typescriptthree]
-
- \definefontsynonym[PalatinoSC] [\typescriptthree-posc] [encoding=\typescriptthree]
-
- \loadmapfile[\typescriptthree-linotype-palatino.map]
-
-\stoptypescript
-
-% 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]
-
- \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]
-
- \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]
-
- \loadmapfile[\typescriptthree-linotype-palatino-nova.map]
- \loadmapfile[\typescriptthree-sc-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]
-
- \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]
-
- \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]
-
- \loadmapfile[\typescriptthree-linotype-aldus-nova.map]
- \loadmapfile[\typescriptthree-sc-linotype-aldus-nova.map]
-
-\stoptypescript
-
-% melior
-
-\starttypescript [serif] [melior] [name]
-
- \definefontsynonym [MeliorLT-Roman] [MeliorLT]
-
- \definefontsynonym [Serif] [MeliorLT-Roman]
- \definefontsynonym [SerifItalic] [MeliorLT-Italic]
- \definefontsynonym [SerifBold] [MeliorLT-Bold]
- \definefontsynonym [SerifBoldItalic] [MeliorLT-BoldItalic]
-
- \definefontsynonym [SerifSlanted] [SerifItalic]
- \definefontsynonym [SerifBoldSlanted] [SerifBoldItalic]
-
- \definefontsynonym [SerifCaps] [Serif]
-
-\stoptypescript
-
-\starttypescript [serif] [melior] [texnansi,ec,8r]
-
- \definefontsynonym [MeliorLT] [texnansi-lte50062] [encoding=\typescriptthree]
- \definefontsynonym [MeliorLT-Italic] [texnansi-lte50063] [encoding=\typescriptthree]
- \definefontsynonym [MeliorLT-Bold] [texnansi-lte50064] [encoding=\typescriptthree]
- \definefontsynonym [MeliorLT-BoldItalic] [texnansi-lte50065] [encoding=\typescriptthree]
-
- \loadmapfile[\typescriptthree-linotype-melior.map]
-
-\stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/fonts/mkii/type-hgz.mkii b/Master/texmf-dist/tex/context/fonts/mkii/type-hgz.mkii
deleted file mode 100644
index 4d3e495b065..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkii/type-hgz.mkii
+++ /dev/null
@@ -1 +0,0 @@
-\input type-ghz.mkii \endinput % can be file synonym
diff --git a/Master/texmf-dist/tex/context/fonts/mkii/type-mac.mkii b/Master/texmf-dist/tex/context/fonts/mkii/type-mac.mkii
deleted file mode 100644
index e8abf09b99e..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkii/type-mac.mkii
+++ /dev/null
@@ -1,593 +0,0 @@
-%D \module
-%D [ file=type-mac,
-%D version=2009.03.10,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Mac OS X Definitions,
-%D author=Wolfgang Schuster,
-%D date=\currentdate,
-%D copyright={Wolfgang Schuster}]
-%C
-%C This module is part of the \CONTEXT\ macro||package. See
-%C mreadme.pdf for details.
-
-\definetypescriptprefix [f:andalemono] [Andale Mono]
-\definetypescriptprefix [f:chalkboard] [Chalkboard]
-\definetypescriptprefix [f:cochin] [Cochin]
-\definetypescriptprefix [f:comicsans] [Comic Sans MS]
-\definetypescriptprefix [f:couriernew] [Courier New]
-\definetypescriptprefix [f:georgia] [Georgia]
-\definetypescriptprefix [f:lucidagrande] [Lucida Grande]
-\definetypescriptprefix [f:monaco] [Monaco]
-\definetypescriptprefix [f:tahoma] [Tahoma]
-\definetypescriptprefix [f:timesnewroman] [Times New Roman]
-\definetypescriptprefix [f:trebuchet] [Trebuchet MS]
-\definetypescriptprefix [f:verdana] [Verdana]
-
-\definetypescriptprefix [n:andalemono] [AndaleMono]
-\definetypescriptprefix [n:chalkboard] [Chalkboard]
-\definetypescriptprefix [n:cochin] [Cochin]
-\definetypescriptprefix [n:comicsans] [ComicSans]
-\definetypescriptprefix [n:couriernew] [CourierNew]
-\definetypescriptprefix [n:georgia] [Georgia]
-\definetypescriptprefix [n:lucidagrande] [LucidaGrande]
-\definetypescriptprefix [n:monaco] [Monaco]
-\definetypescriptprefix [n:tahoma] [Tahoma]
-\definetypescriptprefix [n:timesnewroman] [TimesNewRoman]
-\definetypescriptprefix [n:trebuchet] [Trebuchet]
-\definetypescriptprefix [n:verdana] [Verdana]
-
-\starttypescriptcollection [macosx]
-
-% American Typewriter
-
-\starttypescript [serif] [americantypewriter-light-condensed,americantypewriter-condensed,americantypewriter-light,americantypewriter]
- \definefontsynonym [AmericanTypewriter-Light] [name:American Typewriter Light] [features=default]
- \definefontsynonym [AmericanTypewriter-Regular] [name:American Typewriter] [features=default]
- \definefontsynonym [AmericanTypewriter-Bold] [name:American Typewriter Bold] [features=default]
- \definefontsynonym [AmericanTypewriter-LightCond] [name:American Typewriter Condensed Light] [features=default]
- \definefontsynonym [AmericanTypewriter-Condensed] [name:American Typewriter Condensed] [features=default]
- \definefontsynonym [AmericanTypewriter-BoldCond] [name:American Typewriter Condensed Bold] [features=default]
-\stoptypescript
-
-\starttypescript [serif] [americantypewriter-light-condensed]
- \setups[font:fallback:serif]
- \definefontsynonym [Serif] [AmericanTypewriter-LightCond] [features=default]
- \definefontsynonym [SerifBold] [AmericanTypewriter-Condensed] [features=default]
-\stoptypescript
-
-\starttypescript [serif] [americantypewriter-condensed]
- \setups[font:fallback:serif]
- \definefontsynonym [Serif] [AmericanTypewriter-Condensed] [features=default]
- \definefontsynonym [SerifBold] [AmericanTypewriter-BoldCond] [features=default]
-\stoptypescript
-
-\starttypescript [serif] [americantypewriter-light]
- \setups[font:fallback:serif]
- \definefontsynonym [Serif] [AmericanTypewriter-Light] [features=default]
- \definefontsynonym [SerifBold] [AmericanTypewriter-Regular] [features=default]
-\stoptypescript
-
-\starttypescript [serif] [americantypewriter]
- \setups[font:fallback:serif]
- \definefontsynonym [Serif] [AmericanTypewriter-Regular] [features=default]
- \definefontsynonym [SerifBold] [AmericanTypewriter-Bold] [features=default]
-\stoptypescript
-
-\starttypescript [americantypewriter-light-condensed,americantypewriter-condensed,americantypewriter-light,americantypewriter]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
-\stoptypescript
-
-% Arial / Arial Narrow / Arial Rounded / Arial Unicode
-
-\starttypescript [sans] [arial-narrow,arial-condensed,arial,arial-rounded,arial-unicode]
- \definefontsynonym [Arial-Condensed] [name:Arial Narrow] [features=default]
- \definefontsynonym [Arial-ItalicCond] [name:Arial Narrow Italic] [features=default]
- \definefontsynonym [Arial-BoldCond] [name:Arial Narrow Bold] [features=default]
- \definefontsynonym [Arial-BoldItalicCond] [name:Arial Narrow Bold Italic] [features=default]
- \definefontsynonym [Arial-Regular] [name:Arial] [features=default]
- \definefontsynonym [Arial-Italic] [name:Arial Italic] [features=default]
- \definefontsynonym [Arial-Bold] [name:Arial Bold] [features=default]
- \definefontsynonym [Arial-BoldItalic] [name:Arial Bold Italic] [features=default]
- \definefontsynonym [Arial-Black] [name:Arial Black] [features=default]
- \definefontsynonym [Arial-Unicode] [name:Arial Unicode MS] [features=default]
- \definefontsynonym [Arial-Rounded] [name:Arial Rounded MT Bold] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [arial-narrow,arial-condensed]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Arial-Condensed] [features=default]
- \definefontsynonym [SansItalic] [Arial-ItalicCond] [features=default]
- \definefontsynonym [SansBold] [Arial-BoldCond] [features=default]
- \definefontsynonym [SansBoldItalic] [Arial-BoldItalicCond] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [arial]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Arial-Regular] [features=default]
- \definefontsynonym [SansItalic] [Arial-Italic] [features=default]
- \definefontsynonym [SansBold] [Arial-Bold] [features=default]
- \definefontsynonym [SansBoldItalic] [Arial-BoldItalic] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [arial-rounded]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Arial-Rounded] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [arial-unicode]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Arial-Unicode] [features=default]
-\stoptypescript
-
-\starttypescript [arial-narrow,arial-condensed,arial,arial-rounded,arial-unicode]
- \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
-\stoptypescript
-
-% Baskerville
-
-\starttypescript [serif] [baskerville]
- \definefontsynonym [Baskerville-Regular] [name:Baskerville] [features=default]
- \definefontsynonym [Baskerville-Italic] [name:Baskerville Italic] [features=default]
- \definefontsynonym [Baskerville-Medium] [name:Baskerville SemiBold] [features=default]
- \definefontsynonym [Baskerville-MediumItalic] [name:Baskerville SemiBold Italic] [features=default]
- \definefontsynonym [Baskerville-Bold] [name:Baskerville Bold] [features=default]
- \definefontsynonym [Baskerville-BoldItalic] [name:Baskerville Bold Italic] [features=default]
-\stoptypescript
-
-\starttypescript [serif] [baskerville]
- \setups[font:fallback:serif]
- \definefontsynonym [Serif] [Baskerville-Regular] [features=default]
- \definefontsynonym [SerifItalic] [Baskerville-Italic] [features=default]
- \definefontsynonym [SerifBold] [Baskerville-Medium] [features=default]
- \definefontsynonym [SerifBoldItalic] [Baskerville-MediumItalic] [features=default]
-\stoptypescript
-
-\starttypescript [baskerville]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
-\stoptypescript
-
-% Big Caslon
-
-\starttypescript [serif] [caslon,bigcaslon]
- \definefontsynonym [BigCaslon-Medium] [name:Big Caslon Medium] [features=default]
-\stoptypescript
-
-\starttypescript [serif] [caslon,bigcaslon]
- \setups[font:fallback:serif]
- \definefontsynonym [Serif] [BigCaslon-Medium] [features=default]
-\stoptypescript
-
-\starttypescript [caslon,bigcaslon]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
-\stoptypescript
-
-% Copperplate
-
-\starttypescript [sans] [copperplate-light,copperplate]
- \definefontsynonym [Copperplate-Light] [name:Copperplate Light] [features=default]
- \definefontsynonym [Copperplate-Regular] [name:Copperplate] [features=default]
- \definefontsynonym [Copperplate-Bold] [name:Copperplate Bold] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [copperplate-light]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Copperplate-Light] [features=default]
- \definefontsynonym [SansBold] [Copperplate-Regular] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [copperplate]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Copperplate-Regular] [features=default]
- \definefontsynonym [SansBold] [Copperplate-Bold] [features=default]
-\stoptypescript
-
-\starttypescript [copperplate-light,copperplate]
- \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
-\stoptypescript
-
-% Futura
-
-\starttypescript [sans] [futura-condensed,futura]
- \definefontsynonym [Futura-MediumCond] [name:Futura Condensed Medium] [features=default]
- \definefontsynonym [Futura-Medium] [name:Futura Medium] [features=default]
- \definefontsynonym [Futura-MediumItalic] [name:Futura Medium Italic] [features=default]
- \definefontsynonym [Futura-BoldCond] [name:Futura Condensed ExtraBold] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [futura-condensed]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Futura-MediumCond] [features=default]
- \definefontsynonym [SansBold] [Futura-BoldCond] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [futura]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Futura-Medium] [features=default]
- \definefontsynonym [SansItalic] [Futura-MediumItalic] [features=default]
-\stoptypescript
-
-\starttypescript [futura-condensed,futura]
- \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
-\stoptypescript
-
-% Gill Sans
-
-\starttypescript [sans] [gillsans-light,gillsans]
- \definefontsynonym [GillSans-Light] [name:Gill Sans Light] [features=default]
- \definefontsynonym [GillSans-LightItalic] [name:Gill Sans Light Italic] [features=default]
- \definefontsynonym [GillSans-Regular] [name:Gill Sans] [features=default]
- \definefontsynonym [GillSans-Italic] [name:Gill Sans Italic] [features=default]
- \definefontsynonym [GillSans-Bold] [name:Gill Sans Bold] [features=default]
- \definefontsynonym [GillSans-BoldItalic] [name:Gill Sans Bold Italic] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [gillsans-light]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [GillSans-Light] [features=default]
- \definefontsynonym [SansItalic] [GillSans-LightItalic] [features=default]
- \definefontsynonym [SansBold] [GillSans-Regular] [features=default]
- \definefontsynonym [SansBoldItalic] [GillSans-Italic] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [gillsans]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [GillSans-Regular] [features=default]
- \definefontsynonym [SansItalic] [GillSans-Italic] [features=default]
- \definefontsynonym [SansBold] [GillSans-Bold] [features=default]
- \definefontsynonym [SansBoldItalic] [GillSans-BoldItalic] [features=default]
-\stoptypescript
-
-\starttypescript [gillsans-light,gillsans]
- \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
-\stoptypescript
-
-% Helvetica Neuse
-
-\starttypescript [sans] [helvetica-neue-ultralight,helvetica-neue-light,helvetica-neue,helvetica-neue-boldcondensed]
- \definefontsynonym [HelveticaNeue-UltraLight] [name:Helvetica Neue UltraLight] [features=default]
- \definefontsynonym [HelveticaNeue-UltraLightItalic] [name:Helvetica Neue UltraLight Italic] [features=default]
- \definefontsynonym [HelveticaNeue-Light] [name:Helvetica Neue Light] [features=default]
- \definefontsynonym [HelveticaNeue-LightItalic] [name:Helvetica Neue Light Italic] [features=default]
- \definefontsynonym [HelveticaNeue-Regular] [name:Helvetica Neue] [features=default]
- \definefontsynonym [HelveticaNeue-Italic] [name:Helvetica Neue Italic] [features=default]
- \definefontsynonym [HelveticaNeue-Bold] [name:Helvetica Neue Bold] [features=default]
- \definefontsynonym [HelveticaNeue-BoldItalic] [name:Helvetica Neue Bold Italic] [features=default]
- \definefontsynonym [HelveticaNeue-BoldCond] [name:Helvetica Neue Condensed Bold] [features=default]
- \definefontsynonym [HelveticaNeue-BlackCond] [name:Helvetica Neue Condensed Black] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [helvetica-neue-ultralight]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [HelveticaNeue-UltraLight] [features=default]
- \definefontsynonym [SansItalic] [HelveticaNeue-UltraLightItalic] [features=default]
- \definefontsynonym [SansBold] [HelveticaNeue-Light] [features=default]
- \definefontsynonym [SansBoldItalic] [HelveticaNeue-LightItalic] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [helvetica-neue-light]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [HelveticaNeue-Light] [features=default]
- \definefontsynonym [SansItalic] [HelveticaNeue-LightItalic] [features=default]
- \definefontsynonym [SansBold] [HelveticaNeue-Regular] [features=default]
- \definefontsynonym [SansBoldItalic] [HelveticaNeue-Italic] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [helvetica-neue]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [HelveticaNeue-Regular] [features=default]
- \definefontsynonym [SansItalic] [HelveticaNeue-Italic] [features=default]
- \definefontsynonym [SansBold] [HelveticaNeue-Bold] [features=default]
- \definefontsynonym [SansBoldItalic] [HelveticaNeue-BoldItalic] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [helvetica-neue-boldcondensed]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [HelveticaNeue-BoldCond] [features=default]
- \definefontsynonym [SansBold] [HelveticaNeue-BlackCond] [features=default]
-\stoptypescript
-
-\starttypescript [helvetica-neue-ultralight,helvetica-neue-light,helvetica-neue,helvetica-neue-boldcondensed]
- \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
-\stoptypescript
-
-% Hiragino Mincho
-
-\starttypescript [serif] [hiragino-mincho]
- \definefontsynonym [HiraginoMinchoPro-Regular] [name:Hiragino Mincho Pro W3] [features=japanese]
- \definefontsynonym [HiraginoMinchoPro-Bold] [name:Hiragino Mincho Pro W6] [features=japanese]
- \definefontsynonym [HiraginoMinchoProN-Regular] [name:Hiragino Mincho ProN W3] [features=japanese]
- \definefontsynonym [HiraginoMinchoProN-Bold] [name:Hiragino Mincho ProN W6] [features=japanese]
-\stoptypescript
-
-\starttypescript [serif] [hiragino-mincho]
- \setups[font:fallback:serif]
- \definefontsynonym [Serif] [HiraginoMinchoPro-Regular] [features=japanese]
- \definefontsynonym [SerifBold] [HiraginoMinchoPro-Bold] [features=japanese]
-\stoptypescript
-
-% \starttypescript [serif] [hiragino-mincho]
-% \setups[font:fallback:serif]
-% \definefontsynonym [Serif] [HiraginoMinchoProN-Regular] [features=japanese]
-% \definefontsynonym [SerifBold] [HiraginoMinchoProN-Bold] [features=japanese]
-% \stoptypescript
-
-\starttypescript [hiragino-mincho]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
-\stoptypescript
-
-% Hiragino Maru
-
-\starttypescript [sans] [hiragino-maru]
- \definefontsynonym [HiraginoMaruGothicPro-Regular] [name:Hiragino Maru Gothic Pro W4] [features=japanese]
- \definefontsynonym [HiraginoMaruGothicProN-Regular] [name:Hiragino Maru Gothic ProN W4] [features=japanese]
-\stoptypescript
-
-\starttypescript [sans] [hiragino-maru]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [HiraginoMaruGothicPro-Regular] [features=japanese]
-\stoptypescript
-
-% \starttypescript [sans] [hiragino-maru]
-% \setups[font:fallback:sans]
-% \definefontsynonym [Sans] [HiraginoMaruGothicProN-Regular] [features=japanese]
-% \stoptypescript
-
-\starttypescript [hiragino-maru]
- \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
-\stoptypescript
-
-% Hiragino Kaku
-
-\starttypescript [sans] [hiragino-kaku]
- \definefontsynonym [HiraginoKakuGothicPro-Regular] [name:Hiragino Kaku Gothic Pro W3] [features=japanese]
- \definefontsynonym [HiraginoKakuGothicPro-Bold] [name:Hiragino Kaku Gothic Pro W6] [features=japanese]
- \definefontsynonym [HiraginoKakuGothicStd-Black] [name:Hiragino Kaku Gothic Std W8] [features=japanese]
- \definefontsynonym [HiraginoKakuGothicProN-Regular] [name:Hiragino Kaku Gothic Pron W3] [features=japanese]
- \definefontsynonym [HiraginoKakuGothicProN-Bold] [name:Hiragino Kaku Gothic ProN W6] [features=japanese]
- \definefontsynonym [HiraginoKakuGothicStdN-Black] [name:Hiragino Kaku Gothic StdN W8] [features=japanese]
-\stoptypescript
-
-\starttypescript [sans] [hiragino-kaku]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [HiraginoKakuGothicPro-Regular] [features=japanese]
- \definefontsynonym [SansBold] [HiraginoKakuGothicPro-Bold] [features=japanese]
-\stoptypescript
-
-% \starttypescript [sans] [hiragino-kaku]
-% \setups[font:fallback:sans]
-% \definefontsynonym [Sans] [HiraginoKakuGothicProN-Regular] [features=japanese]
-% \definefontsynonym [SansBold] [HiraginoKakuGothicProN-Bold] [features=japanese]
-% \stoptypescript
-
-\starttypescript [hiragino-kaku]
- \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
-\stoptypescript
-
-% Hoefler Text
-
-\starttypescript [serif] [hoefler]
- \definefontsynonym [HoeflerText-Regular] [name:Hoefler Text] [features=default]
- \definefontsynonym [HoeflerText-Italic] [name:Hoefler Text Italic] [features=default]
- \definefontsynonym [HoeflerText-Black] [name:Hoefler Text Black] [features=default]
- \definefontsynonym [HoeflerText-BlackItalic] [name:Hoefler Text Black Italic] [features=default]
- \definefontsynonym [HoeflerText-Ornaments] [name:Hoefler Text Ornaments] [features=default]
-\stoptypescript
-
-\starttypescript [serif] [hoefler]
- \setups[font:fallback:serif]
- \definefontsynonym [Serif] [HoeflerText-Regular] [features=default]
- \definefontsynonym [SerifItalic] [HoeflerText-Italic] [features=default]
- \definefontsynonym [SerifBold] [HoeflerText-Black] [features=default]
- \definefontsynonym [SerifBoldItalic] [HoeflerText-BlackItalic] [features=default]
-\stoptypescript
-
-\starttypescript [hoefler]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
-\stoptypescript
-
-% Impact
-
-\starttypescript [sans] [impact]
- \definefontsynonym [Impact-Regular] [name:Impact] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [impact]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Impact-Regular] [features=default]
-\stoptypescript
-
-\starttypescript [impact]
- \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
-\stoptypescript
-
-% Andale Mono / Monaco
-
-\starttypescript [mono] [andalemono,monaco]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [name:\typescriptprefix{f:\typescripttwo}] [features=default]
-\stoptypescript
-
-\starttypescript [mono] [andalemono,monaco]
- \setups[font:fallback:mono]
- \definefontsynonym [Mono] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default]
-\stoptypescript
-
-\starttypescript [andalemono,monaco]
- \definetypeface [\typescriptone] [tt] [mono] [\typescriptone] [default]
-\stoptypescript
-
-% Optima
-
-\starttypescript [sans] [optima,optima-bold]
- \definefontsynonym [Optima-Regular] [name:Optima Regular] [features=default]
- \definefontsynonym [Optima-Italic] [name:Optima Italic] [features=default]
- \definefontsynonym [Optima-Bold] [name:Optima Bold] [features=default]
- \definefontsynonym [Optima-BoldItalic] [name:Optima Bold Italic] [features=default]
- \definefontsynonym [Optima-Black] [name:Optima ExtraBlack] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [optima]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Optima-Regular] [features=default]
- \definefontsynonym [SansItalic] [Optima-Italic] [features=default]
- \definefontsynonym [SansBold] [Optima-Bold] [features=default]
- \definefontsynonym [SansBoldItalic] [Optima-BoldItalic] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [optima-bold]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Optima-Bold] [features=default]
- \definefontsynonym [SansItalic] [Optima-BoldItalic] [features=default]
- \definefontsynonym [SansBold] [Optima-Black] [features=default]
-\stoptypescript
-
-\starttypescript [optima,optima-bold]
- \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
-\stoptypescript
-
-% Papyrus
-
-\starttypescript [sans] [papyrus]
- \definefontsynonym [Papyrus-Regular] [name:Papyrus] [features=default]
- \definefontsynonym [Papyrus-Condensed] [name:Papyrus Condensed] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [papyrus]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Papyrus-Regular] [features=default]
-\stoptypescript
-
-\starttypescript [papyrus]
- \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
-\stoptypescript
-
-% STFangsong
-
-\starttypescript [serif] [stfangsong]
- \definefontsynonym [STFangsong-Regular] [name:STFangsong] [features=chinese]
-\stoptypescript
-
-\starttypescript [serif] [stfangsong]
- \setups[font:fallback:sans]
- \definefontsynonym [Serif] [STFangsong-Regular] [features=chinese]
-\stoptypescript
-
-\starttypescript [stfangsong]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
-\stoptypescript
-
-% STHeiti
-
-\starttypescript [sans] [stheiti]
- \definefontsynonym [STXihei-Light] [name:STHeiti Light] [features=chinese]
- \definefontsynonym [STHeiti-Regular] [name:STHeiti Regular] [features=chinese]
-\stoptypescript
-
-\starttypescript [sans] [stheiti]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [STXihei-Light] [features=chinese]
- \definefontsynonym [SansBold] [STKaiti-Regular] [features=chinese]
-\stoptypescript
-
-\starttypescript [stheiti]
- \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
-\stoptypescript
-
-% STKaiti
-
-\starttypescript [serif] [stkaiti]
- \definefontsynonym [STKaiti-Regular] [name:STKaiti] [features=chinese]
-\stoptypescript
-
-\starttypescript [serif] [stkaiti]
- \setups[font:fallback:sans]
- \definefontsynonym [Serif] [STKaiti-Regular] [features=chinese]
-\stoptypescript
-
-\starttypescript [stkaiti]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
-\stoptypescript
-
-% STSong
-
-\starttypescript [serif] [stsong]
- \definefontsynonym [STSong-Regular] [name:STSong] [features=chinese]
-\stoptypescript
-
-\starttypescript [serif] [stsong]
- \setups[font:fallback:sans]
- \definefontsynonym [Serif] [STSong-Regular] [features=chinese]
-\stoptypescript
-
-\starttypescript [stsong]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
-\stoptypescript
-
-% Chalkboard / Comic Sans / Tahoma
-
-\starttypescript [sans] [chalkboard,comicsans,lucidagrande,tahoma]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [name:\typescriptprefix{f:\typescripttwo}] [features=default]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Bold] [name:\typescriptprefix{f:\typescripttwo} Bold] [features=default]
-\stoptypescript
-
-\starttypescript [sans] [chalkboard,comicsans,lucidagrande,tahoma]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default]
- \definefontsynonym [SansBold] [\typescriptprefix{n:\typescripttwo}-Bold] [features=default]
-\stoptypescript
-
-\starttypescript [chalkboard,comicsans,tahoma]
- \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
-\stoptypescript
-
-% Cochin / Courier New / Georgia / Times New Roman / Trebuchet / Verdana
-
-\starttypescript [serif,sans,mono] [cochin,georgia,timesnewroman,trebuchet,verdana,couriernew]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Regular] [name:\typescriptprefix{f:\typescripttwo}] [features=default]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Italic] [name:\typescriptprefix{f:\typescripttwo} Italic] [features=default]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-Bold] [name:\typescriptprefix{f:\typescripttwo} Bold] [features=default]
- \definefontsynonym [\typescriptprefix{n:\typescripttwo}-BoldItalic] [name:\typescriptprefix{f:\typescripttwo} Bold Italic] [features=default]
-\stoptypescript
-
-\starttypescript [serif] [cochin,georgia,timesnewroman]
- \setups[font:fallback:serif]
- \definefontsynonym [Serif] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default]
- \definefontsynonym [SerifItalic] [\typescriptprefix{n:\typescripttwo}-Italic] [features=default]
- \definefontsynonym [SerifBold] [\typescriptprefix{n:\typescripttwo}-Bold] [features=default]
- \definefontsynonym [SerifBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic] [features=default]
-\stoptypescript
-
-\starttypescript [cochin,georgia,timesnewroman]
- \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
-\stoptypescript
-
-% Courier New
-
-% \starttypescript [mono] [couriernew]
-% \setups[font:fallback:mono]
-% \definefontsynonym [Mono] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default]
-% \definefontsynonym [MonoItalic] [\typescriptprefix{n:\typescripttwo}-Italic] [features=default]
-% \definefontsynonym [MonoBold] [\typescriptprefix{n:\typescripttwo}-Bold] [features=default]
-% \definefontsynonym [MonoBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic] [features=default]
-% \stoptypescript
-
-% \starttypescript [couriernew]
-% \definetypeface [\typescriptone] [tt] [mono] [\typescriptone] [default]
-% \stoptypescript
-
-% Trebuchet / Verdana
-
-% \starttypescript [sans] [trebuchet,verdana]
-% \setups[font:fallback:sans]
-% \definefontsynonym [Sans] [\typescriptprefix{n:\typescripttwo}-Regular] [features=default]
-% \definefontsynonym [SansItalic] [\typescriptprefix{n:\typescripttwo}-Italic] [features=default]
-% \definefontsynonym [SansBold] [\typescriptprefix{n:\typescripttwo}-Bold] [features=default]
-% \definefontsynonym [SansBoldItalic] [\typescriptprefix{n:\typescripttwo}-BoldItalic] [features=default]
-% \stoptypescript
-
-% \starttypescript [trebuchet,verdana]
-% \definetypeface [\typescriptone] [ss] [sans] [\typescriptone] [default]
-% \stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/fonts/mkii/type-msw.mkii b/Master/texmf-dist/tex/context/fonts/mkii/type-msw.mkii
deleted file mode 100644
index 26ec190cbee..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkii/type-msw.mkii
+++ /dev/null
@@ -1 +0,0 @@
-\input type-win.mkii \endinput % could be a file synonym
diff --git a/Master/texmf-dist/tex/context/fonts/mkii/type-pre.mkii b/Master/texmf-dist/tex/context/fonts/mkii/type-pre.mkii
deleted file mode 100644
index 99db52c2fad..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkii/type-pre.mkii
+++ /dev/null
@@ -1,253 +0,0 @@
-%D \module
-%D [ file=type-pre,
-%D version=2001.04.12,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Compatibility scripts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This file is obsolete. We now have latin modern and proper
-%D typescripts. Forget about this file.
-
-%D This file defines some typescripts that simulate the pre-typescript way
-%D of defining fonts. This file will not be extended.
-
-\starttypescriptcollection[previous]
-
-%D The Computer Modern Roman is derived from the Monotype~8a
-%D Times Roman. In this module, that is loaded by default, we
-%D define all relevant alternatives.
-
-\starttypescript [cmr]
- \usetypescript[modern][default]
- \setupbodyfont[modern]
-\stoptypescript
-
-%D This script remaps the default Computer Modern Font Files
-%D onto the EC ones, so that hyphenations work well. (The proper
-%D latin modern ec variants have replaed the ae ones.)
-
-\starttypescript [aer]
- \usetypescript[modern][ec]
- \setupbodyfont[modern]
- %\enableregime[ec]
-\stoptypescript
-
-%D This script defines the Computer Modern Roman with a pseudo kind
-%D of iso latin 2 encoding.
-
-\starttypescript [csr]
- \usetypescript[modern][ec]
- \setupbodyfont[modern]
- \enableregime[il2]
-\stoptypescript
-
-%D This script defines the Computer Modern Roman with a
-%D polish encoding.
-
-\starttypescript [plr]
- \usetypescript[modern][qx]
- \setupbodyfont[modern]
- \enableregime[pl0]
-\stoptypescript
-
-%D Vietnamese.
-
-\starttypescript [vnr]
- \usetypescript[modern][t5]
- \setupbodyfont[modern]
-\stoptypescript
-
-%D Cyrillic alternatives are available under the symbolic
-%D name \type {cyr}.
-
-\starttypescript [cyr]
- \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,cyr]
- \usemathcollection[default]
-\stoptypescript
-
-\starttypescript [lh-ec]
- \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,ec]
- \usemathcollection[default]
-\stoptypescript
-
-\starttypescript [lh-t2a]
- \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,t2a]
- \usemathcollection[default]
-\stoptypescript
-
-\starttypescript [lh-t2b]
- \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,t2b]
- \usemathcollection[default]
-\stoptypescript
-
-\starttypescript [lh-t2c]
- \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,t2c]
- \usemathcollection [default]
-\stoptypescript
-
-\starttypescript [lh-x2]
- \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,x2]
- \usemathcollection [default]
-\stoptypescript
-
-\starttypescript [lh-lcy]
- \usetypescript [serif,sans,mono,math] [computer-modern,latin-modern] [default,name,size,lcy]
- \usemathcollection [default]
-\stoptypescript
-
-%D Here we implement the symbol fonts as provided by the
-%D American Mathematical Society. The names of these symbols
-%D can be found in The Joy of \TeX\ by M.~Spivak.
-
-% \starttypescript [ams]
-% \usetypescript [math] [ams] [all]
-% \usemathcollection[default]
-% \stoptypescript
-
-%D The Concrete Modern Roman is just an alternative Computer
-%D Modern Roman.
-
-% \starttypescript [con]
-% \usetypescript [serif] [concrete] [all]
-% \usemathcollection[default]
-% \stoptypescript
-
-%D The Euler Fonts are designed by Herman Zapf and can be
-%D used with the Concrete Fonts defined elsewhere.
-
-% \starttypescript [eul]
-% \usetypescript [math] [euler] [all]
-% \usemathcollection[eul]
-% \stoptypescript
-
-%D The Lucida Bright fonts are both good looking and and
-%D complete. These fonts have prebuilt accented characters,
-%D which means that we use another encoding vector: \YandY\
-%D texnansi. These fonts are a good illustration that a 12
-%D point bodyfont is indeed never that size. The Lucida Bright
-%D fonts come in one design size.
-
-% \starttypescript [lbr]
-% \usetypescript [serif,sans,mono,math,calligraphy,handwriting] [lucida] [name,special,\defaultencoding]
-% \usetypescript [serif,sans,mono,math,calligraphy,handwriting] [default] [size]
-% \usemathcollection[lbr]
-% \usetypescript [all] [lucida] [\defaultencoding]
-% \stoptypescript
-
-\starttypescript [lbr]
- \usetypescript[lucida][\defaultencoding]
-\stoptypescript
-
-%D Times
-
-\starttypescript [tim]
- \usetypescript [times] [\defaultencoding]
- \setupbodyfont [times]
-\stoptypescript
-
-%D The Antikwa Torunska font family is a rather nice
-%D and subtle one. Although primary meant for the polish
-%D language, it can be used for other languages as well.
-
-\starttypescript [ant]
- \usetypescript [antykwa-torunska] [\defaultencoding]
- \setupbodyfont [antykwa,rm]
-\stoptypescript
-
-%D This script defines the Standard Adobe Courier fonts.
-
-% \starttypescript [pcr]
-% \usetypescript [mono] [courier] [name,\defaultencoding]
-% \usetypescript [mono] [default] [size]
-% \usetypescript [all] [courier] [\defaultencoding]
-% \stoptypescript
-
-\starttypescript [pcr]
- \usetypescript [postscript] [\defaultencoding]
- \setupbodyfont [postscript,tt]
-\stoptypescript
-
-%D This script defines the Standard Adobe Helvetica fonts.
-
-% \starttypescript [phv]
-% \usetypescript [sans] [helvetica] [name,\defaultencoding]
-% \usetypescript [sans] [default] [size]
-% \usetypescript [all] [helvetica] [\defaultencoding]
-% \stoptypescript
-
-\starttypescript [phv]
- \usetypescript [postscript] [\defaultencoding]
- \setupbodyfont [postscript,ss]
-\stoptypescript
-
-%D This script defines the Standard Adobe Times fonts.
-
-% \starttypescript [ptm]
-% \usetypescript [serif] [times] [name,\defaultencoding]
-% \usetypescript [serif] [default] [size]
-% \usetypescript [all] [times] [\defaultencoding]
-% \stoptypescript
-
-\starttypescript [ptm]
- \usetypescript [postscript] [\defaultencoding]
- \setupbodyfont [postscript,rm]
-\stoptypescript
-
-%D This script loads the Adobe Times Roman, Helvetica and
-%D Courier.
-
-% \starttypescript [pos]
-% \usetypescript [serif] [times] [name,\defaultencoding]
-% \usetypescript [sans] [helvetica] [name,\defaultencoding]
-% \usetypescript [mono] [courier] [name,\defaultencoding]
-% \usetypescript [serif,sans,mono] [default] [size]
-% \usetypescript [all] [times,helvetica,courier] [\defaultencoding]
-% \stoptypescript
-
-\starttypescript [pos]
- \usetypescript [postscript] [\defaultencoding]
- \setupbodyfont [postscript]
-\stoptypescript
-
-%D This script defines the Palatino font.
-
-\starttypescript [ppl]
- \usetypescript [palatino] [\defaultencoding]
- \setupbodyfont [palatino]
-\stoptypescript
-
-%D The following scripts fake the old \type {font-ber} and
-%D alike files.
-
-\starttypescript[fil]
- % fake to prevent loading font-fil.tex and signal 'done'
-\stoptypescript
-
-%D But for old time sake we provide:
-
-\starttypescript[ber]
- \usetypescript [berry] [ec,t5] % could be [all]
-\stoptypescript
-
-\stoptypescriptcollection
-
-%D Special scripts:
-
-\unprotect
-
-\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
-
-\stoptypescriptcollection
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/fonts/mkii/type-win.mkii b/Master/texmf-dist/tex/context/fonts/mkii/type-win.mkii
deleted file mode 100644
index ae690982093..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkii/type-win.mkii
+++ /dev/null
@@ -1,69 +0,0 @@
-%D \module
-%D [ file=type-msw,
-%D version=2005.02.04,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Microsoft Windows Fonts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \usetypescriptfile[type-msw]
-%
-% \definetypeface[verdana][ss][sans] [verdana] [default][encoding=texnansi]
-% \definetypeface[verdana][rm][serif][palatino][default][encoding=texnansi,rscale=1.1]
-% \definetypeface[verdana][mm][math] [palatino][default][encoding=texnansi,rscale=1.1]
-% \definetypeface[verdana][tt][mono] [modern] [default][encoding=texnansi,rscale=1.25]
-%
-% \setupbodyfont[verdana] \showfontstrip
-%
-% \startlines
-% {\rm test {\sl test} {\it test} {\bf test} {\bs test} {\bi test}}
-% {\ss test {\sl test} {\it test} {\bf test} {\bs test} {\bi test}}
-% {\tt test {\sl test} {\it test} {\bf test} {\bs test} {\bi test}}
-% \stoplines
-
-\starttypescriptcollection[windows]
-
-% verdana
-
-\starttypescript [sans] [verdana] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [Verdana]
- \definefontsynonym [SansBold] [Verdana-Bold]
- \definefontsynonym [SansItalic] [Verdana-Italic]
- \definefontsynonym [SansBoldItalic] [Verdana-BoldItalic]
-\stoptypescript
-
-\starttypescript [sans] [verdana] [texnansi,ec,qx]
- \definefontsynonym [Verdana] [\typescriptthree-verdana] [encoding=\typescriptthree]
- \definefontsynonym [Verdana-Bold] [\typescriptthree-verdanab] [encoding=\typescriptthree]
- \definefontsynonym [Verdana-Italic] [\typescriptthree-verdanai] [encoding=\typescriptthree]
- \definefontsynonym [Verdana-BoldItalic] [\typescriptthree-verdanaz] [encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-microsoft-verdana.map]
-\stoptypescript
-
-% arial
-
-\starttypescript [sans] [arial] [name]
- \setups[font:fallback:sans]
- \definefontsynonym [Sans] [ArialMT]
- \definefontsynonym [SansBold] [Arial-BoldMT]
- \definefontsynonym [SansItalic] [Arial-ItalicMT]
- \definefontsynonym [SansBoldItalic] [Arial-BoldItalicMT]
-\stoptypescript
-
-\starttypescript [sans] [arial] [texnansi,ec,qx]
- \definefontsynonym [ArialMT] [\typescriptthree-arial] [encoding=\typescriptthree]
- \definefontsynonym [Arial-BoldMT] [\typescriptthree-arialbd] [encoding=\typescriptthree]
- \definefontsynonym [Arial-ItalicMT] [\typescriptthree-ariali] [encoding=\typescriptthree]
- \definefontsynonym [Arial-BoldItalicMT] [\typescriptthree-arialbi] [encoding=\typescriptthree]
- \loadmapfile[\typescriptthree-microsoft-arial.map]
-\stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/fonts/mkii/type-xtx.mkii b/Master/texmf-dist/tex/context/fonts/mkii/type-xtx.mkii
deleted file mode 100644
index 3c5b06d9e45..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkii/type-xtx.mkii
+++ /dev/null
@@ -1,570 +0,0 @@
-%D \module
-%D [ file=type-xtx,
-%D version=2004.11.15, % prereleased earlier
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=\XETEX's font treasures,
-%D author=Adam T. Lindsay etc,
-%D date=\currentdate,
-%D copyright={Adam Lindsay \& Hans Hagen \& ...}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Note HH: this file probably needs to be adapted to the current names and
-%D so but as I don't use \XETEX\ myself others have to provide information.
-
-%D Here are some fonts definitions that can get you started with
-%D \XETEX\ (for more details see Adam's MyWay documents).
-%D
-%D Most typescripts in this file are mostly independent of the other
-%D typescript files. Generally, you can speed things up a lot by
-%D eliminating all but one of \CONTEXT's typescript files:
-%D
-%D \starttyping
-%D \usetypescriptfiles[reset] % HH: watch out, new feature, since
-%D \usetypescriptfiles[type-siz] % I disliked the low level redef.
-%D \stoptyping
-%D
-%D The exceptions are the \quotation {legacy} fonts Times, Palatino,
-%D Courier, and Helvetica, which also depend on \type {type-syn}.
-%D
-%D These following six typescripts call the basic four variants on any
-%D given font, given the name of the \quotation {Regular} variant in the
-%D name slot. These typescripts default to a Unicode encoding,
-%D accepts sizes \quotation {default} and \quotation {dtp}, and are
-%D activated with the identifiers \quotation {Xserif}, \quotation {Xsans},
-%D and \quotation {Xmono}. They can have relative scaling within the
-%D typeface. Any of the following work:
-%D
-%D \starttyping
-%D \definetypeface[basic][rm][Xserif][Baskerville]
-%D \definetypeface[basic][ss][Xsans] [Optima Regular][default][features=default,rscale=0.87]
-%D \definetypeface[basic][tt][Xmono] [Courier] [default]
-%D \stoptyping
-%D
-%D Activate the typeface with:
-%D
-%D \starttyping
-%D \setupbodyfont[basic]
-%D \stoptyping
-
-%D This file is hacked by Taco Hoekwater in an attempt to figure out the right approach
-%D to font loading in \XeTeX. (jun19,2007)
-
-%D The General \XeTeX\ low-level font syntax is (at least) as follows.
-%D
-%D Named font:
-%D \starttyping
-%D \font\x = "<fontname><engine-options>:<featurelist>" <at or scaled>
-%D \stoptyping
-%D \type{<fontname>} = Font name as seen in a system font menu or the output of fc-list
-%D
-%D \type{<engine-options>} = \type{/B} or \type{/I} or \tupe{/BI}, and||or \type{/S=<X>}.
-%D That last one selects an optical scaled variant for size \type{<X>}
-%D (it is a bare number, the unit is points).
-%D
-%D \type{<featurelist>} = comma- or semicolon- separated list of font features.
-%D
-%D Opentype features are selected using \type{+<tag>}, and deselected using \type{-<tag>},
-%D except that key||value pairs are used for \type{script=<tag>} and \type{language=<tag>}
-%D
-%D AAT features are always key||value pairs, often including spaces.
-%D
-%D \XETEX's own features are key||value pairs, and can be applied to both OpenType
-%D and AAT fonts:
-%D \type{mapping=<font map>} for glyph remapping
-%D \type{color=RRGGBB[TT]} for color (hex numbers, with optional transparancy),
-%D \type{letterspace=<x>} to add \type{<x>/<fontsize>} intercharacter spacing.
-%D
-%D Full example showing all parts of the syntax for an OTF font:
-%D \starttyping
-%D \font\f= "Warnock Pro/I/S=5:+smcp,-liga,mapping=tex-text,script=latn"
-%D \stoptyping
-
-%D Non-installed (filename-based) fonts :
-%D
-%D \starttyping
-%D \font\x = "[<fontname>]:<featurelist>" <at or scaled>
-%D \stoptyping
-%D
-%D Here, there are no \type{<engine-options>}, because there is no
-%D font discovery engine available to be queried.
-
-%D TH: This \type{\xetexcolon} definition seems needed because the name/file \
-%D parser otherwise drops the rest of the argument into oblivion.
-
-\unexpanded\def\xetexcolon{:}
-
-\starttypescriptcollection[xetex]
-
-\starttypescript[Xserif][all][name]
-
-%D TH: I removed all single quotes because they don't seem to add anything. And I added
-%D the \type{name:} everywhere, because passing that information on \type{\typescripttwo}
-%D doesn't work either (maybe \type{\typescripttwo} is expanded incorrectly)
-%D
-%D And even if that would have worked, \type{file:} will not work properly anyway
-%D in this case since tricks like \type{/I} will never, ever work for local fonts,
-%D so there is really only one choice.
-
-%D HH: todo, define feature set switch mapping=tex-tex
-
-\definefontsynonym[Dummy] [name:\typescripttwo] [features=default]
-\definefontsynonym[DummyItalic] [name:\typescripttwo/I] [features=default]
-\definefontsynonym[DummyBold] [name:\typescripttwo/B] [features=default]
-\definefontsynonym[DummyBoldItalic][name:\typescripttwo/BI][features=default]
-
-\definefontsynonym[DummyCaps] [name:\typescripttwo] [features=smallcaps]
-
-\definefontsynonym[Serif] [Dummy]
-\definefontsynonym[SerifBold] [DummyBold]
-\definefontsynonym[SerifItalic] [DummyItalic]
-\definefontsynonym[SerifBoldItalic] [DummyBoldItalic]
-\definefontsynonym[SerifSlanted] [DummyItalic]
-\definefontsynonym[SerifBoldSlanted][DummyBoldItalic]
-\definefontsynonym[SerifCaps] [DummyCaps]
-
-\stoptypescript
-
-\starttypescript[Xsans][all][name]
-
-\definefontsynonym[DummySans] [name:\typescripttwo] [features=default]
-\definefontsynonym[DummySansItalic] [name:\typescripttwo/I] [features=default]
-\definefontsynonym[DummySansBold] [name:\typescripttwo/B] [features=default]
-\definefontsynonym[DummySansBoldItalic][name:\typescripttwo/BI][features=default]
-
-\definefontsynonym[DummySansCaps] [name:\typescripttwo] [features=smallcaps]
-
-\definefontsynonym[Sans] [DummySans]
-\definefontsynonym[SansBold] [DummySansBold]
-\definefontsynonym[SansItalic] [DummySansItalic]
-\definefontsynonym[SansBoldItalic] [DummySansBoldItalic]
-\definefontsynonym[SansSlanted] [DummySansItalic]
-\definefontsynonym[SansBoldSlanted][DummySansBoldItalic]
-\definefontsynonym[SansCaps] [DummySansCaps]
-
-\stoptypescript
-
-\starttypescript[Xmono][all][name]
-
-\definefontsynonym[DummyMono] [name:\typescripttwo]
-\definefontsynonym[DummyMonoItalic] [name:\typescripttwo/I]
-\definefontsynonym[DummyMonoBold] [name:\typescripttwo/B]
-\definefontsynonym[DummyMonoBoldItalic][name:\typescripttwo/BI]
-
-% TODO: smallcaps without other features
-
-\definefontsynonym[Mono] [DummyMono]
-\definefontsynonym[MonoBold] [DummyMonoBold]
-\definefontsynonym[MonoItalic] [DummyMonoItalic]
-\definefontsynonym[MonoBoldItalic] [DummyMonoBoldItalic]
-\definefontsynonym[MonoSlanted] [DummyMonoItalic]
-\definefontsynonym[MonoBoldSlanted][DummyMonoBoldItalic]
-\definefontsynonym[MonoCaps] [DummyMono]
-
-\stoptypescript
-
-\starttypescript[Xserif][default][size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt] [rm]
- [default]
-\stoptypescript
-
-\starttypescript[Xsans][default][size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
- [ss] [default]
-\stoptypescript
-
-\starttypescript [Xmono][default][size]
- \definebodyfont
- [4pt,5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,14.4pt,17.3pt]
- [tt] [default]
-\stoptypescript
-
-\starttypescript[Xserif][dtp][size]
- \definebodyfont
- [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
- [rm] [default]
-\stoptypescript
-
-\starttypescript[Xsans][dtp][size]
- \definebodyfont
- [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
- [ss] [default]
-\stoptypescript
-
-\starttypescript[Xmono][dtp][size]
- \definebodyfont
- [5pt,6pt,7pt,8pt,9pt,10pt,11pt,12pt,13pt,14pt,16pt,18pt,22pt,28pt]
- [tt] [default]
-\stoptypescript
-
-%D The following are \quotation {legacy} named fonts. Times, Palatino,
-%D and Helvetica are familiar to most users of modern \TEX\
-%D systems. These versions are accessed via the Unicode encoding
-%D enabled by \XETEX. There is no attempt to match metrics with
-%D the actual legacy fonts. These are simply familiar names.
-
-%D These typescripts, unlike others in this file, depend on those in
-%D \type{type-pre}.
-
-\starttypescript[serif][times][uc]
-
-\definefontsynonym[Times-Roman] [name:Times Roman] [features=default]
-\definefontsynonym[Times-Italic] [name:Times Italic] [features=default]
-\definefontsynonym[Times-Bold] [name:Times Bold] [features=default]
-\definefontsynonym[Times-BoldItalic][name:Times Bold Italic][features=default]
-
-\stoptypescript
-
-%D Book Antiqua is Mac OS X's Palatino clone.
-
-\starttypescript[serif][palatino][uc]
-
-\definefontsynonym[Palatino] [name:Book Antiqua] [features=default]
-\definefontsynonym[Palatino-Italic] [name:Book Antiqua Italic] [features=default]
-\definefontsynonym[Palatino-Bold] [name:Book Antiqua Bold] [features=default]
-\definefontsynonym[Palatino-BoldItalic] [name:Book Antiqua Bold Italic][features=default]
-
-\definefontsynonym[Palatino-Slanted] [Palatino-Italic]
-\definefontsynonym[Palatino-BoldSlanted] [Palatino-BoldItalic]
-\definefontsynonym[Palatino-Caps] [Palatino]
-
-\stoptypescript
-
-%D The default Helvetica doesn't have an oblique variant, so we'll
-%D go ahead and name Helvertica Neue here.
-
-\starttypescript[sans][helvetica][uc]
-
-\definefontsynonym[Helvetica] [name:Helvetica Neue] [features=default]
-\definefontsynonym[Helvetica-Oblique] [name:Helvetica Neue Italic] [features=default]
-\definefontsynonym[Helvetica-Bold] [name:Helvetica Neue Bold] [features=default]
-\definefontsynonym[Helvetica-BoldOblique][name:Helvetica Neue Bold Italic][features=default]
-
-\stoptypescript
-
-%D Courier, as delivered on MacOSX 10.3, doesn't have an oblique
-%D variant, either. Unfortunately, none of the default Mono fonts in
-%D MacOSX have oblique|/|italic versions!
-
-\starttypescript[mono][courier][uc]
-
-\definefontsynonym[Courier] [name:Courier]
-\definefontsynonym[Courier-Oblique] [Courier]
-\definefontsynonym[Courier-Bold] [name:Courier Bold]
-\definefontsynonym[Courier-BoldOblique][Courier-Bold]
-
-\stoptypescript
-
-%D The following fonts go beyond the usual four variants that
-%D are accessible via the above wildcard typescripts, so they
-%D get a more expanded treatment here\xetexcolon
-
-\starttypescript[serif][hoefler][uc]
-
-\definefontsynonym[Hoefler] [name:Hoefler Text\xetexcolon mapping=tex-text;%
- Ligatures=Diphthongs] [encoding=uc]
-\definefontsynonym[HoeflerItalic][name:Hoefler Text Italic\xetexcolon mapping=tex-text;%
- Ligatures=Diphthongs] [encoding=uc]
-\definefontsynonym[HoeflerBlack] [name:Hoefler Text Black\xetexcolon mapping=tex-text;%
- Ligatures=Diphthongs] [encoding=uc]
-\definefontsynonym[HoeflerBlackItalic][name:Hoefler Text Black Italic\xetexcolon mapping=tex-text;%
- Ligatures=Diphthongs] [encoding=uc]
-\definefontsynonym[HoeflerSmCap] [name:Hoefler Text\xetexcolon mapping=tex-text;%
- Ligatures=Diphthongs;%
- Letter Case=Small Caps][encoding=uc]
-\stoptypescript
-
-\starttypescript[serif][hoefler][name]
-
-\definefontsynonym[Serif] [Hoefler]
-\definefontsynonym[SerifBold] [HoeflerBlack]
-\definefontsynonym[SerifItalic] [HoeflerItalic]
-\definefontsynonym[SerifBoldItalic] [HoeflerBlackItalic]
-\definefontsynonym[SerifSlanted] [HoeflerItalic]
-\definefontsynonym[SerifBoldSlanted][HoeflerBlackItalic]
-\definefontsynonym[SerifCaps] [HoeflerSmCap]
-
-\stoptypescript
-
-\starttypescript[sans][lucidagrande][uc]
-
-\definefontsynonym[LucidaGrande] [name:Lucida Grande] [features=default]
-\definefontsynonym[LucidaGrandeBold][name:Lucida Grande Bold][features=default]
-
-\stoptypescript
-
-\starttypescript[sans][lucidagrande][name]
-
-\definefontsynonym[Sans] [LucidaGrande]
-\definefontsynonym[SansBold] [LucidaGrandeBold]
-\definefontsynonym[SansItalic] [LucidaGrande]
-\definefontsynonym[SansBoldItalic] [LucidaGrandeBold]
-\definefontsynonym[SansSlanted] [LucidaGrande]
-\definefontsynonym[SansBoldSlanted][LucidaGrandeBold]
-\definefontsynonym[SansCaps] [LucidaGrande]
-
-\stoptypescript
-
-\starttypescript[sans][optima][uc]
-\definefontsynonym[Optima] [name:Optima Regular] [features=default]
-\definefontsynonym[OptimaItalic] [name:Optima Italic] [features=default]
-\definefontsynonym[OptimaBold] [name:Optima Bold] [features=default]
-\definefontsynonym[OptimaBoldItalic][name:Optima Bold Italic][features=default]
-\definefontsynonym[OptimaBlack] [name:Optima ExtraBlack] [features=default]
-\stoptypescript
-
-\starttypescript[sans][optima][name]
-
-\definefontsynonym[Sans] [Optima]
-\definefontsynonym[SansBold] [OptimaBold]
-\definefontsynonym[SansItalic] [OptimaItalic]
-\definefontsynonym[SansBoldItalic] [OptimaBoldItalic]
-\definefontsynonym[SansSlanted] [OptimaItalic]
-\definefontsynonym[SansBoldSlanted][OptimaBoldItalic]
-\definefontsynonym[SansCaps] [Optima]
-
-\stoptypescript
-
-\starttypescript[sans][gillsans,gillsanslt][uc]
-
-\definefontsynonym[GillSans] [name:Gill Sans] [features=default]
-\definefontsynonym[GillSansItalic] [name:Gill Sans Italic] [features=default]
-\definefontsynonym[GillSansBold] [name:Gill Sans Bold] [features=default]
-\definefontsynonym[GillSansBoldItalic] [name:Gill Sans Bold Italic] [features=default]
-\definefontsynonym[GillSansLight] [name:Gill Sans Light] [features=default]
-\definefontsynonym[GillSansLightItalic][name:Gill Sans Light Italic][features=default]
-
-\stoptypescript
-
-\starttypescript[sans][gillsans][name]
-
-\definefontsynonym[Sans] [GillSans]
-\definefontsynonym[SansBold] [GillSansBold]
-\definefontsynonym[SansItalic] [GillSansItalic]
-\definefontsynonym[SansBoldItalic] [GillSansBoldItalic]
-\definefontsynonym[SansSlanted] [GillSansItalic]
-\definefontsynonym[SansBoldSlanted][GillSansBoldItalic]
-\definefontsynonym[SansCaps] [GillSans]
-
-\stoptypescript
-
-\starttypescript[sans][gillsanslt][name]
-
-\definefontsynonym[Sans] [GillSansLight]
-\definefontsynonym[SansBold] [GillSans]
-\definefontsynonym[SansItalic] [GillSansLightItalic]
-\definefontsynonym[SansBoldItalic] [GillSansItalic]
-\definefontsynonym[SansSlanted] [GillSansLightItalic]
-\definefontsynonym[SansBoldSlanted][GillSansItalic]
-\definefontsynonym[SansCaps] [GillSansLight]
-
-\stoptypescript
-
-\starttypescript[serif,handwriting][zapfino][uc]
-
-\definefontsynonym[ZapfinoOne] [name:Zapfino\xetexcolon mapping=tex-text] [encoding=uc]
-\definefontsynonym[ZapfinoTwo] [name:Zapfino\xetexcolon mapping=tex-text;%
- Stylistic Variants=First variant glyph set] [encoding=uc]
-\definefontsynonym[ZapfinoThree][name:Zapfino\xetexcolon mapping=tex-text;%
- Stylistic Variants=Second variant glyph set][encoding=uc]
-\definefontsynonym[ZapfinoFour] [name:Zapfino\xetexcolon mapping=tex-text;%
- Stylistic Variants=Third variant glyph set] [encoding=uc]
-\stoptypescript
-
-\starttypescript[handwriting][zapfino][name]
-
-\definefontsynonym[Handwriting][ZapfinoOne]
-
-\stoptypescript
-
-\starttypescript[serif][zapfino][name]
-
-\definefontsynonym[Serif] [ZapfinoOne]
-\definefontsynonym[SerifBold] [ZapfinoThree]
-\definefontsynonym[SerifItalic] [ZapfinoTwo]
-\definefontsynonym[SerifBoldItalic] [ZapfinoTwo]
-\definefontsynonym[SerifSlanted] [ZapfinoThree]
-\definefontsynonym[SerifBoldSlanted][ZapfinoThree]
-\definefontsynonym[SerifCaps] [ZapfinoOne]
-
-\stoptypescript
-
-\starttypescript[serif,calligraphy][applechancery][uc]
-
-\definefontsynonym[AppleChanceryOne] [name:Apple Chancery\xetexcolon mapping=tex-text;%
- Number Case=Old Styles] [encoding=uc]
-\definefontsynonym[AppleChanceryTwo] [name:Apple Chancery\xetexcolon mapping=tex-text;%
- Number Case=Old Styles;%
- Design Complexity=Elegant Design Level][encoding=uc]
-\definefontsynonym[AppleChanceryThree] [name:Apple Chancery\xetexcolon mapping=tex-text;%
- Number Case=Old Styles;%
- Design Complexity=Flourishes Set A] [encoding=uc]
-\definefontsynonym[AppleChanceryFour] [name:Apple Chancery\xetexcolon mapping=tex-text;%
- Number Case=Old Styles;%
- Design Complexity=Flourishes Set B] [encoding=uc]
-\definefontsynonym[AppleChanceryCaps] [name:Apple Chancery\xetexcolon mapping=tex-text;%
- Number Case=Old Styles;%
- Letter Case=Small Caps] [encoding=uc]
-\definefontsynonym[AppleChanceryCapsTwo][name:Apple Chancery\xetexcolon mapping=tex-text;%
- Number Case=Old Styles;%
- Letter Case=Small Caps;%
- Design Complexity=Flourishes Set B] [encoding=uc]
-\stoptypescript
-
-\starttypescript[calligraphy][applechancery][name]
-
-\definefontsynonym[Calligraphy][AppleChanceryOne]
-
-\stoptypescript
-
-\starttypescript[serif][applechancery][name]
-
-\definefontsynonym[Serif] [AppleChanceryOne]
-\definefontsynonym[SerifBold] [AppleChanceryThree]
-\definefontsynonym[SerifItalic] [AppleChanceryTwo]
-\definefontsynonym[SerifBoldItalic] [AppleChanceryFour]
-\definefontsynonym[SerifSlanted] [AppleChanceryThree]
-\definefontsynonym[SerifBoldSlanted][AppleChanceryFour]
-\definefontsynonym[SerifCaps] [AppleChanceryCaps]
-
-\stoptypescript
-
-% MS Office 2004 for Mac has impressive Unicode coverage in many of its fonts.
-
-\starttypescript[serif][timesnewroman][uc]
-
-\definefontsynonym[MSTimes] [name:Times New Roman] [features=default]
-\definefontsynonym[MSTimesItalic] [name:Times New Roman Italic] [features=default]
-\definefontsynonym[MSTimesBold] [name:Times New Roman Bold] [features=default]
-\definefontsynonym[MSTimesBoldItalic][name:Times New Roman Bold Italic][features=default]
-
-\stoptypescript
-
-\starttypescript[serif][timesnewroman][name]
-
-\definefontsynonym[Serif] [MSTimes]
-\definefontsynonym[SerifBold] [MSTimesBold]
-\definefontsynonym[SerifItalic] [MSTimesItalic]
-\definefontsynonym[SerifBoldItalic] [MSTimesBoldItalic]
-\definefontsynonym[SerifSlanted] [MSTimesItalic]
-\definefontsynonym[SerifBoldSlanted][MSTimesBoldItalic]
-\definefontsynonym[SerifCaps] [MSTimes]
-
-\stoptypescript
-
-\starttypescript[sans][arial][uc]
-
-\definefontsynonym[Arial] [name:Arial] [features=default]
-\definefontsynonym[ArialItalic] [name:Arial Italic] [features=default]
-\definefontsynonym[ArialBold] [name:Arial Bold] [features=default]
-\definefontsynonym[ArialBoldItalic][name:Arial Bold Italic][features=default]
-
-\stoptypescript
-
-\starttypescript[sans][arial][name]
-
-\definefontsynonym[Sans] [Arial]
-\definefontsynonym[SansBold] [ArialBold]
-\definefontsynonym[SansItalic] [ArialItalic]
-\definefontsynonym[SansBoldItalic] [ArialBoldItalic]
-\definefontsynonym[SansSlanted] [ArialItalic]
-\definefontsynonym[SansBoldSlanted][ArialBoldItalic]
-\definefontsynonym[SansCaps] [Arial]
-
-\stoptypescript
-
-%D MS Office comes with an installation of the Lucida family in TrueType form. It's nice,
-%D except\dots\ no math, no slanted, no caps and some other auxiliary fonts.
-
-\starttypescript [serif] [lucida] [uc]
-
- \definefontsynonym [LucidaBright] [name:Lucida Bright] [features=default]
- \definefontsynonym [LucidaBright-Demi] [name:Lucida Bright Demibold][features=default]
- \definefontsynonym [LucidaBright-DemiItalic] [name:Lucida Bright Demibold][features=default]
- \definefontsynonym [LucidaBright-Italic] [name:Lucida Bright] [features=default]
-
- \definefontsynonym [LucidaBrightSmallcaps] [LucidaBright]
- \definefontsynonym [LucidaBrightSmallcaps-Demi][LucidaBright-Demi]
- \definefontsynonym [LucidaBright-Oblique] [LucidaBright-Italic]
-
-\stoptypescript
-
-\starttypescript [sans] [lucida] [uc]
- \definefontsynonym [LucidaSans] [name:Lucida Sans Regular] [features=default]
- \definefontsynonym [LucidaSans-Demi] [name:Lucida Sans Demibold Roman] [features=default]
- \definefontsynonym [LucidaSans-DemiItalic][name:Lucida Sans Demibold Italic][features=default]
- \definefontsynonym [LucidaSans-Italic] [name:Lucida Sans Italic] [features=default]
-
- \definefontsynonym [LucidaSans-Bold] [LucidaSans-Demi]
- \definefontsynonym [LucidaSans-BoldItalic][LucidaSans-DemiItalic]
-
-\stoptypescript
-
-\starttypescript [mono] [lucida] [uc]
-
- \definefontsynonym [LucidaSans-Typewriter] [name:Lucida Sans Typewriter Regular] [encoding=uc]
- \definefontsynonym [LucidaSans-TypewriterBold] [name:Lucida Sans Typewriter Bold] [encoding=uc]
- \definefontsynonym [LucidaSans-TypewriterBoldOblique][name:Lucida Sans Typewriter Bold Oblique][encoding=uc]
- \definefontsynonym [LucidaSans-TypewriterOblique] [name:Lucida Sans Typewriter Oblique] [encoding=uc]
-
-\stoptypescript
-
-\starttypescript [calligraphy] [lucida] [uc]
-
- \definefontsynonym[LucidaCalligraphy-Italic][name:Lucida Calligraphy Italic][features=default]
-
-\stoptypescript
-
-% No casual that I know of
-
-\starttypescript[handwriting][lucida][uc]
-
- \definefontsynonym[LucidaHandwriting-Italic][name:Lucida Handwriting Italic][features=default]
-
-\stoptypescript
-
-\starttypescript[fax][lucida][uc]
-
- \definefontsynonym[LucidaFax] [name:Lucida Fax Regular] [features=default]
- \definefontsynonym[LucidaFax-Demi] [name:Lucida Fax Demibold] [features=default]
- \definefontsynonym[LucidaFax-DemiItalic][name:Lucida Fax Demibold Italic][features=default]
- \definefontsynonym[LucidaFax-Italic] [name:Lucida Fax Italic] [features=default]
-
-\stoptypescript
-
-%D Gentium is from SIL, the fine makers of \XETEX, and it's not only very complete with
-%D Roman and Italic Unicode support, but very attractive.
-
-\starttypescript [serif] [gentium]
- \definefontsynonym [Gentium-Roman] [file:GentiumPlus-R] [features=default]
- \definefontsynonym [Gentium-Italic] [file:GentiumPlus-I] [features=default]
- \definefontsynonym [Gentium-Bold] [file:GenBasB] [features=default]
- \definefontsynonym [Gentium-BoldItalic] [file:GenBasBI] [features=default]
- \definefontsynonym [Gentium-Slanted] [Gentium-Italic]
- \definefontsynonym [Gentium-BoldSlanted] [Gentium-BoldItalic]
- \definefontsynonym [Gentium-RomanCaps] [file:GentiumPlus-R] [features=smallcaps]
-\stoptypescript
-
-\starttypescript [serif] [gentium] [name]
- \definefontsynonym [Serif] [Gentium-Roman]
- \definefontsynonym [SerifItalic] [Gentium-Italic]
- \definefontsynonym [SerifBold] [Gentium-Bold]
- \definefontsynonym [SerifBoldItalic] [Gentium-BoldItalic]
- \definefontsynonym [SerifSlanted] [Gentium-Slanted]
- \definefontsynonym [SerifBoldSlanted] [Gentium-BoldSlanted]
- \definefontsynonym [SerifCaps] [Serif]
- \definefontsynonym [OldStyle] [Serif]
- \definefontsynonym [SerifCaps] [Gentium-RomanCaps]
-\stoptypescript
-
-\starttypescript [gentium]
- \definetypeface [gentium] [rm] [serif] [gentium] [default] [features=default]
-\stoptypescript
-
-\stoptypescriptcollection
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/antykwa-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/antykwa-math.lfg
index 112a3f9a7a9..5bbd2cf6ce5 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/antykwa-math.lfg
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/antykwa-math.lfg
@@ -1,11 +1,115 @@
-local msam = { name = "msam10.tfm", vector = "tex-ma" }
-local msbm = { name = "msbm10.tfm", vector = "tex-mb" }
+local common = fonts.goodies.load("common-math-jmn.lfg")
+local helpers = common.mathematics.helpers
+
+if not fonts.encodings.math["extensible-jmn-private"] then
+
+ local nps = fonts.helpers.newprivateslot
+
+ fonts.encodings.math["extensible-jmn-private"] = {
+ [nps("rule middle piece")] = 200, -- minusjmn
+ [nps("rule right piece")] = 201, -- minusrightjmn
+ [nps("rule left piece")] = 202, -- minusleftjmn
+ [nps("double rule middle piece")] = 203, -- equaljmn
+ [nps("double rule right piece")] = 204, -- equalrightjmn
+ [nps("double rule left piece")] = 205, -- equalleftjmn
+ [nps("arrow left piece")] = 206, -- arrowleftjmn
+ [nps("arrow right piece")] = 207, -- arrowrightjmn
+ [nps("double arrow left piece")] = 208, -- arrowdblleftjmn
+ [nps("double arrow right piece")] = 209, -- arrowdblrightjmn
+ }
+
+end
+
+local fraction = .25
+
+local badones = {
+ summationtext = fraction,
+ producttext = fraction,
+ integraltext = fraction,
+ uniontext = fraction,
+ intersectiontext = fraction,
+ unionmultitext = fraction,
+ logicalandtext = fraction,
+ logicalortext = fraction,
+ summationdisplay = fraction,
+ productdisplay = fraction,
+ integraldisplay = fraction,
+ uniondisplay = fraction,
+ intersectiondisplay = fraction,
+ unionmultidisplay = fraction,
+ logicalanddisplay = fraction,
+ logicalordisplay = fraction,
+ coproducttext = fraction,
+ coproductdisplay = fraction,
+
+ braceleftBig = fraction,
+ braceleftBigg = fraction,
+ braceleftbig = fraction,
+ braceleftbigg = fraction,
+ parenleftBig = fraction,
+ parenleftBigg = fraction,
+ parenleftbig = fraction,
+ parenleftbigg = fraction,
+ bracketleftBig = fraction,
+ bracketleftBigg = fraction,
+ bracketleftbig = fraction,
+ bracketleftbigg = fraction,
+ ceilingleftBig = fraction,
+ ceilingleftBigg = fraction,
+ ceilingleftbig = fraction,
+ ceilingleftbigg = fraction,
+ floorleftBig = fraction,
+ floorleftBigg = fraction,
+ floorleftbig = fraction,
+ floorleftbigg = fraction,
+ anglebracketleftBig = fraction,
+ anglebracketleftBigg = fraction,
+ anglebracketleftbig = fraction,
+ anglebracketleftbigg = fraction,
+
+ bracerightBig = fraction,
+ bracerightBigg = fraction,
+ bracerightbig = fraction,
+ bracerightbigg = fraction,
+ parenrightBig = fraction,
+ parenrightBigg = fraction,
+ parenrightbig = fraction,
+ parenrightbigg = fraction,
+ bracketrightBig = fraction,
+ bracketrightBigg = fraction,
+ bracketrightbig = fraction,
+ bracketrightbigg = fraction,
+ ceilingrightBig = fraction,
+ ceilingrightBigg = fraction,
+ ceilingrightbig = fraction,
+ ceilingrightbigg = fraction,
+ floorrightBig = fraction,
+ floorrightBigg = fraction,
+ floorrightbig = fraction,
+ floorrightbigg = fraction,
+ anglebracketrightBig = fraction,
+ anglebracketrightBigg = fraction,
+ anglebracketrightbig = fraction,
+ anglebracketrightbigg = fraction,
+
+ backslashBig = fraction,
+ backslashBigg = fraction,
+ backslashbig = fraction,
+ backslashbigg = fraction,
+}
+
+local uglyones = {
+ braceleft = true,
+ braceright = true,
+ vextendsingle = true,
+ vextenddouble = true,
+}
return {
name = "antykwa-math",
version = "1.00",
comment = "Goodies that complement antykwa math.",
- author = "Hans, Mojca, Aditya",
+ author = "Hans, Mojca, Aditya, Mikael",
copyright = "ConTeXt development team",
mathematics = {
mapfiles = {
@@ -13,45 +117,65 @@ return {
"antt-mi.map",
"antt-sy.map",
"antt-ex.map",
- "mkiv-base.map",
+ -- "mkiv-base.map",
+ },
+ variables = {
+ notshiftfactor = 0.075,
},
virtuals = {
["antykwa-math"] = {
- { name = "file:AntykwaTorunska-Regular", features = "virtualmath", main = true },
+ { name = "file:LatinModern-Math", features = "virtualmath-antykwa", main = true, parameters = false },
+ --
+ { name = "rm-anttr.tfm", vector = "tex-mr", skewchar=0x7F },
{ name = "mi-anttri.tfm", vector = "tex-mi", skewchar=0x7F },
{ name = "mi-anttri.tfm", vector = "tex-it", skewchar=0x7F },
- { name = "sy-anttrz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
- { name = "ex-anttr.tfm", vector = "tex-ex", extension = true } ,
- msam,
- msbm,
+ { name = "mi-anttbi.tfm", vector = "tex-bi", skewchar=0x7F },
+ { name = "rm-anttb.tfm", vector = "tex-bf", skewchar=0x7F },
+ { name = "sy-anttrz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true, ignore = uglyones }, -- jmn = true
+ { name = "sy-anttrz.tfm", vector = "extensible-jmn-private", skewchar=0x30 },
+ { name = "file:AntykwaTorunska-Regular", vector = "tex-ex-braces", backmap = false },
+ { name = "ex-anttr.tfm", vector = "tex-ex", extension = true, badones = badones, ignore = uglyones },
},
["antykwa-light-math"] = {
- { name = "file:AntykwaTorunskaLight-Regular", features = "virtualmath", main = true },
+ { name = "file:LatinModern-Math", features = "virtualmath-antykwa-light", main = true, parameters = false },
+ --
+ { name = "rm-anttl.tfm", vector = "tex-mr", skewchar=0x7F },
{ name = "mi-anttli.tfm", vector = "tex-mi", skewchar=0x7F },
{ name = "mi-anttli.tfm", vector = "tex-it", skewchar=0x7F },
- { name = "sy-anttlz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
- { name = "ex-anttl.tfm", vector = "tex-ex", extension = true } ,
- msam,
- msbm,
+ { name = "mi-anttri.tfm", vector = "tex-bi", skewchar=0x7F },
+ { name = "rm-anttr.tfm", vector = "tex-bf", skewchar=0x7F },
+ { name = "sy-anttlz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true, ignore = uglyones }, -- jmn = true
+ { name = "sy-anttlz.tfm", vector = "extensible-jmn-private", skewchar=0x30 },
+ { name = "file:AntykwaTorunskaLight-Regular", vector = "tex-ex-braces", backmap = false },
+ { name = "ex-anttl.tfm", vector = "tex-ex", extension = true, badones = badones, ignore = uglyone },
},
["antykwa-cond-math"] = {
- { name = "file:AntykwaTorunskaCond-Regular", features = "virtualmath", main = true },
+ { name = "file:LatinModern-Math", features = "virtualmath-antykwa-cond", main = true, parameters = false },
+ --
+ { name = "rm-anttcr.tfm", vector = "tex-mr", skewchar=0x7F },
{ name = "mi-anttcri.tfm", vector = "tex-mi", skewchar=0x7F },
{ name = "mi-anttcri.tfm", vector = "tex-it", skewchar=0x7F },
- { name = "sy-anttcrz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
- { name = "ex-anttcr.tfm", vector = "tex-ex", extension = true } ,
- msam,
- msbm,
+ { name = "mi-anttcbi.tfm", vector = "tex-bi", skewchar=0x7F },
+ { name = "rm-anttcb.tfm", vector = "tex-bf", skewchar=0x7F },
+ { name = "sy-anttcrz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true, ignore = uglyones }, -- jmn = true
+ { name = "sy-anttcrz.tfm", vector = "extensible-jmn-private", skewchar=0x30 },
+ { name = "file:AntykwaTorunskaCond-Regular", vector = "tex-ex-braces", backmap = false },
+ { name = "ex-anttcr.tfm", vector = "tex-ex", extension = true, badones = badones, ignore = uglyone },
},
["antykwa-lightcond-math"] = {
- { name = "file:AntykwaTorunskaCondLight-Regular", features = "virtualmath", main = true },
+ { name = "file:LatinModern-Math", features = "virtualmath-antykwa-lightcond", main = true, parameters = false },
+ --
+ { name = "rm-anttcl.tfm", vector = "tex-mr", skewchar=0x7F },
{ name = "mi-anttcli.tfm", vector = "tex-mi", skewchar=0x7F },
{ name = "mi-anttcli.tfm", vector = "tex-it", skewchar=0x7F },
- { name = "sy-anttclz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
- { name = "ex-anttcl.tfm", vector = "tex-ex", extension = true } ,
- msam,
- msbm,
+ { name = "mi-anttcri.tfm", vector = "tex-bi", skewchar=0x7F },
+ { name = "rm-anttcr.tfm", vector = "tex-bf", skewchar=0x7F },
+ { name = "sy-anttclz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true, ignore = uglyones }, -- jmn = true
+ { name = "sy-anttclz.tfm", vector = "extensible-jmn-private", skewchar=0x30 },
+ { name = "file:AntykwaTorunskaCondLight-Regular", vector = "tex-ex-braces", backmap = false },
+ { name = "ex-anttcl.tfm", vector = "tex-ex", extension = true, badones = badones, ignore = uglyone },
}
- }
+ },
+ addmissing = helpers.addmissing,
}
}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/asana-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/asana-math.lfg
deleted file mode 100644
index 5b47b3ff8cc..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkiv/asana-math.lfg
+++ /dev/null
@@ -1,66 +0,0 @@
--- This patch code is moved from font-pat.lua to this goodies
--- files as it does not belong in the core code.
-
-local patches = fonts.handlers.otf.enhancers.patches
-
-local function patch(data,filename,threshold)
- local m = data.metadata.math
- if m then
- local d = m.DisplayOperatorMinHeight or 0
- if d < threshold then
- patches.report("DisplayOperatorMinHeight(%s -> %s)",d,threshold)
- m.DisplayOperatorMinHeight = threshold
- end
- end
-end
-
-patches.register("after","analyze math","asana",function(data,filename) patch(data,filename,1350) end)
-
-local function less(value,target,original)
- -- officially we should check the original
- return 0.25 * value
-end
-
-local function more(value,target,original)
- local o = original.mathparameters.DisplayOperatorMinHeight
- if o < 2800 then
- return 2800 * target.parameters.factor
- else
- return value -- already scaled
- end
-end
-
-
-return {
- name = "asana-math",
- version = "1.00",
- comment = "Goodies that complement asana.",
- author = "Hans Hagen",
- copyright = "ConTeXt development team",
- mathematics = {
- parameters = {
- -- DisplayOperatorMinHeight = 0, -- more
- -- StackBottomDisplayStyleShiftDown = 0,
- -- StackBottomShiftDown = 0,
- -- StackDisplayStyleGapMin = 0,
- -- StackGapMin = 0,
- -- StackTopDisplayStyleShiftUp = 0,
- -- StackTopShiftUp = 0,
- -- StretchStackBottomShiftDown = 0,
- -- StretchStackGapAboveMin = 0,
- -- StretchStackGapBelowMin = 0,
- -- StretchStackTopShiftUp = 0,
- StackBottomDisplayStyleShiftDown = less,
- StackBottomShiftDown = less,
- StackDisplayStyleGapMin = less,
- StackGapMin = less,
- StackTopDisplayStyleShiftUp = less,
- StackTopShiftUp = less,
- StretchStackBottomShiftDown = less,
- StretchStackGapAboveMin = less,
- StretchStackGapBelowMin = less,
- StretchStackTopShiftUp = less,
- }
- }
-}
-
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/bonum-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/bonum-math.lfg
index 51ca2d7f19b..56262eb3264 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/bonum-math.lfg
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/bonum-math.lfg
@@ -1,36 +1,320 @@
-local kern_V = { bottomright = { { kern = -200 } } }
-local kern_W = { bottomright = { { kern = -100 } } }
-local offset_f = { xoffset = "llx" }
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
--- Beware of updates in ssty slots!
+local integral_variants = { bottomright = -0.20 }
+local integral_top = { topright = 0 }
+local integral_bottom = { bottomright = -0.10 } -- if too big it looks bad with triple integrals
return {
name = "bonum-math",
version = "1.00",
comment = "Goodies that complement bonum.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
- dimensions = {
- default = {
- -- [0x1D453] = offset_f, -- 𝑓
- -- ["1:0x1D453"] = offset_f, -- needed for compact
- -- ["2:0x1D453"] = offset_f, -- needed for compact
- ["*:0x1D453"] = offset_f, -- 𝑓
- },
+ parameters = {
+ AccentTopShiftUp = -15,
+ FlattenedAccentTopShiftUp = -15,
+ AccentBaseDepth = 50,
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ DisplayOperatorMinHeight = 1900, -- 1250 in font
+ SubscriptShiftDown = 201, -- 231 in font
+ SuperscriptShiftUp = 364, -- 334 in font
+ SubscriptShiftDownWithSuperscript = "1.4*SubscriptShiftDown", -- trial and error
+ PrimeShiftUp = "1.25*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.25*SuperscriptShiftUp",
},
- kerns = {
- -- [0x1D449] = kern_V, -- 𝑉
- -- ["1:0x1D449"] = kern_V, -- needed for compact
- -- ["2:0x1D449"] = kern_V, -- needed for compact
- -- [0x1D44A] = kern_W, -- 𝑊
- -- ["1:0x1D44A"] = kern_W, -- needed for compact
- -- ["2:0x1D44A"] = kern_W, -- needed for compact
- ["*:0x1D449"] = kern_V, -- 𝑉
- ["*:0x1D44A"] = kern_W, -- 𝑊
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 1.005",
+ },
+ {
+ tweak = "fixprimes",
+ factor = 0.77,
+ },
+ {
+ tweak = "addmirrors",
+ },
+ {
+ tweak = "replacealphabets",
+ list = {
+ {
+ source = { first = 0x003B1 }, -- upright alpha
+ filename = "texgyrebonummath-companion.otf",
+ },
+ {
+ source = { first = 0x1D6FC }, -- italic alpha
+ filename = "texgyrebonummath-companion.otf",
+ },
+ {
+ source = { first = 0x1D6C2 }, -- bold upright alpha
+ filename = "texgyrebonummath-companion.otf",
+ },
+ {
+ source = { first = 0x1D736 }, -- bold italic alpha
+ filename = "texgyrebonummath-companion.otf",
+ },
+ },
+ },
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { rscale = 0.98 },
+ presets.rsfsuprighttoscript { rscale = 0.98 },
+ presets.moderntocalligraphic { rscale = 0.98 },
+ presets.eulertocalligraphic { rscale = 0.98 },
+ presets.xitsarabic { rscale = 1 },
+ presets.fallbacks { },
+ presets.moveintegrals { factor = 1.5 },
+ presets.moveitalics { correct = true },
+ presets.wipeanchors { },
+ presets.wipeitalics { },
+ {
+ -- We need to check these, are the tweaks necessary or not?
+ tweak = "dimensions",
+ list = {
+ ["lowercasefraktur"] = {
+ width = 1.25,
+ extend = 1.25,
+ height = 1.15,
+ depth = 1.15,
+ squeeze = 1.15,
+ },
+
+ ["lowercasescript"] = {
+ factor = 1.2,
+ },
+ },
+ },
+ {
+ tweak = "kerns",
+ list = {
+ [0x002F] = { topleft = -0.2, bottomright = -0.2 },
+ ["0x002F.variants.*"] = { topleft = -0.2, bottomright = -0.2 },
+ [0x007D] = { topright = -0.05, bottomright = -0.05 }, -- right brace variants
+ ["0x7D.variants.*"] = { topright = -0.05, bottomright = -0.05 }, -- right brace variants
+ ["0x7D.parts.top"] = { topright = -0.15, }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.15 }, -- right brace bottom
+ [0x0029] = { topright = -0.15, bottomright = -0.15 }, -- right parenthesis variants
+ ["0x29.variants.*"] = { topright = -0.15, bottomright = -0.15 }, -- right parenthesis variants
+ ["0x29.parts.top"] = { topright = -0.15, }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.15 }, -- right parenthesis bottom
+ [0x221A] = { topright = 0.2, bottomright = 0.2 }, -- radical
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 },
+ ["0x221A.parts.top"] = { topright = 0.2, },
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 },
+ [0x27E9] = { topright = -0.1, bottomright = -0.1 }, -- angle
+ ["0x27E9.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ [0x27EB] = { topright = -0.1, bottomright = -0.1 },
+ ["0x27EB.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ --
+ [0x1D465] = { bottomright = -0.05, }, -- italic x (ic is too large)
+ [0x00393] = { bottomright = -0.30, }, -- upright Gamma
+ [0x1D43F] = { bottomright = 0.01, }, -- upright L
+ ["0x222B.parts.bottom"] = { bottomright = -0.20 }, -- int
+ ["0x222C.parts.bottom"] = { bottomright = -0.15 }, -- iint
+ ["0x222D.parts.bottom"] = { bottomright = -0.10 }, -- iiint
+ ["0x2A0C.parts.bottom"] = { bottomright = -0.05 }, -- iiiint
+ },
+ },
+ -- Accents are a mess. We migrate the extensibles from the combiners to the base accent
+ -- and then need to tweak the width (which is auto set because it was zero with a large
+ -- accent anchor offset). First we copy and fix.
+ {
+ tweak = "extendaccents",
+ },
+ {
+ tweak = "flattenaccents",
+ squeeze = 0.8,
+ height = 0.9,
+ offset = 0.1,
+ },
+ {
+ tweak = "radicaldegreeanchors",
+ list = {
+ [0x221A] = { location = "left", hfactor = .1, vfactor = .3 },
+ ["0x221A.variants.*"] = { location = "left", hfactor = .1, vfactor = .625 },
+ ["0x221A.variants.1"] = { location = "left", hfactor = .1, vfactor = .575 },
+ ["0x221A.parts.bottom"] = { location = "left", hfactor = .1, vfactor = 1.15 },
+ }
+ },
+ {
+ tweak = "dimensions",
+ list = {
+ -- [0x007D] = { topright = -0.05, bottomright = -0.05 }, -- right brace variants
+ ["0x7C"] = { width = 1.4, xoffset=0.2 }, -- vertical bar
+ -- ["0x7C.variants.*"] = { width = 1, extend = 2.4 }, -- vertical bar
+ -- ["0x7C.parts.top"] = { , }, -- vertical bar
+ -- ["0x7C.parts.bottom"] = { bottomright = -0.15 }, -- vertical bar
+ },
+ },
+
+ {
+ tweak = "fixaccents",
+ },
+ -- First we set the dimensions of the initial accent which started out as zero but we want
+ -- a proper width.
+ {
+ tweak = "dimensions",
+ list = {
+ [0x00302] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widehat
+ [0x00303] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widetilde
+ [0x00306] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widebreve
+ [0x0030C] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widecheck
+ },
+ },
+ -- Then we deal with all offsets and heights in one go. So we treat the initial accent
+ -- as well as the variants here. But none for Bonum.
+ -- We now copy these to the not wide slots so that we can set these to stretch as well,
+ -- if only because it is less confusing and more consistent.
+ {
+ tweak = "copyaccents",
+ },
+ -- So far for the accents.
+ {
+ -- This one fakes margins to get larger/smaller accents with for example the
+ -- \widetilde.
+ tweak = "margins",
+ list = {
+ [0x1D7DC] = { left = -.1, right = -.1 }, -- doublestruck 4
+
+ [0x1D712] = { left = -.1, right = -.1 }, -- italic chi
+ [0x1D713] = { left = -.1, right = -.1 }, -- italic psi
+ [0x1D714] = { left = -.1, right = -.1 }, -- italic omega
+
+ [0x003B1] = { left = -.1, right = -.1 }, -- upright alpha
+ [0x003B3] = { left = -.1, right = -.1 }, -- upright gamma
+ [0x003BA] = { left = -.1, right = -.1 }, -- upright kappa
+ [0x003BC] = { left = -.1, right = -.1 }, -- upright mu
+ [0x003C0] = { left = -.1, right = -.1 }, -- upright pi
+ [0x003C3] = { left = -.1, right = -.1 }, -- upright sigma
+ [0x003C5] = { left = -.1, right = -.1 }, -- upright upsilon
+ [0x003C6] = { left = -.1, right = -.1 }, -- upright phi
+ [0x003C8] = { left = -.1, right = -.1 }, -- upright psi
+ [0x003C9] = { left = -.1, right = -.1 }, -- upright omega
+
+ -- Greek lowercase sans (bold, italic) can be improved
+
+ [0x1D451] = { left = -.1, right = -.1 }, -- italic d
+ [0x1D453] = { left = -.1, right = -.1 }, -- italic f
+
+ [0x00394] = { left = .1, right = .1 }, -- upright Delta
+ [0x003A3] = { left = .1, right = .1 }, -- upright Sigma
+
+ [0x00046] = { left = .1, right = .1 }, -- F
+ [0x0004C] = { left = .1, right = .1 }, -- L
+ [0x00050] = { left = .1, right = .1 }, -- P
+ [0x00053] = { left = .1, right = .1 }, -- S
+ [0x00054] = { left = .1, right = .1 }, -- T
+ [0x0005A] = { left = .1, right = .1 }, -- Z
+
+ [0x1D43D] = { left = -.1, right = -.1 }, -- italic J
+ [0x1D44B] = { left = -.05, right = -.05 }, -- italic X
+ },
+ },
+ {
+ -- The v could have a bit more sidebearing
+ tweak = "dimensions",
+ list = {
+ ["0x1D463"] = { width = 1.075, }, -- italic v
+ },
+ },
+ {
+ tweak = "addprivates",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ -- This tweak is only needed for the funny arrows and these now get properly
+ -- centered. (Could actually be done in the engine).
+ tweak = "addarrows",
+ -- These are for documentation purposed as they are the defaults anyway:
+ left = 0.05,
+ right = 0.05,
+ slack = 0.10,
+ -- The equal doesn't really match the double arrows, as in plain etc, so it still
+ -- looks somewhat bad when zoomed in. This is the best we could do. Anyway, this
+ -- in only used when testing (forced) so it doesn't kick in normally.
+ list = { [0x3D] = { squeeze = .85, yoffset = .0975 } }
+ },
+ {
+ -- Do we need these in the future?
+ -- Maybe a more general setup?
+ -- Maybe "reset llx"
+ tweak = "kernpairs",
+ list = {
+ [mathematics.tweaks.subsets.acenorsuvxz] = {
+ [0x1D453] = -.1, -- f
+ [0x1D457] = -.1, -- j
+ },
+ [mathematics.tweaks.subsets.bhklt] = {
+ [0x1D453] = -.1, -- f
+ [0x1D457] = -.1, -- j
+ },
+ [mathematics.tweaks.subsets.d] = {
+ [0x1D453] = -.075, -- f
+ [0x1D457] = -.075, -- j
+ },
+ [mathematics.tweaks.subsets.f] = {
+ -- [mathematics.tweaks.subsets.aceimnorsuvwxz] = -.05,
+ [mathematics.tweaks.subsets.gjqy] = -.15,
+ [0x1D453] = -.2, -- ff
+ },
+ [mathematics.tweaks.subsets.i] = {
+ [0x1D453] = -.2, -- f
+ [0x1D457] = -.2, -- j
+ },
+ [mathematics.tweaks.subsets.mw] = {
+ [0x1D453] = -.05, -- f
+ [0x1D457] = -.05, -- j
+ },
+ [mathematics.tweaks.subsets.p] = {
+ [0x1D453] = -.05, -- f
+ [0x1D457] = -.05, -- j
+ },
+ [0x1D45F] = { -- r
+ [0x1D460] = -.1, -- s
+ },
+ }
+ },
+ {
+ tweak = "addbars",
+ advance = 0.475,
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addequals",
+ },
+ {
+ tweak = "addfourier",
+ variant = 1,
+ },
+ {
+ tweak = "addprimed",
+ },
+ -- this is the mkiv section
+ {
+ tweak = "emulatelmtx",
+ feature = "emulatelmtx",
+ comment = "this is for mkiv",
+ },
+ },
},
alternates = {
dotless = { feature = 'dtls', value = 1, comment = "Mathematical Dotless Forms" },
},
+ bigslots = {
+ 1, 3, 5, 7
+ },
},
}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/cambria-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/cambria-math.lfg
index c18854d182c..a855a2513c3 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/cambria-math.lfg
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/cambria-math.lfg
@@ -1,69 +1,165 @@
--- This patch code is moved from font-pat.lua to this goodies
--- files as it does not belong in the core code.
-
--- This is a fix to the font itself i.e. the cached instance will
--- be patched. When the goodie file is loaded the patch will be
--- added to the patch list. No goodies setting is needed with
--- the filename.
-
-local patches = fonts.handlers.otf.enhancers.patches
-
-local function patch(data,filename,threshold)
- local m = data.metadata.math
- if m then
- local d = m.DisplayOperatorMinHeight or 0
- if d < threshold then
- patches.report("DisplayOperatorMinHeight(%s -> %s)",d,threshold)
- m.DisplayOperatorMinHeight = threshold
- end
- end
-end
-
-patches.register("after","analyze math","cambria", function(data,filename) patch(data,filename,2800) end)
-patches.register("after","analyze math","cambmath",function(data,filename) patch(data,filename,2800) end)
-
--- This is a runtime fix, but then we need to explicitly set
--- the goodies parameter for the font. As a demonstration we
--- we do both.
-
-local function FixDisplayOperatorMinHeight(value,target,original)
- local o = original.mathparameters.DisplayOperatorMinHeight
- if o < 2800 then
- return 2800 * target.parameters.factor
- else
- return value -- already scaled
- end
-end
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
return {
name = "cambria-math",
version = "1.00",
comment = "Goodies that complement cambria.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
parameters = {
- DisplayOperatorMinHeight = FixDisplayOperatorMinHeight,
+ AccentBaseDepth = 300,
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ DisplayOperatorMinHeight = 2800, -- 2500 in font
+ PrimeShiftUp = "1.25*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.25*SuperscriptShiftUp",
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "addmirrors",
+ },
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { rscale = 0.97 },
+ presets.rsfsuprighttoscript { rscale = 0.97 },
+ presets.moderntocalligraphic { rscale = 0.97 },
+ presets.eulertocalligraphic { rscale = 0.97 },
+ presets.xitsarabic { rscale = 0.95 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { factor = 1.5}, -- needs checking
+ presets.wipeitalics { },
+ presets.pagellaradical { },
+ {
+ tweak = "simplifykerns",
+ },
+ {
+ tweak = "kerns",
+ list = {
+ [0x002F] = { topleft = -0.2, bottomright = -0.2 },
+ ["0x002F.variants.*"] = { topleft = -0.2, bottomright = -0.2 },
+ --
+ [0x007D] = { topright = -0.05, bottomright = -0.05 }, -- right brace variants
+ ["0x7D.variants.*"] = { topright = -0.10, bottomright = -0.10 }, -- right brace variants
+ ["0x7D.parts.top"] = { topright = -0.10, }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.10 }, -- right brace bottom
+ [0x0029] = { topright = -0.15, bottomright = -0.15 }, -- right parenthesis variants
+ ["0x29.variants.*"] = { topright = -0.15, bottomright = -0.15 }, -- right parenthesis variants
+ ["0x29.parts.top"] = { topright = -0.15, }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.15 }, -- right parenthesis bottom
+ [0x221A] = { topright = 0.2, bottomright = 0.2 }, -- radical
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 },
+ ["0x221A.parts.top"] = { topright = 0.2, },
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 },
+ [0x27E9] = { topright = -0.1, bottomright = -0.1 }, -- angle
+ ["0x27E9.variants.*"] = { topright = -0.3, bottomright = -0.3 },
+ [0x27EB] = { topright = -0.1, bottomright = -0.1 },
+ ["0x27EB.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ -- Keep as example. not needed in cambria (after all it is the reference):
+ [0x2A0C] = { bottomright = -0.1 }, -- iiiint does not have any ic
+ },
+ },
+
+ -- Accents are a mess. We migrate the extensibles from the combiners to the base accent
+ -- and then need to tweak the width (which is auto set because it was zero with a large
+ -- accent anchor offset). First we copy and fix.
+ {
+ tweak = "extendaccents",
+ },
+ {
+ tweak = "radicaldegreeanchors",
+ list = {
+ [0x221A] = { location = "left", hfactor = -0.15, vfactor = .75 },
+ ["0x221A.variants.*"] = { location = "left", hfactor = -0.1, vfactor = .15 },
+ ["0x221A.variants.1"] = { location = "left", hfactor = -0.1, vfactor = .55 },
+ ["0x221A.variants.2"] = { location = "left", hfactor = -0.1, vfactor = .375 },
+ ["0x221A.variants.3"] = { location = "left", hfactor = -0.1, vfactor = .275 },
+ ["0x221A.variants.4"] = { location = "left", hfactor = -0.1, vfactor = .22 },
+ ["0x221A.variants.5"] = { location = "left", hfactor = -0.1, vfactor = .175 },
+ ["0x221A.parts.bottom"] = { location = "left", hfactor = -0.1, vfactor = 0.95 },
+ }
+ },
+ {
+ tweak = "fixaccents",
+ },
+ -- First we set the dimensions of the initial accent which started out as zero but we want
+ -- a proper width.
+ {
+ tweak = "dimensions",
+ list = {
+ [0x00302] = { width = 2, anchor = 1.5, xoffset = .25 }, -- widehat
+ [0x00303] = { width = 2, anchor = 1.5, xoffset = .25 }, -- widetilde
+ [0x00306] = { width = 2, anchor = 1.5, xoffset = .25 }, -- widebreve
+ [0x0030C] = { width = 2, anchor = 1.5, xoffset = .25 }, -- widecheck
+ },
+ },
+ -- Then we deal with all offsets and heights in one go. So we treat the initial accent
+ -- as well as the variants here.
+ {
+ tweak = "dimensions",
+ list = {
+ -- here we want to apply to all
+ [0x020DB] = { yoffset = -0.03, height = .95, all = true }, -- widedddot : 0x20DB (self)
+ },
+ },
+ -- We now copy these to the not wide slots so that we can set these to stretch as well,
+ -- if only because it is less confusing and more consistent.
+ {
+ tweak = "copyaccents",
+ },
+ -- So far for the accents.
+
+ {
+ tweak = "fixprimes",
+ factor = 0.83,
+ fake = 0.8,
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ list = { "over", "under" },
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "wipecues",
+ },
+ {
+ tweak = "addarrows",
+ },
+ {
+ tweak = "fixslashes",
+ },
+ {
+ tweak = "addbars",
+ advance = 0.33,
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addequals",
+ },
+ {
+ tweak = "addfourier",
+ variant = 2,
+ },
+ {
+ tweak = "addprimed",
+ },
+ },
+ },
+ bigslots = {
+ 1, 2, 3, 4
},
- -- kernpairs = { -- \setupmathematics[kernpairs=yes]
- -- [0x1D44E] = {
- -- [0x1D44F] = 1000, -- 𝑎𝑏 demo
- -- }
- -- },
- -- kerns = {
- -- [0x1D453] = {
- -- force = true,
- -- topright = {
- -- {
- -- kern = 1000,
- -- },
- -- },
- -- bottomright = {
- -- {
- -- kern = 1000,
- -- },
- -- },
- -- },
- -- },
},
}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/common-math-jmn.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/common-math-jmn.lfg
new file mode 100644
index 00000000000..331d65a5d5a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/common-math-jmn.lfg
@@ -0,0 +1,119 @@
+return {
+ name = "common-math-jmn",
+ version = "1.00",
+ comment = "Goodies that complement the JMN collection.",
+ author = "Hans, Mikael",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ helpers = {
+ addmissing = function(main)
+
+ local builders = fonts.handlers.vf.math.builders
+ local ps = fonts.helpers.privateslot
+
+ local characters = main.characters
+ local variables = main.goodies.mathematics and main.goodies.mathematics.variables or { }
+ local joinrelfactor = variables.joinrelfactor or 3
+ local notshiftfactor = variables.notshiftfactor or 0
+
+ local umbracepiece = ps("um brace piece")
+ local lmbracepiece = ps("lm brace piece")
+ local cmbracepiece = ps("cm brace piece")
+
+ local ulbracepiece = ps("ul brace piece")
+ local urbracepiece = ps("ur brace piece")
+ local llbracepiece = ps("ll brace piece")
+ local lrbracepiece = ps("lr brace piece")
+
+ builders.brace(main,0x23DE,ulbracepiece,cmbracepiece,lrbracepiece,llbracepiece,cmbracepiece,urbracepiece)
+ builders.brace(main,0x23DF,llbracepiece,cmbracepiece,urbracepiece,ulbracepiece,cmbracepiece,lrbracepiece)
+
+ builders.parent(main,0x23DC,ulbracepiece,umbracepiece,urbracepiece,"top")
+ builders.parent(main,0x23DD,llbracepiece,lmbracepiece,lrbracepiece,"bottom")
+
+ builders.dots(main,0x2026) -- ldots
+ builders.dots(main,0x22EE) -- vdots
+ builders.dots(main,0x22EF) -- cdots
+ builders.dots(main,0x22F1) -- ddots
+ builders.dots(main,0x22F0) -- udots
+
+ builders.jointwo(main,0x21A6,ps("maps to piece"),.15,0x02192) -- \mapstochar\rightarrow
+
+ local srm = ps("rule middle piece")
+ local srr = ps("rule right piece")
+ local srl = ps("rule left piece")
+
+ local drm = ps("double rule middle piece")
+ local drr = ps("double rule right piece")
+ local drl = ps("double rule left piece")
+
+ local sal = ps("arrow left piece")
+ local sar = ps("arrow right piece")
+
+ local dal = ps("double arrow left piece")
+ local dar = ps("double arrow right piece")
+
+ local rad = ps("radical bar extender")
+
+ if characters[srm] then
+
+ builders.jointwo(main,0x27F5,sak,joinrelfactor,srr)
+ builders.jointwo(main,0x27F6,srl,joinrelfactor,sar)
+ builders.jointwo(main,0x27F7,sak,joinrelfactor,sar)
+ builders.jointwo(main,0x27F8,dal,joinrelfactor,drr)
+ builders.jointwo(main,0x27F9,drl,joinrelfactor,dar)
+ builders.jointwo(main,0x27FA,dal,joinrelfactor,dar)
+
+ builders.horibar(main,0x203E,srm,srl,srr,0x02212) -- overbar underbar fraction (we take 90/91/92 too!)
+ -- builders.horibar(main,0x203E,srm,srl,srr,0x0002D) -- overbar underbar fraction (we take 90/91/92 too!)
+
+ builders.rootbar(main,ps("radical bar extender"),srm,srr,0x02212) -- radical
+
+ else
+
+ builders.jointwo(main,0x27F5,0x02190,joinrelfactor,0x0002D) -- \leftarrow\joinrel\relbar
+ builders.jointwo(main,0x27F6,0x0002D,joinrelfactor,0x02192) -- \relbar\joinrel\rightarrow
+ builders.jointwo(main,0x27F7,0x02190,joinrelfactor,0x02192) -- \leftarrow\joinrel\rightarrow
+ builders.jointwo(main,0x27F8,0x021D0,joinrelfactor,0x0003D) -- \Leftarrow\joinrel\Relbar
+ builders.jointwo(main,0x27F9,0x0003D,joinrelfactor,0x021D2) -- \Relbar\joinrel\Rightarrow
+ builders.jointwo(main,0x27FA,0x021D0,joinrelfactor,0x021D2) -- \Leftarrow\joinrel\Rightarrow
+
+ builders.horibar(main,0x203E,0xFE073) -- overbar underbar
+
+ end
+
+ builders.jointwo(main,0x2016,0x007C,0.20,0x007C)
+ builders.jointwo(main,0x2980,0x007C,0.20,0x007C,0.20,0x007C)
+
+ characters[0x007C].extensible = true
+ characters[0x007C].varianttemplate = 0x5B
+ characters[0x2016].extensible = true
+ characters[0x2016].varianttemplate = 0x5B
+ characters[0x2980].extensible = true
+ characters[0x2980].varianttemplate = 0x5B
+
+ -- 21CB leftrightharpoon
+ -- 21CC rightleftharpoon
+
+ builders.stack(main,0x2259,0x0003D,3,0x02227) -- \buildrel\wedge\over=
+
+ builders.jointwo(main,0x22C8,0x022B3,joinrelfactor,0x022B2) -- \mathrel\triangleright\joinrel\mathrel\triangleleft (4 looks better than 3)
+ builders.jointwo(main,0x22A7,0x0007C,joinrelfactor,0x0003D) -- \mathrel|\joinrel=
+
+ builders.overlaytwo(main,0x2260,0x00338,notshiftfactor,0x0003D) -- \not\equal
+ builders.overlaytwo(main,0x2284,0x00338,notshiftfactor,0x02282) -- \not\subset
+ builders.overlaytwo(main,0x2285,0x00338,notshiftfactor,0x02283) -- \not\supset
+ builders.overlaytwo(main,0x2209,0x00338,notshiftfactor,0x02208) -- \not\in
+
+ builders.jointwo(main,0x2254,0x03A,0,0x03D) -- := (≔)
+
+ builders.repeated(main,0x222B,0x222B,1,1/2)
+ builders.repeated(main,0x222C,0x222B,2,1/2)
+ builders.repeated(main,0x222D,0x222B,3,1/2)
+
+ characters[0x02B9] = characters[0x2032] -- we're nice
+
+ end
+ }
+ }
+}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/common-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/common-math.lfg
new file mode 100644
index 00000000000..45e46d865b6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/common-math.lfg
@@ -0,0 +1,307 @@
+return {
+ name = "common-math",
+ version = "1.00",
+ comment = "Goodies that complement pagella.",
+ author = "Hans Hagen & Mikael Sundqvist",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ tweaks = {
+ presets = {
+ fallbacks = function(parameters)
+ return {
+ tweak = "fallbacks",
+ }
+ end,
+ scripttocalligraphic = function(parameters)
+ return {
+ tweak = "replacealphabets",
+ feature = "scripttocalligraphic",
+ list = {
+ {
+ source = "uppercasescript",
+ target = "uppercasecalligraphic",
+ },
+ {
+ source = "uppercaseboldscript",
+ target = "uppercaseboldcalligraphic",
+ },
+ },
+ }
+ end,
+ moderntocalligraphic = function(parameters)
+ return {
+ tweak = "replacealphabets",
+ feature = "moderntocalligraphic",
+ list = {
+ {
+ source = "uppercasescript",
+ target = "uppercasecalligraphic",
+ filename = "latinmodern-math.otf",
+ rscale = parameters.rscale,
+ },
+ {
+ source = "uppercaseboldscript",
+ target = "uppercaseboldcalligraphic",
+ filename = "latinmodern-math.otf",
+ rscale = parameters.rscale,
+ },
+ },
+ }
+ end,
+ eulertocalligraphic = function(parameters)
+ return {
+ tweak = "replacealphabets",
+ feature = "eulertocalligraphic",
+ list = {
+ {
+ source = "uppercasescript",
+ target = "uppercasecalligraphic",
+ filename = "euler-math.otf",
+ rscale = parameters.rscale,
+ },
+ {
+ source = "uppercaseboldscript",
+ target = "uppercaseboldcalligraphic",
+ filename = "euler-math.otf",
+ rscale = parameters.rscale,
+ },
+ },
+ }
+ end,
+ rsfstoscript = function(parameters)
+ return {
+ tweak = "replacealphabets",
+ feature = "rsfstoscript",
+ list = {
+ {
+ source = "uppercasescript",
+ target = "uppercasescript",
+ filename = "ralphsmithsformalscript-companion.otf",
+ rscale = parameters.rscale,
+ },
+ {
+ source = "uppercaseboldscript",
+ target = "uppercaseboldscript",
+ filename = "ralphsmithsformalscript-companion.otf",
+ rscale = parameters.rscale,
+ },
+ },
+ }
+ end,
+ rsfsuprighttoscript = function(parameters)
+ return {
+ tweak = "replacealphabets",
+ feature = "rsfsuprighttoscript",
+ list = {
+ {
+ source = "uppercasescript",
+ target = "uppercasescript",
+ filename = "ralphsmithsformalscript-companion.otf",
+ rscale = parameters.rscale,
+ feature = "ss01",
+ },
+ {
+ source = "uppercaseboldscript",
+ target = "uppercaseboldscript",
+ filename = "ralphsmithsformalscript-companion.otf",
+ rscale = parameters.rscale,
+ feature = "ss01",
+ },
+ },
+ }
+ end,
+ braille = function(parameters)
+ return {
+ tweak = "replacealphabets",
+ feature = "braille",
+ list = {
+ {
+ source = "braillepatterns",
+ target = "braillepatterns",
+ filename = "dejavuserif.ttf",
+ rscale = parameters.rscale,
+ },
+ },
+ }
+ end,
+ xitsarabic = function(parameters)
+ return {
+ tweak = "replacealphabets",
+ feature = "xitsarabic",
+ list = {
+ {
+ source = "arabicmathematicalalphabeticsymbols",
+ target = "arabicmathematicalalphabeticsymbols",
+ filename = "xitsmath-companion.otf",
+ rscale = parameters.rscale,
+ },
+ {
+ source = "digitsarabicindic",
+ target = "digitsarabicindic",
+ filename = "xitsmath-companion.otf",
+ rscale = parameters.rscale,
+ },
+ {
+ source = "digitsextendedarabicindic",
+ target = "digitsextendedarabicindic",
+ filename = "xitsmath-companion.otf",
+ rscale = parameters.rscale,
+ },
+ },
+ }
+ end,
+ moveitalics = function(parameters)
+ return {
+ tweak = "moveitalics",
+ correct = parameters.correct,
+ list = (parameters.all and "all") or (parameters.letters and "letters") or {
+ --
+ "lowercasenormal",
+ "lowercaseitalic",
+ "lowercasebold",
+ "lowercasebolditalic",
+ "lowercasegreeknormal",
+ "lowercasegreekitalic",
+ "lowercasegreekbold",
+ "lowercasegreekbolditalic",
+ "lowercaseboldfraktur",
+ "lowercaseboldscript",
+ "lowercasedoublestruck",
+ "lowercasefraktur",
+ "lowercasegreeksansserifbold",
+ "lowercasegreeksansserifbolditalic",
+ "lowercasemonospace",
+ "lowercasesansserifbold",
+ "lowercasesansserifbolditalic",
+ "lowercasesansserifitalic",
+ "lowercasesansserifnormal",
+ "lowercasescript",
+ --
+ "uppercasenormal",
+ "uppercaseitalic",
+ "uppercasebold",
+ "uppercasebolditalic",
+ "uppercasegreeknormal",
+ "uppercasegreekitalic",
+ "uppercasegreekbold",
+ "uppercasegreekbolditalic",
+ "uppercaseboldfraktur",
+ "uppercasebolditalic",
+ "uppercaseboldscript",
+ "uppercasedoublestruck",
+ "uppercasefraktur",
+ "uppercasegreeksansserifbold",
+ "uppercasegreeksansserifbolditalic",
+ "uppercasemonospace",
+ "uppercasesansserifbold",
+ "uppercasesansserifbolditalic",
+ "uppercasesansserifitalic",
+ "uppercasesansserifnormal",
+ "uppercasescript",
+ --
+ "digitsbold",
+ "digitsdoublestruck",
+ "digitslatin",
+ "digitsmonospace",
+ "digitsnormal",
+ "digitssansserifbold",
+ "digitssansserifnormal",
+ --
+ -- We don't do these (one can use all=true) because now we can get
+ -- more details about what gets italics.
+ --
+ -- "latinextendeda",
+ -- "latinextendedadditional",
+ -- "latinextendedb",
+ -- "latinextendedc",
+ -- "latinextendedd",
+ -- "latinextendede",
+ -- "latinextendedf",
+ -- "latinextendedg",
+ -- "latinsupplement",
+ --
+ mathematics.tweaks.subsets.dotless,
+ }
+ }
+ end,
+ moveintegrals = function(parameters)
+ return {
+ tweak = "movelimits",
+ factor = parameters.factor or 1,
+ icfactor = parameters.icfactor or 1,
+ list = mathematics.tweaks.subsets.integrals,
+ }
+ end,
+ wipeitalics = function(parameters)
+ return {
+ tweak = "wipeitalics",
+ all = true,
+ }
+ end,
+ wipeanchors = function(parameters)
+ return {
+ -- For upright alphabets, we unset the anchor. This means that accents are placed
+ -- centered over the character. Should be on top.
+ tweak = "wipeanchors",
+ list = {
+ "digitsbold",
+ "digitsdoublestruck",
+ "digitsmonospace",
+ "digitsnormal",
+ "digitssansserifbold",
+ "digitssansserifnormal",
+ "lowercasebold",
+ "lowercaseboldfraktur",
+ "lowercasedoublestruck",
+ "lowercasefraktur",
+ "lowercasegreekbold",
+ "lowercasegreeknormal",
+ "lowercasegreeksansserifbold",
+ "lowercasemonospace",
+ "lowercasenormal",
+ "lowercasesansserifbold",
+ "lowercasesansserifnormal",
+ "uppercasebold",
+ "uppercaseboldfraktur",
+ "uppercasedoublestruck",
+ "uppercasefraktur",
+ "uppercasegreekbold",
+ "uppercasegreeknormal",
+ "uppercasegreeksansserifbold",
+ "uppercasemonospace",
+ "uppercasenormal",
+ "uppercasesansserifbold",
+ "uppercasesansserifnormal",
+ },
+ }
+ end,
+ pagellaradical = function(parameters)
+ return {
+ tweak = "tweaks",
+ feature = "pagellaradical",
+ list = {
+ {
+ tweak = "replacealphabets",
+ list = {
+ {
+ source = { first = 0x0221A }, -- sqrt
+ filename = "texgyrepagella-math.otf",
+ inherit = {
+ RadicalRuleThickness = true,
+ },
+ },
+ },
+ },
+ -- {
+ -- tweak = "parameters",
+ -- list = {
+ -- RadicalRuleThickness = 122.88, -- 60*2048/1000
+ -- },
+ -- },
+ },
+ }
+ end,
+ },
+ },
+ },
+}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/concrete-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/concrete-math.lfg
new file mode 100644
index 00000000000..b69ee0103b4
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/concrete-math.lfg
@@ -0,0 +1,119 @@
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
+
+return {
+ name = "concrete-math",
+ version = "1.00",
+ comment = "Goodies that complement concrete math.",
+ author = "Hans Hagen & Mikael Sundqvist",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ parameters = {
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ PrimeShiftUp = "1.2*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.2*SuperscriptShiftUp",
+ PrimeBaselineDropMax = "0.5*SuperscriptBaselineDropMax",
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "fixprimes",
+ factor = 0.92,
+ },
+ {
+ tweak = "fixintegrals",
+ },
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { },
+ presets.rsfsuprighttoscript { },
+ presets.moderntocalligraphic { },
+ presets.eulertocalligraphic { },
+ presets.xitsarabic { },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveintegrals { factor = 1.5 },
+ presets.wipeitalics { },
+ {
+ tweak = "kerns",
+ list = {
+ [0x002F] = { topleft = -0.2, bottomright = -0.2 },
+ },
+ },
+ {
+ tweak = "kerns",
+ list = {
+ [0x002F] = { topleft = -0.2, bottomright = -0.2 },
+ ["0x002F.variants.*"] = { topleft = -0.2, bottomright = -0.2 },
+ --
+ [0x007D] = { topright = -0.05, bottomright = -0.05 }, -- right brace variants
+ ["0x7D.variants.*"] = { topright = -0.25, bottomright = -0.25 }, -- right brace variants
+ ["0x7D.parts.top"] = { topright = -0.25, }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.25 }, -- right brace bottom
+ [0x0029] = { topright = -0.15, bottomright = -0.15 }, -- right parenthesis variants
+ ["0x29.variants.*"] = { topright = -0.15, bottomright = -0.15 }, -- right parenthesis variants
+ ["0x29.parts.top"] = { topright = -0.15, }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.15 }, -- right parenthesis bottom
+ [0x221A] = { topright = 0.2, bottomright = 0.2 }, -- radical
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 },
+ ["0x221A.parts.top"] = { topright = 0.2, },
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 },
+ [0x27E9] = { topright = -0.1, bottomright = -0.1 }, -- angle
+ ["0x27E9.variants.*"] = { topright = -0.3, bottomright = -0.3 },
+ [0x27EB] = { topright = -0.1, bottomright = -0.1 },
+ ["0x27EB.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ --
+ [0x00393] = { bottomright = -0.30, }, -- upright Gamma
+ },
+ },
+
+ {
+ tweak = "dimensions",
+ list = {
+ [0x00393] = { width = 0.875, }, -- upright Gamma
+ },
+ },
+ {
+ tweak = "radicaldegreeanchors",
+ list = {
+ ["0x221A.parts.bottom"] = { location = "left", hfactor = .0, vfactor = 1.075 },
+ }
+ },
+ {
+ tweak = "fixellipses",
+ },
+ {
+ tweak = "addbars",
+ advance = 0.6,
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addequals",
+ },
+ {
+ tweak = "addfourier",
+ variant = 2,
+ },
+ {
+ tweak = "addprimed",
+ },
+ {
+ tweak = "setoptions",
+ set = { "ignorekerndimensions" }
+ },
+ -- this is the mkiv section
+ {
+ tweak = "emulatelmtx",
+ feature = "emulatelmtx",
+ comment = "this is for mkiv",
+ },
+ },
+ },
+ bigslots = {
+ 1, 2, 3, 4
+ },
+ },
+}
+
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/dejavu-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/dejavu-math.lfg
index 608b396f8f7..03f86928812 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/dejavu-math.lfg
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/dejavu-math.lfg
@@ -1,27 +1,182 @@
-local kern_V = { bottomright = { { kern = -250 } } }
-local kern_W = kern_W
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
--- Beware of updates in ssty slots!
+local integral_variants = { bottomright = -0.20 }
+local integral_bottom = { bottomright = -0.25 }
return {
name = "dejavu-math",
version = "1.00",
comment = "Goodies that complement dejavu.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
- kerns = {
- -- [0x1D449] = kern_V, -- 𝑉
- -- ["1:0x1D449"] = kern_V, -- needed for compact
- -- ["2:0x1D449"] = kern_V, -- needed for compact
- -- [0x1D44A] = kern_W, -- 𝑊
- -- ["1:0x1D44A"] = kern_W, -- needed for compact
- -- ["2:0x1D44A"] = kern_W, -- needed for compact
- ["*:0x1D449"] = kern_V, -- 𝑉
- ["*:0x1D44A"] = kern_W, -- 𝑊
+ parameters = {
+ FractionRuleThickness = 60,
+ AccentTopShiftUp = -25,
+ FlattenedAccentTopShiftUp = -25,
+ AccentBaseDepth = 30,
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ DisplayOperatorMinHeight = 1800, -- 1333 in font
+ SubscriptShiftDown = 177, -- 277 in font
+ SuperscriptShiftUp = 428, -- 381 in font
+ SubscriptShiftDownWithSuperscript = "1.3*SubscriptShiftDown", -- trial and error
+ PrimeShiftUp = "1.4*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.4*SuperscriptShiftUp",
+ PrimeBaselineDropMax = "0.5*SuperscriptBaselineDropMax",
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 1.106",
+ },
+ presets.braille { },
+ {
+ tweak = "fixprimes",
+ factor = 0.63,
+ },
+ {
+ tweak = "addmirrors",
+ },
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { rscale = 1.02 },
+ presets.rsfsuprighttoscript { rscale = 1.02 },
+ presets.moderntocalligraphic { rscale = 1.02 },
+ presets.eulertocalligraphic { rscale = 1.02 },
+ presets.xitsarabic { rscale = 1.05 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { factor = 1.5 }, -- we need to check this
+ presets.wipeitalics { },
+ -- We don't have italic correction in for instance math italic f which means that
+ -- we also didn't fix it. Therefore we need at least some reasonable kerns. Using
+ -- a dimension tweak before the above (e.g. 0.2 italic and 0.8 width) doesn't work
+ -- because once the advance is set the move is blocked and the ic stil wiped. So,
+ -- we kern. Actually the upright (ascii) f has italic correction.
+ {
+ tweak = "kerns",
+ list = {
+ [0x1D453] = { bottomright = -.2 },
+ }
+ },
+ --
+ {
+ tweak = "kerns",
+ list = {
+ [0x002F] = { topleft = -0.2, bottomright = -0.2 },
+ ["0x7D.parts.top"] = { topright = -0.15, }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.15 }, -- right brace bottom
+ ["0x7D.variants.*"] = { topright = -0.05, bottomright = -0.05 }, -- right brace variants
+ ["0x29.parts.top"] = { topright = -0.15, }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.15 }, -- right parenthesis bottom
+ ["0x29.variants.*"] = { topright = -0.1, bottomright = -0.1 }, -- right parenthesis variants
+ ["0x221A.parts.top"] = { topright = 0.2, }, -- right radical top
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 }, -- right radical bottom
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 }, -- right radical variants
+ [0x27E9] = { topright = -0.1, bottomright = -0.1 }, -- angle
+ ["0x27E9.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ [0x27EB] = { topright = -0.1, bottomright = -0.1 },
+ ["0x27EB.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ --
+ [0x00393] = { bottomright = -0.30, }, -- upright Gamma
+ --
+ ["0x222B.parts.bottom"] = { bottomright = -0.20 }, -- int
+ ["0x222C.parts.bottom"] = { bottomright = -0.15 }, -- iint
+ ["0x222D.parts.bottom"] = { bottomright = -0.10 }, -- iiint
+ ["0x2A0C.parts.bottom"] = { bottomright = -0.05 }, -- iiiint
+ },
+ },
+ -- Accents are a mess. We migrate the extensibles from the combiners to the base accent
+ -- and then need to tweak the width (which is auto set because it was zero with a large
+ -- accent anchor offset). First we copy and fix.
+ {
+ tweak = "extendaccents",
+ },
+ {
+ tweak = "radicaldegreeanchors",
+ list = {
+ [0x221A] = { location = "left", hfactor = .1, vfactor = .65 },
+ ["0x221A.variants.*"] = { location = "left", hfactor = .1, vfactor = .6 },
+ ["0x221A.variants.1"] = { location = "left", hfactor = .1, vfactor = .65 },
+ ["0x221A.variants.2"] = { location = "left", hfactor = .1, vfactor = .65 },
+ ["0x221A.parts.bottom"] = { location = "left", hfactor = .1, vfactor = 1.1 },
+ }
+ },
+ {
+ tweak = "fixaccents",
+ },
+ -- First we set the dimensions of the initial accent which started out as zero but we want
+ -- a proper width.
+ {
+ tweak = "dimensions",
+ list = {
+ [0x00302] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widehat
+ [0x00303] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widetilde
+ [0x00306] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widebreve
+ [0x0030C] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widecheck
+ },
+ },
+ -- Then we deal with all offsets and heights in one go. So we treat the initial accent
+ -- as well as the variants here.
+ {
+ tweak = "dimensions",
+ list = {
+ [0x020DB] = { yoffset = 0.015, height = .95, all = true }, -- widedddot : 0x20DB (self)
+ },
+ },
+ -- We now copy these to the not wide slots so that we can set these to stretch as well,
+ -- if only because it is less confusing and more consistent.
+ {
+ tweak = "copyaccents",
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "wipecues",
+ },
+ {
+ tweak = "addbars",
+ advance = 0.175,
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addequals",
+ },
+ {
+ tweak = "addfourier",
+ variant = 1,
+ },
+ {
+ tweak = "addprimed",
+ },
+ -- this is the mkiv section
+ {
+ tweak = "emulatelmtx",
+ feature = "emulatelmtx",
+ comment = "this is for mkiv",
+ },
+ },
},
alternates = {
dotless = { feature = 'dtls', value = 1, comment = "Mathematical Dotless Forms" },
},
+ bigslots = {
+ 1, 3, 5, 7
+ },
},
}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/ebgaramond-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/ebgaramond-math.lfg
new file mode 100644
index 00000000000..812430525d5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/ebgaramond-math.lfg
@@ -0,0 +1,217 @@
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
+
+return {
+ name = "ebgaramond",
+ version = "1.00",
+ comment = "Goodies that complement ebgaramond.",
+ author = "Hans Hagen & Mikael Sundqvist",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ parameters = {
+ FractionRuleThickness = 60,
+ OverbarRuleThickness = 60,
+ UnderbarRuleThickness = 60,
+ AccentTopShiftUp = -75,
+ FlattenedAccentTopShiftUp = -75,
+ AccentBaseDepth = 75,
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ SubscriptShiftDown = 200, -- 250 in font
+ SuperscriptShiftUp = 400, -- 430 in font
+ SubscriptShiftDownWithSuperscript = "1.25*SubscriptShiftDown", -- trial and error
+ SubSuperscriptGapMin = 200, -- 250 in font
+ PrimeShiftUp = "1.2*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.2*SuperscriptShiftUp",
+ PrimeBaselineDropMax = "0.5*SuperscriptBaselineDropMax",
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 2019-08-16",
+ },
+ {
+ tweak = "fixprimes",
+ factor = 0.73,
+ },
+ {
+ tweak = "addmirrors",
+ },
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { rscale = 0.95 },
+ presets.rsfsuprighttoscript { rscale = 0.95 },
+ presets.moderntocalligraphic { rscale = 0.95 },
+ presets.eulertocalligraphic { rscale = 0.95 },
+ presets.xitsarabic { rscale = 0.80 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { factor = 1.5 },
+ presets.wipeitalics { },
+ {
+ tweak = "simplifykerns",
+ },
+ {
+ tweak = "topanchors",
+ list = {
+ [0x1D453] = 0.88, -- italic f
+ },
+ },
+ {
+ tweak = "dimensions",
+ list = {
+ [0x1D453] = { width = 1.1 }, -- italic f
+ },
+ },
+ {
+ tweak = "kerns",
+ list = {
+ [0x002F] = { topleft = -0.2, bottomright = -0.2 },
+ ["0x7D.parts.top"] = { topright = -0.15, }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.15 }, -- right brace bottom
+ ["0x7D.variants.*"] = { topright = -0.05, bottomright = -0.05 }, -- right brace variants
+ ["0x29.parts.top"] = { topright = -0.25, }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.25 }, -- right parenthesis bottom
+ ["0x29.variants.*"] = { topright = -0.2, bottomright = -0.2 }, -- right parenthesis variants
+ ["0x221A.parts.top"] = { topright = 0.2, }, -- right radical top
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 }, -- right radical bottom
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 }, -- right radical variants -- angle
+ [0x27E9] = { topright = -0.1, bottomright = -0.1 },
+ ["0x27E9.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ [0x27EB] = { topright = -0.1, bottomright = -0.1 },
+ ["0x27EB.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+
+ [0x51] = { bottomright = 0.25 }, -- Upright Q
+ [0x211A] = { bottomright = 0.2 }, -- Blackboard bold Q
+ [0x1D410] = { bottomright = 0.2 }, -- Bold Q
+ [0x1D478] = { bottomright = 0.05 }, -- Bold Q
+ [0x1D5B0] = { bottomright = 0.05 }, -- Sans Q
+ },
+ },
+ {
+ -- to be considered
+ -- tweak = "kernpairs",
+ list = {
+ [mathematics.tweaks.subsets.gjqy] = {
+ [mathematics.tweaks.subsets.f] = -.1,
+ [0x1D70C] = -.1, -- italic \rho
+ },
+ [mathematics.tweaks.subsets.bhklt] = {
+ [mathematics.tweaks.subsets.f] = -.25,
+ [0x1D70C] = -.25, -- italic \rho
+ },
+ [mathematics.tweaks.subsets.d] = {
+ [mathematics.tweaks.subsets.f] = -.25,
+ [0x1D70C] = -.25, -- italic \rho
+ },
+ [mathematics.tweaks.subsets.f] = {
+ [mathematics.tweaks.subsets.f] = -.25,
+ [0x1D70C] = -.25, -- italic \rho
+ [mathematics.tweaks.subsets.gjqy] = -.25,
+ [mathematics.tweaks.subsets.bhklt] = -.1,
+ [mathematics.tweaks.subsets.d] = -.25,
+ [mathematics.tweaks.subsets.i] = -.25,
+ [mathematics.tweaks.subsets.mw] = -.25,
+ [mathematics.tweaks.subsets.p] = -.25,
+ [mathematics.tweaks.subsets.acenorsuvxz] = -.25,
+ [mathematics.tweaks.subsets.dotless] = -.25,
+ },
+ [mathematics.tweaks.subsets.i] = {
+ [mathematics.tweaks.subsets.f] = -.25,
+ [0x1D70C] = -.25, -- italic \rho
+ },
+ [mathematics.tweaks.subsets.mw] = {
+ [mathematics.tweaks.subsets.f] = -.25,
+ [0x1D70C] = -.25, -- italic \rho
+ },
+ [mathematics.tweaks.subsets.p] = {
+ [mathematics.tweaks.subsets.f] = -.25,
+ [0x1D70C] = -.25, -- italic \rho
+ },
+ [mathematics.tweaks.subsets.acenorsuvxz] = {
+ [mathematics.tweaks.subsets.f] = -.25,
+ [0x1D70C] = -.25, -- italic \rho
+ },
+ [mathematics.tweaks.subsets.dotless] = {
+ [mathematics.tweaks.subsets.f] = -.25,
+ [0x1D70C] = -.25, -- italic \rho
+ },
+ },
+ },
+ -- Accents are a mess. We migrate the extensibles from the combiners to the base accent
+ -- and then need to tweak the width (which is auto set because it was zero with a large
+ -- accent anchor offset). First we copy and fix.
+ {
+ tweak = "extendaccents",
+ },
+ {
+ tweak = "radicaldegreeanchors",
+ list = {
+ ["0x221A.parts.bottom"] = { location = "left", hfactor = .0, vfactor = 1.0 },
+ }
+ },
+ -- First we set the dimensions of the initial accent which started out as zero but we want
+ -- a proper width. None in ebgaramond.
+ -- Then we deal with all offsets and heights in one go. So we treat the initial accent
+ -- as well as the variants here. None in ebgaramond
+ -- We now copy these to the not wide slots so that we can set these to stretch as well,
+ -- if only because it is less confusing and more consistent.
+ {
+ tweak = "copyaccents",
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "addbars",
+ advance = 0.6,
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addequals",
+ },
+ {
+ tweak = "addfourier",
+ variant = 2,
+ },
+ {
+ tweak = "addprimed",
+ },
+ -- this is the mkiv section
+ {
+ tweak = "emulatelmtx",
+ feature = "emulatelmtx",
+ comment = "this is for mkiv",
+ },
+ {
+ tweak = "diagnose",
+ },
+ },
+ },
+ alternates = {
+ partial = { feature = 'ss02', value = 1, comment = "Curved partial" },
+ semibold = { feature = 'ss04', value = 1, comment = "Semibold" },
+ extrabold = { feature = 'ss05', value = 1, comment = "Extrabold" },
+ hbar = { feature = 'ss06', value = 1, comment = "Horizontal bar for h-bar" },
+ integral = { feature = 'ss07', value = 1, comment = "A more slanted integral sign" },
+ tilde = { feature = 'ss09', value = 1, comment = "A tilde variant" },
+ outbendingh = { feature = 'ss10', value = 1, comment = "Out-bending h" },
+ largeoperators = { feature = 'ss11', value = 1, comment = "Larger operators" },
+ },
+ bigslots = {
+ 1, 3, 5, 7
+ },
+ },
+}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/ebgaramond.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/ebgaramond.lfg
deleted file mode 100644
index 43cc13c51c6..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkiv/ebgaramond.lfg
+++ /dev/null
@@ -1,53 +0,0 @@
-return {
- name = "eb garamond",
- version = "1.00",
- comment = "Goodies that complement eb garamond.",
- author = "Hans Hagen",
- copyright = "ConTeXt development team",
- designsizes = {
- ["EBGaramond-Italic"] = {
- ["8pt"] = "file:EBGaramond08-Italic",
- ["9pt"] = "file:EBGaramond08-Italic",
- ["9.5pt"] = "file:EBGaramond08-Italic",
- ["10pt"] = "file:EBGaramond12-Italic",
- ["11pt"] = "file:EBGaramond12-Italic",
- ["12pt"] = "file:EBGaramond12-Italic",
- default = "file:EBGaramond12-Italic",
- },
- ["EBGaramond-Regular"] = {
- ["8pt"] = "file:EBGaramond08-Regular",
- ["9pt"] = "file:EBGaramond08-Regular",
- ["9.5pt"] = "file:EBGaramond08-Regular",
- ["10pt"] = "file:EBGaramond12-Regular",
- ["11pt"] = "file:EBGaramond12-Regular",
- ["12pt"] = "file:EBGaramond12-Regular",
- default = "file:EBGaramond12-Regular",
- },
- ["EBGaramond-SC"] = {
- ["8pt"] = "file:EBGaramond08-SC",
- ["9pt"] = "file:EBGaramond08-SC",
- ["9.5pt"] = "file:EBGaramond08-SC",
- ["10pt"] = "file:EBGaramond12-SC",
- ["11pt"] = "file:EBGaramond12-SC",
- ["12pt"] = "file:EBGaramond12-SC",
- default = "file:EBGaramond12-SC",
- },
- ["EBGaramond-Bold"] = {
- default = "file:EBGaramond12-Bold",
- },
- ["EBGaramond-AllSC"] = {
- default = "file:EBGaramond12-AllSC",
- },
- ["EBGaramond-Initials"] = {
- default = "file:EBGaramondInitials",
- },
- ["EBGaramond-InitialsF1"] = {
- default = "file:EBGaramondInitialsF1",
- },
- ["EBGaramond-InitialsF2"] = {
- default = "file:EBGaramondInitialsF2",
- },
- }
-}
-
-
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/erewhon-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/erewhon-math.lfg
new file mode 100644
index 00000000000..54cc687fab6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/erewhon-math.lfg
@@ -0,0 +1,116 @@
+-- This font is under active development so we don't want to tweek it too much
+-- before all issues are sorted out.
+
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
+
+return {
+ name = "erewhon-math",
+ version = "1.00",
+ comment = "Goodies that complement erewhon math.",
+ author = "Hans Hagen & Mikael Sundqvist",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ parameters = {
+ AccentBaseDepth = 60,
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ SubscriptShiftDown = 200, -- 220 in font
+ SuperscriptShiftUp = 400, -- 400 in font
+ SubscriptShiftDownWithSuperscript = "1.2*SubscriptShiftDown", -- unclear original value, trial and error
+ PrimeShiftUp = "1.1*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.1*SuperscriptShiftUp",
+ PrimeBaselineDropMax = "0.5*SuperscriptBaselineDropMax",
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "fixprimes",
+ factor = 0.94 ,
+ fake = 0.85, -- replace multiples with this width proportion
+ },
+ {
+ tweak = "addmirrors",
+ },
+ {
+ tweak = "dimensions",
+ list = {
+ ["0x222B.variants.*"] = { axis = .15 },
+ },
+ },
+ {
+ tweak = "fixintegrals",
+ },
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { },
+ presets.rsfsuprighttoscript { },
+ presets.moderntocalligraphic { },
+ presets.eulertocalligraphic { },
+ presets.xitsarabic { rscale = 0.90 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { factor = 1.5 },
+ presets.wipeitalics { },
+ {
+ tweak = "kerns",
+ list = {
+ [0x002F] = { topleft = -0.15, bottomright = -0.15 },
+ ["0x7D.parts.top"] = { topright = -0.15, }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.15 }, -- right brace bottom
+ ["0x7D.variants.*"] = { topright = -0.05, bottomright = -0.05 }, -- right brace variants
+ ["0x29.parts.top"] = { topright = -0.1, }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.1 }, -- right parenthesis bottom
+ ["0x29.variants.*"] = { topright = -0.1, bottomright = -0.1 }, -- right parenthesis variants
+ ["0x221A.parts.top"] = { topright = 0.2, }, -- right radical top
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 }, -- right radical bottom
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 }, -- right radical variants
+ [0x27E9] = { topright = -0.1, bottomright = -0.1 }, -- angle
+ ["0x27E9.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ [0x27EB] = { topright = -0.1, bottomright = -0.1 },
+ ["0x27EB.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ [0x00393] = { bottomright = -0.3 }, -- upright Gamma
+ },
+ },
+ {
+ tweak = "radicaldegreeanchors",
+ list = {
+ ["0x221A.parts.bottom"] = { location = "left", hfactor = .1, vfactor = 1.025 },
+ }
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addequals",
+ },
+ {
+ tweak = "addfourier",
+ variant = 2,
+ },
+ {
+ tweak = "addprimed",
+ },
+ {
+ tweak = "setoptions",
+ },
+ },
+ },
+ bigslots = {
+ 1, 2, 3, 4
+ },
+ },
+
+}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/euler-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/euler-math.lfg
index da7647c5339..1c4659786fa 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/euler-math.lfg
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/euler-math.lfg
@@ -1,4 +1,5 @@
--- this file might go away and is for experiments only
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
return {
name = "euler-math",
@@ -7,17 +8,120 @@ return {
author = "Hans Hagen",
copyright = "ConTeXt development team",
mathematics = {
- -- virtuals = {
- -- ["euler-nova"] = {
- -- { name = "texgyrepagella-math.otf", main = true, parameters = true },
- -- { name = "euler.otf", overlay = true }, -- first = 0x1234, last = 0x1256
- --
- -- -- { name = "euler.otf", main = true, parameters = true },
- -- -- { name = "texgyrepagella-math.otf", overlay = true },
- --
- -- },
- -- }
- }
-}
-
+ parameters = {
+ -- DelimiterPercent = 90,
+ -- DelimiterShortfall = 500,
+ -- taken from pagella:
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 900,
+ AccentTopShiftUp = 10,
+ FlattenedAccentTopShiftUp = 10,
+ -- AccentExtendMargin = 50,
+ -- AccentBaseHeight = 0,
+ AccentBaseDepth = 80,
+ -- SpaceAfterScript = 0,
+ -- SpaceAfterScript = 30,
+ RadicalDegreeBottomRaisePercent = 60,
+ RadicalKernAfterDegree = -500,
+ RadicalRuleThickness = 60, -- 60 in font
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ DisplayOperatorMinHeight = 1800, -- 1500 in font
+ PrimeRaisePercent = 75, -- 50 default
+ PrimeRaiseComposedPercent = 10, -- 25 default
+ -- RadicalKernAfterExtensible = 0, -- 0 default
+ -- RadicalKernBeforeExtensible = 0, -- 0 default
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 000.002 ",
+ },
+ {
+ tweak = "fixprimes",
+ factor = 1.2,
+ smaller = true,
+ scale = 0.80,
+ fake = 0.80,
+ },
+ {
+ tweak = "replacealphabets",
+ feature = "pagellaovereuler",
+ filename = "texgyrepagella-math.otf",
+ list = {
+ -- { source = { first = 0x02100, last = 0x0210D } }, -- no 0x2210E
+ -- { source = { first = 0x0210F, last = 0x02BFF } },
+ { source = { first = 0x02100, last = 0x02BFF } },
+ { source = { first = 0x1D400, last = 0x1D7FF } },
+ { source = { first = 0x1D538, last = 0x1D550 } },
+ },
+ },
+ {
+ tweak = "addmirrors",
+ },
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { },
+ presets.rsfsuprighttoscript { },
+ presets.moderntocalligraphic { },
+ presets.eulertocalligraphic { },
+ presets.xitsarabic { rscale = 1 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { },
+ presets.wipeitalics { },
+ {
+ tweak = "fixoldschool",
+ },
+ -- add the accent fixes
+ -- fixslashes?
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "addprivates",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "addarrows",
+ },
+ {
+ tweak = "addbars",
+ advance = 0.2,
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addequals",
+ },
+ {
+ tweak = "addfourier",
+ variant = 1,
+ },
+ -- this is the mkiv section
+ {
+ tweak = "emulatelmtx",
+ feature = "emulatelmtx",
+ comment = "this is for mkiv",
+ },
+ },
+ },
+ bigslots = {
+ 1, 3, 5, 7
+ },
+ alternates = {
+ dotless = { feature = 'dtls', value = 1, comment = "Mathematical Dotless Forms" },
+ },
+ },
+}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/generic-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/generic-math.lfg
new file mode 100644
index 00000000000..2a55504da53
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/generic-math.lfg
@@ -0,0 +1,257 @@
+-- We will add a few more examplex to this file.
+
+return {
+ name = "generic-math",
+ version = "1.00",
+ comment = "A starting point.",
+ author = "Hans Hagen & Mikael Sundqvist",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 900,
+ AccentBaseDepth = 150,
+ PrimeRaisePercent = 25,
+ PrimeShiftUp = "SuperscriptShiftUp",
+ PrimeBaselineDropMax = "SuperscriptBaselineDropMax",
+ PrimeShiftUpCramped = "SuperscriptShiftUpCramped",
+ PrimeSpaceAfter = 0,
+ PrimeWidthPercent = 50,
+ SpaceBeforeScript = "SpaceAfterScript",
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 0,
+ AccentTopShiftUp = 0,
+ AccentBottomShiftDown = 0,
+ AccentBaseDepth = 0,
+ AccentFlattenedBaseDepth = 0,
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ DisplayOperatorMinHeight = 1800, -- XXXX in font
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "dimensions",
+ list = {
+ -- whatever
+ },
+ },
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { rscale = 1 },
+ presets.rsfsuprighttoscript { rscale = 1 },
+ presets.moderntocalligraphic { rscale = 1 },
+ presets.eulertocalligraphic { rscale = 1 },
+ presets.xitsarabic { rscale = 1 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { factor = 1.5 }, -- we need to check the 1.5
+ presets.wipeanchors { },
+ presets.wipeitalics { },
+ {
+ tweak = "simplifykerns",
+ },
+ presets.moveitalics {
+ correct = true
+ }, {
+ tweak = "fixprimes",
+ factor = 0.85, -- accent base height
+ smaller = true, -- replace multiples
+ scale = 0.75, -- glyph scale
+ fake = 0.75, -- replace multiples with this width proportion
+ -- keep = true, -- keep the text size prime (aka minute)
+ },
+ {
+ tweak = "fixslashes",
+ },
+ {
+ tweak = "fixellipses",
+ },
+ {
+ tweak = "addbreve",
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ list = { "over", "under" },
+ -- list = {
+ -- [0x203E] = { factor = "over" }, -- overbar
+ -- [0x203E] = { factor = "under" }, -- underbar
+ -- [0x23DE] = { factor = "over" }, -- overbrace
+ -- [0x23DF] = { factor = "under" }, -- underbrace
+ -- [0x23DC] = { factor = "over" }, -- overparent
+ -- [0x23DD] = { factor = "under" }, -- underparent
+ -- [0x23B4] = { factor = "over" }, -- overbracket
+ -- [0x23B5] = { factor = "under" }, -- underbracket
+ -- }
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "addarrows",
+ left = 0.1,
+ right = 0.1,
+ slack = 0.20,
+ list = {
+ [0x21A9] = false,
+ [0x21AA] = false,
+ [0x2190] = false,
+ [0x2192] = false,
+ [0x219E] = false,
+ [0x21A0] = false,
+-- [0x21A6] = false,
+-- [0x21CB] = false,
+-- [0x21CC] = false,
+ }
+ },
+-- {
+-- tweak = "limits",
+-- factor = 1.5,
+-- list = {
+-- [0x0222B] = true,
+-- [0x0222C] = 1.45,
+-- [0x0222D] = true,
+-- [0x0222E] = true,
+-- [0x0222F] = true,
+-- },
+-- },
+ {
+ -- For upright alphabets, we unset the anchor.
+ -- This means that accents are placed
+ -- centered over the character
+ tweak = "wipeanchors",
+ -- list = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 }, -- todo: ranges
+ list = {
+ "digitsbold",
+ "digitsdoublestruck",
+ "digitsmonospace",
+ "digitsnormal",
+ "digitssansserifbold",
+ "digitssansserifnormal",
+ "lowercasebold",
+ "lowercaseboldfraktur",
+ "lowercasedoublestruck",
+ "lowercasefraktur",
+ "lowercasegreekbold",
+ "lowercasegreeknormal",
+ "lowercasegreeksansserifbold",
+ "lowercasemonospace",
+ "lowercasenormal",
+ "lowercasesansserifbold",
+ "lowercasesansserifnormal",
+ "uppercasebold",
+ "uppercaseboldfraktur",
+ "uppercasedoublestruck",
+ "uppercasefraktur",
+ "uppercasegreekbold",
+ "uppercasegreeknormal",
+ "uppercasegreeksansserifbold",
+ "uppercasemonospace",
+ "uppercasenormal", -- they are italic!
+ "uppercasesansserifbold",
+ "uppercasesansserifnormal",
+ },
+ },
+ {
+ -- For non-italic alphabets we
+ -- remove italic correction.
+ tweak = "wipeitalics",
+ list = {
+ -- "digitsbold",
+ -- "digitsdoublestruck",
+ -- "digitsmonospace",
+ -- "digitsnormal",
+ -- "digitssansserifbold",
+ -- "digitssansserifnormal",
+ -- "lowercasebold",
+ -- "lowercaseboldfraktur",
+ -- "lowercasedoublestruck",
+ -- "lowercasefraktur",
+ "lowercasemonospace",
+ "lowercasenormal",
+ -- "lowercasesansserifbold",
+ -- "lowercasesansserifnormal",
+ -- "lowercasegreeknormal",
+ "uppercasebold",
+ -- "uppercaseboldfraktur",
+ -- "uppercasedoublestruck",
+ -- "uppercasefraktur",
+ -- "uppercasegreekbold",
+ -- "uppercasegreeknormal",
+ -- "uppercasegreeksansserifbold",
+ "uppercasemonospace",
+ "uppercasesansserifbold",
+ "uppercasesanserifnormal",
+ },
+ },
+ -- {
+ -- comment = "example"
+ -- tweak = "action",
+ -- action = function(target,original,parameters) mathematics.tweaks.fixdimensions(target, original, parameters)
+ -- list = fixes, -- one of the parameters
+ -- },
+ -- {
+ -- comment = "example"
+ -- tweak = "action",
+ -- action = mathematics.tweaks.fixdimensions,
+ -- list = fixes, -- one of the parameters
+ -- },
+ {
+ -- This one fakes margins to get larger/smaller accents
+ -- with for example \widetilde.
+ -- see lm for many examples
+ tweak = "margins",
+ list = {
+ },
+ },
+ -- {
+ -- tweak = "fixanchors",
+ -- factor = .5,
+ -- },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "addbars",
+ advance = 0.1,
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addequals",
+ },
+ {
+ tweak = "wipecues",
+ },
+ -- this is the mkiv section
+ {
+ tweak = "emulatelmtx",
+ feature = "emulatelmtx",
+ comment = "this is for mkiv",
+ },
+ },
+ },
+ bigslots = {
+ 1, 2, 3, 4
+ },
+ alternates = {
+ -- italic = { feature = 'ss01', value = 1, comment = "Mathematical Alternative Lowercase Italic" },
+ },
+ },
+}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/iwona-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/iwona-math.lfg
index f2fb6934154..815b9e1207b 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/iwona-math.lfg
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/iwona-math.lfg
@@ -1,5 +1,33 @@
-local msam = { name = "msam10.tfm", vector = "tex-ma" }
-local msbm = { name = "msbm10.tfm", vector = "tex-mb" }
+local common = fonts.goodies.load("common-math-jmn.lfg")
+local helpers = common.mathematics.helpers
+
+local badones = {
+ summationtext = .25,
+ producttext = .25,
+ integraltext = .25,
+ uniontext = .25,
+ intersectiontext = .25,
+ unionmultitext = .25,
+ logicalandtext = .25,
+ logicalortext = .25,
+ summationdisplay = .25,
+ productdisplay = .25,
+ integraldisplay = .25,
+ uniondisplay = .25,
+ intersectiondisplay = .25,
+ unionmultidisplay = .25,
+ logicalanddisplay = .25,
+ logicalordisplay = .25,
+ coproducttext = .25,
+ coproductdisplay = .25,
+}
+
+local uglyones = {
+ -- braceleft = true,
+ -- braceright = true,
+ vextendsingle = true,
+ vextenddouble = true,
+}
return {
name = "iwona-math",
@@ -13,45 +41,54 @@ return {
"iwona-mi.map",
"iwona-sy.map",
"iwona-ex.map",
- "mkiv-base.map",
+ -- "mkiv-base.map",
},
virtuals = {
["iwona-math"] = {
- { name = "file:Iwona-Regular", features = "virtualmath", main = true },
+ { name = "file:LatinModern-Math", features = "virtualmath-iwona", main = true, parameters = false },
+ --
+ { name = "rm-iwonar.tfm", vector = "tex-mr", skewchar=0x7F },
{ name = "mi-iwonari.tfm", vector = "tex-mi", skewchar=0x7F },
{ name = "mi-iwonari.tfm", vector = "tex-it", skewchar=0x7F },
- { name = "sy-iwonarz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
- { name = "ex-iwonar.tfm", vector = "tex-ex", extension = true } ,
- msam,
- msbm,
+ { name = "mi-iwonami.tfm", vector = "tex-bi", skewchar=0x7F },
+ { name = "rm-iwonam.tfm", vector = "tex-bf", skewchar=0x7F },
+ { name = "sy-iwonarz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
+ { name = "ex-iwonar.tfm", vector = "tex-ex", extension = true, badones = badones, ignore = uglyones },
},
["iwona-light-math"] = {
- { name = "file:IwonaLight-Regular", features = "virtualmath", main = true },
+ { name = "file:LatinModern-Math", features = "virtualmath-iwona-light", main = true, parameters = false },
+ --
+ { name = "rm-iwonal.tfm", vector = "tex-mr", skewchar=0x7F },
{ name = "mi-iwonali.tfm", vector = "tex-mi", skewchar=0x7F },
{ name = "mi-iwonali.tfm", vector = "tex-it", skewchar=0x7F },
- { name = "sy-iwonalz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
- { name = "ex-iwonal.tfm", vector = "tex-ex", extension = true } ,
- msam,
- msbm,
+ { name = "mi-iwonari.tfm", vector = "tex-bi", skewchar=0x7F },
+ { name = "rm-iwonar.tfm", vector = "tex-bf", skewchar=0x7F },
+ { name = "sy-iwonalz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
+ { name = "ex-iwonal.tfm", vector = "tex-ex", extension = true, badones = badones, ignore = uglyones },
},
["iwona-medium-math"] = {
- { name = "file:IwonaMedium-Regular", features = "virtualmath", main = true },
+ { name = "file:LatinModern-Math", features = "virtualmath-iwona-medium", main = true, parameters = false },
+ --
+ { name = "rm-iwonam.tfm", vector = "tex-mr", skewchar=0x7F },
{ name = "mi-iwonami.tfm", vector = "tex-mi", skewchar=0x7F },
{ name = "mi-iwonami.tfm", vector = "tex-it", skewchar=0x7F },
- { name = "sy-iwonamz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
- { name = "ex-iwonam.tfm", vector = "tex-ex", extension = true } ,
- msam,
- msbm,
+ { name = "mi-iwonabi.tfm", vector = "tex-bi", skewchar=0x7F },
+ { name = "rm-iwonab.tfm", vector = "tex-bf", skewchar=0x7F },
+ { name = "sy-iwonamz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
+ { name = "ex-iwonam.tfm", vector = "tex-ex", extension = true, badones = badones, ignore = uglyones },
},
["iwona-heavy-math"] = {
- { name = "file:IwonaHeavy-Regular", features = "virtualmath", main = true },
+ { name = "file:LatinModern-Math", features = "virtualmath-iwona-heavy", main = true, parameters = false },
+ --
+ { name = "rm-iwonah.tfm", vector = "tex-mr", skewchar=0x7F },
{ name = "mi-iwonahi.tfm", vector = "tex-mi", skewchar=0x7F },
{ name = "mi-iwonahi.tfm", vector = "tex-it", skewchar=0x7F },
- { name = "sy-iwonahz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true } ,
- { name = "ex-iwonah.tfm", vector = "tex-ex", extension = true } ,
- msam,
- msbm,
+ { name = "mi-iwonahi.tfm", vector = "tex-bi", skewchar=0x7F },
+ { name = "rm-iwonah.tfm", vector = "tex-bf", skewchar=0x7F },
+ { name = "sy-iwonahz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
+ { name = "ex-iwonah.tfm", vector = "tex-ex", extension = true, badones = badones, ignore = uglyones },
}
- }
+ },
+ addmissing = helpers.addmissing,
}
}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/koeielettersot.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/koeielettersot.lfg
new file mode 100644
index 00000000000..74bf2dd4966
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/koeielettersot.lfg
@@ -0,0 +1,16 @@
+return {
+ name = "koeielettersot",
+ version = "1.00",
+ comment = "Goodies that complement koeielettersot",
+ author = "Hans Hagen",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ rules = {
+ ["radical.extender"] = "radical.extender",
+ ["radical.end"] = "radical.end",
+ ["hrule.begin"] = "rule.begin",
+ ["hrule.extender"] = "rule.ex",
+ ["hrule.end"] = "rule.end",
+ }
+ }
+}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/kpfonts-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/kpfonts-math.lfg
new file mode 100644
index 00000000000..409b17cbc42
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/kpfonts-math.lfg
@@ -0,0 +1,146 @@
+-- This font is under active development so we don't want to tweek it too much
+-- before all issues are sorted out.
+
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
+
+return {
+ name = "kpfonts-math",
+ version = "1.00",
+ comment = "KP Fonts.",
+ author = "Hans Hagen & Mikael Sundqvist",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ parameters = {
+ AccentBaseDepth = 30,
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ PrimeShiftUp = "1.15*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.15*SuperscriptShiftUp",
+ SubscriptShiftDownWithSuperscript = "1.2*SubscriptShiftDown", -- unclear original value, trial and error
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 0.40",
+ },
+ {
+ tweak = "dimensions",
+ list = {
+ [0x2A3F] = { factor = 0.84625 }
+ },
+ },
+ {
+ tweak = "kerns",
+ list = {
+ [0x002F] = { topleft = -0.2, bottomright = -0.2 },
+ ["0x7D.parts.top"] = { topright = -0.25 }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.25 }, -- right brace bottom
+ ["0x7D.variants.*"] = { topright = -0.1, bottomright = -0.1 }, -- right brace variants
+ ["0x29.parts.top"] = { topright = -0.05 }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.05 }, -- right parenthesis bottom
+ ["0x29.variants.*"] = { topright = -0.05, bottomright = -0.05 }, -- right parenthesis variants
+ ["0x221A.parts.top"] = { topright = 0.2 }, -- right radical top
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 }, -- right radical bottom
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 }, -- right radical variants
+
+ },
+ },
+ {
+ tweak = "fixprimes",
+ factor = 0.86, -- accent base height
+ smaller = true, -- replace multiples
+ scale = 1, -- glyph scale
+ fake = 0.8, -- replace multiples with this width proportion
+ },
+ {
+ tweak = "addmirrors",
+ },
+ {
+ -- kpfonts have calligraphic at private slots
+ tweak = "replacealphabets",
+ list = {
+ {
+ source = "uppercasescript",
+ target = "uppercasecalligraphic",
+ },
+ {
+ source = { first = 0x0E7E1, last = 0x0E7FA },
+ target = "uppercasecalligraphic",
+ },
+ {
+ source = "uppercaseboldscript",
+ target = "uppercaseboldcalligraphic",
+ },
+ {
+ source = { first = 0x0E701, last = 0x0E71A },
+ target = "uppercaseboldcalligraphic",
+ },
+ },
+ },
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { rscale = 0.95 },
+ presets.rsfsuprighttoscript { rscale = 0.95 },
+ presets.moderntocalligraphic { rscale = 0.95 },
+ presets.eulertocalligraphic { rscale = 0.95 },
+ presets.xitsarabic { rscale = 0.92 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { factor = 1.4 },
+ presets.wipeitalics { },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "radicaldegreeanchors",
+ list = {
+ [0x221A] = { location = "left", hfactor = .0, vfactor = .75 },
+ ["0x221A.variants.*"] = { location = "left", hfactor = .0, vfactor = .55 },
+ ["0x221A.variants.1"] = { location = "left", hfactor = .0, vfactor = .6 },
+ ["0x221A.parts.bottom"] = { location = "left", hfactor = .0, vfactor = 0.65 },
+ }
+ },
+
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ -- This will be fixed. Check if new version comes out!
+ tweak = "addbars",
+ advance = 0.5,
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addequals",
+ },
+ {
+ tweak = "addfourier",
+ variant = 2,
+ },
+ {
+ tweak = "addprimed",
+ },
+ {
+ tweak = "setoptions",
+ set = { "ignorekerndimensions" }
+ },
+ },
+ },
+ alternates = {
+ -- italic = { feature = 'ss01', value = 1, comment = "Mathematical Alternative Lowercase Italic" },
+ },
+ bigslots = {
+ 1, 2, 3, 4
+ },
+ },
+}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/kurier-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/kurier-math.lfg
new file mode 100644
index 00000000000..22199251855
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/kurier-math.lfg
@@ -0,0 +1,94 @@
+local common = fonts.goodies.load("common-math-jmn.lfg")
+local helpers = common.mathematics.helpers
+
+local badones = {
+ summationtext = .25,
+ producttext = .25,
+ integraltext = .25,
+ uniontext = .25,
+ intersectiontext = .25,
+ unionmultitext = .25,
+ logicalandtext = .25,
+ logicalortext = .25,
+ summationdisplay = .25,
+ productdisplay = .25,
+ integraldisplay = .25,
+ uniondisplay = .25,
+ intersectiondisplay = .25,
+ unionmultidisplay = .25,
+ logicalanddisplay = .25,
+ logicalordisplay = .25,
+ coproducttext = .25,
+ coproductdisplay = .25,
+}
+
+local uglyones = {
+ -- braceleft = true,
+ -- braceright = true,
+ vextendsingle = true,
+ vextenddouble = true,
+}
+
+return {
+ name = "kurier-math",
+ version = "1.00",
+ comment = "Goodies that complement kurier math.",
+ author = "Hans Hagen",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ mapfiles = {
+ "kurier-rm.map",
+ "kurier-mi.map",
+ "kurier-sy.map",
+ "kurier-ex.map",
+ -- "mkiv-base.map",
+ },
+ virtuals = {
+ ["kurier-math"] = {
+ { name = "file:LatinModern-Math", features = "virtualmath-kurier", main = true, parameters = false },
+ --
+ { name = "rm-kurierr.tfm", vector = "tex-mr", skewchar=0x7F },
+ { name = "mi-kurierri.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "mi-kurierri.tfm", vector = "tex-it", skewchar=0x7F },
+ { name = "mi-kuriermi.tfm", vector = "tex-bi", skewchar=0x7F },
+ { name = "rm-kurierm.tfm", vector = "tex-bf", skewchar=0x7F },
+ { name = "sy-kurierrz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
+ { name = "ex-kurierr.tfm", vector = "tex-ex", extension = true, badones = badones, ignore = uglyones },
+ },
+ ["kurier-light-math"] = {
+ { name = "file:LatinModern-Math", features = "virtualmath-kurier-light", main = true, parameters = false },
+ --
+ { name = "rm-kurierl.tfm", vector = "tex-mr", skewchar=0x7F },
+ { name = "mi-kurierli.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "mi-kurierli.tfm", vector = "tex-it", skewchar=0x7F },
+ { name = "mi-kurierri.tfm", vector = "tex-bi", skewchar=0x7F },
+ { name = "rm-kurierr.tfm", vector = "tex-bf", skewchar=0x7F },
+ { name = "sy-kurierlz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
+ { name = "ex-kurierl.tfm", vector = "tex-ex", extension = true, badones = badones, ignore = uglyones },
+ },
+ ["kurier-medium-math"] = {
+ { name = "file:LatinModern-Math", features = "virtualmath-kurier-medium", main = true, parameters = false },
+ --
+ { name = "rm-kurierm.tfm", vector = "tex-mr", skewchar=0x7F },
+ { name = "mi-kuriermi.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "mi-kuriermi.tfm", vector = "tex-it", skewchar=0x7F },
+ { name = "mi-kurierhi.tfm", vector = "tex-bi", skewchar=0x7F },
+ { name = "rm-kurierh.tfm", vector = "tex-bf", skewchar=0x7F },
+ { name = "sy-kuriermz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
+ { name = "ex-kurierm.tfm", vector = "tex-ex", extension = true, badones = badones, ignore = uglyones },
+ },
+ ["kurier-heavy-math"] = {
+ { name = "file:LatinModern-Math", features = "virtualmath-kurier-heavy", main = true, parameters = false },
+ --
+ { name = "rm-kurierh.tfm", vector = "tex-mr", skewchar=0x7F },
+ { name = "mi-kurierhi.tfm", vector = "tex-mi", skewchar=0x7F },
+ { name = "mi-kurierhi.tfm", vector = "tex-it", skewchar=0x7F },
+ { name = "mi-kurierhi.tfm", vector = "tex-bi", skewchar=0x7F },
+ { name = "rm-kurierh.tfm", vector = "tex-bf", skewchar=0x7F },
+ { name = "sy-kurierhz.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
+ { name = "ex-kurierh.tfm", vector = "tex-ex", extension = true, badones = badones, ignore = uglyones },
+ }
+ },
+ addmissing = helpers.addmissing,
+ }
+}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/libertinus-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/libertinus-math.lfg
new file mode 100644
index 00000000000..6f707ed2b8f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/libertinus-math.lfg
@@ -0,0 +1,171 @@
+-- Well, here we have yet another math font that does things differently: a huge prime in the ssty1
+-- slot (not an alternate but a single) and a small one in the normal location. Actually, only primes
+-- have an ssty feature. Now, because we have some magic with primes in ConTeXt we cannot use some
+-- fix-feature or just disable ssty, but we have to revert to a runtime fix. Lucky me that I didn't
+-- remove that hardly needed 'tweaks' mechanism yet.
+
+
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
+
+return {
+ name = "libertinus-math",
+ version = "1.00",
+ comment = "Goodies that complement libertinus.",
+ author = "Hans Hagen & Mikael Sundqvist",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ parameters = {
+ FractionRuleThickness = 50,
+ OverbarRuleThickness = 50,
+ UnderbarRuleThickness = 50,
+ AccentTopShiftUp = -35,
+ FlattenedAccentTopShiftUp = -35,
+ AccentBaseDepth = 10,
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ PrimeShiftUp = "1.2*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.2*SuperscriptShiftUp",
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 7.040",
+ },
+ {
+ tweak = "addmirrors",
+ },
+ -- we have a weird middle integral piece
+ {
+ tweak = "dimensions",
+ list = {
+ [0x23AE] = { xoffset = -.19 },
+ },
+ },
+ {
+ tweak = "fixintegrals",
+ },
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { rscale = 0.97 },
+ presets.rsfsuprighttoscript { rscale = 0.97 },
+ presets.moderntocalligraphic { rscale = 0.97 },
+ presets.eulertocalligraphic { rscale = 0.97 },
+ presets.xitsarabic { rscale = 0.85 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { factor = 1.5 },
+ presets.wipeitalics { },
+ {
+ tweak = "simplifykerns",
+ },
+ {
+ tweak = "kerns",
+ list = {
+ [0x002F] = { topleft = -0.15, bottomright = -0.15 },
+ ["0x7D.parts.top"] = { topright = -0.2, }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.2 }, -- right brace bottom
+ ["0x29.parts.top"] = { topright = -0.15, }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.15 }, -- right parenthesis bottom
+ ["0x29.variants.*"] = { topright = -0.15, bottomright = -0.15 }, -- right parenthesis variants
+ ["0x221A.parts.top"] = { topright = 0.2, }, -- right radical top
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 }, -- right radical bottom
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 }, -- right radical variants
+ [0x27E9] = { topright = -0.1, bottomright = -0.1 }, -- angle
+ ["0x27E9.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ [0x27EB] = { topright = -0.1, bottomright = -0.1 },
+ ["0x27EB.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ --
+ [0x00393] = { bottomright = -0.30, }, -- upright Gamma
+ },
+ },
+ -- Accents are a mess. We migrate the extensibles from the combiners to the base accent
+ -- and then need to tweak the width (which is auto set because it was zero with a large
+ -- accent anchor offset). First we copy and fix.
+ {
+ tweak = "extendaccents",
+ },
+ {
+ tweak = "fixaccents",
+ },
+ -- First we set the dimensions of the initial accent which started out as zero but we want
+ -- a proper width.
+ {
+ tweak = "dimensions",
+ list = {
+ [0x00302] = { width = 1.8, anchor = 1.40, xoffset = .20 }, -- widehat
+ [0x00303] = { width = 2.0, anchor = 1.50, xoffset = .30 }, -- widetilde
+ [0x00306] = { width = 1.6, anchor = 1.30, xoffset = .15 }, -- widebreve
+ [0x0030C] = { width = 1.3, anchor = 1.15, xoffset = .075 }, -- widecheck
+ },
+ },
+ -- Then we deal with all offsets and heights in one go. So we treat the initial accent
+ -- as well as the variants here. None in libertinus.
+ -- We now copy these to the not wide slots so that we can set these to stretch as well,
+ -- if only because it is less confusing and more consistent.
+ {
+ tweak = "copyaccents",
+ },
+ -- So far for the accents.
+ {
+ tweak = "radicaldegreeanchors",
+ list = {
+ [0x221A] = { location = "left", hfactor = .0, vfactor = .625 },
+ ["0x221A.variants.*"] = { location = "left", hfactor = .0, vfactor = .5 },
+ ["0x221A.variants.1"] = { location = "left", hfactor = .0, vfactor = .55 },
+ ["0x221A.parts.bottom"] = { location = "left", hfactor = .0, vfactor = 1.15 },
+ }
+ },
+ {
+ tweak = "fixprimes",
+ factor = 0.92,
+ fake = 0.75,
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "addbars",
+ advance = 0.5,
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addequals",
+ },
+ {
+ tweak = "addfourier",
+ variant = 1,
+ },
+ {
+ tweak = "addprimed",
+ },
+ {
+ -- needed for integrals (bad axis) and (less prominent) fences
+ tweak = "setoptions",
+ set = { "ignorekerndimensions" }
+ },
+ -- this is the mkiv section
+ {
+ tweak = "emulatelmtx",
+ feature = "emulatelmtx",
+ comment = "this is for mkiv",
+ },
+ },
+ },
+ bigslots = {
+ 1, 3, 5, 7
+ },
+ },
+}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/lm-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/lm-math.lfg
index a0fd2c21c57..2f5a69e3643 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/lm-math.lfg
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/lm-math.lfg
@@ -235,6 +235,10 @@ return {
author = "Hans Hagen",
copyright = "ConTeXt development team",
mathematics = {
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 900,
+ },
mapfiles = {
"lm-math.map",
"lm-rm.map",
@@ -253,11 +257,5 @@ return {
variables = {
joinrelfactor = 3, -- default anyway
},
- parameters = { -- test values
- -- FactorA = 123.456,
- -- FactorB = false,
- -- FactorC = function(value,target,original) return 7.89 * target.factor end,
- -- FactorD = "Hi There!",
- },
}
}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/lm.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/lm.lfg
index ec37a2975a4..13023214a97 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/lm.lfg
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/lm.lfg
@@ -1,81 +1,22 @@
-- In order to be able to use beta math fonts, we use our own file name and
--- always remap.
-
-local kern_150 = { bottomright = { { kern = -150 } } }
-local kern_200 = { bottomright = { { kern = -200 } } }
+-- always remap (as there is no development we no longer do this).
return {
name = "latin modern",
version = "1.00",
comment = "Goodies that complement latin modern.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
- mathematics = {
- tweaks = {
- aftercopying = {
- mathematics.tweaks.fixbadprime, -- prime is too low
- -- mathematics.tweaks.fixoverline,
- },
- },
- kerns = {
- [0x1D449] = kern_150, --
- [0x1D44A] = kern_200, -- 𝑊
- },
- dimensions = {
- -- always applied
- -- default = {
- -- },
- -- driven by 'mathdimensions' feature
- default = {
- -- the root is quite displaced
- [0x221A] = {
- -- 73, -960, 853, 40
- yoffset = 960 - 40,
- height = 960,
- depth = 40,
- },
- -- [0xFE932] = { xoffset = 50, width = 290 }, -- used prime
- -- [0x2032] = { xoffset = 50, width = 290 }, -- prime
- },
- signs = {
- -- set dimensions
- -- [0x00B1] = { -- ±
- -- height = 500, depth = 0,
- -- },
- -- [0x2213] = { -- ∓
- -- height = 500, depth = 0,
- -- },
- -- move in boundingbox
- [0x00B1] = { -- ±
- yoffset = 100,
- },
- [0x2213] = { -- ∓
- yoffset = -100,
- },
- },
- },
--- parameters = {
--- FractionNumeratorDisplayStyleShiftUp = function(value,target,original)
--- local o = original.mathparameters.FractionNumeratorDisplayStyleShiftUp
--- if o > 675 then
--- o = 600
--- else
--- -- probably tuned
--- end
--- return o * target.parameters.factor
--- end,
--- }
- },
- filenames = {
- ["latinmodern-math-regular.otf"] = {
- "latinmodern-math.otf", -- the beta
- "lmmath-regular.otf",
- "latinmodernmath-regular.otf",
- "lmmath-regular.otf",
- "lmodernmath-regular.otf",
- "lmodern-math.otf",
- },
- },
+ -- filenames = {
+ -- ["latinmodern-math-regular.otf"] = {
+ -- "latinmodern-math.otf", -- the beta
+ -- "lmmath-regular.otf",
+ -- "latinmodernmath-regular.otf",
+ -- "lmmath-regular.otf",
+ -- "lmodernmath-regular.otf",
+ -- "lmodern-math.otf",
+ -- },
+ -- },
designsizes = {
["LMMathRoman-Regular"] = {
["4pt"] = "LMMath5-Regular@lmroman5-math",
@@ -262,3 +203,4 @@ return {
},
}
}
+
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/lucida-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/lucida-math.lfg
new file mode 100644
index 00000000000..64f53dc33f8
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/lucida-math.lfg
@@ -0,0 +1,225 @@
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
+
+local integral_variants = { bottomright = -0.20 }
+----- integral_top = { topright = 0.05 }
+local integral_bottom = { bottomright = -0.45 }
+
+return {
+ name = "lucida-opentype-math",
+ version = "1.00",
+ comment = "Goodies that complement lucida opentype.",
+ author = "Hans Hagen & Mikael Sundqvist",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ parameters = {
+ FractionRuleThickness = 55,
+ AccentBaseDepth = 250,
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ SuperscriptBottomMaxWithSubscript = 325,
+ PrimeShiftUp = "1.4*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.4*SuperscriptShiftUp",
+ PrimeBaselineDropMax = "0.5*SuperscriptBaselineDropMax",
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 1.901",
+ },
+ {
+ tweak = "fixoldschool",
+ version = "Version 1.802",
+ },
+{
+ tweak = "parameters",
+ feature = "boldmath",
+ list = {
+-- RadicalRuleThickness = 55,
+ RadicalRuleThickness = 60,
+-- RadicalRuleThickness = "1.09*RadicalRuleThickness",
+-- FractionRuleThickness = 65,
+-- OverRuleThickness = 65,
+-- UnderRuleThickness = 65,
+ }
+},
+ {
+ tweak = "addmirrors",
+ },
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { rscale = 1 },
+ presets.rsfsuprighttoscript { rscale = 1 },
+ presets.moderntocalligraphic { rscale = 1 },
+ presets.eulertocalligraphic { rscale = 1 },
+ presets.xitsarabic { rscale = 1.05 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { factor = 1.5 },
+ presets.wipeitalics { },
+ {
+ tweak = "replacealphabets",
+ list = {
+ {
+ source = "uppercasescript",
+ target = "uppercasecalligraphic",
+ feature = "ss04",
+ },
+ {
+ source = "lowercasescript",
+ target = "lowercasecalligraphic",
+ feature = "ss04",
+ },
+ {
+ source = "uppercaseboldscript",
+ target = "uppercaseboldcalligraphic",
+ feature = "ss04",
+ },
+ -- No lowercase bold calligraphic/script in font
+ },
+ },
+ {
+ tweak = "dimensions",
+ version = "Version 1.802",
+ list = {
+ -- The < and > are slightly too small. We scale them by 867/795
+ ["0x003C"] = { scale = 1.09057, width = 1.09057, height = 1.09057 },
+ ["0x003E"] = { scale = 1.09057, width = 1.09057, height = 1.09057 },
+ },
+ },
+ {
+ tweak = "dimensions",
+ version = "Version 1.802",
+ list = {
+ -- these we fix here. Remove when we have new version of Lucida
+ ["0x23DC.parts.1"] = { xoffset = -0.075, height = .4, yoffset = -0.6 },
+ ["0x23DC.parts.2"] = { height = .4, yoffset = -0.6 },
+ ["0x23DC.parts.3"] = { xoffset = 0.075, height = .4, yoffset = -0.6 },
+ ["0x23DD.parts.1"] = { xoffset = -0.075, depth = .8, yoffset = 0.2 },
+ ["0x23DD.parts.2"] = { depth = .8, yoffset = 0.2 },
+ ["0x23DD.parts.3"] = { xoffset = 0.075, depth = .8, yoffset = 0.2 },
+ ["0x7C.variants.3"] = { squeeze = 0.90, height = 0.90, depth = 0.90 },
+ ["0x7C.variants.4"] = { squeeze = 0.80, height = 0.80, depth = 0.80 },
+ },
+ },
+ -- Accents are a mess. We migrate the extensibles from the combiners to the base accent
+ -- and then need to tweak the width (which is auto set because it was zero with a large
+ -- accent anchor offset). First we copy and fix.
+ {
+ tweak = "extendaccents",
+ },
+ {
+ tweak = "radicaldegreeanchors",
+ list = {
+ ["0x221A.variants.3"] = { location = "left", hfactor = 0, vfactor = .55 },
+ ["0x221A.variants.4"] = { location = "left", hfactor = 0, vfactor = .50 },
+ ["0x221A.parts.bottom"] = { location = "left", hfactor = 0, vfactor = .85 },
+ }
+ },
+ {
+ tweak = "fixaccents",
+ },
+ -- First we set the dimensions of the initial accent which started out as zero but we want
+ -- a proper width. Not in lucida
+ -- Then we deal with all offsets and heights in one go. So we treat the initial accent
+ -- as well as the variants here. Not in lucida.
+ -- We now copy these to the not wide slots so that we can set these to stretch as well,
+ -- if only because it is less confusing and more consistent.
+ {
+ tweak = "copyaccents",
+ },
+ -- So far for the accents.
+ {
+ tweak = "fixslashes",
+ },
+ {
+ tweak = "addbreve",
+ },
+ {
+ tweak = "kerns",
+ list = {
+ [0x002F] = { topleft = -0.2, bottomright = -0.2 },
+ ["0x7D.parts.top"] = { topright = -0.15 }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.15 }, -- right brace bottom
+ ["0x7D.variants.*"] = { topright = -0.15, bottomright = -0.15 }, -- right brace variants
+ ["0x29.parts.top"] = { topright = -0.25 }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.25 }, -- right parenthesis bottom
+ ["0x29.variants.*"] = { topright = -0.2, bottomright = -0.2 }, -- right parenthesis variants
+ ["0x221A.parts.top"] = { topright = 0.2 }, -- right radical top
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 }, -- right radical bottom
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 }, -- right radical variants
+ [0x27E9] = { topright = -0.2, bottomright = -0.2 }, -- angle
+ ["0x27E9.variants.*"] = { topright = -0.3, bottomright = -0.3 },
+ [0x27EB] = { topright = -0.2, bottomright = -0.2 },
+ ["0x27EB.variants.*"] = { topright = -0.3, bottomright = -0.3 },
+ },
+ },
+ {
+ tweak = "fixprimes",
+ factor = 0.7, -- accent base height
+ fake = 0.65, -- replace multiples with this width proportion
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addfourier",
+ variant = 1,
+ },
+ {
+ tweak = "addprimed",
+ },
+ {
+ tweak = "addarrows",
+ left = 0.1,
+ right = 0.1,
+ slack = 0.20,
+ list = {
+ [0x21A9] = false,
+ [0x21AA] = false,
+ [0x2190] = false,
+ [0x2192] = false,
+ [0x219E] = false,
+ [0x21A0] = false,
+ }
+ },
+ -- this is the mkiv section
+ {
+ tweak = "emulatelmtx",
+ feature = "emulatelmtx",
+ comment = "this is for mkiv",
+ },
+ },
+ },
+ alternates = {
+ textitalic = { feature = 'ss01', value = 1, comment = "Mathematical Alternative Lowercase Italic" },
+ arrow = { feature = 'ss02', value = 1, comment = "Mathematical Alternative Smaller Arrows" },
+ operator = { feature = 'ss03', value = 1, comment = "Mathematical Alternative Smaller Operators" },
+ calligraphic = { feature = 'ss04', value = 1, comment = "Mathematical Alternative Calligraphic Characters" },
+ zero = { feature = 'ss05', value = 1, comment = "Mathematical Alternative Zero" },
+ multipledots = { feature = 'ss06', value = 1, comment = "Mathematical Alternative Multiple Dots" },
+ ldots = { feature = 'ss07', value = 1, comment = "Mathematical Alternative Ellipsis" },
+ },
+ bigslots = {
+ 1, 2, 3, 4
+ },
+ --
+ -- experimental fixes for mkiv:
+ --
+ dimensions = dimensions,
+ kerns = kerns,
+ },
+}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/lucida-opentype-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/lucida-opentype-math.lfg
deleted file mode 100644
index 7596f139add..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkiv/lucida-opentype-math.lfg
+++ /dev/null
@@ -1,51 +0,0 @@
------ kern_250 = { bottomright = { { kern = -250 } }, force = true }
-
--- RadicalVerticalGap = 50
--- RadicalDisplayStyleVerticalGap = 175
-
--- RadicalVerticalGap = 166
--- RadicalDisplayStyleVerticalGap = 345
-
-local function FixRadicalDisplayStyleVerticalGap(value,target,original)
- local o = original.mathparameters.RadicalVerticalGap -- 50
- return 2 * o * target.parameters.factor
-end
-
-return {
- name = "lucida-opentype-math",
- version = "1.00",
- comment = "Goodies that complement lucida opentype.",
- author = "Hans Hagen",
- copyright = "ConTeXt development team",
- mathematics = {
- parameters = {
- RadicalDisplayStyleVerticalGap = FixRadicalDisplayStyleVerticalGap,
- },
- alternates = {
- italic = { feature = 'ss01', value = 1, comment = "Mathematical Alternative Lowercase Italic" },
- arrow = { feature = 'ss02', value = 1, comment = "Mathematical Alternative Smaller Arrows" },
- operator = { feature = 'ss03', value = 1, comment = "Mathematical Alternative Smaller Operators" },
- calligraphic = { feature = 'ss04', value = 1, comment = "Mathematical Alternative Calligraphic Characters" },
- zero = { feature = 'ss05', value = 1, comment = "Mathematical Alternative Zero" },
- partial = { feature = 'ss20', value = 1, comment = "Mathematical Alternative Upright Partial Differential" },
- },
- -- kerns = {
- -- [0x1D449] = kern_250, --
- -- [0x1D44A] = kern_250, -- 𝑊
- -- },
- dimensions = {
- default = { -- experimental values
- [0x02044] = { xoffset = 275, width = 600 },
- -- primes
- [0xFE932] = { width = 200 },
- [0xFE933] = { width = 500 },
- [0xFE934] = { width = 800 },
- [0xFE935] = { width = 1100 },
- -- reverse primes
- [0xFE935] = { width = 200 },
- [0xFE936] = { width = 500 },
- [0xFE937] = { width = 800 },
- },
- },
- },
-}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/minion-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/minion-math.lfg
index 863836c1cc0..ab58d0dc6f2 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/minion-math.lfg
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/minion-math.lfg
@@ -1,11 +1,15 @@
-local kern_W = { bottomright = { { kern = -150 } } }
-local kern_V = { bottomright = { { kern = -200 } } }
+-- This math font has not yet been set up. We will only do that when those involved
+-- ConTeXt (math) develoipment have official copies of all the text minion and math
+-- fonts without restrictions of usage in documents.
+
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
return {
name = "minion-math",
version = "1.00",
comment = "Goodies that complement minion math.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
designsizes = {
["Minion-Math"] = {
@@ -21,10 +25,100 @@ return {
},
},
mathematics = {
- kerns = {
- [0x1D449] = kern_V, -- 𝑉
- [0x1D44A] = kern_W, -- 𝑊
- -- todo: ssty 1/2
+ parameters = {
+ SubscriptShiftDown = 200, -- 250 in font
+ SubscriptShiftDownWithSuperscript = "1.40*SubscriptShiftDown", -- 1.5* in math-act
+ PrimeShiftUp = "1.15*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.15*SuperscriptShiftUp",
+ },
+ tweaks = {
+ aftercopying = {
+ -- {
+ -- tweak = "version",
+ -- expected = "unknown", -- todo
+ -- },
+ {
+ tweak = "addmirrors",
+ },
+ presets.rsfstoscript { rscale = 0.97 },
+ presets.rsfsuprighttoscript { rscale = 0.97 },
+ presets.moderntocalligraphic { rscale = 0.97 },
+ presets.eulertocalligraphic { rscale = 0.97 },
+ presets.xitsarabic { rscale = 0.88 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { factor = 1.3 },
+ presets.wipeitalics { },
+
+ {
+ tweak = "kerns",
+ list = {
+ [0x002F] = { topleft = -0.2, bottomright = -0.2 },
+ ["0x002F.variants.*"] = { topleft = -0.2, bottomright = -0.2 },
+ --
+ [0x007D] = { topright = -0.05, bottomright = -0.05 }, -- right brace variants
+ ["0x7D.variants.*"] = { topright = -0.10, bottomright = -0.10 }, -- right brace variants
+ ["0x7D.parts.top"] = { topright = -0.10, }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.10 }, -- right brace bottom
+ [0x0029] = { topright = -0.15, bottomright = -0.15 }, -- right parenthesis variants
+ ["0x29.variants.*"] = { topright = -0.15, bottomright = -0.15 }, -- right parenthesis variants
+ ["0x29.parts.top"] = { topright = -0.15, }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.15 }, -- right parenthesis bottom
+ [0x221A] = { topright = 0.2, bottomright = 0.2 }, -- radical
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 },
+ ["0x221A.parts.top"] = { topright = 0.2, },
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 },
+ [0x27E9] = { topright = -0.1, bottomright = -0.1 }, -- angle
+ ["0x27E9.variants.*"] = { topright = -0.3, bottomright = -0.3 },
+ [0x27EB] = { topright = -0.1, bottomright = -0.1 },
+ ["0x27EB.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ -- Keep as example. not needed in cambria (after all it is the reference):
+ [0x2A0C] = { bottomright = -0.1 }, -- iiiint does not have any ic
+ },
+ },
+ {
+ tweak = "simplifykerns",
+ },
+ {
+ tweak = "extendaccents",
+ },
+ {
+ tweak = "radicaldegreeanchors",
+ list = {
+ [0x221A] = { location = "left", hfactor = -0.15, vfactor = .75 },
+ ["0x221A.variants.*"] = { location = "left", hfactor = -0.1, vfactor = .575 },
+ ["0x221A.variants.1"] = { location = "left", hfactor = -0.1, vfactor = .725 },
+ ["0x221A.variants.2"] = { location = "left", hfactor = -0.1, vfactor = .65 },
+ ["0x221A.variants.3"] = { location = "left", hfactor = -0.1, vfactor = .625 },
+ ["0x221A.variants.4"] = { location = "left", hfactor = -0.1, vfactor = .625 },
+ ["0x221A.parts.bottom"] = { location = "left", hfactor = -0.1, vfactor = 0.85 },
+ }
+ },
+ {
+ tweak = "fixaccents",
+ },
+ {
+ tweak = "copyaccents",
+ },
+ {
+ tweak = "fixprimes",
+ factor = 1,
+ },
+ {
+ tweak = "addfourier",
+ variant = 1,
+ },
+ {
+ tweak = "addprimed",
+ },
+ -- this is the mkiv section
+ {
+ tweak = "emulatelmtx",
+ feature = "emulatelmtx",
+ comment = "this is for mkiv",
+ },
+ },
},
},
}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/modern-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/modern-math.lfg
new file mode 100644
index 00000000000..4af740789f5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/modern-math.lfg
@@ -0,0 +1,355 @@
+-- In order to be able to use beta math fonts, we use our own file name and
+-- always remap.
+
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
+
+return {
+ name = "latin modern math",
+ version = "1.00",
+ comment = "Goodies that complement latin modern math.",
+ author = "Hans Hagen & Mikael Sundqvist",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ parameters = {
+ FractionNumeratorDisplayStyleShiftUp = 600, -- used to be a function
+ AccentTopShiftUp = -60,
+ FlattenedAccentTopShiftUp = -60,
+ AccentSuperscriptDrop = 100, -- drop the superscripts if accents are present. Amount in percentage of height of accent(?)
+ AccentSuperscriptPercent = 0,
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ SubscriptShiftDown = 150, -- 247 in font (multiplied to be consistent with cm)
+ SubscriptShiftDownWithSuperscript = 247, -- relates to the previous one (see math-act)
+ -- SubscriptTopMax = 344, -- 344 in font .8 exheight
+ -- SuperscriptBaselineDropMax = 386, -- 250 in font (multiplied by 4.6333/2.99 (values in cm/values in lm)) 0 means: align the baseline of the superscript at the (top)
+ SuperscriptBaselineDropMax = 0.6*431, -- 250 in font (multiplied by 4.6333/2.99 (values in cm/values in lm))
+ SubscriptBaselineDropMin = 0.1*431, -- 200 in font
+ -- SuperscriptBottomMaxWithSubscript = 344, -- 344 in font .8 exheight
+ -- SuperscriptBottomMin = 108, -- 108 in font .25 exheight
+ SuperscriptShiftUp = 413, -- 363 in font (multiplied with 4.9547/4.3536, got 413)
+ SuperscriptShiftUpCramped = 413, -- 289 in font (no distinction, old TeX)
+ PrimeShiftUp = "1.1*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.1*SuperscriptShiftUp",
+ -- PrimeRaisePercent = 0, -- set to 0 in math-act
+ -- PrimeRaiseComposedPercent = 0, -- set to 0 in math-act
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 1.958",
+ },
+ {
+ tweak = "addmirrors",
+ },
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { },
+ presets.rsfsuprighttoscript { },
+ presets.moderntocalligraphic { },
+ presets.eulertocalligraphic { },
+ presets.xitsarabic { rscale = 0.80 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { factor = 1.4, icfactor = 0.8 }, -- the icfactor is due to the very slanted integral.
+ presets.wipeanchors { },
+ presets.wipeitalics { },
+ {
+ tweak = "dimensions",
+ list = {
+ [0x1D487] = { anchor = 0.9 }, -- bold italic f
+ [0x1D489] = { anchor = 1.2 }, -- bold italic h
+ [0x1D48C] = { anchor = 1.2 }, -- bold italic k
+ [0x1D48F] = { anchor = 1.1 }, -- bold italic n
+ [0x1D491] = { anchor = 1.2 }, -- bold italic p
+ [0x1D492] = { anchor = 0.9 }, -- bold italic q
+ [0x1D49B] = { anchor = 0.9 }, -- bold italic z
+
+ [0x1D736] = { anchor = 0.9 }, -- bold italic alpha
+ [0x1D737] = { anchor = 0.9 }, -- bold italic beta
+ [0x1D738] = { anchor = 1.1 }, -- bold italic gamma
+ [0x1D740] = { anchor = 1.2 }, -- bold italic lambda
+ [0x1D744] = { anchor = 1.2 }, -- bold italic omicron
+
+ [0x1D6FE] = { anchor = 1.1 }, -- italic gamma
+ [0x1D702] = { anchor = 1.1 }, -- italic eta
+
+ [0x1D44F] = { anchor = 1.15 }, -- italic b
+ [0x1D451] = { anchor = 0.8, }, -- italic d
+ [0x1D455] = { anchor = 1.15 }, -- italic h
+ [0x1D458] = { anchor = 1.15 }, -- italic k
+ [0x1D45B] = { anchor = 1.1 }, -- italic n
+ [0x1D45D] = { anchor = 1.1 }, -- italic p
+ [0x1D45E] = { anchor = 0.9 }, -- italic q
+ [0x1D467] = { anchor = 0.9 }, -- italic z
+
+ [0x1D6FE] = { anchor = 1.2 }, -- italic gamma
+ [0x1D706] = { anchor = 1.2 }, -- italic lambda
+ [0x1D70A] = { anchor = 1.1 }, -- italic omikron
+ [0x1D70D] = { anchor = 1.1 }, -- italic varsigma
+
+ [0x1D46A] = { anchor = 0.75 }, -- bold italic C
+ [0x1D46B] = { anchor = 1.1 }, -- bold italic D
+ [0x1D46E] = { anchor = 0.75 }, -- bold italic G
+ [0x1D479] = { anchor = 1.2 }, -- bold italic R
+ [0x1D47A] = { anchor = 0.8 }, -- bold italic S
+ -- uppercaseboldscript could be improved
+ [0x1D435] = { anchor = 1.05 }, -- italic B
+ [0x1D436] = { anchor = 0.7 }, -- italic C
+ [0x1D437] = { anchor = 1.05 }, -- italic D
+ [0x1D43A] = { anchor = 0.8 }, -- italic G
+ [0x1D443] = { anchor = 1.1 }, -- italic P
+ [0x1D445] = { anchor = 1.05 }, -- italic R
+ [0x1D446] = { anchor = 0.85 }, -- italic S
+ [0x1D49C] = { anchor = 0.9 }, -- script A
+ [0x1D49D] = { anchor = 0.95 }, -- script B
+ [0x1D49E] = { anchor = 0.8 }, -- script C
+ [0x1D49F] = { anchor = 0.95 }, -- script D
+ [0x1D4A0] = { anchor = 0.85 }, -- script E
+ [0x1D4A1] = { anchor = 0.75 }, -- script F
+ [0x1D4A2] = { anchor = 0.9 }, -- script G
+ [0x1D4A3] = { anchor = 0.85 }, -- script H
+ [0x1D4A4] = { anchor = 0.8 }, -- script I
+ [0x1D4A5] = { anchor = 0.8 }, -- script J
+ [0x1D4A6] = { anchor = 0.85 }, -- script K
+ [0x1D4A7] = { anchor = 0.75 }, -- script L
+ [0x1D4A8] = { anchor = 0.9 }, -- script M
+ [0x1D4A9] = { anchor = 0.85 }, -- script N
+ [0x1D4AA] = { anchor = 0.95 }, -- script O
+ [0x1D4AB] = { anchor = 0.95 }, -- script P
+ [0x1D4AC] = { anchor = 0.95 }, -- script Q
+ [0x1D4AD] = { anchor = 0.95 }, -- script R
+ [0x1D4AE] = { anchor = 0.9 }, -- script S
+ [0x1D4AF] = { anchor = 0.75 }, -- script T
+ [0x1D4B0] = { anchor = 0.9, }, -- script U
+ [0x1D4B1] = { anchor = 0.95 }, -- script V
+ [0x1D4B2] = { anchor = 0.95 }, -- script W
+ [0x1D4B3] = { anchor = 0.95 }, -- script X
+ [0x1D4B4] = { anchor = 0.9 }, -- script Y
+ [0x1D4B5] = { anchor = 1 }, -- script Z
+ ["0x7C.variants.1"]={ squeeze = 0.90, height = 0.90, depth = 0.90 },
+ ["0x7C.variants.2"]={ squeeze = 0.85, height = 0.85, depth = 0.85 },
+ ["0x7C.variants.3"]={ squeeze = 0.80, height = 0.80, depth = 0.80 },
+ ["0x7C.variants.4"]={ squeeze = 0.80, height = 0.80, depth = 0.80 },
+ ["0x7C.variants.5"]={ squeeze = 0.80, height = 0.80, depth = 0.80 },
+ ["0x7C.variants.6"]={ squeeze = 0.80, height = 0.80, depth = 0.80 },
+ ["0x7C.variants.7"]={ squeeze = 0.80, height = 0.80, depth = 0.80 },
+ },
+ },
+ -- Accents are a mess. We migrate the extensibles from the combiners to the base accent
+ -- and then need to tweak the width (which is auto set because it was zero with a large
+ -- accent anchor offset). First we copy and fix.
+ {
+ tweak = "extendaccents",
+ },
+ {
+ tweak = "radicaldegreeanchors",
+ list = {
+ ["0x221A.parts.bottom"] = { location = "left", hfactor = 0.05, vfactor = 1.05 },
+ }
+ },
+ {
+ tweak = "fixaccents",
+ },
+ -- First we set the dimensions of the initial accent which started out as zero but we want
+ -- a proper width.
+ {
+ tweak = "dimensions",
+ list = {
+ [0x00302] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widehat
+ [0x00303] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widetilde
+ [0x00306] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widebreve
+ [0x0030C] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widecheck
+ },
+ },
+ -- Then we deal with all offsets and heights in one go. So we treat the initial accent
+ -- as well as the variants here.
+ {
+ tweak = "dimensions",
+ list = {
+ [0x020DB] = { yoffset = -0.015, height = .95, all = true }, -- widedddot : 0x20DB (self)
+ },
+ },
+ -- We now copy these to the not wide slots so that we can set these to stretch as well,
+ -- if only because it is less confusing and more consistent.
+ {
+ tweak = "copyaccents",
+ },
+ -- So far for the accents.
+ {
+ -- Here we modify "corner kerns".
+ -- We started with 0x2F, the solidus
+ -- to have the 2 in x^2/5 a bit over the slash
+ tweak = "kerns",
+ list = {
+ [0x0002F] = { topleft = -0.2, bottomright = -0.2 }, -- solidus
+ --
+ [0x1D49C] = { bottomright = -0.05, }, -- script A
+ [0x1D49D] = { bottomright = -0.05, }, -- script B
+ [0x1D49E] = { bottomright = -0.25, }, -- script C
+ [0x1D49F] = { bottomright = -0.11, }, -- script D
+ [0x1D4A0] = { bottomright = -0.18, }, -- script E
+ [0x1D4A1] = { bottomright = -0.30, }, -- script F
+ [0x1D4A2] = { bottomright = -0.11, }, -- script G
+ [0x1D4A3] = { bottomright = -0.18, }, -- script H
+ [0x1D4A4] = { bottomright = -0.25, }, -- script I
+ [0x1D4A5] = { bottomright = -0.25, }, -- script J
+ [0x1D4A6] = { bottomright = -0.11, }, -- script K
+ [0x1D4A7] = { bottomright = -0.05, }, -- script L
+ [0x1D4A8] = { bottomright = -0.11, }, -- script M
+ [0x1D4A9] = { bottomright = -0.18, }, -- script N
+ [0x1D4AA] = { bottomright = -0.05, }, -- script O
+ [0x1D4AB] = { bottomright = -0.25, }, -- script P
+ [0x1D4AC] = { bottomright = -0.05, }, -- script Q
+ [0x1D4AD] = { bottomright = -0.05, }, -- script R
+ [0x1D4AE] = { bottomright = -0.11, }, -- script S
+ [0x1D4AF] = { bottomright = -0.33, }, -- script T
+ [0x1D4B0] = { bottomright = -0.11, }, -- script U
+ [0x1D4B1] = { bottomright = -0.25, }, -- script V
+ [0x1D4B2] = { bottomright = -0.25, }, -- script W
+ [0x1D4B3] = { bottomright = -0.11, }, -- script X
+ [0x1D4B4] = { bottomright = -0.18, }, -- script Y
+ [0x1D4B5] = { bottomright = -0.05, }, -- script Z
+ --
+ [0x00393] = { bottomright = -0.20, }, -- upright Gamma
+ --
+ ["0x7D.parts.top"] = { topright = -0.25 }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.25 }, -- right brace bottom
+ ["0x7D.variants.*"] = { topright = -0.25, bottomright = -0.25 }, -- right brace variants
+ ["0x29.parts.top"] = { topright = -0.3, }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.3 }, -- right parenthesis bottom
+ ["0x29.variants.*"] = { topright = -0.15, bottomright = -0.15 }, -- right parenthesis variants
+ ["0x221A.parts.top"] = { topright = 0.2, }, -- right radical top
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 }, -- right radical bottom
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 }, -- right radical variants
+ [0x27E9] = { topright = -0.2, bottomright = -0.2 }, -- angles
+ ["0x27E9.variants.*"] = { topright = -0.3, bottomright = -0.3 },
+ [0x27EB] = { topright = -0.2, bottomright = -0.2 },
+ ["0x27EB.variants.*"] = { topright = -0.3, bottomright = -0.3 },
+
+ },
+ },
+ {
+ -- This one fakes margins to get larger/smaller accents
+ -- with for example \widetilde.
+ tweak = "margins",
+ list = {
+ [0x1D487] = { left = -.2, right = -.2 }, -- bold italic f
+ [0x1D489] = { left = -.2, right = -.2 }, -- bold italic h
+ [0x1D496] = { left = -.1, right = -.1 }, -- bold italic u
+ [0x1D499] = { left = -.1, right = -.1 }, -- bold italic x
+
+ [0x1D711] = { left = -.1, right = -.1 }, -- italic varphi
+ [0x1D713] = { left = -.1, right = -.1 }, -- italic psi
+
+ [0x1D659] = { left = -.1, right = -.1 }, -- sans bold italic d
+ [0x1D65C] = { left = -.1, right = -.1 }, -- sans bold italic g
+
+ [0x1D409] = { left = .1, right = .1 }, -- bold upright J
+ [0x1D412] = { left = .1, right = .1 }, -- bold upright S
+
+ [0x1D509] = { left = .1, right = .1 }, -- fraktur F
+ [0x1D50C] = { left = .1, right = .1 }, -- fraktur I
+ [0x1D50D] = { left = .1, right = .1 }, -- fraktur J
+ [0x1D51D] = { left = .1, right = .1 }, -- fraktur Z
+
+ [0x1D538] = { left = .1, right = .1 }, -- doublestruck A
+ [0x1D539] = { left = .1, right = .1 }, -- doublestruck B
+ [0x1D53C] = { left = .1, right = .1 }, -- doublestruck E
+ [0x1D53D] = { left = .1, right = .1 }, -- doublestruck F
+ [0x1D541] = { left = .1, right = .1 }, -- doublestruck J
+ [0x1D542] = { left = .1, right = .1 }, -- doublestruck K
+ [0x1D543] = { left = .1, right = .1 }, -- doublestruck L
+ [0x1D547] = { left = .1, right = .1 }, -- doublestruck P
+ [0x1D549] = { left = .1, right = .1 }, -- doublestruck R
+ [0x1D54A] = { left = .1, right = .1 }, -- doublestruck S
+ [0x1D54B] = { left = .1, right = .1 }, -- doublestruck T
+ [0x1D54D] = { left = .1, right = .1 }, -- doublestruck V
+ [0x1D550] = { left = .1, right = .1 }, -- doublestruck Y
+
+ [0x1D506] = { left = .1, right = .1 }, -- fraktur C
+
+ [0x00393] = { left = .1, right = .1 }, -- upfight Gamma
+ [0x00396] = { left = .1, right = .1 }, -- upfight Zeta
+
+ [0x1D5D8] = { left = .1, right = .1 }, -- sans bold E
+ [0x1D5D9] = { left = .1, right = .1 }, -- sans bold F
+ [0x1D5DF] = { left = .1, right = .1 }, -- sans bold L
+ [0x1D5E6] = { left = .1, right = .1 }, -- sans bold S
+
+ [0x1D61A] = { left = .1, right = .1 }, -- sans italic S
+
+ [0x1D5A2] = { left = .1, right = .1 }, -- sans C
+ [0x1D5A4] = { left = .1, right = .1 }, -- sans E
+ [0x1D5A5] = { left = .1, right = .1 }, -- sans F
+ [0x1D5AF] = { left = .1, right = .1 }, -- sans P
+ [0x1D5B2] = { left = .1, right = .1 }, -- sans S
+ [0x1D5B9] = { left = .1, right = .1 }, -- sans Z
+
+ [0x1D4A0] = { left = .1, right = .1 }, -- script E
+ [0x1D4AE] = { left = .1, right = .1 }, -- script S
+ [0x1D4B4] = { left = .1, right = .1 }, -- script Y
+
+ [0x0004C] = { left = .1, right = .1 }, -- L
+ [0x00053] = { left = .1, right = .1 }, -- S
+ [0x0005A] = { left = .1, right = .1 }, -- Z
+
+ [0x1D43D] = { left = -.1, right = -.1 }, -- italic J
+ [0x1D409] = { left = -.1, right = -.1 }, -- bold J
+ [0x1D471] = { left = -.1, right = -.1 }, -- bold italic J
+ [0x1D4D9] = { left = -.05, right = -.05 }, -- bold script J
+ },
+ },
+ {
+ tweak = "fixprimes",
+ factor = 0.825,
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "fixradicals",
+ },
+ {
+ tweak = "addprivates",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "addbars",
+ advance = 0.52,
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addfourier",
+ variant = 1,
+ },
+ {
+ tweak = "addprimed",
+ },
+ {
+ tweak = "addequals",
+ },
+ -- this is the mkiv section
+ {
+ tweak = "emulatelmtx",
+ feature = "emulatelmtx",
+ comment = "this is for mkiv",
+ },
+ },
+ },
+ bigslots = {
+ 1, 4, 6, 7 -- In fact, 7 is the last one.
+ },
+ },
+}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/newcomputermodern-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/newcomputermodern-math.lfg
new file mode 100644
index 00000000000..cae69aecc12
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/newcomputermodern-math.lfg
@@ -0,0 +1,345 @@
+-- In order to be able to use beta math fonts, we use our own file name and
+-- always remap. As this font is experimental we don't spend too much time
+-- on it now. Even then, we migth stick to design sizes only.
+
+local dimensions, kerns if CONTEXTLMTXMODE == 0 then
+
+ local kern_150 = { bottomright = { { kern = -150 } } }
+ local kern_200 = { bottomright = { { kern = -200 } } }
+
+ kerns = {
+ [0x1D449] = kern_150, --
+ [0x1D44A] = kern_200, -- 𝑊
+ }
+
+ dimensions = {
+ -- always applied
+ -- default = {
+ -- },
+ -- driven by 'mathdimensions' feature
+ default = {
+ -- the root is quite displaced
+ [0x221A] = {
+ -- 73, -960, 853, 40
+ yoffset = 960 - 40,
+ height = 960,
+ depth = 40,
+ },
+ -- [0xFE932] = { xoffset = 50, width = 290 }, -- used prime
+ -- [0x2032] = { xoffset = 50, width = 290 }, -- prime
+ },
+ -- -- seems ok now --
+ -- signs = {
+ -- -- [0x00B1] = { -- ±
+ -- -- height = 500, depth = 0,
+ -- -- },
+ -- -- [0x2213] = { -- ∓
+ -- -- height = 500, depth = 0,
+ -- -- },
+ -- -- move in boundingbox
+ -- [0x00B1] = { -- ±
+ -- yoffset = 100,
+ -- },
+ -- [0x2213] = { -- ∓
+ -- yoffset = -100,
+ -- },
+ -- },
+ }
+
+end
+
+return {
+ name = "newcomputermodern",
+ version = "1.00",
+ comment = "Goodies that complement newcomputermodern.",
+ author = "Hans Hagen & Mikael Sundqvist",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ parameters = {
+ -- Borrow values from lm:
+ FractionNumeratorDisplayStyleShiftUp = function(value,target,original)
+ local o = original.mathparameters.FractionNumeratorDisplayStyleShiftUp
+ if o > 675 then
+ o = 600
+ else
+ -- probably tuned
+ end
+ return o * target.parameters.factor
+ end,
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 1200,
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ SubscriptBaselineDropMin = 50, -- 200 in font (multiplied by 0.59999/2.39868)
+ SubscriptShiftDown = 150, -- 247 in font (multiplied to be consistent with cm)
+ SubscriptShiftDownWithSuperscript = 247, -- relates to the previous one (see math-act)
+ SuperscriptBaselineDropMax = 386, -- 250 in font (multiplied by 4.6333/2.99 (values in cm/values in lm))
+ SuperscriptShiftUp = 413, -- 363 in font (multiplied with 4.9547/4.3536, got 413)
+ SuperscriptShiftUpCramped = 413, -- 289 in font (no distinction, old TeX)
+ PrimeShiftUp = "1.1*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.1*SuperscriptShiftUp",
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 1.958",
+ },
+ {
+ tweak = "fixprimes",
+ factor = 0.825,
+ smaller = true,
+ fake = 0.6,
+ },
+ {
+ tweak = "kerns",
+ list = {
+ [0x0002F] = { topleft = -0.2, bottomright = -0.2 }, -- solidus
+ --
+ [0x00393] = { bottomright = -0.20, }, -- upright Gamma
+ --
+ ["0x7D.parts.top"] = { topright = -0.25 }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.25 }, -- right brace bottom
+ ["0x7D.variants.*"] = { topright = -0.25, bottomright = -0.25 }, -- right brace variants
+ ["0x29.parts.top"] = { topright = -0.3, }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.3 }, -- right parenthesis bottom
+ ["0x29.variants.*"] = { topright = -0.15, bottomright = -0.15 }, -- right parenthesis variants
+ ["0x221A.parts.top"] = { topright = 0.2, }, -- right radical top
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 }, -- right radical bottom
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 }, -- right radical variants
+ [0x27E9] = { topright = -0.2, bottomright = -0.2 }, -- angles
+ ["0x27E9.variants.*"] = { topright = -0.3, bottomright = -0.3 },
+ [0x27EB] = { topright = -0.2, bottomright = -0.2 },
+ ["0x27EB.variants.*"] = { topright = -0.3, bottomright = -0.3 },
+
+ },
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "fixradicals",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "addfourier",
+ variant = 1,
+ },
+ {
+ tweak = "addprimed",
+ },
+ },
+ },
+ bigs = {
+ 1, 3, 5, 7
+ },
+ --
+ -- experimental fixes for mkiv:
+ --
+ dimensions = dimensions,
+ kerns = kerns,
+ },
+ filenames = {
+ ["latinmodern-math-regular.otf"] = {
+ "latinmodern-math.otf", -- the beta
+ "lmmath-regular.otf",
+ "latinmodernmath-regular.otf",
+ "lmmath-regular.otf",
+ "lmodernmath-regular.otf",
+ "lmodern-math.otf",
+ },
+ },
+ designsizes = {
+ ["LMMathRoman-Regular"] = {
+ ["4pt"] = "LMMath5-Regular@lmroman5-math",
+ ["5pt"] = "LMMath5-Regular@lmroman5-math",
+ ["6pt"] = "LMMath6-Regular@lmroman6-math",
+ ["7pt"] = "LMMath7-Regular@lmroman7-math",
+ ["8pt"] = "LMMath8-Regular@lmroman8-math",
+ ["9pt"] = "LMMath9-Regular@lmroman9-math",
+ ["10pt"] = "LMMath10-Regular@lmroman10-math",
+ ["11pt"] = "LMMath10-Regular@lmroman10-math",
+ ["12pt"] = "LMMath12-Regular@lmroman12-math",
+ default = "LMMath10-Regular@lmroman10-math"
+ },
+ ["LMMathRoman-Bold"] = { -- not yet ready
+ ["4pt"] = "LMMath5-Regular@lmroman5-math",
+ ["5pt"] = "LMMath5-Regular@lmroman5-math",
+ ["6pt"] = "LMMath6-Regular@lmroman6-math",
+ ["7pt"] = "LMMath7-Regular@lmroman7-math",
+ ["8pt"] = "LMMath8-Regular@lmroman8-math",
+ ["9pt"] = "LMMath9-Regular@lmroman9-math",
+ ["10pt"] = "LMMath10-Regular@lmroman10-math",
+ ["11pt"] = "LMMath10-Regular@lmroman10-math",
+ ["12pt"] = "LMMath12-Regular@lmroman12-math",
+ default = "LMMath10-Regular@lmroman10-math"
+ },
+ ["LMRoman-Regular"] = {
+ ["4pt"] = "file:lmroman5-regular",
+ ["5pt"] = "file:lmroman5-regular",
+ ["6pt"] = "file:lmroman6-regular",
+ ["7pt"] = "file:lmroman7-regular",
+ ["8pt"] = "file:lmroman8-regular",
+ ["9pt"] = "file:lmroman9-regular",
+ ["10pt"] = "file:lmroman10-regular",
+ ["11pt"] = "file:lmroman10-regular",
+ ["12pt"] = "file:lmroman12-regular",
+ default = "file:lmroman10-regular",
+ },
+ ["LMRoman-Bold"] = {
+ ["4pt"] = "file:lmroman5-bold",
+ ["5pt"] = "file:lmroman5-bold",
+ ["6pt"] = "file:lmroman6-bold",
+ ["7pt"] = "file:lmroman7-bold",
+ ["8pt"] = "file:lmroman8-bold",
+ ["9pt"] = "file:lmroman9-bold",
+ ["10pt"] = "file:lmroman10-bold",
+ ["11pt"] = "file:lmroman10-bold",
+ ["12pt"] = "file:lmroman12-bold",
+ default = "file:lmroman10-bold",
+ },
+ ["LMRoman-Demi"] = {
+ default = "file:lmromandemi10-regular",
+ },
+ ["LMRoman-Italic"] = {
+ ["4pt"] = "file:lmroman7-italic",
+ ["5pt"] = "file:lmroman7-italic",
+ ["6pt"] = "file:lmroman7-italic",
+ ["7pt"] = "file:lmroman7-italic",
+ ["8pt"] = "file:lmroman8-italic",
+ ["9pt"] = "file:lmroman9-italic",
+ ["10pt"] = "file:lmroman10-italic",
+ ["11pt"] = "file:lmroman10-italic",
+ ["12pt"] = "file:lmroman12-italic",
+ default = "file:lmroman10-italic",
+ },
+ ["LMRoman-Oblique"] = {
+ ["4pt"] = "file:lmromanslant8-regular",
+ ["5pt"] = "file:lmromanslant8-regular",
+ ["6pt"] = "file:lmromanslant8-regular",
+ ["7pt"] = "file:lmromanslant8-regular",
+ ["8pt"] = "file:lmromanslant8-regular",
+ ["9pt"] = "file:lmromanslant9-regular",
+ ["10pt"] = "file:lmromanslant10-regular",
+ ["11pt"] = "file:lmromanslant10-regular",
+ ["12pt"] = "file:lmromanslant12-regular",
+ default = "file:lmromanslant10-regular",
+ },
+ ["LMRoman-BoldItalic"] = {
+ default = "file:lmroman10-bolditalic",
+ },
+ ["LMRoman-BoldOblique"] = {
+ default = "file:lmromanslant10-bold",
+ },
+ ["LMRoman-DemiOblique"] = {
+ default = "file:lmromandemi10-oblique",
+ },
+ ["LMRoman-CapsRegular"] = {
+ default = "file:lmromancaps10-regular",
+ },
+ ["LMRoman-CapsOblique"] = {
+ default = "file:lmromancaps10-oblique",
+ },
+ ["LMRoman-Dunhill"] = {
+ default = "file:lmromandunh10-regular",
+ },
+ ["LMRoman-DunhillOblique"] = {
+ default = "file:lmromandunh10-oblique",
+ },
+ ["LMRoman-Unslanted"] = {
+ default = "file:lmromanunsl10-regular",
+ },
+ ["LMSans-Regular"] = {
+ ["8pt"] = "file:lmsans8-regular",
+ ["9pt"] = "file:lmsans9-regular",
+ ["10pt"] = "file:lmsans10-regular",
+ ["11pt"] = "file:lmsans10-regular",
+ ["12pt"] = "file:lmsans12-regular",
+ default = "file:lmsans10-regular",
+ },
+ ["LMSans-Oblique"] = {
+ ["8pt"] = "file:lmsans8-oblique",
+ ["9pt"] = "file:lmsans9-oblique",
+ ["10pt"] = "file:lmsans10-oblique",
+ ["11pt"] = "file:lmsans10-oblique",
+ ["12pt"] = "file:lmsans12-oblique",
+ default = "file:lmsans10-oblique",
+ },
+ ["LMSans-Bold"] = {
+ default = "file:lmsans10-bold",
+ },
+ ["LMSans-BoldOblique"] = {
+ default = "file:lmsans10-boldoblique",
+ },
+ ["LMSans-DemiCondensed"] = {
+ default = "file:lmsansdemicond10-regular",
+ },
+ ["LMSans-DemiCondensedOblique"] = {
+ default = "file:lmsansdemicond10-oblique",
+ },
+ ["LMTypewriter-Regular"] = {
+ ["8pt"] = "file:lmmono8-regular",
+ ["9pt"] = "file:lmmono9-regular",
+ ["10pt"] = "file:lmmono10-regular",
+ ["11pt"] = "file:lmmono10-regular",
+ ["12pt"] = "file:lmmono12-regular",
+ default = "file:lmmono10-regular",
+ },
+ ["LMTypewriter-Light"] = {
+ default = "file:lmmonolt10-regular",
+ },
+ ["LMTypewriter-Dark"] = {
+ default = "file:lmmonolt10-bold",
+ },
+ ["LMTypewriter-Italic"] = {
+ default = "file:lmmono10-italic",
+ },
+ ["LMTypewriter-LightOblique"] = {
+ default = "file:lmmonolt10-oblique",
+ },
+ ["LMTypewriter-Oblique"] = {
+ default = "file:lmmonoslant10-regular",
+ },
+ ["LMTypewriter-DarkOblique"] = {
+ default = "file:lmmonolt10-boldoblique",
+ },
+ ["LMTypewriter-LightCondensed"] = {
+ default = "file:lmmonoltcond10-regular",
+ },
+ ["LMTypewriter-LightCondensedOblique"] = {
+ default = "file:lmmonoltcond10-oblique",
+ },
+ ["LMTypewriterVarWd-Regular"] = {
+ default = "file:lmmonoproplt10-regular",
+ },
+ ["LMTypewriterVarWd-Oblique"] = {
+ default = "file:lmmonoproplt10-oblique",
+ },
+ ["LMTypewriterVarWd-Light"] = {
+ default = "file:lmmonoprop10-regular",
+ },
+ ["LMTypewriterVarWd-LightOblique"] = {
+ default = "file:lmmonoprop10-oblique",
+ },
+ ["LMTypewriterVarWd-Dark"] = {
+ default = "file:lmmonoproplt10-bold",
+ },
+ ["LMTypewriterVarWd-DarkOblique"] = {
+ default = "file:lmmonoproplt10-boldoblique",
+ },
+ ["LMTypewriter-CapsRegular"] = {
+ default = "file:lmmonocaps10-regular",
+ },
+ ["LMTypewriter-CapsOblique"] = {
+ default = "file:lmmonocaps10-oblique",
+ },
+ }
+}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/pagella-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/pagella-math.lfg
index d4ae1416288..c1d0c7dd5c2 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/pagella-math.lfg
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/pagella-math.lfg
@@ -1,34 +1,230 @@
-local kern_V = { bottomright = { { kern = -200 } } }
-local kern_W = { bottomright = { { kern = -100 } } }
-local offset_f = { xoffset = "llx" }
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
--- Beware of updates in ssty slots!
+local integral_variants = { bottomright = -0.20 }
+----- integral_top = { topright = 0.05 }
+local integral_bottom = { bottomright = -0.20 }
return {
name = "pagella-math",
version = "1.00",
comment = "Goodies that complement pagella.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
- dimensions = {
- default = {
- -- [0x1D453] = { xoffset = 162, width = 278 + 162 },-- 𝑓
- -- [0x1D453] = offset_f, -- 𝑓
- -- ["1:0x1D453"] = offset_f, -- needed for compact
- -- ["2:0x1D453"] = offset_f, -- needed for compact
- ["*:0x1D453"] = offset_f, -- 𝑓
+ parameters = {
+ AccentTopShiftUp = 10,
+ FlattenedAccentTopShiftUp = 10,
+ AccentBaseDepth = 80,
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ DisplayOperatorMinHeight = 1800, -- 1500 in font
+ SuperscriptShiftUp = 386, -- 354 in font
+ SubscriptShiftDown = 200, -- 232 in font
+ SubscriptShiftDownWithSuperscript = "1.4*SubscriptShiftDown", -- 1.5* in math-act
+ PrimeShiftUp = "1.3*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.3*SuperscriptShiftUp",
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 1.632",
+ },
+ {
+ tweak = "fixprimes",
+ factor = 0.8,
+ },
+ {
+ tweak = "replacealphabets",
+ feature = "euleroverpagella",
+ filename = "euler-math.otf",
+ list = {
+ { source = { first = 0x02100, last = 0x02BFF } },
+ { source = { first = 0x1D400, last = 0x1D7FF } },
+ { source = { first = 0x1D538, last = 0x1D550 } },
+ },
+ },
+ {
+ tweak = "addmirrors",
+ },
+ {
+ tweak = "fixoldschool",
+ feature = "euleroverpagella",
+ },
+
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { },
+ presets.rsfsuprighttoscript { },
+ presets.moderntocalligraphic { },
+ presets.eulertocalligraphic { },
+ presets.xitsarabic { rscale = 0.95 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { factor = 1.5 }, -- we need to check the 1.5
+ presets.wipeanchors { },
+ presets.wipeitalics { },
+ {
+ tweak = "parameters",
+ feature = "euleroverpagella",
+ list = {
+ RadicalRuleThickness = 54,
+ }
+ },
+ {
+ tweak = "setovershoots",
+ list = {
+ {
+ target = "uppercasescript",
+ -- quad = true, -- to be decided
+ topovershoot = 0.05,
+ },
+ {
+ target = "uppercaseboldscript",
+ -- quad = true, -- to be decided
+ topovershoot = 0.05,
+ },
+ },
+ },
+ -- Accents are a mess. We migrate the extensibles from the combiners to the base accent
+ -- and then need to tweak the width (which is auto set because it was zero with a large
+ -- accent anchor offset). First we copy and fix.
+ {
+ tweak = "extendaccents",
+ },
+ {
+ tweak = "radicaldegreeanchors",
+ list = {
+ ["0x221A.parts.bottom"] = { location = "left", hfactor = 0.0, vfactor = 1.1 },
+ }
+ },
+ {
+ tweak = "fixaccents",
+ },
+ -- First we set the dimensions of the initial accent which started out as zero but we want
+ -- a proper width.
+ {
+ tweak = "dimensions",
+ list = {
+ [0x00300] = { width = 0.9 }, -- widegrave
+ [0x00301] = { width = 0.9 }, -- wideacute
+ [0x00302] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widehat
+ [0x00303] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widetilde
+ [0x00306] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widebreve
+ [0x0030A] = { width = 0.9, xoffset = -.0 }, -- widering -- weird this one
+ [0x0030C] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widecheck
+ },
+ },
+ -- Then we deal with all offsets and heights in one go. So we treat the initial accent
+ -- as well as the variants here.
+ {
+ tweak = "dimensions",
+ list = {
+ -- here we want to apply to all
+ [0x020DB] = { yoffset = -0.01, height = .95, all = true }, -- widedddot : 0x20DB (self)
+ },
+ },
+ -- We now copy these to the not wide slots so that we can set these to stretch as well,
+ -- if only because it is less confusing and more consistent.
+ {
+ tweak = "copyaccents",
+ },
+ -- So far for the accents.
+ {
+ tweak = "fixslashes",
+ },
+ {
+ tweak = "kerns",
+ list = {
+ [0x002F] = { topleft = -0.2, bottomright = -0.2 },
+ --
+ ["0x7D.parts.top"] = { topright = -0.15, }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.15 }, -- right brace bottom
+ ["0x7D.variants.*"] = { topright = -0.15, bottomright = -0.15 }, -- right brace variants
+ ["0x29.parts.top"] = { topright = -0.25, }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.25 }, -- right parenthesis bottom
+ ["0x29.variants.*"] = { topright = -0.2, bottomright = -0.2 }, -- right parenthesis variants
+ ["0x221A.parts.top"] = { topright = 0.2, }, -- right radical top
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 }, -- right radical bottom
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 }, -- right radical variants
+ -- angle
+ [0x27E9] = { topright = -0.2, bottomright = -0.2 },
+ ["0x27E9.variants.*"] = { topright = -0.3, bottomright = -0.3 },
+ [0x27EB] = { topright = -0.2, bottomright = -0.2 },
+ ["0x27EB.variants.*"] = { topright = -0.3, bottomright = -0.3 },
+ --
+ [0x00393] = { bottomright = -0.20, }, -- upright Gamma
+ --
+ ["0x222B.parts.bottom"] = { bottomright = -0.20 }, -- int
+ ["0x222C.parts.bottom"] = { bottomright = -0.15 }, -- iint
+ ["0x222D.parts.bottom"] = { bottomright = -0.10 }, -- iiint
+ ["0x2A0C.parts.bottom"] = { bottomright = -0.05 }, -- iiiint
+ },
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "addprivates",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "addarrows",
+ },
+ {
+ tweak = "addbars",
+ advance = 0.2,
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addequals",
+ },
+ {
+ tweak = "addfourier",
+ variant = 1,
+ },
+ {
+ tweak = "addprimed",
+ },
+ {
+ tweak = "kernpairs",
+ list = {
+ -- beware: we kept the italic correction in spite of punctuation class
+ [0x1D453] = { -- f
+ [0x3A] = -.1,
+ [0x3B] = -.1,
+ },
+ },
+ },
+ -- this is the mkiv section
+ {
+ tweak = "emulatelmtx",
+ feature = "emulatelmtx",
+ comment = "this is for mkiv",
+ },
+ {
+ tweak = "parameters",
+ feature = "emulatelmtx",
+ comment = "this is for mkiv",
+ list = {
+ AccentBaseHeight = 400,
+ }
+ },
},
},
- kerns = {
- -- [0x1D449] = kern_V, -- 𝑉
- -- ["1:0x1D449"] = kern_V, -- needed for compact
- -- ["2:0x1D449"] = kern_V, -- needed for compact
- -- [0x1D44A] = kern_W, -- 𝑊
- -- ["1:0x1D44A"] = kern_W, -- needed for compact
- -- ["2:0x1D44A"] = kern_W, -- needed for compact
- ["*:0x1D449"] = kern_V, -- 𝑉
- ["*:0x1D44A"] = kern_W, -- 𝑊
+ bigslots = {
+ 1, 3, 5, 7
},
alternates = {
dotless = { feature = 'dtls', value = 1, comment = "Mathematical Dotless Forms" },
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/schola-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/schola-math.lfg
index b60bc6d99f9..e4a3ad39796 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/schola-math.lfg
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/schola-math.lfg
@@ -1,24 +1,148 @@
-local kern_V = { bottomright = { { kern = -200 } }, topright = { { kern = 50 } } }
-local kern_W = { bottomright = { { kern = -100 } }, topright = { { kern = 50 } } }
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
--- Beware of updates in ssty slots!
+local integral_variants = { bottomright = -0.20 }
+local integral_bottom = { bottomright = -0.20 }
return {
name = "schola-math",
version = "1.00",
comment = "Goodies that complement schola.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
- kerns = {
- -- [0x1D449] = kern_V, -- 𝑉
- -- ["1:0x1D449"] = kern_V, -- needed for compact
- -- ["2:0x1D449"] = kern_V, -- needed for compact
- -- [0x1D44A] = kern_W, -- 𝑊
- -- ["1:0x1D44A"] = kern_W, -- needed for compact
- -- ["2:0x1D44A"] = kern_W, -- needed for compact
- ["*:0x1D449"] = kern_V, -- 𝑉
- ["*:0x1D44A"] = kern_W, -- 𝑊
+ parameters = {
+ AccentTopShiftUp = -15,
+ FlattenedAccentTopShiftUp = -15,
+ AccentBaseDepth = 30,
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ DisplayOperatorMinHeight = 1800, -- 1333 in font
+ PrimeShiftUp = "1.35*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.35*SuperscriptShiftUp",
+ -- Can be improved: Smaller script and scriptscript, modified SuperShiftUp and SubShiftDown, ...
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 1.533",
+ },
+ {
+ tweak = "fixprimes",
+ factor = 0.74,
+ },
+ {
+ tweak = "addmirrors",
+ },
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { },
+ presets.rsfsuprighttoscript { },
+ presets.moderntocalligraphic { },
+ presets.eulertocalligraphic { },
+ presets.xitsarabic { rscale = 0.93 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { },
+ presets.wipeitalics { },
+ {
+ tweak = "kerns",
+ list = {
+ [0x002F] = { topleft = -0.2, bottomright = -0.2 },
+ ["0x7D.parts.top"] = { topright = -0.15, }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.15 }, -- right brace bottom
+ ["0x7D.variants.*"] = { topright = -0.15, bottomright = -0.15 }, -- right brace variants
+ ["0x29.parts.top"] = { topright = -0.25, }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.25 }, -- right parenthesis bottom
+ ["0x29.variants.*"] = { topright = -0.2, bottomright = -0.2 }, -- right parenthesis variants
+ ["0x221A.parts.top"] = { topright = 0.2, }, -- right radical top
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 }, -- right radical bottom
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 }, -- right radical variants
+ [0x27E9] = { topright = -0.1, bottomright = -0.1 }, -- angle
+ ["0x27E9.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ [0x27EB] = { topright = -0.1, bottomright = -0.1 },
+ ["0x27EB.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ --
+ ["0x222B.parts.bottom"] = { bottomright = -0.20 }, -- int
+ ["0x222C.parts.bottom"] = { bottomright = -0.15 }, -- iint
+ ["0x222D.parts.bottom"] = { bottomright = -0.10 }, -- iiint
+ ["0x2A0C.parts.bottom"] = { bottomright = -0.05 }, -- iiiint
+ },
+ },
+
+ -- Accents are a mess. We migrate the extensibles from the combiners to the base accent
+ -- and then need to tweak the width (which is auto set because it was zero with a large
+ -- accent anchor offset). First we copy and fix.
+ {
+ tweak = "extendaccents",
+ },
+ {
+ tweak = "radicaldegreeanchors",
+ list = {
+ ["0x221A.parts.bottom"] = { location = "left", hfactor = 0.05, vfactor = 1.1 },
+ }
+ },
+ {
+ tweak = "fixaccents",
+ },
+ -- First we set the dimensions of the initial accent which started out as zero but we want
+ -- a proper width.
+ {
+ tweak = "dimensions",
+ list = {
+ [0x00302] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widehat
+ [0x00303] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widetilde
+ [0x00306] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widebreve
+ [0x0030C] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widecheck
+ },
+ },
+ -- Then we deal with all offsets and heights in one go. So we treat the initial accent
+ -- as well as the variants here. Not in schola
+ -- We now copy these to the not wide slots so that we can set these to stretch as well,
+ -- if only because it is less confusing and more consistent.
+ {
+ tweak = "copyaccents",
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "addbars",
+ advance = 0.27,
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addequals",
+ },
+ {
+ tweak = "addfourier",
+ variant = 1,
+ },
+ {
+ tweak = "addprimed",
+ },
+ -- this is the mkiv section
+ {
+ tweak = "emulatelmtx",
+ feature = "emulatelmtx",
+ comment = "this is for mkiv",
+ },
+ },
+ },
+ bigslots = {
+ 1, 3, 5, 7
},
alternates = {
dotless = { feature = 'dtls', value = 1, comment = "Mathematical Dotless Forms" },
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/stix-two-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/stix-two-math.lfg
deleted file mode 100644
index 8d9c9c71a1f..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkiv/stix-two-math.lfg
+++ /dev/null
@@ -1,66 +0,0 @@
--- Bah, I really hate these patches especially because one needs to make
--- sure that they are still valid when the font gets updated. So, let's
--- do it runtime (not in the cached copy) and issue a warning every run.
--- As we cannot rely on version numbers (if we have more patches) we
--- check for values instead.
---
--- This font also has inconsistent italics in smaller sizes which we can
--- fix in a more general way but I'm not sure if we want that.
-
-local function fix_italic(target,original,name,value,factor)
- local m = target.parameters.mathsize
- if m then
- local u = type(name) == "number" and name or original.resources.unicodes[name]
- if u then
- local c = target.characters[u]
- if c then
- local i = c.italic
- if i then
- local d = original.descriptions[u]
- if d and d.math.italic == value then
- if m then
- logs.report("patching font","fixing italic correction of %U at math size %i by %0.3f",u,m,factor)
- c.italic = factor * i
- end
- end
- end
- end
- end
- end
-end
-
-return {
- name = "stix-two-math",
- version = "1.00",
- comment = "Goodies that complement stix two opentype.",
- author = "Hans Hagen",
- copyright = "ConTeXt development team",
- mathematics = {
- -- these tags are suggestions and can still change
- alternates = {
- calligraphic = { feature = 'ss01', value = 1, comment = "Mathematical Alternative Calligraphic Characters" },
- italic = { feature = 'ss02', value = 1, comment = "Mathematical Alternative Lowercase Italic" },
- barred = { feature = 'ss03', value = 1, comment = "Mathematical Alternative Barred Characters" }, -- hbar, lambdabar etc
- primes = { feature = 'ss04', value = 1, comment = "Mathematical Alternative Primes" }, -- larger/lower primes, minute etc
- arrow = { feature = 'ss05', value = 1, comment = "Mathematical Alternative Smaller Arrows" },
- narrower = { feature = 'ss06', value = 1, comment = "Mathematical Alternative Narrower Elements" }, -- narrower/shorter element etc
- small = { feature = 'ss07', value = 1, comment = "Mathematical Alternative Smaller Operators" },
- upright = { feature = 'ss08', value = 1, comment = "Mathematical Alternative Upright Symbols" }, -- upright integrals etc.
- negated = { feature = 'ss09', value = 1, comment = "Mathematical Alternative Negated Symbols" },
- relation = { feature = 'ss10', value = 1, comment = "Mathematical Alternative Relations" },
- negatedset = { feature = 'ss09', value = 1, comment = "Mathematical Alternative Negated Set Symbols" },
- -- todo = { feature = 'ss14', value = 1, comment = "" },
- circled = { feature = 'ss16', value = 1, comment = "Mathematical Alternative Circled Operators" },
- },
- tweaks = {
- aftercopying = {
- function(target,original)
- fix_italic(target,original,"uni222B.updsp",80,3.5)
- fix_italic(target,original,"uni222B.up", 80,2.5)
- end,
- },
- },
- },
-}
-
-
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/stixtwo-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/stixtwo-math.lfg
new file mode 100644
index 00000000000..b6b1757b6c1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/stixtwo-math.lfg
@@ -0,0 +1,207 @@
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
+
+local integral_variants = { bottomright = -0.4 }
+----- integral_top = { topright = 0.05 }
+local integral_bottom = { bottomright = -0.35 }
+
+return {
+ name = "stix-two-math",
+ version = "1.00",
+ comment = "Goodies that complement stix two opentype.",
+ author = "Hans Hagen & Mikael Sundqvist",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ alternates = {
+ calligraphic = { feature = 'ss01', value = 1, comment = "Mathematical Alternative Calligraphic Characters" },
+ italic = { feature = 'ss02', value = 1, comment = "Mathematical Alternative Lowercase Italic" },
+ barred = { feature = 'ss03', value = 1, comment = "Mathematical Alternative Barred Characters" }, -- hbar, lambdabar etc
+ primes = { feature = 'ss04', value = 1, comment = "Mathematical Alternative Primes" }, -- larger/lower primes, minute etc
+ arrow = { feature = 'ss05', value = 1, comment = "Mathematical Alternative Smaller Arrows" },
+ narrower = { feature = 'ss06', value = 1, comment = "Mathematical Alternative Narrower Elements" }, -- narrower/shorter element etc
+ small = { feature = 'ss07', value = 1, comment = "Mathematical Alternative Smaller Operators" },
+ upright = { feature = 'ss08', value = 1, comment = "Mathematical Alternative Upright Symbols" }, -- upright integrals etc.
+ negated = { feature = 'ss09', value = 1, comment = "Mathematical Alternative Negated Symbols" },
+ relation = { feature = 'ss10', value = 1, comment = "Mathematical Alternative Relations" },
+ negatedset = { feature = 'ss09', value = 1, comment = "Mathematical Alternative Negated Set Symbols" },
+ -- todo = { feature = 'ss14', value = 1, comment = "" },
+ circled = { feature = 'ss16', value = 1, comment = "Mathematical Alternative Circled Operators" },
+ },
+ parameters = {
+ AccentBaseDepth = 30,
+ FlattenedAccentTopShiftUp = 0,
+ RadicalKernAfterDegree = -500,
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ DisplayOperatorMinHeight = 1800, -- 1800 in font
+ PrimeShiftUp = "1.3*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.3*SuperscriptShiftUp",
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 2.12 b168",
+ },
+ {
+ tweak = "fixprimes",
+ factor = 0.84,
+ },
+ {
+ tweak = "addmirrors",
+ },
+ -- MS: we need to check this, I moved it up
+ {
+ tweak = "replacealphabets",
+ list = {
+ {
+ source = "uppercasescript",
+ target = "uppercasecalligraphic",
+ },
+ {
+ source = "uppercasescript",
+ target = "uppercasescript",
+ feature = "ss01",
+ },
+ },
+ },
+ --
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { },
+ presets.rsfsuprighttoscript { },
+ presets.moderntocalligraphic { },
+ presets.eulertocalligraphic { },
+ presets.xitsarabic { rscale = 0.95 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { },
+ presets.wipeitalics { },
+ {
+ tweak = "simplifykerns",
+ },
+ {
+ tweak = "kerns",
+ list = {
+ [0x002F] = { topleft = -0.2, bottomright = -0.2 },
+ ["0x7D.parts.top"] = { topright = -0.15, }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.15 }, -- right brace bottom
+ ["0x29.parts.top"] = { topright = -0.1, }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.1 }, -- right parenthesis bottom
+ ["0x29.variants.*"] = { topright = -0.2, bottomright = -0.2 }, -- right parenthesis variants
+ ["0x221A.parts.top"] = { topright = 0.2, }, -- right radical top
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 }, -- right radical bottom
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 }, -- right radical variants
+ [0x27E9] = { topright = -0.1, bottomright = -0.1 }, -- angle
+ ["0x27E9.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ [0x27EB] = { topright = -0.1, bottomright = -0.1 },
+ ["0x27EB.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ --
+ ["0x222B.parts.bottom"] = { bottomright = -0.30 }, -- int
+ },
+ },
+ -- Accents are a mess. We migrate the extensibles from the combiners to the base accent
+ -- and then need to tweak the width (which is auto set because it was zero with a large
+ -- accent anchor offset). First we copy and fix.
+ {
+ tweak = "extendaccents",
+ },
+ {
+ tweak = "radicaldegreeanchors",
+ list = {
+ [0x221A] = { location = "left", hfactor = 0.00, vfactor = 0.7 },
+ ["0x221A.variants.*"] = { location = "left", hfactor = 0.00, vfactor = 0.55 },
+ ["0x221A.variants.3"] = { location = "left", hfactor = 0.00, vfactor = .525 },
+ ["0x221A.parts.bottom"] = { location = "left", hfactor = 0.05, vfactor = 1.00 },
+ }
+ },
+
+ {
+ tweak = "fixaccents",
+ },
+ -- First we set the dimensions of the initial accent which started out as zero but we want
+ -- a proper width.
+ {
+ tweak = "dimensions",
+ list = {
+ [0x00302] = { width = 1.2, anchor = 1.10, xoffset = .05 }, -- widehat
+ [0x00303] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widetilde
+ [0x00306] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widebreve
+ [0x0030C] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widecheck
+ },
+ },
+ -- Then we deal with all offsets and heights in one go. So we treat the initial accent
+ -- as well as the variants here.
+ {
+ tweak = "dimensions",
+ list = {
+ -- here we want to apply to all
+ [0x020DB] = { yoffset = 0.025, height = .95, all = true }, -- widedddot : 0x20DB (self)
+ },
+ },
+ -- We now copy these to the not wide slots so that we can set these to stretch as well,
+ -- if only because it is less confusing and more consistent.
+ {
+ tweak = "copyaccents",
+ },
+ -- So far for the accents.
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "addarrows",
+ },
+ {
+ tweak = "fixslashes",
+ },
+ { -- already exists, but not good spacing
+ tweak = "addbars",
+ advance = 0.4,
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addfourier",
+ variant = 1,
+ },
+ {
+ tweak = "addprimed",
+ },
+ {
+ tweak = "addparts",
+ list = {
+ [0x21F4] = {
+ horizontal = true,
+ template = 0x2192,
+ sequence = {
+ { glyph = "first", factor = 2 },
+ { glyph = 0x2218 },
+ { glyph = "first", factor = 2 },
+ { glyph = "last" },
+ }
+ }
+ }
+ },
+ -- this is the mkiv section
+ {
+ tweak = "emulatelmtx",
+ feature = "emulatelmtx",
+ comment = "this is for mkiv",
+ },
+ },
+ },
+ bigslots = {
+ 1, 3, 5, 7
+ },
+ },
+}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/termes-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/termes-math.lfg
index 3cf8685ebf0..d9c53ee2830 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/termes-math.lfg
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/termes-math.lfg
@@ -1,33 +1,154 @@
-local kern_V = { bottomright = { { kern = -200 } } }
-local kern_W = { bottomright = { { kern = -100 } } }
-local offset_f = { xoffset = "llx" }
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
--- Beware of updates in ssty slots!
+local integral_variants = { bottomright = -0.20 }
+local integral_bottom = { bottomright = -0.30 }
return {
name = "termes-math",
version = "1.00",
comment = "Goodies that complement termes.",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
mathematics = {
- dimensions = {
- default = {
- -- [0x1D453] = offset_f, -- 𝑓
- -- ["1:0x1D453"] = offset_f, -- needed for compact
- -- ["2:0x1D453"] = offset_f, -- needed for compact
- ["*:0x1D453"] = offset_f, -- 𝑓
+ parameters = {
+ AccentTopShiftUp = -15,
+ FlattenedAccentTopShiftUp = -15,
+ AccentBaseDepth = 50,
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ DisplayOperatorMinHeight = 1800, -- 1300 in font (only one)
+ SuperscriptShiftUp = 310, -- 339
+ SubscriptShiftDown = 200, -- 222
+ SubscriptShiftDownWithSuperscript = "1.40*SubscriptShiftDown", -- 1.5* in math-act
+ PrimeShiftUp = "1.35*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.35*SuperscriptShiftUp",
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 1.543",
+ },
+ {
+ tweak = "fixprimes",
+ factor = 0.76,
+ },
+ {
+ tweak = "addmirrors",
+ },
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { rscale = 0.97 },
+ presets.rsfsuprighttoscript { rscale = 0.97 },
+ presets.moderntocalligraphic { rscale = 0.97 },
+ presets.eulertocalligraphic { rscale = 0.97 },
+ presets.xitsarabic { rscale = 0.88 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { factor = 1.5 },
+ presets.wipeitalics { },
+ {
+ tweak = "kerns",
+ list = {
+ [0x002F] = { topleft = -0.2, bottomright = -0.2 },
+ ["0x7D.parts.top"] = { topright = -0.15, }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.15 }, -- right brace bottom
+ ["0x7D.variants.*"] = { topright = -0.1, bottomright = -0.1 }, -- right brace variants
+ ["0x29.parts.top"] = { topright = -0.1, }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.1 }, -- right parenthesis bottom
+ ["0x29.variants.*"] = { topright = -0.15, bottomright = -0.15 }, -- right parenthesis variants
+ ["0x221A.parts.top"] = { topright = 0.2, }, -- right radical top
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 }, -- right radical bottom
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 }, -- right radical variants
+ [0x27E9] = { topright = -0.1, bottomright = -0.1 }, -- angle
+ ["0x27E9.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ [0x27EB] = { topright = -0.1, bottomright = -0.1 },
+ ["0x27EB.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ --
+ [0x00393] = { bottomright = -0.20, }, -- upright Gamma
+ --
+ ["0x222B.parts.bottom"] = { bottomright = -0.20 }, -- int
+ ["0x222C.parts.bottom"] = { bottomright = -0.15 }, -- iint
+ ["0x222D.parts.bottom"] = { bottomright = -0.10 }, -- iiint
+ ["0x2A0C.parts.bottom"] = { bottomright = -0.05 }, -- iiiint
+ },
+ },
+ -- Accents are a mess. We migrate the extensibles from the combiners to the base accent
+ -- and then need to tweak the width (which is auto set because it was zero with a large
+ -- accent anchor offset). First we copy and fix.
+ {
+ tweak = "extendaccents",
+ },
+ {
+ tweak = "radicaldegreeanchors",
+ list = {
+ [0x221A] = { location = "left", hfactor = 0.0, vfactor = 0.6 },
+ ["0x221A.variants.*"] = { location = "left", hfactor = 0.0, vfactor = 0.6 },
+ ["0x221A.parts.bottom"] = { location = "left", hfactor = 0.05, vfactor = 1.1 },
+ }
+ },
+ {
+ tweak = "fixaccents",
+ },
+ -- First we set the dimensions of the initial accent which started out as zero but we want
+ -- a proper width.
+ {
+ tweak = "dimensions",
+ list = {
+ [0x00302] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widehat
+ [0x00303] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widetilde
+ [0x00306] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widebreve
+ [0x0030C] = { width = 1.4, anchor = 1.20, xoffset = .10 }, -- widecheck
+ },
+ },
+ -- Then we deal with all offsets and heights in one go. So we treat the initial accent
+ -- as well as the variants here. Not in termes.
+ -- We now copy these to the not wide slots so that we can set these to stretch as well,
+ -- if only because it is less confusing and more consistent.
+ {
+ tweak = "copyaccents",
+ },
+ -- So far for the accents.
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "addbars",
+ advance = 0.3,
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addprimed",
+ },
+ {
+ tweak = "addequals",
+ },
+ {
+ tweak = "addfourier",
+ variant = 1,
+ },
+ -- this is the mkiv section
+ {
+ tweak = "emulatelmtx",
+ feature = "emulatelmtx",
+ comment = "this is for mkiv",
+ },
},
},
- kerns = {
- -- [0x1D449] = kern_V, -- 𝑉
- -- ["1:0x1D449"] = kern_V, -- needed for compact
- -- ["2:0x1D449"] = kern_V, -- needed for compact
- -- [0x1D44A] = kern_W, -- 𝑊
- -- ["1:0x1D44A"] = kern_W, -- needed for compact
- -- ["2:0x1D44A"] = kern_W, -- needed for compact
- ["*:0x1D449"] = kern_V, -- 𝑉
- ["*:0x1D44A"] = kern_W, -- 𝑊
+ bigslots = {
+ 1, 3, 5, 7
},
alternates = {
dotless = { feature = 'dtls', value = 1, comment = "Mathematical Dotless Forms" },
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/tx-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/tx-math.lfg
index 58467129e97..1acebfd5b25 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/tx-math.lfg
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/tx-math.lfg
@@ -13,13 +13,13 @@ return {
{ name = "texgyretermes-regular.otf", features = "virtualmath", main = true },
{ name = "texgyretermes-regular.otf", features = "virtualmath", vector = "tex-mr-missing" },
{ name = "rtxr.tfm", vector = "tex-mr" },
- { name = "rtxptmri.tfm", vector = "tex-it", skewchar=0x7F },
- { name = "rtxmi.tfm", vector = "tex-mi", skewchar=0x7F },
- { name = "txsy.tfm", vector = "tex-sy", skewchar=0x30, parameters = true },
+ { name = "rtxptmri.tfm", vector = "tex-it", skewchar = 0x7F },
+ { name = "rtxmi.tfm", vector = "tex-mi", skewchar = 0x7F },
+ { name = "txsy.tfm", vector = "tex-sy", skewchar = 0x30, parameters = true },
{ name = "txex.tfm", vector = "tex-ex", extension = true },
{ name = "txsya.tfm", vector = "tex-ma" },
{ name = "txsyb.tfm", vector = "tex-mb" },
- { name = "texgyretermes-bold.otf", vector = "tex-bf", skewchar=0x7F },
+ { name = "texgyretermes-bold.otf", vector = "tex-bf", skewchar = 0x7F },
{ name = "texgyretermes-bolditalic.otf", vector = "tex-bi" },
{ name = "lmsans10-regular.otf", vector = "tex-ss", optional=true },
{ name = "lmmono10-regular.otf", vector = "tex-tt", optional=true },
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-adobegaramond.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-adobegaramond.mkiv
new file mode 100644
index 00000000000..88ad5ed2cbb
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-adobegaramond.mkiv
@@ -0,0 +1,42 @@
+%D \module
+%D [ file=type-imp-adobegaramond,
+%D version=2021.10.30,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Adobe Garamond,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+
+\starttypescriptcollection[adobegaramond]
+
+ \starttypescript [\s!serif] [adobegaramond] [\s!name]
+ \setups[font:fallback:serif]
+ \definefontsynonym [\s!Serif] [\s!file:AGaramondPro-Regular]
+ \definefontsynonym [\s!SerifItalic] [\s!file:AGaramondPro-Italic]
+ \definefontsynonym [\s!SerifBold] [\s!file:AGaramondPro-Semibold]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [frutiger] [\s!name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [\s!Sans] [\s!file:FrutigerLTStd-Roman]
+ \definefontsynonym [\s!SansItalic] [\s!file:FrutigerLTStd-Italic]
+ \definefontsynonym [\s!SansBold] [\s!file:FrutigerLTStd-Bold]
+ \stoptypescript
+
+ \starttypescript [\s!math] [garamond-math] [\s!name]
+ \loadfontgoodies[garamond-math]
+ \definefontsynonym [\s!MathRoman] [\s!file:garamond-math.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=garamond-math]
+ \stoptypescript
+
+ \starttypescript[adobegaramond]
+ \definetypeface [adobegaramond] [\s!rm] [\s!serif] [adobegaramond] [\s!default]
+ \definetypeface [adobegaramond] [\s!ss] [\s!sans] [frutiger] [\s!default] [\s!rscale=0.85]
+ \definetypeface [adobegaramond] [\s!mm] [\s!math] [garamond-math] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-alegreya.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-alegreya.mkiv
new file mode 100644
index 00000000000..892173210e1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-alegreya.mkiv
@@ -0,0 +1,86 @@
+%D \module
+%D [ file=type-imp-dejavu,
+%D version=2010.06.21,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Alegreya fonts,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This is cleaned up ersion of thwe one on the wiki. The font can be fetched from:
+%D
+%D \type {https://www.huertatipografica.com/en/fonts/alegreya-ht-pro}
+
+% \usetypescriptfile[alegreya]
+%
+% \usebodyfont[alegreya-light]
+% \usebodyfont[alegreya-medium]
+%
+% \setupbodyfont[alegreya]
+%
+% \setuplayout[tight]
+%
+% \starttext
+% \switchtobodyfont[alegreya-light] \input tufte \par
+% \switchtobodyfont[alegreya] \input tufte \par
+% \switchtobodyfont[alegreya-medium] \input tufte \par
+% \switchtobodyfont[alegreya-light,sans] \input tufte \par
+% \switchtobodyfont[alegreya,sans] \input tufte \par
+% \switchtobodyfont[alegreya-medium,sans] \input tufte \par
+% \stoptext
+
+\starttypescriptcollection[alegreya]
+
+\usetypescriptfile
+ [imp-gentium]
+
+\definefontfallback
+ [alegreyagentium-fallback]
+ [name:gentium]
+ [greekandcoptic,greekextended]
+
+\starttypescript [serif] [alegreya-serif,alegreya-light-serif,alegreya-medium-serif] [name]
+ \setups[font:fallback:serif]
+ \definefontsynonym[Serif] [name:alegreyaregular] [features=default,fallbacks=alegreya-gentium-fallback]
+ \definefontsynonym[SerifItalic] [name:alegreyaitalic] [features=default,fallbacks=alegreya-gentium-fallback]
+ \definefontsynonym[SerifBold] [name:alegreyabold] [features=default,fallbacks=alegreya-gentium-fallback]
+ \definefontsynonym[SerifBoldItalic] [name:alegreyabolditalic] [features=default,fallbacks=alegreya-gentium-fallback]
+\stoptypescript
+
+\starttypescript [sans] [alegreya-sans] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [name:alegreyasansregular] [features=default]
+ \definefontsynonym [SansItalic] [name:alegreyasansitalic] [features=default]
+ \definefontsynonym [SansBold] [name:alegreyasansbold] [features=default]
+ \definefontsynonym [SansBoldItalic] [name:alegreyasansbolditalic] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [alegreya-light-sans] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [name:alegreyasanslight] [features=default]
+ \definefontsynonym [SansItalic] [name:alegreyasanslightitalic] [features=default]
+ \definefontsynonym [SansBold] [name:alegreyasansmedium] [features=default]
+ \definefontsynonym [SansBoldItalic] [name:alegreyasansmediumitalic] [features=default]
+\stoptypescript
+
+\starttypescript [sans] [alegreya-medium-sans] [name]
+ \setups[font:fallback:sans]
+ \definefontsynonym [Sans] [name:alegreyasansmedium] [features=default]
+ \definefontsynonym [SansItalic] [name:alegreyasansmediumitalic] [features=default]
+ \definefontsynonym [SansBold] [name:alegreyasansextrabold] [features=default]
+ \definefontsynonym [SansBoldItalic] [name:alegreyasansextrabolditalic] [features=default]
+\stoptypescript
+
+\starttypescript [alegreya,alegreya-light,alegreya-medium]
+ \definefallbackfamily[alegreya][serif][gentium][range={greekandcoptic,greekextended}]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone-serif] [default]
+ \definetypeface [\typescriptone] [ss] [sans] [\typescriptone-sans] [default]
+ \definetypeface [\typescriptone] [tt] [mono] [modern] [default]
+ \definetypeface [\typescriptone] [mm] [math] [default] [default]
+\stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-almfixed.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-almfixed.mkiv
new file mode 100644
index 00000000000..250b311ce20
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-almfixed.mkiv
@@ -0,0 +1,33 @@
+%D \module
+%D [ file=type-imp-almfixed,
+%D version=2021.10.24,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=ALM Fixed,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescriptcollection [almfixed]
+
+ \starttypescript [\s!mono] [almfixed]
+ \definefontsynonym [ALMFixed-Regular] [\s!file:almfixed] [\s!features=\s!none]
+ \stoptypescript
+
+ \starttypescript [\s!mono] [almfixed]
+ \setups[\s!font:\s!fallback:\s!mono]
+ \definefontsynonym [\s!Mono] [ALMFixed-Regular]
+ \stoptypescript
+
+ \starttypescript [almfixed]
+ \definetypeface [almfixed] [\s!tt] [\s!mono] [almfixed] [\s!default]
+ \definetypeface [almfixed] [\s!rm] [\s!serif] [modern] [\s!default] [\s!rscale=0.92]
+ \definetypeface [almfixed] [\s!ss] [\s!sans] [modern] [\s!default] [\s!rscale=0.92]
+ \definetypeface [almfixed] [\s!mm] [\s!math] [modern] [\s!default] [\s!rscale=0.92]
+ \quittypescriptscanning
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-antykwa.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-antykwa.mkiv
index ba5895c8e4b..f5e3158f4ee 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-antykwa.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-antykwa.mkiv
@@ -3,7 +3,7 @@
%D version=2010.06.21,
%D title=\CONTEXT\ Typescript Macros,
%D subtitle=Antykwa Torunska,
-%D author=Mojca Miklavec \& Hans Hagen,
+%D author=Mojca Miklavec \& Hans Hagen \& Mikael Sundqvist,
%D date=\currentdate,
%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
%C
@@ -13,7 +13,34 @@
\starttypescriptcollection[antykwa-torunska]
- \starttypescript [antykwa,antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond]
+ \startsetups[antykwa]
+ % \setupmathfraction[\c!rule=\v!symbol,\c!middle="0203E]%
+ % \setupmathradical [\c!rule=\v!symbol,\c!top ="FE010]%
+ % \setupmathfence [\c!alternative=1]%
+ \letmathfractionparameter\c!rule\v!symbol
+ \setmathfractionparameter\c!middle{"203E}%
+ \letmathradicalparameter \c!rule\v!symbol
+ \setmathradicalparameter \c!top{\radicalbarextenderuc}%
+ \setmathfenceparameter \c!alternative{1}%
+ \stopsetups
+
+ % cond => -cont as in iwona
+
+ \startsetups[antykwa-light] \directsetup{antykwa}\stopsetups
+ \startsetups[antykwa-cond] \directsetup{antykwa}\stopsetups
+ \startsetups[antykwa-light-cond] \directsetup{antykwa}\stopsetups
+ % these long names are obsolete and will go away
+ \startsetups[antykwa-torunska] \directsetup{antykwa}\stopsetups
+ \startsetups[antykwa-torunska-light] \directsetup{antykwa}\stopsetups
+ \startsetups[antykwa-torunska-cond] \directsetup{antykwa}\stopsetups
+ \startsetups[antykwa-torunska-light-cond]\directsetup{antykwa}\stopsetups
+
+ \definefontfeature[virtualmath-antykwa] [virtualmath][virtualweight=antykwa]
+ \definefontfeature[virtualmath-antykwa-cond] [virtualmath][virtualweight=antykwa-cond]
+ \definefontfeature[virtualmath-antykwa-light] [virtualmath][virtualweight=antykwa-light]
+ \definefontfeature[virtualmath-antykwa-light-cond][virtualmath][virtualweight=antykwa-light-cond]
+
+ \starttypescript [antykwa,antykwa-torunska,antykwa-light,antykwa-torunska-light,antykwa-cond,antykwa-torunska-cond,antykwa-light-cond,antykwa-torunska-light-cond]
\definetypeface[\typescriptone][\s!rm][\s!serif][\typescriptone] [\s!default]
\definetypeface[\typescriptone][\s!ss][\s!sans] [modern] [\s!default] [\s!rscale=1.05]
\definetypeface[\typescriptone][\s!tt][\s!mono] [modern] [\s!default] [\s!rscale=1.05]
@@ -21,40 +48,23 @@
\quittypescriptscanning
\stoptypescript
- \starttypescript [\s!serif] [antykwa,antykwa-torunska,antykwa-torunska-light,antykwa-torunska-cond,antykwa-torunska-lightcond]
- \definefontsynonym [AntykwaTorunska-Regular] [\s!file:AntykwaTorunska-Regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaTorunska-Italic] [\s!file:AntykwaTorunska-Italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaTorunska-Bold] [\s!file:AntykwaTorunska-Bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaTorunska-BoldItalic] [\s!file:AntykwaTorunska-BoldItalic] [\s!features=\s!default]
- \definefontsynonym [AntykwaTorunska-Light] [\s!file:AntykwaTorunskaLight-Regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaTorunska-LightItalic] [\s!file:AntykwaTorunskaLight-Italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaTorunska-Medium] [\s!file:AntykwaTorunskaMed-Regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaTorunska-MedItalic] [\s!file:AntykwaTorunskaMed-Italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaTorunska-CondRegular] [\s!file:AntykwaTorunskaCond-Regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaTorunska-CondItalic] [\s!file:AntykwaTorunskaCond-Italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaTorunska-CondBold] [\s!file:AntykwaTorunskaCond-Bold] [\s!features=\s!default]
- \definefontsynonym [AntykwaTorunska-CondBoldItalic] [\s!file:AntykwaTorunskaCond-BoldItalic] [\s!features=\s!default]
- \definefontsynonym [AntykwaTorunska-CondLight] [\s!file:AntykwaTorunskaCondLight-Regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaTorunska-CondLightItalic] [\s!file:AntykwaTorunskaCondLight-Italic] [\s!features=\s!default]
- \definefontsynonym [AntykwaTorunska-CondMedium] [\s!file:AntykwaTorunskaCondMed-Regular] [\s!features=\s!default]
- \definefontsynonym [AntykwaTorunska-CondMedItalic] [\s!file:AntykwaTorunskaCondMed-Italic] [\s!features=\s!default]
-
- \definefontsynonym [AntykwaTorunska-Cap] [\s!file:AntykwaTorunska-Regular] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaTorunska-ItalicCap] [\s!file:AntykwaTorunska-Italic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaTorunska-BoldCap] [\s!file:AntykwaTorunska-Bold] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaTorunska-BoldItalicCap] [\s!file:AntykwaTorunska-BoldItalic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaTorunska-LightCap] [\s!file:AntykwaTorunskaLight-Regular] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaTorunska-LightItalicCap] [\s!file:AntykwaTorunskaLight-Italic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaTorunska-MediumCap] [\s!file:AntykwaTorunskaMed-Regular] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaTorunska-MedItalicCap] [\s!file:AntykwaTorunskaMed-Italic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaTorunska-CondCap] [\s!file:AntykwaTorunskaCond-Regular] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaTorunska-CondItalicCap] [\s!file:AntykwaTorunskaCond-Italic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaTorunska-CondBoldCap] [\s!file:AntykwaTorunskaCond-Bold] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaTorunska-CondBoldItalicCap] [\s!file:AntykwaTorunskaCond-BoldItalic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaTorunska-CondLightCap] [\s!file:AntykwaTorunskaCondLight-Regular] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaTorunska-CondLightItalicCap][\s!file:AntykwaTorunskaCondLight-Italic] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaTorunska-CondMediumCap] [\s!file:AntykwaTorunskaCondMed-Regular] [\s!features=\s!smallcaps]
- \definefontsynonym [AntykwaTorunska-CondMedItalicCap] [\s!file:AntykwaTorunskaCondMed-Italic] [\s!features=\s!smallcaps]
+ \starttypescript [\s!serif] [antykwa,antykwa-torunska,antykwa-light,antykwa-torunska-light,antykwa-cond,antykwa-torunska-cond,antykwa-light-cond,antykwa-torunska-light-cond]
+ \definefontsynonym [AntykwaTorunska-Regular] [\s!file:AntykwaTorunska-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaTorunska-Italic] [\s!file:AntykwaTorunska-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaTorunska-Bold] [\s!file:AntykwaTorunska-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaTorunska-BoldItalic] [\s!file:AntykwaTorunska-BoldItalic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaTorunska-Light] [\s!file:AntykwaTorunskaLight-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaTorunska-LightItalic] [\s!file:AntykwaTorunskaLight-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaTorunska-Medium] [\s!file:AntykwaTorunskaMed-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaTorunska-MediumItalic] [\s!file:AntykwaTorunskaMed-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaTorunska-CondRegular] [\s!file:AntykwaTorunskaCond-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaTorunska-CondItalic] [\s!file:AntykwaTorunskaCond-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaTorunska-CondBold] [\s!file:AntykwaTorunskaCond-Bold] [\s!features=\s!default]
+ \definefontsynonym [AntykwaTorunska-CondBoldItalic] [\s!file:AntykwaTorunskaCond-BoldItalic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaTorunska-CondLight] [\s!file:AntykwaTorunskaCondLight-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaTorunska-CondLightItalic] [\s!file:AntykwaTorunskaCondLight-Italic] [\s!features=\s!default]
+ \definefontsynonym [AntykwaTorunska-CondMedium] [\s!file:AntykwaTorunskaCondMed-Regular] [\s!features=\s!default]
+ \definefontsynonym [AntykwaTorunska-CondMediumItalic] [\s!file:AntykwaTorunskaCondMed-Italic] [\s!features=\s!default]
\stoptypescript
\starttypescript [\s!math][antykwa,antykwa-torunska][\s!all]
@@ -62,167 +72,51 @@
\definefontsynonym[\s!MathRoman][antykwamath@antykwa-math]
\stoptypescript
- \starttypescript [\s!math][antykwa-torunska-light][\s!all]
+ \starttypescript [\s!math][antykwa-light,antykwa-torunska-light][\s!all]
\loadfontgoodies[antykwa-math]
\definefontsynonym[\s!MathRoman][antykwalightmath@antykwa-light-math]
\stoptypescript
- \starttypescript [\s!math][antykwa-torunska-cond][\s!all]
+ \starttypescript [\s!math][antykwa-cond,antykwa-torunska-cond][\s!all]
\loadfontgoodies[antykwa-math]
\definefontsynonym[\s!MathRoman][antykwacondmath@antykwa-cond-math]
\stoptypescript
- \starttypescript [\s!math][antykwa-torunska-lightcond][\s!all]
+ \starttypescript [\s!math][antykwa-light-cond,antykwa-torunska-light-cond][\s!all]
\loadfontgoodies[antykwa-math]
- \definefontsynonym[\s!MathRoman][antykwalightcondmath@antykwa-lightcond-math]
+ \definefontsynonym[\s!MathRoman][antykwalightcondmath@antykwa-light-cond-math]
\stoptypescript
\starttypescript [\s!serif] [antykwa,antykwa-torunska] [\s!name]
- \definefontsynonym [\s!Serif] [AntykwaTorunska-Regular]
- \definefontsynonym [\s!SerifBold] [AntykwaTorunska-Bold]
- \definefontsynonym [\s!SerifItalic] [AntykwaTorunska-Italic]
- \definefontsynonym [\s!SerifSlanted] [AntykwaTorunska-Italic]
- \definefontsynonym [\s!SerifBoldItalic] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [\s!SerifBoldSlanted] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [\s!SerifCaps] [AntykwaTorunska-Cap]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [AntykwaTorunska-Regular]
+ \definefontsynonym [\s!SerifBold] [AntykwaTorunska-Bold]
+ \definefontsynonym [\s!SerifItalic] [AntykwaTorunska-Italic]
+ \definefontsynonym [\s!SerifBoldItalic] [AntykwaTorunska-BoldItalic]
\stoptypescript
- \starttypescript [\s!serif] [antykwa-torunska-light] [\s!name]
- \definefontsynonym [\s!Serif] [AntykwaTorunska-Light]
- \definefontsynonym [\s!SerifBold] [AntykwaTorunska-Medium]
- \definefontsynonym [\s!SerifItalic] [AntykwaTorunska-LightItalic]
- \definefontsynonym [\s!SerifSlanted] [AntykwaTorunska-LightItalic]
- \definefontsynonym [\s!SerifBoldItalic] [AntykwaTorunska-MedItalic]
- \definefontsynonym [\s!SerifBoldSlanted] [AntykwaTorunska-MedItalic]
- \definefontsynonym [\s!SerifCaps] [AntykwaTorunska-LightCap]
+ \starttypescript [\s!serif] [antykwa-light,antykwa-torunska-light] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [AntykwaTorunska-Light]
+ \definefontsynonym [\s!SerifBold] [AntykwaTorunska-Medium]
+ \definefontsynonym [\s!SerifItalic] [AntykwaTorunska-LightItalic]
+ \definefontsynonym [\s!SerifBoldItalic] [AntykwaTorunska-MediumItalic]
\stoptypescript
- \starttypescript [\s!serif] [antykwa-torunska-cond] [\s!name]
- \definefontsynonym [\s!Serif] [AntykwaTorunska-CondRegular]
- \definefontsynonym [\s!SerifBold] [AntykwaTorunska-CondBold]
- \definefontsynonym [\s!SerifItalic] [AntykwaTorunska-CondItalic]
- \definefontsynonym [\s!SerifSlanted] [AntykwaTorunska-CondItalic]
- \definefontsynonym [\s!SerifBoldItalic] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [\s!SerifBoldSlanted] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [\s!SerifCaps] [AntykwaTorunska-CondCap]
+ \starttypescript [\s!serif] [antykwa-cond,antykwa-torunska-cond] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [AntykwaTorunska-CondRegular]
+ \definefontsynonym [\s!SerifBold] [AntykwaTorunska-CondBold]
+ \definefontsynonym [\s!SerifItalic] [AntykwaTorunska-CondItalic]
+ \definefontsynonym [\s!SerifBoldItalic] [AntykwaTorunska-CondBoldItalic]
\stoptypescript
- \starttypescript [\s!serif] [antykwa-torunska-lightcond] [\s!name]
- \definefontsynonym [\s!Serif] [AntykwaTorunska-CondLight]
- \definefontsynonym [\s!SerifBold] [AntykwaTorunska-CondMedium]
- \definefontsynonym [\s!SerifItalic] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [\s!SerifSlanted] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [\s!SerifBoldItalic] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [\s!SerifBoldSlanted] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [\s!SerifCaps] [AntykwaTorunska-CondLightCap]
- \stoptypescript
-
- \starttypescript [\s!serif] [antykwa,antykwa-torunska] [\s!name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-Cap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-BoldCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-ItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-ItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-BoldItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-BoldItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-Cap]
-
- \definefontsynonym [SerifRegularLight] [AntykwaTorunska-Light]
- \definefontsynonym [SerifBoldLight] [AntykwaTorunska-Medium]
- \definefontsynonym [SerifItalicLight] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifSlantedLight] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifBoldItalicLight] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifBoldSlantedLight] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifCapsLight] [AntykwaTorunska-LightCap]
-
- \definefontsynonym [SerifRegularCond] [AntykwaTorunska-CondRegular]
- \definefontsynonym [SerifBoldCond] [AntykwaTorunska-CondBold]
- \definefontsynonym [SerifItalicCond] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifSlantedCond] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifBoldItalicCond] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifBoldSlantedCond] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifCapsCond] [AntykwaTorunska-CondCap]
- \stoptypescript
-
- \starttypescript [\s!serif] [antykwa-torunska-light] [\s!name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-LightCap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-MediumCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-LightItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-LightItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-MedItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-MedItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-LightCap]
-
- \definefontsynonym [SerifRegularDark] [AntykwaTorunska-Regular]
- \definefontsynonym [SerifBoldDark] [AntykwaTorunska-Bold]
- \definefontsynonym [SerifItalicDark] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifSlantedDark] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifBoldItalicDark] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifBoldSlantedDark] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifCapsDark] [AntykwaTorunska-Cap]
-
- \definefontsynonym [SerifRegularCond] [AntykwaTorunska-CondLight]
- \definefontsynonym [SerifBoldCond] [AntykwaTorunska-CondMedium]
- \definefontsynonym [SerifItalicCond] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifSlantedCond] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifBoldItalicCond] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifBoldSlantedCond] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifCapsCond] [AntykwaTorunska-CondLightCap]
- \stoptypescript
-
- \starttypescript [\s!serif] [antykwa-torunska-cond] [\s!name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-CondCap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-CondBoldCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-CondItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-CondItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-CondBoldItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-CondBoldItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-CondCap]
-
- \definefontsynonym [SerifRegularLight] [AntykwaTorunska-CondLight]
- \definefontsynonym [SerifBoldLight] [AntykwaTorunska-CondMedium]
- \definefontsynonym [SerifItalicLight] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifSlantedLight] [AntykwaTorunska-CondLightItalic]
- \definefontsynonym [SerifBoldItalicLight] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifBoldSlantedLight] [AntykwaTorunska-CondMedItalic]
- \definefontsynonym [SerifCapsLight] [AntykwaTorunska-CondLightCap]
-
- \definefontsynonym [SerifRegularExp] [AntykwaTorunska-Regular]
- \definefontsynonym [SerifBoldExp] [AntykwaTorunska-Bold]
- \definefontsynonym [SerifItalicExp] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifSlantedExp] [AntykwaTorunska-Italic]
- \definefontsynonym [SerifBoldItalicExp] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifBoldSlantedExp] [AntykwaTorunska-BoldItalic]
- \definefontsynonym [SerifCapsExp] [AntykwaTorunska-Cap]
- \stoptypescript
-
- \starttypescript [\s!serif] [antykwa-torunska-lightcond] [\s!name]
- \definefontsynonym [SerifRegular] [Serif]
- \definefontsynonym [SerifRegularCaps] [AntykwaTorunska-CondLightCap]
- \definefontsynonym [SerifBoldCaps] [AntykwaTorunska-CondMediumCap]
- \definefontsynonym [SerifItalicCaps] [AntykwaTorunska-CondLightItalicCap]
- \definefontsynonym [SerifSlantedCaps] [AntykwaTorunska-CondLightItalicCap]
- \definefontsynonym [SerifBoldItalicCaps] [AntykwaTorunska-CondMedItalicCap]
- \definefontsynonym [SerifBoldSlantedCaps] [AntykwaTorunska-CondMedItalicCap]
- \definefontsynonym [SerifCapsCaps] [AntykwaTorunska-CondLightCap]
-
- \definefontsynonym [SerifRegularDark] [AntykwaTorunska-CondRegular]
- \definefontsynonym [SerifBoldDark] [AntykwaTorunska-CondBold]
- \definefontsynonym [SerifItalicDark] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifSlantedDark] [AntykwaTorunska-CondItalic]
- \definefontsynonym [SerifBoldItalicDark] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifBoldSlantedDark] [AntykwaTorunska-CondBoldItalic]
- \definefontsynonym [SerifCapsDark] [AntykwaTorunska-CondCap]
-
- \definefontsynonym [SerifRegularExp] [AntykwaTorunska-Light]
- \definefontsynonym [SerifBoldExp] [AntykwaTorunska-Medium]
- \definefontsynonym [SerifItalicExp] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifSlantedExp] [AntykwaTorunska-LightItalic]
- \definefontsynonym [SerifBoldItalicExp] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifBoldSlantedExp] [AntykwaTorunska-MedItalic]
- \definefontsynonym [SerifCapsExp] [AntykwaTorunska-LightCap]
+ \starttypescript [\s!serif] [antykwa-light-cond,antykwa-torunska-light-cond] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [AntykwaTorunska-CondLight]
+ \definefontsynonym [\s!SerifBold] [AntykwaTorunska-CondMedium]
+ \definefontsynonym [\s!SerifItalic] [AntykwaTorunska-CondLightItalic]
+ \definefontsynonym [\s!SerifBoldItalic] [AntykwaTorunska-CondMediumItalic]
\stoptypescript
\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-asana.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-asana.mkiv
deleted file mode 100644
index c48d3b7ad7d..00000000000
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-asana.mkiv
+++ /dev/null
@@ -1,35 +0,0 @@
-%D \module
-%D [ file=type-imp-asana,
-%D version=2007.07.30,
-%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Asana,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\loadtypescriptfile[texgyre]
-
-\starttypescriptcollection [asanamath]
-
- \starttypescript [\s!math] [asana]
- \definefontsynonym [AsanaMath] [\s!name:asanamath]
- \stoptypescript
-
- \starttypescript [\s!math] [asana] [\s!name]
- \loadfontgoodies[asana-math]
- \definefontsynonym [MathRoman] [AsanaMath] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=asana-math]
- \stoptypescript
-
- \starttypescript[asana]
- \definetypeface [\typescriptone] [\s!rm] [\s!serif] [palatino] [\s!default]
- \definetypeface [\typescriptone] [\s!ss] [\s!sans] [modern] [\s!default] [\s!rscale=1.075]
- \definetypeface [\typescriptone] [\s!tt] [\s!mono] [modern] [\s!default] [\s!rscale=1.075]
- \definetypeface [\typescriptone] [\s!mm] [\s!math] [\typescriptone] [\s!default]
- \quittypescriptscanning
- \stoptypescript
-
-\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-cambria.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-cambria.mkiv
index 0ccb4409e3a..c8906df2c60 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-cambria.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-cambria.mkiv
@@ -22,7 +22,12 @@
\doifunknownfontfeature {cambria-math-bold} {\definefontfeature[cambria-math-bold][boldened]}
- \starttypescript [\s!math,\s!serif] [cambria,cambria-x,cambria-y]
+ \starttypescript [\s!math] [cambria,cambria-x,cambria-y,cambria-nt,cambria-m,cambria-a]
+ \checkedmapfontsize[\typescripttwo][\s!script] [.73]
+ \checkedmapfontsize[\typescripttwo][\s!scriptscript][.60]
+ \stoptypescript
+
+ \starttypescript [\s!math,\s!serif] [cambria,cambria-x,cambria-y,cambria-nt]
% whatever matches
\definefontsynonym [CambriaMath] [\s!name:cambriamath]
\definefontsynonym [CambriaSerif] [\s!name:cambria]
@@ -44,21 +49,26 @@
\starttypescript [\s!math] [cambria,cambria-m,cambria-a] [\s!name]
\loadfontgoodies[cambria-math]
- \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=cambria-math]
- \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math\mathsizesuffix,cambria-math-bold,mathextra},\s!goodies=cambria-math]
+ \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math\mathsizesuffix,cambria:mathextra,mathextra},\s!goodies=cambria-math]
+ \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math\mathsizesuffix,cambria-math-bold,cambria:mathextra,mathextra},\s!goodies=cambria-math]
+ \stoptypescript
+ \starttypescript [\s!math] [cambria-nt] [\s!name]
+ \loadfontgoodies[cambria-math]
+ \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math\mathsizesuffix,cambria:mathextra,mathextra}]
+ \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math\mathsizesuffix,cambria-math-bold,cambria:mathextra,mathextra}]
\stoptypescript
\starttypescript [\s!math] [cambria-x] [\s!name]
\loadfontgoodies[cambria-math]
- \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math,mathextra},\s!goodies=cambria-math]
- \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math,cambria-math-bold,mathextra},\s!goodies=cambria-math]
+ \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math,cambria:mathextra,mathextra},\s!goodies=cambria-math]
+ \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math,cambria-math-bold,cambria:mathextra,mathextra},\s!goodies=cambria-math]
\stoptypescript
\starttypescript [\s!math] [cambria-y] [\s!name]
\loadfontgoodies[cambria-math]
- \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math-nostack\mathsizesuffix,mathextra},\s!goodies=cambria-math]
- \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math-nostack\mathsizesuffix,cambria-math-bold,mathextra},\s!goodies=cambria-math]
+ \definefontsynonym [\s!MathRoman] [CambriaMath] [\s!features={\s!math-nostack\mathsizesuffix,cambria:mathextra,mathextra},\s!goodies=cambria-math]
+ \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math-nostack\mathsizesuffix,cambria-math-bold,cambria:mathextra,mathextra},\s!goodies=cambria-math]
\stoptypescript
- \starttypescript [\s!serif] [cambria,cambria-m,cambria-a] [\s!name]
+ \starttypescript [\s!serif] [cambria,cambria-m,cambria-a,cambria-nt] [\s!name]
\setups[\s!font:\s!fallback:\s!serif]
\definefontsynonym [\s!Serif] [CambriaSerif] [\s!features=\s!default,\s!goodies=cambria]
\definefontsynonym [\s!SerifBold] [\s!name:cambriabold] [\s!features=\s!default,\s!goodies=cambria]
@@ -72,7 +82,7 @@
\definetypeface [cambria] [\s!tt] [\s!mono] [dejavu] [\s!default]
\definetypeface [cambria] [\s!mm] [\s!math] [\typescriptone] [\s!default]
\stoptypescript
- \starttypescript [cambria-x,cambria-y]
+ \starttypescript [cambria-x,cambria-y,cambria-nt]
% test x
\definetypeface [\typescriptone] [\s!rm] [\s!serif] [cambria] [\s!default]
\definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-concrete.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-concrete.mkiv
new file mode 100644
index 00000000000..ff4033f8154
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-concrete.mkiv
@@ -0,0 +1,77 @@
+%D \module
+%D [ file=type-imp-erewhon,
+%D version=2022.30.09, % a bit older
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=\TEX Gyre Fonts,
+%D author=Mikael Sundqvist,
+%D date=\currentdate,
+%D copyright={\CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%\loadtypescriptfile[texgyre]
+%\resetfontfallback [concrete-euler-fix]
+%\definefontfallback[concrete-euler-fix][texgyrepagella-math] [0x022EE,0x022F0,0x022F1,0x02661,0x02220][force=yes]
+
+\starttypescriptcollection[concrete]
+
+ %\definefontfeature[default-slanted-concrete][default][slant=.2]
+ %\definefontfeature[none-slanted-concrete] [none] [slant=.2]
+
+ \doifunknownfontfeature {concrete-math-bold} {\definefontfeature[concrete-math-bold][boldened]}
+
+ \starttypescript [\s!serif] [concrete]
+ \definefontsynonym [\s!Serif] [\s!file:cmunorm] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifItalic] [\s!file:cmunoti] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifSlanted] [\s!file:cmunorm] [\s!features=default-slanted-concrete]
+ \definefontsynonym [\s!SerifBold] [\s!file:cmunobx] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifBoldItalic] [\s!file:cmunobi] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifBoldSlanted] [\s!file:cmunobx] [\s!features=default-slanted-concrete]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [concrete]
+ \definefontsynonym [\s!Sans] [\s!file:cmunss] [\s!features=\s!default]
+ \definefontsynonym [\s!SansItalic] [\s!file:cmunsi] [\s!features=\s!default]
+ \definefontsynonym [\s!SansSlanted] [\s!file:cmunss] [\s!features=default-slanted-concrete]
+ \definefontsynonym [\s!SansBold] [\s!file:cmunsx] [\s!features=\s!default]
+ \definefontsynonym [\s!SansBoldItalic] [\s!file:cmunso] [\s!features=\s!default]
+ \definefontsynonym [\s!SansBoldSlanted] [\s!file:cmunsx] [\s!features=default-slanted-concrete]
+ \stoptypescript
+
+ \starttypescript [\s!mono] [concrete]
+ \definefontsynonym [\s!Mono] [\s!file:cmuntt] [\s!features=\s!none]
+ \definefontsynonym [\s!MonoItalic] [\s!file:cmunit] [\s!features=\s!none]
+ \definefontsynonym [\s!MonoSlanted] [\s!file:cmunst] [\s!features=\s!none]
+ \definefontsynonym [\s!MonoBold] [\s!file:cmuntb] [\s!features=\s!none]
+ \definefontsynonym [\s!MonoBoldItalic] [\s!file:cmuntx] [\s!features=\s!none]
+ \definefontsynonym [\s!MonoBoldSlanted] [\s!file:cmuntb] [\s!features=none-slanted-concrete]
+ \stoptypescript
+
+ \starttypescript [\s!math] [concrete]
+ \checkedmapfontsize[\typescripttwo][\s!script] [.76]
+ \checkedmapfontsize[\typescripttwo][\s!scriptscript][.60]
+ \stoptypescript
+
+ \starttypescript [\s!math] [concrete] [\s!name]
+ \loadfontgoodies[concrete-math]
+ \definefontsynonym[\s!MathRoman] [\s!file:Concrete-Math.otf] [\s!features={\s!math\mathsizesuffix,concrete:mathextra,mathextra},\s!goodies=concrete-math]
+ \definefontsynonym[\s!MathRomanBold] [\s!file:Concrete-Math.otf] [\s!features={\s!math\mathsizesuffix,concrete-math-bold,concrete:mathextra,mathextra},\s!goodies=concrete-math]
+ \stoptypescript
+
+ \starttypescript [\s!math] [concrete-nt] [\s!name]
+ \loadfontgoodies[concrete-math]
+ \definefontsynonym[\s!MathRoman] [\s!file:Concrete-Math.otf] [\s!features={\s!math\mathsizesuffix,concrete:mathextra,mathextra}]
+ \definefontsynonym[\s!MathRomanBold] [\s!file:Concrete-Math.otf] [\s!features={\s!math\mathsizesuffix,concrete-math-bold,concrete:mathextra,mathextra}]
+ \stoptypescript
+
+ \starttypescript [concrete,concrete-nt]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [concrete] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [concrete] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [concrete] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [\typescriptone] [\s!default]
+ \quittypescriptscanning
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-dejavu.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-dejavu.mkiv
index 6da2daa8996..49b788a734e 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-dejavu.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-dejavu.mkiv
@@ -16,7 +16,7 @@
\definefontfeature[dejavu-condensed-mono][extend=.8]
-\starttypescriptcollection[dejavu]
+\starttypescriptcollection[xxdejavu]
\doifunknownfontfeature {dejavu-math-bold} {\definefontfeature[dejavu-math-bold][boldened]}
@@ -44,27 +44,36 @@
\definefontsynonym [\s!MonoBoldItalic] [\s!name:dejavusansmonoboldoblique] [\s!features=\s!none,\s!fallbacks=\s!MonoBoldItalic]
\stoptypescript
- \starttypescript [\s!math][dejavu][\s!name]
- \loadfontgoodies[dejavu-math]
- \definefontsynonym[\s!MathRoman] [\s!file:texgyredejavu-math][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=dejavu-math]
- \definefontsynonym[\s!MathRomanBold][\s!file:texgyredejavu-math][\s!features={\s!math\mathsizesuffix,dejavu-math-bold,mathextra},\s!goodies=dejavu-math]
+ \starttypescript [\s!math] [dejavu,dejavu-nt,dejavu-condensed]
+ \checkedmapfontsize[\typescripttwo][\s!script] [.70]%.80
+ \checkedmapfontsize[\typescripttwo][\s!scriptscript][.55]%.65
\stoptypescript
- \starttypescript[dejavu]
- \definetypeface [dejavu] [\s!rm] [\s!serif] [dejavu] [\s!default]
- \definetypeface [dejavu] [\s!ss] [\s!sans] [dejavu] [\s!default]
- \definetypeface [dejavu] [\s!tt] [\s!mono] [dejavu] [\s!default]
- % \definetypeface [dejavu] [\s!mm] [\s!math] [xits] [\s!default] [\s!rscale=1.2]
- \definetypeface [dejavu] [\s!mm] [\s!math] [dejavu] [\s!default]
+ \starttypescript [\s!math] [dejavu] [\s!name]
+ \loadfontgoodies[dejavu-math]
+ \definefontsynonym[\s!MathRoman] [\s!file:texgyredejavu-math][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=dejavu-math,\s!fallbacks=\s!Math]
+ \definefontsynonym[\s!MathRomanBold][\s!file:texgyredejavu-math][\s!features={\s!math\mathsizesuffix,dejavu-math-bold,mathextra},\s!goodies=dejavu-math,\s!fallbacks=\s!Math]
+ \stoptypescript
+ \starttypescript [\s!math] [dejavu-nt] [\s!name]
+ \loadfontgoodies[dejavu-math]
+ \definefontsynonym[\s!MathRoman] [\s!file:texgyredejavu-math][\s!features={\s!math\mathsizesuffix,mathextra}]
+ \definefontsynonym[\s!MathRomanBold][\s!file:texgyredejavu-math][\s!features={\s!math\mathsizesuffix,dejavu-math-bold,mathextra}]
\stoptypescript
- \starttypescript[dejavubidi]
- \definetypeface [dejavu] [\s!rm] [\s!serif] [dejavu] [\s!default]
- \definetypeface [dejavu] [\s!ss] [\s!sans] [dejavu] [\s!default]
- \definetypeface [dejavu] [\s!tt] [\s!mono] [dejavu] [\s!default]
- \definetypeface [dejavu] [\s!mm] [\s!math] [xitsbidi] [\s!default] [\s!rscale=1.2]
+ \starttypescript[dejavu,dejavu-nt]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [\typescriptone] [\s!default]
\stoptypescript
+ % \starttypescript[dejavubidi]
+ % \definetypeface [dejavu] [\s!rm] [\s!serif] [dejavu] [\s!default]
+ % \definetypeface [dejavu] [\s!ss] [\s!sans] [dejavu] [\s!default]
+ % \definetypeface [dejavu] [\s!tt] [\s!mono] [dejavu] [\s!default]
+ % \definetypeface [dejavu] [\s!mm] [\s!math] [xitsbidi] [\s!default] [\s!rscale=1.2]
+ % \stoptypescript
+
\starttypescript [\s!serif] [dejavu-condensed] [\s!name]
\setups[\s!font:\s!fallback:\s!serif]
\definefontsynonym [\s!Serif] [\s!name:dejavuserifcondensed] [\s!features=\s!default]
@@ -83,10 +92,6 @@
\starttypescript [\s!mono] [dejavu-condensed] [\s!name]
\setups[\s!font:\s!fallback:\s!mono]
- % \definefontsynonym [\s!Mono] [\s!name:dejavusansmonocondensed] [\s!features=\s!none]
- % \definefontsynonym [\s!MonoBold] [\s!name:dejavusansmonoboldcondensed] [\s!features=\s!none]
- % \definefontsynonym [\s!MonoItalic] [\s!name:dejavusansmonoobliquecondensed] [\s!features=\s!none]
- % \definefontsynonym [\s!MonoBoldItalic] [\s!name:dejavusansmonoboldobliquecondensed] [\s!features=\s!none]
\definefontsynonym [\s!Mono] [\s!name:dejavusansmono] [\s!features=dejavu-condensed-mono]
\definefontsynonym [\s!MonoBold] [\s!name:dejavusansmonobold] [\s!features=dejavu-condensed-mono]
\definefontsynonym [\s!MonoItalic] [\s!name:dejavusansmonooblique] [\s!features=dejavu-condensed-mono]
@@ -105,7 +110,6 @@
\definetypeface [dejavu-condensed] [\s!rm] [\s!serif] [dejavu-condensed] [\s!default]
\definetypeface [dejavu-condensed] [\s!ss] [\s!sans] [dejavu-condensed] [\s!default]
\definetypeface [dejavu-condensed] [\s!tt] [\s!mono] [dejavu-condensed] [\s!default]
- % \definetypeface [dejavu-condensed] [\s!mm] [\s!math] [xits] [\s!default] [\s!rscale=1.2]
\definetypeface [dejavu-condensed] [\s!mm] [\s!math] [dejavu] [\s!default]
\stoptypescript
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv
index 5cafe503f1e..31026df5b21 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-ebgaramond.mkiv
@@ -29,10 +29,15 @@
\definefontfeature
[eb-garamond-normal]
[default]
- [mode=node,ccmp=yes,calt=yes,
- liga=yes,dlig=yes,hlig=yes,
- kern=yes,mark=yes,mkmk=yes,
- onum=yes,pnum=yes,salt=yes,
+ [mode=node,
+ ccmp=yes,
+ calt=yes,
+ dlig=no,
+ hlig=no,
+ % salt=yes,
+ % onum=yes,
+ onum=no,
+ pnum=yes,
script=latn]
\definefontfeature
@@ -40,36 +45,69 @@
[eb-garamond-normal]
[smcp=yes,c2sc=yes]
+\definefontfeature
+ [ysabeau-smallcaps]
+ [default]
+ [smcp=yes,c2sc=yes]
+
+% \loadtypescriptfile[ebgaramond]
+%
+% \definefontfeature
+% [eb-garamond-normal]
+% [eb-garamond-normal]
+% [dlig=no,hlig=no]
+%
+% \setupbodyfont[ebgaramond]
+%
+% \starttext
+% No weird over the top ligatures.
+% \stoptext
+
\starttypescriptcollection[ebgaramond]
- % \starttypescript [serif] [ebgaramond]
- % \loadfontgoodies[ebgaramond]
- % \setups[font:fallback:serif]
- % \definefontsynonym [Serif] [file:ebgaramond-regular] [features=eb-garamond-normal]
- % \definefontsynonym [SerifItalic] [file:ebgaramond-italic] [features=eb-garamond-normal]
- % \definefontsynonym [SerifBold] [file:ebgaramond-regular] [features=eb-garamond-normal] % there is no bold
- % \definefontsynonym [SerifCaps] [Serif] [features=eb-garamond-smallcaps]
- % \stoptypescript
-
- % \starttypescript[ebgaramond]
- % \definetypeface [ebgaramond] [rm] [serif] [ebgaramond] [default] [designsize=auto]
- % \definetypeface [ebgaramond] [tt] [mono] [dejavu] [default] [rscale=0.8] % rather arbitrary but seldom mixed anyway
- % \definetypeface [ebgaramond] [mm] [math] [bonum] [default] [rscale=0.8] % rather arbitrary but seldom mixed anyway
- % \stoptypescript
-
- \starttypescript [serif] [ebgaramond]
+ \doifunknownfontfeature {ebgaramond-math-bold} {\definefontfeature[ebgaramond-math-bold][boldened]}
+
+ \starttypescript [\s!serif] [ebgaramond]
\setups[font:fallback:serif]
- \definefontsynonym [Serif] [file:ebgaramond-regular] [features=eb-garamond-normal]
- \definefontsynonym [SerifItalic] [file:ebgaramond-italic] [features=eb-garamond-normal]
- \definefontsynonym [SerifBold] [file:ebgaramond-bold] [features=eb-garamond-normal]
- \definefontsynonym [SerifBoldItalic][file:ebgaramond-bolditalic][features=eb-garamond-normal]
- \definefontsynonym [SerifCaps] [Serif] [features=eb-garamond-smallcaps]
+ \definefontsynonym [\s!Serif] [\s!file:ebgaramond-regular] [\s!features=eb-garamond-normal]
+ \definefontsynonym [\s!SerifItalic] [\s!file:ebgaramond-italic] [\s!features=eb-garamond-normal]
+ \definefontsynonym [\s!SerifBold] [\s!file:ebgaramond-bold] [\s!features=eb-garamond-normal]
+ \definefontsynonym [\s!SerifBoldItalic][\s!file:ebgaramond-bolditalic][\s!features=eb-garamond-normal]
+ \definefontsynonym [\s!SerifCaps] [\s!Serif] [\s!features=eb-garamond-smallcaps]
+ \stoptypescript
+
+
+
+ \starttypescript [\s!sans] [ysabeau]
+ % \setups[font:fallback:sans]
+ \definefontsynonym [\s!Sans] [\s!file:ysabeau-regular] [\s!features=\s!default]
+ \definefontsynonym [\s!SansItalic] [\s!file:ysabeau-italic] [\s!features=\s!default]
+ \definefontsynonym [\s!SansBold] [\s!file:ysabeau-bold] [\s!features=\s!default]
+ \definefontsynonym [\s!SansBoldItalic][\s!file:ysabeau-bolditalic] [\s!features=\s!default]
+ \definefontsynonym [\s!SansCaps] [\s!Sans] [\s!features=ysabeau-smallcaps]
+ \stoptypescript
+
+ \starttypescript [\s!math] [ebgaramond,ebgaramond-nt]
+ \checkedmapfontsize[\typescripttwo][\s!script] [.70]
+ \checkedmapfontsize[\typescripttwo][\s!scriptscript][.50]
+ \stoptypescript
+
+ \starttypescript [\s!math] [ebgaramond] [\s!name]
+ \definefontsynonym [\s!MathRoman] [\s!file:garamond-math.otf] [\s!features={\s!math\mathsizesuffix,ebgaramond:mathextra,mathextra},\s!goodies=ebgaramond-math]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:garamond-math.otf] [\s!features={\s!math\mathsizesuffix,ebgaramond-math-bold,ebgaramond:mathextra,mathextra},\s!goodies=ebgaramond-math]
+ \stoptypescript
+
+ \starttypescript [\s!math] [ebgaramond-nt] [\s!name]
+ \definefontsynonym [\s!MathRoman] [\s!file:garamond-math.otf] [\s!features={\s!math\mathsizesuffix,ebgaramond:mathextra,mathextra}]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:garamond-math.otf] [\s!features={\s!math\mathsizesuffix,ebgaramond-math-bold,ebgaramond:mathextra,mathextra}]
\stoptypescript
- \starttypescript[ebgaramond]
- \definetypeface [ebgaramond] [rm] [serif] [ebgaramond] [default]
- \definetypeface [ebgaramond] [tt] [mono] [dejavu] [default] [rscale=0.8] % rather arbitrary but seldom mixed anyway
- \definetypeface [ebgaramond] [mm] [math] [bonum] [default] [rscale=0.8] % rather arbitrary but seldom mixed anyway
+ \starttypescript[ebgaramond,ebgaramond-nt]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [ebgaramond] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [ysabeau] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default] [\s!rscale=0.8]
+ % \definetypeface [\typescriptone] [\s!mm] [\s!math] [bonum] [\s!default] [\s!rscale=0.8]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [\typescriptone] [\s!default]
\stoptypescript
\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-erewhon.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-erewhon.mkiv
new file mode 100644
index 00000000000..c536caa0eb7
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-erewhon.mkiv
@@ -0,0 +1,71 @@
+%D \module
+%D [ file=type-imp-erewhon,
+%D version=2022.30.09, % a bit older
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=\TEX Gyre Fonts,
+%D author=Mikael Sundqvist,
+%D date=\currentdate,
+%D copyright={\CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%\loadtypescriptfile[texgyre]
+%\resetfontfallback [erewhon-euler-fix]
+%\definefontfallback[erewhon-euler-fix][texgyrepagella-math] [0x022EE,0x022F0,0x022F1,0x02661,0x02220][force=yes]
+
+\starttypescriptcollection[erewhon]
+
+ %\definefontfeature[default-slanted-erewhon][default][slant=.2]
+ %\definefontfeature[none-slanted-erewhon] [none] [slant=.2]
+
+ \doifunknownfontfeature {erewhon-math-bold} {\definefontfeature[erewhon-math-bold][boldened]}
+
+ \starttypescript [\s!serif] [erewhon]
+ \definefontsynonym [\s!Serif] [\s!file:Erewhon-Regular] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifItalic] [\s!file:Erewhon-Italic] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifSlanted] [\s!file:Erewhon-RegularSlanted][\s!features=\s!default]
+ \definefontsynonym [\s!SerifBold] [\s!file:Erewhon-Bold] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifBoldItalic] [\s!file:Erewhon-BoldItalic] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifBoldSlanted][\s!file:Erewhon-BoldSlanted] [\s!features=\s!default]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [cabin-sans]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [\s!file:Cabin-Regular] [\s!features=\s!default]
+ \definefontsynonym [\s!SansItalic] [\s!file:Cabin-Italic] [\s!features=\s!default]
+ \definefontsynonym [\s!SansBold] [\s!file:Cabin-SemiBold] [\s!features=\s!default]
+ \definefontsynonym [\s!SansBoldItalic][\s!file:Cabin-SemiBoldItalic][\s!features=\s!default]
+ \stoptypescript
+
+ \starttypescript [\s!mono] [inconsolata-mono]
+ \setups[\s!font:\s!fallback:\s!mono]
+ \definefontsynonym [\s!Mono] [\s!file:Inconsolatazi4-Regular][\s!features=\s!none]
+ \definefontsynonym [\s!MonoBold][\s!file:Inconsolatazi4-Bold] [\s!features=\s!none]
+ \stoptypescript
+
+ \starttypescript [\s!math] [erewhon,erewhon-nt]
+ \checkedmapfontsize[\typescripttwo][\s!script] [.70]
+ \checkedmapfontsize[\typescripttwo][\s!scriptscript][.55]
+ \stoptypescript
+
+ \starttypescript [\s!math] [erewhon] [\s!name]
+ \definefontsynonym [\s!MathRoman] [\s!file:Erewhon-Math.otf][\s!features={\s!math\mathsizesuffix,erewhon:mathextra,mathextra},\s!goodies=erewhon-math]
+ \definefontsynonym [\s!MathRomanBold][\s!file:Erewhon-Math.otf][\s!features={\s!math\mathsizesuffix,erewhon-math-bold,erewhon:mathextra,mathextra},\s!goodies=erewhon-math]
+ \stoptypescript
+
+ \starttypescript [\s!math] [erewhon-nt] [\s!name]
+ \definefontsynonym [\s!MathRoman] [\s!file:Erewhon-Math.otf][\s!features={\s!math\mathsizesuffix,erewhon:mathextra,mathextra}]
+ \definefontsynonym [\s!MathRomanBold][\s!file:Erewhon-Math.otf][\s!features={\s!math\mathsizesuffix,erewhon-math-bold,erewhon:mathextra,mathextra}]
+ \stoptypescript
+
+ \starttypescript [erewhon,erewhon-nt]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [erewhon] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [cabin] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [inconsolata] [\s!default] [\s!rscale=1.1]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [\typescriptone] [\s!default]
+ \quittypescriptscanning
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-euler.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-euler.mkiv
index 64961830c31..4901c1dcb82 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-euler.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-euler.mkiv
@@ -11,6 +11,10 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+% Instead of euler.otf we now use euler-math.otf which is a copy of the version
+% that Daniel Flipo maintains now. We will also make an euler-regular.otf for
+% text usage (which might have slighty different metrics then).
+
\loadtypescriptfile[texgyre]
\loadtypescriptfile[dejavu]
@@ -21,14 +25,13 @@
% 0x1D455 : italic h
-\definefontfallback [euleroverpagella] [\s!file:euler.otf] [0x02100-0x02BFF] [\s!check=yes,\c!force=yes]
-\definefontfallback [euleroverpagella] [\s!file:euler.otf] [0x1D400-0x1D7FF] [\s!check=yes,\c!force=yes]
-\definefontfallback [euleroverpagella] [texgyrepagella-math] [0x0210E] [\s!check=yes,\c!force=\v!yes]
-%definefontfallback [euleroverpagella] [\s!file:euler.otf] [0x1D538-0x1D550] [\s!check=yes,\c!force=yes]
+\definefontfallback [euleroverpagella] [\s!file:euler-math.otf] [0x02100-0x02BFF] [\s!check=yes,\c!force=yes]
+\definefontfallback [euleroverpagella] [\s!file:euler-math.otf] [0x1D400-0x1D7FF] [\s!check=yes,\c!force=yes]
+\definefontfallback [euleroverpagella] [texgyrepagella-math] [0x0210E] [\s!check=yes,\c!force=\v!yes]
+%definefontfallback [euleroverpagella] [\s!file:euler-math.otf] [0x1D538-0x1D550] [\s!check=yes,\c!force=yes]
\definefontfallback [pagellaovereuler] [texgyrepagella-math] [0x02100-0x02BFF] [\s!check=yes]
\definefontfallback [pagellaovereuler] [texgyrepagella-math] [0x1D400-0x1D7FF] [\s!check=yes]
-\definefontfallback [pagellaovereuler] [texgyrepagella-math] [0x1D400-0x1D7FF] [\s!check=yes]
\definefontfallback [pagellaovereuler] [texgyrepagella-math] [0x0210E] [\s!check=yes,\c!force=\v!yes]
%definefontfallback [pagellaovereuler] [texgyrepagella-math] [0x1D538-0x1D550] [\s!check=yes]
@@ -44,12 +47,12 @@
\starttypescript [\s!serif] [eulernova] [\s!name]
\setups[\s!font:\s!fallback:\s!serif]
- \definefontsynonym [\s!Serif] [\s!file:euler.otf] [\s!features=\s!default]
+ \definefontsynonym [\s!Serif] [\s!file:euler-math.otf] [\s!features=\s!default]
\stoptypescript
\starttypescript [\s!math] [eulernova] [\s!name]
% \loadfontgoodies[euler-math]
- \definefontsynonym [MathRoman] [\s!file:euler.otf] [\s!features={\s!math\mathsizesuffix,mathextra}]
+ \definefontsynonym [MathRoman] [\s!file:euler-math.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=euler-math]
\stoptypescript
\starttypescript [pagella-eulernova]
@@ -67,11 +70,11 @@
\stoptypescript
\starttypescript [\s!math] [euleroverpagella] [\s!name]
- \definefontsynonym [MathRoman] [texgyrepagella-math] [\s!features={\s!math\mathsizesuffix,mathextra},\s!fallbacks=euleroverpagella]
+ \definefontsynonym [MathRoman] [texgyrepagella-math] [\s!features={\s!math\mathsizesuffix,mathextra},\s!fallbacks=euleroverpagella,\s!goodies=pagella-with-euler-math]
\stoptypescript
\starttypescript [\s!math] [pagellaovereuler] [\s!name]
- \definefontsynonym [MathRoman] [\s!file:euler.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!fallbacks=pagellaovereuler]
+ \definefontsynonym [MathRoman] [\s!file:euler-math.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!fallbacks=pagellaovereuler,\s!goodies=euler-with-pagella-math]
\stoptypescript
\starttypescript [pagella-with-euler]
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-gentium.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-gentium.mkiv
index 751ca87e7e5..20e6f79ff11 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-gentium.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-gentium.mkiv
@@ -1,36 +1,81 @@
%D \module
%D [ file=type-gentium,
-%D version=2013.05.02,
+%D version=20220521,,
%D title=\CONTEXT\ Typescript Macros,
%D subtitle=Typescript file for Gentium,
-%D author={Thomas A. Schmitz and Mojca Miklavec},
+%D author=Hans Hagen,
%D date=\currentdate,
-%D copyright={Mojca and Thomas}]
-
-% One probably has to enable the 'aalt' feature too.
-
-\starttypescript [serif] [gentium]
- \definefontsynonym [Gentium-Roman] [file:GentiumPlus-R] [features=default]
- \definefontsynonym [Gentium-Italic] [file:GentiumPlus-I] [features=default]
- \definefontsynonym [Gentium-Bold] [file:GenBasB] [features=default]
- \definefontsynonym [Gentium-BoldItalic] [file:GenBasBI] [features=default]
- \definefontsynonym [Gentium-Slanted] [Gentium-Italic]
- \definefontsynonym [Gentium-BoldSlanted] [Gentium-BoldItalic]
- \definefontsynonym [Gentium-RomanCaps] [file:GentiumPlus-R] [features=smallcaps]
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+
+% The file is derived from one by Thomas and Mojca (20130502).
+
+\usetypescriptfile[dejavu]
+
+\starttypescript [serif] [gentium,gentiumplus]
+ \definefontsynonym [Gentium-Roman] [file:GentiumPlus-Regular] [features=default]
+ \definefontsynonym [Gentium-Italic] [file:GentiumPlus-Italic] [features=default]
+ \definefontsynonym [Gentium-Bold] [file:GentiumPlus-Bold] [features=default]
+ \definefontsynonym [Gentium-BoldItalic] [file:GentiumPlus-BoldItalic] [features=default]
+ \definefontsynonym [Gentium-Slanted] [file:GentiumPlus-Regular] [features={default,slanted}]
+ \definefontsynonym [Gentium-BoldSlanted] [file:GentiumPlus-Bold] [features={default,slanted}]
+\stoptypescript
+
+\starttypescript [serif] [gentiumbook]
+ \definefontsynonym [Gentium-Roman] [file:GentiumBookPlus-Regular] [features=default]
+ \definefontsynonym [Gentium-Italic] [file:GentiumBookPlus-Italic] [features=default]
+ \definefontsynonym [Gentium-Bold] [file:GentiumBookPlus-Bold] [features=default]
+ \definefontsynonym [Gentium-BoldItalic] [file:GentiumBookPlus-BoldItalic] [features=default]
+ \definefontsynonym [Gentium-Slanted] [file:GentiumBookPlus-Regular] [features={default,slanted}]
+ \definefontsynonym [Gentium-BoldSlanted] [file:GentiumBookPlus-Bold] [features={default,slanted}]
\stoptypescript
-\starttypescript [serif] [gentium] [name]
+\starttypescript [serif] [gentium,gentiumplus,gentiumbook] [name]
\definefontsynonym [Serif] [Gentium-Roman]
\definefontsynonym [SerifItalic] [Gentium-Italic]
\definefontsynonym [SerifBold] [Gentium-Bold]
\definefontsynonym [SerifBoldItalic] [Gentium-BoldItalic]
\definefontsynonym [SerifSlanted] [Gentium-Slanted]
\definefontsynonym [SerifBoldSlanted] [Gentium-BoldSlanted]
- \definefontsynonym [SerifCaps] [Serif]
- \definefontsynonym [OldStyle] [Serif]
- \definefontsynonym [SerifCaps] [Gentium-RomanCaps]
\stoptypescript
-\starttypescript [gentium]
- \definetypeface [gentium] [rm] [serif] [gentium] [default] [features=default]
+% HH: we probably need to rscale dejavu here .. feel free to suggest
+
+\starttypescript [gentium,gentiumplus,gentiumbook]
+ \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default] [features=default]
+ \definetypeface [\typescriptone] [ss] [sans] [dejavu] [default] [features=default]
+ \definetypeface [\typescriptone] [tt] [mono] [dejavu] [default] [features=default]
+ \definetypeface [\typescriptone] [mm] [math] [dejavu] [default]
\stoptypescript
+
+\continueifinputfile{type-imp-gentium.mkiv}
+
+\usemodule[article-basic,scite]
+
+\setuplayout[tight]
+
+\usebodyfont [gentiumbook]
+\setupbodyfont[gentiumplus]
+
+\starttext
+
+\protected\def\TestLine#1{%
+ \NC #1
+ \NC \switchtobodyfont[#1]\tf normal
+ \NC \switchtobodyfont[#1]\bf bold
+ \NC \switchtobodyfont[#1]\it italic
+ \NC \switchtobodyfont[#1]\bi bolditalic
+ \NC \switchtobodyfont[#1]\sl slanted
+ \NC \switchtobodyfont[#1]\bs boldslanted
+ \NC \NR
+}
+
+\starttabulate[|T|c|c|c|c|c|c|]
+ \TestLine{gentiumplus}
+ \TestLine{gentiumbook}
+\stoptabulate
+
+\switchtobodyfont[8pt]
+
+\typefile[option=TEX]{type-imp-gentium.mkiv}
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-hcrfonts.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-hcrfonts.mkiv
new file mode 100644
index 00000000000..60ce20bf0cc
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-hcrfonts.mkiv
@@ -0,0 +1,141 @@
+%D \module
+%D [ file=type-imp-unfonts,
+%D version=2012.03.11,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=UnFonts,
+%D author=Dalyoung \& Hans,
+%D date=\currentdate,
+%D copyright=Dalyoung \& Hans]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% usage: \setupbodyfont[hcrfonts]
+
+\loadtypescriptfile[texgyre]
+
+\definefontfeature
+ [kr-default]
+ [mode=node,script=hang,lang=kor]
+
+\definefontfeature
+ [kr-slanted]
+ [mode=node,script=hang,lang=kor,slant=.2]
+
+\definefontfeature
+ [kr-latin-default]
+ [default]
+
+\definefontfeature
+ [kr-latin-slanted]
+ [krlatindefault]
+ [slant=.2]
+
+\definefontfeature
+ [kr-latin-slanted-mono]
+ [slant=.2]
+
+\definefontfeature
+ [kr-latin-smallcaps]
+ [krlatindefault]
+ [smcp=yes]
+
+\definefontfeature
+ [kr-latin-smallcaps-mono]
+ [cmcp=yes]
+
+\definefontfallback[kr-serif] [texgyrepagella-regular*kr-latin-default] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-serifbold] [texgyrepagella-bold*kr-latin-default] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-serifitalic] [texgyrepagella-italic*kr-latin-default] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-serifbolditalic] [texgyrepagella-bolditalic*kr-latin-default] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-serifslanted] [texgyrepagella-regular*kr-latin-slanted] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-serifboldslanted][texgyrepagella-bold*kr-latin-slanted] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-serifcaps] [texgyrepagella-regular*kr-latin-smallcaps] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-sans] [texgyreheros-regular*kr-latin-default] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-sansbold] [texgyreheros-bold*kr-latin-default] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-sansitalic] [texgyreheros-italic*kr-latin-default] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-sansbolditalic] [texgyreheros-bolditalic*kr-latin-default] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-sansslanted] [texgyreheros-regular*kr-latin-slanted] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-sansboldslanted] [texgyreheros-bold*kr-latin-slanted] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-sanscaps] [texgyreheros-regular*kr-latin-smallcaps] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-mono] [texgyrecursor-regular] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-monobold] [texgyrecursor-bold] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-monoitalic] [texgyrecursor-italic] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-monobolditalic] [texgyrecursor-bolditalic] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-monoslanted] [texgyrecursor-regular*kr-latin-slanted-mono] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-monoboldslanted] [texgyrecursor-bold*kr-latin-slanted-mono] [0x0000-0x0400][force=yes]
+\definefontfallback[kr-monocaps] [texgyrecursor-regular*kr-latin-smallcaps-mono][0x0000-0x0400][force=yes]
+
+\starttypescriptcollection[hcrLVT]
+
+ \starttypescript [\s!serif] [hcrBatang]
+ \definefontsynonym [hcrBatang] [\s!file:HanBatang-LVT.ttf] [\s!features=kr-default,\s!fallbacks=kr-serif]
+ \definefontsynonym [hcrBatangBold] [\s!file:HanBatangB-LVT.ttf][\s!features=kr-default,\s!fallbacks=kr-serifbold]
+ \definefontsynonym [hcrBatangItalic] [\s!file:HanBatang-LVT.ttf] [\s!features=kr-slanted,\s!fallbacks=kr-serifitalic]
+ \definefontsynonym [hcrBatangBolditalic] [\s!file:HanBatangB-LVT.ttf][\s!features=kr-slanted,\s!fallbacks=kr-serifbolditalic]
+ \definefontsynonym [hcrBatangSlanted] [\s!file:HanBatang-LVT.ttf] [\s!features=kr-slanted,\s!fallbacks=kr-serifslanted]
+ \definefontsynonym [hcrBatangBoldslanted][\s!file:HanBatangB-LVT.ttf][\s!features=kr-slanted,\s!fallbacks=kr-serifboldslanted]
+ \definefontsynonym [hcrBatangCaps] [\s!file:HanBatang-LVT.ttf] [\s!features=kr-default,\s!fallbacks=kr-serifcaps]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [hcrDotum]
+ \definefontsynonym[hcrDotum] [\s!file:HanDotum-LVT.ttf] [\s!features=kr-default,\s!fallbacks=kr-sans]
+ \definefontsynonym[hcrDotumBold] [\s!file:HanDotumB-LVT.ttf] [\s!features=kr-default,\s!fallbacks=kr-sansbold]
+ \definefontsynonym[hcrDotumItalic] [\s!file:HanDotum-LVT.ttf] [\s!features=kr-slanted,\s!fallbacks=kr-sansitalic]
+ \definefontsynonym[hcrDotumBolditalic] [\s!file:HanDotumB-LVT.ttf] [\s!features=kr-slanted,\s!fallbacks=kr-sansbolditalic]
+ \definefontsynonym[hcrDotumSlanted] [\s!file:HanDotum-LVT.ttf] [\s!features=kr-slanted,\s!fallbacks=kr-sansslanted]
+ \definefontsynonym[hcrDotumBoldslanted] [\s!file:HanDotumB-LVT.ttf] [\s!features=kr-slanted,\s!fallbacks=kr-sansboldslanted]
+ \definefontsynonym[hcrDotumCaps] [\s!file:HanDotum-LVT.ttf] [\s!features=kr-default,\s!fallbacks=kr-sanscaps]
+ \stoptypescript
+
+ \starttypescript [\s!mono] [hcrType]
+ \definefontsynonym[hcrType] [\s!file:UnTaza.ttf] [\s!features=kr-default,\s!fallbacks=kr-mono]
+ \definefontsynonym[hcrTypeBold] [\s!file:UnTaza.ttf] [\s!features=kr-default,\s!fallbacks=kr-monobold]
+ \definefontsynonym[hcrTypeItalic] [\s!file:UnTaza.ttf] [\s!features=kr-slanted,\s!fallbacks=kr-monoitalic]
+ \definefontsynonym[hcrTypeBolditalic] [\s!file:UnTaza.ttf] [\s!features=kr-slanted,\s!fallbacks=kr-monobolditalic]
+ \definefontsynonym[hcrTypeSlanted] [\s!file:UnTaza.ttf] [\s!features=kr-slanted,\s!fallbacks=kr-monoslanted]
+ \definefontsynonym[hcrTypeBoldslanted] [\s!file:UnTaza.ttf] [\s!features=kr-slanted,\s!fallbacks=kr-monoboldslanted]
+ \definefontsynonym[hcrTypeCaps] [\s!file:UnTaza.ttf] [\s!features=kr-default,\s!fallbacks=kr-monocaps]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [hcrBatang] [\s!name]
+ \definefontsynonym[\s!Serif] [hcrBatang]
+ \definefontsynonym[\s!SerifBold] [hcrBatangBold]
+ \definefontsynonym[\s!SerifItalic] [hcrBatangItalic]
+ \definefontsynonym[\s!SerifBoldItalic] [hcrBatangBolditalic]
+ \definefontsynonym[\s!SerifSlanted] [hcrBatangSlanted]
+ \definefontsynonym[\s!SerifBoldSlanted][hcrBatangBoldslanted]
+ \definefontsynonym[\s!SerifCaps] [hcrBatangCaps]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [hcrDotum] [\s!name]
+ \definefontsynonym[\s!Sans] [hcrDotum]
+ \definefontsynonym[\s!SansBold] [hcrDotumBold]
+ \definefontsynonym[\s!SansItalic] [hcrDotumItalic]
+ \definefontsynonym[\s!SansBoldItalic] [hcrDotumBolditalic]
+ \definefontsynonym[\s!SansSlanted] [hcrDotumSlanted]
+ \definefontsynonym[\s!SansBoldSlanted] [hcrDotumBoldslanted]
+ \definefontsynonym[\s!SansCaps] [hcrDotumCaps]
+ \stoptypescript
+
+ \starttypescript [\s!mono] [hcrType] [\s!name]
+ \definefontsynonym[\s!Mono] [hcrType]
+ \definefontsynonym[\s!MonoBold] [hcrTypeBold]
+ \definefontsynonym[\s!MonoItalic] [hcrTypeItalic]
+ \definefontsynonym[\s!MonoBoldItalic] [hcrTypeBolditalic]
+ \definefontsynonym[\s!MonoSlanted] [hcrTypeSlanted]
+ \definefontsynonym[\s!MonoBoldSlanted] [hcrTypeBoldslanted]
+ \definefontsynonym[\s!MonoCaps] [hcrTypeCaps]
+ \stoptypescript
+
+ % xits might get replaced with a pagella once we have it
+
+ \starttypescript[hcrfonts]
+ \definetypeface [hcrfonts] [\s!rm] [\s!serif] [hcrBatang]
+ \definetypeface [hcrfonts] [\s!ss] [\s!sans] [hcrDotum]
+ \definetypeface [hcrfonts] [\s!tt] [\s!mono] [hcrType]
+ \definetypeface [hcrfonts] [\s!mm] [\s!math] [pagella]
+ \stoptypescript
+
+\stoptypescriptcollection \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-iwona.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-iwona.mkiv
index 88cb7e719c3..f4373125083 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-iwona.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-iwona.mkiv
@@ -3,7 +3,7 @@
%D version=2010.06.21,
%D title=\CONTEXT\ Typescript Macros,
%D subtitle=Iwona,
-%D author=Mojca Miklavec \& Hans Hagen,
+%D author=Mojca Miklavec \& Hans Hagen \& Mikael Sundqvist,
%D date=\currentdate,
%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
%C
@@ -13,69 +13,65 @@
\starttypescriptcollection[iwona]
- % maybe this will change in Iwona-Math-Letters and Iwona-Math-Letters-Italic
-
- % These names are a depressing mess. They have changed over time and are
- % still not consistent. I'd expect Bold-Regular and Bold-Italic.
-
- \starttypescript [\s!sans] [iwona-light,iwona,iwona-medium,iwona-heavy,iwona-light-cond,iwona-cond,iwona-medium-cond,iwona-heavy-cond]
-
- \definefontsynonym [Iwona-Regular] [\s!file:Iwona-Regular] [\s!features=\s!default]
- \definefontsynonym [Iwona-Italic] [\s!file:Iwona-Italic] [\s!features=\s!default]
- \definefontsynonym [Iwona-Bold] [\s!file:Iwona-Bold] [\s!features=\s!default]
- \definefontsynonym [Iwona-BoldItalic] [\s!file:Iwona-BoldItalic] [\s!features=\s!default]
- \definefontsynonym [Iwona-Light-Regular] [\s!file:IwonaLight-Regular] [\s!features=\s!default]
- \definefontsynonym [Iwona-Light-Italic] [\s!file:IwonaLight-Italic] [\s!features=\s!default]
- \definefontsynonym [Iwona-Medium-Regular] [\s!file:IwonaMedium-Regular] [\s!features=\s!default]
- \definefontsynonym [Iwona-Medium-Italic] [\s!file:IwonaMedium-Italic] [\s!features=\s!default]
- \definefontsynonym [Iwona-Heavy-Regular] [\s!file:IwonaHeavy-Regular] [\s!features=\s!default]
- \definefontsynonym [Iwona-Heavy-Italic] [\s!file:IwonaHeavy-Italic] [\s!features=\s!default]
-
- \definefontsynonym [Iwona-CapsRegular] [\s!file:Iwona-Regular] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsItalic] [\s!file:Iwona-Italic] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsBold] [\s!file:Iwona-Bold] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsBoldItalic] [\s!file:Iwona-BoldItalic] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsLight] [\s!file:IwonaLight-Regular] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsLight-Italic] [\s!file:IwonaLight-Italic] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsMedium] [\s!file:IwonaMedium-Regular] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsMedium-Italic] [\s!file:IwonaMedium-Italic] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsHeavy] [\s!file:IwonaHeavy-Regular] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsHeavy-Italic] [\s!file:IwonaHeavy-Italic] [\s!features=\s!smallcaps]
-
- \definefontsynonym [Iwona-CondRegular] [\s!file:IwonaCond-Regular] [\s!features=\s!default]
- \definefontsynonym [Iwona-CondItalic] [\s!file:IwonaCond-Italic] [\s!features=\s!default]
- \definefontsynonym [Iwona-CondBold] [\s!file:IwonaCond-Bold] [\s!features=\s!default]
- \definefontsynonym [Iwona-CondBoldItalic] [\s!file:IwonaCond-BoldItalic] [\s!features=\s!default]
- \definefontsynonym [Iwona-CondLight-Regular] [\s!file:IwonaCondLight-Regular] [\s!features=\s!default]
- \definefontsynonym [Iwona-CondLight-Italic] [\s!file:IwonaCondLight-Italic] [\s!features=\s!default]
- \definefontsynonym [Iwona-CondMedium-Regular] [\s!file:IwonaCondMedium-Regular] [\s!features=\s!default]
- \definefontsynonym [Iwona-CondMedium-Italic] [\s!file:IwonaCondMedium-Italic] [\s!features=\s!default]
- \definefontsynonym [Iwona-CondHeavy-Regular] [\s!file:IwonaCondHeavy-Regular] [\s!features=\s!default]
- \definefontsynonym [Iwona-CondHeavy-Italic] [\s!file:IwonaCondHeavy-Italic] [\s!features=\s!default]
-
- \definefontsynonym [Iwona-CapsCondRegular] [\s!file:IwonaCond-Regular] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsCondItalic] [\s!file:IwonaCond-Italic] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsCondBold] [\s!file:IwonaCond-Bold] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsCondBoldItalic] [\s!file:IwonaCond-BoldItalic] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsCondLight-Regular] [\s!file:IwonaCondLight-Regular] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsCondLight-Italic] [\s!file:IwonaCondLight-Italic] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsCondMedium-Regular][\s!file:IwonaCondMedium-Regular] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsCondMedium-Italic] [\s!file:IwonaCondMedium-Italic] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsCondHeavy-Regular] [\s!file:IwonaCondHeavy-Regular] [\s!features=\s!smallcaps]
- \definefontsynonym [Iwona-CapsCondHeavy-Italic] [\s!file:IwonaCondHeavy-Italic] [\s!features=\s!smallcaps]
+ \startsetups[iwona]
+ % \setupmathfence [\c!alternative=1]%
+ \setmathfenceparameter \c!alternative{1}%
+% \letmathfractionparameter\c!rule\v!symbol
+% \setmathfractionparameter\c!middle{"203E}%
+% \letmathradicalparameter \c!rule\v!symbol
+% \setmathradicalparameter \c!top{\radicalbarextenderuc}%
+% \setmathfenceparameter \c!alternative{1}%
+ \stopsetups
+
+ \startsetups[iwona-light] \directsetup{antykwa}\stopsetups
+ \startsetups[iwona-medium] \directsetup{antykwa}\stopsetups
+ \startsetups[iwona-heavy] \directsetup{antykwa}\stopsetups
+ \startsetups[iwona-cond] \directsetup{antykwa}\stopsetups
+ \startsetups[iwona-light-cond] \directsetup{antykwa}\stopsetups
+ \startsetups[iwona-medium-cond]\directsetup{antykwa}\stopsetups
+ \startsetups[iwona-heavy-cond] \directsetup{antykwa}\stopsetups
+
+ \definefontfeature[virtualmath-iwona] [virtualmath][virtualweight=iwona]
+ \definefontfeature[virtualmath-iwona-light] [virtualmath][virtualweight=iwona-light]
+ \definefontfeature[virtualmath-iwona-medium][virtualmath][virtualweight=iwona-medium]
+ \definefontfeature[virtualmath-iwona-heavy] [virtualmath][virtualweight=iwona-heavy]
+
+ \starttypescript [\s!sans] [iwona,iwona-light,iwona-medium,iwona-heavy,iwona-cond,iwona-light-cond,iwona-medium-cond,iwona-heavy-cond]
+
+ \definefontsynonym [Iwona-Regular] [\s!file:Iwona-Regular] [\s!features=\s!default]
+ \definefontsynonym [Iwona-Italic] [\s!file:Iwona-Italic] [\s!features=\s!default]
+ \definefontsynonym [Iwona-Bold] [\s!file:Iwona-Bold] [\s!features=\s!default]
+ \definefontsynonym [Iwona-BoldItalic] [\s!file:Iwona-BoldItalic] [\s!features=\s!default]
+ \definefontsynonym [Iwona-Light-Regular] [\s!file:IwonaLight-Regular] [\s!features=\s!default]
+ \definefontsynonym [Iwona-Light-Italic] [\s!file:IwonaLight-Italic] [\s!features=\s!default]
+ \definefontsynonym [Iwona-Medium-Regular] [\s!file:IwonaMedium-Regular] [\s!features=\s!default]
+ \definefontsynonym [Iwona-Medium-Italic] [\s!file:IwonaMedium-Italic] [\s!features=\s!default]
+ \definefontsynonym [Iwona-Heavy-Regular] [\s!file:IwonaHeavy-Regular] [\s!features=\s!default]
+ \definefontsynonym [Iwona-Heavy-Italic] [\s!file:IwonaHeavy-Italic] [\s!features=\s!default]
+
+ \definefontsynonym [Iwona-CondRegular] [\s!file:IwonaCond-Regular] [\s!features=\s!default]
+ \definefontsynonym [Iwona-CondItalic] [\s!file:IwonaCond-Italic] [\s!features=\s!default]
+ \definefontsynonym [Iwona-CondBold] [\s!file:IwonaCond-Bold] [\s!features=\s!default]
+ \definefontsynonym [Iwona-CondBoldItalic] [\s!file:IwonaCond-BoldItalic] [\s!features=\s!default]
+ \definefontsynonym [Iwona-CondLight-Regular] [\s!file:IwonaCondLight-Regular] [\s!features=\s!default]
+ \definefontsynonym [Iwona-CondLight-Italic] [\s!file:IwonaCondLight-Italic] [\s!features=\s!default]
+ \definefontsynonym [Iwona-CondMedium-Regular] [\s!file:IwonaCondMedium-Regular] [\s!features=\s!default]
+ \definefontsynonym [Iwona-CondMedium-Italic] [\s!file:IwonaCondMedium-Italic] [\s!features=\s!default]
+ \definefontsynonym [Iwona-CondHeavy-Regular] [\s!file:IwonaCondHeavy-Regular] [\s!features=\s!default]
+ \definefontsynonym [Iwona-CondHeavy-Italic] [\s!file:IwonaCondHeavy-Italic] [\s!features=\s!default]
\stoptypescript
% [all] is redundant
\starttypescript [\s!math][iwona][\s!all]
- \definefontsynonym[\s!MathRoman][iwonamath@iwona-math]
+ \definefontsynonym[\s!MathRoman] [iwonamath@iwona-math]
\stoptypescript
\starttypescript [\s!math][iwona-light][\s!all]
- \definefontsynonym[\s!MathRoman][iwonalightmath@iwona-light-math]
+ \definefontsynonym[\s!MathRoman] [iwonalightmath@iwona-light-math]
\stoptypescript
\starttypescript [\s!math][iwona-medium][\s!all]
- \definefontsynonym[\s!MathRoman][iwonamediummath@iwona-medium-math]
+ \definefontsynonym[\s!MathRoman] [iwonamediummath@iwona-medium-math]
\stoptypescript
\starttypescript [\s!math][iwona-heavy][\s!all]
\definefontsynonym[\s!MathRoman][iwonaheavymath@iwona-heavy-math]
@@ -87,142 +83,59 @@
\starttypescript [\s!sans] [iwona-light] [\s!name]
\setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [Iwona-Light-Regular]
- \definefontsynonym [\s!SansItalic] [Iwona-Light-Italic]
- \definefontsynonym [\s!SansBold] [Iwona-Medium-Regular]
- \definefontsynonym [\s!SansBoldItalic] [Iwona-Medium-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsLight]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsLightItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsMedium]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsMediumItalic]
- \stoptypescript
-
- \starttypescript [\s!sans] [iwona-light-caps] [\s!name]
- \setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [Iwona-CapsLight-Regular]
- \definefontsynonym [\s!SansItalic] [Iwona-CapsLight-Italic]
- \definefontsynonym [\s!SansBold] [Iwona-CapsMedium-Regular]
- \definefontsynonym [\s!SansBoldItalic] [Iwona-CapsMedium-Italic]
+ \definefontsynonym [\s!Sans] [Iwona-Light-Regular]
+ \definefontsynonym [\s!SansItalic] [Iwona-Light-Italic]
+ \definefontsynonym [\s!SansBold] [Iwona-Medium-Regular]
+ \definefontsynonym [\s!SansBoldItalic] [Iwona-Medium-Italic]
\stoptypescript
\starttypescript [\s!sans] [iwona] [\s!name]
\setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [Iwona-Regular]
- \definefontsynonym [\s!SansItalic] [Iwona-Italic]
- \definefontsynonym [\s!SansBold] [Iwona-Bold]
- \definefontsynonym [\s!SansBoldItalic] [Iwona-BoldItalic]
- \definefontsynonym [SansCaps] [Iwona-CapsRegular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsBold]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsBoldItalic]
- \stoptypescript
-
- \starttypescript [\s!sans] [iwona-caps] [\s!name]
- \setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [Iwona-CapsRegular]
- \definefontsynonym [\s!SansItalic] [Iwona-CapsItalic]
- \definefontsynonym [\s!SansBold] [Iwona-CapsBold]
- \definefontsynonym [\s!SansBoldItalic] [Iwona-CapsBoldItalic]
+ \definefontsynonym [\s!Sans] [Iwona-Regular]
+ \definefontsynonym [\s!SansItalic] [Iwona-Italic]
+ \definefontsynonym [\s!SansBold] [Iwona-Bold]
+ \definefontsynonym [\s!SansBoldItalic] [Iwona-BoldItalic]
\stoptypescript
\starttypescript [\s!sans] [iwona-medium] [\s!name]
\setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [Iwona-Medium-Regular]
- \definefontsynonym [\s!SansItalic] [Iwona-Medium-Italic]
- \definefontsynonym [\s!SansBold] [Iwona-Heavy-Regular]
- \definefontsynonym [\s!SansBoldItalic] [Iwona-Heavy-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsMedium-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
- \stoptypescript
-
- \starttypescript [\s!sans] [iwona-medium-caps] [\s!name]
- \setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [\s!SansItalic] [Iwona-CapsMedium-Italic]
- \definefontsynonym [\s!SansBold] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [\s!SansBoldItalic] [Iwona-CapsHeavy-Italic]
+ \definefontsynonym [\s!Sans] [Iwona-Medium-Regular]
+ \definefontsynonym [\s!SansItalic] [Iwona-Medium-Italic]
+ \definefontsynonym [\s!SansBold] [Iwona-Heavy-Regular]
+ \definefontsynonym [\s!SansBoldItalic] [Iwona-Heavy-Italic]
\stoptypescript
\starttypescript [\s!sans] [iwona-heavy] [\s!name]
\setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [Iwona-Heavy-Regular]
- \definefontsynonym [\s!SansItalic] [Iwona-Heavy-Italic]
- \definefontsynonym [\s!SansBold] [Iwona-Heavy-Regular]
- \definefontsynonym [\s!SansBoldItalic] [Iwona-Heavy-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavy-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
- \stoptypescript
-
- \starttypescript [\s!sans] [iwona-heavy-caps] [\s!name]
- \setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [SansCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsHeavy-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsHeavy-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsHeavy-Italic]
+ \definefontsynonym [\s!Sans] [Iwona-Heavy-Regular]
+ \definefontsynonym [\s!SansItalic] [Iwona-Heavy-Italic]
+ \definefontsynonym [\s!SansBold] [Iwona-Heavy-Regular]
+ \definefontsynonym [\s!SansBoldItalic] [Iwona-Heavy-Italic]
\stoptypescript
\starttypescript [\s!sans] [iwona-light-cond] [\s!name]
\setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [Iwona-CondLight-Regular]
- \definefontsynonym [\s!SansItalic] [Iwona-CondLight-Italic]
- \definefontsynonym [\s!SansBold] [Iwona-CondMedium-Regular]
- \definefontsynonym [\s!SansBoldItalic] [Iwona-CondMedium-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsCondLight-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsCondLight-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsCondMedium-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondMedium-Italic]
+ \definefontsynonym [\s!Sans] [Iwona-CondLight-Regular]
+ \definefontsynonym [\s!SansItalic] [Iwona-CondLight-Italic]
+ \definefontsynonym [\s!SansBold] [Iwona-CondMedium-Regular]
+ \definefontsynonym [\s!SansBoldItalic] [Iwona-CondMedium-Italic]
\stoptypescript
- \starttypescript [\s!sans] [iwona-light-cond-caps,iwona-light-caps-cond] [\s!name]
- \setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [Iwona-CapsCondLight-Regular]
- \definefontsynonym [\s!SansItalic] [Iwona-CapsCondLight-Italic]
- \definefontsynonym [\s!SansBold] [Iwona-CapsCondMedium-Regular]
- \definefontsynonym [\s!SansBoldItalic] [Iwona-CapsCondMedium-Italic]
- \stoptypescript
\starttypescript [\s!sans] [iwona-cond] [\s!name]
\setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [Iwona-CondRegular]
- \definefontsynonym [\s!SansItalic] [Iwona-CondItalic]
- \definefontsynonym [\s!SansBold] [Iwona-CondBold]
- \definefontsynonym [\s!SansBoldItalic] [Iwona-CondBoldItalic]
- \definefontsynonym [SansCaps] [Iwona-CapsCondRegular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsCondItalic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsCondBold]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondBoldItalic]
- \stoptypescript
-
- \starttypescript [\s!sans] [iwona-cond-caps,iwona-caps-cond] [\s!name]
- \setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [Iwona-CapsCondRegular]
- \definefontsynonym [\s!SansItalic] [Iwona-CapsCondItalic]
- \definefontsynonym [\s!SansBold] [Iwona-CapsCondBold]
- \definefontsynonym [\s!SansBoldItalic] [Iwona-CapsCondBoldItalic]
+ \definefontsynonym [\s!Sans] [Iwona-CondRegular]
+ \definefontsynonym [\s!SansItalic] [Iwona-CondItalic]
+ \definefontsynonym [\s!SansBold] [Iwona-CondBold]
+ \definefontsynonym [\s!SansBoldItalic] [Iwona-CondBoldItalic]
\stoptypescript
\starttypescript [\s!sans] [iwona-medium-cond] [\s!name]
\setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [Iwona-CondMedium-Regular]
- \definefontsynonym [\s!SansItalic] [Iwona-CondMedium-Italic]
- \definefontsynonym [\s!SansBold] [Iwona-CondHeavy-Regular]
- \definefontsynonym [\s!SansBoldItalic] [Iwona-CondHeavy-Italic]
- \definefontsynonym [SansCaps] [Iwona-CapsCondHeavy-Regular]
- \definefontsynonym [SansItalicCaps] [Iwona-CapsCondMedium-Italic]
- \definefontsynonym [SansBoldCaps] [Iwona-CapsCondHeavy-Regular]
- \definefontsynonym [SansBoldItalicCaps] [Iwona-CapsCondHeavy-Italic]
- \stoptypescript
-
- \starttypescript [\s!sans] [iwona-medium-cond-caps,iwona-medium-caps-cond] [\s!name]
- \setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [Iwona-CapsCondHeavy-Regular]
- \definefontsynonym [\s!SansItalic] [Iwona-CapsCondMedium-Italic]
- \definefontsynonym [\s!SansBold] [Iwona-CapsCondHeavy-Regular]
- \definefontsynonym [\s!SansBoldItalic] [Iwona-CapsCondHeavy-Italic]
+ \definefontsynonym [\s!Sans] [Iwona-CondMedium-Regular]
+ \definefontsynonym [\s!SansItalic] [Iwona-CondMedium-Italic]
+ \definefontsynonym [\s!SansBold] [Iwona-CondHeavy-Regular]
+ \definefontsynonym [\s!SansBoldItalic] [Iwona-CondHeavy-Italic]
\stoptypescript
\starttypescript [iwona,iwona-light,iwona-heavy,iwona-medium]
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-koeielettersot.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-koeielettersot.mkiv
index e3e8fc277b4..da04010166a 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-koeielettersot.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-koeielettersot.mkiv
@@ -134,11 +134,11 @@
\setupbodyfont[cows]
-\input tufte
+% \input tufte
-\stoptext
+% \stoptext
-\starttext
+% \starttext
\loadtypescriptfile[cowotf]
@@ -147,17 +147,17 @@
\definecolor[cowblue] [b=.50]
\definecolor[cowyellow][y=.25]
+\definefontcolorpalette[cows][cowgreen,cowyellow,cowblue,cowred]
+
\startluacode
- fonts.handlers.otf.registerpalette("demo", {
- { g = .50 },
- { y = .25 },
- { b = .50 },
- { r = .50 },
+ fonts.handlers.otf.registerpalette("cows", {
+ { g = .5 },
+ { r = .75, g = .75 },
+ { b = .5 },
+ { r = .5 },
})
\stopluacode
-\definefontcolorpalette[cows][cowgreen,cowyellow,cowblue,cowred]
-
\adaptfontfeature[cowscolored] [colr=cows]
\setupbodyfont[coloredcows,12pt]
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-kpfonts.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-kpfonts.mkiv
new file mode 100644
index 00000000000..472619cd953
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-kpfonts.mkiv
@@ -0,0 +1,105 @@
+%D \module
+%D [ file=type-kepler,
+%D version=2021.11.16,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=Kepler Opentype,
+%D author=Mikael Sundqvist & Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% NOTA BENE: class features and goodies get expanded!
+
+\starttypescriptcollection[kpfonts-opentype]
+
+ \doifunknownfontfeature {kp-sans-bold} {\definefontfeature[kp-sans-bold][boldened-15]}
+
+ \starttypescript [\s!math] [kpfonts,kpfonts-nt,kpfonts-bold,kpfonts-light,kpfonts-sans]
+ \checkedmapfontsize[\typescripttwo][\s!script] [.70]
+ \checkedmapfontsize[\typescripttwo][\s!scriptscript][.55]
+ \stoptypescript
+
+ \starttypescript [kpfonts,kpfonts-light,kpfonts-bold,kpfonts-sans,kpfonts-nt]
+ \loadfontgoodies[kpfonts-math]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!features=\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default] [\s!features=\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [\typescriptone] [\s!default] [\s!features=\s!none]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [\typescriptone] [\s!default]
+ % for the moment here:
+ % \setupmathrendering[\typescriptone][\s!it=\s!italic]
+ \quittypescriptscanning
+ \stoptypescript
+
+ \starttypescript [\s!serif] [kpfonts,kpfonts-sans,kpfonts-nt]
+ \definefontsynonym [\s!Serif] [\s!file:KpRoman-Regular.otf]
+ \definefontsynonym [\s!SerifBold] [\s!file:KpRoman-SemiBold.otf]
+ \definefontsynonym [\s!SerifItalic] [\s!file:KpRoman-Italic.otf]
+ \definefontsynonym [\s!SerifBoldItalic] [\s!file:KpRoman-SemiboldItalic.otf]
+ \definefontsynonym [\s!SerifSlanted] [\s!SerifItalic]
+ \definefontsynonym [\s!SerifBoldSlanted] [\s!SerifBoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!math] [kpfonts]
+ \definefontsynonym [\s!MathRoman] [\s!file:KpMath-Regular.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra},\s!goodies=kpfonts-math]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:KpMath-Semibold.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra},\s!goodies=kpfonts-math]
+ \stoptypescript
+
+ \starttypescript [\s!math] [kpfonts-nt]
+ \definefontsynonym [\s!MathRoman] [\s!file:KpMath-Regular.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra}]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:KpMath-Semibold.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra}]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [kpfonts-light]
+ \definefontsynonym [\s!Serif] [\s!file:KpRoman-Light.otf]
+ \definefontsynonym [\s!SerifBold] [\s!file:KpRoman-Regular.otf]
+ \definefontsynonym [\s!SerifItalic] [\s!file:KpRoman-LightItalic.otf]
+ \definefontsynonym [\s!SerifBoldItalic] [\s!file:KpRoman-Italic.otf]
+ \definefontsynonym [\s!SerifSlanted] [\s!SerifItalic]
+ \definefontsynonym [\s!SerifBoldSlanted] [\s!SerifBoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!math] [kpfonts-light]
+ \definefontsynonym [\s!MathRoman] [\s!file:KpMath-Light.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra},\s!goodies=kpfonts-math]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:KpMath-Regular.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra},\s!goodies=kpfonts-math]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [kpfonts-bold]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [\s!file:KpRoman-Regular.otf]
+ \definefontsynonym [\s!SerifBold] [\s!file:KpRoman-Bold.otf]
+ \definefontsynonym [\s!SerifItalic] [\s!file:KpRoman-Italic.otf]
+ \definefontsynonym [\s!SerifBoldItalic] [\s!file:KpRoman-BoldItalic.otf]
+ \stoptypescript
+
+ \starttypescript [\s!math] [kpfonts-bold]
+ \definefontsynonym [\s!MathRoman] [\s!file:KpMath-Regular.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra},\s!goodies=kpfonts-math]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:KpMath-Bold.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra},\s!goodies=kpfonts-math]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [kpfonts,kpfonts-sans,kpfonts-light,kpfonts-bold,kpfonts-nt]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [\s!file:KpSans-Regular.otf]
+ \definefontsynonym [\s!SansBold] [\s!file:KpSans-Bold.otf]
+ \definefontsynonym [\s!SansItalic] [\s!file:KpSans-Italic.otf]
+ \definefontsynonym [\s!SansBoldItalic] [\s!file:KpSans-BoldItalic.otf]
+ \stoptypescript
+
+ \starttypescript [\s!math] [kpfonts-sans]
+ \definefontsynonym [\s!MathRoman] [\s!file:KpMath-Sans.otf] [\s!features={\s!math\mathsizesuffix,kpfonts:mathextra,mathextra},\s!goodies=kpfonts-math]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:KpMath-Sans.otf] [\s!features={\s!math\mathsizesuffix,kp-sans-bold,kpfonts:mathextra,mathextra},\s!goodies=kpfonts-math]
+ \stoptypescript
+
+ \starttypescript [\s!mono] [kpfonts,kpfonts-sans,kpfonts-light,kpfonts-bold,kpfonts-nt]
+ \setups[\s!font:\s!fallback:\s!mono]
+ \definefontsynonym [\s!Mono] [\s!file:KpMono-Regular.otf]
+ \definefontsynonym [\s!MonoBold] [\s!file:KpMono-Bold.otf]
+ \definefontsynonym [\s!MonoItalic] [\s!file:KpMono-Italic.otf]
+ \definefontsynonym [\s!MonoBoldItalic] [\s!file:KpMono-BoldItalic.otf]
+ \stoptypescript
+
+\stoptypescriptcollection
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-kurier.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-kurier.mkiv
index d83510b95b5..0bf1a43cae0 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-kurier.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-kurier.mkiv
@@ -1,9 +1,9 @@
%D \module
%D [ file=type-imp-kurier,
-%D version=2007.07.30,
+%D version=2021.10.24,
%D title=\CONTEXT\ Typescript Macros,
-%D subtitle=Kurier by JMN,
-%D author=Hans Hagen,
+%D subtitle=Kurier,
+%D author=Hans Hagen & Mikael Sundqvist,
%D date=\currentdate,
%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
%C
@@ -11,33 +11,68 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-% There are no open type fonts yet so this should be in type-one.mkiv
-% instead but we keep it here till ready.
+\starttypescriptcollection [kurier]
-\starttypescriptcollection[kurier]
+ \definefontfeature[virtualmath-kurier] [virtualmath][virtualweight=kurier]
+ \definefontfeature[virtualmath-kurier-light] [virtualmath][virtualweight=kurier-light]
+ \definefontfeature[virtualmath-kurier-medium][virtualmath][virtualweight=kurier-medium]
+ \definefontfeature[virtualmath-kurier-heavy] [virtualmath][virtualweight=kurier-heavy]
\starttypescript [\s!sans] [kurier-light,kurier,kurier-medium]
- \definefontsynonym[Kurier-Light] [kurierl]
- \definefontsynonym[Kurier-Regular] [kurierr]
- \definefontsynonym[Kurier-Medium] [kurierm]
- \definefontsynonym[Kurier-Bold] [kurierb]
- \definefontsynonym[Kurier-Heavy] [kurierh]
- \definefontsynonym[Kurier-LightItalic] [kurierli]
- \definefontsynonym[Kurier-Italic] [kurierri]
- \definefontsynonym[Kurier-MediumItalic] [kuriermi]
- \definefontsynonym[Kurier-BoldItalic] [kurierbi]
- \definefontsynonym[Kurier-HeavyItalic] [kurierhi]
- \stoptypescript
-
- \starttypescript [\s!sans] [kurier-light] [\s!name]
+ \definefontsynonym [Kurier-Light] [\s!file:kurierlightregular] [\s!features=\s!default]
+ \definefontsynonym [Kurier-LightItalic] [\s!file:kurierlightitalic] [\s!features=\s!default]
+ \definefontsynonym [Kurier-Regular] [\s!file:kurierregular] [\s!features=\s!default]
+ \definefontsynonym [Kurier-Italic] [\s!file:kurieritalic] [\s!features=\s!default]
+ \definefontsynonym [Kurier-Medium] [\s!file:kuriermediumregular] [\s!features=\s!default]
+ \definefontsynonym [Kurier-MediumItalic] [\s!file:kuriermediumitalic] [\s!features=\s!default]
+ \definefontsynonym [Kurier-Bold] [\s!file:kurierbold] [\s!features=\s!default]
+ \definefontsynonym [Kurier-BoldItalic] [\s!file:kurierbolditalic] [\s!features=\s!default]
+ \definefontsynonym [Kurier-Heavy] [\s!file:kurierheavyregular] [\s!features=\s!default]
+ \definefontsynonym [Kurier-HeavyItalic] [\s!file:kurierheavyitalic] [\s!features=\s!default]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [kurier-lightcond,kurier-cond,kurier-mediumcond]
+ \definefontsynonym [Kurier-CondLight] [\s!file:kuriercondlightregular] [\s!features=\s!default]
+ \definefontsynonym [Kurier-CondLightItalic] [\s!file:kuriercondlightitalic] [\s!features=\s!default]
+ \definefontsynonym [Kurier-CondRegular] [\s!file:kuriercondregular] [\s!features=\s!default]
+ \definefontsynonym [Kurier-CondItalic] [\s!file:kurierconditalic] [\s!features=\s!default]
+ \definefontsynonym [Kurier-CondMedium] [\s!file:kuriercondmediumregular] [\s!features=\s!default]
+ \definefontsynonym [Kurier-CondMediumItalic] [\s!file:kuriercondmediumitalic] [\s!features=\s!default]
+ \definefontsynonym [Kurier-CondBold] [\s!file:kuriercondbold] [\s!features=\s!default]
+ \definefontsynonym [Kurier-CondBoldItalic] [\s!file:kuriercondbolditalic] [\s!features=\s!default]
+ \definefontsynonym [Kurier-CondHeavy] [\s!file:kuriercondheavyregular] [\s!features=\s!default]
+ \definefontsynonym [Kurier-CondHeavyItalic] [\s!file:kuriercondheavyitalic] [\s!features=\s!default]
+ \stoptypescript
+
+ \starttypescript [\s!math][kurier][\s!all]
+ \definefontsynonym[\s!MathRoman] [kuriermath@kurier-math]
+ \definefontsynonym[\s!MathRomanBold][kuriermediummath@kurier-medium-math]
+ \stoptypescript
+ \starttypescript [\s!math][kurier-light][\s!all]
+ \definefontsynonym[\s!MathRoman][kurierlightmath@kurier-light-math]
+ \definefontsynonym[\s!MathRomanBold][kuriermath@kurier-math]
+ \stoptypescript
+ \starttypescript [\s!math][kurier-medium][\s!all]
+ \definefontsynonym[\s!MathRoman] [kuriermediummath@kurier-medium-math]
+ \definefontsynonym[\s!MathRomanBold][kurierheavymath@kurier-heavy-math]
+ \stoptypescript
+ \starttypescript [\s!math][kurier-heavy][\s!all]
+ \definefontsynonym[\s!MathRoman][kurierheavymath@kurier-heavy-math]
+ \stoptypescript
+
+ \starttypescript [\s!math] [kurier,kurier-light,kurier-medium,kurier-heavy] [\s!all]
+ \loadfontgoodies[kurier-math]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [kurier-light]
\setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [Kurier-Light-Regular]
- \definefontsynonym [\s!SansItalic] [Kurier-Light-Italic]
- \definefontsynonym [\s!SansBold] [Kurier-Medium-Regular]
- \definefontsynonym [\s!SansBoldItalic] [Kurier-Medium-Italic]
+ \definefontsynonym [\s!Sans] [Kurier-Light]
+ \definefontsynonym [\s!SansItalic] [Kurier-LightItalic]
+ \definefontsynonym [\s!SansBold] [Kurier-Medium]
+ \definefontsynonym [\s!SansBoldItalic] [Kurier-MediumItalic]
\stoptypescript
- \starttypescript [\s!sans] [kurier] [\s!name]
+ \starttypescript [\s!sans] [kurier]
\setups[\s!font:\s!fallback:\s!sans]
\definefontsynonym [\s!Sans] [Kurier-Regular]
\definefontsynonym [\s!SansItalic] [Kurier-Italic]
@@ -45,12 +80,44 @@
\definefontsynonym [\s!SansBoldItalic] [Kurier-BoldItalic]
\stoptypescript
- \starttypescript [\s!sans] [kurier-medium] [\s!name]
+ \starttypescript [\s!sans] [kurier-medium]
\setups[\s!font:\s!fallback:\s!sans]
- \definefontsynonym [\s!Sans] [Kurier-Medium-Regular]
- \definefontsynonym [\s!SansItalic] [Kurier-Medium-Italic]
- \definefontsynonym [\s!SansBold] [Kurier-Heavy-Regular]
- \definefontsynonym [\s!SansBoldItalic] [Kurier-Heavy-Italic]
+ \definefontsynonym [\s!Sans] [Kurier-Medium]
+ \definefontsynonym [\s!SansItalic] [Kurier-MediumItalic]
+ \definefontsynonym [\s!SansBold] [Kurier-Heavy]
+ \definefontsynonym [\s!SansBoldItalic] [Kurier-HeavyItalic]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [kurier-lightcond]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Kurier-CondLight]
+ \definefontsynonym [\s!SansItalic] [Kurier-CondLightItalic]
+ \definefontsynonym [\s!SansBold] [Kurier-CondMedium]
+ \definefontsynonym [\s!SansBoldItalic] [Kurier-CondMediumItalic]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [kurier-cond]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Kurier-CondRegular]
+ \definefontsynonym [\s!SansItalic] [Kurier-CondItalic]
+ \definefontsynonym [\s!SansBold] [Kurier-CondBold]
+ \definefontsynonym [\s!SansBoldItalic] [Kurier-CondBoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [kurier-mediumcond]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [Kurier-CondMedium]
+ \definefontsynonym [\s!SansItalic] [Kurier-CondMediumItalic]
+ \definefontsynonym [\s!SansBold] [Kurier-CondHeavy]
+ \definefontsynonym [\s!SansBoldItalic] [Kurier-CondHeavyItalic]
+ \stoptypescript
+
+ \starttypescript [kurier-light,kurier,kurier-medium,kurier-lightcond,kurier-cond,kurier-mediumcond]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [modern] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [modern] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [\typescriptone] [\s!default][text=ss]
+ \quittypescriptscanning
\stoptypescript
\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-latinmodern.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-latinmodern.mkiv
index dc31715a46a..f5082f7840a 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-latinmodern.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-latinmodern.mkiv
@@ -71,7 +71,7 @@
\definefontsynonym [MonoVariable] [LMTypewriterVarWd-Regular] [\s!features=\s!none]
\stoptypescript
- \starttypescript [\s!math] [modern,latin-modern-designsize,latin-modern] [\s!name]
+ \starttypescript [\s!math] [modern,latin-modern-designsize,latin-modern,modern-nt] [\s!name]
\loadfontgoodies[lm]
\definefontsynonym [\s!MathRoman] [LMMathRoman-Regular]
\definefontsynonym [\s!MathRomanBold] [LMMathRoman-Bold]
@@ -173,16 +173,23 @@
\definefontsynonym [LMTypewriterVarWd-DarkOblique] [\s!file:lmmonoproplt10-boldoblique] [\s!features=\s!default]
\stoptypescript
-% \starttypescript [\s!math] [modern,latin-modern]
-% \loadfontgoodies[lm]
-% \definefontsynonym [LMMathRoman-Regular] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=lm]
-% \definefontsynonym [LMMathRoman-Bold] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=lm]
-% \stoptypescript
+ \starttypescript [\s!math] [modern,modern-nt,latin-modern,modern-designsize,modern-base,%
+ modernvariable,modern-variable,%
+ modernvariablelight,modern-variable-light,%
+ modern-mono,modern-base-mono]
+ \checkedmapfontsize[\typescripttwo][\s!script] [.70]
+ \checkedmapfontsize[\typescripttwo][\s!scriptscript][.50]
+ \stoptypescript
\starttypescript [\s!math] [modern,latin-modern]
\loadfontgoodies[lm]
- \definefontsynonym [LMMathRoman-Regular] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math,mathextra},\s!goodies=lm]
- \definefontsynonym [LMMathRoman-Bold] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math-bold,lm-math,mathextra},\s!goodies=lm]
+ \definefontsynonym [LMMathRoman-Regular] [\v!file:latinmodern-math.otf] [\s!features={\s!math\mathsizesuffix,lm:mathextra,lm-math,mathextra},\s!goodies=modern-math]
+ \definefontsynonym [LMMathRoman-Bold] [\v!file:latinmodern-math.otf] [\s!features={\s!math\mathsizesuffix,lm:mathextra,lm-math-bold,lm-math,mathextra},\s!goodies=modern-math]
+ \stoptypescript
+ \starttypescript [\s!math] [modern-nt]
+ \loadfontgoodies[lm]
+ \definefontsynonym [LMMathRoman-Regular] [\v!file:latinmodern-math.otf] [\s!features={\s!math\mathsizesuffix,lm:mathextra,lm-math,mathextra}]
+ \definefontsynonym [LMMathRoman-Bold] [\v!file:latinmodern-math.otf] [\s!features={\s!math\mathsizesuffix,lm:mathextra,lm-math-bold,lm-math,mathextra}]
\stoptypescript
\starttypescript [modern-designsize-virtual]
@@ -209,6 +216,14 @@
\quittypescriptscanning
\stoptypescript
+ \starttypescript [modern-nt]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [modern] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [modern] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [modern] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [modern-nt] [\s!default]
+ \quittypescriptscanning
+ \stoptypescript
+
\starttypescript [modernvariable,modern-variable]
\definetypeface [\typescriptone] [\s!rm] [\s!serif] [modern-variable] [\s!default]
\definetypeface [\typescriptone] [\s!tt] [\s!mono] [modern-variable] [\s!default]
@@ -235,7 +250,7 @@
%D It doesn't hurt to have these, at least for the moment (can go to type-imp-symbol)
-\definefontsynonym [ZapfDingbats] [\s!file:uzdr*dingbats] % works better with symbols
+\definefontsynonym [ZapfDingbats] [\s!file:uzdr*dingbats]% works better with symbols
% \definefontsynonym [ZapfDingbats] [\s!file:uzdr] [\s!features=dingbats]% [\s!goodies=dingbats]
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-libertinus.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-libertinus.mkiv
index 26d17bc03f2..97e3b3493f3 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-libertinus.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-libertinus.mkiv
@@ -21,6 +21,8 @@
\starttypescriptcollection[libertinus]
+ \doifunknownfontfeature {libertinus-math-bold} {\definefontfeature[libertinus-math-bold][boldened]}
+
\starttypescript [\s!serif] [libertinus]
\definefontsynonym [LibertinusSerif-Regular] [\s!file:libertinusserif-regular]
\definefontsynonym [LibertinusSerif-Italic] [\s!file:libertinusserif-italic]
@@ -71,16 +73,28 @@
\definefontsynonym [\s!Mono] [LibertinusMono-Regular] [\s!features=\s!none]
\stoptypescript
+ \starttypescript [\s!math] [libertinus,libertinus-nt]
+ \checkedmapfontsize[\typescripttwo][\s!script] [.80]
+ \checkedmapfontsize[\typescripttwo][\s!scriptscript][.60]
+ \stoptypescript
+
\starttypescript [\s!math] [libertinus] [\s!name]
- \definefontsynonym[\s!MathRoman ] [\s!file:libertinusmath-regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra}]
- \definefontsynonym[\s!MathRomanBold] [\s!file:libertinusmath-regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra}]
+ \loadfontgoodies[libertinus-math]
+ \definefontsynonym[\s!MathRoman ] [\s!file:libertinusmath-regular.otf] [\s!features={\s!math\mathsizesuffix,libertinus:mathextra,mathextra},\s!goodies=libertinus-math.lfg]
+ \definefontsynonym[\s!MathRomanBold] [\s!file:libertinusmath-regular.otf] [\s!features={\s!math\mathsizesuffix,libertinus-math-bold,libertinus:mathextra,mathextra},\s!goodies=libertinus-math.lfg]
+ \stoptypescript
+
+ \starttypescript [\s!math] [libertinus-nt] [\s!name]
+ \loadfontgoodies[libertinus-math]
+ \definefontsynonym[\s!MathRoman ] [\s!file:libertinusmath-regular.otf] [\s!features={\s!math\mathsizesuffix,libertinus:mathextra,mathextra}]
+ \definefontsynonym[\s!MathRomanBold] [\s!file:libertinusmath-regular.otf] [\s!features={\s!math\mathsizesuffix,libertinus-math-bold,libertinus:mathextra,mathextra}]
\stoptypescript
- \starttypescript [libertinus]
- \definetypeface [libertinus] [\s!rm] [\s!serif] [libertinus] [\s!default]
- \definetypeface [libertinus] [\s!ss] [\s!sans] [libertinus] [\s!default]
- \definetypeface [libertinus] [\s!tt] [\s!mono] [libertinus] [\s!default]
- \definetypeface [libertinus] [\s!mm] [\s!math] [libertinus] [\s!default]
+ \starttypescript [libertinus,libertinus-nt]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [libertinus] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [libertinus] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [libertinus] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [\typescriptone] [\s!default]
\quittypescriptscanning
\stoptypescript
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lucida-opentype.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lucida.mkiv
index 61002ff0631..186854efcf3 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lucida-opentype.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-lucida.mkiv
@@ -13,9 +13,17 @@
% NOTA BENE: class features and goodies get expanded!
+\definefontfeature[mathlucida][copymathscripts=yes] % see lfg file
+
+% \definefontfeature[mathlucida][mathlucida][ss04=yes] % now we swap
+
+% \definefontfeature[mathlucida][ss03=yes]
+
\starttypescriptcollection[lucida-opentype]
- \starttypescript [lucidaot,lucidadk]
+ \doifunknownfontfeature {lucida-math-bold} {\definefontfeature[lucida-math-bold][boldened][boldmath=yes]}
+
+ \starttypescript [lucida,lucidaot,lucidadk,lucidaot-nt,lucida-nt]
\loadfontgoodies[lucida-opentype-math]
\definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default] [\s!features=\s!default]
\definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default] [\s!features=\s!default]
@@ -23,12 +31,10 @@
\definetypeface [\typescriptone] [\s!hw] [\s!handwriting] [\typescriptone] [\s!default] [\s!features=\s!default]
\definetypeface [\typescriptone] [\s!cg] [\s!calligraphy] [\typescriptone] [\s!default] [\s!features=\s!default]
\definetypeface [\typescriptone] [\s!mm] [\s!math] [\typescriptone] [\s!default]
- % for the moment here:
- \setupmathrendering[\typescriptone][\s!it=\s!italic]
\quittypescriptscanning
\stoptypescript
- \starttypescript [\s!serif] [lucidaot,lucidadk]
+ \starttypescript [\s!serif] [lucida,lucidaot,lucidadk,lucidaot-nt,lucida-nt]
\definefontsynonym [\s!Serif] [\s!file:LucidaBrightOT.otf]
\definefontsynonym [\s!SerifBold] [\s!file:LucidaBrightOT-Demi.otf]
\definefontsynonym [\s!SerifItalic] [\s!file:LucidaBrightOT-Italic.otf]
@@ -37,7 +43,7 @@
\definefontsynonym [\s!SerifBoldSlanted] [\s!SerifBoldItalic]
\stoptypescript
- \starttypescript [\s!sans] [lucidaot,lucidadk]
+ \starttypescript [\s!sans] [lucida,lucidaot,lucidadk,lucidaot-nt,lucida-nt]
\definefontsynonym [\s!Sans] [\s!file:LucidaSansOT.otf]
\definefontsynonym [\s!SansBold] [\s!file:LucidaSansOT-Demi.otf]
\definefontsynonym [\s!SansItalic] [\s!file:LucidaSansOT-Italic.otf]
@@ -46,7 +52,7 @@
\definefontsynonym [\s!SansBoldSlanted] [\s!SansBoldItalic]
\stoptypescript
- \starttypescript [\s!mono] [lucidaot]
+ \starttypescript [\s!mono] [lucida,lucidaot,lucidaot-nt,lucida-nt]
\definefontsynonym [\s!Mono] [\s!file:LucidaSansTypewriterOT.otf]
\definefontsynonym [\s!MonoBold] [\s!file:LucidaSansTypewriterOT-Bold.otf]
\definefontsynonym [\s!MonoItalic] [\s!file:LucidaSansTypewriterOT-Oblique.otf]
@@ -55,7 +61,7 @@
\definefontsynonym [\s!MonoBoldSlanted] [\s!MonoBoldItalic]
\stoptypescript
- \starttypescript [\s!mono] [lucidadk]
+ \starttypescript [\s!mono] [lucidadk,lucidaot-nt,lucida-nt]
\definefontsynonym [\s!Mono] [\s!file:LucidaGrandeMonoDK.otf]
\definefontsynonym [\s!MonoBold] [\s!file:LucidaGrandeMonoDK-Bold.otf]
\definefontsynonym [\s!MonoItalic] [\s!file:LucidaGrandeMonoDK-Oblique.otf]
@@ -64,16 +70,28 @@
\definefontsynonym [\s!MonoBoldSlanted] [\s!MonoBoldItalic]
\stoptypescript
- \starttypescript [\s!math] [lucidaot,lucidadk]
- \definefontsynonym [\s!MathRoman] [\s!file:LucidaBrightMathOT.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=lucida-opentype-math]
- \definefontsynonym [\s!MathRomanBold] [\s!file:LucidaBrightMathOT-Demi.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=lucida-opentype-math]
+ \starttypescript [\s!math] [lucida,lucida-nt,lucidaot,lucidaot-nt,lucidadk]
+ \checkedmapfontsize[\typescripttwo][\s!script] [.70]
+ \checkedmapfontsize[\typescripttwo][\s!scriptscript][.50]
+ \stoptypescript
+
+ \starttypescript [\s!math] [lucida,lucidaot,lucidadk]
+ \definefontsynonym [\s!MathRoman] [\s!file:LucidaBrightMathOT.otf] [\s!features={\s!math\mathsizesuffix,mathlucida,lucida:mathextra,mathextra},\s!goodies=lucida-math]
+ % \definefontsynonym [\s!MathRomanBold] [\s!file:LucidaBrightMathOT-Demi.otf] [\s!features={\s!math\mathsizesuffix,mathlucida,mathextra},\s!goodies=lucida-math]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:LucidaBrightMathOT.otf] [\s!features={\s!math\mathsizesuffix,lucida-math-bold,mathlucida,lucida:mathextra,mathextra},\s!goodies=lucida-math]
+ \stoptypescript
+
+ \starttypescript [\s!math] [lucidaot-nt,lucida-nt]
+ \definefontsynonym [\s!MathRoman] [\s!file:LucidaBrightMathOT.otf] [\s!features={\s!math\mathsizesuffix,mathlucida,lucida:mathextra,mathextra}]
+% \definefontsynonym [\s!MathRomanBold] [\s!file:LucidaBrightMathOT-Demi.otf] [\s!features={\s!math\mathsizesuffix,mathlucida,mathextra}]
+ \definefontsynonym [\s!MathRomanBold] [\s!file:LucidaBrightMathOT.otf] [\s!features={\s!math\mathsizesuffix,lucida-math-bold,mathlucida,lucida:mathextra,mathextra}]
\stoptypescript
- \starttypescript [\s!handwriting] [lucidaot,lucidadk]
+ \starttypescript [\s!handwriting] [lucida,lucidaot,lucidadk,lucidaot-nt,lucida-nt]
\definefontsynonym [\s!Handwriting] [\s!file:LucidaHandwritingOT.otf]
\stoptypescript
- \starttypescript [\s!calligraphy] [lucidaot,lucidadk]
+ \starttypescript [\s!calligraphy] [lucida,lucidaot,lucidadk,lucidaot-nt,lucida-nt]
\definefontsynonym [\s!Calligraphy] [\s!file:LucidaCalligraphyOT.otf]
\stoptypescript
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-minion.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-minion.mkiv
index b158deddfb8..aa953623c9b 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-minion.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-minion.mkiv
@@ -11,8 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\definefontfallback[MinionMathFallback] [file:latinmodern-math.otf][uppercasescript]
-\definefontfallback[MinionBoldMathFallback][file:latinmodern-math.otf][uppercasescript]
+% \definefontfallback[MinionMathFallback] [file:latinmodern-math.otf][uppercasescript]
+% \definefontfallback[MinionBoldMathFallback][file:latinmodern-math.otf][uppercasescript]
\starttypescriptcollection[minion]
@@ -34,14 +34,14 @@
\starttypescript [\s!math][minion][\s!all]
\loadfontgoodies[minion-math]
- \definefontsynonym[\s!MathRoman] [Minion-Math] [\s!features={\s!math\mathsizesuffix,mathextra},\s!designsize=\s!auto,\s!goodies=minion-math,\s!fallbacks=MinionMathFallback]
- \definefontsynonym[\s!MathRomanBold][Minion-BoldMath][\s!features={\s!math\mathsizesuffix,mathextra},\s!designsize=\s!auto,\s!goodies=minion-math,\s!fallbacks=MinionBoldMathFallback]
+ \definefontsynonym[\s!MathRoman] [Minion-Math] [\s!features={\s!math\mathsizesuffix,mathextra},\s!designsize=\s!auto,\s!goodies=minion-math] % ,\s!fallbacks=MinionMathFallback]
+ \definefontsynonym[\s!MathRomanBold][Minion-BoldMath][\s!features={\s!math\mathsizesuffix,mathextra},\s!designsize=\s!auto,\s!goodies=minion-math] % ,\s!fallbacks=MinionBoldMathFallback]
\stoptypescript
\starttypescript [\s!math][minion-medium][\s!all]
\loadfontgoodies[minion-math]
- \definefontsynonym[\s!MathRoman] [Minion-Math] [\s!features={\s!math\mathsizesuffix,mathextra},\s!designsize=\s!auto,\s!goodies=minion-math,\s!fallbacks=MinionMathFallback]
- \definefontsynonym[\s!MathRomanBold][Minion-MediumMath][\s!features={\s!math\mathsizesuffix,mathextra},\s!designsize=\s!auto,\s!goodies=minion-math,\s!fallbacks=MinionBoldMathFallback]
+ \definefontsynonym[\s!MathRoman] [Minion-Math] [\s!features={\s!math\mathsizesuffix,mathextra},\s!designsize=\s!auto,\s!goodies=minion-math] % ,\s!fallbacks=MinionMathFallback]
+ \definefontsynonym[\s!MathRomanBold][Minion-MediumMath][\s!features={\s!math\mathsizesuffix,mathextra},\s!designsize=\s!auto,\s!goodies=minion-math] % ,\s!fallbacks=MinionBoldMathFallback]
\stoptypescript
\starttypescript [minion,minion-medium]
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv
index e3417fca557..c10ffa54ef0 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-modernlatin.mkiv
@@ -22,7 +22,7 @@
\doifunknownfontfeature {lm-math-regular} {\definefontfeature[lm-math-regular] [boldened-15]}
\doifunknownfontfeature {lm-math-bold} {\definefontfeature[lm-math-bold] [boldened-30]}
- \starttypescript [\s!serif] [modern-latin]
+ \starttypescript [\s!serif] [modernlatin,modern-latin]
% \loadfontgoodies[lm]
\definefontsynonym [Serif] [\s!file:lmroman10-regular] [\s!features={\s!default,lm-serif-regular}]
\definefontsynonym [SerifItalic] [\s!file:lmroman10-italic] [\s!features={\s!default,lm-serif-regular}]
@@ -32,7 +32,17 @@
\definefontsynonym [SerifBoldSlanted][\s!file:lmromanslant10-regular] [\s!features={\s!default,lm-serif-bold}]
\stoptypescript
- \starttypescript [\s!sans] [modern-latin]
+ \starttypescript [\s!serif] [lessmodernlatin,less-modern-latin]
+ % \loadfontgoodies[lm]
+ \definefontsynonym [Serif] [\s!file:lmroman10-regular] [\s!features={\s!default,lm-serif-regular}]
+ \definefontsynonym [SerifItalic] [\s!file:lmroman10-italic] [\s!features={\s!default,lm-serif-regular}]
+ \definefontsynonym [SerifSlanted] [\s!file:lmromanslant10-regular] [\s!features={\s!default,lm-serif-regular}]
+ \definefontsynonym [SerifBold] [\s!file:lmroman10-bold] [\s!features={\s!default,lm-serif-regular}]
+ \definefontsynonym [SerifBoldItalic] [\s!file:lmroman10-bolditalic] [\s!features={\s!default,lm-serif-regular}]
+ \definefontsynonym [SerifBoldSlanted][\s!file:lmromanslant10-bold] [\s!features={\s!default,lm-serif-regular}]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [modernlatin,modern-latin]
% \loadfontgoodies[lm]
\definefontsynonym [Sans] [\s!file:lmsans10-regular] [\s!features={\s!default,lm-sans-regular}]
\definefontsynonym [SansItalic] [\s!file:lmsans10-oblique] [\s!features={\s!default,lm-sans-regular}]
@@ -42,7 +52,17 @@
\definefontsynonym [SansBoldSlanted][\s!file:lmsans10-oblique] [\s!features={\s!default,lm-sans-bold}]
\stoptypescript
- \starttypescript [\s!mono] [modern-latin]
+ \starttypescript [\s!sans] [lessmodernlatin,less-modern-latin]
+ % \loadfontgoodies[lm]
+ \definefontsynonym [Sans] [\s!file:lmsans10-regular] [\s!features={\s!default,lm-sans-regular}]
+ \definefontsynonym [SansItalic] [\s!file:lmsans10-oblique] [\s!features={\s!default,lm-sans-regular}]
+ \definefontsynonym [SansSlanted] [\s!file:lmsans10-boldoblique] [\s!features={\s!default,lm-sans-regular}]
+ \definefontsynonym [SansBold] [\s!file:lmsans10-bold] [\s!features={\s!default,lm-sans-regular}]
+ \definefontsynonym [SansBoldItalic] [\s!file:lmsans10-boldoblique] [\s!features={\s!default,lm-sans-regular}]
+ \definefontsynonym [SansBoldSlanted][\s!file:lmsans10-boldoblique] [\s!features={\s!default,lm-sans-regular}]
+ \stoptypescript
+
+ \starttypescript [\s!mono] [modernlatin,modern-latin]
% \loadfontgoodies[lm]
\definefontsynonym [Mono] [\s!file:lmmono10-regular] [\s!features={\s!default,lm-mono-regular}]
\definefontsynonym [MonoItalic] [\s!file:lmmono10-italic] [\s!features={\s!default,lm-mono-regular}]
@@ -52,17 +72,27 @@
\definefontsynonym [MonoBoldSlanted][\s!file:lmmonoslant10-regular] [\s!features={\s!default,lm-mono-bold}]
\stoptypescript
- \starttypescript [\s!math] [modern-latin]
- \loadfontgoodies[lm]
- \definefontsynonym [MathRoman] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math,oldmath,lm-math-regular,mathextra},\s!goodies=lm]
- \definefontsynonym [MathRomanBold] [\v!file:latinmodern-math-regular.otf] [\s!features={\s!math\mathsizesuffix,lm-math,oldmath,lm-math-bold,mathextra},\s!goodies=lm]
+ \starttypescript [\s!mono] [lessmodernlatin,less-modern-latin]
+ % \loadfontgoodies[lm]
+ \definefontsynonym [Mono] [\s!file:lmmono10-regular] [\s!features={\s!default,lm-mono-regular}]
+ \definefontsynonym [MonoItalic] [\s!file:lmmono10-italic] [\s!features={\s!default,lm-mono-regular}]
+ \definefontsynonym [MonoSlanted] [\s!file:lmmonoslant10-regular] [\s!features={\s!default,lm-mono-regular}]
+ \definefontsynonym [MonoBold] [\s!file:lmmono10-bold] [\s!features={\s!default,lm-mono-regular}]
+ \definefontsynonym [MonoBoldItalic] [\s!file:lmmono10-bolditalic] [\s!features={\s!default,lm-mono-regular}]
+ \definefontsynonym [MonoBoldSlanted][\s!file:lmmonoslant10-regular] [\s!features={\s!default,lm-mono-bold}]
+ \stoptypescript
+
+ \starttypescript [\s!math] [modernlatin,modern-latin,lessmodernlatin,less-modern-latin]
+ \loadfontgoodies[modern-math]
+ \definefontsynonym [MathRoman] [\v!file:latinmodern-math.otf] [\s!features={\s!math\mathsizesuffix,lm-math,lm-math-regular,mathextra},\s!goodies=modern-math]
+ \definefontsynonym [MathRomanBold] [\v!file:latinmodern-math.otf] [\s!features={\s!math\mathsizesuffix,lm-math,lm-math-bold,mathextra},\s!goodies=modern-math]
\stoptypescript
- \starttypescript [modern-latin,modernlatin]
- \definetypeface [\typescriptone] [\s!rm] [\s!serif] [modern-latin] [\s!default]
- \definetypeface [\typescriptone] [\s!ss] [\s!sans] [modern-latin] [\s!default]
- \definetypeface [\typescriptone] [\s!tt] [\s!mono] [modern-latin] [\s!default]
- \definetypeface [\typescriptone] [\s!mm] [\s!math] [modern-latin] [\s!default]
+ \starttypescript [modern-latin,modernlatin,less-modern-latin,lessmodernlatin]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [\typescriptone] [\s!default]
\quittypescriptscanning
\stoptypescript
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-newcomputermodern.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-newcomputermodern.mkiv
new file mode 100644
index 00000000000..65a84ec5fe2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-newcomputermodern.mkiv
@@ -0,0 +1,93 @@
+%D \module
+%D [ file=type-imp-newcomputermodern,
+%D version=2021.06.08,
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=NewComputerModern,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D There is something fishy with the books fonts. The otf files are twice as large
+%D as the normal ones but the tma's we filter from it are pretty close (mostly
+%D boundingbox differences). The streams are also of similar size so there must be
+%D something extra in there.
+
+% \definefontfallback[Serif] [file:notoserif-regular.ttf] [0x0000-0xFFFF] [check=yes,rscale=1.02]
+% \definefontfallback[SerifBold][file:notoserif-bold.ttf] [0x0000-0xFFFF] [check=yes,rscale=1.02]
+
+\starttypescriptcollection[newcomputermodern]
+
+ \doifunknownfontfeature {newcomputermodern-math-bold} {\definefontfeature[newcomputermodern-math-bold][boldened]}
+
+ \starttypescript [\s!serif] [newcomputermodern] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [\s!file:newcm10-regular.otf] [\s!features=\s!default,\s!fallbacks=\s!Serif]
+ \definefontsynonym [\s!SerifBold] [\s!file:newcm10-bold.otf] [\s!features=\s!default,\s!fallbacks=\s!SerifBold]
+ \definefontsynonym [\s!SerifItalic] [\s!file:newcm10-italic.otf] [\s!features=\s!default,\s!fallbacks=\s!SerifItalic]
+ \definefontsynonym [\s!SerifBoldItalic] [\s!file:newcm10-bolditalic.otf] [\s!features=\s!default,\s!fallbacks=\s!SerifBoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [newcomputermodern] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [\s!file:newcmsans10-regular.otf] [\s!features=\s!default,\s!fallbacks=\s!Sans]
+ \definefontsynonym [\s!SansBold] [\s!file:newcmsans10-bold.otf] [\s!features=\s!default,\s!fallbacks=\s!SansBold]
+ \definefontsynonym [\s!SansItalic] [\s!file:newcmsans10-oblique.otf] [\s!features=\s!default,\s!fallbacks=\s!SansItalic]
+ \definefontsynonym [\s!SansBoldItalic] [\s!file:newcmsans10-boldoblique.otf] [\s!features=\s!default,\s!fallbacks=\s!SansBoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!mono] [newcomputermodern] [\s!name]
+ \setups[\s!font:\s!fallback:\s!mono]
+ \definefontsynonym [\s!Mono] [\s!file:newcmmono10-regular.otf] [\s!features=\s!none,\s!fallbacks=\s!Mono]
+ \definefontsynonym [\s!MonoBold] [\s!file:newcmmono10-bold.otf] [\s!features=\s!none,\s!fallbacks=\s!MonoBold]
+ \definefontsynonym [\s!MonoItalic] [\s!file:newcmmono10-italic.otf] [\s!features=\s!none,\s!fallbacks=\s!MonoItalic]
+ \definefontsynonym [\s!MonoBoldItalic] [\s!file:newcmmono10-boldoblique.otf] [\s!features=\s!none,\s!fallbacks=\s!MonoBoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!math][newcomputermodern] [\s!name]
+ % \loadfontgoodies[newcomputermodern-math] ,\s!goodies=newcomputermodern-math
+ \definefontsynonym[\s!MathRoman] [\s!file:newcmmath-regular][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=newcomputermodern-math]
+ \definefontsynonym[\s!MathRomanBold][\s!file:newcmmath-regular][\s!features={\s!math\mathsizesuffix,newcomputermodern-math-bold,mathextra},\s!goodies=newcomputermodern-math]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [newcomputermodern-book] [\s!name]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [\s!file:newcm10-book.otf] [\s!features=\s!default,\s!fallbacks=\s!Serif]
+ \definefontsynonym [\s!SerifBold] [\s!file:newcm10-bold.otf] [\s!features=\s!default,\s!fallbacks=\s!SerifBold]
+ \definefontsynonym [\s!SerifItalic] [\s!file:newcm10-bookitalic.otf] [\s!features=\s!default,\s!fallbacks=\s!SerifItalic]
+ \definefontsynonym [\s!SerifBoldItalic] [\s!file:newcm10-bolditalic.otf] [\s!features=\s!default,\s!fallbacks=\s!SerifBoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [newcomputermodern-book] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [\s!file:newcmsans10-book.otf] [\s!features=\s!default,\s!fallbacks=\s!Sans]
+ \definefontsynonym [\s!SansBold] [\s!file:newcmsans10-bold.otf] [\s!features=\s!default,\s!fallbacks=\s!SansBold]
+ \definefontsynonym [\s!SansItalic] [\s!file:newcmsans10-bookoblique.otf] [\s!features=\s!default,\s!fallbacks=\s!SansItalic]
+ \definefontsynonym [\s!SansBoldItalic] [\s!file:newcmsans10-boldoblique.otf] [\s!features=\s!default,\s!fallbacks=\s!SansBoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!mono] [newcomputermodern-book] [\s!name]
+ \setups[\s!font:\s!fallback:\s!mono]
+ \definefontsynonym [\s!Mono] [\s!file:newcmmono10-book.otf] [\s!features=\s!none,\s!fallbacks=\s!Mono]
+ \definefontsynonym [\s!MonoBold] [\s!file:newcmmono10-bold.otf] [\s!features=\s!none,\s!fallbacks=\s!MonoBold]
+ \definefontsynonym [\s!MonoItalic] [\s!file:newcmmono10-bookitalic.otf] [\s!features=\s!none,\s!fallbacks=\s!MonoItalic]
+ \definefontsynonym [\s!MonoBoldItalic] [\s!file:newcmmono10-boldoblique.otf] [\s!features=\s!none,\s!fallbacks=\s!MonoBoldItalic]
+ \stoptypescript
+
+ \starttypescript [\s!math][newcomputermodern-book] [\s!name]
+ % \loadfontgoodies[newcomputermodern-math] ,\s!goodies=newcomputermodern-math
+ \definefontsynonym[\s!MathRoman] [\s!file:newcmmath-book][\s!features={\s!math\mathsizesuffix,newcm-mathextra,mathextra},\s!goodies=newcomputermodern-math]
+ \definefontsynonym[\s!MathRomanBold][\s!file:newcmmath-book][\s!features={\s!math\mathsizesuffix,newcm-mathextra,newcomputermodern-math-bold,mathextra},\s!goodies=newcomputermodern-math]
+ \stoptypescript
+
+ \starttypescript[newcomputermodern,newcomputermodern-book]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [\typescriptone] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [\typescriptone] [\s!default]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-stix.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-stix.mkiv
index ee11d83899c..3ac0b72572d 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-stix.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-stix.mkiv
@@ -13,64 +13,67 @@
%D We provide typescripts for version one and two of the stix fonts. There is a
%D xits variant based on the first (not opentype) release that also provides
-%D bidirectional math.
+%D bidirectional math. With (in 2022) stixtwo being frozsen for 2 years we can make
+%D these the default now.
%D
%D Users should be aware of the fact that the stix filenames keep changing so if
%D something fails, make sure you have the files and that the names below match
-%D those on your system. (In \TEX\ distributions there's 2 and Two and math can have
-%D -Regular appended or not.
+%D those on your system. In \TEX\ distributions there's 2 and Two and math can have
+%D -Regular appended or not. You can expect the \CONTEXT\ distribution to be kept up
+%D to date.
%D
-%D There's now also:
-%D
-%D stixtwotext-medium.otf
-%D stixtwotext-mediumitalic.otf
-%D stixtwotext-semibold.otf
-%D stixtwotext-semibolditalic.otf
+%D Per november 2022 we swithched from \OPENTYPE\ (otf) files to \TRUETYPE\ (ttf)
+%D files. The main reason is that the metrics are cleaner, especially when one peeks
+%D into the font for the purpose tweaking math (boundingbox, true positioning
+%D unaffected by excessive hinting shown in in FontForge). It is yet unclear to us
+%D (MS & HH) why there is this difference, but it might relate to the toolchain used
+%D for generating these fonts. We might even switch to (smaller) unhinted \TRUETYPE\
+%D fonts at some point but then we need to generate them ourselves). Anyway, the end
+%D results are the same but we just want to be able to view it right.
\definefontfeature
[stixtwomath]
[ss02=yes] % otherwise weird (non italic) g
-\starttypescriptcollection[stix]
+\definefontfeature[stixtwomath][copymathscripts=yes] % see lfg file
- % version one
+\starttypescriptcollection[stix]
- \starttypescript [\s!math] [stix] [\s!name]
- \definefontsynonym[MathRoman][\s!file:stixmath-regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra}]
- \stoptypescript
+ \doifunknownfontfeature {stixtwo-math-bold} {\definefontfeature[stixtwo-math-bold][boldened]}
- \starttypescript [\s!serif] [stix] [\s!name]
- \setups[\s!font:\s!fallback:\s!serif]
- \definefontsynonym[\s!Serif] [\s!file:stix-regular.otf] [\s!features=\s!default]
- \definefontsynonym[\s!SerifBold] [\s!file:stix-bold.otf] [\s!features=\s!default]
- \definefontsynonym[\s!SerifItalic] [\s!file:stix-italic.otf] [\s!features=\s!default]
- \definefontsynonym[\s!SerifBoldItalic][\s!file:stix-bolditalic.otf][\s!features=\s!default]
+ \starttypescript [\s!math] [stix,stixtwo,stix-nt,stixtwo-nt,xits]
+ \checkedmapfontsize[\typescripttwo][\s!script] [.70]
+ \checkedmapfontsize[\typescripttwo][\s!scriptscript][.55]
\stoptypescript
- \starttypescript[stix]
- \definetypeface [stix] [\s!rm] [\s!serif] [stix] [\s!default]
- \definetypeface [stix] [\s!mm] [\s!math] [stix] [\s!default]
+ \starttypescript [\s!math] [stix,stixtwo,xits] [\s!name]
+ \definefontsynonym[\s!MathRoman] [\s!file:stixtwomath-regular.ttf][\s!features={\s!math\mathsizesuffix,stixtwomath,stixtwo:mathextra,mathextra},\s!goodies=stixtwo-math]
+ \definefontsynonym[\s!MathRomanBold][\s!file:stixtwomath-regular.ttf][\s!features={\s!math\mathsizesuffix,stixtwo-math-bold,stixtwomath,stixtwo:mathextra,mathextra},\s!goodies=stixtwo-math]
\stoptypescript
- % version two
-
- \starttypescript [\s!math] [stixtwo] [\s!name]
- \definefontsynonym[MathRoman][\s!file:stixtwomath-regular.otf] [\s!features={\s!math\mathsizesuffix,stixtwomath,mathextra},\s!goodies=stix-two-math]
+ \starttypescript [\s!math] [stix-nt,stixtwo-nt] [\s!name]
+ \definefontsynonym[\s!MathRoman][\s!file:stixtwomath-regular.ttf][\s!features={\s!math\mathsizesuffix,stixtwomath,stixtwo:mathextra,mathextra}]
+ \definefontsynonym[\s!MathRomanBold][\s!file:stixtwomath-regular.ttf][\s!features={\s!math\mathsizesuffix,stixtwo-math-bold,stixtwomath,stixtwo:mathextra,mathextra}]
\stoptypescript
- \starttypescript [\s!serif] [stixtwo] [\s!name]
+ \starttypescript [\s!serif] [stix,stixtwo,xits] [\s!name]
\setups[\s!font:\s!fallback:\s!serif]
- \definefontsynonym[\s!Serif] [\s!file:stixtwotext-regular.otf] [\s!features=\s!default]
- \definefontsynonym[\s!SerifBold] [\s!file:stixtwotext-bold.otf] [\s!features=\s!default]
- \definefontsynonym[\s!SerifItalic] [\s!file:stixtwotext-italic.otf] [\s!features=\s!default]
- \definefontsynonym[\s!SerifBoldItalic][\s!file:stixtwotext-bolditalic.otf][\s!features=\s!default]
+ \definefontsynonym[\s!Serif] [\s!file:stixtwotext-regular.ttf] [\s!features=\s!default]
+ \definefontsynonym[\s!SerifBold] [\s!file:stixtwotext-bold.ttf] [\s!features=\s!default]
+ \definefontsynonym[\s!SerifItalic] [\s!file:stixtwotext-italic.ttf] [\s!features=\s!default]
+ \definefontsynonym[\s!SerifBoldItalic][\s!file:stixtwotext-bolditalic.ttf][\s!features=\s!default]
\stoptypescript
- \starttypescript[stixtwo]
- \definetypeface [\typescriptone] [\s!rm] [\s!serif] [stixtwo] [\s!default]
- \definetypeface [\typescriptone] [\s!ss] [\s!serif] [stixtwo] [\s!default]
- \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default] [\s!rscale=0.895]
- \definetypeface [\typescriptone] [\s!mm] [\s!math] [stixtwo] [\s!default]
+ \starttypescript[stix,stixtwo,xits,stix-nt,stixtwo-nt]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [stixtwo] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!serif] [stixtwo] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [dejavu] [\s!default] [\s!rscale=0.895]
+ \stoptypescript
+ \starttypescript[stix,stixtwo,xits]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [stixtwo] [\s!default] [\s!direction=\s!both]
+ \stoptypescript
+ \starttypescript[stix-nt,stixtwo-nt]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [stixtwo-nt] [\s!default] [\s!direction=\s!both]
\stoptypescript
\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-texgyre.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-texgyre.mkiv
index 01cbb869df7..a3f3952c787 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-texgyre.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-texgyre.mkiv
@@ -1,4 +1,4 @@
-%D \module
+ %D \module
%D [ file=type-imp-texgyre,
%D version=2007.07.30,
%D title=\CONTEXT\ Typescript Macros,
@@ -21,9 +21,7 @@
%D around but I won't waste time on sorting out all the (changing) font hassles. Also,
%D the T1 fonts involved are unlikely to be available.
-\definefontfeature
- [mathcollapseitalics]
- [collapseitalics=yes]
+% \definefontfeature[mathextra][collapseitalics]
\starttypescriptcollection[texgyre]
@@ -165,37 +163,61 @@
% caps: \definetypeface [pagella] [rm] [serif] [pagella-caps] [default]
- \starttypescript [times,termes]
+ \starttypescript [termes,termes-nt,times]
\definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default]
\definetypeface [\typescriptone] [\s!ss] [\s!sans] [helvetica] [\s!default] [\s!rscale=0.9]
\definetypeface [\typescriptone] [\s!tt] [\s!mono] [modern] [\s!default] [\s!rscale=1.05]
+ \stoptypescript
+ \starttypescript [termes,times]
\definetypeface [\typescriptone] [\s!mm] [\s!math] [termes] [\s!default]
\quittypescriptscanning
\stoptypescript
+ \starttypescript [termes-nt]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [termes-nt] [\s!default]
+ \quittypescriptscanning
+ \stoptypescript
- \starttypescript [palatino,pagella]
+ \starttypescript [pagella,pagella-nt,palatino]
\definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default]
\definetypeface [\typescriptone] [\s!ss] [\s!sans] [modern] [\s!default] [\s!rscale=1.075]
\definetypeface [\typescriptone] [\s!tt] [\s!mono] [modern] [\s!default] [\s!rscale=1.075]
+ \stoptypescript
+ \starttypescript [pagella,palatino]
\definetypeface [\typescriptone] [\s!mm] [\s!math] [pagella] [\s!default]
\quittypescriptscanning
\stoptypescript
+ \starttypescript [pagella-nt]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [pagella-nt] [\s!default]
+ \quittypescriptscanning
+ \stoptypescript
- \starttypescript [schoolbook,schola]
+ \starttypescript [schola,schola-nt,schoolbook]
\definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default]
\definetypeface [\typescriptone] [\s!ss] [\s!sans] [modern] [\s!default] [\s!rscale=1.1]
\definetypeface [\typescriptone] [\s!tt] [\s!mono] [modern] [\s!default] [\s!rscale=1.1]
+ \stoptypescript
+ \starttypescript [schola,schoolbook]
\definetypeface [\typescriptone] [\s!mm] [\s!math] [schola] [\s!default]
\quittypescriptscanning
\stoptypescript
+ \starttypescript [schola-nt]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [schola-nt] [\s!default]
+ \quittypescriptscanning
+ \stoptypescript
- \starttypescript [bookman,bonum]
+ \starttypescript [bonum,bonum-nt,bookman]
\definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default]
\definetypeface [\typescriptone] [\s!ss] [\s!sans] [modern] [\s!default] [\s!rscale=1.1]
\definetypeface [\typescriptone] [\s!tt] [\s!mono] [modern] [\s!default] [\s!rscale=1.1]
+ \stoptypescript
+ \starttypescript [bookman,bonum]
\definetypeface [\typescriptone] [\s!mm] [\s!math] [bonum] [\s!default]
\quittypescriptscanning
\stoptypescript
+ \starttypescript [bonum-nt]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [bonum-nt] [\s!default]
+ \quittypescriptscanning
+ \stoptypescript
\starttypescript [chancery,chorus]
\definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default]
@@ -231,13 +253,20 @@
\stoptypescriptcollection
-% tricky: we cannot mix now as the file is loaded only once
+% We no longer support tx and px in LMTX. These fonts were used in the transition from
+% traditional (type one) fonts to the new gyre fonts. The LMTX distribution no longer
+% ships these fonts anyway.
+
+\ifcase\contextlmtxmode \else
+ \disablemode[pxmath]
+ \disablemode[txmath]
+\fi
\startmode[txmath]
- \starttypescriptcollection[texgyre-math-times]
+ \starttypescriptcollection[texgyre-math-termes]
- \starttypescript [\s!math][times,termes][\s!all]
+ \starttypescript [\s!math][termes,times][\s!all]
\loadfontgoodies[tx-math]
\definefontsynonym[\s!MathRoman][txmath@tx-math]
% \definefontsynonym[\s!MathRomanBold][MathRoman]
@@ -249,13 +278,19 @@
\startnotmode[txmath]
- \starttypescriptcollection[texgyre-math-times]
+ \starttypescriptcollection[texgyre-math-termes]
- \starttypescript [\s!math][times,termes][\s!all]
- % \loadfontgoodies[texgyre]
- % \definefontsynonym[\s!MathRoman][file:texgyre-termes-math-regular.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=texgyre]
- \definefontsynonym[\s!MathRoman] [file:texgyretermes-math.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=termes-math]
- \definefontsynonym[\s!MathRomanBold][file:texgyretermes-math.otf][\s!features={\s!math\mathsizesuffix,termes-math-bold,mathextra},\s!goodies=termes-math]
+ \starttypescript [\s!math][termes,termes-nt,times][\s!all]
+ \checkedmapfontsize[\typescripttwo][\s!script] [.70]%.74
+ \checkedmapfontsize[\typescripttwo][\s!scriptscript][.50]%.55
+ \stoptypescript
+ \starttypescript [\s!math][termes,times][\s!all]
+ \definefontsynonym[\s!MathRoman] [file:texgyretermes-math.otf][\s!features={\s!math\mathsizesuffix,termes:mathextra,mathextra},\s!goodies=termes-math]
+ \definefontsynonym[\s!MathRomanBold][file:texgyretermes-math.otf][\s!features={\s!math\mathsizesuffix,termes:mathextra,termes-math-bold,mathextra},\s!goodies=termes-math]
+ \stoptypescript
+ \starttypescript [\s!math][termes-nt][\s!all]
+ \definefontsynonym[\s!MathRoman] [file:texgyretermes-math.otf][\s!features={\s!math\mathsizesuffix,termes:mathextra,mathextra}]
+ \definefontsynonym[\s!MathRomanBold][file:texgyretermes-math.otf][\s!features={\s!math\mathsizesuffix,termes:mathextra,termes-math-bold,mathextra}]
\stoptypescript
\stoptypescriptcollection
@@ -280,11 +315,17 @@
\starttypescriptcollection[texgyre-math-pagella]
- \starttypescript [\s!math][palatino,pagella][\s!all]
- % \loadfontgoodies[texgyre]
- % \definefontsynonym[\s!MathRoman][file:texgyre-pagella-math-regular.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=texgyre]
- \definefontsynonym[\s!MathRoman] [file:texgyrepagella-math.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=pagella-math]
- \definefontsynonym[\s!MathRomanBold][file:texgyrepagella-math.otf][\s!features={\s!math\mathsizesuffix,pagella-math-bold,mathextra},\s!goodies=pagella-math]
+ \starttypescript [\s!math][pagella,pagella-nt,palatino]% [\s!all]
+ \checkedmapfontsize[\typescripttwo][\s!script] [.74]
+ \checkedmapfontsize[\typescripttwo][\s!scriptscript][.55]
+ \stoptypescript
+ \starttypescript [\s!math][pagella,palatino][\s!all]
+ \definefontsynonym[\s!MathRoman] [file:texgyrepagella-math.otf][\s!features={\s!math\mathsizesuffix,pagella:mathextra,mathextra},\s!goodies=pagella-math]
+ \definefontsynonym[\s!MathRomanBold][file:texgyrepagella-math.otf][\s!features={\s!math\mathsizesuffix,pagella:mathextra,pagella-math-bold,mathextra},\s!goodies=pagella-math]
+ \stoptypescript
+ \starttypescript [\s!math][pagella-nt][\s!all]
+ \definefontsynonym[\s!MathRoman] [file:texgyrepagella-math.otf][\s!features={\s!math\mathsizesuffix,pagella:mathextra,mathextra}]
+ \definefontsynonym[\s!MathRomanBold][file:texgyrepagella-math.otf][\s!features={\s!math\mathsizesuffix,pagella:mathextra,pagella-math-bold,mathextra}]
\stoptypescript
\stoptypescriptcollection
@@ -293,22 +334,34 @@
\starttypescriptcollection[texgyre-math-bonum]
- \starttypescript [\s!math][bookman,bonum][\s!all]
- % \loadfontgoodies[texgyre]
- % \definefontsynonym[\s!MathRoman][file:texgyre-bonum-math-regular.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=texgyre]
- \definefontsynonym[\s!MathRoman] [file:texgyrebonum-math.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=bonum-math]
- \definefontsynonym[\s!MathRomanBold][file:texgyrebonum-math.otf][\s!features={\s!math\mathsizesuffix,bonum-math-bold,mathextra},\s!goodies=bonum-math]
+ \starttypescript [\s!math][bonum,bonum-nt,bookman][\s!all]
+ \checkedmapfontsize[\typescripttwo][\s!script] [.70]%.77
+ \checkedmapfontsize[\typescripttwo][\s!scriptscript][.55]%.60
+ \stoptypescript
+ \starttypescript [\s!math][bonum,bookman][\s!all]
+ \definefontsynonym[\s!MathRoman] [file:texgyrebonum-math.otf][\s!features={\s!math\mathsizesuffix,bonum:mathextra,mathextra},\s!goodies=bonum-math]
+ \definefontsynonym[\s!MathRomanBold][file:texgyrebonum-math.otf][\s!features={\s!math\mathsizesuffix,bonum:mathextra,bonum-math-bold,mathextra},\s!goodies=bonum-math]
+ \stoptypescript
+ \starttypescript [\s!math][bonum-nt][\s!all]
+ \definefontsynonym[\s!MathRoman] [file:texgyrebonum-math.otf][\s!features={\s!math\mathsizesuffix,bonum:mathextra,mathextra}]
+ \definefontsynonym[\s!MathRomanBold][file:texgyrebonum-math.otf][\s!features={\s!math\mathsizesuffix,bonum:mathextra,bonum-math-bold,mathextra}]
\stoptypescript
\stoptypescriptcollection
\starttypescriptcollection[texgyre-math-schola]
- \starttypescript [\s!math][schoolbook,schola][\s!all]
- % \loadfontgoodies[texgyre]
- % \definefontsynonym[\s!MathRoman][file:texgyre-schola-math-regular.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=texgyre]
- \definefontsynonym[\s!MathRoman] [file:texgyreschola-math.otf][\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=schola-math]
- \definefontsynonym[\s!MathRomanBold][file:texgyreschola-math.otf][\s!features={\s!math\mathsizesuffix,schola-math-bold,mathextra},\s!goodies=schola-math]
+ \starttypescript [\s!math][schola,schola-nt,schoolbook][\s!all]
+ \checkedmapfontsize[\typescripttwo][\s!script] [.77]
+ \checkedmapfontsize[\typescripttwo][\s!scriptscript][.60]
+ \stoptypescript
+ \starttypescript [\s!math][schola,schoolbook][\s!all]
+ \definefontsynonym[\s!MathRoman] [file:texgyreschola-math.otf][\s!features={\s!math\mathsizesuffix,schola:mathextra,mathextra},\s!goodies=schola-math]
+ \definefontsynonym[\s!MathRomanBold][file:texgyreschola-math.otf][\s!features={\s!math\mathsizesuffix,schola:mathextra,schola-math-bold,mathextra},\s!goodies=schola-math]
+ \stoptypescript
+ \starttypescript [\s!math][schola-nt][\s!all]
+ \definefontsynonym[\s!MathRoman] [file:texgyreschola-math.otf][\s!features={\s!math\mathsizesuffix,schola:mathextra,mathextra}]
+ \definefontsynonym[\s!MathRomanBold][file:texgyreschola-math.otf][\s!features={\s!math\mathsizesuffix,schola:mathextra,schola-math-bold,mathextra}]
\stoptypescript
\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-unfonts.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-unfonts.mkiv
index 91ae3b2300f..1c8b2c3c531 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-unfonts.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-unfonts.mkiv
@@ -14,7 +14,7 @@
% usage: \setupbodyfont[unfonts]
\loadtypescriptfile[texgyre]
-\loadtypescriptfile[xits]
+%\loadtypescriptfile[xits]
\definefontfeature
[kr-default]
@@ -136,7 +136,7 @@
\definetypeface [unfonts] [\s!rm] [\s!serif] [unbatang]
\definetypeface [unfonts] [\s!ss] [\s!sans] [undotum]
\definetypeface [unfonts] [\s!tt] [\s!mono] [untype]
- \definetypeface [unfonts] [\s!mm] [\s!math] [xits]
+ \definetypeface [unfonts] [\s!mm] [\s!math] [pagella]
\stoptypescript
\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-xcharter.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-xcharter.mkiv
new file mode 100644
index 00000000000..6b6e5fc4e5f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-xcharter.mkiv
@@ -0,0 +1,67 @@
+%D \module
+%D [ file=type-imp-xcharter,
+%D version=2022.30.09, % a bit older
+%D title=\CONTEXT\ Typescript Macros,
+%D subtitle=XCharter fonts,
+%D author=Mikael Sundqvist,
+%D date=\currentdate,
+%D copyright={\CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\starttypescriptcollection[xcharter]
+
+ % \definefontfeature[default-slanted-xcharter][default][slant=.2]
+ % \definefontfeature[none-slanted-xcharter] [none] [slant=.2]
+
+ \doifunknownfontfeature {xcharter-math-bold} {\definefontfeature[xcharter-math-bold][boldened]}
+
+ \starttypescript [\s!serif] [xcharter] [\s!name]
+ \definefontsynonym [\s!Serif] [\s!file:XCharter-Roman] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifItalic] [\s!file:XCharter-Italic] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifSlanted] [\s!file:XCharter-Slanted] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifBold] [\s!file:XCharter-Bold] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifBoldItalic] [\s!file:xcharter-BoldItalic] [\s!features=\s!default]
+ \definefontsynonym [\s!SerifBoldSlanted][\s!file:XCharter-BoldSlanted][\s!features=\s!default]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [cabin] [\s!name]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [\s!file:Cabin-Regular] [\s!features=\s!default]
+ \definefontsynonym [\s!SansItalic] [\s!file:Cabin-Italic] [\s!features=\s!default]
+ \definefontsynonym [\s!SansBold] [\s!file:Cabin-SemiBold] [\s!features=\s!default]
+ \definefontsynonym [\s!SansBoldItalic][\s!file:Cabin-SemiBoldItalic][\s!features=\s!default]
+ \stoptypescript
+
+ \starttypescript [\s!mono] [inconsolata] [\s!name]
+ \setups[\s!font:\s!fallback:\s!mono]
+ \definefontsynonym [\s!Mono] [\s!file:Inconsolatazi4-Regular][\s!features=\s!none]
+ \definefontsynonym [\s!MonoBold][\s!file:Inconsolatazi4-Bold] [\s!features=\s!none]
+ \stoptypescript
+
+ \starttypescript [\s!math] [xcharter,xcharter-nt][\s!name]
+ \checkedmapfontsize[\typescripttwo][\s!script] [.70]
+ \checkedmapfontsize[\typescripttwo][\s!scriptscript][.55]
+ \stoptypescript
+
+ \starttypescript [\s!math] [xcharter][\s!name]
+ \definefontsynonym [\s!MathRoman] [\s!file:XCharter-Math.otf][\s!features={\s!math\mathsizesuffix,xcharter:mathextra,mathextra},\s!goodies=xcharter-math]
+ \definefontsynonym [\s!MathRomanBold][\s!file:XCharter-Math.otf][\s!features={\s!math\mathsizesuffix,xcharter-math-bold,xcharter:mathextra,mathextra},\s!goodies=xcharter-math]
+ \stoptypescript
+
+ \starttypescript [\s!math] [xcharter-nt] [\s!name]
+ \definefontsynonym [\s!MathRoman] [\s!file:XCharter-Math.otf][\s!features={\s!math\mathsizesuffix,xcharter:mathextra,mathextra}]
+ \definefontsynonym [\s!MathRomanBold][\s!file:XCharter-Math.otf][\s!features={\s!math\mathsizesuffix,xcharter-math-bold,xcharter:mathextra,mathextra}]
+ \stoptypescript
+
+ \starttypescript [xcharter,xcharter-nt]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [xcharter] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [cabin] [\s!default]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [inconsolata] [\s!default] [\s!rscale=1.1]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [\typescriptone] [\s!default]
+ \quittypescriptscanning
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-xits.mkiv b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-xits.mkiv
index d3504bdbb35..4051f961807 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-xits.mkiv
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/type-imp-xits.mkiv
@@ -17,18 +17,25 @@
% scheduled for release by the end of 2010. Version 1.2, which will include Type 1
% fonts for use with LaTeX, will follow in 2011. So, we are on our own anyway.
+% In \MKXL\ (aka LMTX) we now use StixTwo because Xits is frozen and not maintained
+% any longer. The obsolete LR2 and R2L variants are just ignored because in \LMTX\
+% all math fonts have bidi support injected for which we use a companion font that is
+% derived from Xits.
+
+\definefontfeature[xitsmath][copymathscripts=yes] % see lfg file
+
\loadtypescriptfile[texgyre]
\starttypescriptcollection[xits]
\starttypescript [\s!math] [xits,xitsbidi] [\s!name]
\loadfontgoodies[xits-math]
- \definefontsynonym[\s!MathRoman ][\s!file:xitsmath-regular.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=xits-math]
- \definefontsynonym[\s!MathRoman L2R][\s!file:xitsmath-regular.otf] [\s!features={\s!math\mathsizesuffix-l2r,mathextra},\s!goodies=xits-math]
- \definefontsynonym[\s!MathRoman R2L][\s!file:xitsmath-regular.otf] [\s!features={\s!math\mathsizesuffix-r2l,mathextra},\s!goodies=xits-math]
- \definefontsynonym[\s!MathRomanBold ][\s!file:xitsmath-bold.otf] [\s!features={\s!math\mathsizesuffix,mathextra},\s!goodies=xits-math]
- \definefontsynonym[\s!MathRomanBold L2R][\s!file:xitsmath-bold.otf] [\s!features={\s!math\mathsizesuffix-l2r,mathextra},\s!goodies=xits-math]
- \definefontsynonym[\s!MathRomanBold R2L][\s!file:xitsmath-bold.otf] [\s!features={\s!math\mathsizesuffix-r2l,mathextra},\s!goodies=xits-math]
+ \definefontsynonym[\s!MathRoman ][\s!file:xitsmath-regular.otf] [\s!features={\s!math\mathsizesuffix ,mathextra,xitsmath},\s!goodies=xits-math]
+ \definefontsynonym[\s!MathRoman L2R][\s!file:xitsmath-regular.otf] [\s!features={\s!math\mathsizesuffix-l2r,mathextra,xitsmath},\s!goodies=xits-math]
+ \definefontsynonym[\s!MathRoman R2L][\s!file:xitsmath-regular.otf] [\s!features={\s!math\mathsizesuffix-r2l,mathextra,xitsmath},\s!goodies=xits-math]
+ \definefontsynonym[\s!MathRomanBold ][\s!file:xitsmath-bold.otf] [\s!features={\s!math\mathsizesuffix ,mathextra,xitsmath},\s!goodies=xits-math]
+ \definefontsynonym[\s!MathRomanBold L2R][\s!file:xitsmath-bold.otf] [\s!features={\s!math\mathsizesuffix-l2r,mathextra,xitsmath},\s!goodies=xits-math]
+ \definefontsynonym[\s!MathRomanBold R2L][\s!file:xitsmath-bold.otf] [\s!features={\s!math\mathsizesuffix-r2l,mathextra,xitsmath},\s!goodies=xits-math]
\stoptypescript
\starttypescript [\s!serif] [xits] [\s!name]
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/xcharter-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/xcharter-math.lfg
new file mode 100644
index 00000000000..1ff5d41d8b6
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/xcharter-math.lfg
@@ -0,0 +1,104 @@
+-- This font is under active development so we don't want to tweek it too much
+-- before all issues are sorted out.
+
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
+
+return {
+ name = "xcharter-math",
+ version = "1.00",
+ comment = "Goodies that complement xcharter math.",
+ author = "Hans Hagen & Mikael Sundqvist",
+ copyright = "ConTeXt development team",
+ mathematics = {
+ parameters = {
+ SubscriptShiftDown = 200, -- 300 in font
+ SubscriptShiftDownWithSuperscript = "1.3*SubscriptShiftDown", -- 1.5* in math-act
+ PrimeShiftUp = "1.2*SuperscriptShiftUp",
+ PrimeShiftUpCramped = "1.2*SuperscriptShiftUp",
+ PrimeBaselineDropMax = "0.5*SuperscriptBaselineDropMax",
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "fixprimes",
+ factor = 0.92,
+ },
+ {
+ tweak = "addmirrors",
+ },
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { },
+ presets.rsfsuprighttoscript { },
+ presets.moderntocalligraphic { },
+ presets.eulertocalligraphic { },
+ presets.xitsarabic { rscale = 0.90 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { factor = 1.5 },
+ presets.wipeitalics { },
+ {
+ tweak = "kerns",
+ list = {
+ [0x002F] = { topleft = -0.15, bottomright = -0.15 },
+ ["0x7D.parts.top"] = { topright = -0.15, }, -- right brace top
+ ["0x7D.parts.bottom"] = { bottomright = -0.15 }, -- right brace bottom
+ ["0x7D.variants.*"] = { topright = -0.05, bottomright = -0.05 }, -- right brace variants
+ ["0x29.parts.top"] = { topright = -0.1, }, -- right parenthesis top
+ ["0x29.parts.bottom"] = { bottomright = -0.1 }, -- right parenthesis bottom
+ ["0x29.variants.*"] = { topright = -0.1, bottomright = -0.1 }, -- right parenthesis variants
+ ["0x221A.parts.top"] = { topright = 0.2, }, -- right radical top
+ ["0x221A.parts.bottom"] = { bottomright = 0.2 }, -- right radical bottom
+ ["0x221A.variants.*"] = { topright = 0.2, bottomright = 0.2 }, -- right radical variants
+ [0x27E9] = { topright = -0.1, bottomright = -0.1 }, -- angle
+ ["0x27E9.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ [0x27EB] = { topright = -0.1, bottomright = -0.1 },
+ ["0x27EB.variants.*"] = { topright = -0.2, bottomright = -0.2 },
+ --
+ [0x00393] = { bottomright = -0.20, }, -- upright Gamma
+ },
+ },
+ {
+ tweak = "radicaldegreeanchors",
+ list = {
+ ["0x221A.parts.bottom"] = { location = "left", hfactor = .1, vfactor = 1.025 },
+ }
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "addactuarian",
+ },
+ {
+ tweak = "addequals",
+ },
+ {
+ tweak = "addprimed",
+ },
+ {
+ tweak = "addfourier",
+ variant = 2,
+ },
+ {
+ tweak = "setoptions",
+ -- set = { "ignorekerndimensions" }
+ },
+ },
+ },
+ bigslots = {
+ 1, 2, 3, 4
+ },
+ },
+
+}
diff --git a/Master/texmf-dist/tex/context/fonts/mkiv/xits-math.lfg b/Master/texmf-dist/tex/context/fonts/mkiv/xits-math.lfg
index 88d3a8d45fa..1d7e22df61d 100644
--- a/Master/texmf-dist/tex/context/fonts/mkiv/xits-math.lfg
+++ b/Master/texmf-dist/tex/context/fonts/mkiv/xits-math.lfg
@@ -1,28 +1,15 @@
--- \setupbodyfont[xits]
+-- When testing XITS in LMTX one has to do this:
--
--- $ABC$ $\cal ABC$ $\mathalternate{cal}\cal ABC$
---
--- \setupmathematics[italics=1] test $a;b;a; b; f;$ test\par % fontitalics
--- \setupmathematics[italics=2] test $a;b;a; b; f;$ test\par % fontdata
--- \setupmathematics[italics=3] test $a;b;a; b; f;$ test\par % quad based
--- \setupmathematics[italics=4] test $a;b;a; b; f;$ test\par % combination of 1 and 3
+-- \definefilesynonym [type-imp-xits.mkiv] [type-imp-xits.mkiv]
-local italics = {
- defaultfactor = 0.025,
- disableengine = true,
- corrections = {
- -- [0x1D44E] = 0.99, -- a (fraction of quad)
- -- [0x1D44F] = 100, -- b (font points)
- [0x1D453] = -0.0375, -- f
- -- todo: ssty 1/2
- }
-}
+local common = fonts.goodies.load("common-math.lfg")
+local presets = common.mathematics.tweaks.presets
return {
name = "xits-math",
version = "1.00",
comment = "Goodies that complement xits (by Khaled Hosny).",
- author = "Hans Hagen",
+ author = "Hans Hagen & Mikael Sundqvist",
copyright = "ConTeXt development team",
filenames = {
["xitsmath-regular.otf"] = {
@@ -35,14 +22,102 @@ return {
},
},
mathematics = {
- -- italics = {
- -- ["xits-math"] = italics,
- -- },
- -- kernpairs = {
- -- [0x1D44A] = { -- 𝑊
- -- [0x1D434] = -200, -- 𝐴
- -- },
- -- },
+ parameters = {
+ NoLimitSupFactor = 0,
+ NoLimitSubFactor = 1000,
+ -- AccentBaseHeight = 0,
+ AccentBaseDepth = 30,
+ FlattenedAccentTopShiftUp = 0, -- now also set, the wide ones (so we can move in one go)
+ -- AccentExtendMargin = 50,
+ RadicalDegreeBottomRaisePercent = 65,
+ -- RadicalKernBeforeDegree = 500,
+ RadicalKernAfterDegree = -500,
+ RadicalVerticalGap = 10,
+ -- RadicalRuleThickness = 68, -- 68 in font (but shifted down)
+ DelimiterPercent = 90,
+ DelimiterShortfall = 400,
+ DisplayOperatorMinHeight = 1800, -- 1800 in font
+ PrimeRaisePercent = 75, -- 50 default
+ PrimeRaiseComposedPercent = 10, -- 25 default
+
+ },
+ tweaks = {
+ aftercopying = {
+ {
+ tweak = "version",
+ expected = "Version 1.302",
+ },
+ {
+ tweak = "replacealphabets",
+ list = {
+ {
+ source = "uppercasescript",
+ target = "uppercasecalligraphic",
+ },
+ {
+ source = "uppercasescript",
+ target = "uppercasescript",
+ feature = "ss01",
+ },
+ },
+ },
+ presets.scripttocalligraphic { },
+ presets.rsfstoscript { rscale = 0.95 },
+ presets.rsfsuprighttoscript { rscale = 0.95 },
+ presets.moderntocalligraphic { rscale = 0.95 },
+ presets.eulertocalligraphic { rscale = 0.95 },
+ presets.xitsarabic { rscale = 0.88 },
+ presets.fallbacks { },
+ presets.moveitalics { correct = true },
+ presets.moveitalics { correct = true, letters = true },
+ presets.moveintegrals { factor = 1.4 },
+ presets.wipeitalics { },
+ {
+ tweak = "kerns",
+ list = {
+ [0x2F] = {
+ topleft = -0.1,
+ -- bottomleft = 0,
+ -- topright = 0,
+ bottomright = -0.1,
+ },
+ },
+ },
+ {
+ tweak = "dimensions",
+ list = {
+ -- nothing yet
+ },
+ },
+ {
+ tweak = "fixprimes",
+ -- smaller = true,
+ factor = 0.85,
+ },
+ {
+ tweak = "checkspacing",
+ },
+ {
+ tweak = "addscripts",
+ },
+ {
+ tweak = "accentdimensions",
+ },
+ {
+ tweak = "addrules",
+ },
+ {
+ tweak = "setoptions",
+ set = { "ignorekerndimensions" }
+ },
+ -- this is the mkiv section
+ {
+ tweak = "emulatelmtx",
+ feature = "emulatelmtx",
+ comment = "this is for mkiv",
+ },
+ },
+ },
alternates = {
calligraphic = { feature = 'ss01', value = 1, comment = "Mathematical Calligraphic Alphabet" },
greekssup = { feature = 'ss02', value = 1, comment = "Mathematical Greek Sans Serif Alphabet" },
diff --git a/Master/texmf-dist/tex/context/fonts/mkxl/bhai.lfg b/Master/texmf-dist/tex/context/fonts/mkxl/bhai.lfg
new file mode 100644
index 00000000000..7356f625546
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkxl/bhai.lfg
@@ -0,0 +1,72 @@
+return {
+ name = "bhai",
+ version = "1.00",
+ comment = "Goodies that complement bhai.",
+ author = "Hans Hagen & Sreeram",
+ copyright = "ConTeXt development team",
+ sanitizers = {
+ gjr2rkrf = {
+ mapping = {
+ ["કે્ર"] = "ક્રે",
+ ["કૈ્ર"] = "ક્રૈ",
+ ["ખે્ર"] = "ખ્રે",
+ ["ખૈ્ર"] = "ખ્રૈ",
+ ["ગે્ર"] = "ગ્રે",
+ ["ગૈ્ર"] = "ગ્રૈ",
+ ["ઘે્ર"] = "ઘ્રે",
+ ["ઘૈ્ર"] = "ઘ્રૈ",
+ -- not required: placeholder
+ -- ["ઙે્ર"] = "ઙ્રે",
+ -- ["ઙૈ્ર"] = "ઙ્રૈ",
+ ["ચે્ર"] = "ચ્રે",
+ ["ચૈ્ર"] = "ચ્રૈ",
+ ["જે્ર"] = "જ્રે",
+ ["જૈ્ર"] = "જ્રૈ",
+ ["ઝે્ર"] = "ઝ્રે",
+ ["ઝૈ્ર"] = "ઝ્રૈ",
+ ["ઞે્ર"] = "ઞ્રે",
+ ["ઞૈ્ર"] = "ઞ્રૈ",
+ ["ણે્ર"] = "ણ્રે",
+ ["ણૈ્ર"] = "ણ્રૈ",
+ ["તે્ર"] = "ત્રે",
+ ["તૈ્ર"] = "ત્રૈ",
+ ["થે્ર"] = "થ્રે",
+ ["થૈ્ર"] = "થ્રૈ",
+ ["દે્ર"] = "દ્રે",
+ ["દૈ્ર"] = "દ્રૈ",
+ ["ધે્ર"] = "ધ્રે",
+ ["ધૈ્ર"] = "ધ્રૈ",
+ ["ને્ર"] = "ન્રે",
+ ["નૈ્ર"] = "ન્રૈ",
+ ["પે્ર"] = "પ્રે",
+ ["પૈ્ર"] = "પ્રૈ",
+ ["ફે્ર"] = "ફ્રે",
+ ["ફૈ્ર"] = "ફ્રૈ",
+ ["બે્ર"] = "બ્રે",
+ ["બૈ્ર"] = "બ્રૈ",
+ ["ભે્ર"] = "ભ્રે",
+ ["ભૈ્ર"] = "ભ્રૈ",
+ ["મે્ર"] = "મ્રે",
+ ["મૈ્ર"] = "મ્રૈ",
+ ["યે્ર"] = "ય્રે",
+ ["યૈ્ર"] = "ય્રૈ",
+ -- some fonts might need this, some might not
+ -- ["લે્ર"] = "લ્રે",
+ -- ["લૈ્ર"] = "લ્રૈ",
+ ["વે્ર"] = "વ્રે",
+ ["વૈ્ર"] = "વ્રૈ",
+ ["સે્ર"] = "સ્રે",
+ ["સૈ્ર"] = "સ્રૈ",
+ ["શે્ર"] = "શ્રે",
+ ["શૈ્ર"] = "શ્રૈ",
+ ["ષે્ર"] = "ષ્રે",
+ ["ષૈ્ર"] = "ષ્રૈ",
+ ["હે્ર"] = "હ્રે",
+ ["હૈ્ર"] = "હ્રૈ",
+ -- some fonts might need this, some might not
+ -- ["ળે્ર"] = "ળ્રે",
+ -- ["ળૈ્ર"] = "ળ્રૈ",
+ }
+ }
+ }
+}
diff --git a/Master/texmf-dist/tex/context/fonts/mkxl/shobhika.lfg b/Master/texmf-dist/tex/context/fonts/mkxl/shobhika.lfg
new file mode 100644
index 00000000000..ae5473d7223
--- /dev/null
+++ b/Master/texmf-dist/tex/context/fonts/mkxl/shobhika.lfg
@@ -0,0 +1,72 @@
+return {
+ name = "shobhika",
+ version = "1.00",
+ comment = "Goodies that complement shobhika.",
+ author = "Hans Hagen & Sreeram",
+ copyright = "ConTeXt development team",
+ sanitizers = {
+ dev2rkrf = {
+ mapping = {
+ ["के्र"] = "क्रे",
+ ["कै्र"] = "क्रै",
+ ["खे्र"] = "ख्रे",
+ ["खै्र"] = "ख्रै",
+ ["गे्र"] = "ग्रे",
+ ["गै्र"] = "ग्रै",
+ ["घे्र"] = "घ्रे",
+ ["घै्र"] = "घ्रै",
+ -- not required: placeholder
+ -- ["ङे्र"] = "ङ्रे",
+ -- ["ङै्र"] = "ङ्रै",
+ ["चे्र"] = "च्रे",
+ ["चै्र"] = "च्रै",
+ ["जे्र"] = "ज्रे",
+ ["जै्र"] = "ज्रै",
+ ["झे्र"] = "झ्रे",
+ ["झै्र"] = "झ्रै",
+ ["ञे्र"] = "ञ्रे",
+ ["ञै्र"] = "ञ्रै",
+ ["णे्र"] = "ण्रे",
+ ["णै्र"] = "ण्रै",
+ ["ते्र"] = "त्रे",
+ ["तै्र"] = "त्रै",
+ ["थे्र"] = "थ्रे",
+ ["थै्र"] = "थ्रै",
+ ["दे्र"] = "द्रे",
+ ["दै्र"] = "द्रै",
+ ["धे्र"] = "ध्रे",
+ ["धै्र"] = "ध्रै",
+ ["ने्र"] = "न्रे",
+ ["नै्र"] = "न्रै",
+ ["पे्र"] = "प्रे",
+ ["पै्र"] = "प्रै",
+ ["फे्र"] = "फ्रे",
+ ["फै्र"] = "फ्रै",
+ ["बे्र"] = "ब्रे",
+ ["बै्र"] = "ब्रै",
+ ["भे्र"] = "भ्रे",
+ ["भै्र"] = "भ्रै",
+ ["मे्र"] = "म्रे",
+ ["मै्र"] = "म्रै",
+ ["ये्र"] = "य्रे",
+ ["यै्र"] = "य्रै",
+ -- some fonts might need this, some might not
+ -- ["ले्र"] = "ल्रे",
+ -- ["लै्र"] = "ल्रै",
+ ["वे्र"] = "व्रे",
+ ["वै्र"] = "व्रै",
+ ["से्र"] = "स्रे",
+ ["सै्र"] = "स्रै",
+ ["शे्र"] = "श्रे",
+ ["शै्र"] = "श्रै",
+ ["षे्र"] = "ष्रे",
+ ["षै्र"] = "ष्रै",
+ ["हे्र"] = "ह्रे",
+ ["है्र"] = "ह्रै",
+ -- some fonts might need this, some might not
+ -- ["ळे्र"] = "ळ्रे",
+ -- ["ळै्र"] = "ळ्रै",
+ }
+ }
+ }
+}
diff --git a/Master/texmf-dist/tex/context/interface/mkii/cont-cs.xml b/Master/texmf-dist/tex/context/interface/mkii/cont-cs.xml
deleted file mode 100644
index 8da15965921..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkii/cont-cs.xml
+++ /dev/null
@@ -1,10396 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- versions:
-
- comment : user interface definitions of ConTeXt
-
- authors : Hans Hagen, Taco Hoekwater, Patrick Gundlach, Wolfgang Schuster, and others
-
- versions : 2004.11.17 : initial version
- 2006.08.02 : define + resolve
-
--->
-
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context test" language="en" version="2006.08.02">
-
- <!-- there are some more -->
-
- <cd:define name="align">
- <cd:constant type="uvnitr"/>
- <cd:constant type="vnejsi"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="nastred"/>
- <cd:constant type="center"/>
- <cd:constant type="normalni"/>
- <cd:constant type="ne"/>
- <cd:constant type="ano"/>
- <cd:constant type="siroky"/>
- <cd:constant type="posledni"/>
- <cd:constant type="r2l"/>
- <cd:constant type="l2r"/>
- </cd:define>
-
- <cd:define name="symalign">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="nastred"/>
- <cd:constant type="center"/>
- </cd:define>
-
- <cd:define name="indenting">
- <cd:constant type="nikdy"/>
- <cd:constant type="zadny"/>
- <cd:constant type="ne"/>
- <cd:constant type="ne"/>
- <cd:constant type="ano"/>
- <cd:constant type="vzdy"/>
- <cd:constant type="prvni"/>
- <cd:constant type="dalsi"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="normalni"/>
- <cd:constant type="liche"/>
- <cd:constant type="sude"/>
- <cd:constant type="cd:dimension"/>
- </cd:define>
-
- <cd:define name="indentnext">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:define>
-
- <cd:define name="style">
- <cd:constant type="normalni"/>
- <cd:constant type="tucne"/>
- <cd:constant type="sklonene"/>
- <cd:constant type="tucnesklonene"/>
- <cd:constant type="opis"/>
- <cd:constant type="kap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
- </cd:define>
-
- <cd:define name="language">
- <cd:constant type="nl"/>
- <cd:constant type="fr"/>
- <cd:constant type="en"/>
- <cd:constant type="uk"/>
- <cd:constant type="de"/>
- <cd:constant type="es"/>
- <cd:constant type="cz"/>
- <cd:constant type=".."/>
- </cd:define>
-
- <cd:define name="texts">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="cislostranky"/>
- </cd:define>
-
- <cd:define name="layout-h">
- <cd:constant type="text" default="yes"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="hrana"/>
- </cd:define>
-
- <cd:define name="layout-v">
- <cd:constant type="vrsek"/>
- <cd:constant type="zahlavi"/>
- <cd:constant type="text" default="yes"/>
- <cd:constant type="upati"/>
- <cd:constant type="spodek"/>
- </cd:define>
-
- <cd:define name="bodyfont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="male"/>
- <cd:constant type="velke"/>
- </cd:define>
-
- <cd:command name="installlanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="instalacejazyka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="mezerovani">
- <cd:constant type="zhustene" default="yes"/>
- <cd:constant type="siroky"/>
- </cd:parameter>
- <cd:parameter name="lefthyphenmin">
- <cd:constant type="cd:number" default="2"/>
- </cd:parameter>
- <cd:parameter name="righthyphenmin">
- <cd:constant type="cd:number" default="2"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="vetavlevo">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="vetavpravo">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="podvetavlevo">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="podvetavpravo">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="citovatvlevo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citovatvpravo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citacevlevo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citacevpravo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="leftspeech">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="middlespeech">
- <cd:constant type="cd:command" default=""/>
- </cd:parameter>
- <cd:parameter name="rightspeech">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="limittext">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="datum">
- <cd:constant type="cd:text"/> <!-- TODO -->
- </cd:parameter>
- <cd:parameter name="compoundhyphen">
- <cd:constant type="cd:command" default="\compoundhyphen"/>
- </cd:parameter>
- <cd:parameter name="leftcompoundhyphen">
- <cd:constant type="cd:command" default="\compoundhyphen"/>
- </cd:parameter>
- <cd:parameter name="rightcompoundhyphen">
- <cd:constant type="cd:command" default=""/>
- </cd:parameter>
- <cd:parameter name="implicitni">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="nastavjazyk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="instalacejazyka" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="language" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="jazyk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mainlanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="hlavnijazyk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="translate" file="lang-lab.tex" category="language">
- <cd:sequence>
- <cd:string value="prelozit"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useencoding" file="enco-ini.tex" category="encoding" obsolete="yes"> <!-- engine="pdftex" -->
- <cd:sequence>
- <cd:string value="uzijkodovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usespecials" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="uzijspeciality"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="definujvystup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="nastavvystup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontenvironment" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definujprostredizakladnihofontu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes"> <!-- it's possible to use 1+2+3, 2+3, what about 1+2? -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="no"> <!-- have to force no, otherwise \showsetup is wrong ! -->
- <cd:constant type="5pt"/> <!-- TODO: maybe <cd:resolve name="bodyfont"/> -->
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="implicitni"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:parameter name="text">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scriptscript">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="xx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="d">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="male">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="velky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="meziradkovamezera">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="em">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbodyfontenvironment" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="nastavprostredizakladnihofontu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes"> <!-- same as definebodyfontenvironment; you can define the whole commant to inherit, not only parameters-->
- <cd:inherit name="definujprostredizakladnihofontu" n="1"/>
- </cd:keywords>
- <cd:keywords n="2" optional="no">
- <cd:inherit name="definujprostredizakladnihofontu" n="2" optional="no"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="definujprostredizakladnihofontu" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showbodyfontenvironment" file="font-run.tex" category="fonts"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="ukazpostredizakladnihofontu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="nastavzakladnifont" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definujzakladnifont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- <cd:constant type="implicitni"/> -->
- <cd:resolve name="bodyfont"/> <!-- TODO: check this -->
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="rm" default="yes"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- <cd:constant type="mm"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="tf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sl">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="it">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bs">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mr">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ex">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ma">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mb">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="md">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontDEF" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definujzakladnifont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="nastavzakladnifont" n="2"/>
- </cd:keywords>
- <cd:keywords n="1">
- <cd:inherit name="nastavzakladnifont" n="3"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontREF" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definujzakladnifont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="nastavzakladnifont" n="1"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="nastavzakladnifont" n="2"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showbodyfont" file="font-run.tex" category="fonts"> <!-- visual debugging -->
- <cd:sequence>
- <cd:string value="ukazzakladnifont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="nastavzakladnifont" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbodyfont" file="font-run.tex" category="fonts">
- <cd:sequence>
- <cd:string value="nastavzakladnifont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- TODO: many missing, maybe also <cd:resolve name="bodyfont"/> -->
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="pravidelne"/>
- <cd:constant type="antikva"/>
- <cd:constant type="sans"/>
- <cd:constant type="podpora"/>
- <cd:constant type="bezserifu"/>
- <cd:constant type="mono"/>
- <cd:constant type="opis"/>
- <cd:constant type="strojopis"/>
- <cd:constant type="rukopisne"/>
- <cd:constant type="kaligraficke"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="switchtobodyfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="prepninazakladnifont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="pravidelne"/>
- <cd:constant type="antikva"/>
- <cd:constant type="sans"/>
- <cd:constant type="podpora"/>
- <cd:constant type="bezserifu"/>
- <cd:constant type="mono"/>
- <cd:constant type="opis"/>
- <cd:constant type="strojopis"/>
- <cd:constant type="rukopisne"/>
- <cd:constant type="kaligraficke"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="male"/>
- <cd:constant type="velke"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definujfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="nastavbarvu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolors" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="nastavbarvy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="globalne"/>
- <cd:constant type="lokalne"/>
- </cd:parameter>
- <cd:parameter name="konverze">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="vzdy"/>
- <cd:constant type="nikdy"/>
- </cd:parameter>
- <cd:parameter name="redukce">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="rgb">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="cmyk">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="mpcmyk">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="mpspot">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="barvatextu">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="c"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/>
- <cd:constant type="k"/>
- <cd:constant type="p"/>
- <cd:constant type="s"/>
- <cd:constant type="ne"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="vse"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="intent">
- <cd:constant type="zadny"/>
- <cd:constant type="overprint"/>
- <cd:constant type="knockout"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definujbarvu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="r">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="g">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="k">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="s">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="h">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="t">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="p">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="e">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="color" type="environment" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="barva"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="color" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="barva"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="graycolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="sedabarva"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showcolor" file="colo-run.tex" category="colors"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="ukazbarvu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definepalet" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definujpaletu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppalet" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="nastavpaletu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecolorgroup" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definujskupinubarev"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="rgb" default="yes"/>
- <cd:constant type="cmyk"/>
- <cd:constant type="seda"/>
- <cd:constant type="s"/>
- </cd:keywords>
- <cd:triplet n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showpalet" file="colo-run.tex" category="colors"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="ukazpaletu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="horizontalne"/>
- <cd:constant type="vertikalne"/>
- <cd:constant type="jmeno"/>
- <cd:constant type="hodnota"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showcolorgroup" file="colo-run.tex" category="colors"> <!-- and debug-->
- <cd:sequence>
- <cd:string value="ukazskupinubarev"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="horizontalne"/>
- <cd:constant type="vertikalne"/>
- <cd:constant type="jmeno"/>
- <cd:constant type="hodnota"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comparepalet" file="colo-run.tex" category="colors"> <!-- and debug? -->
- <cd:sequence>
- <cd:string value="porovnejpaletu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comparecolorgroup" file="colo-run.tex" category="colors">
- <cd:sequence>
- <cd:string value="porovnejskupinubarev"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showmakeup" file="supp-vis.tex" category="debug">
- <cd:sequence>
- <cd:string value="ukazupravu"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definetype" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="definetype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="nastavtype" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptype" file="core-ver.tex" category="verbatim"> <!-- TODO -->
- <cd:sequence>
- <cd:string value="nastavtype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="mezera">
- <cd:constant type="zap"/>
- <cd:constant type="vyp" default="yes"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="sklonene"/>
- <cd:constant type="normalni"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="type" file="verb-ini.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="opis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typ" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="pis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tex" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="tex"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <!-- cd:command name="arg" file="core-ver.tex"> command broken
- <cd:sequence>
- <cd:string value="arg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command -->
-
- <cd:command name="definetyping" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="definujopis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="nastavopis" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="nastavopis" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptyping" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="nastavopis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="soubor"/>
- <cd:constant type="typing"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="volba">
- <cd:constant type="sklonene"/>
- <cd:constant type="normalni"/>
- <cd:constant type="prikazy" version="mkiv"/>
- <cd:constant type="barevne"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="iprikaz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vprikaz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="cprikaz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standardni"/>
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="sudamarginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="lichyokraj">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prazdny">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="standardni"/>
- <cd:constant type="pulradku"/>
- <cd:constant type="radek"/>
- </cd:parameter>
- <cd:parameter name="escape">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="mezera">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="tab">
- <cd:constant type="cd:number"/>
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="stranka">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="odsadpristi">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="paleta">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="range">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="radky">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="hyphenated"/>
- </cd:parameter>
- <cd:parameter name="prazdne">
- <cd:constant type="ano"/>
- <cd:constant type="vse"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="cislovani">
- <cd:constant type="radek"/>
- <cd:constant type="soubor"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="zakladnifont">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="strip">
- <cd:constant type="ne"/>
- <cd:constant type="auto"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typing" type="environment" generated="yes" file="verb-ini.tex"
- category="verbatim">
- <cd:sequence>
- <cd:variable value="typing"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="typefile" file="verb-ini.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="opissoubor"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="nastavpoznamkypodcarou"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="konverze">
- <cd:constant type="cisla"/>
- <cd:constant type="pismena"/>
- <cd:constant type="Pismena"/>
- <cd:constant type="rimskecislice"/>
- <cd:constant type="Rimskecislice"/>
- </cd:parameter>
- <cd:parameter name="zpusob">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="stranka"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="sloupce"/>
- <cd:constant type="firstcolumn"/>
- <cd:constant type="lastcolumn"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="linka">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zakladnifont">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostsloupcu">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostokraje">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ciselnyprikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="textovyprikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="tolerantni"/>
- <cd:constant type="striktni"/>
- <cd:constant type="velmistriktni"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="styltextu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barvatextu">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="interakce">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="odstavec">
- <cd:constant type="ano"/>
- <cd:constant type="ne" default="yes"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootnotedefinition" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="nastavdefinicipoznamekpodcarou"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:inherit name="nastavpopisy" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="footnote" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="poznamkapodcarou"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="footnotetext" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="footnotetext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="note" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="poznamka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="localfootnotes" type="environment" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="localfootnotes"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelocalfootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="umistilokalnipoznamkypodcarou"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="nastavpoznamkypodcarou" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placefootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="umistipoznamkypodcarou"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="nastavpoznamkypodcarou" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupunderbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="nastavpodtrzeni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- <cd:parameter name="tloustkalinky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetspodku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetvrsku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="barvalinky">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="underbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="underbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="underbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="underbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overstrike" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrike"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overstrikes" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrikes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="rimskecislice"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Rimskecislice"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="numbers" file="core-con.tex">
- <cd:sequence>
- <cd:string value="cisla"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="znak"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Znak"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="znaky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Znaky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mediaeval" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mediaeval"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="month" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mesic"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="MONTH" file="core-con.tex">
- <cd:sequence>
- <cd:string value="MESIC"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="weekday" file="core-con.tex">
- <cd:sequence>
- <cd:string value="vsedniden"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WEEKDAY" file="core-con.tex">
- <cd:sequence>
- <cd:string value="VSEDNIDEN"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcapitals" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="nastavkapitalky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="titul">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="cap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nocap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="nocap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="CAP" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="CAP"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Cap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Caps" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Caps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WORD" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="SLOVO"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WORDS" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="SLOVA"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Word" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Slovo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Words" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Slova"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="stretched" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="roztazene"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definujsymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefiguresymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definujobrazeksymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="nastavexterniobrazy" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="symbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="symbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="symbolset" type="environment" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="symbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsymbolset" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="nastavsadusymbolu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usesymbols" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="uzijsymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showsymbolset" file="symb-run.tex" category="symbols"> <!-- and symbols -->
- <cd:sequence>
- <cd:string value="ukazsadusymbolu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineconversion" file="core-con.tex">
- <cd:sequence>
- <cd:string value="definujkonverzi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="convertnumber" file="core-con.tex">
- <cd:sequence>
- <cd:string value="konvertujcislo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheadtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="nastavtexthlavicky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplabeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="nastavtextpopisku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="headtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="texthlavicky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="textpopisku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarginrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavmarginalnilinky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="uroven">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="tloustkalinky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="marginalnilinka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="marginalnilinka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplinewidth" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavsirkucary"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavoramovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/> <!-- defines a command with that name -->
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="vyska">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- <cd:constant type="fixne"/>
- <cd:constant type="lokalne"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="autosirka">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="sila"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="zadny"/>
- <cd:constant type="prekryv"/>
- <cd:constant type="implicitni"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="podlehloubky"/>
- <cd:constant type="visici"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="nivy"/>
- <cd:constant type="nizko"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="nastred"/>
- <cd:constant type="spodek"/>
- <cd:constant type="drzet"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="zadny"/>
- <cd:constant type="prazdne"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="globalne"/>
- <cd:constant type="lokalne"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="spodek">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vrsek">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ramecek">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- <cd:constant type="zadny"/>
- <cd:constant type="prekryv"/>
- </cd:parameter>
- <cd:parameter name="rameceknahore">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="ramecekdole">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="ramecekvlevo">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="ramecekvpravo">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="offsetramecku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hloubkaramecku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rohramecku">
- <cd:constant type="zaobleny"/>
- <cd:constant type="pravouhly"/>
- </cd:parameter>
- <cd:parameter name="polomerramecku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="barvaramecku">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pozadi">
- <cd:constant type="rastr"/>
- <cd:constant type="barevne"/>
- <cd:constant type="zadny"/>
- <cd:constant type="popredi"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="rastrpozadi">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="barvapozadi">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="offsetpozadi">
- <cd:constant type="ramecek"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hloubkapozadi">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rohpozadi">
- <cd:constant type="zaobleny"/>
- <cd:constant type="pravouhly"/>
- </cd:parameter>
- <cd:parameter name="polomerpozadi">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hloubka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="roh">
- <cd:constant type="zaobleny"/>
- <cd:constant type="pravouhly"/>
- </cd:parameter>
- <cd:parameter name="polomer">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prazdne">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="foregroundcolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="foregroundstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="tloustkalinky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="oramovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="nastavoramovani" n="2"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="zaramovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="nastavoramovani" n="2"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="thinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="tenkelinky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes">
- <cd:inherit name="nastavtenkelinky" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupthinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavtenkelinky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="meziradkovamezera">
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="barvapozadi">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="hloubka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- </cd:parameter>
- <cd:parameter name="tloustkalinky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pozadi">
- <cd:constant type="barevne"/>
- </cd:parameter>
- <cd:parameter name="barvapozadi">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hairline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="vlasovalinka"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="thinrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="tenkalinka"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="defineframedtext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definujoramovanytext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavoramovanetexty" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definujoramovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavoramovanetexty" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupframedtexts" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavoramovanetexty"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="zakladnifont">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vnitrni">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="korekceradku">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="korekcehloubky">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="standardni"/>
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="odsazovani">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framedtext" type="environment" generated="yes" file="core-rul.tex">
- <cd:sequence>
- <cd:variable value="oramovanytext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="zadny"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavoramovanetexty" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framedtext" generated="yes" file="core-rul.tex">
- <cd:sequence>
- <cd:variable value="oramovanytext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="nastavoramovanetexty" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="background" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="pozadi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="background" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="pozadi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbackground" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavpozadi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="levyoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pravyoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetvrsku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetspodku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="vyplnovelinky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="nastavvyplnovelinky" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillintext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="vyplnenytext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="nastavvyplnovelinky" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavvyplnovelinky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="sirka">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="meziradkovamezera">
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="vyplnovyradek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="nastavvyplnoveradky" n="1"/>
- </cd:assignments>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfillinlines" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavvyplnoveradky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptextrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavtextovelinky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="naokraji"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zakladnifont">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barvalinky">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="textovalinka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- </cd:keywords>
- <cd:content n="2" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="textovalinka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- </cd:keywords>
- <cd:content n="2" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="blackrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="cernalinka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="nastavcernelinky" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="blackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="cernelinky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:inherit name="nastavcernelinky" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavcernelinky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension" default="1em"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension" default="1ex"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="hloubka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a" default="yes"/>
- <cd:constant type="b"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension" default=".25ex"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number" default="3"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineoverlay" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definujprekryv"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usemodule" file="core-fil.tex"> <!-- TODO -->
- <cd:sequence>
- <cd:string value="uzijmodul"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reset" file="core-num.tex">
- <cd:sequence>
- <cd:string value="reset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!-- <cd:command name="donttest">
- <cd:sequence>
- <cd:string value="zadnytest"/>
- </cd:sequence>
-</cd:command> -->
-
- <cd:command name="localenvironment" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="localenvironment"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupsystem" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="nastavsystem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="rozliseni">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="soubor">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="adresar">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="nahodne">
- <cd:constant type="normalni"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usedirectory" file="core-job.mkii"> <!-- usepath, todo: more than one file -->
- <cd:sequence>
- <cd:string value="usedirectory"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="reset"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="low" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="nizky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="high" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="vysoky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="lohi" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="nivy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="nizko"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showframe" file="page-run.tex">
- <cd:sequence>
- <cd:string value="ukazramecek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="hrana"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="leftaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zarovnanovlevo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="rightaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zarovnanovpravo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="midaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zarovnanonastred"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="wordright" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="slovovpravo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inmargin" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="naokraj"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="nizko"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inothermargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="nadruhyokraj"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="nizko"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inleft" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="vlevo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="nizko"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inright" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="vpravo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="nizko"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ininner" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="ininner"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="nizko"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inouter" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inouter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="nizko"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="column" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="sloupec"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showstruts" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="ukazpodpery"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showsetups" file="page-run.tex">
- <cd:sequence>
- <cd:string value="ukaznastaveni"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showlayout" file="page-run.tex">
- <cd:sequence>
- <cd:string value="ukazvzhled"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="margintext" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="marginalnitext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="nizko"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarginblocks" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="nastavmarginalniblok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="misto">
- <cd:constant type="naokraji"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="vrsek">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="spodek">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginblock" type="environment" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="marginblock"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="part" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="part"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="title" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="title"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="chapter" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="chapter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="section" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="section"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="appendix" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="appendix"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="in" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="tref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:content n="2" interactive="yes"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="at" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="pref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:content n="2" interactive="yes"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="about" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="oref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:reference n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="somewhere" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="nekde"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="atpage" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="nastrane"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ref" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="ref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="t"/>
- <cd:constant type="p"/>
- <cd:constant type="r"/>
- <cd:constant type="s"/>
- <cd:constant type="e"/>
- </cd:keywords>
- <cd:reference n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textreference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="odkaznatext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="pagereference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="odkaznastranu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="odkaz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usereferences" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="uzijodkazy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="definujodkaz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereferenceformat" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="definujformatodkazu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="vlevo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="popisek">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hl" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="hl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="vl" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="vl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="godown" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="jdidolu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="whitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="bilemisto"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="nowhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zadnebilemisto"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="crlf" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="crlf"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="space" file="syst-pln.tex">
- <cd:sequence>
- <cd:string value="mezera"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="fixedspaces" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="tvrdemezery"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="emptylines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="emptylines"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nospace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zadnamezera"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="packed" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zhustene"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupdescriptions" file="core-des.tex">
- <cd:sequence>
- <cd:string value="nastavpopisy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/> <!-- TODO: style=normal -->
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- <cd:constant type="cd:dimension" default="8em"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="vzor">
- <cd:constant type="cd:text" default=""/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closecommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="closesymbol">
- <cd:constant type="cd:text" default=""/>
- </cd:parameter>
- <cd:parameter name="titleleft">
- <cd:constant type="cd:text" default="("/>
- </cd:parameter>
- <cd:parameter name="titleright">
- <cd:constant type="cd:text" default=")"/>
- </cd:parameter>
- <cd:parameter name="vzdalenosttitulek">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="styltitulek">
- <cd:resolve name="style"/> <!-- TODO: default=bold -->
- </cd:parameter>
- <cd:parameter name="barvatitulek">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="standardni"/>
- <cd:constant type="ano"/>
- <cd:constant type="ne" default="yes"/> <!-- TODO: this is default; conflicting syntax? -->
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vlevo" default="yes"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="semknuto"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="ivlevo"/>
- <cd:constant type="ivpravo"/>
- <cd:constant type="visici"/>
- </cd:parameter>
- <cd:parameter name="stylhlavicky">
- <cd:resolve name="style"/> <!-- TODO: default=bold -->
- </cd:parameter>
- <cd:parameter name="barvahlavicky">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="headcommand">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zaveseni">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="odsadpristi">
- <cd:resolve name="indentnext"/> <!-- default=yes -->
- </cd:parameter>
- <cd:parameter name="odsazovani">
- <cd:resolve name="indenting"/> <!-- default=never -->
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="obrazovka">
- <cd:constant type="ano" default="yes"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupenumerations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="nastavvycty"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="nastavpopisy" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineenumeration" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definujvycet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="nastavvycty" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="enumeration" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="vycet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing n="1" interactive="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="enumeration" type="environment" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="vycet"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definedescription" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definujpopis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavpopisy" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="description" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="popis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="description" type="environment" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="popis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupindentedtext" file="strc-des.tex">
- <cd:sequence>
- <cd:string value="setupindentedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylhlavicky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vzor">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineindentedtext" file="strc-des.tex">
- <cd:sequence>
- <cd:string value="defineindentedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="setupindentedtext" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="indentation" generated="yes" file="core-spa.tex">
- <cd:sequence>
- <cd:variable value="indentation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelabel" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definujpopisek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="naokraji"/>
- <cd:constant type="dotextu"/>
- </cd:parameter>
- <cd:parameter name="zpusob">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="dobloku">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="stylhlavicky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barvahlavicky">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labeling" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="labeling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolumns" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="nastavsloupce"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes"> <!-- no idea why it is optional -->
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nvrsek">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="linka">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/> <!-- default and unknown missing -->
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="velmistriktni"/>
- <cd:constant type="striktni"/>
- <cd:constant type="tolerantni"/>
- <cd:constant type="velmitolerantni"/>
- <cd:constant type="natahnout"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rovnovaha">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:constant type="text"/>
- <!-- cd:constant type="yes"/ -->
- <!-- cd:constant type="no"/ -->
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="prazdny">
- <cd:constant type="fixne"/>
- <cd:constant type="pulradku"/>
- <cd:constant type="radek"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="velke"/>
- <cd:constant type="stredni"/>
- <cd:constant type="male"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="pozadi"/>
- </cd:parameter>
- <cd:parameter name="smer">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="columns" type="environment" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="columns"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="nastavsloupce" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="definujtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="zahlavi"/>
- <cd:constant type="upati"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheader" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavzahlavi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text" default="yes"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="hrana"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="status">
- <cd:constant type="normalni"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="zadny"/>
- <cd:constant type="zadneznaceni"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylvlevo">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylvpravo">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="sirkavlevo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sirkavpravo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfooter" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavupati"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="nastavzahlavi" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="nastavzahlavi" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="nastavzahlavi" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="nastavzahlavi" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptop" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavhorejsek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="nastavzahlavi" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="nastavzahlavi" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbottom" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavspodek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="nastavzahlavi" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="nastavzahlavi" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="noheaderandfooterlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="zadnezahlaviaupati"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="notopandbottomlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="zadnehorniadolniradky"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupheadertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavtextyzahlavi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavtextyupati"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptexttexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavtexttexty"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptoptexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavhornitexty"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbottomtexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nastavdolnitexty"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="settextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="settextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="resettextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="resettextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="lefttext"/>
- <cd:constant type="middletext"/>
- <cd:constant type="righttext"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="definujznaceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplemarking" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="propojeneznaceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="decouplemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="rozpojeneznaceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="resetmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="resetznaceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="nastavznaceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="expanzen">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="znaceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="getmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="ziskejznaceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="prvni"/>
- <cd:constant type="posledni"/>
- <cd:constant type="predchozi"/>
- <cd:constant type="obe"/>
- <cd:constant type="vse"/>
- <cd:constant type="aktualni"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="zadneznaceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplayout" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="nastavvzhled"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="nastred"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="nastred"/>
- </cd:parameter>
- <cd:parameter name="zpetnamezera">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="svrchnimezera">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="levyokraj">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pravyokraj">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zahlavi">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="upati">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vrsek">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spodek">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="levahrana">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pravahrana">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostzahlavi">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostupati">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostvrsku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostspodku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostlevehookraje">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostpravehookraje">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostlevehrany">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostpravehrany">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="horoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsethlavicky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="znaceni">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- <cd:constant type="barevne"/>
- <cd:constant type="rastr"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="stranka"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="spodek"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="jednostranne"/>
- <cd:constant type="dvoustranny"/>
- </cd:parameter>
- <cd:parameter name="meritko">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="radky">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sloupce">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostsloupcu">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mrizka">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="bottomspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cutspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="textdistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sirkatextu">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="textmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="clipoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stranka">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="papir">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="adaptlayout" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="prizpusobvzhled"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="radky">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showgrid" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="ukazmrizku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- <cd:constant type="zadny"/>
- <cd:constant type="vse"/>
- <cd:constant type="radky"/>
- <cd:constant type="ramecek"/>
- <cd:constant type="nonumber"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vnejsi"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="umistinamrizku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="premistinamrizku" n="1"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="moveongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="premistinamrizku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="standardni" default="yes"/> <!-- also 'normal', 'yes' and 'force' -->
- <cd:constant type="vrsek"/>
- <cd:constant type="obe"/>
- <cd:constant type="spodek"/>
- <cd:constant type="-top"/>
- <cd:constant type="-both"/>
- <cd:constant type="-bottom"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="nastred"/>
- <cd:constant type="nizko"/>
- <cd:constant type="stranka"/>
- <cd:constant type="siroky"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="podlehloubky"/>
- <cd:constant type="radek"/>
- <cd:constant type="reset"/>
- <cd:constant type="zadny"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="project" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="projekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="environment" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="prostredi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="product" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="produkt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="component" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="komponenta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomorefiles" file="core-job.tex">
- <cd:sequence>
- <cd:string value="zadnedalsisoubory"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupinterlinespace" variant="1" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nastavmeziradkovoumezeru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="reset"/>
- <cd:constant type="male" default="yes"/>
- <cd:constant type="stredni"/>
- <cd:constant type="auto"/>
- <cd:constant type="velke"/>
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinterlinespace2" variant="2" file="core-spa.tex">
- <!-- attached a 2 to make this definition usable with \showsetup -->
- <cd:sequence>
- <cd:string value="nastavmeziradkovoumezeru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="vyska">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="hloubka">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="radek">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vrsek">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="spodek">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppagenumbering" file="page-num.tex">
- <cd:sequence>
- <cd:string value="nastavcislovanistran"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="jednostranne"/>
- <cd:constant type="dvoustranny"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="zahlavi"/>
- <cd:constant type="upati"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="textovahrana"/>
- <cd:constant type="ivlevo"/>
- <cd:constant type="ivpravo"/>
- </cd:parameter>
- <cd:parameter name="konverze">
- <cd:constant type="cisla"/>
- <cd:constant type="pismena"/>
- <cd:constant type="Pismena"/>
- <cd:constant type="rimskecislice"/>
- <cd:constant type="Rimskecislice"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="zpusob">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="oddelovaccisla">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="oddelovactextu">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="stranka">
- <cd:constant type="posledni"/>
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupnarrower" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nastavzuzeni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="vlevo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stredni">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="define" file="syst-ext.tex">
- <cd:sequence>
- <cd:string value="definuj"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:csname n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usecommands" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="uzijprikazy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definestartstop" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="definujstartstop"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prikazy">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheads" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="nastavnadpisy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="cislooddilu">
- <cd:constant type="ano"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="normalni"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="nastred"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="odstavec"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="predel">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="zarovnejtitul">
- <cd:constant type="ano"/>
- <cd:constant type="plvouciobjekt"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="velmistriktni"/>
- <cd:constant type="striktni"/>
- <cd:constant type="tolerantni"/>
- <cd:constant type="velmitolerantni"/>
- <cd:constant type="natahnout"/>
- </cd:parameter>
- <cd:parameter name="odsadpristi">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcaptions" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="nastavpopisky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="misto">
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- <cd:constant type="zadny"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="nizko"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="lefthanging"/>
- <cd:constant type="righthanging"/>
- <cd:constant type="levyokraj"/>
- <cd:constant type="pravyokraj"/>
- <cd:constant type="innermargin"/>
- <cd:constant type="outermargin"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- <cd:constant type="max"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="minsirka">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stylhlavicky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="cislo">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="konverze">
- <cd:constant type="cisla"/>
- <cd:constant type="pismena"/>
- <cd:constant type="Pismena"/>
- <cd:constant type="rimskecislice"/>
- <cd:constant type="Rimskecislice"/>
- </cd:parameter>
- <cd:parameter name="zpusob">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="predel">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcaption" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="nastavpopisek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="nastavpopisky" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloats" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="nastavplvouciobjekty"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mezerapred">
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="mezeraza">
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="bocnimezerapred">
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="bocnimezeraza">
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="odsadpristi">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="nvrsek">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nspodek">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nradky">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="implicitni">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="0"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostlevehookraje">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostpravehookraje">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sidealign">
- <cd:constant type="normalni"/>
- <cd:constant type="radek"/>
- </cd:parameter>
- <cd:parameter name="cislovani">
- <cd:constant type="ano"/>
- <cd:constant type="nocheck"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloatsplitting" file="core-tsp.tex">
- <cd:sequence>
- <cd:string value="nastavdeleniplvoucichobjektu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="konverze">
- <cd:constant type="cisla"/>
- <cd:constant type="pismena"/>
- <cd:constant type="Pismena"/>
- <cd:constant type="rimskecislice"/>
- <cd:constant type="Rimskecislice"/>
- </cd:parameter>
- <cd:parameter name="radky">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="splitfloat" file="core-tsp.tex">
- <cd:sequence>
- <cd:string value="rozdelplvouciobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="nastavdeleniplvoucichobjektu" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupoppositeplacing" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="nastavumisteniprotejsku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="opposite" type="environment" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="opposite"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setuphyphenmark" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="nastavdelitko"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="znak">
- <cd:constant type="--"/>
- <cd:constant type="---"/>
- <cd:constant type="-"/>
- <cd:constant type="~"/>
- <cd:constant type="("/>
- <cd:constant type=")"/>
- <cd:constant type="="/>
- <cd:constant type="/"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppositioning" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="nastavumistovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="prekryv"/>
- </cd:parameter>
- <cd:parameter name="jednotka">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="meritko">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="xkrok">
- <cd:constant type="absolutni"/>
- <cd:constant type="relativni"/>
- </cd:parameter>
- <cd:parameter name="ykrok">
- <cd:constant type="absolutni"/>
- <cd:constant type="relativni"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="positioning" type="environment" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="positioning"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="grid" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="mrizka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xkrok">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ykrok">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="meritko">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="jednotka">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="page" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="strana"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="ano" default="yes"/>
- <cd:constant type="zlom"/>
- <cd:constant type="ne"/>
- <cd:constant type="nastaveni"/>
- <cd:constant type="vysokapriorita"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="zablokovat"/>
- <cd:constant type="posledni"/>
- <cd:constant type="ctyrnasobny"/>
- <cd:constant type="sude"/>
- <cd:constant type="liche"/>
- <cd:constant type="prazdny"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="reset"/>
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupreferencing" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="nastavodkazovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interakce">
- <cd:constant type="popisek"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="vse"/>
- <cd:constant type="symbol"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="konverzesouboru">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="male"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autofile">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="stranka"/>
- </cd:parameter>
- <cd:parameter name="globalne">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="export">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupurl" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="nastavurl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="urlalternativa">
- <cd:constant type="zadny"/>
- <cd:constant type="obe"/>
- <cd:constant type="pred"/>
- <cd:constant type="po"/>
- </cd:parameter>
- <cd:parameter name="prostorurl">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetoreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="zapisdoseznamuodkazu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="placereferencelist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definujseznamodkazu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavseznamodkazu" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="nastavseznamodkazu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="lokalne"/>
- <cd:constant type="predchozi"/>
- <cd:constant type="vse"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="zapisdoseznamu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="misto">
- <cd:constant type="zde"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writebetweenlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="zapismeziseznam"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="misto">
- <cd:constant type="zde"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="zadnyseznam"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="listsymbol" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="listsymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="umistiseznam"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavseznam" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="determinelistcharacteristics" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="stanovcharakteristickuseznamu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavseznam" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="umistikombinovanyseznam"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavkombinovanyseznam" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definujseznam"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes"> <!-- inherits from -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="nastavseznam" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="nastavseznam"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="..."/>
- <cd:constant type="zadny"/>
- <cd:constant type="prikaz"/>
- </cd:parameter>
- <cd:parameter name="propojeni">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="lokalne"/>
- <cd:constant type="predchozi"/>
- <cd:constant type="aktualni"/>
- <cd:constant type="zde"/>
- <cd:constant type="uvod"/>
- <cd:constant type="vse"/>
- </cd:parameter>
- <cd:parameter name="extras">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylcisla">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="styltextu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylstranky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- <cd:parameter name="ciselnyprikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="textovyprikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="strankovyprikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="interakce">
- <cd:constant type="cislooddilu"/>
- <cd:constant type="text"/>
- <cd:constant type="cislostranky"/>
- <cd:constant type="vse"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="popisek">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="cislostranky">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="cislonadpisu">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="zarovnejtitul">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- </cd:parameter>
- <cd:parameter name="hloubka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="predel">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="zadny"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="..."/>
- </cd:parameter>
- <cd:parameter name="expanzen">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="prikaz"/>
- </cd:parameter>
- <cd:parameter name="maxsirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="order">
- <cd:constant type="prikaz"/>
- <cd:constant type="vse"/>
- <cd:constant type="normalni"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplistalternative" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setuplistalternative"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="no">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <!-- cd:constant type="cd:name"/ -->
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="prikaz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="natahnout">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definujkombinovanyseznam"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:list"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="nastavkombinovanyseznam" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="nastavkombinovanyseznam"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="uroven">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="4"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="aktualni"/>
- </cd:parameter>
- <cd:inherit name="nastavseznam" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="umisti"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavkombinovanyseznam" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completecombinedlist" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="uplny"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavkombinovanyseznam" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupnumbering" file="core-num.tex">
- <cd:sequence>
- <cd:string value="nastavcislovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="zpusob">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupformulas" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="nastavrovnice"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="nastred"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standardni"/>
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="nastred"/>
- <cd:constant type="center"/>
- </cd:parameter>
- <cd:parameter name="levyokraj">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pravyokraj">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="odsadpristi">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="mezerapred">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="konverze">
- <cd:constant type="cisla"/>
- <cd:constant type="pismena"/>
- <cd:constant type="Pismena"/>
- <cd:constant type="rimskecislice"/>
- <cd:constant type="Rimskecislice"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="publication" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="publikace"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppublications" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="nastavpublikace"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="apa"/>
- <cd:constant type="normalni"/>
- </cd:parameter>
- <cd:inherit name="nastavvycty" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="nastavradky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="odsazovani">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="mezera">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="zhustene"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="lines" type="environment">
- <cd:sequence>
- <cd:string value="lines"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupparagraphnumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="nastavcislovaniodstavcu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="reset"/>
- <cd:constant type="radek"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplinenumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="nastavcislovaniradku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="konverze">
- <cd:constant type="cisla"/>
- <cd:constant type="pismena"/>
- <cd:constant type="Pismena"/>
- <cd:constant type="rimskecislice"/>
- <cd:constant type="Rimskecislice"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="krok">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="nastred"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="ivlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="ivpravo"/>
- <cd:constant type="uvnitr"/>
- <cd:constant type="vnejsi"/>
- <cd:constant type="text"/>
- <cd:constant type="begin"/>
- <cd:constant type="end"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="odkazujici">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="linenumbering" type="environment" file="page-lin.tex"> <!-- mkii/mkiv -->
- <cd:sequence>
- <cd:string value="linenumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="pokracovat"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="line" type="environment">
- <cd:sequence>
- <cd:string value="line"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="someline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="nejakyradek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="vradku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinmargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="nastavmarginalie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="obe"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="radek">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="oddelovac">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stack">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="nastavcislostrany"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="cislo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="drzet"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsubpagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="nastavpodcislostrany"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="zpusob">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nastavpreskok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="normalni" default="yes"/>
- <cd:constant type="implicitni"/>
- <cd:constant type="standardni"/>
- <cd:constant type="radek"/>
- <cd:constant type="pulradku"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="velke"/>
- <cd:constant type="stredni"/>
- <cd:constant type="male"/>
- <cd:constant type="fixne"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="globalne"/>
- <cd:constant type="neznamy"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="definujpreskok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="nastavpreskok" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definepapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="definujvelikostpapiru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="meritko">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppaper" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="setuppaper"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="papir">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stranka">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="svrchnimezera">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zpetnamezera">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="max"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="metoda">
- <cd:constant type="normalni"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="nastavvelikostpapiru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="CD"/>
- <cd:constant type="cd:name"/>
- <cd:constant type="nasirku"/>
- <cd:constant type="zrcadleno"/>
- <cd:constant type="otoceno"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="negativ"/>
- <cd:inherit name="nastavvelikostpapiru" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuparranging" file="page-imp.tex">
- <cd:sequence>
- <cd:string value="nastavusporadani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="zablokovat"/>
- <cd:constant type="2*16"/>
- <cd:constant type="2*8"/>
- <cd:constant type="2*4"/>
- <cd:constant type="2*2"/>
- <cd:constant type="2**2"/>
- <cd:constant type="2*2*4"/>
- <cd:constant type="2*4*2"/>
- <cd:constant type="2UP"/>
- <cd:constant type="2DOWN"/>
- <cd:constant type="2SIDE"/>
- <cd:constant type="2TOP"/>
- <cd:constant type="zrcadleno"/>
- <cd:constant type="otoceno"/>
- <cd:constant type="dvoustranny"/>
- <cd:constant type="negativ"/>
- <cd:constant type="pozadi"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showprint" file="page-run.tex"> <!-- page-lay.tex -->
- <cd:sequence>
- <cd:string value="ukazvytisk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:inherit name="nastavvelikostpapiru" n="1"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:inherit name="nastavvelikostpapiru" n="2"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="nastavvzhled" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelogo" file="page-log.tex">
- <cd:sequence>
- <cd:string value="definujlogo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="vrsek"/>
- <cd:constant type="zahlavi"/>
- <cd:constant type="upati"/>
- <cd:constant type="spodek"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="zadny"/>
- <cd:constant type="stranka"/>
- <cd:constant type="levahrana"/>
- <cd:constant type="levyokraj"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="pravyokraj"/>
- <cd:constant type="pravahrana"/>
- </cd:keywords>
- <cd:assignments n="4" list="yes">
- <cd:parameter name="prikaz">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelogos" file="page-log.tex">
- <cd:sequence>
- <cd:string value="umistiloga"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupwhitespace">
- <cd:sequence>
- <cd:string value="nastavbilamista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="zadny" default="yes"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="radek"/>
- <cd:constant type="fixne"/>
- <cd:constant type="fixuj"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupindenting">
- <cd:sequence>
- <cd:string value="nastavodsazovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definujbloksekce"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="nastavbloksekce" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavbloksekce" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="nastavbloksekce"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="cislo">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="stranka">
- <cd:constant type="ano"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definujsekci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="nastavsekci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="konverze">
- <cd:constant type="cisla"/>
- <cd:constant type="pismena"/>
- <cd:constant type="Pismena"/>
- <cd:constant type="rimskecislice"/>
- <cd:constant type="Rimskecislice"/>
- </cd:parameter>
- <cd:parameter name="predchozicislo">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuphead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="nastavnadpis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="styltextu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylcisla">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="barvatextu">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="barvacisla">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="cislo">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="vlastnicislo">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="stranka">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="ano"/>
- </cd:parameter>
- <cd:parameter name="pokracovat">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="zahlavi">
- <cd:constant type="zadny"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="zadneznaceni"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="zadny"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="zadneznaceni"/>
- </cd:parameter>
- <cd:parameter name="upati">
- <cd:constant type="zadny"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="zadneznaceni"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="normalni"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="nastred"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="zaveseni">
- <cd:constant type="zadny"/>
- <cd:constant type="siroky"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="radek"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="ciselnyprikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="textovyprikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deepnumbercommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="umistihlavicku">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="prazdne"/>
- </cd:parameter>
- <cd:parameter name="zvysujicicislo">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="cd:list"/>
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="resetnumber">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="soubor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="expanzen">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="prikaz"/>
- </cd:parameter>
- <cd:parameter name="textmarginalie">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="interakce">
- <cd:constant type="seznam"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:inherit name="nastavnadpisy" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="nastavcislonadpisu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:number"/>
- <cd:constant type="+cd:number"/>
- <cd:constant type="-cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="headnumber">
- <cd:sequence>
- <cd:string value="cislonadpisu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="determineheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stanovcislonadpisu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="currentheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="aktualnicislonadpisu"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="nextsection" generated="yes" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="dalsi"/>
- <cd:variable value="sekce"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definehead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definujnadpis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!--
-
- <cd:feature name="itemgroups" file="strc-itm">
-
- <cd:description language="cs"> </cd:description>
-
- -->
-
- <cd:command name="defineitemgroup" file="strc-itm">
- <cd:sequence>
- <cd:string value="defineitemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupitemgroup" file="strc-itm">
- <!-- we mis a few experimental keys here, like alignsymbol and indentation -->
- <cd:sequence>
- <cd:string value="setupitemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="kazdy"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes" list="yes">
- <cd:constant type="standardni" default="yes"/>
- <cd:constant type="siroky"/>
- <cd:constant type="semknuto"/>
- <cd:constant type="zhustene"/>
- <cd:constant type="rozbalene"/>
- <cd:constant type="zadnabila"/>
- <cd:constant type="pred"/>
- <cd:constant type="po"/>
- <cd:constant type="predel"/>
- <cd:constant type="spojeno"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="autouvod"/>
- <cd:constant type="uvolnene"/>
- <cd:constant type="opakovat"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="odstavec"/>
- <cd:constant type="dotextu"/>
- <cd:constant type="nahodny"/>
- <cd:constant type="reverse"/>
- </cd:keywords>
- <cd:assignments n="4" optional="yes" list="yes">
- <cd:parameter name="marginalie">
- <cd:constant type="ne"/>
- <cd:constant type="standardni"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="levyokraj">
- <cd:constant type="ne"/>
- <cd:constant type="standardni"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pravyokraj">
- <cd:constant type="ne"/>
- <cd:constant type="standardni"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="krok">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="polozky">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="predhlavickou">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pohlavicce">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stylhlavicky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylsnacky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylsymboly">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="predel">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="symzarovnani">
- <cd:resolve name="symalign"/>
- </cd:parameter>
- <cd:parameter name="odsadpristi">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="textdistance">
- <!-- maybe resolve here too -->
- <cd:constant type="zadny"/>
- <cd:constant type="velke"/>
- <cd:constant type="stredni"/>
- <cd:constant type="male"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="itemgroup" type="environment" generated="yes" file="strc-itm">
- <cd:sequence>
- <cd:variable value="itemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="a"/>
- <cd:constant type="A"/>
- <cd:constant type="KA"/>
- <cd:constant type="n"/>
- <cd:constant type="N"/>
- <cd:constant type="m"/>
- <cd:constant type="r"/>
- <cd:constant type="R"/>
- <cd:constant type="KR"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="pokracovat"/>
- <cd:constant type="standardni" default="yes"/>
- <cd:constant type="siroky"/>
- <cd:constant type="semknuto"/>
- <cd:constant type="zhustene"/>
- <cd:constant type="predel"/>
- <cd:constant type="spojeno"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="uvod"/>
- <cd:constant type="sloupce"/>
- <cd:constant type="text"/>
- <cd:constant type="odstavec"/>
- <cd:constant type="opakovat"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="setupitemgroup" n="4"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="item" environment="yes" shortcut="yes" file="strc-itm">
- <cd:sequence>
- <cd:string value="polozka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <!--
- <cd:command name="item" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="polozka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
- -->
-
- <cd:command name="but">
- <cd:sequence>
- <cd:string value="spodek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="exclusive"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="its">
- <cd:sequence>
- <cd:string value="pol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ran">
- <cd:sequence>
- <cd:string value="ran"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="head">
- <cd:sequence>
- <cd:string value="nadpis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mar">
- <cd:sequence>
- <cd:string value="okr"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sub">
- <cd:sequence>
- <cd:string value="sub"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sym" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="sym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nop">
- <cd:sequence>
- <cd:string value="nop"/>
- </cd:sequence>
- </cd:command>
-
- <!-- </cd:feature> -->
-
- <cd:command name="defineregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="definujrejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="nastavrejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="rovnovaha">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylstranky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="styltextu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="indikator">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="propojeni">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="lokalne"/>
- <cd:constant type="vse"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="interakce">
- <cd:constant type="cislostranky"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="expanzen">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="prikaz"/>
- </cd:parameter>
- <cd:parameter name="odkazujici">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:parameter name="maxsirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="neznamyodkaz">
- <cd:constant type="prazdne"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="A"/>
- <cd:constant type="B"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="obe"/>
- <cd:constant type="prvni"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="compress">
- <cd:constant type="ne"/>
- <cd:constant type="ano"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="register" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:variable value="rejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="startregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="start"/>
- <cd:variable value="rejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetoregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="zapisdorejstriku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupledregister" generated="yes">
- <cd:sequence>
- <cd:string value="propojene"/>
- <cd:variable value="rejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupleregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="propojenyrejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeregister" variant="1" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="umistirejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavrejstrik" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="seeregister" generated="yes">
- <cd:sequence>
- <cd:string value="viz"/>
- <cd:variable value="rejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:index n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completeregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="uplny"/>
- <cd:variable value="rejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
- <cd:inherit name="nastavrejstrik" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="umisti"/>
- <cd:variable value="rejstrik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
- <cd:inherit name="nastavrejstrik" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definujsynonyma"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="nastavsynonyma"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="styltextu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylsynonyma">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="semknuto"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="ivlevo"/>
- <cd:constant type="ivpravo"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="vse"/>
- <cd:constant type="uzito"/>
- </cd:parameter>
- <cd:parameter name="konverze">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="expanzen">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="prikaz"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synonym" generated="yes">
- <cd:sequence>
- <cd:variable value="synonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="loadsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="nacist"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definesorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definujtrideni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="nastavtrideni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="vse"/>
- <cd:constant type="uzito"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="expanzen">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="prikaz"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sort" generated="yes">
- <cd:sequence>
- <cd:variable value="sort"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="loadsorts" generated="yes">
- <cd:sequence>
- <cd:string value="nacist"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definemakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="definujupravu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="nastavupravu" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="makeup" type="environment">
- <cd:sequence>
- <cd:string value="zlom"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavupravu" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="nastavupravu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stranka">
- <cd:constant type="vlevo"/>
- <cd:constant type="ano"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:parameter name="prikazy">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="oboustranne">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="prazdne"/>
- </cd:parameter>
- <cd:parameter name="statuszahlavi">
- <cd:constant type="normalni"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="zadny"/>
- <cd:constant type="zadneznaceni"/>
- </cd:parameter>
- <cd:parameter name="statusupati">
- <cd:constant type="normalni"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="zadny"/>
- <cd:constant type="zadneznaceni"/>
- </cd:parameter>
- <cd:parameter name="statustextu">
- <cd:constant type="normalni"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="zadny"/>
- <cd:constant type="zadneznaceni"/>
- </cd:parameter>
- <cd:parameter name="statusvrsku">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="statusspodku">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="pagestate">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="namemakeup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="jmeno"/>
- <cd:string value="zlom"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="version">
- <cd:sequence>
- <cd:string value="verze"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="finalni" default="yes"/>
- <cd:constant type="koncept"/>
- <cd:constant type="docasne"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="currentdate">
- <cd:sequence>
- <cd:string value="aktualnidatum"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:inherit name="datum" n="2"/> <!-- or vice versa :) -->
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="date" file="core-con.tex">
- <cd:sequence>
- <cd:string value="datum"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes"> <!-- if not given, current date is used -->
- <cd:parameter name="d">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="den"/>
- <cd:constant type="mesic"/>
- <cd:constant type="rok"/>
- <cd:constant type="vsedniden"/>
- <cd:constant type="d"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/> <!-- also j -->
- <cd:constant type="w"/>
- <cd:constant type="dd"/>
- <cd:constant type="mm"/>
- <cd:constant type="yy"/> <!-- also jj -->
- <cd:constant type="mezera"/>
- <cd:constant type="--"/>
- <cd:constant type="day+"/>
- <cd:constant type="d+"/>
- <cd:constant type="dd+"/>
- <cd:constant type="znacka"/>
- <cd:constant type="cd:text"/> <!-- any other text -->
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="referraldate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="odkaznadatum"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="indenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="odsazovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="noindenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zadneodsazovani"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="blank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="preskoc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke" default="yes"/>
- <cd:constant type="zadnabila"/>
- <cd:constant type="zpet"/>
- <cd:constant type="bily"/>
- <cd:constant type="zablokovat"/>
- <cd:constant type="sila"/>
- <cd:constant type="reset"/>
- <cd:constant type="radek"/>
- <cd:constant type="pulradku"/>
- <cd:constant type="cd:formula"/>
- <cd:constant type="fixne"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="zadny"/>
- <cd:constant type="vzdy"/>
- <cd:constant type="vnejsi"/>
- <cd:constant type="spojeno"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="packed" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zhustene"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="prazdny"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="unpacked" type="environment">
- <cd:sequence>
- <cd:string value="unpacked"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="linecorrection" type="environment">
- <cd:sequence>
- <cd:string value="linecorrection"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="correctwhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="korekcebilehomista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="postponing" type="environment">
- <cd:sequence>
- <cd:string value="postponing"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="local" type="environment">
- <cd:sequence>
- <cd:string value="lokalne"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="narrower" type="environment">
- <cd:sequence>
- <cd:string value="narrower"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred" default="yes"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="-left"/>
- <cd:constant type="-middle"/>
- <cd:constant type="-right"/>
- <cd:constant type="-none"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hiding" type="environment">
- <cd:sequence>
- <cd:string value="hiding"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupalign" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nastavzarovnani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="sirka"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="uvnitr"/>
- <cd:constant type="vnejsi"/>
- <cd:constant type="siroce"/>
- <cd:constant type="siroky"/>
- <cd:constant type="vyska"/>
- <cd:constant type="spodek"/>
- <cd:constant type="radek"/>
- <cd:constant type="reset"/>
- <cd:constant type="visici"/>
- <cd:constant type="nothanging"/>
- <cd:constant type="hyphenated"/>
- <cd:constant type="nothyphenated"/>
- <cd:constant type="lesshyphenation"/>
- <cd:constant type="morehyphenation"/>
- <cd:constant type="novy"/>
- <cd:constant type="old"/>
- <cd:constant type="normalni"/>
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="flushouter"/>
- <cd:constant type="flushinner"/>
- <cd:constant type="center"/>
- <cd:constant type="hz"/>
- <cd:constant type="nohz"/>
- <cd:constant type="mezerovani"/>
- <cd:constant type="nospacing"/>
- <cd:constant type="tolerantni"/>
- <cd:constant type="velmitolerantni"/>
- <cd:constant type="natahnout"/>
- <cd:constant type="extremestretch"/>
- <cd:constant type="lefttoright"/>
- <cd:constant type="righttoleft"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
-
- <cd:command name="alignment" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="alignment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="nastavzarovnani" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupspacing">
- <cd:sequence>
- <cd:string value="nastavradkovani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="siroky"/>
- <cd:constant type="zhustene"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptolerance" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nastavtoleranci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="horizontalne"/>
- <cd:constant type="vertikalne"/>
- <cd:constant type="natahnout"/>
- <cd:constant type="mezera"/>
- <cd:constant type="velmistriktni" default="yes"/>
- <cd:constant type="striktni"/>
- <cd:constant type="tolerantni"/>
- <cd:constant type="velmitolerantni"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!-- cd:command name="pagetype" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="pagetype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command -->
-
- <cd:command name="processpage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="zpracujstranu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="ano" default="yes"/>
- <cd:constant type="ne"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplepage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="parovastrana"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="volba">
- <cd:constant type="dvoustranny"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="position" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="pozice"/>
- </cd:sequence>
- <cd:arguments>
- <cd:position n="1" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupscreens" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="nastavrastr"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="metoda">
- <cd:constant type="tecka"/>
- <cd:constant type="linka"/>
- <cd:constant type="externi"/>
- </cd:parameter>
- <cd:parameter name="rozliseni">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="rastr">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbackgrounds" file="page-bck.tex">
- <cd:sequence>
- <cd:string value="nastavpozadi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="vrsek"/>
- <cd:constant type="zahlavi"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="upati"/>
- <cd:constant type="spodek"/>
- <cd:constant type="stranka"/>
- <cd:constant type="papir"/>
- <cd:constant type="levastranka"/>
- <cd:constant type="pravastranka"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="levahrana"/>
- <cd:constant type="levyokraj"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="pravyokraj"/>
- <cd:constant type="pravahrana"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="cd:repeat"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="buffer" type="environment" generated="yes" file="core-buf.tex">
- <cd:sequence>
- <cd:variable value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="buffer" type="environment" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="getbuffer">
- <cd:sequence>
- <cd:string value="ziskejbuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="typebuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definujbuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="nastavbuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="odstavec">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definujblok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomoreblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="zadnedalsibloky"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="hideblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="schovejbloky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="keepblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="zachovejbloky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="vse"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="uzijbloky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="processblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="zpracujbloky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="bypassblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="bypassblocks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="forceblocks">
- <cd:sequence>
- <cd:string value="forceblocks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="selectblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="vyberbloky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="kriterium">
- <cd:constant type="vse"/>
- <cd:constant type="cd:section"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="nastavblok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vnitrni">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="soubor">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="formula" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="rovnice"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="mathematics" file="supp-mat.tex">
- <cd:sequence>
- <cd:string value="matematika"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="umistirovnici"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2" optional="yes"/>
- <cd:displaymath n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placesubformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="umistipodrovnici"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2" optional="yes"/>
- <cd:displaymath n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placefloat" generated="yes" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="umisti"/>
- <cd:variable value="plvouciobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="zde" default="yes"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- <cd:constant type="ivlevo"/>
- <cd:constant type="ivpravo"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="levyokraj"/>
- <cd:constant type="pravyokraj"/>
- <cd:constant type="levahrana"/>
- <cd:constant type="pravahrana"/>
- <cd:constant type="innermargin"/>
- <cd:constant type="outermargin"/>
- <cd:constant type="inneredge"/>
- <cd:constant type="outeredge"/>
- <cd:constant type="uvnitr"/>
- <cd:constant type="vnejsi"/>
- <cd:constant type="radek"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="nizko"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="stranka"/>
- <cd:constant type="levastranka"/>
- <cd:constant type="pravastranka"/>
- <cd:constant type="naproti"/>
- <cd:constant type="vzdy"/>
- <cd:constant type="auto"/>
- <cd:constant type="sila"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="reset"/>
- <cd:constant type="radek"/>
- <cd:constant type="vyska"/>
- <cd:constant type="podlehloubky"/>
- <cd:constant type="split"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes" list="yes"/>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reservefloat" generated="yes">
- <cd:sequence>
- <cd:string value="rezervovat"/>
- <cd:variable value="plvouciobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ramecek">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:reference n="3" optional="yes" list="yes"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="definujplvouciobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="nastavplvouciobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxvyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxsirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="minsirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="implicitni">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hranicestranky">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostlevehookraje">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenostpravehookraje">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="floattext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="plvouciobjekt"/>
- <cd:string value="text"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="nastred"/>
- <cd:constant type="nizko"/>
- <cd:constant type="offset"/>
- <cd:constant type="vysoko"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="completelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="referral" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="odkaz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="bet">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ken">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dat">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="van">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aan">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ref">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="selectpaper">
- <cd:sequence>
- <cd:string value="vyberpapir"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="rodina">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplepaper">
- <cd:sequence>
- <cd:string value="dvoustrannypapir"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="chem" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="chem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fraction" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="zlomek"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="periods" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="tecky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="items">
- <cd:sequence>
- <cd:string value="polozky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="nastavpolozky" n="1"/>
- </cd:assignments>
- <cd:content n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupitems" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="nastavpolozky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="naokraji"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:text"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- <cd:constant type="neznamy"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quotation" type="environment" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citace"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="nastred" default="yes"/>
- <cd:constant type="vpravo"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quotation" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citace"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citovat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupquote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="nastavcitaci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="cd:text"/>
- <cd:constant type="marginalie"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="definujodstavce"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="linka">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="prizpusobive"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vnitrni">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="velmistriktni"/>
- <cd:constant type="striktni"/>
- <cd:constant type="tolerantni"/>
- <cd:constant type="velmitolerantni"/>
- <cd:constant type="natahnout"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="paragraph" generated="yes">
- <cd:sequence>
- <cd:variable value="odstavec"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="paragraph" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="odstavec"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="nastavodstavce"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="kazdy"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="velmistriktni"/>
- <cd:constant type="striktni"/>
- <cd:constant type="tolerantni"/>
- <cd:constant type="velmitolerantni"/>
- <cd:constant type="natahnout"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vnitrni">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="prikaz">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="linka">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptab" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="nastavtab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="vzor">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stylhlavicky">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tab">
- <cd:sequence>
- <cd:string value="tab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="document" type="environment">
- <cd:sequence>
- <cd:string value="document"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labels">
- <cd:sequence>
- <cd:string value="popisky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="definujtabelaci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tabulate" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="tabelator"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavexterniobrazy" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="nastavtabelaci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="jednotka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="odsazovani">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vnitrni">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="EQ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="barvalinky">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="tloustkalinky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="prazdny"/>
- <cd:constant type="mrizka"/>
- <cd:constant type="podlehloubky"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="zakladnifont">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="linka">
- <cd:constant type="normalni"/>
- <cd:constant type="radek"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptables" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="nastavtabulky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="vzdalenost">
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- <cd:parameter name="zakladnifont">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="HL">
- <cd:constant type="cd:number"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="VL">
- <cd:constant type="cd:number"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="hloubka">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="tloustkalinky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="barvalinky">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="prikazy">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="pozadi">
- <cd:constant type="rastr"/>
- <cd:constant type="barevne"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="rastrpozadi">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="barvapozadi">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="zakladnifont">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="table" type="environment">
- <cd:sequence>
- <cd:string value="table"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tables" type="environment">
- <cd:sequence>
- <cd:string value="tables"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetabletemplate" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="definujsablonutabulky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfiles" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="uzijexternisoubory"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="zakladnifont">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="soubor">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfile" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="uzijexternisoubor"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="4" list="yes">
- <cd:parameter name="zakladnifont">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="uzijexterniobraz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:name"/> <!-- parent -->
- </cd:keywords>
- <cd:assignments n="4" optional="yes" list="yes">
- <cd:inherit name="nastavexterniobrazy" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="externalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="externiobraz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavexterniobrazy" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="nastavexterniobrazy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="meritko">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ymeritko">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ymeritko">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="max"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- </cd:parameter>
- <cd:parameter name="sfaktor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="siroky"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="vfaktor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="siroky"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ramecek">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="prednastaveni">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="obrazovka">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="nahled">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="opakovat">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="objekt">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="typ">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="metoda">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="ramecek"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="test"/>
- </cd:parameter>
- <cd:parameter name="ramecky">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="ymax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xmax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="adresar">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="lokalne"/>
- <cd:constant type="globalne"/>
- <cd:constant type="implicitni"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="maxsirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxvyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="konverze">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interakce">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- <!-- more will follow -->
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="ukazexterniobrazy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalsoundtrack" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="uzijexternizvuk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="name" file="syst-gen.tex">
- <cd:sequence>
- <cd:string value="name"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="legend" type="environment">
- <cd:sequence>
- <cd:string value="legend"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="dve"/>
- </cd:keywords>
- <cd:tex n="2" command="leg"/>
- <cd:nothing n="3"/>
- <cd:nothing n="4" separator="backslash"/>
- <cd:nothing n="5" separator="backslash"/>
- <cd:tex n="6" separator="backslash" command="leg"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fact" type="environment">
- <cd:sequence>
- <cd:string value="fakt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:tex n="1" command="fact"/>
- <cd:nothing n="2"/>
- <cd:nothing n="3" separator="backslash"/>
- <cd:nothing n="4" separator="backslash"/>
- <cd:tex n="5" separator="backslash" command="fact"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="rotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="otocit"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="nastavotoceni" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuprotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="nastavotoceni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="rotace">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="normalni"/>
- <cd:constant type="vysoko"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="siroky"/>
- <cd:constant type="podlehloubky"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mirror" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="zrcadlit"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="scale" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="meritko"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="sx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcombinations" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="nastavspojeni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vrsek"/>
- <cd:constant type="nastred"/>
- <cd:constant type="spodek"/>
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="combination" type="environment">
- <cd:sequence>
- <cd:string value="combination"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:matrix"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placesidebyside" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="umistivedlesebe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeontopofeachother" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="umistinadsebe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overlay" type="environment">
- <cd:sequence>
- <cd:string value="overlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overview" type="environment">
- <cd:sequence>
- <cd:string value="overview"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionscreen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavinterakcniobrazovku"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="zpetnamezera">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="svrchnimezera">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="horoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsethlavicky">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="max"/>
- <cd:constant type="prizpusobive"/>
- <cd:constant type="dvoustranny"/>
- <cd:constant type="jednostranne"/>
- <cd:constant type="auto"/>
- <cd:constant type="zadny"/>
- <cd:constant type="zalozka"/>
- </cd:parameter>
- <cd:parameter name="prodleva">
- <cd:constant type="cd:number"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="screen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="obrazovka"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setuppagetransitions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavprechodstrany"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteraction" file="core-nav.tex">
- <cd:sequence>
- <cd:string value="nastavinterakci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="menu">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- <cd:parameter name="stranka">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="klik">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="obrazovka">
- <cd:constant type="novy"/>
- </cd:parameter>
- <cd:parameter name="otevriakci">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="zavriakci">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="akceotevrenistranky">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="akcezavrenistranky">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="pocitat">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hloubka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="kontrastnibarva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="sadasymbolu">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titul">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="podtitulek">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autor">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="datum">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="keyword">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <!-- maybe this will move elsewhere -->
- <cd:parameter name="fieldlayer">
- <cd:constant type="auto"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavinterakcnimenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stredni">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="zadny"/>
- <cd:constant type="lokalne"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="kontrastnibarva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="prekryv"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stejnastranka">
- <cd:constant type="ano"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="ne"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="neznamyodkaz">
- <cd:constant type="ano"/>
- <cd:constant type="prazdne"/>
- <cd:constant type="ne"/>
- <cd:constant type="zadny"/>
- </cd:parameter>
- <cd:parameter name="levyoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pravyoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetvrsku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetspodku">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="position">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani" n="2"/> <!-- maybe not all parameters from framed -->
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definujinterakcnimenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavinterakcnimenu" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definujinterakcnimenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="nastavinterakcnimenu" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionmenu" type="environment">
- <cd:sequence>
- <cd:string value="interaktivnimenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="disableinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="zablokujinterakcnimenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="vrsek"/>
- <cd:constant type="spodek"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternaldocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="uzijexternidokument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="soubor"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useURL" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="uzijURL"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="soubor"/>
- </cd:keywords>
- <cd:keywords n="4">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupledocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="propojenydokument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="soubor"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="from" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="zref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="exclusive"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionbar">
- <cd:sequence>
- <cd:string value="interakcnilista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:inherit name="nastavinterakcnilistu" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="interakcnitlacitka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="nastavinterakcnilistu" n="1"/>
- </cd:assignments>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavinterakcnilistu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- <cd:constant type="e"/>
- <cd:constant type="f"/>
- <cd:constant type="g"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="vyska"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="vyska"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="hloubka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="krok">
- <cd:constant type="cd:number"/>
- <cd:constant type="male"/>
- <cd:constant type="stredni"/>
- <cd:constant type="velke"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synchronize" file="core-int.tex">
- <cd:sequence>
- <cd:string value="synchronizovat"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="synchronization" type="environment">
- <cd:sequence>
- <cd:string value="synchronization"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupsynchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavsynchronizacnilistu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="stranka"/>
- <cd:constant type="lokalne"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="vyska"/>
- <cd:constant type="prizpusobive"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="synchronizacnilista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="stranka"/>
- <cd:constant type="lokalne"/>
- </cd:parameter>
- <cd:inherit name="nastavsynchronizacnilistu" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsynchronization" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavsynchronizaci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definujprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupprofiles" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavprofily"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="volba">
- <cd:constant type="test"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="profile" type="environment">
- <cd:sequence>
- <cd:string value="profile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="dodrzujprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placebookmarks" file="core-int.tex">
- <cd:sequence>
- <cd:string value="umistizalozky"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="vse"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:parameter name="sila">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="bookmark" file="core-int.tex">
- <cd:sequence>
- <cd:string value="zalozka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="version" type="environment">
- <cd:sequence>
- <cd:string value="verze"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupversions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavverze"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="cislo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="markversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="oznacverzi"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="selectversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="vyberverzi"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="defineversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definujverzi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="dodrzujverzi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followprofileversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="dodrzujverziprofilu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineprogram" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definujprogram"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupprograms" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="nastavprogramy"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="adresar">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="program" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="program"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="figure" type="environment">
- <cd:sequence>
- <cd:string value="figure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ramecek">
- <cd:constant type="zap"/>
- <cd:constant type="vyp"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- referring*figure skipped -->
-
- <!-- marking*figure skipped -->
-
- <!-- remark skipped -->
-
- <cd:command name="goto" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="jdina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:content n="2" interactive="exclusive"/>
- <cd:reference n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="gotobox" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="jdinabox"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="button" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="tlacitko"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="nastavtlacitka" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:reference n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="nastavtlacitka"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- menubutton skipped -->
-
- <cd:command name="setupcomment" file="core-int.tex">
- <cd:sequence>
- <cd:string value="nastavkomentar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titul">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="mezera">
- <cd:constant type="ano"/>
- <cd:constant type="ne"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="normalni"/>
- <cd:constant type="Novy"/>
- <cd:constant type="Bublinka"/>
- <cd:constant type="Pridavek"/>
- <cd:constant type="Napoveda"/>
- <cd:constant type="Odstavec"/>
- <cd:constant type="Klavesa"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="max"/>
- <cd:constant type="buffer"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comment" type="environment">
- <cd:sequence>
- <cd:string value="comment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavkomentar" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comment">
- <cd:sequence>
- <cd:string value="comment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="nastavkomentar" n="1"/>
- </cd:assignments>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definujpole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1"> <!-- name -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2"> <!-- type -->
- <cd:constant type="text"/>
- <cd:constant type="radek"/> <!-- equal to text -->
- <cd:constant type="push"/>
- <cd:constant type="check"/>
- <cd:constant type="radio"/>
- <cd:constant type="combo"/>
- <cd:constant type="choice"/> <!-- equal to combo -->
- <cd:constant type="popup"/> <!-- equal to combo -->
- </cd:keywords>
- <cd:keywords n="3"> <!-- group -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4" list="yes"> <!-- optional for text? -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes"> <!-- default -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesubfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definujpodpole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="copyfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="kopirujpole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="clonefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="klonujpole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="field" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="pole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fitfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="prizpusobivepole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="vyplnovepole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tooltip" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="bublinkovanapoveda"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="vlevo"/>
- <cd:constant type="vpravo"/>
- <cd:constant type="nastred"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="ukazpole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="logfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="zaznamovepole"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="nastavpole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="popisek"/>
- <cd:constant type="horizontalne"/>
- <cd:constant type="vertikalne"/>
- <cd:constant type="ramecek"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="nastavvsechnapole" n="2"/>
- </cd:assignments>
- <cd:assignments n="4" list="yes"> </cd:assignments>
- <cd:assignments n="5" list="yes"> </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="nastavvsechnapole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- TODO: if it's reset, only a single argument, no list -->
- <cd:constant type="reset"/>
- <cd:constant type="popisek"/>
- <cd:constant type="horizontalne"/>
- <cd:constant type="vertikalne"/>
- <cd:constant type="ramecek"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pred">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="po">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="barva">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pismeno">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="zarovnani">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="volba">
- <cd:constant type="pouzeprocteni"/>
- <cd:constant type="pozadovane"/>
- <cd:constant type="chranene"/>
- <cd:constant type="tridene"/>
- <cd:constant type="nedostupne"/>
- <cd:constant type="skryte"/>
- <cd:constant type="tisknutelne"/>
- </cd:parameter>
- <cd:parameter name="klikuvnitr">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="klikvne">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="oblastuvnitr">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="oblastvne">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="klavesapo">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="formatovat">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="validovat">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="pocitat">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="offsetpole">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="barvarameckupole">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="barvapozadipole">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="nastavoramovani" n="2"/>
- </cd:assignments>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="nastavvsechnapole" n="2"/>
- </cd:assignments>
- <cd:assignments n="4" list="yes">
- <cd:inherit name="nastavvsechnapole" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupforms" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="setupforms"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="metoda">
- <cd:constant type="HTML"/>
- <cd:constant type="FDF"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definujzasobnikpoli"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="nastavvsechnapole" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="zasobnikpoli"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="nastavvsechnapole" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="clip" file="core-trf.tex">
- <cd:sequence>
- <cd:string value="orez"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="nastavorez" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupclipping" file="core-trf.tex">
- <cd:sequence>
- <cd:string value="nastavorez"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="sx">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="levyoffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="pravyoffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="offsetvrsku">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="offsetspodku">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="mp">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelegend">
- <cd:sequence>
- <cd:string value="umistilegendu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplegend">
- <cd:sequence>
- <cd:string value="nastavlegendu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vzdalenost">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mezi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sirka">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vyska">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="misto">
- <cd:constant type="vpravo"/>
- <cd:constant type="spodek"/>
- </cd:parameter>
- <cd:parameter name="zakladnifont">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="setupstrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="ano" default="yes"/>
- <cd:constant type="ne"/>
- <cd:constant type="kap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usetypescriptfile" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="usetypescriptfile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usetypescript" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="usetypescript"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetypeface" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="definetypeface"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="rm"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="mm"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="6" optional="yes">
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="rscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="encoding">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefontfeature" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="definefontfeature"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="no">
- <cd:parameter name="compose">
- <cd:constant type="ne" default="yes"/>
- <cd:constant type="ano"/>
- </cd:parameter>
- <cd:parameter name="mode">
- <cd:constant type="node"/>
- <cd:constant type="base" default="yes"/>
- </cd:parameter>
- <cd:parameter name="tlig">
- <cd:constant type="ne" default="yes"/>
- <cd:constant type="ano"/>
- </cd:parameter>
- <cd:parameter name="trep">
- <cd:constant type="ne" default="yes"/>
- <cd:constant type="ano"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="language">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="..tag.."> <!-- can't use &gt; here, \showsetup gives an error -->
- <cd:constant type="ne" default="yes"/>
- <cd:constant type="ano"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefonthandling" file="hand-ini.mkii">
- <cd:sequence>
- <cd:string value="definefonthandling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name" list="yes"/>
- </cd:keywords>
- <cd:assignments n="3">
- <cd:parameter name="typ">
- <cd:constant type="visici" default="yes"/>
- <cd:constant type="hz"/>
- <cd:constant type="mezerovani"/>
- <cd:constant type="tag"/>
- </cd:parameter>
- <cd:parameter name="vpravo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vlevo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="min">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="max">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="krok">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfonthandling" file="hand-ini.mkii">
- <cd:sequence>
- <cd:string value="setupfonthandling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:inherit name="definefonthandling" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- mkii:
-
- <cd:command name="definefontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definujsynonumumfontu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="encoding">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="handling">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="mapping">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="definefontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definujsynonumumfontu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="fallbacks">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="goodies">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="setupfontsynonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:inherit name="definujsynonumumfontu" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mapfontsize" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="mapfontsize"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definedfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definedfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="definujfont" n="2"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
-</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkii/cont-de.xml b/Master/texmf-dist/tex/context/interface/mkii/cont-de.xml
deleted file mode 100644
index b3f9289f828..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkii/cont-de.xml
+++ /dev/null
@@ -1,10396 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- versions:
-
- comment : user interface definitions of ConTeXt
-
- authors : Hans Hagen, Taco Hoekwater, Patrick Gundlach, Wolfgang Schuster, and others
-
- versions : 2004.11.17 : initial version
- 2006.08.02 : define + resolve
-
--->
-
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context test" language="en" version="2006.08.02">
-
- <!-- there are some more -->
-
- <cd:define name="align">
- <cd:constant type="innen"/>
- <cd:constant type="aussen"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="mittig"/>
- <cd:constant type="center"/>
- <cd:constant type="normal"/>
- <cd:constant type="nein"/>
- <cd:constant type="ja"/>
- <cd:constant type="breit"/>
- <cd:constant type="letzte"/>
- <cd:constant type="r2l"/>
- <cd:constant type="l2r"/>
- </cd:define>
-
- <cd:define name="symalign">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="mittig"/>
- <cd:constant type="center"/>
- </cd:define>
-
- <cd:define name="indenting">
- <cd: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:define name="texts">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="seitennummer"/>
- </cd:define>
-
- <cd:define name="layout-h">
- <cd:constant type="text" default="yes"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="kante"/>
- </cd:define>
-
- <cd:define name="layout-v">
- <cd:constant type="oben"/>
- <cd:constant type="kopfzeile"/>
- <cd:constant type="text" default="yes"/>
- <cd:constant type="fusszeile"/>
- <cd:constant type="unten"/>
- </cd:define>
-
- <cd:define name="bodyfont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="gross"/>
- </cd:define>
-
- <cd:command name="installlanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="installieresprache"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="spatiumausgleich">
- <cd:constant type="gepackt" default="yes"/>
- <cd:constant type="breit"/>
- </cd:parameter>
- <cd:parameter name="lefthyphenmin">
- <cd:constant type="cd:number" default="2"/>
- </cd:parameter>
- <cd:parameter name="righthyphenmin">
- <cd:constant type="cd:number" default="2"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="linkersatz">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="rechtersatz">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="linkersubsatz">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="rechtersubsatz">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="linkerzitieren">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechterzitieren">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="linkerzitat">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechterzitat">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="leftspeech">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="middlespeech">
- <cd:constant type="cd:command" default=""/>
- </cd:parameter>
- <cd:parameter name="rightspeech">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="limittext">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="datum">
- <cd:constant type="cd:text"/> <!-- TODO -->
- </cd:parameter>
- <cd:parameter name="compoundhyphen">
- <cd:constant type="cd:command" default="\compoundhyphen"/>
- </cd:parameter>
- <cd:parameter name="leftcompoundhyphen">
- <cd:constant type="cd:command" default="\compoundhyphen"/>
- </cd:parameter>
- <cd:parameter name="rightcompoundhyphen">
- <cd:constant type="cd:command" default=""/>
- </cd:parameter>
- <cd:parameter name="default">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="stellespracheein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="installieresprache" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="language" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="sprache"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mainlanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="hauptsprache"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="translate" file="lang-lab.tex" category="language">
- <cd:sequence>
- <cd:string value="uebersetzten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useencoding" file="enco-ini.tex" category="encoding" obsolete="yes"> <!-- engine="pdftex" -->
- <cd:sequence>
- <cd:string value="benutzekodierung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usespecials" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="benutzespezielles"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="defineoutput"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="stelleausgabeein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontenvironment" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definierefliesstextumgebung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes"> <!-- it's possible to use 1+2+3, 2+3, what about 1+2? -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="no"> <!-- have to force no, otherwise \showsetup is wrong ! -->
- <cd:constant type="5pt"/> <!-- TODO: maybe <cd:resolve name="bodyfont"/> -->
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="default"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:parameter name="text">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scriptscript">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="xx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="d">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="klein">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="gross">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zeilenabstande">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="em">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbodyfontenvironment" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="stellefliesstextumgebungein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes"> <!-- same as definebodyfontenvironment; you can define the whole commant to inherit, not only parameters-->
- <cd:inherit name="definierefliesstextumgebung" n="1"/>
- </cd:keywords>
- <cd:keywords n="2" optional="no">
- <cd:inherit name="definierefliesstextumgebung" n="2" optional="no"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="definierefliesstextumgebung" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showbodyfontenvironment" file="font-run.tex" category="fonts"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="zeigefliesstextumgebung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="stellefliesstextein" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definierefliesstext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- <cd:constant type="default"/> -->
- <cd:resolve name="bodyfont"/> <!-- TODO: check this -->
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="rm" default="yes"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- <cd:constant type="mm"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="tf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sl">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="it">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bs">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mr">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ex">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ma">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mb">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="md">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontDEF" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definierefliesstext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="stellefliesstextein" n="2"/>
- </cd:keywords>
- <cd:keywords n="1">
- <cd:inherit name="stellefliesstextein" n="3"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontREF" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definierefliesstext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="stellefliesstextein" n="1"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="stellefliesstextein" n="2"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showbodyfont" file="font-run.tex" category="fonts"> <!-- visual debugging -->
- <cd:sequence>
- <cd:string value="zeigefliesstext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="stellefliesstextein" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbodyfont" file="font-run.tex" category="fonts">
- <cd:sequence>
- <cd:string value="stellefliesstextein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- TODO: many missing, maybe also <cd:resolve name="bodyfont"/> -->
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="regular"/>
- <cd:constant type="antiqua"/>
- <cd:constant type="sans"/>
- <cd:constant type="support"/>
- <cd:constant type="grotesk"/>
- <cd:constant type="mono"/>
- <cd:constant type="tippen"/>
- <cd:constant type="fernschreiber"/>
- <cd:constant type="handschrift"/>
- <cd:constant type="kalligraphie"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="switchtobodyfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="wechselezumfliesstext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="regular"/>
- <cd:constant type="antiqua"/>
- <cd:constant type="sans"/>
- <cd:constant type="support"/>
- <cd:constant type="grotesk"/>
- <cd:constant type="mono"/>
- <cd:constant type="tippen"/>
- <cd:constant type="fernschreiber"/>
- <cd:constant type="handschrift"/>
- <cd:constant type="kalligraphie"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="gross"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definiereschrift"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="stellefarbeein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolors" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="stellefarbenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="global"/>
- <cd:constant type="lokal"/>
- </cd:parameter>
- <cd:parameter name="konversion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="immer"/>
- <cd:constant type="nie"/>
- </cd:parameter>
- <cd:parameter name="reduktion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="rgb">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="cmyk">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="mpcmyk">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="mpspot">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="textfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="c"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/>
- <cd:constant type="k"/>
- <cd:constant type="p"/>
- <cd:constant type="s"/>
- <cd:constant type="nein"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="alles"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="intent">
- <cd:constant type="kein"/>
- <cd:constant type="overprint"/>
- <cd:constant type="knockout"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definierefarbe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="r">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="g">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="k">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="s">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="h">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="t">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="p">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="e">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="color" type="environment" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="farbe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="color" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="farbe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="graycolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="graufarbe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showcolor" file="colo-run.tex" category="colors"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="zeigefarbe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definepalet" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definierepalette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppalet" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="stellepaletteein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecolorgroup" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definierefarbengruppe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="rgb" default="yes"/>
- <cd:constant type="cmyk"/>
- <cd:constant type="grau"/>
- <cd:constant type="s"/>
- </cd:keywords>
- <cd:triplet n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showpalet" file="colo-run.tex" category="colors"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="zeigepalette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="horizontal"/>
- <cd:constant type="vertikal"/>
- <cd:constant type="name"/>
- <cd:constant type="wert"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showcolorgroup" file="colo-run.tex" category="colors"> <!-- and debug-->
- <cd:sequence>
- <cd:string value="zeigefarbengruppe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="horizontal"/>
- <cd:constant type="vertikal"/>
- <cd:constant type="name"/>
- <cd:constant type="wert"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comparepalet" file="colo-run.tex" category="colors"> <!-- and debug? -->
- <cd:sequence>
- <cd:string value="vergleichepalette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comparecolorgroup" file="colo-run.tex" category="colors">
- <cd:sequence>
- <cd:string value="vergleichefarbengruppe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showmakeup" file="supp-vis.tex" category="debug">
- <cd:sequence>
- <cd:string value="zeigeumbruch"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definetype" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="definetype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="stelletipein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptype" file="core-ver.tex" category="verbatim"> <!-- TODO -->
- <cd:sequence>
- <cd:string value="stelletipein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="spatium">
- <cd:constant type="an"/>
- <cd:constant type="aus" default="yes"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="geneigt"/>
- <cd:constant type="normal"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="type" file="verb-ini.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="tippen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typ" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="tip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tex" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="tex"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <!-- cd:command name="arg" file="core-ver.tex"> command broken
- <cd:sequence>
- <cd:string value="arg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command -->
-
- <cd:command name="definetyping" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="definieretippen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="stelletippenein" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="stelletippenein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptyping" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="stelletippenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="datei"/>
- <cd:constant type="tippen"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="option">
- <cd:constant type="geneigt"/>
- <cd:constant type="normal"/>
- <cd:constant type="befehle" version="mkiv"/>
- <cd:constant type="farbe"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="ibefehl">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vbefehl">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="cbefehl">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="geraderand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ungeraderand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="blanko">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="standard"/>
- <cd:constant type="halbezeile"/>
- <cd:constant type="zeile"/>
- </cd:parameter>
- <cd:parameter name="escape">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="spatium">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="tab">
- <cd:constant type="cd:number"/>
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="seite">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="ziehefolgendeein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="palette">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="range">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="zeilen">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="hyphenate"/>
- </cd:parameter>
- <cd:parameter name="leer">
- <cd:constant type="ja"/>
- <cd:constant type="alles"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="nummerierung">
- <cd:constant type="zeile"/>
- <cd:constant type="datei"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="fliesstext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="strip">
- <cd:constant type="nein"/>
- <cd:constant type="auto"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typing" type="environment" generated="yes" file="verb-ini.tex"
- category="verbatim">
- <cd:sequence>
- <cd:variable value="tippen"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="typefile" file="verb-ini.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="tippedatei"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="stellefussnotenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="konversion">
- <cd:constant type="ziffern"/>
- <cd:constant type="buchstaben"/>
- <cd:constant type="Buchstaben"/>
- <cd:constant type="roemischezahlen"/>
- <cd:constant type="Roemischezahlen"/>
- </cd:parameter>
- <cd:parameter name="art">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="seite"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="spalten"/>
- <cd:constant type="firstcolumn"/>
- <cd:constant type="lastcolumn"/>
- <cd:constant type="hoch"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="linie">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fliesstext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spaltenabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginalabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nummerbefehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="textbefehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="tolerant"/>
- <cd:constant type="streng"/>
- <cd:constant type="sehrstreng"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="textstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="textfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="interaktion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="absatz">
- <cd:constant type="ja"/>
- <cd:constant type="nein" default="yes"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootnotedefinition" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="stellefussnotendefinitionein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:inherit name="definierebeschreibungen" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="footnote" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="fussnote"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="footnotetext" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="footnotetext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="note" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="notiz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="localfootnotes" type="environment" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="localfootnotes"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelocalfootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="platzierelokalefussnoten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stellefussnotenein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placefootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="platzierefussnoten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stellefussnotenein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupunderbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="stelleunterstreichenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- <cd:parameter name="liniendicke">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="untenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="obenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linienfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="underbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="underbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="underbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="underbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overstrike" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrike"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overstrikes" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrikes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="roemischezahlen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Roemischezahlen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="numbers" file="core-con.tex">
- <cd:sequence>
- <cd:string value="ziffern"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="buchstabe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Buchstabe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="buchstaben"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Buchstaben"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mediaeval" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mediaeval"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="month" file="core-con.tex">
- <cd:sequence>
- <cd:string value="monat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="MONTH" file="core-con.tex">
- <cd:sequence>
- <cd:string value="MONAT"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="weekday" file="core-con.tex">
- <cd:sequence>
- <cd:string value="wochentag"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WEEKDAY" file="core-con.tex">
- <cd:sequence>
- <cd:string value="WOCHENTAG"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcapitals" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="stelleversalienein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="titel">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="cap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nocap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="nocap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="CAP" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="CAP"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Cap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Caps" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Caps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WORD" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="WORT"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WORDS" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="WOERTER"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Word" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Wort"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Words" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Woerter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="stretched" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="gestreckt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definieresymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefiguresymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definiereabbsymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="stelleexterneabbildungenein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="symbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="symbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="symbolset" type="environment" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="symbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsymbolset" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="stellesymbolsetein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usesymbols" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="verwendesymbole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showsymbolset" file="symb-run.tex" category="symbols"> <!-- and symbols -->
- <cd:sequence>
- <cd:string value="showsymbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineconversion" file="core-con.tex">
- <cd:sequence>
- <cd:string value="definierekonversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="convertnumber" file="core-con.tex">
- <cd:sequence>
- <cd:string value="konvertierezahl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheadtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="stelleueberschrifttextein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplabeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="stellelabeltextein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="headtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="ueberschrifttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="labeltext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarginrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stellemarginallinieein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="niveau">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="liniendicke">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="marginallinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="marginallinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplinewidth" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stellelinienbreiteein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelleumrahmtein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/> <!-- defines a command with that name -->
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="hoehe">
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- <cd:constant type="fest"/>
- <cd:constant type="lokal"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="autobreite">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="zwinge"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="kein"/>
- <cd:constant type="overlay"/>
- <cd:constant type="default"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="tiefe"/>
- <cd:constant type="haengend"/>
- <cd:constant type="hoch"/>
- <cd:constant type="hoti"/>
- <cd:constant type="tief"/>
- <cd:constant type="oben"/>
- <cd:constant type="mittig"/>
- <cd:constant type="unten"/>
- <cd:constant type="behalte"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="kein"/>
- <cd:constant type="leer"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="global"/>
- <cd:constant type="lokal"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="unten">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="oben">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- <cd:constant type="kein"/>
- <cd:constant type="overlay"/>
- </cd:parameter>
- <cd:parameter name="obenrahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="untenrahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="linkerrahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="rechterrahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="rahmenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rahmentiefe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rahmenwinkel">
- <cd:constant type="rund"/>
- <cd:constant type="rechteckig"/>
- </cd:parameter>
- <cd:parameter name="rahmenradius">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rahmenfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hintergrund">
- <cd:constant type="raster"/>
- <cd:constant type="farbe"/>
- <cd:constant type="kein"/>
- <cd:constant type="vordergrund"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hintergrundraster">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="hintergrundfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hintergrundoffset">
- <cd:constant type="rahmen"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hintergrundtiefe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hintergrundwinkel">
- <cd:constant type="rund"/>
- <cd:constant type="rechteckig"/>
- </cd:parameter>
- <cd:parameter name="hintergrundradius">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tiefe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="winkel">
- <cd:constant type="rund"/>
- <cd:constant type="rechteckig"/>
- </cd:parameter>
- <cd:parameter name="radius">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="leer">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="foregroundcolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="foregroundstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="liniendicke">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="umrahmt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelleumrahmtein" n="2"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="imumriss"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelleumrahmtein" n="2"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="thinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="duennerumriss"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes">
- <cd:inherit name="stelleduennerumrissein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupthinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelleduennerumrissein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="zeilenabstande">
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hintergrundfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="tiefe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- </cd:parameter>
- <cd:parameter name="liniendicke">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hintergrund">
- <cd:constant type="farbe"/>
- </cd:parameter>
- <cd:parameter name="hintergrundfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hairline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="haarlinie"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="thinrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="duennelinie"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="defineframedtext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definiereumrahmtertext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelleumrahmtetexteein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definiereumrahmt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelleumrahmtetexteein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupframedtexts" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelleumrahmtetexteein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="fliesstext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="innen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zeilekorrektur">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="tiefekorrektur">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="standard"/>
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="einziehen">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framedtext" type="environment" generated="yes" file="core-rul.tex">
- <cd:sequence>
- <cd:variable value="umrahmtertext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- <cd:constant type="kein"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelleumrahmtetexteein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framedtext" generated="yes" file="core-rul.tex">
- <cd:sequence>
- <cd:variable value="umrahmtertext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelleumrahmtetexteein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="background" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="hintergrund"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="background" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="hintergrund"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbackground" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stellehintergrundein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="linkeroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="obenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="untenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="gefuelltesrechteck"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stellegefuelltesrechteckein" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillintext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="ausfuelltext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stellegefuelltesrechteckein" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stellegefuelltesrechteckein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="breite">
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="zeilenabstande">
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="gefuelltezeile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stellegefuelltezeileein" n="1"/>
- </cd:assignments>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfillinlines" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stellegefuelltezeileein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptextrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelletextumrissein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="imrand"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fliesstext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="linienfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="textlinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- </cd:keywords>
- <cd:content n="2" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="textlinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- </cd:keywords>
- <cd:content n="2" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="blackrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="rechteck"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stellerechteckein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="blackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="rechtecke"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:inherit name="stellerechteckein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stellerechteckein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension" default="1em"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension" default="1ex"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="tiefe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a" default="yes"/>
- <cd:constant type="b"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension" default=".25ex"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number" default="3"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineoverlay" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definiereoverlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usemodule" file="core-fil.tex"> <!-- TODO -->
- <cd:sequence>
- <cd:string value="verwendemodul"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reset" file="core-num.tex">
- <cd:sequence>
- <cd:string value="ruecksetzten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!-- <cd:command name="donttest">
- <cd:sequence>
- <cd:string value="keintest"/>
- </cd:sequence>
-</cd:command> -->
-
- <cd:command name="localenvironment" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="localenvironment"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupsystem" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="stellesystemein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="aufloesung">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="datei">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="verzeichnis">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="zufaellig">
- <cd:constant type="normal"/>
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usedirectory" file="core-job.mkii"> <!-- usepath, todo: more than one file -->
- <cd:sequence>
- <cd:string value="usedirectory"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="zuruecksetzten"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="low" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="tief"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="high" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="hoch"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="lohi" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="tiho"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="tief"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showframe" file="page-run.tex">
- <cd:sequence>
- <cd:string value="zeigerahmen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="kante"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="leftaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="linksbuendig"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="rightaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="rechtsbuendig"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="midaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zentriert"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="wordright" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="wortrechts"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inmargin" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="inmarginalie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="tief"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inothermargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inanderermarginale"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="tief"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inleft" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="imlinken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="tief"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inright" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="imrechten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="tief"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ininner" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="ininner"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="tief"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inouter" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inouter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="tief"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="column" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="spalte"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showstruts" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zeigestruts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showsetups" file="page-run.tex">
- <cd:sequence>
- <cd:string value="zeigeeinstellungen"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showlayout" file="page-run.tex">
- <cd:sequence>
- <cd:string value="zeigelayout"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="margintext" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="marginaltext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="tief"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarginblocks" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stellemarginalblockein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="platz">
- <cd:constant type="imrand"/>
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="oben">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="unten">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginblock" type="environment" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="marginblock"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="part" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="part"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="title" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="title"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="chapter" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="chapter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="section" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="section"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="appendix" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="appendix"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="in" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="in"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:content n="2" interactive="yes"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="at" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="bei"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:content n="2" interactive="yes"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="about" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="ueber"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:reference n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="somewhere" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="irgendwo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="atpage" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="aufseite"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ref" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="ref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="t"/>
- <cd:constant type="p"/>
- <cd:constant type="r"/>
- <cd:constant type="s"/>
- <cd:constant type="e"/>
- </cd:keywords>
- <cd:reference n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textreference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="textreferenz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="pagereference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="seitenreferenz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="referenz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usereferences" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="verwendereferenzen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="definierereferenz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereferenceformat" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="definierereferenzformat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="label">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hl" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="hl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="vl" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="vl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="godown" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nachunten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="whitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="zwischenraum"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="nowhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="keinzwischenraum"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="crlf" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="crlf"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="space" file="syst-pln.tex">
- <cd:sequence>
- <cd:string value="spatium"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="fixedspaces" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="festesspatium"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="emptylines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="emptylines"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nospace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="keinspatium"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="packed" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="kleinerdurchschuss"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupdescriptions" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definierebeschreibungen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/> <!-- TODO: style=normal -->
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- <cd:constant type="cd:dimension" default="8em"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="muster">
- <cd:constant type="cd:text" default=""/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closecommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="closesymbol">
- <cd:constant type="cd:text" default=""/>
- </cd:parameter>
- <cd:parameter name="titleleft">
- <cd:constant type="cd:text" default="("/>
- </cd:parameter>
- <cd:parameter name="titleright">
- <cd:constant type="cd:text" default=")"/>
- </cd:parameter>
- <cd:parameter name="titelabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="titelstil">
- <cd:resolve name="style"/> <!-- TODO: default=bold -->
- </cd:parameter>
- <cd:parameter name="titelfarbe">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="standard"/>
- <cd:constant type="ja"/>
- <cd:constant type="nein" default="yes"/> <!-- TODO: this is default; conflicting syntax? -->
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="links" default="yes"/>
- <cd:constant type="rechts"/>
- <cd:constant type="oben"/>
- <cd:constant type="kleinerabstand"/>
- <cd:constant type="imrand"/>
- <cd:constant type="imlinken"/>
- <cd:constant type="imrechten"/>
- <cd:constant type="haengend"/>
- </cd:parameter>
- <cd:parameter name="kopfstil">
- <cd:resolve name="style"/> <!-- TODO: default=bold -->
- </cd:parameter>
- <cd:parameter name="kopffarbe">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="headcommand">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="haengend">
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="ziehefolgendeein">
- <cd:resolve name="indentnext"/> <!-- default=yes -->
- </cd:parameter>
- <cd:parameter name="einziehen">
- <cd:resolve name="indenting"/> <!-- default=never -->
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="bildschirm">
- <cd:constant type="ja" default="yes"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupenumerations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="stellebeschreibungein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="definierebeschreibungen" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineenumeration" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definierenummerierung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="stellebeschreibungein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="enumeration" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="nummerierung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing n="1" interactive="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="enumeration" type="environment" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="nummerierung"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definedescription" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definierebeschreibung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="definierebeschreibungen" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="description" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="beschreibung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="description" type="environment" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="beschreibung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupindentedtext" file="strc-des.tex">
- <cd:sequence>
- <cd:string value="setupindentedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kopfstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="passend"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="muster">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineindentedtext" file="strc-des.tex">
- <cd:sequence>
- <cd:string value="defineindentedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="setupindentedtext" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="indentation" generated="yes" file="core-spa.tex">
- <cd:sequence>
- <cd:variable value="indentation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelabel" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definierelabel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="imrand"/>
- <cd:constant type="imtext"/>
- </cd:parameter>
- <cd:parameter name="art">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="blockauf">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="kopfstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kopffarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labeling" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="labeling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolumns" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="stellespaltenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes"> <!-- no idea why it is optional -->
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="noben">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="linie">
- <cd:constant type="an"/>
- <cd:constant type="aus"/> <!-- default and unknown missing -->
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="toleranz">
- <cd:constant type="sehrstreng"/>
- <cd:constant type="streng"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="sehrtolerant"/>
- <cd:constant type="strecken"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ausgleichen">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:constant type="text"/>
- <!-- cd:constant type="yes"/ -->
- <!-- cd:constant type="no"/ -->
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="blanko">
- <cd:constant type="fest"/>
- <cd:constant type="halbezeile"/>
- <cd:constant type="zeile"/>
- <cd:constant type="flexibel"/>
- <cd:constant type="gross"/>
- <cd:constant type="mittel"/>
- <cd:constant type="klein"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="hintergrund"/>
- </cd:parameter>
- <cd:parameter name="richtung">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="columns" type="environment" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="columns"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stellespaltenein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="definieretext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="kopfzeile"/>
- <cd:constant type="fusszeile"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheader" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stellekopfzeileein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text" default="yes"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="kante"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="status">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="leer"/>
- <cd:constant type="hoch"/>
- <cd:constant type="kein"/>
- <cd:constant type="keinebeschriftung"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="linkerstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="rechterstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="linkerbreite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterbreite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfooter" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stellefusszeileein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="stellekopfzeileein" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="stellekopfzeileein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelletextein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="stellekopfzeileein" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="stellekopfzeileein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptop" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stellenobenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="stellekopfzeileein" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="stellekopfzeileein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbottom" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelleuntenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="stellekopfzeileein" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="stellekopfzeileein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="noheaderandfooterlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="keinekopfundfusszeilen"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="notopandbottomlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="keinzeilenobenundunten"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupheadertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stellekopfzeilentextein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stellefusszeilentextein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptexttexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelletexttexteein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptoptexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelletextobenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbottomtexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelletextuntenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="settextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="settext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="resettextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="resettextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="lefttext"/>
- <cd:constant type="middletext"/>
- <cd:constant type="righttext"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="definierebeschriftung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplemarking" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="verknuepfebeschriftung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="decouplemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="entknuepfebeschriftung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="resetmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="ruecksetztenbeschriftung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="stellebeschriftungein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="beschriftung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="getmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="holebeschriftung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="erste"/>
- <cd:constant type="letzte"/>
- <cd:constant type="vorig"/>
- <cd:constant type="beide"/>
- <cd:constant type="alles"/>
- <cd:constant type="aktuell"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="keinebeschriftung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplayout" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="stellelayoutein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="mittig"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="mittig"/>
- </cd:parameter>
- <cd:parameter name="rumpfspatium">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfspatium">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkerrand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterrand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfzeile">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fusszeile">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="oben">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="unten">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkekante">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechtekante">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfzeilenabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fusszeilenabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="obenabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstandunten">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkerrandabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterrandabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkerkantenabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterkantenabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rumpfabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="beschriftung">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- <cd:constant type="farbe"/>
- <cd:constant type="raster"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="seite"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
- <cd:constant type="unten"/>
- <cd:constant type="oben"/>
- <cd:constant type="einzelseitig"/>
- <cd:constant type="doppelseitig"/>
- </cd:parameter>
- <cd:parameter name="format">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zeilen">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="spalten">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="spaltenabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="gritter">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="bottomspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cutspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="textdistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="textbreite">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="textmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="clipoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="seite">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="papier">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="adaptlayout" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="passelayoutan"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="zeilen">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showgrid" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="zeigegitter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- <cd:constant type="kein"/>
- <cd:constant type="alles"/>
- <cd:constant type="zeilen"/>
- <cd:constant type="rahmen"/>
- <cd:constant type="nonumber"/>
- <cd:constant type="rechts"/>
- <cd:constant type="links"/>
- <cd:constant type="aussen"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="amgitterausrichten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="amgitterneuausrichten" n="1"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="moveongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="amgitterneuausrichten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="standard" default="yes"/> <!-- also 'normal', 'yes' and 'force' -->
- <cd:constant type="oben"/>
- <cd:constant type="beide"/>
- <cd:constant type="unten"/>
- <cd:constant type="-top"/>
- <cd:constant type="-both"/>
- <cd:constant type="-bottom"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="hoch"/>
- <cd:constant type="mittig"/>
- <cd:constant type="tief"/>
- <cd:constant type="seite"/>
- <cd:constant type="breit"/>
- <cd:constant type="passend"/>
- <cd:constant type="tiefe"/>
- <cd:constant type="zeile"/>
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="kein"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="project" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="projekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="environment" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="umgebung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="product" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="produkt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="component" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="komponente"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomorefiles" file="core-job.tex">
- <cd:sequence>
- <cd:string value="keinedateienmehr"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupinterlinespace" variant="1" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="stellezeilenabstandein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="klein" default="yes"/>
- <cd:constant type="mittel"/>
- <cd:constant type="auto"/>
- <cd:constant type="gross"/>
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinterlinespace2" variant="2" file="core-spa.tex">
- <!-- attached a 2 to make this definition usable with \showsetup -->
- <cd:sequence>
- <cd:string value="stellezeilenabstandein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="hoehe">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="tiefe">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="zeile">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="oben">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="unten">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppagenumbering" file="page-num.tex">
- <cd:sequence>
- <cd:string value="stelleseitennummeriernungein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="einzelseitig"/>
- <cd:constant type="doppelseitig"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="kopfzeile"/>
- <cd:constant type="fusszeile"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="marginalkante"/>
- <cd:constant type="imlinken"/>
- <cd:constant type="imrechten"/>
- </cd:parameter>
- <cd:parameter name="konversion">
- <cd:constant type="ziffern"/>
- <cd:constant type="buchstaben"/>
- <cd:constant type="Buchstaben"/>
- <cd:constant type="roemischezahlen"/>
- <cd:constant type="Roemischezahlen"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="art">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="nummernseperator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="textseparator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="seite">
- <cd:constant type="letzte"/>
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupnarrower" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="stelleengerein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="links">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mittig">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="define" file="syst-ext.tex">
- <cd:sequence>
- <cd:string value="definieren"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:csname n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usecommands" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="verwendebefehl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definestartstop" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="definierestartstop"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="befehle">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheads" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelleueberschriftenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="abschnittsnummer">
- <cd:constant type="ja"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="normal"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="mittig"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="absatz"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="abschnitttrenner">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="titelausrichten">
- <cd:constant type="ja"/>
- <cd:constant type="gleitobjekt"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="toleranz">
- <cd:constant type="sehrstreng"/>
- <cd:constant type="streng"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="sehrtolerant"/>
- <cd:constant type="strecken"/>
- </cd:parameter>
- <cd:parameter name="ziehefolgendeein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcaptions" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stellebilderunterschriftein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="platz">
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- <cd:constant type="kein"/>
- <cd:constant type="hoch"/>
- <cd:constant type="tief"/>
- <cd:constant type="mittig"/>
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
- <cd:constant type="lefthanging"/>
- <cd:constant type="righthanging"/>
- <cd:constant type="linkerrand"/>
- <cd:constant type="rechterrand"/>
- <cd:constant type="innermargin"/>
- <cd:constant type="outermargin"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- <cd:constant type="max"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="minbreite">
- <cd:constant type="passend"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="nummer">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="konversion">
- <cd:constant type="ziffern"/>
- <cd:constant type="buchstaben"/>
- <cd:constant type="Buchstaben"/>
- <cd:constant type="roemischezahlen"/>
- <cd:constant type="Roemischezahlen"/>
- </cd:parameter>
- <cd:parameter name="art">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="abschnitttrenner">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcaption" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stellebildunterschriftein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="stellebilderunterschriftein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloats" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stellegleitobjekteein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="passend"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vorspatium">
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="nachspatium">
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="nebenvorspatium">
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="nebennachspatium">
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="ziehefolgendeein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="noben">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nunten">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="zzeile">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="default">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="toleranz">
- <cd:constant type="0"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- <cd:parameter name="linkerrandabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterrandabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sidealign">
- <cd:constant type="normal"/>
- <cd:constant type="zeile"/>
- </cd:parameter>
- <cd:parameter name="nummerierung">
- <cd:constant type="ja"/>
- <cd:constant type="nocheck"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloatsplitting" file="core-tsp.tex">
- <cd:sequence>
- <cd:string value="stelleplatziegeteiltegleitobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="konversion">
- <cd:constant type="ziffern"/>
- <cd:constant type="buchstaben"/>
- <cd:constant type="Buchstaben"/>
- <cd:constant type="roemischezahlen"/>
- <cd:constant type="Roemischezahlen"/>
- </cd:parameter>
- <cd:parameter name="zeilen">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="splitfloat" file="core-tsp.tex">
- <cd:sequence>
- <cd:string value="teilegleitobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelleplatziegeteiltegleitobjekt" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupoppositeplacing" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="stellegegenueberplatzierenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="opposite" type="environment" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="opposite"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setuphyphenmark" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stellebindestrichein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="zeichen">
- <cd:constant type="--"/>
- <cd:constant type="---"/>
- <cd:constant type="-"/>
- <cd:constant type="~"/>
- <cd:constant type="("/>
- <cd:constant type=")"/>
- <cd:constant type="="/>
- <cd:constant type="/"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppositioning" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="stellepositionierenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="overlay"/>
- </cd:parameter>
- <cd:parameter name="einheit">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="format">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="xschritt">
- <cd:constant type="absolut"/>
- <cd:constant type="relativ"/>
- </cd:parameter>
- <cd:parameter name="yschritt">
- <cd:constant type="absolut"/>
- <cd:constant type="relativ"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="positioning" type="environment" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="positioning"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="grid" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="gitter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xschritt">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yschritt">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="format">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="einheit">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="page" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="seite"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="ja" default="yes"/>
- <cd:constant type="umbruch"/>
- <cd:constant type="nein"/>
- <cd:constant type="einstellung"/>
- <cd:constant type="grosszuegig"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="sperren"/>
- <cd:constant type="letzte"/>
- <cd:constant type="viertel"/>
- <cd:constant type="gerade"/>
- <cd:constant type="ungerade"/>
- <cd:constant type="blanko"/>
- <cd:constant type="leer"/>
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupreferencing" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="stellereferenzierenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interaktion">
- <cd:constant type="label"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="alles"/>
- <cd:constant type="symbol"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="konvertieredatei">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="klein"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autofile">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="seite"/>
- </cd:parameter>
- <cd:parameter name="global">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="export">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupurl" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="stelleurlein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="urlalternative">
- <cd:constant type="kein"/>
- <cd:constant type="beide"/>
- <cd:constant type="vor"/>
- <cd:constant type="nach"/>
- </cd:parameter>
- <cd:parameter name="urlspatium">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetoreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="schreibezurreferenzliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="placereferencelist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definierereferenzliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stellereferenzlisteein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="stellereferenzlisteein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="lokal"/>
- <cd:constant type="vorig"/>
- <cd:constant type="alles"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="schreibezurliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="platz">
- <cd:constant type="hier"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writebetweenlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="schreibezwischenliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="platz">
- <cd:constant type="hier"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="keineliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="listsymbol" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="listsymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="platziereliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stellelisteein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="determinelistcharacteristics" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="bestimmelistencharakeristika"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stellelisteein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="platzierezusammengestellteliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stellezusammengestelltelisteein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definiereliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes"> <!-- inherits from -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="stellelisteein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="stellelisteein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="..."/>
- <cd:constant type="kein"/>
- <cd:constant type="befehl"/>
- </cd:parameter>
- <cd:parameter name="verknuepfung">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="lokal"/>
- <cd:constant type="vorig"/>
- <cd:constant type="aktuell"/>
- <cd:constant type="hier"/>
- <cd:constant type="intro"/>
- <cd:constant type="alles"/>
- </cd:parameter>
- <cd:parameter name="extras">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="nummernstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="textstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="seitenstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- <cd:parameter name="nummerbefehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="textbefehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="seitenbefehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="interaktion">
- <cd:constant type="abschnittsnummer"/>
- <cd:constant type="text"/>
- <cd:constant type="seitennummer"/>
- <cd:constant type="alles"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="label">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="seitennummer">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="kopfnummer">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="titelausrichten">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- </cd:parameter>
- <cd:parameter name="tiefe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="abschnitttrenner">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="kein"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="..."/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="befehl"/>
- </cd:parameter>
- <cd:parameter name="maxbreite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="order">
- <cd:constant type="befehl"/>
- <cd:constant type="alles"/>
- <cd:constant type="normal"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplistalternative" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setuplistalternative"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="no">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <!-- cd:constant type="cd:name"/ -->
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="befehl">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="strecken">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definierezusammengestellteliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:list"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="stellezusammengestelltelisteein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="stellezusammengestelltelisteein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="niveau">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="4"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="aktuell"/>
- </cd:parameter>
- <cd:inherit name="stellelisteein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="platziere"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stellezusammengestelltelisteein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completecombinedlist" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="vollende"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stellezusammengestelltelisteein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupnumbering" file="core-num.tex">
- <cd:sequence>
- <cd:string value="stellenummerierungein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="art">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupformulas" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="stelleformelnein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="mittig"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="mittig"/>
- <cd:constant type="center"/>
- </cd:parameter>
- <cd:parameter name="linkerrand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterrand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ziehefolgendeein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="vorspatium">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="konversion">
- <cd:constant type="ziffern"/>
- <cd:constant type="buchstaben"/>
- <cd:constant type="Buchstaben"/>
- <cd:constant type="roemischezahlen"/>
- <cd:constant type="Roemischezahlen"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="publication" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="publikation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppublications" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stellepublikationein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="apa"/>
- <cd:constant type="normal"/>
- </cd:parameter>
- <cd:inherit name="stellebeschreibungein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="stellezeilenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="einziehen">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="spatium">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="gepackt"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="lines" type="environment">
- <cd:sequence>
- <cd:string value="lines"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupparagraphnumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="stelleabsatznummerierungein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="zeile"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplinenumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="stellezeilennumerierungein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="konversion">
- <cd:constant type="ziffern"/>
- <cd:constant type="buchstaben"/>
- <cd:constant type="Buchstaben"/>
- <cd:constant type="roemischezahlen"/>
- <cd:constant type="Roemischezahlen"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="schritt">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="mittig"/>
- <cd:constant type="links"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="imrand"/>
- <cd:constant type="imlinken"/>
- <cd:constant type="rechts"/>
- <cd:constant type="imrechten"/>
- <cd:constant type="innen"/>
- <cd:constant type="aussen"/>
- <cd:constant type="text"/>
- <cd:constant type="begin"/>
- <cd:constant type="end"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="referieren">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="linenumbering" type="environment" file="page-lin.tex"> <!-- mkii/mkiv -->
- <cd:sequence>
- <cd:string value="linenumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="fortsetzten"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="line" type="environment">
- <cd:sequence>
- <cd:string value="line"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="someline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="einezeile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="inzeile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinmargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="stelleinmarginalieein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="beide"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="zeile">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="seperator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stack">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="stelleseitennummerein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="nummer">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="behalte"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsubpagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="stelleunterseitennummerein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="art">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="stelleblankoein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="normal" default="yes"/>
- <cd:constant type="default"/>
- <cd:constant type="standard"/>
- <cd:constant type="zeile"/>
- <cd:constant type="halbezeile"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="gross"/>
- <cd:constant type="mittel"/>
- <cd:constant type="klein"/>
- <cd:constant type="fest"/>
- <cd:constant type="flexibel"/>
- <cd:constant type="global"/>
- <cd:constant type="unbekannt"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="definiereblanko"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="stelleblankoein" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definepapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="definierepapierformat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="format">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppaper" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="setuppaper"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="papier">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="seite">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfspatium">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rumpfspatium">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="max"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="methode">
- <cd:constant type="normal"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="stellepapierformatein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="CD"/>
- <cd:constant type="cd:name"/>
- <cd:constant type="querformat"/>
- <cd:constant type="gespiegelt"/>
- <cd:constant type="gedreht"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="negativ"/>
- <cd:inherit name="stellepapierformatein" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuparranging" file="page-imp.tex">
- <cd:sequence>
- <cd:string value="stelleanordnenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="sperren"/>
- <cd:constant type="2*16"/>
- <cd:constant type="2*8"/>
- <cd:constant type="2*4"/>
- <cd:constant type="2*2"/>
- <cd:constant type="2**2"/>
- <cd:constant type="2*2*4"/>
- <cd:constant type="2*4*2"/>
- <cd:constant type="2UP"/>
- <cd:constant type="2DOWN"/>
- <cd:constant type="2SIDE"/>
- <cd:constant type="2TOP"/>
- <cd:constant type="gespiegelt"/>
- <cd:constant type="gedreht"/>
- <cd:constant type="doppelseitig"/>
- <cd:constant type="negativ"/>
- <cd:constant type="hintergrund"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showprint" file="page-run.tex"> <!-- page-lay.tex -->
- <cd:sequence>
- <cd:string value="zeigedruck"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:inherit name="stellepapierformatein" n="1"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:inherit name="stellepapierformatein" n="2"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="stellelayoutein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelogo" file="page-log.tex">
- <cd:sequence>
- <cd:string value="definierelogo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="oben"/>
- <cd:constant type="kopfzeile"/>
- <cd:constant type="fusszeile"/>
- <cd:constant type="unten"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="kein"/>
- <cd:constant type="seite"/>
- <cd:constant type="linkekante"/>
- <cd:constant type="linkerrand"/>
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
- <cd:constant type="rechterrand"/>
- <cd:constant type="rechterkante"/>
- </cd:keywords>
- <cd:assignments n="4" list="yes">
- <cd:parameter name="befehl">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelogos" file="page-log.tex">
- <cd:sequence>
- <cd:string value="platzierelogo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupwhitespace">
- <cd:sequence>
- <cd:string value="stellezwischenraumein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="kein" default="yes"/>
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="zeile"/>
- <cd:constant type="fest"/>
- <cd:constant type="stellewiederher"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupindenting">
- <cd:sequence>
- <cd:string value="stelleeinziehenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definiereabschnittsblock"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="stelleabschnittsblockein" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelleabschnittsblockein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelleabschnittsblockein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="nummer">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="seite">
- <cd:constant type="ja"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definiereabschnitt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelleabschnittein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="konversion">
- <cd:constant type="ziffern"/>
- <cd:constant type="buchstaben"/>
- <cd:constant type="Buchstaben"/>
- <cd:constant type="roemischezahlen"/>
- <cd:constant type="Roemischezahlen"/>
- </cd:parameter>
- <cd:parameter name="vorigenummer">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuphead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelleueberschriftein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="textstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="nummernstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="textfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nummernfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nummer">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="eigenenummer">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="seite">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="ja"/>
- </cd:parameter>
- <cd:parameter name="fortsetzen">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="kopfzeile">
- <cd:constant type="kein"/>
- <cd:constant type="leer"/>
- <cd:constant type="hoch"/>
- <cd:constant type="keinebeschriftung"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="kein"/>
- <cd:constant type="leer"/>
- <cd:constant type="hoch"/>
- <cd:constant type="keinebeschriftung"/>
- </cd:parameter>
- <cd:parameter name="fusszeile">
- <cd:constant type="kein"/>
- <cd:constant type="leer"/>
- <cd:constant type="hoch"/>
- <cd:constant type="keinebeschriftung"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="normal"/>
- <cd:constant type="imrand"/>
- <cd:constant type="mittig"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="haengend">
- <cd:constant type="kein"/>
- <cd:constant type="breit"/>
- <cd:constant type="passend"/>
- <cd:constant type="zeile"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="nummerbefehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="textbefehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deepnumbercommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="setzekopf">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="leer"/>
- </cd:parameter>
- <cd:parameter name="nummererhoehen">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="cd:list"/>
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="resetnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="datei">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="befehl"/>
- </cd:parameter>
- <cd:parameter name="marginaltext">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="interaktion">
- <cd:constant type="liste"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:inherit name="stelleueberschriftenein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stellekopfzahlein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:number"/>
- <cd:constant type="+cd:number"/>
- <cd:constant type="-cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="headnumber">
- <cd:sequence>
- <cd:string value="kopfnummer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="determineheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="bestimmekopfnummer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="currentheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="heutigeskopfnummer"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="nextsection" generated="yes" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="folgende"/>
- <cd:variable value="absatz"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definehead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definiereueberschrift"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!--
-
- <cd:feature name="itemgroups" file="strc-itm">
-
- <cd:description language="de"> </cd:description>
-
- -->
-
- <cd:command name="defineitemgroup" file="strc-itm">
- <cd:sequence>
- <cd:string value="defineitemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupitemgroup" file="strc-itm">
- <!-- we mis a few experimental keys here, like alignsymbol and indentation -->
- <cd:sequence>
- <cd:string value="setupitemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="jede"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes" list="yes">
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="breit"/>
- <cd:constant type="kleinerabstand"/>
- <cd:constant type="gepackt"/>
- <cd:constant type="ungepackt"/>
- <cd:constant type="keinweiss"/>
- <cd:constant type="vor"/>
- <cd:constant type="nach"/>
- <cd:constant type="trenner"/>
- <cd:constant type="keinabstand"/>
- <cd:constant type="amrand"/>
- <cd:constant type="imrand"/>
- <cd:constant type="autointro"/>
- <cd:constant type="lose"/>
- <cd:constant type="wiederholen"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="absatz"/>
- <cd:constant type="imtext"/>
- <cd:constant type="zufaellig"/>
- <cd:constant type="reverse"/>
- </cd:keywords>
- <cd:assignments n="4" optional="yes" list="yes">
- <cd:parameter name="marginalie">
- <cd:constant type="nein"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkerrand">
- <cd:constant type="nein"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterrand">
- <cd:constant type="nein"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="schritt">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="posten">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="vorkopf">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nachkopf">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="kopfstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="beschrstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="symstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="abschnitttrenner">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="symausrichtung">
- <cd:resolve name="symalign"/>
- </cd:parameter>
- <cd:parameter name="ziehefolgendeein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="textdistance">
- <!-- maybe resolve here too -->
- <cd:constant type="kein"/>
- <cd:constant type="gross"/>
- <cd:constant type="mittel"/>
- <cd:constant type="klein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="itemgroup" type="environment" generated="yes" file="strc-itm">
- <cd:sequence>
- <cd:variable value="itemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="a"/>
- <cd:constant type="A"/>
- <cd:constant type="KA"/>
- <cd:constant type="n"/>
- <cd:constant type="N"/>
- <cd:constant type="m"/>
- <cd:constant type="r"/>
- <cd:constant type="R"/>
- <cd:constant type="KR"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="fortsetzten"/>
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="breit"/>
- <cd:constant type="kleinerabstand"/>
- <cd:constant type="gepackt"/>
- <cd:constant type="trenner"/>
- <cd:constant type="keinabstand"/>
- <cd:constant type="amrand"/>
- <cd:constant type="imrand"/>
- <cd:constant type="intro"/>
- <cd:constant type="spalten"/>
- <cd:constant type="text"/>
- <cd:constant type="absatz"/>
- <cd:constant type="wiederholen"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="setupitemgroup" n="4"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="item" environment="yes" shortcut="yes" file="strc-itm">
- <cd:sequence>
- <cd:string value="pos"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <!--
- <cd:command name="item" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="pos"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
- -->
-
- <cd:command name="but">
- <cd:sequence>
- <cd:string value="but"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="exclusive"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="its">
- <cd:sequence>
- <cd:string value="its"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ran">
- <cd:sequence>
- <cd:string value="ran"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="head">
- <cd:sequence>
- <cd:string value="kopf"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mar">
- <cd:sequence>
- <cd:string value="mar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sub">
- <cd:sequence>
- <cd:string value="sub"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sym" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="sym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nop">
- <cd:sequence>
- <cd:string value="nop"/>
- </cd:sequence>
- </cd:command>
-
- <!-- </cd:feature> -->
-
- <cd:command name="defineregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="definiereregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="stelleregisterein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ausgleichen">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="seitenstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="textstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="indikator">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="verknuepfung">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="lokal"/>
- <cd:constant type="alles"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="interaktion">
- <cd:constant type="seitennummer"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="befehl"/>
- </cd:parameter>
- <cd:parameter name="referieren">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="maxbreite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="unbekantereferenz">
- <cd:constant type="leer"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="A"/>
- <cd:constant type="B"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="beide"/>
- <cd:constant type="erste"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="compress">
- <cd:constant type="nein"/>
- <cd:constant type="ja"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="register" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="startregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="start"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetoregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="schreibezumregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupledregister" generated="yes">
- <cd:sequence>
- <cd:string value="verknuepft"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupleregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="verknuepfregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeregister" variant="1" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="platziereregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelleregisterein" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="seeregister" generated="yes">
- <cd:sequence>
- <cd:string value="sieh"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:index n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completeregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="vollende"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
- <cd:inherit name="stelleregisterein" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="platziere"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
- <cd:inherit name="stelleregisterein" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definieresynonyme"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="stellesynonymein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="textstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="synonymstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="oben"/>
- <cd:constant type="kleinerabstand"/>
- <cd:constant type="imrand"/>
- <cd:constant type="imlinken"/>
- <cd:constant type="imrechten"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="alles"/>
- <cd:constant type="verwende"/>
- </cd:parameter>
- <cd:parameter name="konversion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="befehl"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synonym" generated="yes">
- <cd:sequence>
- <cd:variable value="synonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="loadsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="laden"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definesorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definieresortieren"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="stellesortierenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="kriterium">
- <cd:constant type="alles"/>
- <cd:constant type="verwende"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="befehl"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sort" generated="yes">
- <cd:sequence>
- <cd:variable value="sort"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="loadsorts" generated="yes">
- <cd:sequence>
- <cd:string value="laden"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definemakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="definiereumbruch"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="stelleumbruchein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="makeup" type="environment">
- <cd:sequence>
- <cd:string value="umbruch"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelleumbruchein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="stelleumbruchein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="seite">
- <cd:constant type="links"/>
- <cd:constant type="ja"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="befehle">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="doppelseitig">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="leer"/>
- </cd:parameter>
- <cd:parameter name="kopfzeilenstatus">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="leer"/>
- <cd:constant type="kein"/>
- <cd:constant type="keinebeschriftung"/>
- </cd:parameter>
- <cd:parameter name="fusszeilenstatus">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="leer"/>
- <cd:constant type="kein"/>
- <cd:constant type="keinebeschriftung"/>
- </cd:parameter>
- <cd:parameter name="textstatus">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="leer"/>
- <cd:constant type="kein"/>
- <cd:constant type="keinebeschriftung"/>
- </cd:parameter>
- <cd:parameter name="statusoben">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="untenstatus">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="pagestate">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="namemakeup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="name"/>
- <cd:string value="umbruch"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="version">
- <cd:sequence>
- <cd:string value="version"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="endfassung" default="yes"/>
- <cd:constant type="konzept"/>
- <cd:constant type="temporaer"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="currentdate">
- <cd:sequence>
- <cd:string value="heutigesdatum"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:inherit name="datum" n="2"/> <!-- or vice versa :) -->
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="date" file="core-con.tex">
- <cd:sequence>
- <cd:string value="datum"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes"> <!-- if not given, current date is used -->
- <cd:parameter name="d">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="tag"/>
- <cd:constant type="monat"/>
- <cd:constant type="jahr"/>
- <cd:constant type="wochentag"/>
- <cd:constant type="d"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/> <!-- also j -->
- <cd:constant type="w"/>
- <cd:constant type="dd"/>
- <cd:constant type="mm"/>
- <cd:constant type="yy"/> <!-- also jj -->
- <cd:constant type="spatium"/>
- <cd:constant type="--"/>
- <cd:constant type="day+"/>
- <cd:constant type="d+"/>
- <cd:constant type="dd+"/>
- <cd:constant type="merkmal"/>
- <cd:constant type="cd:text"/> <!-- any other text -->
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="referraldate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="verweisdatum"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="indenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="einziehen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="noindenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nichteinziehen"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="blank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="blanko"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross" default="yes"/>
- <cd:constant type="keinweiss"/>
- <cd:constant type="zurueck"/>
- <cd:constant type="weiss"/>
- <cd:constant type="sperren"/>
- <cd:constant type="zwinge"/>
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="zeile"/>
- <cd:constant type="halbezeile"/>
- <cd:constant type="cd:formula"/>
- <cd:constant type="fest"/>
- <cd:constant type="flexibel"/>
- <cd:constant type="kein"/>
- <cd:constant type="immer"/>
- <cd:constant type="aussen"/>
- <cd:constant type="keinabstand"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="packed" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="kleinerdurchschuss"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="blanko"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="unpacked" type="environment">
- <cd:sequence>
- <cd:string value="unpacked"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="linecorrection" type="environment">
- <cd:sequence>
- <cd:string value="linecorrection"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="correctwhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="korrigierezwischenraum"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="postponing" type="environment">
- <cd:sequence>
- <cd:string value="postponing"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="local" type="environment">
- <cd:sequence>
- <cd:string value="lokal"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="narrower" type="environment">
- <cd:sequence>
- <cd:string value="narrower"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="links"/>
- <cd:constant type="mittig" default="yes"/>
- <cd:constant type="rechts"/>
- <cd:constant type="-left"/>
- <cd:constant type="-middle"/>
- <cd:constant type="-right"/>
- <cd:constant type="-none"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hiding" type="environment">
- <cd:sequence>
- <cd:string value="hiding"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupalign" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="stelleausrichtungein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="breite"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- <cd:constant type="innen"/>
- <cd:constant type="aussen"/>
- <cd:constant type="breit"/>
- <cd:constant type="breit"/>
- <cd:constant type="hoehe"/>
- <cd:constant type="unten"/>
- <cd:constant type="zeile"/>
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="haengend"/>
- <cd:constant type="nothanging"/>
- <cd:constant type="hyphenate"/>
- <cd:constant type="nothyphenated"/>
- <cd:constant type="lesshyphenation"/>
- <cd:constant type="morehyphenation"/>
- <cd:constant type="neu"/>
- <cd:constant type="old"/>
- <cd:constant type="normal"/>
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="flushouter"/>
- <cd:constant type="flushinner"/>
- <cd:constant type="center"/>
- <cd:constant type="hz"/>
- <cd:constant type="nohz"/>
- <cd:constant type="spatiumausgleich"/>
- <cd:constant type="nospacing"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="sehrtolerant"/>
- <cd:constant type="strecken"/>
- <cd:constant type="extremestretch"/>
- <cd:constant type="lefttoright"/>
- <cd:constant type="righttoleft"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
-
- <cd:command name="alignment" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="alignment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="stelleausrichtungein" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupspacing">
- <cd:sequence>
- <cd:string value="stellespatiumein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="breit"/>
- <cd:constant type="gepackt"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptolerance" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="stelletoleranzein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="horizontal"/>
- <cd:constant type="vertikal"/>
- <cd:constant type="strecken"/>
- <cd:constant type="spatium"/>
- <cd:constant type="sehrstreng" default="yes"/>
- <cd:constant type="streng"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="sehrtolerant"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!-- cd:command name="pagetype" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="pagetype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command -->
-
- <cd:command name="processpage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="bearbeiteseite"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="ja" default="yes"/>
- <cd:constant type="nein"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplepage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="doppelseite"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="option">
- <cd:constant type="doppelseitig"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="position" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="position"/>
- </cd:sequence>
- <cd:arguments>
- <cd:position n="1" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupscreens" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stellerasterein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="methode">
- <cd:constant type="punkt"/>
- <cd:constant type="linie"/>
- <cd:constant type="extern"/>
- </cd:parameter>
- <cd:parameter name="aufloesung">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="raster">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbackgrounds" file="page-bck.tex">
- <cd:sequence>
- <cd:string value="stellehintergruendeein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="oben"/>
- <cd:constant type="kopfzeile"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="fusszeile"/>
- <cd:constant type="unten"/>
- <cd:constant type="seite"/>
- <cd:constant type="papier"/>
- <cd:constant type="linkerseite"/>
- <cd:constant type="rechterseite"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="linkekante"/>
- <cd:constant type="linkerrand"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="rechterrand"/>
- <cd:constant type="rechterkante"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="cd:repeat"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="buffer" type="environment" generated="yes" file="core-buf.tex">
- <cd:sequence>
- <cd:variable value="puffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="buffer" type="environment" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="getbuffer">
- <cd:sequence>
- <cd:string value="holepuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="tippepuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definierepuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="stellepufferein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="absatz">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definiereblock"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomoreblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="keinebloeckemehr"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="hideblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="verbergebloecke"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="keepblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="behaltebloecke"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="alles"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="verwendebloecke"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="processblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="bearbeitebloecke"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="bypassblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="bypassblocks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="forceblocks">
- <cd:sequence>
- <cd:string value="forceblocks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="selectblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="waehlebloeckeaus"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="kriterium">
- <cd:constant type="alles"/>
- <cd:constant type="cd:section"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="stelleblockein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="innen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="datei">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="formula" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="formel"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="mathematics" file="supp-mat.tex">
- <cd:sequence>
- <cd:string value="mathematik"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="platziereformel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2" optional="yes"/>
- <cd:displaymath n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placesubformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="platziereunterformel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2" optional="yes"/>
- <cd:displaymath n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placefloat" generated="yes" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="platziere"/>
- <cd:variable value="gleitobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="hier" default="yes"/>
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- <cd:constant type="imlinken"/>
- <cd:constant type="imrechten"/>
- <cd:constant type="imrand"/>
- <cd:constant type="marginalie"/>
- <cd:constant type="linkerrand"/>
- <cd:constant type="rechterrand"/>
- <cd:constant type="linkekante"/>
- <cd:constant type="rechterkante"/>
- <cd:constant type="innermargin"/>
- <cd:constant type="outermargin"/>
- <cd:constant type="inneredge"/>
- <cd:constant type="outeredge"/>
- <cd:constant type="innen"/>
- <cd:constant type="aussen"/>
- <cd:constant type="zeile"/>
- <cd:constant type="hoch"/>
- <cd:constant type="tief"/>
- <cd:constant type="passend"/>
- <cd:constant type="seite"/>
- <cd:constant type="linkerseite"/>
- <cd:constant type="rechterseite"/>
- <cd:constant type="gegenueber"/>
- <cd:constant type="immer"/>
- <cd:constant type="auto"/>
- <cd:constant type="zwinge"/>
- <cd:constant type="lang"/>
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="zeile"/>
- <cd:constant type="hoehe"/>
- <cd:constant type="tiefe"/>
- <cd:constant type="split"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes" list="yes"/>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reservefloat" generated="yes">
- <cd:sequence>
- <cd:string value="reservieren"/>
- <cd:variable value="gleitobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:reference n="3" optional="yes" list="yes"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="definieregleitobjekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stellegleitobjektein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxhoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxbreite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="minbreite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="default">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="seitenbegrenzung">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="linkerrandabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterrandabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="mittig"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="floattext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="gleitobjekt"/>
- <cd:string value="text"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="hoch"/>
- <cd:constant type="mittig"/>
- <cd:constant type="tief"/>
- <cd:constant type="offset"/>
- <cd:constant type="lang"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="completelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="referral" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="verweis"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="bet">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ken">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dat">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="van">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aan">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ref">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="selectpaper">
- <cd:sequence>
- <cd:string value="waehlepapieraus"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="familie">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplepaper">
- <cd:sequence>
- <cd:string value="doppelseitigespapier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="chem" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="chem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fraction" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="bruch"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="periods" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="punkt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="items">
- <cd:sequence>
- <cd:string value="posten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stellepostenein" n="1"/>
- </cd:assignments>
- <cd:content n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupitems" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stellepostenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="imrand"/>
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:text"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- <cd:constant type="unbekannt"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quotation" type="environment" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="zitat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="links"/>
- <cd:constant type="mittig" default="yes"/>
- <cd:constant type="rechts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quotation" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="zitat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="zitieren"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupquote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stellezitierenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="cd:text"/>
- <cd:constant type="marginalie"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="definiereabsaetze"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="linie">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="passend"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="innen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="toleranz">
- <cd:constant type="sehrstreng"/>
- <cd:constant type="streng"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="sehrtolerant"/>
- <cd:constant type="strecken"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="paragraph" generated="yes">
- <cd:sequence>
- <cd:variable value="absatz"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="paragraph" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="absatz"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelleabsaetzeein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="jede"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="toleranz">
- <cd:constant type="sehrstreng"/>
- <cd:constant type="streng"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="sehrtolerant"/>
- <cd:constant type="strecken"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="innen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="befehl">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="linie">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptab" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelletabein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="muster">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfstil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tab">
- <cd:sequence>
- <cd:string value="tab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="document" type="environment">
- <cd:sequence>
- <cd:string value="document"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labels">
- <cd:sequence>
- <cd:string value="labels"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="definieretabulator"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tabulate" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="tabulator"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelleexterneabbildungenein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="stelletabulatorein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="einheit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="einziehen">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="innen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="EQ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="linienfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="liniendicke">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="blanko"/>
- <cd:constant type="gritter"/>
- <cd:constant type="tiefe"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="fliesstext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="linie">
- <cd:constant type="normal"/>
- <cd:constant type="zeile"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptables" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="stelletabellenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="abstand">
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- <cd:parameter name="fliesstext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="HL">
- <cd:constant type="cd:number"/>
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="VL">
- <cd:constant type="cd:number"/>
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="tiefe">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="liniendicke">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linienfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="befehle">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="hintergrund">
- <cd:constant type="raster"/>
- <cd:constant type="farbe"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="hintergrundraster">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="hintergrundfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="fliesstext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="table" type="environment">
- <cd:sequence>
- <cd:string value="table"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tables" type="environment">
- <cd:sequence>
- <cd:string value="tables"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetabletemplate" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="definieretabellenvorlage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfiles" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="verwendeexternedateien"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="fliesstext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="datei">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfile" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="verwendeexternedatei"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="4" list="yes">
- <cd:parameter name="fliesstext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="verwendeexterneabbildung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:name"/> <!-- parent -->
- </cd:keywords>
- <cd:assignments n="4" optional="yes" list="yes">
- <cd:inherit name="stelleexterneabbildungenein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="externalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="externeabbildung"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelleexterneabbildungenein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="stelleexterneabbildungenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="format">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yformat">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yformat">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="max"/>
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- </cd:parameter>
- <cd:parameter name="bfaktor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="breit"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="hfaktor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="breit"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="voreinstellung">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="bildschirm">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="vorschau">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="wiederholen">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="objekt">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="typ">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="methode">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="rahmen"/>
- <cd:constant type="leer"/>
- <cd:constant type="test"/>
- </cd:parameter>
- <cd:parameter name="umrahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="ymax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xmax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="verzeichnis">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="lokal"/>
- <cd:constant type="global"/>
- <cd:constant type="default"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="maxbreite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxhoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="konversion">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interaktion">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- <!-- more will follow -->
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="zeigeexterneabbildungen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalsoundtrack" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="verwendeexternestonstueck"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="name" file="syst-gen.tex">
- <cd:sequence>
- <cd:string value="name"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="legend" type="environment">
- <cd:sequence>
- <cd:string value="legend"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="zwei"/>
- </cd:keywords>
- <cd:tex n="2" command="leg"/>
- <cd:nothing n="3"/>
- <cd:nothing n="4" separator="backslash"/>
- <cd:nothing n="5" separator="backslash"/>
- <cd:tex n="6" separator="backslash" command="leg"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fact" type="environment">
- <cd:sequence>
- <cd:string value="geg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:tex n="1" command="fact"/>
- <cd:nothing n="2"/>
- <cd:nothing n="3" separator="backslash"/>
- <cd:nothing n="4" separator="backslash"/>
- <cd:tex n="5" separator="backslash" command="fact"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="rotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="drehen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelledrehenein" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuprotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelledrehenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="rotation">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="normal"/>
- <cd:constant type="hoch"/>
- <cd:constant type="passend"/>
- <cd:constant type="breit"/>
- <cd:constant type="tiefe"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mirror" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="spiegeln"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="scale" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="format"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="sx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcombinations" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stellekombinationein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="oben"/>
- <cd:constant type="mittig"/>
- <cd:constant type="unten"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="combination" type="environment">
- <cd:sequence>
- <cd:string value="combination"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:matrix"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placesidebyside" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="platzierenebeneinander"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeontopofeachother" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="platziereuntereinander"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overlay" type="environment">
- <cd:sequence>
- <cd:string value="overlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overview" type="environment">
- <cd:sequence>
- <cd:string value="overview"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionscreen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelleinteraktionsbildschirmein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="rumpfspatium">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfspatium">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rumpfabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopfoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="max"/>
- <cd:constant type="passend"/>
- <cd:constant type="doppelseitig"/>
- <cd:constant type="einzelseitig"/>
- <cd:constant type="auto"/>
- <cd:constant type="kein"/>
- <cd:constant type="bookmark"/>
- </cd:parameter>
- <cd:parameter name="wartezeit">
- <cd:constant type="cd:number"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="screen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="bildschirm"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setuppagetransitions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelleseitenuebergangein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteraction" file="core-nav.tex">
- <cd:sequence>
- <cd:string value="stelleinteraktionein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="menue">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- <cd:parameter name="seite">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="klick">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="bildschirm">
- <cd:constant type="neu"/>
- </cd:parameter>
- <cd:parameter name="oeffenaktion">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="schliessenaktion">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="openpageaction">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="closepageaction">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="berechnen">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tiefe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="kontrastfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="symbolset">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titel">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="untertitel">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autor">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="datum">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="keyword">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <!-- maybe this will move elsewhere -->
- <cd:parameter name="fieldlayer">
- <cd:constant type="auto"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelleinteraktionsmenueein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mittig">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="kein"/>
- <cd:constant type="lokal"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="kontrastfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="overlay"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="selbeseite">
- <cd:constant type="ja"/>
- <cd:constant type="leer"/>
- <cd:constant type="nein"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="unbekantereferenz">
- <cd:constant type="ja"/>
- <cd:constant type="leer"/>
- <cd:constant type="nein"/>
- <cd:constant type="kein"/>
- </cd:parameter>
- <cd:parameter name="linkeroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterabstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="obenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="untenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="position">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein" n="2"/> <!-- maybe not all parameters from framed -->
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definiereinteraktionsmenue"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelleinteraktionsmenueein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definiereinteraktionsmenue"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="stelleinteraktionsmenueein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionmenu" type="environment">
- <cd:sequence>
- <cd:string value="interaktionsmenue"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="disableinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="inaktiviereinteraktionsmenue"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="oben"/>
- <cd:constant type="unten"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternaldocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="verwendeexteresdokument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="datei"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useURL" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="verwendeURL"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="datei"/>
- </cd:keywords>
- <cd:keywords n="4">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupledocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="verknuepfedokument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="datei"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="from" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="von"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="exclusive"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionbar">
- <cd:sequence>
- <cd:string value="interaktionsbalken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:inherit name="stelleinteraktionsbalkenein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="interaktionsknopfe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="stelleinteraktionsbalkenein" n="1"/>
- </cd:assignments>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelleinteraktionsbalkenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- <cd:constant type="e"/>
- <cd:constant type="f"/>
- <cd:constant type="g"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hoehe"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hoehe"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="tiefe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="schritt">
- <cd:constant type="cd:number"/>
- <cd:constant type="klein"/>
- <cd:constant type="mittel"/>
- <cd:constant type="gross"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synchronize" file="core-int.tex">
- <cd:sequence>
- <cd:string value="synchronisieren"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="synchronization" type="environment">
- <cd:sequence>
- <cd:string value="synchronization"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupsynchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stellesynchronisationsbalkenein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="seite"/>
- <cd:constant type="lokal"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hoehe"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="synchronisationsbalken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="seite"/>
- <cd:constant type="lokal"/>
- </cd:parameter>
- <cd:inherit name="stellesynchronisationsbalkenein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsynchronization" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stellesynchronisationein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definiereprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupprofiles" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelleprofilein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="option">
- <cd:constant type="test"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="profile" type="environment">
- <cd:sequence>
- <cd:string value="profile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="folgeprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placebookmarks" file="core-int.tex">
- <cd:sequence>
- <cd:string value="platzierebookmarks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="alles"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:parameter name="zwinge">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="bookmark" file="core-int.tex">
- <cd:sequence>
- <cd:string value="bookmark"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="version" type="environment">
- <cd:sequence>
- <cd:string value="version"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupversions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelleversionein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="nummer">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="markversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="beschrifteversion"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="selectversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="waehleversionaus"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="defineversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definiereversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="folgeversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followprofileversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="folgeprofilversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineprogram" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definiereprogramme"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupprograms" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="stelleprogrammein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="verzeichnis">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="program" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="programm"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="figure" type="environment">
- <cd:sequence>
- <cd:string value="figure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="rahmen">
- <cd:constant type="an"/>
- <cd:constant type="aus"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- referring*figure skipped -->
-
- <!-- marking*figure skipped -->
-
- <!-- remark skipped -->
-
- <cd:command name="goto" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="zu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:content n="2" interactive="exclusive"/>
- <cd:reference n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="gotobox" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="zurbox"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="button" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="knopf"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="stelleknopfein" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:reference n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="stelleknopfein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- menubutton skipped -->
-
- <cd:command name="setupcomment" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stellekommentarein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titel">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="spatium">
- <cd:constant type="ja"/>
- <cd:constant type="nein"/>
- </cd:parameter>
- <cd:parameter name="symbol">
- <cd:constant type="normal"/>
- <cd:constant type="Neu"/>
- <cd:constant type="Ballon"/>
- <cd:constant type="Zusatz"/>
- <cd:constant type="Hilfe"/>
- <cd:constant type="Absatz"/>
- <cd:constant type="Schluessel"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="max"/>
- <cd:constant type="puffer"/>
- </cd:parameter>
- <cd:parameter name="marginalie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comment" type="environment">
- <cd:sequence>
- <cd:string value="comment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stellekommentarein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comment">
- <cd:sequence>
- <cd:string value="comment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stellekommentarein" n="1"/>
- </cd:assignments>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definierefeld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1"> <!-- name -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2"> <!-- type -->
- <cd:constant type="text"/>
- <cd:constant type="zeile"/> <!-- equal to text -->
- <cd:constant type="push"/>
- <cd:constant type="check"/>
- <cd:constant type="radio"/>
- <cd:constant type="combo"/>
- <cd:constant type="choice"/> <!-- equal to combo -->
- <cd:constant type="popup"/> <!-- equal to combo -->
- </cd:keywords>
- <cd:keywords n="3"> <!-- group -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4" list="yes"> <!-- optional for text? -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes"> <!-- default -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesubfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definieresubfeld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="copyfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="kopierefeld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="clonefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="klonierefeld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="field" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="feld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fitfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="passendfeld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="ausfuellfeld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tooltip" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="tooltip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="mittig"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="zeigefelder"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="logfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="registrierefelder"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="stellefeldein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="label"/>
- <cd:constant type="horizontal"/>
- <cd:constant type="vertikal"/>
- <cd:constant type="rahmen"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="stellefelderin" n="2"/>
- </cd:assignments>
- <cd:assignments n="4" list="yes"> </cd:assignments>
- <cd:assignments n="5" list="yes"> </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="stellefelderin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- TODO: if it's reset, only a single argument, no list -->
- <cd:constant type="zuruecksetzten"/>
- <cd:constant type="label"/>
- <cd:constant type="horizontal"/>
- <cd:constant type="vertikal"/>
- <cd:constant type="rahmen"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="nach">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="farbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="ausrichtung">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="nurlesbar"/>
- <cd:constant type="obligatorisch"/>
- <cd:constant type="geschuetzt"/>
- <cd:constant type="sortiert"/>
- <cd:constant type="nichtverfuegbar"/>
- <cd:constant type="versteckt"/>
- <cd:constant type="druckbar"/>
- </cd:parameter>
- <cd:parameter name="klickin">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="klickaus">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="regionin">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="regionaus">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="nachtaste">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="formatieren">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="validieren">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="berechnen">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="feldoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="feldrahmenfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="feldhintergrundfarbe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="stelleumrahmtein" n="2"/>
- </cd:assignments>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="stellefelderin" n="2"/>
- </cd:assignments>
- <cd:assignments n="4" list="yes">
- <cd:inherit name="stellefelderin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupforms" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="setupforms"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="methode">
- <cd:constant type="HTML"/>
- <cd:constant type="FDF"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definierefeldstapel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="stellefelderin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="feldstapel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="stellefelderin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="clip" file="core-trf.tex">
- <cd:sequence>
- <cd:string value="ausschnitt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelleausschnittein" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupclipping" file="core-trf.tex">
- <cd:sequence>
- <cd:string value="stelleausschnittein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="sx">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="linkeroffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="rechterabstand">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="obenoffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="untenoffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="mp">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelegend">
- <cd:sequence>
- <cd:string value="platzierelegende"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplegend">
- <cd:sequence>
- <cd:string value="stellelegendeein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="abstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zwischen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="breite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoehe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="platz">
- <cd:constant type="rechts"/>
- <cd:constant type="unten"/>
- </cd:parameter>
- <cd:parameter name="fliesstext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="setupstrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="ja" default="yes"/>
- <cd:constant type="nein"/>
- <cd:constant type="kap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usetypescriptfile" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="usetypescriptfile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usetypescript" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="usetypescript"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetypeface" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="definetypeface"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="rm"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="mm"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="6" optional="yes">
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="rscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="encoding">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefontfeature" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="definefontfeature"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="no">
- <cd:parameter name="compose">
- <cd:constant type="nein" default="yes"/>
- <cd:constant type="ja"/>
- </cd:parameter>
- <cd:parameter name="mode">
- <cd:constant type="node"/>
- <cd:constant type="base" default="yes"/>
- </cd:parameter>
- <cd:parameter name="tlig">
- <cd:constant type="nein" default="yes"/>
- <cd:constant type="ja"/>
- </cd:parameter>
- <cd:parameter name="trep">
- <cd:constant type="nein" default="yes"/>
- <cd:constant type="ja"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="language">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="..tag.."> <!-- can't use &gt; here, \showsetup gives an error -->
- <cd:constant type="nein" default="yes"/>
- <cd:constant type="ja"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefonthandling" file="hand-ini.mkii">
- <cd:sequence>
- <cd:string value="definefonthandling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name" list="yes"/>
- </cd:keywords>
- <cd:assignments n="3">
- <cd:parameter name="typ">
- <cd:constant type="haengend" default="yes"/>
- <cd:constant type="hz"/>
- <cd:constant type="spatiumausgleich"/>
- <cd:constant type="tag"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="faktor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="min">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="max">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="schritt">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfonthandling" file="hand-ini.mkii">
- <cd:sequence>
- <cd:string value="setupfonthandling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:inherit name="definefonthandling" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- mkii:
-
- <cd:command name="definefontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="defineschriftsynonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="encoding">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="handling">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="mapping">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="definefontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="defineschriftsynonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="fallbacks">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="goodies">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="setupfontsynonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:inherit name="defineschriftsynonym" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mapfontsize" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="mapfontsize"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definedfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definedfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="definiereschrift" n="2"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
-</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkii/cont-fr.xml b/Master/texmf-dist/tex/context/interface/mkii/cont-fr.xml
deleted file mode 100644
index e8873393e76..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkii/cont-fr.xml
+++ /dev/null
@@ -1,10396 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- versions:
-
- comment : user interface definitions of ConTeXt
-
- authors : Hans Hagen, Taco Hoekwater, Patrick Gundlach, Wolfgang Schuster, and others
-
- versions : 2004.11.17 : initial version
- 2006.08.02 : define + resolve
-
--->
-
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context test" language="en" version="2006.08.02">
-
- <!-- there are some more -->
-
- <cd:define name="align">
- <cd:constant type="interieur"/>
- <cd:constant type="exterieur"/>
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="milieu"/>
- <cd:constant type="center"/>
- <cd:constant type="normal"/>
- <cd:constant type="non"/>
- <cd:constant type="oui"/>
- <cd:constant type="large"/>
- <cd:constant type="dernier"/>
- <cd:constant type="r2l"/>
- <cd:constant type="l2r"/>
- </cd:define>
-
- <cd:define name="symalign">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="milieu"/>
- <cd:constant type="center"/>
- </cd:define>
-
- <cd:define name="indenting">
- <cd: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:define name="layout-h">
- <cd:constant type="texte" default="yes"/>
- <cd:constant type="marge"/>
- <cd:constant type="bord"/>
- </cd:define>
-
- <cd:define name="layout-v">
- <cd:constant type="sup"/>
- <cd:constant type="entete"/>
- <cd:constant type="texte" default="yes"/>
- <cd:constant type="pdp"/>
- <cd:constant type="inf"/>
- </cd:define>
-
- <cd:define name="bodyfont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="petit"/>
- <cd:constant type="grand"/>
- </cd:define>
-
- <cd:command name="installlanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="installelangue"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="espacement">
- <cd:constant type="groupe" default="yes"/>
- <cd:constant type="large"/>
- </cd:parameter>
- <cd:parameter name="lefthyphenmin">
- <cd:constant type="cd:number" default="2"/>
- </cd:parameter>
- <cd:parameter name="righthyphenmin">
- <cd:constant type="cd:number" default="2"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="phrasegauche">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="phrasedroite">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="sousphrasegauche">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="sousphrasedroite">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="citergauche">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citerdroite">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citationgauche">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citationdroite">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="leftspeech">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="middlespeech">
- <cd:constant type="cd:command" default=""/>
- </cd:parameter>
- <cd:parameter name="rightspeech">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="limittext">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="date">
- <cd:constant type="cd:text"/> <!-- TODO -->
- </cd:parameter>
- <cd:parameter name="compoundhyphen">
- <cd:constant type="cd:command" default="\compoundhyphen"/>
- </cd:parameter>
- <cd:parameter name="leftcompoundhyphen">
- <cd:constant type="cd:command" default="\compoundhyphen"/>
- </cd:parameter>
- <cd:parameter name="rightcompoundhyphen">
- <cd:constant type="cd:command" default=""/>
- </cd:parameter>
- <cd:parameter name="defaut">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="reglelangue"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="installelangue" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="language" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="langue"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mainlanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="langueprincipale"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="translate" file="lang-lab.tex" category="language">
- <cd:sequence>
- <cd:string value="traduire"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useencoding" file="enco-ini.tex" category="encoding" obsolete="yes"> <!-- engine="pdftex" -->
- <cd:sequence>
- <cd:string value="utiliseencodage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usespecials" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="utilisespecialites"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" 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 n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="reglesortie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontenvironment" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definitenvironnementpolicecorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes"> <!-- it's possible to use 1+2+3, 2+3, what about 1+2? -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="no"> <!-- have to force no, otherwise \showsetup is wrong ! -->
- <cd:constant type="5pt"/> <!-- TODO: maybe <cd:resolve name="bodyfont"/> -->
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="defaut"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:parameter name="texte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scriptscript">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="xx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="d">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="petit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="grand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="espaceinterligne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="em">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbodyfontenvironment" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="regleenvironnementpolicecorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes"> <!-- same as definebodyfontenvironment; you can define the whole commant to inherit, not only parameters-->
- <cd:inherit name="definitenvironnementpolicecorps" n="1"/>
- </cd:keywords>
- <cd:keywords n="2" optional="no">
- <cd:inherit name="definitenvironnementpolicecorps" n="2" optional="no"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="definitenvironnementpolicecorps" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showbodyfontenvironment" file="font-run.tex" category="fonts"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="montreenvironnementpolicecorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="reglepolicecorps" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definitpolicecorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- <cd:constant type="defaut"/> -->
- <cd:resolve name="bodyfont"/> <!-- TODO: check this -->
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="rm" default="yes"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- <cd:constant type="mm"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="tf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sl">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="it">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bs">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mr">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ex">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ma">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mb">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="md">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontDEF" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definitpolicecorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="reglepolicecorps" n="2"/>
- </cd:keywords>
- <cd:keywords n="1">
- <cd:inherit name="reglepolicecorps" n="3"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontREF" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definitpolicecorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="reglepolicecorps" n="1"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="reglepolicecorps" n="2"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showbodyfont" file="font-run.tex" category="fonts"> <!-- visual debugging -->
- <cd:sequence>
- <cd:string value="montrepolicecorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="reglepolicecorps" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbodyfont" file="font-run.tex" category="fonts">
- <cd:sequence>
- <cd:string value="reglepolicecorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- TODO: many missing, maybe also <cd:resolve name="bodyfont"/> -->
- <cd:constant type="cd:name"/>
- <cd: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" category="fonts">
- <cd:sequence>
- <cd:string value="changepolicecorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="regulier"/>
- <cd:constant type="roman"/>
- <cd:constant type="sans"/>
- <cd:constant type="support"/>
- <cd:constant type="sansserif"/>
- <cd:constant type="mono"/>
- <cd:constant type="type"/>
- <cd:constant type="teletype"/>
- <cd:constant type="manuscript"/>
- <cd:constant type="calligraphique"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="petit"/>
- <cd:constant type="grand"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definitpolice"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="reglecouleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolors" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="reglecouleurs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="global"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="toujours"/>
- <cd:constant type="jamais"/>
- </cd:parameter>
- <cd:parameter name="reduction">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="rgb">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="cmyk">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="mpcmyk">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="mpspot">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="facteur">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="couleurtexte">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="c"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/>
- <cd:constant type="k"/>
- <cd:constant type="p"/>
- <cd:constant type="s"/>
- <cd:constant type="non"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="critere">
- <cd:constant type="tout"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="intent">
- <cd:constant type="rien"/>
- <cd:constant type="overprint"/>
- <cd:constant type="knockout"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definitcouleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="r">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="g">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="k">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="s">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="h">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="t">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="p">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="e">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="color" type="environment" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="couleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="color" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="couleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="graycolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="couleurgrise"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showcolor" file="colo-run.tex" category="colors"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="montrecouleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definepalet" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definitpalette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppalet" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="reglepalette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecolorgroup" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definitgroupecouleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="rgb" default="yes"/>
- <cd:constant type="cmyk"/>
- <cd:constant type="gris"/>
- <cd:constant type="s"/>
- </cd:keywords>
- <cd:triplet n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showpalet" file="colo-run.tex" category="colors"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="montrepalette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="horizontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="nom"/>
- <cd:constant type="valeur"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showcolorgroup" file="colo-run.tex" category="colors"> <!-- and debug-->
- <cd:sequence>
- <cd:string value="montregroupecouleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="horizontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="nom"/>
- <cd:constant type="valeur"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comparepalet" file="colo-run.tex" category="colors"> <!-- and debug? -->
- <cd:sequence>
- <cd:string value="comparepalette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comparecolorgroup" file="colo-run.tex" category="colors">
- <cd:sequence>
- <cd:string value="comparegroupecouleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showmakeup" file="supp-vis.tex" category="debug">
- <cd:sequence>
- <cd:string value="montremakeup"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definetype" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="definittype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="regletype" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptype" file="core-ver.tex" category="verbatim"> <!-- TODO -->
- <cd:sequence>
- <cd:string value="regletype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="espace">
- <cd:constant type="actif"/>
- <cd:constant type="desactive" default="yes"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="incline"/>
- <cd:constant type="normal"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="gauche">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="type" file="verb-ini.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="dactylographier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typ" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="typ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tex" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="tex"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <!-- cd:command name="arg" file="core-ver.tex"> command broken
- <cd:sequence>
- <cd:string value="arg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command -->
-
- <cd:command name="definetyping" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="definitdactylo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="regledactylo" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="regledactylo" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptyping" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="regledactylo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="fichier"/>
- <cd:constant type="typing"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="option">
- <cd:constant type="incline"/>
- <cd:constant type="normal"/>
- <cd:constant type="commandes" version="mkiv"/>
- <cd:constant type="couleur"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="texte">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="icommande">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vcommande">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ccommande">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="margepaire">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margepaire">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vide">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="standard"/>
- <cd:constant type="demiligne"/>
- <cd:constant type="ligne"/>
- </cd:parameter>
- <cd:parameter name="escape">
- <cd:constant type="cd:text"/>
- </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="range">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="lignes">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="hyphenated"/>
- </cd:parameter>
- <cd:parameter name="vide">
- <cd:constant type="oui"/>
- <cd:constant type="tout"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="numerotation">
- <cd:constant type="ligne"/>
- <cd:constant type="fichier"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="policecorps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="strip">
- <cd:constant type="non"/>
- <cd:constant type="auto"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typing" type="environment" generated="yes" file="verb-ini.tex"
- category="verbatim">
- <cd:sequence>
- <cd:variable value="typing"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="typefile" file="verb-ini.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="fichierdactylo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="reglenotepdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="conversion">
- <cd:constant type="numeros"/>
- <cd:constant type="caracteres"/>
- <cd:constant type="Caracteres"/>
- <cd:constant type="chiffresromains"/>
- <cd:constant type="Chiffresromains"/>
- </cd:parameter>
- <cd:parameter name="mode">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="page"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="colonnes"/>
- <cd:constant type="premierecolonne"/>
- <cd:constant type="dernierecolonne"/>
- <cd:constant type="haut"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="ligne">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="policecorps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancecolonne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancemarge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="commandenumero">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="commandetexte">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="tolerant"/>
- <cd:constant type="strict"/>
- <cd:constant type="tresstrict"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="styletexte">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleurtexte">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="interaction">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="paragraphe">
- <cd:constant type="oui"/>
- <cd:constant type="non" default="yes"/>
- </cd:parameter>
- <cd:parameter name="facteur">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:inherit name="regleencadre" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootnotedefinition" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="definitnotepdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:inherit name="regledescriptions" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="footnote" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="notepdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="footnotetext" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="textenotepdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="note" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="note"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="localfootnotes" type="environment" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="localfootnotes"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelocalfootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="placenotespdplocales"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="reglenotepdp" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placefootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="placenotespdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="reglenotepdp" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupunderbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="reglesouslignage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- <cd:parameter name="epaisseurligne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="decalageinf">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="decalagesup">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="couleurligne">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="underbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="underbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="underbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="underbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overstrike" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrike"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overstrikes" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrikes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="chiffresromains"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Chiffresromains"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="numbers" file="core-con.tex">
- <cd:sequence>
- <cd:string value="numeros"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="caractere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Caractere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="caracteres"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Caracteres"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mediaeval" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mediaeval"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="month" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mois"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="MONTH" file="core-con.tex">
- <cd:sequence>
- <cd:string value="MOIS"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="weekday" file="core-con.tex">
- <cd:sequence>
- <cd:string value="joursemaine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WEEKDAY" file="core-con.tex">
- <cd:sequence>
- <cd:string value="JOURSEMAINE"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcapitals" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="reglecapitales"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="titre">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="cap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nocap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="nocap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="CAP" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="CAP"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Cap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Caps" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Caps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WORD" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="MOT"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WORDS" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="MOTS"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Word" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Mot"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Words" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Mots"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="stretched" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="etire"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definitsymbole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefiguresymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definitsymbolefigure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="reglefiguresexternes" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="symbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="symbole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="symbolset" type="environment" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="symbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsymbolset" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="reglejeusymboles"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usesymbols" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="utilisesymboles"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showsymbolset" file="symb-run.tex" category="symbols"> <!-- and symbols -->
- <cd:sequence>
- <cd:string value="montrejeusymboles"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineconversion" file="core-con.tex">
- <cd:sequence>
- <cd:string value="definitconversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:command"/>
- <cd: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 n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheadtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="regletextetete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplabeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="reglelabeltexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="headtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="textetete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="labeltexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarginrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="reglemargereglee"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="niveau">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="epaisseurligne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="margereglee"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="margereglee"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplinewidth" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="regleepaisseurligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="regleencadre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/> <!-- defines a command with that name -->
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="hauteur">
- <cd:constant type="adapte"/>
- <cd:constant type="large"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="adapte"/>
- <cd:constant type="large"/>
- <cd:constant type="fixe"/>
- <cd:constant type="local"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="autolargeur">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="force"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="rien"/>
- <cd:constant type="revetement"/>
- <cd:constant type="defaut"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="profondeur"/>
- <cd:constant type="suspend"/>
- <cd:constant type="haut"/>
- <cd:constant type="baha"/>
- <cd:constant type="bas"/>
- <cd:constant type="sup"/>
- <cd:constant type="milieu"/>
- <cd:constant type="inf"/>
- <cd:constant type="maintient"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="rien"/>
- <cd:constant type="vide"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="global"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="inf">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sup">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="cadre">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- <cd:constant type="rien"/>
- <cd:constant type="revetement"/>
- </cd:parameter>
- <cd:parameter name="cadresup">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="cadreinf">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="cadregauche">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="cadredroit">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="decalagecadre">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="profondeurcadre">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="coincadre">
- <cd:constant type="rond"/>
- <cd:constant type="rectangulaire"/>
- </cd:parameter>
- <cd:parameter name="rayoncadre">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="couleurcadre">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="arriereplan">
- <cd:constant type="ecran"/>
- <cd:constant type="couleur"/>
- <cd:constant type="rien"/>
- <cd:constant type="premierplan"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="ecranarriereplan">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="couleurarriereplan">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="decalagearriereplan">
- <cd:constant type="cadre"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="profondeurarriereplan">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="coinarriereplan">
- <cd:constant type="rond"/>
- <cd:constant type="rectangulaire"/>
- </cd:parameter>
- <cd:parameter name="rayonarriereplan">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="profondeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="coin">
- <cd:constant type="rond"/>
- <cd:constant type="rectangulaire"/>
- </cd:parameter>
- <cd:parameter name="rayon">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vide">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="couleurpremierplan">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stylepremierplan">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="epaisseurligne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="framed"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="regleencadre" n="2"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="inframed"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="regleencadre" n="2"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="thinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="traitsfins"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes">
- <cd:inherit name="regletraitsfins" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupthinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="regletraitsfins"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="espaceinterligne">
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="couleurarriereplan">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="profondeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- </cd:parameter>
- <cd:parameter name="epaisseurligne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="arriereplan">
- <cd:constant type="couleur"/>
- </cd:parameter>
- <cd:parameter name="couleurarriereplan">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hairline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="ligneh"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="thinrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="traitfin"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="defineframedtext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="defineframedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="setupframedtexts" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="defineframed"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="setupframedtexts" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupframedtexts" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="setupframedtexts"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="policecorps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="gauche">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interieur">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="correctionligne">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="correctionprofondeur">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="standard"/>
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="milieu"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="composeenalinea">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:inherit name="regleencadre" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framedtext" type="environment" generated="yes" file="core-rul.tex">
- <cd:sequence>
- <cd:variable value="texteencadre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="milieu"/>
- <cd:constant type="rien"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="setupframedtexts" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framedtext" generated="yes" file="core-rul.tex">
- <cd:sequence>
- <cd:variable value="texteencadre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="setupframedtexts" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="background" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="arriereplan"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="background" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="arriereplan"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbackground" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="reglearriereplan"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="decalagegauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="decalagesup">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="decalageinf">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:inherit name="regleencadre" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="remplitlignesreglees"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="regleremplitlignesreglees" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillintext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="remplittexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="regleremplitlignesreglees" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="regleremplitlignesreglees"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="largeur">
- <cd:constant type="adapte"/>
- <cd:constant type="large"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="espaceinterligne">
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- <cd:parameter name="separateur">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="remplitligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="regleremplitligne" n="1"/>
- </cd:assignments>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfillinlines" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="regleremplitligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptextrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="reglelignesreglestexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="dansmarge"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="policecorps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleurligne">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="ligneregleetexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- </cd:keywords>
- <cd:content n="2" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="ligneregleetexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- </cd:keywords>
- <cd:content n="2" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="blackrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lignenoire"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="reglelignesnoires" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="blackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lignesnoires"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:inherit name="reglelignesnoires" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="reglelignesnoires"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension" default="1em"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension" default="1ex"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="profondeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a" default="yes"/>
- <cd:constant type="b"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension" default=".25ex"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number" default="3"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineoverlay" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definitrevetement"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usemodule" file="core-fil.tex"> <!-- TODO -->
- <cd:sequence>
- <cd:string value="utilisemodule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reset" file="core-num.tex">
- <cd:sequence>
- <cd:string value="raz"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!-- <cd:command name="donttest">
- <cd:sequence>
- <cd:string value="sanstest"/>
- </cd:sequence>
-</cd:command> -->
-
- <cd:command name="localenvironment" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="localenvironment"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupsystem" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="reglesysteme"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="resolution">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="fichier">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="repertoire">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aleatoire">
- <cd:constant type="normal"/>
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usedirectory" file="core-job.mkii"> <!-- usepath, todo: more than one file -->
- <cd:sequence>
- <cd:string value="usedirectory"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="raz"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="low" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="bas"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="high" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="haut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="lohi" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="baha"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="bas"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showframe" file="page-run.tex">
- <cd:sequence>
- <cd:string value="montrecadre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- <cd:constant type="marge"/>
- <cd:constant type="bord"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="leftaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="aligneagauche"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="rightaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="aligneadroite"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="midaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="aligneaumilieu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="wordright" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="motdroit"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inmargin" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="dansmarge"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="bas"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inothermargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="dansautremarge"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="bas"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inleft" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="dansgauche"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="bas"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inright" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="dansdroite"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="bas"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ininner" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="ininner"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="bas"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inouter" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inouter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="bas"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="column" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="colonne"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showstruts" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="montrestruts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showsetups" file="page-run.tex">
- <cd:sequence>
- <cd:string value="montrereglages"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showlayout" file="page-run.tex">
- <cd:sequence>
- <cd:string value="montredisposition"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="margintext" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="textemarge"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="bas"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarginblocks" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="regleblocmarge"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="emplacement">
- <cd:constant type="dansmarge"/>
- <cd:constant type="gauche"/>
- <cd:constant type="milieu"/>
- <cd:constant type="droite"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="sup">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inf">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="gauche">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginblock" type="environment" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="marginblock"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="part" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="part"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="title" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="title"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="chapter" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="chapter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="section" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="section"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="appendix" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="appendix"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="in" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="dans"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:content n="2" interactive="yes"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="at" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="a"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:content n="2" interactive="yes"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="about" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="concernant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:reference n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="somewhere" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="qqpart"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="atpage" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="alapage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ref" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="ref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="t"/>
- <cd:constant type="p"/>
- <cd:constant type="r"/>
- <cd:constant type="s"/>
- <cd:constant type="e"/>
- </cd:keywords>
- <cd:reference n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textreference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="referencetexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="pagereference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="referencepage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="reference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usereferences" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="utilisereferences"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="definitreference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereferenceformat" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="definitformatreference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="gauche">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="texte">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="etiquette">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hl" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="hl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="vl" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="vl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="godown" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="vaenbas"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="whitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="espaceblanc"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="nowhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="sansespaceblanc"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="crlf" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="crlf"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="space" file="syst-pln.tex">
- <cd:sequence>
- <cd:string value="espace"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="fixedspaces" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="espacesfixes"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="emptylines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="emptylines"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nospace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="sansespace"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="packed" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="groupe"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupdescriptions" file="core-des.tex">
- <cd:sequence>
- <cd:string value="regledescriptions"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="style">
- <cd:resolve name="style"/> <!-- TODO: style=normal -->
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="adapte"/>
- <cd:constant type="large"/>
- <cd:constant type="cd:dimension" default="8em"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="echantillon">
- <cd:constant type="cd:text" default=""/>
- </cd:parameter>
- <cd:parameter name="texte">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closecommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="closesymbol">
- <cd:constant type="cd:text" default=""/>
- </cd:parameter>
- <cd:parameter name="titleleft">
- <cd:constant type="cd:text" default="("/>
- </cd:parameter>
- <cd:parameter name="titleright">
- <cd:constant type="cd:text" default=")"/>
- </cd:parameter>
- <cd:parameter name="distancetitre">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="styletitre">
- <cd:resolve name="style"/> <!-- TODO: default=bold -->
- </cd:parameter>
- <cd:parameter name="couleurtitre">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="standard"/>
- <cd:constant type="oui"/>
- <cd:constant type="non" default="yes"/> <!-- TODO: this is default; conflicting syntax? -->
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="gauche" default="yes"/>
- <cd:constant type="droite"/>
- <cd:constant type="sup"/>
- <cd:constant type="serried"/>
- <cd:constant type="dansmarge"/>
- <cd:constant type="dansgauche"/>
- <cd:constant type="dansdroit"/>
- <cd:constant type="suspend"/>
- </cd:parameter>
- <cd:parameter name="styletete">
- <cd:resolve name="style"/> <!-- TODO: default=bold -->
- </cd:parameter>
- <cd:parameter name="couleurtete">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="commandetete">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="suspend">
- <cd:constant type="adapte"/>
- <cd:constant type="large"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="indentesuivant">
- <cd:resolve name="indentnext"/> <!-- default=yes -->
- </cd:parameter>
- <cd:parameter name="composeenalinea">
- <cd:resolve name="indenting"/> <!-- default=never -->
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="affichage">
- <cd:constant type="oui" default="yes"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupenumerations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="regleenumerations"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="regledescriptions" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineenumeration" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definitenumeration"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="regleenumerations" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="enumeration" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="enumeration"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing n="1" interactive="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="enumeration" type="environment" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="enumeration"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definedescription" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definitdescription"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="regledescriptions" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="description" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="description"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="description" type="environment" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="description"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupindentedtext" file="strc-des.tex">
- <cd:sequence>
- <cd:string value="setupindentedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="styletete">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="adapte"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="texte">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="echantillon">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separateur">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineindentedtext" file="strc-des.tex">
- <cd:sequence>
- <cd:string value="defineindentedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="setupindentedtext" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="indentation" generated="yes" file="core-spa.tex">
- <cd:sequence>
- <cd:variable value="indentation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelabel" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definitetiquette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="texte">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="dansmarge"/>
- <cd:constant type="danstexte"/>
- </cd:parameter>
- <cd:parameter name="mode">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="blockway">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="styletete">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleurtete">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labeling" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="labeling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolumns" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="reglecolonnes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes"> <!-- no idea why it is optional -->
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nsup">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ligne">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/> <!-- default and unknown missing -->
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="tresstrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="trestolerant"/>
- <cd:constant type="etire"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="equilibre">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:constant type="texte"/>
- <!-- cd:constant type="yes"/ -->
- <!-- cd:constant type="no"/ -->
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="vide">
- <cd:constant type="fixe"/>
- <cd:constant type="demiligne"/>
- <cd:constant type="ligne"/>
- <cd:constant type="flexible"/>
- <cd:constant type="grand"/>
- <cd:constant type="moyen"/>
- <cd:constant type="petit"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="arriereplan"/>
- </cd:parameter>
- <cd:parameter name="direction">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- </cd:parameter>
- <cd:inherit name="regleencadre" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="columns" type="environment" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="columns"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="reglecolonnes" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="definittexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="entete"/>
- <cd:constant type="pdp"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheader" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="regleentete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text" default="yes"/>
- <cd:constant type="marge"/>
- <cd:constant type="bord"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="normal"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="demarre"/>
- <cd:constant type="vide"/>
- <cd:constant type="haut"/>
- <cd:constant type="rien"/>
- <cd:constant type="sansmarquage"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="leftstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="styledroit">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="largeurgauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeurdroite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfooter" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="reglepdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="regleentete" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="regleentete" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="regletexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="regleentete" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="regleentete" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptop" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="reglesup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="regleentete" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="regleentete" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbottom" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="regleinf"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="regleentete" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="regleentete" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="noheaderandfooterlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="sanslignesenteteetpdp"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="notopandbottomlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="sanslignessupetinf"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupheadertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="regletextesentete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="regletextespdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptexttexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="regletextestexte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptoptexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="regletextessup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbottomtexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="regletextesinf"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="settextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="settext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="resettextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="resettextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="lefttext"/>
- <cd:constant type="middletext"/>
- <cd:constant type="righttext"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="definitmarquage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplemarking" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="couplemarquage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="decouplemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="decouplemarquage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="resetmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="razmarquage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="reglemarquage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="separateur">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="marquage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="getmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="obtientmarquage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="premier"/>
- <cd:constant type="dernier"/>
- <cd:constant type="precedent"/>
- <cd:constant type="lesdeux"/>
- <cd:constant type="tout"/>
- <cd:constant type="courant"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="sansmarquage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplayout" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="regledisposition"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adapte"/>
- <cd:constant type="milieu"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adapte"/>
- <cd:constant type="milieu"/>
- </cd:parameter>
- <cd:parameter name="retour">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="espacesup">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margegauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margedroite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="entete">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pdp">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sup">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inf">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bordgauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="borddroit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanceentete">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dsitancepdp">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancesup">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanceinf">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancemargegauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancemargedroite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancebordgauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanceborddroit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="horoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="veroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="marquage">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- <cd:constant type="couleur"/>
- <cd:constant type="ecran"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="page"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="milieu"/>
- <cd:constant type="droite"/>
- <cd:constant type="inf"/>
- <cd:constant type="sup"/>
- <cd:constant type="recto"/>
- <cd:constant type="rectoverso"/>
- </cd:parameter>
- <cd:parameter name="echelle">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="lignes">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="colonnes">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distancecolonne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="grille">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="espaceinf">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cutspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancetexte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeurtexte">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="margetexte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="clipoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="papier">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="adaptlayout" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="adaptedisposition"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="lignes">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showgrid" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="montregrille"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="raz"/>
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- <cd:constant type="rien"/>
- <cd:constant type="tout"/>
- <cd:constant type="lignes"/>
- <cd:constant type="cadre"/>
- <cd:constant type="sansnumero"/>
- <cd:constant type="droite"/>
- <cd:constant type="gauche"/>
- <cd:constant type="exterieur"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="placesurgrille"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="deplacesurgrille" n="1"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="moveongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="deplacesurgrille"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="standard" default="yes"/> <!-- also 'normal', 'yes' and 'force' -->
- <cd:constant type="sup"/>
- <cd:constant type="lesdeux"/>
- <cd:constant type="inf"/>
- <cd:constant type="-top"/>
- <cd:constant type="-both"/>
- <cd:constant type="-bottom"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="haut"/>
- <cd:constant type="milieu"/>
- <cd:constant type="bas"/>
- <cd:constant type="page"/>
- <cd:constant type="large"/>
- <cd:constant type="adapte"/>
- <cd:constant type="profondeur"/>
- <cd:constant type="ligne"/>
- <cd:constant type="raz"/>
- <cd:constant type="rien"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="project" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="projet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="environment" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="environement"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="product" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="produit"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="component" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="composant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomorefiles" file="core-job.tex">
- <cd:sequence>
- <cd:string value="pasplusdefichiers"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupinterlinespace" variant="1" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="regleespacementinterligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="raz"/>
- <cd:constant type="petit" default="yes"/>
- <cd:constant type="moyen"/>
- <cd:constant type="auto"/>
- <cd:constant type="grand"/>
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinterlinespace2" variant="2" file="core-spa.tex">
- <!-- attached a 2 to make this definition usable with \showsetup -->
- <cd:sequence>
- <cd:string value="regleespacementinterligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="hauteur">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="profondeur">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ligne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sup">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="inf">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppagenumbering" file="page-num.tex">
- <cd:sequence>
- <cd:string value="reglenumerotationpage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="recto"/>
- <cd:constant type="rectoverso"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="entete"/>
- <cd:constant type="pdp"/>
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="milieu"/>
- <cd:constant type="marge"/>
- <cd:constant type="bordmarge"/>
- <cd:constant type="dansgauche"/>
- <cd:constant type="dansdroit"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="numeros"/>
- <cd:constant type="caracteres"/>
- <cd:constant type="Caracteres"/>
- <cd:constant type="chiffresromains"/>
- <cd:constant type="Chiffresromains"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="gauche">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="mode">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="texte">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="separateurnumbero">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="separateurtexte">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="separateur">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:constant type="dernier"/>
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupnarrower" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="reglecompoetroite"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="gauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="milieu">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="define" file="syst-ext.tex">
- <cd:sequence>
- <cd:string value="definit"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:csname n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usecommands" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="utilisecommandes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definestartstop" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="definitdemarrestoppe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="commandes">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheads" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="regletetes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="numerosection">
- <cd:constant type="oui"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="normal"/>
- <cd:constant type="marge"/>
- <cd:constant type="milieu"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="paragraphe"/>
- </cd:parameter>
- <cd:parameter name="separateur">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="taquet">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="alignementtitre">
- <cd:constant type="oui"/>
- <cd:constant type="flottant"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="tresstrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="trestolerant"/>
- <cd:constant type="etire"/>
- </cd:parameter>
- <cd:parameter name="indentesuivant">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcaptions" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="regleintitules"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="emplacement">
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- <cd:constant type="rien"/>
- <cd:constant type="haut"/>
- <cd:constant type="bas"/>
- <cd:constant type="milieu"/>
- <cd:constant type="gauche"/>
- <cd:constant type="milieu"/>
- <cd:constant type="droite"/>
- <cd:constant type="lefthanging"/>
- <cd:constant type="righthanging"/>
- <cd:constant type="margegauche"/>
- <cd:constant type="margedroite"/>
- <cd:constant type="margeinterieure"/>
- <cd:constant type="margeexterieure"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="adapte"/>
- <cd:constant type="large"/>
- <cd:constant type="max"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeurmin">
- <cd:constant type="adapte"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="styletete">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="numero">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="numeros"/>
- <cd:constant type="caracteres"/>
- <cd:constant type="Caracteres"/>
- <cd:constant type="chiffresromains"/>
- <cd:constant type="Chiffresromains"/>
- </cd:parameter>
- <cd:parameter name="mode">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="separateur">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="taquet">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcaption" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="regleintitule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="regleintitules" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloats" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="regleflottants"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="milieu"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="adapte"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="espaceavant">
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="espaceapres">
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="espacelateralavant">
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="espacelateralapres">
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="indentesuivant">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="nsup">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ninf">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nlignes">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="defaut">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="0"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- <cd:parameter name="distancemargegauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancemargedroite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sidealign">
- <cd:constant type="normal"/>
- <cd:constant type="ligne"/>
- </cd:parameter>
- <cd:parameter name="numerotation">
- <cd:constant type="oui"/>
- <cd:constant type="nonverifie"/>
- </cd:parameter>
- <cd:inherit name="regleencadre" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloatsplitting" file="core-tsp.tex">
- <cd:sequence>
- <cd:string value="regleseparationflottant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="conversion">
- <cd:constant type="numeros"/>
- <cd:constant type="caracteres"/>
- <cd:constant type="Caracteres"/>
- <cd:constant type="chiffresromains"/>
- <cd:constant type="Chiffresromains"/>
- </cd:parameter>
- <cd:parameter name="lignes">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="splitfloat" file="core-tsp.tex">
- <cd:sequence>
- <cd:string value="separeflottant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="regleseparationflottant" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupoppositeplacing" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="regleplacementopposition"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="opposite" type="environment" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="opposite"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setuphyphenmark" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="reglemarquagehyphenation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="signe">
- <cd:constant type="--"/>
- <cd:constant type="---"/>
- <cd:constant type="-"/>
- <cd:constant type="~"/>
- <cd:constant type="("/>
- <cd:constant type=")"/>
- <cd:constant type="="/>
- <cd:constant type="/"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppositioning" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="reglepositionnement"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="revetement"/>
- </cd:parameter>
- <cd:parameter name="unite">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="facteur">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="echelle">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="xstep">
- <cd:constant type="absolute"/>
- <cd:constant type="relatif"/>
- </cd:parameter>
- <cd:parameter name="ystep">
- <cd:constant type="absolute"/>
- <cd:constant type="relatif"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="positioning" type="environment" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="positioning"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="grid" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="grille"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xstep">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ystep">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="facteur">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="echelle">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="unite">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="milieu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="page" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="page"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="oui" default="yes"/>
- <cd:constant type="makeup"/>
- <cd:constant type="non"/>
- <cd:constant type="preference"/>
- <cd:constant type="grandepreference"/>
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="desactiver"/>
- <cd:constant type="dernier"/>
- <cd:constant type="quadruple"/>
- <cd:constant type="paire"/>
- <cd:constant type="impair"/>
- <cd:constant type="vide"/>
- <cd:constant type="vide"/>
- <cd:constant type="raz"/>
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupreferencing" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="reglereferencage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="prefixe">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interaction">
- <cd:constant type="etiquette"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="tout"/>
- <cd:constant type="symbole"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="gauche">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="conversionfichier">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="petit"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- <cd:parameter name="separateur">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autofile">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="page"/>
- </cd:parameter>
- <cd:parameter name="global">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="export">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupurl" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="regleurl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="alternativeurl">
- <cd:constant type="rien"/>
- <cd:constant type="lesdeux"/>
- <cd:constant type="avant"/>
- <cd:constant type="apres"/>
- </cd:parameter>
- <cd:parameter name="espaceurl">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetoreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="ecritdanslistereference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="placelistereference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definitlistereference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="reglelistereference" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="reglelistereference"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="critere">
- <cd:constant type="cd:section"/>
- <cd:constant type="local"/>
- <cd:constant type="precedent"/>
- <cd:constant type="tout"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="ecritdansliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="emplacement">
- <cd:constant type="ici"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writebetweenlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="ecritentreliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="emplacement">
- <cd:constant type="ici"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="sansliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="listsymbol" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="listesymbole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="placeliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="regleliste" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="determinelistcharacteristics" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="determinecaracteristiqueliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="regleliste" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="placelisteinmbriquee"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="reglelisteimbriquee" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definitliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes"> <!-- inherits from -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="regleliste" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="regleliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="..."/>
- <cd:constant type="rien"/>
- <cd:constant type="commande"/>
- </cd:parameter>
- <cd:parameter name="couplage">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="critere">
- <cd:constant type="cd:section"/>
- <cd:constant type="local"/>
- <cd:constant type="precedent"/>
- <cd:constant type="courant"/>
- <cd:constant type="ici"/>
- <cd:constant type="intro"/>
- <cd:constant type="tout"/>
- </cd:parameter>
- <cd:parameter name="extras">
- <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="numerosection"/>
- <cd:constant type="texte"/>
- <cd:constant type="numeropage"/>
- <cd:constant type="tout"/>
- <cd:constant type="rien"/>
- </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:parameter name="order">
- <cd:constant type="commande"/>
- <cd:constant type="tout"/>
- <cd:constant type="normal"/>
- </cd:parameter>
- <cd:inherit name="regleencadre" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplistalternative" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setuplistalternative"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="no">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <!-- cd:constant type="cd:name"/ -->
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="commande">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="etire">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definitlisteimbriquee"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:list"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="reglelisteimbriquee" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="reglelisteimbriquee"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="niveau">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="4"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="courant"/>
- </cd:parameter>
- <cd:inherit name="regleliste" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="reglelisteimbriquee" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completecombinedlist" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="complete"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="reglelisteimbriquee" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupnumbering" file="core-num.tex">
- <cd:sequence>
- <cd:string value="reglenumerotation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="mode">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupformulas" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="regleformules"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- </cd:parameter>
- <cd:parameter name="gauche">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="milieu"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="milieu"/>
- <cd:constant type="center"/>
- </cd:parameter>
- <cd:parameter name="margegauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margedroite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="indentesuivant">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="espaceavant">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separateur">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="numeros"/>
- <cd:constant type="caracteres"/>
- <cd:constant type="Caracteres"/>
- <cd:constant type="chiffresromains"/>
- <cd:constant type="Chiffresromains"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="publication" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="publication"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppublications" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="reglepublications"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="apa"/>
- <cd:constant type="normal"/>
- </cd:parameter>
- <cd:inherit name="regleenumerations" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="reglelignes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="composeenalinea">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="espace">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="groupe"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="lines" type="environment">
- <cd:sequence>
- <cd:string value="lines"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupparagraphnumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="reglenumerotationparagraphe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="raz"/>
- <cd:constant type="ligne"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplinenumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="reglenumerotationligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="conversion">
- <cd:constant type="numeros"/>
- <cd:constant type="caracteres"/>
- <cd:constant type="Caracteres"/>
- <cd:constant type="chiffresromains"/>
- <cd:constant type="Chiffresromains"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="demarre">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="pas">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="milieu"/>
- <cd:constant type="gauche"/>
- <cd:constant type="marge"/>
- <cd:constant type="dansmarge"/>
- <cd:constant type="dansgauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="dansdroit"/>
- <cd:constant type="interieur"/>
- <cd:constant type="exterieur"/>
- <cd:constant type="texte"/>
- <cd:constant type="begin"/>
- <cd:constant type="end"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prefixe">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="referencing">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="linenumbering" type="environment" file="page-lin.tex"> <!-- mkii/mkiv -->
- <cd:sequence>
- <cd:string value="linenumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="continue"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="line" type="environment">
- <cd:sequence>
- <cd:string value="line"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="someline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="uneligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="alaligne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinmargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="regledansmarge"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="lesdeux"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="ligne">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separateur">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stack">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:inherit name="regleencadre" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="reglenumeropage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="numero">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="maintient"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsubpagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="reglesousnumeropage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="mode">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="definitvide"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="normal" default="yes"/>
- <cd:constant type="defaut"/>
- <cd:constant type="standard"/>
- <cd:constant type="ligne"/>
- <cd:constant type="demiligne"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="grand"/>
- <cd:constant type="moyen"/>
- <cd:constant type="petit"/>
- <cd:constant type="fixe"/>
- <cd:constant type="flexible"/>
- <cd:constant type="global"/>
- <cd:constant type="inconnu"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="definitvide"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="definitvide" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definepapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="definittaillepapier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="echelle">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppaper" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="reglepapier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="papier">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="espacesup">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="retour">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="max"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- <cd:parameter name="methode">
- <cd:constant type="normal"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="regletaillepapier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="CD"/>
- <cd:constant type="cd:name"/>
- <cd:constant type="paysage"/>
- <cd:constant type="reflete"/>
- <cd:constant type="tourne"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="negatif"/>
- <cd:inherit name="regletaillepapier" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuparranging" file="page-imp.tex">
- <cd:sequence>
- <cd:string value="reglearrangement"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="desactiver"/>
- <cd:constant type="2*16"/>
- <cd:constant type="2*8"/>
- <cd:constant type="2*4"/>
- <cd:constant type="2*2"/>
- <cd:constant type="2**2"/>
- <cd:constant type="2*2*4"/>
- <cd:constant type="2*4*2"/>
- <cd:constant type="2UP"/>
- <cd:constant type="2DOWN"/>
- <cd:constant type="2SIDE"/>
- <cd:constant type="2TOP"/>
- <cd:constant type="reflete"/>
- <cd:constant type="tourne"/>
- <cd:constant type="rectoverso"/>
- <cd:constant type="negatif"/>
- <cd:constant type="arriereplan"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showprint" file="page-run.tex"> <!-- page-lay.tex -->
- <cd:sequence>
- <cd:string value="montreedition"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:inherit name="regletaillepapier" n="1"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:inherit name="regletaillepapier" n="2"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="regledisposition" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelogo" file="page-log.tex">
- <cd:sequence>
- <cd:string value="definitlogo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="sup"/>
- <cd:constant type="entete"/>
- <cd:constant type="pdp"/>
- <cd:constant type="inf"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="rien"/>
- <cd:constant type="page"/>
- <cd:constant type="bordgauche"/>
- <cd:constant type="margegauche"/>
- <cd:constant type="gauche"/>
- <cd:constant type="milieu"/>
- <cd:constant type="droite"/>
- <cd:constant type="margedroite"/>
- <cd:constant type="borddroit"/>
- </cd:keywords>
- <cd:assignments n="4" list="yes">
- <cd:parameter name="commande">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelogos" file="page-log.tex">
- <cd:sequence>
- <cd:string value="placelogos"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupwhitespace">
- <cd:sequence>
- <cd:string value="regleespaceblanc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="rien" default="yes"/>
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="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 n="1" list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definitblocsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="regleblocsection" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="regleblocsection" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="regleblocsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="numero">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:constant type="oui"/>
- <cd:constant type="droite"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definitsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="reglesection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="conversion">
- <cd:constant type="numeros"/>
- <cd:constant type="caracteres"/>
- <cd:constant type="Caracteres"/>
- <cd:constant type="chiffresromains"/>
- <cd:constant type="Chiffresromains"/>
- </cd:parameter>
- <cd:parameter name="numeroprecedent">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuphead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="regletete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="styletexte">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylenumero">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="couleurtexte">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="couleurnumero">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="numero">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="numeroproprio">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="oui"/>
- </cd:parameter>
- <cd:parameter name="continue">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="entete">
- <cd:constant type="rien"/>
- <cd:constant type="vide"/>
- <cd:constant type="haut"/>
- <cd:constant type="sansmarquage"/>
- </cd:parameter>
- <cd:parameter name="texte">
- <cd:constant type="rien"/>
- <cd:constant type="vide"/>
- <cd:constant type="haut"/>
- <cd:constant type="sansmarquage"/>
- </cd:parameter>
- <cd:parameter name="pdp">
- <cd:constant type="rien"/>
- <cd:constant type="vide"/>
- <cd:constant type="haut"/>
- <cd:constant type="sansmarquage"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="normal"/>
- <cd:constant type="dansmarge"/>
- <cd:constant type="milieu"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="suspend">
- <cd:constant type="rien"/>
- <cd:constant type="large"/>
- <cd:constant type="adapte"/>
- <cd:constant type="ligne"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="commandenumero">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="commandetexte">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deepnumbercommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="prefixe">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="placetete">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="vide"/>
- </cd:parameter>
- <cd:parameter name="incrementenumero">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="cd:list"/>
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="raznumero">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="fichier">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="commande"/>
- </cd:parameter>
- <cd:parameter name="textemarge">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="interaction">
- <cd:constant type="liste"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:inherit name="regletetes" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="reglenumerotete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:number"/>
- <cd:constant type="+cd:number"/>
- <cd:constant type="-cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="headnumber">
- <cd:sequence>
- <cd:string value="numerotete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="determineheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="determinenumerotete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="currentheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="numerotetecourant"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="nextsection" generated="yes" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="suivant"/>
- <cd:variable value="section"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definehead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definittete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!--
-
- <cd:feature name="itemgroups" file="strc-itm">
-
- <cd:description language="fr"> </cd:description>
-
- -->
-
- <cd:command name="defineitemgroup" file="strc-itm">
- <cd:sequence>
- <cd:string value="defineitemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupitemgroup" file="strc-itm">
- <!-- we mis a few experimental keys here, like alignsymbol and indentation -->
- <cd:sequence>
- <cd:string value="setupitemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="chaque"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes" list="yes">
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="large"/>
- <cd:constant type="serried"/>
- <cd:constant type="groupe"/>
- <cd:constant type="degroupe"/>
- <cd:constant type="sansblanc"/>
- <cd:constant type="avant"/>
- <cd:constant type="apres"/>
- <cd:constant type="stopper"/>
- <cd:constant type="joinedup"/>
- <cd:constant type="alamarge"/>
- <cd:constant type="dansmarge"/>
- <cd:constant type="autointro"/>
- <cd:constant type="perte"/>
- <cd:constant type="repete"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="paragraphe"/>
- <cd:constant type="danstexte"/>
- <cd:constant type="aleatoire"/>
- <cd:constant type="inverse"/>
- </cd:keywords>
- <cd:assignments n="4" optional="yes" list="yes">
- <cd:parameter name="marge">
- <cd:constant type="non"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margegauche">
- <cd:constant type="non"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margedroite">
- <cd:constant type="non"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pas">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="facteur">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="elements">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="demarre">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="gauche">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="avanttete">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="aprestete">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="styletete">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylemarquage">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylesym">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="taquet">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="symbole">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="symalignement">
- <cd:resolve name="symalign"/>
- </cd:parameter>
- <cd:parameter name="indentesuivant">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="distancetexte">
- <!-- maybe resolve here too -->
- <cd:constant type="rien"/>
- <cd:constant type="grand"/>
- <cd:constant type="moyen"/>
- <cd:constant type="petit"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="itemgroup" type="environment" generated="yes" file="strc-itm">
- <cd:sequence>
- <cd:variable value="itemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="a"/>
- <cd:constant type="A"/>
- <cd:constant type="KA"/>
- <cd:constant type="n"/>
- <cd:constant type="N"/>
- <cd:constant type="m"/>
- <cd:constant type="r"/>
- <cd:constant type="R"/>
- <cd:constant type="KR"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="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 n="3" optional="yes" list="yes">
- <cd:inherit name="setupitemgroup" n="4"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="item" environment="yes" shortcut="yes" file="strc-itm">
- <cd:sequence>
- <cd:string value="element"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <!--
- <cd:command name="item" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="element"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
- -->
-
- <cd:command name="but">
- <cd:sequence>
- <cd:string value="but"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="exclusive"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="its">
- <cd:sequence>
- <cd:string value="el"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ran">
- <cd:sequence>
- <cd:string value="ran"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="head">
- <cd:sequence>
- <cd:string value="tete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mar">
- <cd:sequence>
- <cd:string value="mar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sub">
- <cd:sequence>
- <cd:string value="sub"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sym" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="sym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nop">
- <cd:sequence>
- <cd:string value="nop"/>
- </cd:sequence>
- </cd:command>
-
- <!-- </cd:feature> -->
-
- <cd:command name="defineregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="definitregistre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="regleregistre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="equilibre">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylepage">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="styletexte">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="indicateur">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="couplage">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="critere">
- <cd:constant type="cd:section"/>
- <cd:constant type="local"/>
- <cd:constant type="tout"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="symbole">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="interaction">
- <cd:constant type="numeropage"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="commande"/>
- </cd:parameter>
- <cd:parameter name="referencing">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="milieu"/>
- <cd:constant type="droite"/>
- </cd:parameter>
- <cd:parameter name="largeurmax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="referenceinconnue">
- <cd:constant type="vide"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="A"/>
- <cd:constant type="B"/>
- </cd:parameter>
- <cd:parameter name="prefixe">
- <cd:constant type="lesdeux"/>
- <cd:constant type="premier"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="compress">
- <cd:constant type="non"/>
- <cd:constant type="oui"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="register" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:variable value="registre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="startregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="demarre"/>
- <cd:variable value="registre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetoregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="ecritregistre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupledregister" generated="yes">
- <cd:sequence>
- <cd:string value="couple"/>
- <cd:variable value="registre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupleregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="coupleregistre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeregister" variant="1" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="placeregistre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="regleregistre" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="seeregister" generated="yes">
- <cd:sequence>
- <cd:string value="voit"/>
- <cd:variable value="registre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:index n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completeregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="complete"/>
- <cd:variable value="registre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
- <cd:inherit name="regleregistre" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="registre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
- <cd:inherit name="regleregistre" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definitsynonymes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="reglesynonymes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="styletexte">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stylesynonyme">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="sup"/>
- <cd:constant type="serried"/>
- <cd:constant type="dansmarge"/>
- <cd:constant type="dansgauche"/>
- <cd:constant type="dansdroit"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="critere">
- <cd:constant type="tout"/>
- <cd:constant type="used"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="commande"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synonym" generated="yes">
- <cd:sequence>
- <cd:variable value="synonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="loadsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="charge"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definesorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definittri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="regletri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="critere">
- <cd:constant type="tout"/>
- <cd:constant type="used"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="expansion">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="commande"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sort" generated="yes">
- <cd:sequence>
- <cd:variable value="sort"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="loadsorts" generated="yes">
- <cd:sequence>
- <cd:string value="charge"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definemakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="definitmakeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="reglemakeup" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="makeup" type="environment">
- <cd:sequence>
- <cd:string value="makeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="reglemakeup" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="reglemakeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:constant type="gauche"/>
- <cd:constant type="oui"/>
- <cd:constant type="droite"/>
- </cd:parameter>
- <cd:parameter name="commandes">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rectoverso">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="vide"/>
- </cd:parameter>
- <cd:parameter name="etatentete">
- <cd:constant type="normal"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="demarre"/>
- <cd:constant type="vide"/>
- <cd:constant type="rien"/>
- <cd:constant type="sansmarquage"/>
- </cd:parameter>
- <cd:parameter name="etatpdp">
- <cd:constant type="normal"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="demarre"/>
- <cd:constant type="vide"/>
- <cd:constant type="rien"/>
- <cd:constant type="sansmarquage"/>
- </cd:parameter>
- <cd:parameter name="etattexte">
- <cd:constant type="normal"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="demarre"/>
- <cd:constant type="vide"/>
- <cd:constant type="rien"/>
- <cd:constant type="sansmarquage"/>
- </cd:parameter>
- <cd:parameter name="etatsup">
- <cd:constant type="stoppe"/>
- <cd:constant type="demarre"/>
- </cd:parameter>
- <cd:parameter name="etatinf">
- <cd:constant type="stoppe"/>
- <cd:constant type="demarre"/>
- </cd:parameter>
- <cd:parameter name="etatpage">
- <cd:constant type="stoppe"/>
- <cd:constant type="demarre"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="namemakeup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="nom"/>
- <cd:string value="makeup"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="version">
- <cd:sequence>
- <cd:string value="version"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="final" default="yes"/>
- <cd:constant type="concept"/>
- <cd:constant type="temporaire"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="currentdate">
- <cd:sequence>
- <cd:string value="datecourante"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:inherit name="date" n="2"/> <!-- or vice versa :) -->
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="date" file="core-con.tex">
- <cd:sequence>
- <cd:string value="date"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes"> <!-- if not given, current date is used -->
- <cd:parameter name="d">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="jour"/>
- <cd:constant type="mois"/>
- <cd:constant type="annee"/>
- <cd:constant type="joursemaine"/>
- <cd:constant type="d"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/> <!-- also j -->
- <cd:constant type="w"/>
- <cd:constant type="dd"/>
- <cd:constant type="mm"/>
- <cd:constant type="yy"/> <!-- also jj -->
- <cd:constant type="espace"/>
- <cd:constant type="--"/>
- <cd:constant type="day+"/>
- <cd:constant type="d+"/>
- <cd:constant type="dd+"/>
- <cd:constant type="referral"/>
- <cd:constant type="cd:text"/> <!-- any other text -->
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="referraldate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="daterecommandation"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="indenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="composeenalinea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="noindenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="sansalinea"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="blank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="vide"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand" default="yes"/>
- <cd:constant type="sansblanc"/>
- <cd:constant type="retour"/>
- <cd:constant type="blanc"/>
- <cd:constant type="desactiver"/>
- <cd:constant type="force"/>
- <cd:constant type="raz"/>
- <cd:constant type="ligne"/>
- <cd:constant type="demiligne"/>
- <cd:constant type="cd:formula"/>
- <cd:constant type="fixe"/>
- <cd:constant type="flexible"/>
- <cd:constant type="rien"/>
- <cd:constant type="toujours"/>
- <cd:constant type="exterieur"/>
- <cd:constant type="joinedup"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="packed" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="groupe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="vide"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="unpacked" type="environment">
- <cd:sequence>
- <cd:string value="unpacked"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="linecorrection" type="environment">
- <cd:sequence>
- <cd:string value="linecorrection"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="correctwhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="corrigeespaceblanc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="postponing" type="environment">
- <cd:sequence>
- <cd:string value="postponing"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="local" type="environment">
- <cd:sequence>
- <cd:string value="local"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="narrower" type="environment">
- <cd:sequence>
- <cd:string value="narrower"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="milieu" default="yes"/>
- <cd:constant type="droite"/>
- <cd:constant type="-left"/>
- <cd:constant type="-middle"/>
- <cd:constant type="-right"/>
- <cd:constant type="-none"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hiding" type="environment">
- <cd:sequence>
- <cd:string value="hiding"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupalign" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="reglealignement"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="largeur"/>
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="milieu"/>
- <cd:constant type="interieur"/>
- <cd:constant type="exterieur"/>
- <cd:constant type="ample"/>
- <cd:constant type="large"/>
- <cd:constant type="hauteur"/>
- <cd:constant type="inf"/>
- <cd:constant type="ligne"/>
- <cd:constant type="raz"/>
- <cd:constant type="suspend"/>
- <cd:constant type="nonsuspendu"/>
- <cd:constant type="hyphenated"/>
- <cd:constant type="nothyphenated"/>
- <cd:constant type="lesshyphenation"/>
- <cd:constant type="morehyphenation"/>
- <cd:constant type="nouveau"/>
- <cd:constant type="old"/>
- <cd:constant type="normal"/>
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="flushouter"/>
- <cd:constant type="flushinner"/>
- <cd:constant type="center"/>
- <cd:constant type="hz"/>
- <cd:constant type="nohz"/>
- <cd:constant type="espacement"/>
- <cd:constant type="sansespacement"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="trestolerant"/>
- <cd:constant type="etire"/>
- <cd:constant type="extremestretch"/>
- <cd:constant type="lefttoright"/>
- <cd:constant type="righttoleft"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
-
- <cd:command name="alignment" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="alignment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="reglealignement" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupspacing">
- <cd:sequence>
- <cd:string value="regleespacement"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="large"/>
- <cd:constant type="groupe"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptolerance" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="regletolerance"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="horizontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="etire"/>
- <cd:constant type="espace"/>
- <cd:constant type="tresstrict" default="yes"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="trestolerant"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!-- cd:command name="pagetype" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="pagetype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command -->
-
- <cd:command name="processpage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="traitepage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="oui" default="yes"/>
- <cd:constant type="non"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplepage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="pagedouble"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="option">
- <cd:constant type="rectoverso"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="position" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="position"/>
- </cd:sequence>
- <cd:arguments>
- <cd:position n="1" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupscreens" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="regleecrans"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="methode">
- <cd:constant type="point"/>
- <cd:constant type="regle"/>
- <cd:constant type="external"/>
- </cd:parameter>
- <cd:parameter name="resolution">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="facteur">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ecran">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbackgrounds" file="page-bck.tex">
- <cd:sequence>
- <cd:string value="reglearriereplans"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="sup"/>
- <cd:constant type="entete"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="pdp"/>
- <cd:constant type="inf"/>
- <cd:constant type="page"/>
- <cd:constant type="papier"/>
- <cd:constant type="pagegauche"/>
- <cd:constant type="pagedroite"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="bordgauche"/>
- <cd:constant type="margegauche"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="margedroite"/>
- <cd:constant type="borddroit"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="cd:repeat"/>
- </cd:parameter>
- <cd:inherit name="regleencadre" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="buffer" type="environment" generated="yes" file="core-buf.tex">
- <cd:sequence>
- <cd:variable value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="buffer" type="environment" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="getbuffer">
- <cd:sequence>
- <cd:string value="prendbuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="tapebuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definitbuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="reglebuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="paragraphe">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definitbloc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomoreblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="pasplusdeblocs"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="hideblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="cacheblocs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="keepblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="gardeblocs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="tout"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="utiliseblocs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="processblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="traiteblocs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="bypassblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="sauteblocs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="forceblocks">
- <cd:sequence>
- <cd:string value="forceblocs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="selectblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="selectionneblocs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="critere">
- <cd:constant type="tout"/>
- <cd:constant type="cd:section"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="reglebloc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interieur">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="fichier">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="formula" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="formule"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="mathematics" file="supp-mat.tex">
- <cd:sequence>
- <cd:string value="mathematique"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="placeformule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2" optional="yes"/>
- <cd:displaymath n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placesubformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="placesousformule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2" optional="yes"/>
- <cd:displaymath n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placefloat" generated="yes" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="place"/>
- <cd:variable value="flottant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="ici" default="yes"/>
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- <cd:constant type="dansgauche"/>
- <cd:constant type="dansdroit"/>
- <cd:constant type="dansmarge"/>
- <cd:constant type="marge"/>
- <cd:constant type="margegauche"/>
- <cd:constant type="margedroite"/>
- <cd:constant type="bordgauche"/>
- <cd:constant type="borddroit"/>
- <cd:constant type="margeinterieure"/>
- <cd:constant type="margeexterieure"/>
- <cd:constant type="bordinterieur"/>
- <cd:constant type="bordexterieur"/>
- <cd:constant type="interieur"/>
- <cd:constant type="exterieur"/>
- <cd:constant type="ligne"/>
- <cd:constant type="haut"/>
- <cd:constant type="bas"/>
- <cd:constant type="adapte"/>
- <cd:constant type="page"/>
- <cd:constant type="pagegauche"/>
- <cd:constant type="pagedroite"/>
- <cd:constant type="opposition"/>
- <cd:constant type="toujours"/>
- <cd:constant type="auto"/>
- <cd:constant type="force"/>
- <cd:constant type="long"/>
- <cd:constant type="raz"/>
- <cd:constant type="ligne"/>
- <cd:constant type="hauteur"/>
- <cd:constant type="profondeur"/>
- <cd:constant type="split"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes" list="yes"/>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reservefloat" generated="yes">
- <cd:sequence>
- <cd:string value="reserver"/>
- <cd:variable value="flottant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cadre">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:reference n="3" optional="yes" list="yes"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="definitflottant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="regleflottant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteurmax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeurmax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="largeurmin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="defaut">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="limitespage">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="distancemargegauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distancemargedroite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="milieu"/>
- <cd:constant type="droite"/>
- </cd:parameter>
- <cd:inherit name="regleencadre" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="floattext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="flottant"/>
- <cd:string value="texte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="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 n="2" optional="yes"/>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="completelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="referral" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="recommandation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="bet">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ken">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dat">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="van">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aan">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ref">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="selectpaper">
- <cd:sequence>
- <cd:string value="selectionnepapier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="famille">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplepaper">
- <cd:sequence>
- <cd:string value="couplepapier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="chem" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="chem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fraction" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="fraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="periods" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="periodes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="items">
- <cd:sequence>
- <cd:string value="elements"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="regleelements" n="1"/>
- </cd:assignments>
- <cd:content n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupitems" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="regleelements"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="dansmarge"/>
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- </cd:parameter>
- <cd:parameter name="symbole">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:text"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- <cd:constant type="inconnu"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quotation" type="environment" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="milieu" 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 n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupquote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="demarreciter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="cd:text"/>
- <cd:constant type="marge"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="definitparagraphes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ligne">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="adapte"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interieur">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="tresstrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="trestolerant"/>
- <cd:constant type="etire"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="paragraph" generated="yes">
- <cd:sequence>
- <cd:variable value="paragraphe"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="paragraph" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="paragraphe"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="regleparagraphes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="chaque"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="tolerance">
- <cd:constant type="tresstrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="trestolerant"/>
- <cd:constant type="etire"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interieur">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="commande">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ligne">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptab" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="regletab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="echantillon">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="styletete">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tab">
- <cd:sequence>
- <cd:string value="tab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="document" type="environment">
- <cd:sequence>
- <cd:string value="document"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labels">
- <cd:sequence>
- <cd:string value="etiquettes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="definittabulation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tabulate" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="tabule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="reglefiguresexternes" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="regletabulation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="unite">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="composeenalinea">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interieur">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="EQ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="couleurligne">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="epaisseurligne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="vide"/>
- <cd:constant type="grille"/>
- <cd:constant type="profondeur"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="policecorps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="ligne">
- <cd:constant type="normal"/>
- <cd:constant type="ligne"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptables" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="regletableaux"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="distance">
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- <cd:parameter name="policecorps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="HL">
- <cd:constant type="cd:number"/>
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="VL">
- <cd:constant type="cd:number"/>
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="profondeur">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="epaisseurligne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="couleurligne">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="commandes">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="arriereplan">
- <cd:constant type="ecran"/>
- <cd:constant type="couleur"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="ecranarriereplan">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="couleurarriereplan">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="policecorps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="table" type="environment">
- <cd:sequence>
- <cd:string value="table"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tables" type="environment">
- <cd:sequence>
- <cd:string value="tables"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetabletemplate" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="definittrametableau"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfiles" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="utilisefichiersexternes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="policecorps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="fichier">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfile" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="utilisefichierexterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="4" list="yes">
- <cd:parameter name="policecorps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="utilisefigureexterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:name"/> <!-- parent -->
- </cd:keywords>
- <cd:assignments n="4" optional="yes" list="yes">
- <cd:inherit name="reglefiguresexternes" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="externalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="figureexterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="reglefiguresexternes" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="reglefiguresexternes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="echelle">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="facteur">
- <cd:constant type="max"/>
- <cd:constant type="adapte"/>
- <cd:constant type="large"/>
- </cd:parameter>
- <cd:parameter name="facteurlargeur">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="large"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- <cd:parameter name="facteurhauteur">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="large"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cadre">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="prereglage">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="affichage">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="previsualisation">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="repete">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="objet">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="type">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="methode">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="cadre"/>
- <cd:constant type="vide"/>
- <cd:constant type="test"/>
- </cd:parameter>
- <cd:parameter name="cadres">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="ymax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xmax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="repertoire">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="local"/>
- <cd:constant type="global"/>
- <cd:constant type="defaut"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="largeurmax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteurmax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="conversion">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prefixe">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interaction">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- <!-- more will follow -->
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="montrefiguresexternes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalsoundtrack" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="utilisepsiteaudioexterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="name" file="syst-gen.tex">
- <cd:sequence>
- <cd:string value="name"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="legend" type="environment">
- <cd:sequence>
- <cd:string value="legend"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="deux"/>
- </cd:keywords>
- <cd:tex n="2" command="leg"/>
- <cd:nothing n="3"/>
- <cd:nothing n="4" separator="backslash"/>
- <cd:nothing n="5" separator="backslash"/>
- <cd:tex n="6" separator="backslash" command="leg"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fact" type="environment">
- <cd:sequence>
- <cd:string value="fait"/>
- </cd:sequence>
- <cd:arguments>
- <cd:tex n="1" command="fact"/>
- <cd:nothing n="2"/>
- <cd:nothing n="3" separator="backslash"/>
- <cd:nothing n="4" separator="backslash"/>
- <cd:tex n="5" separator="backslash" command="fact"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="rotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="oriente"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="regleoriente" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuprotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="regleoriente"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="rotation">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="normal"/>
- <cd:constant type="haut"/>
- <cd:constant type="adapte"/>
- <cd:constant type="large"/>
- <cd:constant type="profondeur"/>
- </cd:parameter>
- <cd:inherit name="regleencadre" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mirror" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="reflete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="scale" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="echelle"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="sx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcombinations" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="reglecombinaisons"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="sup"/>
- <cd:constant type="milieu"/>
- <cd:constant type="inf"/>
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="combination" type="environment">
- <cd:sequence>
- <cd:string value="combination"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:matrix"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placesidebyside" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="placecoteacote"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeontopofeachother" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="placelesunsaudessusdesautres"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overlay" type="environment">
- <cd:sequence>
- <cd:string value="overlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overview" type="environment">
- <cd:sequence>
- <cd:string value="overview"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionscreen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="regleecraninteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adapte"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adapte"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="retour">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="espacesup">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="horoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="veroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="max"/>
- <cd:constant type="adapte"/>
- <cd:constant type="rectoverso"/>
- <cd:constant type="recto"/>
- <cd:constant type="auto"/>
- <cd:constant type="rien"/>
- <cd:constant type="marquepage"/>
- </cd:parameter>
- <cd:parameter name="delai">
- <cd:constant type="cd:number"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="screen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="ecran"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setuppagetransitions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="regletransitionspage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="raz"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteraction" file="core-nav.tex">
- <cd:sequence>
- <cd:string value="regleinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="menu">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- <cd:parameter name="page">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="clic">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="affichage">
- <cd:constant type="nouveau"/>
- </cd:parameter>
- <cd:parameter name="actionouverture">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="actionfermeture">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="actionouverturepage">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="actionfermeturepage">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="calculer">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="profondeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="coleurcontraste">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="jeusymbole">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titre">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="soustitre">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="auteur">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="date">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="motcle">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <!-- maybe this will move elsewhere -->
- <cd:parameter name="calquechamp">
- <cd:constant type="auto"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="reglemenuinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="gauche">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="milieu">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- <cd:constant type="rien"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="coleurcontraste">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="revetement"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="memepage">
- <cd:constant type="oui"/>
- <cd:constant type="vide"/>
- <cd:constant type="non"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="referenceinconnue">
- <cd:constant type="oui"/>
- <cd:constant type="vide"/>
- <cd:constant type="non"/>
- <cd:constant type="rien"/>
- </cd:parameter>
- <cd:parameter name="decalagegauche">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rightoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="decalagesup">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="decalageinf">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="position">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:inherit name="regleencadre" n="2"/> <!-- maybe not all parameters from framed -->
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definitmenuinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="reglemenuinteraction" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definitmenuinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="reglemenuinteraction" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionmenu" type="environment">
- <cd:sequence>
- <cd:string value="menuinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="disableinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="inhibemenuinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="sup"/>
- <cd:constant type="inf"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternaldocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="utilisedocumentexterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="fichier"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useURL" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="utiliseURL"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="fichier"/>
- </cd:keywords>
- <cd:keywords n="4">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupledocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="coupledocument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="fichier"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="from" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="de"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="exclusive"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionbar">
- <cd:sequence>
- <cd:string value="barreinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:inherit name="reglebarreinteraction" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="boutonsinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="reglebarreinteraction" n="1"/>
- </cd:assignments>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="reglebarreinteraction"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="alternative">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- <cd:constant type="e"/>
- <cd:constant type="f"/>
- <cd:constant type="g"/>
- </cd:parameter>
- <cd:parameter name="symbole">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hauteur"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hauteur"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- <cd:parameter name="profondeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pas">
- <cd:constant type="cd:number"/>
- <cd:constant type="petit"/>
- <cd:constant type="moyen"/>
- <cd:constant type="grand"/>
- </cd:parameter>
- <cd:inherit name="regleencadre" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synchronize" file="core-int.tex">
- <cd:sequence>
- <cd:string value="synchronise"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="synchronization" type="environment">
- <cd:sequence>
- <cd:string value="synchronization"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupsynchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="reglebarresynchronisation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="page"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hauteur"/>
- <cd:constant type="adapte"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="regleencadre" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="barresynchronisation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="alternative">
- <cd:constant type="page"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:inherit name="reglebarresynchronisation" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsynchronization" file="core-int.tex">
- <cd:sequence>
- <cd:string value="reglesynchronisation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definitprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupprofiles" file="core-int.tex">
- <cd:sequence>
- <cd:string value="regleprofils"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="option">
- <cd:constant type="test"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="profile" type="environment">
- <cd:sequence>
- <cd:string value="profile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="suivantprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placebookmarks" file="core-int.tex">
- <cd:sequence>
- <cd:string value="placemarquespages"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="tout"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:parameter name="force">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="bookmark" file="core-int.tex">
- <cd:sequence>
- <cd:string value="marquepage"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="version" type="environment">
- <cd:sequence>
- <cd:string value="version"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupversions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="regleversions"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="numero">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="markversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="marquageversion"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="selectversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="selectionneversion"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="defineversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definitversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="suivantversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followprofileversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="suivantversionprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineprogram" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definitprogramme"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupprograms" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="regleprogrammes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="repertoire">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="program" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="programme"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="figure" type="environment">
- <cd:sequence>
- <cd:string value="figure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="facteur">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="cadre">
- <cd:constant type="actif"/>
- <cd:constant type="desactive"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- referring*figure skipped -->
-
- <!-- marking*figure skipped -->
-
- <!-- remark skipped -->
-
- <cd:command name="goto" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="va"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:content n="2" interactive="exclusive"/>
- <cd:reference n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="gotobox" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="vaalaboite"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="button" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="bouton"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="regleboutons" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:reference n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="regleboutons"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:inherit name="regleencadre" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- menubutton skipped -->
-
- <cd:command name="setupcomment" file="core-int.tex">
- <cd:sequence>
- <cd:string value="reglecommentaire"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titre">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="espace">
- <cd:constant type="oui"/>
- <cd:constant type="non"/>
- </cd:parameter>
- <cd:parameter name="symbole">
- <cd:constant type="normal"/>
- <cd:constant type="Nouveau"/>
- <cd:constant type="Ballon"/>
- <cd:constant type="Ajout"/>
- <cd:constant type="Aide"/>
- <cd:constant type="Paragraphe"/>
- <cd:constant type="Cle"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="max"/>
- <cd:constant type="buffer"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comment" type="environment">
- <cd:sequence>
- <cd:string value="comment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="reglecommentaire" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comment">
- <cd:sequence>
- <cd:string value="comment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="reglecommentaire" n="1"/>
- </cd:assignments>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definitchamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1"> <!-- name -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2"> <!-- type -->
- <cd:constant type="texte"/>
- <cd:constant type="ligne"/> <!-- equal to text -->
- <cd:constant type="push"/>
- <cd:constant type="check"/>
- <cd:constant type="radio"/>
- <cd:constant type="combo"/>
- <cd:constant type="choice"/> <!-- equal to combo -->
- <cd:constant type="popup"/> <!-- equal to combo -->
- </cd:keywords>
- <cd:keywords n="3"> <!-- group -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4" list="yes"> <!-- optional for text? -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes"> <!-- default -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesubfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definitsouschamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="copyfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="copitchamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="clonefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="clonechamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="field" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="champ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fitfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="ajustechamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="remplitchamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tooltip" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="suggestion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="gauche"/>
- <cd:constant type="droite"/>
- <cd:constant type="milieu"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="montrechamps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="logfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="logchamp"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="reglechamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="etiquette"/>
- <cd:constant type="horizontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="cadre"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="reglechamps" n="2"/>
- </cd:assignments>
- <cd:assignments n="4" list="yes"> </cd:assignments>
- <cd:assignments n="5" list="yes"> </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="reglechamps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- TODO: if it's reset, only a single argument, no list -->
- <cd:constant type="raz"/>
- <cd:constant type="etiquette"/>
- <cd:constant type="horizontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="cadre"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="avant">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="apres">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="couleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="style">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="alignement">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="option">
- <cd:constant type="lectureseule"/>
- <cd:constant type="recquis"/>
- <cd:constant type="protege"/>
- <cd:constant type="trie"/>
- <cd:constant type="indisponible"/>
- <cd:constant type="cache"/>
- <cd:constant type="editable"/>
- </cd:parameter>
- <cd:parameter name="clicinterieur">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="clicexterieur">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="entreregion">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="regionexterieure">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="aprescle">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="formatter">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="valider">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="calculer">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="offsetchamp">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="couleurcadrechamp">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="couleurarrierreplanchamp">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="regleencadre" n="2"/>
- </cd:assignments>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="reglechamps" n="2"/>
- </cd:assignments>
- <cd:assignments n="4" list="yes">
- <cd:inherit name="reglechamps" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupforms" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="regleformulaires"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="methode">
- <cd:constant type="HTML"/>
- <cd:constant type="FDF"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definitpilechamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="reglechamps" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="pilechamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="reglechamps" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="clip" file="core-trf.tex">
- <cd:sequence>
- <cd:string value="clip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="regleclipping" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupclipping" file="core-trf.tex">
- <cd:sequence>
- <cd:string value="regleclipping"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="etat">
- <cd:constant type="demarre"/>
- <cd:constant type="stoppe"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="sx">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="decalagehauteur">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="decalagegauche">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="rightoffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="decalagesup">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="decalageinf">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="mp">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelegend">
- <cd:sequence>
- <cd:string value="placelegende"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplegend">
- <cd:sequence>
- <cd:string value="reglelegende"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="entre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="largeur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hauteur">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="emplacement">
- <cd:constant type="droite"/>
- <cd:constant type="inf"/>
- </cd:parameter>
- <cd:parameter name="policecorps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="reglestrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="oui" default="yes"/>
- <cd:constant type="non"/>
- <cd:constant type="cap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usetypescriptfile" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="usetypescriptfile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usetypescript" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="usetypescript"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetypeface" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="definetypeface"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="rm"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="mm"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="6" optional="yes">
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="rscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="encoding">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="texte">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefontfeature" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="definefontfeature"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="no">
- <cd:parameter name="compose">
- <cd:constant type="non" default="yes"/>
- <cd:constant type="oui"/>
- </cd:parameter>
- <cd:parameter name="mode">
- <cd:constant type="node"/>
- <cd:constant type="base" default="yes"/>
- </cd:parameter>
- <cd:parameter name="tlig">
- <cd:constant type="non" default="yes"/>
- <cd:constant type="oui"/>
- </cd:parameter>
- <cd:parameter name="trep">
- <cd:constant type="non" default="yes"/>
- <cd:constant type="oui"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="language">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="..tag.."> <!-- can't use &gt; here, \showsetup gives an error -->
- <cd:constant type="non" default="yes"/>
- <cd:constant type="oui"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefonthandling" file="hand-ini.mkii">
- <cd:sequence>
- <cd:string value="definefonthandling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name" list="yes"/>
- </cd:keywords>
- <cd:assignments n="3">
- <cd:parameter name="type">
- <cd:constant type="suspend" default="yes"/>
- <cd:constant type="hz"/>
- <cd:constant type="espacement"/>
- <cd:constant type="tag"/>
- </cd:parameter>
- <cd:parameter name="droite">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="gauche">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="facteur">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="min">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="max">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="pas">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfonthandling" file="hand-ini.mkii">
- <cd:sequence>
- <cd:string value="setupfonthandling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:inherit name="definefonthandling" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- mkii:
-
- <cd:command name="definefontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definitsynonymepolice"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="encoding">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="handling">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="mapping">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="definefontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definitsynonymepolice"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="fallbacks">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="goodies">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="setupfontsynonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:inherit name="definitsynonymepolice" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mapfontsize" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="mapfontsize"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definedfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definedfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="definitpolice" n="2"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
-</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkii/cont-it.xml b/Master/texmf-dist/tex/context/interface/mkii/cont-it.xml
deleted file mode 100644
index 9d69dc7b57f..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkii/cont-it.xml
+++ /dev/null
@@ -1,10396 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- versions:
-
- comment : user interface definitions of ConTeXt
-
- authors : Hans Hagen, Taco Hoekwater, Patrick Gundlach, Wolfgang Schuster, and others
-
- versions : 2004.11.17 : initial version
- 2006.08.02 : define + resolve
-
--->
-
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context test" language="en" version="2006.08.02">
-
- <!-- there are some more -->
-
- <cd:define name="align">
- <cd:constant type="interno"/>
- <cd:constant type="esterno"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="centro"/>
- <cd:constant type="center"/>
- <cd:constant type="normale"/>
- <cd:constant type="no"/>
- <cd:constant type="si"/>
- <cd:constant type="ampio"/>
- <cd:constant type="ultimo"/>
- <cd:constant type="r2l"/>
- <cd:constant type="l2r"/>
- </cd:define>
-
- <cd:define name="symalign">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="centro"/>
- <cd:constant type="center"/>
- </cd:define>
-
- <cd:define name="indenting">
- <cd: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:define name="texts">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numeropagina"/>
- </cd:define>
-
- <cd:define name="layout-h">
- <cd:constant type="testo" default="yes"/>
- <cd:constant type="margine"/>
- <cd:constant type="bordo"/>
- </cd:define>
-
- <cd:define name="layout-v">
- <cd:constant type="cima"/>
- <cd:constant type="intestazione"/>
- <cd:constant type="testo" default="yes"/>
- <cd:constant type="piedipagina"/>
- <cd:constant type="fondo"/>
- </cd:define>
-
- <cd:define name="bodyfont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="grande"/>
- </cd:define>
-
- <cd:command name="installlanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="installalingua"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="spaziatura">
- <cd:constant type="impaccato" default="yes"/>
- <cd:constant type="ampio"/>
- </cd:parameter>
- <cd:parameter name="lefthyphenmin">
- <cd:constant type="cd:number" default="2"/>
- </cd:parameter>
- <cd:parameter name="righthyphenmin">
- <cd:constant type="cd:number" default="2"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="frasesinistra">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="frasedestra">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="sottofrasesinistra">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="sottofrasedestra">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="menzionesinistra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="menzionedestra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citazionesinistra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citazionedestra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="leftspeech">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="middlespeech">
- <cd:constant type="cd:command" default=""/>
- </cd:parameter>
- <cd:parameter name="rightspeech">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="limittext">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="data">
- <cd:constant type="cd:text"/> <!-- TODO -->
- </cd:parameter>
- <cd:parameter name="compoundhyphen">
- <cd:constant type="cd:command" default="\compoundhyphen"/>
- </cd:parameter>
- <cd:parameter name="leftcompoundhyphen">
- <cd:constant type="cd:command" default="\compoundhyphen"/>
- </cd:parameter>
- <cd:parameter name="rightcompoundhyphen">
- <cd:constant type="cd:command" default=""/>
- </cd:parameter>
- <cd:parameter name="implicito">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="impostalingua"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="installalingua" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="language" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="lingua"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mainlanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="linguaprincipale"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="translate" file="lang-lab.tex" category="language">
- <cd:sequence>
- <cd:string value="traduci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useencoding" file="enco-ini.tex" category="encoding" obsolete="yes"> <!-- engine="pdftex" -->
- <cd:sequence>
- <cd:string value="usacodifica"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usespecials" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="usaspecialita"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="reimposta"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="definiscioutput"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="impostaoutput"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontenvironment" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definisciambientefontdeltesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes"> <!-- it's possible to use 1+2+3, 2+3, what about 1+2? -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="no"> <!-- have to force no, otherwise \showsetup is wrong ! -->
- <cd:constant type="5pt"/> <!-- TODO: maybe <cd:resolve name="bodyfont"/> -->
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="implicito"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:parameter name="testo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scriptscript">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="xx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="d">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="piccolo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="grande">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="interlinea">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="em">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbodyfontenvironment" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="impostaambientefontdeltesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes"> <!-- same as definebodyfontenvironment; you can define the whole commant to inherit, not only parameters-->
- <cd:inherit name="definisciambientefontdeltesto" n="1"/>
- </cd:keywords>
- <cd:keywords n="2" optional="no">
- <cd:inherit name="definisciambientefontdeltesto" n="2" optional="no"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="definisciambientefontdeltesto" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showbodyfontenvironment" file="font-run.tex" category="fonts"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="mostraambientefontdeltesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="impostafontdeltesto" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definiscifontdeltesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- <cd:constant type="implicito"/> -->
- <cd:resolve name="bodyfont"/> <!-- TODO: check this -->
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="rm" default="yes"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- <cd:constant type="mm"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="tf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sl">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="it">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bs">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mr">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ex">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ma">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mb">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="md">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontDEF" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definiscifontdeltesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="impostafontdeltesto" n="2"/>
- </cd:keywords>
- <cd:keywords n="1">
- <cd:inherit name="impostafontdeltesto" n="3"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontREF" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definiscifontdeltesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="impostafontdeltesto" n="1"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="impostafontdeltesto" n="2"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showbodyfont" file="font-run.tex" category="fonts"> <!-- visual debugging -->
- <cd:sequence>
- <cd:string value="mostrafontdeltesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="impostafontdeltesto" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbodyfont" file="font-run.tex" category="fonts">
- <cd:sequence>
- <cd:string value="impostafontdeltesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- TODO: many missing, maybe also <cd:resolve name="bodyfont"/> -->
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="regolare"/>
- <cd:constant type="roman"/>
- <cd:constant type="sans"/>
- <cd:constant type="supporto"/>
- <cd:constant type="sansserif"/>
- <cd:constant type="mono"/>
- <cd:constant type="type"/>
- <cd:constant type="teletype"/>
- <cd:constant type="grafiamanuale"/>
- <cd:constant type="calligrafico"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="switchtobodyfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="cambiaafontdeltesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="regolare"/>
- <cd:constant type="roman"/>
- <cd:constant type="sans"/>
- <cd:constant type="supporto"/>
- <cd:constant type="sansserif"/>
- <cd:constant type="mono"/>
- <cd:constant type="type"/>
- <cd:constant type="teletype"/>
- <cd:constant type="grafiamanuale"/>
- <cd:constant type="calligrafico"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="grande"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definiscifont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="impostacolore"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolors" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="impostacolori"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- <cd:constant type="globale"/>
- <cd:constant type="locale"/>
- </cd:parameter>
- <cd:parameter name="conversione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="sempre"/>
- <cd:constant type="mai"/>
- </cd:parameter>
- <cd:parameter name="riduzione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="rgb">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="cmyk">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="mpcmyk">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="mpspot">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="fattore">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="coloretesto">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="separa">
- <cd:constant type="c"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/>
- <cd:constant type="k"/>
- <cd:constant type="p"/>
- <cd:constant type="s"/>
- <cd:constant type="no"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="criterio">
- <cd:constant type="tutti"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="intent">
- <cd:constant type="nessuno"/>
- <cd:constant type="overprint"/>
- <cd:constant type="knockout"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definiscicolore"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="r">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="g">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="k">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="s">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="h">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="t">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="p">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="e">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="color" type="environment" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="colore"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="color" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="colore"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="graycolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="coloregrigio"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showcolor" file="colo-run.tex" category="colors"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="mostracolore"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definepalet" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definiscitavolozza"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppalet" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="impostatavolozza"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecolorgroup" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definiscigruppocolori"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="rgb" default="yes"/>
- <cd:constant type="cmyk"/>
- <cd:constant type="grigio"/>
- <cd:constant type="s"/>
- </cd:keywords>
- <cd:triplet n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showpalet" file="colo-run.tex" category="colors"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="mostratavolozza"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="orizzontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="nome"/>
- <cd:constant type="valore"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showcolorgroup" file="colo-run.tex" category="colors"> <!-- and debug-->
- <cd:sequence>
- <cd:string value="mostragruppocolori"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="orizzontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="nome"/>
- <cd:constant type="valore"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comparepalet" file="colo-run.tex" category="colors"> <!-- and debug? -->
- <cd:sequence>
- <cd:string value="confrontatavolozza"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comparecolorgroup" file="colo-run.tex" category="colors">
- <cd:sequence>
- <cd:string value="confrontagruppocolori"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showmakeup" file="supp-vis.tex" category="debug">
- <cd:sequence>
- <cd:string value="mostramakeup"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definetype" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="definiscitype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="impostatype" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptype" file="core-ver.tex" category="verbatim"> <!-- TODO -->
- <cd:sequence>
- <cd:string value="impostatype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="spazio">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo" default="yes"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="inclinato"/>
- <cd:constant type="normale"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="type" file="verb-ini.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="type"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typ" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="typ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tex" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="tex"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <!-- cd:command name="arg" file="core-ver.tex"> command broken
- <cd:sequence>
- <cd:string value="arg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command -->
-
- <cd:command name="definetyping" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="definiscityping"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="impostatyping" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="impostatyping" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptyping" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="impostatyping"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="file"/>
- <cd:constant type="typing"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="opzione">
- <cd:constant type="inclinato"/>
- <cd:constant type="normale"/>
- <cd:constant type="comandi" version="mkiv"/>
- <cd:constant type="colore"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="testo">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="icomando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vcomando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ccomando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="marginepari">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginedispari">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rigovuoto">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="standard"/>
- <cd:constant type="mezzariga"/>
- <cd:constant type="riga"/>
- </cd:parameter>
- <cd:parameter name="escape">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="spazio">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="tab">
- <cd:constant type="cd:number"/>
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="rientrasuccessivo">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="tavolozza">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="range">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="righe">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="sillabato"/>
- </cd:parameter>
- <cd:parameter name="vuoto">
- <cd:constant type="si"/>
- <cd:constant type="tutti"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="numerazione">
- <cd:constant type="riga"/>
- <cd:constant type="file"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="fonttesto">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="strip">
- <cd:constant type="no"/>
- <cd:constant type="auto"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typing" type="environment" generated="yes" file="verb-ini.tex"
- category="verbatim">
- <cd:sequence>
- <cd:variable value="typing"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="typefile" file="verb-ini.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="typefile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="impostanotepdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="conversione">
- <cd:constant type="numeri"/>
- <cd:constant type="lettere"/>
- <cd:constant type="Lettere"/>
- <cd:constant type="numeriromani"/>
- <cd:constant type="Numeriromani"/>
- </cd:parameter>
- <cd:parameter name="modo">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="pagina"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="colonne"/>
- <cd:constant type="firstcolumn"/>
- <cd:constant type="lastcolumn"/>
- <cd:constant type="alto"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="linea">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fonttesto">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzacolonne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzamargine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="comandonumero">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="comandotesto">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="separa">
- <cd:constant type="tollerante"/>
- <cd:constant type="rigido"/>
- <cd:constant type="moltorigido"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stiletesto">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="coloretesto">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="interazione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="capoverso">
- <cd:constant type="si"/>
- <cd:constant type="no" default="yes"/>
- </cd:parameter>
- <cd:parameter name="fattore">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootnotedefinition" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="impostadefinizionenotepdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:inherit name="impostadescrizioni" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="footnote" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="notapdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="footnotetext" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="testonotapdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="note" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="nota"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="localfootnotes" type="environment" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="localfootnotes"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelocalfootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="mettinotepdplocali"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="impostanotepdp" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placefootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="mettinotepdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="impostanotepdp" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupunderbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="impostasottolinea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- <cd:parameter name="spessorelinea">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetfondo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetcima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colorelinea">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="underbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="underbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="underbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="underbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overstrike" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrike"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overstrikes" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrikes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="numeriromani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Numeriromani"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="numbers" file="core-con.tex">
- <cd:sequence>
- <cd:string value="numeri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="lettera"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Lettera"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="lettere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Lettere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mediaeval" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mediaeval"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="month" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mese"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="MONTH" file="core-con.tex">
- <cd:sequence>
- <cd:string value="MESE"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="weekday" file="core-con.tex">
- <cd:sequence>
- <cd:string value="giornosettimana"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WEEKDAY" file="core-con.tex">
- <cd:sequence>
- <cd:string value="GIORNOSETTIMANA"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcapitals" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="impostamaiuscole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="titolo">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="cap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nocap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="nocap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="CAP" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="CAP"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Cap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Caps" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Caps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WORD" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="PAROLA"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WORDS" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="PAROLE"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Word" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Parola"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Words" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Parole"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="stretched" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="stirato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definiscisimbolo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefiguresymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definiscifigurasimbolo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="impostafigureesterne" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="symbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="simbolo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="symbolset" type="environment" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="symbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsymbolset" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="impostasetsimboli"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usesymbols" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="usasimboli"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showsymbolset" file="symb-run.tex" category="symbols"> <!-- and symbols -->
- <cd:sequence>
- <cd:string value="mostrasetsimboli"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineconversion" file="core-con.tex">
- <cd:sequence>
- <cd:string value="definisciconversione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="convertnumber" file="core-con.tex">
- <cd:sequence>
- <cd:string value="convertinumero"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheadtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="impostatestointestazioni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplabeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="impostatestoetichette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="headtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="testoinstestazioni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="testoetichetta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarginrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostalineemargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="livello">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="spessorelinea">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lineamargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lineamargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplinewidth" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostaampiezzariga"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostaincorniciato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/> <!-- defines a command with that name -->
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="altezza">
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- <cd:constant type="fisso"/>
- <cd:constant type="locale"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="autoampiezza">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="forza"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="nessuno"/>
- <cd:constant type="sovrapponi"/>
- <cd:constant type="implicito"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="profondita"/>
- <cd:constant type="sospeso"/>
- <cd:constant type="alto"/>
- <cd:constant type="pedap"/>
- <cd:constant type="basso"/>
- <cd:constant type="cima"/>
- <cd:constant type="centro"/>
- <cd:constant type="fondo"/>
- <cd:constant type="mantieni"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="nessuno"/>
- <cd:constant type="vuoto"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="globale"/>
- <cd:constant type="locale"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="fondo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="cima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="cornice">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="sovrapponi"/>
- </cd:parameter>
- <cd:parameter name="cornicecima">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="cornicefondo">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="cornicesinistra">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="cornicedestra">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="offsetcornice">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="profonditacornice">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="angolocornice">
- <cd:constant type="rotondo"/>
- <cd:constant type="rettangolare"/>
- </cd:parameter>
- <cd:parameter name="raggiocornice">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colorecornice">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="sfondo">
- <cd:constant type="schermo"/>
- <cd:constant type="colore"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="foreground"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="schermosfondo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="coloresfondo">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="offsetsfondo">
- <cd:constant type="cornice"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="profonditasfondo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="angolosfondo">
- <cd:constant type="rotondo"/>
- <cd:constant type="rettangolare"/>
- </cd:parameter>
- <cd:parameter name="raggiosfondo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="profondita">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="angolo">
- <cd:constant type="rotondo"/>
- <cd:constant type="rettangolare"/>
- </cd:parameter>
- <cd:parameter name="raggio">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="vuoto">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="coloreprimopiano">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="foregroundstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="spessorelinea">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="incorniciato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="impostaincorniciato" n="2"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="circondato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="impostaincorniciato" n="2"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="thinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lineesottili"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes">
- <cd:inherit name="impostalineesottili" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupthinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostalineesottili"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="interlinea">
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="coloresfondo">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="profondita">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- </cd:parameter>
- <cd:parameter name="spessorelinea">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="sfondo">
- <cd:constant type="colore"/>
- </cd:parameter>
- <cd:parameter name="coloresfondo">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hairline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="capello"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="thinrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lineasottile"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="defineframedtext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definiscitestoincorniciato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostatestiincorniciati" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definisciincorniciato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostatestiincorniciati" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupframedtexts" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostatestiincorniciati"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="fonttesto">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interno">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="correzioneriga">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="correzioneprofondita">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="standard"/>
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="rientro">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framedtext" type="environment" generated="yes" file="core-rul.tex">
- <cd:sequence>
- <cd:variable value="testoincorniciato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- <cd:constant type="nessuno"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostatestiincorniciati" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framedtext" generated="yes" file="core-rul.tex">
- <cd:sequence>
- <cd:variable value="testoincorniciato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="impostatestiincorniciati" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="background" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="sfondo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="background" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="sfondo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbackground" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostasfondo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="offsetsinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetdestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetcima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetfondo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lineeriempimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="impostalineeriempimento" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillintext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="testoriempimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="impostalineeriempimento" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostalineeriempimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="ampiezza">
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="interlinea">
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- <cd:parameter name="separatore">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="rigariempimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="impostarigheriempimento" n="1"/>
- </cd:assignments>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfillinlines" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostarigheriempimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptextrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostalineetesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="inmargine"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fonttesto">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colorelinea">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lineatesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- </cd:keywords>
- <cd:content n="2" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lineatesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- </cd:keywords>
- <cd:content n="2" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="blackrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lineanera"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="impostalineenere" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="blackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="lineenere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:inherit name="impostalineenere" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostalineenere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension" default="1em"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension" default="1ex"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="profondita">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a" default="yes"/>
- <cd:constant type="b"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension" default=".25ex"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number" default="3"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineoverlay" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definiscisovrapposizione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usemodule" file="core-fil.tex"> <!-- TODO -->
- <cd:sequence>
- <cd:string value="usamodulo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reset" file="core-num.tex">
- <cd:sequence>
- <cd:string value="reimposta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!-- <cd:command name="donttest">
- <cd:sequence>
- <cd:string value="notest"/>
- </cd:sequence>
-</cd:command> -->
-
- <cd:command name="localenvironment" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="localenvironment"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupsystem" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="impostasistema"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="risoluzione">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="directory">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="casuale">
- <cd:constant type="normale"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usedirectory" file="core-job.mkii"> <!-- usepath, todo: more than one file -->
- <cd:sequence>
- <cd:string value="usedirectory"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="reimposta"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="low" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="ped"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="high" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="ap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="lohi" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="pedap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="basso"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showframe" file="page-run.tex">
- <cd:sequence>
- <cd:string value="mostracornice"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- <cd:constant type="margine"/>
- <cd:constant type="bordo"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="leftaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="allineasinistra"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="rightaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="allineadestra"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="midaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="allineacentro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="wordright" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="paroladestra"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inmargin" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="inmargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="basso"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inothermargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inaltromargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="basso"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inleft" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="insinistra"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="basso"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inright" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="indestra"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="basso"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ininner" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="ininner"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="basso"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inouter" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inouter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="basso"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="column" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="colonna"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showstruts" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="mostrastruts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showsetups" file="page-run.tex">
- <cd:sequence>
- <cd:string value="mostraimpostazioni"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showlayout" file="page-run.tex">
- <cd:sequence>
- <cd:string value="mostralyout"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="margintext" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="testoinmargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="basso"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarginblocks" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="impostablocchimargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="luogo">
- <cd:constant type="inmargine"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- <cd:constant type="destra"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="cima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="fondo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginblock" type="environment" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="marginblock"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="part" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="part"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="title" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="title"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="chapter" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="chapter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="section" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="section"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="appendix" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="appendix"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="in" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="in"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:content n="2" interactive="yes"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="at" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="al"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:content n="2" interactive="yes"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="about" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="intorno"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:reference n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="somewhere" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="daqualcheparte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="atpage" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="apagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ref" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="rif"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="t"/>
- <cd:constant type="p"/>
- <cd:constant type="r"/>
- <cd:constant type="s"/>
- <cd:constant type="e"/>
- </cd:keywords>
- <cd:reference n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textreference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="riferimentotesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="pagereference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="riferimentopagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="riferimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usereferences" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="usariferimenti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="definisciriferimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereferenceformat" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="definisciformatoriferimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="sinistra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="testo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="etichetta">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hl" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="hl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="vl" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="vl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="godown" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="vaigiu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="whitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="spaziobianco"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="nowhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nientespaziobianco"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="crlf" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="crlf"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="space" file="syst-pln.tex">
- <cd:sequence>
- <cd:string value="spazio"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="fixedspaces" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="spazifissi"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="emptylines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="emptylines"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nospace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nientespazio"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="packed" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impaccato"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupdescriptions" file="core-des.tex">
- <cd:sequence>
- <cd:string value="impostadescrizioni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stile">
- <cd:resolve name="style"/> <!-- TODO: style=normal -->
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- <cd:constant type="cd:dimension" default="8em"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="campione">
- <cd:constant type="cd:text" default=""/>
- </cd:parameter>
- <cd:parameter name="testo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closecommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="closesymbol">
- <cd:constant type="cd:text" default=""/>
- </cd:parameter>
- <cd:parameter name="titleleft">
- <cd:constant type="cd:text" default="("/>
- </cd:parameter>
- <cd:parameter name="titleright">
- <cd:constant type="cd:text" default=")"/>
- </cd:parameter>
- <cd:parameter name="distanzatitolo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stiletitolo">
- <cd:resolve name="style"/> <!-- TODO: default=bold -->
- </cd:parameter>
- <cd:parameter name="coloretitolo">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="standard"/>
- <cd:constant type="si"/>
- <cd:constant type="no" default="yes"/> <!-- TODO: this is default; conflicting syntax? -->
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="sinistra" default="yes"/>
- <cd:constant type="destra"/>
- <cd:constant type="cima"/>
- <cd:constant type="vicino"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="insinistra"/>
- <cd:constant type="indestra"/>
- <cd:constant type="sospeso"/>
- </cd:parameter>
- <cd:parameter name="stiletesta">
- <cd:resolve name="style"/> <!-- TODO: default=bold -->
- </cd:parameter>
- <cd:parameter name="coloretesta">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="headcommand">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sospendi">
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="rientrasuccessivo">
- <cd:resolve name="indentnext"/> <!-- default=yes -->
- </cd:parameter>
- <cd:parameter name="rientro">
- <cd:resolve name="indenting"/> <!-- default=never -->
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="display">
- <cd:constant type="si" default="yes"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupenumerations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="impostaenumerazioni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="impostadescrizioni" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineenumeration" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definiscienumerazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="impostaenumerazioni" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="enumeration" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="enumerazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing n="1" interactive="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="enumeration" type="environment" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="enumerazione"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definedescription" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definiscidescrizione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostadescrizioni" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="description" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="descrizione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="description" type="environment" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="descrizione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupindentedtext" file="strc-des.tex">
- <cd:sequence>
- <cd:string value="setupindentedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiletesta">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="adatta"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="testo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="campione">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separatore">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineindentedtext" file="strc-des.tex">
- <cd:sequence>
- <cd:string value="defineindentedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="setupindentedtext" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="indentation" generated="yes" file="core-spa.tex">
- <cd:sequence>
- <cd:variable value="indentation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelabel" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definiscietichetta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="testo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="inmargine"/>
- <cd:constant type="intesto"/>
- </cd:parameter>
- <cd:parameter name="modo">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="blockway">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="stiletesta">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="coloretesta">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labeling" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="labeling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolumns" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="impostacolonne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes"> <!-- no idea why it is optional -->
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ncima">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="linea">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/> <!-- default and unknown missing -->
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolleranza">
- <cd:constant type="moltorigido"/>
- <cd:constant type="rigido"/>
- <cd:constant type="tollerante"/>
- <cd:constant type="moltotollerante"/>
- <cd:constant type="dilata"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bilanciamento">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:constant type="testo"/>
- <!-- cd:constant type="yes"/ -->
- <!-- cd:constant type="no"/ -->
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="rigovuoto">
- <cd:constant type="fisso"/>
- <cd:constant type="mezzariga"/>
- <cd:constant type="riga"/>
- <cd:constant type="flessibile"/>
- <cd:constant type="grande"/>
- <cd:constant type="medio"/>
- <cd:constant type="piccolo"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="sfondo"/>
- </cd:parameter>
- <cd:parameter name="direzione">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="columns" type="environment" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="columns"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="impostacolonne" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="definiscitesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="intestazione"/>
- <cd:constant type="piedipagina"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheader" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostainstestazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text" default="yes"/>
- <cd:constant type="margine"/>
- <cd:constant type="bordo"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="normale"/>
- <cd:constant type="termina"/>
- <cd:constant type="inizia"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="alto"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="nomarcature"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilesinistra">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiledestra">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="ampiezzasinistra">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezzadestra">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfooter" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostapdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="impostainstestazione" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="impostainstestazione" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostatesto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="impostainstestazione" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="impostainstestazione" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptop" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostacima"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="impostainstestazione" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="impostainstestazione" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbottom" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostafondo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="impostainstestazione" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="impostainstestazione" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="noheaderandfooterlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nientelineintestazionepdp"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="notopandbottomlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="nientelineecimafondo"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupheadertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostatestiintestazioni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostatestipdp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptexttexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostatestotesti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptoptexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostatesticima"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbottomtexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="impostatestifondo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="settextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="settext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="resettextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="resettextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="lefttext"/>
- <cd:constant type="middletext"/>
- <cd:constant type="righttext"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="definiscimarcatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplemarking" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="accoppiamarcatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="decouplemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="separamarcatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="resetmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="reimpostamarcatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="impostamarcatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="separatore">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="espansione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="marcatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="getmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="prendimarcatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="primo"/>
- <cd:constant type="ultimo"/>
- <cd:constant type="precedente"/>
- <cd:constant type="entrambi"/>
- <cd:constant type="tutti"/>
- <cd:constant type="corrente"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="nientemarcatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplayout" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="impostalayout"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- <cd:constant type="centro"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- <cd:constant type="centro"/>
- </cd:parameter>
- <cd:parameter name="backspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spaziocima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginesinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginedestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="intestazione">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="piedipagina">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fondo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bordosinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bordodestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzaintestazione">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzapdp">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzacima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzafondo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzamarginesinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzamarginedestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzabordosinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzabordodestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="horoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="veroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="marcatura">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- <cd:constant type="colore"/>
- <cd:constant type="schermo"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="pagina"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- <cd:constant type="destra"/>
- <cd:constant type="fondo"/>
- <cd:constant type="cima"/>
- <cd:constant type="facciasingola"/>
- <cd:constant type="doppiafaccia"/>
- </cd:parameter>
- <cd:parameter name="scala">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="righe">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="colonne">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distanzacolonne">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="griglia">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="spaziofondo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cutspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzatesto">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezzatesto">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="textmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="clipoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="carta">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="adaptlayout" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="adattalayout"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="righe">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showgrid" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="mostragriglia"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="reimposta"/>
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="tutti"/>
- <cd:constant type="righe"/>
- <cd:constant type="cornice"/>
- <cd:constant type="nonumber"/>
- <cd:constant type="destra"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="esterno"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="mettiingriglia"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="spostaagriglia" n="1"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="moveongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="spostaagriglia"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="standard" default="yes"/> <!-- also 'normal', 'yes' and 'force' -->
- <cd:constant type="cima"/>
- <cd:constant type="entrambi"/>
- <cd:constant type="fondo"/>
- <cd:constant type="-top"/>
- <cd:constant type="-both"/>
- <cd:constant type="-bottom"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="alto"/>
- <cd:constant type="centro"/>
- <cd:constant type="basso"/>
- <cd:constant type="pagina"/>
- <cd:constant type="ampio"/>
- <cd:constant type="adatta"/>
- <cd:constant type="profondita"/>
- <cd:constant type="riga"/>
- <cd:constant type="reimposta"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="project" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="progetto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="environment" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="ambiente"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="product" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="prodotto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="component" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="componenet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomorefiles" file="core-job.tex">
- <cd:sequence>
- <cd:string value="bastafile"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupinterlinespace" variant="1" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impostainterlinea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="reimposta"/>
- <cd:constant type="piccolo" default="yes"/>
- <cd:constant type="medio"/>
- <cd:constant type="auto"/>
- <cd:constant type="grande"/>
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinterlinespace2" variant="2" file="core-spa.tex">
- <!-- attached a 2 to make this definition usable with \showsetup -->
- <cd:sequence>
- <cd:string value="impostainterlinea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="altezza">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="profondita">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="riga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cima">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="fondo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppagenumbering" file="page-num.tex">
- <cd:sequence>
- <cd:string value="impostanumerazionepagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="facciasingola"/>
- <cd:constant type="doppiafaccia"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="intestazione"/>
- <cd:constant type="piedipagina"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- <cd:constant type="margine"/>
- <cd:constant type="bordomargine"/>
- <cd:constant type="insinistra"/>
- <cd:constant type="indestra"/>
- </cd:parameter>
- <cd:parameter name="conversione">
- <cd:constant type="numeri"/>
- <cd:constant type="lettere"/>
- <cd:constant type="Lettere"/>
- <cd:constant type="numeriromani"/>
- <cd:constant type="Numeriromani"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="modo">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="testo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="separatorenumero">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="separatoretesto">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="separatore">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="ultimo"/>
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupnarrower" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impostapiustretto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="sinistra">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="centro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="define" file="syst-ext.tex">
- <cd:sequence>
- <cd:string value="definisci"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:csname n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usecommands" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="usacomandi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definestartstop" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="definisciiniziatermina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="comandi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheads" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="impostateste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="numerosezione">
- <cd:constant type="si"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="normale"/>
- <cd:constant type="margine"/>
- <cd:constant type="centro"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="capoverso"/>
- </cd:parameter>
- <cd:parameter name="separatore">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stopper">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="allineatitolo">
- <cd:constant type="si"/>
- <cd:constant type="oggettomobile"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="tolleranza">
- <cd:constant type="moltorigido"/>
- <cd:constant type="rigido"/>
- <cd:constant type="tollerante"/>
- <cd:constant type="moltotollerante"/>
- <cd:constant type="dilata"/>
- </cd:parameter>
- <cd:parameter name="rientrasuccessivo">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcaptions" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="impostacaptions"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="luogo">
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="alto"/>
- <cd:constant type="basso"/>
- <cd:constant type="centro"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- <cd:constant type="destra"/>
- <cd:constant type="lefthanging"/>
- <cd:constant type="righthanging"/>
- <cd:constant type="marginesinistro"/>
- <cd:constant type="marginedestro"/>
- <cd:constant type="margineinterno"/>
- <cd:constant type="margineesterno"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- <cd:constant type="max"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezzamin">
- <cd:constant type="adatta"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stiletesta">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="numero">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="conversione">
- <cd:constant type="numeri"/>
- <cd:constant type="lettere"/>
- <cd:constant type="Lettere"/>
- <cd:constant type="numeriromani"/>
- <cd:constant type="Numeriromani"/>
- </cd:parameter>
- <cd:parameter name="modo">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="separatore">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stopper">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcaption" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="impostacaption"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="impostacaptions" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloats" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="impostaoggettimobili"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="adatta"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spazioprima">
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="spaziodopo">
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="spaziolateraleprima">
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="spaziolateraledopo">
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="rientrasuccessivo">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="ncima">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nfondo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nrighe">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="implicito">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="tolleranza">
- <cd:constant type="0"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- <cd:parameter name="distanzamarginesinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzamarginedestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sidealign">
- <cd:constant type="normale"/>
- <cd:constant type="riga"/>
- </cd:parameter>
- <cd:parameter name="numerazione">
- <cd:constant type="si"/>
- <cd:constant type="nocheck"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloatsplitting" file="core-tsp.tex">
- <cd:sequence>
- <cd:string value="impostaspezzamentooggettomobile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="conversione">
- <cd:constant type="numeri"/>
- <cd:constant type="lettere"/>
- <cd:constant type="Lettere"/>
- <cd:constant type="numeriromani"/>
- <cd:constant type="Numeriromani"/>
- </cd:parameter>
- <cd:parameter name="righe">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="splitfloat" file="core-tsp.tex">
- <cd:sequence>
- <cd:string value="spezzaoggettomobile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="impostaspezzamentooggettomobile" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupoppositeplacing" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="impostaposizionamentoopposti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="opposite" type="environment" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="opposite"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setuphyphenmark" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="impostasegnosillabazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="segno">
- <cd:constant type="--"/>
- <cd:constant type="---"/>
- <cd:constant type="-"/>
- <cd:constant type="~"/>
- <cd:constant type="("/>
- <cd:constant type=")"/>
- <cd:constant type="="/>
- <cd:constant type="/"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppositioning" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="impostaposizionamento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="sovrapponi"/>
- </cd:parameter>
- <cd:parameter name="unita">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="fattore">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="scala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="xstep">
- <cd:constant type="assoluto"/>
- <cd:constant type="relativo"/>
- </cd:parameter>
- <cd:parameter name="ystep">
- <cd:constant type="assoluto"/>
- <cd:constant type="relativo"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="positioning" type="environment" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="positioning"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="grid" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="griglia"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xstep">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ystep">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="fattore">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="scala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="unita">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="page" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="pagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="si" default="yes"/>
- <cd:constant type="makeup"/>
- <cd:constant type="no"/>
- <cd:constant type="preferenza"/>
- <cd:constant type="grandepreferenza"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="disattiva"/>
- <cd:constant type="ultimo"/>
- <cd:constant type="quadruplo"/>
- <cd:constant type="pari"/>
- <cd:constant type="dispari"/>
- <cd:constant type="rigovuoto"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="reimposta"/>
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupreferencing" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="impostariferimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="prefisso">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interazione">
- <cd:constant type="etichetta"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="tutti"/>
- <cd:constant type="simbolo"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="convertifile">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- <cd:parameter name="separatore">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autofile">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="pagina"/>
- </cd:parameter>
- <cd:parameter name="globale">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="export">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupurl" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="impostaurl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="alternativaurl">
- <cd:constant type="nessuno"/>
- <cd:constant type="entrambi"/>
- <cd:constant type="prima"/>
- <cd:constant type="dopo"/>
- </cd:parameter>
- <cd:parameter name="spaziourl">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetoreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="scriviinlistariferimenti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="placereferencelist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definiscilistariferimenti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostalistariferimenti" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="impostalistariferimenti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="criterio">
- <cd:constant type="cd:section"/>
- <cd:constant type="locale"/>
- <cd:constant type="precedente"/>
- <cd:constant type="tutti"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="scriviinelenco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="luogo">
- <cd:constant type="qui"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writebetweenlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="scrividentroelenco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="luogo">
- <cd:constant type="qui"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="nienteelenco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="listsymbol" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="listsymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="mettielenco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostaelenco" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="determinelistcharacteristics" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="determinacarattersticheelenco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostaelenco" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="mettielencocombinato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostaelencocombinato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definiscielenco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes"> <!-- inherits from -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="impostaelenco" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="impostaelenco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="..."/>
- <cd:constant type="nessuno"/>
- <cd:constant type="comando"/>
- </cd:parameter>
- <cd:parameter name="accoppiamento">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="criterio">
- <cd:constant type="cd:section"/>
- <cd:constant type="locale"/>
- <cd:constant type="precedente"/>
- <cd:constant type="corrente"/>
- <cd:constant type="qui"/>
- <cd:constant type="intro"/>
- <cd:constant type="tutti"/>
- </cd:parameter>
- <cd:parameter name="extras">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilenumero">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiletesto">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilepagina">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- <cd:parameter name="comandonumero">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="comandotesto">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="comandopagina">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="interazione">
- <cd:constant type="numerosezione"/>
- <cd:constant type="testo"/>
- <cd:constant type="numeropagina"/>
- <cd:constant type="tutti"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="etichetta">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="prefisso">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="numeropagina">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="numerotesta">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="allineatitolo">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- </cd:parameter>
- <cd:parameter name="profondita">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separatore">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stopper">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="simbolo">
- <cd:constant type="nessuno"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="..."/>
- </cd:parameter>
- <cd:parameter name="espansione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="comando"/>
- </cd:parameter>
- <cd:parameter name="ampiezzamax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="order">
- <cd:constant type="comando"/>
- <cd:constant type="tutti"/>
- <cd:constant type="normale"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplistalternative" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setuplistalternative"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="no">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <!-- cd:constant type="cd:name"/ -->
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="comando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dilata">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definiscielencocombinato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:list"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="impostaelencocombinato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="impostaelencocombinato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="livello">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="4"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="corrente"/>
- </cd:parameter>
- <cd:inherit name="impostaelenco" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="metti"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostaelencocombinato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completecombinedlist" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="completo"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostaelencocombinato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupnumbering" file="core-num.tex">
- <cd:sequence>
- <cd:string value="impostanumerazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="modo">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupformulas" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="impostaformule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="centro"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="centro"/>
- <cd:constant type="center"/>
- </cd:parameter>
- <cd:parameter name="marginesinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginedestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rientrasuccessivo">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="spazioprima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separatore">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="conversione">
- <cd:constant type="numeri"/>
- <cd:constant type="lettere"/>
- <cd:constant type="Lettere"/>
- <cd:constant type="numeriromani"/>
- <cd:constant type="Numeriromani"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="publication" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="pubblicazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppublications" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="impostapubblicazioni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="apa"/>
- <cd:constant type="normale"/>
- </cd:parameter>
- <cd:inherit name="impostaenumerazioni" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="impostarighe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rientro">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="spazio">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="impaccato"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="lines" type="environment">
- <cd:sequence>
- <cd:string value="lines"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupparagraphnumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="impostanumerazionecapoversi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- <cd:constant type="reimposta"/>
- <cd:constant type="riga"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplinenumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="impostanumerazionerighe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="conversione">
- <cd:constant type="numeri"/>
- <cd:constant type="lettere"/>
- <cd:constant type="Lettere"/>
- <cd:constant type="numeriromani"/>
- <cd:constant type="Numeriromani"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="inizia">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="passo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="centro"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="margine"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="insinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="indestra"/>
- <cd:constant type="interno"/>
- <cd:constant type="esterno"/>
- <cd:constant type="testo"/>
- <cd:constant type="begin"/>
- <cd:constant type="end"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prefisso">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="referencing">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="linenumbering" type="environment" file="page-lin.tex"> <!-- mkii/mkiv -->
- <cd:sequence>
- <cd:string value="linenumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="continua"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="line" type="environment">
- <cd:sequence>
- <cd:string value="line"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="someline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="qualcheriga"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="inriga"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinmargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="impostainmargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="entrambi"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="riga">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separatore">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stack">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="impostanumeropagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="numero">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- <cd:constant type="mantieni"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsubpagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="impostanumerosottopagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="modo">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impostarigovuoto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="normale" default="yes"/>
- <cd:constant type="implicito"/>
- <cd:constant type="standard"/>
- <cd:constant type="riga"/>
- <cd:constant type="mezzariga"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="grande"/>
- <cd:constant type="medio"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="fisso"/>
- <cd:constant type="flessibile"/>
- <cd:constant type="globale"/>
- <cd:constant type="ignoto"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="definiscirigovuoto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="impostarigovuoto" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definepapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="definiscidimensionicarta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppaper" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="setuppaper"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="carta">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spaziocima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="backspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="max"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="metodo">
- <cd:constant type="normale"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="impostadimensionicarta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="CD"/>
- <cd:constant type="cd:name"/>
- <cd:constant type="orizzontale"/>
- <cd:constant type="riflesso"/>
- <cd:constant type="ruotato"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="negativo"/>
- <cd:inherit name="impostadimensionicarta" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuparranging" file="page-imp.tex">
- <cd:sequence>
- <cd:string value="impostaparranging"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="disattiva"/>
- <cd:constant type="2*16"/>
- <cd:constant type="2*8"/>
- <cd:constant type="2*4"/>
- <cd:constant type="2*2"/>
- <cd:constant type="2**2"/>
- <cd:constant type="2*2*4"/>
- <cd:constant type="2*4*2"/>
- <cd:constant type="2UP"/>
- <cd:constant type="2DOWN"/>
- <cd:constant type="2SIDE"/>
- <cd:constant type="2TOP"/>
- <cd:constant type="riflesso"/>
- <cd:constant type="ruotato"/>
- <cd:constant type="doppiafaccia"/>
- <cd:constant type="negativo"/>
- <cd:constant type="sfondo"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showprint" file="page-run.tex"> <!-- page-lay.tex -->
- <cd:sequence>
- <cd:string value="mostrastampa"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:inherit name="impostadimensionicarta" n="1"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:inherit name="impostadimensionicarta" n="2"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="impostalayout" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelogo" file="page-log.tex">
- <cd:sequence>
- <cd:string value="definiscilogo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cima"/>
- <cd:constant type="intestazione"/>
- <cd:constant type="piedipagina"/>
- <cd:constant type="fondo"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="nessuno"/>
- <cd:constant type="pagina"/>
- <cd:constant type="bordosinistro"/>
- <cd:constant type="marginesinistro"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- <cd:constant type="destra"/>
- <cd:constant type="marginedestro"/>
- <cd:constant type="bordodestro"/>
- </cd:keywords>
- <cd:assignments n="4" list="yes">
- <cd:parameter name="comando">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelogos" file="page-log.tex">
- <cd:sequence>
- <cd:string value="mettiloghi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupwhitespace">
- <cd:sequence>
- <cd:string value="impostaspaziobianco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="nessuno" default="yes"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="riga"/>
- <cd:constant type="fisso"/>
- <cd:constant type="fisso"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupindenting">
- <cd:sequence>
- <cd:string value="impostarientro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definiscibloccosezione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="impostabloccosezione" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostabloccosezione" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="impostabloccosezione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="numero">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="si"/>
- <cd:constant type="destra"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definiscisezione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="impostasezione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="conversione">
- <cd:constant type="numeri"/>
- <cd:constant type="lettere"/>
- <cd:constant type="Lettere"/>
- <cd:constant type="numeriromani"/>
- <cd:constant type="Numeriromani"/>
- </cd:parameter>
- <cd:parameter name="numeroprecedente">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuphead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="impostatesta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiletesto">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilenumero">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="coloretesto">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="colorenumero">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="numero">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="numeroproprio">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="si"/>
- </cd:parameter>
- <cd:parameter name="continua">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="intestazione">
- <cd:constant type="nessuno"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="alto"/>
- <cd:constant type="nomarcature"/>
- </cd:parameter>
- <cd:parameter name="testo">
- <cd:constant type="nessuno"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="alto"/>
- <cd:constant type="nomarcature"/>
- </cd:parameter>
- <cd:parameter name="piedipagina">
- <cd:constant type="nessuno"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="alto"/>
- <cd:constant type="nomarcature"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="normale"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="centro"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="sospendi">
- <cd:constant type="nessuno"/>
- <cd:constant type="ampio"/>
- <cd:constant type="adatta"/>
- <cd:constant type="riga"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="comandonumero">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="comandotesto">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deepnumbercommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="prefisso">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="mettitesta">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="vuoto"/>
- </cd:parameter>
- <cd:parameter name="incrementanumero">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="cd:list"/>
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="resetnumber">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="espansione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="comando"/>
- </cd:parameter>
- <cd:parameter name="testomargine">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="interazione">
- <cd:constant type="elenco"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:inherit name="impostateste" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="impostanumerotesta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:number"/>
- <cd:constant type="+cd:number"/>
- <cd:constant type="-cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="headnumber">
- <cd:sequence>
- <cd:string value="numerotesta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="determineheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="determinanumerotesta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="currentheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="numerotestacorrente"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="nextsection" generated="yes" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="successivo"/>
- <cd:variable value="capoverso"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definehead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definiscitesta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!--
-
- <cd:feature name="itemgroups" file="strc-itm">
-
- <cd:description language="it"> </cd:description>
-
- -->
-
- <cd:command name="defineitemgroup" file="strc-itm">
- <cd:sequence>
- <cd:string value="defineitemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupitemgroup" file="strc-itm">
- <!-- we mis a few experimental keys here, like alignsymbol and indentation -->
- <cd:sequence>
- <cd:string value="setupitemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="ogni"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes" list="yes">
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="ampio"/>
- <cd:constant type="vicino"/>
- <cd:constant type="impaccato"/>
- <cd:constant type="unpacked"/>
- <cd:constant type="nobianco"/>
- <cd:constant type="prima"/>
- <cd:constant type="dopo"/>
- <cd:constant type="stopper"/>
- <cd:constant type="unito"/>
- <cd:constant type="almargine"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="autointro"/>
- <cd:constant type="lento"/>
- <cd:constant type="ripeti"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="capoverso"/>
- <cd:constant type="intesto"/>
- <cd:constant type="casuale"/>
- <cd:constant type="invertito"/>
- </cd:keywords>
- <cd:assignments n="4" optional="yes" list="yes">
- <cd:parameter name="margine">
- <cd:constant type="no"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginesinistro">
- <cd:constant type="no"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginedestro">
- <cd:constant type="no"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="passo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fattore">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="elementi">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="inizia">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="primaditesta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopotesta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stiletesta">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilemarcatura">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilesimbolo">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stopper">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="simbolo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="symallinea">
- <cd:resolve name="symalign"/>
- </cd:parameter>
- <cd:parameter name="rientrasuccessivo">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="distanzatesto">
- <!-- maybe resolve here too -->
- <cd:constant type="nessuno"/>
- <cd:constant type="grande"/>
- <cd:constant type="medio"/>
- <cd:constant type="piccolo"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="itemgroup" type="environment" generated="yes" file="strc-itm">
- <cd:sequence>
- <cd:variable value="itemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="a"/>
- <cd:constant type="A"/>
- <cd:constant type="KA"/>
- <cd:constant type="n"/>
- <cd:constant type="N"/>
- <cd:constant type="m"/>
- <cd:constant type="r"/>
- <cd:constant type="R"/>
- <cd:constant type="KR"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="continua"/>
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="ampio"/>
- <cd:constant type="vicino"/>
- <cd:constant type="impaccato"/>
- <cd:constant type="stopper"/>
- <cd:constant type="unito"/>
- <cd:constant type="almargine"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="intro"/>
- <cd:constant type="colonne"/>
- <cd:constant type="testo"/>
- <cd:constant type="capoverso"/>
- <cd:constant type="ripeti"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="setupitemgroup" n="4"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="item" environment="yes" shortcut="yes" file="strc-itm">
- <cd:sequence>
- <cd:string value="elemento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <!--
- <cd:command name="item" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="elemento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
- -->
-
- <cd:command name="but">
- <cd:sequence>
- <cd:string value="fondo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="exclusive"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="its">
- <cd:sequence>
- <cd:string value="el"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ran">
- <cd:sequence>
- <cd:string value="ran"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="head">
- <cd:sequence>
- <cd:string value="testa"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mar">
- <cd:sequence>
- <cd:string value="mar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sub">
- <cd:sequence>
- <cd:string value="sub"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sym" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="sim"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nop">
- <cd:sequence>
- <cd:string value="nop"/>
- </cd:sequence>
- </cd:command>
-
- <!-- </cd:feature> -->
-
- <cd:command name="defineregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="definisciregistro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="impostaregistro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="bilanciamento">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilepagina">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiletesto">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="indicatore">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="accoppiamento">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="criterio">
- <cd:constant type="cd:section"/>
- <cd:constant type="locale"/>
- <cd:constant type="tutti"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="simbolo">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="interazione">
- <cd:constant type="numeropagina"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="espansione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="comando"/>
- </cd:parameter>
- <cd:parameter name="referencing">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- <cd:constant type="destra"/>
- </cd:parameter>
- <cd:parameter name="ampiezzamax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="riferimentoingoto">
- <cd:constant type="vuoto"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="A"/>
- <cd:constant type="B"/>
- </cd:parameter>
- <cd:parameter name="prefisso">
- <cd:constant type="entrambi"/>
- <cd:constant type="primo"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="compress">
- <cd:constant type="no"/>
- <cd:constant type="si"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="register" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:variable value="registro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="startregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="inizia"/>
- <cd:variable value="registro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetoregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="scriviinregistro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupledregister" generated="yes">
- <cd:sequence>
- <cd:string value="accoppiato"/>
- <cd:variable value="registro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupleregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="accoppiaregistro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeregister" variant="1" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="mettiregistro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostaregistro" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="seeregister" generated="yes">
- <cd:sequence>
- <cd:string value="vedi"/>
- <cd:variable value="registro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:index n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completeregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="completo"/>
- <cd:variable value="registro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
- <cd:inherit name="impostaregistro" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="metti"/>
- <cd:variable value="registro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
- <cd:inherit name="impostaregistro" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definiscisinonimi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="impostasinonimi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stiletesto">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilesinonimi">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="cima"/>
- <cd:constant type="vicino"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="insinistra"/>
- <cd:constant type="indestra"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="criterio">
- <cd:constant type="tutti"/>
- <cd:constant type="usato"/>
- </cd:parameter>
- <cd:parameter name="conversione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="espansione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="comando"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synonym" generated="yes">
- <cd:sequence>
- <cd:variable value="synonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="loadsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="carica"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definesorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definisciordinamento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="impostaordinamento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="criterio">
- <cd:constant type="tutti"/>
- <cd:constant type="usato"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="espansione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="comando"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sort" generated="yes">
- <cd:sequence>
- <cd:variable value="sort"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="loadsorts" generated="yes">
- <cd:sequence>
- <cd:string value="carica"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definemakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="definiscimakeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="impostamakeup" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="makeup" type="environment">
- <cd:sequence>
- <cd:string value="makeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostamakeup" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="impostamakeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="sinistra"/>
- <cd:constant type="si"/>
- <cd:constant type="destra"/>
- </cd:parameter>
- <cd:parameter name="comandi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="doppiafaccia">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="vuoto"/>
- </cd:parameter>
- <cd:parameter name="statointestazione">
- <cd:constant type="normale"/>
- <cd:constant type="termina"/>
- <cd:constant type="inizia"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="nomarcature"/>
- </cd:parameter>
- <cd:parameter name="statopdp">
- <cd:constant type="normale"/>
- <cd:constant type="termina"/>
- <cd:constant type="inizia"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="nomarcature"/>
- </cd:parameter>
- <cd:parameter name="statotesto">
- <cd:constant type="normale"/>
- <cd:constant type="termina"/>
- <cd:constant type="inizia"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="nomarcature"/>
- </cd:parameter>
- <cd:parameter name="statocima">
- <cd:constant type="termina"/>
- <cd:constant type="inizia"/>
- </cd:parameter>
- <cd:parameter name="statofondo">
- <cd:constant type="termina"/>
- <cd:constant type="inizia"/>
- </cd:parameter>
- <cd:parameter name="statopagina">
- <cd:constant type="termina"/>
- <cd:constant type="inizia"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="namemakeup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="nome"/>
- <cd:string value="makeup"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="version">
- <cd:sequence>
- <cd:string value="versione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="finale" default="yes"/>
- <cd:constant type="concetto"/>
- <cd:constant type="temporaneo"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="currentdate">
- <cd:sequence>
- <cd:string value="datadioggi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:inherit name="data" n="2"/> <!-- or vice versa :) -->
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="date" file="core-con.tex">
- <cd:sequence>
- <cd:string value="data"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes"> <!-- if not given, current date is used -->
- <cd:parameter name="d">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="giorno"/>
- <cd:constant type="mese"/>
- <cd:constant type="anno"/>
- <cd:constant type="giornosettimana"/>
- <cd:constant type="d"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/> <!-- also j -->
- <cd:constant type="w"/>
- <cd:constant type="dd"/>
- <cd:constant type="mm"/>
- <cd:constant type="yy"/> <!-- also jj -->
- <cd:constant type="spazio"/>
- <cd:constant type="--"/>
- <cd:constant type="day+"/>
- <cd:constant type="d+"/>
- <cd:constant type="dd+"/>
- <cd:constant type="referral"/>
- <cd:constant type="cd:text"/> <!-- any other text -->
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="referraldate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="datareferral"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="indenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="rientro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="noindenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nienterientro"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="blank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="rigovuoto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande" default="yes"/>
- <cd:constant type="nobianco"/>
- <cd:constant type="dietro"/>
- <cd:constant type="bianco"/>
- <cd:constant type="disattiva"/>
- <cd:constant type="forza"/>
- <cd:constant type="reimposta"/>
- <cd:constant type="riga"/>
- <cd:constant type="mezzariga"/>
- <cd:constant type="cd:formula"/>
- <cd:constant type="fisso"/>
- <cd:constant type="flessibile"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="sempre"/>
- <cd:constant type="esterno"/>
- <cd:constant type="unito"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="packed" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impaccato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="rigovuoto"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="unpacked" type="environment">
- <cd:sequence>
- <cd:string value="unpacked"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="linecorrection" type="environment">
- <cd:sequence>
- <cd:string value="linecorrection"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="correctwhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="correggispaziobianco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="postponing" type="environment">
- <cd:sequence>
- <cd:string value="postponing"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="local" type="environment">
- <cd:sequence>
- <cd:string value="locale"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="narrower" type="environment">
- <cd:sequence>
- <cd:string value="narrower"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro" default="yes"/>
- <cd:constant type="destra"/>
- <cd:constant type="-left"/>
- <cd:constant type="-middle"/>
- <cd:constant type="-right"/>
- <cd:constant type="-none"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hiding" type="environment">
- <cd:sequence>
- <cd:string value="hiding"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupalign" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impostaallineamento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="ampiezza"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- <cd:constant type="interno"/>
- <cd:constant type="esterno"/>
- <cd:constant type="ampio"/>
- <cd:constant type="ampio"/>
- <cd:constant type="altezza"/>
- <cd:constant type="fondo"/>
- <cd:constant type="riga"/>
- <cd:constant type="reimposta"/>
- <cd:constant type="sospeso"/>
- <cd:constant type="nonsospeso"/>
- <cd:constant type="sillabato"/>
- <cd:constant type="nonsillabato"/>
- <cd:constant type="lesshyphenation"/>
- <cd:constant type="morehyphenation"/>
- <cd:constant type="nuovo"/>
- <cd:constant type="old"/>
- <cd:constant type="normale"/>
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="flushouter"/>
- <cd:constant type="flushinner"/>
- <cd:constant type="center"/>
- <cd:constant type="hz"/>
- <cd:constant type="nohz"/>
- <cd:constant type="spaziatura"/>
- <cd:constant type="nospacing"/>
- <cd:constant type="tollerante"/>
- <cd:constant type="moltotollerante"/>
- <cd:constant type="dilata"/>
- <cd:constant type="extremestretch"/>
- <cd:constant type="lefttoright"/>
- <cd:constant type="righttoleft"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
-
- <cd:command name="alignment" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="alignment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="impostaallineamento" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupspacing">
- <cd:sequence>
- <cd:string value="impostaspaziatura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="ampio"/>
- <cd:constant type="impaccato"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptolerance" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impostatolleranza"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="orizzontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="dilata"/>
- <cd:constant type="spazio"/>
- <cd:constant type="moltorigido" default="yes"/>
- <cd:constant type="rigido"/>
- <cd:constant type="tollerante"/>
- <cd:constant type="moltotollerante"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!-- cd:command name="pagetype" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="pagetype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command -->
-
- <cd:command name="processpage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="elaborapagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="si" default="yes"/>
- <cd:constant type="no"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplepage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="accoppiapagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="opzione">
- <cd:constant type="doppiafaccia"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="position" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="posizione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:position n="1" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupscreens" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="impostaschermi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="metodo">
- <cd:constant type="punto"/>
- <cd:constant type="linea"/>
- <cd:constant type="esterno"/>
- </cd:parameter>
- <cd:parameter name="risoluzione">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="fattore">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="schermo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbackgrounds" file="page-bck.tex">
- <cd:sequence>
- <cd:string value="impostasfondi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cima"/>
- <cd:constant type="intestazione"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="piedipagina"/>
- <cd:constant type="fondo"/>
- <cd:constant type="pagina"/>
- <cd:constant type="carta"/>
- <cd:constant type="paginasinistra"/>
- <cd:constant type="paginadestra"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="bordosinistro"/>
- <cd:constant type="marginesinistro"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="marginedestro"/>
- <cd:constant type="bordodestro"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- <cd:constant type="cd:repeat"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="buffer" type="environment" generated="yes" file="core-buf.tex">
- <cd:sequence>
- <cd:variable value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="buffer" type="environment" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="getbuffer">
- <cd:sequence>
- <cd:string value="prendibuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="typebuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definiscibuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="impostabuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="capoverso">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definisciblocco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomoreblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="bastablocchi"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="hideblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="nascondiblocchi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="keepblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="tieniblocchi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="tutti"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="usablocco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="processblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="elaborablocchi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="bypassblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="saltablocchi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="forceblocks">
- <cd:sequence>
- <cd:string value="forzablocchi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="selectblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="selezionablocchi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="criterio">
- <cd:constant type="tutti"/>
- <cd:constant type="cd:section"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="impostablocco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interno">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="formula" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="formula"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="mathematics" file="supp-mat.tex">
- <cd:sequence>
- <cd:string value="matematica"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="mettiformula"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2" optional="yes"/>
- <cd:displaymath n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placesubformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="mettisottoformula"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2" optional="yes"/>
- <cd:displaymath n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placefloat" generated="yes" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="metti"/>
- <cd:variable value="oggettomobile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="qui" default="yes"/>
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- <cd:constant type="insinistra"/>
- <cd:constant type="indestra"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="margine"/>
- <cd:constant type="marginesinistro"/>
- <cd:constant type="marginedestro"/>
- <cd:constant type="bordosinistro"/>
- <cd:constant type="bordodestro"/>
- <cd:constant type="margineinterno"/>
- <cd:constant type="margineesterno"/>
- <cd:constant type="bordointerno"/>
- <cd:constant type="bordoesterno"/>
- <cd:constant type="interno"/>
- <cd:constant type="esterno"/>
- <cd:constant type="riga"/>
- <cd:constant type="alto"/>
- <cd:constant type="basso"/>
- <cd:constant type="adatta"/>
- <cd:constant type="pagina"/>
- <cd:constant type="paginasinistra"/>
- <cd:constant type="paginadestra"/>
- <cd:constant type="opposto"/>
- <cd:constant type="sempre"/>
- <cd:constant type="auto"/>
- <cd:constant type="forza"/>
- <cd:constant type="alto"/>
- <cd:constant type="reimposta"/>
- <cd:constant type="riga"/>
- <cd:constant type="altezza"/>
- <cd:constant type="profondita"/>
- <cd:constant type="separa"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes" list="yes"/>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reservefloat" generated="yes">
- <cd:sequence>
- <cd:string value="riserva"/>
- <cd:variable value="oggettomobile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cornice">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:reference n="3" optional="yes" list="yes"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="definiscioggettomobile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="impostaoggettomobile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezzamax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezzamax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ampiezzamin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="implicito">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="limitipagina">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="distanzamarginesinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanzamarginedestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro"/>
- <cd:constant type="destra"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="floattext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="oggettomobile"/>
- <cd:string value="testo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="alto"/>
- <cd:constant type="centro"/>
- <cd:constant type="basso"/>
- <cd:constant type="offset"/>
- <cd:constant type="alto"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="completelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="referral" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="referral"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="bet">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ken">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dat">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="van">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aan">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ref">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="selectpaper">
- <cd:sequence>
- <cd:string value="selezionacarta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="famiglia">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplepaper">
- <cd:sequence>
- <cd:string value="accoppiacarta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="chem" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="chim"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fraction" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="frazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="periods" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="punti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="items">
- <cd:sequence>
- <cd:string value="elementi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="impostaelementi" n="1"/>
- </cd:assignments>
- <cd:content n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupitems" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="impostaelementi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- </cd:parameter>
- <cd:parameter name="simbolo">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:text"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- <cd:constant type="ignoto"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quotation" type="environment" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="centro" default="yes"/>
- <cd:constant type="destra"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quotation" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="menzione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupquote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="impostamenzione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="cd:text"/>
- <cd:constant type="margine"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="definiscicapoversi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="linea">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="adatta"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interno">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolleranza">
- <cd:constant type="moltorigido"/>
- <cd:constant type="rigido"/>
- <cd:constant type="tollerante"/>
- <cd:constant type="moltotollerante"/>
- <cd:constant type="dilata"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="paragraph" generated="yes">
- <cd:sequence>
- <cd:variable value="capoverso"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="paragraph" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="capoverso"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="impostacapoversi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="ogni"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="tolleranza">
- <cd:constant type="moltorigido"/>
- <cd:constant type="rigido"/>
- <cd:constant type="tollerante"/>
- <cd:constant type="moltotollerante"/>
- <cd:constant type="dilata"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interno">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="comando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="linea">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptab" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="impostatab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="campione">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stiletesta">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tab">
- <cd:sequence>
- <cd:string value="tab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="document" type="environment">
- <cd:sequence>
- <cd:string value="document"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labels">
- <cd:sequence>
- <cd:string value="etichette"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="definiscitabulato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tabulate" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="tabulato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostafigureesterne" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="impostatabulato"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="unita">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rientro">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="interno">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="EQ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="colorelinea">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="spessorelinea">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="rigovuoto"/>
- <cd:constant type="griglia"/>
- <cd:constant type="profondita"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="fonttesto">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="linea">
- <cd:constant type="normale"/>
- <cd:constant type="riga"/>
- </cd:parameter>
- <cd:parameter name="separa">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptables" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="impostatabelle"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="distanza">
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- <cd:parameter name="fonttesto">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="HL">
- <cd:constant type="cd:number"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="VL">
- <cd:constant type="cd:number"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="profondita">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="spessorelinea">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colorelinea">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="comandi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="sfondo">
- <cd:constant type="schermo"/>
- <cd:constant type="colore"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="schermosfondo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="coloresfondo">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="fonttesto">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="table" type="environment">
- <cd:sequence>
- <cd:string value="table"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tables" type="environment">
- <cd:sequence>
- <cd:string value="tables"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetabletemplate" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="definiscimodellotabella"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfiles" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="usafileesterni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="fonttesto">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfile" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="usafileesterno"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="4" list="yes">
- <cd:parameter name="fonttesto">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="usafiguraesterna"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:name"/> <!-- parent -->
- </cd:keywords>
- <cd:assignments n="4" optional="yes" list="yes">
- <cd:inherit name="impostafigureesterne" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="externalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="figuraesterna"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostafigureesterne" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="impostafigureesterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="scala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="fattore">
- <cd:constant type="max"/>
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- </cd:parameter>
- <cd:parameter name="wfactor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="ampio"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="hfactor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="ampio"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cornice">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="preimpostato">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="display">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="anteprima">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="ripeti">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="oggetto">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="type">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="metodo">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="cornice"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="test"/>
- </cd:parameter>
- <cd:parameter name="cornici">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="ymax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xmax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="directory">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="locale"/>
- <cd:constant type="globale"/>
- <cd:constant type="implicito"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="ampiezzamax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezzamax">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="conversione">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prefisso">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interazione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- <!-- more will follow -->
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="mostrafiguresterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalsoundtrack" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="usacolonnasonoraesterna"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="name" file="syst-gen.tex">
- <cd:sequence>
- <cd:string value="name"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="legend" type="environment">
- <cd:sequence>
- <cd:string value="legend"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="due"/>
- </cd:keywords>
- <cd:tex n="2" command="leg"/>
- <cd:nothing n="3"/>
- <cd:nothing n="4" separator="backslash"/>
- <cd:nothing n="5" separator="backslash"/>
- <cd:tex n="6" separator="backslash" command="leg"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fact" type="environment">
- <cd:sequence>
- <cd:string value="fatto"/>
- </cd:sequence>
- <cd:arguments>
- <cd:tex n="1" command="fact"/>
- <cd:nothing n="2"/>
- <cd:nothing n="3" separator="backslash"/>
- <cd:nothing n="4" separator="backslash"/>
- <cd:tex n="5" separator="backslash" command="fact"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="rotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="ruota"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="impostarotazione" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuprotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="impostarotazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="rotazione">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="normale"/>
- <cd:constant type="alto"/>
- <cd:constant type="adatta"/>
- <cd:constant type="ampio"/>
- <cd:constant type="profondita"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mirror" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="riflessione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="scale" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="scala"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="sx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcombinations" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="impostacombinazioni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="cima"/>
- <cd:constant type="centro"/>
- <cd:constant type="fondo"/>
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="combination" type="environment">
- <cd:sequence>
- <cd:string value="combination"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:matrix"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placesidebyside" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="mettifiancoafianco"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeontopofeachother" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="mettiunosullaltro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overlay" type="environment">
- <cd:sequence>
- <cd:string value="overlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overview" type="environment">
- <cd:sequence>
- <cd:string value="overview"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionscreen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostaschermointerazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="adatta"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="backspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spaziocima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="horoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="veroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="max"/>
- <cd:constant type="adatta"/>
- <cd:constant type="doppiafaccia"/>
- <cd:constant type="facciasingola"/>
- <cd:constant type="auto"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="segnalibro"/>
- </cd:parameter>
- <cd:parameter name="attesa">
- <cd:constant type="cd:number"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="screen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="schermo"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setuppagetransitions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostatransizionepagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="reimposta"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteraction" file="core-nav.tex">
- <cd:sequence>
- <cd:string value="impostainterazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="menu">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="click">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="separa">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="display">
- <cd:constant type="nuovo"/>
- </cd:parameter>
- <cd:parameter name="azioneapri">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="azionechiudi">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="azioneapripagina">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="azionechiudipagina">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="calcola">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="profondita">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="colorecontrasto">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="setsimboli">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titolo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="sottotitolo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autore">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="data">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="parolachiave">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <!-- maybe this will move elsewhere -->
- <cd:parameter name="fieldlayer">
- <cd:constant type="auto"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostamenuinterazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="centro">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- <cd:constant type="nessuno"/>
- <cd:constant type="locale"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="colorecontrasto">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="sovrapponi"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stessapagina">
- <cd:constant type="si"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="no"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="riferimentoingoto">
- <cd:constant type="si"/>
- <cd:constant type="vuoto"/>
- <cd:constant type="no"/>
- <cd:constant type="nessuno"/>
- </cd:parameter>
- <cd:parameter name="offsetsinistro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetdestro">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetcima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetfondo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="posizione">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato" n="2"/> <!-- maybe not all parameters from framed -->
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definiscimenuinterazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostamenuinterazione" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definiscimenuinterazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="impostamenuinterazione" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionmenu" type="environment">
- <cd:sequence>
- <cd:string value="menuinterattivo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="disableinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="disabilitamenuinterazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="cima"/>
- <cd:constant type="fondo"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternaldocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="usadocumentoesterno"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="file"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useURL" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="usaURL"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="file"/>
- </cd:keywords>
- <cd:keywords n="4">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupledocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="accoppiadocumento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="file"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="from" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="da"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="exclusive"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionbar">
- <cd:sequence>
- <cd:string value="barrainterazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:inherit name="impostabarrainterazione" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="pulsantinterazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="impostabarrainterazione" n="1"/>
- </cd:assignments>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostabarrainterazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="alternativa">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- <cd:constant type="e"/>
- <cd:constant type="f"/>
- <cd:constant type="g"/>
- </cd:parameter>
- <cd:parameter name="simbolo">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="altezza"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="altezza"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="profondita">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="passo">
- <cd:constant type="cd:number"/>
- <cd:constant type="piccolo"/>
- <cd:constant type="medio"/>
- <cd:constant type="grande"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synchronize" file="core-int.tex">
- <cd:sequence>
- <cd:string value="sincronizza"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="synchronization" type="environment">
- <cd:sequence>
- <cd:string value="synchronization"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupsynchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostabarrasincronizzazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="pagina"/>
- <cd:constant type="locale"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="altezza"/>
- <cd:constant type="adatta"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="barrasincronizzazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="alternativa">
- <cd:constant type="pagina"/>
- <cd:constant type="locale"/>
- </cd:parameter>
- <cd:inherit name="impostabarrasincronizzazione" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsynchronization" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostasincronizzazione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definisciprofilo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupprofiles" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostaprofili"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="opzione">
- <cd:constant type="test"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="profile" type="environment">
- <cd:sequence>
- <cd:string value="profile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seguiprofilo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placebookmarks" file="core-int.tex">
- <cd:sequence>
- <cd:string value="mettisegnalibro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="tutti"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:parameter name="forza">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="bookmark" file="core-int.tex">
- <cd:sequence>
- <cd:string value="segnalibro"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="version" type="environment">
- <cd:sequence>
- <cd:string value="versione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupversions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostaversioni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="numero">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="markversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="marcaversione"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="selectversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="selezionaversione"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="defineversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definisciversion"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seguiversione"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followprofileversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seguiversioneprofilo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineprogram" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definisciprogramma"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupprograms" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="impostaprogrammi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="directory">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="program" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="programma"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="figure" type="environment">
- <cd:sequence>
- <cd:string value="figure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="fattore">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="cornice">
- <cd:constant type="attivo"/>
- <cd:constant type="disattivo"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- referring*figure skipped -->
-
- <!-- marking*figure skipped -->
-
- <!-- remark skipped -->
-
- <cd:command name="goto" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="vaia"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:content n="2" interactive="exclusive"/>
- <cd:reference n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="gotobox" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="vaiabox"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="button" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="pulsante"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="impostapulsanti" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:reference n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="impostapulsanti"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- menubutton skipped -->
-
- <cd:command name="setupcomment" file="core-int.tex">
- <cd:sequence>
- <cd:string value="impostacommento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titolo">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="spazio">
- <cd:constant type="si"/>
- <cd:constant type="no"/>
- </cd:parameter>
- <cd:parameter name="simbolo">
- <cd:constant type="normale"/>
- <cd:constant type="Nuovo"/>
- <cd:constant type="Pallone"/>
- <cd:constant type="Aggiunta"/>
- <cd:constant type="Aiuto"/>
- <cd:constant type="Capoverso"/>
- <cd:constant type="Tasto"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="max"/>
- <cd:constant type="buffer"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comment" type="environment">
- <cd:sequence>
- <cd:string value="comment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostacommento" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comment">
- <cd:sequence>
- <cd:string value="comment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="impostacommento" n="1"/>
- </cd:assignments>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definiscicampo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1"> <!-- name -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2"> <!-- type -->
- <cd:constant type="testo"/>
- <cd:constant type="riga"/> <!-- equal to text -->
- <cd:constant type="push"/>
- <cd:constant type="check"/>
- <cd:constant type="radio"/>
- <cd:constant type="combo"/>
- <cd:constant type="choice"/> <!-- equal to combo -->
- <cd:constant type="popup"/> <!-- equal to combo -->
- </cd:keywords>
- <cd:keywords n="3"> <!-- group -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4" list="yes"> <!-- optional for text? -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes"> <!-- default -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesubfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definiscisottocampo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="copyfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="copiacampo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="clonefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="clonacampo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="field" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="campi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fitfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="adattacampo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="camporiempimento"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tooltip" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="tooltip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="sinistra"/>
- <cd:constant type="destra"/>
- <cd:constant type="centro"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="mostracampi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="logfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="logcampi"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="impostacampo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="etichetta"/>
- <cd:constant type="orizzontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="cornice"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="impostacampi" n="2"/>
- </cd:assignments>
- <cd:assignments n="4" list="yes"> </cd:assignments>
- <cd:assignments n="5" list="yes"> </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="impostacampi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- TODO: if it's reset, only a single argument, no list -->
- <cd:constant type="reimposta"/>
- <cd:constant type="etichetta"/>
- <cd:constant type="orizzontale"/>
- <cd:constant type="verticale"/>
- <cd:constant type="cornice"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="prima">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dopo">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="colore">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stile">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="allinea">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="opzione">
- <cd:constant type="solalettura"/>
- <cd:constant type="richiestp"/>
- <cd:constant type="protetto"/>
- <cd:constant type="ordinato"/>
- <cd:constant type="nondisponibile"/>
- <cd:constant type="nascosto"/>
- <cd:constant type="stampabile"/>
- </cd:parameter>
- <cd:parameter name="clickdentro">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="clickfuori">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="entraregione">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="esciregione">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="dopotasto">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="format">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="verifica">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="calcola">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="offsetcampo">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colorecornicecampo">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="coloresfondocampo">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="impostaincorniciato" n="2"/>
- </cd:assignments>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="impostacampi" n="2"/>
- </cd:assignments>
- <cd:assignments n="4" list="yes">
- <cd:inherit name="impostacampi" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupforms" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="impostaforms"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="metodo">
- <cd:constant type="HTML"/>
- <cd:constant type="FDF"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definiscistackcampi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="impostacampi" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="stackcampi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="impostacampi" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="clip" file="core-trf.tex">
- <cd:sequence>
- <cd:string value="clip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="impostaclippling" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupclipping" file="core-trf.tex">
- <cd:sequence>
- <cd:string value="impostaclippling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stato">
- <cd:constant type="inizia"/>
- <cd:constant type="termina"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="sx">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="offsetsinistro">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="offsetdestro">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="offsetcima">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="offsetfondo">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="mp">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelegend">
- <cd:sequence>
- <cd:string value="mettilegenda"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplegend">
- <cd:sequence>
- <cd:string value="impostalegenda"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distanza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tra">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ampiezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="altezza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="luogo">
- <cd:constant type="destra"/>
- <cd:constant type="fondo"/>
- </cd:parameter>
- <cd:parameter name="fonttesto">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impostastrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="si" default="yes"/>
- <cd:constant type="no"/>
- <cd:constant type="cap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usetypescriptfile" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="usetypescriptfile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usetypescript" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="usetypescript"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetypeface" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="definetypeface"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="rm"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="mm"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="6" optional="yes">
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="rscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="encoding">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="testo">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefontfeature" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="definefontfeature"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="no">
- <cd:parameter name="compose">
- <cd:constant type="no" default="yes"/>
- <cd:constant type="si"/>
- </cd:parameter>
- <cd:parameter name="mode">
- <cd:constant type="node"/>
- <cd:constant type="base" default="yes"/>
- </cd:parameter>
- <cd:parameter name="tlig">
- <cd:constant type="no" default="yes"/>
- <cd:constant type="si"/>
- </cd:parameter>
- <cd:parameter name="trep">
- <cd:constant type="no" default="yes"/>
- <cd:constant type="si"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="language">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="..tag.."> <!-- can't use &gt; here, \showsetup gives an error -->
- <cd:constant type="no" default="yes"/>
- <cd:constant type="si"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefonthandling" file="hand-ini.mkii">
- <cd:sequence>
- <cd:string value="definefonthandling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name" list="yes"/>
- </cd:keywords>
- <cd:assignments n="3">
- <cd:parameter name="type">
- <cd:constant type="sospeso" default="yes"/>
- <cd:constant type="hz"/>
- <cd:constant type="spaziatura"/>
- <cd:constant type="tag"/>
- </cd:parameter>
- <cd:parameter name="destra">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sinistra">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="fattore">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="min">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="max">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="passo">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfonthandling" file="hand-ini.mkii">
- <cd:sequence>
- <cd:string value="setupfonthandling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:inherit name="definefonthandling" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- mkii:
-
- <cd:command name="definefontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definiscisinonimofont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="encoding">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="handling">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="mapping">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="definefontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definiscisinonimofont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="fallbacks">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="goodies">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="setupfontsynonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:inherit name="definiscisinonimofont" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mapfontsize" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="mapfontsize"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definedfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definedfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="definiscifont" n="2"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
-</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkii/cont-nl.xml b/Master/texmf-dist/tex/context/interface/mkii/cont-nl.xml
deleted file mode 100644
index ac0b3a4dd50..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkii/cont-nl.xml
+++ /dev/null
@@ -1,10396 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- versions:
-
- comment : user interface definitions of ConTeXt
-
- authors : Hans Hagen, Taco Hoekwater, Patrick Gundlach, Wolfgang Schuster, and others
-
- versions : 2004.11.17 : initial version
- 2006.08.02 : define + resolve
-
--->
-
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context test" language="en" version="2006.08.02">
-
- <!-- there are some more -->
-
- <cd:define name="align">
- <cd:constant type="binnen"/>
- <cd:constant type="buiten"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="lijnlinks"/>
- <cd:constant type="lijnrechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="centreer"/>
- <cd:constant type="normaal"/>
- <cd:constant type="nee"/>
- <cd:constant type="ja"/>
- <cd:constant type="ruim"/>
- <cd:constant type="laatste"/>
- <cd:constant type="r2l"/>
- <cd:constant type="l2r"/>
- </cd:define>
-
- <cd:define name="symalign">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="lijnlinks"/>
- <cd:constant type="lijnrechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="centreer"/>
- </cd:define>
-
- <cd:define name="indenting">
- <cd: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:define name="texts">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="datum"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="paginanummer"/>
- </cd:define>
-
- <cd:define name="layout-h">
- <cd:constant type="tekst" default="yes"/>
- <cd:constant type="marge"/>
- <cd:constant type="rand"/>
- </cd:define>
-
- <cd:define name="layout-v">
- <cd:constant type="boven"/>
- <cd:constant type="hoofd"/>
- <cd:constant type="tekst" default="yes"/>
- <cd:constant type="voet"/>
- <cd:constant type="onder"/>
- </cd:define>
-
- <cd:define name="bodyfont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="groot"/>
- </cd:define>
-
- <cd:command name="installlanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="installeertaal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="spatiering">
- <cd:constant type="opelkaar" default="yes"/>
- <cd:constant type="ruim"/>
- </cd:parameter>
- <cd:parameter name="lefthyphenmin">
- <cd:constant type="cd:number" default="2"/>
- </cd:parameter>
- <cd:parameter name="righthyphenmin">
- <cd:constant type="cd:number" default="2"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="linkerzin">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="rechterzin">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="linkersubzin">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="rechtersubzin">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="linkerciteer">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechterciteer">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="linkercitaat">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechtercitaat">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="linkeruitspraak">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="middenuitspraak">
- <cd:constant type="cd:command" default=""/>
- </cd:parameter>
- <cd:parameter name="rechteruitspraak">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="limiettekst">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="datum">
- <cd:constant type="cd:text"/> <!-- TODO -->
- </cd:parameter>
- <cd:parameter name="koppelteken">
- <cd:constant type="cd:command" default="\compoundhyphen"/>
- </cd:parameter>
- <cd:parameter name="linkerkoppelteken">
- <cd:constant type="cd:command" default="\compoundhyphen"/>
- </cd:parameter>
- <cd:parameter name="rechterkoppelteken">
- <cd:constant type="cd:command" default=""/>
- </cd:parameter>
- <cd:parameter name="default">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="steltaalin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="installeertaal" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="language" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="taal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mainlanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="hoofdtaal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="translate" file="lang-lab.tex" category="language">
- <cd:sequence>
- <cd:string value="vertaal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useencoding" file="enco-ini.tex" category="encoding" obsolete="yes"> <!-- engine="pdftex" -->
- <cd:sequence>
- <cd:string value="usecodering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usespecials" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="gebruikspecials"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="definieeruitvoer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="steluitvoerin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontenvironment" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definieerkorpsomgeving"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes"> <!-- it's possible to use 1+2+3, 2+3, what about 1+2? -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="no"> <!-- have to force no, otherwise \showsetup is wrong ! -->
- <cd:constant type="5pt"/> <!-- TODO: maybe <cd:resolve name="bodyfont"/> -->
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="default"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:parameter name="tekst">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scriptscript">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="xx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="d">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="klein">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="groot">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="interlinie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="em">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbodyfontenvironment" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="stelkorpsomgevingin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes"> <!-- same as definebodyfontenvironment; you can define the whole commant to inherit, not only parameters-->
- <cd:inherit name="definieerkorpsomgeving" n="1"/>
- </cd:keywords>
- <cd:keywords n="2" optional="no">
- <cd:inherit name="definieerkorpsomgeving" n="2" optional="no"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="definieerkorpsomgeving" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showbodyfontenvironment" file="font-run.tex" category="fonts"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="toonkorpsomgeving"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="stelkorpsin" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definieerkorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- <cd:constant type="default"/> -->
- <cd:resolve name="bodyfont"/> <!-- TODO: check this -->
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="rm" default="yes"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- <cd:constant type="mm"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="tf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sl">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="it">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bs">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mr">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ex">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ma">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mb">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="md">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontDEF" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definieerkorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="stelkorpsin" n="2"/>
- </cd:keywords>
- <cd:keywords n="1">
- <cd:inherit name="stelkorpsin" n="3"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontREF" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definieerkorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="stelkorpsin" n="1"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="stelkorpsin" n="2"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showbodyfont" file="font-run.tex" category="fonts"> <!-- visual debugging -->
- <cd:sequence>
- <cd:string value="toonkorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="stelkorpsin" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbodyfont" file="font-run.tex" category="fonts">
- <cd:sequence>
- <cd:string value="stelkorpsin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- TODO: many missing, maybe also <cd:resolve name="bodyfont"/> -->
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="regular"/>
- <cd:constant type="romaan"/>
- <cd:constant type="sans"/>
- <cd:constant type="support"/>
- <cd:constant type="schreefloos"/>
- <cd:constant type="mono"/>
- <cd:constant type="type"/>
- <cd:constant type="teletype"/>
- <cd:constant type="handschrift"/>
- <cd:constant type="calligrafie"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="switchtobodyfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="switchnaarkorps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="regular"/>
- <cd:constant type="romaan"/>
- <cd:constant type="sans"/>
- <cd:constant type="support"/>
- <cd:constant type="schreefloos"/>
- <cd:constant type="mono"/>
- <cd:constant type="type"/>
- <cd:constant type="teletype"/>
- <cd:constant type="handschrift"/>
- <cd:constant type="calligrafie"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="klein"/>
- <cd:constant type="groot"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definieerfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="stelkleurin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolors" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="stelkleurenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="globaal"/>
- <cd:constant type="lokaal"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="altijd"/>
- <cd:constant type="nooit"/>
- </cd:parameter>
- <cd:parameter name="reductie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="rgb">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="cmyk">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="mpcmyk">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="mpspot">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="tekstkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="splitsen">
- <cd:constant type="c"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/>
- <cd:constant type="k"/>
- <cd:constant type="p"/>
- <cd:constant type="s"/>
- <cd:constant type="nee"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="alles"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="intent">
- <cd:constant type="geen"/>
- <cd:constant type="overprint"/>
- <cd:constant type="knockout"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definieerkleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="r">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="g">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="k">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="s">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="h">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="t">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="p">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="e">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="color" type="environment" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="kleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="color" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="kleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="graycolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="grijskleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showcolor" file="colo-run.tex" category="colors"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="toonkleur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definepalet" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definieerpalet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppalet" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="stelpaletin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecolorgroup" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definieerkleurgroep"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="rgb" default="yes"/>
- <cd:constant type="cmyk"/>
- <cd:constant type="grijs"/>
- <cd:constant type="s"/>
- </cd:keywords>
- <cd:triplet n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showpalet" file="colo-run.tex" category="colors"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="toonpalet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="horizontaal"/>
- <cd:constant type="vertikaal"/>
- <cd:constant type="naam"/>
- <cd:constant type="waarde"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showcolorgroup" file="colo-run.tex" category="colors"> <!-- and debug-->
- <cd:sequence>
- <cd:string value="toonkleurgroep"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="horizontaal"/>
- <cd:constant type="vertikaal"/>
- <cd:constant type="naam"/>
- <cd:constant type="waarde"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comparepalet" file="colo-run.tex" category="colors"> <!-- and debug? -->
- <cd:sequence>
- <cd:string value="vergelijkpalet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comparecolorgroup" file="colo-run.tex" category="colors">
- <cd:sequence>
- <cd:string value="vergelijkkleurgroep"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showmakeup" file="supp-vis.tex" category="debug">
- <cd:sequence>
- <cd:string value="toonopmaak"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definetype" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="definieertype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="steltypein" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptype" file="core-ver.tex" category="verbatim"> <!-- TODO -->
- <cd:sequence>
- <cd:string value="steltypein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="spatie">
- <cd:constant type="aan"/>
- <cd:constant type="uit" default="yes"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="schuin"/>
- <cd:constant type="normaal"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="type" file="verb-ini.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="type"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typ" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="typ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tex" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="tex"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <!-- cd:command name="arg" file="core-ver.tex"> command broken
- <cd:sequence>
- <cd:string value="arg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command -->
-
- <cd:command name="definetyping" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="definieertypen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="steltypenin" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="steltypenin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptyping" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="steltypenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="file"/>
- <cd:constant type="typen"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="optie">
- <cd:constant type="schuin"/>
- <cd:constant type="normaal"/>
- <cd:constant type="commandos" version="mkiv"/>
- <cd:constant type="kleur"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="tekst">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="icommando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vcommando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="ccommando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standaard"/>
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="evenmarge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="onevenmarge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="blanko">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="standaard"/>
- <cd:constant type="halveregel"/>
- <cd:constant type="regel"/>
- </cd:parameter>
- <cd:parameter name="escape">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="spatie">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="tab">
- <cd:constant type="cd:number"/>
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="springvolgendein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="palet">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="bereik">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="regels">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="afgebroken"/>
- </cd:parameter>
- <cd:parameter name="leeg">
- <cd:constant type="ja"/>
- <cd:constant type="alles"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="nummeren">
- <cd:constant type="regel"/>
- <cd:constant type="file"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="korps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="strip">
- <cd:constant type="nee"/>
- <cd:constant type="auto"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typing" type="environment" generated="yes" file="verb-ini.tex"
- category="verbatim">
- <cd:sequence>
- <cd:variable value="typen"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="typefile" file="verb-ini.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="typefile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="stelvoetnotenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="conversie">
- <cd:constant type="cijfers"/>
- <cd:constant type="letters"/>
- <cd:constant type="Letters"/>
- <cd:constant type="romeins"/>
- <cd:constant type="Romeins"/>
- </cd:parameter>
- <cd:parameter name="wijze">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="pagina"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="kolommen"/>
- <cd:constant type="eerstekolom"/>
- <cd:constant type="laatstekolom"/>
- <cd:constant type="hoog"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="lijn">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="korps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kolomafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margeafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nummercommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="tekstcommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="splitsen">
- <cd:constant type="soepel"/>
- <cd:constant type="streng"/>
- <cd:constant type="zeerstreng"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="tekstletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="tekstkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="interactie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="alinea">
- <cd:constant type="ja"/>
- <cd:constant type="nee" default="yes"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootnotedefinition" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="stelvoetnootdefinitiein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:inherit name="steldoordefinierenin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="footnote" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="voetnoot"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="footnotetext" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="voetnoottekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="note" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="noot"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="localfootnotes" type="environment" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="lokalevoetnoten"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelocalfootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="plaatslokalevoetnoten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelvoetnotenin" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placefootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="plaatsvoetnoten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelvoetnotenin" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupunderbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="stelonderstrepenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="variant">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- <cd:parameter name="lijndikte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="onderoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bovenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="lijnkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="underbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="underbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="underbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="underbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overstrike" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrike"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overstrikes" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrikes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="romeins"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Romeins"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="numbers" file="core-con.tex">
- <cd:sequence>
- <cd:string value="cijfers"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="letter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Letter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="letters"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Letters"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mediaeval" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mediaeval"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="month" file="core-con.tex">
- <cd:sequence>
- <cd:string value="maand"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="MONTH" file="core-con.tex">
- <cd:sequence>
- <cd:string value="MAAND"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="weekday" file="core-con.tex">
- <cd:sequence>
- <cd:string value="weekdag"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WEEKDAY" file="core-con.tex">
- <cd:sequence>
- <cd:string value="WEEKDAG"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcapitals" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="stelkapitalenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="titel">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="cap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nocap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="nocap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="CAP" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="CAP"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Cap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Caps" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Caps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WORD" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="WOORD"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WORDS" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="WOORDEN"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Word" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Woord"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Words" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Woorden"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="stretched" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="uitgerekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definieersymbool"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefiguresymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definieerfiguursymbool"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="stelexternefigurenin" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="symbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="symbool"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="symbolset" type="environment" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="symbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsymbolset" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="stelsymboolsetin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usesymbols" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="gebruiksymbolen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showsymbolset" file="symb-run.tex" category="symbols"> <!-- and symbols -->
- <cd:sequence>
- <cd:string value="toonsymboolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineconversion" file="core-con.tex">
- <cd:sequence>
- <cd:string value="definieerconversie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="convertnumber" file="core-con.tex">
- <cd:sequence>
- <cd:string value="converteernummer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheadtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="stelkoptekstin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplabeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="stellabeltekstin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="headtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="koptekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="labeltekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarginrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelkantlijnin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="niveau">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="lijndikte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="kantlijn"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="kantlijn"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplinewidth" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stellijndiktein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelomlijndin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/> <!-- defines a command with that name -->
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="hoogte">
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- <cd:constant type="vast"/>
- <cd:constant type="lokaal"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="autobreedte">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="forceer"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="geen"/>
- <cd:constant type="overlay"/>
- <cd:constant type="default"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="diepte"/>
- <cd:constant type="hangend"/>
- <cd:constant type="hoog"/>
- <cd:constant type="laho"/>
- <cd:constant type="laag"/>
- <cd:constant type="boven"/>
- <cd:constant type="midden"/>
- <cd:constant type="onder"/>
- <cd:constant type="handhaaf"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="geen"/>
- <cd:constant type="leeg"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="globaal"/>
- <cd:constant type="lokaal"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="onder">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="boven">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="kader">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- <cd:constant type="geen"/>
- <cd:constant type="overlay"/>
- </cd:parameter>
- <cd:parameter name="bovenkader">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="onderkader">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="linkerkader">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="rechterkader">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="kaderoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kaderdiepte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kaderhoek">
- <cd:constant type="rond"/>
- <cd:constant type="recht"/>
- </cd:parameter>
- <cd:parameter name="kaderstraal">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kaderkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="achtergrond">
- <cd:constant type="raster"/>
- <cd:constant type="kleur"/>
- <cd:constant type="geen"/>
- <cd:constant type="voorgrond"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="achtergrondraster">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="achtergrondkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="achtergrondoffset">
- <cd:constant type="kader"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="achtergronddiepte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="achtergrondhoek">
- <cd:constant type="rond"/>
- <cd:constant type="recht"/>
- </cd:parameter>
- <cd:parameter name="achtergrondstraal">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="diepte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoek">
- <cd:constant type="rond"/>
- <cd:constant type="recht"/>
- </cd:parameter>
- <cd:parameter name="straal">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="leeg">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="voorgrondkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="voorgrondletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="lijndikte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="omlijnd"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelomlijndin" n="2"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="inlijnd"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelomlijndin" n="2"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="thinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="dunnelijnen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes">
- <cd:inherit name="steldunnelijnenin" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupthinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="steldunnelijnenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="interlinie">
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="achtergrondkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="diepte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="variant">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- </cd:parameter>
- <cd:parameter name="lijndikte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="achtergrond">
- <cd:constant type="kleur"/>
- </cd:parameter>
- <cd:parameter name="achtergrondkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hairline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="haarlijn"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="thinrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="dunnelijn"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="defineframedtext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definieerkadertekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelkadertekstenin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definieeromlijnd"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelkadertekstenin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupframedtexts" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelkadertekstenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="korps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="binnen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="regelcorrectie">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="dieptecorrectie">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="standaard"/>
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="inspringen">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framedtext" type="environment" generated="yes" file="core-rul.tex">
- <cd:sequence>
- <cd:variable value="kadertekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="geen"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelkadertekstenin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framedtext" generated="yes" file="core-rul.tex">
- <cd:sequence>
- <cd:variable value="kadertekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelkadertekstenin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="background" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="achtergrond"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="background" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="achtergrond"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbackground" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelachtergrondin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="linkeroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechteroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bovenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="onderoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="invullijnen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelinvullijnenin" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillintext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="invultekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelinvullijnenin" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelinvullijnenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="breedte">
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="interlinie">
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="invulregel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelinvulregelsin" n="1"/>
- </cd:assignments>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfillinlines" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelinvulregelsin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptextrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="steltekstlijnenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="inmarge"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="korps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="lijnkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="tekstlijn"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- </cd:keywords>
- <cd:content n="2" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="tekstlijn"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- </cd:keywords>
- <cd:content n="2" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="blackrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="blokje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelblokjesin" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="blackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="blokjes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:inherit name="stelblokjesin" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelblokjesin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension" default="1em"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension" default="1ex"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="diepte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="variant">
- <cd:constant type="a" default="yes"/>
- <cd:constant type="b"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension" default=".25ex"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number" default="3"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineoverlay" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definieeroverlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usemodule" file="core-fil.tex"> <!-- TODO -->
- <cd:sequence>
- <cd:string value="gebruikmodule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reset" file="core-num.tex">
- <cd:sequence>
- <cd:string value="reset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!-- <cd:command name="donttest">
- <cd:sequence>
- <cd:string value="geentest"/>
- </cd:sequence>
-</cd:command> -->
-
- <cd:command name="localenvironment" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="localenvironment"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupsystem" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="stelsysteemin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="resolutie">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="directory">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="willekeur">
- <cd:constant type="normaal"/>
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usedirectory" file="core-job.mkii"> <!-- usepath, todo: more than one file -->
- <cd:sequence>
- <cd:string value="usedirectory"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="reset"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="low" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="laag"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="high" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="hoog"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="lohi" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="laho"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="laag"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showframe" file="page-run.tex">
- <cd:sequence>
- <cd:string value="toonkader"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- <cd:constant type="marge"/>
- <cd:constant type="rand"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="leftaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="regellinks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="rightaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="regelrechts"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="midaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="regelmidden"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="wordright" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="woordrechts"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inmargin" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="inmarge"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="laag"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inothermargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inanderemarge"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="laag"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inleft" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inlinker"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="laag"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inright" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inrechter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="laag"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ininner" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inbinnen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="laag"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inouter" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inbuiten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="laag"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="column" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="kolom"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showstruts" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="toonstruts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showsetups" file="page-run.tex">
- <cd:sequence>
- <cd:string value="tooninstellingen"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showlayout" file="page-run.tex">
- <cd:sequence>
- <cd:string value="toonlayout"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="margintext" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="margetekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="laag"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarginblocks" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stelmargeblokkenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="plaats">
- <cd:constant type="inmarge"/>
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="boven">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="onder">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginblock" type="environment" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="margeblok"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="part" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="part"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="title" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="title"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="chapter" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="chapter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="section" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="section"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="appendix" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="appendix"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="in" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="in"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:content n="2" interactive="yes"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="at" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="op"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:content n="2" interactive="yes"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="about" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="about"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:reference n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="somewhere" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="ergens"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="atpage" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="oppagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ref" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="ref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="t"/>
- <cd:constant type="p"/>
- <cd:constant type="r"/>
- <cd:constant type="s"/>
- <cd:constant type="e"/>
- </cd:keywords>
- <cd:reference n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textreference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="tekstreferentie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="pagereference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="paginareferentie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="referentie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usereferences" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="gebruikreferenties"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="definieerreferentie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereferenceformat" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="definieerreferentieformaat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="tekst">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="label">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hl" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="hl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="vl" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="vl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="godown" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="omlaag"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="whitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="witruimte"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="nowhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="geenwitruimte"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="crlf" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="crlf"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="space" file="syst-pln.tex">
- <cd:sequence>
- <cd:string value="spatie"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="fixedspaces" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="vastespaties"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="emptylines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="legeregels"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nospace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="geenspatie"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="packed" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="opelkaar"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupdescriptions" file="core-des.tex">
- <cd:sequence>
- <cd:string value="steldoordefinierenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="letter">
- <cd:resolve name="style"/> <!-- TODO: style=normal -->
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- <cd:constant type="cd:dimension" default="8em"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="monster">
- <cd:constant type="cd:text" default=""/>
- </cd:parameter>
- <cd:parameter name="tekst">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="sluitcommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="sluitsymbool">
- <cd:constant type="cd:text" default=""/>
- </cd:parameter>
- <cd:parameter name="titellinks">
- <cd:constant type="cd:text" default="("/>
- </cd:parameter>
- <cd:parameter name="titelrechts">
- <cd:constant type="cd:text" default=")"/>
- </cd:parameter>
- <cd:parameter name="titelafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="titelletter">
- <cd:resolve name="style"/> <!-- TODO: default=bold -->
- </cd:parameter>
- <cd:parameter name="titelkleur">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="standaard"/>
- <cd:constant type="ja"/>
- <cd:constant type="nee" default="yes"/> <!-- TODO: this is default; conflicting syntax? -->
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="links" default="yes"/>
- <cd:constant type="rechts"/>
- <cd:constant type="boven"/>
- <cd:constant type="aanelkaar"/>
- <cd:constant type="inmarge"/>
- <cd:constant type="inlinker"/>
- <cd:constant type="inrechter"/>
- <cd:constant type="hangend"/>
- </cd:parameter>
- <cd:parameter name="kopletter">
- <cd:resolve name="style"/> <!-- TODO: default=bold -->
- </cd:parameter>
- <cd:parameter name="kopkleur">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="kopcommando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="hang">
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="springvolgendein">
- <cd:resolve name="indentnext"/> <!-- default=yes -->
- </cd:parameter>
- <cd:parameter name="inspringen">
- <cd:resolve name="indenting"/> <!-- default=never -->
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="scherm">
- <cd:constant type="ja" default="yes"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupenumerations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="steldoornummerenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="steldoordefinierenin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineenumeration" file="core-des.tex">
- <cd:sequence>
- <cd:string value="doornummeren"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="steldoornummerenin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="enumeration" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="doornummering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing n="1" interactive="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="enumeration" type="environment" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="doornummering"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definedescription" file="core-des.tex">
- <cd:sequence>
- <cd:string value="doordefinieren"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="steldoordefinierenin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="description" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="doordefinitie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="description" type="environment" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="doordefinitie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupindentedtext" file="strc-des.tex">
- <cd:sequence>
- <cd:string value="stelingesprongentextin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kopletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="passend"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tekst">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="monster">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineindentedtext" file="strc-des.tex">
- <cd:sequence>
- <cd:string value="definieeringesprongentext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="stelingesprongentextin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="indentation" generated="yes" file="core-spa.tex">
- <cd:sequence>
- <cd:variable value="indentation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelabel" file="core-des.tex">
- <cd:sequence>
- <cd:string value="doorlabelen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="tekst">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="inmarge"/>
- <cd:constant type="intekst"/>
- </cd:parameter>
- <cd:parameter name="wijze">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="blokwijze">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="kopletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kopkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labeling" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="labeling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolumns" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="stelkolommenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes"> <!-- no idea why it is optional -->
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nboven">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="lijn">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/> <!-- default and unknown missing -->
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolerantie">
- <cd:constant type="zeerstreng"/>
- <cd:constant type="streng"/>
- <cd:constant type="soepel"/>
- <cd:constant type="zeersoepel"/>
- <cd:constant type="rek"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="balanceren">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:constant type="tekst"/>
- <!-- cd:constant type="yes"/ -->
- <!-- cd:constant type="no"/ -->
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="blanko">
- <cd:constant type="vast"/>
- <cd:constant type="halveregel"/>
- <cd:constant type="regel"/>
- <cd:constant type="flexibel"/>
- <cd:constant type="groot"/>
- <cd:constant type="middel"/>
- <cd:constant type="klein"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="achtergrond"/>
- </cd:parameter>
- <cd:parameter name="richting">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="columns" type="environment" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="columns"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelkolommenin" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="definieertekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="hoofd"/>
- <cd:constant type="voet"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheader" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelhoofdin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text" default="yes"/>
- <cd:constant type="marge"/>
- <cd:constant type="rand"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="status">
- <cd:constant type="normaal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="leeg"/>
- <cd:constant type="hoog"/>
- <cd:constant type="geen"/>
- <cd:constant type="geenmarkering"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="linkerletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="rechterletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="linkerbreedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterbreedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfooter" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelvoetin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="stelhoofdin" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="stelhoofdin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="steltekstin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="stelhoofdin" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="stelhoofdin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptop" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelbovenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="stelhoofdin" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="stelhoofdin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbottom" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelonderin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="stelhoofdin" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="stelhoofdin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="noheaderandfooterlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="geenhoofdenvoetregels"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="notopandbottomlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="geenbovenenonderregels"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupheadertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelhoofdtekstenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelvoettekstenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptexttexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelteksttekstenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptoptexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelboventekstenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbottomtexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="stelondertekstenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="settextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="steltekstinhoudin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="resettextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="resettextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="lefttext"/>
- <cd:constant type="middletext"/>
- <cd:constant type="righttext"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="definieermarkering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplemarking" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="koppelmarkering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="decouplemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="ontkoppelmarkering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="resetmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="resetmarkering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="stelmarkeringin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="expansie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="markeer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="getmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="haalmarkering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="eerste"/>
- <cd:constant type="laatste"/>
- <cd:constant type="vorige"/>
- <cd:constant type="beide"/>
- <cd:constant type="alles"/>
- <cd:constant type="huidige"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="geenmarkering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplayout" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="stellayoutin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="midden"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="midden"/>
- </cd:parameter>
- <cd:parameter name="rugwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkermarge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechtermarge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoofd">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voet">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="boven">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="onder">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkerrand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterrand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoofdafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voetafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bovenafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="onderafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkermargeafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechtermargeafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkerrandafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechterrandafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rugoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="markering">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- <cd:constant type="kleur"/>
- <cd:constant type="raster"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="pagina"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- <cd:constant type="rechts"/>
- <cd:constant type="onder"/>
- <cd:constant type="boven"/>
- <cd:constant type="enkelzijdig"/>
- <cd:constant type="dubbelzijdig"/>
- </cd:parameter>
- <cd:parameter name="schaal">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="regels">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="kolommen">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="kolomafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="grid">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="bodemwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="snijwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tekstafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tekstbreedte">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="tekstmarge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="clipoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="papier">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="adaptlayout" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="paslayoutaan"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="regels">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showgrid" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="toongrid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- <cd:constant type="geen"/>
- <cd:constant type="alles"/>
- <cd:constant type="regels"/>
- <cd:constant type="kader"/>
- <cd:constant type="geennummer"/>
- <cd:constant type="rechts"/>
- <cd:constant type="links"/>
- <cd:constant type="buiten"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="plaatsopgrid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="verplaatsopgrid" n="1"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="moveongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="verplaatsopgrid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="standaard" default="yes"/> <!-- also 'normal', 'yes' and 'force' -->
- <cd:constant type="boven"/>
- <cd:constant type="beide"/>
- <cd:constant type="onder"/>
- <cd:constant type="-top"/>
- <cd:constant type="-both"/>
- <cd:constant type="-bottom"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="hoog"/>
- <cd:constant type="midden"/>
- <cd:constant type="laag"/>
- <cd:constant type="pagina"/>
- <cd:constant type="ruim"/>
- <cd:constant type="passend"/>
- <cd:constant type="diepte"/>
- <cd:constant type="regel"/>
- <cd:constant type="reset"/>
- <cd:constant type="geen"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="project" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="projekt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="environment" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="omgeving"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="product" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="produkt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="component" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="onderdeel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomorefiles" file="core-job.tex">
- <cd:sequence>
- <cd:string value="geenfilesmeer"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupinterlinespace" variant="1" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="stelinterliniein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="reset"/>
- <cd:constant type="klein" default="yes"/>
- <cd:constant type="middel"/>
- <cd:constant type="auto"/>
- <cd:constant type="groot"/>
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinterlinespace2" variant="2" file="core-spa.tex">
- <!-- attached a 2 to make this definition usable with \showsetup -->
- <cd:sequence>
- <cd:string value="stelinterliniein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="hoogte">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="diepte">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="regel">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="boven">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="onder">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppagenumbering" file="page-num.tex">
- <cd:sequence>
- <cd:string value="stelpaginanummeringin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="variant">
- <cd:constant type="enkelzijdig"/>
- <cd:constant type="dubbelzijdig"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="hoofd"/>
- <cd:constant type="voet"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="marge"/>
- <cd:constant type="kantlijn"/>
- <cd:constant type="inlinker"/>
- <cd:constant type="inrechter"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="cijfers"/>
- <cd:constant type="letters"/>
- <cd:constant type="Letters"/>
- <cd:constant type="romeins"/>
- <cd:constant type="Romeins"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="wijze">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="tekst">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="nummerscheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="tekstscheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="laatste"/>
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupnarrower" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="stelsmallerin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="links">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="midden">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="define" file="syst-ext.tex">
- <cd:sequence>
- <cd:string value="definieer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:csname n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usecommands" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="gebruikcommandos"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definestartstop" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="definieerstartstop"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="commandos">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheads" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelkoppenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="sectienummer">
- <cd:constant type="ja"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="variant">
- <cd:constant type="normaal"/>
- <cd:constant type="marge"/>
- <cd:constant type="midden"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="alinea"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="afsluiter">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="titeluitlijnen">
- <cd:constant type="ja"/>
- <cd:constant type="blok"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="tolerantie">
- <cd:constant type="zeerstreng"/>
- <cd:constant type="streng"/>
- <cd:constant type="soepel"/>
- <cd:constant type="zeersoepel"/>
- <cd:constant type="rek"/>
- </cd:parameter>
- <cd:parameter name="springvolgendein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcaptions" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stelblokkopjesin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="plaats">
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- <cd:constant type="geen"/>
- <cd:constant type="hoog"/>
- <cd:constant type="laag"/>
- <cd:constant type="midden"/>
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- <cd:constant type="rechts"/>
- <cd:constant type="linkshangend"/>
- <cd:constant type="rechtshangend"/>
- <cd:constant type="linkermarge"/>
- <cd:constant type="rechtermarge"/>
- <cd:constant type="binnenmarge"/>
- <cd:constant type="buitenmarge"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- <cd:constant type="max"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="minbreedte">
- <cd:constant type="passend"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="nummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="cijfers"/>
- <cd:constant type="letters"/>
- <cd:constant type="Letters"/>
- <cd:constant type="romeins"/>
- <cd:constant type="Romeins"/>
- </cd:parameter>
- <cd:parameter name="wijze">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="afsluiter">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcaption" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stelblokkopjein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="stelblokkopjesin" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloats" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stelplaatsblokkenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="passend"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voorwit">
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="nawit">
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="zijvoorwit">
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="zijnawit">
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="springvolgendein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="nboven">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nonder">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nregels">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="default">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="tolerantie">
- <cd:constant type="0"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- <cd:parameter name="linkermargeafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechtermargeafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zijuitlijnen">
- <cd:constant type="normaal"/>
- <cd:constant type="regel"/>
- </cd:parameter>
- <cd:parameter name="nummeren">
- <cd:constant type="ja"/>
- <cd:constant type="geencontrole"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloatsplitting" file="core-tsp.tex">
- <cd:sequence>
- <cd:string value="stelplaatsbloksplitsenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="conversie">
- <cd:constant type="cijfers"/>
- <cd:constant type="letters"/>
- <cd:constant type="Letters"/>
- <cd:constant type="romeins"/>
- <cd:constant type="Romeins"/>
- </cd:parameter>
- <cd:parameter name="regels">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="splitfloat" file="core-tsp.tex">
- <cd:sequence>
- <cd:string value="splitsplaatsblok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelplaatsbloksplitsenin" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupoppositeplacing" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="stelnaastplaatsenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="opposite" type="environment" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="opposite"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setuphyphenmark" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelkoppeltekenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="teken">
- <cd:constant type="--"/>
- <cd:constant type="---"/>
- <cd:constant type="-"/>
- <cd:constant type="~"/>
- <cd:constant type="("/>
- <cd:constant type=")"/>
- <cd:constant type="="/>
- <cd:constant type="/"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppositioning" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="stelpositionerenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="overlay"/>
- </cd:parameter>
- <cd:parameter name="eenheid">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="schaal">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="xstap">
- <cd:constant type="absoluut"/>
- <cd:constant type="relatief"/>
- </cd:parameter>
- <cd:parameter name="ystap">
- <cd:constant type="absoluut"/>
- <cd:constant type="relatief"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="positioning" type="environment" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="positioning"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="grid" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="rooster"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xstap">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ystap">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="schaal">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="eenheid">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="page" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="pagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="ja" default="yes"/>
- <cd:constant type="opmaak"/>
- <cd:constant type="nee"/>
- <cd:constant type="voorkeur"/>
- <cd:constant type="grotevoorkeur"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="blokkeer"/>
- <cd:constant type="laatste"/>
- <cd:constant type="viertal"/>
- <cd:constant type="even"/>
- <cd:constant type="oneven"/>
- <cd:constant type="blanko"/>
- <cd:constant type="leeg"/>
- <cd:constant type="reset"/>
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupreferencing" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="stelrefererenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interactie">
- <cd:constant type="label"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="alles"/>
- <cd:constant type="symbool"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="converteerfile">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="klein"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autofile">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="pagina"/>
- </cd:parameter>
- <cd:parameter name="globaal">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="exporteer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupurl" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="stelurlin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="urlvariant">
- <cd:constant type="geen"/>
- <cd:constant type="beide"/>
- <cd:constant type="voor"/>
- <cd:constant type="na"/>
- </cd:parameter>
- <cd:parameter name="urlspatie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetoreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="schrijfnaarreferentielijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="plaatsreferentielijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definieerreferentielijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelreferentielijstin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="stelreferentielijstin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="lokaal"/>
- <cd:constant type="vorige"/>
- <cd:constant type="alles"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="schrijfnaarlijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="plaats">
- <cd:constant type="hier"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writebetweenlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="schrijftussenlijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="plaats">
- <cd:constant type="hier"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="geenlijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="listsymbol" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="lijstsymbool"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="plaatslijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stellijstin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="determinelistcharacteristics" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="bepaallijstkenmerken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stellijstin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="plaatssamengesteldelijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelsamengesteldelijstin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definieerlijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes"> <!-- inherits from -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="stellijstin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="stellijstin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="variant">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="..."/>
- <cd:constant type="geen"/>
- <cd:constant type="commando"/>
- </cd:parameter>
- <cd:parameter name="koppeling">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="lokaal"/>
- <cd:constant type="vorige"/>
- <cd:constant type="huidige"/>
- <cd:constant type="hier"/>
- <cd:constant type="intro"/>
- <cd:constant type="alles"/>
- </cd:parameter>
- <cd:parameter name="extras">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="nummerletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="tekstletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="paginaletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- <cd:parameter name="nummercommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="tekstcommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="paginacommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="interactie">
- <cd:constant type="sectienummer"/>
- <cd:constant type="tekst"/>
- <cd:constant type="paginanummer"/>
- <cd:constant type="alles"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="label">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="paginanummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="kopnummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="titeluitlijnen">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- </cd:parameter>
- <cd:parameter name="diepte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="afsluiter">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="symbool">
- <cd:constant type="geen"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="..."/>
- </cd:parameter>
- <cd:parameter name="expansie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="commando"/>
- </cd:parameter>
- <cd:parameter name="maxbreedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="volgorde">
- <cd:constant type="commando"/>
- <cd:constant type="alles"/>
- <cd:constant type="normaal"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplistalternative" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setuplistalternative"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="no">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <!-- cd:constant type="cd:name"/ -->
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="commando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rek">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definieersamengesteldelijst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:list"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="stelsamengesteldelijstin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="stelsamengesteldelijstin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="niveau">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="4"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="huidige"/>
- </cd:parameter>
- <cd:inherit name="stellijstin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="plaats"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelsamengesteldelijstin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completecombinedlist" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="volledige"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelsamengesteldelijstin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupnumbering" file="core-num.tex">
- <cd:sequence>
- <cd:string value="stelnummerenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="wijze">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupformulas" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="stelformulesin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="midden"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standaard"/>
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:constant type="lijnlinks"/>
- <cd:constant type="lijnrechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="centreer"/>
- </cd:parameter>
- <cd:parameter name="linkermarge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechtermarge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="springvolgendein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="variant">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="voorwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="cijfers"/>
- <cd:constant type="letters"/>
- <cd:constant type="Letters"/>
- <cd:constant type="romeins"/>
- <cd:constant type="Romeins"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="publication" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="publicatie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppublications" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelpublicatiesin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="variant">
- <cd:constant type="apa"/>
- <cd:constant type="normaal"/>
- </cd:parameter>
- <cd:inherit name="steldoornummerenin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="stelregelsin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inspringen">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="spatie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="opelkaar"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="lines" type="environment">
- <cd:sequence>
- <cd:string value="lines"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupparagraphnumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="stelparagraafnummerenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="reset"/>
- <cd:constant type="regel"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplinenumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="stelregelnummerenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="conversie">
- <cd:constant type="cijfers"/>
- <cd:constant type="letters"/>
- <cd:constant type="Letters"/>
- <cd:constant type="romeins"/>
- <cd:constant type="Romeins"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stap">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="midden"/>
- <cd:constant type="links"/>
- <cd:constant type="marge"/>
- <cd:constant type="inmarge"/>
- <cd:constant type="inlinker"/>
- <cd:constant type="rechts"/>
- <cd:constant type="inrechter"/>
- <cd:constant type="binnen"/>
- <cd:constant type="buiten"/>
- <cd:constant type="tekst"/>
- <cd:constant type="begin"/>
- <cd:constant type="eind"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="refereren">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="linenumbering" type="environment" file="page-lin.tex"> <!-- mkii/mkiv -->
- <cd:sequence>
- <cd:string value="linenumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="verder"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="line" type="environment">
- <cd:sequence>
- <cd:string value="line"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="someline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="eenregel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="inregel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinmargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="stelinmargein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="beide"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="regel">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scheider">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stapel">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="stelpaginanummerin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="nummer">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="handhaaf"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsubpagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="stelsubpaginanummerin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="wijze">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="stelblankoin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="normaal" default="yes"/>
- <cd:constant type="default"/>
- <cd:constant type="standaard"/>
- <cd:constant type="regel"/>
- <cd:constant type="halveregel"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="groot"/>
- <cd:constant type="middel"/>
- <cd:constant type="klein"/>
- <cd:constant type="vast"/>
- <cd:constant type="flexibel"/>
- <cd:constant type="globaal"/>
- <cd:constant type="onbekend"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="definieerblanko"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="stelblankoin" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definepapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="definieerpapierformaat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="schaal">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppaper" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="stelpapierin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="papier">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rugwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="max"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="methode">
- <cd:constant type="normaal"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="stelpapierformaatin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="CD"/>
- <cd:constant type="cd:name"/>
- <cd:constant type="liggend"/>
- <cd:constant type="gespiegeld"/>
- <cd:constant type="geroteerd"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="negatief"/>
- <cd:inherit name="stelpapierformaatin" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuparranging" file="page-imp.tex">
- <cd:sequence>
- <cd:string value="stelarrangerenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="blokkeer"/>
- <cd:constant type="2*16"/>
- <cd:constant type="2*8"/>
- <cd:constant type="2*4"/>
- <cd:constant type="2*2"/>
- <cd:constant type="2**2"/>
- <cd:constant type="2*2*4"/>
- <cd:constant type="2*4*2"/>
- <cd:constant type="2UP"/>
- <cd:constant type="2DOWN"/>
- <cd:constant type="2SIDE"/>
- <cd:constant type="2TOP"/>
- <cd:constant type="gespiegeld"/>
- <cd:constant type="geroteerd"/>
- <cd:constant type="dubbelzijdig"/>
- <cd:constant type="negatief"/>
- <cd:constant type="achtergrond"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showprint" file="page-run.tex"> <!-- page-lay.tex -->
- <cd:sequence>
- <cd:string value="toonprint"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:inherit name="stelpapierformaatin" n="1"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:inherit name="stelpapierformaatin" n="2"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="stellayoutin" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelogo" file="page-log.tex">
- <cd:sequence>
- <cd:string value="definieerbeeldmerk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="boven"/>
- <cd:constant type="hoofd"/>
- <cd:constant type="voet"/>
- <cd:constant type="onder"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="geen"/>
- <cd:constant type="pagina"/>
- <cd:constant type="linkerrand"/>
- <cd:constant type="linkermarge"/>
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- <cd:constant type="rechts"/>
- <cd:constant type="rechtermarge"/>
- <cd:constant type="rechterrand"/>
- </cd:keywords>
- <cd:assignments n="4" list="yes">
- <cd:parameter name="commando">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelogos" file="page-log.tex">
- <cd:sequence>
- <cd:string value="plaatsbeeldmerken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupwhitespace">
- <cd:sequence>
- <cd:string value="stelwitruimtein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="geen" default="yes"/>
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="regel"/>
- <cd:constant type="vast"/>
- <cd:constant type="herstel"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupindenting">
- <cd:sequence>
- <cd:string value="stelinspringenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definieersectieblok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="stelsectieblokin" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelsectieblokin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelsectieblokin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="nummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="ja"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definieersectie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelsectiein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="conversie">
- <cd:constant type="cijfers"/>
- <cd:constant type="letters"/>
- <cd:constant type="Letters"/>
- <cd:constant type="romeins"/>
- <cd:constant type="Romeins"/>
- </cd:parameter>
- <cd:parameter name="vorigenummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuphead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelkopin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="tekstletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="nummerletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="tekstkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nummerkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="eigennummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="ja"/>
- </cd:parameter>
- <cd:parameter name="doorgaan">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="hoofd">
- <cd:constant type="geen"/>
- <cd:constant type="leeg"/>
- <cd:constant type="hoog"/>
- <cd:constant type="geenmarkering"/>
- </cd:parameter>
- <cd:parameter name="tekst">
- <cd:constant type="geen"/>
- <cd:constant type="leeg"/>
- <cd:constant type="hoog"/>
- <cd:constant type="geenmarkering"/>
- </cd:parameter>
- <cd:parameter name="voet">
- <cd:constant type="geen"/>
- <cd:constant type="leeg"/>
- <cd:constant type="hoog"/>
- <cd:constant type="geenmarkering"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="variant">
- <cd:constant type="normaal"/>
- <cd:constant type="inmarge"/>
- <cd:constant type="midden"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="hang">
- <cd:constant type="geen"/>
- <cd:constant type="ruim"/>
- <cd:constant type="passend"/>
- <cd:constant type="regel"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="nummercommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="tekstcommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="diepnummercommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="dieptekstcommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="plaatskop">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="leeg"/>
- </cd:parameter>
- <cd:parameter name="verhoognummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="cd:list"/>
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="resetnummer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="expansie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="commando"/>
- </cd:parameter>
- <cd:parameter name="margetekst">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="interactie">
- <cd:constant type="lijst"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:inherit name="stelkoppenin" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="stelkopnummerin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:number"/>
- <cd:constant type="+cd:number"/>
- <cd:constant type="-cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="headnumber">
- <cd:sequence>
- <cd:string value="kopnummer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="determineheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="bepaalkopnummer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="currentheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="huidigekopnummer"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="nextsection" generated="yes" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="volgende"/>
- <cd:variable value="paragraaf"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definehead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definieerkop"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!--
-
- <cd:feature name="itemgroups" file="strc-itm">
-
- <cd:description language="nl"> </cd:description>
-
- -->
-
- <cd:command name="defineitemgroup" file="strc-itm">
- <cd:sequence>
- <cd:string value="definieeritemgroep"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupitemgroup" file="strc-itm">
- <!-- we mis a few experimental keys here, like alignsymbol and indentation -->
- <cd:sequence>
- <cd:string value="stelitemgroepin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="elk"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes" list="yes">
- <cd:constant type="standaard" default="yes"/>
- <cd:constant type="ruim"/>
- <cd:constant type="aanelkaar"/>
- <cd:constant type="opelkaar"/>
- <cd:constant type="vanelkaar"/>
- <cd:constant type="geenwit"/>
- <cd:constant type="voor"/>
- <cd:constant type="na"/>
- <cd:constant type="afsluiter"/>
- <cd:constant type="aansluitend"/>
- <cd:constant type="opmarge"/>
- <cd:constant type="inmarge"/>
- <cd:constant type="autointro"/>
- <cd:constant type="los"/>
- <cd:constant type="herhaal"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="alinea"/>
- <cd:constant type="intekst"/>
- <cd:constant type="willekeurig"/>
- <cd:constant type="omgekeerd"/>
- </cd:keywords>
- <cd:assignments n="4" optional="yes" list="yes">
- <cd:parameter name="marge">
- <cd:constant type="nee"/>
- <cd:constant type="standaard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linkermarge">
- <cd:constant type="nee"/>
- <cd:constant type="standaard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechtermarge">
- <cd:constant type="nee"/>
- <cd:constant type="standaard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stap">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="items">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="kopvoor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="kopna">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="kopletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="marletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="symletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="afsluiter">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="symbool">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="symuitlijnen">
- <cd:resolve name="symalign"/>
- </cd:parameter>
- <cd:parameter name="springvolgendein">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="tekstafstand">
- <!-- maybe resolve here too -->
- <cd:constant type="geen"/>
- <cd:constant type="groot"/>
- <cd:constant type="middel"/>
- <cd:constant type="klein"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="itemgroup" type="environment" generated="yes" file="strc-itm">
- <cd:sequence>
- <cd:variable value="itemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="a"/>
- <cd:constant type="A"/>
- <cd:constant type="KA"/>
- <cd:constant type="n"/>
- <cd:constant type="N"/>
- <cd:constant type="m"/>
- <cd:constant type="r"/>
- <cd:constant type="R"/>
- <cd:constant type="KR"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="verder"/>
- <cd:constant type="standaard" default="yes"/>
- <cd:constant type="ruim"/>
- <cd:constant type="aanelkaar"/>
- <cd:constant type="opelkaar"/>
- <cd:constant type="afsluiter"/>
- <cd:constant type="aansluitend"/>
- <cd:constant type="opmarge"/>
- <cd:constant type="inmarge"/>
- <cd:constant type="intro"/>
- <cd:constant type="kolommen"/>
- <cd:constant type="tekst"/>
- <cd:constant type="alinea"/>
- <cd:constant type="herhaal"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="stelitemgroepin" n="4"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="item" environment="yes" shortcut="yes" file="strc-itm">
- <cd:sequence>
- <cd:string value="som"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <!--
- <cd:command name="item" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="som"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
- -->
-
- <cd:command name="but">
- <cd:sequence>
- <cd:string value="but"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="exclusive"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="its">
- <cd:sequence>
- <cd:string value="its"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ran">
- <cd:sequence>
- <cd:string value="ran"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="head">
- <cd:sequence>
- <cd:string value="kop"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mar">
- <cd:sequence>
- <cd:string value="mar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sub">
- <cd:sequence>
- <cd:string value="sub"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sym" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="sym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nop">
- <cd:sequence>
- <cd:string value="nop"/>
- </cd:sequence>
- </cd:command>
-
- <!-- </cd:feature> -->
-
- <cd:command name="defineregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="definieerregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="stelregisterin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="balanceren">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="paginaletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="tekstletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="aanduiding">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="koppeling">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="lokaal"/>
- <cd:constant type="alles"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="symbool">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="interactie">
- <cd:constant type="paginanummer"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="expansie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="commando"/>
- </cd:parameter>
- <cd:parameter name="refereren">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="maxbreedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="onbekendereferentie">
- <cd:constant type="leeg"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="variant">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="A"/>
- <cd:constant type="B"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="beide"/>
- <cd:constant type="eerste"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="comprimeren">
- <cd:constant type="nee"/>
- <cd:constant type="ja"/>
- </cd:parameter>
- <cd:parameter name="dieptekstcommando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="register" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="startregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="start"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetoregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="schrijfnaarregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupledregister" generated="yes">
- <cd:sequence>
- <cd:string value="gekoppelde"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupleregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="koppelregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeregister" variant="1" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="plaatsregister"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelregisterin" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="seeregister" generated="yes">
- <cd:sequence>
- <cd:string value="zie"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:index n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completeregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="volledige"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
- <cd:inherit name="stelregisterin" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="plaats"/>
- <cd:variable value="register"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
- <cd:inherit name="stelregisterin" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definieersynoniemen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="stelsynoniemenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="tekstletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="synoniemletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="boven"/>
- <cd:constant type="aanelkaar"/>
- <cd:constant type="inmarge"/>
- <cd:constant type="inlinker"/>
- <cd:constant type="inrechter"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="alles"/>
- <cd:constant type="gebruikt"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="expansie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="commando"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synonym" generated="yes">
- <cd:sequence>
- <cd:variable value="synonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="loadsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="laad"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definesorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definieersorteren"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="stelsorterenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="alles"/>
- <cd:constant type="gebruikt"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="expansie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="commando"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sort" generated="yes">
- <cd:sequence>
- <cd:variable value="sort"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="loadsorts" generated="yes">
- <cd:sequence>
- <cd:string value="laad"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definemakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="definieeropmaak"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="stelopmaakin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="makeup" type="environment">
- <cd:sequence>
- <cd:string value="opmaak"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelopmaakin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="stelopmaakin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="links"/>
- <cd:constant type="ja"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="commandos">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dubbelzijdig">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="leeg"/>
- </cd:parameter>
- <cd:parameter name="hoofdstatus">
- <cd:constant type="normaal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="leeg"/>
- <cd:constant type="geen"/>
- <cd:constant type="geenmarkering"/>
- </cd:parameter>
- <cd:parameter name="voetstatus">
- <cd:constant type="normaal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="leeg"/>
- <cd:constant type="geen"/>
- <cd:constant type="geenmarkering"/>
- </cd:parameter>
- <cd:parameter name="tekststatus">
- <cd:constant type="normaal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="leeg"/>
- <cd:constant type="geen"/>
- <cd:constant type="geenmarkering"/>
- </cd:parameter>
- <cd:parameter name="bovenstatus">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="onderstatus">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="paginastatus">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="namemakeup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="naam"/>
- <cd:string value="opmaak"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="version">
- <cd:sequence>
- <cd:string value="versie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="definitief" default="yes"/>
- <cd:constant type="concept"/>
- <cd:constant type="voorlopig"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="currentdate">
- <cd:sequence>
- <cd:string value="huidigedatum"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:inherit name="datum" n="2"/> <!-- or vice versa :) -->
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="date" file="core-con.tex">
- <cd:sequence>
- <cd:string value="datum"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes"> <!-- if not given, current date is used -->
- <cd:parameter name="d">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="dag"/>
- <cd:constant type="maand"/>
- <cd:constant type="jaar"/>
- <cd:constant type="weekdag"/>
- <cd:constant type="d"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/> <!-- also j -->
- <cd:constant type="w"/>
- <cd:constant type="dd"/>
- <cd:constant type="mm"/>
- <cd:constant type="yy"/> <!-- also jj -->
- <cd:constant type="spatie"/>
- <cd:constant type="--"/>
- <cd:constant type="day+"/>
- <cd:constant type="d+"/>
- <cd:constant type="dd+"/>
- <cd:constant type="kenmerk"/>
- <cd:constant type="cd:text"/> <!-- any other text -->
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="referraldate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="kenmerkdatum"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="indenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="inspringen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="noindenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="nietinspringen"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="blank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="blanko"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot" default="yes"/>
- <cd:constant type="geenwit"/>
- <cd:constant type="terug"/>
- <cd:constant type="wit"/>
- <cd:constant type="blokkeer"/>
- <cd:constant type="forceer"/>
- <cd:constant type="reset"/>
- <cd:constant type="regel"/>
- <cd:constant type="halveregel"/>
- <cd:constant type="cd:formula"/>
- <cd:constant type="vast"/>
- <cd:constant type="flexibel"/>
- <cd:constant type="geen"/>
- <cd:constant type="altijd"/>
- <cd:constant type="buiten"/>
- <cd:constant type="aansluitend"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="packed" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="opelkaar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="blanko"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="unpacked" type="environment">
- <cd:sequence>
- <cd:string value="unpacked"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="linecorrection" type="environment">
- <cd:sequence>
- <cd:string value="regelcorrectie"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="correctwhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="corrigeerwitruimte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="postponing" type="environment">
- <cd:sequence>
- <cd:string value="postponing"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="local" type="environment">
- <cd:sequence>
- <cd:string value="lokale"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="narrower" type="environment">
- <cd:sequence>
- <cd:string value="narrower"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="links"/>
- <cd:constant type="midden" default="yes"/>
- <cd:constant type="rechts"/>
- <cd:constant type="-left"/>
- <cd:constant type="-middle"/>
- <cd:constant type="-right"/>
- <cd:constant type="-none"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hiding" type="environment">
- <cd:sequence>
- <cd:string value="hiding"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupalign" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="steluitlijnenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="breedte"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- <cd:constant type="binnen"/>
- <cd:constant type="buiten"/>
- <cd:constant type="breed"/>
- <cd:constant type="ruim"/>
- <cd:constant type="hoogte"/>
- <cd:constant type="onder"/>
- <cd:constant type="regel"/>
- <cd:constant type="reset"/>
- <cd:constant type="hangend"/>
- <cd:constant type="niethangend"/>
- <cd:constant type="afgebroken"/>
- <cd:constant type="nietafgebroken"/>
- <cd:constant type="lesshyphenation"/>
- <cd:constant type="morehyphenation"/>
- <cd:constant type="nieuw"/>
- <cd:constant type="oud"/>
- <cd:constant type="normaal"/>
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <cd:constant type="lijnlinks"/>
- <cd:constant type="lijnrechts"/>
- <cd:constant type="lijnbuiten"/>
- <cd:constant type="lijnbinnen"/>
- <cd:constant type="centreer"/>
- <cd:constant type="hz"/>
- <cd:constant type="geenhz"/>
- <cd:constant type="spatiering"/>
- <cd:constant type="geenspatiering"/>
- <cd:constant type="soepel"/>
- <cd:constant type="zeersoepel"/>
- <cd:constant type="rek"/>
- <cd:constant type="extremestretch"/>
- <cd:constant type="lefttoright"/>
- <cd:constant type="righttoleft"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
-
- <cd:command name="alignment" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="uitlijnen"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="steluitlijnenin" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupspacing">
- <cd:sequence>
- <cd:string value="stelspatieringin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="ruim"/>
- <cd:constant type="opelkaar"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptolerance" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="steltolerantiein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="horizontaal"/>
- <cd:constant type="vertikaal"/>
- <cd:constant type="rek"/>
- <cd:constant type="spatie"/>
- <cd:constant type="zeerstreng" default="yes"/>
- <cd:constant type="streng"/>
- <cd:constant type="soepel"/>
- <cd:constant type="zeersoepel"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!-- cd:command name="pagetype" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="pagetype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command -->
-
- <cd:command name="processpage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="verwerkpagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="ja" default="yes"/>
- <cd:constant type="nee"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplepage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="koppelpagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="optie">
- <cd:constant type="dubbelzijdig"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="position" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="positioneer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:position n="1" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupscreens" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="stelrastersin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="methode">
- <cd:constant type="punt"/>
- <cd:constant type="lijn"/>
- <cd:constant type="extern"/>
- </cd:parameter>
- <cd:parameter name="resolutie">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="raster">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbackgrounds" file="page-bck.tex">
- <cd:sequence>
- <cd:string value="stelachtergrondenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="boven"/>
- <cd:constant type="hoofd"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="voet"/>
- <cd:constant type="onder"/>
- <cd:constant type="pagina"/>
- <cd:constant type="papier"/>
- <cd:constant type="linkerpagina"/>
- <cd:constant type="rechterpagina"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="linkerrand"/>
- <cd:constant type="linkermarge"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="rechtermarge"/>
- <cd:constant type="rechterrand"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="cd:repeat"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="buffer" type="environment" generated="yes" file="core-buf.tex">
- <cd:sequence>
- <cd:variable value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="buffer" type="environment" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="getbuffer">
- <cd:sequence>
- <cd:string value="haalbuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="typebuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definieerbuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="stelbufferin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="alinea">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definieerblok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomoreblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="geenblokkenmeer"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="hideblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="verbergblokken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="keepblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="handhaafblokken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="alles"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="gebruikblokken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="processblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="verwerkblokken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="bypassblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="passeerblokken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="forceblocks">
- <cd:sequence>
- <cd:string value="forceerblokken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="selectblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="selecteerblokken"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="criterium">
- <cd:constant type="alles"/>
- <cd:constant type="cd:section"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="stelblokin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="binnen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="formula" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="formule"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="mathematics" file="supp-mat.tex">
- <cd:sequence>
- <cd:string value="wiskunde"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="plaatsformule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2" optional="yes"/>
- <cd:displaymath n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placesubformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="plaatssubformule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2" optional="yes"/>
- <cd:displaymath n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placefloat" generated="yes" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="plaats"/>
- <cd:variable value="blok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="hier" default="yes"/>
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- <cd:constant type="inlinker"/>
- <cd:constant type="inrechter"/>
- <cd:constant type="inmarge"/>
- <cd:constant type="marge"/>
- <cd:constant type="linkermarge"/>
- <cd:constant type="rechtermarge"/>
- <cd:constant type="linkerrand"/>
- <cd:constant type="rechterrand"/>
- <cd:constant type="binnenmarge"/>
- <cd:constant type="buitenmarge"/>
- <cd:constant type="binnenrand"/>
- <cd:constant type="buitenrand"/>
- <cd:constant type="binnen"/>
- <cd:constant type="buiten"/>
- <cd:constant type="regel"/>
- <cd:constant type="hoog"/>
- <cd:constant type="laag"/>
- <cd:constant type="passend"/>
- <cd:constant type="pagina"/>
- <cd:constant type="linkerpagina"/>
- <cd:constant type="rechterpagina"/>
- <cd:constant type="naast"/>
- <cd:constant type="altijd"/>
- <cd:constant type="auto"/>
- <cd:constant type="forceer"/>
- <cd:constant type="lang"/>
- <cd:constant type="reset"/>
- <cd:constant type="regel"/>
- <cd:constant type="hoogte"/>
- <cd:constant type="diepte"/>
- <cd:constant type="splitsen"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes" list="yes"/>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reservefloat" generated="yes">
- <cd:sequence>
- <cd:string value="reserveer"/>
- <cd:variable value="blok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kader">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:reference n="3" optional="yes" list="yes"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="definieerplaatsblok"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="stelplaatsblokin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxhoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxbreedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="minbreedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="default">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="paginaovergangen">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="linkermargeafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechtermargeafstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="midden"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="floattext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="blok"/>
- <cd:string value="tekst"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="hoog"/>
- <cd:constant type="midden"/>
- <cd:constant type="laag"/>
- <cd:constant type="offset"/>
- <cd:constant type="lang"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="completelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="referral" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="kenmerk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="bet">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ken">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dat">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="van">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aan">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ref">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="selectpaper">
- <cd:sequence>
- <cd:string value="selecteerpapier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="soort">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplepaper">
- <cd:sequence>
- <cd:string value="koppelpapier"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="chem" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="chem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fraction" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="breuk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="periods" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="punten"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="items">
- <cd:sequence>
- <cd:string value="items"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelitemsin" n="1"/>
- </cd:assignments>
- <cd:content n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupitems" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelitemsin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="inmarge"/>
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- </cd:parameter>
- <cd:parameter name="symbool">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:text"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- <cd:constant type="onbekend"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quotation" type="environment" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citaat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="links"/>
- <cd:constant type="midden" default="yes"/>
- <cd:constant type="rechts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quotation" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citaat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citeer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupquote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelciterenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="cd:text"/>
- <cd:constant type="marge"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="definieeralineas"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="lijn">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="passend"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="binnen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tolerantie">
- <cd:constant type="zeerstreng"/>
- <cd:constant type="streng"/>
- <cd:constant type="soepel"/>
- <cd:constant type="zeersoepel"/>
- <cd:constant type="rek"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="paragraph" generated="yes">
- <cd:sequence>
- <cd:variable value="alinea"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="paragraph" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="alinea"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelalineasin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="elk"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="tolerantie">
- <cd:constant type="zeerstreng"/>
- <cd:constant type="streng"/>
- <cd:constant type="soepel"/>
- <cd:constant type="zeersoepel"/>
- <cd:constant type="rek"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="binnen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="commando">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="lijn">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptab" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="steltabin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="monster">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopletter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tab">
- <cd:sequence>
- <cd:string value="tab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="document" type="environment">
- <cd:sequence>
- <cd:string value="document"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labels">
- <cd:sequence>
- <cd:string value="labels"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="definieertabulatie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tabulate" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="tabulatie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelexternefigurenin" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="steltabulatiein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="eenheid">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inspringen">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="binnen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="EQ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="lijnkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="lijndikte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="blanko"/>
- <cd:constant type="grid"/>
- <cd:constant type="diepte"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="korps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="lijn">
- <cd:constant type="normaal"/>
- <cd:constant type="regel"/>
- </cd:parameter>
- <cd:parameter name="splitsen">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptables" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="steltabellenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="afstand">
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- <cd:parameter name="korps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="HL">
- <cd:constant type="cd:number"/>
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="VL">
- <cd:constant type="cd:number"/>
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="diepte">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="lijndikte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="lijnkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="commandos">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="achtergrond">
- <cd:constant type="raster"/>
- <cd:constant type="kleur"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="achtergrondraster">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="achtergrondkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="korps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="table" type="environment">
- <cd:sequence>
- <cd:string value="table"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tables" type="environment">
- <cd:sequence>
- <cd:string value="tables"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetabletemplate" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="definieertabelvorm"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfiles" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="gebruikexternefiles"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="korps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="file">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfile" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="gebruikexternefile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="4" list="yes">
- <cd:parameter name="korps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="gebruikexternfiguur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:name"/> <!-- parent -->
- </cd:keywords>
- <cd:assignments n="4" optional="yes" list="yes">
- <cd:inherit name="stelexternefigurenin" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="externalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="externfiguur"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelexternefigurenin" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="stelexternefigurenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="schaal">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yschaal">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yschaal">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="max"/>
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- </cd:parameter>
- <cd:parameter name="bfactor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="ruim"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="hfactor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="ruim"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kader">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="preset">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="scherm">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="preview">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="herhaal">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="object">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="type">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="methode">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="kader"/>
- <cd:constant type="leeg"/>
- <cd:constant type="test"/>
- </cd:parameter>
- <cd:parameter name="hokjes">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="ymax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xmax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="directory">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="lokaal"/>
- <cd:constant type="globaal"/>
- <cd:constant type="default"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="maxbreedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="maxhoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interactie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- <!-- more will follow -->
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="toonexternefiguren"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="variant">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalsoundtrack" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="gebruikexterngeluidsfragment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="name" file="syst-gen.tex">
- <cd:sequence>
- <cd:string value="name"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="legend" type="environment">
- <cd:sequence>
- <cd:string value="legend"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="twee"/>
- </cd:keywords>
- <cd:tex n="2" command="leg"/>
- <cd:nothing n="3"/>
- <cd:nothing n="4" separator="backslash"/>
- <cd:nothing n="5" separator="backslash"/>
- <cd:tex n="6" separator="backslash" command="leg"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fact" type="environment">
- <cd:sequence>
- <cd:string value="geg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:tex n="1" command="fact"/>
- <cd:nothing n="2"/>
- <cd:nothing n="3" separator="backslash"/>
- <cd:nothing n="4" separator="backslash"/>
- <cd:tex n="5" separator="backslash" command="fact"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="rotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="roteer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelroterenin" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuprotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelroterenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="rotatie">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="normaal"/>
- <cd:constant type="hoog"/>
- <cd:constant type="passend"/>
- <cd:constant type="ruim"/>
- <cd:constant type="diepte"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mirror" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="spiegel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="scale" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="schaal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="sx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcombinations" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="stelcombinatiesin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="boven"/>
- <cd:constant type="midden"/>
- <cd:constant type="onder"/>
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="combination" type="environment">
- <cd:sequence>
- <cd:string value="combination"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:matrix"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placesidebyside" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="plaatsnaastelkaar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeontopofeachother" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="plaatsonderelkaar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overlay" type="environment">
- <cd:sequence>
- <cd:string value="overlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overview" type="environment">
- <cd:sequence>
- <cd:string value="overview"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionscreen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelinteractieschermin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="passend"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="rugwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopwit">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rugoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kopoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="max"/>
- <cd:constant type="passend"/>
- <cd:constant type="dubbelzijdig"/>
- <cd:constant type="enkelzijdig"/>
- <cd:constant type="auto"/>
- <cd:constant type="geen"/>
- <cd:constant type="bookmark"/>
- </cd:parameter>
- <cd:parameter name="wachttijd">
- <cd:constant type="cd:number"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="screen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="scherm"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setuppagetransitions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelpaginaovergangenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteraction" file="core-nav.tex">
- <cd:sequence>
- <cd:string value="stelinteractiein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="menu">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="klik">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="splitsen">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="scherm">
- <cd:constant type="nieuw"/>
- </cd:parameter>
- <cd:parameter name="openactie">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="sluitactie">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="openpaginaactie">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="sluitpaginaactie">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="bereken">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="diepte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="contrastkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="symboolset">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titel">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="subtitel">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="auteur">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="datum">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="trefwoord">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <!-- maybe this will move elsewhere -->
- <cd:parameter name="veldlaag">
- <cd:constant type="auto"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelinteractiemenuin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="midden">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="geen"/>
- <cd:constant type="lokaal"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="contrastkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="overlay"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="zelfdepagina">
- <cd:constant type="ja"/>
- <cd:constant type="leeg"/>
- <cd:constant type="nee"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="onbekendereferentie">
- <cd:constant type="ja"/>
- <cd:constant type="leeg"/>
- <cd:constant type="nee"/>
- <cd:constant type="geen"/>
- </cd:parameter>
- <cd:parameter name="linkeroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="rechteroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bovenoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="onderoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="positie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin" n="2"/> <!-- maybe not all parameters from framed -->
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definieerinteractiemenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelinteractiemenuin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definieerinteractiemenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="stelinteractiemenuin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionmenu" type="environment">
- <cd:sequence>
- <cd:string value="interactiemenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="disableinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="blokkeerinteractiemenu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="boven"/>
- <cd:constant type="onder"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternaldocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="gebruikexterndocument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="file"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useURL" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="gebruikURL"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="file"/>
- </cd:keywords>
- <cd:keywords n="4">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupledocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="koppeldocument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="file"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="from" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="uit"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="exclusive"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionbar">
- <cd:sequence>
- <cd:string value="interactiebalk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:inherit name="stelinteractiebalkin" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="interactiebuttons"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="stelinteractiebalkin" n="1"/>
- </cd:assignments>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelinteractiebalkin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="variant">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- <cd:constant type="e"/>
- <cd:constant type="f"/>
- <cd:constant type="g"/>
- </cd:parameter>
- <cd:parameter name="symbool">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hoogte"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hoogte"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="diepte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stap">
- <cd:constant type="cd:number"/>
- <cd:constant type="klein"/>
- <cd:constant type="middel"/>
- <cd:constant type="groot"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synchronize" file="core-int.tex">
- <cd:sequence>
- <cd:string value="synchroniseer"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="synchronization" type="environment">
- <cd:sequence>
- <cd:string value="synchronization"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupsynchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelsynchronisatiebalkin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="variant">
- <cd:constant type="pagina"/>
- <cd:constant type="lokaal"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="hoogte"/>
- <cd:constant type="passend"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="synchronisatiebalk"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="variant">
- <cd:constant type="pagina"/>
- <cd:constant type="lokaal"/>
- </cd:parameter>
- <cd:inherit name="stelsynchronisatiebalkin" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsynchronization" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelsynchronisatiein"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definieerprofiel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupprofiles" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelprofielenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="optie">
- <cd:constant type="test"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="profile" type="environment">
- <cd:sequence>
- <cd:string value="profile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="volgprofiel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placebookmarks" file="core-int.tex">
- <cd:sequence>
- <cd:string value="plaatsbookmarks"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="alles"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:parameter name="forceer">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="bookmark" file="core-int.tex">
- <cd:sequence>
- <cd:string value="bookmark"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="version" type="environment">
- <cd:sequence>
- <cd:string value="versie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupversions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelversiesin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="nummer">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="markversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="markeerversie"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="selectversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="selecteerversie"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="defineversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definieerversie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="volgversie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followprofileversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="volgprofielversie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineprogram" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definieerprogramma"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupprograms" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="stelprogrammasin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="directory">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="program" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="programma"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="figure" type="environment">
- <cd:sequence>
- <cd:string value="figure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="kader">
- <cd:constant type="aan"/>
- <cd:constant type="uit"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- referring*figure skipped -->
-
- <!-- marking*figure skipped -->
-
- <!-- remark skipped -->
-
- <cd:command name="goto" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="naar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:content n="2" interactive="exclusive"/>
- <cd:reference n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="gotobox" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="naarbox"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="button" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="button"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="stelbuttonsin" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:reference n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="stelbuttonsin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- menubutton skipped -->
-
- <cd:command name="setupcomment" file="core-int.tex">
- <cd:sequence>
- <cd:string value="stelcommentaarin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titel">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="spatie">
- <cd:constant type="ja"/>
- <cd:constant type="nee"/>
- </cd:parameter>
- <cd:parameter name="symbool">
- <cd:constant type="normaal"/>
- <cd:constant type="Nieuw"/>
- <cd:constant type="Ballon"/>
- <cd:constant type="Toevoeging"/>
- <cd:constant type="Help"/>
- <cd:constant type="Paragraaf"/>
- <cd:constant type="Sleutel"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="max"/>
- <cd:constant type="buffer"/>
- </cd:parameter>
- <cd:parameter name="marge">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comment" type="environment">
- <cd:sequence>
- <cd:string value="comment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelcommentaarin" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comment">
- <cd:sequence>
- <cd:string value="comment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="stelcommentaarin" n="1"/>
- </cd:assignments>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definieerveld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1"> <!-- name -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2"> <!-- type -->
- <cd:constant type="tekst"/>
- <cd:constant type="regel"/> <!-- equal to text -->
- <cd:constant type="push"/>
- <cd:constant type="check"/>
- <cd:constant type="radio"/>
- <cd:constant type="combo"/>
- <cd:constant type="choice"/> <!-- equal to combo -->
- <cd:constant type="popup"/> <!-- equal to combo -->
- </cd:keywords>
- <cd:keywords n="3"> <!-- group -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4" list="yes"> <!-- optional for text? -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes"> <!-- default -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesubfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definieersubveld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="copyfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="copieerveld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="clonefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="kloonveld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="field" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="veld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fitfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="passendveld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="invulveld"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tooltip" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="suggestie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="links"/>
- <cd:constant type="rechts"/>
- <cd:constant type="midden"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="toonvelden"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="logfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="registreervelden"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="stelveldin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="label"/>
- <cd:constant type="horizontaal"/>
- <cd:constant type="vertikaal"/>
- <cd:constant type="kader"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="stelveldenin" n="2"/>
- </cd:assignments>
- <cd:assignments n="4" list="yes"> </cd:assignments>
- <cd:assignments n="5" list="yes"> </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="stelveldenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- TODO: if it's reset, only a single argument, no list -->
- <cd:constant type="reset"/>
- <cd:constant type="label"/>
- <cd:constant type="horizontaal"/>
- <cd:constant type="vertikaal"/>
- <cd:constant type="kader"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="voor">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="na">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="kleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="letter">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="uitlijnen">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="optie">
- <cd:constant type="alleenleesbaar"/>
- <cd:constant type="verplicht"/>
- <cd:constant type="beschermd"/>
- <cd:constant type="gesorteerd"/>
- <cd:constant type="nietbeschikbaar"/>
- <cd:constant type="verborgen"/>
- <cd:constant type="printbaar"/>
- </cd:parameter>
- <cd:parameter name="klikin">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="klikuit">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="gebiedin">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="gebieduit">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="natoets">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="formatteer">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="valideer">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="bereken">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="veldoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="veldkaderkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="veldachtergrondkleur">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="stelomlijndin" n="2"/>
- </cd:assignments>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="stelveldenin" n="2"/>
- </cd:assignments>
- <cd:assignments n="4" list="yes">
- <cd:inherit name="stelveldenin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupforms" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="stelformulierenin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="methode">
- <cd:constant type="HTML"/>
- <cd:constant type="FDF"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definieerveldstapel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="stelveldenin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="veldstapel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="stelveldenin" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="clip" file="core-trf.tex">
- <cd:sequence>
- <cd:string value="clip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="stelclipin" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupclipping" file="core-trf.tex">
- <cd:sequence>
- <cd:string value="stelclipin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="status">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="sx">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="linkeroffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="rechteroffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="bovenoffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="onderoffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="mp">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelegend">
- <cd:sequence>
- <cd:string value="plaatslegenda"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplegend">
- <cd:sequence>
- <cd:string value="stellegendain"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="afstand">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="tussen">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="breedte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="hoogte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="plaats">
- <cd:constant type="rechts"/>
- <cd:constant type="onder"/>
- </cd:parameter>
- <cd:parameter name="korps">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="stelstrutin"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="ja" default="yes"/>
- <cd:constant type="nee"/>
- <cd:constant type="kap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usetypescriptfile" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="gebruiktypescriptfile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usetypescript" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="gebruiktypescript"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetypeface" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="definetypeface"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="rm"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="mm"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="6" optional="yes">
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="rscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="encoding">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="tekst">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefontfeature" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="definefontfeature"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="no">
- <cd:parameter name="compose">
- <cd:constant type="nee" default="yes"/>
- <cd:constant type="ja"/>
- </cd:parameter>
- <cd:parameter name="mode">
- <cd:constant type="node"/>
- <cd:constant type="base" default="yes"/>
- </cd:parameter>
- <cd:parameter name="tlig">
- <cd:constant type="nee" default="yes"/>
- <cd:constant type="ja"/>
- </cd:parameter>
- <cd:parameter name="trep">
- <cd:constant type="nee" default="yes"/>
- <cd:constant type="ja"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="language">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="..tag.."> <!-- can't use &gt; here, \showsetup gives an error -->
- <cd:constant type="nee" default="yes"/>
- <cd:constant type="ja"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefonthandling" file="hand-ini.mkii">
- <cd:sequence>
- <cd:string value="definefonthandling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name" list="yes"/>
- </cd:keywords>
- <cd:assignments n="3">
- <cd:parameter name="type">
- <cd:constant type="hangend" default="yes"/>
- <cd:constant type="hz"/>
- <cd:constant type="spatiering"/>
- <cd:constant type="tag"/>
- </cd:parameter>
- <cd:parameter name="rechts">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="links">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="min">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="max">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stap">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfonthandling" file="hand-ini.mkii">
- <cd:sequence>
- <cd:string value="setupfonthandling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:inherit name="definefonthandling" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- mkii:
-
- <cd:command name="definefontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definieerfontsynoniem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="encoding">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="handling">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="mapping">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="definefontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definieerfontsynoniem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="fallbacks">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="goodies">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="setupfontsynonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:inherit name="definieerfontsynoniem" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mapfontsize" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="mapfontsize"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definedfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definedfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="definieerfont" n="2"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
-</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkii/cont-pe.xml b/Master/texmf-dist/tex/context/interface/mkii/cont-pe.xml
deleted file mode 100644
index d538f4cfbb5..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkii/cont-pe.xml
+++ /dev/null
@@ -1,10396 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- versions:
-
- comment : user interface definitions of ConTeXt
-
- authors : Hans Hagen, Taco Hoekwater, Patrick Gundlach, Wolfgang Schuster, and others
-
- versions : 2004.11.17 : initial version
- 2006.08.02 : define + resolve
-
--->
-
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context test" language="en" version="2006.08.02">
-
- <!-- there are some more -->
-
- <cd:define name="align">
- <cd:constant type="داخلی"/>
- <cd:constant type="خارجی"/>
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="پمپ‌چپ"/>
- <cd:constant type="پمپ‌راست"/>
- <cd:constant type="میان"/>
- <cd:constant type="مرکز"/>
- <cd:constant type="نرمال"/>
- <cd:constant type="نه"/>
- <cd:constant type="بله"/>
- <cd:constant type="گسترده"/>
- <cd:constant type="آخرین"/>
- <cd:constant type="r2l"/>
- <cd:constant type="l2r"/>
- </cd:define>
-
- <cd:define name="symalign">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="پمپ‌چپ"/>
- <cd:constant type="پمپ‌راست"/>
- <cd:constant type="میان"/>
- <cd:constant type="مرکز"/>
- </cd:define>
-
- <cd:define name="indenting">
- <cd:constant type="هیچگاه"/>
- <cd:constant type="هیچکدام"/>
- <cd:constant type="بدون"/>
- <cd:constant type="نه"/>
- <cd:constant type="بله"/>
- <cd:constant type="همواره"/>
- <cd:constant type="اولی"/>
- <cd:constant type="بعدی"/>
- <cd:constant type="کوچک"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="بزرگ"/>
- <cd:constant type="نرمال"/>
- <cd:constant type="فرد"/>
- <cd:constant type="زوج"/>
- <cd:constant type="cd:dimension"/>
- </cd:define>
-
- <cd:define name="indentnext">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:define>
-
- <cd:define name="style">
- <cd:constant type="نرمال"/>
- <cd:constant type="مشکی"/>
- <cd:constant type="خوابیده"/>
- <cd:constant type="خوابیده‌مشکی"/>
- <cd:constant type="تایپ"/>
- <cd:constant type="cap"/>
- <cd:constant type="small..."/>
- <cd:constant type="cd:command"/>
- </cd:define>
-
- <cd:define name="language">
- <cd:constant type="nl"/>
- <cd:constant type="fr"/>
- <cd:constant type="en"/>
- <cd:constant type="uk"/>
- <cd:constant type="de"/>
- <cd:constant type="es"/>
- <cd:constant type="cz"/>
- <cd:constant type=".."/>
- </cd:define>
-
- <cd:define name="texts">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="تاریخ"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="شماره‌صفحه"/>
- </cd:define>
-
- <cd:define name="layout-h">
- <cd:constant type="متن" default="yes"/>
- <cd:constant type="حاشیه"/>
- <cd:constant type="لبه"/>
- </cd:define>
-
- <cd:define name="layout-v">
- <cd:constant type="بالا"/>
- <cd:constant type="سربرگ"/>
- <cd:constant type="متن" default="yes"/>
- <cd:constant type="ته‌برگ"/>
- <cd:constant type="پایین"/>
- </cd:define>
-
- <cd:define name="bodyfont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="کوچک"/>
- <cd:constant type="بزرگ"/>
- </cd:define>
-
- <cd:command name="installlanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="نصب‌زبان"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="فضاگذاری">
- <cd:constant type="فشرده" default="yes"/>
- <cd:constant type="گسترده"/>
- </cd:parameter>
- <cd:parameter name="lefthyphenmin">
- <cd:constant type="cd:number" default="2"/>
- </cd:parameter>
- <cd:parameter name="righthyphenmin">
- <cd:constant type="cd:number" default="2"/>
- </cd:parameter>
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- <cd:parameter name="جمله‌چپ">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="جمله‌راست">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="زیرجمله‌چپ">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="زیرجمله‌راست">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="نقل‌چپ">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="نقل‌راست">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="نقل‌قول‌چپ">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="نقل‌قول‌راست">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="سخنرانی‌چپ">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="سخنرانی‌میانی">
- <cd:constant type="cd:command" default=""/>
- </cd:parameter>
- <cd:parameter name="سخنرانی‌راست">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="مرزمتن">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="تاریخ">
- <cd:constant type="cd:text"/> <!-- TODO -->
- </cd:parameter>
- <cd:parameter name="compoundhyphen">
- <cd:constant type="cd:command" default="\compoundhyphen"/>
- </cd:parameter>
- <cd:parameter name="leftcompoundhyphen">
- <cd:constant type="cd:command" default="\compoundhyphen"/>
- </cd:parameter>
- <cd:parameter name="rightcompoundhyphen">
- <cd:constant type="cd:command" default=""/>
- </cd:parameter>
- <cd:parameter name="پیش‌فرض">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="بارگذاری‌زبان"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="نصب‌زبان" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="language" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="زبان"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mainlanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="زبان‌اصلی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="translate" file="lang-lab.tex" category="language">
- <cd:sequence>
- <cd:string value="ترجمه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useencoding" file="enco-ini.tex" category="encoding" obsolete="yes"> <!-- engine="pdftex" -->
- <cd:sequence>
- <cd:string value="استفاده‌رمزینه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usespecials" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="استفاده‌ویژگیها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="بازنشانی"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="تعریف‌خروجی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌خروجی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontenvironment" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="تعریف‌محیط‌قلم‌بدنه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes"> <!-- it's possible to use 1+2+3, 2+3, what about 1+2? -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="no"> <!-- have to force no, otherwise \showsetup is wrong ! -->
- <cd:constant type="5pt"/> <!-- TODO: maybe <cd:resolve name="bodyfont"/> -->
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="پیش‌فرض"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:parameter name="متن">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scriptscript">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="xx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="d">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="کوچک">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="بزرگ">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فضای‌بین‌خط">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="em">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbodyfontenvironment" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="بارگذاری‌محیط‌قلم‌متن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes"> <!-- same as definebodyfontenvironment; you can define the whole commant to inherit, not only parameters-->
- <cd:inherit name="تعریف‌محیط‌قلم‌بدنه" n="1"/>
- </cd:keywords>
- <cd:keywords n="2" optional="no">
- <cd:inherit name="تعریف‌محیط‌قلم‌بدنه" n="2" optional="no"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="تعریف‌محیط‌قلم‌بدنه" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showbodyfontenvironment" file="font-run.tex" category="fonts"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="نمایش‌محیط‌قلم‌بدنه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌قلم‌متن" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="تعریف‌قلم‌متن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- <cd:constant type="پیش‌فرض"/> -->
- <cd:resolve name="bodyfont"/> <!-- TODO: check this -->
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="rm" default="yes"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- <cd:constant type="mm"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="tf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sl">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="it">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bs">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mr">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ex">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ma">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mb">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="md">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontDEF" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="تعریف‌قلم‌متن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="بارگذاری‌قلم‌متن" n="2"/>
- </cd:keywords>
- <cd:keywords n="1">
- <cd:inherit name="بارگذاری‌قلم‌متن" n="3"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontREF" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="تعریف‌قلم‌متن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="بارگذاری‌قلم‌متن" n="1"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="بارگذاری‌قلم‌متن" n="2"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showbodyfont" file="font-run.tex" category="fonts"> <!-- visual debugging -->
- <cd:sequence>
- <cd:string value="نمایش‌قلم‌بدنه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌قلم‌متن" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbodyfont" file="font-run.tex" category="fonts">
- <cd:sequence>
- <cd:string value="بارگذاری‌قلم‌متن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- TODO: many missing, maybe also <cd:resolve name="bodyfont"/> -->
- <cd:constant type="cd:name"/>
- <cd:constant type="سریف"/>
- <cd:constant type="منظم"/>
- <cd:constant type="رومن"/>
- <cd:constant type="سانز"/>
- <cd:constant type="حمایت"/>
- <cd:constant type="سانزسریف"/>
- <cd:constant type="مونو"/>
- <cd:constant type="تایپ"/>
- <cd:constant type="دورنگاره"/>
- <cd:constant type="دست‌نوشته"/>
- <cd:constant type="خوشنویسی"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="switchtobodyfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="تغییربه‌قلم‌بدنه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="سریف"/>
- <cd:constant type="منظم"/>
- <cd:constant type="رومن"/>
- <cd:constant type="سانز"/>
- <cd:constant type="حمایت"/>
- <cd:constant type="سانزسریف"/>
- <cd:constant type="مونو"/>
- <cd:constant type="تایپ"/>
- <cd:constant type="دورنگاره"/>
- <cd:constant type="دست‌نوشته"/>
- <cd:constant type="خوشنویسی"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="کوچک"/>
- <cd:constant type="بزرگ"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="تعریف‌قلم"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="بارگذاری‌رنگ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolors" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="بارگذاری‌رنگها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- <cd:constant type="سراسری"/>
- <cd:constant type="موضعی"/>
- </cd:parameter>
- <cd:parameter name="تبدیل">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="همواره"/>
- <cd:constant type="هیچگاه"/>
- </cd:parameter>
- <cd:parameter name="کاهش">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="rgb">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="cmyk">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="mpcmyk">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="mpspot">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="عامل">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌متن">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="شکافتن">
- <cd:constant type="c"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/>
- <cd:constant type="k"/>
- <cd:constant type="p"/>
- <cd:constant type="s"/>
- <cd:constant type="نه"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="همه"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="intent">
- <cd:constant type="هیچکدام"/>
- <cd:constant type="overprint"/>
- <cd:constant type="knockout"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="تعریف‌رنگ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="r">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="g">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="k">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="s">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="h">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="t">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="p">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="e">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="color" type="environment" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="رنگ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="color" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="رنگ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="graycolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="رنگ‌خاکستری"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showcolor" file="colo-run.tex" category="colors"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="نمایش‌رنگ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definepalet" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="تعریف‌لوح"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppalet" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="بارگذاری‌لوح"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecolorgroup" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="تعریف‌گروه‌رنگ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="rgb" default="yes"/>
- <cd:constant type="cmyk"/>
- <cd:constant type="خاکستری"/>
- <cd:constant type="s"/>
- </cd:keywords>
- <cd:triplet n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showpalet" file="colo-run.tex" category="colors"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="نمایش‌لوح"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="افقی"/>
- <cd:constant type="عمودی"/>
- <cd:constant type="نام"/>
- <cd:constant type="مقدار"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showcolorgroup" file="colo-run.tex" category="colors"> <!-- and debug-->
- <cd:sequence>
- <cd:string value="نمایش‌گروه‌رنگ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="افقی"/>
- <cd:constant type="عمودی"/>
- <cd:constant type="نام"/>
- <cd:constant type="مقدار"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comparepalet" file="colo-run.tex" category="colors"> <!-- and debug? -->
- <cd:sequence>
- <cd:string value="لوح‌مقایسه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comparecolorgroup" file="colo-run.tex" category="colors">
- <cd:sequence>
- <cd:string value="مقایسه‌گروه‌رنگ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showmakeup" file="supp-vis.tex" category="debug">
- <cd:sequence>
- <cd:string value="نمایش‌آرایش"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definetype" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="تعریف‌تایپ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="بارگذاری‌تایپ" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptype" file="core-ver.tex" category="verbatim"> <!-- TODO -->
- <cd:sequence>
- <cd:string value="بارگذاری‌تایپ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="فضا">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش" default="yes"/>
- </cd:parameter>
- <cd:parameter name="گزینه">
- <cd:constant type="خوابیده"/>
- <cd:constant type="نرمال"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="چپ">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="راست">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="فرمان">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="type" file="verb-ini.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="تایپ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typ" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="typ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tex" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="تک"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <!-- cd:command name="arg" file="core-ver.tex"> command broken
- <cd:sequence>
- <cd:string value="افزودن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command -->
-
- <cd:command name="definetyping" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="تعریف‌تایپ‌کردن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="بارگذاری‌تایپ‌کردن" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="بارگذاری‌تایپ‌کردن" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptyping" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="بارگذاری‌تایپ‌کردن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="پرونده"/>
- <cd:constant type="تایپ‌کردن"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="گزینه">
- <cd:constant type="خوابیده"/>
- <cd:constant type="نرمال"/>
- <cd:constant type="فرمانها" version="mkiv"/>
- <cd:constant type="رنگ"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="متن">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="icommand">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="vcommand">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="فرمان">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="حاشیه">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="استاندارد"/>
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="حاشیه‌زوج">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="حاشیه‌فرد">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="خالی">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="کوچک"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="بزرگ"/>
- <cd:constant type="استاندارد"/>
- <cd:constant type="نیم‌خط"/>
- <cd:constant type="خط"/>
- </cd:parameter>
- <cd:parameter name="فرار">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="فضا">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- <cd:parameter name="تب">
- <cd:constant type="cd:number"/>
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="صفحه">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="متن‌تورفته">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="لوح">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="range">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="خطها">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="شکسته"/>
- </cd:parameter>
- <cd:parameter name="تهی">
- <cd:constant type="بله"/>
- <cd:constant type="همه"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="شماره‌گذاری">
- <cd:constant type="خط"/>
- <cd:constant type="پرونده"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="قلم‌بدنه">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="strip">
- <cd:constant type="نه"/>
- <cd:constant type="خودکار"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typing" type="environment" generated="yes" file="verb-ini.tex"
- category="verbatim">
- <cd:sequence>
- <cd:variable value="تایپ‌کردن"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="typefile" file="verb-ini.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="تایپ‌پرونده"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="بارگذاری‌پانوشتها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="تبدیل">
- <cd:constant type="شماره‌ها"/>
- <cd:constant type="حرفها"/>
- <cd:constant type="Characters"/>
- <cd:constant type="شماره‌لاتین"/>
- <cd:constant type="اعداد‌بزرگ‌لاتین"/>
- </cd:parameter>
- <cd:parameter name="راه">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="صفحه"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="ستونها"/>
- <cd:constant type="ستون‌اول"/>
- <cd:constant type="آخرین‌ستون"/>
- <cd:constant type="بلند"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="خط">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="قلم‌بدنه">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌ستون">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌حاشیه">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="فرمان‌شماره">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="فرمان‌متن">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="شکافتن">
- <cd:constant type="بردبار"/>
- <cd:constant type="اکید"/>
- <cd:constant type="خیلی‌سختگیر"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="سبک‌متن">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌متن">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="پانل">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="پاراگراف">
- <cd:constant type="بله"/>
- <cd:constant type="نه" default="yes"/>
- </cd:parameter>
- <cd:parameter name="عامل">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootnotedefinition" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="بارگذاری‌تعریف‌پانوشت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:inherit name="بارگذاری‌شرح" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="footnote" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="پانوشت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="footnotetext" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="متن‌پانوشت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="note" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="یادداشت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="localfootnotes" type="environment" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="localfootnotes"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelocalfootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="درج‌پانوشتهای‌موضعی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌پانوشتها" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placefootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="درج‌پانوشتها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌پانوشتها" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupunderbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌میله‌زیر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="جایگزین">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- <cd:parameter name="ضخامت‌خط">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="آفست‌پایین">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="آفست‌بالا">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌خط">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="underbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="underbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="underbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="underbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overstrike" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrike"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overstrikes" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrikes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="اعدادلاتین"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Romannumerals"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="numbers" file="core-con.tex">
- <cd:sequence>
- <cd:string value="شماره‌ها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="حرف"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Character"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="حرفها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Characters"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mediaeval" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mediaeval"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="month" file="core-con.tex">
- <cd:sequence>
- <cd:string value="ماه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="MONTH" file="core-con.tex">
- <cd:sequence>
- <cd:string value="MONTH"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="weekday" file="core-con.tex">
- <cd:sequence>
- <cd:string value="روزهفته"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WEEKDAY" file="core-con.tex">
- <cd:sequence>
- <cd:string value="WEEKDAY"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcapitals" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="setupcapitals"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="عنوان">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="cap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nocap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="nocap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="CAP" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="CAP"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Cap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Caps" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Caps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WORD" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="WORD"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WORDS" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="WORDS"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Word" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Word"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Words" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Words"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="stretched" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="کشیده"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="تعریف‌نماد"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefiguresymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="تعریف‌نمادشکل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌شکلهای‌خارجی" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="symbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="نماد"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="symbolset" type="environment" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="symbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsymbolset" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="بارگذاری‌مجموعه‌نماد"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usesymbols" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="استفاده‌نمادها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showsymbolset" file="symb-run.tex" category="symbols"> <!-- and symbols -->
- <cd:sequence>
- <cd:string value="نمایش‌مجموعه‌علامت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineconversion" file="core-con.tex">
- <cd:sequence>
- <cd:string value="تعریف‌تبدیل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="convertnumber" file="core-con.tex">
- <cd:sequence>
- <cd:string value="شماره‌مبدل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheadtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌متن‌سر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplabeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="باگذاری‌متن‌برچسب"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="headtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="متن‌سر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="متن‌برچسب"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarginrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌خطهای‌حاشیه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="مرحله">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ضخامت‌خط">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="خط‌حاشیه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="خط‌حاشیه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplinewidth" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌عرض‌خط"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌قالبی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/> <!-- defines a command with that name -->
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="ارتفاع">
- <cd:constant type="پرکردن"/>
- <cd:constant type="گسترده"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="پرکردن"/>
- <cd:constant type="گسترده"/>
- <cd:constant type="ثابت"/>
- <cd:constant type="موضعی"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="عرض‌خودکار">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="اجبار"/>
- </cd:parameter>
- <cd:parameter name="آفست">
- <cd:constant type="هیچکدام"/>
- <cd:constant type="پوشش"/>
- <cd:constant type="پیش‌فرض"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="عمق"/>
- <cd:constant type="آویزان"/>
- <cd:constant type="بلند"/>
- <cd:constant type="پابا"/>
- <cd:constant type="پایین"/>
- <cd:constant type="بالا"/>
- <cd:constant type="میان"/>
- <cd:constant type="پایین"/>
- <cd:constant type="نگهدار"/>
- </cd:parameter>
- <cd:parameter name="گزینه">
- <cd:constant type="هیچکدام"/>
- <cd:constant type="تهی"/>
- </cd:parameter>
- <cd:parameter name="بست">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="سراسری"/>
- <cd:constant type="موضعی"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="پایین">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بالا">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="قالب">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- <cd:constant type="هیچکدام"/>
- <cd:constant type="پوشش"/>
- </cd:parameter>
- <cd:parameter name="قالب‌راست">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- <cd:parameter name="قالب‌پایین">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- <cd:parameter name="قالب‌چپ">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- <cd:parameter name="قالب‌راست">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- <cd:parameter name="آفست‌قالب">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="عمق‌قالب">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="گوشه‌قالب">
- <cd:constant type="گرد"/>
- <cd:constant type="چهارگوشه"/>
- </cd:parameter>
- <cd:parameter name="شعاع‌قالب">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌قالب">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="پس‌زمینه">
- <cd:constant type="پرده"/>
- <cd:constant type="رنگ"/>
- <cd:constant type="هیچکدام"/>
- <cd:constant type="پیش‌زمینه"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="پرده‌پس‌زمینه">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌پس‌زمینه">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="آفست‌پس‌زمینه">
- <cd:constant type="قالب"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="عمق‌پس‌زمینه">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="گوشه‌پس‌زمینه">
- <cd:constant type="گرد"/>
- <cd:constant type="چهارگوشه"/>
- </cd:parameter>
- <cd:parameter name="شعاع‌پس‌زمینه">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="عمق">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="گوشه">
- <cd:constant type="گرد"/>
- <cd:constant type="چهارگوشه"/>
- </cd:parameter>
- <cd:parameter name="شعاع">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="تهی">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌پیش‌زمینه">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="سبک‌پیش‌زمینه">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="ضخامت‌خط">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="قالبی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌قالبی" n="2"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="درقالبی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌قالبی" n="2"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="thinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="خطهای‌نازک"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes">
- <cd:inherit name="بارگذاری‌خطها‌ی‌نازک" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupthinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌خطها‌ی‌نازک"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="فضای‌بین‌خط">
- <cd:constant type="کوچک"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="بزرگ"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="دربین">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌پس‌زمینه">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="بیشترین"/>
- </cd:parameter>
- <cd:parameter name="عمق">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="بیشترین"/>
- </cd:parameter>
- <cd:parameter name="جایگزین">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- </cd:parameter>
- <cd:parameter name="ضخامت‌خط">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="پس‌زمینه">
- <cd:constant type="رنگ"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌پس‌زمینه">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hairline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="خط‌مو"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="thinrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="خط‌نازک"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="defineframedtext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="تعریف‌متن‌قالبی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌متن‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="تعریف‌قالبی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌متن‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupframedtexts" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌متن‌قالبی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="قلم‌بدنه">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="چپ">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="راست">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="داخلی">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="تصحیح‌خط">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- <cd:parameter name="تصحیح‌عمق">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- <cd:parameter name="حاشیه">
- <cd:constant type="استاندارد"/>
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="میان"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="تورفتگی">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framedtext" type="environment" generated="yes" file="core-rul.tex">
- <cd:sequence>
- <cd:variable value="متن‌قالبی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="میان"/>
- <cd:constant type="هیچکدام"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌متن‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framedtext" generated="yes" file="core-rul.tex">
- <cd:sequence>
- <cd:variable value="متن‌قالبی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌متن‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="background" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="پس‌زمینه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="background" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="پس‌زمینه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbackground" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌پس‌زمینه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="آفست‌چپ">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="آفست‌راست">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="آفست‌بالا">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="آفست‌پایین">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="درج‌درخطها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌درج‌درخطها" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillintext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="درج‌درمتن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌درج‌درخطها" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌درج‌درخطها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="عرض">
- <cd:constant type="پرکردن"/>
- <cd:constant type="گسترده"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="فضای‌بین‌خط">
- <cd:constant type="کوچک"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="بزرگ"/>
- </cd:parameter>
- <cd:parameter name="جداکننده">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="درج‌درخط"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌پرکردن‌خطها" n="1"/>
- </cd:assignments>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfillinlines" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌پرکردن‌خطها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="حاشیه">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptextrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌خطهای‌متن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="مکان">
- <cd:constant type="چپ"/>
- <cd:constant type="درون‌حاشیه"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="دربین">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="قلم‌بدنه">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌خط">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="خط‌متن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="بالا"/>
- <cd:constant type="پایین"/>
- </cd:keywords>
- <cd:content n="2" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="خط‌متن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="بالا"/>
- <cd:constant type="پایین"/>
- </cd:keywords>
- <cd:content n="2" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="blackrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="خط‌سیاه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌خطهای‌سیاه" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="blackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="خطهای‌سیاه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:inherit name="بارگذاری‌خطهای‌سیاه" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌خطهای‌سیاه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension" default="1em"/>
- <cd:constant type="بیشترین"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension" default="1ex"/>
- <cd:constant type="بیشترین"/>
- </cd:parameter>
- <cd:parameter name="عمق">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="بیشترین"/>
- </cd:parameter>
- <cd:parameter name="جایگزین">
- <cd:constant type="a" default="yes"/>
- <cd:constant type="b"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension" default=".25ex"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number" default="3"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineoverlay" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="تعریف‌پوشش"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usemodule" file="core-fil.tex"> <!-- TODO -->
- <cd:sequence>
- <cd:string value="استفاده‌مدول"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reset" file="core-num.tex">
- <cd:sequence>
- <cd:string value="بازنشانی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!-- <cd:command name="donttest">
- <cd:sequence>
- <cd:string value="امتحان‌نکن"/>
- </cd:sequence>
-</cd:command> -->
-
- <cd:command name="localenvironment" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="localenvironment"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupsystem" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌سیستم"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="کیفیت">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="پرونده">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="پوشه">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="تصادفی">
- <cd:constant type="نرمال"/>
- <cd:constant type="کوچک"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="بزرگ"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usedirectory" file="core-job.mkii"> <!-- usepath, todo: more than one file -->
- <cd:sequence>
- <cd:string value="usedirectory"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="بازنشانی"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="low" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="پایین"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="high" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="بلند"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="lohi" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="پابا"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="پایین"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showframe" file="page-run.tex">
- <cd:sequence>
- <cd:string value="نمایش‌قالب"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- <cd:constant type="حاشیه"/>
- <cd:constant type="لبه"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="leftaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="چپ‌چین"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="rightaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="تنظیم‌راست"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="midaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="تنظیم‌وسط"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="wordright" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="کلمه‌راست"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inmargin" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="درحاشیه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="پایین"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inothermargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="درحاشیه‌دیگر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="پایین"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inleft" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="درچپ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="پایین"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inright" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="درراست"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="پایین"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ininner" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="درداخلی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="پایین"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inouter" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="درخارجی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="پایین"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="column" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="ستون"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showstruts" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="نمایش‌بستها"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showsetups" file="page-run.tex">
- <cd:sequence>
- <cd:string value="نمایش‌بارگذاریها"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showlayout" file="page-run.tex">
- <cd:sequence>
- <cd:string value="نمایش‌طرح‌بندی"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="margintext" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="متن‌حاشیه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="پایین"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarginblocks" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌بلوکهای‌حاشیه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="مکان">
- <cd:constant type="درون‌حاشیه"/>
- <cd:constant type="چپ"/>
- <cd:constant type="میان"/>
- <cd:constant type="راست"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="بالا">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="دربین">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="پایین">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="چپ">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="راست">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginblock" type="environment" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="marginblock"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="part" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="part"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="title" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="title"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="chapter" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="chapter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="section" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="section"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="appendix" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="appendix"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="in" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="درون"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:content n="2" interactive="yes"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="at" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="در"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:content n="2" interactive="yes"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="about" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="درمورد"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:reference n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="somewhere" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="یک‌جا"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="atpage" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="درصفحه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ref" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="رج"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="t"/>
- <cd:constant type="p"/>
- <cd:constant type="r"/>
- <cd:constant type="s"/>
- <cd:constant type="e"/>
- </cd:keywords>
- <cd:reference n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textreference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="مرجع‌متن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="pagereference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="مرجع‌صفحه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="مرجع"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usereferences" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="استفاده‌مرجعها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="تعریف‌مرجع"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereferenceformat" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="تعریف‌شمایل‌مرجع"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="چپ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="راست">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="متن">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="برچسب">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hl" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="خ‌ا"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="vl" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="خ‌ع"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="godown" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="بروپایین"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="whitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="فضای‌سفید"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="nowhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="بدون‌فضای‌سفید"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="crlf" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="crlf"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="space" file="syst-pln.tex">
- <cd:sequence>
- <cd:string value="فضا"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="fixedspaces" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="فضاهای‌ثابت"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="emptylines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="خطها‌خالی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nospace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="بدون‌فضا"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="packed" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="فشرده"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupdescriptions" file="core-des.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌شرح"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="سبک">
- <cd:resolve name="style"/> <!-- TODO: style=normal -->
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="پرکردن"/>
- <cd:constant type="گسترده"/>
- <cd:constant type="cd:dimension" default="8em"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="نمونه">
- <cd:constant type="cd:text" default=""/>
- </cd:parameter>
- <cd:parameter name="متن">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="بستن‌فرمان">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="بستن‌نماد">
- <cd:constant type="cd:text" default=""/>
- </cd:parameter>
- <cd:parameter name="عنوان‌چپ">
- <cd:constant type="cd:text" default="("/>
- </cd:parameter>
- <cd:parameter name="عنوان‌راست">
- <cd:constant type="cd:text" default=")"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌عنوان">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="سبک‌عنوان">
- <cd:resolve name="style"/> <!-- TODO: default=bold -->
- </cd:parameter>
- <cd:parameter name="رنگ‌عنوان">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="حاشیه">
- <cd:constant type="استاندارد"/>
- <cd:constant type="بله"/>
- <cd:constant type="نه" default="yes"/> <!-- TODO: this is default; conflicting syntax? -->
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="چپ" default="yes"/>
- <cd:constant type="راست"/>
- <cd:constant type="بالا"/>
- <cd:constant type="تنگ‌هم"/>
- <cd:constant type="درون‌حاشیه"/>
- <cd:constant type="درون‌چپ"/>
- <cd:constant type="درون‌راست"/>
- <cd:constant type="آویزان"/>
- </cd:parameter>
- <cd:parameter name="سبک‌سر">
- <cd:resolve name="style"/> <!-- TODO: default=bold -->
- </cd:parameter>
- <cd:parameter name="رنگ‌سر">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="فرمان‌سر">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بیاویز">
- <cd:constant type="پرکردن"/>
- <cd:constant type="گسترده"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="دربین">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="متن‌تورفته">
- <cd:resolve name="indentnext"/> <!-- default=yes -->
- </cd:parameter>
- <cd:parameter name="تورفتگی">
- <cd:resolve name="indenting"/> <!-- default=never -->
- </cd:parameter>
- <cd:parameter name="فرمان">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="نمایش">
- <cd:constant type="بله" default="yes"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupenumerations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌شماره‌گذاریها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="بارگذاری‌شرح" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineenumeration" file="core-des.tex">
- <cd:sequence>
- <cd:string value="تعریف‌شماره‌بندی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌شماره‌گذاریها" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="enumeration" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="شماره‌بندی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing n="1" interactive="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="enumeration" type="environment" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="شماره‌بندی"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definedescription" file="core-des.tex">
- <cd:sequence>
- <cd:string value="تعریف‌شرح"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌شرح" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="description" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="شرح"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="description" type="environment" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="شرح"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupindentedtext" file="strc-des.tex">
- <cd:sequence>
- <cd:string value="setupindentedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="سبک‌سر">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="پرکردن"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="متن">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="نمونه">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="جداکننده">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineindentedtext" file="strc-des.tex">
- <cd:sequence>
- <cd:string value="defineindentedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="setupindentedtext" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="indentation" generated="yes" file="core-spa.tex">
- <cd:sequence>
- <cd:variable value="indentation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelabel" file="core-des.tex">
- <cd:sequence>
- <cd:string value="تعریف‌برچسب"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="متن">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="درون‌حاشیه"/>
- <cd:constant type="درون‌متن"/>
- </cd:parameter>
- <cd:parameter name="راه">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="راه‌بلوک">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="سبک‌سر">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌سر">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labeling" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="labeling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolumns" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌ستونها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes"> <!-- no idea why it is optional -->
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ntop">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="خط">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/> <!-- default and unknown missing -->
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="بردباری">
- <cd:constant type="خیلی‌سختگیر"/>
- <cd:constant type="اکید"/>
- <cd:constant type="بردبار"/>
- <cd:constant type="خیلی‌بردبار"/>
- <cd:constant type="بکش"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="تعادل">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:constant type="متن"/>
- <!-- cd:constant type="yes"/ -->
- <!-- cd:constant type="no"/ -->
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="خالی">
- <cd:constant type="ثابت"/>
- <cd:constant type="نیم‌خط"/>
- <cd:constant type="خط"/>
- <cd:constant type="انعطافپذیر"/>
- <cd:constant type="بزرگ"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="کوچک"/>
- </cd:parameter>
- <cd:parameter name="گزینه">
- <cd:constant type="پس‌زمینه"/>
- </cd:parameter>
- <cd:parameter name="جهت">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="columns" type="environment" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="columns"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌ستونها" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="تعریف‌متن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="سربرگ"/>
- <cd:constant type="ته‌برگ"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheader" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌سربرگ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text" default="yes"/>
- <cd:constant type="حاشیه"/>
- <cd:constant type="لبه"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="وضعیت">
- <cd:constant type="نرمال"/>
- <cd:constant type="پایان"/>
- <cd:constant type="شروع"/>
- <cd:constant type="تهی"/>
- <cd:constant type="بلند"/>
- <cd:constant type="هیچکدام"/>
- <cd:constant type="بدون‌نشانه‌گذاری"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="بست">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="سبک‌چپ">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="سبک‌راست">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="عرض‌خط">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="عرض‌راست">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfooter" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌ته‌برگ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="بارگذاری‌سربرگ" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="بارگذاری‌سربرگ" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌متن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="بارگذاری‌سربرگ" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="بارگذاری‌سربرگ" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptop" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌بالا"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="بارگذاری‌سربرگ" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="بارگذاری‌سربرگ" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbottom" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌پایین"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="بارگذاری‌سربرگ" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="بارگذاری‌سربرگ" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="noheaderandfooterlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="بدون‌خط‌سروته‌برگ"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="notopandbottomlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="بدون‌خط‌بالاوپایین"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupheadertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌متن‌سربرگ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌متن‌پانوشت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptexttexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌متن‌متنها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptoptexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌متنهای‌بالا"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbottomtexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌متن‌پایین"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="settextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="تعیین‌محتوای‌متن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="resettextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="resettextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="lefttext"/>
- <cd:constant type="middletext"/>
- <cd:constant type="righttext"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="تعریف‌نشانه‌گذاری"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplemarking" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="نشانه‌گذاری‌زوج"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="decouplemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="جداسازی‌نشانه‌گذاری"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="resetmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="بازنشانی‌نشانه‌گذاری"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌نشانه‌گذاری"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- <cd:parameter name="جداکننده">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="گسترش">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="نشانه‌گذاری"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="getmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="دریافت‌نشانه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="اولی"/>
- <cd:constant type="آخرین"/>
- <cd:constant type="قبلی"/>
- <cd:constant type="هردو"/>
- <cd:constant type="همه"/>
- <cd:constant type="جاری"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="بدون‌نشانه‌گذاری"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplayout" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌طرح‌بندی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="پرکردن"/>
- <cd:constant type="میان"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="پرکردن"/>
- <cd:constant type="میان"/>
- </cd:parameter>
- <cd:parameter name="فضای‌پس">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فضای‌بالا">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="حاشیه">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="حاشیه‌چپ">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="حاشیه‌راست">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="سربرگ">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ته‌برگ">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="بالا">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="پایین">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="لبه‌چپ">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="لبه‌راست">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌سربرگ">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌ته‌برگ">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌بالا">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌پایین">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌حاشیه‌چپ">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌حاشیه‌راست">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌لبه‌چپ">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌لبه‌راست">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="آفست‌افق">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="آفست‌عم">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="نشانه‌گذاری">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- <cd:constant type="رنگ"/>
- <cd:constant type="پرده"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="صفحه"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="چپ"/>
- <cd:constant type="میان"/>
- <cd:constant type="راست"/>
- <cd:constant type="پایین"/>
- <cd:constant type="بالا"/>
- <cd:constant type="یک‌رو"/>
- <cd:constant type="دورو"/>
- </cd:parameter>
- <cd:parameter name="مقیاس">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="خطها">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ستونها">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌ستون">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="توری">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="فضای‌پایین">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فضای‌برش">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌متن">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="عرض‌متن">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="حاشیه‌متن">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="آفست‌کلیپ">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="صفحه">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="برگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="adaptlayout" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="تنظیم‌طرح‌بندی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="بیشترین"/>
- </cd:parameter>
- <cd:parameter name="خطها">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showgrid" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="نمایش‌توری"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="بازنشانی"/>
- <cd:constant type="بالا"/>
- <cd:constant type="پایین"/>
- <cd:constant type="هیچکدام"/>
- <cd:constant type="همه"/>
- <cd:constant type="خطها"/>
- <cd:constant type="قالب"/>
- <cd:constant type="بدون‌شماره"/>
- <cd:constant type="راست"/>
- <cd:constant type="چپ"/>
- <cd:constant type="خارجی"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="درج‌در‌توری"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="انتقال‌به‌توری" n="1"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="moveongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="انتقال‌به‌توری"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="استاندارد" default="yes"/> <!-- also 'normal', 'yes' and 'force' -->
- <cd:constant type="بالا"/>
- <cd:constant type="هردو"/>
- <cd:constant type="پایین"/>
- <cd:constant type="-top"/>
- <cd:constant type="-both"/>
- <cd:constant type="-bottom"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="بلند"/>
- <cd:constant type="میان"/>
- <cd:constant type="پایین"/>
- <cd:constant type="صفحه"/>
- <cd:constant type="گسترده"/>
- <cd:constant type="پرکردن"/>
- <cd:constant type="عمق"/>
- <cd:constant type="خط"/>
- <cd:constant type="بازنشانی"/>
- <cd:constant type="هیچکدام"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="project" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="پروژه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="environment" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="محیط"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="product" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="تولید"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="component" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="مولفه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomorefiles" file="core-job.tex">
- <cd:sequence>
- <cd:string value="بدون‌فایلهای‌بیشتر"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupinterlinespace" variant="1" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌فاصله‌بین‌خط"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="بازنشانی"/>
- <cd:constant type="کوچک" default="yes"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="خودکار"/>
- <cd:constant type="بزرگ"/>
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinterlinespace2" variant="2" file="core-spa.tex">
- <!-- attached a 2 to make this definition usable with \showsetup -->
- <cd:sequence>
- <cd:string value="بارگذاری‌فاصله‌بین‌خط"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="عمق">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="خط">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="بالا">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="پایین">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppagenumbering" file="page-num.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌شماره‌گذاری‌صفحه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="جایگزین">
- <cd:constant type="یک‌رو"/>
- <cd:constant type="دورو"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="سربرگ"/>
- <cd:constant type="ته‌برگ"/>
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="میان"/>
- <cd:constant type="حاشیه"/>
- <cd:constant type="لبه‌حاشیه"/>
- <cd:constant type="درون‌چپ"/>
- <cd:constant type="درون‌راست"/>
- </cd:parameter>
- <cd:parameter name="تبدیل">
- <cd:constant type="شماره‌ها"/>
- <cd:constant type="حرفها"/>
- <cd:constant type="Characters"/>
- <cd:constant type="شماره‌لاتین"/>
- <cd:constant type="اعداد‌بزرگ‌لاتین"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="چپ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="راست">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="راه">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="متن">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="جداکننده‌شماره">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="جداکننده‌متن">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="جداکننده">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="بست">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فرمان">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="صفحه">
- <cd:constant type="آخرین"/>
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupnarrower" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌باریکتر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="چپ">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="راست">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="میان">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="define" file="syst-ext.tex">
- <cd:sequence>
- <cd:string value="تعریف"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:csname n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usecommands" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="استفاده‌فرمانها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definestartstop" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="تعریف‌شروع‌پایان"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="فرمانها">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheads" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌سرها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="شماره‌بخش">
- <cd:constant type="بله"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="جایگزین">
- <cd:constant type="نرمال"/>
- <cd:constant type="حاشیه"/>
- <cd:constant type="میان"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="پاراگراف"/>
- </cd:parameter>
- <cd:parameter name="جداکننده">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ایست">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="عنوان‌تنظیم">
- <cd:constant type="بله"/>
- <cd:constant type="شناور"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="بردباری">
- <cd:constant type="خیلی‌سختگیر"/>
- <cd:constant type="اکید"/>
- <cd:constant type="بردبار"/>
- <cd:constant type="خیلی‌بردبار"/>
- <cd:constant type="بکش"/>
- </cd:parameter>
- <cd:parameter name="متن‌تورفته">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="فرمان">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="حاشیه">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcaptions" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌شرحها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="مکان">
- <cd:constant type="بالا"/>
- <cd:constant type="پایین"/>
- <cd:constant type="هیچکدام"/>
- <cd:constant type="بلند"/>
- <cd:constant type="پایین"/>
- <cd:constant type="میان"/>
- <cd:constant type="چپ"/>
- <cd:constant type="میان"/>
- <cd:constant type="راست"/>
- <cd:constant type="آویزان‌چپ"/>
- <cd:constant type="آویزان‌کردن‌راست"/>
- <cd:constant type="حاشیه‌چپ"/>
- <cd:constant type="حاشیه‌راست"/>
- <cd:constant type="حاشیه‌داخلی"/>
- <cd:constant type="حاشیه‌خارجی"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="پرکردن"/>
- <cd:constant type="گسترده"/>
- <cd:constant type="بیشترین"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="کمترین‌عرض">
- <cd:constant type="پرکردن"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="سبک‌سر">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="شماره">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="دربین">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="تبدیل">
- <cd:constant type="شماره‌ها"/>
- <cd:constant type="حرفها"/>
- <cd:constant type="Characters"/>
- <cd:constant type="شماره‌لاتین"/>
- <cd:constant type="اعداد‌بزرگ‌لاتین"/>
- </cd:parameter>
- <cd:parameter name="راه">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="جداکننده">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ایست">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="فرمان">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcaption" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌شرح"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="بارگذاری‌شرحها" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloats" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌شناورها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="مکان">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="میان"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="پرکردن"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="حاشیه">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فضا‌قبل‌از">
- <cd:constant type="کوچک"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="بزرگ"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="فضا‌بعداز">
- <cd:constant type="کوچک"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="بزرگ"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="فضای‌کناری‌قبل">
- <cd:constant type="کوچک"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="بزرگ"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="فضای‌کناری‌بعد">
- <cd:constant type="کوچک"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="بزرگ"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="متن‌تورفته">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="ntop">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nbottom">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nlines">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="پیش‌فرض">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="بردباری">
- <cd:constant type="0"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌حاشیه‌چپ">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌حاشیه‌راست">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="تنظیم‌کنار">
- <cd:constant type="نرمال"/>
- <cd:constant type="خط"/>
- </cd:parameter>
- <cd:parameter name="شماره‌گذاری">
- <cd:constant type="بله"/>
- <cd:constant type="بدون‌بررسی"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloatsplitting" file="core-tsp.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌شکافتن‌شناورها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="تبدیل">
- <cd:constant type="شماره‌ها"/>
- <cd:constant type="حرفها"/>
- <cd:constant type="Characters"/>
- <cd:constant type="شماره‌لاتین"/>
- <cd:constant type="اعداد‌بزرگ‌لاتین"/>
- </cd:parameter>
- <cd:parameter name="خطها">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="splitfloat" file="core-tsp.tex">
- <cd:sequence>
- <cd:string value="شکافتن‌شناور"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌شکافتن‌شناورها" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupoppositeplacing" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌درج‌مخالف"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="دربین">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="opposite" type="environment" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="opposite"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setuphyphenmark" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌نشانه‌شکستن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="علامت">
- <cd:constant type="--"/>
- <cd:constant type="---"/>
- <cd:constant type="-"/>
- <cd:constant type="~"/>
- <cd:constant type="("/>
- <cd:constant type=")"/>
- <cd:constant type="="/>
- <cd:constant type="/"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppositioning" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌مکان‌گذاری"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پوشش"/>
- </cd:parameter>
- <cd:parameter name="واحد">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="عامل">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="مقیاس">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="آفست">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="گام‌ایکس">
- <cd:constant type="قطعی"/>
- <cd:constant type="نسبی"/>
- </cd:parameter>
- <cd:parameter name="گام‌وای">
- <cd:constant type="قطعی"/>
- <cd:constant type="نسبی"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="positioning" type="environment" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="positioning"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="grid" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="توری"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="گام‌ایکس">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="گام‌وای">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="آفست">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="عامل">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="مقیاس">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="واحد">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="چپ"/>
- <cd:constant type="میان"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="page" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="صفحه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="بله" default="yes"/>
- <cd:constant type="آرایش"/>
- <cd:constant type="نه"/>
- <cd:constant type="ترجیح"/>
- <cd:constant type="اولویت‌بزرگ"/>
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="ناتوان"/>
- <cd:constant type="آخرین"/>
- <cd:constant type="quadruple"/>
- <cd:constant type="زوج"/>
- <cd:constant type="فرد"/>
- <cd:constant type="خالی"/>
- <cd:constant type="تهی"/>
- <cd:constant type="بازنشانی"/>
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupreferencing" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="بارگذاری‌ارجاع"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="پیشوند">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="پانل">
- <cd:constant type="برچسب"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="همه"/>
- <cd:constant type="نماد"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="چپ">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="راست">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="پرونده‌تبدیل">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="کوچک"/>
- <cd:constant type="بزرگ"/>
- </cd:parameter>
- <cd:parameter name="جداکننده">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="پرونده‌خودکار">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="صفحه"/>
- </cd:parameter>
- <cd:parameter name="سراسری">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="export">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupurl" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="setupurl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="urlalternative">
- <cd:constant type="هیچکدام"/>
- <cd:constant type="هردو"/>
- <cd:constant type="قبل‌از"/>
- <cd:constant type="بعداز"/>
- </cd:parameter>
- <cd:parameter name="urlspace">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetoreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="بنویس‌درلیست‌مرجع"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="درج‌لیست‌مرجع"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="تعریف‌لیست‌مرجع"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌لیست‌مرجع" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌لیست‌مرجع"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="موضعی"/>
- <cd:constant type="قبلی"/>
- <cd:constant type="همه"/>
- </cd:parameter>
- <cd:parameter name="فرمان">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="بنویس‌در‌لیست"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="مکان">
- <cd:constant type="اینجا"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writebetweenlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="بنویس‌بین‌لیست"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="مکان">
- <cd:constant type="اینجا"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="بدون‌لیست"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="listsymbol" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="نمادلیست"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="درج‌لیست"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌لیست" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="determinelistcharacteristics" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="تعیین‌مشخصات‌لیست"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌لیست" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="درج‌لیست‌مختلط"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌لیست‌ترکیبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="تعریف‌لیست"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes"> <!-- inherits from -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌لیست" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌لیست"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- <cd:parameter name="جایگزین">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="..."/>
- <cd:constant type="هیچکدام"/>
- <cd:constant type="فرمان"/>
- </cd:parameter>
- <cd:parameter name="تزویج">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="موضعی"/>
- <cd:constant type="قبلی"/>
- <cd:constant type="جاری"/>
- <cd:constant type="اینجا"/>
- <cd:constant type="پیشگفتار"/>
- <cd:constant type="همه"/>
- </cd:parameter>
- <cd:parameter name="extras">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="سبک‌شماره">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="سبک‌متن">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="سبک‌صفحه">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="فرمان">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- <cd:parameter name="فرمان‌شماره">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="فرمان‌متن">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="فرمان‌صفحه">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="پانل">
- <cd:constant type="شماره‌بخش"/>
- <cd:constant type="متن"/>
- <cd:constant type="شماره‌صفحه"/>
- <cd:constant type="همه"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="دربین">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="چپ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="راست">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="برچسب">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="پیشوند">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="شماره‌صفحه">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="شماره‌سر">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="عنوان‌تنظیم">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="حاشیه">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="پرکردن"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="پرکردن"/>
- <cd:constant type="گسترده"/>
- </cd:parameter>
- <cd:parameter name="عمق">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="پرکردن"/>
- <cd:constant type="گسترده"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="جداکننده">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ایست">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="نماد">
- <cd:constant type="هیچکدام"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="..."/>
- </cd:parameter>
- <cd:parameter name="گسترش">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="فرمان"/>
- </cd:parameter>
- <cd:parameter name="بیشترین‌عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="order">
- <cd:constant type="فرمان"/>
- <cd:constant type="همه"/>
- <cd:constant type="نرمال"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplistalternative" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setuplistalternative"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="no">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <!-- cd:constant type="cd:name"/ -->
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="فرمان">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="کشیدن">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="تعریف‌لیست‌ترکیبی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:list"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌لیست‌ترکیبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌لیست‌ترکیبی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="مرحله">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="4"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="جاری"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌لیست" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="مکان"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌لیست‌ترکیبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completecombinedlist" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="کامل"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌لیست‌ترکیبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupnumbering" file="core-num.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌شماره‌گذاری"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="راه">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupformulas" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌فرمولها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="مکان">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- </cd:parameter>
- <cd:parameter name="چپ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="راست">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="گزینه">
- <cd:constant type="میان"/>
- </cd:parameter>
- <cd:parameter name="بست">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="حاشیه">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="استاندارد"/>
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:constant type="پمپ‌چپ"/>
- <cd:constant type="پمپ‌راست"/>
- <cd:constant type="میان"/>
- <cd:constant type="مرکز"/>
- </cd:parameter>
- <cd:parameter name="حاشیه‌چپ">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="حاشیه‌راست">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="متن‌تورفته">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="جایگزین">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="فضا‌قبل‌از">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="جداکننده">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="تبدیل">
- <cd:constant type="شماره‌ها"/>
- <cd:constant type="حرفها"/>
- <cd:constant type="Characters"/>
- <cd:constant type="شماره‌لاتین"/>
- <cd:constant type="اعداد‌بزرگ‌لاتین"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="publication" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="نشر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppublications" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌نشرها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="جایگزین">
- <cd:constant type="apa"/>
- <cd:constant type="نرمال"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌شماره‌گذاریها" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌خطها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="دربین">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="تورفتگی">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="فضا">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="گزینه">
- <cd:constant type="فشرده"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="lines" type="environment">
- <cd:sequence>
- <cd:string value="lines"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupparagraphnumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌شماره‌گذاری‌پاراگراف"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- <cd:constant type="بازنشانی"/>
- <cd:constant type="خط"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplinenumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌شماره‌‌گذاری‌خط"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="تبدیل">
- <cd:constant type="شماره‌ها"/>
- <cd:constant type="حرفها"/>
- <cd:constant type="Characters"/>
- <cd:constant type="شماره‌لاتین"/>
- <cd:constant type="اعداد‌بزرگ‌لاتین"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="شروع">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="گام">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="میان"/>
- <cd:constant type="چپ"/>
- <cd:constant type="حاشیه"/>
- <cd:constant type="درون‌حاشیه"/>
- <cd:constant type="درون‌چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="درون‌راست"/>
- <cd:constant type="داخلی"/>
- <cd:constant type="خارجی"/>
- <cd:constant type="متن"/>
- <cd:constant type="begin"/>
- <cd:constant type="end"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="پیشوند">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="مراجعه">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="linenumbering" type="environment" file="page-lin.tex"> <!-- mkii/mkiv -->
- <cd:sequence>
- <cd:string value="linenumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="ادامه"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="line" type="environment">
- <cd:sequence>
- <cd:string value="line"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="someline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="یک‌خط"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="درخط"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinmargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌درون‌حاشیه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="مکان">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="هردو"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="خط">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="جداکننده">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="توده">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌شماره‌صفحه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="شماره">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- <cd:constant type="نگهدار"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsubpagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌شماره‌زیرصفحه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="راه">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌خالی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="نرمال" default="yes"/>
- <cd:constant type="پیش‌فرض"/>
- <cd:constant type="استاندارد"/>
- <cd:constant type="خط"/>
- <cd:constant type="نیم‌خط"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="بزرگ"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="کوچک"/>
- <cd:constant type="ثابت"/>
- <cd:constant type="انعطافپذیر"/>
- <cd:constant type="سراسری"/>
- <cd:constant type="ناشناس"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="تعریف‌خالی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="بارگذاری‌خالی" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definepapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="تعریف‌اندازه‌برگ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="آفست">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="مقیاس">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppaper" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌برگ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="برگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="صفحه">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فضای‌بالا">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فضای‌پس">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="گزینه">
- <cd:constant type="بیشترین"/>
- <cd:constant type="پرکردن"/>
- </cd:parameter>
- <cd:parameter name="روش">
- <cd:constant type="نرمال"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌اندازه‌برگ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="CD"/>
- <cd:constant type="cd:name"/>
- <cd:constant type="صفحه‌گسترده"/>
- <cd:constant type="منعکس"/>
- <cd:constant type="دوران‌یافته"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="منفی"/>
- <cd:inherit name="بارگذاری‌اندازه‌برگ" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuparranging" file="page-imp.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌ترتیب"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="ناتوان"/>
- <cd:constant type="2*16"/>
- <cd:constant type="2*8"/>
- <cd:constant type="2*4"/>
- <cd:constant type="2*2"/>
- <cd:constant type="2**2"/>
- <cd:constant type="2*2*4"/>
- <cd:constant type="2*4*2"/>
- <cd:constant type="2UP"/>
- <cd:constant type="2DOWN"/>
- <cd:constant type="2SIDE"/>
- <cd:constant type="2TOP"/>
- <cd:constant type="منعکس"/>
- <cd:constant type="دوران‌یافته"/>
- <cd:constant type="دورو"/>
- <cd:constant type="منفی"/>
- <cd:constant type="پس‌زمینه"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showprint" file="page-run.tex"> <!-- page-lay.tex -->
- <cd:sequence>
- <cd:string value="نمایش‌چاپ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:inherit name="بارگذاری‌اندازه‌برگ" n="1"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:inherit name="بارگذاری‌اندازه‌برگ" n="2"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="بارگذاری‌طرح‌بندی" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelogo" file="page-log.tex">
- <cd:sequence>
- <cd:string value="تعریف‌آرم"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="بالا"/>
- <cd:constant type="سربرگ"/>
- <cd:constant type="ته‌برگ"/>
- <cd:constant type="پایین"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="هیچکدام"/>
- <cd:constant type="صفحه"/>
- <cd:constant type="لبه‌چپ"/>
- <cd:constant type="حاشیه‌چپ"/>
- <cd:constant type="چپ"/>
- <cd:constant type="میان"/>
- <cd:constant type="راست"/>
- <cd:constant type="حاشیه‌راست"/>
- <cd:constant type="لبه‌راست"/>
- </cd:keywords>
- <cd:assignments n="4" list="yes">
- <cd:parameter name="فرمان">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelogos" file="page-log.tex">
- <cd:sequence>
- <cd:string value="درج‌آرمها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupwhitespace">
- <cd:sequence>
- <cd:string value="بارگذاری‌فضای‌سفید"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="هیچکدام" default="yes"/>
- <cd:constant type="کوچک"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="بزرگ"/>
- <cd:constant type="خط"/>
- <cd:constant type="ثابت"/>
- <cd:constant type="ثابت‌کن"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupindenting">
- <cd:sequence>
- <cd:string value="بارگذاری‌تورفتگی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="تعریف‌بلوک‌بخش"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="بارگذاری‌بلوک‌بخش" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌بلوک‌بخش" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌بلوک‌بخش"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="شماره">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="صفحه">
- <cd:constant type="بله"/>
- <cd:constant type="راست"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="تعریف‌بخش"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌بخش"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="تبدیل">
- <cd:constant type="شماره‌ها"/>
- <cd:constant type="حرفها"/>
- <cd:constant type="Characters"/>
- <cd:constant type="شماره‌لاتین"/>
- <cd:constant type="اعداد‌بزرگ‌لاتین"/>
- </cd:parameter>
- <cd:parameter name="شماره‌قبلی">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuphead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌سر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="سبک‌متن">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="سبک‌شماره">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌متن">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌شماره">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="شماره">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="شماره‌خود">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="صفحه">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="بله"/>
- </cd:parameter>
- <cd:parameter name="ادامه">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="سربرگ">
- <cd:constant type="هیچکدام"/>
- <cd:constant type="تهی"/>
- <cd:constant type="بلند"/>
- <cd:constant type="بدون‌نشانه‌گذاری"/>
- </cd:parameter>
- <cd:parameter name="متن">
- <cd:constant type="هیچکدام"/>
- <cd:constant type="تهی"/>
- <cd:constant type="بلند"/>
- <cd:constant type="بدون‌نشانه‌گذاری"/>
- </cd:parameter>
- <cd:parameter name="ته‌برگ">
- <cd:constant type="هیچکدام"/>
- <cd:constant type="تهی"/>
- <cd:constant type="بلند"/>
- <cd:constant type="بدون‌نشانه‌گذاری"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="دربین">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="جایگزین">
- <cd:constant type="نرمال"/>
- <cd:constant type="درون‌حاشیه"/>
- <cd:constant type="میان"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="بیاویز">
- <cd:constant type="هیچکدام"/>
- <cd:constant type="گسترده"/>
- <cd:constant type="پرکردن"/>
- <cd:constant type="خط"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="فرمان">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="فرمان‌شماره">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="فرمان‌متن">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="فرمان‌شماره‌عمیق">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="فرمان‌متن‌عمیق">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="پیشوند">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="بگذارسر">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="تهی"/>
- </cd:parameter>
- <cd:parameter name="شماره‌افزایش">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="cd:list"/>
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="بازنشانی‌شماره">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="پرونده">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="گسترش">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="فرمان"/>
- </cd:parameter>
- <cd:parameter name="متن‌حاشیه">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="پانل">
- <cd:constant type="لیست"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌سرها" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌شماره‌سر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:number"/>
- <cd:constant type="+cd:number"/>
- <cd:constant type="-cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="headnumber">
- <cd:sequence>
- <cd:string value="شماره‌سر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="determineheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="تعیین‌شماره‌سر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="currentheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="شماره‌سرجاری"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="nextsection" generated="yes" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="بعدی"/>
- <cd:variable value="بخش"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definehead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="تعریف‌سر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!--
-
- <cd:feature name="itemgroups" file="strc-itm">
-
- <cd:description language="pe"> </cd:description>
-
- -->
-
- <cd:command name="defineitemgroup" file="strc-itm">
- <cd:sequence>
- <cd:string value="تعریف‌گروه‌آیتم"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupitemgroup" file="strc-itm">
- <!-- we mis a few experimental keys here, like alignsymbol and indentation -->
- <cd:sequence>
- <cd:string value="بارگذاری‌گروه‌آیتم"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="هر"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes" list="yes">
- <cd:constant type="استاندارد" default="yes"/>
- <cd:constant type="گسترده"/>
- <cd:constant type="تنگ‌هم"/>
- <cd:constant type="فشرده"/>
- <cd:constant type="غیرفشرده"/>
- <cd:constant type="سفید‌نه"/>
- <cd:constant type="قبل‌از"/>
- <cd:constant type="بعداز"/>
- <cd:constant type="ایست"/>
- <cd:constant type="متصل‌بالا"/>
- <cd:constant type="درحاشیه"/>
- <cd:constant type="درون‌حاشیه"/>
- <cd:constant type="پیشگفتارخودکار"/>
- <cd:constant type="شل"/>
- <cd:constant type="تکرار"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="پاراگراف"/>
- <cd:constant type="درون‌متن"/>
- <cd:constant type="تصادفی"/>
- <cd:constant type="برعکس"/>
- </cd:keywords>
- <cd:assignments n="4" optional="yes" list="yes">
- <cd:parameter name="حاشیه">
- <cd:constant type="نه"/>
- <cd:constant type="استاندارد"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="حاشیه‌چپ">
- <cd:constant type="نه"/>
- <cd:constant type="استاندارد"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="حاشیه‌راست">
- <cd:constant type="نه"/>
- <cd:constant type="استاندارد"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="گام">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="عامل">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="آیتمها">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="شروع">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="دربین">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="چپ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="راست">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="قبل‌ازسر">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعدازسر">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="سبک‌سر">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="سبک‌حاش">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="سبک‌نماد">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="ایست">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="نماد">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="تنظیم‌نماد">
- <cd:resolve name="symalign"/>
- </cd:parameter>
- <cd:parameter name="متن‌تورفته">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌متن">
- <!-- maybe resolve here too -->
- <cd:constant type="هیچکدام"/>
- <cd:constant type="بزرگ"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="کوچک"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="itemgroup" type="environment" generated="yes" file="strc-itm">
- <cd:sequence>
- <cd:variable value="itemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="a"/>
- <cd:constant type="A"/>
- <cd:constant type="KA"/>
- <cd:constant type="n"/>
- <cd:constant type="N"/>
- <cd:constant type="m"/>
- <cd:constant type="r"/>
- <cd:constant type="R"/>
- <cd:constant type="KR"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="ادامه"/>
- <cd:constant type="استاندارد" default="yes"/>
- <cd:constant type="گسترده"/>
- <cd:constant type="تنگ‌هم"/>
- <cd:constant type="فشرده"/>
- <cd:constant type="ایست"/>
- <cd:constant type="متصل‌بالا"/>
- <cd:constant type="درحاشیه"/>
- <cd:constant type="درون‌حاشیه"/>
- <cd:constant type="پیشگفتار"/>
- <cd:constant type="ستونها"/>
- <cd:constant type="متن"/>
- <cd:constant type="پاراگراف"/>
- <cd:constant type="تکرار"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌گروه‌آیتم" n="4"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="item" environment="yes" shortcut="yes" file="strc-itm">
- <cd:sequence>
- <cd:string value="آیتم"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <!--
- <cd:command name="item" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="آیتم"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
- -->
-
- <cd:command name="but">
- <cd:sequence>
- <cd:string value="اما"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="exclusive"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="its">
- <cd:sequence>
- <cd:string value="its"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ran">
- <cd:sequence>
- <cd:string value="ran"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="head">
- <cd:sequence>
- <cd:string value="سر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mar">
- <cd:sequence>
- <cd:string value="حاش"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sub">
- <cd:sequence>
- <cd:string value="sub"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sym" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="نم"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nop">
- <cd:sequence>
- <cd:string value="منفی"/>
- </cd:sequence>
- </cd:command>
-
- <!-- </cd:feature> -->
-
- <cd:command name="defineregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="تعریف‌ثبت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌ثبت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="تعادل">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="سبک‌صفحه">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="سبک‌متن">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="اندیکاتور">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="تزویج">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="cd:section"/>
- <cd:constant type="موضعی"/>
- <cd:constant type="همه"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="نماد">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="پانل">
- <cd:constant type="شماره‌صفحه"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="گسترش">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="فرمان"/>
- </cd:parameter>
- <cd:parameter name="مراجعه">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- <cd:parameter name="فرمان">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="چپ"/>
- <cd:constant type="میان"/>
- <cd:constant type="راست"/>
- </cd:parameter>
- <cd:parameter name="بیشترین‌عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="مرجع‌ناشناس">
- <cd:constant type="تهی"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="جایگزین">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="A"/>
- <cd:constant type="B"/>
- </cd:parameter>
- <cd:parameter name="پیشوند">
- <cd:constant type="هردو"/>
- <cd:constant type="اولی"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="فشردن">
- <cd:constant type="نه"/>
- <cd:constant type="بله"/>
- </cd:parameter>
- <cd:parameter name="فرمان‌متن‌عمیق">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="register" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:variable value="ثبت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="startregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="شروع"/>
- <cd:variable value="ثبت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetoregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="بنویس‌درثبت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupledregister" generated="yes">
- <cd:sequence>
- <cd:string value="مزدوج"/>
- <cd:variable value="ثبت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupleregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="ثبت‌زوج"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeregister" variant="1" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="درج‌ثبت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌ثبت" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="seeregister" generated="yes">
- <cd:sequence>
- <cd:string value="ببینید"/>
- <cd:variable value="ثبت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:index n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completeregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="کامل"/>
- <cd:variable value="ثبت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌ثبت" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="مکان"/>
- <cd:variable value="ثبت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌ثبت" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="تعریف‌مترادفها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌مترادفها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="سبک‌متن">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="سبک‌مترادف">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="بالا"/>
- <cd:constant type="تنگ‌هم"/>
- <cd:constant type="درون‌حاشیه"/>
- <cd:constant type="درون‌چپ"/>
- <cd:constant type="درون‌راست"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="همه"/>
- <cd:constant type="استفاده‌شده"/>
- </cd:parameter>
- <cd:parameter name="تبدیل">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="گسترش">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="فرمان"/>
- </cd:parameter>
- <cd:parameter name="فرمان">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synonym" generated="yes">
- <cd:sequence>
- <cd:variable value="synonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="loadsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="بارگذاشتن"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definesorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="تعریف‌ترتیب"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌ترتیب"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="فرمان">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- <cd:parameter name="criterium">
- <cd:constant type="همه"/>
- <cd:constant type="استفاده‌شده"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="گسترش">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="فرمان"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sort" generated="yes">
- <cd:sequence>
- <cd:variable value="sort"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="loadsorts" generated="yes">
- <cd:sequence>
- <cd:string value="بارگذاشتن"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definemakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="تعریف‌آرایش"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="بارگذاری‌آرایش" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="makeup" type="environment">
- <cd:sequence>
- <cd:string value="آرایش"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌آرایش" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌آرایش"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="صفحه">
- <cd:constant type="چپ"/>
- <cd:constant type="بله"/>
- <cd:constant type="راست"/>
- </cd:parameter>
- <cd:parameter name="فرمانها">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="دورو">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="تهی"/>
- </cd:parameter>
- <cd:parameter name="وضعیت‌سربرگ">
- <cd:constant type="نرمال"/>
- <cd:constant type="پایان"/>
- <cd:constant type="شروع"/>
- <cd:constant type="تهی"/>
- <cd:constant type="هیچکدام"/>
- <cd:constant type="بدون‌نشانه‌گذاری"/>
- </cd:parameter>
- <cd:parameter name="وضعیت‌ته‌برگ">
- <cd:constant type="نرمال"/>
- <cd:constant type="پایان"/>
- <cd:constant type="شروع"/>
- <cd:constant type="تهی"/>
- <cd:constant type="هیچکدام"/>
- <cd:constant type="بدون‌نشانه‌گذاری"/>
- </cd:parameter>
- <cd:parameter name="وضعیت‌متن">
- <cd:constant type="نرمال"/>
- <cd:constant type="پایان"/>
- <cd:constant type="شروع"/>
- <cd:constant type="تهی"/>
- <cd:constant type="هیچکدام"/>
- <cd:constant type="بدون‌نشانه‌گذاری"/>
- </cd:parameter>
- <cd:parameter name="وضعیت‌بالا">
- <cd:constant type="پایان"/>
- <cd:constant type="شروع"/>
- </cd:parameter>
- <cd:parameter name="وضعیت‌پایین">
- <cd:constant type="پایان"/>
- <cd:constant type="شروع"/>
- </cd:parameter>
- <cd:parameter name="وضعیت‌صفحه">
- <cd:constant type="پایان"/>
- <cd:constant type="شروع"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="namemakeup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="نام"/>
- <cd:string value="آرایش"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="version">
- <cd:sequence>
- <cd:string value="نسخه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="نهایی" default="yes"/>
- <cd:constant type="مفهوم"/>
- <cd:constant type="موقتی"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="currentdate">
- <cd:sequence>
- <cd:string value="تاریخ‌جاری"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:inherit name="تاریخ" n="2"/> <!-- or vice versa :) -->
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="date" file="core-con.tex">
- <cd:sequence>
- <cd:string value="تاریخ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes"> <!-- if not given, current date is used -->
- <cd:parameter name="d">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="روز"/>
- <cd:constant type="ماه"/>
- <cd:constant type="سال"/>
- <cd:constant type="روزهفته"/>
- <cd:constant type="d"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/> <!-- also j -->
- <cd:constant type="w"/>
- <cd:constant type="dd"/>
- <cd:constant type="mm"/>
- <cd:constant type="yy"/> <!-- also jj -->
- <cd:constant type="فضا"/>
- <cd:constant type="--"/>
- <cd:constant type="day+"/>
- <cd:constant type="d+"/>
- <cd:constant type="dd+"/>
- <cd:constant type="مراجعه"/>
- <cd:constant type="cd:text"/> <!-- any other text -->
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="referraldate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="تاریخ‌رجوع"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="indenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="تورفتگی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="noindenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="بدون‌تورفتگی"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="blank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="خالی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="کوچک"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="بزرگ" default="yes"/>
- <cd:constant type="سفید‌نه"/>
- <cd:constant type="پشت"/>
- <cd:constant type="سفید"/>
- <cd:constant type="ناتوان"/>
- <cd:constant type="اجبار"/>
- <cd:constant type="بازنشانی"/>
- <cd:constant type="خط"/>
- <cd:constant type="نیم‌خط"/>
- <cd:constant type="cd:formula"/>
- <cd:constant type="ثابت"/>
- <cd:constant type="انعطافپذیر"/>
- <cd:constant type="هیچکدام"/>
- <cd:constant type="همواره"/>
- <cd:constant type="خارجی"/>
- <cd:constant type="متصل‌بالا"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="packed" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="فشرده"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="خالی"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="unpacked" type="environment">
- <cd:sequence>
- <cd:string value="unpacked"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="linecorrection" type="environment">
- <cd:sequence>
- <cd:string value="linecorrection"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="correctwhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="فضای‌سفیدصحیح"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="postponing" type="environment">
- <cd:sequence>
- <cd:string value="postponing"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="local" type="environment">
- <cd:sequence>
- <cd:string value="موضعی"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="narrower" type="environment">
- <cd:sequence>
- <cd:string value="narrower"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="چپ"/>
- <cd:constant type="میان" default="yes"/>
- <cd:constant type="راست"/>
- <cd:constant type="-left"/>
- <cd:constant type="-middle"/>
- <cd:constant type="-right"/>
- <cd:constant type="-none"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hiding" type="environment">
- <cd:sequence>
- <cd:string value="hiding"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupalign" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌تنظیم"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="عرض"/>
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="میان"/>
- <cd:constant type="داخلی"/>
- <cd:constant type="خارجی"/>
- <cd:constant type="گسترده"/>
- <cd:constant type="گسترده"/>
- <cd:constant type="ارتفاع"/>
- <cd:constant type="پایین"/>
- <cd:constant type="خط"/>
- <cd:constant type="بازنشانی"/>
- <cd:constant type="آویزان"/>
- <cd:constant type="بدون‌آویزان‌کردن"/>
- <cd:constant type="شکسته"/>
- <cd:constant type="بدون‌شکست"/>
- <cd:constant type="شکست‌کلمات‌کمتر"/>
- <cd:constant type="شکست‌کلمات‌بیشتر"/>
- <cd:constant type="جدید"/>
- <cd:constant type="قدیمی"/>
- <cd:constant type="نرمال"/>
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <cd:constant type="پمپ‌چپ"/>
- <cd:constant type="پمپ‌راست"/>
- <cd:constant type="پمپ‌خارجی"/>
- <cd:constant type="پمپ‌داخلی"/>
- <cd:constant type="مرکز"/>
- <cd:constant type="hz"/>
- <cd:constant type="nohz"/>
- <cd:constant type="فضاگذاری"/>
- <cd:constant type="بدون‌فضاگذاری"/>
- <cd:constant type="بردبار"/>
- <cd:constant type="خیلی‌بردبار"/>
- <cd:constant type="بکش"/>
- <cd:constant type="extremestretch"/>
- <cd:constant type="lefttoright"/>
- <cd:constant type="righttoleft"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
-
- <cd:command name="alignment" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="alignment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌تنظیم" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupspacing">
- <cd:sequence>
- <cd:string value="بارگذاری‌فضا‌گذاری"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="گسترده"/>
- <cd:constant type="فشرده"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptolerance" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌بردباری"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="افقی"/>
- <cd:constant type="عمودی"/>
- <cd:constant type="بکش"/>
- <cd:constant type="فضا"/>
- <cd:constant type="خیلی‌سختگیر" default="yes"/>
- <cd:constant type="اکید"/>
- <cd:constant type="بردبار"/>
- <cd:constant type="خیلی‌بردبار"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!-- cd:command name="pagetype" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="pagetype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command -->
-
- <cd:command name="processpage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="صفحه‌پردازش"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="بله" default="yes"/>
- <cd:constant type="نه"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplepage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="صفحه‌زوج"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="گزینه">
- <cd:constant type="دورو"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="position" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="مکان"/>
- </cd:sequence>
- <cd:arguments>
- <cd:position n="1" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupscreens" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌پرده‌ها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="روش">
- <cd:constant type="نقطه"/>
- <cd:constant type="خط"/>
- <cd:constant type="خارجی"/>
- </cd:parameter>
- <cd:parameter name="کیفیت">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="عامل">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="پرده">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbackgrounds" file="page-bck.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌پس‌زمینه‌ها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="بالا"/>
- <cd:constant type="سربرگ"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="ته‌برگ"/>
- <cd:constant type="پایین"/>
- <cd:constant type="صفحه"/>
- <cd:constant type="برگ"/>
- <cd:constant type="صفحه‌چپ"/>
- <cd:constant type="صفحه‌راست"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="لبه‌چپ"/>
- <cd:constant type="حاشیه‌چپ"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="حاشیه‌راست"/>
- <cd:constant type="لبه‌راست"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- <cd:constant type="cd:repeat"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="buffer" type="environment" generated="yes" file="core-buf.tex">
- <cd:sequence>
- <cd:variable value="بافر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="buffer" type="environment" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="getbuffer">
- <cd:sequence>
- <cd:string value="دریافت‌بافر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="تایپ‌بافر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="تعریف‌بافر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌بافر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="پاراگراف">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="تعریف‌بلوک"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomoreblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="بدون‌بلوکهای‌بیشتر"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="hideblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="بلوکها‌پنهان"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="keepblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="حفظ‌بلوکها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="همه"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="استفاده‌بلوکها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="processblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="بلوکهای‌پردازش"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="bypassblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="عبوربلوکها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="forceblocks">
- <cd:sequence>
- <cd:string value="اجباربلوکها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="selectblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="انتخاب‌بلوکها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="criterium">
- <cd:constant type="همه"/>
- <cd:constant type="cd:section"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌بلوک"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="داخلی">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="پرونده">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="formula" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="فرمول"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="mathematics" file="supp-mat.tex">
- <cd:sequence>
- <cd:string value="ریاضی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="درج‌فرمول"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2" optional="yes"/>
- <cd:displaymath n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placesubformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="درج‌زیرفرمول"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2" optional="yes"/>
- <cd:displaymath n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placefloat" generated="yes" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="مکان"/>
- <cd:variable value="شناور"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="اینجا" default="yes"/>
- <cd:constant type="بالا"/>
- <cd:constant type="پایین"/>
- <cd:constant type="درون‌چپ"/>
- <cd:constant type="درون‌راست"/>
- <cd:constant type="درون‌حاشیه"/>
- <cd:constant type="حاشیه"/>
- <cd:constant type="حاشیه‌چپ"/>
- <cd:constant type="حاشیه‌راست"/>
- <cd:constant type="لبه‌چپ"/>
- <cd:constant type="لبه‌راست"/>
- <cd:constant type="حاشیه‌داخلی"/>
- <cd:constant type="حاشیه‌خارجی"/>
- <cd:constant type="لبه‌داخلی"/>
- <cd:constant type="لبه‌خارجی"/>
- <cd:constant type="داخلی"/>
- <cd:constant type="خارجی"/>
- <cd:constant type="خط"/>
- <cd:constant type="بلند"/>
- <cd:constant type="پایین"/>
- <cd:constant type="پرکردن"/>
- <cd:constant type="صفحه"/>
- <cd:constant type="صفحه‌چپ"/>
- <cd:constant type="صفحه‌راست"/>
- <cd:constant type="مخالف"/>
- <cd:constant type="همواره"/>
- <cd:constant type="خودکار"/>
- <cd:constant type="اجبار"/>
- <cd:constant type="دراز"/>
- <cd:constant type="بازنشانی"/>
- <cd:constant type="خط"/>
- <cd:constant type="ارتفاع"/>
- <cd:constant type="عمق"/>
- <cd:constant type="شکافتن"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes" list="yes"/>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reservefloat" generated="yes">
- <cd:sequence>
- <cd:string value="رزرو"/>
- <cd:variable value="شناور"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="قالب">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:reference n="3" optional="yes" list="yes"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="تعریف‌شناور"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌شناور"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="بیشترین‌ارتفاع">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="بیشترین‌عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="کمترین‌عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="پیش‌فرض">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="مرزهای‌صفحه">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌حاشیه‌چپ">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله‌حاشیه‌راست">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="چپ"/>
- <cd:constant type="میان"/>
- <cd:constant type="راست"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="floattext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="شناور"/>
- <cd:string value="متن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="بلند"/>
- <cd:constant type="میان"/>
- <cd:constant type="پایین"/>
- <cd:constant type="آفست"/>
- <cd:constant type="دراز"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="completelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="referral" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="رجوع"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="bet">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ken">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dat">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="van">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aan">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="رج">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="selectpaper">
- <cd:sequence>
- <cd:string value="انتخاب‌برگ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="خانواده">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplepaper">
- <cd:sequence>
- <cd:string value="کاغذزوج"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="chem" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="chem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fraction" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="کسر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="periods" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="نقطه‌ها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="items">
- <cd:sequence>
- <cd:string value="آیتمها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌آیتمها" n="1"/>
- </cd:assignments>
- <cd:content n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupitems" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌آیتمها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="مکان">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="درون‌حاشیه"/>
- <cd:constant type="بالا"/>
- <cd:constant type="پایین"/>
- </cd:parameter>
- <cd:parameter name="نماد">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:text"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- <cd:constant type="ناشناس"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="دربین">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quotation" type="environment" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="نقل‌قول"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="چپ"/>
- <cd:constant type="میان" default="yes"/>
- <cd:constant type="راست"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quotation" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="نقل‌قول"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="نقل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupquote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌نقل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="cd:text"/>
- <cd:constant type="حاشیه"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="تعریف‌پاراگرافها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="خط">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="پرکردن"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="داخلی">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="بردباری">
- <cd:constant type="خیلی‌سختگیر"/>
- <cd:constant type="اکید"/>
- <cd:constant type="بردبار"/>
- <cd:constant type="خیلی‌بردبار"/>
- <cd:constant type="بکش"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="paragraph" generated="yes">
- <cd:sequence>
- <cd:variable value="پاراگراف"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="paragraph" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="پاراگراف"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌پاراگرافها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="هر"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="بردباری">
- <cd:constant type="خیلی‌سختگیر"/>
- <cd:constant type="اکید"/>
- <cd:constant type="بردبار"/>
- <cd:constant type="خیلی‌بردبار"/>
- <cd:constant type="بکش"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="داخلی">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="فرمان">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="خط">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptab" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌تب"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="نمونه">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="سبک‌سر">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tab">
- <cd:sequence>
- <cd:string value="تب"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="document" type="environment">
- <cd:sequence>
- <cd:string value="document"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labels">
- <cd:sequence>
- <cd:string value="برچسبها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="تعریف‌جدول‌بندی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tabulate" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="جدول‌بندی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌شکلهای‌خارجی" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌جدول‌بندی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="واحد">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="تورفتگی">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="داخلی">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="EQ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌خط">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="ضخامت‌خط">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="خالی"/>
- <cd:constant type="توری"/>
- <cd:constant type="عمق"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="کوچک"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="بزرگ"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="قلم‌بدنه">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="خط">
- <cd:constant type="نرمال"/>
- <cd:constant type="خط"/>
- </cd:parameter>
- <cd:parameter name="شکافتن">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptables" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌جدولها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="فاصله">
- <cd:constant type="کوچک"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="بزرگ"/>
- </cd:parameter>
- <cd:parameter name="قلم‌بدنه">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="HL">
- <cd:constant type="cd:number"/>
- <cd:constant type="کوچک"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="بزرگ"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="VL">
- <cd:constant type="cd:number"/>
- <cd:constant type="کوچک"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="بزرگ"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="عمق">
- <cd:constant type="cd:number"/>
- <cd:constant type="بست"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:number"/>
- <cd:constant type="بست"/>
- </cd:parameter>
- <cd:parameter name="ضخامت‌خط">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌خط">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="فرمانها">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="پس‌زمینه">
- <cd:constant type="پرده"/>
- <cd:constant type="رنگ"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="پرده‌پس‌زمینه">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌پس‌زمینه">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="قلم‌بدنه">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="table" type="environment">
- <cd:sequence>
- <cd:string value="table"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tables" type="environment">
- <cd:sequence>
- <cd:string value="tables"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetabletemplate" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="تعریف‌الگوی‌جدول"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfiles" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="استفاده‌پرونده‌های‌خارجی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="قلم‌بدنه">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="پرونده">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfile" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="استفاده‌پرونده‌خارجی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="4" list="yes">
- <cd:parameter name="قلم‌بدنه">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="استفاده‌شکل‌خارجی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:name"/> <!-- parent -->
- </cd:keywords>
- <cd:assignments n="4" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌شکلهای‌خارجی" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="externalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="شکل‌خارجی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌شکلهای‌خارجی" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌شکلهای‌خارجی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="مقیاس">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="مقیاس‌وای">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="مقیاس‌وای">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="عامل">
- <cd:constant type="بیشترین"/>
- <cd:constant type="پرکردن"/>
- <cd:constant type="گسترده"/>
- </cd:parameter>
- <cd:parameter name="wfactor">
- <cd:constant type="cd:number"/>
- <cd:constant type="بیشترین"/>
- <cd:constant type="گسترده"/>
- <cd:constant type="پرکردن"/>
- </cd:parameter>
- <cd:parameter name="عامل‌ارتفاع">
- <cd:constant type="cd:number"/>
- <cd:constant type="بیشترین"/>
- <cd:constant type="گسترده"/>
- <cd:constant type="پرکردن"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="قالب">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- <cd:parameter name="preset">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="نمایش">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="پیش‌دید">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="تکرار">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="شیئ">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="تایپ">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="روش">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="گزینه">
- <cd:constant type="قالب"/>
- <cd:constant type="تهی"/>
- <cd:constant type="تست"/>
- </cd:parameter>
- <cd:parameter name="قالبها">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- <cd:parameter name="ymax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xmax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="پوشه">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="موضعی"/>
- <cd:constant type="سراسری"/>
- <cd:constant type="پیش‌فرض"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="بیشترین‌عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="بیشترین‌ارتفاع">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="تبدیل">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="پیشوند">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="پانل">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- <!-- more will follow -->
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="نمایش‌شکلهای‌خارجی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="جایگزین">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalsoundtrack" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="استفاده‌قطعه‌موزیک‌خارجی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="name" file="syst-gen.tex">
- <cd:sequence>
- <cd:string value="name"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="legend" type="environment">
- <cd:sequence>
- <cd:string value="legend"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="دو"/>
- </cd:keywords>
- <cd:tex n="2" command="leg"/>
- <cd:nothing n="3"/>
- <cd:nothing n="4" separator="backslash"/>
- <cd:nothing n="5" separator="backslash"/>
- <cd:tex n="6" separator="backslash" command="leg"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fact" type="environment">
- <cd:sequence>
- <cd:string value="حقیقت"/>
- </cd:sequence>
- <cd:arguments>
- <cd:tex n="1" command="fact"/>
- <cd:nothing n="2"/>
- <cd:nothing n="3" separator="backslash"/>
- <cd:nothing n="4" separator="backslash"/>
- <cd:tex n="5" separator="backslash" command="fact"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="rotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="دوران"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌دوران" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuprotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌دوران"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="دوران">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="نرمال"/>
- <cd:constant type="بلند"/>
- <cd:constant type="پرکردن"/>
- <cd:constant type="گسترده"/>
- <cd:constant type="عمق"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mirror" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="آینه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="scale" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="مقیاس"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="sx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcombinations" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌ترکیب‌ها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="دربین">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="پرکردن"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="پرکردن"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="بالا"/>
- <cd:constant type="میان"/>
- <cd:constant type="پایین"/>
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="combination" type="environment">
- <cd:sequence>
- <cd:string value="combination"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:matrix"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placesidebyside" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="درج‌کنار‌به‌کنار"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeontopofeachother" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="درج‌در‌بالای‌یکدیگر"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overlay" type="environment">
- <cd:sequence>
- <cd:string value="overlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overview" type="environment">
- <cd:sequence>
- <cd:string value="overview"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionscreen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌پرده‌پانل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="پرکردن"/>
- <cd:constant type="بیشترین"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="پرکردن"/>
- <cd:constant type="بیشترین"/>
- </cd:parameter>
- <cd:parameter name="فضای‌پس">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فضای‌بالا">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="آفست‌افق">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="آفست‌عم">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="گزینه">
- <cd:constant type="بیشترین"/>
- <cd:constant type="پرکردن"/>
- <cd:constant type="دورو"/>
- <cd:constant type="یک‌رو"/>
- <cd:constant type="خودکار"/>
- <cd:constant type="هیچکدام"/>
- <cd:constant type="چوبخط"/>
- </cd:parameter>
- <cd:parameter name="تاخیر">
- <cd:constant type="cd:number"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="screen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="پرده"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setuppagetransitions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌گذارصفحه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="بازنشانی"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteraction" file="core-nav.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌پانل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- <cd:parameter name="منو">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- <cd:parameter name="صفحه">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="فشردن">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="شکافتن">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="نمایش">
- <cd:constant type="جدید"/>
- </cd:parameter>
- <cd:parameter name="عمل‌باز">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="بستن‌کنش">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="عمل‌صفحه‌باز">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="بستن‌عمل‌صفحه">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="محاسبه">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="بست">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="عمق">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="contrastcolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="مجموعه‌نماد">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="عنوان">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="زیرعنوان">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="نویسنده">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="تاریخ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="کلید‌واژه">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <!-- maybe this will move elsewhere -->
- <cd:parameter name="لایه‌میدان">
- <cd:constant type="خودکار"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌منوی‌پانل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="دربین">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="چپ">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="راست">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="میان">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- <cd:constant type="هیچکدام"/>
- <cd:constant type="موضعی"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="contrastcolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="پوشش"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="همان‌صفحه">
- <cd:constant type="بله"/>
- <cd:constant type="تهی"/>
- <cd:constant type="نه"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="مرجع‌ناشناس">
- <cd:constant type="بله"/>
- <cd:constant type="تهی"/>
- <cd:constant type="نه"/>
- <cd:constant type="هیچکدام"/>
- </cd:parameter>
- <cd:parameter name="آفست‌چپ">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="آفست‌راست">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="آفست‌بالا">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="آفست‌پایین">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="موقعیت">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌قالبی" n="2"/> <!-- maybe not all parameters from framed -->
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
- <cd:sequence>
- <cd:string value="تعریف‌منوی‌پانل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="بالا"/>
- <cd:constant type="پایین"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌منوی‌پانل" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
- <cd:sequence>
- <cd:string value="تعریف‌منوی‌پانل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="بالا"/>
- <cd:constant type="پایین"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="بالا"/>
- <cd:constant type="پایین"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌منوی‌پانل" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionmenu" type="environment">
- <cd:sequence>
- <cd:string value="منوی‌پانل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="disableinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="ازکارانداختن‌منوی‌پانل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="بالا"/>
- <cd:constant type="پایین"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternaldocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="استفاده‌نوشتارخارجی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="پرونده"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useURL" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="useURL"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="پرونده"/>
- </cd:keywords>
- <cd:keywords n="4">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupledocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="نوشتارزوج"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="پرونده"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="from" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="از"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="exclusive"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionbar">
- <cd:sequence>
- <cd:string value="میله‌پانل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:inherit name="بارگذاری‌میله‌پانل" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="دکمه‌پانل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌میله‌پانل" n="1"/>
- </cd:assignments>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌میله‌پانل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- <cd:parameter name="جایگزین">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- <cd:constant type="e"/>
- <cd:constant type="f"/>
- <cd:constant type="g"/>
- </cd:parameter>
- <cd:parameter name="نماد">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ارتفاع"/>
- <cd:constant type="پرکردن"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ارتفاع"/>
- <cd:constant type="پرکردن"/>
- </cd:parameter>
- <cd:parameter name="عمق">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="گام">
- <cd:constant type="cd:number"/>
- <cd:constant type="کوچک"/>
- <cd:constant type="متوسط"/>
- <cd:constant type="بزرگ"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synchronize" file="core-int.tex">
- <cd:sequence>
- <cd:string value="تطابق"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="synchronization" type="environment">
- <cd:sequence>
- <cd:string value="synchronization"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupsynchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌میله‌تطابق"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="جایگزین">
- <cd:constant type="صفحه"/>
- <cd:constant type="موضعی"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ارتفاع"/>
- <cd:constant type="پرکردن"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="میله‌تطابق"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="جایگزین">
- <cd:constant type="صفحه"/>
- <cd:constant type="موضعی"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌میله‌تطابق" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsynchronization" file="core-int.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌تطابق"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="تعریف‌پروفایل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupprofiles" file="core-int.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌پروفایلها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="گزینه">
- <cd:constant type="تست"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="profile" type="environment">
- <cd:sequence>
- <cd:string value="profile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="پیروی‌پروفایل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placebookmarks" file="core-int.tex">
- <cd:sequence>
- <cd:string value="درج‌چوب‌خط"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="همه"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:parameter name="اجبار">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="bookmark" file="core-int.tex">
- <cd:sequence>
- <cd:string value="چوبخط"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="version" type="environment">
- <cd:sequence>
- <cd:string value="نسخه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupversions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌نسخه‌ها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="شماره">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="markversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="نسخه‌نشانه"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="selectversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="انتخاب‌نسخه"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="defineversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="تعریف‌نسخه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="پیروی‌نسخه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followprofileversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="پیروی‌نسخه‌پروفایل"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineprogram" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="تعریف‌برنامه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupprograms" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌برنامه‌ها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="پوشه">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="program" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="برنامه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="figure" type="environment">
- <cd:sequence>
- <cd:string value="figure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="عامل">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="قالب">
- <cd:constant type="روی"/>
- <cd:constant type="خاموش"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- referring*figure skipped -->
-
- <!-- marking*figure skipped -->
-
- <!-- remark skipped -->
-
- <cd:command name="goto" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="بروبه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:content n="2" interactive="exclusive"/>
- <cd:reference n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="gotobox" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="بروبه‌جعبه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="button" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="دکمه"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌دکمه‌ها" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:reference n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌دکمه‌ها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌قالبی" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- menubutton skipped -->
-
- <cd:command name="setupcomment" file="core-int.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌توضیح"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="عنوان">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="فضا">
- <cd:constant type="بله"/>
- <cd:constant type="نه"/>
- </cd:parameter>
- <cd:parameter name="نماد">
- <cd:constant type="نرمال"/>
- <cd:constant type="جدید"/>
- <cd:constant type="بادکنک"/>
- <cd:constant type="جمع"/>
- <cd:constant type="کمک"/>
- <cd:constant type="پاراگراف"/>
- <cd:constant type="کلید"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="گزینه">
- <cd:constant type="بیشترین"/>
- <cd:constant type="بافر"/>
- </cd:parameter>
- <cd:parameter name="حاشیه">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comment" type="environment">
- <cd:sequence>
- <cd:string value="comment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌توضیح" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comment">
- <cd:sequence>
- <cd:string value="comment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌توضیح" n="1"/>
- </cd:assignments>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="تعریف‌میدان"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1"> <!-- name -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2"> <!-- type -->
- <cd:constant type="متن"/>
- <cd:constant type="خط"/> <!-- equal to text -->
- <cd:constant type="push"/>
- <cd:constant type="check"/>
- <cd:constant type="radio"/>
- <cd:constant type="combo"/>
- <cd:constant type="choice"/> <!-- equal to combo -->
- <cd:constant type="popup"/> <!-- equal to combo -->
- </cd:keywords>
- <cd:keywords n="3"> <!-- group -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4" list="yes"> <!-- optional for text? -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes"> <!-- default -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesubfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="تعریف‌زیرمیدان"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="copyfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="میدان‌کپی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="clonefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="میدان‌شبیه‌سازی"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="field" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="میدان"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fitfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="پرکردن‌میدان"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="درج‌درمیدان"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tooltip" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="tooltip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="چپ"/>
- <cd:constant type="راست"/>
- <cd:constant type="میان"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="نمایش‌میدانها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="logfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="میدانهای‌گزارش"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌میدان"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="برچسب"/>
- <cd:constant type="افقی"/>
- <cd:constant type="عمودی"/>
- <cd:constant type="قالب"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="بارگذاری‌میدانها" n="2"/>
- </cd:assignments>
- <cd:assignments n="4" list="yes"> </cd:assignments>
- <cd:assignments n="5" list="yes"> </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌میدانها"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- TODO: if it's reset, only a single argument, no list -->
- <cd:constant type="بازنشانی"/>
- <cd:constant type="برچسب"/>
- <cd:constant type="افقی"/>
- <cd:constant type="عمودی"/>
- <cd:constant type="قالب"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="قبل‌از">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="بعداز">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="دربین">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="رنگ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="سبک">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="تنظیم">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="گزینه">
- <cd:constant type="تنهاخواندنی"/>
- <cd:constant type="موردنیاز"/>
- <cd:constant type="حفاظت‌شده"/>
- <cd:constant type="مرتب"/>
- <cd:constant type="غیرموجود"/>
- <cd:constant type="پنهانی"/>
- <cd:constant type="قابل‌چاپ"/>
- </cd:parameter>
- <cd:parameter name="فشردن‌داخل">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="فشردن‌خارج">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="ناحیه‌درون">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="ناحیه‌بیرون">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="بعدازکلید">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="شمایل">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="تاییداعتبار">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="محاسبه">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="آفست‌میدان">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌قالب‌میدان">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="رنگ‌پس‌زمینه‌میدان">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="بارگذاری‌قالبی" n="2"/>
- </cd:assignments>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="بارگذاری‌میدانها" n="2"/>
- </cd:assignments>
- <cd:assignments n="4" list="yes">
- <cd:inherit name="بارگذاری‌میدانها" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupforms" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌طرح"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="روش">
- <cd:constant type="HTML"/>
- <cd:constant type="FDF"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="تعریف‌توده‌میدان"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="بارگذاری‌میدانها" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="میدان‌پشته"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌میدانها" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="clip" file="core-trf.tex">
- <cd:sequence>
- <cd:string value="گیره"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="بارگذاری‌چیدن" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupclipping" file="core-trf.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌چیدن"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="وضعیت">
- <cd:constant type="شروع"/>
- <cd:constant type="پایان"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="sx">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="آفست‌ا">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="آفست‌ع">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="آفست">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="آفست‌چپ">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="آفست‌راست">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="آفست‌بالا">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="آفست‌پایین">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="mp">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelegend">
- <cd:sequence>
- <cd:string value="درج‌راهنما"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplegend">
- <cd:sequence>
- <cd:string value="بارگذاری‌راهنما"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="فاصله">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="دربین">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="عرض">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="ارتفاع">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="مکان">
- <cd:constant type="راست"/>
- <cd:constant type="پایین"/>
- </cd:parameter>
- <cd:parameter name="قلم‌بدنه">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="بارگذاری‌بست"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="بله" default="yes"/>
- <cd:constant type="نه"/>
- <cd:constant type="cap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usetypescriptfile" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="استفاده‌پرونده‌دستخط‌تایپ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usetypescript" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="استفاده‌دستخط‌تایپ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetypeface" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="definetypeface"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="rm"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="mm"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="6" optional="yes">
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="rscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="encoding">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="متن">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefontfeature" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="definefontfeature"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="no">
- <cd:parameter name="compose">
- <cd:constant type="نه" default="yes"/>
- <cd:constant type="بله"/>
- </cd:parameter>
- <cd:parameter name="mode">
- <cd:constant type="node"/>
- <cd:constant type="base" default="yes"/>
- </cd:parameter>
- <cd:parameter name="tlig">
- <cd:constant type="نه" default="yes"/>
- <cd:constant type="بله"/>
- </cd:parameter>
- <cd:parameter name="trep">
- <cd:constant type="نه" default="yes"/>
- <cd:constant type="بله"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="language">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="..tag.."> <!-- can't use &gt; here, \showsetup gives an error -->
- <cd:constant type="نه" default="yes"/>
- <cd:constant type="بله"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefonthandling" file="hand-ini.mkii">
- <cd:sequence>
- <cd:string value="definefonthandling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name" list="yes"/>
- </cd:keywords>
- <cd:assignments n="3">
- <cd:parameter name="تایپ">
- <cd:constant type="آویزان" default="yes"/>
- <cd:constant type="hz"/>
- <cd:constant type="فضاگذاری"/>
- <cd:constant type="tag"/>
- </cd:parameter>
- <cd:parameter name="راست">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="چپ">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="عامل">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="کمترین">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="بیشترین">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="گام">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfonthandling" file="hand-ini.mkii">
- <cd:sequence>
- <cd:string value="setupfonthandling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:inherit name="definefonthandling" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- mkii:
-
- <cd:command name="definefontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="تعریف‌مترادف‌قلم"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="encoding">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="handling">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="mapping">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="definefontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="تعریف‌مترادف‌قلم"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="fallbacks">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="goodies">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="setupfontsynonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:inherit name="تعریف‌مترادف‌قلم" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mapfontsize" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="mapfontsize"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definedfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definedfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="تعریف‌قلم" n="2"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
-</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkii/cont-ro.xml b/Master/texmf-dist/tex/context/interface/mkii/cont-ro.xml
deleted file mode 100644
index 21ffea2451e..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkii/cont-ro.xml
+++ /dev/null
@@ -1,10396 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- versions:
-
- comment : user interface definitions of ConTeXt
-
- authors : Hans Hagen, Taco Hoekwater, Patrick Gundlach, Wolfgang Schuster, and others
-
- versions : 2004.11.17 : initial version
- 2006.08.02 : define + resolve
-
--->
-
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context test" language="en" version="2006.08.02">
-
- <!-- there are some more -->
-
- <cd:define name="align">
- <cd:constant type="intern"/>
- <cd:constant type="extern"/>
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="centru"/>
- <cd:constant type="center"/>
- <cd:constant type="normal"/>
- <cd:constant type="nu"/>
- <cd:constant type="da"/>
- <cd:constant type="broad"/>
- <cd:constant type="ultim"/>
- <cd:constant type="r2l"/>
- <cd:constant type="l2r"/>
- </cd:define>
-
- <cd:define name="symalign">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="centru"/>
- <cd:constant type="center"/>
- </cd:define>
-
- <cd:define name="indenting">
- <cd: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:define name="texts">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="data"/>
- <cd:constant type="cd:mark"/>
- <cd:constant type="numarpagina"/>
- </cd:define>
-
- <cd:define name="layout-h">
- <cd:constant type="text" default="yes"/>
- <cd:constant type="margine"/>
- <cd:constant type="bordura"/>
- </cd:define>
-
- <cd:define name="layout-v">
- <cd:constant type="sus"/>
- <cd:constant type="antet"/>
- <cd:constant type="text" default="yes"/>
- <cd:constant type="subsol"/>
- <cd:constant type="subsol"/>
- </cd:define>
-
- <cd:define name="bodyfont">
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="mic"/>
- <cd:constant type="mare"/>
- </cd:define>
-
- <cd:command name="installlanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="instalarelimba"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="spatiere">
- <cd:constant type="impachetat" default="yes"/>
- <cd:constant type="broad"/>
- </cd:parameter>
- <cd:parameter name="lefthyphenmin">
- <cd:constant type="cd:number" default="2"/>
- </cd:parameter>
- <cd:parameter name="righthyphenmin">
- <cd:constant type="cd:number" default="2"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="propozitiestanga">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="propozitiedreapta">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="subpropozitiestanga">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="subpropozitiedreapta">
- <cd:constant type="cd:command" default="---"/>
- </cd:parameter>
- <cd:parameter name="minicitatstanga">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="minicitatdreapta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citatstanga">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="citatdreapta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="leftspeech">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="middlespeech">
- <cd:constant type="cd:command" default=""/>
- </cd:parameter>
- <cd:parameter name="rightspeech">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="limittext">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="data">
- <cd:constant type="cd:text"/> <!-- TODO -->
- </cd:parameter>
- <cd:parameter name="compoundhyphen">
- <cd:constant type="cd:command" default="\compoundhyphen"/>
- </cd:parameter>
- <cd:parameter name="leftcompoundhyphen">
- <cd:constant type="cd:command" default="\compoundhyphen"/>
- </cd:parameter>
- <cd:parameter name="rightcompoundhyphen">
- <cd:constant type="cd:command" default=""/>
- </cd:parameter>
- <cd:parameter name="implicit">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="setarelimba"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="instalarelimba" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="language" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="limba"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mainlanguage" file="lang-ini.tex" category="language">
- <cd:sequence>
- <cd:string value="limbaprincipala"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="language"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="translate" file="lang-lab.tex" category="language">
- <cd:sequence>
- <cd:string value="traduce"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useencoding" file="enco-ini.tex" category="encoding" obsolete="yes"> <!-- engine="pdftex" -->
- <cd:sequence>
- <cd:string value="folosestecodificarea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usespecials" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="folosestespeciale"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="definesteoutput"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupoutput" file="spec-ini.tex">
- <cd:sequence>
- <cd:string value="setareoutput"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontenvironment" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definestemediulfonttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes"> <!-- it's possible to use 1+2+3, 2+3, what about 1+2? -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="no"> <!-- have to force no, otherwise \showsetup is wrong ! -->
- <cd:constant type="5pt"/> <!-- TODO: maybe <cd:resolve name="bodyfont"/> -->
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="implicit"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:parameter name="text">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scriptscript">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="xx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="d">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mic">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mare">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spatiereinterliniara">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="em">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbodyfontenvironment" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="seteazamediulfonttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes"> <!-- same as definebodyfontenvironment; you can define the whole commant to inherit, not only parameters-->
- <cd:inherit name="definestemediulfonttext" n="1"/>
- </cd:keywords>
- <cd:keywords n="2" optional="no">
- <cd:inherit name="definestemediulfonttext" n="2" optional="no"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="definestemediulfonttext" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showbodyfontenvironment" file="font-run.tex" category="fonts"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="afiseazamediufonttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="seteazafonttext" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definestefonttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- <cd:constant type="implicit"/> -->
- <cd:resolve name="bodyfont"/> <!-- TODO: check this -->
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="rm" default="yes"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- <cd:constant type="mm"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="tf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bf">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sl">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="it">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bs">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="bi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mr">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ex">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mi">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="ma">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mb">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="mc">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="md">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontDEF" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definestefonttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="seteazafonttext" n="2"/>
- </cd:keywords>
- <cd:keywords n="1">
- <cd:inherit name="seteazafonttext" n="3"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebodyfontREF" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definestefonttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="seteazafonttext" n="1"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="seteazafonttext" n="2"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showbodyfont" file="font-run.tex" category="fonts"> <!-- visual debugging -->
- <cd:sequence>
- <cd:string value="afiseazafonttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="seteazafonttext" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbodyfont" file="font-run.tex" category="fonts">
- <cd:sequence>
- <cd:string value="seteazafonttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- TODO: many missing, maybe also <cd:resolve name="bodyfont"/> -->
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="regular"/>
- <cd:constant type="roman"/>
- <cd:constant type="sans"/>
- <cd:constant type="suport"/>
- <cd:constant type="sansserif"/>
- <cd:constant type="mono"/>
- <cd:constant type="type"/>
- <cd:constant type="teletype"/>
- <cd:constant type="scrismanual"/>
- <cd:constant type="caligrafic"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="switchtobodyfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="trecilafonttext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="serif"/>
- <cd:constant type="regular"/>
- <cd:constant type="roman"/>
- <cd:constant type="sans"/>
- <cd:constant type="suport"/>
- <cd:constant type="sansserif"/>
- <cd:constant type="mono"/>
- <cd:constant type="type"/>
- <cd:constant type="teletype"/>
- <cd:constant type="scrismanual"/>
- <cd:constant type="caligrafic"/>
- <cd:constant type="5pt"/>
- <cd:constant type="..."/>
- <cd:constant type="12pt"/>
- <cd:constant type="mic"/>
- <cd:constant type="mare"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definestefont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="seteazaculoare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolors" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="seteazaculori"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="global"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="totdeauna"/>
- <cd:constant type="niciodata"/>
- </cd:parameter>
- <cd:parameter name="reducere">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="rgb">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="cmyk">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="mpcmyk">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="mpspot">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="culoaretext">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="c"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/>
- <cd:constant type="k"/>
- <cd:constant type="p"/>
- <cd:constant type="s"/>
- <cd:constant type="nu"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="criteriu">
- <cd:constant type="tot"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="intent">
- <cd:constant type="niciunul"/>
- <cd:constant type="overprint"/>
- <cd:constant type="knockout"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definesteculoare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="r">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="g">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="b">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="c">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="k">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="s">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="h">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="t">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="a">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="p">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="e">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="color" type="environment" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="culoare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="color" file="colo-ini.tex">
- <cd:sequence>
- <cd:string value="culoare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="graycolor" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="culoaregri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showcolor" file="colo-run.tex" category="colors"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="afiseazaculoare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definepalet" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definestepaleta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppalet" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="seteazapaleta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecolorgroup" file="colo-ini.tex" category="colors">
- <cd:sequence>
- <cd:string value="definestegrupculori"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="rgb" default="yes"/>
- <cd:constant type="cmyk"/>
- <cd:constant type="gri"/>
- <cd:constant type="s"/>
- </cd:keywords>
- <cd:triplet n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showpalet" file="colo-run.tex" category="colors"> <!-- and debug -->
- <cd:sequence>
- <cd:string value="afiseazapaleta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="orizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="nume"/>
- <cd:constant type="valoare"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showcolorgroup" file="colo-run.tex" category="colors"> <!-- and debug-->
- <cd:sequence>
- <cd:string value="afiseazagrupculoare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="orizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="nume"/>
- <cd:constant type="valoare"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comparepalet" file="colo-run.tex" category="colors"> <!-- and debug? -->
- <cd:sequence>
- <cd:string value="comparapaleta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comparecolorgroup" file="colo-run.tex" category="colors">
- <cd:sequence>
- <cd:string value="comparagrupculoare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showmakeup" file="supp-vis.tex" category="debug">
- <cd:sequence>
- <cd:string value="afiseazamakeup"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definetype" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="definetype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="seteazatype" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptype" file="core-ver.tex" category="verbatim"> <!-- TODO -->
- <cd:sequence>
- <cd:string value="seteazatype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="spatiu">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat" default="yes"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="inclinat"/>
- <cd:constant type="normal"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="type" file="verb-ini.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="type"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typ" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="typ"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tex" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="tex"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <!-- cd:command name="arg" file="core-ver.tex"> command broken
- <cd:sequence>
- <cd:string value="arg"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content/>
- </cd:arguments>
-</cd:command -->
-
- <cd:command name="definetyping" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="definestetyping"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="seteazatyping" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="seteazatyping" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptyping" file="core-ver.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="seteazatyping"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="fisier"/>
- <cd:constant type="typing"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="optiune">
- <cd:constant type="inclinat"/>
- <cd:constant type="normal"/>
- <cd:constant type="comenzi" version="mkiv"/>
- <cd:constant type="culoare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="comandai">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="comandav">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="comandac">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="marginepara">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margineimpara">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="blanc">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="standard"/>
- <cd:constant type="jumatatelinie"/>
- <cd:constant type="linie"/>
- </cd:parameter>
- <cd:parameter name="escape">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="spatiu">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="tab">
- <cd:constant type="cd:number"/>
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="aliniaturmator">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="paleta">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="range">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="linii">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="despsilabe"/>
- </cd:parameter>
- <cd:parameter name="gol">
- <cd:constant type="da"/>
- <cd:constant type="tot"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="numerotare">
- <cd:constant type="linie"/>
- <cd:constant type="fisier"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="fonttext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="strip">
- <cd:constant type="nu"/>
- <cd:constant type="auto"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typing" type="environment" generated="yes" file="verb-ini.tex"
- category="verbatim">
- <cd:sequence>
- <cd:variable value="typing"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="typefile" file="verb-ini.tex" category="verbatim">
- <cd:sequence>
- <cd:string value="typefile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="seteazanotasubsol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="conversie">
- <cd:constant type="numere"/>
- <cd:constant type="caractere"/>
- <cd:constant type="Caractere"/>
- <cd:constant type="numereromane"/>
- <cd:constant type="Numereromane"/>
- </cd:parameter>
- <cd:parameter name="mod">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="pagina"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="coloane"/>
- <cd:constant type="firstcolumn"/>
- <cd:constant type="lastcolumn"/>
- <cd:constant type="inalt"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="rigla">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fonttext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantacoloane">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantamargine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="comandanumar">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="comandatext">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="tolerant"/>
- <cd:constant type="strict"/>
- <cd:constant type="foartestrict"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stiltext">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoaretext">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="interactiune">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="paragraf">
- <cd:constant type="da"/>
- <cd:constant type="nu" default="yes"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootnotedefinition" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="seteazadefinireanotasubsol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:inherit name="seteazadescriere" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="footnote" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="notasubsol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="footnotetext" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="footnotetext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="note" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="nota"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="localfootnotes" type="environment" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="localfootnotes"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelocalfootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="punenotesubsollocale"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="seteazanotasubsol" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placefootnotes" file="core-not.tex" category="footnotes">
- <cd:sequence>
- <cd:string value="punenotesubsol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="seteazanotasubsol" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupunderbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="seteazasublinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="alternativ">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- <cd:parameter name="grosimerigla">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetjos">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetsus">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="culoarerigla">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="underbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="underbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="underbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="underbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overbar" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overbars" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overbars"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overstrike" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrike"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overstrikes" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="overstrikes"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="numereromane"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Romannumerals" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Numereromane"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="numbers" file="core-con.tex">
- <cd:sequence>
- <cd:string value="numere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="litera"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Character" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Litera"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="litere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Characters" file="core-con.tex">
- <cd:sequence>
- <cd:string value="Litere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mediaeval" file="core-con.tex">
- <cd:sequence>
- <cd:string value="mediaeval"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="month" file="core-con.tex">
- <cd:sequence>
- <cd:string value="luna"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="MONTH" file="core-con.tex">
- <cd:sequence>
- <cd:string value="LUNA"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="weekday" file="core-con.tex">
- <cd:sequence>
- <cd:string value="zidinsaptamana"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WEEKDAY" file="core-con.tex">
- <cd:sequence>
- <cd:string value="ZIDINSAPTAMANA"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcapitals" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="seteazamajuscule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="titlu">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="sc">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="cap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nocap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="nocap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="CAP" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="CAP"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Cap" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Cap"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Caps" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Caps"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WORD" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="CUVANT"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="WORDS" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="CUVINTE"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Word" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Cuvant"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="Words" file="core-fnt.tex" category="Fonts">
- <cd:sequence>
- <cd:string value="Cuvinte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="stretched" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="intins"/>
- </cd:sequence>
- <cd:arguments>
- <cd:word n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definestesimbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefiguresymbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="definestesimbolfigura"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="seteazafiguriexterne" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="symbol" file="symb-ini.tex">
- <cd:sequence>
- <cd:string value="simbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="symbolset" type="environment" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="symbolset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsymbolset" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="seteazasimbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usesymbols" file="symb-ini.tex" category="symbols">
- <cd:sequence>
- <cd:string value="folosestesimboluri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showsymbolset" file="symb-run.tex" category="symbols"> <!-- and symbols -->
- <cd:sequence>
- <cd:string value="afiseazasetsimboluri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineconversion" file="core-con.tex">
- <cd:sequence>
- <cd:string value="definesteconversie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="convertnumber" file="core-con.tex">
- <cd:sequence>
- <cd:string value="convertestenumar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheadtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="seteazatexttitlu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplabeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="seteazatexteticheta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="language"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="cd:name">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="headtext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="texttitlu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labeltext" file="lang-lab.tex">
- <cd:sequence>
- <cd:string value="texteticheta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarginrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazaliniimargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="nivel">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="grosimerigla">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="liniemargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="liniemargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplinewidth" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazagrosimelinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazainconjurat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/> <!-- defines a command with that name -->
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="inaltime">
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- <cd:constant type="fixat"/>
- <cd:constant type="local"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="autolatime">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="fortat"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="niciunul"/>
- <cd:constant type="overlay"/>
- <cd:constant type="implicit"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="adancime"/>
- <cd:constant type="suspendat"/>
- <cd:constant type="inalt"/>
- <cd:constant type="lohi"/>
- <cd:constant type="jos"/>
- <cd:constant type="sus"/>
- <cd:constant type="centru"/>
- <cd:constant type="subsol"/>
- <cd:constant type="mentine"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="niciunul"/>
- <cd:constant type="gol"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="global"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="jos">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="sus">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="frame">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="overlay"/>
- </cd:parameter>
- <cd:parameter name="framesus">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="framejos">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="framestanga">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="framedreapta">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="offsetframe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="adancimeframe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="coltframe">
- <cd:constant type="rotund"/>
- <cd:constant type="rectangular"/>
- </cd:parameter>
- <cd:parameter name="razaframe">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="culoareframe">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="fundal">
- <cd:constant type="ecran"/>
- <cd:constant type="culoare"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="primplan"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="ecranfundal">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="culoarefundal">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="offsetfundal">
- <cd:constant type="incadrat"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="adancimefundal">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="coltfundal">
- <cd:constant type="rotund"/>
- <cd:constant type="rectangular"/>
- </cd:parameter>
- <cd:parameter name="razafundal">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="colt">
- <cd:constant type="rotund"/>
- <cd:constant type="rectangular"/>
- </cd:parameter>
- <cd:parameter name="raza">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="gol">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="foregroundcolor">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="foregroundstyle">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="grosimerigla">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="framed"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="seteazainconjurat" n="2"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="inframed"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="seteazainconjurat" n="2"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="thinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="liniisubtiri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes">
- <cd:inherit name="seteazaliniesubtire" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupthinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazaliniesubtire"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="spatiereinterliniara">
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="culoarefundal">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternativ">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- </cd:parameter>
- <cd:parameter name="grosimerigla">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="fundal">
- <cd:constant type="culoare"/>
- </cd:parameter>
- <cd:parameter name="culoarefundal">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hairline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="firdepar"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="thinrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="liniesubtire"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="defineframedtext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definestetextinconjurat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="definestetexteinconjurate" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineframed" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definesteinconjurare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="definestetexteinconjurate" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupframedtexts" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definestetexteinconjurate"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="fonttext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intern">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="corectielinie">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="corectieadancime">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="standard"/>
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="aliniat">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framedtext" type="environment" generated="yes" file="core-rul.tex">
- <cd:sequence>
- <cd:variable value="textinconjurat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- <cd:constant type="niciunul"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="definestetexteinconjurate" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="framedtext" generated="yes" file="core-rul.tex">
- <cd:sequence>
- <cd:variable value="textinconjurat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="definestetexteinconjurate" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="background" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="fundal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="background" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="fundal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbackground" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazafundal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="offsetstanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetdreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetsus">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetjos">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="rigleumplere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="seteazarigleumplere" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillintext" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="textumplere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="seteazarigleumplere" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfillinrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazarigleumplere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="latime">
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="spatiereinterliniara">
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinline" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="linieumplere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="seteazaliniiumplere" n="1"/>
- </cd:assignments>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfillinlines" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazaliniiumplere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptextrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazarigletext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="inmargine"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="fonttext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoarerigla">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="riglatext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- </cd:keywords>
- <cd:content n="2" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textrule" type="environment" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="riglatext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- </cd:keywords>
- <cd:content n="2" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="blackrule" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="linieneagra"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="seteazaliniinegre" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="blackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="liniinegre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:inherit name="seteazaliniinegre" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblackrules" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazaliniinegre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension" default="1em"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension" default="1ex"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="alternativ">
- <cd:constant type="a" default="yes"/>
- <cd:constant type="b"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension" default=".25ex"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number" default="3"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineoverlay" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="definesteoverlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usemodule" file="core-fil.tex"> <!-- TODO -->
- <cd:sequence>
- <cd:string value="folosestemodul"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reset" file="core-num.tex">
- <cd:sequence>
- <cd:string value="reset"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!-- <cd:command name="donttest">
- <cd:sequence>
- <cd:string value="nutesta"/>
- </cd:sequence>
-</cd:command> -->
-
- <cd:command name="localenvironment" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="localenvironment"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupsystem" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="seteazasistem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="rezolutie">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="fisier">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="director">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aleator">
- <cd:constant type="normal"/>
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usedirectory" file="core-job.mkii"> <!-- usepath, todo: more than one file -->
- <cd:sequence>
- <cd:string value="usedirectory"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="reset"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="low" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="jos"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="high" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="inalt"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="lohi" file="core-fnt.tex">
- <cd:sequence>
- <cd:string value="jossus"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="jos"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showframe" file="page-run.tex">
- <cd:sequence>
- <cd:string value="afiseazarama"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- <cd:constant type="margine"/>
- <cd:constant type="bordura"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="leftaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="aliniatstanga"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="rightaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="aliniatdreapta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="midaligned" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="aliniatcentru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="wordright" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="cuvantdreapta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inmargin" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="marginal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="jos"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inothermargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inaltamargine"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="jos"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inleft" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="instanga"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="jos"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inright" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="indreapta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="jos"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ininner" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="ininner"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="jos"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inouter" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="inouter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="jos"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="column" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="coloana"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showstruts" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="afiseazastruts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showsetups" file="page-run.tex">
- <cd:sequence>
- <cd:string value="afiseazasetari"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="showlayout" file="page-run.tex">
- <cd:sequence>
- <cd:string value="afiseazaaspect"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="margintext" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="textmarginal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="jos"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarginblocks" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="seteazablocurimarginale"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="locatie">
- <cd:constant type="inmargine"/>
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="sus">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="jos">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marginblock" type="environment" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="marginblock"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="part" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="part"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="title" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="title"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="chapter" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="chapter"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="section" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="section"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsection"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="subsubsubject" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="subsubsubject"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="appendix" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="appendix"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="in" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="in"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:content n="2" interactive="yes"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="at" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="la"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:content n="2" interactive="yes"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="about" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="despre"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="yes"/>
- <cd:reference n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="somewhere" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="undeva"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- <cd:reference n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="atpage" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="lapagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ref" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="ref"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="t"/>
- <cd:constant type="p"/>
- <cd:constant type="r"/>
- <cd:constant type="s"/>
- <cd:constant type="e"/>
- </cd:keywords>
- <cd:reference n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="textreference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="referintatext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="pagereference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="referintapagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="referinta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usereferences" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="folosestereferinte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereference" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="definestereferinte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereferenceformat" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="definesteformatreferinte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stanga">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="eticheta">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hl" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="hl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="vl" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="vl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="godown" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="injos"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="whitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="spatiualb"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="nowhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="faraspatiualb"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="crlf" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="crlf"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="space" file="syst-pln.tex">
- <cd:sequence>
- <cd:string value="spatiu"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="fixedspaces" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="spatiifixate"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="emptylines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="emptylines"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nospace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="faraspatiu"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="packed" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impachetat"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupdescriptions" file="core-des.tex">
- <cd:sequence>
- <cd:string value="seteazadescriere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/> <!-- TODO: style=normal -->
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- <cd:constant type="cd:dimension" default="8em"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="exemplu">
- <cd:constant type="cd:text" default=""/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="closecommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="closesymbol">
- <cd:constant type="cd:text" default=""/>
- </cd:parameter>
- <cd:parameter name="titleleft">
- <cd:constant type="cd:text" default="("/>
- </cd:parameter>
- <cd:parameter name="titleright">
- <cd:constant type="cd:text" default=")"/>
- </cd:parameter>
- <cd:parameter name="distantatitlu">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stiltitlu">
- <cd:resolve name="style"/> <!-- TODO: default=bold -->
- </cd:parameter>
- <cd:parameter name="culoaretitlu">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="standard"/>
- <cd:constant type="da"/>
- <cd:constant type="nu" default="yes"/> <!-- TODO: this is default; conflicting syntax? -->
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="stanga" default="yes"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="sus"/>
- <cd:constant type="serried"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="instanga"/>
- <cd:constant type="indreapta"/>
- <cd:constant type="suspendat"/>
- </cd:parameter>
- <cd:parameter name="stiltitlu">
- <cd:resolve name="style"/> <!-- TODO: default=bold -->
- </cd:parameter>
- <cd:parameter name="culoaretitlu">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- <cd:parameter name="headcommand">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="suspenda">
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command" default="\blank"/>
- </cd:parameter>
- <cd:parameter name="aliniaturmator">
- <cd:resolve name="indentnext"/> <!-- default=yes -->
- </cd:parameter>
- <cd:parameter name="aliniat">
- <cd:resolve name="indenting"/> <!-- default=never -->
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="display">
- <cd:constant type="da" default="yes"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupenumerations" file="core-des.tex">
- <cd:sequence>
- <cd:string value="seteazaenumerare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="seteazadescriere" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineenumeration" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definesteenumerare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="seteazaenumerare" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="enumeration" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="enumerare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing n="1" interactive="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="enumeration" type="environment" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="enumerare"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definedescription" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definestedescriere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="seteazadescriere" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="description" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="descriere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="description" type="environment" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="descriere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupindentedtext" file="strc-des.tex">
- <cd:sequence>
- <cd:string value="setupindentedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiltitlu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="ajustat"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="exemplu">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineindentedtext" file="strc-des.tex">
- <cd:sequence>
- <cd:string value="defineindentedtext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="setupindentedtext" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="indentation" generated="yes" file="core-spa.tex">
- <cd:sequence>
- <cd:variable value="indentation"/>
- </cd:sequence>
- <cd:arguments>
- <cd:nothing n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelabel" file="core-des.tex">
- <cd:sequence>
- <cd:string value="definesteeticheta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="inmargine"/>
- <cd:constant type="intext"/>
- </cd:parameter>
- <cd:parameter name="mod">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="blockway">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="stiltitlu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoaretitlu">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labeling" generated="yes" file="core-des.tex">
- <cd:sequence>
- <cd:variable value="labeling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcolumns" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="seteazacoloane"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes"> <!-- no idea why it is optional -->
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nsus">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="rigla">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/> <!-- default and unknown missing -->
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="toleranta">
- <cd:constant type="foartestrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="foartetolerant"/>
- <cd:constant type="dilatat"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="balanta">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:constant type="text"/>
- <!-- cd:constant type="yes"/ -->
- <!-- cd:constant type="no"/ -->
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="blanc">
- <cd:constant type="fixat"/>
- <cd:constant type="jumatatelinie"/>
- <cd:constant type="linie"/>
- <cd:constant type="flexibil"/>
- <cd:constant type="mare"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mic"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="fundal"/>
- </cd:parameter>
- <cd:parameter name="directie">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="columns" type="environment" file="page-mul.tex">
- <cd:sequence>
- <cd:string value="columns"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="seteazacoloane" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="definestetext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="antet"/>
- <cd:constant type="subsol"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheader" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazaantet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text" default="yes"/>
- <cd:constant type="margine"/>
- <cd:constant type="bordura"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="gol"/>
- <cd:constant type="inalt"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="faramarcare"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilstanga">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stildreapta">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="latimestanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginedreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfooter" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazasubsol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="seteazaantet" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="seteazaantet" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptext" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazatext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="seteazaantet" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="seteazaantet" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptop" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazasus"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="seteazaantet" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="seteazaantet" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbottom" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazajos"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="seteazaantet" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="seteazaantet" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="noheaderandfooterlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="faraliniiantetsisubsol"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="notopandbottomlines" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="faraliniisussijos"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupheadertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazatexteantet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfootertexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazatextesubsol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptexttexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazatextetext"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptoptexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazatextesus"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbottomtexts" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="seteazatextejos"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="settextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="settextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:resolve name="texts"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="resettextcontent" file="page-txt.tex">
- <cd:sequence>
- <cd:string value="resettextcontent"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:resolve name="layout-v"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:resolve name="layout-h"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="lefttext"/>
- <cd:constant type="middletext"/>
- <cd:constant type="righttext"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="definestemarcaje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplemarking" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="cupleazamarcaje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="decouplemarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="decupleazamarcaje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="resetmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="reseteazamarcaje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="seteazamarcaje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="expansiune">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="marking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="marcaje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="getmarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="adumarcaje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="primul"/>
- <cd:constant type="ultim"/>
- <cd:constant type="precedent"/>
- <cd:constant type="ambele"/>
- <cd:constant type="tot"/>
- <cd:constant type="curent"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomarking" file="core-mar.tex">
- <cd:sequence>
- <cd:string value="faramarcaje"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplayout" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="seteazaaspect"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="centru"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="centru"/>
- </cd:parameter>
- <cd:parameter name="spatiuspate">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spatiusus">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginestanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginedreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="antet">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="subsol">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sus">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="jos">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="bordurastanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="borduradreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantaantet">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantasubsol">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantasus">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantajos">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantamarginestanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantamarginedreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantabordurastanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantacoltdreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetoriz">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="veroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="marcaje">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- <cd:constant type="culoare"/>
- <cd:constant type="ecran"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="pagina"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="subsol"/>
- <cd:constant type="sus"/>
- <cd:constant type="ofata"/>
- <cd:constant type="douafete"/>
- </cd:parameter>
- <cd:parameter name="scala">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="linii">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="coloane">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distantacoloane">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="grid">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="spatiujos">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="cutspace">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="textdistance">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latimetext">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="textmargin">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="clipoffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="hartie">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="adaptlayout" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="adapteazaaspect"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="linii">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showgrid" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="afiseazagrid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="tot"/>
- <cd:constant type="linii"/>
- <cd:constant type="incadrat"/>
- <cd:constant type="nonumber"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="stanga"/>
- <cd:constant type="extern"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="plaseazapegrid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:inherit name="mutapegrid" n="1"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="moveongrid" file="core-grd.tex">
- <cd:sequence>
- <cd:string value="mutapegrid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="standard" default="yes"/> <!-- also 'normal', 'yes' and 'force' -->
- <cd:constant type="sus"/>
- <cd:constant type="ambele"/>
- <cd:constant type="subsol"/>
- <cd:constant type="-top"/>
- <cd:constant type="-both"/>
- <cd:constant type="-bottom"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="inalt"/>
- <cd:constant type="centru"/>
- <cd:constant type="jos"/>
- <cd:constant type="pagina"/>
- <cd:constant type="broad"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="adancime"/>
- <cd:constant type="linie"/>
- <cd:constant type="reset"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="project" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="proiect"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="environment" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="mediu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="product" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="produs"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="component" type="environment" file="core-job.tex">
- <cd:sequence>
- <cd:string value="componenta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:file n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomorefiles" file="core-job.tex">
- <cd:sequence>
- <cd:string value="farafisiere"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupinterlinespace" variant="1" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="seteazaspatiuinterliniar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="reset"/>
- <cd:constant type="mic" default="yes"/>
- <cd:constant type="mediu"/>
- <cd:constant type="auto"/>
- <cd:constant type="mare"/>
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinterlinespace2" variant="2" file="core-spa.tex">
- <!-- attached a 2 to make this definition usable with \showsetup -->
- <cd:sequence>
- <cd:string value="seteazaspatiuinterliniar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="inaltime">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="linie">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sus">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="jos">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppagenumbering" file="page-num.tex">
- <cd:sequence>
- <cd:string value="seteazanumerotarepagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="alternativ">
- <cd:constant type="ofata"/>
- <cd:constant type="douafete"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="antet"/>
- <cd:constant type="subsol"/>
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- <cd:constant type="margine"/>
- <cd:constant type="marginebordura"/>
- <cd:constant type="instanga"/>
- <cd:constant type="indreapta"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="numere"/>
- <cd:constant type="caractere"/>
- <cd:constant type="Caractere"/>
- <cd:constant type="numereromane"/>
- <cd:constant type="Numereromane"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="mod">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="separatornumar">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="separatortext">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="ultim"/>
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupnarrower" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="seteazaingust"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="mijloc">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="define" file="syst-ext.tex">
- <cd:sequence>
- <cd:string value="defineste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:csname n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usecommands" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="folosestecomenzi"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definestartstop" file="core-sys.tex">
- <cd:sequence>
- <cd:string value="definestestartstop"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="comenzi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheads" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="seteazatitluri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="numarsectiune">
- <cd:constant type="da"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="alternativ">
- <cd:constant type="normal"/>
- <cd:constant type="margine"/>
- <cd:constant type="centru"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="paragraf"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stopper">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="alinieretitlu">
- <cd:constant type="da"/>
- <cd:constant type="obiectmobil"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="toleranta">
- <cd:constant type="foartestrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="foartetolerant"/>
- <cd:constant type="dilatat"/>
- </cd:parameter>
- <cd:parameter name="aliniaturmator">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcaptions" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="seteazalegendele"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="locatie">
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="inalt"/>
- <cd:constant type="jos"/>
- <cd:constant type="centru"/>
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="lefthanging"/>
- <cd:constant type="righthanging"/>
- <cd:constant type="marginestanga"/>
- <cd:constant type="marginedreapta"/>
- <cd:constant type="innermargin"/>
- <cd:constant type="outermargin"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- <cd:constant type="max"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latimeminima">
- <cd:constant type="ajustat"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stiltitlu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="numar">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="numere"/>
- <cd:constant type="caractere"/>
- <cd:constant type="Caractere"/>
- <cd:constant type="numereromane"/>
- <cd:constant type="Numereromane"/>
- </cd:parameter>
- <cd:parameter name="mod">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stopper">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcaption" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="seteazalegenda"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="seteazalegendele" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloats" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="seteazafloats"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="ajustat"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spatiuinainte">
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="spatiudupa">
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="spatiulateralinainte">
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="spatiulateraldupa">
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="aliniaturmator">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="nsus">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="njos">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nlinii">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="implicit">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="toleranta">
- <cd:constant type="0"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- <cd:parameter name="distantamarginestanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantamarginedreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="sidealign">
- <cd:constant type="normal"/>
- <cd:constant type="linie"/>
- </cd:parameter>
- <cd:parameter name="numerotare">
- <cd:constant type="da"/>
- <cd:constant type="nocheck"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloatsplitting" file="core-tsp.tex">
- <cd:sequence>
- <cd:string value="seteazaimpartireafloat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="conversie">
- <cd:constant type="numere"/>
- <cd:constant type="caractere"/>
- <cd:constant type="Caractere"/>
- <cd:constant type="numereromane"/>
- <cd:constant type="Numereromane"/>
- </cd:parameter>
- <cd:parameter name="linii">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="splitfloat" file="core-tsp.tex">
- <cd:sequence>
- <cd:string value="impartefloat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="seteazaimpartireafloat" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupoppositeplacing" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="seteazaplasareaopozita"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="opposite" type="environment" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="opposite"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setuphyphenmark" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="seteazaliniesilabe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="semn">
- <cd:constant type="--"/>
- <cd:constant type="---"/>
- <cd:constant type="-"/>
- <cd:constant type="~"/>
- <cd:constant type="("/>
- <cd:constant type=")"/>
- <cd:constant type="="/>
- <cd:constant type="/"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppositioning" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="setarepozitie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="overlay"/>
- </cd:parameter>
- <cd:parameter name="unitate">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="scala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="xstep">
- <cd:constant type="absolut"/>
- <cd:constant type="relativ"/>
- </cd:parameter>
- <cd:parameter name="ystep">
- <cd:constant type="absolut"/>
- <cd:constant type="relativ"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="positioning" type="environment" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="positioning"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="grid" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="grid"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="x">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="dy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xstep">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ystep">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="scala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="unitate">
- <cd:constant type="cm"/>
- <cd:constant type="pt"/>
- <cd:constant type="em"/>
- <cd:constant type="mm"/>
- <cd:constant type="ex"/>
- <cd:constant type="es"/>
- <cd:constant type="in"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="page" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="pagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="da" default="yes"/>
- <cd:constant type="marcaj"/>
- <cd:constant type="nu"/>
- <cd:constant type="preferinta"/>
- <cd:constant type="preferintamare"/>
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="dezactivat"/>
- <cd:constant type="ultim"/>
- <cd:constant type="cvadrupul"/>
- <cd:constant type="par"/>
- <cd:constant type="impar"/>
- <cd:constant type="blank"/>
- <cd:constant type="gol"/>
- <cd:constant type="reset"/>
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupreferencing" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="seteazareferinte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interactiune">
- <cd:constant type="eticheta"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="tot"/>
- <cd:constant type="simbol"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="convertestefisier">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="mic"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autofile">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="pagina"/>
- </cd:parameter>
- <cd:parameter name="global">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="export">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupurl" file="core-ref.tex" category="references">
- <cd:sequence>
- <cd:string value="seteazaurl"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="urlalternativ">
- <cd:constant type="niciunul"/>
- <cd:constant type="ambele"/>
- <cd:constant type="inainte"/>
- <cd:constant type="dupa"/>
- </cd:parameter>
- <cd:parameter name="spatiuurl">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetoreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="scrieinlistareferinte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="placereferencelist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definereferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definestelistareferinte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="seteazalistareferinte" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupreferencelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="seteazalistareferinte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="criteriu">
- <cd:constant type="cd:section"/>
- <cd:constant type="local"/>
- <cd:constant type="precedent"/>
- <cd:constant type="tot"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="scrieinlista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="locatie">
- <cd:constant type="aici"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writebetweenlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="scrieintreliste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="locatie">
- <cd:constant type="aici"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nolist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="faralista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="listsymbol" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="listsymbol"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="punelista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="seteazalista" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="determinelistcharacteristics" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="determinacaracteristicilelistei"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="seteazalista" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placecombinedlist" variant="1" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="punelistacombinata"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="seteazalistacombinata" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definestelista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes"> <!-- inherits from -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="seteazalista" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="seteazalista"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="alternativ">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="..."/>
- <cd:constant type="niciunul"/>
- <cd:constant type="comanda"/>
- </cd:parameter>
- <cd:parameter name="cuplare">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="criteriu">
- <cd:constant type="cd:section"/>
- <cd:constant type="local"/>
- <cd:constant type="precedent"/>
- <cd:constant type="curent"/>
- <cd:constant type="aici"/>
- <cd:constant type="intro"/>
- <cd:constant type="tot"/>
- </cd:parameter>
- <cd:parameter name="extras">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilnumar">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiltext">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilpagina">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- <cd:parameter name="comandanumar">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="comandatext">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="comandapagina">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="interactiune">
- <cd:constant type="numarsetiune"/>
- <cd:constant type="text"/>
- <cd:constant type="numarpagina"/>
- <cd:constant type="tot"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="eticheta">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="numarpagina">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="numartitlu">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="alinieretitlu">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stopper">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="simbol">
- <cd:constant type="niciunul"/>
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="..."/>
- </cd:parameter>
- <cd:parameter name="expansiune">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="comanda"/>
- </cd:parameter>
- <cd:parameter name="latimemaxima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="order">
- <cd:constant type="comanda"/>
- <cd:constant type="tot"/>
- <cd:constant type="normal"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplistalternative" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="setuplistalternative"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="no">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <!-- cd:constant type="cd:name"/ -->
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="comanda">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dilatat">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definecombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="definestelistacombinata"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:list"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="seteazalistacombinata" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcombinedlist" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="seteazalistacombinata"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="nivel">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="3"/>
- <cd:constant type="4"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="curent"/>
- </cd:parameter>
- <cd:inherit name="seteazalista" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placecombinedlist" variant="2" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="pune"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="seteazalistacombinata" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completecombinedlist" generated="yes" file="core-lst.tex">
- <cd:sequence>
- <cd:string value="complet"/>
- <cd:variable value="combinedlist"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="seteazalistacombinata" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupnumbering" file="core-num.tex">
- <cd:sequence>
- <cd:string value="seteazanumerotare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="mod">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupformulas" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="seteazaformule"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="centru"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="standard"/>
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="centru"/>
- <cd:constant type="center"/>
- </cd:parameter>
- <cd:parameter name="marginestanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginedreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="aliniaturmator">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="alternativ">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="spatiuinainte">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="numere"/>
- <cd:constant type="caractere"/>
- <cd:constant type="Caractere"/>
- <cd:constant type="numereromane"/>
- <cd:constant type="Numereromane"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="publication" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="publicatie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppublications" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="seteazapublicatii"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="alternativ">
- <cd:constant type="apa"/>
- <cd:constant type="normal"/>
- </cd:parameter>
- <cd:inherit name="seteazaenumerare" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplines" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="seteazalinii"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="aliniat">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="spatiu">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="impachetat"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="lines" type="environment">
- <cd:sequence>
- <cd:string value="lines"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupparagraphnumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="seteazanumerotareparagrafe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="reset"/>
- <cd:constant type="linie"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplinenumbering" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="seteazanumerotarelinii"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="conversie">
- <cd:constant type="numere"/>
- <cd:constant type="caractere"/>
- <cd:constant type="Caractere"/>
- <cd:constant type="numereromane"/>
- <cd:constant type="Numereromane"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="pas">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="centru"/>
- <cd:constant type="stanga"/>
- <cd:constant type="margine"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="instanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="indreapta"/>
- <cd:constant type="intern"/>
- <cd:constant type="extern"/>
- <cd:constant type="text"/>
- <cd:constant type="begin"/>
- <cd:constant type="end"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="referinta">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="linenumbering" type="environment" file="page-lin.tex"> <!-- mkii/mkiv -->
- <cd:sequence>
- <cd:string value="linenumbering"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="continuu"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="line" type="environment">
- <cd:sequence>
- <cd:string value="line"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="someline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="olinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="inline" file="page-lin.tex">
- <cd:sequence>
- <cd:string value="inlinie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinmargin" file="page-mar.tex">
- <cd:sequence>
- <cd:string value="seteazamarginal"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="ambele"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="linie">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="separator">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stack">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="seteazanumarpagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="numar">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="mentine"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsubpagenumber" file="page-num.tex">
- <cd:sequence>
- <cd:string value="seteazanumarsubpagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="mod">
- <cd:constant type="bytext"/>
- <cd:constant type="bycd:section"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="seteazablanc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="normal" default="yes"/>
- <cd:constant type="implicit"/>
- <cd:constant type="standard"/>
- <cd:constant type="linie"/>
- <cd:constant type="jumatatelinie"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="mare"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mic"/>
- <cd:constant type="fixat"/>
- <cd:constant type="flexibil"/>
- <cd:constant type="global"/>
- <cd:constant type="necunoscut"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineblank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="definesteblanc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:inherit name="seteazablanc" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definepapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="definestedimensiunehartie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="scala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppaper" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="setuppaper"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="hartie">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spatiusus">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spatiuspate">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="max"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="metoda">
- <cd:constant type="normal"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuppapersize" file="page-lay.tex">
- <cd:sequence>
- <cd:string value="seteazadimensiunihartie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="A3"/>
- <cd:constant type="A4" default="yes"/>
- <cd:constant type="A5"/>
- <cd:constant type="A6"/>
- <cd:constant type="letter"/>
- <cd:constant type="..."/>
- <cd:constant type="CD"/>
- <cd:constant type="cd:name"/>
- <cd:constant type="vedere"/>
- <cd:constant type="oglindit"/>
- <cd:constant type="rotat"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="negativ"/>
- <cd:inherit name="seteazadimensiunihartie" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuparranging" file="page-imp.tex">
- <cd:sequence>
- <cd:string value="seteazaaranjareapag"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="dezactivat"/>
- <cd:constant type="2*16"/>
- <cd:constant type="2*8"/>
- <cd:constant type="2*4"/>
- <cd:constant type="2*2"/>
- <cd:constant type="2**2"/>
- <cd:constant type="2*2*4"/>
- <cd:constant type="2*4*2"/>
- <cd:constant type="2UP"/>
- <cd:constant type="2DOWN"/>
- <cd:constant type="2SIDE"/>
- <cd:constant type="2TOP"/>
- <cd:constant type="oglindit"/>
- <cd:constant type="rotat"/>
- <cd:constant type="douafete"/>
- <cd:constant type="negativ"/>
- <cd:constant type="fundal"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showprint" file="page-run.tex"> <!-- page-lay.tex -->
- <cd:sequence>
- <cd:string value="afiseazatiparire"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:inherit name="seteazadimensiunihartie" n="1"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:inherit name="seteazadimensiunihartie" n="2"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="seteazaaspect" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definelogo" file="page-log.tex">
- <cd:sequence>
- <cd:string value="definestelogo"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="sus"/>
- <cd:constant type="antet"/>
- <cd:constant type="subsol"/>
- <cd:constant type="subsol"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="niciunul"/>
- <cd:constant type="pagina"/>
- <cd:constant type="bordurastanga"/>
- <cd:constant type="marginestanga"/>
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="marginedreapta"/>
- <cd:constant type="borduradreapta"/>
- </cd:keywords>
- <cd:assignments n="4" list="yes">
- <cd:parameter name="comanda">
- <cd:constant type="cd:command"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelogos" file="page-log.tex">
- <cd:sequence>
- <cd:string value="punelogouri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupwhitespace">
- <cd:sequence>
- <cd:string value="seteazaspatiualb"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="niciunul" default="yes"/>
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="linie"/>
- <cd:constant type="fixat"/>
- <cd:constant type="fix"/>
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupindenting">
- <cd:sequence>
- <cd:string value="seteazaaliniat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definesteblocsectiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="seteazablocsectiune" n="1"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="seteazablocsectiune" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsectionblock" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="seteazablocsectiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="numar">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="da"/>
- <cd:constant type="dreapta"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definestesectiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsection" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="seteazasectiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="conversie">
- <cd:constant type="numere"/>
- <cd:constant type="caractere"/>
- <cd:constant type="Caractere"/>
- <cd:constant type="numereromane"/>
- <cd:constant type="Numereromane"/>
- </cd:parameter>
- <cd:parameter name="numarprecedent">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuphead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="seteazatitlu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiltext">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilnumar">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="culoaretext">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="culoarenumar">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="numar">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="numarpropriu">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="da"/>
- </cd:parameter>
- <cd:parameter name="continua">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="antet">
- <cd:constant type="niciunul"/>
- <cd:constant type="gol"/>
- <cd:constant type="inalt"/>
- <cd:constant type="faramarcare"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="niciunul"/>
- <cd:constant type="gol"/>
- <cd:constant type="inalt"/>
- <cd:constant type="faramarcare"/>
- </cd:parameter>
- <cd:parameter name="subsol">
- <cd:constant type="niciunul"/>
- <cd:constant type="gol"/>
- <cd:constant type="inalt"/>
- <cd:constant type="faramarcare"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="alternativ">
- <cd:constant type="normal"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="centru"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="suspenda">
- <cd:constant type="niciunul"/>
- <cd:constant type="broad"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="linie"/>
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:twoarguments"/>
- </cd:parameter>
- <cd:parameter name="comandanumar">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="comandatext">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deepnumbercommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="+"/>
- <cd:constant type="-"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="punetitlu">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="gol"/>
- </cd:parameter>
- <cd:parameter name="numarincrement">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="cd:list"/>
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="resetnumber">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="fisier">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="expansiune">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="comanda"/>
- </cd:parameter>
- <cd:parameter name="textmargine">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="interactiune">
- <cd:constant type="lista"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:inherit name="seteazatitluri" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="seteazanumartitlu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:number"/>
- <cd:constant type="+cd:number"/>
- <cd:constant type="-cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="headnumber">
- <cd:sequence>
- <cd:string value="numartitlu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="determineheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="determinanumartitlu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="currentheadnumber" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="numartitlucurent"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="nextsection" generated="yes" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="urmatorul"/>
- <cd:variable value="sectiune"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definehead" file="core-sec.tex">
- <cd:sequence>
- <cd:string value="definesteantet"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:section"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!--
-
- <cd:feature name="itemgroups" file="strc-itm">
-
- <cd:description language="ro"> </cd:description>
-
- -->
-
- <cd:command name="defineitemgroup" file="strc-itm">
- <cd:sequence>
- <cd:string value="defineitemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupitemgroup" file="strc-itm">
- <!-- we mis a few experimental keys here, like alignsymbol and indentation -->
- <cd:sequence>
- <cd:string value="setupitemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="fiecare"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes" list="yes">
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="broad"/>
- <cd:constant type="serried"/>
- <cd:constant type="impachetat"/>
- <cd:constant type="despachetat"/>
- <cd:constant type="faraalb"/>
- <cd:constant type="inainte"/>
- <cd:constant type="dupa"/>
- <cd:constant type="stopper"/>
- <cd:constant type="unit"/>
- <cd:constant type="lamargine"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="autointro"/>
- <cd:constant type="larg"/>
- <cd:constant type="repetat"/>
- <cd:constant type="cd:section"/>
- <cd:constant type="paragraf"/>
- <cd:constant type="intext"/>
- <cd:constant type="aleator"/>
- <cd:constant type="reverse"/>
- </cd:keywords>
- <cd:assignments n="4" optional="yes" list="yes">
- <cd:parameter name="margine">
- <cd:constant type="nu"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginestanga">
- <cd:constant type="nu"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="marginedreapta">
- <cd:constant type="nu"/>
- <cd:constant type="standard"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pas">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="elemente">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="start">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="inaintetitlu">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupatitlu">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stiltitlu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilmarcaj">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilsimbol">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stopper">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="simbol">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="symaliniere">
- <cd:resolve name="symalign"/>
- </cd:parameter>
- <cd:parameter name="aliniaturmator">
- <cd:resolve name="indentnext"/>
- </cd:parameter>
- <cd:parameter name="textdistance">
- <!-- maybe resolve here too -->
- <cd:constant type="niciunul"/>
- <cd:constant type="mare"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mic"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="itemgroup" type="environment" generated="yes" file="strc-itm">
- <cd:sequence>
- <cd:variable value="itemgroup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="a"/>
- <cd:constant type="A"/>
- <cd:constant type="KA"/>
- <cd:constant type="n"/>
- <cd:constant type="N"/>
- <cd:constant type="m"/>
- <cd:constant type="r"/>
- <cd:constant type="R"/>
- <cd:constant type="KR"/>
- <cd:constant type="cd:number"/>
- <cd:constant type="continuu"/>
- <cd:constant type="standard" default="yes"/>
- <cd:constant type="broad"/>
- <cd:constant type="serried"/>
- <cd:constant type="impachetat"/>
- <cd:constant type="stopper"/>
- <cd:constant type="unit"/>
- <cd:constant type="lamargine"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="intro"/>
- <cd:constant type="coloane"/>
- <cd:constant type="text"/>
- <cd:constant type="paragraf"/>
- <cd:constant type="repetat"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="setupitemgroup" n="4"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="item" environment="yes" shortcut="yes" file="strc-itm">
- <cd:sequence>
- <cd:string value="element"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <!--
- <cd:command name="item" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="element"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
- -->
-
- <cd:command name="but">
- <cd:sequence>
- <cd:string value="but"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="exclusive"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="its">
- <cd:sequence>
- <cd:string value="el"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="ran">
- <cd:sequence>
- <cd:string value="ran"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="head">
- <cd:sequence>
- <cd:string value="titlu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mar">
- <cd:sequence>
- <cd:string value="mar"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sub">
- <cd:sequence>
- <cd:string value="sub"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sym" file="core-itm.tex">
- <cd:sequence>
- <cd:string value="sim"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nop">
- <cd:sequence>
- <cd:string value="nop"/>
- </cd:sequence>
- </cd:command>
-
- <!-- </cd:feature> -->
-
- <cd:command name="defineregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="definesteregistru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="seteazaregistru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="balanta">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilpagina">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stiltext">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="indicator">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="cuplare">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="cd:sectionnumber">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="criteriu">
- <cd:constant type="cd:section"/>
- <cd:constant type="local"/>
- <cd:constant type="tot"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="simbol">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="interactiune">
- <cd:constant type="numarpagina"/>
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="expansiune">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="comanda"/>
- </cd:parameter>
- <cd:parameter name="referinta">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
- </cd:parameter>
- <cd:parameter name="latimemaxima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="referintanecunoscuta">
- <cd:constant type="gol"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="alternativ">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="A"/>
- <cd:constant type="B"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="ambele"/>
- <cd:constant type="primul"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="compress">
- <cd:constant type="nu"/>
- <cd:constant type="da"/>
- </cd:parameter>
- <cd:parameter name="deeptextcommand">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="register" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:variable value="registru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="startregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="start"/>
- <cd:variable value="registru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="writetoregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="scrieinregistru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupledregister" generated="yes">
- <cd:sequence>
- <cd:string value="cuplat"/>
- <cd:variable value="registru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:index n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupleregister" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="cupleazaregistru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeregister" variant="1" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="puneregistru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="seteazaregistru" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="seeregister" generated="yes">
- <cd:sequence>
- <cd:string value="vezi"/>
- <cd:variable value="registru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:index n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completeregister" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="complet"/>
- <cd:variable value="registru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
- <cd:inherit name="seteazaregistru" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeregister" variant="2" generated="yes" file="core-reg.tex">
- <cd:sequence>
- <cd:string value="pune"/>
- <cd:variable value="registru"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="yes" optional="yes" list="yes">
- <cd:inherit name="seteazaregistru" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definestesinonim"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsynonyms" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="seteazasinonime"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="stiltext">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="stilsinonim">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="sus"/>
- <cd:constant type="serried"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="instanga"/>
- <cd:constant type="indreapta"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="criteriu">
- <cd:constant type="tot"/>
- <cd:constant type="folosit"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="expansiune">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="comanda"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:threearguments"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synonym" generated="yes">
- <cd:sequence>
- <cd:variable value="synonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelistofsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="loadsynonyms" generated="yes">
- <cd:sequence>
- <cd:string value="incarca"/>
- <cd:variable value="synonyms"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definesorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="definestesortare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:command"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsorting" file="core-syn.tex">
- <cd:sequence>
- <cd:string value="seteazasortare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:oneargument"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="criteriu">
- <cd:constant type="tot"/>
- <cd:constant type="folosit"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="expansiune">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="comanda"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="sort" generated="yes">
- <cd:sequence>
- <cd:variable value="sort"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="completelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="placelistofsorts" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="loadsorts" generated="yes">
- <cd:sequence>
- <cd:string value="incarca"/>
- <cd:variable value="sorts"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="definemakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="definestemakeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:inherit name="seteazamakeup" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="makeup" type="environment">
- <cd:sequence>
- <cd:string value="makeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="seteazamakeup" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupmakeup" file="page-mak.tex">
- <cd:sequence>
- <cd:string value="seteazamakeup"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="stanga"/>
- <cd:constant type="da"/>
- <cd:constant type="dreapta"/>
- </cd:parameter>
- <cd:parameter name="comenzi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="douafete">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="gol"/>
- </cd:parameter>
- <cd:parameter name="stareantet">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="gol"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="faramarcare"/>
- </cd:parameter>
- <cd:parameter name="staresubsol">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="gol"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="faramarcare"/>
- </cd:parameter>
- <cd:parameter name="staretext">
- <cd:constant type="normal"/>
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- <cd:constant type="gol"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="faramarcare"/>
- </cd:parameter>
- <cd:parameter name="staresus">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="starejos">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="pagestate">
- <cd:constant type="stop"/>
- <cd:constant type="start"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="namemakeup" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="nume"/>
- <cd:string value="makeup"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="version">
- <cd:sequence>
- <cd:string value="versiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="final" default="yes"/>
- <cd:constant type="concept"/>
- <cd:constant type="temporar"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="currentdate">
- <cd:sequence>
- <cd:string value="datacurenta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:inherit name="data" n="2"/> <!-- or vice versa :) -->
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="date" file="core-con.tex">
- <cd:sequence>
- <cd:string value="data"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes"> <!-- if not given, current date is used -->
- <cd:parameter name="d">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="m">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="zi"/>
- <cd:constant type="luna"/>
- <cd:constant type="an"/>
- <cd:constant type="zisaptamana"/>
- <cd:constant type="d"/>
- <cd:constant type="m"/>
- <cd:constant type="y"/> <!-- also j -->
- <cd:constant type="w"/>
- <cd:constant type="dd"/>
- <cd:constant type="mm"/>
- <cd:constant type="yy"/> <!-- also jj -->
- <cd:constant type="spatiu"/>
- <cd:constant type="--"/>
- <cd:constant type="day+"/>
- <cd:constant type="d+"/>
- <cd:constant type="dd+"/>
- <cd:constant type="referinta"/>
- <cd:constant type="cd:text"/> <!-- any other text -->
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="referraldate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="datareferit"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="indenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="aliniat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:resolve name="indenting"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="noindenting" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="faraaliniat"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="blank" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="blanc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare" default="yes"/>
- <cd:constant type="faraalb"/>
- <cd:constant type="inapot"/>
- <cd:constant type="alb"/>
- <cd:constant type="dezactivat"/>
- <cd:constant type="fortat"/>
- <cd:constant type="reset"/>
- <cd:constant type="linie"/>
- <cd:constant type="jumatatelinie"/>
- <cd:constant type="cd:formula"/>
- <cd:constant type="fixat"/>
- <cd:constant type="flexibil"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="totdeauna"/>
- <cd:constant type="extern"/>
- <cd:constant type="unit"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="packed" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="impachetat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="blank"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="unpacked" type="environment">
- <cd:sequence>
- <cd:string value="unpacked"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="linecorrection" type="environment">
- <cd:sequence>
- <cd:string value="linecorrection"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="correctwhitespace" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="corecteazaspatiualb"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="postponing" type="environment">
- <cd:sequence>
- <cd:string value="postponing"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="local" type="environment">
- <cd:sequence>
- <cd:string value="local"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="narrower" type="environment">
- <cd:sequence>
- <cd:string value="narrower"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="centru" default="yes"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="-left"/>
- <cd:constant type="-middle"/>
- <cd:constant type="-right"/>
- <cd:constant type="-none"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="hiding" type="environment">
- <cd:sequence>
- <cd:string value="hiding"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupalign" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="seteazaalinierea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="latime"/>
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- <cd:constant type="intern"/>
- <cd:constant type="extern"/>
- <cd:constant type="larg"/>
- <cd:constant type="broad"/>
- <cd:constant type="inaltime"/>
- <cd:constant type="subsol"/>
- <cd:constant type="linie"/>
- <cd:constant type="reset"/>
- <cd:constant type="suspendat"/>
- <cd:constant type="nothanging"/>
- <cd:constant type="despsilabe"/>
- <cd:constant type="nedespsilabe"/>
- <cd:constant type="lesshyphenation"/>
- <cd:constant type="morehyphenation"/>
- <cd:constant type="nou"/>
- <cd:constant type="old"/>
- <cd:constant type="normal"/>
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <cd:constant type="flushleft"/>
- <cd:constant type="flushright"/>
- <cd:constant type="flushouter"/>
- <cd:constant type="flushinner"/>
- <cd:constant type="center"/>
- <cd:constant type="hz"/>
- <cd:constant type="nohz"/>
- <cd:constant type="spatiere"/>
- <cd:constant type="nospacing"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="foartetolerant"/>
- <cd:constant type="dilatat"/>
- <cd:constant type="extremestretch"/>
- <cd:constant type="lefttoright"/>
- <cd:constant type="righttoleft"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
-
- <cd:command name="alignment" type="environment" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="alignment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:inherit name="seteazaalinierea" n="1"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupspacing">
- <cd:sequence>
- <cd:string value="seteazaspatiu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="broad"/>
- <cd:constant type="impachetat"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptolerance" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="seteazatoleranta"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="orizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="dilatat"/>
- <cd:constant type="spatiu"/>
- <cd:constant type="foartestrict" default="yes"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="foartetolerant"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <!-- cd:command name="pagetype" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="pagetype"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command -->
-
- <cd:command name="processpage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="proceseazapagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="da" default="yes"/>
- <cd:constant type="nu"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplepage" file="page-ini.tex">
- <cd:sequence>
- <cd:string value="paginadubla"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="optiune">
- <cd:constant type="douafete"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="position" file="page-lyr.tex">
- <cd:sequence>
- <cd:string value="pozitie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:position n="1" list="yes"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupscreens" file="core-rul.tex">
- <cd:sequence>
- <cd:string value="seteazaecrane"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="metoda">
- <cd:constant type="punct"/>
- <cd:constant type="rigla"/>
- <cd:constant type="extern"/>
- </cd:parameter>
- <cd:parameter name="rezolutie">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ecran">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbackgrounds" file="page-bck.tex">
- <cd:sequence>
- <cd:string value="seteazafundaluri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="sus"/>
- <cd:constant type="antet"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="subsol"/>
- <cd:constant type="subsol"/>
- <cd:constant type="pagina"/>
- <cd:constant type="foaie"/>
- <cd:constant type="paginastanga"/>
- <cd:constant type="paginadreapta"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="bordurastanga"/>
- <cd:constant type="marginestanga"/>
- <cd:constant type="cd:text"/>
- <cd:constant type="marginedreapta"/>
- <cd:constant type="borduradreapta"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="cd:repeat"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="buffer" type="environment" generated="yes" file="core-buf.tex">
- <cd:sequence>
- <cd:variable value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="buffer" type="environment" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="buffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="getbuffer">
- <cd:sequence>
- <cd:string value="adubuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="typebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="scriebuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definebuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definestebuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbuffer" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="seteazabuffer"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="paragraf">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="definestebloc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="nomoreblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="gatablocuri"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="hideblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="ascundeblocuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="keepblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="pastreazablocuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="tot"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="folosestebloc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="processblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="proceseazabloc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="bypassblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="saripesteblocuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="forceblocks">
- <cd:sequence>
- <cd:string value="forteazablocuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="selectblocks" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="selecteazablocuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="criteriu">
- <cd:constant type="tot"/>
- <cd:constant type="cd:section"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupblock" file="core-buf.tex">
- <cd:sequence>
- <cd:string value="seteazabloc"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intern">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="fisier">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="formula" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="formula"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="mathematics" file="supp-mat.tex">
- <cd:sequence>
- <cd:string value="matematica"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="puneformula"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2" optional="yes"/>
- <cd:displaymath n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placesubformula" file="core-mat.tex">
- <cd:sequence>
- <cd:string value="punesubformula"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" optional="yes" list="yes"/>
- <cd:content n="2" optional="yes"/>
- <cd:displaymath n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placefloat" generated="yes" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="pune"/>
- <cd:variable value="obiectmobil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="aici" default="yes"/>
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- <cd:constant type="instanga"/>
- <cd:constant type="indreapta"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="margine"/>
- <cd:constant type="marginestanga"/>
- <cd:constant type="marginedreapta"/>
- <cd:constant type="bordurastanga"/>
- <cd:constant type="borduradreapta"/>
- <cd:constant type="innermargin"/>
- <cd:constant type="outermargin"/>
- <cd:constant type="inneredge"/>
- <cd:constant type="outeredge"/>
- <cd:constant type="intern"/>
- <cd:constant type="extern"/>
- <cd:constant type="linie"/>
- <cd:constant type="inalt"/>
- <cd:constant type="jos"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="pagina"/>
- <cd:constant type="paginastanga"/>
- <cd:constant type="paginadreapta"/>
- <cd:constant type="opus"/>
- <cd:constant type="totdeauna"/>
- <cd:constant type="auto"/>
- <cd:constant type="fortat"/>
- <cd:constant type="inalt"/>
- <cd:constant type="reset"/>
- <cd:constant type="linie"/>
- <cd:constant type="inaltime"/>
- <cd:constant type="adancime"/>
- <cd:constant type="split"/>
- <cd:constant type="90"/>
- <cd:constant type="180"/>
- <cd:constant type="270"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes" list="yes"/>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="reservefloat" generated="yes">
- <cd:sequence>
- <cd:string value="rezervat"/>
- <cd:variable value="obiectmobil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="frame">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- </cd:assignments>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:reference n="3" optional="yes" list="yes"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="definestefloat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:singular"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:plural"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfloat" file="page-flt.tex">
- <cd:sequence>
- <cd:string value="seteazafloat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltimemaxima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latimemaxima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="latimeminima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="implicit">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="marginipagina">
- <cd:constant type="cd:list"/>
- </cd:parameter>
- <cd:parameter name="distantamarginestanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distantamarginedreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="centru"/>
- <cd:constant type="dreapta"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="floattext" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="obiectmobil"/>
- <cd:string value="text"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="inalt"/>
- <cd:constant type="centru"/>
- <cd:constant type="jos"/>
- <cd:constant type="offset"/>
- <cd:constant type="inalt"/>
- </cd:keywords>
- <cd:reference n="2" optional="yes"/>
- <cd:content n="3"/>
- <cd:content n="4"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="placelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="completelistoffloats" generated="yes">
- <cd:sequence>
- <cd:string value="completelistof"/>
- <cd:variable value="floats"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="referral" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="referit"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="bet">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ken">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="dat">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="van">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="aan">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="ref">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="selectpaper">
- <cd:sequence>
- <cd:string value="selecteazahartie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="familie">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="couplepaper">
- <cd:sequence>
- <cd:string value="hartiedubla"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="chem" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="chem"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fraction" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="fractie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="periods" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="puncte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="items">
- <cd:sequence>
- <cd:string value="element"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="seteazaelemente" n="1"/>
- </cd:assignments>
- <cd:content n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupitems" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="seteazaelemente"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="inmargine"/>
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- </cd:parameter>
- <cd:parameter name="simbol">
- <cd:constant type="1"/>
- <cd:constant type="2"/>
- <cd:constant type="..."/>
- <cd:constant type="n"/>
- <cd:constant type="a"/>
- <cd:constant type="..."/>
- <cd:constant type="cd:text"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- <cd:constant type="necunoscut"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quotation" type="environment" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="centru" default="yes"/>
- <cd:constant type="dreapta"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quotation" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="citat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="quote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="minicitat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupquote" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="seteazaminicitat"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="cd:text"/>
- <cd:constant type="margine"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="definesteparagraf"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="rigla">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="ajustat"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intern">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="toleranta">
- <cd:constant type="foartestrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="foartetolerant"/>
- <cd:constant type="dilatat"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="paragraph" generated="yes">
- <cd:sequence>
- <cd:variable value="paragraf"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="paragraph" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="paragraf"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupparagraphs" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="seteazaparagrafe"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:number"/>
- <cd:constant type="fiecare"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="toleranta">
- <cd:constant type="foartestrict"/>
- <cd:constant type="strict"/>
- <cd:constant type="tolerant"/>
- <cd:constant type="foartetolerant"/>
- <cd:constant type="dilatat"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intern">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="comanda">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="rigla">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptab" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="seteazatab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="exemplu">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stiltitlu">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tab">
- <cd:sequence>
- <cd:string value="tab"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:nothing n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="document" type="environment">
- <cd:sequence>
- <cd:string value="document"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="labels">
- <cd:sequence>
- <cd:string value="etichete"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="definestetabulatori"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tabulate" type="environment" generated="yes">
- <cd:sequence>
- <cd:variable value="tabulate"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="seteazafiguriexterne" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptabulate" file="core-tbl.tex">
- <cd:sequence>
- <cd:string value="seteazatabulatori"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="unitate">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="aliniat">
- <cd:resolve name="indenting"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intern">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="EQ">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="culoarerigla">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="grosimerigla">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="blank"/>
- <cd:constant type="grila"/>
- <cd:constant type="adancime"/>
- <cd:constant type="cd:dimension"/>
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="fonttext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="rigla">
- <cd:constant type="normal"/>
- <cd:constant type="linie"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuptables" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="seteazatabele"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="distanta">
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- <cd:parameter name="fonttext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="HL">
- <cd:constant type="cd:number"/>
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="VL">
- <cd:constant type="cd:number"/>
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:number"/>
- <cd:constant type="strut"/>
- </cd:parameter>
- <cd:parameter name="grosimerigla">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="culoarerigla">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="comenzi">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="fundal">
- <cd:constant type="ecran"/>
- <cd:constant type="culoare"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="ecranfundal">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="culoarefundal">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="fonttext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="table" type="environment">
- <cd:sequence>
- <cd:string value="table"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tables" type="environment">
- <cd:sequence>
- <cd:string value="tables"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetabletemplate" file="core-tab.tex">
- <cd:sequence>
- <cd:string value="definestesablontabel"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfiles" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="folosestefisiereexterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="fonttext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- <cd:parameter name="fisier">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfile" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="folosestefisierextern"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="4" list="yes">
- <cd:parameter name="fonttext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="folosestefiguraexterna"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes">
- <cd:constant type="cd:name"/> <!-- parent -->
- </cd:keywords>
- <cd:assignments n="4" optional="yes" list="yes">
- <cd:inherit name="seteazafiguriexterne" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="externalfigure" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="figuraexterna"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="seteazafiguriexterne" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="seteazafiguriexterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1">
- <cd:parameter name="scala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yscala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="yscala">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="max"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- </cd:parameter>
- <cd:parameter name="factorw">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="broad"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="hfactor">
- <cd:constant type="cd:number"/>
- <cd:constant type="max"/>
- <cd:constant type="broad"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="frame">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="preset">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="display">
- <cd:constant type="cd:file"/>
- </cd:parameter>
- <cd:parameter name="previzualizare">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="repeta">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="obiect">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="type">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="metoda">
- <cd:constant type="eps"/>
- <cd:constant type="mps"/>
- <cd:constant type="pdf"/>
- <cd:constant type="tif"/>
- <cd:constant type="png"/>
- <cd:constant type="jpg"/>
- <cd:constant type="mov"/>
- <cd:constant type="cd:tex"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="incadrat"/>
- <cd:constant type="gol"/>
- <cd:constant type="test"/>
- </cd:parameter>
- <cd:parameter name="frames">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="ymax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="xmax">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="director">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="local"/>
- <cd:constant type="global"/>
- <cd:constant type="implicit"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="latimemaxima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltimemaxima">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="conversie">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="prefix">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="interactiune">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- <!-- more will follow -->
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showexternalfigures" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="afiseazafiguriexterne"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="alternativ">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternalsoundtrack" file="core-fig.tex">
- <cd:sequence>
- <cd:string value="folosestemuzicaexterna"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="name" file="syst-gen.tex">
- <cd:sequence>
- <cd:string value="name"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="legend" type="environment">
- <cd:sequence>
- <cd:string value="legend"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="doi"/>
- </cd:keywords>
- <cd:tex n="2" command="leg"/>
- <cd:nothing n="3"/>
- <cd:nothing n="4" separator="backslash"/>
- <cd:nothing n="5" separator="backslash"/>
- <cd:tex n="6" separator="backslash" command="leg"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fact" type="environment">
- <cd:sequence>
- <cd:string value="fact"/>
- </cd:sequence>
- <cd:arguments>
- <cd:tex n="1" command="fact"/>
- <cd:nothing n="2"/>
- <cd:nothing n="3" separator="backslash"/>
- <cd:nothing n="4" separator="backslash"/>
- <cd:tex n="5" separator="backslash" command="fact"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="rotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="roteste"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="seteazarotare" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuprotate" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="seteazarotare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="rotatie">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="normal"/>
- <cd:constant type="inalt"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="broad"/>
- <cd:constant type="adancime"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mirror" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="reflexie"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="scale" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="scala"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:parameter name="sx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupcombinations" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="seteazacombinari"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="sus"/>
- <cd:constant type="centru"/>
- <cd:constant type="subsol"/>
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="combination" type="environment">
- <cd:sequence>
- <cd:string value="combination"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:matrix"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placesidebyside" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="punefatainfata"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placeontopofeachother" file="core-mis.tex">
- <cd:sequence>
- <cd:string value="punedeasuprafiecareia"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overlay" type="environment">
- <cd:sequence>
- <cd:string value="overlay"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="overview" type="environment">
- <cd:sequence>
- <cd:string value="overview"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionscreen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seteazaecraninteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="max"/>
- </cd:parameter>
- <cd:parameter name="spatiuspate">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="spatiusus">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetoriz">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="veroffset">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="max"/>
- <cd:constant type="ajustat"/>
- <cd:constant type="douafete"/>
- <cd:constant type="ofata"/>
- <cd:constant type="auto"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="semncarte"/>
- </cd:parameter>
- <cd:parameter name="intarziere">
- <cd:constant type="cd:number"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="screen" file="core-int.tex">
- <cd:sequence>
- <cd:string value="ecran"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setuppagetransitions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seteazatranzitiepagina"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="reset"/>
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteraction" file="core-nav.tex">
- <cd:sequence>
- <cd:string value="seteazainteractiunea"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="meniu">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- <cd:parameter name="pagina">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="click">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="split">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="display">
- <cd:constant type="nou"/>
- </cd:parameter>
- <cd:parameter name="actiunedeschidere">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="actiuneinchidere">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="actiunedeschiderepagina">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="actiuneinchiderepagina">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="calculeaza">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="strut">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="culoarecontrast">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="setsimbol">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titlu">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="subtitlu">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="autor">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="data">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="keyword">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <!-- maybe this will move elsewhere -->
- <cd:parameter name="fieldlayer">
- <cd:constant type="auto"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seteazameniuinteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="mijloc">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- <cd:constant type="niciunul"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="culoarecontrast">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="overlay"/>
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="aceeasipagina">
- <cd:constant type="da"/>
- <cd:constant type="gol"/>
- <cd:constant type="nu"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="referintanecunoscuta">
- <cd:constant type="da"/>
- <cd:constant type="gol"/>
- <cd:constant type="nu"/>
- <cd:constant type="niciunul"/>
- </cd:parameter>
- <cd:parameter name="offsetstanga">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetdreapta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetsus">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="offsetjos">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="pozitie">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat" n="2"/> <!-- maybe not all parameters from framed -->
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineinteractionmenu" variant="1" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definestemeniuinteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="seteazameniuinteractiune" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineinteractionmenu" variant="2" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definestemeniuinteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="seteazameniuinteractiune" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionmenu" type="environment">
- <cd:sequence>
- <cd:string value="meniuinteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="disableinteractionmenu" file="core-int.tex">
- <cd:sequence>
- <cd:string value="dezactiveazameniuinteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="sus"/>
- <cd:constant type="subsol"/>
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useexternaldocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="folosestedocumentextern"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="fisier"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="useURL" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="folosesteURL"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="fisier"/>
- </cd:keywords>
- <cd:keywords n="4">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="coupledocument" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="cupleazadocument"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="fisier"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="from" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="din"/>
- </cd:sequence>
- <cd:arguments>
- <cd:reference n="1" interactive="exclusive"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionbar">
- <cd:sequence>
- <cd:string value="barainteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:inherit name="seteazabarainteractiune" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="interactionbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="butoaneinteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="seteazabarainteractiune" n="1"/>
- </cd:assignments>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupinteractionbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seteazabarainteractiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="alternativ">
- <cd:constant type="a"/>
- <cd:constant type="b"/>
- <cd:constant type="c"/>
- <cd:constant type="d"/>
- <cd:constant type="e"/>
- <cd:constant type="f"/>
- <cd:constant type="g"/>
- </cd:parameter>
- <cd:parameter name="simbol">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="inaltime"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="inaltime"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="pas">
- <cd:constant type="cd:number"/>
- <cd:constant type="mic"/>
- <cd:constant type="mediu"/>
- <cd:constant type="mare"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synchronize" file="core-int.tex">
- <cd:sequence>
- <cd:string value="sincronizeaza"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="synchronization" type="environment">
- <cd:sequence>
- <cd:string value="synchronization"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupsynchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="setarebarasincronizare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="alternativ">
- <cd:constant type="pagina"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- <cd:constant type="inaltime"/>
- <cd:constant type="ajustat"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="synchronizationbar" file="core-int.tex">
- <cd:sequence>
- <cd:string value="barasincronizare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="alternativ">
- <cd:constant type="pagina"/>
- <cd:constant type="local"/>
- </cd:parameter>
- <cd:inherit name="setarebarasincronizare" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupsynchronization" file="core-int.tex">
- <cd:sequence>
- <cd:string value="setaresincronizare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definesteprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupprofiles" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seteazaprofile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="optiune">
- <cd:constant type="test"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="profile" type="environment">
- <cd:sequence>
- <cd:string value="profile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followprofile" file="core-int.tex">
- <cd:sequence>
- <cd:string value="urmeazaprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placebookmarks" file="core-int.tex">
- <cd:sequence>
- <cd:string value="plaseazasemnecarte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- <cd:constant type="tot"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:parameter name="fortat">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="bookmark" file="core-int.tex">
- <cd:sequence>
- <cd:string value="semncarte"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="version" type="environment">
- <cd:sequence>
- <cd:string value="versiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupversions" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seteazaversiuni"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="numar">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="markversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="marcheazaversiune"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="selectversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="selecteazaversiune"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="defineversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="definesteversiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:number"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="urmeazaversiune"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="followprofileversion" file="core-int.tex">
- <cd:sequence>
- <cd:string value="urmeazaversiuneprofil"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="defineprogram" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="definesteprogram"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupprograms" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="seteazaprograme"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" list="yes">
- <cd:parameter name="director">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="program" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="program"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="figure" type="environment">
- <cd:sequence>
- <cd:string value="figure"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" interactive="exclusive">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="frame">
- <cd:constant type="on"/>
- <cd:constant type="dezactivat"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- referring*figure skipped -->
-
- <!-- marking*figure skipped -->
-
- <!-- remark skipped -->
-
- <cd:command name="goto" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="dute"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:content n="2" interactive="exclusive"/>
- <cd:reference n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="gotobox" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="dutebox"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1" interactive="exclusive"/>
- <cd:reference n="2" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="button" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="buton"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" interactive="exclusive" optional="yes" list="yes">
- <cd:inherit name="seteazabutoane" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- <cd:reference n="3" list="yes"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupbuttons" file="core-ref.tex">
- <cd:sequence>
- <cd:string value="seteazabutoane"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- menubutton skipped -->
-
- <cd:command name="setupcomment" file="core-int.tex">
- <cd:sequence>
- <cd:string value="seteazacomentariu"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="titlu">
- <cd:constant type="cd:text"/>
- </cd:parameter>
- <cd:parameter name="spatiu">
- <cd:constant type="da"/>
- <cd:constant type="nu"/>
- </cd:parameter>
- <cd:parameter name="simbol">
- <cd:constant type="normal"/>
- <cd:constant type="Nou"/>
- <cd:constant type="Balon"/>
- <cd:constant type="Adaugare"/>
- <cd:constant type="Ajutor"/>
- <cd:constant type="Paragraf"/>
- <cd:constant type="Cheie"/>
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="max"/>
- <cd:constant type="buffer"/>
- </cd:parameter>
- <cd:parameter name="margine">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comment" type="environment">
- <cd:sequence>
- <cd:string value="comment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="seteazacomentariu" n="1"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="comment">
- <cd:sequence>
- <cd:string value="comment"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2" optional="yes" list="yes">
- <cd:inherit name="seteazacomentariu" n="1"/>
- </cd:assignments>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definestecamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1"> <!-- name -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2"> <!-- type -->
- <cd:constant type="text"/>
- <cd:constant type="linie"/> <!-- equal to text -->
- <cd:constant type="push"/>
- <cd:constant type="check"/>
- <cd:constant type="radio"/>
- <cd:constant type="combo"/>
- <cd:constant type="choice"/> <!-- equal to combo -->
- <cd:constant type="popup"/> <!-- equal to combo -->
- </cd:keywords>
- <cd:keywords n="3"> <!-- group -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4" list="yes"> <!-- optional for text? -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes"> <!-- default -->
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definesubfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definestesubcamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="copyfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="copiazacamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="clonefield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="cloneazacamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="field" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="camp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fitfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="potrivestecamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fillinfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="campumplere"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="tooltip" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="tooltip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes">
- <cd:constant type="stanga"/>
- <cd:constant type="dreapta"/>
- <cd:constant type="centru"/>
- </cd:keywords>
- <cd:content n="2"/>
- <cd:content n="3"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="showfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="afiseazacampuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="logfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="logcampuri"/>
- </cd:sequence>
- </cd:command>
-
- <cd:command name="setupfield" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="seteazacamp"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="eticheta"/>
- <cd:constant type="orizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="incadrat"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="seteazacampuri" n="2"/>
- </cd:assignments>
- <cd:assignments n="4" list="yes"> </cd:assignments>
- <cd:assignments n="5" list="yes"> </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfields" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="seteazacampuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes"> <!-- TODO: if it's reset, only a single argument, no list -->
- <cd:constant type="reset"/>
- <cd:constant type="eticheta"/>
- <cd:constant type="orizontal"/>
- <cd:constant type="vertical"/>
- <cd:constant type="incadrat"/>
- </cd:keywords>
- <cd:assignments n="2" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inainte">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="dupa">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="culoare">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="stil">
- <cd:resolve name="style"/>
- </cd:parameter>
- <cd:parameter name="aliniere">
- <cd:resolve name="align"/>
- </cd:parameter>
- <cd:parameter name="optiune">
- <cd:constant type="readonly"/>
- <cd:constant type="obligatoriu"/>
- <cd:constant type="protejat"/>
- <cd:constant type="sortat"/>
- <cd:constant type="nedisponibil"/>
- <cd:constant type="ascuns"/>
- <cd:constant type="tiparibil"/>
- </cd:parameter>
- <cd:parameter name="clickintru">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="clickies">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="regiuneintrare">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="regiuneiesire">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="dupatasta">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="format">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="verifica">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="calculeaza">
- <cd:constant type="cd:reference"/>
- </cd:parameter>
- <cd:parameter name="offsetcamp">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="culoareframecamp">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="culoarefundalcamp">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:inherit name="seteazainconjurat" n="2"/>
- </cd:assignments>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="seteazacampuri" n="2"/>
- </cd:assignments>
- <cd:assignments n="4" list="yes">
- <cd:inherit name="seteazacampuri" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupforms" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="seteazaformulare"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="metoda">
- <cd:constant type="HTML"/>
- <cd:constant type="FDF"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="definestestivacampuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" list="yes">
- <cd:inherit name="seteazacampuri" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="fieldstack" file="core-fld.tex">
- <cd:sequence>
- <cd:string value="stivacampuri"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes" list="yes">
- <cd:inherit name="seteazacampuri" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="clip" file="core-trf.tex">
- <cd:sequence>
- <cd:string value="clip"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" optional="yes" list="yes">
- <cd:inherit name="seteazaclipping" n="1"/>
- </cd:assignments>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupclipping" file="core-trf.tex">
- <cd:sequence>
- <cd:string value="seteazaclipping"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="stare">
- <cd:constant type="start"/>
- <cd:constant type="stop"/>
- </cd:parameter>
- <cd:parameter name="n">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="nx">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="ny">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="x">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="y">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="sx">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="sy">
- <cd:constant type="cd:number" default="1"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="hoffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="voffset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="offset">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="offsetstanga">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="offsetdreapta">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="offsetsus">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="offsetjos">
- <cd:constant type="cd:dimension" default="0pt"/>
- </cd:parameter>
- <cd:parameter name="mp">
- <cd:constant type="cd:name" default=""/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="placelegend">
- <cd:sequence>
- <cd:string value="punelegenda"/>
- </cd:sequence>
- <cd:arguments>
- <cd:content n="1"/>
- <cd:content n="2"/>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setuplegend">
- <cd:sequence>
- <cd:string value="seteazalegenda"/>
- </cd:sequence>
- <cd:arguments>
- <cd:assignments n="1" list="yes">
- <cd:parameter name="n">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="distanta">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="intre">
- <cd:constant type="cd:command"/>
- </cd:parameter>
- <cd:parameter name="latime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="inaltime">
- <cd:constant type="cd:dimension"/>
- </cd:parameter>
- <cd:parameter name="locatie">
- <cd:constant type="dreapta"/>
- <cd:constant type="subsol"/>
- </cd:parameter>
- <cd:parameter name="fonttext">
- <cd:resolve name="bodyfont"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupstrut" file="core-spa.tex">
- <cd:sequence>
- <cd:string value="seteazastrut"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="da" default="yes"/>
- <cd:constant type="nu"/>
- <cd:constant type="cap"/>
- <cd:constant type="cd:text"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usetypescriptfile" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="usetypescriptfile"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:file"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="usetypescript" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="usetypescript"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="3" optional="yes" list="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definetypeface" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="definetypeface"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="rm"/>
- <cd:constant type="ss"/>
- <cd:constant type="tt"/>
- <cd:constant type="mm"/>
- <cd:constant type="hw"/>
- <cd:constant type="cg"/>
- </cd:keywords>
- <cd:keywords n="3">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="4">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="5" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="6" optional="yes">
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="rscale">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="encoding">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="text">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefontfeature" file="type-ini.tex">
- <cd:sequence>
- <cd:string value="definefontfeature"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2" optional="yes">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="no">
- <cd:parameter name="compose">
- <cd:constant type="nu" default="yes"/>
- <cd:constant type="da"/>
- </cd:parameter>
- <cd:parameter name="mode">
- <cd:constant type="node"/>
- <cd:constant type="base" default="yes"/>
- </cd:parameter>
- <cd:parameter name="tlig">
- <cd:constant type="nu" default="yes"/>
- <cd:constant type="da"/>
- </cd:parameter>
- <cd:parameter name="trep">
- <cd:constant type="nu" default="yes"/>
- <cd:constant type="da"/>
- </cd:parameter>
- <cd:parameter name="script">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="language">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="..tag.."> <!-- can't use &gt; here, \showsetup gives an error -->
- <cd:constant type="nu" default="yes"/>
- <cd:constant type="da"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definefonthandling" file="hand-ini.mkii">
- <cd:sequence>
- <cd:string value="definefonthandling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name" list="yes"/>
- </cd:keywords>
- <cd:assignments n="3">
- <cd:parameter name="type">
- <cd:constant type="suspendat" default="yes"/>
- <cd:constant type="hz"/>
- <cd:constant type="spatiere"/>
- <cd:constant type="tag"/>
- </cd:parameter>
- <cd:parameter name="dreapta">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="stanga">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="factor">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="min">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="max">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- <cd:parameter name="pas">
- <cd:constant type="cd:number"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfonthandling" file="hand-ini.mkii">
- <cd:sequence>
- <cd:string value="setupfonthandling"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:inherit name="definefonthandling" n="2"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <!-- mkii:
-
- <cd:command name="definefontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definestesinonimfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="encoding">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="handling">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="mapping">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- -->
-
- <cd:command name="definefontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="definestesinonimfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:text"/>
- </cd:keywords>
- <cd:assignments n="3" optional="yes">
- <cd:parameter name="fallbacks">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="features">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- <cd:parameter name="goodies">
- <cd:constant type="cd:name"/>
- </cd:parameter>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="setupfontsynonym" file="font-ini.tex">
- <cd:sequence>
- <cd:string value="setupfontsynonym"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:name"/>
- </cd:keywords>
- <cd:assignments n="2">
- <cd:inherit name="definestesinonimfont" n="3"/>
- </cd:assignments>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="mapfontsize" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="mapfontsize"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- <cd:keywords n="2">
- <cd:constant type="cd:dimension"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
- <cd:command name="definedfont" file="font-ini.tex" category="fonts">
- <cd:sequence>
- <cd:string value="definedfont"/>
- </cd:sequence>
- <cd:arguments>
- <cd:keywords n="1">
- <cd:inherit name="definestefont" n="2"/>
- </cd:keywords>
- </cd:arguments>
- </cd:command>
-
-</cd:interface>
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-cs.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-cs.xml
deleted file mode 100644
index 3006aa9b0bc..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-cs.xml
+++ /dev/null
@@ -1,2237 +0,0 @@
-<?xml version='1.0'?>
-
-<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='cs' version='2008.10.21 19:42'>
-
- <!-- definitions for interface variables for language cs -->
-
- <cd:variables>
- <cd:variable name='Addition' value='Pridavek'/>
- <cd:variable name='Alphabetic' value='Alphabetic'/>
- <cd:variable name='Balloon' value='Bublinka'/>
- <cd:variable name='Cap' value='Kap'/>
- <cd:variable name='Capital' value='Kapitalky'/>
- <cd:variable name='Character' value='Pismeno'/>
- <cd:variable name='Characters' value='Pismena'/>
- <cd:variable name='CloseDocument' value='ZavritDokument'/>
- <cd:variable name='ExitViewer' value='UkoncitProhlizec'/>
- <cd:variable name='FirstPage' value='PrvniStrana'/>
- <cd:variable name='FitHeight' value='FitHeight'/>
- <cd:variable name='FitWidth' value='FitWidth'/>
- <cd:variable name='GotoPage' value='JdiNaStranku'/>
- <cd:variable name='Greek' value='Recky'/>
- <cd:variable name='Help' value='Napoveda'/>
- <cd:variable name='HideField' value='SkryjPole'/>
- <cd:variable name='HideLayer' value='HideLayer'/>
- <cd:variable name='Key' value='Klavesa'/>
- <cd:variable name='LastPage' value='PosledniStrana'/>
- <cd:variable name='LoadForm' value='NacistFormular'/>
- <cd:variable name='MONTH' value='MESIC'/>
- <cd:variable name='New' value='Novy'/>
- <cd:variable name='NextJump' value='NasledujiciSkok'/>
- <cd:variable name='NextPage' value='DalsiStrana'/>
- <cd:variable name='Numbers' value='Cisla'/>
- <cd:variable name='OpenNamedDocument' value='OpenNamedDocument'/>
- <cd:variable name='Ordinal' value='Ordinal'/>
- <cd:variable name='Paragraph' value='Odstavec'/>
- <cd:variable name='PauseMovie' value='PozastavitFilm'/>
- <cd:variable name='PauseRendering' value='PauseRendering'/>
- <cd:variable name='PauseSound' value='PozastavitZvuk'/>
- <cd:variable name='PreviousJump' value='PredchoziSkok'/>
- <cd:variable name='PreviousPage' value='PredchoziStrana'/>
- <cd:variable name='PrintDocument' value='VytisknoutDokument'/>
- <cd:variable name='Query' value='Query'/>
- <cd:variable name='QueryAgain' value='QueryAgain'/>
- <cd:variable name='ResetForm' value='ResetFormulare'/>
- <cd:variable name='ResumeMovie' value='PokracovatFilm'/>
- <cd:variable name='ResumeRendering' value='ResumeRendering'/>
- <cd:variable name='ResumeSound' value='PokracovatZvuk'/>
- <cd:variable name='Romannumerals' value='Rimskecislice'/>
- <cd:variable name='SaveDocument' value='UlozitDokument'/>
- <cd:variable name='SaveForm' value='UlozitFormular'/>
- <cd:variable name='SaveNamedDocument' value='SaveNamedDocument'/>
- <cd:variable name='SearchAgain' value='HledatZnovu'/>
- <cd:variable name='SearchDocument' value='ProhledatDokument'/>
- <cd:variable name='ShowBookmarks' value='UkazZalozky'/>
- <cd:variable name='ShowField' value='UkazPole'/>
- <cd:variable name='ShowThumbs' value='UkazNahledy'/>
- <cd:variable name='StartMovie' value='SpustitFilm'/>
- <cd:variable name='StartRendering' value='StartRendering'/>
- <cd:variable name='StartSound' value='StartZvuk'/>
- <cd:variable name='StopMovie' value='ZastavitFilm'/>
- <cd:variable name='StopRendering' value='StopRendering'/>
- <cd:variable name='StopSound' value='StopZvuk'/>
- <cd:variable name='SubmitForm' value='PoslatFormular'/>
- <cd:variable name='ToggleLayer' value='ToggleLayer'/>
- <cd:variable name='ToggleViewer' value='ZmenitProhlizec'/>
- <cd:variable name='URL' value='URL'/>
- <cd:variable name='VideLayer' value='VideLayer'/>
- <cd:variable name='ViewerHelp' value='NapovedaProhlizece'/>
- <cd:variable name='WEEKDAY' value='VSEDNIDEN'/>
- <cd:variable name='WORD' value='SLOVO'/>
- <cd:variable name='WORDS' value='SLOVA'/>
- <cd:variable name='Word' value='Slovo'/>
- <cd:variable name='Words' value='Slova'/>
- <cd:variable name='abbreviation' value='zkratka'/>
- <cd:variable name='abbreviations' value='zkratky'/>
- <cd:variable name='absolute' value='absolutni'/>
- <cd:variable name='action' value='akce'/>
- <cd:variable name='after' value='po'/>
- <cd:variable name='all' value='vse'/>
- <cd:variable name='alphabetic' value='alphabetic'/>
- <cd:variable name='always' value='vzdy'/>
- <cd:variable name='anchor' value='anchor'/>
- <cd:variable name='and' value='and'/>
- <cd:variable name='answerarea' value='answerarea'/>
- <cd:variable name='appendices' value='dodatky'/>
- <cd:variable name='appendix' value='dodatek'/>
- <cd:variable name='april' value='duben'/>
- <cd:variable name='aside' value='aside'/>
- <cd:variable name='atleftmargin' value='atleftmargin'/>
- <cd:variable name='atmargin' value='naokraji'/>
- <cd:variable name='atpage' value='nastrance'/>
- <cd:variable name='atrightmargin' value='atrightmargin'/>
- <cd:variable name='attachment' value='attachment'/>
- <cd:variable name='august' value='srpen'/>
- <cd:variable name='author' value='autor'/>
- <cd:variable name='auto' value='auto'/>
- <cd:variable name='autointro' value='autouvod'/>
- <cd:variable name='autopunctuation' value='autopunctuation'/>
- <cd:variable name='back' value='zpet'/>
- <cd:variable name='background' value='pozadi'/>
- <cd:variable name='backmatter' value='epilogy'/>
- <cd:variable name='backpart' value='epilog'/>
- <cd:variable name='backspace' value='zpetnamezera'/>
- <cd:variable name='backward' value='zpet'/>
- <cd:variable name='bbl' value='bbl'/>
- <cd:variable name='before' value='pred'/>
- <cd:variable name='begin' value='begin'/>
- <cd:variable name='bib' value='bib'/>
- <cd:variable name='big' value='velke'/>
- <cd:variable name='bigbodyfont' value='bigbodyfont'/>
- <cd:variable name='bigger' value='bigger'/>
- <cd:variable name='bigpreference' value='vysokapriorita'/>
- <cd:variable name='blank' value='prazdny'/>
- <cd:variable name='block' value='block'/>
- <cd:variable name='blockquote' value='blockquote'/>
- <cd:variable name='bodymatter' value='hlavnicasti'/>
- <cd:variable name='bodypart' value='hlavnicast'/>
- <cd:variable name='bold' value='tucne'/>
- <cd:variable name='bolditalic' value='tucnekurzivni'/>
- <cd:variable name='boldslanted' value='tucnesklonene'/>
- <cd:variable name='bookmark' value='zalozka'/>
- <cd:variable name='both' value='obe'/>
- <cd:variable name='bothtext' value='bothtext'/>
- <cd:variable name='bottom' value='spodek'/>
- <cd:variable name='box' value='box'/>
- <cd:variable name='brief' value='brief'/>
- <cd:variable name='broad' value='siroky'/>
- <cd:variable name='buffer' value='buffer'/>
- <cd:variable name='by' value='skrz'/>
- <cd:variable name='calligraphic' value='kaligraficke'/>
- <cd:variable name='camel' value='camel'/>
- <cd:variable name='cap' value='kap'/>
- <cd:variable name='capital' value='kapitalky'/>
- <cd:variable name='category' value='category'/>
- <cd:variable name='cd:character' value='cd:character'/>
- <cd:variable name='cd:font' value='cd:font'/>
- <cd:variable name='center' value='center'/>
- <cd:variable name='centerlast' value='centerlast'/>
- <cd:variable name='chapter' value='kapitola'/>
- <cd:variable name='character' value='pismeno'/>
- <cd:variable name='characters' value='pismena'/>
- <cd:variable name='chemical' value='chemical'/>
- <cd:variable name='chemicals' value='chemicals'/>
- <cd:variable name='chemistry' value='chemistry'/>
- <cd:variable name='cite' value='cite'/>
- <cd:variable name='closed' value='closed'/>
- <cd:variable name='color' value='barevne'/>
- <cd:variable name='column' value='column'/>
- <cd:variable name='columns' value='sloupce'/>
- <cd:variable name='combination' value='combination'/>
- <cd:variable name='command' value='prikaz'/>
- <cd:variable name='commands' value='prikazy'/>
- <cd:variable name='comment' value='komentar'/>
- <cd:variable name='component' value='komponenta'/>
- <cd:variable name='compressseparator' value='compressseparator'/>
- <cd:variable name='compressstopper' value='compressstopper'/>
- <cd:variable name='concept' value='koncept'/>
- <cd:variable name='construction' value='construction'/>
- <cd:variable name='content' value='obsah'/>
- <cd:variable name='contents' value='obsah'/>
- <cd:variable name='continue' value='pokracovat'/>
- <cd:variable name='continued' value='continued'/>
- <cd:variable name='controls' value='controls'/>
- <cd:variable name='conversion' value='konverze'/>
- <cd:variable name='current' value='aktualni'/>
- <cd:variable name='cutspace' value='cutspace'/>
- <cd:variable name='dataset' value='dataset'/>
- <cd:variable name='date' value='datum'/>
- <cd:variable name='day' value='den'/>
- <cd:variable name='december' value='prosinec'/>
- <cd:variable name='default' value='implicitni'/>
- <cd:variable name='depth' value='podlehloubky'/>
- <cd:variable name='description' value='popis'/>
- <cd:variable name='disable' value='zablokovat'/>
- <cd:variable name='display' value='obrazovka'/>
- <cd:variable name='dot' value='tecka'/>
- <cd:variable name='doublesided' value='dvoustranny'/>
- <cd:variable name='down' value='down'/>
- <cd:variable name='each' value='kazdy'/>
- <cd:variable name='edge' value='hrana'/>
- <cd:variable name='effective' value='effective'/>
- <cd:variable name='eight' value='eight'/>
- <cd:variable name='embed' value='embed'/>
- <cd:variable name='empty' value='prazdne'/>
- <cd:variable name='enable' value='enable'/>
- <cd:variable name='end' value='end'/>
- <cd:variable name='endnote' value='endnote'/>
- <cd:variable name='enumeration' value='vycet'/>
- <cd:variable name='environment' value='prostredi'/>
- <cd:variable name='even' value='sude'/>
- <cd:variable name='export' value='export'/>
- <cd:variable name='external' value='externi'/>
- <cd:variable name='extremestretch' value='extremestretch'/>
- <cd:variable name='fact' value='fakt'/>
- <cd:variable name='fallback' value='fallback'/>
- <cd:variable name='february' value='unor'/>
- <cd:variable name='field' value='field'/>
- <cd:variable name='figure' value='obrazek'/>
- <cd:variable name='figures' value='obrazky'/>
- <cd:variable name='file' value='soubor'/>
- <cd:variable name='final' value='finalni'/>
- <cd:variable name='first' value='prvni'/>
- <cd:variable name='firstcolumn' value='firstcolumn'/>
- <cd:variable name='firstpage' value='prvnistranka'/>
- <cd:variable name='firstsubpage' value='prvnipodstranka'/>
- <cd:variable name='fit' value='prizpusobive'/>
- <cd:variable name='five' value='pet'/>
- <cd:variable name='fix' value='fixuj'/>
- <cd:variable name='fixed' value='fixne'/>
- <cd:variable name='flexible' value='prizpusobive'/>
- <cd:variable name='float' value='plvouciobjekt'/>
- <cd:variable name='flushinner' value='flushinner'/>
- <cd:variable name='flushleft' value='flushleft'/>
- <cd:variable name='flushouter' value='flushouter'/>
- <cd:variable name='flushright' value='flushright'/>
- <cd:variable name='followingpage' value='followingpage'/>
- <cd:variable name='font' value='font'/>
- <cd:variable name='footer' value='upati'/>
- <cd:variable name='footnote' value='poznamkapodcarou'/>
- <cd:variable name='force' value='sila'/>
- <cd:variable name='foreground' value='popredi'/>
- <cd:variable name='formula' value='rovnice'/>
- <cd:variable name='formulas' value='rovnice'/>
- <cd:variable name='forward' value='vpred'/>
- <cd:variable name='four' value='ctyri'/>
- <cd:variable name='fractions' value='fractions'/>
- <cd:variable name='frame' value='ramecek'/>
- <cd:variable name='framedtext' value='oramovanytext'/>
- <cd:variable name='friday' value='patek'/>
- <cd:variable name='frontmatter' value='prednicasti'/>
- <cd:variable name='frontpart' value='prednicast'/>
- <cd:variable name='fullhz' value='fullhz'/>
- <cd:variable name='global' value='globalne'/>
- <cd:variable name='graphic' value='graf'/>
- <cd:variable name='graphics' value='grafy'/>
- <cd:variable name='gray' value='seda'/>
- <cd:variable name='greek' value='recky'/>
- <cd:variable name='grid' value='mrizka'/>
- <cd:variable name='halfline' value='pulradku'/>
- <cd:variable name='handwritten' value='rukopisne'/>
- <cd:variable name='hang' value='zaveseni'/>
- <cd:variable name='hanging' value='visici'/>
- <cd:variable name='hangingboth' value='hangingboth'/>
- <cd:variable name='head' value='hlavicka'/>
- <cd:variable name='header' value='zahlavi'/>
- <cd:variable name='headintext' value='headintext'/>
- <cd:variable name='height' value='vyska'/>
- <cd:variable name='helptext' value='textnapovedy'/>
- <cd:variable name='hencefore' value='vyse'/>
- <cd:variable name='here' value='zde'/>
- <cd:variable name='hereafter' value='nize'/>
- <cd:variable name='hidden' value='skryte'/>
- <cd:variable name='hiddenbar' value='hiddenbar'/>
- <cd:variable name='hiding' value='skryt'/>
- <cd:variable name='high' value='vysoko'/>
- <cd:variable name='horizontal' value='horizontalne'/>
- <cd:variable name='hyphenated' value='hyphenated'/>
- <cd:variable name='hz' value='hz'/>
- <cd:variable name='inbetween' value='mezi'/>
- <cd:variable name='index' value='rejstrik'/>
- <cd:variable name='indices' value='rejstriky'/>
- <cd:variable name='inherit' value='inherit'/>
- <cd:variable name='ininner' value='ininner'/>
- <cd:variable name='ininneredge' value='ininneredge'/>
- <cd:variable name='ininnermargin' value='ininnermargin'/>
- <cd:variable name='inleft' value='ivlevo'/>
- <cd:variable name='inleftedge' value='nalevo'/>
- <cd:variable name='inleftmargin' value='nalevyokraj'/>
- <cd:variable name='inline' value='inline'/>
- <cd:variable name='inmargin' value='naokraji'/>
- <cd:variable name='inner' value='uvnitr'/>
- <cd:variable name='inneredge' value='inneredge'/>
- <cd:variable name='innermargin' value='innermargin'/>
- <cd:variable name='inother' value='inother'/>
- <cd:variable name='inouter' value='inouter'/>
- <cd:variable name='inouteredge' value='inouteredge'/>
- <cd:variable name='inoutermargin' value='inoutermargin'/>
- <cd:variable name='inright' value='ivpravo'/>
- <cd:variable name='inrightedge' value='napravo'/>
- <cd:variable name='inrightmargin' value='napravyokraj'/>
- <cd:variable name='integral' value='integral'/>
- <cd:variable name='interaction' value='interakce'/>
- <cd:variable name='interactionmenu' value='interaktivnimenu'/>
- <cd:variable name='interactive' value='interactive'/>
- <cd:variable name='intermezzi' value='intermezzi'/>
- <cd:variable name='intermezzo' value='intermezzo'/>
- <cd:variable name='intext' value='dotextu'/>
- <cd:variable name='intro' value='uvod'/>
- <cd:variable name='invertedshort' value='invertedshort'/>
- <cd:variable name='italic' value='kurziva'/>
- <cd:variable name='italicbold' value='kurzivnitucne'/>
- <cd:variable name='item' value='polozka'/>
- <cd:variable name='itemize' value='vycet'/>
- <cd:variable name='its' value='pol'/>
- <cd:variable name='january' value='leden'/>
- <cd:variable name='joinedup' value='spojeno'/>
- <cd:variable name='july' value='cervenec'/>
- <cd:variable name='june' value='cerven'/>
- <cd:variable name='keep' value='drzet'/>
- <cd:variable name='kerncharacters' value='kerncharacters'/>
- <cd:variable name='knockout' value='knockout'/>
- <cd:variable name='label' value='popisek'/>
- <cd:variable name='landscape' value='nasirku'/>
- <cd:variable name='last' value='posledni'/>
- <cd:variable name='lastcolumn' value='lastcolumn'/>
- <cd:variable name='lastpage' value='poslednistrana'/>
- <cd:variable name='lastpagenumber' value='lastpagenumber'/>
- <cd:variable name='lastsubpage' value='poslaednipodstranka'/>
- <cd:variable name='layer' value='layer'/>
- <cd:variable name='left' value='vlevo'/>
- <cd:variable name='leftedge' value='levahrana'/>
- <cd:variable name='lefthanging' value='lefthanging'/>
- <cd:variable name='leftmargin' value='levyokraj'/>
- <cd:variable name='leftpage' value='levastranka'/>
- <cd:variable name='lefttoright' value='lefttoright'/>
- <cd:variable name='legend' value='legenda'/>
- <cd:variable name='less' value='less'/>
- <cd:variable name='lesshyphenation' value='lesshyphenation'/>
- <cd:variable name='letterspacing' value='letterspacing'/>
- <cd:variable name='line' value='radek'/>
- <cd:variable name='linenote' value='linenote'/>
- <cd:variable name='lines' value='radky'/>
- <cd:variable name='linked' value='linked'/>
- <cd:variable name='list' value='seznam'/>
- <cd:variable name='local' value='lokalne'/>
- <cd:variable name='localenvironment' value='lokalnihoprostredi'/>
- <cd:variable name='logo' value='logo'/>
- <cd:variable name='logos' value='loga'/>
- <cd:variable name='lohi' value='nivy'/>
- <cd:variable name='long' value='long'/>
- <cd:variable name='loose' value='uvolnene'/>
- <cd:variable name='low' value='nizko'/>
- <cd:variable name='ls' value='ls'/>
- <cd:variable name='makeup' value='zlom'/>
- <cd:variable name='mar' value='mar'/>
- <cd:variable name='march' value='brezen'/>
- <cd:variable name='margin' value='marginalie'/>
- <cd:variable name='marginedge' value='textovahrana'/>
- <cd:variable name='margintext' value='marginalnitext'/>
- <cd:variable name='margintitle' value='titulmarginalie'/>
- <cd:variable name='marking' value='znaceni'/>
- <cd:variable name='math' value='math'/>
- <cd:variable name='mathalignment' value='mathalignment'/>
- <cd:variable name='mathcases' value='mathcases'/>
- <cd:variable name='mathematics' value='mathematika'/>
- <cd:variable name='mathmatrix' value='mathmatrix'/>
- <cd:variable name='max' value='max'/>
- <cd:variable name='maxdepth' value='maxdepth'/>
- <cd:variable name='maxheight' value='maxheight'/>
- <cd:variable name='maxwidth' value='maxwidth'/>
- <cd:variable name='may' value='kveten'/>
- <cd:variable name='mediaeval' value='stredoveky'/>
- <cd:variable name='medium' value='stredni'/>
- <cd:variable name='middle' value='nastred'/>
- <cd:variable name='min' value='min'/>
- <cd:variable name='mindepth' value='mindepth'/>
- <cd:variable name='minheight' value='minvyska'/>
- <cd:variable name='minwidth' value='minsirka'/>
- <cd:variable name='mirrored' value='zrcadleno'/>
- <cd:variable name='mixed' value='mixed'/>
- <cd:variable name='monday' value='pondeli'/>
- <cd:variable name='mono' value='mono'/>
- <cd:variable name='monobold' value='monotucne'/>
- <cd:variable name='mononormal' value='mononormal'/>
- <cd:variable name='month' value='mesic'/>
- <cd:variable name='more' value='more'/>
- <cd:variable name='morehyphenation' value='morehyphenation'/>
- <cd:variable name='name' value='jmeno'/>
- <cd:variable name='narrow' value='uzky'/>
- <cd:variable name='negative' value='negativ'/>
- <cd:variable name='never' value='nikdy'/>
- <cd:variable name='new' value='novy'/>
- <cd:variable name='next' value='dalsi'/>
- <cd:variable name='nextevenpage' value='dalsisudastranka'/>
- <cd:variable name='nextoddpage' value='dalsilichastranka'/>
- <cd:variable name='nextpage' value='dalsistranka'/>
- <cd:variable name='nextsubpage' value='dalsipodstranka'/>
- <cd:variable name='nine' value='nine'/>
- <cd:variable name='no' value='ne'/>
- <cd:variable name='nocheck' value='nocheck'/>
- <cd:variable name='nodepth' value='nodepth'/>
- <cd:variable name='nofit' value='nofit'/>
- <cd:variable name='nogrid' value='nogrid'/>
- <cd:variable name='noheight' value='noheight'/>
- <cd:variable name='nohz' value='nohz'/>
- <cd:variable name='noline' value='noline'/>
- <cd:variable name='nomarking' value='zadneznaceni'/>
- <cd:variable name='nomenubar' value='nomenubar'/>
- <cd:variable name='none' value='zadny'/>
- <cd:variable name='nonumber' value='nonumber'/>
- <cd:variable name='norepeat' value='norepeat'/>
- <cd:variable name='normal' value='normalni'/>
- <cd:variable name='normalshort' value='normalshort'/>
- <cd:variable name='nospacing' value='nospacing'/>
- <cd:variable name='nostopper' value='nostopper'/>
- <cd:variable name='not' value='ne'/>
- <cd:variable name='notation' value='notation'/>
- <cd:variable name='note' value='note'/>
- <cd:variable name='nothanging' value='nothanging'/>
- <cd:variable name='nothyphenated' value='nothyphenated'/>
- <cd:variable name='notjoinedup' value='notjoinedup'/>
- <cd:variable name='november' value='listopad'/>
- <cd:variable name='nowhere' value='nikde'/>
- <cd:variable name='nowhite' value='zadnabila'/>
- <cd:variable name='number' value='cislo'/>
- <cd:variable name='numbers' value='cisla'/>
- <cd:variable name='october' value='rijen'/>
- <cd:variable name='odd' value='liche'/>
- <cd:variable name='off' value='vyp'/>
- <cd:variable name='offset' value='offset'/>
- <cd:variable name='old' value='old'/>
- <cd:variable name='oldstyle' value='oldstyle'/>
- <cd:variable name='on' value='zap'/>
- <cd:variable name='one' value='jedna'/>
- <cd:variable name='opposite' value='naproti'/>
- <cd:variable name='ordinal' value='ordinal'/>
- <cd:variable name='outer' value='vnejsi'/>
- <cd:variable name='outeredge' value='outeredge'/>
- <cd:variable name='outermargin' value='outermargin'/>
- <cd:variable name='overbar' value='nadtrzeno'/>
- <cd:variable name='overbars' value='nadtrzeni'/>
- <cd:variable name='overlay' value='prekryv'/>
- <cd:variable name='overprint' value='overprint'/>
- <cd:variable name='overstrike' value='preskrtnuto'/>
- <cd:variable name='overstrikes' value='preskrtnuti'/>
- <cd:variable name='packed' value='zhustene'/>
- <cd:variable name='page' value='stranka'/>
- <cd:variable name='pagecomment' value='komentarstranky'/>
- <cd:variable name='pagenumber' value='cislostranky'/>
- <cd:variable name='paper' value='papir'/>
- <cd:variable name='paragraph' value='odstavec'/>
- <cd:variable name='part' value='cast'/>
- <cd:variable name='positive' value='positiv'/>
- <cd:variable name='postponing' value='odlozit'/>
- <cd:variable name='postscript' value='postscript'/>
- <cd:variable name='precedingpage' value='precedingpage'/>
- <cd:variable name='preference' value='nastaveni'/>
- <cd:variable name='preview' value='nahled'/>
- <cd:variable name='previous' value='predchozi'/>
- <cd:variable name='previousevenpage' value='predchozisudastranka'/>
- <cd:variable name='previousoddpage' value='predchozilichastranka'/>
- <cd:variable name='previouspage' value='predchozistranka'/>
- <cd:variable name='previoussubpage' value='predchozipodstranka'/>
- <cd:variable name='print' value='print'/>
- <cd:variable name='printable' value='tisknutelne'/>
- <cd:variable name='process' value='process'/>
- <cd:variable name='product' value='produkt'/>
- <cd:variable name='program' value='program'/>
- <cd:variable name='project' value='projekt'/>
- <cd:variable name='protected' value='chranene'/>
- <cd:variable name='quadruple' value='ctyrnasobny'/>
- <cd:variable name='quarterline' value='quarterline'/>
- <cd:variable name='quotation' value='citace'/>
- <cd:variable name='quote' value='citovat'/>
- <cd:variable name='ran' value='rozsah'/>
- <cd:variable name='random' value='nahodny'/>
- <cd:variable name='readonly' value='pouzeprocteni'/>
- <cd:variable name='rectangular' value='pravouhly'/>
- <cd:variable name='reference' value='odkaz'/>
- <cd:variable name='referral' value='znacka'/>
- <cd:variable name='region' value='region'/>
- <cd:variable name='register' value='rejstrik'/>
- <cd:variable name='regular' value='pravidelne'/>
- <cd:variable name='relative' value='relativni'/>
- <cd:variable name='repeat' value='opakovat'/>
- <cd:variable name='required' value='pozadovane'/>
- <cd:variable name='reset' value='reset'/>
- <cd:variable name='reverse' value='reverse'/>
- <cd:variable name='right' value='vpravo'/>
- <cd:variable name='rightedge' value='pravahrana'/>
- <cd:variable name='righthanging' value='righthanging'/>
- <cd:variable name='rightmargin' value='pravyokraj'/>
- <cd:variable name='rightpage' value='pravastranka'/>
- <cd:variable name='righttoleft' value='righttoleft'/>
- <cd:variable name='roman' value='antikva'/>
- <cd:variable name='romannumerals' value='rimskecislice'/>
- <cd:variable name='rotate' value='otoc'/>
- <cd:variable name='rotated' value='otoceno'/>
- <cd:variable name='round' value='zaobleny'/>
- <cd:variable name='row' value='row'/>
- <cd:variable name='rule' value='linka'/>
- <cd:variable name='samepage' value='stejnastranka'/>
- <cd:variable name='sans' value='sans'/>
- <cd:variable name='sansbold' value='sanstucne'/>
- <cd:variable name='sansnormal' value='sansnormal'/>
- <cd:variable name='sansserif' value='bezserifu'/>
- <cd:variable name='saturday' value='sobota'/>
- <cd:variable name='screen' value='rastr'/>
- <cd:variable name='section' value='sekce'/>
- <cd:variable name='sectionblockenvironment' value='sectionblockenvironment'/>
- <cd:variable name='sectionnumber' value='cislooddilu'/>
- <cd:variable name='see' value='viz'/>
- <cd:variable name='selectfont' value='selectfont'/>
- <cd:variable name='separator' value='separator'/>
- <cd:variable name='september' value='zari'/>
- <cd:variable name='serif' value='serif'/>
- <cd:variable name='serifbold' value='serifbold'/>
- <cd:variable name='serifnormal' value='serifnormal'/>
- <cd:variable name='serried' value='semknuto'/>
- <cd:variable name='setups' value='setups'/>
- <cd:variable name='seven' value='seven'/>
- <cd:variable name='sheet' value='sheet'/>
- <cd:variable name='shiftdown' value='shiftdown'/>
- <cd:variable name='shiftup' value='shiftup'/>
- <cd:variable name='short' value='short'/>
- <cd:variable name='simplefonts' value='simplefonts'/>
- <cd:variable name='simplelist' value='simplelist'/>
- <cd:variable name='singlesided' value='jednostranne'/>
- <cd:variable name='six' value='six'/>
- <cd:variable name='slanted' value='sklonene'/>
- <cd:variable name='slantedbold' value='sklonenetucne'/>
- <cd:variable name='small' value='male'/>
- <cd:variable name='smallbodyfont' value='smallbodyfont'/>
- <cd:variable name='smallbold' value='maletucne'/>
- <cd:variable name='smallbolditalic' value='maletucnekurzivni'/>
- <cd:variable name='smallboldslanted' value='maletucnesklonene'/>
- <cd:variable name='smallcaps' value='kapitalky'/>
- <cd:variable name='smaller' value='smaller'/>
- <cd:variable name='smallitalic' value='malekurzivni'/>
- <cd:variable name='smallitalicbold' value='malekurzivnitucne'/>
- <cd:variable name='smallnormal' value='malenormalni'/>
- <cd:variable name='smallslanted' value='malesklonene'/>
- <cd:variable name='smallslantedbold' value='malesklonenetucne'/>
- <cd:variable name='smalltype' value='maletype'/>
- <cd:variable name='somewhere' value='nekde'/>
- <cd:variable name='sorted' value='tridene'/>
- <cd:variable name='sorting' value='sorting'/>
- <cd:variable name='space' value='mezera'/>
- <cd:variable name='spacing' value='mezerovani'/>
- <cd:variable name='speech' value='speech'/>
- <cd:variable name='split' value='split'/>
- <cd:variable name='spot' value='spot'/>
- <cd:variable name='standard' value='standardni'/>
- <cd:variable name='start' value='start'/>
- <cd:variable name='starter' value='starter'/>
- <cd:variable name='sticker' value='sticker'/>
- <cd:variable name='stop' value='stop'/>
- <cd:variable name='stopper' value='predel'/>
- <cd:variable name='stretch' value='natahnout'/>
- <cd:variable name='stretched' value='stretched'/>
- <cd:variable name='strict' value='striktni'/>
- <cd:variable name='strong' value='strong'/>
- <cd:variable name='strut' value='strut'/>
- <cd:variable name='sub' value='pod'/>
- <cd:variable name='subbackward' value='podzpet'/>
- <cd:variable name='subformula' value='subrovnice'/>
- <cd:variable name='subforward' value='podvpred'/>
- <cd:variable name='subject' value='tema'/>
- <cd:variable name='subpage' value='podstranka'/>
- <cd:variable name='subs' value='subs'/>
- <cd:variable name='subsection' value='podsekce'/>
- <cd:variable name='subsubject' value='podtema'/>
- <cd:variable name='subsubsection' value='podpodsekce'/>
- <cd:variable name='subsubsubject' value='podpodtema'/>
- <cd:variable name='subsubsubsection' value='podpodpodsekce'/>
- <cd:variable name='subsubsubsubject' value='podpodpodtema'/>
- <cd:variable name='subsubsubsubsection' value='podpodpodpodsekce'/>
- <cd:variable name='subsubsubsubsubject' value='podpodpodpodtema'/>
- <cd:variable name='subsubsubsubsubsection' value='podpodpodpodpodsekce'/>
- <cd:variable name='subsubsubsubsubsubject' value='podpodpodpodpodtema'/>
- <cd:variable name='subsubsubsubsubsubsection' value='podpodpodpodpodpodsekce'/>
- <cd:variable name='subsubsubsubsubsubsubject' value='podpodpodpodpodpodtema'/>
- <cd:variable name='subsubsubsubsubsubsubsection' value='podpodpodpodpodpodpodsekce'/>
- <cd:variable name='subsubsubsubsubsubsubsubject' value='podpodpodpodpodpodpodtema'/>
- <cd:variable name='subsubsubsubsubsubsubsubsection' value='podpodpodpodpodpodpodpodsekce'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubject' value='podpodpodpodpodpodpodpodtema'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubsection' value='podpodpodpodpodpodpodpodpodsekce'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubsubject' value='podpodpodpodpodpodpodpodpodtema'/>
- <cd:variable name='sunday' value='nedele'/>
- <cd:variable name='support' value='podpora'/>
- <cd:variable name='sym' value='sym'/>
- <cd:variable name='symbol' value='symbol'/>
- <cd:variable name='synchronize' value='synchronize'/>
- <cd:variable name='synonym' value='synonym'/>
- <cd:variable name='system' value='system'/>
- <cd:variable name='table' value='tabulka'/>
- <cd:variable name='tablehead' value='zahlavitabulky'/>
- <cd:variable name='tables' value='tabulky'/>
- <cd:variable name='tabletail' value='konectabulky'/>
- <cd:variable name='tabulate' value='tabelator'/>
- <cd:variable name='tabulatehead' value='tabulatehead'/>
- <cd:variable name='tabulatetail' value='tabulatetail'/>
- <cd:variable name='tall' value='vysoko'/>
- <cd:variable name='teletype' value='strojopis'/>
- <cd:variable name='temporary' value='docasne'/>
- <cd:variable name='test' value='test'/>
- <cd:variable name='text' value='text'/>
- <cd:variable name='textnote' value='textnote'/>
- <cd:variable name='three' value='tri'/>
- <cd:variable name='thursday' value='ctvrtek'/>
- <cd:variable name='tight' value='tight'/>
- <cd:variable name='title' value='titul'/>
- <cd:variable name='toggle' value='toggle'/>
- <cd:variable name='tolerant' value='tolerantni'/>
- <cd:variable name='top' value='vrsek'/>
- <cd:variable name='tuesday' value='utery'/>
- <cd:variable name='two' value='dve'/>
- <cd:variable name='txt' value='txt'/>
- <cd:variable name='type' value='opis'/>
- <cd:variable name='typing' value='typing'/>
- <cd:variable name='unavailable' value='nedostupne'/>
- <cd:variable name='underbar' value='podtrzeno'/>
- <cd:variable name='underbars' value='podtrzeni'/>
- <cd:variable name='understrike' value='understrike'/>
- <cd:variable name='understrikes' value='understrikes'/>
- <cd:variable name='unframed' value='unframed'/>
- <cd:variable name='unicode' value='unicode'/>
- <cd:variable name='unit' value='jednotka'/>
- <cd:variable name='units' value='jednotky'/>
- <cd:variable name='unknown' value='neznamy'/>
- <cd:variable name='unpacked' value='rozbalene'/>
- <cd:variable name='up' value='up'/>
- <cd:variable name='url' value='url'/>
- <cd:variable name='used' value='uzito'/>
- <cd:variable name='value' value='hodnota'/>
- <cd:variable name='vertical' value='vertikalne'/>
- <cd:variable name='very' value='velmi'/>
- <cd:variable name='verystrict' value='velmistriktni'/>
- <cd:variable name='verytolerant' value='velmitolerantni'/>
- <cd:variable name='vfenced' value='vfenced'/>
- <cd:variable name='vulgarfraction' value='vulgarfraction'/>
- <cd:variable name='weak' value='weak'/>
- <cd:variable name='wednesday' value='streda'/>
- <cd:variable name='week' value='tyden'/>
- <cd:variable name='weekday' value='vsedniden'/>
- <cd:variable name='white' value='bily'/>
- <cd:variable name='wide' value='siroce'/>
- <cd:variable name='width' value='sirka'/>
- <cd:variable name='word' value='slovo'/>
- <cd:variable name='words' value='words'/>
- <cd:variable name='xml' value='xml'/>
- <cd:variable name='year' value='rok'/>
- <cd:variable name='yes' value='ano'/>
- </cd:variables>
-
- <!-- definitions for interface constants for language cs -->
-
- <cd:constants>
- <cd:constant name='action' value='akce'/>
- <cd:constant name='address' value='adresa'/>
- <cd:constant name='after' value='po'/>
- <cd:constant name='afterhead' value='pohlavicce'/>
- <cd:constant name='afterkey' value='klavesapo'/>
- <cd:constant name='aftersection' value='aftersection'/>
- <cd:constant name='align' value='zarovnani'/>
- <cd:constant name='alignbottom' value='alignbottom'/>
- <cd:constant name='aligncharacter' value='aligncharacter'/>
- <cd:constant name='alignmentcharacter' value='alignmentcharacter'/>
- <cd:constant name='alignmentleftsample' value='alignmentleftsample'/>
- <cd:constant name='alignmentleftwidth' value='alignmentleftwidth'/>
- <cd:constant name='alignmentrightsample' value='alignmentrightsample'/>
- <cd:constant name='alignmentrightwidth' value='alignmentrightwidth'/>
- <cd:constant name='alignsymbol' value='alignsymbol'/>
- <cd:constant name='aligntitle' value='zarovnejtitul'/>
- <cd:constant name='alternative' value='alternativa'/>
- <cd:constant name='anchor' value='anchor'/>
- <cd:constant name='anchoring' value='anchoring'/>
- <cd:constant name='andtext' value='andtext'/>
- <cd:constant name='apa' value='apa'/>
- <cd:constant name='arguments' value='arguments'/>
- <cd:constant name='arrow' value='sipka'/>
- <cd:constant name='artauthor' value='artauthor'/>
- <cd:constant name='artauthoretaldisplay' value='artauthoretaldisplay'/>
- <cd:constant name='artauthoretallimit' value='artauthoretallimit'/>
- <cd:constant name='artauthoretaltext' value='artauthoretaltext'/>
- <cd:constant name='artoffset' value='artoffset'/>
- <cd:constant name='at' value='u'/>
- <cd:constant name='author' value='autor'/>
- <cd:constant name='authorconversion' value='authorconversion'/>
- <cd:constant name='authoretaldisplay' value='authoretaldisplay'/>
- <cd:constant name='authoretallimit' value='authoretallimit'/>
- <cd:constant name='authoretaltext' value='authoretaltext'/>
- <cd:constant name='auto' value='auto'/>
- <cd:constant name='autocase' value='autocase'/>
- <cd:constant name='autofile' value='autofile'/>
- <cd:constant name='autofocus' value='autoostreni'/>
- <cd:constant name='autohang' value='autohang'/>
- <cd:constant name='autostrut' value='autostrut'/>
- <cd:constant name='autowidth' value='autosirka'/>
- <cd:constant name='availableheight' value='availableheight'/>
- <cd:constant name='availablewidth' value='availablewidth'/>
- <cd:constant name='axis' value='osa'/>
- <cd:constant name='background' value='pozadi'/>
- <cd:constant name='backgroundcolor' value='barvapozadi'/>
- <cd:constant name='backgroundcorner' value='rohpozadi'/>
- <cd:constant name='backgrounddepth' value='hloubkapozadi'/>
- <cd:constant name='backgroundoffset' value='offsetpozadi'/>
- <cd:constant name='backgroundradius' value='polomerpozadi'/>
- <cd:constant name='backgroundscreen' value='rastrpozadi'/>
- <cd:constant name='backreference' value='backreference'/>
- <cd:constant name='backspace' value='zpetnamezera'/>
- <cd:constant name='balance' value='rovnovaha'/>
- <cd:constant name='before' value='pred'/>
- <cd:constant name='beforehead' value='predhlavickou'/>
- <cd:constant name='beforesection' value='beforesection'/>
- <cd:constant name='bet' value='bet'/>
- <cd:constant name='bidi' value='bidi'/>
- <cd:constant name='big' value='velky'/>
- <cd:constant name='blank' value='prazdny'/>
- <cd:constant name='bleedoffset' value='bleedoffset'/>
- <cd:constant name='blockway' value='dobloku'/>
- <cd:constant name='bodyfont' value='zakladnifont'/>
- <cd:constant name='boffset' value='boffset'/>
- <cd:constant name='boldfeatures' value='boldfeatures'/>
- <cd:constant name='boldfont' value='boldfont'/>
- <cd:constant name='bolditalicfeatures' value='bolditalicfeatures'/>
- <cd:constant name='bolditalicfont' value='bolditalicfont'/>
- <cd:constant name='boldslantedfeatures' value='boldslantedfeatures'/>
- <cd:constant name='boldslantedfont' value='boldslantedfont'/>
- <cd:constant name='bookmark' value='zalozka'/>
- <cd:constant name='bottom' value='spodek'/>
- <cd:constant name='bottomafter' value='bottomafter'/>
- <cd:constant name='bottombefore' value='bottombefore'/>
- <cd:constant name='bottomcommand' value='bottomcommand'/>
- <cd:constant name='bottomdistance' value='vzdalenostspodku'/>
- <cd:constant name='bottomframe' value='ramecekdole'/>
- <cd:constant name='bottomoffset' value='offsetspodku'/>
- <cd:constant name='bottomspace' value='bottomspace'/>
- <cd:constant name='bottomstate' value='statusspodku'/>
- <cd:constant name='break' value='break'/>
- <cd:constant name='buffer' value='buffer'/>
- <cd:constant name='cache' value='cache'/>
- <cd:constant name='calculate' value='pocitat'/>
- <cd:constant name='category' value='category'/>
- <cd:constant name='ccommand' value='cprikaz'/>
- <cd:constant name='character' value='character'/>
- <cd:constant name='characters' value='characters'/>
- <cd:constant name='check' value='check'/>
- <cd:constant name='click' value='klik'/>
- <cd:constant name='clickin' value='klikuvnitr'/>
- <cd:constant name='clickout' value='klikvne'/>
- <cd:constant name='clipoffset' value='clipoffset'/>
- <cd:constant name='closeaction' value='zavriakci'/>
- <cd:constant name='closecommand' value='closecommand'/>
- <cd:constant name='closepage' value='closepage'/>
- <cd:constant name='closepageaction' value='akcezavrenistranky'/>
- <cd:constant name='closesymbol' value='closesymbol'/>
- <cd:constant name='color' value='barva'/>
- <cd:constant name='column' value='sloupec'/>
- <cd:constant name='columndistance' value='vzdalenostsloupcu'/>
- <cd:constant name='columns' value='sloupce'/>
- <cd:constant name='comma' value='comma'/>
- <cd:constant name='command' value='prikaz'/>
- <cd:constant name='commandafter' value='prikazpo'/>
- <cd:constant name='commandbefore' value='predchoziprikaz'/>
- <cd:constant name='commands' value='prikazy'/>
- <cd:constant name='comment' value='comment'/>
- <cd:constant name='commentchar' value='commentchar'/>
- <cd:constant name='commentoffset' value='commentoffset'/>
- <cd:constant name='compact' value='compact'/>
- <cd:constant name='component' value='component'/>
- <cd:constant name='compoundhyphen' value='compoundhyphen'/>
- <cd:constant name='compress' value='compress'/>
- <cd:constant name='compressdistance' value='compressdistance'/>
- <cd:constant name='compressmethod' value='compressmethod'/>
- <cd:constant name='compressseparator' value='compressseparator'/>
- <cd:constant name='compressstopper' value='compressstopper'/>
- <cd:constant name='concerns' value='concerns'/>
- <cd:constant name='connector' value='connector'/>
- <cd:constant name='continue' value='pokracovat'/>
- <cd:constant name='contrastcolor' value='kontrastnibarva'/>
- <cd:constant name='controls' value='controls'/>
- <cd:constant name='conversion' value='konverze'/>
- <cd:constant name='convertfile' value='konverzesouboru'/>
- <cd:constant name='copies' value='copies'/>
- <cd:constant name='corner' value='roh'/>
- <cd:constant name='coupling' value='propojeni'/>
- <cd:constant name='couplingway' value='zpusobpropojeni'/>
- <cd:constant name='criterium' value='kriterium'/>
- <cd:constant name='cropoffset' value='cropoffset'/>
- <cd:constant name='crossreference' value='crossreference'/>
- <cd:constant name='cssfile' value='cssfile'/>
- <cd:constant name='current' value='aktualni'/>
- <cd:constant name='cutspace' value='cutspace'/>
- <cd:constant name='dash' value='pomlcka'/>
- <cd:constant name='dat' value='dat'/>
- <cd:constant name='database' value='database'/>
- <cd:constant name='dataset' value='dataset'/>
- <cd:constant name='date' value='datum'/>
- <cd:constant name='deepnumbercommand' value='deepnumbercommand'/>
- <cd:constant name='deeptextcommand' value='deeptextcommand'/>
- <cd:constant name='default' value='implicitni'/>
- <cd:constant name='defaultheight' value='defaultheight'/>
- <cd:constant name='defaultwidth' value='defaultwidth'/>
- <cd:constant name='define' value='define'/>
- <cd:constant name='delay' value='prodleva'/>
- <cd:constant name='depth' value='hloubka'/>
- <cd:constant name='depthcorrection' value='korekcehloubky'/>
- <cd:constant name='direction' value='smer'/>
- <cd:constant name='directory' value='adresar'/>
- <cd:constant name='display' value='obrazovka'/>
- <cd:constant name='displaythreshold' value='displaythreshold'/>
- <cd:constant name='distance' value='vzdalenost'/>
- <cd:constant name='domain' value='domain'/>
- <cd:constant name='dot' value='tecka'/>
- <cd:constant name='doublesided' value='oboustranne'/>
- <cd:constant name='down' value='down'/>
- <cd:constant name='dummy' value='dummy'/>
- <cd:constant name='dx' value='dx'/>
- <cd:constant name='dy' value='dy'/>
- <cd:constant name='edge' value='hrana'/>
- <cd:constant name='edgedistance' value='vzdalenosthrany'/>
- <cd:constant name='editor' value='editor'/>
- <cd:constant name='editoretaldisplay' value='editoretaldisplay'/>
- <cd:constant name='editoretallimit' value='editoretallimit'/>
- <cd:constant name='editoretaltext' value='editoretaltext'/>
- <cd:constant name='empty' value='prazdne'/>
- <cd:constant name='entities' value='entities'/>
- <cd:constant name='entries' value='entries'/>
- <cd:constant name='equalheight' value='equalheight'/>
- <cd:constant name='equalwidth' value='equalwidth'/>
- <cd:constant name='escape' value='escape'/>
- <cd:constant name='etaldisplay' value='etaldisplay'/>
- <cd:constant name='etallimit' value='etallimit'/>
- <cd:constant name='etaloption' value='etaloption'/>
- <cd:constant name='etaltext' value='etaltext'/>
- <cd:constant name='evenmargin' value='sudamarginalie'/>
- <cd:constant name='exact' value='exact'/>
- <cd:constant name='exitoffset' value='exitoffset'/>
- <cd:constant name='expansion' value='expanzen'/>
- <cd:constant name='export' value='export'/>
- <cd:constant name='extras' value='extras'/>
- <cd:constant name='factor' value='faktor'/>
- <cd:constant name='fallback' value='fallback'/>
- <cd:constant name='fallbacks' value='fallbacks'/>
- <cd:constant name='family' value='rodina'/>
- <cd:constant name='features' value='features'/>
- <cd:constant name='featureset' value='featureset'/>
- <cd:constant name='fences' value='fences'/>
- <cd:constant name='field' value='field'/>
- <cd:constant name='fieldbackgroundcolor' value='barvapozadipole'/>
- <cd:constant name='fieldframecolor' value='barvarameckupole'/>
- <cd:constant name='fieldlayer' value='fieldlayer'/>
- <cd:constant name='fieldoffset' value='offsetpole'/>
- <cd:constant name='file' value='soubor'/>
- <cd:constant name='filler' value='filler'/>
- <cd:constant name='filter' value='filter'/>
- <cd:constant name='filtercommand' value='filtercommand'/>
- <cd:constant name='finalnamesep' value='finalnamesep'/>
- <cd:constant name='finalpagesep' value='finalpagesep'/>
- <cd:constant name='finalpubsep' value='finalpubsep'/>
- <cd:constant name='first' value='prvni'/>
- <cd:constant name='firstnamesep' value='firstnamesep'/>
- <cd:constant name='firstpage' value='prvnistranka'/>
- <cd:constant name='focus' value='zaostreni'/>
- <cd:constant name='focusin' value='focusin'/>
- <cd:constant name='focusoffset' value='focusoffset'/>
- <cd:constant name='focusout' value='focusout'/>
- <cd:constant name='font' value='font'/>
- <cd:constant name='footer' value='upati'/>
- <cd:constant name='footerdistance' value='vzdalenostupati'/>
- <cd:constant name='footerstate' value='statusupati'/>
- <cd:constant name='force' value='sila'/>
- <cd:constant name='foregroundcolor' value='foregroundcolor'/>
- <cd:constant name='foregroundstyle' value='foregroundstyle'/>
- <cd:constant name='format' value='formatovat'/>
- <cd:constant name='fractions' value='fractions'/>
- <cd:constant name='frame' value='ramecek'/>
- <cd:constant name='framecolor' value='barvaramecku'/>
- <cd:constant name='framecorner' value='rohramecku'/>
- <cd:constant name='framedepth' value='hloubkaramecku'/>
- <cd:constant name='frameoffset' value='offsetramecku'/>
- <cd:constant name='frameradius' value='polomerramecku'/>
- <cd:constant name='frames' value='ramecky'/>
- <cd:constant name='freeregion' value='freeregion'/>
- <cd:constant name='from' value='z'/>
- <cd:constant name='functioncolor' value='functioncolor'/>
- <cd:constant name='functionstyle' value='functionstyle'/>
- <cd:constant name='get' value='ziskat'/>
- <cd:constant name='global' value='globalne'/>
- <cd:constant name='goodies' value='goodies'/>
- <cd:constant name='grid' value='mrizka'/>
- <cd:constant name='group' value='group'/>
- <cd:constant name='groupsuffix' value='groupsuffix'/>
- <cd:constant name='hang' value='zaveseni'/>
- <cd:constant name='hcompact' value='hcompact'/>
- <cd:constant name='headalign' value='headalign'/>
- <cd:constant name='headcolor' value='barvahlavicky'/>
- <cd:constant name='headcommand' value='headcommand'/>
- <cd:constant name='headconversion' value='konverzehlavicky'/>
- <cd:constant name='header' value='zahlavi'/>
- <cd:constant name='headerdistance' value='vzdalenostzahlavi'/>
- <cd:constant name='headerstate' value='statuszahlavi'/>
- <cd:constant name='headlabel' value='popisekhlavicky'/>
- <cd:constant name='headnumber' value='cislonadpisu'/>
- <cd:constant name='headseparator' value='headseparator'/>
- <cd:constant name='headstyle' value='stylhlavicky'/>
- <cd:constant name='height' value='vyska'/>
- <cd:constant name='hfactor' value='hfaktor'/>
- <cd:constant name='hfil' value='hfil'/>
- <cd:constant name='hidenumber' value='hidenumber'/>
- <cd:constant name='hoffset' value='hoffset'/>
- <cd:constant name='horizontal' value='horizontalne'/>
- <cd:constant name='horoffset' value='horoffset'/>
- <cd:constant name='hyphen' value='hyphen'/>
- <cd:constant name='hyphens' value='hyphens'/>
- <cd:constant name='icommand' value='iprikaz'/>
- <cd:constant name='ignore' value='ignore'/>
- <cd:constant name='in' value='v'/>
- <cd:constant name='inbetween' value='mezi'/>
- <cd:constant name='increment' value='zvysit'/>
- <cd:constant name='incrementnumber' value='zvysujicicislo'/>
- <cd:constant name='indenting' value='odsazovani'/>
- <cd:constant name='indentlist' value='indentlist'/>
- <cd:constant name='indentnext' value='odsadpristi'/>
- <cd:constant name='index' value='index'/>
- <cd:constant name='indicator' value='indikator'/>
- <cd:constant name='initialsep' value='initialsep'/>
- <cd:constant name='inlinethreshold' value='inlinethreshold'/>
- <cd:constant name='inner' value='vnitrni'/>
- <cd:constant name='innermargin' value='innermargin'/>
- <cd:constant name='inputfile' value='inputfile'/>
- <cd:constant name='insidesection' value='insidesection'/>
- <cd:constant name='instance' value='instance'/>
- <cd:constant name='intent' value='intent'/>
- <cd:constant name='interaction' value='interakce'/>
- <cd:constant name='interlinespace' value='meziradkovamezera'/>
- <cd:constant name='internalgrid' value='internalgrid'/>
- <cd:constant name='italicfeatures' value='italicfeatures'/>
- <cd:constant name='italicfont' value='italicfont'/>
- <cd:constant name='itemalign' value='itemalign'/>
- <cd:constant name='items' value='polozky'/>
- <cd:constant name='joiners' value='joiners'/>
- <cd:constant name='journalconversion' value='journalconversion'/>
- <cd:constant name='juniorsep' value='juniorsep'/>
- <cd:constant name='keeptogether' value='keeptogether'/>
- <cd:constant name='ken' value='ken'/>
- <cd:constant name='keyexpansion' value='keyexpansion'/>
- <cd:constant name='keys' value='keys'/>
- <cd:constant name='keyword' value='keyword'/>
- <cd:constant name='label' value='popisek'/>
- <cd:constant name='labelalternative' value='labelalternative'/>
- <cd:constant name='labelcolor' value='labelcolor'/>
- <cd:constant name='labeloffset' value='labeloffset'/>
- <cd:constant name='labelstyle' value='labelstyle'/>
- <cd:constant name='language' value='language'/>
- <cd:constant name='last' value='last'/>
- <cd:constant name='lastnamesep' value='lastnamesep'/>
- <cd:constant name='lastpage' value='poslednistrana'/>
- <cd:constant name='lastpagesep' value='lastpagesep'/>
- <cd:constant name='lastpubsep' value='lastpubsep'/>
- <cd:constant name='layout' value='layout'/>
- <cd:constant name='left' value='vlevo'/>
- <cd:constant name='leftcolor' value='barvavlevo'/>
- <cd:constant name='leftcompoundhyphen' value='leftcompoundhyphen'/>
- <cd:constant name='leftedge' value='levahrana'/>
- <cd:constant name='leftedgedistance' value='vzdalenostlevehrany'/>
- <cd:constant name='leftframe' value='ramecekvlevo'/>
- <cd:constant name='lefthyphen' value='lefthyphen'/>
- <cd:constant name='leftmargin' value='levyokraj'/>
- <cd:constant name='leftmargindistance' value='vzdalenostlevehookraje'/>
- <cd:constant name='leftoffset' value='levyoffset'/>
- <cd:constant name='leftquotation' value='citacevlevo'/>
- <cd:constant name='leftquote' value='citovatvlevo'/>
- <cd:constant name='leftsample' value='leftsample'/>
- <cd:constant name='leftsentence' value='vetavlevo'/>
- <cd:constant name='leftspeech' value='leftspeech'/>
- <cd:constant name='leftstyle' value='stylvlevo'/>
- <cd:constant name='leftsubsentence' value='podvetavlevo'/>
- <cd:constant name='lefttext' value='textvlevo'/>
- <cd:constant name='leftwidth' value='sirkavlevo'/>
- <cd:constant name='leftwords' value='leftwords'/>
- <cd:constant name='less' value='less'/>
- <cd:constant name='level' value='uroven'/>
- <cd:constant name='levels' value='urovne'/>
- <cd:constant name='limittext' value='limittext'/>
- <cd:constant name='line' value='radek'/>
- <cd:constant name='linecorrection' value='korekceradku'/>
- <cd:constant name='linedirection' value='linedirection'/>
- <cd:constant name='lines' value='radky'/>
- <cd:constant name='list' value='seznam'/>
- <cd:constant name='listtext' value='listtext'/>
- <cd:constant name='local' value='lokalne'/>
- <cd:constant name='location' value='misto'/>
- <cd:constant name='loffset' value='loffset'/>
- <cd:constant name='logo' value='logo'/>
- <cd:constant name='logos' value='loga'/>
- <cd:constant name='marcolor' value='barvaznacky'/>
- <cd:constant name='margin' value='marginalie'/>
- <cd:constant name='margindistance' value='vzdalenostokraje'/>
- <cd:constant name='marginedge' value='textovahrana'/>
- <cd:constant name='marginedgetext' value='textmarginalnihookraje'/>
- <cd:constant name='margintext' value='textmarginalie'/>
- <cd:constant name='mark' value='mark'/>
- <cd:constant name='marking' value='znaceni'/>
- <cd:constant name='marstyle' value='stylsnacky'/>
- <cd:constant name='mask' value='mask'/>
- <cd:constant name='mathclass' value='mathclass'/>
- <cd:constant name='mathlimits' value='mathlimits'/>
- <cd:constant name='mathstyle' value='mathstyle'/>
- <cd:constant name='max' value='max'/>
- <cd:constant name='maxdepth' value='maxdepth'/>
- <cd:constant name='maxheight' value='maxvyska'/>
- <cd:constant name='maxwidth' value='maxsirka'/>
- <cd:constant name='maybeyear' value='maybeyear'/>
- <cd:constant name='menu' value='menu'/>
- <cd:constant name='method' value='metoda'/>
- <cd:constant name='middle' value='stredni'/>
- <cd:constant name='middlecolor' value='middlecolor'/>
- <cd:constant name='middlecommand' value='middlecommand'/>
- <cd:constant name='middlespeech' value='middlespeech'/>
- <cd:constant name='middlestyle' value='middlestyle'/>
- <cd:constant name='middletext' value='strednitext'/>
- <cd:constant name='middlewidth' value='middlewidth'/>
- <cd:constant name='midsentence' value='midsentence'/>
- <cd:constant name='min' value='min'/>
- <cd:constant name='mindepth' value='mindepth'/>
- <cd:constant name='minheight' value='minvyska'/>
- <cd:constant name='minwidth' value='minsirka'/>
- <cd:constant name='moffset' value='moffset'/>
- <cd:constant name='monthconversion' value='monthconversion'/>
- <cd:constant name='more' value='more'/>
- <cd:constant name='mpdepth' value='mpdepth'/>
- <cd:constant name='mpheight' value='mpheight'/>
- <cd:constant name='mpoffset' value='mpoffset'/>
- <cd:constant name='mpwidth' value='mpwidth'/>
- <cd:constant name='n' value='n'/>
- <cd:constant name='name' value='jmeno'/>
- <cd:constant name='namesep' value='namesep'/>
- <cd:constant name='nbottom' value='nspodek'/>
- <cd:constant name='nc' value='nc'/>
- <cd:constant name='next' value='dalsi'/>
- <cd:constant name='nextleft' value='nextleft'/>
- <cd:constant name='nextleftquotation' value='nextleftquotation'/>
- <cd:constant name='nextright' value='nextright'/>
- <cd:constant name='nextrightquotation' value='nextrightquotation'/>
- <cd:constant name='nl' value='nl'/>
- <cd:constant name='nleft' value='nvlevo'/>
- <cd:constant name='nlines' value='nradky'/>
- <cd:constant name='norm' value='norm'/>
- <cd:constant name='note' value='note'/>
- <cd:constant name='notes' value='notes'/>
- <cd:constant name='nr' value='nr'/>
- <cd:constant name='nright' value='nvpravo'/>
- <cd:constant name='ntop' value='nvrsek'/>
- <cd:constant name='number' value='cislo'/>
- <cd:constant name='numberalign' value='numberalign'/>
- <cd:constant name='numbercolor' value='barvacisla'/>
- <cd:constant name='numbercommand' value='ciselnyprikaz'/>
- <cd:constant name='numberconversion' value='numberconversion'/>
- <cd:constant name='numberconversionset' value='numberconversionset'/>
- <cd:constant name='numberdistance' value='numberdistance'/>
- <cd:constant name='numbering' value='cislovani'/>
- <cd:constant name='numberorder' value='numberorder'/>
- <cd:constant name='numberprefix' value='numberprefix'/>
- <cd:constant name='numbersegments' value='numbersegments'/>
- <cd:constant name='numberseparator' value='oddelovaccisla'/>
- <cd:constant name='numberseparatorset' value='numberseparatorset'/>
- <cd:constant name='numberset' value='numberset'/>
- <cd:constant name='numberstarter' value='numberstarter'/>
- <cd:constant name='numberstopper' value='numberstopper'/>
- <cd:constant name='numberstrut' value='numberstrut'/>
- <cd:constant name='numberstyle' value='stylcisla'/>
- <cd:constant name='numberwidth' value='numberwidth'/>
- <cd:constant name='nx' value='nx'/>
- <cd:constant name='ny' value='ny'/>
- <cd:constant name='object' value='objekt'/>
- <cd:constant name='obstruction' value='prekazka'/>
- <cd:constant name='oddmargin' value='lichyokraj'/>
- <cd:constant name='offset' value='offset'/>
- <cd:constant name='openaction' value='otevriakci'/>
- <cd:constant name='openpage' value='openpage'/>
- <cd:constant name='openpageaction' value='akceotevrenistranky'/>
- <cd:constant name='openup' value='openup'/>
- <cd:constant name='opticalsize' value='opticalsize'/>
- <cd:constant name='option' value='volba'/>
- <cd:constant name='order' value='order'/>
- <cd:constant name='orientation' value='orientation'/>
- <cd:constant name='otherstext' value='otherstext'/>
- <cd:constant name='outermargin' value='outermargin'/>
- <cd:constant name='overprint' value='overprint'/>
- <cd:constant name='ownerpassword' value='ownerpassword'/>
- <cd:constant name='ownnumber' value='vlastnicislo'/>
- <cd:constant name='packcriterium' value='packcriterium'/>
- <cd:constant name='page' value='stranka'/>
- <cd:constant name='pageboundaries' value='hranicestranky'/>
- <cd:constant name='pagecolor' value='barvastranky'/>
- <cd:constant name='pagecolormodel' value='pagecolormodel'/>
- <cd:constant name='pagecommand' value='strankovyprikaz'/>
- <cd:constant name='pageconnector' value='pageconnector'/>
- <cd:constant name='pageconversion' value='pageconversion'/>
- <cd:constant name='pageconversionset' value='pageconversionset'/>
- <cd:constant name='pageleft' value='pageleft'/>
- <cd:constant name='pagemethod' value='pagemethod'/>
- <cd:constant name='pagenumber' value='cislostranky'/>
- <cd:constant name='pageprefix' value='pageprefix'/>
- <cd:constant name='pageprefixconnector' value='pageprefixconnector'/>
- <cd:constant name='pageprefixconversion' value='pageprefixconversion'/>
- <cd:constant name='pageprefixconversionset' value='pageprefixconversionset'/>
- <cd:constant name='pageprefixsegments' value='pageprefixsegments'/>
- <cd:constant name='pageprefixseparatorset' value='pageprefixseparatorset'/>
- <cd:constant name='pageprefixset' value='pageprefixset'/>
- <cd:constant name='pageprefixstarter' value='pageprefixstarter'/>
- <cd:constant name='pageprefixstopper' value='pageprefixstopper'/>
- <cd:constant name='pageright' value='pageright'/>
- <cd:constant name='pagesegments' value='pagesegments'/>
- <cd:constant name='pagesep' value='pagesep'/>
- <cd:constant name='pageseparatorset' value='pageseparatorset'/>
- <cd:constant name='pageset' value='pageset'/>
- <cd:constant name='pagestarter' value='pagestarter'/>
- <cd:constant name='pagestate' value='pagestate'/>
- <cd:constant name='pagestopper' value='pagestopper'/>
- <cd:constant name='pagestyle' value='stylstranky'/>
- <cd:constant name='palet' value='paleta'/>
- <cd:constant name='paper' value='papir'/>
- <cd:constant name='paragraph' value='odstavec'/>
- <cd:constant name='period' value='period'/>
- <cd:constant name='place' value='umistit'/>
- <cd:constant name='placehead' value='umistihlavicku'/>
- <cd:constant name='placeholder' value='placeholder'/>
- <cd:constant name='placestopper' value='predelmista'/>
- <cd:constant name='position' value='position'/>
- <cd:constant name='prefix' value='prefix'/>
- <cd:constant name='prefixconnector' value='prefixconnector'/>
- <cd:constant name='prefixconversion' value='prefixconversion'/>
- <cd:constant name='prefixconversionset' value='prefixconversionset'/>
- <cd:constant name='prefixsegments' value='prefixsegments'/>
- <cd:constant name='prefixseparatorset' value='prefixseparatorset'/>
- <cd:constant name='prefixset' value='prefixset'/>
- <cd:constant name='prefixstarter' value='prefixstarter'/>
- <cd:constant name='prefixstopper' value='prefixstopper'/>
- <cd:constant name='preset' value='prednastaveni'/>
- <cd:constant name='preview' value='nahled'/>
- <cd:constant name='previous' value='predchozi'/>
- <cd:constant name='previousnumber' value='predchozicislo'/>
- <cd:constant name='print' value='print'/>
- <cd:constant name='printable' value='tisknutelne'/>
- <cd:constant name='process' value='process'/>
- <cd:constant name='processors' value='processors'/>
- <cd:constant name='profile' value='profile'/>
- <cd:constant name='properties' value='properties'/>
- <cd:constant name='pubsep' value='pubsep'/>
- <cd:constant name='quotechar' value='quotechar'/>
- <cd:constant name='radius' value='polomer'/>
- <cd:constant name='random' value='nahodne'/>
- <cd:constant name='range' value='range'/>
- <cd:constant name='reduction' value='redukce'/>
- <cd:constant name='ref' value='ref'/>
- <cd:constant name='refcommand' value='refcommand'/>
- <cd:constant name='reference' value='odkaz'/>
- <cd:constant name='referencemethod' value='referencemethod'/>
- <cd:constant name='referenceprefix' value='referenceprefix'/>
- <cd:constant name='referencetext' value='referencetext'/>
- <cd:constant name='referencing' value='odkazujici'/>
- <cd:constant name='region' value='region'/>
- <cd:constant name='regionin' value='oblastuvnitr'/>
- <cd:constant name='regionout' value='oblastvne'/>
- <cd:constant name='register' value='register'/>
- <cd:constant name='regularfeatures' value='regularfeatures'/>
- <cd:constant name='regularfont' value='regularfont'/>
- <cd:constant name='renderingsetup' value='renderingsetup'/>
- <cd:constant name='repeat' value='opakovat'/>
- <cd:constant name='reset' value='reset'/>
- <cd:constant name='resetnumber' value='resetnumber'/>
- <cd:constant name='resolution' value='rozliseni'/>
- <cd:constant name='resources' value='resources'/>
- <cd:constant name='reverse' value='reverse'/>
- <cd:constant name='right' value='vpravo'/>
- <cd:constant name='rightchars' value='rightchars'/>
- <cd:constant name='rightcolor' value='barvavpravo'/>
- <cd:constant name='rightcompoundhyphen' value='rightcompoundhyphen'/>
- <cd:constant name='rightedge' value='pravahrana'/>
- <cd:constant name='rightedgedistance' value='vzdalenostpravehrany'/>
- <cd:constant name='rightframe' value='ramecekvpravo'/>
- <cd:constant name='righthyphen' value='righthyphen'/>
- <cd:constant name='rightmargin' value='pravyokraj'/>
- <cd:constant name='rightmargindistance' value='vzdalenostpravehookraje'/>
- <cd:constant name='rightoffset' value='pravyoffset'/>
- <cd:constant name='rightquotation' value='citacevpravo'/>
- <cd:constant name='rightquote' value='citovatvpravo'/>
- <cd:constant name='rightsample' value='rightsample'/>
- <cd:constant name='rightsentence' value='vetavpravo'/>
- <cd:constant name='rightspeech' value='rightspeech'/>
- <cd:constant name='rightstyle' value='stylvpravo'/>
- <cd:constant name='rightsubsentence' value='podvetavpravo'/>
- <cd:constant name='righttext' value='textvpravo'/>
- <cd:constant name='rightwidth' value='sirkavpravo'/>
- <cd:constant name='rightwords' value='rightwords'/>
- <cd:constant name='roffset' value='roffset'/>
- <cd:constant name='rotation' value='rotace'/>
- <cd:constant name='rule' value='linka'/>
- <cd:constant name='rulecolor' value='barvalinky'/>
- <cd:constant name='rulecommand' value='rulecommand'/>
- <cd:constant name='rulethickness' value='tloustkalinky'/>
- <cd:constant name='samepage' value='stejnastranka'/>
- <cd:constant name='sample' value='vzor'/>
- <cd:constant name='samplesize' value='samplesize'/>
- <cd:constant name='saveinlist' value='saveinlist'/>
- <cd:constant name='scale' value='meritko'/>
- <cd:constant name='scope' value='rozsah'/>
- <cd:constant name='screen' value='rastr'/>
- <cd:constant name='section' value='oddil'/>
- <cd:constant name='sectionblock' value='sectionblock'/>
- <cd:constant name='sectionconversion' value='sectionconversion'/>
- <cd:constant name='sectionconversionset' value='sectionconversionset'/>
- <cd:constant name='sectionnumber' value='cislooddilu'/>
- <cd:constant name='sectionresetset' value='sectionresetset'/>
- <cd:constant name='sectionsegments' value='sectionsegments'/>
- <cd:constant name='sectionseparatorset' value='sectionseparatorset'/>
- <cd:constant name='sectionset' value='sectionset'/>
- <cd:constant name='sectionstarter' value='sectionstarter'/>
- <cd:constant name='sectionstopper' value='sectionstopper'/>
- <cd:constant name='separator' value='oddelovac'/>
- <cd:constant name='separatorcolor' value='separatorcolor'/>
- <cd:constant name='separatorstyle' value='separatorstyle'/>
- <cd:constant name='set' value='set'/>
- <cd:constant name='setups' value='setups'/>
- <cd:constant name='shrink' value='shrink'/>
- <cd:constant name='side' value='pocitat'/>
- <cd:constant name='sidealign' value='sidealign'/>
- <cd:constant name='sidemethod' value='sidemethod'/>
- <cd:constant name='sidespaceafter' value='bocnimezeraza'/>
- <cd:constant name='sidespacebefore' value='bocnimezerapred'/>
- <cd:constant name='sidespaceinbetween' value='sidespaceinbetween'/>
- <cd:constant name='sidethreshold' value='sidethreshold'/>
- <cd:constant name='sign' value='znak'/>
- <cd:constant name='simplecommand' value='simplecommand'/>
- <cd:constant name='size' value='velikost'/>
- <cd:constant name='slantedfeatures' value='slantedfeatures'/>
- <cd:constant name='slantedfont' value='slantedfont'/>
- <cd:constant name='small' value='male'/>
- <cd:constant name='smallcapsfeatures' value='smallcapsfeatures'/>
- <cd:constant name='smallcapsfont' value='smallcapsfont'/>
- <cd:constant name='solution' value='solution'/>
- <cd:constant name='sort' value='sort'/>
- <cd:constant name='sorttype' value='sorttype'/>
- <cd:constant name='source' value='zdroj'/>
- <cd:constant name='space' value='mezera'/>
- <cd:constant name='spaceafter' value='mezeraza'/>
- <cd:constant name='spaceafterside' value='spaceafterside'/>
- <cd:constant name='spacebefore' value='mezerapred'/>
- <cd:constant name='spacebeforeside' value='spacebeforeside'/>
- <cd:constant name='spaceinbetween' value='spaceinbetween'/>
- <cd:constant name='spacing' value='mezerovani'/>
- <cd:constant name='specification' value='specification'/>
- <cd:constant name='split' value='split'/>
- <cd:constant name='splitcolor' value='splitcolor'/>
- <cd:constant name='splitmethod' value='splitmethod'/>
- <cd:constant name='splitoffset' value='splitoffset'/>
- <cd:constant name='spot' value='spot'/>
- <cd:constant name='stack' value='stack'/>
- <cd:constant name='stackname' value='stackname'/>
- <cd:constant name='start' value='start'/>
- <cd:constant name='starter' value='starter'/>
- <cd:constant name='state' value='status'/>
- <cd:constant name='step' value='krok'/>
- <cd:constant name='stop' value='stop'/>
- <cd:constant name='stopper' value='predel'/>
- <cd:constant name='stretch' value='natahnout'/>
- <cd:constant name='strip' value='strip'/>
- <cd:constant name='strut' value='strut'/>
- <cd:constant name='style' value='pismeno'/>
- <cd:constant name='stylealternative' value='stylealternative'/>
- <cd:constant name='sub' value='pod'/>
- <cd:constant name='subtitle' value='podtitulek'/>
- <cd:constant name='suffix' value='suffix'/>
- <cd:constant name='suffixseparator' value='suffixseparator'/>
- <cd:constant name='suffixstopper' value='suffixstopper'/>
- <cd:constant name='surnamefirstnamesep' value='surnamefirstnamesep'/>
- <cd:constant name='surnameinitialsep' value='surnameinitialsep'/>
- <cd:constant name='surnamesep' value='surnamesep'/>
- <cd:constant name='svgstyle' value='svgstyle'/>
- <cd:constant name='sx' value='sx'/>
- <cd:constant name='sy' value='sy'/>
- <cd:constant name='symalign' value='symzarovnani'/>
- <cd:constant name='symbol' value='symbol'/>
- <cd:constant name='symbolcommand' value='symbolcommand'/>
- <cd:constant name='symbolset' value='sadasymbolu'/>
- <cd:constant name='symcolor' value='barvasymbolu'/>
- <cd:constant name='symstyle' value='stylsymboly'/>
- <cd:constant name='synonym' value='synonymum'/>
- <cd:constant name='synonymcolor' value='barvasynonyma'/>
- <cd:constant name='synonymcommand' value='synonymcommand'/>
- <cd:constant name='synonymstyle' value='stylsynonyma'/>
- <cd:constant name='tab' value='tab'/>
- <cd:constant name='text' value='text'/>
- <cd:constant name='textalign' value='textalign'/>
- <cd:constant name='textcolor' value='barvatextu'/>
- <cd:constant name='textcommand' value='textovyprikaz'/>
- <cd:constant name='textdistance' value='textdistance'/>
- <cd:constant name='textheight' value='vyskatextu'/>
- <cd:constant name='textlayer' value='textlayer'/>
- <cd:constant name='textmargin' value='textmargin'/>
- <cd:constant name='textmethod' value='textmethod'/>
- <cd:constant name='textseparator' value='oddelovactextu'/>
- <cd:constant name='textsize' value='velikosttextu'/>
- <cd:constant name='textstate' value='statustextu'/>
- <cd:constant name='textstyle' value='styltextu'/>
- <cd:constant name='textwidth' value='sirkatextu'/>
- <cd:constant name='threshold' value='threshold'/>
- <cd:constant name='time' value='time'/>
- <cd:constant name='title' value='titul'/>
- <cd:constant name='titlecolor' value='barvatitulek'/>
- <cd:constant name='titlecommand' value='titlecommand'/>
- <cd:constant name='titledistance' value='vzdalenosttitulek'/>
- <cd:constant name='titleleft' value='titleleft'/>
- <cd:constant name='titleright' value='titleright'/>
- <cd:constant name='titlestrut' value='titlestrut'/>
- <cd:constant name='titlestyle' value='styltitulek'/>
- <cd:constant name='to' value='na'/>
- <cd:constant name='toffset' value='toffset'/>
- <cd:constant name='tolerance' value='tolerance'/>
- <cd:constant name='top' value='vrsek'/>
- <cd:constant name='topcommand' value='topcommand'/>
- <cd:constant name='topdistance' value='vzdalenostvrsku'/>
- <cd:constant name='topframe' value='rameceknahore'/>
- <cd:constant name='topoffset' value='offsetvrsku'/>
- <cd:constant name='topspace' value='svrchnimezera'/>
- <cd:constant name='topstate' value='statusvrsku'/>
- <cd:constant name='totalnumber' value='totalnumber'/>
- <cd:constant name='transform' value='transform'/>
- <cd:constant name='translate' value='translate'/>
- <cd:constant name='trimoffset' value='trimoffset'/>
- <cd:constant name='type' value='typ'/>
- <cd:constant name='unit' value='jednotka'/>
- <cd:constant name='unknownreference' value='neznamyodkaz'/>
- <cd:constant name='up' value='up'/>
- <cd:constant name='urlalternative' value='urlalternativa'/>
- <cd:constant name='urlspace' value='prostorurl'/>
- <cd:constant name='userpassword' value='userpassword'/>
- <cd:constant name='validate' value='validovat'/>
- <cd:constant name='values' value='values'/>
- <cd:constant name='vcommand' value='vprikaz'/>
- <cd:constant name='vcompact' value='vcompact'/>
- <cd:constant name='vector' value='vector'/>
- <cd:constant name='veroffset' value='offsethlavicky'/>
- <cd:constant name='vertical' value='vertikalne'/>
- <cd:constant name='vfactor' value='vfaktor'/>
- <cd:constant name='vfil' value='vfil'/>
- <cd:constant name='viewerprefix' value='viewerprefix'/>
- <cd:constant name='voffset' value='voffset'/>
- <cd:constant name='vonsep' value='vonsep'/>
- <cd:constant name='way' value='zpusob'/>
- <cd:constant name='wfactor' value='sfaktor'/>
- <cd:constant name='white' value='bily'/>
- <cd:constant name='width' value='sirka'/>
- <cd:constant name='words' value='words'/>
- <cd:constant name='xanchor' value='xanchor'/>
- <cd:constant name='xfactor' value='xfaktor'/>
- <cd:constant name='xhtml' value='xhtml'/>
- <cd:constant name='xmax' value='xmax'/>
- <cd:constant name='xmlsetup' value='xmlsetup'/>
- <cd:constant name='xoffset' value='xoffset'/>
- <cd:constant name='xscale' value='xmeritko'/>
- <cd:constant name='xstep' value='xkrok'/>
- <cd:constant name='yanchor' value='yanchor'/>
- <cd:constant name='yfactor' value='yfaktor'/>
- <cd:constant name='ymax' value='ymax'/>
- <cd:constant name='yoffset' value='yoffset'/>
- <cd:constant name='yscale' value='ymeritko'/>
- <cd:constant name='ystep' value='ykrok'/>
- </cd:constants>
-
- <!-- definitions for interface elements for language cs -->
-
- <cd:elements>
- <cd:element name='answerlines' value='answerlines'/>
- <cd:element name='answerspace' value='answerspace'/>
- <cd:element name='begin' value='zacatek'/>
- <cd:element name='complete' value='uplny'/>
- <cd:element name='coupled' value='propojene'/>
- <cd:element name='currentlocal' value='aktualnelokalni'/>
- <cd:element name='end' value='konec'/>
- <cd:element name='endsetup' value=''/>
- <cd:element name='get' value='ziskat'/>
- <cd:element name='increment' value='zvysit'/>
- <cd:element name='list' value='seznam'/>
- <cd:element name='listof' value='seznam'/>
- <cd:element name='load' value='nacist'/>
- <cd:element name='local' value='lokalne'/>
- <cd:element name='makeup' value='zlom'/>
- <cd:element name='next' value='dalsi'/>
- <cd:element name='place' value='umisti'/>
- <cd:element name='previous' value='predchozi'/>
- <cd:element name='previouslocal' value='predchozilokalni'/>
- <cd:element name='reserve' value='rezervovat'/>
- <cd:element name='see' value='viz'/>
- <cd:element name='setup' value='nastaveni'/>
- <cd:element name='start' value='start'/>
- <cd:element name='stop' value='stop'/>
- <cd:element name='text' value='text'/>
- <cd:element name='type' value='opis'/>
- </cd:elements>
-
- <!-- definitions for interface commands for language cs -->
-
- <cd:commands>
- <cd:command name='Character' value='Znak'/>
- <cd:command name='Characters' value='Znaky'/>
- <cd:command name='MONTH' value='MESIC'/>
- <cd:command name='Numbers' value='Cisla'/>
- <cd:command name='Romannumerals' value='Rimskecislice'/>
- <cd:command name='SmallCapped' value='Kap'/>
- <cd:command name='SmallCaps' value='Kaps'/>
- <cd:command name='WEEKDAY' value='VSEDNIDEN'/>
- <cd:command name='WORD' value='SLOVO'/>
- <cd:command name='WORDS' value='SLOVA'/>
- <cd:command name='Word' value='Slovo'/>
- <cd:command name='Words' value='Slova'/>
- <cd:command name='about' value='oref'/>
- <cd:command name='adaptfontfeature' value='adaptfontfeature'/>
- <cd:command name='adaptlayout' value='prizpusobvzhled'/>
- <cd:command name='addfeature' value='addfeature'/>
- <cd:command name='alignbottom' value='alignbottom'/>
- <cd:command name='aligned' value='aligned'/>
- <cd:command name='alignedbox' value='alignedbox'/>
- <cd:command name='alignedline' value='alignedline'/>
- <cd:command name='alignhere' value='alignhere'/>
- <cd:command name='alignment' value='alignment'/>
- <cd:command name='alignmentcharacter' value='alignmentcharacter'/>
- <cd:command name='applytocharacters' value='applytocharacters'/>
- <cd:command name='applytofirstcharacter' value='applytofirstcharacter'/>
- <cd:command name='arg' value='arg'/>
- <cd:command name='at' value='pref'/>
- <cd:command name='atleftmargin' value='atleftmargin'/>
- <cd:command name='atpage' value='nastrane'/>
- <cd:command name='atrightmargin' value='atrightmargin'/>
- <cd:command name='background' value='pozadi'/>
- <cd:command name='backspace' value='odsazenizleva'/>
- <cd:command name='blackrule' value='cernalinka'/>
- <cd:command name='blackrules' value='cernelinky'/>
- <cd:command name='blank' value='preskoc'/>
- <cd:command name='bookmark' value='zalozka'/>
- <cd:command name='bottombox' value='bottombox'/>
- <cd:command name='bottomdistance' value='vzdalenostspodku'/>
- <cd:command name='bottomheight' value='vyskaspodku'/>
- <cd:command name='bottomleftbox' value='bottomleftbox'/>
- <cd:command name='bottomrightbox' value='bottomrightbox'/>
- <cd:command name='bottomspace' value='bottomspace'/>
- <cd:command name='buildtextbottomdot' value='buildtextbottomdot'/>
- <cd:command name='but' value='spodek'/>
- <cd:command name='button' value='tlacitko'/>
- <cd:command name='bypassblocks' value='bypassblocks'/>
- <cd:command name='character' value='znak'/>
- <cd:command name='characters' value='znaky'/>
- <cd:command name='chem' value='chem'/>
- <cd:command name='clip' value='orez'/>
- <cd:command name='clonefield' value='klonujpole'/>
- <cd:command name='color' value='barva'/>
- <cd:command name='colorbar' value='barevnalista'/>
- <cd:command name='colorvalue' value='hodnotabarvy'/>
- <cd:command name='column' value='sloupec'/>
- <cd:command name='comparecolorgroup' value='porovnejskupinubarev'/>
- <cd:command name='comparepalet' value='porovnejpaletu'/>
- <cd:command name='completepagenumber' value='completepagenumber'/>
- <cd:command name='completeregister' value='completeregister'/>
- <cd:command name='component' value='komponenta'/>
- <cd:command name='convertnumber' value='konvertujcislo'/>
- <cd:command name='copyfield' value='kopirujpole'/>
- <cd:command name='correctwhitespace' value='korekcebilehomista'/>
- <cd:command name='coupledocument' value='propojenydokument'/>
- <cd:command name='couplemarking' value='propojeneznaceni'/>
- <cd:command name='couplepage' value='parovastrana'/>
- <cd:command name='couplepaper' value='dvoustrannypapir'/>
- <cd:command name='coupleregister' value='propojenyrejstrik'/>
- <cd:command name='crlf' value='crlf'/>
- <cd:command name='currentdate' value='aktualnidatum'/>
- <cd:command name='currentheadnumber' value='aktualnicislonadpisu'/>
- <cd:command name='cutspace' value='cutspace'/>
- <cd:command name='date' value='datum'/>
- <cd:command name='decouplemarking' value='rozpojeneznaceni'/>
- <cd:command name='decrementnumber' value='decrementnumber'/>
- <cd:command name='define' value='definuj'/>
- <cd:command name='defineaccent' value='definujakcent'/>
- <cd:command name='defineblank' value='definujpreskok'/>
- <cd:command name='defineblock' value='definujblok'/>
- <cd:command name='definebodyfont' value='definujzakladnifont'/>
- <cd:command name='definebodyfontenvironment' value='definujprostredizakladnihofontu'/>
- <cd:command name='definebodyfontswitch' value='definebodyfontswitch'/>
- <cd:command name='definebuffer' value='definujbuffer'/>
- <cd:command name='definecharacter' value='definujznak'/>
- <cd:command name='definecharacterkerning' value='definecharacterkerning'/>
- <cd:command name='definecharacterspacing' value='definecharacterspacing'/>
- <cd:command name='definecolor' value='definujbarvu'/>
- <cd:command name='definecolorgroup' value='definujskupinubarev'/>
- <cd:command name='definecolumnbreak' value='definecolumnbreak'/>
- <cd:command name='definecolumnset' value='definecolumnset'/>
- <cd:command name='definecombination' value='definecombination'/>
- <cd:command name='definecombinedlist' value='definujkombinovanyseznam'/>
- <cd:command name='definecommand' value='definujprikaz'/>
- <cd:command name='defineconversion' value='definujkonverzi'/>
- <cd:command name='definedescription' value='definujpopis'/>
- <cd:command name='definedfont' value='definedfont'/>
- <cd:command name='defineenumeration' value='definujvycet'/>
- <cd:command name='definefallbackfamily' value='definefallbackfamily'/>
- <cd:command name='definefield' value='definujpole'/>
- <cd:command name='definefieldstack' value='definujzasobnikpoli'/>
- <cd:command name='definefiguresymbol' value='definujobrazeksymbol'/>
- <cd:command name='definefilefallback' value='definefilefallback'/>
- <cd:command name='definefirstline' value='definefirstline'/>
- <cd:command name='definefloat' value='definujplvouciobjekt'/>
- <cd:command name='definefont' value='definujfont'/>
- <cd:command name='definefontalternative' value='definefontalternative'/>
- <cd:command name='definefontfallback' value='definefontfallback'/>
- <cd:command name='definefontfamily' value='definefontfamily'/>
- <cd:command name='definefontfamilypreset' value='definefontfamilypreset'/>
- <cd:command name='definefontfeature' value='definefontfeature'/>
- <cd:command name='definefontfile' value='definefontfile'/>
- <cd:command name='definefontsize' value='definefontsize'/>
- <cd:command name='definefontsolution' value='definefontsolution'/>
- <cd:command name='definefontstyle' value='definujstylfontu'/>
- <cd:command name='definefontsynonym' value='definujsynonumumfontu'/>
- <cd:command name='defineframed' value='definujoramovani'/>
- <cd:command name='defineframedtext' value='definujoramovanytext'/>
- <cd:command name='definefrozenfont' value='definefrozenfont'/>
- <cd:command name='definehbox' value='definujhbox'/>
- <cd:command name='definehead' value='definujnadpis'/>
- <cd:command name='definehyphenationfeatures' value='definehyphenationfeatures'/>
- <cd:command name='defineindentedtext' value='defineindentedtext'/>
- <cd:command name='defineinmargin' value='defineinmargin'/>
- <cd:command name='defineinteractionmenu' value='definujinterakcnimenu'/>
- <cd:command name='defineitemgroup' value='defineitemgroup'/>
- <cd:command name='defineitems' value='defineitems'/>
- <cd:command name='definelabel' value='definujpopisek'/>
- <cd:command name='definelayer' value='definelayer'/>
- <cd:command name='definelayout' value='definelayout'/>
- <cd:command name='definelinenote' value='definelinenote'/>
- <cd:command name='definelist' value='definujseznam'/>
- <cd:command name='definelogo' value='definujlogo'/>
- <cd:command name='definemainfield' value='definujhlavnipole'/>
- <cd:command name='definemakeup' value='definujupravu'/>
- <cd:command name='definemarking' value='definujznaceni'/>
- <cd:command name='definemathalignment' value='definemathalignment'/>
- <cd:command name='definemode' value='definemode'/>
- <cd:command name='definenamedcolor' value='definenamedcolor'/>
- <cd:command name='definenote' value='definenote'/>
- <cd:command name='defineoutput' value='definujvystup'/>
- <cd:command name='defineoverlay' value='definujprekryv'/>
- <cd:command name='definepagebreak' value='definepagebreak'/>
- <cd:command name='definepalet' value='definujpaletu'/>
- <cd:command name='definepapersize' value='definujvelikostpapiru'/>
- <cd:command name='defineparagraphs' value='definujodstavce'/>
- <cd:command name='defineperiodkerning' value='defineperiodkerning'/>
- <cd:command name='defineplacement' value='defineplacement'/>
- <cd:command name='defineprofile' value='definujprofil'/>
- <cd:command name='defineprogram' value='definujprogram'/>
- <cd:command name='definerawfont' value='definerawfont'/>
- <cd:command name='definereference' value='definujodkaz'/>
- <cd:command name='definereferenceformat' value='definujformatodkazu'/>
- <cd:command name='definereferencelist' value='definujseznamodkazu'/>
- <cd:command name='defineregister' value='definujrejstrik'/>
- <cd:command name='definerule' value='definerule'/>
- <cd:command name='definesection' value='definujsekci'/>
- <cd:command name='definesectionblock' value='definujbloksekce'/>
- <cd:command name='definesorting' value='definujtrideni'/>
- <cd:command name='definestartstop' value='definujstartstop'/>
- <cd:command name='definestyle' value='definujstyl'/>
- <cd:command name='definesubfield' value='definujpodpole'/>
- <cd:command name='definesymbol' value='definujsymbol'/>
- <cd:command name='definesynonyms' value='definujsynonyma'/>
- <cd:command name='definetabletemplate' value='definujsablonutabulky'/>
- <cd:command name='definetabulate' value='definujtabelaci'/>
- <cd:command name='definetext' value='definujtext'/>
- <cd:command name='definetextbackground' value='definetextbackground'/>
- <cd:command name='definetextnote' value='definetextnote'/>
- <cd:command name='definetextposition' value='definetextposition'/>
- <cd:command name='definetextvariable' value='definetextvariable'/>
- <cd:command name='definetype' value='definetype'/>
- <cd:command name='definetyping' value='definujopis'/>
- <cd:command name='defineversion' value='definujverzi'/>
- <cd:command name='depthspanningtext' value='depthspanningtext'/>
- <cd:command name='determineheadnumber' value='stanovcislonadpisu'/>
- <cd:command name='determinelistcharacteristics' value='stanovcharakteristickuseznamu'/>
- <cd:command name='determineregistercharacteristics' value='urcicharakteristikurejstriku'/>
- <cd:command name='dimension' value='rozmer'/>
- <cd:command name='disableinteractionmenu' value='zablokujinterakcnimenu'/>
- <cd:command name='disablemode' value='disablemode'/>
- <cd:command name='doaddfeature' value='doaddfeature'/>
- <cd:command name='domicile' value='bydliste'/>
- <cd:command name='dontconvertfont' value='dontconvertfont'/>
- <cd:command name='donttest' value='zadnytest'/>
- <cd:command name='edgedistance' value='vzdalenostokraje'/>
- <cd:command name='edgewidth' value='sirkaokraje'/>
- <cd:command name='emphasisboldface' value='emphasisboldface'/>
- <cd:command name='emptylines' value='emptylines'/>
- <cd:command name='enablemode' value='enablemode'/>
- <cd:command name='environment' value='prostredi'/>
- <cd:command name='externalfigure' value='externiobraz'/>
- <cd:command name='fact' value='fakt'/>
- <cd:command name='fastswitchtobodyfont' value='fastswitchtobodyfont'/>
- <cd:command name='feature' value='feature'/>
- <cd:command name='field' value='pole'/>
- <cd:command name='fieldstack' value='zasobnikpoli'/>
- <cd:command name='fillinfield' value='vyplnovepole'/>
- <cd:command name='fillinline' value='vyplnovyradek'/>
- <cd:command name='fillinrules' value='vyplnovelinky'/>
- <cd:command name='fillintext' value='vyplnenytext'/>
- <cd:command name='firstcharacter' value='firstcharacter'/>
- <cd:command name='fitfield' value='prizpusobivepole'/>
- <cd:command name='fittopbaselinegrid' value='fittopbaselinegrid'/>
- <cd:command name='fixedspace' value='tvrdamezera'/>
- <cd:command name='fixedspaces' value='tvrdemezery'/>
- <cd:command name='flushnotes' value='flushnotes'/>
- <cd:command name='followprofile' value='dodrzujprofil'/>
- <cd:command name='followprofileversion' value='dodrzujverziprofilu'/>
- <cd:command name='followversion' value='dodrzujverzi'/>
- <cd:command name='footerdistance' value='vzdalenostupati'/>
- <cd:command name='footerheight' value='vyskaupati'/>
- <cd:command name='footnote' value='poznamkapodcarou'/>
- <cd:command name='footnotetext' value='footnotetext'/>
- <cd:command name='forceblocks' value='forceblocks'/>
- <cd:command name='forcecharacterstripping' value='forcecharacterstripping'/>
- <cd:command name='formulanumber' value='cislorovnice'/>
- <cd:command name='fraction' value='zlomek'/>
- <cd:command name='framed' value='oramovani'/>
- <cd:command name='from' value='zref'/>
- <cd:command name='fromlinenote' value='fromlinenote'/>
- <cd:command name='getbuffer' value='ziskejbuffer'/>
- <cd:command name='getfirstcharacter' value='getfirstcharacter'/>
- <cd:command name='getmarking' value='ziskejznaceni'/>
- <cd:command name='getnumber' value='getnumber'/>
- <cd:command name='globaldisablemode' value='globaldisablemode'/>
- <cd:command name='globalenablemode' value='globalenablemode'/>
- <cd:command name='globalpreventmode' value='globalpreventmode'/>
- <cd:command name='godown' value='jdidolu'/>
- <cd:command name='goto' value='jdina'/>
- <cd:command name='gotobox' value='jdinabox'/>
- <cd:command name='gotopage' value='jdinastranu'/>
- <cd:command name='graycolor' value='sedabarva'/>
- <cd:command name='greyvalue' value='hodnotasedi'/>
- <cd:command name='grid' value='mrizka'/>
- <cd:command name='hairline' value='vlasovalinka'/>
- <cd:command name='head' value='nadpis'/>
- <cd:command name='headerdistance' value='vzdalenostzahlavi'/>
- <cd:command name='headerheight' value='vyskazahlavi'/>
- <cd:command name='headlevel' value='hlavniuroven'/>
- <cd:command name='headnumber' value='cislonadpisu'/>
- <cd:command name='headsym' value='headsym'/>
- <cd:command name='headtext' value='texthlavicky'/>
- <cd:command name='heightspanningtext' value='heightspanningtext'/>
- <cd:command name='hideblocks' value='schovejbloky'/>
- <cd:command name='high' value='vysoky'/>
- <cd:command name='hl' value='hl'/>
- <cd:command name='immediatebetweenlist' value='immediatebetweenlist'/>
- <cd:command name='immediatetolist' value='immediatetolist'/>
- <cd:command name='in' value='tref'/>
- <cd:command name='incrementnumber' value='zvysujicicislo'/>
- <cd:command name='indenting' value='odsazovani'/>
- <cd:command name='inframed' value='zaramovani'/>
- <cd:command name='infull' value='plnezneni'/>
- <cd:command name='ininner' value='ininner'/>
- <cd:command name='inleft' value='vlevo'/>
- <cd:command name='inleftedge' value='nalevo'/>
- <cd:command name='inleftmargin' value='nalevyokraj'/>
- <cd:command name='inline' value='vradku'/>
- <cd:command name='inmargin' value='naokraj'/>
- <cd:command name='inmframed' value='mazaramovani'/>
- <cd:command name='inneredgedistance' value='inneredgedistance'/>
- <cd:command name='inneredgewidth' value='inneredgewidth'/>
- <cd:command name='innermargindistance' value='innermargindistance'/>
- <cd:command name='innermarginwidth' value='innermarginwidth'/>
- <cd:command name='inothermargin' value='nadruhyokraj'/>
- <cd:command name='inouter' value='inouter'/>
- <cd:command name='inright' value='vpravo'/>
- <cd:command name='inrightedge' value='napravo'/>
- <cd:command name='inrightmargin' value='napravyokraj'/>
- <cd:command name='installlanguage' value='instalacejazyka'/>
- <cd:command name='interactionbar' value='interakcnilista'/>
- <cd:command name='interactionbuttons' value='interakcnitlacitka'/>
- <cd:command name='interactionmenu' value='interaktivnimenu'/>
- <cd:command name='item' value='polozka'/>
- <cd:command name='itemgroup' value='itemgroup'/>
- <cd:command name='items' value='polozky'/>
- <cd:command name='itemtag' value='itemtag'/>
- <cd:command name='its' value='pol'/>
- <cd:command name='keepblocks' value='zachovejbloky'/>
- <cd:command name='kerncharacters' value='kerncharacters'/>
- <cd:command name='label' value='poppisek'/>
- <cd:command name='labels' value='popisky'/>
- <cd:command name='labeltext' value='textpopisku'/>
- <cd:command name='language' value='jazyk'/>
- <cd:command name='languageCharacters' value='languageCharacters'/>
- <cd:command name='languagecharacters' value='languagecharacters'/>
- <cd:command name='leftaligned' value='zarovnanovlevo'/>
- <cd:command name='leftbottombox' value='leftbottombox'/>
- <cd:command name='leftedgedistance' value='vzdalenostlevehookraje'/>
- <cd:command name='leftedgewidth' value='sirkalevehookraje'/>
- <cd:command name='leftline' value='leftline'/>
- <cd:command name='leftmargindistance' value='vzdalenostlevemarginalie'/>
- <cd:command name='leftmarginwidth' value='sirkalevemarginalie'/>
- <cd:command name='leg' value='leg'/>
- <cd:command name='linecorrection' value='linecorrection'/>
- <cd:command name='linenote' value='linenote'/>
- <cd:command name='linespanningtext' value='linespanningtext'/>
- <cd:command name='linewidth' value='tloustkacary'/>
- <cd:command name='listheight' value='vyskaseznamu'/>
- <cd:command name='listlength' value='delkaseznamu'/>
- <cd:command name='listsymbol' value='listsymbol'/>
- <cd:command name='listwidth' value='sirkaseznamu'/>
- <cd:command name='loadfontgoodies' value='loadfontgoodies'/>
- <cd:command name='localfootnotes' value='localfootnotes'/>
- <cd:command name='localnotes' value='localnotes'/>
- <cd:command name='logfields' value='zaznamovepole'/>
- <cd:command name='lohi' value='nivy'/>
- <cd:command name='low' value='nizky'/>
- <cd:command name='macroname' value='jmeno'/>
- <cd:command name='mainlanguage' value='hlavnijazyk'/>
- <cd:command name='makeupheight' value='vyskasazby'/>
- <cd:command name='makeupwidth' value='sirkasazby'/>
- <cd:command name='mar' value='okr'/>
- <cd:command name='marginblock' value='marginblock'/>
- <cd:command name='margindistance' value='vzdalenostmarginalie'/>
- <cd:command name='marginrule' value='marginalnilinka'/>
- <cd:command name='margintext' value='marginalnitext'/>
- <cd:command name='margintitle' value='marginalninadpis'/>
- <cd:command name='marginwidth' value='sirkamarginalie'/>
- <cd:command name='marginword' value='marginalnislovo'/>
- <cd:command name='marking' value='znaceni'/>
- <cd:command name='markversion' value='oznacverzi'/>
- <cd:command name='mathematics' value='matematika'/>
- <cd:command name='menubutton' value='tlacitkomenu'/>
- <cd:command name='mframed' value='maoramovani'/>
- <cd:command name='midaligned' value='zarovnanonastred'/>
- <cd:command name='mirror' value='zrcadlit'/>
- <cd:command name='month' value='mesic'/>
- <cd:command name='moveformula' value='moveformula'/>
- <cd:command name='moveongrid' value='premistinamrizku'/>
- <cd:command name='movesidefloat' value='movesidefloat'/>
- <cd:command name='navigating' value='navigating'/>
- <cd:command name='nodimension' value='zadnyrozmer'/>
- <cd:command name='noheaderandfooterlines' value='zadnezahlaviaupati'/>
- <cd:command name='noindenting' value='zadneodsazovani'/>
- <cd:command name='noitem' value='noitem'/>
- <cd:command name='nolist' value='zadnyseznam'/>
- <cd:command name='nomarking' value='zadneznaceni'/>
- <cd:command name='nomoreblocks' value='zadnedalsibloky'/>
- <cd:command name='nomorefiles' value='zadnedalsisoubory'/>
- <cd:command name='nop' value='nop'/>
- <cd:command name='nospace' value='zadnamezera'/>
- <cd:command name='note' value='poznamka'/>
- <cd:command name='notesymbol' value='notesymbol'/>
- <cd:command name='notopandbottomlines' value='zadnehorniadolniradky'/>
- <cd:command name='notsmallcapped' value='nokap'/>
- <cd:command name='nowhitespace' value='zadnebilemisto'/>
- <cd:command name='numberofsubpages' value='numberofsubpages'/>
- <cd:command name='numbers' value='cisla'/>
- <cd:command name='outeredgedistance' value='outeredgedistance'/>
- <cd:command name='outeredgewidth' value='outeredgewidth'/>
- <cd:command name='outermargindistance' value='outermargindistance'/>
- <cd:command name='outermarginwidth' value='outermarginwidth'/>
- <cd:command name='packed' value='zhustene'/>
- <cd:command name='page' value='strana'/>
- <cd:command name='pagebreak' value='pagebreak'/>
- <cd:command name='pagedepth' value='pagedepth'/>
- <cd:command name='pagenumber' value='cislostrany'/>
- <cd:command name='pageoffset' value='pageoffset'/>
- <cd:command name='pagereference' value='odkaznastranu'/>
- <cd:command name='paperheight' value='vyskapapiru'/>
- <cd:command name='paperwidth' value='sirkapapiru'/>
- <cd:command name='periods' value='tecky'/>
- <cd:command name='placebookmarks' value='umistizalozky'/>
- <cd:command name='placecombinedlist' value='umistikombinovanyseznam'/>
- <cd:command name='placefloat' value='placefloat'/>
- <cd:command name='placefootnotes' value='umistipoznamkypodcarou'/>
- <cd:command name='placeformula' value='umistirovnici'/>
- <cd:command name='placeheadnumber' value='placeheadnumber'/>
- <cd:command name='placeheadtext' value='placeheadtext'/>
- <cd:command name='placelegend' value='umistilegendu'/>
- <cd:command name='placelist' value='umistiseznam'/>
- <cd:command name='placelistofsynonyms' value='placelistofsynonyms'/>
- <cd:command name='placelocalfootnotes' value='umistilokalnipoznamkypodcarou'/>
- <cd:command name='placelocalnotes' value='placelocalnotes'/>
- <cd:command name='placelogos' value='umistiloga'/>
- <cd:command name='placenamedfloat' value='placenamedfloat'/>
- <cd:command name='placenotes' value='placenotes'/>
- <cd:command name='placeongrid' value='umistinamrizku'/>
- <cd:command name='placeontopofeachother' value='umistinadsebe'/>
- <cd:command name='placepagenumber' value='placepagenumber'/>
- <cd:command name='placerawlist' value='placerawlist'/>
- <cd:command name='placereferencelist' value='placereferencelist'/>
- <cd:command name='placeregister' value='umistirejstrik'/>
- <cd:command name='placerule' value='placerule'/>
- <cd:command name='placesidebyside' value='umistivedlesebe'/>
- <cd:command name='placesubformula' value='umistipodrovnici'/>
- <cd:command name='placetextvariable' value='placetextvariable'/>
- <cd:command name='position' value='pozice'/>
- <cd:command name='positiontext' value='positiontext'/>
- <cd:command name='postponenotes' value='postponenotes'/>
- <cd:command name='postponingnotes' value='postponingnotes'/>
- <cd:command name='predefinedfont' value='predefinedfont'/>
- <cd:command name='predefinefont' value='predefinefont'/>
- <cd:command name='presetdocument' value='presetdocument'/>
- <cd:command name='prettyprintbuffer' value='prettyprintbuffer'/>
- <cd:command name='preventmode' value='preventmode'/>
- <cd:command name='printpaperheight' value='vyskatiskpapiru'/>
- <cd:command name='printpaperwidth' value='sirkatiskpapiru'/>
- <cd:command name='processblocks' value='zpracujbloky'/>
- <cd:command name='processbodyfontenvironmentlist' value='processbodyfontenvironmentlist'/>
- <cd:command name='processpage' value='zpracujstranu'/>
- <cd:command name='product' value='produkt'/>
- <cd:command name='program' value='program'/>
- <cd:command name='project' value='projekt'/>
- <cd:command name='publication' value='publikace'/>
- <cd:command name='quotation' value='citace'/>
- <cd:command name='quote' value='citovat'/>
- <cd:command name='ran' value='ran'/>
- <cd:command name='redo' value='opakovat'/>
- <cd:command name='redoconvertfont' value='redoconvertfont'/>
- <cd:command name='ref' value='ref'/>
- <cd:command name='reference' value='odkaz'/>
- <cd:command name='referral' value='odkaz'/>
- <cd:command name='referraldate' value='odkaznadatum'/>
- <cd:command name='referring' value='odkazujici'/>
- <cd:command name='registerfontclass' value='registerfontclass'/>
- <cd:command name='registerhyphenationexception' value='registerhyphenationexception'/>
- <cd:command name='registerhyphenationpattern' value='registerhyphenationpattern'/>
- <cd:command name='remark' value='oznaceni'/>
- <cd:command name='replacefeature' value='replacefeature'/>
- <cd:command name='reset' value='reset'/>
- <cd:command name='resetandaddfeature' value='resetandaddfeature'/>
- <cd:command name='resetcharacteralign' value='resetcharacteralign'/>
- <cd:command name='resetcharacterkerning' value='resetcharacterkerning'/>
- <cd:command name='resetcharacterspacing' value='resetcharacterspacing'/>
- <cd:command name='resetcharacterstripping' value='resetcharacterstripping'/>
- <cd:command name='resetfeature' value='resetfeature'/>
- <cd:command name='resetfontcolorsheme' value='resetfontcolorsheme'/>
- <cd:command name='resetfontfallback' value='resetfontfallback'/>
- <cd:command name='resetfontsolution' value='resetfontsolution'/>
- <cd:command name='resethyphenationfeatures' value='resethyphenationfeatures'/>
- <cd:command name='resetlocalfloats' value='resetlocalfloats'/>
- <cd:command name='resetmarking' value='resetznaceni'/>
- <cd:command name='resetmode' value='resetmode'/>
- <cd:command name='resetnumber' value='resetnumber'/>
- <cd:command name='resetpath' value='resetpath'/>
- <cd:command name='resetperiodkerning' value='resetperiodkerning'/>
- <cd:command name='resetsystemmode' value='resetsystemmode'/>
- <cd:command name='resettextcontent' value='resettextcontent'/>
- <cd:command name='resetvisualizers' value='resetvisualizers'/>
- <cd:command name='restoreglobalbodyfont' value='restoreglobalbodyfont'/>
- <cd:command name='retestfeature' value='retestfeature'/>
- <cd:command name='revivefeature' value='revivefeature'/>
- <cd:command name='rightaligned' value='zarovnanovpravo'/>
- <cd:command name='rightbottombox' value='rightbottombox'/>
- <cd:command name='rightedgedistance' value='vzdalenostpravehookraje'/>
- <cd:command name='rightedgewidth' value='sirkapravehookraje'/>
- <cd:command name='rightline' value='rightline'/>
- <cd:command name='rightmargindistance' value='vzdalenostpravemarginalie'/>
- <cd:command name='rightmarginwidth' value='sirkapravemarginalie'/>
- <cd:command name='romannumerals' value='rimskecislice'/>
- <cd:command name='rotate' value='otocit'/>
- <cd:command name='savebuffer' value='savebuffer'/>
- <cd:command name='scale' value='meritko'/>
- <cd:command name='screen' value='obrazovka'/>
- <cd:command name='selectblocks' value='vyberbloky'/>
- <cd:command name='selectpaper' value='vyberpapir'/>
- <cd:command name='selectversion' value='vyberverzi'/>
- <cd:command name='setbigbodyfont' value='setbigbodyfont'/>
- <cd:command name='setcharacteralign' value='setcharacteralign'/>
- <cd:command name='setcharacteraligndetail' value='setcharacteraligndetail'/>
- <cd:command name='setcharactercasing' value='setcharactercasing'/>
- <cd:command name='setcharactercleaning' value='setcharactercleaning'/>
- <cd:command name='setcharacterkerning' value='setcharacterkerning'/>
- <cd:command name='setcharacterspacing' value='setcharacterspacing'/>
- <cd:command name='setcharacterstripping' value='setcharacterstripping'/>
- <cd:command name='setcurrentfontclass' value='setcurrentfontclass'/>
- <cd:command name='setfirstline' value='setfirstline'/>
- <cd:command name='setfirstpasscharacteralign' value='setfirstpasscharacteralign'/>
- <cd:command name='setfont' value='setfont'/>
- <cd:command name='setfontcolorsheme' value='setfontcolorsheme'/>
- <cd:command name='setfontfeature' value='setfontfeature'/>
- <cd:command name='setfontsolution' value='setfontsolution'/>
- <cd:command name='setfontstrut' value='setfontstrut'/>
- <cd:command name='sethyphenationfeatures' value='sethyphenationfeatures'/>
- <cd:command name='setmainbodyfont' value='setmainbodyfont'/>
- <cd:command name='setmode' value='setmode'/>
- <cd:command name='setnote' value='setnote'/>
- <cd:command name='setnotetext' value='setnotetext'/>
- <cd:command name='setnumber' value='setnumber'/>
- <cd:command name='setperiodkerning' value='setperiodkerning'/>
- <cd:command name='setsecondpasscharacteralign' value='setsecondpasscharacteralign'/>
- <cd:command name='setsmallbodyfont' value='setsmallbodyfont'/>
- <cd:command name='setsystemmode' value='setsystemmode'/>
- <cd:command name='settextcontent' value='settextcontent'/>
- <cd:command name='settextvariable' value='settextvariable'/>
- <cd:command name='setupalign' value='nastavzarovnani'/>
- <cd:command name='setupanswerarea' value='setupanswerarea'/>
- <cd:command name='setuparranging' value='nastavusporadani'/>
- <cd:command name='setupattachment' value='setupattachment'/>
- <cd:command name='setupbackground' value='nastavpozadi'/>
- <cd:command name='setupbackgrounds' value='nastavpozadi'/>
- <cd:command name='setupblackrules' value='nastavcernelinky'/>
- <cd:command name='setupblank' value='nastavpreskok'/>
- <cd:command name='setupblock' value='nastavblok'/>
- <cd:command name='setupbodyfont' value='nastavzakladnifont'/>
- <cd:command name='setupbodyfontenvironment' value='nastavprostredizakladnihofontu'/>
- <cd:command name='setupbottom' value='nastavspodek'/>
- <cd:command name='setupbottomtexts' value='nastavdolnitexty'/>
- <cd:command name='setupbuffer' value='nastavbuffer'/>
- <cd:command name='setupbuttons' value='nastavtlacitka'/>
- <cd:command name='setupcapitals' value='nastavkapitalky'/>
- <cd:command name='setupcaption' value='nastavpopisek'/>
- <cd:command name='setupcaptions' value='nastavpopisky'/>
- <cd:command name='setupcharacteralign' value='setupcharacteralign'/>
- <cd:command name='setupcharacterkerning' value='setupcharacterkerning'/>
- <cd:command name='setupcharacterspacing' value='setupcharacterspacing'/>
- <cd:command name='setupclipping' value='nastavorez'/>
- <cd:command name='setupcolor' value='nastavbarvu'/>
- <cd:command name='setupcolors' value='nastavbarvy'/>
- <cd:command name='setupcolumns' value='nastavsloupce'/>
- <cd:command name='setupcolumnset' value='setupcolumnset'/>
- <cd:command name='setupcolumnsetlines' value='setupcolumnsetlines'/>
- <cd:command name='setupcolumnsetstart' value='setupcolumnsetstart'/>
- <cd:command name='setupcombinations' value='nastavspojeni'/>
- <cd:command name='setupcombinedlist' value='nastavkombinovanyseznam'/>
- <cd:command name='setupcomment' value='nastavkomentar'/>
- <cd:command name='setupcounter' value='setupcounter'/>
- <cd:command name='setupdescription' value='setupdescription'/>
- <cd:command name='setupdescriptions' value='nastavpopisy'/>
- <cd:command name='setupenumeration' value='setupenumeration'/>
- <cd:command name='setupenumerations' value='nastavvycty'/>
- <cd:command name='setupexternalfigures' value='nastavexterniobrazy'/>
- <cd:command name='setupfield' value='nastavpole'/>
- <cd:command name='setupfields' value='nastavvsechnapole'/>
- <cd:command name='setupfillinlines' value='nastavvyplnoveradky'/>
- <cd:command name='setupfillinrules' value='nastavvyplnovelinky'/>
- <cd:command name='setupfirstline' value='setupfirstline'/>
- <cd:command name='setupfloat' value='nastavplvouciobjekt'/>
- <cd:command name='setupfloats' value='nastavplvouciobjekty'/>
- <cd:command name='setupfloatsplitting' value='nastavdeleniplvoucichobjektu'/>
- <cd:command name='setupfontexpansion' value='setupfontexpansion'/>
- <cd:command name='setupfontprotrusion' value='setupfontprotrusion'/>
- <cd:command name='setupfonts' value='setupfonts'/>
- <cd:command name='setupfontsolution' value='setupfontsolution'/>
- <cd:command name='setupfooter' value='nastavupati'/>
- <cd:command name='setupfootertexts' value='nastavtextyupati'/>
- <cd:command name='setupfootnotedefinition' value='nastavdefinicipoznamekpodcarou'/>
- <cd:command name='setupfootnotes' value='nastavpoznamkypodcarou'/>
- <cd:command name='setupforms' value='setupforms'/>
- <cd:command name='setupformula' value='setupformula'/>
- <cd:command name='setupformulas' value='nastavrovnice'/>
- <cd:command name='setupframed' value='nastavoramovani'/>
- <cd:command name='setupframedtext' value='setupframedtext'/>
- <cd:command name='setupframedtexts' value='nastavoramovanetexty'/>
- <cd:command name='setuphead' value='nastavnadpis'/>
- <cd:command name='setupheader' value='nastavzahlavi'/>
- <cd:command name='setupheadertexts' value='nastavtextyzahlavi'/>
- <cd:command name='setupheadnumber' value='nastavcislonadpisu'/>
- <cd:command name='setupheads' value='nastavnadpisy'/>
- <cd:command name='setupheadtext' value='nastavtexthlavicky'/>
- <cd:command name='setuphyphenation' value='setuphyphenation'/>
- <cd:command name='setuphyphenmark' value='nastavdelitko'/>
- <cd:command name='setupindentedtext' value='setupindentedtext'/>
- <cd:command name='setupindenting' value='nastavodsazovani'/>
- <cd:command name='setupinmargin' value='nastavmarginalie'/>
- <cd:command name='setupinteraction' value='nastavinterakci'/>
- <cd:command name='setupinteractionbar' value='nastavinterakcnilistu'/>
- <cd:command name='setupinteractionmenu' value='nastavinterakcnimenu'/>
- <cd:command name='setupinteractionscreen' value='nastavinterakcniobrazovku'/>
- <cd:command name='setupinterlinespace' value='nastavmeziradkovoumezeru'/>
- <cd:command name='setupitemgroup' value='setupitemgroup'/>
- <cd:command name='setupitemgroups' value='nastavvycty'/>
- <cd:command name='setupitems' value='nastavpolozky'/>
- <cd:command name='setuplabeltext' value='nastavtextpopisku'/>
- <cd:command name='setuplanguage' value='nastavjazyk'/>
- <cd:command name='setuplayout' value='nastavvzhled'/>
- <cd:command name='setuplegend' value='nastavlegendu'/>
- <cd:command name='setuplinenote' value='setuplinenote'/>
- <cd:command name='setuplinenumbering' value='nastavcislovaniradku'/>
- <cd:command name='setuplines' value='nastavradky'/>
- <cd:command name='setuplinewidth' value='nastavsirkucary'/>
- <cd:command name='setuplist' value='nastavseznam'/>
- <cd:command name='setupmakeup' value='nastavupravu'/>
- <cd:command name='setupmarginblock' value='setupmarginblock'/>
- <cd:command name='setupmarginblocks' value='nastavmarginalniblok'/>
- <cd:command name='setupmargindata' value='setupmargindata'/>
- <cd:command name='setupmarginrules' value='nastavmarginalnilinky'/>
- <cd:command name='setupmarking' value='nastavznaceni'/>
- <cd:command name='setupmathalignment' value='setupmathalignment'/>
- <cd:command name='setupnarrower' value='nastavzuzeni'/>
- <cd:command name='setupnotation' value='setupnotation'/>
- <cd:command name='setupnotations' value='setupnotations'/>
- <cd:command name='setupnote' value='setupnote'/>
- <cd:command name='setupnotes' value='setupnotes'/>
- <cd:command name='setupnumber' value='setupnumber'/>
- <cd:command name='setupnumbering' value='nastavcislovani'/>
- <cd:command name='setupoppositeplacing' value='nastavumisteniprotejsku'/>
- <cd:command name='setupoutput' value='nastavvystup'/>
- <cd:command name='setuppagecomment' value='nastavkomentarstrany'/>
- <cd:command name='setuppagenumber' value='nastavcislostrany'/>
- <cd:command name='setuppagenumbering' value='nastavcislovanistran'/>
- <cd:command name='setuppagetransitions' value='nastavprechodstrany'/>
- <cd:command name='setuppalet' value='nastavpaletu'/>
- <cd:command name='setuppaper' value='setuppaper'/>
- <cd:command name='setuppapersize' value='nastavvelikostpapiru'/>
- <cd:command name='setupparagraphnumbering' value='nastavcislovaniodstavcu'/>
- <cd:command name='setupparagraphs' value='nastavodstavce'/>
- <cd:command name='setupperiodkerning' value='setupperiodkerning'/>
- <cd:command name='setupplacement' value='setupplacement'/>
- <cd:command name='setuppositioning' value='nastavumistovani'/>
- <cd:command name='setupprofiles' value='nastavprofily'/>
- <cd:command name='setupprograms' value='nastavprogramy'/>
- <cd:command name='setuppublications' value='nastavpublikace'/>
- <cd:command name='setupquote' value='nastavcitaci'/>
- <cd:command name='setupreferencelist' value='nastavseznamodkazu'/>
- <cd:command name='setupreferencing' value='nastavodkazovani'/>
- <cd:command name='setupregister' value='nastavrejstrik'/>
- <cd:command name='setuprotate' value='nastavotoceni'/>
- <cd:command name='setuprule' value='setuprule'/>
- <cd:command name='setupscreens' value='nastavrastr'/>
- <cd:command name='setupsection' value='nastavsekci'/>
- <cd:command name='setupsectionblock' value='nastavbloksekce'/>
- <cd:command name='setupsorting' value='nastavtrideni'/>
- <cd:command name='setupspacing' value='nastavradkovani'/>
- <cd:command name='setupstartstop' value='setupstartstop'/>
- <cd:command name='setupstrut' value='setupstrut'/>
- <cd:command name='setupsubpagenumber' value='nastavpodcislostrany'/>
- <cd:command name='setupsymbolset' value='nastavsadusymbolu'/>
- <cd:command name='setupsynchronization' value='nastavsynchronizaci'/>
- <cd:command name='setupsynchronizationbar' value='nastavsynchronizacnilistu'/>
- <cd:command name='setupsynonyms' value='nastavsynonyma'/>
- <cd:command name='setupsystem' value='nastavsystem'/>
- <cd:command name='setuptab' value='nastavtab'/>
- <cd:command name='setuptables' value='nastavtabulky'/>
- <cd:command name='setuptabulate' value='nastavtabelaci'/>
- <cd:command name='setuptext' value='nastavtext'/>
- <cd:command name='setuptextbackground' value='setuptextbackground'/>
- <cd:command name='setuptextnote' value='setuptextnote'/>
- <cd:command name='setuptextposition' value='setuptextposition'/>
- <cd:command name='setuptextrules' value='nastavtextovelinky'/>
- <cd:command name='setuptexttexts' value='nastavtexttexty'/>
- <cd:command name='setuptextvariable' value='setuptextvariable'/>
- <cd:command name='setupthinrules' value='nastavtenkelinky'/>
- <cd:command name='setuptolerance' value='nastavtoleranci'/>
- <cd:command name='setuptop' value='nastavhorejsek'/>
- <cd:command name='setuptoptexts' value='nastavhornitexty'/>
- <cd:command name='setuptype' value='nastavtype'/>
- <cd:command name='setuptyping' value='nastavopis'/>
- <cd:command name='setupunderbar' value='nastavpodtrzeni'/>
- <cd:command name='setupurl' value='nastavurl'/>
- <cd:command name='setupversions' value='nastavverze'/>
- <cd:command name='setupwhitespace' value='nastavbilamista'/>
- <cd:command name='setvisualizerfont' value='setvisualizerfont'/>
- <cd:command name='showbodyfont' value='ukazzakladnifont'/>
- <cd:command name='showbodyfontenvironment' value='ukazpostredizakladnihofontu'/>
- <cd:command name='showcolor' value='ukazbarvu'/>
- <cd:command name='showcolorgroup' value='ukazskupinubarev'/>
- <cd:command name='showcounter' value='showcounter'/>
- <cd:command name='showexternalfigures' value='ukazexterniobrazy'/>
- <cd:command name='showfields' value='ukazpole'/>
- <cd:command name='showfont' value='showfont'/>
- <cd:command name='showfontdata' value='showfontdata'/>
- <cd:command name='showfontexpansion' value='showfontexpansion'/>
- <cd:command name='showfontitalics' value='showfontitalics'/>
- <cd:command name='showfontkerns' value='showfontkerns'/>
- <cd:command name='showfontparameters' value='showfontparameters'/>
- <cd:command name='showfontstrip' value='showfontstrip'/>
- <cd:command name='showfontstyle' value='showfontstyle'/>
- <cd:command name='showframe' value='ukazramecek'/>
- <cd:command name='showgrid' value='ukazmrizku'/>
- <cd:command name='showhyphenationtrace' value='showhyphenationtrace'/>
- <cd:command name='showkerning' value='showkerning'/>
- <cd:command name='showlayout' value='ukazvzhled'/>
- <cd:command name='showmakeup' value='ukazupravu'/>
- <cd:command name='showminimalbaseline' value='showminimalbaseline'/>
- <cd:command name='showpalet' value='ukazpaletu'/>
- <cd:command name='showprint' value='ukazvytisk'/>
- <cd:command name='showsetups' value='ukaznastaveni'/>
- <cd:command name='showstruts' value='ukazpodpery'/>
- <cd:command name='showsymbolset' value='ukazsadusymbolu'/>
- <cd:command name='smallcapped' value='kap'/>
- <cd:command name='someline' value='nejakyradek'/>
- <cd:command name='somewhere' value='nekde'/>
- <cd:command name='space' value='mezera'/>
- <cd:command name='specialitem' value='specialitem'/>
- <cd:command name='splitfloat' value='rozdelplvouciobjekt'/>
- <cd:command name='startalignment' value='startzarovnavani'/>
- <cd:command name='startbackground' value='startpozadi'/>
- <cd:command name='startcoding' value='startkodovani'/>
- <cd:command name='startcolor' value='startbarva'/>
- <cd:command name='startcolumnmakeup' value='startcolumnmakeup'/>
- <cd:command name='startcolumns' value='startsloupce'/>
- <cd:command name='startcolumnset' value='startcolumnset'/>
- <cd:command name='startcombination' value='startspojeni'/>
- <cd:command name='startcomponent' value='startkomponenta'/>
- <cd:command name='startdocument' value='startdokument'/>
- <cd:command name='startenvironment' value='startprostredi'/>
- <cd:command name='startfigure' value='startobraz'/>
- <cd:command name='startframed' value='startframed'/>
- <cd:command name='startglobal' value='startglobalni'/>
- <cd:command name='startline' value='startradek'/>
- <cd:command name='startlinecorrection' value='startkorekceradku'/>
- <cd:command name='startlinenote' value='startlinenote'/>
- <cd:command name='startlinenumbering' value='startcislovaniradku'/>
- <cd:command name='startlines' value='startradky'/>
- <cd:command name='startlocal' value='startlokalni'/>
- <cd:command name='startlocalfootnotes' value='startlokalnipoznamkypodcarou'/>
- <cd:command name='startmakeup' value='startuprava'/>
- <cd:command name='startmarginblock' value='startmarginalniblok'/>
- <cd:command name='startmarginrule' value='startmarginalnilinka'/>
- <cd:command name='startnarrower' value='startzuzeni'/>
- <cd:command name='startopposite' value='startprotejsek'/>
- <cd:command name='startoverlay' value='startprekryv'/>
- <cd:command name='startoverview' value='startprehled'/>
- <cd:command name='startpacked' value='startzhustene'/>
- <cd:command name='startpositioning' value='startumistovani'/>
- <cd:command name='startproduct' value='startprodukt'/>
- <cd:command name='startprofile' value='startprofil'/>
- <cd:command name='startproject' value='startprojekt'/>
- <cd:command name='startquotation' value='startcitace'/>
- <cd:command name='startraster' value='startrastr'/>
- <cd:command name='startsymbolset' value='startsadasymbolu'/>
- <cd:command name='startsynchronization' value='startsynchronizace'/>
- <cd:command name='starttable' value='starttabulka'/>
- <cd:command name='starttables' value='starttabulky'/>
- <cd:command name='starttext' value='starttext'/>
- <cd:command name='starttextbackground' value='starttextbackground'/>
- <cd:command name='starttextrule' value='starttextovalinka'/>
- <cd:command name='startunpacked' value='startnezhustene'/>
- <cd:command name='startversion' value='startverze'/>
- <cd:command name='stopalignment' value='stopzarovnavani'/>
- <cd:command name='stopbackground' value='stoppozadi'/>
- <cd:command name='stopcoding' value='stopkodovani'/>
- <cd:command name='stopcolor' value='stopbarva'/>
- <cd:command name='stopcolumnmakeup' value='stopcolumnmakeup'/>
- <cd:command name='stopcolumns' value='stopsloupce'/>
- <cd:command name='stopcolumnset' value='stopcolumnset'/>
- <cd:command name='stopcombination' value='stopspojeni'/>
- <cd:command name='stopcomponent' value='stopkomponenta'/>
- <cd:command name='stopdocument' value='stopdokument'/>
- <cd:command name='stopenvironment' value='stopprostredi'/>
- <cd:command name='stopframed' value='stopframed'/>
- <cd:command name='stopglobal' value='stopglobalni'/>
- <cd:command name='stopline' value='stopradek'/>
- <cd:command name='stoplinecorrection' value='stopkorekceradku'/>
- <cd:command name='stoplinenote' value='stoplinenote'/>
- <cd:command name='stoplinenumbering' value='stopcislovaniradku'/>
- <cd:command name='stoplines' value='stopradky'/>
- <cd:command name='stoplocal' value='stoplokalni'/>
- <cd:command name='stoplocalfootnotes' value='stoplokalnipoznamkypodcarou'/>
- <cd:command name='stopmakeup' value='stopuprava'/>
- <cd:command name='stopmarginblock' value='stopmarginalniblok'/>
- <cd:command name='stopmarginrule' value='stopmarginalnilinka'/>
- <cd:command name='stopnarrower' value='stopzuzeni'/>
- <cd:command name='stopopposite' value='stopprotejsek'/>
- <cd:command name='stopoverlay' value='stopprekryv'/>
- <cd:command name='stopoverview' value='stopprehled'/>
- <cd:command name='stoppacked' value='stopzhustene'/>
- <cd:command name='stoppositioning' value='stopumistovani'/>
- <cd:command name='stopproduct' value='stopprodukt'/>
- <cd:command name='stopprofile' value='stopprofil'/>
- <cd:command name='stopproject' value='stopprojekt'/>
- <cd:command name='stopquotation' value='stopcitace'/>
- <cd:command name='stopraster' value='stoprastr'/>
- <cd:command name='stopsynchronization' value='stopsynchronizace'/>
- <cd:command name='stoptable' value='stoptabulka'/>
- <cd:command name='stoptables' value='stoptabulky'/>
- <cd:command name='stoptext' value='stoptext'/>
- <cd:command name='stoptextbackground' value='stoptextbackground'/>
- <cd:command name='stoptextrule' value='stoptextovalinka'/>
- <cd:command name='stopunpacked' value='stopnezhustene'/>
- <cd:command name='stopversion' value='stopverze'/>
- <cd:command name='stretched' value='roztazene'/>
- <cd:command name='strictinspectnextcharacter' value='strictinspectnextcharacter'/>
- <cd:command name='stripcharacter' value='stripcharacter'/>
- <cd:command name='subformulanumber' value='cislopodrovnice'/>
- <cd:command name='subpagenumber' value='subpagenumber'/>
- <cd:command name='subtractfeature' value='subtractfeature'/>
- <cd:command name='switchtobodyfont' value='prepninazakladnifont'/>
- <cd:command name='switchtorawfont' value='switchtorawfont'/>
- <cd:command name='sym' value='sym'/>
- <cd:command name='symbol' value='symbol'/>
- <cd:command name='symoffset' value='symoffset'/>
- <cd:command name='synchronizationbar' value='synchronizacnilista'/>
- <cd:command name='synchronize' value='synchronizovat'/>
- <cd:command name='tab' value='tab'/>
- <cd:command name='testcolumn' value='testcolumn'/>
- <cd:command name='testfeature' value='testfeature'/>
- <cd:command name='testfeatureonce' value='testfeatureonce'/>
- <cd:command name='testpage' value='testpage'/>
- <cd:command name='tex' value='tex'/>
- <cd:command name='textbackground' value='textbackground'/>
- <cd:command name='textcolor' value='textcolor'/>
- <cd:command name='textheight' value='vyskatextu'/>
- <cd:command name='textnote' value='textnote'/>
- <cd:command name='textreference' value='odkaznatext'/>
- <cd:command name='textrule' value='textovalinka'/>
- <cd:command name='textvariable' value='textvariable'/>
- <cd:command name='textwidth' value='sirkatextu'/>
- <cd:command name='thefirstcharacter' value='thefirstcharacter'/>
- <cd:command name='thenormalizedbodyfontsize' value='thenormalizedbodyfontsize'/>
- <cd:command name='theremainingcharacters' value='theremainingcharacters'/>
- <cd:command name='thinrule' value='tenkalinka'/>
- <cd:command name='thinrules' value='tenkelinky'/>
- <cd:command name='tolinenote' value='tolinenote'/>
- <cd:command name='tooltip' value='bublinkovanapoveda'/>
- <cd:command name='topdistance' value='vzdalenosthorejsku'/>
- <cd:command name='topheight' value='vyskahorejsku'/>
- <cd:command name='topspace' value='odsazenishora'/>
- <cd:command name='totalnumberofpages' value='celkovypocetstran'/>
- <cd:command name='translate' value='prelozit'/>
- <cd:command name='txt' value='txt'/>
- <cd:command name='typ' value='pis'/>
- <cd:command name='type' value='opis'/>
- <cd:command name='typebuffer' value='typebuffer'/>
- <cd:command name='typedefinedbuffer' value='typedefinedbuffer'/>
- <cd:command name='typefile' value='opissoubor'/>
- <cd:command name='typeinlinebuffer' value='typeinlinebuffer'/>
- <cd:command name='typing' value='typing'/>
- <cd:command name='unitmeaning' value='vyznam'/>
- <cd:command name='unknown' value='neznamo'/>
- <cd:command name='unregisterhyphenationpattern' value='unregisterhyphenationpattern'/>
- <cd:command name='useJSscripts' value='uzijJSscripts'/>
- <cd:command name='useURL' value='uzijURL'/>
- <cd:command name='useXMLfilter' value='useXMLfilter'/>
- <cd:command name='useblocks' value='uzijbloky'/>
- <cd:command name='usebodyfont' value='usebodyfont'/>
- <cd:command name='usebodyfontparameter' value='usebodyfontparameter'/>
- <cd:command name='usecommands' value='uzijprikazy'/>
- <cd:command name='useencoding' value='uzijkodovani'/>
- <cd:command name='useexternaldocument' value='uzijexternidokument'/>
- <cd:command name='useexternalfigure' value='uzijexterniobraz'/>
- <cd:command name='useexternalfile' value='uzijexternisoubor'/>
- <cd:command name='useexternalfiles' value='uzijexternisoubory'/>
- <cd:command name='useexternalsoundtrack' value='uzijexternizvuk'/>
- <cd:command name='usemodule' value='uzijmodul'/>
- <cd:command name='usemodules' value='uzijmoduly'/>
- <cd:command name='usepath' value='uzijadresar'/>
- <cd:command name='usereferences' value='uzijodkazy'/>
- <cd:command name='usespecials' value='uzijspeciality'/>
- <cd:command name='usesymbols' value='uzijsymbol'/>
- <cd:command name='usetypescript' value='usetypescript'/>
- <cd:command name='usetypescriptfile' value='usetypescriptfile'/>
- <cd:command name='useurl' value='uzijurl'/>
- <cd:command name='verbatim' value='verbatim'/>
- <cd:command name='version' value='verze'/>
- <cd:command name='vl' value='vl'/>
- <cd:command name='weekday' value='vsedniden'/>
- <cd:command name='whitespace' value='bilemisto'/>
- <cd:command name='widthspanningtext' value='widthspanningtext'/>
- <cd:command name='wordright' value='slovovpravo'/>
- <cd:command name='writebetweenlist' value='zapismeziseznam'/>
- <cd:command name='writetolist' value='zapisdoseznamu'/>
- <cd:command name='writetoreferencelist' value='zapisdoseznamuodkazu'/>
- <cd:command name='writetoregister' value='zapisdorejstriku'/>
- </cd:commands>
-
-</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-cz.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-cz.xml
deleted file mode 100644
index ef47e5f3f22..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-cz.xml
+++ /dev/null
@@ -1,1590 +0,0 @@
-<?xml version='1.0'?>
-
-<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='cz' version='2008.10.21 19:42'>
-
- <!-- definitions for interface variables for language cz -->
-
- <cd:variables>
- <cd:variable name='Addition' value='Pridavek'/>
- <cd:variable name='Balloon' value='Bublinka'/>
- <cd:variable name='Character' value='Pismeno'/>
- <cd:variable name='Characters' value='Pismena'/>
- <cd:variable name='CloseDocument' value='ZavritDokument'/>
- <cd:variable name='ExitViewer' value='UkoncitProhlizec'/>
- <cd:variable name='FirstPage' value='PrvniStrana'/>
- <cd:variable name='FitHeight' value='FitHeight'/>
- <cd:variable name='FitWidth' value='FitWidth'/>
- <cd:variable name='GotoPage' value='JdiNaStranku'/>
- <cd:variable name='Greek' value='Recky'/>
- <cd:variable name='Help' value='Napoveda'/>
- <cd:variable name='HideField' value='SkryjPole'/>
- <cd:variable name='HideLayer' value='HideLayer'/>
- <cd:variable name='Key' value='Klavesa'/>
- <cd:variable name='LastPage' value='PosledniStrana'/>
- <cd:variable name='LoadForm' value='NacistFormular'/>
- <cd:variable name='MONTH' value='MESIC'/>
- <cd:variable name='New' value='Novy'/>
- <cd:variable name='NextJump' value='NasledujiciSkok'/>
- <cd:variable name='NextPage' value='DalsiStrana'/>
- <cd:variable name='Numbers' value='Cisla'/>
- <cd:variable name='OpenNamedDocument' value='OpenNamedDocument'/>
- <cd:variable name='Paragraph' value='Odstavec'/>
- <cd:variable name='PauseMovie' value='PozastavitFilm'/>
- <cd:variable name='PauseRendering' value='PauseRendering'/>
- <cd:variable name='PauseSound' value='PozastavitZvuk'/>
- <cd:variable name='PreviousJump' value='PredchoziSkok'/>
- <cd:variable name='PreviousPage' value='PredchoziStrana'/>
- <cd:variable name='PrintDocument' value='VytisknoutDokument'/>
- <cd:variable name='Query' value='Query'/>
- <cd:variable name='QueryAgain' value='QueryAgain'/>
- <cd:variable name='ResetForm' value='ResetFormulare'/>
- <cd:variable name='ResumeMovie' value='PokracovatFilm'/>
- <cd:variable name='ResumeRendering' value='ResumeRendering'/>
- <cd:variable name='ResumeSound' value='PokracovatZvuk'/>
- <cd:variable name='Romannumerals' value='Rimskecislice'/>
- <cd:variable name='SaveDocument' value='UlozitDokument'/>
- <cd:variable name='SaveForm' value='UlozitFormular'/>
- <cd:variable name='SaveNamedDocument' value='SaveNamedDocument'/>
- <cd:variable name='SearchAgain' value='HledatZnovu'/>
- <cd:variable name='SearchDocument' value='ProhledatDokument'/>
- <cd:variable name='ShowBookmarks' value='UkazZalozky'/>
- <cd:variable name='ShowField' value='UkazPole'/>
- <cd:variable name='ShowThumbs' value='UkazNahledy'/>
- <cd:variable name='StartMovie' value='SpustitFilm'/>
- <cd:variable name='StartRendering' value='StartRendering'/>
- <cd:variable name='StartSound' value='StartZvuk'/>
- <cd:variable name='StopMovie' value='ZastavitFilm'/>
- <cd:variable name='StopRendering' value='StopRendering'/>
- <cd:variable name='StopSound' value='StopZvuk'/>
- <cd:variable name='SubmitForm' value='PoslatFormular'/>
- <cd:variable name='ToggleLayer' value='ToggleLayer'/>
- <cd:variable name='ToggleViewer' value='ZmenitProhlizec'/>
- <cd:variable name='URL' value='URL'/>
- <cd:variable name='VideLayer' value='VideLayer'/>
- <cd:variable name='ViewerHelp' value='NapovedaProhlizece'/>
- <cd:variable name='WEEKDAY' value='VSEDNIDEN'/>
- <cd:variable name='WORD' value='SLOVO'/>
- <cd:variable name='abbreviation' value='zkratka'/>
- <cd:variable name='abbreviations' value='zkratky'/>
- <cd:variable name='absolute' value='absolutni'/>
- <cd:variable name='action' value='akce'/>
- <cd:variable name='after' value='po'/>
- <cd:variable name='all' value='vse'/>
- <cd:variable name='always' value='vzdy'/>
- <cd:variable name='appendices' value='dodatky'/>
- <cd:variable name='appendix' value='dodatek'/>
- <cd:variable name='april' value='duben'/>
- <cd:variable name='atmargin' value='naokraji'/>
- <cd:variable name='atpage' value='nastrance'/>
- <cd:variable name='august' value='srpen'/>
- <cd:variable name='auto' value='auto'/>
- <cd:variable name='autointro' value='autouvod'/>
- <cd:variable name='back' value='zpet'/>
- <cd:variable name='background' value='pozadi'/>
- <cd:variable name='backmatter' value='epilogy'/>
- <cd:variable name='backpart' value='epilog'/>
- <cd:variable name='backspace' value='zpetnamezera'/>
- <cd:variable name='backward' value='zpet'/>
- <cd:variable name='before' value='pred'/>
- <cd:variable name='big' value='velke'/>
- <cd:variable name='bigbodyfont' value='bigbodyfont'/>
- <cd:variable name='bigpreference' value='vysokapriorita'/>
- <cd:variable name='blank' value='prazdny'/>
- <cd:variable name='blockquote' value='blockquote'/>
- <cd:variable name='bodymatter' value='hlavnicasti'/>
- <cd:variable name='bodypart' value='hlavnicast'/>
- <cd:variable name='bold' value='tucne'/>
- <cd:variable name='bolditalic' value='tucnekurzivni'/>
- <cd:variable name='boldslanted' value='tucnesklonene'/>
- <cd:variable name='bookmark' value='zalozka'/>
- <cd:variable name='both' value='obe'/>
- <cd:variable name='bottom' value='spodek'/>
- <cd:variable name='brief' value='brief'/>
- <cd:variable name='broad' value='siroky'/>
- <cd:variable name='buffer' value='buffer'/>
- <cd:variable name='by' value='skrz'/>
- <cd:variable name='calligraphic' value='kaligraficke'/>
- <cd:variable name='cap' value='kap'/>
- <cd:variable name='capital' value='kapitalky'/>
- <cd:variable name='center' value='center'/>
- <cd:variable name='chapter' value='kapitola'/>
- <cd:variable name='character' value='pismeno'/>
- <cd:variable name='characters' value='pismena'/>
- <cd:variable name='color' value='barevne'/>
- <cd:variable name='column' value='column'/>
- <cd:variable name='columns' value='sloupce'/>
- <cd:variable name='command' value='prikaz'/>
- <cd:variable name='commands' value='prikazy'/>
- <cd:variable name='comment' value='komentar'/>
- <cd:variable name='component' value='komponenta'/>
- <cd:variable name='concept' value='koncept'/>
- <cd:variable name='content' value='obsah'/>
- <cd:variable name='contents' value='obsah'/>
- <cd:variable name='continue' value='pokracovat'/>
- <cd:variable name='controls' value='controls'/>
- <cd:variable name='conversion' value='konverze'/>
- <cd:variable name='current' value='aktualni'/>
- <cd:variable name='cutspace' value='cutspace'/>
- <cd:variable name='date' value='datum'/>
- <cd:variable name='day' value='den'/>
- <cd:variable name='december' value='prosinec'/>
- <cd:variable name='default' value='implicitni'/>
- <cd:variable name='depth' value='podlehloubky'/>
- <cd:variable name='description' value='popis'/>
- <cd:variable name='disable' value='zablokovat'/>
- <cd:variable name='display' value='obrazovka'/>
- <cd:variable name='dot' value='tecka'/>
- <cd:variable name='doublesided' value='dvoustranny'/>
- <cd:variable name='each' value='kazdy'/>
- <cd:variable name='edge' value='hrana'/>
- <cd:variable name='empty' value='prazdne'/>
- <cd:variable name='endnote' value='endnote'/>
- <cd:variable name='enumeration' value='vycet'/>
- <cd:variable name='environment' value='prostredi'/>
- <cd:variable name='even' value='sude'/>
- <cd:variable name='external' value='externi'/>
- <cd:variable name='fact' value='fakt'/>
- <cd:variable name='february' value='unor'/>
- <cd:variable name='figure' value='obrazek'/>
- <cd:variable name='figures' value='obrazky'/>
- <cd:variable name='file' value='soubor'/>
- <cd:variable name='final' value='finalni'/>
- <cd:variable name='first' value='prvni'/>
- <cd:variable name='firstcolumn' value='firstcolumn'/>
- <cd:variable name='firstpage' value='prvnistranka'/>
- <cd:variable name='firstsubpage' value='prvnipodstranka'/>
- <cd:variable name='fit' value='prizpusobive'/>
- <cd:variable name='five' value='pet'/>
- <cd:variable name='fix' value='fixuj'/>
- <cd:variable name='fixed' value='fixne'/>
- <cd:variable name='flexible' value='prizpusobive'/>
- <cd:variable name='float' value='plvouciobjekt'/>
- <cd:variable name='flushinner' value='flushinner'/>
- <cd:variable name='flushleft' value='flushleft'/>
- <cd:variable name='flushouter' value='flushouter'/>
- <cd:variable name='flushright' value='flushright'/>
- <cd:variable name='footer' value='upati'/>
- <cd:variable name='footnote' value='poznamkapodcarou'/>
- <cd:variable name='force' value='sila'/>
- <cd:variable name='foreground' value='popredi'/>
- <cd:variable name='formeel' value='formeel'/>
- <cd:variable name='formula' value='rovnice'/>
- <cd:variable name='formulae' value='rovnice'/>
- <cd:variable name='forward' value='vpred'/>
- <cd:variable name='four' value='ctyri'/>
- <cd:variable name='frame' value='ramecek'/>
- <cd:variable name='framedtext' value='oramovanytext'/>
- <cd:variable name='friday' value='patek'/>
- <cd:variable name='frontmatter' value='prednicasti'/>
- <cd:variable name='frontpart' value='prednicast'/>
- <cd:variable name='global' value='globalne'/>
- <cd:variable name='graphic' value='graf'/>
- <cd:variable name='graphics' value='grafy'/>
- <cd:variable name='gray' value='seda'/>
- <cd:variable name='greek' value='recky'/>
- <cd:variable name='grid' value='mrizka'/>
- <cd:variable name='halfline' value='pulradku'/>
- <cd:variable name='handwritten' value='rukopisne'/>
- <cd:variable name='hang' value='zaveseni'/>
- <cd:variable name='hanging' value='visici'/>
- <cd:variable name='head' value='hlavicka'/>
- <cd:variable name='header' value='zahlavi'/>
- <cd:variable name='height' value='vyska'/>
- <cd:variable name='helptext' value='textnapovedy'/>
- <cd:variable name='hencefore' value='vyse'/>
- <cd:variable name='here' value='zde'/>
- <cd:variable name='hereafter' value='nize'/>
- <cd:variable name='hidden' value='skryte'/>
- <cd:variable name='hiding' value='skryt'/>
- <cd:variable name='high' value='vysoko'/>
- <cd:variable name='horizontal' value='horizontalne'/>
- <cd:variable name='hyphenated' value='hyphenated'/>
- <cd:variable name='hz' value='hz'/>
- <cd:variable name='inbetween' value='mezi'/>
- <cd:variable name='index' value='rejstrik'/>
- <cd:variable name='indices' value='rejstriky'/>
- <cd:variable name='informeel' value='informeel'/>
- <cd:variable name='inherit' value='inherit'/>
- <cd:variable name='inleft' value='vlevo'/>
- <cd:variable name='inmargin' value='naokraji'/>
- <cd:variable name='inner' value='uvnitr'/>
- <cd:variable name='inneredge' value='inneredge'/>
- <cd:variable name='innermargin' value='innermargin'/>
- <cd:variable name='inright' value='vpravo'/>
- <cd:variable name='interaction' value='interakce'/>
- <cd:variable name='interactionmenu' value='interaktivnimenu'/>
- <cd:variable name='intermezzi' value='intermezzi'/>
- <cd:variable name='intermezzo' value='intermezzo'/>
- <cd:variable name='intext' value='dotextu'/>
- <cd:variable name='intro' value='uvod'/>
- <cd:variable name='italic' value='kurziva'/>
- <cd:variable name='italicbold' value='kurzivnitucne'/>
- <cd:variable name='item' value='polozka'/>
- <cd:variable name='itemize' value='vycet'/>
- <cd:variable name='its' value='pol'/>
- <cd:variable name='january' value='leden'/>
- <cd:variable name='joinedup' value='spojeno'/>
- <cd:variable name='july' value='cervenec'/>
- <cd:variable name='june' value='cerven'/>
- <cd:variable name='keep' value='drzet'/>
- <cd:variable name='knockout' value='knockout'/>
- <cd:variable name='label' value='popisek'/>
- <cd:variable name='landscape' value='nasirku'/>
- <cd:variable name='last' value='posledni'/>
- <cd:variable name='lastcolumn' value='lastcolumn'/>
- <cd:variable name='lastpage' value='poslednistrana'/>
- <cd:variable name='lastpagenumber' value='lastpagenumber'/>
- <cd:variable name='lastsubpage' value='poslaednipodstranka'/>
- <cd:variable name='left' value='vlevo'/>
- <cd:variable name='leftedge' value='levahrana'/>
- <cd:variable name='lefthanging' value='lefthanging'/>
- <cd:variable name='leftmargin' value='levyokraj'/>
- <cd:variable name='leftpage' value='levastranka'/>
- <cd:variable name='legend' value='legenda'/>
- <cd:variable name='lesshyphenation' value='lesshyphenation'/>
- <cd:variable name='line' value='radek'/>
- <cd:variable name='linenote' value='linenote'/>
- <cd:variable name='lines' value='radky'/>
- <cd:variable name='list' value='seznam'/>
- <cd:variable name='local' value='lokalne'/>
- <cd:variable name='localenvironment' value='lokalnihoprostredi'/>
- <cd:variable name='logo' value='logo'/>
- <cd:variable name='logos' value='loga'/>
- <cd:variable name='lohi' value='nivy'/>
- <cd:variable name='loose' value='uvolnene'/>
- <cd:variable name='low' value='nizko'/>
- <cd:variable name='ls' value='ls'/>
- <cd:variable name='makeup' value='zlom'/>
- <cd:variable name='mar' value='mar'/>
- <cd:variable name='march' value='brezen'/>
- <cd:variable name='margin' value='marginalie'/>
- <cd:variable name='marginedge' value='textovahrana'/>
- <cd:variable name='margintitle' value='titulmarginalie'/>
- <cd:variable name='marking' value='znaceni'/>
- <cd:variable name='mathalignment' value='mathalignment'/>
- <cd:variable name='mathcases' value='mathcases'/>
- <cd:variable name='mathmatrix' value='mathmatrix'/>
- <cd:variable name='max' value='max'/>
- <cd:variable name='may' value='kveten'/>
- <cd:variable name='mediaeval' value='stredoveky'/>
- <cd:variable name='medium' value='stredni'/>
- <cd:variable name='middle' value='nastred'/>
- <cd:variable name='min' value='min'/>
- <cd:variable name='minheight' value='minvyska'/>
- <cd:variable name='minwidth' value='minsirka'/>
- <cd:variable name='mirrored' value='zrcadleno'/>
- <cd:variable name='monday' value='pondeli'/>
- <cd:variable name='mono' value='mono'/>
- <cd:variable name='month' value='mesic'/>
- <cd:variable name='morehyphenation' value='morehyphenation'/>
- <cd:variable name='name' value='jmeno'/>
- <cd:variable name='narrow' value='uzky'/>
- <cd:variable name='negative' value='negativ'/>
- <cd:variable name='never' value='nikdy'/>
- <cd:variable name='new' value='novy'/>
- <cd:variable name='next' value='dalsi'/>
- <cd:variable name='nextevenpage' value='dalsisudastranka'/>
- <cd:variable name='nextoddpage' value='dalsilichastranka'/>
- <cd:variable name='nextpage' value='dalsistranka'/>
- <cd:variable name='nextsubpage' value='dalsipodstranka'/>
- <cd:variable name='no' value='ne'/>
- <cd:variable name='nocheck' value='nocheck'/>
- <cd:variable name='nofit' value='nofit'/>
- <cd:variable name='nogrid' value='nogrid'/>
- <cd:variable name='nohz' value='nohz'/>
- <cd:variable name='nomarking' value='zadneznaceni'/>
- <cd:variable name='none' value='zadny'/>
- <cd:variable name='nonumber' value='nonumber'/>
- <cd:variable name='normal' value='normalni'/>
- <cd:variable name='nospacing' value='nospacing'/>
- <cd:variable name='not' value='ne'/>
- <cd:variable name='nothanging' value='nothanging'/>
- <cd:variable name='nothyphenated' value='nothyphenated'/>
- <cd:variable name='november' value='listopad'/>
- <cd:variable name='nowhere' value='nikde'/>
- <cd:variable name='nowhite' value='zadnabila'/>
- <cd:variable name='number' value='cislo'/>
- <cd:variable name='numbers' value='cisla'/>
- <cd:variable name='october' value='rijen'/>
- <cd:variable name='odd' value='liche'/>
- <cd:variable name='off' value='vyp'/>
- <cd:variable name='offset' value='offset'/>
- <cd:variable name='old' value='old'/>
- <cd:variable name='on' value='zap'/>
- <cd:variable name='one' value='jedna'/>
- <cd:variable name='opposite' value='naproti'/>
- <cd:variable name='outer' value='vnejsi'/>
- <cd:variable name='outeredge' value='outeredge'/>
- <cd:variable name='outermargin' value='outermargin'/>
- <cd:variable name='overlay' value='prekryv'/>
- <cd:variable name='overprint' value='overprint'/>
- <cd:variable name='packed' value='zhustene'/>
- <cd:variable name='page' value='stranka'/>
- <cd:variable name='pagecomment' value='komentarstranky'/>
- <cd:variable name='pagenumber' value='cislostranky'/>
- <cd:variable name='paper' value='papir'/>
- <cd:variable name='paragraph' value='odstavec'/>
- <cd:variable name='part' value='cast'/>
- <cd:variable name='positive' value='positiv'/>
- <cd:variable name='postponing' value='odlozit'/>
- <cd:variable name='postscript' value='postscript'/>
- <cd:variable name='preference' value='nastaveni'/>
- <cd:variable name='preview' value='nahled'/>
- <cd:variable name='previous' value='predchozi'/>
- <cd:variable name='previousevenpage' value='predchozisudastranka'/>
- <cd:variable name='previousoddpage' value='predchozilichastranka'/>
- <cd:variable name='previouspage' value='predchozistranka'/>
- <cd:variable name='previoussubpage' value='predchozipodstranka'/>
- <cd:variable name='printable' value='tisknutelne'/>
- <cd:variable name='process' value='process'/>
- <cd:variable name='product' value='produkt'/>
- <cd:variable name='program' value='program'/>
- <cd:variable name='project' value='projekt'/>
- <cd:variable name='protected' value='chranene'/>
- <cd:variable name='quadruple' value='ctyrnasobny'/>
- <cd:variable name='quotation' value='citace'/>
- <cd:variable name='quote' value='citovat'/>
- <cd:variable name='ran' value='rozsah'/>
- <cd:variable name='random' value='nahodny'/>
- <cd:variable name='readonly' value='pouzeprocteni'/>
- <cd:variable name='rectangular' value='pravouhly'/>
- <cd:variable name='referral' value='znacka'/>
- <cd:variable name='register' value='rejstrik'/>
- <cd:variable name='regular' value='pravidelne'/>
- <cd:variable name='rekening' value='rekening'/>
- <cd:variable name='relative' value='relativni'/>
- <cd:variable name='repeat' value='opakovat'/>
- <cd:variable name='required' value='pozadovane'/>
- <cd:variable name='reset' value='reset'/>
- <cd:variable name='reverse' value='reverse'/>
- <cd:variable name='right' value='vpravo'/>
- <cd:variable name='rightedge' value='pravahrana'/>
- <cd:variable name='righthanging' value='righthanging'/>
- <cd:variable name='rightmargin' value='pravyokraj'/>
- <cd:variable name='rightpage' value='pravastranka'/>
- <cd:variable name='roman' value='antikva'/>
- <cd:variable name='romannumerals' value='rimskecislice'/>
- <cd:variable name='rotate' value='otoc'/>
- <cd:variable name='rotated' value='otoceno'/>
- <cd:variable name='round' value='zaobleny'/>
- <cd:variable name='row' value='row'/>
- <cd:variable name='rule' value='linka'/>
- <cd:variable name='samepage' value='samepage'/>
- <cd:variable name='sans' value='sans'/>
- <cd:variable name='sansbold' value='sanstucne'/>
- <cd:variable name='sansserif' value='bezserifu'/>
- <cd:variable name='saturday' value='sobota'/>
- <cd:variable name='screen' value='rastr'/>
- <cd:variable name='section' value='sekce'/>
- <cd:variable name='sectionblockenvironment' value='sectionblockenvironment'/>
- <cd:variable name='sectionnumber' value='cislooddilu'/>
- <cd:variable name='see' value='viz'/>
- <cd:variable name='september' value='zari'/>
- <cd:variable name='serif' value='serif'/>
- <cd:variable name='serried' value='semknuto'/>
- <cd:variable name='setups' value='einstellungen'/>
- <cd:variable name='sheet' value='sheet'/>
- <cd:variable name='singlesided' value='jednostranne'/>
- <cd:variable name='slanted' value='sklonene'/>
- <cd:variable name='slantedbold' value='sklonenetucne'/>
- <cd:variable name='small' value='male'/>
- <cd:variable name='smallbodyfont' value='smallbodyfont'/>
- <cd:variable name='smallbold' value='maletucne'/>
- <cd:variable name='smallbolditalic' value='maletucnekurzivni'/>
- <cd:variable name='smallboldslanted' value='maletucnesklonene'/>
- <cd:variable name='smallcaps' value='kapitalky'/>
- <cd:variable name='smallitalic' value='malekurzivni'/>
- <cd:variable name='smallitalicbold' value='malekurzivnitucne'/>
- <cd:variable name='smallnormal' value='malenormalni'/>
- <cd:variable name='smallslanted' value='malesklonene'/>
- <cd:variable name='smallslantedbold' value='malesklonenetucne'/>
- <cd:variable name='smalltype' value='maletype'/>
- <cd:variable name='somewhere' value='nekde'/>
- <cd:variable name='sorted' value='tridene'/>
- <cd:variable name='space' value='mezera'/>
- <cd:variable name='spacing' value='mezerovani'/>
- <cd:variable name='speech' value='speech'/>
- <cd:variable name='split' value='split'/>
- <cd:variable name='spot' value='spot'/>
- <cd:variable name='standard' value='standardni'/>
- <cd:variable name='start' value='start'/>
- <cd:variable name='sticker' value='sticker'/>
- <cd:variable name='stop' value='stop'/>
- <cd:variable name='stopper' value='predel'/>
- <cd:variable name='stretch' value='natahnout'/>
- <cd:variable name='strict' value='striktni'/>
- <cd:variable name='strong' value='sterk'/>
- <cd:variable name='strut' value='strut'/>
- <cd:variable name='sub' value='pod'/>
- <cd:variable name='subbackward' value='podzpet'/>
- <cd:variable name='subformula' value='subrovnice'/>
- <cd:variable name='subforward' value='podvpred'/>
- <cd:variable name='subject' value='tema'/>
- <cd:variable name='subpage' value='podstranka'/>
- <cd:variable name='subsection' value='podsekce'/>
- <cd:variable name='subsubject' value='podtema'/>
- <cd:variable name='subsubsection' value='podpodsekce'/>
- <cd:variable name='subsubsubject' value='podpodtema'/>
- <cd:variable name='subsubsubsection' value='podpodpodsekce'/>
- <cd:variable name='subsubsubsubject' value='podpodpodtema'/>
- <cd:variable name='subsubsubsubsection' value='podpodpodpodsekce'/>
- <cd:variable name='subsubsubsubsubject' value='podpodpodpodtema'/>
- <cd:variable name='subsubsubsubsubsection' value='podpodpodpodpodsekce'/>
- <cd:variable name='subsubsubsubsubsubject' value='podpodpodpodpodtema'/>
- <cd:variable name='sunday' value='nedele'/>
- <cd:variable name='support' value='podpora'/>
- <cd:variable name='sym' value='sym'/>
- <cd:variable name='symbol' value='symbol'/>
- <cd:variable name='synchronize' value='synchronize'/>
- <cd:variable name='system' value='system'/>
- <cd:variable name='table' value='tabulka'/>
- <cd:variable name='tablehead' value='zahlavitabulky'/>
- <cd:variable name='tables' value='tabulky'/>
- <cd:variable name='tabletail' value='konectabulky'/>
- <cd:variable name='tabulate' value='tabelator'/>
- <cd:variable name='tabulatehead' value='tabulatehead'/>
- <cd:variable name='tabulatetail' value='tabulatetail'/>
- <cd:variable name='tall' value='vysoko'/>
- <cd:variable name='teletype' value='strojopis'/>
- <cd:variable name='temporary' value='docasne'/>
- <cd:variable name='test' value='test'/>
- <cd:variable name='text' value='text'/>
- <cd:variable name='three' value='tri'/>
- <cd:variable name='thursday' value='ctvrtek'/>
- <cd:variable name='title' value='titul'/>
- <cd:variable name='toggle' value='toggle'/>
- <cd:variable name='tolerant' value='tolerantni'/>
- <cd:variable name='top' value='vrsek'/>
- <cd:variable name='tuesday' value='utery'/>
- <cd:variable name='two' value='dve'/>
- <cd:variable name='txt' value='txt'/>
- <cd:variable name='type' value='opis'/>
- <cd:variable name='typing' value='typing'/>
- <cd:variable name='unavailable' value='nedostupne'/>
- <cd:variable name='unit' value='jednotka'/>
- <cd:variable name='units' value='jednotky'/>
- <cd:variable name='unknown' value='neznamy'/>
- <cd:variable name='unpacked' value='rozbalene'/>
- <cd:variable name='url' value='url'/>
- <cd:variable name='used' value='uzito'/>
- <cd:variable name='value' value='hodnota'/>
- <cd:variable name='vertical' value='vertikalne'/>
- <cd:variable name='very' value='velmi'/>
- <cd:variable name='verystrict' value='velmistriktni'/>
- <cd:variable name='verytolerant' value='velmitolerantni'/>
- <cd:variable name='weak' value='zwak'/>
- <cd:variable name='wednesday' value='streda'/>
- <cd:variable name='week' value='tyden'/>
- <cd:variable name='weekday' value='vsedniden'/>
- <cd:variable name='white' value='bily'/>
- <cd:variable name='wide' value='siroce'/>
- <cd:variable name='width' value='sirka'/>
- <cd:variable name='xml' value='xml'/>
- <cd:variable name='year' value='rok'/>
- <cd:variable name='yes' value='ano'/>
- </cd:variable>
-
- <!-- definitions for interface constants for language cz -->
-
- <cd:constants>
- <cd:constant name='action' value='akce'/>
- <cd:constant name='address' value='adresa'/>
- <cd:constant name='after' value='po'/>
- <cd:constant name='afterhead' value='pohlavicce'/>
- <cd:constant name='afterkey' value='klavesapo'/>
- <cd:constant name='align' value='zarovnani'/>
- <cd:constant name='aligncharacter' value='aligncharacter'/>
- <cd:constant name='alignmentcharacter' value='alignmentcharacter'/>
- <cd:constant name='aligntitle' value='zarovnejtitul'/>
- <cd:constant name='alternative' value='alternativa'/>
- <cd:constant name='apa' value='apa'/>
- <cd:constant name='arrow' value='sipka'/>
- <cd:constant name='at' value='u'/>
- <cd:constant name='author' value='autor'/>
- <cd:constant name='auto' value='auto'/>
- <cd:constant name='autofile' value='autofile'/>
- <cd:constant name='autofocus' value='autoostreni'/>
- <cd:constant name='autohang' value='autohang'/>
- <cd:constant name='autostrut' value='autostrut'/>
- <cd:constant name='autowidth' value='autosirka'/>
- <cd:constant name='axis' value='osa'/>
- <cd:constant name='background' value='pozadi'/>
- <cd:constant name='backgroundcolor' value='barvapozadi'/>
- <cd:constant name='backgroundcorner' value='rohpozadi'/>
- <cd:constant name='backgrounddepth' value='hloubkapozadi'/>
- <cd:constant name='backgroundoffset' value='offsetpozadi'/>
- <cd:constant name='backgroundradius' value='polomerpozadi'/>
- <cd:constant name='backgroundscreen' value='rastrpozadi'/>
- <cd:constant name='backspace' value='zpetnamezera'/>
- <cd:constant name='balance' value='rovnovaha'/>
- <cd:constant name='before' value='pred'/>
- <cd:constant name='beforehead' value='predhlavickou'/>
- <cd:constant name='bet' value='bet'/>
- <cd:constant name='big' value='velky'/>
- <cd:constant name='blank' value='prazdny'/>
- <cd:constant name='blockway' value='dobloku'/>
- <cd:constant name='bodyfont' value='zakladnifont'/>
- <cd:constant name='bookmark' value='zalozka'/>
- <cd:constant name='bottom' value='spodek'/>
- <cd:constant name='bottomdistance' value='vzdalenostspodku'/>
- <cd:constant name='bottomframe' value='ramecekdole'/>
- <cd:constant name='bottomoffset' value='offsetspodku'/>
- <cd:constant name='bottomspace' value='bottomspace'/>
- <cd:constant name='bottomstate' value='statusspodku'/>
- <cd:constant name='cache' value='cache'/>
- <cd:constant name='calculate' value='pocitat'/>
- <cd:constant name='ccommand' value='cprikaz'/>
- <cd:constant name='click' value='klik'/>
- <cd:constant name='clickin' value='klikuvnitr'/>
- <cd:constant name='clickout' value='klikvne'/>
- <cd:constant name='clipoffset' value='clipoffset'/>
- <cd:constant name='closeaction' value='zavriakci'/>
- <cd:constant name='closecommand' value='closecommand'/>
- <cd:constant name='closepageaction' value='akcezavrenistranky'/>
- <cd:constant name='closesymbol' value='closesymbol'/>
- <cd:constant name='color' value='barva'/>
- <cd:constant name='column' value='sloupec'/>
- <cd:constant name='columndistance' value='vzdalenostsloupcu'/>
- <cd:constant name='columns' value='sloupce'/>
- <cd:constant name='command' value='prikaz'/>
- <cd:constant name='commandafter' value='prikazpo'/>
- <cd:constant name='commandbefore' value='predchoziprikaz'/>
- <cd:constant name='commands' value='prikazy'/>
- <cd:constant name='component' value='component'/>
- <cd:constant name='compoundhyphen' value='compoundhyphen'/>
- <cd:constant name='compress' value='compress'/>
- <cd:constant name='continue' value='pokracovat'/>
- <cd:constant name='contrastcolor' value='kontrastnibarva'/>
- <cd:constant name='controls' value='controls'/>
- <cd:constant name='conversion' value='konverze'/>
- <cd:constant name='convertfile' value='konverzesouboru'/>
- <cd:constant name='corner' value='roh'/>
- <cd:constant name='coupling' value='propojeni'/>
- <cd:constant name='couplingway' value='zpusobpropojeni'/>
- <cd:constant name='criterium' value='kriterium'/>
- <cd:constant name='current' value='aktualni'/>
- <cd:constant name='cutspace' value='cutspace'/>
- <cd:constant name='dash' value='pomlcka'/>
- <cd:constant name='dat' value='dat'/>
- <cd:constant name='date' value='datum'/>
- <cd:constant name='deepnumbercommand' value='deepnumbercommand'/>
- <cd:constant name='deeptextcommand' value='deeptextcommand'/>
- <cd:constant name='default' value='implicitni'/>
- <cd:constant name='delay' value='prodleva'/>
- <cd:constant name='depth' value='hloubka'/>
- <cd:constant name='depthcorrection' value='korekcehloubky'/>
- <cd:constant name='direction' value='smer'/>
- <cd:constant name='directory' value='adresar'/>
- <cd:constant name='display' value='obrazovka'/>
- <cd:constant name='distance' value='vzdalenost'/>
- <cd:constant name='dot' value='tecka'/>
- <cd:constant name='doublesided' value='oboustranne'/>
- <cd:constant name='dummy' value='dummy'/>
- <cd:constant name='dx' value='dx'/>
- <cd:constant name='dy' value='dy'/>
- <cd:constant name='edge' value='hrana'/>
- <cd:constant name='edgedistance' value='vzdalenosthrany'/>
- <cd:constant name='empty' value='prazdne'/>
- <cd:constant name='equalheight' value='equalheight'/>
- <cd:constant name='equalwidth' value='equalwidth'/>
- <cd:constant name='escape' value='escape'/>
- <cd:constant name='evenmargin' value='sudamarginalie'/>
- <cd:constant name='expansion' value='expanzen'/>
- <cd:constant name='extras' value='extras'/>
- <cd:constant name='factor' value='faktor'/>
- <cd:constant name='fallback' value='fallback'/>
- <cd:constant name='family' value='rodina'/>
- <cd:constant name='fieldbackgroundcolor' value='barvapozadipole'/>
- <cd:constant name='fieldframecolor' value='barvarameckupole'/>
- <cd:constant name='fieldlayer' value='fieldlayer'/>
- <cd:constant name='fieldoffset' value='offsetpole'/>
- <cd:constant name='file' value='soubor'/>
- <cd:constant name='focus' value='zaostreni'/>
- <cd:constant name='focusin' value='focusin'/>
- <cd:constant name='focusout' value='focusout'/>
- <cd:constant name='footer' value='upati'/>
- <cd:constant name='footerdistance' value='vzdalenostupati'/>
- <cd:constant name='footerstate' value='statusupati'/>
- <cd:constant name='foregroundcolor' value='foregroundcolor'/>
- <cd:constant name='foregroundstyle' value='foregroundstyle'/>
- <cd:constant name='format' value='formatovat'/>
- <cd:constant name='frame' value='ramecek'/>
- <cd:constant name='framecolor' value='barvaramecku'/>
- <cd:constant name='framecorner' value='rohramecku'/>
- <cd:constant name='framedepth' value='hloubkaramecku'/>
- <cd:constant name='frameoffset' value='offsetramecku'/>
- <cd:constant name='frameradius' value='polomerramecku'/>
- <cd:constant name='frames' value='ramecky'/>
- <cd:constant name='from' value='z'/>
- <cd:constant name='get' value='ziskat'/>
- <cd:constant name='global' value='globalne'/>
- <cd:constant name='grid' value='mrizka'/>
- <cd:constant name='hang' value='zaveseni'/>
- <cd:constant name='headcolor' value='barvahlavicky'/>
- <cd:constant name='headcommand' value='headcommand'/>
- <cd:constant name='headconversion' value='konverzehlavicky'/>
- <cd:constant name='header' value='zahlavi'/>
- <cd:constant name='headerdistance' value='vzdalenostzahlavi'/>
- <cd:constant name='headerstate' value='statuszahlavi'/>
- <cd:constant name='headlabel' value='popisekhlavicky'/>
- <cd:constant name='headnumber' value='cislonadpisu'/>
- <cd:constant name='headstyle' value='stylhlavicky'/>
- <cd:constant name='height' value='vyska'/>
- <cd:constant name='hfactor' value='vfaktor'/>
- <cd:constant name='hfil' value='hfil'/>
- <cd:constant name='hoffset' value='hoffset'/>
- <cd:constant name='horoffset' value='horoffset'/>
- <cd:constant name='hyphen' value='hyphen'/>
- <cd:constant name='icommand' value='iprikaz'/>
- <cd:constant name='in' value='v'/>
- <cd:constant name='inbetween' value='mezi'/>
- <cd:constant name='increment' value='zvysit'/>
- <cd:constant name='incrementnumber' value='zvysujicicislo'/>
- <cd:constant name='indenting' value='odsazovani'/>
- <cd:constant name='indentnext' value='odsadpristi'/>
- <cd:constant name='indicator' value='indikator'/>
- <cd:constant name='inner' value='vnitrni'/>
- <cd:constant name='innermargin' value='innermargin'/>
- <cd:constant name='inputfile' value='inputfile'/>
- <cd:constant name='interaction' value='interakce'/>
- <cd:constant name='interlinespace' value='meziradkovamezera'/>
- <cd:constant name='itemalign' value='itemalign'/>
- <cd:constant name='items' value='polozky'/>
- <cd:constant name='ken' value='ken'/>
- <cd:constant name='keyexpansion' value='keyexpansion'/>
- <cd:constant name='keyword' value='keyword'/>
- <cd:constant name='label' value='popisek'/>
- <cd:constant name='left' value='vlevo'/>
- <cd:constant name='leftcolor' value='barvavlevo'/>
- <cd:constant name='leftcompoundhyphen' value='leftcompoundhyphen'/>
- <cd:constant name='leftedge' value='levahrana'/>
- <cd:constant name='leftedgedistance' value='vzdalenostlevehrany'/>
- <cd:constant name='leftframe' value='ramecekvlevo'/>
- <cd:constant name='lefthyphen' value='lefthyphen'/>
- <cd:constant name='leftmargin' value='levyokraj'/>
- <cd:constant name='leftmargindistance' value='vzdalenostlevehookraje'/>
- <cd:constant name='leftoffset' value='levyoffset'/>
- <cd:constant name='leftquotation' value='citacevlevo'/>
- <cd:constant name='leftquote' value='citovatvlevo'/>
- <cd:constant name='leftsentence' value='vetavlevo'/>
- <cd:constant name='leftspeech' value='leftspeech'/>
- <cd:constant name='leftstyle' value='stylvlevo'/>
- <cd:constant name='leftsubsentence' value='podvetavlevo'/>
- <cd:constant name='lefttext' value='textvlevo'/>
- <cd:constant name='leftwidth' value='sirkavlevo'/>
- <cd:constant name='level' value='uroven'/>
- <cd:constant name='levels' value='urovne'/>
- <cd:constant name='limittext' value='limittext'/>
- <cd:constant name='line' value='radek'/>
- <cd:constant name='linecorrection' value='korekceradku'/>
- <cd:constant name='lines' value='radky'/>
- <cd:constant name='list' value='seznam'/>
- <cd:constant name='listtext' value='listtext'/>
- <cd:constant name='local' value='lokalne'/>
- <cd:constant name='location' value='misto'/>
- <cd:constant name='logo' value='logo'/>
- <cd:constant name='logos' value='loga'/>
- <cd:constant name='marcolor' value='barvaznacky'/>
- <cd:constant name='margin' value='marginalie'/>
- <cd:constant name='margindistance' value='vzdalenostokraje'/>
- <cd:constant name='marginedge' value='textovahrana'/>
- <cd:constant name='marginedgetext' value='textmarginalnihookraje'/>
- <cd:constant name='margintext' value='textmarginalie'/>
- <cd:constant name='marking' value='znaceni'/>
- <cd:constant name='marstyle' value='stylsnacky'/>
- <cd:constant name='max' value='max'/>
- <cd:constant name='maxheight' value='maxvyska'/>
- <cd:constant name='maxwidth' value='maxsirka'/>
- <cd:constant name='menu' value='menu'/>
- <cd:constant name='method' value='metoda'/>
- <cd:constant name='middle' value='stredni'/>
- <cd:constant name='middlespeech' value='middlespeech'/>
- <cd:constant name='middletext' value='strednitext'/>
- <cd:constant name='midsentence' value='midsentence'/>
- <cd:constant name='min' value='min'/>
- <cd:constant name='mindepth' value='mindepth'/>
- <cd:constant name='minheight' value='minvyska'/>
- <cd:constant name='minwidth' value='minsirka'/>
- <cd:constant name='n' value='n'/>
- <cd:constant name='name' value='jmeno'/>
- <cd:constant name='nbottom' value='nspodek'/>
- <cd:constant name='nc' value='nc'/>
- <cd:constant name='next' value='dalsi'/>
- <cd:constant name='nl' value='nl'/>
- <cd:constant name='nleft' value='nvlevo'/>
- <cd:constant name='nlines' value='nradky'/>
- <cd:constant name='norm' value='norm'/>
- <cd:constant name='nr' value='nr'/>
- <cd:constant name='nright' value='nvpravo'/>
- <cd:constant name='ntop' value='nvrsek'/>
- <cd:constant name='number' value='cislo'/>
- <cd:constant name='numbercolor' value='barvacisla'/>
- <cd:constant name='numbercommand' value='ciselnyprikaz'/>
- <cd:constant name='numberdistance' value='numberdistance'/>
- <cd:constant name='numbering' value='cislovani'/>
- <cd:constant name='numberseparator' value='oddelovaccisla'/>
- <cd:constant name='numberstyle' value='stylcisla'/>
- <cd:constant name='numberwidth' value='numberwidth'/>
- <cd:constant name='nx' value='nx'/>
- <cd:constant name='ny' value='ny'/>
- <cd:constant name='object' value='objekt'/>
- <cd:constant name='obstruction' value='prekazka'/>
- <cd:constant name='oddmargin' value='lichyokraj'/>
- <cd:constant name='offset' value='offset'/>
- <cd:constant name='openaction' value='otevriakci'/>
- <cd:constant name='openpageaction' value='akceotevrenistranky'/>
- <cd:constant name='option' value='volba'/>
- <cd:constant name='orientation' value='orientation'/>
- <cd:constant name='outermargin' value='outermargin'/>
- <cd:constant name='overprint' value='overprint'/>
- <cd:constant name='ownnumber' value='vlastnicislo'/>
- <cd:constant name='page' value='stranka'/>
- <cd:constant name='pageboundaries' value='hranicestranky'/>
- <cd:constant name='pagecolor' value='barvastranky'/>
- <cd:constant name='pagecommand' value='strankovyprikaz'/>
- <cd:constant name='pagenumber' value='cislostranky'/>
- <cd:constant name='pagestate' value='pagestate'/>
- <cd:constant name='pagestyle' value='stylstranky'/>
- <cd:constant name='palet' value='paleta'/>
- <cd:constant name='paper' value='papir'/>
- <cd:constant name='paragraph' value='odstavec'/>
- <cd:constant name='place' value='umistit'/>
- <cd:constant name='placehead' value='umistihlavicku'/>
- <cd:constant name='placestopper' value='predelmista'/>
- <cd:constant name='position' value='position'/>
- <cd:constant name='prefix' value='prefix'/>
- <cd:constant name='preset' value='prednastaveni'/>
- <cd:constant name='preview' value='nahled'/>
- <cd:constant name='previous' value='predchozi'/>
- <cd:constant name='previousnumber' value='predchozicislo'/>
- <cd:constant name='process' value='process'/>
- <cd:constant name='radius' value='polomer'/>
- <cd:constant name='random' value='nahodne'/>
- <cd:constant name='reduction' value='redukce'/>
- <cd:constant name='ref' value='ref'/>
- <cd:constant name='reference' value='odkaz'/>
- <cd:constant name='referencing' value='odkazujici'/>
- <cd:constant name='regionin' value='oblastuvnitr'/>
- <cd:constant name='regionout' value='oblastvne'/>
- <cd:constant name='repeat' value='opakovat'/>
- <cd:constant name='reset' value='reset'/>
- <cd:constant name='resetnumber' value='resetnumber'/>
- <cd:constant name='resolution' value='rozliseni'/>
- <cd:constant name='right' value='vpravo'/>
- <cd:constant name='rightcolor' value='barvavpravo'/>
- <cd:constant name='rightcompoundhyphen' value='rightcompoundhyphen'/>
- <cd:constant name='rightedge' value='pravahrana'/>
- <cd:constant name='rightedgedistance' value='vzdalenostpravehrany'/>
- <cd:constant name='rightframe' value='ramecekvpravo'/>
- <cd:constant name='righthyphen' value='righthyphen'/>
- <cd:constant name='rightmargin' value='pravyokraj'/>
- <cd:constant name='rightmargindistance' value='vzdalenostpravehookraje'/>
- <cd:constant name='rightoffset' value='pravyoffset'/>
- <cd:constant name='rightquotation' value='citacevpravo'/>
- <cd:constant name='rightquote' value='citovatvpravo'/>
- <cd:constant name='rightsentence' value='vetavpravo'/>
- <cd:constant name='rightspeech' value='rightspeech'/>
- <cd:constant name='rightstyle' value='stylvpravo'/>
- <cd:constant name='rightsubsentence' value='podvetavpravo'/>
- <cd:constant name='righttext' value='textvpravo'/>
- <cd:constant name='rightwidth' value='sirkavpravo'/>
- <cd:constant name='rotation' value='rotace'/>
- <cd:constant name='rule' value='linka'/>
- <cd:constant name='rulecolor' value='barvalinky'/>
- <cd:constant name='rulethickness' value='tloustkalinky'/>
- <cd:constant name='samepage' value='stejnastranka'/>
- <cd:constant name='sample' value='vzor'/>
- <cd:constant name='scale' value='meritko'/>
- <cd:constant name='scope' value='rozsah'/>
- <cd:constant name='screen' value='rastr'/>
- <cd:constant name='section' value='oddil'/>
- <cd:constant name='sectionnumber' value='cislooddilu'/>
- <cd:constant name='separator' value='oddelovac'/>
- <cd:constant name='set' value='set'/>
- <cd:constant name='setups' value='setups'/>
- <cd:constant name='side' value='pocitat'/>
- <cd:constant name='sidealign' value='sidealign'/>
- <cd:constant name='sidemethod' value='sidemethod'/>
- <cd:constant name='sidespaceafter' value='bocnimezeraza'/>
- <cd:constant name='sidespacebefore' value='bocnimezerapred'/>
- <cd:constant name='sign' value='znak'/>
- <cd:constant name='size' value='velikost'/>
- <cd:constant name='small' value='male'/>
- <cd:constant name='sorttype' value='sorttype'/>
- <cd:constant name='source' value='zdroj'/>
- <cd:constant name='space' value='mezera'/>
- <cd:constant name='spaceafter' value='mezeraza'/>
- <cd:constant name='spacebefore' value='mezerapred'/>
- <cd:constant name='spaceinbetween' value='spaceinbetween'/>
- <cd:constant name='spacing' value='mezerovani'/>
- <cd:constant name='split' value='split'/>
- <cd:constant name='splitcolor' value='splitcolor'/>
- <cd:constant name='splitmethod' value='splitmethod'/>
- <cd:constant name='splitoffset' value='splitoffset'/>
- <cd:constant name='spot' value='spot'/>
- <cd:constant name='stack' value='stack'/>
- <cd:constant name='start' value='start'/>
- <cd:constant name='state' value='status'/>
- <cd:constant name='step' value='krok'/>
- <cd:constant name='stop' value='stop'/>
- <cd:constant name='stopper' value='predel'/>
- <cd:constant name='stretch' value='natahnout'/>
- <cd:constant name='strut' value='strut'/>
- <cd:constant name='style' value='pismeno'/>
- <cd:constant name='sub' value='pod'/>
- <cd:constant name='subtitle' value='podtitulek'/>
- <cd:constant name='suffix' value='suffix'/>
- <cd:constant name='sx' value='sx'/>
- <cd:constant name='sy' value='sy'/>
- <cd:constant name='symalign' value='symzarovnani'/>
- <cd:constant name='symbol' value='symbol'/>
- <cd:constant name='symbolset' value='sadasymbolu'/>
- <cd:constant name='symcolor' value='barvasymbolu'/>
- <cd:constant name='symstyle' value='stylsymboly'/>
- <cd:constant name='synonym' value='synonymum'/>
- <cd:constant name='synonymcolor' value='barvasynonyma'/>
- <cd:constant name='synonymstyle' value='stylsynonyma'/>
- <cd:constant name='tab' value='tab'/>
- <cd:constant name='text' value='text'/>
- <cd:constant name='textcolor' value='barvatextu'/>
- <cd:constant name='textcommand' value='textovyprikaz'/>
- <cd:constant name='textdistance' value='textdistance'/>
- <cd:constant name='textlayer' value='textlayer'/>
- <cd:constant name='textmargin' value='textmargin'/>
- <cd:constant name='textmethod' value='textmethod'/>
- <cd:constant name='textseparator' value='oddelovactextu'/>
- <cd:constant name='textsize' value='velikosttextu'/>
- <cd:constant name='textstate' value='statustextu'/>
- <cd:constant name='textstyle' value='styltextu'/>
- <cd:constant name='textwidth' value='sirkatextu'/>
- <cd:constant name='title' value='titul'/>
- <cd:constant name='titlecolor' value='barvatitulek'/>
- <cd:constant name='titlecommand' value='titlecommand'/>
- <cd:constant name='titledistance' value='vzdalenosttitulek'/>
- <cd:constant name='titleleft' value='titleleft'/>
- <cd:constant name='titleright' value='titleright'/>
- <cd:constant name='titlestyle' value='styltitulek'/>
- <cd:constant name='to' value='na'/>
- <cd:constant name='tolerance' value='tolerance'/>
- <cd:constant name='top' value='vrsek'/>
- <cd:constant name='topdistance' value='vzdalenostvrsku'/>
- <cd:constant name='topframe' value='rameceknahore'/>
- <cd:constant name='topoffset' value='offsetvrsku'/>
- <cd:constant name='topspace' value='svrchnimezera'/>
- <cd:constant name='topstate' value='statusvrsku'/>
- <cd:constant name='type' value='typ'/>
- <cd:constant name='unit' value='jednotka'/>
- <cd:constant name='unknownreference' value='neznamyodkaz'/>
- <cd:constant name='urlalternative' value='urlalternativa'/>
- <cd:constant name='urlspace' value='prostorurl'/>
- <cd:constant name='validate' value='validovat'/>
- <cd:constant name='vcommand' value='vprikaz'/>
- <cd:constant name='veroffset' value='offsethlavicky'/>
- <cd:constant name='vfil' value='vfil'/>
- <cd:constant name='voffset' value='voffset'/>
- <cd:constant name='way' value='zpusob'/>
- <cd:constant name='wfactor' value='sfaktor'/>
- <cd:constant name='white' value='bily'/>
- <cd:constant name='width' value='sirka'/>
- <cd:constant name='xfactor' value='xfaktor'/>
- <cd:constant name='xmax' value='xmax'/>
- <cd:constant name='xoffset' value='xoffset'/>
- <cd:constant name='xscale' value='xmeritko'/>
- <cd:constant name='xstep' value='xkrok'/>
- <cd:constant name='yfactor' value='yfaktor'/>
- <cd:constant name='ymax' value='ymax'/>
- <cd:constant name='yoffset' value='yoffset'/>
- <cd:constant name='yscale' value='ymeritko'/>
- <cd:constant name='ystep' value='ykrok'/>
- </cd:constant>
-
- <!-- definitions for interface elements for language cz -->
-
- <cd:elements>
- <cd:element name='begin' value='zacatek'/>
- <cd:element name='complete' value='uplny'/>
- <cd:element name='coupled' value='propojene'/>
- <cd:element name='currentlocal' value='aktualnelokalni'/>
- <cd:element name='emptyone' value='leer'/>
- <cd:element name='emptytwo' value='prazdne'/>
- <cd:element name='end' value='konec'/>
- <cd:element name='endsetup' value=''/>
- <cd:element name='get' value='ziskat'/>
- <cd:element name='increment' value='zvysit'/>
- <cd:element name='list' value='seznam'/>
- <cd:element name='listof' value='seznam'/>
- <cd:element name='load' value='nacist'/>
- <cd:element name='local' value='lokalne'/>
- <cd:element name='makeup' value='zlom'/>
- <cd:element name='next' value='dalsi'/>
- <cd:element name='place' value='umisti'/>
- <cd:element name='previous' value='predchozi'/>
- <cd:element name='previouslocal' value='predchozilokalni'/>
- <cd:element name='reserve' value='rezervovat'/>
- <cd:element name='see' value='viz'/>
- <cd:element name='setup' value='nastaveni'/>
- <cd:element name='start' value='start'/>
- <cd:element name='stop' value='stop'/>
- <cd:element name='text' value='text'/>
- <cd:element name='type' value='opis'/>
- </cd:element>
-
- <!-- definitions for interface commands for language cz -->
-
- <cd:commands>
- <cd:command name='CAPPED' value='KAP'/>
- <cd:command name='Character' value='Znak'/>
- <cd:command name='Characters' value='Znaky'/>
- <cd:command name='LABELTEXT' value='TEXTPOPISKU'/>
- <cd:command name='MONTH' value='MESIC'/>
- <cd:command name='Numbers' value='Cisla'/>
- <cd:command name='Romannumerals' value='Rimskecislice'/>
- <cd:command name='SmallCapped' value='Kap'/>
- <cd:command name='SmallCaps' value='Kaps'/>
- <cd:command name='WEEKDAY' value='VSEDNIDEN'/>
- <cd:command name='WORD' value='SLOVO'/>
- <cd:command name='WORDS' value='SLOVA'/>
- <cd:command name='Word' value='Slovo'/>
- <cd:command name='Words' value='Slova'/>
- <cd:command name='about' value='oref'/>
- <cd:command name='adaptlayout' value='prizpusobvzhled'/>
- <cd:command name='adding' value='scitani'/>
- <cd:command name='arg' value='arg'/>
- <cd:command name='at' value='pref'/>
- <cd:command name='atleftmargin' value='atleftmargin'/>
- <cd:command name='atpage' value='nastrane'/>
- <cd:command name='atrightmargin' value='atrightmargin'/>
- <cd:command name='background' value='pozadi'/>
- <cd:command name='backspace' value='odsazenizleva'/>
- <cd:command name='blackrule' value='cernalinka'/>
- <cd:command name='blackrules' value='cernelinky'/>
- <cd:command name='blank' value='preskoc'/>
- <cd:command name='bookmark' value='zalozka'/>
- <cd:command name='bottomdistance' value='vzdalenostspodku'/>
- <cd:command name='bottomheight' value='vyskaspodku'/>
- <cd:command name='bottomspace' value='bottomspace'/>
- <cd:command name='but' value='spodek'/>
- <cd:command name='button' value='tlacitko'/>
- <cd:command name='bypassblocks' value='bypassblocks'/>
- <cd:command name='character' value='znak'/>
- <cd:command name='characters' value='znaky'/>
- <cd:command name='chem' value='chem'/>
- <cd:command name='clip' value='orez'/>
- <cd:command name='clonefield' value='klonujpole'/>
- <cd:command name='color' value='barva'/>
- <cd:command name='colorbar' value='barevnalista'/>
- <cd:command name='colorvalue' value='hodnotabarvy'/>
- <cd:command name='column' value='sloupec'/>
- <cd:command name='comment' value='komentar'/>
- <cd:command name='comparecolorgroup' value='porovnejskupinubarev'/>
- <cd:command name='comparepalet' value='porovnejpaletu'/>
- <cd:command name='completepagenumber' value='completepagenumber'/>
- <cd:command name='completeregister' value='completeregister'/>
- <cd:command name='component' value='komponenta'/>
- <cd:command name='convertnumber' value='konvertujcislo'/>
- <cd:command name='copyfield' value='kopirujpole'/>
- <cd:command name='correctwhitespace' value='korekcebilehomista'/>
- <cd:command name='coupledocument' value='propojenydokument'/>
- <cd:command name='couplemarking' value='propojeneznaceni'/>
- <cd:command name='couplepage' value='parovastrana'/>
- <cd:command name='couplepaper' value='dvoustrannypapir'/>
- <cd:command name='coupleregister' value='propojenyrejstrik'/>
- <cd:command name='crlf' value='crlf'/>
- <cd:command name='currentdate' value='aktualnidatum'/>
- <cd:command name='currentheadnumber' value='aktualnicislonadpisu'/>
- <cd:command name='cutspace' value='cutspace'/>
- <cd:command name='date' value='datum'/>
- <cd:command name='decouplemarking' value='rozpojeneznaceni'/>
- <cd:command name='decrementnumber' value='decrementnumber'/>
- <cd:command name='define' value='definuj'/>
- <cd:command name='defineaccent' value='definujakcent'/>
- <cd:command name='defineblank' value='definujpreskok'/>
- <cd:command name='defineblock' value='definujblok'/>
- <cd:command name='definebodyfont' value='definujzakladnifont'/>
- <cd:command name='definebodyfontenvironment' value='definujprostredizakladnihofontu'/>
- <cd:command name='definebuffer' value='definujbuffer'/>
- <cd:command name='definecharacter' value='definujznak'/>
- <cd:command name='definecolor' value='definujbarvu'/>
- <cd:command name='definecolorgroup' value='definujskupinubarev'/>
- <cd:command name='definecolumnbreak' value='definecolumnbreak'/>
- <cd:command name='definecolumnset' value='definecolumnset'/>
- <cd:command name='definecombination' value='definecombination'/>
- <cd:command name='definecombinedlist' value='definujkombinovanyseznam'/>
- <cd:command name='definecommand' value='definujprikaz'/>
- <cd:command name='defineconversion' value='definujkonverzi'/>
- <cd:command name='definedescription' value='definujpopis'/>
- <cd:command name='defineenumeration' value='definujvycet'/>
- <cd:command name='definefield' value='definujpole'/>
- <cd:command name='definefieldstack' value='definujzasobnikpoli'/>
- <cd:command name='definefiguresymbol' value='definujobrazeksymbol'/>
- <cd:command name='definefloat' value='definujplvouciobjekt'/>
- <cd:command name='definefont' value='definujfont'/>
- <cd:command name='definefontstyle' value='definujstylfontu'/>
- <cd:command name='definefontsynonym' value='definujsynonumumfontu'/>
- <cd:command name='defineframed' value='definujoramovani'/>
- <cd:command name='defineframedtext' value='definujoramovanytext'/>
- <cd:command name='definehbox' value='definujhbox'/>
- <cd:command name='definehead' value='definujnadpis'/>
- <cd:command name='defineindenting' value='definujodsazovani'/>
- <cd:command name='defineinmargin' value='defineinmargin'/>
- <cd:command name='defineinteractionmenu' value='definujinterakcnimenu'/>
- <cd:command name='defineitemgroup' value='defineitemgroup'/>
- <cd:command name='definelabel' value='definujpopisek'/>
- <cd:command name='definelayer' value='definelayer'/>
- <cd:command name='definelayout' value='definelayout'/>
- <cd:command name='definelist' value='definujseznam'/>
- <cd:command name='definelogo' value='definujlogo'/>
- <cd:command name='definemainfield' value='definujhlavnipole'/>
- <cd:command name='definemakeup' value='definujupravu'/>
- <cd:command name='definemarking' value='definujznaceni'/>
- <cd:command name='definemathalignment' value='definemathalignment'/>
- <cd:command name='defineoutput' value='definujvystup'/>
- <cd:command name='defineoverlay' value='definujprekryv'/>
- <cd:command name='definepagebreak' value='definepagebreak'/>
- <cd:command name='definepalet' value='definujpaletu'/>
- <cd:command name='definepapersize' value='definujvelikostpapiru'/>
- <cd:command name='defineparagraphs' value='definujodstavce'/>
- <cd:command name='defineplacement' value='defineplacement'/>
- <cd:command name='defineprofile' value='definujprofil'/>
- <cd:command name='defineprogram' value='definujprogram'/>
- <cd:command name='definerawfont' value='definerawfont'/>
- <cd:command name='definereference' value='definujodkaz'/>
- <cd:command name='definereferenceformat' value='definujformatodkazu'/>
- <cd:command name='definereferencelist' value='definujseznamodkazu'/>
- <cd:command name='defineregister' value='definujrejstrik'/>
- <cd:command name='definerule' value='definerule'/>
- <cd:command name='definesection' value='definujsekci'/>
- <cd:command name='definesectionblock' value='definujbloksekce'/>
- <cd:command name='definesorting' value='definujtrideni'/>
- <cd:command name='definestartstop' value='definujstartstop'/>
- <cd:command name='definestyle' value='definujstyl'/>
- <cd:command name='definesubfield' value='definujpodpole'/>
- <cd:command name='definesymbol' value='definujsymbol'/>
- <cd:command name='definesynonyms' value='definujsynonyma'/>
- <cd:command name='definetabletemplate' value='definujsablonutabulky'/>
- <cd:command name='definetabulate' value='definujtabelaci'/>
- <cd:command name='definetext' value='definujtext'/>
- <cd:command name='definetextposition' value='definetextposition'/>
- <cd:command name='definetextvariable' value='definetextvariable'/>
- <cd:command name='definetype' value='definetype'/>
- <cd:command name='definetyping' value='definujopis'/>
- <cd:command name='defineversion' value='definujverzi'/>
- <cd:command name='determineheadnumber' value='stanovcislonadpisu'/>
- <cd:command name='determinelistcharacteristics' value='stanovcharakteristickuseznamu'/>
- <cd:command name='determineregistercharacteristics' value='urcicharakteristikurejstriku'/>
- <cd:command name='dimension' value='rozmer'/>
- <cd:command name='disableinteractionmenu' value='zablokujinterakcnimenu'/>
- <cd:command name='domicile' value='bydliste'/>
- <cd:command name='donttest' value='zadnytest'/>
- <cd:command name='edgedistance' value='vzdalenostokraje'/>
- <cd:command name='edgewidth' value='sirkaokraje'/>
- <cd:command name='emptylines' value='emptylines'/>
- <cd:command name='environment' value='prostredi'/>
- <cd:command name='externalfigure' value='externiobraz'/>
- <cd:command name='fact' value='fakt'/>
- <cd:command name='field' value='pole'/>
- <cd:command name='fieldstack' value='zasobnikpoli'/>
- <cd:command name='fillinfield' value='vyplnovepole'/>
- <cd:command name='fillinline' value='vyplnovyradek'/>
- <cd:command name='fillinrules' value='vyplnovelinky'/>
- <cd:command name='fillintext' value='vyplnenytext'/>
- <cd:command name='fitfield' value='prizpusobivepole'/>
- <cd:command name='fixedspace' value='tvrdamezera'/>
- <cd:command name='fixedspaces' value='tvrdemezery'/>
- <cd:command name='followprofile' value='dodrzujprofil'/>
- <cd:command name='followprofileversion' value='dodrzujverziprofilu'/>
- <cd:command name='followversion' value='dodrzujverzi'/>
- <cd:command name='footerdistance' value='vzdalenostupati'/>
- <cd:command name='footerheight' value='vyskaupati'/>
- <cd:command name='footnote' value='poznamkapodcarou'/>
- <cd:command name='footnotetext' value='footnotetext'/>
- <cd:command name='forceblocks' value='forceblocks'/>
- <cd:command name='formulanumber' value='cislorovnice'/>
- <cd:command name='fraction' value='zlomek'/>
- <cd:command name='framed' value='oramovani'/>
- <cd:command name='from' value='zref'/>
- <cd:command name='getbuffer' value='ziskejbuffer'/>
- <cd:command name='getmarking' value='ziskejznaceni'/>
- <cd:command name='getnumber' value='getnumber'/>
- <cd:command name='godown' value='jdidolu'/>
- <cd:command name='goto' value='jdina'/>
- <cd:command name='gotobox' value='jdinabox'/>
- <cd:command name='gotopage' value='jdinastranu'/>
- <cd:command name='graycolor' value='sedabarva'/>
- <cd:command name='greyvalue' value='hodnotasedi'/>
- <cd:command name='grid' value='mrizka'/>
- <cd:command name='hairline' value='vlasovalinka'/>
- <cd:command name='head' value='nadpis'/>
- <cd:command name='headerdistance' value='vzdalenostzahlavi'/>
- <cd:command name='headerheight' value='vyskazahlavi'/>
- <cd:command name='headlevel' value='hlavniuroven'/>
- <cd:command name='headnumber' value='cislonadpisu'/>
- <cd:command name='headsym' value='headsym'/>
- <cd:command name='headtext' value='texthlavicky'/>
- <cd:command name='hideblocks' value='schovejbloky'/>
- <cd:command name='high' value='vysoky'/>
- <cd:command name='hl' value='hl'/>
- <cd:command name='immediatebetweenlist' value='immediatebetweenlist'/>
- <cd:command name='immediatetolist' value='immediatetolist'/>
- <cd:command name='in' value='tref'/>
- <cd:command name='incrementnumber' value='zvysujicicislo'/>
- <cd:command name='indenting' value='odsazovani'/>
- <cd:command name='inframed' value='zaramovani'/>
- <cd:command name='infull' value='plnezneni'/>
- <cd:command name='ininner' value='ininner'/>
- <cd:command name='inleft' value='vlevo'/>
- <cd:command name='inleftedge' value='nalevo'/>
- <cd:command name='inleftmargin' value='nalevyokraj'/>
- <cd:command name='inline' value='vradku'/>
- <cd:command name='inmargin' value='naokraj'/>
- <cd:command name='inmframed' value='mazaramovani'/>
- <cd:command name='inneredgedistance' value='inneredgedistance'/>
- <cd:command name='inneredgewidth' value='inneredgewidth'/>
- <cd:command name='innermargindistance' value='innermargindistance'/>
- <cd:command name='innermarginwidth' value='innermarginwidth'/>
- <cd:command name='inothermargin' value='nadruhyokraj'/>
- <cd:command name='inouter' value='inouter'/>
- <cd:command name='inright' value='vpravo'/>
- <cd:command name='inrightedge' value='napravo'/>
- <cd:command name='inrightmargin' value='napravyokraj'/>
- <cd:command name='installlanguage' value='instalacejazyka'/>
- <cd:command name='interactionbar' value='interakcnilista'/>
- <cd:command name='interactionbuttons' value='interakcnitlacitka'/>
- <cd:command name='interactionmenu' value='interaktivnimenu'/>
- <cd:command name='item' value='polozka'/>
- <cd:command name='items' value='polozky'/>
- <cd:command name='its' value='pol'/>
- <cd:command name='keepblocks' value='zachovejbloky'/>
- <cd:command name='label' value='poppisek'/>
- <cd:command name='labels' value='popisky'/>
- <cd:command name='labeltext' value='textpopisku'/>
- <cd:command name='language' value='jazyk'/>
- <cd:command name='leftaligned' value='zarovnanovlevo'/>
- <cd:command name='leftedgedistance' value='vzdalenostlevehookraje'/>
- <cd:command name='leftedgewidth' value='sirkalevehookraje'/>
- <cd:command name='leftmargindistance' value='vzdalenostlevemarginalie'/>
- <cd:command name='leftmarginwidth' value='sirkalevemarginalie'/>
- <cd:command name='leg' value='leg'/>
- <cd:command name='linewidth' value='tloustkacary'/>
- <cd:command name='listheight' value='vyskaseznamu'/>
- <cd:command name='listlength' value='delkaseznamu'/>
- <cd:command name='listsymbol' value='listsymbol'/>
- <cd:command name='listwidth' value='sirkaseznamu'/>
- <cd:command name='logfields' value='zaznamovepole'/>
- <cd:command name='lohi' value='nivy'/>
- <cd:command name='low' value='nizky'/>
- <cd:command name='macroname' value='jmeno'/>
- <cd:command name='mainlanguage' value='hlavnijazyk'/>
- <cd:command name='makeupheight' value='vyskasazby'/>
- <cd:command name='makeupwidth' value='sirkasazby'/>
- <cd:command name='mar' value='okr'/>
- <cd:command name='margindistance' value='vzdalenostmarginalie'/>
- <cd:command name='marginrule' value='marginalnilinka'/>
- <cd:command name='margintext' value='marginalnitext'/>
- <cd:command name='margintitle' value='marginalninadpis'/>
- <cd:command name='marginwidth' value='sirkamarginalie'/>
- <cd:command name='marginword' value='marginalnislovo'/>
- <cd:command name='marking' value='znaceni'/>
- <cd:command name='markversion' value='oznacverzi'/>
- <cd:command name='mathematics' value='matematika'/>
- <cd:command name='menubutton' value='tlacitkomenu'/>
- <cd:command name='mframed' value='maoramovani'/>
- <cd:command name='midaligned' value='zarovnanonastred'/>
- <cd:command name='mirror' value='zrcadlit'/>
- <cd:command name='month' value='mesic'/>
- <cd:command name='moveformula' value='moveformula'/>
- <cd:command name='moveongrid' value='premistinamrizku'/>
- <cd:command name='movesidefloat' value='movesidefloat'/>
- <cd:command name='navigating' value='navigating'/>
- <cd:command name='nodimension' value='zadnyrozmer'/>
- <cd:command name='noheaderandfooterlines' value='zadnezahlaviaupati'/>
- <cd:command name='noindenting' value='zadneodsazovani'/>
- <cd:command name='nolist' value='zadnyseznam'/>
- <cd:command name='nomarking' value='zadneznaceni'/>
- <cd:command name='nomoreblocks' value='zadnedalsibloky'/>
- <cd:command name='nomorefiles' value='zadnedalsisoubory'/>
- <cd:command name='nop' value='nop'/>
- <cd:command name='nospace' value='zadnamezera'/>
- <cd:command name='note' value='poznamka'/>
- <cd:command name='notopandbottomlines' value='zadnehorniadolniradky'/>
- <cd:command name='notsmallcapped' value='nokap'/>
- <cd:command name='nowhitespace' value='zadnebilemisto'/>
- <cd:command name='numberofsubpages' value='numberofsubpages'/>
- <cd:command name='numbers' value='cisla'/>
- <cd:command name='outeredgedistance' value='outeredgedistance'/>
- <cd:command name='outeredgewidth' value='outeredgewidth'/>
- <cd:command name='outermargindistance' value='outermargindistance'/>
- <cd:command name='outermarginwidth' value='outermarginwidth'/>
- <cd:command name='overbar' value='nadtrzeno'/>
- <cd:command name='overbars' value='nadtrzeni'/>
- <cd:command name='overstrike' value='preskrtnuto'/>
- <cd:command name='overstrikes' value='preskrtnuti'/>
- <cd:command name='packed' value='zhustene'/>
- <cd:command name='page' value='strana'/>
- <cd:command name='pagedepth' value='pagedepth'/>
- <cd:command name='pagenumber' value='cislostrany'/>
- <cd:command name='pageoffset' value='pageoffset'/>
- <cd:command name='pagereference' value='odkaznastranu'/>
- <cd:command name='pagetype' value='typstrany'/>
- <cd:command name='paperheight' value='vyskapapiru'/>
- <cd:command name='paperwidth' value='sirkapapiru'/>
- <cd:command name='periods' value='tecky'/>
- <cd:command name='plaatsruwelijst' value='placerawlist'/>
- <cd:command name='placebookmarks' value='umistizalozky'/>
- <cd:command name='placecombinedlist' value='umistikombinovanyseznam'/>
- <cd:command name='placefloat' value='placefloat'/>
- <cd:command name='placefootnotes' value='umistipoznamkypodcarou'/>
- <cd:command name='placeformula' value='umistirovnici'/>
- <cd:command name='placeheadnumber' value='placeheadnumber'/>
- <cd:command name='placeheadtext' value='placeheadtext'/>
- <cd:command name='placelegend' value='umistilegendu'/>
- <cd:command name='placelist' value='umistiseznam'/>
- <cd:command name='placelocalfootnotes' value='umistilokalnipoznamkypodcarou'/>
- <cd:command name='placelogos' value='umistiloga'/>
- <cd:command name='placeongrid' value='umistinamrizku'/>
- <cd:command name='placeontopofeachother' value='umistinadsebe'/>
- <cd:command name='placepagenumber' value='placepagenumber'/>
- <cd:command name='placereferencelist' value='placereferencelist'/>
- <cd:command name='placeregister' value='umistirejstrik'/>
- <cd:command name='placerule' value='placerule'/>
- <cd:command name='placesidebyside' value='umistivedlesebe'/>
- <cd:command name='placesubformula' value='umistipodrovnici'/>
- <cd:command name='placetextvariable' value='placetextvariable'/>
- <cd:command name='position' value='pozice'/>
- <cd:command name='positiontext' value='positiontext'/>
- <cd:command name='printpaperheight' value='vyskatiskpapiru'/>
- <cd:command name='printpaperwidth' value='sirkatiskpapiru'/>
- <cd:command name='processblocks' value='zpracujbloky'/>
- <cd:command name='processpage' value='zpracujstranu'/>
- <cd:command name='product' value='produkt'/>
- <cd:command name='program' value='program'/>
- <cd:command name='project' value='projekt'/>
- <cd:command name='publication' value='publikace'/>
- <cd:command name='quotation' value='citace'/>
- <cd:command name='quote' value='citovat'/>
- <cd:command name='ran' value='ran'/>
- <cd:command name='redo' value='opakovat'/>
- <cd:command name='ref' value='ref'/>
- <cd:command name='reference' value='odkaz'/>
- <cd:command name='referral' value='odkaz'/>
- <cd:command name='referraldate' value='odkaznadatum'/>
- <cd:command name='referring' value='odkazujici'/>
- <cd:command name='remark' value='oznaceni'/>
- <cd:command name='reset' value='reset'/>
- <cd:command name='resetmarking' value='resetznaceni'/>
- <cd:command name='resetnumber' value='resetnumber'/>
- <cd:command name='resettext' value='resettextcontent'/>
- <cd:command name='rightaligned' value='zarovnanovpravo'/>
- <cd:command name='rightedgedistance' value='vzdalenostpravehookraje'/>
- <cd:command name='rightedgewidth' value='sirkapravehookraje'/>
- <cd:command name='rightmargindistance' value='vzdalenostpravemarginalie'/>
- <cd:command name='rightmarginwidth' value='sirkapravemarginalie'/>
- <cd:command name='romannumerals' value='rimskecislice'/>
- <cd:command name='rotate' value='otocit'/>
- <cd:command name='scale' value='meritko'/>
- <cd:command name='screen' value='obrazovka'/>
- <cd:command name='selectblocks' value='vyberbloky'/>
- <cd:command name='selectpaper' value='vyberpapir'/>
- <cd:command name='selectversion' value='vyberverzi'/>
- <cd:command name='setnumber' value='setnumber'/>
- <cd:command name='settextcontent' value='settextcontent'/>
- <cd:command name='settextvariable' value='settextvariable'/>
- <cd:command name='setupalign' value='nastavzarovnani'/>
- <cd:command name='setuparranging' value='nastavusporadani'/>
- <cd:command name='setupbackground' value='nastavpozadi'/>
- <cd:command name='setupbackgrounds' value='nastavpozadi'/>
- <cd:command name='setupblackrules' value='nastavcernelinky'/>
- <cd:command name='setupblank' value='nastavpreskok'/>
- <cd:command name='setupblock' value='nastavblok'/>
- <cd:command name='setupbodyfont' value='nastavzakladnifont'/>
- <cd:command name='setupbodyfontenvironment' value='nastavprostredizakladnihofontu'/>
- <cd:command name='setupbottom' value='nastavspodek'/>
- <cd:command name='setupbottomtexts' value='nastavdolnitexty'/>
- <cd:command name='setupbuffer' value='nastavbuffer'/>
- <cd:command name='setupbuttons' value='nastavtlacitka'/>
- <cd:command name='setupcapitals' value='nastavkapitalky'/>
- <cd:command name='setupcaption' value='nastavpopisek'/>
- <cd:command name='setupcaptions' value='nastavpopisky'/>
- <cd:command name='setupclipping' value='nastavorez'/>
- <cd:command name='setupcolor' value='nastavbarvu'/>
- <cd:command name='setupcolors' value='nastavbarvy'/>
- <cd:command name='setupcolumns' value='nastavsloupce'/>
- <cd:command name='setupcolumnset' value='setupcolumnset'/>
- <cd:command name='setupcolumnsetlines' value='setupcolumnsetlines'/>
- <cd:command name='setupcolumnsetstart' value='setupcolumnsetstart'/>
- <cd:command name='setupcombinations' value='nastavspojeni'/>
- <cd:command name='setupcombinedlist' value='nastavkombinovanyseznam'/>
- <cd:command name='setupcomment' value='nastavkomentar'/>
- <cd:command name='setupdescriptions' value='nastavpopisy'/>
- <cd:command name='setupenumerations' value='nastavvycty'/>
- <cd:command name='setupexternalfigures' value='nastavexterniobrazy'/>
- <cd:command name='setupfield' value='nastavpole'/>
- <cd:command name='setupfields' value='nastavvsechnapole'/>
- <cd:command name='setupfillinlines' value='nastavvyplnoveradky'/>
- <cd:command name='setupfillinrules' value='nastavvyplnovelinky'/>
- <cd:command name='setupfloat' value='nastavplvouciobjekt'/>
- <cd:command name='setupfloats' value='nastavplvouciobjekty'/>
- <cd:command name='setupfloatsplitting' value='nastavdeleniplvoucichobjektu'/>
- <cd:command name='setupfooter' value='nastavupati'/>
- <cd:command name='setupfootertexts' value='nastavtextyupati'/>
- <cd:command name='setupfootnotedefinition' value='nastavdefinicipoznamekpodcarou'/>
- <cd:command name='setupfootnotes' value='nastavpoznamkypodcarou'/>
- <cd:command name='setupforms' value='setupforms'/>
- <cd:command name='setupformulas' value='nastavrovnice'/>
- <cd:command name='setupframed' value='nastavoramovani'/>
- <cd:command name='setupframedtexts' value='nastavoramovanetexty'/>
- <cd:command name='setuphead' value='nastavnadpis'/>
- <cd:command name='setupheader' value='nastavzahlavi'/>
- <cd:command name='setupheadertexts' value='nastavtextyzahlavi'/>
- <cd:command name='setupheadnumber' value='nastavcislonadpisu'/>
- <cd:command name='setupheads' value='nastavnadpisy'/>
- <cd:command name='setupheadtext' value='nastavtexthlavicky'/>
- <cd:command name='setuphyphenmark' value='nastavdelitko'/>
- <cd:command name='setupindentations' value='nastavodsazeni'/>
- <cd:command name='setupindenting' value='nastavodsazovani'/>
- <cd:command name='setupinmargin' value='nastavmarginalie'/>
- <cd:command name='setupinteraction' value='nastavinterakci'/>
- <cd:command name='setupinteractionbar' value='nastavinterakcnilistu'/>
- <cd:command name='setupinteractionmenu' value='nastavinterakcnimenu'/>
- <cd:command name='setupinteractionscreen' value='nastavinterakcniobrazovku'/>
- <cd:command name='setupinterlinespace' value='nastavmeziradkovoumezeru'/>
- <cd:command name='setupitemgroup' value='setupitemgroup'/>
- <cd:command name='setupitemgroups' value='nastavvycty'/>
- <cd:command name='setupitems' value='nastavpolozky'/>
- <cd:command name='setuplabeltext' value='nastavtextpopisku'/>
- <cd:command name='setuplanguage' value='nastavjazyk'/>
- <cd:command name='setuplayout' value='nastavvzhled'/>
- <cd:command name='setuplegend' value='nastavlegendu'/>
- <cd:command name='setuplinenumbering' value='nastavcislovaniradku'/>
- <cd:command name='setuplines' value='nastavradky'/>
- <cd:command name='setuplinewidth' value='nastavsirkucary'/>
- <cd:command name='setuplist' value='nastavseznam'/>
- <cd:command name='setupmakeup' value='nastavupravu'/>
- <cd:command name='setupmarginblocks' value='nastavmarginalniblok'/>
- <cd:command name='setupmarginrules' value='nastavmarginalnilinky'/>
- <cd:command name='setupmarking' value='nastavznaceni'/>
- <cd:command name='setupmathalignment' value='setupmathalignment'/>
- <cd:command name='setupnarrower' value='nastavzuzeni'/>
- <cd:command name='setupnumber' value='setupnumber'/>
- <cd:command name='setupnumbering' value='nastavcislovani'/>
- <cd:command name='setupoppositeplacing' value='nastavumisteniprotejsku'/>
- <cd:command name='setupoutput' value='nastavvystup'/>
- <cd:command name='setuppagecomment' value='nastavkomentarstrany'/>
- <cd:command name='setuppagenumber' value='nastavcislostrany'/>
- <cd:command name='setuppagenumbering' value='nastavcislovanistran'/>
- <cd:command name='setuppagetransitions' value='nastavprechodstrany'/>
- <cd:command name='setuppalet' value='nastavpaletu'/>
- <cd:command name='setuppaper' value='setuppaper'/>
- <cd:command name='setuppapersize' value='nastavvelikostpapiru'/>
- <cd:command name='setupparagraphnumbering' value='nastavcislovaniodstavcu'/>
- <cd:command name='setupparagraphs' value='nastavodstavce'/>
- <cd:command name='setupplacement' value='setupplacement'/>
- <cd:command name='setuppositioning' value='nastavumistovani'/>
- <cd:command name='setupprofiles' value='nastavprofily'/>
- <cd:command name='setupprograms' value='nastavprogramy'/>
- <cd:command name='setuppublications' value='nastavpublikace'/>
- <cd:command name='setupquote' value='nastavcitaci'/>
- <cd:command name='setupreferencelist' value='nastavseznamodkazu'/>
- <cd:command name='setupreferencing' value='nastavodkazovani'/>
- <cd:command name='setupregister' value='nastavrejstrik'/>
- <cd:command name='setuprotate' value='nastavotoceni'/>
- <cd:command name='setuprule' value='setuprule'/>
- <cd:command name='setups' value='nastaveni'/>
- <cd:command name='setupscreens' value='nastavrastr'/>
- <cd:command name='setupsection' value='nastavsekci'/>
- <cd:command name='setupsectionblock' value='nastavbloksekce'/>
- <cd:command name='setupsorting' value='nastavtrideni'/>
- <cd:command name='setupspacing' value='nastavradkovani'/>
- <cd:command name='setupstartstop' value='setupstartstop'/>
- <cd:command name='setupstrut' value='setupstrut'/>
- <cd:command name='setupsubpagenumber' value='nastavpodcislostrany'/>
- <cd:command name='setupsymbolset' value='nastavsadusymbolu'/>
- <cd:command name='setupsynchronization' value='nastavsynchronizaci'/>
- <cd:command name='setupsynchronizationbar' value='nastavsynchronizacnilistu'/>
- <cd:command name='setupsynonyms' value='nastavsynonyma'/>
- <cd:command name='setupsystem' value='nastavsystem'/>
- <cd:command name='setuptab' value='nastavtab'/>
- <cd:command name='setuptables' value='nastavtabulky'/>
- <cd:command name='setuptabulate' value='nastavtabelaci'/>
- <cd:command name='setuptext' value='nastavtext'/>
- <cd:command name='setuptextposition' value='setuptextposition'/>
- <cd:command name='setuptextrules' value='nastavtextovelinky'/>
- <cd:command name='setuptexttexts' value='nastavtexttexty'/>
- <cd:command name='setuptextvariable' value='setuptextvariable'/>
- <cd:command name='setupthinrules' value='nastavtenkelinky'/>
- <cd:command name='setuptolerance' value='nastavtoleranci'/>
- <cd:command name='setuptop' value='nastavhorejsek'/>
- <cd:command name='setuptoptexts' value='nastavhornitexty'/>
- <cd:command name='setuptype' value='nastavtype'/>
- <cd:command name='setuptyping' value='nastavopis'/>
- <cd:command name='setupunderbar' value='nastavpodtrzeni'/>
- <cd:command name='setupurl' value='nastavurl'/>
- <cd:command name='setupversions' value='nastavverze'/>
- <cd:command name='setupwhitespace' value='nastavbilamista'/>
- <cd:command name='showbodyfont' value='ukazzakladnifont'/>
- <cd:command name='showbodyfontenvironment' value='ukazpostredizakladnihofontu'/>
- <cd:command name='showcolor' value='ukazbarvu'/>
- <cd:command name='showcolorgroup' value='ukazskupinubarev'/>
- <cd:command name='showexternalfigures' value='ukazexterniobrazy'/>
- <cd:command name='showfields' value='ukazpole'/>
- <cd:command name='showframe' value='ukazramecek'/>
- <cd:command name='showgrid' value='ukazmrizku'/>
- <cd:command name='showlayout' value='ukazvzhled'/>
- <cd:command name='showmakeup' value='ukazupravu'/>
- <cd:command name='showpalet' value='ukazpaletu'/>
- <cd:command name='showprint' value='ukazvytisk'/>
- <cd:command name='showsetups' value='ukaznastaveni'/>
- <cd:command name='showstruts' value='ukazpodpery'/>
- <cd:command name='showsymbolset' value='ukazsadusymbolu'/>
- <cd:command name='smallcapped' value='kap'/>
- <cd:command name='someline' value='nejakyradek'/>
- <cd:command name='somewhere' value='nekde'/>
- <cd:command name='space' value='mezera'/>
- <cd:command name='splitfloat' value='rozdelplvouciobjekt'/>
- <cd:command name='startalignment' value='startzarovnavani'/>
- <cd:command name='startbackground' value='startpozadi'/>
- <cd:command name='startcoding' value='startkodovani'/>
- <cd:command name='startcolor' value='startbarva'/>
- <cd:command name='startcolumnmakeup' value='startcolumnmakeup'/>
- <cd:command name='startcolumns' value='startsloupce'/>
- <cd:command name='startcolumnset' value='startcolumnset'/>
- <cd:command name='startcombination' value='startspojeni'/>
- <cd:command name='startcomponent' value='startkomponenta'/>
- <cd:command name='startdocument' value='startdokument'/>
- <cd:command name='startenvironment' value='startprostredi'/>
- <cd:command name='startfigure' value='startobraz'/>
- <cd:command name='startglobal' value='startglobalni'/>
- <cd:command name='startline' value='startradek'/>
- <cd:command name='startlinecorrection' value='startkorekceradku'/>
- <cd:command name='startlinenumbering' value='startcislovaniradku'/>
- <cd:command name='startlines' value='startradky'/>
- <cd:command name='startlocal' value='startlokalni'/>
- <cd:command name='startlocalfootnotes' value='startlokalnipoznamkypodcarou'/>
- <cd:command name='startmakeup' value='startuprava'/>
- <cd:command name='startmarginblock' value='startmarginalniblok'/>
- <cd:command name='startmarginrule' value='startmarginalnilinka'/>
- <cd:command name='startnarrower' value='startzuzeni'/>
- <cd:command name='startopposite' value='startprotejsek'/>
- <cd:command name='startoverlay' value='startprekryv'/>
- <cd:command name='startoverzicht' value='startprehled'/>
- <cd:command name='startpacked' value='startzhustene'/>
- <cd:command name='startpositioning' value='startumistovani'/>
- <cd:command name='startproduct' value='startprodukt'/>
- <cd:command name='startprofile' value='startprofil'/>
- <cd:command name='startproject' value='startprojekt'/>
- <cd:command name='startquotation' value='startcitace'/>
- <cd:command name='startraster' value='startrastr'/>
- <cd:command name='startsymbolset' value='startsadasymbolu'/>
- <cd:command name='startsynchronization' value='startsynchronizace'/>
- <cd:command name='starttable' value='starttabulka'/>
- <cd:command name='starttables' value='starttabulky'/>
- <cd:command name='starttext' value='starttext'/>
- <cd:command name='starttextrule' value='starttextovalinka'/>
- <cd:command name='startunpacked' value='startnezhustene'/>
- <cd:command name='startversion' value='startverze'/>
- <cd:command name='stopalignment' value='stopzarovnavani'/>
- <cd:command name='stopbackground' value='stoppozadi'/>
- <cd:command name='stopcoding' value='stopkodovani'/>
- <cd:command name='stopcolor' value='stopbarva'/>
- <cd:command name='stopcolumnmakeup' value='stopcolumnmakeup'/>
- <cd:command name='stopcolumns' value='stopsloupce'/>
- <cd:command name='stopcolumnset' value='stopcolumnset'/>
- <cd:command name='stopcombination' value='stopspojeni'/>
- <cd:command name='stopcomponent' value='stopkomponenta'/>
- <cd:command name='stopdocument' value='stopdokument'/>
- <cd:command name='stopenvironment' value='stopprostredi'/>
- <cd:command name='stopglobal' value='stopglobalni'/>
- <cd:command name='stopline' value='stopradek'/>
- <cd:command name='stoplinecorrection' value='stopkorekceradku'/>
- <cd:command name='stoplinenumbering' value='stopcislovaniradku'/>
- <cd:command name='stoplines' value='stopradky'/>
- <cd:command name='stoplocal' value='stoplokalni'/>
- <cd:command name='stoplocalfootnotes' value='stoplokalnipoznamkypodcarou'/>
- <cd:command name='stopmakeup' value='stopuprava'/>
- <cd:command name='stopmarginblock' value='stopmarginalniblok'/>
- <cd:command name='stopmarginrule' value='stopmarginalnilinka'/>
- <cd:command name='stopnarrower' value='stopzuzeni'/>
- <cd:command name='stopopposite' value='stopprotejsek'/>
- <cd:command name='stopoverlay' value='stopprekryv'/>
- <cd:command name='stopoverzicht' value='stopprehled'/>
- <cd:command name='stoppacked' value='stopzhustene'/>
- <cd:command name='stoppositioning' value='stopumistovani'/>
- <cd:command name='stopproduct' value='stopprodukt'/>
- <cd:command name='stopprofile' value='stopprofil'/>
- <cd:command name='stopproject' value='stopprojekt'/>
- <cd:command name='stopquotation' value='stopcitace'/>
- <cd:command name='stopraster' value='stoprastr'/>
- <cd:command name='stopsynchronization' value='stopsynchronizace'/>
- <cd:command name='stoptable' value='stoptabulka'/>
- <cd:command name='stoptables' value='stoptabulky'/>
- <cd:command name='stoptext' value='stoptext'/>
- <cd:command name='stoptextrule' value='stoptextovalinka'/>
- <cd:command name='stopunpacked' value='stopnezhustene'/>
- <cd:command name='stopversion' value='stopverze'/>
- <cd:command name='stretched' value='roztazene'/>
- <cd:command name='subformulanumber' value='cislopodrovnice'/>
- <cd:command name='subpagenumber' value='subpagenumber'/>
- <cd:command name='switchtobodyfont' value='prepninazakladnifont'/>
- <cd:command name='switchtorawfont' value='switchtorawfont'/>
- <cd:command name='sym' value='sym'/>
- <cd:command name='symbol' value='symbol'/>
- <cd:command name='synchronizationbar' value='synchronizacnilista'/>
- <cd:command name='synchronize' value='synchronizovat'/>
- <cd:command name='tab' value='tab'/>
- <cd:command name='testcolumn' value='testcolumn'/>
- <cd:command name='testpage' value='testpage'/>
- <cd:command name='tex' value='tex'/>
- <cd:command name='textheight' value='vyskatextu'/>
- <cd:command name='textreference' value='odkaznatext'/>
- <cd:command name='textrule' value='textovalinka'/>
- <cd:command name='textvariable' value='textvariable'/>
- <cd:command name='textwidth' value='sirkatextu'/>
- <cd:command name='thinrule' value='tenkalinka'/>
- <cd:command name='thinrules' value='tenkelinky'/>
- <cd:command name='tooltip' value='bublinkovanapoveda'/>
- <cd:command name='topdistance' value='vzdalenosthorejsku'/>
- <cd:command name='topheight' value='vyskahorejsku'/>
- <cd:command name='topspace' value='odsazenishora'/>
- <cd:command name='totalnumberofpages' value='celkovypocetstran'/>
- <cd:command name='translate' value='prelozit'/>
- <cd:command name='txt' value='txt'/>
- <cd:command name='typ' value='pis'/>
- <cd:command name='type' value='opis'/>
- <cd:command name='typebuffer' value='typebuffer'/>
- <cd:command name='typefile' value='opissoubor'/>
- <cd:command name='underbar' value='podtrzeno'/>
- <cd:command name='underbars' value='podtrzeni'/>
- <cd:command name='unitmeaning' value='vyznam'/>
- <cd:command name='unknown' value='neznamo'/>
- <cd:command name='useJSscripts' value='uzijJSscripts'/>
- <cd:command name='useURL' value='uzijURL'/>
- <cd:command name='useXMLfilter' value='useXMLfilter'/>
- <cd:command name='useblocks' value='uzijbloky'/>
- <cd:command name='usecommands' value='uzijprikazy'/>
- <cd:command name='useencoding' value='uzijkodovani'/>
- <cd:command name='useexternaldocument' value='uzijexternidokument'/>
- <cd:command name='useexternalfigure' value='uzijexterniobraz'/>
- <cd:command name='useexternalfile' value='uzijexternisoubor'/>
- <cd:command name='useexternalfiles' value='uzijexternisoubory'/>
- <cd:command name='useexternalsoundtrack' value='uzijexternizvuk'/>
- <cd:command name='usemodule' value='uzijmodul'/>
- <cd:command name='usemodules' value='uzijmoduly'/>
- <cd:command name='usepath' value='uzijadresar'/>
- <cd:command name='usereferences' value='uzijodkazy'/>
- <cd:command name='usespecials' value='uzijspeciality'/>
- <cd:command name='usesymbols' value='uzijsymbol'/>
- <cd:command name='usetypescript' value='usetypescript'/>
- <cd:command name='usetypescriptfile' value='usetypescriptfile'/>
- <cd:command name='useurl' value='uzijurl'/>
- <cd:command name='version' value='verze'/>
- <cd:command name='vl' value='vl'/>
- <cd:command name='weekday' value='vsedniden'/>
- <cd:command name='whitespace' value='bilemisto'/>
- <cd:command name='wordright' value='slovovpravo'/>
- <cd:command name='writebetweenlist' value='zapismeziseznam'/>
- <cd:command name='writetolist' value='zapisdoseznamu'/>
- <cd:command name='writetoreferencelist' value='zapisdoseznamuodkazu'/>
- <cd:command name='writetoregister' value='zapisdorejstriku'/>
- </cd:command>
-
-</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-de.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-de.xml
deleted file mode 100644
index 2f7d32e9fcc..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-de.xml
+++ /dev/null
@@ -1,2237 +0,0 @@
-<?xml version='1.0'?>
-
-<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='de' version='2008.10.21 19:42'>
-
- <!-- definitions for interface variables for language de -->
-
- <cd:variables>
- <cd:variable name='Addition' value='Zusatz'/>
- <cd:variable name='Alphabetic' value='Alphabetic'/>
- <cd:variable name='Balloon' value='Ballon'/>
- <cd:variable name='Cap' value='Kap'/>
- <cd:variable name='Capital' value='Versalien'/>
- <cd:variable name='Character' value='Buchstabe'/>
- <cd:variable name='Characters' value='Buchstaben'/>
- <cd:variable name='CloseDocument' value='SchliesseDokument'/>
- <cd:variable name='ExitViewer' value='BeendeViewer'/>
- <cd:variable name='FirstPage' value='ErsteSeite'/>
- <cd:variable name='FitHeight' value='HoehePassend'/>
- <cd:variable name='FitWidth' value='BreitePassend'/>
- <cd:variable name='GotoPage' value='GotoPage'/>
- <cd:variable name='Greek' value='Griechisch'/>
- <cd:variable name='Help' value='Hilfe'/>
- <cd:variable name='HideField' value='VerbergeFeld'/>
- <cd:variable name='HideLayer' value='HideLayer'/>
- <cd:variable name='Key' value='Schluessel'/>
- <cd:variable name='LastPage' value='LetzteSeite'/>
- <cd:variable name='LoadForm' value='LadeFormular'/>
- <cd:variable name='MONTH' value='MONAT'/>
- <cd:variable name='New' value='Neu'/>
- <cd:variable name='NextJump' value='NaechsterSprung'/>
- <cd:variable name='NextPage' value='FolgendeSeite'/>
- <cd:variable name='Numbers' value='Ziffern'/>
- <cd:variable name='OpenNamedDocument' value='OpenNamedDocument'/>
- <cd:variable name='Ordinal' value='Ordinal'/>
- <cd:variable name='Paragraph' value='Absatz'/>
- <cd:variable name='PauseMovie' value='PauseFilm'/>
- <cd:variable name='PauseRendering' value='PauseRendering'/>
- <cd:variable name='PauseSound' value='PauseSound'/>
- <cd:variable name='PreviousJump' value='VorigerSprung'/>
- <cd:variable name='PreviousPage' value='VorigeSeite'/>
- <cd:variable name='PrintDocument' value='DruckeDokument'/>
- <cd:variable name='Query' value='Query'/>
- <cd:variable name='QueryAgain' value='QueryAgain'/>
- <cd:variable name='ResetForm' value='ZuruecksetzenFormular'/>
- <cd:variable name='ResumeMovie' value='FortsetzenFilm'/>
- <cd:variable name='ResumeRendering' value='ResumeRendering'/>
- <cd:variable name='ResumeSound' value='ResumeSound'/>
- <cd:variable name='Romannumerals' value='Roemischezahlen'/>
- <cd:variable name='SaveDocument' value='SpeichereDokument'/>
- <cd:variable name='SaveForm' value='SpeicheFormular'/>
- <cd:variable name='SaveNamedDocument' value='SaveNamedDocument'/>
- <cd:variable name='SearchAgain' value='WeiterSuchen'/>
- <cd:variable name='SearchDocument' value='DokumentDurchsuchen'/>
- <cd:variable name='ShowBookmarks' value='ShowBookmarks'/>
- <cd:variable name='ShowField' value='ZeigeFeld'/>
- <cd:variable name='ShowThumbs' value='ShowThumbs'/>
- <cd:variable name='StartMovie' value='StartFilm'/>
- <cd:variable name='StartRendering' value='StartRendering'/>
- <cd:variable name='StartSound' value='StartSound'/>
- <cd:variable name='StopMovie' value='StopFilm'/>
- <cd:variable name='StopRendering' value='StopRendering'/>
- <cd:variable name='StopSound' value='StopSound'/>
- <cd:variable name='SubmitForm' value='VersendeFormular'/>
- <cd:variable name='ToggleLayer' value='ToggleLayer'/>
- <cd:variable name='ToggleViewer' value='WechseleViewer'/>
- <cd:variable name='URL' value='URL'/>
- <cd:variable name='VideLayer' value='VideLayer'/>
- <cd:variable name='ViewerHelp' value='ViewerHilfe'/>
- <cd:variable name='WEEKDAY' value='WOCHENTAG'/>
- <cd:variable name='WORD' value='WORT'/>
- <cd:variable name='WORDS' value='WOERTER'/>
- <cd:variable name='Word' value='Wort'/>
- <cd:variable name='Words' value='Woerter'/>
- <cd:variable name='abbreviation' value='abkuerzung'/>
- <cd:variable name='abbreviations' value='abkuerzungen'/>
- <cd:variable name='absolute' value='absolut'/>
- <cd:variable name='action' value='aktion'/>
- <cd:variable name='after' value='nach'/>
- <cd:variable name='all' value='alles'/>
- <cd:variable name='alphabetic' value='alphabetic'/>
- <cd:variable name='always' value='immer'/>
- <cd:variable name='anchor' value='anchor'/>
- <cd:variable name='and' value='und'/>
- <cd:variable name='answerarea' value='answerarea'/>
- <cd:variable name='appendices' value='anhaenge'/>
- <cd:variable name='appendix' value='anhang'/>
- <cd:variable name='april' value='april'/>
- <cd:variable name='aside' value='aside'/>
- <cd:variable name='atleftmargin' value='atleftmargin'/>
- <cd:variable name='atmargin' value='amrand'/>
- <cd:variable name='atpage' value='aufseite'/>
- <cd:variable name='atrightmargin' value='atrightmargin'/>
- <cd:variable name='attachment' value='attachment'/>
- <cd:variable name='august' value='august'/>
- <cd:variable name='author' value='autor'/>
- <cd:variable name='auto' value='auto'/>
- <cd:variable name='autointro' value='autointro'/>
- <cd:variable name='autopunctuation' value='autopunctuation'/>
- <cd:variable name='back' value='zurueck'/>
- <cd:variable name='background' value='hintergrund'/>
- <cd:variable name='backmatter' value='epiloge'/>
- <cd:variable name='backpart' value='epilog'/>
- <cd:variable name='backspace' value='rumpfspatium'/>
- <cd:variable name='backward' value='rueckwaerts'/>
- <cd:variable name='bbl' value='bbl'/>
- <cd:variable name='before' value='vor'/>
- <cd:variable name='begin' value='begin'/>
- <cd:variable name='bib' value='bib'/>
- <cd:variable name='big' value='gross'/>
- <cd:variable name='bigbodyfont' value='bigbodyfont'/>
- <cd:variable name='bigger' value='bigger'/>
- <cd:variable name='bigpreference' value='grosszuegig'/>
- <cd:variable name='blank' value='blanko'/>
- <cd:variable name='block' value='block'/>
- <cd:variable name='blockquote' value='blockquote'/>
- <cd:variable name='bodymatter' value='haupttexte'/>
- <cd:variable name='bodypart' value='haupttext'/>
- <cd:variable name='bold' value='fett'/>
- <cd:variable name='bolditalic' value='fettitalic'/>
- <cd:variable name='boldslanted' value='fettgeneigt'/>
- <cd:variable name='bookmark' value='bookmark'/>
- <cd:variable name='both' value='beide'/>
- <cd:variable name='bothtext' value='bothtext'/>
- <cd:variable name='bottom' value='unten'/>
- <cd:variable name='box' value='box'/>
- <cd:variable name='brief' value='brief'/>
- <cd:variable name='broad' value='breit'/>
- <cd:variable name='buffer' value='puffer'/>
- <cd:variable name='by' value='pro'/>
- <cd:variable name='calligraphic' value='kalligraphie'/>
- <cd:variable name='camel' value='camel'/>
- <cd:variable name='cap' value='kap'/>
- <cd:variable name='capital' value='versalien'/>
- <cd:variable name='category' value='category'/>
- <cd:variable name='cd:character' value='cd:character'/>
- <cd:variable name='cd:font' value='cd:font'/>
- <cd:variable name='center' value='center'/>
- <cd:variable name='centerlast' value='centerlast'/>
- <cd:variable name='chapter' value='kapitel'/>
- <cd:variable name='character' value='buchstabe'/>
- <cd:variable name='characters' value='buchstaben'/>
- <cd:variable name='chemical' value='chemical'/>
- <cd:variable name='chemicals' value='chemicals'/>
- <cd:variable name='chemistry' value='chemistry'/>
- <cd:variable name='cite' value='cite'/>
- <cd:variable name='closed' value='closed'/>
- <cd:variable name='color' value='farbe'/>
- <cd:variable name='column' value='column'/>
- <cd:variable name='columns' value='spalten'/>
- <cd:variable name='combination' value='combination'/>
- <cd:variable name='command' value='befehl'/>
- <cd:variable name='commands' value='befehle'/>
- <cd:variable name='comment' value='kommentar'/>
- <cd:variable name='component' value='komponente'/>
- <cd:variable name='compressseparator' value='compressseparator'/>
- <cd:variable name='compressstopper' value='compressstopper'/>
- <cd:variable name='concept' value='konzept'/>
- <cd:variable name='construction' value='construction'/>
- <cd:variable name='content' value='inhalt'/>
- <cd:variable name='contents' value='inhalte'/>
- <cd:variable name='continue' value='fortsetzten'/>
- <cd:variable name='continued' value='continued'/>
- <cd:variable name='controls' value='controls'/>
- <cd:variable name='conversion' value='konversion'/>
- <cd:variable name='current' value='aktuell'/>
- <cd:variable name='cutspace' value='cutspace'/>
- <cd:variable name='dataset' value='dataset'/>
- <cd:variable name='date' value='datum'/>
- <cd:variable name='day' value='tag'/>
- <cd:variable name='december' value='dezember'/>
- <cd:variable name='default' value='default'/>
- <cd:variable name='depth' value='tiefe'/>
- <cd:variable name='description' value='beschreibung'/>
- <cd:variable name='disable' value='sperren'/>
- <cd:variable name='display' value='bildschirm'/>
- <cd:variable name='dot' value='punkt'/>
- <cd:variable name='doublesided' value='doppelseitig'/>
- <cd:variable name='down' value='down'/>
- <cd:variable name='each' value='jede'/>
- <cd:variable name='edge' value='kante'/>
- <cd:variable name='effective' value='effective'/>
- <cd:variable name='eight' value='acht'/>
- <cd:variable name='embed' value='embed'/>
- <cd:variable name='empty' value='leer'/>
- <cd:variable name='enable' value='enable'/>
- <cd:variable name='end' value='end'/>
- <cd:variable name='endnote' value='endnote'/>
- <cd:variable name='enumeration' value='nummerierung'/>
- <cd:variable name='environment' value='umgebung'/>
- <cd:variable name='even' value='gerade'/>
- <cd:variable name='export' value='export'/>
- <cd:variable name='external' value='extern'/>
- <cd:variable name='extremestretch' value='extremestretch'/>
- <cd:variable name='fact' value='gegeben'/>
- <cd:variable name='fallback' value='fallback'/>
- <cd:variable name='february' value='februar'/>
- <cd:variable name='field' value='field'/>
- <cd:variable name='figure' value='abbildung'/>
- <cd:variable name='figures' value='abbildungen'/>
- <cd:variable name='file' value='datei'/>
- <cd:variable name='final' value='endfassung'/>
- <cd:variable name='first' value='erste'/>
- <cd:variable name='firstcolumn' value='firstcolumn'/>
- <cd:variable name='firstpage' value='ersteseite'/>
- <cd:variable name='firstsubpage' value='ersteunterseite'/>
- <cd:variable name='fit' value='passend'/>
- <cd:variable name='five' value='fuenf'/>
- <cd:variable name='fix' value='stellewiederher'/>
- <cd:variable name='fixed' value='fest'/>
- <cd:variable name='flexible' value='flexibel'/>
- <cd:variable name='float' value='gleitobjekt'/>
- <cd:variable name='flushinner' value='flushinner'/>
- <cd:variable name='flushleft' value='flushleft'/>
- <cd:variable name='flushouter' value='flushouter'/>
- <cd:variable name='flushright' value='flushright'/>
- <cd:variable name='followingpage' value='followingpage'/>
- <cd:variable name='font' value='font'/>
- <cd:variable name='footer' value='fusszeile'/>
- <cd:variable name='footnote' value='fussnote'/>
- <cd:variable name='force' value='zwinge'/>
- <cd:variable name='foreground' value='vordergrund'/>
- <cd:variable name='formula' value='formel'/>
- <cd:variable name='formulas' value='formeln'/>
- <cd:variable name='forward' value='vorwaerts'/>
- <cd:variable name='four' value='vier'/>
- <cd:variable name='fractions' value='fractions'/>
- <cd:variable name='frame' value='rahmen'/>
- <cd:variable name='framedtext' value='umrahmtertext'/>
- <cd:variable name='friday' value='freitag'/>
- <cd:variable name='frontmatter' value='einleitungen'/>
- <cd:variable name='frontpart' value='einleitung'/>
- <cd:variable name='fullhz' value='fullhz'/>
- <cd:variable name='global' value='global'/>
- <cd:variable name='graphic' value='grafik'/>
- <cd:variable name='graphics' value='grafiken'/>
- <cd:variable name='gray' value='grau'/>
- <cd:variable name='greek' value='griechisch'/>
- <cd:variable name='grid' value='gritter'/>
- <cd:variable name='halfline' value='halbezeile'/>
- <cd:variable name='handwritten' value='handschrift'/>
- <cd:variable name='hang' value='haengend'/>
- <cd:variable name='hanging' value='haengend'/>
- <cd:variable name='hangingboth' value='hangingboth'/>
- <cd:variable name='head' value='kopf'/>
- <cd:variable name='header' value='kopfzeile'/>
- <cd:variable name='headintext' value='headintext'/>
- <cd:variable name='height' value='hoehe'/>
- <cd:variable name='helptext' value='hilfetext'/>
- <cd:variable name='hencefore' value='vorher'/>
- <cd:variable name='here' value='hier'/>
- <cd:variable name='hereafter' value='nachher'/>
- <cd:variable name='hidden' value='versteckt'/>
- <cd:variable name='hiddenbar' value='hiddenbar'/>
- <cd:variable name='hiding' value='verbergen'/>
- <cd:variable name='high' value='hoch'/>
- <cd:variable name='horizontal' value='horizontal'/>
- <cd:variable name='hyphenated' value='hyphenate'/>
- <cd:variable name='hz' value='hz'/>
- <cd:variable name='inbetween' value='zwischen'/>
- <cd:variable name='index' value='index'/>
- <cd:variable name='indices' value='indizies'/>
- <cd:variable name='inherit' value='inherit'/>
- <cd:variable name='ininner' value='ininner'/>
- <cd:variable name='ininneredge' value='ininneredge'/>
- <cd:variable name='ininnermargin' value='ininnermargin'/>
- <cd:variable name='inleft' value='imlinken'/>
- <cd:variable name='inleftedge' value='imlinkenrand'/>
- <cd:variable name='inleftmargin' value='inlinkermarginale'/>
- <cd:variable name='inline' value='inline'/>
- <cd:variable name='inmargin' value='imrand'/>
- <cd:variable name='inner' value='innen'/>
- <cd:variable name='inneredge' value='inneredge'/>
- <cd:variable name='innermargin' value='innermargin'/>
- <cd:variable name='inother' value='inother'/>
- <cd:variable name='inouter' value='inouter'/>
- <cd:variable name='inouteredge' value='inouteredge'/>
- <cd:variable name='inoutermargin' value='inoutermargin'/>
- <cd:variable name='inright' value='imrechten'/>
- <cd:variable name='inrightedge' value='imrechtenrand'/>
- <cd:variable name='inrightmargin' value='inrechtermarginale'/>
- <cd:variable name='integral' value='integral'/>
- <cd:variable name='interaction' value='interaktion'/>
- <cd:variable name='interactionmenu' value='interaktionsmenue'/>
- <cd:variable name='interactive' value='interactive'/>
- <cd:variable name='intermezzi' value='intermezzi'/>
- <cd:variable name='intermezzo' value='intermezzo'/>
- <cd:variable name='intext' value='imtext'/>
- <cd:variable name='intro' value='intro'/>
- <cd:variable name='invertedshort' value='invertedshort'/>
- <cd:variable name='italic' value='italic'/>
- <cd:variable name='italicbold' value='italicfett'/>
- <cd:variable name='item' value='pos'/>
- <cd:variable name='itemize' value='aufzaehlung'/>
- <cd:variable name='its' value='its'/>
- <cd:variable name='january' value='januar'/>
- <cd:variable name='joinedup' value='keinabstand'/>
- <cd:variable name='july' value='juli'/>
- <cd:variable name='june' value='juni'/>
- <cd:variable name='keep' value='behalte'/>
- <cd:variable name='kerncharacters' value='kerncharacters'/>
- <cd:variable name='knockout' value='knockout'/>
- <cd:variable name='label' value='label'/>
- <cd:variable name='landscape' value='querformat'/>
- <cd:variable name='last' value='letzte'/>
- <cd:variable name='lastcolumn' value='lastcolumn'/>
- <cd:variable name='lastpage' value='letzteseite'/>
- <cd:variable name='lastpagenumber' value='lastpagenumber'/>
- <cd:variable name='lastsubpage' value='letzteunterseite'/>
- <cd:variable name='layer' value='layer'/>
- <cd:variable name='left' value='links'/>
- <cd:variable name='leftedge' value='linkekante'/>
- <cd:variable name='lefthanging' value='lefthanging'/>
- <cd:variable name='leftmargin' value='linkerrand'/>
- <cd:variable name='leftpage' value='linkerseite'/>
- <cd:variable name='lefttoright' value='lefttoright'/>
- <cd:variable name='legend' value='legende'/>
- <cd:variable name='less' value='less'/>
- <cd:variable name='lesshyphenation' value='lesshyphenation'/>
- <cd:variable name='letterspacing' value='letterspacing'/>
- <cd:variable name='line' value='zeile'/>
- <cd:variable name='linenote' value='linenote'/>
- <cd:variable name='lines' value='zeilen'/>
- <cd:variable name='linked' value='linked'/>
- <cd:variable name='list' value='liste'/>
- <cd:variable name='local' value='lokal'/>
- <cd:variable name='localenvironment' value='lokaleumgebung'/>
- <cd:variable name='logo' value='logo'/>
- <cd:variable name='logos' value='logos'/>
- <cd:variable name='lohi' value='hoti'/>
- <cd:variable name='long' value='long'/>
- <cd:variable name='loose' value='lose'/>
- <cd:variable name='low' value='tief'/>
- <cd:variable name='ls' value='ls'/>
- <cd:variable name='makeup' value='umbruch'/>
- <cd:variable name='mar' value='mar'/>
- <cd:variable name='march' value='maerz'/>
- <cd:variable name='margin' value='marginalie'/>
- <cd:variable name='marginedge' value='marginalkante'/>
- <cd:variable name='margintext' value='marginaltext'/>
- <cd:variable name='margintitle' value='marginaltitel'/>
- <cd:variable name='marking' value='beschriftung'/>
- <cd:variable name='math' value='math'/>
- <cd:variable name='mathalignment' value='mathalignment'/>
- <cd:variable name='mathcases' value='mathcases'/>
- <cd:variable name='mathematics' value='mathematik'/>
- <cd:variable name='mathmatrix' value='mathmatrix'/>
- <cd:variable name='max' value='max'/>
- <cd:variable name='maxdepth' value='maxdepth'/>
- <cd:variable name='maxheight' value='maxheight'/>
- <cd:variable name='maxwidth' value='maxwidth'/>
- <cd:variable name='may' value='mai'/>
- <cd:variable name='mediaeval' value='mittelalterlich'/>
- <cd:variable name='medium' value='mittel'/>
- <cd:variable name='middle' value='mittig'/>
- <cd:variable name='min' value='min'/>
- <cd:variable name='mindepth' value='mindepth'/>
- <cd:variable name='minheight' value='minhoehe'/>
- <cd:variable name='minwidth' value='minbreite'/>
- <cd:variable name='mirrored' value='gespiegelt'/>
- <cd:variable name='mixed' value='mixed'/>
- <cd:variable name='monday' value='montag'/>
- <cd:variable name='mono' value='mono'/>
- <cd:variable name='monobold' value='monofett'/>
- <cd:variable name='mononormal' value='mononormal'/>
- <cd:variable name='month' value='monat'/>
- <cd:variable name='more' value='more'/>
- <cd:variable name='morehyphenation' value='morehyphenation'/>
- <cd:variable name='name' value='name'/>
- <cd:variable name='narrow' value='schmall'/>
- <cd:variable name='negative' value='negativ'/>
- <cd:variable name='never' value='nie'/>
- <cd:variable name='new' value='neu'/>
- <cd:variable name='next' value='folgende'/>
- <cd:variable name='nextevenpage' value='naechstegeradeseite'/>
- <cd:variable name='nextoddpage' value='naechsteungeradeseite'/>
- <cd:variable name='nextpage' value='folgendeseite'/>
- <cd:variable name='nextsubpage' value='folgendeunterseite'/>
- <cd:variable name='nine' value='neun'/>
- <cd:variable name='no' value='nein'/>
- <cd:variable name='nocheck' value='nocheck'/>
- <cd:variable name='nodepth' value='nodepth'/>
- <cd:variable name='nofit' value='nofit'/>
- <cd:variable name='nogrid' value='nogrid'/>
- <cd:variable name='noheight' value='noheight'/>
- <cd:variable name='nohz' value='nohz'/>
- <cd:variable name='noline' value='noline'/>
- <cd:variable name='nomarking' value='keinebeschriftung'/>
- <cd:variable name='nomenubar' value='nomenubar'/>
- <cd:variable name='none' value='kein'/>
- <cd:variable name='nonumber' value='nonumber'/>
- <cd:variable name='norepeat' value='norepeat'/>
- <cd:variable name='normal' value='normal'/>
- <cd:variable name='normalshort' value='normalshort'/>
- <cd:variable name='nospacing' value='nospacing'/>
- <cd:variable name='nostopper' value='nostopper'/>
- <cd:variable name='not' value='nicht'/>
- <cd:variable name='notation' value='notation'/>
- <cd:variable name='note' value='note'/>
- <cd:variable name='nothanging' value='nothanging'/>
- <cd:variable name='nothyphenated' value='nothyphenated'/>
- <cd:variable name='notjoinedup' value='notjoinedup'/>
- <cd:variable name='november' value='november'/>
- <cd:variable name='nowhere' value='nirgens'/>
- <cd:variable name='nowhite' value='keinweiss'/>
- <cd:variable name='number' value='nummer'/>
- <cd:variable name='numbers' value='ziffern'/>
- <cd:variable name='october' value='oktober'/>
- <cd:variable name='odd' value='ungerade'/>
- <cd:variable name='off' value='aus'/>
- <cd:variable name='offset' value='offset'/>
- <cd:variable name='old' value='old'/>
- <cd:variable name='oldstyle' value='oldstyle'/>
- <cd:variable name='on' value='an'/>
- <cd:variable name='one' value='eins'/>
- <cd:variable name='opposite' value='gegenueber'/>
- <cd:variable name='ordinal' value='ordinal'/>
- <cd:variable name='outer' value='aussen'/>
- <cd:variable name='outeredge' value='outeredge'/>
- <cd:variable name='outermargin' value='outermargin'/>
- <cd:variable name='overbar' value='ueberstrichen'/>
- <cd:variable name='overbars' value='ueberstreichen'/>
- <cd:variable name='overlay' value='overlay'/>
- <cd:variable name='overprint' value='overprint'/>
- <cd:variable name='overstrike' value='durchgestrichen'/>
- <cd:variable name='overstrikes' value='durchstreichen'/>
- <cd:variable name='packed' value='gepackt'/>
- <cd:variable name='page' value='seite'/>
- <cd:variable name='pagecomment' value='pagecomment'/>
- <cd:variable name='pagenumber' value='seitennummer'/>
- <cd:variable name='paper' value='papier'/>
- <cd:variable name='paragraph' value='absatz'/>
- <cd:variable name='part' value='teil'/>
- <cd:variable name='positive' value='positiv'/>
- <cd:variable name='postponing' value='verschieben'/>
- <cd:variable name='postscript' value='postscript'/>
- <cd:variable name='precedingpage' value='precedingpage'/>
- <cd:variable name='preference' value='einstellung'/>
- <cd:variable name='preview' value='vorschau'/>
- <cd:variable name='previous' value='vorig'/>
- <cd:variable name='previousevenpage' value='vorigegeradeseite'/>
- <cd:variable name='previousoddpage' value='vorigeungeradeseite'/>
- <cd:variable name='previouspage' value='vorigeseite'/>
- <cd:variable name='previoussubpage' value='vorigeunterseite'/>
- <cd:variable name='print' value='print'/>
- <cd:variable name='printable' value='druckbar'/>
- <cd:variable name='process' value='process'/>
- <cd:variable name='product' value='produkt'/>
- <cd:variable name='program' value='programm'/>
- <cd:variable name='project' value='projekt'/>
- <cd:variable name='protected' value='geschuetzt'/>
- <cd:variable name='quadruple' value='viertel'/>
- <cd:variable name='quarterline' value='quarterline'/>
- <cd:variable name='quotation' value='zitat'/>
- <cd:variable name='quote' value='zitieren'/>
- <cd:variable name='ran' value='ran'/>
- <cd:variable name='random' value='zufaellig'/>
- <cd:variable name='readonly' value='nurlesbar'/>
- <cd:variable name='rectangular' value='rechteckig'/>
- <cd:variable name='reference' value='referenz'/>
- <cd:variable name='referral' value='merkmal'/>
- <cd:variable name='region' value='region'/>
- <cd:variable name='register' value='register'/>
- <cd:variable name='regular' value='regular'/>
- <cd:variable name='relative' value='relativ'/>
- <cd:variable name='repeat' value='wiederholen'/>
- <cd:variable name='required' value='obligatorisch'/>
- <cd:variable name='reset' value='zuruecksetzten'/>
- <cd:variable name='reverse' value='reverse'/>
- <cd:variable name='right' value='rechts'/>
- <cd:variable name='rightedge' value='rechterkante'/>
- <cd:variable name='righthanging' value='righthanging'/>
- <cd:variable name='rightmargin' value='rechterrand'/>
- <cd:variable name='rightpage' value='rechterseite'/>
- <cd:variable name='righttoleft' value='righttoleft'/>
- <cd:variable name='roman' value='antiqua'/>
- <cd:variable name='romannumerals' value='roemischezahlen'/>
- <cd:variable name='rotate' value='drehe'/>
- <cd:variable name='rotated' value='gedreht'/>
- <cd:variable name='round' value='rund'/>
- <cd:variable name='row' value='row'/>
- <cd:variable name='rule' value='linie'/>
- <cd:variable name='samepage' value='selbeseite'/>
- <cd:variable name='sans' value='sans'/>
- <cd:variable name='sansbold' value='sansfett'/>
- <cd:variable name='sansnormal' value='sansnormal'/>
- <cd:variable name='sansserif' value='grotesk'/>
- <cd:variable name='saturday' value='samstag'/>
- <cd:variable name='screen' value='raster'/>
- <cd:variable name='section' value='absatz'/>
- <cd:variable name='sectionblockenvironment' value='sectionblockenvironment'/>
- <cd:variable name='sectionnumber' value='abschnittsnummer'/>
- <cd:variable name='see' value='sieh'/>
- <cd:variable name='selectfont' value='selectfont'/>
- <cd:variable name='separator' value='separator'/>
- <cd:variable name='september' value='september'/>
- <cd:variable name='serif' value='serif'/>
- <cd:variable name='serifbold' value='serifbold'/>
- <cd:variable name='serifnormal' value='serifnormal'/>
- <cd:variable name='serried' value='kleinerabstand'/>
- <cd:variable name='setups' value='setups'/>
- <cd:variable name='seven' value='sieben'/>
- <cd:variable name='sheet' value='sheet'/>
- <cd:variable name='shiftdown' value='shiftdown'/>
- <cd:variable name='shiftup' value='shiftup'/>
- <cd:variable name='short' value='kurz'/>
- <cd:variable name='simplefonts' value='simplefonts'/>
- <cd:variable name='simplelist' value='simplelist'/>
- <cd:variable name='singlesided' value='einzelseitig'/>
- <cd:variable name='six' value='sechs'/>
- <cd:variable name='slanted' value='geneigt'/>
- <cd:variable name='slantedbold' value='geneigtfett'/>
- <cd:variable name='small' value='klein'/>
- <cd:variable name='smallbodyfont' value='smallbodyfont'/>
- <cd:variable name='smallbold' value='kleinfett'/>
- <cd:variable name='smallbolditalic' value='kleinfettitalic'/>
- <cd:variable name='smallboldslanted' value='kleinfettgeneigt'/>
- <cd:variable name='smallcaps' value='smallcaps'/>
- <cd:variable name='smaller' value='smaller'/>
- <cd:variable name='smallitalic' value='kleinitalic'/>
- <cd:variable name='smallitalicbold' value='kleinitalicfett'/>
- <cd:variable name='smallnormal' value='kleinnormal'/>
- <cd:variable name='smallslanted' value='kleingeneigt'/>
- <cd:variable name='smallslantedbold' value='kleingeneigtfett'/>
- <cd:variable name='smalltype' value='kleintippen'/>
- <cd:variable name='somewhere' value='irgendwo'/>
- <cd:variable name='sorted' value='sortiert'/>
- <cd:variable name='sorting' value='sorting'/>
- <cd:variable name='space' value='spatium'/>
- <cd:variable name='spacing' value='spatiumausgleich'/>
- <cd:variable name='speech' value='speech'/>
- <cd:variable name='split' value='split'/>
- <cd:variable name='spot' value='spot'/>
- <cd:variable name='standard' value='standard'/>
- <cd:variable name='start' value='start'/>
- <cd:variable name='starter' value='starter'/>
- <cd:variable name='sticker' value='sticker'/>
- <cd:variable name='stop' value='stop'/>
- <cd:variable name='stopper' value='trenner'/>
- <cd:variable name='stretch' value='strecken'/>
- <cd:variable name='stretched' value='stretched'/>
- <cd:variable name='strict' value='streng'/>
- <cd:variable name='strong' value='strong'/>
- <cd:variable name='strut' value='strut'/>
- <cd:variable name='sub' value='unter'/>
- <cd:variable name='subbackward' value='unterrueckwaerts'/>
- <cd:variable name='subformula' value='subformel'/>
- <cd:variable name='subforward' value='untervorwaerts'/>
- <cd:variable name='subject' value='thema'/>
- <cd:variable name='subpage' value='unterseite'/>
- <cd:variable name='subs' value='subs'/>
- <cd:variable name='subsection' value='unterabsatz'/>
- <cd:variable name='subsubject' value='unterthema'/>
- <cd:variable name='subsubsection' value='unterunterabsatz'/>
- <cd:variable name='subsubsubject' value='unterunterthema'/>
- <cd:variable name='subsubsubsection' value='unterunterunterabsatz'/>
- <cd:variable name='subsubsubsubject' value='unterunterunterthema'/>
- <cd:variable name='subsubsubsubsection' value='unterunterunterunterabsatz'/>
- <cd:variable name='subsubsubsubsubject' value='unterunterunterunterthema'/>
- <cd:variable name='subsubsubsubsubsection' value='unterunterunterunterunterabsatz'/>
- <cd:variable name='subsubsubsubsubsubject' value='unterunterunterunterunterthema'/>
- <cd:variable name='subsubsubsubsubsubsection' value='unterunterunterunterunterunterabsatz'/>
- <cd:variable name='subsubsubsubsubsubsubject' value='unterunterunterunterunterunterthema'/>
- <cd:variable name='subsubsubsubsubsubsubsection' value='unterunterunterunterunterunterunterabsatz'/>
- <cd:variable name='subsubsubsubsubsubsubsubject' value='unterunterunterunterunterunterunterthema'/>
- <cd:variable name='subsubsubsubsubsubsubsubsection' value='unterunterunterunterunterunterunterunterabsatz'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubject' value='unterunterunterunterunterunterunterunterthema'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubsection' value='unterunterunterunterunterunterunterunterunterabsatz'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubsubject' value='unterunterunterunterunterunterunterunterunterthema'/>
- <cd:variable name='sunday' value='sonntag'/>
- <cd:variable name='support' value='support'/>
- <cd:variable name='sym' value='sym'/>
- <cd:variable name='symbol' value='symbol'/>
- <cd:variable name='synchronize' value='synchronize'/>
- <cd:variable name='synonym' value='synonym'/>
- <cd:variable name='system' value='systeme'/>
- <cd:variable name='table' value='tabelle'/>
- <cd:variable name='tablehead' value='tabellenueberschrift'/>
- <cd:variable name='tables' value='tabellen'/>
- <cd:variable name='tabletail' value='tabellenende'/>
- <cd:variable name='tabulate' value='tabulator'/>
- <cd:variable name='tabulatehead' value='tabulatehead'/>
- <cd:variable name='tabulatetail' value='tabulatetail'/>
- <cd:variable name='tall' value='lang'/>
- <cd:variable name='teletype' value='fernschreiber'/>
- <cd:variable name='temporary' value='temporaer'/>
- <cd:variable name='test' value='test'/>
- <cd:variable name='text' value='text'/>
- <cd:variable name='textnote' value='textnote'/>
- <cd:variable name='three' value='drei'/>
- <cd:variable name='thursday' value='donnerstag'/>
- <cd:variable name='tight' value='tight'/>
- <cd:variable name='title' value='titel'/>
- <cd:variable name='toggle' value='toggle'/>
- <cd:variable name='tolerant' value='tolerant'/>
- <cd:variable name='top' value='oben'/>
- <cd:variable name='tuesday' value='dienstag'/>
- <cd:variable name='two' value='zwei'/>
- <cd:variable name='txt' value='txt'/>
- <cd:variable name='type' value='tippen'/>
- <cd:variable name='typing' value='tippen'/>
- <cd:variable name='unavailable' value='nichtverfuegbar'/>
- <cd:variable name='underbar' value='unterstrichen'/>
- <cd:variable name='underbars' value='unterstreichen'/>
- <cd:variable name='understrike' value='understrike'/>
- <cd:variable name='understrikes' value='understrikes'/>
- <cd:variable name='unframed' value='unframed'/>
- <cd:variable name='unicode' value='unicode'/>
- <cd:variable name='unit' value='einheit'/>
- <cd:variable name='units' value='einheiten'/>
- <cd:variable name='unknown' value='unbekannt'/>
- <cd:variable name='unpacked' value='ungepackt'/>
- <cd:variable name='up' value='up'/>
- <cd:variable name='url' value='url'/>
- <cd:variable name='used' value='verwende'/>
- <cd:variable name='value' value='wert'/>
- <cd:variable name='vertical' value='vertikal'/>
- <cd:variable name='very' value='sehr'/>
- <cd:variable name='verystrict' value='sehrstreng'/>
- <cd:variable name='verytolerant' value='sehrtolerant'/>
- <cd:variable name='vfenced' value='vfenced'/>
- <cd:variable name='vulgarfraction' value='vulgarfraction'/>
- <cd:variable name='weak' value='weak'/>
- <cd:variable name='wednesday' value='mittwoch'/>
- <cd:variable name='week' value='woche'/>
- <cd:variable name='weekday' value='wochentag'/>
- <cd:variable name='white' value='weiss'/>
- <cd:variable name='wide' value='breit'/>
- <cd:variable name='width' value='breite'/>
- <cd:variable name='word' value='wort'/>
- <cd:variable name='words' value='words'/>
- <cd:variable name='xml' value='xml'/>
- <cd:variable name='year' value='jahr'/>
- <cd:variable name='yes' value='ja'/>
- </cd:variables>
-
- <!-- definitions for interface constants for language de -->
-
- <cd:constants>
- <cd:constant name='action' value='aktion'/>
- <cd:constant name='address' value='adresse'/>
- <cd:constant name='after' value='nach'/>
- <cd:constant name='afterhead' value='nachkopf'/>
- <cd:constant name='afterkey' value='nachtaste'/>
- <cd:constant name='aftersection' value='aftersection'/>
- <cd:constant name='align' value='ausrichtung'/>
- <cd:constant name='alignbottom' value='alignbottom'/>
- <cd:constant name='aligncharacter' value='aligncharacter'/>
- <cd:constant name='alignmentcharacter' value='alignmentcharacter'/>
- <cd:constant name='alignmentleftsample' value='alignmentleftsample'/>
- <cd:constant name='alignmentleftwidth' value='alignmentleftwidth'/>
- <cd:constant name='alignmentrightsample' value='alignmentrightsample'/>
- <cd:constant name='alignmentrightwidth' value='alignmentrightwidth'/>
- <cd:constant name='alignsymbol' value='alignsymbol'/>
- <cd:constant name='aligntitle' value='titelausrichten'/>
- <cd:constant name='alternative' value='alternative'/>
- <cd:constant name='anchor' value='anchor'/>
- <cd:constant name='anchoring' value='anchoring'/>
- <cd:constant name='andtext' value='andtext'/>
- <cd:constant name='apa' value='apa'/>
- <cd:constant name='arguments' value='arguments'/>
- <cd:constant name='arrow' value='pfeil'/>
- <cd:constant name='artauthor' value='artauthor'/>
- <cd:constant name='artauthoretaldisplay' value='artauthoretaldisplay'/>
- <cd:constant name='artauthoretallimit' value='artauthoretallimit'/>
- <cd:constant name='artauthoretaltext' value='artauthoretaltext'/>
- <cd:constant name='artoffset' value='artoffset'/>
- <cd:constant name='at' value='bei'/>
- <cd:constant name='author' value='autor'/>
- <cd:constant name='authorconversion' value='authorconversion'/>
- <cd:constant name='authoretaldisplay' value='authoretaldisplay'/>
- <cd:constant name='authoretallimit' value='authoretallimit'/>
- <cd:constant name='authoretaltext' value='authoretaltext'/>
- <cd:constant name='auto' value='auto'/>
- <cd:constant name='autocase' value='autocase'/>
- <cd:constant name='autofile' value='autofile'/>
- <cd:constant name='autofocus' value='autofocus'/>
- <cd:constant name='autohang' value='autohang'/>
- <cd:constant name='autostrut' value='autostrut'/>
- <cd:constant name='autowidth' value='autobreite'/>
- <cd:constant name='availableheight' value='availableheight'/>
- <cd:constant name='availablewidth' value='availablewidth'/>
- <cd:constant name='axis' value='achsen'/>
- <cd:constant name='background' value='hintergrund'/>
- <cd:constant name='backgroundcolor' value='hintergrundfarbe'/>
- <cd:constant name='backgroundcorner' value='hintergrundwinkel'/>
- <cd:constant name='backgrounddepth' value='hintergrundtiefe'/>
- <cd:constant name='backgroundoffset' value='hintergrundoffset'/>
- <cd:constant name='backgroundradius' value='hintergrundradius'/>
- <cd:constant name='backgroundscreen' value='hintergrundraster'/>
- <cd:constant name='backreference' value='backreference'/>
- <cd:constant name='backspace' value='rumpfspatium'/>
- <cd:constant name='balance' value='ausgleichen'/>
- <cd:constant name='before' value='vor'/>
- <cd:constant name='beforehead' value='vorkopf'/>
- <cd:constant name='beforesection' value='beforesection'/>
- <cd:constant name='bet' value='bet'/>
- <cd:constant name='bidi' value='bidi'/>
- <cd:constant name='big' value='gross'/>
- <cd:constant name='blank' value='blanko'/>
- <cd:constant name='bleedoffset' value='bleedoffset'/>
- <cd:constant name='blockway' value='blockauf'/>
- <cd:constant name='bodyfont' value='fliesstext'/>
- <cd:constant name='boffset' value='boffset'/>
- <cd:constant name='boldfeatures' value='boldfeatures'/>
- <cd:constant name='boldfont' value='boldfont'/>
- <cd:constant name='bolditalicfeatures' value='bolditalicfeatures'/>
- <cd:constant name='bolditalicfont' value='bolditalicfont'/>
- <cd:constant name='boldslantedfeatures' value='boldslantedfeatures'/>
- <cd:constant name='boldslantedfont' value='boldslantedfont'/>
- <cd:constant name='bookmark' value='bookmark'/>
- <cd:constant name='bottom' value='unten'/>
- <cd:constant name='bottomafter' value='bottomafter'/>
- <cd:constant name='bottombefore' value='bottombefore'/>
- <cd:constant name='bottomcommand' value='bottomcommand'/>
- <cd:constant name='bottomdistance' value='abstandunten'/>
- <cd:constant name='bottomframe' value='untenrahmen'/>
- <cd:constant name='bottomoffset' value='untenoffset'/>
- <cd:constant name='bottomspace' value='bottomspace'/>
- <cd:constant name='bottomstate' value='untenstatus'/>
- <cd:constant name='break' value='break'/>
- <cd:constant name='buffer' value='buffer'/>
- <cd:constant name='cache' value='cache'/>
- <cd:constant name='calculate' value='berechnen'/>
- <cd:constant name='category' value='category'/>
- <cd:constant name='ccommand' value='cbefehl'/>
- <cd:constant name='character' value='character'/>
- <cd:constant name='characters' value='characters'/>
- <cd:constant name='check' value='check'/>
- <cd:constant name='click' value='klick'/>
- <cd:constant name='clickin' value='klickin'/>
- <cd:constant name='clickout' value='klickaus'/>
- <cd:constant name='clipoffset' value='clipoffset'/>
- <cd:constant name='closeaction' value='schliessenaktion'/>
- <cd:constant name='closecommand' value='closecommand'/>
- <cd:constant name='closepage' value='closepage'/>
- <cd:constant name='closepageaction' value='closepageaction'/>
- <cd:constant name='closesymbol' value='closesymbol'/>
- <cd:constant name='color' value='farbe'/>
- <cd:constant name='column' value='spalte'/>
- <cd:constant name='columndistance' value='spaltenabstand'/>
- <cd:constant name='columns' value='spalten'/>
- <cd:constant name='comma' value='comma'/>
- <cd:constant name='command' value='befehl'/>
- <cd:constant name='commandafter' value='zumbefehl'/>
- <cd:constant name='commandbefore' value='vorbefehl'/>
- <cd:constant name='commands' value='befehle'/>
- <cd:constant name='comment' value='comment'/>
- <cd:constant name='commentchar' value='commentchar'/>
- <cd:constant name='commentoffset' value='commentoffset'/>
- <cd:constant name='compact' value='compact'/>
- <cd:constant name='component' value='component'/>
- <cd:constant name='compoundhyphen' value='compoundhyphen'/>
- <cd:constant name='compress' value='compress'/>
- <cd:constant name='compressdistance' value='compressdistance'/>
- <cd:constant name='compressmethod' value='compressmethod'/>
- <cd:constant name='compressseparator' value='compressseparator'/>
- <cd:constant name='compressstopper' value='compressstopper'/>
- <cd:constant name='concerns' value='concerns'/>
- <cd:constant name='connector' value='connector'/>
- <cd:constant name='continue' value='fortsetzen'/>
- <cd:constant name='contrastcolor' value='kontrastfarbe'/>
- <cd:constant name='controls' value='controls'/>
- <cd:constant name='conversion' value='konversion'/>
- <cd:constant name='convertfile' value='konvertieredatei'/>
- <cd:constant name='copies' value='copies'/>
- <cd:constant name='corner' value='winkel'/>
- <cd:constant name='coupling' value='verknuepfung'/>
- <cd:constant name='couplingway' value='verkopplungsart'/>
- <cd:constant name='criterium' value='kriterium'/>
- <cd:constant name='cropoffset' value='cropoffset'/>
- <cd:constant name='crossreference' value='crossreference'/>
- <cd:constant name='cssfile' value='cssfile'/>
- <cd:constant name='current' value='aktuell'/>
- <cd:constant name='cutspace' value='cutspace'/>
- <cd:constant name='dash' value='strich'/>
- <cd:constant name='dat' value='dat'/>
- <cd:constant name='database' value='database'/>
- <cd:constant name='dataset' value='dataset'/>
- <cd:constant name='date' value='datum'/>
- <cd:constant name='deepnumbercommand' value='deepnumbercommand'/>
- <cd:constant name='deeptextcommand' value='deeptextcommand'/>
- <cd:constant name='default' value='default'/>
- <cd:constant name='defaultheight' value='defaultheight'/>
- <cd:constant name='defaultwidth' value='defaultwidth'/>
- <cd:constant name='define' value='define'/>
- <cd:constant name='delay' value='wartezeit'/>
- <cd:constant name='depth' value='tiefe'/>
- <cd:constant name='depthcorrection' value='tiefekorrektur'/>
- <cd:constant name='direction' value='richtung'/>
- <cd:constant name='directory' value='verzeichnis'/>
- <cd:constant name='display' value='bildschirm'/>
- <cd:constant name='displaythreshold' value='displaythreshold'/>
- <cd:constant name='distance' value='abstand'/>
- <cd:constant name='domain' value='domain'/>
- <cd:constant name='dot' value='punkt'/>
- <cd:constant name='doublesided' value='doppelseitig'/>
- <cd:constant name='down' value='down'/>
- <cd:constant name='dummy' value='dummy'/>
- <cd:constant name='dx' value='dx'/>
- <cd:constant name='dy' value='dy'/>
- <cd:constant name='edge' value='kante'/>
- <cd:constant name='edgedistance' value='kantenabstand'/>
- <cd:constant name='editor' value='editor'/>
- <cd:constant name='editoretaldisplay' value='editoretaldisplay'/>
- <cd:constant name='editoretallimit' value='editoretallimit'/>
- <cd:constant name='editoretaltext' value='editoretaltext'/>
- <cd:constant name='empty' value='leer'/>
- <cd:constant name='entities' value='entities'/>
- <cd:constant name='entries' value='entries'/>
- <cd:constant name='equalheight' value='equalheight'/>
- <cd:constant name='equalwidth' value='equalwidth'/>
- <cd:constant name='escape' value='escape'/>
- <cd:constant name='etaldisplay' value='etaldisplay'/>
- <cd:constant name='etallimit' value='etallimit'/>
- <cd:constant name='etaloption' value='etaloption'/>
- <cd:constant name='etaltext' value='etaltext'/>
- <cd:constant name='evenmargin' value='geraderand'/>
- <cd:constant name='exact' value='exact'/>
- <cd:constant name='exitoffset' value='exitoffset'/>
- <cd:constant name='expansion' value='expansion'/>
- <cd:constant name='export' value='export'/>
- <cd:constant name='extras' value='extras'/>
- <cd:constant name='factor' value='faktor'/>
- <cd:constant name='fallback' value='fallback'/>
- <cd:constant name='fallbacks' value='fallbacks'/>
- <cd:constant name='family' value='familie'/>
- <cd:constant name='features' value='features'/>
- <cd:constant name='featureset' value='featureset'/>
- <cd:constant name='fences' value='fences'/>
- <cd:constant name='field' value='field'/>
- <cd:constant name='fieldbackgroundcolor' value='feldhintergrundfarbe'/>
- <cd:constant name='fieldframecolor' value='feldrahmenfarbe'/>
- <cd:constant name='fieldlayer' value='fieldlayer'/>
- <cd:constant name='fieldoffset' value='feldoffset'/>
- <cd:constant name='file' value='datei'/>
- <cd:constant name='filler' value='filler'/>
- <cd:constant name='filter' value='filter'/>
- <cd:constant name='filtercommand' value='filtercommand'/>
- <cd:constant name='finalnamesep' value='finalnamesep'/>
- <cd:constant name='finalpagesep' value='finalpagesep'/>
- <cd:constant name='finalpubsep' value='finalpubsep'/>
- <cd:constant name='first' value='erste'/>
- <cd:constant name='firstnamesep' value='firstnamesep'/>
- <cd:constant name='firstpage' value='ersteseite'/>
- <cd:constant name='focus' value='focus'/>
- <cd:constant name='focusin' value='focusin'/>
- <cd:constant name='focusoffset' value='focusoffset'/>
- <cd:constant name='focusout' value='focusout'/>
- <cd:constant name='font' value='font'/>
- <cd:constant name='footer' value='fusszeile'/>
- <cd:constant name='footerdistance' value='fusszeilenabstand'/>
- <cd:constant name='footerstate' value='fusszeilenstatus'/>
- <cd:constant name='force' value='zwinge'/>
- <cd:constant name='foregroundcolor' value='foregroundcolor'/>
- <cd:constant name='foregroundstyle' value='foregroundstyle'/>
- <cd:constant name='format' value='formatieren'/>
- <cd:constant name='fractions' value='fractions'/>
- <cd:constant name='frame' value='rahmen'/>
- <cd:constant name='framecolor' value='rahmenfarbe'/>
- <cd:constant name='framecorner' value='rahmenwinkel'/>
- <cd:constant name='framedepth' value='rahmentiefe'/>
- <cd:constant name='frameoffset' value='rahmenoffset'/>
- <cd:constant name='frameradius' value='rahmenradius'/>
- <cd:constant name='frames' value='umrahmen'/>
- <cd:constant name='freeregion' value='freeregion'/>
- <cd:constant name='from' value='von'/>
- <cd:constant name='functioncolor' value='functioncolor'/>
- <cd:constant name='functionstyle' value='functionstyle'/>
- <cd:constant name='get' value='hole'/>
- <cd:constant name='global' value='global'/>
- <cd:constant name='goodies' value='goodies'/>
- <cd:constant name='grid' value='gritter'/>
- <cd:constant name='group' value='group'/>
- <cd:constant name='groupsuffix' value='groupsuffix'/>
- <cd:constant name='hang' value='haengend'/>
- <cd:constant name='hcompact' value='hcompact'/>
- <cd:constant name='headalign' value='headalign'/>
- <cd:constant name='headcolor' value='kopffarbe'/>
- <cd:constant name='headcommand' value='headcommand'/>
- <cd:constant name='headconversion' value='headconversion'/>
- <cd:constant name='header' value='kopfzeile'/>
- <cd:constant name='headerdistance' value='kopfzeilenabstand'/>
- <cd:constant name='headerstate' value='kopfzeilenstatus'/>
- <cd:constant name='headlabel' value='headlabel'/>
- <cd:constant name='headnumber' value='kopfnummer'/>
- <cd:constant name='headseparator' value='headseparator'/>
- <cd:constant name='headstyle' value='kopfstil'/>
- <cd:constant name='height' value='hoehe'/>
- <cd:constant name='hfactor' value='hfaktor'/>
- <cd:constant name='hfil' value='hfil'/>
- <cd:constant name='hidenumber' value='hidenumber'/>
- <cd:constant name='hoffset' value='hoffset'/>
- <cd:constant name='horizontal' value='horizontal'/>
- <cd:constant name='horoffset' value='rumpfabstand'/>
- <cd:constant name='hyphen' value='hyphen'/>
- <cd:constant name='hyphens' value='hyphens'/>
- <cd:constant name='icommand' value='ibefehl'/>
- <cd:constant name='ignore' value='ignore'/>
- <cd:constant name='in' value='in'/>
- <cd:constant name='inbetween' value='zwischen'/>
- <cd:constant name='increment' value='erhoehen'/>
- <cd:constant name='incrementnumber' value='nummererhoehen'/>
- <cd:constant name='indenting' value='einziehen'/>
- <cd:constant name='indentlist' value='indentlist'/>
- <cd:constant name='indentnext' value='ziehefolgendeein'/>
- <cd:constant name='index' value='index'/>
- <cd:constant name='indicator' value='indikator'/>
- <cd:constant name='initialsep' value='initialsep'/>
- <cd:constant name='inlinethreshold' value='inlinethreshold'/>
- <cd:constant name='inner' value='innen'/>
- <cd:constant name='innermargin' value='innermargin'/>
- <cd:constant name='inputfile' value='inputfile'/>
- <cd:constant name='insidesection' value='insidesection'/>
- <cd:constant name='instance' value='instance'/>
- <cd:constant name='intent' value='intent'/>
- <cd:constant name='interaction' value='interaktion'/>
- <cd:constant name='interlinespace' value='zeilenabstande'/>
- <cd:constant name='internalgrid' value='internalgrid'/>
- <cd:constant name='italicfeatures' value='italicfeatures'/>
- <cd:constant name='italicfont' value='italicfont'/>
- <cd:constant name='itemalign' value='itemalign'/>
- <cd:constant name='items' value='posten'/>
- <cd:constant name='joiners' value='joiners'/>
- <cd:constant name='journalconversion' value='journalconversion'/>
- <cd:constant name='juniorsep' value='juniorsep'/>
- <cd:constant name='keeptogether' value='keeptogether'/>
- <cd:constant name='ken' value='ken'/>
- <cd:constant name='keyexpansion' value='keyexpansion'/>
- <cd:constant name='keys' value='keys'/>
- <cd:constant name='keyword' value='keyword'/>
- <cd:constant name='label' value='label'/>
- <cd:constant name='labelalternative' value='labelalternative'/>
- <cd:constant name='labelcolor' value='labelcolor'/>
- <cd:constant name='labeloffset' value='labeloffset'/>
- <cd:constant name='labelstyle' value='labelstyle'/>
- <cd:constant name='language' value='language'/>
- <cd:constant name='last' value='last'/>
- <cd:constant name='lastnamesep' value='lastnamesep'/>
- <cd:constant name='lastpage' value='letzteseite'/>
- <cd:constant name='lastpagesep' value='lastpagesep'/>
- <cd:constant name='lastpubsep' value='lastpubsep'/>
- <cd:constant name='layout' value='layout'/>
- <cd:constant name='left' value='links'/>
- <cd:constant name='leftcolor' value='linkerfarbe'/>
- <cd:constant name='leftcompoundhyphen' value='leftcompoundhyphen'/>
- <cd:constant name='leftedge' value='linkekante'/>
- <cd:constant name='leftedgedistance' value='linkerkantenabstand'/>
- <cd:constant name='leftframe' value='linkerrahmen'/>
- <cd:constant name='lefthyphen' value='lefthyphen'/>
- <cd:constant name='leftmargin' value='linkerrand'/>
- <cd:constant name='leftmargindistance' value='linkerrandabstand'/>
- <cd:constant name='leftoffset' value='linkeroffset'/>
- <cd:constant name='leftquotation' value='linkerzitat'/>
- <cd:constant name='leftquote' value='linkerzitieren'/>
- <cd:constant name='leftsample' value='leftsample'/>
- <cd:constant name='leftsentence' value='linkersatz'/>
- <cd:constant name='leftspeech' value='leftspeech'/>
- <cd:constant name='leftstyle' value='linkerstil'/>
- <cd:constant name='leftsubsentence' value='linkersubsatz'/>
- <cd:constant name='lefttext' value='linkertext'/>
- <cd:constant name='leftwidth' value='linkerbreite'/>
- <cd:constant name='leftwords' value='leftwords'/>
- <cd:constant name='less' value='less'/>
- <cd:constant name='level' value='niveau'/>
- <cd:constant name='levels' value='niveaus'/>
- <cd:constant name='limittext' value='limittext'/>
- <cd:constant name='line' value='zeile'/>
- <cd:constant name='linecorrection' value='zeilekorrektur'/>
- <cd:constant name='linedirection' value='linedirection'/>
- <cd:constant name='lines' value='zeilen'/>
- <cd:constant name='list' value='liste'/>
- <cd:constant name='listtext' value='listtext'/>
- <cd:constant name='local' value='lokal'/>
- <cd:constant name='location' value='platz'/>
- <cd:constant name='loffset' value='loffset'/>
- <cd:constant name='logo' value='logo'/>
- <cd:constant name='logos' value='logos'/>
- <cd:constant name='marcolor' value='beschrfarbe'/>
- <cd:constant name='margin' value='marginalie'/>
- <cd:constant name='margindistance' value='marginalabstand'/>
- <cd:constant name='marginedge' value='marginalkante'/>
- <cd:constant name='marginedgetext' value='marginalkantetext'/>
- <cd:constant name='margintext' value='marginaltext'/>
- <cd:constant name='mark' value='mark'/>
- <cd:constant name='marking' value='beschriftung'/>
- <cd:constant name='marstyle' value='beschrstil'/>
- <cd:constant name='mask' value='mask'/>
- <cd:constant name='mathclass' value='mathclass'/>
- <cd:constant name='mathlimits' value='mathlimits'/>
- <cd:constant name='mathstyle' value='mathstyle'/>
- <cd:constant name='max' value='max'/>
- <cd:constant name='maxdepth' value='maxdepth'/>
- <cd:constant name='maxheight' value='maxhoehe'/>
- <cd:constant name='maxwidth' value='maxbreite'/>
- <cd:constant name='maybeyear' value='maybeyear'/>
- <cd:constant name='menu' value='menue'/>
- <cd:constant name='method' value='methode'/>
- <cd:constant name='middle' value='mittig'/>
- <cd:constant name='middlecolor' value='middlecolor'/>
- <cd:constant name='middlecommand' value='middlecommand'/>
- <cd:constant name='middlespeech' value='middlespeech'/>
- <cd:constant name='middlestyle' value='middlestyle'/>
- <cd:constant name='middletext' value='mittigertext'/>
- <cd:constant name='middlewidth' value='middlewidth'/>
- <cd:constant name='midsentence' value='midsentence'/>
- <cd:constant name='min' value='min'/>
- <cd:constant name='mindepth' value='mindepth'/>
- <cd:constant name='minheight' value='minhoehe'/>
- <cd:constant name='minwidth' value='minbreite'/>
- <cd:constant name='moffset' value='moffset'/>
- <cd:constant name='monthconversion' value='monthconversion'/>
- <cd:constant name='more' value='more'/>
- <cd:constant name='mpdepth' value='mpdepth'/>
- <cd:constant name='mpheight' value='mpheight'/>
- <cd:constant name='mpoffset' value='mpoffset'/>
- <cd:constant name='mpwidth' value='mpwidth'/>
- <cd:constant name='n' value='n'/>
- <cd:constant name='name' value='name'/>
- <cd:constant name='namesep' value='namesep'/>
- <cd:constant name='nbottom' value='nunten'/>
- <cd:constant name='nc' value='nc'/>
- <cd:constant name='next' value='folgende'/>
- <cd:constant name='nextleft' value='nextleft'/>
- <cd:constant name='nextleftquotation' value='nextleftquotation'/>
- <cd:constant name='nextright' value='nextright'/>
- <cd:constant name='nextrightquotation' value='nextrightquotation'/>
- <cd:constant name='nl' value='nl'/>
- <cd:constant name='nleft' value='nlinks'/>
- <cd:constant name='nlines' value='zzeile'/>
- <cd:constant name='norm' value='norm'/>
- <cd:constant name='note' value='note'/>
- <cd:constant name='notes' value='notes'/>
- <cd:constant name='nr' value='nr'/>
- <cd:constant name='nright' value='nrechts'/>
- <cd:constant name='ntop' value='noben'/>
- <cd:constant name='number' value='nummer'/>
- <cd:constant name='numberalign' value='numberalign'/>
- <cd:constant name='numbercolor' value='nummernfarbe'/>
- <cd:constant name='numbercommand' value='nummerbefehl'/>
- <cd:constant name='numberconversion' value='numberconversion'/>
- <cd:constant name='numberconversionset' value='numberconversionset'/>
- <cd:constant name='numberdistance' value='numberdistance'/>
- <cd:constant name='numbering' value='nummerierung'/>
- <cd:constant name='numberorder' value='numberorder'/>
- <cd:constant name='numberprefix' value='numberprefix'/>
- <cd:constant name='numbersegments' value='numbersegments'/>
- <cd:constant name='numberseparator' value='nummernseperator'/>
- <cd:constant name='numberseparatorset' value='numberseparatorset'/>
- <cd:constant name='numberset' value='numberset'/>
- <cd:constant name='numberstarter' value='numberstarter'/>
- <cd:constant name='numberstopper' value='numberstopper'/>
- <cd:constant name='numberstrut' value='numberstrut'/>
- <cd:constant name='numberstyle' value='nummernstil'/>
- <cd:constant name='numberwidth' value='numberwidth'/>
- <cd:constant name='nx' value='nx'/>
- <cd:constant name='ny' value='ny'/>
- <cd:constant name='object' value='objekt'/>
- <cd:constant name='obstruction' value='gesperrt'/>
- <cd:constant name='oddmargin' value='ungeraderand'/>
- <cd:constant name='offset' value='offset'/>
- <cd:constant name='openaction' value='oeffenaktion'/>
- <cd:constant name='openpage' value='openpage'/>
- <cd:constant name='openpageaction' value='openpageaction'/>
- <cd:constant name='openup' value='openup'/>
- <cd:constant name='opticalsize' value='opticalsize'/>
- <cd:constant name='option' value='option'/>
- <cd:constant name='order' value='order'/>
- <cd:constant name='orientation' value='orientation'/>
- <cd:constant name='otherstext' value='otherstext'/>
- <cd:constant name='outermargin' value='outermargin'/>
- <cd:constant name='overprint' value='overprint'/>
- <cd:constant name='ownerpassword' value='ownerpassword'/>
- <cd:constant name='ownnumber' value='eigenenummer'/>
- <cd:constant name='packcriterium' value='packcriterium'/>
- <cd:constant name='page' value='seite'/>
- <cd:constant name='pageboundaries' value='seitenbegrenzung'/>
- <cd:constant name='pagecolor' value='seitenfarbe'/>
- <cd:constant name='pagecolormodel' value='pagecolormodel'/>
- <cd:constant name='pagecommand' value='seitenbefehl'/>
- <cd:constant name='pageconnector' value='pageconnector'/>
- <cd:constant name='pageconversion' value='pageconversion'/>
- <cd:constant name='pageconversionset' value='pageconversionset'/>
- <cd:constant name='pageleft' value='pageleft'/>
- <cd:constant name='pagemethod' value='pagemethod'/>
- <cd:constant name='pagenumber' value='seitennummer'/>
- <cd:constant name='pageprefix' value='pageprefix'/>
- <cd:constant name='pageprefixconnector' value='pageprefixconnector'/>
- <cd:constant name='pageprefixconversion' value='pageprefixconversion'/>
- <cd:constant name='pageprefixconversionset' value='pageprefixconversionset'/>
- <cd:constant name='pageprefixsegments' value='pageprefixsegments'/>
- <cd:constant name='pageprefixseparatorset' value='pageprefixseparatorset'/>
- <cd:constant name='pageprefixset' value='pageprefixset'/>
- <cd:constant name='pageprefixstarter' value='pageprefixstarter'/>
- <cd:constant name='pageprefixstopper' value='pageprefixstopper'/>
- <cd:constant name='pageright' value='pageright'/>
- <cd:constant name='pagesegments' value='pagesegments'/>
- <cd:constant name='pagesep' value='pagesep'/>
- <cd:constant name='pageseparatorset' value='pageseparatorset'/>
- <cd:constant name='pageset' value='pageset'/>
- <cd:constant name='pagestarter' value='pagestarter'/>
- <cd:constant name='pagestate' value='pagestate'/>
- <cd:constant name='pagestopper' value='pagestopper'/>
- <cd:constant name='pagestyle' value='seitenstil'/>
- <cd:constant name='palet' value='palette'/>
- <cd:constant name='paper' value='papier'/>
- <cd:constant name='paragraph' value='absatz'/>
- <cd:constant name='period' value='period'/>
- <cd:constant name='place' value='platziere'/>
- <cd:constant name='placehead' value='setzekopf'/>
- <cd:constant name='placeholder' value='placeholder'/>
- <cd:constant name='placestopper' value='setzetrenner'/>
- <cd:constant name='position' value='position'/>
- <cd:constant name='prefix' value='prefix'/>
- <cd:constant name='prefixconnector' value='prefixconnector'/>
- <cd:constant name='prefixconversion' value='prefixconversion'/>
- <cd:constant name='prefixconversionset' value='prefixconversionset'/>
- <cd:constant name='prefixsegments' value='prefixsegments'/>
- <cd:constant name='prefixseparatorset' value='prefixseparatorset'/>
- <cd:constant name='prefixset' value='prefixset'/>
- <cd:constant name='prefixstarter' value='prefixstarter'/>
- <cd:constant name='prefixstopper' value='prefixstopper'/>
- <cd:constant name='preset' value='voreinstellung'/>
- <cd:constant name='preview' value='vorschau'/>
- <cd:constant name='previous' value='vorige'/>
- <cd:constant name='previousnumber' value='vorigenummer'/>
- <cd:constant name='print' value='print'/>
- <cd:constant name='printable' value='druckbar'/>
- <cd:constant name='process' value='process'/>
- <cd:constant name='processors' value='processors'/>
- <cd:constant name='profile' value='profile'/>
- <cd:constant name='properties' value='properties'/>
- <cd:constant name='pubsep' value='pubsep'/>
- <cd:constant name='quotechar' value='quotechar'/>
- <cd:constant name='radius' value='radius'/>
- <cd:constant name='random' value='zufaellig'/>
- <cd:constant name='range' value='range'/>
- <cd:constant name='reduction' value='reduktion'/>
- <cd:constant name='ref' value='ref'/>
- <cd:constant name='refcommand' value='refcommand'/>
- <cd:constant name='reference' value='referenz'/>
- <cd:constant name='referencemethod' value='referencemethod'/>
- <cd:constant name='referenceprefix' value='referenceprefix'/>
- <cd:constant name='referencetext' value='referencetext'/>
- <cd:constant name='referencing' value='referieren'/>
- <cd:constant name='region' value='region'/>
- <cd:constant name='regionin' value='regionin'/>
- <cd:constant name='regionout' value='regionaus'/>
- <cd:constant name='register' value='register'/>
- <cd:constant name='regularfeatures' value='regularfeatures'/>
- <cd:constant name='regularfont' value='regularfont'/>
- <cd:constant name='renderingsetup' value='renderingsetup'/>
- <cd:constant name='repeat' value='wiederholen'/>
- <cd:constant name='reset' value='reset'/>
- <cd:constant name='resetnumber' value='resetnumber'/>
- <cd:constant name='resolution' value='aufloesung'/>
- <cd:constant name='resources' value='resources'/>
- <cd:constant name='reverse' value='reverse'/>
- <cd:constant name='right' value='rechts'/>
- <cd:constant name='rightchars' value='rightchars'/>
- <cd:constant name='rightcolor' value='rechterfarbe'/>
- <cd:constant name='rightcompoundhyphen' value='rightcompoundhyphen'/>
- <cd:constant name='rightedge' value='rechtekante'/>
- <cd:constant name='rightedgedistance' value='rechterkantenabstand'/>
- <cd:constant name='rightframe' value='rechterrahmen'/>
- <cd:constant name='righthyphen' value='righthyphen'/>
- <cd:constant name='rightmargin' value='rechterrand'/>
- <cd:constant name='rightmargindistance' value='rechterrandabstand'/>
- <cd:constant name='rightoffset' value='rechterabstand'/>
- <cd:constant name='rightquotation' value='rechterzitat'/>
- <cd:constant name='rightquote' value='rechterzitieren'/>
- <cd:constant name='rightsample' value='rightsample'/>
- <cd:constant name='rightsentence' value='rechtersatz'/>
- <cd:constant name='rightspeech' value='rightspeech'/>
- <cd:constant name='rightstyle' value='rechterstil'/>
- <cd:constant name='rightsubsentence' value='rechtersubsatz'/>
- <cd:constant name='righttext' value='rechtertext'/>
- <cd:constant name='rightwidth' value='rechterbreite'/>
- <cd:constant name='rightwords' value='rightwords'/>
- <cd:constant name='roffset' value='roffset'/>
- <cd:constant name='rotation' value='rotation'/>
- <cd:constant name='rule' value='linie'/>
- <cd:constant name='rulecolor' value='linienfarbe'/>
- <cd:constant name='rulecommand' value='rulecommand'/>
- <cd:constant name='rulethickness' value='liniendicke'/>
- <cd:constant name='samepage' value='selbeseite'/>
- <cd:constant name='sample' value='muster'/>
- <cd:constant name='samplesize' value='samplesize'/>
- <cd:constant name='saveinlist' value='saveinlist'/>
- <cd:constant name='scale' value='format'/>
- <cd:constant name='scope' value='bereich'/>
- <cd:constant name='screen' value='raster'/>
- <cd:constant name='section' value='abschnitt'/>
- <cd:constant name='sectionblock' value='sectionblock'/>
- <cd:constant name='sectionconversion' value='sectionconversion'/>
- <cd:constant name='sectionconversionset' value='sectionconversionset'/>
- <cd:constant name='sectionnumber' value='abschnittsnummer'/>
- <cd:constant name='sectionresetset' value='sectionresetset'/>
- <cd:constant name='sectionsegments' value='sectionsegments'/>
- <cd:constant name='sectionseparatorset' value='sectionseparatorset'/>
- <cd:constant name='sectionset' value='sectionset'/>
- <cd:constant name='sectionstarter' value='sectionstarter'/>
- <cd:constant name='sectionstopper' value='sectionstopper'/>
- <cd:constant name='separator' value='seperator'/>
- <cd:constant name='separatorcolor' value='separatorcolor'/>
- <cd:constant name='separatorstyle' value='separatorstyle'/>
- <cd:constant name='set' value='set'/>
- <cd:constant name='setups' value='setups'/>
- <cd:constant name='shrink' value='shrink'/>
- <cd:constant name='side' value='objektabstand'/>
- <cd:constant name='sidealign' value='sidealign'/>
- <cd:constant name='sidemethod' value='sidemethod'/>
- <cd:constant name='sidespaceafter' value='nebennachspatium'/>
- <cd:constant name='sidespacebefore' value='nebenvorspatium'/>
- <cd:constant name='sidespaceinbetween' value='sidespaceinbetween'/>
- <cd:constant name='sidethreshold' value='sidethreshold'/>
- <cd:constant name='sign' value='zeichen'/>
- <cd:constant name='simplecommand' value='simplecommand'/>
- <cd:constant name='size' value='groesse'/>
- <cd:constant name='slantedfeatures' value='slantedfeatures'/>
- <cd:constant name='slantedfont' value='slantedfont'/>
- <cd:constant name='small' value='klein'/>
- <cd:constant name='smallcapsfeatures' value='smallcapsfeatures'/>
- <cd:constant name='smallcapsfont' value='smallcapsfont'/>
- <cd:constant name='solution' value='solution'/>
- <cd:constant name='sort' value='sort'/>
- <cd:constant name='sorttype' value='sorttype'/>
- <cd:constant name='source' value='quelle'/>
- <cd:constant name='space' value='spatium'/>
- <cd:constant name='spaceafter' value='nachspatium'/>
- <cd:constant name='spaceafterside' value='spaceafterside'/>
- <cd:constant name='spacebefore' value='vorspatium'/>
- <cd:constant name='spacebeforeside' value='spacebeforeside'/>
- <cd:constant name='spaceinbetween' value='spaceinbetween'/>
- <cd:constant name='spacing' value='spatiumausgleich'/>
- <cd:constant name='specification' value='specification'/>
- <cd:constant name='split' value='split'/>
- <cd:constant name='splitcolor' value='splitcolor'/>
- <cd:constant name='splitmethod' value='splitmethod'/>
- <cd:constant name='splitoffset' value='splitoffset'/>
- <cd:constant name='spot' value='spot'/>
- <cd:constant name='stack' value='stack'/>
- <cd:constant name='stackname' value='stackname'/>
- <cd:constant name='start' value='start'/>
- <cd:constant name='starter' value='starter'/>
- <cd:constant name='state' value='status'/>
- <cd:constant name='step' value='schritt'/>
- <cd:constant name='stop' value='stop'/>
- <cd:constant name='stopper' value='abschnitttrenner'/>
- <cd:constant name='stretch' value='strecken'/>
- <cd:constant name='strip' value='strip'/>
- <cd:constant name='strut' value='strut'/>
- <cd:constant name='style' value='stil'/>
- <cd:constant name='stylealternative' value='stylealternative'/>
- <cd:constant name='sub' value='unter'/>
- <cd:constant name='subtitle' value='untertitel'/>
- <cd:constant name='suffix' value='suffix'/>
- <cd:constant name='suffixseparator' value='suffixseparator'/>
- <cd:constant name='suffixstopper' value='suffixstopper'/>
- <cd:constant name='surnamefirstnamesep' value='surnamefirstnamesep'/>
- <cd:constant name='surnameinitialsep' value='surnameinitialsep'/>
- <cd:constant name='surnamesep' value='surnamesep'/>
- <cd:constant name='svgstyle' value='svgstyle'/>
- <cd:constant name='sx' value='sx'/>
- <cd:constant name='sy' value='sy'/>
- <cd:constant name='symalign' value='symausrichtung'/>
- <cd:constant name='symbol' value='symbol'/>
- <cd:constant name='symbolcommand' value='symbolcommand'/>
- <cd:constant name='symbolset' value='symbolset'/>
- <cd:constant name='symcolor' value='symfarbe'/>
- <cd:constant name='symstyle' value='symstil'/>
- <cd:constant name='synonym' value='synonym'/>
- <cd:constant name='synonymcolor' value='synonymfarbe'/>
- <cd:constant name='synonymcommand' value='synonymbefehl'/>
- <cd:constant name='synonymstyle' value='synonymstil'/>
- <cd:constant name='tab' value='tab'/>
- <cd:constant name='text' value='text'/>
- <cd:constant name='textalign' value='textalign'/>
- <cd:constant name='textcolor' value='textfarbe'/>
- <cd:constant name='textcommand' value='textbefehl'/>
- <cd:constant name='textdistance' value='textdistance'/>
- <cd:constant name='textheight' value='texthoehe'/>
- <cd:constant name='textlayer' value='textlayer'/>
- <cd:constant name='textmargin' value='textmargin'/>
- <cd:constant name='textmethod' value='textmethod'/>
- <cd:constant name='textseparator' value='textseparator'/>
- <cd:constant name='textsize' value='textgroesse'/>
- <cd:constant name='textstate' value='textstatus'/>
- <cd:constant name='textstyle' value='textstil'/>
- <cd:constant name='textwidth' value='textbreite'/>
- <cd:constant name='threshold' value='threshold'/>
- <cd:constant name='time' value='time'/>
- <cd:constant name='title' value='titel'/>
- <cd:constant name='titlecolor' value='titelfarbe'/>
- <cd:constant name='titlecommand' value='titlecommand'/>
- <cd:constant name='titledistance' value='titelabstand'/>
- <cd:constant name='titleleft' value='titleleft'/>
- <cd:constant name='titleright' value='titleright'/>
- <cd:constant name='titlestrut' value='titlestrut'/>
- <cd:constant name='titlestyle' value='titelstil'/>
- <cd:constant name='to' value='zu'/>
- <cd:constant name='toffset' value='toffset'/>
- <cd:constant name='tolerance' value='toleranz'/>
- <cd:constant name='top' value='oben'/>
- <cd:constant name='topcommand' value='topcommand'/>
- <cd:constant name='topdistance' value='obenabstand'/>
- <cd:constant name='topframe' value='obenrahmen'/>
- <cd:constant name='topoffset' value='obenoffset'/>
- <cd:constant name='topspace' value='kopfspatium'/>
- <cd:constant name='topstate' value='statusoben'/>
- <cd:constant name='totalnumber' value='totalnumber'/>
- <cd:constant name='transform' value='transform'/>
- <cd:constant name='translate' value='translate'/>
- <cd:constant name='trimoffset' value='trimoffset'/>
- <cd:constant name='type' value='typ'/>
- <cd:constant name='unit' value='einheit'/>
- <cd:constant name='unknownreference' value='unbekantereferenz'/>
- <cd:constant name='up' value='up'/>
- <cd:constant name='urlalternative' value='urlalternative'/>
- <cd:constant name='urlspace' value='urlspatium'/>
- <cd:constant name='userpassword' value='userpassword'/>
- <cd:constant name='validate' value='validieren'/>
- <cd:constant name='values' value='values'/>
- <cd:constant name='vcommand' value='vbefehl'/>
- <cd:constant name='vcompact' value='vcompact'/>
- <cd:constant name='vector' value='vector'/>
- <cd:constant name='veroffset' value='kopfoffset'/>
- <cd:constant name='vertical' value='vertikal'/>
- <cd:constant name='vfactor' value='vfaktor'/>
- <cd:constant name='vfil' value='vfil'/>
- <cd:constant name='viewerprefix' value='viewerprefix'/>
- <cd:constant name='voffset' value='voffset'/>
- <cd:constant name='vonsep' value='vonsep'/>
- <cd:constant name='way' value='art'/>
- <cd:constant name='wfactor' value='bfaktor'/>
- <cd:constant name='white' value='weiss'/>
- <cd:constant name='width' value='breite'/>
- <cd:constant name='words' value='words'/>
- <cd:constant name='xanchor' value='xanchor'/>
- <cd:constant name='xfactor' value='xfaktor'/>
- <cd:constant name='xhtml' value='xhtml'/>
- <cd:constant name='xmax' value='xmax'/>
- <cd:constant name='xmlsetup' value='xmlsetup'/>
- <cd:constant name='xoffset' value='xoffset'/>
- <cd:constant name='xscale' value='xformat'/>
- <cd:constant name='xstep' value='xschritt'/>
- <cd:constant name='yanchor' value='yanchor'/>
- <cd:constant name='yfactor' value='yfaktor'/>
- <cd:constant name='ymax' value='ymax'/>
- <cd:constant name='yoffset' value='yoffset'/>
- <cd:constant name='yscale' value='yformat'/>
- <cd:constant name='ystep' value='yschritt'/>
- </cd:constants>
-
- <!-- definitions for interface elements for language de -->
-
- <cd:elements>
- <cd:element name='answerlines' value='answerlines'/>
- <cd:element name='answerspace' value='answerspace'/>
- <cd:element name='begin' value='anfang'/>
- <cd:element name='complete' value='vollende'/>
- <cd:element name='coupled' value='verknuepft'/>
- <cd:element name='currentlocal' value='aktuelllokal'/>
- <cd:element name='end' value='ende'/>
- <cd:element name='endsetup' value='ein'/>
- <cd:element name='get' value='get'/>
- <cd:element name='increment' value='erhoehen'/>
- <cd:element name='list' value='auflisten'/>
- <cd:element name='listof' value='auflistenvon'/>
- <cd:element name='load' value='laden'/>
- <cd:element name='local' value='lokal'/>
- <cd:element name='makeup' value='umbruch'/>
- <cd:element name='next' value='folgende'/>
- <cd:element name='place' value='platziere'/>
- <cd:element name='previous' value='vorige'/>
- <cd:element name='previouslocal' value='voriglokal'/>
- <cd:element name='reserve' value='reservieren'/>
- <cd:element name='see' value='sieh'/>
- <cd:element name='setup' value='stelle'/>
- <cd:element name='start' value='start'/>
- <cd:element name='stop' value='stop'/>
- <cd:element name='text' value='text'/>
- <cd:element name='type' value='type'/>
- </cd:elements>
-
- <!-- definitions for interface commands for language de -->
-
- <cd:commands>
- <cd:command name='Character' value='Buchstabe'/>
- <cd:command name='Characters' value='Buchstaben'/>
- <cd:command name='MONTH' value='MONAT'/>
- <cd:command name='Numbers' value='Ziffern'/>
- <cd:command name='Romannumerals' value='Roemischezahlen'/>
- <cd:command name='SmallCapped' value='Kap'/>
- <cd:command name='SmallCaps' value='Kaps'/>
- <cd:command name='WEEKDAY' value='WOCHENTAG'/>
- <cd:command name='WORD' value='WORT'/>
- <cd:command name='WORDS' value='WOERTER'/>
- <cd:command name='Word' value='Wort'/>
- <cd:command name='Words' value='Woerter'/>
- <cd:command name='about' value='ueber'/>
- <cd:command name='adaptfontfeature' value='adaptfontfeature'/>
- <cd:command name='adaptlayout' value='passelayoutan'/>
- <cd:command name='addfeature' value='addfeature'/>
- <cd:command name='alignbottom' value='alignbottom'/>
- <cd:command name='aligned' value='aligned'/>
- <cd:command name='alignedbox' value='alignedbox'/>
- <cd:command name='alignedline' value='alignedline'/>
- <cd:command name='alignhere' value='alignhere'/>
- <cd:command name='alignment' value='alignment'/>
- <cd:command name='alignmentcharacter' value='alignmentcharacter'/>
- <cd:command name='applytocharacters' value='applytocharacters'/>
- <cd:command name='applytofirstcharacter' value='applytofirstcharacter'/>
- <cd:command name='arg' value='arg'/>
- <cd:command name='at' value='bei'/>
- <cd:command name='atleftmargin' value='atleftmargin'/>
- <cd:command name='atpage' value='aufseite'/>
- <cd:command name='atrightmargin' value='atrightmargin'/>
- <cd:command name='background' value='hintergrund'/>
- <cd:command name='backspace' value='rumpfweite'/>
- <cd:command name='blackrule' value='rechteck'/>
- <cd:command name='blackrules' value='rechtecke'/>
- <cd:command name='blank' value='blanko'/>
- <cd:command name='bookmark' value='bookmark'/>
- <cd:command name='bottombox' value='bottombox'/>
- <cd:command name='bottomdistance' value='abstandunten'/>
- <cd:command name='bottomheight' value='hoeheunten'/>
- <cd:command name='bottomleftbox' value='bottomleftbox'/>
- <cd:command name='bottomrightbox' value='bottomrightbox'/>
- <cd:command name='bottomspace' value='bottomspace'/>
- <cd:command name='buildtextbottomdot' value='buildtextbottomdot'/>
- <cd:command name='but' value='but'/>
- <cd:command name='button' value='knopf'/>
- <cd:command name='bypassblocks' value='bypassblocks'/>
- <cd:command name='character' value='buchstabe'/>
- <cd:command name='characters' value='buchstaben'/>
- <cd:command name='chem' value='chem'/>
- <cd:command name='clip' value='ausschnitt'/>
- <cd:command name='clonefield' value='klonierefeld'/>
- <cd:command name='color' value='farbe'/>
- <cd:command name='colorbar' value='farbbalken'/>
- <cd:command name='colorvalue' value='farbewert'/>
- <cd:command name='column' value='spalte'/>
- <cd:command name='comparecolorgroup' value='vergleichefarbengruppe'/>
- <cd:command name='comparepalet' value='vergleichepalette'/>
- <cd:command name='completepagenumber' value='completepagenumber'/>
- <cd:command name='completeregister' value='completeregister'/>
- <cd:command name='component' value='komponente'/>
- <cd:command name='convertnumber' value='konvertierezahl'/>
- <cd:command name='copyfield' value='kopierefeld'/>
- <cd:command name='correctwhitespace' value='korrigierezwischenraum'/>
- <cd:command name='coupledocument' value='verknuepfedokument'/>
- <cd:command name='couplemarking' value='verknuepfebeschriftung'/>
- <cd:command name='couplepage' value='doppelseite'/>
- <cd:command name='couplepaper' value='doppelseitigespapier'/>
- <cd:command name='coupleregister' value='verknuepfregister'/>
- <cd:command name='crlf' value='crlf'/>
- <cd:command name='currentdate' value='heutigesdatum'/>
- <cd:command name='currentheadnumber' value='heutigeskopfnummer'/>
- <cd:command name='cutspace' value='cutspace'/>
- <cd:command name='date' value='datum'/>
- <cd:command name='decouplemarking' value='entknuepfebeschriftung'/>
- <cd:command name='decrementnumber' value='decrementnumber'/>
- <cd:command name='define' value='definieren'/>
- <cd:command name='defineaccent' value='definiereakzent'/>
- <cd:command name='defineblank' value='definiereblanko'/>
- <cd:command name='defineblock' value='definiereblock'/>
- <cd:command name='definebodyfont' value='definierefliesstext'/>
- <cd:command name='definebodyfontenvironment' value='definierefliesstextumgebung'/>
- <cd:command name='definebodyfontswitch' value='definebodyfontswitch'/>
- <cd:command name='definebuffer' value='definierepuffer'/>
- <cd:command name='definecharacter' value='definierezeichen'/>
- <cd:command name='definecharacterkerning' value='definecharacterkerning'/>
- <cd:command name='definecharacterspacing' value='definecharacterspacing'/>
- <cd:command name='definecolor' value='definierefarbe'/>
- <cd:command name='definecolorgroup' value='definierefarbengruppe'/>
- <cd:command name='definecolumnbreak' value='definecolumnbreak'/>
- <cd:command name='definecolumnset' value='definecolumnset'/>
- <cd:command name='definecombination' value='definecombination'/>
- <cd:command name='definecombinedlist' value='definierezusammengestellteliste'/>
- <cd:command name='definecommand' value='definierebefehl'/>
- <cd:command name='defineconversion' value='definierekonversion'/>
- <cd:command name='definedescription' value='definierebeschreibung'/>
- <cd:command name='definedfont' value='definedfont'/>
- <cd:command name='defineenumeration' value='definierenummerierung'/>
- <cd:command name='definefallbackfamily' value='definefallbackfamily'/>
- <cd:command name='definefield' value='definierefeld'/>
- <cd:command name='definefieldstack' value='definierefeldstapel'/>
- <cd:command name='definefiguresymbol' value='definiereabbsymbol'/>
- <cd:command name='definefilefallback' value='definefilefallback'/>
- <cd:command name='definefirstline' value='definefirstline'/>
- <cd:command name='definefloat' value='definieregleitobjekt'/>
- <cd:command name='definefont' value='definiereschrift'/>
- <cd:command name='definefontalternative' value='definefontalternative'/>
- <cd:command name='definefontfallback' value='definefontfallback'/>
- <cd:command name='definefontfamily' value='definefontfamily'/>
- <cd:command name='definefontfamilypreset' value='definefontfamilypreset'/>
- <cd:command name='definefontfeature' value='definefontfeature'/>
- <cd:command name='definefontfile' value='definefontfile'/>
- <cd:command name='definefontsize' value='definefontsize'/>
- <cd:command name='definefontsolution' value='definefontsolution'/>
- <cd:command name='definefontstyle' value='definiereschriftstil'/>
- <cd:command name='definefontsynonym' value='defineschriftsynonym'/>
- <cd:command name='defineframed' value='definiereumrahmt'/>
- <cd:command name='defineframedtext' value='definiereumrahmtertext'/>
- <cd:command name='definefrozenfont' value='definefrozenfont'/>
- <cd:command name='definehbox' value='definierehbox'/>
- <cd:command name='definehead' value='definiereueberschrift'/>
- <cd:command name='definehyphenationfeatures' value='definehyphenationfeatures'/>
- <cd:command name='defineindentedtext' value='defineindentedtext'/>
- <cd:command name='defineinmargin' value='defineinmargin'/>
- <cd:command name='defineinteractionmenu' value='definiereinteraktionsmenue'/>
- <cd:command name='defineitemgroup' value='defineitemgroup'/>
- <cd:command name='defineitems' value='defineitems'/>
- <cd:command name='definelabel' value='definierelabel'/>
- <cd:command name='definelayer' value='definelayer'/>
- <cd:command name='definelayout' value='definelayout'/>
- <cd:command name='definelinenote' value='definelinenote'/>
- <cd:command name='definelist' value='definiereliste'/>
- <cd:command name='definelogo' value='definierelogo'/>
- <cd:command name='definemainfield' value='definierehauptfeld'/>
- <cd:command name='definemakeup' value='definiereumbruch'/>
- <cd:command name='definemarking' value='definierebeschriftung'/>
- <cd:command name='definemathalignment' value='definemathalignment'/>
- <cd:command name='definemode' value='definemode'/>
- <cd:command name='definenamedcolor' value='definenamedcolor'/>
- <cd:command name='definenote' value='definenote'/>
- <cd:command name='defineoutput' value='defineoutput'/>
- <cd:command name='defineoverlay' value='definiereoverlay'/>
- <cd:command name='definepagebreak' value='definepagebreak'/>
- <cd:command name='definepalet' value='definierepalette'/>
- <cd:command name='definepapersize' value='definierepapierformat'/>
- <cd:command name='defineparagraphs' value='definiereabsaetze'/>
- <cd:command name='defineperiodkerning' value='defineperiodkerning'/>
- <cd:command name='defineplacement' value='defineplacement'/>
- <cd:command name='defineprofile' value='definiereprofil'/>
- <cd:command name='defineprogram' value='definiereprogramme'/>
- <cd:command name='definerawfont' value='definerawfont'/>
- <cd:command name='definereference' value='definierereferenz'/>
- <cd:command name='definereferenceformat' value='definierereferenzformat'/>
- <cd:command name='definereferencelist' value='definierereferenzliste'/>
- <cd:command name='defineregister' value='definiereregister'/>
- <cd:command name='definerule' value='definerule'/>
- <cd:command name='definesection' value='definiereabschnitt'/>
- <cd:command name='definesectionblock' value='definiereabschnittsblock'/>
- <cd:command name='definesorting' value='definieresortieren'/>
- <cd:command name='definestartstop' value='definierestartstop'/>
- <cd:command name='definestyle' value='definierestil'/>
- <cd:command name='definesubfield' value='definieresubfeld'/>
- <cd:command name='definesymbol' value='definieresymbol'/>
- <cd:command name='definesynonyms' value='definieresynonyme'/>
- <cd:command name='definetabletemplate' value='definieretabellenvorlage'/>
- <cd:command name='definetabulate' value='definieretabulator'/>
- <cd:command name='definetext' value='definieretext'/>
- <cd:command name='definetextbackground' value='definetextbackground'/>
- <cd:command name='definetextnote' value='definetextnote'/>
- <cd:command name='definetextposition' value='definetextposition'/>
- <cd:command name='definetextvariable' value='definetextvariable'/>
- <cd:command name='definetype' value='definetype'/>
- <cd:command name='definetyping' value='definieretippen'/>
- <cd:command name='defineversion' value='definiereversion'/>
- <cd:command name='depthspanningtext' value='depthspanningtext'/>
- <cd:command name='determineheadnumber' value='bestimmekopfnummer'/>
- <cd:command name='determinelistcharacteristics' value='bestimmelistencharakeristika'/>
- <cd:command name='determineregistercharacteristics' value='bestimmeregistercharakteristika'/>
- <cd:command name='dimension' value='dimension'/>
- <cd:command name='disableinteractionmenu' value='inaktiviereinteraktionsmenue'/>
- <cd:command name='disablemode' value='disablemode'/>
- <cd:command name='doaddfeature' value='doaddfeature'/>
- <cd:command name='domicile' value='wohnort'/>
- <cd:command name='dontconvertfont' value='dontconvertfont'/>
- <cd:command name='donttest' value='keintest'/>
- <cd:command name='edgedistance' value='randabstand'/>
- <cd:command name='edgewidth' value='randbreite'/>
- <cd:command name='emphasisboldface' value='emphasisboldface'/>
- <cd:command name='emptylines' value='emptylines'/>
- <cd:command name='enablemode' value='enablemode'/>
- <cd:command name='environment' value='umgebung'/>
- <cd:command name='externalfigure' value='externeabbildung'/>
- <cd:command name='fact' value='geg'/>
- <cd:command name='fastswitchtobodyfont' value='fastswitchtobodyfont'/>
- <cd:command name='feature' value='feature'/>
- <cd:command name='field' value='feld'/>
- <cd:command name='fieldstack' value='feldstapel'/>
- <cd:command name='fillinfield' value='ausfuellfeld'/>
- <cd:command name='fillinline' value='gefuelltezeile'/>
- <cd:command name='fillinrules' value='gefuelltesrechteck'/>
- <cd:command name='fillintext' value='ausfuelltext'/>
- <cd:command name='firstcharacter' value='firstcharacter'/>
- <cd:command name='fitfield' value='passendfeld'/>
- <cd:command name='fittopbaselinegrid' value='fittopbaselinegrid'/>
- <cd:command name='fixedspace' value='festesspatium'/>
- <cd:command name='fixedspaces' value='festesspatium'/>
- <cd:command name='flushnotes' value='flushnotes'/>
- <cd:command name='followprofile' value='folgeprofil'/>
- <cd:command name='followprofileversion' value='folgeprofilversion'/>
- <cd:command name='followversion' value='folgeversion'/>
- <cd:command name='footerdistance' value='fusszeileabstand'/>
- <cd:command name='footerheight' value='fusszeilenhoehe'/>
- <cd:command name='footnote' value='fussnote'/>
- <cd:command name='footnotetext' value='footnotetext'/>
- <cd:command name='forceblocks' value='forceblocks'/>
- <cd:command name='forcecharacterstripping' value='forcecharacterstripping'/>
- <cd:command name='formulanumber' value='formelnummer'/>
- <cd:command name='fraction' value='bruch'/>
- <cd:command name='framed' value='umrahmt'/>
- <cd:command name='from' value='von'/>
- <cd:command name='fromlinenote' value='fromlinenote'/>
- <cd:command name='getbuffer' value='holepuffer'/>
- <cd:command name='getfirstcharacter' value='getfirstcharacter'/>
- <cd:command name='getmarking' value='holebeschriftung'/>
- <cd:command name='getnumber' value='getnumber'/>
- <cd:command name='globaldisablemode' value='globaldisablemode'/>
- <cd:command name='globalenablemode' value='globalenablemode'/>
- <cd:command name='globalpreventmode' value='globalpreventmode'/>
- <cd:command name='godown' value='nachunten'/>
- <cd:command name='goto' value='zu'/>
- <cd:command name='gotobox' value='zurbox'/>
- <cd:command name='gotopage' value='zurseite'/>
- <cd:command name='graycolor' value='graufarbe'/>
- <cd:command name='greyvalue' value='grauwert'/>
- <cd:command name='grid' value='gitter'/>
- <cd:command name='hairline' value='haarlinie'/>
- <cd:command name='head' value='kopf'/>
- <cd:command name='headerdistance' value='kopfzeilenabstand'/>
- <cd:command name='headerheight' value='kopfzeilenhoehe'/>
- <cd:command name='headlevel' value='kopfniveau'/>
- <cd:command name='headnumber' value='kopfnummer'/>
- <cd:command name='headsym' value='headsym'/>
- <cd:command name='headtext' value='ueberschrifttext'/>
- <cd:command name='heightspanningtext' value='heightspanningtext'/>
- <cd:command name='hideblocks' value='verbergebloecke'/>
- <cd:command name='high' value='hoch'/>
- <cd:command name='hl' value='hl'/>
- <cd:command name='immediatebetweenlist' value='immediatebetweenlist'/>
- <cd:command name='immediatetolist' value='immediatetolist'/>
- <cd:command name='in' value='in'/>
- <cd:command name='incrementnumber' value='nummererhoehen'/>
- <cd:command name='indenting' value='einziehen'/>
- <cd:command name='inframed' value='imumriss'/>
- <cd:command name='infull' value='volleswort'/>
- <cd:command name='ininner' value='ininner'/>
- <cd:command name='inleft' value='imlinken'/>
- <cd:command name='inleftedge' value='imlinkenrand'/>
- <cd:command name='inleftmargin' value='inlinkermarginale'/>
- <cd:command name='inline' value='inzeile'/>
- <cd:command name='inmargin' value='inmarginalie'/>
- <cd:command name='inmframed' value='immaumrise'/>
- <cd:command name='inneredgedistance' value='inneredgedistance'/>
- <cd:command name='inneredgewidth' value='inneredgewidth'/>
- <cd:command name='innermargindistance' value='innermargindistance'/>
- <cd:command name='innermarginwidth' value='innermarginwidth'/>
- <cd:command name='inothermargin' value='inanderermarginale'/>
- <cd:command name='inouter' value='inouter'/>
- <cd:command name='inright' value='imrechten'/>
- <cd:command name='inrightedge' value='imrechtenrand'/>
- <cd:command name='inrightmargin' value='inrechtermarginale'/>
- <cd:command name='installlanguage' value='installieresprache'/>
- <cd:command name='interactionbar' value='interaktionsbalken'/>
- <cd:command name='interactionbuttons' value='interaktionsknopfe'/>
- <cd:command name='interactionmenu' value='interaktionsmenue'/>
- <cd:command name='item' value='pos'/>
- <cd:command name='itemgroup' value='itemgroup'/>
- <cd:command name='items' value='posten'/>
- <cd:command name='itemtag' value='itemtag'/>
- <cd:command name='its' value='its'/>
- <cd:command name='keepblocks' value='behaltebloecke'/>
- <cd:command name='kerncharacters' value='kerncharacters'/>
- <cd:command name='label' value='label'/>
- <cd:command name='labels' value='labels'/>
- <cd:command name='labeltext' value='labeltext'/>
- <cd:command name='language' value='sprache'/>
- <cd:command name='languageCharacters' value='languageCharacters'/>
- <cd:command name='languagecharacters' value='languagecharacters'/>
- <cd:command name='leftaligned' value='linksbuendig'/>
- <cd:command name='leftbottombox' value='leftbottombox'/>
- <cd:command name='leftedgedistance' value='abstandlinkerrand'/>
- <cd:command name='leftedgewidth' value='breitelinkerrand'/>
- <cd:command name='leftline' value='leftline'/>
- <cd:command name='leftmargindistance' value='linkemarginalafstand'/>
- <cd:command name='leftmarginwidth' value='linkemarginalbreite'/>
- <cd:command name='leg' value='leg'/>
- <cd:command name='linecorrection' value='linecorrection'/>
- <cd:command name='linenote' value='linenote'/>
- <cd:command name='linespanningtext' value='linespanningtext'/>
- <cd:command name='linewidth' value='liniendicke'/>
- <cd:command name='listheight' value='listenhoehe'/>
- <cd:command name='listlength' value='listenlaenge'/>
- <cd:command name='listsymbol' value='listsymbol'/>
- <cd:command name='listwidth' value='listenbreite'/>
- <cd:command name='loadfontgoodies' value='loadfontgoodies'/>
- <cd:command name='localfootnotes' value='localfootnotes'/>
- <cd:command name='localnotes' value='localnotes'/>
- <cd:command name='logfields' value='registrierefelder'/>
- <cd:command name='lohi' value='tiho'/>
- <cd:command name='low' value='tief'/>
- <cd:command name='macroname' value='name'/>
- <cd:command name='mainlanguage' value='hauptsprache'/>
- <cd:command name='makeupheight' value='satzhoehe'/>
- <cd:command name='makeupwidth' value='satzbreite'/>
- <cd:command name='mar' value='mar'/>
- <cd:command name='marginblock' value='marginblock'/>
- <cd:command name='margindistance' value='marginalafstand'/>
- <cd:command name='marginrule' value='marginallinie'/>
- <cd:command name='margintext' value='marginaltext'/>
- <cd:command name='margintitle' value='marginaltitel'/>
- <cd:command name='marginwidth' value='marginalbreite'/>
- <cd:command name='marginword' value='marginalwort'/>
- <cd:command name='marking' value='beschriftung'/>
- <cd:command name='markversion' value='beschrifteversion'/>
- <cd:command name='mathematics' value='mathematik'/>
- <cd:command name='menubutton' value='menueknopf'/>
- <cd:command name='mframed' value='maumrise'/>
- <cd:command name='midaligned' value='zentriert'/>
- <cd:command name='mirror' value='spiegeln'/>
- <cd:command name='month' value='monat'/>
- <cd:command name='moveformula' value='moveformula'/>
- <cd:command name='moveongrid' value='amgitterneuausrichten'/>
- <cd:command name='movesidefloat' value='movesidefloat'/>
- <cd:command name='navigating' value='navigating'/>
- <cd:command name='nodimension' value='keindimension'/>
- <cd:command name='noheaderandfooterlines' value='keinekopfundfusszeilen'/>
- <cd:command name='noindenting' value='nichteinziehen'/>
- <cd:command name='noitem' value='noitem'/>
- <cd:command name='nolist' value='keineliste'/>
- <cd:command name='nomarking' value='keinebeschriftung'/>
- <cd:command name='nomoreblocks' value='keinebloeckemehr'/>
- <cd:command name='nomorefiles' value='keinedateienmehr'/>
- <cd:command name='nop' value='nop'/>
- <cd:command name='nospace' value='keinspatium'/>
- <cd:command name='note' value='notiz'/>
- <cd:command name='notesymbol' value='notesymbol'/>
- <cd:command name='notopandbottomlines' value='keinzeilenobenundunten'/>
- <cd:command name='notsmallcapped' value='nokap'/>
- <cd:command name='nowhitespace' value='keinzwischenraum'/>
- <cd:command name='numberofsubpages' value='numberofsubpages'/>
- <cd:command name='numbers' value='ziffern'/>
- <cd:command name='outeredgedistance' value='outeredgedistance'/>
- <cd:command name='outeredgewidth' value='outeredgewidth'/>
- <cd:command name='outermargindistance' value='outermargindistance'/>
- <cd:command name='outermarginwidth' value='outermarginwidth'/>
- <cd:command name='packed' value='kleinerdurchschuss'/>
- <cd:command name='page' value='seite'/>
- <cd:command name='pagebreak' value='pagebreak'/>
- <cd:command name='pagedepth' value='pagedepth'/>
- <cd:command name='pagenumber' value='seitenummer'/>
- <cd:command name='pageoffset' value='pageoffset'/>
- <cd:command name='pagereference' value='seitenreferenz'/>
- <cd:command name='paperheight' value='papierhoehe'/>
- <cd:command name='paperwidth' value='papierbreite'/>
- <cd:command name='periods' value='punkt'/>
- <cd:command name='placebookmarks' value='platzierebookmarks'/>
- <cd:command name='placecombinedlist' value='platzierezusammengestellteliste'/>
- <cd:command name='placefloat' value='placefloat'/>
- <cd:command name='placefootnotes' value='platzierefussnoten'/>
- <cd:command name='placeformula' value='platziereformel'/>
- <cd:command name='placeheadnumber' value='placeheadnumber'/>
- <cd:command name='placeheadtext' value='placeheadtext'/>
- <cd:command name='placelegend' value='platzierelegende'/>
- <cd:command name='placelist' value='platziereliste'/>
- <cd:command name='placelistofsynonyms' value='placelistofsynonyms'/>
- <cd:command name='placelocalfootnotes' value='platzierelokalefussnoten'/>
- <cd:command name='placelocalnotes' value='placelocalnotes'/>
- <cd:command name='placelogos' value='platzierelogo'/>
- <cd:command name='placenamedfloat' value='placenamedfloat'/>
- <cd:command name='placenotes' value='placenotes'/>
- <cd:command name='placeongrid' value='amgitterausrichten'/>
- <cd:command name='placeontopofeachother' value='platziereuntereinander'/>
- <cd:command name='placepagenumber' value='placepagenumber'/>
- <cd:command name='placerawlist' value='placerawlist'/>
- <cd:command name='placereferencelist' value='placereferencelist'/>
- <cd:command name='placeregister' value='platziereregister'/>
- <cd:command name='placerule' value='placerule'/>
- <cd:command name='placesidebyside' value='platzierenebeneinander'/>
- <cd:command name='placesubformula' value='platziereunterformel'/>
- <cd:command name='placetextvariable' value='placetextvariable'/>
- <cd:command name='position' value='position'/>
- <cd:command name='positiontext' value='positiontext'/>
- <cd:command name='postponenotes' value='postponenotes'/>
- <cd:command name='postponingnotes' value='postponingnotes'/>
- <cd:command name='predefinedfont' value='predefinedfont'/>
- <cd:command name='predefinefont' value='predefinefont'/>
- <cd:command name='presetdocument' value='presetdocument'/>
- <cd:command name='prettyprintbuffer' value='prettyprintbuffer'/>
- <cd:command name='preventmode' value='preventmode'/>
- <cd:command name='printpaperheight' value='printpapierhoehe'/>
- <cd:command name='printpaperwidth' value='printpapierbreite'/>
- <cd:command name='processblocks' value='bearbeitebloecke'/>
- <cd:command name='processbodyfontenvironmentlist' value='processbodyfontenvironmentlist'/>
- <cd:command name='processpage' value='bearbeiteseite'/>
- <cd:command name='product' value='produkt'/>
- <cd:command name='program' value='programm'/>
- <cd:command name='project' value='projekt'/>
- <cd:command name='publication' value='publikation'/>
- <cd:command name='quotation' value='zitat'/>
- <cd:command name='quote' value='zitieren'/>
- <cd:command name='ran' value='ran'/>
- <cd:command name='redo' value='wiederholen'/>
- <cd:command name='redoconvertfont' value='redoconvertfont'/>
- <cd:command name='ref' value='ref'/>
- <cd:command name='reference' value='referenz'/>
- <cd:command name='referral' value='verweis'/>
- <cd:command name='referraldate' value='verweisdatum'/>
- <cd:command name='referring' value='referieren'/>
- <cd:command name='registerfontclass' value='registerfontclass'/>
- <cd:command name='registerhyphenationexception' value='registerhyphenationexception'/>
- <cd:command name='registerhyphenationpattern' value='registerhyphenationpattern'/>
- <cd:command name='remark' value='bemerkung'/>
- <cd:command name='replacefeature' value='replacefeature'/>
- <cd:command name='reset' value='ruecksetzten'/>
- <cd:command name='resetandaddfeature' value='resetandaddfeature'/>
- <cd:command name='resetcharacteralign' value='resetcharacteralign'/>
- <cd:command name='resetcharacterkerning' value='resetcharacterkerning'/>
- <cd:command name='resetcharacterspacing' value='resetcharacterspacing'/>
- <cd:command name='resetcharacterstripping' value='resetcharacterstripping'/>
- <cd:command name='resetfeature' value='resetfeature'/>
- <cd:command name='resetfontcolorsheme' value='resetfontcolorsheme'/>
- <cd:command name='resetfontfallback' value='resetfontfallback'/>
- <cd:command name='resetfontsolution' value='resetfontsolution'/>
- <cd:command name='resethyphenationfeatures' value='resethyphenationfeatures'/>
- <cd:command name='resetlocalfloats' value='resetlocalfloats'/>
- <cd:command name='resetmarking' value='ruecksetztenbeschriftung'/>
- <cd:command name='resetmode' value='resetmode'/>
- <cd:command name='resetnumber' value='resetnumber'/>
- <cd:command name='resetpath' value='resetpath'/>
- <cd:command name='resetperiodkerning' value='resetperiodkerning'/>
- <cd:command name='resetsystemmode' value='resetsystemmode'/>
- <cd:command name='resettextcontent' value='resettextcontent'/>
- <cd:command name='resetvisualizers' value='resetvisualizers'/>
- <cd:command name='restoreglobalbodyfont' value='restoreglobalbodyfont'/>
- <cd:command name='retestfeature' value='retestfeature'/>
- <cd:command name='revivefeature' value='revivefeature'/>
- <cd:command name='rightaligned' value='rechtsbuendig'/>
- <cd:command name='rightbottombox' value='rightbottombox'/>
- <cd:command name='rightedgedistance' value='abstandrechterrand'/>
- <cd:command name='rightedgewidth' value='breiterechterrand'/>
- <cd:command name='rightline' value='rightline'/>
- <cd:command name='rightmargindistance' value='rechtemarginalafstand'/>
- <cd:command name='rightmarginwidth' value='rechtemarginalbreite'/>
- <cd:command name='romannumerals' value='roemischezahlen'/>
- <cd:command name='rotate' value='drehen'/>
- <cd:command name='savebuffer' value='savebuffer'/>
- <cd:command name='scale' value='format'/>
- <cd:command name='screen' value='bildschirm'/>
- <cd:command name='selectblocks' value='waehlebloeckeaus'/>
- <cd:command name='selectpaper' value='waehlepapieraus'/>
- <cd:command name='selectversion' value='waehleversionaus'/>
- <cd:command name='setbigbodyfont' value='setbigbodyfont'/>
- <cd:command name='setcharacteralign' value='setcharacteralign'/>
- <cd:command name='setcharacteraligndetail' value='setcharacteraligndetail'/>
- <cd:command name='setcharactercasing' value='setcharactercasing'/>
- <cd:command name='setcharactercleaning' value='setcharactercleaning'/>
- <cd:command name='setcharacterkerning' value='setcharacterkerning'/>
- <cd:command name='setcharacterspacing' value='setcharacterspacing'/>
- <cd:command name='setcharacterstripping' value='setcharacterstripping'/>
- <cd:command name='setcurrentfontclass' value='setcurrentfontclass'/>
- <cd:command name='setfirstline' value='setfirstline'/>
- <cd:command name='setfirstpasscharacteralign' value='setfirstpasscharacteralign'/>
- <cd:command name='setfont' value='setfont'/>
- <cd:command name='setfontcolorsheme' value='setfontcolorsheme'/>
- <cd:command name='setfontfeature' value='setfontfeature'/>
- <cd:command name='setfontsolution' value='setfontsolution'/>
- <cd:command name='setfontstrut' value='setfontstrut'/>
- <cd:command name='sethyphenationfeatures' value='sethyphenationfeatures'/>
- <cd:command name='setmainbodyfont' value='setmainbodyfont'/>
- <cd:command name='setmode' value='setmode'/>
- <cd:command name='setnote' value='setnote'/>
- <cd:command name='setnotetext' value='setnotetext'/>
- <cd:command name='setnumber' value='setnumber'/>
- <cd:command name='setperiodkerning' value='setperiodkerning'/>
- <cd:command name='setsecondpasscharacteralign' value='setsecondpasscharacteralign'/>
- <cd:command name='setsmallbodyfont' value='setsmallbodyfont'/>
- <cd:command name='setsystemmode' value='setsystemmode'/>
- <cd:command name='settextcontent' value='settext'/>
- <cd:command name='settextvariable' value='settextvariable'/>
- <cd:command name='setupalign' value='stelleausrichtungein'/>
- <cd:command name='setupanswerarea' value='setupanswerarea'/>
- <cd:command name='setuparranging' value='stelleanordnenein'/>
- <cd:command name='setupattachment' value='setupattachment'/>
- <cd:command name='setupbackground' value='stellehintergrundein'/>
- <cd:command name='setupbackgrounds' value='stellehintergruendeein'/>
- <cd:command name='setupblackrules' value='stellerechteckein'/>
- <cd:command name='setupblank' value='stelleblankoein'/>
- <cd:command name='setupblock' value='stelleblockein'/>
- <cd:command name='setupbodyfont' value='stellefliesstextein'/>
- <cd:command name='setupbodyfontenvironment' value='stellefliesstextumgebungein'/>
- <cd:command name='setupbottom' value='stelleuntenein'/>
- <cd:command name='setupbottomtexts' value='stelletextuntenein'/>
- <cd:command name='setupbuffer' value='stellepufferein'/>
- <cd:command name='setupbuttons' value='stelleknopfein'/>
- <cd:command name='setupcapitals' value='stelleversalienein'/>
- <cd:command name='setupcaption' value='stellebildunterschriftein'/>
- <cd:command name='setupcaptions' value='stellebilderunterschriftein'/>
- <cd:command name='setupcharacteralign' value='setupcharacteralign'/>
- <cd:command name='setupcharacterkerning' value='setupcharacterkerning'/>
- <cd:command name='setupcharacterspacing' value='setupcharacterspacing'/>
- <cd:command name='setupclipping' value='stelleausschnittein'/>
- <cd:command name='setupcolor' value='stellefarbeein'/>
- <cd:command name='setupcolors' value='stellefarbenein'/>
- <cd:command name='setupcolumns' value='stellespaltenein'/>
- <cd:command name='setupcolumnset' value='setupcolumnset'/>
- <cd:command name='setupcolumnsetlines' value='setupcolumnsetlines'/>
- <cd:command name='setupcolumnsetstart' value='setupcolumnsetstart'/>
- <cd:command name='setupcombinations' value='stellekombinationein'/>
- <cd:command name='setupcombinedlist' value='stellezusammengestelltelisteein'/>
- <cd:command name='setupcomment' value='stellekommentarein'/>
- <cd:command name='setupcounter' value='setupcounter'/>
- <cd:command name='setupdescription' value='setupdescription'/>
- <cd:command name='setupdescriptions' value='definierebeschreibungen'/>
- <cd:command name='setupenumeration' value='setupenumeration'/>
- <cd:command name='setupenumerations' value='stellebeschreibungein'/>
- <cd:command name='setupexternalfigures' value='stelleexterneabbildungenein'/>
- <cd:command name='setupfield' value='stellefeldein'/>
- <cd:command name='setupfields' value='stellefelderin'/>
- <cd:command name='setupfillinlines' value='stellegefuelltezeileein'/>
- <cd:command name='setupfillinrules' value='stellegefuelltesrechteckein'/>
- <cd:command name='setupfirstline' value='setupfirstline'/>
- <cd:command name='setupfloat' value='stellegleitobjektein'/>
- <cd:command name='setupfloats' value='stellegleitobjekteein'/>
- <cd:command name='setupfloatsplitting' value='stelleplatziegeteiltegleitobjekt'/>
- <cd:command name='setupfontexpansion' value='setupfontexpansion'/>
- <cd:command name='setupfontprotrusion' value='setupfontprotrusion'/>
- <cd:command name='setupfonts' value='setupfonts'/>
- <cd:command name='setupfontsolution' value='setupfontsolution'/>
- <cd:command name='setupfooter' value='stellefusszeileein'/>
- <cd:command name='setupfootertexts' value='stellefusszeilentextein'/>
- <cd:command name='setupfootnotedefinition' value='stellefussnotendefinitionein'/>
- <cd:command name='setupfootnotes' value='stellefussnotenein'/>
- <cd:command name='setupforms' value='setupforms'/>
- <cd:command name='setupformula' value='setupformula'/>
- <cd:command name='setupformulas' value='stelleformelnein'/>
- <cd:command name='setupframed' value='stelleumrahmtein'/>
- <cd:command name='setupframedtext' value='setupframedtext'/>
- <cd:command name='setupframedtexts' value='stelleumrahmtetexteein'/>
- <cd:command name='setuphead' value='stelleueberschriftein'/>
- <cd:command name='setupheader' value='stellekopfzeileein'/>
- <cd:command name='setupheadertexts' value='stellekopfzeilentextein'/>
- <cd:command name='setupheadnumber' value='stellekopfzahlein'/>
- <cd:command name='setupheads' value='stelleueberschriftenein'/>
- <cd:command name='setupheadtext' value='stelleueberschrifttextein'/>
- <cd:command name='setuphyphenation' value='setuphyphenation'/>
- <cd:command name='setuphyphenmark' value='stellebindestrichein'/>
- <cd:command name='setupindentedtext' value='setupindentedtext'/>
- <cd:command name='setupindenting' value='stelleeinziehenein'/>
- <cd:command name='setupinmargin' value='stelleinmarginalieein'/>
- <cd:command name='setupinteraction' value='stelleinteraktionein'/>
- <cd:command name='setupinteractionbar' value='stelleinteraktionsbalkenein'/>
- <cd:command name='setupinteractionmenu' value='stelleinteraktionsmenueein'/>
- <cd:command name='setupinteractionscreen' value='stelleinteraktionsbildschirmein'/>
- <cd:command name='setupinterlinespace' value='stellezeilenabstandein'/>
- <cd:command name='setupitemgroup' value='setupitemgroup'/>
- <cd:command name='setupitemgroups' value='stelleaufzaehlungenein'/>
- <cd:command name='setupitems' value='stellepostenein'/>
- <cd:command name='setuplabeltext' value='stellelabeltextein'/>
- <cd:command name='setuplanguage' value='stellespracheein'/>
- <cd:command name='setuplayout' value='stellelayoutein'/>
- <cd:command name='setuplegend' value='stellelegendeein'/>
- <cd:command name='setuplinenote' value='setuplinenote'/>
- <cd:command name='setuplinenumbering' value='stellezeilennumerierungein'/>
- <cd:command name='setuplines' value='stellezeilenein'/>
- <cd:command name='setuplinewidth' value='stellelinienbreiteein'/>
- <cd:command name='setuplist' value='stellelisteein'/>
- <cd:command name='setupmakeup' value='stelleumbruchein'/>
- <cd:command name='setupmarginblock' value='setupmarginblock'/>
- <cd:command name='setupmarginblocks' value='stellemarginalblockein'/>
- <cd:command name='setupmargindata' value='setupmargindata'/>
- <cd:command name='setupmarginrules' value='stellemarginallinieein'/>
- <cd:command name='setupmarking' value='stellebeschriftungein'/>
- <cd:command name='setupmathalignment' value='setupmathalignment'/>
- <cd:command name='setupnarrower' value='stelleengerein'/>
- <cd:command name='setupnotation' value='setupnotation'/>
- <cd:command name='setupnotations' value='setupnotations'/>
- <cd:command name='setupnote' value='setupnote'/>
- <cd:command name='setupnotes' value='setupnotes'/>
- <cd:command name='setupnumber' value='setupnumber'/>
- <cd:command name='setupnumbering' value='stellenummerierungein'/>
- <cd:command name='setupoppositeplacing' value='stellegegenueberplatzierenein'/>
- <cd:command name='setupoutput' value='stelleausgabeein'/>
- <cd:command name='setuppagecomment' value='stelleseitenkommentarein'/>
- <cd:command name='setuppagenumber' value='stelleseitennummerein'/>
- <cd:command name='setuppagenumbering' value='stelleseitennummeriernungein'/>
- <cd:command name='setuppagetransitions' value='stelleseitenuebergangein'/>
- <cd:command name='setuppalet' value='stellepaletteein'/>
- <cd:command name='setuppaper' value='setuppaper'/>
- <cd:command name='setuppapersize' value='stellepapierformatein'/>
- <cd:command name='setupparagraphnumbering' value='stelleabsatznummerierungein'/>
- <cd:command name='setupparagraphs' value='stelleabsaetzeein'/>
- <cd:command name='setupperiodkerning' value='setupperiodkerning'/>
- <cd:command name='setupplacement' value='setupplacement'/>
- <cd:command name='setuppositioning' value='stellepositionierenein'/>
- <cd:command name='setupprofiles' value='stelleprofilein'/>
- <cd:command name='setupprograms' value='stelleprogrammein'/>
- <cd:command name='setuppublications' value='stellepublikationein'/>
- <cd:command name='setupquote' value='stellezitierenein'/>
- <cd:command name='setupreferencelist' value='stellereferenzlisteein'/>
- <cd:command name='setupreferencing' value='stellereferenzierenein'/>
- <cd:command name='setupregister' value='stelleregisterein'/>
- <cd:command name='setuprotate' value='stelledrehenein'/>
- <cd:command name='setuprule' value='setuprule'/>
- <cd:command name='setupscreens' value='stellerasterein'/>
- <cd:command name='setupsection' value='stelleabschnittein'/>
- <cd:command name='setupsectionblock' value='stelleabschnittsblockein'/>
- <cd:command name='setupsorting' value='stellesortierenein'/>
- <cd:command name='setupspacing' value='stellespatiumein'/>
- <cd:command name='setupstartstop' value='setupstartstop'/>
- <cd:command name='setupstrut' value='setupstrut'/>
- <cd:command name='setupsubpagenumber' value='stelleunterseitennummerein'/>
- <cd:command name='setupsymbolset' value='stellesymbolsetein'/>
- <cd:command name='setupsynchronization' value='stellesynchronisationein'/>
- <cd:command name='setupsynchronizationbar' value='stellesynchronisationsbalkenein'/>
- <cd:command name='setupsynonyms' value='stellesynonymein'/>
- <cd:command name='setupsystem' value='stellesystemein'/>
- <cd:command name='setuptab' value='stelletabein'/>
- <cd:command name='setuptables' value='stelletabellenein'/>
- <cd:command name='setuptabulate' value='stelletabulatorein'/>
- <cd:command name='setuptext' value='stelletextein'/>
- <cd:command name='setuptextbackground' value='setuptextbackground'/>
- <cd:command name='setuptextnote' value='setuptextnote'/>
- <cd:command name='setuptextposition' value='setuptextposition'/>
- <cd:command name='setuptextrules' value='stelletextumrissein'/>
- <cd:command name='setuptexttexts' value='stelletexttexteein'/>
- <cd:command name='setuptextvariable' value='setuptextvariable'/>
- <cd:command name='setupthinrules' value='stelleduennerumrissein'/>
- <cd:command name='setuptolerance' value='stelletoleranzein'/>
- <cd:command name='setuptop' value='stellenobenein'/>
- <cd:command name='setuptoptexts' value='stelletextobenein'/>
- <cd:command name='setuptype' value='stelletipein'/>
- <cd:command name='setuptyping' value='stelletippenein'/>
- <cd:command name='setupunderbar' value='stelleunterstreichenein'/>
- <cd:command name='setupurl' value='stelleurlein'/>
- <cd:command name='setupversions' value='stelleversionein'/>
- <cd:command name='setupwhitespace' value='stellezwischenraumein'/>
- <cd:command name='setvisualizerfont' value='setvisualizerfont'/>
- <cd:command name='showbodyfont' value='zeigefliesstext'/>
- <cd:command name='showbodyfontenvironment' value='zeigefliesstextumgebung'/>
- <cd:command name='showcolor' value='zeigefarbe'/>
- <cd:command name='showcolorgroup' value='zeigefarbengruppe'/>
- <cd:command name='showcounter' value='showcounter'/>
- <cd:command name='showexternalfigures' value='zeigeexterneabbildungen'/>
- <cd:command name='showfields' value='zeigefelder'/>
- <cd:command name='showfont' value='showfont'/>
- <cd:command name='showfontdata' value='showfontdata'/>
- <cd:command name='showfontexpansion' value='showfontexpansion'/>
- <cd:command name='showfontitalics' value='showfontitalics'/>
- <cd:command name='showfontkerns' value='showfontkerns'/>
- <cd:command name='showfontparameters' value='showfontparameters'/>
- <cd:command name='showfontstrip' value='showfontstrip'/>
- <cd:command name='showfontstyle' value='showfontstyle'/>
- <cd:command name='showframe' value='zeigerahmen'/>
- <cd:command name='showgrid' value='zeigegitter'/>
- <cd:command name='showhyphenationtrace' value='showhyphenationtrace'/>
- <cd:command name='showkerning' value='showkerning'/>
- <cd:command name='showlayout' value='zeigelayout'/>
- <cd:command name='showmakeup' value='zeigeumbruch'/>
- <cd:command name='showminimalbaseline' value='showminimalbaseline'/>
- <cd:command name='showpalet' value='zeigepalette'/>
- <cd:command name='showprint' value='zeigedruck'/>
- <cd:command name='showsetups' value='zeigeeinstellungen'/>
- <cd:command name='showstruts' value='zeigestruts'/>
- <cd:command name='showsymbolset' value='showsymbolset'/>
- <cd:command name='smallcapped' value='kap'/>
- <cd:command name='someline' value='einezeile'/>
- <cd:command name='somewhere' value='irgendwo'/>
- <cd:command name='space' value='spatium'/>
- <cd:command name='specialitem' value='specialitem'/>
- <cd:command name='splitfloat' value='teilegleitobjekt'/>
- <cd:command name='startalignment' value='startausrichtung'/>
- <cd:command name='startbackground' value='starthintergrund'/>
- <cd:command name='startcoding' value='startkodierung'/>
- <cd:command name='startcolor' value='startfarbe'/>
- <cd:command name='startcolumnmakeup' value='startcolumnmakeup'/>
- <cd:command name='startcolumns' value='startspalten'/>
- <cd:command name='startcolumnset' value='startcolumnset'/>
- <cd:command name='startcombination' value='startkombination'/>
- <cd:command name='startcomponent' value='startkomponente'/>
- <cd:command name='startdocument' value='startdokument'/>
- <cd:command name='startenvironment' value='startumgebung'/>
- <cd:command name='startfigure' value='startabbildung'/>
- <cd:command name='startframed' value='startframed'/>
- <cd:command name='startglobal' value='startglobal'/>
- <cd:command name='startline' value='startzeile'/>
- <cd:command name='startlinecorrection' value='startzeilenkorrektur'/>
- <cd:command name='startlinenote' value='startlinenote'/>
- <cd:command name='startlinenumbering' value='startzeilennumerierung'/>
- <cd:command name='startlines' value='startzeilen'/>
- <cd:command name='startlocal' value='startlokal'/>
- <cd:command name='startlocalfootnotes' value='startlokalefussnoten'/>
- <cd:command name='startmakeup' value='startumbruch'/>
- <cd:command name='startmarginblock' value='startmarginalblock'/>
- <cd:command name='startmarginrule' value='startmarginallinie'/>
- <cd:command name='startnarrower' value='startenger'/>
- <cd:command name='startopposite' value='startgegenueber'/>
- <cd:command name='startoverlay' value='startoverlay'/>
- <cd:command name='startoverview' value='startueberblick'/>
- <cd:command name='startpacked' value='startkleinerdurchschuss'/>
- <cd:command name='startpositioning' value='startpositionieren'/>
- <cd:command name='startproduct' value='startprodukt'/>
- <cd:command name='startprofile' value='startprofil'/>
- <cd:command name='startproject' value='startprojekt'/>
- <cd:command name='startquotation' value='startzitat'/>
- <cd:command name='startraster' value='startraster'/>
- <cd:command name='startsymbolset' value='startsymbolset'/>
- <cd:command name='startsynchronization' value='startsynchronisation'/>
- <cd:command name='starttable' value='starttabelle'/>
- <cd:command name='starttables' value='starttabellen'/>
- <cd:command name='starttext' value='starttext'/>
- <cd:command name='starttextbackground' value='starttextbackground'/>
- <cd:command name='starttextrule' value='starttextlinie'/>
- <cd:command name='startunpacked' value='startgrosserdurchschuss'/>
- <cd:command name='startversion' value='startversion'/>
- <cd:command name='stopalignment' value='stopausrichtung'/>
- <cd:command name='stopbackground' value='stophintergrund'/>
- <cd:command name='stopcoding' value='stopkodierung'/>
- <cd:command name='stopcolor' value='stopfarbe'/>
- <cd:command name='stopcolumnmakeup' value='stopcolumnmakeup'/>
- <cd:command name='stopcolumns' value='stopspalten'/>
- <cd:command name='stopcolumnset' value='stopcolumnset'/>
- <cd:command name='stopcombination' value='stopkombination'/>
- <cd:command name='stopcomponent' value='stopkomponente'/>
- <cd:command name='stopdocument' value='stopdokument'/>
- <cd:command name='stopenvironment' value='stopumgebung'/>
- <cd:command name='stopframed' value='stopframed'/>
- <cd:command name='stopglobal' value='stopglobal'/>
- <cd:command name='stopline' value='stopzeile'/>
- <cd:command name='stoplinecorrection' value='stopzeilenkorrektur'/>
- <cd:command name='stoplinenote' value='stoplinenote'/>
- <cd:command name='stoplinenumbering' value='stopzeilennumerierung'/>
- <cd:command name='stoplines' value='stopzeilen'/>
- <cd:command name='stoplocal' value='stoplokal'/>
- <cd:command name='stoplocalfootnotes' value='stoplokalefussnoten'/>
- <cd:command name='stopmakeup' value='stopumbruch'/>
- <cd:command name='stopmarginblock' value='stopmarginalblock'/>
- <cd:command name='stopmarginrule' value='stopmarginallinie'/>
- <cd:command name='stopnarrower' value='stopenger'/>
- <cd:command name='stopopposite' value='stopgegenueber'/>
- <cd:command name='stopoverlay' value='stopoverlay'/>
- <cd:command name='stopoverview' value='stopueberblick'/>
- <cd:command name='stoppacked' value='stopkleinerdurchschuss'/>
- <cd:command name='stoppositioning' value='stoppositionieren'/>
- <cd:command name='stopproduct' value='stopprodukt'/>
- <cd:command name='stopprofile' value='stopprofil'/>
- <cd:command name='stopproject' value='stopprojekt'/>
- <cd:command name='stopquotation' value='stopzitat'/>
- <cd:command name='stopraster' value='stopraster'/>
- <cd:command name='stopsynchronization' value='stopsynchronisation'/>
- <cd:command name='stoptable' value='stoptabelle'/>
- <cd:command name='stoptables' value='stoptabellen'/>
- <cd:command name='stoptext' value='stoptext'/>
- <cd:command name='stoptextbackground' value='stoptextbackground'/>
- <cd:command name='stoptextrule' value='stoptextlinie'/>
- <cd:command name='stopunpacked' value='stopgrosserdurchschuss'/>
- <cd:command name='stopversion' value='stopversion'/>
- <cd:command name='stretched' value='gestreckt'/>
- <cd:command name='strictinspectnextcharacter' value='strictinspectnextcharacter'/>
- <cd:command name='stripcharacter' value='stripcharacter'/>
- <cd:command name='subformulanumber' value='unterformelnummer'/>
- <cd:command name='subpagenumber' value='subpagenumber'/>
- <cd:command name='subtractfeature' value='subtractfeature'/>
- <cd:command name='switchtobodyfont' value='wechselezumfliesstext'/>
- <cd:command name='switchtorawfont' value='switchtorawfont'/>
- <cd:command name='sym' value='sym'/>
- <cd:command name='symbol' value='symbol'/>
- <cd:command name='symoffset' value='symoffset'/>
- <cd:command name='synchronizationbar' value='synchronisationsbalken'/>
- <cd:command name='synchronize' value='synchronisieren'/>
- <cd:command name='tab' value='tab'/>
- <cd:command name='testcolumn' value='testcolumn'/>
- <cd:command name='testfeature' value='testfeature'/>
- <cd:command name='testfeatureonce' value='testfeatureonce'/>
- <cd:command name='testpage' value='testpage'/>
- <cd:command name='tex' value='tex'/>
- <cd:command name='textbackground' value='textbackground'/>
- <cd:command name='textcolor' value='textcolor'/>
- <cd:command name='textheight' value='texthoehe'/>
- <cd:command name='textnote' value='textnote'/>
- <cd:command name='textreference' value='textreferenz'/>
- <cd:command name='textrule' value='textlinie'/>
- <cd:command name='textvariable' value='textvariable'/>
- <cd:command name='textwidth' value='textbreite'/>
- <cd:command name='thefirstcharacter' value='thefirstcharacter'/>
- <cd:command name='thenormalizedbodyfontsize' value='thenormalizedbodyfontsize'/>
- <cd:command name='theremainingcharacters' value='theremainingcharacters'/>
- <cd:command name='thinrule' value='duennelinie'/>
- <cd:command name='thinrules' value='duennerumriss'/>
- <cd:command name='tolinenote' value='tolinenote'/>
- <cd:command name='tooltip' value='tooltip'/>
- <cd:command name='topdistance' value='abstandoben'/>
- <cd:command name='topheight' value='hoeheoben'/>
- <cd:command name='topspace' value='kopfweite'/>
- <cd:command name='totalnumberofpages' value='gesamtseitenanzahl'/>
- <cd:command name='translate' value='uebersetzten'/>
- <cd:command name='txt' value='txt'/>
- <cd:command name='typ' value='tip'/>
- <cd:command name='type' value='tippen'/>
- <cd:command name='typebuffer' value='tippepuffer'/>
- <cd:command name='typedefinedbuffer' value='typedefinedbuffer'/>
- <cd:command name='typefile' value='tippedatei'/>
- <cd:command name='typeinlinebuffer' value='typeinlinebuffer'/>
- <cd:command name='typing' value='typing'/>
- <cd:command name='unitmeaning' value='bedeutung'/>
- <cd:command name='unknown' value='unbekant'/>
- <cd:command name='unregisterhyphenationpattern' value='unregisterhyphenationpattern'/>
- <cd:command name='useJSscripts' value='verwendeJSscript'/>
- <cd:command name='useURL' value='verwendeURL'/>
- <cd:command name='useXMLfilter' value='useXMLfilter'/>
- <cd:command name='useblocks' value='verwendebloecke'/>
- <cd:command name='usebodyfont' value='usebodyfont'/>
- <cd:command name='usebodyfontparameter' value='usebodyfontparameter'/>
- <cd:command name='usecommands' value='verwendebefehl'/>
- <cd:command name='useencoding' value='benutzekodierung'/>
- <cd:command name='useexternaldocument' value='verwendeexteresdokument'/>
- <cd:command name='useexternalfigure' value='verwendeexterneabbildung'/>
- <cd:command name='useexternalfile' value='verwendeexternedatei'/>
- <cd:command name='useexternalfiles' value='verwendeexternedateien'/>
- <cd:command name='useexternalsoundtrack' value='verwendeexternestonstueck'/>
- <cd:command name='usemodule' value='verwendemodul'/>
- <cd:command name='usemodules' value='verwendemodule'/>
- <cd:command name='usepath' value='benutzeverzeichnis'/>
- <cd:command name='usereferences' value='verwendereferenzen'/>
- <cd:command name='usespecials' value='benutzespezielles'/>
- <cd:command name='usesymbols' value='verwendesymbole'/>
- <cd:command name='usetypescript' value='usetypescript'/>
- <cd:command name='usetypescriptfile' value='usetypescriptfile'/>
- <cd:command name='useurl' value='verwendeurl'/>
- <cd:command name='verbatim' value='verbatim'/>
- <cd:command name='version' value='version'/>
- <cd:command name='vl' value='vl'/>
- <cd:command name='weekday' value='wochentag'/>
- <cd:command name='whitespace' value='zwischenraum'/>
- <cd:command name='widthspanningtext' value='widthspanningtext'/>
- <cd:command name='wordright' value='wortrechts'/>
- <cd:command name='writebetweenlist' value='schreibezwischenliste'/>
- <cd:command name='writetolist' value='schreibezurliste'/>
- <cd:command name='writetoreferencelist' value='schreibezurreferenzliste'/>
- <cd:command name='writetoregister' value='schreibezumregister'/>
- </cd:commands>
-
-</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-en.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-en.xml
deleted file mode 100644
index dc2cc49c30a..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-en.xml
+++ /dev/null
@@ -1,2234 +0,0 @@
-<?xml version='1.0'?>
-
-<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='en' version='2008.10.21 19:42'>
-
- <!-- definitions for interface variables for language en -->
-
- <cd:variables>
- <cd:variable name='Addition' value='Addition'/>
- <cd:variable name='Alphabetic' value='Alphabetic'/>
- <cd:variable name='Balloon' value='Balloon'/>
- <cd:variable name='Cap' value='Cap'/>
- <cd:variable name='Capital' value='Capital'/>
- <cd:variable name='Character' value='Character'/>
- <cd:variable name='Characters' value='Characters'/>
- <cd:variable name='CloseDocument' value='CloseDocument'/>
- <cd:variable name='ExitViewer' value='ExitViewer'/>
- <cd:variable name='FirstPage' value='FirstPage'/>
- <cd:variable name='FitHeight' value='FitHeight'/>
- <cd:variable name='FitWidth' value='FitWidth'/>
- <cd:variable name='GotoPage' value='GotoPage'/>
- <cd:variable name='Greek' value='Greek'/>
- <cd:variable name='Help' value='Help'/>
- <cd:variable name='HideField' value='HideField'/>
- <cd:variable name='HideLayer' value='HideLayer'/>
- <cd:variable name='Key' value='Key'/>
- <cd:variable name='LastPage' value='LastPage'/>
- <cd:variable name='LoadForm' value='LoadForm'/>
- <cd:variable name='MONTH' value='MONTH'/>
- <cd:variable name='New' value='New'/>
- <cd:variable name='NextJump' value='NextJump'/>
- <cd:variable name='NextPage' value='NextPage'/>
- <cd:variable name='Numbers' value='Numbers'/>
- <cd:variable name='OpenNamedDocument' value='OpenNamedDocument'/>
- <cd:variable name='Ordinal' value='Ordinal'/>
- <cd:variable name='Paragraph' value='Paragraph'/>
- <cd:variable name='PauseMovie' value='PauseMovie'/>
- <cd:variable name='PauseRendering' value='PauseRendering'/>
- <cd:variable name='PauseSound' value='PauseSound'/>
- <cd:variable name='PreviousJump' value='PreviousJump'/>
- <cd:variable name='PreviousPage' value='PreviousPage'/>
- <cd:variable name='PrintDocument' value='PrintDocument'/>
- <cd:variable name='Query' value='Query'/>
- <cd:variable name='QueryAgain' value='QueryAgain'/>
- <cd:variable name='ResetForm' value='ResetForm'/>
- <cd:variable name='ResumeMovie' value='ResumeMovie'/>
- <cd:variable name='ResumeRendering' value='ResumeRendering'/>
- <cd:variable name='ResumeSound' value='ResumeSound'/>
- <cd:variable name='Romannumerals' value='Romannumerals'/>
- <cd:variable name='SaveDocument' value='SaveDocument'/>
- <cd:variable name='SaveForm' value='SaveForm'/>
- <cd:variable name='SaveNamedDocument' value='SaveNamedDocument'/>
- <cd:variable name='SearchAgain' value='SearchAgain'/>
- <cd:variable name='SearchDocument' value='SearchDocument'/>
- <cd:variable name='ShowBookmarks' value='ShowBookmarks'/>
- <cd:variable name='ShowField' value='ShowField'/>
- <cd:variable name='ShowThumbs' value='ShowThumbs'/>
- <cd:variable name='StartMovie' value='StartMovie'/>
- <cd:variable name='StartRendering' value='StartRendering'/>
- <cd:variable name='StartSound' value='StartSound'/>
- <cd:variable name='StopMovie' value='StopMovie'/>
- <cd:variable name='StopRendering' value='StopRendering'/>
- <cd:variable name='StopSound' value='StopSound'/>
- <cd:variable name='SubmitForm' value='SubmitForm'/>
- <cd:variable name='ToggleLayer' value='ToggleLayer'/>
- <cd:variable name='ToggleViewer' value='ToggleViewer'/>
- <cd:variable name='URL' value='URL'/>
- <cd:variable name='VideLayer' value='VideLayer'/>
- <cd:variable name='ViewerHelp' value='ViewerHelp'/>
- <cd:variable name='WEEKDAY' value='WEEKDAY'/>
- <cd:variable name='WORD' value='WORD'/>
- <cd:variable name='WORDS' value='WORDS'/>
- <cd:variable name='Word' value='Word'/>
- <cd:variable name='Words' value='Words'/>
- <cd:variable name='abbreviation' value='abbreviation'/>
- <cd:variable name='abbreviations' value='abbreviations'/>
- <cd:variable name='absolute' value='absolute'/>
- <cd:variable name='action' value='action'/>
- <cd:variable name='after' value='after'/>
- <cd:variable name='all' value='all'/>
- <cd:variable name='alphabetic' value='alphabetic'/>
- <cd:variable name='always' value='always'/>
- <cd:variable name='anchor' value='anchor'/>
- <cd:variable name='and' value='and'/>
- <cd:variable name='answerarea' value='answerarea'/>
- <cd:variable name='appendices' value='appendices'/>
- <cd:variable name='appendix' value='appendix'/>
- <cd:variable name='april' value='april'/>
- <cd:variable name='aside' value='aside'/>
- <cd:variable name='atleftmargin' value='atleftmargin'/>
- <cd:variable name='atmargin' value='atmargin'/>
- <cd:variable name='atpage' value='atpage'/>
- <cd:variable name='atrightmargin' value='atrightmargin'/>
- <cd:variable name='attachment' value='attachment'/>
- <cd:variable name='august' value='august'/>
- <cd:variable name='author' value='author'/>
- <cd:variable name='auto' value='auto'/>
- <cd:variable name='autointro' value='autointro'/>
- <cd:variable name='autopunctuation' value='autopunctuation'/>
- <cd:variable name='back' value='back'/>
- <cd:variable name='background' value='background'/>
- <cd:variable name='backmatter' value='backmatter'/>
- <cd:variable name='backpart' value='backpart'/>
- <cd:variable name='backspace' value='backspace'/>
- <cd:variable name='backward' value='backward'/>
- <cd:variable name='bbl' value='bbl'/>
- <cd:variable name='before' value='before'/>
- <cd:variable name='begin' value='begin'/>
- <cd:variable name='bib' value='bib'/>
- <cd:variable name='big' value='big'/>
- <cd:variable name='bigbodyfont' value='bigbodyfont'/>
- <cd:variable name='bigger' value='bigger'/>
- <cd:variable name='bigpreference' value='bigpreference'/>
- <cd:variable name='blank' value='blank'/>
- <cd:variable name='block' value='block'/>
- <cd:variable name='blockquote' value='blockquote'/>
- <cd:variable name='bodymatter' value='bodymatter'/>
- <cd:variable name='bodypart' value='bodypart'/>
- <cd:variable name='bold' value='bold'/>
- <cd:variable name='bolditalic' value='bolditalic'/>
- <cd:variable name='boldslanted' value='boldslanted'/>
- <cd:variable name='bookmark' value='bookmark'/>
- <cd:variable name='both' value='both'/>
- <cd:variable name='bothtext' value='bothtext'/>
- <cd:variable name='bottom' value='bottom'/>
- <cd:variable name='box' value='box'/>
- <cd:variable name='brief' value='brief'/>
- <cd:variable name='broad' value='broad'/>
- <cd:variable name='buffer' value='buffer'/>
- <cd:variable name='by' value='by'/>
- <cd:variable name='calligraphic' value='calligraphic'/>
- <cd:variable name='camel' value='camel'/>
- <cd:variable name='cap' value='cap'/>
- <cd:variable name='capital' value='capital'/>
- <cd:variable name='category' value='category'/>
- <cd:variable name='cd:character' value='cd:character'/>
- <cd:variable name='cd:font' value='cd:font'/>
- <cd:variable name='center' value='center'/>
- <cd:variable name='centerlast' value='centerlast'/>
- <cd:variable name='chapter' value='chapter'/>
- <cd:variable name='character' value='character'/>
- <cd:variable name='characters' value='characters'/>
- <cd:variable name='chemical' value='chemical'/>
- <cd:variable name='chemicals' value='chemicals'/>
- <cd:variable name='chemistry' value='chemistry'/>
- <cd:variable name='cite' value='cite'/>
- <cd:variable name='closed' value='closed'/>
- <cd:variable name='color' value='color'/>
- <cd:variable name='column' value='column'/>
- <cd:variable name='columns' value='columns'/>
- <cd:variable name='combination' value='combination'/>
- <cd:variable name='command' value='command'/>
- <cd:variable name='commands' value='commands'/>
- <cd:variable name='comment' value='comment'/>
- <cd:variable name='component' value='component'/>
- <cd:variable name='compressseparator' value='compressseparator'/>
- <cd:variable name='compressstopper' value='compressstopper'/>
- <cd:variable name='concept' value='concept'/>
- <cd:variable name='construction' value='construction'/>
- <cd:variable name='content' value='content'/>
- <cd:variable name='contents' value='contents'/>
- <cd:variable name='continue' value='continue'/>
- <cd:variable name='continued' value='continued'/>
- <cd:variable name='controls' value='controls'/>
- <cd:variable name='conversion' value='conversion'/>
- <cd:variable name='current' value='current'/>
- <cd:variable name='cutspace' value='cutspace'/>
- <cd:variable name='dataset' value='dataset'/>
- <cd:variable name='date' value='date'/>
- <cd:variable name='day' value='day'/>
- <cd:variable name='december' value='december'/>
- <cd:variable name='default' value='default'/>
- <cd:variable name='depth' value='depth'/>
- <cd:variable name='description' value='description'/>
- <cd:variable name='disable' value='disable'/>
- <cd:variable name='display' value='display'/>
- <cd:variable name='dot' value='dot'/>
- <cd:variable name='doublesided' value='doublesided'/>
- <cd:variable name='down' value='down'/>
- <cd:variable name='each' value='each'/>
- <cd:variable name='edge' value='edge'/>
- <cd:variable name='effective' value='effective'/>
- <cd:variable name='eight' value='eight'/>
- <cd:variable name='embed' value='embed'/>
- <cd:variable name='empty' value='empty'/>
- <cd:variable name='enable' value='enable'/>
- <cd:variable name='end' value='end'/>
- <cd:variable name='endnote' value='endnote'/>
- <cd:variable name='enumeration' value='enumeration'/>
- <cd:variable name='environment' value='environment'/>
- <cd:variable name='even' value='even'/>
- <cd:variable name='export' value='export'/>
- <cd:variable name='external' value='external'/>
- <cd:variable name='extremestretch' value='extremestretch'/>
- <cd:variable name='fact' value='fact'/>
- <cd:variable name='fallback' value='fallback'/>
- <cd:variable name='february' value='february'/>
- <cd:variable name='field' value='field'/>
- <cd:variable name='figure' value='figure'/>
- <cd:variable name='figures' value='figures'/>
- <cd:variable name='file' value='file'/>
- <cd:variable name='final' value='final'/>
- <cd:variable name='first' value='first'/>
- <cd:variable name='firstcolumn' value='firstcolumn'/>
- <cd:variable name='firstpage' value='firstpage'/>
- <cd:variable name='firstsubpage' value='firstsubpage'/>
- <cd:variable name='fit' value='fit'/>
- <cd:variable name='five' value='five'/>
- <cd:variable name='fix' value='fix'/>
- <cd:variable name='fixed' value='fixed'/>
- <cd:variable name='flexible' value='flexible'/>
- <cd:variable name='float' value='float'/>
- <cd:variable name='flushinner' value='flushinner'/>
- <cd:variable name='flushleft' value='flushleft'/>
- <cd:variable name='flushouter' value='flushouter'/>
- <cd:variable name='flushright' value='flushright'/>
- <cd:variable name='followingpage' value='followingpage'/>
- <cd:variable name='font' value='font'/>
- <cd:variable name='footer' value='footer'/>
- <cd:variable name='footnote' value='footnote'/>
- <cd:variable name='force' value='force'/>
- <cd:variable name='foreground' value='foreground'/>
- <cd:variable name='formula' value='formula'/>
- <cd:variable name='formulas' value='formulas'/>
- <cd:variable name='forward' value='forward'/>
- <cd:variable name='four' value='four'/>
- <cd:variable name='fractions' value='fractions'/>
- <cd:variable name='frame' value='frame'/>
- <cd:variable name='framedtext' value='framedtext'/>
- <cd:variable name='friday' value='friday'/>
- <cd:variable name='frontmatter' value='frontmatter'/>
- <cd:variable name='frontpart' value='frontpart'/>
- <cd:variable name='fullhz' value='fullhz'/>
- <cd:variable name='global' value='global'/>
- <cd:variable name='graphic' value='graphic'/>
- <cd:variable name='graphics' value='graphics'/>
- <cd:variable name='gray' value='gray'/>
- <cd:variable name='greek' value='greek'/>
- <cd:variable name='grid' value='grid'/>
- <cd:variable name='halfline' value='halfline'/>
- <cd:variable name='handwritten' value='handwritten'/>
- <cd:variable name='hang' value='hang'/>
- <cd:variable name='hanging' value='hanging'/>
- <cd:variable name='hangingboth' value='hangingboth'/>
- <cd:variable name='head' value='head'/>
- <cd:variable name='header' value='header'/>
- <cd:variable name='headintext' value='headintext'/>
- <cd:variable name='height' value='height'/>
- <cd:variable name='helptext' value='helptext'/>
- <cd:variable name='hencefore' value='hencefore'/>
- <cd:variable name='here' value='here'/>
- <cd:variable name='hereafter' value='hereafter'/>
- <cd:variable name='hidden' value='hidden'/>
- <cd:variable name='hiddenbar' value='hiddenbar'/>
- <cd:variable name='hiding' value='hiding'/>
- <cd:variable name='high' value='high'/>
- <cd:variable name='horizontal' value='horizontal'/>
- <cd:variable name='hyphenated' value='hyphenated'/>
- <cd:variable name='hz' value='hz'/>
- <cd:variable name='inbetween' value='inbetween'/>
- <cd:variable name='index' value='index'/>
- <cd:variable name='indices' value='indices'/>
- <cd:variable name='inherit' value='inherit'/>
- <cd:variable name='ininner' value='ininner'/>
- <cd:variable name='ininneredge' value='ininneredge'/>
- <cd:variable name='ininnermargin' value='ininnermargin'/>
- <cd:variable name='inleft' value='inleft'/>
- <cd:variable name='inleftedge' value='inleftedge'/>
- <cd:variable name='inleftmargin' value='inleftmargin'/>
- <cd:variable name='inline' value='inline'/>
- <cd:variable name='inmargin' value='inmargin'/>
- <cd:variable name='inner' value='inner'/>
- <cd:variable name='inneredge' value='inneredge'/>
- <cd:variable name='innermargin' value='innermargin'/>
- <cd:variable name='inother' value='inother'/>
- <cd:variable name='inouter' value='inouter'/>
- <cd:variable name='inouteredge' value='inouteredge'/>
- <cd:variable name='inoutermargin' value='inoutermargin'/>
- <cd:variable name='inright' value='inright'/>
- <cd:variable name='inrightedge' value='inrightedge'/>
- <cd:variable name='inrightmargin' value='inrightmargin'/>
- <cd:variable name='integral' value='integral'/>
- <cd:variable name='interaction' value='interaction'/>
- <cd:variable name='interactionmenu' value='interactionmenu'/>
- <cd:variable name='interactive' value='interactive'/>
- <cd:variable name='intermezzi' value='intermezzi'/>
- <cd:variable name='intermezzo' value='intermezzo'/>
- <cd:variable name='intext' value='intext'/>
- <cd:variable name='intro' value='intro'/>
- <cd:variable name='invertedshort' value='invertedshort'/>
- <cd:variable name='italic' value='italic'/>
- <cd:variable name='italicbold' value='italicbold'/>
- <cd:variable name='item' value='item'/>
- <cd:variable name='itemize' value='itemize'/>
- <cd:variable name='its' value='its'/>
- <cd:variable name='january' value='january'/>
- <cd:variable name='joinedup' value='joinedup'/>
- <cd:variable name='july' value='july'/>
- <cd:variable name='june' value='june'/>
- <cd:variable name='keep' value='keep'/>
- <cd:variable name='kerncharacters' value='kerncharacters'/>
- <cd:variable name='knockout' value='knockout'/>
- <cd:variable name='label' value='label'/>
- <cd:variable name='landscape' value='landscape'/>
- <cd:variable name='last' value='last'/>
- <cd:variable name='lastcolumn' value='lastcolumn'/>
- <cd:variable name='lastpage' value='lastpage'/>
- <cd:variable name='lastpagenumber' value='lastpagenumber'/>
- <cd:variable name='lastsubpage' value='lastsubpage'/>
- <cd:variable name='layer' value='layer'/>
- <cd:variable name='left' value='left'/>
- <cd:variable name='leftedge' value='leftedge'/>
- <cd:variable name='lefthanging' value='lefthanging'/>
- <cd:variable name='leftmargin' value='leftmargin'/>
- <cd:variable name='leftpage' value='leftpage'/>
- <cd:variable name='lefttoright' value='lefttoright'/>
- <cd:variable name='legend' value='legend'/>
- <cd:variable name='less' value='less'/>
- <cd:variable name='lesshyphenation' value='lesshyphenation'/>
- <cd:variable name='letterspacing' value='letterspacing'/>
- <cd:variable name='line' value='line'/>
- <cd:variable name='linenote' value='linenote'/>
- <cd:variable name='lines' value='lines'/>
- <cd:variable name='linked' value='linked'/>
- <cd:variable name='list' value='list'/>
- <cd:variable name='local' value='local'/>
- <cd:variable name='localenvironment' value='localenvironment'/>
- <cd:variable name='logo' value='logo'/>
- <cd:variable name='logos' value='logos'/>
- <cd:variable name='lohi' value='lohi'/>
- <cd:variable name='long' value='long'/>
- <cd:variable name='loose' value='loose'/>
- <cd:variable name='low' value='low'/>
- <cd:variable name='ls' value='ls'/>
- <cd:variable name='makeup' value='makeup'/>
- <cd:variable name='mar' value='mar'/>
- <cd:variable name='march' value='march'/>
- <cd:variable name='margin' value='margin'/>
- <cd:variable name='marginedge' value='marginedge'/>
- <cd:variable name='margintext' value='margintext'/>
- <cd:variable name='margintitle' value='margintitle'/>
- <cd:variable name='marking' value='marking'/>
- <cd:variable name='math' value='math'/>
- <cd:variable name='mathalignment' value='mathalignment'/>
- <cd:variable name='mathcases' value='mathcases'/>
- <cd:variable name='mathematics' value='mathematics'/>
- <cd:variable name='mathmatrix' value='mathmatrix'/>
- <cd:variable name='max' value='max'/>
- <cd:variable name='maxdepth' value='maxdepth'/>
- <cd:variable name='maxheight' value='maxheight'/>
- <cd:variable name='maxwidth' value='maxwidth'/>
- <cd:variable name='may' value='may'/>
- <cd:variable name='mediaeval' value='mediaeval'/>
- <cd:variable name='medium' value='medium'/>
- <cd:variable name='middle' value='middle'/>
- <cd:variable name='min' value='min'/>
- <cd:variable name='mindepth' value='mindepth'/>
- <cd:variable name='minheight' value='minheight'/>
- <cd:variable name='minwidth' value='minwidth'/>
- <cd:variable name='mirrored' value='mirrored'/>
- <cd:variable name='mixed' value='mixed'/>
- <cd:variable name='monday' value='monday'/>
- <cd:variable name='mono' value='mono'/>
- <cd:variable name='monobold' value='monobold'/>
- <cd:variable name='mononormal' value='mononormal'/>
- <cd:variable name='month' value='month'/>
- <cd:variable name='more' value='more'/>
- <cd:variable name='morehyphenation' value='morehyphenation'/>
- <cd:variable name='name' value='name'/>
- <cd:variable name='narrow' value='narrow'/>
- <cd:variable name='negative' value='negative'/>
- <cd:variable name='never' value='never'/>
- <cd:variable name='new' value='new'/>
- <cd:variable name='next' value='next'/>
- <cd:variable name='nextevenpage' value='nextevenpage'/>
- <cd:variable name='nextoddpage' value='nextoddpage'/>
- <cd:variable name='nextpage' value='nextpage'/>
- <cd:variable name='nextsubpage' value='nextsubpage'/>
- <cd:variable name='nine' value='nine'/>
- <cd:variable name='no' value='no'/>
- <cd:variable name='nocheck' value='nocheck'/>
- <cd:variable name='nodepth' value='nodepth'/>
- <cd:variable name='nofit' value='nofit'/>
- <cd:variable name='nogrid' value='nogrid'/>
- <cd:variable name='noheight' value='noheight'/>
- <cd:variable name='nohz' value='nohz'/>
- <cd:variable name='noline' value='noline'/>
- <cd:variable name='nomarking' value='nomarking'/>
- <cd:variable name='nomenubar' value='nomenubar'/>
- <cd:variable name='none' value='none'/>
- <cd:variable name='nonumber' value='nonumber'/>
- <cd:variable name='norepeat' value='norepeat'/>
- <cd:variable name='normal' value='normal'/>
- <cd:variable name='normalshort' value='normalshort'/>
- <cd:variable name='nospacing' value='nospacing'/>
- <cd:variable name='nostopper' value='nostopper'/>
- <cd:variable name='not' value='not'/>
- <cd:variable name='notation' value='notation'/>
- <cd:variable name='note' value='note'/>
- <cd:variable name='nothanging' value='nothanging'/>
- <cd:variable name='nothyphenated' value='nothyphenated'/>
- <cd:variable name='notjoinedup' value='notjoinedup'/>
- <cd:variable name='november' value='november'/>
- <cd:variable name='nowhere' value='nowhere'/>
- <cd:variable name='nowhite' value='nowhite'/>
- <cd:variable name='number' value='number'/>
- <cd:variable name='numbers' value='numbers'/>
- <cd:variable name='october' value='october'/>
- <cd:variable name='odd' value='odd'/>
- <cd:variable name='off' value='off'/>
- <cd:variable name='offset' value='offset'/>
- <cd:variable name='old' value='old'/>
- <cd:variable name='oldstyle' value='oldstyle'/>
- <cd:variable name='on' value='on'/>
- <cd:variable name='one' value='one'/>
- <cd:variable name='opposite' value='opposite'/>
- <cd:variable name='ordinal' value='ordinal'/>
- <cd:variable name='outer' value='outer'/>
- <cd:variable name='outeredge' value='outeredge'/>
- <cd:variable name='outermargin' value='outermargin'/>
- <cd:variable name='overbar' value='overbar'/>
- <cd:variable name='overbars' value='overbars'/>
- <cd:variable name='overlay' value='overlay'/>
- <cd:variable name='overprint' value='overprint'/>
- <cd:variable name='overstrike' value='overstrike'/>
- <cd:variable name='overstrikes' value='overstrikes'/>
- <cd:variable name='packed' value='packed'/>
- <cd:variable name='page' value='page'/>
- <cd:variable name='pagecomment' value='pagecomment'/>
- <cd:variable name='pagenumber' value='pagenumber'/>
- <cd:variable name='paper' value='paper'/>
- <cd:variable name='paragraph' value='paragraph'/>
- <cd:variable name='part' value='part'/>
- <cd:variable name='positive' value='positive'/>
- <cd:variable name='postponing' value='postponing'/>
- <cd:variable name='postscript' value='postscript'/>
- <cd:variable name='precedingpage' value='precedingpage'/>
- <cd:variable name='preference' value='preference'/>
- <cd:variable name='preview' value='preview'/>
- <cd:variable name='previous' value='previous'/>
- <cd:variable name='previousevenpage' value='previousevenpage'/>
- <cd:variable name='previousoddpage' value='previousoddpage'/>
- <cd:variable name='previouspage' value='previouspage'/>
- <cd:variable name='previoussubpage' value='previoussubpage'/>
- <cd:variable name='print' value='print'/>
- <cd:variable name='printable' value='printable'/>
- <cd:variable name='process' value='process'/>
- <cd:variable name='product' value='product'/>
- <cd:variable name='program' value='program'/>
- <cd:variable name='project' value='project'/>
- <cd:variable name='protected' value='protected'/>
- <cd:variable name='quadruple' value='quadruple'/>
- <cd:variable name='quarterline' value='quarterline'/>
- <cd:variable name='quotation' value='quotation'/>
- <cd:variable name='quote' value='quote'/>
- <cd:variable name='ran' value='ran'/>
- <cd:variable name='random' value='random'/>
- <cd:variable name='readonly' value='readonly'/>
- <cd:variable name='rectangular' value='rectangular'/>
- <cd:variable name='reference' value='reference'/>
- <cd:variable name='referral' value='referral'/>
- <cd:variable name='region' value='region'/>
- <cd:variable name='register' value='register'/>
- <cd:variable name='regular' value='regular'/>
- <cd:variable name='relative' value='relative'/>
- <cd:variable name='repeat' value='repeat'/>
- <cd:variable name='required' value='required'/>
- <cd:variable name='reset' value='reset'/>
- <cd:variable name='reverse' value='reverse'/>
- <cd:variable name='right' value='right'/>
- <cd:variable name='rightedge' value='rightedge'/>
- <cd:variable name='righthanging' value='righthanging'/>
- <cd:variable name='rightmargin' value='rightmargin'/>
- <cd:variable name='rightpage' value='rightpage'/>
- <cd:variable name='righttoleft' value='righttoleft'/>
- <cd:variable name='roman' value='roman'/>
- <cd:variable name='romannumerals' value='romannumerals'/>
- <cd:variable name='rotate' value='rotate'/>
- <cd:variable name='rotated' value='rotated'/>
- <cd:variable name='round' value='round'/>
- <cd:variable name='row' value='row'/>
- <cd:variable name='rule' value='rule'/>
- <cd:variable name='samepage' value='samepage'/>
- <cd:variable name='sans' value='sans'/>
- <cd:variable name='sansbold' value='sansbold'/>
- <cd:variable name='sansnormal' value='sansnormal'/>
- <cd:variable name='sansserif' value='sansserif'/>
- <cd:variable name='saturday' value='saturday'/>
- <cd:variable name='screen' value='screen'/>
- <cd:variable name='section' value='section'/>
- <cd:variable name='sectionblockenvironment' value='sectionblockenvironment'/>
- <cd:variable name='sectionnumber' value='sectionnumber'/>
- <cd:variable name='see' value='see'/>
- <cd:variable name='selectfont' value='selectfont'/>
- <cd:variable name='separator' value='separator'/>
- <cd:variable name='september' value='september'/>
- <cd:variable name='serif' value='serif'/>
- <cd:variable name='serifbold' value='serifbold'/>
- <cd:variable name='serifnormal' value='serifnormal'/>
- <cd:variable name='serried' value='serried'/>
- <cd:variable name='setups' value='setups'/>
- <cd:variable name='seven' value='seven'/>
- <cd:variable name='sheet' value='sheet'/>
- <cd:variable name='shiftdown' value='shiftdown'/>
- <cd:variable name='shiftup' value='shiftup'/>
- <cd:variable name='short' value='short'/>
- <cd:variable name='simplefonts' value='simplefonts'/>
- <cd:variable name='simplelist' value='simplelist'/>
- <cd:variable name='singlesided' value='singlesided'/>
- <cd:variable name='six' value='six'/>
- <cd:variable name='slanted' value='slanted'/>
- <cd:variable name='slantedbold' value='slantedbold'/>
- <cd:variable name='small' value='small'/>
- <cd:variable name='smallbodyfont' value='smallbodyfont'/>
- <cd:variable name='smallbold' value='smallbold'/>
- <cd:variable name='smallbolditalic' value='smallbolditalic'/>
- <cd:variable name='smallboldslanted' value='smallboldslanted'/>
- <cd:variable name='smallcaps' value='smallcaps'/>
- <cd:variable name='smaller' value='smaller'/>
- <cd:variable name='smallitalic' value='smallitalic'/>
- <cd:variable name='smallitalicbold' value='smallitalicbold'/>
- <cd:variable name='smallnormal' value='smallnormal'/>
- <cd:variable name='smallslanted' value='smallslanted'/>
- <cd:variable name='smallslantedbold' value='smallslantedbold'/>
- <cd:variable name='smalltype' value='smalltype'/>
- <cd:variable name='somewhere' value='somewhere'/>
- <cd:variable name='sorted' value='sorted'/>
- <cd:variable name='sorting' value='sorting'/>
- <cd:variable name='space' value='space'/>
- <cd:variable name='spacing' value='spacing'/>
- <cd:variable name='speech' value='speech'/>
- <cd:variable name='split' value='split'/>
- <cd:variable name='spot' value='spot'/>
- <cd:variable name='standard' value='standard'/>
- <cd:variable name='start' value='start'/>
- <cd:variable name='starter' value='starter'/>
- <cd:variable name='sticker' value='sticker'/>
- <cd:variable name='stop' value='stop'/>
- <cd:variable name='stopper' value='stopper'/>
- <cd:variable name='stretch' value='stretch'/>
- <cd:variable name='stretched' value='stretched'/>
- <cd:variable name='strict' value='strict'/>
- <cd:variable name='strong' value='strong'/>
- <cd:variable name='strut' value='strut'/>
- <cd:variable name='sub' value='sub'/>
- <cd:variable name='subbackward' value='subbackward'/>
- <cd:variable name='subformula' value='subformula'/>
- <cd:variable name='subforward' value='subforward'/>
- <cd:variable name='subject' value='subject'/>
- <cd:variable name='subpage' value='subpage'/>
- <cd:variable name='subs' value='subs'/>
- <cd:variable name='subsection' value='subsection'/>
- <cd:variable name='subsubject' value='subsubject'/>
- <cd:variable name='subsubsection' value='subsubsection'/>
- <cd:variable name='subsubsubject' value='subsubsubject'/>
- <cd:variable name='subsubsubsection' value='subsubsubsection'/>
- <cd:variable name='subsubsubsubject' value='subsubsubsubject'/>
- <cd:variable name='subsubsubsubsection' value='subsubsubsubsection'/>
- <cd:variable name='subsubsubsubsubject' value='subsubsubsubsubject'/>
- <cd:variable name='subsubsubsubsubsection' value='subsubsubsubsubsection'/>
- <cd:variable name='subsubsubsubsubsubject' value='subsubsubsubsubsubject'/>
- <cd:variable name='subsubsubsubsubsubsection' value='subsubsubsubsubsubsection'/>
- <cd:variable name='subsubsubsubsubsubsubject' value='subsubsubsubsubsubsubject'/>
- <cd:variable name='subsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubsection'/>
- <cd:variable name='subsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubsubject'/>
- <cd:variable name='subsubsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubsubsection'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubsubsubject'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubsubsubsection'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubsubsubsubject'/>
- <cd:variable name='sunday' value='sunday'/>
- <cd:variable name='support' value='support'/>
- <cd:variable name='sym' value='sym'/>
- <cd:variable name='symbol' value='symbol'/>
- <cd:variable name='synchronize' value='synchronize'/>
- <cd:variable name='synonym' value='synonym'/>
- <cd:variable name='system' value='system'/>
- <cd:variable name='table' value='table'/>
- <cd:variable name='tablehead' value='tablehead'/>
- <cd:variable name='tables' value='tables'/>
- <cd:variable name='tabletail' value='tabletail'/>
- <cd:variable name='tabulate' value='tabulate'/>
- <cd:variable name='tabulatehead' value='tabulatehead'/>
- <cd:variable name='tabulatetail' value='tabulatetail'/>
- <cd:variable name='tall' value='tall'/>
- <cd:variable name='teletype' value='teletype'/>
- <cd:variable name='temporary' value='temporary'/>
- <cd:variable name='test' value='test'/>
- <cd:variable name='text' value='text'/>
- <cd:variable name='textnote' value='textnote'/>
- <cd:variable name='three' value='three'/>
- <cd:variable name='thursday' value='thursday'/>
- <cd:variable name='tight' value='tight'/>
- <cd:variable name='title' value='title'/>
- <cd:variable name='toggle' value='wissel'/>
- <cd:variable name='tolerant' value='tolerant'/>
- <cd:variable name='top' value='top'/>
- <cd:variable name='tuesday' value='tuesday'/>
- <cd:variable name='two' value='two'/>
- <cd:variable name='txt' value='txt'/>
- <cd:variable name='type' value='type'/>
- <cd:variable name='typing' value='typing'/>
- <cd:variable name='unavailable' value='unavailable'/>
- <cd:variable name='underbar' value='underbar'/>
- <cd:variable name='underbars' value='underbars'/>
- <cd:variable name='understrike' value='understrike'/>
- <cd:variable name='understrikes' value='understrikes'/>
- <cd:variable name='unframed' value='unframed'/>
- <cd:variable name='unicode' value='unicode'/>
- <cd:variable name='unit' value='unit'/>
- <cd:variable name='units' value='units'/>
- <cd:variable name='unknown' value='unknown'/>
- <cd:variable name='unpacked' value='unpacked'/>
- <cd:variable name='up' value='up'/>
- <cd:variable name='url' value='url'/>
- <cd:variable name='used' value='used'/>
- <cd:variable name='value' value='value'/>
- <cd:variable name='vertical' value='vertical'/>
- <cd:variable name='very' value='very'/>
- <cd:variable name='verystrict' value='verystrict'/>
- <cd:variable name='verytolerant' value='verytolerant'/>
- <cd:variable name='vfenced' value='vfenced'/>
- <cd:variable name='vulgarfraction' value='vulgarfraction'/>
- <cd:variable name='weak' value='weak'/>
- <cd:variable name='wednesday' value='wednesday'/>
- <cd:variable name='week' value='week'/>
- <cd:variable name='weekday' value='weekday'/>
- <cd:variable name='white' value='white'/>
- <cd:variable name='wide' value='wide'/>
- <cd:variable name='width' value='width'/>
- <cd:variable name='word' value='word'/>
- <cd:variable name='words' value='words'/>
- <cd:variable name='xml' value='xml'/>
- <cd:variable name='year' value='year'/>
- <cd:variable name='yes' value='yes'/>
- </cd:variables>
-
- <!-- definitions for interface constants for language en -->
-
- <cd:constants>
- <cd:constant name='action' value='action'/>
- <cd:constant name='address' value='address'/>
- <cd:constant name='after' value='after'/>
- <cd:constant name='afterhead' value='afterhead'/>
- <cd:constant name='afterkey' value='afterkey'/>
- <cd:constant name='aftersection' value='aftersection'/>
- <cd:constant name='align' value='align'/>
- <cd:constant name='alignbottom' value='alignbottom'/>
- <cd:constant name='aligncharacter' value='aligncharacter'/>
- <cd:constant name='alignmentcharacter' value='alignmentcharacter'/>
- <cd:constant name='alignmentleftsample' value='alignmentleftsample'/>
- <cd:constant name='alignmentleftwidth' value='alignmentleftwidth'/>
- <cd:constant name='alignmentrightsample' value='alignmentrightsample'/>
- <cd:constant name='alignmentrightwidth' value='alignmentrightwidth'/>
- <cd:constant name='alignsymbol' value='alignsymbol'/>
- <cd:constant name='aligntitle' value='aligntitle'/>
- <cd:constant name='alternative' value='alternative'/>
- <cd:constant name='anchor' value='anchor'/>
- <cd:constant name='anchoring' value='anchoring'/>
- <cd:constant name='andtext' value='andtext'/>
- <cd:constant name='apa' value='apa'/>
- <cd:constant name='arguments' value='arguments'/>
- <cd:constant name='arrow' value='arrow'/>
- <cd:constant name='artauthor' value='artauthor'/>
- <cd:constant name='artauthoretaldisplay' value='artauthoretaldisplay'/>
- <cd:constant name='artauthoretallimit' value='artauthoretallimit'/>
- <cd:constant name='artauthoretaltext' value='artauthoretaltext'/>
- <cd:constant name='artoffset' value='artoffset'/>
- <cd:constant name='at' value='at'/>
- <cd:constant name='author' value='author'/>
- <cd:constant name='authorconversion' value='authorconversion'/>
- <cd:constant name='authoretaldisplay' value='authoretaldisplay'/>
- <cd:constant name='authoretallimit' value='authoretallimit'/>
- <cd:constant name='authoretaltext' value='authoretaltext'/>
- <cd:constant name='auto' value='auto'/>
- <cd:constant name='autocase' value='autocase'/>
- <cd:constant name='autofile' value='autofile'/>
- <cd:constant name='autofocus' value='autofocus'/>
- <cd:constant name='autohang' value='autohang'/>
- <cd:constant name='autostrut' value='autostrut'/>
- <cd:constant name='autowidth' value='autowidth'/>
- <cd:constant name='availableheight' value='availableheight'/>
- <cd:constant name='availablewidth' value='availablewidth'/>
- <cd:constant name='axis' value='axis'/>
- <cd:constant name='background' value='background'/>
- <cd:constant name='backgroundcolor' value='backgroundcolor'/>
- <cd:constant name='backgroundcorner' value='backgroundcorner'/>
- <cd:constant name='backgrounddepth' value='backgrounddepth'/>
- <cd:constant name='backgroundoffset' value='backgroundoffset'/>
- <cd:constant name='backgroundradius' value='backgroundradius'/>
- <cd:constant name='backgroundscreen' value='backgroundscreen'/>
- <cd:constant name='backreference' value='backreference'/>
- <cd:constant name='backspace' value='backspace'/>
- <cd:constant name='balance' value='balance'/>
- <cd:constant name='before' value='before'/>
- <cd:constant name='beforehead' value='beforehead'/>
- <cd:constant name='beforesection' value='beforesection'/>
- <cd:constant name='bet' value='bet'/>
- <cd:constant name='bidi' value='bidi'/>
- <cd:constant name='big' value='big'/>
- <cd:constant name='blank' value='blank'/>
- <cd:constant name='bleedoffset' value='bleedoffset'/>
- <cd:constant name='blockway' value='blockway'/>
- <cd:constant name='bodyfont' value='bodyfont'/>
- <cd:constant name='boffset' value='boffset'/>
- <cd:constant name='boldfeatures' value='boldfeatures'/>
- <cd:constant name='boldfont' value='boldfont'/>
- <cd:constant name='bolditalicfeatures' value='bolditalicfeatures'/>
- <cd:constant name='bolditalicfont' value='bolditalicfont'/>
- <cd:constant name='boldslantedfeatures' value='boldslantedfeatures'/>
- <cd:constant name='boldslantedfont' value='boldslantedfont'/>
- <cd:constant name='bookmark' value='bookmark'/>
- <cd:constant name='bottom' value='bottom'/>
- <cd:constant name='bottomafter' value='bottomafter'/>
- <cd:constant name='bottombefore' value='bottombefore'/>
- <cd:constant name='bottomcommand' value='bottomcommand'/>
- <cd:constant name='bottomdistance' value='bottomdistance'/>
- <cd:constant name='bottomframe' value='bottomframe'/>
- <cd:constant name='bottomoffset' value='bottomoffset'/>
- <cd:constant name='bottomspace' value='bottomspace'/>
- <cd:constant name='bottomstate' value='bottomstate'/>
- <cd:constant name='break' value='break'/>
- <cd:constant name='buffer' value='buffer'/>
- <cd:constant name='cache' value='cache'/>
- <cd:constant name='calculate' value='calculate'/>
- <cd:constant name='category' value='category'/>
- <cd:constant name='ccommand' value='ccommand'/>
- <cd:constant name='character' value='character'/>
- <cd:constant name='characters' value='characters'/>
- <cd:constant name='check' value='check'/>
- <cd:constant name='click' value='click'/>
- <cd:constant name='clickin' value='clickin'/>
- <cd:constant name='clickout' value='clickout'/>
- <cd:constant name='clipoffset' value='clipoffset'/>
- <cd:constant name='closeaction' value='closeaction'/>
- <cd:constant name='closecommand' value='closecommand'/>
- <cd:constant name='closepage' value='closepage'/>
- <cd:constant name='closepageaction' value='closepageaction'/>
- <cd:constant name='closesymbol' value='closesymbol'/>
- <cd:constant name='color' value='color'/>
- <cd:constant name='column' value='column'/>
- <cd:constant name='columndistance' value='columndistance'/>
- <cd:constant name='columns' value='columns'/>
- <cd:constant name='comma' value='comma'/>
- <cd:constant name='command' value='command'/>
- <cd:constant name='commandafter' value='commandafter'/>
- <cd:constant name='commandbefore' value='commandbefore'/>
- <cd:constant name='commands' value='commands'/>
- <cd:constant name='comment' value='comment'/>
- <cd:constant name='commentchar' value='commentchar'/>
- <cd:constant name='commentoffset' value='commentoffset'/>
- <cd:constant name='compact' value='compact'/>
- <cd:constant name='component' value='component'/>
- <cd:constant name='compoundhyphen' value='compoundhyphen'/>
- <cd:constant name='compress' value='compress'/>
- <cd:constant name='compressdistance' value='compressdistance'/>
- <cd:constant name='compressmethod' value='compressmethod'/>
- <cd:constant name='compressseparator' value='compressseparator'/>
- <cd:constant name='compressstopper' value='compressstopper'/>
- <cd:constant name='concerns' value='concerns'/>
- <cd:constant name='connector' value='connector'/>
- <cd:constant name='continue' value='continue'/>
- <cd:constant name='contrastcolor' value='contrastcolor'/>
- <cd:constant name='controls' value='controls'/>
- <cd:constant name='conversion' value='conversion'/>
- <cd:constant name='convertfile' value='convertfile'/>
- <cd:constant name='copies' value='copies'/>
- <cd:constant name='corner' value='corner'/>
- <cd:constant name='coupling' value='coupling'/>
- <cd:constant name='couplingway' value='couplingway'/>
- <cd:constant name='criterium' value='criterium'/>
- <cd:constant name='cropoffset' value='cropoffset'/>
- <cd:constant name='crossreference' value='crossreference'/>
- <cd:constant name='cssfile' value='cssfile'/>
- <cd:constant name='current' value='current'/>
- <cd:constant name='cutspace' value='cutspace'/>
- <cd:constant name='dash' value='dash'/>
- <cd:constant name='dat' value='dat'/>
- <cd:constant name='database' value='database'/>
- <cd:constant name='dataset' value='dataset'/>
- <cd:constant name='date' value='date'/>
- <cd:constant name='deepnumbercommand' value='deepnumbercommand'/>
- <cd:constant name='deeptextcommand' value='deeptextcommand'/>
- <cd:constant name='default' value='default'/>
- <cd:constant name='define' value='define'/>
- <cd:constant name='delay' value='delay'/>
- <cd:constant name='depth' value='depth'/>
- <cd:constant name='depthcorrection' value='depthcorrection'/>
- <cd:constant name='direction' value='direction'/>
- <cd:constant name='directory' value='directory'/>
- <cd:constant name='display' value='display'/>
- <cd:constant name='displaythreshold' value='displaythreshold'/>
- <cd:constant name='distance' value='distance'/>
- <cd:constant name='domain' value='domain'/>
- <cd:constant name='dot' value='dot'/>
- <cd:constant name='doublesided' value='doublesided'/>
- <cd:constant name='down' value='down'/>
- <cd:constant name='dummy' value='dummy'/>
- <cd:constant name='dx' value='dx'/>
- <cd:constant name='dy' value='dy'/>
- <cd:constant name='edge' value='edge'/>
- <cd:constant name='edgedistance' value='edgedistance'/>
- <cd:constant name='editor' value='editor'/>
- <cd:constant name='editoretaldisplay' value='editoretaldisplay'/>
- <cd:constant name='editoretallimit' value='editoretallimit'/>
- <cd:constant name='editoretaltext' value='editoretaltext'/>
- <cd:constant name='empty' value='empty'/>
- <cd:constant name='entities' value='entities'/>
- <cd:constant name='entries' value='entries'/>
- <cd:constant name='equalheight' value='equalheight'/>
- <cd:constant name='equalwidth' value='equalwidth'/>
- <cd:constant name='escape' value='escape'/>
- <cd:constant name='etaldisplay' value='etaldisplay'/>
- <cd:constant name='etallimit' value='etallimit'/>
- <cd:constant name='etaloption' value='etaloption'/>
- <cd:constant name='etaltext' value='etaltext'/>
- <cd:constant name='evenmargin' value='evenmargin'/>
- <cd:constant name='exact' value='exact'/>
- <cd:constant name='exitoffset' value='exitoffset'/>
- <cd:constant name='expansion' value='expansion'/>
- <cd:constant name='export' value='export'/>
- <cd:constant name='extras' value='extras'/>
- <cd:constant name='factor' value='factor'/>
- <cd:constant name='fallback' value='fallback'/>
- <cd:constant name='fallbacks' value='fallbacks'/>
- <cd:constant name='family' value='family'/>
- <cd:constant name='features' value='features'/>
- <cd:constant name='featureset' value='featureset'/>
- <cd:constant name='fences' value='fences'/>
- <cd:constant name='field' value='field'/>
- <cd:constant name='fieldbackgroundcolor' value='fieldbackgroundcolor'/>
- <cd:constant name='fieldframecolor' value='fieldframecolor'/>
- <cd:constant name='fieldlayer' value='fieldlayer'/>
- <cd:constant name='fieldoffset' value='fieldoffset'/>
- <cd:constant name='file' value='file'/>
- <cd:constant name='filler' value='filler'/>
- <cd:constant name='filter' value='filter'/>
- <cd:constant name='filtercommand' value='filtercommand'/>
- <cd:constant name='finalnamesep' value='finalnamesep'/>
- <cd:constant name='finalpagesep' value='finalpagesep'/>
- <cd:constant name='finalpubsep' value='finalpubsep'/>
- <cd:constant name='first' value='first'/>
- <cd:constant name='firstnamesep' value='firstnamesep'/>
- <cd:constant name='firstpage' value='firstpage'/>
- <cd:constant name='focus' value='focus'/>
- <cd:constant name='focusin' value='focusin'/>
- <cd:constant name='focusoffset' value='focusoffset'/>
- <cd:constant name='focusout' value='focusout'/>
- <cd:constant name='font' value='font'/>
- <cd:constant name='footer' value='footer'/>
- <cd:constant name='footerdistance' value='footerdistance'/>
- <cd:constant name='footerstate' value='footerstate'/>
- <cd:constant name='force' value='force'/>
- <cd:constant name='foregroundcolor' value='foregroundcolor'/>
- <cd:constant name='foregroundstyle' value='foregroundstyle'/>
- <cd:constant name='format' value='format'/>
- <cd:constant name='fractions' value='fractions'/>
- <cd:constant name='frame' value='frame'/>
- <cd:constant name='framecolor' value='framecolor'/>
- <cd:constant name='framecorner' value='framecorner'/>
- <cd:constant name='framedepth' value='framedepth'/>
- <cd:constant name='frameoffset' value='frameoffset'/>
- <cd:constant name='frameradius' value='frameradius'/>
- <cd:constant name='frames' value='frames'/>
- <cd:constant name='freeregion' value='freeregion'/>
- <cd:constant name='from' value='from'/>
- <cd:constant name='functioncolor' value='functioncolor'/>
- <cd:constant name='functionstyle' value='functionstyle'/>
- <cd:constant name='get' value='get'/>
- <cd:constant name='global' value='global'/>
- <cd:constant name='goodies' value='goodies'/>
- <cd:constant name='grid' value='grid'/>
- <cd:constant name='group' value='group'/>
- <cd:constant name='groupsuffix' value='groupsuffix'/>
- <cd:constant name='hang' value='hang'/>
- <cd:constant name='hcompact' value='hcompact'/>
- <cd:constant name='headalign' value='headalign'/>
- <cd:constant name='headcolor' value='headcolor'/>
- <cd:constant name='headcommand' value='headcommand'/>
- <cd:constant name='headconversion' value='headconversion'/>
- <cd:constant name='header' value='header'/>
- <cd:constant name='headerdistance' value='headerdistance'/>
- <cd:constant name='headerstate' value='headerstate'/>
- <cd:constant name='headlabel' value='headlabel'/>
- <cd:constant name='headnumber' value='headnumber'/>
- <cd:constant name='headseparator' value='headseparator'/>
- <cd:constant name='headstyle' value='headstyle'/>
- <cd:constant name='height' value='height'/>
- <cd:constant name='hfactor' value='hfactor'/>
- <cd:constant name='hfil' value='hfil'/>
- <cd:constant name='hidenumber' value='hidenumber'/>
- <cd:constant name='hoffset' value='hoffset'/>
- <cd:constant name='horizontal' value='horizontal'/>
- <cd:constant name='horoffset' value='horoffset'/>
- <cd:constant name='hyphen' value='hyphen'/>
- <cd:constant name='hyphens' value='hyphens'/>
- <cd:constant name='icommand' value='icommand'/>
- <cd:constant name='ignore' value='ignore'/>
- <cd:constant name='in' value='in'/>
- <cd:constant name='inbetween' value='inbetween'/>
- <cd:constant name='increment' value='increment'/>
- <cd:constant name='incrementnumber' value='incrementnumber'/>
- <cd:constant name='indenting' value='indenting'/>
- <cd:constant name='indentlist' value='indentlist'/>
- <cd:constant name='indentnext' value='indentnext'/>
- <cd:constant name='index' value='index'/>
- <cd:constant name='indicator' value='indicator'/>
- <cd:constant name='initialsep' value='initialsep'/>
- <cd:constant name='inlinethreshold' value='inlinethreshold'/>
- <cd:constant name='inner' value='inner'/>
- <cd:constant name='innermargin' value='innermargin'/>
- <cd:constant name='inputfile' value='inputfile'/>
- <cd:constant name='insidesection' value='insidesection'/>
- <cd:constant name='instance' value='instance'/>
- <cd:constant name='intent' value='intent'/>
- <cd:constant name='interaction' value='interaction'/>
- <cd:constant name='interlinespace' value='interlinespace'/>
- <cd:constant name='internalgrid' value='internalgrid'/>
- <cd:constant name='italicfeatures' value='italicfeatures'/>
- <cd:constant name='italicfont' value='italicfont'/>
- <cd:constant name='itemalign' value='itemalign'/>
- <cd:constant name='items' value='items'/>
- <cd:constant name='joiners' value='joiners'/>
- <cd:constant name='journalconversion' value='journalconversion'/>
- <cd:constant name='juniorsep' value='juniorsep'/>
- <cd:constant name='keeptogether' value='keeptogether'/>
- <cd:constant name='ken' value='ken'/>
- <cd:constant name='keyexpansion' value='keyexpansion'/>
- <cd:constant name='keys' value='keys'/>
- <cd:constant name='keyword' value='keyword'/>
- <cd:constant name='label' value='label'/>
- <cd:constant name='labelalternative' value='labelalternative'/>
- <cd:constant name='labelcolor' value='labelcolor'/>
- <cd:constant name='labeloffset' value='labeloffset'/>
- <cd:constant name='labelstyle' value='labelstyle'/>
- <cd:constant name='language' value='language'/>
- <cd:constant name='last' value='last'/>
- <cd:constant name='lastnamesep' value='lastnamesep'/>
- <cd:constant name='lastpage' value='lastpage'/>
- <cd:constant name='lastpagesep' value='lastpagesep'/>
- <cd:constant name='lastpubsep' value='lastpubsep'/>
- <cd:constant name='layout' value='layout'/>
- <cd:constant name='left' value='left'/>
- <cd:constant name='leftcolor' value='leftcolor'/>
- <cd:constant name='leftcompoundhyphen' value='leftcompoundhyphen'/>
- <cd:constant name='leftedge' value='leftedge'/>
- <cd:constant name='leftedgedistance' value='leftedgedistance'/>
- <cd:constant name='leftframe' value='leftframe'/>
- <cd:constant name='lefthyphen' value='lefthyphen'/>
- <cd:constant name='leftmargin' value='leftmargin'/>
- <cd:constant name='leftmargindistance' value='leftmargindistance'/>
- <cd:constant name='leftoffset' value='leftoffset'/>
- <cd:constant name='leftquotation' value='leftquotation'/>
- <cd:constant name='leftquote' value='leftquote'/>
- <cd:constant name='leftsample' value='leftsample'/>
- <cd:constant name='leftsentence' value='leftsentence'/>
- <cd:constant name='leftspeech' value='leftspeech'/>
- <cd:constant name='leftstyle' value='leftstyle'/>
- <cd:constant name='leftsubsentence' value='leftsubsentence'/>
- <cd:constant name='lefttext' value='lefttext'/>
- <cd:constant name='leftwidth' value='leftwidth'/>
- <cd:constant name='leftwords' value='leftwords'/>
- <cd:constant name='less' value='less'/>
- <cd:constant name='level' value='level'/>
- <cd:constant name='levels' value='levels'/>
- <cd:constant name='limittext' value='limittext'/>
- <cd:constant name='line' value='line'/>
- <cd:constant name='linecorrection' value='linecorrection'/>
- <cd:constant name='linedirection' value='linedirection'/>
- <cd:constant name='lines' value='lines'/>
- <cd:constant name='list' value='list'/>
- <cd:constant name='listtext' value='listtext'/>
- <cd:constant name='local' value='local'/>
- <cd:constant name='location' value='location'/>
- <cd:constant name='loffset' value='loffset'/>
- <cd:constant name='logo' value='logo'/>
- <cd:constant name='logos' value='logos'/>
- <cd:constant name='marcolor' value='marcolor'/>
- <cd:constant name='margin' value='margin'/>
- <cd:constant name='margindistance' value='margindistance'/>
- <cd:constant name='marginedge' value='marginedge'/>
- <cd:constant name='marginedgetext' value='marginedgetext'/>
- <cd:constant name='margintext' value='margintext'/>
- <cd:constant name='mark' value='mark'/>
- <cd:constant name='marking' value='marking'/>
- <cd:constant name='marstyle' value='marstyle'/>
- <cd:constant name='mask' value='mask'/>
- <cd:constant name='mathclass' value='mathclass'/>
- <cd:constant name='mathlimits' value='mathlimits'/>
- <cd:constant name='mathstyle' value='mathstyle'/>
- <cd:constant name='max' value='max'/>
- <cd:constant name='maxdepth' value='maxdepth'/>
- <cd:constant name='maxheight' value='maxheight'/>
- <cd:constant name='maxwidth' value='maxwidth'/>
- <cd:constant name='maybeyear' value='maybeyear'/>
- <cd:constant name='menu' value='menu'/>
- <cd:constant name='method' value='method'/>
- <cd:constant name='middle' value='middle'/>
- <cd:constant name='middlecolor' value='middlecolor'/>
- <cd:constant name='middlecommand' value='middlecommand'/>
- <cd:constant name='middlespeech' value='middlespeech'/>
- <cd:constant name='middlestyle' value='middlestyle'/>
- <cd:constant name='middletext' value='middletext'/>
- <cd:constant name='middlewidth' value='middlewidth'/>
- <cd:constant name='midsentence' value='midsentence'/>
- <cd:constant name='min' value='min'/>
- <cd:constant name='mindepth' value='mindepth'/>
- <cd:constant name='minheight' value='minheight'/>
- <cd:constant name='minwidth' value='minwidth'/>
- <cd:constant name='moffset' value='moffset'/>
- <cd:constant name='monthconversion' value='monthconversion'/>
- <cd:constant name='more' value='more'/>
- <cd:constant name='mpdepth' value='mpdepth'/>
- <cd:constant name='mpheight' value='mpheight'/>
- <cd:constant name='mpoffset' value='mpoffset'/>
- <cd:constant name='mpwidth' value='mpwidth'/>
- <cd:constant name='n' value='n'/>
- <cd:constant name='name' value='name'/>
- <cd:constant name='namesep' value='namesep'/>
- <cd:constant name='nbottom' value='nbottom'/>
- <cd:constant name='nc' value='nc'/>
- <cd:constant name='next' value='next'/>
- <cd:constant name='nextleft' value='nextleft'/>
- <cd:constant name='nextleftquotation' value='nextleftquotation'/>
- <cd:constant name='nextright' value='nextright'/>
- <cd:constant name='nextrightquotation' value='nextrightquotation'/>
- <cd:constant name='nl' value='nl'/>
- <cd:constant name='nleft' value='nleft'/>
- <cd:constant name='nlines' value='nlines'/>
- <cd:constant name='norm' value='norm'/>
- <cd:constant name='note' value='note'/>
- <cd:constant name='notes' value='notes'/>
- <cd:constant name='nr' value='nr'/>
- <cd:constant name='nright' value='nright'/>
- <cd:constant name='ntop' value='ntop'/>
- <cd:constant name='number' value='number'/>
- <cd:constant name='numberalign' value='numberalign'/>
- <cd:constant name='numbercolor' value='numbercolor'/>
- <cd:constant name='numbercommand' value='numbercommand'/>
- <cd:constant name='numberconversion' value='numberconversion'/>
- <cd:constant name='numberconversionset' value='numberconversionset'/>
- <cd:constant name='numberdistance' value='numberdistance'/>
- <cd:constant name='numbering' value='numbering'/>
- <cd:constant name='numberorder' value='numberorder'/>
- <cd:constant name='numberprefix' value='numberprefix'/>
- <cd:constant name='numbersegments' value='numbersegments'/>
- <cd:constant name='numberseparator' value='numberseparator'/>
- <cd:constant name='numberseparatorset' value='numberseparatorset'/>
- <cd:constant name='numberset' value='numberset'/>
- <cd:constant name='numberstarter' value='numberstarter'/>
- <cd:constant name='numberstopper' value='numberstopper'/>
- <cd:constant name='numberstrut' value='numberstrut'/>
- <cd:constant name='numberstyle' value='numberstyle'/>
- <cd:constant name='numberwidth' value='numberwidth'/>
- <cd:constant name='nx' value='nx'/>
- <cd:constant name='ny' value='ny'/>
- <cd:constant name='object' value='object'/>
- <cd:constant name='obstruction' value='obstruction'/>
- <cd:constant name='oddmargin' value='oddmargin'/>
- <cd:constant name='offset' value='offset'/>
- <cd:constant name='openaction' value='openaction'/>
- <cd:constant name='openpage' value='openpage'/>
- <cd:constant name='openpageaction' value='openpageaction'/>
- <cd:constant name='openup' value='openup'/>
- <cd:constant name='opticalsize' value='opticalsize'/>
- <cd:constant name='option' value='option'/>
- <cd:constant name='order' value='order'/>
- <cd:constant name='orientation' value='orientation'/>
- <cd:constant name='otherstext' value='otherstext'/>
- <cd:constant name='outermargin' value='outermargin'/>
- <cd:constant name='overprint' value='overprint'/>
- <cd:constant name='ownerpassword' value='ownerpassword'/>
- <cd:constant name='ownnumber' value='ownnumber'/>
- <cd:constant name='packcriterium' value='packcriterium'/>
- <cd:constant name='page' value='page'/>
- <cd:constant name='pageboundaries' value='pageboundaries'/>
- <cd:constant name='pagecolor' value='pagecolor'/>
- <cd:constant name='pagecolormodel' value='pagecolormodel'/>
- <cd:constant name='pagecommand' value='pagecommand'/>
- <cd:constant name='pageconnector' value='pageconnector'/>
- <cd:constant name='pageconversion' value='pageconversion'/>
- <cd:constant name='pageconversionset' value='pageconversionset'/>
- <cd:constant name='pageleft' value='pageleft'/>
- <cd:constant name='pagemethod' value='pagemethod'/>
- <cd:constant name='pagenumber' value='pagenumber'/>
- <cd:constant name='pageprefix' value='pageprefix'/>
- <cd:constant name='pageprefixconnector' value='pageprefixconnector'/>
- <cd:constant name='pageprefixconversion' value='pageprefixconversion'/>
- <cd:constant name='pageprefixconversionset' value='pageprefixconversionset'/>
- <cd:constant name='pageprefixsegments' value='pageprefixsegments'/>
- <cd:constant name='pageprefixseparatorset' value='pageprefixseparatorset'/>
- <cd:constant name='pageprefixset' value='pageprefixset'/>
- <cd:constant name='pageprefixstarter' value='pageprefixstarter'/>
- <cd:constant name='pageprefixstopper' value='pageprefixstopper'/>
- <cd:constant name='pageright' value='pageright'/>
- <cd:constant name='pagesegments' value='pagesegments'/>
- <cd:constant name='pagesep' value='pagesep'/>
- <cd:constant name='pageseparatorset' value='pageseparatorset'/>
- <cd:constant name='pageset' value='pageset'/>
- <cd:constant name='pagestarter' value='pagestarter'/>
- <cd:constant name='pagestate' value='pagestate'/>
- <cd:constant name='pagestopper' value='pagestopper'/>
- <cd:constant name='pagestyle' value='pagestyle'/>
- <cd:constant name='palet' value='palet'/>
- <cd:constant name='paper' value='paper'/>
- <cd:constant name='paragraph' value='paragraph'/>
- <cd:constant name='period' value='period'/>
- <cd:constant name='place' value='place'/>
- <cd:constant name='placehead' value='placehead'/>
- <cd:constant name='placeholder' value='placeholder'/>
- <cd:constant name='placestopper' value='placestopper'/>
- <cd:constant name='position' value='position'/>
- <cd:constant name='prefix' value='prefix'/>
- <cd:constant name='prefixconnector' value='prefixconnector'/>
- <cd:constant name='prefixconversion' value='prefixconversion'/>
- <cd:constant name='prefixconversionset' value='prefixconversionset'/>
- <cd:constant name='prefixsegments' value='prefixsegments'/>
- <cd:constant name='prefixseparatorset' value='prefixseparatorset'/>
- <cd:constant name='prefixset' value='prefixset'/>
- <cd:constant name='prefixstarter' value='prefixstarter'/>
- <cd:constant name='prefixstopper' value='prefixstopper'/>
- <cd:constant name='preset' value='preset'/>
- <cd:constant name='preview' value='preview'/>
- <cd:constant name='previous' value='previous'/>
- <cd:constant name='previousnumber' value='previousnumber'/>
- <cd:constant name='print' value='print'/>
- <cd:constant name='printable' value='printable'/>
- <cd:constant name='process' value='process'/>
- <cd:constant name='profile' value='profile'/>
- <cd:constant name='properties' value='properties'/>
- <cd:constant name='pubsep' value='pubsep'/>
- <cd:constant name='quotechar' value='quotechar'/>
- <cd:constant name='radius' value='radius'/>
- <cd:constant name='random' value='random'/>
- <cd:constant name='range' value='range'/>
- <cd:constant name='reduction' value='reduction'/>
- <cd:constant name='ref' value='ref'/>
- <cd:constant name='refcommand' value='refcommand'/>
- <cd:constant name='reference' value='reference'/>
- <cd:constant name='referencemethod' value='referencemethod'/>
- <cd:constant name='referenceprefix' value='referenceprefix'/>
- <cd:constant name='referencetext' value='referencetext'/>
- <cd:constant name='referencing' value='referencing'/>
- <cd:constant name='region' value='region'/>
- <cd:constant name='regionin' value='regionin'/>
- <cd:constant name='regionout' value='regionout'/>
- <cd:constant name='register' value='register'/>
- <cd:constant name='regularfeatures' value='regularfeatures'/>
- <cd:constant name='regularfont' value='regularfont'/>
- <cd:constant name='renderingsetup' value='renderingsetup'/>
- <cd:constant name='repeat' value='repeat'/>
- <cd:constant name='reset' value='reset'/>
- <cd:constant name='resetnumber' value='resetnumber'/>
- <cd:constant name='resolution' value='resolution'/>
- <cd:constant name='resources' value='resources'/>
- <cd:constant name='reverse' value='reverse'/>
- <cd:constant name='right' value='right'/>
- <cd:constant name='rightchars' value='rightchars'/>
- <cd:constant name='rightcolor' value='rightcolor'/>
- <cd:constant name='rightcompoundhyphen' value='rightcompoundhyphen'/>
- <cd:constant name='rightedge' value='rightedge'/>
- <cd:constant name='rightedgedistance' value='rightedgedistance'/>
- <cd:constant name='rightframe' value='rightframe'/>
- <cd:constant name='righthyphen' value='righthyphen'/>
- <cd:constant name='rightmargin' value='rightmargin'/>
- <cd:constant name='rightmargindistance' value='rightmargindistance'/>
- <cd:constant name='rightoffset' value='rightoffset'/>
- <cd:constant name='rightquotation' value='rightquotation'/>
- <cd:constant name='rightquote' value='rightquote'/>
- <cd:constant name='rightsample' value='rightsample'/>
- <cd:constant name='rightsentence' value='rightsentence'/>
- <cd:constant name='rightspeech' value='rightspeech'/>
- <cd:constant name='rightstyle' value='rightstyle'/>
- <cd:constant name='rightsubsentence' value='rightsubsentence'/>
- <cd:constant name='righttext' value='righttext'/>
- <cd:constant name='rightwidth' value='rightwidth'/>
- <cd:constant name='rightwords' value='rightwords'/>
- <cd:constant name='roffset' value='roffset'/>
- <cd:constant name='rotation' value='rotation'/>
- <cd:constant name='rule' value='rule'/>
- <cd:constant name='rulecolor' value='rulecolor'/>
- <cd:constant name='rulecommand' value='rulecommand'/>
- <cd:constant name='rulethickness' value='rulethickness'/>
- <cd:constant name='samepage' value='samepage'/>
- <cd:constant name='sample' value='sample'/>
- <cd:constant name='samplesize' value='samplesize'/>
- <cd:constant name='saveinlist' value='saveinlist'/>
- <cd:constant name='scale' value='scale'/>
- <cd:constant name='scope' value='scope'/>
- <cd:constant name='screen' value='screen'/>
- <cd:constant name='section' value='section'/>
- <cd:constant name='sectionblock' value='sectionblock'/>
- <cd:constant name='sectionconversion' value='sectionconversion'/>
- <cd:constant name='sectionconversionset' value='sectionconversionset'/>
- <cd:constant name='sectionnumber' value='sectionnumber'/>
- <cd:constant name='sectionresetset' value='sectionresetset'/>
- <cd:constant name='sectionsegments' value='sectionsegments'/>
- <cd:constant name='sectionseparatorset' value='sectionseparatorset'/>
- <cd:constant name='sectionset' value='sectionset'/>
- <cd:constant name='sectionstarter' value='sectionstarter'/>
- <cd:constant name='sectionstopper' value='sectionstopper'/>
- <cd:constant name='separator' value='separator'/>
- <cd:constant name='separatorcolor' value='separatorcolor'/>
- <cd:constant name='separatorstyle' value='separatorstyle'/>
- <cd:constant name='set' value='set'/>
- <cd:constant name='setups' value='setups'/>
- <cd:constant name='shrink' value='shrink'/>
- <cd:constant name='side' value='side'/>
- <cd:constant name='sidealign' value='sidealign'/>
- <cd:constant name='sidemethod' value='sidemethod'/>
- <cd:constant name='sidespaceafter' value='sidespaceafter'/>
- <cd:constant name='sidespacebefore' value='sidespacebefore'/>
- <cd:constant name='sidespaceinbetween' value='sidespaceinbetween'/>
- <cd:constant name='sidethreshold' value='sidethreshold'/>
- <cd:constant name='sign' value='sign'/>
- <cd:constant name='simplecommand' value='simplecommand'/>
- <cd:constant name='size' value='size'/>
- <cd:constant name='slantedfeatures' value='slantedfeatures'/>
- <cd:constant name='slantedfont' value='slantedfont'/>
- <cd:constant name='small' value='small'/>
- <cd:constant name='smallcapsfeatures' value='smallcapsfeatures'/>
- <cd:constant name='smallcapsfont' value='smallcapsfont'/>
- <cd:constant name='solution' value='solution'/>
- <cd:constant name='sort' value='sort'/>
- <cd:constant name='sorttype' value='sorttype'/>
- <cd:constant name='source' value='source'/>
- <cd:constant name='space' value='space'/>
- <cd:constant name='spaceafter' value='spaceafter'/>
- <cd:constant name='spaceafterside' value='spaceafterside'/>
- <cd:constant name='spacebefore' value='spacebefore'/>
- <cd:constant name='spacebeforeside' value='spacebeforeside'/>
- <cd:constant name='spaceinbetween' value='spaceinbetween'/>
- <cd:constant name='spacing' value='spacing'/>
- <cd:constant name='specification' value='specification'/>
- <cd:constant name='split' value='split'/>
- <cd:constant name='splitcolor' value='splitcolor'/>
- <cd:constant name='splitmethod' value='splitmethod'/>
- <cd:constant name='splitoffset' value='splitoffset'/>
- <cd:constant name='spot' value='spot'/>
- <cd:constant name='stack' value='stack'/>
- <cd:constant name='stackname' value='stackname'/>
- <cd:constant name='start' value='start'/>
- <cd:constant name='starter' value='starter'/>
- <cd:constant name='state' value='state'/>
- <cd:constant name='step' value='step'/>
- <cd:constant name='stop' value='stop'/>
- <cd:constant name='stopper' value='stopper'/>
- <cd:constant name='stretch' value='stretch'/>
- <cd:constant name='strip' value='strip'/>
- <cd:constant name='strut' value='strut'/>
- <cd:constant name='style' value='style'/>
- <cd:constant name='stylealternative' value='stylealternative'/>
- <cd:constant name='sub' value='sub'/>
- <cd:constant name='subtitle' value='subtitle'/>
- <cd:constant name='suffix' value='suffix'/>
- <cd:constant name='suffixseparator' value='suffixseparator'/>
- <cd:constant name='suffixstopper' value='suffixstopper'/>
- <cd:constant name='surnamefirstnamesep' value='surnamefirstnamesep'/>
- <cd:constant name='surnameinitialsep' value='surnameinitialsep'/>
- <cd:constant name='surnamesep' value='surnamesep'/>
- <cd:constant name='svgstyle' value='svgstyle'/>
- <cd:constant name='sx' value='sx'/>
- <cd:constant name='sy' value='sy'/>
- <cd:constant name='symalign' value='symalign'/>
- <cd:constant name='symbol' value='symbol'/>
- <cd:constant name='symbolcommand' value='symbolcommand'/>
- <cd:constant name='symbolset' value='symbolset'/>
- <cd:constant name='symcolor' value='symcolor'/>
- <cd:constant name='symstyle' value='symstyle'/>
- <cd:constant name='synonym' value='synonym'/>
- <cd:constant name='synonymcolor' value='synonymcolor'/>
- <cd:constant name='synonymcommand' value='synonymcommand'/>
- <cd:constant name='synonymstyle' value='synonymstyle'/>
- <cd:constant name='tab' value='tab'/>
- <cd:constant name='text' value='text'/>
- <cd:constant name='textalign' value='textalign'/>
- <cd:constant name='textcolor' value='textcolor'/>
- <cd:constant name='textcommand' value='textcommand'/>
- <cd:constant name='textdistance' value='textdistance'/>
- <cd:constant name='textheight' value='textheight'/>
- <cd:constant name='textlayer' value='textlayer'/>
- <cd:constant name='textmargin' value='textmargin'/>
- <cd:constant name='textmethod' value='textmethod'/>
- <cd:constant name='textseparator' value='textseparator'/>
- <cd:constant name='textsize' value='textsize'/>
- <cd:constant name='textstate' value='textstate'/>
- <cd:constant name='textstyle' value='textstyle'/>
- <cd:constant name='textwidth' value='textwidth'/>
- <cd:constant name='threshold' value='threshold'/>
- <cd:constant name='time' value='time'/>
- <cd:constant name='title' value='title'/>
- <cd:constant name='titlecolor' value='titlecolor'/>
- <cd:constant name='titlecommand' value='titlecommand'/>
- <cd:constant name='titledistance' value='titledistance'/>
- <cd:constant name='titleleft' value='titleleft'/>
- <cd:constant name='titleright' value='titleright'/>
- <cd:constant name='titlestrut' value='titlestrut'/>
- <cd:constant name='titlestyle' value='titlestyle'/>
- <cd:constant name='to' value='to'/>
- <cd:constant name='toffset' value='toffset'/>
- <cd:constant name='tolerance' value='tolerance'/>
- <cd:constant name='top' value='top'/>
- <cd:constant name='topcommand' value='topcommand'/>
- <cd:constant name='topdistance' value='topdistance'/>
- <cd:constant name='topframe' value='topframe'/>
- <cd:constant name='topoffset' value='topoffset'/>
- <cd:constant name='topspace' value='topspace'/>
- <cd:constant name='topstate' value='topstate'/>
- <cd:constant name='totalnumber' value='totalnumber'/>
- <cd:constant name='transform' value='transform'/>
- <cd:constant name='translate' value='translate'/>
- <cd:constant name='trimoffset' value='trimoffset'/>
- <cd:constant name='type' value='type'/>
- <cd:constant name='unit' value='unit'/>
- <cd:constant name='unknownreference' value='unknownreference'/>
- <cd:constant name='up' value='up'/>
- <cd:constant name='urlalternative' value='urlalternative'/>
- <cd:constant name='urlspace' value='urlspace'/>
- <cd:constant name='userpassword' value='userpassword'/>
- <cd:constant name='validate' value='validate'/>
- <cd:constant name='values' value='values'/>
- <cd:constant name='vcommand' value='vcommand'/>
- <cd:constant name='vcompact' value='vcompact'/>
- <cd:constant name='vector' value='vector'/>
- <cd:constant name='veroffset' value='veroffset'/>
- <cd:constant name='vertical' value='vertical'/>
- <cd:constant name='vfactor' value='vfactor'/>
- <cd:constant name='vfil' value='vfil'/>
- <cd:constant name='viewerprefix' value='viewerprefix'/>
- <cd:constant name='voffset' value='voffset'/>
- <cd:constant name='vonsep' value='vonsep'/>
- <cd:constant name='way' value='way'/>
- <cd:constant name='wfactor' value='wfactor'/>
- <cd:constant name='white' value='white'/>
- <cd:constant name='width' value='width'/>
- <cd:constant name='words' value='words'/>
- <cd:constant name='xanchor' value='xanchor'/>
- <cd:constant name='xfactor' value='xfactor'/>
- <cd:constant name='xhtml' value='xhtml'/>
- <cd:constant name='xmax' value='xmax'/>
- <cd:constant name='xmlsetup' value='xmlsetup'/>
- <cd:constant name='xoffset' value='xoffset'/>
- <cd:constant name='xscale' value='xscale'/>
- <cd:constant name='xstep' value='xstep'/>
- <cd:constant name='yanchor' value='yanchor'/>
- <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:constants>
-
- <!-- definitions for interface elements for language en -->
-
- <cd:elements>
- <cd:element name='answerlines' value='answerlines'/>
- <cd:element name='answerspace' value='answerspace'/>
- <cd:element name='begin' value='begin'/>
- <cd:element name='complete' value='complete'/>
- <cd:element name='coupled' value='coupled'/>
- <cd:element name='currentlocal' value='currentlocal'/>
- <cd:element name='end' value='end'/>
- <cd:element name='endsetup' value=''/>
- <cd:element name='get' value='get'/>
- <cd:element name='increment' value='increment'/>
- <cd:element name='list' value='list'/>
- <cd:element name='listof' value='listof'/>
- <cd:element name='load' value='load'/>
- <cd:element name='local' value='local'/>
- <cd:element name='makeup' value='makeup'/>
- <cd:element name='next' value='next'/>
- <cd:element name='place' value='place'/>
- <cd:element name='previous' value='previous'/>
- <cd:element name='previouslocal' value='previouslocal'/>
- <cd:element name='reserve' value='reserve'/>
- <cd:element name='see' value='see'/>
- <cd:element name='setup' value='setup'/>
- <cd:element name='start' value='start'/>
- <cd:element name='stop' value='stop'/>
- <cd:element name='text' value='text'/>
- <cd:element name='type' value='type'/>
- </cd:elements>
-
- <!-- definitions for interface commands for language en -->
-
- <cd:commands>
- <cd:command name='Character' value='Character'/>
- <cd:command name='Characters' value='Characters'/>
- <cd:command name='MONTH' value='MONTH'/>
- <cd:command name='Numbers' value='Numbers'/>
- <cd:command name='Romannumerals' value='Romannumerals'/>
- <cd:command name='SmallCapped' value='Cap'/>
- <cd:command name='SmallCaps' value='Caps'/>
- <cd:command name='WEEKDAY' value='WEEKDAY'/>
- <cd:command name='WORD' value='WORD'/>
- <cd:command name='WORDS' value='WORDS'/>
- <cd:command name='Word' value='Word'/>
- <cd:command name='Words' value='Words'/>
- <cd:command name='about' value='about'/>
- <cd:command name='adaptfontfeature' value='adaptfontfeature'/>
- <cd:command name='adaptlayout' value='adaptlayout'/>
- <cd:command name='addfeature' value='addfeature'/>
- <cd:command name='alignbottom' value='alignbottom'/>
- <cd:command name='aligned' value='aligned'/>
- <cd:command name='alignedbox' value='alignedbox'/>
- <cd:command name='alignedline' value='alignedline'/>
- <cd:command name='alignhere' value='alignhere'/>
- <cd:command name='alignment' value='alignment'/>
- <cd:command name='alignmentcharacter' value='alignmentcharacter'/>
- <cd:command name='applytocharacters' value='applytocharacters'/>
- <cd:command name='applytofirstcharacter' value='applytofirstcharacter'/>
- <cd:command name='arg' value='arg'/>
- <cd:command name='at' value='at'/>
- <cd:command name='atleftmargin' value='atleftmargin'/>
- <cd:command name='atpage' value='atpage'/>
- <cd:command name='atrightmargin' value='atrightmargin'/>
- <cd:command name='background' value='background'/>
- <cd:command name='backspace' value='backspace'/>
- <cd:command name='blackrule' value='blackrule'/>
- <cd:command name='blackrules' value='blackrules'/>
- <cd:command name='blank' value='blank'/>
- <cd:command name='bookmark' value='bookmark'/>
- <cd:command name='bottombox' value='bottombox'/>
- <cd:command name='bottomdistance' value='bottomdistance'/>
- <cd:command name='bottomheight' value='bottomheight'/>
- <cd:command name='bottomleftbox' value='bottomleftbox'/>
- <cd:command name='bottomrightbox' value='bottomrightbox'/>
- <cd:command name='bottomspace' value='bottomspace'/>
- <cd:command name='buildtextbottomdot' value='buildtextbottomdot'/>
- <cd:command name='but' value='but'/>
- <cd:command name='button' value='button'/>
- <cd:command name='bypassblocks' value='bypassblocks'/>
- <cd:command name='character' value='character'/>
- <cd:command name='characters' value='characters'/>
- <cd:command name='chem' value='chem'/>
- <cd:command name='clip' value='clip'/>
- <cd:command name='clonefield' value='clonefield'/>
- <cd:command name='color' value='color'/>
- <cd:command name='colorbar' value='colorbar'/>
- <cd:command name='colorvalue' value='colorvalue'/>
- <cd:command name='column' value='column'/>
- <cd:command name='comparecolorgroup' value='comparecolorgroup'/>
- <cd:command name='comparepalet' value='comparepalet'/>
- <cd:command name='completepagenumber' value='completepagenumber'/>
- <cd:command name='completeregister' value='completeregister'/>
- <cd:command name='component' value='component'/>
- <cd:command name='convertnumber' value='convertnumber'/>
- <cd:command name='copyfield' value='copyfield'/>
- <cd:command name='correctwhitespace' value='correctwhitespace'/>
- <cd:command name='coupledocument' value='coupledocument'/>
- <cd:command name='couplemarking' value='couplemarking'/>
- <cd:command name='couplepage' value='couplepage'/>
- <cd:command name='couplepaper' value='couplepaper'/>
- <cd:command name='coupleregister' value='coupleregister'/>
- <cd:command name='crlf' value='crlf'/>
- <cd:command name='currentdate' value='currentdate'/>
- <cd:command name='currentheadnumber' value='currentheadnumber'/>
- <cd:command name='cutspace' value='cutspace'/>
- <cd:command name='date' value='date'/>
- <cd:command name='decouplemarking' value='decouplemarking'/>
- <cd:command name='decrementnumber' value='decrementnumber'/>
- <cd:command name='define' value='define'/>
- <cd:command name='defineaccent' value='defineaccent'/>
- <cd:command name='defineblank' value='defineblank'/>
- <cd:command name='defineblock' value='defineblock'/>
- <cd:command name='definebodyfont' value='definebodyfont'/>
- <cd:command name='definebodyfontenvironment' value='definebodyfontenvironment'/>
- <cd:command name='definebodyfontswitch' value='definebodyfontswitch'/>
- <cd:command name='definebuffer' value='definebuffer'/>
- <cd:command name='definecharacter' value='definecharacter'/>
- <cd:command name='definecharacterkerning' value='definecharacterkerning'/>
- <cd:command name='definecharacterspacing' value='definecharacterspacing'/>
- <cd:command name='definecolor' value='definecolor'/>
- <cd:command name='definecolorgroup' value='definecolorgroup'/>
- <cd:command name='definecolumnbreak' value='definecolumnbreak'/>
- <cd:command name='definecolumnset' value='definecolumnset'/>
- <cd:command name='definecombination' value='definecombination'/>
- <cd:command name='definecombinedlist' value='definecombinedlist'/>
- <cd:command name='definecommand' value='definecommand'/>
- <cd:command name='defineconversion' value='defineconversion'/>
- <cd:command name='definedescription' value='definedescription'/>
- <cd:command name='definedfont' value='definedfont'/>
- <cd:command name='defineenumeration' value='defineenumeration'/>
- <cd:command name='definefallbackfamily' value='definefallbackfamily'/>
- <cd:command name='definefield' value='definefield'/>
- <cd:command name='definefieldstack' value='definefieldstack'/>
- <cd:command name='definefiguresymbol' value='definefiguresymbol'/>
- <cd:command name='definefilefallback' value='definefilefallback'/>
- <cd:command name='definefirstline' value='definefirstline'/>
- <cd:command name='definefloat' value='definefloat'/>
- <cd:command name='definefont' value='definefont'/>
- <cd:command name='definefontalternative' value='definefontalternative'/>
- <cd:command name='definefontfallback' value='definefontfallback'/>
- <cd:command name='definefontfamily' value='definefontfamily'/>
- <cd:command name='definefontfamilypreset' value='definefontfamilypreset'/>
- <cd:command name='definefontfeature' value='definefontfeature'/>
- <cd:command name='definefontfile' value='definefontfile'/>
- <cd:command name='definefontsize' value='definefontsize'/>
- <cd:command name='definefontsolution' value='definefontsolution'/>
- <cd:command name='definefontstyle' value='definefontstyle'/>
- <cd:command name='definefontsynonym' value='definefontsynonym'/>
- <cd:command name='defineframed' value='defineframed'/>
- <cd:command name='defineframedtext' value='defineframedtext'/>
- <cd:command name='definefrozenfont' value='definefrozenfont'/>
- <cd:command name='definehbox' value='definehbox'/>
- <cd:command name='definehead' value='definehead'/>
- <cd:command name='definehyphenationfeatures' value='definehyphenationfeatures'/>
- <cd:command name='defineindentedtext' value='defineindentedtext'/>
- <cd:command name='defineinmargin' value='defineinmargin'/>
- <cd:command name='defineinteractionmenu' value='defineinteractionmenu'/>
- <cd:command name='defineitemgroup' value='defineitemgroup'/>
- <cd:command name='defineitems' value='defineitems'/>
- <cd:command name='definelabel' value='definelabel'/>
- <cd:command name='definelayer' value='definelayer'/>
- <cd:command name='definelayout' value='definelayout'/>
- <cd:command name='definelinenote' value='definelinenote'/>
- <cd:command name='definelist' value='definelist'/>
- <cd:command name='definelogo' value='definelogo'/>
- <cd:command name='definemainfield' value='definemainfield'/>
- <cd:command name='definemakeup' value='definemakeup'/>
- <cd:command name='definemarking' value='definemarking'/>
- <cd:command name='definemathalignment' value='definemathalignment'/>
- <cd:command name='definemode' value='definemode'/>
- <cd:command name='definenamedcolor' value='definenamedcolor'/>
- <cd:command name='definenote' value='definenote'/>
- <cd:command name='defineoutput' value='defineoutput'/>
- <cd:command name='defineoverlay' value='defineoverlay'/>
- <cd:command name='definepagebreak' value='definepagebreak'/>
- <cd:command name='definepalet' value='definepalet'/>
- <cd:command name='definepapersize' value='definepapersize'/>
- <cd:command name='defineparagraphs' value='defineparagraphs'/>
- <cd:command name='defineperiodkerning' value='defineperiodkerning'/>
- <cd:command name='defineplacement' value='defineplacement'/>
- <cd:command name='defineprofile' value='defineprofile'/>
- <cd:command name='defineprogram' value='defineprogram'/>
- <cd:command name='definerawfont' value='definerawfont'/>
- <cd:command name='definereference' value='definereference'/>
- <cd:command name='definereferenceformat' value='definereferenceformat'/>
- <cd:command name='definereferencelist' value='definereferencelist'/>
- <cd:command name='defineregister' value='defineregister'/>
- <cd:command name='definerule' value='definerule'/>
- <cd:command name='definesection' value='definesection'/>
- <cd:command name='definesectionblock' value='definesectionblock'/>
- <cd:command name='definesorting' value='definesorting'/>
- <cd:command name='definestartstop' value='definestartstop'/>
- <cd:command name='definestyle' value='definestyle'/>
- <cd:command name='definesubfield' value='definesubfield'/>
- <cd:command name='definesymbol' value='definesymbol'/>
- <cd:command name='definesynonyms' value='definesynonyms'/>
- <cd:command name='definetabletemplate' value='definetabletemplate'/>
- <cd:command name='definetabulate' value='definetabulate'/>
- <cd:command name='definetext' value='definetext'/>
- <cd:command name='definetextbackground' value='definetextbackground'/>
- <cd:command name='definetextnote' value='definetextnote'/>
- <cd:command name='definetextposition' value='definetextposition'/>
- <cd:command name='definetextvariable' value='definetextvariable'/>
- <cd:command name='definetype' value='definetype'/>
- <cd:command name='definetyping' value='definetyping'/>
- <cd:command name='defineversion' value='defineversion'/>
- <cd:command name='depthspanningtext' value='depthspanningtext'/>
- <cd:command name='determineheadnumber' value='determineheadnumber'/>
- <cd:command name='determinelistcharacteristics' value='determinelistcharacteristics'/>
- <cd:command name='determineregistercharacteristics' value='determineregistercharacteristics'/>
- <cd:command name='dimension' value='dimension'/>
- <cd:command name='disableinteractionmenu' value='disableinteractionmenu'/>
- <cd:command name='disablemode' value='disablemode'/>
- <cd:command name='doaddfeature' value='doaddfeature'/>
- <cd:command name='domicile' value='domicile'/>
- <cd:command name='dontconvertfont' value='dontconvertfont'/>
- <cd:command name='donttest' value='donttest'/>
- <cd:command name='edgedistance' value='edgedistance'/>
- <cd:command name='edgewidth' value='edgewidth'/>
- <cd:command name='emphasisboldface' value='emphasisboldface'/>
- <cd:command name='emptylines' value='emptylines'/>
- <cd:command name='enablemode' value='enablemode'/>
- <cd:command name='environment' value='environment'/>
- <cd:command name='externalfigure' value='externalfigure'/>
- <cd:command name='fact' value='fact'/>
- <cd:command name='fastswitchtobodyfont' value='fastswitchtobodyfont'/>
- <cd:command name='feature' value='feature'/>
- <cd:command name='field' value='field'/>
- <cd:command name='fieldstack' value='fieldstack'/>
- <cd:command name='fillinfield' value='fillinfield'/>
- <cd:command name='fillinline' value='fillinline'/>
- <cd:command name='fillinrules' value='fillinrules'/>
- <cd:command name='fillintext' value='fillintext'/>
- <cd:command name='firstcharacter' value='firstcharacter'/>
- <cd:command name='fitfield' value='fitfield'/>
- <cd:command name='fittopbaselinegrid' value='fittopbaselinegrid'/>
- <cd:command name='fixedspace' value='fixedspace'/>
- <cd:command name='fixedspaces' value='fixedspaces'/>
- <cd:command name='flushnotes' value='flushnotes'/>
- <cd:command name='followprofile' value='followprofile'/>
- <cd:command name='followprofileversion' value='followprofileversion'/>
- <cd:command name='followversion' value='followversion'/>
- <cd:command name='footerdistance' value='footerdistance'/>
- <cd:command name='footerheight' value='footerheight'/>
- <cd:command name='footnote' value='footnote'/>
- <cd:command name='footnotetext' value='footnotetext'/>
- <cd:command name='forceblocks' value='forceblocks'/>
- <cd:command name='forcecharacterstripping' value='forcecharacterstripping'/>
- <cd:command name='formulanumber' value='formulanumber'/>
- <cd:command name='fraction' value='fraction'/>
- <cd:command name='framed' value='framed'/>
- <cd:command name='from' value='from'/>
- <cd:command name='fromlinenote' value='fromlinenote'/>
- <cd:command name='getbuffer' value='getbuffer'/>
- <cd:command name='getfirstcharacter' value='getfirstcharacter'/>
- <cd:command name='getmarking' value='getmarking'/>
- <cd:command name='getnumber' value='getnumber'/>
- <cd:command name='globaldisablemode' value='globaldisablemode'/>
- <cd:command name='globalenablemode' value='globalenablemode'/>
- <cd:command name='globalpreventmode' value='globalpreventmode'/>
- <cd:command name='godown' value='godown'/>
- <cd:command name='goto' value='goto'/>
- <cd:command name='gotobox' value='gotobox'/>
- <cd:command name='gotopage' value='gotopage'/>
- <cd:command name='graycolor' value='graycolor'/>
- <cd:command name='greyvalue' value='greyvalue'/>
- <cd:command name='grid' value='grid'/>
- <cd:command name='hairline' value='hairline'/>
- <cd:command name='head' value='head'/>
- <cd:command name='headerdistance' value='headerdistance'/>
- <cd:command name='headerheight' value='headerheight'/>
- <cd:command name='headlevel' value='headlevel'/>
- <cd:command name='headnumber' value='headnumber'/>
- <cd:command name='headsym' value='headsym'/>
- <cd:command name='headtext' value='headtext'/>
- <cd:command name='heightspanningtext' value='heightspanningtext'/>
- <cd:command name='hideblocks' value='hideblocks'/>
- <cd:command name='high' value='high'/>
- <cd:command name='hl' value='hl'/>
- <cd:command name='immediatebetweenlist' value='immediatebetweenlist'/>
- <cd:command name='immediatetolist' value='immediatetolist'/>
- <cd:command name='in' value='in'/>
- <cd:command name='incrementnumber' value='incrementnumber'/>
- <cd:command name='indenting' value='indenting'/>
- <cd:command name='inframed' value='inframed'/>
- <cd:command name='infull' value='infull'/>
- <cd:command name='ininner' value='ininner'/>
- <cd:command name='inleft' value='inleft'/>
- <cd:command name='inleftedge' value='inleftedge'/>
- <cd:command name='inleftmargin' value='inleftmargin'/>
- <cd:command name='inline' value='inline'/>
- <cd:command name='inmargin' value='inmargin'/>
- <cd:command name='inmframed' value='inmaframed'/>
- <cd:command name='inneredgedistance' value='inneredgedistance'/>
- <cd:command name='inneredgewidth' value='inneredgewidth'/>
- <cd:command name='innermargindistance' value='innermargindistance'/>
- <cd:command name='innermarginwidth' value='innermarginwidth'/>
- <cd:command name='inothermargin' value='inothermargin'/>
- <cd:command name='inouter' value='inouter'/>
- <cd:command name='inright' value='inright'/>
- <cd:command name='inrightedge' value='inrightedge'/>
- <cd:command name='inrightmargin' value='inrightmargin'/>
- <cd:command name='installlanguage' value='installlanguage'/>
- <cd:command name='interactionbar' value='interactionbar'/>
- <cd:command name='interactionbuttons' value='interactionbuttons'/>
- <cd:command name='interactionmenu' value='interactionmenu'/>
- <cd:command name='item' value='item'/>
- <cd:command name='itemgroup' value='itemgroup'/>
- <cd:command name='items' value='items'/>
- <cd:command name='itemtag' value='itemtag'/>
- <cd:command name='its' value='its'/>
- <cd:command name='keepblocks' value='keepblocks'/>
- <cd:command name='kerncharacters' value='kerncharacters'/>
- <cd:command name='label' value='label'/>
- <cd:command name='labels' value='labels'/>
- <cd:command name='labeltext' value='labeltext'/>
- <cd:command name='language' value='language'/>
- <cd:command name='languageCharacters' value='languageCharacters'/>
- <cd:command name='languagecharacters' value='languagecharacters'/>
- <cd:command name='leftaligned' value='leftaligned'/>
- <cd:command name='leftbottombox' value='leftbottombox'/>
- <cd:command name='leftedgedistance' value='leftedgedistance'/>
- <cd:command name='leftedgewidth' value='leftedgewidth'/>
- <cd:command name='leftline' value='leftline'/>
- <cd:command name='leftmargindistance' value='leftmargindistance'/>
- <cd:command name='leftmarginwidth' value='leftmarginwidth'/>
- <cd:command name='leg' value='leg'/>
- <cd:command name='linecorrection' value='linecorrection'/>
- <cd:command name='linenote' value='linenote'/>
- <cd:command name='linespanningtext' value='linespanningtext'/>
- <cd:command name='linewidth' value='linethickness'/>
- <cd:command name='listheight' value='listheight'/>
- <cd:command name='listlength' value='listlength'/>
- <cd:command name='listsymbol' value='listsymbol'/>
- <cd:command name='listwidth' value='listwidth'/>
- <cd:command name='loadfontgoodies' value='loadfontgoodies'/>
- <cd:command name='localfootnotes' value='localfootnotes'/>
- <cd:command name='localnotes' value='localnotes'/>
- <cd:command name='logfields' value='logfields'/>
- <cd:command name='lohi' value='lohi'/>
- <cd:command name='low' value='low'/>
- <cd:command name='macroname' value='name'/>
- <cd:command name='mainlanguage' value='mainlanguage'/>
- <cd:command name='makeupheight' value='makeupheight'/>
- <cd:command name='makeupwidth' value='makeupwidth'/>
- <cd:command name='mar' value='mar'/>
- <cd:command name='marginblock' value='marginblock'/>
- <cd:command name='margindistance' value='margindistance'/>
- <cd:command name='marginrule' value='marginrule'/>
- <cd:command name='margintext' value='margintext'/>
- <cd:command name='margintitle' value='margintitle'/>
- <cd:command name='marginwidth' value='marginwidth'/>
- <cd:command name='marginword' value='marginword'/>
- <cd:command name='marking' value='marking'/>
- <cd:command name='markversion' value='markversion'/>
- <cd:command name='mathematics' value='mathematics'/>
- <cd:command name='menubutton' value='menubutton'/>
- <cd:command name='mframed' value='maframed'/>
- <cd:command name='midaligned' value='midaligned'/>
- <cd:command name='mirror' value='mirror'/>
- <cd:command name='month' value='month'/>
- <cd:command name='moveformula' value='moveformula'/>
- <cd:command name='moveongrid' value='moveongrid'/>
- <cd:command name='movesidefloat' value='movesidefloat'/>
- <cd:command name='navigating' value='navigating'/>
- <cd:command name='nodimension' value='nodimension'/>
- <cd:command name='noheaderandfooterlines' value='noheaderandfooterlines'/>
- <cd:command name='noindenting' value='noindenting'/>
- <cd:command name='noitem' value='noitem'/>
- <cd:command name='nolist' value='nolist'/>
- <cd:command name='nomarking' value='nomarking'/>
- <cd:command name='nomoreblocks' value='nomoreblocks'/>
- <cd:command name='nomorefiles' value='nomorefiles'/>
- <cd:command name='nop' value='nop'/>
- <cd:command name='nospace' value='nospace'/>
- <cd:command name='note' value='note'/>
- <cd:command name='notesymbol' value='notesymbol'/>
- <cd:command name='notopandbottomlines' value='notopandbottomlines'/>
- <cd:command name='notsmallcapped' value='nocap'/>
- <cd:command name='nowhitespace' value='nowhitespace'/>
- <cd:command name='numberofsubpages' value='numberofsubpages'/>
- <cd:command name='numbers' value='numbers'/>
- <cd:command name='outeredgedistance' value='outeredgedistance'/>
- <cd:command name='outeredgewidth' value='outeredgewidth'/>
- <cd:command name='outermargindistance' value='outermargindistance'/>
- <cd:command name='outermarginwidth' value='outermarginwidth'/>
- <cd:command name='packed' value='packed'/>
- <cd:command name='page' value='page'/>
- <cd:command name='pagebreak' value='pagebreak'/>
- <cd:command name='pagedepth' value='pagedepth'/>
- <cd:command name='pagenumber' value='pagenumber'/>
- <cd:command name='pageoffset' value='pageoffset'/>
- <cd:command name='pagereference' value='pagereference'/>
- <cd:command name='paperheight' value='paperheight'/>
- <cd:command name='paperwidth' value='paperwidth'/>
- <cd:command name='periods' value='periods'/>
- <cd:command name='placebookmarks' value='placebookmarks'/>
- <cd:command name='placecombinedlist' value='placecombinedlist'/>
- <cd:command name='placefloat' value='placefloat'/>
- <cd:command name='placefootnotes' value='placefootnotes'/>
- <cd:command name='placeformula' value='placeformula'/>
- <cd:command name='placeheadnumber' value='placeheadnumber'/>
- <cd:command name='placeheadtext' value='placeheadtext'/>
- <cd:command name='placelegend' value='placelegend'/>
- <cd:command name='placelist' value='placelist'/>
- <cd:command name='placelistofsynonyms' value='placelistofsynonyms'/>
- <cd:command name='placelocalfootnotes' value='placelocalfootnotes'/>
- <cd:command name='placelocalnotes' value='placelocalnotes'/>
- <cd:command name='placelogos' value='placelogos'/>
- <cd:command name='placenamedfloat' value='placenamedfloat'/>
- <cd:command name='placenotes' value='placenotes'/>
- <cd:command name='placeongrid' value='placeongrid'/>
- <cd:command name='placeontopofeachother' value='placeontopofeachother'/>
- <cd:command name='placepagenumber' value='placepagenumber'/>
- <cd:command name='placerawlist' value='placerawlist'/>
- <cd:command name='placereferencelist' value='placereferencelist'/>
- <cd:command name='placeregister' value='placeregister'/>
- <cd:command name='placerule' value='placerule'/>
- <cd:command name='placesidebyside' value='placesidebyside'/>
- <cd:command name='placesubformula' value='placesubformula'/>
- <cd:command name='placetextvariable' value='placetextvariable'/>
- <cd:command name='position' value='position'/>
- <cd:command name='positiontext' value='positiontext'/>
- <cd:command name='postponenotes' value='postponenotes'/>
- <cd:command name='postponingnotes' value='postponingnotes'/>
- <cd:command name='predefinedfont' value='predefinedfont'/>
- <cd:command name='predefinefont' value='predefinefont'/>
- <cd:command name='presetdocument' value='presetdocument'/>
- <cd:command name='prettyprintbuffer' value='prettyprintbuffer'/>
- <cd:command name='preventmode' value='preventmode'/>
- <cd:command name='printpaperheight' value='printpaperheight'/>
- <cd:command name='printpaperwidth' value='printpaperwidth'/>
- <cd:command name='processblocks' value='processblocks'/>
- <cd:command name='processbodyfontenvironmentlist' value='processbodyfontenvironmentlist'/>
- <cd:command name='processpage' value='processpage'/>
- <cd:command name='product' value='product'/>
- <cd:command name='program' value='program'/>
- <cd:command name='project' value='project'/>
- <cd:command name='publication' value='publication'/>
- <cd:command name='quotation' value='quotation'/>
- <cd:command name='quote' value='quote'/>
- <cd:command name='ran' value='ran'/>
- <cd:command name='redo' value='redo'/>
- <cd:command name='redoconvertfont' value='redoconvertfont'/>
- <cd:command name='ref' value='ref'/>
- <cd:command name='reference' value='reference'/>
- <cd:command name='referral' value='referral'/>
- <cd:command name='referraldate' value='referraldate'/>
- <cd:command name='referring' value='referring'/>
- <cd:command name='registerfontclass' value='registerfontclass'/>
- <cd:command name='registerhyphenationexception' value='registerhyphenationexception'/>
- <cd:command name='registerhyphenationpattern' value='registerhyphenationpattern'/>
- <cd:command name='remark' value='remark'/>
- <cd:command name='replacefeature' value='replacefeature'/>
- <cd:command name='reset' value='reset'/>
- <cd:command name='resetandaddfeature' value='resetandaddfeature'/>
- <cd:command name='resetcharacteralign' value='resetcharacteralign'/>
- <cd:command name='resetcharacterkerning' value='resetcharacterkerning'/>
- <cd:command name='resetcharacterspacing' value='resetcharacterspacing'/>
- <cd:command name='resetcharacterstripping' value='resetcharacterstripping'/>
- <cd:command name='resetfeature' value='resetfeature'/>
- <cd:command name='resetfontcolorsheme' value='resetfontcolorsheme'/>
- <cd:command name='resetfontfallback' value='resetfontfallback'/>
- <cd:command name='resetfontsolution' value='resetfontsolution'/>
- <cd:command name='resethyphenationfeatures' value='resethyphenationfeatures'/>
- <cd:command name='resetlocalfloats' value='resetlocalfloats'/>
- <cd:command name='resetmarking' value='resetmarking'/>
- <cd:command name='resetmode' value='resetmode'/>
- <cd:command name='resetnumber' value='resetnumber'/>
- <cd:command name='resetpath' value='resetpath'/>
- <cd:command name='resetperiodkerning' value='resetperiodkerning'/>
- <cd:command name='resetsystemmode' value='resetsystemmode'/>
- <cd:command name='resettextcontent' value='resettextcontent'/>
- <cd:command name='resetvisualizers' value='resetvisualizers'/>
- <cd:command name='restoreglobalbodyfont' value='restoreglobalbodyfont'/>
- <cd:command name='retestfeature' value='retestfeature'/>
- <cd:command name='revivefeature' value='revivefeature'/>
- <cd:command name='rightaligned' value='rightaligned'/>
- <cd:command name='rightbottombox' value='rightbottombox'/>
- <cd:command name='rightedgedistance' value='rightedgedistance'/>
- <cd:command name='rightedgewidth' value='rightedgewidth'/>
- <cd:command name='rightline' value='rightline'/>
- <cd:command name='rightmargindistance' value='rightmargindistance'/>
- <cd:command name='rightmarginwidth' value='rightmarginwidth'/>
- <cd:command name='romannumerals' value='romannumerals'/>
- <cd:command name='rotate' value='rotate'/>
- <cd:command name='savebuffer' value='savebuffer'/>
- <cd:command name='scale' value='scale'/>
- <cd:command name='screen' value='screen'/>
- <cd:command name='selectblocks' value='selectblocks'/>
- <cd:command name='selectpaper' value='selectpaper'/>
- <cd:command name='selectversion' value='selectversion'/>
- <cd:command name='setbigbodyfont' value='setbigbodyfont'/>
- <cd:command name='setcharacteralign' value='setcharacteralign'/>
- <cd:command name='setcharacteraligndetail' value='setcharacteraligndetail'/>
- <cd:command name='setcharactercasing' value='setcharactercasing'/>
- <cd:command name='setcharactercleaning' value='setcharactercleaning'/>
- <cd:command name='setcharacterkerning' value='setcharacterkerning'/>
- <cd:command name='setcharacterspacing' value='setcharacterspacing'/>
- <cd:command name='setcharacterstripping' value='setcharacterstripping'/>
- <cd:command name='setcurrentfontclass' value='setcurrentfontclass'/>
- <cd:command name='setfirstline' value='setfirstline'/>
- <cd:command name='setfirstpasscharacteralign' value='setfirstpasscharacteralign'/>
- <cd:command name='setfont' value='setfont'/>
- <cd:command name='setfontcolorsheme' value='setfontcolorsheme'/>
- <cd:command name='setfontfeature' value='setfontfeature'/>
- <cd:command name='setfontsolution' value='setfontsolution'/>
- <cd:command name='setfontstrut' value='setfontstrut'/>
- <cd:command name='sethyphenationfeatures' value='sethyphenationfeatures'/>
- <cd:command name='setmainbodyfont' value='setmainbodyfont'/>
- <cd:command name='setmode' value='setmode'/>
- <cd:command name='setnote' value='setnote'/>
- <cd:command name='setnotetext' value='setnotetext'/>
- <cd:command name='setnumber' value='setnumber'/>
- <cd:command name='setperiodkerning' value='setperiodkerning'/>
- <cd:command name='setsecondpasscharacteralign' value='setsecondpasscharacteralign'/>
- <cd:command name='setsmallbodyfont' value='setsmallbodyfont'/>
- <cd:command name='setsystemmode' value='setsystemmode'/>
- <cd:command name='settextcontent' value='settextcontent'/>
- <cd:command name='settextvariable' value='settextvariable'/>
- <cd:command name='setupalign' value='setupalign'/>
- <cd:command name='setupanswerarea' value='setupanswerarea'/>
- <cd:command name='setuparranging' value='setuparranging'/>
- <cd:command name='setupattachment' value='setupattachment'/>
- <cd:command name='setupbackground' value='setupbackground'/>
- <cd:command name='setupbackgrounds' value='setupbackgrounds'/>
- <cd:command name='setupblackrules' value='setupblackrules'/>
- <cd:command name='setupblank' value='setupblank'/>
- <cd:command name='setupblock' value='setupblock'/>
- <cd:command name='setupbodyfont' value='setupbodyfont'/>
- <cd:command name='setupbodyfontenvironment' value='setupbodyfontenvironment'/>
- <cd:command name='setupbottom' value='setupbottom'/>
- <cd:command name='setupbottomtexts' value='setupbottomtexts'/>
- <cd:command name='setupbuffer' value='setupbuffer'/>
- <cd:command name='setupbuttons' value='setupbuttons'/>
- <cd:command name='setupcapitals' value='setupcapitals'/>
- <cd:command name='setupcaption' value='setupcaption'/>
- <cd:command name='setupcaptions' value='setupcaptions'/>
- <cd:command name='setupcharacteralign' value='setupcharacteralign'/>
- <cd:command name='setupcharacterkerning' value='setupcharacterkerning'/>
- <cd:command name='setupcharacterspacing' value='setupcharacterspacing'/>
- <cd:command name='setupclipping' value='setupclipping'/>
- <cd:command name='setupcolor' value='setupcolor'/>
- <cd:command name='setupcolors' value='setupcolors'/>
- <cd:command name='setupcolumns' value='setupcolumns'/>
- <cd:command name='setupcolumnset' value='setupcolumnset'/>
- <cd:command name='setupcolumnsetlines' value='setupcolumnsetlines'/>
- <cd:command name='setupcolumnsetstart' value='setupcolumnsetstart'/>
- <cd:command name='setupcombinations' value='setupcombinations'/>
- <cd:command name='setupcombinedlist' value='setupcombinedlist'/>
- <cd:command name='setupcomment' value='setupcomment'/>
- <cd:command name='setupcounter' value='setupcounter'/>
- <cd:command name='setupdescription' value='setupdescription'/>
- <cd:command name='setupdescriptions' value='setupdescriptions'/>
- <cd:command name='setupenumeration' value='setupenumeration'/>
- <cd:command name='setupenumerations' value='setupenumerations'/>
- <cd:command name='setupexternalfigures' value='setupexternalfigures'/>
- <cd:command name='setupfield' value='setupfield'/>
- <cd:command name='setupfields' value='setupfields'/>
- <cd:command name='setupfillinlines' value='setupfillinlines'/>
- <cd:command name='setupfillinrules' value='setupfillinrules'/>
- <cd:command name='setupfirstline' value='setupfirstline'/>
- <cd:command name='setupfloat' value='setupfloat'/>
- <cd:command name='setupfloats' value='setupfloats'/>
- <cd:command name='setupfloatsplitting' value='setupfloatsplitting'/>
- <cd:command name='setupfontexpansion' value='setupfontexpansion'/>
- <cd:command name='setupfontprotrusion' value='setupfontprotrusion'/>
- <cd:command name='setupfonts' value='setupfonts'/>
- <cd:command name='setupfontsolution' value='setupfontsolution'/>
- <cd:command name='setupfooter' value='setupfooter'/>
- <cd:command name='setupfootertexts' value='setupfootertexts'/>
- <cd:command name='setupfootnotedefinition' value='setupfootnotedefinition'/>
- <cd:command name='setupfootnotes' value='setupfootnotes'/>
- <cd:command name='setupforms' value='setupforms'/>
- <cd:command name='setupformula' value='setupformula'/>
- <cd:command name='setupformulas' value='setupformulae'/>
- <cd:command name='setupframed' value='setupframed'/>
- <cd:command name='setupframedtext' value='setupframedtext'/>
- <cd:command name='setupframedtexts' value='setupframedtexts'/>
- <cd:command name='setuphead' value='setuphead'/>
- <cd:command name='setupheader' value='setupheader'/>
- <cd:command name='setupheadertexts' value='setupheadertexts'/>
- <cd:command name='setupheadnumber' value='setupheadnumber'/>
- <cd:command name='setupheads' value='setupheads'/>
- <cd:command name='setupheadtext' value='setupheadtext'/>
- <cd:command name='setuphyphenation' value='setuphyphenation'/>
- <cd:command name='setuphyphenmark' value='setuphyphenmark'/>
- <cd:command name='setupindentedtext' value='setupindentedtext'/>
- <cd:command name='setupindenting' value='setupindenting'/>
- <cd:command name='setupinmargin' value='setupinmargin'/>
- <cd:command name='setupinteraction' value='setupinteraction'/>
- <cd:command name='setupinteractionbar' value='setupinteractionbar'/>
- <cd:command name='setupinteractionmenu' value='setupinteractionmenu'/>
- <cd:command name='setupinteractionscreen' value='setupinteractionscreen'/>
- <cd:command name='setupinterlinespace' value='setupinterlinespace'/>
- <cd:command name='setupitemgroup' value='setupitemgroup'/>
- <cd:command name='setupitemgroups' value='setupitemizations'/>
- <cd:command name='setupitems' value='setupitems'/>
- <cd:command name='setuplabeltext' value='setuplabeltext'/>
- <cd:command name='setuplanguage' value='setuplanguage'/>
- <cd:command name='setuplayout' value='setuplayout'/>
- <cd:command name='setuplegend' value='setuplegend'/>
- <cd:command name='setuplinenote' value='setuplinenote'/>
- <cd:command name='setuplinenumbering' value='setuplinenumbering'/>
- <cd:command name='setuplines' value='setuplines'/>
- <cd:command name='setuplinewidth' value='setuplinewidth'/>
- <cd:command name='setuplist' value='setuplist'/>
- <cd:command name='setupmakeup' value='setupmakeup'/>
- <cd:command name='setupmarginblock' value='setupmarginblock'/>
- <cd:command name='setupmarginblocks' value='setupmarginblocks'/>
- <cd:command name='setupmargindata' value='setupmargindata'/>
- <cd:command name='setupmarginrules' value='setupmarginrules'/>
- <cd:command name='setupmarking' value='setupmarking'/>
- <cd:command name='setupmathalignment' value='setupmathalignment'/>
- <cd:command name='setupnarrower' value='setupnarrower'/>
- <cd:command name='setupnotation' value='setupnotation'/>
- <cd:command name='setupnotations' value='setupnotations'/>
- <cd:command name='setupnote' value='setupnote'/>
- <cd:command name='setupnotes' value='setupnotes'/>
- <cd:command name='setupnumber' value='setupnumber'/>
- <cd:command name='setupnumbering' value='setupnumbering'/>
- <cd:command name='setupoppositeplacing' value='setupoppositeplacing'/>
- <cd:command name='setupoutput' value='setupoutput'/>
- <cd:command name='setuppagecomment' value='setuppagecomment'/>
- <cd:command name='setuppagenumber' value='setuppagenumber'/>
- <cd:command name='setuppagenumbering' value='setuppagenumbering'/>
- <cd:command name='setuppagetransitions' value='setuppagetransitions'/>
- <cd:command name='setuppalet' value='setuppalet'/>
- <cd:command name='setuppaper' value='setuppaper'/>
- <cd:command name='setuppapersize' value='setuppapersize'/>
- <cd:command name='setupparagraphnumbering' value='setupparagraphnumbering'/>
- <cd:command name='setupparagraphs' value='setupparagraphs'/>
- <cd:command name='setupperiodkerning' value='setupperiodkerning'/>
- <cd:command name='setupplacement' value='setupplacement'/>
- <cd:command name='setuppositioning' value='setuppositioning'/>
- <cd:command name='setupprofiles' value='setupprofiles'/>
- <cd:command name='setupprograms' value='setupprograms'/>
- <cd:command name='setuppublications' value='setuppublications'/>
- <cd:command name='setupquote' value='setupquote'/>
- <cd:command name='setupreferencelist' value='setupreferencelist'/>
- <cd:command name='setupreferencing' value='setupreferencing'/>
- <cd:command name='setupregister' value='setupregister'/>
- <cd:command name='setuprotate' value='setuprotate'/>
- <cd:command name='setuprule' value='setuprule'/>
- <cd:command name='setupscreens' value='setupscreens'/>
- <cd:command name='setupsection' value='setupsection'/>
- <cd:command name='setupsectionblock' value='setupsectionblock'/>
- <cd:command name='setupsorting' value='setupsorting'/>
- <cd:command name='setupspacing' value='setupspacing'/>
- <cd:command name='setupstartstop' value='setupstartstop'/>
- <cd:command name='setupstrut' value='setupstrut'/>
- <cd:command name='setupsubpagenumber' value='setupsubpagenumber'/>
- <cd:command name='setupsymbolset' value='setupsymbolset'/>
- <cd:command name='setupsynchronization' value='setupsynchronization'/>
- <cd:command name='setupsynchronizationbar' value='setupsynchronizationbar'/>
- <cd:command name='setupsynonyms' value='setupsynonyms'/>
- <cd:command name='setupsystem' value='setupsystem'/>
- <cd:command name='setuptab' value='setuptab'/>
- <cd:command name='setuptables' value='setuptables'/>
- <cd:command name='setuptabulate' value='setuptabulate'/>
- <cd:command name='setuptext' value='setuptext'/>
- <cd:command name='setuptextbackground' value='setuptextbackground'/>
- <cd:command name='setuptextnote' value='setuptextnote'/>
- <cd:command name='setuptextposition' value='setuptextposition'/>
- <cd:command name='setuptextrules' value='setuptextrules'/>
- <cd:command name='setuptexttexts' value='setuptexttexts'/>
- <cd:command name='setuptextvariable' value='setuptextvariable'/>
- <cd:command name='setupthinrules' value='setupthinrules'/>
- <cd:command name='setuptolerance' value='setuptolerance'/>
- <cd:command name='setuptop' value='setuptop'/>
- <cd:command name='setuptoptexts' value='setuptoptexts'/>
- <cd:command name='setuptype' value='setuptype'/>
- <cd:command name='setuptyping' value='setuptyping'/>
- <cd:command name='setupunderbar' value='setupunderbar'/>
- <cd:command name='setupurl' value='setupurl'/>
- <cd:command name='setupversions' value='setupversions'/>
- <cd:command name='setupwhitespace' value='setupwhitespace'/>
- <cd:command name='setvisualizerfont' value='setvisualizerfont'/>
- <cd:command name='showbodyfont' value='showbodyfont'/>
- <cd:command name='showbodyfontenvironment' value='showbodyfontenvironment'/>
- <cd:command name='showcolor' value='showcolor'/>
- <cd:command name='showcolorgroup' value='showcolorgroup'/>
- <cd:command name='showcounter' value='showcounter'/>
- <cd:command name='showexternalfigures' value='showexternalfigures'/>
- <cd:command name='showfields' value='showfields'/>
- <cd:command name='showfont' value='showfont'/>
- <cd:command name='showfontdata' value='showfontdata'/>
- <cd:command name='showfontexpansion' value='showfontexpansion'/>
- <cd:command name='showfontitalics' value='showfontitalics'/>
- <cd:command name='showfontkerns' value='showfontkerns'/>
- <cd:command name='showfontparameters' value='showfontparameters'/>
- <cd:command name='showfontstrip' value='showfontstrip'/>
- <cd:command name='showfontstyle' value='showfontstyle'/>
- <cd:command name='showframe' value='showframe'/>
- <cd:command name='showgrid' value='showgrid'/>
- <cd:command name='showhyphenationtrace' value='showhyphenationtrace'/>
- <cd:command name='showkerning' value='showkerning'/>
- <cd:command name='showlayout' value='showlayout'/>
- <cd:command name='showmakeup' value='showmakeup'/>
- <cd:command name='showminimalbaseline' value='showminimalbaseline'/>
- <cd:command name='showpalet' value='showpalet'/>
- <cd:command name='showprint' value='showprint'/>
- <cd:command name='showsetups' value='showsetups'/>
- <cd:command name='showstruts' value='showstruts'/>
- <cd:command name='showsymbolset' value='showsymbolset'/>
- <cd:command name='smallcapped' value='cap'/>
- <cd:command name='someline' value='someline'/>
- <cd:command name='somewhere' value='somewhere'/>
- <cd:command name='space' value='space'/>
- <cd:command name='specialitem' value='specialitem'/>
- <cd:command name='splitfloat' value='splitfloat'/>
- <cd:command name='startalignment' value='startalignment'/>
- <cd:command name='startbackground' value='startbackground'/>
- <cd:command name='startcoding' value='startcoding'/>
- <cd:command name='startcolor' value='startcolor'/>
- <cd:command name='startcolumnmakeup' value='startcolumnmakeup'/>
- <cd:command name='startcolumns' value='startcolumns'/>
- <cd:command name='startcolumnset' value='startcolumnset'/>
- <cd:command name='startcombination' value='startcombination'/>
- <cd:command name='startcomponent' value='startcomponent'/>
- <cd:command name='startdocument' value='startdocument'/>
- <cd:command name='startenvironment' value='startenvironment'/>
- <cd:command name='startfigure' value='startfigure'/>
- <cd:command name='startframed' value='startframed'/>
- <cd:command name='startglobal' value='startglobal'/>
- <cd:command name='startline' value='startline'/>
- <cd:command name='startlinecorrection' value='startlinecorrection'/>
- <cd:command name='startlinenote' value='startlinenote'/>
- <cd:command name='startlinenumbering' value='startlinenumbering'/>
- <cd:command name='startlines' value='startlines'/>
- <cd:command name='startlocal' value='startlocal'/>
- <cd:command name='startlocalfootnotes' value='startlocalfootnotes'/>
- <cd:command name='startmakeup' value='startmakeup'/>
- <cd:command name='startmarginblock' value='startmarginblock'/>
- <cd:command name='startmarginrule' value='startmarginrule'/>
- <cd:command name='startnarrower' value='startnarrower'/>
- <cd:command name='startopposite' value='startopposite'/>
- <cd:command name='startoverlay' value='startoverlay'/>
- <cd:command name='startoverview' value='startoverview'/>
- <cd:command name='startpacked' value='startpacked'/>
- <cd:command name='startpositioning' value='startpositioning'/>
- <cd:command name='startproduct' value='startproduct'/>
- <cd:command name='startprofile' value='startprofile'/>
- <cd:command name='startproject' value='startproject'/>
- <cd:command name='startquotation' value='startquotation'/>
- <cd:command name='startraster' value='startraster'/>
- <cd:command name='startsymbolset' value='startsymbolset'/>
- <cd:command name='startsynchronization' value='startsynchronization'/>
- <cd:command name='starttable' value='starttable'/>
- <cd:command name='starttables' value='starttables'/>
- <cd:command name='starttext' value='starttext'/>
- <cd:command name='starttextbackground' value='starttextbackground'/>
- <cd:command name='starttextrule' value='starttextrule'/>
- <cd:command name='startunpacked' value='startunpacked'/>
- <cd:command name='startversion' value='startversion'/>
- <cd:command name='stopalignment' value='stopalignment'/>
- <cd:command name='stopbackground' value='stopbackground'/>
- <cd:command name='stopcoding' value='stopcoding'/>
- <cd:command name='stopcolor' value='stopcolor'/>
- <cd:command name='stopcolumnmakeup' value='stopcolumnmakeup'/>
- <cd:command name='stopcolumns' value='stopcolumns'/>
- <cd:command name='stopcolumnset' value='stopcolumnset'/>
- <cd:command name='stopcombination' value='stopcombination'/>
- <cd:command name='stopcomponent' value='stopcomponent'/>
- <cd:command name='stopdocument' value='stopdocument'/>
- <cd:command name='stopenvironment' value='stopenvironment'/>
- <cd:command name='stopframed' value='stopframed'/>
- <cd:command name='stopglobal' value='stopglobal'/>
- <cd:command name='stopline' value='stopline'/>
- <cd:command name='stoplinecorrection' value='stoplinecorrection'/>
- <cd:command name='stoplinenote' value='stoplinenote'/>
- <cd:command name='stoplinenumbering' value='stoplinenumbering'/>
- <cd:command name='stoplines' value='stoplines'/>
- <cd:command name='stoplocal' value='stoplocal'/>
- <cd:command name='stoplocalfootnotes' value='stoplocalfootnotes'/>
- <cd:command name='stopmakeup' value='stopmakeup'/>
- <cd:command name='stopmarginblock' value='stopmarginblock'/>
- <cd:command name='stopmarginrule' value='stopmarginrule'/>
- <cd:command name='stopnarrower' value='stopnarrower'/>
- <cd:command name='stopopposite' value='stopopposite'/>
- <cd:command name='stopoverlay' value='stopoverlay'/>
- <cd:command name='stopoverview' value='stopoverview'/>
- <cd:command name='stoppacked' value='stoppacked'/>
- <cd:command name='stoppositioning' value='stoppositioning'/>
- <cd:command name='stopproduct' value='stopproduct'/>
- <cd:command name='stopprofile' value='stopprofile'/>
- <cd:command name='stopproject' value='stopproject'/>
- <cd:command name='stopquotation' value='stopquotation'/>
- <cd:command name='stopraster' value='stopraster'/>
- <cd:command name='stopsynchronization' value='stopsynchronization'/>
- <cd:command name='stoptable' value='stoptable'/>
- <cd:command name='stoptables' value='stoptables'/>
- <cd:command name='stoptext' value='stoptext'/>
- <cd:command name='stoptextbackground' value='stoptextbackground'/>
- <cd:command name='stoptextrule' value='stoptextrule'/>
- <cd:command name='stopunpacked' value='stopunpacked'/>
- <cd:command name='stopversion' value='stopversion'/>
- <cd:command name='stretched' value='stretched'/>
- <cd:command name='strictinspectnextcharacter' value='strictinspectnextcharacter'/>
- <cd:command name='stripcharacter' value='stripcharacter'/>
- <cd:command name='subformulanumber' value='subformulanumber'/>
- <cd:command name='subpagenumber' value='subpagenumber'/>
- <cd:command name='subtractfeature' value='subtractfeature'/>
- <cd:command name='switchtobodyfont' value='switchtobodyfont'/>
- <cd:command name='switchtorawfont' value='switchtorawfont'/>
- <cd:command name='sym' value='sym'/>
- <cd:command name='symbol' value='symbol'/>
- <cd:command name='symoffset' value='symoffset'/>
- <cd:command name='synchronizationbar' value='synchronizationbar'/>
- <cd:command name='synchronize' value='synchronize'/>
- <cd:command name='tab' value='tab'/>
- <cd:command name='testcolumn' value='testcolumn'/>
- <cd:command name='testfeature' value='testfeature'/>
- <cd:command name='testfeatureonce' value='testfeatureonce'/>
- <cd:command name='testpage' value='testpage'/>
- <cd:command name='tex' value='tex'/>
- <cd:command name='textbackground' value='textbackground'/>
- <cd:command name='textcolor' value='textcolor'/>
- <cd:command name='textheight' value='textheight'/>
- <cd:command name='textnote' value='textnote'/>
- <cd:command name='textreference' value='textreference'/>
- <cd:command name='textrule' value='textrule'/>
- <cd:command name='textvariable' value='textvariable'/>
- <cd:command name='textwidth' value='textwidth'/>
- <cd:command name='thefirstcharacter' value='thefirstcharacter'/>
- <cd:command name='thenormalizedbodyfontsize' value='thenormalizedbodyfontsize'/>
- <cd:command name='theremainingcharacters' value='theremainingcharacters'/>
- <cd:command name='thinrule' value='thinrule'/>
- <cd:command name='thinrules' value='thinrules'/>
- <cd:command name='tolinenote' value='tolinenote'/>
- <cd:command name='tooltip' value='tooltip'/>
- <cd:command name='topdistance' value='topdistance'/>
- <cd:command name='topheight' value='topheight'/>
- <cd:command name='topspace' value='topspace'/>
- <cd:command name='totalnumberofpages' value='totalnumberofpages'/>
- <cd:command name='translate' value='translate'/>
- <cd:command name='txt' value='txt'/>
- <cd:command name='typ' value='typ'/>
- <cd:command name='type' value='type'/>
- <cd:command name='typebuffer' value='typebuffer'/>
- <cd:command name='typedefinedbuffer' value='typedefinedbuffer'/>
- <cd:command name='typefile' value='typefile'/>
- <cd:command name='typeinlinebuffer' value='typeinlinebuffer'/>
- <cd:command name='typing' value='typing'/>
- <cd:command name='unitmeaning' value='unitmeaning'/>
- <cd:command name='unknown' value='unknown'/>
- <cd:command name='unregisterhyphenationpattern' value='unregisterhyphenationpattern'/>
- <cd:command name='useJSscripts' value='useJSscripts'/>
- <cd:command name='useURL' value='useURL'/>
- <cd:command name='useXMLfilter' value='useXMLfilter'/>
- <cd:command name='useblocks' value='useblocks'/>
- <cd:command name='usebodyfont' value='usebodyfont'/>
- <cd:command name='usebodyfontparameter' value='usebodyfontparameter'/>
- <cd:command name='usecommands' value='usecommands'/>
- <cd:command name='useencoding' value='useencoding'/>
- <cd:command name='useexternaldocument' value='useexternaldocument'/>
- <cd:command name='useexternalfigure' value='useexternalfigure'/>
- <cd:command name='useexternalfile' value='useexternalfile'/>
- <cd:command name='useexternalfiles' value='useexternalfiles'/>
- <cd:command name='useexternalsoundtrack' value='useexternalsoundtrack'/>
- <cd:command name='usemodule' value='usemodule'/>
- <cd:command name='usemodules' value='usemodules'/>
- <cd:command name='usepath' value='usedirectory'/>
- <cd:command name='usereferences' value='usereferences'/>
- <cd:command name='usespecials' value='usespecials'/>
- <cd:command name='usesymbols' value='usesymbols'/>
- <cd:command name='usetypescript' value='usetypescript'/>
- <cd:command name='usetypescriptfile' value='usetypescriptfile'/>
- <cd:command name='useurl' value='useurl'/>
- <cd:command name='verbatim' value='verbatim'/>
- <cd:command name='version' value='version'/>
- <cd:command name='vl' value='vl'/>
- <cd:command name='weekday' value='weekday'/>
- <cd:command name='whitespace' value='whitespace'/>
- <cd:command name='widthspanningtext' value='widthspanningtext'/>
- <cd:command name='wordright' value='wordright'/>
- <cd:command name='writebetweenlist' value='writebetweenlist'/>
- <cd:command name='writetolist' value='writetolist'/>
- <cd:command name='writetoreferencelist' value='writetoreferencelist'/>
- <cd:command name='writetoregister' value='writetoregister'/>
- </cd:commands>
-
-</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-fr.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-fr.xml
deleted file mode 100644
index 3a1e644527a..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-fr.xml
+++ /dev/null
@@ -1,2237 +0,0 @@
-<?xml version='1.0'?>
-
-<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='fr' version='2008.10.21 19:42'>
-
- <!-- definitions for interface variables for language fr -->
-
- <cd:variables>
- <cd:variable name='Addition' value='Ajout'/>
- <cd:variable name='Alphabetic' value='Alphabetique'/>
- <cd:variable name='Balloon' value='Ballon'/>
- <cd:variable name='Cap' value='Cap'/>
- <cd:variable name='Capital' value='Capitales'/>
- <cd:variable name='Character' value='Caractere'/>
- <cd:variable name='Characters' value='Caracteres'/>
- <cd:variable name='CloseDocument' value='FermerDocument'/>
- <cd:variable name='ExitViewer' value='SortirVisualisateur'/>
- <cd:variable name='FirstPage' value='PremierePage'/>
- <cd:variable name='FitHeight' value='AdapterHauteur'/>
- <cd:variable name='FitWidth' value='AdapterLargeur'/>
- <cd:variable name='GotoPage' value='AlleraPage'/>
- <cd:variable name='Greek' value='Grec'/>
- <cd:variable name='Help' value='Aide'/>
- <cd:variable name='HideField' value='CacherChamps'/>
- <cd:variable name='HideLayer' value='CacherCalque'/>
- <cd:variable name='Key' value='Cle'/>
- <cd:variable name='LastPage' value='DernierePage'/>
- <cd:variable name='LoadForm' value='ChargerFormulaire'/>
- <cd:variable name='MONTH' value='MOIS'/>
- <cd:variable name='New' value='Nouveau'/>
- <cd:variable name='NextJump' value='SautSuivant'/>
- <cd:variable name='NextPage' value='PageSuivante'/>
- <cd:variable name='Numbers' value='Numeros'/>
- <cd:variable name='OpenNamedDocument' value='OuvrirDocumentNomme'/>
- <cd:variable name='Ordinal' value='Ordinal'/>
- <cd:variable name='Paragraph' value='Paragraphe'/>
- <cd:variable name='PauseMovie' value='PauseFilm'/>
- <cd:variable name='PauseRendering' value='PauseRendu'/>
- <cd:variable name='PauseSound' value='PauseSon'/>
- <cd:variable name='PreviousJump' value='SautPrecedent'/>
- <cd:variable name='PreviousPage' value='PagePrecedente'/>
- <cd:variable name='PrintDocument' value='ImprimerDocument'/>
- <cd:variable name='Query' value='Interroger'/>
- <cd:variable name='QueryAgain' value='InterrogerSuivant'/>
- <cd:variable name='ResetForm' value='RazFormulaire'/>
- <cd:variable name='ResumeMovie' value='RepriseFilm'/>
- <cd:variable name='ResumeRendering' value='RepriseRendu'/>
- <cd:variable name='ResumeSound' value='RepriseSon'/>
- <cd:variable name='Romannumerals' value='Chiffresromains'/>
- <cd:variable name='SaveDocument' value='EnregistrerDocument'/>
- <cd:variable name='SaveForm' value='EnregistrerFormulaire'/>
- <cd:variable name='SaveNamedDocument' value='EnregistrerDocumentNomme'/>
- <cd:variable name='SearchAgain' value='ChercherSuivant'/>
- <cd:variable name='SearchDocument' value='ChercherDocument'/>
- <cd:variable name='ShowBookmarks' value='MontrerMarquepages'/>
- <cd:variable name='ShowField' value='MontrerChamp'/>
- <cd:variable name='ShowThumbs' value='MontrerVignettes'/>
- <cd:variable name='StartMovie' value='débutFilm'/>
- <cd:variable name='StartRendering' value='débutRendu'/>
- <cd:variable name='StartSound' value='débutSon'/>
- <cd:variable name='StopMovie' value='FinFilm'/>
- <cd:variable name='StopRendering' value='FinRendu'/>
- <cd:variable name='StopSound' value='FinSon'/>
- <cd:variable name='SubmitForm' value='SoumettreFormulaire'/>
- <cd:variable name='ToggleLayer' value='BasculerCalque'/>
- <cd:variable name='ToggleViewer' value='BasculerVisualisateur'/>
- <cd:variable name='URL' value='URL'/>
- <cd:variable name='VideLayer' value='VideCalque'/>
- <cd:variable name='ViewerHelp' value='AideVisualisateur'/>
- <cd:variable name='WEEKDAY' value='JOURSEMAINE'/>
- <cd:variable name='WORD' value='MOT'/>
- <cd:variable name='WORDS' value='MOTS'/>
- <cd:variable name='Word' value='Mot'/>
- <cd:variable name='Words' value='Mots'/>
- <cd:variable name='abbreviation' value='abreviation'/>
- <cd:variable name='abbreviations' value='abreviations'/>
- <cd:variable name='absolute' value='absolu'/>
- <cd:variable name='action' value='action'/>
- <cd:variable name='after' value='après'/>
- <cd:variable name='all' value='tout'/>
- <cd:variable name='alphabetic' value='Alphabetique'/>
- <cd:variable name='always' value='toujours'/>
- <cd:variable name='anchor' value='ancre'/>
- <cd:variable name='and' value='et'/>
- <cd:variable name='answerarea' value='zonereponse'/>
- <cd:variable name='appendices' value='annexes'/>
- <cd:variable name='appendix' value='annexe'/>
- <cd:variable name='april' value='avril'/>
- <cd:variable name='aside' value='apart'/>
- <cd:variable name='atleftmargin' value='enmargegauche'/>
- <cd:variable name='atmargin' value='enmarge'/>
- <cd:variable name='atpage' value='enpage'/>
- <cd:variable name='atrightmargin' value='enmargedroite'/>
- <cd:variable name='attachment' value='piecejointe'/>
- <cd:variable name='august' value='aout'/>
- <cd:variable name='author' value='auteur'/>
- <cd:variable name='auto' value='auto'/>
- <cd:variable name='autointro' value='autointro'/>
- <cd:variable name='autopunctuation' value='autoponctuation'/>
- <cd:variable name='back' value='retour'/>
- <cd:variable name='background' value='arriereplan'/>
- <cd:variable name='backmatter' value='pagesdefin'/>
- <cd:variable name='backpart' value='postface'/>
- <cd:variable name='backspace' value='retourarrière'/>
- <cd:variable name='backward' value='enarriere'/>
- <cd:variable name='bbl' value='bbl'/>
- <cd:variable name='before' value='avant'/>
- <cd:variable name='begin' value='commencer'/>
- <cd:variable name='bib' value='bib'/>
- <cd:variable name='big' value='important'/>
- <cd:variable name='bigbodyfont' value='policedecorpsimportante'/>
- <cd:variable name='bigger' value='plusimportant'/>
- <cd:variable name='bigpreference' value='preferenceimportante'/>
- <cd:variable name='blank' value='vierge'/>
- <cd:variable name='block' value='bloc'/>
- <cd:variable name='blockquote' value='citerbloc'/>
- <cd:variable name='bodymatter' value='pagescorpsdetexte'/>
- <cd:variable name='bodypart' value='corpsdetexte'/>
- <cd:variable name='bold' value='gras'/>
- <cd:variable name='bolditalic' value='grasitalique'/>
- <cd:variable name='boldslanted' value='grasincline'/>
- <cd:variable name='bookmark' value='marquepage'/>
- <cd:variable name='both' value='chacun'/>
- <cd:variable name='bothtext' value='textechacun'/>
- <cd:variable name='bottom' value='bas'/>
- <cd:variable name='box' value='boite'/>
- <cd:variable name='brief' value='brief'/>
- <cd:variable name='broad' value='large'/>
- <cd:variable name='buffer' value='tampon'/>
- <cd:variable name='by' value='par'/>
- <cd:variable name='calligraphic' value='calligraphique'/>
- <cd:variable name='camel' value='camel'/>
- <cd:variable name='cap' value='cap'/>
- <cd:variable name='capital' value='capitales'/>
- <cd:variable name='category' value='categorie'/>
- <cd:variable name='cd:character' value='caracteres'/>
- <cd:variable name='cd:font' value='police'/>
- <cd:variable name='center' value='centrer'/>
- <cd:variable name='centerlast' value='centrerdernier'/>
- <cd:variable name='chapter' value='chapitre'/>
- <cd:variable name='character' value='caractere'/>
- <cd:variable name='characters' value='caracteres'/>
- <cd:variable name='chemical' value='chimique'/>
- <cd:variable name='chemicals' value='chimiques'/>
- <cd:variable name='chemistry' value='chimie'/>
- <cd:variable name='cite' value='cite'/>
- <cd:variable name='closed' value='ferme'/>
- <cd:variable name='color' value='couleur'/>
- <cd:variable name='column' value='colonne'/>
- <cd:variable name='columns' value='colonnes'/>
- <cd:variable name='combination' value='combinaison'/>
- <cd:variable name='command' value='commande'/>
- <cd:variable name='commands' value='commandes'/>
- <cd:variable name='comment' value='commentaire'/>
- <cd:variable name='component' value='composant'/>
- <cd:variable name='compressseparator' value='separateurreduction'/>
- <cd:variable name='compressstopper' value='stoppeurreduction'/>
- <cd:variable name='concept' value='concept'/>
- <cd:variable name='construction' value='construction'/>
- <cd:variable name='content' value='contenu'/>
- <cd:variable name='contents' value='contenus'/>
- <cd:variable name='continue' value='continuer'/>
- <cd:variable name='continued' value='continue'/>
- <cd:variable name='controls' value='controles'/>
- <cd:variable name='conversion' value='conversion'/>
- <cd:variable name='current' value='courant'/>
- <cd:variable name='cutspace' value='espacecoupe'/>
- <cd:variable name='dataset' value='jeudedonnees'/>
- <cd:variable name='date' value='date'/>
- <cd:variable name='day' value='jour'/>
- <cd:variable name='december' value='decembre'/>
- <cd:variable name='default' value='defaut'/>
- <cd:variable name='depth' value='profondeur'/>
- <cd:variable name='description' value='description'/>
- <cd:variable name='disable' value='desactiver'/>
- <cd:variable name='display' value='affichage'/>
- <cd:variable name='dot' value='point'/>
- <cd:variable name='doublesided' value='rectoverso'/>
- <cd:variable name='down' value='enbas'/>
- <cd:variable name='each' value='chaque'/>
- <cd:variable name='edge' value='bord'/>
- <cd:variable name='effective' value='effectif'/>
- <cd:variable name='eight' value='huit'/>
- <cd:variable name='embed' value='integrer'/>
- <cd:variable name='empty' value='vide'/>
- <cd:variable name='enable' value='activer'/>
- <cd:variable name='end' value='terminer'/>
- <cd:variable name='endnote' value='noteseule'/>
- <cd:variable name='enumeration' value='énumération'/>
- <cd:variable name='environment' value='environnement'/>
- <cd:variable name='even' value='paire'/>
- <cd:variable name='export' value='exporter'/>
- <cd:variable name='external' value='externe'/>
- <cd:variable name='extremestretch' value='etirementextreme'/>
- <cd:variable name='fact' value='fait'/>
- <cd:variable name='fallback' value='repli'/>
- <cd:variable name='february' value='fevrier'/>
- <cd:variable name='field' value='champ'/>
- <cd:variable name='figure' value='figure'/>
- <cd:variable name='figures' value='figures'/>
- <cd:variable name='file' value='fichier'/>
- <cd:variable name='final' value='final'/>
- <cd:variable name='first' value='premier'/>
- <cd:variable name='firstcolumn' value='premierecolonne'/>
- <cd:variable name='firstpage' value='premierepage'/>
- <cd:variable name='firstsubpage' value='premieresouspage'/>
- <cd:variable name='fit' value='adapter'/>
- <cd:variable name='five' value='cinq'/>
- <cd:variable name='fix' value='fix'/>
- <cd:variable name='fixed' value='fixe'/>
- <cd:variable name='flexible' value='flexible'/>
- <cd:variable name='float' value='flottant'/>
- <cd:variable name='flushinner' value='alignerinterieur'/>
- <cd:variable name='flushleft' value='alignergauche'/>
- <cd:variable name='flushouter' value='alignerexterieur'/>
- <cd:variable name='flushright' value='alignerdroite'/>
- <cd:variable name='followingpage' value='pagesuccesseur'/>
- <cd:variable name='font' value='font'/>
- <cd:variable name='footer' value='pdp'/>
- <cd:variable name='footnote' value='notebdp'/>
- <cd:variable name='force' value='forcer'/>
- <cd:variable name='foreground' value='premierplan'/>
- <cd:variable name='formula' value='formule'/>
- <cd:variable name='formulas' value='formules'/>
- <cd:variable name='forward' value='enavant'/>
- <cd:variable name='four' value='quatre'/>
- <cd:variable name='fractions' value='fractions'/>
- <cd:variable name='frame' value='cadre'/>
- <cd:variable name='framedtext' value='texteencadre'/>
- <cd:variable name='friday' value='vendredi'/>
- <cd:variable name='frontmatter' value='pagesliminaires'/>
- <cd:variable name='frontpart' value='preface'/>
- <cd:variable name='fullhz' value='hzcomplet'/>
- <cd:variable name='global' value='global'/>
- <cd:variable name='graphic' value='graphique'/>
- <cd:variable name='graphics' value='graphiques'/>
- <cd:variable name='gray' value='gris'/>
- <cd:variable name='greek' value='grec'/>
- <cd:variable name='grid' value='grille'/>
- <cd:variable name='halfline' value='demiligne'/>
- <cd:variable name='handwritten' value='manuscript'/>
- <cd:variable name='hang' value='suspendre'/>
- <cd:variable name='hanging' value='suspension'/>
- <cd:variable name='hangingboth' value='suspensionchacun'/>
- <cd:variable name='head' value='tete'/>
- <cd:variable name='header' value='entête'/>
- <cd:variable name='headintext' value='tetedanstexte'/>
- <cd:variable name='height' value='hauteur'/>
- <cd:variable name='helptext' value='texteaide'/>
- <cd:variable name='hencefore' value='precedemment'/>
- <cd:variable name='here' value='ici'/>
- <cd:variable name='hereafter' value='ciapres'/>
- <cd:variable name='hidden' value='cache'/>
- <cd:variable name='hiddenbar' value='barrecachee'/>
- <cd:variable name='hiding' value='encachant'/>
- <cd:variable name='high' value='exp'/>
- <cd:variable name='horizontal' value='horizontal'/>
- <cd:variable name='hyphenated' value='aveccesure'/>
- <cd:variable name='hz' value='hz'/>
- <cd:variable name='inbetween' value='entre'/>
- <cd:variable name='index' value='index'/>
- <cd:variable name='indices' value='indices'/>
- <cd:variable name='inherit' value='heriter'/>
- <cd:variable name='ininner' value='dansinterieur'/>
- <cd:variable name='ininneredge' value='dansbordinterieur'/>
- <cd:variable name='ininnermargin' value='dansmargeinterieure'/>
- <cd:variable name='inleft' value='dansgauche'/>
- <cd:variable name='inleftedge' value='dansbordgauche'/>
- <cd:variable name='inleftmargin' value='dansmargegauche'/>
- <cd:variable name='inline' value='enligne'/>
- <cd:variable name='inmargin' value='dansmarge'/>
- <cd:variable name='inner' value='interieur'/>
- <cd:variable name='inneredge' value='bordinterieur'/>
- <cd:variable name='innermargin' value='margeinterieure'/>
- <cd:variable name='inother' value='dansautre'/>
- <cd:variable name='inouter' value='dansexterieur'/>
- <cd:variable name='inouteredge' value='dansbordexterieur'/>
- <cd:variable name='inoutermargin' value='dansmargeexterieure'/>
- <cd:variable name='inright' value='dansdroite'/>
- <cd:variable name='inrightedge' value='dansborddroit'/>
- <cd:variable name='inrightmargin' value='dansmargedroite'/>
- <cd:variable name='integral' value='integrale'/>
- <cd:variable name='interaction' value='interaction'/>
- <cd:variable name='interactionmenu' value='menuinteraction'/>
- <cd:variable name='interactive' value='interactif'/>
- <cd:variable name='intermezzi' value='interludes'/>
- <cd:variable name='intermezzo' value='interlude'/>
- <cd:variable name='intext' value='danstexte'/>
- <cd:variable name='intro' value='intro'/>
- <cd:variable name='invertedshort' value='invertedshort'/>
- <cd:variable name='italic' value='italique'/>
- <cd:variable name='italicbold' value='italiquegras'/>
- <cd:variable name='item' value='élément'/>
- <cd:variable name='itemize' value='détailler'/>
- <cd:variable name='its' value='els'/>
- <cd:variable name='january' value='janvier'/>
- <cd:variable name='joinedup' value='sansespaceentre'/>
- <cd:variable name='july' value='juillet'/>
- <cd:variable name='june' value='juin'/>
- <cd:variable name='keep' value='conserver'/>
- <cd:variable name='kerncharacters' value='approchercaracteres'/>
- <cd:variable name='knockout' value='knockout'/>
- <cd:variable name='label' value='etiquette'/>
- <cd:variable name='landscape' value='paysage'/>
- <cd:variable name='last' value='dernier'/>
- <cd:variable name='lastcolumn' value='dernierecolonne'/>
- <cd:variable name='lastpage' value='dernierepage'/>
- <cd:variable name='lastpagenumber' value='numerodenierepage'/>
- <cd:variable name='lastsubpage' value='dernieresouspage'/>
- <cd:variable name='layer' value='calque'/>
- <cd:variable name='left' value='gauche'/>
- <cd:variable name='leftedge' value='bordgauche'/>
- <cd:variable name='lefthanging' value='suspensiongauche'/>
- <cd:variable name='leftmargin' value='margegauche'/>
- <cd:variable name='leftpage' value='surpagegauche'/>
- <cd:variable name='lefttoright' value='gaucheadroite'/>
- <cd:variable name='legend' value='legende'/>
- <cd:variable name='less' value='moins'/>
- <cd:variable name='lesshyphenation' value='moinsdecesure'/>
- <cd:variable name='letterspacing' value='espacementlettre'/>
- <cd:variable name='line' value='ligne'/>
- <cd:variable name='linenote' value='noteligne'/>
- <cd:variable name='lines' value='lignes'/>
- <cd:variable name='linked' value='lie'/>
- <cd:variable name='list' value='liste'/>
- <cd:variable name='local' value='local'/>
- <cd:variable name='localenvironment' value='environnementlocal'/>
- <cd:variable name='logo' value='logo'/>
- <cd:variable name='logos' value='logos'/>
- <cd:variable name='lohi' value='inex'/>
- <cd:variable name='long' value='long'/>
- <cd:variable name='loose' value='envrac'/>
- <cd:variable name='low' value='ind'/>
- <cd:variable name='ls' value='ls'/>
- <cd:variable name='makeup' value='composition'/>
- <cd:variable name='mar' value='rem'/>
- <cd:variable name='march' value='mars'/>
- <cd:variable name='margin' value='marge'/>
- <cd:variable name='marginedge' value='margebord'/>
- <cd:variable name='margintext' value='textemarge'/>
- <cd:variable name='margintitle' value='titremarge'/>
- <cd:variable name='marking' value='marquage'/>
- <cd:variable name='math' value='math'/>
- <cd:variable name='mathalignment' value='alignementmath'/>
- <cd:variable name='mathcases' value='casmath'/>
- <cd:variable name='mathematics' value='mathematics'/>
- <cd:variable name='mathmatrix' value='matricemath'/>
- <cd:variable name='max' value='max'/>
- <cd:variable name='maxdepth' value='profondeurmax'/>
- <cd:variable name='maxheight' value='hauteurmax'/>
- <cd:variable name='maxwidth' value='largeurmax'/>
- <cd:variable name='may' value='mai'/>
- <cd:variable name='mediaeval' value='medieval'/>
- <cd:variable name='medium' value='moyen'/>
- <cd:variable name='middle' value='milieu'/>
- <cd:variable name='min' value='min'/>
- <cd:variable name='mindepth' value='profondeurmin'/>
- <cd:variable name='minheight' value='hauteurmin'/>
- <cd:variable name='minwidth' value='largeurmin'/>
- <cd:variable name='mirrored' value='reflete'/>
- <cd:variable name='mixed' value='mixte'/>
- <cd:variable name='monday' value='lundi'/>
- <cd:variable name='mono' value='mono'/>
- <cd:variable name='monobold' value='monogras'/>
- <cd:variable name='mononormal' value='normalmono'/>
- <cd:variable name='month' value='mois'/>
- <cd:variable name='more' value='plus'/>
- <cd:variable name='morehyphenation' value='plusdecesure'/>
- <cd:variable name='name' value='nom'/>
- <cd:variable name='narrow' value='etroit'/>
- <cd:variable name='negative' value='negatif'/>
- <cd:variable name='never' value='jamais'/>
- <cd:variable name='new' value='nouveau'/>
- <cd:variable name='next' value='suivant'/>
- <cd:variable name='nextevenpage' value='pagepairesuivante'/>
- <cd:variable name='nextoddpage' value='pageimpairesuivante'/>
- <cd:variable name='nextpage' value='pagesuivante'/>
- <cd:variable name='nextsubpage' value='souspagesuivante'/>
- <cd:variable name='nine' value='neuf'/>
- <cd:variable name='no' value='non'/>
- <cd:variable name='nocheck' value='sansverifier'/>
- <cd:variable name='nodepth' value='sansprodondeur'/>
- <cd:variable name='nofit' value='sansadapter'/>
- <cd:variable name='nogrid' value='sansgrille'/>
- <cd:variable name='noheight' value='sanshauteur'/>
- <cd:variable name='nohz' value='sanshz'/>
- <cd:variable name='noline' value='sansligne'/>
- <cd:variable name='nomarking' value='sansmarquage'/>
- <cd:variable name='nomenubar' value='sansbarremenu'/>
- <cd:variable name='none' value='aucun'/>
- <cd:variable name='nonumber' value='sansnumero'/>
- <cd:variable name='norepeat' value='sansrepetition'/>
- <cd:variable name='normal' value='normal'/>
- <cd:variable name='normalshort' value='normalshort'/>
- <cd:variable name='nospacing' value='sansespacement'/>
- <cd:variable name='nostopper' value='sansstoppeur'/>
- <cd:variable name='not' value='pas'/>
- <cd:variable name='notation' value='notation'/>
- <cd:variable name='note' value='note'/>
- <cd:variable name='nothanging' value='sanssuspension'/>
- <cd:variable name='nothyphenated' value='sanscesure'/>
- <cd:variable name='notjoinedup' value='passansespaceentre'/>
- <cd:variable name='november' value='novembre'/>
- <cd:variable name='nowhere' value='nullepart'/>
- <cd:variable name='nowhite' value='sansblanc'/>
- <cd:variable name='number' value='numero'/>
- <cd:variable name='numbers' value='numeros'/>
- <cd:variable name='october' value='octobre'/>
- <cd:variable name='odd' value='impair'/>
- <cd:variable name='off' value='arret'/>
- <cd:variable name='offset' value='decalage'/>
- <cd:variable name='old' value='ancien'/>
- <cd:variable name='oldstyle' value='styleancien'/>
- <cd:variable name='on' value='marche'/>
- <cd:variable name='one' value='un'/>
- <cd:variable name='opposite' value='enface'/>
- <cd:variable name='ordinal' value='ordinal'/>
- <cd:variable name='outer' value='exterieur'/>
- <cd:variable name='outeredge' value='bordexterieur'/>
- <cd:variable name='outermargin' value='margeexterieure'/>
- <cd:variable name='overbar' value='surligner'/>
- <cd:variable name='overbars' value='surlignermots'/>
- <cd:variable name='overlay' value='superposition'/>
- <cd:variable name='overprint' value='surimpression'/>
- <cd:variable name='overstrike' value='barrer'/>
- <cd:variable name='overstrikes' value='barrermots'/>
- <cd:variable name='packed' value='sansespaceentreitem'/>
- <cd:variable name='page' value='page'/>
- <cd:variable name='pagecomment' value='commentairepage'/>
- <cd:variable name='pagenumber' value='numeropage'/>
- <cd:variable name='paper' value='papier'/>
- <cd:variable name='paragraph' value='paragraphe'/>
- <cd:variable name='part' value='partie'/>
- <cd:variable name='positive' value='positif'/>
- <cd:variable name='postponing' value='report'/>
- <cd:variable name='postscript' value='postscript'/>
- <cd:variable name='precedingpage' value='pageantecedent'/>
- <cd:variable name='preference' value='preference'/>
- <cd:variable name='preview' value='apercu'/>
- <cd:variable name='previous' value='precedent'/>
- <cd:variable name='previousevenpage' value='pagepaireprecedente'/>
- <cd:variable name='previousoddpage' value='pageimpaireprecedente'/>
- <cd:variable name='previouspage' value='pageprecedente'/>
- <cd:variable name='previoussubpage' value='souspageprecedente'/>
- <cd:variable name='print' value='imprimer'/>
- <cd:variable name='printable' value='imprimable'/>
- <cd:variable name='process' value='traiter'/>
- <cd:variable name='product' value='produit'/>
- <cd:variable name='program' value='programme'/>
- <cd:variable name='project' value='projet'/>
- <cd:variable name='protected' value='protege'/>
- <cd:variable name='quadruple' value='quadruple'/>
- <cd:variable name='quarterline' value='quartdeligne'/>
- <cd:variable name='quotation' value='citation'/>
- <cd:variable name='quote' value='citer'/>
- <cd:variable name='ran' value='gam'/>
- <cd:variable name='random' value='aleatoire'/>
- <cd:variable name='readonly' value='lectureseule'/>
- <cd:variable name='rectangular' value='rectangulaire'/>
- <cd:variable name='reference' value='reference'/>
- <cd:variable name='referral' value='redirection'/>
- <cd:variable name='region' value='region'/>
- <cd:variable name='register' value='registre'/>
- <cd:variable name='regular' value='ordinaire'/>
- <cd:variable name='relative' value='relatif'/>
- <cd:variable name='repeat' value='repeter'/>
- <cd:variable name='required' value='requis'/>
- <cd:variable name='reset' value='raz'/>
- <cd:variable name='reverse' value='inverser'/>
- <cd:variable name='right' value='droite'/>
- <cd:variable name='rightedge' value='borddroit'/>
- <cd:variable name='righthanging' value='suspensiondroite'/>
- <cd:variable name='rightmargin' value='margedroite'/>
- <cd:variable name='rightpage' value='surpagedroite'/>
- <cd:variable name='righttoleft' value='droiteagauche'/>
- <cd:variable name='roman' value='romain'/>
- <cd:variable name='romannumerals' value='chiffresromains'/>
- <cd:variable name='rotate' value='tourner'/>
- <cd:variable name='rotated' value='tourne'/>
- <cd:variable name='round' value='rond'/>
- <cd:variable name='row' value='rang'/>
- <cd:variable name='rule' value='trait'/>
- <cd:variable name='samepage' value='memepage'/>
- <cd:variable name='sans' value='sans'/>
- <cd:variable name='sansbold' value='sansserifbold'/>
- <cd:variable name='sansnormal' value='normalsans'/>
- <cd:variable name='sansserif' value='sansserif'/>
- <cd:variable name='saturday' value='samedi'/>
- <cd:variable name='screen' value='ecran'/>
- <cd:variable name='section' value='section'/>
- <cd:variable name='sectionblockenvironment' value='environnementblocsection'/>
- <cd:variable name='sectionnumber' value='numerosection'/>
- <cd:variable name='see' value='voir'/>
- <cd:variable name='selectfont' value='selectionnerpolice'/>
- <cd:variable name='separator' value='separateur'/>
- <cd:variable name='september' value='septembre'/>
- <cd:variable name='serif' value='serif'/>
- <cd:variable name='serifbold' value='serifgras'/>
- <cd:variable name='serifnormal' value='serifnormal'/>
- <cd:variable name='serried' value='serre'/>
- <cd:variable name='setups' value='setups'/>
- <cd:variable name='seven' value='sept'/>
- <cd:variable name='sheet' value='feuille'/>
- <cd:variable name='shiftdown' value='decalerenbas'/>
- <cd:variable name='shiftup' value='decalerenhaut'/>
- <cd:variable name='short' value='court'/>
- <cd:variable name='simplefonts' value='policessimple'/>
- <cd:variable name='simplelist' value='listesimple'/>
- <cd:variable name='singlesided' value='recto'/>
- <cd:variable name='six' value='six'/>
- <cd:variable name='slanted' value='incline'/>
- <cd:variable name='slantedbold' value='inclinegras'/>
- <cd:variable name='small' value='petit'/>
- <cd:variable name='smallbodyfont' value='policedecorpspetite'/>
- <cd:variable name='smallbold' value='petitgras'/>
- <cd:variable name='smallbolditalic' value='petitgrasitalique'/>
- <cd:variable name='smallboldslanted' value='petitgrasincline'/>
- <cd:variable name='smallcaps' value='petitescaps'/>
- <cd:variable name='smaller' value='pluspetit'/>
- <cd:variable name='smallitalic' value='petititalique'/>
- <cd:variable name='smallitalicbold' value='petititaliquegras'/>
- <cd:variable name='smallnormal' value='petitnormal'/>
- <cd:variable name='smallslanted' value='petitincline'/>
- <cd:variable name='smallslantedbold' value='petitinclinegras'/>
- <cd:variable name='smalltype' value='petitcaractere'/>
- <cd:variable name='somewhere' value='qqpart'/>
- <cd:variable name='sorted' value='trie'/>
- <cd:variable name='sorting' value='tri'/>
- <cd:variable name='space' value='espace'/>
- <cd:variable name='spacing' value='espacement'/>
- <cd:variable name='speech' value='discours'/>
- <cd:variable name='split' value='partager'/>
- <cd:variable name='spot' value='tondirect'/>
- <cd:variable name='standard' value='standard'/>
- <cd:variable name='start' value='activé'/>
- <cd:variable name='starter' value='demarreur'/>
- <cd:variable name='sticker' value='autocollant'/>
- <cd:variable name='stop' value='fin'/>
- <cd:variable name='stopper' value='stoppeur'/>
- <cd:variable name='stretch' value='etirer'/>
- <cd:variable name='stretched' value='etire'/>
- <cd:variable name='strict' value='strict'/>
- <cd:variable name='strong' value='fort'/>
- <cd:variable name='strut' value='entretoise'/>
- <cd:variable name='sub' value='sous'/>
- <cd:variable name='subbackward' value='petitenarriere'/>
- <cd:variable name='subformula' value='sousformule'/>
- <cd:variable name='subforward' value='petitenavant'/>
- <cd:variable name='subject' value='sujet'/>
- <cd:variable name='subpage' value='souspage'/>
- <cd:variable name='subs' value='subs'/>
- <cd:variable name='subsection' value='soussection'/>
- <cd:variable name='subsubject' value='soussujet'/>
- <cd:variable name='subsubsection' value='soussoussection'/>
- <cd:variable name='subsubsubject' value='soussoussujet'/>
- <cd:variable name='subsubsubsection' value='soussoussoussection'/>
- <cd:variable name='subsubsubsubject' value='soussoussoussujet'/>
- <cd:variable name='subsubsubsubsection' value='soussoussoussoussection'/>
- <cd:variable name='subsubsubsubsubject' value='soussoussoussoussujet'/>
- <cd:variable name='subsubsubsubsubsection' value='soussoussoussoussoussection'/>
- <cd:variable name='subsubsubsubsubsubject' value='soussoussoussoussoussujet'/>
- <cd:variable name='subsubsubsubsubsubsection' value='soussoussoussoussoussoussection'/>
- <cd:variable name='subsubsubsubsubsubsubject' value='soussoussoussoussoussoussujet'/>
- <cd:variable name='subsubsubsubsubsubsubsection' value='soussoussoussoussoussoussoussection'/>
- <cd:variable name='subsubsubsubsubsubsubsubject' value='soussoussoussoussoussoussoussujet'/>
- <cd:variable name='subsubsubsubsubsubsubsubsection' value='soussoussoussoussoussoussoussoussection'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubject' value='soussoussoussoussoussoussoussoussujet'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubsection' value='soussoussoussoussoussoussoussoussoussection'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubsubject' value='soussoussoussoussoussoussoussoussoussujet'/>
- <cd:variable name='sunday' value='dimanche'/>
- <cd:variable name='support' value='support'/>
- <cd:variable name='sym' value='sym'/>
- <cd:variable name='symbol' value='symbole'/>
- <cd:variable name='synchronize' value='synchroniser'/>
- <cd:variable name='synonym' value='synonyme'/>
- <cd:variable name='system' value='systeme'/>
- <cd:variable name='table' value='table'/>
- <cd:variable name='tablehead' value='tetetableau'/>
- <cd:variable name='tables' value='tables'/>
- <cd:variable name='tabletail' value='queuetable'/>
- <cd:variable name='tabulate' value='tabulation'/>
- <cd:variable name='tabulatehead' value='tetetabulation'/>
- <cd:variable name='tabulatetail' value='queuetabulation'/>
- <cd:variable name='tall' value='grand'/>
- <cd:variable name='teletype' value='caractereterminal'/>
- <cd:variable name='temporary' value='temporaire'/>
- <cd:variable name='test' value='test'/>
- <cd:variable name='text' value='texte'/>
- <cd:variable name='textnote' value='notetexte'/>
- <cd:variable name='three' value='trois'/>
- <cd:variable name='thursday' value='jeudi'/>
- <cd:variable name='tight' value='resserre'/>
- <cd:variable name='title' value='titre'/>
- <cd:variable name='toggle' value='basculer'/>
- <cd:variable name='tolerant' value='tolerant'/>
- <cd:variable name='top' value='haut'/>
- <cd:variable name='tuesday' value='mardi'/>
- <cd:variable name='two' value='deux'/>
- <cd:variable name='txt' value='txt'/>
- <cd:variable name='type' value='transcrire'/>
- <cd:variable name='typing' value='transcription'/>
- <cd:variable name='unavailable' value='indisponible'/>
- <cd:variable name='underbar' value='souligner'/>
- <cd:variable name='underbars' value='soulignermots'/>
- <cd:variable name='understrike' value='soubarrer'/>
- <cd:variable name='understrikes' value='soubarrermots'/>
- <cd:variable name='unframed' value='desencadre'/>
- <cd:variable name='unicode' value='unicode'/>
- <cd:variable name='unit' value='unite'/>
- <cd:variable name='units' value='unites'/>
- <cd:variable name='unknown' value='inconnu'/>
- <cd:variable name='unpacked' value='avecespaceentreitem'/>
- <cd:variable name='up' value='enhaut'/>
- <cd:variable name='url' value='url'/>
- <cd:variable name='used' value='utilise'/>
- <cd:variable name='value' value='valeur'/>
- <cd:variable name='vertical' value='vertical'/>
- <cd:variable name='very' value='tres'/>
- <cd:variable name='verystrict' value='tresstrict'/>
- <cd:variable name='verytolerant' value='trestolerant'/>
- <cd:variable name='vfenced' value='cloturev'/>
- <cd:variable name='vulgarfraction' value='vulgarfraction'/>
- <cd:variable name='weak' value='faible'/>
- <cd:variable name='wednesday' value='mercredi'/>
- <cd:variable name='week' value='semaine'/>
- <cd:variable name='weekday' value='joursemaine'/>
- <cd:variable name='white' value='blanc'/>
- <cd:variable name='wide' value='ample'/>
- <cd:variable name='width' value='largeur'/>
- <cd:variable name='word' value='mot'/>
- <cd:variable name='words' value='mots'/>
- <cd:variable name='xml' value='xml'/>
- <cd:variable name='year' value='annee'/>
- <cd:variable name='yes' value='oui'/>
- </cd:variables>
-
- <!-- definitions for interface constants for language fr -->
-
- <cd:constants>
- <cd:constant name='action' value='action'/>
- <cd:constant name='address' value='adresse'/>
- <cd:constant name='after' value='après'/>
- <cd:constant name='afterhead' value='aprèstête'/>
- <cd:constant name='afterkey' value='aprèsclé'/>
- <cd:constant name='aftersection' value='aprèssection'/>
- <cd:constant name='align' value='aligner'/>
- <cd:constant name='alignbottom' value='alignerbas'/>
- <cd:constant name='aligncharacter' value='alignersurcaractere'/>
- <cd:constant name='alignmentcharacter' value='caracterealignement'/>
- <cd:constant name='alignmentleftsample' value='echantillongauchealignement'/>
- <cd:constant name='alignmentleftwidth' value='largeurgauchealignement'/>
- <cd:constant name='alignmentrightsample' value='echantillondroitealignement'/>
- <cd:constant name='alignmentrightwidth' value='largeurdroitealignement'/>
- <cd:constant name='alignsymbol' value='alignersursymbol'/>
- <cd:constant name='aligntitle' value='alignersurtitre'/>
- <cd:constant name='alternative' value='variante'/>
- <cd:constant name='anchor' value='ancre'/>
- <cd:constant name='anchoring' value='ancrage'/>
- <cd:constant name='andtext' value='ettexte'/>
- <cd:constant name='apa' value='apa'/>
- <cd:constant name='arguments' value='arguments'/>
- <cd:constant name='arrow' value='fleche'/>
- <cd:constant name='artauthor' value='artauteur'/>
- <cd:constant name='artauthoretaldisplay' value='artauteuretalaffichage'/>
- <cd:constant name='artauthoretallimit' value='artauteuretallimite'/>
- <cd:constant name='artauthoretaltext' value='artauteuretaltexte'/>
- <cd:constant name='artoffset' value='artdecalage'/>
- <cd:constant name='at' value='en'/>
- <cd:constant name='author' value='auteur'/>
- <cd:constant name='authorconversion' value='auteurconversion'/>
- <cd:constant name='authoretaldisplay' value='auteuretalaffichage'/>
- <cd:constant name='authoretallimit' value='auteuretallimite'/>
- <cd:constant name='authoretaltext' value='auteuretaltexte'/>
- <cd:constant name='auto' value='auto'/>
- <cd:constant name='autocase' value='autocase'/>
- <cd:constant name='autofile' value='autofichier'/>
- <cd:constant name='autofocus' value='autofocus'/>
- <cd:constant name='autohang' value='autosuspendre'/>
- <cd:constant name='autostrut' value='autoentretoise'/>
- <cd:constant name='autowidth' value='autolargeur'/>
- <cd:constant name='availableheight' value='hauteurdisponible'/>
- <cd:constant name='availablewidth' value='largeurdisponible'/>
- <cd:constant name='axis' value='axe'/>
- <cd:constant name='background' value='arriereplan'/>
- <cd:constant name='backgroundcolor' value='couleurarriereplan'/>
- <cd:constant name='backgroundcorner' value='coinarriereplan'/>
- <cd:constant name='backgrounddepth' value='profondeurarriereplan'/>
- <cd:constant name='backgroundoffset' value='decalagearriereplan'/>
- <cd:constant name='backgroundradius' value='rayonarriereplan'/>
- <cd:constant name='backgroundscreen' value='ecranarriereplan'/>
- <cd:constant name='backreference' value='retroreference'/>
- <cd:constant name='backspace' value='espacearrière'/>
- <cd:constant name='balance' value='equilibrer'/>
- <cd:constant name='before' value='avant'/>
- <cd:constant name='beforehead' value='avanttete'/>
- <cd:constant name='beforesection' value='avantsection'/>
- <cd:constant name='bet' value='suj'/>
- <cd:constant name='bidi' value='bidi'/>
- <cd:constant name='big' value='important'/>
- <cd:constant name='blank' value='vierge'/>
- <cd:constant name='bleedoffset' value='decalagefuite'/>
- <cd:constant name='blockway' value='faconbloc'/>
- <cd:constant name='bodyfont' value='policedecorps'/>
- <cd:constant name='boffset' value='decalageb'/>
- <cd:constant name='boldfeatures' value='fonctionnalitesgras'/>
- <cd:constant name='boldfont' value='policegras'/>
- <cd:constant name='bolditalicfeatures' value='fonctionnalitesgrasitalique'/>
- <cd:constant name='bolditalicfont' value='policegrasitalique'/>
- <cd:constant name='boldslantedfeatures' value='fonctionnalitesgrasincline'/>
- <cd:constant name='boldslantedfont' value='policegrasincline'/>
- <cd:constant name='bookmark' value='marquepage'/>
- <cd:constant name='bottom' value='bas'/>
- <cd:constant name='bottomafter' value='basaprès'/>
- <cd:constant name='bottombefore' value='basavant'/>
- <cd:constant name='bottomcommand' value='commandebas'/>
- <cd:constant name='bottomdistance' value='distancebas'/>
- <cd:constant name='bottomframe' value='cadrebas'/>
- <cd:constant name='bottomoffset' value='decalagebas'/>
- <cd:constant name='bottomspace' value='espacebas'/>
- <cd:constant name='bottomstate' value='etatbas'/>
- <cd:constant name='break' value='saut'/>
- <cd:constant name='buffer' value='tampon'/>
- <cd:constant name='cache' value='memoirecache'/>
- <cd:constant name='calculate' value='calculer'/>
- <cd:constant name='category' value='categorie'/>
- <cd:constant name='ccommand' value='commandec'/>
- <cd:constant name='character' value='caractere'/>
- <cd:constant name='characters' value='caracteres'/>
- <cd:constant name='check' value='verifier'/>
- <cd:constant name='click' value='clic'/>
- <cd:constant name='clickin' value='clicinterieur'/>
- <cd:constant name='clickout' value='clicexterieur'/>
- <cd:constant name='clipoffset' value='decalagedecoupe'/>
- <cd:constant name='closeaction' value='fermeraction'/>
- <cd:constant name='closecommand' value='fermercommande'/>
- <cd:constant name='closepage' value='fermerpage'/>
- <cd:constant name='closepageaction' value='fermeractionpage'/>
- <cd:constant name='closesymbol' value='fermersymbol'/>
- <cd:constant name='color' value='couleur'/>
- <cd:constant name='column' value='colonne'/>
- <cd:constant name='columndistance' value='distancecolonne'/>
- <cd:constant name='columns' value='colonnes'/>
- <cd:constant name='comma' value='virgule'/>
- <cd:constant name='command' value='commande'/>
- <cd:constant name='commandafter' value='commandeaprès'/>
- <cd:constant name='commandbefore' value='commandeavant'/>
- <cd:constant name='commands' value='commandes'/>
- <cd:constant name='comment' value='commentaire'/>
- <cd:constant name='commentchar' value='caracommentaire'/>
- <cd:constant name='commentoffset' value='decalagecommentaire'/>
- <cd:constant name='compact' value='compact'/>
- <cd:constant name='component' value='composant'/>
- <cd:constant name='compoundhyphen' value='traitdunioncompose'/>
- <cd:constant name='compress' value='reduire'/>
- <cd:constant name='compressdistance' value='distancereduction'/>
- <cd:constant name='compressmethod' value='methodereduction'/>
- <cd:constant name='compressseparator' value='separateurreduction'/>
- <cd:constant name='compressstopper' value='stoppeurreduction'/>
- <cd:constant name='concerns' value='concerne'/>
- <cd:constant name='connector' value='connecteur'/>
- <cd:constant name='continue' value='continuer'/>
- <cd:constant name='contrastcolor' value='couleurconstrast'/>
- <cd:constant name='controls' value='controles'/>
- <cd:constant name='conversion' value='conversion'/>
- <cd:constant name='convertfile' value='convertirfichier'/>
- <cd:constant name='copies' value='copies'/>
- <cd:constant name='corner' value='coin'/>
- <cd:constant name='coupling' value='couplage'/>
- <cd:constant name='couplingway' value='faconcouplage'/>
- <cd:constant name='criterium' value='critere'/>
- <cd:constant name='cropoffset' value='decalagerecadre'/>
- <cd:constant name='crossreference' value='renvoi'/>
- <cd:constant name='cssfile' value='fichiercss'/>
- <cd:constant name='current' value='courant'/>
- <cd:constant name='cutspace' value='espacecoupe'/>
- <cd:constant name='dash' value='pointille'/>
- <cd:constant name='dat' value='dat'/>
- <cd:constant name='database' value='basededonnees'/>
- <cd:constant name='dataset' value='jeudedonnees'/>
- <cd:constant name='date' value='date'/>
- <cd:constant name='deepnumbercommand' value='commandeprofondenumero'/>
- <cd:constant name='deeptextcommand' value='commandeprofondetexte'/>
- <cd:constant name='default' value='defaut'/>
- <cd:constant name='defaultheight' value='defaultheight'/>
- <cd:constant name='defaultwidth' value='defaultwidth'/>
- <cd:constant name='define' value='define'/>
- <cd:constant name='delay' value='retard'/>
- <cd:constant name='depth' value='profondeur'/>
- <cd:constant name='depthcorrection' value='correctionprofondeur'/>
- <cd:constant name='direction' value='direction'/>
- <cd:constant name='directory' value='repertoire'/>
- <cd:constant name='display' value='affichage'/>
- <cd:constant name='displaythreshold' value='seuilaffichage'/>
- <cd:constant name='distance' value='distance'/>
- <cd:constant name='domain' value='domaine'/>
- <cd:constant name='dot' value='point'/>
- <cd:constant name='doublesided' value='rectoverso'/>
- <cd:constant name='down' value='enbas'/>
- <cd:constant name='dummy' value='factice'/>
- <cd:constant name='dx' value='dx'/>
- <cd:constant name='dy' value='dy'/>
- <cd:constant name='edge' value='bord'/>
- <cd:constant name='edgedistance' value='distancebord'/>
- <cd:constant name='editor' value='editeur'/>
- <cd:constant name='editoretaldisplay' value='editeurealaffichage'/>
- <cd:constant name='editoretallimit' value='editeureallimite'/>
- <cd:constant name='editoretaltext' value='editeurealtexte'/>
- <cd:constant name='empty' value='vide'/>
- <cd:constant name='entities' value='entitees'/>
- <cd:constant name='entries' value='entrees'/>
- <cd:constant name='equalheight' value='hauteuregale'/>
- <cd:constant name='equalwidth' value='margeuregale'/>
- <cd:constant name='escape' value='echappatoire'/>
- <cd:constant name='etaldisplay' value='etalaffichage'/>
- <cd:constant name='etallimit' value='etallimite'/>
- <cd:constant name='etaloption' value='etaloption'/>
- <cd:constant name='etaltext' value='etalttexte'/>
- <cd:constant name='evenmargin' value='margepaire'/>
- <cd:constant name='exact' value='exact'/>
- <cd:constant name='exitoffset' value='decalagesortie'/>
- <cd:constant name='expansion' value='expansion'/>
- <cd:constant name='export' value='exporter'/>
- <cd:constant name='extras' value='extras'/>
- <cd:constant name='factor' value='facteur'/>
- <cd:constant name='fallback' value='repli'/>
- <cd:constant name='fallbacks' value='replis'/>
- <cd:constant name='family' value='famille'/>
- <cd:constant name='features' value='fonctionnalites'/>
- <cd:constant name='featureset' value='jeufonctionnalite'/>
- <cd:constant name='fences' value='barrieres'/>
- <cd:constant name='field' value='champ'/>
- <cd:constant name='fieldbackgroundcolor' value='couleurarrierreplanchamp'/>
- <cd:constant name='fieldframecolor' value='couleurcadrechamp'/>
- <cd:constant name='fieldlayer' value='calquechamp'/>
- <cd:constant name='fieldoffset' value='decalagechamp'/>
- <cd:constant name='file' value='fichier'/>
- <cd:constant name='filler' value='remplisseur'/>
- <cd:constant name='filter' value='filtre'/>
- <cd:constant name='filtercommand' value='commandefiltre'/>
- <cd:constant name='finalnamesep' value='sepnomfinal'/>
- <cd:constant name='finalpagesep' value='seppagefinale'/>
- <cd:constant name='finalpubsep' value='seppubfinale'/>
- <cd:constant name='first' value='premier'/>
- <cd:constant name='firstnamesep' value='seppremiernom'/>
- <cd:constant name='firstpage' value='premierepage'/>
- <cd:constant name='focus' value='focus'/>
- <cd:constant name='focusin' value='focusin'/>
- <cd:constant name='focusoffset' value='decalagefocus'/>
- <cd:constant name='focusout' value='focusout'/>
- <cd:constant name='font' value='font'/>
- <cd:constant name='footer' value='pdp'/>
- <cd:constant name='footerdistance' value='distancepdp'/>
- <cd:constant name='footerstate' value='etatpdp'/>
- <cd:constant name='force' value='forcer'/>
- <cd:constant name='foregroundcolor' value='couleurpremierplan'/>
- <cd:constant name='foregroundstyle' value='stylepremierplan'/>
- <cd:constant name='format' value='formatter'/>
- <cd:constant name='fractions' value='fractions'/>
- <cd:constant name='frame' value='cadre'/>
- <cd:constant name='framecolor' value='couleurcadre'/>
- <cd:constant name='framecorner' value='coincadre'/>
- <cd:constant name='framedepth' value='profondeurcadre'/>
- <cd:constant name='frameoffset' value='decalagecadre'/>
- <cd:constant name='frameradius' value='rayoncadre'/>
- <cd:constant name='frames' value='cadres'/>
- <cd:constant name='freeregion' value='regionlibre'/>
- <cd:constant name='from' value='de'/>
- <cd:constant name='functioncolor' value='couleurfonction'/>
- <cd:constant name='functionstyle' value='stylefonction'/>
- <cd:constant name='get' value='obtenir'/>
- <cd:constant name='global' value='global'/>
- <cd:constant name='goodies' value='friandises'/>
- <cd:constant name='grid' value='grille'/>
- <cd:constant name='group' value='groupe'/>
- <cd:constant name='groupsuffix' value='suffixegroupe'/>
- <cd:constant name='hang' value='suspendre'/>
- <cd:constant name='hcompact' value='compacth'/>
- <cd:constant name='headalign' value='alignertete'/>
- <cd:constant name='headcolor' value='couleurtete'/>
- <cd:constant name='headcommand' value='commandetete'/>
- <cd:constant name='headconversion' value='conversiontete'/>
- <cd:constant name='header' value='entête'/>
- <cd:constant name='headerdistance' value='distanceentête'/>
- <cd:constant name='headerstate' value='etatentête'/>
- <cd:constant name='headlabel' value='etiquettetete'/>
- <cd:constant name='headnumber' value='numerotete'/>
- <cd:constant name='headseparator' value='separateurtete'/>
- <cd:constant name='headstyle' value='styletete'/>
- <cd:constant name='height' value='hauteur'/>
- <cd:constant name='hfactor' value='facteurh'/>
- <cd:constant name='hfil' value='remplissageh'/>
- <cd:constant name='hidenumber' value='cachernumero'/>
- <cd:constant name='hoffset' value='decalageh'/>
- <cd:constant name='horizontal' value='horizontal'/>
- <cd:constant name='horoffset' value='decalagehor'/>
- <cd:constant name='hyphen' value='traitdunion'/>
- <cd:constant name='hyphens' value='traitsdunion'/>
- <cd:constant name='icommand' value='commandei'/>
- <cd:constant name='ignore' value='ignorer'/>
- <cd:constant name='in' value='dans'/>
- <cd:constant name='inbetween' value='entre'/>
- <cd:constant name='increment' value='incrementer'/>
- <cd:constant name='incrementnumber' value='incrementernumero'/>
- <cd:constant name='indenting' value='indentation'/>
- <cd:constant name='indentlist' value='indentlist'/>
- <cd:constant name='indentnext' value='indenterauuivant'/>
- <cd:constant name='index' value='index'/>
- <cd:constant name='indicator' value='indicateur'/>
- <cd:constant name='initialsep' value='sepinitial'/>
- <cd:constant name='inlinethreshold' value='seuilenligne'/>
- <cd:constant name='inner' value='interieur'/>
- <cd:constant name='innermargin' value='margeinterieure'/>
- <cd:constant name='inputfile' value='fichierentree'/>
- <cd:constant name='insidesection' value='auseinsection'/>
- <cd:constant name='instance' value='instance'/>
- <cd:constant name='intent' value='intention'/>
- <cd:constant name='interaction' value='interaction'/>
- <cd:constant name='interlinespace' value='espaceinterligne'/>
- <cd:constant name='internalgrid' value='grilleinterieure'/>
- <cd:constant name='italicfeatures' value='fonctionnalitesitalique'/>
- <cd:constant name='italicfont' value='policeitalique'/>
- <cd:constant name='itemalign' value='alignerelem'/>
- <cd:constant name='items' value='élément'/>
- <cd:constant name='joiners' value='joins'/>
- <cd:constant name='journalconversion' value='conversionjournal'/>
- <cd:constant name='juniorsep' value='sepjunior'/>
- <cd:constant name='keeptogether' value='conserverensemble'/>
- <cd:constant name='ken' value='rep'/>
- <cd:constant name='keyexpansion' value='expansioncle'/>
- <cd:constant name='keys' value='cles'/>
- <cd:constant name='keyword' value='motclé'/>
- <cd:constant name='label' value='etiquette'/>
- <cd:constant name='labelalternative' value='varianteetiquette'/>
- <cd:constant name='labelcolor' value='couleuretiquette'/>
- <cd:constant name='labeloffset' value='decalageetiquette'/>
- <cd:constant name='labelstyle' value='styleetiquette'/>
- <cd:constant name='language' value='langue'/>
- <cd:constant name='last' value='dernier'/>
- <cd:constant name='lastnamesep' value='sepderniernom'/>
- <cd:constant name='lastpage' value='dernierepage'/>
- <cd:constant name='lastpagesep' value='sepdernierepage'/>
- <cd:constant name='lastpubsep' value='sepdernierepub'/>
- <cd:constant name='layout' value='miseenpage'/>
- <cd:constant name='left' value='gauche'/>
- <cd:constant name='leftcolor' value='couleurgauche'/>
- <cd:constant name='leftcompoundhyphen' value='traitdunioncomposegauche'/>
- <cd:constant name='leftedge' value='bordgauche'/>
- <cd:constant name='leftedgedistance' value='distancebordgauche'/>
- <cd:constant name='leftframe' value='cadregauche'/>
- <cd:constant name='lefthyphen' value='traitduniongauche'/>
- <cd:constant name='leftmargin' value='margegauche'/>
- <cd:constant name='leftmargindistance' value='distancemargegauche'/>
- <cd:constant name='leftoffset' value='decalagegauche'/>
- <cd:constant name='leftquotation' value='citationgauche'/>
- <cd:constant name='leftquote' value='citergauche'/>
- <cd:constant name='leftsample' value='echantillongauche'/>
- <cd:constant name='leftsentence' value='phrasegauche'/>
- <cd:constant name='leftspeech' value='discoursgauche'/>
- <cd:constant name='leftstyle' value='stylegauche'/>
- <cd:constant name='leftsubsentence' value='sousphrasegauche'/>
- <cd:constant name='lefttext' value='textegauche'/>
- <cd:constant name='leftwidth' value='largeurgauche'/>
- <cd:constant name='leftwords' value='motsgauche'/>
- <cd:constant name='less' value='moins'/>
- <cd:constant name='level' value='niveau'/>
- <cd:constant name='levels' value='niveaux'/>
- <cd:constant name='limittext' value='textelimite'/>
- <cd:constant name='line' value='ligne'/>
- <cd:constant name='linecorrection' value='correctionligne'/>
- <cd:constant name='linedirection' value='linedirection'/>
- <cd:constant name='lines' value='lignes'/>
- <cd:constant name='list' value='liste'/>
- <cd:constant name='listtext' value='texteliste'/>
- <cd:constant name='local' value='local'/>
- <cd:constant name='location' value='emplacement'/>
- <cd:constant name='loffset' value='decalagel'/>
- <cd:constant name='logo' value='logo'/>
- <cd:constant name='logos' value='logos'/>
- <cd:constant name='marcolor' value='couleurrem'/>
- <cd:constant name='margin' value='marge'/>
- <cd:constant name='margindistance' value='distancemarge'/>
- <cd:constant name='marginedge' value='margebord'/>
- <cd:constant name='marginedgetext' value='textemargebord'/>
- <cd:constant name='margintext' value='textemarge'/>
- <cd:constant name='mark' value='marque'/>
- <cd:constant name='marking' value='marquage'/>
- <cd:constant name='marstyle' value='stylerem'/>
- <cd:constant name='mask' value='masque'/>
- <cd:constant name='mathclass' value='classemath'/>
- <cd:constant name='mathlimits' value='limitesmath'/>
- <cd:constant name='mathstyle' value='stylemath'/>
- <cd:constant name='max' value='max'/>
- <cd:constant name='maxdepth' value='profondeurmax'/>
- <cd:constant name='maxheight' value='hauteurmax'/>
- <cd:constant name='maxwidth' value='largeurmax'/>
- <cd:constant name='maybeyear' value='anneepeutetre'/>
- <cd:constant name='menu' value='menu'/>
- <cd:constant name='method' value='methode'/>
- <cd:constant name='middle' value='milieu'/>
- <cd:constant name='middlecolor' value='couleurmilieu'/>
- <cd:constant name='middlecommand' value='commandemilieu'/>
- <cd:constant name='middlespeech' value='discoursmilieu'/>
- <cd:constant name='middlestyle' value='stylemilieu'/>
- <cd:constant name='middletext' value='textemilieu'/>
- <cd:constant name='middlewidth' value='largeurmilieu'/>
- <cd:constant name='midsentence' value='milieuphrase'/>
- <cd:constant name='min' value='min'/>
- <cd:constant name='mindepth' value='profondeurmin'/>
- <cd:constant name='minheight' value='hauteurmin'/>
- <cd:constant name='minwidth' value='largeurmin'/>
- <cd:constant name='moffset' value='decalagem'/>
- <cd:constant name='monthconversion' value='conversionmois'/>
- <cd:constant name='more' value='plus'/>
- <cd:constant name='mpdepth' value='profondeurmp'/>
- <cd:constant name='mpheight' value='hauteurmp'/>
- <cd:constant name='mpoffset' value='decalagemp'/>
- <cd:constant name='mpwidth' value='largeurmp'/>
- <cd:constant name='n' value='n'/>
- <cd:constant name='name' value='nom'/>
- <cd:constant name='namesep' value='sepnom'/>
- <cd:constant name='nbottom' value='nbas'/>
- <cd:constant name='nc' value='nc'/>
- <cd:constant name='next' value='suivant'/>
- <cd:constant name='nextleft' value='suivantgauche'/>
- <cd:constant name='nextleftquotation' value='citationgauchesuivante'/>
- <cd:constant name='nextright' value='suivantdroite'/>
- <cd:constant name='nextrightquotation' value='citationdroitesuivante'/>
- <cd:constant name='nl' value='nl'/>
- <cd:constant name='nleft' value='ngauche'/>
- <cd:constant name='nlines' value='nlignes'/>
- <cd:constant name='norm' value='norme'/>
- <cd:constant name='note' value='note'/>
- <cd:constant name='notes' value='notes'/>
- <cd:constant name='nr' value='nr'/>
- <cd:constant name='nright' value='ndroite'/>
- <cd:constant name='ntop' value='nhaut'/>
- <cd:constant name='number' value='numero'/>
- <cd:constant name='numberalign' value='alignernumero'/>
- <cd:constant name='numbercolor' value='couleurnumero'/>
- <cd:constant name='numbercommand' value='commandenumero'/>
- <cd:constant name='numberconversion' value='conversionnumero'/>
- <cd:constant name='numberconversionset' value='jeuconversionnumero'/>
- <cd:constant name='numberdistance' value='distancenumero'/>
- <cd:constant name='numbering' value='numérotation'/>
- <cd:constant name='numberorder' value='ordrenumero'/>
- <cd:constant name='numberprefix' value='prefixenumero'/>
- <cd:constant name='numbersegments' value='segmentsnumero'/>
- <cd:constant name='numberseparator' value='separateurnumero'/>
- <cd:constant name='numberseparatorset' value='jeuseparateurnumero'/>
- <cd:constant name='numberset' value='jeunumero'/>
- <cd:constant name='numberstarter' value='demarreurnumero'/>
- <cd:constant name='numberstopper' value='stoppeurnumero'/>
- <cd:constant name='numberstrut' value='entretoisenumero'/>
- <cd:constant name='numberstyle' value='stylenumero'/>
- <cd:constant name='numberwidth' value='largeurnumero'/>
- <cd:constant name='nx' value='nx'/>
- <cd:constant name='ny' value='ny'/>
- <cd:constant name='object' value='objet'/>
- <cd:constant name='obstruction' value='obstruction'/>
- <cd:constant name='oddmargin' value='margeimpaire'/>
- <cd:constant name='offset' value='decalage'/>
- <cd:constant name='openaction' value='actionouvrir'/>
- <cd:constant name='openpage' value='ouvrirpage'/>
- <cd:constant name='openpageaction' value='actionouvrirpage'/>
- <cd:constant name='openup' value='ouverture'/>
- <cd:constant name='opticalsize' value='tailleoptique'/>
- <cd:constant name='option' value='option'/>
- <cd:constant name='order' value='ordre'/>
- <cd:constant name='orientation' value='orientation'/>
- <cd:constant name='otherstext' value='texteautres'/>
- <cd:constant name='outermargin' value='margeexterieure'/>
- <cd:constant name='overprint' value='surimpression'/>
- <cd:constant name='ownerpassword' value='motdepasseproprietaire'/>
- <cd:constant name='ownnumber' value='numeropropre'/>
- <cd:constant name='packcriterium' value='criterepack'/>
- <cd:constant name='page' value='page'/>
- <cd:constant name='pageboundaries' value='frontierespage'/>
- <cd:constant name='pagecolor' value='couleurpage'/>
- <cd:constant name='pagecolormodel' value='modelecouleurpage'/>
- <cd:constant name='pagecommand' value='commandepage'/>
- <cd:constant name='pageconnector' value='connecteurpage'/>
- <cd:constant name='pageconversion' value='conversionpage'/>
- <cd:constant name='pageconversionset' value='jeuconversionpage'/>
- <cd:constant name='pageleft' value='pagegauche'/>
- <cd:constant name='pagemethod' value='methodepage'/>
- <cd:constant name='pagenumber' value='numeropage'/>
- <cd:constant name='pageprefix' value='prefixepage'/>
- <cd:constant name='pageprefixconnector' value='connecteurprefixepage'/>
- <cd:constant name='pageprefixconversion' value='conversionprefixepage'/>
- <cd:constant name='pageprefixconversionset' value='jeuconversionprefixepage'/>
- <cd:constant name='pageprefixsegments' value='segmentsprefixepage'/>
- <cd:constant name='pageprefixseparatorset' value='jeuseparateurprefixepage'/>
- <cd:constant name='pageprefixset' value='jeuprefixepage'/>
- <cd:constant name='pageprefixstarter' value='demarreurprefixepage'/>
- <cd:constant name='pageprefixstopper' value='stoppeurprefixpage'/>
- <cd:constant name='pageright' value='pagedroite'/>
- <cd:constant name='pagesegments' value='segmentspage'/>
- <cd:constant name='pagesep' value='seppage'/>
- <cd:constant name='pageseparatorset' value='jeuseparateurpage'/>
- <cd:constant name='pageset' value='jeupage'/>
- <cd:constant name='pagestarter' value='demarreurpage'/>
- <cd:constant name='pagestate' value='etatpage'/>
- <cd:constant name='pagestopper' value='stoppeurpage'/>
- <cd:constant name='pagestyle' value='stylepage'/>
- <cd:constant name='palet' value='palette'/>
- <cd:constant name='paper' value='papier'/>
- <cd:constant name='paragraph' value='paragraphe'/>
- <cd:constant name='period' value='periode'/>
- <cd:constant name='place' value='placer'/>
- <cd:constant name='placehead' value='placertete'/>
- <cd:constant name='placeholder' value='placeholder'/>
- <cd:constant name='placestopper' value='placerstoppeur'/>
- <cd:constant name='position' value='position'/>
- <cd:constant name='prefix' value='prefixe'/>
- <cd:constant name='prefixconnector' value='connecteurprefixe'/>
- <cd:constant name='prefixconversion' value='conversionprefixe'/>
- <cd:constant name='prefixconversionset' value='jeuconversionprefixe'/>
- <cd:constant name='prefixsegments' value='segmentsprefixe'/>
- <cd:constant name='prefixseparatorset' value='jeuseparateurprefixe'/>
- <cd:constant name='prefixset' value='jeuprefixe'/>
- <cd:constant name='prefixstarter' value='demarreurprefixe'/>
- <cd:constant name='prefixstopper' value='stoppeurprefixe'/>
- <cd:constant name='preset' value='preregler'/>
- <cd:constant name='preview' value='apercu'/>
- <cd:constant name='previous' value='precedent'/>
- <cd:constant name='previousnumber' value='numeroprecedent'/>
- <cd:constant name='print' value='imprimer'/>
- <cd:constant name='printable' value='imprimable'/>
- <cd:constant name='process' value='traiter'/>
- <cd:constant name='processors' value='processors'/>
- <cd:constant name='profile' value='profil'/>
- <cd:constant name='properties' value='proprietes'/>
- <cd:constant name='pubsep' value='seppub'/>
- <cd:constant name='quotechar' value='caracitation'/>
- <cd:constant name='radius' value='rayon'/>
- <cd:constant name='random' value='aleatoire'/>
- <cd:constant name='range' value='gamme'/>
- <cd:constant name='reduction' value='reduction'/>
- <cd:constant name='ref' value='ref'/>
- <cd:constant name='refcommand' value='commanderef'/>
- <cd:constant name='reference' value='reference'/>
- <cd:constant name='referencemethod' value='methodereference'/>
- <cd:constant name='referenceprefix' value='prefixereference'/>
- <cd:constant name='referencetext' value='referencetext'/>
- <cd:constant name='referencing' value='referencement'/>
- <cd:constant name='region' value='region'/>
- <cd:constant name='regionin' value='regiondedans'/>
- <cd:constant name='regionout' value='regiondehors'/>
- <cd:constant name='register' value='registre'/>
- <cd:constant name='regularfeatures' value='fonctionnalitesordinaires'/>
- <cd:constant name='regularfont' value='policereordinaire'/>
- <cd:constant name='renderingsetup' value='configurationrendu'/>
- <cd:constant name='repeat' value='repeter'/>
- <cd:constant name='reset' value='raz'/>
- <cd:constant name='resetnumber' value='raznumero'/>
- <cd:constant name='resolution' value='resolution'/>
- <cd:constant name='resources' value='ressources'/>
- <cd:constant name='reverse' value='inverser'/>
- <cd:constant name='right' value='droite'/>
- <cd:constant name='rightchars' value='caracteresdroite'/>
- <cd:constant name='rightcolor' value='couleurdroite'/>
- <cd:constant name='rightcompoundhyphen' value='traitdunioncomposedroite'/>
- <cd:constant name='rightedge' value='borddroit'/>
- <cd:constant name='rightedgedistance' value='distanceborddroit'/>
- <cd:constant name='rightframe' value='cadredroite'/>
- <cd:constant name='righthyphen' value='traitduniondroite'/>
- <cd:constant name='rightmargin' value='margedroite'/>
- <cd:constant name='rightmargindistance' value='distancemargedroite'/>
- <cd:constant name='rightoffset' value='decalagedroite'/>
- <cd:constant name='rightquotation' value='citationdroite'/>
- <cd:constant name='rightquote' value='citerdroite'/>
- <cd:constant name='rightsample' value='echantillondroite'/>
- <cd:constant name='rightsentence' value='phrasedroite'/>
- <cd:constant name='rightspeech' value='discoursdroite'/>
- <cd:constant name='rightstyle' value='styledroit'/>
- <cd:constant name='rightsubsentence' value='sousphrasedroite'/>
- <cd:constant name='righttext' value='textedroite'/>
- <cd:constant name='rightwidth' value='largeurdroite'/>
- <cd:constant name='rightwords' value='motsdroite'/>
- <cd:constant name='roffset' value='decalager'/>
- <cd:constant name='rotation' value='rotation'/>
- <cd:constant name='rule' value='trait'/>
- <cd:constant name='rulecolor' value='couleurtrait'/>
- <cd:constant name='rulecommand' value='commandetrait'/>
- <cd:constant name='rulethickness' value='epaisseurtrait'/>
- <cd:constant name='samepage' value='memepage'/>
- <cd:constant name='sample' value='echantillon'/>
- <cd:constant name='samplesize' value='tailleechantillon'/>
- <cd:constant name='saveinlist' value='enregistrerdansliste'/>
- <cd:constant name='scale' value='echelle'/>
- <cd:constant name='scope' value='perimetre'/>
- <cd:constant name='screen' value='ecran'/>
- <cd:constant name='section' value='section'/>
- <cd:constant name='sectionblock' value='blocsection'/>
- <cd:constant name='sectionconversion' value='conversionsection'/>
- <cd:constant name='sectionconversionset' value='jeuconversionsection'/>
- <cd:constant name='sectionnumber' value='numerosection'/>
- <cd:constant name='sectionresetset' value='jeurazsection'/>
- <cd:constant name='sectionsegments' value='segmentssection'/>
- <cd:constant name='sectionseparatorset' value='jeuseparateursection'/>
- <cd:constant name='sectionset' value='jeusection'/>
- <cd:constant name='sectionstarter' value='demarreursection'/>
- <cd:constant name='sectionstopper' value='stoppeursection'/>
- <cd:constant name='separator' value='separateur'/>
- <cd:constant name='separatorcolor' value='couleurseparateur'/>
- <cd:constant name='separatorstyle' value='styleseparateur'/>
- <cd:constant name='set' value='regler'/>
- <cd:constant name='setups' value='setups'/>
- <cd:constant name='shrink' value='retrecir'/>
- <cd:constant name='side' value='cote'/>
- <cd:constant name='sidealign' value='alignercote'/>
- <cd:constant name='sidemethod' value='methodecote'/>
- <cd:constant name='sidespaceafter' value='espacelatéralaprès'/>
- <cd:constant name='sidespacebefore' value='espacelateralavant'/>
- <cd:constant name='sidespaceinbetween' value='espacelateralentre'/>
- <cd:constant name='sidethreshold' value='seuilcote'/>
- <cd:constant name='sign' value='signe'/>
- <cd:constant name='simplecommand' value='commandesimple'/>
- <cd:constant name='size' value='taille'/>
- <cd:constant name='slantedfeatures' value='fonctionnalitesincline'/>
- <cd:constant name='slantedfont' value='policeinclinee'/>
- <cd:constant name='small' value='petit'/>
- <cd:constant name='smallcapsfeatures' value='fonctionnalitespetitescaps'/>
- <cd:constant name='smallcapsfont' value='policepetitescaps'/>
- <cd:constant name='solution' value='solution'/>
- <cd:constant name='sort' value='trier'/>
- <cd:constant name='sorttype' value='modetri'/>
- <cd:constant name='source' value='source'/>
- <cd:constant name='space' value='espace'/>
- <cd:constant name='spaceafter' value='espaceaprès'/>
- <cd:constant name='spaceafterside' value='espaceaprèscoté'/>
- <cd:constant name='spacebefore' value='espaceavant'/>
- <cd:constant name='spacebeforeside' value='espaceavantcote'/>
- <cd:constant name='spaceinbetween' value='espaceentre'/>
- <cd:constant name='spacing' value='espacement'/>
- <cd:constant name='specification' value='specification'/>
- <cd:constant name='split' value='partager'/>
- <cd:constant name='splitcolor' value='couleurpartage'/>
- <cd:constant name='splitmethod' value='methodepartage'/>
- <cd:constant name='splitoffset' value='decalagepartage'/>
- <cd:constant name='spot' value='tondirect'/>
- <cd:constant name='stack' value='pile'/>
- <cd:constant name='stackname' value='nompile'/>
- <cd:constant name='start' value='début'/>
- <cd:constant name='starter' value='demarreur'/>
- <cd:constant name='state' value='état'/>
- <cd:constant name='step' value='etape'/>
- <cd:constant name='stop' value='fin'/>
- <cd:constant name='stopper' value='stoppeur'/>
- <cd:constant name='stretch' value='etirer'/>
- <cd:constant name='strip' value='bande'/>
- <cd:constant name='strut' value='entretoise'/>
- <cd:constant name='style' value='style'/>
- <cd:constant name='stylealternative' value='variantestyle'/>
- <cd:constant name='sub' value='sous'/>
- <cd:constant name='subtitle' value='soustitre'/>
- <cd:constant name='suffix' value='suffixe'/>
- <cd:constant name='suffixseparator' value='separateursuffixe'/>
- <cd:constant name='suffixstopper' value='stoppeursuffixe'/>
- <cd:constant name='surnamefirstnamesep' value='sepnomfamilleprenom'/>
- <cd:constant name='surnameinitialsep' value='sepnomfamilleinitial'/>
- <cd:constant name='surnamesep' value='seprenom'/>
- <cd:constant name='svgstyle' value='stylesvg'/>
- <cd:constant name='sx' value='sx'/>
- <cd:constant name='sy' value='sy'/>
- <cd:constant name='symalign' value='alignersym'/>
- <cd:constant name='symbol' value='symbole'/>
- <cd:constant name='symbolcommand' value='commandesymbole'/>
- <cd:constant name='symbolset' value='jeusymbole'/>
- <cd:constant name='symcolor' value='couleursym'/>
- <cd:constant name='symstyle' value='stylesym'/>
- <cd:constant name='synonym' value='synonyme'/>
- <cd:constant name='synonymcolor' value='couleursynonyme'/>
- <cd:constant name='synonymcommand' value='commandesynonyme'/>
- <cd:constant name='synonymstyle' value='stylesynonyme'/>
- <cd:constant name='tab' value='tab'/>
- <cd:constant name='text' value='texte'/>
- <cd:constant name='textalign' value='alignertexte'/>
- <cd:constant name='textcolor' value='couleurtexte'/>
- <cd:constant name='textcommand' value='commandetexte'/>
- <cd:constant name='textdistance' value='distancetexte'/>
- <cd:constant name='textheight' value='hauteurtexte'/>
- <cd:constant name='textlayer' value='calquetexte'/>
- <cd:constant name='textmargin' value='margetexte'/>
- <cd:constant name='textmethod' value='methodetexte'/>
- <cd:constant name='textseparator' value='separateurtexte'/>
- <cd:constant name='textsize' value='tailletexte'/>
- <cd:constant name='textstate' value='etattexte'/>
- <cd:constant name='textstyle' value='styletexte'/>
- <cd:constant name='textwidth' value='largeurtexte'/>
- <cd:constant name='threshold' value='seuil'/>
- <cd:constant name='time' value='temps'/>
- <cd:constant name='title' value='titre'/>
- <cd:constant name='titlecolor' value='couleurtitre'/>
- <cd:constant name='titlecommand' value='commandetitre'/>
- <cd:constant name='titledistance' value='distancetitre'/>
- <cd:constant name='titleleft' value='gauchetitre'/>
- <cd:constant name='titleright' value='droitetitre'/>
- <cd:constant name='titlestrut' value='entretoisetitre'/>
- <cd:constant name='titlestyle' value='styletitre'/>
- <cd:constant name='to' value='vers'/>
- <cd:constant name='toffset' value='decalaget'/>
- <cd:constant name='tolerance' value='tolerance'/>
- <cd:constant name='top' value='haut'/>
- <cd:constant name='topcommand' value='commandehaut'/>
- <cd:constant name='topdistance' value='distancehaut'/>
- <cd:constant name='topframe' value='cadrehaut'/>
- <cd:constant name='topoffset' value='decalagehaut'/>
- <cd:constant name='topspace' value='espacehaut'/>
- <cd:constant name='topstate' value='etathaut'/>
- <cd:constant name='totalnumber' value='nombretotal'/>
- <cd:constant name='transform' value='transformer'/>
- <cd:constant name='translate' value='traduire'/>
- <cd:constant name='trimoffset' value='decalagecoupe'/>
- <cd:constant name='type' value='transcrire'/>
- <cd:constant name='unit' value='unite'/>
- <cd:constant name='unknownreference' value='referenceinconnue'/>
- <cd:constant name='up' value='enhaut'/>
- <cd:constant name='urlalternative' value='varianteurl'/>
- <cd:constant name='urlspace' value='espaceurl'/>
- <cd:constant name='userpassword' value='motdepasseutilisateur'/>
- <cd:constant name='validate' value='valider'/>
- <cd:constant name='values' value='valeurs'/>
- <cd:constant name='vcommand' value='commandev'/>
- <cd:constant name='vcompact' value='compactv'/>
- <cd:constant name='vector' value='vecteur'/>
- <cd:constant name='veroffset' value='decalagever'/>
- <cd:constant name='vertical' value='vertical'/>
- <cd:constant name='vfactor' value='facteurv'/>
- <cd:constant name='vfil' value='remplissagev'/>
- <cd:constant name='viewerprefix' value='prefixevisualisateur'/>
- <cd:constant name='voffset' value='decalagev'/>
- <cd:constant name='vonsep' value='sepvon'/>
- <cd:constant name='way' value='maniere'/>
- <cd:constant name='wfactor' value='facteurw'/>
- <cd:constant name='white' value='blanc'/>
- <cd:constant name='width' value='largeur'/>
- <cd:constant name='words' value='mots'/>
- <cd:constant name='xanchor' value='ancrex'/>
- <cd:constant name='xfactor' value='facteurx'/>
- <cd:constant name='xhtml' value='xhtml'/>
- <cd:constant name='xmax' value='xmax'/>
- <cd:constant name='xmlsetup' value='configurationxml'/>
- <cd:constant name='xoffset' value='decalagex'/>
- <cd:constant name='xscale' value='echellex'/>
- <cd:constant name='xstep' value='etapex'/>
- <cd:constant name='yanchor' value='ancrey'/>
- <cd:constant name='yfactor' value='facteury'/>
- <cd:constant name='ymax' value='ymax'/>
- <cd:constant name='yoffset' value='decalagey'/>
- <cd:constant name='yscale' value='echelley'/>
- <cd:constant name='ystep' value='etapey'/>
- </cd:constants>
-
- <!-- definitions for interface elements for language fr -->
-
- <cd:elements>
- <cd:element name='answerlines' value='lignesreponse'/>
- <cd:element name='answerspace' value='espacereponse'/>
- <cd:element name='begin' value='commencer'/>
- <cd:element name='complete' value='complet'/>
- <cd:element name='coupled' value='couple'/>
- <cd:element name='currentlocal' value='localcourant'/>
- <cd:element name='end' value='terminer'/>
- <cd:element name='endsetup' value=''/>
- <cd:element name='get' value='obtenir'/>
- <cd:element name='increment' value='incrementer'/>
- <cd:element name='list' value='liste'/>
- <cd:element name='listof' value='listede'/>
- <cd:element name='load' value='charger'/>
- <cd:element name='local' value='local'/>
- <cd:element name='makeup' value='composition'/>
- <cd:element name='next' value='suivant'/>
- <cd:element name='place' value='placer'/>
- <cd:element name='previous' value='precedent'/>
- <cd:element name='previouslocal' value='localprecedent'/>
- <cd:element name='reserve' value='reserver'/>
- <cd:element name='see' value='voir'/>
- <cd:element name='setup' value='configurer'/>
- <cd:element name='start' value='début'/>
- <cd:element name='stop' value='fin'/>
- <cd:element name='text' value='texte'/>
- <cd:element name='type' value='transcrire'/>
- </cd:elements>
-
- <!-- definitions for interface commands for language fr -->
-
- <cd:commands>
- <cd:command name='Character' value='Caractere'/>
- <cd:command name='Characters' value='Caracteres'/>
- <cd:command name='MONTH' value='MOIS'/>
- <cd:command name='Numbers' value='Numeros'/>
- <cd:command name='Romannumerals' value='Chiffresromains'/>
- <cd:command name='SmallCapped' value='PetitesCap'/>
- <cd:command name='SmallCaps' value='PetitesCaps'/>
- <cd:command name='WEEKDAY' value='JOURSEMAINE'/>
- <cd:command name='WORD' value='MOT'/>
- <cd:command name='WORDS' value='MOTS'/>
- <cd:command name='Word' value='Mot'/>
- <cd:command name='Words' value='Mots'/>
- <cd:command name='about' value='apropos'/>
- <cd:command name='adaptfontfeature' value='adapterfonctionnalitepolice'/>
- <cd:command name='adaptlayout' value='adaptermiseenpage'/>
- <cd:command name='addfeature' value='ajouterfonctionnalite'/>
- <cd:command name='alignbottom' value='alignerbas'/>
- <cd:command name='aligned' value='aligne'/>
- <cd:command name='alignedbox' value='boitealignee'/>
- <cd:command name='alignedline' value='lignealignee'/>
- <cd:command name='alignhere' value='alignerici'/>
- <cd:command name='alignment' value='alignement'/>
- <cd:command name='alignmentcharacter' value='caracterealignement'/>
- <cd:command name='applytocharacters' value='appliquerauxcaracteres'/>
- <cd:command name='applytofirstcharacter' value='appliqueraupremiercaractere'/>
- <cd:command name='arg' value='arg'/>
- <cd:command name='at' value='en'/>
- <cd:command name='atleftmargin' value='enmargegauche'/>
- <cd:command name='atpage' value='enpage'/>
- <cd:command name='atrightmargin' value='enmargedroite'/>
- <cd:command name='background' value='arriereplan'/>
- <cd:command name='backspace' value='retourarrière'/>
- <cd:command name='blackrule' value='traitepais'/>
- <cd:command name='blackrules' value='traitsepais'/>
- <cd:command name='blank' value='vierge'/>
- <cd:command name='bookmark' value='marquepage'/>
- <cd:command name='bottombox' value='boitebas'/>
- <cd:command name='bottomdistance' value='distancebas'/>
- <cd:command name='bottomheight' value='hauteurbas'/>
- <cd:command name='bottomleftbox' value='basgaucheboite'/>
- <cd:command name='bottomrightbox' value='boitebasdroite'/>
- <cd:command name='bottomspace' value='espacebas'/>
- <cd:command name='buildtextbottomdot' value='construirepointtextebas'/>
- <cd:command name='but' value='mais'/>
- <cd:command name='button' value='bouton'/>
- <cd:command name='bypassblocks' value='eviteblocs'/>
- <cd:command name='character' value='caractere'/>
- <cd:command name='characters' value='caracteres'/>
- <cd:command name='chem' value='chem'/>
- <cd:command name='clip' value='decouper'/>
- <cd:command name='clonefield' value='clonerchamp'/>
- <cd:command name='color' value='couleur'/>
- <cd:command name='colorbar' value='barrecouleur'/>
- <cd:command name='colorvalue' value='valeurcouleur'/>
- <cd:command name='column' value='colonne'/>
- <cd:command name='comparecolorgroup' value='comparergroupecouleur'/>
- <cd:command name='comparepalet' value='comparerpalette'/>
- <cd:command name='completepagenumber' value='numeropagecomplet'/>
- <cd:command name='completeregister' value='registrecomplet'/>
- <cd:command name='component' value='composant'/>
- <cd:command name='convertnumber' value='convertirnumero'/>
- <cd:command name='copyfield' value='copierchamp'/>
- <cd:command name='correctwhitespace' value='corrigerespaceblanc'/>
- <cd:command name='coupledocument' value='coupledocument'/>
- <cd:command name='couplemarking' value='couplemarquage'/>
- <cd:command name='couplepage' value='couplepage'/>
- <cd:command name='couplepaper' value='couplepapier'/>
- <cd:command name='coupleregister' value='coupleregistre'/>
- <cd:command name='crlf' value='crlf'/>
- <cd:command name='currentdate' value='datecourante'/>
- <cd:command name='currentheadnumber' value='numerotetecourante'/>
- <cd:command name='cutspace' value='espacecoupe'/>
- <cd:command name='date' value='date'/>
- <cd:command name='decouplemarking' value='decouplemarquage'/>
- <cd:command name='decrementnumber' value='decrementenumero'/>
- <cd:command name='define' value='définir'/>
- <cd:command name='defineaccent' value='définiraccent'/>
- <cd:command name='defineblank' value='définirvierge'/>
- <cd:command name='defineblock' value='définirbloc'/>
- <cd:command name='definebodyfont' value='définirpolicedecorps'/>
- <cd:command name='definebodyfontenvironment' value='définirenvironnementpolicedecorps'/>
- <cd:command name='definebodyfontswitch' value='définircommutateurpolicedecorps'/>
- <cd:command name='definebuffer' value='définirtampon'/>
- <cd:command name='definecharacter' value='définircaractere'/>
- <cd:command name='definecharacterkerning' value='définirapprochecaracteres'/>
- <cd:command name='definecharacterspacing' value='définirespacementcaracteres'/>
- <cd:command name='definecolor' value='définircouleur'/>
- <cd:command name='definecolorgroup' value='définirgroupecouleur'/>
- <cd:command name='definecolumnbreak' value='définirsautdecolonne'/>
- <cd:command name='definecolumnset' value='définirjeucolonnes'/>
- <cd:command name='definecombination' value='définircombinaison'/>
- <cd:command name='definecombinedlist' value='définirlistecombinee'/>
- <cd:command name='definecommand' value='définircommande'/>
- <cd:command name='defineconversion' value='définirconversion'/>
- <cd:command name='definedescription' value='définirdescription'/>
- <cd:command name='definedfont' value='policedefinie'/>
- <cd:command name='defineenumeration' value='définirénumération'/>
- <cd:command name='definefallbackfamily' value='définirfamillederepli'/>
- <cd:command name='definefield' value='définirchamp'/>
- <cd:command name='definefieldstack' value='définirpilechamp'/>
- <cd:command name='definefiguresymbol' value='définirfiguresymbole'/>
- <cd:command name='definefilefallback' value='définirfichierderepli'/>
- <cd:command name='definefirstline' value='définirpremiereligne'/>
- <cd:command name='definefloat' value='définirflottant'/>
- <cd:command name='definefont' value='définirpolice'/>
- <cd:command name='definefontalternative' value='définirvariantepolice'/>
- <cd:command name='definefontfallback' value='définirpolicederepli'/>
- <cd:command name='definefontfamily' value='définirfamillepolice'/>
- <cd:command name='definefontfamilypreset' value='définirprereglagefamillepolice'/>
- <cd:command name='definefontfeature' value='définirfonctionnalitepolice'/>
- <cd:command name='definefontfile' value='définirfichierpolice'/>
- <cd:command name='definefontsize' value='définirtaillepolice'/>
- <cd:command name='definefontsolution' value='définirsolutionpolice'/>
- <cd:command name='definefontstyle' value='définirstylepolice'/>
- <cd:command name='definefontsynonym' value='définirsynonymepolice'/>
- <cd:command name='defineframed' value='définirencadre'/>
- <cd:command name='defineframedtext' value='définirtexteencadre'/>
- <cd:command name='definefrozenfont' value='définirpolicegelee'/>
- <cd:command name='definehbox' value='définirhbox'/>
- <cd:command name='definehead' value='définirtete'/>
- <cd:command name='definehyphenationfeatures' value='définirfonctionnalitescesure'/>
- <cd:command name='defineindentedtext' value='définirtexteindente'/>
- <cd:command name='defineinmargin' value='définirdansmarge'/>
- <cd:command name='defineinteractionmenu' value='définirmenuinteraction'/>
- <cd:command name='defineitemgroup' value='définirgroupedéléments'/>
- <cd:command name='defineitems' value='définiréléments'/>
- <cd:command name='definelabel' value='définiretiquette'/>
- <cd:command name='definelayer' value='définircalque'/>
- <cd:command name='definelayout' value='définirmiseenpage'/>
- <cd:command name='definelinenote' value='définirnotedeligne'/>
- <cd:command name='definelist' value='définirliste'/>
- <cd:command name='definelogo' value='définirlogo'/>
- <cd:command name='definemainfield' value='définirchampprincipal'/>
- <cd:command name='definemakeup' value='définircomposition'/>
- <cd:command name='definemarking' value='définirmarquage'/>
- <cd:command name='definemathalignment' value='définiralignementmath'/>
- <cd:command name='definemode' value='définirmode'/>
- <cd:command name='definenamedcolor' value='définircouleurnommee'/>
- <cd:command name='definenote' value='définirnote'/>
- <cd:command name='defineoutput' value='définirsortie'/>
- <cd:command name='defineoverlay' value='définirsuperposition'/>
- <cd:command name='definepagebreak' value='définirsautdepage'/>
- <cd:command name='definepalet' value='définirpalette'/>
- <cd:command name='definepapersize' value='définirtaillepapier'/>
- <cd:command name='defineparagraphs' value='définirparagraphes'/>
- <cd:command name='defineperiodkerning' value='reglerapprochepoint'/>
- <cd:command name='defineplacement' value='définirplacement'/>
- <cd:command name='defineprofile' value='définirprofil'/>
- <cd:command name='defineprogram' value='définirprogramme'/>
- <cd:command name='definerawfont' value='définirpolicebrute'/>
- <cd:command name='definereference' value='définirreference'/>
- <cd:command name='definereferenceformat' value='définirformatrereference'/>
- <cd:command name='definereferencelist' value='définirlistereference'/>
- <cd:command name='defineregister' value='définirregistre'/>
- <cd:command name='definerule' value='définirtrait'/>
- <cd:command name='definesection' value='définirsection'/>
- <cd:command name='definesectionblock' value='définirblocsection'/>
- <cd:command name='definesorting' value='définirtri'/>
- <cd:command name='definestartstop' value='définirdébutfin'/>
- <cd:command name='definestyle' value='définirstyle'/>
- <cd:command name='definesubfield' value='définirsouschamp'/>
- <cd:command name='definesymbol' value='définirsymbole'/>
- <cd:command name='definesynonyms' value='définirsynonymes'/>
- <cd:command name='definetabletemplate' value='définirgabarittable'/>
- <cd:command name='definetabulate' value='définirtabulation'/>
- <cd:command name='definetext' value='définirtexte'/>
- <cd:command name='definetextbackground' value='définirtextearriereplan'/>
- <cd:command name='definetextnote' value='définirnotetexte'/>
- <cd:command name='definetextposition' value='définirpositiontexte'/>
- <cd:command name='definetextvariable' value='définirvariabletexte'/>
- <cd:command name='definetype' value='définirtranscrire'/>
- <cd:command name='definetyping' value='définirtranscription'/>
- <cd:command name='defineversion' value='définirversion'/>
- <cd:command name='depthspanningtext' value='jambagetextecouvrant'/>
- <cd:command name='determineheadnumber' value='determinernumerotete'/>
- <cd:command name='determinelistcharacteristics' value='determinercaracteristiquesliste'/>
- <cd:command name='determineregistercharacteristics' value='determinercaracteristiquesregistre'/>
- <cd:command name='dimension' value='dimension'/>
- <cd:command name='disableinteractionmenu' value='desactivermenuinteraction'/>
- <cd:command name='disablemode' value='desactivermode'/>
- <cd:command name='doaddfeature' value='faireajouterfonctionnalite'/>
- <cd:command name='domicile' value='domicile'/>
- <cd:command name='dontconvertfont' value='nepasconvertirpolice'/>
- <cd:command name='donttest' value='sanstester'/>
- <cd:command name='edgedistance' value='distancebord'/>
- <cd:command name='edgewidth' value='largeurbord'/>
- <cd:command name='emphasisboldface' value='policegrasaccentue'/>
- <cd:command name='emptylines' value='lignesvide'/>
- <cd:command name='enablemode' value='activermode'/>
- <cd:command name='environment' value='environnement'/>
- <cd:command name='externalfigure' value='figureexterne'/>
- <cd:command name='fact' value='fait'/>
- <cd:command name='fastswitchtobodyfont' value='passerrapideapolicedecorps'/>
- <cd:command name='feature' value='fonctionnalite'/>
- <cd:command name='field' value='champ'/>
- <cd:command name='fieldstack' value='pilechamp'/>
- <cd:command name='fillinfield' value='champarenseigner'/>
- <cd:command name='fillinline' value='lignearenseigner'/>
- <cd:command name='fillinrules' value='traitsarenseigner'/>
- <cd:command name='fillintext' value='textearenseigner'/>
- <cd:command name='firstcharacter' value='premiercaractere'/>
- <cd:command name='fitfield' value='adapterchamp'/>
- <cd:command name='fittopbaselinegrid' value='adaptergrillehautlignedebase'/>
- <cd:command name='fixedspace' value='espacefixe'/>
- <cd:command name='fixedspaces' value='espacesfixes'/>
- <cd:command name='flushnotes' value='vidernotes'/>
- <cd:command name='followprofile' value='suivreprofile'/>
- <cd:command name='followprofileversion' value='suivreversionprofil'/>
- <cd:command name='followversion' value='suivreversion'/>
- <cd:command name='footerdistance' value='distancepdp'/>
- <cd:command name='footerheight' value='hauteurpdp'/>
- <cd:command name='footnote' value='notebdp'/>
- <cd:command name='footnotetext' value='textenotebdp'/>
- <cd:command name='forceblocks' value='forcerblocs'/>
- <cd:command name='forcecharacterstripping' value='forcerdemontagecaracteres'/>
- <cd:command name='formulanumber' value='numeroformule'/>
- <cd:command name='fraction' value='fraction'/>
- <cd:command name='framed' value='encadre'/>
- <cd:command name='from' value='de'/>
- <cd:command name='fromlinenote' value='denotedeligne'/>
- <cd:command name='getbuffer' value='obtenirtampon'/>
- <cd:command name='getfirstcharacter' value='obtenirpremiercaractere'/>
- <cd:command name='getmarking' value='obtenirmarquage'/>
- <cd:command name='getnumber' value='obtenirnumero'/>
- <cd:command name='globaldisablemode' value='desactivermodeglobal'/>
- <cd:command name='globalenablemode' value='activermodeglobal'/>
- <cd:command name='globalpreventmode' value='empechermodeglobal'/>
- <cd:command name='godown' value='allerenbas'/>
- <cd:command name='goto' value='allera'/>
- <cd:command name='gotobox' value='alleraboite'/>
- <cd:command name='gotopage' value='allerapage'/>
- <cd:command name='graycolor' value='couleurgrise'/>
- <cd:command name='greyvalue' value='valeurgris'/>
- <cd:command name='grid' value='grille'/>
- <cd:command name='hairline' value='ligneavectrait'/>
- <cd:command name='head' value='tête'/>
- <cd:command name='headerdistance' value='distanceentête'/>
- <cd:command name='headerheight' value='hauteurentête'/>
- <cd:command name='headlevel' value='niveautete'/>
- <cd:command name='headnumber' value='numerotete'/>
- <cd:command name='headsym' value='symtete'/>
- <cd:command name='headtext' value='textetete'/>
- <cd:command name='heightspanningtext' value='hauteurtextecouvrant'/>
- <cd:command name='hideblocks' value='cacherblocs'/>
- <cd:command name='high' value='exposant'/>
- <cd:command name='hl' value='lh'/>
- <cd:command name='immediatebetweenlist' value='immediatemententreliste'/>
- <cd:command name='immediatetolist' value='immediatementalister'/>
- <cd:command name='in' value='dans'/>
- <cd:command name='incrementnumber' value='incrementernumero'/>
- <cd:command name='indenting' value='indentation'/>
- <cd:command name='inframed' value='dansencadre'/>
- <cd:command name='infull' value='encomplet'/>
- <cd:command name='ininner' value='dansinterieur'/>
- <cd:command name='inleft' value='dansgauche'/>
- <cd:command name='inleftedge' value='dansbordgauche'/>
- <cd:command name='inleftmargin' value='dansmargegauche'/>
- <cd:command name='inline' value='enligne'/>
- <cd:command name='inmargin' value='dansmarge'/>
- <cd:command name='inmframed' value='dansencadremath'/>
- <cd:command name='inneredgedistance' value='distancebordinterieur'/>
- <cd:command name='inneredgewidth' value='largeurbordinterieur'/>
- <cd:command name='innermargindistance' value='distancemargeinterieure'/>
- <cd:command name='innermarginwidth' value='largeurmargeinterieure'/>
- <cd:command name='inothermargin' value='dansautremarge'/>
- <cd:command name='inouter' value='dansexterieur'/>
- <cd:command name='inright' value='dansdroite'/>
- <cd:command name='inrightedge' value='dansborddroit'/>
- <cd:command name='inrightmargin' value='dansmargedroite'/>
- <cd:command name='installlanguage' value='installerlangue'/>
- <cd:command name='interactionbar' value='barreinteraction'/>
- <cd:command name='interactionbuttons' value='boutonsinteraction'/>
- <cd:command name='interactionmenu' value='menuinteraction'/>
- <cd:command name='item' value='élément'/>
- <cd:command name='itemgroup' value='groupedéléments'/>
- <cd:command name='items' value='éléments'/>
- <cd:command name='itemtag' value='étiquettedélément'/>
- <cd:command name='its' value='els'/>
- <cd:command name='keepblocks' value='conserverblocs'/>
- <cd:command name='kerncharacters' value='approchercaracteres'/>
- <cd:command name='label' value='etiquette'/>
- <cd:command name='labels' value='etiquettes'/>
- <cd:command name='labeltext' value='texteetiquette'/>
- <cd:command name='language' value='langue'/>
- <cd:command name='languageCharacters' value='Caractereslangue'/>
- <cd:command name='languagecharacters' value='caractereslangue'/>
- <cd:command name='leftaligned' value='aligneagauche'/>
- <cd:command name='leftbottombox' value='boitebasgauche'/>
- <cd:command name='leftedgedistance' value='distancebordgauche'/>
- <cd:command name='leftedgewidth' value='largeurbordgauche'/>
- <cd:command name='leftline' value='lignegauche'/>
- <cd:command name='leftmargindistance' value='distancemargegauche'/>
- <cd:command name='leftmarginwidth' value='largeurmargegauche'/>
- <cd:command name='leg' value='leg'/>
- <cd:command name='linecorrection' value='correctionligne'/>
- <cd:command name='linenote' value='notedeligne'/>
- <cd:command name='linespanningtext' value='largeurtextecouvrant'/>
- <cd:command name='linewidth' value='largeurligne'/>
- <cd:command name='listheight' value='hauteurliste'/>
- <cd:command name='listlength' value='longueurtexte'/>
- <cd:command name='listsymbol' value='symboleliste'/>
- <cd:command name='listwidth' value='largeurliste'/>
- <cd:command name='loadfontgoodies' value='charerfriandisespolice'/>
- <cd:command name='localfootnotes' value='notesbdplocales'/>
- <cd:command name='localnotes' value='noteslocales'/>
- <cd:command name='logfields' value='logchamps'/>
- <cd:command name='lohi' value='inex'/>
- <cd:command name='low' value='indice'/>
- <cd:command name='macroname' value='nommacro'/>
- <cd:command name='mainlanguage' value='langueprincipale'/>
- <cd:command name='makeupheight' value='hauteurcomposition'/>
- <cd:command name='makeupwidth' value='largeurcomposition'/>
- <cd:command name='mar' value='rem'/>
- <cd:command name='marginblock' value='blocmarginal'/>
- <cd:command name='margindistance' value='distancemarge'/>
- <cd:command name='marginrule' value='traitmarge'/>
- <cd:command name='margintext' value='textemarge'/>
- <cd:command name='margintitle' value='titremarge'/>
- <cd:command name='marginwidth' value='largeurmarge'/>
- <cd:command name='marginword' value='motmarge'/>
- <cd:command name='marking' value='marquage'/>
- <cd:command name='markversion' value='marquerversion'/>
- <cd:command name='mathematics' value='mathematics'/>
- <cd:command name='menubutton' value='boutonmenu'/>
- <cd:command name='mframed' value='encadremath'/>
- <cd:command name='midaligned' value='aligneaumilieu'/>
- <cd:command name='mirror' value='refleter'/>
- <cd:command name='month' value='mois'/>
- <cd:command name='moveformula' value='deplacerformule'/>
- <cd:command name='moveongrid' value='deplacersurgrille'/>
- <cd:command name='movesidefloat' value='deplacerflottantcote'/>
- <cd:command name='navigating' value='navigation'/>
- <cd:command name='nodimension' value='sansdimension'/>
- <cd:command name='noheaderandfooterlines' value='sansentêtenipdp'/>
- <cd:command name='noindenting' value='sansindentation'/>
- <cd:command name='noitem' value='sansélément'/>
- <cd:command name='nolist' value='sansliste'/>
- <cd:command name='nomarking' value='sansmarquage'/>
- <cd:command name='nomoreblocks' value='sansplusdeblocs'/>
- <cd:command name='nomorefiles' value='sansplusdefichiers'/>
- <cd:command name='nop' value='san'/>
- <cd:command name='nospace' value='sansespace'/>
- <cd:command name='note' value='note'/>
- <cd:command name='notesymbol' value='symbolenote'/>
- <cd:command name='notopandbottomlines' value='sansligneshautetbas'/>
- <cd:command name='notsmallcapped' value='paspetitescaps'/>
- <cd:command name='nowhitespace' value='sansespaceblanc'/>
- <cd:command name='numberofsubpages' value='nombredesouspages'/>
- <cd:command name='numbers' value='numeros'/>
- <cd:command name='outeredgedistance' value='distancebordexterieur'/>
- <cd:command name='outeredgewidth' value='largeurbordexterieur'/>
- <cd:command name='outermargindistance' value='distancemargeexterieure'/>
- <cd:command name='outermarginwidth' value='largeurmargeexterieure'/>
- <cd:command name='packed' value='sansespaceentreitem'/>
- <cd:command name='page' value='page'/>
- <cd:command name='pagebreak' value='sautdepage'/>
- <cd:command name='pagedepth' value='profondeurpage'/>
- <cd:command name='pagenumber' value='numeropage'/>
- <cd:command name='pageoffset' value='decalagepage'/>
- <cd:command name='pagereference' value='referencepage'/>
- <cd:command name='paperheight' value='hauteurpapier'/>
- <cd:command name='paperwidth' value='largeurpapier'/>
- <cd:command name='periods' value='periodes'/>
- <cd:command name='placebookmarks' value='placermarquepages'/>
- <cd:command name='placecombinedlist' value='placerlistecombinee'/>
- <cd:command name='placefloat' value='placerflottant'/>
- <cd:command name='placefootnotes' value='placernotesbdp'/>
- <cd:command name='placeformula' value='placerformule'/>
- <cd:command name='placeheadnumber' value='placernumerotete'/>
- <cd:command name='placeheadtext' value='placertextetete'/>
- <cd:command name='placelegend' value='placerlegende'/>
- <cd:command name='placelist' value='placerliste'/>
- <cd:command name='placelistofsynonyms' value='placerlistedesynonymes'/>
- <cd:command name='placelocalfootnotes' value='placernotesbdplocales'/>
- <cd:command name='placelocalnotes' value='placernoteslocales'/>
- <cd:command name='placelogos' value='placerlogo'/>
- <cd:command name='placenamedfloat' value='placerflottantnomme'/>
- <cd:command name='placenotes' value='placernotes'/>
- <cd:command name='placeongrid' value='placersurgrille'/>
- <cd:command name='placeontopofeachother' value='placerlunaudessusdelautre'/>
- <cd:command name='placepagenumber' value='placernumeropage'/>
- <cd:command name='placerawlist' value='placerlistebrute'/>
- <cd:command name='placereferencelist' value='placerlistereference'/>
- <cd:command name='placeregister' value='placerregistre'/>
- <cd:command name='placerule' value='placertrait'/>
- <cd:command name='placesidebyside' value='placercoteacote'/>
- <cd:command name='placesubformula' value='placersousformule'/>
- <cd:command name='placetextvariable' value='placervariabletexte'/>
- <cd:command name='position' value='position'/>
- <cd:command name='positiontext' value='texteposition'/>
- <cd:command name='postponenotes' value='reporternotes'/>
- <cd:command name='postponingnotes' value='reportnotes'/>
- <cd:command name='predefinedfont' value='policepredefinie'/>
- <cd:command name='predefinefont' value='predéfinirpolice'/>
- <cd:command name='presetdocument' value='prereglerdocument'/>
- <cd:command name='prettyprintbuffer' value='imprimerjolimenttampon'/>
- <cd:command name='preventmode' value='empechermode'/>
- <cd:command name='printpaperheight' value='hauteurpapierimpression'/>
- <cd:command name='printpaperwidth' value='largeurpapierimpression'/>
- <cd:command name='processblocks' value='traiterblocs'/>
- <cd:command name='processbodyfontenvironmentlist' value='traiterlisteenvironnementpolicedecorps'/>
- <cd:command name='processpage' value='traiterpage'/>
- <cd:command name='product' value='produit'/>
- <cd:command name='program' value='programme'/>
- <cd:command name='project' value='projet'/>
- <cd:command name='publication' value='publication'/>
- <cd:command name='quotation' value='citation'/>
- <cd:command name='quote' value='citer'/>
- <cd:command name='ran' value='ran'/>
- <cd:command name='redo' value='refaire'/>
- <cd:command name='redoconvertfont' value='refaireconvertirpolice'/>
- <cd:command name='ref' value='ref'/>
- <cd:command name='reference' value='reference'/>
- <cd:command name='referral' value='redirection'/>
- <cd:command name='referraldate' value='dateredirection'/>
- <cd:command name='referring' value='fairereference'/>
- <cd:command name='registerfontclass' value='enregistrerclassepolice'/>
- <cd:command name='registerhyphenationexception' value='enregistrerexceptioncesure'/>
- <cd:command name='registerhyphenationpattern' value='enregistrermotifcesure'/>
- <cd:command name='remark' value='remarque'/>
- <cd:command name='replacefeature' value='remplacerfonctionnalite'/>
- <cd:command name='reset' value='raz'/>
- <cd:command name='resetandaddfeature' value='razetajouterfonctionnalite'/>
- <cd:command name='resetcharacteralign' value='razalignercaractere'/>
- <cd:command name='resetcharacterkerning' value='razapprochecaracteres'/>
- <cd:command name='resetcharacterspacing' value='razespacementcaracteres'/>
- <cd:command name='resetcharacterstripping' value='razdemontagecaracteres'/>
- <cd:command name='resetfeature' value='razfonctionnalite'/>
- <cd:command name='resetfontcolorsheme' value='razthemecouleurpolice'/>
- <cd:command name='resetfontfallback' value='razpolicederepli'/>
- <cd:command name='resetfontsolution' value='zarsolutionpolice'/>
- <cd:command name='resethyphenationfeatures' value='razfonctionnalitescesure'/>
- <cd:command name='resetlocalfloats' value='razflottantslocaux'/>
- <cd:command name='resetmarking' value='razmarquage'/>
- <cd:command name='resetmode' value='razmode'/>
- <cd:command name='resetnumber' value='raznumero'/>
- <cd:command name='resetpath' value='razchemin'/>
- <cd:command name='resetperiodkerning' value='razapprochepoint'/>
- <cd:command name='resetsystemmode' value='razmodesysteme'/>
- <cd:command name='resettextcontent' value='raztexte'/>
- <cd:command name='resetvisualizers' value='razvisualisateurs'/>
- <cd:command name='restoreglobalbodyfont' value='restaurerpolicedecorpsglobale'/>
- <cd:command name='retestfeature' value='retesterfonctionnalite'/>
- <cd:command name='revivefeature' value='relancerfonctionnalite'/>
- <cd:command name='rightaligned' value='aligneadroite'/>
- <cd:command name='rightbottombox' value='boitebasdroite'/>
- <cd:command name='rightedgedistance' value='distanceborddroit'/>
- <cd:command name='rightedgewidth' value='largeurborddroit'/>
- <cd:command name='rightline' value='lignedroite'/>
- <cd:command name='rightmargindistance' value='distancemargedroite'/>
- <cd:command name='rightmarginwidth' value='largeurmargedroite'/>
- <cd:command name='romannumerals' value='chiffresromains'/>
- <cd:command name='rotate' value='tourner'/>
- <cd:command name='savebuffer' value='enregistrertampon'/>
- <cd:command name='scale' value='mettrealechelle'/>
- <cd:command name='screen' value='ecran'/>
- <cd:command name='selectblocks' value='selectionnerblocs'/>
- <cd:command name='selectpaper' value='selectionnerpapier'/>
- <cd:command name='selectversion' value='selectionnerversion'/>
- <cd:command name='setbigbodyfont' value='reglerpolicedecorpsimportante'/>
- <cd:command name='setcharacteralign' value='regleralignercaractere'/>
- <cd:command name='setcharacteraligndetail' value='reglerdetailalignercaractere'/>
- <cd:command name='setcharactercasing' value='reglercassecaracteres'/>
- <cd:command name='setcharactercleaning' value='reglernettoyagecaracteres'/>
- <cd:command name='setcharacterkerning' value='reglerapprochecaracteres'/>
- <cd:command name='setcharacterspacing' value='reglerespacementcaracteres'/>
- <cd:command name='setcharacterstripping' value='reglerdemontagecaracteres'/>
- <cd:command name='setcurrentfontclass' value='reglerclassepolicecourante'/>
- <cd:command name='setfirstline' value='reglerpremiereligne'/>
- <cd:command name='setfirstpasscharacteralign' value='regleralignercaracterepremierepasse'/>
- <cd:command name='setfont' value='reglerpolice'/>
- <cd:command name='setfontcolorsheme' value='reglerthemecouleurpolice'/>
- <cd:command name='setfontfeature' value='reglerfonctionnalitepolice'/>
- <cd:command name='setfontsolution' value='reglersolutionpolice'/>
- <cd:command name='setfontstrut' value='reglerentretoisepolice'/>
- <cd:command name='sethyphenationfeatures' value='reglerfonctionnalitescesure'/>
- <cd:command name='setmainbodyfont' value='reglerpolicedecorpsprincipale'/>
- <cd:command name='setmode' value='reglermode'/>
- <cd:command name='setnote' value='reglernote'/>
- <cd:command name='setnotetext' value='reglertextenote'/>
- <cd:command name='setnumber' value='reglernumero'/>
- <cd:command name='setperiodkerning' value='reglerapprochepoint'/>
- <cd:command name='setsecondpasscharacteralign' value='regleralignercaracteresecondepasse'/>
- <cd:command name='setsmallbodyfont' value='reglerpolicedecorpspetite'/>
- <cd:command name='setsystemmode' value='reglermodesysteme'/>
- <cd:command name='settextcontent' value='reglercontenutexte'/>
- <cd:command name='settextvariable' value='reglervariabletexte'/>
- <cd:command name='setupalign' value='configureraligner'/>
- <cd:command name='setupanswerarea' value='configurerzonereponse'/>
- <cd:command name='setuparranging' value='configurerarrangement'/>
- <cd:command name='setupattachment' value='configurepiecejointe'/>
- <cd:command name='setupbackground' value='configurerarriereplan'/>
- <cd:command name='setupbackgrounds' value='configurerarriereplans'/>
- <cd:command name='setupblackrules' value='configurertraitsepais'/>
- <cd:command name='setupblank' value='configurervierge'/>
- <cd:command name='setupblock' value='configurerbloc'/>
- <cd:command name='setupbodyfont' value='configurerpolicedecorps'/>
- <cd:command name='setupbodyfontenvironment' value='configurerenvironnementpolicedecorps'/>
- <cd:command name='setupbottom' value='configurerbas'/>
- <cd:command name='setupbottomtexts' value='configurertextesbas'/>
- <cd:command name='setupbuffer' value='configurertampon'/>
- <cd:command name='setupbuttons' value='configurerboutons'/>
- <cd:command name='setupcapitals' value='configurercapitales'/>
- <cd:command name='setupcaption' value='configurerintitule'/>
- <cd:command name='setupcaptions' value='configurerintitules'/>
- <cd:command name='setupcharacteralign' value='configureralignercaractere'/>
- <cd:command name='setupcharacterkerning' value='configurerapprochecaracteres'/>
- <cd:command name='setupcharacterspacing' value='configurerespacementcaracteres'/>
- <cd:command name='setupclipping' value='configurerdecoupage'/>
- <cd:command name='setupcolor' value='configurercouleur'/>
- <cd:command name='setupcolors' value='configurercouleurs'/>
- <cd:command name='setupcolumns' value='configurercolonnes'/>
- <cd:command name='setupcolumnset' value='configurerjeucolonnes'/>
- <cd:command name='setupcolumnsetlines' value='configurerlignesjeucolonnes'/>
- <cd:command name='setupcolumnsetstart' value='configurerfinjeucolonnes'/>
- <cd:command name='setupcombinations' value='configurercombinaisons'/>
- <cd:command name='setupcombinedlist' value='configurerlistecombinee'/>
- <cd:command name='setupcomment' value='configurercommentaire'/>
- <cd:command name='setupcounter' value='configurercompteur'/>
- <cd:command name='setupdescription' value='configurerdescription'/>
- <cd:command name='setupdescriptions' value='configurerdescriptions'/>
- <cd:command name='setupenumeration' value='configurerénumération'/>
- <cd:command name='setupenumerations' value='configurerénumérations'/>
- <cd:command name='setupexternalfigures' value='configurerfiguresexterne'/>
- <cd:command name='setupfield' value='configurerchamp'/>
- <cd:command name='setupfields' value='configurerchamps'/>
- <cd:command name='setupfillinlines' value='configurerlignesarenseigner'/>
- <cd:command name='setupfillinrules' value='configurertraitsarenseigner'/>
- <cd:command name='setupfirstline' value='configurerpremiereligne'/>
- <cd:command name='setupfloat' value='configurerflottant'/>
- <cd:command name='setupfloats' value='configurerflottants'/>
- <cd:command name='setupfloatsplitting' value='configurerpartageflottants'/>
- <cd:command name='setupfontexpansion' value='configurerexpansionpolice'/>
- <cd:command name='setupfontprotrusion' value='configurerprotrusionpolice'/>
- <cd:command name='setupfonts' value='configurerpolices'/>
- <cd:command name='setupfontsolution' value='configuresolutionpolice'/>
- <cd:command name='setupfooter' value='configurerpdp'/>
- <cd:command name='setupfootertexts' value='configurertextespdp'/>
- <cd:command name='setupfootnotedefinition' value='configurerdefinitionnotebdp'/>
- <cd:command name='setupfootnotes' value='configurernotesbdp'/>
- <cd:command name='setupforms' value='configurerformulaires'/>
- <cd:command name='setupformula' value='configurerformule'/>
- <cd:command name='setupformulas' value='configurerformules'/>
- <cd:command name='setupframed' value='configurerencadre'/>
- <cd:command name='setupframedtext' value='configurertexteencadre'/>
- <cd:command name='setupframedtexts' value='configurertextesencadres'/>
- <cd:command name='setuphead' value='configurertête'/>
- <cd:command name='setupheader' value='configurerentête'/>
- <cd:command name='setupheadertexts' value='configurertextesentête'/>
- <cd:command name='setupheadnumber' value='configurernumerotête'/>
- <cd:command name='setupheads' value='configurertêtes'/>
- <cd:command name='setupheadtext' value='configurertextêtete'/>
- <cd:command name='setuphyphenation' value='configurercesure'/>
- <cd:command name='setuphyphenmark' value='configurermarquecesure'/>
- <cd:command name='setupindentedtext' value='configurertexteindente'/>
- <cd:command name='setupindenting' value='configurerindentation'/>
- <cd:command name='setupinmargin' value='configurerdansmarge'/>
- <cd:command name='setupinteraction' value='configurerinteraction'/>
- <cd:command name='setupinteractionbar' value='configurerbarreinteraction'/>
- <cd:command name='setupinteractionmenu' value='configurermenuinteraction'/>
- <cd:command name='setupinteractionscreen' value='configurerecraninteraction'/>
- <cd:command name='setupinterlinespace' value='configurerespaceinterligne'/>
- <cd:command name='setupitemgroup' value='configurergroupedéléments'/>
- <cd:command name='setupitemgroups' value='configurergroupesdéléments'/>
- <cd:command name='setupitems' value='configureréléments'/>
- <cd:command name='setuplabeltext' value='configureretiquettetexte'/>
- <cd:command name='setuplanguage' value='configurerlangue'/>
- <cd:command name='setuplayout' value='configurermiseenpage'/>
- <cd:command name='setuplegend' value='configurerlegende'/>
- <cd:command name='setuplinenote' value='configurernotedeligne'/>
- <cd:command name='setuplinenumbering' value='configurernumérotationligne'/>
- <cd:command name='setuplines' value='configurerlignes'/>
- <cd:command name='setuplinewidth' value='configurerepaisseurtrait'/>
- <cd:command name='setuplist' value='configurerliste'/>
- <cd:command name='setupmakeup' value='configurercomposition'/>
- <cd:command name='setupmarginblock' value='configurerblocmarginal'/>
- <cd:command name='setupmarginblocks' value='configurerblocmarge'/>
- <cd:command name='setupmargindata' value='configurerdonneesmarginales'/>
- <cd:command name='setupmarginrules' value='configurertraitsmarge'/>
- <cd:command name='setupmarking' value='configurermarquage'/>
- <cd:command name='setupmathalignment' value='configureralignementmath'/>
- <cd:command name='setupnarrower' value='configurerplusetroit'/>
- <cd:command name='setupnotation' value='configurernotation'/>
- <cd:command name='setupnotations' value='configurernotations'/>
- <cd:command name='setupnote' value='configurenote'/>
- <cd:command name='setupnotes' value='configurenotes'/>
- <cd:command name='setupnumber' value='configurernumero'/>
- <cd:command name='setupnumbering' value='configurernumérotation'/>
- <cd:command name='setupoppositeplacing' value='configurerplacementopposition'/>
- <cd:command name='setupoutput' value='configurersortie'/>
- <cd:command name='setuppagecomment' value='configurercommentairepage'/>
- <cd:command name='setuppagenumber' value='configurernumeropage'/>
- <cd:command name='setuppagenumbering' value='configurernumérotationpage'/>
- <cd:command name='setuppagetransitions' value='configurertransitionpage'/>
- <cd:command name='setuppalet' value='configurerpalette'/>
- <cd:command name='setuppaper' value='configurerpapier'/>
- <cd:command name='setuppapersize' value='configurertaillepapier'/>
- <cd:command name='setupparagraphnumbering' value='configurernumérotationparagraphe'/>
- <cd:command name='setupparagraphs' value='configurerparagraphe'/>
- <cd:command name='setupperiodkerning' value='configurerapprochepoint'/>
- <cd:command name='setupplacement' value='configurerplacement'/>
- <cd:command name='setuppositioning' value='configurerpositionnement'/>
- <cd:command name='setupprofiles' value='configurerprofils'/>
- <cd:command name='setupprograms' value='configurerprogrammes'/>
- <cd:command name='setuppublications' value='configurerpublications'/>
- <cd:command name='setupquote' value='configurerciter'/>
- <cd:command name='setupreferencelist' value='configurerlistereference'/>
- <cd:command name='setupreferencing' value='configurerreferencement'/>
- <cd:command name='setupregister' value='configurerregistre'/>
- <cd:command name='setuprotate' value='configurerrotation'/>
- <cd:command name='setuprule' value='configurertrait'/>
- <cd:command name='setupscreens' value='configurerecran'/>
- <cd:command name='setupsection' value='configurersection'/>
- <cd:command name='setupsectionblock' value='configurerblocsection'/>
- <cd:command name='setupsorting' value='configurertri'/>
- <cd:command name='setupspacing' value='configurerespacement'/>
- <cd:command name='setupstartstop' value='configurerdébutfin'/>
- <cd:command name='setupstrut' value='configurerentretoise'/>
- <cd:command name='setupsubpagenumber' value='configurernumerosouspage'/>
- <cd:command name='setupsymbolset' value='configurerjeusymboles'/>
- <cd:command name='setupsynchronization' value='configurersynchronisation'/>
- <cd:command name='setupsynchronizationbar' value='configurerbarresynchronisation'/>
- <cd:command name='setupsynonyms' value='configurersynonymes'/>
- <cd:command name='setupsystem' value='configurersysteme'/>
- <cd:command name='setuptab' value='configurertab'/>
- <cd:command name='setuptables' value='configurertables'/>
- <cd:command name='setuptabulate' value='configurertabulation'/>
- <cd:command name='setuptext' value='configurertexte'/>
- <cd:command name='setuptextbackground' value='configurertextearriereplan'/>
- <cd:command name='setuptextnote' value='configurernotetexte'/>
- <cd:command name='setuptextposition' value='configurerpositiontexte'/>
- <cd:command name='setuptextrules' value='configurertextetraits'/>
- <cd:command name='setuptexttexts' value='configurertextestexte'/>
- <cd:command name='setuptextvariable' value='configurervariabletexte'/>
- <cd:command name='setupthinrules' value='configurertraitsfins'/>
- <cd:command name='setuptolerance' value='configurertolerance'/>
- <cd:command name='setuptop' value='configurerhaut'/>
- <cd:command name='setuptoptexts' value='configurertexteshaut'/>
- <cd:command name='setuptype' value='configurertranscrire'/>
- <cd:command name='setuptyping' value='configurertranscription'/>
- <cd:command name='setupunderbar' value='configurersouligner'/>
- <cd:command name='setupurl' value='configurerurl'/>
- <cd:command name='setupversions' value='configurerversions'/>
- <cd:command name='setupwhitespace' value='configurerespaceblanc'/>
- <cd:command name='setvisualizerfont' value='reglervisualisateurpolice'/>
- <cd:command name='showbodyfont' value='montrerpolicedecorps'/>
- <cd:command name='showbodyfontenvironment' value='montrerenvironnementpolicedecorps'/>
- <cd:command name='showcolor' value='montrercouleur'/>
- <cd:command name='showcolorgroup' value='montrergroupecouleur'/>
- <cd:command name='showcounter' value='montrercompteur'/>
- <cd:command name='showexternalfigures' value='montrerfiguresexternes'/>
- <cd:command name='showfields' value='montrerchamps'/>
- <cd:command name='showfont' value='montrerpolice'/>
- <cd:command name='showfontdata' value='montrerdonneespolice'/>
- <cd:command name='showfontexpansion' value='montrerexpansionpolice'/>
- <cd:command name='showfontitalics' value='montreritaliquespolice'/>
- <cd:command name='showfontkerns' value='montrerlesapproches'/>
- <cd:command name='showfontparameters' value='montrerparametrespolice'/>
- <cd:command name='showfontstrip' value='montrervisuellementpolice'/>
- <cd:command name='showfontstyle' value='montrerstylepolice'/>
- <cd:command name='showframe' value='montrermiseenpage'/>
- <cd:command name='showgrid' value='montrergrille'/>
- <cd:command name='showhyphenationtrace' value='montrertracecesure'/>
- <cd:command name='showkerning' value='montrerapproche'/>
- <cd:command name='showlayout' value='montrermiseenpage'/>
- <cd:command name='showmakeup' value='montrercomposition'/>
- <cd:command name='showminimalbaseline' value='montrerlignedebase'/>
- <cd:command name='showpalet' value='montrerpalette'/>
- <cd:command name='showprint' value='montrerimpression'/>
- <cd:command name='showsetups' value='montrerconfigurations'/>
- <cd:command name='showstruts' value='montrerentretoises'/>
- <cd:command name='showsymbolset' value='montrerjeusymboles'/>
- <cd:command name='smallcapped' value='petitescap'/>
- <cd:command name='someline' value='uneligne'/>
- <cd:command name='somewhere' value='qqpart'/>
- <cd:command name='space' value='espace'/>
- <cd:command name='specialitem' value='élémentspécial'/>
- <cd:command name='splitfloat' value='flottantpartage'/>
- <cd:command name='startalignment' value='débutalignement'/>
- <cd:command name='startbackground' value='débutarriereplan'/>
- <cd:command name='startcoding' value='débutcodage'/>
- <cd:command name='startcolor' value='débutcouleur'/>
- <cd:command name='startcolumnmakeup' value='débutcompositioncolonne'/>
- <cd:command name='startcolumns' value='débutcolonnes'/>
- <cd:command name='startcolumnset' value='débutjeucolonnes'/>
- <cd:command name='startcombination' value='débutcombinaison'/>
- <cd:command name='startcomponent' value='débutcomposant'/>
- <cd:command name='startdocument' value='débutdocument'/>
- <cd:command name='startenvironment' value='débutenvironnement'/>
- <cd:command name='startfigure' value='débutfigure'/>
- <cd:command name='startframed' value='débutencadre'/>
- <cd:command name='startglobal' value='débutglobal'/>
- <cd:command name='startline' value='débutligneref'/>
- <cd:command name='startlinecorrection' value='débutcorrectionligne'/>
- <cd:command name='startlinenote' value='débutnotedeligne'/>
- <cd:command name='startlinenumbering' value='débutnumérotationligne'/>
- <cd:command name='startlines' value='débutlignes'/>
- <cd:command name='startlocal' value='débutlocal'/>
- <cd:command name='startlocalfootnotes' value='débutnotesbdplocal'/>
- <cd:command name='startmakeup' value='débutcomposition'/>
- <cd:command name='startmarginblock' value='débutblocmarge'/>
- <cd:command name='startmarginrule' value='débuttraitmarge'/>
- <cd:command name='startnarrower' value='débutplusetroit'/>
- <cd:command name='startopposite' value='débutopposition'/>
- <cd:command name='startoverlay' value='débutsuperposition'/>
- <cd:command name='startoverview' value='débutvuedensemble'/>
- <cd:command name='startpacked' value='débutemballage'/>
- <cd:command name='startpositioning' value='débutpositionnement'/>
- <cd:command name='startproduct' value='débutproduit'/>
- <cd:command name='startprofile' value='débutprofil'/>
- <cd:command name='startproject' value='débutprojet'/>
- <cd:command name='startquotation' value='débutcitation'/>
- <cd:command name='startraster' value='débutraster'/>
- <cd:command name='startsymbolset' value='débutjeusymboles'/>
- <cd:command name='startsynchronization' value='débutsynchronisation'/>
- <cd:command name='starttable' value='débuttable'/>
- <cd:command name='starttables' value='débuttables'/>
- <cd:command name='starttext' value='débuttexte'/>
- <cd:command name='starttextbackground' value='débuttextearriereplan'/>
- <cd:command name='starttextrule' value='débuttextetrait'/>
- <cd:command name='startunpacked' value='débutdesemballage'/>
- <cd:command name='startversion' value='débutversion'/>
- <cd:command name='stopalignment' value='finalignement'/>
- <cd:command name='stopbackground' value='finarriereplan'/>
- <cd:command name='stopcoding' value='fincodage'/>
- <cd:command name='stopcolor' value='fincouleur'/>
- <cd:command name='stopcolumnmakeup' value='fincompositioncolonne'/>
- <cd:command name='stopcolumns' value='fincolonnes'/>
- <cd:command name='stopcolumnset' value='finjeucolonnes'/>
- <cd:command name='stopcombination' value='fincombinaison'/>
- <cd:command name='stopcomponent' value='fincomposant'/>
- <cd:command name='stopdocument' value='findocument'/>
- <cd:command name='stopenvironment' value='finenvironnement'/>
- <cd:command name='stopframed' value='finencadre'/>
- <cd:command name='stopglobal' value='finglobal'/>
- <cd:command name='stopline' value='finligneref'/>
- <cd:command name='stoplinecorrection' value='fincorrectionligne'/>
- <cd:command name='stoplinenote' value='finnotedeligne'/>
- <cd:command name='stoplinenumbering' value='finnumérotationligne'/>
- <cd:command name='stoplines' value='finlignes'/>
- <cd:command name='stoplocal' value='finlocal'/>
- <cd:command name='stoplocalfootnotes' value='finnotesbdplocal'/>
- <cd:command name='stopmakeup' value='fincomposition'/>
- <cd:command name='stopmarginblock' value='finblocmarge'/>
- <cd:command name='stopmarginrule' value='fintraitmarge'/>
- <cd:command name='stopnarrower' value='finplusetroit'/>
- <cd:command name='stopopposite' value='finopposition'/>
- <cd:command name='stopoverlay' value='finsuperposition'/>
- <cd:command name='stopoverview' value='finvuedensemble'/>
- <cd:command name='stoppacked' value='finemballage'/>
- <cd:command name='stoppositioning' value='finpositionnement'/>
- <cd:command name='stopproduct' value='finproduit'/>
- <cd:command name='stopprofile' value='finprofil'/>
- <cd:command name='stopproject' value='finprojet'/>
- <cd:command name='stopquotation' value='fincitation'/>
- <cd:command name='stopraster' value='finraster'/>
- <cd:command name='stopsynchronization' value='finsynchronisation'/>
- <cd:command name='stoptable' value='fintable'/>
- <cd:command name='stoptables' value='fintables'/>
- <cd:command name='stoptext' value='fintexte'/>
- <cd:command name='stoptextbackground' value='fintextearriereplan'/>
- <cd:command name='stoptextrule' value='fintextetrait'/>
- <cd:command name='stopunpacked' value='findesemballage'/>
- <cd:command name='stopversion' value='finversion'/>
- <cd:command name='stretched' value='etire'/>
- <cd:command name='strictinspectnextcharacter' value='inspecterstrictementcaracteresuivant'/>
- <cd:command name='stripcharacter' value='demontercaractere'/>
- <cd:command name='subformulanumber' value='numerosousformule'/>
- <cd:command name='subpagenumber' value='numerosouspage'/>
- <cd:command name='subtractfeature' value='enleverfonctionnalite'/>
- <cd:command name='switchtobodyfont' value='passerapolicedecorps'/>
- <cd:command name='switchtorawfont' value='passerapolicebrute'/>
- <cd:command name='sym' value='sym'/>
- <cd:command name='symbol' value='symbole'/>
- <cd:command name='symoffset' value='decalagesym'/>
- <cd:command name='synchronizationbar' value='barresynchronisation'/>
- <cd:command name='synchronize' value='synchroniser'/>
- <cd:command name='tab' value='tab'/>
- <cd:command name='testcolumn' value='testcolonne'/>
- <cd:command name='testfeature' value='testerfonctionnalite'/>
- <cd:command name='testfeatureonce' value='testerfonctionnaliteunfois'/>
- <cd:command name='testpage' value='testpage'/>
- <cd:command name='tex' value='tex'/>
- <cd:command name='textbackground' value='textearriereplan'/>
- <cd:command name='textcolor' value='textecouleura'/>
- <cd:command name='textheight' value='hauteurtexte'/>
- <cd:command name='textnote' value='notetexte'/>
- <cd:command name='textreference' value='referencetexte'/>
- <cd:command name='textrule' value='traittexte'/>
- <cd:command name='textvariable' value='variabletexte'/>
- <cd:command name='textwidth' value='largeurtexte'/>
- <cd:command name='thefirstcharacter' value='lepremiercaractere'/>
- <cd:command name='thenormalizedbodyfontsize' value='lataillenormaliseepolicedecorps'/>
- <cd:command name='theremainingcharacters' value='lescaracteresrestants'/>
- <cd:command name='thinrule' value='traitfin'/>
- <cd:command name='thinrules' value='traitsfins'/>
- <cd:command name='tolinenote' value='alanotedeligne'/>
- <cd:command name='tooltip' value='infobulle'/>
- <cd:command name='topdistance' value='distancehaut'/>
- <cd:command name='topheight' value='hauteurhaut'/>
- <cd:command name='topspace' value='espacehaut'/>
- <cd:command name='totalnumberofpages' value='nombretotaldepages'/>
- <cd:command name='translate' value='traduire'/>
- <cd:command name='txt' value='txt'/>
- <cd:command name='typ' value='transcrireaveccesure'/>
- <cd:command name='type' value='transcrire'/>
- <cd:command name='typebuffer' value='transcriretampon'/>
- <cd:command name='typedefinedbuffer' value='transcriretampondefini'/>
- <cd:command name='typefile' value='transcrirefichier'/>
- <cd:command name='typeinlinebuffer' value='transcriretamponenligne'/>
- <cd:command name='typing' value='transcription'/>
- <cd:command name='unitmeaning' value='significationunite'/>
- <cd:command name='unknown' value='inconnu'/>
- <cd:command name='unregisterhyphenationpattern' value='desenregistrermotifcesure'/>
- <cd:command name='useJSscripts' value='utiliserJSscript'/>
- <cd:command name='useURL' value='utiliserURL'/>
- <cd:command name='useXMLfilter' value='utiliserfiltreXML'/>
- <cd:command name='useblocks' value='utiliserblocs'/>
- <cd:command name='usebodyfont' value='utiliserpolicedecorps'/>
- <cd:command name='usebodyfontparameter' value='utiliserparametrepolicedecorps'/>
- <cd:command name='usecommands' value='utilisercommandes'/>
- <cd:command name='useencoding' value='utilisercodage'/>
- <cd:command name='useexternaldocument' value='utiliserdocumentexterne'/>
- <cd:command name='useexternalfigure' value='utiliserfigureexterne'/>
- <cd:command name='useexternalfile' value='utiliserfichierexterne'/>
- <cd:command name='useexternalfiles' value='utiliserfichiersexternes'/>
- <cd:command name='useexternalsoundtrack' value='utilisersonexterne'/>
- <cd:command name='usemodule' value='utilisermodule'/>
- <cd:command name='usemodules' value='utilisermodules'/>
- <cd:command name='usepath' value='utiliserchemin'/>
- <cd:command name='usereferences' value='utiliserreferences'/>
- <cd:command name='usespecials' value='utiliserspeciaux'/>
- <cd:command name='usesymbols' value='utilisersymboles'/>
- <cd:command name='usetypescript' value='utiliserscriptdepolices'/>
- <cd:command name='usetypescriptfile' value='utiliserfichierscriptdepolices'/>
- <cd:command name='useurl' value='utiliserurl'/>
- <cd:command name='verbatim' value='verbatim'/>
- <cd:command name='version' value='version'/>
- <cd:command name='vl' value='lv'/>
- <cd:command name='weekday' value='joursemaine'/>
- <cd:command name='whitespace' value='espaceblanc'/>
- <cd:command name='widthspanningtext' value='largeurtextecouvrant'/>
- <cd:command name='wordright' value='ecrireadroite'/>
- <cd:command name='writebetweenlist' value='ecrireentreliste'/>
- <cd:command name='writetolist' value='ecriredansliste'/>
- <cd:command name='writetoreferencelist' value='ecriredanslistereference'/>
- <cd:command name='writetoregister' value='ecriredansregistre'/>
- </cd:commands>
-
-</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-it.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-it.xml
deleted file mode 100644
index f45b5a574db..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-it.xml
+++ /dev/null
@@ -1,2237 +0,0 @@
-<?xml version='1.0'?>
-
-<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='it' version='2008.10.21 19:42'>
-
- <!-- definitions for interface variables for language it -->
-
- <cd:variables>
- <cd:variable name='Addition' value='Aggiunta'/>
- <cd:variable name='Alphabetic' value='Alphabetic'/>
- <cd:variable name='Balloon' value='Pallone'/>
- <cd:variable name='Cap' value='Cap'/>
- <cd:variable name='Capital' value='Maiuscolo'/>
- <cd:variable name='Character' value='Lettera'/>
- <cd:variable name='Characters' value='Lettere'/>
- <cd:variable name='CloseDocument' value='ChiudiDocumento'/>
- <cd:variable name='ExitViewer' value='EsciVisualizzatore'/>
- <cd:variable name='FirstPage' value='PrimaPagina'/>
- <cd:variable name='FitHeight' value='FitHeight'/>
- <cd:variable name='FitWidth' value='FitWidth'/>
- <cd:variable name='GotoPage' value='VaiAPagina'/>
- <cd:variable name='Greek' value='Greco'/>
- <cd:variable name='Help' value='Aiuto'/>
- <cd:variable name='HideField' value='NascondiCampo'/>
- <cd:variable name='HideLayer' value='HideLayer'/>
- <cd:variable name='Key' value='Tasto'/>
- <cd:variable name='LastPage' value='UltimaPagina'/>
- <cd:variable name='LoadForm' value='CaricaForm'/>
- <cd:variable name='MONTH' value='MESE'/>
- <cd:variable name='New' value='Nuovo'/>
- <cd:variable name='NextJump' value='SaltoSuccessivo'/>
- <cd:variable name='NextPage' value='PaginaSuccessiva'/>
- <cd:variable name='Numbers' value='Numeri'/>
- <cd:variable name='OpenNamedDocument' value='OpenNamedDocument'/>
- <cd:variable name='Ordinal' value='Ordinal'/>
- <cd:variable name='Paragraph' value='Capoverso'/>
- <cd:variable name='PauseMovie' value='PausaFilm'/>
- <cd:variable name='PauseRendering' value='PauseRendering'/>
- <cd:variable name='PauseSound' value='PausaSuono'/>
- <cd:variable name='PreviousJump' value='SaltoPrecedente'/>
- <cd:variable name='PreviousPage' value='PaginaPrecedente'/>
- <cd:variable name='PrintDocument' value='StampaDocumento'/>
- <cd:variable name='Query' value='Richiesta'/>
- <cd:variable name='QueryAgain' value='RinnovaRichiesta'/>
- <cd:variable name='ResetForm' value='ReimpostaForm'/>
- <cd:variable name='ResumeMovie' value='RiprendiFilm'/>
- <cd:variable name='ResumeRendering' value='ResumeRendering'/>
- <cd:variable name='ResumeSound' value='RiprendiSuono'/>
- <cd:variable name='Romannumerals' value='Numeriromani'/>
- <cd:variable name='SaveDocument' value='SalvaDocumento'/>
- <cd:variable name='SaveForm' value='SalvaForm'/>
- <cd:variable name='SaveNamedDocument' value='SaveNamedDocument'/>
- <cd:variable name='SearchAgain' value='CercaAncora'/>
- <cd:variable name='SearchDocument' value='CercaDocumento'/>
- <cd:variable name='ShowBookmarks' value='MostraSegnalibro'/>
- <cd:variable name='ShowField' value='MostraCampo'/>
- <cd:variable name='ShowThumbs' value='MostraThumbs'/>
- <cd:variable name='StartMovie' value='IniziaFilm'/>
- <cd:variable name='StartRendering' value='StartRendering'/>
- <cd:variable name='StartSound' value='IniziaSuono'/>
- <cd:variable name='StopMovie' value='FermaFilm'/>
- <cd:variable name='StopRendering' value='StopRendering'/>
- <cd:variable name='StopSound' value='FermaSuono'/>
- <cd:variable name='SubmitForm' value='MandaForm'/>
- <cd:variable name='ToggleLayer' value='ToggleLayer'/>
- <cd:variable name='ToggleViewer' value='ScambiaVisualizzatore'/>
- <cd:variable name='URL' value='URL'/>
- <cd:variable name='VideLayer' value='VideLayer'/>
- <cd:variable name='ViewerHelp' value='AiutoVisualizzatore'/>
- <cd:variable name='WEEKDAY' value='GIORNOSETTIMANA'/>
- <cd:variable name='WORD' value='PAROLA'/>
- <cd:variable name='WORDS' value='PAROLE'/>
- <cd:variable name='Word' value='Parola'/>
- <cd:variable name='Words' value='Parole'/>
- <cd:variable name='abbreviation' value='abbreviazione'/>
- <cd:variable name='abbreviations' value='abbreviazioni'/>
- <cd:variable name='absolute' value='assoluto'/>
- <cd:variable name='action' value='azione'/>
- <cd:variable name='after' value='dopo'/>
- <cd:variable name='all' value='tutti'/>
- <cd:variable name='alphabetic' value='alphabetic'/>
- <cd:variable name='always' value='sempre'/>
- <cd:variable name='anchor' value='anchor'/>
- <cd:variable name='and' value='and'/>
- <cd:variable name='answerarea' value='answerarea'/>
- <cd:variable name='appendices' value='appendici'/>
- <cd:variable name='appendix' value='appendice'/>
- <cd:variable name='april' value='aprile'/>
- <cd:variable name='aside' value='aside'/>
- <cd:variable name='atleftmargin' value='atleftmargin'/>
- <cd:variable name='atmargin' value='almargine'/>
- <cd:variable name='atpage' value='apagina'/>
- <cd:variable name='atrightmargin' value='atrightmargin'/>
- <cd:variable name='attachment' value='attachment'/>
- <cd:variable name='august' value='agosto'/>
- <cd:variable name='author' value='autore'/>
- <cd:variable name='auto' value='auto'/>
- <cd:variable name='autointro' value='autointro'/>
- <cd:variable name='autopunctuation' value='autopunctuation'/>
- <cd:variable name='back' value='dietro'/>
- <cd:variable name='background' value='sfondo'/>
- <cd:variable name='backmatter' value='postambolo'/>
- <cd:variable name='backpart' value='postfazione'/>
- <cd:variable name='backspace' value='backspace'/>
- <cd:variable name='backward' value='indietro'/>
- <cd:variable name='bbl' value='bbl'/>
- <cd:variable name='before' value='prima'/>
- <cd:variable name='begin' value='begin'/>
- <cd:variable name='bib' value='bib'/>
- <cd:variable name='big' value='grande'/>
- <cd:variable name='bigbodyfont' value='grossofontdeltesto'/>
- <cd:variable name='bigger' value='bigger'/>
- <cd:variable name='bigpreference' value='grandepreferenza'/>
- <cd:variable name='blank' value='rigovuoto'/>
- <cd:variable name='block' value='block'/>
- <cd:variable name='blockquote' value='blockquote'/>
- <cd:variable name='bodymatter' value='testiprincipali'/>
- <cd:variable name='bodypart' value='testoprincipale'/>
- <cd:variable name='bold' value='grassetto'/>
- <cd:variable name='bolditalic' value='grassettocorsivo'/>
- <cd:variable name='boldslanted' value='grassettoinclinato'/>
- <cd:variable name='bookmark' value='segnalibro'/>
- <cd:variable name='both' value='entrambi'/>
- <cd:variable name='bothtext' value='bothtext'/>
- <cd:variable name='bottom' value='fondo'/>
- <cd:variable name='box' value='box'/>
- <cd:variable name='brief' value='brief'/>
- <cd:variable name='broad' value='ampio'/>
- <cd:variable name='buffer' value='buffer'/>
- <cd:variable name='by' value='da'/>
- <cd:variable name='calligraphic' value='calligrafico'/>
- <cd:variable name='camel' value='camel'/>
- <cd:variable name='cap' value='cap'/>
- <cd:variable name='capital' value='maiuscolo'/>
- <cd:variable name='category' value='category'/>
- <cd:variable name='cd:character' value='cd:character'/>
- <cd:variable name='cd:font' value='cd:font'/>
- <cd:variable name='center' value='center'/>
- <cd:variable name='centerlast' value='centerlast'/>
- <cd:variable name='chapter' value='capitolo'/>
- <cd:variable name='character' value='lettera'/>
- <cd:variable name='characters' value='lettere'/>
- <cd:variable name='chemical' value='chemical'/>
- <cd:variable name='chemicals' value='chemicals'/>
- <cd:variable name='chemistry' value='chemistry'/>
- <cd:variable name='cite' value='cite'/>
- <cd:variable name='closed' value='closed'/>
- <cd:variable name='color' value='colore'/>
- <cd:variable name='column' value='colonna'/>
- <cd:variable name='columns' value='colonne'/>
- <cd:variable name='combination' value='combination'/>
- <cd:variable name='command' value='comando'/>
- <cd:variable name='commands' value='comandi'/>
- <cd:variable name='comment' value='commento'/>
- <cd:variable name='component' value='componente'/>
- <cd:variable name='compressseparator' value='compressseparator'/>
- <cd:variable name='compressstopper' value='compressstopper'/>
- <cd:variable name='concept' value='concetto'/>
- <cd:variable name='construction' value='construction'/>
- <cd:variable name='content' value='indice'/>
- <cd:variable name='contents' value='indici'/>
- <cd:variable name='continue' value='continua'/>
- <cd:variable name='continued' value='continued'/>
- <cd:variable name='controls' value='controlli'/>
- <cd:variable name='conversion' value='coversione'/>
- <cd:variable name='current' value='corrente'/>
- <cd:variable name='cutspace' value='cutspace'/>
- <cd:variable name='dataset' value='dataset'/>
- <cd:variable name='date' value='data'/>
- <cd:variable name='day' value='giorno'/>
- <cd:variable name='december' value='dicembre'/>
- <cd:variable name='default' value='implicito'/>
- <cd:variable name='depth' value='profondita'/>
- <cd:variable name='description' value='descrizione'/>
- <cd:variable name='disable' value='disattiva'/>
- <cd:variable name='display' value='schermo'/>
- <cd:variable name='dot' value='punto'/>
- <cd:variable name='doublesided' value='doppiafaccia'/>
- <cd:variable name='down' value='down'/>
- <cd:variable name='each' value='ogni'/>
- <cd:variable name='edge' value='bordo'/>
- <cd:variable name='effective' value='effective'/>
- <cd:variable name='eight' value='eight'/>
- <cd:variable name='embed' value='embed'/>
- <cd:variable name='empty' value='vuoto'/>
- <cd:variable name='enable' value='enable'/>
- <cd:variable name='end' value='end'/>
- <cd:variable name='endnote' value='endnote'/>
- <cd:variable name='enumeration' value='enumerazione'/>
- <cd:variable name='environment' value='ambiente'/>
- <cd:variable name='even' value='pari'/>
- <cd:variable name='export' value='export'/>
- <cd:variable name='external' value='esterno'/>
- <cd:variable name='extremestretch' value='extremestretch'/>
- <cd:variable name='fact' value='fatto'/>
- <cd:variable name='fallback' value='fallback'/>
- <cd:variable name='february' value='febbraio'/>
- <cd:variable name='field' value='field'/>
- <cd:variable name='figure' value='figura'/>
- <cd:variable name='figures' value='figure'/>
- <cd:variable name='file' value='file'/>
- <cd:variable name='final' value='finale'/>
- <cd:variable name='first' value='primo'/>
- <cd:variable name='firstcolumn' value='firstcolumn'/>
- <cd:variable name='firstpage' value='primapagina'/>
- <cd:variable name='firstsubpage' value='primasottopagina'/>
- <cd:variable name='fit' value='adatta'/>
- <cd:variable name='five' value='cinque'/>
- <cd:variable name='fix' value='fisso'/>
- <cd:variable name='fixed' value='fisso'/>
- <cd:variable name='flexible' value='flessibile'/>
- <cd:variable name='float' value='oggettomobile'/>
- <cd:variable name='flushinner' value='flushinner'/>
- <cd:variable name='flushleft' value='flushleft'/>
- <cd:variable name='flushouter' value='flushouter'/>
- <cd:variable name='flushright' value='flushright'/>
- <cd:variable name='followingpage' value='followingpage'/>
- <cd:variable name='font' value='font'/>
- <cd:variable name='footer' value='piedipagina'/>
- <cd:variable name='footnote' value='notapdp'/>
- <cd:variable name='force' value='forza'/>
- <cd:variable name='foreground' value='foreground'/>
- <cd:variable name='formula' value='formula'/>
- <cd:variable name='formulas' value='formule'/>
- <cd:variable name='forward' value='avanti'/>
- <cd:variable name='four' value='quattro'/>
- <cd:variable name='fractions' value='fractions'/>
- <cd:variable name='frame' value='cornice'/>
- <cd:variable name='framedtext' value='testoincorniciato'/>
- <cd:variable name='friday' value='venerdi'/>
- <cd:variable name='frontmatter' value='preambolo'/>
- <cd:variable name='frontpart' value='prefazione'/>
- <cd:variable name='fullhz' value='fullhz'/>
- <cd:variable name='global' value='globale'/>
- <cd:variable name='graphic' value='grafico'/>
- <cd:variable name='graphics' value='grafici'/>
- <cd:variable name='gray' value='grigio'/>
- <cd:variable name='greek' value='greco'/>
- <cd:variable name='grid' value='griglia'/>
- <cd:variable name='halfline' value='mezzariga'/>
- <cd:variable name='handwritten' value='grafiamanuale'/>
- <cd:variable name='hang' value='sospendi'/>
- <cd:variable name='hanging' value='sospeso'/>
- <cd:variable name='hangingboth' value='hangingboth'/>
- <cd:variable name='head' value='testa'/>
- <cd:variable name='header' value='intestazione'/>
- <cd:variable name='headintext' value='headintext'/>
- <cd:variable name='height' value='altezza'/>
- <cd:variable name='helptext' value='testoaiuto'/>
- <cd:variable name='hencefore' value='precedente'/>
- <cd:variable name='here' value='qui'/>
- <cd:variable name='hereafter' value='seguente'/>
- <cd:variable name='hidden' value='nascosto'/>
- <cd:variable name='hiddenbar' value='hiddenbar'/>
- <cd:variable name='hiding' value='nascondere'/>
- <cd:variable name='high' value='alto'/>
- <cd:variable name='horizontal' value='orizzontale'/>
- <cd:variable name='hyphenated' value='sillabato'/>
- <cd:variable name='hz' value='hz'/>
- <cd:variable name='inbetween' value='tra'/>
- <cd:variable name='index' value='indiceanalitico'/>
- <cd:variable name='indices' value='indicianalitici'/>
- <cd:variable name='inherit' value='inherit'/>
- <cd:variable name='ininner' value='ininner'/>
- <cd:variable name='ininneredge' value='ininneredge'/>
- <cd:variable name='ininnermargin' value='ininnermargin'/>
- <cd:variable name='inleft' value='insinistra'/>
- <cd:variable name='inleftedge' value='inlatosinistro'/>
- <cd:variable name='inleftmargin' value='inmarginesinistro'/>
- <cd:variable name='inline' value='inline'/>
- <cd:variable name='inmargin' value='inmargine'/>
- <cd:variable name='inner' value='interno'/>
- <cd:variable name='inneredge' value='bordointerno'/>
- <cd:variable name='innermargin' value='margineinterno'/>
- <cd:variable name='inother' value='inother'/>
- <cd:variable name='inouter' value='inouter'/>
- <cd:variable name='inouteredge' value='inouteredge'/>
- <cd:variable name='inoutermargin' value='inoutermargin'/>
- <cd:variable name='inright' value='indestra'/>
- <cd:variable name='inrightedge' value='inlatodestro'/>
- <cd:variable name='inrightmargin' value='inmarginedestro'/>
- <cd:variable name='integral' value='integral'/>
- <cd:variable name='interaction' value='interazione'/>
- <cd:variable name='interactionmenu' value='menuinterattivo'/>
- <cd:variable name='interactive' value='interactive'/>
- <cd:variable name='intermezzi' value='intermezzi'/>
- <cd:variable name='intermezzo' value='intermezzo'/>
- <cd:variable name='intext' value='intesto'/>
- <cd:variable name='intro' value='intro'/>
- <cd:variable name='invertedshort' value='invertedshort'/>
- <cd:variable name='italic' value='corsivo'/>
- <cd:variable name='italicbold' value='corsivograssetto'/>
- <cd:variable name='item' value='elemento'/>
- <cd:variable name='itemize' value='elenco'/>
- <cd:variable name='its' value='its'/>
- <cd:variable name='january' value='gennaio'/>
- <cd:variable name='joinedup' value='unito'/>
- <cd:variable name='july' value='luglio'/>
- <cd:variable name='june' value='giugno'/>
- <cd:variable name='keep' value='mantieni'/>
- <cd:variable name='kerncharacters' value='kerncharacters'/>
- <cd:variable name='knockout' value='knockout'/>
- <cd:variable name='label' value='etichetta'/>
- <cd:variable name='landscape' value='orizzontale'/>
- <cd:variable name='last' value='ultimo'/>
- <cd:variable name='lastcolumn' value='lastcolumn'/>
- <cd:variable name='lastpage' value='ultimapagina'/>
- <cd:variable name='lastpagenumber' value='lastpagenumber'/>
- <cd:variable name='lastsubpage' value='ultimasottopagina'/>
- <cd:variable name='layer' value='layer'/>
- <cd:variable name='left' value='sinistra'/>
- <cd:variable name='leftedge' value='bordosinistro'/>
- <cd:variable name='lefthanging' value='lefthanging'/>
- <cd:variable name='leftmargin' value='marginesinistro'/>
- <cd:variable name='leftpage' value='paginasinistra'/>
- <cd:variable name='lefttoright' value='lefttoright'/>
- <cd:variable name='legend' value='legenda'/>
- <cd:variable name='less' value='less'/>
- <cd:variable name='lesshyphenation' value='lesshyphenation'/>
- <cd:variable name='letterspacing' value='letterspacing'/>
- <cd:variable name='line' value='riga'/>
- <cd:variable name='linenote' value='linenote'/>
- <cd:variable name='lines' value='righe'/>
- <cd:variable name='linked' value='linked'/>
- <cd:variable name='list' value='elenco'/>
- <cd:variable name='local' value='locale'/>
- <cd:variable name='localenvironment' value='ambientelocale'/>
- <cd:variable name='logo' value='logo'/>
- <cd:variable name='logos' value='loghi'/>
- <cd:variable name='lohi' value='pedap'/>
- <cd:variable name='long' value='long'/>
- <cd:variable name='loose' value='lento'/>
- <cd:variable name='low' value='basso'/>
- <cd:variable name='ls' value='ls'/>
- <cd:variable name='makeup' value='makeup'/>
- <cd:variable name='mar' value='mar'/>
- <cd:variable name='march' value='marzo'/>
- <cd:variable name='margin' value='margine'/>
- <cd:variable name='marginedge' value='bordomargine'/>
- <cd:variable name='margintext' value='testoinmargine'/>
- <cd:variable name='margintitle' value='titoloinmargine'/>
- <cd:variable name='marking' value='marcatura'/>
- <cd:variable name='math' value='math'/>
- <cd:variable name='mathalignment' value='mathalignment'/>
- <cd:variable name='mathcases' value='mathcases'/>
- <cd:variable name='mathematics' value='matematica'/>
- <cd:variable name='mathmatrix' value='mathmatrix'/>
- <cd:variable name='max' value='max'/>
- <cd:variable name='maxdepth' value='maxdepth'/>
- <cd:variable name='maxheight' value='maxheight'/>
- <cd:variable name='maxwidth' value='maxwidth'/>
- <cd:variable name='may' value='maggio'/>
- <cd:variable name='mediaeval' value='medievale'/>
- <cd:variable name='medium' value='medio'/>
- <cd:variable name='middle' value='centro'/>
- <cd:variable name='min' value='min'/>
- <cd:variable name='mindepth' value='mindepth'/>
- <cd:variable name='minheight' value='altezzamin'/>
- <cd:variable name='minwidth' value='ampiezzamin'/>
- <cd:variable name='mirrored' value='riflesso'/>
- <cd:variable name='mixed' value='mixed'/>
- <cd:variable name='monday' value='lunedi'/>
- <cd:variable name='mono' value='mono'/>
- <cd:variable name='monobold' value='monograssetto'/>
- <cd:variable name='mononormal' value='mononormal'/>
- <cd:variable name='month' value='mese'/>
- <cd:variable name='more' value='more'/>
- <cd:variable name='morehyphenation' value='morehyphenation'/>
- <cd:variable name='name' value='nome'/>
- <cd:variable name='narrow' value='stretto'/>
- <cd:variable name='negative' value='negativo'/>
- <cd:variable name='never' value='mai'/>
- <cd:variable name='new' value='nuovo'/>
- <cd:variable name='next' value='successivo'/>
- <cd:variable name='nextevenpage' value='paginaparisuccessiva'/>
- <cd:variable name='nextoddpage' value='paginadisparisuccessiva'/>
- <cd:variable name='nextpage' value='paginasuccessiva'/>
- <cd:variable name='nextsubpage' value='sottopaginasuccessiva'/>
- <cd:variable name='nine' value='nine'/>
- <cd:variable name='no' value='no'/>
- <cd:variable name='nocheck' value='nocheck'/>
- <cd:variable name='nodepth' value='nodepth'/>
- <cd:variable name='nofit' value='nofit'/>
- <cd:variable name='nogrid' value='nogrid'/>
- <cd:variable name='noheight' value='noheight'/>
- <cd:variable name='nohz' value='nohz'/>
- <cd:variable name='noline' value='noline'/>
- <cd:variable name='nomarking' value='nomarcature'/>
- <cd:variable name='nomenubar' value='nomenubar'/>
- <cd:variable name='none' value='nessuno'/>
- <cd:variable name='nonumber' value='nonumber'/>
- <cd:variable name='norepeat' value='norepeat'/>
- <cd:variable name='normal' value='normale'/>
- <cd:variable name='normalshort' value='normalshort'/>
- <cd:variable name='nospacing' value='nospacing'/>
- <cd:variable name='nostopper' value='nostopper'/>
- <cd:variable name='not' value='non'/>
- <cd:variable name='notation' value='notation'/>
- <cd:variable name='note' value='note'/>
- <cd:variable name='nothanging' value='nonsospeso'/>
- <cd:variable name='nothyphenated' value='nonsillabato'/>
- <cd:variable name='notjoinedup' value='notjoinedup'/>
- <cd:variable name='november' value='novembre'/>
- <cd:variable name='nowhere' value='danessunaparte'/>
- <cd:variable name='nowhite' value='nobianco'/>
- <cd:variable name='number' value='numero'/>
- <cd:variable name='numbers' value='numeri'/>
- <cd:variable name='october' value='ottobre'/>
- <cd:variable name='odd' value='dispari'/>
- <cd:variable name='off' value='disattivo'/>
- <cd:variable name='offset' value='offset'/>
- <cd:variable name='old' value='old'/>
- <cd:variable name='oldstyle' value='oldstyle'/>
- <cd:variable name='on' value='attivo'/>
- <cd:variable name='one' value='uno'/>
- <cd:variable name='opposite' value='opposto'/>
- <cd:variable name='ordinal' value='ordinal'/>
- <cd:variable name='outer' value='esterno'/>
- <cd:variable name='outeredge' value='bordoesterno'/>
- <cd:variable name='outermargin' value='margineesterno'/>
- <cd:variable name='overbar' value='sopralinea'/>
- <cd:variable name='overbars' value='sopralinee'/>
- <cd:variable name='overlay' value='sovrapponi'/>
- <cd:variable name='overprint' value='overprint'/>
- <cd:variable name='overstrike' value='sbarrato'/>
- <cd:variable name='overstrikes' value='sbarrati'/>
- <cd:variable name='packed' value='impaccato'/>
- <cd:variable name='page' value='pagina'/>
- <cd:variable name='pagecomment' value='commentopagina'/>
- <cd:variable name='pagenumber' value='numeropagina'/>
- <cd:variable name='paper' value='carta'/>
- <cd:variable name='paragraph' value='capoverso'/>
- <cd:variable name='part' value='parte'/>
- <cd:variable name='positive' value='positivo'/>
- <cd:variable name='postponing' value='posporre'/>
- <cd:variable name='postscript' value='postscript'/>
- <cd:variable name='precedingpage' value='precedingpage'/>
- <cd:variable name='preference' value='preferenza'/>
- <cd:variable name='preview' value='anteprima'/>
- <cd:variable name='previous' value='precedente'/>
- <cd:variable name='previousevenpage' value='paginapariprecedente'/>
- <cd:variable name='previousoddpage' value='paginadispariprecedente'/>
- <cd:variable name='previouspage' value='paginaprecedente'/>
- <cd:variable name='previoussubpage' value='sottopaginaprecedente'/>
- <cd:variable name='print' value='print'/>
- <cd:variable name='printable' value='stampabile'/>
- <cd:variable name='process' value='process'/>
- <cd:variable name='product' value='prodotto'/>
- <cd:variable name='program' value='programma'/>
- <cd:variable name='project' value='progetto'/>
- <cd:variable name='protected' value='protetto'/>
- <cd:variable name='quadruple' value='quadruplo'/>
- <cd:variable name='quarterline' value='quarterline'/>
- <cd:variable name='quotation' value='citazione'/>
- <cd:variable name='quote' value='menzione'/>
- <cd:variable name='ran' value='corse'/>
- <cd:variable name='random' value='casuale'/>
- <cd:variable name='readonly' value='solalettura'/>
- <cd:variable name='rectangular' value='rettangolare'/>
- <cd:variable name='reference' value='riferimento'/>
- <cd:variable name='referral' value='referral'/>
- <cd:variable name='region' value='region'/>
- <cd:variable name='register' value='registro'/>
- <cd:variable name='regular' value='regolare'/>
- <cd:variable name='relative' value='relativo'/>
- <cd:variable name='repeat' value='ripeti'/>
- <cd:variable name='required' value='richiestp'/>
- <cd:variable name='reset' value='reimposta'/>
- <cd:variable name='reverse' value='invertito'/>
- <cd:variable name='right' value='destra'/>
- <cd:variable name='rightedge' value='bordodestro'/>
- <cd:variable name='righthanging' value='righthanging'/>
- <cd:variable name='rightmargin' value='marginedestro'/>
- <cd:variable name='rightpage' value='paginadestra'/>
- <cd:variable name='righttoleft' value='righttoleft'/>
- <cd:variable name='roman' value='roman'/>
- <cd:variable name='romannumerals' value='numeriromani'/>
- <cd:variable name='rotate' value='ruota'/>
- <cd:variable name='rotated' value='ruotato'/>
- <cd:variable name='round' value='rotondo'/>
- <cd:variable name='row' value='row'/>
- <cd:variable name='rule' value='linea'/>
- <cd:variable name='samepage' value='stessapagina'/>
- <cd:variable name='sans' value='sans'/>
- <cd:variable name='sansbold' value='sansgrassetto'/>
- <cd:variable name='sansnormal' value='sansnormal'/>
- <cd:variable name='sansserif' value='sansserif'/>
- <cd:variable name='saturday' value='sabato'/>
- <cd:variable name='screen' value='schermo'/>
- <cd:variable name='section' value='capoverso'/>
- <cd:variable name='sectionblockenvironment' value='ambientebloccosezione'/>
- <cd:variable name='sectionnumber' value='numerosezione'/>
- <cd:variable name='see' value='vedi'/>
- <cd:variable name='selectfont' value='selectfont'/>
- <cd:variable name='separator' value='separator'/>
- <cd:variable name='september' value='settembre'/>
- <cd:variable name='serif' value='serif'/>
- <cd:variable name='serifbold' value='serifbold'/>
- <cd:variable name='serifnormal' value='serifnormal'/>
- <cd:variable name='serried' value='vicino'/>
- <cd:variable name='setups' value='setups'/>
- <cd:variable name='seven' value='seven'/>
- <cd:variable name='sheet' value='sheet'/>
- <cd:variable name='shiftdown' value='shiftdown'/>
- <cd:variable name='shiftup' value='shiftup'/>
- <cd:variable name='short' value='short'/>
- <cd:variable name='simplefonts' value='simplefonts'/>
- <cd:variable name='simplelist' value='simplelist'/>
- <cd:variable name='singlesided' value='facciasingola'/>
- <cd:variable name='six' value='six'/>
- <cd:variable name='slanted' value='inclinato'/>
- <cd:variable name='slantedbold' value='inclinatograssetto'/>
- <cd:variable name='small' value='piccolo'/>
- <cd:variable name='smallbodyfont' value='piccolofontdelcorpo'/>
- <cd:variable name='smallbold' value='piccolograssetto'/>
- <cd:variable name='smallbolditalic' value='piccolograssettocorsivo'/>
- <cd:variable name='smallboldslanted' value='piccolograssettoinclinato'/>
- <cd:variable name='smallcaps' value='maiuscoletto'/>
- <cd:variable name='smaller' value='smaller'/>
- <cd:variable name='smallitalic' value='piccolocorsivo'/>
- <cd:variable name='smallitalicbold' value='piccolocorsivograssetto'/>
- <cd:variable name='smallnormal' value='piccolonormale'/>
- <cd:variable name='smallslanted' value='piccoloinclinato'/>
- <cd:variable name='smallslantedbold' value='piccoloinclinatograssetto'/>
- <cd:variable name='smalltype' value='piccolotype'/>
- <cd:variable name='somewhere' value='daqualcheparte'/>
- <cd:variable name='sorted' value='ordinato'/>
- <cd:variable name='sorting' value='sorting'/>
- <cd:variable name='space' value='spazio'/>
- <cd:variable name='spacing' value='spaziatura'/>
- <cd:variable name='speech' value='speech'/>
- <cd:variable name='split' value='separa'/>
- <cd:variable name='spot' value='spot'/>
- <cd:variable name='standard' value='standard'/>
- <cd:variable name='start' value='inizia'/>
- <cd:variable name='starter' value='starter'/>
- <cd:variable name='sticker' value='sticker'/>
- <cd:variable name='stop' value='termina'/>
- <cd:variable name='stopper' value='stopper'/>
- <cd:variable name='stretch' value='dilata'/>
- <cd:variable name='stretched' value='stretched'/>
- <cd:variable name='strict' value='rigido'/>
- <cd:variable name='strong' value='strong'/>
- <cd:variable name='strut' value='strut'/>
- <cd:variable name='sub' value='sotto'/>
- <cd:variable name='subbackward' value='sottoindietro'/>
- <cd:variable name='subformula' value='subformula'/>
- <cd:variable name='subforward' value='sottoavanti'/>
- <cd:variable name='subject' value='argomento'/>
- <cd:variable name='subpage' value='sottopagina'/>
- <cd:variable name='subs' value='subs'/>
- <cd:variable name='subsection' value='sottocapoverso'/>
- <cd:variable name='subsubject' value='sottoargomento'/>
- <cd:variable name='subsubsection' value='sottosottocapoverso'/>
- <cd:variable name='subsubsubject' value='sottosottoargomento'/>
- <cd:variable name='subsubsubsection' value='sottosottosottocapoverso'/>
- <cd:variable name='subsubsubsubject' value='sottosottosottoargomento'/>
- <cd:variable name='subsubsubsubsection' value='sottosottosottosottocapoverso'/>
- <cd:variable name='subsubsubsubsubject' value='sottosottosottosottoargomento'/>
- <cd:variable name='subsubsubsubsubsection' value='sottosottosottosottosottocapoverso'/>
- <cd:variable name='subsubsubsubsubsubject' value='sottosottosottosottosottoargomento'/>
- <cd:variable name='subsubsubsubsubsubsection' value='sottosottosottosottosottosottocapoverso'/>
- <cd:variable name='subsubsubsubsubsubsubject' value='sottosottosottosottosottosottoargomento'/>
- <cd:variable name='subsubsubsubsubsubsubsection' value='sottosottosottosottosottosottosottocapoverso'/>
- <cd:variable name='subsubsubsubsubsubsubsubject' value='sottosottosottosottosottosottosottoargomento'/>
- <cd:variable name='subsubsubsubsubsubsubsubsection' value='sottosottosottosottosottosottosottosottocapoverso'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubject' value='sottosottosottosottosottosottosottosottoargomento'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubsection' value='sottosottosottosottosottosottosottosottosottocapoverso'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubsubject' value='sottosottosottosottosottosottosottosottosottoargomento'/>
- <cd:variable name='sunday' value='domenica'/>
- <cd:variable name='support' value='supporto'/>
- <cd:variable name='sym' value='sim'/>
- <cd:variable name='symbol' value='simbolo'/>
- <cd:variable name='synchronize' value='synchronize'/>
- <cd:variable name='synonym' value='synonym'/>
- <cd:variable name='system' value='sistema'/>
- <cd:variable name='table' value='tabella'/>
- <cd:variable name='tablehead' value='testatabella'/>
- <cd:variable name='tables' value='tabelle'/>
- <cd:variable name='tabletail' value='codatabella'/>
- <cd:variable name='tabulate' value='tabulato'/>
- <cd:variable name='tabulatehead' value='testatabulato'/>
- <cd:variable name='tabulatetail' value='codatabulato'/>
- <cd:variable name='tall' value='alto'/>
- <cd:variable name='teletype' value='teletype'/>
- <cd:variable name='temporary' value='temporaneo'/>
- <cd:variable name='test' value='test'/>
- <cd:variable name='text' value='testo'/>
- <cd:variable name='textnote' value='textnote'/>
- <cd:variable name='three' value='tre'/>
- <cd:variable name='thursday' value='giovedi'/>
- <cd:variable name='tight' value='tight'/>
- <cd:variable name='title' value='titolo'/>
- <cd:variable name='toggle' value='toggle'/>
- <cd:variable name='tolerant' value='tollerante'/>
- <cd:variable name='top' value='cima'/>
- <cd:variable name='tuesday' value='martedi'/>
- <cd:variable name='two' value='due'/>
- <cd:variable name='txt' value='txt'/>
- <cd:variable name='type' value='type'/>
- <cd:variable name='typing' value='typing'/>
- <cd:variable name='unavailable' value='nondisponibile'/>
- <cd:variable name='underbar' value='sottolinea'/>
- <cd:variable name='underbars' value='sottolinee'/>
- <cd:variable name='understrike' value='understrike'/>
- <cd:variable name='understrikes' value='understrikes'/>
- <cd:variable name='unframed' value='unframed'/>
- <cd:variable name='unicode' value='unicode'/>
- <cd:variable name='unit' value='unita'/>
- <cd:variable name='units' value='unita'/>
- <cd:variable name='unknown' value='ignoto'/>
- <cd:variable name='unpacked' value='unpacked'/>
- <cd:variable name='up' value='up'/>
- <cd:variable name='url' value='url'/>
- <cd:variable name='used' value='usato'/>
- <cd:variable name='value' value='valore'/>
- <cd:variable name='vertical' value='verticale'/>
- <cd:variable name='very' value='molto'/>
- <cd:variable name='verystrict' value='moltorigido'/>
- <cd:variable name='verytolerant' value='moltotollerante'/>
- <cd:variable name='vfenced' value='vfenced'/>
- <cd:variable name='vulgarfraction' value='vulgarfraction'/>
- <cd:variable name='weak' value='weak'/>
- <cd:variable name='wednesday' value='mercoledi'/>
- <cd:variable name='week' value='settimana'/>
- <cd:variable name='weekday' value='giornosettimana'/>
- <cd:variable name='white' value='bianco'/>
- <cd:variable name='wide' value='ampio'/>
- <cd:variable name='width' value='ampiezza'/>
- <cd:variable name='word' value='parola'/>
- <cd:variable name='words' value='words'/>
- <cd:variable name='xml' value='xml'/>
- <cd:variable name='year' value='anno'/>
- <cd:variable name='yes' value='si'/>
- </cd:variables>
-
- <!-- definitions for interface constants for language it -->
-
- <cd:constants>
- <cd:constant name='action' value='azione'/>
- <cd:constant name='address' value='indirizzo'/>
- <cd:constant name='after' value='dopo'/>
- <cd:constant name='afterhead' value='dopotesta'/>
- <cd:constant name='afterkey' value='dopotasto'/>
- <cd:constant name='aftersection' value='aftersection'/>
- <cd:constant name='align' value='allinea'/>
- <cd:constant name='alignbottom' value='alignbottom'/>
- <cd:constant name='aligncharacter' value='allineacarattere'/>
- <cd:constant name='alignmentcharacter' value='carattereallineamento'/>
- <cd:constant name='alignmentleftsample' value='alignmentleftsample'/>
- <cd:constant name='alignmentleftwidth' value='alignmentleftwidth'/>
- <cd:constant name='alignmentrightsample' value='alignmentrightsample'/>
- <cd:constant name='alignmentrightwidth' value='alignmentrightwidth'/>
- <cd:constant name='alignsymbol' value='alignsymbol'/>
- <cd:constant name='aligntitle' value='allineatitolo'/>
- <cd:constant name='alternative' value='alternativa'/>
- <cd:constant name='anchor' value='anchor'/>
- <cd:constant name='anchoring' value='anchoring'/>
- <cd:constant name='andtext' value='andtext'/>
- <cd:constant name='apa' value='apa'/>
- <cd:constant name='arguments' value='arguments'/>
- <cd:constant name='arrow' value='freccia'/>
- <cd:constant name='artauthor' value='artauthor'/>
- <cd:constant name='artauthoretaldisplay' value='artauthoretaldisplay'/>
- <cd:constant name='artauthoretallimit' value='artauthoretallimit'/>
- <cd:constant name='artauthoretaltext' value='artauthoretaltext'/>
- <cd:constant name='artoffset' value='artoffset'/>
- <cd:constant name='at' value='ad'/>
- <cd:constant name='author' value='autore'/>
- <cd:constant name='authorconversion' value='authorconversion'/>
- <cd:constant name='authoretaldisplay' value='authoretaldisplay'/>
- <cd:constant name='authoretallimit' value='authoretallimit'/>
- <cd:constant name='authoretaltext' value='authoretaltext'/>
- <cd:constant name='auto' value='auto'/>
- <cd:constant name='autocase' value='autocase'/>
- <cd:constant name='autofile' value='autofile'/>
- <cd:constant name='autofocus' value='autofocus'/>
- <cd:constant name='autohang' value='autohang'/>
- <cd:constant name='autostrut' value='autostrut'/>
- <cd:constant name='autowidth' value='autoampiezza'/>
- <cd:constant name='availableheight' value='availableheight'/>
- <cd:constant name='availablewidth' value='availablewidth'/>
- <cd:constant name='axis' value='asse'/>
- <cd:constant name='background' value='sfondo'/>
- <cd:constant name='backgroundcolor' value='coloresfondo'/>
- <cd:constant name='backgroundcorner' value='angolosfondo'/>
- <cd:constant name='backgrounddepth' value='profonditasfondo'/>
- <cd:constant name='backgroundoffset' value='offsetsfondo'/>
- <cd:constant name='backgroundradius' value='raggiosfondo'/>
- <cd:constant name='backgroundscreen' value='schermosfondo'/>
- <cd:constant name='backreference' value='backreference'/>
- <cd:constant name='backspace' value='backspace'/>
- <cd:constant name='balance' value='bilanciamento'/>
- <cd:constant name='before' value='prima'/>
- <cd:constant name='beforehead' value='primaditesta'/>
- <cd:constant name='beforesection' value='beforesection'/>
- <cd:constant name='bet' value='bet'/>
- <cd:constant name='bidi' value='bidi'/>
- <cd:constant name='big' value='grande'/>
- <cd:constant name='blank' value='rigovuoto'/>
- <cd:constant name='bleedoffset' value='bleedoffset'/>
- <cd:constant name='blockway' value='blockway'/>
- <cd:constant name='bodyfont' value='fonttesto'/>
- <cd:constant name='boffset' value='boffset'/>
- <cd:constant name='boldfeatures' value='boldfeatures'/>
- <cd:constant name='boldfont' value='boldfont'/>
- <cd:constant name='bolditalicfeatures' value='bolditalicfeatures'/>
- <cd:constant name='bolditalicfont' value='bolditalicfont'/>
- <cd:constant name='boldslantedfeatures' value='boldslantedfeatures'/>
- <cd:constant name='boldslantedfont' value='boldslantedfont'/>
- <cd:constant name='bookmark' value='segnalibro'/>
- <cd:constant name='bottom' value='fondo'/>
- <cd:constant name='bottomafter' value='bottomafter'/>
- <cd:constant name='bottombefore' value='bottombefore'/>
- <cd:constant name='bottomcommand' value='bottomcommand'/>
- <cd:constant name='bottomdistance' value='distanzafondo'/>
- <cd:constant name='bottomframe' value='cornicefondo'/>
- <cd:constant name='bottomoffset' value='offsetfondo'/>
- <cd:constant name='bottomspace' value='spaziofondo'/>
- <cd:constant name='bottomstate' value='statofondo'/>
- <cd:constant name='break' value='break'/>
- <cd:constant name='buffer' value='buffer'/>
- <cd:constant name='cache' value='cache'/>
- <cd:constant name='calculate' value='calcola'/>
- <cd:constant name='category' value='category'/>
- <cd:constant name='ccommand' value='ccomando'/>
- <cd:constant name='character' value='character'/>
- <cd:constant name='characters' value='characters'/>
- <cd:constant name='check' value='check'/>
- <cd:constant name='click' value='click'/>
- <cd:constant name='clickin' value='clickdentro'/>
- <cd:constant name='clickout' value='clickfuori'/>
- <cd:constant name='clipoffset' value='clipoffset'/>
- <cd:constant name='closeaction' value='azionechiudi'/>
- <cd:constant name='closecommand' value='closecommand'/>
- <cd:constant name='closepage' value='closepage'/>
- <cd:constant name='closepageaction' value='azionechiudipagina'/>
- <cd:constant name='closesymbol' value='closesymbol'/>
- <cd:constant name='color' value='colore'/>
- <cd:constant name='column' value='colonna'/>
- <cd:constant name='columndistance' value='distanzacolonne'/>
- <cd:constant name='columns' value='colonne'/>
- <cd:constant name='comma' value='comma'/>
- <cd:constant name='command' value='comando'/>
- <cd:constant name='commandafter' value='comdandodopo'/>
- <cd:constant name='commandbefore' value='comandoprima'/>
- <cd:constant name='commands' value='comandi'/>
- <cd:constant name='comment' value='comment'/>
- <cd:constant name='commentchar' value='commentchar'/>
- <cd:constant name='commentoffset' value='commentoffset'/>
- <cd:constant name='compact' value='compact'/>
- <cd:constant name='component' value='component'/>
- <cd:constant name='compoundhyphen' value='compoundhyphen'/>
- <cd:constant name='compress' value='compress'/>
- <cd:constant name='compressdistance' value='compressdistance'/>
- <cd:constant name='compressmethod' value='compressmethod'/>
- <cd:constant name='compressseparator' value='compressseparator'/>
- <cd:constant name='compressstopper' value='compressstopper'/>
- <cd:constant name='concerns' value='concerns'/>
- <cd:constant name='connector' value='connector'/>
- <cd:constant name='continue' value='continua'/>
- <cd:constant name='contrastcolor' value='colorecontrasto'/>
- <cd:constant name='controls' value='controlli'/>
- <cd:constant name='conversion' value='conversione'/>
- <cd:constant name='convertfile' value='convertifile'/>
- <cd:constant name='copies' value='copies'/>
- <cd:constant name='corner' value='angolo'/>
- <cd:constant name='coupling' value='accoppiamento'/>
- <cd:constant name='couplingway' value='modoaccoppiamento'/>
- <cd:constant name='criterium' value='criterio'/>
- <cd:constant name='cropoffset' value='cropoffset'/>
- <cd:constant name='crossreference' value='crossreference'/>
- <cd:constant name='cssfile' value='cssfile'/>
- <cd:constant name='current' value='corrente'/>
- <cd:constant name='cutspace' value='cutspace'/>
- <cd:constant name='dash' value='dash'/>
- <cd:constant name='dat' value='dat'/>
- <cd:constant name='database' value='database'/>
- <cd:constant name='dataset' value='dataset'/>
- <cd:constant name='date' value='data'/>
- <cd:constant name='deepnumbercommand' value='deepnumbercommand'/>
- <cd:constant name='deeptextcommand' value='deeptextcommand'/>
- <cd:constant name='default' value='implicito'/>
- <cd:constant name='defaultheight' value='defaultheight'/>
- <cd:constant name='defaultwidth' value='defaultwidth'/>
- <cd:constant name='define' value='define'/>
- <cd:constant name='delay' value='attesa'/>
- <cd:constant name='depth' value='profondita'/>
- <cd:constant name='depthcorrection' value='correzioneprofondita'/>
- <cd:constant name='direction' value='direzione'/>
- <cd:constant name='directory' value='directory'/>
- <cd:constant name='display' value='display'/>
- <cd:constant name='displaythreshold' value='displaythreshold'/>
- <cd:constant name='distance' value='distanza'/>
- <cd:constant name='domain' value='domain'/>
- <cd:constant name='dot' value='punto'/>
- <cd:constant name='doublesided' value='doppiafaccia'/>
- <cd:constant name='down' value='down'/>
- <cd:constant name='dummy' value='dummy'/>
- <cd:constant name='dx' value='dx'/>
- <cd:constant name='dy' value='dy'/>
- <cd:constant name='edge' value='bordo'/>
- <cd:constant name='edgedistance' value='distanzabordo'/>
- <cd:constant name='editor' value='editor'/>
- <cd:constant name='editoretaldisplay' value='editoretaldisplay'/>
- <cd:constant name='editoretallimit' value='editoretallimit'/>
- <cd:constant name='editoretaltext' value='editoretaltext'/>
- <cd:constant name='empty' value='vuoto'/>
- <cd:constant name='entities' value='entities'/>
- <cd:constant name='entries' value='entries'/>
- <cd:constant name='equalheight' value='equalheight'/>
- <cd:constant name='equalwidth' value='equalwidth'/>
- <cd:constant name='escape' value='escape'/>
- <cd:constant name='etaldisplay' value='etaldisplay'/>
- <cd:constant name='etallimit' value='etallimit'/>
- <cd:constant name='etaloption' value='etaloption'/>
- <cd:constant name='etaltext' value='etaltext'/>
- <cd:constant name='evenmargin' value='marginepari'/>
- <cd:constant name='exact' value='exact'/>
- <cd:constant name='exitoffset' value='exitoffset'/>
- <cd:constant name='expansion' value='espansione'/>
- <cd:constant name='export' value='export'/>
- <cd:constant name='extras' value='extras'/>
- <cd:constant name='factor' value='fattore'/>
- <cd:constant name='fallback' value='fallback'/>
- <cd:constant name='fallbacks' value='fallbacks'/>
- <cd:constant name='family' value='famiglia'/>
- <cd:constant name='features' value='features'/>
- <cd:constant name='featureset' value='featureset'/>
- <cd:constant name='fences' value='fences'/>
- <cd:constant name='field' value='field'/>
- <cd:constant name='fieldbackgroundcolor' value='coloresfondocampo'/>
- <cd:constant name='fieldframecolor' value='colorecornicecampo'/>
- <cd:constant name='fieldlayer' value='fieldlayer'/>
- <cd:constant name='fieldoffset' value='offsetcampo'/>
- <cd:constant name='file' value='file'/>
- <cd:constant name='filler' value='filler'/>
- <cd:constant name='filter' value='filter'/>
- <cd:constant name='filtercommand' value='filtercommand'/>
- <cd:constant name='finalnamesep' value='finalnamesep'/>
- <cd:constant name='finalpagesep' value='finalpagesep'/>
- <cd:constant name='finalpubsep' value='finalpubsep'/>
- <cd:constant name='first' value='primo'/>
- <cd:constant name='firstnamesep' value='firstnamesep'/>
- <cd:constant name='firstpage' value='primapagina'/>
- <cd:constant name='focus' value='focus'/>
- <cd:constant name='focusin' value='focusin'/>
- <cd:constant name='focusoffset' value='focusoffset'/>
- <cd:constant name='focusout' value='focusout'/>
- <cd:constant name='font' value='font'/>
- <cd:constant name='footer' value='piedipagina'/>
- <cd:constant name='footerdistance' value='distanzapdp'/>
- <cd:constant name='footerstate' value='statopdp'/>
- <cd:constant name='force' value='forza'/>
- <cd:constant name='foregroundcolor' value='coloreprimopiano'/>
- <cd:constant name='foregroundstyle' value='foregroundstyle'/>
- <cd:constant name='format' value='format'/>
- <cd:constant name='fractions' value='fractions'/>
- <cd:constant name='frame' value='cornice'/>
- <cd:constant name='framecolor' value='colorecornice'/>
- <cd:constant name='framecorner' value='angolocornice'/>
- <cd:constant name='framedepth' value='profonditacornice'/>
- <cd:constant name='frameoffset' value='offsetcornice'/>
- <cd:constant name='frameradius' value='raggiocornice'/>
- <cd:constant name='frames' value='cornici'/>
- <cd:constant name='freeregion' value='freeregion'/>
- <cd:constant name='from' value='da'/>
- <cd:constant name='functioncolor' value='functioncolor'/>
- <cd:constant name='functionstyle' value='functionstyle'/>
- <cd:constant name='get' value='prendi'/>
- <cd:constant name='global' value='globale'/>
- <cd:constant name='goodies' value='goodies'/>
- <cd:constant name='grid' value='griglia'/>
- <cd:constant name='group' value='group'/>
- <cd:constant name='groupsuffix' value='groupsuffix'/>
- <cd:constant name='hang' value='sospendi'/>
- <cd:constant name='hcompact' value='hcompact'/>
- <cd:constant name='headalign' value='headalign'/>
- <cd:constant name='headcolor' value='coloretesta'/>
- <cd:constant name='headcommand' value='headcommand'/>
- <cd:constant name='headconversion' value='conversionetesta'/>
- <cd:constant name='header' value='intestazione'/>
- <cd:constant name='headerdistance' value='distanzaintestazione'/>
- <cd:constant name='headerstate' value='statointestazione'/>
- <cd:constant name='headlabel' value='etichettatesta'/>
- <cd:constant name='headnumber' value='numerotesta'/>
- <cd:constant name='headseparator' value='headseparator'/>
- <cd:constant name='headstyle' value='stiletesta'/>
- <cd:constant name='height' value='altezza'/>
- <cd:constant name='hfactor' value='hfactor'/>
- <cd:constant name='hfil' value='hfil'/>
- <cd:constant name='hidenumber' value='hidenumber'/>
- <cd:constant name='hoffset' value='hoffset'/>
- <cd:constant name='horizontal' value='orizzontale'/>
- <cd:constant name='horoffset' value='horoffset'/>
- <cd:constant name='hyphen' value='hyphen'/>
- <cd:constant name='hyphens' value='hyphens'/>
- <cd:constant name='icommand' value='icomando'/>
- <cd:constant name='ignore' value='ignore'/>
- <cd:constant name='in' value='in'/>
- <cd:constant name='inbetween' value='tra'/>
- <cd:constant name='increment' value='incremento'/>
- <cd:constant name='incrementnumber' value='incrementanumero'/>
- <cd:constant name='indenting' value='rientro'/>
- <cd:constant name='indentlist' value='indentlist'/>
- <cd:constant name='indentnext' value='rientrasuccessivo'/>
- <cd:constant name='index' value='index'/>
- <cd:constant name='indicator' value='indicatore'/>
- <cd:constant name='initialsep' value='initialsep'/>
- <cd:constant name='inlinethreshold' value='inlinethreshold'/>
- <cd:constant name='inner' value='interno'/>
- <cd:constant name='innermargin' value='margineinterno'/>
- <cd:constant name='inputfile' value='inputfile'/>
- <cd:constant name='insidesection' value='insidesection'/>
- <cd:constant name='instance' value='instance'/>
- <cd:constant name='intent' value='intent'/>
- <cd:constant name='interaction' value='interazione'/>
- <cd:constant name='interlinespace' value='interlinea'/>
- <cd:constant name='internalgrid' value='internalgrid'/>
- <cd:constant name='italicfeatures' value='italicfeatures'/>
- <cd:constant name='italicfont' value='italicfont'/>
- <cd:constant name='itemalign' value='itemalign'/>
- <cd:constant name='items' value='elementi'/>
- <cd:constant name='joiners' value='joiners'/>
- <cd:constant name='journalconversion' value='journalconversion'/>
- <cd:constant name='juniorsep' value='juniorsep'/>
- <cd:constant name='keeptogether' value='keeptogether'/>
- <cd:constant name='ken' value='ken'/>
- <cd:constant name='keyexpansion' value='keyexpansion'/>
- <cd:constant name='keys' value='keys'/>
- <cd:constant name='keyword' value='parolachiave'/>
- <cd:constant name='label' value='etichetta'/>
- <cd:constant name='labelalternative' value='labelalternative'/>
- <cd:constant name='labelcolor' value='labelcolor'/>
- <cd:constant name='labeloffset' value='labeloffset'/>
- <cd:constant name='labelstyle' value='labelstyle'/>
- <cd:constant name='language' value='language'/>
- <cd:constant name='last' value='last'/>
- <cd:constant name='lastnamesep' value='lastnamesep'/>
- <cd:constant name='lastpage' value='ultimapagina'/>
- <cd:constant name='lastpagesep' value='lastpagesep'/>
- <cd:constant name='lastpubsep' value='lastpubsep'/>
- <cd:constant name='layout' value='layout'/>
- <cd:constant name='left' value='sinistra'/>
- <cd:constant name='leftcolor' value='coloresinistra'/>
- <cd:constant name='leftcompoundhyphen' value='leftcompoundhyphen'/>
- <cd:constant name='leftedge' value='bordosinistro'/>
- <cd:constant name='leftedgedistance' value='distanzabordosinistro'/>
- <cd:constant name='leftframe' value='cornicesinistra'/>
- <cd:constant name='lefthyphen' value='lefthyphen'/>
- <cd:constant name='leftmargin' value='marginesinistro'/>
- <cd:constant name='leftmargindistance' value='distanzamarginesinistro'/>
- <cd:constant name='leftoffset' value='offsetsinistro'/>
- <cd:constant name='leftquotation' value='citazionesinistra'/>
- <cd:constant name='leftquote' value='menzionesinistra'/>
- <cd:constant name='leftsample' value='leftsample'/>
- <cd:constant name='leftsentence' value='frasesinistra'/>
- <cd:constant name='leftspeech' value='leftspeech'/>
- <cd:constant name='leftstyle' value='stilesinistra'/>
- <cd:constant name='leftsubsentence' value='sottofrasesinistra'/>
- <cd:constant name='lefttext' value='testosinistro'/>
- <cd:constant name='leftwidth' value='ampiezzasinistra'/>
- <cd:constant name='leftwords' value='leftwords'/>
- <cd:constant name='less' value='less'/>
- <cd:constant name='level' value='livello'/>
- <cd:constant name='levels' value='livelli'/>
- <cd:constant name='limittext' value='limittext'/>
- <cd:constant name='line' value='riga'/>
- <cd:constant name='linecorrection' value='correzioneriga'/>
- <cd:constant name='linedirection' value='linedirection'/>
- <cd:constant name='lines' value='righe'/>
- <cd:constant name='list' value='elenco'/>
- <cd:constant name='listtext' value='listtext'/>
- <cd:constant name='local' value='locale'/>
- <cd:constant name='location' value='luogo'/>
- <cd:constant name='loffset' value='loffset'/>
- <cd:constant name='logo' value='logo'/>
- <cd:constant name='logos' value='loghi'/>
- <cd:constant name='marcolor' value='coloremarcatura'/>
- <cd:constant name='margin' value='margine'/>
- <cd:constant name='margindistance' value='distanzamargine'/>
- <cd:constant name='marginedge' value='bordomargine'/>
- <cd:constant name='marginedgetext' value='testobordomargine'/>
- <cd:constant name='margintext' value='testomargine'/>
- <cd:constant name='mark' value='mark'/>
- <cd:constant name='marking' value='marcatura'/>
- <cd:constant name='marstyle' value='stilemarcatura'/>
- <cd:constant name='mask' value='mask'/>
- <cd:constant name='mathclass' value='mathclass'/>
- <cd:constant name='mathlimits' value='mathlimits'/>
- <cd:constant name='mathstyle' value='mathstyle'/>
- <cd:constant name='max' value='max'/>
- <cd:constant name='maxdepth' value='maxdepth'/>
- <cd:constant name='maxheight' value='altezzamax'/>
- <cd:constant name='maxwidth' value='ampiezzamax'/>
- <cd:constant name='maybeyear' value='maybeyear'/>
- <cd:constant name='menu' value='menu'/>
- <cd:constant name='method' value='metodo'/>
- <cd:constant name='middle' value='centro'/>
- <cd:constant name='middlecolor' value='middlecolor'/>
- <cd:constant name='middlecommand' value='middlecommand'/>
- <cd:constant name='middlespeech' value='middlespeech'/>
- <cd:constant name='middlestyle' value='middlestyle'/>
- <cd:constant name='middletext' value='testocentro'/>
- <cd:constant name='middlewidth' value='middlewidth'/>
- <cd:constant name='midsentence' value='midsentence'/>
- <cd:constant name='min' value='min'/>
- <cd:constant name='mindepth' value='mindepth'/>
- <cd:constant name='minheight' value='altezzamin'/>
- <cd:constant name='minwidth' value='ampiezzamin'/>
- <cd:constant name='moffset' value='moffset'/>
- <cd:constant name='monthconversion' value='monthconversion'/>
- <cd:constant name='more' value='more'/>
- <cd:constant name='mpdepth' value='mpdepth'/>
- <cd:constant name='mpheight' value='mpheight'/>
- <cd:constant name='mpoffset' value='mpoffset'/>
- <cd:constant name='mpwidth' value='mpwidth'/>
- <cd:constant name='n' value='n'/>
- <cd:constant name='name' value='nome'/>
- <cd:constant name='namesep' value='namesep'/>
- <cd:constant name='nbottom' value='nfondo'/>
- <cd:constant name='nc' value='nc'/>
- <cd:constant name='next' value='successivo'/>
- <cd:constant name='nextleft' value='nextleft'/>
- <cd:constant name='nextleftquotation' value='nextleftquotation'/>
- <cd:constant name='nextright' value='nextright'/>
- <cd:constant name='nextrightquotation' value='nextrightquotation'/>
- <cd:constant name='nl' value='nl'/>
- <cd:constant name='nleft' value='nsinistra'/>
- <cd:constant name='nlines' value='nrighe'/>
- <cd:constant name='norm' value='norma'/>
- <cd:constant name='note' value='note'/>
- <cd:constant name='notes' value='notes'/>
- <cd:constant name='nr' value='nr'/>
- <cd:constant name='nright' value='ndestra'/>
- <cd:constant name='ntop' value='ncima'/>
- <cd:constant name='number' value='numero'/>
- <cd:constant name='numberalign' value='numberalign'/>
- <cd:constant name='numbercolor' value='colorenumero'/>
- <cd:constant name='numbercommand' value='comandonumero'/>
- <cd:constant name='numberconversion' value='numberconversion'/>
- <cd:constant name='numberconversionset' value='numberconversionset'/>
- <cd:constant name='numberdistance' value='numberdistance'/>
- <cd:constant name='numbering' value='numerazione'/>
- <cd:constant name='numberorder' value='numberorder'/>
- <cd:constant name='numberprefix' value='numberprefix'/>
- <cd:constant name='numbersegments' value='numbersegments'/>
- <cd:constant name='numberseparator' value='separatorenumero'/>
- <cd:constant name='numberseparatorset' value='numberseparatorset'/>
- <cd:constant name='numberset' value='numberset'/>
- <cd:constant name='numberstarter' value='numberstarter'/>
- <cd:constant name='numberstopper' value='numberstopper'/>
- <cd:constant name='numberstrut' value='numberstrut'/>
- <cd:constant name='numberstyle' value='stilenumero'/>
- <cd:constant name='numberwidth' value='numberwidth'/>
- <cd:constant name='nx' value='nx'/>
- <cd:constant name='ny' value='ny'/>
- <cd:constant name='object' value='oggetto'/>
- <cd:constant name='obstruction' value='ostruzione'/>
- <cd:constant name='oddmargin' value='marginedispari'/>
- <cd:constant name='offset' value='offset'/>
- <cd:constant name='openaction' value='azioneapri'/>
- <cd:constant name='openpage' value='openpage'/>
- <cd:constant name='openpageaction' value='azioneapripagina'/>
- <cd:constant name='openup' value='openup'/>
- <cd:constant name='opticalsize' value='opticalsize'/>
- <cd:constant name='option' value='opzione'/>
- <cd:constant name='order' value='order'/>
- <cd:constant name='orientation' value='orientation'/>
- <cd:constant name='otherstext' value='otherstext'/>
- <cd:constant name='outermargin' value='margineesterno'/>
- <cd:constant name='overprint' value='overprint'/>
- <cd:constant name='ownerpassword' value='ownerpassword'/>
- <cd:constant name='ownnumber' value='numeroproprio'/>
- <cd:constant name='packcriterium' value='packcriterium'/>
- <cd:constant name='page' value='pagina'/>
- <cd:constant name='pageboundaries' value='limitipagina'/>
- <cd:constant name='pagecolor' value='colorepagina'/>
- <cd:constant name='pagecolormodel' value='pagecolormodel'/>
- <cd:constant name='pagecommand' value='comandopagina'/>
- <cd:constant name='pageconnector' value='pageconnector'/>
- <cd:constant name='pageconversion' value='pageconversion'/>
- <cd:constant name='pageconversionset' value='pageconversionset'/>
- <cd:constant name='pageleft' value='pageleft'/>
- <cd:constant name='pagemethod' value='pagemethod'/>
- <cd:constant name='pagenumber' value='numeropagina'/>
- <cd:constant name='pageprefix' value='pageprefix'/>
- <cd:constant name='pageprefixconnector' value='pageprefixconnector'/>
- <cd:constant name='pageprefixconversion' value='pageprefixconversion'/>
- <cd:constant name='pageprefixconversionset' value='pageprefixconversionset'/>
- <cd:constant name='pageprefixsegments' value='pageprefixsegments'/>
- <cd:constant name='pageprefixseparatorset' value='pageprefixseparatorset'/>
- <cd:constant name='pageprefixset' value='pageprefixset'/>
- <cd:constant name='pageprefixstarter' value='pageprefixstarter'/>
- <cd:constant name='pageprefixstopper' value='pageprefixstopper'/>
- <cd:constant name='pageright' value='pageright'/>
- <cd:constant name='pagesegments' value='pagesegments'/>
- <cd:constant name='pagesep' value='pagesep'/>
- <cd:constant name='pageseparatorset' value='pageseparatorset'/>
- <cd:constant name='pageset' value='pageset'/>
- <cd:constant name='pagestarter' value='pagestarter'/>
- <cd:constant name='pagestate' value='statopagina'/>
- <cd:constant name='pagestopper' value='pagestopper'/>
- <cd:constant name='pagestyle' value='stilepagina'/>
- <cd:constant name='palet' value='tavolozza'/>
- <cd:constant name='paper' value='carta'/>
- <cd:constant name='paragraph' value='capoverso'/>
- <cd:constant name='period' value='period'/>
- <cd:constant name='place' value='metti'/>
- <cd:constant name='placehead' value='mettitesta'/>
- <cd:constant name='placeholder' value='placeholder'/>
- <cd:constant name='placestopper' value='mettistopper'/>
- <cd:constant name='position' value='posizione'/>
- <cd:constant name='prefix' value='prefisso'/>
- <cd:constant name='prefixconnector' value='prefixconnector'/>
- <cd:constant name='prefixconversion' value='prefixconversion'/>
- <cd:constant name='prefixconversionset' value='prefixconversionset'/>
- <cd:constant name='prefixsegments' value='prefixsegments'/>
- <cd:constant name='prefixseparatorset' value='prefixseparatorset'/>
- <cd:constant name='prefixset' value='prefixset'/>
- <cd:constant name='prefixstarter' value='prefixstarter'/>
- <cd:constant name='prefixstopper' value='prefixstopper'/>
- <cd:constant name='preset' value='preimpostato'/>
- <cd:constant name='preview' value='anteprima'/>
- <cd:constant name='previous' value='precedente'/>
- <cd:constant name='previousnumber' value='numeroprecedente'/>
- <cd:constant name='print' value='print'/>
- <cd:constant name='printable' value='stampabile'/>
- <cd:constant name='process' value='process'/>
- <cd:constant name='processors' value='processors'/>
- <cd:constant name='profile' value='profile'/>
- <cd:constant name='properties' value='properties'/>
- <cd:constant name='pubsep' value='pubsep'/>
- <cd:constant name='quotechar' value='quotechar'/>
- <cd:constant name='radius' value='raggio'/>
- <cd:constant name='random' value='casuale'/>
- <cd:constant name='range' value='range'/>
- <cd:constant name='reduction' value='riduzione'/>
- <cd:constant name='ref' value='ref'/>
- <cd:constant name='refcommand' value='refcommand'/>
- <cd:constant name='reference' value='riferimento'/>
- <cd:constant name='referencemethod' value='referencemethod'/>
- <cd:constant name='referenceprefix' value='referenceprefix'/>
- <cd:constant name='referencetext' value='referencetext'/>
- <cd:constant name='referencing' value='referencing'/>
- <cd:constant name='region' value='region'/>
- <cd:constant name='regionin' value='entraregione'/>
- <cd:constant name='regionout' value='esciregione'/>
- <cd:constant name='register' value='register'/>
- <cd:constant name='regularfeatures' value='regularfeatures'/>
- <cd:constant name='regularfont' value='regularfont'/>
- <cd:constant name='renderingsetup' value='renderingsetup'/>
- <cd:constant name='repeat' value='ripeti'/>
- <cd:constant name='reset' value='reset'/>
- <cd:constant name='resetnumber' value='resetnumber'/>
- <cd:constant name='resolution' value='risoluzione'/>
- <cd:constant name='resources' value='resources'/>
- <cd:constant name='reverse' value='invertito'/>
- <cd:constant name='right' value='destra'/>
- <cd:constant name='rightchars' value='rightchars'/>
- <cd:constant name='rightcolor' value='coloredestra'/>
- <cd:constant name='rightcompoundhyphen' value='rightcompoundhyphen'/>
- <cd:constant name='rightedge' value='bordodestro'/>
- <cd:constant name='rightedgedistance' value='distanzabordodestro'/>
- <cd:constant name='rightframe' value='cornicedestra'/>
- <cd:constant name='righthyphen' value='righthyphen'/>
- <cd:constant name='rightmargin' value='marginedestro'/>
- <cd:constant name='rightmargindistance' value='distanzamarginedestro'/>
- <cd:constant name='rightoffset' value='offsetdestro'/>
- <cd:constant name='rightquotation' value='citazionedestra'/>
- <cd:constant name='rightquote' value='menzionedestra'/>
- <cd:constant name='rightsample' value='rightsample'/>
- <cd:constant name='rightsentence' value='frasedestra'/>
- <cd:constant name='rightspeech' value='rightspeech'/>
- <cd:constant name='rightstyle' value='stiledestra'/>
- <cd:constant name='rightsubsentence' value='sottofrasedestra'/>
- <cd:constant name='righttext' value='testodestro'/>
- <cd:constant name='rightwidth' value='ampiezzadestra'/>
- <cd:constant name='rightwords' value='rightwords'/>
- <cd:constant name='roffset' value='roffset'/>
- <cd:constant name='rotation' value='rotazione'/>
- <cd:constant name='rule' value='linea'/>
- <cd:constant name='rulecolor' value='colorelinea'/>
- <cd:constant name='rulecommand' value='rulecommand'/>
- <cd:constant name='rulethickness' value='spessorelinea'/>
- <cd:constant name='samepage' value='stessapagina'/>
- <cd:constant name='sample' value='campione'/>
- <cd:constant name='samplesize' value='samplesize'/>
- <cd:constant name='saveinlist' value='saveinlist'/>
- <cd:constant name='scale' value='scala'/>
- <cd:constant name='scope' value='scope'/>
- <cd:constant name='screen' value='schermo'/>
- <cd:constant name='section' value='sezione'/>
- <cd:constant name='sectionblock' value='sectionblock'/>
- <cd:constant name='sectionconversion' value='sectionconversion'/>
- <cd:constant name='sectionconversionset' value='sectionconversionset'/>
- <cd:constant name='sectionnumber' value='numerosezione'/>
- <cd:constant name='sectionresetset' value='sectionresetset'/>
- <cd:constant name='sectionsegments' value='sectionsegments'/>
- <cd:constant name='sectionseparatorset' value='sectionseparatorset'/>
- <cd:constant name='sectionset' value='sectionset'/>
- <cd:constant name='sectionstarter' value='sectionstarter'/>
- <cd:constant name='sectionstopper' value='sectionstopper'/>
- <cd:constant name='separator' value='separatore'/>
- <cd:constant name='separatorcolor' value='separatorcolor'/>
- <cd:constant name='separatorstyle' value='separatorstyle'/>
- <cd:constant name='set' value='set'/>
- <cd:constant name='setups' value='setups'/>
- <cd:constant name='shrink' value='shrink'/>
- <cd:constant name='side' value='lato'/>
- <cd:constant name='sidealign' value='sidealign'/>
- <cd:constant name='sidemethod' value='sidemethod'/>
- <cd:constant name='sidespaceafter' value='spaziolateraledopo'/>
- <cd:constant name='sidespacebefore' value='spaziolateraleprima'/>
- <cd:constant name='sidespaceinbetween' value='sidespaceinbetween'/>
- <cd:constant name='sidethreshold' value='sidethreshold'/>
- <cd:constant name='sign' value='segno'/>
- <cd:constant name='simplecommand' value='simplecommand'/>
- <cd:constant name='size' value='dimensione'/>
- <cd:constant name='slantedfeatures' value='slantedfeatures'/>
- <cd:constant name='slantedfont' value='slantedfont'/>
- <cd:constant name='small' value='piccolo'/>
- <cd:constant name='smallcapsfeatures' value='smallcapsfeatures'/>
- <cd:constant name='smallcapsfont' value='smallcapsfont'/>
- <cd:constant name='solution' value='solution'/>
- <cd:constant name='sort' value='sort'/>
- <cd:constant name='sorttype' value='sorttype'/>
- <cd:constant name='source' value='origine'/>
- <cd:constant name='space' value='spazio'/>
- <cd:constant name='spaceafter' value='spaziodopo'/>
- <cd:constant name='spaceafterside' value='spaceafterside'/>
- <cd:constant name='spacebefore' value='spazioprima'/>
- <cd:constant name='spacebeforeside' value='spacebeforeside'/>
- <cd:constant name='spaceinbetween' value='spaceinbetween'/>
- <cd:constant name='spacing' value='spaziatura'/>
- <cd:constant name='specification' value='specification'/>
- <cd:constant name='split' value='separa'/>
- <cd:constant name='splitcolor' value='splitcolor'/>
- <cd:constant name='splitmethod' value='splitmethod'/>
- <cd:constant name='splitoffset' value='splitoffset'/>
- <cd:constant name='spot' value='spot'/>
- <cd:constant name='stack' value='stack'/>
- <cd:constant name='stackname' value='stackname'/>
- <cd:constant name='start' value='inizia'/>
- <cd:constant name='starter' value='starter'/>
- <cd:constant name='state' value='stato'/>
- <cd:constant name='step' value='passo'/>
- <cd:constant name='stop' value='termina'/>
- <cd:constant name='stopper' value='stopper'/>
- <cd:constant name='stretch' value='dilata'/>
- <cd:constant name='strip' value='strip'/>
- <cd:constant name='strut' value='strut'/>
- <cd:constant name='style' value='stile'/>
- <cd:constant name='stylealternative' value='stylealternative'/>
- <cd:constant name='sub' value='sotto'/>
- <cd:constant name='subtitle' value='sottotitolo'/>
- <cd:constant name='suffix' value='suffix'/>
- <cd:constant name='suffixseparator' value='suffixseparator'/>
- <cd:constant name='suffixstopper' value='suffixstopper'/>
- <cd:constant name='surnamefirstnamesep' value='surnamefirstnamesep'/>
- <cd:constant name='surnameinitialsep' value='surnameinitialsep'/>
- <cd:constant name='surnamesep' value='surnamesep'/>
- <cd:constant name='svgstyle' value='svgstyle'/>
- <cd:constant name='sx' value='sx'/>
- <cd:constant name='sy' value='sy'/>
- <cd:constant name='symalign' value='symallinea'/>
- <cd:constant name='symbol' value='simbolo'/>
- <cd:constant name='symbolcommand' value='symbolcommand'/>
- <cd:constant name='symbolset' value='setsimboli'/>
- <cd:constant name='symcolor' value='coloresimbolo'/>
- <cd:constant name='symstyle' value='stilesimbolo'/>
- <cd:constant name='synonym' value='sinonimo'/>
- <cd:constant name='synonymcolor' value='coloresinonimi'/>
- <cd:constant name='synonymcommand' value='synonymcommand'/>
- <cd:constant name='synonymstyle' value='stilesinonimi'/>
- <cd:constant name='tab' value='tab'/>
- <cd:constant name='text' value='testo'/>
- <cd:constant name='textalign' value='textalign'/>
- <cd:constant name='textcolor' value='coloretesto'/>
- <cd:constant name='textcommand' value='comandotesto'/>
- <cd:constant name='textdistance' value='distanzatesto'/>
- <cd:constant name='textheight' value='altezzatesto'/>
- <cd:constant name='textlayer' value='textlayer'/>
- <cd:constant name='textmargin' value='textmargin'/>
- <cd:constant name='textmethod' value='textmethod'/>
- <cd:constant name='textseparator' value='separatoretesto'/>
- <cd:constant name='textsize' value='dimensionetesto'/>
- <cd:constant name='textstate' value='statotesto'/>
- <cd:constant name='textstyle' value='stiletesto'/>
- <cd:constant name='textwidth' value='ampiezzatesto'/>
- <cd:constant name='threshold' value='threshold'/>
- <cd:constant name='time' value='time'/>
- <cd:constant name='title' value='titolo'/>
- <cd:constant name='titlecolor' value='coloretitolo'/>
- <cd:constant name='titlecommand' value='titlecommand'/>
- <cd:constant name='titledistance' value='distanzatitolo'/>
- <cd:constant name='titleleft' value='titleleft'/>
- <cd:constant name='titleright' value='titleright'/>
- <cd:constant name='titlestrut' value='titlestrut'/>
- <cd:constant name='titlestyle' value='stiletitolo'/>
- <cd:constant name='to' value='verso'/>
- <cd:constant name='toffset' value='toffset'/>
- <cd:constant name='tolerance' value='tolleranza'/>
- <cd:constant name='top' value='cima'/>
- <cd:constant name='topcommand' value='topcommand'/>
- <cd:constant name='topdistance' value='distanzacima'/>
- <cd:constant name='topframe' value='cornicecima'/>
- <cd:constant name='topoffset' value='offsetcima'/>
- <cd:constant name='topspace' value='spaziocima'/>
- <cd:constant name='topstate' value='statocima'/>
- <cd:constant name='totalnumber' value='totalnumber'/>
- <cd:constant name='transform' value='transform'/>
- <cd:constant name='translate' value='translate'/>
- <cd:constant name='trimoffset' value='trimoffset'/>
- <cd:constant name='type' value='type'/>
- <cd:constant name='unit' value='unita'/>
- <cd:constant name='unknownreference' value='riferimentoingoto'/>
- <cd:constant name='up' value='up'/>
- <cd:constant name='urlalternative' value='alternativaurl'/>
- <cd:constant name='urlspace' value='spaziourl'/>
- <cd:constant name='userpassword' value='userpassword'/>
- <cd:constant name='validate' value='verifica'/>
- <cd:constant name='values' value='values'/>
- <cd:constant name='vcommand' value='vcomando'/>
- <cd:constant name='vcompact' value='vcompact'/>
- <cd:constant name='vector' value='vector'/>
- <cd:constant name='veroffset' value='veroffset'/>
- <cd:constant name='vertical' value='verticale'/>
- <cd:constant name='vfactor' value='vfactor'/>
- <cd:constant name='vfil' value='vfil'/>
- <cd:constant name='viewerprefix' value='viewerprefix'/>
- <cd:constant name='voffset' value='voffset'/>
- <cd:constant name='vonsep' value='vonsep'/>
- <cd:constant name='way' value='modo'/>
- <cd:constant name='wfactor' value='wfactor'/>
- <cd:constant name='white' value='bianco'/>
- <cd:constant name='width' value='ampiezza'/>
- <cd:constant name='words' value='words'/>
- <cd:constant name='xanchor' value='xanchor'/>
- <cd:constant name='xfactor' value='xfactor'/>
- <cd:constant name='xhtml' value='xhtml'/>
- <cd:constant name='xmax' value='xmax'/>
- <cd:constant name='xmlsetup' value='xmlsetup'/>
- <cd:constant name='xoffset' value='xoffset'/>
- <cd:constant name='xscale' value='xscale'/>
- <cd:constant name='xstep' value='xstep'/>
- <cd:constant name='yanchor' value='yanchor'/>
- <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:constants>
-
- <!-- definitions for interface elements for language it -->
-
- <cd:elements>
- <cd:element name='answerlines' value='answerlines'/>
- <cd:element name='answerspace' value='answerspace'/>
- <cd:element name='begin' value='inizio'/>
- <cd:element name='complete' value='completo'/>
- <cd:element name='coupled' value='accoppiato'/>
- <cd:element name='currentlocal' value='correntelocale'/>
- <cd:element name='end' value='fine'/>
- <cd:element name='endsetup' value=''/>
- <cd:element name='get' value='prendi'/>
- <cd:element name='increment' value='incrementa'/>
- <cd:element name='list' value='elenco'/>
- <cd:element name='listof' value='elencodi'/>
- <cd:element name='load' value='carica'/>
- <cd:element name='local' value='locale'/>
- <cd:element name='makeup' value='makeup'/>
- <cd:element name='next' value='successivo'/>
- <cd:element name='place' value='metti'/>
- <cd:element name='previous' value='precedente'/>
- <cd:element name='previouslocal' value='precedentelocale'/>
- <cd:element name='reserve' value='riserva'/>
- <cd:element name='see' value='vedi'/>
- <cd:element name='setup' value='imposta'/>
- <cd:element name='start' value='inizia'/>
- <cd:element name='stop' value='termina'/>
- <cd:element name='text' value='testo'/>
- <cd:element name='type' value='type'/>
- </cd:elements>
-
- <!-- definitions for interface commands for language it -->
-
- <cd:commands>
- <cd:command name='Character' value='Lettera'/>
- <cd:command name='Characters' value='Lettere'/>
- <cd:command name='MONTH' value='MESE'/>
- <cd:command name='Numbers' value='Numeri'/>
- <cd:command name='Romannumerals' value='Numeriromani'/>
- <cd:command name='SmallCapped' value='Cap'/>
- <cd:command name='SmallCaps' value='Caps'/>
- <cd:command name='WEEKDAY' value='GIORNOSETTIMANA'/>
- <cd:command name='WORD' value='PAROLA'/>
- <cd:command name='WORDS' value='PAROLE'/>
- <cd:command name='Word' value='Parola'/>
- <cd:command name='Words' value='Parole'/>
- <cd:command name='about' value='intorno'/>
- <cd:command name='adaptfontfeature' value='adaptfontfeature'/>
- <cd:command name='adaptlayout' value='adattalayout'/>
- <cd:command name='addfeature' value='addfeature'/>
- <cd:command name='alignbottom' value='alignbottom'/>
- <cd:command name='aligned' value='aligned'/>
- <cd:command name='alignedbox' value='alignedbox'/>
- <cd:command name='alignedline' value='alignedline'/>
- <cd:command name='alignhere' value='alignhere'/>
- <cd:command name='alignment' value='alignment'/>
- <cd:command name='alignmentcharacter' value='alignmentcharacter'/>
- <cd:command name='applytocharacters' value='applytocharacters'/>
- <cd:command name='applytofirstcharacter' value='applytofirstcharacter'/>
- <cd:command name='arg' value='arg'/>
- <cd:command name='at' value='al'/>
- <cd:command name='atleftmargin' value='atleftmargin'/>
- <cd:command name='atpage' value='apagina'/>
- <cd:command name='atrightmargin' value='atrightmargin'/>
- <cd:command name='background' value='sfondo'/>
- <cd:command name='backspace' value='spaziodietro'/>
- <cd:command name='blackrule' value='lineanera'/>
- <cd:command name='blackrules' value='lineenere'/>
- <cd:command name='blank' value='rigovuoto'/>
- <cd:command name='bookmark' value='segnalibro'/>
- <cd:command name='bottombox' value='bottombox'/>
- <cd:command name='bottomdistance' value='distanzafondo'/>
- <cd:command name='bottomheight' value='altezzafondo'/>
- <cd:command name='bottomleftbox' value='bottomleftbox'/>
- <cd:command name='bottomrightbox' value='bottomrightbox'/>
- <cd:command name='bottomspace' value='spaziofondo'/>
- <cd:command name='buildtextbottomdot' value='buildtextbottomdot'/>
- <cd:command name='but' value='fondo'/>
- <cd:command name='button' value='pulsante'/>
- <cd:command name='bypassblocks' value='saltablocchi'/>
- <cd:command name='character' value='lettera'/>
- <cd:command name='characters' value='lettere'/>
- <cd:command name='chem' value='chim'/>
- <cd:command name='clip' value='clip'/>
- <cd:command name='clonefield' value='clonacampo'/>
- <cd:command name='color' value='colore'/>
- <cd:command name='colorbar' value='barracolori'/>
- <cd:command name='colorvalue' value='valorecolore'/>
- <cd:command name='column' value='colonna'/>
- <cd:command name='comparecolorgroup' value='confrontagruppocolori'/>
- <cd:command name='comparepalet' value='confrontatavolozza'/>
- <cd:command name='completepagenumber' value='numeropaginacompleto'/>
- <cd:command name='completeregister' value='completeregister'/>
- <cd:command name='component' value='componenet'/>
- <cd:command name='convertnumber' value='convertinumero'/>
- <cd:command name='copyfield' value='copiacampo'/>
- <cd:command name='correctwhitespace' value='correggispaziobianco'/>
- <cd:command name='coupledocument' value='accoppiadocumento'/>
- <cd:command name='couplemarking' value='accoppiamarcatura'/>
- <cd:command name='couplepage' value='accoppiapagina'/>
- <cd:command name='couplepaper' value='accoppiacarta'/>
- <cd:command name='coupleregister' value='accoppiaregistro'/>
- <cd:command name='crlf' value='crlf'/>
- <cd:command name='currentdate' value='datadioggi'/>
- <cd:command name='currentheadnumber' value='numerotestacorrente'/>
- <cd:command name='cutspace' value='cutspace'/>
- <cd:command name='date' value='data'/>
- <cd:command name='decouplemarking' value='separamarcatura'/>
- <cd:command name='decrementnumber' value='decrementnumber'/>
- <cd:command name='define' value='definisci'/>
- <cd:command name='defineaccent' value='definisciaccento'/>
- <cd:command name='defineblank' value='definiscirigovuoto'/>
- <cd:command name='defineblock' value='definisciblocco'/>
- <cd:command name='definebodyfont' value='definiscifontdeltesto'/>
- <cd:command name='definebodyfontenvironment' value='definisciambientefontdeltesto'/>
- <cd:command name='definebodyfontswitch' value='definebodyfontswitch'/>
- <cd:command name='definebuffer' value='definiscibuffer'/>
- <cd:command name='definecharacter' value='definiscicarattere'/>
- <cd:command name='definecharacterkerning' value='definecharacterkerning'/>
- <cd:command name='definecharacterspacing' value='definecharacterspacing'/>
- <cd:command name='definecolor' value='definiscicolore'/>
- <cd:command name='definecolorgroup' value='definiscigruppocolori'/>
- <cd:command name='definecolumnbreak' value='definecolumnbreak'/>
- <cd:command name='definecolumnset' value='definiscigruppocolonne'/>
- <cd:command name='definecombination' value='definecombination'/>
- <cd:command name='definecombinedlist' value='definiscielencocombinato'/>
- <cd:command name='definecommand' value='definiscicomando'/>
- <cd:command name='defineconversion' value='definisciconversione'/>
- <cd:command name='definedescription' value='definiscidescrizione'/>
- <cd:command name='definedfont' value='definedfont'/>
- <cd:command name='defineenumeration' value='definiscienumerazione'/>
- <cd:command name='definefallbackfamily' value='definefallbackfamily'/>
- <cd:command name='definefield' value='definiscicampo'/>
- <cd:command name='definefieldstack' value='definiscistackcampi'/>
- <cd:command name='definefiguresymbol' value='definiscifigurasimbolo'/>
- <cd:command name='definefilefallback' value='definefilefallback'/>
- <cd:command name='definefirstline' value='definefirstline'/>
- <cd:command name='definefloat' value='definiscioggettomobile'/>
- <cd:command name='definefont' value='definiscifont'/>
- <cd:command name='definefontalternative' value='definefontalternative'/>
- <cd:command name='definefontfallback' value='definefontfallback'/>
- <cd:command name='definefontfamily' value='definefontfamily'/>
- <cd:command name='definefontfamilypreset' value='definefontfamilypreset'/>
- <cd:command name='definefontfeature' value='definefontfeature'/>
- <cd:command name='definefontfile' value='definefontfile'/>
- <cd:command name='definefontsize' value='definefontsize'/>
- <cd:command name='definefontsolution' value='definefontsolution'/>
- <cd:command name='definefontstyle' value='definiscistilefont'/>
- <cd:command name='definefontsynonym' value='definiscisinonimofont'/>
- <cd:command name='defineframed' value='definisciincorniciato'/>
- <cd:command name='defineframedtext' value='definiscitestoincorniciato'/>
- <cd:command name='definefrozenfont' value='definefrozenfont'/>
- <cd:command name='definehbox' value='definiscihbox'/>
- <cd:command name='definehead' value='definiscitesta'/>
- <cd:command name='definehyphenationfeatures' value='definehyphenationfeatures'/>
- <cd:command name='defineindentedtext' value='defineindentedtext'/>
- <cd:command name='defineinmargin' value='defineinmargin'/>
- <cd:command name='defineinteractionmenu' value='definiscimenuinterazione'/>
- <cd:command name='defineitemgroup' value='defineitemgroup'/>
- <cd:command name='defineitems' value='defineitems'/>
- <cd:command name='definelabel' value='definiscietichetta'/>
- <cd:command name='definelayer' value='definelayer'/>
- <cd:command name='definelayout' value='definiscilayout'/>
- <cd:command name='definelinenote' value='definelinenote'/>
- <cd:command name='definelist' value='definiscielenco'/>
- <cd:command name='definelogo' value='definiscilogo'/>
- <cd:command name='definemainfield' value='definiscicampoprincipale'/>
- <cd:command name='definemakeup' value='definiscimakeup'/>
- <cd:command name='definemarking' value='definiscimarcatura'/>
- <cd:command name='definemathalignment' value='definemathalignment'/>
- <cd:command name='definemode' value='definemode'/>
- <cd:command name='definenamedcolor' value='definenamedcolor'/>
- <cd:command name='definenote' value='definenote'/>
- <cd:command name='defineoutput' value='definiscioutput'/>
- <cd:command name='defineoverlay' value='definiscisovrapposizione'/>
- <cd:command name='definepagebreak' value='definepagebreak'/>
- <cd:command name='definepalet' value='definiscitavolozza'/>
- <cd:command name='definepapersize' value='definiscidimensionicarta'/>
- <cd:command name='defineparagraphs' value='definiscicapoversi'/>
- <cd:command name='defineperiodkerning' value='defineperiodkerning'/>
- <cd:command name='defineplacement' value='defineplacement'/>
- <cd:command name='defineprofile' value='definisciprofilo'/>
- <cd:command name='defineprogram' value='definisciprogramma'/>
- <cd:command name='definerawfont' value='definiscifontgrezzo'/>
- <cd:command name='definereference' value='definisciriferimento'/>
- <cd:command name='definereferenceformat' value='definisciformatoriferimento'/>
- <cd:command name='definereferencelist' value='definiscilistariferimenti'/>
- <cd:command name='defineregister' value='definisciregistro'/>
- <cd:command name='definerule' value='definiscilinea'/>
- <cd:command name='definesection' value='definiscisezione'/>
- <cd:command name='definesectionblock' value='definiscibloccosezione'/>
- <cd:command name='definesorting' value='definisciordinamento'/>
- <cd:command name='definestartstop' value='definisciiniziatermina'/>
- <cd:command name='definestyle' value='definiscistile'/>
- <cd:command name='definesubfield' value='definiscisottocampo'/>
- <cd:command name='definesymbol' value='definiscisimbolo'/>
- <cd:command name='definesynonyms' value='definiscisinonimi'/>
- <cd:command name='definetabletemplate' value='definiscimodellotabella'/>
- <cd:command name='definetabulate' value='definiscitabulato'/>
- <cd:command name='definetext' value='definiscitesto'/>
- <cd:command name='definetextbackground' value='definetextbackground'/>
- <cd:command name='definetextnote' value='definetextnote'/>
- <cd:command name='definetextposition' value='definisciposizionetesto'/>
- <cd:command name='definetextvariable' value='definiscivariabiletesto'/>
- <cd:command name='definetype' value='definiscitype'/>
- <cd:command name='definetyping' value='definiscityping'/>
- <cd:command name='defineversion' value='definisciversion'/>
- <cd:command name='depthspanningtext' value='depthspanningtext'/>
- <cd:command name='determineheadnumber' value='determinanumerotesta'/>
- <cd:command name='determinelistcharacteristics' value='determinacarattersticheelenco'/>
- <cd:command name='determineregistercharacteristics' value='determinacaratteristicheregistro'/>
- <cd:command name='dimension' value='dimensione'/>
- <cd:command name='disableinteractionmenu' value='disabilitamenuinterazione'/>
- <cd:command name='disablemode' value='disablemode'/>
- <cd:command name='doaddfeature' value='doaddfeature'/>
- <cd:command name='domicile' value='domicilio'/>
- <cd:command name='dontconvertfont' value='dontconvertfont'/>
- <cd:command name='donttest' value='notest'/>
- <cd:command name='edgedistance' value='distanzabordo'/>
- <cd:command name='edgewidth' value='ampiezzabordo'/>
- <cd:command name='emphasisboldface' value='emphasisboldface'/>
- <cd:command name='emptylines' value='emptylines'/>
- <cd:command name='enablemode' value='enablemode'/>
- <cd:command name='environment' value='ambiente'/>
- <cd:command name='externalfigure' value='figuraesterna'/>
- <cd:command name='fact' value='fatto'/>
- <cd:command name='fastswitchtobodyfont' value='fastswitchtobodyfont'/>
- <cd:command name='feature' value='feature'/>
- <cd:command name='field' value='campi'/>
- <cd:command name='fieldstack' value='stackcampi'/>
- <cd:command name='fillinfield' value='camporiempimento'/>
- <cd:command name='fillinline' value='rigariempimento'/>
- <cd:command name='fillinrules' value='lineeriempimento'/>
- <cd:command name='fillintext' value='testoriempimento'/>
- <cd:command name='firstcharacter' value='firstcharacter'/>
- <cd:command name='fitfield' value='adattacampo'/>
- <cd:command name='fittopbaselinegrid' value='fittopbaselinegrid'/>
- <cd:command name='fixedspace' value='spaziofisso'/>
- <cd:command name='fixedspaces' value='spazifissi'/>
- <cd:command name='flushnotes' value='flushnotes'/>
- <cd:command name='followprofile' value='seguiprofilo'/>
- <cd:command name='followprofileversion' value='seguiversioneprofilo'/>
- <cd:command name='followversion' value='seguiversione'/>
- <cd:command name='footerdistance' value='distanzapdp'/>
- <cd:command name='footerheight' value='altezzapdp'/>
- <cd:command name='footnote' value='notapdp'/>
- <cd:command name='footnotetext' value='testonotapdp'/>
- <cd:command name='forceblocks' value='forzablocchi'/>
- <cd:command name='forcecharacterstripping' value='forcecharacterstripping'/>
- <cd:command name='formulanumber' value='numeroformula'/>
- <cd:command name='fraction' value='frazione'/>
- <cd:command name='framed' value='incorniciato'/>
- <cd:command name='from' value='da'/>
- <cd:command name='fromlinenote' value='fromlinenote'/>
- <cd:command name='getbuffer' value='prendibuffer'/>
- <cd:command name='getfirstcharacter' value='getfirstcharacter'/>
- <cd:command name='getmarking' value='prendimarcatura'/>
- <cd:command name='getnumber' value='getnumber'/>
- <cd:command name='globaldisablemode' value='globaldisablemode'/>
- <cd:command name='globalenablemode' value='globalenablemode'/>
- <cd:command name='globalpreventmode' value='globalpreventmode'/>
- <cd:command name='godown' value='vaigiu'/>
- <cd:command name='goto' value='vaia'/>
- <cd:command name='gotobox' value='vaiabox'/>
- <cd:command name='gotopage' value='vaiapagina'/>
- <cd:command name='graycolor' value='coloregrigio'/>
- <cd:command name='greyvalue' value='valoregrigio'/>
- <cd:command name='grid' value='griglia'/>
- <cd:command name='hairline' value='capello'/>
- <cd:command name='head' value='testa'/>
- <cd:command name='headerdistance' value='distanzaintestazione'/>
- <cd:command name='headerheight' value='altezzaintestazione'/>
- <cd:command name='headlevel' value='livellotesta'/>
- <cd:command name='headnumber' value='numerotesta'/>
- <cd:command name='headsym' value='headsym'/>
- <cd:command name='headtext' value='testoinstestazioni'/>
- <cd:command name='heightspanningtext' value='heightspanningtext'/>
- <cd:command name='hideblocks' value='nascondiblocchi'/>
- <cd:command name='high' value='ap'/>
- <cd:command name='hl' value='hl'/>
- <cd:command name='immediatebetweenlist' value='immediatebetweenlist'/>
- <cd:command name='immediatetolist' value='immediatetolist'/>
- <cd:command name='in' value='in'/>
- <cd:command name='incrementnumber' value='incrementanumero'/>
- <cd:command name='indenting' value='rientro'/>
- <cd:command name='inframed' value='circondato'/>
- <cd:command name='infull' value='perlungo'/>
- <cd:command name='ininner' value='ininner'/>
- <cd:command name='inleft' value='insinistra'/>
- <cd:command name='inleftedge' value='inlatosinistro'/>
- <cd:command name='inleftmargin' value='inmarginesinistro'/>
- <cd:command name='inline' value='inriga'/>
- <cd:command name='inmargin' value='inmargine'/>
- <cd:command name='inmframed' value='inmaframed'/>
- <cd:command name='inneredgedistance' value='inneredgedistance'/>
- <cd:command name='inneredgewidth' value='inneredgewidth'/>
- <cd:command name='innermargindistance' value='innermargindistance'/>
- <cd:command name='innermarginwidth' value='innermarginwidth'/>
- <cd:command name='inothermargin' value='inaltromargine'/>
- <cd:command name='inouter' value='inouter'/>
- <cd:command name='inright' value='indestra'/>
- <cd:command name='inrightedge' value='inlatodestro'/>
- <cd:command name='inrightmargin' value='inmarginedestro'/>
- <cd:command name='installlanguage' value='installalingua'/>
- <cd:command name='interactionbar' value='barrainterazione'/>
- <cd:command name='interactionbuttons' value='pulsantinterazione'/>
- <cd:command name='interactionmenu' value='menuinterattivo'/>
- <cd:command name='item' value='elemento'/>
- <cd:command name='itemgroup' value='itemgroup'/>
- <cd:command name='items' value='elementi'/>
- <cd:command name='itemtag' value='itemtag'/>
- <cd:command name='its' value='el'/>
- <cd:command name='keepblocks' value='tieniblocchi'/>
- <cd:command name='kerncharacters' value='kerncharacters'/>
- <cd:command name='label' value='etichetta'/>
- <cd:command name='labels' value='etichette'/>
- <cd:command name='labeltext' value='testoetichetta'/>
- <cd:command name='language' value='lingua'/>
- <cd:command name='languageCharacters' value='languageCharacters'/>
- <cd:command name='languagecharacters' value='languagecharacters'/>
- <cd:command name='leftaligned' value='allineasinistra'/>
- <cd:command name='leftbottombox' value='leftbottombox'/>
- <cd:command name='leftedgedistance' value='distanzabordosinistro'/>
- <cd:command name='leftedgewidth' value='ampiezzabordosinistro'/>
- <cd:command name='leftline' value='leftline'/>
- <cd:command name='leftmargindistance' value='distanzamarginesinistro'/>
- <cd:command name='leftmarginwidth' value='ampiezzamarginesinistro'/>
- <cd:command name='leg' value='leg'/>
- <cd:command name='linecorrection' value='linecorrection'/>
- <cd:command name='linenote' value='linenote'/>
- <cd:command name='linespanningtext' value='linespanningtext'/>
- <cd:command name='linewidth' value='spessoreriga'/>
- <cd:command name='listheight' value='altezzaelenco'/>
- <cd:command name='listlength' value='lunghezzaelenco'/>
- <cd:command name='listsymbol' value='listsymbol'/>
- <cd:command name='listwidth' value='ampiezzaelenco'/>
- <cd:command name='loadfontgoodies' value='loadfontgoodies'/>
- <cd:command name='localfootnotes' value='localfootnotes'/>
- <cd:command name='localnotes' value='localnotes'/>
- <cd:command name='logfields' value='logcampi'/>
- <cd:command name='lohi' value='pedap'/>
- <cd:command name='low' value='ped'/>
- <cd:command name='macroname' value='nome'/>
- <cd:command name='mainlanguage' value='linguaprincipale'/>
- <cd:command name='makeupheight' value='altezzamakeup'/>
- <cd:command name='makeupwidth' value='ampiezzamakeup'/>
- <cd:command name='mar' value='mar'/>
- <cd:command name='marginblock' value='marginblock'/>
- <cd:command name='margindistance' value='distanzamargine'/>
- <cd:command name='marginrule' value='lineamargine'/>
- <cd:command name='margintext' value='testoinmargine'/>
- <cd:command name='margintitle' value='titoloinmargine'/>
- <cd:command name='marginwidth' value='ampiezzamargine'/>
- <cd:command name='marginword' value='parolainmargine'/>
- <cd:command name='marking' value='marcatura'/>
- <cd:command name='markversion' value='marcaversione'/>
- <cd:command name='mathematics' value='matematica'/>
- <cd:command name='menubutton' value='pulsantemenu'/>
- <cd:command name='mframed' value='maframed'/>
- <cd:command name='midaligned' value='allineacentro'/>
- <cd:command name='mirror' value='riflessione'/>
- <cd:command name='month' value='mese'/>
- <cd:command name='moveformula' value='spostaformula'/>
- <cd:command name='moveongrid' value='spostaagriglia'/>
- <cd:command name='movesidefloat' value='movesidefloat'/>
- <cd:command name='navigating' value='navigating'/>
- <cd:command name='nodimension' value='nientedimensioni'/>
- <cd:command name='noheaderandfooterlines' value='nientelineintestazionepdp'/>
- <cd:command name='noindenting' value='nienterientro'/>
- <cd:command name='noitem' value='noitem'/>
- <cd:command name='nolist' value='nienteelenco'/>
- <cd:command name='nomarking' value='nientemarcatura'/>
- <cd:command name='nomoreblocks' value='bastablocchi'/>
- <cd:command name='nomorefiles' value='bastafile'/>
- <cd:command name='nop' value='nop'/>
- <cd:command name='nospace' value='nientespazio'/>
- <cd:command name='note' value='nota'/>
- <cd:command name='notesymbol' value='notesymbol'/>
- <cd:command name='notopandbottomlines' value='nientelineecimafondo'/>
- <cd:command name='notsmallcapped' value='nocap'/>
- <cd:command name='nowhitespace' value='nientespaziobianco'/>
- <cd:command name='numberofsubpages' value='numberofsubpages'/>
- <cd:command name='numbers' value='numeri'/>
- <cd:command name='outeredgedistance' value='outeredgedistance'/>
- <cd:command name='outeredgewidth' value='outeredgewidth'/>
- <cd:command name='outermargindistance' value='outermargindistance'/>
- <cd:command name='outermarginwidth' value='outermarginwidth'/>
- <cd:command name='packed' value='impaccato'/>
- <cd:command name='page' value='pagina'/>
- <cd:command name='pagebreak' value='pagebreak'/>
- <cd:command name='pagedepth' value='pagedepth'/>
- <cd:command name='pagenumber' value='numeropagina'/>
- <cd:command name='pageoffset' value='pageoffset'/>
- <cd:command name='pagereference' value='riferimentopagina'/>
- <cd:command name='paperheight' value='altezzacarta'/>
- <cd:command name='paperwidth' value='ampiezzacarta'/>
- <cd:command name='periods' value='punti'/>
- <cd:command name='placebookmarks' value='mettisegnalibro'/>
- <cd:command name='placecombinedlist' value='mettielencocombinato'/>
- <cd:command name='placefloat' value='placefloat'/>
- <cd:command name='placefootnotes' value='mettinotepdp'/>
- <cd:command name='placeformula' value='mettiformula'/>
- <cd:command name='placeheadnumber' value='posizionanumerotesta'/>
- <cd:command name='placeheadtext' value='posizionatestotesta'/>
- <cd:command name='placelegend' value='mettilegenda'/>
- <cd:command name='placelist' value='mettielenco'/>
- <cd:command name='placelistofsynonyms' value='placelistofsynonyms'/>
- <cd:command name='placelocalfootnotes' value='mettinotepdplocali'/>
- <cd:command name='placelocalnotes' value='placelocalnotes'/>
- <cd:command name='placelogos' value='mettiloghi'/>
- <cd:command name='placenamedfloat' value='placenamedfloat'/>
- <cd:command name='placenotes' value='placenotes'/>
- <cd:command name='placeongrid' value='mettiingriglia'/>
- <cd:command name='placeontopofeachother' value='mettiunosullaltro'/>
- <cd:command name='placepagenumber' value='mettinumeropagina'/>
- <cd:command name='placerawlist' value='placerawlist'/>
- <cd:command name='placereferencelist' value='placereferencelist'/>
- <cd:command name='placeregister' value='mettiregistro'/>
- <cd:command name='placerule' value='mettilinea'/>
- <cd:command name='placesidebyside' value='mettifiancoafianco'/>
- <cd:command name='placesubformula' value='mettisottoformula'/>
- <cd:command name='placetextvariable' value='mettivariabiletesto'/>
- <cd:command name='position' value='posizione'/>
- <cd:command name='positiontext' value='posizionatesto'/>
- <cd:command name='postponenotes' value='postponenotes'/>
- <cd:command name='postponingnotes' value='postponingnotes'/>
- <cd:command name='predefinedfont' value='predefinedfont'/>
- <cd:command name='predefinefont' value='predefinefont'/>
- <cd:command name='presetdocument' value='presetdocument'/>
- <cd:command name='prettyprintbuffer' value='prettyprintbuffer'/>
- <cd:command name='preventmode' value='preventmode'/>
- <cd:command name='printpaperheight' value='altezzacartastampa'/>
- <cd:command name='printpaperwidth' value='ampiezzacartastampa'/>
- <cd:command name='processblocks' value='elaborablocchi'/>
- <cd:command name='processbodyfontenvironmentlist' value='processbodyfontenvironmentlist'/>
- <cd:command name='processpage' value='elaborapagina'/>
- <cd:command name='product' value='prodotto'/>
- <cd:command name='program' value='programma'/>
- <cd:command name='project' value='progetto'/>
- <cd:command name='publication' value='pubblicazione'/>
- <cd:command name='quotation' value='citazione'/>
- <cd:command name='quote' value='menzione'/>
- <cd:command name='ran' value='ran'/>
- <cd:command name='redo' value='rifai'/>
- <cd:command name='redoconvertfont' value='redoconvertfont'/>
- <cd:command name='ref' value='rif'/>
- <cd:command name='reference' value='riferimento'/>
- <cd:command name='referral' value='referral'/>
- <cd:command name='referraldate' value='datareferral'/>
- <cd:command name='referring' value='referring'/>
- <cd:command name='registerfontclass' value='registerfontclass'/>
- <cd:command name='registerhyphenationexception' value='registerhyphenationexception'/>
- <cd:command name='registerhyphenationpattern' value='registerhyphenationpattern'/>
- <cd:command name='remark' value='commento'/>
- <cd:command name='replacefeature' value='replacefeature'/>
- <cd:command name='reset' value='reimposta'/>
- <cd:command name='resetandaddfeature' value='resetandaddfeature'/>
- <cd:command name='resetcharacteralign' value='resetcharacteralign'/>
- <cd:command name='resetcharacterkerning' value='resetcharacterkerning'/>
- <cd:command name='resetcharacterspacing' value='resetcharacterspacing'/>
- <cd:command name='resetcharacterstripping' value='resetcharacterstripping'/>
- <cd:command name='resetfeature' value='resetfeature'/>
- <cd:command name='resetfontcolorsheme' value='resetfontcolorsheme'/>
- <cd:command name='resetfontfallback' value='resetfontfallback'/>
- <cd:command name='resetfontsolution' value='resetfontsolution'/>
- <cd:command name='resethyphenationfeatures' value='resethyphenationfeatures'/>
- <cd:command name='resetlocalfloats' value='resetlocalfloats'/>
- <cd:command name='resetmarking' value='reimpostamarcatura'/>
- <cd:command name='resetmode' value='resetmode'/>
- <cd:command name='resetnumber' value='resetnumber'/>
- <cd:command name='resetpath' value='resetpath'/>
- <cd:command name='resetperiodkerning' value='resetperiodkerning'/>
- <cd:command name='resetsystemmode' value='resetsystemmode'/>
- <cd:command name='resettextcontent' value='resettextcontent'/>
- <cd:command name='resetvisualizers' value='resetvisualizers'/>
- <cd:command name='restoreglobalbodyfont' value='restoreglobalbodyfont'/>
- <cd:command name='retestfeature' value='retestfeature'/>
- <cd:command name='revivefeature' value='revivefeature'/>
- <cd:command name='rightaligned' value='allineadestra'/>
- <cd:command name='rightbottombox' value='rightbottombox'/>
- <cd:command name='rightedgedistance' value='distanzabordodestro'/>
- <cd:command name='rightedgewidth' value='ampiezzabordodestro'/>
- <cd:command name='rightline' value='rightline'/>
- <cd:command name='rightmargindistance' value='distanzamarginedestro'/>
- <cd:command name='rightmarginwidth' value='ampiezzamarginedestro'/>
- <cd:command name='romannumerals' value='numeriromani'/>
- <cd:command name='rotate' value='ruota'/>
- <cd:command name='savebuffer' value='savebuffer'/>
- <cd:command name='scale' value='scala'/>
- <cd:command name='screen' value='schermo'/>
- <cd:command name='selectblocks' value='selezionablocchi'/>
- <cd:command name='selectpaper' value='selezionacarta'/>
- <cd:command name='selectversion' value='selezionaversione'/>
- <cd:command name='setbigbodyfont' value='setbigbodyfont'/>
- <cd:command name='setcharacteralign' value='setcharacteralign'/>
- <cd:command name='setcharacteraligndetail' value='setcharacteraligndetail'/>
- <cd:command name='setcharactercasing' value='setcharactercasing'/>
- <cd:command name='setcharactercleaning' value='setcharactercleaning'/>
- <cd:command name='setcharacterkerning' value='setcharacterkerning'/>
- <cd:command name='setcharacterspacing' value='setcharacterspacing'/>
- <cd:command name='setcharacterstripping' value='setcharacterstripping'/>
- <cd:command name='setcurrentfontclass' value='setcurrentfontclass'/>
- <cd:command name='setfirstline' value='setfirstline'/>
- <cd:command name='setfirstpasscharacteralign' value='setfirstpasscharacteralign'/>
- <cd:command name='setfont' value='setfont'/>
- <cd:command name='setfontcolorsheme' value='setfontcolorsheme'/>
- <cd:command name='setfontfeature' value='setfontfeature'/>
- <cd:command name='setfontsolution' value='setfontsolution'/>
- <cd:command name='setfontstrut' value='setfontstrut'/>
- <cd:command name='sethyphenationfeatures' value='sethyphenationfeatures'/>
- <cd:command name='setmainbodyfont' value='setmainbodyfont'/>
- <cd:command name='setmode' value='setmode'/>
- <cd:command name='setnote' value='setnote'/>
- <cd:command name='setnotetext' value='setnotetext'/>
- <cd:command name='setnumber' value='setnumber'/>
- <cd:command name='setperiodkerning' value='setperiodkerning'/>
- <cd:command name='setsecondpasscharacteralign' value='setsecondpasscharacteralign'/>
- <cd:command name='setsmallbodyfont' value='setsmallbodyfont'/>
- <cd:command name='setsystemmode' value='setsystemmode'/>
- <cd:command name='settextcontent' value='settext'/>
- <cd:command name='settextvariable' value='setvariabiletesto'/>
- <cd:command name='setupalign' value='impostaallineamento'/>
- <cd:command name='setupanswerarea' value='setupanswerarea'/>
- <cd:command name='setuparranging' value='impostaparranging'/>
- <cd:command name='setupattachment' value='setupattachment'/>
- <cd:command name='setupbackground' value='impostasfondo'/>
- <cd:command name='setupbackgrounds' value='impostasfondi'/>
- <cd:command name='setupblackrules' value='impostalineenere'/>
- <cd:command name='setupblank' value='impostarigovuoto'/>
- <cd:command name='setupblock' value='impostablocco'/>
- <cd:command name='setupbodyfont' value='impostafontdeltesto'/>
- <cd:command name='setupbodyfontenvironment' value='impostaambientefontdeltesto'/>
- <cd:command name='setupbottom' value='impostafondo'/>
- <cd:command name='setupbottomtexts' value='impostatestifondo'/>
- <cd:command name='setupbuffer' value='impostabuffer'/>
- <cd:command name='setupbuttons' value='impostapulsanti'/>
- <cd:command name='setupcapitals' value='impostamaiuscole'/>
- <cd:command name='setupcaption' value='impostacaption'/>
- <cd:command name='setupcaptions' value='impostacaptions'/>
- <cd:command name='setupcharacteralign' value='setupcharacteralign'/>
- <cd:command name='setupcharacterkerning' value='setupcharacterkerning'/>
- <cd:command name='setupcharacterspacing' value='setupcharacterspacing'/>
- <cd:command name='setupclipping' value='impostaclippling'/>
- <cd:command name='setupcolor' value='impostacolore'/>
- <cd:command name='setupcolors' value='impostacolori'/>
- <cd:command name='setupcolumns' value='impostacolonne'/>
- <cd:command name='setupcolumnset' value='impostagruppocolonne'/>
- <cd:command name='setupcolumnsetlines' value='setupcolumnsetlines'/>
- <cd:command name='setupcolumnsetstart' value='setupcolumnsetstart'/>
- <cd:command name='setupcombinations' value='impostacombinazioni'/>
- <cd:command name='setupcombinedlist' value='impostaelencocombinato'/>
- <cd:command name='setupcomment' value='impostacommento'/>
- <cd:command name='setupcounter' value='setupcounter'/>
- <cd:command name='setupdescription' value='setupdescription'/>
- <cd:command name='setupdescriptions' value='impostadescrizioni'/>
- <cd:command name='setupenumeration' value='setupenumeration'/>
- <cd:command name='setupenumerations' value='impostaenumerazioni'/>
- <cd:command name='setupexternalfigures' value='impostafigureesterne'/>
- <cd:command name='setupfield' value='impostacampo'/>
- <cd:command name='setupfields' value='impostacampi'/>
- <cd:command name='setupfillinlines' value='impostarigheriempimento'/>
- <cd:command name='setupfillinrules' value='impostalineeriempimento'/>
- <cd:command name='setupfirstline' value='setupfirstline'/>
- <cd:command name='setupfloat' value='impostaoggettomobile'/>
- <cd:command name='setupfloats' value='impostaoggettimobili'/>
- <cd:command name='setupfloatsplitting' value='impostaspezzamentooggettomobile'/>
- <cd:command name='setupfontexpansion' value='setupfontexpansion'/>
- <cd:command name='setupfontprotrusion' value='setupfontprotrusion'/>
- <cd:command name='setupfonts' value='setupfonts'/>
- <cd:command name='setupfontsolution' value='setupfontsolution'/>
- <cd:command name='setupfooter' value='impostapdp'/>
- <cd:command name='setupfootertexts' value='impostatestipdp'/>
- <cd:command name='setupfootnotedefinition' value='impostadefinizionenotepdp'/>
- <cd:command name='setupfootnotes' value='impostanotepdp'/>
- <cd:command name='setupforms' value='impostaforms'/>
- <cd:command name='setupformula' value='setupformula'/>
- <cd:command name='setupformulas' value='impostaformule'/>
- <cd:command name='setupframed' value='impostaincorniciato'/>
- <cd:command name='setupframedtext' value='setupframedtext'/>
- <cd:command name='setupframedtexts' value='impostatestiincorniciati'/>
- <cd:command name='setuphead' value='impostatesta'/>
- <cd:command name='setupheader' value='impostainstestazione'/>
- <cd:command name='setupheadertexts' value='impostatestiintestazioni'/>
- <cd:command name='setupheadnumber' value='impostanumerotesta'/>
- <cd:command name='setupheads' value='impostateste'/>
- <cd:command name='setupheadtext' value='impostatestointestazioni'/>
- <cd:command name='setuphyphenation' value='setuphyphenation'/>
- <cd:command name='setuphyphenmark' value='impostasegnosillabazione'/>
- <cd:command name='setupindentedtext' value='setupindentedtext'/>
- <cd:command name='setupindenting' value='impostarientro'/>
- <cd:command name='setupinmargin' value='impostainmargine'/>
- <cd:command name='setupinteraction' value='impostainterazione'/>
- <cd:command name='setupinteractionbar' value='impostabarrainterazione'/>
- <cd:command name='setupinteractionmenu' value='impostamenuinterazione'/>
- <cd:command name='setupinteractionscreen' value='impostaschermointerazione'/>
- <cd:command name='setupinterlinespace' value='impostainterlinea'/>
- <cd:command name='setupitemgroup' value='setupitemgroup'/>
- <cd:command name='setupitemgroups' value='impostaelencazioni'/>
- <cd:command name='setupitems' value='impostaelementi'/>
- <cd:command name='setuplabeltext' value='impostatestoetichette'/>
- <cd:command name='setuplanguage' value='impostalingua'/>
- <cd:command name='setuplayout' value='impostalayout'/>
- <cd:command name='setuplegend' value='impostalegenda'/>
- <cd:command name='setuplinenote' value='setuplinenote'/>
- <cd:command name='setuplinenumbering' value='impostanumerazionerighe'/>
- <cd:command name='setuplines' value='impostarighe'/>
- <cd:command name='setuplinewidth' value='impostaampiezzariga'/>
- <cd:command name='setuplist' value='impostaelenco'/>
- <cd:command name='setupmakeup' value='impostamakeup'/>
- <cd:command name='setupmarginblock' value='setupmarginblock'/>
- <cd:command name='setupmarginblocks' value='impostablocchimargine'/>
- <cd:command name='setupmargindata' value='setupmargindata'/>
- <cd:command name='setupmarginrules' value='impostalineemargine'/>
- <cd:command name='setupmarking' value='impostamarcatura'/>
- <cd:command name='setupmathalignment' value='setupmathalignment'/>
- <cd:command name='setupnarrower' value='impostapiustretto'/>
- <cd:command name='setupnotation' value='setupnotation'/>
- <cd:command name='setupnotations' value='setupnotations'/>
- <cd:command name='setupnote' value='setupnote'/>
- <cd:command name='setupnotes' value='setupnotes'/>
- <cd:command name='setupnumber' value='impostanumerazione'/>
- <cd:command name='setupnumbering' value='impostanumerazione'/>
- <cd:command name='setupoppositeplacing' value='impostaposizionamentoopposti'/>
- <cd:command name='setupoutput' value='impostaoutput'/>
- <cd:command name='setuppagecomment' value='impostacommentopagina'/>
- <cd:command name='setuppagenumber' value='impostanumeropagina'/>
- <cd:command name='setuppagenumbering' value='impostanumerazionepagina'/>
- <cd:command name='setuppagetransitions' value='impostatransizionepagina'/>
- <cd:command name='setuppalet' value='impostatavolozza'/>
- <cd:command name='setuppaper' value='setuppaper'/>
- <cd:command name='setuppapersize' value='impostadimensionicarta'/>
- <cd:command name='setupparagraphnumbering' value='impostanumerazionecapoversi'/>
- <cd:command name='setupparagraphs' value='impostacapoversi'/>
- <cd:command name='setupperiodkerning' value='setupperiodkerning'/>
- <cd:command name='setupplacement' value='setupplacement'/>
- <cd:command name='setuppositioning' value='impostaposizionamento'/>
- <cd:command name='setupprofiles' value='impostaprofili'/>
- <cd:command name='setupprograms' value='impostaprogrammi'/>
- <cd:command name='setuppublications' value='impostapubblicazioni'/>
- <cd:command name='setupquote' value='impostamenzione'/>
- <cd:command name='setupreferencelist' value='impostalistariferimenti'/>
- <cd:command name='setupreferencing' value='impostariferimento'/>
- <cd:command name='setupregister' value='impostaregistro'/>
- <cd:command name='setuprotate' value='impostarotazione'/>
- <cd:command name='setuprule' value='impostalinea'/>
- <cd:command name='setupscreens' value='impostaschermi'/>
- <cd:command name='setupsection' value='impostasezione'/>
- <cd:command name='setupsectionblock' value='impostabloccosezione'/>
- <cd:command name='setupsorting' value='impostaordinamento'/>
- <cd:command name='setupspacing' value='impostaspaziatura'/>
- <cd:command name='setupstartstop' value='impostainiziatermina'/>
- <cd:command name='setupstrut' value='impostastrut'/>
- <cd:command name='setupsubpagenumber' value='impostanumerosottopagina'/>
- <cd:command name='setupsymbolset' value='impostasetsimboli'/>
- <cd:command name='setupsynchronization' value='impostasincronizzazione'/>
- <cd:command name='setupsynchronizationbar' value='impostabarrasincronizzazione'/>
- <cd:command name='setupsynonyms' value='impostasinonimi'/>
- <cd:command name='setupsystem' value='impostasistema'/>
- <cd:command name='setuptab' value='impostatab'/>
- <cd:command name='setuptables' value='impostatabelle'/>
- <cd:command name='setuptabulate' value='impostatabulato'/>
- <cd:command name='setuptext' value='impostatesto'/>
- <cd:command name='setuptextbackground' value='setuptextbackground'/>
- <cd:command name='setuptextnote' value='setuptextnote'/>
- <cd:command name='setuptextposition' value='impostaposizionetesto'/>
- <cd:command name='setuptextrules' value='impostalineetesto'/>
- <cd:command name='setuptexttexts' value='impostatestotesti'/>
- <cd:command name='setuptextvariable' value='impostavariabiletesto'/>
- <cd:command name='setupthinrules' value='impostalineesottili'/>
- <cd:command name='setuptolerance' value='impostatolleranza'/>
- <cd:command name='setuptop' value='impostacima'/>
- <cd:command name='setuptoptexts' value='impostatesticima'/>
- <cd:command name='setuptype' value='impostatype'/>
- <cd:command name='setuptyping' value='impostatyping'/>
- <cd:command name='setupunderbar' value='impostasottolinea'/>
- <cd:command name='setupurl' value='impostaurl'/>
- <cd:command name='setupversions' value='impostaversioni'/>
- <cd:command name='setupwhitespace' value='impostaspaziobianco'/>
- <cd:command name='setvisualizerfont' value='setvisualizerfont'/>
- <cd:command name='showbodyfont' value='mostrafontdeltesto'/>
- <cd:command name='showbodyfontenvironment' value='mostraambientefontdeltesto'/>
- <cd:command name='showcolor' value='mostracolore'/>
- <cd:command name='showcolorgroup' value='mostragruppocolori'/>
- <cd:command name='showcounter' value='showcounter'/>
- <cd:command name='showexternalfigures' value='mostrafiguresterne'/>
- <cd:command name='showfields' value='mostracampi'/>
- <cd:command name='showfont' value='showfont'/>
- <cd:command name='showfontdata' value='showfontdata'/>
- <cd:command name='showfontexpansion' value='showfontexpansion'/>
- <cd:command name='showfontitalics' value='showfontitalics'/>
- <cd:command name='showfontkerns' value='showfontkerns'/>
- <cd:command name='showfontparameters' value='showfontparameters'/>
- <cd:command name='showfontstrip' value='showfontstrip'/>
- <cd:command name='showfontstyle' value='showfontstyle'/>
- <cd:command name='showframe' value='mostracornice'/>
- <cd:command name='showgrid' value='mostragriglia'/>
- <cd:command name='showhyphenationtrace' value='showhyphenationtrace'/>
- <cd:command name='showkerning' value='showkerning'/>
- <cd:command name='showlayout' value='mostralyout'/>
- <cd:command name='showmakeup' value='mostramakeup'/>
- <cd:command name='showminimalbaseline' value='showminimalbaseline'/>
- <cd:command name='showpalet' value='mostratavolozza'/>
- <cd:command name='showprint' value='mostrastampa'/>
- <cd:command name='showsetups' value='mostraimpostazioni'/>
- <cd:command name='showstruts' value='mostrastruts'/>
- <cd:command name='showsymbolset' value='mostrasetsimboli'/>
- <cd:command name='smallcapped' value='cap'/>
- <cd:command name='someline' value='qualcheriga'/>
- <cd:command name='somewhere' value='daqualcheparte'/>
- <cd:command name='space' value='spazio'/>
- <cd:command name='specialitem' value='specialitem'/>
- <cd:command name='splitfloat' value='spezzaoggettomobile'/>
- <cd:command name='startalignment' value='iniziaallineamento'/>
- <cd:command name='startbackground' value='iniziasfondo'/>
- <cd:command name='startcoding' value='iniziacodifica'/>
- <cd:command name='startcolor' value='iniziacolore'/>
- <cd:command name='startcolumnmakeup' value='startcolumnmakeup'/>
- <cd:command name='startcolumns' value='iniziacolonne'/>
- <cd:command name='startcolumnset' value='iniziagruppocolonne'/>
- <cd:command name='startcombination' value='iniziacombinazione'/>
- <cd:command name='startcomponent' value='iniziacomponente'/>
- <cd:command name='startdocument' value='iniziadocumento'/>
- <cd:command name='startenvironment' value='iniziaambiente'/>
- <cd:command name='startfigure' value='iniziafigura'/>
- <cd:command name='startframed' value='startframed'/>
- <cd:command name='startglobal' value='iniziaglobale'/>
- <cd:command name='startline' value='iniziariga'/>
- <cd:command name='startlinecorrection' value='iniziacorrezioneriga'/>
- <cd:command name='startlinenote' value='startlinenote'/>
- <cd:command name='startlinenumbering' value='inizianumerazionerighe'/>
- <cd:command name='startlines' value='iniziarighe'/>
- <cd:command name='startlocal' value='inizialocale'/>
- <cd:command name='startlocalfootnotes' value='inizianotepdplocali'/>
- <cd:command name='startmakeup' value='iniziamakeup'/>
- <cd:command name='startmarginblock' value='iniziabloccomargine'/>
- <cd:command name='startmarginrule' value='inizialineamargine'/>
- <cd:command name='startnarrower' value='iniziapiustretto'/>
- <cd:command name='startopposite' value='iniziaopposto'/>
- <cd:command name='startoverlay' value='iniziasovrapposizione'/>
- <cd:command name='startoverview' value='iniziaoverview'/>
- <cd:command name='startpacked' value='iniziaimpaccato'/>
- <cd:command name='startpositioning' value='iniziaposizionamento'/>
- <cd:command name='startproduct' value='iniziaprodotto'/>
- <cd:command name='startprofile' value='iniziaprofilo'/>
- <cd:command name='startproject' value='iniziaprogetto'/>
- <cd:command name='startquotation' value='iniziacitazione'/>
- <cd:command name='startraster' value='iniziaraster'/>
- <cd:command name='startsymbolset' value='iniziasetsimboli'/>
- <cd:command name='startsynchronization' value='iniziasincronizzazione'/>
- <cd:command name='starttable' value='iniziatabella'/>
- <cd:command name='starttables' value='iniziatabelle'/>
- <cd:command name='starttext' value='iniziatesto'/>
- <cd:command name='starttextbackground' value='starttextbackground'/>
- <cd:command name='starttextrule' value='inizialineatesto'/>
- <cd:command name='startunpacked' value='iniziaunpacked'/>
- <cd:command name='startversion' value='iniziaversione'/>
- <cd:command name='stopalignment' value='terminaallineamento'/>
- <cd:command name='stopbackground' value='terminasfondo'/>
- <cd:command name='stopcoding' value='terminacodifica'/>
- <cd:command name='stopcolor' value='terminacolore'/>
- <cd:command name='stopcolumnmakeup' value='stopcolumnmakeup'/>
- <cd:command name='stopcolumns' value='terminacolonne'/>
- <cd:command name='stopcolumnset' value='terminagruppocolonne'/>
- <cd:command name='stopcombination' value='terminacombinazione'/>
- <cd:command name='stopcomponent' value='terminacomponente'/>
- <cd:command name='stopdocument' value='terminadocumento'/>
- <cd:command name='stopenvironment' value='terminaambiente'/>
- <cd:command name='stopframed' value='stopframed'/>
- <cd:command name='stopglobal' value='terminaglobale'/>
- <cd:command name='stopline' value='terminariga'/>
- <cd:command name='stoplinecorrection' value='terminacorrezioneriga'/>
- <cd:command name='stoplinenote' value='stoplinenote'/>
- <cd:command name='stoplinenumbering' value='terminanumerazionerighe'/>
- <cd:command name='stoplines' value='terminarighe'/>
- <cd:command name='stoplocal' value='terminalocale'/>
- <cd:command name='stoplocalfootnotes' value='terminanotepdplocali'/>
- <cd:command name='stopmakeup' value='terminamakeup'/>
- <cd:command name='stopmarginblock' value='terminabloccomargine'/>
- <cd:command name='stopmarginrule' value='terminalineamargine'/>
- <cd:command name='stopnarrower' value='terminapiustretto'/>
- <cd:command name='stopopposite' value='terminaopposto'/>
- <cd:command name='stopoverlay' value='terminasovrapposizione'/>
- <cd:command name='stopoverview' value='terminaoverview'/>
- <cd:command name='stoppacked' value='terminaimpaccato'/>
- <cd:command name='stoppositioning' value='terminaposizionamento'/>
- <cd:command name='stopproduct' value='terminaprodotto'/>
- <cd:command name='stopprofile' value='terminaprofili'/>
- <cd:command name='stopproject' value='terminaprogetto'/>
- <cd:command name='stopquotation' value='terminacitazione'/>
- <cd:command name='stopraster' value='terminaraster'/>
- <cd:command name='stopsynchronization' value='terminasincronizzazione'/>
- <cd:command name='stoptable' value='terminatabella'/>
- <cd:command name='stoptables' value='terminatabelle'/>
- <cd:command name='stoptext' value='terminatesto'/>
- <cd:command name='stoptextbackground' value='stoptextbackground'/>
- <cd:command name='stoptextrule' value='terminalineatesto'/>
- <cd:command name='stopunpacked' value='terminaunpacked'/>
- <cd:command name='stopversion' value='terminaversioni'/>
- <cd:command name='stretched' value='stirato'/>
- <cd:command name='strictinspectnextcharacter' value='strictinspectnextcharacter'/>
- <cd:command name='stripcharacter' value='stripcharacter'/>
- <cd:command name='subformulanumber' value='numerosottoformula'/>
- <cd:command name='subpagenumber' value='subpagenumber'/>
- <cd:command name='subtractfeature' value='subtractfeature'/>
- <cd:command name='switchtobodyfont' value='cambiaafontdeltesto'/>
- <cd:command name='switchtorawfont' value='passaafontgrezzo'/>
- <cd:command name='sym' value='sim'/>
- <cd:command name='symbol' value='simbolo'/>
- <cd:command name='symoffset' value='symoffset'/>
- <cd:command name='synchronizationbar' value='barrasincronizzazione'/>
- <cd:command name='synchronize' value='sincronizza'/>
- <cd:command name='tab' value='tab'/>
- <cd:command name='testcolumn' value='testcolumn'/>
- <cd:command name='testfeature' value='testfeature'/>
- <cd:command name='testfeatureonce' value='testfeatureonce'/>
- <cd:command name='testpage' value='testpage'/>
- <cd:command name='tex' value='tex'/>
- <cd:command name='textbackground' value='textbackground'/>
- <cd:command name='textcolor' value='textcolor'/>
- <cd:command name='textheight' value='altezzatesto'/>
- <cd:command name='textnote' value='textnote'/>
- <cd:command name='textreference' value='riferimentotesto'/>
- <cd:command name='textrule' value='lineatesto'/>
- <cd:command name='textvariable' value='variabiletesto'/>
- <cd:command name='textwidth' value='ampiezzatesto'/>
- <cd:command name='thefirstcharacter' value='thefirstcharacter'/>
- <cd:command name='thenormalizedbodyfontsize' value='thenormalizedbodyfontsize'/>
- <cd:command name='theremainingcharacters' value='theremainingcharacters'/>
- <cd:command name='thinrule' value='lineasottile'/>
- <cd:command name='thinrules' value='lineesottili'/>
- <cd:command name='tolinenote' value='tolinenote'/>
- <cd:command name='tooltip' value='tooltip'/>
- <cd:command name='topdistance' value='distanzacima'/>
- <cd:command name='topheight' value='altezzacima'/>
- <cd:command name='topspace' value='spaziocima'/>
- <cd:command name='totalnumberofpages' value='numerototaledipagine'/>
- <cd:command name='translate' value='traduci'/>
- <cd:command name='txt' value='txt'/>
- <cd:command name='typ' value='typ'/>
- <cd:command name='type' value='type'/>
- <cd:command name='typebuffer' value='typebuffer'/>
- <cd:command name='typedefinedbuffer' value='typedefinedbuffer'/>
- <cd:command name='typefile' value='typefile'/>
- <cd:command name='typeinlinebuffer' value='typeinlinebuffer'/>
- <cd:command name='typing' value='typing'/>
- <cd:command name='unitmeaning' value='nomeunita'/>
- <cd:command name='unknown' value='ignoto'/>
- <cd:command name='unregisterhyphenationpattern' value='unregisterhyphenationpattern'/>
- <cd:command name='useJSscripts' value='usaJSscripts'/>
- <cd:command name='useURL' value='usaURL'/>
- <cd:command name='useXMLfilter' value='useXMLfilter'/>
- <cd:command name='useblocks' value='usablocco'/>
- <cd:command name='usebodyfont' value='usebodyfont'/>
- <cd:command name='usebodyfontparameter' value='usebodyfontparameter'/>
- <cd:command name='usecommands' value='usacomandi'/>
- <cd:command name='useencoding' value='usacodifica'/>
- <cd:command name='useexternaldocument' value='usadocumentoesterno'/>
- <cd:command name='useexternalfigure' value='usafiguraesterna'/>
- <cd:command name='useexternalfile' value='usafileesterno'/>
- <cd:command name='useexternalfiles' value='usafileesterni'/>
- <cd:command name='useexternalsoundtrack' value='usacolonnasonoraesterna'/>
- <cd:command name='usemodule' value='usamodulo'/>
- <cd:command name='usemodules' value='usamoduli'/>
- <cd:command name='usepath' value='usacartella'/>
- <cd:command name='usereferences' value='usariferimenti'/>
- <cd:command name='usespecials' value='usaspecialita'/>
- <cd:command name='usesymbols' value='usasimboli'/>
- <cd:command name='usetypescript' value='usetypescript'/>
- <cd:command name='usetypescriptfile' value='usetypescriptfile'/>
- <cd:command name='useurl' value='usaurl'/>
- <cd:command name='verbatim' value='verbatim'/>
- <cd:command name='version' value='versione'/>
- <cd:command name='vl' value='vl'/>
- <cd:command name='weekday' value='giornosettimana'/>
- <cd:command name='whitespace' value='spaziobianco'/>
- <cd:command name='widthspanningtext' value='widthspanningtext'/>
- <cd:command name='wordright' value='paroladestra'/>
- <cd:command name='writebetweenlist' value='scrividentroelenco'/>
- <cd:command name='writetolist' value='scriviinelenco'/>
- <cd:command name='writetoreferencelist' value='scriviinlistariferimenti'/>
- <cd:command name='writetoregister' value='scriviinregistro'/>
- </cd:commands>
-
-</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-nl.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-nl.xml
deleted file mode 100644
index 87fe9ba1541..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-nl.xml
+++ /dev/null
@@ -1,2234 +0,0 @@
-<?xml version='1.0'?>
-
-<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='nl' version='2008.10.21 19:42'>
-
- <!-- definitions for interface variables for language nl -->
-
- <cd:variables>
- <cd:variable name='Addition' value='Toevoeging'/>
- <cd:variable name='Alphabetic' value='Alphabetic'/>
- <cd:variable name='Balloon' value='Ballon'/>
- <cd:variable name='Cap' value='Kap'/>
- <cd:variable name='Capital' value='Kapitaal'/>
- <cd:variable name='Character' value='Letter'/>
- <cd:variable name='Characters' value='Letters'/>
- <cd:variable name='CloseDocument' value='SluitDocument'/>
- <cd:variable name='ExitViewer' value='VerlaatViewer'/>
- <cd:variable name='FirstPage' value='EerstePagina'/>
- <cd:variable name='FitHeight' value='HoogtePassend'/>
- <cd:variable name='FitWidth' value='BreedtePassend'/>
- <cd:variable name='GotoPage' value='GaNaarPagina'/>
- <cd:variable name='Greek' value='Grieks'/>
- <cd:variable name='Help' value='Help'/>
- <cd:variable name='HideField' value='VerbergVeld'/>
- <cd:variable name='HideLayer' value='VerbergLaag'/>
- <cd:variable name='Key' value='Sleutel'/>
- <cd:variable name='LastPage' value='LaatstePagina'/>
- <cd:variable name='LoadForm' value='LaadFormulier'/>
- <cd:variable name='MONTH' value='MAAND'/>
- <cd:variable name='New' value='Nieuw'/>
- <cd:variable name='NextJump' value='VolgendeSprong'/>
- <cd:variable name='NextPage' value='VolgendePagina'/>
- <cd:variable name='Numbers' value='Cijfers'/>
- <cd:variable name='OpenNamedDocument' value='OpenDocumentOpNaam'/>
- <cd:variable name='Ordinal' value='Ordinal'/>
- <cd:variable name='Paragraph' value='Paragraaf'/>
- <cd:variable name='PauseMovie' value='PauzeerFilm'/>
- <cd:variable name='PauseRendering' value='PauzeerRendering'/>
- <cd:variable name='PauseSound' value='PauzeerGeluid'/>
- <cd:variable name='PreviousJump' value='VorigeSprong'/>
- <cd:variable name='PreviousPage' value='VorigePagina'/>
- <cd:variable name='PrintDocument' value='PrintDocument'/>
- <cd:variable name='Query' value='RaadpleegDocument'/>
- <cd:variable name='QueryAgain' value='HerhaalRaadplegen'/>
- <cd:variable name='ResetForm' value='ResetFormulier'/>
- <cd:variable name='ResumeMovie' value='HervatFilm'/>
- <cd:variable name='ResumeRendering' value='HervatRendering'/>
- <cd:variable name='ResumeSound' value='HervatGeluid'/>
- <cd:variable name='Romannumerals' value='Romeins'/>
- <cd:variable name='SaveDocument' value='BewaarDocument'/>
- <cd:variable name='SaveForm' value='BewaarFormulier'/>
- <cd:variable name='SaveNamedDocument' value='BewaarDocumentOpNaam'/>
- <cd:variable name='SearchAgain' value='HerhaalZoeken'/>
- <cd:variable name='SearchDocument' value='DoorzoekDocument'/>
- <cd:variable name='ShowBookmarks' value='ShowBookmarks'/>
- <cd:variable name='ShowField' value='ToonVeld'/>
- <cd:variable name='ShowThumbs' value='ShowThumbs'/>
- <cd:variable name='StartMovie' value='StartFilm'/>
- <cd:variable name='StartRendering' value='StartRendering'/>
- <cd:variable name='StartSound' value='StartGeluid'/>
- <cd:variable name='StopMovie' value='StopFilm'/>
- <cd:variable name='StopRendering' value='StopRendering'/>
- <cd:variable name='StopSound' value='StopGeluid'/>
- <cd:variable name='SubmitForm' value='VerzendFormulier'/>
- <cd:variable name='ToggleLayer' value='WisselLaag'/>
- <cd:variable name='ToggleViewer' value='WisselViewer'/>
- <cd:variable name='URL' value='URL'/>
- <cd:variable name='VideLayer' value='ToonLaag'/>
- <cd:variable name='ViewerHelp' value='ViewerHelp'/>
- <cd:variable name='WEEKDAY' value='WEEKDAG'/>
- <cd:variable name='WORD' value='WOORD'/>
- <cd:variable name='WORDS' value='WOORDEN'/>
- <cd:variable name='Word' value='Woord'/>
- <cd:variable name='Words' value='Woorden'/>
- <cd:variable name='abbreviation' value='afkorting'/>
- <cd:variable name='abbreviations' value='afkortingen'/>
- <cd:variable name='absolute' value='absoluut'/>
- <cd:variable name='action' value='actie'/>
- <cd:variable name='after' value='na'/>
- <cd:variable name='all' value='alles'/>
- <cd:variable name='alphabetic' value='alphabetic'/>
- <cd:variable name='always' value='altijd'/>
- <cd:variable name='anchor' value='anker'/>
- <cd:variable name='and' value='en'/>
- <cd:variable name='answerarea' value='antwoordgebied'/>
- <cd:variable name='appendices' value='bijlagen'/>
- <cd:variable name='appendix' value='bijlage'/>
- <cd:variable name='april' value='april'/>
- <cd:variable name='aside' value='aside'/>
- <cd:variable name='atleftmargin' value='oplinkermarge'/>
- <cd:variable name='atmargin' value='opmarge'/>
- <cd:variable name='atpage' value='oppagina'/>
- <cd:variable name='atrightmargin' value='oprechtermarge'/>
- <cd:variable name='attachment' value='aanhangsel'/>
- <cd:variable name='august' value='augustus'/>
- <cd:variable name='author' value='auteur'/>
- <cd:variable name='auto' value='auto'/>
- <cd:variable name='autointro' value='autointro'/>
- <cd:variable name='autopunctuation' value='autopunctuation'/>
- <cd:variable name='back' value='terug'/>
- <cd:variable name='background' value='achtergrond'/>
- <cd:variable name='backmatter' value='uitleidingen'/>
- <cd:variable name='backpart' value='uitleiding'/>
- <cd:variable name='backspace' value='rugwit'/>
- <cd:variable name='backward' value='achteruit'/>
- <cd:variable name='bbl' value='bbl'/>
- <cd:variable name='before' value='voor'/>
- <cd:variable name='begin' value='begin'/>
- <cd:variable name='bib' value='bib'/>
- <cd:variable name='big' value='groot'/>
- <cd:variable name='bigbodyfont' value='grootkorps'/>
- <cd:variable name='bigger' value='groter'/>
- <cd:variable name='bigpreference' value='grotevoorkeur'/>
- <cd:variable name='blank' value='blanko'/>
- <cd:variable name='block' value='block'/>
- <cd:variable name='blockquote' value='blokcitaat'/>
- <cd:variable name='bodymatter' value='hoofdteksten'/>
- <cd:variable name='bodypart' value='hoofdtekst'/>
- <cd:variable name='bold' value='vet'/>
- <cd:variable name='bolditalic' value='vetitalic'/>
- <cd:variable name='boldslanted' value='vetschuin'/>
- <cd:variable name='bookmark' value='bookmark'/>
- <cd:variable name='both' value='beide'/>
- <cd:variable name='bothtext' value='bothtext'/>
- <cd:variable name='bottom' value='onder'/>
- <cd:variable name='box' value='box'/>
- <cd:variable name='brief' value='brief'/>
- <cd:variable name='broad' value='ruim'/>
- <cd:variable name='buffer' value='buffer'/>
- <cd:variable name='by' value='per'/>
- <cd:variable name='calligraphic' value='calligrafie'/>
- <cd:variable name='camel' value='camel'/>
- <cd:variable name='cap' value='kap'/>
- <cd:variable name='capital' value='kapitaal'/>
- <cd:variable name='category' value='category'/>
- <cd:variable name='cd:character' value='cd:character'/>
- <cd:variable name='cd:font' value='cd:font'/>
- <cd:variable name='center' value='centreer'/>
- <cd:variable name='centerlast' value='centerlast'/>
- <cd:variable name='chapter' value='hoofdstuk'/>
- <cd:variable name='character' value='letter'/>
- <cd:variable name='characters' value='letters'/>
- <cd:variable name='chemical' value='chemical'/>
- <cd:variable name='chemicals' value='chemicals'/>
- <cd:variable name='chemistry' value='chemie'/>
- <cd:variable name='cite' value='cite'/>
- <cd:variable name='closed' value='gesloten'/>
- <cd:variable name='color' value='kleur'/>
- <cd:variable name='column' value='kolom'/>
- <cd:variable name='columns' value='kolommen'/>
- <cd:variable name='combination' value='combinatie'/>
- <cd:variable name='command' value='commando'/>
- <cd:variable name='commands' value='commandos'/>
- <cd:variable name='comment' value='commentaar'/>
- <cd:variable name='component' value='onderdeel'/>
- <cd:variable name='compressseparator' value='compressseparator'/>
- <cd:variable name='compressstopper' value='compressstopper'/>
- <cd:variable name='concept' value='concept'/>
- <cd:variable name='construction' value='construction'/>
- <cd:variable name='content' value='inhoud'/>
- <cd:variable name='contents' value='inhouden'/>
- <cd:variable name='continue' value='verder'/>
- <cd:variable name='continued' value='vervolgd'/>
- <cd:variable name='controls' value='sturing'/>
- <cd:variable name='conversion' value='conversie'/>
- <cd:variable name='current' value='huidige'/>
- <cd:variable name='cutspace' value='snijwit'/>
- <cd:variable name='dataset' value='dataset'/>
- <cd:variable name='date' value='datum'/>
- <cd:variable name='day' value='dag'/>
- <cd:variable name='december' value='december'/>
- <cd:variable name='default' value='default'/>
- <cd:variable name='depth' value='diepte'/>
- <cd:variable name='description' value='doordefinitie'/>
- <cd:variable name='disable' value='blokkeer'/>
- <cd:variable name='display' value='scherm'/>
- <cd:variable name='dot' value='punt'/>
- <cd:variable name='doublesided' value='dubbelzijdig'/>
- <cd:variable name='down' value='omlaag'/>
- <cd:variable name='each' value='elk'/>
- <cd:variable name='edge' value='rand'/>
- <cd:variable name='effective' value='effectief'/>
- <cd:variable name='eight' value='acht'/>
- <cd:variable name='embed' value='sluitin'/>
- <cd:variable name='empty' value='leeg'/>
- <cd:variable name='enable' value='enable'/>
- <cd:variable name='end' value='eind'/>
- <cd:variable name='endnote' value='eindnoot'/>
- <cd:variable name='enumeration' value='doornummering'/>
- <cd:variable name='environment' value='omgeving'/>
- <cd:variable name='even' value='even'/>
- <cd:variable name='export' value='export'/>
- <cd:variable name='external' value='extern'/>
- <cd:variable name='extremestretch' value='extremestretch'/>
- <cd:variable name='fact' value='gegeven'/>
- <cd:variable name='fallback' value='fallback'/>
- <cd:variable name='february' value='februari'/>
- <cd:variable name='field' value='veld'/>
- <cd:variable name='figure' value='figuur'/>
- <cd:variable name='figures' value='figuren'/>
- <cd:variable name='file' value='file'/>
- <cd:variable name='final' value='definitief'/>
- <cd:variable name='first' value='eerste'/>
- <cd:variable name='firstcolumn' value='eerstekolom'/>
- <cd:variable name='firstpage' value='eerstepagina'/>
- <cd:variable name='firstsubpage' value='eerstesubpagina'/>
- <cd:variable name='fit' value='passend'/>
- <cd:variable name='five' value='vijf'/>
- <cd:variable name='fix' value='herstel'/>
- <cd:variable name='fixed' value='vast'/>
- <cd:variable name='flexible' value='flexibel'/>
- <cd:variable name='float' value='blok'/>
- <cd:variable name='flushinner' value='lijnbinnen'/>
- <cd:variable name='flushleft' value='lijnlinks'/>
- <cd:variable name='flushouter' value='lijnbuiten'/>
- <cd:variable name='flushright' value='lijnrechts'/>
- <cd:variable name='followingpage' value='opvolgendepagina'/>
- <cd:variable name='font' value='font'/>
- <cd:variable name='footer' value='voet'/>
- <cd:variable name='footnote' value='voetnoot'/>
- <cd:variable name='force' value='forceer'/>
- <cd:variable name='foreground' value='voorgrond'/>
- <cd:variable name='formula' value='formule'/>
- <cd:variable name='formulas' value='formules'/>
- <cd:variable name='forward' value='vooruit'/>
- <cd:variable name='four' value='vier'/>
- <cd:variable name='fractions' value='fractions'/>
- <cd:variable name='frame' value='kader'/>
- <cd:variable name='framedtext' value='kadertekst'/>
- <cd:variable name='friday' value='vrijdag'/>
- <cd:variable name='frontmatter' value='inleidingen'/>
- <cd:variable name='frontpart' value='inleiding'/>
- <cd:variable name='fullhz' value='fullenhz'/>
- <cd:variable name='global' value='globaal'/>
- <cd:variable name='graphic' value='grafiek'/>
- <cd:variable name='graphics' value='grafieken'/>
- <cd:variable name='gray' value='grijs'/>
- <cd:variable name='greek' value='grieks'/>
- <cd:variable name='grid' value='grid'/>
- <cd:variable name='halfline' value='halveregel'/>
- <cd:variable name='handwritten' value='handschrift'/>
- <cd:variable name='hang' value='hang'/>
- <cd:variable name='hanging' value='hangend'/>
- <cd:variable name='hangingboth' value='beidehangend'/>
- <cd:variable name='head' value='kop'/>
- <cd:variable name='header' value='hoofd'/>
- <cd:variable name='headintext' value='kopintekst'/>
- <cd:variable name='height' value='hoogte'/>
- <cd:variable name='helptext' value='helptekst'/>
- <cd:variable name='hencefore' value='hierboven'/>
- <cd:variable name='here' value='hier'/>
- <cd:variable name='hereafter' value='hieronder'/>
- <cd:variable name='hidden' value='verborgen'/>
- <cd:variable name='hiddenbar' value='hiddenbar'/>
- <cd:variable name='hiding' value='verbergen'/>
- <cd:variable name='high' value='hoog'/>
- <cd:variable name='horizontal' value='horizontaal'/>
- <cd:variable name='hyphenated' value='afgebroken'/>
- <cd:variable name='hz' value='hz'/>
- <cd:variable name='inbetween' value='tussen'/>
- <cd:variable name='index' value='index'/>
- <cd:variable name='indices' value='indices'/>
- <cd:variable name='inherit' value='erf'/>
- <cd:variable name='ininner' value='inbinnen'/>
- <cd:variable name='ininneredge' value='ininneredge'/>
- <cd:variable name='ininnermargin' value='ininnermargin'/>
- <cd:variable name='inleft' value='inlinker'/>
- <cd:variable name='inleftedge' value='inlinkerrand'/>
- <cd:variable name='inleftmargin' value='inlinkermarge'/>
- <cd:variable name='inline' value='inline'/>
- <cd:variable name='inmargin' value='inmarge'/>
- <cd:variable name='inner' value='binnen'/>
- <cd:variable name='inneredge' value='binnenrand'/>
- <cd:variable name='innermargin' value='binnenmarge'/>
- <cd:variable name='inother' value='inandere'/>
- <cd:variable name='inouter' value='inbuiten'/>
- <cd:variable name='inouteredge' value='inouteredge'/>
- <cd:variable name='inoutermargin' value='inoutermargin'/>
- <cd:variable name='inright' value='inrechter'/>
- <cd:variable name='inrightedge' value='inrechterrand'/>
- <cd:variable name='inrightmargin' value='inrechtermarge'/>
- <cd:variable name='integral' value='integral'/>
- <cd:variable name='interaction' value='interactie'/>
- <cd:variable name='interactionmenu' value='interactiemenu'/>
- <cd:variable name='interactive' value='interactive'/>
- <cd:variable name='intermezzi' value='intermezzos'/>
- <cd:variable name='intermezzo' value='intermezzo'/>
- <cd:variable name='intext' value='intekst'/>
- <cd:variable name='intro' value='intro'/>
- <cd:variable name='invertedshort' value='invertedshort'/>
- <cd:variable name='italic' value='italic'/>
- <cd:variable name='italicbold' value='italicvet'/>
- <cd:variable name='item' value='som'/>
- <cd:variable name='itemize' value='opsomming'/>
- <cd:variable name='its' value='its'/>
- <cd:variable name='january' value='januari'/>
- <cd:variable name='joinedup' value='aansluitend'/>
- <cd:variable name='july' value='juli'/>
- <cd:variable name='june' value='juni'/>
- <cd:variable name='keep' value='handhaaf'/>
- <cd:variable name='kerncharacters' value='kerncharacters'/>
- <cd:variable name='knockout' value='knockout'/>
- <cd:variable name='label' value='label'/>
- <cd:variable name='landscape' value='liggend'/>
- <cd:variable name='last' value='laatste'/>
- <cd:variable name='lastcolumn' value='laatstekolom'/>
- <cd:variable name='lastpage' value='laatstepagina'/>
- <cd:variable name='lastpagenumber' value='laatstepaginanummer'/>
- <cd:variable name='lastsubpage' value='laatstesubpagina'/>
- <cd:variable name='layer' value='layer'/>
- <cd:variable name='left' value='links'/>
- <cd:variable name='leftedge' value='linkerrand'/>
- <cd:variable name='lefthanging' value='linkshangend'/>
- <cd:variable name='leftmargin' value='linkermarge'/>
- <cd:variable name='leftpage' value='linkerpagina'/>
- <cd:variable name='lefttoright' value='lefttoright'/>
- <cd:variable name='legend' value='legenda'/>
- <cd:variable name='less' value='minder'/>
- <cd:variable name='lesshyphenation' value='lesshyphenation'/>
- <cd:variable name='letterspacing' value='letterspacing'/>
- <cd:variable name='line' value='regel'/>
- <cd:variable name='linenote' value='regelnoot'/>
- <cd:variable name='lines' value='regels'/>
- <cd:variable name='linked' value='linked'/>
- <cd:variable name='list' value='lijst'/>
- <cd:variable name='local' value='lokaal'/>
- <cd:variable name='localenvironment' value='deelomgeving'/>
- <cd:variable name='logo' value='logo'/>
- <cd:variable name='logos' value='logos'/>
- <cd:variable name='lohi' value='laho'/>
- <cd:variable name='long' value='long'/>
- <cd:variable name='loose' value='los'/>
- <cd:variable name='low' value='laag'/>
- <cd:variable name='ls' value='ls'/>
- <cd:variable name='makeup' value='opmaak'/>
- <cd:variable name='mar' value='mar'/>
- <cd:variable name='march' value='maart'/>
- <cd:variable name='margin' value='marge'/>
- <cd:variable name='marginedge' value='kantlijn'/>
- <cd:variable name='margintext' value='margetekst'/>
- <cd:variable name='margintitle' value='margetitel'/>
- <cd:variable name='marking' value='markering'/>
- <cd:variable name='math' value='math'/>
- <cd:variable name='mathalignment' value='wiskundeuitlijnen'/>
- <cd:variable name='mathcases' value='mathcases'/>
- <cd:variable name='mathematics' value='wiskunde'/>
- <cd:variable name='mathmatrix' value='wiskundematrix'/>
- <cd:variable name='max' value='max'/>
- <cd:variable name='maxdepth' value='maxdiepte'/>
- <cd:variable name='maxheight' value='maxhoogte'/>
- <cd:variable name='maxwidth' value='maxbreedte'/>
- <cd:variable name='may' value='mei'/>
- <cd:variable name='mediaeval' value='mediaeval'/>
- <cd:variable name='medium' value='middel'/>
- <cd:variable name='middle' value='midden'/>
- <cd:variable name='min' value='min'/>
- <cd:variable name='mindepth' value='mindiepte'/>
- <cd:variable name='minheight' value='minhoogte'/>
- <cd:variable name='minwidth' value='minbreedte'/>
- <cd:variable name='mirrored' value='gespiegeld'/>
- <cd:variable name='mixed' value='mixed'/>
- <cd:variable name='monday' value='maandag'/>
- <cd:variable name='mono' value='mono'/>
- <cd:variable name='monobold' value='monovet'/>
- <cd:variable name='mononormal' value='mononormal'/>
- <cd:variable name='month' value='maand'/>
- <cd:variable name='more' value='meer'/>
- <cd:variable name='morehyphenation' value='morehyphenation'/>
- <cd:variable name='name' value='naam'/>
- <cd:variable name='narrow' value='smal'/>
- <cd:variable name='negative' value='negatief'/>
- <cd:variable name='never' value='nooit'/>
- <cd:variable name='new' value='nieuw'/>
- <cd:variable name='next' value='volgende'/>
- <cd:variable name='nextevenpage' value='volgendeevenpagina'/>
- <cd:variable name='nextoddpage' value='volgendeonevenpagina'/>
- <cd:variable name='nextpage' value='volgendepagina'/>
- <cd:variable name='nextsubpage' value='volgendesubpagina'/>
- <cd:variable name='nine' value='negen'/>
- <cd:variable name='no' value='nee'/>
- <cd:variable name='nocheck' value='geencontrole'/>
- <cd:variable name='nodepth' value='nodepth'/>
- <cd:variable name='nofit' value='nietpassend'/>
- <cd:variable name='nogrid' value='geengrid'/>
- <cd:variable name='noheight' value='noheight'/>
- <cd:variable name='nohz' value='geenhz'/>
- <cd:variable name='noline' value='noline'/>
- <cd:variable name='nomarking' value='geenmarkering'/>
- <cd:variable name='nomenubar' value='geenmenubalk'/>
- <cd:variable name='none' value='geen'/>
- <cd:variable name='nonumber' value='geennummer'/>
- <cd:variable name='norepeat' value='norepeat'/>
- <cd:variable name='normal' value='normaal'/>
- <cd:variable name='normalshort' value='normalshort'/>
- <cd:variable name='nospacing' value='geenspatiering'/>
- <cd:variable name='nostopper' value='geenafsluiter'/>
- <cd:variable name='not' value='niet'/>
- <cd:variable name='notation' value='notation'/>
- <cd:variable name='note' value='note'/>
- <cd:variable name='nothanging' value='niethangend'/>
- <cd:variable name='nothyphenated' value='nietafgebroken'/>
- <cd:variable name='notjoinedup' value='nietaansluitend'/>
- <cd:variable name='november' value='november'/>
- <cd:variable name='nowhere' value='nergens'/>
- <cd:variable name='nowhite' value='geenwit'/>
- <cd:variable name='number' value='nummer'/>
- <cd:variable name='numbers' value='cijfers'/>
- <cd:variable name='october' value='oktober'/>
- <cd:variable name='odd' value='oneven'/>
- <cd:variable name='off' value='uit'/>
- <cd:variable name='offset' value='offset'/>
- <cd:variable name='old' value='oud'/>
- <cd:variable name='oldstyle' value='oldstyle'/>
- <cd:variable name='on' value='aan'/>
- <cd:variable name='one' value='een'/>
- <cd:variable name='opposite' value='naast'/>
- <cd:variable name='ordinal' value='ordinal'/>
- <cd:variable name='outer' value='buiten'/>
- <cd:variable name='outeredge' value='buitenrand'/>
- <cd:variable name='outermargin' value='buitenmarge'/>
- <cd:variable name='overbar' value='overstreep'/>
- <cd:variable name='overbars' value='overstrepen'/>
- <cd:variable name='overlay' value='overlay'/>
- <cd:variable name='overprint' value='overprint'/>
- <cd:variable name='overstrike' value='doorstreep'/>
- <cd:variable name='overstrikes' value='doorstrepen'/>
- <cd:variable name='packed' value='opelkaar'/>
- <cd:variable name='page' value='pagina'/>
- <cd:variable name='pagecomment' value='paginacommentaar'/>
- <cd:variable name='pagenumber' value='paginanummer'/>
- <cd:variable name='paper' value='papier'/>
- <cd:variable name='paragraph' value='alinea'/>
- <cd:variable name='part' value='deel'/>
- <cd:variable name='positive' value='positief'/>
- <cd:variable name='postponing' value='uitstellen'/>
- <cd:variable name='postscript' value='postscript'/>
- <cd:variable name='precedingpage' value='voorafgaandepagina'/>
- <cd:variable name='preference' value='voorkeur'/>
- <cd:variable name='preview' value='preview'/>
- <cd:variable name='previous' value='vorige'/>
- <cd:variable name='previousevenpage' value='vorigeevenpagina'/>
- <cd:variable name='previousoddpage' value='vorigeonevenpagina'/>
- <cd:variable name='previouspage' value='vorigepagina'/>
- <cd:variable name='previoussubpage' value='vorigesubpagina'/>
- <cd:variable name='print' value='print'/>
- <cd:variable name='printable' value='printbaar'/>
- <cd:variable name='process' value='proces'/>
- <cd:variable name='product' value='produkt'/>
- <cd:variable name='program' value='programma'/>
- <cd:variable name='project' value='project'/>
- <cd:variable name='protected' value='beschermd'/>
- <cd:variable name='quadruple' value='viertal'/>
- <cd:variable name='quarterline' value='kwartregel'/>
- <cd:variable name='quotation' value='citaat'/>
- <cd:variable name='quote' value='citeer'/>
- <cd:variable name='ran' value='ran'/>
- <cd:variable name='random' value='willekeurig'/>
- <cd:variable name='readonly' value='alleenleesbaar'/>
- <cd:variable name='rectangular' value='recht'/>
- <cd:variable name='reference' value='referentie'/>
- <cd:variable name='referral' value='kenmerk'/>
- <cd:variable name='region' value='gebied'/>
- <cd:variable name='register' value='register'/>
- <cd:variable name='regular' value='regular'/>
- <cd:variable name='relative' value='relatief'/>
- <cd:variable name='repeat' value='herhaal'/>
- <cd:variable name='required' value='verplicht'/>
- <cd:variable name='reset' value='reset'/>
- <cd:variable name='reverse' value='omgekeerd'/>
- <cd:variable name='right' value='rechts'/>
- <cd:variable name='rightedge' value='rechterrand'/>
- <cd:variable name='righthanging' value='rechtshangend'/>
- <cd:variable name='rightmargin' value='rechtermarge'/>
- <cd:variable name='rightpage' value='rechterpagina'/>
- <cd:variable name='righttoleft' value='righttoleft'/>
- <cd:variable name='roman' value='romaan'/>
- <cd:variable name='romannumerals' value='romeins'/>
- <cd:variable name='rotate' value='roteer'/>
- <cd:variable name='rotated' value='geroteerd'/>
- <cd:variable name='round' value='rond'/>
- <cd:variable name='row' value='rij'/>
- <cd:variable name='rule' value='lijn'/>
- <cd:variable name='samepage' value='zelfdepagina'/>
- <cd:variable name='sans' value='sans'/>
- <cd:variable name='sansbold' value='sansvet'/>
- <cd:variable name='sansnormal' value='sansnormal'/>
- <cd:variable name='sansserif' value='schreefloos'/>
- <cd:variable name='saturday' value='zaterdag'/>
- <cd:variable name='screen' value='raster'/>
- <cd:variable name='section' value='paragraaf'/>
- <cd:variable name='sectionblockenvironment' value='sectieblokomgeving'/>
- <cd:variable name='sectionnumber' value='sectienummer'/>
- <cd:variable name='see' value='zie'/>
- <cd:variable name='selectfont' value='selectfont'/>
- <cd:variable name='separator' value='scheider'/>
- <cd:variable name='september' value='september'/>
- <cd:variable name='serif' value='serif'/>
- <cd:variable name='serifbold' value='serifbold'/>
- <cd:variable name='serifnormal' value='serifnormal'/>
- <cd:variable name='serried' value='aanelkaar'/>
- <cd:variable name='setups' value='setups'/>
- <cd:variable name='seven' value='zeven'/>
- <cd:variable name='sheet' value='sheet'/>
- <cd:variable name='shiftdown' value='shiftdown'/>
- <cd:variable name='shiftup' value='shiftup'/>
- <cd:variable name='short' value='kort'/>
- <cd:variable name='simplefonts' value='simplefonts'/>
- <cd:variable name='simplelist' value='simplelist'/>
- <cd:variable name='singlesided' value='enkelzijdig'/>
- <cd:variable name='six' value='zes'/>
- <cd:variable name='slanted' value='schuin'/>
- <cd:variable name='slantedbold' value='schuinvet'/>
- <cd:variable name='small' value='klein'/>
- <cd:variable name='smallbodyfont' value='kleinkorps'/>
- <cd:variable name='smallbold' value='kleinvet'/>
- <cd:variable name='smallbolditalic' value='kleinvetitalic'/>
- <cd:variable name='smallboldslanted' value='kleinvetschuin'/>
- <cd:variable name='smallcaps' value='smallcaps'/>
- <cd:variable name='smaller' value='kleiner'/>
- <cd:variable name='smallitalic' value='kleinitalic'/>
- <cd:variable name='smallitalicbold' value='kleinitalicvet'/>
- <cd:variable name='smallnormal' value='kleinnormaal'/>
- <cd:variable name='smallslanted' value='kleinschuin'/>
- <cd:variable name='smallslantedbold' value='kleinschuinvet'/>
- <cd:variable name='smalltype' value='kleintype'/>
- <cd:variable name='somewhere' value='ergens'/>
- <cd:variable name='sorted' value='gesorteerd'/>
- <cd:variable name='sorting' value='sorting'/>
- <cd:variable name='space' value='spatie'/>
- <cd:variable name='spacing' value='spatiering'/>
- <cd:variable name='speech' value='spraak'/>
- <cd:variable name='split' value='splitsen'/>
- <cd:variable name='spot' value='spot'/>
- <cd:variable name='standard' value='standaard'/>
- <cd:variable name='start' value='start'/>
- <cd:variable name='starter' value='opener'/>
- <cd:variable name='sticker' value='sticker'/>
- <cd:variable name='stop' value='stop'/>
- <cd:variable name='stopper' value='afsluiter'/>
- <cd:variable name='stretch' value='rek'/>
- <cd:variable name='stretched' value='stretched'/>
- <cd:variable name='strict' value='streng'/>
- <cd:variable name='strong' value='sterk'/>
- <cd:variable name='strut' value='strut'/>
- <cd:variable name='sub' value='sub'/>
- <cd:variable name='subbackward' value='subachteruit'/>
- <cd:variable name='subformula' value='subformule'/>
- <cd:variable name='subforward' value='subvooruit'/>
- <cd:variable name='subject' value='onderwerp'/>
- <cd:variable name='subpage' value='subpagina'/>
- <cd:variable name='subs' value='subs'/>
- <cd:variable name='subsection' value='subparagraaf'/>
- <cd:variable name='subsubject' value='subonderwerp'/>
- <cd:variable name='subsubsection' value='subsubparagraaf'/>
- <cd:variable name='subsubsubject' value='subsubonderwerp'/>
- <cd:variable name='subsubsubsection' value='subsubsubparagraaf'/>
- <cd:variable name='subsubsubsubject' value='subsubsubonderwerp'/>
- <cd:variable name='subsubsubsubsection' value='subsubsubsubparagraaf'/>
- <cd:variable name='subsubsubsubsubject' value='subsubsubsubonderwerp'/>
- <cd:variable name='subsubsubsubsubsection' value='subsubsubsubsubparagraaf'/>
- <cd:variable name='subsubsubsubsubsubject' value='subsubsubsubsubonderwerp'/>
- <cd:variable name='subsubsubsubsubsubsection' value='subsubsubsubsubsubparagraaf'/>
- <cd:variable name='subsubsubsubsubsubsubject' value='subsubsubsubsubsubonderwerp'/>
- <cd:variable name='subsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubparagraaf'/>
- <cd:variable name='subsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubonderwerp'/>
- <cd:variable name='subsubsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubsubparagraaf'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubsubonderwerp'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubsubsubparagraaf'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubsubsubonderwerp'/>
- <cd:variable name='sunday' value='zondag'/>
- <cd:variable name='support' value='support'/>
- <cd:variable name='sym' value='sym'/>
- <cd:variable name='symbol' value='symbool'/>
- <cd:variable name='synchronize' value='synchroniseer'/>
- <cd:variable name='synonym' value='synonym'/>
- <cd:variable name='system' value='systeem'/>
- <cd:variable name='table' value='tabel'/>
- <cd:variable name='tablehead' value='tabelkop'/>
- <cd:variable name='tables' value='tabellen'/>
- <cd:variable name='tabletail' value='tabelstaart'/>
- <cd:variable name='tabulate' value='tabulatie'/>
- <cd:variable name='tabulatehead' value='tabulatiekop'/>
- <cd:variable name='tabulatetail' value='tabulatiestaart'/>
- <cd:variable name='tall' value='lang'/>
- <cd:variable name='teletype' value='teletype'/>
- <cd:variable name='temporary' value='voorlopig'/>
- <cd:variable name='test' value='test'/>
- <cd:variable name='text' value='tekst'/>
- <cd:variable name='textnote' value='tekstnoot'/>
- <cd:variable name='three' value='drie'/>
- <cd:variable name='thursday' value='donderdag'/>
- <cd:variable name='tight' value='krap'/>
- <cd:variable name='title' value='titel'/>
- <cd:variable name='toggle' value='toggle'/>
- <cd:variable name='tolerant' value='soepel'/>
- <cd:variable name='top' value='boven'/>
- <cd:variable name='tuesday' value='dinsdag'/>
- <cd:variable name='two' value='twee'/>
- <cd:variable name='txt' value='txt'/>
- <cd:variable name='type' value='type'/>
- <cd:variable name='typing' value='typen'/>
- <cd:variable name='unavailable' value='nietbeschikbaar'/>
- <cd:variable name='underbar' value='onderstreep'/>
- <cd:variable name='underbars' value='onderstrepen'/>
- <cd:variable name='understrike' value='understrike'/>
- <cd:variable name='understrikes' value='understrikes'/>
- <cd:variable name='unframed' value='unframed'/>
- <cd:variable name='unicode' value='unicode'/>
- <cd:variable name='unit' value='eenheid'/>
- <cd:variable name='units' value='eenheden'/>
- <cd:variable name='unknown' value='onbekend'/>
- <cd:variable name='unpacked' value='vanelkaar'/>
- <cd:variable name='up' value='omhoog'/>
- <cd:variable name='url' value='url'/>
- <cd:variable name='used' value='gebruikt'/>
- <cd:variable name='value' value='waarde'/>
- <cd:variable name='vertical' value='vertikaal'/>
- <cd:variable name='very' value='zeer'/>
- <cd:variable name='verystrict' value='zeerstreng'/>
- <cd:variable name='verytolerant' value='zeersoepel'/>
- <cd:variable name='vfenced' value='vfenced'/>
- <cd:variable name='vulgarfraction' value='vulgarfraction'/>
- <cd:variable name='weak' value='zwak'/>
- <cd:variable name='wednesday' value='woensdag'/>
- <cd:variable name='week' value='week'/>
- <cd:variable name='weekday' value='weekdag'/>
- <cd:variable name='white' value='wit'/>
- <cd:variable name='wide' value='breed'/>
- <cd:variable name='width' value='breedte'/>
- <cd:variable name='word' value='woord'/>
- <cd:variable name='words' value='words'/>
- <cd:variable name='xml' value='xml'/>
- <cd:variable name='year' value='jaar'/>
- <cd:variable name='yes' value='ja'/>
- </cd:variables>
-
- <!-- definitions for interface constants for language nl -->
-
- <cd:constants>
- <cd:constant name='action' value='actie'/>
- <cd:constant name='address' value='adres'/>
- <cd:constant name='after' value='na'/>
- <cd:constant name='afterhead' value='kopna'/>
- <cd:constant name='afterkey' value='natoets'/>
- <cd:constant name='aftersection' value='nasectie'/>
- <cd:constant name='align' value='uitlijnen'/>
- <cd:constant name='alignbottom' value='alignbottom'/>
- <cd:constant name='aligncharacter' value='karakteruitlijnen'/>
- <cd:constant name='alignmentcharacter' value='uitlijnkarakter'/>
- <cd:constant name='alignmentleftsample' value='alignmentleftsample'/>
- <cd:constant name='alignmentleftwidth' value='alignmentleftwidth'/>
- <cd:constant name='alignmentrightsample' value='alignmentrightsample'/>
- <cd:constant name='alignmentrightwidth' value='alignmentrightwidth'/>
- <cd:constant name='alignsymbol' value='alignsymbol'/>
- <cd:constant name='aligntitle' value='titeluitlijnen'/>
- <cd:constant name='alternative' value='variant'/>
- <cd:constant name='anchor' value='anker'/>
- <cd:constant name='anchoring' value='verankering'/>
- <cd:constant name='andtext' value='andtext'/>
- <cd:constant name='apa' value='apa'/>
- <cd:constant name='arguments' value='argumenten'/>
- <cd:constant name='arrow' value='pijl'/>
- <cd:constant name='artauthor' value='artauthor'/>
- <cd:constant name='artauthoretaldisplay' value='artauthoretaldisplay'/>
- <cd:constant name='artauthoretallimit' value='artauthoretallimit'/>
- <cd:constant name='artauthoretaltext' value='artauthoretaltext'/>
- <cd:constant name='artoffset' value='artoffset'/>
- <cd:constant name='at' value='op'/>
- <cd:constant name='author' value='auteur'/>
- <cd:constant name='authorconversion' value='authorconversion'/>
- <cd:constant name='authoretaldisplay' value='authoretaldisplay'/>
- <cd:constant name='authoretallimit' value='authoretallimit'/>
- <cd:constant name='authoretaltext' value='authoretaltext'/>
- <cd:constant name='auto' value='auto'/>
- <cd:constant name='autocase' value='autocase'/>
- <cd:constant name='autofile' value='autofile'/>
- <cd:constant name='autofocus' value='autofocus'/>
- <cd:constant name='autohang' value='autohang'/>
- <cd:constant name='autostrut' value='autostrut'/>
- <cd:constant name='autowidth' value='autobreedte'/>
- <cd:constant name='availableheight' value='beschikbarehoogte'/>
- <cd:constant name='availablewidth' value='beschikbarebreedte'/>
- <cd:constant name='axis' value='assenstelsel'/>
- <cd:constant name='background' value='achtergrond'/>
- <cd:constant name='backgroundcolor' value='achtergrondkleur'/>
- <cd:constant name='backgroundcorner' value='achtergrondhoek'/>
- <cd:constant name='backgrounddepth' value='achtergronddiepte'/>
- <cd:constant name='backgroundoffset' value='achtergrondoffset'/>
- <cd:constant name='backgroundradius' value='achtergrondstraal'/>
- <cd:constant name='backgroundscreen' value='achtergrondraster'/>
- <cd:constant name='backreference' value='terugreferentie'/>
- <cd:constant name='backspace' value='rugwit'/>
- <cd:constant name='balance' value='balanceren'/>
- <cd:constant name='before' value='voor'/>
- <cd:constant name='beforehead' value='kopvoor'/>
- <cd:constant name='beforesection' value='voorsectie'/>
- <cd:constant name='bet' value='bet'/>
- <cd:constant name='bidi' value='bidi'/>
- <cd:constant name='big' value='groot'/>
- <cd:constant name='blank' value='blanko'/>
- <cd:constant name='bleedoffset' value='bleedoffset'/>
- <cd:constant name='blockway' value='blokwijze'/>
- <cd:constant name='bodyfont' value='korps'/>
- <cd:constant name='boffset' value='boffset'/>
- <cd:constant name='boldfeatures' value='boldfeatures'/>
- <cd:constant name='boldfont' value='boldfont'/>
- <cd:constant name='bolditalicfeatures' value='bolditalicfeatures'/>
- <cd:constant name='bolditalicfont' value='bolditalicfont'/>
- <cd:constant name='boldslantedfeatures' value='boldslantedfeatures'/>
- <cd:constant name='boldslantedfont' value='boldslantedfont'/>
- <cd:constant name='bookmark' value='bookmark'/>
- <cd:constant name='bottom' value='onder'/>
- <cd:constant name='bottomafter' value='bottomafter'/>
- <cd:constant name='bottombefore' value='bottombefore'/>
- <cd:constant name='bottomcommand' value='ondercommando'/>
- <cd:constant name='bottomdistance' value='onderafstand'/>
- <cd:constant name='bottomframe' value='onderkader'/>
- <cd:constant name='bottomoffset' value='onderoffset'/>
- <cd:constant name='bottomspace' value='bodemwit'/>
- <cd:constant name='bottomstate' value='onderstatus'/>
- <cd:constant name='break' value='break'/>
- <cd:constant name='buffer' value='buffer'/>
- <cd:constant name='cache' value='cache'/>
- <cd:constant name='calculate' value='bereken'/>
- <cd:constant name='category' value='categorie'/>
- <cd:constant name='ccommand' value='ccommando'/>
- <cd:constant name='character' value='character'/>
- <cd:constant name='characters' value='characters'/>
- <cd:constant name='check' value='check'/>
- <cd:constant name='click' value='klik'/>
- <cd:constant name='clickin' value='klikin'/>
- <cd:constant name='clickout' value='klikuit'/>
- <cd:constant name='clipoffset' value='clipoffset'/>
- <cd:constant name='closeaction' value='sluitactie'/>
- <cd:constant name='closecommand' value='sluitcommando'/>
- <cd:constant name='closepage' value='sluitpagina'/>
- <cd:constant name='closepageaction' value='sluitpaginaactie'/>
- <cd:constant name='closesymbol' value='sluitsymbool'/>
- <cd:constant name='color' value='kleur'/>
- <cd:constant name='column' value='kolom'/>
- <cd:constant name='columndistance' value='kolomafstand'/>
- <cd:constant name='columns' value='kolommen'/>
- <cd:constant name='comma' value='comma'/>
- <cd:constant name='command' value='commando'/>
- <cd:constant name='commandafter' value='nacommando'/>
- <cd:constant name='commandbefore' value='voorcommando'/>
- <cd:constant name='commands' value='commandos'/>
- <cd:constant name='comment' value='comment'/>
- <cd:constant name='commentchar' value='commentchar'/>
- <cd:constant name='commentoffset' value='commentoffset'/>
- <cd:constant name='compact' value='compact'/>
- <cd:constant name='component' value='component'/>
- <cd:constant name='compoundhyphen' value='koppelteken'/>
- <cd:constant name='compress' value='comprimeren'/>
- <cd:constant name='compressdistance' value='compressdistance'/>
- <cd:constant name='compressmethod' value='compressmethod'/>
- <cd:constant name='compressseparator' value='compressseparator'/>
- <cd:constant name='compressstopper' value='compressstopper'/>
- <cd:constant name='concerns' value='betreft'/>
- <cd:constant name='connector' value='connector'/>
- <cd:constant name='continue' value='doorgaan'/>
- <cd:constant name='contrastcolor' value='contrastkleur'/>
- <cd:constant name='controls' value='sturing'/>
- <cd:constant name='conversion' value='conversie'/>
- <cd:constant name='convertfile' value='converteerfile'/>
- <cd:constant name='copies' value='kopieen'/>
- <cd:constant name='corner' value='hoek'/>
- <cd:constant name='coupling' value='koppeling'/>
- <cd:constant name='couplingway' value='koppelwijze'/>
- <cd:constant name='criterium' value='criterium'/>
- <cd:constant name='cropoffset' value='cropoffset'/>
- <cd:constant name='crossreference' value='crossreference'/>
- <cd:constant name='cssfile' value='cssfile'/>
- <cd:constant name='current' value='huidige'/>
- <cd:constant name='cutspace' value='snijwit'/>
- <cd:constant name='dash' value='streep'/>
- <cd:constant name='dat' value='dat'/>
- <cd:constant name='database' value='database'/>
- <cd:constant name='dataset' value='dataset'/>
- <cd:constant name='date' value='datum'/>
- <cd:constant name='deepnumbercommand' value='diepnummercommando'/>
- <cd:constant name='deeptextcommand' value='dieptekstcommando'/>
- <cd:constant name='default' value='default'/>
- <cd:constant name='define' value='definieer'/>
- <cd:constant name='delay' value='wachttijd'/>
- <cd:constant name='depth' value='diepte'/>
- <cd:constant name='depthcorrection' value='dieptecorrectie'/>
- <cd:constant name='direction' value='richting'/>
- <cd:constant name='directory' value='directory'/>
- <cd:constant name='display' value='scherm'/>
- <cd:constant name='displaythreshold' value='displaythreshold'/>
- <cd:constant name='distance' value='afstand'/>
- <cd:constant name='domain' value='domain'/>
- <cd:constant name='dot' value='punt'/>
- <cd:constant name='doublesided' value='dubbelzijdig'/>
- <cd:constant name='down' value='down'/>
- <cd:constant name='dummy' value='dummy'/>
- <cd:constant name='dx' value='dx'/>
- <cd:constant name='dy' value='dy'/>
- <cd:constant name='edge' value='rand'/>
- <cd:constant name='edgedistance' value='randafstand'/>
- <cd:constant name='editor' value='editor'/>
- <cd:constant name='editoretaldisplay' value='editoretaldisplay'/>
- <cd:constant name='editoretallimit' value='editoretallimit'/>
- <cd:constant name='editoretaltext' value='editoretaltext'/>
- <cd:constant name='empty' value='leeg'/>
- <cd:constant name='entities' value='entities'/>
- <cd:constant name='entries' value='ingangen'/>
- <cd:constant name='equalheight' value='equalheight'/>
- <cd:constant name='equalwidth' value='equalwidth'/>
- <cd:constant name='escape' value='escape'/>
- <cd:constant name='etaldisplay' value='etaldisplay'/>
- <cd:constant name='etallimit' value='etallimit'/>
- <cd:constant name='etaloption' value='etaloption'/>
- <cd:constant name='etaltext' value='etaltext'/>
- <cd:constant name='evenmargin' value='evenmarge'/>
- <cd:constant name='exact' value='exact'/>
- <cd:constant name='exitoffset' value='exitoffset'/>
- <cd:constant name='expansion' value='expansie'/>
- <cd:constant name='export' value='exporteer'/>
- <cd:constant name='extras' value='extras'/>
- <cd:constant name='factor' value='factor'/>
- <cd:constant name='fallback' value='terugval'/>
- <cd:constant name='fallbacks' value='fallbacks'/>
- <cd:constant name='family' value='soort'/>
- <cd:constant name='features' value='features'/>
- <cd:constant name='featureset' value='featureset'/>
- <cd:constant name='fences' value='fences'/>
- <cd:constant name='field' value='veld'/>
- <cd:constant name='fieldbackgroundcolor' value='veldachtergrondkleur'/>
- <cd:constant name='fieldframecolor' value='veldkaderkleur'/>
- <cd:constant name='fieldlayer' value='veldlaag'/>
- <cd:constant name='fieldoffset' value='veldoffset'/>
- <cd:constant name='file' value='file'/>
- <cd:constant name='filler' value='filler'/>
- <cd:constant name='filter' value='filter'/>
- <cd:constant name='filtercommand' value='filtercommand'/>
- <cd:constant name='finalnamesep' value='finalnamesep'/>
- <cd:constant name='finalpagesep' value='finalpagesep'/>
- <cd:constant name='finalpubsep' value='finalpubsep'/>
- <cd:constant name='first' value='eerste'/>
- <cd:constant name='firstnamesep' value='firstnamesep'/>
- <cd:constant name='firstpage' value='eerstepagina'/>
- <cd:constant name='focus' value='focus'/>
- <cd:constant name='focusin' value='focusin'/>
- <cd:constant name='focusoffset' value='focusoffset'/>
- <cd:constant name='focusout' value='focusuit'/>
- <cd:constant name='font' value='font'/>
- <cd:constant name='footer' value='voet'/>
- <cd:constant name='footerdistance' value='voetafstand'/>
- <cd:constant name='footerstate' value='voetstatus'/>
- <cd:constant name='force' value='forceer'/>
- <cd:constant name='foregroundcolor' value='voorgrondkleur'/>
- <cd:constant name='foregroundstyle' value='voorgrondletter'/>
- <cd:constant name='format' value='formatteer'/>
- <cd:constant name='fractions' value='breuken'/>
- <cd:constant name='frame' value='kader'/>
- <cd:constant name='framecolor' value='kaderkleur'/>
- <cd:constant name='framecorner' value='kaderhoek'/>
- <cd:constant name='framedepth' value='kaderdiepte'/>
- <cd:constant name='frameoffset' value='kaderoffset'/>
- <cd:constant name='frameradius' value='kaderstraal'/>
- <cd:constant name='frames' value='hokjes'/>
- <cd:constant name='freeregion' value='vrijgebied'/>
- <cd:constant name='from' value='van'/>
- <cd:constant name='functioncolor' value='functioncolor'/>
- <cd:constant name='functionstyle' value='functionstyle'/>
- <cd:constant name='get' value='haal'/>
- <cd:constant name='global' value='globaal'/>
- <cd:constant name='goodies' value='goodies'/>
- <cd:constant name='grid' value='grid'/>
- <cd:constant name='group' value='group'/>
- <cd:constant name='groupsuffix' value='groupsuffix'/>
- <cd:constant name='hang' value='hang'/>
- <cd:constant name='hcompact' value='hcomprimeer'/>
- <cd:constant name='headalign' value='kopuitlijnen'/>
- <cd:constant name='headcolor' value='kopkleur'/>
- <cd:constant name='headcommand' value='kopcommando'/>
- <cd:constant name='headconversion' value='kopconversie'/>
- <cd:constant name='header' value='hoofd'/>
- <cd:constant name='headerdistance' value='hoofdafstand'/>
- <cd:constant name='headerstate' value='hoofdstatus'/>
- <cd:constant name='headlabel' value='koplabel'/>
- <cd:constant name='headnumber' value='kopnummer'/>
- <cd:constant name='headseparator' value='kopscheider'/>
- <cd:constant name='headstyle' value='kopletter'/>
- <cd:constant name='height' value='hoogte'/>
- <cd:constant name='hfactor' value='hfactor'/>
- <cd:constant name='hfil' value='hfil'/>
- <cd:constant name='hidenumber' value='hidenumber'/>
- <cd:constant name='hoffset' value='hoffset'/>
- <cd:constant name='horizontal' value='horizontaal'/>
- <cd:constant name='horoffset' value='rugoffset'/>
- <cd:constant name='hyphen' value='hyphen'/>
- <cd:constant name='hyphens' value='hyphens'/>
- <cd:constant name='icommand' value='icommando'/>
- <cd:constant name='ignore' value='ignore'/>
- <cd:constant name='in' value='in'/>
- <cd:constant name='inbetween' value='tussen'/>
- <cd:constant name='increment' value='verhoog'/>
- <cd:constant name='incrementnumber' value='verhoognummer'/>
- <cd:constant name='indenting' value='inspringen'/>
- <cd:constant name='indentlist' value='indentlist'/>
- <cd:constant name='indentnext' value='springvolgendein'/>
- <cd:constant name='index' value='index'/>
- <cd:constant name='indicator' value='aanduiding'/>
- <cd:constant name='initialsep' value='initialsep'/>
- <cd:constant name='inlinethreshold' value='inlinethreshold'/>
- <cd:constant name='inner' value='binnen'/>
- <cd:constant name='innermargin' value='binnenmarge'/>
- <cd:constant name='inputfile' value='inputfile'/>
- <cd:constant name='insidesection' value='binnensectie'/>
- <cd:constant name='instance' value='instance'/>
- <cd:constant name='intent' value='intent'/>
- <cd:constant name='interaction' value='interactie'/>
- <cd:constant name='interlinespace' value='interlinie'/>
- <cd:constant name='internalgrid' value='interngrid'/>
- <cd:constant name='italicfeatures' value='italicfeatures'/>
- <cd:constant name='italicfont' value='italicfont'/>
- <cd:constant name='itemalign' value='itemuitlijnen'/>
- <cd:constant name='items' value='items'/>
- <cd:constant name='joiners' value='joiners'/>
- <cd:constant name='journalconversion' value='journalconversion'/>
- <cd:constant name='juniorsep' value='juniorsep'/>
- <cd:constant name='keeptogether' value='keeptogether'/>
- <cd:constant name='ken' value='ken'/>
- <cd:constant name='keyexpansion' value='sleutelexpansie'/>
- <cd:constant name='keys' value='sleutels'/>
- <cd:constant name='keyword' value='trefwoord'/>
- <cd:constant name='label' value='label'/>
- <cd:constant name='labelalternative' value='labelvariant'/>
- <cd:constant name='labelcolor' value='labelkleur'/>
- <cd:constant name='labeloffset' value='labeloffset'/>
- <cd:constant name='labelstyle' value='labelletter'/>
- <cd:constant name='language' value='language'/>
- <cd:constant name='last' value='last'/>
- <cd:constant name='lastnamesep' value='lastnamesep'/>
- <cd:constant name='lastpage' value='laatstepagina'/>
- <cd:constant name='lastpagesep' value='lastpagesep'/>
- <cd:constant name='lastpubsep' value='lastpubsep'/>
- <cd:constant name='layout' value='layout'/>
- <cd:constant name='left' value='links'/>
- <cd:constant name='leftcolor' value='linkerkleur'/>
- <cd:constant name='leftcompoundhyphen' value='linkerkoppelteken'/>
- <cd:constant name='leftedge' value='linkerrand'/>
- <cd:constant name='leftedgedistance' value='linkerrandafstand'/>
- <cd:constant name='leftframe' value='linkerkader'/>
- <cd:constant name='lefthyphen' value='lefthyphen'/>
- <cd:constant name='leftmargin' value='linkermarge'/>
- <cd:constant name='leftmargindistance' value='linkermargeafstand'/>
- <cd:constant name='leftoffset' value='linkeroffset'/>
- <cd:constant name='leftquotation' value='linkercitaat'/>
- <cd:constant name='leftquote' value='linkerciteer'/>
- <cd:constant name='leftsample' value='leftsample'/>
- <cd:constant name='leftsentence' value='linkerzin'/>
- <cd:constant name='leftspeech' value='linkeruitspraak'/>
- <cd:constant name='leftstyle' value='linkerletter'/>
- <cd:constant name='leftsubsentence' value='linkersubzin'/>
- <cd:constant name='lefttext' value='linkertekst'/>
- <cd:constant name='leftwidth' value='linkerbreedte'/>
- <cd:constant name='leftwords' value='leftwords'/>
- <cd:constant name='less' value='minder'/>
- <cd:constant name='level' value='niveau'/>
- <cd:constant name='levels' value='niveaus'/>
- <cd:constant name='limittext' value='limiettekst'/>
- <cd:constant name='line' value='regel'/>
- <cd:constant name='linecorrection' value='regelcorrectie'/>
- <cd:constant name='linedirection' value='regelrichting'/>
- <cd:constant name='lines' value='regels'/>
- <cd:constant name='list' value='lijst'/>
- <cd:constant name='listtext' value='lijsttekst'/>
- <cd:constant name='local' value='lokaal'/>
- <cd:constant name='location' value='plaats'/>
- <cd:constant name='loffset' value='loffset'/>
- <cd:constant name='logo' value='logo'/>
- <cd:constant name='logos' value='logos'/>
- <cd:constant name='marcolor' value='markleur'/>
- <cd:constant name='margin' value='marge'/>
- <cd:constant name='margindistance' value='margeafstand'/>
- <cd:constant name='marginedge' value='kantlijn'/>
- <cd:constant name='marginedgetext' value='kantlijntekst'/>
- <cd:constant name='margintext' value='margetekst'/>
- <cd:constant name='mark' value='kernmerk'/>
- <cd:constant name='marking' value='markering'/>
- <cd:constant name='marstyle' value='marletter'/>
- <cd:constant name='mask' value='masker'/>
- <cd:constant name='mathclass' value='mathclass'/>
- <cd:constant name='mathlimits' value='mathlimits'/>
- <cd:constant name='mathstyle' value='mathstyle'/>
- <cd:constant name='max' value='max'/>
- <cd:constant name='maxdepth' value='maxdepth'/>
- <cd:constant name='maxheight' value='maxhoogte'/>
- <cd:constant name='maxwidth' value='maxbreedte'/>
- <cd:constant name='maybeyear' value='maybeyear'/>
- <cd:constant name='menu' value='menu'/>
- <cd:constant name='method' value='methode'/>
- <cd:constant name='middle' value='midden'/>
- <cd:constant name='middlecolor' value='middenkleur'/>
- <cd:constant name='middlecommand' value='middencommando'/>
- <cd:constant name='middlespeech' value='middenuitspraak'/>
- <cd:constant name='middlestyle' value='middenletter'/>
- <cd:constant name='middletext' value='middentekst'/>
- <cd:constant name='middlewidth' value='middenbreedte'/>
- <cd:constant name='midsentence' value='middenzin'/>
- <cd:constant name='min' value='min'/>
- <cd:constant name='mindepth' value='mindiepte'/>
- <cd:constant name='minheight' value='minhoogte'/>
- <cd:constant name='minwidth' value='minbreedte'/>
- <cd:constant name='moffset' value='moffset'/>
- <cd:constant name='monthconversion' value='maandconversie'/>
- <cd:constant name='more' value='meer'/>
- <cd:constant name='mpdepth' value='mpdiepte'/>
- <cd:constant name='mpheight' value='mphoogte'/>
- <cd:constant name='mpoffset' value='mpoffset'/>
- <cd:constant name='mpwidth' value='mpbreedte'/>
- <cd:constant name='n' value='n'/>
- <cd:constant name='name' value='naam'/>
- <cd:constant name='namesep' value='namesep'/>
- <cd:constant name='nbottom' value='nonder'/>
- <cd:constant name='nc' value='nc'/>
- <cd:constant name='next' value='volgende'/>
- <cd:constant name='nextleft' value='nextleft'/>
- <cd:constant name='nextleftquotation' value='nextleftquotation'/>
- <cd:constant name='nextright' value='nextright'/>
- <cd:constant name='nextrightquotation' value='nextrightquotation'/>
- <cd:constant name='nl' value='nl'/>
- <cd:constant name='nleft' value='nlinks'/>
- <cd:constant name='nlines' value='nregels'/>
- <cd:constant name='norm' value='norm'/>
- <cd:constant name='note' value='noot'/>
- <cd:constant name='notes' value='noten'/>
- <cd:constant name='nr' value='nr'/>
- <cd:constant name='nright' value='nrechts'/>
- <cd:constant name='ntop' value='nboven'/>
- <cd:constant name='number' value='nummer'/>
- <cd:constant name='numberalign' value='nummeruitlijnen'/>
- <cd:constant name='numbercolor' value='nummerkleur'/>
- <cd:constant name='numbercommand' value='nummercommando'/>
- <cd:constant name='numberconversion' value='numberconversion'/>
- <cd:constant name='numberconversionset' value='numberconversionset'/>
- <cd:constant name='numberdistance' value='nummerafstand'/>
- <cd:constant name='numbering' value='nummeren'/>
- <cd:constant name='numberorder' value='numberorder'/>
- <cd:constant name='numberprefix' value='numberprefix'/>
- <cd:constant name='numbersegments' value='numbersegments'/>
- <cd:constant name='numberseparator' value='nummerscheider'/>
- <cd:constant name='numberseparatorset' value='numberseparatorset'/>
- <cd:constant name='numberset' value='numberset'/>
- <cd:constant name='numberstarter' value='numberstarter'/>
- <cd:constant name='numberstopper' value='numberstopper'/>
- <cd:constant name='numberstrut' value='nummerstrut'/>
- <cd:constant name='numberstyle' value='nummerletter'/>
- <cd:constant name='numberwidth' value='nummerbreedte'/>
- <cd:constant name='nx' value='nx'/>
- <cd:constant name='ny' value='ny'/>
- <cd:constant name='object' value='object'/>
- <cd:constant name='obstruction' value='blokkade'/>
- <cd:constant name='oddmargin' value='onevenmarge'/>
- <cd:constant name='offset' value='offset'/>
- <cd:constant name='openaction' value='openactie'/>
- <cd:constant name='openpage' value='openpagina'/>
- <cd:constant name='openpageaction' value='openpaginaactie'/>
- <cd:constant name='openup' value='openup'/>
- <cd:constant name='opticalsize' value='opticalsize'/>
- <cd:constant name='option' value='optie'/>
- <cd:constant name='order' value='volgorde'/>
- <cd:constant name='orientation' value='orientatie'/>
- <cd:constant name='otherstext' value='otherstext'/>
- <cd:constant name='outermargin' value='buitenmarge'/>
- <cd:constant name='overprint' value='overprint'/>
- <cd:constant name='ownerpassword' value='ownerpassword'/>
- <cd:constant name='ownnumber' value='eigennummer'/>
- <cd:constant name='packcriterium' value='opelkaarcriterium'/>
- <cd:constant name='page' value='pagina'/>
- <cd:constant name='pageboundaries' value='paginaovergangen'/>
- <cd:constant name='pagecolor' value='paginakleur'/>
- <cd:constant name='pagecolormodel' value='paginakleurmodel'/>
- <cd:constant name='pagecommand' value='paginacommando'/>
- <cd:constant name='pageconnector' value='pageconnector'/>
- <cd:constant name='pageconversion' value='pageconversion'/>
- <cd:constant name='pageconversionset' value='pageconversionset'/>
- <cd:constant name='pageleft' value='pageleft'/>
- <cd:constant name='pagemethod' value='paginamethode'/>
- <cd:constant name='pagenumber' value='paginanummer'/>
- <cd:constant name='pageprefix' value='pageprefix'/>
- <cd:constant name='pageprefixconnector' value='pageprefixconnector'/>
- <cd:constant name='pageprefixconversion' value='pageprefixconversion'/>
- <cd:constant name='pageprefixconversionset' value='pageprefixconversionset'/>
- <cd:constant name='pageprefixsegments' value='pageprefixsegments'/>
- <cd:constant name='pageprefixseparatorset' value='pageprefixseparatorset'/>
- <cd:constant name='pageprefixset' value='pageprefixset'/>
- <cd:constant name='pageprefixstarter' value='pageprefixstarter'/>
- <cd:constant name='pageprefixstopper' value='pageprefixstopper'/>
- <cd:constant name='pageright' value='pageright'/>
- <cd:constant name='pagesegments' value='pagesegments'/>
- <cd:constant name='pagesep' value='pagesep'/>
- <cd:constant name='pageseparatorset' value='pageseparatorset'/>
- <cd:constant name='pageset' value='pageset'/>
- <cd:constant name='pagestarter' value='pagestarter'/>
- <cd:constant name='pagestate' value='paginastatus'/>
- <cd:constant name='pagestopper' value='pagestopper'/>
- <cd:constant name='pagestyle' value='paginaletter'/>
- <cd:constant name='palet' value='palet'/>
- <cd:constant name='paper' value='papier'/>
- <cd:constant name='paragraph' value='alinea'/>
- <cd:constant name='period' value='period'/>
- <cd:constant name='place' value='plaatsen'/>
- <cd:constant name='placehead' value='plaatskop'/>
- <cd:constant name='placeholder' value='placeholder'/>
- <cd:constant name='placestopper' value='plaatsafsluiter'/>
- <cd:constant name='position' value='positie'/>
- <cd:constant name='prefix' value='prefix'/>
- <cd:constant name='prefixconnector' value='prefixconnector'/>
- <cd:constant name='prefixconversion' value='prefixconversion'/>
- <cd:constant name='prefixconversionset' value='prefixconversionset'/>
- <cd:constant name='prefixsegments' value='prefixsegments'/>
- <cd:constant name='prefixseparatorset' value='prefixseparatorset'/>
- <cd:constant name='prefixset' value='prefixset'/>
- <cd:constant name='prefixstarter' value='prefixstarter'/>
- <cd:constant name='prefixstopper' value='prefixstopper'/>
- <cd:constant name='preset' value='preset'/>
- <cd:constant name='preview' value='preview'/>
- <cd:constant name='previous' value='vorige'/>
- <cd:constant name='previousnumber' value='vorigenummer'/>
- <cd:constant name='print' value='print'/>
- <cd:constant name='printable' value='printbaar'/>
- <cd:constant name='process' value='proces'/>
- <cd:constant name='profile' value='profile'/>
- <cd:constant name='properties' value='properties'/>
- <cd:constant name='pubsep' value='pubsep'/>
- <cd:constant name='quotechar' value='quotechar'/>
- <cd:constant name='radius' value='straal'/>
- <cd:constant name='random' value='willekeur'/>
- <cd:constant name='range' value='bereik'/>
- <cd:constant name='reduction' value='reductie'/>
- <cd:constant name='ref' value='ref'/>
- <cd:constant name='refcommand' value='refcommand'/>
- <cd:constant name='reference' value='referentie'/>
- <cd:constant name='referencemethod' value='referencemethod'/>
- <cd:constant name='referenceprefix' value='referenceprefix'/>
- <cd:constant name='referencetext' value='referencetext'/>
- <cd:constant name='referencing' value='refereren'/>
- <cd:constant name='region' value='gebied'/>
- <cd:constant name='regionin' value='gebiedin'/>
- <cd:constant name='regionout' value='gebieduit'/>
- <cd:constant name='register' value='register'/>
- <cd:constant name='regularfeatures' value='regularfeatures'/>
- <cd:constant name='regularfont' value='regularfont'/>
- <cd:constant name='renderingsetup' value='renderingsetup'/>
- <cd:constant name='repeat' value='herhaal'/>
- <cd:constant name='reset' value='reset'/>
- <cd:constant name='resetnumber' value='resetnummer'/>
- <cd:constant name='resolution' value='resolutie'/>
- <cd:constant name='resources' value='resources'/>
- <cd:constant name='reverse' value='omgekeerd'/>
- <cd:constant name='right' value='rechts'/>
- <cd:constant name='rightchars' value='rightchars'/>
- <cd:constant name='rightcolor' value='rechterkleur'/>
- <cd:constant name='rightcompoundhyphen' value='rechterkoppelteken'/>
- <cd:constant name='rightedge' value='rechterrand'/>
- <cd:constant name='rightedgedistance' value='rechterrandafstand'/>
- <cd:constant name='rightframe' value='rechterkader'/>
- <cd:constant name='righthyphen' value='righthyphen'/>
- <cd:constant name='rightmargin' value='rechtermarge'/>
- <cd:constant name='rightmargindistance' value='rechtermargeafstand'/>
- <cd:constant name='rightoffset' value='rechteroffset'/>
- <cd:constant name='rightquotation' value='rechtercitaat'/>
- <cd:constant name='rightquote' value='rechterciteer'/>
- <cd:constant name='rightsample' value='rightsample'/>
- <cd:constant name='rightsentence' value='rechterzin'/>
- <cd:constant name='rightspeech' value='rechteruitspraak'/>
- <cd:constant name='rightstyle' value='rechterletter'/>
- <cd:constant name='rightsubsentence' value='rechtersubzin'/>
- <cd:constant name='righttext' value='rechtertekst'/>
- <cd:constant name='rightwidth' value='rechterbreedte'/>
- <cd:constant name='rightwords' value='rightwords'/>
- <cd:constant name='roffset' value='roffset'/>
- <cd:constant name='rotation' value='rotatie'/>
- <cd:constant name='rule' value='lijn'/>
- <cd:constant name='rulecolor' value='lijnkleur'/>
- <cd:constant name='rulecommand' value='lijncommando'/>
- <cd:constant name='rulethickness' value='lijndikte'/>
- <cd:constant name='samepage' value='zelfdepagina'/>
- <cd:constant name='sample' value='monster'/>
- <cd:constant name='samplesize' value='samplesize'/>
- <cd:constant name='saveinlist' value='saveinlist'/>
- <cd:constant name='scale' value='schaal'/>
- <cd:constant name='scope' value='scope'/>
- <cd:constant name='screen' value='raster'/>
- <cd:constant name='section' value='sectie'/>
- <cd:constant name='sectionblock' value='sectionblock'/>
- <cd:constant name='sectionconversion' value='sectionconversion'/>
- <cd:constant name='sectionconversionset' value='sectionconversionset'/>
- <cd:constant name='sectionnumber' value='sectienummer'/>
- <cd:constant name='sectionresetset' value='sectionresetset'/>
- <cd:constant name='sectionsegments' value='sectionsegments'/>
- <cd:constant name='sectionseparatorset' value='sectionseparatorset'/>
- <cd:constant name='sectionset' value='sectionset'/>
- <cd:constant name='sectionstarter' value='sectionstarter'/>
- <cd:constant name='sectionstopper' value='sectionstopper'/>
- <cd:constant name='separator' value='scheider'/>
- <cd:constant name='separatorcolor' value='scheiderkleur'/>
- <cd:constant name='separatorstyle' value='scheiderletter'/>
- <cd:constant name='set' value='set'/>
- <cd:constant name='setups' value='setups'/>
- <cd:constant name='shrink' value='krimp'/>
- <cd:constant name='side' value='zij'/>
- <cd:constant name='sidealign' value='zijuitlijnen'/>
- <cd:constant name='sidemethod' value='zijmethode'/>
- <cd:constant name='sidespaceafter' value='zijnawit'/>
- <cd:constant name='sidespacebefore' value='zijvoorwit'/>
- <cd:constant name='sidespaceinbetween' value='zijtussenwit'/>
- <cd:constant name='sidethreshold' value='sidethreshold'/>
- <cd:constant name='sign' value='teken'/>
- <cd:constant name='simplecommand' value='simpelcommando'/>
- <cd:constant name='size' value='formaat'/>
- <cd:constant name='slantedfeatures' value='slantedfeatures'/>
- <cd:constant name='slantedfont' value='slantedfont'/>
- <cd:constant name='small' value='klein'/>
- <cd:constant name='smallcapsfeatures' value='smallcapsfeatures'/>
- <cd:constant name='smallcapsfont' value='smallcapsfont'/>
- <cd:constant name='solution' value='oplossing'/>
- <cd:constant name='sort' value='sort'/>
- <cd:constant name='sorttype' value='sortering'/>
- <cd:constant name='source' value='bron'/>
- <cd:constant name='space' value='spatie'/>
- <cd:constant name='spaceafter' value='nawit'/>
- <cd:constant name='spaceafterside' value='witnazij'/>
- <cd:constant name='spacebefore' value='voorwit'/>
- <cd:constant name='spacebeforeside' value='witvoorzij'/>
- <cd:constant name='spaceinbetween' value='tussenwit'/>
- <cd:constant name='spacing' value='spatiering'/>
- <cd:constant name='specification' value='specification'/>
- <cd:constant name='split' value='splitsen'/>
- <cd:constant name='splitcolor' value='splitskleur'/>
- <cd:constant name='splitmethod' value='splitsmethode'/>
- <cd:constant name='splitoffset' value='splitsoffset'/>
- <cd:constant name='spot' value='spot'/>
- <cd:constant name='stack' value='stapel'/>
- <cd:constant name='stackname' value='stapelnaam'/>
- <cd:constant name='start' value='start'/>
- <cd:constant name='starter' value='opener'/>
- <cd:constant name='state' value='status'/>
- <cd:constant name='step' value='stap'/>
- <cd:constant name='stop' value='stop'/>
- <cd:constant name='stopper' value='afsluiter'/>
- <cd:constant name='stretch' value='rek'/>
- <cd:constant name='strip' value='strip'/>
- <cd:constant name='strut' value='strut'/>
- <cd:constant name='style' value='letter'/>
- <cd:constant name='stylealternative' value='stylevariant'/>
- <cd:constant name='sub' value='sub'/>
- <cd:constant name='subtitle' value='subtitel'/>
- <cd:constant name='suffix' value='suffix'/>
- <cd:constant name='suffixseparator' value='suffixscheider'/>
- <cd:constant name='suffixstopper' value='suffixafsluiter'/>
- <cd:constant name='surnamefirstnamesep' value='surnamefirstnamesep'/>
- <cd:constant name='surnameinitialsep' value='surnameinitialsep'/>
- <cd:constant name='surnamesep' value='surnamesep'/>
- <cd:constant name='svgstyle' value='svgstyle'/>
- <cd:constant name='sx' value='sx'/>
- <cd:constant name='sy' value='sy'/>
- <cd:constant name='symalign' value='symuitlijnen'/>
- <cd:constant name='symbol' value='symbool'/>
- <cd:constant name='symbolcommand' value='symbolcommand'/>
- <cd:constant name='symbolset' value='symboolset'/>
- <cd:constant name='symcolor' value='symkleur'/>
- <cd:constant name='symstyle' value='symletter'/>
- <cd:constant name='synonym' value='synoniem'/>
- <cd:constant name='synonymcolor' value='synoniemkleur'/>
- <cd:constant name='synonymcommand' value='synoniemcommando'/>
- <cd:constant name='synonymstyle' value='synoniemletter'/>
- <cd:constant name='tab' value='tab'/>
- <cd:constant name='text' value='tekst'/>
- <cd:constant name='textalign' value='textalign'/>
- <cd:constant name='textcolor' value='tekstkleur'/>
- <cd:constant name='textcommand' value='tekstcommando'/>
- <cd:constant name='textdistance' value='tekstafstand'/>
- <cd:constant name='textheight' value='teksthoogte'/>
- <cd:constant name='textlayer' value='tekstlaag'/>
- <cd:constant name='textmargin' value='tekstmarge'/>
- <cd:constant name='textmethod' value='tekstmethode'/>
- <cd:constant name='textseparator' value='tekstscheider'/>
- <cd:constant name='textsize' value='tekstformaat'/>
- <cd:constant name='textstate' value='tekststatus'/>
- <cd:constant name='textstyle' value='tekstletter'/>
- <cd:constant name='textwidth' value='tekstbreedte'/>
- <cd:constant name='threshold' value='threshold'/>
- <cd:constant name='time' value='tijd'/>
- <cd:constant name='title' value='titel'/>
- <cd:constant name='titlecolor' value='titelkleur'/>
- <cd:constant name='titlecommand' value='titelcommando'/>
- <cd:constant name='titledistance' value='titelafstand'/>
- <cd:constant name='titleleft' value='titellinks'/>
- <cd:constant name='titleright' value='titelrechts'/>
- <cd:constant name='titlestrut' value='titelstrut'/>
- <cd:constant name='titlestyle' value='titelletter'/>
- <cd:constant name='to' value='aan'/>
- <cd:constant name='toffset' value='toffset'/>
- <cd:constant name='tolerance' value='tolerantie'/>
- <cd:constant name='top' value='boven'/>
- <cd:constant name='topcommand' value='bovencommando'/>
- <cd:constant name='topdistance' value='bovenafstand'/>
- <cd:constant name='topframe' value='bovenkader'/>
- <cd:constant name='topoffset' value='bovenoffset'/>
- <cd:constant name='topspace' value='kopwit'/>
- <cd:constant name='topstate' value='bovenstatus'/>
- <cd:constant name='totalnumber' value='totalnumber'/>
- <cd:constant name='transform' value='transformatie'/>
- <cd:constant name='translate' value='translate'/>
- <cd:constant name='trimoffset' value='trimoffset'/>
- <cd:constant name='type' value='type'/>
- <cd:constant name='unit' value='eenheid'/>
- <cd:constant name='unknownreference' value='onbekendereferentie'/>
- <cd:constant name='up' value='up'/>
- <cd:constant name='urlalternative' value='urlvariant'/>
- <cd:constant name='urlspace' value='urlspatie'/>
- <cd:constant name='userpassword' value='userpassword'/>
- <cd:constant name='validate' value='valideer'/>
- <cd:constant name='values' value='waarden'/>
- <cd:constant name='vcommand' value='vcommando'/>
- <cd:constant name='vcompact' value='vcomprimeer'/>
- <cd:constant name='vector' value='vector'/>
- <cd:constant name='veroffset' value='kopoffset'/>
- <cd:constant name='vertical' value='vertikaal'/>
- <cd:constant name='vfactor' value='vfactor'/>
- <cd:constant name='vfil' value='vfil'/>
- <cd:constant name='viewerprefix' value='viewerprefix'/>
- <cd:constant name='voffset' value='voffset'/>
- <cd:constant name='vonsep' value='vonsep'/>
- <cd:constant name='way' value='wijze'/>
- <cd:constant name='wfactor' value='bfactor'/>
- <cd:constant name='white' value='wit'/>
- <cd:constant name='width' value='breedte'/>
- <cd:constant name='words' value='words'/>
- <cd:constant name='xanchor' value='xanker'/>
- <cd:constant name='xfactor' value='xfactor'/>
- <cd:constant name='xhtml' value='xhtml'/>
- <cd:constant name='xmax' value='xmax'/>
- <cd:constant name='xmlsetup' value='xmlsetup'/>
- <cd:constant name='xoffset' value='xoffset'/>
- <cd:constant name='xscale' value='xschaal'/>
- <cd:constant name='xstep' value='xstap'/>
- <cd:constant name='yanchor' value='yanker'/>
- <cd:constant name='yfactor' value='yfactor'/>
- <cd:constant name='ymax' value='ymax'/>
- <cd:constant name='yoffset' value='yoffset'/>
- <cd:constant name='yscale' value='yschaal'/>
- <cd:constant name='ystep' value='ystap'/>
- </cd:constants>
-
- <!-- definitions for interface elements for language nl -->
-
- <cd:elements>
- <cd:element name='answerlines' value='antwoordregels'/>
- <cd:element name='answerspace' value='antwoordruimte'/>
- <cd:element name='begin' value='beginvan'/>
- <cd:element name='complete' value='volledige'/>
- <cd:element name='coupled' value='gekoppelde'/>
- <cd:element name='currentlocal' value='huidigelokale'/>
- <cd:element name='end' value='eindvan'/>
- <cd:element name='endsetup' value='in'/>
- <cd:element name='get' value='haal'/>
- <cd:element name='increment' value='verhoog'/>
- <cd:element name='list' value='lijst'/>
- <cd:element name='listof' value='lijstmet'/>
- <cd:element name='load' value='laad'/>
- <cd:element name='local' value='lokale'/>
- <cd:element name='makeup' value='opmaak'/>
- <cd:element name='next' value='volgende'/>
- <cd:element name='place' value='plaats'/>
- <cd:element name='previous' value='vorige'/>
- <cd:element name='previouslocal' value='vorigelokale'/>
- <cd:element name='reserve' value='reserveer'/>
- <cd:element name='see' value='zie'/>
- <cd:element name='setup' value='stel'/>
- <cd:element name='start' value='start'/>
- <cd:element name='stop' value='stop'/>
- <cd:element name='text' value='tekst'/>
- <cd:element name='type' value='type'/>
- </cd:elements>
-
- <!-- definitions for interface commands for language nl -->
-
- <cd:commands>
- <cd:command name='Character' value='Letter'/>
- <cd:command name='Characters' value='Letters'/>
- <cd:command name='MONTH' value='MAAND'/>
- <cd:command name='Numbers' value='Cijfers'/>
- <cd:command name='Romannumerals' value='Romeins'/>
- <cd:command name='SmallCapped' value='Kap'/>
- <cd:command name='SmallCaps' value='Kaps'/>
- <cd:command name='WEEKDAY' value='WEEKDAG'/>
- <cd:command name='WORD' value='WOORD'/>
- <cd:command name='WORDS' value='WOORDEN'/>
- <cd:command name='Word' value='Woord'/>
- <cd:command name='Words' value='Woorden'/>
- <cd:command name='about' value='about'/>
- <cd:command name='adaptfontfeature' value='adaptfontfeature'/>
- <cd:command name='adaptlayout' value='paslayoutaan'/>
- <cd:command name='addfeature' value='addfeature'/>
- <cd:command name='alignbottom' value='alignbottom'/>
- <cd:command name='aligned' value='aligned'/>
- <cd:command name='alignedbox' value='alignedbox'/>
- <cd:command name='alignedline' value='alignedline'/>
- <cd:command name='alignhere' value='alignhere'/>
- <cd:command name='alignment' value='uitlijnen'/>
- <cd:command name='alignmentcharacter' value='alignmentcharacter'/>
- <cd:command name='applytocharacters' value='applytocharacters'/>
- <cd:command name='applytofirstcharacter' value='applytofirstcharacter'/>
- <cd:command name='arg' value='arg'/>
- <cd:command name='at' value='op'/>
- <cd:command name='atleftmargin' value='oplinkermarge'/>
- <cd:command name='atpage' value='oppagina'/>
- <cd:command name='atrightmargin' value='oprechtermarge'/>
- <cd:command name='background' value='achtergrond'/>
- <cd:command name='backspace' value='rugwit'/>
- <cd:command name='blackrule' value='blokje'/>
- <cd:command name='blackrules' value='blokjes'/>
- <cd:command name='blank' value='blanko'/>
- <cd:command name='bookmark' value='bookmark'/>
- <cd:command name='bottombox' value='bottombox'/>
- <cd:command name='bottomdistance' value='onderafstand'/>
- <cd:command name='bottomheight' value='onderhoogte'/>
- <cd:command name='bottomleftbox' value='bottomleftbox'/>
- <cd:command name='bottomrightbox' value='bottomrightbox'/>
- <cd:command name='bottomspace' value='bodemwit'/>
- <cd:command name='buildtextbottomdot' value='buildtextbottomdot'/>
- <cd:command name='but' value='but'/>
- <cd:command name='button' value='button'/>
- <cd:command name='bypassblocks' value='passeerblokken'/>
- <cd:command name='character' value='letter'/>
- <cd:command name='characters' value='letters'/>
- <cd:command name='chem' value='chem'/>
- <cd:command name='clip' value='clip'/>
- <cd:command name='clonefield' value='kloonveld'/>
- <cd:command name='color' value='kleur'/>
- <cd:command name='colorbar' value='kleurenbalk'/>
- <cd:command name='colorvalue' value='kleurwaarde'/>
- <cd:command name='column' value='kolom'/>
- <cd:command name='comparecolorgroup' value='vergelijkkleurgroep'/>
- <cd:command name='comparepalet' value='vergelijkpalet'/>
- <cd:command name='completepagenumber' value='volledigepaginanummer'/>
- <cd:command name='completeregister' value='volledigregister'/>
- <cd:command name='component' value='onderdeel'/>
- <cd:command name='convertnumber' value='converteernummer'/>
- <cd:command name='copyfield' value='copieerveld'/>
- <cd:command name='correctwhitespace' value='corrigeerwitruimte'/>
- <cd:command name='coupledocument' value='koppeldocument'/>
- <cd:command name='couplemarking' value='koppelmarkering'/>
- <cd:command name='couplepage' value='koppelpagina'/>
- <cd:command name='couplepaper' value='koppelpapier'/>
- <cd:command name='coupleregister' value='koppelregister'/>
- <cd:command name='crlf' value='crlf'/>
- <cd:command name='currentdate' value='huidigedatum'/>
- <cd:command name='currentheadnumber' value='huidigekopnummer'/>
- <cd:command name='cutspace' value='snijwit'/>
- <cd:command name='date' value='datum'/>
- <cd:command name='decouplemarking' value='ontkoppelmarkering'/>
- <cd:command name='decrementnumber' value='verlaagnummer'/>
- <cd:command name='define' value='definieer'/>
- <cd:command name='defineaccent' value='definieeraccent'/>
- <cd:command name='defineblank' value='definieerblanko'/>
- <cd:command name='defineblock' value='definieerblok'/>
- <cd:command name='definebodyfont' value='definieerkorps'/>
- <cd:command name='definebodyfontenvironment' value='definieerkorpsomgeving'/>
- <cd:command name='definebodyfontswitch' value='definebodyfontswitch'/>
- <cd:command name='definebuffer' value='definieerbuffer'/>
- <cd:command name='definecharacter' value='definieerkarakter'/>
- <cd:command name='definecharacterkerning' value='definecharacterkerning'/>
- <cd:command name='definecharacterspacing' value='definecharacterspacing'/>
- <cd:command name='definecolor' value='definieerkleur'/>
- <cd:command name='definecolorgroup' value='definieerkleurgroep'/>
- <cd:command name='definecolumnbreak' value='definieerkolomovergang'/>
- <cd:command name='definecolumnset' value='definieerkolomgroep'/>
- <cd:command name='definecombination' value='definieercombinatie'/>
- <cd:command name='definecombinedlist' value='definieersamengesteldelijst'/>
- <cd:command name='definecommand' value='definieercommando'/>
- <cd:command name='defineconversion' value='definieerconversie'/>
- <cd:command name='definedescription' value='doordefinieren'/>
- <cd:command name='definedfont' value='definedfont'/>
- <cd:command name='defineenumeration' value='doornummeren'/>
- <cd:command name='definefallbackfamily' value='definefallbackfamily'/>
- <cd:command name='definefield' value='definieerveld'/>
- <cd:command name='definefieldstack' value='definieerveldstapel'/>
- <cd:command name='definefiguresymbol' value='definieerfiguursymbool'/>
- <cd:command name='definefilefallback' value='definefilefallback'/>
- <cd:command name='definefirstline' value='definefirstline'/>
- <cd:command name='definefloat' value='definieerplaatsblok'/>
- <cd:command name='definefont' value='definieerfont'/>
- <cd:command name='definefontalternative' value='definefontalternative'/>
- <cd:command name='definefontfallback' value='definefontfallback'/>
- <cd:command name='definefontfamily' value='definefontfamily'/>
- <cd:command name='definefontfamilypreset' value='definefontfamilypreset'/>
- <cd:command name='definefontfeature' value='definefontfeature'/>
- <cd:command name='definefontfile' value='definefontfile'/>
- <cd:command name='definefontsize' value='definefontsize'/>
- <cd:command name='definefontsolution' value='definefontsolution'/>
- <cd:command name='definefontstyle' value='definieerfontstijl'/>
- <cd:command name='definefontsynonym' value='definieerfontsynoniem'/>
- <cd:command name='defineframed' value='definieeromlijnd'/>
- <cd:command name='defineframedtext' value='definieerkadertekst'/>
- <cd:command name='definefrozenfont' value='definefrozenfont'/>
- <cd:command name='definehbox' value='definieerhbox'/>
- <cd:command name='definehead' value='definieerkop'/>
- <cd:command name='definehyphenationfeatures' value='definehyphenationfeatures'/>
- <cd:command name='defineindentedtext' value='definieeringesprongentext'/>
- <cd:command name='defineinmargin' value='definieerinmarge'/>
- <cd:command name='defineinteractionmenu' value='definieerinteractiemenu'/>
- <cd:command name='defineitemgroup' value='definieeritemgroep'/>
- <cd:command name='defineitems' value='defineitems'/>
- <cd:command name='definelabel' value='doorlabelen'/>
- <cd:command name='definelayer' value='definieerlayer'/>
- <cd:command name='definelayout' value='definieerlayout'/>
- <cd:command name='definelinenote' value='definelinenote'/>
- <cd:command name='definelist' value='definieerlijst'/>
- <cd:command name='definelogo' value='definieerbeeldmerk'/>
- <cd:command name='definemainfield' value='definieerhoofdveld'/>
- <cd:command name='definemakeup' value='definieeropmaak'/>
- <cd:command name='definemarking' value='definieermarkering'/>
- <cd:command name='definemathalignment' value='definieerwiskundeuitlijnen'/>
- <cd:command name='definemode' value='definemode'/>
- <cd:command name='definenamedcolor' value='definenamedcolor'/>
- <cd:command name='definenote' value='definenote'/>
- <cd:command name='defineoutput' value='definieeruitvoer'/>
- <cd:command name='defineoverlay' value='definieeroverlay'/>
- <cd:command name='definepagebreak' value='definieerpaginaovergang'/>
- <cd:command name='definepalet' value='definieerpalet'/>
- <cd:command name='definepapersize' value='definieerpapierformaat'/>
- <cd:command name='defineparagraphs' value='definieeralineas'/>
- <cd:command name='defineperiodkerning' value='defineperiodkerning'/>
- <cd:command name='defineplacement' value='definieerplaats'/>
- <cd:command name='defineprofile' value='definieerprofiel'/>
- <cd:command name='defineprogram' value='definieerprogramma'/>
- <cd:command name='definerawfont' value='definerawfont'/>
- <cd:command name='definereference' value='definieerreferentie'/>
- <cd:command name='definereferenceformat' value='definieerreferentieformaat'/>
- <cd:command name='definereferencelist' value='definieerreferentielijst'/>
- <cd:command name='defineregister' value='definieerregister'/>
- <cd:command name='definerule' value='definieerlijn'/>
- <cd:command name='definesection' value='definieersectie'/>
- <cd:command name='definesectionblock' value='definieersectieblok'/>
- <cd:command name='definesorting' value='definieersorteren'/>
- <cd:command name='definestartstop' value='definieerstartstop'/>
- <cd:command name='definestyle' value='definieerletter'/>
- <cd:command name='definesubfield' value='definieersubveld'/>
- <cd:command name='definesymbol' value='definieersymbool'/>
- <cd:command name='definesynonyms' value='definieersynoniemen'/>
- <cd:command name='definetabletemplate' value='definieertabelvorm'/>
- <cd:command name='definetabulate' value='definieertabulatie'/>
- <cd:command name='definetext' value='definieertekst'/>
- <cd:command name='definetextbackground' value='definieertekstachtergrond'/>
- <cd:command name='definetextnote' value='definetextnote'/>
- <cd:command name='definetextposition' value='definieertekstpositie'/>
- <cd:command name='definetextvariable' value='definieertekstvariabele'/>
- <cd:command name='definetype' value='definieertype'/>
- <cd:command name='definetyping' value='definieertypen'/>
- <cd:command name='defineversion' value='definieerversie'/>
- <cd:command name='depthspanningtext' value='depthspanningtext'/>
- <cd:command name='determineheadnumber' value='bepaalkopnummer'/>
- <cd:command name='determinelistcharacteristics' value='bepaallijstkenmerken'/>
- <cd:command name='determineregistercharacteristics' value='bepaalregisterkenmerken'/>
- <cd:command name='dimension' value='dimensie'/>
- <cd:command name='disableinteractionmenu' value='blokkeerinteractiemenu'/>
- <cd:command name='disablemode' value='disablemode'/>
- <cd:command name='doaddfeature' value='doaddfeature'/>
- <cd:command name='domicile' value='woonplaats'/>
- <cd:command name='dontconvertfont' value='dontconvertfont'/>
- <cd:command name='donttest' value='geentest'/>
- <cd:command name='edgedistance' value='randafstand'/>
- <cd:command name='edgewidth' value='randbreedte'/>
- <cd:command name='emphasisboldface' value='emphasisboldface'/>
- <cd:command name='emptylines' value='legeregels'/>
- <cd:command name='enablemode' value='enablemode'/>
- <cd:command name='environment' value='omgeving'/>
- <cd:command name='externalfigure' value='externfiguur'/>
- <cd:command name='fact' value='geg'/>
- <cd:command name='fastswitchtobodyfont' value='fastswitchtobodyfont'/>
- <cd:command name='feature' value='feature'/>
- <cd:command name='field' value='veld'/>
- <cd:command name='fieldstack' value='veldstapel'/>
- <cd:command name='fillinfield' value='invulveld'/>
- <cd:command name='fillinline' value='invulregel'/>
- <cd:command name='fillinrules' value='invullijnen'/>
- <cd:command name='fillintext' value='invultekst'/>
- <cd:command name='firstcharacter' value='firstcharacter'/>
- <cd:command name='fitfield' value='passendveld'/>
- <cd:command name='fittopbaselinegrid' value='fittopbaselinegrid'/>
- <cd:command name='fixedspace' value='vastespatie'/>
- <cd:command name='fixedspaces' value='vastespaties'/>
- <cd:command name='flushnotes' value='flushnotes'/>
- <cd:command name='followprofile' value='volgprofiel'/>
- <cd:command name='followprofileversion' value='volgprofielversie'/>
- <cd:command name='followversion' value='volgversie'/>
- <cd:command name='footerdistance' value='voetafstand'/>
- <cd:command name='footerheight' value='voethoogte'/>
- <cd:command name='footnote' value='voetnoot'/>
- <cd:command name='footnotetext' value='voetnoottekst'/>
- <cd:command name='forceblocks' value='forceerblokken'/>
- <cd:command name='forcecharacterstripping' value='forcecharacterstripping'/>
- <cd:command name='formulanumber' value='formulenummer'/>
- <cd:command name='fraction' value='breuk'/>
- <cd:command name='framed' value='omlijnd'/>
- <cd:command name='from' value='uit'/>
- <cd:command name='fromlinenote' value='fromlinenote'/>
- <cd:command name='getbuffer' value='haalbuffer'/>
- <cd:command name='getfirstcharacter' value='getfirstcharacter'/>
- <cd:command name='getmarking' value='haalmarkering'/>
- <cd:command name='getnumber' value='haalnummer'/>
- <cd:command name='globaldisablemode' value='globaldisablemode'/>
- <cd:command name='globalenablemode' value='globalenablemode'/>
- <cd:command name='globalpreventmode' value='globalpreventmode'/>
- <cd:command name='godown' value='omlaag'/>
- <cd:command name='goto' value='naar'/>
- <cd:command name='gotobox' value='naarbox'/>
- <cd:command name='gotopage' value='naarpagina'/>
- <cd:command name='graycolor' value='grijskleur'/>
- <cd:command name='greyvalue' value='grijswaarde'/>
- <cd:command name='grid' value='rooster'/>
- <cd:command name='hairline' value='haarlijn'/>
- <cd:command name='head' value='kop'/>
- <cd:command name='headerdistance' value='hoofdafstand'/>
- <cd:command name='headerheight' value='hoofdhoogte'/>
- <cd:command name='headlevel' value='kopniveau'/>
- <cd:command name='headnumber' value='kopnummer'/>
- <cd:command name='headsym' value='kopsym'/>
- <cd:command name='headtext' value='koptekst'/>
- <cd:command name='heightspanningtext' value='heightspanningtext'/>
- <cd:command name='hideblocks' value='verbergblokken'/>
- <cd:command name='high' value='hoog'/>
- <cd:command name='hl' value='hl'/>
- <cd:command name='immediatebetweenlist' value='directtussenlijst'/>
- <cd:command name='immediatetolist' value='directnaarlijst'/>
- <cd:command name='in' value='in'/>
- <cd:command name='incrementnumber' value='verhoognummer'/>
- <cd:command name='indenting' value='inspringen'/>
- <cd:command name='inframed' value='inlijnd'/>
- <cd:command name='infull' value='voluit'/>
- <cd:command name='ininner' value='inbinnen'/>
- <cd:command name='inleft' value='inlinker'/>
- <cd:command name='inleftedge' value='inlinkerrand'/>
- <cd:command name='inleftmargin' value='inlinkermarge'/>
- <cd:command name='inline' value='inregel'/>
- <cd:command name='inmargin' value='inmarge'/>
- <cd:command name='inmframed' value='inwilijnd'/>
- <cd:command name='inneredgedistance' value='binnenrandafstand'/>
- <cd:command name='inneredgewidth' value='binnenrandbreedte'/>
- <cd:command name='innermargindistance' value='binnenmargeafstand'/>
- <cd:command name='innermarginwidth' value='binnenmargebreedte'/>
- <cd:command name='inothermargin' value='inanderemarge'/>
- <cd:command name='inouter' value='inbuiten'/>
- <cd:command name='inright' value='inrechter'/>
- <cd:command name='inrightedge' value='inrechterrand'/>
- <cd:command name='inrightmargin' value='inrechtermarge'/>
- <cd:command name='installlanguage' value='installeertaal'/>
- <cd:command name='interactionbar' value='interactiebalk'/>
- <cd:command name='interactionbuttons' value='interactiebuttons'/>
- <cd:command name='interactionmenu' value='interactiemenu'/>
- <cd:command name='item' value='som'/>
- <cd:command name='itemgroup' value='itemgroup'/>
- <cd:command name='items' value='items'/>
- <cd:command name='itemtag' value='itemtag'/>
- <cd:command name='its' value='its'/>
- <cd:command name='keepblocks' value='handhaafblokken'/>
- <cd:command name='kerncharacters' value='kerncharacters'/>
- <cd:command name='label' value='label'/>
- <cd:command name='labels' value='labels'/>
- <cd:command name='labeltext' value='labeltekst'/>
- <cd:command name='language' value='taal'/>
- <cd:command name='languageCharacters' value='languageCharacters'/>
- <cd:command name='languagecharacters' value='languagecharacters'/>
- <cd:command name='leftaligned' value='regellinks'/>
- <cd:command name='leftbottombox' value='leftbottombox'/>
- <cd:command name='leftedgedistance' value='linkerrandafstand'/>
- <cd:command name='leftedgewidth' value='linkerrandbreedte'/>
- <cd:command name='leftline' value='leftline'/>
- <cd:command name='leftmargindistance' value='linkermargeafstand'/>
- <cd:command name='leftmarginwidth' value='linkermargebreedte'/>
- <cd:command name='leg' value='leg'/>
- <cd:command name='linecorrection' value='regelcorrectie'/>
- <cd:command name='linenote' value='linenote'/>
- <cd:command name='linespanningtext' value='linespanningtext'/>
- <cd:command name='linewidth' value='lijndikte'/>
- <cd:command name='listheight' value='lijsthoogte'/>
- <cd:command name='listlength' value='lijstlengte'/>
- <cd:command name='listsymbol' value='lijstsymbool'/>
- <cd:command name='listwidth' value='lijstbreedte'/>
- <cd:command name='loadfontgoodies' value='loadfontgoodies'/>
- <cd:command name='localfootnotes' value='lokalevoetnoten'/>
- <cd:command name='localnotes' value='localnotes'/>
- <cd:command name='logfields' value='registreervelden'/>
- <cd:command name='lohi' value='laho'/>
- <cd:command name='low' value='laag'/>
- <cd:command name='macroname' value='naam'/>
- <cd:command name='mainlanguage' value='hoofdtaal'/>
- <cd:command name='makeupheight' value='zethoogte'/>
- <cd:command name='makeupwidth' value='zetbreedte'/>
- <cd:command name='mar' value='mar'/>
- <cd:command name='marginblock' value='margeblok'/>
- <cd:command name='margindistance' value='margeafstand'/>
- <cd:command name='marginrule' value='kantlijn'/>
- <cd:command name='margintext' value='margetekst'/>
- <cd:command name='margintitle' value='margetitel'/>
- <cd:command name='marginwidth' value='margebreedte'/>
- <cd:command name='marginword' value='margewoord'/>
- <cd:command name='marking' value='markeer'/>
- <cd:command name='markversion' value='markeerversie'/>
- <cd:command name='mathematics' value='wiskunde'/>
- <cd:command name='menubutton' value='menubutton'/>
- <cd:command name='mframed' value='wilijnd'/>
- <cd:command name='midaligned' value='regelmidden'/>
- <cd:command name='mirror' value='spiegel'/>
- <cd:command name='month' value='maand'/>
- <cd:command name='moveformula' value='verplaatsformule'/>
- <cd:command name='moveongrid' value='verplaatsopgrid'/>
- <cd:command name='movesidefloat' value='verplaatszijblok'/>
- <cd:command name='navigating' value='navigerend'/>
- <cd:command name='nodimension' value='geendimensie'/>
- <cd:command name='noheaderandfooterlines' value='geenhoofdenvoetregels'/>
- <cd:command name='noindenting' value='nietinspringen'/>
- <cd:command name='noitem' value='noitem'/>
- <cd:command name='nolist' value='geenlijst'/>
- <cd:command name='nomarking' value='geenmarkering'/>
- <cd:command name='nomoreblocks' value='geenblokkenmeer'/>
- <cd:command name='nomorefiles' value='geenfilesmeer'/>
- <cd:command name='nop' value='nop'/>
- <cd:command name='nospace' value='geenspatie'/>
- <cd:command name='note' value='noot'/>
- <cd:command name='notesymbol' value='notesymbol'/>
- <cd:command name='notopandbottomlines' value='geenbovenenonderregels'/>
- <cd:command name='notsmallcapped' value='nokap'/>
- <cd:command name='nowhitespace' value='geenwitruimte'/>
- <cd:command name='numberofsubpages' value='aantalsubpaginas'/>
- <cd:command name='numbers' value='cijfers'/>
- <cd:command name='outeredgedistance' value='buitenrandafstand'/>
- <cd:command name='outeredgewidth' value='buitenrandbreedte'/>
- <cd:command name='outermargindistance' value='buitenmargeafstand'/>
- <cd:command name='outermarginwidth' value='buitenmargebreedte'/>
- <cd:command name='packed' value='opelkaar'/>
- <cd:command name='page' value='pagina'/>
- <cd:command name='pagebreak' value='pagebreak'/>
- <cd:command name='pagedepth' value='paginadiepte'/>
- <cd:command name='pagenumber' value='paginanummer'/>
- <cd:command name='pageoffset' value='paginaoffset'/>
- <cd:command name='pagereference' value='paginareferentie'/>
- <cd:command name='paperheight' value='papierhoogte'/>
- <cd:command name='paperwidth' value='papierbreedte'/>
- <cd:command name='periods' value='punten'/>
- <cd:command name='placebookmarks' value='plaatsbookmarks'/>
- <cd:command name='placecombinedlist' value='plaatssamengesteldelijst'/>
- <cd:command name='placefloat' value='plaatsplaatsblok'/>
- <cd:command name='placefootnotes' value='plaatsvoetnoten'/>
- <cd:command name='placeformula' value='plaatsformule'/>
- <cd:command name='placeheadnumber' value='plaatskopnummer'/>
- <cd:command name='placeheadtext' value='plaatskoptekst'/>
- <cd:command name='placelegend' value='plaatslegenda'/>
- <cd:command name='placelist' value='plaatslijst'/>
- <cd:command name='placelistofsynonyms' value='plaatslijstmetsynoniemen'/>
- <cd:command name='placelocalfootnotes' value='plaatslokalevoetnoten'/>
- <cd:command name='placelocalnotes' value='placelocalnotes'/>
- <cd:command name='placelogos' value='plaatsbeeldmerken'/>
- <cd:command name='placenamedfloat' value='placenamedfloat'/>
- <cd:command name='placenotes' value='placenotes'/>
- <cd:command name='placeongrid' value='plaatsopgrid'/>
- <cd:command name='placeontopofeachother' value='plaatsonderelkaar'/>
- <cd:command name='placepagenumber' value='plaatspaginanummer'/>
- <cd:command name='placerawlist' value='plaatsruwelijst'/>
- <cd:command name='placereferencelist' value='plaatsreferentielijst'/>
- <cd:command name='placeregister' value='plaatsregister'/>
- <cd:command name='placerule' value='plaatslijn'/>
- <cd:command name='placesidebyside' value='plaatsnaastelkaar'/>
- <cd:command name='placesubformula' value='plaatssubformule'/>
- <cd:command name='placetextvariable' value='plaatstekstvariabele'/>
- <cd:command name='position' value='positioneer'/>
- <cd:command name='positiontext' value='positioneertekst'/>
- <cd:command name='postponenotes' value='postponenotes'/>
- <cd:command name='postponingnotes' value='postponingnotes'/>
- <cd:command name='predefinedfont' value='predefinedfont'/>
- <cd:command name='predefinefont' value='predefinefont'/>
- <cd:command name='presetdocument' value='presetdocument'/>
- <cd:command name='prettyprintbuffer' value='prettyprintbuffer'/>
- <cd:command name='preventmode' value='preventmode'/>
- <cd:command name='printpaperheight' value='printpapierhoogte'/>
- <cd:command name='printpaperwidth' value='printpapierbreedte'/>
- <cd:command name='processblocks' value='verwerkblokken'/>
- <cd:command name='processbodyfontenvironmentlist' value='processbodyfontenvironmentlist'/>
- <cd:command name='processpage' value='verwerkpagina'/>
- <cd:command name='product' value='produkt'/>
- <cd:command name='program' value='programma'/>
- <cd:command name='project' value='projekt'/>
- <cd:command name='publication' value='publicatie'/>
- <cd:command name='quotation' value='citaat'/>
- <cd:command name='quote' value='citeer'/>
- <cd:command name='ran' value='ran'/>
- <cd:command name='redo' value='herhaal'/>
- <cd:command name='redoconvertfont' value='redoconvertfont'/>
- <cd:command name='ref' value='ref'/>
- <cd:command name='reference' value='referentie'/>
- <cd:command name='referral' value='kenmerk'/>
- <cd:command name='referraldate' value='kenmerkdatum'/>
- <cd:command name='referring' value='refereer'/>
- <cd:command name='registerfontclass' value='registerfontclass'/>
- <cd:command name='registerhyphenationexception' value='registerhyphenationexception'/>
- <cd:command name='registerhyphenationpattern' value='registerhyphenationpattern'/>
- <cd:command name='remark' value='toelichting'/>
- <cd:command name='replacefeature' value='replacefeature'/>
- <cd:command name='reset' value='reset'/>
- <cd:command name='resetandaddfeature' value='resetandaddfeature'/>
- <cd:command name='resetcharacteralign' value='resetcharacteralign'/>
- <cd:command name='resetcharacterkerning' value='resetcharacterkerning'/>
- <cd:command name='resetcharacterspacing' value='resetcharacterspacing'/>
- <cd:command name='resetcharacterstripping' value='resetcharacterstripping'/>
- <cd:command name='resetfeature' value='resetfeature'/>
- <cd:command name='resetfontcolorsheme' value='resetfontcolorsheme'/>
- <cd:command name='resetfontfallback' value='resetfontfallback'/>
- <cd:command name='resetfontsolution' value='resetfontsolution'/>
- <cd:command name='resethyphenationfeatures' value='resethyphenationfeatures'/>
- <cd:command name='resetlocalfloats' value='resetlocalfloats'/>
- <cd:command name='resetmarking' value='resetmarkering'/>
- <cd:command name='resetmode' value='resetmode'/>
- <cd:command name='resetnumber' value='resetnummer'/>
- <cd:command name='resetpath' value='resetpath'/>
- <cd:command name='resetperiodkerning' value='resetperiodkerning'/>
- <cd:command name='resetsystemmode' value='resetsystemmode'/>
- <cd:command name='resettextcontent' value='resettekstinhoud'/>
- <cd:command name='resetvisualizers' value='resetvisualizers'/>
- <cd:command name='restoreglobalbodyfont' value='restoreglobalbodyfont'/>
- <cd:command name='retestfeature' value='retestfeature'/>
- <cd:command name='revivefeature' value='revivefeature'/>
- <cd:command name='rightaligned' value='regelrechts'/>
- <cd:command name='rightbottombox' value='rightbottombox'/>
- <cd:command name='rightedgedistance' value='rechterrandafstand'/>
- <cd:command name='rightedgewidth' value='rechterrandbreedte'/>
- <cd:command name='rightline' value='rightline'/>
- <cd:command name='rightmargindistance' value='rechtermargeafstand'/>
- <cd:command name='rightmarginwidth' value='rechtermargebreedte'/>
- <cd:command name='romannumerals' value='romeins'/>
- <cd:command name='rotate' value='roteer'/>
- <cd:command name='savebuffer' value='bewaarbuffer'/>
- <cd:command name='scale' value='schaal'/>
- <cd:command name='screen' value='scherm'/>
- <cd:command name='selectblocks' value='selecteerblokken'/>
- <cd:command name='selectpaper' value='selecteerpapier'/>
- <cd:command name='selectversion' value='selecteerversie'/>
- <cd:command name='setbigbodyfont' value='setbigbodyfont'/>
- <cd:command name='setcharacteralign' value='setcharacteralign'/>
- <cd:command name='setcharacteraligndetail' value='setcharacteraligndetail'/>
- <cd:command name='setcharactercasing' value='setcharactercasing'/>
- <cd:command name='setcharactercleaning' value='setcharactercleaning'/>
- <cd:command name='setcharacterkerning' value='setcharacterkerning'/>
- <cd:command name='setcharacterspacing' value='setcharacterspacing'/>
- <cd:command name='setcharacterstripping' value='setcharacterstripping'/>
- <cd:command name='setcurrentfontclass' value='setcurrentfontclass'/>
- <cd:command name='setfirstline' value='setfirstline'/>
- <cd:command name='setfirstpasscharacteralign' value='setfirstpasscharacteralign'/>
- <cd:command name='setfont' value='setfont'/>
- <cd:command name='setfontcolorsheme' value='setfontcolorsheme'/>
- <cd:command name='setfontfeature' value='setfontfeature'/>
- <cd:command name='setfontsolution' value='setfontsolution'/>
- <cd:command name='setfontstrut' value='setfontstrut'/>
- <cd:command name='sethyphenationfeatures' value='sethyphenationfeatures'/>
- <cd:command name='setmainbodyfont' value='setmainbodyfont'/>
- <cd:command name='setmode' value='setmode'/>
- <cd:command name='setnote' value='setnote'/>
- <cd:command name='setnotetext' value='setnotetext'/>
- <cd:command name='setnumber' value='setnummer'/>
- <cd:command name='setperiodkerning' value='setperiodkerning'/>
- <cd:command name='setsecondpasscharacteralign' value='setsecondpasscharacteralign'/>
- <cd:command name='setsmallbodyfont' value='setsmallbodyfont'/>
- <cd:command name='setsystemmode' value='setsystemmode'/>
- <cd:command name='settextcontent' value='steltekstinhoudin'/>
- <cd:command name='settextvariable' value='kentekstvariabeletoe'/>
- <cd:command name='setupalign' value='steluitlijnenin'/>
- <cd:command name='setupanswerarea' value='stelantwoordgebiedin'/>
- <cd:command name='setuparranging' value='stelarrangerenin'/>
- <cd:command name='setupattachment' value='setupattachment'/>
- <cd:command name='setupbackground' value='stelachtergrondin'/>
- <cd:command name='setupbackgrounds' value='stelachtergrondenin'/>
- <cd:command name='setupblackrules' value='stelblokjesin'/>
- <cd:command name='setupblank' value='stelblankoin'/>
- <cd:command name='setupblock' value='stelblokin'/>
- <cd:command name='setupbodyfont' value='stelkorpsin'/>
- <cd:command name='setupbodyfontenvironment' value='stelkorpsomgevingin'/>
- <cd:command name='setupbottom' value='stelonderin'/>
- <cd:command name='setupbottomtexts' value='stelondertekstenin'/>
- <cd:command name='setupbuffer' value='stelbufferin'/>
- <cd:command name='setupbuttons' value='stelbuttonsin'/>
- <cd:command name='setupcapitals' value='stelkapitalenin'/>
- <cd:command name='setupcaption' value='stelblokkopjein'/>
- <cd:command name='setupcaptions' value='stelblokkopjesin'/>
- <cd:command name='setupcharacteralign' value='setupcharacteralign'/>
- <cd:command name='setupcharacterkerning' value='setupcharacterkerning'/>
- <cd:command name='setupcharacterspacing' value='setupcharacterspacing'/>
- <cd:command name='setupclipping' value='stelclipin'/>
- <cd:command name='setupcolor' value='stelkleurin'/>
- <cd:command name='setupcolors' value='stelkleurenin'/>
- <cd:command name='setupcolumns' value='stelkolommenin'/>
- <cd:command name='setupcolumnset' value='stelkolomgroepin'/>
- <cd:command name='setupcolumnsetlines' value='stelkolomgroepregelsin'/>
- <cd:command name='setupcolumnsetstart' value='stelkolomgroepstartin'/>
- <cd:command name='setupcombinations' value='stelcombinatiesin'/>
- <cd:command name='setupcombinedlist' value='stelsamengesteldelijstin'/>
- <cd:command name='setupcomment' value='stelcommentaarin'/>
- <cd:command name='setupcounter' value='setupcounter'/>
- <cd:command name='setupdescription' value='steldoordefinierenin'/>
- <cd:command name='setupdescriptions' value='steldoordefinierenin'/>
- <cd:command name='setupenumeration' value='steldoornummerenin'/>
- <cd:command name='setupenumerations' value='steldoornummerenin'/>
- <cd:command name='setupexternalfigures' value='stelexternefigurenin'/>
- <cd:command name='setupfield' value='stelveldin'/>
- <cd:command name='setupfields' value='stelveldenin'/>
- <cd:command name='setupfillinlines' value='stelinvulregelsin'/>
- <cd:command name='setupfillinrules' value='stelinvullijnenin'/>
- <cd:command name='setupfirstline' value='setupfirstline'/>
- <cd:command name='setupfloat' value='stelplaatsblokin'/>
- <cd:command name='setupfloats' value='stelplaatsblokkenin'/>
- <cd:command name='setupfloatsplitting' value='stelplaatsbloksplitsenin'/>
- <cd:command name='setupfontexpansion' value='setupfontexpansion'/>
- <cd:command name='setupfontprotrusion' value='setupfontprotrusion'/>
- <cd:command name='setupfonts' value='setupfonts'/>
- <cd:command name='setupfontsolution' value='setupfontsolution'/>
- <cd:command name='setupfooter' value='stelvoetin'/>
- <cd:command name='setupfootertexts' value='stelvoettekstenin'/>
- <cd:command name='setupfootnotedefinition' value='stelvoetnootdefinitiein'/>
- <cd:command name='setupfootnotes' value='stelvoetnotenin'/>
- <cd:command name='setupforms' value='stelformulierenin'/>
- <cd:command name='setupformula' value='stelformulein'/>
- <cd:command name='setupformulas' value='stelformulesin'/>
- <cd:command name='setupframed' value='stelomlijndin'/>
- <cd:command name='setupframedtext' value='stelkadertekstin'/>
- <cd:command name='setupframedtexts' value='stelkadertekstenin'/>
- <cd:command name='setuphead' value='stelkopin'/>
- <cd:command name='setupheader' value='stelhoofdin'/>
- <cd:command name='setupheadertexts' value='stelhoofdtekstenin'/>
- <cd:command name='setupheadnumber' value='stelkopnummerin'/>
- <cd:command name='setupheads' value='stelkoppenin'/>
- <cd:command name='setupheadtext' value='stelkoptekstin'/>
- <cd:command name='setuphyphenation' value='setuphyphenation'/>
- <cd:command name='setuphyphenmark' value='stelkoppeltekenin'/>
- <cd:command name='setupindentedtext' value='stelingesprongentextin'/>
- <cd:command name='setupindenting' value='stelinspringenin'/>
- <cd:command name='setupinmargin' value='stelinmargein'/>
- <cd:command name='setupinteraction' value='stelinteractiein'/>
- <cd:command name='setupinteractionbar' value='stelinteractiebalkin'/>
- <cd:command name='setupinteractionmenu' value='stelinteractiemenuin'/>
- <cd:command name='setupinteractionscreen' value='stelinteractieschermin'/>
- <cd:command name='setupinterlinespace' value='stelinterliniein'/>
- <cd:command name='setupitemgroup' value='stelitemgroepin'/>
- <cd:command name='setupitemgroups' value='stelopsommingenin'/>
- <cd:command name='setupitems' value='stelitemsin'/>
- <cd:command name='setuplabeltext' value='stellabeltekstin'/>
- <cd:command name='setuplanguage' value='steltaalin'/>
- <cd:command name='setuplayout' value='stellayoutin'/>
- <cd:command name='setuplegend' value='stellegendain'/>
- <cd:command name='setuplinenote' value='setuplinenote'/>
- <cd:command name='setuplinenumbering' value='stelregelnummerenin'/>
- <cd:command name='setuplines' value='stelregelsin'/>
- <cd:command name='setuplinewidth' value='stellijndiktein'/>
- <cd:command name='setuplist' value='stellijstin'/>
- <cd:command name='setupmakeup' value='stelopmaakin'/>
- <cd:command name='setupmarginblock' value='stelmargeblokkenin'/>
- <cd:command name='setupmarginblocks' value='stelmargeblokkenin'/>
- <cd:command name='setupmargindata' value='stelinmargein'/>
- <cd:command name='setupmarginrules' value='stelkantlijnin'/>
- <cd:command name='setupmarking' value='stelmarkeringin'/>
- <cd:command name='setupmathalignment' value='stelwiskundeuitlijnenin'/>
- <cd:command name='setupnarrower' value='stelsmallerin'/>
- <cd:command name='setupnotation' value='setupnotation'/>
- <cd:command name='setupnotations' value='setupnotations'/>
- <cd:command name='setupnote' value='setupnote'/>
- <cd:command name='setupnotes' value='setupnotes'/>
- <cd:command name='setupnumber' value='stelnummerin'/>
- <cd:command name='setupnumbering' value='stelnummerenin'/>
- <cd:command name='setupoppositeplacing' value='stelnaastplaatsenin'/>
- <cd:command name='setupoutput' value='steluitvoerin'/>
- <cd:command name='setuppagecomment' value='stelpaginacommentaarin'/>
- <cd:command name='setuppagenumber' value='stelpaginanummerin'/>
- <cd:command name='setuppagenumbering' value='stelpaginanummeringin'/>
- <cd:command name='setuppagetransitions' value='stelpaginaovergangenin'/>
- <cd:command name='setuppalet' value='stelpaletin'/>
- <cd:command name='setuppaper' value='stelpapierin'/>
- <cd:command name='setuppapersize' value='stelpapierformaatin'/>
- <cd:command name='setupparagraphnumbering' value='stelparagraafnummerenin'/>
- <cd:command name='setupparagraphs' value='stelalineasin'/>
- <cd:command name='setupperiodkerning' value='setupperiodkerning'/>
- <cd:command name='setupplacement' value='stelplaatsin'/>
- <cd:command name='setuppositioning' value='stelpositionerenin'/>
- <cd:command name='setupprofiles' value='stelprofielenin'/>
- <cd:command name='setupprograms' value='stelprogrammasin'/>
- <cd:command name='setuppublications' value='stelpublicatiesin'/>
- <cd:command name='setupquote' value='stelciterenin'/>
- <cd:command name='setupreferencelist' value='stelreferentielijstin'/>
- <cd:command name='setupreferencing' value='stelrefererenin'/>
- <cd:command name='setupregister' value='stelregisterin'/>
- <cd:command name='setuprotate' value='stelroterenin'/>
- <cd:command name='setuprule' value='stellijnin'/>
- <cd:command name='setupscreens' value='stelrastersin'/>
- <cd:command name='setupsection' value='stelsectiein'/>
- <cd:command name='setupsectionblock' value='stelsectieblokin'/>
- <cd:command name='setupsorting' value='stelsorterenin'/>
- <cd:command name='setupspacing' value='stelspatieringin'/>
- <cd:command name='setupstartstop' value='stelstartstopin'/>
- <cd:command name='setupstrut' value='stelstrutin'/>
- <cd:command name='setupsubpagenumber' value='stelsubpaginanummerin'/>
- <cd:command name='setupsymbolset' value='stelsymboolsetin'/>
- <cd:command name='setupsynchronization' value='stelsynchronisatiein'/>
- <cd:command name='setupsynchronizationbar' value='stelsynchronisatiebalkin'/>
- <cd:command name='setupsynonyms' value='stelsynoniemenin'/>
- <cd:command name='setupsystem' value='stelsysteemin'/>
- <cd:command name='setuptab' value='steltabin'/>
- <cd:command name='setuptables' value='steltabellenin'/>
- <cd:command name='setuptabulate' value='steltabulatiein'/>
- <cd:command name='setuptext' value='steltekstin'/>
- <cd:command name='setuptextbackground' value='steltekstachtergrondin'/>
- <cd:command name='setuptextnote' value='setuptextnote'/>
- <cd:command name='setuptextposition' value='steltekstpositiein'/>
- <cd:command name='setuptextrules' value='steltekstlijnenin'/>
- <cd:command name='setuptexttexts' value='stelteksttekstenin'/>
- <cd:command name='setuptextvariable' value='steltekstvariabelein'/>
- <cd:command name='setupthinrules' value='steldunnelijnenin'/>
- <cd:command name='setuptolerance' value='steltolerantiein'/>
- <cd:command name='setuptop' value='stelbovenin'/>
- <cd:command name='setuptoptexts' value='stelboventekstenin'/>
- <cd:command name='setuptype' value='steltypein'/>
- <cd:command name='setuptyping' value='steltypenin'/>
- <cd:command name='setupunderbar' value='stelonderstrepenin'/>
- <cd:command name='setupurl' value='stelurlin'/>
- <cd:command name='setupversions' value='stelversiesin'/>
- <cd:command name='setupwhitespace' value='stelwitruimtein'/>
- <cd:command name='setvisualizerfont' value='setvisualizerfont'/>
- <cd:command name='showbodyfont' value='toonkorps'/>
- <cd:command name='showbodyfontenvironment' value='toonkorpsomgeving'/>
- <cd:command name='showcolor' value='toonkleur'/>
- <cd:command name='showcolorgroup' value='toonkleurgroep'/>
- <cd:command name='showcounter' value='showcounter'/>
- <cd:command name='showexternalfigures' value='toonexternefiguren'/>
- <cd:command name='showfields' value='toonvelden'/>
- <cd:command name='showfont' value='showfont'/>
- <cd:command name='showfontdata' value='showfontdata'/>
- <cd:command name='showfontexpansion' value='showfontexpansion'/>
- <cd:command name='showfontitalics' value='showfontitalics'/>
- <cd:command name='showfontkerns' value='showfontkerns'/>
- <cd:command name='showfontparameters' value='showfontparameters'/>
- <cd:command name='showfontstrip' value='showfontstrip'/>
- <cd:command name='showfontstyle' value='showfontstyle'/>
- <cd:command name='showframe' value='toonkader'/>
- <cd:command name='showgrid' value='toongrid'/>
- <cd:command name='showhyphenationtrace' value='showhyphenationtrace'/>
- <cd:command name='showkerning' value='showkerning'/>
- <cd:command name='showlayout' value='toonlayout'/>
- <cd:command name='showmakeup' value='toonopmaak'/>
- <cd:command name='showminimalbaseline' value='showminimalbaseline'/>
- <cd:command name='showpalet' value='toonpalet'/>
- <cd:command name='showprint' value='toonprint'/>
- <cd:command name='showsetups' value='tooninstellingen'/>
- <cd:command name='showstruts' value='toonstruts'/>
- <cd:command name='showsymbolset' value='toonsymboolset'/>
- <cd:command name='smallcapped' value='kap'/>
- <cd:command name='someline' value='eenregel'/>
- <cd:command name='somewhere' value='ergens'/>
- <cd:command name='space' value='spatie'/>
- <cd:command name='specialitem' value='specialitem'/>
- <cd:command name='splitfloat' value='splitsplaatsblok'/>
- <cd:command name='startalignment' value='startuitlijnen'/>
- <cd:command name='startbackground' value='startachtergrond'/>
- <cd:command name='startcoding' value='startcodering'/>
- <cd:command name='startcolor' value='startkleur'/>
- <cd:command name='startcolumnmakeup' value='startkolomopmaak'/>
- <cd:command name='startcolumns' value='startkolommen'/>
- <cd:command name='startcolumnset' value='startkolomgroep'/>
- <cd:command name='startcombination' value='startcombinatie'/>
- <cd:command name='startcomponent' value='startonderdeel'/>
- <cd:command name='startdocument' value='startdocument'/>
- <cd:command name='startenvironment' value='startomgeving'/>
- <cd:command name='startfigure' value='startfiguur'/>
- <cd:command name='startframed' value='startomlijnd'/>
- <cd:command name='startglobal' value='startglobaal'/>
- <cd:command name='startline' value='startregel'/>
- <cd:command name='startlinecorrection' value='startregelcorrectie'/>
- <cd:command name='startlinenote' value='startlinenote'/>
- <cd:command name='startlinenumbering' value='startregelnummeren'/>
- <cd:command name='startlines' value='startregels'/>
- <cd:command name='startlocal' value='startlokaal'/>
- <cd:command name='startlocalfootnotes' value='startlokalevoetnoten'/>
- <cd:command name='startmakeup' value='startopmaak'/>
- <cd:command name='startmarginblock' value='startmargeblok'/>
- <cd:command name='startmarginrule' value='startkantlijn'/>
- <cd:command name='startnarrower' value='startsmaller'/>
- <cd:command name='startopposite' value='startnaast'/>
- <cd:command name='startoverlay' value='startoverlay'/>
- <cd:command name='startoverview' value='startoverzicht'/>
- <cd:command name='startpacked' value='startopelkaar'/>
- <cd:command name='startpositioning' value='startpositioneren'/>
- <cd:command name='startproduct' value='startprodukt'/>
- <cd:command name='startprofile' value='startprofiel'/>
- <cd:command name='startproject' value='startprojekt'/>
- <cd:command name='startquotation' value='startcitaat'/>
- <cd:command name='startraster' value='startraster'/>
- <cd:command name='startsymbolset' value='startsymboolset'/>
- <cd:command name='startsynchronization' value='startsynchronisatie'/>
- <cd:command name='starttable' value='starttabel'/>
- <cd:command name='starttables' value='starttabellen'/>
- <cd:command name='starttext' value='starttekst'/>
- <cd:command name='starttextbackground' value='starttekstachtergrond'/>
- <cd:command name='starttextrule' value='starttekstlijn'/>
- <cd:command name='startunpacked' value='startvanelkaar'/>
- <cd:command name='startversion' value='startversie'/>
- <cd:command name='stopalignment' value='stopuitlijnen'/>
- <cd:command name='stopbackground' value='stopachtergrond'/>
- <cd:command name='stopcoding' value='stopcodering'/>
- <cd:command name='stopcolor' value='stopkleur'/>
- <cd:command name='stopcolumnmakeup' value='stopkolomopmaak'/>
- <cd:command name='stopcolumns' value='stopkolommen'/>
- <cd:command name='stopcolumnset' value='stopkolomgroep'/>
- <cd:command name='stopcombination' value='stopcombinatie'/>
- <cd:command name='stopcomponent' value='stoponderdeel'/>
- <cd:command name='stopdocument' value='stopdocument'/>
- <cd:command name='stopenvironment' value='stopomgeving'/>
- <cd:command name='stopframed' value='stopomlijnd'/>
- <cd:command name='stopglobal' value='stopglobaal'/>
- <cd:command name='stopline' value='stopregel'/>
- <cd:command name='stoplinecorrection' value='stopregelcorrectie'/>
- <cd:command name='stoplinenote' value='stoplinenote'/>
- <cd:command name='stoplinenumbering' value='stopregelnummeren'/>
- <cd:command name='stoplines' value='stopregels'/>
- <cd:command name='stoplocal' value='stoplokaal'/>
- <cd:command name='stoplocalfootnotes' value='stoplokalevoetnoten'/>
- <cd:command name='stopmakeup' value='stopopmaak'/>
- <cd:command name='stopmarginblock' value='stopmargeblok'/>
- <cd:command name='stopmarginrule' value='stopkantlijn'/>
- <cd:command name='stopnarrower' value='stopsmaller'/>
- <cd:command name='stopopposite' value='stopnaast'/>
- <cd:command name='stopoverlay' value='stopoverlay'/>
- <cd:command name='stopoverview' value='stopoverzicht'/>
- <cd:command name='stoppacked' value='stopopelkaar'/>
- <cd:command name='stoppositioning' value='stoppositioneren'/>
- <cd:command name='stopproduct' value='stopprodukt'/>
- <cd:command name='stopprofile' value='stopprofiel'/>
- <cd:command name='stopproject' value='stopprojekt'/>
- <cd:command name='stopquotation' value='stopcitaat'/>
- <cd:command name='stopraster' value='stopraster'/>
- <cd:command name='stopsynchronization' value='stopsynchronisatie'/>
- <cd:command name='stoptable' value='stoptabel'/>
- <cd:command name='stoptables' value='stoptabellen'/>
- <cd:command name='stoptext' value='stoptekst'/>
- <cd:command name='stoptextbackground' value='stoptekstachtergrond'/>
- <cd:command name='stoptextrule' value='stoptekstlijn'/>
- <cd:command name='stopunpacked' value='stopvanelkaar'/>
- <cd:command name='stopversion' value='stopversie'/>
- <cd:command name='stretched' value='uitgerekt'/>
- <cd:command name='strictinspectnextcharacter' value='strictinspectnextcharacter'/>
- <cd:command name='stripcharacter' value='stripcharacter'/>
- <cd:command name='subformulanumber' value='subformulenummer'/>
- <cd:command name='subpagenumber' value='subpaginanummer'/>
- <cd:command name='subtractfeature' value='subtractfeature'/>
- <cd:command name='switchtobodyfont' value='switchnaarkorps'/>
- <cd:command name='switchtorawfont' value='switchtorawfont'/>
- <cd:command name='sym' value='sym'/>
- <cd:command name='symbol' value='symbool'/>
- <cd:command name='symoffset' value='symoffset'/>
- <cd:command name='synchronizationbar' value='synchronisatiebalk'/>
- <cd:command name='synchronize' value='synchroniseer'/>
- <cd:command name='tab' value='tab'/>
- <cd:command name='testcolumn' value='testkolom'/>
- <cd:command name='testfeature' value='testfeature'/>
- <cd:command name='testfeatureonce' value='testfeatureonce'/>
- <cd:command name='testpage' value='testpagina'/>
- <cd:command name='tex' value='tex'/>
- <cd:command name='textbackground' value='tekstachtergrond'/>
- <cd:command name='textcolor' value='textcolor'/>
- <cd:command name='textheight' value='teksthoogte'/>
- <cd:command name='textnote' value='textnote'/>
- <cd:command name='textreference' value='tekstreferentie'/>
- <cd:command name='textrule' value='tekstlijn'/>
- <cd:command name='textvariable' value='tekstvariabele'/>
- <cd:command name='textwidth' value='tekstbreedte'/>
- <cd:command name='thefirstcharacter' value='thefirstcharacter'/>
- <cd:command name='thenormalizedbodyfontsize' value='thenormalizedbodyfontsize'/>
- <cd:command name='theremainingcharacters' value='theremainingcharacters'/>
- <cd:command name='thinrule' value='dunnelijn'/>
- <cd:command name='thinrules' value='dunnelijnen'/>
- <cd:command name='tolinenote' value='tolinenote'/>
- <cd:command name='tooltip' value='suggestie'/>
- <cd:command name='topdistance' value='bovenafstand'/>
- <cd:command name='topheight' value='bovenhoogte'/>
- <cd:command name='topspace' value='kopwit'/>
- <cd:command name='totalnumberofpages' value='totaalaantalpaginas'/>
- <cd:command name='translate' value='vertaal'/>
- <cd:command name='txt' value='txt'/>
- <cd:command name='typ' value='typ'/>
- <cd:command name='type' value='type'/>
- <cd:command name='typebuffer' value='typebuffer'/>
- <cd:command name='typedefinedbuffer' value='typedefinedbuffer'/>
- <cd:command name='typefile' value='typefile'/>
- <cd:command name='typeinlinebuffer' value='typeinlinebuffer'/>
- <cd:command name='typing' value='typing'/>
- <cd:command name='unitmeaning' value='betekenis'/>
- <cd:command name='unknown' value='onbekend'/>
- <cd:command name='unregisterhyphenationpattern' value='unregisterhyphenationpattern'/>
- <cd:command name='useJSscripts' value='gebruikJSscripts'/>
- <cd:command name='useURL' value='gebruikURL'/>
- <cd:command name='useXMLfilter' value='gebruikXMLfilter'/>
- <cd:command name='useblocks' value='gebruikblokken'/>
- <cd:command name='usebodyfont' value='usebodyfont'/>
- <cd:command name='usebodyfontparameter' value='usebodyfontparameter'/>
- <cd:command name='usecommands' value='gebruikcommandos'/>
- <cd:command name='useencoding' value='usecodering'/>
- <cd:command name='useexternaldocument' value='gebruikexterndocument'/>
- <cd:command name='useexternalfigure' value='gebruikexternfiguur'/>
- <cd:command name='useexternalfile' value='gebruikexternefile'/>
- <cd:command name='useexternalfiles' value='gebruikexternefiles'/>
- <cd:command name='useexternalsoundtrack' value='gebruikexterngeluidsfragment'/>
- <cd:command name='usemodule' value='gebruikmodule'/>
- <cd:command name='usemodules' value='gebruikmodules'/>
- <cd:command name='usepath' value='gebruikpad'/>
- <cd:command name='usereferences' value='gebruikreferenties'/>
- <cd:command name='usespecials' value='gebruikspecials'/>
- <cd:command name='usesymbols' value='gebruiksymbolen'/>
- <cd:command name='usetypescript' value='gebruiktypescript'/>
- <cd:command name='usetypescriptfile' value='gebruiktypescriptfile'/>
- <cd:command name='useurl' value='gebruikurl'/>
- <cd:command name='verbatim' value='verbatim'/>
- <cd:command name='version' value='versie'/>
- <cd:command name='vl' value='vl'/>
- <cd:command name='weekday' value='weekdag'/>
- <cd:command name='whitespace' value='witruimte'/>
- <cd:command name='widthspanningtext' value='widthspanningtext'/>
- <cd:command name='wordright' value='woordrechts'/>
- <cd:command name='writebetweenlist' value='schrijftussenlijst'/>
- <cd:command name='writetolist' value='schrijfnaarlijst'/>
- <cd:command name='writetoreferencelist' value='schrijfnaarreferentielijst'/>
- <cd:command name='writetoregister' value='schrijfnaarregister'/>
- </cd:commands>
-
-</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-pe.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-pe.xml
deleted file mode 100644
index d4fbccd2120..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-pe.xml
+++ /dev/null
@@ -1,2237 +0,0 @@
-<?xml version='1.0'?>
-
-<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='pe' version='2008.10.21 19:42'>
-
- <!-- definitions for interface variables for language pe -->
-
- <cd:variables>
- <cd:variable name='Addition' value='جمع'/>
- <cd:variable name='Alphabetic' value='Alphabetic'/>
- <cd:variable name='Balloon' value='بادکنک'/>
- <cd:variable name='Cap' value='Cap'/>
- <cd:variable name='Capital' value='Capital'/>
- <cd:variable name='Character' value='Character'/>
- <cd:variable name='Characters' value='Characters'/>
- <cd:variable name='CloseDocument' value='بستن‌نوشتار'/>
- <cd:variable name='ExitViewer' value='خروج‌نمایشگر'/>
- <cd:variable name='FirstPage' value='صفحه‌اول'/>
- <cd:variable name='FitHeight' value='پرکردن‌ارتفاع'/>
- <cd:variable name='FitWidth' value='پرکردن‌عرض'/>
- <cd:variable name='GotoPage' value='برو‌به‌صفحه'/>
- <cd:variable name='Greek' value='یونانی'/>
- <cd:variable name='Help' value='کمک'/>
- <cd:variable name='HideField' value='پنهان‌میدان'/>
- <cd:variable name='HideLayer' value='پنهان‌لایه'/>
- <cd:variable name='Key' value='کلید'/>
- <cd:variable name='LastPage' value='صفحه‌آخر'/>
- <cd:variable name='LoadForm' value='بارگذاشتن‌فرم'/>
- <cd:variable name='MONTH' value='ماه'/>
- <cd:variable name='New' value='جدید'/>
- <cd:variable name='NextJump' value='پرش‌بعدی'/>
- <cd:variable name='NextPage' value='صفحه‌بعدی'/>
- <cd:variable name='Numbers' value='شماره‌ها'/>
- <cd:variable name='OpenNamedDocument' value='بازکردن‌نوشتار‌ذخیره‌شده'/>
- <cd:variable name='Ordinal' value='Ordinal'/>
- <cd:variable name='Paragraph' value='پاراگراف'/>
- <cd:variable name='PauseMovie' value='ایست‌فیلم'/>
- <cd:variable name='PauseRendering' value='توقف‌تعبیر'/>
- <cd:variable name='PauseSound' value='ایست‌صدا'/>
- <cd:variable name='PreviousJump' value='پرش‌قبلی'/>
- <cd:variable name='PreviousPage' value='صفحه‌قبلی'/>
- <cd:variable name='PrintDocument' value='چاپ‌نوشتار'/>
- <cd:variable name='Query' value='پرسش'/>
- <cd:variable name='QueryAgain' value='پرسش‌دوباره'/>
- <cd:variable name='ResetForm' value='دوباره‌نشانی‌فرم'/>
- <cd:variable name='ResumeMovie' value='ادامه‌فیلم'/>
- <cd:variable name='ResumeRendering' value='ادامه‌تعبیر'/>
- <cd:variable name='ResumeSound' value='ادامه‌صدا'/>
- <cd:variable name='Romannumerals' value='اعداد‌بزرگ‌لاتین'/>
- <cd:variable name='SaveDocument' value='ذخیره‌نوشتار'/>
- <cd:variable name='SaveForm' value='ذخیره‌فرم'/>
- <cd:variable name='SaveNamedDocument' value='ذخیره‌نوشتار‌بانام'/>
- <cd:variable name='SearchAgain' value='جستجوی‌دوباره'/>
- <cd:variable name='SearchDocument' value='جستجوی‌نوشتار'/>
- <cd:variable name='ShowBookmarks' value='نمایش‌چوبخط'/>
- <cd:variable name='ShowField' value='نمایش‌میدان'/>
- <cd:variable name='ShowThumbs' value='نمایش‌شصت'/>
- <cd:variable name='StartMovie' value='شروع‌فیلم'/>
- <cd:variable name='StartRendering' value='شروع‌تعبیر'/>
- <cd:variable name='StartSound' value='شروع‌صدا'/>
- <cd:variable name='StopMovie' value='پایان‌فیلم'/>
- <cd:variable name='StopRendering' value='پایان‌تعبیر'/>
- <cd:variable name='StopSound' value='پایان‌صدا'/>
- <cd:variable name='SubmitForm' value='تسلیم‌فرم'/>
- <cd:variable name='ToggleLayer' value='تغییرلایه'/>
- <cd:variable name='ToggleViewer' value='تغییرنمایشگر'/>
- <cd:variable name='URL' value='URL'/>
- <cd:variable name='VideLayer' value='VideLayer'/>
- <cd:variable name='ViewerHelp' value='کمک‌نمایشگر'/>
- <cd:variable name='WEEKDAY' value='روزهفته'/>
- <cd:variable name='WORD' value='کلمه'/>
- <cd:variable name='WORDS' value='WORDS'/>
- <cd:variable name='Word' value='Word'/>
- <cd:variable name='Words' value='Words'/>
- <cd:variable name='abbreviation' value='اختصار'/>
- <cd:variable name='abbreviations' value='اختصارات'/>
- <cd:variable name='absolute' value='قطعی'/>
- <cd:variable name='action' value='کنش'/>
- <cd:variable name='after' value='بعداز'/>
- <cd:variable name='all' value='همه'/>
- <cd:variable name='alphabetic' value='alphabetic'/>
- <cd:variable name='always' value='همواره'/>
- <cd:variable name='anchor' value='anchor'/>
- <cd:variable name='and' value='and'/>
- <cd:variable name='answerarea' value='answerarea'/>
- <cd:variable name='appendices' value='پیوستها'/>
- <cd:variable name='appendix' value='پیوست'/>
- <cd:variable name='april' value='آوریل'/>
- <cd:variable name='aside' value='aside'/>
- <cd:variable name='atleftmargin' value='درحاشیه‌چپ'/>
- <cd:variable name='atmargin' value='درحاشیه'/>
- <cd:variable name='atpage' value='درصفحه'/>
- <cd:variable name='atrightmargin' value='درحاشیه‌راست'/>
- <cd:variable name='attachment' value='attachment'/>
- <cd:variable name='august' value='آگوست'/>
- <cd:variable name='author' value='author'/>
- <cd:variable name='auto' value='خودکار'/>
- <cd:variable name='autointro' value='پیشگفتارخودکار'/>
- <cd:variable name='autopunctuation' value='autopunctuation'/>
- <cd:variable name='back' value='پشت'/>
- <cd:variable name='background' value='پس‌زمینه'/>
- <cd:variable name='backmatter' value='پس‌مطلب'/>
- <cd:variable name='backpart' value='پس‌قسمت'/>
- <cd:variable name='backspace' value='فضای‌پشت'/>
- <cd:variable name='backward' value='عقب‌گرد'/>
- <cd:variable name='bbl' value='bbl'/>
- <cd:variable name='before' value='قبل‌از'/>
- <cd:variable name='begin' value='begin'/>
- <cd:variable name='bib' value='bib'/>
- <cd:variable name='big' value='بزرگ'/>
- <cd:variable name='bigbodyfont' value='قلم‌بدنه‌بزرگ'/>
- <cd:variable name='bigger' value='bigger'/>
- <cd:variable name='bigpreference' value='اولویت‌بزرگ'/>
- <cd:variable name='blank' value='خالی'/>
- <cd:variable name='block' value='block'/>
- <cd:variable name='blockquote' value='نقل‌بلوک'/>
- <cd:variable name='bodymatter' value='مطلب‌بدنه'/>
- <cd:variable name='bodypart' value='قسمت‌بدنه'/>
- <cd:variable name='bold' value='مشکی'/>
- <cd:variable name='bolditalic' value='ایتالیک‌مشکی'/>
- <cd:variable name='boldslanted' value='خوابیده‌مشکی'/>
- <cd:variable name='bookmark' value='چوبخط'/>
- <cd:variable name='both' value='هردو'/>
- <cd:variable name='bothtext' value='bothtext'/>
- <cd:variable name='bottom' value='پایین'/>
- <cd:variable name='box' value='box'/>
- <cd:variable name='brief' value='مختصر'/>
- <cd:variable name='broad' value='گسترده'/>
- <cd:variable name='buffer' value='بافر'/>
- <cd:variable name='by' value='بوسیله'/>
- <cd:variable name='calligraphic' value='خوشنویسی'/>
- <cd:variable name='camel' value='camel'/>
- <cd:variable name='cap' value='cap'/>
- <cd:variable name='capital' value='capital'/>
- <cd:variable name='category' value='category'/>
- <cd:variable name='cd:character' value='cd:character'/>
- <cd:variable name='cd:font' value='cd:font'/>
- <cd:variable name='center' value='مرکز'/>
- <cd:variable name='centerlast' value='centerlast'/>
- <cd:variable name='chapter' value='فصل'/>
- <cd:variable name='character' value='حرف'/>
- <cd:variable name='characters' value='حرفها'/>
- <cd:variable name='chemical' value='chemical'/>
- <cd:variable name='chemicals' value='chemicals'/>
- <cd:variable name='chemistry' value='chemistry'/>
- <cd:variable name='cite' value='cite'/>
- <cd:variable name='closed' value='closed'/>
- <cd:variable name='color' value='رنگ'/>
- <cd:variable name='column' value='ستون'/>
- <cd:variable name='columns' value='ستونها'/>
- <cd:variable name='combination' value='combination'/>
- <cd:variable name='command' value='فرمان'/>
- <cd:variable name='commands' value='فرمانها'/>
- <cd:variable name='comment' value='توضیح'/>
- <cd:variable name='component' value='مولفه'/>
- <cd:variable name='compressseparator' value='compressseparator'/>
- <cd:variable name='compressstopper' value='compressstopper'/>
- <cd:variable name='concept' value='مفهوم'/>
- <cd:variable name='construction' value='construction'/>
- <cd:variable name='content' value='محتوا'/>
- <cd:variable name='contents' value='محتویات'/>
- <cd:variable name='continue' value='ادامه'/>
- <cd:variable name='continued' value='continued'/>
- <cd:variable name='controls' value='کنترلها'/>
- <cd:variable name='conversion' value='تبدیل'/>
- <cd:variable name='current' value='جاری'/>
- <cd:variable name='cutspace' value='فضای‌برش'/>
- <cd:variable name='dataset' value='dataset'/>
- <cd:variable name='date' value='تاریخ'/>
- <cd:variable name='day' value='روز'/>
- <cd:variable name='december' value='دسامبر'/>
- <cd:variable name='default' value='پیش‌فرض'/>
- <cd:variable name='depth' value='عمق'/>
- <cd:variable name='description' value='شرح'/>
- <cd:variable name='disable' value='ناتوان'/>
- <cd:variable name='display' value='نمایش'/>
- <cd:variable name='dot' value='نقطه'/>
- <cd:variable name='doublesided' value='دورو'/>
- <cd:variable name='down' value='down'/>
- <cd:variable name='each' value='هر'/>
- <cd:variable name='edge' value='لبه'/>
- <cd:variable name='effective' value='effective'/>
- <cd:variable name='eight' value='eight'/>
- <cd:variable name='embed' value='embed'/>
- <cd:variable name='empty' value='تهی'/>
- <cd:variable name='enable' value='enable'/>
- <cd:variable name='end' value='end'/>
- <cd:variable name='endnote' value='ته‌نوشت'/>
- <cd:variable name='enumeration' value='شماره‌بندی'/>
- <cd:variable name='environment' value='محیط'/>
- <cd:variable name='even' value='زوج'/>
- <cd:variable name='export' value='export'/>
- <cd:variable name='external' value='خارجی'/>
- <cd:variable name='extremestretch' value='extremestretch'/>
- <cd:variable name='fact' value='fact'/>
- <cd:variable name='fallback' value='fallback'/>
- <cd:variable name='february' value='فوریه'/>
- <cd:variable name='field' value='field'/>
- <cd:variable name='figure' value='شکل'/>
- <cd:variable name='figures' value='شکلها'/>
- <cd:variable name='file' value='پرونده'/>
- <cd:variable name='final' value='نهایی'/>
- <cd:variable name='first' value='اولی'/>
- <cd:variable name='firstcolumn' value='ستون‌اول'/>
- <cd:variable name='firstpage' value='صفحه‌اول'/>
- <cd:variable name='firstsubpage' value='زیرصفحه‌اول'/>
- <cd:variable name='fit' value='پرکردن'/>
- <cd:variable name='five' value='پنج'/>
- <cd:variable name='fix' value='ثابت‌کن'/>
- <cd:variable name='fixed' value='ثابت'/>
- <cd:variable name='flexible' value='انعطافپذیر'/>
- <cd:variable name='float' value='شناور'/>
- <cd:variable name='flushinner' value='پمپ‌داخلی'/>
- <cd:variable name='flushleft' value='پمپ‌چپ'/>
- <cd:variable name='flushouter' value='پمپ‌خارجی'/>
- <cd:variable name='flushright' value='پمپ‌راست'/>
- <cd:variable name='followingpage' value='followingpage'/>
- <cd:variable name='font' value='font'/>
- <cd:variable name='footer' value='ته‌برگ'/>
- <cd:variable name='footnote' value='پانوشت'/>
- <cd:variable name='force' value='اجبار'/>
- <cd:variable name='foreground' value='پیش‌زمینه'/>
- <cd:variable name='formula' value='فرمول'/>
- <cd:variable name='formulas' value='فرمولها'/>
- <cd:variable name='forward' value='به‌جلو'/>
- <cd:variable name='four' value='چهار'/>
- <cd:variable name='fractions' value='fractions'/>
- <cd:variable name='frame' value='قالب'/>
- <cd:variable name='framedtext' value='متن‌قالبی'/>
- <cd:variable name='friday' value='جمعه'/>
- <cd:variable name='frontmatter' value='پیش‌مطلب'/>
- <cd:variable name='frontpart' value='پیش‌قسمت'/>
- <cd:variable name='fullhz' value='fullhz'/>
- <cd:variable name='global' value='سراسری'/>
- <cd:variable name='graphic' value='گرافیک'/>
- <cd:variable name='graphics' value='گرافیکها'/>
- <cd:variable name='gray' value='خاکستری'/>
- <cd:variable name='greek' value='یونانی'/>
- <cd:variable name='grid' value='توری'/>
- <cd:variable name='halfline' value='نیم‌خط'/>
- <cd:variable name='handwritten' value='دست‌نوشته'/>
- <cd:variable name='hang' value='بیاویز'/>
- <cd:variable name='hanging' value='آویزان'/>
- <cd:variable name='hangingboth' value='hangingboth'/>
- <cd:variable name='head' value='سر'/>
- <cd:variable name='header' value='سربرگ'/>
- <cd:variable name='headintext' value='headintext'/>
- <cd:variable name='height' value='ارتفاع'/>
- <cd:variable name='helptext' value='متن‌کمکی'/>
- <cd:variable name='hencefore' value='hencefore'/>
- <cd:variable name='here' value='اینجا'/>
- <cd:variable name='hereafter' value='ازاین‌به‌بعد'/>
- <cd:variable name='hidden' value='پنهانی'/>
- <cd:variable name='hiddenbar' value='hiddenbar'/>
- <cd:variable name='hiding' value='پنهان‌کردن'/>
- <cd:variable name='high' value='بلند'/>
- <cd:variable name='horizontal' value='افقی'/>
- <cd:variable name='hyphenated' value='شکسته'/>
- <cd:variable name='hz' value='hz'/>
- <cd:variable name='inbetween' value='دربین'/>
- <cd:variable name='index' value='نمایه'/>
- <cd:variable name='indices' value='نمایه‌ها'/>
- <cd:variable name='inherit' value='ارث‌بردن'/>
- <cd:variable name='ininner' value='درداخلی'/>
- <cd:variable name='ininneredge' value='ininneredge'/>
- <cd:variable name='ininnermargin' value='ininnermargin'/>
- <cd:variable name='inleft' value='درون‌چپ'/>
- <cd:variable name='inleftedge' value='درلبه‌چپ'/>
- <cd:variable name='inleftmargin' value='درحاشیه‌چپ'/>
- <cd:variable name='inline' value='inline'/>
- <cd:variable name='inmargin' value='درون‌حاشیه'/>
- <cd:variable name='inner' value='داخلی'/>
- <cd:variable name='inneredge' value='لبه‌داخلی'/>
- <cd:variable name='innermargin' value='حاشیه‌داخلی'/>
- <cd:variable name='inother' value='inother'/>
- <cd:variable name='inouter' value='درخارجی'/>
- <cd:variable name='inouteredge' value='inouteredge'/>
- <cd:variable name='inoutermargin' value='inoutermargin'/>
- <cd:variable name='inright' value='درون‌راست'/>
- <cd:variable name='inrightedge' value='درلبه‌راست'/>
- <cd:variable name='inrightmargin' value='درحاشیه‌راست'/>
- <cd:variable name='integral' value='integral'/>
- <cd:variable name='interaction' value='پانل'/>
- <cd:variable name='interactionmenu' value='منوی‌پانل'/>
- <cd:variable name='interactive' value='interactive'/>
- <cd:variable name='intermezzi' value='میان‌پرده‌ها'/>
- <cd:variable name='intermezzo' value='میان‌پرده'/>
- <cd:variable name='intext' value='درون‌متن'/>
- <cd:variable name='intro' value='پیشگفتار'/>
- <cd:variable name='invertedshort' value='invertedshort'/>
- <cd:variable name='italic' value='ایتالیک'/>
- <cd:variable name='italicbold' value='مشکی‌ایتالیک'/>
- <cd:variable name='item' value='آیتم'/>
- <cd:variable name='itemize' value='آیتم‌بندی'/>
- <cd:variable name='its' value='آیم'/>
- <cd:variable name='january' value='ژانویه'/>
- <cd:variable name='joinedup' value='متصل‌بالا'/>
- <cd:variable name='july' value='ژولای'/>
- <cd:variable name='june' value='ژوئن'/>
- <cd:variable name='keep' value='نگهدار'/>
- <cd:variable name='kerncharacters' value='kerncharacters'/>
- <cd:variable name='knockout' value='knockout'/>
- <cd:variable name='label' value='برچسب'/>
- <cd:variable name='landscape' value='صفحه‌گسترده'/>
- <cd:variable name='last' value='آخرین'/>
- <cd:variable name='lastcolumn' value='آخرین‌ستون'/>
- <cd:variable name='lastpage' value='صفحه‌آخر'/>
- <cd:variable name='lastpagenumber' value='شماه‌صفحه‌آخر'/>
- <cd:variable name='lastsubpage' value='زیرصفحه‌آخر'/>
- <cd:variable name='layer' value='layer'/>
- <cd:variable name='left' value='چپ'/>
- <cd:variable name='leftedge' value='لبه‌چپ'/>
- <cd:variable name='lefthanging' value='آویزان‌چپ'/>
- <cd:variable name='leftmargin' value='حاشیه‌چپ'/>
- <cd:variable name='leftpage' value='صفحه‌چپ'/>
- <cd:variable name='lefttoright' value='lefttoright'/>
- <cd:variable name='legend' value='راهنما'/>
- <cd:variable name='less' value='less'/>
- <cd:variable name='lesshyphenation' value='شکست‌کلمات‌کمتر'/>
- <cd:variable name='letterspacing' value='letterspacing'/>
- <cd:variable name='line' value='خط'/>
- <cd:variable name='linenote' value='خط‌نوشت'/>
- <cd:variable name='lines' value='خطها'/>
- <cd:variable name='linked' value='linked'/>
- <cd:variable name='list' value='لیست'/>
- <cd:variable name='local' value='موضعی'/>
- <cd:variable name='localenvironment' value='محیط‌موضعی'/>
- <cd:variable name='logo' value='آرم'/>
- <cd:variable name='logos' value='آرمها'/>
- <cd:variable name='lohi' value='پابا'/>
- <cd:variable name='long' value='long'/>
- <cd:variable name='loose' value='شل'/>
- <cd:variable name='low' value='پایین'/>
- <cd:variable name='ls' value='ls'/>
- <cd:variable name='makeup' value='آرایش'/>
- <cd:variable name='mar' value='حاش'/>
- <cd:variable name='march' value='مارس'/>
- <cd:variable name='margin' value='حاشیه'/>
- <cd:variable name='marginedge' value='لبه‌حاشیه'/>
- <cd:variable name='margintext' value='متن‌حاشیه'/>
- <cd:variable name='margintitle' value='عنوان‌حاشیه'/>
- <cd:variable name='marking' value='نشانه‌گذاری'/>
- <cd:variable name='math' value='math'/>
- <cd:variable name='mathalignment' value='تنظیم‌ریاضی'/>
- <cd:variable name='mathcases' value='حالتهای‌ریاضی'/>
- <cd:variable name='mathematics' value='ریاضی'/>
- <cd:variable name='mathmatrix' value='ماتریش‌ریاضی'/>
- <cd:variable name='max' value='بیشترین'/>
- <cd:variable name='maxdepth' value='maxdepth'/>
- <cd:variable name='maxheight' value='maxheight'/>
- <cd:variable name='maxwidth' value='maxwidth'/>
- <cd:variable name='may' value='مه'/>
- <cd:variable name='mediaeval' value='mediaeval'/>
- <cd:variable name='medium' value='متوسط'/>
- <cd:variable name='middle' value='میان'/>
- <cd:variable name='min' value='کمترین'/>
- <cd:variable name='mindepth' value='mindepth'/>
- <cd:variable name='minheight' value='کمترین‌ارتفاع'/>
- <cd:variable name='minwidth' value='کمترین‌عرض'/>
- <cd:variable name='mirrored' value='منعکس'/>
- <cd:variable name='mixed' value='mixed'/>
- <cd:variable name='monday' value='دوشنبه'/>
- <cd:variable name='mono' value='مونو'/>
- <cd:variable name='monobold' value='monobold'/>
- <cd:variable name='mononormal' value='mononormal'/>
- <cd:variable name='month' value='ماه'/>
- <cd:variable name='more' value='more'/>
- <cd:variable name='morehyphenation' value='شکست‌کلمات‌بیشتر'/>
- <cd:variable name='name' value='نام'/>
- <cd:variable name='narrow' value='نازک'/>
- <cd:variable name='negative' value='منفی'/>
- <cd:variable name='never' value='هیچگاه'/>
- <cd:variable name='new' value='جدید'/>
- <cd:variable name='next' value='بعدی'/>
- <cd:variable name='nextevenpage' value='صفحه‌زوج‌بعدی'/>
- <cd:variable name='nextoddpage' value='صفحه‌فردبعدی'/>
- <cd:variable name='nextpage' value='صفحه‌بعدی'/>
- <cd:variable name='nextsubpage' value='زیرصفحه‌بعدی'/>
- <cd:variable name='nine' value='nine'/>
- <cd:variable name='no' value='نه'/>
- <cd:variable name='nocheck' value='بدون‌بررسی'/>
- <cd:variable name='nodepth' value='nodepth'/>
- <cd:variable name='nofit' value='بدون‌پرکردن'/>
- <cd:variable name='nogrid' value='بدون‌توری'/>
- <cd:variable name='noheight' value='noheight'/>
- <cd:variable name='nohz' value='nohz'/>
- <cd:variable name='noline' value='noline'/>
- <cd:variable name='nomarking' value='بدون‌نشانه‌گذاری'/>
- <cd:variable name='nomenubar' value='nomenubar'/>
- <cd:variable name='none' value='هیچکدام'/>
- <cd:variable name='nonumber' value='بدون‌شماره'/>
- <cd:variable name='norepeat' value='norepeat'/>
- <cd:variable name='normal' value='نرمال'/>
- <cd:variable name='normalshort' value='normalshort'/>
- <cd:variable name='nospacing' value='بدون‌فضاگذاری'/>
- <cd:variable name='nostopper' value='nostopper'/>
- <cd:variable name='not' value='بدون'/>
- <cd:variable name='notation' value='notation'/>
- <cd:variable name='note' value='note'/>
- <cd:variable name='nothanging' value='بدون‌آویزان‌کردن'/>
- <cd:variable name='nothyphenated' value='بدون‌شکست'/>
- <cd:variable name='notjoinedup' value='notjoinedup'/>
- <cd:variable name='november' value='نوامبر'/>
- <cd:variable name='nowhere' value='هیچ‌حا'/>
- <cd:variable name='nowhite' value='سفید‌نه'/>
- <cd:variable name='number' value='شماره'/>
- <cd:variable name='numbers' value='شماره‌ها'/>
- <cd:variable name='october' value='اکتبر'/>
- <cd:variable name='odd' value='فرد'/>
- <cd:variable name='off' value='خاموش'/>
- <cd:variable name='offset' value='آفست'/>
- <cd:variable name='old' value='قدیمی'/>
- <cd:variable name='oldstyle' value='oldstyle'/>
- <cd:variable name='on' value='روی'/>
- <cd:variable name='one' value='یک'/>
- <cd:variable name='opposite' value='مخالف'/>
- <cd:variable name='ordinal' value='ordinal'/>
- <cd:variable name='outer' value='خارجی'/>
- <cd:variable name='outeredge' value='لبه‌خارجی'/>
- <cd:variable name='outermargin' value='حاشیه‌خارجی'/>
- <cd:variable name='overbar' value='میله‌رو'/>
- <cd:variable name='overbars' value='میله‌ها‌رو'/>
- <cd:variable name='overlay' value='پوشش'/>
- <cd:variable name='overprint' value='overprint'/>
- <cd:variable name='overstrike' value='خط‌زدن'/>
- <cd:variable name='overstrikes' value='خط‌زدنها'/>
- <cd:variable name='packed' value='فشرده'/>
- <cd:variable name='page' value='صفحه'/>
- <cd:variable name='pagecomment' value='توضیح‌صفحه'/>
- <cd:variable name='pagenumber' value='شماره‌صفحه'/>
- <cd:variable name='paper' value='برگ'/>
- <cd:variable name='paragraph' value='پاراگراف'/>
- <cd:variable name='part' value='قسمت'/>
- <cd:variable name='positive' value='مثبت'/>
- <cd:variable name='postponing' value='تاخیر'/>
- <cd:variable name='postscript' value='پست‌اسکریپت'/>
- <cd:variable name='precedingpage' value='precedingpage'/>
- <cd:variable name='preference' value='ترجیح'/>
- <cd:variable name='preview' value='پیش‌دید'/>
- <cd:variable name='previous' value='قبلی'/>
- <cd:variable name='previousevenpage' value='صفحه‌زوج‌قبلی'/>
- <cd:variable name='previousoddpage' value='صفحه‌فردقبلی'/>
- <cd:variable name='previouspage' value='صفحه‌قبلی'/>
- <cd:variable name='previoussubpage' value='زیرصفحه‌قبلی'/>
- <cd:variable name='print' value='print'/>
- <cd:variable name='printable' value='قابل‌چاپ'/>
- <cd:variable name='process' value='پردازش'/>
- <cd:variable name='product' value='محصول'/>
- <cd:variable name='program' value='برنامه'/>
- <cd:variable name='project' value='پروژه'/>
- <cd:variable name='protected' value='حفاظت‌شده'/>
- <cd:variable name='quadruple' value='quadruple'/>
- <cd:variable name='quarterline' value='quarterline'/>
- <cd:variable name='quotation' value='نقل‌قول'/>
- <cd:variable name='quote' value='نقل'/>
- <cd:variable name='ran' value='برد'/>
- <cd:variable name='random' value='تصادفی'/>
- <cd:variable name='readonly' value='تنهاخواندنی'/>
- <cd:variable name='rectangular' value='چهارگوشه'/>
- <cd:variable name='reference' value='مرجع'/>
- <cd:variable name='referral' value='مراجعه'/>
- <cd:variable name='region' value='region'/>
- <cd:variable name='register' value='ثبت'/>
- <cd:variable name='regular' value='منظم'/>
- <cd:variable name='relative' value='نسبی'/>
- <cd:variable name='repeat' value='تکرار'/>
- <cd:variable name='required' value='موردنیاز'/>
- <cd:variable name='reset' value='بازنشانی'/>
- <cd:variable name='reverse' value='برعکس'/>
- <cd:variable name='right' value='راست'/>
- <cd:variable name='rightedge' value='لبه‌راست'/>
- <cd:variable name='righthanging' value='آویزان‌کردن‌راست'/>
- <cd:variable name='rightmargin' value='حاشیه‌راست'/>
- <cd:variable name='rightpage' value='صفحه‌راست'/>
- <cd:variable name='righttoleft' value='righttoleft'/>
- <cd:variable name='roman' value='رومن'/>
- <cd:variable name='romannumerals' value='شماره‌لاتین'/>
- <cd:variable name='rotate' value='دوران'/>
- <cd:variable name='rotated' value='دوران‌یافته'/>
- <cd:variable name='round' value='گرد'/>
- <cd:variable name='row' value='سطر'/>
- <cd:variable name='rule' value='خط'/>
- <cd:variable name='samepage' value='همان‌صفحه'/>
- <cd:variable name='sans' value='سانز'/>
- <cd:variable name='sansbold' value='مشکی‌سانز'/>
- <cd:variable name='sansnormal' value='sansnormal'/>
- <cd:variable name='sansserif' value='سانزسریف'/>
- <cd:variable name='saturday' value='شنبه'/>
- <cd:variable name='screen' value='پرده'/>
- <cd:variable name='section' value='بخش'/>
- <cd:variable name='sectionblockenvironment' value='محیط‌بلوک‌بخش'/>
- <cd:variable name='sectionnumber' value='شماره‌بخش'/>
- <cd:variable name='see' value='ببینید'/>
- <cd:variable name='selectfont' value='selectfont'/>
- <cd:variable name='separator' value='separator'/>
- <cd:variable name='september' value='سپتامبر'/>
- <cd:variable name='serif' value='سریف'/>
- <cd:variable name='serifbold' value='serifbold'/>
- <cd:variable name='serifnormal' value='serifnormal'/>
- <cd:variable name='serried' value='تنگ‌هم'/>
- <cd:variable name='setups' value='setups'/>
- <cd:variable name='seven' value='seven'/>
- <cd:variable name='sheet' value='ورقه'/>
- <cd:variable name='shiftdown' value='shiftdown'/>
- <cd:variable name='shiftup' value='shiftup'/>
- <cd:variable name='short' value='short'/>
- <cd:variable name='simplefonts' value='simplefonts'/>
- <cd:variable name='simplelist' value='simplelist'/>
- <cd:variable name='singlesided' value='یک‌رو'/>
- <cd:variable name='six' value='six'/>
- <cd:variable name='slanted' value='خوابیده'/>
- <cd:variable name='slantedbold' value='مشکی‌خوابیده'/>
- <cd:variable name='small' value='کوچک'/>
- <cd:variable name='smallbodyfont' value='قلم‌بدنه‌کوچک'/>
- <cd:variable name='smallbold' value='مشکی‌کوچک'/>
- <cd:variable name='smallbolditalic' value='ایتالیک‌مشکی‌کوچک'/>
- <cd:variable name='smallboldslanted' value='خوابیده‌مشکی‌کوچک'/>
- <cd:variable name='smallcaps' value='smallcaps'/>
- <cd:variable name='smaller' value='smaller'/>
- <cd:variable name='smallitalic' value='ایتالیک‌کوچک'/>
- <cd:variable name='smallitalicbold' value='مشکی‌ایتالیک‌کوچک'/>
- <cd:variable name='smallnormal' value='نرمال‌کوچک'/>
- <cd:variable name='smallslanted' value='خوابیده‌کوچک'/>
- <cd:variable name='smallslantedbold' value='مشکی‌خوابیده‌کوچک'/>
- <cd:variable name='smalltype' value='تایپ‌کوچک'/>
- <cd:variable name='somewhere' value='جایی'/>
- <cd:variable name='sorted' value='مرتب'/>
- <cd:variable name='sorting' value='sorting'/>
- <cd:variable name='space' value='فضا'/>
- <cd:variable name='spacing' value='فضاگذاری'/>
- <cd:variable name='speech' value='سخنرانی'/>
- <cd:variable name='split' value='شکافتن'/>
- <cd:variable name='spot' value='لکه'/>
- <cd:variable name='standard' value='استاندارد'/>
- <cd:variable name='start' value='شروع'/>
- <cd:variable name='starter' value='starter'/>
- <cd:variable name='sticker' value='دشنه'/>
- <cd:variable name='stop' value='پایان'/>
- <cd:variable name='stopper' value='ایست'/>
- <cd:variable name='stretch' value='بکش'/>
- <cd:variable name='stretched' value='stretched'/>
- <cd:variable name='strict' value='اکید'/>
- <cd:variable name='strong' value='محکم'/>
- <cd:variable name='strut' value='بست'/>
- <cd:variable name='sub' value='زیر'/>
- <cd:variable name='subbackward' value='زیرعقب‌گرد'/>
- <cd:variable name='subformula' value='زیرفرمول'/>
- <cd:variable name='subforward' value='زیرجلوگرد'/>
- <cd:variable name='subject' value='موضوع'/>
- <cd:variable name='subpage' value='زیرصفحه'/>
- <cd:variable name='subs' value='subs'/>
- <cd:variable name='subsection' value='زیربخش'/>
- <cd:variable name='subsubject' value='زیرموضوع'/>
- <cd:variable name='subsubsection' value='زیرزیربخش'/>
- <cd:variable name='subsubsubject' value='زیرزیرموضوع'/>
- <cd:variable name='subsubsubsection' value='زیرزیرزیربخش'/>
- <cd:variable name='subsubsubsubject' value='زیرزیرزیرموضوع'/>
- <cd:variable name='subsubsubsubsection' value='زیرزیرزیرزیربخش'/>
- <cd:variable name='subsubsubsubsubject' value='زیرزیرزیرزیرموضوع'/>
- <cd:variable name='subsubsubsubsubsection' value='زیرزیرزیرزیرزیربخش'/>
- <cd:variable name='subsubsubsubsubsubject' value='زیرزیرزیرزیرزیرموضوع'/>
- <cd:variable name='subsubsubsubsubsubsection' value='زیرزیرزیرزیرزیرزیربخش'/>
- <cd:variable name='subsubsubsubsubsubsubject' value='زیرزیرزیرزیرزیرزیرموضوع'/>
- <cd:variable name='subsubsubsubsubsubsubsection' value='زیرزیرزیرزیرزیرزیرزیربخش'/>
- <cd:variable name='subsubsubsubsubsubsubsubject' value='زیرزیرزیرزیرزیرزیرزیرموضوع'/>
- <cd:variable name='subsubsubsubsubsubsubsubsection' value='زیرزیرزیرزیرزیرزیرزیرزیربخش'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubject' value='زیرزیرزیرزیرزیرزیرزیرزیرموضوع'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubsection' value='زیرزیرزیرزیرزیرزیرزیرزیرزیربخش'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubsubject' value='زیرزیرزیرزیرزیرزیرزیرزیرزیرموضوع'/>
- <cd:variable name='sunday' value='یک‌شنبه'/>
- <cd:variable name='support' value='حمایت'/>
- <cd:variable name='sym' value='نم'/>
- <cd:variable name='symbol' value='نماد'/>
- <cd:variable name='synchronize' value='تطابق'/>
- <cd:variable name='synonym' value='synonym'/>
- <cd:variable name='system' value='سیستم'/>
- <cd:variable name='table' value='جدول'/>
- <cd:variable name='tablehead' value='سرجدول'/>
- <cd:variable name='tables' value='جدولها'/>
- <cd:variable name='tabletail' value='دنباله‌جدول'/>
- <cd:variable name='tabulate' value='جدول‌بندی'/>
- <cd:variable name='tabulatehead' value='سرجدول‌بندی'/>
- <cd:variable name='tabulatetail' value='دنباله‌جدول‌بندی'/>
- <cd:variable name='tall' value='دراز'/>
- <cd:variable name='teletype' value='دورنگاره'/>
- <cd:variable name='temporary' value='موقتی'/>
- <cd:variable name='test' value='تست'/>
- <cd:variable name='text' value='متن'/>
- <cd:variable name='textnote' value='textnote'/>
- <cd:variable name='three' value='سه'/>
- <cd:variable name='thursday' value='پنج‌شنبه'/>
- <cd:variable name='tight' value='tight'/>
- <cd:variable name='title' value='عنوان'/>
- <cd:variable name='toggle' value='تغییر'/>
- <cd:variable name='tolerant' value='بردبار'/>
- <cd:variable name='top' value='بالا'/>
- <cd:variable name='tuesday' value='سه‌شنبه'/>
- <cd:variable name='two' value='دو'/>
- <cd:variable name='txt' value='txt'/>
- <cd:variable name='type' value='تایپ'/>
- <cd:variable name='typing' value='تایپ‌کردن'/>
- <cd:variable name='unavailable' value='غیرموجود'/>
- <cd:variable name='underbar' value='میله‌زیر'/>
- <cd:variable name='underbars' value='میله‌‌های‌زیر'/>
- <cd:variable name='understrike' value='understrike'/>
- <cd:variable name='understrikes' value='understrikes'/>
- <cd:variable name='unframed' value='unframed'/>
- <cd:variable name='unicode' value='unicode'/>
- <cd:variable name='unit' value='واحد'/>
- <cd:variable name='units' value='واحدها'/>
- <cd:variable name='unknown' value='ناشناس'/>
- <cd:variable name='unpacked' value='غیرفشرده'/>
- <cd:variable name='up' value='up'/>
- <cd:variable name='url' value='url'/>
- <cd:variable name='used' value='استفاده‌شده'/>
- <cd:variable name='value' value='مقدار'/>
- <cd:variable name='vertical' value='عمودی'/>
- <cd:variable name='very' value='خیلی'/>
- <cd:variable name='verystrict' value='خیلی‌سختگیر'/>
- <cd:variable name='verytolerant' value='خیلی‌بردبار'/>
- <cd:variable name='vfenced' value='vfenced'/>
- <cd:variable name='vulgarfraction' value='vulgarfraction'/>
- <cd:variable name='weak' value='هفته'/>
- <cd:variable name='wednesday' value='چهارشنبه'/>
- <cd:variable name='week' value='هفته'/>
- <cd:variable name='weekday' value='روزهفته'/>
- <cd:variable name='white' value='سفید'/>
- <cd:variable name='wide' value='گسترده'/>
- <cd:variable name='width' value='عرض'/>
- <cd:variable name='word' value='word'/>
- <cd:variable name='words' value='words'/>
- <cd:variable name='xml' value='xml'/>
- <cd:variable name='year' value='سال'/>
- <cd:variable name='yes' value='بله'/>
- </cd:variables>
-
- <!-- definitions for interface constants for language pe -->
-
- <cd:constants>
- <cd:constant name='action' value='کنش'/>
- <cd:constant name='address' value='نشانی'/>
- <cd:constant name='after' value='بعداز'/>
- <cd:constant name='afterhead' value='بعدازسر'/>
- <cd:constant name='afterkey' value='بعدازکلید'/>
- <cd:constant name='aftersection' value='aftersection'/>
- <cd:constant name='align' value='تنظیم'/>
- <cd:constant name='alignbottom' value='alignbottom'/>
- <cd:constant name='aligncharacter' value='حرف‌تنظیم'/>
- <cd:constant name='alignmentcharacter' value='حرف‌تنظیم‌کردن'/>
- <cd:constant name='alignmentleftsample' value='alignmentleftsample'/>
- <cd:constant name='alignmentleftwidth' value='alignmentleftwidth'/>
- <cd:constant name='alignmentrightsample' value='alignmentrightsample'/>
- <cd:constant name='alignmentrightwidth' value='alignmentrightwidth'/>
- <cd:constant name='alignsymbol' value='alignsymbol'/>
- <cd:constant name='aligntitle' value='عنوان‌تنظیم'/>
- <cd:constant name='alternative' value='جایگزین'/>
- <cd:constant name='anchor' value='anchor'/>
- <cd:constant name='anchoring' value='anchoring'/>
- <cd:constant name='andtext' value='andtext'/>
- <cd:constant name='apa' value='apa'/>
- <cd:constant name='arguments' value='arguments'/>
- <cd:constant name='arrow' value='پیکان'/>
- <cd:constant name='artauthor' value='artauthor'/>
- <cd:constant name='artauthoretaldisplay' value='artauthoretaldisplay'/>
- <cd:constant name='artauthoretallimit' value='artauthoretallimit'/>
- <cd:constant name='artauthoretaltext' value='artauthoretaltext'/>
- <cd:constant name='artoffset' value='artoffset'/>
- <cd:constant name='at' value='در'/>
- <cd:constant name='author' value='نویسنده'/>
- <cd:constant name='authorconversion' value='authorconversion'/>
- <cd:constant name='authoretaldisplay' value='authoretaldisplay'/>
- <cd:constant name='authoretallimit' value='authoretallimit'/>
- <cd:constant name='authoretaltext' value='authoretaltext'/>
- <cd:constant name='auto' value='خودکار'/>
- <cd:constant name='autocase' value='autocase'/>
- <cd:constant name='autofile' value='پرونده‌خودکار'/>
- <cd:constant name='autofocus' value='تمرکز‌خودکار'/>
- <cd:constant name='autohang' value='آویزان‌خودکار'/>
- <cd:constant name='autostrut' value='بست‌خودکار'/>
- <cd:constant name='autowidth' value='عرض‌خودکار'/>
- <cd:constant name='availableheight' value='availableheight'/>
- <cd:constant name='availablewidth' value='availablewidth'/>
- <cd:constant name='axis' value='محورها'/>
- <cd:constant name='background' value='پس‌زمینه'/>
- <cd:constant name='backgroundcolor' value='رنگ‌پس‌زمینه'/>
- <cd:constant name='backgroundcorner' value='گوشه‌پس‌زمینه'/>
- <cd:constant name='backgrounddepth' value='عمق‌پس‌زمینه'/>
- <cd:constant name='backgroundoffset' value='آفست‌پس‌زمینه'/>
- <cd:constant name='backgroundradius' value='شعاع‌پس‌زمینه'/>
- <cd:constant name='backgroundscreen' value='پرده‌پس‌زمینه'/>
- <cd:constant name='backreference' value='backreference'/>
- <cd:constant name='backspace' value='فضای‌پس'/>
- <cd:constant name='balance' value='تعادل'/>
- <cd:constant name='before' value='قبل‌از'/>
- <cd:constant name='beforehead' value='قبل‌ازسر'/>
- <cd:constant name='beforesection' value='beforesection'/>
- <cd:constant name='bet' value='bet'/>
- <cd:constant name='bidi' value='bidi'/>
- <cd:constant name='big' value='بزرگ'/>
- <cd:constant name='blank' value='خالی'/>
- <cd:constant name='bleedoffset' value='bleedoffset'/>
- <cd:constant name='blockway' value='راه‌بلوک'/>
- <cd:constant name='bodyfont' value='قلم‌بدنه'/>
- <cd:constant name='boffset' value='boffset'/>
- <cd:constant name='boldfeatures' value='boldfeatures'/>
- <cd:constant name='boldfont' value='boldfont'/>
- <cd:constant name='bolditalicfeatures' value='bolditalicfeatures'/>
- <cd:constant name='bolditalicfont' value='bolditalicfont'/>
- <cd:constant name='boldslantedfeatures' value='boldslantedfeatures'/>
- <cd:constant name='boldslantedfont' value='boldslantedfont'/>
- <cd:constant name='bookmark' value='چوبخط'/>
- <cd:constant name='bottom' value='پایین'/>
- <cd:constant name='bottomafter' value='bottomafter'/>
- <cd:constant name='bottombefore' value='bottombefore'/>
- <cd:constant name='bottomcommand' value='bottomcommand'/>
- <cd:constant name='bottomdistance' value='فاصله‌پایین'/>
- <cd:constant name='bottomframe' value='قالب‌پایین'/>
- <cd:constant name='bottomoffset' value='آفست‌پایین'/>
- <cd:constant name='bottomspace' value='فضای‌پایین'/>
- <cd:constant name='bottomstate' value='وضعیت‌پایین'/>
- <cd:constant name='break' value='break'/>
- <cd:constant name='buffer' value='buffer'/>
- <cd:constant name='cache' value='میانگیر'/>
- <cd:constant name='calculate' value='محاسبه'/>
- <cd:constant name='category' value='category'/>
- <cd:constant name='ccommand' value='فرمان'/>
- <cd:constant name='character' value='character'/>
- <cd:constant name='characters' value='characters'/>
- <cd:constant name='check' value='check'/>
- <cd:constant name='click' value='فشردن'/>
- <cd:constant name='clickin' value='فشردن‌داخل'/>
- <cd:constant name='clickout' value='فشردن‌خارج'/>
- <cd:constant name='clipoffset' value='آفست‌کلیپ'/>
- <cd:constant name='closeaction' value='بستن‌کنش'/>
- <cd:constant name='closecommand' value='بستن‌فرمان'/>
- <cd:constant name='closepage' value='closepage'/>
- <cd:constant name='closepageaction' value='بستن‌عمل‌صفحه'/>
- <cd:constant name='closesymbol' value='بستن‌نماد'/>
- <cd:constant name='color' value='رنگ'/>
- <cd:constant name='column' value='ستون'/>
- <cd:constant name='columndistance' value='فاصله‌ستون'/>
- <cd:constant name='columns' value='ستونها'/>
- <cd:constant name='comma' value='comma'/>
- <cd:constant name='command' value='فرمان'/>
- <cd:constant name='commandafter' value='فرمان‌بعداز'/>
- <cd:constant name='commandbefore' value='فرمان‌قبل‌از'/>
- <cd:constant name='commands' value='فرمانها'/>
- <cd:constant name='comment' value='comment'/>
- <cd:constant name='commentchar' value='commentchar'/>
- <cd:constant name='commentoffset' value='commentoffset'/>
- <cd:constant name='compact' value='compact'/>
- <cd:constant name='component' value='مولفه'/>
- <cd:constant name='compoundhyphen' value='compoundhyphen'/>
- <cd:constant name='compress' value='فشردن'/>
- <cd:constant name='compressdistance' value='compressdistance'/>
- <cd:constant name='compressmethod' value='compressmethod'/>
- <cd:constant name='compressseparator' value='compressseparator'/>
- <cd:constant name='compressstopper' value='compressstopper'/>
- <cd:constant name='concerns' value='concerns'/>
- <cd:constant name='connector' value='connector'/>
- <cd:constant name='continue' value='ادامه'/>
- <cd:constant name='contrastcolor' value='contrastcolor'/>
- <cd:constant name='controls' value='کنترلها'/>
- <cd:constant name='conversion' value='تبدیل'/>
- <cd:constant name='convertfile' value='پرونده‌تبدیل'/>
- <cd:constant name='copies' value='copies'/>
- <cd:constant name='corner' value='گوشه'/>
- <cd:constant name='coupling' value='تزویج'/>
- <cd:constant name='couplingway' value='روش‌تزویج'/>
- <cd:constant name='criterium' value='criterium'/>
- <cd:constant name='cropoffset' value='cropoffset'/>
- <cd:constant name='crossreference' value='crossreference'/>
- <cd:constant name='cssfile' value='cssfile'/>
- <cd:constant name='current' value='جاری'/>
- <cd:constant name='cutspace' value='فضای‌برش'/>
- <cd:constant name='dash' value='دش'/>
- <cd:constant name='dat' value='dat'/>
- <cd:constant name='database' value='database'/>
- <cd:constant name='dataset' value='dataset'/>
- <cd:constant name='date' value='تاریخ'/>
- <cd:constant name='deepnumbercommand' value='فرمان‌شماره‌عمیق'/>
- <cd:constant name='deeptextcommand' value='فرمان‌متن‌عمیق'/>
- <cd:constant name='default' value='پیش‌فرض'/>
- <cd:constant name='defaultheight' value='defaultheight'/>
- <cd:constant name='defaultwidth' value='defaultwidth'/>
- <cd:constant name='define' value='define'/>
- <cd:constant name='delay' value='تاخیر'/>
- <cd:constant name='depth' value='عمق'/>
- <cd:constant name='depthcorrection' value='تصحیح‌عمق'/>
- <cd:constant name='direction' value='جهت'/>
- <cd:constant name='directory' value='پوشه'/>
- <cd:constant name='display' value='نمایش'/>
- <cd:constant name='displaythreshold' value='displaythreshold'/>
- <cd:constant name='distance' value='فاصله'/>
- <cd:constant name='domain' value='domain'/>
- <cd:constant name='dot' value='نقطه'/>
- <cd:constant name='doublesided' value='دورو'/>
- <cd:constant name='down' value='down'/>
- <cd:constant name='dummy' value='مصنوعی'/>
- <cd:constant name='dx' value='dx'/>
- <cd:constant name='dy' value='dy'/>
- <cd:constant name='edge' value='لبه'/>
- <cd:constant name='edgedistance' value='فاصله‌لبه'/>
- <cd:constant name='editor' value='editor'/>
- <cd:constant name='editoretaldisplay' value='editoretaldisplay'/>
- <cd:constant name='editoretallimit' value='editoretallimit'/>
- <cd:constant name='editoretaltext' value='editoretaltext'/>
- <cd:constant name='empty' value='تهی'/>
- <cd:constant name='entities' value='entities'/>
- <cd:constant name='entries' value='entries'/>
- <cd:constant name='equalheight' value='ارتفاع‌یکسان'/>
- <cd:constant name='equalwidth' value='عرض‌یکسان'/>
- <cd:constant name='escape' value='فرار'/>
- <cd:constant name='etaldisplay' value='etaldisplay'/>
- <cd:constant name='etallimit' value='etallimit'/>
- <cd:constant name='etaloption' value='etaloption'/>
- <cd:constant name='etaltext' value='etaltext'/>
- <cd:constant name='evenmargin' value='حاشیه‌زوج'/>
- <cd:constant name='exact' value='exact'/>
- <cd:constant name='exitoffset' value='exitoffset'/>
- <cd:constant name='expansion' value='گسترش'/>
- <cd:constant name='export' value='export'/>
- <cd:constant name='extras' value='extras'/>
- <cd:constant name='factor' value='عامل'/>
- <cd:constant name='fallback' value='عقب‌ریختن'/>
- <cd:constant name='fallbacks' value='fallbacks'/>
- <cd:constant name='family' value='خانواده'/>
- <cd:constant name='features' value='features'/>
- <cd:constant name='featureset' value='featureset'/>
- <cd:constant name='fences' value='fences'/>
- <cd:constant name='field' value='field'/>
- <cd:constant name='fieldbackgroundcolor' value='رنگ‌پس‌زمینه‌میدان'/>
- <cd:constant name='fieldframecolor' value='رنگ‌قالب‌میدان'/>
- <cd:constant name='fieldlayer' value='لایه‌میدان'/>
- <cd:constant name='fieldoffset' value='آفست‌میدان'/>
- <cd:constant name='file' value='پرونده'/>
- <cd:constant name='filler' value='filler'/>
- <cd:constant name='filter' value='filter'/>
- <cd:constant name='filtercommand' value='filtercommand'/>
- <cd:constant name='finalnamesep' value='finalnamesep'/>
- <cd:constant name='finalpagesep' value='finalpagesep'/>
- <cd:constant name='finalpubsep' value='finalpubsep'/>
- <cd:constant name='first' value='اولی'/>
- <cd:constant name='firstnamesep' value='firstnamesep'/>
- <cd:constant name='firstpage' value='صفحه‌اول'/>
- <cd:constant name='focus' value='تمرکز'/>
- <cd:constant name='focusin' value='تمرکزدرون'/>
- <cd:constant name='focusoffset' value='focusoffset'/>
- <cd:constant name='focusout' value='تمرکزبیرون'/>
- <cd:constant name='font' value='font'/>
- <cd:constant name='footer' value='ته‌برگ'/>
- <cd:constant name='footerdistance' value='فاصله‌ته‌برگ'/>
- <cd:constant name='footerstate' value='وضعیت‌ته‌برگ'/>
- <cd:constant name='force' value='اجبار'/>
- <cd:constant name='foregroundcolor' value='رنگ‌پیش‌زمینه'/>
- <cd:constant name='foregroundstyle' value='سبک‌پیش‌زمینه'/>
- <cd:constant name='format' value='شمایل'/>
- <cd:constant name='fractions' value='fractions'/>
- <cd:constant name='frame' value='قالب'/>
- <cd:constant name='framecolor' value='رنگ‌قالب'/>
- <cd:constant name='framecorner' value='گوشه‌قالب'/>
- <cd:constant name='framedepth' value='عمق‌قالب'/>
- <cd:constant name='frameoffset' value='آفست‌قالب'/>
- <cd:constant name='frameradius' value='شعاع‌قالب'/>
- <cd:constant name='frames' value='قالبها'/>
- <cd:constant name='freeregion' value='freeregion'/>
- <cd:constant name='from' value='از'/>
- <cd:constant name='functioncolor' value='functioncolor'/>
- <cd:constant name='functionstyle' value='functionstyle'/>
- <cd:constant name='get' value='بگیر'/>
- <cd:constant name='global' value='سراسری'/>
- <cd:constant name='goodies' value='goodies'/>
- <cd:constant name='grid' value='توری'/>
- <cd:constant name='group' value='group'/>
- <cd:constant name='groupsuffix' value='groupsuffix'/>
- <cd:constant name='hang' value='بیاویز'/>
- <cd:constant name='hcompact' value='hcompact'/>
- <cd:constant name='headalign' value='headalign'/>
- <cd:constant name='headcolor' value='رنگ‌سر'/>
- <cd:constant name='headcommand' value='فرمان‌سر'/>
- <cd:constant name='headconversion' value='تبدیل‌سر'/>
- <cd:constant name='header' value='سربرگ'/>
- <cd:constant name='headerdistance' value='فاصله‌سربرگ'/>
- <cd:constant name='headerstate' value='وضعیت‌سربرگ'/>
- <cd:constant name='headlabel' value='برچسب‌سر'/>
- <cd:constant name='headnumber' value='شماره‌سر'/>
- <cd:constant name='headseparator' value='headseparator'/>
- <cd:constant name='headstyle' value='سبک‌سر'/>
- <cd:constant name='height' value='ارتفاع'/>
- <cd:constant name='hfactor' value='عامل‌ارتفاع'/>
- <cd:constant name='hfil' value='پرکردن‌ارتفاع'/>
- <cd:constant name='hidenumber' value='hidenumber'/>
- <cd:constant name='hoffset' value='آفست‌ا'/>
- <cd:constant name='horizontal' value='افقی'/>
- <cd:constant name='horoffset' value='آفست‌افق'/>
- <cd:constant name='hyphen' value='شکستن'/>
- <cd:constant name='hyphens' value='hyphens'/>
- <cd:constant name='icommand' value='icommand'/>
- <cd:constant name='ignore' value='ignore'/>
- <cd:constant name='in' value='درون'/>
- <cd:constant name='inbetween' value='دربین'/>
- <cd:constant name='increment' value='افزایش'/>
- <cd:constant name='incrementnumber' value='شماره‌افزایش'/>
- <cd:constant name='indenting' value='تورفتگی'/>
- <cd:constant name='indentlist' value='indentlist'/>
- <cd:constant name='indentnext' value='متن‌تورفته'/>
- <cd:constant name='index' value='index'/>
- <cd:constant name='indicator' value='اندیکاتور'/>
- <cd:constant name='initialsep' value='initialsep'/>
- <cd:constant name='inlinethreshold' value='inlinethreshold'/>
- <cd:constant name='inner' value='داخلی'/>
- <cd:constant name='innermargin' value='حاشیه‌داخلی'/>
- <cd:constant name='inputfile' value='پرونده‌ورودی'/>
- <cd:constant name='insidesection' value='insidesection'/>
- <cd:constant name='instance' value='instance'/>
- <cd:constant name='intent' value='intent'/>
- <cd:constant name='interaction' value='پانل'/>
- <cd:constant name='interlinespace' value='فضای‌بین‌خط'/>
- <cd:constant name='internalgrid' value='internalgrid'/>
- <cd:constant name='italicfeatures' value='italicfeatures'/>
- <cd:constant name='italicfont' value='italicfont'/>
- <cd:constant name='itemalign' value='تنظیم‌آیتم'/>
- <cd:constant name='items' value='آیتمها'/>
- <cd:constant name='joiners' value='joiners'/>
- <cd:constant name='journalconversion' value='journalconversion'/>
- <cd:constant name='juniorsep' value='juniorsep'/>
- <cd:constant name='keeptogether' value='keeptogether'/>
- <cd:constant name='ken' value='ken'/>
- <cd:constant name='keyexpansion' value='گسترش‌کلید'/>
- <cd:constant name='keys' value='keys'/>
- <cd:constant name='keyword' value='کلید‌واژه'/>
- <cd:constant name='label' value='برچسب'/>
- <cd:constant name='labelalternative' value='labelalternative'/>
- <cd:constant name='labelcolor' value='labelcolor'/>
- <cd:constant name='labeloffset' value='labeloffset'/>
- <cd:constant name='labelstyle' value='labelstyle'/>
- <cd:constant name='language' value='language'/>
- <cd:constant name='last' value='last'/>
- <cd:constant name='lastnamesep' value='lastnamesep'/>
- <cd:constant name='lastpage' value='صفحه‌آخر'/>
- <cd:constant name='lastpagesep' value='lastpagesep'/>
- <cd:constant name='lastpubsep' value='lastpubsep'/>
- <cd:constant name='layout' value='layout'/>
- <cd:constant name='left' value='چپ'/>
- <cd:constant name='leftcolor' value='رنگ‌چپ'/>
- <cd:constant name='leftcompoundhyphen' value='leftcompoundhyphen'/>
- <cd:constant name='leftedge' value='لبه‌چپ'/>
- <cd:constant name='leftedgedistance' value='فاصله‌لبه‌چپ'/>
- <cd:constant name='leftframe' value='قالب‌چپ'/>
- <cd:constant name='lefthyphen' value='شکست‌چپ'/>
- <cd:constant name='leftmargin' value='حاشیه‌چپ'/>
- <cd:constant name='leftmargindistance' value='فاصله‌حاشیه‌چپ'/>
- <cd:constant name='leftoffset' value='آفست‌چپ'/>
- <cd:constant name='leftquotation' value='نقل‌قول‌چپ'/>
- <cd:constant name='leftquote' value='نقل‌چپ'/>
- <cd:constant name='leftsample' value='leftsample'/>
- <cd:constant name='leftsentence' value='جمله‌چپ'/>
- <cd:constant name='leftspeech' value='سخنرانی‌چپ'/>
- <cd:constant name='leftstyle' value='سبک‌چپ'/>
- <cd:constant name='leftsubsentence' value='زیرجمله‌چپ'/>
- <cd:constant name='lefttext' value='متن‌چپ'/>
- <cd:constant name='leftwidth' value='عرض‌خط'/>
- <cd:constant name='leftwords' value='leftwords'/>
- <cd:constant name='less' value='less'/>
- <cd:constant name='level' value='مرحله'/>
- <cd:constant name='levels' value='مرحله‌ها'/>
- <cd:constant name='limittext' value='مرزمتن'/>
- <cd:constant name='line' value='خط'/>
- <cd:constant name='linecorrection' value='تصحیح‌خط'/>
- <cd:constant name='linedirection' value='linedirection'/>
- <cd:constant name='lines' value='خطها'/>
- <cd:constant name='list' value='لیست'/>
- <cd:constant name='listtext' value='متن‌لیست'/>
- <cd:constant name='local' value='موضعی'/>
- <cd:constant name='location' value='مکان'/>
- <cd:constant name='loffset' value='loffset'/>
- <cd:constant name='logo' value='آرم'/>
- <cd:constant name='logos' value='آرمها'/>
- <cd:constant name='marcolor' value='رنگ‌حاش'/>
- <cd:constant name='margin' value='حاشیه'/>
- <cd:constant name='margindistance' value='فاصله‌حاشیه'/>
- <cd:constant name='marginedge' value='لبه‌حاشیه'/>
- <cd:constant name='marginedgetext' value='متن‌لبه‌حاشیه'/>
- <cd:constant name='margintext' value='متن‌حاشیه'/>
- <cd:constant name='mark' value='mark'/>
- <cd:constant name='marking' value='نشانه‌گذاری'/>
- <cd:constant name='marstyle' value='سبک‌حاش'/>
- <cd:constant name='mask' value='mask'/>
- <cd:constant name='mathclass' value='mathclass'/>
- <cd:constant name='mathlimits' value='mathlimits'/>
- <cd:constant name='mathstyle' value='mathstyle'/>
- <cd:constant name='max' value='بیشترین'/>
- <cd:constant name='maxdepth' value='maxdepth'/>
- <cd:constant name='maxheight' value='بیشترین‌ارتفاع'/>
- <cd:constant name='maxwidth' value='بیشترین‌عرض'/>
- <cd:constant name='maybeyear' value='maybeyear'/>
- <cd:constant name='menu' value='منو'/>
- <cd:constant name='method' value='روش'/>
- <cd:constant name='middle' value='میان'/>
- <cd:constant name='middlecolor' value='middlecolor'/>
- <cd:constant name='middlecommand' value='middlecommand'/>
- <cd:constant name='middlespeech' value='سخنرانی‌میانی'/>
- <cd:constant name='middlestyle' value='middlestyle'/>
- <cd:constant name='middletext' value='متن‌میانی'/>
- <cd:constant name='middlewidth' value='middlewidth'/>
- <cd:constant name='midsentence' value='جمله‌میانی'/>
- <cd:constant name='min' value='کمترین'/>
- <cd:constant name='mindepth' value='کمترین‌عمق'/>
- <cd:constant name='minheight' value='کمترین‌ارتفاع'/>
- <cd:constant name='minwidth' value='کمترین‌عرض'/>
- <cd:constant name='moffset' value='moffset'/>
- <cd:constant name='monthconversion' value='monthconversion'/>
- <cd:constant name='more' value='more'/>
- <cd:constant name='mpdepth' value='mpdepth'/>
- <cd:constant name='mpheight' value='mpheight'/>
- <cd:constant name='mpoffset' value='mpoffset'/>
- <cd:constant name='mpwidth' value='mpwidth'/>
- <cd:constant name='n' value='n'/>
- <cd:constant name='name' value='نام'/>
- <cd:constant name='namesep' value='namesep'/>
- <cd:constant name='nbottom' value='nbottom'/>
- <cd:constant name='nc' value='nc'/>
- <cd:constant name='next' value='بعدی'/>
- <cd:constant name='nextleft' value='nextleft'/>
- <cd:constant name='nextleftquotation' value='nextleftquotation'/>
- <cd:constant name='nextright' value='nextright'/>
- <cd:constant name='nextrightquotation' value='nextrightquotation'/>
- <cd:constant name='nl' value='nl'/>
- <cd:constant name='nleft' value='nleft'/>
- <cd:constant name='nlines' value='nlines'/>
- <cd:constant name='norm' value='norm'/>
- <cd:constant name='note' value='note'/>
- <cd:constant name='notes' value='notes'/>
- <cd:constant name='nr' value='nr'/>
- <cd:constant name='nright' value='nright'/>
- <cd:constant name='ntop' value='ntop'/>
- <cd:constant name='number' value='شماره'/>
- <cd:constant name='numberalign' value='numberalign'/>
- <cd:constant name='numbercolor' value='رنگ‌شماره'/>
- <cd:constant name='numbercommand' value='فرمان‌شماره'/>
- <cd:constant name='numberconversion' value='numberconversion'/>
- <cd:constant name='numberconversionset' value='numberconversionset'/>
- <cd:constant name='numberdistance' value='فاصله‌شماره'/>
- <cd:constant name='numbering' value='شماره‌گذاری'/>
- <cd:constant name='numberorder' value='numberorder'/>
- <cd:constant name='numberprefix' value='numberprefix'/>
- <cd:constant name='numbersegments' value='numbersegments'/>
- <cd:constant name='numberseparator' value='جداکننده‌شماره'/>
- <cd:constant name='numberseparatorset' value='numberseparatorset'/>
- <cd:constant name='numberset' value='numberset'/>
- <cd:constant name='numberstarter' value='numberstarter'/>
- <cd:constant name='numberstopper' value='numberstopper'/>
- <cd:constant name='numberstrut' value='numberstrut'/>
- <cd:constant name='numberstyle' value='سبک‌شماره'/>
- <cd:constant name='numberwidth' value='عرض‌شماره'/>
- <cd:constant name='nx' value='nx'/>
- <cd:constant name='ny' value='ny'/>
- <cd:constant name='object' value='شیئ'/>
- <cd:constant name='obstruction' value='انسداد'/>
- <cd:constant name='oddmargin' value='حاشیه‌فرد'/>
- <cd:constant name='offset' value='آفست'/>
- <cd:constant name='openaction' value='عمل‌باز'/>
- <cd:constant name='openpage' value='openpage'/>
- <cd:constant name='openpageaction' value='عمل‌صفحه‌باز'/>
- <cd:constant name='openup' value='openup'/>
- <cd:constant name='opticalsize' value='opticalsize'/>
- <cd:constant name='option' value='گزینه'/>
- <cd:constant name='order' value='order'/>
- <cd:constant name='orientation' value='جهت‌دهی'/>
- <cd:constant name='otherstext' value='otherstext'/>
- <cd:constant name='outermargin' value='حاشیه‌خارجی'/>
- <cd:constant name='overprint' value='overprint'/>
- <cd:constant name='ownerpassword' value='ownerpassword'/>
- <cd:constant name='ownnumber' value='شماره‌خود'/>
- <cd:constant name='packcriterium' value='packcriterium'/>
- <cd:constant name='page' value='صفحه'/>
- <cd:constant name='pageboundaries' value='مرزهای‌صفحه'/>
- <cd:constant name='pagecolor' value='رنگ‌صفحه'/>
- <cd:constant name='pagecolormodel' value='pagecolormodel'/>
- <cd:constant name='pagecommand' value='فرمان‌صفحه'/>
- <cd:constant name='pageconnector' value='pageconnector'/>
- <cd:constant name='pageconversion' value='pageconversion'/>
- <cd:constant name='pageconversionset' value='pageconversionset'/>
- <cd:constant name='pageleft' value='pageleft'/>
- <cd:constant name='pagemethod' value='pagemethod'/>
- <cd:constant name='pagenumber' value='شماره‌صفحه'/>
- <cd:constant name='pageprefix' value='pageprefix'/>
- <cd:constant name='pageprefixconnector' value='pageprefixconnector'/>
- <cd:constant name='pageprefixconversion' value='pageprefixconversion'/>
- <cd:constant name='pageprefixconversionset' value='pageprefixconversionset'/>
- <cd:constant name='pageprefixsegments' value='pageprefixsegments'/>
- <cd:constant name='pageprefixseparatorset' value='pageprefixseparatorset'/>
- <cd:constant name='pageprefixset' value='pageprefixset'/>
- <cd:constant name='pageprefixstarter' value='pageprefixstarter'/>
- <cd:constant name='pageprefixstopper' value='pageprefixstopper'/>
- <cd:constant name='pageright' value='pageright'/>
- <cd:constant name='pagesegments' value='pagesegments'/>
- <cd:constant name='pagesep' value='pagesep'/>
- <cd:constant name='pageseparatorset' value='pageseparatorset'/>
- <cd:constant name='pageset' value='pageset'/>
- <cd:constant name='pagestarter' value='pagestarter'/>
- <cd:constant name='pagestate' value='وضعیت‌صفحه'/>
- <cd:constant name='pagestopper' value='pagestopper'/>
- <cd:constant name='pagestyle' value='سبک‌صفحه'/>
- <cd:constant name='palet' value='لوح'/>
- <cd:constant name='paper' value='برگ'/>
- <cd:constant name='paragraph' value='پاراگراف'/>
- <cd:constant name='period' value='period'/>
- <cd:constant name='place' value='بگذار'/>
- <cd:constant name='placehead' value='بگذارسر'/>
- <cd:constant name='placeholder' value='placeholder'/>
- <cd:constant name='placestopper' value='بگذارایست'/>
- <cd:constant name='position' value='موقعیت'/>
- <cd:constant name='prefix' value='پیشوند'/>
- <cd:constant name='prefixconnector' value='prefixconnector'/>
- <cd:constant name='prefixconversion' value='prefixconversion'/>
- <cd:constant name='prefixconversionset' value='prefixconversionset'/>
- <cd:constant name='prefixsegments' value='prefixsegments'/>
- <cd:constant name='prefixseparatorset' value='prefixseparatorset'/>
- <cd:constant name='prefixset' value='prefixset'/>
- <cd:constant name='prefixstarter' value='prefixstarter'/>
- <cd:constant name='prefixstopper' value='prefixstopper'/>
- <cd:constant name='preset' value='preset'/>
- <cd:constant name='preview' value='پیش‌دید'/>
- <cd:constant name='previous' value='قبلی'/>
- <cd:constant name='previousnumber' value='شماره‌قبلی'/>
- <cd:constant name='print' value='print'/>
- <cd:constant name='printable' value='قابل‌چاپ'/>
- <cd:constant name='process' value='پردازش'/>
- <cd:constant name='processors' value='processors'/>
- <cd:constant name='profile' value='profile'/>
- <cd:constant name='properties' value='properties'/>
- <cd:constant name='pubsep' value='pubsep'/>
- <cd:constant name='quotechar' value='quotechar'/>
- <cd:constant name='radius' value='شعاع'/>
- <cd:constant name='random' value='تصادفی'/>
- <cd:constant name='range' value='range'/>
- <cd:constant name='reduction' value='کاهش'/>
- <cd:constant name='ref' value='رج'/>
- <cd:constant name='refcommand' value='refcommand'/>
- <cd:constant name='reference' value='مرجع'/>
- <cd:constant name='referencemethod' value='referencemethod'/>
- <cd:constant name='referenceprefix' value='referenceprefix'/>
- <cd:constant name='referencetext' value='referencetext'/>
- <cd:constant name='referencing' value='مراجعه'/>
- <cd:constant name='region' value='region'/>
- <cd:constant name='regionin' value='ناحیه‌درون'/>
- <cd:constant name='regionout' value='ناحیه‌بیرون'/>
- <cd:constant name='register' value='register'/>
- <cd:constant name='regularfeatures' value='regularfeatures'/>
- <cd:constant name='regularfont' value='regularfont'/>
- <cd:constant name='renderingsetup' value='renderingsetup'/>
- <cd:constant name='repeat' value='تکرار'/>
- <cd:constant name='reset' value='بازنشانی'/>
- <cd:constant name='resetnumber' value='بازنشانی‌شماره'/>
- <cd:constant name='resolution' value='کیفیت'/>
- <cd:constant name='resources' value='resources'/>
- <cd:constant name='reverse' value='برعکس'/>
- <cd:constant name='right' value='راست'/>
- <cd:constant name='rightchars' value='rightchars'/>
- <cd:constant name='rightcolor' value='رنگ‌راست'/>
- <cd:constant name='rightcompoundhyphen' value='rightcompoundhyphen'/>
- <cd:constant name='rightedge' value='لبه‌راست'/>
- <cd:constant name='rightedgedistance' value='فاصله‌لبه‌راست'/>
- <cd:constant name='rightframe' value='قالب‌راست'/>
- <cd:constant name='righthyphen' value='righthyphen'/>
- <cd:constant name='rightmargin' value='حاشیه‌راست'/>
- <cd:constant name='rightmargindistance' value='فاصله‌حاشیه‌راست'/>
- <cd:constant name='rightoffset' value='آفست‌راست'/>
- <cd:constant name='rightquotation' value='نقل‌قول‌راست'/>
- <cd:constant name='rightquote' value='نقل‌راست'/>
- <cd:constant name='rightsample' value='rightsample'/>
- <cd:constant name='rightsentence' value='جمله‌راست'/>
- <cd:constant name='rightspeech' value='سخنرانی‌راست'/>
- <cd:constant name='rightstyle' value='سبک‌راست'/>
- <cd:constant name='rightsubsentence' value='زیرجمله‌راست'/>
- <cd:constant name='righttext' value='متن‌راست'/>
- <cd:constant name='rightwidth' value='عرض‌راست'/>
- <cd:constant name='rightwords' value='rightwords'/>
- <cd:constant name='roffset' value='roffset'/>
- <cd:constant name='rotation' value='دوران'/>
- <cd:constant name='rule' value='خط'/>
- <cd:constant name='rulecolor' value='رنگ‌خط'/>
- <cd:constant name='rulecommand' value='rulecommand'/>
- <cd:constant name='rulethickness' value='ضخامت‌خط'/>
- <cd:constant name='samepage' value='همان‌صفحه'/>
- <cd:constant name='sample' value='نمونه'/>
- <cd:constant name='samplesize' value='samplesize'/>
- <cd:constant name='saveinlist' value='saveinlist'/>
- <cd:constant name='scale' value='مقیاس'/>
- <cd:constant name='scope' value='طرح'/>
- <cd:constant name='screen' value='پرده'/>
- <cd:constant name='section' value='بخش'/>
- <cd:constant name='sectionblock' value='sectionblock'/>
- <cd:constant name='sectionconversion' value='sectionconversion'/>
- <cd:constant name='sectionconversionset' value='sectionconversionset'/>
- <cd:constant name='sectionnumber' value='شماره‌بخش'/>
- <cd:constant name='sectionresetset' value='sectionresetset'/>
- <cd:constant name='sectionsegments' value='sectionsegments'/>
- <cd:constant name='sectionseparatorset' value='sectionseparatorset'/>
- <cd:constant name='sectionset' value='sectionset'/>
- <cd:constant name='sectionstarter' value='sectionstarter'/>
- <cd:constant name='sectionstopper' value='sectionstopper'/>
- <cd:constant name='separator' value='جداکننده'/>
- <cd:constant name='separatorcolor' value='separatorcolor'/>
- <cd:constant name='separatorstyle' value='separatorstyle'/>
- <cd:constant name='set' value='قراربده'/>
- <cd:constant name='setups' value='setups'/>
- <cd:constant name='shrink' value='shrink'/>
- <cd:constant name='side' value='کنار'/>
- <cd:constant name='sidealign' value='تنظیم‌کنار'/>
- <cd:constant name='sidemethod' value='روش‌کنار'/>
- <cd:constant name='sidespaceafter' value='فضای‌کناری‌بعد'/>
- <cd:constant name='sidespacebefore' value='فضای‌کناری‌قبل'/>
- <cd:constant name='sidespaceinbetween' value='sidespaceinbetween'/>
- <cd:constant name='sidethreshold' value='sidethreshold'/>
- <cd:constant name='sign' value='علامت'/>
- <cd:constant name='simplecommand' value='simplecommand'/>
- <cd:constant name='size' value='اندازه'/>
- <cd:constant name='slantedfeatures' value='slantedfeatures'/>
- <cd:constant name='slantedfont' value='slantedfont'/>
- <cd:constant name='small' value='کوچک'/>
- <cd:constant name='smallcapsfeatures' value='smallcapsfeatures'/>
- <cd:constant name='smallcapsfont' value='smallcapsfont'/>
- <cd:constant name='solution' value='solution'/>
- <cd:constant name='sort' value='sort'/>
- <cd:constant name='sorttype' value='ترتیب‌تایپ'/>
- <cd:constant name='source' value='منبع'/>
- <cd:constant name='space' value='فضا'/>
- <cd:constant name='spaceafter' value='فضا‌بعداز'/>
- <cd:constant name='spaceafterside' value='spaceafterside'/>
- <cd:constant name='spacebefore' value='فضا‌قبل‌از'/>
- <cd:constant name='spacebeforeside' value='spacebeforeside'/>
- <cd:constant name='spaceinbetween' value='فضا‌دربین'/>
- <cd:constant name='spacing' value='فضاگذاری'/>
- <cd:constant name='specification' value='specification'/>
- <cd:constant name='split' value='شکافتن'/>
- <cd:constant name='splitcolor' value='شکافتن‌رنگ'/>
- <cd:constant name='splitmethod' value='روش‌شکافتن'/>
- <cd:constant name='splitoffset' value='شکافتن‌آفست'/>
- <cd:constant name='spot' value='لکه'/>
- <cd:constant name='stack' value='توده'/>
- <cd:constant name='stackname' value='stackname'/>
- <cd:constant name='start' value='شروع'/>
- <cd:constant name='starter' value='starter'/>
- <cd:constant name='state' value='وضعیت'/>
- <cd:constant name='step' value='گام'/>
- <cd:constant name='stop' value='پایان'/>
- <cd:constant name='stopper' value='ایست'/>
- <cd:constant name='stretch' value='کشیدن'/>
- <cd:constant name='strip' value='strip'/>
- <cd:constant name='strut' value='بست'/>
- <cd:constant name='style' value='سبک'/>
- <cd:constant name='stylealternative' value='stylealternative'/>
- <cd:constant name='sub' value='زیر'/>
- <cd:constant name='subtitle' value='زیرعنوان'/>
- <cd:constant name='suffix' value='پسوند'/>
- <cd:constant name='suffixseparator' value='suffixseparator'/>
- <cd:constant name='suffixstopper' value='suffixstopper'/>
- <cd:constant name='surnamefirstnamesep' value='surnamefirstnamesep'/>
- <cd:constant name='surnameinitialsep' value='surnameinitialsep'/>
- <cd:constant name='surnamesep' value='surnamesep'/>
- <cd:constant name='svgstyle' value='svgstyle'/>
- <cd:constant name='sx' value='sx'/>
- <cd:constant name='sy' value='sy'/>
- <cd:constant name='symalign' value='تنظیم‌نماد'/>
- <cd:constant name='symbol' value='نماد'/>
- <cd:constant name='symbolcommand' value='symbolcommand'/>
- <cd:constant name='symbolset' value='مجموعه‌نماد'/>
- <cd:constant name='symcolor' value='رنگ‌نماد'/>
- <cd:constant name='symstyle' value='سبک‌نماد'/>
- <cd:constant name='synonym' value='مترادف'/>
- <cd:constant name='synonymcolor' value='رنگ‌مترادف'/>
- <cd:constant name='synonymcommand' value='synonymcommand'/>
- <cd:constant name='synonymstyle' value='سبک‌مترادف'/>
- <cd:constant name='tab' value='تب'/>
- <cd:constant name='text' value='متن'/>
- <cd:constant name='textalign' value='textalign'/>
- <cd:constant name='textcolor' value='رنگ‌متن'/>
- <cd:constant name='textcommand' value='فرمان‌متن'/>
- <cd:constant name='textdistance' value='فاصله‌متن'/>
- <cd:constant name='textheight' value='ارتفاع‌متن'/>
- <cd:constant name='textlayer' value='لایه‌متن'/>
- <cd:constant name='textmargin' value='حاشیه‌متن'/>
- <cd:constant name='textmethod' value='روش‌متن'/>
- <cd:constant name='textseparator' value='جداکننده‌متن'/>
- <cd:constant name='textsize' value='اندازه‌متن'/>
- <cd:constant name='textstate' value='وضعیت‌متن'/>
- <cd:constant name='textstyle' value='سبک‌متن'/>
- <cd:constant name='textwidth' value='عرض‌متن'/>
- <cd:constant name='threshold' value='threshold'/>
- <cd:constant name='time' value='time'/>
- <cd:constant name='title' value='عنوان'/>
- <cd:constant name='titlecolor' value='رنگ‌عنوان'/>
- <cd:constant name='titlecommand' value='فرمان‌عنوان'/>
- <cd:constant name='titledistance' value='فاصله‌عنوان'/>
- <cd:constant name='titleleft' value='عنوان‌چپ'/>
- <cd:constant name='titleright' value='عنوان‌راست'/>
- <cd:constant name='titlestrut' value='titlestrut'/>
- <cd:constant name='titlestyle' value='سبک‌عنوان'/>
- <cd:constant name='to' value='به'/>
- <cd:constant name='toffset' value='toffset'/>
- <cd:constant name='tolerance' value='بردباری'/>
- <cd:constant name='top' value='بالا'/>
- <cd:constant name='topcommand' value='topcommand'/>
- <cd:constant name='topdistance' value='فاصله‌بالا'/>
- <cd:constant name='topframe' value='قالب‌راست'/>
- <cd:constant name='topoffset' value='آفست‌بالا'/>
- <cd:constant name='topspace' value='فضای‌بالا'/>
- <cd:constant name='topstate' value='وضعیت‌بالا'/>
- <cd:constant name='totalnumber' value='totalnumber'/>
- <cd:constant name='transform' value='transform'/>
- <cd:constant name='translate' value='translate'/>
- <cd:constant name='trimoffset' value='trimoffset'/>
- <cd:constant name='type' value='تایپ'/>
- <cd:constant name='unit' value='واحد'/>
- <cd:constant name='unknownreference' value='مرجع‌ناشناس'/>
- <cd:constant name='up' value='up'/>
- <cd:constant name='urlalternative' value='urlalternative'/>
- <cd:constant name='urlspace' value='urlspace'/>
- <cd:constant name='userpassword' value='userpassword'/>
- <cd:constant name='validate' value='تاییداعتبار'/>
- <cd:constant name='values' value='values'/>
- <cd:constant name='vcommand' value='vcommand'/>
- <cd:constant name='vcompact' value='vcompact'/>
- <cd:constant name='vector' value='vector'/>
- <cd:constant name='veroffset' value='آفست‌عم'/>
- <cd:constant name='vertical' value='عمودی'/>
- <cd:constant name='vfactor' value='vfactor'/>
- <cd:constant name='vfil' value='vfil'/>
- <cd:constant name='viewerprefix' value='viewerprefix'/>
- <cd:constant name='voffset' value='آفست‌ع'/>
- <cd:constant name='vonsep' value='vonsep'/>
- <cd:constant name='way' value='راه'/>
- <cd:constant name='wfactor' value='wfactor'/>
- <cd:constant name='white' value='سفید'/>
- <cd:constant name='width' value='عرض'/>
- <cd:constant name='words' value='words'/>
- <cd:constant name='xanchor' value='xanchor'/>
- <cd:constant name='xfactor' value='فاکتورایکس'/>
- <cd:constant name='xhtml' value='xhtml'/>
- <cd:constant name='xmax' value='xmax'/>
- <cd:constant name='xmlsetup' value='xmlsetup'/>
- <cd:constant name='xoffset' value='آفست‌ایکس'/>
- <cd:constant name='xscale' value='مقیاس‌ایکس'/>
- <cd:constant name='xstep' value='گام‌ایکس'/>
- <cd:constant name='yanchor' value='yanchor'/>
- <cd:constant name='yfactor' value='فاکتوروای'/>
- <cd:constant name='ymax' value='ymax'/>
- <cd:constant name='yoffset' value='آفست‌وای'/>
- <cd:constant name='yscale' value='مقیاس‌وای'/>
- <cd:constant name='ystep' value='گام‌وای'/>
- </cd:constants>
-
- <!-- definitions for interface elements for language pe -->
-
- <cd:elements>
- <cd:element name='answerlines' value='answerlines'/>
- <cd:element name='answerspace' value='answerspace'/>
- <cd:element name='begin' value='عنصرها'/>
- <cd:element name='complete' value='کامل'/>
- <cd:element name='coupled' value='مزدوج'/>
- <cd:element name='currentlocal' value='موضعی‌جاری'/>
- <cd:element name='end' value='انتها'/>
- <cd:element name='endsetup' value='انتهای‌بارگذاری'/>
- <cd:element name='get' value='بگیر'/>
- <cd:element name='increment' value='افزایش'/>
- <cd:element name='list' value='لیست'/>
- <cd:element name='listof' value='لیست‌از'/>
- <cd:element name='load' value='بارگذاشتن'/>
- <cd:element name='local' value='موضعی'/>
- <cd:element name='makeup' value='آرایش'/>
- <cd:element name='next' value='بعدی'/>
- <cd:element name='place' value='مکان'/>
- <cd:element name='previous' value='قبلی'/>
- <cd:element name='previouslocal' value='موضع‌قبلی'/>
- <cd:element name='reserve' value='رزرو'/>
- <cd:element name='see' value='ببینید'/>
- <cd:element name='setup' value='بارگذاری'/>
- <cd:element name='start' value='شروع'/>
- <cd:element name='stop' value='پایان'/>
- <cd:element name='text' value='متن'/>
- <cd:element name='type' value='تایپ'/>
- </cd:elements>
-
- <!-- definitions for interface commands for language pe -->
-
- <cd:commands>
- <cd:command name='Character' value='Character'/>
- <cd:command name='Characters' value='Characters'/>
- <cd:command name='MONTH' value='MONTH'/>
- <cd:command name='Numbers' value='Numbers'/>
- <cd:command name='Romannumerals' value='Romannumerals'/>
- <cd:command name='SmallCapped' value='Cap'/>
- <cd:command name='SmallCaps' value='Caps'/>
- <cd:command name='WEEKDAY' value='WEEKDAY'/>
- <cd:command name='WORD' value='WORD'/>
- <cd:command name='WORDS' value='WORDS'/>
- <cd:command name='Word' value='Word'/>
- <cd:command name='Words' value='Words'/>
- <cd:command name='about' value='درمورد'/>
- <cd:command name='adaptfontfeature' value='adaptfontfeature'/>
- <cd:command name='adaptlayout' value='تنظیم‌طرح‌بندی'/>
- <cd:command name='addfeature' value='addfeature'/>
- <cd:command name='alignbottom' value='alignbottom'/>
- <cd:command name='aligned' value='aligned'/>
- <cd:command name='alignedbox' value='alignedbox'/>
- <cd:command name='alignedline' value='alignedline'/>
- <cd:command name='alignhere' value='alignhere'/>
- <cd:command name='alignment' value='alignment'/>
- <cd:command name='alignmentcharacter' value='alignmentcharacter'/>
- <cd:command name='applytocharacters' value='applytocharacters'/>
- <cd:command name='applytofirstcharacter' value='applytofirstcharacter'/>
- <cd:command name='arg' value='افزودن'/>
- <cd:command name='at' value='در'/>
- <cd:command name='atleftmargin' value='درحاشیه‌چپ'/>
- <cd:command name='atpage' value='درصفحه'/>
- <cd:command name='atrightmargin' value='درحاشیه‌راست'/>
- <cd:command name='background' value='پس‌زمینه'/>
- <cd:command name='backspace' value='فاصله‌پشت'/>
- <cd:command name='blackrule' value='خط‌سیاه'/>
- <cd:command name='blackrules' value='خطهای‌سیاه'/>
- <cd:command name='blank' value='خالی'/>
- <cd:command name='bookmark' value='چوبخط'/>
- <cd:command name='bottombox' value='bottombox'/>
- <cd:command name='bottomdistance' value='فاصله‌پایین'/>
- <cd:command name='bottomheight' value='ارتفاع‌پایین'/>
- <cd:command name='bottomleftbox' value='bottomleftbox'/>
- <cd:command name='bottomrightbox' value='bottomrightbox'/>
- <cd:command name='bottomspace' value='فضای‌پایین'/>
- <cd:command name='buildtextbottomdot' value='buildtextbottomdot'/>
- <cd:command name='but' value='اما'/>
- <cd:command name='button' value='دکمه'/>
- <cd:command name='bypassblocks' value='عبوربلوکها'/>
- <cd:command name='character' value='حرف'/>
- <cd:command name='characters' value='حرفها'/>
- <cd:command name='chem' value='chem'/>
- <cd:command name='clip' value='گیره'/>
- <cd:command name='clonefield' value='میدان‌شبیه‌سازی'/>
- <cd:command name='color' value='رنگ'/>
- <cd:command name='colorbar' value='میله‌رنگ'/>
- <cd:command name='colorvalue' value='مقداررنگ'/>
- <cd:command name='column' value='ستون'/>
- <cd:command name='comparecolorgroup' value='مقایسه‌گروه‌رنگ'/>
- <cd:command name='comparepalet' value='لوح‌مقایسه'/>
- <cd:command name='completepagenumber' value='شماره‌صفحه‌کامل'/>
- <cd:command name='completeregister' value='ثبت‌کامل'/>
- <cd:command name='component' value='مولفه'/>
- <cd:command name='convertnumber' value='شماره‌مبدل'/>
- <cd:command name='copyfield' value='میدان‌کپی'/>
- <cd:command name='correctwhitespace' value='فضای‌سفیدصحیح'/>
- <cd:command name='coupledocument' value='نوشتارزوج'/>
- <cd:command name='couplemarking' value='نشانه‌گذاری‌زوج'/>
- <cd:command name='couplepage' value='صفحه‌زوج'/>
- <cd:command name='couplepaper' value='کاغذزوج'/>
- <cd:command name='coupleregister' value='ثبت‌زوج'/>
- <cd:command name='crlf' value='crlf'/>
- <cd:command name='currentdate' value='تاریخ‌جاری'/>
- <cd:command name='currentheadnumber' value='شماره‌سرجاری'/>
- <cd:command name='cutspace' value='فضای‌برش'/>
- <cd:command name='date' value='تاریخ'/>
- <cd:command name='decouplemarking' value='جداسازی‌نشانه‌گذاری'/>
- <cd:command name='decrementnumber' value='شماره‌کاهش'/>
- <cd:command name='define' value='تعریف'/>
- <cd:command name='defineaccent' value='تعریف‌لهجه'/>
- <cd:command name='defineblank' value='تعریف‌خالی'/>
- <cd:command name='defineblock' value='تعریف‌بلوک'/>
- <cd:command name='definebodyfont' value='تعریف‌قلم‌متن'/>
- <cd:command name='definebodyfontenvironment' value='تعریف‌محیط‌قلم‌بدنه'/>
- <cd:command name='definebodyfontswitch' value='definebodyfontswitch'/>
- <cd:command name='definebuffer' value='تعریف‌بافر'/>
- <cd:command name='definecharacter' value='تعریف‌حرف'/>
- <cd:command name='definecharacterkerning' value='definecharacterkerning'/>
- <cd:command name='definecharacterspacing' value='definecharacterspacing'/>
- <cd:command name='definecolor' value='تعریف‌رنگ'/>
- <cd:command name='definecolorgroup' value='تعریف‌گروه‌رنگ'/>
- <cd:command name='definecolumnbreak' value='تعریف‌شکستن‌ستون'/>
- <cd:command name='definecolumnset' value='تعریف‌مجموعه‌ستون'/>
- <cd:command name='definecombination' value='تعریف‌ترکیب'/>
- <cd:command name='definecombinedlist' value='تعریف‌لیست‌ترکیبی'/>
- <cd:command name='definecommand' value='تعریف‌فرمان'/>
- <cd:command name='defineconversion' value='تعریف‌تبدیل'/>
- <cd:command name='definedescription' value='تعریف‌شرح'/>
- <cd:command name='definedfont' value='definedfont'/>
- <cd:command name='defineenumeration' value='تعریف‌شماره‌بندی'/>
- <cd:command name='definefallbackfamily' value='definefallbackfamily'/>
- <cd:command name='definefield' value='تعریف‌میدان'/>
- <cd:command name='definefieldstack' value='تعریف‌توده‌میدان'/>
- <cd:command name='definefiguresymbol' value='تعریف‌نمادشکل'/>
- <cd:command name='definefilefallback' value='definefilefallback'/>
- <cd:command name='definefirstline' value='definefirstline'/>
- <cd:command name='definefloat' value='تعریف‌شناور'/>
- <cd:command name='definefont' value='تعریف‌قلم'/>
- <cd:command name='definefontalternative' value='definefontalternative'/>
- <cd:command name='definefontfallback' value='definefontfallback'/>
- <cd:command name='definefontfamily' value='definefontfamily'/>
- <cd:command name='definefontfamilypreset' value='definefontfamilypreset'/>
- <cd:command name='definefontfeature' value='definefontfeature'/>
- <cd:command name='definefontfile' value='definefontfile'/>
- <cd:command name='definefontsize' value='definefontsize'/>
- <cd:command name='definefontsolution' value='definefontsolution'/>
- <cd:command name='definefontstyle' value='تعریف‌سبک‌قلم'/>
- <cd:command name='definefontsynonym' value='تعریف‌مترادف‌قلم'/>
- <cd:command name='defineframed' value='تعریف‌قالبی'/>
- <cd:command name='defineframedtext' value='تعریف‌متن‌قالبی'/>
- <cd:command name='definefrozenfont' value='definefrozenfont'/>
- <cd:command name='definehbox' value='تعریف‌جعبه‌‌افقی'/>
- <cd:command name='definehead' value='تعریف‌سر'/>
- <cd:command name='definehyphenationfeatures' value='definehyphenationfeatures'/>
- <cd:command name='defineindentedtext' value='defineindentedtext'/>
- <cd:command name='defineinmargin' value='تعریف‌درون‌حاشیه'/>
- <cd:command name='defineinteractionmenu' value='تعریف‌منوی‌پانل'/>
- <cd:command name='defineitemgroup' value='تعریف‌گروه‌آیتم'/>
- <cd:command name='defineitems' value='defineitems'/>
- <cd:command name='definelabel' value='تعریف‌برچسب'/>
- <cd:command name='definelayer' value='تعریف‌لایه'/>
- <cd:command name='definelayout' value='تعریف‌طرح‌بندی'/>
- <cd:command name='definelinenote' value='definelinenote'/>
- <cd:command name='definelist' value='تعریف‌لیست'/>
- <cd:command name='definelogo' value='تعریف‌آرم'/>
- <cd:command name='definemainfield' value='تعریف‌میدان‌اصلی'/>
- <cd:command name='definemakeup' value='تعریف‌آرایش'/>
- <cd:command name='definemarking' value='تعریف‌نشانه‌گذاری'/>
- <cd:command name='definemathalignment' value='تعریف‌تنظیم‌ریاضی'/>
- <cd:command name='definemode' value='definemode'/>
- <cd:command name='definenamedcolor' value='definenamedcolor'/>
- <cd:command name='definenote' value='definenote'/>
- <cd:command name='defineoutput' value='تعریف‌خروجی'/>
- <cd:command name='defineoverlay' value='تعریف‌پوشش'/>
- <cd:command name='definepagebreak' value='تعریف‌شکست‌صفحه'/>
- <cd:command name='definepalet' value='تعریف‌لوح'/>
- <cd:command name='definepapersize' value='تعریف‌اندازه‌برگ'/>
- <cd:command name='defineparagraphs' value='تعریف‌پاراگرافها'/>
- <cd:command name='defineperiodkerning' value='defineperiodkerning'/>
- <cd:command name='defineplacement' value='تعریف‌جانشانی'/>
- <cd:command name='defineprofile' value='تعریف‌پروفایل'/>
- <cd:command name='defineprogram' value='تعریف‌برنامه'/>
- <cd:command name='definerawfont' value='تعریف‌قلم‌خام'/>
- <cd:command name='definereference' value='تعریف‌مرجع'/>
- <cd:command name='definereferenceformat' value='تعریف‌شمایل‌مرجع'/>
- <cd:command name='definereferencelist' value='تعریف‌لیست‌مرجع'/>
- <cd:command name='defineregister' value='تعریف‌ثبت'/>
- <cd:command name='definerule' value='تعریف‌خط‌حائل'/>
- <cd:command name='definesection' value='تعریف‌بخش'/>
- <cd:command name='definesectionblock' value='تعریف‌بلوک‌بخش'/>
- <cd:command name='definesorting' value='تعریف‌ترتیب'/>
- <cd:command name='definestartstop' value='تعریف‌شروع‌پایان'/>
- <cd:command name='definestyle' value='تعریف‌سبک'/>
- <cd:command name='definesubfield' value='تعریف‌زیرمیدان'/>
- <cd:command name='definesymbol' value='تعریف‌نماد'/>
- <cd:command name='definesynonyms' value='تعریف‌مترادفها'/>
- <cd:command name='definetabletemplate' value='تعریف‌الگوی‌جدول'/>
- <cd:command name='definetabulate' value='تعریف‌جدول‌بندی'/>
- <cd:command name='definetext' value='تعریف‌متن'/>
- <cd:command name='definetextbackground' value='definetextbackground'/>
- <cd:command name='definetextnote' value='definetextnote'/>
- <cd:command name='definetextposition' value='تعریف‌مکان‌متن'/>
- <cd:command name='definetextvariable' value='تعریف‌متغیرمتن'/>
- <cd:command name='definetype' value='تعریف‌تایپ'/>
- <cd:command name='definetyping' value='تعریف‌تایپ‌کردن'/>
- <cd:command name='defineversion' value='تعریف‌نسخه'/>
- <cd:command name='depthspanningtext' value='depthspanningtext'/>
- <cd:command name='determineheadnumber' value='تعیین‌شماره‌سر'/>
- <cd:command name='determinelistcharacteristics' value='تعیین‌مشخصات‌لیست'/>
- <cd:command name='determineregistercharacteristics' value='تعیین‌مشخصات‌ثبت'/>
- <cd:command name='dimension' value='بعد'/>
- <cd:command name='disableinteractionmenu' value='ازکارانداختن‌منوی‌پانل'/>
- <cd:command name='disablemode' value='disablemode'/>
- <cd:command name='doaddfeature' value='doaddfeature'/>
- <cd:command name='domicile' value='مسکن'/>
- <cd:command name='dontconvertfont' value='dontconvertfont'/>
- <cd:command name='donttest' value='امتحان‌نکن'/>
- <cd:command name='edgedistance' value='فاصله‌لبه'/>
- <cd:command name='edgewidth' value='عرض‌لبه'/>
- <cd:command name='emphasisboldface' value='emphasisboldface'/>
- <cd:command name='emptylines' value='خطها‌خالی'/>
- <cd:command name='enablemode' value='enablemode'/>
- <cd:command name='environment' value='محیط'/>
- <cd:command name='externalfigure' value='شکل‌خارجی'/>
- <cd:command name='fact' value='حقیقت'/>
- <cd:command name='fastswitchtobodyfont' value='fastswitchtobodyfont'/>
- <cd:command name='feature' value='feature'/>
- <cd:command name='field' value='میدان'/>
- <cd:command name='fieldstack' value='میدان‌پشته'/>
- <cd:command name='fillinfield' value='درج‌درمیدان'/>
- <cd:command name='fillinline' value='درج‌درخط'/>
- <cd:command name='fillinrules' value='درج‌درخطها'/>
- <cd:command name='fillintext' value='درج‌درمتن'/>
- <cd:command name='firstcharacter' value='firstcharacter'/>
- <cd:command name='fitfield' value='پرکردن‌میدان'/>
- <cd:command name='fittopbaselinegrid' value='fittopbaselinegrid'/>
- <cd:command name='fixedspace' value='فضای‌ثابت'/>
- <cd:command name='fixedspaces' value='فضاهای‌ثابت'/>
- <cd:command name='flushnotes' value='flushnotes'/>
- <cd:command name='followprofile' value='پیروی‌پروفایل'/>
- <cd:command name='followprofileversion' value='پیروی‌نسخه‌پروفایل'/>
- <cd:command name='followversion' value='پیروی‌نسخه'/>
- <cd:command name='footerdistance' value='فاصله‌ته‌برگ'/>
- <cd:command name='footerheight' value='ارتفاع‌ته‌برگ'/>
- <cd:command name='footnote' value='پانوشت'/>
- <cd:command name='footnotetext' value='متن‌پانوشت'/>
- <cd:command name='forceblocks' value='اجباربلوکها'/>
- <cd:command name='forcecharacterstripping' value='forcecharacterstripping'/>
- <cd:command name='formulanumber' value='شماره‌فرمول'/>
- <cd:command name='fraction' value='کسر'/>
- <cd:command name='framed' value='قالبی'/>
- <cd:command name='from' value='از'/>
- <cd:command name='fromlinenote' value='fromlinenote'/>
- <cd:command name='getbuffer' value='دریافت‌بافر'/>
- <cd:command name='getfirstcharacter' value='getfirstcharacter'/>
- <cd:command name='getmarking' value='دریافت‌نشانه'/>
- <cd:command name='getnumber' value='دریافت‌شماره'/>
- <cd:command name='globaldisablemode' value='globaldisablemode'/>
- <cd:command name='globalenablemode' value='globalenablemode'/>
- <cd:command name='globalpreventmode' value='globalpreventmode'/>
- <cd:command name='godown' value='بروپایین'/>
- <cd:command name='goto' value='بروبه'/>
- <cd:command name='gotobox' value='بروبه‌جعبه'/>
- <cd:command name='gotopage' value='بروبه‌صفحه'/>
- <cd:command name='graycolor' value='رنگ‌خاکستری'/>
- <cd:command name='greyvalue' value='مقدارخاکستری'/>
- <cd:command name='grid' value='توری'/>
- <cd:command name='hairline' value='خط‌مو'/>
- <cd:command name='head' value='سر'/>
- <cd:command name='headerdistance' value='فاصله‌سربرگ'/>
- <cd:command name='headerheight' value='ارتفاع‌سربرگ'/>
- <cd:command name='headlevel' value='مرحله‌سر'/>
- <cd:command name='headnumber' value='شماره‌سر'/>
- <cd:command name='headsym' value='نمادسر'/>
- <cd:command name='headtext' value='متن‌سر'/>
- <cd:command name='heightspanningtext' value='heightspanningtext'/>
- <cd:command name='hideblocks' value='بلوکها‌پنهان'/>
- <cd:command name='high' value='بلند'/>
- <cd:command name='hl' value='خ‌ا'/>
- <cd:command name='immediatebetweenlist' value='فوری‌بین‌لیست'/>
- <cd:command name='immediatetolist' value='فوری‌به‌لیست'/>
- <cd:command name='in' value='درون'/>
- <cd:command name='incrementnumber' value='شماره‌افزایش'/>
- <cd:command name='indenting' value='تورفتگی'/>
- <cd:command name='inframed' value='درقالبی'/>
- <cd:command name='infull' value='درپر'/>
- <cd:command name='ininner' value='درداخلی'/>
- <cd:command name='inleft' value='درچپ'/>
- <cd:command name='inleftedge' value='درلبه‌چپ'/>
- <cd:command name='inleftmargin' value='درحاشیه‌چپ'/>
- <cd:command name='inline' value='درخط'/>
- <cd:command name='inmargin' value='درحاشیه'/>
- <cd:command name='inmframed' value='inmframed'/>
- <cd:command name='inneredgedistance' value='فاصله‌لبه‌داخلی'/>
- <cd:command name='inneredgewidth' value='عرض‌لبه‌داخلی'/>
- <cd:command name='innermargindistance' value='فاصله‌حاشیه‌داخلی'/>
- <cd:command name='innermarginwidth' value='عرض‌حاشیه‌داخلی'/>
- <cd:command name='inothermargin' value='درحاشیه‌دیگر'/>
- <cd:command name='inouter' value='درخارجی'/>
- <cd:command name='inright' value='درراست'/>
- <cd:command name='inrightedge' value='درلبه‌راست'/>
- <cd:command name='inrightmargin' value='درحاشیه‌راست'/>
- <cd:command name='installlanguage' value='نصب‌زبان'/>
- <cd:command name='interactionbar' value='میله‌پانل'/>
- <cd:command name='interactionbuttons' value='دکمه‌پانل'/>
- <cd:command name='interactionmenu' value='منوی‌پانل'/>
- <cd:command name='item' value='آیتم'/>
- <cd:command name='itemgroup' value='itemgroup'/>
- <cd:command name='items' value='آیتمها'/>
- <cd:command name='itemtag' value='itemtag'/>
- <cd:command name='its' value='its'/>
- <cd:command name='keepblocks' value='حفظ‌بلوکها'/>
- <cd:command name='kerncharacters' value='kerncharacters'/>
- <cd:command name='label' value='برچسب'/>
- <cd:command name='labels' value='برچسبها'/>
- <cd:command name='labeltext' value='متن‌برچسب'/>
- <cd:command name='language' value='زبان'/>
- <cd:command name='languageCharacters' value='languageCharacters'/>
- <cd:command name='languagecharacters' value='languagecharacters'/>
- <cd:command name='leftaligned' value='چپ‌چین'/>
- <cd:command name='leftbottombox' value='leftbottombox'/>
- <cd:command name='leftedgedistance' value='فاصله‌لبه‌چپ'/>
- <cd:command name='leftedgewidth' value='عرض‌لبه‌چپ'/>
- <cd:command name='leftline' value='leftline'/>
- <cd:command name='leftmargindistance' value='فاصله‌حاشیه‌چپ'/>
- <cd:command name='leftmarginwidth' value='عرض‌حاشیه‌چپ'/>
- <cd:command name='leg' value='پا'/>
- <cd:command name='linecorrection' value='linecorrection'/>
- <cd:command name='linenote' value='linenote'/>
- <cd:command name='linespanningtext' value='linespanningtext'/>
- <cd:command name='linewidth' value='عرض‌خط'/>
- <cd:command name='listheight' value='ارتفاع‌خط'/>
- <cd:command name='listlength' value='طول‌لیست'/>
- <cd:command name='listsymbol' value='نمادلیست'/>
- <cd:command name='listwidth' value='عرض‌لیست'/>
- <cd:command name='loadfontgoodies' value='loadfontgoodies'/>
- <cd:command name='localfootnotes' value='localfootnotes'/>
- <cd:command name='localnotes' value='localnotes'/>
- <cd:command name='logfields' value='میدانهای‌گزارش'/>
- <cd:command name='lohi' value='پابا'/>
- <cd:command name='low' value='پایین'/>
- <cd:command name='macroname' value='نام‌ماکرو'/>
- <cd:command name='mainlanguage' value='زبان‌اصلی'/>
- <cd:command name='makeupheight' value='ارتفاع‌آرایش'/>
- <cd:command name='makeupwidth' value='عرض‌آرایش'/>
- <cd:command name='mar' value='حاش'/>
- <cd:command name='marginblock' value='marginblock'/>
- <cd:command name='margindistance' value='فاصله‌حاشیه'/>
- <cd:command name='marginrule' value='خط‌حاشیه'/>
- <cd:command name='margintext' value='متن‌حاشیه'/>
- <cd:command name='margintitle' value='عنوان‌حاشیه'/>
- <cd:command name='marginwidth' value='عرض‌حاشیه'/>
- <cd:command name='marginword' value='کلمه‌حاشیه'/>
- <cd:command name='marking' value='نشانه‌گذاری'/>
- <cd:command name='markversion' value='نسخه‌نشانه'/>
- <cd:command name='mathematics' value='ریاضی'/>
- <cd:command name='menubutton' value='دکمه‌منو'/>
- <cd:command name='mframed' value='mframed'/>
- <cd:command name='midaligned' value='تنظیم‌وسط'/>
- <cd:command name='mirror' value='آینه'/>
- <cd:command name='month' value='ماه'/>
- <cd:command name='moveformula' value='انتقال‌فرمول'/>
- <cd:command name='moveongrid' value='انتقال‌به‌توری'/>
- <cd:command name='movesidefloat' value='انتقال‌کنار‌شناور'/>
- <cd:command name='navigating' value='هدایت'/>
- <cd:command name='nodimension' value='بدون‌بعد'/>
- <cd:command name='noheaderandfooterlines' value='بدون‌خط‌سروته‌برگ'/>
- <cd:command name='noindenting' value='بدون‌تورفتگی'/>
- <cd:command name='noitem' value='noitem'/>
- <cd:command name='nolist' value='بدون‌لیست'/>
- <cd:command name='nomarking' value='بدون‌نشانه‌گذاری'/>
- <cd:command name='nomoreblocks' value='بدون‌بلوکهای‌بیشتر'/>
- <cd:command name='nomorefiles' value='بدون‌فایلهای‌بیشتر'/>
- <cd:command name='nop' value='منفی'/>
- <cd:command name='nospace' value='بدون‌فضا'/>
- <cd:command name='note' value='یادداشت'/>
- <cd:command name='notesymbol' value='notesymbol'/>
- <cd:command name='notopandbottomlines' value='بدون‌خط‌بالاوپایین'/>
- <cd:command name='notsmallcapped' value='سرپوش‌کوچک‌نه'/>
- <cd:command name='nowhitespace' value='بدون‌فضای‌سفید'/>
- <cd:command name='numberofsubpages' value='شماره‌زیرصفحه'/>
- <cd:command name='numbers' value='شماره‌ها'/>
- <cd:command name='outeredgedistance' value='فاصله‌لبه‌خارجی'/>
- <cd:command name='outeredgewidth' value='عرض‌لبه‌خارجی'/>
- <cd:command name='outermargindistance' value='فاصله‌حاشیه‌خارجی'/>
- <cd:command name='outermarginwidth' value='عرض‌حاشیه‌خارجی'/>
- <cd:command name='packed' value='فشرده'/>
- <cd:command name='page' value='صفحه'/>
- <cd:command name='pagebreak' value='pagebreak'/>
- <cd:command name='pagedepth' value='عمق‌صفحه'/>
- <cd:command name='pagenumber' value='شماره‌صفحه'/>
- <cd:command name='pageoffset' value='آفست‌صفحه'/>
- <cd:command name='pagereference' value='مرجع‌صفحه'/>
- <cd:command name='paperheight' value='ارتفاع‌برگ'/>
- <cd:command name='paperwidth' value='عرض‌برگ'/>
- <cd:command name='periods' value='نقطه‌ها'/>
- <cd:command name='placebookmarks' value='درج‌چوب‌خط'/>
- <cd:command name='placecombinedlist' value='درج‌لیست‌مختلط'/>
- <cd:command name='placefloat' value='درج‌شناور'/>
- <cd:command name='placefootnotes' value='درج‌پانوشتها'/>
- <cd:command name='placeformula' value='درج‌فرمول'/>
- <cd:command name='placeheadnumber' value='درج‌شماره‌سر'/>
- <cd:command name='placeheadtext' value='درج‌متن‌سر'/>
- <cd:command name='placelegend' value='درج‌راهنما'/>
- <cd:command name='placelist' value='درج‌لیست'/>
- <cd:command name='placelistofsynonyms' value='placelistofsynonyms'/>
- <cd:command name='placelocalfootnotes' value='درج‌پانوشتهای‌موضعی'/>
- <cd:command name='placelocalnotes' value='placelocalnotes'/>
- <cd:command name='placelogos' value='درج‌آرمها'/>
- <cd:command name='placenamedfloat' value='placenamedfloat'/>
- <cd:command name='placenotes' value='placenotes'/>
- <cd:command name='placeongrid' value='درج‌در‌توری'/>
- <cd:command name='placeontopofeachother' value='درج‌در‌بالای‌یکدیگر'/>
- <cd:command name='placepagenumber' value='درج‌شماره‌صفحه'/>
- <cd:command name='placerawlist' value='درج‌لیست‌خام'/>
- <cd:command name='placereferencelist' value='درج‌لیست‌مرجع'/>
- <cd:command name='placeregister' value='درج‌ثبت'/>
- <cd:command name='placerule' value='درج‌خط'/>
- <cd:command name='placesidebyside' value='درج‌کنار‌به‌کنار'/>
- <cd:command name='placesubformula' value='درج‌زیرفرمول'/>
- <cd:command name='placetextvariable' value='درج‌متغیرمتن'/>
- <cd:command name='position' value='مکان'/>
- <cd:command name='positiontext' value='مکان‌متن'/>
- <cd:command name='postponenotes' value='postponenotes'/>
- <cd:command name='postponingnotes' value='postponingnotes'/>
- <cd:command name='predefinedfont' value='predefinedfont'/>
- <cd:command name='predefinefont' value='predefinefont'/>
- <cd:command name='presetdocument' value='presetdocument'/>
- <cd:command name='prettyprintbuffer' value='prettyprintbuffer'/>
- <cd:command name='preventmode' value='preventmode'/>
- <cd:command name='printpaperheight' value='چاپ‌ارتفاع‌برگ'/>
- <cd:command name='printpaperwidth' value='چاپ‌عرض‌برگ'/>
- <cd:command name='processblocks' value='بلوکهای‌پردازش'/>
- <cd:command name='processbodyfontenvironmentlist' value='processbodyfontenvironmentlist'/>
- <cd:command name='processpage' value='صفحه‌پردازش'/>
- <cd:command name='product' value='تولید'/>
- <cd:command name='program' value='برنامه'/>
- <cd:command name='project' value='پروژه'/>
- <cd:command name='publication' value='نشر'/>
- <cd:command name='quotation' value='نقل‌قول'/>
- <cd:command name='quote' value='نقل'/>
- <cd:command name='ran' value='ran'/>
- <cd:command name='redo' value='انجام‌دوباره'/>
- <cd:command name='redoconvertfont' value='redoconvertfont'/>
- <cd:command name='ref' value='رج'/>
- <cd:command name='reference' value='مرجع'/>
- <cd:command name='referral' value='رجوع'/>
- <cd:command name='referraldate' value='تاریخ‌رجوع'/>
- <cd:command name='referring' value='مراجعه'/>
- <cd:command name='registerfontclass' value='registerfontclass'/>
- <cd:command name='registerhyphenationexception' value='registerhyphenationexception'/>
- <cd:command name='registerhyphenationpattern' value='registerhyphenationpattern'/>
- <cd:command name='remark' value='توجه'/>
- <cd:command name='replacefeature' value='replacefeature'/>
- <cd:command name='reset' value='بازنشانی'/>
- <cd:command name='resetandaddfeature' value='resetandaddfeature'/>
- <cd:command name='resetcharacteralign' value='resetcharacteralign'/>
- <cd:command name='resetcharacterkerning' value='resetcharacterkerning'/>
- <cd:command name='resetcharacterspacing' value='resetcharacterspacing'/>
- <cd:command name='resetcharacterstripping' value='resetcharacterstripping'/>
- <cd:command name='resetfeature' value='resetfeature'/>
- <cd:command name='resetfontcolorsheme' value='resetfontcolorsheme'/>
- <cd:command name='resetfontfallback' value='resetfontfallback'/>
- <cd:command name='resetfontsolution' value='resetfontsolution'/>
- <cd:command name='resethyphenationfeatures' value='resethyphenationfeatures'/>
- <cd:command name='resetlocalfloats' value='resetlocalfloats'/>
- <cd:command name='resetmarking' value='بازنشانی‌نشانه‌گذاری'/>
- <cd:command name='resetmode' value='resetmode'/>
- <cd:command name='resetnumber' value='بازنشانی‌شماره'/>
- <cd:command name='resetpath' value='resetpath'/>
- <cd:command name='resetperiodkerning' value='resetperiodkerning'/>
- <cd:command name='resetsystemmode' value='resetsystemmode'/>
- <cd:command name='resettextcontent' value='بازنشانی‌متن'/>
- <cd:command name='resetvisualizers' value='resetvisualizers'/>
- <cd:command name='restoreglobalbodyfont' value='restoreglobalbodyfont'/>
- <cd:command name='retestfeature' value='retestfeature'/>
- <cd:command name='revivefeature' value='revivefeature'/>
- <cd:command name='rightaligned' value='تنظیم‌راست'/>
- <cd:command name='rightbottombox' value='rightbottombox'/>
- <cd:command name='rightedgedistance' value='فاصله‌لبه‌راست'/>
- <cd:command name='rightedgewidth' value='عرض‌لبه‌راست'/>
- <cd:command name='rightline' value='rightline'/>
- <cd:command name='rightmargindistance' value='فاصله‌حاشیه‌راست'/>
- <cd:command name='rightmarginwidth' value='عرض‌حاشیه‌راست'/>
- <cd:command name='romannumerals' value='اعدادلاتین'/>
- <cd:command name='rotate' value='دوران'/>
- <cd:command name='savebuffer' value='savebuffer'/>
- <cd:command name='scale' value='مقیاس'/>
- <cd:command name='screen' value='پرده'/>
- <cd:command name='selectblocks' value='انتخاب‌بلوکها'/>
- <cd:command name='selectpaper' value='انتخاب‌برگ'/>
- <cd:command name='selectversion' value='انتخاب‌نسخه'/>
- <cd:command name='setbigbodyfont' value='setbigbodyfont'/>
- <cd:command name='setcharacteralign' value='setcharacteralign'/>
- <cd:command name='setcharacteraligndetail' value='setcharacteraligndetail'/>
- <cd:command name='setcharactercasing' value='setcharactercasing'/>
- <cd:command name='setcharactercleaning' value='setcharactercleaning'/>
- <cd:command name='setcharacterkerning' value='setcharacterkerning'/>
- <cd:command name='setcharacterspacing' value='setcharacterspacing'/>
- <cd:command name='setcharacterstripping' value='setcharacterstripping'/>
- <cd:command name='setcurrentfontclass' value='setcurrentfontclass'/>
- <cd:command name='setfirstline' value='setfirstline'/>
- <cd:command name='setfirstpasscharacteralign' value='setfirstpasscharacteralign'/>
- <cd:command name='setfont' value='setfont'/>
- <cd:command name='setfontcolorsheme' value='setfontcolorsheme'/>
- <cd:command name='setfontfeature' value='setfontfeature'/>
- <cd:command name='setfontsolution' value='setfontsolution'/>
- <cd:command name='setfontstrut' value='setfontstrut'/>
- <cd:command name='sethyphenationfeatures' value='sethyphenationfeatures'/>
- <cd:command name='setmainbodyfont' value='setmainbodyfont'/>
- <cd:command name='setmode' value='setmode'/>
- <cd:command name='setnote' value='setnote'/>
- <cd:command name='setnotetext' value='setnotetext'/>
- <cd:command name='setnumber' value='تعیین‌شماره'/>
- <cd:command name='setperiodkerning' value='setperiodkerning'/>
- <cd:command name='setsecondpasscharacteralign' value='setsecondpasscharacteralign'/>
- <cd:command name='setsmallbodyfont' value='setsmallbodyfont'/>
- <cd:command name='setsystemmode' value='setsystemmode'/>
- <cd:command name='settextcontent' value='تعیین‌محتوای‌متن'/>
- <cd:command name='settextvariable' value='تعیین‌متغیر‌متن'/>
- <cd:command name='setupalign' value='بارگذاری‌تنظیم'/>
- <cd:command name='setupanswerarea' value='setupanswerarea'/>
- <cd:command name='setuparranging' value='بارگذاری‌ترتیب'/>
- <cd:command name='setupattachment' value='setupattachment'/>
- <cd:command name='setupbackground' value='بارگذاری‌پس‌زمینه'/>
- <cd:command name='setupbackgrounds' value='بارگذاری‌پس‌زمینه‌ها'/>
- <cd:command name='setupblackrules' value='بارگذاری‌خطهای‌سیاه'/>
- <cd:command name='setupblank' value='بارگذاری‌خالی'/>
- <cd:command name='setupblock' value='بارگذاری‌بلوک'/>
- <cd:command name='setupbodyfont' value='بارگذاری‌قلم‌متن'/>
- <cd:command name='setupbodyfontenvironment' value='بارگذاری‌محیط‌قلم‌متن'/>
- <cd:command name='setupbottom' value='بارگذاری‌پایین'/>
- <cd:command name='setupbottomtexts' value='بارگذاری‌متن‌پایین'/>
- <cd:command name='setupbuffer' value='بارگذاری‌بافر'/>
- <cd:command name='setupbuttons' value='بارگذاری‌دکمه‌ها'/>
- <cd:command name='setupcapitals' value='setupcapitals'/>
- <cd:command name='setupcaption' value='بارگذاری‌شرح'/>
- <cd:command name='setupcaptions' value='بارگذاری‌شرحها'/>
- <cd:command name='setupcharacteralign' value='setupcharacteralign'/>
- <cd:command name='setupcharacterkerning' value='setupcharacterkerning'/>
- <cd:command name='setupcharacterspacing' value='setupcharacterspacing'/>
- <cd:command name='setupclipping' value='بارگذاری‌چیدن'/>
- <cd:command name='setupcolor' value='بارگذاری‌رنگ'/>
- <cd:command name='setupcolors' value='بارگذاری‌رنگها'/>
- <cd:command name='setupcolumns' value='بارگذاری‌ستونها'/>
- <cd:command name='setupcolumnset' value='بارگذاری‌مجموعه‌ستون'/>
- <cd:command name='setupcolumnsetlines' value='بارگذاری‌خطهای‌مجموعه‌ستون'/>
- <cd:command name='setupcolumnsetstart' value='بارگذاری‌شروع‌مجموعه‌ستون'/>
- <cd:command name='setupcombinations' value='بارگذاری‌ترکیب‌ها'/>
- <cd:command name='setupcombinedlist' value='بارگذاری‌لیست‌ترکیبی'/>
- <cd:command name='setupcomment' value='بارگذاری‌توضیح'/>
- <cd:command name='setupcounter' value='setupcounter'/>
- <cd:command name='setupdescription' value='setupdescription'/>
- <cd:command name='setupdescriptions' value='بارگذاری‌شرح'/>
- <cd:command name='setupenumeration' value='setupenumeration'/>
- <cd:command name='setupenumerations' value='بارگذاری‌شماره‌گذاریها'/>
- <cd:command name='setupexternalfigures' value='بارگذاری‌شکلهای‌خارجی'/>
- <cd:command name='setupfield' value='بارگذاری‌میدان'/>
- <cd:command name='setupfields' value='بارگذاری‌میدانها'/>
- <cd:command name='setupfillinlines' value='بارگذاری‌پرکردن‌خطها'/>
- <cd:command name='setupfillinrules' value='بارگذاری‌درج‌درخطها'/>
- <cd:command name='setupfirstline' value='setupfirstline'/>
- <cd:command name='setupfloat' value='بارگذاری‌شناور'/>
- <cd:command name='setupfloats' value='بارگذاری‌شناورها'/>
- <cd:command name='setupfloatsplitting' value='بارگذاری‌شکافتن‌شناورها'/>
- <cd:command name='setupfontexpansion' value='setupfontexpansion'/>
- <cd:command name='setupfontprotrusion' value='setupfontprotrusion'/>
- <cd:command name='setupfonts' value='setupfonts'/>
- <cd:command name='setupfontsolution' value='setupfontsolution'/>
- <cd:command name='setupfooter' value='بارگذاری‌ته‌برگ'/>
- <cd:command name='setupfootertexts' value='بارگذاری‌متن‌پانوشت'/>
- <cd:command name='setupfootnotedefinition' value='بارگذاری‌تعریف‌پانوشت'/>
- <cd:command name='setupfootnotes' value='بارگذاری‌پانوشتها'/>
- <cd:command name='setupforms' value='بارگذاری‌طرح'/>
- <cd:command name='setupformula' value='setupformula'/>
- <cd:command name='setupformulas' value='بارگذاری‌فرمولها'/>
- <cd:command name='setupframed' value='بارگذاری‌قالبی'/>
- <cd:command name='setupframedtext' value='setupframedtext'/>
- <cd:command name='setupframedtexts' value='بارگذاری‌متن‌قالبی'/>
- <cd:command name='setuphead' value='بارگذاری‌سر'/>
- <cd:command name='setupheader' value='بارگذاری‌سربرگ'/>
- <cd:command name='setupheadertexts' value='بارگذاری‌متن‌سربرگ'/>
- <cd:command name='setupheadnumber' value='بارگذاری‌شماره‌سر'/>
- <cd:command name='setupheads' value='بارگذاری‌سرها'/>
- <cd:command name='setupheadtext' value='بارگذاری‌متن‌سر'/>
- <cd:command name='setuphyphenation' value='setuphyphenation'/>
- <cd:command name='setuphyphenmark' value='بارگذاری‌نشانه‌شکستن'/>
- <cd:command name='setupindentedtext' value='setupindentedtext'/>
- <cd:command name='setupindenting' value='بارگذاری‌تورفتگی'/>
- <cd:command name='setupinmargin' value='بارگذاری‌درون‌حاشیه'/>
- <cd:command name='setupinteraction' value='بارگذاری‌پانل'/>
- <cd:command name='setupinteractionbar' value='بارگذاری‌میله‌پانل'/>
- <cd:command name='setupinteractionmenu' value='بارگذاری‌منوی‌پانل'/>
- <cd:command name='setupinteractionscreen' value='بارگذاری‌پرده‌پانل'/>
- <cd:command name='setupinterlinespace' value='بارگذاری‌فاصله‌بین‌خط'/>
- <cd:command name='setupitemgroup' value='بارگذاری‌گروه‌آیتم'/>
- <cd:command name='setupitemgroups' value='بارگذاری‌گروههای‌آیتم'/>
- <cd:command name='setupitems' value='بارگذاری‌آیتمها'/>
- <cd:command name='setuplabeltext' value='باگذاری‌متن‌برچسب'/>
- <cd:command name='setuplanguage' value='بارگذاری‌زبان'/>
- <cd:command name='setuplayout' value='بارگذاری‌طرح‌بندی'/>
- <cd:command name='setuplegend' value='بارگذاری‌راهنما'/>
- <cd:command name='setuplinenote' value='setuplinenote'/>
- <cd:command name='setuplinenumbering' value='بارگذاری‌شماره‌‌گذاری‌خط'/>
- <cd:command name='setuplines' value='بارگذاری‌خطها'/>
- <cd:command name='setuplinewidth' value='بارگذاری‌عرض‌خط'/>
- <cd:command name='setuplist' value='بارگذاری‌لیست'/>
- <cd:command name='setupmakeup' value='بارگذاری‌آرایش'/>
- <cd:command name='setupmarginblock' value='setupmarginblock'/>
- <cd:command name='setupmarginblocks' value='بارگذاری‌بلوکهای‌حاشیه'/>
- <cd:command name='setupmargindata' value='setupmargindata'/>
- <cd:command name='setupmarginrules' value='بارگذاری‌خطهای‌حاشیه'/>
- <cd:command name='setupmarking' value='بارگذاری‌نشانه‌گذاری'/>
- <cd:command name='setupmathalignment' value='بارگذاری‌تنظیم‌ریاضی'/>
- <cd:command name='setupnarrower' value='بارگذاری‌باریکتر'/>
- <cd:command name='setupnotation' value='setupnotation'/>
- <cd:command name='setupnotations' value='setupnotations'/>
- <cd:command name='setupnote' value='setupnote'/>
- <cd:command name='setupnotes' value='setupnotes'/>
- <cd:command name='setupnumber' value='بارگذاری‌شماره'/>
- <cd:command name='setupnumbering' value='بارگذاری‌شماره‌گذاری'/>
- <cd:command name='setupoppositeplacing' value='بارگذاری‌درج‌مخالف'/>
- <cd:command name='setupoutput' value='بارگذاری‌خروجی'/>
- <cd:command name='setuppagecomment' value='بارگذاری‌توضیح‌صفحه'/>
- <cd:command name='setuppagenumber' value='بارگذاری‌شماره‌صفحه'/>
- <cd:command name='setuppagenumbering' value='بارگذاری‌شماره‌گذاری‌صفحه'/>
- <cd:command name='setuppagetransitions' value='بارگذاری‌گذارصفحه'/>
- <cd:command name='setuppalet' value='بارگذاری‌لوح'/>
- <cd:command name='setuppaper' value='بارگذاری‌برگ'/>
- <cd:command name='setuppapersize' value='بارگذاری‌اندازه‌برگ'/>
- <cd:command name='setupparagraphnumbering' value='بارگذاری‌شماره‌گذاری‌پاراگراف'/>
- <cd:command name='setupparagraphs' value='بارگذاری‌پاراگرافها'/>
- <cd:command name='setupperiodkerning' value='setupperiodkerning'/>
- <cd:command name='setupplacement' value='بارگذاری‌جانشانی'/>
- <cd:command name='setuppositioning' value='بارگذاری‌مکان‌گذاری'/>
- <cd:command name='setupprofiles' value='بارگذاری‌پروفایلها'/>
- <cd:command name='setupprograms' value='بارگذاری‌برنامه‌ها'/>
- <cd:command name='setuppublications' value='بارگذاری‌نشرها'/>
- <cd:command name='setupquote' value='بارگذاری‌نقل'/>
- <cd:command name='setupreferencelist' value='بارگذاری‌لیست‌مرجع'/>
- <cd:command name='setupreferencing' value='بارگذاری‌ارجاع'/>
- <cd:command name='setupregister' value='بارگذاری‌ثبت'/>
- <cd:command name='setuprotate' value='بارگذاری‌دوران'/>
- <cd:command name='setuprule' value='بارگذاری‌خط'/>
- <cd:command name='setupscreens' value='بارگذاری‌پرده‌ها'/>
- <cd:command name='setupsection' value='بارگذاری‌بخش'/>
- <cd:command name='setupsectionblock' value='بارگذاری‌بلوک‌بخش'/>
- <cd:command name='setupsorting' value='بارگذاری‌ترتیب'/>
- <cd:command name='setupspacing' value='بارگذاری‌فضا‌گذاری'/>
- <cd:command name='setupstartstop' value='بارگذاری‌شروع‌پایان'/>
- <cd:command name='setupstrut' value='بارگذاری‌بست'/>
- <cd:command name='setupsubpagenumber' value='بارگذاری‌شماره‌زیرصفحه'/>
- <cd:command name='setupsymbolset' value='بارگذاری‌مجموعه‌نماد'/>
- <cd:command name='setupsynchronization' value='بارگذاری‌تطابق'/>
- <cd:command name='setupsynchronizationbar' value='بارگذاری‌میله‌تطابق'/>
- <cd:command name='setupsynonyms' value='بارگذاری‌مترادفها'/>
- <cd:command name='setupsystem' value='بارگذاری‌سیستم'/>
- <cd:command name='setuptab' value='بارگذاری‌تب'/>
- <cd:command name='setuptables' value='بارگذاری‌جدولها'/>
- <cd:command name='setuptabulate' value='بارگذاری‌جدول‌بندی'/>
- <cd:command name='setuptext' value='بارگذاری‌متن'/>
- <cd:command name='setuptextbackground' value='setuptextbackground'/>
- <cd:command name='setuptextnote' value='setuptextnote'/>
- <cd:command name='setuptextposition' value='بارگذاری‌مکان‌متن'/>
- <cd:command name='setuptextrules' value='بارگذاری‌خطهای‌متن'/>
- <cd:command name='setuptexttexts' value='بارگذاری‌متن‌متنها'/>
- <cd:command name='setuptextvariable' value='بارگذاری‌متغیر‌متن'/>
- <cd:command name='setupthinrules' value='بارگذاری‌خطها‌ی‌نازک'/>
- <cd:command name='setuptolerance' value='بارگذاری‌بردباری'/>
- <cd:command name='setuptop' value='بارگذاری‌بالا'/>
- <cd:command name='setuptoptexts' value='بارگذاری‌متنهای‌بالا'/>
- <cd:command name='setuptype' value='بارگذاری‌تایپ'/>
- <cd:command name='setuptyping' value='بارگذاری‌تایپ‌کردن'/>
- <cd:command name='setupunderbar' value='بارگذاری‌میله‌زیر'/>
- <cd:command name='setupurl' value='setupurl'/>
- <cd:command name='setupversions' value='بارگذاری‌نسخه‌ها'/>
- <cd:command name='setupwhitespace' value='بارگذاری‌فضای‌سفید'/>
- <cd:command name='setvisualizerfont' value='setvisualizerfont'/>
- <cd:command name='showbodyfont' value='نمایش‌قلم‌بدنه'/>
- <cd:command name='showbodyfontenvironment' value='نمایش‌محیط‌قلم‌بدنه'/>
- <cd:command name='showcolor' value='نمایش‌رنگ'/>
- <cd:command name='showcolorgroup' value='نمایش‌گروه‌رنگ'/>
- <cd:command name='showcounter' value='showcounter'/>
- <cd:command name='showexternalfigures' value='نمایش‌شکلهای‌خارجی'/>
- <cd:command name='showfields' value='نمایش‌میدانها'/>
- <cd:command name='showfont' value='showfont'/>
- <cd:command name='showfontdata' value='showfontdata'/>
- <cd:command name='showfontexpansion' value='showfontexpansion'/>
- <cd:command name='showfontitalics' value='showfontitalics'/>
- <cd:command name='showfontkerns' value='showfontkerns'/>
- <cd:command name='showfontparameters' value='showfontparameters'/>
- <cd:command name='showfontstrip' value='showfontstrip'/>
- <cd:command name='showfontstyle' value='showfontstyle'/>
- <cd:command name='showframe' value='نمایش‌قالب'/>
- <cd:command name='showgrid' value='نمایش‌توری'/>
- <cd:command name='showhyphenationtrace' value='showhyphenationtrace'/>
- <cd:command name='showkerning' value='showkerning'/>
- <cd:command name='showlayout' value='نمایش‌طرح‌بندی'/>
- <cd:command name='showmakeup' value='نمایش‌آرایش'/>
- <cd:command name='showminimalbaseline' value='showminimalbaseline'/>
- <cd:command name='showpalet' value='نمایش‌لوح'/>
- <cd:command name='showprint' value='نمایش‌چاپ'/>
- <cd:command name='showsetups' value='نمایش‌بارگذاریها'/>
- <cd:command name='showstruts' value='نمایش‌بستها'/>
- <cd:command name='showsymbolset' value='نمایش‌مجموعه‌علامت'/>
- <cd:command name='smallcapped' value='cap'/>
- <cd:command name='someline' value='یک‌خط'/>
- <cd:command name='somewhere' value='یک‌جا'/>
- <cd:command name='space' value='فضا'/>
- <cd:command name='specialitem' value='specialitem'/>
- <cd:command name='splitfloat' value='شکافتن‌شناور'/>
- <cd:command name='startalignment' value='شروع‌تنظیم'/>
- <cd:command name='startbackground' value='شروع‌پس‌زمینه'/>
- <cd:command name='startcoding' value='شروع‌کد'/>
- <cd:command name='startcolor' value='شروع‌رنگ'/>
- <cd:command name='startcolumnmakeup' value='شروع‌آرایش‌ستون'/>
- <cd:command name='startcolumns' value='شروع‌ستونها'/>
- <cd:command name='startcolumnset' value='شروع‌مجموعه‌ستون'/>
- <cd:command name='startcombination' value='شروع‌ترکیب'/>
- <cd:command name='startcomponent' value='شروع‌مولفه'/>
- <cd:command name='startdocument' value='شروع‌نوشتار'/>
- <cd:command name='startenvironment' value='شروع‌محیط'/>
- <cd:command name='startfigure' value='شروع‌شکل'/>
- <cd:command name='startframed' value='startframed'/>
- <cd:command name='startglobal' value='شروع‌سراسری'/>
- <cd:command name='startline' value='شروع‌خط'/>
- <cd:command name='startlinecorrection' value='شروع‌تصحیح‌خط'/>
- <cd:command name='startlinenote' value='startlinenote'/>
- <cd:command name='startlinenumbering' value='شروع‌شماره‌گذاری‌خط'/>
- <cd:command name='startlines' value='شروع‌خطها'/>
- <cd:command name='startlocal' value='شروع‌موضعی'/>
- <cd:command name='startlocalfootnotes' value='شروع‌پانوشتهای‌موضعی'/>
- <cd:command name='startmakeup' value='شروع‌آرایش'/>
- <cd:command name='startmarginblock' value='شروع‌بلوک‌حاشیه'/>
- <cd:command name='startmarginrule' value='شروع‌خط‌حاشیه'/>
- <cd:command name='startnarrower' value='شروع‌باریکتر'/>
- <cd:command name='startopposite' value='شروع‌مخالف'/>
- <cd:command name='startoverlay' value='شروع‌پوشش'/>
- <cd:command name='startoverview' value='شروع‌بازبینی'/>
- <cd:command name='startpacked' value='شروع‌فشرده'/>
- <cd:command name='startpositioning' value='شروع‌مکان‌گذاری'/>
- <cd:command name='startproduct' value='شروع‌تولید'/>
- <cd:command name='startprofile' value='شروع‌پروفایل'/>
- <cd:command name='startproject' value='شروع‌پروژه'/>
- <cd:command name='startquotation' value='شروع‌نقل‌قول'/>
- <cd:command name='startraster' value='startraster'/>
- <cd:command name='startsymbolset' value='شروع‌مجموعه‌نماد'/>
- <cd:command name='startsynchronization' value='شروع‌تطابق'/>
- <cd:command name='starttable' value='شروع‌جدول'/>
- <cd:command name='starttables' value='شروع‌جدولها'/>
- <cd:command name='starttext' value='شروع‌متن'/>
- <cd:command name='starttextbackground' value='starttextbackground'/>
- <cd:command name='starttextrule' value='شروع‌خط‌متن'/>
- <cd:command name='startunpacked' value='شروع‌غیر‌فشرده'/>
- <cd:command name='startversion' value='شروع‌نسخه'/>
- <cd:command name='stopalignment' value='پایان‌تنظیم'/>
- <cd:command name='stopbackground' value='پایان‌پس‌زمینه'/>
- <cd:command name='stopcoding' value='پایان‌کد'/>
- <cd:command name='stopcolor' value='پایان‌رنگ'/>
- <cd:command name='stopcolumnmakeup' value='پایان‌آرایش‌ستون'/>
- <cd:command name='stopcolumns' value='پایان‌ستونها'/>
- <cd:command name='stopcolumnset' value='پایان‌مجموعه‌ستون'/>
- <cd:command name='stopcombination' value='پایان‌ترکیب'/>
- <cd:command name='stopcomponent' value='پایان‌مولفه'/>
- <cd:command name='stopdocument' value='پایان‌نوشتار'/>
- <cd:command name='stopenvironment' value='پایان‌محیط'/>
- <cd:command name='stopframed' value='stopframed'/>
- <cd:command name='stopglobal' value='پایان‌سراسری'/>
- <cd:command name='stopline' value='پایان‌خط'/>
- <cd:command name='stoplinecorrection' value='پایان‌تصحیح‌خط'/>
- <cd:command name='stoplinenote' value='stoplinenote'/>
- <cd:command name='stoplinenumbering' value='پایان‌شماره‌گذاری‌خط'/>
- <cd:command name='stoplines' value='پایان‌خطها'/>
- <cd:command name='stoplocal' value='پایان‌موضعی'/>
- <cd:command name='stoplocalfootnotes' value='پایان‌پانوشتهای‌موضعی'/>
- <cd:command name='stopmakeup' value='پایان‌آرایش'/>
- <cd:command name='stopmarginblock' value='پایان‌بلوک‌حاشیه'/>
- <cd:command name='stopmarginrule' value='پایان‌خط‌حاشیه'/>
- <cd:command name='stopnarrower' value='پایان‌نازکتر'/>
- <cd:command name='stopopposite' value='پایان‌مخالف'/>
- <cd:command name='stopoverlay' value='پایان‌پوشش'/>
- <cd:command name='stopoverview' value='پایان‌بازبینی'/>
- <cd:command name='stoppacked' value='پایان‌فشرده'/>
- <cd:command name='stoppositioning' value='پایان‌مکان‌گذاری'/>
- <cd:command name='stopproduct' value='پایان‌تولید'/>
- <cd:command name='stopprofile' value='پایان‌پروفایل'/>
- <cd:command name='stopproject' value='پایان‌پروژه'/>
- <cd:command name='stopquotation' value='پایان‌نقل‌قول'/>
- <cd:command name='stopraster' value='stopraster'/>
- <cd:command name='stopsynchronization' value='پایان‌تطابق'/>
- <cd:command name='stoptable' value='پایان‌جدول'/>
- <cd:command name='stoptables' value='پایان‌جدولها'/>
- <cd:command name='stoptext' value='پایان‌متن'/>
- <cd:command name='stoptextbackground' value='stoptextbackground'/>
- <cd:command name='stoptextrule' value='پایان‌خط‌متن'/>
- <cd:command name='stopunpacked' value='پایان‌غیرفشرده'/>
- <cd:command name='stopversion' value='پایان‌نسخه'/>
- <cd:command name='stretched' value='کشیده'/>
- <cd:command name='strictinspectnextcharacter' value='strictinspectnextcharacter'/>
- <cd:command name='stripcharacter' value='stripcharacter'/>
- <cd:command name='subformulanumber' value='شماره‌زیرفرمول'/>
- <cd:command name='subpagenumber' value='شماره‌زیرصفحه'/>
- <cd:command name='subtractfeature' value='subtractfeature'/>
- <cd:command name='switchtobodyfont' value='تغییربه‌قلم‌بدنه'/>
- <cd:command name='switchtorawfont' value='تغییربه‌قلم‌خام'/>
- <cd:command name='sym' value='نم'/>
- <cd:command name='symbol' value='نماد'/>
- <cd:command name='symoffset' value='symoffset'/>
- <cd:command name='synchronizationbar' value='میله‌تطابق'/>
- <cd:command name='synchronize' value='تطابق'/>
- <cd:command name='tab' value='تب'/>
- <cd:command name='testcolumn' value='ستون‌امتحان'/>
- <cd:command name='testfeature' value='testfeature'/>
- <cd:command name='testfeatureonce' value='testfeatureonce'/>
- <cd:command name='testpage' value='صفحه‌تست'/>
- <cd:command name='tex' value='تک'/>
- <cd:command name='textbackground' value='textbackground'/>
- <cd:command name='textcolor' value='textcolor'/>
- <cd:command name='textheight' value='ارتفاع‌متن'/>
- <cd:command name='textnote' value='textnote'/>
- <cd:command name='textreference' value='مرجع‌متن'/>
- <cd:command name='textrule' value='خط‌متن'/>
- <cd:command name='textvariable' value='متغیر متن'/>
- <cd:command name='textwidth' value='عرض‌متن'/>
- <cd:command name='thefirstcharacter' value='thefirstcharacter'/>
- <cd:command name='thenormalizedbodyfontsize' value='thenormalizedbodyfontsize'/>
- <cd:command name='theremainingcharacters' value='theremainingcharacters'/>
- <cd:command name='thinrule' value='خط‌نازک'/>
- <cd:command name='thinrules' value='خطهای‌نازک'/>
- <cd:command name='tolinenote' value='tolinenote'/>
- <cd:command name='tooltip' value='tooltip'/>
- <cd:command name='topdistance' value='فاصله‌بالا'/>
- <cd:command name='topheight' value='ارتفاع‌بالا'/>
- <cd:command name='topspace' value='فضای‌بالا'/>
- <cd:command name='totalnumberofpages' value='شماره‌کل‌صفحه‌ها'/>
- <cd:command name='translate' value='ترجمه'/>
- <cd:command name='txt' value='txt'/>
- <cd:command name='typ' value='typ'/>
- <cd:command name='type' value='تایپ'/>
- <cd:command name='typebuffer' value='تایپ‌بافر'/>
- <cd:command name='typedefinedbuffer' value='typedefinedbuffer'/>
- <cd:command name='typefile' value='تایپ‌پرونده'/>
- <cd:command name='typeinlinebuffer' value='typeinlinebuffer'/>
- <cd:command name='typing' value='typing'/>
- <cd:command name='unitmeaning' value='معنی‌واحد'/>
- <cd:command name='unknown' value='ناشناس'/>
- <cd:command name='unregisterhyphenationpattern' value='unregisterhyphenationpattern'/>
- <cd:command name='useJSscripts' value='useJSscripts'/>
- <cd:command name='useURL' value='useURL'/>
- <cd:command name='useXMLfilter' value='useXMLfilter'/>
- <cd:command name='useblocks' value='استفاده‌بلوکها'/>
- <cd:command name='usebodyfont' value='usebodyfont'/>
- <cd:command name='usebodyfontparameter' value='usebodyfontparameter'/>
- <cd:command name='usecommands' value='استفاده‌فرمانها'/>
- <cd:command name='useencoding' value='استفاده‌رمزینه'/>
- <cd:command name='useexternaldocument' value='استفاده‌نوشتارخارجی'/>
- <cd:command name='useexternalfigure' value='استفاده‌شکل‌خارجی'/>
- <cd:command name='useexternalfile' value='استفاده‌پرونده‌خارجی'/>
- <cd:command name='useexternalfiles' value='استفاده‌پرونده‌های‌خارجی'/>
- <cd:command name='useexternalsoundtrack' value='استفاده‌قطعه‌موزیک‌خارجی'/>
- <cd:command name='usemodule' value='استفاده‌مدول'/>
- <cd:command name='usemodules' value='استفاده‌مدولها'/>
- <cd:command name='usepath' value='استفاده‌مسیر'/>
- <cd:command name='usereferences' value='استفاده‌مرجعها'/>
- <cd:command name='usespecials' value='استفاده‌ویژگیها'/>
- <cd:command name='usesymbols' value='استفاده‌نمادها'/>
- <cd:command name='usetypescript' value='استفاده‌دستخط‌تایپ'/>
- <cd:command name='usetypescriptfile' value='استفاده‌پرونده‌دستخط‌تایپ'/>
- <cd:command name='useurl' value='useurl'/>
- <cd:command name='verbatim' value='verbatim'/>
- <cd:command name='version' value='نسخه'/>
- <cd:command name='vl' value='خ‌ع'/>
- <cd:command name='weekday' value='روزهفته'/>
- <cd:command name='whitespace' value='فضای‌سفید'/>
- <cd:command name='widthspanningtext' value='widthspanningtext'/>
- <cd:command name='wordright' value='کلمه‌راست'/>
- <cd:command name='writebetweenlist' value='بنویس‌بین‌لیست'/>
- <cd:command name='writetolist' value='بنویس‌در‌لیست'/>
- <cd:command name='writetoreferencelist' value='بنویس‌درلیست‌مرجع'/>
- <cd:command name='writetoregister' value='بنویس‌درثبت'/>
- </cd:commands>
-
-</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkii/keys-ro.xml b/Master/texmf-dist/tex/context/interface/mkii/keys-ro.xml
deleted file mode 100644
index bc9e87ddf20..00000000000
--- a/Master/texmf-dist/tex/context/interface/mkii/keys-ro.xml
+++ /dev/null
@@ -1,2237 +0,0 @@
-<?xml version='1.0'?>
-
-<cd:interface xmlns:cd='http://www.pragma-ade.com/commands' name='context' language='ro' version='2008.10.21 19:42'>
-
- <!-- definitions for interface variables for language ro -->
-
- <cd:variables>
- <cd:variable name='Addition' value='Adaugare'/>
- <cd:variable name='Alphabetic' value='Alphabetic'/>
- <cd:variable name='Balloon' value='Balon'/>
- <cd:variable name='Cap' value='Cap'/>
- <cd:variable name='Capital' value='Majuscula'/>
- <cd:variable name='Character' value='Caracter'/>
- <cd:variable name='Characters' value='Caractere'/>
- <cd:variable name='CloseDocument' value='InchideDocument'/>
- <cd:variable name='ExitViewer' value='IesireVizualizator'/>
- <cd:variable name='FirstPage' value='PrimaPagina'/>
- <cd:variable name='FitHeight' value='AjustatInaltime'/>
- <cd:variable name='FitWidth' value='AjustatLatime'/>
- <cd:variable name='GotoPage' value='LaPagina'/>
- <cd:variable name='Greek' value='Grec'/>
- <cd:variable name='Help' value='Ajutor'/>
- <cd:variable name='HideField' value='AscundeCamp'/>
- <cd:variable name='HideLayer' value='HideLayer'/>
- <cd:variable name='Key' value='Cheie'/>
- <cd:variable name='LastPage' value='UltimaPagina'/>
- <cd:variable name='LoadForm' value='IncarcaFormular'/>
- <cd:variable name='MONTH' value='LUNA'/>
- <cd:variable name='New' value='Nou'/>
- <cd:variable name='NextJump' value='SaltUrmator'/>
- <cd:variable name='NextPage' value='PaginaUrmatoare'/>
- <cd:variable name='Numbers' value='Numere'/>
- <cd:variable name='OpenNamedDocument' value='OpenNamedDocument'/>
- <cd:variable name='Ordinal' value='Ordinal'/>
- <cd:variable name='Paragraph' value='Paragraf'/>
- <cd:variable name='PauseMovie' value='PauzaFilm'/>
- <cd:variable name='PauseRendering' value='PauseRendering'/>
- <cd:variable name='PauseSound' value='PauzaSunet'/>
- <cd:variable name='PreviousJump' value='SaltPrecedent'/>
- <cd:variable name='PreviousPage' value='PaginaPrecedenta'/>
- <cd:variable name='PrintDocument' value='TiparesteDocument'/>
- <cd:variable name='Query' value='Query'/>
- <cd:variable name='QueryAgain' value='QueryAgain'/>
- <cd:variable name='ResetForm' value='ResetareFormular'/>
- <cd:variable name='ResumeMovie' value='RepornesteFilm'/>
- <cd:variable name='ResumeRendering' value='ResumeRendering'/>
- <cd:variable name='ResumeSound' value='RepornesteSunet'/>
- <cd:variable name='Romannumerals' value='Numereromane'/>
- <cd:variable name='SaveDocument' value='SalvareDocument'/>
- <cd:variable name='SaveForm' value='SalveazaFormular'/>
- <cd:variable name='SaveNamedDocument' value='SaveNamedDocument'/>
- <cd:variable name='SearchAgain' value='CautaDinNou'/>
- <cd:variable name='SearchDocument' value='CautaDocument'/>
- <cd:variable name='ShowBookmarks' value='ShowBookmarks'/>
- <cd:variable name='ShowField' value='AfiseazaCamp'/>
- <cd:variable name='ShowThumbs' value='ShowThumbs'/>
- <cd:variable name='StartMovie' value='StartFilm'/>
- <cd:variable name='StartRendering' value='StartRendering'/>
- <cd:variable name='StartSound' value='StartSunet'/>
- <cd:variable name='StopMovie' value='StopFilm'/>
- <cd:variable name='StopRendering' value='StopRendering'/>
- <cd:variable name='StopSound' value='StopSunet'/>
- <cd:variable name='SubmitForm' value='TrimiteFormular'/>
- <cd:variable name='ToggleLayer' value='ToggleLayer'/>
- <cd:variable name='ToggleViewer' value='SchimbaVizualizator'/>
- <cd:variable name='URL' value='URL'/>
- <cd:variable name='VideLayer' value='VideLayer'/>
- <cd:variable name='ViewerHelp' value='AjutorVizualizator'/>
- <cd:variable name='WEEKDAY' value='ZISAPTAMANA'/>
- <cd:variable name='WORD' value='CUVANT'/>
- <cd:variable name='WORDS' value='CUVINTE'/>
- <cd:variable name='Word' value='Cuvant'/>
- <cd:variable name='Words' value='Cuvinte'/>
- <cd:variable name='abbreviation' value='abreviere'/>
- <cd:variable name='abbreviations' value='abrevieri'/>
- <cd:variable name='absolute' value='absolut'/>
- <cd:variable name='action' value='actiune'/>
- <cd:variable name='after' value='dupa'/>
- <cd:variable name='all' value='tot'/>
- <cd:variable name='alphabetic' value='alphabetic'/>
- <cd:variable name='always' value='totdeauna'/>
- <cd:variable name='anchor' value='anchor'/>
- <cd:variable name='and' value='and'/>
- <cd:variable name='answerarea' value='answerarea'/>
- <cd:variable name='appendices' value='apendixuri'/>
- <cd:variable name='appendix' value='apendix'/>
- <cd:variable name='april' value='aprilie'/>
- <cd:variable name='aside' value='aside'/>
- <cd:variable name='atleftmargin' value='atleftmargin'/>
- <cd:variable name='atmargin' value='lamargine'/>
- <cd:variable name='atpage' value='lapagina'/>
- <cd:variable name='atrightmargin' value='atrightmargin'/>
- <cd:variable name='attachment' value='attachment'/>
- <cd:variable name='august' value='august'/>
- <cd:variable name='author' value='autor'/>
- <cd:variable name='auto' value='auto'/>
- <cd:variable name='autointro' value='autointro'/>
- <cd:variable name='autopunctuation' value='autopunctuation'/>
- <cd:variable name='back' value='inapot'/>
- <cd:variable name='background' value='fundal'/>
- <cd:variable name='backmatter' value='epilogul'/>
- <cd:variable name='backpart' value='epilog'/>
- <cd:variable name='backspace' value='spatiuspate'/>
- <cd:variable name='backward' value='inapoi'/>
- <cd:variable name='bbl' value='bbl'/>
- <cd:variable name='before' value='inainte'/>
- <cd:variable name='begin' value='begin'/>
- <cd:variable name='bib' value='bib'/>
- <cd:variable name='big' value='mare'/>
- <cd:variable name='bigbodyfont' value='bigbodyfont'/>
- <cd:variable name='bigger' value='bigger'/>
- <cd:variable name='bigpreference' value='preferintamare'/>
- <cd:variable name='blank' value='blank'/>
- <cd:variable name='block' value='block'/>
- <cd:variable name='blockquote' value='blockquote'/>
- <cd:variable name='bodymatter' value='principalul'/>
- <cd:variable name='bodypart' value='principal'/>
- <cd:variable name='bold' value='aldin'/>
- <cd:variable name='bolditalic' value='aldinitalic'/>
- <cd:variable name='boldslanted' value='aldininclinat'/>
- <cd:variable name='bookmark' value='semncarte'/>
- <cd:variable name='both' value='ambele'/>
- <cd:variable name='bothtext' value='bothtext'/>
- <cd:variable name='bottom' value='subsol'/>
- <cd:variable name='box' value='box'/>
- <cd:variable name='brief' value='brief'/>
- <cd:variable name='broad' value='broad'/>
- <cd:variable name='buffer' value='buffer'/>
- <cd:variable name='by' value='de'/>
- <cd:variable name='calligraphic' value='caligrafic'/>
- <cd:variable name='camel' value='camel'/>
- <cd:variable name='cap' value='cap'/>
- <cd:variable name='capital' value='majuscula'/>
- <cd:variable name='category' value='category'/>
- <cd:variable name='cd:character' value='cd:character'/>
- <cd:variable name='cd:font' value='cd:font'/>
- <cd:variable name='center' value='center'/>
- <cd:variable name='centerlast' value='centerlast'/>
- <cd:variable name='chapter' value='capitol'/>
- <cd:variable name='character' value='caracter'/>
- <cd:variable name='characters' value='caractere'/>
- <cd:variable name='chemical' value='chemical'/>
- <cd:variable name='chemicals' value='chemicals'/>
- <cd:variable name='chemistry' value='chemistry'/>
- <cd:variable name='cite' value='cite'/>
- <cd:variable name='closed' value='closed'/>
- <cd:variable name='color' value='culoare'/>
- <cd:variable name='column' value='coloana'/>
- <cd:variable name='columns' value='coloane'/>
- <cd:variable name='combination' value='combination'/>
- <cd:variable name='command' value='comanda'/>
- <cd:variable name='commands' value='comenzi'/>
- <cd:variable name='comment' value='comentariu'/>
- <cd:variable name='component' value='componenta'/>
- <cd:variable name='compressseparator' value='compressseparator'/>
- <cd:variable name='compressstopper' value='compressstopper'/>
- <cd:variable name='concept' value='concept'/>
- <cd:variable name='construction' value='construction'/>
- <cd:variable name='content' value='cuprins'/>
- <cd:variable name='contents' value='cuprinsuri'/>
- <cd:variable name='continue' value='continuu'/>
- <cd:variable name='continued' value='continued'/>
- <cd:variable name='controls' value='controale'/>
- <cd:variable name='conversion' value='conversie'/>
- <cd:variable name='current' value='curent'/>
- <cd:variable name='cutspace' value='cutspace'/>
- <cd:variable name='dataset' value='dataset'/>
- <cd:variable name='date' value='data'/>
- <cd:variable name='day' value='zi'/>
- <cd:variable name='december' value='decembrie'/>
- <cd:variable name='default' value='implicit'/>
- <cd:variable name='depth' value='adancime'/>
- <cd:variable name='description' value='descriere'/>
- <cd:variable name='disable' value='dezactivat'/>
- <cd:variable name='display' value='display'/>
- <cd:variable name='dot' value='punct'/>
- <cd:variable name='doublesided' value='douafete'/>
- <cd:variable name='down' value='down'/>
- <cd:variable name='each' value='fiecare'/>
- <cd:variable name='edge' value='bordura'/>
- <cd:variable name='effective' value='effective'/>
- <cd:variable name='eight' value='eight'/>
- <cd:variable name='embed' value='embed'/>
- <cd:variable name='empty' value='gol'/>
- <cd:variable name='enable' value='enable'/>
- <cd:variable name='end' value='end'/>
- <cd:variable name='endnote' value='endnote'/>
- <cd:variable name='enumeration' value='enumerare'/>
- <cd:variable name='environment' value='mediu'/>
- <cd:variable name='even' value='par'/>
- <cd:variable name='export' value='export'/>
- <cd:variable name='external' value='extern'/>
- <cd:variable name='extremestretch' value='extremestretch'/>
- <cd:variable name='fact' value='fapt'/>
- <cd:variable name='fallback' value='fallback'/>
- <cd:variable name='february' value='februarie'/>
- <cd:variable name='field' value='field'/>
- <cd:variable name='figure' value='figura'/>
- <cd:variable name='figures' value='figure'/>
- <cd:variable name='file' value='fisier'/>
- <cd:variable name='final' value='final'/>
- <cd:variable name='first' value='primul'/>
- <cd:variable name='firstcolumn' value='firstcolumn'/>
- <cd:variable name='firstpage' value='primapagina'/>
- <cd:variable name='firstsubpage' value='primasubpagina'/>
- <cd:variable name='fit' value='ajustat'/>
- <cd:variable name='five' value='cinci'/>
- <cd:variable name='fix' value='fix'/>
- <cd:variable name='fixed' value='fixat'/>
- <cd:variable name='flexible' value='flexibil'/>
- <cd:variable name='float' value='obiectmobil'/>
- <cd:variable name='flushinner' value='flushinner'/>
- <cd:variable name='flushleft' value='flushleft'/>
- <cd:variable name='flushouter' value='flushouter'/>
- <cd:variable name='flushright' value='flushright'/>
- <cd:variable name='followingpage' value='followingpage'/>
- <cd:variable name='font' value='font'/>
- <cd:variable name='footer' value='subsol'/>
- <cd:variable name='footnote' value='notasubsol'/>
- <cd:variable name='force' value='fortat'/>
- <cd:variable name='foreground' value='primplan'/>
- <cd:variable name='formula' value='formula'/>
- <cd:variable name='formulas' value='formule'/>
- <cd:variable name='forward' value='avans'/>
- <cd:variable name='four' value='patru'/>
- <cd:variable name='fractions' value='fractions'/>
- <cd:variable name='frame' value='incadrat'/>
- <cd:variable name='framedtext' value='textinconjurat'/>
- <cd:variable name='friday' value='vineri'/>
- <cd:variable name='frontmatter' value='prologul'/>
- <cd:variable name='frontpart' value='prolog'/>
- <cd:variable name='fullhz' value='fullhz'/>
- <cd:variable name='global' value='global'/>
- <cd:variable name='graphic' value='graficul'/>
- <cd:variable name='graphics' value='graficele'/>
- <cd:variable name='gray' value='gri'/>
- <cd:variable name='greek' value='grec'/>
- <cd:variable name='grid' value='grila'/>
- <cd:variable name='halfline' value='jumatatelinie'/>
- <cd:variable name='handwritten' value='scrismanual'/>
- <cd:variable name='hang' value='suspenda'/>
- <cd:variable name='hanging' value='suspendat'/>
- <cd:variable name='hangingboth' value='hangingboth'/>
- <cd:variable name='head' value='antet'/>
- <cd:variable name='header' value='antet'/>
- <cd:variable name='headintext' value='headintext'/>
- <cd:variable name='height' value='inaltime'/>
- <cd:variable name='helptext' value='textajutator'/>
- <cd:variable name='hencefore' value='precedent'/>
- <cd:variable name='here' value='aici'/>
- <cd:variable name='hereafter' value='urmator'/>
- <cd:variable name='hidden' value='ascuns'/>
- <cd:variable name='hiddenbar' value='hiddenbar'/>
- <cd:variable name='hiding' value='ascundere'/>
- <cd:variable name='high' value='inalt'/>
- <cd:variable name='horizontal' value='orizontal'/>
- <cd:variable name='hyphenated' value='despsilabe'/>
- <cd:variable name='hz' value='hz'/>
- <cd:variable name='inbetween' value='intre'/>
- <cd:variable name='index' value='index'/>
- <cd:variable name='indices' value='indexuri'/>
- <cd:variable name='inherit' value='inherit'/>
- <cd:variable name='ininner' value='ininner'/>
- <cd:variable name='ininneredge' value='ininneredge'/>
- <cd:variable name='ininnermargin' value='ininnermargin'/>
- <cd:variable name='inleft' value='instanga'/>
- <cd:variable name='inleftedge' value='inparteastanga'/>
- <cd:variable name='inleftmargin' value='inmargineastanga'/>
- <cd:variable name='inline' value='inline'/>
- <cd:variable name='inmargin' value='inmargine'/>
- <cd:variable name='inner' value='intern'/>
- <cd:variable name='inneredge' value='inneredge'/>
- <cd:variable name='innermargin' value='innermargin'/>
- <cd:variable name='inother' value='inother'/>
- <cd:variable name='inouter' value='inouter'/>
- <cd:variable name='inouteredge' value='inouteredge'/>
- <cd:variable name='inoutermargin' value='inoutermargin'/>
- <cd:variable name='inright' value='indreapta'/>
- <cd:variable name='inrightedge' value='inparteadreapta'/>
- <cd:variable name='inrightmargin' value='inmargineadreapta'/>
- <cd:variable name='integral' value='integral'/>
- <cd:variable name='interaction' value='interactiune'/>
- <cd:variable name='interactionmenu' value='meniuinteractiune'/>
- <cd:variable name='interactive' value='interactive'/>
- <cd:variable name='intermezzi' value='intermezzi'/>
- <cd:variable name='intermezzo' value='intermezzo'/>
- <cd:variable name='intext' value='intext'/>
- <cd:variable name='intro' value='intro'/>
- <cd:variable name='invertedshort' value='invertedshort'/>
- <cd:variable name='italic' value='italic'/>
- <cd:variable name='italicbold' value='italicaldin'/>
- <cd:variable name='item' value='element'/>
- <cd:variable name='itemize' value='enumerare'/>
- <cd:variable name='its' value='propriu'/>
- <cd:variable name='january' value='ianuarie'/>
- <cd:variable name='joinedup' value='unit'/>
- <cd:variable name='july' value='iulie'/>
- <cd:variable name='june' value='iunie'/>
- <cd:variable name='keep' value='mentine'/>
- <cd:variable name='kerncharacters' value='kerncharacters'/>
- <cd:variable name='knockout' value='knockout'/>
- <cd:variable name='label' value='eticheta'/>
- <cd:variable name='landscape' value='vedere'/>
- <cd:variable name='last' value='ultim'/>
- <cd:variable name='lastcolumn' value='lastcolumn'/>
- <cd:variable name='lastpage' value='ultimapagina'/>
- <cd:variable name='lastpagenumber' value='lastpagenumber'/>
- <cd:variable name='lastsubpage' value='ultimasubpagina'/>
- <cd:variable name='layer' value='layer'/>
- <cd:variable name='left' value='stanga'/>
- <cd:variable name='leftedge' value='bordurastanga'/>
- <cd:variable name='lefthanging' value='lefthanging'/>
- <cd:variable name='leftmargin' value='marginestanga'/>
- <cd:variable name='leftpage' value='paginastanga'/>
- <cd:variable name='lefttoright' value='lefttoright'/>
- <cd:variable name='legend' value='legenda'/>
- <cd:variable name='less' value='less'/>
- <cd:variable name='lesshyphenation' value='lesshyphenation'/>
- <cd:variable name='letterspacing' value='letterspacing'/>
- <cd:variable name='line' value='linie'/>
- <cd:variable name='linenote' value='linenote'/>
- <cd:variable name='lines' value='linii'/>
- <cd:variable name='linked' value='linked'/>
- <cd:variable name='list' value='lista'/>
- <cd:variable name='local' value='local'/>
- <cd:variable name='localenvironment' value='mediulocal'/>
- <cd:variable name='logo' value='logo'/>
- <cd:variable name='logos' value='logos'/>
- <cd:variable name='lohi' value='lohi'/>
- <cd:variable name='long' value='long'/>
- <cd:variable name='loose' value='larg'/>
- <cd:variable name='low' value='jos'/>
- <cd:variable name='ls' value='ls'/>
- <cd:variable name='makeup' value='marcaj'/>
- <cd:variable name='mar' value='mar'/>
- <cd:variable name='march' value='martie'/>
- <cd:variable name='margin' value='margine'/>
- <cd:variable name='marginedge' value='marginebordura'/>
- <cd:variable name='margintext' value='textmarginal'/>
- <cd:variable name='margintitle' value='titlumarginal'/>
- <cd:variable name='marking' value='marcaje'/>
- <cd:variable name='math' value='math'/>
- <cd:variable name='mathalignment' value='mathalignment'/>
- <cd:variable name='mathcases' value='mathcases'/>
- <cd:variable name='mathematics' value='matematica'/>
- <cd:variable name='mathmatrix' value='mathmatrix'/>
- <cd:variable name='max' value='max'/>
- <cd:variable name='maxdepth' value='maxdepth'/>
- <cd:variable name='maxheight' value='maxheight'/>
- <cd:variable name='maxwidth' value='maxwidth'/>
- <cd:variable name='may' value='mai'/>
- <cd:variable name='mediaeval' value='medieval'/>
- <cd:variable name='medium' value='mediu'/>
- <cd:variable name='middle' value='centru'/>
- <cd:variable name='min' value='min'/>
- <cd:variable name='mindepth' value='mindepth'/>
- <cd:variable name='minheight' value='inaltimeminima'/>
- <cd:variable name='minwidth' value='latimeminima'/>
- <cd:variable name='mirrored' value='oglindit'/>
- <cd:variable name='mixed' value='mixed'/>
- <cd:variable name='monday' value='luni'/>
- <cd:variable name='mono' value='mono'/>
- <cd:variable name='monobold' value='monoaldin'/>
- <cd:variable name='mononormal' value='mononormal'/>
- <cd:variable name='month' value='luna'/>
- <cd:variable name='more' value='more'/>
- <cd:variable name='morehyphenation' value='morehyphenation'/>
- <cd:variable name='name' value='nume'/>
- <cd:variable name='narrow' value='ingust'/>
- <cd:variable name='negative' value='negativ'/>
- <cd:variable name='never' value='niciodata'/>
- <cd:variable name='new' value='nou'/>
- <cd:variable name='next' value='urmatorul'/>
- <cd:variable name='nextevenpage' value='paginaparaurmatoarea'/>
- <cd:variable name='nextoddpage' value='paginaimparaurmatoarea'/>
- <cd:variable name='nextpage' value='paginaurmatoare'/>
- <cd:variable name='nextsubpage' value='urmatoareasubpagina'/>
- <cd:variable name='nine' value='nine'/>
- <cd:variable name='no' value='nu'/>
- <cd:variable name='nocheck' value='nocheck'/>
- <cd:variable name='nodepth' value='nodepth'/>
- <cd:variable name='nofit' value='nofit'/>
- <cd:variable name='nogrid' value='nogrid'/>
- <cd:variable name='noheight' value='noheight'/>
- <cd:variable name='nohz' value='nohz'/>
- <cd:variable name='noline' value='noline'/>
- <cd:variable name='nomarking' value='faramarcare'/>
- <cd:variable name='nomenubar' value='nomenubar'/>
- <cd:variable name='none' value='niciunul'/>
- <cd:variable name='nonumber' value='nonumber'/>
- <cd:variable name='norepeat' value='norepeat'/>
- <cd:variable name='normal' value='normal'/>
- <cd:variable name='normalshort' value='normalshort'/>
- <cd:variable name='nospacing' value='nospacing'/>
- <cd:variable name='nostopper' value='nostopper'/>
- <cd:variable name='not' value='nu'/>
- <cd:variable name='notation' value='notation'/>
- <cd:variable name='note' value='note'/>
- <cd:variable name='nothanging' value='nothanging'/>
- <cd:variable name='nothyphenated' value='nedespsilabe'/>
- <cd:variable name='notjoinedup' value='notjoinedup'/>
- <cd:variable name='november' value='noiembrie'/>
- <cd:variable name='nowhere' value='niciunde'/>
- <cd:variable name='nowhite' value='faraalb'/>
- <cd:variable name='number' value='numar'/>
- <cd:variable name='numbers' value='numere'/>
- <cd:variable name='october' value='octombrie'/>
- <cd:variable name='odd' value='impar'/>
- <cd:variable name='off' value='dezactivat'/>
- <cd:variable name='offset' value='offset'/>
- <cd:variable name='old' value='old'/>
- <cd:variable name='oldstyle' value='oldstyle'/>
- <cd:variable name='on' value='on'/>
- <cd:variable name='one' value='unu'/>
- <cd:variable name='opposite' value='opus'/>
- <cd:variable name='ordinal' value='ordinal'/>
- <cd:variable name='outer' value='extern'/>
- <cd:variable name='outeredge' value='outeredge'/>
- <cd:variable name='outermargin' value='outermargin'/>
- <cd:variable name='overbar' value='barasus'/>
- <cd:variable name='overbars' value='supralinie'/>
- <cd:variable name='overlay' value='overlay'/>
- <cd:variable name='overprint' value='overprint'/>
- <cd:variable name='overstrike' value='liniepeste'/>
- <cd:variable name='overstrikes' value='liniipeste'/>
- <cd:variable name='packed' value='impachetat'/>
- <cd:variable name='page' value='pagina'/>
- <cd:variable name='pagecomment' value='comentariupagina'/>
- <cd:variable name='pagenumber' value='numarpagina'/>
- <cd:variable name='paper' value='foaie'/>
- <cd:variable name='paragraph' value='paragraf'/>
- <cd:variable name='part' value='parte'/>
- <cd:variable name='positive' value='positiv'/>
- <cd:variable name='postponing' value='postponing'/>
- <cd:variable name='postscript' value='postscript'/>
- <cd:variable name='precedingpage' value='precedingpage'/>
- <cd:variable name='preference' value='preferinta'/>
- <cd:variable name='preview' value='previzualizare'/>
- <cd:variable name='previous' value='precedent'/>
- <cd:variable name='previousevenpage' value='paginaparaprecedenta'/>
- <cd:variable name='previousoddpage' value='paginaimparaprecedenta'/>
- <cd:variable name='previouspage' value='paginaanterioara'/>
- <cd:variable name='previoussubpage' value='subpaginaanterioara'/>
- <cd:variable name='print' value='print'/>
- <cd:variable name='printable' value='tiparibil'/>
- <cd:variable name='process' value='process'/>
- <cd:variable name='product' value='produs'/>
- <cd:variable name='program' value='program'/>
- <cd:variable name='project' value='proiect'/>
- <cd:variable name='protected' value='protejat'/>
- <cd:variable name='quadruple' value='cvadrupul'/>
- <cd:variable name='quarterline' value='quarterline'/>
- <cd:variable name='quotation' value='citat'/>
- <cd:variable name='quote' value='minicitat'/>
- <cd:variable name='ran' value='rulat'/>
- <cd:variable name='random' value='aleator'/>
- <cd:variable name='readonly' value='readonly'/>
- <cd:variable name='rectangular' value='rectangular'/>
- <cd:variable name='reference' value='referinta'/>
- <cd:variable name='referral' value='referinta'/>
- <cd:variable name='region' value='region'/>
- <cd:variable name='register' value='registru'/>
- <cd:variable name='regular' value='regular'/>
- <cd:variable name='relative' value='relativ'/>
- <cd:variable name='repeat' value='repetat'/>
- <cd:variable name='required' value='obligatoriu'/>
- <cd:variable name='reset' value='reset'/>
- <cd:variable name='reverse' value='reverse'/>
- <cd:variable name='right' value='dreapta'/>
- <cd:variable name='rightedge' value='borduradreapta'/>
- <cd:variable name='righthanging' value='righthanging'/>
- <cd:variable name='rightmargin' value='marginedreapta'/>
- <cd:variable name='rightpage' value='paginadreapta'/>
- <cd:variable name='righttoleft' value='righttoleft'/>
- <cd:variable name='roman' value='roman'/>
- <cd:variable name='romannumerals' value='numereromane'/>
- <cd:variable name='rotate' value='rotit'/>
- <cd:variable name='rotated' value='rotat'/>
- <cd:variable name='round' value='rotund'/>
- <cd:variable name='row' value='rand'/>
- <cd:variable name='rule' value='rigla'/>
- <cd:variable name='samepage' value='aceeasipagina'/>
- <cd:variable name='sans' value='sans'/>
- <cd:variable name='sansbold' value='sansaldin'/>
- <cd:variable name='sansnormal' value='sansnormal'/>
- <cd:variable name='sansserif' value='sansserif'/>
- <cd:variable name='saturday' value='sambata'/>
- <cd:variable name='screen' value='ecran'/>
- <cd:variable name='section' value='sectiune'/>
- <cd:variable name='sectionblockenvironment' value='blocsectiuneambient'/>
- <cd:variable name='sectionnumber' value='numarsetiune'/>
- <cd:variable name='see' value='vezi'/>
- <cd:variable name='selectfont' value='selectfont'/>
- <cd:variable name='separator' value='separator'/>
- <cd:variable name='september' value='septembrie'/>
- <cd:variable name='serif' value='serif'/>
- <cd:variable name='serifbold' value='serifbold'/>
- <cd:variable name='serifnormal' value='serifnormal'/>
- <cd:variable name='serried' value='serried'/>
- <cd:variable name='setups' value='setups'/>
- <cd:variable name='seven' value='seven'/>
- <cd:variable name='sheet' value='sheet'/>
- <cd:variable name='shiftdown' value='shiftdown'/>
- <cd:variable name='shiftup' value='shiftup'/>
- <cd:variable name='short' value='short'/>
- <cd:variable name='simplefonts' value='simplefonts'/>
- <cd:variable name='simplelist' value='simplelist'/>
- <cd:variable name='singlesided' value='ofata'/>
- <cd:variable name='six' value='six'/>
- <cd:variable name='slanted' value='inclinat'/>
- <cd:variable name='slantedbold' value='inclinataldin'/>
- <cd:variable name='small' value='mic'/>
- <cd:variable name='smallbodyfont' value='smallbodyfont'/>
- <cd:variable name='smallbold' value='micaldin'/>
- <cd:variable name='smallbolditalic' value='micaldininclinat'/>
- <cd:variable name='smallboldslanted' value='micaldininclinat'/>
- <cd:variable name='smallcaps' value='majusculemici'/>
- <cd:variable name='smaller' value='smaller'/>
- <cd:variable name='smallitalic' value='micitalic'/>
- <cd:variable name='smallitalicbold' value='micitalicaldin'/>
- <cd:variable name='smallnormal' value='micnormal'/>
- <cd:variable name='smallslanted' value='micinclinat'/>
- <cd:variable name='smallslantedbold' value='micinclinataldin'/>
- <cd:variable name='smalltype' value='mictype'/>
- <cd:variable name='somewhere' value='undeva'/>
- <cd:variable name='sorted' value='sortat'/>
- <cd:variable name='sorting' value='sorting'/>
- <cd:variable name='space' value='spatiu'/>
- <cd:variable name='spacing' value='spatiere'/>
- <cd:variable name='speech' value='speech'/>
- <cd:variable name='split' value='split'/>
- <cd:variable name='spot' value='spot'/>
- <cd:variable name='standard' value='standard'/>
- <cd:variable name='start' value='start'/>
- <cd:variable name='starter' value='starter'/>
- <cd:variable name='sticker' value='sticker'/>
- <cd:variable name='stop' value='stop'/>
- <cd:variable name='stopper' value='stopper'/>
- <cd:variable name='stretch' value='dilatat'/>
- <cd:variable name='stretched' value='stretched'/>
- <cd:variable name='strict' value='strict'/>
- <cd:variable name='strong' value='strong'/>
- <cd:variable name='strut' value='strut'/>
- <cd:variable name='sub' value='sub'/>
- <cd:variable name='subbackward' value='subinapoi'/>
- <cd:variable name='subformula' value='subformula'/>
- <cd:variable name='subforward' value='subavans'/>
- <cd:variable name='subject' value='subiect'/>
- <cd:variable name='subpage' value='subpagina'/>
- <cd:variable name='subs' value='subs'/>
- <cd:variable name='subsection' value='subsectiune'/>
- <cd:variable name='subsubject' value='subsubiect'/>
- <cd:variable name='subsubsection' value='subsubsectiune'/>
- <cd:variable name='subsubsubject' value='subsubsubiect'/>
- <cd:variable name='subsubsubsection' value='subsubsubsectiune'/>
- <cd:variable name='subsubsubsubject' value='subsubsubsubiect'/>
- <cd:variable name='subsubsubsubsection' value='subsubsubsubsectiune'/>
- <cd:variable name='subsubsubsubsubject' value='subsubsubsubsubiect'/>
- <cd:variable name='subsubsubsubsubsection' value='subsubsubsubsubsectiune'/>
- <cd:variable name='subsubsubsubsubsubject' value='subsubsubsubsubsubiect'/>
- <cd:variable name='subsubsubsubsubsubsection' value='subsubsubsubsubsubsectiune'/>
- <cd:variable name='subsubsubsubsubsubsubject' value='subsubsubsubsubsubsubiect'/>
- <cd:variable name='subsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubsectiune'/>
- <cd:variable name='subsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubsubiect'/>
- <cd:variable name='subsubsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubsubsectiune'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubsubsubiect'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubsection' value='subsubsubsubsubsubsubsubsubsectiune'/>
- <cd:variable name='subsubsubsubsubsubsubsubsubsubject' value='subsubsubsubsubsubsubsubsubsubiect'/>
- <cd:variable name='sunday' value='duminica'/>
- <cd:variable name='support' value='suport'/>
- <cd:variable name='sym' value='sym'/>
- <cd:variable name='symbol' value='simbol'/>
- <cd:variable name='synchronize' value='synchronize'/>
- <cd:variable name='synonym' value='synonym'/>
- <cd:variable name='system' value='sistem'/>
- <cd:variable name='table' value='tabelul'/>
- <cd:variable name='tablehead' value='antettabel'/>
- <cd:variable name='tables' value='tabelele'/>
- <cd:variable name='tabletail' value='subsoltabel'/>
- <cd:variable name='tabulate' value='tabulate'/>
- <cd:variable name='tabulatehead' value='tabulatehead'/>
- <cd:variable name='tabulatetail' value='tabulatetail'/>
- <cd:variable name='tall' value='inalt'/>
- <cd:variable name='teletype' value='teletype'/>
- <cd:variable name='temporary' value='temporar'/>
- <cd:variable name='test' value='test'/>
- <cd:variable name='text' value='text'/>
- <cd:variable name='textnote' value='textnote'/>
- <cd:variable name='three' value='trei'/>
- <cd:variable name='thursday' value='joi'/>
- <cd:variable name='tight' value='tight'/>
- <cd:variable name='title' value='titlu'/>
- <cd:variable name='toggle' value='toggle'/>
- <cd:variable name='tolerant' value='tolerant'/>
- <cd:variable name='top' value='sus'/>
- <cd:variable name='tuesday' value='marti'/>
- <cd:variable name='two' value='doi'/>
- <cd:variable name='txt' value='txt'/>
- <cd:variable name='type' value='type'/>
- <cd:variable name='typing' value='typing'/>
- <cd:variable name='unavailable' value='nedisponibil'/>
- <cd:variable name='underbar' value='sublinie'/>
- <cd:variable name='underbars' value='sublinii'/>
- <cd:variable name='understrike' value='understrike'/>
- <cd:variable name='understrikes' value='understrikes'/>
- <cd:variable name='unframed' value='unframed'/>
- <cd:variable name='unicode' value='unicode'/>
- <cd:variable name='unit' value='unitate'/>
- <cd:variable name='units' value='unitati'/>
- <cd:variable name='unknown' value='necunoscut'/>
- <cd:variable name='unpacked' value='despachetat'/>
- <cd:variable name='up' value='up'/>
- <cd:variable name='url' value='url'/>
- <cd:variable name='used' value='folosit'/>
- <cd:variable name='value' value='valoare'/>
- <cd:variable name='vertical' value='vertical'/>
- <cd:variable name='very' value='foarte'/>
- <cd:variable name='verystrict' value='foartestrict'/>
- <cd:variable name='verytolerant' value='foartetolerant'/>
- <cd:variable name='vfenced' value='vfenced'/>
- <cd:variable name='vulgarfraction' value='vulgarfraction'/>
- <cd:variable name='weak' value='weak'/>
- <cd:variable name='wednesday' value='miercuri'/>
- <cd:variable name='week' value='saptamana'/>
- <cd:variable name='weekday' value='zisaptamana'/>
- <cd:variable name='white' value='alb'/>
- <cd:variable name='wide' value='larg'/>
- <cd:variable name='width' value='latime'/>
- <cd:variable name='word' value='cuvant'/>
- <cd:variable name='words' value='words'/>
- <cd:variable name='xml' value='xml'/>
- <cd:variable name='year' value='an'/>
- <cd:variable name='yes' value='da'/>
- </cd:variables>
-
- <!-- definitions for interface constants for language ro -->
-
- <cd:constants>
- <cd:constant name='action' value='actiune'/>
- <cd:constant name='address' value='adresa'/>
- <cd:constant name='after' value='dupa'/>
- <cd:constant name='afterhead' value='dupatitlu'/>
- <cd:constant name='afterkey' value='dupatasta'/>
- <cd:constant name='aftersection' value='aftersection'/>
- <cd:constant name='align' value='aliniere'/>
- <cd:constant name='alignbottom' value='alignbottom'/>
- <cd:constant name='aligncharacter' value='aliniazacaracter'/>
- <cd:constant name='alignmentcharacter' value='alierecaracter'/>
- <cd:constant name='alignmentleftsample' value='alignmentleftsample'/>
- <cd:constant name='alignmentleftwidth' value='alignmentleftwidth'/>
- <cd:constant name='alignmentrightsample' value='alignmentrightsample'/>
- <cd:constant name='alignmentrightwidth' value='alignmentrightwidth'/>
- <cd:constant name='alignsymbol' value='alignsymbol'/>
- <cd:constant name='aligntitle' value='alinieretitlu'/>
- <cd:constant name='alternative' value='alternativ'/>
- <cd:constant name='anchor' value='anchor'/>
- <cd:constant name='anchoring' value='anchoring'/>
- <cd:constant name='andtext' value='andtext'/>
- <cd:constant name='apa' value='apa'/>
- <cd:constant name='arguments' value='arguments'/>
- <cd:constant name='arrow' value='sageata'/>
- <cd:constant name='artauthor' value='artauthor'/>
- <cd:constant name='artauthoretaldisplay' value='artauthoretaldisplay'/>
- <cd:constant name='artauthoretallimit' value='artauthoretallimit'/>
- <cd:constant name='artauthoretaltext' value='artauthoretaltext'/>
- <cd:constant name='artoffset' value='artoffset'/>
- <cd:constant name='at' value='la'/>
- <cd:constant name='author' value='autor'/>
- <cd:constant name='authorconversion' value='authorconversion'/>
- <cd:constant name='authoretaldisplay' value='authoretaldisplay'/>
- <cd:constant name='authoretallimit' value='authoretallimit'/>
- <cd:constant name='authoretaltext' value='authoretaltext'/>
- <cd:constant name='auto' value='auto'/>
- <cd:constant name='autocase' value='autocase'/>
- <cd:constant name='autofile' value='autofile'/>
- <cd:constant name='autofocus' value='autofocus'/>
- <cd:constant name='autohang' value='autohang'/>
- <cd:constant name='autostrut' value='autostrut'/>
- <cd:constant name='autowidth' value='autolatime'/>
- <cd:constant name='availableheight' value='availableheight'/>
- <cd:constant name='availablewidth' value='availablewidth'/>
- <cd:constant name='axis' value='axa'/>
- <cd:constant name='background' value='fundal'/>
- <cd:constant name='backgroundcolor' value='culoarefundal'/>
- <cd:constant name='backgroundcorner' value='coltfundal'/>
- <cd:constant name='backgrounddepth' value='adancimefundal'/>
- <cd:constant name='backgroundoffset' value='offsetfundal'/>
- <cd:constant name='backgroundradius' value='razafundal'/>
- <cd:constant name='backgroundscreen' value='ecranfundal'/>
- <cd:constant name='backreference' value='backreference'/>
- <cd:constant name='backspace' value='spatiuspate'/>
- <cd:constant name='balance' value='balanta'/>
- <cd:constant name='before' value='inainte'/>
- <cd:constant name='beforehead' value='inaintetitlu'/>
- <cd:constant name='beforesection' value='beforesection'/>
- <cd:constant name='bet' value='bet'/>
- <cd:constant name='bidi' value='bidi'/>
- <cd:constant name='big' value='mare'/>
- <cd:constant name='blank' value='blanc'/>
- <cd:constant name='bleedoffset' value='bleedoffset'/>
- <cd:constant name='blockway' value='blockway'/>
- <cd:constant name='bodyfont' value='fonttext'/>
- <cd:constant name='boffset' value='boffset'/>
- <cd:constant name='boldfeatures' value='boldfeatures'/>
- <cd:constant name='boldfont' value='boldfont'/>
- <cd:constant name='bolditalicfeatures' value='bolditalicfeatures'/>
- <cd:constant name='bolditalicfont' value='bolditalicfont'/>
- <cd:constant name='boldslantedfeatures' value='boldslantedfeatures'/>
- <cd:constant name='boldslantedfont' value='boldslantedfont'/>
- <cd:constant name='bookmark' value='semncarte'/>
- <cd:constant name='bottom' value='jos'/>
- <cd:constant name='bottomafter' value='bottomafter'/>
- <cd:constant name='bottombefore' value='bottombefore'/>
- <cd:constant name='bottomcommand' value='bottomcommand'/>
- <cd:constant name='bottomdistance' value='distantajos'/>
- <cd:constant name='bottomframe' value='framejos'/>
- <cd:constant name='bottomoffset' value='offsetjos'/>
- <cd:constant name='bottomspace' value='spatiujos'/>
- <cd:constant name='bottomstate' value='starejos'/>
- <cd:constant name='break' value='break'/>
- <cd:constant name='buffer' value='buffer'/>
- <cd:constant name='cache' value='cache'/>
- <cd:constant name='calculate' value='calculeaza'/>
- <cd:constant name='category' value='category'/>
- <cd:constant name='ccommand' value='comandac'/>
- <cd:constant name='character' value='character'/>
- <cd:constant name='characters' value='characters'/>
- <cd:constant name='check' value='check'/>
- <cd:constant name='click' value='click'/>
- <cd:constant name='clickin' value='clickintru'/>
- <cd:constant name='clickout' value='clickies'/>
- <cd:constant name='clipoffset' value='clipoffset'/>
- <cd:constant name='closeaction' value='actiuneinchidere'/>
- <cd:constant name='closecommand' value='closecommand'/>
- <cd:constant name='closepage' value='closepage'/>
- <cd:constant name='closepageaction' value='actiuneinchiderepagina'/>
- <cd:constant name='closesymbol' value='closesymbol'/>
- <cd:constant name='color' value='culoare'/>
- <cd:constant name='column' value='coloana'/>
- <cd:constant name='columndistance' value='distantacoloane'/>
- <cd:constant name='columns' value='coloane'/>
- <cd:constant name='comma' value='comma'/>
- <cd:constant name='command' value='comanda'/>
- <cd:constant name='commandafter' value='comandadupa'/>
- <cd:constant name='commandbefore' value='comandainainte'/>
- <cd:constant name='commands' value='comenzi'/>
- <cd:constant name='comment' value='comment'/>
- <cd:constant name='commentchar' value='commentchar'/>
- <cd:constant name='commentoffset' value='commentoffset'/>
- <cd:constant name='compact' value='compact'/>
- <cd:constant name='component' value='component'/>
- <cd:constant name='compoundhyphen' value='compoundhyphen'/>
- <cd:constant name='compress' value='compress'/>
- <cd:constant name='compressdistance' value='compressdistance'/>
- <cd:constant name='compressmethod' value='compressmethod'/>
- <cd:constant name='compressseparator' value='compressseparator'/>
- <cd:constant name='compressstopper' value='compressstopper'/>
- <cd:constant name='concerns' value='concerns'/>
- <cd:constant name='connector' value='connector'/>
- <cd:constant name='continue' value='continua'/>
- <cd:constant name='contrastcolor' value='culoarecontrast'/>
- <cd:constant name='controls' value='controale'/>
- <cd:constant name='conversion' value='conversie'/>
- <cd:constant name='convertfile' value='convertestefisier'/>
- <cd:constant name='copies' value='copies'/>
- <cd:constant name='corner' value='colt'/>
- <cd:constant name='coupling' value='cuplare'/>
- <cd:constant name='couplingway' value='modcuplare'/>
- <cd:constant name='criterium' value='criteriu'/>
- <cd:constant name='cropoffset' value='cropoffset'/>
- <cd:constant name='crossreference' value='crossreference'/>
- <cd:constant name='cssfile' value='cssfile'/>
- <cd:constant name='current' value='curent'/>
- <cd:constant name='cutspace' value='cutspace'/>
- <cd:constant name='dash' value='dash'/>
- <cd:constant name='dat' value='dat'/>
- <cd:constant name='database' value='database'/>
- <cd:constant name='dataset' value='dataset'/>
- <cd:constant name='date' value='data'/>
- <cd:constant name='deepnumbercommand' value='deepnumbercommand'/>
- <cd:constant name='deeptextcommand' value='deeptextcommand'/>
- <cd:constant name='default' value='implicit'/>
- <cd:constant name='defaultheight' value='defaultheight'/>
- <cd:constant name='defaultwidth' value='defaultwidth'/>
- <cd:constant name='define' value='define'/>
- <cd:constant name='delay' value='intarziere'/>
- <cd:constant name='depth' value='inaltime'/>
- <cd:constant name='depthcorrection' value='corectieadancime'/>
- <cd:constant name='direction' value='directie'/>
- <cd:constant name='directory' value='director'/>
- <cd:constant name='display' value='display'/>
- <cd:constant name='displaythreshold' value='displaythreshold'/>
- <cd:constant name='distance' value='distanta'/>
- <cd:constant name='domain' value='domain'/>
- <cd:constant name='dot' value='punct'/>
- <cd:constant name='doublesided' value='douafete'/>
- <cd:constant name='down' value='down'/>
- <cd:constant name='dummy' value='dummy'/>
- <cd:constant name='dx' value='dx'/>
- <cd:constant name='dy' value='dy'/>
- <cd:constant name='edge' value='bordura'/>
- <cd:constant name='edgedistance' value='distantabordura'/>
- <cd:constant name='editor' value='editor'/>
- <cd:constant name='editoretaldisplay' value='editoretaldisplay'/>
- <cd:constant name='editoretallimit' value='editoretallimit'/>
- <cd:constant name='editoretaltext' value='editoretaltext'/>
- <cd:constant name='empty' value='gol'/>
- <cd:constant name='entities' value='entities'/>
- <cd:constant name='entries' value='entries'/>
- <cd:constant name='equalheight' value='equalheight'/>
- <cd:constant name='equalwidth' value='equalwidth'/>
- <cd:constant name='escape' value='escape'/>
- <cd:constant name='etaldisplay' value='etaldisplay'/>
- <cd:constant name='etallimit' value='etallimit'/>
- <cd:constant name='etaloption' value='etaloption'/>
- <cd:constant name='etaltext' value='etaltext'/>
- <cd:constant name='evenmargin' value='marginepara'/>
- <cd:constant name='exact' value='exact'/>
- <cd:constant name='exitoffset' value='exitoffset'/>
- <cd:constant name='expansion' value='expansiune'/>
- <cd:constant name='export' value='export'/>
- <cd:constant name='extras' value='extras'/>
- <cd:constant name='factor' value='factor'/>
- <cd:constant name='fallback' value='fallback'/>
- <cd:constant name='fallbacks' value='fallbacks'/>
- <cd:constant name='family' value='familie'/>
- <cd:constant name='features' value='features'/>
- <cd:constant name='featureset' value='featureset'/>
- <cd:constant name='fences' value='fences'/>
- <cd:constant name='field' value='field'/>
- <cd:constant name='fieldbackgroundcolor' value='culoarefundalcamp'/>
- <cd:constant name='fieldframecolor' value='culoareframecamp'/>
- <cd:constant name='fieldlayer' value='fieldlayer'/>
- <cd:constant name='fieldoffset' value='offsetcamp'/>
- <cd:constant name='file' value='fisier'/>
- <cd:constant name='filler' value='filler'/>
- <cd:constant name='filter' value='filter'/>
- <cd:constant name='filtercommand' value='filtercommand'/>
- <cd:constant name='finalnamesep' value='finalnamesep'/>
- <cd:constant name='finalpagesep' value='finalpagesep'/>
- <cd:constant name='finalpubsep' value='finalpubsep'/>
- <cd:constant name='first' value='primul'/>
- <cd:constant name='firstnamesep' value='firstnamesep'/>
- <cd:constant name='firstpage' value='primapagina'/>
- <cd:constant name='focus' value='focus'/>
- <cd:constant name='focusin' value='focusin'/>
- <cd:constant name='focusoffset' value='focusoffset'/>
- <cd:constant name='focusout' value='focusout'/>
- <cd:constant name='font' value='font'/>
- <cd:constant name='footer' value='subsol'/>
- <cd:constant name='footerdistance' value='distantasubsol'/>
- <cd:constant name='footerstate' value='staresubsol'/>
- <cd:constant name='force' value='fortat'/>
- <cd:constant name='foregroundcolor' value='foregroundcolor'/>
- <cd:constant name='foregroundstyle' value='foregroundstyle'/>
- <cd:constant name='format' value='format'/>
- <cd:constant name='fractions' value='fractions'/>
- <cd:constant name='frame' value='frame'/>
- <cd:constant name='framecolor' value='culoareframe'/>
- <cd:constant name='framecorner' value='coltframe'/>
- <cd:constant name='framedepth' value='adancimeframe'/>
- <cd:constant name='frameoffset' value='offsetframe'/>
- <cd:constant name='frameradius' value='razaframe'/>
- <cd:constant name='frames' value='frames'/>
- <cd:constant name='freeregion' value='freeregion'/>
- <cd:constant name='from' value='dela'/>
- <cd:constant name='functioncolor' value='functioncolor'/>
- <cd:constant name='functionstyle' value='functionstyle'/>
- <cd:constant name='get' value='adu'/>
- <cd:constant name='global' value='global'/>
- <cd:constant name='goodies' value='goodies'/>
- <cd:constant name='grid' value='grid'/>
- <cd:constant name='group' value='group'/>
- <cd:constant name='groupsuffix' value='groupsuffix'/>
- <cd:constant name='hang' value='suspenda'/>
- <cd:constant name='hcompact' value='hcompact'/>
- <cd:constant name='headalign' value='headalign'/>
- <cd:constant name='headcolor' value='culoaretitlu'/>
- <cd:constant name='headcommand' value='headcommand'/>
- <cd:constant name='headconversion' value='conversietitlu'/>
- <cd:constant name='header' value='antet'/>
- <cd:constant name='headerdistance' value='distantaantet'/>
- <cd:constant name='headerstate' value='stareantet'/>
- <cd:constant name='headlabel' value='etichetatitlu'/>
- <cd:constant name='headnumber' value='numartitlu'/>
- <cd:constant name='headseparator' value='headseparator'/>
- <cd:constant name='headstyle' value='stiltitlu'/>
- <cd:constant name='height' value='inaltime'/>
- <cd:constant name='hfactor' value='hfactor'/>
- <cd:constant name='hfil' value='hfil'/>
- <cd:constant name='hidenumber' value='hidenumber'/>
- <cd:constant name='hoffset' value='hoffset'/>
- <cd:constant name='horizontal' value='orizontal'/>
- <cd:constant name='horoffset' value='offsetoriz'/>
- <cd:constant name='hyphen' value='hyphen'/>
- <cd:constant name='hyphens' value='hyphens'/>
- <cd:constant name='icommand' value='comandai'/>
- <cd:constant name='ignore' value='ignore'/>
- <cd:constant name='in' value='in'/>
- <cd:constant name='inbetween' value='intre'/>
- <cd:constant name='increment' value='increment'/>
- <cd:constant name='incrementnumber' value='numarincrement'/>
- <cd:constant name='indenting' value='aliniat'/>
- <cd:constant name='indentlist' value='indentlist'/>
- <cd:constant name='indentnext' value='aliniaturmator'/>
- <cd:constant name='index' value='index'/>
- <cd:constant name='indicator' value='indicator'/>
- <cd:constant name='initialsep' value='initialsep'/>
- <cd:constant name='inlinethreshold' value='inlinethreshold'/>
- <cd:constant name='inner' value='intern'/>
- <cd:constant name='innermargin' value='innermargin'/>
- <cd:constant name='inputfile' value='inputfile'/>
- <cd:constant name='insidesection' value='insidesection'/>
- <cd:constant name='instance' value='instance'/>
- <cd:constant name='intent' value='intent'/>
- <cd:constant name='interaction' value='interactiune'/>
- <cd:constant name='interlinespace' value='spatiereinterliniara'/>
- <cd:constant name='internalgrid' value='internalgrid'/>
- <cd:constant name='italicfeatures' value='italicfeatures'/>
- <cd:constant name='italicfont' value='italicfont'/>
- <cd:constant name='itemalign' value='itemalign'/>
- <cd:constant name='items' value='elemente'/>
- <cd:constant name='joiners' value='joiners'/>
- <cd:constant name='journalconversion' value='journalconversion'/>
- <cd:constant name='juniorsep' value='juniorsep'/>
- <cd:constant name='keeptogether' value='keeptogether'/>
- <cd:constant name='ken' value='ken'/>
- <cd:constant name='keyexpansion' value='keyexpansion'/>
- <cd:constant name='keys' value='keys'/>
- <cd:constant name='keyword' value='keyword'/>
- <cd:constant name='label' value='eticheta'/>
- <cd:constant name='labelalternative' value='labelalternative'/>
- <cd:constant name='labelcolor' value='labelcolor'/>
- <cd:constant name='labeloffset' value='labeloffset'/>
- <cd:constant name='labelstyle' value='labelstyle'/>
- <cd:constant name='language' value='language'/>
- <cd:constant name='last' value='last'/>
- <cd:constant name='lastnamesep' value='lastnamesep'/>
- <cd:constant name='lastpage' value='ultimapagina'/>
- <cd:constant name='lastpagesep' value='lastpagesep'/>
- <cd:constant name='lastpubsep' value='lastpubsep'/>
- <cd:constant name='layout' value='layout'/>
- <cd:constant name='left' value='stanga'/>
- <cd:constant name='leftcolor' value='culoarestanga'/>
- <cd:constant name='leftcompoundhyphen' value='leftcompoundhyphen'/>
- <cd:constant name='leftedge' value='bordurastanga'/>
- <cd:constant name='leftedgedistance' value='distantabordurastanga'/>
- <cd:constant name='leftframe' value='framestanga'/>
- <cd:constant name='lefthyphen' value='lefthyphen'/>
- <cd:constant name='leftmargin' value='marginestanga'/>
- <cd:constant name='leftmargindistance' value='distantamarginestanga'/>
- <cd:constant name='leftoffset' value='offsetstanga'/>
- <cd:constant name='leftquotation' value='citatstanga'/>
- <cd:constant name='leftquote' value='minicitatstanga'/>
- <cd:constant name='leftsample' value='leftsample'/>
- <cd:constant name='leftsentence' value='propozitiestanga'/>
- <cd:constant name='leftspeech' value='leftspeech'/>
- <cd:constant name='leftstyle' value='stilstanga'/>
- <cd:constant name='leftsubsentence' value='subpropozitiestanga'/>
- <cd:constant name='lefttext' value='textstanga'/>
- <cd:constant name='leftwidth' value='latimestanga'/>
- <cd:constant name='leftwords' value='leftwords'/>
- <cd:constant name='less' value='less'/>
- <cd:constant name='level' value='nivel'/>
- <cd:constant name='levels' value='nivele'/>
- <cd:constant name='limittext' value='limittext'/>
- <cd:constant name='line' value='linie'/>
- <cd:constant name='linecorrection' value='corectielinie'/>
- <cd:constant name='linedirection' value='linedirection'/>
- <cd:constant name='lines' value='linii'/>
- <cd:constant name='list' value='lista'/>
- <cd:constant name='listtext' value='listtext'/>
- <cd:constant name='local' value='local'/>
- <cd:constant name='location' value='locatie'/>
- <cd:constant name='loffset' value='loffset'/>
- <cd:constant name='logo' value='logo'/>
- <cd:constant name='logos' value='logos'/>
- <cd:constant name='marcolor' value='culoaremarcaj'/>
- <cd:constant name='margin' value='margine'/>
- <cd:constant name='margindistance' value='distantamargine'/>
- <cd:constant name='marginedge' value='coltbordura'/>
- <cd:constant name='marginedgetext' value='textcoltbordura'/>
- <cd:constant name='margintext' value='textmargine'/>
- <cd:constant name='mark' value='mark'/>
- <cd:constant name='marking' value='marcaje'/>
- <cd:constant name='marstyle' value='stilmarcaj'/>
- <cd:constant name='mask' value='mask'/>
- <cd:constant name='mathclass' value='mathclass'/>
- <cd:constant name='mathlimits' value='mathlimits'/>
- <cd:constant name='mathstyle' value='mathstyle'/>
- <cd:constant name='max' value='max'/>
- <cd:constant name='maxdepth' value='maxdepth'/>
- <cd:constant name='maxheight' value='inaltimemaxima'/>
- <cd:constant name='maxwidth' value='latimemaxima'/>
- <cd:constant name='maybeyear' value='maybeyear'/>
- <cd:constant name='menu' value='meniu'/>
- <cd:constant name='method' value='metoda'/>
- <cd:constant name='middle' value='mijloc'/>
- <cd:constant name='middlecolor' value='middlecolor'/>
- <cd:constant name='middlecommand' value='middlecommand'/>
- <cd:constant name='middlespeech' value='middlespeech'/>
- <cd:constant name='middlestyle' value='middlestyle'/>
- <cd:constant name='middletext' value='textmijloc'/>
- <cd:constant name='middlewidth' value='middlewidth'/>
- <cd:constant name='midsentence' value='midsentence'/>
- <cd:constant name='min' value='min'/>
- <cd:constant name='mindepth' value='mindepth'/>
- <cd:constant name='minheight' value='inaltimeminima'/>
- <cd:constant name='minwidth' value='latimeminima'/>
- <cd:constant name='moffset' value='moffset'/>
- <cd:constant name='monthconversion' value='monthconversion'/>
- <cd:constant name='more' value='more'/>
- <cd:constant name='mpdepth' value='mpdepth'/>
- <cd:constant name='mpheight' value='mpheight'/>
- <cd:constant name='mpoffset' value='mpoffset'/>
- <cd:constant name='mpwidth' value='mpwidth'/>
- <cd:constant name='n' value='n'/>
- <cd:constant name='name' value='nume'/>
- <cd:constant name='namesep' value='namesep'/>
- <cd:constant name='nbottom' value='njos'/>
- <cd:constant name='nc' value='nc'/>
- <cd:constant name='next' value='urmatorul'/>
- <cd:constant name='nextleft' value='nextleft'/>
- <cd:constant name='nextleftquotation' value='nextleftquotation'/>
- <cd:constant name='nextright' value='nextright'/>
- <cd:constant name='nextrightquotation' value='nextrightquotation'/>
- <cd:constant name='nl' value='nl'/>
- <cd:constant name='nleft' value='nstanga'/>
- <cd:constant name='nlines' value='nlinii'/>
- <cd:constant name='norm' value='norm'/>
- <cd:constant name='note' value='note'/>
- <cd:constant name='notes' value='notes'/>
- <cd:constant name='nr' value='nr'/>
- <cd:constant name='nright' value='ndreapta'/>
- <cd:constant name='ntop' value='nsus'/>
- <cd:constant name='number' value='numar'/>
- <cd:constant name='numberalign' value='numberalign'/>
- <cd:constant name='numbercolor' value='culoarenumar'/>
- <cd:constant name='numbercommand' value='comandanumar'/>
- <cd:constant name='numberconversion' value='numberconversion'/>
- <cd:constant name='numberconversionset' value='numberconversionset'/>
- <cd:constant name='numberdistance' value='numberdistance'/>
- <cd:constant name='numbering' value='numerotare'/>
- <cd:constant name='numberorder' value='numberorder'/>
- <cd:constant name='numberprefix' value='numberprefix'/>
- <cd:constant name='numbersegments' value='numbersegments'/>
- <cd:constant name='numberseparator' value='separatornumar'/>
- <cd:constant name='numberseparatorset' value='numberseparatorset'/>
- <cd:constant name='numberset' value='numberset'/>
- <cd:constant name='numberstarter' value='numberstarter'/>
- <cd:constant name='numberstopper' value='numberstopper'/>
- <cd:constant name='numberstrut' value='numberstrut'/>
- <cd:constant name='numberstyle' value='stilnumar'/>
- <cd:constant name='numberwidth' value='numberwidth'/>
- <cd:constant name='nx' value='nx'/>
- <cd:constant name='ny' value='ny'/>
- <cd:constant name='object' value='obiect'/>
- <cd:constant name='obstruction' value='obstructie'/>
- <cd:constant name='oddmargin' value='margineimpara'/>
- <cd:constant name='offset' value='offset'/>
- <cd:constant name='openaction' value='actiunedeschidere'/>
- <cd:constant name='openpage' value='openpage'/>
- <cd:constant name='openpageaction' value='actiunedeschiderepagina'/>
- <cd:constant name='openup' value='openup'/>
- <cd:constant name='opticalsize' value='opticalsize'/>
- <cd:constant name='option' value='optiune'/>
- <cd:constant name='order' value='order'/>
- <cd:constant name='orientation' value='orientation'/>
- <cd:constant name='otherstext' value='otherstext'/>
- <cd:constant name='outermargin' value='outermargin'/>
- <cd:constant name='overprint' value='overprint'/>
- <cd:constant name='ownerpassword' value='ownerpassword'/>
- <cd:constant name='ownnumber' value='numarpropriu'/>
- <cd:constant name='packcriterium' value='packcriterium'/>
- <cd:constant name='page' value='pagina'/>
- <cd:constant name='pageboundaries' value='marginipagina'/>
- <cd:constant name='pagecolor' value='culoarepagina'/>
- <cd:constant name='pagecolormodel' value='pagecolormodel'/>
- <cd:constant name='pagecommand' value='comandapagina'/>
- <cd:constant name='pageconnector' value='pageconnector'/>
- <cd:constant name='pageconversion' value='pageconversion'/>
- <cd:constant name='pageconversionset' value='pageconversionset'/>
- <cd:constant name='pageleft' value='pageleft'/>
- <cd:constant name='pagemethod' value='pagemethod'/>
- <cd:constant name='pagenumber' value='numarpagina'/>
- <cd:constant name='pageprefix' value='pageprefix'/>
- <cd:constant name='pageprefixconnector' value='pageprefixconnector'/>
- <cd:constant name='pageprefixconversion' value='pageprefixconversion'/>
- <cd:constant name='pageprefixconversionset' value='pageprefixconversionset'/>
- <cd:constant name='pageprefixsegments' value='pageprefixsegments'/>
- <cd:constant name='pageprefixseparatorset' value='pageprefixseparatorset'/>
- <cd:constant name='pageprefixset' value='pageprefixset'/>
- <cd:constant name='pageprefixstarter' value='pageprefixstarter'/>
- <cd:constant name='pageprefixstopper' value='pageprefixstopper'/>
- <cd:constant name='pageright' value='pageright'/>
- <cd:constant name='pagesegments' value='pagesegments'/>
- <cd:constant name='pagesep' value='pagesep'/>
- <cd:constant name='pageseparatorset' value='pageseparatorset'/>
- <cd:constant name='pageset' value='pageset'/>
- <cd:constant name='pagestarter' value='pagestarter'/>
- <cd:constant name='pagestate' value='pagestate'/>
- <cd:constant name='pagestopper' value='pagestopper'/>
- <cd:constant name='pagestyle' value='stilpagina'/>
- <cd:constant name='palet' value='paleta'/>
- <cd:constant name='paper' value='hartie'/>
- <cd:constant name='paragraph' value='paragraf'/>
- <cd:constant name='period' value='period'/>
- <cd:constant name='place' value='pune'/>
- <cd:constant name='placehead' value='punetitlu'/>
- <cd:constant name='placeholder' value='placeholder'/>
- <cd:constant name='placestopper' value='punestopper'/>
- <cd:constant name='position' value='pozitie'/>
- <cd:constant name='prefix' value='prefix'/>
- <cd:constant name='prefixconnector' value='prefixconnector'/>
- <cd:constant name='prefixconversion' value='prefixconversion'/>
- <cd:constant name='prefixconversionset' value='prefixconversionset'/>
- <cd:constant name='prefixsegments' value='prefixsegments'/>
- <cd:constant name='prefixseparatorset' value='prefixseparatorset'/>
- <cd:constant name='prefixset' value='prefixset'/>
- <cd:constant name='prefixstarter' value='prefixstarter'/>
- <cd:constant name='prefixstopper' value='prefixstopper'/>
- <cd:constant name='preset' value='preset'/>
- <cd:constant name='preview' value='previzualizare'/>
- <cd:constant name='previous' value='precendent'/>
- <cd:constant name='previousnumber' value='numarprecedent'/>
- <cd:constant name='print' value='print'/>
- <cd:constant name='printable' value='tiparibil'/>
- <cd:constant name='process' value='process'/>
- <cd:constant name='processors' value='processors'/>
- <cd:constant name='profile' value='profile'/>
- <cd:constant name='properties' value='properties'/>
- <cd:constant name='pubsep' value='pubsep'/>
- <cd:constant name='quotechar' value='quotechar'/>
- <cd:constant name='radius' value='raza'/>
- <cd:constant name='random' value='aleator'/>
- <cd:constant name='range' value='range'/>
- <cd:constant name='reduction' value='reducere'/>
- <cd:constant name='ref' value='ref'/>
- <cd:constant name='refcommand' value='refcommand'/>
- <cd:constant name='reference' value='referinta'/>
- <cd:constant name='referencemethod' value='referencemethod'/>
- <cd:constant name='referenceprefix' value='referenceprefix'/>
- <cd:constant name='referencetext' value='referencetext'/>
- <cd:constant name='referencing' value='referinta'/>
- <cd:constant name='region' value='region'/>
- <cd:constant name='regionin' value='regiuneintrare'/>
- <cd:constant name='regionout' value='regiuneiesire'/>
- <cd:constant name='register' value='register'/>
- <cd:constant name='regularfeatures' value='regularfeatures'/>
- <cd:constant name='regularfont' value='regularfont'/>
- <cd:constant name='renderingsetup' value='renderingsetup'/>
- <cd:constant name='repeat' value='repeta'/>
- <cd:constant name='reset' value='reset'/>
- <cd:constant name='resetnumber' value='resetnumber'/>
- <cd:constant name='resolution' value='rezolutie'/>
- <cd:constant name='resources' value='resources'/>
- <cd:constant name='reverse' value='reverse'/>
- <cd:constant name='right' value='dreapta'/>
- <cd:constant name='rightchars' value='rightchars'/>
- <cd:constant name='rightcolor' value='culoaredreapta'/>
- <cd:constant name='rightcompoundhyphen' value='rightcompoundhyphen'/>
- <cd:constant name='rightedge' value='borduradreapta'/>
- <cd:constant name='rightedgedistance' value='distantacoltdreapta'/>
- <cd:constant name='rightframe' value='framedreapta'/>
- <cd:constant name='righthyphen' value='righthyphen'/>
- <cd:constant name='rightmargin' value='marginedreapta'/>
- <cd:constant name='rightmargindistance' value='distantamarginedreapta'/>
- <cd:constant name='rightoffset' value='offsetdreapta'/>
- <cd:constant name='rightquotation' value='citatdreapta'/>
- <cd:constant name='rightquote' value='minicitatdreapta'/>
- <cd:constant name='rightsample' value='rightsample'/>
- <cd:constant name='rightsentence' value='propozitiedreapta'/>
- <cd:constant name='rightspeech' value='rightspeech'/>
- <cd:constant name='rightstyle' value='stildreapta'/>
- <cd:constant name='rightsubsentence' value='subpropozitiedreapta'/>
- <cd:constant name='righttext' value='textdreapta'/>
- <cd:constant name='rightwidth' value='marginedreapta'/>
- <cd:constant name='rightwords' value='rightwords'/>
- <cd:constant name='roffset' value='roffset'/>
- <cd:constant name='rotation' value='rotatie'/>
- <cd:constant name='rule' value='rigla'/>
- <cd:constant name='rulecolor' value='culoarerigla'/>
- <cd:constant name='rulecommand' value='rulecommand'/>
- <cd:constant name='rulethickness' value='grosimerigla'/>
- <cd:constant name='samepage' value='aceeasipagina'/>
- <cd:constant name='sample' value='exemplu'/>
- <cd:constant name='samplesize' value='samplesize'/>
- <cd:constant name='saveinlist' value='saveinlist'/>
- <cd:constant name='scale' value='scala'/>
- <cd:constant name='scope' value='scop'/>
- <cd:constant name='screen' value='ecran'/>
- <cd:constant name='section' value='sectiune'/>
- <cd:constant name='sectionblock' value='sectionblock'/>
- <cd:constant name='sectionconversion' value='sectionconversion'/>
- <cd:constant name='sectionconversionset' value='sectionconversionset'/>
- <cd:constant name='sectionnumber' value='numarsectiune'/>
- <cd:constant name='sectionresetset' value='sectionresetset'/>
- <cd:constant name='sectionsegments' value='sectionsegments'/>
- <cd:constant name='sectionseparatorset' value='sectionseparatorset'/>
- <cd:constant name='sectionset' value='sectionset'/>
- <cd:constant name='sectionstarter' value='sectionstarter'/>
- <cd:constant name='sectionstopper' value='sectionstopper'/>
- <cd:constant name='separator' value='separator'/>
- <cd:constant name='separatorcolor' value='separatorcolor'/>
- <cd:constant name='separatorstyle' value='separatorstyle'/>
- <cd:constant name='set' value='set'/>
- <cd:constant name='setups' value='setups'/>
- <cd:constant name='shrink' value='shrink'/>
- <cd:constant name='side' value='parte'/>
- <cd:constant name='sidealign' value='sidealign'/>
- <cd:constant name='sidemethod' value='sidemethod'/>
- <cd:constant name='sidespaceafter' value='spatiulateraldupa'/>
- <cd:constant name='sidespacebefore' value='spatiulateralinainte'/>
- <cd:constant name='sidespaceinbetween' value='sidespaceinbetween'/>
- <cd:constant name='sidethreshold' value='sidethreshold'/>
- <cd:constant name='sign' value='semn'/>
- <cd:constant name='simplecommand' value='simplecommand'/>
- <cd:constant name='size' value='dimensiune'/>
- <cd:constant name='slantedfeatures' value='slantedfeatures'/>
- <cd:constant name='slantedfont' value='slantedfont'/>
- <cd:constant name='small' value='mic'/>
- <cd:constant name='smallcapsfeatures' value='smallcapsfeatures'/>
- <cd:constant name='smallcapsfont' value='smallcapsfont'/>
- <cd:constant name='solution' value='solution'/>
- <cd:constant name='sort' value='sort'/>
- <cd:constant name='sorttype' value='sorttype'/>
- <cd:constant name='source' value='sursa'/>
- <cd:constant name='space' value='spatiu'/>
- <cd:constant name='spaceafter' value='spatiudupa'/>
- <cd:constant name='spaceafterside' value='spaceafterside'/>
- <cd:constant name='spacebefore' value='spatiuinainte'/>
- <cd:constant name='spacebeforeside' value='spacebeforeside'/>
- <cd:constant name='spaceinbetween' value='spaceinbetween'/>
- <cd:constant name='spacing' value='spatiere'/>
- <cd:constant name='specification' value='specification'/>
- <cd:constant name='split' value='split'/>
- <cd:constant name='splitcolor' value='splitcolor'/>
- <cd:constant name='splitmethod' value='splitmethod'/>
- <cd:constant name='splitoffset' value='splitoffset'/>
- <cd:constant name='spot' value='spot'/>
- <cd:constant name='stack' value='stack'/>
- <cd:constant name='stackname' value='stackname'/>
- <cd:constant name='start' value='start'/>
- <cd:constant name='starter' value='starter'/>
- <cd:constant name='state' value='stare'/>
- <cd:constant name='step' value='pas'/>
- <cd:constant name='stop' value='stop'/>
- <cd:constant name='stopper' value='stopper'/>
- <cd:constant name='stretch' value='dilatat'/>
- <cd:constant name='strip' value='strip'/>
- <cd:constant name='strut' value='strut'/>
- <cd:constant name='style' value='stil'/>
- <cd:constant name='stylealternative' value='stylealternative'/>
- <cd:constant name='sub' value='sub'/>
- <cd:constant name='subtitle' value='subtitlu'/>
- <cd:constant name='suffix' value='suffix'/>
- <cd:constant name='suffixseparator' value='suffixseparator'/>
- <cd:constant name='suffixstopper' value='suffixstopper'/>
- <cd:constant name='surnamefirstnamesep' value='surnamefirstnamesep'/>
- <cd:constant name='surnameinitialsep' value='surnameinitialsep'/>
- <cd:constant name='surnamesep' value='surnamesep'/>
- <cd:constant name='svgstyle' value='svgstyle'/>
- <cd:constant name='sx' value='sx'/>
- <cd:constant name='sy' value='sy'/>
- <cd:constant name='symalign' value='symaliniere'/>
- <cd:constant name='symbol' value='simbol'/>
- <cd:constant name='symbolcommand' value='symbolcommand'/>
- <cd:constant name='symbolset' value='setsimbol'/>
- <cd:constant name='symcolor' value='culoaresimbol'/>
- <cd:constant name='symstyle' value='stilsimbol'/>
- <cd:constant name='synonym' value='sinonim'/>
- <cd:constant name='synonymcolor' value='culoaresinonim'/>
- <cd:constant name='synonymcommand' value='synonymcommand'/>
- <cd:constant name='synonymstyle' value='stilsinonim'/>
- <cd:constant name='tab' value='tab'/>
- <cd:constant name='text' value='text'/>
- <cd:constant name='textalign' value='textalign'/>
- <cd:constant name='textcolor' value='culoaretext'/>
- <cd:constant name='textcommand' value='comandatext'/>
- <cd:constant name='textdistance' value='textdistance'/>
- <cd:constant name='textheight' value='inaltimetext'/>
- <cd:constant name='textlayer' value='textlayer'/>
- <cd:constant name='textmargin' value='textmargin'/>
- <cd:constant name='textmethod' value='textmethod'/>
- <cd:constant name='textseparator' value='separatortext'/>
- <cd:constant name='textsize' value='dimensiunetext'/>
- <cd:constant name='textstate' value='staretext'/>
- <cd:constant name='textstyle' value='stiltext'/>
- <cd:constant name='textwidth' value='latimetext'/>
- <cd:constant name='threshold' value='threshold'/>
- <cd:constant name='time' value='time'/>
- <cd:constant name='title' value='titlu'/>
- <cd:constant name='titlecolor' value='culoaretitlu'/>
- <cd:constant name='titlecommand' value='titlecommand'/>
- <cd:constant name='titledistance' value='distantatitlu'/>
- <cd:constant name='titleleft' value='titleleft'/>
- <cd:constant name='titleright' value='titleright'/>
- <cd:constant name='titlestrut' value='titlestrut'/>
- <cd:constant name='titlestyle' value='stiltitlu'/>
- <cd:constant name='to' value='catre'/>
- <cd:constant name='toffset' value='toffset'/>
- <cd:constant name='tolerance' value='toleranta'/>
- <cd:constant name='top' value='sus'/>
- <cd:constant name='topcommand' value='topcommand'/>
- <cd:constant name='topdistance' value='distantasus'/>
- <cd:constant name='topframe' value='framesus'/>
- <cd:constant name='topoffset' value='offsetsus'/>
- <cd:constant name='topspace' value='spatiusus'/>
- <cd:constant name='topstate' value='staresus'/>
- <cd:constant name='totalnumber' value='totalnumber'/>
- <cd:constant name='transform' value='transform'/>
- <cd:constant name='translate' value='translate'/>
- <cd:constant name='trimoffset' value='trimoffset'/>
- <cd:constant name='type' value='type'/>
- <cd:constant name='unit' value='unitate'/>
- <cd:constant name='unknownreference' value='referintanecunoscuta'/>
- <cd:constant name='up' value='up'/>
- <cd:constant name='urlalternative' value='urlalternativ'/>
- <cd:constant name='urlspace' value='spatiuurl'/>
- <cd:constant name='userpassword' value='userpassword'/>
- <cd:constant name='validate' value='verifica'/>
- <cd:constant name='values' value='values'/>
- <cd:constant name='vcommand' value='comandav'/>
- <cd:constant name='vcompact' value='vcompact'/>
- <cd:constant name='vector' value='vector'/>
- <cd:constant name='veroffset' value='veroffset'/>
- <cd:constant name='vertical' value='vertical'/>
- <cd:constant name='vfactor' value='vfactor'/>
- <cd:constant name='vfil' value='vfil'/>
- <cd:constant name='viewerprefix' value='viewerprefix'/>
- <cd:constant name='voffset' value='voffset'/>
- <cd:constant name='vonsep' value='vonsep'/>
- <cd:constant name='way' value='mod'/>
- <cd:constant name='wfactor' value='factorw'/>
- <cd:constant name='white' value='alb'/>
- <cd:constant name='width' value='latime'/>
- <cd:constant name='words' value='words'/>
- <cd:constant name='xanchor' value='xanchor'/>
- <cd:constant name='xfactor' value='xfactor'/>
- <cd:constant name='xhtml' value='xhtml'/>
- <cd:constant name='xmax' value='xmax'/>
- <cd:constant name='xmlsetup' value='xmlsetup'/>
- <cd:constant name='xoffset' value='xoffset'/>
- <cd:constant name='xscale' value='xscala'/>
- <cd:constant name='xstep' value='xstep'/>
- <cd:constant name='yanchor' value='yanchor'/>
- <cd:constant name='yfactor' value='yfactor'/>
- <cd:constant name='ymax' value='ymax'/>
- <cd:constant name='yoffset' value='yoffset'/>
- <cd:constant name='yscale' value='yscala'/>
- <cd:constant name='ystep' value='ystep'/>
- </cd:constants>
-
- <!-- definitions for interface elements for language ro -->
-
- <cd:elements>
- <cd:element name='answerlines' value='answerlines'/>
- <cd:element name='answerspace' value='answerspace'/>
- <cd:element name='begin' value='inceput'/>
- <cd:element name='complete' value='complet'/>
- <cd:element name='coupled' value='cuplat'/>
- <cd:element name='currentlocal' value='localcurent'/>
- <cd:element name='end' value='sfarsit'/>
- <cd:element name='endsetup' value=''/>
- <cd:element name='get' value='get'/>
- <cd:element name='increment' value='increment'/>
- <cd:element name='list' value='lista'/>
- <cd:element name='listof' value='listade'/>
- <cd:element name='load' value='incarca'/>
- <cd:element name='local' value='local'/>
- <cd:element name='makeup' value='makeup'/>
- <cd:element name='next' value='urmatorul'/>
- <cd:element name='place' value='pune'/>
- <cd:element name='previous' value='precedent'/>
- <cd:element name='previouslocal' value='precedentlocal'/>
- <cd:element name='reserve' value='rezervat'/>
- <cd:element name='see' value='vezi'/>
- <cd:element name='setup' value='setare'/>
- <cd:element name='start' value='start'/>
- <cd:element name='stop' value='stop'/>
- <cd:element name='text' value='text'/>
- <cd:element name='type' value='type'/>
- </cd:elements>
-
- <!-- definitions for interface commands for language ro -->
-
- <cd:commands>
- <cd:command name='Character' value='Litera'/>
- <cd:command name='Characters' value='Litere'/>
- <cd:command name='MONTH' value='LUNA'/>
- <cd:command name='Numbers' value='Numere'/>
- <cd:command name='Romannumerals' value='Numereromane'/>
- <cd:command name='SmallCapped' value='Kap'/>
- <cd:command name='SmallCaps' value='Kaps'/>
- <cd:command name='WEEKDAY' value='ZIDINSAPTAMANA'/>
- <cd:command name='WORD' value='CUVANT'/>
- <cd:command name='WORDS' value='CUVINTE'/>
- <cd:command name='Word' value='Cuvant'/>
- <cd:command name='Words' value='Cuvinte'/>
- <cd:command name='about' value='despre'/>
- <cd:command name='adaptfontfeature' value='adaptfontfeature'/>
- <cd:command name='adaptlayout' value='adapteazaaspect'/>
- <cd:command name='addfeature' value='addfeature'/>
- <cd:command name='alignbottom' value='alignbottom'/>
- <cd:command name='aligned' value='aligned'/>
- <cd:command name='alignedbox' value='alignedbox'/>
- <cd:command name='alignedline' value='alignedline'/>
- <cd:command name='alignhere' value='alignhere'/>
- <cd:command name='alignment' value='alignment'/>
- <cd:command name='alignmentcharacter' value='alignmentcharacter'/>
- <cd:command name='applytocharacters' value='applytocharacters'/>
- <cd:command name='applytofirstcharacter' value='applytofirstcharacter'/>
- <cd:command name='arg' value='arg'/>
- <cd:command name='at' value='la'/>
- <cd:command name='atleftmargin' value='atleftmargin'/>
- <cd:command name='atpage' value='lapagina'/>
- <cd:command name='atrightmargin' value='atrightmargin'/>
- <cd:command name='background' value='fundal'/>
- <cd:command name='backspace' value='spatiuspate'/>
- <cd:command name='blackrule' value='linieneagra'/>
- <cd:command name='blackrules' value='liniinegre'/>
- <cd:command name='blank' value='blanc'/>
- <cd:command name='bookmark' value='semncarte'/>
- <cd:command name='bottombox' value='bottombox'/>
- <cd:command name='bottomdistance' value='distantajos'/>
- <cd:command name='bottomheight' value='inaltimejos'/>
- <cd:command name='bottomleftbox' value='bottomleftbox'/>
- <cd:command name='bottomrightbox' value='bottomrightbox'/>
- <cd:command name='bottomspace' value='spatiujos'/>
- <cd:command name='buildtextbottomdot' value='buildtextbottomdot'/>
- <cd:command name='but' value='but'/>
- <cd:command name='button' value='buton'/>
- <cd:command name='bypassblocks' value='saripesteblocuri'/>
- <cd:command name='character' value='litera'/>
- <cd:command name='characters' value='litere'/>
- <cd:command name='chem' value='chem'/>
- <cd:command name='clip' value='clip'/>
- <cd:command name='clonefield' value='cloneazacamp'/>
- <cd:command name='color' value='culoare'/>
- <cd:command name='colorbar' value='baraculoare'/>
- <cd:command name='colorvalue' value='valoareculoare'/>
- <cd:command name='column' value='coloana'/>
- <cd:command name='comparecolorgroup' value='comparagrupculoare'/>
- <cd:command name='comparepalet' value='comparapaleta'/>
- <cd:command name='completepagenumber' value='completeazanumarpagina'/>
- <cd:command name='completeregister' value='completeregister'/>
- <cd:command name='component' value='componenta'/>
- <cd:command name='convertnumber' value='convertestenumar'/>
- <cd:command name='copyfield' value='copiazacamp'/>
- <cd:command name='correctwhitespace' value='corecteazaspatiualb'/>
- <cd:command name='coupledocument' value='cupleazadocument'/>
- <cd:command name='couplemarking' value='cupleazamarcaje'/>
- <cd:command name='couplepage' value='paginadubla'/>
- <cd:command name='couplepaper' value='hartiedubla'/>
- <cd:command name='coupleregister' value='cupleazaregistru'/>
- <cd:command name='crlf' value='crlf'/>
- <cd:command name='currentdate' value='datacurenta'/>
- <cd:command name='currentheadnumber' value='numartitlucurent'/>
- <cd:command name='cutspace' value='cutspace'/>
- <cd:command name='date' value='data'/>
- <cd:command name='decouplemarking' value='decupleazamarcaje'/>
- <cd:command name='decrementnumber' value='decrementnumber'/>
- <cd:command name='define' value='defineste'/>
- <cd:command name='defineaccent' value='definesteaccent'/>
- <cd:command name='defineblank' value='definesteblanc'/>
- <cd:command name='defineblock' value='definestebloc'/>
- <cd:command name='definebodyfont' value='definestefonttext'/>
- <cd:command name='definebodyfontenvironment' value='definestemediulfonttext'/>
- <cd:command name='definebodyfontswitch' value='definebodyfontswitch'/>
- <cd:command name='definebuffer' value='definestebuffer'/>
- <cd:command name='definecharacter' value='definestecaracter'/>
- <cd:command name='definecharacterkerning' value='definecharacterkerning'/>
- <cd:command name='definecharacterspacing' value='definecharacterspacing'/>
- <cd:command name='definecolor' value='definesteculoare'/>
- <cd:command name='definecolorgroup' value='definestegrupculori'/>
- <cd:command name='definecolumnbreak' value='definecolumnbreak'/>
- <cd:command name='definecolumnset' value='definecolumnset'/>
- <cd:command name='definecombination' value='definecombination'/>
- <cd:command name='definecombinedlist' value='definestelistacombinata'/>
- <cd:command name='definecommand' value='definestecomanda'/>
- <cd:command name='defineconversion' value='definesteconversie'/>
- <cd:command name='definedescription' value='definestedescriere'/>
- <cd:command name='definedfont' value='definedfont'/>
- <cd:command name='defineenumeration' value='definesteenumerare'/>
- <cd:command name='definefallbackfamily' value='definefallbackfamily'/>
- <cd:command name='definefield' value='definestecamp'/>
- <cd:command name='definefieldstack' value='definestestivacampuri'/>
- <cd:command name='definefiguresymbol' value='definestesimbolfigura'/>
- <cd:command name='definefilefallback' value='definefilefallback'/>
- <cd:command name='definefirstline' value='definefirstline'/>
- <cd:command name='definefloat' value='definestefloat'/>
- <cd:command name='definefont' value='definestefont'/>
- <cd:command name='definefontalternative' value='definefontalternative'/>
- <cd:command name='definefontfallback' value='definefontfallback'/>
- <cd:command name='definefontfamily' value='definefontfamily'/>
- <cd:command name='definefontfamilypreset' value='definefontfamilypreset'/>
- <cd:command name='definefontfeature' value='definefontfeature'/>
- <cd:command name='definefontfile' value='definefontfile'/>
- <cd:command name='definefontsize' value='definefontsize'/>
- <cd:command name='definefontsolution' value='definefontsolution'/>
- <cd:command name='definefontstyle' value='definestestilfont'/>
- <cd:command name='definefontsynonym' value='definestesinonimfont'/>
- <cd:command name='defineframed' value='definesteinconjurare'/>
- <cd:command name='defineframedtext' value='definestetextinconjurat'/>
- <cd:command name='definefrozenfont' value='definefrozenfont'/>
- <cd:command name='definehbox' value='definestehbox'/>
- <cd:command name='definehead' value='definesteantet'/>
- <cd:command name='definehyphenationfeatures' value='definehyphenationfeatures'/>
- <cd:command name='defineindentedtext' value='defineindentedtext'/>
- <cd:command name='defineinmargin' value='defineinmargin'/>
- <cd:command name='defineinteractionmenu' value='definestemeniuinteractiune'/>
- <cd:command name='defineitemgroup' value='defineitemgroup'/>
- <cd:command name='defineitems' value='defineitems'/>
- <cd:command name='definelabel' value='definesteeticheta'/>
- <cd:command name='definelayer' value='definelayer'/>
- <cd:command name='definelayout' value='definelayout'/>
- <cd:command name='definelinenote' value='definelinenote'/>
- <cd:command name='definelist' value='definestelista'/>
- <cd:command name='definelogo' value='definestelogo'/>
- <cd:command name='definemainfield' value='definestecampprincipal'/>
- <cd:command name='definemakeup' value='definestemakeup'/>
- <cd:command name='definemarking' value='definestemarcaje'/>
- <cd:command name='definemathalignment' value='definemathalignment'/>
- <cd:command name='definemode' value='definemode'/>
- <cd:command name='definenamedcolor' value='definenamedcolor'/>
- <cd:command name='definenote' value='definenote'/>
- <cd:command name='defineoutput' value='definesteoutput'/>
- <cd:command name='defineoverlay' value='definesteoverlay'/>
- <cd:command name='definepagebreak' value='definepagebreak'/>
- <cd:command name='definepalet' value='definestepaleta'/>
- <cd:command name='definepapersize' value='definestedimensiunehartie'/>
- <cd:command name='defineparagraphs' value='definesteparagraf'/>
- <cd:command name='defineperiodkerning' value='defineperiodkerning'/>
- <cd:command name='defineplacement' value='defineplacement'/>
- <cd:command name='defineprofile' value='definesteprofil'/>
- <cd:command name='defineprogram' value='definesteprogram'/>
- <cd:command name='definerawfont' value='definestefontraw'/>
- <cd:command name='definereference' value='definestereferinte'/>
- <cd:command name='definereferenceformat' value='definesteformatreferinte'/>
- <cd:command name='definereferencelist' value='definestelistareferinte'/>
- <cd:command name='defineregister' value='definesteregistru'/>
- <cd:command name='definerule' value='definesterigla'/>
- <cd:command name='definesection' value='definestesectiune'/>
- <cd:command name='definesectionblock' value='definesteblocsectiune'/>
- <cd:command name='definesorting' value='definestesortare'/>
- <cd:command name='definestartstop' value='definestestartstop'/>
- <cd:command name='definestyle' value='definestestil'/>
- <cd:command name='definesubfield' value='definestesubcamp'/>
- <cd:command name='definesymbol' value='definestesimbol'/>
- <cd:command name='definesynonyms' value='definestesinonim'/>
- <cd:command name='definetabletemplate' value='definestesablontabel'/>
- <cd:command name='definetabulate' value='definestetabulatori'/>
- <cd:command name='definetext' value='definestetext'/>
- <cd:command name='definetextbackground' value='definetextbackground'/>
- <cd:command name='definetextnote' value='definetextnote'/>
- <cd:command name='definetextposition' value='definestepozitietext'/>
- <cd:command name='definetextvariable' value='definestevariabilatext'/>
- <cd:command name='definetype' value='definetype'/>
- <cd:command name='definetyping' value='definestetyping'/>
- <cd:command name='defineversion' value='definesteversiune'/>
- <cd:command name='depthspanningtext' value='depthspanningtext'/>
- <cd:command name='determineheadnumber' value='determinanumartitlu'/>
- <cd:command name='determinelistcharacteristics' value='determinacaracteristicilelistei'/>
- <cd:command name='determineregistercharacteristics' value='determinacaracteristiciregistru'/>
- <cd:command name='dimension' value='dimensiune'/>
- <cd:command name='disableinteractionmenu' value='dezactiveazameniuinteractiune'/>
- <cd:command name='disablemode' value='disablemode'/>
- <cd:command name='doaddfeature' value='doaddfeature'/>
- <cd:command name='domicile' value='domiciliu'/>
- <cd:command name='dontconvertfont' value='dontconvertfont'/>
- <cd:command name='donttest' value='nutesta'/>
- <cd:command name='edgedistance' value='distantacolt'/>
- <cd:command name='edgewidth' value='latimecolturi'/>
- <cd:command name='emphasisboldface' value='emphasisboldface'/>
- <cd:command name='emptylines' value='emptylines'/>
- <cd:command name='enablemode' value='enablemode'/>
- <cd:command name='environment' value='mediu'/>
- <cd:command name='externalfigure' value='figuraexterna'/>
- <cd:command name='fact' value='fact'/>
- <cd:command name='fastswitchtobodyfont' value='fastswitchtobodyfont'/>
- <cd:command name='feature' value='feature'/>
- <cd:command name='field' value='camp'/>
- <cd:command name='fieldstack' value='stivacampuri'/>
- <cd:command name='fillinfield' value='campumplere'/>
- <cd:command name='fillinline' value='linieumplere'/>
- <cd:command name='fillinrules' value='rigleumplere'/>
- <cd:command name='fillintext' value='textumplere'/>
- <cd:command name='firstcharacter' value='firstcharacter'/>
- <cd:command name='fitfield' value='potrivestecamp'/>
- <cd:command name='fittopbaselinegrid' value='fittopbaselinegrid'/>
- <cd:command name='fixedspace' value='spatiufixat'/>
- <cd:command name='fixedspaces' value='spatiifixate'/>
- <cd:command name='flushnotes' value='flushnotes'/>
- <cd:command name='followprofile' value='urmeazaprofil'/>
- <cd:command name='followprofileversion' value='urmeazaversiuneprofil'/>
- <cd:command name='followversion' value='urmeazaversiune'/>
- <cd:command name='footerdistance' value='distantasubsol'/>
- <cd:command name='footerheight' value='inaltimesubsol'/>
- <cd:command name='footnote' value='notasubsol'/>
- <cd:command name='footnotetext' value='footnotetext'/>
- <cd:command name='forceblocks' value='forteazablocuri'/>
- <cd:command name='forcecharacterstripping' value='forcecharacterstripping'/>
- <cd:command name='formulanumber' value='numarformula'/>
- <cd:command name='fraction' value='fractie'/>
- <cd:command name='framed' value='framed'/>
- <cd:command name='from' value='din'/>
- <cd:command name='fromlinenote' value='fromlinenote'/>
- <cd:command name='getbuffer' value='adubuffer'/>
- <cd:command name='getfirstcharacter' value='getfirstcharacter'/>
- <cd:command name='getmarking' value='adumarcaje'/>
- <cd:command name='getnumber' value='getnumber'/>
- <cd:command name='globaldisablemode' value='globaldisablemode'/>
- <cd:command name='globalenablemode' value='globalenablemode'/>
- <cd:command name='globalpreventmode' value='globalpreventmode'/>
- <cd:command name='godown' value='injos'/>
- <cd:command name='goto' value='dute'/>
- <cd:command name='gotobox' value='dutebox'/>
- <cd:command name='gotopage' value='dutepagina'/>
- <cd:command name='graycolor' value='culoaregri'/>
- <cd:command name='greyvalue' value='valoaregri'/>
- <cd:command name='grid' value='grid'/>
- <cd:command name='hairline' value='firdepar'/>
- <cd:command name='head' value='titlu'/>
- <cd:command name='headerdistance' value='distantaantet'/>
- <cd:command name='headerheight' value='inaltimeantet'/>
- <cd:command name='headlevel' value='niveltitlu'/>
- <cd:command name='headnumber' value='numartitlu'/>
- <cd:command name='headsym' value='headsym'/>
- <cd:command name='headtext' value='texttitlu'/>
- <cd:command name='heightspanningtext' value='heightspanningtext'/>
- <cd:command name='hideblocks' value='ascundeblocuri'/>
- <cd:command name='high' value='inalt'/>
- <cd:command name='hl' value='hl'/>
- <cd:command name='immediatebetweenlist' value='immediatebetweenlist'/>
- <cd:command name='immediatetolist' value='immediatetolist'/>
- <cd:command name='in' value='in'/>
- <cd:command name='incrementnumber' value='numarincrement'/>
- <cd:command name='indenting' value='aliniat'/>
- <cd:command name='inframed' value='inframed'/>
- <cd:command name='infull' value='pelung'/>
- <cd:command name='ininner' value='ininner'/>
- <cd:command name='inleft' value='instanga'/>
- <cd:command name='inleftedge' value='inparteastanga'/>
- <cd:command name='inleftmargin' value='inmargineastanga'/>
- <cd:command name='inline' value='inlinie'/>
- <cd:command name='inmargin' value='marginal'/>
- <cd:command name='inmframed' value='inmaframed'/>
- <cd:command name='inneredgedistance' value='inneredgedistance'/>
- <cd:command name='inneredgewidth' value='inneredgewidth'/>
- <cd:command name='innermargindistance' value='innermargindistance'/>
- <cd:command name='innermarginwidth' value='innermarginwidth'/>
- <cd:command name='inothermargin' value='inaltamargine'/>
- <cd:command name='inouter' value='inouter'/>
- <cd:command name='inright' value='indreapta'/>
- <cd:command name='inrightedge' value='inparteadreapta'/>
- <cd:command name='inrightmargin' value='inmargineadreapta'/>
- <cd:command name='installlanguage' value='instalarelimba'/>
- <cd:command name='interactionbar' value='barainteractiune'/>
- <cd:command name='interactionbuttons' value='butoaneinteractiune'/>
- <cd:command name='interactionmenu' value='meniuinteractiune'/>
- <cd:command name='item' value='element'/>
- <cd:command name='itemgroup' value='itemgroup'/>
- <cd:command name='items' value='element'/>
- <cd:command name='itemtag' value='itemtag'/>
- <cd:command name='its' value='el'/>
- <cd:command name='keepblocks' value='pastreazablocuri'/>
- <cd:command name='kerncharacters' value='kerncharacters'/>
- <cd:command name='label' value='eticheta'/>
- <cd:command name='labels' value='etichete'/>
- <cd:command name='labeltext' value='texteticheta'/>
- <cd:command name='language' value='limba'/>
- <cd:command name='languageCharacters' value='languageCharacters'/>
- <cd:command name='languagecharacters' value='languagecharacters'/>
- <cd:command name='leftaligned' value='aliniatstanga'/>
- <cd:command name='leftbottombox' value='leftbottombox'/>
- <cd:command name='leftedgedistance' value='distantacoltstanga'/>
- <cd:command name='leftedgewidth' value='latimecoltstanga'/>
- <cd:command name='leftline' value='leftline'/>
- <cd:command name='leftmargindistance' value='distantamarginestanga'/>
- <cd:command name='leftmarginwidth' value='latimemarginestanga'/>
- <cd:command name='leg' value='leg'/>
- <cd:command name='linecorrection' value='linecorrection'/>
- <cd:command name='linenote' value='linenote'/>
- <cd:command name='linespanningtext' value='linespanningtext'/>
- <cd:command name='linewidth' value='grosimelinie'/>
- <cd:command name='listheight' value='inaltimelista'/>
- <cd:command name='listlength' value='lungimelista'/>
- <cd:command name='listsymbol' value='listsymbol'/>
- <cd:command name='listwidth' value='latimelista'/>
- <cd:command name='loadfontgoodies' value='loadfontgoodies'/>
- <cd:command name='localfootnotes' value='localfootnotes'/>
- <cd:command name='localnotes' value='localnotes'/>
- <cd:command name='logfields' value='logcampuri'/>
- <cd:command name='lohi' value='jossus'/>
- <cd:command name='low' value='jos'/>
- <cd:command name='macroname' value='nume'/>
- <cd:command name='mainlanguage' value='limbaprincipala'/>
- <cd:command name='makeupheight' value='inaltimemakeup'/>
- <cd:command name='makeupwidth' value='latimemakeup'/>
- <cd:command name='mar' value='mar'/>
- <cd:command name='marginblock' value='marginblock'/>
- <cd:command name='margindistance' value='distantamargine'/>
- <cd:command name='marginrule' value='liniemargine'/>
- <cd:command name='margintext' value='textmarginal'/>
- <cd:command name='margintitle' value='titlumarginal'/>
- <cd:command name='marginwidth' value='latimemargine'/>
- <cd:command name='marginword' value='cuvantmarginal'/>
- <cd:command name='marking' value='marcaje'/>
- <cd:command name='markversion' value='marcheazaversiune'/>
- <cd:command name='mathematics' value='matematica'/>
- <cd:command name='menubutton' value='butonmeniu'/>
- <cd:command name='mframed' value='maframed'/>
- <cd:command name='midaligned' value='aliniatcentru'/>
- <cd:command name='mirror' value='reflexie'/>
- <cd:command name='month' value='luna'/>
- <cd:command name='moveformula' value='moveformula'/>
- <cd:command name='moveongrid' value='mutapegrid'/>
- <cd:command name='movesidefloat' value='movesidefloat'/>
- <cd:command name='navigating' value='navigating'/>
- <cd:command name='nodimension' value='faradimensiune'/>
- <cd:command name='noheaderandfooterlines' value='faraliniiantetsisubsol'/>
- <cd:command name='noindenting' value='faraaliniat'/>
- <cd:command name='noitem' value='noitem'/>
- <cd:command name='nolist' value='faralista'/>
- <cd:command name='nomarking' value='faramarcaje'/>
- <cd:command name='nomoreblocks' value='gatablocuri'/>
- <cd:command name='nomorefiles' value='farafisiere'/>
- <cd:command name='nop' value='nop'/>
- <cd:command name='nospace' value='faraspatiu'/>
- <cd:command name='note' value='nota'/>
- <cd:command name='notesymbol' value='notesymbol'/>
- <cd:command name='notopandbottomlines' value='faraliniisussijos'/>
- <cd:command name='notsmallcapped' value='nokap'/>
- <cd:command name='nowhitespace' value='faraspatiualb'/>
- <cd:command name='numberofsubpages' value='numberofsubpages'/>
- <cd:command name='numbers' value='numere'/>
- <cd:command name='outeredgedistance' value='outeredgedistance'/>
- <cd:command name='outeredgewidth' value='outeredgewidth'/>
- <cd:command name='outermargindistance' value='outermargindistance'/>
- <cd:command name='outermarginwidth' value='outermarginwidth'/>
- <cd:command name='packed' value='impachetat'/>
- <cd:command name='page' value='pagina'/>
- <cd:command name='pagebreak' value='pagebreak'/>
- <cd:command name='pagedepth' value='pagedepth'/>
- <cd:command name='pagenumber' value='numarpagina'/>
- <cd:command name='pageoffset' value='pageoffset'/>
- <cd:command name='pagereference' value='referintapagina'/>
- <cd:command name='paperheight' value='inaltimehartie'/>
- <cd:command name='paperwidth' value='latimehartie'/>
- <cd:command name='periods' value='puncte'/>
- <cd:command name='placebookmarks' value='plaseazasemnecarte'/>
- <cd:command name='placecombinedlist' value='punelistacombinata'/>
- <cd:command name='placefloat' value='placefloat'/>
- <cd:command name='placefootnotes' value='punenotesubsol'/>
- <cd:command name='placeformula' value='puneformula'/>
- <cd:command name='placeheadnumber' value='placeheadnumber'/>
- <cd:command name='placeheadtext' value='placeheadtext'/>
- <cd:command name='placelegend' value='punelegenda'/>
- <cd:command name='placelist' value='punelista'/>
- <cd:command name='placelistofsynonyms' value='placelistofsynonyms'/>
- <cd:command name='placelocalfootnotes' value='punenotesubsollocale'/>
- <cd:command name='placelocalnotes' value='placelocalnotes'/>
- <cd:command name='placelogos' value='punelogouri'/>
- <cd:command name='placenamedfloat' value='placenamedfloat'/>
- <cd:command name='placenotes' value='placenotes'/>
- <cd:command name='placeongrid' value='plaseazapegrid'/>
- <cd:command name='placeontopofeachother' value='punedeasuprafiecareia'/>
- <cd:command name='placepagenumber' value='punenumarpagina'/>
- <cd:command name='placerawlist' value='placerawlist'/>
- <cd:command name='placereferencelist' value='placereferencelist'/>
- <cd:command name='placeregister' value='puneregistru'/>
- <cd:command name='placerule' value='punerigla'/>
- <cd:command name='placesidebyside' value='punefatainfata'/>
- <cd:command name='placesubformula' value='punesubformula'/>
- <cd:command name='placetextvariable' value='punevariabilatext'/>
- <cd:command name='position' value='pozitie'/>
- <cd:command name='positiontext' value='pozitietext'/>
- <cd:command name='postponenotes' value='postponenotes'/>
- <cd:command name='postponingnotes' value='postponingnotes'/>
- <cd:command name='predefinedfont' value='predefinedfont'/>
- <cd:command name='predefinefont' value='predefinefont'/>
- <cd:command name='presetdocument' value='presetdocument'/>
- <cd:command name='prettyprintbuffer' value='prettyprintbuffer'/>
- <cd:command name='preventmode' value='preventmode'/>
- <cd:command name='printpaperheight' value='inaltimehartieimprimanta'/>
- <cd:command name='printpaperwidth' value='latimehartieimprimanta'/>
- <cd:command name='processblocks' value='proceseazabloc'/>
- <cd:command name='processbodyfontenvironmentlist' value='processbodyfontenvironmentlist'/>
- <cd:command name='processpage' value='proceseazapagina'/>
- <cd:command name='product' value='produs'/>
- <cd:command name='program' value='program'/>
- <cd:command name='project' value='proiect'/>
- <cd:command name='publication' value='publicatie'/>
- <cd:command name='quotation' value='citat'/>
- <cd:command name='quote' value='minicitat'/>
- <cd:command name='ran' value='ran'/>
- <cd:command name='redo' value='refa'/>
- <cd:command name='redoconvertfont' value='redoconvertfont'/>
- <cd:command name='ref' value='ref'/>
- <cd:command name='reference' value='referinta'/>
- <cd:command name='referral' value='referit'/>
- <cd:command name='referraldate' value='datareferit'/>
- <cd:command name='referring' value='referring'/>
- <cd:command name='registerfontclass' value='registerfontclass'/>
- <cd:command name='registerhyphenationexception' value='registerhyphenationexception'/>
- <cd:command name='registerhyphenationpattern' value='registerhyphenationpattern'/>
- <cd:command name='remark' value='remarca'/>
- <cd:command name='replacefeature' value='replacefeature'/>
- <cd:command name='reset' value='reset'/>
- <cd:command name='resetandaddfeature' value='resetandaddfeature'/>
- <cd:command name='resetcharacteralign' value='resetcharacteralign'/>
- <cd:command name='resetcharacterkerning' value='resetcharacterkerning'/>
- <cd:command name='resetcharacterspacing' value='resetcharacterspacing'/>
- <cd:command name='resetcharacterstripping' value='resetcharacterstripping'/>
- <cd:command name='resetfeature' value='resetfeature'/>
- <cd:command name='resetfontcolorsheme' value='resetfontcolorsheme'/>
- <cd:command name='resetfontfallback' value='resetfontfallback'/>
- <cd:command name='resetfontsolution' value='resetfontsolution'/>
- <cd:command name='resethyphenationfeatures' value='resethyphenationfeatures'/>
- <cd:command name='resetlocalfloats' value='resetlocalfloats'/>
- <cd:command name='resetmarking' value='reseteazamarcaje'/>
- <cd:command name='resetmode' value='resetmode'/>
- <cd:command name='resetnumber' value='resetnumber'/>
- <cd:command name='resetpath' value='resetpath'/>
- <cd:command name='resetperiodkerning' value='resetperiodkerning'/>
- <cd:command name='resetsystemmode' value='resetsystemmode'/>
- <cd:command name='resettextcontent' value='resettextcontent'/>
- <cd:command name='resetvisualizers' value='resetvisualizers'/>
- <cd:command name='restoreglobalbodyfont' value='restoreglobalbodyfont'/>
- <cd:command name='retestfeature' value='retestfeature'/>
- <cd:command name='revivefeature' value='revivefeature'/>
- <cd:command name='rightaligned' value='aliniatdreapta'/>
- <cd:command name='rightbottombox' value='rightbottombox'/>
- <cd:command name='rightedgedistance' value='distantacoltdreapta'/>
- <cd:command name='rightedgewidth' value='latimecoltdreapta'/>
- <cd:command name='rightline' value='rightline'/>
- <cd:command name='rightmargindistance' value='distantamarginedreapta'/>
- <cd:command name='rightmarginwidth' value='latimemarginedreapta'/>
- <cd:command name='romannumerals' value='numereromane'/>
- <cd:command name='rotate' value='roteste'/>
- <cd:command name='savebuffer' value='savebuffer'/>
- <cd:command name='scale' value='scala'/>
- <cd:command name='screen' value='ecran'/>
- <cd:command name='selectblocks' value='selecteazablocuri'/>
- <cd:command name='selectpaper' value='selecteazahartie'/>
- <cd:command name='selectversion' value='selecteazaversiune'/>
- <cd:command name='setbigbodyfont' value='setbigbodyfont'/>
- <cd:command name='setcharacteralign' value='setcharacteralign'/>
- <cd:command name='setcharacteraligndetail' value='setcharacteraligndetail'/>
- <cd:command name='setcharactercasing' value='setcharactercasing'/>
- <cd:command name='setcharactercleaning' value='setcharactercleaning'/>
- <cd:command name='setcharacterkerning' value='setcharacterkerning'/>
- <cd:command name='setcharacterspacing' value='setcharacterspacing'/>
- <cd:command name='setcharacterstripping' value='setcharacterstripping'/>
- <cd:command name='setcurrentfontclass' value='setcurrentfontclass'/>
- <cd:command name='setfirstline' value='setfirstline'/>
- <cd:command name='setfirstpasscharacteralign' value='setfirstpasscharacteralign'/>
- <cd:command name='setfont' value='setfont'/>
- <cd:command name='setfontcolorsheme' value='setfontcolorsheme'/>
- <cd:command name='setfontfeature' value='setfontfeature'/>
- <cd:command name='setfontsolution' value='setfontsolution'/>
- <cd:command name='setfontstrut' value='setfontstrut'/>
- <cd:command name='sethyphenationfeatures' value='sethyphenationfeatures'/>
- <cd:command name='setmainbodyfont' value='setmainbodyfont'/>
- <cd:command name='setmode' value='setmode'/>
- <cd:command name='setnote' value='setnote'/>
- <cd:command name='setnotetext' value='setnotetext'/>
- <cd:command name='setnumber' value='setnumber'/>
- <cd:command name='setperiodkerning' value='setperiodkerning'/>
- <cd:command name='setsecondpasscharacteralign' value='setsecondpasscharacteralign'/>
- <cd:command name='setsmallbodyfont' value='setsmallbodyfont'/>
- <cd:command name='setsystemmode' value='setsystemmode'/>
- <cd:command name='settextcontent' value='settextcontent'/>
- <cd:command name='settextvariable' value='setvariabilatext'/>
- <cd:command name='setupalign' value='seteazaalinierea'/>
- <cd:command name='setupanswerarea' value='setupanswerarea'/>
- <cd:command name='setuparranging' value='seteazaaranjareapag'/>
- <cd:command name='setupattachment' value='setupattachment'/>
- <cd:command name='setupbackground' value='seteazafundal'/>
- <cd:command name='setupbackgrounds' value='seteazafundaluri'/>
- <cd:command name='setupblackrules' value='seteazaliniinegre'/>
- <cd:command name='setupblank' value='seteazablanc'/>
- <cd:command name='setupblock' value='seteazabloc'/>
- <cd:command name='setupbodyfont' value='seteazafonttext'/>
- <cd:command name='setupbodyfontenvironment' value='seteazamediulfonttext'/>
- <cd:command name='setupbottom' value='seteazajos'/>
- <cd:command name='setupbottomtexts' value='seteazatextejos'/>
- <cd:command name='setupbuffer' value='seteazabuffer'/>
- <cd:command name='setupbuttons' value='seteazabutoane'/>
- <cd:command name='setupcapitals' value='seteazamajuscule'/>
- <cd:command name='setupcaption' value='seteazalegenda'/>
- <cd:command name='setupcaptions' value='seteazalegendele'/>
- <cd:command name='setupcharacteralign' value='setupcharacteralign'/>
- <cd:command name='setupcharacterkerning' value='setupcharacterkerning'/>
- <cd:command name='setupcharacterspacing' value='setupcharacterspacing'/>
- <cd:command name='setupclipping' value='seteazaclipping'/>
- <cd:command name='setupcolor' value='seteazaculoare'/>
- <cd:command name='setupcolors' value='seteazaculori'/>
- <cd:command name='setupcolumns' value='seteazacoloane'/>
- <cd:command name='setupcolumnset' value='setupcolumnset'/>
- <cd:command name='setupcolumnsetlines' value='setupcolumnsetlines'/>
- <cd:command name='setupcolumnsetstart' value='setupcolumnsetstart'/>
- <cd:command name='setupcombinations' value='seteazacombinari'/>
- <cd:command name='setupcombinedlist' value='seteazalistacombinata'/>
- <cd:command name='setupcomment' value='seteazacomentariu'/>
- <cd:command name='setupcounter' value='setupcounter'/>
- <cd:command name='setupdescription' value='setupdescription'/>
- <cd:command name='setupdescriptions' value='seteazadescriere'/>
- <cd:command name='setupenumeration' value='setupenumeration'/>
- <cd:command name='setupenumerations' value='seteazaenumerare'/>
- <cd:command name='setupexternalfigures' value='seteazafiguriexterne'/>
- <cd:command name='setupfield' value='seteazacamp'/>
- <cd:command name='setupfields' value='seteazacampuri'/>
- <cd:command name='setupfillinlines' value='seteazaliniiumplere'/>
- <cd:command name='setupfillinrules' value='seteazarigleumplere'/>
- <cd:command name='setupfirstline' value='setupfirstline'/>
- <cd:command name='setupfloat' value='seteazafloat'/>
- <cd:command name='setupfloats' value='seteazafloats'/>
- <cd:command name='setupfloatsplitting' value='seteazaimpartireafloat'/>
- <cd:command name='setupfontexpansion' value='setupfontexpansion'/>
- <cd:command name='setupfontprotrusion' value='setupfontprotrusion'/>
- <cd:command name='setupfonts' value='setupfonts'/>
- <cd:command name='setupfontsolution' value='setupfontsolution'/>
- <cd:command name='setupfooter' value='seteazasubsol'/>
- <cd:command name='setupfootertexts' value='seteazatextesubsol'/>
- <cd:command name='setupfootnotedefinition' value='seteazadefinireanotasubsol'/>
- <cd:command name='setupfootnotes' value='seteazanotasubsol'/>
- <cd:command name='setupforms' value='seteazaformulare'/>
- <cd:command name='setupformula' value='setupformula'/>
- <cd:command name='setupformulas' value='seteazaformule'/>
- <cd:command name='setupframed' value='seteazainconjurat'/>
- <cd:command name='setupframedtext' value='setupframedtext'/>
- <cd:command name='setupframedtexts' value='definestetexteinconjurate'/>
- <cd:command name='setuphead' value='seteazatitlu'/>
- <cd:command name='setupheader' value='seteazaantet'/>
- <cd:command name='setupheadertexts' value='seteazatexteantet'/>
- <cd:command name='setupheadnumber' value='seteazanumartitlu'/>
- <cd:command name='setupheads' value='seteazatitluri'/>
- <cd:command name='setupheadtext' value='seteazatexttitlu'/>
- <cd:command name='setuphyphenation' value='setuphyphenation'/>
- <cd:command name='setuphyphenmark' value='seteazaliniesilabe'/>
- <cd:command name='setupindentedtext' value='setupindentedtext'/>
- <cd:command name='setupindenting' value='seteazaaliniat'/>
- <cd:command name='setupinmargin' value='seteazamarginal'/>
- <cd:command name='setupinteraction' value='seteazainteractiunea'/>
- <cd:command name='setupinteractionbar' value='seteazabarainteractiune'/>
- <cd:command name='setupinteractionmenu' value='seteazameniuinteractiune'/>
- <cd:command name='setupinteractionscreen' value='seteazaecraninteractiune'/>
- <cd:command name='setupinterlinespace' value='seteazaspatiuinterliniar'/>
- <cd:command name='setupitemgroup' value='setupitemgroup'/>
- <cd:command name='setupitemgroups' value='setareitemization'/>
- <cd:command name='setupitems' value='seteazaelemente'/>
- <cd:command name='setuplabeltext' value='seteazatexteticheta'/>
- <cd:command name='setuplanguage' value='setarelimba'/>
- <cd:command name='setuplayout' value='seteazaaspect'/>
- <cd:command name='setuplegend' value='seteazalegenda'/>
- <cd:command name='setuplinenote' value='setuplinenote'/>
- <cd:command name='setuplinenumbering' value='seteazanumerotarelinii'/>
- <cd:command name='setuplines' value='seteazalinii'/>
- <cd:command name='setuplinewidth' value='seteazagrosimelinie'/>
- <cd:command name='setuplist' value='seteazalista'/>
- <cd:command name='setupmakeup' value='seteazamakeup'/>
- <cd:command name='setupmarginblock' value='setupmarginblock'/>
- <cd:command name='setupmarginblocks' value='seteazablocurimarginale'/>
- <cd:command name='setupmargindata' value='setupmargindata'/>
- <cd:command name='setupmarginrules' value='seteazaliniimargine'/>
- <cd:command name='setupmarking' value='seteazamarcaje'/>
- <cd:command name='setupmathalignment' value='setupmathalignment'/>
- <cd:command name='setupnarrower' value='seteazaingust'/>
- <cd:command name='setupnotation' value='setupnotation'/>
- <cd:command name='setupnotations' value='setupnotations'/>
- <cd:command name='setupnote' value='setupnote'/>
- <cd:command name='setupnotes' value='setupnotes'/>
- <cd:command name='setupnumber' value='setupnumber'/>
- <cd:command name='setupnumbering' value='seteazanumerotare'/>
- <cd:command name='setupoppositeplacing' value='seteazaplasareaopozita'/>
- <cd:command name='setupoutput' value='setareoutput'/>
- <cd:command name='setuppagecomment' value='seteazacomentariupagina'/>
- <cd:command name='setuppagenumber' value='seteazanumarpagina'/>
- <cd:command name='setuppagenumbering' value='seteazanumerotarepagina'/>
- <cd:command name='setuppagetransitions' value='seteazatranzitiepagina'/>
- <cd:command name='setuppalet' value='seteazapaleta'/>
- <cd:command name='setuppaper' value='setuppaper'/>
- <cd:command name='setuppapersize' value='seteazadimensiunihartie'/>
- <cd:command name='setupparagraphnumbering' value='seteazanumerotareparagrafe'/>
- <cd:command name='setupparagraphs' value='seteazaparagrafe'/>
- <cd:command name='setupperiodkerning' value='setupperiodkerning'/>
- <cd:command name='setupplacement' value='setupplacement'/>
- <cd:command name='setuppositioning' value='setarepozitie'/>
- <cd:command name='setupprofiles' value='seteazaprofile'/>
- <cd:command name='setupprograms' value='seteazaprograme'/>
- <cd:command name='setuppublications' value='seteazapublicatii'/>
- <cd:command name='setupquote' value='seteazaminicitat'/>
- <cd:command name='setupreferencelist' value='seteazalistareferinte'/>
- <cd:command name='setupreferencing' value='seteazareferinte'/>
- <cd:command name='setupregister' value='seteazaregistru'/>
- <cd:command name='setuprotate' value='seteazarotare'/>
- <cd:command name='setuprule' value='seteazarigla'/>
- <cd:command name='setupscreens' value='seteazaecrane'/>
- <cd:command name='setupsection' value='seteazasectiune'/>
- <cd:command name='setupsectionblock' value='seteazablocsectiune'/>
- <cd:command name='setupsorting' value='seteazasortare'/>
- <cd:command name='setupspacing' value='seteazaspatiu'/>
- <cd:command name='setupstartstop' value='setupstartstop'/>
- <cd:command name='setupstrut' value='seteazastrut'/>
- <cd:command name='setupsubpagenumber' value='seteazanumarsubpagina'/>
- <cd:command name='setupsymbolset' value='seteazasimbol'/>
- <cd:command name='setupsynchronization' value='setaresincronizare'/>
- <cd:command name='setupsynchronizationbar' value='setarebarasincronizare'/>
- <cd:command name='setupsynonyms' value='seteazasinonime'/>
- <cd:command name='setupsystem' value='seteazasistem'/>
- <cd:command name='setuptab' value='seteazatab'/>
- <cd:command name='setuptables' value='seteazatabele'/>
- <cd:command name='setuptabulate' value='seteazatabulatori'/>
- <cd:command name='setuptext' value='seteazatext'/>
- <cd:command name='setuptextbackground' value='setuptextbackground'/>
- <cd:command name='setuptextnote' value='setuptextnote'/>
- <cd:command name='setuptextposition' value='seteazapozitietext'/>
- <cd:command name='setuptextrules' value='seteazarigletext'/>
- <cd:command name='setuptexttexts' value='seteazatextetext'/>
- <cd:command name='setuptextvariable' value='seteazavariabilatext'/>
- <cd:command name='setupthinrules' value='seteazaliniesubtire'/>
- <cd:command name='setuptolerance' value='seteazatoleranta'/>
- <cd:command name='setuptop' value='seteazasus'/>
- <cd:command name='setuptoptexts' value='seteazatextesus'/>
- <cd:command name='setuptype' value='seteazatype'/>
- <cd:command name='setuptyping' value='seteazatyping'/>
- <cd:command name='setupunderbar' value='seteazasublinie'/>
- <cd:command name='setupurl' value='seteazaurl'/>
- <cd:command name='setupversions' value='seteazaversiuni'/>
- <cd:command name='setupwhitespace' value='seteazaspatiualb'/>
- <cd:command name='setvisualizerfont' value='setvisualizerfont'/>
- <cd:command name='showbodyfont' value='afiseazafonttext'/>
- <cd:command name='showbodyfontenvironment' value='afiseazamediufonttext'/>
- <cd:command name='showcolor' value='afiseazaculoare'/>
- <cd:command name='showcolorgroup' value='afiseazagrupculoare'/>
- <cd:command name='showcounter' value='showcounter'/>
- <cd:command name='showexternalfigures' value='afiseazafiguriexterne'/>
- <cd:command name='showfields' value='afiseazacampuri'/>
- <cd:command name='showfont' value='showfont'/>
- <cd:command name='showfontdata' value='showfontdata'/>
- <cd:command name='showfontexpansion' value='showfontexpansion'/>
- <cd:command name='showfontitalics' value='showfontitalics'/>
- <cd:command name='showfontkerns' value='showfontkerns'/>
- <cd:command name='showfontparameters' value='showfontparameters'/>
- <cd:command name='showfontstrip' value='showfontstrip'/>
- <cd:command name='showfontstyle' value='showfontstyle'/>
- <cd:command name='showframe' value='afiseazarama'/>
- <cd:command name='showgrid' value='afiseazagrid'/>
- <cd:command name='showhyphenationtrace' value='showhyphenationtrace'/>
- <cd:command name='showkerning' value='showkerning'/>
- <cd:command name='showlayout' value='afiseazaaspect'/>
- <cd:command name='showmakeup' value='afiseazamakeup'/>
- <cd:command name='showminimalbaseline' value='showminimalbaseline'/>
- <cd:command name='showpalet' value='afiseazapaleta'/>
- <cd:command name='showprint' value='afiseazatiparire'/>
- <cd:command name='showsetups' value='afiseazasetari'/>
- <cd:command name='showstruts' value='afiseazastruts'/>
- <cd:command name='showsymbolset' value='afiseazasetsimboluri'/>
- <cd:command name='smallcapped' value='kap'/>
- <cd:command name='someline' value='olinie'/>
- <cd:command name='somewhere' value='undeva'/>
- <cd:command name='space' value='spatiu'/>
- <cd:command name='specialitem' value='specialitem'/>
- <cd:command name='splitfloat' value='impartefloat'/>
- <cd:command name='startalignment' value='startaliniere'/>
- <cd:command name='startbackground' value='startfundal'/>
- <cd:command name='startcoding' value='startcodificare'/>
- <cd:command name='startcolor' value='startculoare'/>
- <cd:command name='startcolumnmakeup' value='startcolumnmakeup'/>
- <cd:command name='startcolumns' value='startcoloane'/>
- <cd:command name='startcolumnset' value='startcolumnset'/>
- <cd:command name='startcombination' value='startcombinare'/>
- <cd:command name='startcomponent' value='startcomponenta'/>
- <cd:command name='startdocument' value='startdocument'/>
- <cd:command name='startenvironment' value='startmediu'/>
- <cd:command name='startfigure' value='startfigura'/>
- <cd:command name='startframed' value='startframed'/>
- <cd:command name='startglobal' value='startglobal'/>
- <cd:command name='startline' value='startlinie'/>
- <cd:command name='startlinecorrection' value='startcorectielinie'/>
- <cd:command name='startlinenote' value='startlinenote'/>
- <cd:command name='startlinenumbering' value='startnumerotarelinii'/>
- <cd:command name='startlines' value='startlinii'/>
- <cd:command name='startlocal' value='startlocal'/>
- <cd:command name='startlocalfootnotes' value='startnotesubsollocale'/>
- <cd:command name='startmakeup' value='startmakeup'/>
- <cd:command name='startmarginblock' value='startblocmarginal'/>
- <cd:command name='startmarginrule' value='startliniemargine'/>
- <cd:command name='startnarrower' value='startingust'/>
- <cd:command name='startopposite' value='startopozit'/>
- <cd:command name='startoverlay' value='startoverlay'/>
- <cd:command name='startoverview' value='startoverview'/>
- <cd:command name='startpacked' value='startimpachetat'/>
- <cd:command name='startpositioning' value='startpozitionare'/>
- <cd:command name='startproduct' value='startprodus'/>
- <cd:command name='startprofile' value='startprofil'/>
- <cd:command name='startproject' value='startproiect'/>
- <cd:command name='startquotation' value='startcitat'/>
- <cd:command name='startraster' value='startraster'/>
- <cd:command name='startsymbolset' value='startsetsimboluri'/>
- <cd:command name='startsynchronization' value='startsincronizare'/>
- <cd:command name='starttable' value='starttabel'/>
- <cd:command name='starttables' value='starttabele'/>
- <cd:command name='starttext' value='starttext'/>
- <cd:command name='starttextbackground' value='starttextbackground'/>
- <cd:command name='starttextrule' value='startriglatext'/>
- <cd:command name='startunpacked' value='startneimpachetat'/>
- <cd:command name='startversion' value='startversiune'/>
- <cd:command name='stopalignment' value='stopaliniere'/>
- <cd:command name='stopbackground' value='stopfundal'/>
- <cd:command name='stopcoding' value='stopcodificare'/>
- <cd:command name='stopcolor' value='stopculoare'/>
- <cd:command name='stopcolumnmakeup' value='stopcolumnmakeup'/>
- <cd:command name='stopcolumns' value='stopcoloane'/>
- <cd:command name='stopcolumnset' value='stopcolumnset'/>
- <cd:command name='stopcombination' value='stopcombinare'/>
- <cd:command name='stopcomponent' value='stopcomponenta'/>
- <cd:command name='stopdocument' value='stopdocument'/>
- <cd:command name='stopenvironment' value='stopmediu'/>
- <cd:command name='stopframed' value='stopframed'/>
- <cd:command name='stopglobal' value='stopblobal'/>
- <cd:command name='stopline' value='stoplinie'/>
- <cd:command name='stoplinecorrection' value='stopcorectielinie'/>
- <cd:command name='stoplinenote' value='stoplinenote'/>
- <cd:command name='stoplinenumbering' value='stopnumerotarelinii'/>
- <cd:command name='stoplines' value='stoplinii'/>
- <cd:command name='stoplocal' value='stoplocal'/>
- <cd:command name='stoplocalfootnotes' value='stopnotesubsollocale'/>
- <cd:command name='stopmakeup' value='stopmakeup'/>
- <cd:command name='stopmarginblock' value='stopblocmarginal'/>
- <cd:command name='stopmarginrule' value='stopliniemargine'/>
- <cd:command name='stopnarrower' value='stopingust'/>
- <cd:command name='stopopposite' value='stopopozit'/>
- <cd:command name='stopoverlay' value='stopoverlay'/>
- <cd:command name='stopoverview' value='stopoverview'/>
- <cd:command name='stoppacked' value='stopimpachetat'/>
- <cd:command name='stoppositioning' value='stoppozitionare'/>
- <cd:command name='stopproduct' value='stopprodus'/>
- <cd:command name='stopprofile' value='stopprofil'/>
- <cd:command name='stopproject' value='stopproiect'/>
- <cd:command name='stopquotation' value='stopcitat'/>
- <cd:command name='stopraster' value='stopraster'/>
- <cd:command name='stopsynchronization' value='stopsincronizare'/>
- <cd:command name='stoptable' value='stoptabel'/>
- <cd:command name='stoptables' value='stoptabele'/>
- <cd:command name='stoptext' value='stoptext'/>
- <cd:command name='stoptextbackground' value='stoptextbackground'/>
- <cd:command name='stoptextrule' value='stopriglatext'/>
- <cd:command name='stopunpacked' value='stopneimpachetat'/>
- <cd:command name='stopversion' value='stopversiune'/>
- <cd:command name='stretched' value='intins'/>
- <cd:command name='strictinspectnextcharacter' value='strictinspectnextcharacter'/>
- <cd:command name='stripcharacter' value='stripcharacter'/>
- <cd:command name='subformulanumber' value='numarsubformula'/>
- <cd:command name='subpagenumber' value='subpagenumber'/>
- <cd:command name='subtractfeature' value='subtractfeature'/>
- <cd:command name='switchtobodyfont' value='trecilafonttext'/>
- <cd:command name='switchtorawfont' value='trecilafontraw'/>
- <cd:command name='sym' value='sim'/>
- <cd:command name='symbol' value='simbol'/>
- <cd:command name='symoffset' value='symoffset'/>
- <cd:command name='synchronizationbar' value='barasincronizare'/>
- <cd:command name='synchronize' value='sincronizeaza'/>
- <cd:command name='tab' value='tab'/>
- <cd:command name='testcolumn' value='testcolumn'/>
- <cd:command name='testfeature' value='testfeature'/>
- <cd:command name='testfeatureonce' value='testfeatureonce'/>
- <cd:command name='testpage' value='testpage'/>
- <cd:command name='tex' value='tex'/>
- <cd:command name='textbackground' value='textbackground'/>
- <cd:command name='textcolor' value='textcolor'/>
- <cd:command name='textheight' value='inaltimetext'/>
- <cd:command name='textnote' value='textnote'/>
- <cd:command name='textreference' value='referintatext'/>
- <cd:command name='textrule' value='riglatext'/>
- <cd:command name='textvariable' value='variabilatext'/>
- <cd:command name='textwidth' value='latimetext'/>
- <cd:command name='thefirstcharacter' value='thefirstcharacter'/>
- <cd:command name='thenormalizedbodyfontsize' value='thenormalizedbodyfontsize'/>
- <cd:command name='theremainingcharacters' value='theremainingcharacters'/>
- <cd:command name='thinrule' value='liniesubtire'/>
- <cd:command name='thinrules' value='liniisubtiri'/>
- <cd:command name='tolinenote' value='tolinenote'/>
- <cd:command name='tooltip' value='tooltip'/>
- <cd:command name='topdistance' value='distantasus'/>
- <cd:command name='topheight' value='inaltimesus'/>
- <cd:command name='topspace' value='spatiusus'/>
- <cd:command name='totalnumberofpages' value='numartotalpagini'/>
- <cd:command name='translate' value='traduce'/>
- <cd:command name='txt' value='txt'/>
- <cd:command name='typ' value='typ'/>
- <cd:command name='type' value='type'/>
- <cd:command name='typebuffer' value='scriebuffer'/>
- <cd:command name='typedefinedbuffer' value='typedefinedbuffer'/>
- <cd:command name='typefile' value='typefile'/>
- <cd:command name='typeinlinebuffer' value='typeinlinebuffer'/>
- <cd:command name='typing' value='typing'/>
- <cd:command name='unitmeaning' value='numeunitate'/>
- <cd:command name='unknown' value='necunoscut'/>
- <cd:command name='unregisterhyphenationpattern' value='unregisterhyphenationpattern'/>
- <cd:command name='useJSscripts' value='folosestescriptJS'/>
- <cd:command name='useURL' value='folosesteURL'/>
- <cd:command name='useXMLfilter' value='useXMLfilter'/>
- <cd:command name='useblocks' value='folosestebloc'/>
- <cd:command name='usebodyfont' value='usebodyfont'/>
- <cd:command name='usebodyfontparameter' value='usebodyfontparameter'/>
- <cd:command name='usecommands' value='folosestecomenzi'/>
- <cd:command name='useencoding' value='folosestecodificarea'/>
- <cd:command name='useexternaldocument' value='folosestedocumentextern'/>
- <cd:command name='useexternalfigure' value='folosestefiguraexterna'/>
- <cd:command name='useexternalfile' value='folosestefisierextern'/>
- <cd:command name='useexternalfiles' value='folosestefisiereexterne'/>
- <cd:command name='useexternalsoundtrack' value='folosestemuzicaexterna'/>
- <cd:command name='usemodule' value='folosestemodul'/>
- <cd:command name='usemodules' value='folosestemodule'/>
- <cd:command name='usepath' value='folosestedirector'/>
- <cd:command name='usereferences' value='folosestereferinte'/>
- <cd:command name='usespecials' value='folosestespeciale'/>
- <cd:command name='usesymbols' value='folosestesimboluri'/>
- <cd:command name='usetypescript' value='usetypescript'/>
- <cd:command name='usetypescriptfile' value='usetypescriptfile'/>
- <cd:command name='useurl' value='folosesteurl'/>
- <cd:command name='verbatim' value='verbatim'/>
- <cd:command name='version' value='versiune'/>
- <cd:command name='vl' value='vl'/>
- <cd:command name='weekday' value='zidinsaptamana'/>
- <cd:command name='whitespace' value='spatiualb'/>
- <cd:command name='widthspanningtext' value='widthspanningtext'/>
- <cd:command name='wordright' value='cuvantdreapta'/>
- <cd:command name='writebetweenlist' value='scrieintreliste'/>
- <cd:command name='writetolist' value='scrieinlista'/>
- <cd:command name='writetoreferencelist' value='scrieinlistareferinte'/>
- <cd:command name='writetoregister' value='scrieinregistru'/>
- </cd:commands>
-
-</cd:interface> \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/context-en.xml b/Master/texmf-dist/tex/context/interface/mkiv/context-en.xml
index 476e8ee62ac..996ca4f058c 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/context-en.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/context-en.xml
@@ -48614,7 +48614,7 @@
<cd:content/>
</cd:arguments>
</cd:command>
- <cd:command category="boxes" file="trc-vis.mkiv" level="document" name="showmakeup">
+ <cd:command category="boxes" file="trc-vis.mkxl" level="document" name="showmakeup">
<cd:arguments>
<cd:keywords optional="yes">
<cd:constant default="yes" type="makeup"/>
@@ -48624,26 +48624,30 @@
<cd:constant type="hbox"/>
<cd:constant type="vbox"/>
<cd:constant type="vtop"/>
+ <cd:constant type="origin"/>
<cd:constant type="kern"/>
<cd:constant type="glue"/>
<cd:constant type="penalty"/>
- <cd:constant type="fontkern"/>
- <cd:constant type="strut"/>
- <cd:constant type="whatsit"/>
<cd:constant type="glyph"/>
- <cd:constant type="simple"/>
- <cd:constant type="simplehbox"/>
- <cd:constant type="simplevbox"/>
- <cd:constant type="simplevtop"/>
- <cd:constant type="user"/>
- <cd:constant type="math"/>
- <cd:constant type="italic"/>
- <cd:constant type="origin"/>
<cd:constant type="discretionary"/>
+ <cd:constant type="italic"/>
<cd:constant type="expansion"/>
+ <cd:constant type="fontkern"/>
+ <cd:constant type="marginkern"/>
+ <cd:constant type="par"/>
+ <cd:constant type="dir"/>
<cd:constant type="line"/>
+ <cd:constant type="strut"/>
<cd:constant type="space"/>
<cd:constant type="depth"/>
+ <cd:constant type="insert"/>
+ <cd:constant type="mark"/>
+ <cd:constant type="math"/>
+ <cd:constant type="mathglue"/>
+ <cd:constant type="mathkern"/>
+ <cd:constant type="mathshapekern"/>
+ <cd:constant type="user"/>
+ <cd:constant type="whatsit"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf b/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf
index 552b8f5eb86..ee5d4853c99 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-context.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf b/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf
index 654cbb8deef..1160ae482c2 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-readme.pdf
Binary files differ
diff --git a/Master/texmf-dist/tex/context/interface/mkiv/i-visualizer.xml b/Master/texmf-dist/tex/context/interface/mkiv/i-visualizer.xml
index 817cdb38345..c6b196910f5 100644
--- a/Master/texmf-dist/tex/context/interface/mkiv/i-visualizer.xml
+++ b/Master/texmf-dist/tex/context/interface/mkiv/i-visualizer.xml
@@ -108,7 +108,8 @@
</cd:arguments>
</cd:command>
- <cd:command name="showmakeup" level="document" category="boxes" file="trc-vis.mkiv">
+ <!-- file="trc-vis.mkiv"-->
+ <cd:command name="showmakeup" level="document" category="boxes" file="trc-vis.mkxl">
<cd:arguments>
<cd:keywords optional="yes">
<cd:constant type="makeup" default="yes"/>
@@ -118,26 +119,30 @@
<cd:constant type="hbox"/>
<cd:constant type="vbox"/>
<cd:constant type="vtop"/>
+ <cd:constant type="origin"/>
<cd:constant type="kern"/>
<cd:constant type="glue"/>
<cd:constant type="penalty"/>
- <cd:constant type="fontkern"/>
- <cd:constant type="strut"/>
- <cd:constant type="whatsit"/>
<cd:constant type="glyph"/>
- <cd:constant type="simple"/>
- <cd:constant type="simplehbox"/>
- <cd:constant type="simplevbox"/>
- <cd:constant type="simplevtop"/>
- <cd:constant type="user"/>
- <cd:constant type="math"/>
- <cd:constant type="italic"/>
- <cd:constant type="origin"/>
<cd:constant type="discretionary"/>
+ <cd:constant type="italic"/>
<cd:constant type="expansion"/>
+ <cd:constant type="fontkern"/>
+ <cd:constant type="marginkern"/>
+ <cd:constant type="par"/>
+ <cd:constant type="dir"/>
<cd:constant type="line"/>
+ <cd:constant type="strut"/>
<cd:constant type="space"/>
<cd:constant type="depth"/>
+ <cd:constant type="insert"/>
+ <cd:constant type="mark"/>
+ <cd:constant type="math"/>
+ <cd:constant type="mathglue"/>
+ <cd:constant type="mathkern"/>
+ <cd:constant type="mathshapekern"/>
+ <cd:constant type="user"/>
+ <cd:constant type="whatsit"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/Master/texmf-dist/tex/context/modules/common/s-abbreviations-mixed.mkiv b/Master/texmf-dist/tex/context/modules/common/s-abbreviations-mixed.mkiv
deleted file mode 100644
index d5294fd56e2..00000000000
--- a/Master/texmf-dist/tex/context/modules/common/s-abbreviations-mixed.mkiv
+++ /dev/null
@@ -1,28 +0,0 @@
-%D \module
-%D [ file=s-abbreviations-mixed, % was: s-abr-04
-%D version=1996.01.01,
-%D title=\CONTEXT\ Style File,
-%D subtitle=General Abbreviations Mixed,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\setupsorting
- [logo]
- [\c!style=\font_style_pseudoMixedCapped]
-
-\protect
-
-\startmodule[abbreviations-mixed]
-
-\usemodule[abbreviations-logos]
-\usemodule[abbreviations-extras]
-
-\stopmodule
-
diff --git a/Master/texmf-dist/tex/context/modules/common/s-abbreviations-pseudocaps.mkiv b/Master/texmf-dist/tex/context/modules/common/s-abbreviations-pseudocaps.mkiv
deleted file mode 100644
index fa8606a7b2d..00000000000
--- a/Master/texmf-dist/tex/context/modules/common/s-abbreviations-pseudocaps.mkiv
+++ /dev/null
@@ -1,30 +0,0 @@
-%D \module
-%D [ file= s-abbreviations-pseudocaps, % was: s-abr-01
-%D version=1996.01.01,
-%D title=\CONTEXT\ Style File,
-%D subtitle=General Abbreviations Pseudocaps,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\setupsorting
- [logo]
- [\c!style=\v!capital]
-
-\setupcapitals
- [\c!title=\v!no]
-
-\protect
-
-\startmodule[abbreviations-pseudocaps]
-
-\usemodule[abbreviations-logos]
-\usemodule[abbreviations-extras]
-
-\stopmodule
diff --git a/Master/texmf-dist/tex/context/modules/common/s-abbreviations-smallcaps.mkiv b/Master/texmf-dist/tex/context/modules/common/s-abbreviations-smallcaps.mkiv
deleted file mode 100644
index 2ce86ca339e..00000000000
--- a/Master/texmf-dist/tex/context/modules/common/s-abbreviations-smallcaps.mkiv
+++ /dev/null
@@ -1,31 +0,0 @@
-%D \module
-%D [ file= s-abbreviations-smallcaps, % was: s-abr-02
-%D version=1996.01.01,
-%D title=\CONTEXT\ Style File,
-%D subtitle=General Abbreviations Smallcaps,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\setupsorting
- [logo]
- [\c!style=\v!smallcaps]
-
-\setupcapitals
- [\c!title=\v!no]
-
-\protect
-
-\startmodule[abbreviations-smallcaps]
-
-\usemodule[abbreviations-logos]
-\usemodule[abbreviations-extras]
-
-\stopmodule
-
diff --git a/Master/texmf-dist/tex/context/modules/common/s-abbreviations-words.mkiv b/Master/texmf-dist/tex/context/modules/common/s-abbreviations-words.mkiv
deleted file mode 100644
index 2b7d7cedc50..00000000000
--- a/Master/texmf-dist/tex/context/modules/common/s-abbreviations-words.mkiv
+++ /dev/null
@@ -1,28 +0,0 @@
-%D \module
-%D [ file= s-abbreviations-words, % was: s-abr-32
-%D version=1998.08.10,
-%D title=\CONTEXT\ Style File,
-%D subtitle=General Abbreviations Words,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\setupsorting
- [logo]
- [\c!style=\v!WORD]
-
-\protect
-
-\startmodule[abbreviations-words]
-
-\usemodule[abbreviations-logos]
-\usemodule[abbreviations-extras]
-
-\stopmodule
-
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-arabtex.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-arabtex.mkii
deleted file mode 100644
index dea1cae252d..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-arabtex.mkii
+++ /dev/null
@@ -1,450 +0,0 @@
-%D \module
-%D [ file=m-arabtex, % was font-arb,
-%D version=2003.02.22, % 1999.11.06,
-%D title=\CONTEXT\ Modules,
-%D subtitle=Arabic,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% I still need to hook in some features into the setup
-% macro. I also have to (re)define farsi etc. in ways
-% similar to arab, so that we have dedicated environments.
-%
-% keywords needed: vocalize transscribe
-%
-% \startarabic[option=vocalize] % or vocalize=yes
-% ......
-% \stoparabic
-
-\writestatus{loading}{ConTeXt Font Macros / ArabTeX support}
-
-%D At the \NTG\ 10\high{th} anniversary meeting Klaus Lagally
-%D introduced the audience to arabic typesetting, and after
-%D that I knew that some day I really had to look into his
-%D generic package. And then, sort of simultaniously Maarten
-%D Wisse and Imran Ahsan Nyazee asked me if \CONTEXT\ could
-%D support \ARABTEX, a package that provides right to left
-%D typesetting of (several variants of) arab and hebrew.
-%D Having implemented support for chinese a few weeks before,
-%D I could not resist to build in support for arab and hebrew
-%D too. Writing support for languages that don't give me any
-%D cue on how to pronounce their script, is kind of special.
-
-%D This is a beta version, since I still have to take care of some
-%D macros that conflict with existing stuff.
-
-\unprotect
-
-\definesystemvariable{ARABTEX}
-
-\def\setupARABTEX
- {\getparameters[\??ARABTEX]}
-
-\setupARABTEX
- [\s!rscale=1.2,
- \c!before=,
- \c!after=,
- \c!inner=\setarab,
- \c!style=\setarabicfont\fontstylesuffix]
-
-%D A few (maybe too) simple hooks into the font mechanism. The
-%D hook into the language module is not yet done.
-
-% \unexpanded\def\setarabicfont#1% rscale
-% {\scratchdimen\@@ARABTEXrscale\bodyfontsize
-% \font\arbfont\truefontname{Arabic#1} at \currentfontscale\scratchdimen
-% \setx@skels
-% \newfonttrue
-% \arbfont}
-%
-% more modern
-%
-% \unexpanded\def\setarabicfont#1% rscale
-% {\definefont[arbfont][Arabic#1 sa \@@ARABTEXrscale]%
-% \setx@skels
-% \newfonttrue
-% \arbfont}
-%
-% more efficient
-
-\unexpanded\def\setarabicfont#1%
- {\setx@skels
- \newfonttrue
- \definedfont[Arabic#1 sa \ARABTEXparameter\s!rscale]}
-
-%D Just to be compatible with Arab\TEX\ we define:
-
-\unexpanded\def\nash {\setarabicfont\s!Regular}
-\unexpanded\def\nashbf {\setarabicfont\s!Bold }
-\unexpanded\def\pnash {\setarabicfont\s!Regular}
-\unexpanded\def\pnashbf{\setarabicfont\s!Bold }
-\unexpanded\def\xnash {\setarabicfont\s!Regular}
-\unexpanded\def\xnashbf{\setarabicfont\s!Bold }
-
-%D The display arabic environment (will be an installable
-%D object) uses a few conditionals. Let's do it the
-%D \CONTEXT\ way and define an anvironment that we later can
-%D adapt.
-
-\newif\if@ignore
-\newif\if@endpe
-
-\def\setupARABTEXalternative[#1]%
- {\dodoubleempty\getparameters[\??ARABTEX#1]}
-
-\def\defineARABTEXalternative
- {\dodoubleempty\dodefineARABTEXalternative}
-
-\def\dodefineARABTEXalternative[#1][#2]%
- {\iffirstargument % \startarab is defined but used already
- \getparameters
- [\??ARABTEX#1]
- [\c!before=\@@ARABTEXbefore,
- \c!after=\@@ARABTEXafter,
- \c!inner=\@@ARABTEXinner,
- \c!style=\@@ARABTEXstyle,
- \s!rscale=\@@ARABTEXrscale,
- #2]%
- \setvalue {\e!start#1}{\displayARABTEXalternative{#1}}%
- \unexpanded\setvalue{#1}{\inlineARABTEXalternative {#1}}%
- \unexpanded\def\RL{\getvalue{#1}}%
- \unexpanded\def\LR{\a@LR}%
- \let\R=\RL
- \let\L=\LR
- \expandafter\all@wcmd\csname\e!stop#1\endcsname
- \else
- \defineARABTEXalternative[arabic]%
- \fi}
-
-\def\initializeARABTEXinternals
- {\ARABTEXparameter\c!inner
- \the\everyARABTEXpreset}
-
-\newtoks \everyARABTEXpreset
-
-\let\currentARABTEXalternative\empty
-
-\def\ARABTEXparameter#1%
- {\csname\??ARABTEX\currentARABTEXalternative#1\endcsname}
-
-\def\inlineARABTEXalternative#1#2%
- {\bgroup
- \edef\currentARABTEXalternative{#1}%
- \initializeARABTEXinternals
- \a@RL{#2}%
- \egroup}
-
-\def\displayARABTEXalternative#1%
- {\dodoubleempty\dostartARABTEXalternative[#1]}
-
-\def\dostartARABTEXalternative[#1][#2]%
- {\begingroup
- \edef\currentARABTEXalternative{#1}%
- \getparameters[\??ARABTEX\currentARABTEXalternative][#2]%
- \ifnum1<0\ARABTEXparameter\c!n\relax
- \startcolumns
- \else
- \ARABTEXparameter\c!before
- \fi
- \initializeARABTEXinternals
- \initializeARABTEXend
- \arabtext
- \initializeARABTEXalternative}
-
-\def\initializeARABTEXalternative
- {\ARABTEXparameter\c!style}
-
-\def\initializeARABTEXend% \CONTEXT\ does use \end quite differently
- {\long\def\end##1%
- {\endarabtext
- \ifnum1<0\ARABTEXparameter\c!n\relax
- \stopcolumns
- \else
- \ARABTEXparameter\c!after
- \fi
- \endgroup}%
- \let\a@l@end\end
- \letvalue{\e!stop\currentARABTEXalternative}=\end
- \long\def\end##1%
- {\endarabtext
- \endgroup
- \if@ignore\global\@ignorefalse\expandafter\ignorespaces\fi}}
-
-%D Arabic verbatim.
-
-\def\typearab{\a@@verb}
-
-%D Some \LATEX\ macros.
-
-\def \makeatletter{\unprotect}
-\def \makeatother {\protect}
-\def \typeout {\writestatus{arabtex}}
-
-%D We have to save some macros.
-
-\let\ARABTEXversion=\empty
-
-\def\startloadingARABTEX% ugly hacks
- {\catcode`!=12
- \catcode`?=12
- \pushmacro\output \let \output \scratchtoks
- \pushmacro\LaTeX \let \LaTeX \undefined
- \pushmacro\CJK \let \CJK \undefined
-% \pushmacro\peek@token \let \peek@token \undefined
-% \pushmacro\edmacloaded \let \edmacloaded \undefined
- \pushmacro\year \let \year \normalyear
- \pushmacro\month \let \month \normalmonth
- \pushmacro\day \let \day \normalday
- \pushmacro\input \def \input ##1 {\normalinput ##1 }
- \pushmacro\linewidth
- \pushmacro\datum \def\datum {\toks0}
- \pushmacro\version \def\version {\toks2}
- \pushmacro\theversion \let\theversion \ARABTEXversion
- \pushmacro\emphasize
- \pushmacro\cap}
-
-\def\stoploadingARABTEX
- {\catcode`!=11
- \catcode`?=11
- \popmacro\cap
- \popmacro\emphasize
- \popmacro\theversion
- \popmacro\version
- \popmacro\datum
- \popmacro\linewidth
- \popmacro\input
- \popmacro\day
- \popmacro\month
- \popmacro\year
-% \popmacro\edmacloaded
-% \popmacro\peek@token
- \popmacro\CJK
- \popmacro\LaTeX
- \popmacro\output}
-
-%D We save some macros:
-
-\startloadingARABTEX
-
-%D When loading \ARABTEX\ we have to set back the~! and~?.
-
-\input arabtex.sty
-
-%D Since \ARABTEX\ has its own \type {\cap}, we save the
-%D new meaning. We also redefine some \PLAIN\ macros, which
-%D happen to have a different meaning in \LATEX.
-
-\let\ARABTEXversion\theversion
-\let\ARABTEXcap \cap
-
-\appendtoks
- \let\cap\ARABTEXcap
-\to \everyARABTEXpreset
-
-\def\ARABTEXsh@ft#1%
- {\dimen@.00#1ex
- \multiply\dimen@\slantperpoint
- \kern-.0156\dimen@}
-
-\appendtoks
- \let\sh@ft\ARABTEXsh@ft
-\to \everyARABTEXpreset
-
-\def\ARABTEXd#1%
- {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{10}%
- .\hidewidth}}}
-
-\def\ARABTEXb#1%
- {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}%
- \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}}}
-
-\appendtoks
- \let\b\ARABTEXb
- \let\d\ARABTEXd
-\to \everyARABTEXpreset
-
-\def \ARABTEXbreakA {\hfill\break}
-\def \ARABTEXbreakB {\break}
-\edef\ARABTEXbar {\string|}
-\def \ARABTEXcomma {\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi}
-
-\appendtoks
- \let\\=\ARABTEXbreakA
- \let\|=\ARABTEXbreakB
- \let |=\ARABTEXbar
- \let\,=\ARABTEXcomma
-\to \everyARABTEXpreset
-
-\let\ARABTEXprotect\relax
-
-\appendtoks
- \let\protect\ARABTEXprotect
-\to \everyARABTEXpreset
-
-%D Now we can pop the saved macros.
-
-\stoploadingARABTEX
-
-%D Ah, we have to get rid of some \type {\protect} stuff but
-%D to permit testing we add it in the \CONTEXT\ way.
-
-% \bgroup
-% \catcode`\<=\@other
-% \unexpanded\gdef\a@ins
-% {\ifmmode
-% \expandafter<%
-% \else
-% \dontleavehmode \bgroup
-% \arab@codes \set@arabfont \@waslafalse \@wasfalse
-% \expandafter\arab@insert
-% \fi}
-% \unexpanded\gdef\<{\a@ins}
-% \catcode`\<=\active
-% \global\let<=\a@ins
-% \egroup
-%
-% cleaner:
-
-\defineactivecharacter < {\a@ins} \unexpanded\gdef\<{\a@ins}%
-
-\def\normal@a@ins
- {\dontleavehmode % context prefers this instead of \leavevmode
- \bgroup
- \arab@codes
- \set@arabfont
- \@waslafalse
- \@wasfalse
- \arab@insert}
-
-\unexpanded\gdef\a@ins
- {\mathortext<\normal@a@ins}
-
-%D We also need to register a few macros:
-
-\all@wcmd\initializeARABTEXalternative % no argument, internal command
-\all@wcmd\tx % no argument, small font
-\all@wcmd\txx % no argument, smaller font
-
-%D We also hook it into the presetter.
-
-\appendtoks
- \let\normaltx \tx \def\tx {\normaltx \setarabicfont\fontstylesuffix}%
- \let\normaltxx\txx\def\txx{\normaltxx\setarabicfont\fontstylesuffix}%
-\to \everyARABTEXpreset
-
-%D The main definitions are:
-
-\definefontsynonym [ArabicRegular] [xnsh14]
-\definefontsynonym [ArabicBold] [xnsh14bf]
-
-\defineARABTEXalternative
- [arabic]
- [\c!inner=\setarab,
- \c!style=\setarabicfont\fontstylesuffix]
-
-\defineARABTEXalternative
- [farsi]
- [\c!inner=\setfarsi,
- \c!style=\setarabicfont\fontstylesuffix]
-
-\defineARABTEXalternative
- [urdu]
- [\c!inner=\seturdu,
- \c!style=\setarabicfont\fontstylesuffix]
-
-\defineARABTEXalternative
- [maghribi]
- [\c!inner=\setmaghribi,
- \c!style=\setarabicfont\fontstylesuffix]
-
-%D Apart from such definitions, one can adapt the settings
-%D using \type {\setupARABTEXalternative}.
-%D
-%D A few years ago at the Holland Festivities, I attended {\em
-%D The Cave}, one of the most impressive combinations of music
-%D and video I know. This composition of Steve Reich (music)
-%D and .. (video) concentrates on the common grounds of arabs
-%D and jews: their ancestor Abram. Listening to the \CDROM's
-%D of {\em The Cave}, provided me the right ambiance for
-%D filling in the details of this module. In {\em The Cave},
-%D interviews, music, and |<|believe it or not|>| rhythmic
-%D typography are the cornerstones. Remembering those big
-%D screens, it strikes me that like music, \TEX\ too is a
-%D perfect instrument to cross cultural and linguistic
-%D borders. So, let's load Hebrew support as well:
-
-\unexpanded\def\sethebrewfont#1%
- {\setx@skels
- \newfonttrue
- \definedfont[Hebrew#1 sa \ARABTEXparameter\s!rscale]}
-
-% \let \setheb \sethebrew
-
-\unexpanded\def\pheb {\sethebrewfont\s!Regular}
-\unexpanded\def\phebbf{\sethebrewfont\s!Bold}
-
-% \startloadingARABTEX
-
-% \ReadFile{hebtex.sty}
-% \ReadFile{apatch.sty}
-% \ReadFile{hepatch.sty}
-
-% \stoploadingARABTEX
-
-\definefontsynonym [HebrewRegular] [hclassic]
-\definefontsynonym [HebrewBold] [hcaption]
-
-\defineARABTEXalternative
- [hebrew]
- [\c!inner=\sethebrew,
- \c!style=\sethebrewfont\fontstylesuffix]
-
-%D Now we're done:
-
-\protect \endinput
-
-% everyoutput : \charsubdefmax \arab@charsubdefmax
-
-% \defineconversion [abjad] [\abj@d]
-%
-% voetnoten verbatim lijsten indexen tabellen uitlijnen
-%
-% \v!hoofdstuk=al-fa.slu
-% \v!inhoud=al-mu.htawayAtu
-% \v!figuren=qA'imaTu al-.suwaru
-% \v!tabellen=qA'imaTu al-^gadAwilu
-% \v!grafieken=qA'imaTu al-rusUmu
-% \v!index=al-fihrisu
-% \v!bijlage=al-mul.haqu
-
-% \usemodule[arabtex]
-%
-% \usetypescript[postscript] \switchtotypeface[postscript]
-%
-% \setarab \novocalize
-%
-% \starttext
-%
-% \placecontent
-%
-% \section{\<mu.hammad>} % short arabic use \< .. >
-% \section{\<mu.hammad>} % short arabic use \< .. >
-%
-% \startarabic
-% mu.hammad 'i_d q"aAm zay"d" + i_d yaqUm zyd + A_d zyd q"aAm
-%
-% mu.hammad 'i_d q"aAm zay"d" + i_d yaqUm zyd + A_d zyd q"aAm
-% \stoparabic
-%
-% \section{\<al-maq.sad>}
-%
-% \startarabic
-% mu.hammad 'i_d q"aAm zay"d" + i_d yaqUm zyd + A_d zyd q"aAm
-% \stoparabic
-%
-% \stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-chart.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-chart.mkii
deleted file mode 100644
index 8a5f480ee7f..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-chart.mkii
+++ /dev/null
@@ -1,1315 +0,0 @@
-%D \module
-%D [ file=m-chart,
-%D version=1998.10.10,
-%D title=\CONTEXT\ Modules,
-%D subtitle=Flow Charts,
-%D author={Hans Hagen \& Ton Otten},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% todo: \localpushmacro/\localpopmacro (dohandleflowchart etc)
-% todo: make mkiv variant
-% todo: use dimexpr/numspr
-
-% will be redone with layers and dimexpr or even better, by just using
-% textext .. a nice example of old code
-
-%D This is an experimental module. Pieces of code will be moved
-%D to other modules. More features are possible but will be
-%D interfaces later.
-%D
-%D When finished this module will be documented. The main macro
-%D is still a rather big one and there is some redundant and
-%D slow code that needs a clean up.
-
-% arrow, dash
-% crossing
-% \goto -> \normalgoto
-% class -> class:name (ref prefix)
-% c, automatisch geen overlap zoeken
-% eind eerder chart connecties
-% relateren aan korps
-% check op bestaan naam, bestaan shape
-% auto als extern figuur
-% subchart
-% pijlen
-% focus
-% ook nog \MPmessage
-% areapath -> krappe vlak
-% clippath -> gehele vlak
-%
-% offset : clip offset
-% breedte : breedte cel
-% hoogte : hoogte cel
-% dx : halve afstand in breedte (grid breedte = breedte + 2dx)
-% dy : halve afstand in hoogte (grid hoogte = hoogte + 2dy)
-% x : x offset (clipping)
-% y : y offset (clipping)
-% nx : minimaal aantal cellen horizontaal
-% ny : minimaal aantal cellen vertikaal
-%
-% shape none en geen equivalent maken
-%
-% kaderkleur achtergrondkleur
-% lijnkleur lijndikte
-% focus focuskaderkleur focusachtergrondkleur
-% richting
-%
-% focus koppelen aan kleur
-
-\unprotect
-
-\definesorting [flowchart] [flowcharts] [\v!none] % no access
-\setupsorting [flowchart] [\c!state=\v!stop] % off by default
-
-\def\@FLOW@{@FLOW@}
-\def\@FLOC@{@FLOC@}
-\def\@FLOX@{@FLOX@}
-
-\def\@@FLOW{@@FLOW}
-\def\@@FLOL{@@FLOL}
-\def\@@FLOS{@@FLOS}
-\def\@@FLOF{@@FLOF}
-\def\@@FLOT{@@FLOT}
-\def\@@FLOX{@@FLOX}
-
-\def\@@MPx {@@MPx}
-\def\@@MPy {@@MPy}
-
-\def\FLOWbufferprefix{flw-}
-
-\def\processFLOWbuffer#1{\getbuffer[\FLOWbufferprefix#1]}
-\def\typeFLOWbuffer #1{\typebuffer[\FLOWbufferprefix#1]}
-
-\def\setFLOWname#1#2% funny hack that makes sure that we get
- {\bgroup % names that are acceptable for METAPOST
- \lccode`0=`a\lccode`1=`b\lccode`2=`c\lccode`3=`d\lccode`4=`e%
- \lccode`5=`f\lccode`6=`g\lccode`7=`h\lccode`8=`i\lccode`9=`j%
- \lccode` =`\_\lccode`-=`\_\lccode`_=`\_%
- \lowercase{\gdef#1{#2}}%
- \egroup}
-
-% een gobble als default is sneller, en dan alleen setten als
-% nodig
-
-\def\resetFLOWcell
- {% variables
- \global\let\FLOWname \empty
- \global\let\FLOWalign \empty
- \global\let\FLOWshape \empty
- \global\let\FLOWlocation \empty
- \global\let\FLOWtext \empty
- \global\let\FLOWhelp \empty
- \global\let\FLOWdestination\empty
- \global\let\FLOWoverlay \empty
- \global\let\FLOWfocus \empty
- \global\let\tFLOWlabel \empty
- \global\let\bFLOWlabel \empty
- \global\let\lFLOWlabel \empty
- \global\let\rFLOWlabel \empty
- \global\let\bcFLOWlabel \empty
- \global\let\tcFLOWlabel \empty
- \global\let\lcFLOWlabel \empty
- \global\let\rcFLOWlabel \empty
- \global\let\tFLOWexit \empty
- \global\let\bFLOWexit \empty
- \global\let\lFLOWexit \empty
- \global\let\rFLOWexit \empty
- % commands
- \let\name \doFLOWname
- \let\shape \doFLOWshape
- \let\destination\doFLOWdestination
- \let\location \doFLOWlocation
- \let\focus \doFLOWfocus
- \let\overlay \doFLOWoverlay
- \let\figure \doFLOWfigure
- \let\text \doFLOWtext
- \let\comment \doFLOWcomment
- \let\label \doFLOWlabel
- \let\help \doFLOWhelp
- \let\connection \doFLOWconnection
- \let\exit \doFLOWexit
- % convenience commands
- \let\locate \doFLOWlocate
- \let\connect \doFLOWconnect}
-
-\let\FLOWcell \s!unknown
-\let\FLOWshape \s!unknown
-\let\FLOWdestination\s!unknown
-\let\FLOWfocus \s!unknown
-\let\FLOWoverlay \empty
-\let\FLOWtext \empty
-
-\def\doFLOWname#1%
- {\def\FLOWcell{#1}\setFLOWname\FLOWname{name_#1}\ignorespaces}
-
-\def\doFLOWshape#1%
- {\gdef\FLOWshape{#1}\ignorespaces}
-
-\def\doFLOWdestination#1%
- {\gdef\FLOWdestination{#1}\ignorespaces}
-
-\def\doFLOWlocation#1%
- {\setFLOWlocation#1\end\ignorespaces}
-
-\def\doFLOWfocus#1%
- {\gdef\FLOWfocus{#1}\ignorespaces}
-
-\def\doFLOWoverlay#1%
- {\gdef\FLOWoverlay{#1}\ignorespaces}
-
-\def\doFLOWfigure#1%
- {\defineoverlay[\s!dummy][\overlayfigure{#1}]%
- \overlay\s!dummy}
-
-\def\doFLOWtext
- {\dosingleempty\dodoFLOWtext}
-
-\def\dodoFLOWtext[#1]% % #2%
- {\gdef\FLOWalign{#1}\gdef\FLOWtext}% {#2}}
-
-\def\doFLOWcomment[#1]#2%
- {\ignorespaces\dogobblesingleempty}
-
-\def\doFLOWlabel[#1]#2% wordt dit gebruikt ?
- {\setgvalue{#1FLOWlabel}{#2}\ignorespaces}
-
-\def\doFLOWhelp#1%
- {\gdef\FLOWhelp{#1}\ignorespaces}
-
-\def\doFLOWconnection
- {\dodoubleempty\dodoFLOWconnection}
-
-\def\dodoFLOWconnection[#1][#2]#3%
- {\ignorespaces}
-
-\def\doFLOWconnect
- {\connection}
-
-\def\doFLOWlocate
- {\location}
-
-\def\doFLOWexit[#1]#2%
- {\setgvalue{#1FLOWexit}{#2}\ignorespaces}
-
-\def\startFLOWchart
- {\bgroup
- \let\stopFLOWchart\egroup
- \obeylines % lelijk, buffers nog eens fatsoeneren
- \dodoubleempty\dostartFLOWchart}
-
-\def\dostartFLOWchart[#1][#2]%
- {\preparenextFLOWchart{#1}{#2}%
- \dostartbuffer[\FLOWbufferprefix\nofFLOWcharts][startFLOWchart][stopFLOWchart]}
-
-\def\defineFLOWchart%
- {\dodoubleempty\dodefineFLOWchart}
-
-\long\def\dodefineFLOWchart[#1][#2]#3%
- {\preparenextFLOWchart{#1}{#2}%
- \setbuffer[\FLOWbufferprefix\nofFLOWcharts]#3\endbuffer}
-
-\def\preparenextFLOWchart#1#2%
- {\doglobal\increment\nofFLOWcharts
- \flowchart{#1}%
- \setxvalue{\@FLOW@-#1}{\noexpand\dohandleflowchart[\nofFLOWcharts][#2]}}
-
-\def\setupFLOWcharts{\dodoubleargument\getparameters[\@@FLOW]}
-\def\setupFLOWlines {\dodoubleargument\getparameters[\@@FLOL]}
-\def\setupFLOWshapes{\dodoubleargument\getparameters[\@@FLOS]}
-\def\setupFLOWfocus {\dodoubleargument\getparameters[\@@FLOF]}
-\def\setupFLOWsets {\dodoubleargument\getparameters[\@@FLOX]}
-
-\setupFLOWcharts
- [\c!option=,
- \c!bodyfont=,
- \c!dot=, % private option
- \c!width=12\bodyfontsize,
- \c!height=7\bodyfontsize,
- \c!maxwidth=,
- \c!maxheight=,
- \c!offset=\v!standard, % == auto offset
- \c!dx=2\bodyfontsize,
- \c!dy=2\bodyfontsize,
- \c!nx=0, % 1,
- \c!ny=0, % 1,
- \c!x=1,
- \c!y=1,
- \c!autofocus=,
- \c!focus=,
- \c!background=, % \v!color,
- \c!backgroundcolor=\s!white,
- \c!rulethickness=\linewidth,
- \c!frame=\v!off,
- \c!framecolor=]
-
-\setupFLOWlines
- [\c!corner=\v!round,
- \c!arrow=\v!yes,
- \c!dash=\v!no,
- \c!radius=.375\bodyfontsize, % 2.5\c!rulethickness
- \c!color=FLOWlinecolor,
- \c!rulethickness=.15\bodyfontsize, % 2pt,
- \c!offset=\v!none]
-
-\setupFLOWshapes
- [\c!default=action,
- \c!framecolor=FLOWframecolor,
- \c!background=\v!color,
- \c!backgroundcolor=FLOWbackgroundcolor,
- \c!backgroundscreen=\@@rsscreen,
- \c!rulethickness=.15\bodyfontsize, % 2pt,
- \c!offset=.5\bodyfontsize]
-
-\setupFLOWfocus
- [\c!framecolor=FLOWfocuscolor,
- \c!background=\@@FLOSbackground,
- \c!backgroundcolor=\@@FLOSbackgroundcolor,
- \c!backgroundscreen=\@@FLOSbackgroundscreen,
- \c!rulethickness=\@@FLOSrulethickness,
- \c!offset=\@@FLOSoffset]
-
-\definecolor [FLOWfocuscolor] [s=.2]
-\definecolor [FLOWlinecolor] [s=.5]
-\definecolor [FLOWframecolor] [s=.7]
-\definecolor [FLOWbackgroundcolor] [s=.9]
-
-\newcounter\includeFLOWx
-\newcounter\includeFLOWy
-
-\def\includeFLOWchart
- {\dodoubleempty\doincludeFLOWchart}
-
-\def\doincludeFLOWchart[#1][#2]%
- {\pushmacro\includeFLOWx
- \pushmacro\includeFLOWy
- \getparameters[FLOWi][x=1,y=1,#2]%
- \increment(\includeFLOWx,0\FLOWix)\decrement\includeFLOWx
- \increment(\includeFLOWy,0\FLOWiy)\decrement\includeFLOWy
- \def\dodoincludeFLOWchart##1%
- {\doifdefined{\@FLOW@-##1}
- {\globalpushmacro\dohandleflowchart % was local
- \gdef\dohandleflowchart[####1][####2]%
- {\globalpopmacro\dohandleflowchart % was local
- \resetFLOWlocation
- \processFLOWbuffer{####1}}%
- \getvalue{\@FLOW@-##1}}}%
- \processcommalist[#1]\dodoincludeFLOWchart
- \popmacro\includeFLOWx
- \popmacro\includeFLOWy}
-
-\def\resetFLOWlocation
- {\globallet\lastFLOWx\!!zerocount
- \globallet\lastFLOWy\!!zerocount}
-
-\def\dosetFLOWlocation[#1#2]#3#4%
- {\processaction
- [#1#2]
- [ +=>\scratchcounter\numexpr#4+ 1+#3\relax,
- -=>\scratchcounter\numexpr#4- 1+#3\relax,
- +#2=>\scratchcounter\numexpr#4+#2+#3\relax,
- -#2=>\scratchcounter\numexpr#4-#2+#3\relax,
- \s!default=>\scratchcounter\numexpr#4 +#3\relax,
- \s!unknown=>\scratchcounter\numexpr0#1#2+#3\relax]%
- \xdef#4{\the\scratchcounter}}
-
-\def\setFLOWlocation#1,#2\end
- {\dosetFLOWlocation[#1\empty]\includeFLOWx\lastFLOWx
- \dosetFLOWlocation[#2\empty]\includeFLOWy\lastFLOWy
- \xdef\FLOWlocation{\lastFLOWx,\lastFLOWy}}
-
-\def\FLOWshapes
- {node, action, procedure, product, decision, archive,
- loop, wait, subprocedure, singledocument, multidocument,
- sub procedure, single document, multi document, up, down,
- left, right}
-
-\def\FLOWlines
- {up, down, left, right}
-
-\def\FLOWsetconnect#1%
- {\donefalse
- \let\cFLOWfrom\empty
- \let\cFLOWto\empty
- \let\zFLOWfrom\!!zerocount
- \let\zFLOWto\!!zerocount
- \handletokens#1\with\doFLOWsetconnect
- \ifx\cFLOWto\empty\let\cFLOWfrom\empty\fi}
-
-\def\doFLOWsetconnect#1%
- {\ifx #1p%
- \ifdone\def\zFLOWto{+1}\else\def\zFLOWfrom{+1}\fi
- \else\ifx#1+%
- \ifdone\def\zFLOWto{+1}\else\def\zFLOWfrom{+1}\fi
- \else\ifx#1n%
- \ifdone\def\zFLOWto{-1}\else\def\zFLOWfrom{-1}\fi
- \else\ifx#1-%
- \ifdone\def\zFLOWto{-1}\else\def\zFLOWfrom{-1}\fi
- \else\ifdone
- \edef\cFLOWto{\FLOWconnector#1}%
- \else
- \edef\cFLOWfrom{\FLOWconnector#1}%
- \donetrue
- \fi\fi\fi\fi\fi}
-
-\def\FLOWconnector#1%
- {\if#1bbottom\else\if#1ttop\else\if#1lleft\else\if#1rright\fi\fi\fi\fi}
-
-\newif\ifFLOWscaling \FLOWscalingtrue
-
-\def\@@FLOW@@offset{\@@FLOWoffset}
-
-\def\getFLOWchart
- {\dodoubleempty\dogetFLOWchart}
-
-\def\dogetFLOWchart[#1][#2]%
- {\doifundefinedelse{\@FLOW@-#1}
- {\writestatus{FLOW}{unknown chart #1}%
- \framed
- [\c!width=12\bodyfontsize,\c!height=8\bodyfontsize]
- {\tttf [chart #1]}}
- {\dodogetFLOWchart[#1][#2]}}
-
-\def\dodogetFLOWchart[#1][#2]% to be split a bit more
- {\vbox\bgroup
- \insidefloattrue
- \forgetall
- \dontcomplain
- % \offinterlineskip % we now explicitly use \nointerlineskip later on
- \def\dohandleflowchart[##1][##2]%
- {\def\currentFLOWnumber{##1}%
- \getparameters[\@@FLOW][##2]}%
- \getvalue{\@FLOW@-#1}%
- \getparameters[\@@FLOW][#2]% dubbelop ?
- \doifsomething{\@@FLOWautofocus}
- {\checkFLOWautofocus}%
- %\message{AUTOSHAPE 3: (\@@FLOWx,\@@FLOWy)->(\@@FLOWnx,\@@FLOWny)}\wait
- \global\let\FLOWwidth \@@FLOWnx
- \global\let\FLOWheight\@@FLOWny
- \let\startFLOWcell\startFLOWcellA
- \resetFLOWlocation
- \processFLOWbuffer\currentFLOWnumber
- \ifcase\@@FLOWnx\relax \let\@@FLOWnx\FLOWwidth \fi
- \ifcase\@@FLOWny\relax \let\@@FLOWny\FLOWheight \fi
- \doifnothing{\@@FLOWmaxwidth\@@FLOWmaxheight}{\FLOWscalingfalse}%
- \ifFLOWscaling
- \doifnothing{\@@FLOWmaxwidth }{\let\@@FLOWmaxwidth \maxdimen}%
- \doifnothing{\@@FLOWmaxheight}{\let\@@FLOWmaxheight\maxdimen}%
- \scratchcounter\bodyfontpoints
- \doloop % NOG FONTSWITCH OM EX EN EM TE LATEN WERKEN
- {\ifnum\scratchcounter>1 % NU DIMENSIONS IN TERMS OF BODYFONTSIZE
- \bodyfontsize=\the\scratchcounter pt
- \dimen0=\@@FLOWmaxwidth
- \dimen2=\@@FLOWwidth
- \dimen4=\@@FLOWdx
- \advance\dimen2 2\dimen4
- \dimen2=\@@FLOWnx\dimen2
- \advance\dimen2 2\dimen4
- \ifdim\dimen2>\dimen0
- \advance\scratchcounter \minusone
- \else
- \dimen0=\@@FLOWmaxheight
- \dimen2=\@@FLOWheight
- \dimen4=\@@FLOWdy
- \advance\dimen2 2\dimen4
- \dimen2=\@@FLOWny\dimen2
- \advance\dimen2 2\dimen4
- \ifdim\dimen2>\dimen0
- \advance\scratchcounter \minusone
- \else
- \exitloop
- \fi
- \fi
- \else
- \exitloop
- \fi}%
- \expanded{\switchtobodyfont[\the\scratchcounter pt]}%
- \forgetall
- % \offinterlineskip % needed ?
- \else\ifx\@@FLOWbodyfont\empty\else
- \expanded{\switchtobodyfont[\@@FLOWbodyfont]}% \expanded ?
- \fi\fi
- \global\let\FLOWcells\empty
- \dimen0=\@@FLOWwidth
- \edef\FLOWshapewidth{\the\dimen0}%
- \dimen2=\@@FLOWdx
- \advance\dimen0 2\dimen2
- \edef\FLOWgridwidth{\the\dimen0}%
- \dimen0=\@@FLOWheight
- \edef\FLOWshapeheight{\the\dimen0}%
- \dimen2=\@@FLOWdy
- \advance\dimen0 2\dimen2
- \edef\FLOWgridheight{\the\dimen0}%
- \scratchdimen=\@@FLOSrulethickness
- \edef\@@FLOSrulethickness{\the\scratchdimen}%
- \scratchdimen=\@@FLOFrulethickness
- \edef\@@FLOFrulethickness{\the\scratchdimen}%
- \scratchdimen=\@@FLOLrulethickness
- \edef\@@FLOLrulethickness{\the\scratchdimen}%
- \ifdim\@@FLOLradius<2.5\scratchdimen
- \scratchdimen=2.5\scratchdimen
- \edef\@@FLOLradius{\the\scratchdimen}%
- \ifdim\@@FLOLradius>\@@FLOWdx
- \scratchdimen=\@@FLOWdx
- \edef\@@FLOLradius{\the\scratchdimen}%
- \fi
- \ifdim\@@FLOLradius>\@@FLOWdy
- \scratchdimen=\@@FLOWdy
- \edef\@@FLOLradius{\the\scratchdimen}%
- \fi
- \else
- \scratchdimen=\@@FLOLradius
- \edef\@@FLOLradius{\the\scratchdimen}%
- \fi
- \processaction % magic 2.5
- [\@@FLOWoffset]
- [ \v!none=>\scratchdimen=-2.5\scratchdimen,
- \v!overlay=>\scratchdimen=-2.5\scratchdimen,
- \v!standard=>\scratchdimen=\scratchdimen,
- \s!unknown=>\scratchdimen=\@@FLOWoffset,
- \s!default=>\scratchdimen=-2.5\scratchdimen]%
- \edef\@@FLOW@@offset{\the\scratchdimen}%
- \forgetall
- \offinterlineskip
- \resetMPdrawing
- \doglobal\newcounter\FLOWcomment
- \startMPdrawing
- if unknown context_char : input mp-char.mpii ; fi ;
- grid_width := \FLOWgridwidth ;
- grid_height := \FLOWgridheight ;
- shape_width := \FLOWshapewidth ;
- shape_height := \FLOWshapeheight ;
- connection_line_width := \@@FLOLrulethickness ;
- connection_smooth_size := \@@FLOLradius ;
- connection_arrow_size := \@@FLOLradius ;
- connection_dash_size := \@@FLOLradius ;
- currentpicture := nullpicture ;
- begin_chart(0,\FLOWwidth,\FLOWheight);
- reverse_y := true ;
- chart_offset := \@@FLOW@@offset ;
- \stopMPdrawing
- \doifelsenothing\@@FLOWbackgroundcolor
- {\startMPdrawing
- chart_background_color := white ;
- \stopMPdrawing}
- {\startMPdrawing
- chart_background_color := \MPcolor{\@@FLOWbackgroundcolor} ;
- \stopMPdrawing}%
- \doif\@@FLOWoption\v!test
- {\startMPdrawing
- show_con_points := true ;
- show_mid_points := true ;
- show_all_points := true ;
- \stopMPdrawing}%
- \processaction % private
- [\@@FLOWdot]
- [ \v!yes=>\startMPdrawing
- show_con_points := true ;
- show_mid_points := true ;
- show_all_points := true ;
- \stopMPdrawing,
- \s!unknown=>\startMPdrawing
- show_\@@FLOWdot_points := true ;
- \stopMPdrawing]%
-\doglobal\newcounter\FLOWcomment
- \let\startFLOWcell\startFLOWcellB
- \resetFLOWlocation
- \processFLOWbuffer\currentFLOWnumber
-\doglobal\newcounter\FLOWcomment
- \let\startFLOWcell\startFLOWcellC
- \resetFLOWlocation
- \processFLOWbuffer\currentFLOWnumber
- \startMPdrawing
- clip_chart(\@@FLOWx,\@@FLOWy,\@@FLOWnx,\@@FLOWny) ;
- end_chart ;
- \stopMPdrawing
- \MPdrawingdonetrue
- \setbox0\hbox
- {\MPstaticgraphictrue
- \MPshiftdrawingfalse
- \getMPdrawing}%
- \def\MPmessage##1%
- {\writestatus{MP charts}{##1}}%
- \def\MPposition##1##2##3%
- {\setvalue{\@@MPx##1}{##2}\setvalue{\@@MPy##1}{##3}}%
- \def\MPclippath##1##2##3##4%
- {\def\clipMPllx{##1bp}\def\clipMPlly{##2bp}%
- \def\clipMPurx{##3bp}\def\clipMPury{##4bp}}%
- \def\MPareapath##1##2##3##4%
- {\def\areaMPllx{##1bp}\def\areaMPlly{##2bp}%
- \def\areaMPurx{##3bp}\def\areaMPury{##4bp}}%
- \getMPdata
- \doglobal\newcounter\FLOWcomment
- \let\startFLOWcell\startFLOWcellD
- \setbox2\vbox to \ht0
- {\forgetall % \offinterlineskip
- \resetFLOWlocation
- \processFLOWbuffer\currentFLOWnumber\vss}%
- \setbox2\hbox
- {\hskip\@@FLOW@@offset\lower\@@FLOW@@offset\box2}%
- \wd2\wd0\ht2\ht0\dp2\dp0
- \let\startFLOWcell\startFLOWcellE
- \setbox4\vbox to \ht0
- {\forgetall % \offinterlineskip
- \resetFLOWlocation
- \processFLOWbuffer\currentFLOWnumber\vss}%
- \setbox4\hbox
- {\hskip\@@FLOW@@offset\lower\@@FLOW@@offset\box4}%
- \wd4\wd0\ht4\ht0\dp4\dp0
- \doifelse\@@FLOWoption\v!test
- {\setbox6\vbox
- {\forgetall
- \vskip\@@FLOW@@offset
- \hskip\@@FLOW@@offset
- \basegrid
- [\c!x=\@@FLOWx,\c!nx=\@@FLOWnx,\c!dx=\withoutpt\FLOWgridwidth,
- \c!y=\@@FLOWy,\c!ny=\@@FLOWny,\c!dy=\withoutpt\FLOWgridheight,
- \c!xstep=1,\c!ystep=1,
- \c!unit=pt,\c!location=\v!middle]}%
- \wd6\wd0\ht6\ht0\dp6\dp0
- \setbox8\vbox
- {\forgetall
- \offinterlineskip
- \vskip\@@FLOW@@offset
- \dostepwiserecurse\@@FLOWy\@@FLOWny\plusone
- {\vbox to \FLOWgridheight
- {\vfill
- \hskip\@@FLOW@@offset
- \hbox
- {\dostepwiserecurse\@@FLOWx\@@FLOWnx\plusone
- {\hbox to \FLOWgridwidth
- {\hfill
- \framed
- [\c!framecolor=red,
- \c!width=\FLOWshapewidth,
- \c!height=\FLOWshapeheight]
- {}%
- \hfill}}}
- \vfill}}}%
- \wd8\wd0\ht8\ht0\dp8\dp0
- \framed
- [\c!offset=\v!overlay,\c!framecolor=green]
- {\hbox{\box4\hskip-\wd0\box0\hskip-\wd2\box2\hskip-\wd6\box6\hskip-\wd8\box8}}}
- {\framed
- [\c!offset=\v!overlay,
- \c!frame=\@@FLOWframe,
- \c!rulethickness=\@@FLOWrulethickness,
- \c!framecolor=\@@FLOWframecolor,
- \c!background=\@@FLOWbackground,
- \c!backgroundcolor=\@@FLOWbackgroundcolor]
- {\hbox{\box4\hskip-\wd0\box0\hskip-\wd2\box2}}}%
- %\message{[\FLOWcells]}\wait
- \egroup}
-
-% Pass A
-
-\long\def\startFLOWcellA#1\stopFLOWcell%
- {\resetFLOWcell
- \ignorespaces#1\unskip
- \expandafter\getFLOWlocationA\FLOWlocation\end
- \ignorespaces}
-
-\def\getFLOWlocationA#1,#2\end
- {\ifnum0#1>\FLOWwidth \xdef\FLOWwidth {#1}\fi
- \ifnum0#2>\FLOWheight\xdef\FLOWheight{#2}\fi}
-
-% Pass B
-%
-% beware: the - after \@FLOC@ is needed since name can be
-% empty and we don't want to redefine \@FLOC@ itself by
-% mistake
-
-\long\def\startFLOWcellB#1\stopFLOWcell
- {\resetFLOWcell\ignorespaces#1\unskip
- \setxvalue{\@FLOC@-\FLOWname}{\FLOWlocation}% kost veel cs's
- \ifx\FLOWshape\empty
- \global\let\FLOWshape\@@FLOSdefault
- \fi
- \doifnot\FLOWshape{none} % {\v!none}
- {\ExpandBothAfter\doifinsetelse{\FLOWshape}{\FLOWshapes}
- {\edef\FLOWshapetag{shape_\FLOWshape}% beter \expanded
- \@EA\setFLOWname\@EA\FLOWshapetag\@EA{\FLOWshapetag}}
- {\doifnumberelse\FLOWshape
- {\let\FLOWshapetag\FLOWshape}
- {\let\FLOWshapetag\empty}}%
- \ifx\FLOWshapetag\empty \else
- \ExpandBothAfter\doifinsetelse{\FLOWshape}{\FLOWlines}
- {\chardef\FLOWstate0 }
- {\ExpandBothAfter\doifcommonelse{\FLOWcell,\FLOWfocus}{\@@FLOWfocus}
- {\chardef\FLOWstate1 }
- {\chardef\FLOWstate2 }}%
- \startMPdrawing
- begin_sub_chart ;
- \ifcase\FLOWstate
- shape_line_color := \MPcolor{\@@FLOLcolor} ;
- shape_fill_color := \MPcolor{\@@FLOLcolor} ;
- shape_line_width := \@@FLOLrulethickness ;
- \or
- shape_line_color := \MPcolor{\@@FLOFframecolor} ;
- shape_fill_color := \MPcolor{\@@FLOFbackgroundcolor} ;
- shape_line_width := \@@FLOFrulethickness ;
- \or
- shape_line_color := \MPcolor{\@@FLOSframecolor} ;
- shape_fill_color := \MPcolor{\@@FLOSbackgroundcolor} ;
- shape_line_width := \@@FLOSrulethickness ;
- \fi
- %\ifx\FLOWoverlay\empty
- % peepshape := false ;
- %\else
- % peepshape := true ;
- %\fi
- peepshape := \ifx\FLOWoverlay\empty false \else true \fi ;
- new_shape(\FLOWlocation,\FLOWshapetag) ;
- end_sub_chart ;
- \stopMPdrawing
- \fi}%
- \ignorespaces}
-
-% Pass C
-
-\long\def\startFLOWcellC#1\stopFLOWcell%
- {\resetFLOWcell
-\pushmacro\lastFLOWx
-\pushmacro\lastFLOWy
- \ignorespaces#1\unskip % makes sure that vars are set
-\popmacro\lastFLOWy
-\popmacro\lastFLOWx
- \let\connection\doFLOWconnectionC
- \ignorespaces#1\unskip}
-
-\def\FLOWorigin{0,0}
-
-\def\doFLOWdisplace[#1,#2,#3]% experiment
- {dsp_x := #1 ; dsp_y := #2 ;}
-
-\def\doFLOWconnectionC
- {\dodoubleempty\dodoFLOWconnectionC}
-
-\def\dodoFLOWconnectionC[#1][#2]#3%
- {\doglobal\increment\FLOWcomment
- \setFLOWname\otherFLOWname{name_#3}%
- \doifdefinedelse{\@FLOC@-\FLOWname}
- {\edef\FLOWfrom{\getvalue{\@FLOC@-\FLOWname}}}
- {\let \FLOWfrom \FLOWorigin}%
- \ifx\FLOWfrom\FLOWorigin \else
- \doifdefinedelse{\@FLOC@-\otherFLOWname}
- {\edef\FLOWto {\getvalue{\@FLOC@-\otherFLOWname}}}
- {\let \FLOWto \FLOWorigin}%
- \ifx\FLOWto\FLOWorigin \else
- \FLOWsetconnect{#1}%
- \ifx\cFLOWfrom\empty \else
- \doifelse\@@FLOLcorner\v!round
- {\startMPdrawing smooth := true ; \stopMPdrawing}
- {\startMPdrawing smooth := false ; \stopMPdrawing}%
- \doifelse\@@FLOLdash\v!yes
- {\startMPdrawing dashline := true ; \stopMPdrawing}
- {\startMPdrawing dashline := false ; \stopMPdrawing}%
- \doifelse\@@FLOLarrow\v!yes
- {\startMPdrawing arrowtip := true ; \stopMPdrawing}
- {\startMPdrawing arrowtip := false ; \stopMPdrawing}%
- \doifelse\@@FLOLoffset\v!none
- {\startMPdrawing touchshape := true ; \stopMPdrawing}
- {\startMPdrawing touchshape := false ; \stopMPdrawing}%
-%\doifsomething{#2}
-% {\startMPdrawing
-% \doFLOWdisplace[0#2,0,0]%
-% \stopMPdrawing}%
- \startMPdrawing
-\doFLOWdisplace[0#2,0,0]%
- connection_line_color := \MPcolor{\@@FLOLcolor} ;
- connection_line_width := \@@FLOLrulethickness ;
- connect_\cFLOWfrom_\cFLOWto (\FLOWfrom,\zFLOWfrom) (\FLOWto,\zFLOWto) ;
-\doFLOWdisplace[0,0,0]%
- \stopMPdrawing
- \fi
- \fi
- \fi
- \ignorespaces}
-
-% Pass D
-
-\long\def\startFLOWcellD#1\stopFLOWcell
- {\resetFLOWcell
-\pushmacro\lastFLOWx
-\pushmacro\lastFLOWy
- \ignorespaces#1\unskip % presets vars
-\popmacro\lastFLOWy
-\popmacro\lastFLOWx
- \let\doprocessFLOWcell\doprocessFLOWcellD
- \expandafter\doprocessFLOWcellD\FLOWlocation\end
- \let\connection\doFLOWconnectionD
- \let\comment\doFLOWcommentD
- \ignorespaces#1\unskip\ignorespaces}
-
-\def\doFLOWconnectionD
- {\dodoubleempty\dodoFLOWconnectionD}
-
-\def\dodoFLOWconnectionD[#1][#2]#3%
- {\doglobal\increment\FLOWcomment
- \ignorespaces}
-
-\def\doFLOWcommentD[#1]#2%
- {\bgroup
- \let\FLOW \middlebox
- \let\FLOWb \bottombox
- \let\FLOWbl\bottomleftbox
- \let\FLOWbr\bottomrightbox
- \let\FLOWt \topbox
- \let\FLOWtl\topleftbox
- \let\FLOWtr\toprightbox
- \let\FLOWl \leftbox
- \let\FLOWlt\lefttopbox
- \let\FLOWlb\leftbottombox
- \let\FLOWr \rightbox
- \let\FLOWrt\righttopbox
- \let\FLOWrb\rightbottombox
- \let\FLOWc \middlebox
-%\ifdefined{FLOW#1}%
- \ifcase0\getvalue{\@@MPx\FLOWcomment}\getvalue{\@@MPy\FLOWcomment}\relax
- \else
- \ifdim\getvalue{\@@MPx\FLOWcomment}\s!bp<\areaMPllx\relax\else
- \ifdim\getvalue{\@@MPx\FLOWcomment}\s!bp>\areaMPurx\relax\else
- \ifdim\getvalue{\@@MPy\FLOWcomment}\s!bp<\areaMPlly\relax\else
- \ifdim\getvalue{\@@MPy\FLOWcomment}\s!bp>\areaMPury\relax\else
- \dimen0=\getvalue{\@@MPx\FLOWcomment}\s!bp
- \advance\dimen0 -\@@FLOW@@offset
- \advance\dimen0 -\clipMPllx
- \dimen2=\clipMPury
- \advance\dimen2 -\@@FLOW@@offset
- \advance\dimen2 -\getvalue{\@@MPy\FLOWcomment}\s!bp
- \setbox\scratchbox\hbox{\strut#2}%
- \boxoffset.5\bodyfontsize
- \setbox\scratchbox\hbox{\hskip\dimen0\lower\dimen2\getvalue{FLOW#1}{\box\scratchbox}}%
- \smashbox\scratchbox
- \box\scratchbox
- \boxoffset\zeropoint
- \nointerlineskip % really needed
- \fi
- \fi
- \fi
- \fi
- \fi
-%\fi
- \egroup
- \ignorespaces}
-
-% pass D
-
-\def\dophaseoneFLOWcellX#1#2%
- {\!!counta#1\relax
- \!!countb#2\relax
- \!!countc\@@FLOWx
- \!!countd\@@FLOWy
- \advance\!!countc \@@FLOWnx
- \advance\!!countd \@@FLOWny
- \advance\!!countc \minusone
- \advance\!!countd \minusone
- \ifnum\!!counta<\@@FLOWx\relax \donefalse
- \else\ifnum\!!counta>\!!countc \donefalse
- \else\ifnum\!!countb<\@@FLOWy\relax \donefalse
- \else\ifnum\!!countb>\!!countd \donefalse
- \else \donetrue
- \fi\fi\fi\fi}
-
-\def\dophasetwoFLOWcellX
- {\advance\!!counta -\@@FLOWx
- \advance\!!counta \plusone
- \advance\!!countb -\@@FLOWy
- \advance\!!countb \plusone
- \dimen0=\FLOWgridwidth
- \dimen0=\!!counta\dimen0
- \advance\dimen0 -\FLOWgridwidth
- \dimen4=\FLOWgridwidth
- \advance\dimen4 -\FLOWshapewidth
- \advance\dimen0 .5\dimen4
- \dimen2=\FLOWgridheight
- \dimen2=\!!countb\dimen2
- \dimen4=\FLOWgridheight
- \advance\dimen4 -\FLOWshapeheight
- \advance\dimen2 -.5\dimen4
- \edef\FLOWdx{\the\dimen0}%
- \edef\FLOWdy{\the\dimen2}}
-
-\def\positionFLOWzero% assumes \FLOWdx and \FLOWdy are set
- {\setbox0\hbox{\hskip\FLOWdx\lower\FLOWdy\box0}%
- \smashbox0\box0
- \nointerlineskip} % new, needed since we somehow reset that
-
-\def\doFLOWtlabel#1#2#3%
- {\scratchdimen\ifcase#2 \zeropoint\else\@@FLOWdy\fi
- \setbox0\hbox{\hskip\dimen2\raise\scratchdimen
- \hbox{\raise\dimen4\hbox{#1{\strut#3}}}}%
- \positionFLOWzero}%
-
-\def\doFLOWblabel#1#2#3%
- {\scratchdimen\ifcase#2 \zeropoint\else\@@FLOWdy\fi
- \setbox0\hbox{\hskip\dimen2\raise-\scratchdimen
- \hbox{#1{\strut#3}}}%
- \positionFLOWzero}%
-
-\def\doFLOWllabel#1#2#3%
- {\scratchdimen\ifcase#2 \zeropoint\else\@@FLOWdx\fi
- \setbox0\hbox{\hskip-\scratchdimen\raise\dimen6
- \hbox{#1{\strut#3}}}%
- \positionFLOWzero}%
-
-\def\doFLOWrlabel#1#2#3%
- {\scratchdimen\ifcase#2 \zeropoint\else\@@FLOWdx\fi
- \setbox0\hbox{\hskip\dimen0\hskip\scratchdimen
- \hbox{\raise\dimen6\hbox{#1{\strut#3}}}}%
- \positionFLOWzero}
-
-\def\doprocessFLOWcellD#1,#2\end
- {\dophaseoneFLOWcellX{#1}{#2}%
- \ifdone
- \dophasetwoFLOWcellX
- \doglobal\addtocommalist\FLOWcell\FLOWcells
- \def\FLOWx{#1}%
- \def\FLOWy{#2}%
- \directsetup{flowcell}%
- \setbox0\hbox
- {\ifx\FLOWalign\empty\else
- \setupframed
- [\c!align=\v!normal,\c!bottom=\vfill,\c!top=\vfill]%
- \@EA\processallactionsinset\@EA
- [\FLOWalign]
- [t=>{\setupframed[\c!bottom=\vfill,\c!top=]},
- b=>{\setupframed[\c!bottom=,\c!top=\vfill]},
- l=>{\setupframed[\c!align=\v!right]},
- r=>{\setupframed[\c!align=\v!left]},
- m=>{\setupframed[\c!align=\v!middle]},
- c=>{\setupframed[\c!align=\v!middle]}]%
- \fi
- \doifelse\FLOWshape{none} % {\v!none}
- {\setupframed[\c!offset=\v!overlay]}
- {\setupframed[\c!offset=\@@FLOSoffset]}%
- \framed
- [\c!frame=\v!off,\c!background=flowcell,
- \c!width=\FLOWshapewidth,\c!height=\FLOWshapeheight]
- {\FLOWtext}}%
- \showFLOWhelp0
- \ifx\FLOWdestination\empty\else
- \setbox0\hbox
- {\setupinteraction[\c!color=,\c!contrastcolor=]%
- \gotobox{\box0}[\FLOWdestination]}%
- \fi
- \positionFLOWzero
- \dimen0=\FLOWshapewidth \dimen2=.5\dimen0
- \dimen4=\FLOWshapeheight\dimen6=.5\dimen4
- \boxoffset.5\bodyfontsize
- \doFLOWtlabel \righttopbox0\tFLOWlabel
- \doFLOWblabel\rightbottombox0\bFLOWlabel
- \doFLOWllabel \lefttopbox0\lFLOWlabel
- \doFLOWrlabel \righttopbox0\rFLOWlabel
- \doFLOWtlabel \topbox0\tcFLOWlabel % for me only
- \doFLOWblabel \bottombox0\bcFLOWlabel % for me only
- \doFLOWllabel \leftbox0\lcFLOWlabel % for me only
- \doFLOWrlabel \rightbox0\rcFLOWlabel % for me only
- \ifnum#1=\@@FLOWx\relax \doFLOWllabel \leftbox1\lFLOWexit \fi
- \ifnum#1=\!!countc \doFLOWrlabel \rightbox1\rFLOWexit \fi
- \ifnum#2=\@@FLOWy\relax \doFLOWtlabel \topbox1\tFLOWexit \fi
- \ifnum#2=\!!countd \doFLOWblabel \bottombox1\bFLOWexit \fi
- \boxoffset\zeropoint
- \fi}
-
-% For Willy Egger:
-%
-% \startsetups flowcell
-% \definelayer
-% [flowcell]
-% [width=\FLOWshapewidth,
-% height=\FLOWshapeheight]
-% \setlayerframed
-% [flowcell]
-% [preset=rightbottom,offset=1ex]
-% [frame=off]
-% {\tx(\FLOWx,\FLOWy)}
-% \stopsetups
-
-% Pass E
-
-\long\def\startFLOWcellE#1\stopFLOWcell
- {\resetFLOWcell
- \ignorespaces#1\unskip
- \let\doprocessFLOWcell\doprocessFLOWcellE
- \expandafter\doprocessFLOWcell\FLOWlocation\end}
-
-\def\doprocessFLOWcellE#1,#2\end % redundant
- {\ifx\FLOWoverlay\empty \else
- \dophaseoneFLOWcellX{#1}{#2}%
- \ifdone
- \dophasetwoFLOWcellX
- \edef\FLOWdx{\the\dimen0}%
- \edef\FLOWdy{\the\dimen2}%
- \setbox0\hbox
- {\framed
- [%\c!frame=\v!off,
- \c!background={\@@FLOWbackground,\FLOWoverlay},
- \c!backgroundcolor=\@@FLOSbackgroundcolor,
- \c!width=\FLOWshapewidth,\c!height=\FLOWshapeheight]
- {}}%
- \positionFLOWzero
- \fi
- \fi}
-
-% Pass F
-
-\def\checkFLOWautofocus
- {\def\@@FLOWminx{100}\let\@@FLOWminy\@@FLOWminx
- \def\@@FLOWmaxx {0}\let\@@FLOWmaxy\@@FLOWmaxx
- \def\@@FLOWabsx {0}\let\@@FLOWabsy\@@FLOWabsx
- \let\startFLOWcell\startFLOWcellF
- \resetFLOWlocation
- \processFLOWbuffer\currentFLOWnumber
- %\message{AUTOSHAPE 1: (\@@FLOWminx,\@@FLOWminy)->(\@@FLOWmaxx,\@@FLOWmaxy)}%
- \ifnum\@@FLOWabsx<\@@FLOWmaxx\let\@@FLOWmaxx\@@FLOWabsx\fi
- \ifnum\@@FLOWabsy<\@@FLOWmaxy\let\@@FLOWmaxy\@@FLOWabsy\fi
- %\message{AUTOSHAPE 2: (\@@FLOWminx,\@@FLOWminy)->(\@@FLOWmaxx,\@@FLOWmaxy)}%
- \donetrue
- \ifnum\@@FLOWminx=100 \donefalse\fi
- \ifnum\@@FLOWminy=100 \donefalse\fi
- \ifnum\@@FLOWmaxx=0 \donefalse\fi
- \ifnum\@@FLOWmaxy=0 \donefalse\fi
- \doFLOWcheckF\@@FLOWx\@@FLOWminx\@@FLOWmaxx\@@FLOWnx
- \doFLOWcheckF\@@FLOWy\@@FLOWminy\@@FLOWmaxy\@@FLOWny}
-
-\def\startFLOWcellF#1\stopFLOWcell%
- {\resetFLOWcell
- \ignorespaces#1\unskip
- \expandafter\doFLOWlocationF\FLOWlocation\end}%
-
-\def\doFLOWlocationF#1,#2\end%
- {\ifnum#1>\@@FLOWabsx\def\@@FLOWabsx{#1}\fi
- \ifnum#2>\@@FLOWabsy\def\@@FLOWabsy{#2}\fi
- \ExpandBothAfter\doifinset{\FLOWcell}{\@@FLOWautofocus}
- {\dodoFLOWlocationF{#1}<-\@@FLOWminx
- \dodoFLOWlocationF{#1}>+\@@FLOWmaxx
- \dodoFLOWlocationF{#2}<-\@@FLOWminy
- \dodoFLOWlocationF{#2}>+\@@FLOWmaxy}}
-
-\def\dodoFLOWlocationF#1#2#3#4%
- {\ifnum#1#2#4\relax
- \!!counta=#1\advance\!!counta #31\relax
- \edef#4{\ifnum\!!counta<1 1\else\the\!!counta\fi}%
- \fi}
-
-\def\doFLOWcheckF#1#2#3#4%
- {\ifdone
- \let#1=#2%
- \!!counta=#3%
- \advance\!!counta \plusone\advance\!!counta -#2\relax
- \ifnum\!!counta<1 \!!counta=1 \fi
- \edef#4{\the\!!counta}%
- \else
- \let#1\!!plusone
- \let#4\!!zerocount % no {1}
- \fi}
-
-% \useFLOWchart[name][parent][setting,setting][additional settings]
-% \useFLOWchart[name][parent][additional settings]
-
-\let\currentFLOWchart\empty
-
-\def\useFLOWchart
- {\doquadrupleempty\douseFLOWchart}
-
-\def\douseFLOWchart[#1][#2][#3][#4]% name parent sets mainsettings
- {\iffourthargument
- \setvalue{\@FLOW@--#1}[##1]{\setgetFLOWchart[#2][#3][#4,##1]}%
- \else
- \checkparameters[#3]%
- \ifparameters
- \setvalue{\@FLOW@--#1}[##1]{\setgetFLOWchart[#2][][#3,##1]}%
- \else
- \setvalue{\@FLOW@--#1}[##1]{\setgetFLOWchart[#2][#3][##1]}%
- \fi
- \fi}
-
-\def\setgetFLOWchart[#1][#2][#3]%
- {\def\docommand##1{}% cell line focus ?
- \processcommalist[#2]\docommand
- \getFLOWchart[#1][#3]}
-
-\def\doFLOWchart[#1][#2]%
- {\hbox\bgroup\vbox\bgroup % vmode suppresses spaces
-\def\currentFLOWchart{#1}%
- \doifundefinedelse{\@FLOW@--#1}
- {\getFLOWchart[#1][#2]}
- {\getvalue{\@FLOW@--#1}[#2]}%
- \egroup\egroup}
-
-\def\FLOWchart%
- {\dodoubleempty\doFLOWchart}
-
-%D A hook into the help system.
-
-\def\showFLOWhelp#1%
- {\doifhelpinfo\FLOWhelp
- {\setbox#1=\hbox
- {\setbox\scratchbox=\hbox{\lower\@@FLOWdy\hbox
- {\helpbutton
- [\c!width=\wd0,\c!color=,\c!height=\@@FLOWdy,\c!frame=\v!no]%
- [\FLOWhelp]}}%
- \smashbox\scratchbox
- \setbox#1=\vbox
- {\forgetall\offinterlineskip\box#1\box\scratchbox}%
- \box#1}}}
-
-%D The next section is dedicated to splitting up charts.
-
-\def\getFLOWsize[#1]%
- {\bgroup\let\dodogetFLOWchart\dogetFLOWsize\FLOWchart[#1]\egroup}
-
-\def\dogetFLOWsize[#1][#2]%
- {\setbox\scratchbox=\vbox
- {\globallet\FLOWmaxwidth \!!zerocount
- \globallet\FLOWmaxheight\!!zerocount
- \def\getFLOWlocation##1,##2\end
- {\ifnum0##1>\FLOWmaxwidth \xdef\FLOWmaxwidth {##1}\fi
- \ifnum0##2>\FLOWmaxheight\xdef\FLOWmaxheight{##2}\fi}%
- \resetFLOWcell
- \long\def\startFLOWcell##1\stopFLOWcell
- {{##1\expandafter\getFLOWlocation\FLOWlocation\end}}%
- \def\dohandleflowchart[##1][##2]%
- {\resetFLOWlocation
- \processFLOWbuffer{##1}}%
- \getvalue{\@FLOW@-#1}}}
-
-\def\setupFLOWsplit%
- {\dodoubleargument\getparameters[\@@FLOT]}
-
-\setupFLOWsplit%
- [\c!nx=3,\c!ny=3,
- \c!dx=1,\c!dy=1,
- \c!command=,
- \c!marking=\v!on,
- \c!before=,\c!after=]
-
-\def\FLOWsplitx {1}
-\def\FLOWsplity {1}
-\def\FLOWsplitnx{1}
-\def\FLOWsplitny{1}
-
-\def\FLOWcharts
- {\dodoubleempty\doFLOWcharts}
-
-%D While splitting, the following variables are available:
-%D
-%D \starttyping
-%D \FLOWsplitnx \FLOWsplitny \FLOWsplitx \FLOWsplity
-%D \stoptyping
-
-\def\doFLOWcharts[#1][#2]%
- {\bgroup
- \getFLOWsize[#1]%
- \dodoFLOWcharts\relax
- \global\let\FLOWsplitnx\FLOWsplitx
- \global\let\FLOWsplitny\FLOWsplity
- \dodoFLOWcharts{\dododoFLOWcharts[#1][#2]}%
- \egroup}
-
-\def\dodoFLOWcharts#1%
- {\def\@@FLOTx{1}%
- \global\let\FLOWsplitx\@@FLOTx
- \doloop
- {\def\@@FLOTy{1}%
- \global\let\FLOWsplity\@@FLOTy
- \doloop
- {\bgroup
- \scratchcounter\FLOWmaxwidth
- \advance\scratchcounter -\@@FLOTx
- \advance\scratchcounter \plusone
- \ifnum\scratchcounter<\@@FLOTnx\edef\@@FLOTnx{\the\scratchcounter}\fi
- \scratchcounter\FLOWmaxheight
- \advance\scratchcounter -\@@FLOTy
- \advance\scratchcounter \plusone
- \ifnum\scratchcounter<\@@FLOTny\edef\@@FLOTny{\the\scratchcounter}\fi
- #1% does something with the float, or not
- \egroup
- \increment(\@@FLOTy,\@@FLOTny)%
- \ifnum\@@FLOTy>\FLOWmaxheight
- \exitloop
- \else
- \doglobal\increment\FLOWsplity
- \decrement(\@@FLOTy,\@@FLOTdy)%
- \fi}%
- \increment(\@@FLOTx,\@@FLOTnx)%
- \ifnum\@@FLOTx>\FLOWmaxwidth
- \exitloop
- \else
- \doglobal\increment\FLOWsplitx
- \decrement(\@@FLOTx,\@@FLOTdx)%
- \fi}}
-
-\def\dododoFLOWcharts[#1][#2]%
- {\bgroup
- \@@FLOTbefore
- \doifnot\@@FLOTmarking\v!on{\let\cuthbox\hbox}%
- \cuthbox
- {\@@FLOTcommand
- {\FLOWchart[#1][#2,
- \c!x=\@@FLOTx,\c!nx=\@@FLOTnx,
- \c!y=\@@FLOTy,\c!ny=\@@FLOTny]}}%
- \@@FLOTafter
- \egroup}
-
-%D An example of splitting is given below:
-%D
-%D \starttyping
-%D \setupFLOWsplit
-%D [nx=5,ny=10,
-%D dx=0,dy=0,
-%D before=,
-%D after=\page]
-%D
-%D \FLOWcharts[mybigflow]
-%D \stoptyping
-%D
-%D Or, one can say:
-%D
-%D \starttyping
-%D \splitfloat
-%D {\placefigure{What a big flowchart this is!}}
-%D {\FLOWcharts[mybigflow]}
-%D \stoptyping
-
-%D \macros
-%D {typeFLOWchart}
-%D
-%D For documentation purposes the following macro is
-%D provided. Watch the use of the first and last line hooks,
-%D which is needed because the start and stop commands are
-%D not part of the buffer.
-
-\def\typeFLOWchart[#1]%
- {\bgroup
- \def\dohandleflowchart[##1][##2]{\typeFLOWbuffer{##1}}%
- \defconvertedargument\firstverbatimfileline{\startFLOWchart[#1]}%
- \defconvertedargument\lastverbatimfileline {\stopFLOWchart}%
- \getvalue{\@FLOW@-#1}
- \egroup}
-
-%D New:
-%D
-%D \starttyping
-%D \setupFLOWcharts[command=\Whow]
-%D
-%D \startFLOWset[convert-en] % [tag][convert-en]
-%D \subFLOWchart[a][x=1,y=1,nx=3,ny=3]
-%D \subFLOWchart[b][x=1,y=2,nx=3,ny=3]
-%D \subFLOWchart[c][x=2,y=1,nx=3,ny=3]
-%D \stopFLOWset
-%D
-%D \def\Whow#1%
-%D {\ifnum\currentFLOWset=1 \framed{Some Chart}\fi}
-%D
-%D \FLOWset[convert-en] % [tag]
-%D
-%D \def\Whow#1%
-%D {\setuphead[state=high]
-%D \startstandardmakeup
-%D \centerbox{#1}
-%D \stopstandardmakeup}
-%D
-%D \FLOWset[convert-en] % [tag]
-%D \stoptyping
-
-\def\startFLOWset
- {\dodoubleempty\dostartFLOWset}
-
-\def\dostartFLOWset[#1][#2]#3\stopFLOWset % tag name data
- {\ifsecondargument
- \long\setvalue{\@FLOX@#1}{\dohandleFLOWset{#1}{#2}{#3}}%
- \else
- \long\setvalue{\@FLOX@#1}{\dohandleFLOWset{#1}{#1}{#3}}%
- \fi}
-
-\long\def\dohandleFLOWset#1#2#3% tag name data
- {\bgroup
- \def\subFLOWchart
- {\dodoubleempty\dosubFLOWchart}%
- \def\dosubFLOWchart[##1][##2]% subtag settings
- {\ifsecondargument
- \dodohandleFLOWset{#1}{##1}{#2}{##2}%
- \else
- \subFLOWchart[][##1]%
- \fi}%
- #3%
- \egroup}
-
-\def\dodohandleFLOWset#1#2#3#4% tag subtag name settings
- {\increment\currentFLOWset
- \bgroup
- \@@FLOXcommand
- {\ifnum\currentFLOWset=1 \pagereference[#1]\fi
- \doifsomething{#2}
- {\setupreferencing[\c!prefix=]%
- \pagereference[#1:#2]% -:#1:#2
- \setupreferencing[\c!prefix=#1:#2]}%
- \FLOWchart[#3][#4]}%
- \egroup}
-
-\def\FLOWset[#1]%
- {\newcounter\currentFLOWset
- \doifdefinedelse{\@FLOX@#1}
- {\getvalue{\@FLOX@#1}}
- {\dodohandleFLOWset{#1}{}{#1}{}}}
-
-\newcounter\currentFLOWset
-
-\setupFLOWsets
- [\c!command=]
-
-%D This will be an option:
-
-% \def\startFLOWchart%
-% {\dodoubleempty\dostartFLOWchart}
-%
-% \long\def\dostartFLOWchart[#1][#2]#3\stopFLOWchart
-% {\preparenextFLOWchart{#1}{#2}%
-% \long\setgvalue{\FLOWbufferprefix\nofFLOWcharts}{#3}}
-%
-% \long\def\dodefineFLOWchart[#1][#2]#3%
-% {\preparenextFLOWchart{#1}{#2}%
-% \long\setgvalue{\FLOWbufferprefix\nofFLOWcharts}{#3}}
-%
-% \def\processFLOWbuffer#1{\getvalue{\FLOWbufferprefix#1}}
-% \def\typeFLOWbuffer #1{[Sorry, no verbatim chart #1 available.]}
-
-%D The \XML\ interface:
-
-\startXMLdefinitions flowchart
-
-\defineXMLargument [flowchartdefinition]
- {\defineFLOWchart[\XMLpar{flowchartdefinition}{identifier}{unknown}]}
-
-\defineXMLpickup [flowcell]
- {\startFLOWcell
- \defineXMLargument[name]{\unspaceafter\name}%
- \defineXMLargument[shape]{\unspaceafter\shape}%
- \defineXMLnestedargument[text]{\text}}
- {\stopFLOWcell}
-
-\defineXMLenvironment [location] % global unspace/store
- {\bgroup\defineXMLpush[x]\defineXMLpush[y]}
- {\XMLunspace{x}\XMLunspace{y}%
- \expanded{\egroup\noexpand\location{\XMLpop{x},\XMLpop{y}}}}
-
-\defineXMLenvironment [connection]
- {\bgroup\defineXMLpush[type]\defineXMLpush[name]}%
- {\XMLunspace{type}\XMLunspace{name}%
- \expanded{\egroup\noexpand\connection[\XMLpop{type}]{\XMLpop{name}}}}
-
-\defineXMLsingular [flowchart]
- {\expanded{\FLOWchart[\XMLpar{flowchart}{identifier}{unknown}]}}
-
-\defineXMLdirective [flowchart] [shapes] \setupFLOWshapes
-\defineXMLdirective [flowchart] [lines] \setupFLOWlines
-
-\stopXMLdefinitions
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-chemic.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-chemic.mkii
deleted file mode 100644
index 0b3c98221a1..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-chemic.mkii
+++ /dev/null
@@ -1,21 +0,0 @@
-%D \module
-%D [ file=ppchtex (m-chemic),
-%D version=1997.03.19,
-%D title=\CONTEXT\ Extra Modules,
-%D subtitle=\PPCHTEX\ (Plain Pictex Context cHemie \TEX),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D suggestions={Tobias Burnus, Dirk Kuypers \& Ton Otten},
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\ifx\psaxes\undefined \ifx\beginpicture\undefined
- \usemodule[pictex]
-\fi \fi
-
-\input ppchtex.mkii \relax
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-cweb.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-cweb.mkii
deleted file mode 100644
index bf80e229c14..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-cweb.mkii
+++ /dev/null
@@ -1,1371 +0,0 @@
-%D \module
-%D [ file=m-cweb,
-%D version=1997.01.15,
-%D title=\CONTEXT\ Extra Modules,
-%D subtitle=\CWEB\ Pretty Printing Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D First some auxiliary stuff, to be moved to system module.
-
-\def\dodofindfirstcharacter#1%
- {\ifx#1\relax
- \let\next=\egroup
- \else
- \handlecase
- {\expandafter\ifnum\expandafter\catcode\expandafter`#1=11
- \def\next##1\relax{\egroup\def\firstcharacter{#1}}%
- \fi}%
- \fi
- \next}
-
-\def\dofindfirstcharacter#1#2%
- {\def\firstcharacter{}%
- \bgroup
- \defconvertedargument\ascii{#2}%
- \let\next\dodofindfirstcharacter
- \let\handlecase#1%
- \expandafter\next\ascii\relax}
-
-\def\normalcase#1%
- {#1}
-
-\def\findfirstcharacter%
- {\dofindfirstcharacter\lowercase}
-
-\def\FindFirstCharacter%
- {\dofindfirstcharacter\normalcase}
-
-\def\FINDFIRSTCHARACTER%
- {\dofindfirstcharacter\uppercase}
-
-% nog doen:
-%
-% \deactivateCWEB in output routine
-% status info
-% gelinkte entries
-% parskip en parindent
-
-%D \gdef\CWEBquote#1.{{\em Quote :}\ #1.} % checks the .
-
-%D This module (re)implements the \CWEB\ macros as defined in
-%D the file \type{cwebmac.tex}.
-%D
-%D \CWEB\ uses short, often one character long, names for
-%D macros. This is no real problem because no one is supposed
-%D to read and understand the files generated by \CWEB. The
-%D standard macros are meant for \PLAIN\ \TEX\ users. In
-%D \CONTEXT\ and other macro packages however, there is a
-%D potential conflict with format specific or user defined
-%D commands. Furthermore, the \CWEB\ macros implement their own
-%D output routines. When integrating \CWEB\ documents in
-%D another environment, the \CWEB\ specific macros have to be
-%D made local. The first part of this module is dedicated to
-%D this feature.
-%D
-%D Instead of using \type{\def} and \type{\let} for defining
-%D macros, we use:
-%D
-%D \starttyping
-%D \defCEBmacro arguments {meaning}
-%D \letCEBmacro arguments {meaning}
-%D \stoptyping
-%D
-%D \CWEB files contain implicit calls to macros that generate
-%D the table of contents, the lists of sections and the index.
-%D Because we want to be much more flexible, we implemented our
-%D own alternatives, and therefore have to bypass the original
-%D ones. The next macro is used for defining these obsolete
-%D \CWEB\ macros. The dummies take care of arguments.
-%D
-%D \starttyping
-%D \defCEBdummy arguments {meaning}
-%D \stoptyping
-%D
-%D The list of \CWEB\ specific macro names is saved in a
-%D \TOKENLIST. This serves two purposes. First it enables us to
-%D activate the \CWEB\ macros, which are saved under a
-%D different name, second it can be used to temporary restore
-%D the meanings, for instance when the output routine builds
-%D the page.
-
-\newtoks\CWEBmacros
-
-%D Activating and deactivating is done by means of:
-%D
-%D \starttyping
-%D \activateCWEB
-%D \deactivateCWEB
-%D \stoptyping
-%D
-%D Which are implemented as:
-
-\def\activateCWEB%
- {\let\doCWEB=\activateCWEBmacro
- \the\CWEBmacros}
-
-\def\deactivateCWEB%
- {\let\doCWEB=\deactivateCWEBmacro
- \the\CWEBmacros}
-
-%D The three definition macros append the name of the macro to
-%D the list. The first two macros save the meaning, the last one
-%D assigns \type{{}} to the macro and gobbles original meaning.
-
-\long\def\defCWEBmacro#1%
- {\appendtoks\doCWEB#1\to\CWEBmacros
- \setvalue{newCWEB\string#1}}
-
-\long\def\letCWEBmacro#1%
- {\appendtoks\doCWEB#1\to\CWEBmacros
- \letvalue{newCWEB\string#1}}
-
-\long\def\defCWEBdummy#1#2#%
- {\appendtoks\doCWEB#1\to\CWEBmacros
- \setvalue{newCWEB\string#1}#2{}%
- \gobbleoneargument}
-
-%D The macro \type{\defCWEBdummy} of course takes care of the
-%D argument. This leaves the two (de|)|activating macros:
-
-\def\CWEBmacro#1%
- {\getvalue{newCWEB\string#1}}
-
-\def\activateCWEBmacro#1%
- {\letvalue{oldCWEB\string#1}=#1%
- \def#1{\CWEBmacro#1}}
-
-\def\deactivateCWEBmacro#1%
- {\expandafter\let\expandafter#1\expandafter=\csname oldCWEB\string#1\endcsname}
-
-%D I did consider loading the \CWEB\ macros using temporary
-%D substitutes of \type{\def}, \type{\font}, \type{\newbox} etc.
-%D The main problem is that the file contains more than
-%D definitions and taking all kind of assignments into account
-%D too would not make things easier. So I decided to stick to
-%D the method as just described.
-
-%D Now we're ready for the real job. What follows is a partial
-%D adaption of the file \type{cwebmac.tex}, version 3.1, dated
-%D September 1994 and written by Levy and Knuth. When possible
-%D we kept the original meaning, but we've granted ourselves
-%D the freedom to reformat the macro's for readibility.
-%D
-%D We'll only present the macros we actually use. The source
-%D however contains the original implementation.
-
-% standard macros for CWEB listings (in addition to plain.tex)
-% Version 3.1 --- September 1994.
-%
-% \ifx\documentstyle\undefined\else\endinput\fi % LaTeX will use other macros
-%
-% \xdef\fmtversion{\fmtversion+CWEB3.1}
-
-%D \macros{.}{}
-%D
-%D \CWEBquote preserve a way to get the dot accent (all
-%D other accents will still work as usual).
-
-\letCWEBmacro\: = \.
-
-% \parskip = 0pt % no stretch between paragraphs
-% \parindent = 1em % for paragraphs and for the first line of C text
-
-% \font\ninerm = cmr9
-% \let\mc = \ninerm % medium caps
-% \font\eightrm = cmr8
-% \let\sc = \eightrm % small caps (NOT a caps-and-small-caps font)
-% \let\mainfont = \tenrm
-% \let\cmntfont = \tenrm
-% \font\tenss = cmss10
-% \let\cmntfont = \tenss % alternative comment font
-% \font\titlefont = cmr7 scaled \magstep4 % title on the contents page
-% \font\ttitlefont = cmtt10 scaled \magstep2 % typewriter type in title
-% \font\tentex = cmtex10 % TeX extended character set (used in strings)
-% \fontextraspace\tentex = 0pt % no double space after sentences
-
-%D \macros{mc,sc,cmntfont,eightrm}{}
-%D
-%D The naming of the fonts in in line with those in \PLAIN\
-%D \TEX. Although \CONTEXT\ implements its own scheme, there is
-%D still support for the \PLAIN\ ones. We keep the original
-%D names, but change their meaning. That way the macros obey
-%D switching to other sizes or styles.
-
-\defCWEBmacro\mc {\tx}
-\defCWEBmacro\sc {\txx}
-\defCWEBmacro\cmntfont {\ss}
-\defCWEBmacro\eightrm {\tx}
-
-%D \macros{tentex,sevenrm,sevensy,teni}{}
-%D
-%D The next one uses a temporary solution. The \type{cmtex10}
-%D font is not part of the default mechanism. We make use of
-%D the \CONTEXT\ variables \type{\textface}, \type{\scriptface}
-%D and \type{\scriptscriptface}, which hold the current
-%D sizes.
-
-\defCWEBmacro\tentex%
- {\font\next=cmtex10 at \textface
- \fontextraspace\next\zeropoint
- \next}
-
-\defCWEBmacro\sevenrm {\getvalue{\scriptface rmtf}}
-\defCWEBmacro\sevensy {\getvalue{\scriptface mmsy}}
-\defCWEBmacro\teni {\getvalue{\textface mmmi}}
-
-%D \macros{CWEBpt}{}
-%D
-%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{\bodyfontsize}.
-
-\defCWEBmacro\CWEBpt {\bodyfontsize} % still dutch
-
-%D \macros{CEE,UNIX,TEX,CPLUSPLUS}{}
-%D
-%D Next come some logo's. It does not make much sense to use
-%D the \CONTEXT\ logo mechanism here, so we simply say:
-
-\defCWEBmacro \CEE/{{\mc C\spacefactor1000}}
-\defCWEBmacro \UNIX/{{\mc U\kern-.05emNIX\spacefactor1000}}
-\defCWEBmacro \TEX/{\TeX}
-\defCWEBmacro\CPLUSPLUS/{{\mc C\PP\spacefactor1000}}
-\defCWEBmacro \Cee{\CEE/} % for backward compatibility
-
-%D \macros{\ }{}
-%D
-%D Now we come to the real work: the short commands that make
-%D up the typography.
-%D
-%D \CWEBquote italic type for identifiers.
-
-\defCWEBmacro\\#1%
- {\leavevmode\hbox{\it#1\/\kern.05em}}
-
-%D \macros{\string|}{}
-%D
-%D \CWEBquote one letter identifiers look better this way.
-
-\defCWEBmacro\|#1%
- {\leavevmode\hbox{$#1$}}
-
-%D \macros{\string\&}{}
-%D
-%D \CWEBquote boldface type for reserved words.
-
-\defCWEBmacro\&#1%
- {\leavevmode
- \hbox
- {\def\_%
- {\kern.04em
- \vbox{\hrule width.3em height .06\CWEBpt}% .6pt}%
- \kern.08em}%
- \bf#1\/\kern.05em}}
-
-%D \macros{.}{}
-%D
-%D Here we use the previously saved period. This macro
-%D takes care of special characters in strings.
-
-\defCWEBmacro\.#1%
- {\leavevmode
- \hbox
- {\tentex % typewriter type for strings
- \let\\=\BS % backslash in a string
- \let\{=\LB % left brace in a string
- \let\}=\RB % right brace in a string
- \let\~=\TL % tilde in a string
- \let\ =\SP % space in a string
- \let\_=\UL % underline in a string
- \let\&=\AM % ampersand in a string
- \let\^=\CF % circumflex in a string
- #1\kern.05em}}
-
-%D \macros{)}{}
-%D
-%D Some discretionary hack.
-
-\defCWEBmacro\)%
- {\discretionary{\hbox{\tentex\BS}}{}{}}
-
-%D \macros{AT}{}
-%D
-%D \CWEBquote at sign for control text (not needed in versions
-%D $>=$ 2.9).
-
-\defCWEBmacro\AT{@}
-
-%D \macros{ATL,postATL,NOATL}{}
-%D
-%D A two step macro that handles whatever.
-
-\defCWEBmacro\ATL%
- {\par
- \noindent
- \bgroup
- \catcode`\_=12
- \postATL}
-
-\defCWEBmacro\postATL#1 #2 %
- {\bf letter \\{\uppercase{\char"#1}} tangles as \tentex "#2"%
- \egroup
- \par}
-
-\defCWEBmacro\noATL#1 #2 %
- {}
-
-%D \macros{noatl}{}
-%D
-%D \CWEBquote suppress output from \type{@l}.
-
-\defCWEBmacro\noatl%
- {\let\ATL=\noATL}
-
-% \defCWEBmacro\ATH%
-% {\X\kern-.5em:Preprocessor definitions\X}
-
-%D \macros{PB}
-%D
-%D \CWEBquote hook for program brackets {\tttf\string|...\string|}
-%D in TeX part or section name.
-
-\defCWEBmacro\PB%
- {\relax}
-
-% \chardef\AM = `\& % ampersand character in a string
-% \chardef\BS = `\\ % backslash in a string
-% \chardef\LB = `\{ % left brace in a string
-% \chardef\RB = `\} % right brace in a string
-% \chardef\TL = `\~ % tilde in a string
-% \chardef\UL = `\_ % underline character in a string
-% \chardef\CF = `\^ % circumflex character in a string
-
-\defCWEBmacro\AM {\char`\&} % ampersand character in a string
-\defCWEBmacro\BS {\char`\\} % backslash in a string
-\defCWEBmacro\LB {\char`\{} % left brace in a string
-\defCWEBmacro\RB {\char`\}} % right brace in a string
-\defCWEBmacro\TL {\char`\~} % tilde in a string
-\defCWEBmacro\UL {\char`\_} % underline character in a string
-\defCWEBmacro\CF {\char`\^} % circumflex character in a string
-
-\defCWEBmacro\SP {{\tt\char`\ }} % (visible) space in a string
-
-% \newbox\PPbox \setbox\PPbox=\hbox
-% {\kern.5pt\raise1pt\hbox{\sevenrm+\kern-1pt+}\kern.5pt}
-% \newbox\MMbox \setbox\MMbox=\hbox
-% {\kern.5pt\raise1pt\hbox{\sevensy\char0\kern-1pt\char0}\kern.5pt}
-% \newbox\MGbox \setbox\MGbox=\hbox % symbol for ->
-% {\kern-2pt\lower3pt\hbox{\teni\char'176}\kern1pt}
-% \newbox\MODbox \setbox\MODbox=\hbox
-% {\eightrm\%}
-%
-% \def\PP {\copy\PPbox}
-% \def\MM {\copy\MMbox}
-% \def\MG {\copy\MGbox}
-% \def\MOD {\mathbin{\copy\MODbox}}
-
-\defCWEBmacro\PP% symbol for ++
- {\kern.05\CWEBpt
- \raise.1\CWEBpt\hbox{\sevenrm+\kern-.1\CWEBpt+}%
- \kern.05\CWEBpt}
-
-\defCWEBmacro\MM%
- {\kern.05\CWEBpt
- \raise.1\CWEBpt\hbox{\sevensy\char0\kern-.1\CWEBpt\char0}%
- \kern.05\CWEBpt}
-
-\defCWEBmacro\MG%
- {\kern-.2\CWEBpt
- \lower.3\CWEBpt\hbox{\teni\char'176}%
- \kern .1\CWEBpt}
-
-\defCWEBmacro\MRL#1%
- {\mathrel{\let\K==#1}}
-
-% \def\MRL#1%
-% {\KK#1}
-% \def\KK#1#2%
-% {\buildrel\;#1\over{#2}}
-
-\letCWEBmacro\GG = \gg
-\letCWEBmacro\LL = \ll
-\letCWEBmacro\NULL = \Lambda
-
-% \mathchardef\AND = "2026 % bitwise and; also \& (unary operator)
-
-\defCWEBmacro\AND% redefines itself (funny)
- {\mathchardef\AND="2026 \AND} % bitwise and; also \& (unary operator)
-
-\letCWEBmacro\OR = \mid % bitwise or
-\letCWEBmacro\XOR = \oplus % bitwise exclusive or
-\defCWEBmacro\CM {{\sim}} % bitwise complement
-\defCWEBmacro\MOD {\mathbin{\eightrm\%}}
-\defCWEBmacro\DC {\kern.1em{::}\kern.1em} % symbol for ::
-\defCWEBmacro\PA {\mathbin{.*}} % symbol for .*
-\defCWEBmacro\MGA {\mathbin{\MG*}} % symbol for ->*
-\defCWEBmacro\this {\&{this}}
-
-% \newbox \bak % backspace one em
-% \newbox \bakk % backspace two ems
-%
-% \setbox\bak =\hbox to -1em{}
-% \setbox\bakk=\hbox to -2em{}
-
-\newcount\CWEBind % current indentation in ems
-
-\defCWEBmacro\1% indent one more notch
- {\global\advance\CWEBind by 1
- \hangindent\CWEBind em}
-
-\defCWEBmacro\2% indent one less notch
- {\global\advance\CWEBind by -1 }
-
-\defCWEBmacro\3#1% optional break within a statement
- {\hfil
- \penalty#10
- \hfilneg}
-
-\defCWEBmacro\4% backspace one notch
- {\hbox to -1em{}}
-
-\defCWEBmacro\5% optional break
- {\hfil
- \penalty-1
- \hfilneg
- \kern2.5em
- \hbox to -2em{}%
- \ignorespaces}
-
-\defCWEBmacro\6% forced break
- {\ifmmode
- \else
- \par
- \hangindent\CWEBind em
- \noindent
- \kern\CWEBind em
- \hbox to -2em{}%
- \ignorespaces
- \fi}
-
-\defCWEBmacro\7% forced break and a little extra space
- {\Y
- \6}
-
-\defCWEBmacro\8% no indentation
- {\hskip-\CWEBind em
- \hskip 2em}
-
-\defCWEBmacro\9#1%
- {}
-
-\newcount\gdepth % depth of current major group, plus one
-\newcount\secpagedepth
-\secpagedepth=3 % page breaks will occur for depths -1, 0, and 1
-
-% \newtoks\gtitle % title of current major group
-% \newskip\intersecskip
-% \intersecskip=12pt minus 3pt % space between sections
-
-% \let\yskip=\smallskip
-
-\defCWEBmacro\?%
- {\mathrel?}
-
-% \def\note#1#2.%
-% {\Y\noindent
-% {\hangindent2em\baselineskip10pt\eightrm#1~#2.\par}}
-
-\defCWEBmacro\lapstar%
- {\rlap{*}}
-
-% \def\stsec%
-% {\rightskip=0pt % get out of C mode (cf. \B)
-% \sfcode`;=1500
-% \pretolerance 200
-% \hyphenpenalty 50
-% \exhyphenpenalty 50
-% \noindent{\let\*=\lapstar\bf\secstar.\quad}}
-%
-% \let\startsection=\stsec
-
-\defCWEBmacro\defin#1%
- {\global\advance\CWEBind by 2 \1\&{#1 } } % begin `define' or `format'
-
-% \def\A% xref for doubly defined section name
-% {\note{See also section}}
-%
-% \def\As% xref for multiply defined section name
-% {\note{See also sections}}
-
-\defCWEBmacro\B%
- {\rightskip=0pt plus 100pt minus 10pt % go into C mode
- \sfcode`;=3000
- \pretolerance 10000
- \hyphenpenalty 1000 % so strings can be broken (discretionary \ is inserted)
- \exhyphenpenalty 10000
- \global\CWEBind=2 \1\ \unskip}
-
-\defCWEBmacro\C#1%
- {\5\5\quad$/\ast\,${\cmntfont #1}$\,\ast/$}
-
-% \let\SHC\C % "// short comments" treated like "/* ordinary comments */"
-
-\defCWEBmacro\SHC#1%
- {\5\5\quad$//\,${\cmntfont#1}}
-
-% \def\C#1{\5\5\quad$\triangleright\,${\cmntfont#1}$\,\triangleleft$}
-% \def\SHC#1{\5\5\quad$\diamond\,${\cmntfont#1}}
-
-\defCWEBmacro\D% macro definition
- {\defin{\#define}}
-
-\letCWEBmacro\E=\equiv % equivalence sign
-
-% \def\ET% conjunction between two section numbers
-% { and~}
-%
-% \def\ETs% conjunction between the last two of several section numbers
-% {, and~}
-
-\defCWEBmacro\F% format definition
- {\defin{format}}
-
-\letCWEBmacro\G = \ge % greater than or equal sign
-
-% \H is long Hungarian umlaut accent
-
-\letCWEBmacro\I = \ne % unequal sign
-
-\defCWEBmacro\J% TANGLE's join operation
- {\.{@\&}}
-
-% \let\K== % assignment operator
-
-\letCWEBmacro\K = \leftarrow % "honest" alternative to standard assignment operator
-
-% \L is Polish letter suppressed-L
-
-% \outer\def\M#1%
-% {\MN{#1}%
-% \ifon
-% \vfil
-% \penalty-100
-% \vfilneg % beginning of section
-% \vskip\intersecskip
-% \startsection
-% \ignorespaces}
-%
-% \outer\def\N#1#2#3.%
-% {\gdepth=#1%
-% \gtitle={#3}%
-% \MN{#2}% beginning of starred section
-% \ifon
-% \ifnum#1<\secpagedepth
-% \vfil
-% \eject % force page break if depth is small
-% \else
-% \vfil
-% \penalty-100
-% \vfilneg
-% \vskip\intersecskip
-% \fi
-% \fi
-% \message{*\secno}% progress report
-% \edef\next%
-% {\write\cont % write to contents file
-% {\ZZ{#3}{#1}{\secno}{\noexpand\the\pageno}}}%
-% \next % \ZZ{title}{depth}{sec}{page}
-% \ifon
-% \startsection
-% {\bf#3.\quad}%
-% \ignorespaces}
-%
-% \def\MN#1%
-% {\par % common code for \M, \N
-% {\xdef\secstar{#1}%
-% \let\*=\empty
-% \xdef\secno{#1}}% remove \* from section name
-% \ifx\secno\secstar
-% \onmaybe
-% \else
-% \ontrue
-% \fi
-% \mark{{{\tensy x}\secno}{\the\gdepth}{\the\gtitle}}}
-%
-% each \mark is {section reference or null}{depth plus 1}{group title}
-
-% \O is Scandinavian letter O-with-slash
-% \P is paragraph sign
-
-\defCWEBmacro\Q {\note{This code is cited in section}} % xref for mention of a section
-\defCWEBmacro\Qs {\note{This code is cited in sections}} % xref for mentions of a section
-
-% \S is section sign
-
-\defCWEBmacro\T#1%
- {\leavevmode % octal, hex or decimal constant
- \hbox
- {$\def\?{\kern.2em}%
- \def\$##1{\egroup_{\,\rm##1}\bgroup}% suffix to constant
- \def\_{\cdot 10^{\aftergroup}}% power of ten (via dirty trick)
- \let\~=\oct
- \let\^=\hex
- {#1}$}}
-
-\defCWEBmacro\U {\note{This code is used in section}} % xref for use of a section
-\defCWEBmacro\Us {\note{This code is used in sections}} % xref for uses of a section
-
-\letCWEBmacro\R = \lnot % logical not
-\letCWEBmacro\V = \lor % logical or
-\letCWEBmacro\W = \land % logical and
-
-% defined later on
-%
-% \def\X#1:#2\X%
-% {\ifmmode
-% \gdef\XX{\null$\null}%
-% \else
-% \gdef\XX{}%
-% \fi % section name
-% \XX$\langle\,${#2\eightrm\kern.5em#1}$\,\rangle$\XX}
-
-\unprotect
-
-\def\theCWEByskip {\blank[\v!small]}
-\def\theCWEBvskip {\blank[\v!big]}
-
-\protect
-
-\defCWEBmacro\Y%
- {\par
- \yskip}
-
-\defCWEBmacro\yskip%
- {\theCWEByskip}
-
-\letCWEBmacro\Z = \le
-% \letCWEBmacro\ZZ = \let % now you can \write the control sequence \ZZ
-\letCWEBmacro\* = *
-
-\defCWEBmacro\oct%
- {\hbox{$^\circ$\kern-.1em\it\aftergroup\?\aftergroup}}
-
-\defCWEBmacro\hex%
- {\hbox{$^{\scriptscriptstyle\#}$\tt\aftergroup}}
-
-\defCWEBmacro\vb#1%
- {\leavevmode
- \hbox
- {\kern.2\CWEBpt
- \vrule
- \vtop
- {\vbox
- {\hrule
- \hbox{\strut\kern.2\CWEBpt\.{#1}\kern.2\CWEBpt}}
- \hrule}%
- \vrule
- \kern.2\CWEBpt}} % verbatim string
-
-\def\onmaybe%
- {\let\ifon=\maybe}
-
-\let\maybe=\iftrue
-
-\newif\ifon
-
-% \newif\iftitle
-% \newif\ifpagesaved
-%
-% \def\lheader%
-% {\mainfont
-% \the\pageno
-% \eightrm
-% \qquad
-% \grouptitle
-% \hfill
-% \title
-% \qquad
-% \mainfont
-% \topsecno} % top line on left-hand pages
-%
-% \def\rheader%
-% {\mainfont
-% \topsecno
-% \eightrm
-% \qquad
-% \title
-% \hfill
-% \grouptitle
-% \qquad
-% \mainfont
-% \the\pageno} % top line on right-hand pages
-%
-% \def\grouptitle
-% {\let\i=I
-% \let\j=J
-% \uppercase\expandafter{\expandafter\takethree\topmark}}
-%
-% \def\topsecno%
-% {\expandafter\takeone\topmark}
-%
-% \def\takeone #1#2#3{#1}
-% \def\taketwo #1#2#3{#2}
-% \def\takethree #1#2#3{#3}
-%
-% \def\nullsec%
-% {\eightrm
-% \kern-2em} % the \kern-2em cancels \qquad in headers
-%
-% \let\page=\pagebody % \def\page {\box255 }
-% \raggedbottom % \normalbottom % faster, but loses plain TeX footnotes
-%
-% \def\normaloutput#1#2#3%
-% {\shipout\vbox
-% {\ifodd
-% \pageno
-% \hoffset=\pageshift
-% \fi
-% \vbox to \fullpageheight
-% {\iftitle
-% \global\titlefalse
-% \else
-% \hbox to \pagewidth
-% {\vbox to 10pt{}%
-% \ifodd\pageno #3\else#2\fi}
-% \fi
-% \vfill#1}} % parameter #1 is the page itself
-% \global\advance\pageno by 1}
-%
-% \gtitle={\.{CWEB} output} % this running head is reset by starred sections
-%
-% \mark{\noexpand\nullsec0{\the\gtitle}}
-%
-% \def\title%
-% {\expandafter\uppercase\expandafter{\jobname}}
-%
-% \def\topofcontents%
-% {\centerline{\titlefont\title}
-% \vskip.7in
-% \vfill} % this material will start the table of contents page
-
-\def\botofcontents%
- {\vfill
- \centerline{\covernote}} % this material will end the table of contents page
-
-\def\covernote%
- {}
-
-% some leftover
-
-\defCWEBmacro\contentspagenumber{0} % default page number for table of contents
-
-% \newdimen\pagewidth \pagewidth = 158mm % the width of each page
-% \newdimen\pageheight \pageheight = 223mm % the height of each page
-% \newdimen\fullpageheight \fullpageheight = 240mm % page height including headlines
-% \newdimen\pageshift \pageshift = 0in % shift righthand pages wrt lefthand ones
-%
-% \def\magnify#1%
-% {\mag=#1
-% \pagewidth=6.5truein
-% \pageheight=8.7truein
-% \fullpageheight=9truein
-% \setpage}
-%
-% \def\setpage%
-% {\hsize\pagewidth
-% \vsize\pageheight} % use after changing page size
-%
-% \def\contentsfile {\jobname.toc} % file that gets table of contents info
-% \def\readcontents {\input \contentsfile}
-% \def\readindex {\input \jobname.idx}
-% \def\readsections {\input \jobname.scn}
-%
-% \newwrite\cont
-% \output{\setbox0=\page % the first page is garbage
-% \openout\cont=\contentsfile
-% \write\cont{\catcode `\noexpand\@=11\relax} % \makeatletter
-% \global\output{\normaloutput\page\lheader\rheader}}
-% \setpage
-% \vbox to \vsize{} % the first \topmark won't be null
-
-\defCWEBdummy\magnify#1% magnify the page
- {}
-
-\defCWEBmacro\ch%
- {\note{The following sections were changed by the change file:}
- \let\*=\relax}
-
-% \newbox\sbox % saved box preceding the index
-% \newbox\lbox % lefthand column in the index
-%
-% \def\inx%
-% {\par\vskip6pt plus 1fil % we are beginning the index
-% \def\page{\box255 }
-% \normalbottom
-% \write\cont{} % ensure that the contents file isn't empty
-% \write\cont{\catcode `\noexpand\@=12\relax} % \makeatother
-% \closeout\cont % the contents information has been fully gathered
-% \output
-% {\ifpagesaved
-% \normaloutput{\box\sbox}\lheader\rheader
-% \fi
-% \global\setbox\sbox=\page
-% \global\pagesavedtrue}
-% \pagesavedfalse
-% \eject % eject the page-so-far and predecessors
-% \setbox\sbox\vbox{\unvbox\sbox} % take it out of its box
-% \vsize=\pageheight
-% \advance\vsize by -\ht\sbox % the remaining height
-% \hsize=.5\pagewidth
-% \advance\hsize by -10pt
-% % column width for the index (20pt between cols)
-% \parfillskip 0pt plus .6\hsize % try to avoid almost empty lines
-% \def\lr{L} % this tells whether the left or right column is next
-% \output
-% {\if L\lr
-% \global\setbox\lbox=\page
-% \gdef\lr{R}
-% \else
-% \normaloutput
-% {\vbox to\pageheight
-% {\box\sbox
-% \vss
-% \hbox to\pagewidth{\box\lbox\hfil\page}}}
-% \lheader
-% \rheader
-% \global\vsize\pageheight\gdef\lr{L}\global\pagesavedfalse\fi}
-% \message{Index:}
-% \parskip 0pt plus .5pt
-% \outer\def\I##1, {\par\hangindent2em\noindent##1:\kern1em} % index entry
-% \def\[##1]{$\underline{##1}$} % underlined index item
-% \rm
-% \rightskip0pt plus 2.5em
-% \tolerance 10000
-% \let\*=\lapstar
-% \hyphenpenalty 10000
-% \parindent0pt
-% \readindex}
-%
-% \def\fin%
-% {\par\vfill\eject % this is done when we are ending the index
-% \ifpagesaved\null\vfill\eject\fi % output a null index column
-% \if L\lr\else\null\vfill\eject\fi % finish the current page
-% \parfillskip 0pt plus 1fil
-% \def\grouptitle{NAMES OF THE SECTIONS}
-% \let\topsecno=\nullsec
-% \message{Section names:}
-% \output={\normaloutput\page\lheader\rheader}
-% \setpage
-% \def\note##1##2.{\quad{\eightrm##1~##2.}}
-% \def\Q{\note{Cited in section}} % crossref for mention of a section
-% \def\Qs{\note{Cited in sections}} % crossref for mentions of a section
-% \def\U{\note{Used in section}} % crossref for use of a section
-% \def\Us{\note{Used in sections}} % crossref for uses of a section
-% \def\I{\par\hangindent 2em}\let\*=*
-% \readsections}
-%
-% \def\con%
-% {\par\vfill\eject % finish the section names
-% %\ifodd\pageno\else\titletrue\null\vfill\eject\fi % for duplex printers
-% \rightskip = 0pt
-% \hyphenpenalty = 50
-% \tolerance = 200
-% \setpage
-% \output={\normaloutput\page\lheader\rheader}
-% \titletrue % prepare to output the table of contents
-% \pageno=\contentspagenumber
-% \def\grouptitle{TABLE OF CONTENTS}
-% \message{Table of contents:}
-% \topofcontents
-% \line{\hfil Section\hbox to3em{\hss Page}}
-% \let\ZZ=\contentsline
-% \readcontents\relax % read the contents info
-% \botofcontents
-% \end} % print the contents page(s) and terminate
-%
-% \def\contentsline#1#2#3#4%
-% {\ifnum#2=0
-% \smallbreak
-% \fi
-% \line{\consetup{#2}#1
-% \rm\leaders\hbox to .5em{.\hfil}\hfil\ #3\hbox to3em{\hss#4}}}
-%
-
-\defCWEBmacro\consetup#1%
- {\ifcase#1 \bf % depth -1 (@**)
- \or % depth 0 (@*)
- \or \hskip2em % depth 1 (@*1)
- \or \hskip4em % depth 2 (@*2)
- \or \hskip6em % depth 3 (@*3)
- \or \hskip8em % depth 4 (@*4)
- \or \hskip10em % depth 5 (@*5)
- \else \hskip12em
- \fi} % depth 6 or more
-
-\defCWEBdummy \inx {} % index
-\defCWEBdummy \fin {} % finish
-\defCWEBdummy \con {} % table of contents and finish
-
-\defCWEBdummy \noinx {} % no indexes or table of contents
-\defCWEBdummy \nosecs {} % no index of section names or table of contents
-\defCWEBdummy \nocon {} % no table of contents
-
-\defCWEBmacro\,%
- {\relax
- \ifmmode
- \mskip\thinmuskip
- \else
- \thinspace
- \fi}
-
-% \def\noinx%
-% {\let\inx=\end}
-%
-% \def\nosecs%
-% {\let\FIN=\fin
-% \def\fin%
-% {\let\parfillskip=\end
-% \FIN}}
-%
-% \def\nocon%
-% {\let\con=\end}
-%
-% \newcount\twodigits
-%
-% \def\hours%
-% {\twodigits=\time
-% \divide\twodigits by 60
-% \printtwodigits
-% \multiply\twodigits by -60
-% \advance\twodigits by \time
-% :\printtwodigits}
-%
-% \def\gobbleone1{}
-%
-% \def\printtwodigits%
-% {\advance\twodigits by 100
-% \expandafter\gobbleone\number\twodigits
-% \advance\twodigits by -100 }
-%
-% \def\today%
-% {\ifcase\month
-% \or January\or February\or March\or April\or May\or June%
-% \or July\or August\or September\or October\or November\or December%
-% \fi
-% \space
-% \number\day, \number\year}
-%
-% \def\datethis%
-% {\def\startsection%
-% {\leftline{\sc\today\ at \hours}
-% \bigskip
-% \let\startsection=\stsec
-% \stsec}}
-%
-% \def\datecontentspage%
-% {\def\topofcontents%
-% {\leftline{\sc\today\ at \hours}
-% \bigskip
-% \centerline{\titlefont\title}
-% \vfill}}
-
-\defCWEBdummy\datethis {} % say `\datethis' in limbo, to get your listing timestamped before section 1
-\defCWEBdummy\datecontentspage {} % timestamps the contents page
-
-\defCWEBmacro\TeX%
- {{\ifmmode\it\fi
- \leavevmode
- \hbox{T\kern-.1667em\lower.424ex\hbox{E}\hskip-.125em X}}}
-
-% alternative implementation
-
-\newif\ifCWEBnotes
-
-\defCWEBmacro\Q {\CWEBnotesfalse \note{This code is cited in section}} % xref for mention of a section
-\defCWEBmacro\Qs {\CWEBnotestrue \note{This code is cited in sections}} % xref for mentions of a section
-
-\defCWEBmacro\U {\CWEBnotesfalse \note{This code is used in section}} % xref for use of a section
-\defCWEBmacro\Us {\CWEBnotestrue \note{This code is used in sections}} % xref for uses of a section
-
-\defCWEBmacro\A {\CWEBnotesfalse \note{See also section}} % xref for doubly defined section name
-\defCWEBmacro\As {\CWEBnotestrue \note{See also sections}} % xref for multiply defined section name
-
-\defCWEBmacro\ET% conjunction between two section numbers
- { and~}
-
-\defCWEBmacro\ETs% conjunction between the last two of several section numbers
- {, and~}
-
-%\def\processCWEBsectionnumbers[#1]%
-% {\bgroup
-% \def\CWEBcomma%
-% {\def\CWEBcomma{, }}%
-% \def\docommand##1%
-% {\bgroup
-% \def\[####1]{####1}%
-% \xdef\CWEBreference{##1}%
-% \egroup
-% \CWEBcomma{\naar{\donottest{##1}}[web:\CWEBreference]}}%
-% \processcommalist[{#1}]\docommand
-% \egroup}
-
-% \def\processCWEBsectionnumbers[#1]%
-% {\bgroup
-% \def\CWEBcomma%
-% {\def\CWEBcomma{, }}%
-% \def\docommand##1%
-% {\bgroup
-% \def\(####1){####1}%
-% \xdef\CWEBreference{##1}%
-% \egroup
-% \CWEBcomma
-% {\localcolortrue\naar{\donottest{##1}}[web:\CWEBreference]}}%
-% \bgroup
-% \def\[##1]{\(##1)}\let\(=\relax\xdef\CWEBreferences{#1}%
-% \egroup
-% \unexpanded\def\(##1){\[##1]}%
-% \processcommacommand[\CWEBreferences]\docommand
-% \egroup}
-
-\def\processCWEBsectionnumbers[#1]%
- {\bgroup
- \def\CWEBcomma%
- {\def\CWEBcomma{, }}%
- \def\docommand##1%
- {\bgroup
- \def\[####1]{####1}%
- \xdef\CWEBreference{##1}%
- \egroup
- \CWEBcomma{\localcolortrue\goto{\donottest{##1}}[web:\CWEBreference]}}%
- \processlist{(}{)}{,}\docommand(#1)
- \egroup}
-
-\def\processCWEBsectionnotes%
- {\catcode`\s=12
- \doprocessCWEBsectionnotes}
-
-\def\doprocessCWEBsectionnotes#1.%
- {\ifCWEBnotes
- \def\next##1\ET##2##3.%
- {\processCWEBsectionnumbers[##1]%
- \if##2s%
- {, and~\goto{##3}[web:##3]}%
- \else
- { and~\goto{##2##3}[web:##2##3]}%
- \fi}%
- \next#1.%
- \else
- \goto{#1}[web:#1]%
- \fi
- \afterCWEBnote % inside group!
- \egroup}
-
-\let\afterCWEBnote=\relax
-
-\defCWEBmacro\note#1%
- {\bgroup
- \Y\noindent
- \def\afterCWEBnote{\par}%
- \hangindent2em
- %\baselineskip10pt
- \eightrm#1~\processCWEBsectionnotes}
-
-\def\oldCWEBmacroX#1:#2\X% original
- {\ifmmode
- \gdef\XX{\null$\null}%
- \else
- \gdef\XX{}%
- \fi % section name
- \XX$\langle\,${#2\eightrm\kern.5em#1}$\,\rangle$\XX}
-
-\defCWEBmacro\ATH%
- {\oldCWEBmacroX\kern-.5em:Preprocessor definitions\X}
-
-\def\newCWEBmacroX#1:#2\X% original
- {\ifmmode
- \gdef\XX{\null$\null}%
- \else
- \gdef\XX{}%
- \fi % section name
- \XX$\langle\,$%
- {#2\eightrm\kern.5em\processCWEBsectionnumbers[{#1}]}%
- $\,\rangle$\XX}
-
-\defCWEBmacro\X#1:#2\X%
- {\newCWEBmacroX#1:#2\X}
-
-\definemarking[CWEBfilename]
-\definemarking[CWEBsectiontitle]
-\definemarking[CWEBsectionnumber]
-\definemarking[CWEBsectiondepth]
-
-\defCWEBmacro\M#1%
- {\MN{#1}%
- \ifon
- \vfil
- \penalty-100
- \vfilneg % beginning of section
- \theCWEBvskip
- \startsection
- \pagereference[web:#1]%
- \expanded{\marking[CWEBsectionnumber]{\secno}}%
- \expanded{\marking[CWEBsectiondepth]{\the\gdepth}}%
- \ignorespaces}
-
-\defCWEBmacro\N#1#2#3.%
- {\gdepth=#1%
- \MN{#2}% beginning of starred section
- \ifon
- \ifnum#1<\secpagedepth
- \vfil
- \eject % force page break if depth is small
- \else
- \vfil
- \penalty-100
- \vfilneg
- \theCWEBvskip
- \fi
- \fi
- \message{*\secno}% progress report
- \makesectionformat % context
- \defconvertedargument\ascii{#3}%
- \edef\next%
- {\write\CWEBcont % write to contents file
- {\string\ZZ{\ascii}{#1}{\secno}%
- {\sectionformat::\noexpand\userfolio}{\noexpand\realfolio}}}%
- \next % \ZZ{title}{depth}{sec}{page}
- \ifon
- \startsection
- \pagereference[web:#2]%
- \marking[CWEBsectiontitle] {#3}%
- \expanded{\marking[CWEBsectionnumber]{\secno}}%
- \expanded{\marking[CWEBsectiondepth]{\the\gdepth}}%
- {\bf#3.\quad}%
- \ignorespaces}
-
-\defCWEBmacro\MN#1%
- {\par % common code for \M, \N
- {\xdef\secstar{#1}%
- \let\*=\empty
- \xdef\secno{#1}}% remove \* from section name
- \ifx\secno\secstar
- \onmaybe
- \else
- \ontrue
- \fi}
-
-\newif\iflinktoCWEBfile
-
-\def\setCWEBlinkfile#1%
- {\linktoCWEBfiletrue
- \def\otherCWEBfile{#1}}
-
-\unprotect
-
-\def\gotoCWEBsection#1[#2]%
- {\iflinktoCWEBfile
- \bgroup
- \setupinteraction[\c!color=,\c!style=]%
- \let\savedreferenceprefix=\referenceprefix
- \localcolortrue
- \goto{#1}[\otherCWEBfile::\savedreferenceprefix web:#2]%
- \egroup
- \else
- #1%
- \fi}
-
-\protect
-
-\defCWEBmacro\startsection%
- {\rightskip=0pt % get out of C mode (cf. \B)
- \sfcode`;=1500
- \pretolerance 200
- \hyphenpenalty 50
- \exhyphenpenalty 50
- \noindent
- \bgroup
- \let\*=\lapstar
- \gotoCWEBsection{\bf\secstar.\quad}[\secno]%
- \egroup}
-
-\def\ignoreCWEBinput%
- {\let\normalinput=\input
- \def\input ##1 %
- {\let\input=\normalinput}}
-
-\def\loadCWEBmacros#1%
- {\let\oldN=\N
- \def\N{\bgroup\setbox0=\vbox\bgroup\endinput}%
- \ignoreCWEBinput
- \ReadFile{#1.tex}%
- \egroup\egroup
- \let\N=\oldN}
-
-\def\resetCWEBcontext%
- {\catcode`\|=12 % used in context discretionaries
- \everypar{} % used for context indentation and floats
- \parskip=0pt % no stretch between cweb paragraphs
- \parindent=1em} % is related to cweb backspace etc
-
-\newwrite\CWEBcont
-
-\def\processCWEBsource #1 %
- {\bgroup
- \resetCWEBcontext
- \activateCWEB
- \ignoreCWEBinput
- \immediate\openout\CWEBcont=#1.toc
- \write\CWEBcont{\noexpand\unprotect}
- \message{Source:}
- \marking[CWEBfilename]{#1}
- \ReadFile{#1.tex}\relax
- \write\CWEBcont{\noexpand\protect}
- \closeout\CWEBcont
- \par
- \egroup}
-
-\def\resetCWEBindexentry%
- {\xdef\currentCWEBindexentry{}}
-
-\def\showCWEBindexentry#1% can be redefined
- {\theCWEBvskip
- \vskip3\lineheight
- \goodbreak
- \vskip-3\lineheight
- {\pagereference[web:#1]\bf#1}%
- \theCWEBvskip}
-
-\def\checkCWEBindexentry#1%
- {\bgroup
- \def\\##1{##1}% a dummy that also removes the {}
- \def\|##1{##1}% another dummy
- \def\.##1{*##1}% and another (the typewriter one)
- \def\&##1{##1}% and a last one
- \def\9##1{##1}% hold this one
- \catcode`*=11
- \expandafter\def\expandafter\entry\expandafter{#1}%
- \defconvertedcommand\ascii\entry
- \expanded{\FINDFIRSTCHARACTER{\ascii}}%
- \doifnot{\currentCWEBindexentry}{\firstcharacter}
- {\doifnot{\firstcharacter}{*} % signal for \firstbunch
- {\global\let\currentCWEBindexentry=\firstcharacter
- \showCWEBindexentry{\currentCWEBindexentry}}}%
- \egroup}
-
-\def\theCWEBbeforeindex {\startcolumns}
-\def\theCWEBafterindex {\stopcolumns}
-
-\def\processCWEBindex #1 %
- {\bgroup
- \resetCWEBcontext
- \activateCWEB
- \resetCWEBindexentry
- \def\I##1, %
- {\par
- \checkCWEBindexentry{##1}%
- \hangindent2em
- \noindent##1:\kern1em%
- \def\next####1.%
- {\processCWEBsectionnumbers[{####1}]}%
- \next}%
- \def\[##1]%
- {$\underline{##1}$}%
- \let\*=\lapstar
- \parfillskip 0pt plus .6\hsize % try to avoid almost empty lines
-% \parskip 0pt plus .5pt
- \rightskip0pt plus 2.5em
- \tolerance 10000
- \hyphenpenalty 10000
- \parindent0pt
- \message{Index:}
- \marking[CWEBfilename] {#1}
- \marking[CWEBsectiontitle] {index}
- \marking[CWEBsectionnumber]{}
- \marking[CWEBsectiondepth]{}
- \loadCWEBmacros{#1}
- \theCWEBbeforeindex
- \ReadFile{#1.idx}\relax
- \theCWEBafterindex
- \par
- \egroup}
-
-\def\processCWEBsections #1 %
- {\bgroup
- \resetCWEBcontext
- \activateCWEB
- \loadCWEBmacros{#1}
- \parfillskip = 0pt plus 1fil
- \parindent = 0pt
- \let\topsecno=\nullsec
- \def\note##1%
- {\quad
- \bgroup
- \eightrm
- ##1~\processCWEBsectionnotes}
- \def\Q {\CWEBnotesfalse \note{Cited in section}} % crossref for mention of a section
- \def\Qs{\CWEBnotestrue \note{Cited in sections}} % crossref for mentions of a section
- \def\U {\CWEBnotesfalse \note{Used in section}} % crossref for use of a section
- \def\Us{\CWEBnotestrue \note{Used in sections}} % crossref for uses of a section
- \def\I {\par\hangindent 2em}%
- \let\*=*
- \message{Section names:}
- \marking[CWEBfilename] {#1}
- \marking[CWEBsectiontitle] {sections}
- \marking[CWEBsectionnumber]{}
- \marking[CWEBsectiondepth]{}
- \loadCWEBmacros{#1}
- \ReadFile{#1.scn}\relax
- \par
- \botofcontents
- \par
- \egroup}
-
-\def\processCWEBcontents #1 %
- {\bgroup
- \resetCWEBcontext
- \activateCWEB
- \loadCWEBmacros{#1}
- \rightskip = 0pt
- \hyphenpenalty = 50
- \tolerance = 200
- \parindent = 0pt
- \line{\hfil Section\hbox to3em{\hss Page}}
- \let\ZZ=\contentsline
- \message{Table of contents:}
- \marking[CWEBfilename] {#1}
- \marking[CWEBsectiontitle] {table of contents}
- \marking[CWEBsectionnumber]{}
- \marking[CWEBsectiondepth]{}
- \loadCWEBmacros{#1}
- \ReadFile{#1.toc}\relax
- \par
- \egroup}
-
-\defCWEBmacro\contentsline#1#2#3#4#5%
- {\ifnum#2=0
- \smallbreak
- \fi
- \line{\consetup{#2}#1
- \rm
- \leaders\hbox to .5em{.\hfil}\hfil\
- {\localcolortrue\goto{#3}[web:#3]}% below: \gotorealpage ? should be changed
- \hbox to3em{\localcolortrue\hss\gotorealpage{}{}{#5}{\translatednumber[#4]\presetgoto}}}}
-
-%D A last hack, needed because a file can overload of the
-%D above. (Some day: a check like \type{\ifx#1\CWEBdefined}.)
-
-\def\outer#1#2%
- {\ifx#2\undefined
- \expandafter#1\expandafter#2%
- \else
- \expandafter#1\expandafter\ThrowAway
- \fi}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-database.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-database.mkii
deleted file mode 100644
index abb67986e02..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-database.mkii
+++ /dev/null
@@ -1,420 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-
-%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}\docommand list
-%D \stoptyping
-%D
-%D This one supports arbitrary open and close symbols as well
-%D as user defined separators.
-%D
-%D \starttyping
-%D \processquotedlist(){,}{"}\docommand(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}
-
-% a version more robust with regard to {a a} b c d situations:
-
-\edef\detokenizedrelax{\detokenize{\relax}}
-
-\edef\processseplistseparator{\detokenize{,}}%
-
-\def\dodefineprocessseplist#1#2% separator \docommand
- {\edef\processseplistseparator{\detokenize{#1}}%
- \def\dodoprocessseplist##1##2#1%
- {\edef\!!stringa{\detokenize{##1}}%
- \ifx\detokenizedrelax\!!stringa
- \expandafter\nodoprocessseplist
- % \else\ifx\!!stringa#1%
- \else\ifx\!!stringa\processseplistseparator
- #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%
- \defconvertedargument\csvdata{#1}%
- \expanded{\processquotedlist{}{\noexpand\end}%
- {\currentlistseparator}{\currentlistquotechar}%
- \noexpand\doprocessseparatedquoteditem \csvdata\currentlistseparator\noexpand\end}%
- \fi
- \ifcase\separatedlistmode\appendseparatedlistparameter\c!last\fi
- \expandafter\dodoprocessseparatedline
- \fi}
-
-\def\doprocessseparatedline
- {\doifnextbgroupelse\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
-
-\defineseparatedlist[CSV]
- [separator=comma,
- before=\bTABLE, after=\eTABLE,
- first=\bTR, last=\eTR,
- left=\bTD, right=\eTD]
-
-\startCSV
-a,b,c,č
-d,e,f,š
-\stopCSV
-
-\enableregime[utf]
-
-\defineseparatedlist[X][separator=X,left=(,right=),first=\endgraf,last=\endgraf]
-\defineseparatedlist[Y][separator=Y,left=(,right=),first=\endgraf,last=\endgraf]
-
-\startX
-aXb
-Xc
-čXš
-\stopX
-
-\startY
-aYb
-Yc
-čYš
-\stopY
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-dratex.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-dratex.mkii
deleted file mode 100644
index 2b5f0be2a6f..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-dratex.mkii
+++ /dev/null
@@ -1,21 +0,0 @@
-%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 \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details
-
-\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/modules/mkii/m-edtsnc.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-edtsnc.mkii
deleted file mode 100644
index 0f66893e833..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-edtsnc.mkii
+++ /dev/null
@@ -1,207 +0,0 @@
-%D \module
-%D [ file=m-editsnc,
-%D version=2003.12.23,
-%D title=\CONTEXT\ Modules,
-%D subtitle=Editor Synchronization,
-%D author={Hans Hagen \& Ton Otten},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.edit for
-%C details.
-
-% \enablemode[demo]
-
-% This file is a variation of the file m-pdfsync. This time we do it
-% in a more abstract way and prepare ourselves for support in dvi
-% output.
-
-% \enableeditsync
-% \disableeditsync
-% \editsync
-% \editsynctext {string}
-% \editsyncnode {char}
-% \editsynctracemode [chardef: 0-4]
-
-\writestatus{editsync}{loading and enabling editor synchronization support}
-
-\unprotect % not really needed
-
-\ifx\pdfoutput\undefined
- \donefalse
-\else\ifcase\pdfoutput
- \donefalse
-\else\ifx\pdfsavepos\undefined
- \donefalse
-\else
- \donetrue
-\fi\fi\fi
-
-\chardef \editsyncstate \zerocount
-\chardef \editsynctracemode \zerocount
-\newcount \editsynccounter
-\newwrite \editsyncwrite
-
-\def\enableeditsync {\chardef\editsyncstate\plusone}
-\def\disableeditsync{\chardef\editsyncstate\zerocount}
-
-% The following definitions can go into the special drivers, but
-% for the moment we do it this way.
-
-\ifdone
-
- \def\dostarteditsync
- {\immediate\openout\editsyncwrite\jobname.pdfsync
- \immediate\write\editsyncwrite{\jobname}%
- \immediate\write\editsyncwrite{version 0}}
-
- \def\dostopeditsync
- {\closeout\editsyncwrite}
-
- \def\doeditsyncregisterpage#1{\immediate\write\editsyncwrite{s\space\number#1}}
- \def\doeditsyncopenfile #1{\immediate\write\editsyncwrite{(\space#1}}
- \def\doeditsyncclosefile #1{\immediate\write\editsyncwrite{)}}
-
- \def\doregistereditsyncnode#1#2#3% tag counter linenumber
- {\pdfsavepos
- \immediate\write\editsyncwrite{l\space\number#2\space\number#3}%
- \expanded{\write\editsyncwrite{p\ifnum#1=\plusone*\fi\space\number#2\space\noexpand\the\pdflastxpos\space\noexpand\the\pdflastypos}}}
-
-\else
-
- \let\dostarteditsync \relax
- \let\dostopeditsync \relax
-
- \let\doeditsyncregisterpage\gobbleoneargument
- \let\doeditsyncopenfile \gobbleoneargument
- \let\doeditsyncclosefile \gobbleoneargument
- \let\doregistereditsyncnode\gobblethreearguments
-
- % These specials could be filtered by a dvitopdf backend and
- % written to a jobname.pdfsync file. In that case, the x and
- % y coordinates have to be to be resolved by driver.
-
- % \def\doeditsyncregisterpage#1{\special{pdfsync: s\space\number#1}}
- % \def\doeditsyncopenfile #1{\special{pdfsync: ( #1}}
- % \def\doeditsyncclosefile #1{\special{pdfsync: )}}
-
- % \def\doregistereditsyncnode#1#2#3%
- % {\special{pdfsync: l the\editsynccounter\space\number#3}%
- % \special{pdfsync: p\ifnum#1=\plusone*\fi\space\number#2}}
-
-\fi
-
-\let\editsynctracer\gobbleoneargument
-
-\editsynccounter\minusone % counting starts at zero and we increment beforehand
-
-\def\registereditsyncnode#1% we assume #1 is one token
- {\ifcase\editsyncstate
- \expandafter\gobbleoneargument
- \else
- \global\advance\editsynccounter\plusone
- \doregistereditsyncnode#1\editsynccounter\inputlineno
- \expandafter\editsynctracer
- \fi}
-
-\def\editsync {\registereditsyncnode\plusone *}
-\def\editsyncnode{\registereditsyncnode\zerocount}
-\def\editsynctext{\registereditsyncnode\plusone }
-
-\appendtoks \dostarteditsync \to \everystarttext
-%appendtoks \dostopeditsync \to \everystoptext
-\appendtoks \doeditsyncregisterpage\realfolio \to \everyshipout
-\appendtoks \doeditsyncopenfile\readfilename \to \everybeforereadfile
-\appendtoks \doeditsyncclosefile\readfilename \to \everyafterreadfile
-
-\appendtoks \enableeditsync \to \everystarttext
-\appendtoks \disableeditsync \to \everypagebody
-
-\def\editsynctracer#1%
- {\ifcase\editsynctracemode\else
- \begingroup
- \forgetall
- \disableeditsync
- \ifcase\editsynctracemode\or % could be done more efficient, box around ifcase
- \setbox\scratchbox\hbox to \zeropoint{\hss\infofont#1\hss}% 1
- \else
- \setbox\scratchbox\hbox to \zeropoint{\hss\traceboxplacementtrue\boxcursor\hss}% 2/3/4
- \fi
- \smashbox\scratchbox\box\scratchbox
- \ifcase\editsynctracemode\or\or\or
- \setbox\scratchbox\hbox to \zeropoint{\hss\raise1.25ex\hbox{\infofont#1}\hss}% 3
- \smashbox\scratchbox\box\scratchbox
- \or
- \setbox\scratchbox\hbox to \zeropoint{\hss\lower1.25ex\hbox{\infofont#1}\hss}% 4
- \smashbox\scratchbox\box\scratchbox
- \fi
- \endgroup
- \fi}
-
-% \def\editsynctracer#1% more efficient but unreadable
-% {\ifcase\editsynctracemode\else
-% \ifcase\editsyncstate\else
-% \begingroup
-% \forgetall
-% \disableeditsync
-% \setbox\scratchbox\hbox to \zeropoint
-% {\hss
-% \ifcase\editsynctracemode\or
-% \infofont#1% 1
-% \else
-% \traceboxplacementtrue\boxcursor% 2/3/4
-% \fi
-% \hss}%
-% \smashbox\scratchbox\box\scratchbox
-% \setbox\scratchbox\hbox to \zeropoint
-% {\hss
-% \ifcase\editsynctracemode\or\or\or
-% \raise1.25ex\hbox{\infofont#1}% 3
-% \or
-% \lower1.25ex\hbox{\infofont#1}% 4
-% \fi
-% \hss}%
-% \smashbox\scratchbox\box\scratchbox
-% \endgroup
-% \fi
-% \fi}
-
-% beware, adding nodes this way will interfere with the typesetting
-
-\appendtoks \editsyncnode p\to \everypar
-\appendtoks \editsyncnode m\to \everymath
-\appendtoks \editsyncnode d\to \everydisplay
-\appendtoks \editsyncnode h\to \everyhbox
-
-% For compatibility with 'pdfsync4context' we provide:
-
-\let\pdfsyncstart\enableeditsync
-\let\pdfsyncstop \disablepdfsync
-\let\pdfsync \editsync
-
-\protect
-
-\doifnotmode{demo}{\endinput}
-
-\chardef\editsynctracemode=3
-
-\starttext
-
-\chapter{Test}
-
-\processfile{tufte}
-
-\startitemize
-\item first
-\item second
-\stopitemize
-
-\processfile{tufte}
-
-\startlines
-some local \editsync sync and \editsynctext{here}a marked point
-some local \editsync sync and \editsyncnode{here}a marked point
-\stoplines
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-educat.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-educat.mkii
deleted file mode 100644
index 93b1a6c5db3..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-educat.mkii
+++ /dev/null
@@ -1,217 +0,0 @@
-%D \module
-%D [ file=m-educat,
-%D version=2003.03.05,
-%D title=\CONTEXT\ Extra Modules,
-%D subtitle=Educational Extras,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module will collect a few macros cq.\ definitions
-%D meant for educational use. Most of the code has been laying
-%D around for some time and has been (or is still) used in
-%D \PRAGMA\ projects.
-
-\unprotect
-
-\definesystemvariable{iv}
-
-\definecolor [answerareacolor] [s=.90]
-\definecolor [answerlinecolor] [white]
-
-\definetextbackground
- [\v!answerarea]
- [\c!location=\v!text,
- \c!n=0,
- \c!frame=\v!off,
- \c!framecolor=answerlinecolor,
- \c!rulethickness=2pt,
- \c!background=\v!color,
- \c!backgroundcolor=answerareacolor,
- \c!alternative=2] % betweenline
-
-% n=gedwongen
-% m=extra auto
-
-\def\setupanswerarea
- {\setuptextbackground[\v!answerarea]}
-
-\setvalue\e!answerspace
- {\dosingleempty\doanswerspace}
-
-\def\doanswerspace[#1]%
- {\begingroup
- \dontcomplain
- \setupanswerarea
- [\c!n=0,\c!m=,#1,\c!location=\v!text]%
- \doifelsenothing{\textbackgroundparameter\c!m}
- {\expandafter\donoanswerspace}
- {\expandafter\dodoanswerspace}%
- [#1]}
-
-\def\donoanswerspace[#1]#2%
- {\setupthinrules
- [\c!alternative=\textbackgroundparameter\c!alternative,
- \c!color=\textbackgroundparameter\c!framecolor,
- \c!background=\textbackgroundparameter\c!background,
- \c!backgroundcolor=\textbackgroundparameter\c!backgroundcolor,
- \c!rulethickness=\textbackgroundparameter\c!rulethickness]%
- \doifelse{\textbackgroundparameter\c!n}{*}
- {\thinrule
- \par}
- {\scratchcounter0\textbackgroundparameter\c!n\relax
- % tricky, guess
- \def\processisolatedword##1%
- {\setbox\scratchbox=\hbox{##1}%
- \vbox{\hsize\wd\scratchbox\thinrule
- \ifcase\scratchcounter\else
- \setbox\scratchbox=\hbox{\space}%
- \nobreak\hskip\zeropoint \!!minus \wd\scratchbox
- \vbox{\hsize\wd\scratchbox\thinrule}%
- \fi}}%
- \processisolatedwords{#2}\processisolatedword
- % so far
- \ifcase\scratchcounter \else \ifnum\scratchcounter<3
- \nobreak \vbox{\hsize\scratchcounter em\thinrule}%
- \else % more
- \advance \scratchcounter -2
- \dorecurse\scratchcounter{\allowbreak\vbox{\hsize1em\thinrule}}%
- \nobreak \vbox{\hsize2em\thinrule}%
- \fi \fi}%
- \endgroup}
-
-\def\dodoanswerspace[#1]#2% m case
- {\getvalue{\e!start\v!answerarea}%
- #2%
- \doifelse{\textbackgroundparameter\c!m}{*}
- {\hfill\strut
- \getvalue{\e!stop\v!answerarea}%
- \par}
- {\scratchcounter0\textbackgroundparameter\c!m\relax
- \ifcase\scratchcounter \else \ifnum\scratchcounter<3
- \nobreak \hbox to \scratchcounter em{\strut\hss}%
- \else % more
- \advance \scratchcounter -2
- \dorecurse\scratchcounter{\allowbreak\hbox to 1em{\strut\hss}}%
- \nobreak \hbox to 2em{\strut\hss}%
- \fi \fi
- \getvalue{\e!stop\v!answerarea}}%
- \endgroup}
-
-\setvalue{\e!start\e!answerlines}%
- {\dosingleempty\dostartanswerlines}
-
-\def\dostartanswerlines[#1]%
- {\begingroup
- \dontcomplain
- \setupanswerarea
- [\c!n=0,\c!m=,#1,\c!location=\v!text]%
- \doifnot{\textbackgroundparameter\c!option}\v!joinedup\softbreak
- \doifelsenothing{\textbackgroundparameter\c!m}
- {\expandafter\donostartanswerlines}
- {\expandafter\dodostartanswerlines}%
- [#1]}
-
-\def\donostartanswerlines[#1]%
- {\setupthinrules
- [\c!alternative=\textbackgroundparameter\c!alternative,
- \c!color=\textbackgroundparameter\c!framecolor,
- \c!background=\textbackgroundparameter\c!background,
- \c!backgroundcolor=\textbackgroundparameter\c!backgroundcolor,
- \c!rulethickness=\textbackgroundparameter\c!rulethickness]%
- \thinrules[\c!n=\textbackgroundparameter\c!n]\par
- \endgroup
- \grabuntil{\e!stop\e!answerlines}}
-
-\def\dodostartanswerlines[#1]%
- {\begingroup
- \getvalue{\e!start\v!answerarea}%
- \ignorespaces}
-
-\setvalue{\e!stop\e!answerlines}%
- {\scratchcounter0\textbackgroundparameter\c!m\relax
- % a \softbreak is more efficient in pos dan \par
- \ifcase\scratchcounter
- % nothing
- \or
- \softbreak
- \else
- \softbreak
- \advance \scratchcounter \minusone
- \dorecurse\scratchcounter{\strut\hfill\strut\softbreak}%
- \fi
- \strut\hfill\strut
- \getvalue{\e!stop\v!answerarea}%
- \par\endgroup\endgroup}
-
-\setvalue\e!answerlines
- {\dosingleempty\doanswerlines}
-
-\def\doanswerlines[#1]#2%
- {\getvalue{\e!start\e!answerlines}[#1]%
- #2%
- \getvalue{\e!stop\e!answerlines}}
-
-\protect \doifnotmode{demo}{\endinput}
-
-%D Test materiaal.
-
-\starttext
-
-\startnotmode[answers]
-
- \setupanswerarea[level=+1]
-
-\stopnotmode
-
-\setupcolors[state=start]
-
-test test test \answerspace [n=10] {Whow}. test test test
-test tets test test \answerspace [n=10] {Whow}. test test
-test test tets test test \answerspace [n=10] {Whow}. test
-test test test tets test test \answerspace [n=10] {Whow}.
-test test test test test test \answerspace [n=*] {Whow.}
-
-test test test test test test test \startanswerlines
-[n=3] What A Junk Answer \stopanswerlines
-
-test test test test test test test \startanswerlines
-[n=3,alternative=0] What A Junk Answer \stopanswerlines
-
-test test test test test test test \startanswerlines
-[n=3,alternative=1] What A Junk Answer \stopanswerlines
-
-test test test test test test test \startanswerlines
-[n=3,alternative=2] What A Junk Answer \stopanswerlines
-
-\startitemize[paragraph]
-\item \startanswerlines [option=seried,n=2] xxx \stopanswerlines
-\stopitemize
-
-test test test \answerspace [m=10] {Whow}. test test test
-test tets test test \answerspace [m=10] {Whow}. test test
-test test tets test test \answerspace [m=10] {Whow}. test
-test test test tets test test \answerspace [m=10] {Whow}.
-test test test test test test \answerspace [m=*] {Whow.}
-
-test test test test test test test \startanswerlines
-[m=2] What A Junk Answer \stopanswerlines
-
-test test test test test test test \startanswerlines
-[m=2,alternative=0] What A Junk Answer \stopanswerlines
-
-test test test test test test test \startanswerlines
-[m=2,alternative=1] What A Junk Answer \stopanswerlines
-
-test test test test test test test \startanswerlines
-[m=2,alternative=2] What A Junk Answer \stopanswerlines
-
-\startitemize[paragraph]
-\item \startanswerlines [option=seried,m=2] xxx \stopanswerlines
-\stopitemize
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-format.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-format.mkii
deleted file mode 100644
index 7cedd803f5e..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-format.mkii
+++ /dev/null
@@ -1,411 +0,0 @@
-%D \module
-%D [ file=m-formay,
-%D version=ancient,
-%D title=\CONTEXT\ Modules,
-%D subtitle=Ancient Formatting Code,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Here is some code that I had laying around and had forgotten
-%D about. Let's make it a module and see if there is interest in
-%D such things.
-
-% \defineformatblock [poem]
-% \defineformatsegment [verse] % [poem]
-% \defineformatline [line] % [verse]
-%
-% \startpoem [title] [author]
-% \startverse [ref]
-% \startline [ref]
-%
-% block : voor na tussen *tekstletter *tekstkleur
-%
-% segment : voor na tussen *tekstletter *tekstkleur
-% : links rechts linkeroffset rechteroffset
-% : ?marge *evenmarge *onevenmarge breedte
-% : nummer *nummercommando *conversie
-% : nummerletter nummerkleur *label
-%
-% line : voor na tussen *tekstletter *tekstkleur
-% : nummer *nummercommando *conversie
-% : nummerletter nummerkleur *label
-%
-% * = todo
-
-\unprotect
-
-\definesystemvariable {fx} % format block
-\definesystemvariable {fy} % format segment
-\definesystemvariable {fz} % format line
-
-\def\defineformatblock
- {\dodoubleempty\dodefineformatblock}
-
-\def\dodefineformatblock[#1][#2]%
- {\setupformatblock
- [#1]
- [\c!before=\blank,\c!after=\blank,\c!inbetween=\blank,
- \c!textstyle=,\c!textcolor=,#2]%
- \setvalue{\e!start#1}{\startformatblock[#1]}%
- \setvalue{\e!stop #1}{\stopformatblock}}
-
-\def\setupformatblock
- {\dodoubleempty\dosetupformatblock}
-
-\def\setupformatblock[#1]%
- {\getparameters[\??fx#1]}
-
-\def\startformatblock[#1]%
- {\dotriplegroupempty\dostartformatblock{#1}}
-
-\def\dostartformatblock#1#2#3
- {\bgroup
- \getvalue{\??fx#1\c!before}
- \doglobal\newcounter\formatsegmentcounter
- \doglobal\newcounter\formatlinecounter
- \doglobal\newcounter\formatlinesubcounter
- \doglobal\newcounter\formatlinemaxcounter
- \doifsomething{#2}{\leftaligned{#2}\getvalue{\??fx#1\c!inbetween}}
- \def\stopformatblock%
- {\doifsomething{#3}{\getvalue{\??fx#1\c!inbetween}\leftaligned{#3}}
- \getvalue{\??fx#1\c!after}
- \egroup}}
-
-\def\defineformatsegment
- {\dodoubleempty\dodefineformatsegment}
-
-\def\dodefineformatsegment[#1][#2]%
- {\setupformatsegment
- [#1]
- [\c!before=\blank,\c!after=\blank,\c!inbetween=\blank,
- \c!textstyle=,\c!textcolor=,\c!left=,\c!right=,
- \c!leftoffset=\!!zeropoint,\c!rightoffset=\!!zeropoint,
- %\c!margin=\!!zeropoint,\c!evenmargin=\!!zeropoint,\c!oddmargin=\hsize,
- \c!width=\hsize,\c!numberstyle=,\c!numbercolor=,\c!number=\v!no,
- \c!numbercommand=,\c!conversion=,\c!label=,
- #2]%
- \setvalue{\e!start#1}{\startformatsegment[#1]}%
- \setvalue{\e!stop #1}{\stopformatsegment}}
-
-\def\setupformatsegment
- {\dodoubleempty\dosetupformatsegment}
-
-\def\setupformatsegment[#1]%
- {\getparameters[\??fy#1]}
-
-\def\placeformatsegmentcounter
- {\formatsegmentcounter\quad\hphantom{\placeformatlinecounter}}
-
-\def\placeformatlinecounter
- {\formatlinecounter}
-
-\def\startformatsegment[#1]%
- {\bgroup
- \doifelsevalue{\??fy#1\c!number}\v!yes
- {\def\doplaceformatsegmentcounter
- {\inleftmargin
- {\doattributes{\??fy#1}\c!numberstyle\c!numbercolor
- {\placeformatsegmentcounter}}}}
- {\let\doplaceformatsegmentcounter\relax}%
- \getvalue{\??fy#1\c!before}
- \doglobal\increment\formatsegmentcounter
- \def\formatrightoffset{\getvalue{\??fy#1\c!rightoffset}}
- \def\formatleftoffset {\getvalue{\??fy#1\c!leftoffset}}
- \def\formatminwidth {\getvalue{\??fy#1\c!minwidth}}
- \def\formatwidth {\getvalue{\??fy#1\c!width}}
- %\def\formatmargin {\getvalue{\??fy#1\c!margin}}
- \def\formatbefore {\getvalue{\??fy#1\c!before}}
- \def\formatinbetween {\getvalue{\??fy#1\c!inbetween}}
- \def\formatafter {\getvalue{\??fy#1\c!after}}
- \def\formatleft {\getvalue{\??fy#1\c!left}}
- \def\formatright {\getvalue{\??fy#1\c!right}}
- \@@segmentvarianta
- \getvalue{@@segmentvariant\getvalue{\??fy#1\c!alternative}}
- \def\stopformatsegment
- {\getvalue{\??fy#1\c!after}
- \egroup}}
-
-\newif\iftraceformatblock
-
-\def\@@segmentvarianta % ragged right, symbols
- {\let\formatraggedness\raggedright
- \let\dostartformatline\dostartformatlineab
- \let\formatleftfirst\relax \let\formatrightfirst\hfill
- \let\formatleftnext \hfill \let\formatrightnext \relax}
-
-\def\@@segmentvariantb % ragged right, equal parts, symbols
- {\let\formatraggedness\raggedcenter
- \let\dostartformatline\dostartformatlineab
- \let\formatleftfirst\relax \let\formatrightfirst\hfill
- \let\formatleftnext \hfill \let\formatrightnext \relax}
-
-\def\@@segmentvariantc % ragged right
- {\let\formatraggedness\veryraggedright
- \let\dostartformatline\dostartformatlinecde
- \let\formatleftnext\relax \let\formatrightnext\hfill}
-
-\def\@@segmentvariantd % ragged center
- {\let\formatraggedness\veryraggedcenter
- \let\dostartformatline\dostartformatlinecde
- \let\formatleftnext\hfill \let\formatrightnext\hfill}
-
-\def\@@segmentvariante % ragged left
- {\let\formatraggedness\veryraggedleft
- \let\dostartformatline\dostartformatlinecde
- \let\formatleftnext\hfill \let\formatrightnext\relax}
-
-\def\defineformatline
- {\dodoubleempty\dodefineformatline}
-
-\def\dodefineformatline[#1][#2]%
- {\setupformatline
- [#1]
- [\c!before=\blank,\c!after=\blank,\c!inbetween=\blank,
- \c!textstyle=,\c!textcolor=,
- \c!number=\v!no,\c!numbercommand=,\c!conversion=,
- \c!numberstyle=,\c!numbercolor=,\c!label=,
- #2]%
- \setvalue{\e!start#1}{\startformatline[#1]}%
- \setvalue{\e!stop #1}{\stopformatline}}
-
-\def\setupformatline
- {\dodoubleempty\dosetupformatline}
-
-\def\setupformatline[#1]%
- {\getparameters[\??fz#1]}
-
-\newconditional\formatforcedbreak
-
-\def\startformatline[#1]%
- {\bgroup
- \doifelsevalue{\??fz#1\c!number}\v!yes
- {\def\doplaceformatlinecounter
- {\inleftmargin
- {\doattributes{\??fz#1}\c!numberstyle\c!numbercolor
- {\placeformatlinecounter}}}}
- {\let\doplaceformatlinecounter\relax}%
- \global\setfalse\formatforcedbreak
- \def\\{\break\global\settrue\formatforcedbreak}%
- \hsize\formatwidth
- \doglobal\increment\formatlinecounter
- \par
- \nobreak
- \def\stopformatline
- {\unskip\unskip\unskip\unskip\unskip\egroup
- \let\doplaceformatsegmentcounter\relax}
- \postponenotes
- \dowithnextbox{\dostartformatline}\hbox\bgroup\ignorespaces}
-
-\def\dostartformatlineab
- {%\dosetleftskipadaption\formatmargin
- %\advance\hsize-\leftskipadaption\relax
- \ifdim\nextboxwd>\hsize
- \beginofshapebox
- \forgetall
- \hangafter\plusone
- \hangindent\formatleftoffset
- \formatraggedness
- \hskip\formatrightoffset
- \unhbox\nextbox\par
- \endofshapebox
- %\advance\hsize \leftskipadaption
- \doglobal\newcounter\formatlinesubcounter
- \reshapebox
- {\doglobal\increment\formatlinesubcounter}
- \global\let\formatlinemaxcounter\formatlinesubcounter
- \reshapebox
- {\doglobal\decrement\formatlinesubcounter
- \ifnum\formatlinesubcounter=\zerocount
- \doplaceformatsegmentcounter
- \doplaceformatlinecounter
- \hskip-\formatrightoffset
- %\hskip\leftskipadaption
- \formatleftfirst
- \unhbox\shapebox
- \ifnum\formatlinemaxcounter>\plusone
- \ifx\formatright\empty\else
- \shapedhbox to \zeropoint{\formatright\hss}%
- \fi
- \fi
- \formatrightfirst
- \iftraceformatblock
- \ruledhskip\formatrightoffset\hskip-\formatrightoffset
- \fi
- \else
- %\hskip\leftskipadaption
- \iftraceformatblock
- \ruledhskip\formatleftoffset\hskip-\formatleftoffset
- \fi
- \formatleftnext
- \ifx\formatleft\empty\else
- \shapedhbox to \zeropoint{\hss\formatleft}%
- \fi
- \unhbox\shapebox
- \formatrightnext
- \fi}
- \flushshapebox
- \else
- \dontleavehmode\hbox
- {\doplaceformatsegmentcounter
- \doplaceformatlinecounter
- %\hskip\leftskipadaption
- \formatleftfirst
- \unhbox\nextbox
- \formatrightfirst}
- \fi
- \par
- \egroup}
-
-\def\dostartformatlinecde
- {%\dosetleftskipadaption\formatmargin
- %\advance\hsize -\leftskipadaption\relax
- \dimen0=\hsize
- \ifconditional\formatforcedbreak\else
- \ifdim\formatminwidth>\zeropoint\relax
- \ifdim\nextboxwd>\hsize
- \doloop
- {\global\dimen1=\dimen0
- \beginofshapebox
- \hsize\dimen0
- \forgetall
- \formatraggedness
- \unhcopy\nextbox\par
- \endofshapebox
- \reshapebox
- {\setbox\scratchbox=\hbox{\unhbox\shapebox}%
- \ifdim\wd\scratchbox<\dimen1
- \global\dimen1=\wd\scratchbox
- \fi}
- \ifdim\dimen1<\formatminwidth\relax
- \advance\dimen0 by -.25em
- \else
- \exitloop
- \fi
- \ifdim\dimen0<10em
- \dimen0=\hsize
- \exitloop
- \fi}
- \fi
- \fi
- \fi
- \beginofshapebox
- \hsize\dimen0
- \forgetall
- \formatraggedness
- \unhcopy\nextbox\par
- \endofshapebox
- %\advance\hsize \leftskipadaption
- \doglobal\newcounter\formatlinesubcounter
- \reshapebox
- {\doglobal\increment\formatlinesubcounter}%
- \global\let\formatlinemaxcounter\formatlinesubcounter
- \reshapebox
- {\doglobal\decrement\formatlinesubcounter
- \ifnum\formatlinesubcounter=\zerocount
- \doplaceformatsegmentcounter
- \doplaceformatlinecounter
- \fi
- %\hskip\leftskipadaption
- \formatleftnext
- \unhbox\shapebox
- \formatrightnext\strut}% strut prevents unskip
- \flushshapebox
- \par
- \egroup}
-
-\defineformatblock[poem]
- [\c!before=\blank,
- \c!inbetween={\blank[\v!medium]},
- \c!after=\blank]
-
-\defineformatsegment[verse]
- [\c!alternative=\v!left,
- \c!width=\hsize,
- %\c!margin=\!!zeropoint,
- \c!before={\blank[\v!medium]},
- \c!after={\blank[\v!medium]},
- \c!inbetween={\blank[\v!medium]},
- \c!leftoffset=3em,
- \c!rightoffset=2em,
- \c!minwidth=5em,
- \c!left={$[$\enspace},
- \c!right={\enspace$]$}]
-
-\defineformatline[line]
- []
-
-\protect
-
-\doifnotmode{demo} {\endinput}
-
-% evt defineblank[formatbefore,formatinbetween,formatafter]
-
-%\showframe \traceformatblocktrue
-
-\usemodule[visual]
-
-\setuplayout[height=middle,topspace=1cm,header=0pt,footer=0pt]
-\setupbodyfont[10pt]
-
-% All interfaces supported, but testing with english; todo:
-% more options, more alternatives, inheritance and mixed
-% definitions, and so.
-
-\starttext
-
-\startbuffer
-\startbuffer[poem]
-\startpoem{A Random Poem}{Hans Hagen}
- \startverse
- \startline \fakewords{4}{8} \stopline
- \startline \fakewords{4}{8} \stopline
- \startline \fakewords{4}{8} \stopline
- \startline \fakewords{4}{8} \stopline
- \stopverse
- \startverse
- \startline \fakewords{4}{8} \stopline
- \startline \fakewords{4}{8} \stopline
- \startline \fakewords{4}{8} \stopline
- \startline \fakewords{4}{8} \stopline
- \stopverse
-\stoppoem
-\stopbuffer
-
-\setupformatsegment[verse][width=.4\hsize,number=yes,numberstyle=slanted]
-\setupformatline [line] [number=yes,numberstyle=smallslanted]
-
-\startbuffer[x]
-\setupformatsegment[verse][leftoffset=0pt,rightoffset=0pt,left=,right=]
-\stopbuffer
-
-\section{Alternative A}
-
-\setupformatsegment[verse][alternative=a] {\getbuffer[poem]}
-\setupformatsegment[verse][alternative=a] {\getbuffer[x,poem]}
-
-\section{Alternative B}
-
-\setupformatsegment[verse][alternative=b] {\getbuffer[poem]}
-\setupformatsegment[verse][alternative=b] {\getbuffer[x,poem]}
-
-\section{Alternative C}
-
-\setupformatsegment[verse][alternative=c] {\getbuffer[poem]}
-
-\section{Alternative D}
-
-\setupformatsegment[verse][alternative=d] {\getbuffer[poem]}
-
-\section{Alternative E}
-
-\setupformatsegment[verse][alternative=e] {\getbuffer[poem]}
-\stopbuffer
-
-\typebuffer \getbuffer
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-graph.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-graph.mkii
deleted file mode 100644
index 8e28cf53724..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-graph.mkii
+++ /dev/null
@@ -1,231 +0,0 @@
-%D \module
-%D [ file=m-graph,
-%D version=2000.08.06,
-%D title=\CONTEXT\ Extra Modules,
-%D subtitle=\METAPOST\ graph module support,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D I finally finished graph support, if only because I could
-%D not stand the idea that Karel Wesseling would revert to
-%D \PiCTeX.
-
-% pre 2000.08.06 version
-%
-% \forceMPTEXgraphictrue
-%
-% \startMPinitializations
-% initialize_numbers ; % make sure that pseudo typesetting is set up
-% input graph ; % load the graph package
-% Autoform := "@g" ; % change the % template char into @
-% \stopMPinitializations
-
-%D The latest version does things more automatically (and
-%D efficiently when no text processing is needed). For
-%D definitions embedded in your document, you need to
-%D use \type {@} as template character, in external files,
-%D \type {%} is also supported.
-
-\startMPinclusions
- input graph ;
-\stopMPinclusions
-
-%D Graphics that have \type {begingraph} in them are
-%D recognized as such and force handling of embedded \TEX\
-%D code.
-
-\forceMPTEXcheck{begingraph}
-
-%D If you run into troubles, try:
-%D
-%D \starttyping
-%D \forceMPTEXgraphictrue
-%D \stoptyping
-%D
-%D A demo can be run with:
-%D
-%D \starttyping
-%D texexec --mode=demo --pdf m-graph
-%D \stoptyping
-
-\startMPinclusions
- % @# is X_ or Y_; $ is Gxcvlin_ or Gycvlin_; l and h are numeric or string
- % It would not be OK to set (@#low,@#high) to a pair expression because $ might
- % try to rescale @#low when evaluating the right-hand side for @#high.
- vardef Gsetr_@\#(suffix $)(expr l, h) =
- Gclbnds_@\# ;
- if @\#ctyp>0 :
- @\#low = if abs @\#ctyp<>log: $ fi Mlog_Str l ;
- @\#high = if abs @\#ctyp<>log: $ fi Mlog_Str h ;
- else :
- -@\#high = if abs @\#ctyp<>log: $ fi Mlog_Str l ;
- -@\#low = if abs @\#ctyp<>log: $ fi Mlog_Str h ;
- fi
- enddef ;
-\stopMPinclusions
-
-\doifnotmode {demo} {\endinput}
-
-%D You need to have the data files in your path,
-%D otherwise the run is aborted.
-
-\doiffileelse {agepop91.d} {} {\writestatus{graph}{no data files found}\wait\end}
-
-%D The test:
-
-\starttext
-
-\startMPpage
-draw begingraph(3in,2in);
- gdraw "agepop91.d";
- endgraph;
-\stopMPpage
-
-\startMPpage
-draw begingraph(3in,2in);
- gdraw "agepop91.d" plot btex$\bullet$etex;
- endgraph;
-\stopMPpage
-
-\startMPpage
-draw begingraph(3in,2in);
- glabel.lft(btex \vbox{\hbox{Population} \hbox{in millions}} etex, OUT);
- glabel.bot(btex Age in years etex, OUT);
- gdraw "agepopm.d";
- endgraph;
-\stopMPpage
-
-\startMPpage
-draw begingraph(3in,2in);
- glabel.lft(btex \vbox{\hbox{Population} \hbox{in millions}} etex, OUT);
- glabel.bot(btex Age in years etex, OUT);
- setrange(origin, whatever,whatever);
- gdraw "agepopm.d";
- endgraph;
-\stopMPpage
-
-\startMPpage
-draw begingraph(2.3in,2in);
- setcoords(log,log);
- glabel.lft(btex Seconds etex,OUT);
- glabel.bot(btex Matrix size etex,
- OUT);
- gdraw "matmul.d" dashed evenly;
- glabel.ulft(btex Standard etex,8);
- gdraw "matmul.d";
- glabel.lrt(btex Strassen etex,7);
- endgraph;
-\stopMPpage
-
-\startMPpage
-draw begingraph(6.5cm,4.5cm);
- setrange(80,0, 90,whatever);
- glabel.bot(btex Year etex, OUT);
- glabel.lft(btex \vbox{\hbox{Emissions in} \hbox{thousands of}
- \hbox{metric tons} \hbox{(heavy line)}}etex, OUT);
- gdraw "lead.d" withpen pencircle scaled 1.5pt;
- autogrid(,otick.lft);
- setcoords(linear,linear);
- setrange(80,0, 90,whatever);
- glabel.rt(btex \vbox{\hbox{Micrograms} \hbox{per cubic}
- \hbox{meter of air} \hbox{(thin line)}}etex, OUT);
- gdraw "lead.d";
- autogrid(otick.bot,otick.rt);
- endgraph;
-\stopMPpage
-
-\stoptext
-
-% 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);
-% %D glabel.lft(btex {correct 0--22000} etex rotated 90, OUT);
-% %D autogrid(itick.bot,grid.lft) withcolor .75white ;
-% %D endgraph;
-% %D \stopMPcode
-% %D
-% %D \startMPcode
-% %D draw begingraph(130mm,35mm);
-% %D setrange(0,50,10,22000);
-% %D glabel.lft(btex {wrong 50--22000} etex rotated 90, OUT);
-% %D autogrid(itick.bot,grid.lft) withcolor .75white ;
-% %D endgraph;
-% %D \stopMPcode
-% %D
-% %D \startMPcode
-% %D draw begingraph(130mm,35mm);
-% %D setrange(0,110,10,30000);
-% %D glabel.lft(btex {failed 110--22000} etex rotated 90, OUT);
-% %D autogrid(itick.bot,grid.lft) withcolor .75white ;
-% %D endgraph;
-% %D \stopMPcode
-% %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 \starttyping
-% %D setrange(0,0,"22000","22000")
-% %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 ;
-% enddef;
-%
-% boolean fixsetrange ; fixsetrange := true ;
-%
-% vardef dosetrange(text t) =
-% interim warningcheck:=0;
-% save r_; r_=0;
-% string r_[]s;
-% for x_=
-% for p_=t: if pair p_: xpart p_, ypart fi p_, endfor:
-% r_[incr r_] if string x_: s fi = x_;
-% if r_>2:
-% Gsetr_ if r_=3: X_(Gxcvlin_) else: Y_(Gycvlin_) fi(
-% r_[r_-2] if unknown r_[r_-2]: s fi, x_);
-% fi
-% exitif r_=4;
-% endfor
-% enddef;
-%
-% vardef setrange(text t) =
-% if fixsetrange : dosetrange(0,0,20000,20000) ; fi ;
-% dosetrange(t) ;
-% enddef ;
-%
-% if unknown everybegingraph :
-% string everybegingraph ;
-% % everybegingraph := "setrange(0,0,20000,20000)" ;
-% fi ;
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-layout.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-layout.mkii
deleted file mode 100644
index 5ccf0e98731..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-layout.mkii
+++ /dev/null
@@ -1,102 +0,0 @@
-%D \module
-%D [ file=m-layout,
-%D version=2004.01.16,
-%D title=\CONTEXT\ Modules,
-%D subtitle=Additional Layouts,
-%D author={Hans Hagen \& Ton Otten},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% layout-preset - thf th tf
-
-%D This is a preliminary module, don't depend on these dimensions yet.
-
-\readsysfile{lang-frq}\donothing\donothing
-\readsysfile{lang-frd}\donothing\donothing
-
-\unprotect
-
-% \def\layouthwratio{\withoutpt\the\dimexpr8\paperheight/\dimexpr(\paperwidth/ 8192)\relax}
-% \def\layouthwratio{\withoutpt\the\dimexpr4\paperheight/\dimexpr(\paperwidth/16384)\relax}
-% \def\layouthwratio{\withoutpt\the\dimexpr2\paperheight/\dimexpr(\paperwidth/32768)\relax}
-
-\def\layouthwratio
- {\withoutpt\the\dimexpr2\paperheight/(\paperwidth/32768)\relax}
-
-\def\layouthfheight
- {\dimexpr\layoutparameter\c!header+\layoutparameter\c!headerdistance+
- \layoutparameter\c!footer+\layoutparameter\c!footerdistance\relax}
-
-\startsetups[preset-1]
-
- \xdef\layoutwidth {\dimexpr\layoutparameter\c!width\relax}
- \gdef\layoutheight{\dimexpr\layouthwratio\dimexpr\layoutwidth\relax+\layouthfheight\relax}
-
-\stopsetups
-
-\definelayout
- [preset-1-1]
- [\c!preset=preset-1,
- \c!backspace=\dimexpr(\paperwidth-\layoutwidth)/2\relax,
- \c!width=\dimexpr2\paperwidth/3\relax,
- \c!cutspace=\dimexpr(\paperwidth-\layoutwidth)/2\relax,
- \c!margin=\dimexpr(\paperwidth-\layoutwidth)/3\relax,
- \c!header=2\lineheight,
- \c!headerdistance=\lineheight,
- \c!height=\v!middle, % \layoutheight
- \c!footerdistance=\layoutparameter\c!headerdistance, % \lineheight,
- \c!footer=\layoutparameter\c!header, % 2\lineheight,
- \c!topspace=\dimexpr1\dimexpr\paperheight-(\layoutheight+\layouthfheight)\relax/3\relax,
- \c!bottomspace=\dimexpr2\dimexpr\paperheight-(\layoutheight+\layouthfheight)\relax/3\relax]
-
-\startsetups[preset-2]
-
- \gdef\layouthstep{\dimexpr\paperwidth /\layoutparameter\c!columns\relax}
- \gdef\layoutvstep{\dimexpr\paperheight/\layoutparameter\c!columns\relax}
-
-\stopsetups
-
-\definelayout
- [preset-2-1]
- [\c!preset=preset-2,
- \c!columns=12,
- \c!backspace=\layouthstep,
- \c!width=\v!middle,
- \c!cutspace=2\layouthstep,
- \c!margin=\layouthstep,
- \c!header=2\lineheight,
- \c!headerdistance=\lineheight,
- \c!height=\v!middle, % \layoutheight
- \c!footerdistance=\layoutparameter\c!headerdistance,
- \c!footer=\layoutparameter\c!header,
- \c!topspace=\dimexpr\layoutvstep-\layoutparameter\c!header-\layoutparameter\c!headerdistance\relax,
- \c!bottomspace=\dimexpr(2\layoutvstep)-\layoutparameter\c!header-\layoutparameter\c!headerdistance\relax]
-
-\definelayout
- [preset-2-2]
- [\c!preset=preset-2,
- \c!columns=12,
- \c!backspace=\layouthstep,
- \c!width=\v!middle,
- \c!cutspace=2\layouthstep,
- \c!margin=\layouthstep,
- \c!header=2\lineheight,
- \c!headerdistance=\lineheight,
- \c!height=\v!middle, % \layoutheight
- \c!footerdistance=\layoutparameter\c!headerdistance,
- \c!footer=\layoutparameter\c!header,
- \c!topspace=\layoutvstep,
- \c!bottomspace=\layoutvstep] % maybe 1.5
-
-% \setuplayout[preset-1-1] test \showframe \page
-% \setuplayout[preset-1-1][width=65\averagecharwidth] \setuplayout[preset-1-1] test \showframe \page
-% \setuplayout[preset-2-1] test \showframe \page
-% \setuplayout[preset-2-1][columns=10] \setuplayout[preset-2-1] test \showframe \page
-% \setuplayout[preset-2-2] test \showframe \page
-% \setuplayout[preset-2-2][columns=10] \setuplayout[preset-2-2] test \showframe \page
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-level.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-level.mkii
deleted file mode 100644
index d758288d7ef..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-level.mkii
+++ /dev/null
@@ -1,94 +0,0 @@
-%D \module
-%D [ file=level,
-%D version=2002.10.20,
-%D title=\CONTEXT\ Extra Modules,
-%D subtitle=Catching Nesting Errors,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\newcount\currentnesting
-
-\def\startnesting#1%
- {\global\advance\currentnesting\plusone
- \setxvalue{level::\number\currentnesting}{#1}}
-
-\def\stopnesting#1%
- {\edef\nestingstring{#1}%
- \relax\ifnum\currentnesting>\zerocount
- \doifelsevalue{level::\number\currentnesting}\nestingstring
- {\global\advance\currentnesting\minusone}
- {\@EA\reportnestingerror\@EA\stoptext}
- \else
- \@EA\reportnestingerror\@EA\stoptext
- \fi}
-
-\def\checknesting
- {\relax\ifnum\currentnesting>\zerocount
- \def\nestingstring{end of document}%
- \@EA\reportnestingerror
- \fi}
-
-\def\reportnestingerror
- {\endgraf
- \global\let\checknesting\relax
- \bgroup \definedfont[Mono at 18pt]\incolortrue
- \setupinterlinespace
- \raggedright
- \bgroup \red
- \ifnum\currentnesting>\plusone
- wrong end level
- \else
- too many end levels
- \fi
- at \nestingstring\space in line \number\inputlineno
- \ifnum\currentnesting>\zerocount, stack:\fi\endgraf
- \egroup
- \dostepwiserecurse\currentnesting\plusone\minusone
- {\space\getvalue{level::\recurselevel}}
- \endgraf
- \egroup
- \writestatus\m!systems{quitting due to level error}\wait
- \batchmode}
-
-\prependtoks
- \checknesting
-\to \everystoptext
-
-\protect \doifnotmode{demo}{\endinput}
-
-\starttext
-
-% \startnesting{eerste}
-% \startnesting{tweede}
-% \startnesting{derde}
-% \startnesting{vierde}
-% test
-% \stopnesting{vierde}
-% \stopnesting{eerste}
-
-% \startnesting{eerste}
-% \startnesting{tweede}
-% test
-% \stopnesting{vierde}
-% \stopnesting{derde}
-% \stopnesting{tweede}
-% \stopnesting{eerste}
-
-\startnesting{eerste}
- \startnesting{tweede}
- \startnesting{derde}
- \startnesting{vierde}
- test
- \stopnesting{vierde}
- \stopnesting{derde}
- \stopnesting{tweede}
-\stopnesting{eerste}
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-narrowtt.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-narrowtt.mkii
deleted file mode 100644
index 129bf270b9d..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-narrowtt.mkii
+++ /dev/null
@@ -1,39 +0,0 @@
-%D \module
-%D [ file=m-narrowtt,
-%D version=2005.09.08,
-%D title=\CONTEXT\ Modules,
-%D subtitle=Narrow Verbatim,
-%D author={Hans Hagen \& Ton Otten},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Test file
-%D
-%D \starttyping
-%D \startTEX
-%D \usemodule[narrowtt]
-%D \starttext
-%D \starttyping
-%D Test test test.
-%D \stoptyping
-%D test \type {test} test \type{test} test
-%D \starttyping
-%D Test test test.
-%D \stoptyping
-%D \stoptext
-%D \stopTEX
-
-\unprotect
-
-\definetypeface
- [narrowtt] [tt]
- [mono] [modern-condensed] [default] [encoding=\defaultencoding]
-
-\definetyping[n\v!typing] \setuptyping[n\v!typing][style=\narrowtt]
-\definetype [n\v!type] \setuptype [n\v!type] [style=\narrowtt]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-obsolete.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-obsolete.mkii
deleted file mode 100644
index a97002cf64c..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-obsolete.mkii
+++ /dev/null
@@ -1,5 +0,0 @@
-\unprotect
-
-\writestatus\m!systems{skipping obsolete module}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-pdfsnc.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-pdfsnc.mkii
deleted file mode 100644
index 12e2e2d68ba..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-pdfsnc.mkii
+++ /dev/null
@@ -1,200 +0,0 @@
-%D \module
-%D [ file=m-pdfsnc,
-%D version=2003.12.23,
-%D title=\CONTEXT\ Modules,
-%D subtitle=Editor Synchronization,
-%D author={Hans Hagen \& Ton Otten},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \enablemode[demo]
-
-% This file is a variation of the file pdfsync4context.tex that ships
-% with the pdfsync package (used by iTeXMac and TeXShop) by Piero
-% D'Ancona and Jrme Laurens. I made the macros a bit more efficient
-% and added some basic tracing options as well as a few more options.
-% I made this one while playing a bit with the Mac and TeX). Maybe I'll
-% add a bit of support to the kernel in in order to get rid of redundant
-% markers. Also, this had better be rewritten in a bit less \pdf
-% dependent way so that it can also be supported by dvipdfmx. I could
-% write a generic file as well, but since there is already support for
-% other packages I'll not do that (now).
-
-% compatible commands:
-%
-% \pdfsyncstart \pdfsyncstop \pdfsync
-%
-% extra commands:
-%
-% \enablepdfsync \disablepdfsync \pdfsynctext \pdfsyncnode \pdfsynctracemode
-
-\ifx\pdfoutput\undefined
- \donefalse
-\else\ifcase\pdfoutput
- \donefalse
-\else\ifx\pdfsavepos\undefined
- \donefalse
-\else
- \donetrue
-\fi\fi\fi
-
-\chardef \pdfsyncstate \zerocount
-\chardef \pdfsynctracemode \zerocount
-
-\ifdone
-
- \writestatus{pdfsync}{loading and enabling synchronization support}
-
-\else
-
- \writestatus{pdfsync}{synchronization is only available with pdftex}
-
- \let \pdfsyncstart \relax % brr, not per se symmetrically used, so
- \let \pdfsyncstop \relax % enable and disable are better names
- \let \pdfsync \relax
-
- \let \pdfsynctext \gobbleoneargument
- \let \pdfsyncnode \gobbleoneargument
-
- \let \enablepdfsync \pdfsyncstart
- \let \disablepdfsync \pdfsyncstop
-
- \expandafter\endinput
-\fi
-
-\unprotect % not really needed
-
-\newcount \pdfsynccounter
-\newwrite \pdfsyncwrite
-
-\def\pdfsyncstart{\chardef\pdfsyncstate\plusone} \let\enablepdfsync \pdfsyncstart
-\def\pdfsyncstop {\chardef\pdfsyncstate\zerocount} \let\disablepdfsync\pdfsyncstop
-
-\def\dostartpdfsync
- {\immediate\openout\pdfsyncwrite\jobname.pdfsync
- \immediate\write\pdfsyncwrite{\jobname}%
- \immediate\write\pdfsyncwrite{version 0}}
-
-\def\dostoppdfsync
- {\immediate\closeout\pdfsyncwrite}
-
-\def\doregisterpdfsyncpage
- {\immediate\write\pdfsyncwrite{s\space\realfolio}}
-
-\def\dopdfsyncopenfile
- {\immediate\write\pdfsyncwrite{(\space\readfilename}}
-
-\def\dopdfsyncclosefile
- {\immediate\write\pdfsyncwrite{)}}
-
-\def\doregisterpdfsyncnode#1%
- {\ifcase\pdfsyncstate\else
- \pdfsavepos
- \immediate\write\pdfsyncwrite{l\space\the\pdfsynccounter\space\the\inputlineno}%
- \expanded{\write\pdfsyncwrite{p\ifnum#1=\plusone*\fi\space\the\pdfsynccounter\space\noexpand\the\pdflastxpos\space\noexpand\the\pdflastypos}}%
- \global\advance\pdfsynccounter\plusone
- \fi}
-
-\let\pdfsynctracer\gobbleoneargument
-
-\def\pdfsync {\doregisterpdfsyncnode\plusone \pdfsynctracer*}
-\def\pdfsyncnode{\doregisterpdfsyncnode\zerocount\pdfsynctracer}
-\def\pdfsynctext{\doregisterpdfsyncnode\plusone \pdfsynctracer}
-
-\appendtoks \dostartpdfsync \to \everystarttext
-%appendtoks \dostoppdfsync \to \everystoptext
-\appendtoks \doregisterpdfsyncpage \to \everyshipout
-\appendtoks \dopdfsyncopenfile \to \everybeforereadfile
-\appendtoks \dopdfsyncclosefile \to \everyafterreadfile
-
-\appendtoks \enablepdfsync \to \everystarttext
-\appendtoks \disablepdfsync \to \everypagebody
-
-% beware, adding nodes this way will interfere with the typesetting
-
-\appendtoks \pdfsyncnode p\to \everypar
-\appendtoks \pdfsyncnode m\to \everymath
-\appendtoks \pdfsyncnode h\to \everyhbox
-
-% just for fun
-
-\def\pdfsynctracer#1%
- {\ifcase\pdfsynctracemode\else
- \ifcase\pdfsyncstate\else
- \begingroup
- \forgetall
- \disablepdfsync
- \ifcase\pdfsynctracemode\or % could be done more efficient, box around ifcase
- \setbox\scratchbox\hbox to \zeropoint{\hss\infofont#1\hss}% 1
- \else
- \setbox\scratchbox\hbox to \zeropoint{\hss\traceboxplacementtrue\boxcursor\hss}% 2/3/4
- \fi
- \smashbox\scratchbox\box\scratchbox
- \ifcase\pdfsynctracemode\or\or\or
- \setbox\scratchbox\hbox to \zeropoint{\hss\raise1.25ex\hbox{\infofont#1}\hss}% 3
- \smashbox\scratchbox\box\scratchbox
- \or
- \setbox\scratchbox\hbox to \zeropoint{\hss\lower1.25ex\hbox{\infofont#1}\hss}% 4
- \smashbox\scratchbox\box\scratchbox
- \fi
- \endgroup
- \fi
- \fi}
-
-% \def\pdfsynctracer#1% more efficient but unreadable
-% {\ifcase\pdfsynctracemode\else
-% \ifcase\pdfsyncstate\else
-% \begingroup
-% \forgetall
-% \disablepdfsync
-% \setbox\scratchbox\hbox to \zeropoint
-% {\hss
-% \ifcase\pdfsynctracemode\or
-% \infofont#1% 1
-% \else
-% \traceboxplacementtrue\boxcursor% 2/3/4
-% \fi
-% \hss}%
-% \smashbox\scratchbox\box\scratchbox
-% \setbox\scratchbox\hbox to \zeropoint
-% {\hss
-% \ifcase\pdfsynctracemode\or\or\or
-% \raise1.25ex\hbox{\infofont#1}% 3
-% \or
-% \lower1.25ex\hbox{\infofont#1}% 4
-% \fi
-% \hss}%
-% \smashbox\scratchbox\box\scratchbox
-% \endgroup
-% \fi
-% \fi}
-
-\protect
-
-\doifnotmode{demo}{\endinput}
-
-\chardef\pdfsynctracemode=3
-
-\starttext
-
-\chapter{Test}
-
-\processfile{tufte}
-
-\startitemize
-\item first
-\item second
-\stopitemize
-
-\processfile{tufte}
-
-\startlines
-some local \pdfsync sync and \pdfsynctext{here}a marked point
-some local \pdfsync sync and \pdfsyncnode{here}a marked point
-\stoplines
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-pictex.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-pictex.mkii
deleted file mode 100644
index e27bf63158a..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-pictex.mkii
+++ /dev/null
@@ -1,239 +0,0 @@
-%D \module
-%D [ file=m-pictex,
-%D version=1997.01.15,
-%D title=\CONTEXT\ Extra Modules,
-%D subtitle=\PICTEX\ Loading Macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module is one big hack. This hack is not needed when
-%D using \ETEX, so there we simply load \PICTEX\ and quit.
-
-%D Not every package defines \type{\fiverm}, \PICTEX's pixel,
-%D so let's take care of that omision here. The actual loading
-%D of \PICTEX\ depends on the package. For \LATEX\ users we
-%D take care of loading the auxiliary ones too.
-
-\def\loadpictex
- {\ifx\grid\undefined \else \let\normalgrid\grid \fi
- \ifx\axis\undefined \else \let\normalaxis\axis \fi
- \ifx\undefined\fiverm
- \font\fiverm=cmr5
- \fi
- \ifx\beginpicture\undefined
- \ifx\newenvironment\undefined
- \loadmarkfile{thrd-pic}%
- \else
- \input prepictex.tex \relax
- \input pictex.tex \relax
- \input postpictex.tex \relax
- \fi
- \fi
- \ifx\normalgrid\undefined \else
- \let\pictexgrid\grid
- \let\grid\normalgrid
- \fi
- \ifx\normalaxis\undefined \else
- \let\pictexaxis\axis
- \let\axis\normalaxis
- \fi}
-
-\ifx\eTeXversion\undefined \else \loadpictex \expandafter \endinput \fi
-
-%D When not in \ETEX\ and not in \CONTEXT, we load a few
-%D auxiliary macros.
-
-\ifx \undefined \writestatus \input supp-mis.tex \relax \fi
-
-\unprotect
-
-%D \TEX\ provides 256 \DIMENSIONS\ and 256 \SKIPS. In \CONTEXT\
-%D this is no problem, but in packages that have many
-%D authors, one can be quite sure that a lot of \DIMENSIONS\ are
-%D allocated. Packages that use \PICTEX\ can therefore run out
-%D of \DIMENSIONS\ quite fast. This module was written as a
-%D reaction to persistent problems with loading \PPCHTEX\ in
-%D \LATEX\ and \PICTEX\ deserves a solution. I therefore
-%D dedicate this module to Tobias Burnus and Dirk Kuypers, who
-%D use \PPCHTEX\ in a \LATEX\ environment and suggested a lot
-%D of extensions to the repertoire of \PPCHTEX\ commands.
-%D
-%D This module presents a solution that is quite effective: all
-%D \DIMENSIONS\ are drawn from the pool of \DIMENSIONS\ and
-%D \SKIPS, depending on the availability. This is possible
-%D because \DIMENSIONS\ are \SKIPS\ without a glue component.
-%D Therefore we can use \SKIPS\ as \DIMENSIONS. However, some
-%D incompatibility can result from assignments that look like:
-%D
-%D \starttyping
-%D \somedimen=\someskip
-%D \stoptyping
-%D
-%D In such cases the \DIMENSION\ equals the fixed part of the
-%D \SKIP\ or in other words: this assignment strips off the
-%D glue. Because \PICTEX\ uses no glue components, I thought
-%D I could interchange both register types without problems,
-%D but alas, this didn't hold for all \DIMENSIONS.
-
-%D In \PLAIN\ \TEX\ the allocation macros are defined with (as)
-%D \type{\outer}. This means that they cannot appear inside
-%D macros, not even in an indirect way. We therefore have to
-%D redefine both \type{\newdimen} and \type{\newskip} to
-%D non||\type{\outer} alternatives. In most macro packages this
-%D redefinition already took place. We save the original
-%D meanings, so we can restores them afterwards.
-
-% \def\temporarynewdimen {\alloc@1\dimen\dimendef\insc@unt}
-% \def\temporarynewskip {\alloc@2\skip \skipdef \insc@unt}
-
-\let\normalnewdimen \newdimen
-\let\normalnewskip \newskip
-
-\let\temporarynewdimen\newdimen
-\let\temporarynewskip \newskip
-
-%D Here comes the trick. Depending on how many \DIMENSIONS\ and
-%D \SKIPS\ are allocated, the \type{\newdimen} assigns a
-%D \DIMENSIONS\ or \SKIP. \PLAIN\ \TEX\ allocates 15 \DIMENSIONS\
-%D and 17 \SKIPS. After loading \PICTEX, 71 \DIMENSIONS\ and
-%D and 71 \SKIPS\ are allocated. Indeed, \PICTEX\ needs 110
-%D \DIMENSIONS !
-%D
-%D \starttyping
-%D \def\newdimen
-%D {\ifnum\count11>\count12
-%D \let\next\temporarynewskip
-%D \else
-%D \let\next\temporarynewdimen
-%D \fi
-%D \next}
-%D \stoptyping
-%D
-%D When I was testing a new version of \PPCHTEX\ in \PLAIN\
-%D \TEX\ I had to find out that this exchange of registers
-%D sometimes leads to unwanted results. It took me some hours
-%D to find out that the source of errors originated in
-%D constructions like:
-%D
-%D \starttyping
-%D \ifdim\DimenOne<\DimenTwo whatever you want \else or not \fi
-%D \stoptyping
-%D
-%D When \type{\DimenOne} is a \SKIP\ and \type{\DimenTwo} is a
-%D \DIMENSION, \TEX\ scans for some optional glue component,
-%D like in:
-%D
-%D \starttyping
-%D \skip0=\dimen0 plus 10pt minus 5pt
-%D \stoptyping
-%D
-%D The most robust solution to this problem is:
-%D
-%D \starttyping
-%D \ifdim\DimenOne<\DimenTwo\relax right \else wrong \fi
-%D \stoptyping
-%D
-%D Some close reading of the \PICTEX\ source however learned me
-%D that this problem could be solved best by just honoring the
-%D allocation of \DIMENSIONS\ when the name of the macro
-%D explictly stated the character sequence \type{dimen}. A next
-%D implementation therefore automatically declared all
-%D \DIMENSIONS\ with this sequence in their names with
-%D \type{\dimen}. Again I was too optimistic, so now we do it
-%D this way (the comments are from \PICTEX, which like \TABLE,
-%D is an example of a well documented package):
-
-\temporarynewdimen\!dimenA %.AW.X.DVEUL..OYQRST
-\temporarynewdimen\!dimenB %....X.DVEU...O.QRS.
-\temporarynewdimen\!dimenC %..W.X.DVEU......RS.
-\temporarynewdimen\!dimenD %..W.X.DVEU....Y.RS.
-\temporarynewdimen\!dimenE %..W........G..YQ.S.
-\temporarynewdimen\!dimenF %...........G..YQ.S.
-\temporarynewdimen\!dimenG %...........G..YQ.S.
-\temporarynewdimen\!dimenH %...........G..Y..S.
-\temporarynewdimen\!dimenI %...BX.........Y....
-\temporarynewdimen\!dxpos %..W......U..P....S.
-\temporarynewdimen\!dypos %..WB.....U..P......
-\temporarynewdimen\!xloc %..WB.....U.......S.
-\temporarynewdimen\!xpos %..........L.P..Q.ST
-\temporarynewdimen\!yloc %..WB.....U.......S.
-\temporarynewdimen\!ypos %..........L.P..Q.ST
-\temporarynewdimen\!zpt %.AWBX.DVEULGP.YQ.ST
-
-%D Tobias tested this module in all kind of \LATEX\ dialects
-%D so we were able to find out that we also needed to declare:
-
-\temporarynewdimen\linethickness
-
-%D After all, the new definition of \type{\newdimen} became:
-
-\def\newdimen#1%
- {\ifx#1\undefined
- \ifnum\count11>\count12\relax
- \temporarynewskip#1\relax
- \else
- \temporarynewdimen#1\relax
- \fi
- %\edef\ascii{\meaning#1}%
- %\immediate\write20{\string#1 becomes \ascii}%
- \else
- %\edef\ascii{\meaning#1}%
- %\immediate\write20{\string#1 already is \ascii}%
- \fi}
-
-% This macro is as unreadable, inefficient and as compact as
-% can be, but uses no extra hash entries, which sometimes are
-% scarce too. A more readable alternative, that also takes
-% explicit \SKIPS\ into account, is included in the source.
-%
-% \def\doifregisterpreferenceelse#1#2#3#4%
-% {\def\dodoifregisterpreferenceelse##1#1##2##3\war{\if##2@}%
-% \expandafter\dodoifregisterpreferenceelse\string#2#1@@\war
-% #4%
-% \else
-% #3%
-% \fi}
-%
-% \def\newdimen#1%
-% {\bgroup
-% \escapechar=-1
-% \expandafter\doifregisterpreferenceelse\expandafter{\string\dimen}#1
-% {\egroup
-% \temporarynewdimen#1}
-% {\expandafter\doifregisterpreferenceelse\expandafter{\string\skip}#1
-% {\egroup
-% \temporarynewskip#1}
-% {\egroup
-% \ifnum\count11>\count12
-% \temporarynewskip#1\relax
-% \else
-% \temporarynewdimen#1\relax
-% \fi}}}
-
-%D Curious readers can still find the previous solution in
-%D the source. The next macro is used instead of
-%D \type{\input}. This macro also reports some statistics.
-
-\def\dimeninput#1 %
- {\message{[before: d=\the\count11,s=\the\count12]}%
- \input #1 \relax
- \message{[after: d=\the\count11,s=\the\count12]}}%
-
-%D Now we can load \PICTEX:
-
-\loadpictex
-
-%D Finally we restore the old definitions of \type{\newdimen}
-%D and \type{\newskip}:
-
-\let\newdimen=\normalnewdimen
-\let\newskip =\normalnewskip
-
-%D and just hope for the best.
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-pstricks.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-pstricks.mkii
deleted file mode 100644
index d41f1987118..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-pstricks.mkii
+++ /dev/null
@@ -1,127 +0,0 @@
-%D \module
-%D [ file=m-pstricks,
-%D version=1997.01.15,
-%D title=\CONTEXT\ Extra Modules,
-%D subtitle=\PSTRICKS\ Connections,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% pstricks is not supported in context mkii (it's no problem doing that
-% but as we also need to support latex it would become quite messy so for
-% context we use metapost and for latex pstricks)
-
-%M \usemodule[pstric]
-
-\letvalue{@unused}\plussixteen
-\letvalue{alloc@}\gobblefivearguments
-
-\chardef\oldbarcode\the\catcode`\| \catcode`\|=12
-
-\def\loadpstrickscolors#1%
- {\pushmacro\dodefinecolor
- \pushmacro\dodefinepalet
- \pushmacro\dodefinecolorgroup
- \def\dodefinecolor[##1][##2]%
- {\doifassignmentelse{##2}
- {\getparameters[pstricks][r=0,g=0,b=0,##2]%
- \expanded{\newrgbcolor{##1}{{\pstricksr} {\pstricksg} {\pstricksb}}}}%
- {}}%
- \def\dodefinepalet [##1][##2]{}%
- \def\dodefinecolorgroup[##1][##2][##3]{}%
- \writestatus{pstricks}{loading colors from #1}%
- \input #1 \relax
- \popmacro\dodefinecolorgroup
- \popmacro\dodefinepalet
- \popmacro\dodefinecolor}
-
-\doifelse{\jobsuffix}{dvi}
- {\input multido \relax
- \input pstricks \relax
- \input pst-plot \relax
- \loadpstrickscolors{colo-rgb.mkii}}
- {\writestatus{pstricks}{using indirect method; enable write18}}
-
-\catcode`\|=\oldbarcode
-
-\def\loadpstricksmodule[#1]%
- {\chardef\oldbarcode\the\catcode`\|
- \catcode`\|=12
- \readfile{#1}{}{}%
- \catcode`\|=\oldbarcode}
-
-%D The next piece of code is for John Culleton who suggested to
-%D handle \PSTRICKS\ in a similar fashion as \METAPOST, i.e.\
-%D using a child process. For the moment there is no support
-%D for passing environments, so these should be called
-%D explicitly inside this environment.
-
-\unprotect
-
-%D \startPSTRICKS[offset=2pt] ... \stopPSTRICKS
-%D
-%D works in both dvi and pdf mode
-%D
-%D % \usemodule[pstric]
-%D
-%D \startPSTRICKS
-%D \pspicture(0,0)(10,10)
-%D \dorecurse{10}{\psline(0,0)(\recurselevel,10)}
-%D \dorecurse{10}{\psline(0,0)(10,\recurselevel)}
-%D \endpspicture
-%D \stopPSTRICKS
-
-\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{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
- {\hbox{#2}}
-% {\startTEXapplication[#1]{\usemodule[pstric]}#2\stopTEXapplication}}
- {\startTEXapplication[#1]{}#2\stopTEXapplication}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-quest.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-quest.mkii
deleted file mode 100644
index 596abaa0a5c..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-quest.mkii
+++ /dev/null
@@ -1,232 +0,0 @@
-%D \module
-%D [ file=m-invull,
-%D version=1995.01.10,
-%D title=\CONTEXT\ Extra Modules,
-%D subtitle=Exercise,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%I Invuloefeningen kunnen worden vormgegeven met het
-%I de commando's:
-%I
-%I \definieerinvulwoord[trefwoord]{woord,woord}
-%I \invulwoord[trefwoord]
-%I \invulwoord{woord,woord,...}
-%I
-%I Daarbij kan het een en ander worden ingesteld met
-%I
-%I \stelinvullenin[status=,nummer=,links=,rechts=,letter=]
-%P
-%I Er zijn drie manieren om woorden in te vullen. De meest
-%I eenvoudige is die waarbij de in te vullen woorden in de
-%I tekst staan.
-%I
-%I bla bla \invulwoord{een,alfa} bla bla bla bla bla bla
-%I bla bla bla bla bla bla bla bla \invulwoord{twee,beta}.
-%I
-%I De gezette tekst hangt af van de instellingen:
-%I
-%I [status=leeg] ________
-%I [status=vol,nummer=1] 'een' respectievelijk 'twee'
-%I [status=vol,nummer=2] 'alfa' respectievelijk 'beta'
-%I
-%I Het nummer heeft dus betrekking op het volgnummer in de
-%I opgegeven reeks.
-%P
-%I Bij de tweede manier worden eerste de alternatieven
-%I gedefinieerd:
-%I
-%I \definieerinvulwoord{een,alfa}
-%I \definieerinvulwoord{twee,beta}
-%I
-%I die vervolgens worden opgeroepen:
-%I
-%I bla \invulwoord[+] bla bla bla bla bla bla bla bla bla
-%I bla bla bla bla bla bla bla bla bla bla \invulwoord[+].
-%I
-%I De mogelijke instellingen komen overeen met die van de
-%I eerste manier.
-%P
-%I De derde manier is een variant op de tweede. Bij grote
-%I teksten kan men het overzicht kwijtraken. Het is daarom
-%I mogelijk 'logische' namen toe te kennen aan woorden.
-%I
-%I \definieerinvulwoord[a]{een,alfa}
-%I \definieerinvulwoord[b]{twee,beta}
-%I
-%I die vervolgens worden opgeroepen:
-%I
-%I bla \invulwoord[a] bla bla bla bla bla bla bla bla bla
-%I bla bla bla bla bla bla bla bla bla bla \invulwoord[b].
-%I
-%I Dit maakt het bovendien mogelijk woorden meerdere malen
-%I (in een willekeurige volgorde op te roepen:
-%I
-%I bla \invulwoord[a] bla \invulwoord[b] bla bla bla bla
-%I bla bla bla bla \invulwoord[b] bla bla \invulwoord[a].
-%P
-%I Bij [status=leeg] wordt een streep gezet die in breedte
-%I overeenkomt met het woord dat er eigenlijk hoort te
-%I staan. De ingevulde tekst komt visueel daardoor overeen
-%I met de in te vullen tekst, wat vergelijken vereenvoudigd.
-%I
-%I Met [status=reset] worden enkele tellers weer op 0 gezet.
-%I Dit kan nodig zijn als meerdere invuloefeningen in een
-%I tekst worden gezet.
-%I
-%I Als \versie[voorlopig] is ingesteld, worden bij invullers
-%I zonder logische namen tussen haakjes de volgnummers
-%I getoond.
-
-%S \startsetup
-%S \command
-%S [stelinvullenin]
-%S \type
-%S [\c!vars!]
-%S \variable
-%S [\c!letter]
-%S [\v!normaal,\v!vet,\v!schuin,\v!vetschuin,\v!type,\v!kap,
-%S \v!klein...,\c!command!]
-%S [\v!vet]
-%S \variable
-%S [\c!links]
-%S [\c!text!]
-%S []
-%S \variable
-%S [\c!rechts]
-%S [\c!text!]
-%S []
-%S \variable
-%S [\c!status]
-%S [\v!leeg,\v!vol,\v!reset]
-%S [\v!vol]
-%S \variable
-%S [\c!nummer]
-%S [\c!number!]
-%S [1]
-%S \variable
-%S [\c!lijn]
-%S [\v!aan,\v!uit]
-%S [\v!aan]
-%S \stopsetup
-
-%S \startsetup
-%S \command
-%S [invulwoord]
-%S \type
-%S [\c!ref!,\c!opt!\c!val!\c!opt!\c!args!]
-%S \value
-%S [\c!text!]
-%S \stopsetup
-
-%S \startsetup
-%S \command
-%S [definieerinvulwoord]
-%S \type
-%S [\c!ref!,\c!opt!\c!val!\c!args!]
-%S \value
-%S [\c!text!]
-%S \stopsetup
-
-% Mogelijke uitbreidingen
-%
-% - [breedte=<maat>,passend,ruim]
-% - invullijst met nummers
-% - weergeven lijst tijdens definitie blokkeren
-% - door elkaar definieren
-
-\unprotect
-
-\definesystemvariable {iv}
-
-\definereferenceconstant {fillin} {:iv:}
-
-\newcount\invulteller \newcount\invulput \newcount\invulget
-
-\def\stelinvullenin
- {\dosingleargument\dostelinvullenin}
-
-\def\dostelinvullenin[#1]%
- {\getparameters[\??iv][#1]%
- \doif\@@ivstate\v!reset
- {\global\invulput\zerocount
- \global\invulget\zerocount
- \let\@@ivstate\empty}}
-
-\def\definieerinvulwoord
- {\dosingleempty\dodefinieerinvulwoord}
-
-\def\dodefinieerinvulwoord[#1]#2%
- {\iffirstargument
- \setgvalue{\r!fillin#1}{\simpleinvulwoord{#2}}%
- \else
- \global\advance\invulput \plusone
- \setgvalue{\r!fillin\the\invulput}{\simpleinvulwoord{#2}}%
- \fi
- \doifconcepttracing
- {\ifnum\invulput>\zerocount
- \setbox\scratchbox\hbox{~\ttx(\the\invulput)}%
- \wd\scratchbox\zeropoint
- \box\scratchbox
- \par
- \fi}}
-
-\def\dosimpleinvulwoord#1%
- {\ifnum\@@ivnumber>\zerocount \advance\invulteller \plusone \fi
- \ifnum\invulteller=\@@ivnumber\relax
- \bgroup
- \doconvertfont\@@ivstyle
- {\@@ivleft
- \doifelse\@@ivstate\v!empty
- {\doifelse\@@ivrule\v!on\leeginvulwoord\geeninvulwoord}
- {\doifelse\@@ivrule\v!on\underbar \firstofoneargument}%
- {#1}%
- \@@ivright}%
- \egroup
- \fi}%
-
-\def\simpleinvulwoord#1%
- {\ifnum\@@ivnumber>0
- \invulteller\zerocount
- \processcommalist[#1]\dosimpleinvulwoord
- \else
- \dosimpleinvulwoord{#1}%
- \fi}
-
-\def\complexinvulwoord[#1]%
- {\bgroup
- \doifsomething{#1}
- {\global\advance\invulget \plusone
- \doconvertfont\@@ivstyle
- {\@@ivleft\getvalue{\r!fillin\the\invulget}\@@ivright}}
- {\doconvertfont\@@ivstyle
- {\@@ivleft\getvalue{\r!fillin #1}\@@ivright}}%
- \egroup}
-
-\definecomplexorsimple\invulwoord
-
-\def\leeginvulwoord#1%
- {{\let\redounderbar\dodounderbar
- \def\dodounderbar##1{\redounderbar{\hphantom{##1}}}%
- \underbar{#1}}}
-
-\def\geeninvulwoord#1%
- {{\def\dodounderbar##1{\hphantom{##1}}%
- \underbar{#1}}}
-
-% when nummer > 0, then commalist processing; beware of $(1,2)$, use { } there
-
-\stelinvullenin
- [\c!number=0,
- \c!style=\v!bold,
- \c!rule=\v!on,
- \c!left=,
- \c!right=,
- \c!state=]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-r.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-r.mkii
deleted file mode 100644
index c2cb7ba8816..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-r.mkii
+++ /dev/null
@@ -1,174 +0,0 @@
-%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={Johan Sandblom \& Hans Hagen}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\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 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
- {\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/modules/mkii/m-steps.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-steps.mkii
deleted file mode 100644
index e6bd45548c3..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-steps.mkii
+++ /dev/null
@@ -1,837 +0,0 @@
-%D \module
-%D [ file=m-steps,
-%D version=2001.05.28,
-%D title=\CONTEXT\ Modules,
-%D subtitle=Step Charts \& Tables,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%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 :
-
-% \ifx\v!kleinkorps\undefined \let\v!kleinkorps\setsmallbodyfont \fi
-
-% end of hack
-
-\definecolor [STEPlinecolor] [s=.5]
-\definecolor [STEPframecolor] [s=.7]
-\definecolor [STEPbackgroundcolor] [s=.9]
-
-\def\@@STPF{@@STPF} % frames
-
-\def\@@STPC{@@STPC} % charts
-\def\@@STPT{@@STPT} % tables
-
-\def\@@STEC{@@STEC} % cells
-\def\@@STET{@@STET} % tables
-\def\@@STEL{@@STEL} % lines
-
-\def\setupSTEPcharts{\dodoubleargument\getparameters[\@@STPC]}
-\def\setupSTEPtables{\dodoubleargument\getparameters[\@@STPT]}
-\def\setupSTEPcells {\dodoubleargument\getparameters[\@@STEC]}
-\def\setupSTEPtexts {\dodoubleargument\getparameters[\@@STET]}
-\def\setupSTEPlines {\dodoubleargument\getparameters[\@@STEL]}
-
-\setupSTEPcharts
- [\c!before=\blank,
- \c!after=\blank,
- %\c!distance=.25em, % nvt
- \c!hoffset=1em,
- \c!voffset=1ex,
- \c!method=1,
- \c!height=2ex,
- \c!offset=.15\bodyfontsize]
-
-\setupSTEPtables
- [\c!before=\blank,
- \c!after=\blank,
- \c!distance=.25em,
- %\c!hoffset=1em, % nvt
- \c!voffset=1ex,
- \c!method=1,
- \c!width=4em,
- \c!offset=.15\bodyfontsize]
-
-\setupSTEPcells
- [\c!alternative=24,
- \c!background=\v!color,
- \c!backgroundcolor=STEPbackgroundcolor,
- \c!rulethickness=.1\bodyfontsize,
- \c!framecolor=STEPframecolor,
- \c!offset=.25\bodyfontsize,
- \c!style=,
- \c!color=]
-
-\setupSTEPtexts
- [\c!alternative=24,
- \c!background=\v!color,
- \c!backgroundcolor=STEPbackgroundcolor,
- \c!rulethickness=.1\bodyfontsize,
- \c!framecolor=STEPframecolor,
- \c!offset=.25\bodyfontsize,
- \c!style=\v!smallbodyfont,
- \c!color=]
-
-\setupSTEPlines
- [\c!alternative=1,
- \c!rulethickness=.15\bodyfontsize,
- \c!color=STEPlinecolor]
-
-\def\initializeSTEP
- {\initializeSTET \initializeSTEC \initializeSTEL}
-
-\def\initializeSTPC
- {\freezedimenmacro\@@STPCoffset
- \startMPdrawing
- line_v_offset := \@@STPCoffset ;
- line_method := \@@STPCmethod ; % only charts
- \stopMPdrawing}
-
-\def\initializeSTPT
- {\freezedimenmacro\@@STPToffset
- \startMPdrawing
- line_h_offset := \@@STPToffset ;
- line_method := \@@STPTmethod ; % only charts
- \stopMPdrawing}
-
-\def\initializeSTET
- {\freezedimenmacro\@@STETrulethickness
- \freezedimenmacro\@@STEToffset}
-
-\def\initializeSTEC
- {\freezedimenmacro\@@STECrulethickness
- \freezedimenmacro\@@STECoffset}
-
-\def\initializeSTEL
- {\freezedimenmacro\@@STELrulethickness}
-
-%D ...
-
-\presetlocalframed[\@@STPF]
-
-\def\@@stepcell#1%
- {\doattributes\@@STEC\c!style\c!color
- {\localframed
- [\@@STPF][\c!offset=\@@STECoffset,\c!frame=\v!off]
- {\ignorespaces#1\unskip}}}
-
-\def\@@stepfake#1%
- {\doattributes\@@STEC\c!style\c!color
- {\ignorespaces#1\unskip}}
-
-\def\@@steptext#1%
- {\doattributes\@@STET\c!style\c!color
- {\localframed
- [\@@STPF][\c!offset=\@@STEToffset,\c!frame=\v!off]
- {\ignorespaces#1\unskip}}}
-
-%D The first attempt was purely \METAPOST\ based and spawned
-%D the typesetting to the \METAFUN\ handler. This method
-%D collects the cells, and directly passes them on to
-%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 \starttyping
-%D \def\startSTEPchart%
-%D {\bgroup
-%D \startMPdrawing
-%D input mp-step.mpii ; begin_step_chart ;
-%D \stopMPdrawing
-%D \initializeSTEP
-%D \let\cells\stepchartcells \def\cell{\cells{}}%
-%D \let\texts\stepcharttexts \def\text{\texts{}}}
-%D
-%D \def\stepchartcells#1#2%
-%D {\setMPtext{tdummy}{\strut\ignorespaces#1\unskip}% beter etex/btex
-%D \setMPtext{bdummy}{\strut\ignorespaces#2\unskip}% beter etex/btex
-%D \startMPdrawing
-%D set_step_chart_cells(\MPstring{tdummy},\MPstring{bdummy}) ;
-%D \stopMPdrawing}
-%D
-%D \def\stepcharttexts#1#2%
-%D {\setMPtext{tdummy}{\strut\ignorespaces#1\unskip}% beter etex/btex
-%D \setMPtext{bdummy}{\strut\ignorespaces#2\unskip}% beter etex/btex
-%D \startMPdrawing
-%D set_step_chart_texts(\MPstring{tdummy},\MPstring{bdummy}) ;
-%D \stopMPdrawing}
-%D
-%D \def\stopSTEPchart
-%D {\startMPdrawing
-%D end_step_chart ;
-%D \stopMPdrawing
-%D \MPdrawingdonetrue
-%D \getMPdrawing
-%D \resetMPdrawing
-%D \egroup}
-%D \stoptyping
-%D
-%D This method has the advantage that it does the job in
-%D (virtually) one pass, while the next methods need multiple
-%D passes: one to build the table, another to synchronize the
-%D positions, and a third one beause the dimensions may have
-%D changed. The last pass is a result from the fact that
-%D positions are related to the page.
-%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 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 \starttyping
-%D \newtoks\stepsonetop \newtoks\stepstwotop
-%D \newtoks\stepsonebot \newtoks\stepstwobot
-%D \stoptyping
-%D
-%D During the collecting phase, we temporarily have to
-%D increment the name space counter.
-%D
-%D \starttyping
-%D \def\startSTEPchart%
-%D {\bgroup
-%D \resetMPdrawing
-%D \advance\noftabpositions\plusone % begin of preroll
-%D \startMPdrawing
-%D input mp-step.mpii ;
-%D begin_step_chart ;
-%D \stopMPdrawing
-%D \initializeSTEP
-%D \newcounter\cellcounter
-%D \stepsonetop\emptytoks \chardef\somesteponetop=1
-%D \stepsonebot\emptytoks \chardef\somesteponebot=1
-%D \stepstwotop\emptytoks \chardef\somesteptwotop=1
-%D \stepstwobot\emptytoks \chardef\somesteptwobot=1
-%D \let\cells\stepchartcells \def\cell{\cells{}}%
-%D \let\texts\stepcharttexts \def\text{\texts{}}}
-%D \stoptyping
-%D
-%D Now we collect the steps and texts, and in the process the
-%D graphic is built. Then we continue with building the table.
-%D
-%D Watch how we anchor the graphic to the main table box. This
-%D is needed since the graphic may be larger than the table
-%D itself. Actually, these small point took me the most time to
-%D digest, even with the right tools (anchors) already in
-%D place.
-%D
-%D \starttyping
-%D \def\stopSTEPchart
-%D {\splittabulatefalse
-%D \insidefloattrue
-%D \startMPdrawing
-%D nofcells := \cellcounter ;
-%D end_step_chart ;
-%D anchor_box(\MPpos{\tbPOSprefix origin}) ;
-%D \stopMPdrawing
-%D \MPdrawingdonetrue
-%D \advance\noftabpositions\minusone % end of preroll
-%D \setbox0=\vbox
-%D {\getMPdrawing}
-%D \resetMPdrawing
-%D \increment(\cellcounter,\cellcounter)\decrement\cellcounter
-%D \setbox2=\vbox
-%D {\definetabulate[chart][|*{\cellcounter}{ck0|}] % k0 nills space
-%D \startchart
-%D \ifcase\somesteptwotop \the\stepstwotop \NC \NR \noalign{\kern2ex} \fi
-%D \ifcase\somesteponetop \the\stepsonetop \NC \NR \noalign{\kern2ex} \fi
-%D \ifcase\somesteponebot \the\stepsonebot \NC \NR \noalign{\kern2ex} \fi
-%D \ifcase\somesteptwobot \the\stepstwobot \NC \NR \noalign{\kern2ex} \fi
-%D \noalign{\kern-2ex}%
-%D \stopchart}
-%D \hbox
-%D {\scratchdimen\wd0
-%D \advance\scratchdimen \MPllx bp
-%D \raise\MPlly bp\box0
-%D \hskip-\scratchdimen
-%D \hpos{\tbPOSprefix origin}{\box2}}
-%D \egroup}
-%D \stoptyping
-%D
-%D The steps and texts fill the (at most 4) lines that make up
-%D the table. We also feed the (automatically registerd) cell
-%D dimensions to the graphic backend.
-%D
-%D \starttyping
-%D \newcounter\cellcounter
-%D \newcounter\textcounter
-%D
-%D \def\stepchartcells#1#2%
-%D {\doloop
-%D {\ifnum\cellcounter>\textcounter
-%D \stepcharttexts{}{}%
-%D \else
-%D \exitloop
-%D \fi}%
-%D \increment\cellcounter
-%D \doifelsenothing{#1}
-%D {\startMPdrawing
-%D cells[t][\cellcounter] := origin ;
-%D \stopMPdrawing
-%D \appendtoks\NC\NC\to\stepsonetop}
-%D {\chardef\somesteponetop=0
-%D \edef\stepidentifier{\cellcounter-t-c}%
-%D \startMPdrawing
-%D initialize_area(\MPpos{b:\tbPOSprefix\stepidentifier},
-%D \MPpos{e:\tbPOSprefix\stepidentifier}) ;
-%D cells[t][\cellcounter] := pxy ;
-%D \stopMPdrawing
-%D \@EA\appendtoks\@EA\stepidentifierposition\@EA{\stepidentifier}#1\NC\to\stepsonetop}%
-%D \doifelsenothing{#2}
-%D {\startMPdrawing
-%D cells[b][\cellcounter] := origin ;
-%D \stopMPdrawing
-%D \appendtoks\NC\NC\to\stepsonebot}
-%D {\chardef\somesteponebot=0
-%D \edef\stepidentifier{\cellcounter-b-c}%
-%D \startMPdrawing
-%D initialize_area(\MPpos{b:\tbPOSprefix\stepidentifier},
-%D \MPpos{e:\tbPOSprefix\stepidentifier}) ;
-%D cells[b][\cellcounter] := pxy ;
-%D \stopMPdrawing
-%D \@EA\appendtoks\@EA\stepidentifierposition\@EA{\stepidentifier}#2\NC\to\stepsonebot}}
-%D
-%D \def\stepcharttexts#1#2% \cellcounter = nofcells
-%D {\increment\textcounter
-%D \doifelsenothing{#1}
-%D {\startMPdrawing
-%D texts[t][\cellcounter][\textcounter] := origin ;
-%D \stopMPdrawing
-%D \appendtoks\NC\NC\to\stepstwotop}
-%D {\chardef\somesteptwotop=0
-%D \edef\stepidentifier{\cellcounter-\textcounter-t-t}%
-%D \startMPdrawing
-%D initialize_area(\MPpos{b:\tbPOSprefix\stepidentifier},
-%D \MPpos{e:\tbPOSprefix\stepidentifier}) ;
-%D texts[t][\cellcounter][\textcounter] := pxy ;
-%D \stopMPdrawing
-%D \@EA\appendtoks\@EA\NC\@EA\textcellposition\@EA{\stepidentifier}#1\to\stepstwotop}%
-%D \doifelsenothing{#2}
-%D {\startMPdrawing
-%D texts[b][\cellcounter][\textcounter] := origin ;
-%D \stopMPdrawing
-%D \appendtoks\NC\NC\to\stepstwobot}
-%D {\chardef\somesteptwobot=0
-%D \edef\stepidentifier{\cellcounter-\textcounter-b-t}%
-%D \startMPdrawing
-%D initialize_area(\MPpos{b:\tbPOSprefix\stepidentifier},
-%D \MPpos{e:\tbPOSprefix\stepidentifier}) ;
-%D texts[b][\cellcounter][\textcounter] := pxy ;
-%D \stopMPdrawing
-%D \@EA\appendtoks\@EA\NC\@EA\textcellposition\@EA{\stepidentifier}#2\to\stepstwobot}}
-%D \stoptyping
-%D
-%D Here are the hooks that take care of calculating the cell
-%D dimensions.
-%D
-%D \starttyping
-%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 Since this method was not that efficient, a third one was
-%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 \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 types, so that we can change the settings in between. So,
-%D changing for instance the line color, can take place
-%D locally.
-
-\newbox\stepboxone \newbox\stepboxtwo
-\newbox\textboxone \newbox\textboxtwo
-
-%D We need to define a dedicated name space counter.
-
-\newcounter\currentstepchart
-
-\def\stepchartprefix{@sc@-\currentstepchart-}
-
-%D Next we define the initialization part of the macros.
-
-\newcounter\cellcounter
-\newcounter\textcounter
-
-\def\startSTEPchart
- {\dosingleempty\dostartSTEPchart}
-
-\long\def\dostartSTEPchart[#1]#2\stopSTEPchart
- {\ifinsidefloat
- \else
- \whitespace
- \@@STPCbefore
- \startbaselinecorrection
- \setlocalhsize
- \noindent
- \fi
- \vbox\bgroup
- \setupSTEPcharts[#1]%
- \forgetall
- \pushMPdrawing
- \resetMPdrawing
- \doglobal\increment\currentstepchart
- \startMPdrawing
- input mp-step.mpii ;
- begin_step_chart ;
- \stopMPdrawing
- \initializeSTEP
- \initializeSTPC
- \global\chardef\somestepboxone\plusone
- \global\chardef\sometextboxone\plusone
- \global\chardef\somestepboxtwo\somestepboxone
- \global\chardef\sometextboxtwo\sometextboxone
- \def\startlines{\bgroup\setupSTEPlines}%
- \def\stoplines {\egroup}%
- \def\cells{\dosingleempty\dostepchartcells}
- \def\texts{\dosingleempty\dostepcharttexts}
- \def\cell {\dosingleempty\docell}%
- \def\text {\dosingleempty\dotext}%
- \def\docell[##1]{\dostepchartcells[##1]{}}%
- \def\dotext[##1]{\dostepcharttexts[##1]{}}
- \doglobal\newcounter\cellcounter
- \doglobal\newcounter\textcounter
- \let\dostepchartcells\doSTEPchartcellsA
- \let\dostepcharttexts\doSTEPcharttextsA
- {#2} % pass one: cells and texts {} keeps setting local
- \startMPdrawing
- nofcells := \cellcounter ;
- analyze_step_chart ;
- \stopMPdrawing
- \doglobal\newcounter\cellcounter
- \doglobal\newcounter\textcounter
- \let\dostepchartcells\doSTEPchartcellsB
- \let\dostepcharttexts\doSTEPcharttextsB
- {#2} % pass two: lines
- \startMPdrawing
- end_step_chart ;
- % if box_found(\MPpos{\stepchartprefix origin}) :
- % initialize_box(\MPpos{\stepchartprefix origin}) ;
- % draw pxy ;
- % fi ;
- anchor_box(\MPpos{\stepchartprefix origin}) ;
- \stopMPdrawing
- \MPdrawingdonetrue
- \doifelse\@@STPCmethod{0}
- {\setbox0\null}
- {\setbox0\vbox{\MPstaticgraphictrue\getMPdrawing}}%
- \resetMPdrawing
- \setbox2\vbox
- {\offinterlineskip
- \scratchdimen\@@STPCheight
- \advance\scratchdimen\@@STPCoffset
- \advance\scratchdimen\@@STPCoffset
- \ifcase\sometextboxone \box\textboxone \vskip\scratchdimen \fi
- \ifcase\somestepboxone \box\stepboxone \vskip\@@STPCvoffset \fi
- \ifcase\somestepboxtwo \box\stepboxtwo \vskip\scratchdimen \fi
- \ifcase\sometextboxtwo \box\textboxtwo \vskip\@@STPCvoffset \fi
- \global\setbox\stepboxone\emptybox \global\setbox\stepboxtwo\emptybox % needed indeed
- \global\setbox\textboxone\emptybox \global\setbox\textboxtwo\emptybox % needed indeed
- %\kern-\scratchdimen % no, instead:
- \vskip-\lastskip}
- \hbox
- {\scratchdimen\wd0
- \advance\scratchdimen \MPllx bp
- \raise\MPlly bp\box0
- \hskip-\scratchdimen
- \hpos{\stepchartprefix origin}{\box2}}%
- \popMPdrawing
- \egroup
- \ifinsidefloat \else \stopbaselinecorrection \@@STPCafter \fi}
-
-%D The next macro looks more complicated than it is. We collect
-%D the cells in boxes. Before adding a new step cell, we padd
-%D the text rows. After adding the step cells, we flush text
-%D cells that are defined but not yet processed.
-
-\def\doSTEPchartcellsA[#1]#2#3%
- {% synchronize texts
- \doSTEPchartcellsAB[#1]{#2}{#3}%
- % package steps
- \setbox0\hbox{\doifsomething{#2}{\@@stepcell{#2}}}%
- \setbox2\hbox{\doifsomething{#3}{\@@stepcell{#3}}}%
- \ifdim\wd0>\zeropoint \!!doneafalse \else \!!doneatrue \fi
- \ifdim\wd2>\zeropoint \!!donebfalse \else \!!donebtrue \fi
- \ifdim\wd0>\wd2
- \setbox2\hbox to \wd0{\hss\box2\hss}%
- \else
- \setbox0\hbox to \wd2{\hss\box0\hss}%
- \fi
- \if!!donea
- \startMPdrawing
- cells[t][\cellcounter] := nullpicture ;
- \stopMPdrawing
- \else
- \global\chardef\somestepboxone\zerocount
- \edef\stepidentifier{\stepchartprefix\cellcounter-t-c}%
- \setbox0\hbox{\hpos{\stepidentifier}{\box0}}%
- \bgroup
- \iffirstargument\setupSTEPcells[#1]\fi\initializeSTEC
- \startMPdrawing
- initialize_box(\MPpos{\stepidentifier}) ;
- cells[t][\cellcounter] := \MPcellsgraphic ;
- \stopMPdrawing
- \egroup
- \fi
- \if!!doneb
- \startMPdrawing
- cells[b][\cellcounter] := nullpicture ;
- \stopMPdrawing
- \else
- \global\chardef\somestepboxtwo\zerocount
- \edef\stepidentifier{\stepchartprefix\cellcounter-b-c}%
- \setbox2\hbox{\hpos{\stepidentifier}{\box2}}%
- \bgroup
- \iffirstargument\setupSTEPcells[#1]\fi\initializeSTEC
- \startMPdrawing
- initialize_box(\MPpos{\stepidentifier}) ;
- cells[b][\cellcounter] := \MPcellsgraphic ;
- \stopMPdrawing
- \egroup
- \fi
- \global\setbox\stepboxone\hbox
- {\ifdim\wd\stepboxone>\zeropoint
- \box\stepboxone\hskip\@@STPChoffset\else
- \fi\box0}%
- \global\setbox\stepboxtwo\hbox
- {\ifdim\wd\stepboxtwo>\zeropoint
- \box\stepboxtwo\hskip\@@STPChoffset\else
- \fi\box2}%
- % flush saved texts
- \doSTEPchartcellsBA}
-
-\def\doSTEPchartcellsB[#1]#2#3%
- {\doSTEPchartcellsAB[#1]{#2}{#3}%
- \doSTEPchartcellsBA}
-
-\def\doSTEPchartcellsAB[#1]#2#3%
- {\doloop
- {\ifnum\cellcounter>\textcounter
- \texts{}{}\else\exitloop
- \fi}%
- \doglobal\increment\cellcounter}
-
-\def\doSTEPchartcellsBA
- {\scratchtoks\stepchartbuffer
- \stepchartbuffer\emptytoks
- \the\scratchtoks}
-
-\def\MPcellsgraphic
- {image ( drawshape (
- \@@STECalternative, pxy enlarged (-.5*\@@STECoffset),
- \@@STECrulethickness, \MPcolor{\@@STECframecolor},
- \MPcolor{\@@STECbackgroundcolor} ) )}
-
-%D Although each step can have only one associated text, the
-%D place where the text is defined determines the starting
-%D point of the connecting arrow. Although several methods are
-%D possible, we've chosen a funny collector that flushes one
-%D step text at a time.
-
-\newtoks\stepchartbuffer
-
-\def\doSTEPcharttextsA[#1]% #2 #3
- {\dodoSTEPcharttextsA{\cellcounter}{#1}}
-
-\def\dodoSTEPcharttextsA#1#2#3#4% #1=number #2=setup
- {\dodoSTEPcharttextsAB{#1}{#2}{#3}{#4}\dodoSTEPcharttextsA
- \ifnum\textcounter>\cellcounter\relax
- \doglobal\decrement\textcounter\relax
- \else
- \setbox0\hbox{\doifsomething{#3}{\@@steptext{#3}}}%
- \setbox2\hbox{\doifsomething{#4}{\@@steptext{#4}}}%
- \ifdim\wd0>\zeropoint \!!doneafalse \else \!!doneatrue \fi
- \ifdim\wd2>\zeropoint \!!donebfalse \else \!!donebtrue \fi
- \if!!donea
- \setbox0\hbox to \@@STPChoffset{\hss}%
- \startMPdrawing
- texts[t][#1][\textcounter] := nullpicture ;
- \stopMPdrawing
- \else
- \global\chardef\sometextboxone\zerocount
- \edef\stepidentifier{\stepchartprefix#1-\textcounter-t-t}%
- \setbox0\hbox to \@@STPChoffset
- {\hss\hpos{\stepidentifier}{\box0}\hss}%
- \bgroup
- \setupSTEPtexts[#2]\initializeSTET
- \startMPdrawing
- initialize_box(\MPpos{\stepidentifier}) ;
- texts[t][#1][\textcounter] := \MPtextsgraphic ;
- \stopMPdrawing
- \egroup
- \fi
- \if!!doneb
- \setbox2\hbox to \@@STPChoffset{\hss}%
- \startMPdrawing
- texts[b][#1][\textcounter] := nullpicture ;
- \stopMPdrawing
- \else
- \global\chardef\sometextboxtwo\zerocount
- \edef\stepidentifier{\stepchartprefix#1-\textcounter-b-t}%
- \setbox2\hbox to \@@STPChoffset
- {\hss\hpos{\stepidentifier}{\box2}\hss}%
- \bgroup
- \setupSTEPtexts[#2]\initializeSTET
- \startMPdrawing
- initialize_box(\MPpos{\stepidentifier}) ;
- texts[b][#1][\textcounter] := \MPtextsgraphic ;
- \stopMPdrawing
- \egroup
- \fi
- \global\setbox\textboxone\hbox
- {\hbox to \wd\stepboxone{\box\textboxone\hss}\box0}
- \global\setbox\textboxtwo\hbox
- {\hbox to \wd\stepboxtwo{\box\textboxtwo\hss}\box2}
- \fi}
-
-\def\doSTEPcharttextsB[#1]% #2 #3
- {\dodoSTEPcharttextsB{\cellcounter}{#1}}
-
-\def\dodoSTEPcharttextsB#1#2#3#4% #1=number #2=setup
- {\dodoSTEPcharttextsAB{#1}{#2}{#3}{#4}\dodoSTEPcharttextsB
- \ifnum\textcounter>\cellcounter\relax
- \doglobal\decrement\textcounter\relax
- \else
- \bgroup
- \initializeSTEL
- \startMPdrawing
- lines[t][#1][\textcounter] := \MPcharttoplinesgraphic{#1}\textcounter ;
- lines[b][#1][\textcounter] := \MPchartbotlinesgraphic{#1}\textcounter ;
- \stopMPdrawing
- \egroup
- \fi}
-
-\def\dodoSTEPcharttextsAB#1#2#3#4#5% #1=number #2=setup
- {\doglobal\increment\textcounter\relax
- \ifnum\textcounter>\cellcounter\relax
- \@EA\appendtoks\@EA#5\@EA{#1}{#2}{#3}{#4}\to\stepchartbuffer
- \fi}
-
-\def\MPtextsgraphic
- {image(drawshape(
- \@@STETalternative, pxy enlarged (-.5*\@@STEToffset),
- \@@STETrulethickness, \MPcolor{\@@STETframecolor},
- \MPcolor{\@@STETbackgroundcolor} ) )}
-
-\def\MPcharttoplinesgraphic#1#2%
- {image(drawline(
- \@@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),
- \@@STELrulethickness, \MPcolor{\@@STELcolor} ) )}
-
-%D Step tables are the vertical counterpart of stepcharts.
-
-\newcounter\currentsteptable
-
-\def\steptableprefix{@st@-\currentsteptable-}
-
-\def\startSTEPtable
- {\dosingleempty\dostartSTEPtable}
-
-\def\dostartSTEPtable[#1]#2\stopSTEPtable
- {\dostartSTEPaligntable[0][#1]#2\stopSTEPaligntable}
-
-\def\startSTEPaligntable
- {\dodoubleempty\dostartSTEPaligntable[1]}
-
-\def\dostartSTEPaligntable[#1][#2]#3\stopSTEPaligntable % flag settings data
- {\ifinsidefloat
- \else
- \whitespace
- \@@STPTbefore
- \startbaselinecorrection
- \setlocalhsize
- \noindent
- \fi
- \vbox\bgroup
- \setupSTEPtables[#2]%
- \forgetall
- \pushMPdrawing
- \doglobal\increment\currentsteptable
- \startMPdrawing
- input mp-step.mpii ;
- begin_step_table ;
- \stopMPdrawing
- \initializeSTEP
- \initializeSTPT
- \def\startlines{\bgroup\setupSTEPlines}%
- \def\stoplines {\egroup}%
- \def\prep##1{\ignorespaces##1\unskip\enspace\ignorespaces}%
- \def\cell {\dosingleempty\docell}%
- \def\cells {\dosingleempty\docells}%
- \def\text {\dosingleempty\dotext}%
- % first graphic pass, also trial pass
- \global\dimen1\zeropoint
- \global\dimen3\zeropoint
- \global\dimen5\zeropoint
- \def\docell[##1]%
- {\docells[##1]{}{}}%
- \def\docells[##1]##2##3##4%
- {\doglobal\increment\cellcounter
- \bgroup
- \iffirstargument\setupSTEPcells[##1]\fi
- \initializeSTEC
- \startMPdrawing
- if box_found(\MPpos{\steptableprefix\cellcounter-c}) :
- initialize_box(\MPpos{\steptableprefix\cellcounter-c}) ;
- cells[\cellcounter] := \MPcellsgraphic ;
- fi ;
- \stopMPdrawing
- \egroup
- \def\do####1####2%
- {\setbox\scratchbox\hbox{\@@stepfake{####2}}%
- \ifdim\wd\scratchbox>\dimen####1\global\dimen####1=\wd\scratchbox\fi}%
- \ifcase#1\else\do1{##2}\do3{##3}\fi\do5{##4}}%
- \def\dotext[##1]##2%
- {\bgroup
- \iffirstargument\setupSTEPtexts[##1]\fi
- \initializeSTET
- \startMPdrawing
- if box_found(\MPpos{\steptableprefix\cellcounter-t}) :
- initialize_box(\MPpos{\steptableprefix\cellcounter-t}) ;
- texts[\cellcounter] := \MPtextsgraphic ;
- fi ;
- \stopMPdrawing
- \egroup}
- \doglobal\newcounter\cellcounter#3
- % 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 ;
- \stopMPdrawing
- \egroup}
- \doglobal\newcounter\cellcounter#3
- % finishing graphic touch
- \startMPdrawing
- nofcells := \cellcounter ;
- end_step_table ;
- anchor_box(\MPpos{\steptableprefix origin}) ;
- \stopMPdrawing
- \MPdrawingdonetrue
- \doifelse\@@STPTmethod{0}
- {\setbox0\null}
- {\setbox0\vbox{\MPstaticgraphictrue\getMPdrawing}}%
- \resetMPdrawing
- % typesetting pass
- \dimen6=\@@STPTdistance \dimen6=2\dimen6
- % cell width
- \dimen8=\dimen1
- \advance\dimen8\dimen3
- \advance\dimen8\dimen5
- % offset width
- \ifcase#1\else \advance\dimen8 \dimen6 \fi
- % arrow width
- \advance\dimen8 \@@STPTwidth
- \advance\dimen8 \@@STPToffset
- \advance\dimen8 \@@STPToffset
- \def\docells[##1]##2##3##4%
- {\doglobal\increment\cellcounter
- \def\do####1####2####3####4% % strut really needed there !
- {\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
- \fi
- \do5\relax{##4}\hss}%
- \hpos{\steptableprefix\cellcounter-c}{\@@stepcell{\box8}}
- \endgraf
- \nointerlineskip
- \kern\@@STPTvoffset}
- \def\dotext[##1]##2%
- {\bgroup
- \hskip\dimen8
- \advance\hsize-\dimen8
- \advance\hsize-\dimen6 % twice the offset
- \setbox0\hbox{\@@steptext{##2}}%
-% to do
-% \ifdim\wd0>\hsize
-% \setbox0=\vbox{\@@steptext{##2}}%
-% \fi
-% align
- \hpos{\steptableprefix\cellcounter-t}{\box0}%
- \endgraf
- \egroup
- \nointerlineskip
- \kern\@@STPTvoffset}
- \setbox2\vbox
- {\doglobal\newcounter\cellcounter
- #3\kern-\@@STPTvoffset}
- \hbox
- {\scratchdimen\wd0
- \advance\scratchdimen \MPllx bp
- \raise\MPlly bp\box0
- \hskip-\scratchdimen
- \hpos{\steptableprefix origin}{\box2}}
- \popMPdrawing
- \egroup
- \ifinsidefloat \else \stopbaselinecorrection \@@STPTafter \fi}
-
-\def\MPtablelinesgraphic
- {image ( drawline (
- \@@STELalternative, get_step_table_line(\cellcounter),
- \@@STELrulethickness, \MPcolor{\@@STELcolor} ) )}
-
-\protect
-
-\continueifinputfile{m-steps.tex}
-
-% A simple paragraph-flow test:
-
-\starttext
-
-\startbuffer
-\startSTEPchart
-\cells {A} {B}
-\cells {one} {five} \texts{$+2$}{$-2$}
-\cells {two} {four} \texts{$+3$}{$-3$}
-\cells {three} {three} \texts{$+4$}{$-4$}
-\cells {four} {two} \texts{$+5$}{$-5$}
-\cells {five} {one}
-\stopSTEPchart
-\stopbuffer
-
-\getbuffer
-
-\startnarrower \getbuffer \stopnarrower
-
-\placefigure[left]{}{\getbuffer}
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-streams.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-streams.mkii
deleted file mode 100644
index 67ece4f6685..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-streams.mkii
+++ /dev/null
@@ -1,448 +0,0 @@
-% engine=pdftex
-
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%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
-%D \FlushLeftAndRight
-%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
-
-\def\overloadtextwidth#1%
- {\makeupwidth#1\relax
- \textwidth\makeupwidth
- \hsize\makeupwidth}
-
-\startsetups streamlayer:default:settings
- % set hsize etc, like \overloadtextwidth{12cm}
-\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/modules/mkii/m-subsub.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-subsub.mkii
deleted file mode 100644
index 88be1168000..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-subsub.mkii
+++ /dev/null
@@ -1,76 +0,0 @@
-%D \module
-%D [ file=m-subsub,
-%D version=2000.12.14,
-%D title=\CONTEXT\ Private Modules,
-%D subtitle=More Section Levels,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. This module is not public.
-
-\unprotect
-
-\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=\s!section-8,
- \c!default=\v!subsubsubsubsection]
-
-\definehead
- [\v!subsubsubsubsubsubsection]
- [\c!section=\s!section-9,
- \c!default=\v!subsubsubsubsubsection]
-
-\definehead
- [\v!subsubsubsubsubsubsubsection]
- [\c!section=\s!section-10,
- \c!default=\v!subsubsubsubsubsubsection]
-
-\definehead
- [\v!subsubsubsubsubsubsubsubsection]
- [\c!section=\s!section-11,
- \c!default=\v!subsubsubsubsubsubsubsection]
-
-\definehead
- [\v!subsubsubsubsubsubsubsubsubsection]
- [\c!section=\s!section-12,
- \c!default=\v!subsubsubsubsubsubsubsubsection]
-
-\definehead
- [\v!subsubsubsubsubsubject]
- [\c!coupling=\v!subsubsubsubsubsection,
- \c!default=\v!subsubsubsubsubsection,
- \c!incrementnumber=\v!no]
-
-\definehead
- [\v!subsubsubsubsubsubsubject]
- [\c!coupling=\v!subsubsubsubsubsubsection,
- \c!default=\v!subsubsubsubsubsubsection,
- \c!incrementnumber=\v!no]
-
-\definehead
- [\v!subsubsubsubsubsubsubsubject]
- [\c!coupling=\v!subsubsubsubsubsubsubsection,
- \c!default=\v!subsubsubsubsubsubsubsection,
- \c!incrementnumber=\v!no]
-
-\definehead
- [\v!subsubsubsubsubsubsubsubsubject]
- [\c!coupling=\v!subsubsubsubsubsubsubsubsection,
- \c!default=\v!subsubsubsubsubsubsubsubsection,
- \c!incrementnumber=\v!no]
-
-\definehead
- [\v!subsubsubsubsubsubsubsubsubsubject]
- [\c!coupling=\v!subsubsubsubsubsubsubsubsubsection,
- \c!default=\v!subsubsubsubsubsubsubsubsubsection,
- \c!incrementnumber=\v!no]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-tex4ht.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-tex4ht.mkii
deleted file mode 100644
index 8a3dc9dbb03..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-tex4ht.mkii
+++ /dev/null
@@ -1,9 +0,0 @@
-%D Preliminaty module
-
-\input tex4ht.sty
-
-\appendtoks
- \Preamble{\env{ht-1},\env{ht-2},html}\EndPreamble
-\to \everystarttext
-
-\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-units.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-units.mkii
deleted file mode 100644
index af4629d4860..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-units.mkii
+++ /dev/null
@@ -1,904 +0,0 @@
-%D \module
-%D [ file=m-units,
-%D version=1997.03.19,
-%D title=\CONTEXT\ Extra Modules,
-%D subtitle=Scientific Units,
-%D author={Hans Hagen \& Ton Otten},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Scientific units can be typeset in math mode pretty well,
-%D but occasionally one has to take care of spacing.
-%D Furthermore, entering these units is not that natural as
-%D wanted. Therefore this module presents a more natural way of
-%D doing things, like:
-%D
-%D \starttyping
-%D 1.23 \Cubic \Meter \Per \Second
-%D \stoptyping
-%D
-%D This example shows that we use the order in which we say
-%D things, instead of typeset things. There is a separate
-%D manual for this module.
-
-%D Message number~1 deals with overruling the \type {\Degrees}
-%D macro defined in the core modules. Let's say that this is
-%D an upward compatibility issue.
-
-\startmessages dutch library: units
- title: eenheden
- 1: gebruik \string\Degrees\space\string\Celsius\space in plaats van \string\Celsius !
-\stopmessages
-
-\startmessages english library: units
- title: units
- 1: use \string\Degrees\space\string\Celsius\space instead of \string\Celsius !
-\stopmessages
-
-\startmessages german library: units
- title: Einheiten
- 1: Verwende \string\Degrees\space\string\Celsius\space statt \string\Celsius !
-\stopmessages
-
-\startmessages italian library: units
- title: unita
- 1: usare \string\Degrees\space\string\Celsius\space invece di \string\Celsius !
-\stopmessages
-
-\startmessages norwegian library: units
- title: enheter
- 1: bruk \string\Degrees\space\string\Celsius\space istedenfor \string\Celsius !
-\stopmessages
-
-\startmessages romanian library: units
- title: unitati
- 1: folositi \string\Degrees\space\string\Celsius\space in locul \string\Celsius !
-\stopmessages
-
-\startmessages french library: units
- title: unitas
- 1: utilisez \string\Degrees\space\string\Celsius\space A la place de \string\Celsius !
-\stopmessages
-
-\unprotect
-
-%D This runtime loadable module implements a way of defining
-%D units. The core macro is \type {\dimension}, a rather clever
-%D one that is able to cooperate with some other dimension
-%D related macros. As said, this module enables user to enter:
-%D
-%D \startbuffer
-%D some 10 \Square \Meter \Per \Second or more
-%D \stopbuffer
-%D
-%D \getbuffer
-%D
-%D as:
-%D
-%D \typebuffer
-%D
-%D The units itself are implemented as synonyms.
-%D
-%D \starttyping
-%D \definesynonyms [unit] [units] [\unitmeaning]
-%D \setupsynonyms [unit] [textstyle=\dimension]
-%D \stoptyping
-%D
-%D This definition means that we can ask for the meaning of a
-%D unit using \type {\unitmeaning} and get a list of used
-%D units by saying \type {\placelistofunits}
-%D
-%D We have to use the command \type {\unitmeaning} instead
-%D of \type {\meaning}, simply because the latter is a \TEX\
-%D primitive we don't want to loose. We use the label text
-%D mechanism for translations.
-
-%D \macros
-%D {dimension}
-%D
-%D The core of this module is the low level macro \type
-%D {\dimension}. Before presenting this macro, it's best to
-%D look at some applications, because it's supposed to show
-%D some intelligence that can beter be understood from the
-%D context.
-%D
-%D The next useless examples show some of the cases we want
-%D to handle in a proper way.
-%D
-%D \startbuffer
-%D ... 10 \Square \Meter \Per \Volt \
-%D ... 10 \Square \Meter \Volt \
-%D ... 10 \Meter \Volt \
-%D ... 10 \Milli \Square \Meter \Per \Volt \
-%D ... 10 \Square \Milli \Meter \Per \Volt \
-%D ... 10 \Meter \Times \Meter \
-%D ... 10 \Square \Meter \Times \Meter \
-%D ... 10 \Square \Milli \Meter \Times \Meter \
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D Becomes:
-%D
-%D \getbuffer
-
-%D \macros
-%D {mathematicstypeface, dimensiontypeface,
-%D dimensionhalfspace, dimensionbackspace}
-%D
-%D There are some low level constants, that can be changed
-%D when needed. Some day I will write a decent setup command.
-
-\def\mathematicstypeface{\rm}
-\def\dimensiontypeface {\tf}
-
-\def\dimensionhalfspace {\ifmmode\,\else\hskip+.1em\relax\fi}
-\def\dimensionbackspace {\ifmmode\!\else\hskip-.1em\relax\fi}
-
-%D \macros
-%D {smashdimensionpower}
-%D
-%D Sometimes the baseline distance is not enough to provide
-%D for superscripts, so we smash their height by default.
-
-\newif\ifsmashdimensionpower \smashdimensionpowertrue
-
-%D The dimension mechanism uses a lot of signals to keep
-%D track if the current state.
-
-\newsignal\dimensionsignal
-\newsignal\dimensionpowersignal
-\newsignal\dimensionmidfixsignal
-\newsignal\dimensionaddfixsignal
-
-\let\thedimensionprefix = \empty
-\let\thedimensionpower = \empty
-
-%D \macros
-%D {spaceddimensions,textdimensions}
-%D
-%D The actual definition of \type {\dimension} overruled the
-%D one in the core modules. The boolean can be used to
-%D force spacing between units. Vergelijk {\Newton \Meter}
-%D eens met {\spaceddimensionstrue \Newton \Meter}. The
-%D rather ugly test prevents problems with nested dimensions.
-
-\newif\ifspaceddimensions \spaceddimensionsfalse % user switch
-\newif\iftextdimensions \textdimensionsfalse % user switch
-
-%D You can see the consequence of forcing text dimensions
-%D when you compare the following code:
-%D
-%D \starttyping
-%D {\rm test \Square \Meter \Per \Second\ ziezo\Degrees} \par
-%D {\ss test \Square \Meter \Per \Second\ ziezo} \par
-%D {\tt test \Square \Meter \Per \Second\ ziezo}
-%D
-%D \textdimensionstrue
-%D
-%D {\rm test \Square \Meter \Per \Second\ ziezo} \par
-%D {\ss test \Square \Meter \Per \Second\ ziezo} \par
-%D {\tt test \Square \Meter \Per \Second\ ziezo}
-%D \stoptyping
-
-\newif\ifnesteddimension \nesteddimensionfalse % local switch
-
-\def\dodimensionpower#1%
- {\iftextdimensions\expandafter\high\else\expandafter^\fi{#1}}
-
-\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.
-
-\def\udimensionhalfspace {\dodimensionspace\dimensionhalfspace}
-\def\udimensionbackspace {\dodimensionspace\dimensionbackspace}
-
-\def\dodimensionspace
- {\iftextdimensions
- \begingroup
- \setbox0\hbox{i}%
- \setbox2\hbox{m}%
- \ifdim\wd0=\wd2
- \endgroup
- \@EAEAEA\gobbleoneargument
- \else
- \endgroup
- \fi
- \fi}
-
-\unexpanded\def\dimension#1%
- {\begingroup
- \global\let\savedthedimensionprefix\thedimensionprefix
- \global\let\savedthedimensionpower\thedimensionpower
- \unexpanded\def\dimension##1{\global\nesteddimensiontrue}%
- \let\dimensionprefix\dimension
- \let\dimensionmidfix\dimension
- \let\dimensionsuffix\dimension
- \let\dimensionpower \dimension
- \global\nesteddimensionfalse
- \setbox\scratchbox\hbox{\ustartmathmode#1\ustopmathmode}% pre-roll
- \global\let\thedimensionprefix\savedthedimensionprefix
- \global\let\thedimensionpower \savedthedimensionpower
- \endgroup
- \ifnesteddimension#1\else\dodimension{#1}\fi}
-
-\def\dodimension#1%
- {\dontbreakdimension
- \ifdim\scratchdimen=\zeropoint\relax
- \ifmmode
- \udimensionhalfspace
- \udimensionhalfspace
- \fi
- \ustartmathmode\dimensiontypeface
- \else
- \ustartmathmode\dimensiontypeface
- \ifspaceddimensions
- \ifdim\scratchdimen=\dimensionsignal\relax
- \udimensionhalfspace
- \else\ifdim\scratchdimen=\dimensionpowersignal\relax
- \udimensionhalfspace
- \fi
- \fi
- \fi
- \fi
- \umathematicstypeface\thedimensionprefix#1%
- \ifx\thedimensionpower\empty
- \else\ifsmashdimensionpower
- \setbox\scratchbox=\hbox
- {\iftextdimensions
- \tx\thedimensionpower
- \else
- $\scriptstyle\thedimensionpower$%
- \fi}%
- \ht\scratchbox=\zeropoint
- \dodimensionpower{\box\scratchbox}%
- \else
- \dodimensionpower{\thedimensionpower}%
- \fi\fi
- \ustopmathmode
- % otherwise nobreak before space in 2 \Milli \Meter\ blabla
- \doifnotmode{atpragma}{\nobreak}% this was always \nobreak
- % only test this at pragma
- \ifx\thedimensionpower\empty
- \hskip\dimensionsignal
- \else
- \hskip\dimensionpowersignal
- \fi
- \global\let\thedimensionprefix\empty
- \global\let\thedimensionpower\empty}
-
-%D \macros
-%D {dontbreakdimension,
-%D dimensionprefix, dimensionaddfix,
-%D dimensionnopfix, dimensionmidfix,
-%D dimensionpower}
-%D
-%D Here are some auxilliary macros.
-
-\def\dontbreakdimension
- {\scratchdimen\lastskip
- \unskip
- \nobreak
- \hskip\scratchdimen
- \nobreak}
-
-\def\dimensionprefix#1%
- {\gdef\thedimensionprefix{#1}}
-
-\def\dimensionaddfix#1%
- {\unskip
- %\mathematics{\umathematicstypeface#1}%
- \ustartmathmode\umathematicstypeface#1\ustopmathmode
- \nobreak
- \hskip\dimensionaddfixsignal}
-
-\def\dimensionnopfix#1%
- {\dontbreakdimension
- \ifdim\scratchdimen=\dimensionpowersignal\relax
- \ustartmathmode
- \else
- \ustartmathmode
- \udimensionhalfspace
- \nobreak
- \fi
- \umathematicstypeface#1%
- \ustopmathmode
- \nobreak
- \hskip\dimensionsignal}
-
-\def\dimensionmidfix#1%
- {\dontbreakdimension
- \ifdim\scratchdimen=\dimensionpowersignal\relax
- \ustartmathmode
- \udimensionbackspace
- \nobreak
- \else
- \ustartmathmode
- \fi
- \umathematicstypeface#1%
- \ustopmathmode
- \nobreak
- \hskip\dimensionmidfixsignal}
-
-\def\dimensionpower#1%
- {\gdef\thedimensionpower{#1}}
-
-%D \macros
-%D {SIunits, noSI, doSI}
-%D
-%D Some low level unit switching macros:
-
-\newif\ifSIunits \SIunitstrue
-
-\def\noSI#1{\begingroup\SIunitsfalse#1\endgroup}
-\def\doSI#1{\begingroup\SIunitstrue #1\endgroup}
-
-%D \macros
-%D {Degrees}
-%D
-%D We can fake the degrees symbol with:
-
-\def\Degrees{\dimensionaddfix{\mathematics{^\circ}}}
-
-%D \macros
-%D {Unit, NoUnit}
-%D
-%D When a dimension has no leading number, we can use \type
-%D {\Unit}, and when no unit is appended, \type {\NoUnit} is
-%D to be used, just to prevent the prefix migrating to the
-%D next occasion.
-
-\def\Unit {\hskip\dimensionsignal}
-\def\NoUnit {\dimension{}}
-
-%D The mechanism described at the top of this module, depends
-%D on several dimensional components, like prefixes:
-
-\def\Atto {\dimensionprefix{a}}
-\def\Femto {\dimensionprefix{f}}
-\def\Pico {\dimensionprefix{p}}
-\def\Nano {\dimensionprefix{n}}
-\def\Micro {\dimensionprefix{\iftextdimensions u\else\mu\fi}}
-\def\Milli {\dimensionprefix{m}}
-\def\Centi {\dimensionprefix{c}}
-\def\Deci {\dimensionprefix{d}} % 10^01
-\def\Hecto {\dimensionprefix{h}} % 10^02
-\def\Kilo {\dimensionprefix{k}} % 10^03
-\def\Mega {\dimensionprefix{M}} % 10^06
-\def\Giga {\dimensionprefix{G}} % 10^09
-\def\Tera {\dimensionprefix{T}} % 10^12
-\def\Peta {\dimensionprefix{P}} % 10^15
-\def\Exa {\dimensionprefix{E}} % 10^18
-
-%def\Terra {\dimensionprefix{T}} % for old times sake
-
-\def\Kibi {\dimensionprefix{ki}} % 2^10
-\def\Mebi {\dimensionprefix{Mi}} % 2^20
-\def\Gibi {\dimensionprefix{Gi}} % 2^30
-\def\Tebi {\dimensionprefix{Ti}} % 2^40
-\def\Pebi {\dimensionprefix{Pi}} % 2^50
-
-%D and binary prefixes:
-
-\def\Kibi {\dimensionprefix{Ki}}
-\def\Mebi {\dimensionprefix{Mi}}
-\def\Gibi {\dimensionprefix{Gi}}
-\def\Tebi {\dimensionprefix{Ti}}
-\def\Pebi {\dimensionprefix{Pi}}
-\def\Exbi {\dimensionprefix{Ei}}
-\def\Zebi {\dimensionprefix{Zi}}
-\def\Yobi {\dimensionprefix{Yi}}
-
-%D and operators:
-
-\def\Times {\dimensionnopfix{\iftextdimensions.\else\cdot\fi}}
-\def\Solidus {\dimensionmidfix{/}}
-\def\Per {\dimensionmidfix{/}}
-\def\OutOf {\dimensionnopfix{:}}
-
-%D and suffixes:
-
-\def\Linear {\dimensionpower{1}}
-\def\Square {\dimensionpower{2}}
-\def\Cubic {\dimensionpower{3}}
-
-\def\Inverse {\dimensionpower{-1}}
-\def\ILinear {\dimensionpower{-1}}
-\def\ISquare {\dimensionpower{-2}}
-\def\ICubic {\dimensionpower{-3}}
-
-%D Apart from these components, the units themselves are
-%D defined using the synonym mechanism. First we define some
-%D length and volume related units.
-
-\getvalue{\v!unit} [Meter] {m} {meter}
-\getvalue{\v!unit} [pMeter] {\Pico \Meter} {picometer}
-\getvalue{\v!unit} [nMeter] {\Nano \Meter} {nanometer}
-\getvalue{\v!unit} [uMeter] {\Micro \Meter} {micrometer}
-\getvalue{\v!unit} [mMeter] {\Milli \Meter} {millimeter}
-\getvalue{\v!unit} [cMeter] {\Centi \Meter} {centimeter}
-\getvalue{\v!unit} [dMeter] {\Deci \Meter} {decimeter}
-\getvalue{\v!unit} [hMeter] {\Hecto \Meter} {hectometer}
-\getvalue{\v!unit} [kMeter] {\Kilo \Meter} {kilometer}
-
-%D After some discussion on the \CONTEXT\ mailing list in
-%D february 2002 it was decided to go from L to l for liters
-%D (Karel Wesselings alternative: \mathematics{\ell}).
-
-\getvalue{\v!unit} [Liter] {l} {liter}
-\getvalue{\v!unit} [mLiter] {\Milli \Liter} {milliliter}
-\getvalue{\v!unit} [cLiter] {\Centi \Liter} {centiliter}
-\getvalue{\v!unit} [dLiter] {\Deci \Liter} {deciliter}
-
-%D Next we define time related units (\type {\ifSI} still dutch only).
-
-\getvalue{\v!unit} [Sec] {s} {\labeltext{u:sec}}
-\getvalue{\v!unit} [fSec] {\Femto \Sec} {\labeltext{u:fsec}}
-\getvalue{\v!unit} [pSec] {\Pico \Sec} {\labeltext{u:psec}}
-\getvalue{\v!unit} [nSec] {\Nano \Sec} {\labeltext{u:nsec}}
-\getvalue{\v!unit} [uSec] {\Micro \Sec} {\labeltext{u:usec}}
-\getvalue{\v!unit} [mSec] {\Milli \Sec} {\labeltext{u:msec}}
-\getvalue{\v!unit} [Year] {\ifSIunits a \else j\fi} {\labeltext{u:year}}
-\getvalue{\v!unit} [Month] {m} {\labeltext{u:month}}
-\getvalue{\v!unit} [Week] {w} {\labeltext{u:week}}
-\getvalue{\v!unit} [Day] {d} {\labeltext{u:day}}
-\getvalue{\v!unit} [Hour] {\ifSIunits h \else u\fi} {\labeltext{u:hour}}
-\getvalue{\v!unit} [Min] {min} {\labeltext{u:min}}
-
-\setuplabeltext
- [\s!nl]
- [u:sec=seconde,
- u:psec=picoseconde,
- u:fsec=femtoseconde,
- u:nsec=nanoseconde,
- u:usec=microseconde,
- u:msec=milliseconde,
- u:year=jaar,
- u:month=maand,
- u:week=week,
- u:day=dag,
- u:hour=uur,
- u:min=minuten]
-
-\setuplabeltext
- [\s!en]
- [u:sec=second,
- u:fsec=femtosecond,
- u:psec=picosecond,
- u:nsec=nanosecond,
- u:usec=microsecond,
- u:msec=millisecond,
- u:year=year,
- u:month=month,
- u:week=week,
- u:day=day,
- u:hour=hour,
- u:min=minutes]
-
-\setuplabeltext
- [\s!de]
- [u:sec=Sekunde,
- u:fsec=Femtosekunde,
- u:psec=Picosekunde,
- u:nsec=Nanosekunde,
- u:usec=Microsekunde,
- u:msec=Millisekunde,
- u:year=Jahr,
- u:month=Monat,
- u:week=Woche,
- u:day=Tag,
- u:hour=Stunde,
- u:min=Minuten]
-
-\setuplabeltext
- [\s!hr]
- [u:sec=sekunda,
- u:fsec=femtosekunda,
- u:psec=pikosekunda,
- u:nsec=nanosekunda,
- u:usec=mikrosekunda,
- u:msec=milisekunda,
- u:year=godina,
- u:month=mjesec,
- u:week=tjedan,
- u:day=dan,
- u:hour=sat,
- u:min=minuta]
-
-\setuplabeltext
- [\s!it]
- [u:sec=secondo,
- u:fsec=femtosecondo,
- u:psec=picosecondo,
- u:nsec=nanosecondo,
- u:usec=microsecondo,
- u:msec=millisecondo,
- u:year=anno,
- u:month=mese,
- u:week=settimana,
- u:day=giorno,
- u:hour=ora,
- u:min=minuti]
-
-%D Then we define some angles.
-
-\getvalue{\v!unit} [Rad] {rad} {\labeltext{u:rad}}
-\getvalue{\v!unit} [Deg] {{\mathematics{^\circ}}} {\labeltext{u:deg}}
-
-\setuplabeltext
- [\s!nl]
- [u:rad=hoek radialen,
- u:deg=hoek graden]
-
-\setuplabeltext
- [\s!en]
- [u:rad=angle radians,
- u:deg=angle degrees]
-
-\setuplabeltext
- [\s!de]
- [u:rad=Bogenma\SS,
- u:deg=Gradma\SS]
-
-\setuplabeltext
- [\s!hr]
- [u:rad=radijani,
- u:deg=kutni stupnjevi]
-
-\setuplabeltext
- [\s!it]
- [u:rad=radianti,
- u:deg=angoli sessagesimali]
-
-%D Rotation and frequency related units are defined by:
-
-\getvalue{\v!unit} [Hertz] {Hz} {Hertz}
-\getvalue{\v!unit} [kHertz] {\Kilo \Hertz} {kilo Hertz}
-\getvalue{\v!unit} [MHertz] {\Mega \Hertz} {mega Hertz}
-\getvalue{\v!unit} [GHertz] {\Giga \Hertz} {giga Hertz}
-\getvalue{\v!unit} [THertz] {\Tera \Hertz} {tera Hertz}
-\getvalue{\v!unit} [mHertz] {\Milli \Hertz} {milli Hertz}
-
-\getvalue{\v!unit} [RevPerSec] {RPS} {\labeltext{u:rps}}
-\getvalue{\v!unit} [RevPerMin] {RPM} {\labeltext{u:rpm}}
-
-\setuplabeltext
- [\s!nl]
- [u:rps=omwentelingen per seconde,
- u:rpm=omwentelingen per minuut]
-
-\setuplabeltext
- [\s!en]
- [u:rps=revolutions per second,
- u:rpm=revolutions per minute]
-
-\setuplabeltext
- [\s!de]
- [u:rps=Umdrehungen pro Sekunde,
- u:rpm=Umdrehungen pro Minute]
-
-\setuplabeltext
- [\s!hr]
- [u:rps=okretaji po sekundi,
- u:rpm=okretaji po minuti]
-
-\setuplabeltext
- [\s!it]
- [u:rps=giri al secondo,
- u:rpm=giri al minuto]
-
-%D Mass and force:
-
-\getvalue{\v!unit} [Gram] {g} {gram}
-\getvalue{\v!unit} [uGram] {\Micro \Gram} {microgram}
-\getvalue{\v!unit} [mGram] {\Milli \Gram} {milligram}
-\getvalue{\v!unit} [kGram] {\Kilo \Gram} {kilogram}
-\getvalue{\v!unit} [Atom] {u} {\labeltext{u:u}}
-
-\getvalue{\v!unit} [Newton] {N} {Newton}
-\getvalue{\v!unit} [kNewton] {\Kilo \Newton} {kilo Newton}
-
-\getvalue{\v!unit} [Pascal] {Pa} {Pascal}
-\getvalue{\v!unit} [mPascal] {\Milli \Pascal} {milli Pascal}
-\getvalue{\v!unit} [kPascal] {\Kilo \Pascal} {kilo Pascal}
-
-\setuplabeltext
- [\s!nl]
- [u:u=atomaire massa eenheid]
-
-\setuplabeltext
- [\s!en]
- [u:u=atom mass unit]
-
-\setuplabeltext
- [\s!de]
- [u:u=Atomare Masseneinheit]
-
-\setuplabeltext
- [\s!hr]
- [u:u=unificirana atomska jedinica mase]
-
-\setuplabeltext
- [\s!it]
- [u:u=unit\`a di massa atomica]
-
-%D Energy units comes in two alternatives:
-
-\getvalue{\v!unit} [Joule] {J} {Joule}
-\getvalue{\v!unit} [mJoule] {\Milli \Joule} {milli Joule}
-\getvalue{\v!unit} [kJoule] {\Kilo \Joule} {kilo Joule}
-\getvalue{\v!unit} [MJoule] {\Mega \Joule} {mega Joule}
-\getvalue{\v!unit} [GJoule] {\Giga \Joule} {giga Joule}
-
-\getvalue{\v!unit} [Watt] {W} {Watt}
-\getvalue{\v!unit} [mWatt] {\Milli \Watt} {milli Watt}
-\getvalue{\v!unit} [kWatt] {\Kilo \Watt} {kilo Watt}
-\getvalue{\v!unit} [MWatt] {\Mega \Watt} {mega Watt}
-\getvalue{\v!unit} [GWatt] {\Giga \Watt} {giga Watt}
-\getvalue{\v!unit} [TWatt] {\Tera \Watt} {tera Watt}
-
-%D Although Celsius is no longer permitted, we define it by
-%D saying:
-
-\getvalue{\v!unit} [Celsius] {C} {Celsius}
-\getvalue{\v!unit} [Kelvin] {K} {Kelvin}
-\getvalue{\v!unit} [Fahrenheit] {F} {Fahrenheit}
-
-%D Some chemic related units are:
-
-\getvalue{\v!unit} [Mol] {mol} {mol}
-\getvalue{\v!unit} [mMol] {\Milli \Mol} {millimol}
-\getvalue{\v!unit} [kMol] {\Kilo \Mol} {kilomol}
-\getvalue{\v!unit} [Molair] {M} {molair (\Mol \Per \Liter)}
-\getvalue{\v!unit} [Equivalent] {eq} {equivalent}
-\getvalue{\v!unit} [mEquivalent] {\Milli \Equivalent} {milli equivalent}
-
-%D There are quite a lot units related to electricity and
-%D magnetism:
-
-\getvalue{\v!unit} [Farad] {F} {Farad}
-\getvalue{\v!unit} [pFarad] {\Pico \Farad} {pico Farad}
-\getvalue{\v!unit} [nFarad] {\Nano \Farad} {nano Farad}
-\getvalue{\v!unit} [uFarad] {\Micro \Farad} {micro Farad}
-\getvalue{\v!unit} [mFarad] {\Milli \Farad} {milli Farad}
-
-\getvalue{\v!unit} [Ohm] {\Omega} {Ohm}
-\getvalue{\v!unit} [kOhm] {\Kilo \Ohm} {kilo Ohm}
-
-\getvalue{\v!unit} [Siemens] {S} {Siemens}
-
-\getvalue{\v!unit} [Ampere] {A} {Amp\`ere}
-\getvalue{\v!unit} [mAmpere] {\Milli \Ampere} {milli Amp\`ere}
-
-\getvalue{\v!unit} [Coulomb] {C} {Coulomb}
-
-\getvalue{\v!unit} [Volt] {V} {Volt}
-\getvalue{\v!unit} [mVolt] {\Milli \Volt} {milli Volt}
-\getvalue{\v!unit} [kVolt] {\Kilo \Volt} {kilo Volt}
-\getvalue{\v!unit} [eVolt] {eV} {electronvolt}
-\getvalue{\v!unit} [keVolt] {\Kilo \eVolt} {kilo electronvolt}
-\getvalue{\v!unit} [MeVolt] {\Mega \eVolt} {mega electronvolt}
-
-\getvalue{\v!unit} [Tesla] {T} {Tesla}
-
-\getvalue{\v!unit} [VoltAC] {V_{\xbox{ac}}} {\labeltext{u:vac}}
-\getvalue{\v!unit} [VoltDC] {V_{\xbox{dc}}} {\labeltext{u:vdc}}
-
-\setuplabeltext
- [\s!nl]
- [u:vac=wisselspanning,
- u:vdc=gelijkspanning]
-
-\setuplabeltext
- [\s!en]
- [u:vac=alternating current,
- u:vdc=direct current]
-
-\setuplabeltext
- [\s!de]
- [u:vac=Wechselspannung,
- u:vdc=Gleichspannung]
-
-\setuplabeltext
- [\s!hr]
- [u:vac=izmjeni\ccaron ni napon,
- u:vdc=istosmjerni napon]
-
-\setuplabeltext
- [\s!it]
- [u:vac=corrente alternata,
- u:vdc=corrente continua]
-
-%D Network bandwidth is specified in Bits:
-
-\getvalue{\v!unit} [Bit] {bit} {\labeltext{u:bit}}
-\getvalue{\v!unit} [Baud] {Bd} {Baud (Bit/s)}
-
-%D Computer memory size is specified in Bytes:
-
-\getvalue{\v!unit} [Byte] {B} {\labeltext{u:byte}}
-\getvalue{\v!unit} [kByte] {\Kilo \Byte} {kilo Byte}
-\getvalue{\v!unit} [MByte] {\Mega \Byte} {mega Byte}
-\getvalue{\v!unit} [GByte] {\Giga \Byte} {giga Byte}
-\getvalue{\v!unit} [TByte] {\Tera \Byte} {tera Byte}
-
-\setuplabeltext
- [\s!en]
- [u:bit=Bit,
- u:byte=Byte]
-
-\setuplabeltext
- [\s!hr]
- [u:bit=bit,
- u:byte=bajt]
-
-%D Telecommunication call density is specified in Erlangs:
-
-\getvalue{\v!unit} [Erlang] {E} {Erlang}
-
-%D Some radiation related units:
-
-\getvalue{\v!unit} [Bequerel] {Bq} {Bequerel}
-\getvalue{\v!unit} [MBequerel] {\Mega \Bequerel} {Bequerel}
-\getvalue{\v!unit} [Sievert] {Sv} {Sievert}
-\getvalue{\v!unit} [mSievert] {\Milli \Sievert} {milli Sievert}
-
-%D Light:
-
-\getvalue{\v!unit} [Candela] {cd} {Candela}
-
-%D and some sound ones:
-
-\getvalue{\v!unit} [Bell] {B} {Bell}
-\getvalue{\v!unit} [dBell] {\Deci \Bell} {decibel}
-
-%D We also define some non||regular, sometimes even forbidden,
-%D units:
-
-\getvalue{\v!unit} [At] {at} {\labeltext{u:at}}
-\getvalue{\v!unit} [Atm] {atm} {\labeltext{u:atm}}
-\getvalue{\v!unit} [Bar] {bar} {bar (100 \Kilo \Pascal)}
-\getvalue{\v!unit} [EVolt] {eV} {electronvolt}
-\getvalue{\v!unit} [Foot] {ft} {\labeltext{u:ft}}
-\getvalue{\v!unit} [Inch] {inch} {\labeltext{u:inch}}
-\getvalue{\v!unit} [Cal] {cal} {\labeltext{u:cal}}
-\getvalue{\v!unit} [Force] {f} {\labeltext{u:f}}
-\getvalue{\v!unit} [kCal] {\Kilo \Cal} {\labeltext{u:kcal}}
-\getvalue{\v!unit} [Lux] {lux} {lux}
-
-
-\def\xPercent {\dimensionaddfix{\percent }}
-\def\xPromille{\dimensionaddfix{\promille}}
-
-\getvalue{\v!unit} [Percent] {\xPercent } {percent}
-\getvalue{\v!unit} [Permille] {\xPromille} {promille}
-\getvalue{\v!unit} [Promille] {\xPromille} {promille}
-
-%D Some more, thanks to Tobias:
-
-\getvalue{\v!unit} [Gray] {Gr} {Gray}
-\getvalue{\v!unit} [Weber] {Wb} {Weber}
-\getvalue{\v!unit} [Henry] {H} {Henry}
-\getvalue{\v!unit} [Sterant] {sr} {Sterant}
-\getvalue{\v!unit} [Angstrom] {\hbox{\Aring}} {\Aring ngstr\"om}
-\getvalue{\v!unit} [Gauss] {G} {Gauss}
-
-\setuplabeltext
- [\s!nl]
- [u:at=technische atmosfeer,
- u:atm=fysische atmosfeer,
- u:ft=voet,
- u:cal=calorie,
- u:f=kracht (force),
- u:kcal=kilocalorie]
-
-\setuplabeltext
- [\s!en]
- [u:at=technical atmospheric pressure,
- u:atm=physical atmospheric pressure,
- u:ft=foot,
- u:inch=inch,
- u:cal=calory,
- u:f=force,
- u:kcal=kilocalory]
-
-\setuplabeltext
- [\s!de]
- [u:at=Technischer atmosph\"arischer Druck,
- u:atm=physkalischer atmosph\"arischer Druck,
- u:ft=Fu\SS,
- u:cal=Kalorien,
- u:f=Force,
- u:kcal=Kilokalorien]
-
-\setuplabeltext
- [\s!hr]
- [u:at=tehni\ccaron ka atmosfera,
- u:atm=standardna atmosfera,
- u:ft=stopa,
- u:inch=in\ccaron a,
- u:cal=kalorija,
- u:f=Force,
- u:kcal=Kilokalorien]
-
-\setuplabeltext
- [\s!it]
- [u:at=pressione atmosferica tecnica,
- u:atm=pressione atmosfera fisica,
- u:ft=piede,
- u:cal=caloria,
- u:f=forza,
- u:kcal=chilocaloria]
-
-%D Here are some old ones, still there for compatibility
-%D reasons. These will probably be obsolete in a few years.
-
-\def\MeterTwee {\Square \Meter}
-\def\mMeterTwee {\Square \Milli \Meter}
-\def\cMeterTwee {\Square \Centi \Meter}
-\def\dMeterTwee {\Square \Deci \Meter}
-\def\kMeterTwee {\Square \Kilo \Meter}
-
-\def\MeterDrie {\Cubic \Meter}
-\def\mMeterDrie {\Cubic \Milli \Meter}
-\def\cMeterDrie {\Kubic \Centi \Meter}
-\def\dMeterDrie {\Cubic \Deci \Meter}
-\def\kMeterDrie {\Cubic \Kilo \Meter}
-
-\def\LiterTwee {\Square \Liter}
-\def\SecTwee {\Square \Sec}
-\def\SecMinEen {\Inverse \Sec}
-
-%D To make ourselves happy, we define some dutch specific
-%D units:
-
-\startinterface dutch
-
- \getvalue{\v!unit} [PaardenKracht] {pk} {paardenkracht}
- \getvalue{\v!unit} [Duits] {D} {duits}
- \getvalue{\v!unit} [Kwik] {Hg} {kwikkolom}
- \getvalue{\v!unit} [Hectare] {ha} {hectare}
- \getvalue{\v!unit} [kGramForce] {\Kilo \Gram \Force} {kilogramforce}
- \getvalue{\v!unit} [kWattUur] {\Kilo \Watt \Uur} {kilowattuur}
- \getvalue{\v!unit} [MeterKwik] {\Meter \Kwik} {meter kwikkolom}
- \getvalue{\v!unit} [Waterkolom] {WK} {waterkolom}
- \getvalue{\v!unit} [MeterWater] {\Meter \Waterkolom} {meter waterkolom}
- \getvalue{\v!unit} [DrogeStof] {ds} {droge stof}
- \getvalue{\v!unit} [Normaal] {N} {normaal}
-
- \getvalue{\v!unit} [Ton] {t} {ton}
- \getvalue{\v!unit} [kTon] {\Kilo \Ton} {kiloton}
-
- \let \OmwPerSec \RevPerSec
- \let \OmwPerMin \RevPerMin
- \let \Graden \Deg
- \let \PaardeKracht \PaardenKracht
- \let \Atoom \Atom
- \let \Heure \Hour
- \let \Jaar \Year
- \let \Maand \Month
- \let \Dag \Day
- \let \Uur \Hour
-
-\stopinterface
-
-%D Finally we define some equivalents. By using \type {\let}
-%D we can be sure that they don't end up double in the lists of
-%D units.
-
-\let \Second \Sec
-\let \Kubic \Cubic
-\let \IKubic \ICubic
-
-%D Option:
-
-% \def\Micro{\dimensionprefix{\iftextdimensions\mathematics\mu \else\mu \fi}}
-% \def\Times{\dimensionnopfix{\iftextdimensions\mathematics\cdot\else\cdot\fi}}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/m-visual.mkii b/Master/texmf-dist/tex/context/modules/mkii/m-visual.mkii
deleted file mode 100644
index ae52f65718f..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/m-visual.mkii
+++ /dev/null
@@ -1,315 +0,0 @@
-%D \module
-%D [ file=m-visual,
-%D version=2000.01.10,
-%D title=\CONTEXT\ Extra Modules,
-%D subtitle=Visualization and Faking,
-%D author={Hans Hagen \& Ton Otten},
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-%D This module collect a few more visual debugger features. I
-%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]
-
-\newif\iffakebaseline \fakebaselinetrue
-
-\def\fakerule#1%
- {\strut
- \startcolor[fakerulecolor]%
- \iffakebaseline
- \vrule\!!height1.25ex\!!depth-.05ex\!!width#1%
- \kern-#1%
- \vrule\!!height-.05ex\!!depth .25ex\!!width#1%
- \else
- \vrule\!!height1.25ex\!!depth .25ex\!!width#1%
- \fi
- \stopcolor
- \allowbreak}
-
-\def\dorandomrecurse#1%
- {\getrandomcount\scratchcounter{1}{#1}%
- \dorecurse\scratchcounter}
-
-% can be used in hbox, so %'s are really needed
-
-\unexpanded\def\fakelines#1#2% min max / 3 10
- {\fakeparindent
- \scratchdimen\hsize
- \ifindentation
- \advance\scratchdimen -\parindent
- \fi
- \fakerule\scratchdimen\break
- \getrandomcount\scratchcounter{\ifcase0#1 3\else#1\fi}{\ifcase0#2 10\else#2\fi}%
- \dorecurse\scratchcounter{\fakerule\hsize}%
- \getrandomdimen\scratchdimen{.25\hsize}\hsize
- \fakerule\scratchdimen
- \par} % indeed
-
-\unexpanded\def\fakewords
- {\ifvmode\fakeparindent\fi\onlyfakewords}
-
-\definepalet
- [fakerule]
- [fr1c=darkred,
- fr2c=darkgreen,
- fr3c=darkblue,
- fr4c=darkyellow,
- fr5c=darkgray]
-
-\unexpanded\def\onlyfakewords#1#2% min max / 10 40
- {\getrandomcount\scratchcounter{\ifcase0#1 10\else#1\fi}{\ifcase0#2 40\else#2\fi}%
- \dofakewords\scratchcounter
- } % no \par
-
-\unexpanded\def\fakenwords#1#2% words seed
- {\fakeparindent
- \getrandomseed\fakedwordseed
- \setrandomseed{\ifcase0#2 #1\else#2\fi}%
- \dofakewords{#1}%
- \setrandomseed\fakedwordseed
- } % no \par
-
-\def\dofakewords#1%
- {\bgroup
- \dorecurse{#1}
- {\getrandomcount\scratchcounter{1}{5}%
- \dorecurse\scratchcounter
- {\getrandomdimen\scratchdimen{.5em}{1.25em}%
- \fakerule\scratchdimen}%
- \space}%
- \removeunwantedspaces
- \egroup}
-
-\def\doshowfakewords#1%
- {\bgroup
- \setuppalet[fakerule]%
- \definecolor[fakerulecolor]%
- \dorecurse{#1}
- {\getrandomcount\scratchcounter{1}{5}%
- \dorecurse\scratchcounter
- {\getrandomdimen\scratchdimen{.5em}{1.25em}%
- \color[fr\recurselevel c]{\fakerule\scratchdimen}}%
- \space}%
- \removeunwantedspaces
- \egroup}
-
-\def\showfakewords{\let\dofakewords\doshowfakewords}
-
-\def\fakeword
- {\fakewords{1}{1}} % no \plusone
-
-\def\fakeparindent
- {\noindent
- \ifindentation
- \ifx\dofakedroppedcaps\relax
- {\fakeparindentcolor
- \vrule
- \!!height \strutheight % not longer .5ex
- \!!depth \strutdepth % not longer 0pt
- \!!width \parindent}%
- \else
- \dofakedroppedcaps \let\dofakedroppedcaps\relax
- \fi
-% \else
-% \dontleavehmode
- \fi}
-
-\let\dofakedroppedcaps\relax
-
-\unexpanded\def\fakedroppedcaps#1%
- {\ifnum#1>0
- \def\dofakedroppedcaps
- {\setbox\scratchbox\hbox
- {\setbox\scratchbox\hbox{W}%
- \scratchdimen#1\lineheight
- \advance\scratchdimen -\lineheight
- \advance\scratchdimen \dp\strutbox
- \vrule
- \!!width#1\wd\scratchbox
- \!!height\ht\scratchbox
- \!!depth\scratchdimen}%
- \ht\scratchbox\ht\strutbox
- \dp\scratchbox\dp\strutbox
- \hangindent\wd\scratchbox
- \advance\hangindent .5em
- \wd\scratchbox\hangindent
- \hangafter-#1\noindent
- \llap{\fakeparindentcolor\box\scratchbox}}%
- \fi}
-
-\newcounter\noffakedfigures
-
-\unexpanded\def\showfakefigure
- {\donetrue\dodoubleempty\dofakefigure}
-
-\unexpanded\def\fakefigure
- {\donefalse\dodoubleempty\dofakefigure}
-
-\def\dofakefigure[#1][#2]#3#4#5#6% [] [] minwidth maxwidth minheight maxheight
- {\doglobal\increment\noffakedfigures
- \ifdone
- \endgraf
- \hbox to \hsize
- {\hss\fakeparindentcolor
- \strut\bf Figure \noffakedfigures
- \doifsomething{#1}{\space(#1)}%
- \hss}
- \endgraf
- \fi
- \getvalue{\e!place\v!figure}
- [#1][#2]%
- {\freezerandomseed
- \let\endstrut\relax
- \let\begstrut\relax
- \doifinsetelse{#1}{\v!left,\v!right}
- {\fakewords{2}{4}}
- {\fakewords{4}{10}}}%
- {\getrandomdimen{\dimen0}{#3}{#4}%
- \getrandomdimen{\dimen2}{#5}{#6}%
- \doifinset{#1}{\v!left,\v!right}
- {\dimen0=.75\dimen0
- \ifdim\dimen0>.6\hsize \dimen0=.5\hsize\fi
- \ifdim\dimen0<.3\hsize \dimen0=.3\hsize\fi}%
- \framed
- [\c!width=\dimen0,
- \c!height=\dimen2,
- \c!frame=\v!off,
- \c!background=\v!color,
- \c!backgroundcolor=fakeparindentcolor]
- {\bf\white#1}}%
- \defrostrandomseed}
-
-\def\fakeformula
- {\dimen0\zeropoint
- \getrandomcount\scratchcounter{3}{6}%
- \dorecurse\scratchcounter
- {\getrandomdimen\scratchdimen{1em}{3em}%
- \mathinner{\red\fakerule\scratchdimen}%
- \ifnum\recurselevel<\scratchcounter+\fi
- \advance\scratchdimen\dimen0}%
- =\mathinner{\red\fakerule\scratchdimen}}
-
-\def\fakespacingformula
- {\color[fakebaselinecolor]{\ruledbaseline}\fakeformula}
-
-%D test \type{\bodyfontgrid}\space test
-%D test \type{\emexgrid} \space test
-
-\def\smashedgrid
- {\dosingleempty\dosmashedgrid}
-
-\def\dosmashedgrid[#1]%
- {\hsmashed
- {\setbox\scratchbox=\hbox
- {\basegrid
- [\c!nx=10,\c!ny=10,\c!dx=1,\c!dy=1,
- \c!unit=\bodyfontsize,#1]}%
- \hbox to \zeropoint
- {\hss\lower.5\ht\scratchbox\box\scratchbox\hss}%
- \hbox to \zeropoint
- {\hss
- \black\vrule\!!width6\linewidth\!!height3\linewidth\!!depth3\linewidth
- \hss}}}
-
-\def\bodyfontgrid
- {\hbox
- {{\linewidth.1pt\yellow\smashedgrid[\c!nx=30,\c!ny=30,\c!scale=.3333]}%
- {\linewidth.2pt\green \smashedgrid[\c!nx=20,\c!ny=20,\c!scale=.5]}%
- {\linewidth.3pt\red \smashedgrid[\c!nx=10,\c!ny=10,\c!scale=1]}}}
-
-\def\emexgrid
- {\hbox
- {{\linewidth.15pt\green\smashedgrid[\c!nx=20,\c!ny=20,\c!unit=ex]}%
- {\linewidth.15pt\red \smashedgrid[\c!nx=10,\c!ny=10,\c!unit=em]}}}
-
-%D The next few macros are not really public and kind of low
-%D level. They are obscure and a bit perverse.
-
-\definecolor[llblack][s=0.01]
-
-\def\lowlevelstream#1#2#3%
- {\ifinotr \else
- \dontleavehmode
- \prewordbreak
- \bgroup\bgroup % make sure aftergroup stuff is handled
- %\let#1#2\optimizetransparencyfalse\black
- \infofont\clap{\vl}\ignorespaces#3\unskip\clap{\vl}%
- \egroup\egroup
- \prewordbreak
- \fi
- #2{#3}}
-
-\let\normalPDFcode\PDFcode
-
-\def\showlowlevelstream
- {\def\PDFcode{\lowlevelstream\PDFcode\normalPDFcode}%
- \def\special{\lowlevelstream\special\normalspecial}}
-
-\def\showlowlevelstreamonly
- {\def\PDFcode{\lowlevelstream\PDFcode\gobbleoneargument}%
- \def\special{\lowlevelstream\special\gobbleoneargument}}
-
-\startnotmode[mkiv]
-
- \let\normaldostartgraymode \dostartgraymode
- \let\normaldostartgraycolormode\dostartgraycolormode
- \let\normaldostartrgbcolormode \dostartrgbcolormode
- \let\normaldostartcmykcolormode\dostartcmykcolormode
- \let\normaldostartspotcolormode\dostartspotcolormode
-
- \def\traceddostartgraymode#1%
- {#1\normaldostartgraymode{#1}}
-
- \def\traceddostartgraycolormode#1%
- {#1\normaldostartgraycolormode{#1}}
-
- \def\traceddostartrgbcolormode#1#2#3%
- {#1 #2 #3\normaldostartrgbcolormode{#1}{#2}{#3}}
-
- \def\traceddostartcmykcolormode#1#2#3#4%
- {#1 #2 #3 #4\normaldostartcmykcolormode{#1}{#2}{#3}{#4}}
-
- \def\traceddostartspotcolormode#1#2%
- {#1 #2\normaldostartspotcolormode{#1}{#2}}
-
- \def\showcolormodes
- {\let\dostartgraymode \traceddostartgraymode
- \let\dostartgraycolormode\traceddostartgraycolormode
- \let\dostartrgbcolormode \traceddostartrgbcolormode
- \let\dostartcmykcolormode\traceddostartcmykcolormode
- \let\dostartspotcolormode\traceddostartspotcolormode}
-
-\stopnotmode
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/ppchtex.mkii b/Master/texmf-dist/tex/context/modules/mkii/ppchtex.mkii
deleted file mode 100644
index 07ca9789ac0..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/ppchtex.mkii
+++ /dev/null
@@ -1,3555 +0,0 @@
-%D \module
-%D [ file=ppchtex (m-chemie),
-%D version=1997.03.19,
-%D title=\CONTEXT\ Extra Modules,
-%D subtitle=\PPCHTEX\ (Plain Pictex Context cHemie \TEX),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D suggestions={Tobias Burnus, Dirk Kuypers \& Ton Otten}.
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% option=test => boxes
-% dummy => file
-% final => file / local run
-%
-% constante van phantom in definitie ONE: \setchemicaltextwidth 300
-%
-% it would be interesting to rewrite this module with todays
-% experiences and new context functionality, maybe ...
-
-% Deze module ondersteunt het zetten van chemische
-% (structuur)formules. Hoewel de macro' zijn afgestemd op
-% CONTEXT, zijn ze ook buiten deze zetomgeving te gebruiken.
-%
-% Dit is, afgezien van updates, de definitieve versie van
-% PPCHTEX. Gebruikersgemak, eenvoud, flexibiliteit, en
-% snelheid zijn inmiddels redelijk geoptimaliseerd. Dit neemt
-% niet weg dat hier en daar nog verbetering mogelijk is. Dit
-% zal dan ook nog gebeuren.
-%
-% Volgende versies zullen tenminste dezelfde functionaliteit
-% hebben. We houden ons natuurlijk het recht voor de kwaliteit
-% van de output te verbeteren. Daarnaast staan nog op het
-% wensenlijstje:
-%
-% - optimaliseren in termen van proces-tijd
-% - aanpassen naamgeving van interne macro's
-% - toevoegen van functionaliteit
-% - in \x!-vorm omzetten van GIVES, TB enz.
-%
-% De mix tussen engels en nederlands lijkt soms verwarrend.
-% Meestal zijn verborgen macro's engels en zichtbare macro's
-% nederlands. Het gebruik van [ ] en { } sluit aan op andere
-% Context-macro's. Hetzelfde geldt voor instellingen en
-% \start-\stop-constructies.
-%
-% De schijnbaar overbodige \bgroup-\egroup constructie
-% garandeert aansluiting bij de Context-macro's voor het
-% plaatsen van figuren, tabellen en andere floats.
-%
-% Binnen Context worden de macro's geladen met
-% \gebruikextras[chemie]. Daarbij wordt een passende melding
-% getoont. Buiten Context genereren we een melding:
-
-\doifundefined{usemodule}
- {\writestatus{loading}{ConTeXt Chemical Macro's / 1996.3.1}}
-
-% Er kan gebruik worden gemaakt van PiCTeX of PStricks. Een
-% van deze pakketten moet van te voren zijn geladen.
-%
-% \input prepictex.tex (i.g.v. LaTeX)
-% \input pictex.tex
-% \input postpictex.tex (i.g.v. LaTeX)
-%
-% of:
-%
-% \input multido.tex
-% \input pstricks.tex
-% \input pst-plot.tex
-%
-% In \CONTEXT\ kan men de modules m-pictex en m-pstricks
-% gebruiken. De eerste module laad of efficiente wijze PiCTeX
-% en de tweede module koppelt het PSTRICKS kleurmechanisme
-% aan dat van \CONTEXT.
-%
-
-% PSTricks: {-\chemicalangle} instead of {*0}, which produces
-% faulty ps code when \chemicalangle=0
-
-\startcommands dutch english german
-
- gotochemical: naarchemie gotochemical zurchemie
- setupchemical: stelchemiein setupchemical stellechemieein
- startchemical: startchemie startchemical startchemie
- stopchemical: stopchemie stopchemical stopchemie
- definechemical: definieerchemie definechemical definierechemie
- chemical: chemie chemical chemie
- toptext: boventekst toptext textueber
- bottext: ondertekst bottext textunter
- midtext: middentekst midtext textmitte
-
-\stopcommands
-
-\doifundefined{fiverm} % In the more recent LaTeX versions
- {\font\fiverm=cmr5 } % \fiverm is no longer (pre)defined.
-
-\doifdefinedelse{beginpicture} % PiCTeX
- {\doifdefinedelse{startMPdrawing}
- {\chardef\chemicaldrawingmode=2 } % MetaPost
- {\chardef\chemicaldrawingmode=0 }} % raw
- {\doifdefinedelse{psaxes}
- {\chardef\chemicaldrawingmode=1 } % PSTricks
- {\chardef\chemicaldrawingmode=3 }} % unknown
-
-\ifcase\chemicaldrawingmode
- \writestatus{ppchtex}{using PiCTeX}
-\or
- \writestatus{ppchtex}{using PSTricks (still experimental)}
- \writestatus{ppchtex}{automatic sizing not (yet) supported}
-\or
- \writestatus{ppchtex}{using PiCTeX and MetaPost}
-\else
- \writestatus{ppchtex}{load PiCTeX (+pre/post) or PSTricks (+pst_plot) first}
- \bgroup
- \read16 to \exit
- \egroup
- \expandafter\endinput
-\fi
-
-% De onderstaande help-informatie (%I) kan worden opgeroepen
-% in TeXEdit. De daaropvolgende setup-informatie (%S) kan
-% nadat zij is uit deze file is gefilterd met TeXUtil, in
-% handleidingen worden gebruikt. In deze file opgenomen
-% documentatie (%D en %M) kan worden gebruikt voor een
-% technische handleiding. Met %T kunnen templates worden
-% gedefinieerd voor TeXEdit.
-
-%I n=Chemie
-%I c=\stelchemiein,\chemie
-%I
-%I Chemische formules kunnen worden gezet met behulp van de
-%I onderstaande commando's:
-%I
-%I buiten $ en $$ :
-%I
-%I \chemie[segmenten][symbolen]
-%I
-%I \startchemie[instellingen]
-%I \chemie...
-%I \chemie...
-%I \stopchemie
-%I
-%I en binnen $ en $$:
-%I
-%I \chemie{}{}
-%I
-%I Voor tekst, uitleg en voorbeelde verwijzen we vooralsnog
-%I naar de handleiding.
-%P
-%I Het gedrag van de macro's kan worden ingesteld met:
-%I
-%I \stelchemiein[breedte=,hoogte=,links=,rechts=,boven=,
-%I onder=,korps=,schaal=,status=,assenstelsel=,kader=,
-%I variant=,optie=,formaat=,tekstformaat=,resolutie=,
-%I offset=,letter=]
-%I
-%I Structuren kunnen worden voorgedefinieerd met het commando
-%I
-%I \definieerchemie[naam]{\chemie...}
-
-%S \startsetup
-%S \command
-%S [\!stelchemiein]
-%S \type
-%S [\c!vars!]
-%S \variable
-%S [\c!breedte]
-%S [\c!number!,\v!passend]
-%S [0]
-%S \variable
-%S [\c!hoogte]
-%S [\c!number!,\v!passend]
-%S [0]
-%S \variable
-%S [\c!links]
-%S [\c!number!]
-%S [0]
-%S \variable
-%S [\c!rechts]
-%S [\c!number!]
-%S [0]
-%S \variable
-%S [\c!boven]
-%S [\c!number!]
-%S [0]
-%S \variable
-%S [\c!onder]
-%S [\c!number!]
-%S [0]
-%S \variable
-%S [\c!resolutie]
-%S [\c!number!]
-%S [\outputresolution]
-%S \variable
-%S [\c!korps]
-%S [10pt,11pt,12pt]
-%S [\bodyfontsize]
-%S \variable
-%S [\c!schaal]
-%S [\v!klein,\v!middel,\v!groot]
-%S [\v!middel]
-%S \variable
-%S [\c!formaat]
-%S [\v!klein,\v!middel,\v!groot]
-%S [\v!groot]
-%S \variable
-%S [\c!tekstformaat]
-%S [\v!klein,\v!middel,\v!groot]
-%S [\v!groot]
-%S \variable
-%S [\c!status]
-%S [\v!start,\v!stop]
-%S [\v!start]
-%S \variable
-%S [\c!kader]
-%S [\v!aan,\v!uit]
-%S [\v!uit]
-%S \variable
-%S [\c!assenstelsel]
-%S [\v!aan,\v!uit]
-%S [\v!uit]
-%S \variable
-%S [\c!optie]
-%S [\v!test]
-%S []
-%S \variable
-%S [\c!variant]
-%S [1,2]
-%S [1]
-%S \variable
-%S [\c!offset]
-%S [HIGH,LOW]
-%S [LOW]
-%S \variable
-%S [\c!letter]
-%S [\c!command!]
-%S [\rm]
-%S \stopsetup
-
-%S \startsetup
-%S \command
-%S [\v!startchemie]
-%S \type
-%S [\c!vars!\c!stp!]
-%S \inheritvariable
-%S [\v!stelchemiein]
-%S []
-%S \stopsetup
-
-%S \startsetup
-%S \command
-%S [\v!chemie]
-%S \type
-%S [\c!vals!\c!vals!]
-%S \value
-%S [\c!list!]
-%S []
-%S \value
-%S [\c!list!]
-%S []
-%S \stopsetup
-
-%S \startsetup
-%S \command
-%S [definieerchemie]
-%S \type
-%S [\c!val!\c!arg!]
-%S \value
-%S [\c!text!]
-%S []
-%S \stopsetup
-
-\unprotect
-
-% Om te voorkomen dat sub- en superscripts botsen passen we
-% wat fontdimen's aan (Knuth, The TeXBook, p179). Helaas
-% kunnen deze instellingen niet lokaal worden gehouden door
-% groeperen, vandaar dat een en ander moet worden geset n
-% gereset.
-%
-% Er dient een relatie te worden gelegd met de afmetingen
-% van de letters. In een eerdere versie werden daartoe de
-% \fontdimen's opgehoogd. Omdat dit problemen gaf bij
-% scaled fonts, is bij nader inzien gekozen voor de
-% onderstaande oplossing, waarbij de nieuwe waarden worden
-% afgeleid van de x-height (\fontexheight). De factor 0.70
-% is min of meer experimenteel vastgesteld. Soms worden de
-% regels iets verder uit elkaar gezet. Jammer. Italic fonts
-% hebben grotere cijfers en vallen min of meer uit de boot.
-
-\newif\ifloweredsubscripts
-
-% Due to some upward incompatibality of LaTeX to LaTeX2.09
-% and/or LaTeX2e we had to force \@@dochemicalstyle. Otherwise
-% some weird \nullfont error comes up.
-
-\def\beginlatexmathmodehack
- {\ifmmode
- \let\endlatexmathmodehack=\relax
- \else
- \def\endlatexmathmodehack{$}$\@@dochemicalstyle\empty
- \fi}
-
-\def\setsubscripts%
- {\beginlatexmathmodehack
- \def\dosetsubscript##1##2##3%
- {\dimen0=##3\fontexheight##2%
- \setxvalue{@@\string##1\string##2}{\the##1##2\relax}%
- ##1##2=\dimen0\relax}%
- \def\dodosetsubscript##1##2%
- {\dosetsubscript{##1}{\textfont 2}{##2}%
- \dosetsubscript{##1}{\scriptfont 2}{##2}%
- \dosetsubscript{##1}{\scriptscriptfont2}{##2}}%
- %dodosetsubscript\mathsupnormal {?}%
- \dodosetsubscript\mathsubnormal {.7}%
- \dodosetsubscript\mathsubcombined{.7}%
- \global\loweredsubscriptstrue
- \endlatexmathmodehack}
-
-\def\resetsubscripts
- {\ifloweredsubscripts
- \beginlatexmathmodehack
- \def\doresetsubscript##1##2%
- {\dimen0=\getvalue{@@\string##1\string##2}\relax
- ##1##2=\dimen0}%
- \def\dodoresetsubscript##1%
- {\doresetsubscript{##1}{\textfont2}%
- \doresetsubscript{##1}{\scriptfont2}%
- \doresetsubscript{##1}{\scriptscriptfont2}}%
- %dodoresetsubscript\mathsupnormal
- \dodoresetsubscript\mathsubnormal
- \dodoresetsubscript\mathsubcombined
- \global\loweredsubscriptsfalse
- \endlatexmathmodehack
- \fi}
-
-\ifx\Umathchar\undefined \else
- % for the moment we nil them, soon we will have a proper
- % way to deal with this
- \let\setsubscripts \relax
- \let\resetsubscripts\relax
-\fi
-
-\def\doresetsubscripts
- {\resetsubscripts}
-
-\def\sethighsubscripts
- {\resetsubscripts
- \let\dosetsubscripts=\relax}
-
-\def\setlowsubscripts
- {\def\dosetsubscripts{\setsubscripts}}
-
-\setlowsubscripts
-
-\newcount\horchemical % t.z.t. \newcounter
-\newcount\verchemical % t.z.t. \newcounter
-\newcount\txtchemical % t.z.t. \newcounter
-\newcount\levchemical % t.z.t. \newcounter
-
-\newif\ifinchemical \inchemicalfalse
-\newif\iffixedchemical \fixedchemicalfalse
-
-\newbox\chemicalsymbols
-
-% Eigenlijk moeten de constanten en variabelen in cont-nl.tex
-% staan. Dit pakket is echter relatief onafhankelijk van CONTEXT.
-
-\definesystemvariable {chemical}
-
-\definesystemconstant {chemical}
-
-\definesystemconstant {translate}
-\definesystemconstant {distance}
-\definesystemconstant {mirror}
-\definesystemconstant {rotate}
-\definesystemconstant {substitute}
-\definesystemconstant {angle}
-
-\definesystemconstant {executechemical}
-\definesystemconstant {chemicaltextelement}
-\definesystemconstant {chemicallinesegment}
-\definesystemconstant {chemicalcircsegment}
-
-\def\chemicalspace {\quad}
-
-% begin van experiment:
-%
-% De onderstaande twee macro's kunnen worden gebruikt voor
-% bijvoorbeeld een interactiemechanisme.
-%
-% \localgotochemical {verwijzing} {tekst}
-% \localthisischemical {verwijzing}
-
-\def\dowithchemical%
- {}
-
-\doifdefinedelse{@@iastate}
- {\def\localgotochemical#1#2{\naarbox{#2}[#1]}%
- \def\localthisischemical#1{\pagereference[#1]}}
- {\def\localgotochemical#1{}%
- \def\localthisischemical#1{}}
-
-% eind van experiment
-
-\def\setchemicalmaximum #1
- {\def\maxchemical{#1}}
-
-\def\doifchemicalnumber#1#2#3%
- {\doifnumberelse{#1}
- {\ifnum#1>\maxchemical\relax
- \writestatus{ppchtex}{number #1 is skipped}%
- \else
- #3%
- \fi}
- {\unknownchemical{#2}}}%
-
-\newif\ifsmallchemicaltext
-
-\let\@@localchemicalstyle\empty
-
-\def\setupchemicalformat[#1]%
- {\processaction
- [\getvalue{#1\c!size}]
- [ \v!small=>\def\@@localchemicalformat{\scriptscriptstyle},
- \v!medium=>\def\@@localchemicalformat{\ifsmallchemicaltext\scriptscriptstyle\else\scriptstyle\fi},
- \v!big=>\def\@@localchemicalformat{\ifsmallchemicaltext\scriptstyle\else\textstyle\fi},
- \s!unknown=>\def\@@localchemicalformat{\getvalue{#1\c!size}}]%
- \processaction
- [\getvalue{#1\c!textsize}]
- [ \v!small=>\def\@@localchemicalstyle{\scriptscriptstyle},
- \v!medium=>\def\@@localchemicalstyle{\ifsmallchemicaltext\scriptscriptstyle\else\scriptstyle\fi},
- \v!big=>\def\@@localchemicalstyle{\ifsmallchemicaltext\scriptstyle\else\textstyle\fi},
- \s!unknown=>\def\@@localchemicalstyle{\getvalue{#1\c!textsize}}]%
- \processaction
- [\getvalue{#1\c!scale}]
- [ \v!small=>\def\@@localchemicalscale{500},
- \v!medium=>\def\@@localchemicalscale{625},
- \v!big=>\def\@@localchemicalscale{750},
- \s!unknown=>\def\@@localchemicalscale{\getvalue{#1\c!scale}}]}
-
-\def\@@currentchemicalformat
- {\ifinchemical
- \@@localchemicalformat
- \else
- \@@localchemicalstyle
- \fi}
-
-\def\dosetupchemical[#1]%
- {\getparameters[\??chemical\s!chemical][#1]%
- \doifelse{\@@chemicalchemicaloffset}{LOW}
- {\setlowsubscripts}
- {\sethighsubscripts}%
- \setupchemicalformat[\??chemical\s!chemical]%
- \ignorespaces}
-
-\def\setupchemical
- {\dosingleargument\dosetupchemical}
-
-\def\@@dochemicalstyle% % default mapping
- {\@@chemicalstyle}
-
-\def\@@dochemicalcolor% % no mapping yet
- {}
-
-\def\@@chemicalstyle % $inner-style$ % (overloaded)
- {\@@chemicalchemicalstyle} % $$outer-style$$
-
-\def\@@writechemicalstate#1#2%
- {}
-
-\def\@@beginchemicallocalpicture
- {\ifcase\chemicaldrawingmode
- \beginpicture
- \or
- \pspicture(0,0)(0,0) % is this permitted ?
- \or
- \pushMPdrawing
- \startMPdrawing
- %prologues := 1 ;
- %input mp-tool ;
- u := 10*\@@chemicalunit;
- bboxmargin := 0pt ;
- pickup pencircle scaled 2u ; % ???
- \stopMPdrawing
- \beginpicture
- \fi}
-
-\def\@@endchemicallocalpicture#1#2%
- {\ifcase\chemicaldrawingmode
- \endpicture
- \or
- \endpspicture
- \or
- \resetchemicalcoordinates
- \setbox2\hbox{\MPshiftdrawingtrue\MPstaticgraphictrue\getMPdrawing}%
- \wd2=\!!zeropoint
- \ht2=\!!zeropoint
- \dp2=\!!zeropoint
- \put {\box2} at 0 0
- \endpicture
- \popMPdrawing
- \fi}
-
-\def\@@beginchemicalpicture#1#2#3#4%
- {\ifnum\chemicaldrawingmode=1
- \pspicture(#1,#3)(#2,#4)%
- \def\account##1##2{}%
- \psaxes[axesstyle=none,labels=none,ticks=none](#1,#3)(#2,#4)%
- \else
- \beginpicture
- \setplotarea
- x from {#1} to {#2},
- y from {#3} to {#4}
- \iffixedchemical
- \accountingon
- \def\account##1##2%
- {\put {} at {##1} {##2} }%
- \else
- \accountingoff
- \def\account##1##2{}%
- \fi
- \fi
- \ignorespaces}
-
-\def\@@endchemicalpicture%
- {\ifcase\chemicaldrawingmode
- \put {\box\chemicalsymbols} at 0 0 % elders
- \endpicture
- \or
- \rput(0,0){\box\chemicalsymbols}%
- \endpspicture
- \or
- \put {\box\chemicalsymbols} at 0 0 % elders
- \ifMPdrawingdone
- \resetchemicalcoordinates
- \setbox2\hbox{\MPshiftdrawingtrue\MPstaticgraphictrue\getMPdrawing}%
- \wd2=\!!zeropoint
- \ht2=\!!zeropoint
- \dp2=\!!zeropoint
- \put {\box2} at 0 0 %
- \fi
- \endpicture
- \fi}
-
-\def\@@setchemicalcoordinatesystem#1%
- {\edef\@@chemicalunit{#1}%
- \ifcase\chemicaldrawingmode
- \setcoordinatesystem units <\@@chemicalunit,\@@chemicalunit> %
- \or
- \psset{unit=\@@chemicalunit}%
- \or
- \setcoordinatesystem units <\@@chemicalunit,\@@chemicalunit> %
- \startMPdrawing
- %input mp-tool ;
- %prologues := 1 ;
- u := 10*#1;
- bboxmargin := 0pt ;
- pickup pencircle scaled 2u ; % ???
- \stopMPdrawing
- \fi}
-
-\ifx\MPdivten\undefined % hack to prevent overflows in mp
- \def\MPdivten[#1]{\withoutpt\the\dimexpr#1pt/10\relax}
-\fi
-
-\def\@@setchemicalaxis#1#2#3#4%
- {\ifcase\chemicaldrawingmode
- \axis
- bottom shiftedto y=0
- ticks from {#1} to {#2} by 500 /
- \axis
- left shiftedto x=0
- ticks from {#3} to {#4} by 500 / %
- \or
- \psaxes[labels=none,Dx=500,Dy=500](0,0)(#1,#3)(#2,#4)%
- \or
- \global\MPdrawingdonetrue
- % we need to div beforehand because of mp limitations
- \startMPdrawing
- x1 := \MPdivten[#1]u ; x2 := \MPdivten[#2]u;
- y1 := \MPdivten[#3]u ; y2 := \MPdivten[#4]u;
- draw z1--(x2,y1)--z2--(x1,y2)--cycle ;
- d := 50u ; dd := 10u ;
- draw (x1,0)--(x2,0) ;
- draw (0,y1)--(0,y2) ;
- for i=d step -d until x1: draw (i,dd)--(i,-dd) ; endfor ;
- for i=d step d until x2: draw (i,dd)--(i,-dd) ; endfor ;
- for i=d step -d until y1: draw (-dd,i)--(dd,i) ; endfor ;
- for i=d step d until y2: draw (-dd,i)--(dd,i) ; endfor ;
- \stopMPdrawing
- \fi}
-
-\def\@@setsecondchemicalplotsymbol%
- {\ifcase\chemicaldrawingmode
- \!!widtha=50.8mm
- \divide\!!widtha by \@@chemicalresolution\relax
- \plotsymbolspacing=\!!widtha
- \setplotsymbol({\vrule\!!height\!!widtha\!!width\!!widtha})%
- \fi}
-
-% Something for Dirk:
-
-\newcount \currentchemical
-
-%\newif \ifskipchemical
-
-\def\setchemicaldimensions#1#2#3%
- {\bgroup
- \global\advance\currentchemical by 1
- \dimen0=#1\relax
- \dimen2=#2\relax
- \dimen4=#3\relax
- \setxvalue{chemical::\the\currentchemical}%
- {\noexpand\docommand{\the\dimen0}{\the\dimen2}{\the\dimen4}}%
- \egroup}
-
-%\def\getchemicaldimensions#1#2#3%
-% {\global\advance\currentchemical by 1
-% \def\docommand##1##2##3%
-% {#1=##1\relax#2=##2\relax#3=##3\relax}%
-% \doifdefinedelse{chemical::\the\currentchemical}
-% {\getvalue{chemical::\the\currentchemical}}
-% {\docommand{6cm}{4cm}{0cm}}}
-%
-%\def\savechemicaldimensions%
-% {\bgroup
-% \writestatus{ppchtex}{saving dimensions in ppchtex.dim}%
-% \def\docommand##1##2##3%
-% {\immediate\write\scratchwrite
-% {\noexpand\setchemicaldimensions{##1}{##2}{##3}}}%
-% \immediate\openout\scratchwrite=ppchtex.dim
-% \scratchcounter=0
-% \loop
-% \ifnum\scratchcounter<\currentchemical
-% \advance\scratchcounter by 1
-% \getvalue{chemical::\the\scratchcounter}%
-% \repeat
-% \immediate\closeout\scratchwrite
-% \egroup}
-%
-%\def\loadchemicaldimensions% oh, how nice it would be to use
-% {\bgroup % one of the context read commands
-% \global\currentchemical=0
-% \immediate\openin\scratchread=./ppchtex.dim
-% \ifeof\scratchread
-% \immediate\closein\scratchread
-% \global\skipchemicalfalse
-% \else
-% \immediate\closein\scratchread
-% \input ./ppchtex.dim\relax
-% \ifnum\currentchemical>0
-% \writestatus{ppchtex}{loading dimensions from ppchtex.dim}%
-% \global\skipchemicaltrue
-% \else
-% \global\skipchemicalfalse
-% \fi
-% \global\currentchemical=0
-% \global\let\savechemicaldimensions=\relax
-% \fi
-% \egroup
-% \global\let\loadchemicaldimensions=\relax}
-
-\ifx\normalchemicalframe\undefined
- \let\normalchemicalframe\hbox % hook for educational purposes
-\fi
-
-\unexpanded\def\complexstartchemical[#1]%
- {\copyparameters
- [\??chemical][\??chemical\s!chemical]
- [\c!width,\c!height,\c!left,\c!right,\c!top,\c!bottom,
- \c!bodyfont,\c!size,\c!scale,\c!state,\c!frame,\c!axis,\c!factor,
- \c!location,\c!option,\c!alternative,\c!resolution,\c!offset,\c!style,
- \c!color,\c!rulecolor,\c!rulethickness]%
- \getparameters
- [\??chemical]
- [#1]%
- %
- \setupchemicalformat[\??chemical]%
- %
- \ifnum\chemicaldrawingmode=2
- \resetMPdrawing
- \fi
- %
- \doif{\@@chemicalalternative}{2}
- {\@@setsecondchemicalplotsymbol}%
- %
- \doif{\@@chemicalaxis}\v!on
- {\let\chemicalframe\hbox}%
- %
- \!!counta=250000
- \divide\!!counta by \@@localchemicalscale
- \!!widtha=\@@chemicalbodyfont
- \divide\!!widtha by \!!counta
- \@@setchemicalcoordinatesystem{\the\!!widtha}%
- %
- % \!!counta = -x \!!countc = -y
- % \!!countb = +x \!!countd = +y
- %
- \def\calculateaxis##1##2##3##4##5%
- {##1=##3\relax
- ##2=##4\relax
- \ifnum##5=0
- \ifnum##3=0
- \ifnum##4=0
- ##1=2000
- ##2=2000
- \fi
- \fi
- \else
- \ifnum##3=0
- \ifnum##4=0
- ##1=##5\relax
- \divide##1 by 2
- ##2=##1\relax
- \else
- ##1=##5\relax
- \advance##1 by -##2\relax
- \fi
- \else
- \ifnum##4=0
- ##2=##5\relax
- \advance##2 by -##1\relax
- \fi
- \fi
- \fi}%
- \fixedchemicalfalse
- \doif\@@chemicalwidth\v!fit
- {\edef\@@chemicalwidth
- {\ifnum\chemicaldrawingmode=1 2000 \else 1 \fi}%
- \fixedchemicaltrue}%
- \doif\@@chemicalheight\v!fit
- {\edef\@@chemicalheight
- {\ifnum\chemicaldrawingmode=1 2000 \else 1 \fi}%
- \fixedchemicaltrue}%
- \doifelse\@@chemicallocation\v!intext
- {\!!counta=0 \!!countb=0
- \!!counta=0 \!!countd=0 }
- {\calculateaxis
- \!!counta\!!countb
- \@@chemicalleft\@@chemicalright\@@chemicalwidth
- \calculateaxis
- \!!countc\!!countd
- \@@chemicalbottom\@@chemicaltop\@@chemicalheight}%
- %
- \edef\@@chemheight {\the\!!countc}%
- \edef\@@chemdepth {\the\!!countd}%
- \edef\@@chemicaltop {\the\!!countc}%
- \edef\@@chemicalbottom{\the\!!countd}%
- %
- \doifinsetelse\v!on{\@@chemicalframe,\@@chemicalaxis}
- {\def\@@chemicalborder{\chemicalframe}}
- {\def\@@chemicalborder{\normalchemicalframe}}%
- %
- \setbox0=\hbox\bgroup % this was a \vbox which took \hsize
- %
- \@@beginchemicalpicture
- {-\the\!!counta}{\the\!!countb}
- {-\the\!!countc}{\the\!!countd}%
- \doif{\@@chemicalstate}\v!start
- {\doif\@@chemicalaxis\v!on
- {\@@setchemicalaxis
- {-\the\!!counta}{\the\!!countb}
- {-\the\!!countc}{\the\!!countd}}}%
- \doifelse\@@chemicaloption\v!test
- {\def\@@writechemicalstate##1##2%
- {\convertargument##2\to\ascii
- \writestatus{##1}{\ascii}}}
- {\def\@@writechemicalstate##1##2{}}%
- \ignorespaces}
-
-\def\dostartchemical%
- {\catcode`\^=\@@superscript% t.b.v. \enableduplication
- \catcode`\_=\@@subscript % t.b.v. de zekerheid
- \begingroup
- \inchemicaltrue
- \def\toptext##1{\gdef\thetoptext{##1}\ignorespaces}\toptext{}%
- \def\bottext##1{\gdef\thebottext{##1}\ignorespaces}\bottext{}%
- \def\midtext##1{\gdef\themidtext{##1}\ignorespaces}\midtext{}%
- \def\@@chemicalpostponed{}%
- \complexorsimpleempty\startchemical}
-
-\def\startchemical
- {\bgroup % t.b.v. ungrouped floats
-% \loadchemicaldimensions
-% \ifskipchemical
-% \def\dostartchemical%
-% {\def\dummy[####1]{}\dosingleempty\dummy}%
-% \def\chemical%
-% {\def\dummy[####1][####2][####3]{}\dotripleempty\dummy}%
-% \def\toptext##1{}%
-% \def\midtext##1{}%
-% \def\bottext##1{}%
-% \fi
- \dostartchemical}
-
-\def\stopchemical
- {%\ifskipchemical
- % \getchemicaldimensions{\dimen0}{\dimen2}{\dimen4}%
- % \dimen8=\dimen2\advance\dimen8 by \dimen4
- % \setbox0=\vbox to \dimen8
- % {\vss\hbox to \dimen0{\hss\the\currentchemical\hss}\vss}%
- % \wd0=\dimen0\ht0=\dimen2\dp0=\dimen4
- % \chemicalframe{\box0}%
- %\else
- \checkchemicalpicture
- \@@endchemicalpicture
- \egroup
- \ifnum\chemicaldrawingmode=1
- \dimen0=\@@chemicalunit
- \setbox0=\hbox{\lower\@@chemdepth\dimen0\box0}%
- \ht0=\@@chemheight\dimen0
- \dp0=\@@chemdepth\dimen0
- \fi
- \dimen0=\ht0
- \advance\dimen0 by \dp0
- \inchemicalfalse % enables \chemie{} in text
- \setbox4=\alignedchemical\themidtext
- \setbox6=\alignedchemical\thetoptext
- \setbox8=\alignedchemical\thebottext
- \setbox4=\hbox to \wd0
- {\strut\hss$\vcenter{\box4}$\hss}%
- \setbox2=\vbox to \dimen0
- {\hbox to \wd0{\strut\hss\box6\hss}
- \vfill
- \hbox to \wd0{\strut\hss\box8\hss}
- \vss}% disables the depth
- \wd0=0pt \wd4=0pt
- \ht2=\ht0 \dp2=\dp0
- \ht4=\ht0 \dp4=\dp0
- %\setchemicaldimensions{\wd2}{\ht2}{\dp2}%
- \@@chemicalborder{\box0\box4\box2}% text on top of chemicals
- \endgroup
- %\fi
- \ignorespaces
- \egroup} % t.b.v. ungrouped floats
-
-\def\alignedchemical#1%
- {\vtop
- {\def\par{\egroup\hbox\bgroup\strut}%
- \let\\=\par
- \let\endgraf=\par
- \hbox\bgroup\strut#1\egroup}}
-
-% \setchemicalcoordinates{#1}{#2}
-%
-% #1: verplaatsing in x-richting
-% #2: verplaatsing in y-richting
-
-\newif\ifchemicaldirection
-
-\def\checkchemicaldirection#1#2%
- {\ifchemicaldirection
- \ifnum#1>0 \advance\horchemical -\chemicaldirection \fi
- \ifnum#1<0 \advance\horchemical +\chemicaldirection \fi
- \ifnum#2>0 \advance\verchemical -\chemicaldirection \fi
- \ifnum#2<0 \advance\verchemical +\chemicaldirection \fi
- \chemicaldirectionfalse
- \fi}
-
-\def\processchemicaldirection%
- {\chemicaldirectiontrue\processchemicaltranslate}
-
-\def\setchemicalcoordinates#1#2%
- {\advance\horchemical #1\relax
- \advance\verchemical #2\relax
- \checkchemicaldirection{#1}{#2}%
- \!!counta=-\horchemical\edef\chemicalxoffset{\the\!!counta}%
- \!!countb=-\verchemical\edef\chemicalyoffset{\the\!!countb}%
- \ifnum\chemicaldrawingmode=1
- % njet
- \else
- \setcoordinatesystem point at {\the\horchemical} {\the\verchemical}
- \fi}
-
-\def\resetchemicalcoordinates
- {\horchemical=0
- \verchemical=0
- \edef\chemicalxoffset{0}%
- \edef\chemicalyoffset{0}%
- \ifnum\chemicaldrawingmode=1
- % njet
- \else
- \setcoordinatesystem point at 0 0
- \fi}
-
-\def\restorechemicalcoordinates
- {%\writestatus{ppchtex}{restoring \the\horchemical,\the\verchemical}%
- \edef\chemicalxoffset{\the\horchemical}%
- \edef\chemicalyoffset{\the\verchemical}%
- \ifnum\chemicaldrawingmode=1
- % njet
- \else
- \setcoordinatesystem point at {\the\horchemical} {\the\verchemical}
- \fi}
-
-\def\setchemicaltranslate #1 #2 #3
- {\setvalue{\s!translate#1}{\setchemicalcoordinates{#2}{#3}}}
-
-\def\processchemicaltranslate#1%
- {\def\doprocess[##1##2]%
- {\doifchemicalnumber{##1}{MOV#1}
- {\ifnum##1=0
- \def\chemicaloffset{0}% incompatible change
- \resetchemicalcoordinates
- \else
- \getvalue{\s!translate##1}%
- \dochemicaloffset{##1}%
- \def\chemicaloffset{0}%
- \fi}}%
- \doprocess[#1]}
-
-\def\setchemicaldistance #1
- {\setvalue{\s!distance1}{\setchemicalcoordinates{-#1}{ 0}}%
- \setvalue{\s!distance2}{\setchemicalcoordinates{ 0}{ #1}}%
- \setvalue{\s!distance3}{\setchemicalcoordinates{ #1}{ 0}}%
- \setvalue{\s!distance4}{\setchemicalcoordinates{ 0}{-#1}}}
-
-\def\setchemicaldirection #1
- {\def\chemicaldirection{#1}}
-
-\def\processchemicaldistance#1%
- {\def\doprocess[##1##2]%
- {\doifchemicalnumber{##1}{ADJ#1}
- {\ifnum##1=0
- \resetchemicalcoordinates
- \else
- \def\@@chemicalpostponed{\getvalue{\s!distance##1}}%
- \@@chemicalpostponed
- \fi}}%
- \doprocess[#1]}
-
-\def\setchemicalsubstitute #1
- {\setvalue{\s!substitute1}{\setchemicalcoordinates{-#1}{ 0}}%
- \setvalue{\s!substitute2}{\setchemicalcoordinates{ 0}{ #1}}%
- \setvalue{\s!substitute3}{\setchemicalcoordinates{ #1}{ 0}}%
- \setvalue{\s!substitute4}{\setchemicalcoordinates{ 0}{-#1}}}
-
-\def\processchemicalsubstitute#1%
- {\def\doprocess[##1##2]%
- {\doifchemicalnumber{##1}{SUB#1}
- {\ifnum##1=0
- \resetchemicalcoordinates
- \else
- \def\@@chemicalpostponed{\getvalue{\s!substitute##1}}%
- \@@chemicalpostponed
- \fi}}%
- \doprocess[#1]}
-
-% Het is mogelijk een offset of move meerdere malen uit te
-% voeren, door een nummer voor het commando te plaatsen.
-
-\def\chemicalrepeat {1}
-
-\def\redoprocesschemical[#1#2]%
- {\doifinstringelse{#1}{0123456789.}
- {\edef\chemicalrepeat{\chemicalrepeat#1}%
- \redoprocesschemical[#2]}
- {\processchemical[#1#2]%
- \def\chemicalrepeat{1}}}
-
-\def\doprocesschemical[#1#2]#3%
- {\doifinstringelse{#1}{0123456789.}
- {\def\chemicalrepeat{#1}%
- \redoprocesschemical[#2]}
- {#3}}
-
-% \dochemicaloffset{#1}
-%
-% #1: binding
-
-\def\chemicaloffset{0}
-
-\def\processchemicaloffset#1%
- {\dimen0=62500 sp % real calc on cardinals, funny number
- \dimen0=\chemicalrepeat\dimen0
- \divide\dimen0 by \@@localchemicalscale
- \!!counta=\dimen0
- \def\doprocess[##1##2]%
- {\doifinstringelse{##1}{128}
- {\edef\chemicaloffset{\the\!!counta}}
- {\doifinstringelse{##1}{456}
- {\edef\chemicaloffset{-\the\!!counta}}
- {\doifelse{##1}{0}
- {\edef\chemicaloffset{0}}
- {\unknownchemical{OFF#1}}}}}%
- \doprocess[#1]}
-
-\def\dochemicaloffset#1%
- {\ifnum\chemicaloffset=0
- \def\undochemicaloffset{}%
- \else
- \setchemicalcoordinates{-\chemicaloffset}{0}%
- \def\undochemicaloffset%
- {\setchemicalcoordinates{\chemicaloffset}{0}%
- \def\undochemicaloffset{}}%
- \fi}
-
-\def\processchemicalphantom#1#2%
- {\setbox0=\hbox
- {\def\splitoff##1????{##1}%
- $\@@dochemicalstyle{\@@localchemicalformat\splitoff#2}$}%
- \dimen0=.25\wd0
- \divide\dimen0 by \@@localchemicalscale
- \!!counta=\dimen0
- \doifinstringelse{#1}{128}
- {\edef\chemicaloffset{\the\!!counta}}
- {\doifinstringelse{#1}{456}
- {\edef\chemicaloffset{-\the\!!counta}}
- {\doifelse{#1}{0}
- {\edef\chemicaloffset{0}}
- {\unknownchemical{OF#1:#2}}}}}
-
-% \dosetchemicalrotation{#1}{#2}
-%
-% #1: cos(phi)
-% #2: sin(phi)
-
-\def\chemicalrotation {1}
-\def\chemicalangle {0}
-\def\chemicalxoffset {0}
-\def\chemicalyoffset {0}
-
-\def\setchemicalmirror#1%
- {\setvalue{\s!mirror#1}{*}}
-
-\def\resetchemicalmirror#1%
- {\resetvalue{\s!mirror#1}}
-
-\def\togglechemicalmirror#1%
- {\doifelse{\getvalue{\s!mirror#1}}{*}
- {\resetchemicalmirror{#1}}
- {\setchemicalmirror{#1}}}
-
-\def\setchemicalrotation #1 #2 #3 #4 #5 #6 #7 #8 #9
- {\setvalue{\s!rotate1.#1}{\dosetchemicalrotation{#2}{#3}}%
- \setvalue{\s!rotate2.#1}{\dosetchemicalrotation{#4}{#5}}%
- \setvalue{\s!rotate3.#1}{\dosetchemicalrotation{#6}{#7}}%
- \setvalue{\s!rotate4.#1}{\dosetchemicalrotation{#8}{#9}}}
-
-\def\setchemicalangle #1 #2 #3 #4 #5
- {\setvalue{\s!angle1.#1}{\dosetchemicalangle{#2}}%
- \setvalue{\s!angle2.#1}{\dosetchemicalangle{#3}}%
- \setvalue{\s!angle3.#1}{\dosetchemicalangle{#4}}%
- \setvalue{\s!angle4.#1}{\dosetchemicalangle{#5}}}
-
-\def\chemicalrotate[#1]%
- {\doifdefinedelse{\s!mirror#1}
- {\getvalue{\s!rotate\chemicalrotation.#1\getvalue{\s!mirror#1}}%
- \getvalue{\s!angle\chemicalrotation.#1\getvalue{\s!mirror#1}}}
- {\getvalue{\s!rotate\chemicalrotation.#1}%
- \getvalue{\s!angle\chemicalrotation.#1}}}
-
-\def\dosetchemicalangle#1% zwak zie onder
- {\def\chemicalangle{#1}}
-
-\def\dosetchemicalrotation#1#2%
- {\ifnum\chemicaldrawingmode=1
- % njet
- \else
- \startrotation by {#1} {#2} %% \stoprotation (t.b.v. testen)
- \fi}
-
-\def\doresetchemicalrotation
- {\ifnum\chemicaldrawingmode=1
- % njet
- \else
- \stoprotation
- \fi}
-
-\def\processchemicalrotation#1%
- {\def\doprocess[##1##2]%
- {\doifnumberelse{##1}
- {\def\chemicalrotation{##1}}
- {\unknownchemical{ROT#1}}}%
- \doprocess[#1]}
-
-% \filtertextelement[#1][#2][#3][#4]
-%
-% #1: volgnummer
-% #2: offset in uitlijningen
-% #3: lijst met uitlijningen -> \chemicalloca
-% #4: lijst met teksten -> \chemicaltext
-
-\def\setchemicallocation#1%
- {\doifelse{#1}{}
- {\edef\chemicalloca{c}}
- {\edef\chemicalloca{#1}}}
-
-\newif\iffixedchemicaltext
-
-\def\filterchemicaltextelement[#1][#2][#3][#4]%
- {\ifchemicaltextconstant
- \def\chemicaltext{#4}%
- \setchemicallocation{}%
- \else
- \ifnum#1=0\relax
- \setchemicallocation{}%
- \else
- \iffixedchemicaltext
- \!!counta#2
- \else
- \!!counta=\chemicalrotation
- \advance\!!counta -1
- \multiply\!!counta #2
- \advance\!!counta #1
- \fi
- \getfromcommalist[#3][\the\!!counta]%
- \setchemicallocation\commalistelement
- \fi
- \ifchemicalpicture
- \let\chemicaltext\relax
- \else
- \advance\txtchemical 1
- \getfromcommalist[#4][\txtchemical]%
- \let\chemicaltext\commalistelement
- \fi
- \fi
- \fixedchemicaltextfalse}
-
-% \putchemicaltext{#1}{#2}
-%
-% #1 : x-coordinaat
-% #2 : y-coordinaat
-%
-% \chemicaltext en \chemicalloca worden met \gettextelement
-% opgehaald uit de tweede set bij \chemie
-%
-% Ten behoeve van testdoeleinden wordt gebruik gemaakt van
-% \chemicalframe in plaats van het meer sjieke, maar tevens
-% meer trage \framed.
-
-\ifx\ruledhbox\undefined
- \def\chemicalframe#1%
- {\hbox
- {\vrule\hskip-.4pt
- \vbox{\hrule\vskip-.4pt\hbox{#1}\vskip-.4pt\hrule}%
- \hskip-.4pt\vrule}}
-\else
- \def\chemicalframe#1%
- {\ruledhbox{#1}}
-\fi
-
-\def\doputchemicaltext#1 [#2] at #3 #4 %
- {\ifnum\chemicaldrawingmode=1
- \rput
- {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
- {\expanded{\rput[#2]{\chemicalangle}(#3,#4){#1}}}%
- \else
- \put {#1} [#2] at {#3} {#4} %
- \fi}
-
-\def\dodoifsinglelocation#1#2\\#3%
- {\ifx#2\relax#3\fi}
-
-\def\doifsinglelocationelse#1%
- {\expandafter\dodoifsinglelocationelse#1\relax\\}
-
-\def\putchemicaltext#1#2%
- {\enablechemicalspecials
- \ifchemicalpicture
- \setchemicalpicture{#1}{#2}%
- \else
- \doifelse\@@chemicaloption\v!test
- {\def\@@chemicalframe{\chemicalframe}}
- {\def\@@chemicalframe{}}%
- \dosetsubscripts
- \setbox2=\hbox{\@@dochemicalcolor
- $\@@dochemicalstyle{\@@localchemicalformat \chemicaltext}$}%
- \setbox4=\hbox{$\@@dochemicalstyle{\@@localchemicalformat C_2^2}$}%
- \setbox6=\hbox{$\@@dochemicalstyle{\@@localchemicalformat O}$}% or C
- \doresetsubscripts
- \doifnot\@@chemicallocation\v!intext
- {\ht2=\ht4
- \dp2=\dp4}%
- \setbox2=\hbox{\@@chemicalframe{\box2}}%
- \ifdim\wd2>\wd6
- \doifelse{#1}{0}
- {\doifnot{#2}{0}{\wd2=\wd6}}
- {%\doifsinglelocation\chemicalloca
- {\doifinset{\chemicalloca}{t,b}{\wd2=\wd6}}}% common ?
- \fi
- \expanded
- {\doputchemicaltext
- {\noexpand\dowithchemical{\copy2}} % per se \copy2 i.p.v. \box2
- [\chemicalloca] at {#1} {#2} }
- \nomoreaccounting
- \fi
- \disablechemicalspecials}
-
-\def\setchemicaltextelement #1 #2 #3
- {\setvalue{\s!chemicaltextelement#1}{\putchemicaltext{#2}{#3}}}
-
-\def\getchemicalfixedtextelement%
- {\fixedchemicaltexttrue
- \getchemicaltextelement}
-
-\def\getchemicaltextelement[#1][#2][#3][#4][#5]%
- {\filterchemicaltextelement[#2][#3][#4][#5]%
- \doifelse{#2}{0}
- {\dochemicaloffset{#2}% % incompatible change
- \putchemicaltext{0}{0}%
- \undochemicaloffset} % incompatible change
- {\chemicalrotate[#2]%
- \dochemicaloffset{#2}%
- \def\chemicaltextelementnumber{#2}%
- \getvalue{\s!chemicaltextelement#1}%
- \getvalue{\s!chemicaltextelement#11}%
- \getvalue{\s!chemicaltextelement#12}%
- \getvalue{\s!chemicaltextelement#13}%
- \undochemicaloffset}}
-
-\def\processchemicaltextelement#1#2#3#4#5%
- {\def\doprocess[##1##2##3##4##5]%
- {\doifelse{##1}{?}
- {\doprocess[1..\maxchemical ????]}
- {\doifchemicalnumber{##1}{#1#2}
- {\doifelse{##2##3}{..}
- {\doifchemicalnumber{##4}{#1#2}
- {\getchemicaltextelement[#1][##1][#4][#5][#3]%
- \doifnot{##1}{##4}
- {\!!counta=##1\relax
- \advance\!!counta by 1
- \edef\nextsegment{\the\!!counta}%
- \doprocess[\nextsegment..##4##5]}}}
- {\getchemicaltextelement[#1][##1][#4][#5][#3]%
- \doifnot{##2}{?}{\doprocess[##2##3##4##5]}}}}}%
- \doprocess[#2]%
- \smallchemicaltextfalse}
-
-\def\processchemicalsmalltextelement%
- {\smallchemicaltexttrue\processchemicaltextelement}
-
-\def\processchemicalsmalltextconstant%
- {\smallchemicaltexttrue\processchemicaltextconstant}
-
-\def\processchemicalunrotatedtextelement#1#2#3#4#5#6%
- {\bgroup
- \xdef\@@xxx{0}%
- \xdef\@@yyy{0}%
- \def\putchemicaltext##1##2%
- {\xdef\@@xxx{##1}%
- \xdef\@@yyy{##2}}%
- \getvalue{\s!chemicaltextelement#1}%
- \egroup
- \bgroup
- \def\doputchemicaltext##1 [##2] at ##3 ##4 %
- {\ifnum\chemicaldrawingmode=1
- \rput
- {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
- {\rput{\chemicalangle}(\@@xxx,\@@yyy){\expanded{\rput[##2](##3,##4){##1}}}}%
- \else
- \put
- {\stoprotation \setcoordinatesystem point at 0 0
- \expanded{\put {##1} [##2] at {##3} {##4} }}
- at {\@@xxx} {\@@yyy}
- \fi}%
- \processchemicaltextelement{#2}{#3}{#4}{#5}{#6}%
- \egroup}
-
-\newif\ifchemicaltextconstant
-
-\def\processchemicaltextconstant#1#2#3#4%
- {\chemicaltextconstanttrue
- \let\@@oldchemicalframe\@@chemicalframe
- \let\@@chemicalframe\relax
- \processchemicaltextelement{#1}{#2}{#3}{#4}{}%
- \let\@@chemicalframe\@@oldchemicalframe
- \chemicaltextconstantfalse}
-
-% \plotchemicalline{#1}{#2}{#3}{#4}
-%
-% #1: x-coordinaat beginpunt
-% #2: y-coordinaat beginpunt
-% #3: x-coordinaat eindpunt
-% #4: y-coordinaat eindpunt
-
-\chardef\chemicallinetype=0
-
-\def\doplotchemicalline
- {\!!counte=\!!countc \advance\!!counte by -\!!counta
- \!!countf=\!!countd \advance\!!countf by -\!!countb
- \bgroup
- \ifcase\chemicaldrawingmode
- \ifcase\chemicallinetype
- % 0 : normal line
- \plot {\!!counta} {\!!countb} {\!!countc} {\!!countd} /%
- \or
- % 1 : normal arrow
- \arrow <5pt> [.2,.67] from {\!!counta} {\!!countb} to {\!!countc} {\!!countd}
- \or
- % 2 : reverse arrow
- \arrow <5pt> [.2,.67] from {\!!countc} {\!!countd} to {\!!counta} {\!!countb}
- \or
- % 3 : unrotated line
- \put {\stoprotation \setcoordinatesystem point at 0 0
- \plot 0 0 {\!!counte} {\!!countf} /}
- [\chemicallineposition] at {\!!counta} {\!!countb}
- \else
- % 4 : dashed line
- \findlength {\plot {\!!counta} {\!!countb} {\!!countc} {\!!countd} /}%
- \setdashesnear <2pt> for <\totalarclength>%
- \plot {\!!counta} {\!!countb} {\!!countc} {\!!countd} /%
- \fi
- \or
- \ifcase\chemicallinetype
- \rput
- {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
- {\psline(\!!counta,\!!countb)(\!!countc,\!!countd)}%
- \or
- \rput
- {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
- {\psline{->}(\!!counta,\!!countb)(\!!countc,\!!countd)}%
- \or
- \rput
- {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
- {\psline{<-}(\!!counta,\!!countb)(\!!countc,\!!countd)}%
- \or
- \rput
- {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
- {\expanded{\rput[\chemicallineposition]{-\chemicalangle}%
- (\!!counta,\!!countb){\psline(0,0)(\!!counte,\!!countf)}}}%
- \else
- \psset{linestyle=dashed}%
- \rput
- {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
- {\psline(\!!counta,\!!countb)(\!!countc,\!!countd)}%
- \fi
- \or
- \global\MPdrawingdonetrue
- \setchemicalattributes
- \startMPdrawing
- x0 := \MPdivten[\chemicalxoffset]u ;
- y0 := \MPdivten[\chemicalyoffset]u ;
- x1 := \MPdivten[\the\!!counta]u ;
- y1 := \MPdivten[\the\!!countb]u ;
- x2 := \MPdivten[\the\!!countc]u ;
- y2 := \MPdivten[\the\!!countd]u ;
- x3 := \MPdivten[\the\!!counte]u ;
- y3 := \MPdivten[\the\!!countf]u ;
- \ifcase\chemicallinetype
- % 0 : normal line
- draw ((z1--z2) rotatedaround(origin,-\chemicalangle))
- shifted z0 ;
- \or
- % 1 : normal arrow
- drawarrow ((z1--z2) rotatedaround(origin,-\chemicalangle))
- shifted z0 ;
- \or
- % 2 : reverse arrow
- drawarrow ((z2--z1) rotatedaround(origin,-\chemicalangle))
- shifted z0 ;
- \or
- % 3 : unrotated line % nog \chemicalineposition: t/b
- draw (origin--z3)
- shifted (z1 rotatedaround(origin,-\chemicalangle))
- shifted z0 ;
- \else
- % 4 : dashed line
- draw ((z1--z2) rotatedaround(origin,-\chemicalangle))
-% shifted z0 dashed evenly ;
- shifted z0 dashed dashpattern(on 5.5u off 6u) ;
- \fi
- \stopMPdrawing
- \fi
- \egroup
- \account\!!counta\!!countb
- \account\!!countc\!!countd}
-
-\def\plotchemicalline#1#2#3#4%
- {\!!counta=#1\!!countb=#2\!!countc=#3\!!countd=#4\relax
- \doplotchemicalline}
-
-\def\plotchemicalfactorline#1#2#3#4%
- {\!!counta=#1\!!countb=#2\!!countc=#3\!!countd=#4\relax
- \ifdim\@@chemicalfactor\onepoint=\onepoint \else
- \scratchdimen\!!counta\s!sp \multiply\scratchdimen1000 \scratchdimen\@@chemicalfactor\scratchdimen \divide\scratchdimen1000 \!!counta\scratchdimen
- \scratchdimen\!!countc\s!sp \multiply\scratchdimen1000 \scratchdimen\@@chemicalfactor\scratchdimen \divide\scratchdimen1000 \!!countc\scratchdimen
- \fi
- \doplotchemicalline}
-
-\def\plotchemicalzline#1#2#3#4%
- {\!!counta=#1\!!countb=#2\!!countc=#3\!!countd=#4\relax
- \ifnum\chemicaldrawingmode=2
- \global\MPdrawingdonetrue
- \setchemicalattributes
- \startMPdrawing
- x0 := \MPdivten[\chemicalxoffset]u ;
- y0 := \MPdivten[\chemicalyoffset]u ;
- x1 := \MPdivten[\the\!!counta]u ;
- y1 := \MPdivten[\the\!!countb]u ;
- x2 := \MPdivten[\the\!!countc]u ;
- y2 := \MPdivten[\the\!!countd]u ;
- filldraw ((
- \ifnum\chemicalangle>180
- z1--z2
- \else\ifnum\chemicalangle<90
- z1--(z2 shifted (-2u,+2u))--(z2 shifted (+2u,-2u))
- \else\ifnum\chemicalangle=90
- (z1 shifted (-2u,+2u))--(z1 shifted (+2u,-2u))--
- (z2 shifted (+2u,+2u))--(z2 shifted (-2u,-2u))
- \else
- (z1 shifted (+2u,+2u))--(z1 shifted (-2u,-2u))--z2
- \fi\fi\fi
- --cycle) rotatedaround(origin,-\chemicalangle)) shifted z0 ;
- \stopMPdrawing
- \else
- \doplotchemicalline
- \ifnum\chemicalangle>180 \else
- \ifnum\chemicalangle=90
- \advance\!!counta by -20 \advance\!!countc by -20
- \doplotchemicalline
- \advance\!!counta by 40 \advance\!!countc by 40
- \else\ifnum\chemicalangle<90
- \advance\!!countc by -20 \advance\!!countd by +20
- \doplotchemicalline
- \advance\!!countc by +40 \advance\!!countd by -40
- \else
- \advance\!!counta by 20 \advance\!!countb by 20
- \doplotchemicalline
- \advance\!!counta by -40 \advance\!!countb by -40
- \fi\fi
- \fi
- \doplotchemicalline
- \fi}
-
-\def\plotchemicaldeltaline#1#2#3#4%
- {\!!counta=#1\!!countb=#2\!!countc=#3\!!countd=#4\relax
- \ifnum\chemicaldrawingmode=2
- \global\MPdrawingdonetrue
- \setchemicalattributes
- \startMPdrawing
- x0 := \MPdivten[\chemicalxoffset]u ;
- y0 := \MPdivten[\chemicalyoffset]u ;
- x1 := \MPdivten[\the\!!counta]u ;
- y1 := \MPdivten[\the\!!countb]u ;
- x2 := \MPdivten[\the\!!countc]u ;
- y2 := \MPdivten[\the\!!countd]u ;
- filldraw ((z1--(z2 rotatedaround(z1,5))--(z2 rotatedaround(z1,-5))
- --cycle) rotatedaround(origin,-\chemicalangle))
- shifted z0 ;
- \stopMPdrawing
- \account{#1}{#2}%
- \account{#3}{#4}%
- \else
- \doplotchemicalline
- \advance\!!countc by 16 \advance\!!countd by -21
- \doplotchemicalline
- \advance\!!countc by -4 \advance\!!countd by 7
- \doplotchemicalline
- \advance\!!countc by -4 \advance\!!countd by 7
- \doplotchemicalline
- \advance\!!countc by -8 \advance\!!countd by 14
- \doplotchemicalline
- \advance\!!countc by -4 \advance\!!countd by 7
- \doplotchemicalline
- \advance\!!countc by -4 \advance\!!countd by 7
- \doplotchemicalline
- \advance\!!countc by -4 \advance\!!countd by 7
- \doplotchemicalline
- \fi}
-
-\def\setchemicallinesegment #1 #2 #3 #4 #5
- {\setvalue{\s!chemicallinesegment#1}{\plotchemicalline{#2}{#3}{#4}{#5}}}
-
-\def\setchemicalfactorlinesegment #1 #2 #3 #4 #5
- {\setvalue{\s!chemicallinesegment#1}{\plotchemicalfactorline{#2}{#3}{#4}{#5}}}
-
-\def\getchemicallinesegment[#1][#2]%
- {\chemicalrotate[#1]%
- \dochemicaloffset{#1}%
- \getvalue{\s!chemicallinesegment#2}%
- \getvalue{\s!chemicallinesegment#21}%
- \getvalue{\s!chemicallinesegment#22}%
- \undochemicaloffset}
-
-\def\getprivatechemicallinesegment[#1][#2]%
- {\chemicalrotate[#1]%
- \getvalue{\s!chemicallinesegment#2#1}}
-
-\def\doprocesschemicallinesegment#1#2#3#4#5%
- {\chardef\chemicallinetype=#1
- \def\chemicallineposition{#2}%
- \def\doprocess[##1##2##3##4##5]%
- {\doifelse{##1}{?}
- {\doprocess[1..\maxchemical ????]}
- {\doifchemicalnumber{##1}{#4#5}
- {\doifelse{##2##3}{..}
- {\doifchemicalnumber{##4}{#4#5}
- {#3[##1][#4]%
- \doifnot{##1}{##4}
- {\!!counta=##1\relax
- \advance\!!counta by 1
- \edef\nextsegment{\the\!!counta}%
- \doprocess[\nextsegment..##4##5]}}}
- {#3[##1][#4]%
- \doifnot{##2}{?}
- {\doprocess[##2##3##4##5]}}}}}%
- \doprocess[#5]}
-
-\def\processchemicallinesegment
- {\doprocesschemicallinesegment0c\getchemicallinesegment}
-
-\def\processchemicalzlinesegment#1#2%
- {%\doprocesschemicallinesegment0c\getchemicallinesegment{#1}{#2}%
- \bgroup
- \def\plotchemicalline{\plotchemicalzline}%
- \doprocesschemicallinesegment0c\getchemicallinesegment{#1}{#2}%
- \egroup}
-
-\def\processchemicaldeltalinesegment#1#2%
- {%\doprocesschemicallinesegment0c\getchemicallinesegment{#1}{#2}%
- \bgroup
- \def\plotchemicalline{\plotchemicaldeltaline}%
- \doprocesschemicallinesegment0c\getchemicallinesegment{#1}{#2}%
- \egroup}
-
-\def\processprivatechemicallinesegment%
- {\doprocesschemicallinesegment0c\getprivatechemicallinesegment}
-
-\def\processchemicaldownarrowsegment%
- {\doprocesschemicallinesegment1c\getchemicallinesegment}
-
-\def\processchemicaluparrowsegment%
- {\doprocesschemicallinesegment2c\getchemicallinesegment}
-
-\def\processchemicalunrotatedlinesegment#1%
- {\doprocesschemicallinesegment3{#1}\getchemicallinesegment}
-
-\def\processchemicaldashedlinesegment
- {\doprocesschemicallinesegment4c\getchemicallinesegment}
-
-\def\plotchemicaldasheddeltaline#1#2#3#4%
- {\!!counta=#1\!!countb=#2\!!countc=#3\!!countd=#4\relax
- \ifnum\chemicaldrawingmode=2
- \global\MPdrawingdonetrue
- \setchemicalattributes
- \startMPdrawing
- x0 := \MPdivten[\chemicalxoffset]u ;
- y0 := \MPdivten[\chemicalyoffset]u ;
- x1 := \MPdivten[\the\!!counta]u ;
- y1 := \MPdivten[\the\!!countb]u ;
- x2 := \MPdivten[\the\!!countc]u ;
- y2 := \MPdivten[\the\!!countd]u ;
- z20 = z2 rotatedaround(z1,+5) ;
- z21 = z2 rotatedaround(z1,-5) ;
- draw (z1 rotatedaround(origin,-\chemicalangle)) shifted z0 ;
- save n ; n := 5 ;
- for i=1 upto n :
- draw ((((z20--z21) shifted -z2) shifted (i/n)[z2,z1])
- rotatedaround(origin,-\chemicalangle)) shifted z0 ;
- endfor
- \stopMPdrawing
- \account{#1}{#2}%
- \account{#3}{#4}%
- \else
- \doplotchemicalline
- \advance\!!countc by 16 \advance\!!countd by -21
- \doplotchemicalline
- \advance\!!countc by -4 \advance\!!countd by 7
- \doplotchemicalline
- \advance\!!countc by -4 \advance\!!countd by 7
- \doplotchemicalline
- \advance\!!countc by -8 \advance\!!countd by 14
- \doplotchemicalline
- \advance\!!countc by -4 \advance\!!countd by 7
- \doplotchemicalline
- \advance\!!countc by -4 \advance\!!countd by 7
- \doplotchemicalline
- \advance\!!countc by -4 \advance\!!countd by 7
- \doplotchemicalline
- \fi}
-
-\def\plotchemicalwavyline#1#2#3#4%
- {\!!counta=#1\!!countb=#2\!!countc=#3\!!countd=#4\relax
- \ifnum\chemicaldrawingmode=2
- \global\MPdrawingdonetrue
- \setchemicalattributes
- \startMPdrawing
- x0 := \MPdivten[\chemicalxoffset]u ;
- y0 := \MPdivten[\chemicalyoffset]u ;
- x1 := \MPdivten[\the\!!counta]u ;
- y1 := \MPdivten[\the\!!countb]u ;
- x2 := \MPdivten[\the\!!countc]u ;
- y2 := \MPdivten[\the\!!countd]u ;
- save d ; pair d ;
- d := z2 rotatedaround(z1,+5) shifted -z2 ;
- save n ; n := 4 ;
- draw ((for i=0 upto n-1 :
- ((i)/n)[z1,z2] ..
- ((i+.25)/n)[z1,z2] shifted d ..
- ((i+.50)/n)[z1,z2] ..
- ((i+.75)/n)[z1,z2] shifted -d ..
- endfor
- z2) rotatedaround(origin,-\chemicalangle)) shifted z0 ;
- \stopMPdrawing
- \account{#1}{#2}%
- \account{#3}{#4}%
- \else
- \doplotchemicalline
- \advance\!!countc by 16 \advance\!!countd by -21
- \doplotchemicalline
- \advance\!!countc by -4 \advance\!!countd by 7
- \doplotchemicalline
- \advance\!!countc by -4 \advance\!!countd by 7
- \doplotchemicalline
- \advance\!!countc by -8 \advance\!!countd by 14
- \doplotchemicalline
- \advance\!!countc by -4 \advance\!!countd by 7
- \doplotchemicalline
- \advance\!!countc by -4 \advance\!!countd by 7
- \doplotchemicalline
- \advance\!!countc by -4 \advance\!!countd by 7
- \doplotchemicalline
- \fi}
-
-\def\processchemicaldasheddeltalinesegment#1#2%
- {\bgroup
- \def\plotchemicalline{\plotchemicaldasheddeltaline}%
- \doprocesschemicallinesegment0c\getchemicallinesegment{#1}{#2}%
- \egroup}
-
-\def\processchemicalwavylinesegment#1#2%
- {\bgroup
- \def\plotchemicalline{\plotchemicalwavyline}%
- \doprocesschemicallinesegment0c\getchemicallinesegment{#1}{#2}%
- \egroup}
-
-\def\processchemicalopenend#1#2%
- {\doprocesschemicallinesegment0c\doprocesschemicalopenend{#1}{#2}}
-
-\def\doprocesschemicalopenend[#1][#2]%
- {\chemicalrotate[#1]%
- \dochemicaloffset{#1}%
- \ifcase\chemicaldrawingmode
- \beginpicture
- \setquadratic\plot
- 300 0 400 0
- 500 0 550 75
- 600 0 650 -75
- 700 0 750 75
- 800 0 850 -75
- 900 0 950 0
- 1050 0 /
- \endpicture
- \or
- \rput{-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
- {\psline(300,0)(500,0)%
- \rput(500,0){\psplot[yunit=75,plotstyle=curve]{0}{720}{x sin}}%
- \psline(950,0)(1050,0)}%
- \or
- \global\MPdrawingdonetrue
- \setchemicalattributes
- \startMPdrawing
- x0 := \MPdivten[\chemicalxoffset]u ;
- y0 := \MPdivten[\chemicalyoffset]u ;
- draw
- (((30.0u,0)--(50.0u,0){up}..(55.0u,7.5u)..
- (60.0u,0)..(65.0u,-7.5u)..(70.0u,0)..
- (75.0u,7.5u)..(80.0u,0)..(85.0u,-7.5u)..{up}
- (90.0u,0)--(105.0u,0)) rotatedaround(origin,-\chemicalangle))
- shifted z0 ;
- \stopMPdrawing
- \fi
- \undochemicaloffset}
-
-% \plotchemicalcircle{#1}{#2}{#3}{#4}
-%
-% #1: lengte van de boog in graden
-% #2: x-coordinaat eindpunt
-% #3: y-coordinaat eindpunt
-
-\newif\ifchemicaldotted
-
-\def\plotchemicalcircle#1#2#3#4#5#6%
- {\bgroup
- \ifcase\chemicaldrawingmode
- \ifchemicaldotted
- \findlength{\circulararc {#4} degrees from {#5} {#6} center at {0} {0} }%
- \divide\totalarclength by 6
- \def\b{\the\totalarclength}%
- \divide\totalarclength by 2
- \def\a{\the\totalarclength}%
- \setdashpattern <\a,\b,\b,\b,\b,\b,\a>
- \fi
- \circulararc {#4} degrees from {#5} {#6} center at {0} {0} %
- \or
- \ifchemicaldotted
- \psset{linestyle=dashed}%
- \fi
- \rput
- {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
- {\psarc(0,0){#3}{#1}{#2}}%
- \or
- \global\MPdrawingdonetrue
- \setchemicalattributes
- \startMPdrawing
- r := \MPdivten[#3]*2u;
- x0 := \MPdivten[\chemicalxoffset]u ;
- y0 := \MPdivten[\chemicalyoffset]u ;
- draw ((subpath (#1/45,#2/45) of (fullcircle scaled (r)))
- rotatedaround (origin,\chemicalangle+150))
- shifted z0 \ifchemicaldotted dashed withdots \fi ;
- \stopMPdrawing
- \fi
- \egroup}
-
-\def\setchemicalcircsegment #1 #2 #3 #4 #5 #6 #7
- {\setvalue{\s!chemicalcircsegment#1}{\plotchemicalcircle{#2}{#3}{#4}{#5}{#6}{#7}}}
-
-\def\getchemicalcircsegment[#1][#2]%
- {\chemicalrotate[#1]%
- \getvalue{\s!chemicalcircsegment#2}}
-
-\def\doprocesschemicalcircsegment#1#2%
- {\def\doprocess[##1##2##3##4##5]%
- {\doifelse{##1}{?}
- {\doprocess[1..\maxchemical ????]}
- {\doifchemicalnumber{##1}{#1#2}
- {\doifelse{##2##3}{..}
- {\doifchemicalnumber{##4}{#1#2}
- {\getchemicalcircsegment[##1][#1]%
- \doifnot{##1}{##4}
- {\!!counta=##1\relax
- \advance\!!counta by 1
- \edef\nextsegment{\the\!!counta}%
- \doprocess[\nextsegment..##4##5]}}}
- {\getchemicalcircsegment[##1][#1]%
- \doifnot{##2}{?}
- {\doprocess[##2##3##4##5]}}}}}%
- \doprocess[#2]}
-
-\def\processchemicalcircsegment%
- {\chemicaldottedfalse\doprocesschemicalcircsegment}
-
-\def\processchemicaldottsegment%
- {\chemicaldottedtrue\doprocesschemicalcircsegment}
-
-\let\endchemicalpicture = \relax
-\let\checkchemicalpicture = \relax
-\let\nomoreaccounting = \relax
-
-\newif\ifchemicalpicture
-
-\def\beginchemicalpicture#1% NO PSTRICKS SUPPORT YET
- {\checkchemicalpicture
- \bgroup % DOES NOT HANDLE AUTOWIDTH/HEIGHT
- \chemicalpicturetrue
- \processchemical[#1]}
-
-\def\setchemicalpicture#1#2%
- {\chemicalpicturefalse
- \def\endchemicalpicture%
- {\@@endchemicallocalpicture{#1}{#2}%
- \egroup
- \ifnum\chemicaldrawingmode=1
- \rput
- {-\chemicalangle}(\chemicalxoffset,\chemicalyoffset)%
- {\expanded{\rput[\chemicalloca]{\chemicalangle}(#1,#2){\box\nextbox}}}%
- \else
- \expanded{\put{\box\nextbox}[\chemicalloca] at {#1} {#2} }
- \fi
- \egroup}%
- \def\checkchemicalpicture%
- {\ifx\endchemicalpicture\relax \else
- \writestatus{ppchtex}{missing end of picture (PE)}%
- \endchemicalpicture
- \fi}%
- \setbox\nextbox=\hbox\bgroup
- \@@beginchemicallocalpicture
- % alternatief: gewoon accounting, en zelf l,r afhandelen
- \ifnum\chemicaldrawingmode=1
- % njet
- \else
- \accountingon
- \let\nomoreaccounting=\accountingoff
- \fi}
-
-\def\doskipchemical[#1][#2]%
- {{\tt[ppchtex]}}
-
-\def\skipchemical%
- {\dodoubleargument\doskipchemical}
-
-\def\complexchemical% met \expandafter
- {\ifinchemical
- \expandafter\dochemical
- \else
- \writestatus{ppchtex}{the [][]-alternative is not permitted here}%
- \expandafter\skipchemical
- \fi}
-
-\newif\ifinnerchemical
-
-\def\dosimplechemical#1#2#3%
- {\doifdefinedelse{\??chemical\c!location}
- {\writestatus{ppchtex}{the {}{}-alternative is not permitted here}}
- {\ifinnerchemical
- \let\chemicalsign = \chemicalinnersign
- \let\chemicalmolecule = \chemicalinnermolecule
- \let\chemicalsinglearrow = \chemicalsingleinnerarrow
- \let\chemicaldoublearrow = \chemicaldoubleinnerarrow
- \let\chemicaltwintiparrow = \chemicaltwintipinnerarrow
- \else
- \let\chemicalsign = \chemicaloutersign
- \let\chemicalmolecule = \chemicaloutermolecule
- \let\chemicalsinglearrow = \chemicalsingleouterarrow
- \let\chemicaldoublearrow = \chemicaldoubleouterarrow
- \let\chemicaltwintiparrow = \chemicaltwintipouterarrow
- \fi
- \disablechemicalspecials
- \unexpandedprocessallactionsinset
- [#1]
- [ HIGH=>\sethighsubscripts,
- LOW=>\setlowsubscripts,
- PLUS=>\chemicalsign{+},
- GIVES=>\chemicalsinglearrow{#2}{#3},
- EQUILIBRIUM=>\chemicaldoublearrow{#2}{#3},
- MESOMERIC=>\chemicaltwintiparrow{#2}{#3},
- SINGLE=>\singlechemicalbond,
- DOUBLE=>\doublechemicalbond,
- TRIPLE=>\triplechemicalbond,
- +=>\chemicalsign{+},
- ->=>\chemicalsinglearrow{#2}{#3},
- <->=>\chemicaldoublearrow{#2}{#3},
- <>=>\chemicaltwintiparrow{#2}{#3},
- -=>\singlechemicalbond,
- --=>\doublechemicalbond,
- ---=>\triplechemicalbond,
- \s!unknown=>\enablechemicalspecials
- \chemicalmolecule{\commalistelement}{#2}{#3}]}}
-
-%\def\dosimplechemicalA#1#2#3%
-% {\let\chemicalspace=\relax
-% \def\dodosimplechemical##1%
-% {\dosimplechemical{##1}{}{}}%
-% \@EA\processcommalist\@EA[\@@chemicalchemicaloffset,#1]\dodosimplechemical
-% \egroup}
-
-\def\dosimplechemicalA#1#2#3% % evt: {#1,\relax}
- {\let\chemicalspace=\relax
- \@EA\dosimplechemical\@EA{\@@chemicalchemicaloffset,#1}{#2}{#3}%
- \egroup}
-
-\def\dosimplechemicalB#1#2#3%
- {\dosimplechemical{#1}{#2}{#3}%
- \egroup}
-
-\def\dosimplechemicalC#1#2#3%
- {$\simplechemical{#1}{#2}{#3}$%
- \egroup} % erbij
-
-\def\simplechemical
- {\ifinner
- \innerchemicaltrue
- \else
- \innerchemicalfalse
- \fi
- \bgroup
- \catcode`\^=\@@superscript % t.b.v. \enableduplication
- \catcode`\_=\@@subscript % t.b.v. de zekerheid
- \ifmmode
- \ifinnerchemical
- \def\next{\dotriplegroupempty\dosimplechemicalA}%
- \else
- \def\next{\dotriplegroupempty\dosimplechemicalB}%
- \fi
- \else
- \def\next{\dotriplegroupempty\dosimplechemicalC}%
- \fi
- \next}
-
-\definecomplexorsimple\chemical
-
-\def\dogotochemical#1#2%
- {\def\dowithchemical% % experiment
- {\localgotochemical{#1}}% % experiment
- \chemical} % experiment
-
-\def\gotochemical% % experiment
- {\dosingleargument\dogotochemical} % experiment
-
-\def\dododochemical#1[#2][#3]% % experiment
- {\def\simpledododochemical% % experiment
- {#1[#2][#3]}% % experiment
- \def\complexdododochemical[##1]% % experiment
- {\def\dowithchemical% % experiment
- {\localthisischemical{#2}}% % experiment
- #1[#3][##1]}% % experiment
- \complexorsimple\dododochemical} % experiment
-
-\def\dodochemical[#1][#2]%
- {\ignorespaces
- \ifinchemical
- \drawchemical[#1][#2]%
- \ignorespaces
- \else
- \startchemical[\c!location=\v!intext]%
- \drawchemical[#1][#2]%
- \expandafter\stopchemical
- \fi
- \ignorespaces}
-
-\def\dochemical[#1]%
- {\def\simpledochemical%
- {\@@writechemicalstate{ppchtex}{[#1][]}%
- \dodochemical[#1][]}%
- %
- \def\complexdochemical[##1]%
- {\@@writechemicalstate{ppchtex}{[#1][##1]}%
- \txtchemical=0%
- \dodochemical[#1][##1]}%
- %
- \def\complexdochemical[##1]% % experiment
- {\@@writechemicalstate{ppchtex}{[#1][##1]}% % experiment
- \txtchemical=0% % experiment
- \dododochemical\dodochemical[#1][##1]}% % experiment
- %
- \complexorsimple\dochemical}
-
-% \processlocalchemicals{#1}
-%
-% #1: commando's
-
-\def\dodoprocesschemical#1%
- {\processchemical[#1????]}
-
-\def\processlocalchemicals#1%
- {\processcommalist[#1]\dodoprocesschemical}
-
-% \drawchemical[#1][#2]
-%
-% #1: bindingen enz.
-% #2: atomen enz.
-
-\def\localdodochemical[#1][#2]%
- {\@@writechemicalstate{ppchtex}{[#1][#2]}%
- %\bgroup % koppelen en afmetingen gaat fout, vandaar:
- \advance\levchemical 1
- \letvalue{\??chemical\s!unknown\the\levchemical}\unknownchemical
- \setevalue{\??chemical\c!text\the\levchemical}{\the\txtchemical}%
- \txtchemical=0
- \dodochemical[#1][#2]%
- % \@EA\txtchemical\@EA\csname\??chemical\c!text\the\levchemical\endcsname
- \txtchemical\csname\??chemical\c!text\the\levchemical\endcsname
- \@EA\let\@EA\unknownchemical\csname\??chemical\s!unknown\the\levchemical\endcsname
- \advance\levchemical -1
- %\egroup
- \ignorespaces}
-
-\def\drawchemical[#1][#2]%
- {\ignorespaces
- \def\dodochemical[##1][##2]%
- {\drawchemical[##1][##2]%
- \ignorespaces}%
- \def\dochemical[##1]%
- {\def\simpledochemical%
- {\@@writechemicalstate{ppchtex}{[##1][#2]}%
- \dodochemical[##1][#2]%
- \ignorespaces}%
- \def\complexdochemical[####1]%
- {\dododochemical\localdodochemical[##1][####1,#2]}%
- \complexorsimple\dochemical}%
- \doif\@@chemicalstate\v!start
- {\doifelse\chemicalname\s!unknown
- {\getvalue{\s!executechemical\defaultchemical}[#2]}
- {\getvalue{\s!executechemical\chemicalname}[#2]}%
- \def\unknownchemical##1%
- {\processunknownchemical[##1][#2]}%
- \processcommalist[\@@chemicaloffset,#1]\dodoprocesschemical}%
- \ignorespaces}
-
-\unexpanded\def\chemicaloxidation#1#2#3%
- {\chemicaltop
- {\ifnum#20=0
- 0%
- \else
- #1\expandafter\uppercase\expandafter{\romannumeral#2}%
- \fi}
- {#3}}
-
-\def\chemicaltfraction{\ifinchemical.60\else.8\fi}
-\def\chemicalbfraction{\ifinchemical.45\else.6\fi}
-\def\chemicallfraction{\ifinchemical.1\else.1\fi}
-\def\chemicalrfraction{\ifinchemical.1\else.1\fi}
-
-\def\chemicaltighttext
- {\def\chemicaltfraction{\ifinchemical.3\else.6\fi}%
- \def\chemicalbfraction{\ifinchemical.2\else.4\fi}%
- \def\chemicallfraction{\ifinchemical 0\else 0\fi}%
- \def\chemicalrfraction{\ifinchemical 0\else 0\fi}}
-
-\def\dochemicaltop#1#2#3#4%
- {\vbox
- {\@@dochemicalcolor
- \baselineskip=\chemicaltfraction\baselineskip \lineskip0pt
- \halign
- {#1###2\cr
- $\@@dochemicalstyle{\scriptscriptstyle#3}$\cr
- $\@@dochemicalstyle{\@@currentchemicalformat#4}$\cr}}}
-
-\def\dochemicalbottom#1#2#3#4%
- {\vtop
- {\@@dochemicalcolor
- \baselineskip=\chemicalbfraction\baselineskip \lineskip0pt
- \halign
- {#1###2\cr
- $\@@dochemicalstyle{\@@currentchemicalformat#4}$\cr
- $\@@dochemicalstyle{\scriptscriptstyle#3}$\cr}}}
-
-\def\chemicalleft#1#2%
- {\hbox
- {\@@dochemicalcolor
- $\@@dochemicalstyle{\scriptscriptstyle#1}$%
- $\@@dochemicalstyle{\@@currentchemicalformat\hskip\chemicallfraction em#2}$}}
-
-\def\chemicalright#1#2%
- {\hbox
- {\@@dochemicalcolor
- $\@@dochemicalstyle{\@@currentchemicalformat#2\hskip\chemicalrfraction em}$%
- $\@@dochemicalstyle{\scriptscriptstyle#1}$}}
-
-\def\chemicalcentered#1%
- {\setbox0=\hbox{$\@@dochemicalstyle{\scriptscriptstyle#1}$}%
- \setbox2=\hbox{$\@@dochemicalstyle{\@@currentchemicalformat C}$}%
- \dimen0=.5\ht2
- \advance\dimen0 by -.5\ht0
- \advance\dimen0 by \dp0
- \hbox{\@@dochemicalcolor\raise\dimen0\box0}}
-
-\def\chemicalleftcentered#1#2%
- {\hbox
- {\@@dochemicalcolor
- \chemicalcentered{#1}%
- $\@@dochemicalstyle{\@@currentchemicalformat\hskip\chemicallfraction em#2}$}}
-
-\def\chemicalrightcentered#1#2%
- {\hbox
- {\@@dochemicalcolor
- $\@@dochemicalstyle{\@@currentchemicalformat#2\hskip\chemicalrfraction em}$%
- \chemicalcentered{#1}}}
-
-\def\chemicaltop {\dochemicaltop \hss \hss }
-\def\chemicallefttop {\dochemicaltop \relax \hss }
-\def\chemicalrighttop {\dochemicaltop \hss \relax}
-\def\chemicalbottom {\dochemicalbottom \hss \hss }
-\def\chemicalleftbottom {\dochemicalbottom \relax \hss }
-\def\chemicalrightbottom {\dochemicalbottom \hss \relax}
-
-\def\chemicaltopleft #1{\chemicalleft {\chemicallefttop {#1}{}}}
-\def\chemicalbottomleft #1{\chemicalleft {\chemicalleftbottom{#1}{}}}
-\def\chemicaltopright #1{\chemicalright{\chemicallefttop {#1}{}}}
-\def\chemicalbottomright#1{\chemicalright{\chemicalleftbottom{#1}{}}}
-
-\def\chemicalsmashedleft#1%
- {\hbox\bgroup
- \@@dochemicalcolor
- \setbox0=\hbox{$\@@dochemicalstyle{\@@currentchemicalformat C}$}%
- \setbox2=\hbox{$\@@dochemicalstyle{\@@currentchemicalformat#1}$}%
- \wd2=\wd0
- \box2
- \egroup}
-
-\def\chemicalsmashedmiddle#1%
- {\hbox\bgroup
- \@@dochemicalcolor
- \setbox0=\hbox{$\@@dochemicalstyle{\@@currentchemicalformat C}$}%
- \setbox2=\hbox{$\@@dochemicalstyle{\@@currentchemicalformat#1}$}%
- \hbox{\hskip-.5\wd2\hskip.5\wd0\box2}
- \egroup}
-
-\def\chemicalsmashedright#1%
- {\hbox\bgroup
- \@@dochemicalcolor
- \setbox0=\hbox{$\@@dochemicalstyle{\@@currentchemicalformat C}$}%
- \setbox2=\hbox{$\@@dochemicalstyle{\@@currentchemicalformat#1}$}%
- \hbox to \wd0{\hskip-\wd2\hskip\wd0\box2}%
- \egroup}
-
-\def\+{\tabalign} % is \long in Plain
-
-\def\chemicalforever#1#2%
- {\bgroup
- \setbox0=\hbox
- {\@@dochemicalcolor
- $\@@dochemicalstyle{\scriptscriptstyle\hskip-.15em#2}$}%
- \wd0=0pt
- \big#1_{\hskip.1em\box0}%
- \egroup}
-
-\def\disablechemicalspecials%
- {\def\+##1{##1}\def\-##1{##1}%
- \def\[{[}\def\]{]}%
- \def\1{}\def\2{}\def\3{}\def\4{}\def\5{}\def\6{}\def\7{}%
- \def\X{}%
- \def\T{}\def\B{}\def\L{}\def\R{}\def\LC{}\def\RC{}%
- \def\TL{}\def\BL{}\def\TR{}\def\BR{}%
- \def\LT{}\def\LB{}\def\RT{}\def\RB{}%
- \def\SL{}\def\SM{}\def\SR{}}
-
-\def\enablechemicalspecials%
- {\def\+{\dodoublegroupempty\chemicaloxidation{+}}% {} needed!
- \def\-{\dodoublegroupempty\chemicaloxidation{-}}% {} needed!
- \def\[{\dodoublegroupempty\chemicalforever {[}}% {} needed!
- \def\]{\dodoublegroupempty\chemicalforever {]}}% {} needed!
- \def\1{\chemicaloxidation\relax1}%
- \def\2{\chemicaloxidation\relax2}%
- \def\3{\chemicaloxidation\relax3}%
- \def\4{\chemicaloxidation\relax4}%
- \def\5{\chemicaloxidation\relax5}%
- \def\6{\chemicaloxidation\relax6}%
- \def\7{\chemicaloxidation\relax7}%
- \def\X{\chemicaltighttext}%
- \def\T{\chemicaltop}%
- \def\B{\chemicalbottom}%
- \def\L{\chemicalleft}%
- \def\LC{\chemicalleftcentered}%
- \def\R{\chemicalright}%
- \def\RC{\chemicalrightcentered}%
- \def\TL{\chemicaltopleft}%
- \def\BL{\chemicalbottomleft}%
- \def\TR{\chemicaltopright}%
- \def\BR{\chemicalbottomright}%
- \def\LT{\chemicallefttop}%
- \def\LB{\chemicalleftbottom}%
- \def\RT{\chemicalrighttop}%
- \def\RB{\chemicalrightbottom}%
- \def\SL{\chemicalsmashedleft}%
- \def\SM{\chemicalsmashedmiddle}%
- \def\SR{\chemicalsmashedright}%
-}
-
-% \reversechemical#1#2#3
-%
-% #1: prefix
-% #2: volgnummer enz
-% #3: tegengestelde volgnummers
-
-\def\reversechemical#1#2#3%
- {\def\doprocess[##1##2]%
- {\doifchemicalnumber{##1}{#1#2}%
- {\getfromcommalist[#3][##1]%
- \let\reversechemicalaction=\commalistelement
- \processchemical[#1\reversechemicalaction##2]}}%
- \doprocess[#2]}
-
-% \processunknownchemical[#1????][#2]
-%
-% #1: bindingen enz.
-% #2: atomen enz.
-
-\def\defaultchemical%
- {SIX}
-
-\def\processunknownchemical[#1????][#2]%
- {\processaction
- [#1]
- [ SAVE=>\executechemicalSAVE,
- RESTORE=>\executechemicalRESTORE,
- HIGH=>\sethighsubscripts,
- LOW=>\setlowsubscripts,
- \s!default=>,
- \s!unknown=>\doifdefinedelse{\s!executechemical#1}
- {\def\chemicalrotation{1}%
- \def\chemicaloffset{0}%
- \doifdefined{\s!executechemical#1}
- {\getvalue{\s!executechemical#1}[#2]}%
- \@@chemicalpostponed}
- {\getpredefinedchemical{#1}}]}
-
-\newcount\chemicalstack % tzt \newwounter
-
-\setvalue{\s!chemical\c!x1}{0}
-\setvalue{\s!chemical\c!y1}{0}
-
-\def\executechemicalSAVE
- {%\writestatus{ppchtex}{saving \the\horchemical,\the\verchemical}%
- \advance\chemicalstack by 1
- \letvalue {\s!chemical n\the\chemicalstack}=\chemicalname
- %\letvalue {\s!chemical p\the\chemicalstack}=\@@chemicalpostponed
- \setevalue{\s!chemical x\the\chemicalstack}{\the\horchemical}%
- \setevalue{\s!chemical y\the\chemicalstack}{\the\verchemical}}
-
-\def\restorechemicalvalues#1%
- {\let\oldprocesschemical=\processchemical
- \doifdefined{\s!executechemical#1}{\getvalue{\s!executechemical#1}[]}%
- \let\processchemical=\oldprocesschemical}
-
-\def\executechemicalRESTORE
- {\ifnum\chemicalstack=0\relax
- \horchemical=\getvalue{\s!chemical x1}\relax
- \verchemical=\getvalue{\s!chemical y1}\relax
- \else
- \restorechemicalvalues{\getvalue{\s!chemical n\the\chemicalstack}}%
- %\@EA\let\@EA\@@chemicalpostponed\@EA=\csname\s!chemical p\the\chemicalstack\endcsname
- \let\@@chemicalpostponed=\relax
- \horchemical=\getvalue{\s!chemical x\the\chemicalstack}\relax
- \verchemical=\getvalue{\s!chemical y\the\chemicalstack}\relax
- \advance\chemicalstack by -1
- \fi
- \restorechemicalcoordinates}
-
-% De onderstaande macro's zijn verantwoordelijk voor het zetten
-% van de + en pijlen. De +, en dus ook de pijlen, worden omhoog
-% gehaald. Dit oogt m.i. fraaier.
-
-\def\chemicalinnerclip#1%
- {{\setbox0=\hbox{#1}\ht0\ht\strutbox\dp0\dp\strutbox\box0}}
-
-\def\chemicalraise#1#2%
- {\chemicalinnerclip
- {\setbox0=\hbox{$#1+$}%
- \raise\dp0\hbox{$#1#2$}}}
-
-\def\chemicalinnersign#1% todo: \@@chemicaltextcolor
- {\chemicalraise{\@@localchemicalstyle}{#1}}
-
-\def\chemicaloutersign#1%
- {\chemicalraise{}{\@@dochemicalcolor#1}}
-
-\def\chemicalsingleinnerarrow#1#2%
- {\chemicalraise{\@@localchemicalstyle}{\longrightarrow}}
-
-\def\chemicaldoubleinnerarrow#1#2% todo: \@@chemicaltextcolor
- {\chemicalinnerclip
- {\lower.2ex\hbox
- {\setbox0=\hbox{$\@@localchemicalstyle\longrightarrow$}%
- \setbox2=\hbox{$\@@localchemicalstyle\longleftarrow$}%
- \wd0=0pt\raise\ht0\box0\box2}}}
-
-\def\chemicaltwintipinnerarrow#1#2% todo: \@@chemicaltextcolor
- {\chemicalinnerclip
- {\setbox0=\hbox{\chemicalraise{\@@localchemicalstyle}{\longrightarrow}}%
- \setbox2=\hbox{\chemicalraise{\@@localchemicalstyle}{\longleftarrow}}%
- \wd0=0pt\box0\box2}}
-
-\def\dochemicalouterarrow#1#2#3%
- {\bgroup
- \setbox0=\hbox{$\longrightarrow$}%
- \setbox2=\hbox{$\@@dochemicalstyle{\scriptstyle\quad#2\quad}$}%
- \setbox4=\hbox{$\@@dochemicalstyle{\scriptstyle\quad#3\quad}$}%
- \dimen2=\wd0 % \dimen0 is used elsewhere
- \ifdim\wd2>\dimen2 \dimen0=\wd2 \fi
- \ifdim\wd4>\dimen2 \dimen0=\wd4 \fi
- \chemicaloutermolecule
- {#1}
- {\ifdim\ht2>\!!zeropoint\box2\fi} % expands to \empty in test
- {\ifdim\ht4>\!!zeropoint\box4\fi}% % expands to \empty in test
- \egroup}
-
-\def\chemicalsingleouterarrow
- {\dochemicalouterarrow
- {\hbox to \dimen2{\rightarrowfill}}}
-
-\def\chemicaldoubleouterarrow
- {\dochemicalouterarrow
- {\lower.5\ht0\vbox
- {\offinterlineskip
- \hbox to \dimen2{\rightarrowfill}
- \hbox to \dimen2{\leftarrowfill}}}}
-
-\def\chemicaltwintipouterarrow
- {\dochemicalouterarrow
- {\hbox
- {\hbox to \dimen2{\rightarrowfill}%
- \hskip-\dimen2
- \hbox to \dimen2{\leftarrowfill}}}}
-
-\def\chemicalinnermolecule#1#2#3% no mathop here, can generate space
- {\chemicalspace % todo: \@@chemicaltextcolor
- \chemicalinnerclip
- {\dosetsubscripts
- $\@@dochemicalstyle{\@@localchemicalstyle\strut#1}$%
- \doresetsubscripts}%
- \chemicalspace}
-
-\def\chemicaloutermolecule#1#2#3%
- {\chemicalspace
- \bgroup
- \@@dochemicalcolor
- \setbox0=\hbox % else the font is reset
- {\dosetsubscripts
- \hbox{$\@@dochemicalstyle{\strut#1}$}%
- \doresetsubscripts}%
- \mathop{\box0}%
- \ifthirdargument
- \doifnot{#2}{}
- {^{\@@dochemicalstyle{\strut#2}}}%
- \doifnot{#3}{}
- {_{\@@dochemicalstyle{\strut#3}}}%
- \else
- \doifnot{#2}{}
- {_{\@@dochemicalstyle{\strut#2}}}%
- \fi
- \egroup
- \chemicalspace}
-
-\def\chemicalsinglepicturearrow#1%
- {\lower.5ex\hbox
- {\@@dochemicalstyle
- $\chemicalspace
- \buildrel
- \@@dochemicalstyle{\scriptstyle\quad#1\quad}%
- \over{\overrightarrow
- {\hphantom{\@chemicalstyle{\scriptstyle\quad#1\quad}}}}%
- \chemicalspace$}}
-
-\def\chemicaldoublepicturearrow#1%
- {\lower.5ex\hbox
- {\@@dochemicalstyle
- $\chemicalspace
- \buildrel
- \@@dochemicalstyle{\scriptstyle\quad#1\quad}%
- \over{\overrightarrow{\overleftarrow
- {\hphantom{\@@dochemicalstyle{\scriptstyle\quad#1\quad}}}}}%
- \chemicalspace$}}
-
-% Bij de in-line bindingen wordt gebruik gemaakt van
-% een \hrule. De maatvoering wordt bepaald door een
-% kunstmatige em (\wd0).
-
-\def\somechemicalbond%
- {\hrule width \wd0 height .4pt}
-
-\def\dochemicalbonds#1#2#3% todo: \@@chemicaltextstyle
- {{\setbox0=\hbox
- {${\@@localchemicalstyle M}$}%
- \vbox to \ht0
- {\@@dochemicalcolor
- \hsize\wd0
- \vskip.1\wd0#1\vfill#2\vfill#3\vskip.1\wd0}}}
-
-\def\singlechemicalbond%
- {\dochemicalbonds{}{\somechemicalbond}{}}
-
-\def\doublechemicalbond%
- {\dochemicalbonds{\somechemicalbond}{}{\somechemicalbond}}
-
-\def\triplechemicalbond%
- {\dochemicalbonds{\somechemicalbond}{\somechemicalbond}{\somechemicalbond}}
-
-% In plaats van \def\naam{\chemie[...]...} kan beter gebruik
-% worden gemaakt van het commando
-%
-% \definieerchemie[naam]{commando's}
-%
-% De naam krijgt, om problemen met bestaande macro's te
-% voorkomen, een prefix. Bij het ophalen van een commando
-% worden beide definities afgehandeld.
-
-\def\dodefinechemical[#1]#2%
- {\doifdefined{\??chemical#1}
- {\writestatus{ppchtex}{chemical definition #1 is redefined}}%
- \setvalue{\??chemical#1}{#2}}
-
-\def\definechemical%
- {\dosingleargument\dodefinechemical}
-
-\def\getpredefinedchemical#1%
- {\doifdefinedelse{\??chemical#1}
- {\getvalue{\??chemical#1}}
- {\doifdefinedelse{#1}
- {\getvalue{#1}}
- {\writestatus{ppchtex}{unknown chemical definition #1}}}}
-
-% Hieronder zijn de definities van de structuren opgenomen. De
-% naam van de structuur is als volgt opgebouwd:
-%
-% \executechemicalNUMBER[#1]
-%
-% waarbij [#1] betrekking heeft op de tekstelementen van \chemie,
-% de [tweede lijst] dus.
-%
-% De aan \chemie[#1][#2] meegegeven lijst van segmenten wordt
-% deels door de in \execute gedefinieerde macro's afgehandeld,
-% deels door algemene macro's. Segmenten hebben de vorm:
-%
-% [+|-|]identifier[X|XYZ|X..Y]
-%
-% Voorbeelden van segmenten zijn:
-%
-% R1
-% R1..4
-% R135
-% -R1
-% +R35
-
-\setchemicalmaximum 0
-
-\def\processchemical[#1]%
- {\unknownchemical{#1}}
-
-\def\setchemicalname#1 %
- {\def\chemicalname{#1}}
-
-\let\chemicalname=\s!unknown
-
-% Vooruitlopend op een gedetailleerde documentatie, zijn hier
-% vast enkele gebruikte afmetingen:
-%
-% lengte radikalen : 500
-% afstand radikalen : 100
-% afstand dubbele radikalen : 260
-% afstand substituenten : +125
-
-\def\executechemicalONE[#1]%
- {\setchemicalname ONE
- %
- \setchemicalmaximum 8
- \setchemicaldistance 0
- \setchemicalsubstitute 625
- \setchemicaldirection 303
- %
- \setchemicalrotation 1 1 0 1 0 1 0 1 0
- \setchemicalrotation 2 0.707 -0.707 0.707 -0.707 0.707 -0.707 0.707 -0.707
- \setchemicalrotation 3 0 -1 0 -1 0 -1 0 -1
- \setchemicalrotation 4 -0.707 -0.707 -0.707 -0.707 -0.707 -0.707 -0.707 -0.707
- \setchemicalrotation 5 -1 0 -1 0 -1 0 -1 0
- \setchemicalrotation 6 -0.707 0.707 -0.707 0.707 -0.707 0.707 -0.707 0.707
- \setchemicalrotation 7 0 1 0 1 0 1 0 1
- \setchemicalrotation 8 0.707 0.707 0.707 0.707 0.707 0.707 0.707 0.707
- %
- \setchemicalangle 1 0 90 180 270
- \setchemicalangle 2 45 135 225 315
- \setchemicalangle 3 90 180 270 0
- \setchemicalangle 4 135 225 315 45
- \setchemicalangle 5 180 270 0 90
- \setchemicalangle 6 225 315 45 135
- \setchemicalangle 7 270 0 90 180
- \setchemicalangle 8 315 45 135 225
- %
- \setchemicaltranslate 1 -1000 0
- \setchemicaltranslate 2 -1000 1000
- \setchemicaltranslate 3 0 1000
- \setchemicaltranslate 4 1000 1000
- \setchemicaltranslate 5 1000 0
- \setchemicaltranslate 6 1000 -1000
- \setchemicaltranslate 7 0 -1000
- \setchemicaltranslate 8 -1000 -1000
- %
- \setchemicallinesegment SB 300 0 700 0
- \setchemicallinesegment DB1 300 50 700 50
- \setchemicallinesegment DB2 300 -50 700 -50
- %
- %setchemicallinesegment EP 200 125 200 -125
- \setchemicalfactorlinesegment EP 200 125 200 -125
- %
- \setchemicaltextelement ES 200 0
- \setchemicaltextelement ED1 200 50
- \setchemicaltextelement ED2 200 -50
- \setchemicaltextelement ET1 200 75
- \setchemicaltextelement ET2 200 0
- \setchemicaltextelement ET3 200 -75
- \setchemicaltextelement HB1 300 0
- \setchemicaltextelement HB2 475 0
- \setchemicaltextelement HB3 650 0
- %
- \setchemicaltextelement Z 800 0
- \setchemicaltextelement RZ 950 0
- \setchemicaltextelement ZN 500 0
- \setchemicaltextelement ZTN 500 150
- \setchemicaltextelement ZBN 500 -150
- %
- \def\processchemical[##1##2##3##4##5]%
- {\doprocesschemical[##1##2##3##4##5]
- {\processaction
- [##1##2##3##4##5]
- [ PB:##4##5=>\beginchemicalpicture{##4##5},
- PE????=>\endchemicalpicture,
- SUB##4##5=>\processchemicalsubstitute{##4##5},
- ADJ##4##5=>\processchemicaldistance{##4##5},
- MOV##4##5=>\processchemicaltranslate{##4##5},
- DIR##4##5=>\processchemicaldirection{##4##5},
- OFF##4##5=>\processchemicaloffset{##4##5},
- CCD##4##5=>\processchemicaldottsegment{CC}{##4##5},
- LDD##4##5=>\processchemicaldashedlinesegment{DB1}{##4##5}%
- \processchemicallinesegment{DB2}{##4##5},
- RDD##4##5=>\processchemicallinesegment{DB1}{##4##5}%
- \processchemicaldashedlinesegment{DB2}{##4##5},
- OF##3:##5=>\processchemicalphantom{##3}{##5},
- OE##3##4##5=>\processchemicalopenend{OE}{##3##4##5},
- EP##3##4##5=>\processchemicallinesegment{EP}{##3##4##5},
- ES##3##4##5=>\processchemicaltextconstant{ES}{##3##4##5}{\hbox{$\cdot$}}{0},
- ED##3##4##5=>\processchemicaltextconstant{ED}{##3##4##5}{\hbox{$\cdot$}}{0},
- ET##3##4##5=>\processchemicaltextconstant{ET}{##3##4##5}{\hbox{$\cdot$}}{0},
- HB##3##4##5=>\processchemicaltextconstant{HB}{##3##4##5}{\hbox{$\cdot$}}{0},
- SB##3##4##5=>\processchemicallinesegment{SB}{##3##4##5},
- DB##3##4##5=>\processchemicallinesegment{DB}{##3##4##5},
- SB##3##4##5=>\processchemicallinesegment{SB}{##3##4##5},
- BB##3##4##5=>\processchemicaldeltalinesegment{SB}{##3##4##5},
- BD##3##4##5=>\processchemicaldasheddeltalinesegment{SB}{##3##4##5},
- BW##3##4##5=>\processchemicalwavylinesegment{SB}{##3##4##5},
- SD##3##4##5=>\processchemicaldashedlinesegment{SB}{##3##4##5},
- TB##3##4##5=>\processchemicallinesegment{SB}{##3##4##5}%
- \processchemicallinesegment{DB}{##3##4##5},
- CZ##3##4##5=>\processchemicaltextelement{RZ}{##3##4##5}{#1}{0}{},
- ZTN##4##5=>\processchemicalsmalltextconstant{ZTN}{##4##5}{\chemicaltextelementnumber}{0},
- ZTT##4##5=>\processchemicalsmalltextelement{ZTN}{##4##5}{#1}{0}{},
- ZBN##4##5=>\processchemicalsmalltextconstant{ZBN}{##4##5}{\chemicaltextelementnumber}{0},
- ZBT##4##5=>\processchemicalsmalltextelement{ZBN}{##4##5}{#1}{0}{},
- ZN##3##4##5=>\processchemicaltextconstant{ZN}{##3##4##5}{\chemicaltextelementnumber}{0},
- ZT##3##4##5=>\processchemicaltextelement{ZN}{##3##4##5}{#1}{0}{},
- Z##2##3##4##5=>\processchemicaltextelement{Z}{##2##3##4##5}{#1}{0}
- {l,l,t,r,r,r,b,l},
- \s!unknown=>\unknownchemical{##1##2##3##4##5}]}}}
-
-\def\executechemicalTHREE[#1]%
- {\setchemicalname THREE
- %
- \setchemicalmaximum 3
- \setchemicaldistance 289
- \setchemicalsubstitute 952
- %
- \setchemicalrotation 1 1 0 0 -1 -1 0 0 1
- \setchemicalrotation 2 -0.5 -0.866 -0.866 0.5 0.5 0.866 0.866 -0.5
- \setchemicalrotation 3 -0.5 0.866 0.866 0.5 0.5 -0.866 -0.866 -0.5
- %
- \setchemicalangle 1 0 90 180 270
- \setchemicalangle 2 120 210 300 30
- \setchemicalangle 3 240 330 60 150
- %
- \setchemicaltranslate 1 -1000 0
- \setchemicaltranslate 2 0 1000
- \setchemicaltranslate 3 1000 0
- \setchemicaltranslate 4 0 -1000
- %
- \setchemicallinesegment B 577 0 -289 -500
- \setchemicallinesegment SB 352 -130 -64 -370
- \setchemicallinesegment -SB 352 -130 -289 -500
- \setchemicallinesegment +SB 577 0 -64 -370
- \setchemicallinesegment DB1 327 -87 -89 -327
- \setchemicallinesegment DB2 377 -172 -39 -413
- \setchemicallinesegment R 577 0 1077 0
- \setchemicallinesegment -R 577 0 1010 250
- \setchemicallinesegment +R 577 0 1010 -250
- \setchemicallinesegment ER1 577 50 1077 50
- \setchemicallinesegment ER2 577 -50 1077 -50
- \setchemicallinesegment SR 837 0 1077 0
- \setchemicallinesegment -SR 802 130 1010 250
- \setchemicallinesegment +SR 802 -130 1010 -250
- \setchemicallinesegment DR1 837 50 1077 50
- \setchemicallinesegment DR2 837 -50 1077 -50
- %
- \setchemicaltextelement Z 577 0
- \setchemicaltextelement RZ 1177 0
- \setchemicaltextelement -RZ 1097 300
- \setchemicaltextelement +RZ 1097 -300
- \setchemicaltextelement CRZ 1077 0
- %
- \def\processchemical[##1##2##3##4]%
- {\processaction
- [##1##2##3##4]
- [ ROT##4=>\processchemicalrotation{##4},
- MOV##4=>\processchemicaltranslate{##4},
- SUB##4=>\processchemicalsubstitute{##4},
- ADJ##4=>\processchemicaldistance{##4},
- -RZ##4=>\processchemicaltextelement{-RZ}{##4}{#1}{3}
- {l,t,r, l,r,l, r,b,l, r,l,r},
- +RZ##4=>\processchemicaltextelement{+RZ}{##4}{#1}{3}
- {l,r,b, r,r,l, r,l,t, l,l,r},
- -SB##4=>\processchemicallinesegment{-SB}{##4},
- +SB##4=>\processchemicallinesegment{+SB}{##4},
- -SR##4=>\processchemicallinesegment{-SR}{##4},
- +SR##4=>\processchemicallinesegment{+SR}{##4},
- CRZ##4=>\processchemicaltextelement{CRZ}{##4}{#1}{0}
- {},
- DB##3##4=>\processchemicallinesegment{DB}{##3##4},
- DR##3##4=>\processchemicallinesegment{DR}{##3##4},
- RZ##3##4=>\processchemicaltextelement{RZ}{##3##4}{#1}{3}
- {l,r,r, t,r,l, r,l,l, b,l,r},
- ER##3##4=>\processchemicallinesegment{ER}{##3##4},
- SB##3##4=>\processchemicallinesegment{SB}{##3##4},
- SR##3##4=>\processchemicallinesegment{SR}{##3##4},
- -R##3##4=>\processchemicallinesegment{-R}{##3##4},
- +R##3##4=>\processchemicallinesegment{+R}{##3##4},
- B##2##3##4=>\processchemicallinesegment{B}{##2##3##4},
- R##2##3##4=>\processchemicallinesegment{R}{##2##3##4},
- Z##2##3##4=>\processchemicaltextelement{Z}{##2##3##4}{#1}{0}{},
- \s!unknown=>\unknownchemical{##1##2##3##4}]}}
-
-\def\executechemicalFOUR[#1]%
- {\setchemicalname FOUR
- %
- \setchemicalmaximum 4
- \setchemicaldistance 500
- \setchemicalsubstitute 0
- %
- \setchemicalrotation 1 1 0 0 -1 -1 0 0 1
- \setchemicalrotation 2 0 -1 -1 0 0 1 1 0
- \setchemicalrotation 3 -1 0 0 1 1 0 0 -1
- \setchemicalrotation 4 0 1 1 0 0 -1 -1 0
- %
- \setchemicalangle 1 0 90 180 270
- \setchemicalangle 2 90 180 270 0
- \setchemicalangle 3 180 270 0 90
- \setchemicalangle 4 270 0 90 180
- %
- \setchemicaltranslate 1 -1000 0
- \setchemicaltranslate 2 0 1000
- \setchemicaltranslate 3 1000 0
- \setchemicaltranslate 4 0 -1000
- %
- \setchemicallinesegment B 500 500 500 -500
- \setchemicallinesegment SB 500 240 500 -240
- \setchemicallinesegment -SB 500 240 500 -500
- \setchemicallinesegment +SB 500 500 500 -240
- \setchemicallinesegment DB1 450 240 450 -240
- \setchemicallinesegment DB2 550 240 550 -240
- \setchemicallinesegment EB 360 300 360 -300
- \setchemicallinesegment R 500 500 854 854
- \setchemicallinesegment -R 500 500 500 1000
- \setchemicallinesegment +R 500 500 1000 500
- \setchemicallinesegment ER1 465 535 819 889
- \setchemicallinesegment ER2 535 465 889 819
- \setchemicallinesegment SR 684 684 854 854
- \setchemicallinesegment -SR 500 760 500 1000
- \setchemicallinesegment +SR 760 500 1000 500
- \setchemicallinesegment DR1 649 719 819 889
- \setchemicallinesegment DR2 719 649 889 819
- %
- \setchemicaltextelement Z 500 500
- \setchemicaltextelement RZ 925 925
- \setchemicaltextelement -RZ 500 1100
- \setchemicaltextelement +RZ 1100 500
- \setchemicaltextelement CRZ 1038 1038
- %
- \setchemicaltextelement ZN 350 350
- %
- \def\processchemical[##1##2##3##4]%
- {\processaction
- [##1##2##3##4]
- [ PB:##4=>\beginchemicalpicture{##4},
- PE????=>\endchemicalpicture,
- ROT##4=>\processchemicalrotation{##4},
- SUB##4=>\processchemicalsubstitute{##4},
- ADJ##4=>\processchemicaldistance{##4},
- MOV##4=>\processchemicaltranslate{##4},
- -RZ##4=>\processchemicaltextelement{-RZ}{##4}{#1}{4}
- {b,l,t,r, l,t,r,b, t,r,b,l, r,b,l,t},
- +RZ##4=>\processchemicaltextelement{+RZ}{##4}{#1}{4}
- {l,t,r,b, t,r,b,l, r,b,l,t, b,l,t,r},
- -SB##4=>\processchemicallinesegment{-SB}{##4},
- +SB##4=>\processchemicallinesegment{+SB}{##4},
- -SR##4=>\processchemicallinesegment{-SR}{##4},
- +SR##4=>\processchemicallinesegment{+SR}{##4},
- CRZ##4=>\processchemicaltextelement{CRZ}{##4}{#1}{0}{},
- ZN##3##4=>\processchemicaltextconstant{ZN}{##3##4}{\chemicaltextelementnumber}{0},
- ZT##3##4=>\processchemicaltextelement{ZN}{##3##4}{#1}{0}{},
- DB##3##4=>\processchemicallinesegment{DB}{##3##4},
- DR##3##4=>\processchemicallinesegment{DR}{##3##4},
- EB##3##4=>\processchemicallinesegment{EB}{##3##4},
- ER##3##4=>\processchemicallinesegment{ER}{##3##4},
- RZ##3##4=>\processchemicaltextelement{RZ}{##3##4}{#1}{4}
- {lb,lt,rt,rb, lt,rt,rb,lb, rt,rb,lb,lt, rb,lb,lt,rt},
- SB##3##4=>\processchemicallinesegment{SB}{##3##4},
- SR##3##4=>\processchemicallinesegment{SR}{##3##4},
- -R##3##4=>\processchemicallinesegment{-R}{##3##4},
- +R##3##4=>\processchemicallinesegment{+R}{##3##4},
- B##2##3##4=>\processchemicallinesegment{B}{##2##3##4},
- R##2##3##4=>\processchemicallinesegment{R}{##2##3##4},
- Z##2##3##4=>\processchemicaltextelement{Z}{##2##3##4}{#1}{0}{},
- \s!unknown=>\unknownchemical{##1##2##3##4}]}}
-
-\def\executechemicalFIVE[#1]%
- {\setchemicalname FIVE
- %
- \setchemicalmaximum 5
- \setchemicaldistance 688
- \setchemicalsubstitute 1226
- %
- \setchemicalrotation 1 1 0 0 -1 -1 0 0 1
- \setchemicalrotation 2 0.309 -0.951 -0.951 -0.309 -0.309 0.940 0.951 0.309
- \setchemicalrotation 3 -0.809 -0.588 -0.588 0.809 0.809 0.588 0.588 -0.809
- \setchemicalrotation 4 -0.809 0.588 0.588 0.809 0.809 -0.588 -0.588 -0.809
- \setchemicalrotation 5 0.309 0.951 0.951 -0.309 -0.309 -0.951 -0.951 0.309
- %
- \setchemicalangle 1 0 90 180 270
- \setchemicalangle 2 72 162 252 342
- \setchemicalangle 3 144 234 324 54
- \setchemicalangle 4 216 306 36 126
- \setchemicalangle 5 288 18 108 198
- %
- \setchemicaltranslate 1 -1376 0
- \setchemicaltranslate 2 -425 1304
- \setchemicaltranslate 3 1113 809
- \setchemicaltranslate 4 1113 -809
- \setchemicaltranslate 5 -425 -1304
- %
- \setchemicallinesegment A 1188 500 1188 -500
- \setchemicallinesegment B 688 500 688 -500
- \setchemicallinesegment S -263 808 688 -500
- \setchemicallinesegment SS -116 606 541 -298
- \setchemicallinesegment -SS -263 808 541 -298
- \setchemicallinesegment +SS -116 606 688 -500
- \setchemicallinesegment SB 688 240 688 -240
- \setchemicallinesegment -SB 688 240 688 -500
- \setchemicallinesegment +SB 688 500 688 -240
- \setchemicallinesegment DB1 638 240 638 -240
- \setchemicallinesegment DB2 738 240 738 -240
- \setchemicallinesegment EB 548 340 548 -340
- \setchemicallinesegment R 688 500 1093 794
- \setchemicallinesegment -R 688 500 688 1000
- \setchemicallinesegment +R 688 500 1163 345
- \setchemicallinesegment ER1 659 540 1064 834
- \setchemicallinesegment ER2 727 460 1122 754
- \setchemicallinesegment SR 898 653 1093 794
- \setchemicallinesegment -SR 688 760 688 1000
- \setchemicallinesegment +SR 935 420 1163 345
- \setchemicallinesegment DR1 869 693 1064 834
- \setchemicallinesegment DR2 927 613 1122 754
- %
- \setchemicaltextelement Z 688 500
- \setchemicaltextelement RZ 1188 863
- \setchemicaltextelement -RZ 688 1100
- \setchemicaltextelement +RZ 1258 315
- \setchemicaltextelement CRZ 1323 947
- %
- \setchemicalcircsegment C -36 36 590 72 475 -345
- \setchemicalcircsegment CC -72 0 590 72 182 -561
- %
- \setchemicaltextelement ZN 468 350
- \setchemicaltextelement RN 860 625 % 1.25 Z
- \setchemicaltextelement RTN 785 728 % .12 / 103 75
- \setchemicaltextelement RBN 935 522
- %
- \def\processchemical[##1##2##3##4]%
- {\processaction
- [##1##2##3##4]
- [ FRONT????=>{\executechemicalFIVEFRONT[#1]},
- PB:##4=>\beginchemicalpicture{##4},
- PE????=>\endchemicalpicture,
- ROT##4=>\processchemicalrotation{##4},
- SUB##4=>\processchemicalsubstitute{##4},
- ADJ##4=>\processchemicaldistance{##4},
- MOV##4=>\processchemicaltranslate{##4},
- -RZ##4=>\processchemicaltextelement{-RZ}{##4}{#1}{5}
- {b,l,t,r,r, l,t,r,r,l, t,r,r,l,l, r,b,l,t,r},
- +RZ##4=>\processchemicaltextelement{+RZ}{##4}{#1}{5}
- {l,t,r,r,b, t,r,r,l,l, r,r,l,l,r, b,l,l,r,r},
- -SB##4=>\processchemicallinesegment{-SB}{##4},
- +SB##4=>\processchemicallinesegment{+SB}{##4},
- -SR##4=>\processchemicallinesegment{-SR}{##4},
- +SR##4=>\processchemicallinesegment{+SR}{##4},
- -RD##4=>\processchemicaldashedlinesegment{-R}{##4},
- +RD##4=>\processchemicaldashedlinesegment{+R}{##4},
- -RB##4=>\processchemicaldeltalinesegment{-R}{##4},
- +RB##4=>\processchemicaldeltalinesegment{+R}{##4},
- CRZ##4=>\processchemicaltextelement{CRZ}{##4}{#1}{0}{},
- RTN##4=>\processchemicaltextconstant{RTN}{##4}{\chemicaltextelementnumber}{0},
- RTT##4=>\processchemicaltextelement{RTN}{##4}{#1}{0}{},
- RBN##4=>\processchemicaltextconstant{RBN}{##4}{\chemicaltextelementnumber}{0},
- RBT##4=>\processchemicaltextelement{RBN}{##4}{#1}{0}{},
- -SS##4=>\processchemicallinesegment{-SS}{##4},
- +SS##4=>\processchemicallinesegment{+SS}{##4},
- CCD##4=>\processchemicaldottsegment{CC}{##4},
- SS##3##4=>\processchemicallinesegment{SS}{##3##4},
- RD##3##4=>\processchemicaldashedlinesegment{R}{##3##4},
- RB##3##4=>\processchemicaldeltalinesegment{R}{##3##4},
- ZN##3##4=>\processchemicaltextconstant{ZN}{##3##4}{\chemicaltextelementnumber}{0},
- ZT##3##4=>\processchemicaltextelement{ZN}{##3##4}{#1}{0}{},
- RN##3##4=>\processchemicaltextconstant{RN}{##3##4}{\chemicaltextelementnumber}{0},
- RT##3##4=>\processchemicaltextelement{RN}{##3##4}{#1}{0}{},
- AU##3##4=>\processchemicaluparrowsegment{A}{##3##4},
- AD##3##4=>\processchemicaldownarrowsegment{A}{##3##4},
- CC##3##4=>\processchemicalcircsegment{CC}{##3##4},
- CD##3##4=>\processchemicaldottsegment{C}{##3##4},
- DB##3##4=>\processchemicallinesegment{DB}{##3##4},
- DR##3##4=>\processchemicallinesegment{DR}{##3##4},
- EB##3##4=>\processchemicallinesegment{EB}{##3##4},
- ER##3##4=>\processchemicallinesegment{ER}{##3##4},
- RZ##3##4=>\processchemicaltextelement{RZ}{##3##4}{#1}{5}
- {l,l,r,r,r, l,r,r,b,l, r,r,b,l,t, r,l,l,t,r},
- SB##3##4=>\processchemicallinesegment{SB}{##3##4},
- SR##3##4=>\processchemicallinesegment{SR}{##3##4},
- -R##3##4=>\processchemicallinesegment{-R}{##3##4},
- +R##3##4=>\processchemicallinesegment{+R}{##3##4},
- B##2##3##4=>\processchemicallinesegment{B}{##2##3##4},
- C##2##3##4=>\processchemicalcircsegment{C}{##2##3##4},
- R##2##3##4=>\processchemicallinesegment{R}{##2##3##4},
- S##2##3##4=>\processchemicallinesegment{S}{##2##3##4},
- Z##2##3##4=>\processchemicaltextelement{Z}{##2##3##4}{#1}{0}{},
- \s!unknown=>\unknownchemical{##1##2##3##4}]}}
-
-\def\executechemicalSIX[#1]%
- {\setchemicalname SIX
- %
- \setchemicalmaximum 6
- \setchemicalsubstitute 1375
- \setchemicaldistance 866
- %
- \setchemicalrotation 1 1 0 0 -1 -1 0 0 1
- \setchemicalrotation 2 0.5 -0.866 -0.866 -0.5 -0.5 0.866 0.866 0.5
- \setchemicalrotation 3 -0.5 -0.866 -0.866 0.5 0.5 0.866 0.866 -0.5
- \setchemicalrotation 4 -1 0 0 1 1 0 0 -1
- \setchemicalrotation 5 -0.5 0.866 0.866 0.5 0.5 -0.866 -0.866 -0.5
- \setchemicalrotation 6 0.5 0.866 0.866 -0.5 -0.5 -0.866 -0.866 0.5
- %
- \setchemicalangle 1 0 90 180 270
- \setchemicalangle 2 60 150 240 330
- \setchemicalangle 3 120 210 300 30
- \setchemicalangle 4 180 270 0 90
- \setchemicalangle 5 240 330 60 150
- \setchemicalangle 6 300 30 120 210
- %
- \setchemicaltranslate 1 -1732 0
- \setchemicaltranslate 2 -866 1500
- \setchemicaltranslate 3 866 1500
- \setchemicaltranslate 4 1732 0
- \setchemicaltranslate 5 866 -1500
- \setchemicaltranslate 6 -866 -1500
- %
- \setchemicallinesegment A 1386 500 1386 -500
- \setchemicallinesegment S 0 1000 866 -500
- \setchemicallinesegment SS 125 783 741 -283
- \setchemicallinesegment -SS 0 1000 741 -283
- \setchemicallinesegment +SS 125 783 866 -500
- \setchemicallinesegment B 866 500 866 -500
- \setchemicallinesegment SB 866 240 866 -240
- \setchemicallinesegment -SB 866 240 866 -500
- \setchemicallinesegment +SB 866 500 866 -240
- \setchemicallinesegment DB1 816 240 816 -240
- \setchemicallinesegment DB2 916 240 916 -240
- \setchemicallinesegment EB 726 340 726 -340
- \setchemicallinesegment R 866 500 1299 750
- \setchemicallinesegment -R 866 500 866 1000
- \setchemicallinesegment +R 866 500 1299 250
- \setchemicallinesegment ER1 841 543 1274 793
- \setchemicallinesegment ER2 891 457 1324 707
- \setchemicallinesegment SR 1091 630 1299 750
- \setchemicallinesegment -SR 866 740 866 1000
- \setchemicallinesegment +SR 1091 370 1299 250
- \setchemicallinesegment DR1 1066 673 1274 793
- \setchemicallinesegment DR2 1116 588 1324 707
- \setchemicallinesegment MID1 0 1000 -150 200
- \setchemicallinesegment MID2 0 -1000 -150 -200
- \setchemicallinesegment MIDS1 0 1000 -180 0
- \setchemicallinesegment MIDS2 0 -1000 -180 0
- %
- \setchemicalcircsegment C -30 30 700 60 600 -346
- \setchemicalcircsegment CC -60 0 700 60 350 -606
- %
- \setchemicaltextelement Z 866 500
- \setchemicaltextelement RZ 1386 800
- \setchemicaltextelement -RZ 866 1100
- \setchemicaltextelement +RZ 1386 200
- \setchemicaltextelement CRZ 1524 880
- \setchemicaltextelement MIDZ -150 0
- %
- \setchemicaltextelement ZN 589 350
- \setchemicaltextelement RN 1083 625 % 1.25 Z
- \setchemicaltextelement RTN 1008 755 % .12 / 130 75
- \setchemicaltextelement RBN 1158 495
- %
- \def\processchemical[##1##2##3##4##5]%
- {\processaction
- [##1##2##3##4##5]
- [ FRONT????=>{\executechemicalSIXFRONT[#1]},
- MID????=>\processchemicallinesegment{MID}{1????},
- MIDS????=>\processchemicallinesegment{MIDS}{1????},
- MIDZ????=>\processchemicaltextelement{MIDZ}{1????}{#1}{0}{},
- PB:##4##5=>\beginchemicalpicture{##4##5},
- PE????=>\endchemicalpicture,
- ROT##4##5=>\processchemicalrotation{##4##5},
- SUB##4##5=>\processchemicalsubstitute{##4##5},
- ADJ##4##5=>\processchemicaldistance{##4##5},
- MOV##4##5=>\processchemicaltranslate{##4##5},
- -RZ##4##5=>\processchemicaltextelement{-RZ}{##4##5}{#1}{6}
- {b,l,l,t,r,r, l,l,r,r,r,l, t,r,r,b,l,l, r,r,l,l,l,r},
- +RZ##4##5=>\processchemicaltextelement{+RZ}{##4##5}{#1}{6}
- {l,t,r,r,b,l, r,r,r,l,l,l, r,b,l,l,t,r, l,l,l,r,r,r},
- -SB##4##5=>\processchemicallinesegment{-SB}{##4##5},
- +SB##4##5=>\processchemicallinesegment{+SB}{##4##5},
- -SR##4##5=>\processchemicallinesegment{-SR}{##4##5},
- +SR##4##5=>\processchemicallinesegment{+SR}{##4##5},
- -RD##4##5=>\processchemicaldashedlinesegment{-R}{##4##5},
- +RD##4##5=>\processchemicaldashedlinesegment{+R}{##4##5},
- -RB##4##5=>\processchemicaldeltalinesegment{-R}{##4##5},
- +RB##4##5=>\processchemicaldeltalinesegment{+R}{##4##5},
- CRZ##4##5=>\processchemicaltextelement{CRZ}{##4##5}{#1}{0}{},
- -SS##4##5=>\processchemicallinesegment{-SS}{##4##5},
- +SS##4##5=>\processchemicallinesegment{+SS}{##4##5},
- CCD##4##5=>\processchemicaldottsegment{CC}{##4##5},
-RTN##4##5=>\processchemicaltextconstant{RTN}{##4##5}{\chemicaltextelementnumber}{0},
-RTT##4##5=>\processchemicaltextelement{RTN}{##4##5}{#1}{0}{},
-RBN##4##5=>\processchemicaltextconstant{RBN}{##4##5}{\chemicaltextelementnumber}{0},
-RBT##4##5=>\processchemicaltextelement{RBN}{##4##5}{#1}{0}{},
- SS##3##4##5=>\processchemicallinesegment{SS}{##3##4##5},
- RD##3##4##5=>\processchemicaldashedlinesegment{R}{##3##4##5},
- RB##3##4##5=>\processchemicaldeltalinesegment{R}{##3##4##5},
- ZN##3##4##5=>\processchemicaltextconstant{ZN}{##3##4##5}{\chemicaltextelementnumber}{0},
- ZT##3##4##5=>\processchemicaltextelement{ZN}{##3##4##5}{#1}{0}{},
-RN##3##4##5=>\processchemicaltextconstant{RN}{##3##4##5}{\chemicaltextelementnumber}{0},
-RT##3##4##5=>\processchemicaltextelement{RN}{##3##4##5}{#1}{0}{},
- AU##3##4##5=>\processchemicaluparrowsegment{A}{##3##4##5},
- AD##3##4##5=>\processchemicaldownarrowsegment{A}{##3##4##5},
- CD##3##4##5=>\processchemicaldottsegment{C}{##3##4##5},
- CC##3##4##5=>\processchemicalcircsegment{CC}{##3##4##5},
- DB##3##4##5=>\processchemicallinesegment{DB}{##3##4##5},
- EB##3##4##5=>\processchemicallinesegment{EB}{##3##4##5},
- ER##3##4##5=>\processchemicallinesegment{ER}{##3##4##5},
- RZ##3##4##5=>\processchemicaltextelement{RZ}{##3##4##5}{#1}{6}
- {l,l,t,r,r,b, l,r,r,r,l,l, r,r,b,l,l,t, r,l,l,l,r,r},
- SB##3##4##5=>\processchemicallinesegment{SB}{##3##4##5},
- SR##3##4##5=>\processchemicallinesegment{SR}{##3##4##5},
- DR##3##4##5=>\processchemicallinesegment{DR}{##3##4##5},
- -R##3##4##5=>\processchemicallinesegment{-R}{##3##4##5},
- +R##3##4##5=>\processchemicallinesegment{+R}{##3##4##5},
- B##2##3##4##5=>\processchemicallinesegment{B}{##2##3##4##5},
- C##2##3##4##5=>\processchemicalcircsegment{C}{##2##3##4##5},
- R##2##3##4##5=>\processchemicallinesegment{R}{##2##3##4##5},
- S##2##3##4##5=>\processchemicallinesegment{S}{##2##3##4##5},
- Z##2##3##4##5=>\processchemicaltextelement{Z}{##2##3##4##5}{#1}{0}{},
- \s!unknown=>\unknownchemical{##1##2##3##4##5}]}}
-
-\def\executechemicalSEVEN[#1]% incomplete !
- {\setchemicalname SEVEN
- %
- \setchemicalmaximum 7
- \setchemicalsubstitute -
- \setchemicaldistance 1038
- %
- \setchemicalrotation 1 .623 .782 - - - - - -
- \setchemicalrotation 2 -.223 .975 - - - - - -
- \setchemicalrotation 3 -.901 .434 - - - - - -
- \setchemicalrotation 4 -.901 -.434 - - - - - -
- \setchemicalrotation 5 -.223 -.975 - - - - - -
- \setchemicalrotation 6 .623 -.782 - - - - - -
- \setchemicalrotation 7 1 0 - - - - - -
- %
- \setchemicalangle 1 0 - - -
- \setchemicalangle 2 51.429 - - -
- \setchemicalangle 3 102.857 - - -
- \setchemicalangle 4 154.286 - - -
- \setchemicalangle 5 205.714 - - -
- \setchemicalangle 6 257.143 - - -
- \setchemicalangle 7 308.571 - - -
- %
- \setchemicaltranslate 1 - -
- \setchemicaltranslate 2 - -
- \setchemicaltranslate 3 - -
- \setchemicaltranslate 4 - -
- \setchemicaltranslate 5 - -
- \setchemicaltranslate 6 - -
- \setchemicaltranslate 7 - -
- %
- \setchemicallinesegment B 1038 500 1038 -500
- \setchemicallinesegment SB 1038 240 1038 -240
- \setchemicallinesegment -SB 1038 240 1038 -500
- \setchemicallinesegment +SB 1038 500 1038 -240
- %
- \setchemicaltextelement Z 1038 500
- %
- \def\processchemical[##1##2##3##4##5]%
- {\processaction
- [##1##2##3##4##5]
- [ PB:##4##5=>\beginchemicalpicture{##4##5},
- PE????=>\endchemicalpicture,
- %ROT##4##5=>\processchemicalrotation{##4},
- %SUB##4##5=>\processchemicalsubstitute{##4##5},
- %ADJ##4##5=>\processchemicaldistance{##4##5},
- %MOV##4##5=>\processchemicaltranslate{##4##5},
- -SB##4##5=>\processchemicallinesegment{-SB}{##4##5},
- +SB##4##5=>\processchemicallinesegment{+SB}{##4##5},
- SB##3##4##5=>\processchemicallinesegment{SB}{##3##4##5},
- B##2##3##4##5=>\processchemicallinesegment{B}{##2##3##4##5},
- Z##2##3##4##5=>\processchemicaltextelement{Z}{##2##3##4##5}{#1}{0}{},
- \s!unknown=>\unknownchemical{##1##2##3##4##5}]}}
-
-\def\executechemicalEIGHT[#1]% incomplete !
- {\setchemicalname EIGHT
- %
- \setchemicalmaximum 8
- %\setchemicalsubstitute 1307
- \setchemicaldistance 1207
- %
- \setchemicalrotation 1 .707 .707 - - - - - -
- \setchemicalrotation 2 0 1 - - - - - -
- \setchemicalrotation 3 -.707 .707 - - - - - -
- \setchemicalrotation 4 -1 0 - - - - - -
- \setchemicalrotation 5 -.707 -.707 - - - - - -
- \setchemicalrotation 6 0 -1 - - - - - -
- \setchemicalrotation 7 .707 -.707 - - - - - -
- \setchemicalrotation 8 1 0 - - - - - -
- %
- \setchemicalangle 1 45 - - -
- \setchemicalangle 2 90 - - -
- \setchemicalangle 3 135 - - -
- \setchemicalangle 4 180 - - -
- \setchemicalangle 5 225 - - -
- \setchemicalangle 6 270 - - -
- \setchemicalangle 7 315 - - -
- \setchemicalangle 8 0 - - -
- %
- \setchemicaltranslate 1 -2414 0
- \setchemicaltranslate 2 -1706 1706
- \setchemicaltranslate 3 0 2414
- \setchemicaltranslate 4 1706 1706
- \setchemicaltranslate 5 2414 0
- \setchemicaltranslate 6 1706 -1706
- \setchemicaltranslate 7 0 -2414
- \setchemicaltranslate 8 -1706 -1706
- %
- \setchemicallinesegment B 1207 500 1207 -500
- \setchemicallinesegment SB 1207 240 1207 -240
- \setchemicallinesegment -SB 1207 240 1207 -500
- \setchemicallinesegment +SB 1207 500 1207 -240
- %
- \setchemicaltextelement Z 1207 500
- %
- \def\processchemical[##1##2##3##4##5]%
- {\processaction
- [##1##2##3##4##5]
- [ PB:##4##5=>\beginchemicalpicture{##4##5},
- PE????=>\endchemicalpicture,
- %SUB##4##5=>\processchemicalsubstitute{##4##5},
- ADJ##4##5=>\processchemicaldistance{##4##5},
- MOV##4##5=>\processchemicaltranslate{##4##5},
- -SB##4##5=>\processchemicallinesegment{-SB}{##4##5},
- +SB##4##5=>\processchemicallinesegment{+SB}{##4##5},
- SB##3##4##5=>\processchemicallinesegment{SB}{##3##4##5},
- B##2##3##4##5=>\processchemicallinesegment{B}{##2##3##4##5},
- Z##2##3##4##5=>\processchemicaltextelement{Z}{##2##3##4##5}{#1}{0}{},
- \s!unknown=>\unknownchemical{##1##2##3##4##5}]}}
-
-\def\executechemicalFIVEFRONT[#1]%
- {\executechemicalFIVE[]%
- %
- \setchemicalname FIVEFRONT
- %
- \setchemicallinesegment -R 688 500 688 100
- \setchemicallinesegment +R 688 500 688 900
- %
- \setchemicaltextelement -RZ 0 -1300
- \setchemicaltextelement +RZ 0 1300
- %
- \def\processchemical[##1##2##3##4]%
- {\def\chemicalrotation{2}%
- \processaction
- [##1##2##3##4]
- [ -RZ##4=>\processchemicalunrotatedtextelement{Z}{-RZ}{##4}{#1}{5}
- {,,,,, t,t,t,t,t},
- +RZ##4=>\processchemicalunrotatedtextelement{Z}{+RZ}{##4}{#1}{5}
- {,,,,, b,b,b,b,b},
- -SB##4=>\processchemicallinesegment{-SB}{##4},
- +SB##4=>\processchemicallinesegment{+SB}{##4},
- SB##3##4=>\processchemicallinesegment{SB}{##3##4},
- -R##3##4=>\processchemicalunrotatedlinesegment{t}{-R}{##3##4},
- +R##3##4=>\processchemicalunrotatedlinesegment{b}{+R}{##3##4},
- BB##3##4=>\processchemicalzlinesegment{B}{##3##4},
- R##2##3##4=>\processchemicalunrotatedlinesegment{t}{-R}{##2##3##4}%
- \processchemicalunrotatedlinesegment{b}{+R}{##2##3##4},
- B##2##3##4=>\processchemicallinesegment{B}{##2##3##4},
- Z##2##3##4=>\processchemicaltextelement{Z}{##2##3##4}{#1}{0}{},
- \s!unknown=>\unknownchemical{##1##2##3##4}]}}
-
-\def\executechemicalSIXFRONT[#1]%
- {\executechemicalSIX[]%
- %
- \setchemicalname SIXFRONT
- %
- \setchemicallinesegment -R 866 500 866 100
- \setchemicallinesegment +R 866 500 866 900
- %
- \setchemicaltextelement -RZ 0 -1300
- \setchemicaltextelement +RZ 0 1300
- %
- \def\processchemical[##1##2##3##4]%
- {\def\chemicalrotation{2}%
- \processaction
- [##1##2##3##4]
- [ -RZ##4=>\processchemicalunrotatedtextelement{Z}{-RZ}{##4}{#1}{6}
- {,,,,,, t,t,t,t,t,t},
- +RZ##4=>\processchemicalunrotatedtextelement{Z}{+RZ}{##4}{#1}{6}
- {,,,,,, b,b,b,b,b,b},
- -SB##4=>\processchemicallinesegment{-SB}{##4},
- +SB##4=>\processchemicallinesegment{+SB}{##4},
- SB##3##4=>\processchemicallinesegment{SB}{##3##4},
- -R##3##4=>\processchemicalunrotatedlinesegment{t}{-R}{##3##4},
- +R##3##4=>\processchemicalunrotatedlinesegment{b}{+R}{##3##4},
- BB##3##4=>\processchemicalzlinesegment{B}{##3##4},
- R##2##3##4=>\processchemicalunrotatedlinesegment{t}{-R}{##2##3##4}%
- \processchemicalunrotatedlinesegment{b}{+R}{##2##3##4},
- B##2##3##4=>\processchemicallinesegment{B}{##2##3##4},
- Z##2##3##4=>\processchemicaltextelement{Z}{##2##3##4}{#1}{0}{},
- \s!unknown=>\unknownchemical{##1##2##3##4}]}}
-
-% 1 : 0
-% 2 : -115
-% 3* : -195
-% 3 : -165
-% 4 : -245
-
-\def\executechemicalCARBON[#1]%
- {\setchemicalname CARBON
- %
- \setchemicalmaximum 4
- \setchemicaldistance 0
- \setchemicalsubstitute 0
- %
- \setchemicalrotation 1 1 0 0 -1 -1 0 0 1
- \setchemicalrotation 2 -0.423 -0.906 -0.906 0.423 0.423 0.906 0.906 -0.423
- \setchemicalrotation 3 -0.966 -0.259 -0.259 0.966 0.966 0.259 0.259 -0.966
- \setchemicalrotation 3* -0.966 0.259 0.259 0.966 0.966 -0.259 -0.259 -0.966
- \setchemicalrotation 4 -0.423 0.906 0.906 0.423 0.423 -0.906 -0.906 -0.423
- %
- \setchemicalangle 1 0 90 180 270
- \setchemicalangle 2 115 205 295 25
- \setchemicalangle 3 165 255 345 75
- \setchemicalangle 3* 195 285 15 105
- \setchemicalangle 4 245 335 65 155
- %
- \setchemicaltranslate 1 -1500 0
- \setchemicaltranslate 2 0 1500
- \setchemicaltranslate 3 1500 0
- \setchemicaltranslate 4 0 -1500
- %
- \setchemicallinesegment B1 500 0 1000 0
- \setchemicallinesegment B2 300 0 1000 0
- \setchemicallinesegment B3 500 0 1000 0
- \setchemicallinesegment B4 300 0 1000 0
- %
- \setchemicaltextelement Z 1100 0
- %
- \setchemicalcircsegment C 0 360 500 360 0 -500
- %
- \def\processchemical[##1##2##3##4##5]%
- {\processaction
- [##1##2##3##4##5]
- [ MIR????=>\setchemicalmirror{3},
- -MIR????=>\resetchemicalmirror{3},
- *MIR????=>\togglechemicalmirror{3},
- CB????=>\processlocalchemicals{B,C,Z},
- C????=>\processchemicalcircsegment{C}{1????},
- -ROT##5=>\reversechemical{ROT}{##5}{3,4,1,2},
- ROT##4##5=>\processchemicalrotation{##4##5},
- MOV##4##5=>\processchemicaltranslate{##4##5},
- CB##3##4##5=>\processlocalchemicals
- {ROT##3,C,B,Z2..4,
- MOV##3,*MIR,-ROT##3,C,B,Z2..4},
- B##2##3##4##5=>\processprivatechemicallinesegment{B}{##2##3##4##5},
- Z##2##3##4##5=>\processchemicaltextelement{Z}{##2##3##4##5}{#1}{4}
- {l,t,r,b, t,r,b,l, r,b,l,t, b,l,t,r},
- \s!unknown=>\unknownchemical{##1##2##3##4##5}]}}
-
-% 1: 45 2: -90 3: -225
-% 4: -45 5: -135 6: -270
-
-\newif\ifNEWMANstagger \NEWMANstaggertrue
-
-\def\executechemicalNEWMANSTAGGER%
- {\NEWMANstaggertrue\executechemicalNEWMAN}
-
-\def\executechemicalNEWMANECLIPSE%
- {\NEWMANstaggerfalse\executechemicalNEWMAN}
-
-\def\executechemicalNEWMAN[#1]%
- {\setchemicalname NEWMAN
- %
- \setchemicalmaximum 6
- \setchemicaldistance 0
- \setchemicalsubstitute 0
- %
- \ifNEWMANstagger
- \setchemicalrotation 1 0.707 0.707 0.707 -0.707 -0.707 -0.707 -0.707 0.707
- \setchemicalrotation 2 0 -1 -1 0 0 1 1 0
- \setchemicalrotation 3 -0.707 0.707 0.707 0.707 0.707 -0.707 -0.707 -0.707
- \else
- \setchemicalrotation 1 .866 -.5 -.5 -.866 -.866 .5 .5 .866
- \setchemicalrotation 2 -.259 .966 .966 .259 .259 -.966 -.966 -.259
- \setchemicalrotation 3 -.5 -.866 -.866 .5 .5 .866 .866 -.5
- \fi
- \setchemicalrotation 4 0.707 -0.707 -0.707 -0.707 -0.707 0.707 0.707 0.707
- \setchemicalrotation 5 -0.707 -0.707 -0.707 0.707 0.707 0.707 0.707 -0.707
- \setchemicalrotation 6 0 1 1 0 0 -1 -1 0
- %
- \ifNEWMANstagger
- \setchemicalangle 1 315 45 135 225
- \setchemicalangle 2 90 180 270 0
- \setchemicalangle 3 225 315 45 135
- \else
- \setchemicalangle 1 30 120 210 300
- \setchemicalangle 2 255 345 75 165
- \setchemicalangle 3 120 210 300 30
- \fi
- \setchemicalangle 4 45 135 225 315
- \setchemicalangle 5 135 225 315 45
- \setchemicalangle 6 270 0 90 180
- %
- \setchemicaltranslate 1 -1500 0
- \setchemicaltranslate 2 0 1500
- \setchemicaltranslate 3 1500 0
- \setchemicaltranslate 4 0 -1500
- %
- \setchemicallinesegment B1 0 0 1000 0
- \setchemicallinesegment B2 0 0 1000 0
- \setchemicallinesegment B3 0 0 1000 0
- \setchemicallinesegment B4 500 0 1000 0
- \setchemicallinesegment B5 500 0 1000 0
- \setchemicallinesegment B6 500 0 1000 0
- %
- \setchemicaltextelement Z 1100 0
- %
- \setchemicalcircsegment C 0 360 500 360 0 -500
- %
- \def\processchemical[##1##2##3##4]%
- {\processaction
- [##1##2##3##4]
- [STAGGER????=>{\executechemicalNEWMANSTAGGER[#1]},
- ECLIPSE????=>{\executechemicalNEWMANECLIPSE[#1]},
- B????=>\processlocalchemicals{B1..6},
- CB????=>\processlocalchemicals{B1..6,C,Z1..6},
- C????=>\processchemicalcircsegment{C}{1????},
- ROT##4=>\processchemicalrotation{##4},
- MOV##4=>\processchemicaltranslate{##4},
- B##2##3##4=>\processprivatechemicallinesegment{B}{##2##3##4},
- Z##2##3##4=>\ifNEWMANstagger
- \processchemicaltextelement{Z}{##2##3##4}{#1}{6}
- {l,t,r,l,r,b, l,r,l,r,r,l, r,b,l,r,l,t, r,l,r,l,l,r}%
- \else
- \processchemicaltextelement{Z}{##2##3##4}{#1}{6}
- {l,r,t,t,r,b, t,b,r,r,b,l, r,l,b,b,l,t, b,t,l,l,t,r}%
- \fi,
- \s!unknown=>\unknownchemical{##1##2##3##4}]}}
-
-\def\executechemicalCHAIR[#1]% smaller
- {\setchemicalname CHAIR
- %
- \setchemicalmaximum 6
- %
- \setchemicallinesegment B1 1600 800 2800 -800
- \setchemicallinesegment B2 2800 -800 800 0
- \setchemicallinesegment B3 800 0 -1600 -800
- \setchemicallinesegment B4 -1600 -800 -2800 800
- \setchemicallinesegment B5 -2800 800 -800 0
- \setchemicallinesegment B6 -800 0 1600 800
- %
- \setchemicallinesegment +R1 1600 800 1600 1600
- \setchemicallinesegment +R2 2800 -800 2800 -1600
- \setchemicallinesegment +R3 800 0 800 800
- \setchemicallinesegment +R4 -1600 -800 -1600 -1600
- \setchemicallinesegment +R5 -2800 800 -2800 1600
- \setchemicallinesegment +R6 -800 0 -800 -800
- %
- \setchemicallinesegment -R1 1600 800 2350 522 % 750 278
- \setchemicallinesegment -R2 2800 -800 3493 -400
- \setchemicallinesegment -R3 800 0 1329 -600 % 528 600
- \setchemicallinesegment -R4 -1600 -800 -2350 -522 % 750 278
- \setchemicallinesegment -R5 -2800 800 -3493 400
- \setchemicallinesegment -R6 -800 0 -1329 600 % 528 600
- %
- \setchemicaltextelement +RZ1 1600 1800
- \setchemicaltextelement +RZ2 2800 -1800
- \setchemicaltextelement +RZ3 800 1000
- \setchemicaltextelement +RZ4 -1600 -1800
- \setchemicaltextelement +RZ5 -2800 1800
- \setchemicaltextelement +RZ6 -800 -1000
- %
- \setchemicaltextelement -RZ1 2538 453 % 200 lang
- \setchemicaltextelement -RZ2 3666 -300
- \setchemicaltextelement -RZ3 1460 -750
- \setchemicaltextelement -RZ4 -2538 -453
- \setchemicaltextelement -RZ5 -3666 300
- \setchemicaltextelement -RZ6 -1460 750
- %
- \def\processchemical[##1##2##3##4##5]%
- {\def\chemicalrotation{1}%
- \processaction
- [##1##2##3##4##5]
- [ B????=>\processlocalchemicals{B1,B2,B3,B4,B5,B6},
- -R????=>\processlocalchemicals{-R1,-R2,-R3,-R4,-R5,-R6},
- +R????=>\processlocalchemicals{+R1,+R2,+R3,+R4,+R5,+R6},
- B##2????=>{\getchemicallinesegment[0][B##2]},
- -RZ##4????=>{\getchemicalfixedtextelement[-RZ##4][1][##4][l,l,tc,r,r,bc][#1]},
- +RZ##4????=>{\getchemicalfixedtextelement[+RZ##4][1][##4][c][#1]},
- -R##3????=>{\getchemicallinesegment[0][-R##3]},
- +R##3????=>{\getchemicallinesegment[0][+R##3]},
- \s!unknown=>\unknownchemical{##1##2##3##4##5}]}}
-
-\def\executechemicalarrow#1#2[#3]%
- {\dogetcommalistelement1\from#3\to\toptext
- \dogetcommalistelement2\from#3\to\bottext
- \def\dochemicaltext##1%
- {\dosetsubscripts%
- $\@@dochemicalstyle{\@@localchemicalformat\strut##1}$%
- \doresetsubscripts}%
- \doifelse\@@chemicallocation\v!intext
- {#1{\dochemicaltext\toptext}}%
- {\setbox\chemicalsymbols=\hbox
- {\box\chemicalsymbols
- \vbox{\halign{##\cr
- \hbox to 3em{\hss\dochemicaltext{\toptext}\hss}\cr
- #2%
- \hbox to 3em{\hss\dochemicaltext{\bottext}\hss}\cr}}}}}
-
-\def\executechemicalGIVES
- {\executechemicalarrow
- {\chemicalsinglepicturearrow}% nodig
- {\rightarrowfill\cr}}
-
-\def\executechemicalEQUILIBRIUM
- {\executechemicalarrow
- {\chemicaldoublepicturearrow}% nodig
- {\rightarrowfill\cr\leftarrowfill\cr}}
-
-\def\executechemicalMESOMERIC
- {\executechemicalarrow
- {\chemicalsinglepicturearrow}% nodig
- {$\leftarrow\hskip-1em$\rightarrowfill\cr}}
-
-\def\executechemicalsign#1[#2]%
- {\doifelse\@@chemicallocation\v!intext
- {\dosetsubscripts
- $\@@dochemicalstyle{\@@localchemicalformat#1}$%
- \doresetsubscripts}
- {\setbox\chemicalsymbols\hbox
- {\box\chemicalsymbols
- \dosetsubscripts
- $\@@dochemicalstyle{\@@localchemicalformat#1}$%
- \doresetsubscripts}}}
-
-\def\executechemicalPLUS
- {\executechemicalsign{+}}
-
-\def\executechemicalMINUS
- {\executechemicalsign{-}}
-
-\def\executechemicalEQUAL
- {\executechemicalsign{=}}
-
-\def\executechemicalSPACE[#1]%
- {\doifnot\@@chemicallocation\v!intext
- {\setbox\chemicalsymbols\hbox
- {\box\chemicalsymbols
- \quad}}}
-
-\def\executechemicalCHEM[#1]%
- {\doifnot\@@chemicallocation\v!intext
- {\setbox\chemicalsymbols\hbox
- {\box\chemicalsymbols
- $\@@dochemicalstyle{\@@localchemicalformat#1}$}}}
-
-\def\executechemicalTEXT[#1]%
- {\doifnot\@@chemicallocation\v!intext
- {\setbox\chemicalsymbols\hbox
- {\box\chemicalsymbols#1}}}
-
-%\def\executechemicalLOW[#1]%
-% {\setlowsubscripts}
-%
-%\def\executechemicalHIGH[#1]%
-% {\sethighsubscripts}
-
-\def\putchemicalrule#1#2#3#4%
- {\ifcase\chemicaldrawingmode
- \putrule from {#1} {#2} to {#3} {#4}
- \or
- \psline(#1,#2)(#3,#4)%
- \or
- \bgroup
- \!!counta=#1\!!countb=#2\!!countc=#3\!!countd=#4\relax
- \global\MPdrawingdonetrue
- \setchemicalattributes
- \startMPdrawing
- x1 := \MPdivten[\the\!!counta]u ;
- y1 := \MPdivten[\the\!!countb]u ;
- x2 := \MPdivten[\the\!!countc]u ;
- y2 := \MPdivten[\the\!!countd]u ;
- draw z1--z2 ;
- \stopMPdrawing
- \egroup
- \fi}
-
-\def\executechemicalcomplex#1%
- {\bgroup
- \putchemicalrule {0} {-\@@chemicalbottom} {0} {\@@chemicaltop}%
- \putchemicalrule {0} {\@@chemicaltop} {#1150} {\@@chemicaltop}%
- \putchemicalrule {0} {-\@@chemicalbottom} {#1150} {-\@@chemicalbottom}%
- \egroup}
-
-\def\executechemicalOPENCOMPLEX[#1]%
- {\executechemicalcomplex+\ignorespaces
- \executechemicalSPACE[]}
-
-\def\executechemicalCLOSECOMPLEX[#1]%
- {\executechemicalSPACE[]%
- \executechemicalcomplex-\ignorespaces}
-
-% nog niet door midden as!
-
-\def\executechemicalverticalsymbol#1#2%
- {\executechemicalTEXT
- [$\left#1\relax
- \dimen0=\@@chemicalunit
- \scratchcounter=\@@chemicaltop
- \advance\scratchcounter by \@@chemicalbottom
- \dimen0=\scratchcounter\dimen0
- \vcenter to \dimen0{}
- \dimen2=\@@chemicalunit
- \dimen2=\@@chemicalright\dimen0
- \vcenter{\leftskip1em\hsize\dimen2\relax\strut#2\strut}%
- \right.$]}%
-
-\def\executechemicalUPARROW[#1]%
- {\executechemicalverticalsymbol\uparrow{#1}}
-
-\def\executechemicalDOWNARROW[#1]%
- {\executechemicalverticalsymbol\downarrow{#1}}
-
-\def\executechemicalUPDOWNARROW[#1]%
- {\executechemicalverticalsymbol\updownarrow{#1}}
-
-\let\setchemicalattributes\relax
-
-\setupchemical
- [\c!width=0,
- \c!height=0,
- \c!left=0,
- \c!right=0,
- \c!top=0,
- \c!bottom=0,
- \c!bodyfont=\the\bodyfontsize,
- \c!resolution=\outputresolution,
- \c!scale=\v!medium,
- \c!size=\v!medium,
- \c!textsize=\v!big,
- \c!frame=\v!off,
- \c!axis=\v!off,
- \c!state=\v!start,
- \c!style=\rm,
- \c!location=,
- \c!option=,
- \c!offset=LOW,
- \c!alternative=1,
- \c!color=,
- \c!rulethickness=,
- \c!rulecolor=,
- \c!factor=1]
-
-% Tijdelijk plaatsen we deze extra macro's hier.
-%
-% mathontop: \mtop {} {}
-% textontop: \ttop {} {}
-
-\def\putontop#1#2%
- {\vbox
- {\halign
- {\strut\hss##\hss\cr
- #1\cr
- #2\cr}}}
-
-\def\ttop#1#2%
- {\putontop{\tx#1}{#2}}
-
-\def\mtop#1#2%
- {\vbox
- {\offinterlineskip
- \halign
- {\hss##\hss\cr
- $\scriptscriptstyle#1$\cr
- \noalign{\vskip.5ex}%
- $#2$\cr}}}
-
-\def\ctop#1#2%
- {\vbox
- {\offinterlineskip
- \halign
- {\hss##\hss\cr
- $\@@dochemicalstyle{\@@localchemicalformat\scriptscriptstyle#1}$\cr
- \noalign{\vskip.5ex}%
- $\@@dochemicalstyle{\@@localchemicalformat#2}$\cr}}}
-
-%D Here are a couple of \CONTEXT\ goodies:
-%D
-%D \startitemize
-%D \item styles hooked into \CONTEXT\ style mechanism
-%D \item support for color and rulethickness (mp mode only)
-%D \item position tracking
-%D \stopitemize
-
-\ifCONTEXT \else \protect \endinput \fi
-
-\let\@@chemicalrulecolor\empty
-\let\@@chemicalcolor \empty
-
-% \def\setchemicalattributes
-% {\scratchdimen\@@chemicalchemicalrulethickness
-% \def\chemicalattributes
-% {withpen pencircle scaled \the\scratchdimen\space
-% withcolor }%
-% \doifelsenothing\@@chemicalchemicalrulecolor
-% {\edef\chemicalattributes{\chemicalattributes black}}
-% {\edef\chemicalattributes{\chemicalattributes \MPcolor{\@@chemicalchemicalrulecolor}}}%
-% \startMPdrawing
-% drawoptions (\chemicalattributes) ;
-% \stopMPdrawing}
-
-\def\setchemicalattributes
- {\scratchdimen\@@chemicalrulethickness
- \def\chemicalattributes
- {withpen pencircle scaled \the\scratchdimen\space
- withcolor }%
- \doifelsenothing\@@chemicalrulecolor
- {\edef\chemicalattributes{\chemicalattributes black}}
- {\edef\chemicalattributes{\chemicalattributes \MPcolor{\@@chemicalrulecolor}}}%
- \startMPdrawing
- drawoptions (\chemicalattributes) ;
- \stopMPdrawing}
-
-\def\@@dochemicalcolor
- {\doifsomething\@@chemicalcolor{\color[\@@chemicalcolor]}}
-
-\def\@@dochemicalstyle
- {\doconvertfont\@@chemicalstyle}
-
-\setupchemical
- [\c!rulethickness=\linewidth,
- \c!rulecolor=,
- \c!color=]
-
-\def\cpos#1#2%
- {\iftrialtypesetting
- #2%
- \else
- \bgroup
- \globalpushmacro\dowithchemical
- \gdef\dowithchemical##1{\hpos{#1}{##1}\globalpopmacro\dowithchemical}%
- #2%
- \egroup
- \fi}
-
-\protect \endinput
-
-% \startchemical[axis=on,frame=yes]
-% \chemical[SIX,ROT2,B,R36,RZ6][CH_3]
-% \chemical[PB:RZ3,ONE,Z05,SB5,EP37,PE][O,H]
-% \stopchemical
-
-% \startchemical[size=big,scale=small,axis=on,frame=yes,factor=1.5]
-% \chemical[SIX,ROT2,B,R36,RZ6][CH_3]
-% \chemical[PB:RZ3,ONE,Z05,SB5,EP37,PE][O,H]
-% \stopchemical
-
-% \startchemical[size=big,scale=medium,axis=on,frame=yes,factor=1.5]
-% \chemical[SIX,ROT2,B,R36,RZ6][CH_3]
-% \chemical[PB:RZ3,ONE,Z05,SB5,EP37,PE][O,H]
-% \stopchemical
-
-% \startchemical[size=big,scale=big,axis=on,frame=yes,factor=1.5]
-% \chemical[SIX,ROT2,B,R36,RZ6][CH_3]
-% \chemical[PB:RZ3,ONE,Z05,SB5,EP37,PE][O,H]
-% \stopchemical
-
diff --git a/Master/texmf-dist/tex/context/modules/mkii/rlxcache.rlx b/Master/texmf-dist/tex/context/modules/mkii/rlxcache.rlx
deleted file mode 100644
index 006e5feac7b..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/rlxcache.rlx
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version='1.0 standalone='yes'?>
-
-<rl:manipulators>
-
- <rl:manipulator name='pdf' suffix='eps'>
- <rl:old><rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.eps</rl:old>
- <rl:new><rl:value name='cache' default='rlxcache'/>/<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'/>.eps"
- </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='cache' default='rlxcache'/>/<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'/>.svg"
- </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='cache' default='rlxcache'/>/<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'/>.svgz"
- </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='rlxcache'/>/<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:manipulator name='pdf' suffix='tif'>
- <rl:old><rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.tif</rl:old>
- <rl:new><rl:value name='cache' default='rlxcache'/>/<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'/>.tif"
- </rl:step>
- </rl:manipulator>
-
- <rl:manipulator name='pdf' suffix='tiff'>
- <rl:old><rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.tiff</rl:old>
- <rl:new><rl:value name='cache' default='rlxcache'/>/<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'/>.tiff"
- </rl:step>
- </rl:manipulator>
-
-</rl:manipulators>
diff --git a/Master/texmf-dist/tex/context/modules/mkii/rlxtools.rlx b/Master/texmf-dist/tex/context/modules/mkii/rlxtools.rlx
deleted file mode 100644
index b230c6d5b54..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/rlxtools.rlx
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version='1.0 standalone='yes'?>
-
-<rl:manipulators>
-
- <!-- normally the file tag will also have a suffix! -->
-
- <!-- 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='eps'>
- <rl:old><rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.eps</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: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:manipulator name='pdf' suffix='tif'>
- <rl:old><rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.tif</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'/>.tif
- </rl:step>
- </rl:manipulator>
-
- <rl:manipulator name='pdf' suffix='tiff'>
- <rl:old><rl:value name='path'/>/<rl:value name='file' method='nosuffix'/>.tiff</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'/>.tiff
- </rl:step>
- </rl:manipulator>
-
- <rl:manipulator name='cropped' 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=3
- --inputpath=<rl:value name='path'/>
- --outputpath=<rl:value name='path'/>/<rl:value name='prefix'/>
- <rl:value name='file'/>
- </rl:step>
- </rl:manipulator>
-
-</rl:manipulators>
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-abr-01.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-abr-01.mkii
deleted file mode 100644
index 6e147a7018e..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-abr-01.mkii
+++ /dev/null
@@ -1,30 +0,0 @@
-%D \module
-%D [ file=s-abr-01,
-%D version=1996.01.01,
-%D title=\CONTEXT\ Style File,
-%D subtitle=General Abbreviations 1,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\setupsorting
- [logo]
- [\c!style=\v!capital]
-
-\setupcapitals
- [\c!title=\v!no]
-
-\protect
-
-\startmodule[abr-01]
-
-\usemodule[abbreviations-logos]
-\usemodule[abbreviations-extras]
-
-\stopmodule
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-abr-02.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-abr-02.mkii
deleted file mode 100644
index bf3265073c7..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-abr-02.mkii
+++ /dev/null
@@ -1,31 +0,0 @@
-%D \module
-%D [ file=s-abr-02,
-%D version=1996.01.01,
-%D title=\CONTEXT\ Style File,
-%D subtitle=General Abbreviations 2,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\setupsorting
- [logo]
- [\c!style=\v!smallcaps]
-
-\setupcapitals
- [\c!title=\v!no]
-
-\protect
-
-\startmodule[abr-02]
-
-\usemodule[abbreviations-logos]
-\usemodule[abbreviations-extras]
-
-\stopmodule
-
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-chi-00.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-chi-00.mkii
deleted file mode 100644
index fb8d47603be..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-chi-00.mkii
+++ /dev/null
@@ -1,76 +0,0 @@
-%D \module
-%D [ file=s-chi-00,
-%D version=1999.12.21,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Basic Chinese Style,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D suggestions=Wang Lei,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\input font-chi.mkii % faster than \setupbodyfont[chi]
-
-\mainlanguage [cn]
-
-\unprotect
-
-\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 [\s!section-2] [\v!appendix\c!conversion=]
-
-\setuphead [\v!chapter] [\c!distance=1.25em]
-\setuphead [\v!section] [\c!distance=1.25em]
-\setuphead [\v!subsection] [\c!distance=1.00em]
-
-\setuplist [\v!chapter] [\c!headlabel=\v!yes,\c!headconversion=\v!yes,\c!width=5em]
-\setuplist [\v!section] [\c!headlabel=\v!yes,\c!headconversion=\v!yes,\c!width=5em]
-
-\setupmarking [\v!chapter\v!number] [\c!headlabel=\v!yes,\c!headconversion=\v!yes]
-\setupmarking [\v!section\v!number] [\c!headlabel=\v!yes,\c!headconversion=\v!yes]
-
-\setuplabeltext [cn] [\v!subsection={\symbol[S]\kern.25em}]
-\setuplabeltext [cn] [\v!subsubsection={\symbol[S]\kern.25em}]
-\setuplabeltext [cn] [\v!subsubsubsection={\symbol[S]\kern.25em}]
-\setuplabeltext [cn] [\v!subsubsubsubsection={\symbol[S]\kern.25em}]
-
-% nog taalonafhankelijk maken -> \e!tabel enz
-
-\definereferenceformat [intable] [\c!label=\v!table]
-\definereferenceformat [infigure] [\c!label=\v!figure]
-\definereferenceformat [inchapter] [\c!label=\v!chapter]
-\definereferenceformat [insection] [\c!label=\v!section]
-
-% important
-
-\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/modules/mkii/s-fnt-01.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-fnt-01.mkii
deleted file mode 100644
index aedcf913d97..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-fnt-01.mkii
+++ /dev/null
@@ -1,61 +0,0 @@
-%D \module
-%D [ file=s-fnt-01,
-%D version=2001.08.22,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Font Environment 1,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This file is used by the \type {texfont.pl} installation
-%D script. It is of no use for \MKIV.
-
-%D Modes: compact
-
-\dontcomplain
-
-\setupbodyfont
- [10pt]
-
-\setuplayout
- [backspace=30pt,
- topspace=30pt,
- footer=0pt,
- header=36pt,
- width=middle,
- height=middle]
-
-\setupcolors
- [state=start]
-
-\def\ShowFont
- {\dotripleempty\doShowFont}
-
-\def\doShowFont[#1][#2][#3]%
- {\doifsomething{#1}
- {\bgroup
- \ifthirdargument
- \definefontsynonym[WhateverName][#2][encoding=#3]
- \definefont[WhateverFont][WhateverName]
- \setupheadertexts[\tttf#2\quad#1\quad#3]
- \WhateverFont
- \setupinterlinespace
- \showfont[WhateverName]
- \showligatures[WhateverName]
- \doifnotmode{compact}{\showaccents\showcharacters}
- \else
- \definefontsynonym[WhateverName][#2]
- \definefont[WhateverFont][WhateverName]
- \setupheadertexts[\tttf#2\quad#1\quad(special font)]
- \WhateverFont
- \setupinterlinespace
- \showfont[WhateverName]
- \fi
- \page
- \egroup}}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-fnt-02.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-fnt-02.mkii
deleted file mode 100644
index 69f976102b1..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-fnt-02.mkii
+++ /dev/null
@@ -1,133 +0,0 @@
-% output=pdftex modes=demo
-
-% nice example:
-%
-% \usemodule[s-fnt-02]
-%
-% \usetypescriptfile[type-ghz.tex]
-%
-% \usetypescript [sans] [optima,optima-nova] [texnansi]
-%
-% \setvariables
-% [glyphs]
-% [name-1=OptimaLT,
-% name-2=OptimaNovaLT-Regular]
-%
-% \starttext
-%
-% \setups[show-glyphs]
-%
-% \stoptext
-%
-% see end, for other example (or run texexec s-fnt-02 --mode=demo)
-
-\setvariables
- [glyphs]
- [frame=on,
- name-1=cmr10,
- name-2=cmtt10,
- map-1=,
- map-2=]
-
-\setuppapersize[S4][S4]
-
-\setupcolors[state=start]
-
-\setuplayout[page]
-
-\definecolor[Gray] [s=.2]
-\definecolor[ColorNone][s=1,t=.5,a=1]
-\definecolor[ColorOne] [r=1,t=.5,a=1]
-\definecolor[ColorTwo] [g=1,t=.5,a=1]
-\definecolor[BackOne] [b=1,t=.5,a=1]
-\definecolor[BackTwo] [r=1,g=1,t=.5,a=1]
-
-\setupbackgrounds
- [page]
- [background=color,
- backgroundcolor=Gray]
-
-\startsetups[show-glyphs]
-
- \doifnothing{\getvariable{glyphs}{name-1}}{\endinput}
- \doifnothing{\getvariable{glyphs}{name-2}}{\endinput}
-
- \doifsomething{\getvariable{glyphs}{map-1}}{\loadmapfile[\getvariable{glyphs}{map-1}]}
- \doifsomething{\getvariable{glyphs}{map-2}}{\loadmapfile[\getvariable{glyphs}{map-2}]}
-
- \definefont[FontOne][\getvariable{glyphs}{name-1} at 280pt]
- \definefont[FontTwo][\getvariable{glyphs}{name-2} at 280pt]
-
-% \dostepwiserecurse{0}{255}{1}
-% {\doiffontcharelse{\getvariable{glyphs}{name-1}}{\recurselevel}
-% {\doiffontcharelse{\getvariable{glyphs}{name-2}}{\recurselevel}
-% {\startstandardmakeup
-% \doifelse{\getvariable{glyphs}{frame}}{on} % too many box calculations when off, but who cares
-% {\boxrulewidth=2pt}
-% {\boxrulewidth=0pt}
-% \setbox 0=\hbox{\white\ruledhbox{\FontOne \char\recurselevel}}
-% \setbox 2=\hbox{\white\ruledhbox{\FontTwo \char\recurselevel}}
-% \setbox 4=\hbox{\FontOne \ColorOne \char\recurselevel}
-% \setbox 6=\hbox{\FontTwo \ColorTwo \char\recurselevel}
-% \setbox 8=\hbox{\BackOne \ruledhbox{\FontOne \phantom{\char\recurselevel}}}
-% \setbox10=\hbox{\BackTwo \ruledhbox{\FontTwo \phantom{\char\recurselevel}}}
-% \vfill
-% \hbox{\dostepwiserecurse{0}{10}{2}{\hbox to \hsize{\hss\box\recurselevel\hss}\hskip-\hsize}}
-% \vfill
-% \tttf
-% \setstrut
-% \hbox to \hsize{\strut\hss
-% {\ColorOne \getvariable{glyphs}{name-1}}\quad
-% {\ColorTwo \getvariable{glyphs}{name-2}}\quad
-% {\ColorNone char \recurselevel }\hss}
-% \stopstandardmakeup}
-% {}}
-% {}}
-
- \dostepwiserecurse{0}{255}{1}
- {\donefalse
- \doiffontcharelse{\getvariable{glyphs}{name-1}}{\recurselevel}{\donetrue}{}%
- \doiffontcharelse{\getvariable{glyphs}{name-2}}{\recurselevel}{\donetrue}{}%
- \ifdone
- \startstandardmakeup
- \doifelse{\getvariable{glyphs}{frame}}{on} % too many box calculations when off, but who cares
- {\boxrulewidth=2pt}
- {\boxrulewidth=0pt}
- \setbox 0=\hbox{\white\ruledhbox{\FontOne \char\recurselevel}}
- \setbox 2=\hbox{\white\ruledhbox{\FontTwo \char\recurselevel}}
- \setbox 4=\hbox{\FontOne \ColorOne \char\recurselevel}
- \setbox 6=\hbox{\FontTwo \ColorTwo \char\recurselevel}
- \setbox 8=\hbox{\BackOne \ruledhbox{\FontOne \phantom{\char\recurselevel}}}
- \setbox10=\hbox{\BackTwo \ruledhbox{\FontTwo \phantom{\char\recurselevel}}}
- \vfill
- \hbox{\dostepwiserecurse{0}{10}{2}{\hbox to \hsize{\hss\box\recurselevel\hss}\hskip-\hsize}}
- \vfill
- \tttf
- \setstrut
- \hbox to \hsize{\strut\hss
- {\ColorOne \getvariable{glyphs}{name-1}}\quad
- {\ColorTwo \getvariable{glyphs}{name-2}}\quad
- {\ColorNone char \recurselevel }\hss}
- \stopstandardmakeup
- \fi}
-
-\stopsetups
-
-\doifnotmode{demo}{\endinput}
-
-\starttext
-
- \setupencoding[default=ec]
-
- \loadmapline [=][aer10 <cmr10.pfb]
- \loadmapline [=][\defaultencoding-lmr10 <\defaultencoding.enc <lmr10.pfb]
-
- \setvariables
- [glyphs]
- [frame=on,
- name-1=aer10,
- name-2=\defaultencoding-lmr10]
-
- \setups[show-glyphs]
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-grk-00.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-grk-00.mkii
deleted file mode 100644
index f76d0c220b8..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-grk-00.mkii
+++ /dev/null
@@ -1,77 +0,0 @@
-%D \module
-%D [ file=s-grk-00,
-%D version=2004.08.23,
-%D title=\CONTEXT\ Style File,
-%D subtitle=CB Greek Support,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D suggestions=Giuseppe Bilotta,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\usetypescriptfile[type-cbg]
-
-\usetypescript [all] [cbgreek-medium]
-
-\startsetups [cbgreek]
-
- \catcode`~=\other
- \catcode`|=\other
-
- \language[greek]
- \switchtobodyfont[cbgreek]
-
-\stopsetups
-
-\definestartstop
- [greek]
- [commands=\directsetup{cbgreek}]
-
-\doifnotmode{demo}{\endinput}
-
-% The following sample file was submitted to the \CONTEXT\
-% mailing list by Giuseppe Bilotta, along with the right
-% typescripts.
-
-% already loaded: \usemodule[greek]
-
-\mainlanguage[english]
-
-\starttext
-
-We can easily use plain English for normal text, and then switch
-to greek when we want; as a first try we type the lower and
-upper case 26 letters of the latin alphabet and see how they come
-out in greek:
-
-\startgreek
-a b c d e f g h i j k l m n o p q r s t u v w x y z \par
-A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
-\stopgreek
-
-As it can be observed, some uppercase letters have strange
-outcomes; also, j gives \greek{j} and c gives the
-end-of-word sigma \greek{c}; interestingly, s gives either the
-normal sigma or the end-of-word one, depending on whether it's at
-the end of the word or not: \greek{satrapws}.
-
-Of course we can use the various diacritical signs: accents
-(\greek{`a, 'a, ~a}), breathings (\greek{<r, >w, a"}) and
-subscribed iotas (\greek{a|, h|, w|}) (these last are pretty ugly in my
-opinion); observe how they automatically get the correct position
-with uppercase letters: (\greek{`A, 'A, ~A, <A, >A, A|}).
-
-Can the thing be used for serious work?
-
-\startgreek
->>'Andra moi >'ennepe, Mo~usa, pol'utropon, >'os m'ala poll`a\hfill\break
-pl'agqjh, >epe`i Tro'ihs <er`on ptol'iejron >'eperse;\hfill\break
-poll~wn d" >anjr'wpwn >'iden >'astea ka`i n'oon >'egnw,\hfill\break
-poll`a d" <'o g" >en p'ontw| p'ajen >'algea <`on kat`a jum'on,\hfill\break
->>arn'umenos <'hn te yuq`hn ka`i n'oston <eta'irwn.
-\stopgreek
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-jap-00.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-jap-00.mkii
deleted file mode 100644
index 5eec2f72594..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-jap-00.mkii
+++ /dev/null
@@ -1,23 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\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/modules/mkii/s-mag-01.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-mag-01.mkii
deleted file mode 100644
index e2d30f4e5aa..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-mag-01.mkii
+++ /dev/null
@@ -1,438 +0,0 @@
-%D \module
-%D [ file=s-mag-01,
-%D version=2002.12.14,
-%D title=\CONTEXT\ Style File,
-%D subtitle=\CONTEXT\ Magazine Base Style,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% This style is used for producing explanationary documents.
-% Don't misuse it for other purposes, since it may confuse
-% users. Don't change the title either, since it provides a
-% way to categorize documents. Numbers are disabled in
-% instances produced outside PRAGMA ADE.
-%
-% The layout setup is such that one has several text areas
-% available: headers and footers, margins and edges as well
-% as the main text area. The surrounding (gray) makes the
-% main page stand out and is suitable for viewing in spread
-% mode.
-%
-% Since this style is under constant construction, messing
-% around with settings will produce unwanted side effects.
-% So, if some feature or settings is needed, let me know.
-
-% todo: mp frames
-
-\setvariables[magazine][number=0]
-\setvariables[magazine][author=]
-\setvariables[magazine][title={Zero Issue}]
-\setvariables[magazine][date=\currentdate]
-
-% These are reserved for PRAGMA-ADE, don't use them yourself!
-
-% \setvariables[magazine][main=Tricky]
-% \setvariables[magazine][main=Update]
-% \setvariables[magazine][main=HOWTO]
-
-% \setvariables[magazine][main=This Way] % preludes to a/the manual
-% \setvariables[magazine][main=A Better Way] % dirty versus clean
-% \setvariables[magazine][main=No Way] % how users should not do it
-% \setvariables[magazine][main=Your Way] % how users do it
-% \setvariables[magazine][main=My Way] % how users do it
-% \setvariables[magazine][main=Our Way] % how we do things at pragma
-% \setvariables[magazine][main=Their Way] % how to do latex things in context
-
-\setvariables[magazine][main=My Way]
-
-\startmode[atpragma]
- \setvariables[magazine][main=This Way]
-\stopmode
-
-\definepapersize
- [magazine]
- [width=\dimexpr\paperwidth-.1\paperwidth\relax,
- height=\dimexpr\paperheight-.1\paperheight\relax]
-
-\setuppapersize
- [magazine]
- [A4]
-
-\setupinteractionscreen
- [option=doublesided]
-
-\definecolor[OuterColor][s=.3]
-\definecolor[InnerColor][s=.8]
-\definecolor[MainColor] [s=.2]
-\definecolor[TitleColor][s=.7]
-
-\definecolor[MyRed] [r=.6]
-\definecolor[MyGreen][g=.6]
-\definecolor[MyBlue] [b=.6]
-
-\startuseMPgraphic{paper}
- sh := define_circular_shade(a,a,0,bbheight(OverlayBox),
- \MPcolor{InnerColor},\MPcolor{OuterColor}) ;
- fill OverlayBox withshade sh ;
-\stopuseMPgraphic
-
-\startreusableMPgraphic{middlepaper}
- pair a ; a := center OverlayBox ;
- \includeMPgraphic{paper}
-\stopreusableMPgraphic
-
-\startreusableMPgraphic{rightpaper}
- pair a ; a := .5[urcorner OverlayBox,lrcorner OverlayBox] ;
- \includeMPgraphic{paper}
-\stopreusableMPgraphic
-
-\startreusableMPgraphic{leftpaper}
- pair a ; a := .5[ulcorner OverlayBox,llcorner OverlayBox] ;
- \includeMPgraphic{paper}
-\stopreusableMPgraphic
-
-\startreusableMPgraphic{page}
- fill OverlayBox withcolor white ;
-\stopreusableMPgraphic
-
-\startusableMPgraphic{text}
- StartPage ;
- for i = Header,Text,Footer :
- for j = LeftEdge, LeftMargin, Text, RightMargin, RightEdge :
- draw Field[i][j] withpen pencircle scaled .5pt ;
- endfor ;
- endfor ;
- StopPage ;
- setbounds currentpicture to Field[Text][Text] ;
-\stopusableMPgraphic
-
-\startsetups[paper]
-
- \doifmodeelse{*makeup}
- {\reuseMPgraphic{middlepaper}}
- {\doifoddpageelse
- {\reuseMPgraphic{rightpaper}}
- {\reuseMPgraphic{leftpaper}}}
-
-\stopsetups
-
-\defineoverlay[paper] [\setups{paper}]
-\defineoverlay[page] [\reuseMPgraphic{page}]
-\defineoverlay[text] [\doifmode{frame}{\useMPgraphic{text}}]
-
-\setupbackgrounds [paper] [background=paper]
-\setupbackgrounds [page] [background={page,title}]
-\setupbackgrounds [text] [background=text]
-
-\definelayer
- [title]
- [state=repeat,
- hoffset=-1cm,
- voffset=1cm,
- width=\paperwidth,
- height=\paperheight]
-
-\setupoutput
- [pdftex]
-
-\setuplayout
- [width=middle,
- topspace=1.5cm,
- height=middle,
- header=1.5cm,
- footer=1cm,
- %grid=yes,
- headerdistance=.25cm,
- footerdistance=.5cm,
- backspace=3cm,
- margin=1.5cm,
- margindistance=.25cm,
- edge=.75cm,
- edgedistance=.25cm,
- bottomdistance=1.5cm,
- bottom=.1\printpaperheight]
-
-\definelayout
- [makeup]
- [topspace=1cm,
- backspace=1cm,
- header=0pt,
- footer=0pt,
- bottom=0pt]
-
-\setuppagenumbering
- [alternative=doublesided]
-
-\setupcolors
- [state=start]
-
-\usetypescript
- [palatino][\defaultencoding]
-
-\setupbodyfont
- [palatino,10pt]
-
-\setuptolerance
- [verytolerant,stretch]
-
-\appendtoks\setups[papershift]\to\beforeeverypage
-
-\startsetups[papershift]
-
- \setuppapersize[top=\vskip.5cm,bottom=\vss]
-
- \doifmodeelse{*makeup}
- {\setuppapersize[left=\hfill,right=\hfill]}
- {\doifoddpageelse
- {\setuppapersize[right=\hfill]}
- {\setuppapersize[left=\hfill]}}
-
-\stopsetups
-
-\setupbottomtexts
- [\setups{rightbanner}] []
- [] [\setups{leftbanner}]
-
-\startsetups [leftbanner]
-
- \definedfont[Regular at \the\bottomheight]
- \setbox\scratchbox\hbox{\TitleColor\getvariable{magazine}{main}}
- \ht\scratchbox1ex
- \dp\scratchbox\zeropoint
- \MainColor
- \definedfont[Regular sa 2]
- \doifsomething{\getvariable{magazine}{number}}
- {\doifnot{\getvariable{magazine}{number}}{0}
- {\#\getvariable{magazine}{number}}}
- \quad
- \currentdate
- \quad
- \scale[height=.25\bottomheight]{\box\scratchbox}
- \quad
- \hbox to 1.5em{\hss\pagenumber\hss}
- \quad
- \hskip-\backspace
-
-\stopsetups
-
-\startsetups [rightbanner]
-
- \definedfont[Regular at \the\bottomheight]
- \setbox\scratchbox\hbox{\TitleColor\getvariable{magazine}{main}}
- \ht\scratchbox1ex
- \dp\scratchbox\zeropoint
- \MainColor
- \hskip-\backspace
- \definedfont[Regular sa 2]
- \quad
- \hbox to 1.5em{\hss\pagenumber\hss}
- \quad
- \scale[height=.25\bottomheight]{\box\scratchbox}
- \quad
- \currentdate
- \quad
- \doifmode{atpragma}{\#\getvariable{magazine}{number}}
-
-\stopsetups
-
-\startsetups[titlepage]
-
- \disablemode[frame]
-
- \setuplayout[makeup]
-
- \startstandardmakeup[doublesided=no]
-
- \dontcomplain
-
- \definelayer
- [makeup]
- [width=\textwidth,
- height=\textheight]
-
- \setlayerframed
- [makeup]
- [corner={left,top},location={right,bottom}]
- [frame=off,
- foregroundcolor=MainColor]
- {\scale
- [width=\makeupwidth]
- {\definedfont[Regular sa 10]%
- \getvariable{magazine}{main}}}
-
- \setlayerframed
- [makeup]
- [corner={right,top},location={left},y=.4\textheight]
- [frame=off,
- foregroundcolor=MainColor,
- width=\textwidth,
- align=left]
- {\definedfont[Regular sa 2.5]\setupinterlinespace
- \startmode[atpragma]
- \strut \ConTeXt\ magazine \#\getvariable{magazine}{number}\endgraf
- \stopmode
- \strut \getvariable{magazine}{date} \endgraf
- \blank
- \strut \getvariable{magazine}{title}\endgraf
- \doifsomething{\getvariable{magazine}{author}}
- {\strut \getvariable{magazine}{author}\endgraf}
- \doifsomething{\getvariable{magazine}{affiliation}}
- {\strut \getvariable{magazine}{affiliation}\endgraf}}
-
- \setlayerframed
- [makeup]
- [corner={right,bottom},location={left,top}]
- [frame=off,
- align=normal,
- width=.8\textwidth,
- foregroundcolor=MainColor]
- {\getbuffer[abstract]}
-
- \flushlayer[makeup]
-
- \stopstandardmakeup
-
- \setuplayout[reset]
-
-\stopsetups
-
-\startsetups[listing]
-
- \page \disablemode[frame]
-
- \setuptexttexts [][] \setuptexttexts []
- \setupheadertexts[][] \setupheadertexts[source code of this document]
- \setupfootertexts[][] \setupfootertexts[]
-
- \start \dontcomplain
-
- \typefile[TEX]{\inputfilename}
-
- \stop
-
-\stopsetups
-
-\startsetups[lastpage]
-
- \page \disablemode[frame] \page[even]
-
- \doifoddpageelse
- {}
- {\setuplayout[makeup]
- \startstandardmakeup[doublesided=no,page=]
- \stopstandardmakeup
- \setuplayout[reset]}
-
-\stopsetups
-
-\startsetups[title]
-
- \disablemode[frame]
-
- \setlayerframed
- [title]
- [corner={left,top},location={left,bottom},
- rotation=90]
- [frame=off,
- foregroundcolor=MainColor]
- {\definedfont[RegularBold sa 2]\strut\getvariable{magazine}{title}}
-
- \setlayerframed
- [title]
- [corner={right,top},
- rotation=270]
- [frame=off,
- foregroundcolor=MainColor]
- {\definedfont[RegularBold sa 2]\strut\getvariable{magazine}{title}}
-
-\stopsetups
-
-\startbuffer[abstract]
- % no abstract
-\stopbuffer
-
-\setuphead
- [chapter]
- [page=yes,
- after={\blank[2*big]},
- color=MainColor,
- style=\bfc]
-
-\setuphead
- [section]
- [before={\blank[2*big]},
- after=\blank,
- color=MainColor,
- style=\bfb]
-
-\setuphead
- [subsection]
- [before=\blank,
- after=,
- color=MainColor,
- style=\bf]
-
-\setupwhitespace
- [big]
-
-\definetyping[xtyping] [style=\ttx]
-\definetyping[xxtyping][style=\ttxx]
-
-\definetypeface
- [narrowtt] [tt]
- [mono] [modern-cond] [default] [encoding=\defaultencoding]
-
-\definetyping[ntyping] \setuptyping[ntyping][style=\narrowtt]
-\definetype [ntype] \setuptype [ntype] [style=\narrowtt]
-
-\doifnotmode{demo}{\endinput}
-
-% \usemodule[mag-01]
-
-\setvariables
- [magazine]
- [title={Introduction},
- author=Hans Hagen,
- affiliation=PRAGMA ADE,
- date=Januari 2003,
- number=0]
-
-\startbuffer[abstract]
- This is the zero issue of a semi periodical. The
- associated style can be used by \CONTEXT\ users to
- typeset and publish their own issues.
-\stopbuffer
-
-\starttext \setups [titlepage] \setups [title]
-
-\setupheadertexts[welcome]
-
-This is the zero issue of a range of \CONTEXT\ related
-publications, in most cases short introductions to new
-functionality. The style may be used by users for providing
-similar documents, but preferably not for other purposes,
-since it may confuse readers in their expectations.
-
-We've chosen a layout which is more functional than
-beautiful. This layout provides several text areas: headers
-and footers, margins and edges as well as a main text area.
-The surrounding (gray) makes the main page (which is
-slightly smaller than A4) stand out and is suitable for
-viewing in spread mode.
-
-The documents produced at \PRAGMA\ are called {\bf This
-Way}, user documents gets the title {\bf My Way}. The
-\PRAGMA\ issues are numbered. We strongly advise you not to
-use the \type {mag-} prefix for your issues, since this may
-lead to clashes with files distributed by \PRAGMA.
-
-\setups [listing]
-
-\setups [lastpage]
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-map-10.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-map-10.mkii
deleted file mode 100644
index 3446a214c52..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-map-10.mkii
+++ /dev/null
@@ -1,491 +0,0 @@
-%\module [
-% file=s-map-10.mkii,
-% version=2012.06.06,
-% title=\CONTEXT\ Style File,
-% subtitle=\MAPS\ journal style,
-% author={Hans Hagen, Taco Hoekwater and Siep Kroonenberg},
-% date=\currentdate,
-% copyright={NTG / MAPS}%
-%]
-
-% NOTE: this (MkII) version is not guaranteed to give exactly the
-% same output as the MkIV one, and exists mostly for compatibility
-% with old-fashioned authors. All final typesetting for the MAPS
-% is done with MkIV. If you are reading this: please consider
-% switching!
-
-% This module implements the MAPS style for use with the Context
-% macro package. The original MAPS layout was designed and
-% implemented in LaTeX by Taco Hoekwater and Siep Kroonenberg.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newif\ifMapsInColumns
-\doifmode{asym}{\enablemode[onecolumn]} % implies onecolumn
-\doifnotmode{onecolumn}{\MapsInColumnstrue}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% fonts
-
-%%%%%%%%% first, font sizes
-\definebodyfontenvironment [7pt][% LaTeX: scriptsize
- interlinespace=8pt,
- big=8pt,
- small=6pt%
-]
-
-\definebodyfontenvironment [8pt][% LaTeX: footnotesize
- interlinespace=9pt,
- big=9pt,
- small=7pt,
- x=6pt%
-]
-
-\definebodyfontenvironment [9pt][% LaTeX: small
- interlinespace=10pt,
- big=10pt,
- small=8pt,%
- x=7pt,%
- script=6pt%
-]
-
-\definebodyfontenvironment [10pt][% LaTeX: normalsize
- interlinespace=11pt,
- big=11pt,
- a=11pt,
- small=9pt,%
- x=8pt,%
- script=7pt%
-]
-
-\definebodyfontenvironment [11pt][% LaTeX: large
- interlinespace=11pt,
- big=11pt,
- small=10pt,%
- x=9pt,%
- script=8pt%
-]
-
-\definebodyfontenvironment [14pt][%
- interlinespace=14pt,
- big=18pt,
- small=11pt,
- x=10pt%
-]
-
-\definebodyfontenvironment [18pt][%
- interlinespace=18pt,
- big=24pt,
- small=14pt,
- x=10pt%
-]
-
-\definebodyfontenvironment [24pt][%
- interlinespace=24pt,
- big=24pt,
- small=18pt,
- x=11pt%
-]
-
-%%% font families (no realfonts, no protruding)
-
-\starttypescript [maps][ec]
-\definetypeface [maps] [rm] [serif] [modern] [default] [encoding=ec,rscale=0.95]
-\definetypeface [maps] [mm] [math] [modern] [computer-modern]
-\definetypeface [maps] [tt] [mono] [modern] [default] [encoding=ec,rscale=0.90]
-\definetypeface [maps] [ss] [sans] [modern] [default] [encoding=ec,rscale=0.95]
-\stoptypescript
-
-\writestatus{maps\space warning}{This, the MkII style, is OUTDATED and UNSUPPORTED!}
-\writestatus{maps\space warning}{Please consider using ConTeXt MkIV instead.}
-
-\startmode[realfonts]
-\writestatus{maps\space error}{The MkII version of the module does not support 'realfonts'!}
-\wait
-\stopmode
-
-\setupbodyfont[maps,10pt,rm]
-
-\setupinterlinespace[line=11pt]
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% additional general typographic details
-
-\setupindenting [yes,next,11pt] % indenting after enumerations etc.
-
-\definepapersize
- [maps]
- [width=21cm,height=26.5cm]
-
-\setuppapersize [maps][maps]
-
-% parameters:
-% margin -> latex marginparwith
-
-\setuplayout[%
- topspace=40pt,
- height=688pt,
- header=33pt,
- margin=106pt,
- leftmargindistance=11pt,
- rightmargindistance=11pt%
-]
-
-
-\setupblank[5.5pt]
-
-\setuppagenumbering [location=]
-
-\definetyping [widetyping]
-
-\setupheader [style=\ss]
-\setupfooter [style=\ss]
-
-\def\AuHead{%
- %\ifnum\pageno=\MapsPage \hbox{}\else
- \MapsRunningAuthor%\fi
-}
-\def\TiHead{%
- \ifnum\pageno=\MapsPage \relax \MapsRunningAuthor %\hbox{}
- \else \MapsRunningTitle\fi}
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% sectioning
-
-\setupheads[sectionnumber=no, align=right]
-
-\def\hfonti{\ssbfa}
-\def\hfontii{\ssbf}
-\def\hfontiii{\rm\it}
-\def\runin#1#2{#2.}
-
-\doifmodeelse{nosubsub}{%
-\setuphead [section][%
- style=\hfontii,
- before={\blank[line]},
- after={}%
-]
-\setuphead [subsection][%
- style=\hfontiii,
- command=\runin,
- alternative=text,
- distance=6pt,
- before={\blank[halfline]}%
-]}{%
-\setuphead [section][%
- style=\hfonti,
- before={\blank[line]},
- after={\blank[halfline]}%
-]
-\setuphead [subsection][%
- style=\hfontii,
- before={\blank[halfline]},
- after={}%
-]
-\setuphead [subsubsection][%
- style=\hfontiii,
- command=\runin,
- distance=6pt,
- alternative=text,
- before={\blank[halfline]}%
-]}
-
-\doifmodeelse{nosubsub}{%
-\setuphead [subject][%
- style=\hfontii,
- before={\blank[halfline]},
- after={}%
-]
-\setuphead [subsubject][%
- style=\hfontiii,
- command=\runin,
- alternative=text,
- before={\blank[halfline]}%
-]}{%
-\setuphead [subject][%
- style=\hfonti,
- before={\blank},
- after={\blank[halfline]}%
-]
-\setuphead [subsubject][%
- style=\hfontii,
- before={\blank[halfline]},
- after={}%
-]
-\setuphead [subsubsubject][%
- style=\hfontiii,
- command=\runin,
- alternative=text,
- before={\blank[halfline]}%
-]}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% floats
-
-\setupfloats [location=center, before={\ss}]
-\setupcaptions [headstyle={\ssbf},style={\ssx},
- suffix=,distance=6pt,
- inbetween={\blank[halfline]}]
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% various document elements
-
-\def\ChkBox{%
- \hbox {\boxrulewidth=.4pt \raise.2ex\ruledvbox
- {\phantom{\vrule width .85ex height .85ex%
-}}}}
-\definesymbol [1][\ChkBox]
-
-\setupitemize[1][packed]
-
-\setupitemize [each][%
- indentnext=no,
- align=right,
- width=1em,
- distance=0pt%
-]
-
-% an outer form of itemize that does not indent
-% the paragraph.
-
-\definecomplexorsimpleempty\startouteritemize
-\def\complexstartouteritemize[#1]{\begingroup
- \startitemize[width=1sp,#1]
- \let\doitem\item
- \def\item{\doitem[]\hbox{}\kern12pt\rightskip=0pt}%
-}
-
-\def\stopouteritemize{\stopitemize\endgroup}
-
-
-\setupenumerations [indentnext=no]
-
-\setupdescriptions [indentnext=no]
-
-\unexpanded\def\smalltyping{%
- \switchtobodyfont[tt]%
- \parindent=0pt
-}
-
-% typing:
-% - prettyverbatim is NOT the default
-% - smaller size
-
-\unexpanded\def
- \XeTeX{X\lower.5ex\hbox{\kern-.1em\mirror{E}}\kern-.1667em\TeX}
-
-\setuptyping [%
- style={\smalltyping},
- option=none,
- indentnext=no%
-]
-
-\def\footnum#1{#1.}
-
-\setupfootnotes
- [location=none,
- width=\textwidth,
- before={\blank},
- numbercommand=,
- command=\footnum]
-
-\setupfootnotedefinition
- [location=serried,
- before=,
- after=,
- distance=0.5em]
-
-\setuptabulate
- [before=\blank,
- inner=\ss,
- after=\blank]
-
-\def\startIntroEntry#1%
- {\startlinecorrection
- \bgroup
- \setupalign[right]
- \setuptolerance[verytolerant]
- \setupindenting[no]
- \noindent
- \switchtobodyfont[9pt]%
- \setuplocalinterlinespace[line=10pt]%
- %\hyphenpenalty10000
- \parfillskip 0pt plus 1fill
- \rightskip6pt plus 1fill
- \ss
- \bgroup\bf #1\par\egroup
- \ignorespaces }
-
-\def\stopIntroEntry
- {\par\egroup \stoplinecorrection
- \blank[line] }
-
-\def\defineIntroEntry[#1][#2][#3]%
- {\setvalue{start#1}{\startIntroEntry{#2}}%
- \setvalue {stop#1}{\stopIntroEntry#3}}
-
-\defineIntroEntry[Keywords][Keywords][]
-\defineIntroEntry[Abstract][Abstract][]
-
-% article parameters (other fields and defaults)
-\def\MapsBibData[#1]%
- {\getparameters [Maps]
- [SubTitle=,
- RunningAuthor=,
- RunningTitle=,
- Email=,
- Address=,
- Page=1,
- Title=,
- Author=,
- Period=,
- Number=,
- Year=,
- #1]%
- \doifnothing{\MapsPeriod}{%
- \ifnum \normalmonth<6 \gdef\MapsPeriod{VOORJAAR}\else \gdef\MapsPeriod{NAJAAR}\fi}
- \doifinstringelse{oorjaar}{\MapsPeriod}{\gdef\MapsPeriod{VOORJAAR}}{}%
- \doifinstringelse{pring}{\MapsPeriod}{\gdef\MapsPeriod{VOORJAAR}}{}%
- \doifinstringelse{ajaar}{\MapsPeriod}{\gdef\MapsPeriod{NAJAAR}}{}%
- \doifinstringelse{utumn}{\MapsPeriod}{\gdef\MapsPeriod{NAJAAR}}{}%
- \doifnothing{\MapsYear}{\gdef\MapsYear{\the\year}}%
- \doifnothing{\MapsNumber}{%
- \ifnum \normalmonth<6
- \xdef\MapsNumber{\the\numexpr (\the\year-1990)*2\relax}%
- \else
- \xdef\MapsNumber{\the\numexpr (\the\year-1990)*2+1\relax}%
- \fi }%
- \doifnothing\MapsRunningAuthor
- {\global\let\MapsRunningAuthor\MapsAuthor}%
- \doifnothing\MapsRunningTitle
- {\global\let\MapsRunningTitle\MapsTitle}}%
-
-\def\dostartArticle[#1]{%
- \MapsBibData[#1]
- \pageno=\MapsPage
- \setuppagenumber[start=\MapsPage]
- \startbaselinecorrection
- \bgroup
- \hsize = 457pt
- \let\\\crlf
- \blank[35pt,force]
- \switchtobodyfont[24pt]
- \setupalign[right]
- {\noindent\bf\MapsTitle\par}
- \ifx\MapsSubTitle\empty
- \blank[30pt]
- \else
- \bgroup
- \blank[12pt]
- \switchtobodyfont[18pt]\noindent \it
- \advance \rightskip 0pt plus 2em
- \MapsSubTitle\par
- \egroup
- \blank[30pt]
- \fi
- \egroup
- \setupalign[width]
- \switchtobodyfont[rm,10pt]
- \stopbaselinecorrection
- \ifMapsInColumns
- \startcolumns\hyphenpenalty1000
- \else
- \clubpenalty10000
- \widowpenalty10000
- \fi
-}
-
-\def\startArticle{\dosingleempty\dostartArticle}
-
-\def\signArticle{%
- \blank\let\\\crlf
- \noindent\switchtobodyfont[ss,9pt]%
- \MapsAuthor
- \doifsomething{\MapsAddress}{\\\MapsAddress}%
- \doifsomething{\MapsEmail}{\\\MapsEmail}%
- \switchtobodyfont[10pt]%
- \def\signArticle{}%
-}
-
-\def\stopArticle{%
- \par\signArticle
- \ifMapsInColumns \stopcolumns \fi
- \page
-}
-
-\installpagebreakhandler{last}{}
-
-%%% `logos' %%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\unexpanded\def\LaTeX % requested by erik frambach
- {{\setbox\scratchbox\hbox{L}%
- \scratchdimen\ht\scratchbox
- \setbox\scratchbox\hbox{\switchtobodyfont[script]A}%
- L\kern-.55\wd\scratchbox
- \raise\scratchdimen\hbox{\lower\ht\scratchbox\copy\scratchbox}%
- \kern-.2\wd\scratchbox\TeX}}
-
-
-\def\CONTEXT{Con{\TeX}t}
-\def\ConTeXt{Con{\TeX}t}
-\def\METAFONT{Metafont}
-\def\METAPOST{MetaPost}
-\def\POSTSCRIPT{PostScript}
-
-\def\acro#1{{\switchtobodyfont[9pt]#1}}
-
-
-%%%%%%%%%%%
-
-\doifmodeelse{onecolumn}{%
- \setuplayout[width=340pt]
- \doifmodeelse{asym}{% one col, asymmetric
- \setuplayout[backspace=187.3pt]%
- \setuptyping [widetyping][oddmargin=-117pt]
- \setuppagenumbering [alternative={singlesided,doublesided}]
- \setupheadertexts
- [{\hbox{}\hskip-117pt\TiHead}]
- [{\cap{\MapsPeriod\ \MapsYear}\quad\bf \pagenumber\hskip-30pt\hbox{}}]
- [{\hbox{}\hskip-147pt{\bf \pagenumber}\quad \cap {maps\ \MapsNumber}}]
- [\AuHead]
- \setupfootertexts
- }{% one col, symmetric
- \setuplayout[backspace=70.3pt]
- \setuppagenumbering [alternative=doublesided]
- \setuptyping[blank=halfline]
- \setupheadertexts
- [\TiHead]
- [{\cap{\MapsPeriod\ \MapsYear}\quad\bf \pagenumber\hskip-147pt\hbox{}}]
- [{\hbox{}\hskip-147pt{\bf \pagenumber}\quad \cap {maps\ \MapsNumber}}]
- [\AuHead]
- \setupfootertexts
-}}{% two col
- \setuplayout[width=457pt]
- \setupcolumns[n=2,tolerance=verytolerant,distance=11pt]
- \setuplayout[backspace=70.3pt,grid=yes]
- \setuppagenumbering [alternative=doublesided]
- \setuptyping[blank=halfline]
- \setupheadertexts
- [\TiHead]
- [{\cap{\MapsPeriod\ \MapsYear}\quad\bf \pagenumber\hskip-30pt\hbox{}}]
- [{\hbox{}\hskip-30pt{\bf \pagenumber}\quad \cap {maps\ \MapsNumber}}]
- [\AuHead]
- \setupfootertexts
-}
-
-\def\fulltextwidth{457pt}
-
-\def\startdescription
- {\blank
- \bgroup
- \def\sym##1{\par\noindent\hbox{\bf\kern -16pt ##1}\hskip 12pt}
- \startnarrower[left]
- }
-\def\stopdescription
- {\par \stopnarrower \egroup \blank \noindentation }
-
-\frenchspacing
-\setuptolerance[tolerant]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-mod-00.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-mod-00.mkii
deleted file mode 100644
index a81406a7346..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-mod-00.mkii
+++ /dev/null
@@ -1,511 +0,0 @@
-%D \module
-%D [ file=s-mod-00,
-%D version=very-old,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Documentation Base Environment,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module looks like crap, is not documented, will
-%D change, and used to be called modu-*.tex.
-
-% todo:
-%
-% file inclusions -> hyperlinks
-
-\mainlanguage[en] % better not here
-
-\usemodule[units]
-
-\enableactivediscretionaries
-\newprettytrue
-
-\unprotect
-
-% beter:
-%
-% group -> title
-% title -> category
-% subtitle -> subtitle
-
-% herzien ivm fonts
-
-% nog eens \interface \\ \\ verder doorvoeren
-
-\def\resetmoduledocumentation
- {\getrawparameters
- [Module]
- [ file=\jobname,
- type=,
- version={\currentdate[\v!year,{.},\v!month,{.},\v!day]},
- system=\CONTEXT,
- title=Unknown Title,
- subtitle=,
- author=Unknown Author,
- date=\currentdate,
- copyright=Unknown Copyright,
- suggestions=]}
-
-\resetmoduledocumentation
-
-\def\dostartmoduledocumentation[#1]%
- {\newcounter\ParagraphNumber
- \resetmoduledocumentation
- \getrawparameters[Module][type=tex,#1]}
-
-\def\startmoduledocumentation
- {\starttext
- \dosingleempty\dostartmoduledocumentation}
-
-\def\stopmoduledocumentation
- {\page
- \placeregister
- [\v!index]
- [\c!balance=\v!yes,
- \c!indicator=\v!no,
- \c!criterium=\v!text]
- \stoptext}
-
-% \def\complexmodule[#1]%
-% {\startglobal % i.v.m. \bgroup in \startdocumentation
-% \getrawparameters[Module][#1]
-% \stopglobal % i.v.m. \bgroup in \startdocumentation
-% \moduletitle}
-%
-% \def\simplemodule#1%
-% {\type{#1}}
-%
-% \definecomplexorsimple\module
-
-% \startmode[atpragma]
-%
-% \def\TitlePage#1% can be done more efficient
-% {\startMPrun
-% mpgraph := #1 ;
-% input mp-cont ;
-% \stopMPrun
-% \externalfigure
-% [\bufferprefix mprun.#1]
-% [\c!height=\vsize,
-% \c!width=\hsize]}
-%
-% \defineoverlay[titlepage][\TitlePage{512}]
-%
-% \stopmode
-
-\startuseMPgraphic{titlepage}
-
- width := PaperWidth ;
- height := PaperHeight ;
-
- color local_red, local_white, local_blue ;
-
- local_white := white ;
-
- local_blue := local_white randomized (.6,.8) ;
- local_red := local_white randomized (.3,.4) ;
-
- u := width/400 ;
-
- def a_module (expr dx, dy) =
- picture p ; p := image
- ( ddy := 0 ; sx := 60u ;
- for i=1 upto (4 randomized 2) :
- sy := 7u randomized 3u ;
- fill unitsquare xyscaled(sx,sy) shifted (0,ddy)
- withcolor local_red ;
- ddy := ddy + sy + 4u ;
- endfor ) ;
- p := p shifted (dx,dy) shifted - center p ;
- fill boundingbox p enlarged 8u withcolor local_white ;
- fill boundingbox p enlarged 4u withcolor local_blue ;
- draw p ;
- enddef ;
-
- set_grid(width, height, width/15, height/15) ;
- forever:
- if new_on_grid(uniformdeviate width,uniformdeviate height):
- a_module(dx,dy) ;
- fi ;
- exitif grid_full ;
- endfor ;
-
- clip currentpicture to unitsquare xyscaled(width,height) ;
-\stopuseMPgraphic
-
-\defineoverlay
- [titlepage]
- [\useMPgraphic{titlepage}]
-
-\doifmode{atpragma}{\readfile{s-mod-04.tex}{}{}}
-
-\defineframed
- [TitleFrame]
- [\c!background=\v!color,
- \c!backgroundcolor=white,
- \c!align=\v!right,
- \c!offset=12pt,
- \c!strut=\v!no,
- \c!frame=\v!off,
- \c!bottom=]
-
-\definelayout
- [titlepage]
- [\c!backspace=0pt,
- \c!topspace=0pt,
- \c!header=0pt,
- \c!footer=0pt,
- \c!height=\v!middle,
- \c!width=\v!middle]
-
-\def\moduletitle
- {\setuplayout[titlepage]
- \ifx\ModuleNumber\undefined \else
- \ifnum\ModuleNumber<10
- \edef\ModuleNumber{00\ModuleNumber}
- \else\ifnum\ModuleNumber<100
- \edef\ModuleNumber{0\ModuleNumber}
- \fi\fi
- \setupbackgrounds
- [\v!page]
- [\c!background=titlepage]
- \fi
- \startmakeup[\v!standard][\c!headerstate=\v!none,\c!footerstate=\v!none]
- \switchtobodyfont[14.4pt,ss]
- \bgroup
- \def\CONTEXT {Con\kern-.15em\TeX t}
- \def\TEXUTIL {\TeX Util}
- \def\PPCHTEX {PPCH\TeX}
- \def\METAPOST{MetaPost}
- \hfill
- {\definedfont[SansBold at 96pt]\setstrut
- \TitleFrame{\Modulesystem}}
- \vfill
- \definetabulate[temp][|l|l|]%
- \switchtobodyfont[17.3pt,ss]
- \hfill
- {\bf\setstrut
- \TitleFrame
- {\insidefloattrue\setuptabulate[\c!before=,\c!after=]%
- \starttemp
- \doifsomething{\Moduletitle}
- {\NC title \EQ \Moduletitle \NC\NR}%
- \doifsomething{\Modulesubtitle}
- {\NC subtitle \EQ \Modulesubtitle \NC\NR}%
- \doifsomething{\Moduleauthor}
- {\NC author \EQ \Moduleauthor \NC\NR}%
- \NC date \EQ \currentdate \NC\NR
- %\doifsomething{\Modulesuggestions} % todo: generates space
- % {\NC suggestions \NC \Modulesuggestions \NC\NR}%
- \stoptemp}}
- \egroup
- \stopmakeup
- \ifx\ModuleNumber\undefined \else
- \setupbackgrounds
- [\v!page]
- [\c!background=]
- \fi
- \setuplayout}
-
-\let\stopdocumentation=\relax
-
-\def\startdocumentation
- {\bgroup
- \doglobal\newcounter\NOfMarginLines
- \def\stopdocumentation{\par\egroup}}
-
-\newif\ifcompressdefinitions
-
-\def\startcompressdefinitions {\global\compressdefinitionstrue}
-\def\stopcompressdefinitions {\global\compressdefinitionsfalse}
-
-\gdef\CompressDefinitions%
- {\ifcompressdefinitions
- \switchtobodyfont[\v!small]%
- \fi}
-
-\startnotmode[nocode]
-
- \definetyping
- [definition]
-
- \setuptyping
- [definition]
- [\c!before={\page[\v!preference]}\blank\PresetParagraphNumber\CompressDefinitions,
- \c!after=\ResetParagraphNumber\blank,
- \c!option=\Moduletype]
-
-\stopnotmode
-
-\startmode[nocode]
-
-% \definieerbuffer[definition] % ignore
-
- \long\def\startdefinition#1\stopdefinition{}
-
-\stopmode
-
-\definetyping [PL] [\c!option=PL, \c!margin=\v!standard]
-\definetyping [JV] [\c!option=JV, \c!margin=\v!standard]
-\definetyping [MP] [\c!option=MP, \c!margin=\v!standard]
-\definetyping [TEX] [\c!option=TEX,\c!margin=\v!standard]
-
-\setuptyping [\v!typing] [\c!margin=\v!standard]
-\setuptyping [\v!file] [\c!margin=\v!standard]
-\setuptyping [definition] [\c!margin=0pt]
-
-\newcounter\NOfMarginLines
-\newcounter\ParagraphNumber
-
-\def\ResetParagraphNumber
- {\egroup}
-
-\def\PresetParagraphNumber
- {\bgroup
- \xdef\NOfTextLines%
- {\the\prevgraf}%
- \doglobal\decrement\NOfMarginLines
- \doglobal\increment\ParagraphNumber
- \message{.}%
- \gdef\ShowParagraphNumber%
- {\llap{\slx\ParagraphNumber\hskip\leftmargindistance}}%
- \gdef\ShowParagraphNumberA%
- {\ifnum\NOfMarginLines>\NOfTextLines\relax
- \doglobal\increment\NOfTextLines
- \else
- \ShowParagraphNumber
- \global\let\ShowParagraphNumberA=\relax
- \global\let\ShowParagraphNumberB=\ShowParagraphNumber
- \doglobal\newcounter\NOfMarginLines
- \fi}%
- \gdef\ShowParagraphNumberB%
- {}%
- \EveryLine
- {\ShowParagraphNumberA}%
- \EveryPar
- {\vadjust{\nobreak}%
- \ShowParagraphNumberB}}
-
-\EveryPar % skip one
- {\EveryPar
- {\doglobal\newcounter\NOfMarginLines}}
-
-\def\dodomargeaanduidingen[#1]#2%
- {\def\docommand##1%
- {\indent\hbox
- {\ifx#2\relax
- \index{##1}%
- \else
- \index{#2{##1}}%
- \fi
- #2{\doboundtext{##1}{\leftmarginwidth}{..}}}%
- \doglobal\increment\NOfMarginLines
- \endgraf}%
- \processcommalist[#1]\docommand}
-
-\def\margeaanduidingen#1[#2]%
- {\def\domargeaanduidingen##1##2%
- {\margintitle[#2]%
- {\switchtobodyfont[\v!small]%
- \doglobal\newcounter\NOfMarginLines
- \dodomargeaanduidingen[##1]#1%
- \scratchcounter=\NOfMarginLines
- \multiply\scratchcounter by 10
- \divide\scratchcounter by 12
- \advance\scratchcounter by 1
- \xdef\NOfMarginLines{\the\scratchcounter}%
- \processcommalist[##2]\index}}%
- \dodoublegroupempty\domargeaanduidingen}
-
-\def\complexmacros{\margeaanduidingen\tex }
-\def\complexextras{\margeaanduidingen\relax}
-
-\def\complexelements
- {\margeaanduidingen\someelement}
-
-\def\someelement#1{\type{<#1>}}
-
-\definecomplexorsimpleempty\macros
-\definecomplexorsimpleempty\extras
-\definecomplexorsimpleempty\elements
-
-\def\showelements{\dodoubleempty\doshowelements}
-
-\def\doshowelements[#1][#2]
- {\bgroup
- \processXMLbuffer
- \typebuffer
- \setupcolors[\c!state=\v!stop]
- \showXSDcomponent[#1][#2]
- \egroup}
-
-% \macros{a,b}
-% \macros{a,b}{b}
-% \macros[a]{a,b}{b}
-
-% weg ermee
-
-\defineparagraphs [interface] [\c!n=2]
-\setupparagraphs [interface] [1] [\c!width=4cm]
-
-\def\startexample{\par\startnarrower} \let\startvoorbeeld\startexample
-\def\stopexample {\stopnarrower} \let\stopvoorbeeld \stopexample
-
-\gdef\VisualizeLastSpace{\ifdim\lastskip>0pt\unskip\tttf\char32\fi}
-
-\gdef\ShowHeadText #1{\tttf#1\VL\mainlanguage[\currentlanguage]\headtext {#1}\VisualizeLastSpace}
-\gdef\ShowLabelText#1{\tttf#1\VL\mainlanguage[\currentlanguage]\labeltext{#1}\VisualizeLastSpace}
-
-\startbuffer[lang-a]
-\starttable[|l|l|]
- \HL
- \VL \bf head key \VL \bf current value \VL\SR
- \HL
- \VL \ShowHeadText \v!abbreviations \VL\FR
- \VL \ShowHeadText \v!units \VL\MR
- \VL \ShowHeadText \v!figures \VL\MR
- \VL \ShowHeadText \v!graphics \VL\MR
- \VL \ShowHeadText \v!index \VL\MR
- \VL \ShowHeadText \v!content \VL\MR
- \VL \ShowHeadText \v!intermezzi \VL\MR
- \VL \ShowHeadText \v!logos \VL\MR
- \VL \ShowHeadText \v!tables \VL\LR
- \HL
-\stoptable
-\stopbuffer
-
-\startbuffer[lang-b]
-\starttable[|l|l|]
- \HL
- \VL \bf label key \VL \bf current value \VL\SR
- \HL
- \VL \ShowLabelText \v!table \VL\FR
- \VL \ShowLabelText \v!figure \VL\MR
- \VL \ShowLabelText \v!intermezzo \VL\MR
- \VL \ShowLabelText \v!graphic \VL\MR
- \VL \ShowLabelText \v!chapter \VL\MR
- \VL \ShowLabelText \v!section \VL\MR
- \VL \ShowLabelText \v!subsection \VL\MR
- \VL \ShowLabelText \v!subsubsection \VL\MR
- \VL \ShowLabelText \v!appendix \VL\MR
- \VL \ShowLabelText \v!part \VL\MR
- \VL \ShowLabelText \v!line \VL\MR
- \VL \ShowLabelText \v!lines \VL\LR
- \HL
-\stoptable
-\stopbuffer
-
-\startbuffer[lang-c]
-\starttable[|l|l|]
- \HL
- \VL \bf label key \VL \bf current value \VL\SR
- \HL
- \VL \ShowLabelText \v!january \VL\FR
- \VL \ShowLabelText \v!february \VL\MR
- \VL \ShowLabelText \v!march \VL\MR
- \VL \ShowLabelText \v!april \VL\MR
- \VL \ShowLabelText \v!may \VL\MR
- \VL \ShowLabelText \v!june \VL\MR
- \VL \ShowLabelText \v!july \VL\MR
- \VL \ShowLabelText \v!august \VL\MR
- \VL \ShowLabelText \v!september \VL\MR
- \VL \ShowLabelText \v!october \VL\MR
- \VL \ShowLabelText \v!november \VL\MR
- \VL \ShowLabelText \v!december \VL\LR
- \HL
-\stoptable
-\stopbuffer
-
-\startbuffer[lang-d]
-\starttable[|l|l|]
- \HL
- \VL \bf label key \VL \bf current value \VL\SR
- \HL
- \VL \ShowLabelText \v!sunday \VL\FR
- \VL \ShowLabelText \v!monday \VL\MR
- \VL \ShowLabelText \v!tuesday \VL\MR
- \VL \ShowLabelText \v!wednesday \VL\MR
- \VL \ShowLabelText \v!thursday \VL\MR
- \VL \ShowLabelText \v!friday \VL\MR
- \VL \ShowLabelText \v!saturday \VL\LR
- \HL
-\stoptable
-\stopbuffer
-
-\gdef\ShowTextsValues[#1][#2]%
- {\vbox\bgroup
- \language[#1]%
- \setbox\scratchbox\hbox to \hsize{\hss\bfb#2 language defaults\hss}
- \dp\scratchbox\zeropoint
- \box\scratchbox
- \vskip1em
- \hrule
- \vskip2em
- \halign
- {\hss##\hss&##\hskip1em&\hss##\hss\cr
- $\vcenter{\getbuffer[lang-a]}$&&$\vcenter{\getbuffer[lang-b]}$\cr
- \noalign{\vskip1em}
- $\vcenter{\getbuffer[lang-c]}$&&$\vcenter{\getbuffer[lang-d]}$\cr}%
- \egroup}
-
-\gdef\ShowLanguageValues[#1][#2]#3#4%
- {\hbox to \hsize
- {\hss
- \vbox
- \bgroup
- \language[#1]%
- \let\normalbar=|
- \starttable[||||]
- \HL
- \VL \THREE{\bf subsentence symbol and quotes} \VL\SR
- \HL
- \VL \quotation{#3 #4} \VL \quote{#2} \VL \let|=\normalbar |<||<|#3|>|#4|>| \VL\FR
- \VL \quotation{#3 #4} \VL \quote{#2} \VL |<||<|#3|>|#4|>| \VL\LR
- \HL
- \stoptable
- \egroup
- \hss}}
-
-\gdef\doShowAllLanguageValues[#1][#2]#3#4%
- {\vbox
- {\ShowTextsValues[#1][#2]
- \vskip2em
- \ShowLanguageValues[#1][#2]{#3}{#4}}
- \protect
- \page}
-
-\gdef\ShowAllLanguageValues
- {\page
- \unprotect
- \dodoubleargument\doShowAllLanguageValues}
-
-\protect
-
-%D Command references:
-
-% \input setupa
-% \input setupb
-
-\usemodule[int-load] \loadsetups
-
-\unprotect
-
-% \def\showsetup
-% {\doglobal\newcounter\CurrentArgument
-% \setup}
-
-\def\showsetup#1%
- {{\def\y##1{\writestatus{setups}{warning: remove y! from #1}}%
- \setup{#1}}}
-
-\setupframedtexts
- [setuptext]
- [\c!background=\v!screen,
- \c!frame=\v!off]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-mod-01.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-mod-01.mkii
deleted file mode 100644
index 5b83cd12110..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-mod-01.mkii
+++ /dev/null
@@ -1,155 +0,0 @@
-%D \module
-%D [ file=s-mod-01,
-%D version=very-old,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Documentation Paper Environment,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module looks like crap, is not documented, will
-%D change, and used to be called modu-*.tex.
-
-\usemodule[mod-00,abr-01]
-
-\dontcomplain
-
-\unprotect
-
-\setupbodyfont
- [10pt]
-
-\definetypeface
- [narrowtt] [tt]
- [mono] [modern-cond] [default] [encoding=\defaultencoding]
-
-\setuptyping[\v!typing][\c!style=\narrowtt]
-\setuptype [\v!type] [\c!style=\narrowtt]
-
-\mainlanguage
- [en]
-
-\setupwhitespace
- [\v!big]
-
-\setuptolerance
- [\v!verytolerant,\v!stretch]
-
-\setuplayout
- [\c!backspace=3.5cm,
- \c!leftmargin=1.75cm,
- \c!rightmargin=0cm,
- \c!margindistance=.5cm,
- \c!leftedgedistance=.25cm,
- \c!rightedgedistance=.5cm,
- \c!edge=1.5cm,
- \c!width=15.55333cm, % 13.998cm at 9pt => 15.55333 at 10pt
- \c!topspace=2cm,
- \c!header=1.25cm,
- \c!footer=1.25cm,
- \c!height=middle,
- \c!style=\ss]
-
-\setupsetup
- [\c!reference=1]
-
-\startnotmode[single]
-
- \setuppagenumbering
- [\c!alternative={\v!doublesided,\v!singlesided}]
-
-\stopnotmode
-
-\setuppagenumbering
- [\c!location=]
-
-\expanded{\setupfootertexts
- [\v!edge]
- [][\v!pagenumber]}
-
-\startmode[single]
-
- \setupfootertexts
- [\v!margin]
- [\filename{\Modulefile}][]
-
-\stopmode
-
-\startnotmode[single]
-
- \setupfootertexts
- [\v!margin]
- [\filename{\Modulefile}][]
- [\filename{\Modulefile}][]
-
-\stopnotmode
-
-\setupfootertexts
- [\v!text]
- [\CONTEXT]
- [\Moduletitle]
-
-\setupheadertexts
- [\v!text]
- []
- [\Modulesubtitle]
-
-\setupinmargin
- [\c!location=\v!left]
-
-\setupheads
- [\c!alternative=\v!inmargin]
-
-\setuphead
- [\v!chapter]
- [\c!style=\ssc,
- \c!page=\v!right,
- \c!header=\v!empty]
-
-\setuphead
- [\v!section]
- [\c!style=\ssb,
- \c!page=\v!right]
-
-\setuplist
- [\v!chapter]
- [\c!style=\v!bold,
- \c!after=\blank]
-
-\setupcombinedlist
- [\v!content]
- [\c!width=3em,
- \c!aligntitle=\v!yes]
-
-\setupregister
- [\v!index]
- [\c!balance=\v!yes,
- \c!indicator=\v!no]
-
-\startnotmode[nocolor]
-
-\setupcolors
- [\c!state=\v!start]
-
-\stopnotmode
-
-\startnotmode[color]
-
- \setupcolors
- [\c!conversion=\v!always]
-
- \setuptyping
- [\c!palet=graypretty]
-
-\stopnotmode
-
-\setupinteraction
- [\c!state=\v!start,
- \c!color=,
- \c!style=]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-mod-02.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-mod-02.mkii
deleted file mode 100644
index 2d095ff9ab6..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-mod-02.mkii
+++ /dev/null
@@ -1,421 +0,0 @@
-%D \module
-%D [ file=s-mod-02,
-%D version=very-old,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Documentation Screen Environment,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module looks like crap, is not documented, will
-%D change, and used to be called modu-*.tex.
-
-% Macro's
-
-\usemodule[mod-00]
-
-\unprotect
-
-% todo: internationalize + setups
-
-\setuphead[paragraaf][expansion=command]
-\setuphead[section][expansion=command]
-
-\def\complexmodule[#1]% redefined
- {\startglobal % i.v.m. \bgroup in \startdocumentation
- \getparameters[Module][#1]
- \stopglobal % i.v.m. \bgroup in \startdocumentation
- %%\section{\Modulesubtitle}
- \xdef\Temp{\Modulesubtitle}%%Modulesubtitle:\framed{BEGIN \Modulesubtitle END} :#1 !}
- \@EA\section\@EA{\Temp}
- \WriteLists}
-
-\def\stopmodule % redefined
- {\page
- \determineregistercharacteristics
- [index]
- [criterium=section]
- \doifmode{*register}
- {\pagereference
- [index]
- \placeregister
- [index]
- [balance=yes,
- indicator=no,
- criterium=section]}}
-
-\let\ComposeLists=\relax
-
-\newcounter\ModuleNumber
-
-\newwrite\BatchFile \openout\BatchFile=\jobname.bat
-
-\def\WriteBatchFile
- {\doglobal\increment\ModuleNumber
-% \immediate\write\BatchFile{call modu-run \FileName\space \ModuleNumber}}
-% \immediate\write\BatchFile{texmfstart texutil --modu \FileName}}
- \immediate\write\BatchFile{texmfstart texexec --pdf --modu --batch \FileName }}
-
-\newif\ifProcessingPublic
-
-\def\WriteLists
- {\writetolist[FileNames] {}{\FileName}
- \writetolist[GroupItems]{}{\GroupItem}}
-
-\def\moduletitle{}
-
-\def\TypeZeroModule#1%
- {\section{[to be extracted: #1]}
- {\em This module is not yet split off.}
- \WriteLists}
-
-\def\TypeOneModule#1%
- {\section{[to be documented: #1]}
- {\em This module is not yet fully documented.}
- \WriteLists}
-
-\def\TypeTwoModule#1%
- {\ifProcessingPublic
- \readfile{#1.ted}{}{}%
- \WriteBatchFile
- \else
- \section{[not yet public: #1]}
- {\em This module is documented but not yet public.}
- \WriteLists
- \fi}
-
-\def\TypeThreeModule#1%
- {\readfile{#1.ted}{}{}%
- \WriteBatchFile}
-
-\def\processmodule#1#2%
- {\page
- \bgroup
- \def\FileName{#1}
- \setupreferencing[prefix=#1]
- \useexternaldocument[PaperVersion][#1][]
- \aftersplitstring#1\at-\to\GroupItem
- \ComposeLists
- \ifcase#2
- \TypeZeroModule{#1}
- \or
- \TypeOneModule{#1}
- \or
- \TypeTwoModule{#1}
- \or
- \TypeThreeModule{#1}
- \fi
- \page
- \setupreferencing[prefix=]
- \egroup}
-
-\def\ModuleGroup#1#2%
- {\page
- \let\Modulefile=\empty
- \setupreferencing[prefix=#1]
- \def\FileGroup{#1}
- \writetolist[FileGroups]{}{\FileGroup}
- \chapter[content]{#2}
- \MakeListOfItems
- \MakeListOfNames
- \MakeListOfGroups
- \placecontent[criterium=chapter,level=section]}
-
-% Layout
-
-\setupbodyfont
- [9pt]
-
-\setuppapersize
- [S6][S6]
-
-\setuplayout
- [backspace=72.5pt,
- leftmargin=50pt,
- leftmargindistance=12.5pt,
- rightmargin=0pt,
- rightedge=80pt,
- rightedgedistance=10pt,
- leftedge=0pt,
- width=430pt,
- topspace=10pt,
- header=0pt,
- footer=30pt,
- bottomdistance=10pt,
- bottom=15pt,
- height=410pt,
- style=\ss]
-
-\setuptyping
- [palet=colorpretty]
-
-\setupsetup
- [reference=3]
-
-\definecolor [AchtergrondKleur] [s=.6]
-\definecolor [ButtonKleur] [r=.2,g=.2,b=.6]
-\definecolor [TekstKleur] [r=.6,g=.2,b=.2]
-
-\definecolor [colorprettyone] [r=.6,g=.0,b=.0] % red
-\definecolor [colorprettytwo] [r=.0,g=.6,b=.0] % green
-\definecolor [colorprettythree] [r=.0,g=.0,b=.6] % blue
-\definecolor [colorprettyfour] [r=.6,g=.6,b=.0] % yellow
-
-\setupinteraction
- [state=start,
- page=yes,
- contrastcolor=,
- menu=on,
- color=]
-
-\setupbackgrounds
- [page]
- [background=color,
- backgroundcolor=AchtergrondKleur,
- offset=2.5pt] % this offset influences the menus!
-
-\setupbackgrounds
- [text,footer]
- [text,leftmargin]
- [background=color,
- backgroundcolor=white]
-
-\setupsubpagenumber
- [way=bysection,
- state=start]
-
-\setupinteractionbar
- [frame=off,
- offset=0pt,
- height=fit]
-
-\setupwhitespace
- [big]
-
-\setuptyping
- [typing]
- [option=color]
-
-\setuptyping
- [definition]
- [option=color]
-
-\setuptyping
- [file]
- [option=color]
-
-\setuppagenumbering
- [alternative=singlesided,
- way=bysection,
- state=none]
-
-\setupinmargin
- [location=left]
-
-\setupheads
- [alternative=inmargin]
-
-\setuphead
- [chapter]
- [style=\ssc,
- page=right]
-
-\setuphead
- [section]
- [style=\ssb,
- page=right]
-
-\setuplist
- [chapter]
- [style=bold,
- after=\blank]
-
-\setupcontent
- [width=2em]
-
-\setupindex
- [balance=yes,
- indicator=no]
-
-\setupcolors
- [state=start]
-
-\def\TitelBlad#1%
- {\startstandardmakeup
- \definefont[GrootFont] [SansBold at 72pt]
- \definefont[MiddelFont][Sans at 32pt]
- \definefont[KleinFont] [Sans at 24pt]
- \startcolor[AchtergrondKleur]
- \vskip12pt
- \midaligned{\GrootFont\setstrut\strut Con\TeX t}
- \vskip24pt
- \midaligned{\MiddelFont\setstrut\strut #1}
- \vskip24pt
- \midaligned{\KleinFont\setstrut\strut Hans Hagen}
- \vfilll
- \midaligned{\KleinFont\setstrut\strut PRAGMA ADE}
- \vskip24pt
- \midaligned{\KleinFont\setstrut\strut www.pragma-ade.com --- \currentdate}
- \vskip12pt
- \stopcolor
- \stopstandardmakeup}
-
-\def\ColofonBlad
- {\startmode[atpragma]
- \page
- \bgroup
- \def\PragmaHoogte {\makeupheight}
- \def\PragmaBreedte{\textwidth}
- \def\PragmaKopwit {\topspace}
- \def\PragmaRugwit {\backspace}
- \def\PragmaMarge {0pt}
- \PragmaLijnentrue
- \PlaatsPragmaLogo[ADE]
- \vfill
- todo: colofon
- \startnarrower[3*middle]
- This is the official documentation of \CONTEXT\ version
- \referraldate, a \TEX\ macropackage developed by J.~Hagen
- \& A.F.~Otten, who both hold the copyrights.
- \stopnarrower
- \vfill
- \page
- \egroup
- \stopmode}
-
-\def\ColofonBlad
- {}
-
-\newbox\ListOfItems
-\newbox\ListOfGroups
-\newbox\ListOfNames
-
-\definelist[FileNames] \def\FileName {}
-\definelist[FileGroups] \def\FileGroup {}
-\definelist[GroupItems] \def\GroupItem {}
-
-\setuplist
- [FileNames,FileGroups,FileGroups]
- [expansion=yes,
- pagenumber=no,
- style=\ss\bf]
-
-\setuplist
- [FileNames]
- [command=\FileNameEntry,
- after=\endgraf,
- alternative=none] % horizontal
-
-\setuplist
- [FileGroups]
- [command=\FileGroupEntry,
- after=\hss,
- alternative=horizontal]
-
-\def\FileNameEntry#1#2#3%
- {\strut\hbox{#2}\endgraf}
-
-\def\FileGroupEntry#1#2#3%
- {\strut\hbox{#2}\endgraf}
-
-\def\MakeListOfItems
- {\setbox\ListOfItems=\vbox
- {\ss\bf
- \placelist[GroupItems][color=ButtonKleur,contrastcolor=white,criterium=chapter]}}
-
-\def\MakeListOfNames
- {\setbox\ListOfNames=\vbox
- {\hsize\rightedgewidth
- \ss\bf\setupinterlinespace
- \startsimplecolumns[distance=10pt]
- \placelist[FileNames][color=ButtonKleur,contrastcolor=white,criterium=chapter]
- \stopsimplecolumns}}
-
-\def\MakeListOfGroups
- {\setbox\ListOfGroups=\hbox to \textwidth
- {\ss\bf
- \setupinteraction[color=ButtonKleur]%
- \placelist[FileGroups][color=ButtonKleur,contrastcolor=white,criterium=all]\unskip\unskip}}
-
-\setbox\ListOfGroups=\hbox{}
-
-%\setupfootertexts
-% [rand]
-% []
-% [{\interactiebalk[variant=g]}]
-
-\setupinteractionmenu
- [right,bottom]
- [state=start,
- frame=off,
- color=AchtergrondKleur,
- contrastcolor=white,
- style=\ss\bf,
- height=15pt,
- offset=0pt,
- inbetween=\vskip5pt,
- background=color,
- backgroundcolor=ButtonKleur]
-
-\startinteractionmenu[right]
- \boxofsize \vbox \textheight \footerdistance \footerheight 5pt
- \bgroup
- \copy\ListOfNames
- \vfill
- \but [\FileGroup:content] local contents \\
- \but [\FileName:index] local register \\
- \but [PaperVersion::begin] paper version \\
- \but [content] main contents \\
- \but [index] main register \\
- \but [PreviousJump] previous jump \\
- \but [CloseDocument] close document \\
- \unskip
- \egroup
-\stopinteractionmenu
-
-\startinteractionmenu[bottom]
- \unhcopy\ListOfGroups
-\stopinteractionmenu
-
-\def\placemoduleregister
- {\startbackmatter
- \setupsubpagenumber[reset]
- \title[-:index]{Register}
- \placeregister[index]
- \stopbackmatter}
-
-\def\placemodulecontent
- {\startfrontmatter
- \title[-:content]{Contents}
- \setupinteractionbar[state=stop]
- \placecontent[criterium=text,level=chapter]
- \stopfrontmatter}
-
-\setupcontent
- [pagenumber=no,
- level=chapter,
- interaction=all,
- style=,
- before=,
- after=]
-
-\setupfootertexts
- [margin]
- [\tt\Modulefile]
- []
-
-\setupfootertexts
- [text]
- [chapter][chapter]
-
-\setupindex
- [symbol=1]
-
-\setuptolerance
- [verytolerant]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-pre-01.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-01.mkii
deleted file mode 100644
index 89c5642f9f5..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-01.mkii
+++ /dev/null
@@ -1,404 +0,0 @@
-%D \module
-%D [ file=s-pre-01,
-%D version=1997.07.22,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 1,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%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]
-
-%D \macros
-%D {language}
-%D
-%D Because this module is defined in english, we default to the
-%D english hyphenation patterns and labels too.
-
-\language
- [en]
-
-%D \macros
-%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 12 points for ornaments.
-
-\startmode[asintended] \setupbodyfont[lbr] \stopmode
-
-\setupbodyfont[14.4pt]
-
-\setuplayout
- [style=smallbodyfont]
-
-%D \macros
-%D {setupcolors,definecolor}
-%D
-%D Screen presentations without color just look dull, so we
-%D enable color support. We define ourselves a yellowish
-%D backgroundcolor and a not too dark blue interactioncolor.
-
-\setupcolors
- [state=start]
-
-\definecolor [BackgroundColor] [r=1, g=1, b=.7]
-\definecolor [InteractionColor] [r=.1, g=.5, b=.8]
-\definecolor [ContrastColor] [r=.9, g=.5, b=.2]
-
-%D \macros
-%D {setuppapersize,setuplayout,setupinteractionscreen}
-%D
-%D
-%D We use a nice large screen, and dedicate the right edge and
-%D bottom part to navigational tools. We automatically set
-%D the width and height of the page and start up full screen.
-
-\setuppapersize
- [S6][S6]
-
-\setuplayout
- [topspace=12pt,
- header=0pt,
- footer=0pt,
- height=402pt, % 450 - 12 - 15 - 12 - 12 + 3
- bottomdistance=15pt,
- bottom=12pt,
- backspace=12pt,
- margin=0pt,
- width=fit,
- edgedistance=12pt,
- rightedge=96pt]
-
-\setupinteractionscreen
- [option=max]
-
-%D \macros
-%D {setupbackgrounds}
-%D
-%D We set the pagecolor to yellow except the part of the screen
-%D that is used to display the running text. By seting the
-%D offset to 3pt the text will not touch the yellow parts. We
-%D do not set the depth.
-
-\setupbackgrounds
- [page]
- [background=color,
- backgroundcolor=BackgroundColor,
- offset=3pt]
-
-\setupbackgrounds
- [text][text]
- [background=color,
- backgroundcolor=white]
-
-%D I considered the next setup too, but finaly decided to
-%D comment it out.
-%D
-%D \starttyping
-%D \setupbackgrounds
-%D [bottom][text]
-%D [frame=on,
-%D framecolor=white]
-%D \stoptyping
-
-%D \macros
-%D {setupinteraction}
-%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.
-
-\setupinteraction
- [page=yes,
- color=InteractionColor,
- contrastcolor=ContrastColor,
- menu=on,
- state=start]
-
-%D \macros
-%D {setupinteractionmenu,startinteractionmenu}
-%D
-%D At the bottom of the screen we show two navigational bars.
-%D At the left we show the subpage bar, at the right we use a
-%D non default backward|/|forward bar.
-
-\setupinteractionmenu
- [bottom]
- [leftoffset=-3pt,
- rightoffset=-3pt]
-
-\startinteractionmenu[bottom]
- \txt \InteractionBar \\
- \txt \InteractionButtons \\
-\stopinteractionmenu
-
-%D \macros
-%D {interactionbar}
-%D
-%D The left bar gets a white border (on the yellow background).
-%D Because we don't want to typeset an empty frame when no
-%D subpage bar is shown, we check for the number of subpages.
-
-\def\InteractionBar%
- {\ifnum\nofsubpages>1
- \framed
- [framecolor=white,rulethickness=1pt,
- height=\bottomheight,strut=no]
- {\interactionbar[alternative=f,width=.5\makeupwidth,height=1ex]}
- \fi}
-
-%D \macros
-%D {setupinteractionbar, interactionbuttons}
-%D
-%D The right hand buttons enable us to jump backward and forward,
-%D as well as to the previous and next jump. We also enable to
-%D close the presentation.
-
-\setupinteractionbar
- [framecolor=white,rulethickness=1pt,
- height=\bottomheight,strut=no]
-
-\def\InteractionButtons%
- {\interactionbuttons
- [width=15em]
- [PreviousJump,NextJump,
- firstpage,
- firstsubpage,previouspage,nextpage,lastsubpage,
- lastpage,
- CloseDocument]}
-
-%D \macros
-%D {StartTitlePage, TitlePage}
-%D
-%D The titlepage is rather simple and can be typeset in two
-%D ways:
-%D
-%D \starttyping
-%D \StartTitlePage
-%D text \\ text \\ text
-%D \StopTitlepage
-%D \stoptyping
-%D
-%D or more straightforward:
-%D
-%D \starttyping
-%D \TitlePage{text\\text\\text}
-%D \stoptyping
-%D
-%D The first alternative can be used for more complicated
-%D title pages.
-
-\def\StartTitlePage%
- {\startstandardmakeup
- \bfd\setupinterlinespace
- \setupalign[middle]
- \vfil
- \let\\=\vfil}
-
-\def\StopTitlePage%
- {\vfil\vfil\vfil
- \stopstandardmakeup}
-
-\def\TitlePage#1%
- {\StartTitlePage#1\StopTitlePage}
-
-%D \macros
-%D {TitlePage, Topics, Topic, Subject}
-%D
-%D A presentation after loading this module looks like:
-%D
-%D \starttyping
-%D \TitlePage {About Whatever\\Topics}
-%D
-%D \Topics {Todays Talk}
-%D
-%D \Topic {Some topic}
-%D
-%D \Subject {Alfa}
-%D
-%D .....
-%D
-%D \Subject {Beta}
-%D
-%D .....
-%D \stoptyping
-
-%D \macros
-%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.
-
-\definehead [Topic] [chapter]
-\definehead [Subject] [section]
-
-\definehead [Nopic] [title]
-
-%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 to the topic.
-
-\setuphead
- [Topic, Nopic, Subject]
- [command=\HeadLine,
- page=yes,
- style=\tfb,
- after=\blank,
- sectionnumber=no]
-
-\setuphead
- [Topic]
- [after=\PlaceSubjectList]
-
-\setuphead
- [Subject]
- [continue=no]
-
-%D \macros
-%D {framed, midalined}
-%D
-%D The command used to typeset the head lines is rather simple.
-%D We just center the framed title. The frame macro optimizes
-%D the alignment and at the same time enables us to typeset a
-%D nice colored rule.
-
-\def\HeadLine#1#2%
- {\midaligned
- {\framed
- [framecolor=BackgroundColor,rulethickness=1pt,
- width=.8\hsize,align=middle,strut=no]
- {#2}}}
-
-%D \macros
-%D {setuplist}
-%D
-%D The subject list is automatically placed. We center each
-%D subject line by using one of the default alternatives (g). We
-%D could have said:
-%D
-%D \starttyping
-%D \setuplist
-%D [Subject]
-%D [alternative=none,
-%D command=\SubjectListLine,
-%D interaction=all]
-%D
-%D \def\SubjectListLine#1#2#3%
-%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.
-
-\def\PlaceSubjectList%
- {\blank
- \determinelistcharacteristics[Subject]
- % \ifnum\utilitylistlength>0 \placelist[Subject] \fi}
- \doifmode{*list}{\placelist[Subject]}}
-
-\setuplist
- [Subject, Topic]
- [alternative=g,
- interaction=all,
- before=,
- after=]
-
-% %D \macros
-% %D {setuptexttexts}
-% %D
-% %D The topics will be listed in the right edge, using:
-%
-% \setuptexttexts
-% [edge]
-% [][\TopicList]
-
-%D \macros
-%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 locally.)
-
-\startinteractionmenu[right]
- \placelist
- [Topic]
- [alternative=f, % command, % none,
- maxwidth=\hsize,
- width=\hsize,
- offset=0pt,
- criterium=all,
- align=left,
- style=\setsmallbodyfont\bfx]
-\stopinteractionmenu
-
-\def\Topics#1% temporary hack
- {\Nopic{#1}
- \placelist[Topic][criterium=all]}
-
-\def\Subjects%
- {}
-
-%D \macros
-%D {setuptexttexts, button}
-%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.
-
-\setuptexttexts
- [\GotoNextPage][]
-
-\def\GotoNextPage
- {\button[width=\hsize,height=\vsize,frame=off]{}[nextpage]}
-
-%D \macros
-%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]}.
-
-\setupsubpagenumber
- [way=bytext, % Topic,
- state=start]
-
-\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/modules/mkii/s-pre-02.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-02.mkii
deleted file mode 100644
index d7a6fe4589a..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-02.mkii
+++ /dev/null
@@ -1,381 +0,0 @@
-%D \module
-%D [ file=s-pre-02,
-%D version=1998.04.21,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 2,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%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 Association (now merged into a graphics association).
-
-\usemodule[pre-general]
-
-%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.
-
-\startmode[asintended] \setupbodyfont[lbr] \stopmode
-
-\setupbodyfont[14.4pt]
-
-\setuplayout
- [style=smallbodyfont]
-
-%D \macros
-%D {setuppapersize, setuplayout}
-%D
-%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.
-
-\setuppapersize
- [S6][S6]
-
-\setuplayout
- [backspace=1cm,
- topspace=1cm,
- margin=0pt,
- header=0pt,
- footer=0pt,
- bottomdistance=.875cm,
- bottom=1cm,
- width=fit,
- height=fit]
-
-%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
-
-\setupwhitespace
- [medium]
-
-\setuptyping
- [margin=standard]
-
-%D \macros
-%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.
-
-\definecolor [BackgroundColor] [r=.8, g=.8, b=.8]
-\definecolor [OrnamentColor] [r= 0, g=.7, b=.4]
-
-\setupcolors
- [state=start]
-
-%D \macros
-%D {setupinteraction, setupinteractionscreen}
-%D
-%D We still have to enable interaction mode. We go full
-%D screen!
-
-\setupinteraction
- [state=start,
- color=OrnamentColor,
- contrastcolor=OrnamentColor]
-
-\setupinteractionscreen
- [option=max,
- width=fit,
- height=fit]
-
-%D \macros
-%D {setupitemize}
-%D
-%D And why not bring some color in itemizations too?
-
-\setupitemize
- [color=OrnamentColor]
-
-%D \macros
-%D {defineoverlay, setupbackgrounds}
-%D
-%D The navigational elements and the backgrounds are
-%D provided by \METAPOST.
-%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.
-
-\startuniqueMPgraphic{PageBackground}
- fill unitsquare
- xyscaled(OverlayWidth,OverlayHeight)
- withcolor OverlayColor ;
- draw unitsquare
- xyscaled(OverlayWidth,OverlayHeight)
- enlarged (-2*OverlayLineWidth)
- withpen pencircle scaled OverlayLineWidth
- withcolor OverlayLineColor ;
-\stopuniqueMPgraphic
-
-\defineoverlay
- [PageBackground]
- [\uniqueMPgraphic{PageBackground}]
-
-\setupbackgrounds
- [page]
- [background=PageBackground,
- backgroundcolor=BackgroundColor,
- rulethickness=.125cm,
- framecolor=OrnamentColor]
-
-%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.
-
-\startuniqueMPgraphic{TextBackground}
- draw unitsquare
- xyscaled(OverlayWidth,OverlayHeight)
- enlarged (4*OverlayLineWidth)
- withpen pencircle scaled OverlayLineWidth
- withcolor OverlayLineColor ;
-\stopuniqueMPgraphic
-
-\defineoverlay
- [TextBackground]
- [\uniqueMPgraphic{TextBackground}]
-
-\defineoverlay
- [NextPage]
- [\overlaybutton{nextpage}]
-
-\setupbackgrounds
- [text]
- [background={TextBackground,NextPage},
- backgroundcolor=BackgroundColor,
- rulethickness=.0625cm,
- framecolor=OrnamentColor]
-
-%D \macros
-%D {setupinteractionmenu,startinteractionmenu}
-%D
-%D At the bottom of the screen, we show three buttons. These
-%D direct us to the previous or next jump or exit the document.
-
-\setupMPvariables[RightArrow][height=\bottomheight]
-\setupMPvariables[LeftArrow] [height=\bottomheight]
-\setupMPvariables[Circle] [height=\bottomheight]
-\setupMPvariables[UpArrow] [height=\bottomheight]
-
-\startuniqueMPgraphic{RightArrow}{height}
- z1=(0,0) ; z2=(\MPvar{height},.5y3) ; z3=(0,\MPvar{height}) ;
- drawfill z1--z2--z3--cycle
- withpen pencircle scaled (\MPvar{height}/5)
- withcolor \MPcolor{OrnamentColor} ;
-\stopuniqueMPgraphic
-
-\startuniqueMPgraphic{LeftArrow}{height}
- z1=(\MPvar{height},0) ; z2=(0,.5y3) ; z3=(\MPvar{height},\MPvar{height}) ;
- drawfill z1--z2--z3--cycle
- withpen pencircle scaled (\MPvar{height}/5)
- withcolor \MPcolor{OrnamentColor} ;
-\stopuniqueMPgraphic
-
-\startuniqueMPgraphic{Circle}{height}
- drawfill fullcircle scaled \MPvar{height}
- withpen pencircle scaled (\MPvar{height}/5)
- withcolor \MPcolor{OrnamentColor} ;
-\stopuniqueMPgraphic
-
-\startuniqueMPgraphic{UpArrow}{height}
- z1=(0,0) ; z2=(\MPvar{height},0) ; z3=(.5x2,\MPvar{height}) ;
- drawfill z1--z2--z3--cycle
- withpen pencircle scaled (\MPvar{height}/5)
- withcolor \MPcolor{OrnamentColor} ;
-\stopuniqueMPgraphic
-
-\setupinteractionmenu
- [bottom]
- [state=start,
- frame=off,
- width=.3\textwidth,
- height=\bottomheight]
-
-\setupinteraction
- [menu=on]
-
-\def\WhateverButton
- {\doifreferencefoundelse{Whatever}
- {\raw [Whatever] \uniqueMPgraphic{UpArrow} \\}
- {}}
-
-\startinteractionmenu[bottom]
- \but [Topics] \\ % secret button
- \hfill
- \WhateverButton % user specific
- \kern2\bottomheight
- \raw [previouspage] \uniqueMPgraphic{LeftArrow} \\
- \kern.5\bottomheight
- \raw [CloseDocument] \uniqueMPgraphic{Circle} \\
- \kern.5\bottomheight
- \raw [nextpage] \uniqueMPgraphic{RightArrow} \\
- \kern.5\bottomheight
-\stopinteractionmenu
-
-%D \macros
-%D {TitlePage, Topics, Topic, Subject}
-%D
-%D A presentation after loading this module looks like:
-%D
-%D \starttyping
-%D \TitlePage {About Whatever\\Topics}
-%D
-%D \Topics {Todays Talk}
-%D
-%D \Topic {Some topic}
-%D
-%D .....
-%D
-%D \Topic {Next Topic}
-%D
-%D .....
-%D \stoptyping
-
-%D \macros
-%D {StartTitlePage, TitlePage}
-%D
-%D The titlepage is rather simple and can be typeset in two
-%D ways:
-%D
-%D \starttyping
-%D \StartTitlePage
-%D text \\ text \\ text
-%D \StopTitlepage
-%D \stoptyping
-%D
-%D or as one||liner:
-%D
-%D \starttyping
-%D \TitlePage{text\\text\\text}
-%D \stoptyping
-%D
-%D The first alternative can be used for more complicated
-%D title pages.
-
-\def\StartTitlePage%
- {\startstandardmakeup
- \bfd\setupinterlinespace
- \setupalign[middle]
- \vfil
- \let\\=\vfil}
-
-\def\StopTitlePage%
- {\vfil\vfil\vfil
- \stopstandardmakeup}
-
-\def\TitlePage#1%
- {\StartTitlePage#1\StopTitlePage}
-
-%D \macros
-%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.
-
-\definehead [Topic] [chapter]
-\definehead [Subject] [section]
-
-\definehead [Nopic] [title]
-
-%D \macros
-%D {setuphead}
-%D
-%D We use our own command for typesetting the titles. We hide
-%D sectionnumbers from viewing. Each topic is followed by a
-%D list of subjects that belong to the topic.
-
-\setuphead
- [Topic, Nopic]
- [after={\blank[3*medium]},
- number=no,
- style=\tfb,
- page=yes,
- alternative=middle]
-
-\setuphead
- [Subject]
- [after=\blank,
- number=no,
- page=yes,
- continue=no,
- style=\tfa]
-
-%D \macros
-%D {setuplist}
-%D
-%D When found, the subject list is automatically placed
-%D after the topic head.
-
-\setuplist
- [Topic,Subject]
- [alternative=g,
- interaction=all,
- before=,
- after=]
-
-\setuplist
- [Topic]
- [criterium=all]
-
-\def\Topics#1%
- {\determinelistcharacteristics[Topic]
- \doifmode{*list}
- {\Nopic[Topics]{#1}
- \startcolumns
- \placelist[Topic]
- \stopcolumns}}
-
-\setuplist
- [Subject]
- [criterium=Topic]
-
-\def\Subjects%
- {\determinelistcharacteristics[Subject]
- \doifmode{*list}
- {\placelist[Subject]}}
-
-\setuphead
- [Topic]
- [after={\blank[3*medium]\Subjects}]
-
-\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/modules/mkii/s-pre-03.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-03.mkii
deleted file mode 100644
index 19a11d24e5d..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-03.mkii
+++ /dev/null
@@ -1,257 +0,0 @@
-%D \module
-%D [ file=s-pre-03,
-%D version=1998.09.06,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 3,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This is the third environment for typesetting interactive
-%D presentations. I used this style for a talk on \TEX\ and
-%D \JAVASCRIPT\ at \TUG98, mainly because I didn't want to
-%D use the same style three times. Therefore this is a rather
-%D simple, silly style.
-
-\usemodule[pre-general]
-
-%D \macros
-%D {setupbodyfont}
-%D
-%D We use a large bodyfont. Combined with the fancy
-%D background, this does not leave that much room for text, but
-%D presentations should use much text anyway.
-
-\startmode[asintended] \setupbodyfont[lbr] \stopmode
-
-\setupbodyfont[14.4pt]
-
-%D \macros
-%D {setuppapersize,setuplayout,setupinteractionscreen}
-%D
-%D The page dimensions are set to size \type {S6}, being
-%D 600pt by 450pt. We use wide margins and discard headers
-%D and footers. We also launch the document full screen.
-
-\setuppapersize
- [S6][S6]
-
-\setuplayout
- [width=middle,
- height=middle,
- topspace=75pt,
- backspace=100pt,
- header=0pt,
- footer=0pt]
-
-\setupinteractionscreen
- [option=max]
-
-%D \macros
-%D {setupcolors,definecolor}
-%D
-%D Next, color support is turned on and a dark red color is
-%D defined. Other red shades will be derived from this one
-%D color.
-
-\setupcolors
- [state=start]
-
-\definecolor [PageColor] [black]
-\definecolor [BackgroundColor] [s=.85]
-\definecolor [OrnamentColor] [r=.75]
-
-%D \macros
-%D {setupinteraction}
-%D
-%D We turn on interaction mode and use the same color for
-%D hyperlinks and redundant hyperlinks (the ones that point
-%D to the current page).
-
-\setupinteraction
- [state=start,
- contrastcolor=OrnamentColor,
- color=OrnamentColor]
-
-%D \macros
-%D {defineoverlay, setupbackgrounds}
-%D
-%D The joke in this presentation is the elliptical shape of
-%D which the bottom part includes a page indication.
-
-\defineoverlay
- [PageShape][\useMPgraphic{PageShape}]
-
-% \startuseMPgraphic{PageShape}
-% lin := 20pt ; off := .75lin ;
-% wid := \overlaywidth ; hei := \overlayheight ;
-% pos := \currentpage ; tot := \lastpage ;
-% path bb; bb := unitsquare xscaled wid yscaled hei ;
-% filldraw bb withcolor \MPcolor{PageColor} ;
-% pickup pencircle xscaled .5lin yscaled lin rotated 45 ;
-% pair r, t, l, b ;
-% r := (wid-off,.5hei) ; t := (.5wid,hei-off) ;
-% l := (off,.5hei) ; b := (.5wid,off) ;
-% 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} ;
-% if (pos>0) and (tot>0):
-% pair pa ; pa := point 5 of p ;
-% pair pb ; pb := point 7 of p ;
-% draw pa withcolor contrastcolor ;
-% draw pb withcolor contrastcolor ;
-% len := 2/tot ;
-% pair pa ; pa := point (5+len*pos) of p ;
-% pair pb ; pb := point (5+len*(pos-1)) of p ;
-% p := p cutafter pa ;
-% p := p cutbefore pb ;
-% draw p withcolor contrastcolor ;
-% fi ;
-% setbounds currentpicture to bb ;
-% \stopuseMPgraphic
-
-\startuseMPgraphic{PageShape}
- StartPage ;
- 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
- fill p withcolor \MPcolor{BackgroundColor} ;
- draw p withcolor \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
- withcolor contrastcolor ;
- fi ;
- StopPage ;
-\stopuseMPgraphic
-
-%D We use the viewer provided feature to go to the previous or
-%D next page.
-
-\defineoverlay[PrevButton][\overlaybutton{PreviousPage}]
-\defineoverlay[NextButton][\overlaybutton{NextPage}]
-
-\setupbackgrounds
- [page]
- [background={PageShape,PrevButton}]
-
-\setupbackgrounds
- [text][text]
- [background=NextButton]
-
-% or using hard coded next/prev pages:
-%
-% \defineoverlay[PrevButton][\overlaybutton{previouspage}]
-% \defineoverlay[NextButton][\overlaybutton{nextpage}]
-%
-% \setupbackgrounds[state=repeat]
-% \setupbackground[text][text][background=NextButton]
-%
-% or simply (using an repeated layer):
-%
-% \setupbackground[text][background=NextButton]
-
-%D \macros
-%D {definehead, setuphead}
-%D
-%D Like the other presentation styles, we use \type {\Topic}
-%D instead of \type {\chapters}. This time we don't provide
-%D an additional sectioning. So we have:
-%D
-%D \starttyping
-%D \TitlePage{How nice}
-%D
-%D \Topics{This is about ...}
-%D
-%D \Topic{The first one}
-%D
-%D \Topic{Another one}
-%D \stoptyping
-
-\definehead [Topic] [chapter]
-\definehead [Nopic] [title]
-
-\setuphead
- [Topic,Nopic]
- [after={\blank[3*medium]},
- number=no,
- style=\tfb,
- page=yes,
- alternative=middle]
-
-\setuplist
- [Topic]
- [alternative=g,
- interaction=all,
- before=,
- after=]
-
-\def\Subject
- {\Topic}
-
-%D The tables of contents is associated with \type
-%D {\Topics}.
-
-\def\Topics#1%
- {\Nopic[Topics]{#1}
- \placelist[Topic][criterium=all]}
-
-\def\Subjects
- {}
-
-%D Instead of \type {\TitlePage}, one can use the pair
-%D \type {\StartTitlePage} -- \type {\StopTitlePage}:
-%D
-%D \starttyping
-%D \StartTitlePage
-%D A Self Made Title
-%D \StopTitlePage
-%D \stoptyping
-
-\def\StartTitlePage%
- {\startstandardmakeup
- \bfd\setupinterlinespace
- \setupalign[middle]
- \vfil
- \def\\{\vfil\bfb\setupinterlinespace}}
-
-\def\StopTitlePage%
- {\vfil\vfil\vfil
- \stopstandardmakeup}
-
-\def\TitlePage#1%
- {\StartTitlePage#1\StopTitlePage}
-
-\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/modules/mkii/s-pre-04.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-04.mkii
deleted file mode 100644
index 088f4e510ed..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-04.mkii
+++ /dev/null
@@ -1,377 +0,0 @@
-%D \module
-%D [ file=s-pre-04,
-%D version=1998.09.06,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 4,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\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.
-
-\setupbodyfont[ams,pos,14.4pt]
-
-%D \macros
-%D {setupcolors,definecolor}
-%D
-%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 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.
-
-\setupcolors [state=start]
-
-\definecolor [NoneColor] [s=.6]
-\definecolor [GotoColor] [b=.6] \definecolor[blue] [GotoColor]
-\definecolor [ExitColor] [r=.6] \definecolor[red] [ExitColor]
-\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]
-
-%D \macros
-%D {setuppapersize}
-%D
-%D As usual, we take a screen oriented paper size:
-
-\setuppapersize
- [S6][S6]
-
-%D \macros
-%D {setuplayout,setupinteractionscreen}
-%D
-%D The layout definition fits into this $600\times450$ point
-%D area, but the dimensions are somewhat diffused by the text
-%D background offset.
-
-\setuplayout
- [width=530pt,
- height=400pt,
- header=0pt,
- footer=0pt,
- backspace=15pt,
- topspace=15pt,
- bottomdistance=15pt,
- bottom=10pt,
- margin=0pt,
- rightedgedistance=15pt,
- rightedge=30pt]
-
-\setupinteractionscreen
- [option=max]
-
-%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 will see that we have to compensate for that in the
-%D navigational areas.
-
-\setupbackgrounds
- [page]
- [background=color,
- backgroundcolor=PageColor]
-
-\setupbackgrounds
- [text][text]
- [background=color,
- backgroundcolor=TextColor,
- backgroundoffset=5pt]
-
-%D \macros
-%D {setupinteraction}
-%D
-%D For convenient navigation, we turn on interaction.
-
-\setupinteraction
- [state=start,
- menu=on,
- 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.
-
-\setupsubpagenumber
- [state=start,
- way=bytext]
-
-%D \macros
-%D {setupinteractionmenu}
-%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.
-
-\setupinteractionmenu
- [right]
- [state=start,
- frame=off,
- strut=no,
- offset=0pt,
- inbetween=,
- bottomoffset=-5pt,
- topoffset=-5pt]
-
-%D \macros
-%D {startinteractionmenu}
-%D
-%D The menu itself is not that spectacular. We use the
-%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.
-
-\startinteractionmenu[right]
- \setupinteraction[color=GotoColor]
- \but [previoussubpage] \Triangle {90}\framedwidth\interactioncolor \\
- \vskip10pt
- \but [nextsubpage] \Triangle{270}\framedwidth\interactioncolor \\
- \vfill
- \but [PreviousJump] \Triangle{180}\framedwidth{NoneColor} \\
- \vskip-5pt
- \but [NextJump] \Triangle {0}\framedwidth{NoneColor} \\
-\stopinteractionmenu
-
-%D \macros
-%D {setupinteractionbar}
-%D
-%D The interaction bar at the bottom is also larger than the
-%D normal width of the bottom area.
-
-\setupinteractionbar
- [alternative=f,
- width=\textwidth,
- height=\bottomheight,
- distance=10pt,
- color=NoneColor,
- contrastcolor=StepColor]
-
-%D \macros
-%D {setupbottomtexts}
-%D
-%D The bar is centered in the middle.
-
-\setupbottomtexts
- [\interactionbar]
-
-%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]}
-
-\setupbottomtexts
- [edge][][\CloseButton]
-
-%D \macros
-%D {definesymbol,setupitemize}
-%D
-%D Because some prominent things are rectangular or triangular,
-%D we prefer some different symbols in itemizations:
-
-\definesymbol[1][$\blacktriangleright$]
-\definesymbol[2][$\blacktriangledown$]
-\definesymbol[3][$\blacktriangleright$]
-\definesymbol[4][$\blacktriangledown$]
-
-\setupitemize[each][color=NoneColor]
-
-%D \macros
-%D {TitlePage,defineoverlay,button,setupalign,
-%D setupbackgrounds,setupinteraction,setupinteractionbar,
-%D startstandardmakeup,switchtobodyfont,setupinterlinespace}
-%D
-%D Now the main layout and navigational definitions are
-%D done, it makes sense to define and tune some structuring
-%D commands. First we build the titlepage.
-
-\defineoverlay [TitleGraphic] [\useMPgraphic{title}]
-\defineoverlay [NextPage] [\overlaybutton{nextpage}]
-
-\def\StartTitlePage
- {\setupbackgrounds[page][background={color,TitleGraphic,NextPage}]
- \setupbackgrounds[text][text][background=]
- \setupinteraction[menu=off]
- \setupinteractionbar[state=stop]
- \startstandardmakeup
- \switchtobodyfont[24pt]
- \bfd\setupinterlinespace
- \setupalign[middle]
- \vfil
- \let\\=\vfil}
-
-\def\StopTitlePage
- {\vfil\vfil\vfil
- \stopstandardmakeup
- \setupinteraction[menu=on]
- \setupinteractionbar[state=start]
- \setupbackgrounds[page][background=color]
- \setupbackgrounds[text][text][background=color]
- \setupsubpagenumber[reset]}
-
-\def\TitlePage#1%
- {\StartTitlePage#1\StopTitlePage}
-
-%D \macros
-%D {Topic, Nopic, Subject,
-%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.
-
-\definehead [Topic] [chapter]
-\definehead [Nopic] [title]
-\definehead [Subject] [section]
-
-\setuphead
- [Topic, Nopic]
- [after={\blank[3*medium]},
- number=no,
- style=\tfb,
- page=yes,
- alternative=middle]
-
-\setuphead
- [Subject]
- [after=\blank,
- number=no,
- page=yes,
- continue=no,
- style=\tfa]
-
-%D \macros
-%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 list is typeset in columns.
-
-\setuplist
- [Topic,Subject]
- [alternative=g,
- interaction=all,
- before=,
- after=]
-
-\setuplist
- [Topic]
- [criterium=all]
-
-\def\Topics#1%
- {\determinelistcharacteristics[Topic]
- \ifnum\utilitylistlength>0
- \Nopic[Topics]{#1}
- \ifnum\utilitylistlength>12
- \startcolumns
- \placelist[Topic]
- \stopcolumns
- \else
- \placelist[Topic]
- \fi
- \fi}
-
-\def\Subjects%
- {\placelist[Subject]}
-
-%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 ;
- fill (z1--z2--z3--cycle) rotated rot withcolor col ;
- currentpicture := currentpicture xysized (wid,wid) ;
- enddef ;
-\stopMPinclusions
-
-\setupMPvariables
- [triangle]
- [width=1cm,
- rotation=0,
- color=black]
-
-\startuniqueMPgraphic{triangle}{width,rotation,color}
- triangle(\MPvar{width},\MPvar{rotation},\MPvar{color}) ;
-\stopuniqueMPgraphic
-
-\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 ;
- y0 := uniformdeviate \overlayheight ;
- 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 :
- p := unitsquare xscaled sx yscaled sy ;
- else :
- 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 ;
- endfor ;
-\stopuseMPgraphic
-
-\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/modules/mkii/s-pre-05.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-05.mkii
deleted file mode 100644
index dcb3f5e81dc..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-05.mkii
+++ /dev/null
@@ -1,240 +0,0 @@
-%D \module
-%D [ file=s-pre-05,
-%D version=1998.12.12,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 5,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\usemodule[pre-general]
-
-%D As all styles sofar, this one has the same structuring
-%D commands.
-
-\startmode[asintended] \setupbodyfont[ludicaot] \stopmode
-
-\setupbodyfont[14.4pt]
-
-\setupcolors [state=start]
-
-\definecolor [BackgroundColor] [s=.95]
-\definecolor [OrnamentColor] [r=.6,g=.7,b=.8]
-
-\setuppapersize
- [S6][S6]
-
-\setuplayout
- [width=430pt,
- height=400pt,
- header=0pt,
- footer=0pt,
- margin=0pt,
- backspace=25pt,
- topspace=25pt,
- rightedgedistance=20pt,
- rightedge=110pt]
-
-\setupinteractionscreen
- [option=max]
-
-\setupbackgrounds
- [state=repeat]
-
-\setupbackgrounds
- [page]
- [backgroundcolor=white]
-
-\setupbackgrounds
- [text][text]
- [background={HashFrameA,NextPage},
- backgroundoffset=20pt]
-
-\defineoverlay
- [HashFrameA]
- [\useMPgraphic{HashFrameA}]
-
-\defineoverlay
- [HashFrameB]
- [\useMPgraphic{HashFrameB}]
-
-\setupinteraction
- [state=start,
- menu=on,
- color=OrnamentColor,
- contrastcolor=OrnamentColor]
-
-%D Watch how we use a list alternative that matches the
-%D menu.
-
-\setupinteractionmenu
- [right]
- [background=HashFrameB,
- style=smallbold,
- frame=off,
- offset=10pt,
- height=35pt,
- before=,
- after=,
- inbetween=\endgraf,
- width=\rightedgewidth]
-
-\startinteractionmenu[right]
- \placelist
- [Topic]
- [criterium=all,
- alternative=right,
- maxwidth=.8\rightedgewidth,
- interaction=all,
- before=,
- after=]
- \vfill
- \setupinteractionmenu
- [right]
- [height=30pt]
- \but [CloseDocument] Close \\
-\stopinteractionmenu
-
-\setupwhitespace
- [big]
-
-\setupblank
- [big]
-
-%D \macros
-%D {TitlePage}
-%D
-%D Now the main layout and navigational definitions are
-%D done, it makes sense to define and tune some structuring
-%D commands. First we build the titlepage.
-
-\defineoverlay [TitleGraphic] [\useMPgraphic{TitleGraphic}]
-\defineoverlay [NextPage] [\overlaybutton{forward}]
-
-\unexpanded\def\StartTitlePage
- {\setupbackgrounds[page][background={color,TitleGraphic,NextPage}]
- \setupbackgrounds[text][text][background=]
- \setupinteraction[menu=off]
- \setupinteractionbar[state=stop]
- \setuplayout[width=550pt,rightedge=0pt]
- \startstandardmakeup
- \switchtobodyfont[24pt]
- \bfd\setupinterlinespace
- \setupalign[middle]
- \vfil
- \let\\=\vfil}
-
-\unexpanded\def\StopTitlePage
- {\vfil\vfil\vfil
- \stopstandardmakeup
- \setuplayout[width=430pt,rightedge=110pt]
- \setupinteraction[menu=on]
- \setupinteractionbar[state=start]
- \setupbackgrounds[page][background=color]
- \setupbackgrounds[text][text][background={HashFrameA,NextPage}]}
-
-\unexpanded\def\TitlePage#1%
- {\StartTitlePage#1\StopTitlePage}
-
-%D \macros
-%D {Topics,Subjects}
-%D
-%D Since the lists are in the menu, we don't honor list
-%D placement macros.
-
-\unexpanded\def\Topics#1{}
-\unexpanded\def\Subjects{}
-
-%D \macros
-%D {Topic, Nopic, Subject}
-%D
-%D Since t his style is meant for rather flat structured
-%D documents, only \type {\Topic} makes sense.
-
-\definehead [Topic] [chapter]
-\definehead [Nopic] [title]
-\definehead [Subject] [section]
-
-\setuphead
- [Topic, Nopic]
- [after={\blank[3*medium]},
- number=no,
- style=\tfb,
- page=yes,
- alternative=middle]
-
-\setuphead
- [Subject]
- [after=\blank,
- number=no,
- page=yes,
- continue=no,
- style=\tfa]
-
-%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 delta = ((uniformdeviate .5offset) + .25offset) enddef ;
- x1 := offset ; y1 := offset ; x2 := width-offset ; y2 := height-offset ;
-
- drawoptions(withpen pencircle scaled linewidth withcolor \MPcolor{BackgroundColor}) ;
- fill z1--(x2,y1)--z2--(x1,y2)--cycle ;
-
- 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();
- setbounds currentpicture to unitsquare xscaled width yscaled height ;
- enddef ;
-\stopMPinclusions
-
-\startuseMPgraphic{HashFrameA}
- random_hash_frame(OverlayWidth,OverlayHeight,15pt,2pt) ;
-\stopuseMPgraphic
-
-\startuseMPgraphic{HashFrameB}
- random_hash_frame(OverlayWidth,OverlayHeight, 5pt,2pt) ;
-\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 ;
-\stopuseMPgraphic
-
-\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/modules/mkii/s-pre-09.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-09.mkii
deleted file mode 100644
index a20b9f31acd..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-09.mkii
+++ /dev/null
@@ -1,380 +0,0 @@
-%D \module
-%D [ file=s-pre-09,
-%D version=unknown,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 9,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D I made this style when I had to give a presentation on
-%D the \MAPS\ bibliography production for several user group
-%D meetings. This style is rather tuned for combinations of
-%D examples and explanations. The colors match the \MAPS\
-%D bibliography colors.
-
-\startmode[asintended] \setupbodyfont[lbr] \stopmode
-
-\setupbodyfont[14.4pt]
-
-%D A couple of years later, in 2001 this style was documented
-%D and made public. While documenting, I also changed box
-%D building on top of overlays into the now available layer
-%D positioning. So, this styles demonstrates quite some
-%D tricks.
-
-\setuppapersize
- [S6][S6]
-
-\setuplayout
- [topspace=0cm,
- backspace=0cm,
- header=0pt,
- footer=0pt,
- width=middle,
- height=middle]
-
-%D Local environments can be set by using the setups commands.
-%D For downward compatibility, we keep supporting the \type
-%D {\...Settings} hooks. Using local environments is seldom
-%D needed.
-
-\let\TextSettings \empty
-\let\SampleSettings\empty
-
-\startsetups [text] \TextSettings \stopsetups
-\startsetups [sample] \SampleSettings \stopsetups
-
-%D The dimensions are kind of fixed.
-
-\def\FrameWidth {448pt}
-\def\FrameHeight {348pt}
-\def\FrameOffset {24pt}
-\def\FrameSkip {12pt}
-
-%D But they {\em can} and {\em will} be changed.
-
-\def\FrameWidth {408pt}
-\def\FrameHeight {318pt}
-
-%D The funny values come from the $3:4$ display aspect
-%D ratio.
-
-\setupcolors
- [state=start]
-
-\definecolor[PageColor] [s=.40]
-\definecolor[TextColor] [s=.90]
-\definecolor[InteractionColor][r=.40]
-\definecolor[LineColor] [r=.60,g=.60]
-
-%D Of course we go interactive and since we will probably
-%D open other documents, we make sure that the viewer opens a
-%D new window.
-
-\setupinteraction
- [color=InteractionColor,
- contrastcolor=LineColor,
- display=new,
- state=start]
-
-\setupinteractionscreen
- [option=max]
-
-%D Before we come to the real macros, we do a little bit of
-%D tuning.
-
-\setupitemize
- [1][packed]
-
-\setuptyping
- [blank=medium]
-
-%D Apart from the titlepage, the page gets a simple colored
-%D background. Later we will activate the background.
-
-\setupbackgrounds
- [page]
- [backgroundcolor=PageColor]
-
-%D Everything gets frames by a nice \METAPOST\ frame.
-
-\defineoverlay [background] [\uniqueMPgraphic{background}]
-
-\startuniqueMPgraphic{background}
- path p ; color c, w, d ;
- c := \MPcolor{PageColor} ;
- w := \MPcolor{TextColor} ;
- d := \MPcolor{LineColor} ;
- p := unitsquare xscaled OverlayWidth yscaled OverlayHeight ;
- pickup pencircle scaled (1.5*\FrameSkip) ;
- draw p withcolor c ;
- pickup pencircle scaled \FrameSkip ;
- fill p withcolor w ;
- draw p withcolor d ;
-\stopuniqueMPgraphic
-
-%D We will present samples and explanation pair||wise, so
-%D we need a hyperlink that skips a page.
-
-\defineoverlay [nextpage] [\overlaybutton{nextpage}]
-\defineoverlay [previouspage] [\overlaybutton{previouspage}]
-\defineoverlay [skippage] [\overlaybutton{page(+2)}]
-
-%D Layers are normally used to position multiple content on
-%D a specific overlay. Here we will use them to position
-%D only and since the samples and text will swap place, we
-%D will use quite a few layers.
-
-\defineoverlay [text] [\composedlayer{text}]
-\defineoverlay [sample] [\composedlayer{sample}]
-\defineoverlay [common] [\composedlayer{common}]
-
-%D There are three positions. When combined, the sample and
-%D text windows overlap, otherwise the lone window is
-%D centered. We could have used one layer and reversed the
-%D order by setting the \type {direction} parameter, but
-%D this approach is more readable.
-
-\definelayer
- [text]
- [x=\makeupwidth,y=\makeupheight,location=lt,
- hoffset=-\FrameSkip,voffset=-\FrameSkip]
-
-\definelayer
- [sample]
- [hoffset=\FrameSkip,voffset=\FrameSkip]
-
-\definelayer
- [common]
- [x=.5\makeupwidth,y=.5\makeupheight,location=c]
-
-%D The topic is put in the lower right corner of the text
-%D window.
-
-\defineoverlay [topic] [\composedlayer{topic}]
-
-\definelayer
- [topic]
- [x=\FrameWidth,y=\FrameHeight,location=lt,
- hoffset=-\FrameOffset,voffset=-\FrameSkip]
-
-%D The topic is put in a framed box. That way we can make
-%D sure that it gets a background, which looks better when
-%D it covers something else. Otherwise we could have stuct
-%D to:
-%D
-%D \starttyping
-%D \def\Topic#1%
-%D {\setlayer[topic]{\color[PageColor]{\bfb\setstrut#1}}}
-%D \stoptyping
-%D
-%D But, we go for the nice alternative:
-
-\def\Topic#1%
- {\doifsomething{#1}
- {\setlayer [topic]
- {\bfb\setstrut
- \inframed
- [frame=off,foregroundcolor=PageColor,offset=0pt,
- background=color,backgroundcolor=TextColor]
- {#1}}}}
-
-%D The sample as well as the explanation will be collected in
-%D a buffer. That way we can reuse the content. We could
-%D have used a box instead, but can we be sure that the content
-%D is not adapting itself? So, buffers we use.
-
-\resetbuffer[sample]
-\resetbuffer[text]
-
-%D Both the sample and explanation are kind of windowed.
-
-\defineframedtext
- [SampleText]
- [width=\FrameWidth,height=\FrameHeight,offset=\FrameOffset,
- frame=off,align=normal,strut=no,before=,after=,
- background={background,nextpage}]
-
-%D We safe some keying in by combining things in one macro.
-
-\def\DoSampleText#1#2#3% kind layer overlays
- {\setupframedtexts[SampleText][background={background,#3}]
- \setlayer[#2]
- {\startSampleText[none]
- \setups[#1]
- \getbuffer[#1]
- \stopSampleText}}
-
-\def\StartSample{\dostartbuffer[sample][StartSample][StopSample]}
-\def\StartText {\dostartbuffer[text] [StartText] [StopText]}
-
-%D The following definitions apply at the outer level.
-
-\def\StopSample
- {\startstandardmakeup
- \DoSampleText{sample}{common}{nextpage}
- \stopstandardmakeup
- \resetbuffer[sample]}
-
-\def\StopText
- {\startstandardmakeup
- \DoSampleText{text}{common}{topic,nextpage}
- \stopstandardmakeup
- \resetbuffer[text]}
-
-\setupbackgrounds[page][background={color,nextpage}]
-\setupbackgrounds[text][background=common]
-
-%D When we combine sample and text, we get slightly
-%D different definitions. As you can see we generate two
-%D pages. Watch how we manipulate the order of the
-%D overlays and teh nature of the buttons. Here data
-%D abstraction really pays off.
-
-\def\StartIdea
- {\bgroup
- \let\StopSample\relax
- \let\StopText \relax}
-
-\def\StopIdea%
- {\setupbackgrounds[page][background={color,skippage}]
- \setupbackgrounds[text][background={text,sample}]
- \startstandardmakeup
- \DoSampleText{sample}{sample}{previouspage}
- \DoSampleText{text} {text} {topic,nextpage}
- \stopstandardmakeup
- \setupbackgrounds[page][background={color,nextpage}]
- \setupbackgrounds[text][background={sample,text}]
- \startstandardmakeup
- \DoSampleText{sample}{sample}{previouspage}
- \DoSampleText{text} {text} {topic,nextpage}
- \stopstandardmakeup
- \egroup}
-
-%D The rest of the definitions takes care of the title page.
-%D Please don't steal this one for your own documents.
-
-\defineoverlay[joke] [\useMPgraphic{joke}{n=0}] % not to be changed!
-
-\startuseMPgraphic{joke}{n}
- StartPage ;
- path p, q ; numeric w ; pair xy ;
- set_grid(OverlayWidth,OverlayHeight,OverlayWidth/8,OverlayHeight/8) ;
- if \MPvar{n}=1 :
- p := fulldiamond ; fill Page withcolor \MPcolor{TextColor} ;
- else :
- p := fullsquare ; fill Page withcolor \MPcolor{PageColor} ;
- fi ;
- forever :
- xy := center Page randomized (OverlayWidth,OverlayHeight) ;
- if new_on_grid(xpart xy, ypart xy) :
- q := (p xyscaled (OverlayWidth/5,OverlayHeight/5))
- randomized (\FrameSkip,\FrameSkip)
- shifted xy ;
- w := (\FrameSkip) randomized (\FrameSkip/2) ;
- draw q withcolor \MPcolor{PageColor} withpen pencircle scaled (1.5w) ;
- fill q withcolor \MPcolor{TextColor} ;
- draw q withcolor \MPcolor{LineColor} withpen pencircle scaled ( w) ;
- fi ;
- exitif grid_full ;
- endfor ;
- StopPage ;
-\stopuseMPgraphic
-
-\defineoverlay[fuzzy][\useMPgraphic{fuzzy}]
-
-\startuseMPgraphic{fuzzy}
- path p ; numeric w ;
- p := (fullsquare xyscaled (OverlayWidth,OverlayHeight))
- randomized (\FrameSkip,\FrameSkip) ;
- w := (\FrameSkip) randomized (\FrameSkip/2) ;
- draw p withcolor \MPcolor{PageColor} withpen pencircle scaled (1.5w) ;
- fill p withcolor \MPcolor{TextColor} ;
- draw p withcolor \MPcolor{LineColor} withpen pencircle scaled ( w) ;
-\stopuseMPgraphic
-
-%D This time we use a fit window, but with a slightly randomized
-%D frame, our trademark so to say.
-
-\def\StartTitlePage
- {\bgroup
- \setupbackgrounds[page][background={joke,nextpage}]
- \startstandardmakeup
- \switchtobodyfont[big]
- \setupframedtexts
- [SampleText]
- [background=fuzzy,
- foregroundcolor=PageColor,
- width=fit,
- height=fit,
- align=middle]
- \startSampleText[middle]
- \bfd\setupinterlinespace
- \def\\{\bfb\setupinterlinespace\vfil\def\\{\vfil}}}
-
-\def\StopTitlePage
- {\stopSampleText
- \stopstandardmakeup
- \egroup}
-
-\def\TitlePage#1%
- {\StartTitlePage#1\StopTitlePage}
-
-%D Let's nill some error prone presentation macros.
-
-\let\Subject \Topic
-\let\Topics \gobbleoneargument
-\let\Subjects \relax
-
-%D We will avoid \quote {overfull} messages.
-
-\dontcomplain
-
-\doifnotmode{demo}{\endinput}
-
-%D The (rather silly) demo section.
-
-\starttext
-
-\setupbodyfont[12pt]
-
-\TitlePage{Quotes, Quotes\\and more quotes}
-
-\StartIdea
- \StartSample
- \input knuth \par
- \StopSample
- \StartText
- \Topic{Tufte}
- \input tufte \par
- \StopText
- \StopIdea
-
-\StartIdea
- \StartSample
- \input materie \par
- \StopSample
- \StartText
- \input reich \par
- \StopText
-\StopIdea
-
-\StartText
- \input tufte \par
-\StopText
-
-\StartIdea
- \StartSample
- \input knuth \par
- \StopSample
- \StartText
- \input tufte \par
- \StopText
-\StopIdea
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-pre-10.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-10.mkii
deleted file mode 100644
index a92e5af01c5..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-10.mkii
+++ /dev/null
@@ -1,308 +0,0 @@
-%D \module
-%D [ file=s-pre-10,
-%D version=unknown,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 10,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This style is derived from the ninth style, which was
-%D used first at \EUROTEX\ 99 and later at \TUG\ 2000. This
-%D alternative build up a page.
-
-\startmode [demo]
- \disablemode[demo] \usemodule[pre-09] \enablemode[demo]
-\stopmode
-
-\startnotmode [demo]
- \usemodule[pre-09]
-\stopnotmode
-
-%D We use blue colors instead of yellow ones. Since we have
-%D used symbolic names, we can easily overload the existing
-%D scheme.
-
-\definecolor[LineColor][r=.40,g=.40,b=1.00]
-
-%D Here we don't use fixed dimensions, but fit the sample
-%D windows and derive the text windows's width from this one.
-
-\setupframedtexts
- [SampleText]
- [width=fit,height=fit,
- background={background,nextpage}]
-
-%D The topic goes to the top right corner of the screen which
-%D means that it is positioned left down to the reference
-%D point. Watch how we make data on this layer (here only
-%D the topic but it can be more) persistent.
-
-\setuplayer
- [topic]
- [y=0pt,x=\makeupwidth,location=lb,state=repeat,
- hoffset=-\FrameSkip,voffset=\FrameSkip]
-
-%D Clicking on the page brings us back.
-
-\setupbackgrounds
- [page]
- [background={previouspage,color,topic}]
-
-%D All layers end up on the text area. This could have been
-%D the page area too since these have the same dimensions.
-
-\setupbackgrounds
- [text]
- [background={common,sample,text}]
-
-%D Because we build up the text window step by step, we will
-%D separate the entries by white space.
-
-\startsetups [always]
- \setupwhitespace[big]
- \setupblank[big]
-\stopsetups
-
-%D The \type {\Topic} commands can be simplified to:
-
-\def\Topic#1%
- {\resetlayer[topic]
- \setlayer[topic]{\bfb\setstrut\color[TextColor]{#1}}}
-
-%D We also provide a way to erase the topic.
-
-\def\NoTopic
- {\resetlayer[topic]}
-
-%D We have to redefine the structuring commands to support
-%D the resetting of buffer counters.
-
-\newcounter\TextN
-
-\def\StartSample
- {\doglobal\newcounter\TextN
- \dostartbuffer[sample][StartSample][StopSample]}
-
-\def\StartText
- {\doglobal\newcounter\TextN
- \dostartbuffer[text][StartText][StopText]}
-
-\def\StartSubText
- {\doglobal\increment\TextN
- \dostartbuffer[text-\TextN][StartSubText][StopSubText]}
-
-\def\StopText
- {\startstandardmakeup
- \DoSampleText{text}{common}{nextpage}
- \stopstandardmakeup}
-
-\def\StopSubText
- {\startstandardmakeup
- \DoSampleText{text}{common}{nextpage}
- \stopstandardmakeup}
-
-%D The \type {\DoSampleText} command is adapted to support
-%D addition of subtexts (each subtext goes into its own
-%D buffer).
-
-\def\DoSampleText#1#2#3%
- {\setupframedtexts[SampleText][background={background,#3}]
- \bgroup
- \setups[#1]%
- \setups[always]%
- \setbox\nextbox=\hbox
- {\startSampleText[none]
- \getbuffer[#1]\par
- \doif{#1}{text}
- {\dorecurse{\TextN}{\getbuffer[text-\recurselevel]\par}}
- \stopSampleText}
- \xdef\SampleTextWidth{\the\wd\nextbox}
- \setlayer[#2]{\box\nextbox}%
- \egroup}
-
-%D Since we are no longer swapping windows, we end up with a
-%D much simplier \type {\Stopidea} macro. We don't reset
-%D samples at the inner level.
-
-\def\StartIdea%
- {\bgroup
- \let\StopSample \relax
- \let\StopText \relax
- \let\StopSubText\relax
- \def\StartSample{\dostartbuffer[sample][StartSample][StopSample]}}
-
-\def\StopIdea%
- {\startstandardmakeup
- \DoSampleText{sample}{sample}{nextpage}
- \SetTextWidth
- \DoSampleText{text} {text} {nextpage}
- \stopstandardmakeup
- \egroup}
-
-%D Here we determine the width of the text window. It is
-%D derived from the width of the sample and stays the same
-%D within a sequence.
-
-\def\SetTextWidth
- {\ifnum\TextN<1 % yes or no, may change
- \scratchdimen=\makeupwidth
- \advance\scratchdimen by -\SampleTextWidth
- \advance\scratchdimen by \FrameSkip
- \xdef\SampleWidth{\the\scratchdimen}%
- \fi
- \setupframedtexts
- [SampleText]
- [width=\SampleWidth]}
-
-%D We use the (already implemented) second alternative of
-%D the titlepage graphic. Please don't change this.
-
-\defineoverlay[joke] [\useMPgraphic{joke}{n=1}] % not to be changed !
-
-\doifnotmode{demo}{\endinput}
-
-%D The demo section. The original presentation uses proper
-%D graphics and has better spacing.
-
-\def\SomeSymbol#1#2{\definedfont[ContextNavigation at #1]\char#2}
-
-\setupcombinations[distance=\FrameOffset,inbetween=\vskip\FrameOffset]
-
-\starttext
-
-\TitlePage{Some Famous Symbols}
-
-\Topic{Symbols}
-
-\StartSample
- \startcombination[2*2]
- {\SomeSymbol{5cm}{1}} {}
- {\SomeSymbol{5cm}{3}} {}
- {\SomeSymbol{5cm}{2}} {}
- {\SomeSymbol{5cm}{4}} {}
- \stopcombination
-\StopSample
-
-\Topic{Previous}
-
-\StartIdea
- \StartSample
- \SomeSymbol{7cm}{1}
- \StopSample
- \StartText
- This symbol can be used to indicate a hyperlink to a
- previous page.
- \StopText
-\StopIdea
-
-\StartIdea
- \StartSubText
- As one can expect there is also a symbol for going to
- the next page.
- \StopSubText
-\StopIdea
-
-\Topic{Previous}
-
-\StartIdea
- \StartSample
- \SomeSymbol{9cm}{2}
- \StopSample
- \StartText
- This symbol is actually just a mirrored version of the
- first symbol we showed.
- \StopText
-\StopIdea
-
-\NoTopic
-
-\StartText
- Is this nice or not?
-\StopText
-
-\Topic{First and Last}
-
-\StartSample
- \SomeSymbol{11cm}{3}
-\StopSample
-
-\StartSample
- \SomeSymbol{11cm}{4}
-\StopSample
-
-\StartIdea
- \StartSample
- \SomeSymbol{5cm}{3}
- \StopSample
- \StartText
- A few screens back, we saw this symbol.
- \StopText
-\StopIdea
-
-\StartIdea
- \StartSubText
- This symbol represents the beginning of something.
- \StopSubText
-\StopIdea
-
-\StartIdea
- \StartSample
- \SomeSymbol{5cm}{4}
- \StopSample
- \StartSubText
- Just like this one represents an end.
- \StopSubText
-\StopIdea
-
-\StartIdea
- \StartSubText
- They look just like the symbols found on audio and
- video players.
- \StopSubText
-\StopIdea
-
-\Topic{Summary}
-
-\StartIdea
- \StartSample
- \SomeSymbol{6cm}{1}
- \StopSample
- \StartText
- So we have a symbol for previous \unknown
- \StopText
-\StopIdea
-
-\StartIdea
- \StartSample
- \SomeSymbol{6cm}{2}
- \StopSample
- \StartSubText
- \unknown\ and one for next \unknown
- \StopSubText
-\StopIdea
-
-\StartIdea
- \StartSample
- \SomeSymbol{6cm}{3}
- \StopSample
- \StartSubText
- \unknown\ and yet another for first \unknown
- \StopSubText
-\StopIdea
-
-\StartIdea
- \StartSample
- \SomeSymbol{6cm}{4}
- \StopSample
- \StartSubText
- \unknown\ and of course for last.
- \StopSubText
-\StopIdea
-
-\stoptext
-
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-pre-11.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-11.mkii
deleted file mode 100644
index 0c445054faf..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-11.mkii
+++ /dev/null
@@ -1,220 +0,0 @@
-%D \module
-%D [ file=s-pre-11,
-%D version=1999.08.20,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 11,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\setuppapersize
- [S6][S6]
-
-\setuplayout
- [topspace=0cm,
- backspace=0cm,
- header=0pt,
- footer=0pt,
- width=middle,
- height=middle]
-
-\setupbodyfont
- [14.4pt,lbr]
-
-\setupcolors
- [state=start]
-
-\setupinteraction
- [click=no,
- display=new,
- state=start]
-
-\setupinteractionscreen
- [option=max]
-
-\unexpanded\def\SomeShape
- {\resetMPdrawing
- \startMPdrawing
- path p[], q[] ; pair a, b ;
- StartPage ;
- \stopMPdrawing
- \dorecurse{\CurrentTopic}
- {\startMPdrawing
- initialize_box(\MPpos{topic-\realfolio-\recurselevel}) ;
- p[\recurselevel] := tensecircle (wxy,hxy,.25cm) shifted cxy ;
- fill p[\recurselevel] withcolor .9white ;
- pickup pencircle scaled .25cm ;
- if \recurselevel = \CurrentTopic :
- draw p[\recurselevel] withcolor \MPcolor{ShowColor} ;
- else :
- draw p[\recurselevel] withcolor \MPcolor{DoneColor} ;
- fi ;
- \stopMPdrawing}%
- \dorecurse{\CurrentMaxItem}
- {\startMPdrawing
- initialize_box(\MPpos{item-\realfolio-\recurselevel}) ;
- linewidth := .25cm ;
- q[\recurselevel] := tensecircle (wxy,hxy,linewidth) shifted cxy ;
- fill q[\recurselevel] withcolor .9white ;
- pickup pencircle scaled linewidth ;
- if \recurselevel = \CurrentMaxItem :
- draw q[\recurselevel] withcolor \MPcolor{ShowColor} ;
- else :
- draw q[\recurselevel] withcolor \MPcolor{DoneColor} ;
- fi ;
- \stopMPdrawing}%
- \dostepwiserecurse{2}{\CurrentTopic}{1}
- {\startMPdrawing
- draw
- rt point 3 of p[\recurselevel-1] --
- lft point 7 of p[\recurselevel]
- withcolor \MPcolor{ArrowColor} ;
- \stopMPdrawing}%
- \dostepwiserecurse{2}{\CurrentMaxItem}{1}
- {\startMPdrawing
- draw
- bot point 9 of q[\recurselevel-1] --
- top point 5 of q[\recurselevel]
- withcolor \MPcolor{ArrowColor} ;
- \stopMPdrawing}%
- \startMPdrawing
- draw Page
- withpen pencircle scaled .5cm
- withcolor \MPcolor{EdgeColor} ;
- StopPage ;
- \stopMPdrawing
- \MPdrawingdonetrue
- \getMPdrawing}
-
-\unexpanded\def\TitlePage#1%
- {\startstandardmakeup
- \setupalign[middle]
- \def\\{\vfil\bfb\setupinterlinespace}
- \bfd\setupinterlinespace
- \vfil#1\vfil\vfil
- \stopstandardmakeup}
-
-\definecolor[PageColor][r=.5,g=.4,b=.3]
-\definecolor[LineColor][r=.7,g=.6,b=.5]
-
-\definecolor[PageColor] [s=.60]
-\definecolor[ShowColor] [r=.40]
-\definecolor[EdgeColor] [g=.40]
-\definecolor[DoneColor] [r=.40,g=.40]
-\definecolor[ArrowColor] [b=.40]
-\definecolor[LineColor] [r=.60,g=.60]
-\definecolor[GotoColor] [ArrowColor]
-
-\setupinteraction[color=GotoColor,contrastcolor=GotoColor]
-
-\defineoverlay [shape] [\SomeShape]
-\defineoverlay [next] [\overlaybutton{forward}] % [{nextpage}]
-
-\setupbackgrounds
- [page]
- [background={color,next,shape},
- backgroundcolor=PageColor]
-
-\doglobal\newcounter\CurrentMaxItem
-\doglobal\newcounter\CurrentItem
-\doglobal\newcounter\CurrentTopic
-
-\unexpanded\def\StartIdea
- {\doglobal\newcounter\CurrentItem}
-
-\unexpanded\def\StartTopic
- {\doglobal\increment\CurrentTopic
- \dostartbuffer[topic-\CurrentTopic][StartTopic][StopTopic]}
-
-\unexpanded\def\StopIdea
- {\dorecurse{\CurrentItem}
- {\let\CurrentMaxItem\recurselevel
- \doStopIdea}}
-
-\unexpanded\def\doStopIdea
- {\startstandardmakeup
- \dontcomplain
- \vskip.875cm
- \hbox to \makeupwidth
- {\hfill
- \dorecurse{\CurrentTopic}
- {\edef\Topic{topic-\realfolio-\recurselevel}%
- \hpos
- {\Topic}
- {\framed
- [frame=off,align=middle,offset=.25cm]
- {\getbuffer[topic-\recurselevel]}}%
- \ifnum\recurselevel<\CurrentTopic
- \hskip.875cm
- \fi}%
- \hfill}
- \vskip.875cm
- \vfilll
- \dorecurse{\CurrentMaxItem}
- {\edef\Item{item-\realfolio-\recurselevel}
- \hbox to \makeupwidth
- {\hfill
- \hpos
- {\Item}
- {\framed
- [width=.75\makeupwidth,
- frame=off,
- align=middle,offset=.125cm]
- {\getbuffer[item-\recurselevel]}}%
- \hfill}
- \vskip.875cm}
- \vfilll
- \stopstandardmakeup}
-
-\unexpanded\def\StartItem
- {\doglobal\increment\CurrentItem
- \dostartbuffer[item-\CurrentItem][StartItem][StopItem]}
-
-\lefthyphenmin =\maxdimen
-\righthyphenmin=\maxdimen
-
-% \doifnotmode{demo}{\endinput}
-
-\starttext
-
-\StartIdea
- \StartTopic
- A Nice Idea
- \StopTopic
- \StartItem
- \input reich \relax
- \StopItem
- \StartItem
- \input reich \relax
- \StopItem
- \StartItem
- \input reich \relax
- \StopItem
-\StopIdea
-
-\StartIdea
- \StartTopic
- One More Nice Idea
- \StopTopic
- \StartItem
- \input reich \relax
- \StopItem
- \StartItem
- \input reich \relax
- \StopItem
-\StopIdea
-
-\StartIdea
- \StartTopic
- The Last Idea
- \StopTopic
- \StartItem
- \input tufte \relax
- \StopItem
-\StopIdea
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-pre-14.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-14.mkii
deleted file mode 100644
index c137df863ef..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-14.mkii
+++ /dev/null
@@ -1,263 +0,0 @@
-%D \module
-%D [ file=s-pre-14,
-%D version=1999.08.20,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 14,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%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.
-
-\startmode[asintended] \setupbodyfont[lbr] \stopmode
-
-\setupbodyfont[14.4pt]
-
-%D Since we expect text, we can best be very tolerant.
-
-\setuptolerance
- [verytolerant,stretch]
-
-%D As most styles we choose a large screen page size.
-
-\setuppapersize
- [S6][S6]
-
-\setuplayout
- [width=fit,
- rightedge=3cm,
- margin=0pt,
- rightedgedistance=2cm,
- height=middle,
- header=0pt,
- footer=0pt,
- topspace=1cm,
- backspace=1cm]
-
-%D We only use two colors, named \type {One} and \type
-%D {Two}:
-
-\setupcolors
- [state=start]
-
-\definecolor [One] [r=.6,g=.4,b=.4]
-\definecolor [Two] [r=.4,g=.6,b=.6]
-
-%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:
-
-\setupbackgrounds
- [page]
- [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.
-
-\defineoverlay
- [one]
- [{\framed
- [frame=off,background=color,backgroundcolor=Two,
- width=\overlaywidth,height=\overlayheight]
- {}}]
-
-\defineoverlay
- [three]
- [{\hbox to \overlaywidth
- {\hfill\SetOverlayWidth
- \framed
- [frame=off,background=color,backgroundcolor=One,
- width=\overlaywidth,height=\overlayheight]
- {}}}]
-
-%D We could have used the main backgroundcolor instead of
-%D overlay \type {one}.
-
-\definefont[NumberFont][RegularBold at 3cm]
-
-\defineoverlay
- [two]
- [{\framed
- [frame=off,width=\overlaywidth,height=\overlayheight,
- offset=overlay]
- {\vfill
- \NumberFont\setstrut\SetOverlayWidth
- \hbox to \hsize
- {\hfill
- \setupinteraction[style=,color=]%
- \setbox0=\hbox{\strut\One\pagenumber}%
- \hbox to 0pt{\hss\gotobox{\box0}[previouspage]\hss}%
- \hskip\overlaywidth}}}]
-
-\defineoverlay
- [four]
- [{\framed
- [frame=off,width=\overlaywidth,height=\overlayheight,offset=overlay]
- {\vfill
- \hbox to \hsize
- {\hfill
- \SetOverlayWidth
- \framed
- [frame=off,width=\overlaywidth,height=\overlayheight,offset=overlay]
- {\vfill\NumberFont\setstrut
- \setbox0=\hbox{\strut\Two\pagenumber}%
- \setbox2=\hbox{\clip[nx=2,ny=1,x=2,y=1]{\copy0}}%
- \dp2=\dp0
- \hbox to \hsize{\hbox to 0pt{\hss\hskip.5\wd0\box2\hss}\hfill}}}}}]
-
-\def\SetOverlayWidth%
- {\scratchdimen = \rightedgedistance
- \divide\scratchdimen by 2
- \advance\scratchdimen by \rightedgewidth
- \advance\scratchdimen by \backspace
- \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:
-
-\startnotmode[no-metapost]
-
-\setupbackgrounds
- [page]
- [background={number}]
-
-\defineoverlay[number][\useMPgraphic{number}]
-
-\startuseMPgraphic{number}
- StartPage ;
- 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 :
- defaultfont := "\truefontname{RegularBold}" ;
- 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 ;
- 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 put a button behind the text (this overlay is calculated
-%D each page).
-
-\defineoverlay
- [nextpage]
- [\overlaybutton{nextpage}]
-
-\setupbackgrounds
- [text]
- [backgroundoffset=.5cm,
- background=nextpage]
-
-%D We still have to turn on interaction mode.
-
-\setupinteraction
- [state=start,
- display=new,
- menu=on]
-
-\setupinteraction
- [color=,
- contrastcolor=]
-
-%D Next we define structuring commands.
-
-\definehead[Topic] [chapter] \setuphead[Topic] [style=\bfc]
-\definehead[Subject][section] \setuphead[Subject][style=\bfa]
-
-\setuphead
- [Topic,Subject]
- [number=no,
- after={\blank[big]}]
-
-%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.
-
-\startinteractionmenu[right]
- \setupinteraction
- [color=black,
- contrastcolor=Two]
- \placelist
- [Topic]
- [alternative=e,
- frame=off,
- criterium=all]
- \vfill
-\stopinteractionmenu
-
-\setuplist
- [Topic]
- [width=\rightedgewidth,
- maxwidth=\rightedgewidth,
- style=\bfa]
-
-%D We safe some space:
-
-\setupwhitespace
- [medium]
-
-\setupblank
- [medium]
-
-%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}
-
-\def\StartTitlePage%
- {\bgroup
- \setupbackgrounds[page][background={one,three}]
- \startstandardmakeup
- \setupalign[middle]
- \def\\{\vfil\bfb\setupinterlinespace}
- \bfd\setupinterlinespace
- \vfil}
-
-\def\StopTitlePage%
- {\vfil\vfil\vfil
- \stopstandardmakeup
- \egroup}
-
-%D This is it.
-
-\doifnotmode{demo}{\endinput}
-
-\starttext
-
-\TitlePage{Some Quotes\\(that you probably know by now)}
-
-\Topic{Tufte} \input tufte
-\Topic{Knuth} \input knuth
-\Topic{Reich} \input reich
-\Topic{Zapf} \input zapf
-\Topic{Materie} \input materie
-%Topic{Stork} \input stork
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-pre-15.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-15.mkii
deleted file mode 100644
index d1d8053b6e2..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-15.mkii
+++ /dev/null
@@ -1,186 +0,0 @@
-%D \module
-%D [ file=s-pre-15,
-%D version=1999.09.01,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 15,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This is one of the styles I made for the presentation on
-%D the \NTS\ project at Euro\TeX\ 1998. You need balls to let
-%D \TEX\ typeset graphics, but this style demonstrates that it
-%D can be done.
-%D
-%D This presentation is meant for presentations that build up
-%D an idea stepwise.
-%D
-%D \starttyping
-%D \TitlePage{Do you know \TEX ?}
-%D
-%D \StartIdea
-%D \StartItem We use \TEX\ for typesetting \unknown \StopItem
-%D \StartItem mathematical text \unknown \StopItem
-%D \StartItem but also for text that has no math \unknown \StopItem
-%D \StartItem or presentations like this \unknown \StopItem
-%D \StartItem and whatever you can come up with! \StopItem
-%D \StopIdea
-%D \stoptyping
-
-%D The basic layout is rather simple and used as much of the
-%D screen as possible.
-
-\setuppapersize
- [S6][S6]
-
-\setuplayout
- [backspace=25pt,
- topspace=25pt,
- width=middle,
- height=middle,
- header=0pt,
- footer=0pt]
-
-\setupinteraction
- [state=start,
- display=new,
- color=LineColor,
- contrastcolor=LineColor,
- click=no]
-
-\setupinteractionscreen
- [option=max]
-
-\startmode[asintended] \setupbodyfont[lbr] \stopmode
-
-\setupbodyfont[14.4pt]
-
-%D We use a lot of color. You can remap them if you want
-%D different ones. The ideas circulate over the colors.
-
-\setupcolors
- [state=start]
-
-\definecolor[TextColor][s=.8]
-\definecolor[PageColor][s=.6]
-\definecolor[LineColor][s=.4]
-
-\definecolor[red] [r=.4] \definecolor[cyan] [g=.4,b=.4]
-\definecolor[green][g=.4] \definecolor[magenta][r=.4,b=.4]
-\definecolor[blue] [b=.4] \definecolor[yellow] [r=.4,g=.4]
-
-\definecolor[linecolor 1][red] \definecolor[linecolor 5][cyan]
-\definecolor[linecolor 2][green] \definecolor[linecolor 6][magenta]
-\definecolor[linecolor 3][blue] \definecolor[linecolor 4][yellow]
-
-%D We use variables to make sure that the graphics are reused
-%D but unique.
-
-\setupMPvariables[pageframe][pagecolor=PageColor,linecolor=LineColor]
-\setupMPvariables[textframe][textcolor=TextColor,linecolor=LineColor]
-
-\setupbackgrounds
- [page]
- [background={pageframe,nextpage}]
-
-\defineoverlay [pageframe] [\uniqueMPgraphic{pageframe}]
-\defineoverlay [textframe] [\uniqueMPgraphic{textframe}]
-\defineoverlay [nextpage] [\overlaybutton{forward}]
-
-\startuniqueMPgraphic{pageframe}{pagecolor,linecolor}
- path p ; p := fullsquare xyscaled (OverlayWidth,OverlayHeight) ;
- pickup pencircle scaled 10pt ;
- fill p withcolor \MPvar{pagecolor} ;
- draw p withcolor \MPvar{linecolor} ;
-\stopuniqueMPgraphic
-
-\startuniqueMPgraphic{textframe}{textcolor,linecolor}
- path p ; p := fullcircle xyscaled (OverlayWidth,OverlayHeight) ;
- pickup pencircle scaled 10pt ;
- fill p withcolor \MPvar{textcolor} ;
- draw p withcolor \MPvar{linecolor} ;
-\stopuniqueMPgraphic
-
-%D The rest of the file implements the nasty part: typesetting
-%D text embedded in a graphic. The text is collected in a box
-%D so that we can reuse it.
-
-\newbox\CollectedIdeas
-\newcounter\CurrentTopic
-
-\def\StartItem%
- {\setbox\CollectedIdeas=\hbox\bgroup
- \ifdim\wd\CollectedIdeas>0pt \unhbox\CollectedIdeas\hskip25pt \fi
- \setbox\scratchbox=\hbox\bgroup
- \framed
- [width=160pt,height=160pt,align=middle,frame=off,
- background=textframe,offset=15pt,top=\vfill,bottom=\vfill]
- \bgroup}
-
-\def\StopItem%
- {\egroup
- \egroup
- \setbox\scratchbox=\hbox{\lower.5\ht\scratchbox\box\scratchbox}%
- \ht\scratchbox=.5\ht\scratchbox
- \dp\scratchbox= \ht\scratchbox
- \box\scratchbox
- \egroup
- \startstandardmakeup
- \dontcomplain
- \leftskip 0pt plus 50pt
- \rightskip 0pt plus 50pt
- \parfillskip 0pt
- \baselineskip 100pt
- \unhcopy\CollectedIdeas
- \stopstandardmakeup}
-
-\def\StartIdea%
- {\ifnum\CurrentTopic=6 \doglobal\newcounter\CurrentTopic \fi
- \doglobal\increment\CurrentTopic
- \definecolor[LineColor][linecolor \CurrentTopic]
- \setbox\CollectedIdeas=\null}
-
-\def\StopIdea%
- {}
-
-\def\StartTitlePage%
- {\startstandardmakeup
- \setupalign[middle]
- \def\\{\vfil\bfb\setupinterlinespace}
- \bfd\setupinterlinespace
- \vfil}
-
-\def\StopTitlePage%
- {\vfil\vfil
- \stopstandardmakeup}
-
-\def\TitlePage#1%
- {\StartTitlePage#1\StopTitlePage}
-
-\doifnotmode{demo}{\endinput}
-
-%D A simple test on functionality.
-
-\setupoutput[pdftex]
-
-\starttext
-
-\TitlePage{Do you know \TEX ?}
-
-\startbuffer
-\StartIdea
- \StartItem We use \TEX\ for typesetting \unknown \StopItem
- \StartItem mathematical text \unknown \StopItem
- \StartItem but also for text that has no math \unknown \StopItem
- \StartItem or presentations like this \unknown \StopItem
- \StartItem and whatever you can come up with! \StopItem
-\StopIdea
-\stopbuffer
-
-\dorecurse{6}{\getbuffer}
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-pre-17.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-17.mkii
deleted file mode 100644
index 7e8310a537e..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-17.mkii
+++ /dev/null
@@ -1,399 +0,0 @@
-%D \module
-%D [ file=s-pre-17,
-%D version=1999.08.20,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 17,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\setupbodyfont
- [12pt,ss]
-
-\setupcolors
- [state=start]
-
-\setupsystem
- [random=medium]
-
-\setupbackgrounds
- [state=repeat]
-
-\setupbackgrounds
- [page]
- [background={page,forward}]
-
-\setupbackgrounds
- [text][text]
- [background=blowup]
-
-\setupinteraction
- [state=start,
- %click=off,
- color=TitleColor,
- contrastcolor=TitleColor]
-
-\setupinteractionscreen
- [option=max]
-
-\setuptolerance
- [verytolerant,stretch]
-
-\definecolor [BackColor] [s=.30]
-\definecolor [PageColor] [g=1]
-\definecolor [FrameColor] [r=1]
-\definecolor [TitleColor] [y=1]
-\definecolor [ArrowColor] [b=1]
-
-\defineoverlay [title] [\useMPgraphic{title}]
-\defineoverlay [page] [\useMPgraphic{page}]
-\defineoverlay [blowup] [\overlaybutton{page(\realfolio)}]
-\defineoverlay [forward] [\overlaybutton{forward}]
-
-\startMPpositiongraphic{mppos:connection}
- path pa, pb, pc ; pair ca, cb ;
- initialize_box(\MPpos{\MPvar{self}}) ; pa := pxy ; ca := cxy ;
- initialize_box(\MPpos{\MPvar{prev}}) ; pb := pxy ; cb := cxy ;
- pickup pencircle scaled .5pt ;
- pa := pa enlarged 10pt ;
- pb := pb enlarged 10pt ;
- for i=1 upto 10 :
- draw pa randomized 20pt withcolor \MPcolor{FrameColor} ;
- endfor ;
- if \MPp{\MPvar{prev}}>0 :
- pair a, b, c, d ;
- for i=1 upto 25 :
- a := .5[ulcorner pa,urcorner pa] randomized (10pt,10pt) ;
- b := .5[llcorner pb,lrcorner pb] randomized (20pt,10pt) ;
- c := .5[a,b] rotatedaround(a,-25) randomized (5pt,5pt) ;
- d := .5[a,b] rotatedaround(a,+25) randomized (5pt,5pt) ;
- draw (a--b) withcolor \MPcolor{ArrowColor} ;
- draw (d--a--c) withcolor \MPcolor{ArrowColor} ;
- endfor ;
- fi ;
- anchor_box(\MPanchor{\MPvar{self}}) ;
-\stopMPpositiongraphic
-
-\startuseMPgraphic{title}
- pickup pencircle scaled .5pt ;
- for i=1 upto 10 :
- draw
- fullsquare xyscaled(OverlayWidth,OverlayHeight)
- enlarged 10pt randomized 20pt
- withcolor \MPcolor{TitleColor} ;
- endfor ;
-\stopuseMPgraphic
-
-\startuseMPgraphic{page}
- StartPage ;
- pickup pencircle scaled .5pt ;
- fill Page withcolor \MPcolor{BackColor} ;
- for i=1 upto 20 :
- draw Page enlarged -50pt randomized 50pt withcolor \MPcolor{PageColor} ;
- endfor ;
- StopPage ;
-\stopuseMPgraphic
-
-\def\StartText%
- {\bgroup
- \getrandomdimen\scratchdimen{250pt}{350pt}%
- \edef\TextWidth{\the\scratchdimen}%
- \setbox\scratchbox=\hbox\bgroup
- \hsize\TextWidth
- \setupframedtexts
- [before=,after=,
- width=fit,align=right, % normal,
- frame=off,foregroundcolor=white]%
- \framedtext\bgroup}
-
-\def\BlowX{450pt} % \def\BlowX{600pt}
-\def\BlowY{300pt} % \def\BlowY{450pt}
-\def\BlowV {50pt} % \def\BlowV{100pt}
-\def\BlowH {75pt} % \def\BlowH{100pt}
-\def\BackO {50pt} % \def\BackO {50pt}
-
-\def\StopText%
- {\egroup\egroup
- \doglobal\increment\CurrentBlaBla
- \let\PrevBlaBla\CurrentBlaBla \doglobal\decrement\PrevBlaBla
- \let\NextBlaBla\CurrentBlaBla \doglobal\increment\NextBlaBla
- \setMPpositiongraphic
- {connection:\CurrentBlaBla}%
- {mppos:connection}%
- {seed=\CurrentBlaBla,
- prev=connection:\PrevBlaBla,
- next=connection:\NextBlaBla}%
- \SetBlowUp{connection:\CurrentBlaBla}\BlowX\BlowY\BlowH\BlowV
- \hbox to 600pt
-% {\getrandomdimen\scratchdimen{50pt}{100pt}%
- {\getrandomdimen\scratchdimen{50pt}{75pt}%
- \hskip0pt plus \scratchdimen minus \scratchdimen
- \hpos{connection:\CurrentBlaBla}%
- {\framed
- [frame=off,
- offset=overlay,
- backgroundoffset=\BackO,
- background=blowup]
- {\box\scratchbox}}%
-% \getrandomdimen\scratchdimen{50pt}{100pt}%
- \getrandomdimen\scratchdimen{50pt}{75pt}%
- \hskip0pt plus \scratchdimen minus \scratchdimen}%
-% \getrandomdimen\scratchdimen{100pt}{150pt}%
- \getrandomdimen\scratchdimen{75pt}{125pt}%
- \vskip\scratchdimen
- \egroup}
-
-\def\xStartText
- {\bgroup
- \setbox\scratchbox=\hbox\bgroup
- \framed
- [frame=off,foregroundcolor=white]
- \bgroup}
-
-\def\xStopText{\StopText}
-
-\def\SetBlowUp#1#2#3#4#5% tag width height hoffset voffset
- {\scratchdimen=\MPw{#1}%
- \advance\scratchdimen-#2 %
- \divide\scratchdimen by 2
- \advance\scratchdimen by \MPx{#1}\relax
- \ifdim\scratchdimen<0pt \scratchdimen=0pt \fi
- \ScaledPointsToBigPoints{\number\scratchdimen}\TextX
- \advance\scratchdimen by #2 %
- \ScaledPointsToBigPoints{\number\scratchdimen}\TextW
- %
- \scratchdimen=\MPh{#1}%
- \advance\scratchdimen-#3 %
- \divide\scratchdimen by 2
- \advance\scratchdimen\MPy{#1}\relax
- \ifdim\scratchdimen<0pt \scratchdimen=0pt \fi
- \ScaledPointsToBigPoints{\number\scratchdimen}\TextY
- \advance\scratchdimen by #3
- \ScaledPointsToBigPoints{\number\scratchdimen}\TextH
- %
- \def\PDFpageviewkey{ fitr \TextX\space\TextY\space\TextW\space\TextH}%
- \def\PDFpageviewwrd{ /FitR \TextX\space\TextY\space\TextW\space\TextH}%
- \edef\PDFpageview{/View [\PDFpageviewwrd]}}
-
-\def\xSetBlowUp#1#2#3#4#5% tag width height hoffset voffset
- {\scratchdimen\MPx{#1}\relax
- \ifdim\scratchdimen<#4
- \ScaledPointsToBigPoints{0}\TextX
- \multiply\scratchdimen 2
- \else
- \advance\scratchdimen-#4
- \ScaledPointsToBigPoints{\number\scratchdimen}\TextX
- \advance\scratchdimen#4
- \advance\scratchdimen#4
- \fi
- \advance\scratchdimen\MPw{#1}%
- \ScaledPointsToBigPoints{\number\scratchdimen}\TextW
- %
- \scratchdimen\MPy{#1}\relax
- \ifdim\scratchdimen<#5
- \ScaledPointsToBigPoints{0}\TextY
- \multiply\scratchdimen 2
- \else
- \advance\scratchdimen-#5
- \ScaledPointsToBigPoints{\number\scratchdimen}\TextY
- \advance\scratchdimen#5
- \advance\scratchdimen#5
- \fi
- \advance\scratchdimen\MPh{#1}%
- \ScaledPointsToBigPoints{\number\scratchdimen}\TextH
- %
- \def\PDFpageviewkey{ fitr \TextX\space\TextY\space\TextW\space\TextH}%
- \def\PDFpageviewwrd{ /FitR \TextX\space\TextY\space\TextW\space\TextH}%
- \edef\PDFpageview{/View [\PDFpageviewwrd]}}
-
-\dontcomplain
-
-\def\StartPage#1%
- {\doStartPage{1}{#1}}
-
-\def\doStartPage#1#2%
- {\def\StopPage{\doStopPage{#1}{#2}}%
- \setbox\scratchbox=\hbox\bgroup
- \valign\bgroup\ignorespaces##\vss\cr}
-
-\def\doStopPage#1#2%
- {\cr
- \egroup
- \egroup
- \setbox\scratchbox=\vbox
- {\vskip100pt
- \hbox \ifcase#1 spread 200pt \else to \wd\scratchbox \fi
- {\hss
- \switchtobodyfont[big]%
- \bfd\setupinterlinespace
- \ifcase#1\else \SetBlowUp{title:\realfolio}\BlowX\BlowY\BlowH\BlowV \fi
- \hpos{title:\realfolio}
- {\framed
- [frame=off,align=middle,
- foregroundcolor=white,
- background={title,blowup}]
- {#2}}%
- \hss}
- \vskip100pt
- \box\scratchbox}
- \doFlushPage}
-
-\def\doFlushPage
- {\scratchdimen=\ht\scratchbox
- \advance\scratchdimen \dp\scratchbox
- \advance\scratchdimen 100pt
- \edef\height{\the\scratchdimen}
- \scratchdimen=\wd\scratchbox
- \advance\scratchdimen 100pt
- \edef\width {\the\scratchdimen}
- \expanded{\definepapersize[MASTER][width=\width,height=\height]}
- \setuppapersize
- [MASTER][MASTER]
- \setuplayout
- [topspace=25pt,backspace=25pt,
- width=middle,header=0pt,footer=0pt,height=middle]
- \centerbox{\box\scratchbox}
- \page}
-
-\def\StartTopic#1%
- {\unskip\unskip\cr
- \doglobal\increment(\CurrentBlaBla,100)%
- \vbox\bgroup
- \vskip100pt
- \bgroup
- \definecolor[FrameColor][TitleColor]
- \switchtobodyfont[big]
- \bfd\setupinterlinespace
- \xStartText#1\xStopText
- \vskip25pt
- \egroup}
-
-\def\StopTopic%
- {\vskip-\lastskip
- \vskip100pt
- \egroup
- \ignorespaces}
-
-\def\TitlePage#1%
- {\doStartPage{0}{\def\\{\vskip1ex\bfc\def\\{\vskip1ex\bfb}}#1}
- \StopPage}
-
-\doifnotmode{demo}{\endinput}
-
-\setupoutput[pdftex]
-
-\starttext
-
-\TitlePage{About Text\\Today's Talk\\Hans Hagen}
-
-\StartPage{The First Page}
-
-\StartTopic{Some Text}
- \StartText \input tufte \StopText
- \StartText \input knuth \StopText
- \StartText \input zapf \StopText
- \StartText \input knuth \StopText
-\StopTopic
-
-\StartTopic{Another Text}
- \StartText \input tufte \StopText
- \StartText \input zapf \StopText
- \StartText \input knuth \StopText
-\StopTopic
-
-\StartTopic{Some More Text}
- \StartText \input tufte \StopText
- \StartText \input knuth \StopText
- \StartText \input zapf \StopText
- \StartText \input tufte \StopText
-\StopTopic
-
-\StartTopic{Some Text Agian}
- \StartText \input tufte \StopText
- \StartText \input zapf \StopText
- \StartText \input knuth \StopText
- \StartText \input tufte \StopText
-\StopTopic
-
-\StopPage
-
-\StartPage{The Second Page}
-
-\StartTopic{Some Text}
- \StartText \input tufte \StopText
- \StartText \input knuth \StopText
- \StartText \input zapf \StopText
- \StartText \input tufte \StopText
- \StartText \input knuth \StopText
- \StartText \input zapf \StopText
-\StopTopic
-
-\StartTopic{Another Text}
- \StartText \input tufte \StopText
- \StartText \input knuth \StopText
- \StartText \input zapf \StopText
-\StopTopic
-
-\StartTopic{Some Nice Text}
- \StartText \input tufte \StopText
- \StartText \input knuth \StopText
- \StartText \input zapf \StopText
- \StartText \input tufte \StopText
- \StartText \input tufte \StopText
-\StopTopic
-
-\StartTopic{Some Funny Text}
- \StartText \input tufte \StopText
- \StartText \input knuth \StopText
-\StopTopic
-
-\StartTopic{Quite Some Text}
- \StartText \input tufte \StopText
- \StartText \input knuth \StopText
- \StartText \input zapf \StopText
- \StartText \input tufte \StopText
- \StartText \input knuth \StopText
- \StartText \input zapf \StopText
- \StartText \input tufte \StopText
- \StartText \input knuth \StopText
- \StartText \input zapf \StopText
-\StopTopic
-
-\StartTopic{Even More Text}
- \StartText \input knuth \StopText
- \StartText \input zapf \StopText
- \StartText \input tufte \StopText
- \StartText \input knuth \StopText
- \StartText \input zapf \StopText
-\StopTopic
-
-\StopPage
-
-\StartPage{The Third Page}
-
-\StartTopic{Some Short Text}
- \StartText \input tufte \StopText
- \StartText \input knuth \StopText
- \StartText \input zapf \StopText
-\StopTopic
-
-\StartTopic{Some Minimal Text}
- \StartText \input tufte \StopText
- \StartText \input zapf \StopText
-\StopTopic
-
-\StartTopic{Some More Text}
- \StartText \input tufte \StopText
- \StartText \input knuth \StopText
- \StartText \input zapf \StopText
- \StartText \input tufte \StopText
- \StartText \input tufte \StopText
-\StopTopic
-
-\StopPage
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-pre-19.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-19.mkii
deleted file mode 100644
index 991d311ced0..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-19.mkii
+++ /dev/null
@@ -1,347 +0,0 @@
-%D \module
-%D [ file=s-pre-19,
-%D version=2000.07.31,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 19,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This style is made in the process or writing the \METAFUN\
-%D manual. It exploits a few tricks, like graphics calculated
-%D using positional information. It also uses the (at that
-%D moment) new menu list placement alternative. If you forget
-%D about the definition of the button shapes, which is
-%D complicated in any system, this style is not even that hard
-%D to follow. Watch how the left side of the buttons follow
-%D the right side of the text graphic.
-%D
-%D While playing bit with this style, the random alternative
-%D made me think of those organic building with non equal
-%D windows (we have a few in The Netherlands), so I decided to
-%D label this style as \type {pre-organic}.
-%D
-%D At the end of this file, there is a small test file, so
-%D when you process this file with \TEXEXEC\ and the options
-%D \type {--mode=demo} and \type {--pdf}, you will get a demo
-%D document.
-
-%D We use one of the standard screen \quote {paper} sizes, and
-%D map it onto the same size, so that we get a nicely cropped
-%D page.
-
-\setuppapersize
- [S6][S6]
-
-%D Like in the \METAFUN\ manual, we use the Palatino as main
-%D bodyfont. This font is quite readable on even low
-%D resolution screens, although I admit that this style is
-%D developed using an $1400\times1050$ pixel LCD screen, so I
-%D may be biased.
-
-%\startmode[asintended] \setupbodyfont[ppl] \stopmode
-
-%D The layout specification sets up a text area and a right
-%D edge area where the menus will go. Watch the rather large
-%D edge distance. By setting the header and footer dimensions
-%D to zero, we automatically get rid of page body ornaments,
-%D like the pagenumber.
-
-\setuplayout
- [topspace=48pt,
- backspace=48pt,
- cutspace=12pt,
- width=400pt,
- margin=0cm,
- rightedge=88pt,
- rightedgedistance=48pt,
- header=0cm,
- footer=0cm,
- height=middle]
-
-%D We use a moderate, about a line height, interparagraph
-%D white space.
-
-\setupwhitespace
- [big]
-
-%D Of course we use colors, since on computer displays they
-%D come for free.
-
-\setupcolors
- [state=start]
-
-\definecolor [red] [r=.75]
-\definecolor [yellow] [r=.75,g=.75]
-\definecolor [gray] [s=.50]
-\definecolor [white] [s=.85]
-
-\definecolor [PageColor] [yellow]
-\definecolor [TextColor] [white]
-\definecolor [OrnamentColor] [red]
-\definecolor [InteractionColor] [red]
-\definecolor [ContrastColor] [gray]
-
-%D This is an interactive document, so we enable interaction.
-%D In this style, we disable the viewer's \quote {highlight a
-%D hyperlink when it's clicked on} feature. We will use a
-%D menu, so we enable menus. Later we will see the contract
-%D color |<|hyperlinks gets that color when we are already on
-%D the location|>| in action.
-
-\setupinteraction
- [state=start,
- click=off,
- color=InteractionColor,
- contrastcolor=ContrastColor,
- menu=on]
-
-%D The menu itself is set up as follows. Because we will
-%D calculate menubuttons based on their position on the page,
-%D we have to keep track of the positions. Therefore, we set
-%D the \type {position} variable to \type {yes}.
-
-\setupinteractionmenu
- [right]
- [frame=off,
- position=yes,
- align=middle,
- topoffset=-.75cm,
- bottomoffset=-.75cm,
- color=gray,
- contrastcolor=gray,
- style=bold,
- before=,
- after=]
-
-%D The menu content is rather sober: a list of topics (later
-%D we will define the command that generates topic entries),
-%D and a close button.
-
-\startinteractionmenu[right]
- \placelist[Topic][alternative=right]
- \vfill
- \but [CloseDocument] close \\
-\stopinteractionmenu
-
-%D We have now arived at the more interesting part of the style
-%D definition: the graphic that goes in the page background.
-%D Because this graphic will change, we define a usable
-%D \METAPOST\ graphic. Page backgrounds are recalculated each
-%D page, opposite to the other backgrounds that are calculated
-%D when a new background is defined, or when repetitive
-%D calculation is turned on.
-
-\setupbackgrounds
- [page]
- [background=page]
-
-\defineoverlay
- [page]
- [\useMPgraphic{page}]
-
-\setupMPvariables
- [page]
- [alternative=3]
-
-\startuseMPgraphic{page}
-
- \includeMPgraphic{rightsuperbutton}
-
- StartPage ;
-
- path p, q ; pickup pencircle scaled 3pt ;
-
- p := Field[Text][Text] enlarged 36pt superellipsed .90 ;
-
- fill Page withcolor \MPcolor{PageColor} ;
- fill p withcolor \MPcolor{TextColor} ;
- draw p withcolor \MPcolor{OrnamentColor} ;
-
- p := Field[Text][Text] enlarged 48pt superellipsed .90 ;
-
- def right_menu_button (expr nn, rr, pp, xx, yy, ww, hh, dd) =
- if (pp>0) and (rr>0) :
- q := rightsuperbutton(p,xx,yy,RightEdgeWidth,hh) ;
- fill q withcolor \MPcolor{TextColor} ;
- draw q withcolor if rr=2 : \MPcolor{ContrastColor}
- else : \MPcolor{InteractionColor} fi ;
- fi ;
- enddef ;
-
- \MPmenubuttons{right}
-
- StopPage ;
-\stopuseMPgraphic
-
-\startuseMPgraphic{page}
-
- \includeMPgraphic{rightsuperbutton}
-
- StartPage ;
-
- numeric alternative, seed, superness, squeezeness, randomness ;
- path p, q ; transform t ;
-
- alternative := \MPvar{alternative} ;
- seed := uniformdeviate 100 ;
-
- if alternative > 10 :
- superness := .85 + ((\realfolio-1)/\lastpage) * .15 ;
- squeezeness := 12pt - ((\realfolio-1)/\lastpage) * 10pt ;
- else :
- superness := .90 ;
- squeezeness := 12pt ;
- fi ;
-
- randomness := squeezeness ;
-
- alternative := alternative mod 10 ;
-
- t := identity if alternative=3: shifted (9pt,-9pt) fi ;
-
- % first we draw the shape that surrounds the text
-
- randomseed := seed ;
-
- p := Field[Text][Text] enlarged if
- alternative = 1 : 36pt superellipsed superness elseif
- alternative = 2 : 36pt squeezed squeezeness elseif
- alternative = 3 : 36pt randomized randomness else
- : 36pt fi ;
- pickup pencircle scaled 3pt ;
-
- fill Page withcolor \MPcolor{PageColor} ;
- fill p withcolor \MPcolor{TextColor} ;
- draw p withcolor \MPcolor{OrnamentColor} ;
-
- % we set p to the wider shape from which we will chip off pieces
-
- randomseed := seed ;
-
- p := ( Field[Text][Text] enlarged if
- alternative = 1 : 48pt superellipsed superness elseif
- alternative = 2 : 48pt squeezed squeezeness elseif
- alternative = 3 : 36pt randomized randomness else
- : 48pt fi ) transformed t ;
-
- % calls to *_menu_button are generated automatically ...
-
- vardef right_menu_button (expr nn, rr, pp, xx, yy, ww, hh, dd) =
- save q ; path q ;
- if (pp>0) and (rr>0) :
- q := rightsuperbutton(p,xx,yy,RightEdgeWidth,hh) ; % \MPw{menu:right:\realfolio}
- fill q withcolor \MPcolor{TextColor} ;
- draw q withcolor if rr=2 : \MPcolor{ContrastColor}
- else : \MPcolor{InteractionColor} fi ;
- fi ;
- enddef ;
-
- % ... and inserted when the graphic data is flushed here ...
-
- \MPmenubuttons{right}
-
- StopPage ;
-\stopuseMPgraphic
-
-\startuseMPgraphic{rightsuperbutton}
-
-vardef rightsuperbutton (expr pat, xpos, ypos, wid, hei) =
-
- save p, ptop, pbot, t, b, edge, shift, width, height ;
- path p, ptop, pbot ; pair t, b ; numeric edge, shift, width, height ;
-
- edge := xpos + wid ; shift := ypos + hei ;
-
- p := rightpath pat ;
-
- ptop := ((-infinity,shift)--(edge,shift)) ;
- pbot := ((-infinity,shift-hei)--(edge,shift-hei)) ;
-
- t := p intersection_point ptop ;
- b := p intersection_point pbot ;
-
- p := subpath(0,xpart (p intersectiontimes ptop)) of p ;
- p := subpath(xpart (p intersectiontimes pbot),length(p)) of p ;
-
- (p -- t -- point 1 of ptop &
- point 1 of ptop -- point 1 of pbot &
- point 1 of pbot -- b
- -- cycle)
-
-enddef ;
-
-\stopuseMPgraphic
-
-%D Topics are identified with \type {\Topic}, which is an
-%D instance of chapter headings. The number is made invisible.
-%D Since it still is a numbered section header, \CONTEXT\ will
-%D write the header to the table of contents.
-
-\definehead
- [Topic]
- [chapter]
-
-\setuphead
- [Topic]
- [number=no]
-
-%D We will use a bold font in the table of contents. We also
-%D force a complete list.
-
-\setuplist
- [Topic]
- [criterium=all,
- style=bold,
- before=,
- after=]
-
-%D The \type {\TitlePage} macro looks horrible, because we
-%D want to keep the interface simple: a list of small
-%D sentences, separated by \type {\\}.
-
-\def\StartTitlePage
- {\startstandardmakeup
- \switchtobodyfont[big]
- \def\\{\vfill\bfb\let\\=\par}
- \bfd\setupinterlinespace\gray
- \vskip.5cm}
-
-\def\StopTitlePage
- {\\\vskip.5cm % the \\ is really needed
- \stopstandardmakeup}
-
-\def\TitlePage#1%
- {\StartTitlePage#1\StopTitlePage}
-
-%D A couple of goodies:
-
-\def\Subject {\Topic}
-\def\Topics #1{}
-\def\Subjects {}
-
-%D For those who want to test:
-
-\doifnotmode{demo}{\endinput}
-
-\starttext
-
-\setupMPvariables[page][alternative=3]
-
-\TitlePage
- {A Few Nice Quotes\\
- A Simple Style Demo\\
- Hans Hagen, August 2000}
-
-
-\Topic {Douglas R. Hofstadter} \input douglas \page
-\Topic {Donald E. Knuth} \input knuth \page
-\Topic {Edward R. Tufte} \input tufte \page
-\Topic {Hermann Zapf} \input zapf \page
-%Topic {David F. Stork} \input stork \page
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-pre-30.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-30.mkii
deleted file mode 100644
index a7152deb60b..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-30.mkii
+++ /dev/null
@@ -1,258 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\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/modules/mkii/s-pre-60.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-60.mkii
deleted file mode 100644
index 8823c66ce1e..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-60.mkii
+++ /dev/null
@@ -1,143 +0,0 @@
-%D \module
-%D [ file=s-pre-60,
-%D version=2004.03.15,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 60,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\startmode[paper,print]
- \let\StartSteps\relax
- \let\StopSteps \relax
- \let\FlushStep \relax
- \let\ResetStep \relax
- \let\StartBusy\relax
- \let\StopBusy \relax
- \endinput
-\stopmode
-
-\newcounter\StepCounter
-\newcounter\StepMaximum
-
-\useJSscripts[stp]
-
-\startsetups[set-stepper]
-
- \ifnum\getvariable{stepper}{nofsteps}>\StepMaximum
-
- \dostepwiserecurse {\numexpr(\StepMaximum+1)} {\getvariable{stepper}{nofsteps}} {1}
- {\doifnotmode{nosteps,nostep}
- {\expanded{\defineproperty[step:\recurselevel][layer][state=stop,global=yes]}}}
-
- \xdef\StepMaximum{\getvariable{stepper}{nofsteps}}
-
- \fi
-
-\stopsetups
-
-\setvariables
- [stepper]
- [set=\setups{set-stepper},
- nofsteps=50]
-
-\defineproperty[step:busy][layer][state=start,global=no]
-
-\definereference [SetupStepper] [JS(SetupStepper{step,\StepMaximum})]
-\definereference [ResetStepper] [JS(ResetStepper)]
-\definereference [CheckStepper] [JS(CheckStepper{\StepCounter})]
-\definereference [InvokeStepper] [JS(InvokeStepper)]
-
-\def\ResetStep {\doglobal\newcounter\StepCounter}
-\def\NextStep {\doglobal\increment \StepCounter}
-\def\PrevStep {\doglobal\decrement \StepCounter}
-
-% todo: roll back blank
-
-\def\StepLayer {step:\StepCounter}
-\def\NextStepLayer {step:\the\numexpr\StepCounter+1\relax}
-\def\FirstStepLayer{step:1}
-
-\def\StartStep
- {\ifvmode
- \scratchskip\lastskip
- \vskip-\scratchskip
- \startproperty[\StepLayer]%
- \vskip\scratchskip
- \else
- \startproperty[\StepLayer]%
- \fi
- \ignorespaces}
-
-\def\StopStep
- {\removeunwantedspaces
- \stopproperty}
-
-\def\StartSteps{\iftrialtypesetting\else\ResetStep\NextStep\StartStep\fi}
-\def\StopSteps {\iftrialtypesetting\else\StopStep \PrevStep \fi}
-\def\FlushStep {\iftrialtypesetting\else\StopStep \NextStep\StartStep\fi}
-
-\appendtoks
- \ResetStep
-\to \everyaftershipout
-
-\def\StartBusy{\startproperty[step:busy]\ignorespaces}
-\def\StopBusy {\removeunwantedspaces\stopproperty}
-
-\setupinteraction
- [%openaction=SetupStepper,
- closeaction=ResetStepper,
- openpageaction=CheckStepper,
- closepageaction=ResetStepper]
-
-\defineoverlay[invoke][\overlaybutton{InvokeStepper}]
-
-\setupbackgrounds
- [text]
- [background=invoke]
-
-% bonus
-
-\useMPlibrary[nav]
-
-\definepalet
- [navplus]
- [attach=interactioncolor,
- comment=interactioncolor]
-
-\setupcomment
- [symbol={comment-normal,comment-down},
- textlayer=\StepLayer,
- option=buffer,
- height=\textheight,
- width=\textwidth,
- margin=0pt]
-
-\setupattachments
- [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/modules/mkii/s-pre-61.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-61.mkii
deleted file mode 100644
index 48b9d09a02a..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-61.mkii
+++ /dev/null
@@ -1,275 +0,0 @@
-%D \module
-%D [ file=s-pre-61,
-%D version=2004.03.15,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 61,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Optima
-
-\usemodule[pre-60]
-
-\doifmodeelse {mkiv} {
- \usetypescriptfile[ghz]
- \definetypeface[mainface][ss][sans][optima-nova][default]
-} {
- \usetypescriptfile[type-ghz]
- \definetypeface[mainface][ss][sans][optima-nova][default][encoding=\defaultencoding]
-}
-
-\setupbodyfont[mainface,ss,18pt]
-\setupinterlinespace[line=3.25ex]
-
-\setuppapersize
- [S6][S6]
-
-% \setuppapersize
-% [SW][SW]
-
-\setuplayout
- [topspace=10pt,
- header=30pt,
- headerdistance=20pt,
- height=middle,
- footerdistance=20pt,
- footer=0pt,
- bottomdistance=20pt,
- bottom=20pt,
- bottomspace=50pt,
- backspace=30pt,
- width=middle]
-
-\setupinteraction
- [state=start,
- click=off,
- menu=on,
- style=,
- color=interactioncolor,
- contrastcolor=interactioncolor]
-
-\setupinteractionscreen
- [option=max]
-
-\setupinteractionmenu
- [bottom]
- [color=maincolor,
- contrastcolor=maincolor,
- style=\tfa, % acceptable
- left=\hfill,
- middle=,
- right=,
- height=\bottomheight,
- width=2\bottomheight,
- offset=overlay,
- frame=off]
-
-\startinteractionmenu[bottom]
- \but [firstpage] \symbol[firstpage] \\
- \but [previouspage] \symbol[previouspage] \\
- \but [InvokeStepper] \StartBusy\symbol[PauseRendering]\StopBusy \\
- \but [nextpage] \symbol[nextpage] \\
- \but [lastpage] \symbol[lastpage] \\
- \but [CloseDocument] \symbol[CloseDocument] \\
-\stopinteractionmenu
-
-% maybe in colo-sjk : \setupcolor[sjk]
-
-\definecolor [dark] [s=.4]
-\definecolor [bright] [s=.9]
-
-\definecolor [red] [r=.4,g=.2,b=.2]
-\definecolor [green] [r=.2,g=.4,b=.2]
-\definecolor [blue] [r=.2,g=.2,b=.4]
-
-\definecolor [cyan] [r=.2,g=.4,b=.4]
-\definecolor [magenta][r=.4,g=.2,b=.4]
-\definecolor [yellow] [r=.4,g=.4,b=.2]
-
-\definecolor [pagecolor] [dark]
-\definecolor [maincolor] [bright]
-\definecolor [textcolor] [red]
-
-\definecolor [interactioncolor] [r=.8,g=.8,b=.6]
-
-\setupcolors
- [state=start,
- textcolor=maincolor]
-
-\setupbackgrounds
- [page]
- [background=page,
- backgroundcolor=textcolor]
-
-\setupbackgrounds
- [text]% [text]
- [background={comments,text,invoke}]
-
-\definelayer
- [text]
- [width=\textwidth,
- height=\textheight]
-
-\defineoverlay
- [comments]
- [{\setlayer[text][preset=middle]{\placecomments}}]
-
-\defineoverlay[page][\uniqueMPgraphic{page-\ifcase\realpageno\or one\else plus\fi}]
-
-\startuniqueMPgraphic{page-one}
- StartPage ;
- fill Page
- enlarged 4pt
- withcolor \MPcolor{pagecolor} ;
- fill Field[Text][Text]
- enlarged 10pt
-% topenlarged (HeaderHeight+HeaderDistance)
- leftenlarged (BackSpace+4pt)
- rightenlarged (CutSpace +4pt)
- withcolor OverlayColor ;
- StopPage ;
-\stopuniqueMPgraphic
-
-\startuniqueMPgraphic{page-plus}
- StartPage ;
- fill Page
- enlarged 4pt
- withcolor \MPcolor{pagecolor} ;
- fill Field[Text][Text]
- enlarged 10pt
- leftenlarged (BackSpace+4pt)
- rightenlarged (CutSpace+4pt)
- withcolor OverlayColor ;
- StopPage ;
-\stopuniqueMPgraphic
-
-% this needs to be sorted out !
-
-\appendtoks
- \NormalizeFontHeight \HeadFont {\setstrut\strut\quad} {1.0\headerheight} {SansBold}
- \NormalizeFontHeight \TitleFont {\setstrut\strut\quad} {2.0\headerheight} {SansBold}
- \NormalizeFontHeight \SubTitleFont {\setstrut\strut\quad} {1.5\headerheight} {SansBold}
- \NormalizeFontHeight \SubSubTitleFont {\setstrut\strut\quad} {1.0\headerheight} {SansBold}
-\to \everystarttext
-
-\appendtoks
- \NormalizeFontHeight \HeadFont {\setstrut\strut\quad} {1.0\headerheight} {SansBold}
- \NormalizeFontHeight \TitleFont {\setstrut\strut\quad} {2.0\headerheight} {SansBold}
- \NormalizeFontHeight \SubTitleFont {\setstrut\strut\quad} {1.5\headerheight} {SansBold}
- \NormalizeFontHeight \SubSubTitleFont {\setstrut\strut\quad} {1.0\headerheight} {SansBold}
-\to \everystoptext
-
-\setuphead
- [chapter]
- [placehead=empty,
- after={\blank[medium]},
- color=maincolor,
- placenumber=no,
- style=\HeadFont]
-
-\setupheadertexts
- [\doiftextelse{\currentheadnumber}{\placeheadtext[Topic]}{\placeheadtext[Nopic]}]
- []
-
-\setuppagenumbering
- [location=]
-
-\definesymbol
- [emdash]
- [\emdash]
-
-\setupitemize
- [each]
- [loose,serried,joinedup,broad]
- [symbol=emdash]
-
-\setupalign
- [broad,right]
-
-\def\doTitlePage#1#2#3%
- {\startstandardmakeup[headerstate=high]
- \def\\{\def\\{\endgraf\quad\quad}\endgraf\quad\ignorespaces#2}%
- #1\setstrut\setupinterlinespace\vfil#3\vfil\vfil
- \stopstandardmakeup}
-
-\def\TitlePage {\doTitlePage\TitleFont\relax}
-\def\SubTitlePage{\doTitlePage\TitleFont\SubTitleFont}
-
-\definehead[Topic][chapter]
-\definehead[Nopic][title]
-
-\def\Topics#1%
- {\Nopic[topics]{#1}
- \startcolumns
- \placelist[Topic]
- \stopcolumns}
-
-\setuplist
- [Topic]
- [alternative=f,
- color=maincolor,
- contrastcolor=maincolor,
- criterium=all]
-
-\defineoverlay[topics][\overlaybutton{topics}]
-
-\setupbackgrounds
- [bottom] [text]
- [background=topics]
-
-\continueifinputfile{s-pre-61.tex}
-
-\starttext
-
-\TitlePage{Stepwise\\Refinement}
-
-\Topics{Topics}
-
-\Topic{Female Artists}
-
-\StartSteps
-
-\startitemize
-\item Fiona Apple \FlushStep
-\item Tori Amos \FlushStep
-\item Kate Bush \FlushStep
-\item Heather Nova \FlushStep
-\item Alanis Morissette \FlushStep
-\item Suzanne Vega \FlushStep
-\stopitemize
-
-\StopSteps
-
-\Topic{Male Composers}
-
-\StartSteps
-
-\startitemize
-\item John Adams \FlushStep
-\item Steve Reich \FlushStep
-\item Louis Andriessen \FlushStep
-\item Olivier Messiaen \FlushStep
-\stopitemize
-
-\StopSteps
-
-\Topic{And Some More}
-
-\StartSteps
-
-\startitemize
-\item Mark Hollis \FlushStep
-\item Roger Waters \FlushStep
-\item David Gilmore \FlushStep
-\item Peter Gabriel \FlushStep
-\item Randy Newman \FlushStep
-\stopitemize
-
-\StopSteps
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-pre-62.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-62.mkii
deleted file mode 100644
index a1a405c236b..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-62.mkii
+++ /dev/null
@@ -1,224 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Melior
-
-\usemodule[pre-60]
-
-\usetypescriptfile
- [type-ghz]
-
-\doifmodeelse {mkiv} {
-
- \definetypeface[mainface][rm][serif][melior] [default]
- \definetypeface[mainface][tt][mono] [modern] [default][rscale=1.05]
- \definetypeface[mainface][ss][serif][melior] [default]
- \definetypeface[mainface][mm][math] [palatino][default][rscale=0.95]
-
-} {
-
- \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}]
-
-\definelayout
- [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}
-
-\long\def\StartTitlePage #1\StopTitlePage {\TitlePage {#1}}
-\long\def\StartSubTitlePage#1\StopSubTitlePage{\SubTitlePage{#1}}
-
-\endinput
-
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-pre-63.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-63.mkii
deleted file mode 100644
index 9ecb2cb1a78..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-63.mkii
+++ /dev/null
@@ -1,73 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\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/modules/mkii/s-pre-64.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-64.mkii
deleted file mode 100644
index ef4889bbb66..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-64.mkii
+++ /dev/null
@@ -1,208 +0,0 @@
-%D \module
-%D [ file=s-pre-64,
-%D version=2006.05.11,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 64,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% To be documented, used in 2007
-
-\usemodule[s][pre-60]
-
-\newcounter\shapesynctag
-\newdimen\slantedshapedimen
-\newdimen\slantedshapestep
-\newdimen\slantedshapeleftskip
-\newdimen\slantedshapeoffset
-\newdimen\slantedshapeextra
-
-\positioningtrue
-
-\def\AdaptShape
- {\doglobal\increment\shapesynctag
- \getnoflines\textheight
- \slantedshapestep\dimexpr\slantedshapeleftskip/\noflines\relax
- \leftskip\slantedshapeleftskip
- \scratchdimen\dimexpr\MPy{text:\MPp\shapesynctag}+\MPh{text:\MPp\shapesynctag}-\topskip-\MPy\shapesynctag\relax
- \advance\scratchdimen\slantedshapeextra
- \getnoflines\scratchdimen
- \slantedshapedimen \noflines \slantedshapestep
- \scratchtoks\emptytoks
- \dorecurse{30}
- {\appendetoks
- \the\dimexpr-\slantedshapedimen+\slantedshapeoffset \relax\space
- \the\dimexpr \hsize-2\slantedshapeoffset\relax\space
- \to\scratchtoks
- \advance\slantedshapedimen \slantedshapestep}%
- \parshape 30 \the\scratchtoks
- \strut\xypos\shapesynctag}
-
-\def\AdaptShapeX
- {\doglobal\increment\shapesynctag
- \getnoflines\textheight
- \slantedshapestep\dimexpr\slantedshapeleftskip/\noflines\relax
- \leftskip\slantedshapeleftskip
- \scratchdimen\dimexpr\MPy{text:\MPp\shapesynctag}+\MPh{text:\MPp\shapesynctag}-\topskip-\MPy\shapesynctag\relax
- \advance\scratchdimen\slantedshapeextra
- \getnoflines\scratchdimen
- \slantedshapedimen \noflines \slantedshapestep
- \scratchtoks\emptytoks
- \dorecurse{30}
- {\appendetoks
- \the\dimexpr-\slantedshapedimen+\slantedshapeoffset +5cm \relax\space
- \the\dimexpr \hsize-2\slantedshapeoffset\relax\space
- \to\scratchtoks
- \advance\slantedshapedimen \slantedshapestep}%
- \parshape 30 \the\scratchtoks
- \strut\xypos\shapesynctag}
-
-\setuppapersize[S6][S6]
-
-\setupinteraction
- [state=start,
- click=no]
-
-\setupinteractionscreen
- [option=max]
-
-\setuplayout
- [backspace=12pt,
- topspace=24pt,
- height=middle,
- width=middle,
- header=0pt,
- footer=0pt]
-
-\definecolor[maincolor][b=.5]
-\definecolor[somecolor][g=.5]
-\definecolor[morecolor][r=.5]
-
-\setupcolors
- [textcolor=maincolor,
- state=start]
-
-\setupbackgrounds
- [text]% [text]
- [background={base,text,invoke}]
-
-\definelayer
- [text]
- [width=\textwidth,
- height=\textheight]
-
-\definelayer
- [base]
- [width=\textwidth,
- height=\textheight]
-
-\definetype [epet] [style=,color=morecolor]
-\setuptype [style=,color=somecolor]
-
-\slantedshapeleftskip150pt
-\slantedshapeoffset12pt
-\slantedshapeextra10pt
-
-\startreusableMPgraphic{page}
- StartPage ;
- fill Page withcolor \MPcolor{maincolor} ;
- path p ; p := Field[Text][Text] enlarged 6pt ;
- p :=
- llcorner p shifted (0,-12pt) --
- lrcorner p shifted (-150pt,0) --
- urcorner p shifted (0,12pt) --
- ulcorner p shifted (150pt,0) --
- cycle ;
- fill p
- withcolor .9white ;
- StopPage ;
-\stopreusableMPgraphic
-
-\defineoverlay[page][\reuseMPgraphic{page}]
-\setupbackgrounds[page][background=page]
-
-\setupalign[flushleft]
-
-\def\StartItem
- {\blank[line]
- \begingroup
- \EveryPar {\AdaptShape}} % beware: \ABBREV aan begin gaat fout
-
-\def\StopItem
- {\endgraf
- \endgroup
- \blank[line]}
-
-\def\StartType
- {\blank[halfline]
- \begingroup
- \EveryPar {\AdaptShape}
- \dontleavehmode \quad}
-
-\def\StopType
- {\endgraf
- \endgroup
- \blank[halfline]}
-
-\def\Title#1%
- {\page
- \setlayer
- [text]
- [preset=lefttop,
- rotation=90]
- {\color[white]{\scale[height=24pt]{\strut#1}}}}
-
-\def\SetBanner#1%
- {\setuplayer[base][state=repeat]
- \setlayer[base][preset=rightbottom]{\color[white]{\scale[height=9pt]{\strut#1}}}}
-
-\let\TitleFont\relax
-
-\startmode[atpragma]
- \definefontfeature[default][method=node,script=latn,language=dflt,liga=yes,onum=yes,kern=yes]
- \definefont[TitleFont][palatinosanscom-bold*default at 48pt]
- \definefont[MainTextFont][palatinosanscom-regular*default at 12pt] \setupinterlinespace[line=15pt]
- \appendtoks
- \MainTextFont % hack, as we define a bodyfont at that point (better have a proper typeface)
- \to \everystarttext
-\stopmode
-
-\doifnotmode{demo}{\endinput}
-
-\starttext
-
-\usemodule[abr-01]
-
-\SetBanner{tug 2007 san diego}
-
-\Title {hans hagen}
-
-\startstandardmakeup \TitleFont \setupinterlinespace[line=3ex] \vfill
-
-\StartItem \dontleavehmode \quad {\morecolor zapfino, a} \StopItem
-\StartItem \dontleavehmode \quad {\morecolor torture test} \StopItem
-\StartItem \dontleavehmode \quad {\morecolor for luatex} \StopItem
-
-\vfill \stopstandardmakeup
-
-\Title{loading fonts}
-
-\StartSteps
-
-\StartItem the \OPENTYPE\ font reader is borrowed from \FONTFORGE\ \FlushStep \StopItem
-\StartItem once it was ready, we could look into such a font \FlushStep \StopItem
-\StartItem it tooks while to figure out the format due to rather fuzzy specs \FlushStep \StopItem
-\StartItem it took us even more time to find out that the loader was flawed \FlushStep \StopItem
-\StartItem one reason was that fonts themselves may have bugs or be incomplete \FlushStep \StopItem
-\StartItem then we changed to \FONTFORGE\ version 2 \FlushStep \StopItem
-\StartItem this made the missing pieces surface in more complex feature handling \FlushStep \StopItem
-\StartItem while implementing features the new table format was cleaned up \FlushStep \StopItem
-
-\StopSteps
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-pre-68.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-68.mkii
deleted file mode 100644
index c22640efdd8..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-68.mkii
+++ /dev/null
@@ -1,152 +0,0 @@
-%D \module
-%D [ file=s-pre-68,
-%D version=2009.08.28,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 68,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\usemodule[pre-60,abr-02]
-
-% style
-
-\setuppapersize
- [S66][S66]
-
-\setuplayout
- [height=middle,
- width=middle,
- header=0pt,
- footer=0pt,
- backspace=2cm,
- topspace=2cm]
-
-\setupinteraction
- [state=start,
- click=no]
-
-\definecolor[maincolor][r=.4]
-
-\startreusableMPgraphic{page}
- StartPage ;
- fill Page enlarged 5mm withcolor \MPcolor{maincolor} ;
- StopPage ;
-\stopreusableMPgraphic
-
-\startreusableMPgraphic{next}
- fill ultriangle scaled .15PaperWidth withcolor white ;
-\stopreusableMPgraphic
-
-\startreusableMPgraphic{last}
- fill boundingbox(ultriangle scaled .15PaperWidth) withcolor white ;
-\stopreusableMPgraphic
-
-\startuniqueMPgraphic{bullit}
- fill ultriangle scaled 2ExHeight withcolor white ;
-\stopuniqueMPgraphic
-
-\definelayer
- [extra]
- [width=\paperwidth,
- height=\paperheight]
-
-\defineoverlay
- [page]
- [\reuseMPgraphic{page}]
-
-\setupbackgrounds
- [page]
- [background={page,extra}]
-
-\setupcolors
- [state=start,
- textcolor=white]
-
-\setuphead
- [chapter]
- [style=\bfc]
-
-\definehead[Title][title]
-
-\definesymbol[MyBullet][\uniqueMPgraphic{bullit}]
-
-\setupitemgroup[itemize][each][symbol=MyBullet]
-
-\startmode[asintended]
- \usetypescript[cambria]
- \setupbodyfont[cambria,14.4pt]
-\stopmode
-
-% interface
-
-\def\StartItems
- {\begingroup
- \StartSteps
- \startitemize
- \def\StartItems{\startitemize\def\StopItems{\stopitemize}}}
-
-\def\StopItems
- {\FlushStep
- \stopitemize
- \NextPageSymbol
- \StopSteps
- \endgroup}
-
-\def\Item
- {\def\Item{\FlushStep\item}
- \item}
-
-\def\NextPageSymbol
- {\setlayer
- [extra]
- [preset=rightbottom,offset=2mm]
- {\ifnum\realpageno=\lastpage
- \reuseMPgraphic{last}%
- \else\ifnum\realpageno>1
- \reuseMPgraphic{next}%
- \fi\fi
- \FlushStep}}
-
-\def\TitlePage#1#2%
- {\startstandardmakeup[bottom=,top=]
- \scale[width=\textwidth]{\framed[align=flushleft,foregroundstyle=\bf,frame=off]{#1}}
- \vfilll
- \hfill\scale[width=.5\textwidth]{\framed[align=flushright,foregroundstyle=\bf,frame=off]{#2}}
- \stopstandardmakeup}
-
-\doifnotmode{demo}{\endinput}
-
-\starttext
-
-\TitlePage{I'm running\\out of examples}{Hans Hagen\\Someplace, 2031}
-
-\Title{Alpha}
-
-\StartItems
-\Item one
-\Item two
-\Item three
-\StopItems
-
-\Title{Beta}
-
-\StartItems
-\Item four
-\Item five
-\Item six
-\StopItems
-
-\Title{Gamma}
-
-\StartItems
-\Item seven
-\Item eight
-\Item nine
-\StopItems
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-pre-71.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-pre-71.mkii
deleted file mode 100644
index 3431367685e..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-pre-71.mkii
+++ /dev/null
@@ -1,213 +0,0 @@
-% engine=luatex
-
-%D \module
-%D [ file=s-pre-71,
-%D version=2008.08.05,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Presentation Environment 71,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D I might improve this module so consider it experimental.
-
-% \enablemode[numbers]
-% \enablemode[paper]
-
-\usemodule[pre-60,abr-02]
-
-\setupinteraction[state=start,click=off]
-
-\definepapersize[wide][width=900pt,height=600pt]
-
-\setuppapersize[wide][wide]
-
-\setuplayout[page]
-
-% \setupbodyfont[15pt]
-
-\usetypescriptfile[type-hgz]
-\usetypescript[palatino-informal]
-\setupbodyfont[palatino-informal,15pt]
-
-\setupsorting[logo][style=]
-
-\startnotmode[paper]
- \setupbackgrounds[page][background=color,backgroundcolor=black]
-\stopnotmode
-
-\TransparencyHack
-
-\definelayer[page][width=\paperwidth,height=\paperheight]
-
-\definecolor[TopicColor-1][r=.3,g=.4,b=.5]
-\definecolor[TopicColor-2][r=.3,g=.5,b=.4]
-\definecolor[TopicColor-3][r=.4,g=.3,b=.5]
-\definecolor[TopicColor-4][r=.4,g=.5,b=.3]
-\definecolor[TopicColor-5][r=.5,g=.3,b=.4]
-\definecolor[TopicColor-6][r=.5,g=.4,b=.3]
-\definecolor[TopicColor-7][r=.35,g=.35,b=.6]
-\definecolor[TopicColor-8][r=.6,g=.35,b=.35]
-\definecolor[TopicColor-9][r=.35,g=.6,b=.35]
-
-\definecolor[TopicColor-0][t=.5,a=1,s=.5]
-\definecolor[TopicColor] [s=1]
-
-\setupcolors[state=start]
-\setupcolors[textcolor=TopicColor]
-
-\startluacode
- local locations = {
- 'lefttop',
- 'middletop',
- 'righttop',
- 'middleleft',
- 'middle',
- 'middleright',
- 'leftbottom',
- 'middlebottom',
- 'rightbottom',
- }
- local done, current, previous, n = table.tohash(locations,false), 0, 0, 0
- function document.reset_locations()
- done, current, previous, n = table.tohash(locations,false), 0, 0, 0
- end
- function document.next_location(loc)
- previous = current
- n = n + 1
- loc = loc and loc ~= "" and tonumber(loc)
- while true do
- current = loc or math.random(1,#locations)
- if not done[current] then
- done[current] = true
- break
- end
- end
- end
- function document.current_location()
- tex.print(locations[current] or "")
- end
- function document.previous_location()
- tex.print(locations[previous] or "")
- end
- function document.current_n()
- tex.print(tostring(current))
- end
- function document.previous_n()
- tex.print(tostring(previous))
- end
- function document.step()
- tex.print(tostring(n))
- end
-\stopluacode
-
-\def\StartTopics
- {\startstandardmakeup
- \ctxlua{document.reset_locations()}
- \doifnotmode{paper}{\StartLocalSteps}}
-
-\def\StopTopics
- {\doifnotmode{paper}{\StopLocalSteps}
- \flushlayer[page]
- \stopstandardmakeup}
-
-\def\StartTopic
- {\dosingleempty\doStartTopic}
-
-\def\doStartTopic[#1]%
- {\doifnotmode{paper}{\NextStep}
- \ctxlua{document.next_location("#1")}
- \startnotmode[paper]
- \doifnothing{#1}
- {\ifcase\ctxlua{document.previous_n()}\else
- \setlayer
- [page]
- [preset=\ctxlua{document.previous_location()}]
- \bgroup
- \doifnotmode{paper}{\startproperty[\StepLayer]}%
- \framed
- [offset=20pt,
- strut=no,
- align=normal,
- frame=off,
- height=\dimexpr\paperheight/3\relax,
- width=\dimexpr\paperwidth/3\relax,
- background=color,
- backgroundcolor=TopicColor-0]
- {}%
- \doifnotmode{paper}{\stopproperty}%
- \egroup
- \fi}
- \stopnotmode
- \setlayer
- [page]
- [preset=\ctxlua{document.current_location()}]
- \bgroup
- \doifnotmode{paper}{\startproperty[\StepLayer]}%
- \framed
- [offset=20pt,
- strut=no,
- align=\expdoifelse{#1}{}{normal}{middle,lohi},
- align=\expdoifelse{#1}{}{flushleft,verytolerant}{middle,lohi},
- frame=off,
- height=\dimexpr\paperheight/3\relax,
- width=\dimexpr\paperwidth/3\relax,
- background=color,
- backgroundcolor=TopicColor-\ctxlua{document.current_n()}]
- \bgroup
- \ignorespaces}
-
-\def\StopTopic
- {\removeunwantedspaces
- \egroup
- \doifnotmode{paper}{\stopproperty}%
- \egroup
- \startmode[numbers]
- \setlayerframed
- [page]
- [preset=\ctxlua{document.current_location()}]
- [height=\dimexpr\paperheight/3\relax,
- width=\dimexpr\paperwidth/3\relax,
- frame=off,
- foregroundstyle=\bfa,
- align={flushright,low}]
- {\doifnotmode{paper}{\startproperty[\StepLayer]}%
- \ctxlua{document.step()}\kern\strutdepth
- \doifnotmode{paper}{\stopproperty}}
- \stopmode}
-
-\logo [METAPOST] {MetaPost}
-
-\definefont[TitleFont][SansBold at 60pt]
-\definefont[TempFont] [SansBold at 12pt]
-
-\let\StartText\starttext
-\let\StopText \stoptext
-
-\doifnotmode{demo}{\endinput}
-
-\starttext
-
-\StartTopics
- \StartTopic[1] A \StopTopic
- \StartTopic[5] B \StopTopic
- \StartTopic[9] C \StopTopic
-\StopTopics
-
-\StartTopics
- \StartTopic A \StopTopic
- \StartTopic B \StopTopic
- \StartTopic C \StopTopic
- \StartTopic D \StopTopic
- \StartTopic E \StopTopic
- \StartTopic F \StopTopic
- \StartTopic G \StopTopic
- \StartTopic H \StopTopic
- \StartTopic I \StopTopic
-\StopTopics
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-ptj-01.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-ptj-01.mkii
deleted file mode 100644
index a14a03ef145..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-ptj-01.mkii
+++ /dev/null
@@ -1,425 +0,0 @@
-%D \module
-%D [ file=s-ptj-01,
-%D version=2009.12.18,
-%D title=\CONTEXT\ Style File,
-%D subtitle=PracTeX Journal Style,
-%D author=Aditya Mahajan,
-%D email=adityam at umich dot edu,
-%D date=\currentdate,
-%D copyright={Aditya Mahajan}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%M % These macros are needed to compile the documentation.
-%M \def\PracTeX {Prac\kern-0.07em\TeX}
-%M \def\PRACTEX {\PracTeX}
-%M \def\pracjourn {The \PRACTEX\ Journal}
-%M \useurl[pracjourn][http://www.tug.org/pracjourn/][][\pracjourn]
-%M \useurl[texgyre] [http://www.gust.org.pl/projects/e-foundry/tex-gyre/]
-
-\writestatus {loading} {Context Module for the PracTeX Journal}
-
-%D This module is for producing acticles for \from[pracjourn]. It merely copies the
-%D layout of the the \LATEX\ class \filename{pracjourn.cls} available from
-%D \pracjourn\ website (\url[pracjourn]). This module has a filename synonym
-%D \filename{pracjourn}. So to use this module, you can write:
-%D \starttyping
-%D \usemodule[pracjourn]
-%D \stoptyping
-%D A sample document is given at the end of this file. The typeset sample can
-%D be obtained by
-%D \starttyping
-%D texmfstart texexec --mode=demo s-ptj-01.tex
-%D \stoptyping
-%D The documentation is written as comments. If you want to see a \PDF\ copy
-%D \starttyping
-%D texmfstart texexec --module s-ptj-01.tex
-%D \stoptyping
-
-\startmodule[pracjourn]
-
-\unprotect
-
-%D First let's setup the paper size and layout for \pracjourn. I am actually not
-%D sure about the \quote{official} layout requirement for \pracjourn\ and have
-%D reverse engineered the layout from the typeset \LATEX\ examples. If you
-%D feel that anything is wrong here, please let me know.
-
-\setuppapersize
- [letter][letter]
-
-\setuplayout
- [ width=middle,
- height=middle,
- location=middle,
- topspace=1.25in,
- bottomspace=1in,
- backspace=1in,
- cutspace=1in,
- leftmargin=0.25in,
- rightmargin=0.25in,
- leftmargindistance=0in,
- rightmargindistance=0in,
- header=1in,
- footer=.5in,
- headerdistace=0in,
- footerdistance=.25in,
- ]
-
-%D Next we do the font setup. \pracjourn\ uses mathpazo for roman and math faces and
-%D uses latin modern for sans serif and monotype. For the main face, 12pt is
-%D used with a 15.5pt baseline skip. Font protrusion is enabled, but font
-%D expansion is not. We follow these conventions. \CONTEXT\ uses Pagella fonts
-%D from \TEX{gyre} project, so we use them instead.
-
-\usetypescript [serif,sans,mono] [hanging] [pure]
-\setupalign [hanging]
-\usetypescript [palatino][encoding=texnansi]
-\setupbodyfont [palatino,12pt]
-
-\definefont [titlefont] [Regular at 20pt]
-\definefont [authorfont] [Regular at 14pt]
-
-\setupbodyfontenvironment
- [12pt]
- [interlinespace=15.5pt,em=italic]
-
-\setupbodyfontenvironment
- [11pt]
- [interlinespace=13.6pt,em=italic]
-
-%D The variables for the article are stored in the \mono{pracjourn} namespace.
-%D To initialize these variables use
-%D \starttyping
-%D \setvariables
-%D [pracjourn]
-%D [ title=Tile of the Article,
-%D author=Name of Author,
-%D address=Write your Address,
-%D revision={d=14,m=11,y=2006},
-%D copyright=Whatever you want,
-%D ]
-%D \stoptyping
-%D \mono{title} and \mono{author} should always be entered (even though this
-%D module does not make them mandatory, it makes little sense to have an
-%D article without a title or author. Other variables are optional. If a
-%D revision is not written, current date will be used to show the revision.
-%D Other variables for the article are the author's email address and website
-%D url. Due to catcode problems, it is not always possible to reliably enter
-%D these using the variable mechanism. To enter these use \type|\useURL|
-%D \starttyping
-%D \useURL[email][mailto:address@whatever.com][][address@whatever.com]
-%D \useURL[website][link to your homepage]
-%D \stoptyping
-%D If either of these \URL's are not present, they will be silently ignored
-%D while generating the title.
-
-\setvariables [pracjourn] [ title=]
-\setvariables [pracjourn] [ author=]
-\setvariables [pracjourn] [ address=]
-\setvariables [pracjourn] [copyright=]
-\setvariables [pracjourn] [ revision=]
-
-%D We use the buffer \filename{abstract} for the abstract. So to enter the
-%D abstract, write
-%D \starttyping
-%D \startbuffer[abstract]
-%D Write your abstract
-%D \stopbuffer
-%D \stoptyping
-%D Right now, there is no mechanism to inhibt abstracts. In case someone
-%D requires it, such a mechanism is easy to implement.
-
-\startbuffer[abstract]
-\stopbuffer
-
-%D The actual title with the additional information is typset by calling
-%D \starttyping
-%D \setups{title}
-%D \stoptyping
-%D Remember that the \type|\setvariables[pracjourn][...]| step must be done
-%D before \type|\setups{title}|.
-
-\setuphead
- [title]
- [style=\titlefont,
- after={\blank[big]}]
-
-%D Next we define internal frames to take care of the layout of the extra
-%D material in the title.
-
-\defineframed
- [pracjourninfotitle]
- [ frame=off,
- strut=yes,
- width=0.1\textwidth,
- height=fit,
- align=left,
- location=hanging,
- ]
-
-\defineframed
- [pracjourninfodetails]
- [ frame=off,
- strut=yes,
- width=0.85\textwidth,
- height=fit,
- align=normal,
- location=hanging,
- ]
-
-\newif\ifpracjourntitleskipdone
-
-\def\pracjourninfo#1#2%
- {\pracjourntitleskipdonetrue
- \hbox to \textwidth
- \bgroup
- \hfill \pracjourninfotitle{#1}
- \hfill \pracjourninfodetails{#2}
- \egroup\endgraf}
-
-%D Now we take care of the actual layout of the title. Most of this is
-%D heuristic, as I was trying to get the same visual effect as the
-%D \filename{pracjourn.cls} class. If something does not match, please let me
-%D know. The information is typeset as
-%D \starttyping
-%D \hfill <box of .1\textwidth> \hfill <box of .85\textwidth>
-%D \stoptyping
-%D at 11pt size. We also add the title and author information in the \PDF\
-%D metadata.
-
-\startsetups [title]
-% Place the tile and the author
- \title{\getvariable{pracjourn}{title}}
- \blank[medium]
- \bgroup\authorfont\setupinterlinespace
- \getvariable{pracjourn}{author} \endgraf\egroup
- \blank[2*big]
-% Place the additional information
- \bgroup\switchtobodyfont[11pt]
- \setupindenting[no]
- \doifurldefinedelse{email}
- {\pracjourninfo{Email}{\tttf\from[email]\relax}}
- \empty
- \doifurldefinedelse{website}
- {\pracjourninfo{Website}{\from[website]\relax}}
- \empty
- \doifsomething{\getvariable{pracjourn}{address}}
- {\pracjourninfo{Address}{\getvariable{pracjourn}{address}}}
- \ifpracjourntitleskipdone \blank[big] \fi
- \pracjourninfo{Abstract}
- {\setupindenting[yes]
- \setupinterlinespace
- \getbuffer[abstract]
- \endgraf}
- \egroup
- \blank[big]
- \setups{pracjourndate}
- % Add information to pdfmetadata
- \setupinteraction
- [title={\getvariable{pracjourn}{title}},
- author={\getvariable{pracjourn}{author}},
- subtitle={The PracTeX Journal Article}]
-\stopsetups
-
-% If revision number is present, write it to \filename{_rev.tex}
-% FIXME: Do we need to ensure that the dates and month are two digits?
-\startrawsetups [pracjourndate]
- \doifsomething{\getvariable{pracjourn}{revision}}
- {\expanded{\setvariables[pracjourn:date][y=,m=,d=,\getvariable{pracjourn}{revision}]}
- \immediate\openout \scratchwrite _rev.tex
- \immediate\write \scratchwrite
- {\getvariable{pracjourn:date}{y}/\getvariable{pracjourn:date}{m}/\getvariable{pracjourn:date}{d}}
- \immediate\closeout\scratchwrite}
-\stoprawsetups
-
-%D Next we setup the header and footer for the first page. \pracjourn\ formats the
-%D header as
-%D \startlines
-%D The PracTeX Journal, year, No. number
-%D Article revision year/mm/dd
-%D \stoplines
-%D If a copyright notice is present, it is printed right aligned on the bottom
-%D of first page. Otherwise the footer on the first page is empty.
-
-\startsetups [pracjourntitleheader]
- \framed[frame=off,width=\textwidth,align=normal,location=low]
- {\small\setupinterlinespace
- \doifelsenothing{\pracjournissue}
- {For submission to \pracjourn}
- {\pracjournissue}
- \endgraf
- \doifelsenothing{\getvariable{pracjourn}{revision}}
- {Draft of \currentdate[year,/,mm,/,dd]}
- {Article revision\space
- \expanded{\date[\getvariable{pracjourn}{revision}][year,/,mm,/,dd]}}
- \endgraf}
-\stopsetups
-
-\startsetups [pracjourntitlefooter]
- \framed[frame=off,width=\textwidth,align=flushright,location=low]
- {\small\setupinterlinespace \getvariable{pracjourn}{copyright}\endgraf}
-\stopsetups
-
-\definetext [pracjourntitleheader] [header] [\setups{pracjourntitleheader}][]
-\definetext [pracjourntitlefooter] [footer] [\setups{pracjourntitlefooter}]
-
-\setuphead
- [title]
- [header=pracjourntitleheader,
- footer=pracjourntitlefooter]
-
-%D For rest of the pages, page number is printed on the middle of the footer.
-
-\setuppagenumbering [location={footer,middle}, style=mediaeval]
-
-%D Next we setup the formating for the sections. \pracjourn\ wants font sizes of
-%D 17pt, 14pt, and 12pt respectively for section, subsection, and
-%D subsubsection. By default, \tex{tfa} is 1.2, \tex{tfb} is 1.4, so the sizes
-%D come out close to what is required. The section number is typset in
-%D oldstyle fonts.
-
-\setuphead
- [section,subject]
- [ style=\tfb,
- numberstyle=mediaeval,
- before={\blank[2*big]},
- after={\blank[big]},
- ]
-
-\setuphead
- [subsection,subsubject]
- [ style=\tfa,
- numberstyle=mediaeval,
- before={\blank[big]},
- after={\blank[medium]},
- ]
-
-\setuphead
- [subsubsection,subsubsubject]
- [ style=\tf,
- numberstyle=mediaeval,
- before={\blank[medium]},
- after={\blank},
- ]
-
-%D Now we setup the captions. The captions head are set in normal font, and
-%D the caption number is set in oldstlyle.
-
-\setupcaptions [headstyle=normal,stopper=:,conversion=mediaeval]
-
-%D Footnotes are placed in a box with a width of 1.5em. The footnote numeral
-%D are set in oldstyle font.
-
-\setupnote
- [footnote]
- [margindistance=0em,
- conversion=mediaeval,
- command=\pracjournfootnote,
- ]
-
-\setupnotedefinition [footnote] [location=left,hang=1]
-
-\def\pracjournfootnote#1{\hbox to 1.5em{#1.}}
-
-%D \pracjourn\ uses dash as the first level of itemize and text period as the second
-%D level. The third level is left unspecified.
-
-\definesymbol [1] [{\symbol[dash]}]
-\definesymbol [2] [\periodcentered]
-
-\setupitemize [each] [packed]
-\setupitemize [1] [packed,autointro] [margin=1em]
-
-%D We enable colors, interaction and bookmarks.
-
-\setupinteraction [state=start,color=darkred,style=normal]
-\setupurl [color=darkred]
-\setupcolors [state=start]
-\placebookmarks [section,subsection] [section]
-
-%D We setup medium indenting, whitespace and blanks.
-
-\setupindenting [medium,yes]
-\setupwhitespace [medium]
-\setupblank [medium]
-
-%D We define logos for \PRACTEX\ and \pracjourn. These definitions are copied from
-%D \filename{pracjourn.cls} and can be accessed by \type|\PracTeX|,
-%D \type|\PRACTEX| and \type|\pracjourn|.
-
-\def\PracTeX{Prac\kern-0.07em\TeX}
-\def\PRACTEX{\PracTeX}
-\def\pracjourn {The \PRACTEX\ Journal}
-
-%D \filename{pracjourn.cls} provides two macros \type|\ctanfile| and
-%D \type|\ctanloc|. I am not sure what is the advantage of these macors. If
-%D you want to use these macros, you can use the \type|\useURL| mechanism of
-%D \CONTEXT. For example
-%D \starttyping
-%D \useURL[pracjourn][http://ctan.org/get?fn=/macros/contrib/latex/pracjourn][][\mono{CTAN:macros/contrib/latex/pracjourn}]
-%D The \LATEX\ style files for \pracjourn\ is localed at \from[pracjourn]
-%D \stoptyping
-
-%D For the final version of the paper, the string \quotation{The PracTeX
-%D Journal year, No x} is written on the header. This only happens when the
-%D current directory contains a file \filename{_iss.tex} which contains string
-%D like \quotation{pracjourn 2006 No 04, 2006-11-15}. This step is usually taken in
-%D the final production of the article. If this file is absent, \quotation{For
-%D submission to the PracTeX Journal} is written instead. The next macros are
-%D used to parse this file.
-
-\let\pracjournissue\empty
-
-\def\parse@iss pracjourn #1 No #2, #3-#4-#5\@nil%
- {\!!counta#2\relax
- \edef\pracjournissue{\pracjourn, #1, No.\,\the\!!counta}}
-
-%D Read the \filename{_iss.tex} file, if present to determine the current
-%D issue.
-
-\immediate\openin\scratchread _iss.tex
-\ifeof\scratchread\else
- \read \scratchread to \!!stringa
- \expandafter\parse@iss\!!stringa\@nil
-\fi
-\immediate\closein\scratchread
-
-\protect
-
-\stopmodule
-
-\doifnotmode{demo}{\endinput}
-
-\usemodule[pracjourn]
-
-\setvariables
- [pracjourn]
- [ title=\PRACTEX\ Article in \CONTEXT,
- author=Aditya Mahajan,
- address={Ann Arbor,\\ Michigan, USA.},
- revision={y=2006,m=11,d=14},
- copyright={Copyright \copyright\ 2006 Aditya Mahajan.}
- ]
-
-\useURL[website][http://www.eecs.umich.edu/~adityam]
-\useURL[email][mailto:adityam@umich.edu][][adityam@umich.edu]
-
-%D If any of the above information is not provided, the corresponding entry
-%D will not apprear in the title.
-
-\startbuffer[abstract]
-Write abstract here
-\stopbuffer
-
-\starttext \setups[title]
-
-\section{Introduction}
-
-Write your article \unknown
-
-\stoptext
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/s-syntax.mkii b/Master/texmf-dist/tex/context/modules/mkii/s-syntax.mkii
deleted file mode 100644
index 6d1d59697ec..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/s-syntax.mkii
+++ /dev/null
@@ -1,54 +0,0 @@
-%D \module
-%D [ file=s-syntax, % was: 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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%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/modules/mkii/x-calcmath.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-calcmath.mkii
deleted file mode 100644
index a649aa64878..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-calcmath.mkii
+++ /dev/null
@@ -1,24 +0,0 @@
-%D \module
-%D [ file=m-calcmath,
-%D version=2006.04.24, % 1999.11.06,
-%D title=\CONTEXT\ Modules,
-%D subtitle=Calculator Math,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-\writestatus{calcmath}{this is not supported in mkii}
-
-\let\inlinecalcmath \inlinemathematics
-\def\displaycalcmath \displaymathematics
-\let\calcmath \inlinecalcmath
-\let\icm \inlinecalcmath
-\let\dcm \displaycalcmath
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-chemml.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-chemml.mkii
deleted file mode 100644
index 08d64e54b80..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-chemml.mkii
+++ /dev/null
@@ -1,212 +0,0 @@
-%D \module
-%D [ file=m-chemml,
-%D version=2001.09.12,
-%D title=\CONTEXT\ XML Modules,
-%D subtitle=Loading CHEMML Filters,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\useXMLfilter[cml]
-
-%D Structural formulas are codes in a \PPCHTEX\ way; this
-%D will change -)
-%D
-%D \startbuffer
-%D <dchem>
-%D <structure>
-%D <component>
-%D <graphic>SIX,B</graphic>
-%D <graphic>R135</graphic>
-%D </component>
-%D <component>
-%D <graphic>R246</graphic>
-%D </component>
-%D <component>
-%D <graphic>RZ</graphic>
-%D <text>A,B,C,D,E,F</text>
-%D </component>
-%D <component>
-%D <graphic>Z</graphic>
-%D <oxidation n="3">A</oxidation>
-%D <text>A</text>
-%D <annotation location="t">
-%D <text>B</text>
-%D <caption>x<context:b>x<context:compound token="*"/>x</context:b>x</caption>
-%D </annotation>
-%D <oxidation n="3" sign="+">B</oxidation>
-%D <text>C,D,E,F</text>
-%D </component>
-%D </structure>
-%D <structure>
-%D <component>
-%D <graphic>SIX,B</graphic>
-%D <graphic>r135</graphic>
-%D </component>
-%D <component>
-%D <graphic>R246</graphic>
-%D </component>
-%D <component>
-%D <graphic>RZ</graphic>
-%D <text>A,B,C,D,E,F</text>
-%D </component>
-%D </structure>
-%D </dchem>
-%D \stopbuffer
-%D
-%D \typebuffer
-
-% \ifx\XMLgtoks\undefined \newtoks\XMLgtoks \fi
-% \ifx\XMLttoks\undefined \newtoks\XMLttoks \fi
-%
-% \defineXMLenvironment [structure]
-% {\startchemical\ignorespaces}
-% {\relax\stopchemical}
-%
-% \def\chemicalXMLg#1% \defineXMLcollect [graphic] \XMLgtoks
-% {\doifelsenothing{\the\XMLgtoks}
-% {\doglobal\appendtoks #1\to\XMLgtoks\ignorespaces}
-% {\doglobal\appendtoks,#1\to\XMLgtoks\ignorespaces}}
-%
-% \def\chemicalXMLt#1%
-% {\doifelsenothing{\the\XMLttoks}
-% {\doglobal\appendtoks #1\to\XMLttoks\ignorespaces}
-% {\doglobal\appendtoks,#1\to\XMLttoks\ignorespaces}}
-%
-% \defineXMLenvironment [component] [type=]
-% {\global\XMLgtoks\emptytoks
-% \global\XMLttoks\emptytoks
-% \defineXMLargument[graphic]\chemicalXMLg
-% \defineXMLargument[text]\chemicalXMLt
-% \ignorespaces}
-% {\expanded{\chemical[\the\XMLgtoks][\the\XMLttoks]}%
-% \ignorespaces}
-%
-% \defineXMLargument [oxidation] [sign=,n=1] \chemicalXMLo % +/- 1..7
-%
-% \def\chemicalXMLo#1%
-% {\expanded{\chemicalXMLt
-% {\noexpand\chemicaloxidation{\XMLop{sign}}{\XMLop{n}}{#1}}}%
-% \ignorespaces}
-%
-% \defineXMLenvironment [annotation] [location=]
-% {\bgroup
-% \defineXMLenvironmentsave[text]{\ignorespaces}{\ignorespaces}%
-% \defineXMLenvironmentsave[caption]{\ignorespaces}{\ignorespaces}%
-% \ignorespaces}
-% {\scratchtoks{\chemicalright}%
-% \processaction
-% [\XMLop{location}]
-% [ t=>\scratchtoks{\chemicaltop},
-% b=>\scratchtoks{\chemicalbottom},
-% l=>\scratchtoks{\chemicalleft},
-% r=>\scratchtoks{\chemicalright},
-% lc=>\scratchtoks{\chemicalleftcentered},
-% rc=>\scratchtoks{\chemicalrightcentered},
-% tl=>\scratchtoks{\chemicaltopleft},
-% bl=>\scratchtoks{\chemicalbottomleft},
-% tr=>\scratchtoks{\chemicaltopright},
-% br=>\scratchtoks{\chemicalbottomright},
-% lt=>\scratchtoks{\chemicallefttop},
-% lb=>\scratchtoks{\chemicalleftbottom},
-% rt=>\scratchtoks{\chemicalrighttop},
-% rb=>\scratchtoks{\chemicalrightbottom},
-% x=>\scratchtoks{\chemicaltighttext},
-% sl=>\scratchtoks{\chemicalsmashedleft},
-% sm=>\scratchtoks{\chemicalsmashedmiddle},
-% sr=>\scratchtoks{\chemicalsmashedright}]%
-% \expanded{\chemicalXMLt
-% {\the\scratchtoks{\XMLflush{text}}{\XMLflush{caption}}}}%
-% \egroup
-% \ignorespaces}
-%
-% \defineXMLenvironment [forever]
-% {\chemicalXMLt{\[}\ignorespaces}
-% {\chemicalXMLt{\]}\ignorespaces}
-
-\ifx\XMLgtoks\undefined \newtoks\XMLgtoks \fi
-\ifx\XMLttoks\undefined \newtoks\XMLttoks \fi
-
-\startXMLmapping [cml]
-
-% this will be a more natural method; this also triggers it
-
-\installXMLunknownremapping
-
-% extensions
-
-\remapXMLsequence [structure] [CPA] \doCMLstructure
-\remapXMLsequence [component] [CPA] \doCMLcomponent
-\remapXMLsequence [graphic] [CPA] \doCMLgraphic
-\remapXMLsequence [text] [CPA] \doCMLtext
-
-\remapXMLsequence [caption] [CPA] \doCMLcaption
-\remapXMLsequence [oxidation] [CPA] \doCMLoxidation
-\remapXMLsequence [annotation][CPA] \doCMLannotation
-\remapXMLsequence [forever] [CPA] \doCMLforever
-
-\def\doCMLstructure#1#2%
- {\startchemical\ignorespaces#2\unskip\stopchemical}
-
-\def\doCMLgraphic#1#2%
- {\doifelsenothing{\the\XMLgtoks}
- {\uppercase{\doglobal\appendtoks #2\to\XMLgtoks\ignorespaces}}
- {\uppercase{\doglobal\appendtoks,#2\to\XMLgtoks\ignorespaces}}%
- \ignorespaces}
-
-\def\doCMLtext#1#2%
- {\doifelsenothing{\the\XMLttoks}
- {\doglobal\appendtoks #2\to\XMLttoks\ignorespaces}
- {\doglobal\appendtoks,#2\to\XMLttoks\ignorespaces}%
- \ignorespaces}
-
-\def\doCMLcomponent#1#2%
- {\global\XMLgtoks\emptytoks
- \global\XMLttoks\emptytoks
- \ignorespaces#2\unskip
- \expanded{\chemical[\the\XMLgtoks][\the\XMLttoks]}%
- \ignorespaces}
-
-\def\doCMLannotation#1#2%
- {\getXMLarguments{cml}{location="" #1}%
- \def\dodoCMLannotation##1%
- {\doCMLtext\empty{##1%
- {\let\doCMLtext \secondoftwoarguments\processXMLRchild{text}{#2}}%
- {\let\doCMLcaption\unmapXMLdata \processXMLRchild{caption}{#2}}}}%
- \processaction
- [\XMLpar{cml}{location}{r}]
- [ t=>\dodoCMLannotation\chemicaltop,
- b=>\dodoCMLannotation\chemicalbottom,
- l=>\dodoCMLannotation\chemicalleft,
- r=>\dodoCMLannotation\chemicalright,
- lc=>\dodoCMLannotation\chemicalleftcentered,
- rc=>\dodoCMLannotation\chemicalrightcentered,
- tl=>\dodoCMLannotation\chemicaltopleft,
- bl=>\dodoCMLannotation\chemicalbottomleft,
- tr=>\dodoCMLannotation\chemicaltopright,
- br=>\dodoCMLannotation\chemicalbottomright,
- lt=>\dodoCMLannotation\chemicallefttop,
- lb=>\dodoCMLannotation\chemicalleftbottom,
- rt=>\dodoCMLannotation\chemicalrighttop,
- rb=>\dodoCMLannotation\chemicalrightbottom,
- x=>\dodoCMLannotation\chemicaltighttext,
- sl=>\dodoCMLannotation\chemicalsmashedleft,
- sm=>\dodoCMLannotation\chemicalsmashedmiddle,
- sr=>\dodoCMLannotation\chemicalsmashedright]%
- \ignorespaces}
-
-\def\doCMLoxidation#1#2%
- {\getXMLarguments{cml}{sign="" n="1" #1}%
- \expanded{\doCMLtext{}%
- {\noexpand\chemicaloxidation{\XMLpar{cml}{sign}{}}{\XMLpar{cml}{n}{}}{#2}}}%
- \ignorespaces}
-
-\def\doCMLforever#1#2{\[#2\]}
-
-\stopXMLmapping
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-chemml.xsd b/Master/texmf-dist/tex/context/modules/mkii/x-chemml.xsd
deleted file mode 100644
index b511219115c..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-chemml.xsd
+++ /dev/null
@@ -1,93 +0,0 @@
-<?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/modules/mkii/x-contml.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-contml.mkii
deleted file mode 100644
index 22fffa50a37..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-contml.mkii
+++ /dev/null
@@ -1,491 +0,0 @@
-%M \usemodule [contml] \autoXMLnamespace [context]
-%M \definefilesynonym [context] [x-contml.xsd]
-
-%D \module
-%D [ file=x-contml,
-%D version=mid 2001,
-%D title=\CONTEXT\ XML Support,
-%D subtitle=Basic \CONTEXT\ commands,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% This module provides some basic \XML\ elements. These definitions
-% are highly experimental and serve as a playground for interface
-% development.
-
-\unprotect
-
-%D \elements {include}
-%D
-%D \startbuffer
-%D You can include another file in the current document with the
-%D <element>include</element> element. When including the file, &context;
-%D will look at the suffix, in order to decide how to include the file.
-%D
-%D <verbatim>
-%D <line><include name="mine"/></line>
-%D <line><include name="mine" type="txt"/></line>
-%D <line><include name="mine" type="tex"/></line>
-%D </verbatim>
-%D \stopbuffer
-%D
-%D \showelements [context] [include]
-
-\defineXMLsingular [context:include] [name=,type=xml]
- {\doifsomethingXMLop{name}
- {\processaction
- [\XMLop{type}]
- [xml=>\readfile{\XMLop{name}}\donothing\donothing,
- tex=>{{\disableXML\readfile{\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
-%D \startbuffer
-%D Instead of using hard coded compound tokens, you should use the
-%D <element>compound</element> element, as in high<compound token="/" />low.
-%D The overhead in keying is rewarded with proper symbols and hyphenation.
-%D \stopbuffer
-%D
-%D \showelements [context] [compound]
-
-\ifx\normalcompound\undefined \let\normalcompound=| \fi
-
-% \defineXMLsingular [context:compound] [token=]
-% {\expanded{\normalcompound\XMLop{token}}|}
-
-% \defineXMLsingular [context:compound] [token=]
-% {\ifmmode
-% \doifXMLop{token}{\XMLop{token}}{\compoundhyphen}%
-% \else
-% \expanded{\normalcompound\XMLop{token}}|%
-% \fi}
-
-\defineXMLsingular [context:compound] [token=]
- {\mathortext % disc comm looks ahead, so \relax
- {\doifXMLop{token}{\XMLop{token}}\compoundhyphen}%
- {\expanded{\directdiscretionary{\XMLop{token}}}\relax}}
-
-\defineXMLenvironmentsave [context:cp]
- {}
- {\expanded{\directdiscretionary{\XMLflush{cp}}}\relax}
-
-%D \elements {p}
-%D
-%D \startbuffer
-%D <p>Although for &tex; it is often enough to mark the end of a paragraph,
-%D in &xml; we want to add a bit more structure. <p/> This permits a more
-%D robust implementation of begin<compound/>of<compound/>par actions</p>
-%D \stopbuffer
-%D
-%D \showelements [context] [p]
-
-\defineXMLenvironment [context:p] {} \endgraf
-\defineXMLsingular [context:p] \endgraf
-
-%D \elements {pageref,textref,lineref}
-%D
-%D \startbuffer
-%D You can ask for a page (<pageref label="lastpage">the last pagenumber
-%D is</pageref> aka page <pageref label="lastpage"/>), text or line reference
-%D with the following three elements. The label may be any valid &context;
-%D reference label.
-%D \stopbuffer
-%D
-%D \showelements [context] [references]
-
-\defineXMLpickup [context:pageref] [label=] {\at} {[\XMLop{label}]}
-\defineXMLpickup [context:textref] [label=] {\in} {[\XMLop{label}]}
-\defineXMLpickup [context:lineref] [label=] {\inline} {[\XMLop{label}]}
-
-%D \elements{text}
-%D
-%D \startbuffer
-%D If you have a self contained &xml; file, you need to signal &context; the
-%D begin and end of the document. The following elements can be used for
-%D that purpose:
-%D
-%D <verbatim>
-%D <line><text></line>
-%D <line> ...</line>
-%D <line></text></line>
-%D </verbatim>
-%D \stopbuffer
-%D
-%D \showelements [context] [text]
-
-\defineXMLenvironment [context:text] \starttext \stoptext
-
-%D \elements {em}
-%D
-%D \startbuffer
-%D Authors often want some control over the way a text is typeset, which is
-%D why we provide the <element>em</element> element. We may only hope that
-%D the author is <em>consistent</em> in his decisions on what to emphasize.
-%D \stopbuffer
-%D
-%D \showelements [context] [em]
-
-\defineXMLgrouped [context:em] \em
-
-%D \elements {b}
-%D
-%D \startbuffer
-%D Bold is not always <b>beautiful</b> but if you really want it, you can
-%D get it by using this element.
-%D \stopbuffer
-%D
-%D \showelements [context] [b]
-
-\defineXMLgrouped [context:b] \bf
-
-%D \elements {verbatim,typing,line,verb,type}
-%D
-%D \startbuffer
-%D Although the following method can be used to typeset a piece of code
-%D verbatim
-%D
-%D <![CDATA[
-%D Dit \is nogal verbatim !
-%D Dit is {nogal} verbatim !
-%D Dit is <nogal> verbatim !
-%D ]]>
-%D
-%D we prefer the more structured:
-%D
-%D <verbatim>
-%D <line>Dit \is nogal verbatim !</line>
-%D <line>Dit is {nogal} verbatim !</line>
-%D <line>Dit is <nogal> verbatim !</line>
-%D </verbatim>
-%D \stopbuffer
-%D
-%D The element to tag in<compound/>line verbatim is <type><verb></type>.
-%D
-%D \showelements [context] [verbatim]
-
-\defineXMLenvironment [context:verbatim]
- {\startpacked
- \defineXMLargument[context:line]{\endgraf\type}}
- {\stoppacked}
-
-\defineXMLenvironment [context:typing]
- {\startpacked\defineXMLargument[context:line]{\endgraf\type}}
- {\stoppacked}
-
-\defineXMLargument [context:verb] \type
-\defineXMLargument [context:type] \type
-
-%D \elements {itemize,item}
-%D
-%D \startbuffer
-%D Itemized lists are quite common in documents, al least in the ones that
-%D we produce. For the moment we only provide a few options, later we will
-%D hook it into the &context; attribute handler.
-%D
-%D <itemize type="a">
-%D <item label="bla"> test </item>
-%D <item> test </item>
-%D </itemize>
-%D
-%D <itemize packed="yes">
-%D <item label="more bla"> test </item>
-%D <item> test <em>what?</em></item>
-%D </itemize>
-%D \stopbuffer
-%D
-%D \showelements [context] [itemize]
-
-\defineXMLenvironment [context:itemize] [type=,packed=]
- {\let\XMLoptions\empty
- \doifsomethingXMLop{type}{\addtocommalist{\XMLop{type}}\XMLoptions}%
- \doifXMLop{packed}{yes}{\addtocommalist{packed}\XMLoptions}%
- \expanded{\startitemize[\XMLoptions]}}
- {\stopitemize}
-
-\defineXMLenvironment [context:item] [label=]
- {\expanded{\item[\XMLop{label}]}}
- {\endgraf}
-
-%D \elements {externalfigure}
-%D
-%D \startbuffer
-%D The previous examples already demonstrated how we can include a graphic:
-%D
-%D <verbatim>
-%D <line><externalfigure file="cow" width="5cm" /></line>
-%D </verbatim>
-%D \stopbuffer
-%D
-%D \showelements [context] [externalfigure]
-
-\defineXMLsingular [context:externalfigure] [\??ef] [base=,label=,file=]
- {\bgroup % \getXMLta \expandXMLta \expandXMLtp{file}%
- \expandXMLta
- \getXMLta % expand entities first
- \doifelsenothing{\XMLtp{label}}
- {\expanded{\externalfigure[\XMLtp{file}][\XMLta]}}
- {\doifsomething{\XMLtp{base}}{\usefigurebase[\XMLtp{base}]}%
- \expanded{\externalfigure[\XMLtp{label}][\XMLta]}}
- \egroup}
-
-%D \elements {fixed}
-%D \setupexternalfigures[directory={../sample}]
-%D \startbuffer
-%D Something fixed will end up at the place where it defined in the input
-%D stream. The main idea behind this element is that it gives you control
-%D over the placement.
-%D
-%D <itemize>
-%D <item>
-%D <fixed align="high">
-%D <content>
-%D <externalfigure file="cow" frame="on" height="1cm" />
-%D </content>
-%D </fixed>
-%D </item>
-%D </itemize>
-%D \stopbuffer
-%D
-%D \showelements [context] [fixed]
-
-\defineXMLenvironment [context:fixed] [type=figure,location=,label=]
- {\bgroup
- \defineXMLsave[context:caption]
- \defineXMLsave[context:content]}
- {\expanded{\startfixed[\XMLop{location}]}%
- \doifXMLdataelse{context:caption}
- {\startcombination[1*1]
- {\XMLflush{context:content}} {\XMLflush{context:caption}}
- \stopcombination}
- {\XMLflush{context:content}}%
- \stopfixed
- \egroup}
-
-%D \elements {float}
-%D \setupexternalfigures[directory={../sample}]
-%D \startbuffer
-%D A floating body will be placed at the first location available, unless
-%D a location is specified. As with the <element>fixed</element> element,
-%D you can provide a caption.
-%D
-%D <float type="figure">
-%D <content>
-%D <externalfigure file="cow" frame="on" height="3cm" />
-%D </content>
-%D <caption>This is a cow!</caption>
-%D </float>
-%D \stopbuffer
-%D
-%D \showelements [context] [float]
-
-\defineXMLenvironment [context:float] [type=figure,location=here,label=]
- {\bgroup
- \defineXMLsave[context:caption]
- \defineXMLsave[context:content]}
- {\expanded
- {\placefloat
- [\XMLop{type}] [\XMLop{location}] [\XMLop{label}]
- {\XMLflush{context:caption}} {\XMLflush{context:content}}}
- \egroup}
-
-%D \elements {quotation,quote}
-%D
-%D \startbuffer
-%D There is a (not so) subtle difference between a display
-%D <quotation>quotation</quotation> and an <quote>in<compound/>line</quote>
-%D one.
-%D \stopbuffer
-%D
-%D \showelements [context] [table]
-
-\defineXMLgrouped [context:quote] \quote
-\defineXMLgrouped [context:quotation] \quotation
-
-%D \elements {table,tr,td}
-%D
-%D \startbuffer
-%D There are (currently) three table mechanisms in &context;. One of them
-%D resembles the well known &html; tables.
-%D
-%D <?context-command \startlinecorrection[blank] ?>
-%D <table>
-%D <tr> <td>one</td> <td>a</td> <td>first </td> </tr>
-%D <tr> <td>two</td> <td>b</td> <td>second</td> </tr>
-%D </table>
-%D <?context-command \stoplinecorrection ?>
-%D
-%D As you can see here, we use a similar syntax but stick to the &context;
-%D attributes (which provide quite advanced control over the layout).
-%D
-%D <?context-command \startlinecorrection[blank] ?>
-%D <table frame="off" background="color" color="white">
-%D <tr backgroundcolor="red"> <td>xx</td> <td>xx</td> </tr>
-%D <tr backgroundcolor="green"> <td>xx</td> <td>xx</td> </tr>
-%D </table>
-%D <?context-command \stoplinecorrection ?>
-%D \stopbuffer
-%D
-%D \showelements [context] [table]
-
-\defineXMLenvironment [context:table] [\@@tbl\@@tbl]
- {\bgroup
- \defineXMLnested [context:tr] [\@@tbl] {\expanded{\bTR[\theXMLarguments{\@@tbl}}]} \eTR
- \defineXMLnested [context:td] [\@@tbl] {\expanded{\bTD[\theXMLarguments{\@@tbl}}]} \eTD
- \expanded{\bTABLE[\theXMLarguments{\@@tbl\@@tbl}]}}
- {\eTABLE
- \egroup}
-
-%D \elements {tabulate,tspec,thead,tbody,ttail,trule,tr,td}
-%D
-%D \startbuffer
-%D The second mechanism that we support is tabulation. The advantage of this
-%D mechanism is that it it well tuned for tables that have much text in the
-%D cells and cross page boundaires.
-%D
-%D <tabulate>
-%D <tspec>
-%D <tcell align="left"/> <tcell align="middle"/> <tcell align="right"/>
-%D </tspec>
-%D <thead>
-%D <trule/>
-%D <tr> <td> bagger </td> <td> bagger </td> <td> bagger </td> </tr>
-%D <trule/>
-%D </thead>
-%D <ttail>
-%D <trule/>
-%D </ttail>
-%D <tbody>
-%D <tr> <td> bagger </td> <td> bagger </td> <td> bagger </td> </tr>
-%D <tr> <td> bagg </td> <td> ger </td> <td> gr </td> </tr>
-%D <tr> <td> bag </td> <td> er </td> <td> gger </td> </tr>
-%D </tbody>
-%D </tabulate>
-%D \stopbuffer
-%D
-%D \showelements [context] [tabulate]
-
-\newtoks\XMLtabtoks
-
-\defineXMLgrouped [context:tabulate] {\XMLtabtoks{|l|p|}}
-
-\defineXMLpickup [context:tbody]
- {\expanded{\definetabulate[dummy][\the\XMLtabtoks]}
- \startdummy\XMLflush{context:thead}}
- {\XMLflush{context:ttail}\stopdummy}
-
-\defineXMLsave [context:thead]
-\defineXMLsave [context:ttail]
-
-\defineXMLenvironment[context:tspec]
- {\XMLtabtoks\emptytoks}
- {\appendtoks|\to\XMLtabtoks}
-
-\defineXMLsingular [context:trule] % verrrry ugly
- {\crcr\noalign{\kern-\lineheight}\HL}
-
-\defineXMLsingular [context:tcell] [align=]
- {\appendtoks|\to\XMLtabtoks
- \expanded{\processallactionsinset
- [\XMLop{align}]}
- [ paragraph=>\appendtoks p\to\XMLtabtoks,
- left=>\appendtoks l\to\XMLtabtoks,
- right=>\appendtoks r\to\XMLtabtoks,
- center=>\appendtoks c\to\XMLtabtoks,
- middle=>\appendtoks c\to\XMLtabtoks]}
-
-\defineXMLenvironment [context:tr] {\ignorespaces} {\NC\NR}
-\defineXMLenvironment [context:td] {\NC} {\ignorespaces}
-
-%D \elements {hide}
-%D
-%D \startbuffer
-%D This is the way to [<hide>this is gone</hide>] something for the
-%D typesetting engine. Normally this element is only used for testing
-%D purposes.
-%D \stopbuffer
-%D
-%D \showelements [context] [tabulate]
-
-\defineXMLignore[context:hide]
-
-%D \elements {unknown}
-%D
-%D \startbuffer
-%D We can go on and on and <unknown/> with defining elements that map onto
-%D &context; commands, but why not just use &tex; input syntax then?
-%D \stopbuffer
-%D
-%D \showelements [context] [unknown]
-
-\defineXMLsingular [context:unknown] \unknown
-
-%D A (for the moment) private one.
-
-\defineXMLargument [context:element] \type
-
-%D The following common schema definitions apply:
-%D
-%D {\setupcolors[state=stop]\showXSDcomponent[context][definitions]}
-
-\defineXMLargument [context:chapter] [label=] {\chapter[\XMLop{label}]}
-\defineXMLargument [context:section] [label=] {\section[\XMLop{label}]}
-\defineXMLargument [context:subsection] [label=] {\subsection[\XMLop{label}]}
-\defineXMLargument [context:subsubsection] [label=] {\subsubsection[\XMLop{label}]}
-\defineXMLargument [context:subsubsubsection] [label=] {\subsubsubsection[\XMLop{label}]}
-
-\defineXMLargument [context:title] [label=] {\title[\XMLop{label}]}
-\defineXMLargument [context:subject] [label=] {\subject[\XMLop{label}]}
-\defineXMLargument [context:subsubject] [label=] {\subsubject[\XMLop{label}]}
-\defineXMLargument [context:subsubsubject] [label=] {\subsubsubject[\XMLop{label}]}
-\defineXMLargument [context:subsubsubsubject] [label=] {\subsubsubsubject[\XMLop{label}]}
-
-\defineXMLenvironment [context:frontmatter] \startfrontmatter \stopfrontmatter
-\defineXMLenvironment [context:bodymatter] \startbodymatter \stopbodymatter
-\defineXMLenvironment [context:backmatter] \startbackmatter \stopbackmatter
-\defineXMLenvironment [context:appendices] \startappendices \stopappendices
-
-\defineXMLargument [context:index] [key=]
- {\doifelsenothingXMLop{key}{\index}{\expanded{\index[\XMLop{key}]}}}
-
-% \enableXMLfiledata
-
-% Needed for example (stickers and so):
-
-\defineXMLenvironment [context:makeup]
- \startstandardmakeup \stopstandardmakeup
-
-\protect \endinput
-
-% TO DO
-
-\defineXMLenvironment [combination] [columns=2,rows=1]
- {\scratchtoks\emptytoks
- \expanded{\appendtoks \noexpand \startcombination
- [\XMLop{columns}*\XMLop{rows}]}\to \scratchtoks}
- {\appendtoks \stopcombination \to \scratchtoks
- \the\scratchtoks}
-
-\defineXMLprocess[combinationentry]
-
-\defineXMLpickup [combinationitem]
- {\appendtoks\bgroup}{\egroup\to\scratchtoks}
-
-\defineXMLpickup [combinationcaption]
- {\appendtoks\bgroup}{\egroup\to\scratchtoks}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-contml.xsd b/Master/texmf-dist/tex/context/modules/mkii/x-contml.xsd
deleted file mode 100644
index 3b71e31e850..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-contml.xsd
+++ /dev/null
@@ -1,375 +0,0 @@
-<?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/modules/mkii/x-corres.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-corres.mkii
deleted file mode 100644
index effd79a5b31..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-corres.mkii
+++ /dev/null
@@ -1,136 +0,0 @@
-%D \module
-%D [ file=x-corres,
-%D version=2003.12.15, % replaces keep-02a cum suis
-%D title=\CONTEXT\ XML Modules,
-%D subtitle=Handling Correspondence Base,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D The selection spec:
-
-\setvariables
- [contacts]
- [selection=,
- file=x-corres.xml] % fall back
-
-%D First we define the group expansion pass:
-
-\startsetups[contacts:collect]
-
- \defineXMLprocess [contacts]
-
- \defineXMLignore [contact]
-
- \defineXMLargument [contactfile]
- \processfile
-
- \defineXMLenvironmentsave [contactgroup] [label=]
- {\startXMLmappinggroup[contacts]}
- {\XMLaddcontactgrouptoselection
- \stopXMLmappinggroup}
-
-\stopsetups
-
-%D Next we define the main processing pass:
-
-\startsetups[contacts:process]
-
- \defineXMLprocess[contacts]
-
- \defineXMLignore [contactgroup]
-
- \defineXMLargument [contactfile]
- \processfile
-
- \defineXMLenvironmentsave[contact] [label=]
- {\startXMLmappinggroup[contacts]}
- {\XMLselectcontact
- \stopXMLmappinggroup}
-
-\stopsetups
-
-\startXMLmapping[contacts]
-
- \defineXMLsave [initials]
- \defineXMLsave [formalname]
- \defineXMLsave [informalname]
- \defineXMLsave [title]
- \defineXMLsave [prefix]
- \defineXMLsave [suffix]
- \defineXMLsave [telephone]
- \defineXMLsave [mobiletelephone]
- \defineXMLsave [telefax]
- \defineXMLsave [email]
- \defineXMLsave [address]
- \defineXMLsave [information]
-
- \defineXMLenvironment [p] \endgraf \endgraf
-
- \defineXMLargument [member] \XMLaddcontacttoselection
-
-\stopXMLmapping
-
-%D The selection macros: we expand groups and replace them
-%D by contact labels in the selection spec.
-
-\def\XMLaddcontactgrouptoselection
- {\edef\XMLcontactlist{\getvariable{contacts}{selection}}%
- \edef\XMLgrouplabel {\XMLop{label}}%
- \expanded{\doifinset{\XMLgrouplabel}{\XMLcontactlist}}
- {\let\XMLgrouplist\empty
- \XMLflush{contactgroup}%
- \substituteincommalist\XMLgrouplabel\XMLgrouplist\XMLcontactlist
- \expanded
- {\globalsetvariables
- [contacts]
- [selection={\XMLcontactlist}]}}}
-
-\def\XMLaddcontacttoselection#1%
- {\addtocommalist{#1}\XMLgrouplist}
-
-%D The main selector:
-
-\def\XMLselectcontact
- {\edef\XMLcontactlist {\getvariable{contacts}{selection}}%
- \edef\XMLcontactlabel{\XMLop{label}}%
- \doifelsenothing{\XMLcontactlist}
- {\donetrue}
- {\expanded{\doifinsetelse{\XMLcontactlabel}{\XMLcontactlist}}
- {\donetrue}
- {\donefalse}}%
- \ifdone
- \XMLflush{contact}%
- \setups[contact:handle]%
- \fi}
-
-%D The default:
-
-\startsetups[contact:handle]
-
- \XMLflush{address}
-
-\stopsetups
-
-\setups[contacts:process]
-
-%D Handy:
-
-\def\XMLprocesscontacts
- {\dosingleempty\XMLprocesscontacts}
-
-\def\XMLprocesscontacts[#1]%
- {\bgroup
- \doifelsenothing{#1}
- {\XMLprocesscontacts[\getvariable{contacts}{file}]}
- {\setups[contacts:collect]%
- \processcommacommand[#1]\processXMLfile
- \setups[contacts:process]%
- \processcommacommand[#1]\processXMLfile}%
- \egroup}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-corres.rng b/Master/texmf-dist/tex/context/modules/mkii/x-corres.rng
deleted file mode 100644
index 09de5d26718..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-corres.rng
+++ /dev/null
@@ -1,170 +0,0 @@
-<?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/modules/mkii/x-dir-01.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-dir-01.mkii
deleted file mode 100644
index 6e4192a1326..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-dir-01.mkii
+++ /dev/null
@@ -1,145 +0,0 @@
-%D \module
-%D [ file=x-dir-01,
-%D version=2003.05.10, % around that time -)
-%D title=\CONTEXT\ Directory Handling,
-%D subtitle=Overview (1),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\setuppapersize
- [S6][S6]
-
-\setuplayout
- [width=middle,
- height=middle,
- backspace=12pt,
- topspace=12pt,
- bottomspace=32pt,
- header=0pt,
- footer=0pt,
- bottomdistance=9pt,
- bottom=18pt]
-
-\setupinteractionmenu
- [bottom]
- [state=start,
- frame=off,
- rightoffset=-3pt,
- background=color,
- backgroundcolor=TextColor,
- middle=\hskip4pt,
- left=\hfill]
-
-\startinteractionmenu[bottom]
- \but [PreviousJump] Previous Jump \\
- \but [previouspage] Previous Page \\
- \but [nextpage] Next Page \\
-\stopinteractionmenu
-
-\setupbackgrounds
- [page]
- [backgroundoffset=3pt,
- background=color,
- backgroundcolor=PageColor]
-
-\setupbackgrounds
- [text]
- [background=color,
- backgroundcolor=TextColor]
-
-\definecolor [PageColor] [r=.6,g=.7,b=.8]
-\definecolor [TextColor] [r=.7,g=.8,b=.9]
-\definecolor [DoneColor] [s=.5]
-
-\startmode[colorscheme-red]
-
- \definecolor [PageColor] [r=.9,g=.7,b=.6]
- \definecolor [TextColor] [r=.9,g=.8,b=.7]
-
-\stopmode
-
-\startmode[colorscheme-green]
-
- \definecolor [PageColor] [r=.6,g=.8,b=.7]
- \definecolor [TextColor] [r=.7,g=.9,b=.8]
-
-\stopmode
-
-\setupcolors
- [state=start]
-
-\setupinteraction
- [state=start,
- menu=on,
- color=,
- display=new,
- contrastcolor=DoneColor,
- style=]
-
-\definehead
- [directory]
- [subject]
-
-\setuphead
- [directory]
- [style=\tfc]
-
-\setupbodyfont
- [tt]
-
-\defineXMLenvironment [files] [url=]
- {\doifelsenothing{\XMLop{url}}
- {\xdef\XMLDIRurl{}}
- {\xdef\XMLDIRurl{\XMLop{url}/}}
- \startXMLignore}
- {\stopXMLignore}
-
-\newcounter\NOfEntries
-
-\startsetups[xmldir:file]
-
- \doglobal\increment\NOfEntries
-
- \goto {\hbox to \hsize \bgroup
-
- \XMLflush{base}
- \hss
- \hbox to 2em{\XMLflush{type}\hss}
- \quad
- \quad
- \hbox to 5em{\hss\XMLflush{size}}
- \quad
- \quad
- \XMLflush{date}
-
- \egroup} [url(\XMLDIRurl\XMLop{name})]% [program(\XMLDIRurl\XMLop{name})]
-
-\stopsetups
-
-\defineXMLenvironment [directory] [name=]
- {\directory{Path \XMLop{name}}}
- {}
-
-\defineXMLenvironment [file] [name=]
- {\bgroup}
- {\setups[xmldir:file]
- \endgraf
- \egroup}
-
-\defineXMLsave[base]
-\defineXMLsave[type]
-\defineXMLsave[size]
-\defineXMLsave[date]
-
-\starttext
-
- \processXMLfilegrouped{\inputfilename}
-
- \ifnum\NOfEntries=0 There are no files found that match the pattern. \fi
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-dir-02.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-dir-02.mkii
deleted file mode 100644
index 90c32d7042c..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-dir-02.mkii
+++ /dev/null
@@ -1,130 +0,0 @@
-%D \module
-%D [ file=x-dir-02,
-%D version=2003.05.10, % around that time -)
-%D title=\CONTEXT\ Directory Handling,
-%D subtitle=Overview (2),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\setuplayout
- [width=middle,
- height=middle,
- backspace=.5cm,
- topspace=.5cm,
- header=1cm,
- footer=0cm]
-
-\definehead
- [directory]
- [subject]
-
-\setuphead
- [directory]
- [style=\tfa]
-
-\setupbodyfont
- [tt]
-
-\setuptabulate
- [before=,after=]
-
-\setupcombinations
- [location=top]
-
-\defineXMLenvironment [files] [root=.,url=]
- {\doifelsenothing{\XMLop{url}}
- {\xdef\XMLDIRurl{}}
- {\xdef\XMLDIRurl{\XMLop{url}/}}
- \startXMLignore}
- {\stopXMLignore}
-
-\newcounter\NOfEntries
-
-\startsetups[xmldir:file:normal]
-
- \doglobal\increment\NOfEntries
-
- \startfiguretext
- [left,none]
- []
- {}
- {\hbox
- {\externalfigure
- [\XMLpar{files}{root}{.}/\XMLpar{directory}{name}{.}/\XMLop{name}]
- [frame=on,width=6cm]
- \quad
- \framed[width=\figurewidth,height=\figureheight]{}}}
- \strut \vskip-\lineheight
- \starttabulate[|l|l|]
- \NC base \NC \XMLflush{base} \NC \NR
- \NC type \NC \XMLflush{type} \NC \NR
- \NC width \NC \figurenaturalwidth \NC \NR
- \NC height \NC \figurenaturalheight \NC \NR
- \NC date \NC \XMLflush{date} \NC \NR
- \NC size \NC \XMLflush{size} \NC \NR
- \stoptabulate
- \stopfiguretext
-
-\stopsetups
-
-\startsetups[xmldir:file:small]
-
- \doglobal\increment\NOfEntries
-
- \startlinecorrection
-
- \startcombination
- {\externalfigure
- [\XMLpar{files}{root}{.}/\XMLpar{directory}{name}{.}/\XMLop{name}]
- [frame=on,width=3cm]}
- {}
- {\vbox{\starttabulate[|l|l|]
- \NC base \NC \XMLflush{base} \NC \NR
- \NC type \NC \XMLflush{type} \NC \NR
- \NC date \NC \XMLflush{date} \NC \NR
- \stoptabulate}}
- {}
- \stopcombination
-
- \stoplinecorrection
-
-\stopsetups
-
-\defineXMLenvironment [directory] [name=]
- {\directory{Path \XMLop{name}}}
- {}
-
-\defineXMLenvironment [file] [name=]
- {\bgroup}
- {% the next quick hack is really needed
- \expanded{\defconvertedargument\noexpand\asciia{./\jobfilename}.pdf}%
- \expanded{\defconvertedargument\noexpand\asciib{\XMLpar{directory}{name}{.}/\XMLop{name}}}%
- % else we can not do an overview of the curent path
- \doifnot\asciia\asciib
- {\doifmodeelse{alternative-small}
- {\setups[xmldir:file:small]}
- {\setups[xmldir:file:normal]}
- \endgraf}
- \egroup}
-
-\defineXMLsave[base]
-\defineXMLsave[type]
-\defineXMLsave[size]
-\defineXMLsave[date]
-
-\starttext
-
- \doifmode{alternative-small}{\startcolumns[balance=no]}
-
- \processXMLfilegrouped{\inputfilename}
-
- \doifmode{alternative-small}{\stopcolumns}
-
- \ifnum\NOfEntries=0 There are no files found that match the pattern. \fi
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-dir-05.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-dir-05.mkii
deleted file mode 100644
index 53e73c5eb86..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-dir-05.mkii
+++ /dev/null
@@ -1,51 +0,0 @@
-%D \module
-%D [ file=x-dir-05,
-%D version=2003.05.10, % around that time -)
-%D title=\CONTEXT\ Directory Handling,
-%D subtitle=Access,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\setvariables
- [filestate]
- [name=,base=,type=,size=,permissions=,date=]
-
-\def\savefilestate
- {\dodoubleargument\dosavefilestate}
-
-\def\dosavefilestate[#1][#2]%
- {\startnointerference
- \setxvariables
- [#1]
- [name=#2,base=,type=,size=,permissions=,date=]
- \executesystemcommand{texmfstart xmltools.rb --dir --pattern=\getvariable{#1}{name} --output=xmldir.tmp}
- \defineXMLprocess [files]
- \defineXMLprocess [directory]
- \defineXMLenvironment [file]
- {\defineXMLsave [base]
- \defineXMLsave [type]
- \defineXMLsave [size]
- \defineXMLsave [permissions]
- \defineXMLsave [date]}
- {\setxvariables
- [#1]
- [name=\XMLop{name},
- base=\XMLflush{base},
- type=\XMLflush{type},
- size=\XMLflush{size},
- permissions=\XMLflush{permissions},
- date=\XMLflush{date}]}
- \startXMLignore
- \processXMLfile{xmldir.tmp}
- \stopXMLignore
- \stopnointerference}
-
-\def\getfilestate#1% old one
- {\savefilestate[filestate][#1]}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-fdf-00.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-fdf-00.mkii
deleted file mode 100644
index fd4bea7e74c..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-fdf-00.mkii
+++ /dev/null
@@ -1,41 +0,0 @@
-% <xfdf>
-% <fields>
-% <field name="one">
-% <value>first</value>
-% </field>
-% <field name="two">
-% <value>second</value>
-% </field>
-% </fields>
-% </xfdf>
-%
-% previous method:
-%
-% object
-% data
-% fields
-% field
-
-\defineXMLprocess[fdf:xfdf]
-\defineXMLprocess[fdf:fields]
-\defineXMLignore [fdf:f]
-\defineXMLpush [fdf:value]
-
-\defineXMLenvironment [fdf:field] [name=,value=]
- {\XMLerase{fdf:value}}
- {\gsaveXMLdata{fdf:\XMLop{name}}{fdf:value}}
-
-\defineXMLsingular [fdf:field] [name=,value=]
- {\gsaveXMLasdata{fdf:\XMLop{name}}{\XMLop{value}}}
-
-\def\doifelseFDFfield#1{\doifelseXMLelement{fdf:#1}}
-\def\flushFDFfield #1{\flushXMLelement {fdf:#1}}
-\def\processFDFfield #1{\processXMLelement {fdf:#1}}
-
-\def\loadFDFfile#1%
- {\bgroup
- \autoXMLnamespace[fdf]%
- \processXMLfilegrouped{#1}%
- \egroup}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-fe.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-fe.mkii
deleted file mode 100644
index dcf415850a3..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-fe.mkii
+++ /dev/null
@@ -1,143 +0,0 @@
-%D \module
-%D [ file=x-fe,
-%D version=2004.03.12, % based on earlier experiments
-%D title=\FOXET,
-%D subtitle=Simple Extensions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Extensions: fe:definecolor
-
-% menus
-% extra areas
-% protruding and hz
-% compound
-% title container
-% more float placements
-
-\unprotect
-
-% \XMLattributes{aural},
-
-\defineXMLnested
- [fe:table-next]
- [id=,
- \XMLattributes{accessibility},
- \XMLattributes{border-padding-background},
- \XMLattributes{relative-position},
- border-after-precedence=,
- border-before-precedence=,
- border-end-precedence=,
- border-start-precedence=,
- visibility=]
- {\bTABLEnext}
- {\eTABLEnext}
-
-% definitions
-
-\defineXMLcommand
- [fe:definecolor]
- [name=,r=,g=,b=,c=,m=,y=,k=,s=,p=,a=,t=]
- {\expanded{\definecolor[\XMLop{name}]
- [r=\XMLop r,g=\XMLop g,b=\XMLop b,
- c=\XMLop c,m=\XMLop m,y=\XMLop y,k=\XMLop k,
- s=\XMLop s,p=\XMLop p,a=\XMLop a,t=\XMLop t]}}
-
-\defineXMLcommand
- [fe:definefontsynonym]
- [name=,file=,encoding=]
- {\doifelsenothing{\XMLop{encoding}}
- {\expanded{\definefontsynonym[\XMLop{name}][\XMLop{file}][encoding=\XMLop{encoding}]}}
- {\expanded{\definefontsynonym[\XMLop{name}][\XMLop{file}]}}}
-
-%D Extensions: fe:include
-
-\defineXMLsingular
- [fe:include]
- [url=,n=1]
- {\doifelse{\XMLop{n}}{1}
- {\readfile{\XMLpar{fe:include}{url}{}}{}{}}
- {\dorecurse{\XMLop{n}}{\readfile{\XMLpar{fe:include}{url}{}}{}{}\endgraf}}}
-
-%D Extensions: fe:sample
-
-\defineXMLenvironment
- [fe:sample]
- [origin=unknown]
- {\removeunwantedspaces\ignorespaces}
- {\removeunwantedspaces}
-
-%D Extensions: fe:
-
-% \defineXMLenvironmentsave
-% [fe:loop]
-% [n=1]
-% {}
-% {\dorecurse{\XMLop{n}}{\XMLflush{fe:loop}}}
-
-\defineXMLargument
- [fe:loop]
- [n=1]
- {\dorecurse{\XMLop{n}}}
-
-%D Extensions: fe:compound
-
-\defineXMLsingular
- [fe:compound]
- [character=-]
- {\prewordbreak\XMLop{character}\prewordbreak}
-
-%D Extensions: fe:message
-
-\defineXMLargument
- [fe:message]
- [category=XML-FO]
- {\expanded{\writestatus{\XMLop{category}}}}
-
-%D Handy
-
-\defineXMLargument
- [fe:trace]
- [attribute=,option=]
- {\showXMLinh[\XMLop{attribute}]%
- \XMLval{fe:trace}{\XMLop{option}}{}}
-
-\mapXMLvalue
- {fe:trace}
- {font}
- {\hbox\bgroup\infofont[%
- \xFOfont/\xFOfontsize/\xFOfontsizeadjust/\xFOfontfamily/\xFOfontweight/\xFOfontstyle/\xFOfontvariant:\FOfontdefinition
- ]\egroup}
-
-%D Extensions:
-
-\startsetups fe:page:option:fit:start
- \startTEXpage[margin=page]
-\stopsetups
-
-\startsetups fe:page:option:fit:stop
- \stopTEXpage
-\stopsetups
-
-\useMPlibrary[pre]
-
-\mapXMLvalue {fe:tracing} {true} {\tracingFOtrue}
-\mapXMLvalue {fe:tracing} {false} {\tracingFOfalse}
-\mapXMLvalue {fe:testgrid} {true} {\setupbackgrounds[page][background=pagegrid]}
-
-\startsetups fe:setup
- \XMLval{fe:tracing} {\XMLop{fe:tracing}} {}
- \XMLval{fe:testgrid}{\XMLop{fe:testgrid}}{}
-\stopsetups
-
-%D Private (testing)
-
-\defineXMLcommand[fe:synchronizeoutput]{\synchronizeoutput}
-
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-fig-00.dtd b/Master/texmf-dist/tex/context/modules/mkii/x-fig-00.dtd
deleted file mode 100644
index 34b4d0bef9b..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-fig-00.dtd
+++ /dev/null
@@ -1,24 +0,0 @@
-<!-- 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/modules/mkii/x-fig-00.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-fig-00.mkii
deleted file mode 100644
index 2e000c64ca7..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-fig-00.mkii
+++ /dev/null
@@ -1,252 +0,0 @@
-%D \module
-%D [ file=x-fig-00,
-%D version=2001.03.21,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Figure Base Loading,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \readfile{x-res-04} \donothing \donothing \endinput
-
-% naast label, ook fig als ref en dan naar fig ref springen
-
-%D This module implements an interface to a figure database
-%D and file. The database is formatted in \XML\ conforming
-%D the following \DTD:
-%D
-%D \typefile{x-fig-00.dtd}
-%D
-%D A figure base coded this way looks like:
-%D
-%D \starttyping
-%D <!-- texexec --pdf --use=fig-01 figtest.xml -->
-%D
-%D <figurelibrary language="nl">
-%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
-%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
-%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
-%D </figurelibrary>
-%D \stoptyping
-%D
-%D You can convert this base into a \PDF\ file using
-%D \TEXEXEC\ and another module in this suite.
-%D
-%D \starttyping
-%D texexec --pdf --use=fig-make yourfile.xml
-%D \stoptyping
-%D
-%D You can now select a graphic from this file using the
-%D
-%D \starttyping
-%D \externalfigure[a dutch cow][width=4cm]
-%D \stoptyping
-%D
-%D This module overloads this command so that a figure is
-%D it first searched in the list of databases.
-%D
-%D \starttyping
-%D \usemodule [fig-base]
-%D \usefigurebases[yourfile]
-%D \stoptyping
-%D
-%D The special keyword \type {reset} can be used to reset
-%D this list.
-
-%D We park some mkiv code here. Eventually we will hook this into mkiv
-%D searching differently (just a standard feature, no need for loading
-%D modules because we need less code). Actually, what we do here is more
-%D like res-*: we load the xml file once.
-
-% \startluacode
-%
-% document.figurebases = { }
-% document.figurebases.data = { }
-% document.figurebases.found = { }
-%
-% function document.figurebases.find(basename,askedlabel)
-% document.figurebases.found = { }
-% local base = document.figurebases.data[basename]
-% local page = 0
-% if not base then
-% base = xml.load(basename)
-% document.figurebases.data[basename] = base
-% end
-% for e, d, k in xml.elements(base,"figurelibrary/figure/label") do
-% page = page + 1
-% if xml.content(d[k]) == askedlabel then
-% document.figurebases.found = {
-% name = xml.filters.text(e,"file"),
-% page = page,
-% }
-% return true
-% end
-% end
-% return false
-% end
-%
-% function commands.findfigurefilenameinbase(basename,askedlabel)
-% if document.figurebases.find(basename,askedlabel) then
-% commands.xdef("figurefilename",document.figurebases.found.name or "")
-% commands.xdef("figurefilepage",document.figurebases.found.page or "")
-% end
-% end
-%
-% \stopluacode
-%
-% \def\findfigurefilenameinbase#1#2%
-% {\ctxlua{commands.findfigurefilenameinbase("#1","\askedlabel")}}
-
-\startcommands dutch english
- german czech
- italian romanian
-
- usefigurebase: gebruikfiguurbestand usefigurebase
- usefigurebase usefigurebase
- usefigurebase usefigurebase
-
-\stopcommands
-
-\unprotect
-
-\consultutilityfilefalse
-
-\startXMLmapping [-] [figbase]
-
-\defineXMLprocess [figurelibrary]
-\defineXMLignore [description]
-\defineXMLignore [copyright]
-\defineXMLignore [comment]
-\defineXMLignore [status]
-\defineXMLpush [file]
-\defineXMLpush [label]
-\defineXMLpush [dummy]
-\defineXMLenvironment [figure] \figbase@StartFigure \figbase@StopFigure
-
-\stopXMLmapping
-
-\newcounter\figurefilepage
-
-\def\figbase@StartFigure
- {\bgroup}
-
-\def\figbase@StopFigure
- {\doglobal\increment\figurefilepage
- \doif\askedlabel{\XMLpop{label}}
- {\doglobal\settrue\figurefiledone
- \xdef\figurefilename{\XMLpop{file}}\endinput}%
- \egroup}
-
-\def\findfigurefilenameinbase#1#2% sets \figurefilename and \figurefilepage
- {\processXMLfilegrouped{#1}}
-
-\def\getfigurefilename#1#2%
- {\startnointerference
- \traceXMLelementsfalse
- \startXMLmapping[-][figbase]
- \resetfigurefilebase
- \XMLerase{file}
- \XMLerase{dummy}
- \XMLerase{label}
- \xdef\figurefilebase{#1}%
- \doglobal\newcounter\figurefilepage
- \def\askedlabel{#2}
- \processcommacommand[\figurepathlist]\dogetfigurefilename
- \stopXMLmapping
- \stopnointerference}
-
-\globalletempty\figurebasepath
-
-\def\dogetfigurefilename#1%
- {\ifx\figurefilename\empty
- \bgroup
- \xdef\figurefilebasepath{#1}%
- \assignfullfilename{#1}{\figurefilebase}\to\filename
- \doiffileelse{\filename.xml}
- {\doshowfigurestate{base file : \filename}%
- \expanded{\findfigurefilenameinbase{\filename.xml}{\askedlabel}}}
- \donothing
- \ifx\figurefilename\empty\else
-% \globallet\figurefilebase\figurefilebase
- \globallet\figurefilebase\filename % hm, bad omen that this is needed
- \fi
- \egroup
- \fi}
-
-\def\resetfigurefilebase
- {\globalletempty\figurefilebase
- \globalletempty\figurefilename
- \globalletempty\figurefilebasepath
- \globalletempty\figurefilepage}
-
-\def\doanalyzefiguredimensionsfromfile
- {\ifcase\figurestatus \ifx\figurebaselist\empty \else
- \resetfigurefilebase
- \doshowfigurestate{base list : \figurebaselist}%
- \processcommacommand[\figurebaselist]\dodoanalyzefiguredimensionsfromfile
- \ifx\figurefilename\empty
- \doshowfigurestate{base warning : no matching name found}%
- \else
- \doiffileelse{\figurefilebase.pdf}
- {\doshowfigurestate{base file : \figurefilebase.pdf}%
- \doshowfigurestate{base page : \figurefilepage}%
- \let\figurepathlist\figurefilebasepath
- \analyzefigurefilename{\figurefilebase.pdf}\wantedfigurelabel
- \let\wantedfigurepage\figurefilepage}
- {\doshowfigurestate{base missing : \figurefilebase.pdf}}
- \fi
- \ifcase\figurestatus
- \analyzefigurefilename\expandedfigurename\wantedfigurelabel
- \fi
- \fi \fi}
-
-\def\dodoanalyzefiguredimensionsfromfile#1%
- {\doshowfigurestate{base check : \wantedfigurename\space in #1}%
- \getfigurefilename{#1}\wantedfigurename
- \ifx\figurefilename\empty\else
- \quitcommalist
- \fi}
-
-\def\usefigurebase[#1]%
- {\doifelse{#1}\v!reset
- {\let\figurebaselist\empty}
- {\addtocommalist{#1}\figurebaselist}}
-
-\let\figurebaselist\empty
-
-\resetfigurefilebase
-
-\protect \endinput
-
-\usefigurebase[figtest]
-
-\externalfigure[koetje] [width=3cm]
-\externalfigure[de molen op de dijk][width=3cm]
-\externalfigure[de molen op de dijk][width=2cm]
-\externalfigure[weet ik veel] [width=3cm]
-\externalfigure[weet ik veel] [width=2cm]
-\externalfigure[weet ik wat] [width=2cm]
-\externalfigure[koe] [width=2cm]
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-fig-00.xsd b/Master/texmf-dist/tex/context/modules/mkii/x-fig-00.xsd
deleted file mode 100644
index 615841a1e6c..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-fig-00.xsd
+++ /dev/null
@@ -1,77 +0,0 @@
-<?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/modules/mkii/x-fig-01.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-fig-01.mkii
deleted file mode 100644
index 5a2ea20c83e..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-fig-01.mkii
+++ /dev/null
@@ -1,461 +0,0 @@
-%D \module
-%D [ file=x-fig-01,
-%D version=2001.03.21,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Figure Base Generation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \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
-%D named \type {\jobfilename} (\TEXEXEC\ will set this
-%D variable). You can apply this style to a database by
-%D saying:
-%D
-%D \starttyping
-%D texexec --pdf --use=fig-make yourfile.xml
-%D \stoptyping
-%D
-%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 \stoptabulate
-%D
-%D The resulting file has the following characteristics:
-%D
-%D \startitemize[packed]
-%D \item the document is split into three sections: first each
-%D figure is shown at its own page, then an overview of
-%D figures is shown with some data alongside, and
-%D finally an index and table of contents shows up
-%D \item there is no title page, which means that one can
-%D access a figure by page number without offset
-%D \item the document is opened at the first overview page,
-%D that is, when the viewer supports it
-%D \item the graphic is shown 3~times: on a page of its own,
-%D scaled to a fixed dimension, and relative to a4 or
-%D letter paper size
-%D \item the labels can be accessed in an index and list at
-%D the end of the document
-%D \stopitemize
-%D
-%D We use named destinations, which means that one can
-%D access a figure by name from an external application.
-
-\usemodule[fig-00]
-
-\setupoutput[pdftex] \overcomePDFspacefalse
-
-\doifnothing {\jobfilename} {\end}
-\doiffileelse {\jobfilename.xml} {} {\end}
-
-\definesymbol [attachment] [{\bf\color[darkred]{\jobname.xml}}]
-\setupattachments [symbol=attachment]
-\useattachment [datafile] [\jobname.xml]
-
-\def\StartDescription
- {\bgroup
- \defineXMLpush[organization]
- \defineXMLpush[project]
- \defineXMLpush[product]
- \defineXMLpush[comment]}
-
-\def\StopDescription
- {\subject {Figure collection}
- \starttabulate[|lBe|p|]
- \doifXMLdataelse{organization}
- {\NC organization \NC \XMLpop{organization} \NC \NR}{}
- \doifXMLdataelse{project}
- {\NC project \NC \XMLpop{project} \NC \NR}{}
- \doifXMLdataelse{product}
- {\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}
-
-\def\StartFigureA
- {\bgroup
- \defineXMLpush[file]
- \XMLassign{file}{buffer}
- \defineXMLpush[dummy]
- \defineXMLpush[label]
- \defineXMLpush[copyright]
- \defineXMLpush[comment]
- \defineXMLpush[status]}
-
-\defineoverlay[page][\overlaybutton{Description}]
-
-\startbuffer
- \framed
- [width=\XMLpar{dummy}{width}{12cm},
- height=\XMLpar{dummy}{height}{8cm},
- background=color,
- backgroundcolor=gray,
- foregroundcolor=darkred,
- frame=off]
- {\bf \XMLpop{dummy}}
-\stopbuffer
-
-\def\StopFigureA
- {\doglobal\increment\CurrentPage
- \setupbackgrounds[page][background=page]
- \doifelsenothing{\XMLpop{label}}
- {\expanded{\definereference[Description][about: \XMLpop{file}]}%
- \pagereference[\XMLpop{file}]}
- {\expanded{\definereference[Description][about: \XMLpop{label}]}%
- \pagereference[\XMLpop{label}]}
- \pagefigure[\XMLpop{file}]
- \setupbackgrounds[page][background=]
- \egroup}
-
-\def\StartFigureB
- {\StartFigureA}
-
-\defineregister
- [figureindex]
- [figureindices]
-
-\setupregister
- [figureindex]
- [ownnumber=yes,
- criterium=text,
- interaction=text,
- indicator=no]
-
-\definelist
- [figurelist]
-
-\setuplist
- [figurelist]
- [criterium=text,
- pagenumber=no,
- width=2em,
- interaction=all]
-
-\setupcolors
- [state=start]
-
-\setuptolerance
- [verytolerant]
-
-% Ugly:
-
-\startnotmode[previewpage-letter,previewpage-S6]
- \enablemode[previewpage-A4]
-\stopnotmode
-
-\startmode[letter] % downward compatible
- \enablemode[previewpage-letter]
-\stopmode
-
-%startbuffer[paper]
-\startsetups[paper]
-\startmode[previewpage-A4]
- \framed
- [width=210mm,height=297mm,offset=overlay,frame=off,
- background=color,backgroundcolor=white]
- {\externalfigure[\XMLpop{file}][reset=yes]}
-\stopmode
-\startmode[previewpage-letter]
- \framed
- [width=8.5in,height=11in,offset=overlay,frame=off,
- background=color,backgroundcolor=white]
- {\externalfigure[\XMLpop{file}][reset=yes]}
-\stopmode
-\startmode[previewpage-S6]
- \framed
- [width=600pt,height=450pt,offset=overlay,frame=off,
- background=color,backgroundcolor=white]
- {\externalfigure[\XMLpop{file}][reset=yes]}
-\stopmode
-\stopsetups
-%stopbuffer
-
-\setupbuttons
- [offset=10pt,
- width=broad,
- strut=no,
- rulethickness=1pt,
- framecolor=darkred]
-
-\def\StopFigureB
- {\par
- \doglobal\increment\CurrentPage
- \doifelsenothing{\XMLpop{label}}
- {\expanded{\definereference[Figure][\XMLpop{file}]}%
- \expanded{\definereference[GridPg][grid:\XMLpop{file}]}}
- {\expanded{\definereference[Figure][\XMLpop{label}]}%
- \expanded{\definereference[GridPg][grid:\XMLpop{label}]}}%
- \button % content in setup
- {\hbox to \hsize
- {\forgetall \dontcomplain
- \doifelsenothing{\XMLpop{label}}
- {\pagereference[about: \XMLpop{file}]}
- {\pagereference[about: \XMLpop{label}]}%
- % moved here, because descriptions may be absent
- \ifnum\CurrentPage=1 \pagereference[begin]\fi
- %
- \expanded{\writetolist[figurelist]{\CurrentPage}{\XMLpop{label}}}%
- \expanded{\figureindex{\CurrentPage}{\XMLpop{label}}}%
- \startnotmode[compact]%
- \vbox to 100pt
- {\hsize30pt
- \vskip5pt
- \hbox to \hsize{\hss\strut\bf\CurrentPage\hss}%
- \vfill}%
- \advance\hsize by -30pt
- \stopnotmode
- \startmode[compact]%
- \advance\hsize by -10pt
- \hskip10pt
- \stopmode
- \button % \framed
- [width=150pt,height=100pt,offset=10pt,frame=off,
- background=color,backgroundcolor=white,color=]
- {\externalfigure
- [\XMLpop{file}]
- [maxheight=80pt,frame=off,maxwidth=130pt,factor=max]}%
- [GridPg]%
- \let\FigWid\figurenaturalwidth
- \let\FigHei\figurenaturalheight
- \advance\hsize by -150pt
- \hskip10pt
- \advance\hsize by -10pt
- \vbox to 100pt
- {\hsize40pt
- %\externalfigure
- % [paper]
- % [type=buffer,frame=on,
- % framecolor=darkred,rulethickness=.5pt,
- % width=40pt,object=no]
- \framed
- [offset=overlay,
- framecolor=darkred,
- rulethickness=.5pt]
- {\scale[width=40pt]{\setups[paper]}}% {\disableXML\getbuffer[paper]}}%
- \startmode[compact]%
- \vfill
- \hbox to \hsize{\hss\strut\bf\CurrentPage\hss}%
- \stopmode
- \vfill}%
- \advance\hsize by -40pt
- \hskip10pt
- \advance\hsize by -10pt
- \vbox to 100pt
- {\blank[disable]
- \starttabulate[|Bel|p|]
- \NC file \NC \XMLpop{file} \NC \NR
- \doifXMLdata{label}
- {\NC label \NC \XMLpop{label} \NC \NR}
- \NC w$\times$h \NC \FigWid$\times$\FigHei \NC \NR
- \doifXMLdata{copyright}
- {\NC copyright \NC \XMLpop{copyright} \NC \NR}
- \doifXMLdata{status}
- {\doifelse{\XMLpop{status}}{obsolete}
- {\NC status \NC \bf\darkred\XMLpop{status} \NC \NR}
- {\NC status \NC \XMLpop{status} \NC \NR}}
- \doifXMLdata{comment}
- {\NC comment \NC \XMLpop{comment} \NC \NR}
- \stoptabulate
- \vfill}}}%
- [Figure]
- \vskip10pt
- \egroup}
-
-\def\StartFigureC
- {\StartFigureA}
-
-\def\StopFigureC
- {\doglobal\increment\NumberOfFigures
- \egroup}
-
-\setuplayout
- [topspace=15pt,backspace=15pt,
- header=0pt,footer=0pt,bottom=20pt,bottomdistance=10pt,
- width=middle,height=fit]
-
-\setupbackgrounds
- [page]
- [background=,
- backgroundcolor=gray]
-
-\setupinteractionscreen
- [width=max,
- height=max]
-
-\setupcolors
- [state=start]
-
-\setupinteraction
- [style=,
- color=,
- contrastcolor=,
- state=start]
-
-\setuphead
- [section]
- [style=bfb]
-
-\setupbodyfont
- [pos]
-
-\setupinteractionmenu
- [bottom]
- [left=\hfill,
- middle=\hskip10pt,
- frame=off,
- style=bold,
- background=color,
- backgroundcolor=darkred,
- foregroundcolor=white]
-
-\startinteractionmenu[bottom]
- \but [begin] begin \\
- \but [index] index \\
- \but [list] list \\
- \but [CloseDocument] close \\
- \but [PreviousJump] go back \\
-\stopinteractionmenu
-
-\setupinteraction
- [openaction=begin]
-
-\defineXMLenvironment [figurelibrary] \StartLibrary \StopLibrary
-
-\starttext
-
-\def\StartLibrary{\mainlanguage[\XMLpar{figurelibrary}{language}{en}]}
-\def\StopLibrary {}
-
-\defineXMLignore [description]
-\defineXMLenvironment [figure] \StartFigureC \StopFigureC
-
-\doglobal\newcounter\CurrentPage
-
-\processXMLfilegrouped{\jobfilename.xml}
-
-\increment\NumberOfFigures
-
-\defineXMLignore [description]
-\defineXMLenvironment [figure] \StartFigureA \StopFigureA
-
-\doglobal\newcounter\CurrentPage
-
-\processXMLfilegrouped{\jobfilename.xml}
-
-\setuppapersize
- [S6][S6]
-
-\setupbackgrounds
- [page]
- [background=color]
-
-\setupinteraction
- [menu=on]
-
-\defineXMLenvironment [description] \StartDescription \StopDescription
-\defineXMLenvironment [figure] \StartFigureB \StopFigureB
-
-\doglobal\newcounter\CurrentPage
-
-\processXMLfilegrouped{\jobfilename.xml} \page
-
-\subject [list] {List of figures}
-
-\placelist[figurelist] \page
-
-\subject [index] {Index of figures}
-
-\startcolumns
-\placeregister[figureindex]
-\stopcolumns
-
-\doifmodeelse{clipgrid-distance,clipgrid-steps}{\page}{\stoptext}
-
-\startuniqueMPgraphic{clipgrid}{dx,dy,nx,ny,type}
- numeric gdx, gdy, lbx, lby ;
- if \MPvar{type}=1 :
- gdx := \MPvar{dy} ;
- gdy := \MPvar{dx} ;
- else :
- gdx := OverlayWidth /\MPvar{nx} ;
- gdy := OverlayHeight/\MPvar{ny} ;
- fi ;
- lbx := gdx ;
- lby := gdy ;
- defaultfont := "\truefontname{Mono}" ;
- defaultscale := .5 ;
- numeric pen ; pen := .25pt ;
- def MyGrid text t =
- draw vlingrid (0,OverlayWidth ,gdy,OverlayWidth ,OverlayHeight) t ;
- draw hlingrid (0,OverlayHeight,gdx,OverlayHeight,OverlayWidth ) t ;
- enddef ;
- pickup pencircle scaled pen ;
- MyGrid withcolor white ;
- MyGrid dashed evenly scaled pen ;
- draw OverlayBox withcolor white ;
- draw OverlayBox dashed evenly scaled pen ;
- draw vlinlabel.bot(0,eps+OverlayWidth /lby,2,OverlayWidth ) ;
- draw hlinlabel.lft(0,eps+OverlayHeight/lbx,2,OverlayHeight) ;
- setbounds currentpicture to OverlayBox enlarged (2*EmWidth) ;
-\stopuniqueMPgraphic
-
-\presetMPvariable[clipgrid][dx=10pt]
-\presetMPvariable[clipgrid][dy=10pt]
-\presetMPvariable[clipgrid][nx=10]
-\presetMPvariable[clipgrid][ny=10]
-
-\startmode[clipgrid-distance]
- \defineoverlay[grid][\uniqueMPgraphic{clipgrid}{type=1}]
-\stopmode
-
-\startmode[clipgrid-steps]
- \defineoverlay[grid][\uniqueMPgraphic{clipgrid}{type=2}]
-\stopmode
-
-\setupexternalfigures
- [background={color,foreground,grid},
- backgroundcolor=white]
-
-\def\StartFigureD
- {\StartFigureA}
-
-\def\StopFigureD
- {\doglobal\increment\CurrentPage
- \setupbackgrounds[page][background=page]
- \startpagefigure[\XMLpop{file}][offset=20pt]%
- \doifelsenothing{\XMLpop{label}}
- {\expanded{\definereference[Description][about: \XMLpop{file}]}%
- \pagereference[grid:\XMLpop{file}]}
- {\expanded{\definereference[Description][about: \XMLpop{label}]}%
- \pagereference[grid:\XMLpop{label}]}
- \stoppagefigure
- %\pagefigure[\XMLpop{file}][offset=20pt]
- \setupbackgrounds[page][background=]
- \egroup}
-
-\defineXMLignore
- [description]
-
-\defineXMLenvironment
- [figure]
- \StartFigureD
- \StopFigureD
-
-\doglobal\newcounter\CurrentPage
-
-\processXMLfilegrouped{\jobfilename.xml} \page
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-fig-02.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-fig-02.mkii
deleted file mode 100644
index a8232fba9e1..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-fig-02.mkii
+++ /dev/null
@@ -1,78 +0,0 @@
-%D \module
-%D [ file=x-fig-02,
-%D version=2001.03.21,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Figure Base Inclusion (I),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \readfile {x-res-02} \donothing \donothing \endinput
-
-%D This module enables non||\ConTeXt\ users to access the
-%D database. For this, you need to run
-%D
-%D \starttyping
-%D texexec --pdf --use=fig-fake yourfile.xml
-%D \stoptyping
-%D
-%D The resulting file, \type {yourfile.fig}, can be loaded
-%D in the normal way. The figures can be accessed with:
-%D
-%D \starttyping
-%D \getfigurefile{label}
-%D \getfigurepage{label}
-%D \stoptyping
-%D
-%D A a bonus, the following macro is defined:
-%D
-%D \starttyping
-%D \includefigurefile width 10cm {label}
-%D \stoptyping
-
-\usemodule[fig-00]
-
-\doifnothing {\jobfilename} {\end}
-\doiffileelse {\jobfilename.xml} {} {\end}
-
-\defineXMLenvironment [figurelibrary] \StartLibrary \StopLibrary
-\defineXMLignore [description]
-\defineXMLenvironment [figure] \StartFigure \StopFigure
-
-\def\StartLibrary
- {\immediate\openout \scratchwrite=\jobfilename.fig
- \immediate\write\scratchwrite{\string\input\space x-fig-03.tex \string\relax}
- \immediate\write\scratchwrite{}}
-
-\def\StopLibrary
- {\immediate\write\scratchwrite{}
- \immediate\write\scratchwrite{\string\endinput}
- \immediate\closeout\scratchwrite}
-
-\def\StartFigure
- {\defineXMLpush[file]
- \defineXMLpush[dummy]
- \defineXMLpush[label]
- \defineXMLpush[copyright]
- \defineXMLpush[comment]
- \defineXMLpush[status]}
-
-\def\StopFigure
- {\doglobal\increment\CurrentPage
- \immediate\write\scratchwrite
- {\string\setfiguredata\space
- {\XMLpop{label}}
- {\jobfilename}
- {\CurrentPage}}}
-
-\doglobal\newcounter\CurrentPage
-
-\starttext
-
-\processXMLfilegrouped{\jobfilename.xml}
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-fig-03.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-fig-03.mkii
deleted file mode 100644
index c7f03453e09..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-fig-03.mkii
+++ /dev/null
@@ -1,44 +0,0 @@
-%D \module
-%D [ file=x-fig-03,
-%D version=2001.03.21,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Figure Base Inclusion (II),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\ifx \undefined \convertMPtoPDF \input supp-pdf.mkii \fi
-\ifx \undefined \includefigurefile \else \expandafter \endinput \fi
-
-\gdef\getfigurefile#1%
- {\expandafter\ifx\csname x-fig-f-#1\endcsname\relax
- \currentfigurefile
- \else
- \csname x-fig-f-#1\endcsname
- \fi}
-
-\gdef\getfigurepage#1%
- {\expandafter\ifx\csname x-fig-p-#1\endcsname\relax
- 1%
- \else
- \csname x-fig-p-#1\endcsname
- \fi}
-
-\gdef\setfiguredata#1#2#3%
- {\gdef\currentfigurefile{#2}%
- \expandafter\gdef\csname x-fig-f-#1\endcsname{#2}%
- \expandafter\gdef\csname x-fig-p-#1\endcsname{#3}}
-
-\def\includefigurefile#1#%
- {\doincludefigurefile{#1}}
-
-\def\doincludefigurefile#1#2%
- {\edef\next{\noexpand\pdfimage
- #1 page \getfigurepage{#2} {\getfigurefile{#2}.pdf}}%
- \next}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-fo.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-fo.mkii
deleted file mode 100644
index 2c1ac0d96f0..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-fo.mkii
+++ /dev/null
@@ -1,4057 +0,0 @@
-%D \module
-%D [ file=x-fo,
-%D version=2004.03.12, % based on earlier experiments
-%D title=\FOXET,
-%D subtitle=Formatting Objects,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% \showframe
-
-% This is a first implementation, maybe I will write another one with mixed
-% element indifferent vars and something 'when set, act upon it, and forget',
-% for instance: in each element check if font set, if so, change font and
-% reset font attributes. I'm not sure if this is wise.
-
-% todo: global assignment in order to limit restore
-% todo: combine mp graphics (see end) saves 30%
-% todo: using contants and variables (for internal use)
-
-% todo: language at more levels
-
-% beware: aftergroup vs egroup/endgroup
-
-\useXMLfilter[prs,run]
-
-\unprotect
-
-% syst-new.tex
-
-\long\def\unstringed#1% " ' space
- {\csname\ifcsname @u@s@#1\endcsname @u@s@#1\else\s!empty\fi\endcsname#1}
-
-\long\setvalue{@u@s@"}#1#2"{#2}
-\long\setvalue{@u@s@'}#1#2'{#2}
-\long\setvalue{@u@s@ }#1#2 {#2}
-
-% xtag-ini
-
-\def\letXMLpar #1#2{\@EA \let\csname\@@XMLvariable:#1:#2\endcsname}
-\def\setXMLpar #1#2{\@EA \def\csname\@@XMLvariable:#1:#2\endcsname}
-\def\setXMLepar#1#2{\@EA\edef\csname\@@XMLvariable:#1:#2\endcsname}
-
-\protect
-
-%D Most time went into figuring out the specifications, especially
-%D because there are no examples included. Samples that circulate on the
-%D web are often border cases and torture test and don't have much to do
-%D with real live. Another complication lays in the inheritance model:
-%D some of the attributes are inherited. This also leaves some room for
-%D interpretation, for instance do values that are used at a certain
-%D point migrate downwards or not.
-%D
-%D The \CONTEXT\ \XML handler can deal with attributes in several ways
-%D and for this purpose I have played with a few experimental mechanisms
-%D just to end up with the existing begin/end mechanism combined with
-%D a recursive attribute resolver which means that one has to implicitly
-%D ask for an inherited attributes. This approach is probably one of the
-%D most efficient ways of dealing with formatting objects in \CONTEXT,
-%D unless of course I start adding rather specific support to the kernel.
-%D
-%D This module is rather experimental. More information about its usage
-%D can be found in the \FOXET\ manual.
-
-%D Since we're not dealing with the fine points of typesetting here, we
-%D can safely ignore \TEX's warnings about overful or underful boxes.
-
-\dontcomplain
-
-%D We will use fonts that have the characters in the normal (ascii)
-%D slots. We will also use the stupid verbatim handler.
-
-\chardef\XMLtokensreduction = 2
-\chardef\XMLcdatamethod = 2
-
-%D For the purpose of testing.
-
-\startmode[fo-verbose]
- \def\writeFOstatus{\writestatus{XML-FO}}
-\stopmode
-
-\startnotmode[fo-verbose]
- \let\writeFOstatus\gobbleoneargument
-\stopnotmode
-
-%D For the moment we stick to utf-8.
-
-\useXMLfilter[utf]
-
-%D This will be sorted out later (esp in relation to mathml).
-
-\setupbodyfont[pos,10pt]
-
-%D There are a couple of predefined colors. Don't ask me why, but
-%D formatting objects are not a fresh start but a mix of existing
-%D technologies. Color support is poluted by cascading stylesheets.
-%D
-%D Because hexadecimal color specifications are not enabled by
-%D default, this feature has to be enables by loading the appropriate
-%D color module. Here we define colors in \RGB\ values because we
-%D don't want to loose accuracy.
-
-\setupcolors[state=start] \setupcolor[hex]
-
-\definecolor [black] [s=0] % [h=000000]
-\definecolor [gray] [s=.5] % [h=808080]
-\definecolor [silver] [s=.75] % [h=C0C0C0]
-\definecolor [white] [s=1] % [h=FFFFFF]
-\definecolor [maroon] [r=.5] % [h=800000]
-\definecolor [red] [r=1] % [h=FF0000]
-\definecolor [purple] [r=.5,b=.5] % [h=800080]
-\definecolor [fuchsia] [r=1,b=1] % [h=FF00FF]
-\definecolor [green] [g=.5] % [h=008000]
-\definecolor [lime] [g=1] % [h=00FF00]
-\definecolor [olive] [r=.5,g=.5] % [h=808000]
-\definecolor [yellow] [r=1,g=1] % [h=FFFF00]
-\definecolor [navy] [r=1,g=1] % [h=000080]
-\definecolor [blue] [b=1] % [h=0000FF]
-\definecolor [teal] [g=.5,b=.5] % [h=008080]
-\definecolor [aqua] [g=1,b=1] % [h=00FFFF]
-
-%D The layout is rather basic. Of the 25 available areas we
-%D only use the text area. Maybe some day I will plug in a
-%D more dedicated page builder.
-
-\setuplayout
- [backspace=0pt,
- topspace=0pt,
- header=0pt,
- footer=0pt,
- width=middle,
- height=middle,
- % marking=on,
- location=middle]
-
-\setuppagenumbering
- [alternative={doublesided,singlesided}, % sic
- location=]
-
-\setuptolerance
- [verytolerant,stretch]
-
-%D We will position the regions using layers.
-
-\definelayer[regions][width=\paperwidth,height=\paperheight]
-
-\definelayer[xsl-region-before]
-\definelayer[xsl-region-after]
-\definelayer[xsl-region-start]
-\definelayer[xsl-region-end]
-\definelayer[xsl-region-body]
-
-\setupbackgrounds[page][background=regions]
-
-%D We now enter the part of this module where the action takes
-%D place. As usual we provide some tracing options.
-
-\newif\iftracingFO \readsysfile{page-run}\donothing\donothing
-
-%D We will organize the attribute definitions in a similar fashion as in
-%D the specification. Unfortunately there are more sets defined in there
-%D than are actually used, so the definitions later on will look a bit
-%D messy.
-%D
-%D Quite some attributes can be inherited, which means that they can
-%D end up in all elements and influence those way down the tree.
-
-\defineXMLattributeset
- [fo:inherited]
-
-%D The properties:
-
-% \defineXMLattributeset
-% [fe:tracing]
-% [tracing=]
-
-\defineXMLattributeset
- [fo:accessibility]
- [source-document=none,
- role=none]
-
-\defineXMLattributeset
- [fo:absolute-position]
- [absolute-position=auto,
- top=auto,
- right=auto,
- bottom=auto,
- left=auto]
-
-% \defineXMLattributeset
-% [fo:aural]
-% [azitmuth=,
-% cue-after=,
-% cue-before=,
-% elevation=,
-% pause-after=,
-% pause-before=,
-% pitch=,
-% pitch-range=,
-% play-during=,
-% richness=,
-% speak=,
-% speak-header=,
-% speak-numeral=,
-% speak-punctuation=,
-% speech-rate=,
-% stress=,
-% voice-family=,
-% volume=]
-
-\defineXMLattributeset
- [fo:border-padding-background]
- [background-attachment=scroll,
- background-color=transparent,
- background-image=none,
- background-repeat=repeat,
- background-position-horizontal=left,
- background-position-vertical=top,
- border-color=transparent,
- border-style=none,
- border-width=medium,
- background-position=,
- border-top=,
- border-bottom=,
- border-left=,
- border-right=,
- border-before-color=\XMLop{border-color},
- border-before-style=\XMLop{border-style},
- border-before-width=\XMLop{border-width},
- border-after-color=\XMLop{border-color},
- border-after-style=\XMLop{border-style},
- border-after-width=\XMLop{border-width},
- border-start-color=\XMLop{border-color},
- border-start-style=\XMLop{border-style},
- border-start-width=\XMLop{border-width},
- border-end-color=\XMLop{border-color},
- border-end-style=\XMLop{border-style},
- border-end-width=\XMLop{border-width},
- border-top-color=\XMLop{border-before-color},
- border-top-style=\XMLop{border-before-style},
- border-top-width=\XMLop{border-before-width},
- border-bottom-color=\XMLop{border-after-color},
- border-bottom-style=\XMLop{border-after-style},
- border-bottom-width=\XMLop{border-after-width},
- border-left-color=\XMLop{border-start-color},
- border-left-style=\XMLop{border-start-style},
- border-left-width=\XMLop{border-start-width},
- border-right-color=\XMLop{border-end-color},
- border-right-style=\XMLop{border-end-style},
- border-right-width=\XMLop{border-end-width},
- padding=,% 0pt,
- padding-before=0pt,%\XMLop{padding},
- padding-after=0pt,%\XMLop{padding},
- padding-start=0pt,%\XMLop{padding},
- padding-end=0pt,%\XMLop{padding},
- padding-top=\XMLop{padding-before},
- padding-bottom=\XMLop{padding-after},
- padding-left=\XMLop{padding-start},
- padding-right=\XMLop{padding-end}]
-
-\extendXMLattributeset
- [fo:border-padding-background]
- [fe:background-height=,
- fe:background-width=]
-
-\defineXMLattributeset
- [fo:font]
- []
-
-\extendXMLattributeset
- [fo:inherited]
- [font=,
- font-family=,% Times,
- font-selection-strategy=,
- font-size=,% 12pt,
- font-size-adjust=, % 1,
- font-style=, % normal,
- font-variant=, % normal,
- font-weight=] % normal]
-
-\defineXMLattributeset
- [fo:hyphenation]
- []
-
-\extendXMLattributeset
- [fo:inherited]
- [country=,
- language=,
- script=,
- hyphenate=,
- hyphenation-character=,
- hyphenation-push-character-count=,
- hyphenation-remain-character-count=]
-
-\defineXMLattributeset
- [fo:margin-block]
- [margin=, % 0pt,
- margin-top=0pt,% \XMLop{margin},
- margin-bottom=0pt,% \XMLop{margin},
- margin-left=0pt,% \XMLop{margin},
- margin-right=0pt,% \XMLop{margin},
- space-before=0pt,
- space-after=0pt,
- space-before.precedence=,
- space-before.conditionality=,
- space-before.minimum=,
- space-before.optimum=,
- space-before.maximum=,
- space-after.precedence=,
- space-after.conditionality=,
- space-after.minimum=,
- space-after.optimum=,
- space-after.maximum=]
-
-\extendXMLattributeset
- [fo:inherited]
- [start-indent=,
- end-indent=]
-
-\defineXMLattributeset
- [fo:margin-inline]
- [space-start=,
- space-end=]
-
-\defineXMLattributeset
- [fo:relative-position]
- [relative-position=,
- top=auto,
- right=auto,
- bottom=auto,
- left=auto]
-
-\defineXMLattributeset
- [fo:area-alignment]
- [alignment-adjust=,
- alignment-baseline=,
- baseline-shift=,
- dominant-baseline=]
-
-\extendXMLattributeset
- [fo:inherited]
- [display-align=,
- relative-align=]
-
-\defineXMLattributeset
- [fo:area-dimension]
- [block-progression-dimension=,
- inline-progression-dimension=,
- content-height=,
- content-width=,
- height=,
- width=,
- max-height=,
- max-width=,
- min-height=,
- min-width=,
- scaling=,
- scaling-method=]
-
-\defineXMLattributeset
- [fo:block-and-line]
- []
-
-\extendXMLattributeset
- [fo:inherited]
- [hyphenation-keep=,
- hyphenation-ladder-count=,
- last-line-end-indent=,
- line-height=,
- line-height-shift-adjustment=,
- line-stacking-strategy=,
- linefeed-treatment=,
- white-space-treatment=,
- text-align=,
- text-align-last=,
- text-indent=,
- white-space-collapse=,
- wrap-option=]
-
-\defineXMLattributeset
- [fo:character]
- [character=,
- suppress-at-line-break=,
- text-decoration=,
- text-shadow=,
- treat-as-word-space=]
-
-\extendXMLattributeset
- [fo:inherited]
- [letter-spacing=,
- text-transform=,
- word-spacing=]
-
-\defineXMLattributeset
- [fo:color]
- [color-profile-name=,
- rendering-intent=]
-
-\extendXMLattributeset
- [fo:inherited]
- [color=]
-
-\defineXMLattributeset
- [fo:float]
- [clear=,
- float=]
-
-\extendXMLattributeset
- [fo:inherited]
- [intrusion-displace=]
-
-\defineXMLattributeset
- [fo:keeps-and-breaks]
- [break-after=,
- break-before=,
- keep-with-next.within-line=,
- keep-with-next.within-column=,
- keep-with-next.within-page=,
- keep-with-previous.within-line=,
- keep-with-previous.within-column=,
- keep-with-previous.within-page=]
-
-\extendXMLattributeset
- [fo:inherited]
- [keep-together.within-line=,
- keep-together.within-column=,
- keep-together.within-page=,
- orphans=,
- widows=]
-
-\defineXMLattributeset
- [fo:layout]
- [clip=,
- overflow=
- span=]
-
-\extendXMLattributeset
- [fo:inherited]
- [reference-orientation=]
-
-\defineXMLattributeset
- [fo:leader-and-rule]
- []
-
-\extendXMLattributeset
- [fo:inherited]
- [leader-alignment=,
- leader-pattern=,
- leader-pattern-width=,
- leader-pattern-width=,
- leader-length=,
- rule-style=,
- rule-thickness=]
-
-\defineXMLattributeset
- [fo:dynamic-effects]
- [active-state=,
- case-name=,
- case-title=,
- destination-placement-offset=,
- external-destination=,
- indicate-destination=,
- internal-destination=,
- show-destination=,
- starting-state=,
- switch-to=,
- target-presentation-context=,
- target-processing-context=,
- target-stylesheet=]
-
-\extendXMLattributeset
- [fo:inherited]
- [auto-restore=]
-
-\defineXMLattributeset
- [fo:markers]
- [marker-class-name=,
- retrieve-class-name=,
- retrieve-position=,
- retrieve-boundary=]
-
-\defineXMLattributeset
- [fo:number-to-string]
- [country=,
- language=,
- format=,
- grouping-separator=,
- grouping-size=,
- letter-value=]
-
-% \defineXMLattributeset
-% [fo:pagination-and-layout]
-% [black-or-not-blank=,
-% column-count=1,
-% column-gap=12pt,
-% extent=,
-% flow-name=,
-% force-page-count=,
-% initial-page-number=,
-% master-name=,
-% master-reference=,
-% maximum-repeats=,
-% media-usage=,
-% odd-or-even=,
-% page-height=,
-% page-position=,
-% page-width=,
-% precedence=,
-% region-name=]
-
-\defineXMLattributeset
- [fo:table]
- [border-after-precedence=,
- border-before-precedence=,
- border-end-precedence=,
- border-start-precedence=,
- column-number=,
- column-width=,
- ends-row=,
- number-columns-repeated=,
- number-columns-spanned=,
- number-rows-spanned=,
- starts-row=,
- table-layout=,
- table-omit-footer-at-break=,
- table-omit-header-at-break=]
-
-\extendXMLattributeset
- [fo:inherited]
- [border-collapse=,
- border-separation=,
- caption-side=,
- empty-cells=]
-
-\defineXMLattributeset
- [fo:writing-mode]
- [%text-altitude=,
- %text-depth=,
- unicode-bidi=]
-
-\extendXMLattributeset % for practical reasons we inherit along the whole chain
- [fo:inherited] % unless we implement relax skipping
- [text-altitude=,
- text-depth=]
-
-\extendXMLattributeset
- [fo:inherited]
- [direction=,
- glyph-orientation-horizontal=,
- glyph-orientation-vertical=,
- writing-mode=]
-
-\defineXMLattributeset
- [fo:list-block]
- []
-
-\extendXMLattributeset
- [fo:inherited]
- [provisional-label-separation=,
- provisional-distance-between-starts=]
-
-% \starttext
-% \setuplayout[topspace=1cm,height=middle,header=0pt,footer=0pt]
-% \setupbodyfont[small,tt]
-% \expanded{\processcommalist[\XMLattributeset{fo:inherited}]}\endgraf
-% \stoptext
-
-% content-type
-% id
-
-% ref-id
-% score-spaces % inherited
-% src
-% visibility % inherited
-% z-index
-
-% shorthands:
-%
-% background
-% background-position
-% border
-% border-bottom
-% border-left
-% border-top
-% border-right
-% border-style
-% border-color
-% border-spacing % inherited
-% border-width
-% cue
-% font % inherited
-% margin
-% padding
-% page-break-after
-% page-break-before
-% page-break-inside % inherited
-% pause
-% position
-% size
-% vertical-align
-% white-space % inherited
-
-%D We will speed up the process of setting up attributes by compiling the
-%D definitions. Sometimes we need to access attributes explicitly by
-%D element (for instance when handling regions). We also need to deal
-%D with nested elements (for instance blocks) or a sequence of similar
-%D ones, while we may not always want to use grouping. As a result, the
-%D next series of definitions and macros are quite ugly. The begin|/|end
-%D is needed in order to comfortably fetch attribute values from
-%D ancestors.
-
-\startXMLcompiling[inherit]
-
-%D Element: fo:root
-
-%D todo: set defaults here
-
-\defineXMLenvironment
- [fo:root]
- [\XMLattributeset{fo:inherited},
-leader-pattern=spaces,
-leader-pattern-width=12pt,
- media-usage=]
- {\directsetup{fo:root:start}}
- {\directsetup{fo:root:stop}}
-
-\startsetups fo:root:start
- \starttext \beginXMLelement \startXMLignore
- \doifsomething{\XMLop{language}}{\mainlanguage[\XMLop{language}]}% todo, everywhere
-\stopsetups
-
-\startsetups fo:root:stop
- \stopXMLignore \endXMLelement \stoptext
-\stopsetups
-
-%D Element: fo:declarations
-
-\defineXMLprocess
- [fo:declarations]
-
-%D Element: fo:color-profile
-
-\defineXMLignore
- [fo:color-profile]
- [src=,
- color-profile-name=,
- rendering-intent=]
-
-%D Element: fo:page-sequence
-
-% master-name and master-reference are often mixed up in examples
-
-\defineXMLenvironment
- [fo:page-sequence]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fe:tracing},
- \XMLattributeset{fo:number-to-string},
- initial-page-number=auto,
- master-reference=any,
- force-page-count=auto]
- {\beginXMLelement\directsetup{fo:page-sequence:start}}
- {\directsetup{fo:page-sequence:stop}\endXMLelement}
-
-\mapXMLvalue {fo:page-initial} {auto} {\relax}
-\mapXMLvalue {fo:page-initial} {auto-odd} {\ifodd\pageno \expanded{\setuppagenumber[number=\the\dimexpr(\pageno+1)]}\fi}
-\mapXMLvalue {fo:page-initial} {auto-even} {\ifodd\pageno\else\expanded{\setuppagenumber[number=\the\dimexpr(\pageno+1)]}\fi}
-
-% todo: blokkeer left/right/etc in geval van blank
-
-\mapXMLvalue {fo:page-start} {auto} {\page}
-\mapXMLvalue {fo:page-start} {even} {\page\setuplayout[blank]\page[even]}
-\mapXMLvalue {fo:page-start} {odd} {\page\setuplayout[blank]\page[odd]}
-\mapXMLvalue {fo:page-end} {end-on-even} {\page\setuplayout[blank]\page[even]}
-\mapXMLvalue {fo:page-end} {end-on-odd} {\page\setuplayout[blank]\page[odd]}
-\mapXMLvalue {fo:page-start} {no-force} {\page}
-
-\startsetups fo:page-sequence:start
-
- % we're still in the previous page-sequence
-
- \XMLval{fo:page-start}{\XMLop{force-page-count}}{\page} \begingroup
-
- \directsetup{fe:setup}
-
- \iftracingFO \showframe[text] \fi
-
- \xdef\SavedPageNumber{\the\realpageno}
-
- % now we enter the new page-sequence
-
- % todo: check on number
-
- \doifXMLvalelse{fo:page-initial}{\XMLop{initial-page-number}}
- {\XMLval{fo:page-initial}{\XMLop{initial-page-number}}{}}
- {\doifnot{\XMLop{initial-page-number}}{auto}
- {\expanded{\setuppagenumber[number=\XMLop{initial-page-number}]}}}
-
- \doifsomething{\XMLpar{fo:page-sequence}{master-reference}{}}
- {\doifelseXMLelement{fo:page-sequence-master:\XMLpar{fo:page-sequence}{master-reference}{}}
- {%[starting page sequence master: \XMLpar{fo:page-sequence}{master-reference}{}]\endgraf
- \flushXMLelement{fo:page-sequence-master:\XMLpar{fo:page-sequence}{master-reference}{}}}
- {%[starting simple page master: \XMLpar{fo:page-sequence}{master-reference}{any}]\endgraf
- \flushXMLelement{fo:simple-page-master:\XMLpar{fo:page-sequence}{master-reference}{any}}}}
-
- \doif{\XMLpar{fo:simple-page-master-do}{fe:option}{}}{fit}
- {\directsetup{fe:page:option:fit:start}}
-
- \doifnot{\XMLpar{fo:region-body}{column-count}{1}}{1}
- {\directsetup{fo:columns:start}}
-
-\stopsetups
-
-\startsetups fo:page-sequence:stop
-
- \doifnot{\XMLpar{fo:region-body}{column-count}{1}}{1}
- {\directsetup{fo:columns:stop}}
-
- \doif{\XMLpar{fo:simple-page-master-do}{fe:option}{}}{fit}
- {\directsetup{fe:page:option:fit:stop}}
-
- % \XMLval{fo:page-end}{\XMLop{force-page-count}}{\page} \endgroup
-
- \ifnum\SavedPageNumber=\realpageno
-
- \ifdim\pagetotal<.5\textheight \null \vfill \fi % force a page with only containers
-
- \fi
-
- \XMLval{fo:page-end}{\XMLpar{fo:page-sequence}{force-page-count}{}}{\page} \endgroup
-
-\stopsetups
-
-\newdimen\FOcolumngap
-
-\startsetups fo:columns:start
-
- \FOcolumngap\textwidth
-
- \setpercentdimen\FOcolumngap{\XMLpar{fo:region-body}{column-gap}{12pt}}
-
- % we need to freeze the lineheight here
-
- \expanded{\definecolumnset
- [fo:set]
- [n=\XMLpar{fo:region-body}{column-count}{1},
- distance=\FOcolumngap]}
-
- \expanded{\definecolumnsetspan
- [fo:set]
- [n=\XMLpar{fo:region-body}{column-count}{1}]}
-
- \directsetup{fo:font:setup} % else problems
-
- \directsetup{fo:line-height:setup}
-
-% \parseXMLattributes{fo:flow}{line-height='normal'}
-
- \startcolumnset[fo:set]
-
- % \startcolumns[\XMLpar{fo:region-body}{column-count}{1}]
-
-\stopsetups
-
-\startsetups fo:columns:stop
-
- % \stopcolumns
-
- \stopcolumnset
-
-\stopsetups
-
-%D Element: fo:layout-master-set
-
-\defineXMLprocess
- [fo:layout-master-set]
-
-%D Element: fo:page-sequence-master
-
-\defineXMLenvironmentsave
- [fo:page-sequence-master]
- [\XMLattributeset{fo:inherited},
- master-name=any]
- {}
- {%[saved page sequence master: \XMLop{master-name}]\endgraf
- \gsaveXMLdatainelement
- {fo:page-sequence-master:\XMLop{master-name}}
- {fo:page-sequence-master-do}
- {fo:page-sequence-master}}
-
-\defineXMLprocess
- [fo:page-sequence-master-do]
- [\XMLattributeset{fo:inherited}]
-
-%D Element: fo:single-page-master-reference
-
-% makeup - one page
-
-\defineXMLcommand
- [fo:single-page-master-reference]
- [master-reference=any]
- {\flushXMLelement{fo:simple-page-master:\XMLop{master-reference}}}
-
-%D Element: fo:repeatable-page-master-reference
-
-\defineXMLcommand
- [fo:repeatable-page-master-reference]
- [master-reference=any,
- maximum-repeats=]
- {\flushXMLelement{fo:simple-page-master:\XMLop{master-reference}}}
-
-%D Element: fo:repeatable-page-master-alternatives
-
-\defineXMLprocess
- [fo:repeatable-page-master-alternatives]
- [maximum-repeats=]
-
-%D Element: fo:conditional-page-master-reference
-
-% page-position : first last rest any
-% odd-or-even : odd even any
-% blank-or-not-blank : blank not-blank
-
-% The page-position default is needed (else possible loops)
-
-\defineXMLcommand
- [fo:conditional-page-master-reference]
- [master-reference=any,
- page-position=\XMLpar{fo:conditional-page-master-reference}{master-reference}{any},
- blank-or-not-blank=,
- odd-or-even=]
- {\flushXMLelement{fo:simple-page-master:\XMLpar{fo:conditional-page-master-reference}{master-reference}{}}}
-
-%D Element: fo:simple-page-master
-
-% first-page left-page right-page blank-page
-
-% default dimensions
-
-\defineXMLenvironmentsave
- [fo:simple-page-master]
- [master-name=any]
- {}
- {%[saved simple page master: \XMLop{master-name}]\endgraf
- \gsaveXMLdatainelement
- {fo:simple-page-master:\XMLop{master-name}}
- {fo:simple-page-master-do}
- {fo:simple-page-master}}
-
-% reference-orientation=0deg,
-% writing-mode=
-
-\defineXMLenvironment
- [fo:simple-page-master-do]
- [\XMLattributeset{fo:inherited}, % added
- \XMLattributeset{fo:margin-block},
- page-height=29.7cm,
- page-width=21cm]
- {\directsetup{fo:simple-page-master:start}}
- {\directsetup{fo:simple-page-master:stop}}
-
-% not needed any more:
-
-\mapXMLvalue {fo:reference-orientation} {0deg} {0}
-\mapXMLvalue {fo:reference-orientation} {90deg} {90}
-\mapXMLvalue {fo:reference-orientation} {180deg} {180}
-\mapXMLvalue {fo:reference-orientation} {270deg} {270}
-\mapXMLvalue {fo:reference-orientation} {-90deg} {270}
-\mapXMLvalue {fo:reference-orientation} {-180deg} {180}
-\mapXMLvalue {fo:reference-orientation} {-270deg} {90}
-
-\startsetups fo:simple-page-master:start
-
- % nothing
-
-\stopsetups
-
-% can be low level tex
-
-\startsetups fo:simple-page-master:stop
-
- \writeFOstatus{defining papersize '\directsetup{fo:layout:kind}'}
-
- \expanded
- {\definepapersize
- [\directsetup{fo:layout:kind}]
- [width=\XMLop{page-width},
- height=\XMLop{page-height}]}
-
- \checkFOpadding {fo:region-body}
- \checkFOmargin {fo:region-body}
- \checkFOmargin {fo:simple-page-master-do}
-
- \writeFOstatus{defining layout '\directsetup{fo:layout:kind}'}
-
- \FOscratchMT\paperheight \setpercentdimen\FOscratchMT{\XMLpar{fo:simple-page-master-do}{margin-top} \zeropoint}
- \FOscratchMB\paperheight \setpercentdimen\FOscratchMB{\XMLpar{fo:simple-page-master-do}{margin-bottom}\zeropoint}
- \FOscratchML\paperwidth \setpercentdimen\FOscratchML{\XMLpar{fo:simple-page-master-do}{margin-left} \zeropoint}
- \FOscratchMR\paperwidth \setpercentdimen\FOscratchMR{\XMLpar{fo:simple-page-master-do}{margin-right} \zeropoint}
-
- \FOscratchRB\paperheight \setpercentdimen\FOscratchRB{\XMLpar{fo:region-body}{margin-top} \zeropoint}
- \FOscratchRA\paperheight \setpercentdimen\FOscratchRA{\XMLpar{fo:region-body}{margin-bottom}\zeropoint}
- \FOscratchRS\paperwidth \setpercentdimen\FOscratchRS{\XMLpar{fo:region-body}{margin-left} \zeropoint}
- \FOscratchRE\paperwidth \setpercentdimen\FOscratchRE{\XMLpar{fo:region-body}{margin-right} \zeropoint}
-
- \FOscratchPB\paperheight \setpercentdimen\FOscratchPB{\XMLpar{fo:region-body}{padding-top} \zeropoint}
- \FOscratchPA\paperheight \setpercentdimen\FOscratchPA{\XMLpar{fo:region-body}{padding-bottom}\zeropoint}
- \FOscratchPS\paperwidth \setpercentdimen\FOscratchPS{\XMLpar{fo:region-body}{padding-left} \zeropoint}
- \FOscratchPE\paperwidth \setpercentdimen\FOscratchPE{\XMLpar{fo:region-body}{padding-right} \zeropoint}
-
- \expanded
- {\definelayout
- [\directsetup{fo:layout:kind}]
- [ page={\directsetup{fo:layout:kind},\XMLval{fo:reference-orientation}{\XMLop{reference-orientation}}{}},
- paper=\directsetup{fo:layout:kind},
- backspace=\the\dimexpr(\FOscratchML+\FOscratchPS+\FOscratchRS),
- cutspace=\the\dimexpr(\FOscratchMR+\FOscratchPE+\FOscratchRE),
- topspace=\the\dimexpr(\FOscratchMT+\FOscratchPB+\FOscratchRB),
- bottomspace=\the\dimexpr(\FOscratchMB+\FOscratchPA+\FOscratchRA)]}
-
- \expanded{\setuplayout[\directsetup{fo:layout:kind}]}
-
- % this is a nasty bit of code: this local setup stores some data that
- % needs to be used later
-
- \startexpanded
- \noexpand \startlocalsetups[layout:\directsetup{fo:layout:kind}]
- \noexpand \writeFOstatus{processing simple page master '\XMLpar{fo:simple-page-master-do}{master-name}{any}'}
- \noexpand \resetsetups[fo:simple-page-master:start]
- \noexpand \resetsetups[fo:simple-page-master:stop]
- \noexpand \flushXMLelement{fo:simple-page-master:\XMLpar{fo:simple-page-master-do}{master-name}{any}}
- \noexpand \stoplocalsetups
- \stopexpanded
-
-\stopsetups
-
-% \defineXMLcommand[fo:simple-page-master-do-do]
-% {\writeFOstatus{setting up master \XMLop{master-name} in page body}}
-
-%D Element: fo:region-body
-
-% display-align=,
-% reference-orientation=,
-% writing-mode=,
-
-\defineXMLcommand % or process
- [fo:region-body]
- [\XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:margin-block},
- fe:z-order=above,
- clip=,
- column-count=1,
- column-gap=12pt,
- overflow=,
- region-name=]
- {\directsetup{fo:region-body:process}}
-
-\startsetups fo:region-body:process
- \writeFOstatus{refreshing region-body parameters}
-\stopsetups
-
-% todo: naar realfolio handelen ipv folio
-
-\mapXMLvalue {fo:odd-or-even} {odd} {odd}
-\mapXMLvalue {fo:odd-or-even} {even} {even}
-
-\mapXMLvalue {fo:page-position} {any} {rest} % todo
-\mapXMLvalue {fo:page-position} {first} {current}
-\mapXMLvalue {fo:page-position} {last} {last} % todo
-\mapXMLvalue {fo:page-position} {rest} {rest} % todo
-
-%mapXMLvalue {fo:blank-or-not-blank} {any} {} % todo
-%mapXMLvalue {fo:blank-or-not-blank} {not-blank} {} % todo
-%mapXMLvalue {fo:blank-or-not-blank} {blank} {} % todo
-
-% check this one esp default value
-
-\startsetups fo:layout:kind
-
- \XMLpav
- {fo:odd-or-even}
- {fo:conditional-page-master-reference}
- {odd-or-even}
- {\XMLpav
- {fo:page-position}
- {fo:conditional-page-master-reference}
- {page-position}
- {\XMLpar{fo:page-sequence-master}{master-reference}{any}}}
-
-\stopsetups
-
-% common border things
-
-% clip
-% display-align
-% extent
-% overflow
-% precedence
-% region-name
-% reference-orientation
-% writing-mode
-
-%D Element: fo:region-before fo:region-after fo:region-start fo:region-end
-
-% border-before-color : <color> | inherit
-% border-before-style : <border style> | inherit
-% border-before-width.length|conditional : <border width> | <length conditional> | inherit
-%
-% style: none hidden dotted dashed solid double groove ridge inset outset
-% width: thin medium thick length
-
-\mapXMLvalue {fo:display-align} {auto} {before} % todo: related to relative-align
-\mapXMLvalue {fo:display-align} {before} {high}
-\mapXMLvalue {fo:display-align} {after} {low}
-\mapXMLvalue {fo:display-align} {center} {lohi}
-
-% display-align=,
-% reference-orientation=,
-% writing-mode=,
-
-\defineXMLcommand % will become process when stable
- [fo:region-before]
- [\XMLattributeset{fo:border-padding-background},
- clip=,
- extent=,
- overflow=,
- precedence=,
- region-name=]
- {\directsetup{fo:region-before:process}}
-
-\startsetups fo:region-before:process
- \writeFOstatus{refreshing region-before parameters}
-\stopsetups
-
-\defineXMLprocess
- [fo:region-after]
- [\XMLattributeset{fo:border-padding-background},
- clip=,
- extent=,
- overflow=,
- precedence=,
- region-name=]
-
-\defineXMLprocess
- [fo:region-start]
- [\XMLattributeset{fo:border-padding-background},
- clip=,
- extent=,
- overflow=,
- region-name=]
-
-\defineXMLprocess
- [fo:region-end]
- [\XMLattributeset{fo:border-padding-background},
- clip=,
- extent=,
- overflow=,
- region-name=]
-
-\mapXMLvalue {fo:border-style} {none} {0}
-\mapXMLvalue {fo:border-style} {hidden} {1}
-\mapXMLvalue {fo:border-style} {dotted} {2}
-\mapXMLvalue {fo:border-style} {dashed} {3}
-\mapXMLvalue {fo:border-style} {solid} {4}
-\mapXMLvalue {fo:border-style} {double} {5}
-\mapXMLvalue {fo:border-style} {groove} {6}
-\mapXMLvalue {fo:border-style} {ridge} {7}
-\mapXMLvalue {fo:border-style} {inset} {8}
-\mapXMLvalue {fo:border-style} {outset} {9}
-
-\mapXMLvalue {fo:border-width} {thin} {.25pt}
-\mapXMLvalue {fo:border-width} {medium} {.5pt}
-\mapXMLvalue {fo:border-width} {thick} {1pt}
-
-\startsetups fo:regions:check
-
- \startprocesscommalist[body,before,after,start,end]
-
- \checkFOborder{fo:region-\currentcommalistitem}{bottom}
- \checkFOborder{fo:region-\currentcommalistitem}{top}
- \checkFOborder{fo:region-\currentcommalistitem}{left}
- \checkFOborder{fo:region-\currentcommalistitem}{right}
-
- \checkhexcolor[\XMLpar{fo:region-\currentcommalistitem}{border-bottom-color}{}]
- \checkhexcolor[\XMLpar{fo:region-\currentcommalistitem}{border-top-color}{}]
- \checkhexcolor[\XMLpar{fo:region-\currentcommalistitem}{border-left-color}{}]
- \checkhexcolor[\XMLpar{fo:region-\currentcommalistitem}{border-right-color}{}]
- \checkhexcolor[\XMLpar{fo:region-\currentcommalistitem}{background-color}{}]
-
- \checkFOposition{fo:region-\currentcommalistitem}{background}
- \checkFOpadding {fo:region-\currentcommalistitem}
- \checkFOmargin {fo:region-\currentcommalistitem}
-
- \stopprocesscommalist
-
-\stopsetups
-
-%D Element: fo:flow
-
-\defineXMLenvironment
- [fo:flow]
- [\XMLattributeset{fo:inherited},
- flow-name=unknown]
- {\beginXMLelement\directsetup{fo:flow:start}}
- {\directsetup{fo:flow:stop}\endXMLelement}
-
-\startsetups fo:flow:start
- \begingroup
-\stopsetups
-
-\startsetups fo:flow:stop
- \endgroup
-\stopsetups
-
-%D Element: fo:static-content
-
-% \beginXMLelement \endXMLelement - maybe save with attributes
-
-\defineXMLenvironmentsave
- [fo:static-content]
- [flow-name=unknown]
- {}
- {\directsetup{fo:static-content:process}}
-
-\startsetups fo:static-content:process
-
- \gsaveXMLdata{fo:static-content:\XMLop{flow-name}}{fo:static-content}
-
-\stopsetups
-
-\newdimen\FOscratchML \newdimen\FOscratchMR \newdimen\FOscratchMT \newdimen\FOscratchMB
-\newdimen\FOscratchPB \newdimen\FOscratchPA \newdimen\FOscratchPS \newdimen\FOscratchPE
-\newdimen\FOscratchRB \newdimen\FOscratchRA \newdimen\FOscratchRS \newdimen\FOscratchRE
-
-\mapXMLvalue {fo:background-repeat} {no-repeat} {0}
-\mapXMLvalue {fo:background-repeat} {repeat} {1}
-\mapXMLvalue {fo:background-repeat} {repeat-x} {2}
-\mapXMLvalue {fo:background-repeat} {repeat-y} {3}
-
-\expanded {\mapXMLvalue {fo:background-location} {left} {0\letterpercent}}
-\expanded {\mapXMLvalue {fo:background-location} {right} {100\letterpercent}}
-\expanded {\mapXMLvalue {fo:background-location} {top} {0\letterpercent}}
-\expanded {\mapXMLvalue {fo:background-location} {bottom} {100\letterpercent}}
-\expanded {\mapXMLvalue {fo:background-location} {center} {50\letterpercent}}
-
-\newdimen\FObgpositionH
-\newdimen\FObgpositionV
-
-\def\FObackgroundimage#1#2#3%
- {\doifnot{\XMLpar{fo:#1}{background-image}{none}}{none}
- {\setFOimagename{\XMLpar{fo:#1}{background-image}{dummy}}%
- \FObgpositionH#2%
- \setpercentdimen\FObgpositionH{\XMLpav
- {fo:background-location}
- {fo:#1}
- {background-position-horizontal}
- {\XMLpar{fo:#1}{background-position-horizontal}{}}}%
- \ifpercentdimendone
- \skip0\zeropoint plus \FObgpositionH
- \skip2\zeropoint plus \dimexpr(#2-\FObgpositionH)%
- \else
- \skip0\FObgpositionH
- \skip2\zeropoint plus 1fill\relax
- \fi
- \FObgpositionV#3%
- \setpercentdimen\FObgpositionV{\XMLpav
- {fo:background-location}{fo:#1}{background-position-vertical}
- {\XMLpar{fo:#1}{background-position-vertical}{}}}%
- \ifpercentdimendone
- \skip4\zeropoint plus \FObgpositionV
- \skip6\zeropoint plus \dimexpr(#3-\FObgpositionV)%
- \else
- \skip4\FObgpositionV
- \skip6\zeropoint plus 1fill\relax
- \fi
- \vbox to #3 \bgroup
- \vskip\skip4\relax
- \hbox to #2 \bgroup
- \hskip\skip0\relax
- \backgroundimage
- {\XMLpav{fo:background-repeat}{fo:#1}{background-repeat}{}}{#2}{#3}%
- {\externalfigure
- [\FOimagename]
- [width=\XMLpar{fo:#1}{fe:background-width}{},
- height=\XMLpar{fo:#1}{fe:background-height}{}]}%
- \hskip\skip2\relax
- \egroup
- \vskip\skip6\relax
- \egroup}}
-
-\def\checkFOclipping#1%
- {\doifsomething{\XMLpar{#1}{clip}{}}
- {\analyzefunction{\XMLpar{#1}{clip}{}}%
- \doif\functionname{rect}
- {\def\postprocessframebox##1%
- {\edef\next{\dimen0=\the\wd##1\dimen2=\the\ht##1\dimen4=\the\dp##1}%
- \setbox##1\hbox
- {\clip % expanded?
- [topoffset=-\functionA,
- bottomoffset=-\functionC,
- leftoffset=-\functionD,
- rightoffset=-\functionB]
- {\box##1}}%
- \next}}}}
-
-\def\clipFOarea#1%
- {\doifsomething{\XMLpar{#1}{clip}{}}%
- {\analyzefunction{\XMLpar{#1}{clip}{}}%
- \doif\functionname{rect}
- {\setbox\scratchbox\hbox{\foregroundbox}%
- \edef\next{\dimen0=\the\wd\scratchbox\dimen2=\the\ht\scratchbox\dimen4=\the\dp\scratchbox}%
- \setbox\scratchbox\hbox
- {\clip % expanded?
- [topoffset=-\functionA,
- bottomoffset=-\functionC,
- leftoffset=-\functionD,
- rightoffset=-\functionB]
- {\box\scratchbox}}%
- \next
- \box\scratchbox}}}
-
-\defineoverlay
- [text]
- [\clipFOarea{fo:region-body}]
-
-\setupbackgrounds
- [text]
- [background=text]
-
-\def\FOregionbuilder#1#2#3#4#5#6% #1=location #2=preset #3=x #4=y #5=width #6=height
- {\writeFOstatus{building region #1}%
- \defineoverlay
- [image]
- [{\framed
- [frame=off,
- orientation=\XMLpav{fo:reference-orientation}{fo:#1}{reference-orientation}{0},
- offset=overlay,
- height=\overlayheight,
- width=\overlaywidth]
- {\FObackgroundimage{#1}\hsize\vsize}}]%
- \setlayerframed
- [regions]
- [preset=#2,x=\dimexpr(#3),y=\dimexpr(#4)]
- [frame=off,
- offset=overlay,background={#1-graphic,image,xsl-#1},
- width=\dimexpr(#5),height=\dimexpr(#6)]
- {\lrtbbox
- {\XMLpar{fo:#1}{padding-left}\zeropoint}%
- {\XMLpar{fo:#1}{padding-right}\zeropoint}%
- {\XMLpar{fo:#1}{padding-top}\zeropoint}%
- {\XMLpar{fo:#1}{padding-bottom}\zeropoint}%
- {\checkFOclipping{fo:#1}%
- \framed
- [frame=off,
- offset=overlay,
- orientation=\XMLpav{fo:reference-orientation}{fo:#1}{reference-orientation}{0},
- align={\XMLpav{fo:display-align}{fo:#1}{display-align}{high},\XMLpav{fo:align-key}{fo:#1}{text-align}{normal}},
- width=\hsize,height=\vsize]
- {\doFObeforeskip{fo:#1}%
- \flushXMLelement{fo:static-content:\XMLpar{fo:#1}{region-name}{xsl-#1}}}%
- \doFOafterskip{fo:#1}}}}
-
-\startsetups fo:regions:process
-
- \directsetup{fo:regions:check}
-
- \checkFOmargin{fo:simple-page-master-do}
-
- \FOscratchMT\paperheight \setpercentdimen\FOscratchMT{\XMLpar{fo:simple-page-master-do}{margin-top} \zeropoint}
- \FOscratchMB\paperheight \setpercentdimen\FOscratchMB{\XMLpar{fo:simple-page-master-do}{margin-bottom}\zeropoint}
- \FOscratchML\paperwidth \setpercentdimen\FOscratchML{\XMLpar{fo:simple-page-master-do}{margin-left} \zeropoint}
- \FOscratchMR\paperwidth \setpercentdimen\FOscratchMR{\XMLpar{fo:simple-page-master-do}{margin-right} \zeropoint}
-
- \doif{\XMLpar{fo:region-body}{fe:z-order}{above}}{below}{\directsetup{fo:regions:process:body}}
-
- \FOscratchRB\paperheight \setpercentdimen\FOscratchRB{\XMLpar{fo:region-before}{extent}\zeropoint}
- \FOscratchRA\paperheight \setpercentdimen\FOscratchRA{\XMLpar{fo:region-after} {extent}\zeropoint}
- \FOscratchRS\paperwidth \setpercentdimen\FOscratchRS{\XMLpar{fo:region-start} {extent}\zeropoint}
- \FOscratchRE\paperwidth \setpercentdimen\FOscratchRE{\XMLpar{fo:region-end} {extent}\zeropoint}
-
- \doifelse{\XMLpar{fo:region-before}{precedence}{false}}{true}
- {\doifelse{\XMLpar{fo:region-after}{precedence}{false}}{true}
- {\directsetup{fo:regions:process:true:true}}
- {\directsetup{fo:regions:process:true:false}}}
- {\doifelse{\XMLpar{fo:region-after}{precedence}{false}}{true}
- {\directsetup{fo:regions:process:false:true}}
- {\directsetup{fo:regions:process:false:false}}}
-
- \doif{\XMLpar{fo:region-body}{fe:z-order}{above}}{above}{\directsetup{fo:regions:process:body}}
-
-\stopsetups
-
-\newdimen\FOscratchEB
-\newdimen\FOscratchEA
-
-\chardef\FOregionmode\zerocount
-
-\startmode[fo-pt]
- \chardef\FOregionmode\plusone % fotex mode -)
-\stopmode
-
-\startsetups fo:regions:modes
-
- \ifcase\FOregionmode
- \FOscratchEB\zeropoint
- \FOscratchEA\zeropoint
- \or
- \FOscratchEB\paperheight \setpercentdimen\FOscratchEB{\XMLpar{fo:region-before}{extent}\zeropoint}
- \FOscratchEA\paperheight \setpercentdimen\FOscratchEA{\XMLpar{fo:region-after} {extent}\zeropoint}
- \else
- \FOscratchEB\zeropoint
- \FOscratchEA\zeropoint
- \fi
-
-\stopsetups
-
-\startsetups fo:regions:process:body
-
- \bgroup
-
- \FOscratchRB\paperheight \setpercentdimen\FOscratchRB{\XMLpar{fo:region-body}{margin-top} \zeropoint}
- \FOscratchRA\paperheight \setpercentdimen\FOscratchRA{\XMLpar{fo:region-body}{margin-bottom}\zeropoint}
- \FOscratchRS\paperwidth \setpercentdimen\FOscratchRS{\XMLpar{fo:region-body}{margin-left} \zeropoint}
- \FOscratchRE\paperwidth \setpercentdimen\FOscratchRE{\XMLpar{fo:region-body}{margin-right} \zeropoint}
-
- \FOregionbuilder
- {region-body}
- {lefttop}
- {\FOscratchML+\FOscratchRS}
- {\FOscratchMT+\FOscratchRA}
- {\paperwidth -\FOscratchML-\FOscratchMR-\FOscratchRS-\FOscratchRE}
- {\paperheight-\FOscratchMT-\FOscratchMB-\FOscratchRB-\FOscratchRA}
-
- \egroup
-
-\stopsetups
-
-\startsetups fo:regions:process:true:true
-
- \directsetup{fo:regions:modes}
-
- \ifdim\FOscratchRB>\zeropoint \FOregionbuilder
- {region-before}{lefttop}
- {\FOscratchML}{\FOscratchMT-\FOscratchEB}
- {\paperwidth-\FOscratchML-\FOscratchMR}{\FOscratchRB}
- \fi \ifdim\FOscratchRA>\zeropoint \FOregionbuilder
- {region-after}{leftbottom}
- {\FOscratchML}{\FOscratchMB-\FOscratchEA}
- {\paperwidth-\FOscratchML-\FOscratchMR}{\FOscratchRA}
- \fi \ifdim\FOscratchRS>\zeropoint \FOregionbuilder
- {region-start}{lefttop}
- {\FOscratchML}{\FOscratchMT+\FOscratchRB}
- {\FOscratchRS}{\paperheight-\FOscratchMT-\FOscratchMB-\FOscratchRA-\FOscratchRB}
- \fi \ifdim\FOscratchRE>\zeropoint \FOregionbuilder
- {region-end}{righttop}
- {\FOscratchMR}{\FOscratchMT+\FOscratchRA}
- {\FOscratchRE}{\paperheight-\FOscratchMT-\FOscratchMB-\FOscratchRA-\FOscratchRB}
- \fi
-
-\stopsetups
-
-\startsetups fo:regions:process:false:true
-
- \directsetup{fo:regions:modes}
-
- \ifdim\FOscratchRB>\zeropoint \FOregionbuilder
- {region-before}{lefttop}
- {\FOscratchML+\FOscratchRS}{\FOscratchMT-\FOscratchEB}
- {\paperwidth-\FOscratchML-\FOscratchMR-\FOscratchRS-\FOscratchRE}{\FOscratchRB}
- \fi \ifdim\FOscratchRA>\zeropoint \FOregionbuilder
- {region-after}{leftbottom}
- {\FOscratchML}{\FOscratchMB-\FOscratchEA}
- {\paperwidth-\FOscratchML-\FOscratchMR}{\FOscratchRA}
- \fi \ifdim\FOscratchRS>\zeropoint \FOregionbuilder
- {region-start}{lefttop}
- {\FOscratchML}{\FOscratchMT}
- {\FOscratchRS}{\paperheight-\FOscratchMB-\FOscratchRA-\FOscratchRB}
- \fi \ifdim\FOscratchRE>\zeropoint \FOregionbuilder
- {region-end}{righttop}
- {\FOscratchMR}{\FOscratchMT}
- {\FOscratchRE}{\paperheight-\FOscratchMB-\FOscratchRA-\FOscratchRB}
- \fi
-
-\stopsetups
-
-\startsetups fo:regions:process:true:false
-
- \directsetup{fo:regions:modes}
-
- \ifdim\FOscratchRB>\zeropoint \FOregionbuilder
- {region-before}{lefttop}
- {\FOscratchML}{\FOscratchMT-\FOscratchEB}
- {\paperwidth-\FOscratchML-\FOscratchMR}{\FOscratchRB}
- \fi \ifdim\FOscratchRA>\zeropoint \FOregionbuilder
- {region-after}{leftbottom}
- {\FOscratchML+\FOscratchRS}{\FOscratchMB-\FOscratchEA}
- {\paperwidth-\FOscratchML-\FOscratchMR-\FOscratchRS-\FOscratchRE}{\FOscratchRA}
- \fi \ifdim\FOscratchRS>\zeropoint \FOregionbuilder
- {region-start}{lefttop}
- {\FOscratchML}{\FOscratchMT+\FOscratchRB}
- {\FOscratchRS}{\paperheight-\FOscratchMT-\FOscratchMB-\FOscratchRB}
- \fi \ifdim\FOscratchRE>\zeropoint \FOregionbuilder
- {region-end}{righttop}
- {\FOscratchMR}{\FOscratchMT+\FOscratchRA}
- {\FOscratchRE}{\paperheight-\FOscratchMT-\FOscratchMB-\FOscratchRB}
- \fi
-
-\stopsetups
-
-\startsetups fo:regions:process:false:false
-
- \directsetup{fo:regions:modes}
-
- \ifdim\FOscratchRB>\zeropoint \FOregionbuilder
- {region-before}{lefttop}
- {\FOscratchML+\FOscratchRS}{\FOscratchMT-\FOscratchEB}
- {\paperwidth-\FOscratchML-\FOscratchMR-\FOscratchRS-\FOscratchRE}{\FOscratchRB}
- \fi \ifdim\FOscratchRA>\zeropoint \FOregionbuilder
- {region-after}{leftbottom}
- {\FOscratchML+\FOscratchRS}{\FOscratchMB-\FOscratchEA}
- {\paperwidth-\FOscratchML-\FOscratchMR-\FOscratchRS-\FOscratchRE}{\FOscratchRA}
- \fi \ifdim\FOscratchRS>\zeropoint \FOregionbuilder
- {region-start}{lefttop}
- {\FOscratchML}{\FOscratchMT}
- {\FOscratchRS}{\paperheight-\FOscratchMT-\FOscratchMB}
- \fi \ifdim\FOscratchRE>\zeropoint \FOregionbuilder
- {region-end}{righttop}
- {\FOscratchMR}{\FOscratchMT}
- {\FOscratchRE}{\paperheight-\FOscratchMT-\FOscratchMB}
- \fi
-
-\stopsetups
-
-\startsetups fo:before:each:page
-
- \writeFOstatus{setting up layout \currentlayout}
- \directsetup{layout:\currentlayout}
- \directsetup{fo:regions:process}
-
-\stopsetups
-
-\prependtoks
- \directsetup{fo:before:each:page}%
-\to \everybeforepagebody
-
-%D Element: fo:title
-
-% \XMLattributeset{fo:aural},
-% color=,
-% line-height=,
-
-\defineXMLignore
- [fo:title]
- [\XMLattributeset{fo:inherited},\XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:font},
- \XMLattributeset{fo:margin-inline},
- visibility=]
-
-%D Element: fo:block
-
-\defineXMLenvironment
- [fo:block]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fe:tracing},
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:font},
- \XMLattributeset{fo:hyphenation},
- \XMLattributeset{fo:margin-block},
- \XMLattributeset{fo:relative-position},
- \XMLattributeset{fo:keeps-and-breaks},
-% text-depth=,
-% text-altitude=,
- span=,
- visibility=]
- {\beginXMLelement\directsetup{fo:block:start}}
- {\directsetup{fo:block:stop}\endXMLelement}
-
-\startsetups fo:block:start
-
- \endgraf
-
- \writeFOstatus{fo:block in line \the\inputlineno}
-
-\doif{\XMLpar{fo:block}{span}{}}{all}{\ifinsidecolumns \startcolumnsetspan[fo:set] \fi}
-
- \begingroup
-
- \directsetup{fe:setup}
-
- \directsetup{fo:break-and-space:before}
-
- \begingroup
-
- \setFOreference{fo:block}
-
- \increment\FOblocklevel
-
- \directsetup{fo:font:setup}
-
- % \setupinterlinespace % no, interferes with columnset and lineheight
-
- \directsetup{fo:line-height:setup}
-
- \directsetup{fo:indent:setup}% hier ?
-
- \doifsomething{\XMLop{background-color}}
- {\checkhexcolor[\XMLop{background-color}]
- \doifcolorelse{\XMLop{background-color}}
- \donothing
- {\setXMLpar{fo:block}{background-color}{}}}
-
- \doifsomething{\XMLop{color}}
- {\checkhexcolor[\XMLop{color}]
- \doifcolorelse{\XMLop{color}}
- \donothing
- {\setXMLpar{fo:block}{color}{}}}
-
- \doifsomething{\XMLop{background-color}}
- {\expanded
- {\definetextbackground
- [FOattribute-\FOblocklevel]
- [location=paragraph,
- color=\XMLop{color},
- style=,
- before=,
- after=,
- background=color,
- backgroundcolor=\XMLop{background-color}]}}
-
- \endgraf
-
- \getvalue{startFOattribute-\FOblocklevel}
-
- \directsetup{fo:hyphenation:setup}
- \directsetup{fo:align:setup}
- \directsetup{fo:margin:setup}
-
- \doif{\XMLop{wrap-option}}{no-wrap}
- {\obeylines}
-
- \doif{\XMLop{white-space-collapse}}{false}
- {\obeyspaces}
-
- % todo : remember old one and do like fonts
-
- \directsetup{fo:textindent:setup}
-
-\stopsetups
-
-\startsetups fo:block:stop
-
- \endstrut \endgraf
-
- \getvalue{stopFOattribute-\FOblocklevel}
-
- \endgraf
-
- \endgroup
-
- \directsetup{fo:break-and-space:after}
-
- \endgroup
-
- \doif{\XMLpar{fo:block}{span}{}}{all}{\ifinsidecolumns \stopcolumnsetspan \fi}
-
-\stopsetups
-
-\startsetups fo:textindent:setup
-
- \edefXMLinh\xFOtextindent{text-indent}
-
- \doifsomething\xFOtextindent
- {\scratchdimen\hsize
- \setpercentdimen\scratchdimen\xFOtextindent
- \expanded{\setupindenting[\the\scratchdimen]}}
-
-\stopsetups
-
-\indenting[always] % can be zero points
-
-% todo: map
-
-\mapXMLvalue {fo:break} {column} {\column}
-\mapXMLvalue {fo:break} {page} {\page}
-\mapXMLvalue {fo:break} {even-page} {\page[even]}
-\mapXMLvalue {fo:break} {odd-page} {\page[odd]}
-
-% keep-together : either vbox or something \interlinepenalty\maxdimen ?
-%
-% nasty interference with accumulated skips
-
-\mapXMLvalue {fo:keep-next} {auto} {}
-\mapXMLvalue {fo:keep-next} {always} {\nobreak}
-
-\mapXMLvalue {fo:keep-prev} {auto} {}
-\mapXMLvalue {fo:keep-prev} {always} {\nobreak}
-
-\mapXMLvalue {fo:keep-start} {auto} {}
-\mapXMLvalue {fo:keep-start} {always} {\interlinepenalty\maxdimen}
-
-\mapXMLvalue {fo:keep-stop} {auto} {}
-\mapXMLvalue {fo:keep-stop} {always} {}
-
-\newskip\FOsavedlastskip
-
-\startsetups fo:break-and-space:before
-
- \XMLval{fo:break}{\XMLop{break-before}}{}
-
- \FOsavedlastskip \lastskip \ifdim\FOsavedlastskip>\zeropoint \vskip-\FOsavedlastskip \fi
-
- \XMLval{fo:keep-start}{\XMLop{keep-together}}\empty
- \XMLval{fo:keep-start}{\XMLop{keep-together.within-column}}\empty
- \XMLval{fo:keep-start}{\XMLop{keep-together.within-page}}\empty
-
- \XMLval{fo:keep-prev} {\XMLop{keep-with-previous}}\empty
- \XMLval{fo:keep-prev} {\XMLop{keep-with-previous.within-column}}\empty
- \XMLval{fo:keep-prev} {\XMLop{keep-with-previous.within-page}}\empty
-
- \ifdim\FOsavedlastskip>\zeropoint \vskip\FOsavedlastskip \fi
-
- \doFObeforeskip\currentXMLelement
-
-\stopsetups
-
-\startsetups fo:break-and-space:after
-
-% \doFOafterskip\currentXMLelement
-
- \FOsavedlastskip \lastskip \ifdim\FOsavedlastskip>\zeropoint \vskip-\FOsavedlastskip \fi
-
- \XMLval{fo:keep-stop}{\XMLop{keep-together}}\empty
- \XMLval{fo:keep-stop}{\XMLop{keep-together.within-column}}\empty
- \XMLval{fo:keep-stop}{\XMLop{keep-together.within-page}}\empty
-
- \XMLval{fo:keep-next}{\XMLop{keep-with-next}}\empty
- \XMLval{fo:keep-next}{\XMLop{keep-with-next.within-column}}\empty
- \XMLval{fo:keep-next}{\XMLop{keep-with-next.within-page}}\empty
-
- \ifdim\FOsavedlastskip>\zeropoint \vskip\FOsavedlastskip \fi
-
- \doFOafterskip\currentXMLelement
-
- \XMLval{fo:break}{\XMLop{break-after}}{}
-
-\stopsetups
-
-\startsetups fo:space:start
- \doFOstartspace\currentXMLelement
-\stopsetups
-
-\startsetups fo:space:end
- \doFOendspace\currentXMLelement
-\stopsetups
-
-\startsetups fo:indent:setup
-
- \doifsomething{\XMLop{start-indent}}{\advance\leftskip \XMLop{start-indent}\relax}
- \doifsomething{\XMLop{end-indent}} {\advance\rightskip\XMLop{end-indent} \relax}
-
-% \FOattributeT
-% \FOattributeR
-% \FOattributeB
-% \FOattributeL
-
-
-\stopsetups
-
-\mapXMLvalue {fo:align} {center} {\raggedcenter}
-\mapXMLvalue {fo:align} {left} {\raggedright}
-\mapXMLvalue {fo:align} {right} {\raggedleft}
-\mapXMLvalue {fo:align} {begin} {\raggedright}
-\mapXMLvalue {fo:align} {start} {\raggedright}
-\mapXMLvalue {fo:align} {end} {\raggedleft}
-
-\mapXMLvalue {fo:align-key} {center} {middle}
-\mapXMLvalue {fo:align-key} {left} {flushleft}
-\mapXMLvalue {fo:align-key} {right} {flushright}
-\mapXMLvalue {fo:align-key} {begin} {flushleft}
-\mapXMLvalue {fo:align-key} {start} {flushleft}
-\mapXMLvalue {fo:align-key} {end} {flushright}
-
-\startsetups fo:align:setup
-
- \XMLval{fo:align}{\XMLop{text-align}}{}
-
-\stopsetups
-
-\startsetups fo:margin:setup
-
- \checkFOmargin{fo:block}
-
- \FOscratchML \XMLpar{fo:block}{margin-left} \zeropoint
- \FOscratchMR \XMLpar{fo:block}{margin-right} \zeropoint
- \FOscratchMT \XMLpar{fo:block}{margin-top} \zeropoint
- \FOscratchMB \XMLpar{fo:block}{margin-bottom}\zeropoint
-
- \advance\leftskip \FOscratchML
- \advance\rightskip\FOscratchMR
-
-\stopsetups
-
-% todo: font-stretch
-%
-% ultra-condensed
-% extra-condensed
-% condensed
-% semi-condensed
-% expanded
-% extra-expanded
-% ultra-expanded
-%
-% wider narrower
-
-\mapXMLvalue {fo:font-size} {xx-small} {\dFOfontsize0.58\dFOfontsize}
-\mapXMLvalue {fo:font-size} {x-small} {\dFOfontsize0.69\dFOfontsize}
-\mapXMLvalue {fo:font-size} {small} {\dFOfontsize0.83\dFOfontsize}
-\mapXMLvalue {fo:font-size} {medium} {\relax}
-\mapXMLvalue {fo:font-size} {large} {\dFOfontsize1.20\dFOfontsize}
-\mapXMLvalue {fo:font-size} {x-large} {\dFOfontsize1.44\dFOfontsize}
-\mapXMLvalue {fo:font-size} {xx-large} {\dFOfontsize1.73\dFOfontsize}
-
-\mapXMLvalue {fo:font-size} {smaller} {\dFOfontsize0.83\dFOfontsize}
-\mapXMLvalue {fo:font-size} {larger} {\dFOfontsize1.20\dFOfontsize}
-
-\newdimen\dFOfontsize
-
-% evt class Times Helvetica
-
-\definefontsynonym [FO:Times] [Times-Roman]
-\definefontsynonym [FO:Times:bold] [Times-Bold]
-\definefontsynonym [FO:Times:italic] [Times-Italic]
-\definefontsynonym [FO:Times:bold:italic] [Times-BoldItalic]
-
-\definefontsynonym [FO:Times:small-caps] [Times-Roman]
-\definefontsynonym [FO:Times:bold:small-caps] [Times-Bold]
-\definefontsynonym [FO:Times:italic:small-caps] [Times-Italic]
-\definefontsynonym [FO:Times:bold:italic:small-caps] [Times-BoldItalic]
-
-\definefontsynonym [FO:Helvetica] [Helvetica]
-\definefontsynonym [FO:Helvetica:bold] [Helvetica-Bold]
-\definefontsynonym [FO:Helvetica:italic] [Helvetica-Italic]
-\definefontsynonym [FO:Helvetica:bold:italic] [Helvetica-BoldItalic]
-
-\definefontsynonym [FO:Helvetica:small-caps] [Helvetica]
-\definefontsynonym [FO:Helvetica:bold:small-caps] [Helvetica-Bold]
-\definefontsynonym [FO:Helvetica:italic:small-caps] [Helvetica-Italic]
-\definefontsynonym [FO:Helvetica:bold:italic:small-caps] [Helvetica-BoldItalic]
-
-\definefontsynonym [FO:Courier] [Courier]
-\definefontsynonym [FO:Courier:bold] [Courier-Bold]
-\definefontsynonym [FO:Courier:italic] [Courier-Oblique]
-\definefontsynonym [FO:Courier:bold:italic] [Courier-BoldOblique]
-
-\definefontsynonym [FO:Courier:small-caps] [Courier]
-\definefontsynonym [FO:Courier:bold:small-caps] [Courier-Bold]
-\definefontsynonym [FO:Courier:italic:small-caps] [Courier-Oblique]
-\definefontsynonym [FO:Courier:bold:italic:small-caps] [Courier-BoldOblique]
-
-\definefontsynonym [FO:Symbol] [ZapfDingbats]
-
-\definefontsynonym [FO:Computer-Modern-Typewriter] [ComputerModernMono]
-\definefontsynonym [FO:Computer-Modern-Typewriter:italic] [ComputerModernMono-Slanted]
-
-\definefontsynonym [*Times Roman*] [Times]
-
-% nasty: no FO prefix
-
-\definefontsynonym [*serif*] [Times]
-\definefontsynonym [*sans-serif*] [Helvetica]
-\definefontsynonym [*monospace*] [Courier]
-
-\definefontsynonym [*cursive*] [Times]
-\definefontsynonym [*fantasy*] [Helvetica]
-
-\definefontsynonym [*Arial*] [Helvetica]
-\definefontsynonym [*Times Roman*] [Times]
-\definefontsynonym [*Wingdings*] [ZapfDingbats]
-
-% \definefontsynonym [Computer-Modern-Typewriter] [ComputerModernMono]
-% \definefontsynonym [monospace] [ComputerModernMono]
-
-\startsetups fo:fonts:reset
-
- \dFOfontsize=\bodyfontsize
-
- \def\FOfontsize {10pt}% {12pt}
- \def\FOfontfamily {Times}
- \def\FOfontweight {normal}
- \def\FOfontstyle {normal}
- \def\FOfontvariant {normal}
- \def\FOfontsizeadjust{1}
-
- \def\FOtextdepth {}
- \def\FOtextaltitude {}
- \def\FOlineheight {}
-
- \def\FOfontdefinition{}
- \def\FOfontname {}
-
-\stopsetups
-
-\def\FOfontdefinition{}
-\def\FOfontname {}
-
-\directsetup{fo:fonts:reset}
-
-% test for \FOfontvariant: normal or else
-
-\def\setFOfontname
- {\edef\xFOfontname{FO:\FOfontfamily:\FOfontweight:\FOfontstyle:\FOfontvariant}%
- %\begingroup\infofont\xFOfontname]\endgroup
- \doifelsefontsynonym\xFOfontname
- {\let\FOfontname\xFOfontname}
- {\edef\xFOfontname{FO:\FOfontfamily:\FOfontweight:\FOfontstyle}%
- \doifelsefontsynonym\xFOfontname
- {\let\FOfontname\xFOfontname}
- {\edef\xFOfontname{FO:\FOfontfamily:\FOfontstyle}%
- \doifelsefontsynonym\xFOfontname
- {\let\FOfontname\xFOfontname}
- {\edef\xFOfontname{FO:\FOfontfamily:\FOfontweight}%
- \doifelsefontsynonym\xFOfontname
- {\let\FOfontname\xFOfontname}
- {\edef\xFOfontname{FO:\FOfontfamily}%
- \doifelsefontsynonym\xFOfontname
- {\let\FOfontname\xFOfontname}
- {}}}}}}
-
-% \unprotected \def\doifelseFOfontsynonym#1#2#3#4#5% family weight style variant default
-% {\edef\FOfontname
-% {\ifcsname \??ff\fontclass FO:#1:#2:#3:#4\endcsname FO:#1:#2:#3:#4%
-% \else\ifcsname\??ff\fontclass FO:#1:#2:#3\endcsname FO:#1:#2:#3%
-% \else\ifcsname\??ff\fontclass FO:#1:#3\endcsname FO:#1:#3%
-% \else\ifcsname\??ff\fontclass FO:#1:#2\endcsname FO:#1:#2%
-% \else\ifcsname\??ff\fontclass FO:#1\endcsname FO:#1%
-% \else #5%
-% \fi\fi\fi\fi\fi}}
-
-\startsetups fo:font:family:check
-
- \doifelsefontsynonym{*\FOfontfamily*}
- {\expandfontsynonym\FOfontfamily{*\FOfontfamily*}}
- {}
-
-\stopsetups
-
-\let\FOfont\empty
-
-\startsetups fo:font:setup
-
- % todo: optimize, define fonts first time and do that global
-
- \edefXMLinh\xFOfont {font}
- \edefXMLinh\xFOfontsize {font-size}
- \edefXMLinh\xFOfontsizeadjust{font-size-adjust}
- \edefXMLinh\xFOfontfamily {font-family}
- \edefXMLinh\xFOfontweight {font-weight}
- \edefXMLinh\xFOfontstyle {font-style}
- \edefXMLinh\xFOfontvariant {font-variant}
-
-% \edef\xFOfont {\XMLpar{fo}{font}{}}
-% \edef\xFOfontsize {\XMLpar{fo}{font-size}{}}
-% \edef\xFOfontsizeadjust{\XMLpar{fo}{font-size-adjust}{}}
-% \edef\xFOfontfamily {\XMLpar{fo}{font-family}{}}
-% \edef\xFOfontweight {\XMLpar{fo}{font-weight}{}}
-% \edef\xFOfontstyle {\XMLpar{fo}{font-style}{}}
-% \edef\xFOfontvariant {\XMLpar{fo}{font-variant}{}}
-
- \donefalse
-
- \ifx\xFOfont\empty \else \ifx\xFOfont\relax \else
- \let\FOfont\xFOfont
- \checkFOfont\FOfont
- \fi \fi
-
- \ifx\xFOfontsize\empty \else \ifx\xFOfontsize\FOfontsize \else
- \let\FOfontsize\xFOfontsize
- \doifXMLvalelse{fo:font-size}\FOfontsize
- {\XMLval{fo:font-size}\FOfontsize\empty}
- {\setpercentdimen\dFOfontsize\FOfontsize}
- \fi \fi
-
- \ifx\xFOfontsizeadjust\empty \else
- \doifelse\xFOfontsizeadjust{none}
- {\def\FOfontsizeadjust{1}}
- {\let\FOfontsizeadjust\xFOfontsizeadjust}
- \fi
-
- \ifx\xFOfontfamily\empty \else \ifx\xFOfontfamily\FOfontfamily \else
- \donetrue \let\FOfontfamily\xFOfontfamily \directsetup{fo:font:family:check}
- \fi \fi
- \ifx\xFOfontweight\empty \else \ifx\xFOfontweight\FOfontweight \else
- \donetrue \let\FOfontweight\xFOfontweight
- \fi \fi
- \ifx\xFOfontstyle\empty \else \ifx\xFOfontstyle\FOfontstyle \else
- \donetrue \let\FOfontstyle\xFOfontstyle
- \fi \fi
- \ifx\xFOfontvariant\empty \else \ifx\xFOfontvariant\FOfontvariant \else
- \donetrue \let\FOfontvariant\xFOfontvariant
- \fi \fi
-
- \ifdone
- \setFOfontname
- \ifx\FOfontname\empty % klopt dit
- \edef\xFOfontdefinition{\purefontname{\font} at \the\dimexpr(\FOfontsizeadjust\dFOfontsize)}
-% \let\xFOfontdefinition\empty
- \else
- \edef\xFOfontdefinition{\FOfontname\space at \the\dimexpr(\FOfontsizeadjust\dFOfontsize)}
- \fi
- \else
- \edef\xFOfontdefinition{\purefontname{\font} at \the\dimexpr(\FOfontsizeadjust\dFOfontsize)}
- \fi
-
- \ifx\xFOfontdefinition\empty \else
- \ifx\FOfontdefinition\xFOfontdefinition
- \else
- \let\FOfontdefinition\xFOfontdefinition
- \expanded{\definedfont[\FOfontdefinition]}
- \fi
- \fi
-
-\stopsetups
-
-\newdimen\dFOlineheight
-\newdimen\dFOdepth
-\newdimen\dFOaltitude
-
-\let\FOlineheight \empty
-\let\FOtextdepth \empty
-\let\FOtextaltitude\empty
-
-\startsetups fo:line-height:setup
-
- \edefXMLinh\xFOtextdepth {text-depth}
- \edefXMLinh\xFOtextaltitude{text-altitude}
- \edefXMLinh\xFOlineheight {line-height}
-
-% \edef\xFOtextdepth {\XMLpar{fo}{text-depth}{}}
-% \edef\xFOtextaltitude{\XMLpar{fo}{text-altitude}{}}
-% \edef\xFOlineheight {\XMLpar{fo}{line-height}{}}
-
- \ifx\xFOtextdepth\empty \else \ifx\xFOtextdepth\FOtextdepth \else
- \let\FOtextdepth\xFOtextdepth
- \doifnot\FOtextdepth{use-font-metrics}
- {\setstrut \dFOdepth\strutdepth
- \setpercentdimen\dFOdepth\FOtextdepth
- \setupinterlinespace[mindepth=\dFOdepth]}
- \fi \fi
-
- \ifx\xFOtextaltitude\empty \else \ifx\xFOtextaltitude\FOtextaltitude \else
- \let\FOtextaltitude\xFOtextaltitude
- \doifnot\FOtextaltitude{use-font-metrics}
- {\setstrut \dFOaltitude\strutheight \advance\dFOaltitude\strutdepth
- \setpercentdimen\dFOaltitude\FOtextaltitude
- \setupinterlinespace[minheight=\dFOaltitude]}
- \fi \fi
-
-\ifinsidecolumns \else
-
- \ifx\xFOlineheight\empty \else \ifx\xFOlineheight\FOlineheight \else
- \let\FOlineheight\xFOlineheight
- \doifelse\FOlineheight{normal}
- {\dFOlineheight2.8ex
- \setupinterlinespace[line=\dFOlineheight]}
- {\doifnot\FOlineheight{use-font-metrics}
- {\setstrut \dFOlineheight\strutheight \advance\dFOlineheight\strutdepth
- \setpercentdimen\dFOlineheight\FOlineheight
- \setupinterlinespace[line=\dFOlineheight]}}
- \fi \fi
-
-\fi
-
-\stopsetups
-
-\let\orphanpenalty \clubpenalty
-\let\orphanpenalties\clubpenalties
-
-\newcount\FOwidows \FOwidows =2
-\newcount\FOorphans \FOorphans=2
-
-\mapXMLvalue {fo:hyphens} {false} {\nohyphens}
-\mapXMLvalue {fo:hyphens} {true} {\dohyphens}
-
-\startsetups fo:hyphenation:setup
-
- \edefXMLinh\xFOhyphenate {hyphenate}
- \edefXMLinh\xFOwidows {widows}
- \edefXMLinh\xFOorphans {orphans}
-
-% \edef\xFOhyphenate {\XMLpar{fo}{hyphenate}{}}
-% \edef\xFOwidows {\XMLpar{fo}{widows}{}}
-% \edef\xFOorphans {\XMLpar{fo}{orphans}{}}
-
- \ifx\xFOhyphenate\empty \else
- \XMLval{fo:hyphens}{\xFOhyphenate}\empty
- \fi
- \ifx\xFOwidows\empty \else \ifnum\xFOwidows=\FOwidows \else
- \FOwidows\xFOwidows \setpenalties\widowpenalties\FOwidows\maxdimen
- \fi \fi
- \ifx\xFOorphans\empty \else \ifnum\xFOorphans=\FOorphans \else
- \FOorphans\xFOorphans \setpenalties\clubpenalties\FOorphans\maxdimen
- \fi \fi
-
- % hyphenation-character
-
-\stopsetups
-
-%D fo:block-container
-
-% todo: potential optimization: set fonts and spacing at container level
-
-% display-align=,
-% intrusion-displace=,
-% reference-orientation=,
-% writing-mode=,
-
-\defineXMLenvironment
- [fo:block-container]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fe:tracing},
- \XMLattributeset{fo:absolute-positioning},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:margin-block},
- \XMLattributeset{fo:keeps-and-breaks},
- block-progression-dimension=,
- inline-progression-dimension=,
- clip=,
- height=,
- overflow=,
- span=,
- width=,
- z-index=]
- {\beginXMLelement\directsetup{fo:block-container:start}}
- {\directsetup{fo:block-container:stop}\endXMLelement}
-
-\mapXMLvalue {fo:block-container:start} {absolute} {\directsetup{fo:block-container:start:pos}}
-\mapXMLvalue {fo:block-container:start} {fixed} {\directsetup{fo:block-container:start:pos}}
-
-\mapXMLvalue {fo:block-container:stop} {absolute} {\directsetup{fo:block-container:stop:pos}}
-\mapXMLvalue {fo:block-container:stop} {fixed} {\directsetup{fo:block-container:stop:pos}}
-
-\startsetups fo:block-container:start
-
- \XMLval{fo:block-container:start}{\XMLpar{fo:block-container}{absolute-position}{}}{}
-
- \setFOreference{fo:block-container}
-
-\stopsetups
-
-\startsetups fo:block-container:stop
-
- \XMLval{fo:block-container:stop}{\XMLpar{fo:block-container}{absolute-position}{}}{}
-
-\stopsetups
-
-% i need to figure out the details (specs are a bit fuzzy)
-
-% replaced, see position
-
-\newdimen\FOcontainerW \newdimen\FOcontainerX \newdimen\FOcontainerL \newdimen\FOcontainerR \newdimen\FOcontainerWW
-\newdimen\FOcontainerH \newdimen\FOcontainerY \newdimen\FOcontainerT \newdimen\FOcontainerB \newdimen\FOcontainerHH
-
-\startsetups fo:block-container:start:pos
-
- % todo: textwidth -> region dimensions
-
- \begingroup % \forgetall
-
- \FOcontainerWW\textwidth
- \FOcontainerHH\textheight
- \def\FOlayername{\XMLpar{fo:flow}{flow-name}{xsl-region-body}}
-
- \iftracingFO \tracelayerstrue \fi
-
- \directsetup{fo:preset:layer}
-
- \setlayerframed
- [\XMLpar{fo:flow}{flow-name}{xsl-region-body}]
- [frame=off,
- width=\FOcontainerW,
- height=\FOcontainerH]
-
- \bgroup
-
-\stopsetups
-
-\startsetups fo:block-container:stop:pos
-
- \egroup
-
- \endgroup
-
-\stopsetups
-
-%D fo:bidi-override
-
-% \XMLattributeset{aural},
-% color=,
-% direction=,
-% letter-spacing=,
-% line-height=,
-% word-spacing=,
-
-\defineXMLenvironment
- [fo:bidi-override]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:font},
- \XMLattributeset{fo:relative-position},
- score-spaces=,
- unicode-bidi=]
- {\beginXMLelement}
- {\endXMLelement}
-
-% todo
-
-%D fo:character
-
-% \XMLattributeset{fo:aural},
-% color=,
-% glyph-orientation-horizontal=,
-% glyph-orientation-vertical=,
-% line-height=,
-
-\defineXMLsingular
- [fo:character]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fe:tracing},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:font},
- \XMLattributeset{fo:hyphenation},
- \XMLattributeset{fo:margin-inline},
- \XMLattributeset{fo:relative-position},
- \XMLattributeset{fo:character},
- alignment-adjust=,
- baseline-shift=,
- dominant-baseline=,
-% text-depth=,
-% text-altitude=,
- keep-with-next=,
- keep-with-previous=,
- score-spaces=,
- visibility=]
- {\directsetup{fo:character:process}}
-
-\mapXMLvalue {fo:vertical-align} {baseline} {\hbox}
-\mapXMLvalue {fo:vertical-align} {sub} {\low}
-\mapXMLvalue {fo:vertical-align} {super} {\high}
-\mapXMLvalue {fo:vertical-align} {inherit} {\firstofoneargument}
-
-\startsetups fo:character:process
-
- % border
- % font
- % margin
- % positioning
- % baseline
- % color
- % depth and altitude
- % keep-with
- % lineheight
-
- \dontleavehmode \begingroup
-
- \directsetup{fe:setup}
- \directsetup{fo:font:setup}
-
- \iftracingFO \ruledhbox \else \hbox \fi \bgroup
-
- \doifsomethingXMLop{vertical-align}
- {\doifXMLvalelse{fo:vertical-align}{\XMLop{vertical-align}}
- {\XMLval{fo:vertical-align}{\XMLop{vertical-align}}{}}
- {\wordshiftamount\lineheight
- \setpercentdimen\wordshiftamount{\XMLop{vertical-align}}
- \shiftedword}}
-
- {\directsetup{fo:character:orient}}
-
- \egroup \endgroup
-
-\stopsetups
-
-\startsetups fo:character:orient
-
-% \rotate[rotation=-\XMLop{glyph-orientation-horizontal}]
-
- \doifsomethingXMLop{glyph-orientation-horizontal}
- {\rotate[rotation=\XMLval{fo:reference-orientation}{\XMLop{glyph-orientation-horizontal}}{0}]}
- {\XMLop{character}}
-
-\stopsetups
-
-%D fo:initial-property-set
-
-% \XMLattributeset{fo:aural},
-% color=,
-% letter-spacing=,
-% line-height=,
-% text-transform=,
-% word-spacing=,
-
-\defineXMLprocess
- [fo:initial-property-set]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:font},
- \XMLattributeset{fo:relative-position},
- score-spaces=,
- text-decoration=,
- text-shadow=]
-
-%D fo:external-graphic
-
-\useMPlibrary[dum]
-
-% \XMLattributeset{fo:aural},
-% display-align=,
-% height=,
-% text-align=,
-
-\defineXMLenvironmentsave
- [fo:external-graphic]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:margin-inline},
- \XMLattributeset{fo:relative-position},
- alignment-adjust=,
- alignment-baseline=,
- baseline-shift=,
- block-progression-dimension=,
- clip=,
- content-height=,
- content-type=,
- content-width=,
- dominant-baseline=,
- height=,
- inline-progression-dimension=,
- keep-with-next=,
- keep-with-previous=,
- overflow=,
- scaling=,
- scaling-method=,
- src=dummy,
- width=]
- {}
- {\directsetup{fo:external-graphic:process}}
-
-\newdimen\FOgraphicwidth
-\newdimen\FOgraphicheight
-
-\mapXMLvalue {external-graphic:align} {top} {\tbox}
-\mapXMLvalue {external-graphic:align} {bottom} {\bbox}
-\mapXMLvalue {external-graphic:align} {center} {\cbox}
-
-\startsetups fo:external-graphic:process
-
- \doifelsenothing{\XMLop{content-height}}
- {\FOgraphicheight\zeropoint}
- {\doifelse{\XMLop{content-height}}{scale-to-fit}% is this official ?
- {\FOgraphicwidth\zeropoint}
- {\doifelse{\XMLop{content-height}}{auto}
- {\FOgraphicheight\zeropoint}
- {\FOgraphicheight\lineheight
- \setpercentdimen\FOgraphicheight{\XMLop{content-height}}}}}
-
- \doifelsenothing{\XMLop{content-width}}
- {\FOgraphicwidth\zeropoint}
- {\doifelse{\XMLop{content-width}}{scale-to-fit}% is this official ?
- {\FOgraphicwidth\zeropoint}
- {\doifelse{\XMLop{content-width}}{auto}
- {\FOgraphicwidth\zeropoint}
- {\FOgraphicwidth1em
- \setpercentdimen\FOgraphicwidth {\XMLop{content-width}}}}}
-
- % leeg maken vars gaat ook goed, dan een \externalfigure
-
- % todo : height/width scale-to-fit: factor=...
-
- \setbox\scratchbox\hbox
- {\setFOimagename{\XMLpar{fo:external-graphic}{src}{dummy}}
- \ifdim\FOgraphicheight>\zeropoint
- \ifdim\FOgraphicwidth>\zeropoint
- \externalfigure[\FOimagename][height=\FOgraphicheight,width=\FOgraphicwidth]
- \else
- \externalfigure[\FOimagename][height=\FOgraphicheight]
- \fi
- \else
- \ifdim\FOgraphicwidth>\zeropoint
- \externalfigure[\FOimagename][width=\FOgraphicwidth]
- \else
- \externalfigure[\FOimagename]
- \fi
- \fi}
-
- \dontleavehmode \XMLval{external-graphic:align}{\XMLop{vertical-align}}{}{\box\scratchbox}
-
-\stopsetups
-
-%D fo:instream-foreign-object
-
-% like external-graphic, only no src
-
-% \XMLattributeset{fo:aural},
-% display-align=,
-% line-height=,
-% text-align=,
-
-\defineXMLprocess
- [fo:instream-foreign-object]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:margin-inline},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:relative-position},
- alignment-adjust=,
- alignment-baseline=,
- baseline-shift=,
- block-progression-dimension=,
- clip=,
- content-height=,
- content-type=,
- content-width=,
- dominant-baseline=,
- height=,
- inline-progression-dimension=,
- keep-with-next=,
- keep-with-previous=,
- overflow=,
- scaling=,
- scaling-method=,
- width=]
-
-%D Element: fo:inline
-
-% \XMLattributeset{fo:aural},
-% line-height=,
-% wrap-option=,
-% color=,
-% keep-together=,
-
-\defineXMLnestedenvironmentsave
- [fo:inline]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:font},
- \XMLattributeset{fo:margin-inline},
- \XMLattributeset{fo:relative-position},
- alignment-adjust=,
- alignment-baseline=,
- baseline-shift=,
- block-progression-dimension=,
- dominant-baseline=,
- height=,
- inline-progression-dimension=,
- keep-with-next=,
- keep-with-previous=,
- text-decoration=,
- visibility=,
- width=]
- {\beginXMLelement}
- {\directsetup{fo:inline:process}\endXMLelement}
-
-\defineXMLsingular
- [fo:inline]
- {}
-
-% baseline-shift: baseline sub super % dimen inherit
-
-\chardef\isolatedwordsmode=1
-
-\newdimen\wordshiftamount
-
-\def\shiftedword{\raise\wordshiftamount\hbox}
-
-\long\def\shiftedwords#1{\processisolatedwords{#1}\shiftedword}
-\long\def\normalwords #1{\processisolatedwords{#1}\hbox}
-\long\def\highwords #1{\processisolatedwords{#1}\high}
-\long\def\lowwords #1{\processisolatedwords{#1}\low}
-
-\mapXMLvalue {fo:baseline-shift} {baseline} {\normalwords}
-\mapXMLvalue {fo:baseline-shift} {sub} {\lowwords}
-\mapXMLvalue {fo:baseline-shift} {super} {\highwords}
-\mapXMLvalue {fo:baseline-shift} {inherit} {\firstofoneargument}
-
-\startsetups fo:inline:process
-
- \directsetup{fo:position:start}
-
- \dontleavehmode
-
- \doFOreference{fo:inline}
-
- \begingroup
-
- \directsetup{fe:setup}
- \directsetup{fo:space:start}
-
- \begingroup
-
- \directsetup{fo:hyphenation:setup}
- \directsetup{fo:font:setup}
-
- \doifelsenothing{\XMLop{baseline-shift}}
- {\XMLflushself}
- {\doifXMLvalelse{fo:baseline-shift}{\XMLop{baseline-shift}}
- {\XMLval{fo:baseline-shift}{\XMLop{baseline-shift}}{}{\XMLflushself}}
- {\wordshiftamount\lineheight
- \setpercentdimen\wordshiftamount{\XMLop{baseline-shift}}
- \shiftedwords{\XMLflushself}}}
-
- \endgroup
-
- \directsetup{fo:space:end}
-
- \endgroup
-
- \directsetup{fo:position:stop}
-
-\stopsetups
-
-\startsetups fo:position:start
- \begingroup
- \directsetup{fo:position:\XMLop{position}:start}
- \begingroup
-\stopsetups
-
-\startsetups fo:position:stop
- \endgroup
- \directsetup{fo:position:\XMLop{position}:stop}
- \endgroup
-\stopsetups
-
-\startsetups fo:position:static:start
-\stopsetups
-
-\startsetups fo:position:static:stop
-\stopsetups
-
-\startsetups fo:position:fixed:start
- \FOcontainerWW\paperwidth
- \FOcontainerHH\paperheight
- \def\FOlayername{regions}
- \directsetup{fo:preset:layer}
- \setlayer[regions]{\vbox \bgroup \setlocalhsize}
-\stopsetups
-
-\startsetups fo:position:fixed:stop
- \egroup
-\stopsetups
-
-\enableparpositions % slows down but who uses fo anyway ...
-
-\startsetups fo:position:absolute:start
- \setbox\FOpositionbox\hbox\bgroup
-\stopsetups
-
-\startsetups fo:position:absolute:stop
- \egroup
- % evt uitstellen tot otr, zodat text/realfolio is solved
- \edef\FOpartag{p:\number\parposcounter}
- \edef\FOtxttag{text:\realfolio}
- \FOcontainerWW\MPplus\FOpartag{1}{0pt}
- \FOcontainerHH\zeropoint % todo: add anchors to each 'object'
- \directsetup{fo:preset:position}
- \setlayer
- [xsl-region-body]
- [preset=lefttop,
- hoffset=\dimexpr(\MPx\FOtxttag-\MPx\FOpartag),
- voffset=\dimexpr(\MPy\FOtxttag+\MPh\FOtxttag-\MPy\FOpartag-\MPh\FOpartag)]
- {\iftracingFO \ruledhbox \bgroup \fi
- \offset
- [method=fixed,
- leftoffset=\FOcontainerL,
- rightoffset=\FOcontainerR,
- topoffset=\FOcontainerT,
- bottomoffset=\FOcontainerB]
- {\box\FOpositionbox}
- \iftracingFO \egroup \fi}
-\stopsetups
-
-\newbox\FOpositionbox
-
-\startsetups fo:position:relative:start
- \setbox\FOpositionbox\hbox\bgroup
-\stopsetups
-
-\startsetups fo:position:relative:stop
- \egroup
- \FOcontainerWW\wd\FOpositionbox
- \FOcontainerHH\dimexpr(\ht\FOpositionbox+\dp\FOpositionbox)
- \directsetup{fo:preset:position}
- \iftracingFO \ruledhbox \bgroup \fi
- \offset
- [method=fixed,
- leftoffset=\FOcontainerL,
- rightoffset=\FOcontainerR,
- topoffset=\FOcontainerT,
- bottomoffset=\FOcontainerB]
- {\box\FOpositionbox}
- \iftracingFO \egroup \fi
-\stopsetups
-
-%
-
-\startsetups fo:preset:position
-
- \FOcontainerW\zeropoint \FOcontainerL\zeropoint \FOcontainerR\zeropoint
- \FOcontainerH\zeropoint \FOcontainerT\zeropoint \FOcontainerB\zeropoint
-
- \doifnot{\XMLop{left}} {auto}{\FOcontainerL\FOcontainerWW\setpercentdimen\FOcontainerL{\XMLop{left}}}
- \doifnot{\XMLop{right}} {auto}{\FOcontainerR\FOcontainerWW\setpercentdimen\FOcontainerR{\XMLop{right}}}
- \doifnot{\XMLop{top}} {auto}{\FOcontainerT\FOcontainerHH\setpercentdimen\FOcontainerT{\XMLop{top}}}
- \doifnot{\XMLop{bottom}}{auto}{\FOcontainerB\FOcontainerHH\setpercentdimen\FOcontainerB{\XMLop{bottom}}}
-
- \doifnot{\XMLop{width}} {auto}{\FOcontainerW\FOcontainerWW\setpercentdimen\FOcontainerW{\XMLop{width}}}
- \doifnot{\XMLop{height}}{auto}{\FOcontainerH\FOcontainerHH\setpercentdimen\FOcontainerH{\XMLop{height}}}
-
-\stopsetups
-
-\startsetups fo:preset:layer
-
- \directsetup{fo:preset:position}
-
- \setuplayer
- [\FOlayername]
- [width=\FOcontainerWW,
- height=\FOcontainerHH]
-
- \ifzeropt\FOcontainerW
- \FOcontainerW\dimexpr(\FOcontainerWW-\FOcontainerL-\FOcontainerR)
- \fi
- \ifzeropt\FOcontainerH
- \FOcontainerH\dimexpr(\FOcontainerHH-\FOcontainerT-\FOcontainerB)
- \fi
-
- \ifzeropt\FOcontainerB
- \ifzeropt\FOcontainerL
- \setuplayer[\FOlayername][preset=righttop, x=\FOcontainerR,y=\FOcontainerT]
- \else
- \setuplayer[\FOlayername][preset=lefttop, x=\FOcontainerL,y=\FOcontainerT]
- \fi
- \else
- \ifzeropt\FOcontainerL
- \setuplayer[\FOlayername][preset=rightbottom,x=\FOcontainerR,y=\FOcontainerB]
- \else
- \setuplayer[\FOlayername][preset=leftbottom, x=\FOcontainerL,y=\FOcontainerB]
- \fi
- \fi
-
-\stopsetups
-
-%D Element: fo:inline-container
-
-% display-align=,
-% line-height=,
-% reference-orientation=,
-% writing-mode=,
-% keep-together=,
-
-\defineXMLenvironment
- [fo:inline-container]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:margin-inline},
- \XMLattributeset{fo:relative-position},
- alignment-adjust=,
- alignment-baseline=,
- baseline-shift=,
- block-progression-dimension=,
- clip=,
- dominant-baseline=,
- height=,
- inline-progression-dimension=,
- keep-with-next=,
- keep-with-previous=,
- overflow=,
- width=]
- {\beginXMLelement\begingroup}
- {\endgroup\endXMLelement}
-
-%D Element: fo:leader
-
-% also a kind of fake fill
-
-% \XMLattributeset{fo:aural},
-% color=,
-% line-height=,
-% word-spacing=,
-
-\defineXMLenvironmentsave
- [fo:leader]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:font},
- \XMLattributeset{fo:margin-inline},
- \XMLattributeset{fo:relative-position},
- \XMLattributeset{fo:leader-and-rule},
- alignment-adjust=,
- alignment-baseline=,
- baseline-shift=,
- dominant-baseline=,
- % text-depth=,
- % text-altitude=,
- keep-with-next=,
- keep-with-previous=,
- letter-spacing=,
- text-shadow=,
- visibility=]
- {\beginXMLelement}
- {\directsetup{fo:leader:process}\endXMLelement}
-
-\mapXMLvalue {fo:leader-pattern} {space} {\hfill}
-\mapXMLvalue {fo:leader-pattern} {dots} {.}
-\mapXMLvalue {fo:leader-pattern} {rule} {\hrulefill}
-\mapXMLvalue {fo:leader-pattern} {use-content} {\XMLflushself}
-
-% todo: speed up
-
-\startsetups fo:leader:process
-
- %tracebackXMLattribute{leader-pattern-width}
-
- \strut \leaders
- %edefXMLinh \FOlepatwd {leader-pattern-width}
- \hbox to \XMLinh{leader-pattern-width}
- {\hss\XMLval{fo:leader-pattern}{\XMLinh{leader-pattern}}{\hfill}\hss}
- \hfill \strut
-
-\stopsetups
-
-%D Element: fo:pagenumber
-
-% \XMLattributeset{fo:aural},
-% line-height=,
-% wrap-option=,
-% letter-spacing=,
-% text-transform=,
-% word-spacing=,
-
-\defineXMLsingular
- [fo:page-number]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:font},
- \XMLattributeset{fo:margin-inline},
- \XMLattributeset{fo:relative-position},
- alignment-adjust=,
- alignment-baseline=,
- baseline-shift=,
- dominant-baseline=,
- keep-with-next=,
- keep-with-previous=,
- score-spaces=,
-% text-altitude=,
- text-decoration=,
-% text-depth=,
- text-shadow=,
- visibility=]
- {\directsetup{fo:page-number:process}}
-
-\newcount\FOpnrefcounter
-
-\startsetups fo:page-number:process
-
- \doifelsenothing{\XMLpar{fo:page-sequence}{format}{}}
- {\pagenumber}
- {\ifinotr
- \globallet\FOpnrefnumber\folio
- \else
- \global\advance\FOpnrefcounter\plusone
- \pagereference[pnref:\the\FOpnrefcounter]
- \doifreferencefoundelse{pnref:\the\FOpnrefcounter}
- {\globallet\FOpnrefnumber\currentfolioreference}
- {\globallet\FOpnrefnumber\folio}
- \fi
- \expanded{\handletokens\XMLpar{fo:page-sequence}{format}{}}\with{\handleFOformat{\FOpnrefnumber}}}
-
-\stopsetups
-
-\defineconversion[1][\numbers]
-
-\long\def\handleFOformat#1#2%
- {\defconvertedargument\ascii{#2}%
- \doifconversiondefinedelse\ascii{\convertnumber\ascii{#1}}{#2}}
-
-%D Element: fo:pagenumber-citation
-
-% same as page-number
-
-% \XMLattributeset{fo:aural},
-% line-height=,
-% wrap-option=,
-% letter-spacing=,
-% text-transform=,
-% word-spacing=,
-
-\defineXMLsingular
- [fo:page-number-citation]
- [\XMLattributeset{fo:inherited},
- id=,
- ref-id=,
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:font},
- \XMLattributeset{fo:margin-inline},
- \XMLattributeset{fo:relative-position},
- alignment-adjust=,
- alignment-baseline=,
- baseline-shift=,
- dominant-baseline=,
- keep-with-next=,
- keep-with-previous=,
- score-spaces=,
-% text-altitude=,
- text-decoration=,
-% text-depth=,
- text-shadow=,
- visibility=]
- {\directsetup{fo:page-number-citation:process}}
-
-\startsetups fo:page-number-citation:process
-
- \doifreferencefoundelse{\XMLop{ref-id}}
- {\globallet\FOpnrefnumber\currentfolioreference
- \globallet\FOpnrefformat\currenttextreference}
- {\gdef\FOpnrefnumber{?}
- \gdef\FOpnrefformat{}}
-
- \doifelsenothing{\FOpnrefformat}
- {\FOpnrefnumber}
- {\expanded{\handletokens\FOpnrefformat}\with{\handleFOformat{\FOpnrefnumber}}}
-
-\stopsetups
-
-%D Element: fo:table-and-caption
-
-% \XMLattributeset{fo:aural},
-% text-align=,
-% caption-side=,
-% intrusion-displace=,
-% keep-together=,
-
-\defineXMLenvironment
- [fo:table-and-caption]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:margin-block},
- \XMLattributeset{fo:relative-position},
- break-after=,
- break-before=,
- keep-with-next=,
- keep-with-previous=]
- {\beginXMLelement}
- {\endXMLelement}
-
-%D Element: fo:table fo:table-caption fo:table-header fo:table-footer
-%D to:table-column fo:table-body fo:table-row fo:table-cell
-
-% \XMLattributeset{fo:aural},
-% border-collapse=,
-% border-separation=,
-% intrusion-displace=,
-% keep-together=,
-% writing-mode=,
-
-\defineXMLenvironment
- [fo:table]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:margin-block},
- \XMLattributeset{fo:relative-position},
- block-progression-dimension=,
- border-after-precedence=,
- border-before-precedence=,
- border-start-precedence=,
- border-end-precedence=,
- break-after=,
- break-before=,
- inline-progression-dimension=,
- height=,
- keep-with-next=,
- keep-with-previous=,
- table-layout=,
- table-omit-footer-at-break=,
- table-omit-header-at-break=,
-% text-indent=0pt, % yes or no?
- width=]
- {\beginXMLelement
- \bTABLE % [option=stretch] %
- \newcounter\FOtablecolumn}
- {\eTABLE
- \endXMLelement}
-
-\newdimen\FOtableW
-\newdimen\FOtableH
-
-\defineXMLsingular
- [fo:table-column]
- [\XMLattributeset{fo:inherited},
- \XMLattributeset{fo:border-padding-background}, % only background, not the rest, make subset
- border-after-precedence=,
- border-before-precedence=,
- border-end-precedence=,
- border-start-precedence=,
- column-width=,
- column-number=,
- number-columns-repeated=,
- number-columns-spanned=,
- visibility=]
- {\directsetup{fo:table-column:action}}
-
-% \XMLattributeset{fo:aural},
-% intrusion-displace=,
-% keep-together=,
-
-\defineXMLprocess
- [fo:table-caption]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:relative-position},
- block-progression-dimension=,
- height=,
- inline-progression-dimension=,
- width=]
-
-% \XMLattributeset{fo:aural},
-
-\defineXMLnested
- [fo:table-header]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:relative-position},
- border-after-precedence=,
- border-before-precedence=,
- border-end-precedence=,
- border-start-precedence=,
- visibility=]
- {\beginXMLelement\bTABLEhead}
- {\eTABLEhead\endXMLelement}
-
-% \XMLattributeset{fo:aural},
-
-\defineXMLnested
- [fo:table-footer]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:relative-position},
- border-after-precedence=,
- border-before-precedence=,
- border-end-precedence=,
- border-start-precedence=,
- visibility=]
- {\beginXMLelement\bTABLEfoot}
- {\eTABLEfoot\endXMLelement}
-
-% \XMLattributeset{fo:aural},
-
-\defineXMLnested
- [fo:table-body]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:relative-position},
- border-after-precedence=,
- border-before-precedence=,
- border-end-precedence=,
- border-start-precedence=,
- visibility=]
- {\beginXMLelement\bTABLEbody}
- {\eTABLEbody\endXMLelement}
-
-% TODO: when stretch and when not
-
-% \XMLattributeset{fo:aural},
-% keep-together=,
-
-\defineXMLnested
- [fo:table-row]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:relative-position},
- border-after-precedence=,
- border-before-precedence=,
- border-end-precedence=,
- border-start-precedence=,
- break-after=,
- break-before=,
- height=,
- keep-with-next=,
- keep-with-previous=,
- visibility=]
- {\beginXMLelement
- \directsetup{fo:table-row:start}%
- \expanded{\bTR[\the\scratchtoks]}%
- \beginXMLelement}
- {\endXMLelement
- \eTR
- \directsetup{fo:table-row:stop}
- \endXMLelement}
-
-\startsetups fo:table-row:start
-
- \inTABLErowtrue
-
- \scratchtoks\emptytoks
-
- \doifsomething{\XMLop{height}}
- {\FOtableH\textheight
- \setpercentdimen\FOtableH{\XMLop{height}}
- \appendetoks
- height=\the\FOtableH
- \to \scratchtoks}
-
- \appendetoks
- ,extras={\rescanXMLattributes{fo:table-row}}
- \to\scratchtoks
-
-\stopsetups
-
-\startsetups fo:table-row:stop
-
- \inTABLErowfalse
-
-\stopsetups
-
-% \XMLattributeset{fo:aural},
-% display-align=,
-% relative-align=,
-% empty-cells=,
-
-\newif\ifinTABLErow
-\newdimen\FOtablecellwidth
-\newdimen\FOtablecellheight
-
-\defineXMLnested
- [fo:table-cell]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:relative-position},
- border-after-precedence=,
- border-before-precedence=,
- border-end-precedence=,
- border-start-precedence=,
- column-number=,
- ends-row=,
- height=,
- inline-progression-dimension=,
- number-columns-spanned=1,
- number-rows-spanned=1,
- starts-row=,
- width=]
- {\directsetup{fo:table-cell:start}%
- \expanded{\bTD[\the\scratchtoks]}%
- \beginXMLelement}
- {\endXMLelement
- \eTD
- \directsetup{fo:table-cell:stop}}
-
-\startsetups fo:table-column:action
-
- \doifelsenothing{\XMLop{column-number}}
- {\increment\FOtablecolumn}
- {\edef\FOtablecolumn{\XMLop{column-number}}
- \expanded{\setupTABLE[column][\FOtablecolumn][n=\FOtablecolumn]}}
-
- \doifsomething{\XMLop{column-width}}
- {%\setlocalhsize
- %\FOtableW\localhsize
- \analyzefunction{\XMLop{column-width}}%
- % hm, we need to set localhsize earlier
- \doifelse\functionname{proportional-column-width}
- {\FOtableW\functionA\textwidth}
- {\FOtableW\textwidth
- \setpercentdimen\FOtableW{\XMLop{column-width}}}%
- \expanded{\setupTABLE[column][\FOtablecolumn][width=\the\FOtableW]}}
-
- \doif{\XMLop{border-style}}{none}
- {\expanded{\setupTABLE[column][\FOtablecolumn][frame=off]}}
-
- \doifelsenothing{\XMLop{display-align}}
- {\doifsomething{\XMLop{text-align}}
- {\expanded{\setupTABLE[column][\FOtablecolumn]
- [align=\XMLpav{fo:align-key}{fo:table-column}{text-align}{normal}]}}}
- {\doifsomething{\XMLop{text-align}}
- {\expanded{\setupTABLE[column][\FOtablecolumn]
- [align={\XMLpav{fo:display-align}{fo:table-column}{display-align}{high},\XMLpav{fo:align-key}{fo:table-column}{text-align}{normal}}]}}
- {\expanded{\setupTABLE[column][\FOtablecolumn]
- [align=\XMLpav{fo:display-align}{fo:table-column}{display-align}{high}]}}}
-
-\expanded{\setupTABLE[column][\FOtablecolumn][extras={\rescanXMLattributes{fo:table-column}}]}
-
-\stopsetups
-
-\startsetups fo:table-cell:start
-
- \doif{\XMLop{starts-row}}{true}{\ifinTABLErow\eTR\inTABLErowfalse\fi}
-
- \ifinTABLErow\else\bTR\inTABLErowtrue\fi
-
- \doifelsenothing{\XMLop{background-color}}
- {\let\FoTableBG\empty}
- {\checkhexcolor[\XMLop{background-color}]
- \doifcolorelse{\XMLop{background-color}}
- {\def\FoTableBG{color}}
- {\setXMLpar{fo:table-cell}{background-color}{}
- \let\FoTableBG\empty}}
-
-% \doifelse{\XMLpar{fo:table-cell}{width}{}}{}
-% {\def\pFOtablewidth{fit}}
-% {\FOtablecellwidth\textwidth % probably must be localhsize or frozen at an outer level
-% \setpercentdimen\FOtablecellwidth{\XMLpar{fo:table-cell}{width}{0pt}}%
-% \edef\pFOtablewidth{\the\FOtablecellwidth}}%
-
-% \doifelse{\XMLpar{fo:table-cell}{height}{}}{}
-% {\def\pFOtableheight{fit}}
-% {\FOtablecellheight\textheight % probably must be localhsize or frozen at an outer level
-% \setpercentdimen\FOtablecellheight{\XMLpar{fo:table-cell}{height}{0pt}}%
-% \edef\pFOtableheight{\the\FOtablecellheight}}%
-
- \scratchtoks\emptytoks \appendetoks
-% style=\noexpand\directsetup{fo:font:setup}, % else not expanded
- nx=\XMLop{number-columns-spanned},
- ny=\XMLop{number-rows-spanned},
- n=\XMLop{column-number},
- background=\FoTableBG
- \to \scratchtoks
-
- \doifnot{\XMLop{border-style}}{none}
- {\appendetoks
- ,frame=on
- \to\scratchtoks}
-
- \doifsomething{\XMLop{background-color}}
- {\appendetoks
- ,backgroundcolor=\XMLop{background-color}
- \to \scratchtoks}
-
- % todo : padding
-
- \doifsomething{\XMLop{padding}}
- {\appendetoks
- ,offset=\XMLop{padding}
- \to \scratchtoks}
-
- % todo: interference with presets in column (outer level) -> \setupcolumn[column] ...;
- % misschien meerdere align switches
-
- \doifelsenothing{\XMLop{display-align}}
- {\doifsomething{\XMLop{text-align}}
- {\appendetoks
- ,align=\XMLpav{fo:align-key}{fo:table-cell}{text-align}{normal}
- \to \scratchtoks}}
- {\doifsomething{\XMLop{text-align}}
- {\appendetoks
- ,align={\XMLpav{fo:display-align}{fo:table-cell}{display-align}{high},\XMLpav{fo:align-key}{fo:table-cell}{text-align}{normal}},
- \to \scratchtoks}
- {\appendetoks
- ,align=\XMLpav{fo:display-align}{fo:table-cell}{display-align}{high}
- \to \scratchtoks}}
-
- \appendetoks
- ,extras={\rescanXMLattributes{fo:table-cell}}
- \to\scratchtoks
-
-\stopsetups
-
-% \startsetups fo:table-cell:setup
-
-% [\XMLpar{fo:table-cell}{text-indent}{}]
-
-% \edefXMLinhpar\xFOtextindent{fo:table-cell}{text-indent}
-
-% \doifsomething\xFOtextindent
-% {\scratchdimen\hsize
-% \setpercentdimen\scratchdimen\xFOtextindent
-% \expanded{\setupindenting[\the\scratchdimen]}}
-
-% \stopsetups
-
-\startsetups fo:table-cell:stop
-
- \doif{\XMLop{ends-row}}{true}{\eTR\inTABLErowfalse}
-
-\stopsetups
-
-%D Element: fo:list-block fo:list-item fo:list-body fo:list-item-label
-
-% \XMLattributeset{fo:aural},
-% intrusion-displace=,
-% keep-together=,
-% provisional-distance-between-starts=24pt,
-% provisional-label-separation=6pt,
-
-\defineXMLenvironment
- [fo:list-block]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fe:tracing},
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:margin-block},
- \XMLattributeset{fo:relative-position},
- break-after=,
- break-before=,
- keep-with-next=,
-% space-between-list-rows=, % ? mentioned in bradley
-text-indent=0pt, % yes
- keep-with-previous=]
- {\beginXMLelement\directsetup{fo:list:start}}
- {\directsetup{fo:list:stop}\endXMLelement}
-
-\startsetups fo:list:start
- \endgraf
- \begingroup
- \directsetup{fe:setup}
- \disablemode[fo:in-list]
- % \forgetall, no!
-% \directsetup{fo:break-and-space:before}
- \directsetup{fo:indent:setup}
- \begingroup
-\stopsetups
-
-\startsetups fo:list:stop
- \endgraf
- \endgroup
-% \directsetup{fo:break-and-space:after}
- \endgroup
-\stopsetups
-
-% \XMLattributeset{fo:aural},
-% relative-align=,
-% intrusion-displace=,
-% keep-together=,
-
-% The list model is plain stupid. Instead of just defining a few mechanism
-% or using some kind of type attribute, a strange mechanism of functions is
-% used. Why on the one hand introduce redundant attributes and on the other
-% hand safe a few elements. A proper segmentation of the problem would have
-% brought better solutions.
-
-\defineXMLenvironment
- [fo:list-item]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fe:tracing},
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:margin-block},
- \XMLattributeset{fo:relative-position},
- break-after=,
- break-before=,
- keep-with-next=,
- keep-with-previous=]
- {\beginXMLelement\directsetup{fo:list-item:start}}
- {\directsetup{fo:list-item:stop}\endXMLelement}
-
-% check what is needed
-
-\newdimen\FOlistitemlabelhsize \newdimen\FOlistitembodyhsize \newdimen\FOlistitemdistance
-\newdimen\FOlistitemlabelleftskip \newdimen\FOlistitembodyleftskip
-\newdimen\FOlistitemlabelrightskip \newdimen\FOlistitembodyrightskip
-
-\defineXMLnestedsave
- [fo:list-item-body]
- [\XMLattributeset{fo:inherited},
- id=, % keep-together=,
- \XMLattributeset{fo:accessibility}]
-
-\defineXMLnestedsave
- [fo:list-item-label]
- [\XMLattributeset{fo:inherited},
- id=, % keep-together=,
- \XMLattributeset{fo:accessibility}]
-
-\startsetups fo:list-item:start
-
- \bgroup
-
-% \startmode[fo:in-list]
-% \doifsomething{\XMLpar{fo:list-block}{space-between-list-rows}{}}
-% {\vskip\XMLpar{fo:list-block}{space-between-list-rows}{}} % todo ! ! ! !
-% \stopmode
-
- \enablemode[fo:in-list]
-
-\stopsetups
-
-% todo : relative-align in list item
-
-\newif\ifFOlabelend
-\newif\ifFObodystart
-
-\startsetups fo:list-item:stop
-
- % 24pt en 6pt in fo:root instellen
-
- % \tracebackXMLattribute{provisional-distance-between-starts}
-
- \edefXMLinh \FOprodis {provisional-distance-between-starts}
- \edefXMLinh \FOprolab {provisional-label-separation}
-
-% \edef\FOprodis{\XMLpar{fo}{provisional-distance-between-starts}{}}
-% \edef\FOprolab{\XMLpar{fo}{provisional-label-separation}{}}
-
- \edef\FOprodis{\ifx\FOprodis\empty24pt\else\FOprodis\fi}
- \edef\FOprolab{\ifx\FOprolab\empty 6pt\else\FOprolab\fi}
-
- \setlocalhsize
-
- \FOlistitemlabelleftskip \zeropoint
- \FOlistitemlabelrightskip\zeropoint
- \FOlistitembodyleftskip \zeropoint
- \FOlistitembodyrightskip \zeropoint
-
- \doifelse{\XMLpar{fo:list-item-label}{end-indent} {}}{label-end()} \FOlabelendtrue \FOlabelendfalse
- \doifelse{\XMLpar{fo:list-item-body} {start-indent}{}}{body-start()}\FObodystarttrue\FObodystartfalse
-
- \setpercentdimen\FOlistitemlabelleftskip {\XMLpar{fo:list-item-label}{start-indent}{0pt}}
- \setpercentdimen\FOlistitembodyrightskip {\XMLpar{fo:list-item-body} {end-indent} {0pt}}
-
- % maybe i need to implement something configurable
-
- \ifFObodystart
- \ifFOlabelend
- \FOlistitemlabelrightskip\dimexpr(\localhsize-\FOlistitemlabelleftskip-\FOprodis+\FOprolab)
- \FOlistitembodyleftskip\dimexpr(\FOlistitemlabelleftskip+\FOprodis)
- \FOlistitemlabelhsize\dimexpr(\FOprodis-\FOprolab)
- \else
- \setpercentdimen\FOlistitemlabelrightskip{\XMLpar{fo:list-item-label}{end-indent}{0pt}}
- \FOlistitemlabelhsize\dimexpr(\localhsize-\FOlistitemlabelleftskip-\FOlistitemlabelrightskip)
- \FOlistitembodyleftskip\dimexpr(\FOlistitemlabelleftskip+\FOlistitemlabelhsize+\FOprolab)
- \fi
- \FOlistitemdistance \dimexpr(\FOprolab)
- \else
- \setpercentdimen\FOlistitembodyleftskip{\XMLpar{fo:list-item-body}{start-indent}{0pt}}
- \ifFOlabelend
- \FOlistitemlabelrightskip\dimexpr(\localhsize-\FOlistitembodyleftskip+\FOprolab)
- \FOlistitemlabelhsize\dimexpr(\localhsize-\FOlistitemlabelleftskip-\FOlistitemlabelrightskip)
- \FOlistitemdistance \dimexpr(\FOprolab)
- \else
- \setpercentdimen\FOlistitemlabelrightskip{\XMLpar{fo:list-item-label}{end-indent}{0pt}}
- \FOlistitemlabelhsize\dimexpr(\localhsize-\FOlistitemlabelleftskip-\FOlistitemlabelrightskip)
- \FOlistitemdistance \dimexpr(\FOlistitembodyleftskip-\FOlistitemlabelleftskip-\FOlistitemlabelhsize)
- \fi
- \fi
-
- % is this fall back permitted ?
-
- \ifzeropt\FOlistitemlabelleftskip \ifzeropt\FOlistitemlabelrightskip
- \FOlistitembodyleftskip\FOprodis
- \FOlistitemdistance\FOprolab
- \FOlistitemlabelhsize\dimexpr(\FOlistitembodyleftskip-\FOlistitemdistance)
- \fi \fi
-
- %
-
- \FOlistitembodyhsize\localhsize
-
- \advance\FOlistitembodyhsize-\FOlistitembodyleftskip
- \advance\FOlistitembodyhsize-\FOlistitembodyrightskip
-
- \doifelse{\XMLpar{fo:list-item}{display-align}{}}{center}
- {\directsetup{fo:list-item:display}}
- {\directsetup{fo:list-item:text}}
-
- \egroup
-
-\stopsetups
-
-% todo: textindent
-
-\startsetups fo:list-item:display
-
- \endgraf
-
- \advance\leftskip \FOlistitemlabelleftskip
- \advance\rightskip\FOlistitembodyrightskip
-
- \dontleavehmode \valign\bgroup\forgetall\vss##\vss\cr
- \iftracingFO\ruledvtop\else\vbox\fi{\hsize\FOlistitemlabelhsize\directsetup{fo:list-item-label:setup}\XMLflush{fo:list-item-label}}\cr
- \iftracingFO\ruledvtop\else\vbox\fi{\hsize\FOlistitembodyhsize \directsetup{fo:list-item-body:setup}\XMLflush{fo:list-item-body}}\cr
- \egroup
-
-% \dontleavehmode \placesidebyside % or maybe paired boxes (legends)
-% {\ruledvtop{\forgetall\hsize\FOlistitemlabelhsize\XMLflush{fo:list-item-label}}}
-% {\ruledvtop{\forgetall\hsize\FOlistitembodyhsize \XMLflush{fo:list-item-body}}}
-
- \endgraf
-
-\stopsetups
-
-\newtoks\savedeverypar \savedeverypar\everypar
-
-\startsetups fo:list-item:text
-
- \everypar\savedeverypar % \appendtoksonce\insertparagraphintro\to\everypar % hack, binnen footnote ...
-
- \advance\leftskip \FOlistitembodyleftskip
- \advance\rightskip\FOlistitembodyrightskip
-
- \setupparagraphintro[first][\directsetup{fo:list-item-label:process}]
- \setupparagraphintro[next] [\begstrut\resetpenalties\clubpenalties]
- \directsetup{fo:list-item-body:setup}
- \XMLflush{fo:list-item-body}\endstrut
-
-\stopsetups
-
-\startsetups fo:list-item-label:setups
-
- \edefXMLinhpar\xFOtextindent{fo:item-label}{text-indent}
-
- \doifsomething\xFOtextindent
- {\scratchdimen\hsize
- \setpercentdimen\scratchdimen\xFOtextindent
- \expanded{\setupindenting[\the\scratchdimen]}}
-
-\stopsetups
-
-\startsetups fo:list-item-body:setups
-
- \edefXMLinh\xFOtextindent{fo:item-body}{text-indent}
-
- \doifsomething\xFOtextindent
- {\scratchdimen\hsize
- \setpercentdimen\scratchdimen\xFOtextindent
- \expanded{\setupindenting[\the\scratchdimen]}}
-
-\stopsetups
-
-\newbox\FOitembox
-
-\startsetups fo:list-item-label:process
-
- \setbox \FOitembox \iftracingFO \ruledvtop \else \vtop \fi \bgroup
- \forgetall
- \postponenotes
- \hsize\FOlistitemlabelhsize
- \directsetup{fo:list-item-label:setup}
- \XMLflush{fo:list-item-label}
- \egroup
- \getnoflines{\dimexpr(\ht\FOitembox+\dp\FOitembox)}
- \setpenalties\clubpenalties\noflines\maxdimen
- \strut\llap{\box\FOitembox\hskip\FOlistitemdistance}
-
-\stopsetups
-
-% \setlocalhsize \hsize\localhsize
-
-%D Element: fo:basic-link
-
-% \XMLattributeset{fo:aural},
-% keep-together=,
-% line-height=,
-
-\defineXMLenvironmentsave
- [fo:basic-link]
- [\XMLattributeset{fo:inherited},
- id=,
- \XMLattributeset{fo:accessibility},
- \XMLattributeset{fo:border-padding-background},
- \XMLattributeset{fo:margin-inline},
- \XMLattributeset{fo:relative-position},
- alignment-adjust=,
- alignment-baseline=,
- baseline-shift=,
- destination-placement-offset=,
- dominant-baseline=,
- external-destination=,
- indicate-destination=,
- internal-destination=,
- keep-with-next=,
- keep-with-previous=,
- show-destination=,
- target-processing-context=,
- target-presentation-context=,
- target-stylesheet=]
- {}
- {\directsetup{fo:basic-link}}
-
-\startsetups fo:basic-link
-
- \goto{\XMLflushself}[unknown]
-
-\stopsetups
-
-%D Element: fo:multi-switch fo:multi-case fo:multi-toggle fo:multi-properties fo:multi-property-set
-
-\defineXMLprocess[fo:multi-switch]
-\defineXMLprocess[fo:multi-case]
-\defineXMLprocess[fo:multi-toggle]
-\defineXMLprocess[fo:multi-properties]
-\defineXMLprocess[fo:multi-property-set]
-
-%D Element: fo:float
-
-\defineXMLenvironmentsave
- [fo:float]
- [\XMLattributeset{fo:inherited},
- float=before,
- clear=]
- {}
- {\directsetup{fo:float:process}}
-
-% clear: start end left right both none inherit
-% float: before start end left right none
-
-\mapXMLvalue {fo:float-position} {before} {here} % todo
-\mapXMLvalue {fo:float-position} {start} {here} % todo
-\mapXMLvalue {fo:float-position} {end} {here} % todo
-\mapXMLvalue {fo:float-position} {left} {left}
-\mapXMLvalue {fo:float-position} {right} {right}
-\mapXMLvalue {fo:float-position} {none} {here} % todo
-
-\startsetups fo:float:process
-
- \placefigure
- [\XMLval{fo:float-position}{\XMLop{float}},none]
- {}
- {\XMLflushself}
-
-\stopsetups
-
-%D Element: fo:footnote fo:footnote-body
-
-% Let's assume that 'whatever' contains the number or footnote marker.
-%
-% <fo:footnote>whatever<fo:footnote-body>note</fo:footnote-body></fo:footnote>
-
-% todo xsl-footnote area
-
-\defineXMLprocess
- [fo:footnote]
- [\XMLattributeset{fo:accessibility}]
-
-\defineXMLargument
- [fo:footnote-body]
- [\XMLattributeset{fo:accessibility}]
- {\footnote[-]}
-
-%D Element: fo:wrapper
-
-\defineXMLenvironment % todo: all inheritable
- [fo:wrapper]
- [\XMLattributeset{fo:inherited},
- \XMLattributeset{fe:tracing},
- \XMLattributeset{fo:fonts},
- \XMLattributeset{fo:hyphenation}]
- {\beginXMLelement\begingroup\directsetup{fo:wrapper}}
- {\endgroup\endXMLelement}
-
-\startsetups fo:wrapper
-
- \directsetup{fe:setup}
- \directsetup{fo:hyphenation:setup}
- \directsetup{fo:font:setup}
-
-\stopsetups
-
-%D Element: fo:marker fo:retrieve-marker
-
-% In order to support 'retrieve-boundary' (page, page-sequence,
-% document) I need to extend the context mark handler.
-
-% This object will probably interfere with a too spacy layout since
-% it is unaware if its surrounding.
-
-\defineXMLenvironmentsave
- [fo:marker]
- [marker-class-name=unknown]
- {}
- {\directsetup{fo:marker:process}}
-
-\startsetups fo:marker:process
-
- \doifelsemarking{fo:\XMLop{marker-class-name}}
- {} {\definerawmarking[fo:\XMLop{marker-class-name}]}
-
- \expanded{\marking[fo:\XMLop{marker-class-name}]{\XMLflushself}}
-
-\stopsetups
-
-\defineXMLcommand
- [fo:retrieve-marker]
- [retrieve-class-name=unknown,
- retrieve-position=first-starting-within-page,
- retrieve-boundary=]
- {\directsetup{fo:retrieve-marker:process}}
-
-\mapXMLvalue {fo:marker-position} {first-starting-within-page} {first} % first mark
-\mapXMLvalue {fo:marker-position} {first-including-carryover} {previous} % top mark
-\mapXMLvalue {fo:marker-position} {last-starting-within-page} {first} % dunno
-\mapXMLvalue {fo:marker-position} {last-ending-within-page} {last} % bot mark
-
-\startsetups fo:retrieve-marker:process
-
- \expanded{\getmarking
- [fo:\XMLop{retrieve-class-name}]
- [\XMLval{fo:marker-position}{\XMLop{retrieve-position}}{first}]}
-
-\stopsetups
-
-%D Auxiliary macros
-
-\unprotect
-
-\long\def\noFOchecks#1\od{}
-
-\def\FOassignskip#1#2#3%
- {\edef\!!stringa{\XMLpar{#1}{#2}\empty}%
- \edef\!!stringb{\XMLpar{#1}{#2.optimum}\empty}%
- \edef\!!stringc{\XMLpar{#1}{#2.minimum}\empty}%
- \edef\!!stringd{\XMLpar{#1}{#2.maximum}\empty}%
- \dimen0=\ifx\!!stringa\empty\zeropoint\else\!!stringa\fi
- \dimen2=\ifx\!!stringb\empty\dimen0 \else\!!stringb\fi
- \dimen4=\dimexpr(\ifx\!!stringd\empty\dimen0 \else\!!stringd\fi-\dimen2)\relax
- \dimen6=\dimexpr(\ifx\!!stringc\empty\dimen0 \else\!!stringc\fi-\dimen2)\relax
- #3=\dimen2 \ifzeropt\dimen4 \else\!!plus\dimen4 \fi\ifzeropt\dimen6 \else\!!minus\dimen6 \fi\relax}
-
-\mapXMLvalue{fo:space:conditionality} {retain} {\let\next\retainedskip }
-\mapXMLvalue{fo:space:conditionality} {discard} {\let\next\discardedskip}
-\mapXMLvalue{fo:space:conditionality} {} {\let\next\discardedskip}
-
-\mapXMLvalue{fo:space:precedence} {force} {\let\next\forcedskip}
-
-\def\FOdoskip#1#2%
- {\begingroup
- \iftracingFO\showskips\fi
- \FOassignskip{#1}{#2}\scratchskip
- \XMLval{fo:space:conditionality}{\XMLpar{#1}{#2.conditionality}\empty}\empty
- \XMLval{fo:space:precedence}{\XMLpar{#1}{#2.precedence}\empty}\empty
- \ifdim\scratchskip=\zeropoint
- \ifdim\gluestretch\scratchskip=\zeropoint
- \ifdim\glueshrink\scratchskip=\zeropoint
- \let\next\gobbleoneargument
- \fi
- \fi
- \fi
- \next\scratchskip
- \endgroup}
-
-\def\doFObeforeskip#1{\FOdoskip{#1}{space-before}}
-\def\doFOafterskip #1{\FOdoskip{#1}{space-after}}
-
-\def\FOassignspace#1#2#3%
- {\edef\!!stringa{\XMLpar{#1}{#2}\empty}%
- \ifx\!!stringa\empty
- #3=\zeropoint
- \else
- #3=1em% ?
- \setpercentdimen#3\!!stringa
- \fi
- \relax}
-
-\def\FOdospace#1#2%
- {\begingroup
- \iftracingFO\showskips\fi
- \FOassignspace{#1}{#2}\scratchskip
- \ifdim\scratchskip=\zeropoint \else
- \hskip\scratchskip
- \fi
- \endgroup}
-
-\def\doFOstartspace#1{\FOdospace{#1}{space-start}}
-\def\doFOendspace #1{\FOdospace{#1}{space-end}}
-
-\def\checkFOborder#1#2%
- {\edef\FOattribute{\XMLpar{#1}{border-#2}\empty}%
- \ifx\FOattribute\empty\else
- \edef\FOtag{#1}%
- \edef\FOatt{border-#2}%
- \expanded{\docheckFOborder\FOattribute\space\relax\space\relax}\od
- \fi}
-
-\def\docheckFOborder#1#2 #3%
- {\ifx#1\relax
- \expandafter\noFOchecks
- \else
- \doifhexcolorelse{#1#2}
- {\setXMLpar\FOtag{\FOatt-color}{#1#2}}
- {\doifelsenothing{\XMLval{fo:border-style}{#1#2}\empty}
- {\doifcolorelse{#1#2}
- {\setXMLpar\FOtag{\FOatt-color}{#1#2}}
- {\setXMLpar\FOtag{\FOatt-width}{#1#2}}}
- {\setXMLpar\FOtag{\FOatt-style}{#1#2}}}%
- \expandafter\docheckFOborder
- \fi#3}
-
-\def\checkFOposition#1#2%
- {\edef\FOattribute{\XMLpar{#1}{#2-position}\empty}%
- \ifx\FOattribute\empty\else
- \edef\FOtag{#1}%
- \edef\FOatt{#2-position}%
- \scratchcounter\zerocount
- \expanded{\docheckFOposition\FOattribute\space\relax\space\relax}\od
- \fi}
-
-\def\docheckFOposition#1#2 #3%
- {\ifx#1\relax
- \expandafter\noFOchecks
- \else
- \advance\scratchcounter\plusone
- \ifcase\scratchcounter
- \or
- \setXMLpar\FOtag{\FOatt-vertical}{#1#2}%
- \or
- \setXMLpar\FOtag{\FOatt-horizontal}{#1#2}%
- \fi
- \expandafter\docheckFOposition
- \fi#3}
-
-\def\checkFOpadding{\def\FOatt{padding}\checkFOquadruple}
-\def\checkFOmargin {\def\FOatt{margin}\checkFOquadruple}
-
-\def\checkFOquadruple#1%
- {\edef\FOattribute{\XMLpar{#1}\FOatt\empty}%
- \ifx\FOattribute\empty\else
- \edef\FOtag{#1}%
- \scratchcounter\zerocount
- \expanded{\docheckFOquadruple\FOattribute\space\relax\space\relax}\od
- \ifcase\scratchcounter
- \let\FOattributeT\FOattribute
- \let\FOattributeR\FOattribute
- \let\FOattributeB\FOattribute
- \let\FOattributeL\FOattribute
- \or % (tblr)
- \let\FOattributeT\FOattribute
- \let\FOattributeR\FOattribute
- \let\FOattributeB\FOattribute
- \let\FOattributeL\FOattribute
- \or % (tb)(lr)
- \let\FOattributeB\FOattributeT
- \let\FOattributeL\FOattributeR
- \or % (t)(lr)(b)
- \let\FOattributeL\FOattributeR
- \or % (t)(r)(b)(l)
- % already ok
- \fi
- \letXMLpar\FOtag{\FOatt-top}\FOattributeT
- \letXMLpar\FOtag{\FOatt-right}\FOattributeR
- \letXMLpar\FOtag{\FOatt-bottom}\FOattributeB
- \letXMLpar\FOtag{\FOatt-left}\FOattributeL
- \fi}
-
-\def\docheckFOquadruple#1#2 #3%
- {\ifx#1\relax
- \expandafter\noFOchecks
- \else
- \advance\scratchcounter\plusone
- \ifcase\scratchcounter
- \or
- \edef\FOattributeT{#1#2}%
- \or
- \edef\FOattributeR{#1#2}%
- \or
- \edef\FOattributeB{#1#2}%
- \or
- \edef\FOattributeL{#1#2}%
- \fi
- \expandafter\docheckFOquadruple
- \fi#3}
-
-% \def\setFOimagename#1%
-% {\edef\FOimagename{#1}%
-% \aftersplitstring \FOimagename\at url('\to\xFOimagename
-% \ifx\xFOimagename\empty \else
-% \beforesplitstring\xFOimagename\at ')\to\FOimagename
-% \fi
-% \aftersplitstring \FOimagename\at url("\to\xFOimagename
-% \ifx\xFOimagename\empty \else
-% \beforesplitstring\xFOimagename\at ")\to\FOimagename
-% \fi}
-%
-% let's overkill:
-
-\def\setFOimagename#1%
- {\analyzefunction{#1}%
- \doifelse\functionname{url}
- {\edef\FOimagename{\@EA\unstringed\functionA}}
- {\ifx\functionname\empty
- \def\FOimagename{#1}%
- \else
- \def\FOimagename{dummy}%
- \fi}}
-
-% font
-
-\mapXMLvalue {fo:weight} {normal} {}
-\mapXMLvalue {fo:weight} {bold} {bold}
-\mapXMLvalue {fo:weight} {bolder} {bold}
-\mapXMLvalue {fo:weight} {lighter} {normal}
-\mapXMLvalue {fo:weight} {100} {normal}
-\mapXMLvalue {fo:weight} {200} {normal}
-\mapXMLvalue {fo:weight} {300} {normal}
-\mapXMLvalue {fo:weight} {400} {normal}
-\mapXMLvalue {fo:weight} {500} {normal}
-\mapXMLvalue {fo:weight} {600} {normal}
-\mapXMLvalue {fo:weight} {700} {normal}
-\mapXMLvalue {fo:weight} {800} {normal}
-\mapXMLvalue {fo:weight} {900} {normal}
-
-\mapXMLvalue {fo:variant} {normal} {}
-\mapXMLvalue {fo:variant} {small-caps} {small-caps}
-
-\mapXMLvalue {fo:style} {normal} {normal}
-\mapXMLvalue {fo:style} {italic} {italic}
-\mapXMLvalue {fo:style} {oblique} {oblique}
-\mapXMLvalue {fo:style} {backslant} {normal}
-
-% we can get crap like: 10pt/1.5 bold "Times Roman" ; i'm really puzzled why an
-% otherwise rather verbose coding occasionally packs attributes; a design flaw
-
-\newtoks\FOfonttoks
-
-\def\checkFOfontSS#1'{}
-\def\checkFOfontDD#1"{}
-\def\checkFOfontII#1 {}
-
-\bgroup
-\catcode`\'=\active
-\catcode`\"=\active
-\catcode`\/=\active
-\gdef\setcheckFOfontX
- {\catcode`\'=\active
- \catcode`\"=\active
- \catcode`\/=\active
- \def'##1'{\global\FOfonttoks\expandafter{\the\FOfonttoks\def\FOfontfamily{##1}}}%
- \def"##1"{\global\FOfonttoks\expandafter{\the\FOfonttoks\def\FOfontfamily{##1}}}%
- \def/##1 {}}% todo linespacing
-\gdef\setcheckFOfontXX
- {\catcode`\'=\active
- \catcode`\"=\active
- \catcode`\/=\active
- \def'##1'{}%
- \def"##1"{}%
- \def/##1 {}}% todo linespacing
-\egroup
-
-\globallet\xFOattribute\empty
-
-\def\checkFOfont#1%
- {\FOfonttoks\emptytoks
- \bgroup
- \catcode`\\=\@@escape
- \catcode`\{=\@@begingroup
- \catcode`\}=\@@endgroup
-% \catcode`\:=\@@letter
-% \catcode`\-=\@@letter
- \setcheckFOfontX
- \xdef\xFOattribute{#1 }%
- \setbox\scratchbox\hbox{\scantokens\@EA{\xFOattribute}}%
- \setcheckFOfontXX
- \scantokens\@EA{\@EA\xdef\@EA\xFOattribute\@EA{\xFOattribute}}%
- \egroup
- \the\FOfonttoks
- \ifx\xFOattribute\empty\else
- \expanded{\docheckFOfont\xFOattribute\space\relax\space\relax}\od
- \fi
- \directsetup{fo:font:family:check}}
-
-\def\docheckFOfont#1#2 #3%
- {\ifx#1\relax
- \expandafter\noFOchecks
- \else
- \directsetup{fo:fonts:reset}%
- \doifelsefontsynonym{#1#2}
- {\def\FOfontfamily{#1#2}}
- {\doifelsenothing{\XMLval{fo:weight}{#1#2}{}}
- {\doifelsenothing{\XMLval{fo:variant}{#1#2}{}}
- {\doifelsenothing{\XMLval{fo:style}{#1#2}{}}
- {\setpercentdimen\dFOfontsize{#1#2}}
- {\edef\FOfontstyle{\XMLval{fo:style}{#1#2}{}}}}
- {\edef\FOfontvariant{\XMLval{fo:variant}{#1#2}{}}}}
- {\edef\FOfontweight{\XMLval{fo:weight}{#1#2}{}}}}%
- \expandafter\docheckFOfont
- \fi#3}
-
-\protect
-
-\newtoks\FOreferences
-
-\def\setFOreference#1%
- {\doifsomething{\XMLpar{#1}{id}{}}
- {\expanded{\appendtoks
- \noexpand\reference[\XMLpar{#1}{id}{}]{\XMLpar{fo:page-sequence}{format}{}}}%
- \to\FOreferences}}
-
-\def\flushFOreferences
- {\the\FOreferences
- \global\FOreferences\emptytoks}
-
-\def\doFOreference#1%
- {\doifsomething{\XMLpar{#1}{id}{}}
- {\expanded{\reference[\XMLpar{#1}{id}{}]{\XMLpar{fo:page-sequence}{format}{}}}}}
-
-\appendtoks \flushFOreferences \to \everypar
-\appendtoks \flushFOreferences \to \neverypar % check !
-
-%D Graphics: static frames
-
-\startMPinclusions
- input mp-fobg.mpii ;
-\stopMPinclusions
-
-\def\unknownMPcolor{FoNoColor}
-
-% todo: combine into one en alleen tweede run, immers toch geen invloed; is
-% aangezien de referentiepunten vast liggen
-
-\def\FoRegionWidth#1%
- {\XMLpav
- {fo:border-width}
- {fo:region-\MPvar{location}}
- {border-#1-width}
- {FoMedium}}
-
-\def\FoRegionStyle#1%
- {\XMLpav
- {fo:border-style}
- {fo:region-\MPvar{location}}
- {border-#1-style}
- {FoNone}}
-
-\def\FoRegionColor#1%
- {\MPcolor{\XMLpar
- {fo:region-\MPvar{location}}
- {border-#1-color}
- {black}}}
-
-\def\FoRegionBackgroundColor
- {\MPcolor{\XMLpar
- {fo:region-\MPvar{location}}
- {background-color}
- {FoNoColor}}}
-
-% todo: when connected and same color : one draw
-
-\startuseMPgraphic{region-do}
- FoBackgroundColor := \FoRegionBackgroundColor ;
- FoLineColor[FoTop] := \FoRegionColor{top} ;
- FoLineColor[FoBottom] := \FoRegionColor{bottom} ;
- FoLineColor[FoLeft] := \FoRegionColor{left} ;
- FoLineColor[FoRight] := \FoRegionColor{right} ;
- FoLineStyle[FoTop] := \FoRegionStyle{top} ;
- FoLineStyle[FoBottom] := \FoRegionStyle{bottom} ;
- FoLineStyle[FoLeft] := \FoRegionStyle{left} ;
- FoLineStyle[FoRight] := \FoRegionStyle{right} ;
- FoLineWidth[FoTop] := \FoRegionWidth{top} ;
- FoLineWidth[FoBottom] := \FoRegionWidth{bottom} ;
- FoLineWidth[FoLeft] := \FoRegionWidth{left} ;
- FoLineWidth[FoRight] := \FoRegionWidth{right} ;
- if FoBackgroundColor <> FoNoColor :
- fill OverlayBox
- withcolor FoBackgroundColor ;
- fi ;
- path OverlayFrameBox ;
- interim linecap := butt ;
- OverlayFrameBox := OverlayBox
- topenlarged -.5FoLineWidth[FoTop]
- bottomenlarged -.5FoLineWidth[FoBottom]
- leftenlarged -.5FoLineWidth[FoLeft]
- rightenlarged -.5FoLineWidth[FoRight] ;
- DrawFoFrame(FoTop, topboundary OverlayFrameBox) ;
- DrawFoFrame(FoBottom, bottomboundary OverlayFrameBox) ;
- DrawFoFrame(FoLeft, leftboundary OverlayFrameBox) ;
- DrawFoFrame(FoRight, rightboundary OverlayFrameBox) ;
-\stopuseMPgraphic
-
-\startuseMPgraphic{region-body} \includeMPgraphic{region-do} \stopuseMPgraphic
-\startuseMPgraphic{region-before} \includeMPgraphic{region-do} \stopuseMPgraphic
-\startuseMPgraphic{region-after} \includeMPgraphic{region-do} \stopuseMPgraphic
-\startuseMPgraphic{region-start} \includeMPgraphic{region-do} \stopuseMPgraphic
-\startuseMPgraphic{region-end} \includeMPgraphic{region-do} \stopuseMPgraphic
-
-\startnotmode[fo-no-bg]
-
-\defineoverlay[region-body-graphic] [\useMPgraphic{region-body}{location=body}]
-\defineoverlay[region-before-graphic][\useMPgraphic{region-before}{location=before}]
-\defineoverlay[region-after-graphic] [\useMPgraphic{region-after}{location=after}]
-\defineoverlay[region-start-graphic] [\useMPgraphic{region-start}{location=start}]
-\defineoverlay[region-end-graphic] [\useMPgraphic{region-end}{location=end}]
-
-\stopnotmode
-
-% more efficient: todo: relocate and move to page background
-
-% \def\FoRegionWidth#1#2%
-% {\XMLpav
-% {fo:border-width}
-% {fo:region-#2}
-% {border-#1-width}
-% {FoMedium}}
-
-% \def\FoRegionStyle#1#2%
-% {\XMLpav
-% {fo:border-style}
-% {fo:region-#2}
-% {border-#1-style}
-% {FoNone}}
-
-% \def\FoRegionColor#1#2%
-% {\MPcolor{\XMLpar
-% {fo:region-#2}
-% {border-#1-color}
-% {black}}}
-
-% \def\FoRegionBackgroundColor#1%
-% {\MPcolor{\XMLpar
-% {fo:region-#1}
-% {background-color}
-% {FoNoColor}}}
-
-% \def\combinedFOgraphic#1%
-% {FoBackgroundColor := \FoRegionBackgroundColor{#1} ;
-% FoLineColor[FoTop] := \FoRegionColor{top}{#1} ;
-% FoLineColor[FoBottom] := \FoRegionColor{bottom}{#1} ;
-% FoLineColor[FoLeft] := \FoRegionColor{left}{#1} ;
-% FoLineColor[FoRight] := \FoRegionColor{right}{#1} ;
-% FoLineStyle[FoTop] := \FoRegionStyle{top}{#1} ;
-% FoLineStyle[FoBottom] := \FoRegionStyle{bottom}{#1} ;
-% FoLineStyle[FoLeft] := \FoRegionStyle{left}{#1} ;
-% FoLineStyle[FoRight] := \FoRegionStyle{right}{#1} ;
-% FoLineWidth[FoTop] := \FoRegionWidth{top}{#1} ;
-% FoLineWidth[FoBottom] := \FoRegionWidth{bottom}{#1} ;
-% FoLineWidth[FoLeft] := \FoRegionWidth{left}{#1} ;
-% FoLineWidth[FoRight] := \FoRegionWidth{right}{#1} ;
-% if FoBackgroundColor <> FoNoColor :
-% fill OverlayBox
-% withcolor FoBackgroundColor ;
-% fi ;
-% path OverlayFrameBox ;
-% interim linecap := butt ;
-% OverlayFrameBox := OverlayBox
-% topenlarged -.5FoLineWidth[FoTop]
-% bottomenlarged -.5FoLineWidth[FoBottom]
-% leftenlarged -.5FoLineWidth[FoLeft]
-% rightenlarged -.5FoLineWidth[FoRight] ;
-% DrawFoFrame(FoTop, topboundary OverlayFrameBox) ;
-% DrawFoFrame(FoBottom, bottomboundary OverlayFrameBox) ;
-% DrawFoFrame(FoLeft, leftboundary OverlayFrameBox) ;
-% DrawFoFrame(FoRight, rightboundary OverlayFrameBox) ;}
-
-% \startuseMPgraphic{region-body}
-% \combinedFOgraphic{before}
-% \combinedFOgraphic{body}
-% \combinedFOgraphic{after}
-% \combinedFOgraphic{start}
-% \combinedFOgraphic{end}
-% \stopuseMPgraphic
-
-% \defineoverlay[region-body-graphic] [\useMPgraphic{region-body}{location=body}]
-% \defineoverlay[region-before-graphic][]
-% \defineoverlay[region-after-graphic] []
-% \defineoverlay[region-start-graphic] []
-% \defineoverlay[region-end-graphic] []
-
-\stopXMLcompiling
-
-\endinput
-
-% we can follow two approaches: set the attributes global, using
-%
-% \defineXML...[tag][prefix][empty]
-%
-% in that case we trust the fo-file to be correct, i.e. the xslt style
-% sheets should not put attributes in the wrong places; however, we need
-% to do that with care, since for instance the attributes of some objects
-% (regions) are used mixed
-%
-% \defineXMLprocess [fo:root] [XMLFO] [test=unset]
-%
-% \defineXMLenvironment [fo:block-container] [XMLFO]
-% {\begingroup}
-% {\endgroup}
-%
-% \defineXMLenvironment [fo:block] [XMLFO]
-% {\begingroup\getXMLparameters[XMLFO]\begingroup}
-% {\endgroup\XMLFOtest\endgraf\endgroup}
-%
-% \startXMLdata
-% <fo:root>
-% <fo:block-container test='first'><fo:block test='second'>second:</fo:block></fo:block-container>
-% <fo:block>unset:</fo:block>
-% <fo:block test='outer'><fo:block test='nested'>nested:</fo:block>outer:</fo:block>
-% <fo:block test='last'>last:</fo:block>
-% </fo:root>
-% \stopXMLdata
-%
-% the other approach is to set the attributes explicitly for each
-% element, which is slower but more robust
-%
-% A mix is:
-%
-% \defineXMLenvironment
-% [fo:root]
-% [test=unset]
-% {\beginXMLelement}
-% {\endXMLelement}
-%
-% \defineXMLenvironment
-% [fo:block-container]
-% [test=\XMLpar\XMLpureparent{test}{}]
-% {\beginXMLelement}
-% {\endXMLelement}
-%
-% \defineXMLenvironment
-% [fo:block]
-% [test=\XMLpar\XMLpureparent{test}{}]
-% {\beginXMLelement
-% \begingroup}
-% {\endgroup
-% \XMLpar{fo:block}{test}{}
-% \endXMLelement}
-%
-% \startXMLdata
-% <fo:root>
-% <fo:block-container test='first'><fo:block test='second'>second:</fo:block></fo:block-container>
-% <fo:block>unset:</fo:block>
-% <fo:block test='outer'><fo:block test='nested'>nested:</fo:block>outer:</fo:block>
-% <fo:block test='last'>last:</fo:block>
-% </fo:root>
-% \stopXMLdata
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-foxet.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-foxet.mkii
deleted file mode 100644
index d44cf2b7ec7..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-foxet.mkii
+++ /dev/null
@@ -1,28 +0,0 @@
-%D \module
-%D [ file=x-foxet,
-%D version=2004.03.12, % based on earlier experiments
-%D title=\FOXET,
-%D subtitle=Formatting Objects,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module is just a shortcut for:
-
-% fo = basic formatting objects
-% fe = basic formatting extensions
-% fx = extra formatting objects
-% fu = user formatting objects
-% fs = setup
-
-\usemodule[fo,fe,fx,fu,fs,mathml]
-
-\usemodule[fp] % passivetex bonus
-
-% \autoXMLnamespace[mml,mm,mathml]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-mathml.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-mathml.mkii
deleted file mode 100644
index ccb9fa05463..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-mathml.mkii
+++ /dev/null
@@ -1,28 +0,0 @@
-%D \module
-%D [ file=x-mathml,
-%D version=1999.12.20,
-%D title=\CONTEXT\ XML Modules,
-%D subtitle=Loading \MATHML\ Filters,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D We have to make sure that some basic entities are
-%D loaded:
-
-\useXMLfilter[ent]
-
-%D Then we load the math:
-
-\useXMLfilter[mml,mmp,mmc]
-
-%D And we also load the whole bunch of entities:
-
-% \useXMLfilter[mea,meb,mec,meh,men,meo,mer]
-% \useXMLfilter[mxa,mxb,mxc,mxh,mxn,mxo,mxr]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-mathml.xsd b/Master/texmf-dist/tex/context/modules/mkii/x-mathml.xsd
deleted file mode 100644
index 1c29452b06a..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-mathml.xsd
+++ /dev/null
@@ -1,11 +0,0 @@
-<?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/modules/mkii/x-newcml.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-newcml.mkii
deleted file mode 100644
index 23c2bf1e2c0..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-newcml.mkii
+++ /dev/null
@@ -1,456 +0,0 @@
-%D \module
-%D [ file=x-newmml,
-%D version=2006.04.09, % reimplementation
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=ChemML,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%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 / ChemML}
-
-\useXMLfilter[stk]
-
-\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{sign}}{\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/modules/mkii/x-newmme.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-newmme.mkii
deleted file mode 100644
index 2e0d4c18969..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-newmme.mkii
+++ /dev/null
@@ -1,423 +0,0 @@
-%D \module
-%D [ file=m-newmme,
-%D version=2005.06.10, % 1999.12.20,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=MathML Entities,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\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}}
-
-\defineXMLentity [\letterleftbrace ] {\getXMLentity{lbrace}}
-\defineXMLentity [\letterrightbrace] {\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 [|] {\myspecialnormalvert}
-\defineXMLentity [/] {/}
-\defineXMLentity [*] {\times}
-\defineXMLentity [=] {=}
-
-% \defineXMLentity [(] {(}
-% \defineXMLentity [)] {)}
-% \defineXMLentity [<] {\mathematics{<}}
-% \defineXMLentity [>] {\mathematics{>}}
-
-% \defineXMLentity [(] {\MMLleft (}
-% \defineXMLentity [)] {\MMLright)}
-
-% \defineXMLentity [{[}] {\MMLleft [}
-% \defineXMLentity [{]}] {\MMLright]}
-
-\defineXMLentity [++] {++}
-\defineXMLentity [--] {--}
-\defineXMLentity [//] {//}
-\defineXMLentity [**] {\times\times}
-\defineXMLentity [==] {==}
-\defineXMLentity [...] {\cdots}
-
-\defineXMLentity [quot] {"}
-
-\defineXMLentity [triangle] {\mathematics\triangle}
-\defineXMLentity [otimes] {\mathematics\otimes}
-\defineXMLentity [oplus] {\mathematics\oplus}
-\defineXMLentity [cup] {\mathematics\cup}
-\defineXMLentity [cap] {\mathematics\cap}
-\defineXMLentity [sdot] {\mathematics\cdot}
-\defineXMLentity [dot] {\mathematics\cdot}
-\defineXMLentity [sim] {\mathematics\sim}
-\defineXMLentity [circ] {\mathematics\circ}
-\defineXMLentity [dagger] {\mathematics\dagger}
-\defineXMLentity [cdots] {\mathematics\cdots}
-
-\defineXMLentity [...] {\getXMLentity{cdots}}
-\defineXMLentity [continued] {\getXMLentity{cdots}}
-
-\defineXMLentity [sub] {\getXMLentity{subset}}
-\defineXMLentity [sube] {\getXMLentity{prsubset}}
-\defineXMLentity [notprsubset] {\getXMLentity{notprsubset}}
-
-\defineXMLentity [ndash] {\endash}
-\defineXMLentity [mdash] {\emdash}
-
-\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/modules/mkii/x-newmml.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-newmml.mkii
deleted file mode 100644
index e777edca11c..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-newmml.mkii
+++ /dev/null
@@ -1,2744 +0,0 @@
-%D \module
-%D [ file=x-newmml,
-%D version=2005.06.10, % 1999.12.20,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=MathML,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Remark: from now on this is a module and no longer an xtag
-%D filter. In due time it will replace the older renderer (which
-%D we will keep around for sentimental reasons). This variant has
-%D no namespace support yet, but eventually we will use a \MKIV\
-%D version.
-
-\useXMLfilter[stk]
-
-\ifx\inlinemathematics\undefined
- \def\inlinemathematics {\dontleavehmode\mathematics} % already in kernel
- \long\def\inlinemath #1{\dontleavehmode\relax\ifmmode#1\else $#1$\fi}
-\fi
-
-% \defineXMLentity[x000AF]{\normalorfiller{x}\hrulefill}
-% CHECK FOR: \xmlrent
-% \enablemathpunctuation
-
-%D Then we start defining the rendering macros:
-
-\writestatus{loading}{ConTeXt XML Macros / MathML}
-
-\startmodule [mathml]
-
-%D First we load the entities:
-
-\usemodule[newmme]
-
-% \setupmodule[a=c]
-% \setupmodule[a=c]
-
-\unprotect
-
-\def\MMLrm{\mr}
-
-\def\MMLseparator#1{{#1}} % nils space after separator
-
-%D First we define some general formula elements.
-
-\defineXMLenvironment [formula] [label=,sublabel=]
- {\dostartXMLformula\placeformula}
- {\dostopXMLformula}
-
-\defineXMLenvironment [subformula] [label=,sublabel=]
- {\dostartXMLformula\placesubformula}
- {\dostopXMLformula}
-
-\def\dostartXMLformula#1%
- {\doifelsenothingXMLop{label}
- {\startformula}
- {\expanded{#1[\XMLop{label}]{\XMLop{sublabel}}}\startformula}}
-
-\def\dostopXMLformula
- {\stopformula}
-
-%D Since I only had the draft of MathML 2 as example of
-%D rendering, there are probably a lot of omissions and
-%D misinterpretations. At least I learned some bits and
-%D pieces of math rendering.
-%D
-%D The main complications were not so much the math, but to
-%D find the most efficient way to handle elements without
-%D spacing beging messed up. The first implementation was
-%D aimed at getting reasonable output, this second
-%D implementation is already better in terms of handling
-%D nesting, and I will definitely need a third one that has
-%D more efficient and less ugly code.
-%D
-%D The \TEX\ part is not that complicated and once the
-%D preprocessor was okay, the rest way just a lot of keying
-%D and testing. It all comes down to gobbling, redefining,
-%D and not so much to parsing.
-%D
-%D The second implementation expanded the whole math sequence
-%D into an internal \TEX\ representation. This is a rather clean
-%D and fast process. Filtering and testing takes place by
-%D redefining the internal representation macros.
-%D
-%D The third implementation may look a bit more messy in some
-%D respects. This is because in \TEX\ it's not that trivial to
-%D implement a tree handler. We use a stack for the \type {apply}
-%D element and other sequential content. Occasionally we need to
-%D peek into child elements which involves messy code. This
-%D implementation is closer to the normal \XML\ handling in
-%D \CONTEXT.
-
-%D We start with the parent elements and the option handler.
-
-\defineXMLdirective [mathml] \setupMMLappearance
-
-\defineXMLargument [math] \automathematics
-\defineXMLargument [imath] \inlinemathematics
-\defineXMLargument [dmath] \displaymathematics
-\defineXMLargument [m] \inlinemathematics
-
-%D In the styles, options can be set with:
-
-\def\setupMMLappearance[#1]{\dodoubleargument\getparameters[@@MML#1]}
-
-\def\startusingMMLarguments % optional maken
- {\begingroup
- %\expandXMLta % expand entities first
- \getXMLta}
-
-\def\stopusingMMLarguments % optional maken
- {\endgroup}
-
-\def\MMLargumentprefix{@@MML\currentXMLelement}
-
-%D We will apply inner math to all bits and pieces made up by an
-%D \type {apply}.
-
-\def\MMLmathinner
- {\ifinner \expandafter \firstofoneargument \else \expandafter \mathinner \fi}
-
-%D A few math related macros:
-
-\let\MMLctempresetlist\empty \def\setMMLcreset{\edef\MMLctempresetlist}
-
-\newcount\MMLapplydepth \def\MMLcreset{\MMLapplydepth\zerocount}
-
-% Stack handler
-
-\startXMLmapping[xmlstack:test]
-
- \defineXMLnested
- [apply]
- {\startsavingXMLelements}
- {\stopsavingXMLelements}
-
-\stopXMLmapping
-
-%D Auxiliary MathML macros: (to be generalized)
-
-\def\doifelseMMCfunction
- {\begingroup
- \XMLdoifonstackelse{fn}
- {\donetrue}
- {\XMLdoifonstackelse{apply}
- {\defXMLfirstnamedtext\ascii{apply}%
- \startsavingXMLelements % best use a substack so that we do not need to \edef
- \ascii
- \stopsavingXMLelements}
- {}%
- \XMLdoifonstackelse{fn}
- {\donetrue}
- {\defineXMLsave[ci][type=]%
- \XMLfirstnamed{ci}%
- \doifelse{\XMLpar{ci}{type}{}}{fn}
- {\donetrue}
- {\donefalse}}}%
- \ifdone
- \endgroup\expandafter\firstoftwoarguments
- \else
- \endgroup\expandafter\secondoftwoarguments
- \fi}
-
-\def\doifelseMMCfunctioninapply#1#2% grouped
- {\begingroup
- \startXMLmapping[xmlstack:test]% take fast alternative
- \getXMLstackdata{#1}%
- \expanded{\doifinsetelse{\getXMLstackname\plusone}{#2}}
- {\stopXMLmapping
- \endgroup\firstoftwoarguments }
- {\stopXMLmapping
- \endgroup\secondoftwoarguments}}
-
-\def\dodoifelseMMCfunctioninapply#1#2%
- {\startXMLmapping[xmlstack:test]% take fast alternative
- \getXMLstackdata{#1}%
- \expanded{\doifinsetelse{\getXMLstackname\plusone}{#2}}
- {\stopXMLmapping
- \firstoftwoarguments }
- {\stopXMLmapping
- \secondoftwoarguments}}
-
-%D Special features:
-
-\newtoks \@@postponedMMLactions \setfalse \somepostponedMMLactions
-
-\def\postponeMMLactions#1%
- {\global\settrue\somepostponedMMLactions
- \global\@@postponedMMLactions\expandafter{\the\@@postponedMMLactions#1}}
-
-\def\postponedMMLactions
- {\global\setfalse\somepostponedMMLactions
- \@EA\global\@EA\@@postponedMMLactions\@EA\emptytoks
- \the\@@postponedMMLactions}
-
-%D A couple of lists:
-
-\def\MMLcmainresetlist
- {times,divide,power,%
- lt,gt,eq,leq,geq,%
- in,inverse,%
- fn,%
- floor,ceiling,%
- mean,%
- selector,%
- abs,int,limit,sum,product,%
- outerproduct,innerproduct,scalarproduct}
-
-\def\MMLcfunctionlist
- {sin,arcsin,sinh,arcsinh,%
- cos,arccos,cosh,arccosh,%
- tan,arctan,tanh,arctanh,%
- cot,arccot,coth,arccoth,%
- csc,arccsc,csch,arccsch,%
- sec,arcsec,sech,arcsech,%
- ln,exp,log,%
- abs,int,limit,sum,product,%
- fn} % ?
-
-\def\MMLcconstructlist
- {diff,partialdiff,root} % apply goes wrong on 1/2 * (a_2 + b_3)
-
-% apply
-%
-%D We use inner and grouping (begin/end and no b/e) else we
-%D get problems with 1/2(1+2) and alike (todo: ask taco).
-%D
-%D The problem with apply is that we need to take care of
-%D several situations, like:
-%D
-%D \starttyping
-%D <apply> <.../> ...
-%D <apply> <fn> ...
-%D <apply> <apply> <ci> ...
-%D <apply> <apply> <fn> <ci> ...
-%D \stoptyping
-%D
-%D Because we translated version 2 of this renderer into
-%D version 3 the following definitions may be sub optimal or
-%D more complex than actually needed.
-
-\defineXMLnested % why nested? could be just an environment
- [apply]
- [open=,close=]
- {\setups{mmc:apply:start}}
- {\setups{mmc:apply:stop}}
-
-\startsetups mmc:apply:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:apply:stop
- \stopsavingXMLelements
- \MMLmathinner {
- \expanded{\doifinsetelse{\getXMLstackname\plusone}{\MMLcmainresetlist,\MMLctempresetlist}}
- \MMLcreset
- \donothing
- \ifcase\MMLapplydepth \else
- \doifXMLparelse{apply}{open} \donothing{\getXMLarguments{apply}{open="("}}% slow
- \doifXMLparelse{apply}{close}\donothing{\getXMLarguments{apply}{close=")"}}% slow
- \fi
- \doifXMLparelse{apply}{open}{\left\XMLpar{apply}{open}{}}\donothing
- \advance\MMLapplydepth\plusone
- \begingroup
- \let\MMLctempresetlist\empty
- \doifelse {\getXMLstackname\plusone} {apply} {
- % <apply> <apply> ... </apply> <ci> .. </ci> </apply>
- \doifelseMMCfunctioninapply \plusone {plus,minus} {
- % yet incomplete and rather untested
- % <apply> <apply> <minus/> <tan/> <cos/> </apply> <ci>x</ci> </apply>
- } {
- \MMLcreset
- }
- \getXMLstackdata\plusone
- \ifconditional\somepostponedMMLactions
- \postponedMMLactions
- \else
- \left(\MMLcreset\getXMLstackdata\plustwo\right)
- \fi
- } {
- \doifelse {\getXMLstackname\plusone} {fn} {
- % also postpone
- \directsetup{mmc:fn:apply}
- } {
- \doifelse {\getXMLstackname\plusone} {csymbol} {
- % also postpone
- \directsetup{mmc:csymbol:apply}
- } {
- \doifelse {\getXMLstackname\plusone} {ci} {
- \getXMLstackdata\plusone
- \ifnum\XMLstacklevel>\plusone
- \left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)
- \fi
- } {
- \getXMLstackdata\plusone
- }
- }
- }
- }
- \endgroup
- \advance\MMLapplydepth\minusone
- \directsetup{apply:flush}
- \doifXMLparelse{apply}{close}{\right\XMLpar{apply}{close}{}}\donothing
- }
- \endgroup
-\stopsetups
-
-\startsetups apply:flush
-\relax
- \ifcase\MMLapplydepth
- \ifconditional\somepostponedMMLactions
- \postponedMMLactions
- \ifx\MMLpowerelement\empty\else
- ^{\MMLcreset\MMLpowerelement\empty}
- \global\let\MMLpowerelement\empty
- \fi
- \fi
- \fi
-\stopsetups
-
-% reln
-
-\defineXMLnestedenvironmentsave [reln]
- {\writestatus{XML}{MathML element "reln" is obsolete}}
- {}
-
-% fn
-
-\startsetups mmc:fn:plusminus
- \ifnum\XMLstacklevel>\plustwo
- \MMLcreset
- \left(\expandafter\flushXMLstackwith\expandafter\plustwo\expandafter{\XMLfnoperator}\right)
- \else
- \getXMLstackdata\plustwo
- \fi
-\stopsetups
-
-\startsetups mmc:fn:minusplus
- \directsetup{mmc:fn:plusminus}
-\stopsetups
-
-\defineXMLnested
- [fn]
- {\directsetup{mmc:fn:start}}
- {\directsetup{mmc:fn:stop}}
-
-\startsetups mmc:fn:apply
- \begingroup
- \startsavingXMLelements
- \rawXMLstacktext\plusone % still on stack, no check, just fn content
- \stopsavingXMLelements
- \doifelse {\getXMLstackname\plusone} {ci} {
- \flattenXMLcontent{\getXMLstackdata\plusone}
- \doifsetupselse{mmc:fn:\flattenedXMLcontent} {
- \global\defXMLstackdata\XMLfnoperator\plusone
- \expanded{\endgroup\noexpand\directsetup{mmc:fn:\flattenedXMLcontent}}
- } {
- \endgroup
- \MMLcreset
- \getXMLstackdata\plusone
- \ifnum\XMLstacklevel>\plusone
- \getXMLentity{NegThinSpace}
- \left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)
- \fi
- }
- } {
- \endgroup
- \MMLcreset
- \getXMLstackdata\plusone
- }
-\stopsetups
-
-\startsetups mmc:fn:start
- \ifnum\XMLstacklevel>\plustwo
- \def\MMCfnleft {\left(}
- \def\MMCfnright{\right)}
- \else
- \let\MMCfnleft \relax
- \let\MMCfnright\relax
- \fi
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:fn:stop
- \stopsavingXMLelements
- \doifelse {\getXMLstackname\plusone} {ci} {
- \flattenXMLcontent{\getXMLstackdata\plusone}
- \doifsetupselse{mmc:fn:\flattenedXMLcontent} {
- \global\defXMLstackdata\XMLfnoperator\plusone
- \directsetup{mmc:fn:\flattenedXMLcontent}
- } {
- \MMLcreset
- \getXMLstackdata\plusone
- }
- \endgroup
- } {
- \doifelse {\getXMLstackname\plusone} {apply} {
- \doifelseMMCfunctioninapply \plusone {plus,minus} {
- \left(
- \getXMLstackdata\plusone
- \right)
- } {
- \getXMLstackdata\plusone
- }
- \endgroup
- \ifnum\XMLstacklevel>\plusone
- \left(
- \getXMLstackdata\plustwo
- \right)
- \fi
- } {
- \MMLcreset
- \getXMLentity{NegThinSpace}
- \MMCfnleft
- \ifnum\XMLstacklevel=\plustwo\MMLccomma\fi
- \flushXMLstackwith\plustwo\MMLccomma
- \MMCfnright
- \endgroup
- }
- }
-\stopsetups
-
-% c*
-
-\defineXMLargument [ci] [type=] {\XMLval{mmc:ci}{\XMLop{type}} {\firstofoneargument}}
-\defineXMLargument [cn] [type=,base=] {\XMLval{mmc:cn}{\XMLop{type}} {\firstofoneargument}}
-\defineXMLargument [csymbol] [encoding=text] {\XMLval{mmc:cs}{\XMLop{encoding}}{\firstofoneargument}}
-
-%D The next definition provide a kind of plug-in mechanism (see
-%D the open math extension module).
-
-\defineXMLsingular
- [csymbol]
- [encoding=text,
- definitionURL=]
- {\doifsomething{\XMLop{definitionURL}}{\directsetup{mmc:csymbol:apply}}}
-
-\startsetups mmc:csymbol:apply
- \begingroup
- \startsavingXMLelements
- \rawXMLstacktext\plusone % still on stack, no check, just attr test
- \stopsavingXMLelements
- % http://www.publishers.com/SomeName
- \lowercasestring\XMLpar{csymbol}{definitionURL}{}\to\mmcSymbolURL
- \doifsetupselse{mmc:csymbol:} {\mmcSymbolURL} {
- \expanded{\endgroup\noexpand\directsetup{mmc:csymbol:\mmcSymbolURL}}
- } {
- % SomeName (fallback)
- \splitfilename{\XMLpar{csymbol}{definitionURL}{}}
- \doifsetupselse{mmc:csymbol:\splitoffbase} {
- \expanded{\endgroup\noexpand\directsetup{mmc:csymbol:\splitoffbase}}
- } {
- \endgroup
- \XMLval{mmc:cs}{\XMLop{encoding}}{\firstofoneargument}
- }
- }
-\stopsetups
-
-%D Alternative b will convert periods into comma's:
-%D
-%D \startbuffer
-%D \startXMLdata
-%D <imath><apply><cn>1.23</cn></apply></imath>
-%D <dmath><apply><cn>1.23</cn></apply></dmath>
-%D \stopXMLdata
-%D
-%D \type{\setupMMLappearance[cn] [alternative=b]}
-%D
-%D \startXMLdata
-%D <imath><apply><cn>1.23</cn></apply></imath>
-%D <dmath><apply><cn>1.23</cn></apply></dmath>
-%D \stopXMLdata
-%D \stopbuffer
-%D
-%D \start \typebuffer \getbuffer \stop
-
-\setupMMLappearance[cn] [\c!alternative=\v!a]
-
-\defineXMLargument[cn][type=,base=]{\MMLdocn}
-
-\def\MMLdocn#1%
- {\begingroup
- \doif\@@MMLcnalternative\v!b{\redefinemathcharacter [.][ord][mi]["3B]\relax}%
- \XMLval{mmc:cn}{\XMLop{type}}{\firstofoneargument}{#1}%
- \endgroup}
-
-\defineXMLsingular [sep] {\MMLcsep} \def\MMLcsep{\,}
-
-\setupMMLappearance[polar] [\c!alternative=\v!a] % a|b|c
-\setupMMLappearance[float] [\c!symbol=\v!no] % \v!yes|dot
-\setupMMLappearance[enotation][\c!symbol=\v!no] % \v!yes|dot
-\setupMMLappearance[base] [\c!symbol=\v!numbers] % digits|characters|text|no
-
-\mapXMLvalue {mmc:ci} {set} {\MMLcCIset}
-\mapXMLvalue {mmc:ci} {vector} {\MMLcCIvector}
-\mapXMLvalue {mmc:ci} {matrix} {\MMLcCImatrix}
-\mapXMLvalue {mmc:ci} {function} {\MMLcCIfunction}
-\mapXMLvalue {mmc:ci} {complex-cartesian} {\MMLccartesian}
-\mapXMLvalue {mmc:ci} {complex} {\MMLccartesian}
-\mapXMLvalue {mmc:ci} {complex-polar} {\MMLcpolar}
-\mapXMLvalue {mmc:ci} {polar} {\MMLcpolar}
-\mapXMLvalue {mmc:ci} {fn} {\MMLcCIfunction}
-
-\mapXMLvalue {mmc:cn} {integer} {\MMLcCNinteger}
-\mapXMLvalue {mmc:cn} {logical} {\MMLcCNlogical}
-\mapXMLvalue {mmc:cn} {rational} {\MMLcCNrational}
-\mapXMLvalue {mmc:cn} {complex-cartesian} {\MMLccartesian}
-\mapXMLvalue {mmc:cn} {complex} {\MMLccartesian}
-\mapXMLvalue {mmc:cn} {complex-polar} {\MMLcpolar}
-\mapXMLvalue {mmc:cn} {polar} {\MMLcpolar}
-\mapXMLvalue {mmc:cn} {e-notation} {\MMLcenotation} % new
-\mapXMLvalue {mmc:cn} {float} {\MMLcfloat} % obsolete
-\mapXMLvalue {mmc:cn} {real} {\MMLcfloat}
-
-\mapXMLvalue {mmc:cs} {text} {\MMLcCStext}
-
-\def\MMLcpolar#1%
- {\doifdefinedelse{MMLcdopolar\@@MMLpolaralternative}
- {\getvalue{MMLcdopolar\@@MMLpolaralternative}{#1}}
- {#1}}
-
-\def\MMLcdopolara#1%
- {\def\MMLcsep{\MMLseparator,}\getXMLentity{polar}\left(#1\right)}
-
-\def\MMLcdopolarb#1%
- {\def\MMLcsep##1\empty
- {\getXMLentity{exponentiale}^{##1\mskip2mu\getXMLentity{imaginaryi}}}
- #1\empty}
-
-\def\MMLcdopolarc#1%
- {\def\MMLcsep##1\empty
- {\getXMLentity{exp}\left(##1\mskip2mu\getXMLentity{imaginaryi}\right)}%
- #1\empty}
-
-\def\MMLccartesian#1%
- {\def\MMLcsep{+}#1\getXMLentity{imaginaryi}}
-
-% float will be obsolete, and is replace by e-notation
-
-\def\MMLcfloat#1%
- {\doifelse\@@MMLfloatsymbol\v!no
-% {{\MMLrm#1}}% make sure that e shows up ok
- {\mfunction{#1}}% make sure that e shows up ok
- {% we should ignore \entities !
- \beforesplitstring#1\at e\to\first
- \aftersplitstring #1\at e\to\last
- \ifx\first\empty #1\else
- \ifx\last \empty #1\else
- \first
- \doifelse\@@MMLfloatsymbol{dot}\cdot\times
- 10^{\last}%
- \fi\fi}}
-
-% we now have:
-
-\def\MMLcenotation#1%
- {\doifelse\@@MMLenotationsymbol\v!no
-% {\def\MMLcsep {\unskip{\MMLrm e}\ignorespaces}}
- {\def\MMLcsep {\unskip\mfunction{e}\ignorespaces}}
- {\def\MMLcsep##1\empty{\doifelse\@@MMLenotationsymbol{dot}\cdot\times10^{##1}}}%
- #1\empty}
-
-\def\MMLcCIset#1%
- {{\bbd#1}}
-
-\def\widevec#1%
- {\vbox{\mathsurround\zeropoint\ialign{##\crcr
- \rightarrowfill\crcr\noalign{\nointerlineskip}%
- $\hfil\displaystyle{#1}\hfil$\crcr}}}
-
-\def\MMLcCIvector#1%
- {\widevec{#1}}
-
-\def\MMLcCImatrix#1%
- {{\bi#1}}
-
-\def\MMLcCIfunction#1%
- {#1\getXMLentity{NegThinSpace}}
-
-\def\MMLcCNinteger#1%
- {\doifXMLparelse{cn}{base}
- {\def\MMLcCNbase{\XMLpar{cn}{base}{}}%
- \doifelse\@@MMLbasesymbol\v!no
- {\MMLcCNbasedata{#1}}
-% {\MMLcCNbasedata{#1}_{\hbox{$\MMLrm\scriptscriptstyle
- {\MMLcCNbasedata{#1}_{\mfunction{%
- \processaction
- [\@@MMLbasesymbol]
- [\v!characters=>\MMLcCNbasestring BODH,
- \v!text=>\MMLcCNbasestring{BIN}{OCT}{DEC}{HEX},
-% \s!unknown=>\MMLcCNbase]$}}}}
- \s!unknown=>\MMLcCNbase]}}}}
- {#1}}
-
-\def\MMLcCNbasedata#1%
-% {\ifnum\MMLcCNbase>10{\MMLrm#1}\else#1\fi}
- {\ifnum\MMLcCNbase>10\mfunction{#1}\else#1\fi}
-
-\def\MMLcCNbasestring#1#2#3#4%
- {\ifnum\MMLcCNbase= 2 #1\else
- \ifnum\MMLcCNbase= 8 #2\else
- \ifnum\MMLcCNbase=10 #3\else
- \ifnum\MMLcCNbase=16 #4\else
- \MMLcCNbase \fi\fi\fi\fi}
-
-\def\MMLcCNlogical#1%
-% {{\MMLrm#1}}
- {\mfunction{#1}}
-
-\bgroup \catcode`\<=\active
-
- % quick and dirty, best track the stack (todo)
-
- \gdef\MMLcCNrational#1%
- {\ConvertConstantAfter\doifinstringelse{sep}{#1}
- {\doMMLcCNrational#1\empty}
- {#1}}
-
- \gdef\doMMLcCNrational#1<sep#2>#3\empty
- {\hbox{$\frac{#1}{#3}$}}
-
-\egroup
-
-\def\MMLcCStext#1%
-% {{\MMLrm#1}}
- {\mfunction{#1}}
-
-% interval
-
-\defineXMLnested [interval]
- [closure=closed]
- {\directsetup{mmc:interval:start}}
- {\directsetup{mmc:interval:stop}}
-
-\startsetups mmc:interval:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:interval:stop
- \stopsavingXMLelements
- \XMLval{mmc:int}{\XMLpar{interval}{closure}{closed}}{error}
- \endgroup
-\stopsetups
-
-\startsetups mmc:interval:fetch
- \defineXMLnested [interval]
- [closure=closed]
- {\directsetup{mmc:interval:fetch:start}}
- {\directsetup{mmc:interval:fetch:stop}}
-\stopsetups
-
-\startsetups mmc:interval:fetch:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:interval:fetch:stop
- \stopsavingXMLelements
- \globallet\MMCintervalfrom\empty
- \globallet\MMCintervalto \empty
- \ifcase\XMLstacklevel
- \or
- \xdef\MMCintervalfrom{\getXMLstackdata\plusone}
- \or
- \xdef\MMCintervalfrom{\getXMLstackdata\plusone}
- \xdef\MMCintervalto {\getXMLstackdata\plustwo}
- \fi
- \endgroup
-\stopsetups
-
-\setupMMLappearance[interval][\c!alternative=\v!a,\c!separator={,}]
-
-\mapXMLvalue {mmc:int} {closed}
- {\left[\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right]}
-
-\mapXMLvalue {mmc:int} {open-closed}
- {\doifelse\@@MMLintervalalternative\v!b
- {\left<\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right]}
- {\left(\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right]}}
-
-\mapXMLvalue {mmc:int} {closed-open}
- {\doifelse\@@MMLintervalalternative\v!b
- {\left[\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right>}
- {\left[\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right)}}
-
-\mapXMLvalue {mmc:int} {open}
- {\doifelse\@@MMLintervalalternative\v!b
- {\left<\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right>}
- {\left(\getXMLstackdata\plusone\MMLseparator\@@MMLintervalseparator\getXMLstackdata\plustwo\right)}}
-
-% inverse
-
-\defineXMLcommand [inverse] {\directsetup{mmc:inverse}}
-
-\startsetups mmc:inverse
- \ifnum\XMLstacklevel>\plustwo
- \getXMLentity{\getXMLstackname\plustwo}^{-1}
- \left[\getXMLstackdata\plusthree\right]
- \else
- \xdef\MMLpowerelement{-1}
- \expanded{\postponeMMLactions{\rawXMLstackdata\plustwo}}
- \eraseXMLdataonstack\plustwo
- \fi
-\stopsetups
-
-% condition
-
-\defineXMLnested
- [condition]
- {\directsetup{mmc:condition:start}}
- {\directsetup{mmc:condition:stop}}
-
-\startsetups mmc:condition:start
-% \XMLdoifonstackelse{bvar} {
-% \XMLfirstnamed{bvar}\mid
-% } { }
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:condition:stop
- \stopsavingXMLelements
- \flushXMLstackfrom\plusone
- \endgroup
-\stopsetups
-
-% declare
-
-\setupMMLappearance[declare][\c!state=\v!start]
-
-\defineXMLnested
- [declare]
- {\directsetup{mmc:declare:start}}
- {\directsetup{mmc:declare:stop}}
-
-\startsetups mmc:declare:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:declare:stop
- \stopsavingXMLelements
- \doif\@@MMLdeclarestate\v!start {
- \getXMLentity{declare}\getXMLstackdata\plusone
- \ifnum\XMLstacklevel>\plusone
- \getXMLentity{ThickSpace}
- \getXMLentity{as}
- \getXMLentity{ThickSpace}
- \fi
- \getXMLstackdata\plustwo
- }
- \endgroup
-\stopsetups
-
-% lambda
-
-\setupMMLappearance[lambda][\c!alternative=b]
-
-\defineXMLnested
- [lambda]
- {\directsetup{mmc:lambda:start}}
- {\directsetup{mmc:lambda:stop}}
-
-\startsetups mmc:lambda:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:lambda:stop
- \stopsavingXMLelements
- \doifelse\@@MMLlambdaalternative\v!a {
- \getXMLentity{lambda}(\flushXMLstackwith\plusone{\MMLseparator,})
- } {
- \countXMLnamedstack{bvar}
- \ifnum\scratchcounter>\plusone
- \left(\flushXMLnamedstackwith\plusone{bvar}{\MMLseparator,}\right)
- \else
- \XMLfirstnamed{bvar}
- \fi
- \getXMLentity{mapsto}
- \MMLcreset
- \XMLfirstnamed{apply,reln,ci,cn}
- }
- \endgroup
-\stopsetups
-
-\startsetups mmc:lambda:simple
- \defineXMLnested
- [lambda]
- {\directsetup{mmc:lambda:simple:start}}
- {\directsetup{mmc:lambda:simple:stop}}
-\stopsetups
-
-\startsetups mmc:lambda:simple:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:lambda:simple:stop
- \stopsavingXMLelements
- \MMLcreset % new
- \XMLfirstnamed{apply}
- \endgroup
-\stopsetups
-
-% compose
-
-\defineXMLcommand [compose] {\directsetup{mmc:compose}}
-
-\startsetups mmc:compose
- \begingroup
- \MMLcreset
- \let\MMLcCIfunction\firstofoneargument % brrr
- \doifelseMMCfunction {
- \left(\flushXMLstackwith\plustwo\circ\right)
- } {
- \flushXMLstackwith\plustwo\circ
- }
- \endgroup
-\stopsetups
-
-\defineXMLcommand [image] {\directsetup{mmc:image}}
-
-\startsetups mmc:image
- \getXMLentity{image}
- \left(
- \begingroup
- \startlocalsetups [mmc:function]
- \getXMLentity\currentXMLelement
- \stoplocalsetups
- \getXMLstackdata\plustwo
- \endgroup
- \right)
-\stopsetups
-
-\setupMMLappearance[piece][\c!separator=]
-
-\def\setMMLcPIECEseparator
- {\processaction
- [\@@MMLpieceseparator]
- [ \v!yes=>\def\theMMLpieceseparator{,\@col@amp@},
- \v!no=>\let\theMMLpieceseparator\@col@amp@,
- \s!default=>\let\theMMLpieceseparator\@col@amp@,
- \s!unknown=>\def\theMMLpieceseparator{\,\,\hbox{\@@MMLpieceseparator}\,\,}]}
-
-\defineXMLargument[piecewise] {\cases}
-
-\defineXMLnested
- [piece]
- {\directsetup{mmc:piece:start}}
- {\directsetup{mmc:piece:stop}}
-
-\defineXMLenvironmentsave
- [otherwise]
- {}
- {\directsetup{mmc:otherwise}}
-
-\startsetups mmc:piece:start
- \startsavingXMLelements
- \setMMLcPIECEseparator
-\stopsetups
-
-\startsetups mmc:piece:stop
- \stopsavingXMLelements
- \edef\ascii{\getXMLstackdata\plusone}
- \@EA\XMLRtoks\@EA{\ascii\theMMLpieceseparator}
- \edef\ascii{\getXMLstackdata\plustwo}
- \@EA\appendtoks\@EA\mathematics\@EA{\ascii}\to\XMLRtoks
- \the\XMLRtoks\crcr
-\stopsetups
-
-\startsetups mmc:otherwise
- \XMLflush{otherwise}\MMLcPIECEseparator\@col@amp@\mathematics{\getXMLentity{otherwise}}\crcr
-\stopsetups
-
-\defineXMLcommand [quotient] {\directsetup{mmc:quotient}}
-
-\startsetups mmc:quotient
- \lfloor\getXMLstackdata\plustwo/\getXMLstackdata\plusthree\rfloor
-\stopsetups
-
-\defineXMLcommand [factorial] {\getXMLstackdata\plustwo !}
-
-\defineXMLcommand [divide] [\MMLargumentprefix] [] {\directsetup{mmc:divide}} % brr not nested
-
-\setupMMLappearance [divide] [\c!level=\!!maxcard,\c!alternative=\v!a]
-
-\startsetups mmc:divide
- \startusingMMLarguments
- \increment\MMLcDIVIDElevel
- \doifelse \@@MMLdividealternative\v!b {
- \getXMLstackdata\plustwo/\getXMLstackdata\plusthree
- } {
- \ifnum\MMLcDIVIDElevel>\@@MMLdividelevel\space
- \getXMLstackdata\plustwo/\getXMLstackdata\plusthree
- \else
- \MMLcreset
- \frac{\MMLcreset\getXMLstackdata\plustwo}{\MMLcreset\getXMLstackdata\plusthree}%
- \fi
- }
- \decrement\MMLcDIVIDElevel
- \stopusingMMLarguments
-\stopsetups
-
-% min max
-
-\defineXMLcommand [min] {\min\directsetup{mmc:minmax}}
-\defineXMLcommand [max] {\max\directsetup{mmc:minmax}}
-
-\startsetups mmc:minmax
- \doifelse{\getXMLstackdata\plustwo}{bvar} {
- {}_{\getXMLstackdata\plustwo}
- \left\{\flushXMLstackwith\plusthree{\MMLseparator,}\right\}
- } {
- \left\{\flushXMLstackwith\plustwo {\MMLseparator,}\right\}
- }
-\stopsetups
-
-% minus plus
-
-\defineXMLcommand [minus] {\directsetup{mmc:minus}}
-\defineXMLcommand [plus] [\MMLargumentprefix] [] {\directsetup{mmc:plus}}
-
-\setupMMLappearance [plus] [\c!alternative=\v!a] % b = no sign -> 3 1/4
-\setupMMLappearance [sign] [\c!reduction=\v!yes]
-
-\startsetups mmc:minus
- \doif \@@MMLsignreduction \v!yes {
- \setMMLcreset{fn,\MMLcfunctionlist}
- }
- \ifcase\XMLstacklevel
- \or
- % self
- \or
- -\getXMLstackdata\plustwo
- \else
- \flushXMLstackwith\plustwo-
- \fi
-\stopsetups
-
-\startsetups mmc:plus
- \startusingMMLarguments
- \doifelse \@@MMLsignreduction \v!yes {
- \setMMLcreset{fn,plus,minus,\MMLcfunctionlist,\MMLcconstructlist}% was plus/, minus/
- \doifelse{\getXMLstackname\plustwo} {apply} {
- % branch needed, else (a-b) + (c-d) goes wrong
- % reset check in case of (-x) + 37
- \begingroup
- \dodoifelseMMCfunctioninapply \plustwo {minus} {
- \ifnum\XMLstacklevel>\plustwo
- \endgroup
- \else
- \endgroup
- \MMLcreset
- \fi
- } {
- \endgroup
- }
- \doifelse \@@MMLplusalternative \v!b {
- \getXMLstackdata\plustwo \,
- } {
- \flushXMLstackwith\plustwo +
- }
-
- } {
- \flushXMLstackwith\plustwo {
- \doifelse {\getXMLstackname\recurselevel} {apply} {
- \begingroup
- \dodoifelseMMCfunctioninapply \recurselevel {minus} {
- \ifnum\XMLstacklevel>\plustwo +\fi
- } {
- \doifelse \@@MMLplusalternative \v!b {
- \, % maybe 2 1/3
- } {
- +
- }
- }
- \endgroup
- \MMLcreset
- } {
- +
- }
- }
- }
- } {
- \ifcase\XMLstacklevel
- \or
- % self
- \or
- +\getXMLstackdata\plustwo
- \else
- \flushXMLstackwith\plustwo+
- \fi
- }
- \stopusingMMLarguments
-\stopsetups
-
-% power
-
-\defineXMLcommand [power] {\directsetup{mmc:power}}
-
-\setupMMLappearance[power][\c!reduction=\v!yes]
-
-\let\MMLpowerelement\empty
-
-\startsetups mmc:power
- \doifelse {\getXMLstackname\plustwo} {apply} {
- \doifelse\@@MMLpowerreduction\v!yes {
- \doifelseMMCfunctioninapply \plustwo \MMLcfunctionlist {
- \xdef\MMLpowerelement{\getXMLstackdata\plusthree}% postpone
- \MMLcreset\getXMLstackdata\plustwo
- } {
- \left(\MMLcreset\getXMLstackdata\plustwo\right)^{\MMLcreset\getXMLstackdata\plusthree}
- }
- } {
- \left(\MMLcreset\getXMLstackdata\plustwo\right)^{\MMLcreset\getXMLstackdata\plusthree}
- }
- } {
- \getXMLstackdata\plustwo^{\MMLcreset\getXMLstackdata\plusthree}
- }
-\stopsetups
-
-% rem
-
-\defineXMLcommand [rem] {\flushXMLstackwith\plustwo{\getXMLentity{mod}}}
-
-\setupMMLappearance [times] [\c!symbol=\v!no,\c!auto=\v!yes] % new, auto catches cn cn cn
-
-\defineXMLcommand [times] [\MMLargumentprefix] [] {\directsetup{mmc:times}}
-
-\startsetups mmc:times
- \startusingMMLarguments
- \setMMLcreset{\MMLcfunctionlist,\MMLcconstructlist}%
- \doifelse\@@MMLtimesauto\v!no {
- \let\@@MMLtimes@@symbol\@@MMLtimessymbol
- } {
- \countXMLnamedstack {cn}
- \ifnum\scratchcounter>\plusone
- \doifinsetelse\@@MMLtimessymbol{\v!yes,\v!no} {
- \let\@@MMLtimes@@symbol\v!yes
- } {
- \let\@@MMLtimes@@symbol\@@MMLtimessymbol
- }
- \else
- \let\@@MMLtimes@@symbol\@@MMLtimessymbol
- \fi
- }
- \doifelse\@@MMLtimes@@symbol\v!yes {
- \flushXMLstackwith\plustwo\times
- } {
- \doifelse\@@MMLtimes@@symbol{dot} {
- \flushXMLstackwith\plustwo\cdot
- } {
- \doifelse\@@MMLtimes@@symbol{times} {
- \flushXMLstackwith\plustwo\times
- } {
- \flushXMLstackwith\plustwo\empty
- }
- }
- }
- \stopusingMMLarguments
-\stopsetups
-
-\defineXMLcommand [root] {\directsetup{mmc:root}}
-
-\setupMMLappearance[root][\c!symbol=\v!yes]
-
-\startsetups mmc:root
- \XMLdoifonstackelse {degree} {
- \root
- \doifnot\@@MMLrootsymbol\v!no{\MMLcreset\XMLfirstnamed{degree}}
- \of
- } {
- \sqrt
- }
- {\MMLcreset\XMLfirstnamed{apply,reln,ci,cn}}
-\stopsetups
-
-% gcd
-
-\defineXMLcommand [gcd] {\gcd\left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)}
-
-% and or xor implies
-
-\defineXMLcommand [and] {\flushXMLstackwith\plustwo{\getXMLentity{and}}}
-\defineXMLcommand [or] {\flushXMLstackwith\plustwo{\getXMLentity{or}}}
-\defineXMLcommand [xor] {\flushXMLstackwith\plustwo{\getXMLentity{xor}}}
-\defineXMLcommand [implies] {\flushXMLstackwith\plustwo{\getXMLentity{implies}}}
-
-% not
-
-\defineXMLcommand [not] {\getXMLentity{not}\getXMLstackdata\plustwo}
-
-% forall exists
-
-\defineXMLcommand [forall] {\directsetup{mmc:forall}}
-\defineXMLcommand [exists] {\directsetup{mmc:exists}}
-
-%D We need to shift left below rotated A.
-
-\startsetups mmc:forall
- \getXMLentity{forall}
- \getXMLentity{NegThinSpace}
- \directsetup{mmc:forall-exists}
-\stopsetups
-
-\startsetups mmc:exists
- \getXMLentity{exists}
- \directsetup{mmc:forall-exists}
-\stopsetups
-
-\startsetups mmc:forall-exists
- _{\flushXMLnamedstackwith\plustwo{bvar}{\MMLseparator,}}
- \XMLdoifonstackelse {condition} {
- \getXMLentity{ThickSpace}
- \begingroup
- \XMLfirstnamed{condition}
- \endgroup
- \countXMLnamedstack {apply,reln,ci,cn}
- \ifcase\scratchcounter
- \or
- % == snelle volgende
- \left\vert \MMLcreset
- \getXMLentity{MediumSpace}
- \flushXMLnamedstackwith\plustwo{apply,reln,ci,cn}\empty
- \right.
- \else
- % special case
- % \defineXMLignore[condition]
- \collectXMLnamedstack{apply,reln,ci,cn}{\hfill\crcr}
- \left\vert
- \matrix{\the\XMLRtoks}
- \right.
- \fi
- } {
- :\XMLfirstnamed{apply,reln,ci,cn}
- }
-\stopsetups
-
-\defineXMLcommand [abs] {\left\vert \MMLcreset \flushXMLstackfrom\plustwo \right\vert}
-\defineXMLcommand [conjugate] {{\overline{\MMLcreset \flushXMLstackfrom\plustwo}}} % watch extra {}
-\defineXMLcommand [arg] {\getXMLentity{arg} \left(\MMLcreset\flushXMLstackfrom\plustwo\right)}
-\defineXMLcommand [real] {\getXMLentity{real} \left(\MMLcreset\flushXMLstackfrom\plustwo\right)}
-\defineXMLcommand [imaginary] {\getXMLentity{imaginary}\left(\MMLcreset\flushXMLstackfrom\plustwo\right)}
-\defineXMLcommand [lcm] {\getXMLentity{lcm} \left(\flushXMLstackwith\plustwo{\MMLseparator,}\right)}
-\defineXMLcommand [floor] {\getXMLentity{lfloor} \flushXMLstackfrom\plustwo \getXMLentity{rfloor}}
-\defineXMLcommand [ceiling] {\getXMLentity{lceiling} \flushXMLstackfrom\plustwo \getXMLentity{rceiling}}
-
-% relations
-
-\defineXMLcommand [eq] [\MMLargumentprefix] [\c!align=] {\MMLcrelation=}
-\defineXMLcommand [neq] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\neq}
-\defineXMLcommand [gt] [\MMLargumentprefix] [\c!align=] {\MMLcrelation>}
-\defineXMLcommand [lt] [\MMLargumentprefix] [\c!align=] {\MMLcrelation<}
-\defineXMLcommand [geq] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\geq}
-\defineXMLcommand [leq] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\leq}
-\defineXMLcommand [equivalent] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\equiv}
-\defineXMLcommand [approx] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\approx}
-\defineXMLcommand [factorof] [\MMLargumentprefix] [\c!align=] {\MMLcrelation\mid}
-
-\setupMMLappearance[relation][\c!align=\v!no]
-
-\def\MMLcrelation
- {\startusingMMLarguments
- \MMLcreset
- \edef\@@MMLrelationalign{\executeifdefined{\MMLargumentprefix\c!align}\@@MMLrelationalign}%
- \processaction
- [\@@MMLrelationalign]
- [\v!last=>\let\next\lastMMLcrelation ,
- \v!first=>\let\next\firstMMLcrelation,
- \v!yes=>\let\next\leftMMLcrelation ,
- \v!left=>\let\next\leftMMLcrelation ,
- \v!right=>\let\next\rightMMLcrelation,
- \s!default=>\let\next\noMMLcrelation ,
- \s!unknown=>\let\next\noMMLcrelation ]
- \next}
-
-\def\noMMLcrelation#1%
- {\flushXMLstackwith\plustwo{#1}
- \stopusingMMLarguments}
-
-\def\lastMMLcrelation#1% weird, probably bugged
- {\XMLRtoks\emptytoks
- \dostepwiserecurse\plustwo\XMLstacklevel\plusone
- {\appendetoks\noexpand\getXMLstackdata{\recurselevel}\to\XMLRtoks
- \ifnum\recurselevel<\numexpr\XMLstacklevel-1\relax
- \appendtoks\@col@amp@#1\crcr\to\XMLRtoks
- \else\ifnum\recurselevel=\numexpr\XMLstacklevel-1\relax
- \appendtoks\@col@amp@#1\to\XMLRtoks
- \fi\fi}%
- \eqalign{\the\XMLRtoks\crcr}%
- \stopusingMMLarguments}
-
-\def\firstMMLcrelation#1%
- {\collectXMLstackrows\plusthree{\crcr\@col@amp@#1}%
- \eqalign{\getXMLstackdata\plustwo\@col@amp@#1\the\XMLRtoks}%
- \stopusingMMLarguments}
-
-\def\leftMMLcrelation#1%
- {\collectXMLstackrows\plustwo{\@col@amp@#1\crcr}%
- \eqalign{\the\XMLRtoks}%
- \stopusingMMLarguments}
-
-\def\rightMMLcrelation#1%
- {\collectXMLstackrows\plustwo{\crcr#1{}\@col@amp@}%
- \eqalign{\@col@amp@\the\XMLRtoks\crcr}%
- \stopusingMMLarguments}
-
-\defineXMLcommand [becomes] {\MMLcrelation{:=}}
-
-\addtocommalist{becomes/}\MMLcmainresetlist
-
-% calculus and vector calculus
-
-\setupMMLappearance[int][\c!location=\v!top]
-
-\def\doMMLlimits#1%
- {\doifelsevalue{@@MML#1\c!location}\v!top\limits\nolimits}
-
-\defineXMLnested
- [domainofapplication]
- {\directsetup{mmc:domainofapplication:start}}
- {\directsetup{mmc:domainofapplication:stop}}
-
-\startsetups mmc:domainofapplication:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:domainofapplication:stop
- \stopsavingXMLelements
-% \MMLcreset
- \flushXMLstackfrom\plusone
- \endgroup
-\stopsetups
-
-\defineXMLcommand [int] {\directsetup{mmc:int}}
-
-\startsetups mmc:int
- \MMLcreset
- \XMLdoifonstackelse{domainofapplication} {
- \int\doMMLlimits{int}_{\XMLfirstnamed{domainofapplication}}\relax
- } {
- \XMLdoifonstackelse{condition} {
- \int\doMMLlimits{int}_{\XMLfirstnamed{condition}}\relax
- } {
- \XMLdoifonstackelse{lowlimit} {
- \int\doMMLlimits{int}
- _{\XMLfirstnamed{lowlimit}}
- ^{\XMLfirstnamed{uplimit}}
- } {
- % funny, why do we have lowlimit/uplimit then
- \XMLdoifonstackelse{interval} {
- \begingroup
- \startlocalsetups mmc:interval:start %
- \begingroup
- \startsavingXMLelements
- \stoplocalsetups
- \startlocalsetups mmc:interval:stop %
- \stopsavingXMLelements
- \xdef\MMLfirstelement {\getXMLstackdata\plusone}
- \xdef\MMLsecondelement{\getXMLstackdata\plustwo}
- \endgroup
- \stoplocalsetups
- \globallet\MMLfirstelement \empty
- \globallet\MMLsecondelement\empty
- \XMLfirstnamed{interval}
- \endgroup
- \int\doMMLlimits{int}
- _{\MMLfirstelement}
- ^{\MMLsecondelement}
- } {
- \int
- }
- }
- }
- }
- \MMLcreset
- \XMLdoifonstackelse{apply} {
- \doifelseMMCfunction {
- \XMLfirstnamed{apply}
- } {
- % if there are too many () now, we need to be more clever
- \left(\XMLfirstnamed{apply}\right)
- }
- } {
- \XMLfirstnamed{ci}
- }
- \XMLdoifonstackelse{bvar} {
- \,% \getXMLentity{ThinSpace}%
-% {\MMLrm\getXMLentity{mathematicald}}
- \mfunction{\getXMLentity{mathematicald}}
- \XMLfirstnamed{bvar}
- } {
- % nothing
- }
-\stopsetups
-
-\setupMMLappearance[diff][\c!location=\v!top,\c!alternative=\v!a]
-
-\defineXMLcommand [diff] {\directsetup{mmc:diff}}
-\defineXMLcommand [partialdiff] {\directsetup{mmc:partialdiff}}
-
-% \setupMMLappearance[diff][alternative=b]
-%
-% \startXMLdata
-% <math><apply><apply><diff/><bvar><ci>x</ci></bvar><ci>f</ci></apply><ci>a</ci></apply></math>
-% <math><apply><apply><diff/><bvar><ci>x</ci></bvar><degree>2</degree><ci>f</ci></apply><ci>a</ci></apply></math>
-% \stopXMLdata
-
-% d^y/dx^2
-%
-% \startXMLdata
-% <math><apply><diff/>
-% <bvar><ci>x</ci><cn type="integer">2</cn></bvar>
-% <lambda><bvar><ci>x</ci></bvar><ci>y</ci></lambda>
-% </apply></math>
-% \stopXMLdata
-
-\startsetups mmc:diff
- \MMLcreset
- \doifelse\@@MMLdiffalternative\v!a {
- \XMLdoifonstackelse{lambda} {
- % a special case (mathadore/openmath)
- \begingroup
- \defineXMLsave[ci]
- \defineXMLsave[cn]
- \defineXMLprocess[lambda]
- \defineXMLprocess[bvar]
- \frac {
- d^{\XMLfirstnamed{bvar}\XMLflush{cn}}{\XMLfirstnamed{lambda}\XMLflush{ci}}
- } {
- d{\XMLfirstnamed{bvar}\XMLflush{ci}}^{\XMLfirstnamed{bvar}\XMLflush{cn}}
- }
- \endgroup
- } {
- \XMLdoifonstackelse{bvar} {
- \frac {
- \XMLdoifonstackelse{degree} {
- \collectXMLnamedstack{degree}\empty
- } {
- \collectXMLnamedstacknamed{bvar}{degree}+
- }
- \mfunction{\getXMLentity{mathematicald}}
- ^{\the\XMLRtoks}
- \doif\@@MMLdifflocation\v!top {
- \XMLdoifonstackelse{ci} {
- \XMLfirstnamed{ci}
- } {
- \MMLcreset\XMLfirstnamed{apply}
- }
- }
- } {
- \mfunction{\getXMLentity{mathematicald}}
- \begingroup
- \defineXMLsave[degree]
- \XMLfirstnamed{bvar}
- \doifXMLdata{degree} {
- ^{\XMLflush{degree}}
- }
- \endgroup
- }
- \doifnot\@@MMLdifflocation\v!top {
- \left(\MMLcreset\XMLfirstnamed{apply,ci}\right)
- }
- } {
- \flushXMLstackfrom\plustwo^\prime
- }
- }
- } {
- \MMLcreset
- \XMLfirstnamed{apply,ci}
- % there can be problems with nested diff's: ^^{} error
- % so we add an empty group here
- {}^
- {
- \XMLdoifonstackelse{degree} {
- \defXMLfirstnamedtext\ascii{degree}
- \dorecurse\ascii\prime
- } {
- \prime
- }
- }
- }
-\stopsetups
-
-\startsetups mmc:partialdiff
- \XMLdoifonstackelse{list} {
- \getXMLentity{capitaldifferentiald}_{
- \begingroup
- \setfalse\MMLlistdelimiters
- \XMLallnamed{list}
- \endgroup
- }
- \XMLfirstnamed{apply,reln,ci,cn}
- } {
- \XMLdoifonstackelse{bvar} {
- \frac {
- \XMLdoifonstackelse{degree} {
- \collectXMLnamedstack{degree}\empty
- } {
- \collectXMLnamedstacknamed{bvar}{degree}+
- }
- \getXMLentity{differentiald}^{\the\XMLRtoks}
- % \let\MMLcDEGREE\gobbletwoarguments
- % \doifelseMMCfunction\MMLcreset\donothing
- \MMLcreset
- \XMLfirstnamed{apply,reln,ci,cn}
- } {
- \defineXMLnested[bvar]
- {\directsetup{mmc:bvar:diff:start}}
- {\directsetup{mmc:bvar:diff:stop}}
- \XMLfirstnamed{bvar}
- }
- } {
- \XMLfirstnamed{apply,reln,ci,cn}
- }
- }
-\stopsetups
-
-\startsetups mmc:bvar:diff:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:bvar:diff:stop
- \stopsavingXMLelements
- \getXMLentity{differentiald}\XMLfirstnamed{apply,reln,ci,cn}
- \XMLdoifonstackelse{degree} {
- ^{\XMLfirstnamed{degree}}
- } {
- % nothing
- }
- \endgroup
-\stopsetups
-
-\def\subMMLcelement #1#2{_{#2}}
-\def\superMMLcelement#1#2{^{#2}}
-
-\defineXMLprocess [lowlimit]
-\defineXMLprocess [uplimit]
-\defineXMLprocess [bvar]
-\defineXMLprocess [degree]
-
-% option:
-%
-% \defineXMLentity [div] {\mathematics{\triangledown\times}}
-% \defineXMLentity [curl] {\mathematics{\triangledown .}}
-% \defineXMLentity [grad] {\mathematics{\triangledown }}
-
-\defineXMLcommand [divergence] {\getXMLentity{divergence}\directsetup{mmc:donamedfunction}}
-\defineXMLcommand [grad] {\getXMLentity {grad}\directsetup{mmc:donamedfunction}}
-\defineXMLcommand [curl] {\getXMLentity {curl}\directsetup{mmc:donamedfunction}}
-\defineXMLcommand [laplacian] {\getXMLentity {laplacian}\directsetup{mmc:donamedfunction}}
-
-\defineXMLcommand [ident] {\getXMLentity {identity}\directsetup{mmc:donamedfunction}}
-% \defineXMLcommand [domain] {\getXMLentity {domain}\directsetup{mmc:donamedfunction}}
-% \defineXMLcommand [codomain] {\getXMLentity {codomain}\directsetup{mmc:donamedfunction}}
-
-\defineXMLcommand[domain] {\directsetup{mmc:domain:action}}
-\defineXMLcommand[codomain]{\directsetup{mmc:codomain:action}}
-
-\setupMMLappearance[domain] [symbol=]
-\setupMMLappearance[codomain][symbol=]
-
-\startsetups mmc:domain:action
- \doifelsenothing\@@MMLdomainsymbol {
- \getXMLentity{domain}\directsetup{mmc:donamedfunction}
- } {
- \@@MMLdomainsymbol_{\flushXMLstackfrom\plustwo}
- }
-\stopsetups
-\startsetups mmc:codomain:action
- \doifelsenothing\@@MMLcodomainsymbol {
- \getXMLentity{codomain}\directsetup{mmc:donamedfunction}
- } {
- \@@MMLcodomainsymbol_{\flushXMLstackfrom\plustwo}
- }
-\stopsetups
-
-
-\startsetups mmc:donamedfunction
-% \left(
-% \begingroup
- \MMLcreset\flushXMLstackfrom\plustwo
-% \endgroup
-% \right)
-\stopsetups
-
-% theory of sets
-
-\defineXMLnested [set]
- {\setups{mmc:set:start}}
- {\setups{mmc:set:stop}}
-
-\startsetups mmc:set:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:set:stop
- \stopsavingXMLelements
- \XMLdoifonstackelse{condition} {
- \left\{\XMLfirstnamed{bvar}\,\middle\vert\,\XMLfirstnamed{condition}\right\}
- } {
- \left\{\flushXMLstackwith\plusone{\MMLseparator,}\right\}
- }
- \endgroup
-\stopsetups
-
-\defineXMLnested [list]
- {\setups{mmc:list:start}}
- {\setups{mmc:list:stop}}
-
-\settrue\MMLlistdelimiters
-
-\startsetups mmc:list:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:list:stop
- \stopsavingXMLelements
- \ifconditional\MMLlistdelimiters\left [\fi
- \begingroup
- \settrue\MMLlistdelimiters
- \flushXMLstackwith\plusone{\MMLseparator,}
- \endgroup
- \ifconditional\MMLlistdelimiters\right]\fi
- \endgroup
-\stopsetups
-
-\defineXMLcommand [union] {\MMLcset\cup}
-\defineXMLcommand [intersect] {\MMLcset\cap}
-\defineXMLcommand [in] {\MMLcset\in}
-\defineXMLcommand [notin] {\MMLcset{\not\in}}
-\defineXMLcommand [subset] {\MMLcset\subset}
-\defineXMLcommand [prsubset] {\MMLcset\subseteq}
-\defineXMLcommand [notsubset] {\MMLcset{\not\subset}}
-\defineXMLcommand [notprsubset] {\MMLcset{\not\subseteq}}
-\defineXMLcommand [setdiff] {\MMLcset\setminus}
-
-\def\MMLcset#1{\getXMLstackdata\plustwo#1\getXMLstackdata\plusthree}
-
-\defineXMLcommand [card] {\left\vert\flushXMLstackfrom\plustwo\right\vert}
-\defineXMLcommand [cartesianproduct] {\flushXMLstackwith\plustwo\times}
-
-% sequences and series
-
-\defineXMLcommand [sum] {\MMLcSUMandPRODUCT{sum}\sum}
-\defineXMLcommand [product]{\MMLcSUMandPRODUCT{product}\prod}
-
-\setupMMLappearance[sum] [\c!location=\v!top]
-\setupMMLappearance[product][\c!location=\v!top]
-
-\def\stackMMLsubscripts#1%
- {\vbox
- {\baselineskip\zeropoint % hack, taco vragen
- \halign{$\scriptstyle\hss##\hss$\cr#1\crcr}}}
-
-\def\MMLcSUMandPRODUCT#1#2%
- {\begingroup
- \XMLdoifonstackelse{condition,bvar,lowlimit}
- {\def\MMLcSUMlow
- {_{\XMLdoifonstackelse{condition}
- {\collectXMLnamedstack{condition}{\crcr}%
- \stackMMLsubscripts{\the\XMLRtoks}}
- {\XMLdoifonstackelse{bvar}
- {\XMLfirstnamed{bvar}%
- \XMLdoifonstackelse{lowlimit}{=}{}}%
- {}%
- \XMLfirstnamed{lowlimit}}}}}
- {\let\MMLcSUMlow\empty}%
- \XMLdoifonstackelse{uplimit}
- {\def\MMLcSUMup{^{\XMLfirstnamed{uplimit}}}}
- {\let\MMLcSUMup\empty}%
- \XMLdoifonstackelse{interval} % open math converter gives this
- {\begingroup
- \directsetup{mmc:interval:fetch}%
- \XMLfirstnamed{interval}%
- \endgroup
- \ifx\MMCintervalfrom\empty\else
- \def\MMLcSUMlow{_{\XMLdoifonstackelse{bvar}{\XMLfirstnamed{bvar}{=}}{}\MMCintervalfrom}}%
- \fi
- \ifx\MMCintervalto\empty \else
- \def\MMLcSUMup{^{\MMCintervalto}}%
- \fi}
- {}%
- \MMLcreset#2\doMMLlimits{#1}\MMLcSUMup\MMLcSUMlow
- \directsetup{mmc:lambda:simple}% a bit of open math conversion mess
- \MMLcreset\XMLfirstnamed{apply,lambda,ci}%
- \endgroup}
-
-\defineXMLcommand [limit] {\directsetup{mmc:limit}}
-
-\setupMMLappearance[limit][\c!location=\v!top]
-
-\startsetups mmc:limit
- \MMLcreset \lim
- \doMMLlimits{limit}_{
- \MMLcreset
- \XMLdoifonstackelse {condition} {
- \XMLfirstnamed{condition}
- } {
- \XMLdoifonstackelse {bvar} {
- \XMLfirstnamed{bvar}\rightarrow
- } {
- }
- \XMLfirstnamed{lowlimit}
- }
- }
- \begingroup
- \MMLcreset
- \directsetup{mmc:lambda:simple}% a bit of open math conversion mess
- \XMLfirstnamed{apply,lambda}% lambda needed for openmath
- \endgroup
-\stopsetups
-
-\defineXMLcommand [tendsto] [type=default] {\directsetup{mmc:tendsto}}
-
-\startsetups mmc:tendsto
- \MMLcreset \getXMLstackdata\plustwo
- \processaction
- [\XMLpar{tendsto}{type}{default}]
- [ above=>\downarrow,
- below=>\uparrow,
- unknown=>\rightarrow]
- \MMLcreset \getXMLstackdata\plusthree
-\stopsetups
-
-% elementary classical functions
-
-\defineXMLcommand [exp] {\directsetup{mmc:exp}}
-\defineXMLcommand [ln] {\directsetup{mmc:function}}
-\defineXMLcommand [log] {\directsetup{mmc:log}}
-\defineXMLignore [logbase]
-
-\setupMMLappearance[log][\c!location=\v!right]
-
-\startsetups mmc:exp
- \getXMLentity{exponentiale}^{\XMLfirstnamed{apply,reln,ci,cn}}
-\stopsetups
-
-\startsetups mmc:log
- \XMLdoifonstackelse {logbase} {
- \doifelse\@@MMLloglocation\v!left {
- \mathop{{}^{{\defineXMLprocess[logbase]\XMLfirstnamed{logbase}}}
- \getXMLentity{NegThinSpace}
- \getXMLentity{log}}
- } {
- \getXMLentity{log}_{{\defineXMLprocess[logbase]\XMLfirstnamed{logbase}}}
- }
- } {
- \getXMLentity{log}
- }
- \MMLcreset
- % mmc:function:argument assumes that the apply is second in the row (*1*)
- % \removeXMLdatafromstack{logbase}
- \directsetup{mmc:function:argument}
-\stopsetups
-
-% statistics
-
-\defineXMLcommand [mean] {\overline{\getXMLstackdata\plustwo}}
-\defineXMLcommand [sdev] {\sigma(\MMLcreset\getXMLstackdata\plustwo)}
-\defineXMLcommand [variance] {\sigma(\MMLcreset\getXMLstackdata\plustwo)^2}
-\defineXMLcommand [median] {\getXMLentity{median}(\MMLcreset\getXMLstackdata\plustwo)}
-\defineXMLcommand [mode] {\getXMLentity{mode}(\MMLcreset\getXMLstackdata\plustwo)}
-
-% moments
-
-\defineXMLcommand [moment] {\directsetup{mmc:moment}}
-\defineXMLprocess [momentabout]
-
-\startsetups mmc:moment
- \left\langle\XMLfirstnamed{apply,reln,ci,cn}^{\XMLfirstnamed{degree}}\right\rangle
- \XMLdoifonstackelse{momentabout} {
- _{\XMLfirstnamed{momentabout}}
- } {
- }
-\stopsetups
-
-% linear algebra
-
-\defineXMLcommand [vector] {\directsetup{mmc:vector}} % sequence
-
-\setupMMLappearance [vector] [\c!direction=\v!horizontal,\c!separator={,}]
-
-\defineXMLnested
- [vector]
- {\directsetup{mmc:vector:start}}
- {\directsetup{mmc:vector:stop}}
-
-\startsetups mmc:vector:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:vector:stop
- \stopsavingXMLelements
- \ifnum\XMLstacklevel>\plusone
- \doifelse\@@MMLvectordirection\v!horizontal {
- \left(\flushXMLstackwith\plusone{\MMLseparator\@@MMLvectorseparator}\right)
- } {
- \collectXMLstack\crcr
- \MMLcreset\left(\matrix{\the\XMLRtoks}\right)
- }
- \else
- \overrightarrow{\charhtstrut\getXMLstackdata\plusone}
- \fi
- \endgroup
-\stopsetups
-
-\defineXMLnestedenvironmentsave [matrix] {} {\directsetup{mmc:matrix}}
-\defineXMLnestedenvironmentsave [matrixrow] {} {\directsetup{mmc:matrixrow}}
-
-\unexpanded\def\@col@amp@{&}
-
-\settrue\MMCdelmatrix %( ) when true
-
-\startsetups mmc:matrix
- \begingroup
- \MMLcreset
- \defineXMLnestedenvironmentsave [matrixrow] {} {\directsetup{mmc:matrixrow:do}}
- \ifconditional\MMCdelmatrix
- \left(\matrix{\XMLflush{matrix}}\right)
- \else
- \settrue\MMCdelmatrix
- \matrix{\XMLflush{matrix}}
- \fi
- \endgroup
-\stopsetups
-
-\startsetups mmc:matrixrow
- \begingroup
- \MMLcreset
- \left(\matrix{\directsetup{mmc:matrixrow:do}}\right)
- \endgroup
-\stopsetups
-
-\startsetups mmc:matrixrow:do
- \begingroup
- \startsavingXMLelements
- \XMLflush{matrixrow}
- \stopsavingXMLelements
- \collectXMLstackrows\plusone\@col@amp@
- \edef\ascii{\the\XMLRtoks}
- \edef\ascii{\ascii}
- \expandafter\endgroup\ascii\crcr
-\stopsetups
-
-\defineXMLcommand [determinant] {\directsetup{mmc:determinant}}
-\defineXMLcommand [transpose] {\directsetup{mmc:transpose}}
-\defineXMLcommand [selector] {\directsetup{mmc:selector}}
-
-\startsetups mmc:determinant
- \begingroup
- \left|
- \setfalse\MMCdelmatrix
- \getXMLstackdata\plustwo
- \right|
- \endgroup
-\stopsetups
-
-\startsetups mmc:transpose
-% \getXMLstackdata\plustwo^{\MMLrm T}
- \getXMLstackdata\plustwo^{\mfunction{T}}
-\stopsetups
-
-\startsetups mmc:selector
- \MMLmathinner{\getXMLstackdata\plustwo}_{\MMLcreset\flushXMLstackwith\plusthree{\MMLseparator,}}
-\stopsetups
-
-\defineXMLcommand [vectorproduct] {\getXMLstackdata\plustwo\getXMLentity{vectorproduct}\getXMLstackdata\plusthree}
-\defineXMLcommand [scalarproduct] {\getXMLstackdata\plustwo\getXMLentity{scalarproduct}\getXMLstackdata\plusthree}
-\defineXMLcommand [outerproduct] {\getXMLstackdata\plustwo\getXMLentity {outerproduct}\getXMLstackdata\plusthree}
-
-% semantic mapping elements
-
-\defineXMLnested
- [semantics]
- {\directsetup{mmc:semantics:start}}
- {\directsetup{mmc:semantics:stop}}
-
-\startsetups mmc:semantics:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:semantics:stop
- \stopsavingXMLelements
- \XMLdoifonstackelse {annotation} {
- \flushXMLnamedstackwith\plusone{annotation}\empty
- } {
- \flushXMLnamedstackwith\plusone{apply}\empty
- }
- \endgroup
-\stopsetups
-
-\defineXMLenvironmentsave
- [annotation]
- [encoding=]
- {}
- {\directsetup{mmc:annotation}}
-
-\startsetups mmc:annotation
- \expanded{\doifinset{\XMLpar{annotation}{encoding}{}}{TeX,tex,TEX,ConTeXt,context,CONTEXT}} {
- \XMLtexdata{annotation}
- }
-\stopsetups
-
-\defineXMLignore [annotation-xml]
-
-% misc
-
-\defineXMLcommand [integers] {\getXMLentity{integers}}
-\defineXMLcommand [reals] {\getXMLentity{reals}}
-\defineXMLcommand [rationals] {\getXMLentity{rationals}}
-\defineXMLcommand [naturalnumbers] {\getXMLentity{naturalnumbers}}
-\defineXMLcommand [complexes] {\getXMLentity{complexes}}
-\defineXMLcommand [primes] {\getXMLentity{primes}}
-\defineXMLcommand [exponentiale] {\getXMLentity{ExponentialE}}
-\defineXMLcommand [imaginaryi] {\getXMLentity{ImaginaryI}}
-\defineXMLcommand [notanumber] {\mathop{\mfunction{NaN}}}
-\defineXMLcommand [true] {\mathop{\mfunction{true}}}
-\defineXMLcommand [false] {\mathop{\mfunction{false}}}
-\defineXMLcommand [emptyset] {\mathop{\O}}
-\defineXMLcommand [pi] {\pi}
-\defineXMLcommand [eulergamma] {\gamma}
-\defineXMLcommand [infinity] {\infty}
-
-% gonio functions
-
-\defineXMLcommand[sin] {\directsetup{mmc:function}} \defineXMLcommand[arcsin] {\directsetup{mmc:function}}
-\defineXMLcommand[sinh]{\directsetup{mmc:function}} \defineXMLcommand[arcsinh]{\directsetup{mmc:function}}
-\defineXMLcommand[cos] {\directsetup{mmc:function}} \defineXMLcommand[arccos] {\directsetup{mmc:function}}
-\defineXMLcommand[cosh]{\directsetup{mmc:function}} \defineXMLcommand[arccosh]{\directsetup{mmc:function}}
-\defineXMLcommand[tan] {\directsetup{mmc:function}} \defineXMLcommand[arctan] {\directsetup{mmc:function}}
-\defineXMLcommand[tanh]{\directsetup{mmc:function}} \defineXMLcommand[arctanh]{\directsetup{mmc:function}}
-\defineXMLcommand[cot] {\directsetup{mmc:function}} \defineXMLcommand[arccot] {\directsetup{mmc:function}}
-\defineXMLcommand[coth]{\directsetup{mmc:function}} \defineXMLcommand[arccoth]{\directsetup{mmc:function}}
-\defineXMLcommand[csc] {\directsetup{mmc:function}} \defineXMLcommand[arccsc] {\directsetup{mmc:function}}
-\defineXMLcommand[csch]{\directsetup{mmc:function}} \defineXMLcommand[arccsch]{\directsetup{mmc:function}}
-\defineXMLcommand[sec] {\directsetup{mmc:function}} \defineXMLcommand[arcsec] {\directsetup{mmc:function}}
-\defineXMLcommand[sech]{\directsetup{mmc:function}} \defineXMLcommand[arcsech]{\directsetup{mmc:function}}
-
-\setupMMLappearance[function][\c!reduction=\v!yes]
-
-\startsetups mmc:function
- \getXMLentity\currentXMLelement
- \ifx\MMLpowerelement\empty\else
- ^{\MMLcreset\MMLpowerelement\empty}
- \getXMLentity{NegThinSpace}
- \global\let\MMLpowerelement\empty
- \fi
- \doif {\getXMLstackname\plusone} {\currentXMLelement} {
- % rather fuzzy test; looks like an apply case
- \directsetup{mmc:function:argument}
- }
-\stopsetups
-
-\startsetups mmc:function:argument
- \doifelse\@@MMLfunctionreduction\v!yes {
- % \doifelse {\getXMLstackname\plustwo} {apply} {
- % \doifelseMMCfunctioninapply \plustwo \MMLcfunctionlist \donefalse \donetrue
- %
- % best is to grab the apply (independent of order), (*1*), so:
- %
- \XMLdoifonstackelse {apply} {
- \doifelseMMCfunctioninapply \XMLstackposition {\MMLcfunctionlist,divide} \donefalse \donetrue
- } {
- \donefalse
- }
- } {
- \donetrue
- }
- % beware, we still flush from 2 up
- \ifdone
- \left(\MMLcreset\flushXMLstackfrom\plustwo\right)
- \else
- \MMLcreset\flushXMLstackfrom\plustwo
- \fi
-\stopsetups
-
-% presentation mml
-
-\def\resetMMLseparator
- {\newcounter\MMLxxcounter
- \let\lastMMLseparator\empty}
-
-\def\grabMMLseparator#1%
- {\increment\MMLxxcounter
- \newcounter\MMLyycounter
- \expanded{\dograbMMLseparator#1\noexpand\relax}}
-
-\def\dograbMMLseparator
- {\increment\MMLyycounter
- \doifnextcharelse\relax
- {\lastMMLseparator\gobbleoneargument}
- {\doifnextcharelse\xmlrent\grabMMLseparatora\grabMMLseparatorb}}
-
-\def\grabMMLseparatora#1\xmlrent#2%
- {\ifnum\MMLxxcounter=\MMLyycounter\space
- \def\lastMMLseparator{\xmlrent{#2}}%
- \fi
- \dograbMMLseparator}
-
-\def\grabMMLseparatorb#1%
- {\ifnum\MMLxxcounter=\MMLyycounter\space
- \doifXMLentityelse{#1}
- {\def\lastMMLseparator{\xmlrent{#1}}}
- {\def\lastMMLseparator{#1}}%
- \fi
- \dograbMMLseparator}
-
-%
-
-\defineXMLargument [mi] \MMLpMI
-\defineXMLargument [mn] \MMLpMN
-\defineXMLargument [mo] \MMLpMO
-
-\def\MMLpMI#1%
- {\begingroup
- \setMMLpmathstyle{mstyle}%
- #1%
- \endgroup}
-
-% \def\MMLpMN#1%
-% {\begingroup
-% \MMLrm
-% \setMMLpmathstyle{mstyle}%
-% #1%
-% \endgroup}
-
-\def\MMLpMN#1%
- {\mfunction{\setMMLpmathstyle{mstyle}#1}}
-
-\def\MMLpMO#1% yes or no
- {\flattenXMLcontent{#1}%
- \doifXMLentityelse\flattenedXMLcontent
- {\getXMLentity\flattenedXMLcontent}
- {\ConvertConstantAfter\doifinstringelse{\xmlrent}{#1} % TODO ! ! ! ! ! ! ! !
- {#1}
- {\hbox
- {\setMMLpmathstyle{mstyle}%
- \ignorespaces#1\unskip}}}}
-
-% we need to get rid of spaces: <mo> &RightArrow; </mo>
-
-\def\MMLpMO#1% yes or no
- {\flattenXMLcontent{#1}%
- \doifXMLentityelse\flattenedXMLcontent
- {\getXMLentity\flattenedXMLcontent}
- {\ignorespaces#1\removeunwantedspaces}}
-
-\def\doMMLleft #1{\pushmacro\left \let\left \empty\normalleft #1\popmacro\left}
-\def\doMMLright#1{\pushmacro\right\let\right\empty\normalright#1\popmacro\right}
-
-\let\MMLpopen \empty
-\let\MMLpclose\empty
-
-\defineXMLnested [mfenced] [open=(,close=),separators=]
- {\directsetup{mmp:mfenced:start}}
- {\directsetup{mmp:mfenced:stop}}
-
-\startsetups mmp:mfenced:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:mfenced:stop
- \stopsavingXMLelements
- \edef\MMLpopen {\XMLpar{mfenced}{open} {}}
- \edef\MMLpclose{\XMLpar{mfenced}{close}{}}
- \ifx\MMLpopen \space\let\MMLpopen \empty\fi
- \ifx\MMLpclose\space\let\MMLpclose\empty\fi
- \ifx\MMLpopen\empty
- \ifx\MMLpclose\empty
- \else
- \doMMLleft.
- \fi
- \else
- \doMMLleft\MMLpopen
- \fi
- \pushmacro\MMLpopen
- \pushmacro\MMLpclose
- \doifelsenothing{\XMLpar{mfenced}{separators}{}} {
- \flushXMLstackfrom\plusone
- } {
- \resetMMLseparator
- \flushXMLstackwith\plusone {
- \begingroup
- \let\myspecialnormalvert\myspecialstretchvert
- \grabMMLseparator{\XMLpar{mfenced}{separators}{}}
- \endgroup
- }
- }
- \popmacro\MMLpclose
- \popmacro\MMLpopen
- \ifx\MMLpclose\empty
- \ifx\MMLpopen\empty
- \else
- \doMMLright.
- \fi
- \else
- \doMMLright\MMLpclose
- \fi
- \endgroup
-\stopsetups
-
-% \startbuffer
-% <math><mfenced separators="" open="(" close=")"><mi>x</mi></mfenced></math>
-% <math><mfenced separators="" open="" close=")"><mi>x</mi></mfenced></math>
-% <math><mfenced separators="" open="(" close="" ><mi>x</mi></mfenced></math>
-% <math><mfenced separators="" open="" close="" ><mi>x</mi></mfenced></math>
-% <math><mfenced separators="" open="" close=" "><mi>x</mi></mfenced></math>
-% \stopbuffer
-%
-% \processXMLbuffer
-
-\defineXMLnestedenvironmentsave [menclose] [notation=]
- {\directsetup{mmp:menclose:start}}
- {\directsetup{mmp:menclose:stop}}
-
-\startsetups mmp:menclose:start
- \begingroup
-\stopsetups
-
-\startsetups mmp:menclose:stop
- \doifelse{\XMLpar{menclose}{notation}{}}{longdiv} {
- \overline{)\XMLflush{menclose}}
- } {
- \XMLflush{menclose}
- }
- \endgroup
-\stopsetups
-
-\defineXMLnested [mfrac] [linethickness=]
- {\directsetup{mmp:mfrac:start}}
- {\directsetup{mmp:mfrac:stop}}
-
-\startsetups mmp:mfrac:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:mfrac:stop
- \stopsavingXMLelements
- \doifXMLparelse{mfrac}{linethickness} {
- \edef\theXMLpar{\XMLpar{mfrac}{linethickness}{1}}
- \processaction
- [\theXMLpar]
- [ thin=>\scratchdimen=.2pt,
- medium=>\scratchdimen=.4pt,
- thick=>\scratchdimen=.8pt,
- unknown=>\setdimensionwithunit\scratchdimen{\theXMLpar}{}]
- {{\getXMLstackdata\plusone}\above\scratchdimen{\getXMLstackdata\plustwo}}
- } {
- \frac{\getXMLstackdata\plusone}{\getXMLstackdata\plustwo}
- }
- \endgroup
-\stopsetups
-
-\defineXMLargument
- [ms]
- [lquote=\xmlrent{quot},
- rquote=\xmlrent{quot},
- fontweight=,
- fontstyle=,
- mathstyle=,
- mathvariant=,
- background=,
- color=]
- {\MMLpSTRING}
-
-\def\MMLpSTRING#1%
- {\hbox
- {\tf % else encoding problems
- \MMLpTEXT{\XMLpar{ms}{lquote}{}%
- \doMMPpbackground{ms}{\doMMPpcolor{ms}{\setMMLptextstyle{ms}\ignorespaces#1\removeunwantedspaces}}%
- \XMLpar{ms}{rquote}{}}}}
-
-\defineXMLenvironment
- [mstyle]
- [fontweight=,
- fontstyle=,
- mathstyle=,
- mathvariant=,
- background=,
- color=]
- {\begingroup}
- {\endgroup}
-
-\defineXMLargument [mtext] [CPA] \MMLpTEXT
-\defineXMLargument [merror] [CPA] \MMLpERROR
-\defineXMLargument [mphantom] [CPA] \MMLpPHANTOM
-\defineXMLargument [mpadded] [CPA] \MMLpPADDED
-
-\mapXMLvalue{mmp}{normal} {\tf} \mapXMLvalue{mmp}{double-stuck} {\bf}
-\mapXMLvalue{mmp}{bolditalic} {\bi} \mapXMLvalue{mmp}{bold-italic} {\bi}
-\mapXMLvalue{mmp}{boldslanted}{\bs} \mapXMLvalue{mmp}{bold-slanted} {\bs}
-\mapXMLvalue{mmp}{boldnormal} {\bf} \mapXMLvalue{mmp}{bold} {\bf}
-\mapXMLvalue{mmp}{slanted} {\sl} \mapXMLvalue{mmp}{normalslanted}{\sl}
-\mapXMLvalue{mmp}{italic} {\it} \mapXMLvalue{mmp}{normalitalic} {\it}
-\mapXMLvalue{mmp}{fraktur} {\bf} \mapXMLvalue{mmp}{bold-fraktur} {\bf}
-\mapXMLvalue{mmp}{script} {\tf} \mapXMLvalue{mmp}{bold-script} {\bf}
-
-% and all kind of other crappy names
-
-\def\setMMLptextstyle#1%
- {\XMLval{mmp}{\XMLpar{#1}{fontweight}{}\XMLpar{#1}{fontstyle}{}}{}}
-
-\def\setMMLpmathstyle#1%
- {\XMLval{mmp}{\XMLpar{#1}{mathvariant}{}}{}}
-
-\def\doMMPpcolor#1#2%
- {\doifXMLparelse{#1}{color}{\color[\XMLpar{#1}{color}{}]{#2}}{#2}}
-
-\def\doMMPpbackground#1#2%
- {\doifXMLparelse{#1}{background}
- {\inframed
- [\c!frame=\v!off,
- \c!background=\v!color,
- \c!backgroundcolor=\XMLpar{#1}{background}{}]
- {#2}}
- {#2}}
-
-\def\MMLpTEXT#1%
- {\hbox
- {\tf % else encoding problems
- \doMMPpbackground{ms}{\doMMPpcolor{ms}{\setMMLptextstyle{ms}\ignorespaces#1\removeunwantedspaces}}}}
-
-\def\MMLpERROR#1%
- {\hbox{$\displaystyle#1$}}
-
-\def\MMLpPHANTOM#1%
- {\phantom{\ignorespaces{}#1\unskip}} % watch spacing {} hack
-
-\def\MMLpPADDED#1%
- {#1}
-
-% mrow
-
-\defineXMLenvironment [mrow] {\resetMMLbounds} {\finishMMLbounds}
-
-% \def\MMLleft #1{\increment\MMLboundslevel\left #1}
-% \def\MMLright#1{\right#1\decrement\MMLboundslevel}
-
-% \def\resetMMLbounds
-% {\let\MMLboundslevel\!!plusone\left.}
-
-% \def\finishMMLbounds
-% {\dorecurse\MMLboundslevel{\right.}}
-
-\def\resetMMLbounds
- {\pushmacro\MMLboundslevel
- \newcounter\MMLboundslevel}
-
-\def\MMLleft #1%
- {\increment\MMLboundslevel
- \normalleft#1}
-
-\def\MMLright#1%
- {\ifnum\MMLboundslevel=0 \normalleft.\!\fi
- \normalright#1%
- \decrement\MMLboundslevel}
-
-\def\finishMMLbounds
- {\ifnum\MMLboundslevel>0
- \normalright.\!%
- \decrement\MMLboundslevel
- \expandafter\finishMMLbounds
- \else
- \popmacro\MMLboundslevel
- \fi}
-
-\defineXMLnested [msqrt] {\directsetup{mmp:msqrt:start}} {\directsetup{mmp:msqrt:stop}}
-\defineXMLnested [mroot] {\directsetup{mmp:mroot:start}} {\directsetup{mmp:mroot:stop}}
-
-\startsetups mmp:msqrt:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:msqrt:stop
- \stopsavingXMLelements
- \sqrt{\flushXMLstackfrom\plusone}
- \endgroup
-\stopsetups
-
-\startsetups mmp:mroot:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:mroot:stop
- \stopsavingXMLelements
- \root{\getXMLstackdata\plustwo}\of{\getXMLstackdata\plusone}
- \endgroup
-\stopsetups
-
-\setupMMLappearance[scripts][\c!alternative=\v!a]
-
-\defineXMLnested [msub] {\directsetup{mmp:msub:start}} {\directsetup{mmp:msub:stop}}
-\defineXMLnested [msup] {\directsetup{mmp:msup:start}} {\directsetup{mmp:msup:stop}}
-\defineXMLnested [msubsup] {\directsetup{mmp:msbp:start}} {\directsetup{mmp:msbp:stop}}
-
-\startsetups mmp:msub:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:msub:stop
- \stopsavingXMLelements
- \doifelse\@@MMLscriptsalternative\v!a {
- {\getXMLstackdata\plusone}_{\getXMLstackdata\plustwo}
- } {
- \getXMLstackdata\plusone_{\getXMLstackdata\plustwo}
- }
- \endgroup
-\stopsetups
-
-\startsetups mmp:msup:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:msup:stop
- \stopsavingXMLelements
- \doifelse\@@MMLscriptsalternative\v!a {
- {\getXMLstackdata\plusone}^{\getXMLstackdata\plustwo}
- } {
- \getXMLstackdata\plusone^{\getXMLstackdata\plustwo}
- }
- \endgroup
-\stopsetups
-
-\startsetups mmp:msbp:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:msbp:stop
- \stopsavingXMLelements
- \getXMLstackdata\plusone_{\getXMLstackdata\plustwo}^{\getXMLstackdata\plusthree}
- \endgroup
-\stopsetups
-
-\defineXMLnested [mover] {\directsetup{mmp:mover:start}} {\directsetup{mmp:mover:stop}}
-\defineXMLnested [munder] {\directsetup{mmp:munder:start}} {\directsetup{mmp:munder:stop}}
-\defineXMLnested [munderover] {\directsetup{mmp:munderover:start}} {\directsetup{mmp:munderover:stop}}
-
-\startsetups mmp:mover:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:mover:stop
- \stopsavingXMLelements
- \mathop{\vbox{\mathsurround\zeropoint\ialign{\hss##\hss\crcr\noalign{\kern3\points}%
- \disabledelimiter\doMMLfiller{\getXMLstackdata\plustwo}
- \crcr\noalign{\kern3\points\nointerlineskip}%
- \disabledelimiter\doMMLfiller{\getXMLstackdata\plusone}
- \crcr}}}
- \limits
- \endgroup
-\stopsetups
-
-\startsetups mmp:munder:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:munder:stop
- \stopsavingXMLelements
- \mathop{\vtop{\mathsurround\zeropoint\ialign{\hss##\hss\crcr
- \disabledelimiter\doMMLfiller{\getXMLstackdata\plusone}
- \crcr\noalign{\kern3\points\nointerlineskip}%
- \disabledelimiter\doMMLfiller{\getXMLstackdata\plustwo}
- \crcr\noalign{\kern3\points}}}}
- \limits
- \endgroup
-\stopsetups
-
-\startsetups mmp:munderover:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:munderover:stop
- \stopsavingXMLelements
- \getXMLstackdata\plusone
- _{\disablefiller\disabledelimiter\getXMLstackdata\plustwo}
- ^{\disablefiller\disabledelimiter\getXMLstackdata\plusthree}
- \endgroup
-\stopsetups
-
-\def\doMMLfiller#1% bugged
- {\pushmacro\doMMLfiller
- \let\doMMLfiller\gobbleoneargument
- \gdef\dodoMMLfiller{\disablefiller\mathematics{#1}}%
- \hbox
- {\def\normalorfiller##1##2%
- {\gdef\dodoMMLfiller{\enablefiller#1}%
- \let\normalorfiller\gobbletwoarguments}%
- $#1$}%
- \popmacro\doMMLfiller
- \dodoMMLfiller}
-
-% tables
-
-% obsolete: \setupMMLappearance[mtable][\c!alternative=\v!a]
-
-\mapXMLvalue {mmp:mtable} {align:left} {right}
-\mapXMLvalue {mmp:mtable} {align:right} {left}
-\mapXMLvalue {mmp:mtable} {align:center} {middle}
-
-\mapXMLvalue {mmp:mtable} {frame:none} {off}
-\mapXMLvalue {mmp:mtable} {frame:solid} {on}
-\mapXMLvalue {mmp:mtable} {frame:on} {on}
-
-\defineXMLnested
- [mtable]
- [columnalign=,
- columnspacing=.25ex,
- rowspacing=.25ex,
- frame=,
- color=,
- background=]
- {\directsetup{mmp:mtable:start}}
- {\directsetup{mmp:mtable:stop}}
-
-\defineXMLnestedargument
- [mtr]
- {\MMPmtableHANDLEtr}
-
-\defineXMLnestedargument
- [mlabeledtr]
- {\MMPmtableHANDLEtr}
-
-\defineXMLnestedargument
- [mtd]
- [columnalign=,
- columnspacing=.25ex,
- rowspacing=.25ex,
- frame=,
- color=,
- background=]
- {\MMPmtableHANDLEtd}
-
-\startsetups mmp:mtable:start
- \vcenter \bgroup
- \MMLpTABLEsplitter{background} \c!backgroundcolor
- \MMLpTABLEsplitter{color} \c!color
- \MMLpTABLEmapper {frame} \c!frame
- \MMLpTABLEmapper {columnalign}\c!align
- \setMMLpunit{\XMLpar{mtable}{rowspacing}\empty}{.25ex}
- \let\MMLpTABLEoffset\MMLpunit
- \bTABLE[\c!frame=\v!off,\c!background=\v!color,\c!offset=\MMLpTABLEoffset]
-\stopsetups
-
-\startsetups mmp:mtable:stop
- \eTABLE
- \egroup
-\stopsetups
-
-\long\def\MMPmtableHANDLEtr#1{%
- \bTR\ignorespaces#1\removeunwantedspaces\eTR
-}
-
-\long\def\MMPmtableHANDLEtd#1{%
- \let\theMMLpTABLEmap\empty
- \MMLpTABLEmap{background} \c!backgroundcolor
- \MMLpTABLEmap{color} \c!color
- \MMLpTABLEmap{frame} \c!frame
- \MMLpTABLEmap{columnalign}\c!align
- \expanded{\bTD[\theMMLpTABLEmap]}%
- $\ignorespaces#1\removeunwantedspaces$\eTD
-}
-
-\def\MMLpTABLEmapper#1#2%
- {\doifXMLparelse{mtable}{#1}
- {\newcounter\MMLcounter
- \def\docommand##1%
- {\increment\MMLcounter
- \expanded{\setupTABLE[column][\MMLcounter][#2=\XMLval{mmp:mtable}{#2:##1}\empty]}}%
- \expanded{\processseparatedlist[\XMLpar{mtable}{#1}\empty]}[ ]\docommand}
- {}}
-
-\def\MMLpTABLEsplitter#1#2%
- {\doifXMLparelse{mtable}{#1}
- {\newcounter\MMLcounter
- \def\docommand##1%
- {\increment\MMLcounter
- \expanded{\setupTABLE[column][\MMLcounter][#2=##1]}}%
- \expanded{\processseparatedlist[\XMLpar{mtable}{#1}\empty]}[ ]\docommand}
- {}}
-
-\def\MMLpTABLEmap#1#2%
- {\doifXMLparelse{mtd}{#1}
- {\edef\theMMLpTABLEmap{#2=\XMLval{mmp:mtable}{#2:\XMLpar{mtd}{#1}\empty}\empty,\theMMLpTABLEmap}}
- {}}
-
-\defineXMLsingular [mspace] [width=.5em] {\directsetup{mmp:mspace}}
-
-\startsetups mmp:mspace
- \setMMLpunit{\XMLpar{mspace}{width}{}}{.5em}
- \hskip\MMLpunit\relax
-\stopsetups
-
-\def\setMMLpunit#1#2% i've forgotten what this means
- {\setbox\scratchbox=\hbox
- {\edef\ascii{#1}%
- \@EA\aftersplitstring\ascii\at.\to\ascii
- \scratchcounter=\ifx\ascii\empty#1\else\ascii\fi
- \unskip\unskip}%
- \ifdim\wd\scratchbox=\zeropoint
- \edef\MMLpunit{#1em}%
- \else
- \edefconvertedargument\ascii{#1}%
- \convertasciiafter\doifinstringelse{em}{\ascii}{\edef\MMLpunit{#1}}{%
- \convertasciiafter\doifinstringelse{ex}{\ascii}{\edef\MMLpunit{#1}}{%
- \convertasciiafter\doifinstringelse{pt}{\ascii}{\edef\MMLpunit{#1}}{%
- \edef\MMLpunit{#2}}}}%
- \fi}
-
-% end of tables
-
-\def\setMMLpunit#1#2%
- {\setbox\scratchbox=\hbox
- {\edef\ascii{#1}%
- \@EA\aftersplitstring\ascii\at.\to\ascii
- \scratchcounter=\ifx\ascii\empty#1\else\ascii\fi
- \unskip\unskip}%
- \ifdim\wd\scratchbox=\zeropoint
- \edef\MMLpunit{#1em}%
- \else
- \edefconvertedargument\ascii{#1}%
- \convertasciiafter\doifinstringelse{em}{\ascii}{\edef\MMLpunit{#1}}{%
- \convertasciiafter\doifinstringelse{ex}{\ascii}{\edef\MMLpunit{#1}}{%
- \convertasciiafter\doifinstringelse{pt}{\ascii}{\edef\MMLpunit{#1}}{%
- \edef\MMLpunit{#2}}}}%
- \fi}
-
-\defineXMLsingular [mspace] [width=.5em] {\directsetup{mmp:mspace}}
-
-\startsetups mmp:mspace
- \setMMLpunit{\XMLpar{mspace}{width}{}}{.5em}
- \hskip\MMLpunit
-\stopsetups
-
-\defineXMLsingular [mglyph] [fontfamily=,index=1,alt=] {\directsetup{mmp:mglyph}}
-
-\startsetups mmp:mglyph
- \def\MMLpglyph{\XMLpar{mglyph}{fontfamily}{}}%
- \doifelsenothing{\MMLpglyph} {
- \hbox{\tttf[fontfamily unspecified]}
- } {
- \doifdefinedelse{\MMLpglyph} {
- \hbox{\getvalue{\MMLpglyph}\char0\XMLpar{mglyph}{index}{1}}
- } {
- \doifelsenothing{\XMLpar{mglyph}{alt}{}} {
- \hbox{\tttf[unknown fontfamily \XMLpar{mglyph}{fontfamily}{}]}
- } {
- \hbox{\tttf\XMLpar{mglyph}{alt}{}}
- }
- }
- }
-\stopsetups
-
-\defineXMLsingular [malignmark] {}
-\defineXMLsingular [none] {}
-\defineXMLsingular [mprescripts] {}
-
-\defineXMLnested
- [mmultiscripts]
- {\setups{mmp:mmultiscripts:start}}
- {\setups{mmp:mmultiscripts:stop}}
-
-\startsetups mmp:mmultiscripts:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmp:mmultiscripts:stop
- \stopsavingXMLelements
- \donefalse
- \scratchcounter\zerocount
- \dorecurse\XMLstacklevel {
- % watch the extra {}'s
- \ifdone
- \ifodd\scratchcounter
- _{\getXMLstackdata\recurselevel}
- \else
- ^{\getXMLstackdata\recurselevel}{}
- \fi
- \else
- \doif{\getXMLstackname\recurselevel}{mprescripts}{\donetrue{}}
- \fi
- \ifdone \advance\scratchcounter\plusone \fi
-
- }
- \donetrue
- \scratchcounter\zerocount
- \dorecurse\XMLstacklevel {
- \ifdone
- % watch the extra {}'s
- \ifcase\scratchcounter
- \getXMLstackdata\recurselevel
- \else\ifodd\scratchcounter
- _{\getXMLstackdata\recurselevel}
- \else
- ^{\getXMLstackdata\recurselevel}{}
- \fi\fi
- \fi
- \doif{\getXMLstackname\recurselevel}{mprescripts}{\donefalse}
- \ifdone \advance\scratchcounter\plusone \fi
- }
- \endgroup
-\stopsetups
-
-% experimental patches
-
-\startmoduletestsection
-
-\let\MMLdoL\donothing
-\let\MMLdoR\donothing
-
-\startsetups mmc:apply:start
- \begingroup
- \startsavingXMLelements
-\stopsetups
-
-\startsetups mmc:apply:stop
- \stopsavingXMLelements
- \MMLmathinner {
- \expanded{\doifinsetelse{\getXMLstackname\plusone}{\MMLcmainresetlist,\MMLctempresetlist}}
- \MMLcreset
- \donothing
- \ifcase\MMLapplydepth \else
- \doifXMLparelse{apply}{open} \donothing{\getXMLarguments{apply}{open="("}}% slow
- \doifXMLparelse{apply}{close}\donothing{\getXMLarguments{apply}{close=")"}}% slow
- \fi
- \advance\MMLapplydepth\plusone
- \begingroup
- \doifXMLparelse{apply}{open} % now inside the group
- {\edef\MMLdoL{\noexpand\left \XMLpar{apply}{open} {(}}
- \edef\MMLdoR{\noexpand\right\XMLpar{apply}{close}{)}}}
- {\let\MMLdoL\donothing
- \let\MMLdoR\donothing}
- \let\MMLctempresetlist\empty
- \doifelse {\getXMLstackname\plusone} {apply} {
- % <apply> <apply> ... </apply> <ci> .. </ci> </apply>
- \doifelseMMCfunctioninapply \plusone {plus,minus} {
-% [a]
- % yet incomplete and rather untested
- % <apply> <apply> <minus/> <tan/> <cos/> </apply> <ci>x</ci> </apply>
- } {
-% [b]
- \MMLcreset
- }
- \MMLdoL
- \getXMLstackdata\plusone
- \ifconditional\somepostponedMMLactions
- \postponedMMLactions
- \else
- \left(\MMLcreset\getXMLstackdata\plustwo\right)
- \fi
- \MMLdoR
- } {
- \doifelse {\getXMLstackname\plusone} {fn} {
-% [c]
- % \MMLdoL/R are to be taken care of in the next setup
- \directsetup{mmc:fn:apply}
- } {
- \doifelse {\getXMLstackname\plusone} {csymbol} {
- % \MMLdoL/R are to be taken care of in the next setup
-% [d]
- \directsetup{mmc:csymbol:apply}
- } {
- \doifelse {\getXMLstackname\plusone} {ci} {
-% [e]
- % \MMLdoL/R are to be taken care of in the next setup
- \directsetup{mmc:ci:apply}
- } {
-% [f]
- \MMLdoL
- \getXMLstackdata\plusone
- \MMLdoR
- }
- }
- }
- }
- \endgroup
- \advance\MMLapplydepth\minusone
- \directsetup{apply:flush}
- }
- \endgroup
-\stopsetups
-
-\startsetups mmc:fn:apply
- \begingroup
- \startsavingXMLelements
- \rawXMLstacktext\plusone % still on stack, no check, just fn content
- \stopsavingXMLelements
- \doifelse {\getXMLstackname\plusone} {ci} {
- \flattenXMLcontent{\getXMLstackdata\plusone}
- \doifsetupselse{mmc:fn:\flattenedXMLcontent} {
- % \MMLdoL/MMLdoR to be handled in plugin
- \global\defXMLstackdata\XMLfnoperator\plusone
- \expanded{\endgroup\noexpand\directsetup{mmc:fn:\flattenedXMLcontent}}
- } {
- \endgroup
- \MMLcreset
- \MMLdoL
- \getXMLstackdata\plusone
- \ifnum\XMLstacklevel>\plusone
- \getXMLentity{NegThinSpace}
- \left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)
- \fi
- \MMLdoR
- }
- } {
- \endgroup
- \MMLcreset
- \MMLdoL
- \getXMLstackdata\plusone
- \MMLdoR
- }
-\stopsetups
-
-\startsetups mmc:csymbol:apply
- \begingroup
- \defineXMLsave[csymbol][definitionURL=,encoding=]
- \rawXMLstackdata\plusone % was text % still on stack, no check, just attr test
- % \MMLdoL/MMLdoR to be handled in plugin
- \lowercasestring\XMLpar{csymbol}{definitionURL}{}\to\mmcSymbolURL
- \doifsetupselse{mmc:csymbol:\mmcSymbolURL} {
- \expanded{\endgroup\noexpand\directsetup{mmc:csymbol:\mmcSymbolURL}}
- } {
- \endgroup
- %\XMLval{mmc:cs}{\XMLop{encoding}}{\firstofoneargument}% fails when no content
- \XMLval{mmc:cs}{\XMLop{encoding}}{}
- }
-\stopsetups
-
-\defineXMLsingular
- [csymbol]
- [encoding=text,
- definitionURL=]
- {\directsetup{mmc:csymbol:apply:singular}}
-
-\startsetups mmc:csymbol:apply:singular
- \lowercasestring\XMLpar{csymbol}{definitionURL}{}\to\mmcSymbolURL
- \directsetup{mmc:csymbol:\mmcSymbolURL}
-\stopsetups
-
-\startsetups mmc:ci:apply
- \getXMLstackdata\plusone
- \ifnum\XMLstacklevel>\plusone
- \left(\MMLcreset\flushXMLstackwith\plustwo{\MMLseparator,}\right)
- \fi
-\stopsetups
-
-\def\xflushXMLstackwith#1#2#3#4% num bgroup egroup whatever
- {\dostepwiserecurse{#1}\XMLstacklevel\plusone
- {#2\relax
- \ifnum\recurselevel>#1\relax#4\fi
- \getXMLstackdata\recurselevel
- #3}}
-
-\def\xflushXMLstackfrom#1#2#3%
- {\dostepwiserecurse{#1}\XMLstacklevel\plusone
- {#2\getXMLstackdata\recurselevel#3}}
-
-% <apply><divide/>
-% <apply><minus/>
-% <apply><minus/><ci>b</ci></apply>
-% <apply><minus/><ci>b</ci></apply>
-% <apply><root/> <ci>a</ci></apply>
-% </apply>
-% <apply><minus/>
-% <apply><minus/><ci>b</ci><ci>b</ci></apply>
-% <apply><minus/><ci>b</ci></apply>
-% <apply><root/> <ci>a</ci></apply>
-% </apply>
-% </apply>
-
-\startsetups mmc:minus
- \doif \@@MMLsignreduction \v!yes {
- \setMMLcreset{fn,\MMLcfunctionlist}
- }
- \ifcase\XMLstacklevel
- \or
- % self
- \or
- -\getXMLstackdata\plustwo
- \else
- \dostepwiserecurse\plustwo\XMLstacklevel\plusone {
- \begingroup
- \doifelse {\getXMLstackname\recurselevel} {apply} {
- \ifnum\recurselevel=\plustwo
- \begingroup
- \dodoifelseMMCfunctioninapply \recurselevel {minus} {
- \ifnum\XMLstacklevel>\plustwo
- \endgroup
- \else
- \endgroup
- \MMLcreset
- \fi
- } {
- \endgroup
- }
- \else
- \doifelseMMCfunctioninapply \recurselevel {\MMLcfunctionlist,\MMLcconstructlist} {
- \MMLcreset
- } {
- }
- \fi
- } {
- }
- \getXMLstackdata\recurselevel
- \ifnum\recurselevel<\XMLstacklevel\relax
- -
- \fi
- \endgroup
- }
- \fi
-\stopsetups
-
-\stopmoduletestsection
-
-\stopmodule
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-newmmo.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-newmmo.mkii
deleted file mode 100644
index 97fdeb06c0b..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-newmmo.mkii
+++ /dev/null
@@ -1,210 +0,0 @@
-%D \module
-%D [ file=x-newmmo,
-%D version=2006.05.17,
-%D title=\CONTEXT\ XML Macros,
-%D subtitle=MathML Renderer/Open Math Extensions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%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\letterhash 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/mathadore\letterhash 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/mathadore\letterhash 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/mathadore\letterhash diff
- \MMLcreset
- \frac {
- \mfunction{\getXMLentity{mathematicald}}\getXMLstackdata\plustwo
- } {
- \mfunction{\getXMLentity{mathematicald}}\getXMLstackdata\plusthree
- }
-\stopsetups
-
-%D A unit mess.
-
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_time1@second {\mr s}\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_time1@minute {\mr m}\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_time1@hour {\mr h}\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_time1@day {\mr d}\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_time1@week {\mr w}\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_time1@month {\mr m}\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_time1@year {\mr y}\stopsetups
-
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@meter {\mr m}\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@gram {\mr g}\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@liter {\mr l}\stopsetups
-
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@watt {\mr W}\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@pascal {\mr P}\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@kelvin {\mr K}\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@celsius {\mr C}\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@newton {\mr N}\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@byte {\mr B}\stopsetups
-
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_siprefix1@pico {\mr p}\getXMLstackdata\plustwo\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_siprefix1@micro \mu\getXMLstackdata\plustwo\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_siprefix1@milli {\mr m}\getXMLstackdata\plustwo\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_siprefix1@centi {\mr c}\getXMLstackdata\plustwo\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_siprefix1@deci {\mr d}\getXMLstackdata\plustwo\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_siprefix1@deca {\mr d}\getXMLstackdata\plustwo\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_siprefix1@hecto {\mr h}\getXMLstackdata\plustwo\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_siprefix1@kilo {\mr k}\getXMLstackdata\plustwo\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_siprefix1@mega {\mr m}\getXMLstackdata\plustwo\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_siprefix1@giga {\mr g}\getXMLstackdata\plustwo\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_siprefix1@tera {\mr t}\getXMLstackdata\plustwo\stopsetups
-
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash procent \procent\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash promille \promille\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash degree ^\circ\stopsetups
-
-% whatever
-
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash triangle
- \Delta\,
-\stopsetups
-
-% crap
-
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@degree_celsius
- \directsetup{mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@celsius}
-\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@degree_kelvin
- \directsetup{mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@kelvin}
-\stopsetups
-
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@metre
- \directsetup{mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@meter}
-\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@gramme
- \directsetup{mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@gram}
-\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@litre
- \directsetup{mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_metric1@liter}
-\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_time1@calendar_month
- \directsetup{mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_time1@month}
-\stopsetups
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_time1@calendar_year
- \directsetup{mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash units_time1@year}
-\stopsetups
-
-\startsetups mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash degree_angle
- \directsetup{mmc:csymbol:http://www.openmath.org/cd/mathadore\letterhash degree}
-\stopsetups
-
-\defineXMLargument
- [ci]
- {\checkMMLciSYMBOL}
-
-\def\checkMMLciSYMBOL#1%
- {\defconvertedargument\ascii{#1}%
- \executeifdefined{ci:symbol:crap:\ascii}{#1}}
-
-\setvalue{ci:symbol:crap:alpha}{\alpha}
-\setvalue{ci:symbol:crap:beta}{\beta}
-\setvalue{ci:symbol:crap:gamma}{\gamma}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-newpml.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-newpml.mkii
deleted file mode 100644
index ea3bae18262..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-newpml.mkii
+++ /dev/null
@@ -1,250 +0,0 @@
-%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 ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\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/modules/mkii/x-om2cml.xsl b/Master/texmf-dist/tex/context/modules/mkii/x-om2cml.xsl
deleted file mode 100644
index 4070d94dcc7..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-om2cml.xsl
+++ /dev/null
@@ -1,1342 +0,0 @@
-<?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) / adapted by HH -->
-
-<xsl:template match="om:OMOBJ">
- <xsl:choose>
- <xsl:when test="@style='inline'">
- <imath>
- <xsl:apply-templates/>
- </imath>
- </xsl:when>
- <xsl:when test="@style='display'">
- <dmath>
- <xsl:apply-templates/>
- </dmath>
- </xsl:when>
- <xsl:otherwise>
- <math>
- <xsl:apply-templates/>
- </math>
- </xsl:otherwise>
- </xsl:choose>
-</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:choose>
- <xsl:when test="@name='times'">
- <xsl:choose>
- <xsl:when test="../@style='empty'">
- <xsl:attribute name='symbol'></xsl:attribute>
- </xsl:when>
- <xsl:when test="../@style='cross'">
- <xsl:attribute name='symbol'>times</xsl:attribute>
- </xsl:when>
- <xsl:when test="../@style=''">
- <!-- inherit from parent times -->
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name='symbol'><xsl:value-of select="../@style"/></xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:when test="@name='divide'">
- <xsl:choose>
- <xsl:when test="../@style='inline'">
- <xsl:attribute name='alternative'>b</xsl:attribute>
- </xsl:when>
- </xsl:choose>
- </xsl:when>
- <xsl:when test="@name='plus'">
- <xsl:choose>
- <xsl:when test="../@style='empty'">
- <xsl:attribute name='alternative'>b</xsl:attribute>
- </xsl:when>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
- <!-- forget about it -->
- </xsl:otherwise>
- </xsl:choose>
- </xsl:element>
- </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:if test="../@style!=''">
- <xsl:attribute name='align'><xsl:value-of select="../@style"/></xsl:attribute>
- </xsl:if>
- </xsl:element>
- </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: TeX_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>
-
- <!-- TeX_encoding -->
- <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>
-
- <!-- **************************************************** -->
- <!-- ************** 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' or @cd='mathadore' or @cd='m4all') and @name]">
- <csymbol>
- <xsl:attribute name="definitionURL">
- <xsl:value-of select="concat(concat('http://www.openmath.org/cd/mathadore','#'),@name)"/>
- </xsl:attribute>
- </csymbol>
- </xsl:template>
-
-<!--
- <xsl:template match="om:OMS[@cd='mathadore' and @name]">
- <csymbol>
- <xsl:attribute name="definitionURL">
- <xsl:value-of select="concat(concat(@cd,'#'),@name)"/>
- </xsl:attribute>
- </csymbol>
- </xsl:template>
--->
-
- <xsl:template match="om:OMA[om:OMS[@cd='combinat1' and @name='binomial']]">
- <matrix>
- <matrixrow><xsl:apply-templates select="*[2]"/></matrixrow>
- <matrixrow><xsl:apply-templates select="*[3]"/></matrixrow>
- </matrix>
- </xsl:template>
-
- <!-- <OMS cd="units_siprefix1" name="centi" cdbase="mathadore"/> -->
- <!-- <OMS cd="units_metric1" name="metre" cdbase="mathadore"/> -->
-
- <xsl:template match="om:OMS[contains(@cd,'units_')]">
- <csymbol>
- <xsl:attribute name="definitionURL">
- <xsl:value-of select="concat(concat(concat(concat(
- 'http://www.openmath.org/cd/mathadore','#'),@cd),'@'),@name)"/>
- </xsl:attribute>
- </csymbol>
- </xsl:template>
-
-</xsl:stylesheet>
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-openmath.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-openmath.mkii
deleted file mode 100644
index 38474996e1b..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-openmath.mkii
+++ /dev/null
@@ -1,4 +0,0 @@
-% This module is yet empty. We assume a transformation using
-% x-openmath.xsl.
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-openmath.xsl b/Master/texmf-dist/tex/context/modules/mkii/x-openmath.xsl
deleted file mode 100644
index ffb40493951..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-openmath.xsl
+++ /dev/null
@@ -1,35 +0,0 @@
-<?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/modules/mkii/x-physml.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-physml.mkii
deleted file mode 100644
index 4d9cffe3325..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-physml.mkii
+++ /dev/null
@@ -1,16 +0,0 @@
-%D \module
-%D [ file=m-physml,
-%D version=2001.09.04,
-%D title=\CONTEXT\ XML Modules,
-%D subtitle=Loading PHYSML Filters,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\usemodule[units] \useXMLfilter[pml,pmu]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-physml.xsd b/Master/texmf-dist/tex/context/modules/mkii/x-physml.xsd
deleted file mode 100644
index 865d88c58ed..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-physml.xsd
+++ /dev/null
@@ -1,172 +0,0 @@
-<?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/modules/mkii/x-res-00.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-res-00.mkii
deleted file mode 100644
index d031e1453ed..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-res-00.mkii
+++ /dev/null
@@ -1,67 +0,0 @@
-%D \module
-%D [ file=x-res-00,
-%D version=2001.03.21,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Resource Libraries,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect
-
-% \defineXMLcommandpush [rl:instance] (todo)
-% \rawframed == [frame=off,offset=overlay]
-
-% resource library
-
-\defineXMLprocess [rl:figurelibrary] % not to be used any longer
-\defineXMLprocess [rl:library]
-
-% resource library description
-
-\defineXMLignore [rl:description]
-
-\defineXMLpush [rl:organization]
-\defineXMLpush [rl:product]
-\defineXMLpush [rl:project]
-\defineXMLpush [rl:collection]
-
-% resource library entries (better use XMLignore)
-
-\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:file]
-\defineXMLpush [rl:label]
-\defineXMLpush [rl:original]
-\defineXMLpush [rl:title]
-\defineXMLpush [rl:alternative]
-\defineXMLpush [rl:dummy]
-\defineXMLpush [rl:icon]
-\defineXMLpush [rl:copyright]
-\defineXMLpush [rl:comment]
-\defineXMLpush [rl:status]
-\defineXMLpush [rl:original]
-\defineXMLpush [rl:manipulation]
-
-% instances
-
-\defineXMLignore [rl:instance]
-
-\defineXMLpush [rl:background]
-\defineXMLpush [rl:viewport]
-\defineXMLpush [rl:dimension]
-\defineXMLpush [rl:position]
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-res-01.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-res-01.mkii
deleted file mode 100644
index 41580a0b8ef..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-res-01.mkii
+++ /dev/null
@@ -1,487 +0,0 @@
-%D \module
-%D [ file=x-fig-01,
-%D version=2001.03.21,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Figure Base Generation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D See \type {x-fig-00.tex} and \type {x-fig-04.tex} for more
-%D information on how to use and generate figure databases.
-%D This file loads the file named \type {\jobfilename}
-%D (\TEXEXEC\ will set this variable). You can apply this
-%D style to a database by saying:
-%D
-%D \starttyping
-%D texexec --pdf --use=fig-make yourfile.xml
-%D \stoptyping
-%D
-%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 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:
-%D
-%D \startitemize[packed]
-%D \item the document is split into three sections: first each
-%D figure is shown at its own page, then an overview of
-%D figures is shown with some data alongside, and
-%D finally an index and table of contents shows up
-%D \item there is no title page, which means that one can
-%D access a figure by page number without offset
-%D \item the document is opened at the first overview page,
-%D that is, when the viewer supports it
-%D \item the graphic is shown 3~times: on a page of its own,
-%D scaled to a fixed dimension, and relative to a4 or
-%D letter paper size
-%D \item the labels can be accessed in an index and list at
-%D the end of the document
-%D \stopitemize
-%D
-%D We use named destinations, which means that one can
-%D access a figure by name from an external application.
-
-\usemodule[res-00]
-
-\autoXMLnamespace[rl]
-
-\setupoutput[pdftex] \overcomePDFspacefalse
-
-\setjobfullname {xml} % default suffix
-
-\doifnothing {\jobfullname} {\end}
-\doiffileelse {\jobfullname} {} {\end}
-
-\definesymbol [attachment] [{\bf\color[darkred]{\jobname.xml}}]
-\setupattachments [symbol=attachment]
-\useattachment [datafile] [\jobname.xml]
-
-\def\StartDescription
- {\bgroup}
-
-\def\StopDescription
- {\subject {Figure collection}
- \starttabulate[|lBe|p|]
- \doifXMLdataelse{rl:organization}
- {\NC organization \NC \XMLflush{rl:organization} \NC \NR}{}
- \doifXMLdataelse{rl:project}
- {\NC project \NC \XMLflush{rl:project} \NC \NR}{}
- \doifXMLdataelse{rl:product}
- {\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\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
- [width=\XMLpar{rl:dummy}{width}{12cm},
- height=\XMLpar{rl:dummy}{height}{8cm},
- background=color,
- backgroundcolor=gray,
- foregroundcolor=darkred,
- align={lohi,middle}, % normal,
- frame=off]
- {\bf \XMLflush{rl:dummy}}
-\stopbuffer
-
-\useexternalfigure[unknown][unknown][type=buffer,object=no]
-
-\defineoverlay[page][\overlaybutton{Description}]
-
-% \def\externalfigurereplacement#1#2#3%
-% {\getbuffer[rl-unknown]}
-
-\def\StopFigureA
- {\doglobal\increment\CurrentPage
- \setupbackgrounds[page][background=page]
- \doifelsenothing{\XMLflush{rl:label}}
- {\expanded{\definereference[Description][about:\XMLflush{rl:file}]}%
- \expanded{\pagereference[\XMLflush{rl:file}]}}
- {\expanded{\definereference[Description][about:\XMLflush{rl:label}]}%
- \expanded{\pagereference[\XMLflush{rl:label}]}}
- \pagefigure[\XMLflush{rl:file}]
- \setupbackgrounds[page][background=]
- \egroup}
-
-\def\StartFigureB
- {\StartFigureA}
-
-\defineregister
- [figureindex]
- [figureindices]
-
-\setupregister
- [figureindex]
- [ownnumber=yes,
- criterium=text,
- interaction=text,
- indicator=no]
-
-\definelist
- [figurelist]
-
-\setuplist
- [figurelist]
- [criterium=text,
- pagenumber=no,
- width=2em,
- interaction=all]
-
-\setupcolors
- [state=start]
-
-\setuptolerance
- [verytolerant]
-
-% Ulgy:
-
-\startmode[letter] % downward compatible
- \enablemode[previewpage-letter]
-\stopmode
-
-\startnotmode[previewpage-letter,previewpage-S6]
- \enablemode[previewpage-A4]
-\stopnotmode
-
-\startsetups[paper]
-\startmode[previewpage-A4]
- \framed
- [width=210mm,height=297mm,offset=overlay,frame=off,
- background=color,backgroundcolor=white]
- {\externalfigure[\XMLflush{rl:file}][reset=yes]}
-\stopmode
-\startmode[previewpage-letter]
- \framed
- [width=8.5in,height=11in,offset=overlay,frame=off,
- background=color,backgroundcolor=white]
- {\externalfigure[\XMLflush{rl:file}][reset=yes]}
-\stopmode
-\startmode[previewpage-S6]
- \framed
- [width=600pt,height=450pt,offset=overlay,frame=off,
- background=color,backgroundcolor=white]
- {\externalfigure[\XMLflush{rl:file}][reset=yes]}
-\stopmode
-\stopsetups
-
-\setupbuttons
- [offset=10pt,
- width=broad,
- strut=no,
- rulethickness=1pt,
- framecolor=darkred]
-
-\definecolor[XMLRLcolor][white]
-
-\def\StopFigureB
- {\doglobal\increment\CurrentPage
- \doifelsenothing{\XMLflush{rl:label}}
- {\expanded{\definereference[Figure][\XMLflush{rl:file}]}%
- \expanded{\definereference[GridPg][grid:\XMLflush{rl:file}]}}
- {\expanded{\definereference[Figure][\XMLflush{rl:label}]}%
- \expanded{\definereference[GridPg][grid:\XMLflush{rl:label}]}}%
- \button
- {\hbox to \hsize
- {\forgetall \dontcomplain
- \doifelsenothing{\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
- %
- \expanded{\writetolist[figurelist]{\CurrentPage}{\XMLflush{rl:label}}}%
- \expanded{\figureindex{\CurrentPage}{\XMLflush{rl:label}}}%
- \startnotmode[compact]%
- \vbox to 100pt
- {\hsize30pt
- \vskip5pt
- \hbox to \hsize{\hss\strut\bf\CurrentPage\hss}%
- \vfill}%
- \advance\hsize by -30pt
- \stopnotmode
- \startmode[compact]%
- \advance\hsize by -10pt
- \hskip10pt
- \stopmode
- \button % \framed
- [width=150pt,height=100pt,offset=10pt,frame=off,
- background=color,backgroundcolor=white,color=]
- {\externalfigure
- [\XMLflush{rl:file}]
- %[maxheight=80pt,frame=off,maxwidth=130pt,factor=max]}%
- [factor=max]}%
- [GridPg]%
- \let\FigWid\figurenaturalwidth
- \let\FigHei\figurenaturalheight
- \advance\hsize by -150pt
- \hskip10pt
- \advance\hsize by -10pt
- \vbox to 100pt
- {\hsize40pt
- %\externalfigure
- % [paper]
- % [type=buffer,frame=on,
- % framecolor=darkred,rulethickness=.5pt,
- % width=40pt,object=no]
- \framed
- [offset=overlay,
- framecolor=darkred,
- rulethickness=.5pt]
- {\scale[width=40pt]{\setups[paper]}}%
- \startmode[compact]%
- \vfill
- \hbox to \hsize{\hss\strut\bf\CurrentPage\hss}%
- \stopmode
- \vfill}%
- \advance\hsize by -40pt
- \hskip10pt
- \advance\hsize by -10pt
- \vbox to 100pt
- {\blank[disable]
- \starttabulate[|Bel|p|]
- \NC file \NC \XMLflush{rl:file} \NC \NR
- \doifXMLdata{rl:label}
- {\NC label \NC \XMLflush{rl:label} \NC \NR}
- \NC w$\times$h \NC \FigWid$\times$\FigHei \NC \NR
- \doifXMLdata{rl:copyright}
- {\NC copyright \NC \XMLflush{rl:copyright} \NC \NR}
- \doifXMLdata{rl:status}
- {\doifelse{\XMLflush{rl:status}}{obsolete}
- {\NC status \NC \dontleavehmode \color[darkred]{\bf\XMLflush{rl:status}} \NC \NR}
- {\NC status \NC \XMLflush{rl:status} \NC \NR}}
- \doifXMLdata{rl:comment}
- {\NC comment \NC \XMLflush{rl:comment} \NC \NR}
- \stoptabulate
- \vfill}}}%
- [Figure]
- \vskip10pt
- \egroup}
-
-\def\StartFigureC
- {\StartFigureA}
-
-\def\StopFigureC
- {\doglobal\increment\NumberOfFigures
- \egroup}
-
-\setuplayout
- [topspace=15pt,backspace=15pt,
- header=0pt,footer=0pt,bottom=20pt,bottomdistance=10pt,
- width=middle,height=fit]
-
-\setupbackgrounds
- [page]
- [background=,
- backgroundcolor=gray]
-
-\setupinteractionscreen
- [width=max,
- height=max]
-
-\setupcolors
- [state=start]
-
-\setupinteraction
- [style=,
- color=,
- contrastcolor=,
- state=start]
-
-\setuphead
- [section]
- [style=bfb]
-
-% \setupbodyfont
-% [pos]
-
-\setupinteractionmenu
- [bottom]
- [left=\hfill,
- middle=\hskip10pt,
- frame=off,
- style=bold,
- background=color,
- backgroundcolor=darkred,
- foregroundcolor=white]
-
-\startinteractionmenu[bottom]
- \but [begin] begin \\
- \but [index] index \\
- \but [list] list \\
- \but [CloseDocument] close \\
- \but [PreviousJump] go back \\
-\stopinteractionmenu
-
-\setupinteraction
- [openaction=begin]
-
-\defineXMLenvironment [rl:figurelibrary] \StartLibrary \StopLibrary
-\defineXMLenvironment [rl:library] \StartLibrary \StopLibrary
-
-\starttext
-
-\def\StartLibrary{\mainlanguage[\XMLpar{rl:library}{language}{en}]}
-\def\StopLibrary {}
-
-\defineXMLignore [rl:description]
-\defineXMLenvironment [rl:figure] \StartFigureC \StopFigureC
-
-\doglobal\newcounter\CurrentPage
-
-\processXMLfilegrouped{\jobfullname}
-
-\increment\NumberOfFigures
-
-\defineXMLignore [rl:description]
-\defineXMLenvironment [rl:figure] \StartFigureA \StopFigureA
-
-\doglobal\newcounter\CurrentPage
-
-\processXMLfilegrouped{\jobfullname}
-
-\setuppapersize
- [S6][S6]
-
-\setupbackgrounds
- [page]
- [background=color]
-
-\setupinteraction
- [menu=on]
-
-\defineXMLenvironment [rl:description] \StartDescription \StopDescription
-\defineXMLenvironment [rl:figure] \StartFigureB \StopFigureB
-
-\doglobal\newcounter\CurrentPage
-
-\processXMLfilegrouped{\jobfullname} \page
-
-\subject [list] {List of figures}
-
-\placelist[figurelist] \page
-
-\subject [index] {Index of figures}
-
-\startcolumns
-\placeregister[figureindex]
-\stopcolumns
-
-\doifmodeelse{clipgrid-distance,clipgrid-steps}{\page}{\stoptext}
-
-\startuniqueMPgraphic{clipgrid}{dx,dy,nx,ny,type}
- numeric gdx, gdy, lbx, lby ;
- if \MPvar{type}=1 :
- gdx := \MPvar{dy} ;
- gdy := \MPvar{dx} ;
- else :
- gdx := OverlayWidth /\MPvar{nx} ;
- gdy := OverlayHeight/\MPvar{ny} ;
- fi ;
- lbx := gdx ;
- lby := gdy ;
- defaultfont := "\truefontname{Mono}" ;
- defaultscale := .5 ;
- numeric pen ; pen := .25pt ;
- def MyGrid text t =
- draw vlingrid (0,OverlayWidth ,gdy,OverlayWidth ,OverlayHeight) t ;
- draw hlingrid (0,OverlayHeight,gdx,OverlayHeight,OverlayWidth ) t ;
- enddef ;
- pickup pencircle scaled pen ;
- MyGrid withcolor white ;
- MyGrid dashed evenly scaled pen ;
- draw OverlayBox withcolor white ;
- draw OverlayBox dashed evenly scaled pen ;
- draw vlinlabel.bot(0,eps+OverlayWidth /lby,2,OverlayWidth ) ;
- draw hlinlabel.lft(0,eps+OverlayHeight/lbx,2,OverlayHeight) ;
- setbounds currentpicture to OverlayBox enlarged (2*EmWidth) ;
-\stopuniqueMPgraphic
-
-\presetMPvariable[clipgrid][dx=10pt]
-\presetMPvariable[clipgrid][dy=10pt]
-\presetMPvariable[clipgrid][nx=10]
-\presetMPvariable[clipgrid][ny=10]
-
-\startmode[clipgrid-distance]
- \defineoverlay[grid][\uniqueMPgraphic{clipgrid}{type=1}]
-\stopmode
-
-\startmode[clipgrid-steps]
- \defineoverlay[grid][\uniqueMPgraphic{clipgrid}{type=2}]
-\stopmode
-
-\setupexternalfigures
- [background={color,foreground,grid},
- backgroundcolor=white]
-
-\def\StartFigureD
- {\StartFigureA}
-
-\def\StopFigureD
- {\doglobal\increment\CurrentPage
- \setupbackgrounds[page][background=page]
- \startpagefigure[\XMLflush{rl:file}][offset=20pt]%
- \doifelsenothing{\XMLflush{rl:label}}
- {\expanded{\definereference[Description][about:\XMLflush{rl:file}]}%
- \expanded{\pagereference[grid:\XMLflush{rl:file}]}}
- {\expanded{\definereference[Description][about:\XMLflush{rl:label}]}%
- \expanded{\pagereference[grid:\XMLflush{rl:label}]}}
- \stoppagefigure
- %\pagefigure[\XMLflush{rl:file}][offset=20pt]
- \setupbackgrounds[page][background=]
- \egroup}
-
-\defineXMLignore [rl:description]
-\defineXMLenvironment [rl:figure] \StartFigureD \StopFigureD
-
-\doglobal\newcounter\CurrentPage
-
-\processXMLfilegrouped{\jobfullname} \page
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-res-02.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-res-02.mkii
deleted file mode 100644
index f8502dbac1c..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-res-02.mkii
+++ /dev/null
@@ -1,72 +0,0 @@
-%D \module
-%D [ file=x-res-02,
-%D version=2001.03.21,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Figure Base Inclusion (I),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module enables non||\ConTeXt\ users to access the
-%D database. For this, you need to run
-%D
-%D \starttyping
-%D texexec --pdf --use=fig-fake yourfile.xml
-%D \stoptyping
-%D
-%D The resulting file, \type {yourfile.fig}, can be loaded
-%D in the normal way. The figures can be accessed with:
-%D
-%D \starttyping
-%D \getfigurefile{label}
-%D \getfigurepage{label}
-%D \stoptyping
-%D
-%D A a bonus, the following macro is defined:
-%D
-%D \starttyping
-%D \includefigurefile width 10cm {label}
-%D \stoptyping
-
-\usemodule[res-00]
-
-\doifnothing {\jobfullname} {\end}
-\doiffileelse {\jobfullname} {} {\end}
-
-\defineXMLenvironment [rl:figurelibrary] \StartLibrary \StopLibrary
-\defineXMLenvironment [rl:library] \StartLibrary \StopLibrary
-\defineXMLenvironment [rl:figure] \StartFigure \StopFigure
-
-\def\StartLibrary
- {\immediate\openout \scratchwrite=\jobfilename.fig
- \immediate\write\scratchwrite{\string\input\space x-fig-03.tex \string\relax}
- \immediate\write\scratchwrite{}}
-
-\def\StopLibrary
- {\immediate\write\scratchwrite{}
- \immediate\write\scratchwrite{\string\endinput}
- \immediate\closeout\scratchwrite}
-
-\def\StartFigure
- {\bgroup}
-
-\def\StopFigure
- {\doglobal\increment\CurrentPage
- \immediate\write\scratchwrite
- {\string\setfiguredata\space
- {\XMLpop{rl:label}}
- {\jobfilename}
- {\CurrentPage}}
- \egroup}
-
-\doglobal\newcounter\CurrentPage
-
-\starttext
-
-\processXMLfilegrouped{\jobfullname}
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-res-03.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-res-03.mkii
deleted file mode 100644
index 15f2620c1be..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-res-03.mkii
+++ /dev/null
@@ -1,44 +0,0 @@
-%D \module
-%D [ file=x-fig-03,
-%D version=2001.03.21,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Figure Base Inclusion (II),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\ifx \undefined \convertMPtoPDF \input supp-pdf.tex \fi
-\ifx \undefined \includefigurefile \else \expandafter \endinput \fi
-
-\gdef\getfigurefile#1%
- {\expandafter\ifx\csname x-fig-f-#1\endcsname\relax
- \currentfigurefile
- \else
- \csname x-fig-f-#1\endcsname
- \fi}
-
-\gdef\getfigurepage#1%
- {\expandafter\ifx\csname x-fig-p-#1\endcsname\relax
- 1%
- \else
- \csname x-fig-p-#1\endcsname
- \fi}
-
-\gdef\setfiguredata#1#2#3%
- {\gdef\currentfigurefile{#2}%
- \expandafter\gdef\csname x-fig-f-#1\endcsname{#2}%
- \expandafter\gdef\csname x-fig-p-#1\endcsname{#3}}
-
-\def\includefigurefile#1#%
- {\doincludefigurefile{#1}}
-
-\def\doincludefigurefile#1#2%
- {\edef\next{\noexpand\pdfimage
- #1 page \getfigurepage{#2} {\getfigurefile{#2}.pdf}}%
- \next}
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-res-04.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-res-04.mkii
deleted file mode 100644
index b22e9ffa439..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-res-04.mkii
+++ /dev/null
@@ -1,336 +0,0 @@
-%D \module
-%D [ file=x-fig-04,
-%D version=2001.03.21,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Figure Base Loading,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% hele base laden
-
-\setXMLfallbackmode3
-
-% icon : preview
-% caption : \figurebasevariable{caption}
-% background : rgb cmyk gray name
-% dimensions : width height offset (l,r,t,b) area
-% alternative : tag label / evt list
-%
-% movie
-% sound
-% applet
-% application
-
-\usemodule[res-00] % basic element definitions
-
-%D This module implements an interface to a figure database
-%D and file. The database is formatted in \XML\ conforming
-%D the following \DTD:
-%D
-%D \typefile{x-fig-00.dtd}
-%D
-%D A figure base coded this way looks like:
-%D
-%D \starttyping
-%D <!-- texexec --pdf --use=fig-01 figtest.xml -->
-%D
-%D <?xml version='1.0'?>
-%D
-%D <rl:library language="nl">
-%D
-%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 <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 <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
-%D \TEXEXEC\ and another module in this suite.
-%D
-%D \starttyping
-%D texexec --pdf --use=fig-make yourfile.xml
-%D \stoptyping
-%D
-%D You can now select a graphic from this file using the
-%D
-%D \starttyping
-%D \externalfigure[a dutch cow][width=4cm]
-%D \stoptyping
-%D
-%D This module overloads this command so that a figure is
-%D it first searched in the list of databases.
-%D
-%D \starttyping
-%D \usemodule [fig-base]
-%D \usefigurebases[yourfile]
-%D \stoptyping
-%D
-%D The special keyword \type {reset} can be used to reset
-%D this list.
-
-\startcommands dutch english
- german czech
- italian romanian
-
- usefigurebase: gebruikfiguurbestand usefigurebase
- usefigurebase usefigurebase
- usefigurebase usefigurebase
-
-\stopcommands
-
-\unprotect
-
-\consultutilityfilefalse
-
-% 0 = no loading
-% 1 = selective loading
-% 2 = full loading
-
-\chardef\figurebasemode=1 % 2
-
-\newcounter\figurefilepage
-
-% loading a complete figure base
-
-\startXMLmapping[rl:load]
-
-\defineXMLenvironmentsave [rl:figure]
- {\bgroup}
- {\XMLflush{rl:figure}
- \doglobal\increment\figurefilepage
- \figbase@savedata{\XMLflush{rl:label}}\figurefilepage
- \egroup}
-
-\stopXMLmapping
-
-\def\loadfigurebase#1%
- {\doifnotflagged{rl:#1}
- {\writestatus{figbase}{loading #1 into memory}%
- \startnointerference
- \autoXMLnamespace[rl]
- \startXMLmapping[rl:load]
- \doglobal\newcounter\figurefilepage
- \processXMLfilegrouped{#1.xml}
- \stopXMLmapping
- \doglobal\setflag{rl:#1}
- \stopnointerference}}
-
-\def\figbase@savedata#1#2%
- {%\writestatus{figbase}{data of #1 loaded}%
- \doglobal\saveXMLdatastructure{rl:rl:#1}{record}{page="#2"}{}{rl:figure}{}}
-
-% locating and if needed loading one figure record
-
-\startXMLmapping[rl:find]
-
-\defineXMLenvironment[rl:instance]
- {\bgroup}
- {\doif\askedlabel{\XMLflush{rl:label}}
- {\doglobal\saveXMLdata{rl:g:manipulation}{rl:manipulation}%
- \doifXMLdata{rl:original}
- {\xdef\askedlabel{\XMLflush{rl:original}}}}%
- \egroup}
-
-\defineXMLenvironmentsave [rl:figure]
- {\bgroup}
- {\XMLflush{rl:figure}
- \doglobal\increment\figurefilepage
- %\doshowfigurestate{base : comparing \askedlabel\space with \XMLflush{rl:label}}%
- \doif\askedlabel{\XMLflush{rl:label}}
- {\doshowfigurestate{base label : found \askedlabel}%
- \ifnum\figurebasemode=\plusone % load used ones
- \figbase@savedata\askedlabel\figurefilepage
- \fi
- \doglobal\saveXMLdata{rl:l:manipulation}{rl:manipulation}%
- \xdef\figurefilelabel {\XMLflush{rl:label}}%
- \xdef\figurefilefile {\XMLflush{rl:file}}%
- \xdef\figurefileoriginal{\XMLflush{rl:original}}%
- \xdef\figurefilename {\XMLflush{rl:file}}
- \endinput}%
- \egroup}
-
-\defineXMLenvironment [rl:record]
- {}
- {\xdef\figurefilename{\XMLpop{rl:file}}
- \xdef\figurefilepage{\XMLop {page}}}
-
-\stopXMLmapping
-
-\def\getfigurefilename#1#2%
- {\ifnum\figurebasemode=\plustwo \loadfigurebase{#1} \fi
- \startnointerference
- \traceXMLelementsfalse
- \resetfigurefilebase
- \doglobal\newcounter\figurefilepage
- \autoXMLnamespace[rl]
- \startXMLmapping[rl:find]
- \xdef\figurefilebase{#1}%
- \def\askedlabel{#2}%
- \doifelseXMLelement{rl:rl:\askedlabel}
- {\enableXMLelements\flushXMLelement{rl:rl:\askedlabel}}
- {\doshowfigurestate{base path : \figurepathlist}%
- \processcommacommand[\figurepathlist]\dogetfigurefilename}%
- \stopXMLmapping
- \stopnointerference}
-
-% todo: niet toegekende naam doorgeven aan calculate en pad
-% in padstring
-
-\def\dogetfigurefilename#1%
- {\ifx\figurefilename\empty
- \bgroup
- \doglobal\newcounter\figurefilepage
- \globalletempty\figurefilelabel
- \globalletempty\figurefileoriginal
- \globalletempty\figurefilefile
- \xdef\figurefilebasepath{#1}%
- \assignfullfilename{#1}{\figurefilebase}\to\filename
- \doiffileelse{\filename.xml}
- {\doshowfigurestate{base file : \filename}%
- \expanded{\processXMLfilegrouped{\filename.xml}}}
- \donothing
- \ifx\figurefilename\empty \else
-% \global\let\figurefilebase\figurefilebase
- \globallet\figurefilebase\filename % hm, bad omen that this is needed
- \fi
- \egroup
- \fi}
-
-\newtoks\figurebaseresets
-
-\appendtoks
- \globalletempty\figurefilebase
- \globalletempty\figurefilename
- \globalletempty\figurefilebasepath
- \globalletempty\figurefilepage
- \globalletempty\figurefilelabel
- %\globalletempty\figurefileoriginal
- %\globalletempty\figurefilefile
-\to\figurebaseresets
-
-\def\resetfigurefilebase
- {\the\figurebaseresets}
-
-\ifx\doshowfigurestate\undefined \let\doshowfigurestate\gobbleoneargument \fi
-
-\def\doanalyzefiguredimensionsfromfile
- {\ifcase\figurestatus \ifx\figurebaselist\empty \else
- \resetfigurefilebase
- \doshowfigurestate{base list : \figurebaselist}%
- \processcommacommand[\figurebaselist]\dodoanalyzefiguredimensionsfromfile
- \ifx\figurefilename\empty
- \doshowfigurestate{base warning : no matching name found}%
- \else
- \doiffileelse{\figurefilebase.pdf}
- {\doshowfigurestate{base file : \figurefilebase.pdf}%
- \doshowfigurestate{base page : \figurefilepage}%
- \let\figurepathlist\figurefilebasepath
- \analyzefigurefilename{\figurefilebase.pdf}\wantedfigurelabel
- \let\wantedfigurepage\figurefilepage}
- {\doshowfigurestate{base missing : \figurefilebase.pdf}}
- \fi
- \ifcase\figurestatus
- \analyzefigurefilename\expandedfigurename\wantedfigurelabel
- \fi
- \fi \fi}
-
-\def\dodoanalyzefiguredimensionsfromfile#1%
- {\doshowfigurestate{base check : \wantedfigurename\space in #1}%
- \getfigurefilename{#1}\wantedfigurename
- \ifx\figurefilename\empty\else
- \quitcommalist
- \fi}
-
-% management
-
-% will become \useresourcelibrary
-
-\def\usefigurebase[#1]%
- {\doifelse{#1}\v!reset
- {\let\figurebaselist\empty}
- {\addtocommalist{#1}\figurebaselist}}
-
-\let\figurebaselist\empty
-
-\resetfigurefilebase
-
-% manipulations / todo: fixed order
-
-\defineXMLsave [rl:manipulation]
-
-\defineXMLsingular [rl:background] [r=0,g=0,b=0,s=0,c=0,m=0,y=0,k=0]
- {\global\setbox\foundexternalfigure\vbox
- {\definecolor
- [XMLRLcolor]
- [r=\XMLop{r},g=\XMLop{g},b=\XMLop{b},s=\XMLop{s},%
- c=\XMLop{c},m=\XMLop{m},y=\XMLop{y},k=\XMLop{k}]%
- \framed
- [\c!frame=\v!off,\c!offset=\v!overlay,
- \c!background=\v!color,\c!backgroundcolor=XMLRLcolor]
- {\box\foundexternalfigure}}}
-
-\defineXMLsingular [rl:viewport] [\??cp] % []
- {\global\setbox\foundexternalfigure\vbox
- {\expandXMLta \getXMLta
- \clip
- [\XMLta]
- {\box\foundexternalfigure}}%
- \global\setbox\foundexternalfigure\vbox
- {\scale
- [\c!width=\figurewidth,\c!height=\figureheight]
- {\box\foundexternalfigure}}}
-
-\defineXMLsingular [rl:dimensions] [width=,height=]
- {}
-
-\defineXMLsingular [rl:position] [offset=,width=,height=,hoffset=,voffset=]
- {}
-
-\appendtoks
- \doglobal\eraseXMLelement{rl:l:manipulation}%
- \doglobal\eraseXMLelement{rl:g:manipulation}%
-\to \figurebaseresets
-
-\appendtoks
- \startnointerference
- \processXMLelement{rl:l:manipulation}%
- \processXMLelement{rl:g:manipulation}%
- \stopnointerference
-\to \externalfigurepostprocessors
-
-\protect \doifnotmode{demo}{\endinput}
-
-\starttext
-
-\setupcolors[state=start]
-
-\usefigurebase[d-fig-01]
-
-\externalfigure[part of a dutch cow][width=3cm,frame=on]
-\externalfigure[a simple dutch cow][width=5cm,frame=on]
-\externalfigure[another simple dutch cow][width=5cm,frame=on]
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-res-08.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-res-08.mkii
deleted file mode 100644
index 0805f071fdb..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-res-08.mkii
+++ /dev/null
@@ -1,129 +0,0 @@
-%D \module
-%D [ file=x-fig-08,
-%D version=2002.06.27,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Resource Reporting,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D TODO: make rlxtools callable from texexec (class), speeds up things.
-
-%D Experimental module!
-%D
-%D \starttyping
-%D <rl:library>
-%D <rl:usage>
-%D <rl:type>figure</rl:type>
-%D <rl:state>found|missing</rl:state>
-%D <rl:name>filename</rl:name>
-%D <rl:suffix>filesuffix</rl:suffix>
-%D <rl:width>width in pt</rl:width>
-%D <rl:height>height in pt</rl:height>
-%D <rl:comment>text</rl:comment>
-%D </rl:usage>
-%D </rl:library>
-%D \stoptyping
-
-\unprotect \doifnotmode{\systemmodeprefix\v!first}{\protect\endinput}
-
-\def\XMLrlprefix{rl:}
-
-\newwrite\XMLrllog
-
-\def\openXMLresourcelog
- {\immediate\openout\XMLrllog\jobname.rlg\relax
- \immediate\write\XMLrllog{\XMLbanner{standalone='yes'}}%
- \immediate\write\XMLrllog{\writtenXMLstart{\XMLrlprefix library}}}
-
-\def\closeXMLresourcelog
- {\immediate\write\XMLrllog{\writtenXMLend{\XMLrlprefix library}}%
- \immediate\closeout\XMLrllog}
-
-\let\figurefilelabel \empty
-\let\figurefileoriginal \empty
-\let\figurefilefile \empty
-\let\figurefilepath \empty
-\let\figurefileconversion\empty
-\let\figurefileprefix \empty
-
-\def\XMLfeedbackresource#1#2%
- {\begingroup
- \defconvertedcommand\currentresourcecomment\currentresourcecomment
- \doifnothing\figurefilefile{\edef\figurefilefile{\figurefilename.\figurefiletype}}%
- \immediate\write\XMLrllog
- {\writtenXMLelement{\XMLrlprefix usage}%
- {\writtenXMLelement{\XMLrlprefix type}{#2}% 'figure' not the type in \extenalfigure
- \writtenXMLelement{\XMLrlprefix state}{#1}% 'missing' 'found' etc
- \ifx\figurefilelabel\empty
- \ifx\figurelabel\s!dummy \else % otherwise label equals filename
- \writtenXMLelementcs{\XMLrlprefix label}\figurelabel
- \fi
- \writtenXMLelementcs{\XMLrlprefix file}\figurefilefile % complete name
- \writtenXMLelementcs{\XMLrlprefix name}\figurefilename % no suffix
- \writtenXMLelementcs{\XMLrlprefix suffix}\figurefiletype
- \else
- % \figurefilelabel is set in x-res-04 and since
- % we fetch from this base using the normal
- % \externalfigure macro, the label becomes the
- % name of the figurebase
- \writtenXMLelementcs{\XMLrlprefix base}\figurefilename
- \writtenXMLelementcs{\XMLrlprefix label}\figurefilelabel
- \writtenXMLelementcs{\XMLrlprefix file}\figurefilefile
- \fi
- \writtenXMLelementcs{\XMLrlprefix path}\figurefilepath
- \writtenXMLelementcs{\XMLrlprefix original}\figurefileoriginal
- \writtenXMLelementcs{\XMLrlprefix conversion}\figurefileconversion
- \writtenXMLelementcs{\XMLrlprefix prefix}\figurefileprefix
- \writtenXMLelementcs{\XMLrlprefix cache}\figurefilecache
- \ifnum\figurefilepage>\zerocount
- \writtenXMLelement{\XMLrlprefix page}\figurefilepage
- \fi
- \writtenXMLelementcs{\XMLrlprefix comment}\currentresourcecomment
- \ifconditional\externalfigureflush
- \writtenXMLelementcs{\XMLrlprefix width}\figurewidth
- \writtenXMLelementcs{\XMLrlprefix height}\figureheight
- \fi}}%
- \endgroup}
-
-\def\XMLfeedbackexternalfigure
- {\doifmodeelse{*\v!figure}%
- {\XMLfeedbackresource{found}}%
- {\XMLfeedbackresource{\ifconditional\externalfigureflush missing\else registered\fi}}%
- {figure}}
-
-\setvariables
- [rl:manipulate]
- [file=rlxtools.rlx]
-
-% \startsetups[rl:manipulate]
-% \doiflocfileelse{\jobname.rlx}
-% {\installprogram{texmfstart rlxtools --manipulate kpse:\jobname.rlx \jobname.rlg}}
-% {\installprogram{texmfstart rlxtools --manipulate kpse:\getvariabledefault{rl:manipulate}{file}{rlxtools.rlx} \jobname.rlg}}
-% \stopsetups
-%
-% no longer need for \setups[rl:manipulate]
-
-\ifx\nofconversionfigures\undefined \chardef\nofconversionfigures\plusone \fi
-
-\appendtoks
- \ifcase\nofconversionfigures
- \writestatus\m!systems{not registering rlxtools (manipulator)}%
- \else
- \writestatus\m!systems{registering rlxtools (manipulator)}%
- \doiflocfileelse{\jobname.rlx}
- {\installprogram{texmfstart rlxtools --manipulate "kpse:\jobname.rlx" "\jobname.rlg"}}
- {\installprogram{texmfstart rlxtools --manipulate "kpse:\getvariabledefault{rl:manipulate}{file}{rlxtools.rlx}" "\jobname.rlg"}}%
- \fi
-\to \everybye % \everylastshipout
-
-\appendtoks \openXMLresourcelog \to \everystarttext
-\appendtoks \closeXMLresourcelog \to \everystoptext
-
-\let \feedbackexternalfigure \XMLfeedbackexternalfigure
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-res-09.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-res-09.mkii
deleted file mode 100644
index e3354e9a422..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-res-09.mkii
+++ /dev/null
@@ -1,69 +0,0 @@
-%D \module
-%D [ file=x-fig-09,
-%D version=2002.06.27,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Resource Reporting (2),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\usemodule[res-00]
-
-\defineXMLenvironment [rl:library]
- {\starttext}
- {\stoptext}
-
-\defineXMLenvironment [rl:usage]
- {\bgroup}
- {\doifnot{\XMLflush{rl:file}}{dummy}{\setups[rl:usage]}%
- \egroup}
-
-\defineXMLsave [rl:base] % base
-\defineXMLsave [rl:type] % figure
-\defineXMLsave [rl:state] % found|missing
-\defineXMLsave [rl:label] % label
-\defineXMLsave [rl:file] % filename
-\defineXMLsave [rl:suffix] % filesuffix
-\defineXMLsave [rl:comment] % text
-\defineXMLsave [rl:width] % width in pt
-\defineXMLsave [rl:height] % height in pt
-\defineXMLsave [rl:page] % page from file
-
-\def\XMLbpentry#1%
- {\PointsToWholeBigPoints{\XMLflush{#1}}\temp\temp bp}
-
-% \def\XMLrlentry#1#2#3%
-% {\doiftextelse{\XMLflush{#2}}
-% {\NC\bf#1\NC\XMLflush{#2}\doif{#3}{1}{ (\XMLbpentry{#2})}\NC\NR}
-% {}}
-
-\def\XMLrlentry#1#2#3%
- {\tableiftextelse{\XMLflush{#2}}
- {\NC\bf#1\NC\XMLflush{#2}\doif{#3}{1}{ (\XMLbpentry{#2})}\NC\NR}{}}
-
-\startsetups[rl:usage]
-
-% by using a dedicated tabulation, we permit usage in dutch interface
-
-\definetabulate[XMLRLG][|lw(4.5em)|p|]
-
-\startXMLRLG
- \XMLrlentry {base} {rl:base} {0}
- \XMLrlentry {type} {rl:type} {0}
- \XMLrlentry {state} {rl:state} {0}
- \XMLrlentry {file} {rl:file} {0}
- \XMLrlentry {label} {rl:label} {0}
- \XMLrlentry {suffix} {rl:suffix} {0}
- \XMLrlentry {page} {rl:page} {0}
- \XMLrlentry {width} {rl:width} {1}
- \XMLrlentry {height} {rl:height} {1}
- \XMLrlentry {comment}{rl:comment}{0}
-\stopXMLRLG
-
-\stopsetups
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-res-10.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-res-10.mkii
deleted file mode 100644
index 833bce776e1..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-res-10.mkii
+++ /dev/null
@@ -1,75 +0,0 @@
-%D \module
-%D [ file=x-fig-10,
-%D version=2003.08.02,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Resource Dummy Generation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\usemodule[res-00]
-
-\defineXMLenvironment [rl:library]
- {\starttext}
- {\stoptext}
-
-\defineXMLenvironment [rl:usage]
- {\bgroup}
- {\doif{\XMLflush{rl:type}-\XMLflush{rl:state}}{figure-missing}
- {\doifnot{\XMLflush{rl:file}}{dummy}{\setups[rl:usage]}}
- \egroup}
-
-\defineXMLsave [rl:type] % figure
-\defineXMLsave [rl:state] % found|missing
-\defineXMLsave [rl:file] % filename
-
-\defineXMLsavecontent [rl:width] {12cm} % width in pt
-\defineXMLsavecontent [rl:height] {9cm} % height in pt
-
-\useMPlibrary
- [dum]
-
-\setupcolors
- [state=start]
-
-\defineoverlay
- [rl:banner]
- [\setups{rl:banner}]
-
-\startsetups[rl:banner]
-
- \framed [frame=off,offset=none,align={lohi,middle}]
- \bgroup
- \tt \white \XMLflush{rl:file}
- \egroup
-
-\stopsetups
-
-\startsetups[rl:usage]
-
- \startTEXpage
-
- % \externalfigure
- % [\XMLflush{rl:file}] % goes wrong when file present
- % [object=no,
- % backgroundcolor=green,background={foreground,color,rl:banner},
- % width=\XMLflush{rl:width},
- % height=\XMLflush{rl:height}]
-
- \def\figurewidth {\XMLflush{rl:width}}
- \def\figureheight{\XMLflush{rl:height}}
-
- \externalfigurereplacement
- {\XMLflush{rl:file}}
- {\XMLflush{rl:file}}
- {\XMLflush{rl:state}}
-
- \stopTEXpage
-
-\stopsetups
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-res-11.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-res-11.mkii
deleted file mode 100644
index 84157be883a..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-res-11.mkii
+++ /dev/null
@@ -1,110 +0,0 @@
-%D \module
-%D [ file=x-fig-11,
-%D version=2003.02.08,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Resource Reporting (3),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\usemodule[res-00]
-
-\defineXMLenvironment [rl:library]
- {\starttext
- \doiffileelse{\outputfilename.zip}{\setups[rl:attach]}{}
- \disablemode[rl:used]}
- {\doifnotmode{rl:used}{No images processed.}
- \page
- \stoptext}
-
-\defineXMLenvironment [rl:usage]
- {\bgroup}
- {\doifnot{\XMLflush{rl:file}}{dummy}
- {\setups[rl:usage]
- \enablemode[rl:used]}
- \egroup}
-
-\defineXMLsave [rl:base] % base
-\defineXMLsave [rl:type] % figure
-\defineXMLsave [rl:state] % found|missing
-\defineXMLsave [rl:label] % label
-\defineXMLsave [rl:file] % filename
-\defineXMLsave [rl:suffix] % filesuffix
-\defineXMLsave [rl:comment] % text
-\defineXMLsave [rl:width] % width in pt
-\defineXMLsave [rl:height] % height in pt
-\defineXMLsave [rl:page] % page from file
-
-\def\XMLbpentry#1%
- {\PointsToWholeBigPoints{\XMLflush{#1}}\temp\temp bp}
-
-\def\XMLrlentry#1#2#3%
- {\tableiftextelse{\XMLflush{#2}}
- {\NC\bf#1\NC\XMLflush{#2}\doif{#3}{1}{ (\XMLbpentry{#2})}\NC\NR}{}}
-
-\unprotect
-
-\setuplayout[\v!middle]
-
-\startsetups[rl:figure]
-
- \externalfigure[\XMLflush{rl:file}][\c!width=4cm]
-
-\stopsetups
-
-\startsetups[rl:table]
-
-% by using a dedicated tabulation, we permit usage in dutch interface
-
-\definetabulate[XMLRLG][|lw(4.5em)|p|]
-
-\startXMLRLG
- \XMLrlentry {base} {rl:base} {0}
- \XMLrlentry {type} {rl:type} {0}
- \XMLrlentry {state} {rl:state} {0}
- \XMLrlentry {file} {rl:file} {0}
- \XMLrlentry {label} {rl:label} {0}
- \XMLrlentry {suffix} {rl:suffix} {0}
- \XMLrlentry {page} {rl:page} {0}
- \XMLrlentry {width} {rl:width} {1}
- \XMLrlentry {height} {rl:height} {1}
- \XMLrlentry {comment}{rl:comment}{0}
-\stopXMLRLG
-
-\stopsetups
-
-\startsetups[rl:usage]
-
- \startfiguretext {\v!none} {\setups[rl:figure]}
- \setups[rl:table]
- \stopfiguretext
-
-\stopsetups
-
-\startsetups[rl:attach]
-
- \useMPlibrary[nav]
-
- \setupcolors[\c!state=\v!start]
-
- \setupinteraction[\c!state=\v!start]
-
- \useattachment[whatever][\outputfilename.zip]
-
- \startlocalsetups[rl:attach:button]
-
- \inframed
- [\c!offset=\v!overlay,\c!frame=\v!off]
- {\attachment[whatever]}
-
- \stoplocalsetups
-
- \setupfootertexts[archive with dummies: \setups{rl:attach:button}]
-
-\stopsetups
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-res-12.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-res-12.mkii
deleted file mode 100644
index 81761ae9ad1..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-res-12.mkii
+++ /dev/null
@@ -1,53 +0,0 @@
-%D \module
-%D [ file=x-fig-12,
-%D version=2005.05.05,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Resource Checking,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module implements the dimension checking using \RLXTOOLS.
-
-\unprotect
-
-\chardef\figurerlxmode\plusone % rlx permitted
-
-\startXMLmapping[rli]
- \defineXMLprocess[rl:identify]
- \defineXMLsavecontent[rl:width] {\!!zeropoint}
- \defineXMLsavecontent[rl:height]{\!!zeropoint}
-\stopXMLmapping
-
-\def\doanalyzefiguredimensionsrlx
- {\ifcase\figurestatus \ifcase\figurerlxmode \else
- \doifnotfile{\wantedfigurefullname.rli}
- {% let's try runtime running first
- \doshowfiguremessage6\wantedfigurefullname
- \executesystemcommand{texmfstart rlxtools --identify \wantedfigurefullname}}%
- \doifnotfile{\wantedfigurefullname.rli}
- {% we assume that runtime running failed
- \doshowfiguremessage6\wantedfigurefullname
- \installprogram{texmfstart rlxtools --identify \wantedfigurefullname}}%
- \doiffile{\wantedfigurefullname.rli}
- {\global\let\analyzedfigurewidth \!!zeropoint
- \global\let\analyzedfigureheight\!!zeropoint
- \startnointerference % groups
- \startXMLmapping[rli]%
- \startXMLignore
- \processXMLfile{\wantedfigurefullname.rli}%
- \xdef\analyzedfigurewidth {\the\dimexpr\XMLflush{rl:width} \relax}% turn whatever into pt
- \xdef\analyzedfigureheight{\the\dimexpr\XMLflush{rl:height}\relax}% turn whatever into pt
- \stopXMLignore
- \stopXMLmapping
- \stopnointerference
- \setanalyzedfiguredimensions\!!twelve}%
- \fi\fi}
-
-\let\doanalyzefiguredimensionsexternal\doanalyzefiguredimensionsrlx
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-res-20.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-res-20.mkii
deleted file mode 100644
index 0bc1358ec41..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-res-20.mkii
+++ /dev/null
@@ -1,231 +0,0 @@
-%D \module
-%D [ file=x-res-20,
-%D version=2006.08.20,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Figure Lists,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D For the beginning we have used \TEXUTIL\ to hels us deal with
-%D graphics whose dimensions could not be determines and|/|or to
-%D provide placeholder info for graphics that were not available.
-%D Much of this functionality is now moved to \RLXTOOLS\ and
-%D therefore it makes sense to reimplement the code that deals with
-%D producing an overview of grapghics as well. At the same time we
-%D move some \TEX\ code from \TEXEXEC\ to here.
-%D
-%D Because the show commands are not used in real documents, but
-%D only for special purposed, it does not harm that this
-%D functionality is now part of a module. We no longer use the
-%D parsing code in \TEXUTIL, but rely on \IMAGEMAGICK's
-%D identify functionility.
-%D
-%D At the end of the file we kept the old code from \type {core-fig}.
-
-\unprotect
-
-\startXMLmapping[rlx:list]
-
- \defineXMLprocess
- [rl:identification]
-
- \defineXMLenvironment
- [rl:identify] [name=]
- {\bgroup\ignorespaces}
- {\removeunwantedspaces\doRLhandlegraphic\egroup}
-
- \defineXMLsave[rl:size]
- \defineXMLsave[rl:path]
- \defineXMLsave[rl:width]
- \defineXMLsave[rl:height]
-
-\stopXMLmapping
-
-\def\showexternalfigures
- {\dosingleempty\doshowexternalfigures}
-
-\let\doRLhandlegraphic\relax
-\let\doRLstartgraphics\relax
-\let\doRLstopgraphics \relax
-
-\let\RLfigurewidth \empty
-\let\RLfigureheight\empty
-\let\RLfiguresize \empty
-\let\RLfigurefile \empty
-
-\def\doRLpresetgraphic
- {\edef\RLfigurewidth {\the\dimexpr \XMLflush{rl:width}\relax}%
- \edef\RLfigureheight{\the\dimexpr \XMLflush{rl:height}\relax}%
- \edef\RLfiguresize {\the\numexpr0\XMLflush{rl:size}\relax}%
- \edef\RLfigurefile {\XMLpar{rl:identify}{name}{unknown}}}
-
-\def\doshowexternalfigures[#1]%
- {\bgroup
- \dontcomplain
- \setupcolors[\c!state=\v!start]% to prevent mps color conversion
- \getparameters[\??ex][\c!file=rlxtools.rli,\c!alternative=a,\c!offset=\!!zeropoint,\c!size=,#1]%
- \getvalue{\strippedcsname\doRLhandlegraphic\@@exalternative}%
- \startXMLmapping[rlx:list]%
- \startXMLignore
- \doRLstartgraphics
- \processXMLfilegrouped{\@@exfile}% \readjobfile\@@exfile\donothing\donothing
- \doRLstopgraphics
- \stopXMLignore
- \stopXMLmapping
- \egroup}
-
-\def\doRLhandlegraphica
- {\def\doRLhandlegraphic
- {\doRLpresetgraphic
- \getvalue{\e!start\v!figure\e!text}[\v!left,\v!none][]
- {}
- {\hbox
- {\externalfigure[\RLfigurefile][\c!frame=\v!on,\c!width=6cm,\c!size=\@@exsize]%
- \quad
- \framed[\c!width=\figurewidth,\c!height=\figureheight]{}%
- \quad}}%
- {\hbox{\tt\tfa\setstrut\strut\expanded{\asciistr{\RLfigurefile}}}}%
- \blank
- \tfx
- \starttabulate[|l|l|]
- \NC width \EQ \RLfigurewidth \NC \NR
- \NC height \EQ \RLfigureheight \NC \NR
- \NC size \EQ \RLfiguresize \NC \NR
- \stoptabulate
- \getvalue{\e!stop\v!figure\e!text}}}
-
-\def\doRLhandlegraphicb
- {\def\doRLhandlegraphic
- {\dontleavehmode
- \vbox
- {\doRLpresetgraphic
- \hsize\dimexpr.2\hsize-.8em\relax
- \cbox{\externalfigure[\RLfigurefile][\c!frame=\v!on,\c!factor=\v!max,\c!width=\hsize,\c!size=\@@exsize]}%
- \vskip.5\lineheight
- \midaligned{\tttf\RLfigurefile}}%
- \vadjust{\vskip.2\lineheight}%
- \quad\allowbreak}}
-
-\def\doRLhandlegraphicc
- {\def\doRLhandlegraphic
- {\doRLpresetgraphic
- \pagefigure[\RLfigurefile]}}
-
-\def\doRLhandlegraphicd % this one builds a dimension file for metapost/metafun
- {\def\doRLstartgraphics
- {\immediate\openout\scratchwrite=mpfigs.mp\relax
- \immediate\write\scratchwrite{\letterpercent\space graphic dimension file for metapost/metafun}}%
- \def\doRLstopgraphics
- {\immediate\closeout\scratchwrite}%
- \def\doRLhandlegraphic
- {\doRLpresetgraphic
- \immediate\write\scratchwrite{registerfigure("\RLfigurefile",\RLfigurewidth,\RLfigureheight);}}}
-
-% \showexternalfigures[alternative=b]
-
-\protect \endinput
-
-%D Old code:
-
-\def\doshowexternalfigures[#1]%
- {\bgroup
- \setupcolors[\c!state=\v!start]% to prevent mps color conversion
- \getparameters[\??ex][\c!alternative=a,\c!offset=\!!zeropoint,\c!size=,#1]%
- \getvalue{\strippedcsname\showexternalfigure\@@exalternative}%
- \egroup}
-
-\def\showexternalfigures
- {\dosingleempty\doshowexternalfigures}
-
-\def\showexternalfigurea
- {\bgroup
- \dontcomplain
- \def\presetfigure[##1][##2]%
- {\getvalue{\e!start\v!figure\e!text}[\v!left,\v!none][]
- {}
- {\hbox
- {\externalfigure[##1][\c!frame=\v!on,\c!width=6cm,\c!size=\@@exsize][##2]%
- \tfskip
- \framed[\c!width=\figurewidth,\c!height=\figureheight]{}}}%
- {\tt\tfa\expanded{\asciistr{##1}}}%
- \blank
- \tfx
- \def\docommand####1%
- {\beforesplitstring####1\at=\to\asciia
- \aftersplitstring ####1\at=\to\asciib
- \defconvertedcommand\asciib\asciib
- \doifsomething\asciib
- {\hsmash{\hbox to .75em{\asciia\hss}: \asciib}\endgraf}}%
- \processcommalist[##2]\docommand
- \strut
- \endgraf
- \getvalue{\e!stop\v!figure\e!text}}%
- \pushendofline
- \readjobfile\@@exfile\donothing\donothing
- \popendofline
- \egroup}
-
-\def\showexternalfigureb % instelbaar maken
- {\bgroup
- \def\total{5}%
- \globalletempty\allfigures
- \doglobal\newcounter\figurecounter
- \dontcomplain
- \def\docommand##1{##1&}%
- \def\figurecaptions%
- {\crcr
- \noalign{\nobreak\vskip.5em}%
- \@EA\globalprocesscommalist\@EA[\allfigures]\docommand
- \globalletempty\allfigures
- \crcr
- \noalign{\vskip1em\goodbreak}}%
- \def\presetfigure[##1][##2]%
- {\vbox
- {\divide\hsize \total
- \advance\hsize -1em
- \externalfigure
- [##1]
- [\c!frame=\v!on,\c!factor=\v!max,\c!width=\hsize,\c!size=\@@exsize][##2]}%
- \doglobal\addtocommalist{##1}\allfigures
- %\getvalue{\s!figurepreset}%
- \doglobal\increment\figurecounter
- \ifnum\figurecounter=\total
- \doglobal\newcounter\figurecounter
- \def\next{\figurecaptions}%
- \else
- \def\next{&}%
- \fi
- \next}%
- \pushendofline
- \tabskip\zeropoint \!!plus 1fill
- \halign to \hsize
- {&\hss##\hss\cr\readjobfile\@@exfile\donothing\donothing\crcr
- \figurecaptions}
- \popendofline
- \egroup}
-
-\def\showexternalfigurec
- {\bgroup
- \def\presetfigure[##1][##2]{\expanded{\pagefigure[##1][\c!size=\@@exsize]}}% else loop
- \pushendofline
- \readjobfile\@@exfile\donothing\donothing
- \popendofline
- \egroup}
-
-\def\showexternalfigured % to be documented; this one builds a dimension file for
- {\bgroup % metapost/metafun
- \immediate\openout\scratchwrite=mpfigs.mp
- \def\presetfigure[##1][##2]%
- {\getfiguredimensionsonly[##1]% \pagefigure[##1]%
- \immediate\write\scratchwrite
- {registerfigure("##1",\figurewidth,\figureheight);}}
- \pushendofline
- \readjobfile\@@exfile\donothing\donothing
- \popendofline
- \immediate\closeout\scratchwrite
- \egroup}
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-res-50.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-res-50.mkii
deleted file mode 100644
index 3c3e758a7d2..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-res-50.mkii
+++ /dev/null
@@ -1,427 +0,0 @@
-%D \module
-%D [ file=x-res-50,
-%D version=2004.02.18,
-%D title=\CONTEXT\ Style File,
-%D subtitle=Multimedia Presentation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This is a preliminary module, using a preliminary xml media format that
-%D looks as follows (record is embedded in resource library element):
-%D
-%D \starttyping
-%D <rl:mediaclip label="sample 1">
-%D <rl:name>Sample One</rl:name>
-%D <rl:mime>application/x-shockwave-flash</rl:mime>
-%D <rl:file>http://localhost/mb.swf</rl:file>
-%D <rl:width>8cm</rl:width>
-%D <rl:height>6cm</rl:height>
-%D <rl:text>Nothing special to be said.</rl:text>
-%D <rl:picture>cow.pdf</rl:picture>
-%D </rl:mediaclip>
-%D
-%D <rl:mediaclip label="sample 2">
-%D <rl:name>Sample Two</rl:name>
-%D <rl:mime>audio/mpeg</rl:mime>
-%D <rl:file>mb.mp3</rl:file>
-%D <rl:picture>mb.jpg</rl:picture>
-%D </rl:mediaclip>
-%D \stoptyping
-%D
-%D \starttyping
-%D texexec --pdf --use=med-show yourfile.xml
-%D \stoptyping
-%D
-%D Bonus:
-%D
-%D \starttyping
-%D --arg="url=http://localhost:8881/e:/media"
-%D \stoptyping
-
-% output=pdftex
-
-% \nopdfcompression
-
-% bugs in recognizing embedded stream cq. player
-% bugs in layers + hide/vide
-% bugs in save javascripts
-% bugs all over the place
-
-% in principe kan menu overal hetzelfde zijn als we via JS per pagina de clip var zetten,
-% hoewel, misschien zal het menu gaan afhangen van de soort clip
-
-% property (eigenschap) aan framed en layer
-
-\usemodule[meta-dum] \usemodule[contml] \autoXMLnamespace [context]
-
-\doifelsevariable{environment}{url}
- {\setvariables[mediaclip][url=\getvariable{environment}{url}/]}
- {\setvariables[mediaclip][url=]}
-
-\startmode [silent]
-
- \setvariables[mediaclip:option][start=]
-
-\stopmode
-
-\startnotmode [silent]
-
- \setvariables[mediaclip:option][start=auto]
-
-\stopnotmode
-
-\chardef\XMLtokensreduction=1 \dontcomplain % \showframe \pdfcompresslevel=0
-
-\setuppapersize
- [S6][S6]
-
-\definemeasure [GapSize] [\dimexpr( 15pt)]
-\definemeasure [EdgeWidth] [\dimexpr(100pt)]
-\definemeasure [TextWidth] [\dimexpr(.5\textwidth)]
-\definemeasure [RenderingWidth] [\dimexpr(\textwidth)]
-\definemeasure [RenderingHeight] [\dimexpr(\textheight)]
-
-% \XMLflush{rl:ratio}\dimexpr(.75\textwidth),
-
-\setuplayout
- [backspace=\measure{GapSize},
- topspace=\measure{GapSize},
- header=0pt,
- footer=0pt,
- margin=0pt,
- edgedistance=2\measure{GapSize},
- rightedge=\measure{EdgeWidth},
- bottomdistance=2\measure{GapSize},
- bottom=2\measure{GapSize},
- height=fit,
- width=fit]
-
-\setupinteraction
- [state=start,
- color=lightgray,
- contrastcolor=lightgray,
- openaction=PresetFields,
- closeaction=ForgetChanges,
- menu=on,
- click=no]
-
-\setupinteractionscreen
- [option=max]
-
-\setupcolors
- [state=start]
-
-\usetypescript
- [palatino][texnansi]
-
-\setupbodyfont
- [palatino]
-
-\definecolor[darkgray] [s=.2]
-\definecolor[mediumgray][s=.5]
-\definecolor[lightgray] [s=.8]
-\definecolor[transgray] [s=1,t=.9,a=1]
-
-\setupbackgrounds
- [page]
- [backgroundoffset=\measure{GapSize},
- background={color,pagebutton},
- backgroundcolor=black]
-
-\definelayer
- [main]
- [width=\textwidth,
- height=\textheight]
-
-\definelayer
- [extra]
- [width=\rightedgewidth,
- height=\bottomheight]
-
-\setupbackgrounds
- [text]
- [backgroundoffset=0pt,
- background=main]
-
-\setupbackgrounds
- [bottom][rightedge]
- [backgroundoffset=0pt,
- background=extra]
-
-% java scripts
-
-\startJSpreamble {handy} used now
-
- function ForgetChanges ()
- { this.dirty = false }
-
- function PresetFields ()
- { this.syncAnnotScan() }
-
-\stopJSpreamble
-
-\definereference[PresetFields] [JS(PresetFields)]
-\definereference[ForgetChanges][JS(ForgetChanges)]
-
-% layers
-
-\defineproperty [menulayer] [layer] [title=menulayer]
-\defineproperty [textlayer] [layer] [title=textlayer,state=stop]
-\defineproperty [datalayer] [layer] [title=datalayer,state=stop]
-
-\setupfield
- [rollbutton]
- [fieldlayer=menulayer]
-
-\setupfield
- [rollbutton]
- [option=auto]
-
-\definepalet
- [rollover]
- [n=darkgray,
- r=lightgray,
- d=darkgray]
-
-% list
-
-\definelist
- [clips]
- [expansion=yes,
- criterium=text,
- alternative=f]
-
-% navigation
-
-\defineoverlay[pagebutton][\overlaybutton{HideLayer{textlayer},HideLayer{datalayer},ToggleLayer{menulayer}}]
-\defineoverlay[textbutton][\overlaybutton{HideLayer{textlayer},HideLayer{datalayer}}]
-\defineoverlay[databutton][\overlaybutton{HideLayer{textlayer},HideLayer{datalayer}}]
-
-% clips
-
-\defineXMLenvironment
- [rl:mediaclip]
- {\setups[mediaclip:start]}
- {\setups[mediaclip:stop]}
-
-\newcounter\MediaClip
-
-\startsetups[mediaclip:start]
-
- \bgroup \startXMLignore
-
- % no \startstandardmakeup here since we need the dsta in the menuconstruction
-
- \defineXMLsave [rl:name]
- \defineXMLsave [rl:visualization]
- \defineXMLsave [rl:file]
- \defineXMLsave [rl:mime]
- \defineXMLsave [rl:picture] [backgroundcolor=lightgray]
-
- \defineXMLsavecontent [rl:text] {No additional info.}
- \defineXMLsavecontent [rl:width] {\measure{RenderingWidth}}
- \defineXMLsavecontent [rl:height] {\measure{RenderingHeight}}
- \defineXMLsavecontent [rl:aspect] {1}
-
-\stopsetups
-
-\startsetups[mediaclip:stop]
-
- \startstandardmakeup
-
- \doifXMLdataelse{rl:file}
- {\setups[mediaclip:file:yes]}
- {}
-
- \doifXMLdataelse{rl:picture}
- {\doifelse{\XMLflush{rl:picture}}{self}
- {\setups[mediaclip:picture:self]}
- {\setups[mediaclip:picture:yes]}}
- {\setups[mediaclip:picture:no]}
-
- \doifXMLdata{rl:text}
- {\setups[mediaclip:text]}
-
- \setlayerframed
- [extra]
- [preset=rightbottom]
- [frame=off,offset=overlay,width=fit,background=databutton,align=left]
- {\startproperty[datalayer]\setups[mediaclip:data]\stopproperty}
-
- \doifXMLdataelse{rl:name}
- {\writetolist[clips]{}{\XMLflush{rl:name}}}
- {\writetolist[clips]{}{\XMLpar{rl:mediaclip}{label}{unknown}}}
-
- \stopstandardmakeup
-
- \stopXMLignore \egroup
-
-\stopsetups
-
-\setuptabulate
- [before=,
- after=]
-
-\def\rlCleanupFileName#1%
- {\bgroup
- \def\cleanup##1##2{\ifnum##1##2=20 \space\else\char\octnumber{##1##2}\fi}%
- \defineactivecharacter 37 {\cleanup}%
- \scantokens{#1}%
- \egroup}
-
-\startsetups[mediaclip:data]
-
- \noindent \buttonframed
- [framecolor=lightgray,
- foregroundcolor=lightgray]
- {\bf\expanded{\rlCleanupFileName{\XMLflush{rl:file}}}}
-
- \vskip.75\measure{GapSize}
-
- \noindent \buttonframed
- [framecolor=lightgray,
- foregroundcolor=lightgray]
- {\bf\XMLflush{rl:mime}}
-
-\stopsetups
-
-\startsetups[mediaclip:picture:self]
-
- \definerenderingwindow
- [mediaclip]
- [width=\XMLflush{rl:width},
- height=\XMLflush{rl:height},
- frame=off,
- openpageaction=StartCurrentRendering,
- closepageaction=StopCurrentRendering]
-
- \setlayer
- [main]
- {\placerenderingwindow[mediaclip][mediaclip-\MediaClip]}
-
-\stopsetups
-
-\startsetups[mediaclip:picture:yes]
-
- \setlayer
- [main]
- {\externalfigure
- [\XMLflush{rl:picture}]
- [background=color,
- backgroundcolor=\XMLpar{rl:picture}{backgroundcolor}{lightgray},
- factor=max,
- width=\XMLflush{rl:width},
- height=\XMLflush{rl:height}]}
-
-\stopsetups
-
-\startsetups[mediaclip:picture:no]
-
- \setlayer
- [main]
- {\externalfigure
- [dummy]
- [width=\XMLflush{rl:width},
- height=\XMLflush{rl:height}]}
-
-\stopsetups
-
-\startsetups[mediaclip:file:yes]
-
- \doglobal\increment\MediaClip
-
- \useexternalrendering
- [mediaclip-\MediaClip]
- [\XMLflush{rl:mime}]
- [\getvariable{mediaclip}{url}\XMLflush{rl:file}]
- [\getvariable{mediaclip:option}{start}]
-
-\stopsetups
-
-\defineinteractionmenu
- [navigation] [right]
-
-\defineinteractionmenu
- [control] [bottom]
-
-\setupinteractionmenu
- [navigation,control]
- [state=start,
- frame=on,
- middle=\hskip.5\measure{GapSize},
- inbetween=\vskip.5\measure{GapSize}]
-
-\setupinteractionmenu
- [right,bottom]
- [distance=overlay]
-
-\startinteractionmenu [navigation]
- \rob [HideLayer{textlayer},FirstPage] First Page \\
- \rob [HideLayer{textlayer},PreviousPage] Previous Page \\
- \rob [HideLayer{textlayer},NextPage] Next Page \\
- \rob [HideLayer{textlayer},LastPage] Last Page \\
- \rob [HideLayer{textlayer},clips] List Of Clips \\
- \rob [ForgetChanges,CloseDocument] Close Document \\
-\stopinteractionmenu
-
-\startinteractionmenu [control]
- \rob [StartRendering{mediaclip-\MediaClip}] Start \\
- \rob [StopRendering{mediaclip-\MediaClip}] Stop \\
- \rob [PauseRendering{mediaclip-\MediaClip}] Pause \\
- \rob [ResumeRendering{mediaclip-\MediaClip}] Resume \\
- \rob [ToggleLayer{datalayer}] Info \\
- \doifXMLdata{rl:text}{\rob [HideLayer{datalayer},ToggleLayer{textlayer}] Text \\}
-\stopinteractionmenu
-
-\startsetups[mediaclip:text]
-
- \setlayer
- [extra]
- [preset=rightbottom]
- {\startproperty[textlayer]
- \framed
- [align=normal,
- frame=off,
- width=\measure{TextWidth},
- foregroundcolor=darkgray,
- background={color,textbutton},
- backgroundcolor=lightgray]
- {\XMLflush{rl:text}}
- \stopproperty}
-
-\stopsetups
-
-\setupcolors[textcolor=lightgray]
-
-\startsetups [library:start]
-
- \starttext
-
- \setupinteractionmenu[control][state=stop]
-
- \title[clips]{List of Media Clips}
-
- \placelist[clips] \page
-
- \setupinteractionmenu[control][state=start]
-
-\stopsetups
-
-\startsetups [library:stop]
-
- \stoptext
-
-\stopsetups
-
-\defineXMLenvironment [rl:resourcelibrary]
- {\setups[library:start]}
- {\setups[library:stop]}
-
-\doifelsenothing{\inputfilename}
- {\processXMLfile{mediaclient.xml}}
- {\processXMLfile{\inputfilename}}
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-sch-00.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-sch-00.mkii
deleted file mode 100644
index 5b4da0825b3..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-sch-00.mkii
+++ /dev/null
@@ -1,382 +0,0 @@
-%D \module
-%D [ file=x-sch-00,
-%D version=2001.10.02,
-%D title=\CONTEXT\ Style File,
-%D subtitle=XML Schema Basics,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D Schema support was implemented right after euro\TeX\ 2001,
-%D when Tobias Burnus send me a schema for the XML figure
-%D base. Since it happened that I needed schemata for other
-%D projects too, I wrote this mapper. Thanks to Tobias for
-%D testing it.
-
-\newcounter\XSDprefix
-\newif\ifXDScomposite
-
-\definelist [xsd:names]
-\defineregister [xsd:index] [xsd:indices]
-
-\setuplist [xsd:names] [expansion=yes]
-\setupregister [xsd:index] [expansion=yes]
-
-\def\dodoXSDkeyval#1#2#3%
- {\framed
- [width=\hsize,background=color,backgroundcolor=xsd:0,
- framecolor=xsd:0,frame=off,align=right]
- {\hbox to 5em % %to 8em % .2\hsize
- {\bf
- %\doifsomething{#1}{#1 }
- \ignorespaces#2\unskip\hss}
- %\ignorespaces#2\unskip:}%
- \space
- \ignorespaces#3\unskip}}
-
-\def\doXSDkeyval#1#2#3#4%
- {\bgroup
- \edef\XSDtemp{\XMLpar{#3}{#4}{}}%
- \doifsomething{\XSDtemp}
- {\def\doXSDtemp{\dodoXSDkeyval{#1}{#2}{\XSDtemp}}%
- \def\doXSDtype{\dodoXSDkeyval{#1}{#2}{\XMLtyp{#3}{#4}{}}}%
- \setupinteraction[color=,contrastcolor=,style=]%
- \processaction
- [#4]
- [ value=>\doXSDtype,
- name=>{\writetolist[xsd:names]{}{\XSDtemp}%
- \writetoregister[xsd:index]{\XSDtemp}%
- \ifXDScomposite \else
- \pagereference[xsd:\XSDprefix:\XSDtemp]%
- \fi
- \doXSDtemp},
- type=>{\doifinstringelse{xsd:}{\XSDtemp}
- {\doXSDtemp}
- {\gotobox{\doXSDtemp}[xsd:\XSDprefix:\XSDtemp]}},
- ref=>{\doifinstringelse{xsd:}{\XSDtemp}
- {\doXSDtemp}
- {\gotobox{\doXSDtemp}[xsd:\XSDprefix:\XSDtemp]}},
- unknown=>\doXSDtemp]}%
- \endgraf
- \egroup}
-
-\def\doXSDkeyvals#1#2#3%
- {\def\docommand##1{\doXSDkeyval{#1}{##1}{#2}{##1}}%
- \processcommalist[#3]\docommand}
-
-\def\dodoXSDbanner#1%
- {\framed
- [width=\hsize,framecolor=xsd:0,frame=off,
- background=color,backgroundcolor=xsd:0]
- {\ignorespaces#1\unskip}}
-
-\def\doXSDtitle#1#2#3%
- {\edef\XSDtemp{\XMLpar{#2}{#3}{}}%
- \dodoXSDbanner
- {{\bf\ignorespaces#1\unskip}%
- \doifsomething{\XSDtemp}
- {:\space\ignorespaces\XSDtemp\unskip
- \pagereference[xsd:\XSDprefix:\XSDtemp]}}}
-
-\def\doXSDbanner#1%
- {\dodoXSDbanner{\bf#1}}
-
-%D We use colored backgrounds for meaningful blocks.
-
-\definecolor [xsd:0] [white]
-
-\definecolor [xsd:1] [s=.30]
-\definecolor [xsd:2] [s=.55]
-\definecolor [xsd:3] [s=.70]
-\definecolor [xsd:4] [s=.85]
-
-\definecolor [xsd:5] [r=.6,g=.7,b=.8]
-\definecolor [xsd:6] [r=.7,g=.8,b=.6]
-\definecolor [xsd:7] [r=1,g=1,b=.6]
-\definecolor [xsd:8] [r=.8,g=.7,b=.6]
-
-\defineframedtext [XSDannotation] [backgroundcolor=xsd:0]
-
-\defineframedtext [XSDelement] [backgroundcolor=xsd:5]
-\defineframedtext [XSDattribute] [backgroundcolor=xsd:6]
-\defineframedtext [XSDsimpleType] [backgroundcolor=xsd:7]
-\defineframedtext [XSDcomplexType] [backgroundcolor=xsd:8]
-
-\defineframedtext [XSDcomplexContent] [backgroundcolor=xsd:1]
-\defineframedtext [XSDsimpleContent] [backgroundcolor=xsd:1]
-\defineframedtext [XSDattributeGroup] [backgroundcolor=xsd:1]
-
-\defineframedtext [XSDcapsule] [backgroundcolor=xsd:2]
-\defineframedtext [XSDsequence] [backgroundcolor=xsd:3]
-
-\def\XDSstructures% handy for external settings
- {XSDannotation,
- XSDcomplexType,XSDsimpleType,XSDelement,XSDattribute,
- XSDcomplexContent,XSDsimpleContent,XSDattributeGroup,
- XSDcapsule,XSDsequence}
-
-\setupframedtexts
- [\XDSstructures]
- [width=\hsize,
- offset=.5\bodyfontsize,
- location=none,
- background=color,
- framecolor=xsd:0,
- before=\ifinframed\else\blank\fi,
- after=\ifinframed\else\blank\fi,
- depthcorrection=off,
- rulethickness=1pt,
- strut=no]
-
-\definesymbol[xsd][{\blackrule[width=4em]}]
-
-\def\placeXSDlegenda
- {\startbaselinecorrection
- \starttabulate[|l|l|]
- \HL
- \NC \bf color \NC \bf meaning \NC \NR
- \HL
- \NC \color[xsd:1]{\symbol[xsd]} \NC complexContent \unskip\quad
- simpleContent \unskip\quad
- attributeGroup \NC \NR
- \NC \color[xsd:2]{\symbol[xsd]} \NC capsule \NC \NR
- \NC \color[xsd:3]{\symbol[xsd]} \NC sequence \NC \NR
- \HL
- \NC \color[xsd:5]{\symbol[xsd]} \NC element \NC \NR
- \NC \color[xsd:6]{\symbol[xsd]} \NC attribute \NC \NR
- \NC \color[xsd:7]{\symbol[xsd]} \NC simpleType \NC \NR
- \NC \color[xsd:8]{\symbol[xsd]} \NC complexType \NC \NR
- \HL
- \stoptabulate
- \stopbaselinecorrection}
-
-\defineXMLenvironment [xsd:all] [id=]
- {\startXSDcapsule
- \doXSDbanner{all}
- \doXSDkeyvals{all}{xsd:all}{id}
- \XDScompositetrue}
- {\stopXSDcapsule}
-
-\defineXMLenvironment [xsd:annotation]
- {\startXSDcapsule
- \doXSDbanner{annotation}
- \startXSDannotation}
- {\stopXSDannotation
- \stopXSDcapsule}
-
-\defineXMLignore [xsd:appInfo]
-
-\defineXMLenvironment [xsd:attribute]
- [id=,name=,ref=,type=,form=,use=,value=]
- {\startXSDattribute
- \doifelsenothing{\XMLpar{xsd:attribute}{ref}{}}
- {\doXSDkeyvals{attribute}{xsd:attribute}{name,type}}
- {\doXSDkeyvals{attribute}{xsd:attribute}{ref}}
- \doXSDkeyvals{attribute}{xsd:attribute}{id,form,use,value}
- \XDScompositetrue}
- {\stopXSDattribute}
-
-\defineXMLenvironment [xsd:attributeGroup] [id=,name=,ref=]
- {\startXSDattributeGroup
- \doXSDtitle{attribute group}{xsd:attributeGroup}{name}
- \doXSDkeyvals{attr group}{xsd:attributeGroup}{id,name,ref}
- \XDScompositetrue}
- {\stopXSDattributeGroup}
-
-\defineXMLenvironment [xsd:choice] [id=,minOccurs=,maxOccurs=]
- {\startXSDcapsule
- \doXSDbanner{choice}
- \doXSDkeyvals{choice}{xsd:choice}{id,minOccurs,maxOccurs}
- \XDScompositetrue}
- {\stopXSDcapsule}
-
-\defineXMLenvironment [xsd:complexContent] [id=,mixed=]
- {\startXSDcomplexContent
- \doXSDkeyvals{complex content}{xsd:complexContent}{id,mixed}
- \XDScompositetrue}
- {\stopXSDcomplexContent}
-
-\defineXMLenvironment [xsd:complexType]
- [id=,abstract=,block=,final=,mixed=,name=]
- {\startXSDcomplexType
- \doXSDtitle{complex type}{xsd:complexType}{name}
- \doXSDkeyvals{complex type}{xsd:complexType}{id,abstract,block,final,mixed}
- \XDScompositetrue}
- {\stopXSDcomplexType}
-
-\defineXMLenvironment [xsd:documentation] [source=,xml:lang=]
- {\endgraf\bgroup\setupwhitespace[big]}
- {\endgraf\egroup}
-
-\defineXMLenvironment [xsd:element]
- [name=,type=,ref=,
- abstract=,block=,default=,final=,fixed=,form=,id=,
- minOccurs=,maxOccurs=,nullable=,substitutionGroup=]
- {\startXSDelement
- \doifelsenothing{\XMLpar{xsd:element}{ref}{}}
- {\doXSDkeyvals{element}{xsd:element}{name,type}}
- {\doXSDkeyvals{element}{xsd:element}{ref}}
- \doXSDkeyvals{element}{xsd:element}
- {id,abstract,block,default,final,fixed,form,
- minOccurs,maxOccurs,nullable,substitutionGroup}
- \XDScompositetrue}
- {\stopXSDelement}
-
-\defineXMLenvironment [xsd:extension] [id=,base=]
- {\startXSDcapsule
- \doXSDbanner{extension}
- \doXSDkeyvals{extension}{xsd:extension}{id,base}
- \XDScompositetrue}
- {\stopXSDcapsule}
-
-\defineXMLenvironment [xsd:group]
- [id=,name=,ref=,minOccurs=,maxOccurs=]
- {\startXSDcapsule
- \doXSDbanner{group}
- \doXSDkeyvals{group}{xsd:group}{id,name,ref,minOccurs,maxOccurs}
- \XDScompositetrue}
- {\stopXSDcapsule}
-
-\defineXMLenvironment [xsd:key] [id=,name=]
- {\startXSDcapsule
- \doXSDbanner{key}
- \doXSDkeyvals{key}{xsd:key}{id,name}
- \XDScompositetrue}
- {\stopXSDcapsule}
-
-\defineXMLenvironment [xsd:keyref] [id=,name=,refer=]
- {\startXSDcapsule
- \doXSDbanner{keyref}
- \doXSDkeyvals{key ref}{xsd:keyref}{id,name,refer}
- \XDScompositetrue}
- {\stopXSDcapsule}
-
-\defineXMLenvironment [xsd:list] [id=,itemType=]
- {\startXSDcapsule
- \doXSDbanner{list}
- \doXSDkeyvals{list}{xsd:list}{id,itemType}
- \XDScompositetrue}
- {\stopXSDcapsule}
-
-\defineXMLenvironment [xsd:redefine] [schemaLocation=]
- {\startXSDcapsule
- \doXSDbanner{redefine}
- \doXSDkeyvals{redefine}{xsd:redefine}{schemaLocation}
- \XDScompositetrue}
- {\stopXSDcapsule}
-
-\defineXMLenvironment [xsd:restriction] [id=,base=]
- {\startXSDcapsule
- \doXSDbanner{restriction}
- \doXSDkeyvals{restriction}{xsd:restriction}{id,base}
- \XDScompositetrue}
- {\stopXSDcapsule}
-
-\defineXMLenvironment [xsd:schema]
- [attributeFormDefault=,blockDefault=,elementFormDefault=,
- finalDefault=,id=,targetNamespace=,version=]
- {\startXSDcapsule
- \doglobal\increment\XSDprefix
- \doXSDbanner{schema}
- \doXSDkeyvals{schema}{xsd:schema}
- {attributeFormDefault,blockDefault,elementFormDefault,
- finalDefault,id,targetNamespace,version}
- \stopXSDcapsule}
- {}
-
-\defineXMLenvironment [xsd:sequence] [id=,minOccurs=,maxOccurs=]
- {\startXSDsequence
- \doXSDbanner{sequence}
- \doXSDkeyvals{sequence}{xsd:sequence}{id,minOccurs,maxOccurs}
- \XDScompositetrue}
- {\stopXSDsequence}
-
-\defineXMLenvironment [xsd:simpleContent] [id=]
- {\startXSDsimpleContent
- \doXSDkeyvals{simple content}{xsd:simpleContent}{id}
- \XDScompositetrue}
- {\stopXSDsimpleContent}
-
-\defineXMLenvironment [xsd:simpleType] [id=,name=]
- {\startXSDsimpleType
- \doXSDtitle{simple type}{xsd:simpleType}{name}
- \doXSDkeyvals{simple type}{xsd:simpleType}{id}
- \XDScompositetrue}
- {\stopXSDsimpleType}
-
-\defineXMLenvironment [xsd:union] [id=,memberTypes=]
- {\startXSDcapsule
- \doXSDbanner{union}
- \doXSDkeyvals{union}{xsd:union}{id,memberTypes}
- \XDScompositetrue}
- {\stopXSDcapsule}
-
-\defineXMLenvironment [xsd:unique] [id=,name=]
- {\startXSDcapsule
- \doXSDbanner{unique}
- \doXSDkeyvals{unique}{xsd:unique}{id,name}
- \XDScompositetrue}
- {\stopXSDcapsule}
-
-\def\defineXSDfacet
- {\dotripleempty\dodefineXSDfacet}
-
-\def\dodefineXSDfacet[#1][#2][#3]%
- {\defineXMLenvironment[xsd:#1][#2]
- {\startXSDcapsule
- \doXSDkeyvals{#1}{xsd:#1}{#3}
- \XDScompositetrue}
- {\stopXSDcapsule}
- \defineXMLsingular[xsd:#1][#2]
- {\doXSDkeyvals{#1}{xsd:#1}{#3}}}
-
-\defineXSDfacet [duration] [id=,value=,fixed=] [id,value,fixed]
-\defineXSDfacet [encoding] [id=,value=,fixed=] [id,value,fixed]
-\defineXSDfacet [enumeration] [id=,value=,fixed=] [id,value,fixed]
-
-\defineXSDfacet [length] [id=,value=,fixed=] [id,value,fixed]
-\defineXSDfacet [minLength] [id=,value=,fixed=] [id,value,fixed]
-\defineXSDfacet [maxLength] [id=,value=,fixed=] [id,value,fixed]
-\defineXSDfacet [minInclusive] [id=,value=,fixed=] [id,value,fixed]
-\defineXSDfacet [maxInclusive] [id=,value=,fixed=] [id,value,fixed]
-\defineXSDfacet [minExclusive] [id=,value=,fixed=] [id,value,fixed]
-\defineXSDfacet [maxExclusive] [id=,value=,fixed=] [id,value,fixed]
-
-\defineXSDfacet [pattern] [id=,value=,fixed=] [id,value,fixed]
-\defineXSDfacet [period] [id=,value=,fixed=] [id,value,fixed]
-\defineXSDfacet [precision] [id=,value=,fixed=] [id,value,fixed]
-\defineXSDfacet [scale] [id=,value=,fixed=] [id,value,fixed]
-
-\defineXSDfacet [field] [id=,xpath=] [id,xpath]
-\defineXSDfacet [selector] [id=,xpath=] [id,xpath]
-
-\defineXSDfacet
- [any]
- [id=,namespace=,minOccurs=,maxOccurs=,processContents=]
- [id,namespace,minOccurs,maxOccurs,processContent]
-
-\defineXSDfacet
- [anyAttribute]
- [id=,namespace=,processContents=]
- [id,namespace,processContents]
-
-\defineXSDfacet
- [import]
- [id=,namespace=,schemaLocation=]
- [id,namespace,schemaLocation]
-
-\defineXSDfacet
- [include]
- [id=,schemaLocation=]
- [id,schemaLocation]
-
-\defineXSDfacet
- [notation]
- [id=,name=,public=,system=]
- [id,name,public,system]
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-sch-01.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-sch-01.mkii
deleted file mode 100644
index 5bdf088fe71..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-sch-01.mkii
+++ /dev/null
@@ -1,122 +0,0 @@
-%D \module
-%D [ file=x-sch-01,
-%D version=2001.10.04,
-%D title=\CONTEXT\ Style File,
-%D subtitle=XML Schema Presentation,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This style wraps around the core schema visualizer,
-%D implemented in \type {x-sch-00}. This is an experimental
-%D style, more will follow.
-%D
-%D \starttyping
-%D texexec --use=sch-01 x-fig-00.xsd --pdf
-%D \stoptyping
-
-\doifnothing {\jobfilename} {\end}
-\doiffileelse {\jobfilename.xsd} {} {\end}
-
-\usemodule[sch-00,con-01]
-
-\remapXMLnamespace [xs] [xsd]
-
-\setuplayout
- [backspace=1.5cm,
- topspace=1.5cm,
- bottomspace=1cm,
- width=middle,
- height=middle,
- header=1.5cm,
- footer=1.5cm]
-
-\setupcolors
- [state=start]
-
-\setupbackgrounds
- [page]
- [background=goback]
-
-\setupbackgrounds
- [text]
- [background=gonext]
-
-\defineoverlay
- [goback]
- [\overlaybutton{PreviousJump}]
-
-\defineoverlay
- [gonext]
- [\overlaybutton{nextpage}]
-
-\setuppagenumbering
- [location=footer]
-
-\usetypescript
- [palatino]
- [\defaultencoding]
-
-\setupbodyfont
- [palatino,10pt]
-
-%\setupinteraction
-% [state=start,
-% color=,
-% contrastcolor=,
-% style=]
-
-\setuplist
- [xsd:names]
- [interaction=all,
- width=0pt,
- alternative=c]
-
-\setupregister
- [xsd:index]
- [interaction=text,
- symbol=none]
-
-\setuphead
- [chapter]
- [style=\bfd,
- header=high]
-
-\setuphead
- [section]
- [style=\bfb]
-
-\lowercasestring \jobfilename \to \lcjobfilename
-
-\setupheadertexts
- [\lcjobfilename]
-
-\starttext
-
-\title{Schema \quote{\lcjobfilename.xsd}}
-
-\subject{Names in order of definition}
-
-\startcolumns[n=3]
- \placelist[xsd:names][criterium=current]
-\stopcolumns
-
-\subject{Names in alphabetic order}
-
-\startcolumns[n=3]
- \placeregister[xsd:index][criterium=current]
-\stopcolumns
-
-\subject{Meaning of background colors}
-
-\placeXSDlegenda
-
-\subject{Schema components}
-
-\processXMLfilegrouped{\jobfilename.xsd}
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-set-01.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-set-01.mkii
deleted file mode 100644
index 814ea5fc6c5..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-set-01.mkii
+++ /dev/null
@@ -1,79 +0,0 @@
-%D \module
-%D [ file=x-set-01,
-%D version=2004.10.31,
-%D remark=setupx.tex: 1998.07.20 and later,
-%D title=\CONTEXT\ Setup Mappings,
-%D subtitle=Macro Definitions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This file is obsolete.
-
-\endinput
-
-\unprotect
-
-\def\SETUPnamespace{xmlns:cd="http://www.pragma-ade.com/commands"}
-
-\bgroup \catcode`\<=\@@other
-
-\unexpanded\gdef\dostring#1#2#3%
- {\immediate\write\scratchwrite{#1<#2cd:#3>}}
-
-\gdef\doline#1%
- {\immediate\write\scratchwrite{#1}}
-
-\egroup
-
-\def\startsetupfile
- {\immediate\openout\scratchwrite=keys-\currentlanguage.xml
- \doline{\string<?xml version="1.0"?>}
- \doline{}
- \dostring{}{}{interface \SETUPnamespace\space name="context" language="\currentlanguage" version="\contextversion"}}
-
-\def\stopsetupfile
- {\doline{}
- \dostring{}{/}{interface}
- \immediate\closeout\scratchwrite}
-
-\def\interfacecomponenttoxml#1#2#3%
- {\doifelse{#3}\nointerfaceobject
- {\dostring{\space\space\space\space}{}{#1 name="#2" value="#2"/}}
- {\dostring{\space\space\space\space}{}{#1 name="#2" value="#3"/}}}
-
-\def\setinterfaceconstant{\interfacecomponenttoxml{constant}}
-\def\setinterfacevariable{\interfacecomponenttoxml{variable}}
-\def\setinterfaceelement {\interfacecomponenttoxml{element}}
-\def\setinterfacecommand {\interfacecomponenttoxml{command}}
-
-\def\startinterfacexmlcomponent{\doline{}\dostring{\space\space}{}} % #1
-\def\stopinterfacexmlcomponent {\dostring{\space\space}{/}} % #1
-
-\let\normalstartvariables\startvariables \let\normalstopvariables\stopvariables
-\let\normalstartconstants\startconstants \let\normalstopconstants\stopconstants
-\let\normalstartcommands \startcommands \let\normalstopcommands \stopcommands
-\let\normalstartelements \startelements \let\normalstopelements \stopelements
-
-\def\startvariables{\startinterfacexmlcomponent{variables}\normalstartvariables}
-\def\startconstants{\startinterfacexmlcomponent{constants}\normalstartconstants}
-\def\startcommands {\startinterfacexmlcomponent{commands} \normalstartcommands }
-\def\startelements {\startinterfacexmlcomponent{elements} \normalstartelements }
-
-\def\stopvariables{\stopinterfacexmlcomponent{variables}\normalstopvariables}
-\def\stopconstants{\stopinterfacexmlcomponent{constants}\normalstopconstants}
-\def\stopcommands {\stopinterfacexmlcomponent{commands} \normalstopcommands }
-\def\stopelements {\stopinterfacexmlcomponent{elements} \normalstopelements }
-
-\protect
-
-\starttext
- \startsetupfile
- \input mult-con.tex
- \input mult-com.tex
- \stopsetupfile
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-set-02.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-set-02.mkii
deleted file mode 100644
index 7a2cd77016b..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-set-02.mkii
+++ /dev/null
@@ -1,30 +0,0 @@
-%D \module
-%D [ file=x-set-02,
-%D version=2004.10.31,
-%D remark=setupx.tex: 1998.07.20 and later,
-%D title=\CONTEXT\ Setup Mappings,
-%D subtitle=Macro Definitions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\unprotect \bgroup \catcode`\<=\@@other
-
-\def\setinterfacecomponent#1#2#3%
- {\setgvalue{\string<#1\string:#2\string>}{#3}}
-
-\gdef\getinterfacecomponent#1#2%
- {\executeifdefined{\string<#1\string:#2\string>}{#2}}
-
-\def\setinterfaceconstant{\setinterfacecomponent{constant}} % constant
-\def\setinterfacevariable{\setinterfacecomponent{variable}} % variable
-\def\setinterfaceelement {\setinterfacecomponent{string}} % element
-\def\setinterfacecommand {\setinterfacecomponent{string}} % command
-
-\input mult-\userinterfacetag.mkii
-
-\egroup \protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-set-11.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-set-11.mkii
deleted file mode 100644
index 8c8f614a5b4..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-set-11.mkii
+++ /dev/null
@@ -1,837 +0,0 @@
-%D \module
-%D [ file=x-set-11,
-%D version=2004.10.31,
-%D remark=setupx.tex: 1998.07.20 and later,
-%D title=\CONTEXT\ Setup Definitions,
-%D subtitle=Macro Definitions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% module x-set-02 loads the mapping, after that we can say:
-%
-% texmfstart texexec --int=nl --pdf --global --result=setup-nl x-set-12
-
-\startmessages dutch library: setup
- title: setup
- formula: formule
- number: getal
- list: lijst
- dimension: maat
- mark: markering
- reference: verwijzing
- command: commando
- file: file
- name: naam
- identifier: naam
- text: tekst
- section: sectie
- singular: naam enkelvoud
- plural: naam meervoud
- matrix: n*m
- see: zie
- inherits: erft van
- 1: de karakters < en > zijn globaal actief!
- 2: -- wordt verwerkt
- 3: -- is niet gedefinieerd
- 4: -- wordt nogmaals verwerkt
- optional: optioneel
- displaymath: formule
- index: ingang
- math: formule
- nothing: leeg
- file: file
- position: positie
- reference: verwijzing
- csname: naam
- destination: bestemming
- triplet: triplet
- word: woord
- content: tekst
-\stopmessages
-
-\startmessages english library: setup
- title: setup
- formula: formula
- number: number
- list: list
- dimension: dimension
- mark: mark
- reference: reference
- command: command
- file: file
- name: name
- identifier: identifier
- text: text
- section: section
- singular: singular name
- plural: plural name
- matrix: n*m
- see: see
- inherits: inherits from
- 1: the characters < and > are globally active!
- 2: -- is processed
- 3: -- is undefined
- 4: -- is processed again
- optional: optional
- displaymath: formula
- index: entry
- math: formula
- nothing: empty
- file: file
- position: position
- reference: reference
- csname: name
- destination: destination
- triplet: triplet
- word: word
- content: text
-\stopmessages
-
-\startmessages german library: setup
- title: Setup
- formula: Formel
- number: Nummer
- list: Liste
- dimension: Dimension
- mark: Beschriftung
- reference: Referenz
- command: Befehl
- file: Datei
- name: Name
- identifier: Name
- text: Text
- section: Abschnitt
- singular: singular
- plural: plural
- matrix: n*m
- see: siehe
- inherits: inherits from
- 1: Die Zeichen < und > gelten global!
- 2: -- wird verarbeitet
- 3: -- ist undefiniert
- 4: -- ist mehrmals verarbeitet
- optional: optioneel
- displaymath: formula
- index: entry
- math: formula
- nothing: empty
- file: file
- position: position
- reference: reference
- csname: name
- destination: destination
- triplet: triplet
- word: word
- content: text
-\stopmessages
-
-\startmessages czech library: setup
- title: setup
- formula: rovnice
- number: cislo
- list: seznam
- dimension: dimenze
- mark: znacka
- reference: reference
- command: prikaz
- file: soubor
- name: jmeno
- identifier: jmeno
- text: text
- section: sekce
- singular: jmeno v singularu
- plural: jmeno v pluralu
- matrix: n*m
- see: viz
- inherits: inherits from
- 1: znaky < a > jsou globalne aktivni!
- 2: -- je zpracovano
- 3: -- je nedefinovano
- 4: -- je zpracovano znovu
- optional: optioneel
- displaymath: formula
- index: entry
- math: formula
- nothing: empty
- file: file
- position: position
- reference: reference
- csname: name
- destination: destination
- triplet: triplet
- word: word
- content: text
-\stopmessages
-
-\startmessages italian library: setup
- title: setup
- formula: formula
- number: number
- list: list
- dimension: dimension
- mark: mark
- reference: reference
- command: command
- file: file
- name: name
- identifier: name
- text: text
- section: section
- singular: singular name
- plural: plural name
- matrix: n*m
- see: see
- inherits: inherits from
- 1: the characters < and > are globally active!
- 2: -- is processed
- 3: -- is undefined
- 4: -- is processed again
- optional: optioneel
- displaymath: formula
- index: entry
- math: formula
- nothing: empty
- file: file
- position: position
- reference: reference
- csname: name
- destination: destination
- triplet: triplet
- word: word
- content: text
-\stopmessages
-
-\startmessages romanian library: setup
- title: setari
- formula: formula
- number: numar
- list: lista
- dimension: dimensiune
- mark: marcaj
- reference: referinta
- command: comanda
- file: fisier
- name: nume
- identifier: nume
- text: text
- section: sectiune
- singular: nume singular
- plural: nume pluram
- matrix: n*m
- see: vezi
- inherits: inherits from
- 1: caracterele < si > sunt active global!
- 2: este procesat --
- 3: -- este nedefinit
- 4: -- este procesat din nou
- optional: optioneel
- displaymath: formula
- index: entry
- math: formula
- nothing: empty
- file: file
- position: position
- reference: reference
- csname: name
- destination: destination
- triplet: triplet
- word: word
- 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
-
-\unprotect
-
-% general
-
-\def\setupnumfont {}
-\def\setuptxtfont {}
-\def\setupintfont#1{\uppercase{#1}}
-\def\setupvarfont {\sl}
-\def\setupoptfont {\sl}
-\def\setupalwcolor {}
-\def\setupoptcolor {darkgray}
-
-\defineXMLenvironmentsave [cd:content] [list=,state=]
- {\simpleSETUPargument{content}\blank[\v!halfline]\ignorespaces}
- {\ignorespaces}
-
-\def\c!setup!internal!#1%
- {{\setmessagetext{setup}{#1}%
- \expanded{\setupintfont{\currentmessagetext}}}}
-
-\def\c!setup!text!#1%
- {{\setmessagetext{setup}{#1}%
- \setupvarfont{\currentmessagetext}}}
-
-\def\c!setup!command!#1%
- {{\setupvarfont{\texescape...#1}}}
-
-\def\??stp{@@stp}
-
-\defineregister
- [texmacro]
- [texmacros]
-
-\definesorting
- [texcommand]
- [texcommands]
-
-\setupsorting
- [texcommand]
- [\c!command=\@@stpcommand,
- \c!criterium=\@@stpcriterium]
-
-\definesorting
- [eachtexcommand]
- [alltexcommands]
-
-\setupsorting
- [eachtexcommand]
- [\c!command=\@@stpcommand,
- \c!criterium=\v!all]
-
-\pushmacro\setuptext
-
-\defineframedtext
- [setuptext]
- [\c!width=\hsize,
- \c!height=\v!fit,
- \c!align=\v!right,
- \c!offset=0.75em]
-
-\popmacro\setuptext
-
-\newif\ifshortsetup
-
-\def\doshowsetup
- {\dosingleempty\dodoshowsetup}
-
-\def\dodoshowsetup[#1]%
- {\iffirstargument
- \doshowsetup{#1}%
- \else
- \expandafter\doshowsetup
- \fi}
-
-\bgroup \catcode`\<=\active
-
-\gdef\doshowsetup#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}}}
- {\defconvertedargument\ascii{#1}%
- \em unknown setup \quote{\ascii}}}
- \egroup}
-
-\egroup
-
-\def\setup {\shortsetupfalse\doshowsetup}
-\def\showsetup {\shortsetupfalse\doshowsetup}
-\def\shortsetup{\shortsetuptrue \doshowsetup}
-\def\setupsetup{\dodoubleargument\getparameters[\??stp]}
-
-\setupsetup
- [\c!before=,
- \c!after=,
- \c!command=\setup,
- \c!criterium=\v!used]
-
-% verwijzing: 0 geen verwijzingen plaatsen / wel genereren
-% 1 alleen bij zie plaatsen / wel genereren
-% 2 alle verwijzingen plaatsen / niet genereren
-% 3 bij zie commando klikken / wel genereren
-
-\setupsetup
- [\c!reference=0]
-
-\def\placesetup
- {\bgroup
- \getvalue{\e!place\e!listof texcommands}%
- \egroup}
-
-\def\placeallsetups
- {\bgroup
- \setupsetup[\c!reference=2]%
- \setupreferencing[\c!state=\v!stop]%
- \getvalue{\e!place\e!listof alltexcommands}%
- \egroup}
-
-\let\placeeverysetup\placeallsetups
-
-\let\plaatssetup \placesetup
-\let\plaatselkesetup\placeallsetups
-
-% we use :1 as fallback
-%
-% \setup{setupinterlinespace}
-% \setup{setupinterlinespace:1}
-% \setup{setupinterlinespace:2}
-
-% todo: make this proper mkiv xml
-
-\defineXMLenvironmentsave [cd:define] [name=]
- {}
- {\setxvalue{cd:def:\XMLop{name}}{\XMLflush{cd:define}}}
-
-\defineXMLsingular [cd:resolve] [name=]
- {\ignorespaces\getvalue{cd:def:\XMLop{name}}\ignorespaces}
-
-\defineXMLenvironment [cd:command] [name=,type=,generated=,interactive=,variant=]
- {}
- {\showSETUPrecord}
-
-\def\showSETUPrecord
- {\getvalue{\e!start setuptext}
- \tttf
- \nohyphens
- \veryraggedright
- \startXMLmapping [one]
- \doglobal\newcounter\currentSETUPargument
- \global\let\maximumSETUPargument\currentSETUPargument
- \bgroup
- \doif{\XMLpar{cd:command}{generated}{}}{yes}{\ttsl}%
- \doifelseXMLop{type}{environment}
- {\tex{\e!start}}{\tex{}}\ignorespaces
- \XMLflush{cd:sequence}\ignorespaces
- \egroup
- \doifelseXMLempty{cd:arguments}
- {}
- {\bgroup
- \setbox0=\hbox{\XMLflush{cd:arguments}}%
- \global\let\maximumSETUPargument\currentSETUPargument
- \doglobal\newcounter\currentSETUPargument
- \ignorespaces\XMLflush{cd:arguments}%
- \doif{\XMLpar{cd:command}{type}{}}{environment}
- {\hskip.5em\unknown\hskip.5em
- \doif{\XMLpar{cd:command}{generated}{}}{yes}{\ttsl}%
- \tex{\e!stop}\ignorespaces\XMLflush{cd:sequence}}%
- \endgraf
- \egroup
- %\bgroup
- % \tx
- % \doif{\XMLpar{cd:command}{interactive}{}}{yes} {\quad INTERACTIVE}%
- % \doif{\XMLpar{cd:command}{interactive}{}}{exclusive}{\quad INTERACTIVE ONLY}%
- %\egroup
- \startXMLmapping [two]
- \bgroup
- \doglobal\newcounter\currentSETUPargument
- \blank[\v!line]
- \switchtobodyfont[small] % kan sneller
- \ignorespaces\XMLflush{cd:arguments}\endgraf
- \egroup
- \stopXMLmapping}
- \stopXMLmapping
- \getvalue{\e!stop setuptext}}
-
-\defineXMLenvironmentsave [cd:sequence] \ignorespaces \ignorespaces
-\defineXMLenvironmentsave [cd:arguments] \ignorespaces \ignorespaces
-
-%D This is the first pass; here we generate the top line.
-
-\newcounter\currentSETUPargument
-\def\currentSETUPwidth{0pt}
-
-% environmentsave ?
-
-\startXMLmapping [one]
-
-\defineXMLenvironmentsave [cd:string] [value=]
- {\XMLop{value}\ignorespaces}
- {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:variable] [value=]
- {{\expanded{\setupintfont{\XMLop{value}}}}\ignorespaces}
- {\ignorespaces}
-
-% moet een standaard type worden
-
-\defineXMLenvironmentsave [cd:assignments] [list=,state=]
- {\showSETUPassignment\ignorespaces} {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:keywords] [list=,state=]
- {\showSETUPkeyword\ignorespaces} {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:content] [list=,state=]
- {\showSETUPcontent\ignorespaces} {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:displaymath] [list=,state=]
- {\showSETUPdisplaymath\ignorespaces} {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:index] [list=,state=]
- {\showSETUPindex\ignorespaces} {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:math] [list=,state=]
- {\showSETUPmath\ignorespaces} {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:nothing] [list=,state=]
- {\showSETUPnothing\ignorespaces} {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:file] [list=,state=]
- {\showSETUPfile\ignorespaces} {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:position] [list=,state=]
- {\showSETUPposition\ignorespaces} {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:reference] [list=,state=]
- {\showSETUPreference\ignorespaces} {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:csname] [list=,state=]
- {\showSETUPcsname\ignorespaces} {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:destination] [list=,state=]
- {\showSETUPdestination\ignorespaces} {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:triplet] [list=,state=]
- {\showSETUPtriplet\ignorespaces} {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:word] [list=,state=]
- {\showSETUPword\ignorespaces} {\ignorespaces}
-
-\stopXMLmapping
-
-%D This is the second pass; here we generate the table.
-
-\startXMLmapping [two]
-
-\def\startfirstSETUPcolumn#1%
- {\bgroup
- \advance\leftskip 2em
- \noindent\llap{\hbox to 2em{#1\hss}}}
-
-\def\stopfirstSETUPcolumn
- {\endgraf
- \egroup}
-
-\def\startsecondSETUPcolumn#1#2%
- {\bgroup
- \advance\hangindent \currentSETUPwidth
- \advance\hangindent 2.5em
- \noindent \hbox to \hangindent{#1\hss\hbox to 2.5em{\hss#2\hss}}%
- \ignorespaces}
-
-\def\stopsecondSETUPcolumn
- {\endgraf
- \egroup}
-
-\def\secondSETUPcolumn#1#2%
- {\startsecondSETUPcolumn{#1}{#2}\stopsecondSETUPcolumn}
-
-\def\previousSETUPargument{\currentSETUPargument}
-
-\defineXMLenvironmentsave [cd:assignments]
- {}
- {\xdef\currentSETUPwidth{0pt}%
- \bgroup
- \defineXMLenvironment [cd:parameter] [name=]
- {\setbox0=\hbox{\potentialXMLentity{\XMLop{name}}}%
- \ifdim\wd0>\currentSETUPwidth\xdef\currentSETUPwidth{\the\wd0}\fi}%
- {}%
- \setbox0=\vbox{\XMLflush{cd:assignments}}%
- \egroup
- \startfirstSETUPcolumn{\showSETUPnumber}%
- \doifelseXMLempty{cd:assignments}
- {\secondSETUPcolumn{\c!setup!text!{see} \previousSETUPargument}{}}
- {\ignorespaces
- \XMLflush{cd:assignments}%
- \let\previousSETUPargument\currentSETUPargument}%
- \stopfirstSETUPcolumn
- \blank[\v!halfline]
- \ignorespaces}
-
-\defineXMLenvironmentsave [cd:keywords] [optional=no]
- {}
- {\startfirstSETUPcolumn{\showSETUPnumber}%
- \doifelseXMLempty{cd:keywords}
- {\secondSETUPcolumn{see \previousSETUPargument}{}}
- {\ignorespaces
- \XMLflush{cd:keywords}%
- \let\previousSETUPargument\currentSETUPargument}%
- \stopfirstSETUPcolumn
- \blank[\v!halfline]
- \ignorespaces}
-
-\defineXMLenvironment [cd:parameter] [name=]
- {\startsecondSETUPcolumn{\potentialXMLentity{\XMLop{name}}}{=}%
- \ignorespaces}
- {\stopsecondSETUPcolumn
- \ignorespaces}
-
-\defineXMLenvironmentsave [cd:constant] [type=,default=]
- {\doifXMLop{default}{yes}{\underbar}%
- {\potentialXMLentity{\XMLop{type}}}\space\ignorespaces}
- {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:variable] [value=]
- {\potentialXMLentity{\XMLop{value}}\space\ignorespaces}
- {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:inherit] [name=]
- {\secondSETUPcolumn{\c!setup!text!{inherits} \tex{}\XMLop{name}}{}\ignorespaces}
- {\ignorespaces}
-
-\def\simpleSETUPargument#1%
- {\startfirstSETUPcolumn{\showSETUPnumber}%
- \c!setup!internal!{#1}%
- \stopfirstSETUPcolumn}
-
-\defineXMLenvironmentsave [cd:content] [list=,state=]
- {\simpleSETUPargument{content}\blank[\v!halfline]\ignorespaces}
- {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:displaymath] [list=,state=]
- {\simpleSETUPargument{display math}\blank[\v!halfline]\ignorespaces}
- {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:index] [list=,state=]
- {\simpleSETUPargument{index}\blank[\v!halfline]\ignorespaces}
- {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:math] [list=,state=]
- {\simpleSETUPargument{math}\blank[\v!halfline]\ignorespaces}
- {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:nothing] [list=,state=]
- {\simpleSETUPargument{nothing}\blank[\v!halfline]\ignorespaces}
- {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:file] [list=,state=]
- {\simpleSETUPargument{file name}\blank[\v!halfline]\ignorespaces}
- {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:position] [list=,state=]
- {\simpleSETUPargument{position}\blank[\v!halfline]\ignorespaces}
- {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:reference] [list=,state=]
- {\simpleSETUPargument{reference}\blank[\v!halfline]\ignorespaces}
- {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:csname] [list=,state=]
- {\simpleSETUPargument{csname}\blank[\v!halfline]\ignorespaces}
- {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:destination] [list=,state=]
- {\simpleSETUPargument{destination}\blank[\v!halfline]\ignorespaces}
- {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:triplet] [list=,state=]
- {\simpleSETUPargument{triplet}\blank[\v!halfline]\ignorespaces}
- {\ignorespaces}
-
-\defineXMLenvironmentsave [cd:word] [list=,state=]
- {\simpleSETUPargument{word}\blank[\v!halfline]\ignorespaces}
- {\ignorespaces}
-
-\stopXMLmapping
-
-\defineXMLentity [cd:command] {\c!setup!internal!{command}}
-\defineXMLentity [cd:dimension] {\c!setup!internal!{dimension}}
-\defineXMLentity [cd:file] {\c!setup!internal!{file}}
-\defineXMLentity [cd:name] {\c!setup!internal!{identifier}}
-\defineXMLentity [cd:character] {\c!setup!internal!{character}}
-\defineXMLentity [cd:mark] {\c!setup!internal!{mark}}
-\defineXMLentity [cd:number] {\c!setup!internal!{number}}
-\defineXMLentity [cd:reference] {\c!setup!internal!{reference}}
-\defineXMLentity [cd:plural] {\c!setup!internal!{plural}}
-\defineXMLentity [cd:singular] {\c!setup!internal!{singular}}
-\defineXMLentity [cd:text] {\c!setup!internal!{text}}
-\defineXMLentity [cd:formula] {\c!setup!internal!{formula}}
-\defineXMLentity [cd:file] {\c!setup!internal!{file}}
-\defineXMLentity [cd:matrix] {\c!setup!internal!{matrix}}
-\defineXMLentity [cd:list] {\c!setup!internal!{list}}
-\defineXMLentity [cd:section] {\c!setup!internal!{section}}
-
-\defineXMLentity [cd:noargument] {\c!setup!command!{}}
-\defineXMLentity [cd:oneargument] {\c!setup!command!{\#1}}
-\defineXMLentity [cd:twoarguments] {\c!setup!command!{\#1\#2}}
-\defineXMLentity [cd:threearguments] {\c!setup!command!{\#1\#2\#3}}
-
-%D Todo:
-
-\defineXMLprocess [cd:choice]
-
-%D Auxiliary.
-
-\unexpanded\def\showSETUP#1#2%
- {\bgroup
- \doglobal\increment\currentSETUPargument
- \setbox0=\hbox
- {\doifelseXMLop{list}{yes}{#2}{#1}}%
- \setbox2=\hbox to \wd0
- {\hss
- \raise1ex\hbox
- {\tx\ifcase\maximumSETUPargument\relax
- \or*\else\currentSETUPargument
- \fi}%
- \hss}%
- \setbox4=\hbox to \wd0
- {\hss
- \lower2ex\hbox
- \bgroup
- \txx\doifXMLop{optional}{yes}{\c!setup!internal!{optional}}%
- \egroup
- \hss}%
- \ht2\ht\strutbox
- \dp4\dp\strutbox
- \hskip.5em\hsmash{\box0}\hsmash{\box4}\box2%
- \egroup}
-
-\def\showSETUPnumber
- {\doglobal\increment\currentSETUPargument
- \hbox to 2em
- {\ifcase\maximumSETUPargument\relax
- \or*\else\currentSETUPargument
- \fi
- \hss}}
-
-\def\showSETUPassignment {\showSETUP
- {[.\lower.5ex\hbox{=}.]}
- {[..,.\lower.5ex\hbox{=}.,..]}}
-
-\def\showSETUPkeyword {\showSETUP
- {[...]}
- {[...,...]}}
-
-\def\showSETUPargument {\showSETUP
- {\leftargument..\rightargument}
- {\leftargument..,...,..\rightargument}}
-
-\def\showSETUPdisplaymath {\showSETUP
- {\$\$...\$\$}
- {\$\$...\$\$}}
-
-\def\showSETUPindex {\showSETUP
- {\leftargument...\rightargument}
- {\leftargument..+...+..\rightargument}}
-
-\def\showSETUPmath {\showSETUP
- {\$...\$}
- {\$...\$}}
-
-\def\showSETUPnothing {\showSETUP
- {...}
- {}}
-
-\def\showSETUPfile {\showSETUP
- {~...~}
- {}}
-
-\def\showSETUPposition {\showSETUP
- {(...)}
- {(...,...)}}
-
-\def\showSETUPreference {\showSETUP
- {[...]}
- {[...,...]}}
-
-\def\showSETUPcsname {\showSETUP
- {{\c!setup!command!{}}}
- {}}
-
-\def\showSETUPdestination {\showSETUP
- {[\leftargument..[ref]\rightargument]}
- {[..,\leftargument..[ref,..]\rightargument,..]}}
-
-\def\showSETUPtriplet {\showSETUP
- {[x:y:z=]}
- {[x:y:z=,..]}}
-
-\def\showSETUPword {\showSETUP
- {\leftargument...\rightargument}
- {\leftargument.. ... ..\rightargument}}
-
-\def\showSETUPcontent {\showSETUP
- {\leftargument...\rightargument}
- {\leftargument.. ... ..\rightargument}}
-
-%\def\c!par!{\c!setup!internal!{endofpar}}
-%\def\c!repeat!{\c!opt!{{\setupvarfont n}*}}
-%\showSETUP\def\c!par!{\texescape par}
-%\showSETUP\def\c!sep!{\texescape\texescape}
-%\def\c!par!{\addtypespec{delimiter}{par}} % \par
-%\def\c!sep!{\addtypespec{separator}{backslash}} % \\
-%\def\c!repeat!{}
-%\def\c!tex!#1{\addtypespec{command}{#1}\doanother{tex}}
-
-\startXMLmapping[zero]
-
-\defineXMLenvironmentsave [cd:command] [name=,type=,generated=,interactive=,variant=]
- {}
- {\doifelseXMLop{type}{environment}
- {\edef\currentSETUPname{start\XMLop{name}}}
- {\edef\currentSETUPname{\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}%
- \expanded{\eachtexcommand[stp:x:\currentSETUPname]{\currentSETUPname}}%
- \expanded{\texcommand [stp:y:\currentSETUPname]{\currentSETUPname}}}
-
-\stopXMLmapping
-
-\def\loadsetups{\complexorsimple\loadsetups}
-
-\def\simpleloadsetups
- {\doifnotmode{no-setup-main}
- {\complexloadsetups[cont-en.xml]}}
-
-\def\complexloadsetups[#1]%
- {\doifsomething{#1}
- {\doifnotmode{no-setup-all}
- {\startXMLmapping[zero]
- \expanded{\processXMLfilegrouped{#1}}%
- \stopXMLmapping}}}
-
-\defineXMLsingular [cd:include] [file=]
- {\complexloadsetups[\XMLop{file}]}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-set-12.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-set-12.mkii
deleted file mode 100644
index c2aa265c3f2..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-set-12.mkii
+++ /dev/null
@@ -1,258 +0,0 @@
-%D \module
-%D [ file=x-set-12,
-%D version=2004.10.31,
-%D remark=setupx.tex: 1998.07.20 and later,
-%D title=\CONTEXT\ Setup Definitions,
-%D subtitle=Macro Definitions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\usemodule[set-11]
-
-\unprotect
-
-% \starttext
-% \setup{installlanguage}
-% \placesetup
-% \stoptext
-
-\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 english \loadsetups[cont-en.xml] \stopinterface
-\startinterface dutch \loadsetups[cont-nl.xml] \stopinterface
-\startinterface german \loadsetups[cont-de.xml] \stopinterface
-\startinterface french \loadsetups[cont-fr.xml] \stopinterface
-\startinterface italian \loadsetups[cont-it.xml] \stopinterface
-\startinterface czech \loadsetups[cont-cs.xml] \stopinterface
-\startinterface romanian \loadsetups[cont-ro.xml] \stopinterface
-
-\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]
-
-\usetypescript[palatino]
-\setupbodyfont[palatino,9pt]
-
-\setupcolors
- [\c!state=\v!start]
-
-\defineoverlay
- [cover]
- [\hbox to \paperwidth{\hss\reuseMPgraphic{cover+back}}]
-
-\defineoverlay
- [back]
- [\hbox to \paperwidth{\reuseMPgraphic{cover+back}\hss}]
-
-\startreusableMPgraphic{cover+back}
- numeric h, w ; path p, q, r ; color f, d ; pair s ;
- h := OverlayHeight ; w := 2*OverlayWidth ;
- r := unitsquare xyscaled (w,h) ;
- fill r withcolor \MPcolor{lightgray} ;
- set_grid(w,h,w/8,w/16) ;
- forever :
- s := center r randomized (w,h) ;
- if new_on_grid(xpart s, ypart s) :
- s := (dx,dy) ;
- p := fullsquare xyscaled(w/4,w/8) ;
- q := (-4w,ypart ulcorner p) --
- .5[ulcorner p, urcorner p] --
- (4w,ypart urcorner p) ;
- q := q shifted (0,-w/24) ;
- p := p randomized (w/40,w/40) ;
- q := q randomized (0,w/100) ;
- q := q cutafter (p cutafter point 3 of p) ;
- q := q cutbefore (p cutbefore point 3 of p) ;
- d := .5[\MPcolor{LocalColor},\MPcolor{lightgray}] randomized (.5,.9) ;
- f := \MPcolor{lightgray} randomized (.5,.9) ;
- pickup pencircle scaled (w/100) ;
- fill p shifted s withcolor f ;
- draw p shifted s withcolor d ;
- draw q shifted s withcolor d ;
- fi ;
- exitif grid_full ;
- endfor ;
- setbounds currentpicture to r ;
-\stopreusableMPgraphic
-
-\definelayout
- [titlepage]
- [\c!backspace=1cm,
- \c!topspace=1cm,
- \c!width=\v!middle,
- \c!height=\v!middle,
- \c!header=0pt,
- \c!footer=0pt]
-
-\setuplayout
- [\c!backspace=2cm,
- \c!topspace=1.5cm,
- \c!header=0cm,
- \c!footer=0cm,
- \c!width=\v!middle,
- \c!height=\v!middle]
-
-\setuppagenumbering
- [\c!alternative=\v!doublesided]
-
-\setupsetup
- [\c!criterium=\v!all,
- \c!reference=0]
-
-\setupframedtexts
- [setuptext]
- [\c!frame=\v!on,
- \c!rulethickness=1pt,
- \c!framecolor=TitleColor]
-
-\setupunderbar
- [\c!rulethickness=1pt,
- \c!rulecolor=TitleColor]
-
-\starttext
-
-\setupbackgrounds
- [\v!rightpage]
- [\c!background=cover]
-
-\setuplayout
- [titlepage]
-
-\startsetups text:commands
- \startinterface dutch \strut commando's \par \stopinterface
- \startinterface english \strut commands \par \stopinterface
- \startinterface german \strut befehle \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
-\stopsetups
-
-\startsetups text:uppercase
- \startinterface dutch NL\stopinterface
- \startinterface english EN\stopinterface
- \startinterface german DE\stopinterface
- \startinterface french FR\stopinterface
- \startinterface czech CS\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 cs / \v{c}esk\'y \par \stopinterface
- \startinterface italian \strut it / italiano \par \stopinterface
- \startinterface romanian \strut ro / rom\^{a}n\u{a} \par \stopinterface
-\stopsetups
-
-\startmakeup[\v!standard]
- \dontcomplain
- \setupalign[\v!left]
- \startcolor[TitleColor]
- \definedfont[RegularBold at 100pt]\setstrut
- \strut Con\TeX t \par
- \definedfont[RegularBold at 50pt]\setstrut
- \setups[text:commands]
- \vfill
- \definedfont[RegularBold at 150pt]\setstrut
- \setups[text:uppercase]
- \stopcolor
-\stopmakeup
-
-\setuplayout % needed ?
-
-\setupbackgrounds
- [\v!rightpage]
- [\c!background=]
-
-\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 24pt]\setupinterlinespace
- \setups[text:lowercase]
- \par \strut \currentdate \par
- \stopcolor
-\stopmakeup
-
-\protect
-
-\placeeverysetup
-
-\unprotect
-
-\page[\v!yes,\v!blank,\v!right,\v!left]
-
-\setuplayout
- [titlepage]
-
-\setupbackgrounds
- [\v!leftpage]
- [\c!background=back]
-
-\startmakeup[\v!standard][\c!page=]
- \dontcomplain
- \startcolor[TitleColor]
- \definedfont[RegularBold at 24pt]\setupinterlinespace
- \setupalign[\v!left]
- \vfill
- PRAGMA ADE \par
- Ridderstraat 27 \par
- 8061GH Hasselt NL \par
- www.pragma-ade.com \par
- \stopcolor
-\stopmakeup
-
-\protect
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-sm2om.xsl b/Master/texmf-dist/tex/context/modules/mkii/x-sm2om.xsl
deleted file mode 100644
index 93e1a12c549..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-sm2om.xsl
+++ /dev/null
@@ -1,233 +0,0 @@
-<?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="style">inline</xsl:attribute>
- <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="style">inline</xsl:attribute>
- <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="style">inline</xsl:attribute>
- <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="style">inline</xsl:attribute>
- <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/modules/mkii/x-steps.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-steps.mkii
deleted file mode 100644
index 47141699a93..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-steps.mkii
+++ /dev/null
@@ -1,85 +0,0 @@
-%D \module
-%D [ file=m-steps,
-%D version=2001.05.28,
-%D title=\CONTEXT\ Modules,
-%D subtitle=Step Charts \& Tables,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D The \XML\ interface:
-
-\usemodule[m][steps]
-
-\unprotect
-
-\defineXMLdirective [stepchart] [charts] \setupSTEPcharts
-\defineXMLdirective [stepchart] [cells] \setupSTEPcells
-\defineXMLdirective [stepchart] [texts] \setupSTEPtexts
-\defineXMLdirective [stepchart] [lines] \setupSTEPlines
-
-\defineXMLdirective [steptable] [tables] \setupSTEPtables
-\defineXMLdirective [steptable] [cells] \setupSTEPcells
-\defineXMLdirective [steptable] [texts] \setupSTEPtexts
-\defineXMLdirective [steptable] [lines] \setupSTEPlines
-
-\defineXMLpickup[stepchart][@@STPC]
- {\bgroup
- \defineXMLpush[top]%
- \defineXMLpush[bot]%
- \defineXMLenvironment[lines][@@STEL]
- {\expanded{\startlines[\theXMLarguments{@@STEL}]}}
- {\stoplines}%
- \defineXMLenvironment[cells][@@STEC]
- {\XMLerase{top}\XMLerase{bot}}
- {\expanded{\cells[\theXMLarguments{@@STEC}]{\XMLpop{top}}{\XMLpop{bot}}}}%
- \defineXMLenvironment[texts][@@STET]
- {\XMLerase{top}\XMLerase{bot}}
- {\expanded{\texts[\theXMLarguments{@@STET}]{\XMLpop{top}}{\XMLpop{bot}}}}%
- \defineXMLenvironmentpush[cell][@@STEC]
- {\XMLerase{cell}}
- {\expanded{\cell [\theXMLarguments{@@STEC}]{\XMLpop{cell}}}}%
- \defineXMLenvironmentpush [text] [@@STET]
- {\XMLerase{text}}
- {\expanded{\text [\theXMLarguments{@@STET}]{\XMLpop{text}}}}%
- \expanded{\startSTEPchart[\theXMLarguments{@@STPC}]}}
- {\stopSTEPchart
- \egroup}
-
-\defineXMLpickup[steptable][@@STPT]
- {\bgroup
- \defineXMLenvironment[lines][@@STEL]
- {\expanded{\startlines[\theXMLarguments{@@STEL}]}}
- {\stoplines}%
- \defineXMLargument[cell][@@STEC]
- {\expanded{\cell[\theXMLarguments{@@STEC}]}}%
- \defineXMLargument[text][@@STET]
- {\expanded{\text[\theXMLarguments{@@STET}]}}%
- \defineXMLargument[prep]
- {\prep}%
- \expanded{\startSTEPtable[\theXMLarguments{@@STPT}]}}
- {\stopSTEPtable
- \egroup}
-
-\defineXMLpickup[stepaligntable][@@STPT]
- {\bgroup
- \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}]}}%
- \defineXMLargument[prep]
- {\prep}%
- \expanded{\startSTEPaligntable[\theXMLarguments{@@STPT}]}}
- {\stopSTEPaligntable
- \egroup}
-
-\protect \endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-xml-01.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-xml-01.mkii
deleted file mode 100644
index 95ce51fc888..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-xml-01.mkii
+++ /dev/null
@@ -1,91 +0,0 @@
-%D \module
-%D [ file=x-xml-01,
-%D version=2001.10.10,
-%D title=\CONTEXT\ XML Style File,
-%D subtitle=Formatting X?? files,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% texexec --use=xml-format yourfile.x** [--mode=packed,wide]
-%
-% pdftotext yourfile.pdf yournewfile.x**
-
-\doifnothing {\inputfilename} {\end}
-\doiffileelse {\inputfilename} {} {\end}
-
-% The following makes pdftotext too slow:
-%
-% \definepapersize
-% [mine]
-% [height=.99\maxdimen,
-% width=200cm]
-%
-% \setuppapersize
-% [mine]
-% [mine]
-%
-% \setupbodyfont
-% [0.4pt,tt]
-%
-% this is faster
-%
-% \setuppapersize
-% [A0][A0]
-%
-% but normal A4 combined with 1 pt font size is the best
-%
-% An alternative is to use a small size, but this leads to
-% too many messages
-%
-% \setupbodyfont
-% [1pt,tt]
-%
-% so we stick to a more normal alternive.
-
-\unprotect
-
-\setuplayout
- [\c!backspace=0cm,
- \c!topspace=0cm,
- %\c!width=40em,
- \c!width=\v!middle,
- \c!height=\v!middle,
- \c!header=0cm,
- \c!footer=0cm]
-
-\setupbodyfont [tt,10pt]
-\setuptolerance [\v!verytolerant]
-\setupalign [\v!broad,\v!right]
-\setupXMLfile [\c!level=2]
-
-\startmode[wide]
-
- \setuplayout [\c!width=250cm]
-
-\stopmode
-
-\startmode[packed]
-
-% \setupXMLfile [inbetween=]
- \setupXMLfile [\c!tussen=]
-
-\stopmode
-
-\protect
-
-% The main text:
-
-\def\XMLbannerprocessor#1{\string<\string ?xml #1\string ?\string>\endgraf}
-
-\defineXMLprocessor [xml] {\XMLbannerprocessor}
-
-\starttext
-
- \dontcomplain \showXMLfile{\inputfilename}
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-xml-02.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-xml-02.mkii
deleted file mode 100644
index e33ab9ee4ce..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-xml-02.mkii
+++ /dev/null
@@ -1,91 +0,0 @@
-%D \module
-%D [ file=x-xml-02,
-%D version=2001.10.10,
-%D title=\CONTEXT\ XML Style File,
-%D subtitle=Pretty Printing,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% texexec --use=xml-pretty yourfile.x** [--mode=letter]
-
-\doifnothing {\inputfilename} {\end}
-\doiffileelse {\inputfilename} {} {\end}
-
-\startmode[letter]
- \setuppapersize[letter][letter]
-\stopmode
-
-\setuplayout
- [backspace=1.5cm,
- topspace=1.5cm,
- bottomspace=1cm,
- width=middle,
- height=middle,
- header=1.5cm,
- footer=1.5cm]
-
-\setupcolors
- [state=local]
-
-\setuppagenumbering
- [location=]
-
-\setuplayout
- [style=type]
-
-\setupbodyfont
- [10pt,tt]
-
-\setuptolerance
- [verytolerant]
-
-\setupalign
- [broad,right]
-
-\lowercasestring\inputfilename \to \lcinputfilename
-\defconvertedcommand\lcinputfilename\lcinputfilename % make _ safe
-
-\setupheadertexts
- [\lcinputfilename]
-
-\setupfootertexts
- [\currentdate\space\string| \currenttime\space \string| \pagenumber]
-
-% let's have a look at the type of content:
-
-\setupXMLfile
- [level=2]
-
-\startmode[*suffix-xml]
- % ok
-\stopmode
-
-\startmode[*suffix-rng]
- \showXMLlin[value]
-\stopmode
-
-\startmode[*suffix-rlg]
- \showXMLlin
- [rl:type,rl:state,rl:name,rl:suffix,rl:label,rl:file,rl:original,
- rl:width,rl:height,rl:base,rl:page]
-\stopmode
-
-\startmode[*suffix-exa]
- \showXMLlin
- [exa:resolve,exa:include]
-\stopmode
-
-\def\XMLbannerprocessor#1{\string<\string ?xml #1\string ?\string>\endgraf}
-
-\defineXMLprocessor [xml] {\XMLbannerprocessor}
-
-\starttext
-
-\showXMLfile{\inputfilename}
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkii/x-xml-11.mkii b/Master/texmf-dist/tex/context/modules/mkii/x-xml-11.mkii
deleted file mode 100644
index 047561370e9..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkii/x-xml-11.mkii
+++ /dev/null
@@ -1,134 +0,0 @@
-%D \module
-%D [ file=x-xml-11,
-%D version=2004.09.16,
-%D title=\CONTEXT\ XML Style File,
-%D subtitle=Formatting X?? files,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-% xmltools --analyze yourfile.xml
-% texexec --use=xml-analyze yourfile.*
-
-% \doifnothing {\inputfilename} {\end}
-% \doiffileelse {\inputfilename} {} {\end}
-
-\doifnothing {\jobfullname} {\end}
-\doiffileelse {\jobfullname} {} {\end}
-
-\useXMLfilter[ent]
-\useXMLfilter[utf]
-
-\chardef\XMLtokensreduction\plustwo
-
-\definehead
- [SomeElement]
- [subsection]
-
-\setuphead
- [SomeElement]
- [ownnumber=yes,
- style=\tfb,
- numberstyle=\tfxx,
- alternative=margin]
-
-\setuplayout
- [width=middle,
- height=middle,
- backspace=2cm,
- cutspace=1cm,
- topspace=1cm,
- header=0pt]
-
-\setupfootertexts
- [\jobfullname] % [\inputfilename]
-
-\usetypescript[modern][texnansi] \setupbodyfont[modern,tt,10pt]
-
-\defineXMLenvironment
- [document]
- {}
- {}
-
-\defineXMLpickup
- [entities][n=0]
- {\expanded{\SomeElement{\XMLop{n}}{Entities}}
- \starttabulate[|l|l|l|]}
- {\stoptabulate}
-
-\defineXMLcommand % ugly hack (make macro of it)
- [entity][name=,n=0]
- {\startexpanded
- \noexpand \NC \XMLop{name}
- \noexpand \NC \XMLop{n}
- \noexpand \NC \noexpand\doXMLentity\XMLop{name};
- \noexpand \NC
- \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]
- {}
- {}
-
-\newtoks \TabulateToks
-
-\defineXMLpickup
- [element][name=,n=0]
- {\expanded{\SomeElement{\XMLop{n}}{\XMLop{name}}}
- \TabulateToks\emptytoks}
- {\starttabulate[|l|r|p|]
- \the\TabulateToks
- \stoptabulate}
-
-\defineXMLenvironment
- [attribute][name=]
- {\xdef\AttributeName{\XMLop{name}}}
- {}
-
-\defineXMLenvironment
- [instance][value=,n=0]
- {\appendetoks
- \noexpand \NC \AttributeName
- \noexpand \NC \XMLop{n}
- \noexpand \NC \XMLop{value}
- \noexpand \NC
- \noexpand \NR
- \to \TabulateToks}
- {\xdef\AttributeName{}}
-
-\starttext
-
-% \processXMLfilegrouped{\inputfilename}
-\processXMLfilegrouped{\jobfullname}
-
-\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.lua b/Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.lua
index 31a81433fba..9a93e166d14 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.lua
@@ -29,7 +29,7 @@ sandbox.registerrunner {
checkers = { filename = "readable" },
}
-function moduledata.asympote.process(name,type)
+function moduledata.asymptote.process(name,type)
if type == "prc" then
local result = buffers.run(name,false,"asymptote prc","prc")
local jsdata = { js = replacesuffix(result,"js") }
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.mkiv
index 9cd4037fb58..6317fc07244 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-asymptote.mkiv
@@ -51,7 +51,7 @@
{\iffirstargument
\begingroup
\getdummyparameters[#2]%
- \edef\lasttypesetbuffer{\ctxlua{moduledata.asympote.process("asymptote:#1","\dummyparameter\c!type")}}%
+ \edef\lasttypesetbuffer{\ctxlua{moduledata.asymptote.process("asymptote:#1","\dummyparameter\c!type")}}%
\externalfigure
[\lasttypesetbuffer]%
[\c!controls=\lasttypesetbuffer,#2]%
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-barcodes.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-barcodes.mkiv
index 84f093c56e6..17afb575306 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-barcodes.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-barcodes.mkiv
@@ -1,3 +1,5 @@
+% engine=luatex
+
%D \module
%D [ file=m-barcodes,
%D version=2010.03.14,
@@ -20,6 +22,11 @@
\unexpanded\def\barcode[#1]%
{\normalbarcode[\c!text=\dummyparameter\c!code,\c!alternative=\dummyparameter\c!type,#1]}
+%D We keep the following for historic reasons to show progress over years. The
+%D original idea was to use escrito fro the code below but it never happened as
+%D we went zint. I'll look into that when users really want to use pstricks but I
+%D never had requests and the chemical mpoduel also moved on.
+
\iffalse
% \startTEXpage
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-catchword.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-catchword.mkiv
index 86a3a2d55f8..98f0132fdfe 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-catchword.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-catchword.mkiv
@@ -60,19 +60,19 @@ local function set_catchword(t)
end
local page = tex.getbox(t.box)
local head = nodes.copy_list(first,last.next)
- head = nodes.insert_before(head,head,nodes.pool.glue(1,1,1))
+ head = nodes.insertbefore(head,head,nodes.pool.glue(1,1,1))
local line = nodes.hpack(head,page.width,"exactly")
if CONTEXTLMTXMODE > 0 then
line.yoffset = -t.voffset
line.xoffset = t.hoffset
else
line.shift = t.hoffset
- line = nodes.insert_before(line,line,nodes.pool.kern(t.voffset-line.height))
+ line = nodes.insertbefore(line,line,nodes.pool.kern(t.voffset-line.height))
line = nodes.vpack(line)
end
line.height = 0
line.depth = 0
- node.insert_after(page.list,nodes.tail(page.list),line)
+ nodes.insertafter(page.list,nodes.tail(page.list),line)
logs.report("catchword","appending %a on page %i",nodes.toutf(head),tex.getcount("realpageno"))
end
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-circuitikz.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-circuitikz.mkiv
new file mode 100644
index 00000000000..27ef72642c3
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-circuitikz.mkiv
@@ -0,0 +1,138 @@
+%D \module
+%D [ file=m-circuitikz,
+%D version=2021.12.03,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=CURCUITIKZ support,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D A fixed variant of the t-curcuitikz module distributed with tikz. This one
+%D is for \LMTX.
+
+\usemodule[m][tikz]
+
+\startmodule[circuitikz]
+
+\usetikzlibrary[calc]
+\usetikzlibrary[arrows.meta]
+\usetikzlibrary[bending]
+\usetikzlibrary[fpu] % may be needed for use fpu reciprocal (v1.0.1)
+
+\tikzinputfile{pgfcirc.defines.tex}
+\tikzinputfile{pgfcircutils.tex}
+\tikzinputfile{pgfcircpath.tex}
+
+\tikzinputfile{pgfcircshapes.tex}
+\tikzinputfile{pgfcircmonopoles.tex}
+\tikzinputfile{pgfcircbipoles.tex}
+\tikzinputfile{pgfcirctripoles.tex}
+\tikzinputfile{pgfcircquadpoles.tex}
+\tikzinputfile{pgfcircmultipoles.tex}
+
+\tikzinputfile{pgfcirclabel.tex}
+\tikzinputfile{pgfcircvoltage.tex}
+\tikzinputfile{pgfcirccurrent.tex}
+\tikzinputfile{pgfcircflow.tex}
+
+\ifdefined\pgfcircversion \else \def\pgfcircversion {0.0.0} \fi
+\ifdefined\pgfcircversiondate \else \def\pgfcircversiondate {1010/01/01} \fi
+
+% defaults
+
+\setupmodule
+ [current=european,
+ voltage=european,
+ resistor=american,
+ inductor=cute,
+ logic=american,
+ %siunitx=true,
+ arrowmos=false]
+
+% can be done nicer ... todo
+
+\processaction
+ [\currentmoduleparameter{voltage}]
+ [european=>\ctikzset{voltage=european},
+ american=>\ctikzset{voltage=american}]
+
+\processaction
+ [\currentmoduleparameter{current}]
+ [european=>\ctikzset{current=european},
+ american=>\ctikzset{current=american}]
+
+\processaction
+ [\currentmoduleparameter{label}]
+ [straight=>\ctikzset{label/align=straight},
+ align=>\ctikzset{label/align=rotate},
+ smart=>\ctikzset{label/align=smart}]
+
+\processaction
+ [\currentmoduleparameter{resistor}]
+ [european=>\ctikzset{resistor=european},
+ american=>\ctikzset{resistor=american}]
+
+\processaction
+ [\currentmoduleparameter{inductor}]
+ [european=>\ctikzset{inductor=european},
+ american=>\ctikzset{inductor=american},
+ cute=>\ctikzset{inductor=cute}]
+
+\processaction
+ [\currentmoduleparameter{diode}]
+ [ full=>\ctikzset{diode=full},
+ empty=>\ctikzset{diode=empty}]
+
+\processaction
+ [\currentmoduleparameter{logic}]
+ [european=>\ctikzset{logic ports=european},
+ american=>\ctikzset{logic ports=american}]
+
+% hm, we have units since '97 so one can load the units module in mkii or
+% assume it is present (mkiv and therefore lmtx)
+%
+% \processaction
+% [\currentmoduleparameter{siunitx}]
+% [true=>\def\SI #1#2{#1\,#2}
+% \def\ampere {\rm{A}}
+% \def\volt {\rm{V}}
+% \def\ohm {\Omega}
+% \def\siemens {\rm{S}}
+% \def\farad {\rm{F}}
+% \def\henry {\rm{H}}
+% \def\second {\rm{s}}
+% \def\coulomb {\rm{C}}
+% \def\siemens {\rm{S}}
+% \def\radians {\rm{rad}}
+% \def\milli {\rm{m}}
+% \def\micro {\mu}
+% \def\nano {\rm{n}}
+% \def\pico {\rm{p}}
+% \def\kilo {\rm{k}}
+% \def\mega {\rm{M}}
+% \def\giga {\rm{G}}
+% \def\tera {\rm{T}}]
+
+\unprotect
+
+\processaction
+ [\currentmoduleparameter{arrowmos}]
+ [true=>\pgf@circuit@mos@arrowstrue,
+ false=>\pgf@circuit@mos@arrowsfalse]
+
+\protect
+
+\ctikzset{tripoles/op amp/font/.initial=\switchtobodyfont[small]}
+
+\aliased\let\stopcircuitikz\relax
+
+\permanent\protected\def\startcircuitikz#1\stopcircuitikz
+ {\starttikzpicture#1\stoptikzpicture}
+
+\stopmodule
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-compatible.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-compatible.mkiv
index 0e056180a92..7e6e733ec5e 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-compatible.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-compatible.mkiv
@@ -11,6 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\ifcase\contextlmtxmode\else\endinput\fi
+
%D I fear that I will not keep up in this file so feel free to contribute to the
%D following. The idea is nto to load this file but more to have some insight in
%D how to control compatibility (to some extent).
@@ -58,6 +60,4 @@
% \input page-cst.mkiv
-
-
\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-escrito.lua b/Master/texmf-dist/tex/context/modules/mkiv/m-escrito.lua
index 0d7a04741d4..b284aece47e 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-escrito.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-escrito.lua
@@ -48,6 +48,24 @@ if not modules then modules = { } end modules ['m-escrito'] = {
-- of the VM calls (in direct mode they are no-ops anyway). We can also share some
-- more code here and there.
+-- Notes:
+--
+-- -- all modules are checked / adapted to lmtx but how about this one ... i noticed
+-- that a file in the test suite failed
+--
+-- -- the idea was to use this for the m4all eps files but we swichted the format
+-- there; nevertheless i patched a littl but it's still not ok (cold winter work)
+--
+-- -- for instance some ppor mans fancy shading doesn't show up (not that efficient
+-- either so ...)
+--
+-- -- let's see what the new fast ps->pdf lib from artifact brings ... makes more
+-- sense in the perspective of ps 2 and 3 .. but there is some sentiment involved
+--
+-- -- room for implification (like no integer / real distinction needed)
+--
+-- -- so for now this is not part of the mkiv/lmtx code split (then also go Lua 5.4)
+
local type, unpack, tonumber, tostring, next = type, unpack, tonumber, tostring, next
local format = string.format
@@ -78,7 +96,7 @@ local log10 = math.log10
local random = math.random
local setranseed = math.randomseed
-local bitand = bit32.band
+local bitand = bit32.band -- when lmtx: Lua 5.4
local bitor = bit32.bor
local bitxor = bit32.bxor
local bitrshift = bit32.rshift
@@ -133,7 +151,7 @@ initializers[#initializers+1] = function()
VM = { }
end
-local directvm = true
+local directvm = false -- true (but then we ned to patch more VM[..]
local add_VM, get_VM
@@ -245,6 +263,9 @@ end
local opstack
local opstackptr
+local b_true = { 'boolean', 'unlimited', 'literal', true }
+local b_false = { 'boolean', 'unlimited', 'literal', false }
+
initializers[#initializers+1] = function()
opstack = { }
opstackptr = 0
@@ -489,7 +510,7 @@ function operators.exch()
if opstackptr < 2 then
return ps_error('stackunderflow')
end
- local prv = opstackptr-1
+ local prv = opstackptr - 1
opstack[opstackptr], opstack[prv] = opstack[prv], opstack[opstackptr]
return true
end
@@ -498,7 +519,7 @@ function operators.dup()
if opstackptr < 1 then
return ps_error('stackunderflow')
end
- local nxt = opstackptr+1
+ local nxt = opstackptr + 1
opstack[nxt] = opstack[opstackptr]
opstackptr = nxt
return true
@@ -1835,10 +1856,10 @@ function operators.anchorsearch()
local post = sub(thestring,#thesearch+1)
push_opstack { 'string', 'unlimited', 'literal', add_VM(post), 1, #post }
push_opstack { 'string', 'unlimited', 'literal', add_VM(prefix), 1, #prefix }
- push_opstack { 'boolean', 'unlimited', 'literal', true }
+ push_opstack (b_true)
else
push_opstack(a)
- push_opstack { 'boolean', 'unlimited', 'literal', false }
+ push_opstack (b_false)
end
return true
end
@@ -1884,10 +1905,10 @@ function operators.search()
push_opstack { 'string', 'unlimited', 'literal', add_VM(post), 1, #post }
push_opstack { 'string', 'unlimited', 'literal', add_VM(thesearch), 1, #thesearch }
push_opstack { 'string', 'unlimited', 'literal', add_VM(prefix), 1, #prefix }
- push_opstack { 'boolean', 'unlimited', 'literal', true }
+ push_opstack (b_true)
else
push_opstack(a)
- push_opstack { 'boolean', 'unlimited', 'literal', false }
+ push_opstack(b_false)
end
return true
end
@@ -1913,7 +1934,7 @@ function operators.token()
if not v then
pop_execstack()
pop_execstack()
- push_opstack { 'boolean', 'unlimited', 'literal', false }
+ push_opstack(b_false)
else
local q = pop_execstack()
if execstack[execstackptr][1] == '.token' then
@@ -1933,7 +1954,7 @@ function operators.token()
end
push_opstack { ta, aa, a[3], add_VM(substring), 1, #substring}
push_opstack(v)
- push_opstack { 'boolean', 'unlimited', 'literal', true }
+ push_opstack(b_true)
end
else -- file
if a[7] ~= 'r' then
@@ -1945,7 +1966,7 @@ function operators.token()
if not v then
pop_execstack()
pop_execstack()
- push_opstack { 'boolean', 'unlimited', 'literal', false }
+ push_opstack(b_false)
else
local q = pop_execstack() -- the file
a[5] = q[5]
@@ -1953,7 +1974,7 @@ function operators.token()
pop_execstack()
end
push_opstack(v)
- push_opstack { 'boolean', 'unlimited', 'literal', true }
+ push_opstack(b_true)
end
end
return true
@@ -1994,7 +2015,7 @@ end
function operators.eq()
local ok, a, b = both()
if ok then
- push_opstack { 'boolean', 'unlimited', 'literal', a == b }
+ push_opstack(a == b and b_true or b_false)
return true
else
return a
@@ -2004,7 +2025,7 @@ end
function operators.ne()
local ok, a, b = both()
if ok then
- push_opstack { 'boolean', 'unlimited', 'literal', a ~= b }
+ push_opstack(a ~= b and b_true or b_false)
return true
else
return a
@@ -2040,7 +2061,7 @@ end
function operators.ge()
local ok, a, b = both()
if ok then
- push_opstack { 'boolean', 'unlimited', 'literal', a >= b }
+ push_opstack(a >= b and b_true or b_false)
return true
else
return a
@@ -2050,7 +2071,7 @@ end
function operators.gt()
local ok, a, b = both()
if ok then
- push_opstack { 'boolean', 'unlimited', 'literal', a > b }
+ push_opstack(a > b and b_true or b_false)
return true
else
return a
@@ -2060,7 +2081,7 @@ end
function operators.le()
local ok, a, b = both()
if ok then
- push_opstack { 'boolean', 'unlimited', 'literal', a <= b }
+ push_opstack(a <= b and b_true or b_false)
return true
else
return a
@@ -2070,7 +2091,7 @@ end
function operators.lt()
local ok, a, b = both()
if ok then
- push_opstack { 'boolean', 'unlimited', 'literal', a < b }
+ push_opstack(a < b and b_true or b_false)
return true
else
return a
@@ -2104,7 +2125,7 @@ end
operators["and"]= function()
local ok, a, b = both()
if ok == 'boolean' then
- push_opstack { 'boolean', 'unlimited', 'literal', a[1] and b[1] }
+ push_opstack((a[1] and b[1]) and b_true or b_false)
return true
elseif ok == 'integer' then
push_opstack { 'integer', 'unlimited', 'literal', bitand(a[1],b[1]) }
@@ -2117,7 +2138,7 @@ end
operators["or"] = function()
local ok, a, b = both()
if ok == 'boolean' then
- push_opstack {'boolean', 'unlimited', 'literal', a[1] or b[1] }
+ push_opstack((a[1] or b[1]) and b_true or b_false)
return true
elseif ok == 'integer' then
push_opstack {'integer', 'unlimited', 'literal', bitor(a[1],b[1]) }
@@ -2130,7 +2151,7 @@ end
function operators.xor()
local ok, a, b = both()
if ok == 'boolean' then
- push_opstack {'boolean', 'unlimited', 'literal', a[1] ~= b[1] }
+ push_opstack ((a[1] ~= b[1]) and b_true or b_false) -- hm, unequal ?
return true
elseif ok == 'integer' then
push_opstack {'integer', 'unlimited', 'literal', bitxor(a[1],b[1]) }
@@ -2151,7 +2172,7 @@ operators["not"] = function()
return ps_error('invalidaccess')
end
if ta == 'boolean' then
- push_opstack { 'boolean', 'unlimited', 'literal', not a[4] }
+ push_opstack ((not a[4]) and b_true or b_false)
elseif ta == 'integer' then
push_opstack { 'integer', 'unlimited', 'literal', -a[4] - 1 }
else
@@ -2516,7 +2537,7 @@ function operators.xcheck()
if not a then
return ps_error('stackunderflow')
end
- push_opstack { 'boolean', 'unlimited', 'literal', a[3] == 'executable' }
+ push_opstack((a[3] == 'executable') and b_true or b_false)
return true
end
@@ -2602,7 +2623,7 @@ function operators.rcheck()
else
return ps_error('typecheck')
end
- push_opstack { 'boolean', 'unlimited', 'literal', aa == 'unlimited' or aa == 'read-only' }
+ push_opstack((aa == 'unlimited' or aa == 'read-only') and p_true or p_false)
return true
end
@@ -2621,7 +2642,7 @@ function operators.wcheck()
else
return ps_error('typecheck')
end
- push_opstack { 'boolean', 'unlimited', 'literal', aa == 'unlimited' }
+ push_opstack((aa == 'unlimited') and p_true or p_false)
return true
end
@@ -2906,10 +2927,10 @@ function operators.read()
end
if b then
push_opstack { 'integer', 'unlimited', 'literal', byte(b) }
- push_opstack { 'boolean', 'unlimited', 'literal', true }
+ push_opstack (p_true)
else
f:close()
- push_opstack { 'boolean', 'unlimited', 'literal', false}
+ push_opstack (p_false)
end
return true
end
@@ -3042,7 +3063,7 @@ do
end
if not va then
push_opstack { 'string', 'unlimited', 'literal', add_VM(''), 0, 0 }
- push_opstack { 'boolean', 'unlimited', 'literal', false }
+ push_opstack (p_false)
else
local n = #va
if n > b[6] then
@@ -3051,7 +3072,7 @@ do
local thestring = get_VM(b[4])
VM[b[4]] = va .. sub(thestring,#va+1, -1)
push_opstack { 'string', 'unlimited', 'literal', add_VM(va), n, n }
- push_opstack { 'boolean', 'unlimited', 'literal', true }
+ push_opstack (p_true)
end
return true
end
@@ -3100,7 +3121,7 @@ do
local n = #va
VM[b[4]] = repl .. sub(thestring,n+1,-1)
push_opstack { b[1], b[2], b[3], add_VM(va), n, n }
- push_opstack { 'boolean', 'unlimited', 'literal', n == b[6] }
+ push_opstack ((n == b[6]) and p_true or p_false)
return true
end
@@ -3335,8 +3356,8 @@ local function commonstack(seperator)
for n=1,opstackptr do
push_opstack { 'string', 'unlimited', 'literal', add_VM(seperator), 1 ,1 }
push_opstack(opstack[n])
- push_execstack { 'operator','unlimited','executable', operators.print, 'print'}
- push_execstack { 'operator','unlimited','executable', operators.equal, '=='}
+ push_execstack { 'operator','unlimited','executable', operators.print, 'print' }
+ push_execstack { 'operator','unlimited','executable', operators.equal, '==' }
end
return true
end
@@ -3377,15 +3398,21 @@ end
function operators.save()
local saved_VM = { }
- for k1, v1 in next, VM do
+-- for k1, v1 in next, VM do
+ for k1 = 1, #VM do
+ local v1 = VM[k1]
if type(v1) == "table" then
local t1 = { }
saved_VM[k1] = t1
- for k2, v2 in next, t1 do
+-- for k2, v2 in next, v1 do
+ for k2=1,#v1 do
+ local v2 = v1[k2]
if type(v2) == "table" then
local t2 = { }
t1[k2] = t2
- for k3, v3 in next, v2 do
+-- for k3, v3 in next, v2 do
+ for k3=1,#v2 do
+ local v3 = v2[k3]
t2[k3] = v3
end
else
@@ -3401,6 +3428,13 @@ function operators.save()
push_opstack { 'save', 'unlimited', 'executable', add_VM(saved_VM) }
end
+function operators.save()
+ local saved_VM = table.copy(VM)
+ push_gsstack { 'save', copy_gsstate() }
+ savelevel = savelevel + 1
+ push_opstack { 'save', 'unlimited', 'executable', add_VM(saved_VM) }
+end
+
do
local function validstack(stack,index,saved_VM)
@@ -3532,6 +3566,9 @@ end
function operators.gsave()
push_gsstack { 'gsave', copy_gsstate() }
+ currentpage[#currentpage+1] = {
+ type = 'gsave',
+ }
return true
end
@@ -3543,6 +3580,9 @@ function operators.grestore()
gsstate = g[2]
end
end
+ currentpage[#currentpage+1] = {
+ type = 'grestore',
+ }
return true
end
@@ -4183,7 +4223,7 @@ function operators.setmatrix()
if i > 6 then
return ps_error('rangecheck')
end
- matrix[i] = va
+ matrix[i] = tv
end
return true
end
@@ -4856,7 +4896,7 @@ local function commonarc(action)
if not a then
return ps_error('stackunderflow')
end
- local ta, tb, tc, td, te = a[1], b[1], c[1], d[1], e[1], f[1]
+ local ta, tb, tc, td, te = a[1], b[1], c[1], d[1], e[1]
if not (ta == 'real' or ta == 'integer') then return ps_error('typecheck') end
if not (tb == 'real' or tb == 'integer') then return ps_error('typecheck') end
if not (tc == 'real' or tc == 'integer') then return ps_error('typecheck') end
@@ -5058,6 +5098,7 @@ function operators.rcurveto()
if #position == 0 then
return ps_error('nocurrentpoint')
end
+ local matrix = gsstate.matrix
local x, y = do_transform(matrix, e[4], f[4])
local ax, ay = do_transform(matrix, a[4], b[4])
local bx, by = do_transform(matrix, c[4], d[4])
@@ -5458,21 +5499,23 @@ local function boundingbox (page)
for i=1,#page do
local object = page[i]
local p = object.path
- linewidth = object.type == "stroke" and object.linewidth
- for i=1,#p do
- local segment = p[i]
- local type = segment[1]
- if type == "lineto" then
- if startx then
- update_bbox(startx,starty)
+ if p then
+ linewidth = object.type == "stroke" and object.linewidth
+ for i=1,#p do
+ local segment = p[i]
+ local type = segment[1]
+ if type == "lineto" then
+ if startx then
+ update_bbox(startx,starty)
+ end
+ update_bbox(segment[2],segment[3])
+ elseif type == "curveto" then
+ local c6 = segment[6]
+ local c7 = segment[7]
+ splitter(0, 0, 1, startx, starty, segment[2], segment[3], segment[4], segment[5], c6, c7, startx, starty, c6, c7)
+ elseif type == "moveto" then
+ startx, starty = segment[2], segment[3]
end
- update_bbox(segment[2],segment[3])
- elseif type == "curveto" then
- local c6 = segment[6]
- local c7 = segment[7]
- splitter(0, 0, 1, startx, starty, segment[2], segment[3], segment[4], segment[5], c6, c7, startx, starty, c6, c7)
- elseif type == "moveto" then
- startx, starty = segment[2], segment[3]
end
end
end
@@ -5485,6 +5528,17 @@ end
------------------------------------------------------------------
+function operators.pathbbox()
+ print("todo: pathbbox")
+ push_opstack { "real", 'unlimited', 'literal', 0 }
+ push_opstack { "real", 'unlimited', 'literal', 0 }
+ push_opstack { "real", 'unlimited', 'literal', 1 }
+ push_opstack { "real", 'unlimited', 'literal', 1 }
+ return true
+end
+
+------------------------------------------------------------------
+
-- most time is spend in calculating the boundingbox
-- NULL output
@@ -5537,113 +5591,136 @@ function pdf.showpage(page)
local object = page[i]
local path = object.path
local otyp = object.type
- if otype ~= "clip" and otype ~= "eoclip" then
- local colortype = object.colortype
- local color = object.color
- if colortype == "gray" then
- local v = formatters["%f g %f G"](color,color)
- if g_color ~= v then
- g_colortype = "gray"
- g_color = v
- n = n + 1 ; t[n] = v
+ if otyp == "gsave" then
+ n = n + 1 ; t[n] = "q"
+ -- todo push / pop
+g_colortype = "notacolor"
+g_color = ""
+g_miterlimit = -1
+g_linejoin = -1
+g_linecap = -1
+g_linewidth = -1
+g_dashpattern = nil
+g_dashoffset = -1
+ elseif otyp == "grestore" then
+g_colortype = "notacolor"
+g_color = ""
+g_miterlimit = -1
+g_linejoin = -1
+g_linecap = -1
+g_linewidth = -1
+g_dashpattern = nil
+g_dashoffset = -1
+ n = n + 1 ; t[n] = "Q"
+ else
+ if otyp ~= "clip" and otyp ~= "eoclip" then
+ local colortype = object.colortype
+ local color = object.color
+ if colortype == "gray" then
+ local v = formatters["%f g %f G"](color,color)
+ if g_color ~= v then
+ g_colortype = "gray"
+ g_color = v
+ n = n + 1 ; t[n] = v
+ end
+ elseif colortype == "rgb" then
+ local r, g, b = color[1], color[2], color[3]
+ local v = formatters["%f %f %f rg %f %f %f RG"](r,g,b,r,g,b)
+ if g_color ~= v then
+ g_colortype = "rgb"
+ g_color = v
+ n = n + 1 ; t[n] = v
+ end
+ elseif colortype == "cmyk" then
+ local c, m, y, k = color[1], color[2], color[3], color[4]
+ local v = formatters["%f %f %f %f k %f %f %f %f K"](c,m,y,k,c,m,y,k)
+ if g_color ~= v then
+ g_colortype = "cmyk"
+ g_color = v
+ n = n + 1 ; t[n] = v
+ end
+ elseif colortype == "hsb" then
+ local r, g, b = hsv_to_rgb(color[1],color[2],color[3])
+ local v = formatters["%f %f %f rg %f %f %f RG"](r,g,b,r,g,b)
+ if g_color ~= v then
+ g_colortype = "rgb"
+ g_color = v
+ n = n + 1 ; t[n] = v
+ end
end
- elseif colortype == "rgb" then
- local r, g, b = color[1], color[2], color[3]
- local v = formatters["%f %f %f rg %f %f %f RG"](r,g,b,r,g,b)
- if g_color ~= v then
- g_colortype = "rgb"
- g_color = v
- n = n + 1 ; t[n] = v
+ end
+ if otyp == "stroke" then
+ local miterlimit = object.miterlimit
+ if g_miterlimit ~= miterlimit then
+ g_miterlimit = miterlimit
+ n = n + 1 ; t[n] = formatters["%f M"](miterlimit)
end
- elseif colortype == "cmyk" then
- local c, m, y, k = color[1], color[2], color[3], color[4]
- local v = formatters["%f %f %f %f k %f %f %f %f K"](c,m,y,k,c,m,y,k)
- if g_color ~= v then
- g_colortype = "cmyk"
- g_color = v
- n = n + 1 ; t[n] = v
+ local linejoin = object.linejoin
+ if g_linejoin ~= linejoin then
+ g_linejoin = linejoin
+ n = n + 1 ; t[n] = formatters["%d j"](linejoin)
end
- elseif colortype == "hsb" then
- local r, g, b = hsv_to_rgb(color[1],color[2],color[3])
- local v = formatters["%f %f %f rg %f %f %f RG"](r,g,b,r,g,b)
- if g_color ~= v then
- g_colortype = "rgb"
- g_color = v
- n = n + 1 ; t[n] = v
+ local linecap = object.linecap
+ if g_linecap ~= linecap then
+ g_linecap = linecap
+ n = n + 1 ; t[n] = formatters["%d J"](linecap)
end
- end
- end
- if otype == "stroke" then
- local miterlimit = object.miterlimit
- if g_miterlimit ~= miterlimit then
- g_miterlimit = miterlimit
- n = n + 1 ; t[n] = formatters["%f M"](miterlimit)
- end
- local linejoin = object.linejoin
- if g_linejoin ~= linejoin then
- g_linejoin = linejoin
- n = n + 1 ; t[n] = formatters["%d j"](linejoin)
- end
- local linecap = object.linecap
- if g_linecap ~= linecap then
- g_linecap = linecap
- n = n + 1 ; t[n] = formatters["%d J"](linecap)
- end
- local linewidth = object.linewidth
- if g_linewidth ~= linewidth then
- g_linewidth = linewidth
- n = n + 1 ; t[n] = formatters["%f w"](linewidth)
- end
- local dashpattern = object.dashpattern
- local dashoffset = object.dashoffset
- if g_dashpattern ~= dashpattern or g_dashoffset ~= dashoffset then
- g_dashpattern = dashpattern
- g_dashoffset = dashoffset
- local l = #dashpattern
- if l == 0 then
- n = n + 1 ; t[n] = "[] 0 d"
- else
- n = n + 1 ; t[n] = formatters["[% t] %d d"](dashpattern,dashoffset)
+ local linewidth = object.linewidth
+ if g_linewidth ~= linewidth then
+ g_linewidth = linewidth
+ n = n + 1 ; t[n] = formatters["%f w"](linewidth)
+ end
+ local dashpattern = object.dashpattern
+ local dashoffset = object.dashoffset
+ if g_dashpattern ~= dashpattern or g_dashoffset ~= dashoffset then
+ g_dashpattern = dashpattern
+ g_dashoffset = dashoffset
+ local l = #dashpattern
+ if l == 0 then
+ n = n + 1 ; t[n] = "[] 0 d"
+ else
+ n = n + 1 ; t[n] = formatters["[% t] %d d"](dashpattern,dashoffset)
+ end
end
end
- end
- if path then
- for i=1,#path do
- local segment = path[i]
- local styp = segment[1]
- if styp == "moveto" then
- n = n + 1 ; t[n] = formatters["%f %f m"](segment[2],segment[3])
- elseif styp == "lineto" then
- n = n + 1 ; t[n] = formatters["%f %f l"](segment[2],segment[3])
- elseif styp == "curveto" then
- n = n + 1 ; t[n] = formatters["%f %f %f %f %f %f c"](segment[2],segment[3],segment[4],segment[5],segment[6],segment[7])
- elseif styp == "closepath" then
- n = n + 1 ; t[n] = "h"
- else
- report("unknown path segment type %a",styp)
+ if path then
+ for i=1,#path do
+ local segment = path[i]
+ local styp = segment[1]
+ if styp == "moveto" then
+ n = n + 1 ; t[n] = formatters["%f %f m"](segment[2],segment[3])
+ elseif styp == "lineto" then
+ n = n + 1 ; t[n] = formatters["%f %f l"](segment[2],segment[3])
+ elseif styp == "curveto" then
+ n = n + 1 ; t[n] = formatters["%f %f %f %f %f %f c"](segment[2],segment[3],segment[4],segment[5],segment[6],segment[7])
+ elseif styp == "closepath" then
+ n = n + 1 ; t[n] = "h"
+ else
+ report("unknown path segment type %a",styp)
+ end
end
end
- end
- if otyp == "stroke" then
- n = n + 1 ; t[n] = "S"
- elseif otyp == "fill" then
- n = n + 1 ; t[n] = "f"
- elseif otyp == "eofill" then
- n = n + 1 ; t[n] = "f*"
- elseif otyp == "clip" then
- n = n + 1 ; t[n] = "W n"
- elseif otyp == "eoclip" then
- n = n + 1 ; t[n] = "W* n"
- elseif otyp == "show" then
- if showfont then
- if n > 0 then
- flushpage(concat(t,"\n"))
- n = 0 ; t = { }
+ if otyp == "stroke" then
+ n = n + 1 ; t[n] = "S"
+ elseif otyp == "fill" then
+ n = n + 1 ; t[n] = "f"
+ elseif otyp == "eofill" then
+ n = n + 1 ; t[n] = "f*"
+ elseif otyp == "clip" then
+ n = n + 1 ; t[n] = "W n"
+ elseif otyp == "eoclip" then
+ n = n + 1 ; t[n] = "W* n"
+ elseif otyp == "show" then
+ if showfont then
+ if n > 0 then
+ flushpage(concat(t,"\n"))
+ n = 0 ; t = { }
+ end
+ showfont(object)
end
- showfont(object)
+ else
+ -- nothing to do
end
- else
- -- nothing to do
end
end
n = n + 1 ; t[n] = "Q"
@@ -6198,7 +6275,7 @@ function operators.kshow()
local entry = execstack[execstackptr]
if entry[1] == '.exit' and entry[4] == true then
pop_execstack()
- return true;
+ return true
end
do_show(fontdict,w)
v = w
@@ -6332,6 +6409,7 @@ initializers[#initializers+1] = function(reset)
['cleartomark'] = { 'operator', 'unlimited', 'executable', operators.cleartomark, 'cleartomark' },
['clip'] = { 'operator', 'unlimited', 'executable', operators.clip, 'clip' },
['clippath'] = { 'operator', 'unlimited', 'executable', operators.clippath, 'clippath' },
+ ['pathbbox'] = { 'operator', 'unlimited', 'executable', operators.pathbbox, 'pathbbox' },
['closefile'] = { 'operator', 'unlimited', 'executable', operators.closefile, 'closefile' },
['closepath'] = { 'operator', 'unlimited', 'executable', operators.closepath, 'closepath' },
['concat'] = { 'operator', 'unlimited', 'executable', operators.concat, 'concat' },
@@ -6535,7 +6613,7 @@ initializers[#initializers+1] = function(reset)
size = 1,
maxsize = 40,
dict = {
- newerror = { 'boolean', 'unlimited', 'literal', false }
+ newerror = p_false
},
}
--
@@ -6638,7 +6716,7 @@ do
local sign = S('+-')^-1
local digit = R('09')
local period = P('.')
- local letters = R('!~') - S('[]<>{}()%')
+ local letters = R('!~') - S('[]<>{}()%/')
local hexdigit = R('09','af','AF')
local radixdigit = R('09','az','AZ')
@@ -6732,7 +6810,12 @@ do
object[5] = position
end
if not value then
- return false -- handle_error('syntaxerror')
+ if tokentype == "eof" then
+ -- pop_execstack()
+ return true
+ else
+ return false -- handle_error('syntaxerror')
+ end
elseif tokentype == 'integer' or tokentype == 'real' then
if push { tokentype, 'unlimited', 'literal', value } then
return true
@@ -6759,6 +6842,8 @@ do
end
elseif tokentype == 'bounding' then
specials.boundingbox = value
+ else
+ -- comment
end
end
return position >= length
@@ -6833,7 +6918,7 @@ do
return false
end
local otyp = object[1]
- if DEBUG then
+ if false then -- debugging
if otyp == 'operator' then
report_exec("%s %s %s",otyp,object[3],object[5])
elseif otyp == 'dict' then
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-escrito.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-escrito.mkiv
index 2d69fb21828..94251d843f5 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-escrito.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-escrito.mkiv
@@ -14,12 +14,16 @@
\registerctxluafile{m-escrito}{}
%D This is a fun project and not meant for production (yet). It's a follow up on a
-%D project by Taco presented at a Bacho\TeX\ meeting years ago. I probably messed up
+%D project by Taco presented at a Bacho\TEX\ meeting years ago. I probably messed up
%D the code so much that some things don't work but then, fonts are not really
%D supported well anyway. However for simple \POSTSCRIPT\ things work out ok.
%D
%D I (Hans) will occasionally have a look at the code. Who knows what our trips to
-%D \TeX\ meetings lead to.
+%D \TEX\ meetings lead to.
+
+%D Ecause the (already split) barcode modules don't need this I'll postpone the
+%D splitting of this one till later. It's more fun project anyway and there are
+%D buglets as well as no support for tricky features.
\unprotect
@@ -78,15 +82,6 @@
\startluacode
- local literal = nodes.pool.register(node.new("whatsit",nodes.whatsitcodes.pdfliteral))
- literal.mode = 0
-
- local function newliteral(result)
- local l = nodes.copy(literal)
- l.data = result
- return l
- end
-
local p = escrito.devices.pdf
function p.startpage(llx,lly,urx,ury)
@@ -98,7 +93,7 @@
end
function p.flushpage(result)
- context(newliteral(result))
+ context.pdfliteral(result) -- LMTX save (test suite reported issue)
end
-- todo
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-matrix.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-matrix.mkiv
index 4a0bd712d49..a5747ac814d 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-matrix.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-matrix.mkiv
@@ -729,6 +729,7 @@ $\qquad\qquad$
\stopsubject
\startsubject[title={Transpose a matrix}]
+
\startbuffer
\startluacode
moduledata.matrix.typeset(document.DemoMatrixA)
@@ -752,6 +753,7 @@ $\qquad\qquad$
\getbuffer[demo]
+\startbuffer
\startluacode
context("$<1,2,3> \\cdot <3,1,2, 4> \\ =\\ $ ")
context(moduledata.matrix.inner({ 1, 2, 3 }, { 3, 1, 2, 4 }))
@@ -882,7 +884,6 @@ context(moduledata.matrix.inner({ 1, 2, 3 }, { 3, 1, 2, 4 }))
context("$\\Rightarrow$")
moduledata.matrix.typeset(moduledata.matrix.rowechelon(m,1))
\stopluacode
-
\stopbuffer
\getbuffer[demo]
@@ -989,6 +990,4 @@ context(moduledata.matrix.inner({ 1, 2, 3 }, { 3, 1, 2, 4 }))
\getbuffer[demo]
-\stopsubject
-
\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-mkii.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-mkii.mkiv
index dcfd29d2092..4961b73809d 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-mkii.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-mkii.mkiv
@@ -1,5 +1,7 @@
% todo
+\ifcase\contextlmtxmode\else\endinput\fi
+
\unprotect
\writestatus\m!system{loading some mkii compatibility hacks}
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-obsolete.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-obsolete.mkiv
index 2d4518181e6..73fb1c16791 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-obsolete.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-obsolete.mkiv
@@ -1,3 +1,5 @@
+\ifcase\contextlmtxmode\else\endinput\fi
+
\unprotect
\writestatus\m!system{skipping obsolete module}
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-oldfun.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-oldfun.mkiv
index f20d7d8e961..9530aa06546 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-oldfun.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-oldfun.mkiv
@@ -11,6 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\ifcase\contextlmtxmode\else\endinput\fi
+
\unprotect
%D Beware, these macros wil be replaced and at some point this
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-oldnum.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-oldnum.mkiv
index 5109cca1225..63ac15085ea 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-oldnum.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-oldnum.mkiv
@@ -11,6 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\ifcase\contextlmtxmode\else\endinput\fi
+
% See end for transition to mkiv.
\writestatus{loading}{ConTeXt Support Macros / Numbers}
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-pictex.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-pictex.mkiv
index 73aad3f57df..8843ac4ce9f 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-pictex.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-pictex.mkiv
@@ -11,7 +11,16 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D Just in case someone still uses \PICTEX:
+%D Just in case someone still uses \PICTEX\ we provide a loader. However, because it
+%D expect some plain helpers to be present (like \type {\newhelp} and because it
+%D defined some already used dimensions, we'd either need to adapt or add some
+%D push|/|pop here. Because \CONTEXT\ users have \METAPOST\ support we no longer
+%D support \PICTEX\ in \LMTX.
+
+\ifcase\contextlmtxmode \else
+ \writestatus{modules}{the PicTeX graphic system is not supported in LMTX}
+ \expandafter \endinput
+\fi
\ifdefined\beginpicture \else
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-pstricks.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-pstricks.mkiv
index 421607aafe9..c3c6f769b0e 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-pstricks.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-pstricks.mkiv
@@ -11,6 +11,17 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D We don't support \PSTRICKS\ in \LMTX. In \MKIV\ it was already doen by calling
+%D \PDFTEX\ and going the \POSTSCRIPT\ route. We could actually support it sort of
+%D integrated if it were just graphics but I suppose fonts will make it a mess not
+%D worth the trouble. One can always use \MKII\ directly if needed to make graphics
+%D that get included as \PDF.
+
+\ifcase\contextlmtxmode \else
+ \writestatus{modules}{the PStricks graphic system is not supported in LMTX}
+ \expandafter \endinput
+\fi
+
\registerctxluafile{m-pstricks}{}
\unprotect
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-punk.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-punk.mkiv
index 9eb7411babb..8aecfb01f43 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-punk.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-punk.mkiv
@@ -19,7 +19,7 @@
\ifcase\contextlmtxmode\else
\writestatus{punk}{use metapost library punk instead}
- \endinput
+ \expandafter\endinput
\fi
\startluacode
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-scite.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-scite.mkiv
index 659d5f58dfd..7686b0ec1d8 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-scite.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-scite.mkiv
@@ -102,9 +102,9 @@ local function exportcolors()
local function black(f)
return (f[1] == f[2]) and (f[2] == f[3]) and (f[3] == 0)
end
--- local result, r = { f_mapping }, 1
-local result, r = { }, 0
- for k, v in table.sortedhash(lexer.context.styles) do
+ -- local result, r = { f_mapping }, 1
+ local result, r = { }, 0
+ for k, v in table.sortedhash(lexers.styles) do
local fore = v.fore
if fore and not black(fore) then
r = r + 1
@@ -113,7 +113,7 @@ local result, r = { }, 0
end
r = r + 1
result[r] = "%"
- for k, v in table.sortedhash(lexer.context.styles) do
+ for k, v in table.sortedhash(lexers.styles) do
local bold = v.bold
local fore = v.fore
r = r + 1
@@ -145,7 +145,7 @@ local function exportwhites()
end
local function exportstyled(lexer,text)
- local result = lexer.lex(lexer,text,0)
+ local result = lexers.lex(lexer,text,0)
local start = 1
local whites = exportwhites()
local buffer = { }
@@ -454,6 +454,7 @@ moduledata.scite = scite
\unexpanded\def\module_scite_buffer_inline[#1][#2]%
{\dontleavehmode
\begingroup
+ \lettypingparameter\c!margin\zeropoint
\setcatcodetable\ctxcatcodes % needed in xml
\ifsecondargument
\clf_scitelexbuffer{#2}{#1}%
@@ -465,6 +466,7 @@ moduledata.scite = scite
\module_scite_inherit_typing
\dontcomplain
\getbuffer[lex]%
+ \removeunwantedspaces
\endgroup}
\unexpanded\def\startInlineScite#1%
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-simulate.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-simulate.mkiv
index dc444890308..c4817b95e53 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-simulate.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-simulate.mkiv
@@ -109,7 +109,7 @@
\else
\discretionary{\p_hyphen}{}{\kern\scratchdimenthree}%
\fi\fi\fi\fi\fi\fi}%
- \edef\truncated##1##2\relax{##1}%
+ \def\truncated##1##2\relax{##1}%
% trialtypesetting: tricky
\ifx\p_random\empty \else
\pushrandomseed
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-sql.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-sql.mkiv
index bb62610ea13..fb8c0fe7f3d 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-sql.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-sql.mkiv
@@ -13,14 +13,14 @@
\startmodule[sql]
-\registerctxluafile{util-tpl}{}
-\registerctxluafile{util-sql}{}
-
\ifcase\contextlmtxmode\else
\registerctxluafile{libs-imp-mysql}{autosuffix}
\registerctxluafile{libs-imp-sqlite}{autosuffix}
\fi
+\registerctxluafile{util-tpl}{}
+\registerctxluafile{util-sql}{}
+
\setupmodule
\doifsomething {\currentmoduleparameter{method}}{
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-steps.mkvi b/Master/texmf-dist/tex/context/modules/mkiv/m-steps.mkvi
index fb2000d40d2..b6ebfac6b36 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-steps.mkvi
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-steps.mkvi
@@ -33,10 +33,10 @@
\installcorenamespace {steptexts}
\installcorenamespace {steplines}
-\installstylisticautosetuphandler \??stepcharts {STEPchart} \??stepcharts
-\installstylisticautosetuphandler \??stepcells {STEPcell} \??stepcells
-\installstylisticautosetuphandler \??steptexts {STEPtext} \??steptexts
-\installstylisticautosetuphandler \??steplines {STEPline} \??steplines
+\installstylisticautosetuphandler \??stepcharts {STEPchart}
+\installstylisticautosetuphandler \??stepcells {STEPcell}
+\installstylisticautosetuphandler \??steptexts {STEPtext}
+\installstylisticautosetuphandler \??steplines {STEPline}
\let\setupSTEPcharts\setupSTEPchart
\let\setupSTEPtables\setupSTEPchart % one can define categories so no need
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-tikz.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-tikz.mkiv
index 9267f90d49b..221c074adca 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-tikz.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-tikz.mkiv
@@ -1,75 +1,125 @@
-%D A fixed variant if the t-tikz module distributed with tikz.
+%D \module
+%D [ file=m-tikz,
+%D version=2021.07.12,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=TIKZ support,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D A fixed variant of the t-tikz module distributed with tikz. For practical reasons
+%D per 2021 we split the module for \MKIV\ and \LMTX. (Maybe some day I'll optimize
+%D TIKZ a bit.)
+%D
+%D All these t-* modules in the tikz distribution make no sense as we can just load
+%D them here which is way cleaner. There is also some mkii filename mapping going on
+%D that is not needed on todays systems (windows has no 8.3 limitation and on unix
+%D tds finally adopted a case insensitive approach.)
+
+%D Just in case someone does a hard input ...
+
+\ifdefined\pgfdefined \endinput \fi
+\ifdefined\pgfcoredefined\endinput \fi
+
+%D ... but normally we end up here:
+
+\startmodule[tikz]
\ifdefined\pdflastxpos \else
\unprotect
- \frozen\overloaded\protected\def\pdflastxpos{\numexpr\clf_lastxpos\relax}
- \frozen\overloaded\protected\def\pdflastypos{\numexpr\clf_lastypos\relax}
+ \unexpanded\def\pdflastxpos{\numexpr\clf_lastxpos\relax}
+ \unexpanded\def\pdflastypos{\numexpr\clf_lastypos\relax}
\protect
\fi
+\permanent\protected\def\starttikzinput
+ {\pushcatcodetable
+ \setcatcodetable\texcatcodes
+ \catcode`\@=11
+ \catcode`\|=12
+ \catcode`\!=12
+ \relax}
-\pushoverloadmode
+\permanent\protected\def\stoptikzinput
+ {\relax
+ \popcatcodetable}
- \pushcatcodetable
-
- \setcatcodetable\texcatcodes
-
- \catcode`\@=11
- \catcode`\|=12
- \catcode`\!=12
-
- \input t-pgf.tex
- \input t-pgffor.tex
- \input tikz.code.tex
-
- \popcatcodetable
-
-\popoverloadmode
+\permanent\protected\def\tikzinputfile#1%
+ {\starttikzinput
+ \input{#1}\relax
+ \stoptikzinput}
\permanent\protected\def\tikzerrormessage#1#2#3%
{\writestatus{#1}{#2}}
-\ifcase\contextlmtxmode
-
- \let\starttikzsettings\relax
- \let\stoptikzsettings \relax
-
- \protected\def\starttikzpicture
- {% \dontleavehmode
- \begingroup
- \ifdefined\PackageError\else \let\PackageError\tikzerrormessage \fi
- \tikzpicture}
-
- \protected\def\stoptikzpicture
- {\endtikzpicture
- \endgroup}
-
-\else
-
- % for now:
-
- \overloadmode\zerocount
-
- % but this will be mandate for settings outside the start .. stop
-
- \permanent\protected\def\starttikzsettings
- {\pushoverloadmode}
-
- \permanent\protected\def\stoptikzsettings
- {\popoverloadmode}
-
- \permanent\protected\def\starttikzpicture
- {\dontleavehmode
- \hcontainer\bgroup
- % \pushoverloadmode
- \ifdefined\PackageError\else \let\PackageError\tikzerrormessage \fi
- \tikzpicture}
-
- \permanent\protected\def\stoptikzpicture
- {\endtikzpicture
- % \popoverloadmode
- \egroup}
-
-\fi
+% For now we need this but we need to educate the user to wrap settings in the
+% wrappers. So some day the next line will go. I need to check what commands are
+% possible outside a picture.
+
+\protected\def\starttikzsettings
+ {}
+
+\protected\def\stoptikzsettings
+ {}
+
+\protected\def\starttikzpicture
+ {\dontleavehmode
+ \hbox\bgroup
+ \ifdefined\PackageError\else \let\PackageError\tikzerrormessage \fi
+ \tikzpicture}
+
+\permanent\protected\def\stoptikzpicture
+ {\endtikzpicture
+ \egroup}
+
+\let\pgfdefined \relax
+\let\pgfcoredefined\relax
+
+\tikzinputfile{pgfutil-common.tex}
+\tikzinputfile{pgfutil-context.def}
+\tikzinputfile{pgfrcs.code.tex}
+\tikzinputfile{pgfsys.code.tex}
+\tikzinputfile{pgfkeys.code.tex}
+\tikzinputfile{pgfsyssoftpath.code.tex}
+\tikzinputfile{pgfsysprotocol.code.tex}
+\tikzinputfile{pgfcore.code.tex}
+\tikzinputfile{pgffor.code.tex}
+\tikzinputfile{pgfmoduleplot.code.tex}
+\tikzinputfile{tikz.code.tex}
+
+\let\startpgfpicture \pgfpicture \let\stoppgfpicture \endpgfpicture
+\let\startpgfscope \pgfscope \let\stoppgfscope \endpgfscope
+\let\startpgflowlevelscope \pgflowlevelscope \let\stoppgflowlevelscope \endpgflowlevelscope
+\let\startpgfinterruptpath \pgfinterruptpath \let\stoppgfinterruptpath \endpgfinterruptpath
+\let\startpgfinterruptpicture \pgfinterruptpicture \let\stoppgfinterruptpicture \endpgfinterruptpicture
+\let\startpgfinterruptboundingbox\pgfinterruptboundinbox \let\stoppgfinterruptboudingbox\endpgfinterruptboundingbox
+
+\let\normalusepgfmodule \usepgfmodule
+\let\normalusepgflibrary\usepgflibrary
+
+\unexpanded\def\usepgfmodule {\doifelsenextoptional\dousepgfmoduleyes \dousepgfmodulenop }
+\unexpanded\def\usepgflibrary{\doifelsenextoptional\dousepgflibraryyes\dousepgflibrarynop}
+
+\def\dousepgfmodulenop #1{\dousepgfmoduleyes [#1]}
+\def\dousepgflibrarynop#1{\dousepgflibraryyes[#1]}
+
+\def\dousepgfmoduleyes[#1]%
+ {\starttikzinput
+ \normalusepgfmodule[#1]%
+ \stoptikzinput}
+
+\def\dousepgflibraryyes[#1]%
+ {\starttikzinput
+ \normalusepgflibrary[#1]%
+ \stoptikzinput}
+
+\usepgfmodule[shapes]
+\usepgfmodule[plot]
+\usepgfmodule[matrix]
+\usepgfmodule[decorations]
\stopmodule
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-units.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-units.mkiv
index 4f25fffc62d..02d1b6aa7b8 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-units.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-units.mkiv
@@ -11,6 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\ifcase\contextlmtxmode\else\endinput\fi
+
%D Best use the built in unit handle!
%D Scientific units can be typeset in math mode pretty well,
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-zint.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/m-zint.mkiv
new file mode 100644
index 00000000000..4880aa39b27
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkiv/m-zint.mkiv
@@ -0,0 +1,115 @@
+%D \module
+%D [ file=m-zint,
+%D version=2010.12.07,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=Zint Barcode Generator,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Using \type {zint} seems to be the easiest way to generate (PDF417) barcodes so
+%D therefore we now have this module. There are proper (also windows) binaries at:
+%D
+%D \starttyping
+%D http://www.zint.org.uk
+%D \stoptyping
+%D
+%D There is a bit more code than needed as we want to be able to feed names.
+
+\startluacode
+
+moduledata.zint = { }
+
+local format, lower, gsub = string.format, string.lower, string.gsub
+local patterns = lpeg.patterns
+
+local zint = "zint" -- '"c:/program files/zint/zint.exe"'
+local defaultcode = "PDF417"
+
+local whitespace = patterns.whitespace
+local spaces = whitespace^0
+local key = (spaces / "") * patterns.digit^0 * (patterns.colon * spaces / "")
+local value = (whitespace / "" + (1 - key))^1
+local pattern = lpeg.Cf(lpeg.Ct("") * (lpeg.Cg((lpeg.Cs(key) / tonumber) * (lpeg.Cs(value) / lower)) + patterns.anything)^0,rawset)
+
+local reverse
+
+local function cleancode(code)
+ if not code or code == "" then
+ code = defaultcode
+ end
+ return lower(gsub(code," ",""))
+end
+
+local function numberofcode(code)
+ if not reverse then
+ local types = os.resultof(format("%s --types",zint)) or ""
+ local formats = lpeg.match(pattern,types)
+ if not formats or not next(formats) then
+ return code
+ end
+ reverse = table.swapped(formats) or { }
+ end
+ code = cleancode(code)
+ return reverse[code] or code
+end
+
+function moduledata.zint.generate(code,data,suffix,options)
+ if not data or data == "" then
+ data = "unset"
+ end
+ local code = cleancode(code)
+ local base = format("zint-%s-%s",code,md5.hex(data))
+ local name = file.addsuffix(base,suffix or "eps")
+ if not lfs.isfile(name) then
+ local temp = file.addsuffix(base,"tmp")
+ local code = numberofcode(code)
+ io.savedata(temp,data)
+ local command = format('%s --barcode=%s %s --output="%s" --input="%s"',zint,code,options or "",name,temp)
+ logs.simple("using 'zint' to generate '%s'",base)
+ logs.simple("command '%s'",command)
+ print(command)
+ os.execute(command)
+ os.remove(temp)
+ end
+ return name
+end
+
+\stopluacode
+
+\unprotect
+
+\unexpanded\def\barcode[#1]% [alternative=,text=]
+ {\bgroup
+ \getdummyparameters
+ [\c!alternative=,\c!text=,\c!suffix=eps,\c!option=,#1]%
+ \externalfigure
+ [\cldcontext{moduledata.zint.generate("\dummyparameter\c!alternative",\!!bs\dummyparameter\c!text\!!es,"\dummyparameter\c!suffix","\dummyparameter\c!option")}]%
+ [#1,\c!option=,\c!alternative=,\c!text=]%
+ \egroup}
+
+\protect
+
+\continueifinputfile{m-zint.mkiv}
+
+\starttext
+
+% \externalfigure[\cldcontext{moduledata.zint.generate("PDF417",[[Hans Hagen]])}]
+% \blank
+% \externalfigure[\cldcontext{moduledata.zint.generate("PDF417","Ton Otten")}]
+% \blank
+% \externalfigure[\cldcontext{moduledata.zint.generate("ISBN","9789490688011")}]
+% \blank
+% \barcode[text=Does It Work?,width=\textwidth]
+% \blank
+% \barcode[alternative=isbn,text=9789490688011,width=3cm]
+% \blank
+% \barcode[alternative=datamatrix,text=whatever,width=3cm,option=--square,suffix=png]
+ \barcode[alternative=maxicode,text=whatever,width=3cm,suffix=png]
+\stoptext
+
+
diff --git a/Master/texmf-dist/tex/context/modules/common/s-abbreviations-extras.tex b/Master/texmf-dist/tex/context/modules/mkiv/s-abbreviations-extras.tex
index 7ee6e1553d5..7ee6e1553d5 100644
--- a/Master/texmf-dist/tex/context/modules/common/s-abbreviations-extras.tex
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-abbreviations-extras.tex
diff --git a/Master/texmf-dist/tex/context/modules/common/s-abbreviations-logos.tex b/Master/texmf-dist/tex/context/modules/mkiv/s-abbreviations-logos.tex
index dfac57f0af6..ab2b98a56fe 100644
--- a/Master/texmf-dist/tex/context/modules/common/s-abbreviations-logos.tex
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-abbreviations-logos.tex
@@ -42,6 +42,7 @@
\logo [ANSI] {ansi}
\logo [APA] {apa}
\logo [API] {api}
+\logo [APL] {apl}
\logo [ARABTEX] {Arab\TeXsuffix}
\logo [ARM] {arm}
\logo [ASCII] {ascii}
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-charts.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-charts.mkiv
index 3123cc0d0f0..0f183e39d73 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-charts.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-charts.mkiv
@@ -54,6 +54,7 @@
\starttexdefinition unexpanded FontChartSetLegend #1
\dontleavehmode
+% \kern .5mm
\setbox\scratchbox\hbox to 1cm \bgroup
\infofont\hss#1\hss
\egroup
@@ -89,7 +90,8 @@
local filename = settings.filename or settings.name or ""
local fontid = true
- local newpage = settings.page == interfaces.variables.yes
+ local newpage = settings.page == interfaces.variables.yes
+ local all = settings.option == interfaces.variables.all
if filename ~= "" then
fontid = fonts.definers.internal({ name = filename, size = "10pt" },"chartfont")
@@ -101,7 +103,7 @@
local chars = data.characters
for u in table.sortedhash(chars) do
- if u >= private then
+ if not all and u >= private then
break
else
ranges[div(u,0xFF)] = true
@@ -127,6 +129,7 @@
context.offinterlineskip()
ctx_noslot()
for i=0,0xF do
+ ctx_gap()
ctx_setlegend(formatters["%03X"](r*0x10+i))
end
r = r * 0xFF
@@ -169,7 +172,12 @@
\starttext
- \showfontchart[filename=aegean,page=yes]
+% \showfontchart[filename=texgyredejavu-math.otf,page=yes,option=all]
+
+% \showfontchart[filename=danlan.otf] % ,page=yes,option=all]
+% \showfontchart[filename=danlan-bold.otf] % ,page=yes,option=all]
+
+% \showfontchart[filename=aegean,page=yes]
% \showfontchart[filename=veramono.ttf,page=yes]
% \showfontchart[filename=CoelacanthSubhdHeavy.otf,page=yes]
@@ -205,4 +213,8 @@
% \showfontchart[filename=LucidaCalligraphyOT.otf,page=yes]
% \showfontchart[filename=LucidaHandwritingOT.otf,page=yes]
+% \showfontchart[filename=iwonar.afm,page=yes]
+% \showfontchart[filename=iwonarz.afm,page=yes]
+ \showfontchart[filename=e:/tmp/Iwona-Math.otf,page=yes]
+
\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-coverage.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-coverage.mkiv
index 2d18708421b..a4ae9d211c9 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-coverage.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-coverage.mkiv
@@ -31,16 +31,18 @@
\continueifinputfile{s-fonts-coverage.mkiv}
+% \usemodule[fonts-coverage]
+
\usemodule[art-01]
\starttext
- \showfontcomparison
- [list={texgyrepagella-regular.otf,texgyretermes-regular.otf,texgyrebonum-regular.otf},
- pattern=ogonek]
-
% \showfontcomparison
-% [list={texgyrepagella-regular.otf,texgyretermes-regular.otf,nimbusroman-regular.afm}]
+% [list={texgyrepagella-regular.otf,texgyretermes-regular.otf,texgyrebonum-regular.otf},
+% pattern=ogonek]
+
+ \showfontcomparison
+ [list={texgyrepagella-regular.otf,texgyretermes-regular.otf,nimbusroman-regular.afm}]
\page
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-emoji.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-emoji.mkiv
index 59fdda124fb..f26a2bb096a 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-emoji.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-emoji.mkiv
@@ -20,7 +20,8 @@ local utfvalues = string.utfvalues
local context = context
-local traverse_id = node.traverse_id
+local traverseid = nodes.traverseid
+
local glyph_code = nodes.nodecodes.glyph
local descriptions = fonts.hashes.descriptions
@@ -60,7 +61,7 @@ local function emojiglyphs(name)
if d then
local e = checkedemoji(name)
local s = { }
- for n in traverse_id(glyph_code,e) do
+ for n in traverseid(glyph_code,e) do
local b = n.char
if not (b == 0x200D or (b >= 0x1F3FB and b <= 0x1F3FF)) then
local t = { }
@@ -78,7 +79,7 @@ local function emojiglyphs(name)
end
end
end
- nodes.flush_list(e)
+ nodes.flushlist(e)
return #s > 0 and s or nil
end
end
@@ -292,39 +293,64 @@ end
\start
-\definedfont[seguiemj*seguiemj-cl]
+\definedfont[file:seguiemj.any*default,seguiemj-cl]
+
+% \ShowEmojiSnippets
+% [family man light skin tone woman dark skin tone girl medium skin tone boy medium skin tone]
+
+% \ShowEmojiSnippetsOverlay
+% [family man light skin tone woman dark skin tone girl medium skin tone boy medium skin tone]
+
+% \ShowEmojiGlyphs
+% [family man light skin tone woman dark skin tone girl medium skin tone boy medium skin tone]
+
+% \page
+
+% \ShowEmoji[^man]
+
+% \ShowEmoji[backhand index pointing down]
+% \ShowEmoji[backhand index pointing up]
+
+\startTEXpage
+[\char8205\char128104]=\char988828\par
+[\char8205\char128105]=\char988851\par
+[\char8205\char983484]=\char988834\par
+[\char8205\char983485]=\char988835\par
+[\char8205\char983486]=\char988836\par
+[\char8205\char983487]=\char988837\par
+[\char8205\char983488]=\char988838\par
+[\char8205\char983495]=\char988858\par
+[\char8205\char983496]=\char988859\par
+[\char8205\char983497]=\char988860\par
+[\char8205\char983498]=\char988861\par
+[\char8205\char983499]=\char988862\par
+\stopTEXpage
+
+
-\ShowEmojiSnippets
- [family man light skin tone woman dark skin tone girl medium skin tone boy medium skin tone]
-\ShowEmojiSnippetsOverlay
- [family man light skin tone woman dark skin tone girl medium skin tone boy medium skin tone]
-\ShowEmojiGlyphs
- [family man light skin tone woman dark skin tone girl medium skin tone boy medium skin tone]
-\page
-\ShowEmoji[^man]
-\page
+% \page
-\definecolor[emoji-base][r=.4]
-\definecolor[emoji-gray][s=.5,t=.5,a=1]
+% \definecolor[emoji-base][r=.4]
+% \definecolor[emoji-gray][s=.5,t=.5,a=1]
-\definefontcolorpalette
- [emoji-gray]
- [emoji-base,emoji-gray]
+% \definefontcolorpalette
+% [emoji-gray]
+% [emoji-base,emoji-gray]
-\definefontfeature[seguiemj-cl][ccmp=yes,dist=yes,colr=emoji-gray]
+% \definefontfeature[seguiemj-cl][ccmp=yes,dist=yes,colr=emoji-gray]
-\definedfont[seguiemj*seguiemj-cl]
+% \definedfont[seguiemj*seguiemj-cl]
-\ShowEmoji
+% \ShowEmoji
-\page
+% \page
-\ShowEmojiPalettes[1]
+% \ShowEmojiPalettes[1]
\stop
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.lua
index 34268c1716a..2a1d36e140c 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.lua
@@ -200,6 +200,8 @@ function moduledata.fonts.features.showfeatureset(specification)
end
end
+-- The next one looks a bit like the collector in font-oup.lua.
+
local function collectligatures(tfmdata)
local sequences = tfmdata.resources.sequences
@@ -207,18 +209,28 @@ local function collectligatures(tfmdata)
return
end
+ -- Mostly the same as s-fonts-tables so we should make a helper.
+
local series = { }
local stack = { }
local max = 0
+ local function add(v)
+ local n = #stack
+ if n > max then
+ max = n
+ end
+ series[#series+1] = { v, unpack(stack) }
+ end
+
local function make(tree)
for k, v in sortedhash(tree) do
if k == "ligature" then
- local n = #stack
- if n > max then
- max = n
- end
- series[#series+1] = { v, unpack(stack) }
+ add(v)
+ elseif tonumber(v) then
+ insert(stack,k)
+ add(v)
+ remove(stack)
else
insert(stack,k)
make(v)
@@ -286,3 +298,60 @@ function moduledata.fonts.features.showallligatures(specification)
context.par()
end
end
+
+
+function moduledata.fonts.features.showallfeatures(specification)
+ specification = interfaces.checkedspecification(specification)
+ local id, cs = fonts.definers.internal(specification,"<module:fonts:features:font>")
+ local tfmdata = fonts.hashes.identifiers[id]
+ local sequences = tfmdata.resources.sequences
+
+ context.starttabulate { "|T|T|Tc|T|T|Tp|" }
+
+ NC() context.bold("\\letterhash")
+ NC() context.bold("type")
+ NC() context.bold("\\letterhash steps")
+ NC() context.bold("feature")
+ NC() context.bold("script")
+ NC() context.bold("language")
+ NC() NR()
+ context.HL()
+
+ for i=1,#sequences do
+ local s = sequences[i]
+ local features = s.features
+ if features then
+ local done1 = false
+ NC() context(i)
+ NC() context(s.type)
+ NC() context(s.nofsteps)
+ for feature, scripts in table.sortedhash(features) do
+ NC()
+ if done1 then
+ NC() NC() NC()
+ else
+ context(feature)
+ done1 = true
+ end
+ local done2 = false
+ for script, languages in table.sortedhash(scripts) do
+ if done2 then
+ NC() NC() NC() NC()
+ else
+ done2 = true
+ end
+ NC() context(script)
+ NC() context("% t",table.sortedkeys(languages))
+ NC() context.NR()
+ end
+ end
+ else
+ NC() context(i)
+ NC() context(s.type)
+ NC() context(s.nofsteps)
+ NC() NC() NC() NC() NR()
+ end
+ end
+
+ context.stoptabulate()
+end
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.mkiv
index 2390c44df07..81d2b0dcdfc 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-features.mkiv
@@ -20,6 +20,7 @@
\installmodulecommandluasingle \showbasekerns {moduledata.fonts.features.showbasekerns}
\installmodulecommandluasingle \showallligatures {moduledata.fonts.features.showallligatures}
\installmodulecommandluasingle \showfeatureset {moduledata.fonts.features.showfeatureset}
+\installmodulecommandluasingle \showallfeatures {moduledata.fonts.features.showallfeatures}
\def\kernpairheight{.8\strutht}
\def\kernpairdepth {.8\strutdp}
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-kerns.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-kerns.mkiv
index c3a5637c350..1767ad4729e 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-kerns.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-kerns.mkiv
@@ -30,31 +30,6 @@
local glyph_code = nodecodes.glyph
local hlist_code = nodecodes.hlist
- -- local function flatten(l)
- -- while l do
- -- local id = l.id
- -- if id == disc_code then
- -- local r = l.replace
- -- if r then
- -- local p = l.prev
- -- local n = l.next
- -- if n and p and n.id == glyph_code and p.id == glyph_code then
- -- local s = node.slide(r)
- -- p.next = r
- -- n.prev = s
- -- r.prev = p
- -- s.next= n
- -- l.replace = nil
- -- node.free(l)
- -- end
- -- end
- -- elseif id == hlist_code then
- -- flatten(l.list)
- -- end
- -- l = l.next
- -- end
- -- end
-
local function mark(l,c)
while l do
local id = l.id
@@ -90,7 +65,7 @@
local id = l.id
if id == kern_code then
i = i + 1
- node.insert_before(x,l,node.copy(m[i]))
+ nodes.insertbefore(x,l,node.copy(m[i]))
elseif id == disc_code then
i = inject(l.pre,m,i)
i = inject(l.post,m,i)
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-missing.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-missing.lua
index 7db5c2fb87d..a8e2ca21a93 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-missing.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-missing.lua
@@ -9,35 +9,53 @@ if not modules then modules = { } end modules ['s-fonts-missing'] = {
moduledata.fonts = moduledata.fonts or { }
moduledata.fonts.missing = moduledata.fonts.missing or { }
-local function legend(id)
- local privates = fonts.helpers.getprivates(id)
- if privates then
- local categories = table.swapped(fonts.loggers.category_to_placeholder)
- context.starttabulate { "|c|l|" }
+local legend = fonts.loggers.category_to_placeholder and
+
+ function(id)
+ local privates = fonts.helpers.getprivates(id)
+ if privates then
+ local categories = table.swapped(fonts.loggers.category_to_placeholder)
+ context.starttabulate { "|c|l|" }
+ context.HL()
+ context.NC() context.bold("symbol")
+ context.NC() context.bold("name")
+ context.NC() context.NR()
+ context.HL()
+ for k, v in table.sortedhash(privates) do
+ local tag = characters.categorytags[categories[k]]
+ if tag and tag ~= "" then
+ context.NC() context.dontleavehmode() context.char(v)
+ context.NC() context(k)
+ context.NC() context.NR()
+ end
+ end
+ context.HL()
+ context.stoptabulate()
+ end
+ end
+
+or
+
+ function(id)
+ local mapping = fonts.checkers.mapping
+ context.starttabulate { "|c|c|l|l|" }
context.HL()
- context.NC()
- context.bold("symbol")
- context.NC()
- context.bold("name")
- context.NC()
- context.NR()
+ context.NC() context.bold("symbol")
+ context.NC() context.bold("tag")
+ context.NC() context.bold("name")
+ context.NC() context.NR()
context.HL()
- for k, v in table.sortedhash(privates) do
- local tag = characters.categorytags[categories[k]]
- if tag and tag ~= "" then
- context.NC()
- context.dontleavehmode()
- context.char(v)
- context.NC()
- context(k)
- context.NC()
- context.NR()
- end
+ for k, v in table.sortedhash(mapping) do
+ local p = fonts.helpers.newprivateslot(v[1] .. "-" .. v[2])
+ fonts.checkers.placeholder(font.current(),p,k)
+ context.NC() context.char(p)
+ context.NC() context(k)
+ context.NC() context(v[1])
+ context.NC() context.NR()
end
context.HL()
context.stoptabulate()
end
-end
function moduledata.fonts.missing.showlegend(specification)
specification = interfaces.checkedspecification(specification)
@@ -52,30 +70,20 @@ local function missings()
for filename, list in table.sortedhash(collected) do
if #list > 0 then
context.starttabulate { "|l|l|" }
- context.NC()
- context.bold("filename")
- context.NC()
- context(file.basename(filename))
- context.NC()
- context.NR()
- context.NC()
- context.bold("missing")
- context.NC()
- context(#list)
- context.NC()
- context.NR()
+ context.NC() context.bold("filename")
+ context.NC() context(file.basename(filename))
+ context.NC() context.NR()
+ context.NC() context.bold("missing")
+ context.NC() context(#list)
+ context.NC() context.NR()
context.stoptabulate()
context.starttabulate { "|l|c|l|" }
for i=1,#list do
local u = list[i]
- context.NC()
- context("%U",u)
- context.NC()
- context.char(u)
- context.NC()
- context(characters.data[u].description)
- context.NC()
- context.NR()
+ context.NC() context("%U",u)
+ context.NC() context.char(u)
+ context.NC() context(characters.data[u].description)
+ context.NC() context.NR()
end
context.stoptabulate()
end
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.lua
index 868c22da114..d55b1198e7a 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.lua
@@ -83,16 +83,21 @@ local function showglyphshape(specification)
local characters = tfmdata.characters
local descriptions = tfmdata.descriptions
local parameters = tfmdata.parameters
+ local tfmfactor = parameters.scaledpoints/10
+-- inspect(tfmdata.parameters)
+-- inspect(tfmdata.properties)
local anchors = fonts.helpers.collectanchors(tfmdata)
- local function showonecharacter(unicode)
+ local function showonecharacter(unicode,krn,tight)
local c = characters [unicode]
local d = descriptions[unicode]
if c and d then
local factor = (parameters.size/parameters.units)*((7200/7227)/65536)
local llx, lly, urx, ury = unpack(d.boundingbox)
+ local height = ury
+ local depth = lly
llx, lly, urx, ury = llx*factor, lly*factor, urx*factor, ury*factor
- local width = (d.width or 0)*factor
+ local width = (d.width or 0)*factor
context.start()
context.dontleavehmode()
context.obeyMPboxdepth()
@@ -110,76 +115,52 @@ local function showglyphshape(specification)
context('draw boundingbox p withcolor .2white withpen pencircle scaled .065bp ;')
context("defaultscale := 0.05 ; ")
-- inefficient but non critical
- local slant = {
- function(v,dx,dy,txt,xsign,ysign,loc,labloc)
- local n = #v
- if n > 0 then
- local l = { }
- for i=1,n do
- local c = v[i]
- local h = c.height or 0
- local k = c.kern or 0
- l[i] = formatters["((%s,%s) shifted (%s,%s))"](xsign*k*factor,ysign*h*factor,dx,dy)
- end
- context("draw ((%s,%s) shifted (%s,%s))--%s dashed (evenly scaled 1/16) withcolor .5white;", xsign*v[1].kern*factor,lly,dx,dy,l[1])
- context("draw laddered (%..t) withcolor .5white ;",l) -- why not "--"
- context("draw ((%s,%s) shifted (%s,%s))--%s dashed (evenly scaled 1/16) withcolor .5white;", xsign*v[#v].kern*factor,ury,dx,dy,l[#l])
- for i=1,n do
- context("draw %s withcolor blue withpen pencircle scaled 2lw ;",l[i])
+ function slant(v,dx,dy,txt,xsign,ysign,loc,labloc,shift)
+ local n = #v
+ if n > 0 then
+ local l = { }
+ local t = { }
+ for i=1,n do
+ local c = v[i]
+ local h = c.height or height or 0
+ local d = depth or 0
+ local k = c.kern or 0
+ if i == 1 then
+ l[1] = formatters["((%s,%s) shifted (%s,%s))"](xsign*k*factor,d*factor,dx,dy)
+ t[1] = formatters['draw textext.%s("\\tttf(%s,%s)") scaled .025 shifted %s shifted (%i/4,%i/3);'](labloc,k,d,l[1],shift,shift);
end
+ l[i+1] = formatters["((%s,%s) shifted (%s,%s))"](xsign*k*factor,ysign*h*factor,dx,dy)
+ t[i+1] = formatters['draw textext.%s("\\tttf(%s,%s)") scaled .025 shifted %s shifted (%i/4,%i/3);'](labloc,k,h,l[i+1],shift,shift);
end
- end,
- function(v,dx,dy,txt,xsign,ysign,loc,labloc)
- local n = #v
- if n > 0 then
- local l = { }
- for i=1,n do
- local c = v[i]
- local h = c.height or 0
- local k = c.kern or 0
- l[i] = formatters["((%s,%s) shifted (%s,%s))"](xsign*k*factor,ysign*h*factor,dx,dy)
- end
- if loc == "top" then
- context('label.%s("\\type{%s}",%s shifted (0,-1bp)) ;',loc,txt,l[n])
- else
- context('label.%s("\\type{%s}",%s shifted (0,2bp)) ;',loc,txt,l[1])
- end
- for i=1,n do
- local c = v[i]
- local h = c.height or 0
- local k = c.kern or 0
- context('label.top("(%s,%s)",%s shifted (0,-2bp));',k,h,l[i])
- end
+ context("draw laddered (%--t) withcolor .5white ;",l)
+ for i=1,#l do
+ context("draw %s withcolor blue withpen pencircle scaled 2lw ;",l[i])
+ context(t[i])
end
- end,
- }
+ end
+ end
--
local math = d.math
if math then
local kerns = math.kerns
if kerns then
- for i=1,#slant do
- local s = slant[i]
- for k, v in next, kerns do
- if k == "topright" then
- -- s(v,width+italic,0,k,1,1,"top","ulft")
- s(v,width,0,k,1,1,"top","ulft")
- elseif k == "bottomright" then
- s(v,width,0,k,1,1,"bot","lrt")
- elseif k == "topleft" then
- s(v,0,0,k,-1,1,"top","ulft")
- elseif k == "bottomleft" then
- s(v,0,0,k,-1,1,"bot","lrt")
- end
+ for k, v in next, kerns do
+ if k == "topright" and (krn == "all" or krn == k) then
+ slant(v,width,0,k,1,1,"top","lrt",1)
+ elseif k == "bottomright" and (krn == "all" or krn == k) then
+ slant(v,width,0,k,1,1,"bot","ulft",-1)
+ elseif k == "topleft" and (krn == "all" or krn == k) then
+ slant(v,0,0,k,-1,1,"top","lrt",1)
+ elseif k == "bottomleft" and (krn == "all" or krn == k) then
+ slant(v,0,0,k,-1,1,"bot","ulft",-1)
end
end
end
- local accent = math.accent
+ local accent = math.topanchor or math.accent
if accent and accent ~= 0 then
local a = accent * factor
- context('draw (%s,%s+1bp)--(%s,%s-1bp) withcolor blue;',a,ury,a,ury)
- context('label.bot("\\type{%s}",(%s,%s+1bp));',"accent",a,ury)
- context('label.top("%s",(%s,%s-1bp));',math.accent,a,ury)
+ context('draw (%s,%s+1/4)--(%s,%s-1/4) withcolor blue;',a,ury,a,ury)
+ context('draw textext.top("\\tttf%s") scaled .025 shifted (%s,%s+2/4);',accent,a,ury)
end
end
--
@@ -215,7 +196,29 @@ local function showglyphshape(specification)
context('label.rt("%s",(%s-2bp,%s-1bp));',italic,width+i,ury)
end
context('draw origin withcolor red withpen pencircle scaled 2lw;')
- context("setbounds currentpicture to boundingbox currentpicture enlarged 1bp ;")
+ local kern = c.topright
+ if kern and kern ~= 0 then
+ local k = kern * factor / tfmfactor
+ context('draw (%s,%s) withcolor "orange" withpen pencircle scaled .2 ;',width+k,ury)
+ end
+ local kern = c.bottomright
+ if kern and kern ~= 0 then
+ local k = kern * factor / tfmfactor
+ context('draw (%s,%s) withcolor "orange" withpen pencircle scaled .2 ;',width+k,lly)
+ end
+ local kern = c.topleft
+ if kern and kern ~= 0 then
+ local k = kern * factor / tfmfactor
+ context('draw (%s,%s) withcolor "orange" withpen pencircle scaled .2 ;',-k,ury)
+ end
+ local kern = c.bottomleft
+ if kern and kern ~= 0 then
+ local k = kern * factor / tfmfactor
+ context('draw (%s,%s) withcolor "orange" withpen pencircle scaled .2 ;',-k,lly)
+ end
+ if not tight then
+ context("setbounds currentpicture to boundingbox currentpicture enlarged 1bp ;")
+ end
context("currentpicture := currentpicture scaled 8 ;")
context.stopMPcode()
context.stop()
@@ -226,16 +229,28 @@ local function showglyphshape(specification)
fonts.helpers.nametoslot(specification.character)
if unicode then
- showonecharacter(unicode)
+ showonecharacter(unicode,"all",true)
else
context.modulefontsstartshowglyphshapes()
for unicode, description in fonts.iterators.descriptions(tfmdata) do
if unicode >= 0x110000 then
break
end
+ local kerns = specification.kerns
+ if kerns then
+ local k = description and description.math and description.math.kerns
+ if k then
+ if not (kerns == "all" or k[kerns]) then
+ goto DONE
+ end
+ else
+ goto DONE
+ end
+ end
context.modulefontsstartshowglyphshape(unicode,description.name or "",description.index or 0)
- showonecharacter(unicode)
+ showonecharacter(unicode,kerns,false)
context.modulefontsstopshowglyphshape()
+ ::DONE::
end
context.modulefontsstopshowglyphshapes()
end
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.mkiv
index 7dd39c07d0c..97fcbfa6c63 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-shapes.mkiv
@@ -30,7 +30,7 @@
\startsetups module:showallglyphshapes:start
\unexpanded\def\modulefontsstartshowglyphshape##1##2##3{
- \startTEXpage[\c!offset=\exheight] % ,\c!frame=\v!on]
+ \startTEXpage[\c!offset=\exheight]% ,\c!frame=\v!on]
\edef\lastshownglyphshapefieldunicode{##1}%
\edef\lastshownglyphshapefieldname {##2}%
\edef\lastshownglyphshapefieldindex {##3}%
@@ -106,8 +106,11 @@
% \startTEXpage \ShowGlyphShape{simplenaskhi}{100bp}{0xF0299} \stopTEXpage
% \startTEXpage \ShowGlyphShape{simplenaskhi}{100bp}{NameMe.1190} \stopTEXpage
- \startTEXpage[offset=0pt]\ShowGlyphShape{file:stixtwomath-regular.otf}{20bp}{0x1D44A}\stopTEXpage
- \startTEXpage[offset=0pt]\ShowGlyphShape{file:stixtwomath-regular.otf}{20bp}{0x1D44C}\stopTEXpage
+% \startTEXpage[offset=0pt]\ShowGlyphShape{file:stixtwomath-regular.otf}{20bp}{0x1D44A}\stopTEXpage
+% \startTEXpage[offset=0pt]\ShowGlyphShape{file:stixtwomath-regular.otf}{20bp}{0x1D44C}\stopTEXpage
+
+% \definefontfeature[tg][goodies=pagella-math]
+% \startTEXpage[offset=0pt]\ShowGlyphShape{file:texgyrepagella-math.otf*tg}{20bp}{0x002F}\stopTEXpage
% \startTEXpage[offset=0pt]\ShowGlyphShape{name:cambria-math}{20bp}{0x00066}\stopTEXpage
% \startTEXpage[offset=0pt]\ShowGlyphShape{name:cambria-math}{20bp}{0x1D453}\stopTEXpage
@@ -126,7 +129,12 @@
% \startTEXpage[offset=0pt]\ShowGlyphShape{file:husayninotebold.ttf}{50bp}{0x006DD}\stopTEXpage
% \startTEXpage[offset=0pt]\ShowGlyphShape{file:arabtype.ttf}{50bp}{0x0FCA1}\stopTEXpage
-% \showallglyphshapes[name=name:cambria-math,size=100bp]
+\showallglyphshapes[name=name:cambria-math,size=100bp,kerns=bottomright]
+% \startTEXpage[offset=0pt]\ShowGlyphShape{name:cambria-math}{100bp}{0x1D6FD}\stopTEXpage
+
+% \showallglyphshapes[name=file:lucidabrightmathot,size=100bp,kerns=all]
+% \showallglyphshapes[name=file:garamondmath,size=100bp,kerns=bottomright]
+
% \showallglyphshapes[name=name:arabtype,size=100bp]
% \showallglyphshapes[name=file:husayninotebold.ttf,size=100bp]
% \showallglyphshapes[name=name:dejavuserif,size=100bp]
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.lua
index 8673ef398cc..65725594bcc 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.lua
@@ -9,6 +9,8 @@ if not modules then modules = { } end modules ['s-fonts-tables'] = {
moduledata.fonts = moduledata.fonts or { }
moduledata.fonts.tables = moduledata.fonts.tables or { }
+require("font-cft")
+
local rawget, type = rawget, type
local setmetatableindex = table.setmetatableindex
@@ -676,18 +678,28 @@ end
local function collectligatures(steps)
+ -- Mostly the same as s-fonts-features so we should make a helper.
+
local series = { }
local stack = { }
local max = 0
+ local function add(v)
+ local n = #stack
+ if n > max then
+ max = n
+ end
+ series[#series+1] = { v, unpack(stack) }
+ end
+
local function make(tree)
for k, v in sortedhash(tree) do
if k == "ligature" then
- local n = #stack
- if n > max then
- max = n
- end
- series[#series+1] = { v, unpack(stack) }
+ add(v)
+ elseif tonumber(v) then
+ insert(stack,k)
+ add(v)
+ remove(stack)
else
insert(stack,k)
make(v)
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.mkiv
index f1340c3eac4..aeb526f38d6 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-tables.mkiv
@@ -52,5 +52,6 @@
[cambria]
\starttext
- \showfontproperties[name=cambria]
+% \showfontproperties[name=cambria]
+ \showfontproperties[name=lbmi]
\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-variable.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-variable.lua
index 43f5f0d3d04..e77903665b7 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-variable.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-variable.lua
@@ -55,9 +55,9 @@ function moduledata.fonts.variable.showvariations(specification)
-- return
-- end
-if not fontdata.shared.rawdata.metadata.fullname then
- fontdata.shared.rawdata.metadata.fullname = fontdata.shared.rawdata.metadata.fontname
-end
+ if not fontdata.shared.rawdata.metadata.fullname then
+ fontdata.shared.rawdata.metadata.fullname = fontdata.shared.rawdata.metadata.fontname
+ end
context.starttitle { title = fontdata.shared.rawdata.metadata.fullname }
@@ -111,7 +111,7 @@ end
local designaxis = variabledata.designaxis
context.startsubject { title = "design axis" }
- if designaxis then
+ if designaxis and #designaxis > 0 then
context.starttabulate { "||||c|c|c|c|c|" }
NC() bold("tag")
NC() bold("name")
@@ -159,7 +159,7 @@ end
local list = { }
context.startsubject { title = "axis" }
- if axis then
+ if axis and #axis > 0 then
context.starttabulate { "|||c|c|c|" }
NC() bold("tag")
NC() bold("name")
@@ -232,14 +232,16 @@ end
end
context.stopsubject()
- local sample = specification.sample
+ local sample = specification.sample
+ local features = specification.features or "default"
for i=1,#collected do
local instance = collected[i]
context.startsubject { title = instance }
+ local fontspecification = "name:" .. instance .. "*" .. features
context.start()
- context.definedfont { "name:" .. instance .. "*default" }
+ context.definedfont { fontspecification }
context.start()
if show_glyphs then
context.showglyphs()
@@ -247,6 +249,7 @@ end
if show_kerns then
context.showfontkerns()
end
+-- print("using",fontspecification)
if sample and sample ~= "" then
context(sample)
else
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-variable.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-variable.mkiv
index 6e4b1773f0f..d061179eb90 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-variable.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-fonts-variable.mkiv
@@ -53,26 +53,26 @@
\starttext
- \startbuffer[zycon]
- \char008986\relax\quad
- \char009728\relax\quad
- \char010031\relax\quad
- \char010143\relax\quad
- \char011044\relax\quad
- \char127773\relax\quad
- \char127989\relax\quad
- \char128008\relax\quad
- \char128021\relax\quad
- \char128034\relax\quad
- \char128161\relax\quad
- \char128274\relax\quad
- \char128347\relax\quad
- \char128400\relax\quad
- \char128692\relax\quad
- \char129417\relax\quad
- \char129422\relax\quad
- \char983040\relax\par
- \stopbuffer
+% \startbuffer[zycon]
+% \char008986\relax\quad
+% \char009728\relax\quad
+% \char010031\relax\quad
+% \char010143\relax\quad
+% \char011044\relax\quad
+% \char127773\relax\quad
+% \char127989\relax\quad
+% \char128008\relax\quad
+% \char128021\relax\quad
+% \char128034\relax\quad
+% \char128161\relax\quad
+% \char128274\relax\quad
+% \char128347\relax\quad
+% \char128400\relax\quad
+% \char128692\relax\quad
+% \char129417\relax\quad
+% \char129422\relax\quad
+% \char983040\relax\par
+% \stopbuffer
% \showfontvariations
% [font=file:adobevfprototype.otf]
@@ -112,8 +112,12 @@
% \showfontvariations
% [font=file:AmstelvarAlpha-VF.ttf]
- \showfontvariations
- [font=file:bahnschrift.ttf]
+% \showfontvariations
+% [font=file:bahnschrift.ttf]
+
+% \showfontvariations
+% [font=file:junicodetwobetavf-roman.ttf]
+% [font=file:junicodetwobeta-regular-vf.otf]
% \showfontvariations
% [font=file:sitka.ttc]
@@ -128,4 +132,8 @@
% \showfontvariations[font=file:goldmansanscdvf_wght.ttf]
% \stoptext
+\showfontvariations
+ [font=file:nupuram-vf.otf,features=malayalam-two,sample=test നൂപുരം]
+% [font=file:nupuram-vf.ttf,features=malayalam-two,sample=test നൂപുരം]
+
\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-languages-hyphenation.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-languages-hyphenation.lua
index 2ba265b5354..6cb9fc8a25f 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-languages-hyphenation.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-languages-hyphenation.lua
@@ -9,47 +9,47 @@ if not modules then modules = { } end modules ['s-languages-hyphenation'] = {
moduledata.languages = moduledata.languages or { }
moduledata.languages.hyphenation = moduledata.languages.hyphenation or { }
-local a_colormodel = attributes.private('colormodel')
+local a_colormodel = attributes.private('colormodel')
-local tex = tex
-local context = context
+local tex = tex
+local context = context
-local nodecodes = nodes.nodecodes
-local nuts = nodes.nuts
-local nodepool = nuts.pool
+local nodecodes = nodes.nodecodes
+local nuts = nodes.nuts
+local nodepool = nuts.pool
-local disc_code = nodecodes.disc
-local glyph_code = nodecodes.glyph
+local disc_code = nodecodes.disc
+local glyph_code = nodecodes.glyph
-local emwidths = fonts.hashes.emwidths
-local exheights = fonts.hashes.exheights
+local emwidths = fonts.hashes.emwidths
+local exheights = fonts.hashes.exheights
-local newkern = nodepool.kern
-local newrule = nodepool.rule
-local newglue = nodepool.glue
+local newkern = nodepool.kern
+local newrule = nodepool.rule
+local newglue = nodepool.glue
-local insert_node_after = nuts.insert_after
+local insertnodeafter = nuts.insertafter
-local nextglyph = nuts.traversers.glyph
+local nextglyph = nuts.traversers.glyph
-local tonut = nodes.tonut
-local tonode = nodes.tonode
-local getid = nuts.getid
-local getnext = nuts.getnext
-local getdisc = nuts.getdisc
-local getattr = nuts.getattr
-local getfont = nuts.getfont
-local getfield = nuts.getfield
-local getlanguage = nuts.getlanguage
-local setlanguage = nuts.setlanguage
-local setlink = nuts.setlink
-local setdisc = nuts.setdisc
-local setfield = nuts.setfield
-local free_node = nuts.free
+local tonut = nodes.tonut
+local tonode = nodes.tonode
+local getid = nuts.getid
+local getnext = nuts.getnext
+local getdisc = nuts.getdisc
+local getattr = nuts.getattr
+local getfont = nuts.getfont
+local getfield = nuts.getfield
+local getlanguage = nuts.getlanguage
+local setlanguage = nuts.setlanguage
+local setlink = nuts.setlink
+local setdisc = nuts.setdisc
+local setfield = nuts.setfield
+local free_node = nuts.free
-local tracers = nodes.tracers
-local colortracers = tracers and tracers.colors
-local setnodecolor = colortracers.set
+local tracers = nodes.tracers
+local colortracers = tracers and tracers.colors
+local setnodecolor = colortracers.set
-- maybe this will become code code
@@ -122,10 +122,10 @@ local function mark(head,marked,w,h,d,how)
local ex = exheights[font]
local width = w*em
local rule = newrule(width,h*ex,d*ex)
- head, current = insert_node_after(head,current,newkern(-width/2))
- head, current = insert_node_after(head,current,rule)
- head, current = insert_node_after(head,current,newkern(-width/2))
- head, current = insert_node_after(head,current,newglue(0))
+ head, current = insertnodeafter(head,current,newkern(-width/2))
+ head, current = insertnodeafter(head,current,rule)
+ head, current = insertnodeafter(head,current,newkern(-width/2))
+ head, current = insertnodeafter(head,current,newglue(0))
setnodecolor(rule,how) -- ,getattr(current,a_colormodel))
end
end
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-math-characters.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-math-characters.lua
index 1888dabb4d3..a967f7934de 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-math-characters.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-math-characters.lua
@@ -15,6 +15,8 @@ local concat = table.concat
local lower = string.lower
local utfchar = utf.char
local round = math.round
+local setmetatableindex = table.setmetatableindex
+local sortedhash = table.sortedhash
local context = context
@@ -110,6 +112,40 @@ function moduledata.math.characters.showlist(specification)
end
end
else
+
+ local function collectalllookups(tfmdata,script,language)
+ local all = setmetatableindex(function(t,k) local v = setmetatableindex("table") t[k] = v return v end)
+ local shared = tfmdata.shared
+ local rawdata = shared and shared.rawdata
+ if rawdata then
+ local features = rawdata.resources.features
+ if features.gsub then
+ for kind, feature in next, features.gsub do
+ local validlookups, lookuplist = fonts.handlers.otf.collectlookups(rawdata,kind,script,language)
+ if validlookups then
+ for i=1,#lookuplist do
+ local lookup = lookuplist[i]
+ local steps = lookup.steps
+ for i=1,lookup.nofsteps do
+ local coverage = steps[i].coverage
+ if coverage then
+ for k, v in next, coverage do
+ all[k][lookup.type][kind] = v
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ return all
+ end
+
+ local alllookups = collectalllookups(tfmdata,"math","dflt")
+
+ local luametatex = LUATEXENGINE == "luametatex"
+
context.showmathcharactersstart()
for _, unicode in next, sorted do
if not limited or unicode < upperlimit then
@@ -123,18 +159,35 @@ function moduledata.math.characters.showlist(specification)
-- skip
else
local next_sizes = char.next
- local v_variants = char.vert_variants
- local h_variants = char.horiz_variants
- local slookups = desc and desc.slookups
- local mlookups = desc and desc.mlookups
+ local vparts = char.vparts or char.vert_variants
+ local hparts = char.hparts or char.horiz_variants
local mathclass = info.mathclass
local mathspec = info.mathspec
local mathsymbol = info.mathsymbol
local description = info.description or no_description
- context.showmathcharactersstartentry()
- context.showmathcharactersreference(f_unicode(unicode))
- context.showmathcharactersentryhexdectit(f_unicode(code),code,lower(description))
- context.showmathcharactersentrywdhtdpic(round(char.width or 0),round(char.height or 0),round(char.depth or 0),round(char.italic or 0))
+ context.showmathcharactersstartentry(
+ )
+ context.showmathcharactersreference(
+ f_unicode(unicode)
+ )
+ context.showmathcharactersentryhexdectit(
+ f_unicode(code),
+ code,
+ lower(description)
+ )
+ if luametatex then
+ context.showmathcharactersentrywdhtdpicta(
+ code
+ )
+ else
+ context.showmathcharactersentrywdhtdpicta(
+ round(char.width or 0),
+ round(char.height or 0),
+ round(char.depth or 0),
+ round(char.italic or 0),
+ round(char.topanchor or char.topaccent or 0)
+ )
+ end
if virtual and commands then
local t = { }
for i=1,#commands do
@@ -176,66 +229,54 @@ function moduledata.math.characters.showlist(specification)
done[next_sizes] = true
context.showmathcharactersnextentry(n,f_unicode(next_sizes),next_sizes)
next_sizes = characters[next_sizes]
- v_variants = next_sizes.vert_variants or v_variants
- h_variants = next_sizes.horiz_variants or h_variants
+ vparts = next_sizes.vparts or next_sizes.vert_variants or vparts
+ hparts = next_sizes.hparts or next_sizes.horiz_variants or hparts
if next_sizes then
next_sizes = next_sizes.next
end
end
end
context.showmathcharactersstopnext()
- if h_variants or v_variants then
+ if vparts or hparts then
context.showmathcharactersbetweennextandvariants()
end
end
- if h_variants then
- context.showmathcharactersstarthvariants()
- for i=1,#h_variants do -- we might go top-down in the original
- local vi = h_variants[i]
- context.showmathcharactershvariantsentry(i,f_unicode(vi.glyph),vi.glyph)
+ if vparts then
+ context.showmathcharactersstartvparts()
+ for i=1,#vparts do -- we might go top-down in the original
+ local vi = vparts[i]
+ context.showmathcharactersvpartsentry(i,f_unicode(vi.glyph),vi.glyph)
end
- context.showmathcharactersstophvariants()
- elseif v_variants then
- context.showmathcharactersstartvvariants()
- for i=1,#v_variants do
- local vi = v_variants[#v_variants-i+1]
- context.showmathcharactersvvariantsentry(i,f_unicode(vi.glyph),vi.glyph)
+ context.showmathcharactersstopvparts()
+ end
+ if hparts then
+ context.showmathcharactersstarthparts()
+ for i=1,#hparts do
+ local hi = hparts[#hparts-i+1]
+ context.showmathcharactershpartsentry(i,f_unicode(hi.glyph),hi.glyph)
end
- context.showmathcharactersstopvvariants()
+ context.showmathcharactersstophparts()
end
- if slookups or mlookups then
- local variants = { }
- if slookups then
- for lookupname, lookupdata in next, slookups do
- local lookuptype = lookuptypes[lookupname]
- if lookuptype == "substitution" then
- variants[lookupdata] = "sub"
- elseif lookuptype == "alternate" then
- for i=1,#lookupdata do
- variants[lookupdata[i]] = "alt"
- end
- end
+ local lookups = alllookups[unicode]
+ if lookups then
+ local variants = { }
+ local singles = lookups.gsub_single
+ local alternates = lookups.gsub_alternate
+ if singles then
+ for lookupname, code in next, singles do
+ variants[code] = lookupname
end
end
- if mlookups then
- for lookupname, lookuplist in next, mlookups do
- local lookuptype = lookuptypes[lookupname]
- for i=1,#lookuplist do
- local lookupdata = lookuplist[i]
- local lookuptype = lookuptypes[lookupname]
- if lookuptype == "substitution" then
- variants[lookupdata] = "sub"
- elseif lookuptype == "alternate" then
- for i=1,#lookupdata do
- variants[lookupdata[i]] = "alt"
- end
- end
+ if singles then
+ for lookupname, codes in next, alternates do
+ for i=1,#codes do
+ variants[codes[i]] = lookupname .. " : " .. i
end
end
end
context.showmathcharactersstartlookupvariants()
local i = 0
- for variant, lookuptype in table.sortedpairs(variants) do
+ for variant, lookuptype in sortedhash(variants) do
i = i + 1
context.showmathcharacterslookupvariant(i,f_unicode(variant),variant,lookuptype)
end
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-math-characters.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-math-characters.mkiv
index e5e0d084feb..c9011fbe19b 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-math-characters.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-math-characters.mkiv
@@ -20,33 +20,33 @@
\startsetups s-math-characters:reset
- \let\showmathcharactersstart \relax
- \let\showmathcharactersstop \relax
- \let\showmathcharactersreference \gobbleoneargument
- \let\showmathcharactersstartentry \relax
- \let\showmathcharactersstopentry \relax
- \let\showmathcharactersentryhexdectit \gobblethreearguments
- \let\showmathcharactersentrywdhtdpic \gobblefourarguments
- \let\showmathcharactersentryresource \gobbleoneargument
- \let\showmathcharactersstartnext \relax
- \let\showmathcharactersnextentry \gobblethreearguments
- \let\showmathcharactersnextcycle \gobbleonearguments
- \let\showmathcharactersstopnext \relax
- \let\showmathcharactersstarthvariants \relax
- \let\showmathcharactershvariantsentry \gobblethreearguments
- \let\showmathcharactersstophvariants \relax
- \let\showmathcharactersstartvvariants \showmathcharactersstarthvariants
- \let\showmathcharactersvvariantsentry \showmathcharactershvariantsentry
- \let\showmathcharactersstopvvariants \showmathcharactersstophvariants
- \let\showmathcharactersbetweennextandvariants\relax
- \let\showmathcharactersstartentryclassspec \relax
- \let\showmathcharactersstopentryclassspec \relax
- \let\showmathcharactersentryclassname \gobbletwoarguments
- \let\showmathcharactersentrysymbol \gobbletwoarguments
- \let\showmathcharactersstartlookupvariants \relax
- \let\showmathcharacterslookupvariant \gobblefourarguments
- \let\showmathcharactersstoplookupvariants \relax
- \let\showmathcharacterssetrange \gobblethreearguments
+ \let\showmathcharactersstart \relax
+ \let\showmathcharactersstop \relax
+ \let\showmathcharactersreference \gobbleoneargument
+ \let\showmathcharactersstartentry \relax
+ \let\showmathcharactersstopentry \relax
+ \let\showmathcharactersentryhexdectit \gobblethreearguments
+ \let\showmathcharactersentrywdhtdpic \gobblefourarguments
+ \let\showmathcharactersentryresource \gobbleoneargument
+ \let\showmathcharactersstartnext \relax
+ \let\showmathcharactersnextentry \gobblethreearguments
+ \let\showmathcharactersnextcycle \gobbleonearguments
+ \let\showmathcharactersstopnext \relax
+ \let\showmathcharactersstarthparts \relax
+ \let\showmathcharactershpartsentry \gobblethreearguments
+ \let\showmathcharactersstophparts \relax
+ \let\showmathcharactersstartvparts \relax
+ \let\showmathcharactersvpartsentry \gobblethreearguments
+ \let\showmathcharactersstopvparts \relax
+ \let\showmathcharactersbetweennextandvparts\relax
+ \let\showmathcharactersstartentryclassspec \relax
+ \let\showmathcharactersstopentryclassspec \relax
+ \let\showmathcharactersentryclassname \gobbletwoarguments
+ \let\showmathcharactersentrysymbol \gobbletwoarguments
+ \let\showmathcharactersstartlookupvariants \relax
+ \let\showmathcharacterslookupvariant \gobblefourarguments
+ \let\showmathcharactersstoplookupvariants \relax
+ \let\showmathcharacterssetrange \gobblethreearguments
\stopsetups
@@ -70,7 +70,7 @@
{virtual:\space##1\par}
\def\showmathcharactersstartnext
- {\par\begingroup\hangindent\emwidth\hangafter-\plushundred\hskip-\emwidth
+ {\par\begingroup\hangindent\emwidth\hangafter-\plushundred\hskip-\emwidth\relax
next:\space}
\def\showmathcharactersnextentry##1##2##3%
@@ -82,21 +82,25 @@
\def\showmathcharactersstopnext
{\par\endgroup}
- \def\showmathcharactersstarthvariants
- {\par\begingroup\hangindent\emwidth\hangafter-\plushundred\hskip-\emwidth
- variants:\space}
+ \def\showmathcharactersstartparts
+ {\par\begingroup\hangindent\emwidth\hangafter-\plushundred\hskip-\emwidth\relax
+ parts:\space}
- \def\showmathcharactershvariantsentry##1##2##3%
+ \def\showmathcharacterspartsentry##1##2##3%
{\ifnum##1>\plusone \space=>\space\fi##2~\ruledhbox{\char##3}}
- \def\showmathcharactersstophvariants
+ \def\showmathcharactersstopparts
{\par\endgroup}
- \let\showmathcharactersstartvvariants\showmathcharactersstarthvariants
- \let\showmathcharactersvvariantsentry\showmathcharactershvariantsentry
- \let\showmathcharactersstopvvariants \showmathcharactersstophvariants
+ \let\showmathcharactersstartvparts\showmathcharactersstartparts
+ \let\showmathcharactersvpartsentry\showmathcharacterspartsentry
+ \let\showmathcharactersstopvparts \showmathcharactersstopparts
- \def\showmathcharactersbetweennextandvariants
+ \let\showmathcharactersstarthparts\showmathcharactersstartparts
+ \let\showmathcharactershpartsentry\showmathcharacterspartsentry
+ \let\showmathcharactersstophparts \showmathcharactersstopparts
+
+ \def\showmathcharactersbetweennextandparts
{}% \space=>\space}
\def\showmathcharactersentryclassname##1##2%
@@ -106,7 +110,7 @@
{mathsymbol:\space##1~\ruledhbox{\char##2}\par}
\def\showmathcharactersstartlookupvariants
- {\par\begingroup\hangindent\emwidth\hangafter-\plushundred\hskip-\emwidth
+ {\par\begingroup\hangindent\emwidth\hangafter-\plushundred\hskip-\emwidth\relax
lookupvariants:\space}
\def\showmathcharacterslookupvariant##1##2##3##4%
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-math-extensibles.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-math-extensibles.mkiv
index cc6fd1b00de..b3fcf0e1f67 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-math-extensibles.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-math-extensibles.mkiv
@@ -143,3 +143,71 @@
}
\stoptext
+
+% This could also be some tracer
+
+\definefontfeature[mathextra][goodies=] % or use the raw unpatched font
+
+
+\def\Test#1%
+ {\left(
+ \scratchdimen\Umathaxis\displaystyle
+ \blackrule
+ [height=\dimexpr#1ex+\scratchdimen\relax,
+ depth=\dimexpr#1ex-\scratchdimen\relax]
+ \right)}
+
+
+\startbuffer[p]
+% \Umathconnectoroverlapmin\allmathstyles \zeropoint
+% \Umathconnectoroverlapmin\allmathstyles 2pt % \zeropoint
+ \Umathdelimitershortfall \allmathstyles \zeropoint
+ \showboxes
+ \showglyphs
+ \Test{4.0}
+ \Test{4.5}
+ \Test{5.0}
+ \Test{8.0}
+ \quad
+ \dorecurse{\mathvariantcount `(} {
+ \char\mathvariantcode `( #1
+ }
+\stopbuffer
+
+\startbuffer[p]
+ \showboxes
+ \showglyphs
+ \overparent{\blackrule[color=darkgray,width=1em,height=2ex]}\quad
+ \overparent{\blackrule[color=darkgray,width=2em,height=2ex]}\quad
+ \overparent{\blackrule[color=darkgray,width=4em,height=2ex]}\quad
+ \overparent{\blackrule[color=darkgray,width=8em,height=2ex]}
+\stopbuffer
+
+\startbuffer
+ \hpack\bgroup
+ $
+ \getbuffer[p]
+ $
+ \egroup
+\stopbuffer
+
+\def\TestFont#1%
+ {\dontleavehmode
+ \begingroup
+ \hbox to 5.5em{\hss\type{#1}:}\quad
+ \switchtobodyfont[#1]\getbuffer
+ \endgroup
+ \par}
+
+\starttext
+ \startTEXpage[offset=1dk]
+% \TestFont{modern}
+% \TestFont{pagella}
+% \TestFont{termes}
+% \TestFont{bonum}
+ \TestFont{lucida}
+% \TestFont{cambria}
+ \TestFont{ebgaramond}
+% \TestFont{xits}
+ \stopTEXpage
+\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-math-ligatures.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-math-ligatures.lua
index 5c888c08829..452ba48c1ce 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-math-ligatures.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-math-ligatures.lua
@@ -59,7 +59,7 @@ function moduledata.math.ligatures.showlist(specification)
local vs = v.specials
if vs and #vs > 2 then
local kind = vs[1]
- if (v.mathclass or v.mathspec) and (kind == "char" or kind == "compat") then
+ if (v.mathclass or v.mathspec) and (kind == "char" or kind == "with" or kind == "compat") then
setlist(unicode,vs,2,v,"sp")
end
end
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-math-parameters.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-math-parameters.lua
index 8e8c15a2d37..73d5f420804 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-math-parameters.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-math-parameters.lua
@@ -34,6 +34,28 @@ tables.parameters = {
"spaceafterscript", "connectoroverlapmin",
}
+if CONTEXTLMTXMODE > 0 then
+
+ tables.styleaxis = table.imerged ( tables.styleaxis, {
+ "frac", "rad",
+ } )
+
+ tables.parameters = table.imerged ( tables.parameters, {
+ "extrasupshift", "extrasubshift", "extrasuppreshift", "extrasubpreshift",
+ "extrasupspace", "extrasubspace", "extrasupprespace", "extrasubprespace",
+ -- "overlinevariant", "underlinevariant",
+ -- "overdelimitervariant", "underdelimitervariant",
+ -- "delimiterovervariant", "delimiterundervariant",
+ -- "hextensiblevariant", "vextensiblevariant",
+ -- "fractionvariant", "radicalvariant", "degreevariant",
+ -- "accentvariant", "topaccentvariant", "botaccentvariant", "overlayaccentvariant",
+ -- "numeratorvariant", "denominatorvariant",
+ -- "superscriptvariant", "subscriptvariant",
+ -- "stackvariant",
+ } )
+
+end
+
tables.styles = {
"display",
"text",
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-math-repertoire.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-math-repertoire.mkiv
index 90d0b09d39a..56d56bb6ace 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-math-repertoire.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-math-repertoire.mkiv
@@ -11,15 +11,19 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\enabletrackers[pages.timing]
+
+\enableexperiments[fonts.compact]
+
\usemodule[s][math-characters]
-% context --jit --global --bodyfont=lucidaot --result=math-repertoire-lucidaot s-math-repertoire.mkiv
-% context --jit --global --bodyfont=cambria --result=math-repertoire-cambria s-math-repertoire.mkiv
-% context --jit --global --bodyfont=xits --result=math-repertoire-xits s-math-repertoire.mkiv
-% context --jit --global --bodyfont=modern --result=math-repertoire-modern s-math-repertoire.mkiv
-% context --jit --global --bodyfont=pagella --result=math-repertoire-pagella s-math-repertoire.mkiv
-% context --jit --global --bodyfont=termes --result=math-repertoire-termes s-math-repertoire.mkiv
-% context --jit --global --bodyfont=bonum --result=math-repertoire-bonum s-math-repertoire.mkiv
+% context --global --bodyfont=lucidaot --result=math-repertoire-lucidaot s-math-repertoire.mkiv
+% context --global --bodyfont=cambria --result=math-repertoire-cambria s-math-repertoire.mkiv
+% context --global --bodyfont=xits --result=math-repertoire-xits s-math-repertoire.mkiv
+% context --global --bodyfont=modern --result=math-repertoire-modern s-math-repertoire.mkiv
+% context --global --bodyfont=pagella --result=math-repertoire-pagella s-math-repertoire.mkiv
+% context --global --bodyfont=termes --result=math-repertoire-termes s-math-repertoire.mkiv
+% context --global --bodyfont=bonum --result=math-repertoire-bonum s-math-repertoire.mkiv
\startmodule[math-repertoire]
@@ -30,6 +34,8 @@
\definecolor[backgroundcolory][g=.6]
\definecolor[baselinecolor] [a=1,t=.5,s=.6]
\definecolor[charactercolor] [b=.6]
+\definecolor[italiccolor] [r=.6]
+\definecolor[anchorcolor] [s=1]
\definecolor[pagecolor] [s=.1]
\definecolor[nonecolor] [s=.5]
\definecolor[textcolor] [s=.9]
@@ -221,24 +227,68 @@
{\iffontchar\font#2\relax
\scale
[sx=#1,sy=#1]
- {\dontleavehmode
- \begingroup
- \setbox\scratchbox\hbox{\charactercolor\char#2}%
- \scratchdimen\wd\scratchbox
- \ifdim\scratchdimen>\zeropoint
+ {\dontleavehmode\hbox\bgroup
+ \setbox\scratchbox\hbox\bgroup
+ \charactercolor
+ \char#2\relax
+ \egroup
+ \scratchwidth \wd\scratchbox
+ \scratchheight\ht\scratchbox
+ \scratchdepth \dp\scratchbox
+ \scratchitalic\ifdefined\glyphscale\glyphxscaled\fontcharic\font#2\relax\else\zeropoint\fi
+ \setbox\scratchbox\hbox\bgroup
+ \ifdim\scratchitalic=\zeropoint\else
+ \hskip\scratchwidth
+ \ifdim\scratchitalic<\zeropoint
+ \hskip\scratchitalic
+ \scratchitalic-\scratchitalic
+ \fi
+ \italiccolor
+ \vrule
+ width \scratchitalic
+ height \scratchheight
+ depth \scratchdepth
+ \relax
+ \hskip-\dimexpr\scratchwidth+\scratchitalic\relax
+ \fi
+ \unhbox\scratchbox
+ \egroup
+ \scratchtotal\dimexpr\scratchwidth+\scratchitalic\relax
+ \wd\scratchbox\scratchtotal
+ %
+ \ifdim\scratchtotal>\zeropoint
\backgroundline[backgroundcolor]{\box\scratchbox}%
- \else\ifdim\scratchdimen<\zeropoint
- \scratchdimen-\scratchdimen
- \setbox\scratchbox\hbox to \scratchdimen{\hss\charactercolor\char#2}%
+ \else\ifdim\scratchtotal<\zeropoint
+ % really negative width?
+ \scratchtotal-\scratchtotal
+ \setbox\scratchbox\hbox to \scratchtotal{\hss\charactercolor\char#2}%
\backgroundline[backgroundcolorx]{\box\scratchbox}%
\else
- \setbox\scratchbox\hbox to 1em{\hss\charactercolor\char#2}%
- \scratchdimen\wd\scratchbox
+ \setbox\scratchbox\hbox to \emwidth{\hss\charactercolor\char#2}%
+ \scratchtotal\wd\scratchbox
\backgroundline[backgroundcolory]{\box\scratchbox}%
\fi\fi
- \hskip-\scratchdimen
- \baselinecolor\vrule width \scratchdimen height .05ex depth .05ex
- \endgroup}%
+ \hskip-\scratchtotal
+ \baselinecolor\vrule width \scratchtotal height .05\exheight depth .05\exheight
+ %
+ \ifdefined\glyphscale
+ \scratchdimen\glyphyscaled\fontcharta\font#2\relax
+ \ifdim\scratchdimen=\zeropoint\else
+ \hskip-\scratchtotal
+ \hbox to \scratchwidth yoffset \scratchheight \bgroup
+ \hskip\scratchdimen
+ \anchorcolor
+ \vrule
+ width .10\exheight
+ height .05\exheight
+ depth .05\exheight
+ \relax
+ \hss
+ \egroup
+ \hskip\scratchitalic
+ \fi
+ \fi
+ \egroup}%
\fi}
\unexpanded\def\showmathcharactersmth#1#2%
@@ -265,7 +315,8 @@
\unexpanded\def\showmathcharacterssetbodyfonts#1%
{\edef\showmathcharactersbodyfonts{#1}%
- \def\doshowmathcharacterssetbodyfonts##1{\setupbodyfont[##1,12pt]}% \usebodyfont[##1,12pt]%
+% \def\doshowmathcharacterssetbodyfonts##1{\setupbodyfont[##1,12pt]}% \usebodyfont[##1,12pt]%
+ \def\doshowmathcharacterssetbodyfonts##1{\usebodyfont[##1,12pt]}%
\processcommacommand[\showmathcharactersbodyfonts]\doshowmathcharacterssetbodyfonts}
\unexpanded\def\showmathcharactersbodyfontschars#1%
@@ -278,7 +329,8 @@
\startstandardmakeup % we use baselinecolor so that we have a transparency on page 1
\setupalign[middle]
\vfil
- \dontleavehmode \scale[height=.3\textheight]{\strut\color[textcolor]{\fontclass}}
+% \dontleavehmode \scale[height=.3\textheight]{\strut\color[textcolor]{\fontclass}}
+ \dontleavehmode \scale[width=.75\textwidth]{\strut\color[textcolor]{\fontclass}}
\vfil
\dontleavehmode \scale[height=.1\textheight]{\strut\color[baselinecolor]{\currentdate}}
\vfil
@@ -319,17 +371,50 @@
[preset=middlebottom,voffset=5mm]
{\showmathcharactersbodyfontschars{#2}}}}
-% dimensions
-
-\unexpanded\def\showmathcharactersentrywdhtdpic#1#2#3#4%
- {\setlayer
- [page]
- [preset=leftbottom,offset=5mm]
- {\somedata[align=normal,width=5cm]
- {\strut width \hfill \the\dimexpr#1sp\par
- \strut height\hfill \the\dimexpr#2sp\par
- \strut depth \hfill \the\dimexpr#3sp\par
- \strut italic\hfill \the\dimexpr#4sp}}}
+% dimensions (we can ask them in tex)
+
+\ifcase\contextlmtxmode
+
+ \unexpanded\def\showmathcharactersentrywdhtdpicta#1#2#3#4#5%
+ {\setlayer
+ [page]
+ [preset=leftbottom,offset=5mm]
+ {\somedata[align=normal,width=5cm]
+ {\strut width \hfill \the\dimexpr#1\scaledpoint\par
+ \strut height\hfill \the\dimexpr#2\scaledpoint\par
+ \strut depth \hfill \the\dimexpr#3\scaledpoint\par
+ \ifnum#4=\zerocount\else
+ \strut italic\hfill \the\dimexpr#4\scaledpoint\par
+ \fi
+ \ifnum#5=\zerocount\else
+ \strut accent\hfill \the\dimexpr#5\scaledpoint
+ \fi
+ }}}
+
+\else
+
+ \unexpanded\def\showmathcharactersentrywdhtdpicta#1%
+ {\setlayer
+ [page]
+ [preset=leftbottom,offset=5mm]
+ {\somedata[align=normal,width=5cm]
+ {\scratchwidth \glyphxscaled\fontcharwd\font#1%
+ \scratchheight\glyphxscaled\fontcharht\font#1%
+ \scratchdepth \glyphxscaled\fontchardp\font#1%
+ \scratchitalic\glyphxscaled\fontcharic\font#1%
+ \scratchdimen \glyphxscaled\fontcharta\font#1%
+ \strut width \hfill \the\scratchwidth \par
+ \strut height\hfill \the\scratchheight\par
+ \strut depth \hfill \the\scratchdepth \par
+ \ifnum\scratchitalic=\zerocount\else
+ \strut italic\hfill \the\scratchitalic\par
+ \fi
+ \ifnum\scratchdimen=\zerocount\else
+ \strut accent\hfill \the\scratchdimen
+ \fi
+ }}}
+
+\fi
\unexpanded\def\showmathcharactersentryresource#1%
{} % {virtual: #1\par}
@@ -346,13 +431,13 @@
{\egroup\egroup}
\unexpanded\def\showmathcharactersnextentry#1#2#3%
- {\ifnum#1>1 \vskip1ex \fi
+ {\ifnum#1>1 \vskip\exheight \fi
\dontleavehmode\somedata
[align=normal,width=4cm]
{\strut\showmathcharacterstxt{#2}\hfill\showmathcharacterschr{2}{#3}}\par}
\unexpanded\def\showmathcharactersnextcycle#1%
- {\ifnum#1>1 \vskip1ex \fi
+ {\ifnum#1>1 \vskip\exheight \fi
\dontleavehmode\somedata
[align=normal,width=4cm]
{\strut\showmathcharacterstxt{cycle}}\par}
@@ -372,13 +457,13 @@
\bgroup\hbox\bgroup}
\unexpanded\def\showmathcharactersvvariantsentry#1#2#3%
- {\ifnum#1>1 \vskip1ex \fi
+ {\ifnum#1>1 \vskip\exheight \fi
\dontleavehmode\somedata
[align=middle,width=4cm]
{\strut\showmathcharacterstxt{#2}\hfilll\showmathcharacterschr{2}{#3}}}
\unexpanded\def\showmathcharactershvariantsentry#1#2#3%
- {\ifnum#1>1 \hskip1ex \else \dontleavehmode \fi
+ {\ifnum#1>1 \hskip\exheight \else \dontleavehmode \fi
\somedata
[align={none,middle},height=2cm]
{\strut\showmathcharacterstxt{#2}\vfilll\showmathcharacterschr{2}{#3}}}
@@ -428,7 +513,7 @@
{\egroup\egroup}
\unexpanded\def\showmathcharacterslookupvariant#1#2#3#4%
- {\ifnum#1>1 \vskip1ex \fi
+ {\ifnum#1>1 \vskip\exheight \fi
\somedata
[align=normal,width=7cm]
{\showmathcharacterstxt{#4:} \showmathcharacterstxt{#2}\hfill\showmathcharacterschr{4}{#3}}}
@@ -453,28 +538,36 @@
\continueifinputfile{s-math-repertoire.mkiv}
-\showmathcharacterssetbodyfonts{lucidaot,cambria,xits,stixtwo,modern,pagella,termes,bonum,schola,dejavu}
+% \enabledirectives[math.nogoodies]
+
+% \showmathcharacterssetbodyfonts{lucidaot,cambria,xits,stixtwo,modern,pagella,termes,bonum,schola,dejavu}
+\showmathcharacterssetbodyfonts{lucida,cambria,stixtwo,modern,pagella,termes,bonum,schola,ebgaramond,dejavu}% ,modernlatin}
+% \showmathcharacterssetbodyfonts{newcomputermodern-book,lucidaot,cambria,stixtwo,modern,pagella,termes,bonum,schola,dejavu}
+% \showmathcharacterssetbodyfonts{newcomputermodern-book,stixtwo,modern,pagella,termes,bonum,schola,dejavu}
+% \showmathcharacterssetbodyfonts{newcomputermodern-book,lucidaot,cambria,stixtwo,modern,pagella,termes,schola,dejavu}
+% \showmathcharacterssetbodyfonts{modernlatin,lucidaot,cambria,stixtwo,modern,pagella,termes,schola,dejavu}
\starttext
\doifelse {\getdocumentargument{bodyfont}} {} {
- % \setupbodyfont[cambria, 12pt]
- % \setupbodyfont[modern, 12pt]
- % \setupbodyfont[lmvirtual, 12pt]
- % \setupbodyfont[pxvirtual, 12pt]
- % \setupbodyfont[txvirtual, 12pt]
- % \setupbodyfont[palatino, 10pt]
- % \setupbodyfont[mathtimes, 12pt]
- % \setupbodyfont[stix, 12pt]
- % \setupbodyfont[xits, 12pt]
- % \setupbodyfont[lucida, 12pt]
- % \setupbodyfont[lucidaot, 12pt]
- % \setupbodyfont[pagella, 12pt]
- % \setupbodyfont[bonum, 12pt]
- % \setupbodyfont[schola, 12pt]
- % \setupbodyfont[dejavu, 12pt]
- \setupbodyfont[lucidaot, 12pt]
+ % \setupbodyfont[cambria, 12pt]
+ % \setupbodyfont[modern, 12pt]
+ % \setupbodyfont[lmvirtual, 12pt]
+ % \setupbodyfont[pxvirtual, 12pt]
+ % \setupbodyfont[txvirtual, 12pt]
+ % \setupbodyfont[palatino, 10pt]
+ % \setupbodyfont[mathtimes, 12pt]
+ % \setupbodyfont[stix, 12pt]
+ % \setupbodyfont[xits, 12pt]
+ % \setupbodyfont[lucida, 12pt]
+ % \setupbodyfont[lucidaot, 12pt]
+ % \setupbodyfont[pagella, 12pt]
+ % \setupbodyfont[bonum, 12pt]
+ % \setupbodyfont[schola, 12pt]
+ % \setupbodyfont[dejavu, 12pt]
+ \setupbodyfont[lucida, 12pt]
+ % \setupbodyfont[newcomputermodern-book, 12pt]
} {
diff --git a/Master/texmf-dist/tex/context/modules/common/s-obsolete-tokens.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-obsolete-tokens.mkiv
index 0d055049c24..117282a6086 100644
--- a/Master/texmf-dist/tex/context/modules/common/s-obsolete-tokens.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-obsolete-tokens.mkiv
@@ -56,15 +56,15 @@ local report = logs.reporter("tokens","collectors")
-- flush : print back to tex
-- test : fancy stuff
-local get_next = token.scan_next or token.get_next
-local create_token = token.create
+local get_next_token = tokens.scanners.next
+local create_token = tokens.create
function collectors.install(tag,end_cs)
local data, d = { }, 0
collectordata[tag] = data
end_cs = gsub(end_cs,"^\\","")
while true do
- local t = get_next()
+ local t = get_next_token()
if t.csname == end_cs then
context[end_cs]()
return
@@ -93,20 +93,20 @@ function collectors.show(data)
local ctx_verbatim = context.verbatim
local function show(data)
for i=1,#data do
- local token = data[i]
- if type(token) == "table" then
- show(token)
+ local tok = data[i]
+ if type(tok) == "table" then
+ show(tok)
else
- local cmdname = token.cmdname
+ local cmdname = tok.cmdname
local simple = simple[cmdname]
ctx_NC()
ctx_verbatim(simple or cmdname)
ctx_NC()
- ctx_verbatim(simple and utfchar(token.index) or token.csname)
+ ctx_verbatim(simple and utfchar(tok.index) or tok.csname)
ctx_NC()
- if token.active then context("active ") end
- if token.expandable then context("expandable ") end
- if token.protected then context("protected ") end
+ if tok.active then context("active ") end
+ if tok.expandable then context("expandable ") end
+ if tok.protected then context("protected ") end
ctx_NC()
ctx_NR()
end
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-physics-units.lua b/Master/texmf-dist/tex/context/modules/mkiv/s-physics-units.lua
new file mode 100644
index 00000000000..00832085870
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-physics-units.lua
@@ -0,0 +1,86 @@
+if not modules then modules = { } end modules ['s-physics-units'] = {
+ version = 1.001,
+ comment = "companion to s-physics-units.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+moduledata.physics = moduledata.physics or { }
+moduledata.physics.units = moduledata.physics.units or { }
+
+local tables = physics.units.tables
+local units = tables.units
+local shortcuts = tables.shortcuts
+
+local HL = context.HL
+local NC = context.NC
+local NR = context.NR
+
+local function typeset(list,followup,name,category)
+ if list then
+ if followup then
+ context.TB()
+ end
+ if category then
+ HL()
+ NC()
+ context.rlap(category .. ":" .. name)
+ NC()
+ NC()
+ NR()
+ HL()
+ end
+ for k, v in table.sortedhash(list) do
+ NC()
+ context(k)
+ NC()
+ if isunit then
+ context(v)
+ else
+ context.type(v)
+ end
+ NC()
+ if name == "units" or name == "symbols" or name == "packaged" then
+ context.unittext(v)
+ elseif name == "prefixes" then
+ context.prefixtext(v)
+ elseif name == "operators" then
+ context.operatortext(v)
+ elseif name == "suffixes" then
+ context.suffixtext(v)
+ end
+ NC()
+ NR()
+ end
+ if category and name then
+ HL()
+ end
+ end
+end
+
+function moduledata.physics.units.showlist(name)
+ specification = interfaces.checkedspecification(specification)
+ context.starttabulate { "|lT|l|c|" }
+ local name = specification.name
+ if name and name ~= "" then
+ local first, second = string.match(name,"(.-):(.-)") -- [units|shortcuts]:[units|...]
+ if first then
+ typeset(tables[first] and tables[first][second],false)
+ else
+ typeset(units[name],false)
+ typeset(shortcuts[name],true)
+ end
+ else
+ local done = false
+ for what, list in table.sortedhash(units) do
+ typeset(list,done,what,"units")
+ done = true
+ end
+ for what, list in table.sortedhash(shortcuts) do
+ typeset(list,done,what,"shortcuts")
+ done = true
+ end
+ end
+ context.stoptabulate()
+end
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-present-stepper.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-present-stepper.mkiv
index c2f3c018a51..3f5918d5b79 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-present-stepper.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-present-stepper.mkiv
@@ -13,9 +13,11 @@
%D Optima
+% \overloadmode\zerocount % for now (me)
+
\startmodule[present-stepper]
-\usemodule[pre-60]
+\usemodule[present-stepwise]
\doifmodeelse {atpragma,asintended} {
\usetypescriptfile[ghz]
@@ -74,12 +76,12 @@
frame=off]
\startinteractionmenu[bottom]
- \but [firstpage] \symbol[firstpage] \\
- \but [previouspage] \symbol[previouspage] \\
- \but [InvokeStepper] \StartBusy\symbol[PauseRendering]\StopBusy \\
- \but [nextpage] \symbol[nextpage] \\
- \but [lastpage] \symbol[lastpage] \\
- \but [CloseDocument] \symbol[CloseDocument] \\
+ \startbut [firstpage] \symbol[firstpage] \stopbut
+ \startbut [previouspage] \symbol[previouspage] \stopbut
+ \startbut [InvokeStepper] \StartBusy\symbol[PauseRendering]\StopBusy \stopbut
+ \startbut [nextpage] \symbol[nextpage] \stopbut
+ \startbut [lastpage] \symbol[lastpage] \stopbut
+ \startbut [CloseDocument] \symbol[CloseDocument] \stopbut
\stopinteractionmenu
% maybe in colo-sjk : \setupcolor[sjk]
@@ -189,7 +191,7 @@
{\setups[fonts:normalize]
\resetsetups[fonts:normalize]
\startstandardmakeup[headerstate=high]
- \enforced\protected\def\\{\enforced\protected\def\\{\endgraf\quad\quad}\endgraf\quad\ignorespaces#2}%
+ \protected\def\\{\protected\def\\{\endgraf\quad\quad}\endgraf\quad\ignorespaces#2}%
#1\setstrut\setupinterlinespace\vfil#3\vfil\vfil
\stopstandardmakeup}
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-present-steps.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-present-steps.mkiv
index 432650a5ed9..c588a0d168c 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-present-steps.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-present-steps.mkiv
@@ -16,6 +16,8 @@
\startmodule[present-steps]
+\pushoverloadmode
+
\startluacode
moduledata.steps = moduledata.steps or { }
@@ -168,6 +170,8 @@ end
\fi
\ctxlua{moduledata.steps.stopsubstep()}}
+\popoverloadmode
+
\stopmodule
\continueifinputfile{s-present-steps.mkiv}
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-present-weird.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-present-weird.mkiv
index 641c3d979c4..1b287e148f7 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-present-weird.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-present-weird.mkiv
@@ -297,6 +297,12 @@
\stopmodule
-\continueifinputfile{s-present-balls.mkiv}
+\continueifinputfile{s-present-weird.mkiv}
+
+\pushoverloadmode
+
+\usemodule[present-common]
\inputpresentationfile{examples/present-weird-001.tex}
+
+\popoverloadmode
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-present-wobbling.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-present-wobbling.mkiv
index e61b262f48d..b296966e230 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-present-wobbling.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-present-wobbling.mkiv
@@ -11,8 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D This a bit old stuyls and I should adapt it a bit but as it sort of works ok I'll
-%D not do that now.
+%D This a bit old style and I should adapt it a bit but as it sort of works ok I'll
+%D not do that now.
\startmodule[present-wobbling]
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-system-tokens.mkxl b/Master/texmf-dist/tex/context/modules/mkiv/s-system-tokens.mkxl
deleted file mode 100644
index b83a4f47b6c..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-system-tokens.mkxl
+++ /dev/null
@@ -1,84 +0,0 @@
-%D \module
-%D [ file=s-system-tokens.mkxl,
-%D version=2020.06.02,
-%D title=\CONTEXT\ Style File,
-%D subtitle=System Tokens Checking,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\startmodule[system-tokens]
-
-\registerctxluafile{s-system-tokens}{}
-
-\permanent\protected\def\showsystemtokens{\ctxlua{moduledata.system.tokens.showlist()}} % can be public implementor
-
-\stopmodule
-
-\continueifinputfile{s-system-tokens.mkxl}
-
-\usemodule[article-basic]
-
-\setuppapersize[A4,landscape]
-
-\setuplayout[tight]
-
-\setupbodyfont[8pt]
-
-\starttext
-
- \showsystemtokens
-
- Some tokens cannot be created yet because they are more complex but eventually the creator will
- deal with them. The indices are sometimes the same as internal but in most cases nicely start
- at zero. When they start at another value, then there is an internal token or state that is not
- user accessible. You always need to use symbolic constants as the numbers can change.
-
- The first column is a classifier (which is experimental and categories might change when we feel
- the need).
-
- \startcolumns[n=5]
- \starttabulate[|T||]
- \NC 0 \NC unused \NC \NR
- \NC 1 \NC regular \NC \NR
- \NC 2 \NC character \NC \NR
- \NC 3 \NC register \NC \NR
- \NC 4 \NC internal \NC \NR
- \NC 5 \NC reference \NC \NR
- \NC 6 \NC data \NC \NR
- \NC 7 \NC token \NC \NR
- \NC 8 \NC node \NC \NR
- \stoptabulate
- \stopcolumns
-
- \page
-
- Here is a typeset table of \type {\startframed} using \type {\luatokentable\startframed}:
-
- \luatokentable\startframed
-
- which calls \type {\pack_framed_start_framed} where \type {\luatokentable\pack_framed_start_framed} gives:
-
-
- \unprotect
- \luatokentable\pack_framed_start_framed
- \protect
-
- So you can guess what generates this:
-
- \unprotect
- \luatokentable\pack_framed_start_framed_nop
- \protect
-
- And this:
-
- \unprotect
- \luatokentable\pack_framed_start_framed_yes
- \protect
-
-\stoptext
-
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-version.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/s-version.mkiv
new file mode 100644
index 00000000000..63005aa3339
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkiv/s-version.mkiv
@@ -0,0 +1,123 @@
+%D \module
+%D [ file=s-version,
+%D version=2011.07.28,
+%D title=\CONTEXT\ Version Pictogram,
+%D subtitle=Basics,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This is an oldie that we use to generate a pictogram that reflects the current
+%D version.
+
+\startMPextensions
+vardef context_version(expr variant, mark, year, month, day, hours, minutes, seconds) =
+
+ image (
+
+ interim overloadmode := 0;
+
+ save angle, min, max, mk, yr, mo, da, ho, mi, se, max_mk, max_yr, max_mo, max_da, max_ho, max_mi, max_se ;
+
+ numeric angle, delta ; pair min, max ; angle := 360/7.25 ; delta := (360-7*angle)/7 ; min := (0,10) ; max := (0,100) ;
+
+ numeric mk, max_mk ; max_mk := 8 ; mk := if (mark <= 0) or (mark > max_mk) : max_mk else : mark fi ;
+ numeric yr, max_yr ; max_yr := 2050 ; yr := if (year <= 2000) or (year > max_yr) : max_yr else : year fi ;
+ numeric mo, max_mo ; max_mo := 12 ; mo := if (month <= 0) or (month > max_mo) : max_mo else : month fi ;
+ numeric da, max_da ; max_da := 31 ; da := if (day <= 0) or (day > max_da) : max_da else : day fi ;
+ numeric ho, max_ho ; max_ho := 24 ; ho := if (hours <= 0) or (hours > max_ho) : max_ho else : hours fi ;
+ numeric mi, max_mi ; max_mi := 60 ; mi := if (minutes <= 0) or (minutes > max_mi) : max_mi else : minutes fi ;
+ numeric se, max_se ; max_se := 60 ; se := if (seconds <= 0) or (seconds > max_se) : max_se else : seconds fi ;
+
+ max_da := if (mo = 2) : 28 elseif (mo = 4) or (mo = 6) or (mo = 9) or (mo = 11) : 30 else : 31 fi ;
+
+ if da > max_da : da := max_da fi ; yr := yr - 2000 ; max_yr := max_yr - 2000 ;
+
+ if (variant = 2) or (variant = 3) :
+ fill fullcircle scaled 205 withcolor .7white ;
+ fi ;
+
+ color colorant[] ;
+
+ vardef do_context_version(expr i, amount) =
+ fill (min/2 rotated (-angle/2) -- max { dir -40 } .. max rotated -angle -- cycle) rotated -(i*(angle+delta)) withcolor .3colorant[i] ;
+ fill (min rotated (-angle/2) -- max { dir -(45+45*amount) } .. max rotated -angle -- cycle) rotated -(i*(angle+delta)) withcolor .7colorant[i] ;
+ enddef ;
+
+ color orange ; orange := (1,.62,.06) ; % .5white
+
+ colorant[0] := red ; colorant[1] := green ; colorant[2] := blue ; colorant[3] := orange ;
+ colorant[4] := cyan ; colorant[5] := magenta ; colorant[6] := yellow ;
+
+ do_context_version(0, (yr-1)/max_yr) ;
+ do_context_version(1, (mo-1)/max_mo) ;
+ do_context_version(2, (da-1)/max_da) ;
+ do_context_version(3, (mk-1)/max_mk) ;
+ do_context_version(4, (ho-1)/max_ho) ;
+ do_context_version(5, (mi-1)/max_mi) ;
+ do_context_version(6, (se-1)/max_se) ;
+
+ currentpicture := currentpicture slanted .15 ;
+
+ if (variant = 3) :
+ setbounds currentpicture to boundingbox currentpicture enlarged 10 ;
+ addbackground withcolor .3white ;
+ setbounds currentpicture to boundingbox currentpicture enlarged -5 ;
+ fi ;
+
+ )
+
+enddef ;
+
+% draw context_version(4,2011,07,28,14,50,30) ;
+% draw context_version(4,01,01,01,01,01,01) ;
+% draw context_version(4,99,12,31,24,60,60) ;
+
+\stopMPextensions
+
+\startluacode
+ moduledata.versions = moduledata.versions or { }
+
+ function moduledata.versions.drawcontextversion(variant, mark, year, month, day, hours, minutes, seconds)
+ if not variant then
+ variant = 3
+ end
+ if not mark then
+ mark = 4
+ year, month, day, hours, minutes, seconds = string.match(environment.version,"(....).(..).(..) (..).(..)")
+ seconds = 30
+ end
+ context.startMPcode()
+ context("draw context_version(%s,%s,%s,%s,%s,%s,%s,%s) ;",
+ variant or 1,
+ mark or 4,
+ year or os.date("%y"),
+ month or os.date("%m"),
+ day or os.date("%d"),
+ hours or os.date("%H"),
+ minutes or os.date("%M"),
+ seconds or os.date("%S")
+ )
+ context.stopMPcode()
+ end
+\stopluacode
+
+\continueifinputfile{s-version.mkiv}
+
+\starttext
+
+\startluacode
+ context.startTEXpage()
+ moduledata.versions.drawcontextversion()
+ context.stopTEXpage()
+\stopluacode
+
+\stoptext
+
+% d:\imagemagick\convert.exe -geometry 256x256 s-version.pdf context-version.png
+% d:\imagemagick\convert.exe -geometry 72x72 s-version.pdf context-version.ico
+% d:\imagemagick\convert.exe -geometry 128x128 s-version.pdf context-version.icns
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/x-asciimath.lua b/Master/texmf-dist/tex/context/modules/mkiv/x-asciimath.lua
index edad3f575b1..fdcab141c37 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/x-asciimath.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/x-asciimath.lua
@@ -1403,6 +1403,7 @@ local function collapse_stupids(t)
if type(one) == "table" then
one = collapse(one,level)
t[m] = current .. "{" .. one .. "}"
+-- t[m] = current .. "\\begingroup" .. one .. "\\endgroup"
i = i + 2
else
t[m] = current
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/x-asciimath.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/x-asciimath.mkiv
index 32eaf2af213..5a329f0b0c0 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/x-asciimath.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/x-asciimath.mkiv
@@ -139,7 +139,7 @@
\unexpanded\def\asciimathoptext #1{\ifmmode\mathoptext{#1}\else#1\fi}
\unexpanded\def\asciimathoptexttraced #1{\ifmmode\mathoptext{\color[darkgreen]{#1}}\else\color[darkgreen]{#1}\fi}
-\unexpanded\def\asciimathstackrel #1#2{\mathematics{\mathop{\let\limits\relax\mover{#2}{#1}}}}
+\unexpanded\def\asciimathstackrel #1#2{\mathematics{\mathop{\math_relax_limits\mover{#2}{#1}}}}
\unexpanded\def\asciimathroot #1#2{\sqrt[#1]{#2}}
\unexpanded\def\asciimathsqrt #1{\sqrt{#1}}
@@ -174,7 +174,7 @@
\def\asciimath_yes[#1]#2%
{\mathematics
[#1]%
- {\the\everyasciimath%
+ {\the\everyasciimath
\clf_justasciimath{\detokenize\expandafter{\normalexpanded{#2}}}}}
\def\asciimath_nop#1%
@@ -191,7 +191,7 @@
\def\xmlasciimath_yes[#1]#2%
{\mathematics
[#1]%
- {\the\everyasciimath%
+ {\the\everyasciimath
\clf_xmlasciimath{#2}}}
\def\xmlasciimath_nop#1%
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.lua b/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.lua
index c8c77347596..9dd2c98516e 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.lua
+++ b/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.lua
@@ -872,7 +872,7 @@ function xml.is_element(e,name)
return type(e) == "table" and (not name or e.tg == name)
end
-function mathml.cpolar_a(root)
+function mathml.cpolar(root)
root = getid(root)
local dt = root.dt
ctx_mathopnolimits("Polar")
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.mkiv
index bd55196f9d3..a8b121053a8 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/x-mathml.mkiv
@@ -393,12 +393,12 @@
% \fi
% \MMLdoR
% } {
- \edef\mmlapplyaction{\xmlfilter{#1}{/*/name()}}
+ \edef\mmlapplyaction{\xmlfilter{#1}{/*/tag()}}
\doifelsesetups {mml:apply:mml:\mmlapplyaction} {
\xmlsetup{#1}{mml:apply:mml:\mmlapplyaction}
} {
% \MMLdoL
- \xmlsetup{#1}{mml:\xmlfilter{#1}{/*/name()}}
+ \xmlsetup{#1}{mml:\mmlapplyaction}
% \MMLdoR
}
% }
@@ -472,41 +472,41 @@
\startxmlsetups mmc:fn
\begingroup
- \edef\mmlnoffn{\xmlcount{#1}{/*}}
- \ifnum\mmlnoffn>\plustwo
- \def\MMCfnleft {\left(}
- \def\MMCfnright{\right)}
- \else
- \let\MMCfnleft \relax
- \let\MMCfnright\relax
- \fi
- \xmldoifelse {#1} {/mml:ci} { % first
- \edef\mmlfnci{\xmltext{#1}{/mml:ci}}% was xmlcontent
- \doifelsesetups{mmc:fn:\mmlfnci} { % was mmc:fn:...
- \xmlsetup{#1}{mmc:fn:\mmlfnci} % \MMLdoL/MMLdoR to be handled in plugin
- } {
- \MMLcreset
- \mmlfirst{#1}
- }
- } {
- \xmldoifelse {#1} {/mml:apply} { % first
- \xmldoifelse {#1} {/(mml:plus\string|mml:minus)} {
- \left(\mmlfirst{#1}\right)
+ \edef\mmlnoffn{\xmlcount{#1}{/*}}
+ \ifnum\mmlnoffn>\plustwo
+ \def\MMCfnleft {\left(}
+ \def\MMCfnright{\right)}
+ \else
+ \let\MMCfnleft \relax
+ \let\MMCfnright\relax
+ \fi
+ \xmldoifelse {#1} {/mml:ci} { % first
+ \edef\mmlfnci{\xmltext{#1}{/mml:ci}}% was xmlcontent
+ \doifelsesetups{mmc:fn:\mmlfnci} { % was mmc:fn:...
+ \xmlsetup{#1}{mmc:fn:\mmlfnci} % \MMLdoL/MMLdoR to be handled in plugin
} {
+ \MMLcreset
\mmlfirst{#1}
}
- \ifnum\mmlnoffn>\plusone
- \left(\xmlall{#1}{/!mml:apply}\right)
- \fi
} {
- \MMLcreset
- \negthinspace
- \MMCfnleft
- \ifnum\mmlnoffn=\plustwo,\fi
- \xmlconcat{#1}{/*}{2}{}{\MMLseparator,}
- \MMCfnright
+ \xmldoifelse {#1} {/mml:apply} { % first
+ \xmldoifelse {#1} {/(mml:plus\string|mml:minus)} {
+ \left(\mmlfirst{#1}\right)
+ } {
+ \mmlfirst{#1}
+ }
+ \ifnum\mmlnoffn>\plusone
+ \left(\xmlall{#1}{/!mml:apply}\right)
+ \fi
+ } {
+ \MMLcreset
+ \negthinspace
+ \MMCfnleft
+ \ifnum\mmlnoffn=\plustwo,\fi
+ \xmlconcat{#1}{/*}{2}{}{\MMLseparator,}
+ \MMCfnright
+ }
}
- }
\endgroup
\stopxmlsetups
@@ -670,7 +670,7 @@
\stopxmlsetups
\startxmlsetups mml:cn:polar:a
- \ctxmodulemathml{cpolar_a("#1")}
+ \ctxmodulemathml{cpolar("#1")}
\stopxmlsetups
\startxmlsetups mml:cn:polar:b
@@ -797,7 +797,7 @@
\startxmlsetups mml:apply:inverse
\settrue\xmlinversefunction
- \xmlsetup{#1}{mml:\xmlfilter{#1}{/mml:apply/*[2]/name()}}
+ \xmlsetup{#1}{mml:\xmlfilter{#1}{/mml:apply/*[2]/tag()}}
\stopxmlsetups
% condition
@@ -1219,7 +1219,7 @@
\startxmlsetups mml:factorof \xmlsetup{#1}{mml:relation} \stopxmlsetups
\startxmlsetups mml:relation
- \edef\mmlapplyaction{\xmlfilter{#1}{/*/name()}}
+ \edef\mmlapplyaction{\xmlfilter{#1}{/*/tag()}}
\MMLcreset \xmlsetup{#1}{mml:relation:\xmlattdef{#1}{align}{\MMLrelationalign}}
\stopxmlsetups
@@ -1879,6 +1879,14 @@
\fi
\stoptexdefinition
+\starttexdefinition setmmlmathcolor #1
+ \edef\mmlmathcolor{\xmlatt{#1}{mathcolor}}
+ \ifx \mmlmathcolor \empty
+ \else
+ \directcolor[\mmlmathcolor]
+ \fi
+\stoptexdefinition
+
% todo: textbackgrounds
\starttexdefinition applymmlmathbackground #1#2
@@ -1922,16 +1930,20 @@
\startxmlsetups mml:mi % todo: mathsize (unlikely) mathcolor (easy) mathbackground (easy)
\begingroup
- \pushmathstyle
+ \pushmathstyle % still needed ?
+ \setmmlmathcolor{#1}
\setmmlmathstyle{#1}
\setmmlscriptlevel{#1}
\ctxmodulemathml{mi("#1")}
- \popmathstyle
+ \popmathstyle % still needed ?
\endgroup
\stopxmlsetups
\startxmlsetups mml:mn
- \ctxmodulemathml{mn("#1")}% no \hbox, would be ok for . , but spoils rest
+ \begingroup
+ \setmmlmathcolor{#1}
+ \ctxmodulemathml{mn("#1")}% no \hbox, would be ok for . , but spoils rest
+ \endgroup
\stopxmlsetups
% <m:mo>-</m:mo><m:mn>2</m:mn> and <m:mn>1</m:mn><m:mo>-</m:mo><m:mn>2</m:mn>
@@ -1939,25 +1951,28 @@
% spacing between - and 2 is taken care of by tex itself
\startxmlsetups mml:mo
- \edef\mmlattvalue{\xmlatt{#1}{maxsize}}
- \ifx\mmlattvalue\mmlconstantone
- \settrue\mmlignoredelimiter
- \else
- \edef\mmlattvalue{\xmlatt{#1}{stretchy}}
- \ifx\mmlattvalue\mmlconstantfalse
+ \begingroup
+ \setmmlmathcolor{#1}
+ \edef\mmlattvalue{\xmlatt{#1}{maxsize}}
+ \ifx\mmlattvalue\mmlconstantone
\settrue\mmlignoredelimiter
+ \else
+ \edef\mmlattvalue{\xmlatt{#1}{stretchy}}
+ \ifx\mmlattvalue\mmlconstantfalse
+ \settrue\mmlignoredelimiter
+ \fi
\fi
- \fi
- \edef\mmlattvalue{\xmlatt{#1}{lspace}}
- \ifx\mmlattvalue\empty\else
- \hskip\mmlattvalue\relax % todo: check for dimension
- \fi
- \ctxmodulemathml{mo("#1")}
- \edef\mmlattvalue{\xmlatt{#1}{rspace}}
- \ifx\mmlattvalue\empty\else
- \hskip\mmlattvalue\relax % todo: check for dimension
- \fi
- \setfalse\mmlignoredelimiter
+ \edef\mmlattvalue{\xmlatt{#1}{lspace}}
+ \ifx\mmlattvalue\empty\else
+ \hskip\mmlattvalue\relax % todo: check for dimension
+ \fi
+ \ctxmodulemathml{mo("#1")}
+ \edef\mmlattvalue{\xmlatt{#1}{rspace}}
+ \ifx\mmlattvalue\empty\else
+ \hskip\mmlattvalue\relax % todo: check for dimension
+ \fi
+ % \setfalse\mmlignoredelimiter
+ \endgroup
\stopxmlsetups
@@ -2486,34 +2501,65 @@
\setupMMLappearance[mspace][\c!option=] % \v!test
+% \startxmlsetups mml:mspace
+% \begingroup
+% \edef\mmlspacetext{\xmlatt{#1}{spacing}}
+% \ifx\mmlspacetext\empty
+% \scratchwidth \xmlattdef{#1}{width} \!!zeropoint % must be string
+% \scratchheight\xmlattdef{#1}{height}\!!zeropoint
+% \scratchdepth \xmlattdef{#1}{depth} \!!zeropoint
+% \ifdim\scratchheight=\zeropoint
+% \ifdim\scratchdepth=\zeropoint\else
+% \hbox{\vrule\s!depth\scratchdepth\s!height\zeropoint\s!width\zeropoint}%
+% \fi
+% \else
+% \hbox{\vrule\s!depth\zeropoint\s!height\scratchheight\s!width\zeropoint}%
+% \fi
+% \ifdim\scratchwidth=\zeropoint\else
+% \ifx\MMLmspaceoption\v!test
+% \hbox to \scratchwidth{\showstruts\strut\hss\lower2\exheight\hbox{\infofont\xmlattdef{#1}{width}}\hss\strut}
+% \else
+% \hskip\scratchwidth
+% \fi
+% \fi
+% \else
+% \ifx\MMLmspaceoption\v!test
+% \hbox{\showstruts\strut\phantom{\triggermathstyle\normalmathstyle\mmlspacetext}\strut}
+% \else
+% \phantom{\triggermathstyle\normalmathstyle\mmlspacetext}
+% \fi
+% \fi
+% \endgroup
+% \stopxmlsetups
+
\startxmlsetups mml:mspace
\begingroup
- \edef\mmlspacetext{\xmlatt{#1}{spacing}}
- \ifx\mmlspacetext\empty
- \scratchwidth \xmlattdef{#1}{width} \!!zeropoint % must be string
- \scratchheight\xmlattdef{#1}{height}\!!zeropoint
- \scratchdepth \xmlattdef{#1}{depth} \!!zeropoint
- \ifdim\scratchheight=\zeropoint
- \ifdim\scratchdepth=\zeropoint\else
- \hbox{\vrule\s!depth\scratchdepth\s!height\zeropoint\s!width\zeropoint}%
+ \edef\mmlspacetext{\xmlatt{#1}{spacing}}
+ \ifx\mmlspacetext\empty
+ \scratchwidth \xmlattdef{#1}{width} \!!zeropoint % must be string
+ \scratchheight\xmlattdef{#1}{height}\!!zeropoint
+ \scratchdepth \xmlattdef{#1}{depth} \!!zeropoint
+ \ifdim\scratchheight=\zeropoint
+ \ifdim\scratchdepth=\zeropoint\else
+ \novrule\s!depth\scratchdepth\s!height\zeropoint\s!width\zeropoint
+ \fi
+ \else
+ \novrule\s!depth\zeropoint\s!height\scratchheight\s!width\zeropoint
+ \fi
+ \ifdim\scratchwidth=\zeropoint\else
+ \ifx\MMLmspaceoption\v!test
+ \hbox to \scratchwidth{\showstruts\strut\hss\lower2\exheight\hbox{\infofont\xmlattdef{#1}{width}}\hss\strut}
+ \else
+ \hskip\scratchwidth
+ \fi
\fi
\else
- \hbox{\vrule\s!depth\zeropoint\s!height\scratchheight\s!width\zeropoint}%
- \fi
- \ifdim\scratchwidth=\zeropoint\else
\ifx\MMLmspaceoption\v!test
- \hbox to \scratchwidth{\showstruts\strut\hss\lower2\exheight\hbox{\infofont\xmlattdef{#1}{width}}\hss\strut}
+ \hbox{\showstruts\strut\phantom{\triggermathstyle\normalmathstyle\mmlspacetext}\strut}
\else
- \hskip\scratchwidth
+ \phantom{\triggermathstyle\normalmathstyle\mmlspacetext}
\fi
\fi
- \else
- \ifx\MMLmspaceoption\v!test
- \hbox{\showstruts\strut\phantom{\triggermathstyle\normalmathstyle\mmlspacetext}\strut}
- \else
- \phantom{\triggermathstyle\normalmathstyle\mmlspacetext}
- \fi
- \fi
\endgroup
\stopxmlsetups
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/x-newmml.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/x-newmml.mkiv
deleted file mode 100644
index 4c12daeeeb3..00000000000
--- a/Master/texmf-dist/tex/context/modules/mkiv/x-newmml.mkiv
+++ /dev/null
@@ -1,16 +0,0 @@
-%D \module
-%D [ file=x-newmml,
-%D version=2008.05.28,
-%D title=\CONTEXT\ XML Modules,
-%D subtitle=MathML Renderer,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\input x-mathml.mkiv
-
-\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/x-res-50.mkiv b/Master/texmf-dist/tex/context/modules/mkiv/x-res-50.mkiv
index 62a86b7a744..c86e0872336 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/x-res-50.mkiv
+++ b/Master/texmf-dist/tex/context/modules/mkiv/x-res-50.mkiv
@@ -301,8 +301,8 @@
[width=\XMLflush{rl:width},
height=\XMLflush{rl:height},
frame=off,
- openpageaction=StartCurrentRendering,
- closepageaction=StopCurrentRendering]
+ openpageaction=StartRendering{mediaclip},
+ closepageaction=StoptRendering{mediaclip}]
\setlayer
[main]
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/m-barcodes.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/m-barcodes.mkxl
new file mode 100644
index 00000000000..0ded9bbd6b9
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/m-barcodes.mkxl
@@ -0,0 +1,43 @@
+%D \module
+%D [ file=m-barcodes,
+%D version=2010.03.14,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=Barcodes,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{barcodes}{the 'zint' module is a better choice}
+
+\usemodule[zint]
+
+\unprotect
+
+\pushoverloadmode
+
+\let\normalbarcode\barcode
+
+\permanent\protected\def\barcode[#1]%
+ {\normalbarcode[\c!text=\dummyparameter{code},\c!alternative=\dummyparameter{type},#1]}
+
+\popoverloadmode
+
+\protect
+
+\continueifinputfile{m-barcodes.mkxl}
+
+\starttext
+ \startTEXpage[offset=1dk]
+ \startcombination[2*2]
+ {\barcode[type=isbn,text=978-9490688011,width=3cm]} {}
+ {\barcode[type=isbn,text=9780500518724,width=3cm]} {}
+ {\barcode[type=datamatrix,text=whatever,width=3cm,option=--square]} {}
+ {\barcode[type=maxicode,text=whatever,width=3cm]} {}
+ \stopcombination
+ \stopTEXpage
+\stoptext
+
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/m-circuitikz.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/m-circuitikz.mkxl
new file mode 100644
index 00000000000..27ef72642c3
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/m-circuitikz.mkxl
@@ -0,0 +1,138 @@
+%D \module
+%D [ file=m-circuitikz,
+%D version=2021.12.03,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=CURCUITIKZ support,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D A fixed variant of the t-curcuitikz module distributed with tikz. This one
+%D is for \LMTX.
+
+\usemodule[m][tikz]
+
+\startmodule[circuitikz]
+
+\usetikzlibrary[calc]
+\usetikzlibrary[arrows.meta]
+\usetikzlibrary[bending]
+\usetikzlibrary[fpu] % may be needed for use fpu reciprocal (v1.0.1)
+
+\tikzinputfile{pgfcirc.defines.tex}
+\tikzinputfile{pgfcircutils.tex}
+\tikzinputfile{pgfcircpath.tex}
+
+\tikzinputfile{pgfcircshapes.tex}
+\tikzinputfile{pgfcircmonopoles.tex}
+\tikzinputfile{pgfcircbipoles.tex}
+\tikzinputfile{pgfcirctripoles.tex}
+\tikzinputfile{pgfcircquadpoles.tex}
+\tikzinputfile{pgfcircmultipoles.tex}
+
+\tikzinputfile{pgfcirclabel.tex}
+\tikzinputfile{pgfcircvoltage.tex}
+\tikzinputfile{pgfcirccurrent.tex}
+\tikzinputfile{pgfcircflow.tex}
+
+\ifdefined\pgfcircversion \else \def\pgfcircversion {0.0.0} \fi
+\ifdefined\pgfcircversiondate \else \def\pgfcircversiondate {1010/01/01} \fi
+
+% defaults
+
+\setupmodule
+ [current=european,
+ voltage=european,
+ resistor=american,
+ inductor=cute,
+ logic=american,
+ %siunitx=true,
+ arrowmos=false]
+
+% can be done nicer ... todo
+
+\processaction
+ [\currentmoduleparameter{voltage}]
+ [european=>\ctikzset{voltage=european},
+ american=>\ctikzset{voltage=american}]
+
+\processaction
+ [\currentmoduleparameter{current}]
+ [european=>\ctikzset{current=european},
+ american=>\ctikzset{current=american}]
+
+\processaction
+ [\currentmoduleparameter{label}]
+ [straight=>\ctikzset{label/align=straight},
+ align=>\ctikzset{label/align=rotate},
+ smart=>\ctikzset{label/align=smart}]
+
+\processaction
+ [\currentmoduleparameter{resistor}]
+ [european=>\ctikzset{resistor=european},
+ american=>\ctikzset{resistor=american}]
+
+\processaction
+ [\currentmoduleparameter{inductor}]
+ [european=>\ctikzset{inductor=european},
+ american=>\ctikzset{inductor=american},
+ cute=>\ctikzset{inductor=cute}]
+
+\processaction
+ [\currentmoduleparameter{diode}]
+ [ full=>\ctikzset{diode=full},
+ empty=>\ctikzset{diode=empty}]
+
+\processaction
+ [\currentmoduleparameter{logic}]
+ [european=>\ctikzset{logic ports=european},
+ american=>\ctikzset{logic ports=american}]
+
+% hm, we have units since '97 so one can load the units module in mkii or
+% assume it is present (mkiv and therefore lmtx)
+%
+% \processaction
+% [\currentmoduleparameter{siunitx}]
+% [true=>\def\SI #1#2{#1\,#2}
+% \def\ampere {\rm{A}}
+% \def\volt {\rm{V}}
+% \def\ohm {\Omega}
+% \def\siemens {\rm{S}}
+% \def\farad {\rm{F}}
+% \def\henry {\rm{H}}
+% \def\second {\rm{s}}
+% \def\coulomb {\rm{C}}
+% \def\siemens {\rm{S}}
+% \def\radians {\rm{rad}}
+% \def\milli {\rm{m}}
+% \def\micro {\mu}
+% \def\nano {\rm{n}}
+% \def\pico {\rm{p}}
+% \def\kilo {\rm{k}}
+% \def\mega {\rm{M}}
+% \def\giga {\rm{G}}
+% \def\tera {\rm{T}}]
+
+\unprotect
+
+\processaction
+ [\currentmoduleparameter{arrowmos}]
+ [true=>\pgf@circuit@mos@arrowstrue,
+ false=>\pgf@circuit@mos@arrowsfalse]
+
+\protect
+
+\ctikzset{tripoles/op amp/font/.initial=\switchtobodyfont[small]}
+
+\aliased\let\stopcircuitikz\relax
+
+\permanent\protected\def\startcircuitikz#1\stopcircuitikz
+ {\starttikzpicture#1\stoptikzpicture}
+
+\stopmodule
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/m-crappyspec.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/m-crappyspec.mkxl
new file mode 100644
index 00000000000..0dd7903b986
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/m-crappyspec.mkxl
@@ -0,0 +1,229 @@
+%D \module
+%D [ file=m-crappyspec,
+%D version=2022.07.01, % about
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=Meeting weird demands,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This module is for Benjamin Buchmuller who has to meet rather weird demands with
+%D respect to the number of characters per line. So, it's not about quality but more
+%D sort of previous century typewriter specification.
+%D
+%D \setmainparbuilder[crappyspec]
+
+\startluacode
+
+local type = type
+
+local nuts = nodes.nuts
+
+local glyph_code = nodes.nodecodes.glyph
+local hlist_code = nodes.nodecodes.hlist
+local vlist_code = nodes.nodecodes.vlist
+local disc_code = nodes.nodecodes.disc
+
+local line_code = nodes.listcodes.line
+
+local traverselist = nuts.traverselist
+local traversecontent = nuts.traversecontent
+
+local flushlist = nuts.flushlist
+local copylist = nuts.copylist
+local getcharspec = nuts.getcharspec
+local getreplace = nuts.getreplace
+local getparstate = nuts.getparstate
+local getlist = nuts.getlist
+local getwidth = nuts.getwidth
+local setwidth = nuts.setwidth
+
+local texset = tex.set
+local texsetdimen = tex.setdimen
+local texgetdimen = tex.getdimen
+local texgetcount = tex.getcount
+local texlinebreak = tex.linebreak
+
+local characters = fonts.hashes.characters
+
+local function countglyphs(h)
+ local c = 0
+ if h then
+ for n, t, s in traversecontent(h) do
+ if t == glyph_code then
+ if true then
+ local g, f = getcharspec(n)
+ local d = characters[f][g] -- maybe cache
+ local u = d and d.unicode
+ if type(u) == "table" then
+ c = c + #u
+ else
+ c = c + 1
+ end
+ else
+ c = c + 1
+ end
+ elseif t == disc_code then
+ c = c + countglyphs(getreplace(n),c)
+ elseif t == hlist_code or s == vlist_code then
+ c = c + countglyphs(getlist(h),c)
+ else
+ -- leader
+ end
+ end
+ end
+ return c
+end
+
+local function overflow(h, max)
+ for n, t, s in traverselist(h) do
+ if t == hlist_code and s == line_code then
+ local c = countglyphs(getlist(n))
+ if c > max then
+ return c, getwidth(n)
+ end
+ end
+ end
+ return false
+end
+
+function builders.paragraphs.constructors.methods.crappyspec(head)
+ -- todo: prevent useless calls
+ local p = getparstate(head)
+ if p then
+ local hsize = p.hsize
+ local max = texgetcount("crappyspeccount")
+ local step = texgetdimen("crappyspecstep")
+ if step <= 65536 then
+ step = 65536
+ end
+ while true do
+ local n = copylist(head)
+ local l, d = texlinebreak(n, { hsize = hsize })
+ local c, w = overflow(l,max)
+ if w and hsize > 10*step then -- safeguard
+ flushlist(l)
+ hsize = hsize - step
+ else
+ texsetdimen("crappyspecdimen",hsize)
+ flushlist(head)
+ head = l
+ local hsize = p.hsize
+ for n, t, s in traverselist(head) do
+ if t == hlist_code and s == line_code then
+ -- todo: add delta to rightskip or so
+ setwidth(n,hsize)
+ end
+ end
+ texset("prevdepth",d.prevdepth)
+ break
+ end
+ end
+ end
+ return head
+end
+\stopluacode
+
+\newinteger \crappyspeccount
+\newdimension\crappyspecstep \crappyspecstep \onepoint
+\newdimension\crappyspecdimen
+
+\defineparbuilder [crappyspec] % implemented in the builder namespace
+\defineparbuilder [default] % implemented in the builder namespace
+
+\continueifinputfile{m-crappyspec.mkxl}
+
+\setupbodyfont
+ [pagella]
+
+\setuptolerance
+ [verytolerant,stretch]
+
+\showmakeup
+ [line]
+
+\setmainparbuilder
+ [crappyspec]
+
+\dontcomplain
+
+\protected\def\CrappyTraced
+ {\par \strut \rlap \bgroup\infofont
+ (\enspace
+ max = \the\crappyspeccount \quad
+ step = \the\crappyspecstep \quad
+ hsize = \the\hsize \quad
+ used = \the\crappyspecdimen \enspace
+ )
+ \egroup \par}
+
+\starttext
+
+\crappyspeccount60 \samplefile{tufte} \CrappyTraced \par
+\crappyspeccount40 \samplefile{tufte} \CrappyTraced \par
+% \crappyspecstep 2pt \samplefile{tufte} \CrappyTraced \par
+
+\samplefile{tufte} \CrappyTraced
+\startitemize
+ \startitem
+ \samplefile{tufte} \CrappyTraced
+ \stopitem
+ \startitem
+ \samplefile{ward} \CrappyTraced
+ \stopitem
+\stopitemize
+
+\startnarrower[6*left,right]
+ \samplefile{tufte} \CrappyTraced
+\stopnarrower
+
+\starthanging [distance=4em,n=2] {test}
+ \samplefile{tufte} \CrappyTraced
+\stophanging
+
+\page % \stoptext
+
+\setuppapersize[landscape,letter]
+
+\samplefile{knuth} \CrappyTraced
+\startitemize[width=5em]
+ \startitem
+ \samplefile{knuth} \CrappyTraced
+ \stopitem
+ \startitem
+ {\smallcaps \darkblue \samplefile{knuth}} \CrappyTraced
+ \stopitem
+\stopitemize
+\crappyspeccount60
+\startitemize[width=5em]
+ \startitem
+ \samplefile{knuth} \CrappyTraced
+ \stopitem
+ \startitem
+ {\smallcaps \darkgreen \samplefile{knuth}} \CrappyTraced
+ \stopitem
+\stopitemize
+
+\page
+
+\crappyspecstep 1pt \crappyspeccount 60 % 5.5
+\crappyspecstep 2pt \crappyspeccount 60 % 3.2
+\crappyspecstep 5pt \crappyspeccount 60 % 1.4
+\crappyspecstep 10pt \crappyspeccount 60 % 0.9
+
+\crappyspecstep 1pt \crappyspeccount 80 % 0.8
+\crappyspecstep 2pt \crappyspeccount 80 % 0.8
+\crappyspecstep 5pt \crappyspeccount 80 % 0.8
+\crappyspecstep 10pt \crappyspeccount 80 % 0.6
+
+% \crappyspecstep 1pt \crappyspeccount 120 % 0.25
+% \crappyspecstep 2pt \crappyspeccount 120 % 0.25
+% \crappyspecstep 5pt \crappyspeccount 120 % 0.25
+
+% \testfeatureonce{100}{\samplefile{tufte}\par\CrappyTraced} % \page \elapsedtime
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/m-gimmicks.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/m-gimmicks.mkxl
new file mode 100644
index 00000000000..bdf044488ac
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/m-gimmicks.mkxl
@@ -0,0 +1,96 @@
+%D \module
+%D [ file=m-gimmicks,
+%D version=2022.08.25
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=Whatever comes up,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\def\MacScale {.7}%
+\def\MacRule {.05}%
+\def\MacDistance {.05}%
+\def\MacKern {0}%
+
+\protected\def\Mac
+ {\dontleavehmode
+ \begingroup
+ \scratchwidth \fontcharwd\font`M\relax
+ \scratchdistance\MacScale\fontcharwd\font`c\relax
+ \scratchoffset \dimexpr\fontcharht\font`M -\MacScale\fontcharht\font`c\relax
+ \scratchdepth \MacRule\exheight
+ \kern\scratchwidth
+ \vrule
+ width \scratchdistance
+ height \dimexpr \scratchoffset- \scratchdepth-\MacDistance\exheight\relax
+ depth \dimexpr-\scratchoffset+2\scratchdepth+\MacDistance\exheight\relax
+ \relax
+ \kern-\dimexpr\scratchwidth+\scratchdistance\relax
+ M%
+ \glyphscale\numexpr\numericscale\MacScale*\glyphyscale/\plusthousand\relax
+ \glyph
+ yoffset \scratchoffset `c
+ \kern\MacKern\emwidth
+ \endgroup}
+
+\continueifinputfile{m-gimmicks.mkxl}
+
+% Question on mailing list:
+
+\chardef\MacAnulty = \privatecharactercode{MacAnulty}
+
+\startsetups [box:mcanulty:\number\MacAnulty]
+ \Mac Anulty
+\stopsetups
+
+\registerboxglyph category {mcanulty} unicode \MacAnulty \relax
+
+\startluacode
+ fonts.handlers.otf.addfeature {
+ name = "mcanulty",
+ type = "ligature",
+ nocheck = true,
+ data = {
+ -- [\number\MacAnulty] = {
+ -- [fonts.constructors.privateslots.MacAnulty] = {
+ [fonts.helpers.privateslot("MacAnulty")] = {
+ "M", "c", "A", "n", "u", "l", "t", "y",
+ },
+ }
+ }
+\stopluacode
+
+\definefontfeature[whatever][default][box=mcanulty,mcanulty=yes]
+\definefontfeature[default][default][box=mcanulty,mcanulty=yes]
+
+\startTEXpage [offset=10dk]
+% \def\Test#1{%
+% \begingroup
+% #1%
+% \dostepwiserecurse{5}{8}{1}{
+% \def\MacScale{.##1}%
+% \Mac Anulty
+% \par
+% }
+% \endgroup
+% }
+% \Test\tf
+% \Test\bf
+% \Test\it
+% \Test\sl
+% \Test\bfb
+% \def\MacScale{.6}
+% \def\MacKern {-.1}
+% \Mac Anulty
+
+{\definedfont[Serif*whatever] McAnulty\quad \MacAnulty\par}
+{\definedfont[SerifBold*whatever] McAnulty\quad \MacAnulty\par}
+
+{\tf McAnulty\quad \MacAnulty\par}
+{\bf McAnulty\quad \MacAnulty\par}
+
+\stopTEXpage
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-gnuplot.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/m-gnuplot.mkxl
index e844edd1bb3..e844edd1bb3 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-gnuplot.mkxl
+++ b/Master/texmf-dist/tex/context/modules/mkxl/m-gnuplot.mkxl
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/m-json.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/m-json.mkxl
new file mode 100644
index 00000000000..893abbe753a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/m-json.mkxl
@@ -0,0 +1,92 @@
+%D \module
+%D [ file=m-json,
+%D version=2022.04.11, % 2012.08.03,
+%D title=\CONTEXT\ Modules,
+%D subtitle=Json,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\startmodule [json]
+
+\registerctxluafile{util-jsn}{}
+\registerctxluafile{util-tbs}{}
+
+% \def\u#1#2#3#4{\cldcontext{utf.char(0x#1#2#3#4)}}
+
+\startluacode
+
+ local tablestore = utilities.tablestore
+ local field = tablestore.field
+
+ interfaces.implement {
+ name = "loadtable",
+ actions = tablestore.load,
+ arguments = { "optional", "optional" },
+ public = true,
+ protected = true,
+ }
+
+ interfaces.implement {
+ name = "tablefield",
+ actions = function(namespace,name)
+ local data = field(namespace,name)
+ if data then
+ context(data)
+ end
+ end,
+ arguments = "2 arguments",
+ public = true,
+ protected = true,
+ }
+
+ interfaces.implement {
+ name = "tablefielddefault",
+ actions = function(namespace,name,default)
+ local data = field(namespace,name,default)
+ if data then
+ context(data)
+ end
+ end,
+ arguments = "3 arguments",
+ public = true,
+ }
+
+ local replace = lpeg.replacer("@","%%")
+ local lpegmatch = lpeg.match
+
+ interfaces.implement {
+ name = "tableformatted",
+ actions = function(namespace,name,fmt)
+ local data = field(namespace,name)
+ if data then
+ context(lpegmatch(replace,fmt),data)
+ end
+ end,
+ arguments = "3 arguments",
+ public = true,
+ }
+
+ interfaces.implement {
+ name = "tablelength",
+ actions = { tablestore.length, context },
+ arguments = "2 arguments",
+ public = true,
+ }
+
+ utilities.json.field = tablestore.field
+ utilities.json.loaded = tablestore.loaded
+ utilities.json.length = tablestore.length
+
+\stopluacode
+
+\let\loadjsonfile \loadtable
+\let\jsonfield \tablefield
+\let\jsonfielddefault \tablefielddefault
+\let\jsonlength \tablelength
+
+\stopmodule
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/m-mathfun.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/m-mathfun.mkxl
new file mode 100644
index 00000000000..8c956274c0b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/m-mathfun.mkxl
@@ -0,0 +1,233 @@
+%D \module
+%D [ file=m-mathfun,
+%D version=2021.02.20,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=Wried Math Stuff,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Occasionaly some experiment results in some weird feature. It doesn't make sense
+%D to make this core functionality but if also makes no sense to throw it away. By
+%D making it a module the user can decide. It's actually an example of abusing a
+%D \LUA\ interfacing mechanism that is meant for something else.
+
+\ifdefined\compute \else
+ \permanent\protected\def\compute{\thewithproperty\plusone}
+\fi
+
+%D At some point this will move to \type {m-mathfun.lmt}:
+
+\startluacode
+ local type, load = type, load
+ local gmatch = string.gmatch
+
+ local xmath = xmath
+ local xcomplex = xcomplex
+ local xdecimal = xdecimal
+
+ local context = context
+ local ctx_mfunction = context.mfunctionlabeltext
+
+ local scanoptional = tokens.scanners.optional
+ local scanargument = tokens.scanners.argument
+
+ local createtoken = tokens.create
+ local defined = tokens.defined
+
+ local implement = interfaces.implement
+
+ local compute_code = 1
+
+ local function smart(what,name,kind)
+ if what == "value" or what == compute_code then
+ local temp = scanoptional()
+ if temp and temp ~= "" then
+ temp = "%" .. temp
+ else
+ temp = "%.6N"
+ end
+ if kind == "constant" then
+ context(temp,math[name])
+ else
+ local code = scanargument()
+ local func = load("return "..name.."("..code..")","mathfunction","t",math)
+ if type(func) == "function" then
+ context(temp,func())
+ else
+ context(code)
+ end
+ end
+ elseif kind == "constant" then
+ -- context[name]() -- recursion
+ name = "normal"..name
+ if defined(name) then
+ context(createtoken(name))
+ else
+ context(name)
+ end
+ else
+ ctx_mfunction(name)
+ end
+ end
+
+ local template = { name = false, usage = "value", public = true, protected = true, actions = false, overload = true }
+
+ local function install(str,kind)
+ for name in gmatch(str,"[^ ,]+") do
+ template.name = name
+ template.actions = function(what) smart(what,name,kind) end
+ implement(template)
+ end
+ end
+
+ local function mathexpr()
+ local temp = scanoptional()
+ local code = scanargument()
+ local func = load("return " .. code,"mathexpr","t",xmath)
+ if type(func) == "function" then
+ if temp and temp ~= "" then
+ temp = "%" .. temp
+ else
+ temp = "%.6N"
+ end
+ context(temp,func())
+ else
+ context(code)
+ end
+ end
+
+ local tostring = xdecimal.tostring
+ local toengstring = xdecimal.toengstring -- todo
+
+ local function decimalexpr()
+ local temp = scanoptional()
+ local code = scanargument()
+ local func = load("return " .. code,"decimalexpr","t",xdecimal)
+ if type(func) == "function" then
+ local result = tostring(func())
+ if temp and temp ~= "" then
+ context("%"..temp,result)
+ else
+ context(result)
+ end
+ else
+ context(code)
+ end
+ end
+
+ local topair = xcomplex.topair
+
+ local function complexexpr()
+ local temp = scanoptional()
+ local code = scanargument()
+ local func = load("return " .. code,"complexexpr","t",xcomplex)
+ if type(func) == "function" then
+ -- local result = tostring(func())
+ -- if temp and temp ~= "" then
+ -- context("%"..temp,result)
+ -- else
+ -- context(result)
+ -- end
+ if temp and temp ~= "" then
+ temp = "%" .. temp
+ else
+ temp = "%.6N + %.6Ni"
+ end
+ local result = func()
+ context(temp,topair(result))
+ else
+ context(code)
+ end
+ end
+
+ implement {
+ name = "registermathfunction",
+ public = true,
+ protected = true,
+ actions = install,
+ arguments = { "optional", "optional" },
+ }
+
+ implement {
+ name = "mathexpr",
+ public = true,
+ actions = mathexpr,
+ }
+
+ implement {
+ name = "decimalexpr",
+ public = true,
+ actions = decimalexpr,
+ }
+
+ implement {
+ name = "complexexpr",
+ public = true,
+ actions = complexexpr,
+ }
+
+ -- install("sind cosd tand sin cos tan")
+ -- install("sqrt")
+\stopluacode
+
+\pushoverloadmode
+
+ \ifdefined\normalpi \else\let\normalpi\pi \fi
+
+ \registermathfunction[sind,cosd,tand,sin,cos,tan]
+ \registermathfunction[sqrt]
+ \registermathfunction[pi][constant]
+
+\popoverloadmode
+
+\continueifinputfile{m-mathfun.mkxl}
+
+% \pushoverloadmode
+% \let\normalpi\pi
+% \registermathfunction[sind,cosd,tand,sin,cos,tan]
+% \registermathfunction[sqrt]
+% \registermathfunction[pi][constant]
+% \popoverloadmode
+
+\usemodule[scite] \setupbodyfont[dejavu] \setuplayout[tight] \setuppapersize[A5]
+
+% \mainlanguage[es]
+
+\starttext
+
+\startbuffer
+$ \sin (x) = \luaexpr {math.sin(math.pi/2)} $
+$ \sin (x) = \luaexpr [.4N] {math.sin(math.pi/2)} $
+$ \sin (x) = \the\sin {pi/2} $
+$ \sind(x) = \luaexpr [.4N] {math.sind(120)} $
+$ \sind(x) = \the\sind[.4N] {120} $
+$ \sqrt(x) = \luaexpr {math.sqrt(2)} $
+$ \sqrt(x) = \luaexpr [.6N] {math.sqrt(2)} $
+$ \sqrt(x) = \the\sqrt {2} $
+$ \sqrt(x) = \the\sqrt[.3N] {2} $
+$ \sqrt(x) = \compute\sqrt[.3N] {2} $
+$ \sind(x) = \luaexpr [.4N] {math.pi} $
+$ \pi = \compute\pi[.4N] $
+$ \pi = \mathexpr[.40N]{pi} $
+$ \pi = \mathexpr[.80N]{sqrt(11)} $
+$ \pi = \decimalexpr[.80N]{sqrt(11)} $
+$ \pi = \decimalexpr{sqrt(11)} $
+$ c = \complexexpr{123 + new(456,789)} $
+\stopbuffer
+
+Take your choice:
+
+\typebuffer[option=TEX]
+
+And get:
+
+\startlines
+ \getbuffer
+\stoplines
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/m-oldmath.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/m-oldmath.mkxl
new file mode 100644
index 00000000000..db223b2d337
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/m-oldmath.mkxl
@@ -0,0 +1,144 @@
+%D \module
+%D [ file=m-oldmath,
+%D version=2022.06.17,
+%D title=Math,
+%D subtitle=Fallback to old stuff,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is therefore copyrighted
+%D by \PRAGMA. See mreadme.pdf for details.
+
+%D For the \type {\over} die|-|hards (for this occasion I checked out Outlaw Vern's
+%D updated review on that movie):
+
+\unprotect
+
+\mathgroupingmode \zerocount
+
+\permanent\protected\def\eqalign#1% rather plain, is this used at all ...
+ {\dontleavehmode
+ \mskip\thinmuskip\vcenter\bgroup % \vcenter \s!class \mathwrappercode \bgroup
+ \mathsurround\zeropoint % \math_eqalign_set_defaults
+ \ialign
+ {\strut
+ \hfil
+ \mathbeginclass\mathordcode
+ \mathendclass \mathordcode
+ \startforceddisplaymath\aligncontent\stopforceddisplaymath
+ \aligntab
+ \mathbeginclass\mathordcode
+ \mathendclass \mathordcode
+ \startforceddisplaymath\aligncontent\stopforceddisplaymath
+ \hfil
+ \crcr
+ #1%
+ \crcr}%
+ \egroup\mskip\thinmuskip} % \egroup
+
+%D Obsolete:
+
+% \permanent\protected\def\displaylines#1%
+% {\the\mathdisplayaligntweaks
+% \tabskip\zeroskip
+% \halign
+% {\hbox to \displaywidth{%
+% \normalstartimath\tabskip\zeroskip\everycr\emptytoks\hfil\displaystyle\alignmark\alignmark\hfil\normalstopimath}\crcr
+% #1\crcr}}
+
+%D no longer defined:
+
+% \permanent\def\ialign % initialized \halign, to be used grouped!
+% {\everycr\emptytoks
+% \tabskip\zeroskip
+% \halign}
+%
+% \permanent\def\oalign#1%
+% {\leavevmode % plain tex uses this
+% \vtop
+% {\baselineskip\zeroskip
+% \lineskip.25\exheight
+% \ialign{\alignmark\alignmark\crcr#1\crcr}}}
+%
+% \permanent\def\ooalign % chars over each other
+% {\lineskiplimit-\maxdimen
+% \oalign}
+
+%D More old plain stuff:
+
+\permanent\protected\def\buildrel#1\over#2%
+ {\mathrel{\mathop{\kern\zeropoint#2}\limits^{#1}}}
+
+\permanent\protected\def\math_openup
+ {\afterassignment\math_openup_indeed\scratchdimen}
+
+\aliased\let\math_closeup\relax
+
+\def\math_openup_indeed
+ {\enforced\permanent\protected\edef\math_closeup
+ {\lineskip \the\lineskip
+ \baselineskip \the\baselineskip
+ \lineskiplimit\the\lineskiplimit
+ \relax}%
+ \advanceby\lineskip \scratchdimen
+ \advanceby\baselineskip \scratchdimen
+ \advanceby\lineskiplimit\scratchdimen}
+
+\permanent\protected\def\openup {\math_openup } % the low level ones are used elsewhere
+\permanent\protected\def\closeup{\math_closeup} % the low level ones are used elsewhere
+
+%D Who knows:
+
+\permanent\protected\def\choose{\atopwithdelims()} % used in korean test file, has to go
+\permanent\protected\def\brack {\atopwithdelims[]}
+\permanent\protected\def\brace {\atopwithdelims\{\}}
+
+%D We have better ways:
+
+\permanent\protected\def\cases#1%
+ {\left\{%
+ \mskip\thinmuskip
+ \vcenter
+ {\normalbaselines
+ \mathsurround\zeropoint
+ \ialign{%
+ \normalstartimath\alignmark\alignmark\hfil\normalstopimath
+ \aligntab
+ \quad\alignmark\alignmark\hfil
+ \crcr
+ #1%
+ \crcr}}%
+ \right.}
+
+\permanent\protected\def\matrix#1%
+ {\emptyhbox
+ \mskip\thinmuskip
+ \vcenter
+ {\normalbaselines
+ \mathsurround\zeropoint
+ \ialign{%
+ \hfil\normalstartimath\alignmark\alignmark\normalstopimath\hfil
+ \aligntab
+ \aligntab
+ \quad\hfil\normalstartimath\alignmark\alignmark\normalstopimath\hfil
+ \crcr
+ \mathstrut
+ \crcr
+ \noalign{\kern-\baselineskip}
+ #1\crcr
+ \mathstrut
+ \crcr
+ \noalign{\kern-\baselineskip}}}%
+ \mskip\thinmuskip}
+
+\permanent\protected\def\pmatrix#1%
+ {\left(\matrix{#1}\right)}
+
+\permanent\protected\def\root#1\of% #2%
+ %{\rootradical{#1}} % {#2}
+ {\Uradical \zerocount "221A{#1}} % {#2}
+
+\protect
+
+\endinput
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/m-openstreetmap.lmt b/Master/texmf-dist/tex/context/modules/mkxl/m-openstreetmap.lmt
new file mode 100644
index 00000000000..7974f216077
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/m-openstreetmap.lmt
@@ -0,0 +1,977 @@
+if not modules then modules = { } end modules ['m-openstreetmap'] = {
+ version = 1.001,
+ comment = "companion to m-openstreetmap.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local sin, cos, floor, ceil = math.sin, math.cos, math.floor, math.ceil
+local formatters = string.formatters
+local concat, tohash, sortedhash, setmetatableindex, insert = table.concat, table.tohash, table.sortedhash, table.setmetatableindex, table.insert
+local xmlcollected, xmlparent, xmlfirst, xmlfilter = xml.collected, xml.parent, xml.first, xml.filter
+local P, S, Cs, lpegmatch = lpeg.P, lpeg.S, lpeg, lpeg.match
+
+local openstreetmap = { }
+moduledata.openstreetmap = openstreetmap
+
+local report = logs.reporter("openstreetmap")
+
+-- At one of the bachotex meetings Mojca and I sat down to render the bachotek camp site
+-- as available in openstreetmap. Of course that was a limited setup and after figuring
+-- out some details it went well. Of course we used metapost.
+--
+-- Years later in 2021 on the mailing list there was some discussion on country outlines
+-- and disappointed by the quality of what was referred to I remembered the openstreetmap
+-- adventure. I found that I could export my hometown from the web page so I started from
+-- that: just stepwise seeing what 'ways' passed and assigning them colors. Just as with
+-- the bachotex drawing.
+--
+-- Then I went searching for what tags actually were available and ran into:
+--
+-- https://github.com/openstreetmap/osm2pgsql/blob/master/docs/lua.md
+--
+-- I'm not sure where the script is used, and there are dead links on these pages but some
+-- information can be found in that file so I could combine our findings with these. There
+-- is a whole infrastructure out there with impressive machinery, style sheet generation
+-- etc. but we don't need that here. Also, we don't need to play routes.
+--
+-- Colors are one thing (not too hard with a k/v mapping), but a nest hurdle is to decide
+-- what is a polygon. Actually I found that just checking on something being closed is
+-- rather ok. There are a few extra ones. But we can also use the list in the file mentioned.
+-- We probably need to check it occasionally with the original, although it looks quite
+-- stable.
+
+local polygons = tohash {
+ "abandoned:aeroway", "abandoned:amenity", "abandoned:building",
+ "abandoned:landuse", "abandoned:power", "aeroway", "allotments",
+ "amenity", "area:highway", "craft", "building", "building:part", "club",
+ "golf", "emergency", "harbour", "healthcare", "historic", "landuse",
+ "leisure", "man_made", "military", "natural", "office", "place", "power",
+ "public_transport", "shop", "tourism", "water", "waterway", "wetland",
+
+ -- "bridge",
+}
+
+-- The amenity tag is sort of overloading the main tag so we put it in the main
+-- hash. This might change.
+--
+-- The stacking order is important and we just started with processing the tags
+-- in a certain order. However, in \LUAMETATEX\ we can now use stacking so that
+-- makes for a nice test. At the cost of a bit more metapost code and conversion
+-- time we can use that. Anyway, this is the list we use and it's an adaption
+-- from the bachitex one.
+
+local order = {
+ "landuse",
+ "leisure",
+ "natural",
+ -- "geological",
+
+ "water",
+ "amenity",
+ "building",
+ "barrier",
+ "man_made",
+ "bridge",
+
+ "historic",
+ "military",
+
+ -- "office",
+ -- "craft",
+
+ -- "emergency",
+ -- "healthcare",
+ -- "place",
+ -- "power",
+ -- "shop",
+ -- "sport",
+ -- "telecom",
+
+ -- "publictransport",
+
+ "waterway",
+ "highway",
+ "railway",
+ "aeroway",
+ "aerialway",
+
+ -- "tourism",
+ "boundary", -- overlaps ! not okay for hasselt.osm
+ -- "route",
+}
+
+-- From the mentioned lua file we get the stacking (funny numbers are used):
+
+-- In Hasselt we have a combination, highway should win :
+--
+-- <tag k="bridge" v="yes"/>
+-- <tag k="highway" v="footway"/>
+
+local stacking = {
+ highway = {
+ motorway = 180,
+ trunk = 170,
+ primary = 160,
+ secondary = 150,
+ tertiary = 140,
+ residential = 130,
+ unclassified = 130,
+ road = 130,
+ living_street = 120,
+ pedestrian = 110,
+ raceway = 100,
+ motorway_link = 140,
+ trunk_link = 130,
+ primary_link = 120,
+ secondary_link = 110,
+ tertiary_link = 100,
+ service = 150,
+ track = 110,
+ path = 100,
+ footway = 100,
+ bridleway = 100,
+ cycleway = 100,
+ steps = 190,
+ platform = 190,
+ },
+ railway = {
+ rail = 140,
+ subway = 120,
+ narrow_gauge = 120,
+ light_rail = 120,
+ funicular = 120,
+ preserved = 120,
+ monorail = 120,
+ miniature = 120,
+ turntable = 120,
+ tram = 110,
+ disused = 100,
+ construction = 100,
+ platform = 190,
+ },
+ aeroway = {
+ runway = 160,
+ taxiway = 150,
+ },
+ boundary = {
+ administrative = 0,
+ },
+
+ -- bridge = {
+ -- yes = 103,
+ -- movable = 102,
+ -- viaduct = 103,
+ -- },
+}
+
+setmetatableindex(stacking,function(t,k)
+ local v = setmetatableindex(function(t,k)
+ t[k] = false return false
+ end)
+ t[k] = v
+ return v
+end)
+
+-- reservoir_covered: @ bachotex
+
+local colors = {
+
+ -- these concern details:
+
+ amenity = {
+ arts_centre = true,
+ bar = true,
+ bicycle_parking = true,
+ college = true,
+ courthouse = true,
+ fountain = true,
+ hospital = true,
+ kindergarten = true,
+ marketplace = true,
+ parking = true,
+ parking_space = true,
+ pharmacy = true,
+ place_of_worship = true,
+ police = true,
+ restaurant = true,
+ school = true,
+ shower = true,
+ social_facility = true,
+ toilets = true,
+ townhall = true,
+
+ -- university = true, -- no, it will mark all red .. maybe some other color so we need stacking
+
+ -- atm = true,
+ bank = true,
+ -- bbq = true,
+ bicycle_parking = true,
+ bicycle_repair_station = true,
+ cafe = true,
+ -- car_sharing = true,
+ car_wash = true,
+ -- charging_station = true,
+ childcare = true,
+ clinic = true,
+ -- clock = true,
+ clubhouse = true,
+ college = true,
+ community_centre = true,
+ -- compressed_air = true,
+ computer_lab = true,
+ -- drinking_water = true,
+ events_venue = true,
+ fast_food = true,
+ fire_station = true,
+ fountain = true,
+ fuel = true,
+ -- ice_cream = true,
+ library = true,
+ mailroom = true,
+ -- microwave = true,
+ -- parking_entrance = true,
+ -- parking_space = true,
+ pharmacy = true,
+ place_of_worship = true,
+ -- post_box = true,
+ post_office = true,
+ recycling = true,
+ research_institute = true,
+ -- social_facility = true,
+ theatre = true,
+ -- vending_machine = true,
+ -- waste_basket = true,
+ -- waste_disposal = true,
+ wellness_centre = true,
+
+ },
+
+ -- these are basic:
+
+ boundary = {
+ aboriginal_lands = true,
+ national_park = true,
+ protected_area = true,
+ administrative = true,
+ },
+ building = {
+ apartments = true,
+ bandstand = true,
+ cathedral = true,
+ civic = true,
+ commercial = true,
+ construction = true, -- no roadtrip
+ garage = true,
+ government = true,
+ hospital = true,
+ house = true,
+ houseboat = true,
+ hut = true,
+ industrial = true,
+ kiosk = true,
+ public = true,
+ residential = true,
+ retail = true,
+ roof = true,
+ school = true,
+ shed = true,
+ townhall = true,
+ yes = true,
+
+ university = true,
+ dormitory = true,
+ barn = true,
+ bridge = true,
+ detached = true,
+ farm_auxiliary = true,
+ grandstand = true,
+ greenhouse = true,
+ kindergarten = true,
+ parking = true,
+ stable = true,
+ stadium = true,
+ toilets = true,
+
+ },
+ emergency = {
+ designated = true,
+ destination = true,
+ no = true,
+ official = true,
+ yes = true,
+ },
+ man_made = {
+ breakwater = true,
+ bridge = true,
+ instrument = true,
+ pier = true,
+ quay = true,
+ tower = true,
+ windmill = true,
+ cutline = true,
+ embankment = true,
+ groyne = true,
+ pipeline = true,
+ },
+ natural = {
+ arete = true,
+ cliff = true,
+ earth_bank = true,
+ ridge = true,
+ sand = true,
+ scrub = true,
+ tree_row = true,
+ water = true,
+ wetland = true,
+ wood = true,
+ fault = true,
+ },
+ barrier = {
+ chain = true,
+ city_wall = true,
+ fence = true,
+ gate = true,
+ guard_rail = true,
+ hedge = true,
+ retaining_wall = true,
+ wall = true,
+ yes = true,
+ },
+ leisure = {
+ garden = true,
+ ice_rink = true,
+ marina = true,
+ park = true,
+ pitch = true,
+ playground = true,
+ slipway = true,
+ sports_centre = true,
+ track = true,
+ beach = true,
+ },
+ boat = {
+ yes = true,
+ },
+ landuse = {
+ allotments = true,
+ cemetery = true,
+ commercial = true,
+ construction = true,
+ forest = true,
+ grass = true,
+ industrial = true,
+ meadow = true,
+ residential = true,
+ static_building = true,
+ village_green = true,
+ },
+ ["bridge:support"] = {
+ pier = true,
+ },
+ golf = { -- funny, this category
+ cartpath = true,
+ hole = true,
+ path = true,
+ },
+ area = {
+ yes = true,
+ },
+ bridge = {
+ yes = true,
+ movable = true,
+ viaduct = true,
+ },
+ agricultural = {
+ yes = true,
+ no = true,
+ },
+ historic = {
+ citywalls = true,
+ },
+ tourism = {
+ yes = true,
+ },
+ power = {
+ cable = true,
+ line = true,
+ minor_line = true,
+ },
+ junction = {
+ yes = true,
+ },
+ water = {
+ river = true,
+ basin = true,
+ },
+
+ -- these indicate routes:
+
+ highway = {
+ corridor = true,
+ bridleway = true,
+ cycleway = true,
+ footway = true,
+ living_street = true,
+ motorway = true,
+ motorway_link = true,
+ path = true,
+ pedestrian = true,
+ platform = true,
+ primary = true,
+ primary_link = true,
+ raceway = true,
+ residential = true,
+ rest_area = true,
+ road = true,
+ -- secondary = true,
+ secondary_link = true,
+ service = true,
+ services = true,
+ steps = true,
+ tertiary = true,
+ tertiary_link = true,
+ track = true,
+ trunk = true,
+ trunk_link = true,
+ unclassified = true,
+ },
+ waterway = {
+ canal = true,
+ derelict_canal = true,
+ ditch = true,
+ drain = true,
+ river = true,
+ stream = true,
+ tidal_channel = true,
+ wadi = true,
+ weir = true,
+ },
+ railway = {
+ construction = true,
+ disused = true,
+ funicular = true,
+ light_rail = true,
+ miniature = true,
+ monorail = true,
+ narrow_gauge = true,
+ platform = true,
+ preserved = true,
+ rail = true,
+ station = true,
+ subway = true,
+ tram = true,
+ turntable = true,
+ },
+
+ aeroway = {
+ runway = true,
+ taxiway = true,
+ },
+ aerialway = {
+ station = true,
+ },
+}
+
+-- We use this 'inside' knowledge encoded in the mentioned script to avoid bad fills
+-- (for instance polygons can be unconnected and unordered). We define the table a bit
+-- different.
+
+local forcedlines = {
+ golf = { "cartpath", "hole", "path" },
+ emergency = { "designated", "destination", "no", "official", "yes" },
+ historic = { "citywalls" },
+ leisure = { "track", "slipway" },
+ man_made = { "breakwater", "cutline", "embankment", "groyne", "pipeline" },
+ natural = { "cliff", "earth_bank", "tree_row", "ridge", "arete", "fault" },
+ power = { "cable", "line", "minor_line" },
+ tourism = { "yes"},
+ waterway = { "canal", "derelict_canal", "ditch", "drain", "river", "stream", "tidal_channel", "wadi", "weir" },
+}
+
+do
+
+ local function never(t,k) t[k] = false return false end
+
+ for k, v in next, forcedlines do
+ forcedlines[k] = setmetatableindex(tohash(v),never)
+ end
+
+ setmetatableindex(forcedlines,function(t,k)
+ local v = setmetatableindex(never)
+ t[k] = v
+ return v
+ end)
+
+end
+
+-- For fast checking we apply the usual context tricks:
+
+
+for k, v in next, colors do
+ for kk, vv in next, v do
+ v[kk] = "osm:" .. k .. ":" .. kk
+ end
+end
+
+-- We draw and fill but sometimes we do both:
+
+local lines = {
+ amenity = true,
+ building = true,
+ man_made = true,
+ boat = true,
+}
+
+-- When checking labels for a while I had a blacklist of tags (keys) but
+-- dropped that when most was done. So, we're now ready for the real deal:
+
+-- this only works for positive numbers
+
+local f_f_degree_to_str = formatters["%d°%d’%.0f”"]
+
+local function f_degree_to_str(num)
+ local deg = floor(num)
+ num = (num - deg) * 60
+ local min = floor(num)
+ num = (num - min) * 60
+ local sec = num
+ return f_f_degree_to_str(deg,min,sec)
+end
+
+-- local f_pattern = formatters["/osm/(way|relation)[@visible='true']/tag[@k='%s']"]
+local f_pattern = formatters["/osm/(way|relation)[@visible!='false']/tag[@k='%s']"]
+local f_way = formatters["/osm/way[@id='%s']"]
+local f_relation = formatters["/osm/relation[@id='%s']"]
+
+-- We could reuse paths and concat 0,n in the call but when testing it the gain was
+-- not much so I went for readability.
+
+local f_draw = formatters['D %--t W "%s";']
+local f_fill = formatters['F %--t--C W "%s";']
+local f_both = formatters['P := %--t--C; F P W "%s"; D P W "white" L 2;']
+local f_draw_s = formatters['D %--t W "%s" L %s;']
+local f_fill_s = formatters['F %--t--C W "%s" L %s;']
+local f_both_s = formatters['P := %--t--C; F P W "%s"; D P W "white" L %s;']
+
+local f_nodraw = formatters['ND %--t;']
+local f_nofill = formatters['NF %--t--C;']
+local f_nodraw_s = formatters['ND %--t;']
+local f_nofill_s = formatters['NF %--t--C;']
+
+local f_background = formatters['F %--t -- C W "osm:background";']
+local f_bounds = formatters['setbounds currentpicture to %--t--C withstacking (0,250);']
+local f_clipped = formatters['clip currentpicture to %--t--C withstacking (0,250);']
+
+-- For now no labels are printed, also because that's now what we use this for. At
+-- some point I will provide some hooks to put text at coordinates.
+
+-- local f_draw_p = formatters["path p ; p := %--t ; D p W %s;"]
+-- local f_fill_p = formatters["path p ; p := %--t -- C ; F p W %s;"]
+-- local f_textext = formatters['draw (textext("\\bf %s") scaled 0.35) shifted center p withcolor white;']
+
+-- Grids were also part of the original code, so I kept that. It's done a bit more
+-- efficient by using a single path.
+
+local f_draw_grid_b = formatters['nodraw %--t L 100;']
+local f_draw_grid_e = formatters['dodraw origin dashed %s withcolor "osm:grid" withpen pencircle scaled %N L 100;']
+local f_label_lat = formatters['label.urt((textext("\\infofont\\strut %s")), %s shifted (3,0)) withcolor white L 100;']
+local f_label_lon = formatters['label.top((textext("\\infofont\\strut %s")), %s shifted (0,3)) withcolor white L 100;']
+
+local beginmp = [[
+ begingroup ;
+ pickup pencircle scaled 1 ;
+ save P ; path P ;
+ save D ; let D = draw ;
+ save F ; let F = fill ;
+ save C ; let C = cycle ;
+ save W ; let W = withcolor ;
+ save L ; let L = withstacking ;
+ save ND ; let ND = nodraw ;
+ save DD ; let DD = dodraw ;
+ save NF ; let NF = nofill ;
+ save DF ; let DF = dofill ;
+]]
+
+local endmp = [[
+ endgroup;
+]]
+
+local p_strip = lpeg.Cs( (
+-- (P([[<tag k="TMC:]]) * (1 - P("/>"))^1 * P("/>") * S("\n\r\t\f ")^0) / ""
+-- +
+ (
+ ( P("version") + P("changeset") + P("timestamp") + P("user") + P("uid") )
+ * P('="') * (1-P('"'))^0 * P('"')
+ ) / ""
+ + P(">") * (S("\n\r\t\f ")^1 / "") * P("<")
+ + P('visible="true"') / ""
+ + P(1)
+)^1 )
+
+function openstreetmap.convert(specification)
+
+ local starttime = os.clock()
+ local filename = specification.filename
+
+ if not io.exists(filename) then
+ return
+ end
+
+ report("processing file %a",filename)
+
+ -- we can consider stripping crap first
+
+ -- local root = xml.load(filename)
+
+ local root = io.loaddata(filename)
+ local olds = #root
+ root = lpegmatch(p_strip,root)
+ local news = #root
+
+ report("original size %i bytes, stripped down to %i bytes",olds,news)
+
+ root = xml.convert(root)
+
+ if root.error then
+ report("error in xml",olds,news)
+ return
+ else
+ report("xml data loaded")
+ end
+ local bounds = xmlfirst(root,"/osm/bounds")
+ if not bounds then
+ return
+ end
+
+ local usercolors = specification.used
+ local usedcolors = table.copy(colors)
+
+ if usercolors then
+ for k, v in next, usercolors do
+ local u = usedcolors[k]
+ if not u then
+ -- error
+ elseif v == false then
+ usedcolors[k] = false
+ -- for k in next, u do
+ -- u[k] = false
+ -- end
+ elseif type(v) == "string" then
+ for k in next, u do
+ u[k] = v
+ end
+ elseif type(v) == "table" then
+ for kk, vv in next, v do
+ if vv == false then
+ u[kk] = false
+ elseif type(vv) == "string" then
+ u[kk] = vv
+ end
+ end
+ end
+ end
+ end
+
+ -- inspect(usedcolors)
+
+ local minlat = bounds.at.minlat
+ local minlon = bounds.at.minlon
+ local maxlat = bounds.at.maxlat
+ local maxlon = bounds.at.maxlon
+ local midlat = 0.5 * (minlat + maxlat)
+ local deg_to_rad = math.pi / 180.0
+ local scale = 3600 -- vertical scale: 1" = 1cm
+
+ -- local function f_pair(lon, lat)
+ -- return formatters("(%.3Ncm,%.3Ncm)", (lon - minlon) * scale * cos(midlat * deg_to_rad), (lat-minlat) * scale)
+ -- end
+
+ local f_f_pair = formatters["(%.3Ncm,%.3Ncm)"]
+
+ local function f_pair(lon, lat)
+ return f_f_pair((lon - minlon) * scale * cos(midlat * deg_to_rad), (lat-minlat) * scale)
+ end
+
+ local rendering = table.tohash(order)
+ local coordinates = { }
+ local ways = { }
+ local result = { }
+ local r = 0
+ local done = { }
+ local missing = false -- setmetatableindex("table")
+ local layers = { }
+ local areas = { }
+
+ for c in xmlcollected(root,"/osm/node") do
+ local a = c.at
+ coordinates[a.id] = a
+ end
+
+ for c in xmlcollected(root,"/osm/way") do
+ ways[c.at.id] = c
+ end
+
+ for c in xml.collected(root,"tag[@k='area']") do
+ areas[c] = c.at.v
+ end
+
+ for c in xml.collected(root,"tag[@k='layer']") do
+ layers[c] = c.at.v
+ end
+
+ -- Collecting is more a private option. It doesn't save much on the output
+ -- but looks better with transparency, which makes no sense using anyway.
+
+ local collected = specification.collect and setmetatableindex(function(t,k)
+ local v = setmetatableindex(function(t,k)
+ local v = {
+ draw = setmetatableindex("table"),
+ fill = setmetatableindex("table"),
+ }
+ t[k] = v
+ return v
+ end)
+ t[k] = v
+ return v
+ end) or false
+
+ local function drawshapes(what,order)
+
+ -- see bachotex rendering for an example
+ -- also layer and polygon
+
+ function xml.expressions.osm(k)
+ return usedcolors[k]
+ end
+
+ local function getcolor(r)
+ local t = xmlfirst(r,"/tag[osm(@k)]")
+ if t then
+ local at = t.at
+ local v = at.v
+ if v ~= "no" then
+ local k = at.k
+ local col = usedcolors[k][v]
+ -- we need an example: if layers[r] then print(layers[r]) end
+ if col then
+ -- todo : trace colors and stacking
+ return k, col, lines[k], stacking[k][v], forcedlines[k][v]
+ elseif missing then
+ missing[k][v] = (missing[k][v] or 0) + 1
+ end
+ end
+ end
+ end
+
+ local function addpath(r, p, n)
+ -- if done[r] then
+ -- print("AGAIN")
+ -- else
+ for c in xmlcollected(r,"/nd") do
+ local coordinate = coordinates[c.at.ref]
+ if coordinate then
+ n = n + 1 p[n] = f_pair(coordinate.lon, coordinate.lat)
+ end
+ end
+ -- done[r] = true
+ -- end
+ return p, n
+ end
+
+ local checkpath = collected and
+
+ function(parent,p,n)
+ local what, color, both, stacking, forced = getcolor(parent)
+ if what and rendering[what] then
+ local where = collected[stacking or order]
+ if not polygons[what] or forced or areas[parent] == "no" then
+ insert(where[color] .draw, f_nodraw(p))
+ elseif both then
+ insert(where[color] .fill, f_nofill(p))
+ insert(where["white"].draw, f_nodraw(p))
+ else
+ insert(where[color] .fill, f_nofill(p))
+ end
+ end
+ end
+
+ or
+
+ function(parent,p,n)
+ local what, color, both, stacking, forced = getcolor(parent)
+ if what and rendering[what] then
+ r = r + 1
+ -- if not stacking then
+ -- stacking = order
+ -- end
+ if not polygons[what] or forced or areas[parent] == "no" then
+ result[r] = stacking and f_draw_s(p,color,stacking) or f_draw(p,color)
+ elseif both then
+ result[r] = stacking and f_both_s(p,color,stacking) or f_both(p,color)
+ else
+ result[r] = stacking and f_fill_s(p,color,stacking) or f_fill(p,color)
+ end
+ end
+ end
+
+ -- There are ways and relations. Relations can have members that point to
+ -- ways but also relations. My impression is that we can stick to way members
+ -- but I'll deal with that when needed.
+
+ for c in xmlcollected(root,f_pattern(what)) do
+ local parent = xmlparent(c)
+ local tag = parent.tg
+ if tag == "way" then
+ local p, n = addpath(parent, { }, 0)
+ if n > 1 then
+ checkpath(parent,p,n)
+ end
+ elseif tag == "relation" then
+ if xmlfilter(parent,"xml://tag[@k='type' and (@v='multipolygon' or @v='boundary' or @v='route')]") then
+ local what, color, both, stacking, forced = getcolor(parent)
+ if rendering[what] then
+ local p, n = { }, 0
+ for m in xmlcollected(parent,"/member[(@type='way') and (@role='outer')]") do
+ -- local f = xmlfirst(root,f_way(m.at.ref))
+ local f = ways[m.at.ref]
+ if f then
+ p, n = addpath(f,p,n)
+ end
+ end
+ if n > 1 then
+ checkpath(parent,p,n)
+ end
+ end
+ else
+ for m in xmlcollected(parent,"/member[@type='way']") do
+ -- local f = xmlfirst(root,f_way(m.at.ref))
+ local f = ways[m.at.ref]
+ if f then
+ local p, n = addpath(f, { }, 0)
+ if n > 1 then
+ checkpath(parent,p,n)
+ end
+ end
+ end
+ end
+ end
+ end
+
+ end
+
+ -- As with the other latitude and longitude mapping calculations the next magick
+ -- comes from Mojca.
+
+ local function drawgrid()
+ local lat0 = ceil (3600*minlat)
+ local lat1 = floor(3600*maxlat)
+ local pen = tonumber(specification.griddot) or 1.5
+ local lat
+ local labels = { }
+ for i=lat0,lat1 do
+ lat = i/3600
+ local p = {
+ f_pair(minlon,lat),
+ f_pair(maxlon,lat),
+ }
+ r = r + 1 result[r] = f_draw_grid_b(p)
+ if i ~= lat0 and i ~= lat1 then
+ labels[#labels+1] = f_label_lat(f_degree_to_str(lat),p[1])
+ end
+ end
+
+ local lon0 = ceil (1800*minlon)*2
+ local lon1 = floor(1800*maxlon)*2
+ local lon
+ for i=lon0,lon1,2 do
+ lon=i/3600
+ local p = {
+ f_pair(lon, minlat),
+ f_pair(lon, maxlat),
+ }
+ r = r + 1 result[r] = f_draw_grid_b(p)
+ if i ~= lon0 and i ~= lon1 then
+ labels[#labels+1] = f_label_lon(f_degree_to_str(lon),p[1])
+ end
+ end
+ r = r + 1 result[r] = f_draw_grid_e("withdots", pen)
+ r = r + 1 result[r] = concat(labels)
+ end
+
+ -- We add a background first and clip later. Beware: There can be substantial bits
+ -- outside the clip path (like rivers) but because paths are not that detailed we
+ -- don't waste time on building a cycle. We could check if points are outside the
+ -- boundingbox and then use the metapost buildpath macro .. some day.
+
+ local boundary = {
+ f_pair(minlon,minlat),
+ f_pair(maxlon,minlat),
+ f_pair(maxlon,maxlat),
+ f_pair(minlon,maxlat),
+ }
+
+ r = r + 1 result[r] = beginmp
+ r = r + 1 result[r] = f_background(boundary)
+
+ -- r = r + 1 result[r] = "drawoptions (withtransparency (1,.5)) ;"
+
+ -- use stacking instead
+
+ for i=1,#order do
+ local o = order[i]
+ if usedcolors[o] then
+ drawshapes(o,i)
+ end
+ end
+
+ if specification.grid == "dots" then
+ drawgrid()
+ end
+
+ if collected then
+
+ local f_flush = formatters[') W "%s" L %s;']
+
+ for stacking, colors in sortedhash(collected) do
+ for color, bunch in next, colors do
+ local draw = bunch.draw
+ local fill = bunch.fill
+ if fill and #fill > 0 then
+ r = r + 1 result[r] = "draw image ("
+ r = r + 1 result[r] = concat(fill)
+ r = r + 1 result[r] = 'DF origin--cycle;'
+ r = r + 1 result[r] = f_flush(color,stacking) ;
+ end
+ if draw and #draw > 0 then
+ r = r + 1 result[r] = "draw image ("
+ r = r + 1 result[r] = concat(draw)
+ r = r + 1 result[r] = 'DD origin;'
+ r = r + 1 result[r] = f_flush(color,stacking+1) ;
+ end
+ end
+ end
+
+ end
+
+-- r = r + 1 result[r] = f_bounds(boundary)
+ r = r + 1 result[r] = f_clipped(boundary)
+ r = r + 1 result[r] = endmp
+
+ if missing then
+ inspect(missing)
+ end
+
+ result = concat(result)
+
+ report("%s characters metapost code, preprocessing time %0.3f seconds",#result,os.clock()-starttime)
+
+ return result
+
+end
+
+function mp.lmt_do_openstreetmap()
+ local specification = metapost.getparameterset("openstreetmap")
+ return openstreetmap.convert(specification)
+end
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/m-openstreetmap.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/m-openstreetmap.mkxl
new file mode 100644
index 00000000000..26073478046
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/m-openstreetmap.mkxl
@@ -0,0 +1,511 @@
+%D \module
+%D [ file=m-database,
+%D version=2020.07.18,
+%D title=\CONTEXT\ Modules,
+%D subtitle=Rendering Openstreetmap,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This is a follow up on something that Mojca and I did at at bachotex
+%D meeting. Some attendants had made up that map during a few years. The
+%D \CONTEXT\ group donated a map that could be mounted outside drawn by
+%D Duane and after that we decided to see if we could keep up by rendering
+%D the openstreetmap variant with \METAPOST.
+%D
+%D There are some comments in the \LUA\ file and that one might evolve over
+%D time as there is some trial and error involved. The \typ {osm} file is
+%D read in, stripped a bit, the \XML\ is analyzed and \METAPOST\ code is
+%D generated. The level of detail can be influenced.
+
+% This will change ... users are invited to come with variants.
+
+\definecolor [osm:special] [s=.25]
+
+\definecolor [osm:building:special] [r=.75]
+\definecolor [osm:building] [r=.50]
+
+\definecolor [osm:parking] [s=.25]
+\definecolor [osm:bridge] [s=.50]
+\definecolor [osm:quay] [s=.25]
+\definecolor [osm:barrier] [s=.25]
+\definecolor [osm:industrial] [s=.70]
+\definecolor [osm:residential] [s=.75]
+\definecolor [osm:cemetery] [s=.50]
+
+\definecolor [osm:university] [s=.85]
+
+\definecolor [osm:boat] [b=.25]
+
+\definecolor [osm:water] [b=.75]
+\definecolor [osm:waterway] [r=.75,g=.75]
+
+\definecolor [osm:wetland] [g=.25]
+\definecolor [osm:grass] [g=.50]
+\definecolor [osm:park] [g=.60]
+\definecolor [osm:forest] [g=.75]
+
+\definecolor [osm:sand] [y=.75]
+
+\definecolor [osm:footway] [b=.3]
+\definecolor [osm:cycleway] [b=.5]
+\definecolor [osm:path] [b=.7]
+\definecolor [osm:track] [s=.4]
+
+\definecolor [osm:bridge] [s=.25]
+\definecolor [osm:bridge:special] [s=.50]
+
+\definecolor [osm:unknown] [s=0]
+
+\definecolor [osm:background] [s=.8]
+\definecolor [osm:grid] [s=1]
+
+% We can define them global, in which case we can check for actually
+% used colors.
+
+\startbuffer[osm:colors]
+
+\definecolor[osm:aerialway:station] [osm:unknown]
+
+\definecolor[osm:aeroway:runway] [osm:unknown]
+\definecolor[osm:aeroway:taxiway] [osm:unknown]
+
+\definecolor[osm:agricultural:no] [osm:unknown]
+\definecolor[osm:agricultural:yes] [osm:unknown]
+
+\definecolor[osm:amenity:arts_centre] [osm:building:special]
+\definecolor[osm:amenity:bar] [osm:building:special]
+\definecolor[osm:amenity:bicycle_parking] [osm:parking]
+\definecolor[osm:amenity:college] [osm:building:special]
+\definecolor[osm:amenity:courthouse] [osm:building:special]
+\definecolor[osm:amenity:fountain] [osm:building:special]
+\definecolor[osm:amenity:hospital] [osm:building:special]
+\definecolor[osm:amenity:kindergarten] [osm:building:special]
+\definecolor[osm:amenity:marketplace] [osm:parking]
+\definecolor[osm:amenity:parking] [osm:parking]
+\definecolor[osm:amenity:parking_space] [osm:parking]
+\definecolor[osm:amenity:pharmacy] [osm:building:special]
+\definecolor[osm:amenity:place_of_worship] [osm:building:special]
+\definecolor[osm:amenity:police] [osm:building:special]
+\definecolor[osm:amenity:restaurant] [osm:building:special]
+\definecolor[osm:amenity:school] [osm:building:special]
+\definecolor[osm:amenity:shower] [osm:building:special]
+\definecolor[osm:amenity:social_facility] [osm:building:special]
+\definecolor[osm:amenity:toilets] [osm:building:special]
+\definecolor[osm:amenity:townhall] [osm:building:special]
+
+\definecolor[osm:amenity:university] [osm:university] % what color ... (obscures buildings)
+
+\definecolor[osm:amenity:bank] [osm:building:special]
+\definecolor[osm:amenity:bicycle_parking] [osm:building:special]
+\definecolor[osm:amenity:bicycle_repair_station] [osm:building:special]
+\definecolor[osm:amenity:cafe] [osm:building:special]
+\definecolor[osm:amenity:car_wash] [osm:building:special]
+\definecolor[osm:amenity:childcare] [osm:building:special]
+\definecolor[osm:amenity:clinic] [osm:building:special]
+\definecolor[osm:amenity:clubhouse] [osm:building:special]
+\definecolor[osm:amenity:college] [osm:building:special]
+\definecolor[osm:amenity:community_centre] [osm:building:special]
+\definecolor[osm:amenity:computer_lab] [osm:building:special]
+\definecolor[osm:amenity:events_venue] [osm:building:special]
+\definecolor[osm:amenity:fast_food] [osm:building:special]
+\definecolor[osm:amenity:fire_station] [osm:building:special]
+\definecolor[osm:amenity:fountain] [osm:building:special]
+\definecolor[osm:amenity:fuel] [osm:building:special]
+\definecolor[osm:amenity:library] [osm:building:special]
+\definecolor[osm:amenity:mailroom] [osm:building:special]
+\definecolor[osm:amenity:pharmacy] [osm:building:special]
+\definecolor[osm:amenity:place_of_worship] [osm:building:special]
+\definecolor[osm:amenity:post_office] [osm:building:special]
+\definecolor[osm:amenity:recycling] [osm:building:special]
+\definecolor[osm:amenity:research_institute] [osm:building:special]
+\definecolor[osm:amenity:theatre] [osm:building:special]
+\definecolor[osm:amenity:wellness_centre] [osm:building:special]
+
+\definecolor[osm:area:yes] [osm:unknown]
+
+\definecolor[osm:barrier:chain] [osm:barrier]
+\definecolor[osm:barrier:city_wall] [osm:barrier]
+\definecolor[osm:barrier:fence] [osm:barrier]
+\definecolor[osm:barrier:gate] [osm:barrier]
+\definecolor[osm:barrier:guard_rail] [osm:barrier]
+\definecolor[osm:barrier:hedge] [osm:barrier]
+\definecolor[osm:barrier:retaining_wall] [osm:barrier]
+\definecolor[osm:barrier:wall] [osm:barrier]
+\definecolor[osm:barrier:yes] [osm:barrier]
+
+\definecolor[osm:boat:yes] [osm:boat]
+
+\definecolor[osm:boundary:aboriginal_lands] [osm:unknown]
+\definecolor[osm:boundary:administrative] [osm:unknown]
+\definecolor[osm:boundary:national_park] [osm:unknown]
+\definecolor[osm:boundary:protected_area] [osm:unknown]
+
+\definecolor[osm:bridge:movable] [osm:bridge:special]
+\definecolor[osm:bridge:viaduct] [osm:bridge]
+\definecolor[osm:bridge:yes] [osm:footway]
+
+\definecolor[osm:bridge:support:pier] [osm:special]
+
+\definecolor[osm:building:apartments] [osm:building]
+\definecolor[osm:building:bandstand] [osm:building:special]
+\definecolor[osm:building:cathedral] [osm:building]
+\definecolor[osm:building:civic] [osm:building]
+\definecolor[osm:building:commercial] [osm:building:special]
+\definecolor[osm:building:construction] [osm:building:special]
+\definecolor[osm:building:garage] [osm:building]
+\definecolor[osm:building:government] [osm:building]
+\definecolor[osm:building:hospital] [osm:building]
+\definecolor[osm:building:house] [osm:building]
+\definecolor[osm:building:houseboat] [osm:boat]
+\definecolor[osm:building:hut] [osm:building]
+\definecolor[osm:building:industrial] [osm:building:special]
+\definecolor[osm:building:kiosk] [osm:building:special]
+\definecolor[osm:building:public] [osm:building]
+\definecolor[osm:building:residential] [osm:building]
+\definecolor[osm:building:retail] [osm:building:special]
+\definecolor[osm:building:roof] [osm:building]
+\definecolor[osm:building:school] [osm:building:special]
+\definecolor[osm:building:shed] [osm:building]
+\definecolor[osm:building:townhall] [osm:building]
+\definecolor[osm:building:yes] [osm:building]
+
+\definecolor[osm:building:university] [osm:building]
+\definecolor[osm:building:dormitory] [osm:building]
+\definecolor[osm:building:barn] [osm:building]
+\definecolor[osm:building:bridge] [osm:building:special]
+\definecolor[osm:building:detached] [osm:building]
+\definecolor[osm:building:farm_auxiliary] [osm:building]
+\definecolor[osm:building:grandstand] [osm:building]
+\definecolor[osm:building:greenhouse] [osm:building:special]
+\definecolor[osm:building:kindergarten] [osm:building]
+\definecolor[osm:building:parking] [osm:building:special]
+\definecolor[osm:building:stable] [osm:building]
+\definecolor[osm:building:stadium] [osm:building:special]
+\definecolor[osm:building:toilets] [osm:building:special]
+
+\definecolor[osm:emergency:designated] [osm:unknown]
+\definecolor[osm:emergency:destination] [osm:unknown]
+\definecolor[osm:emergency:no] [osm:unknown]
+\definecolor[osm:emergency:official] [osm:unknown]
+\definecolor[osm:emergency:yes] [osm:unknown]
+
+\definecolor[osm:golf:cartpath] [osm:unknown]
+\definecolor[osm:golf:hole] [osm:unknown]
+\definecolor[osm:golf:path] [osm:unknown]
+
+\definecolor[osm:highway:bridleway] [osm:unknown]
+\definecolor[osm:highway:corridor] [osm:track]
+\definecolor[osm:highway:cycleway] [osm:cycleway]
+\definecolor[osm:highway:footway] [osm:footway]
+\definecolor[osm:highway:living_street] [osm:track]
+\definecolor[osm:highway:motorway] [osm:unknown]
+\definecolor[osm:highway:motorway_link] [osm:unknown]
+\definecolor[osm:highway:path] [osm:path]
+\definecolor[osm:highway:pedestrian] [osm:track]
+\definecolor[osm:highway:platform] [osm:unknown]
+\definecolor[osm:highway:primary] [osm:track]
+\definecolor[osm:highway:primary_link] [osm:unknown]
+\definecolor[osm:highway:raceway] [osm:unknown]
+\definecolor[osm:highway:residential] [osm:track]
+\definecolor[osm:highway:rest_area] [osm:unknown]
+\definecolor[osm:highway:road] [osm:unknown]
+\definecolor[osm:highway:secondary_link] [osm:unknown]
+\definecolor[osm:highway:service] [osm:track]
+\definecolor[osm:highway:services] [osm:unknown]
+\definecolor[osm:highway:steps] [osm:track]
+\definecolor[osm:highway:tertiary] [osm:track]
+\definecolor[osm:highway:tertiary_link] [osm:unknown]
+\definecolor[osm:highway:track] [osm:track]
+\definecolor[osm:highway:trunk] [osm:unknown]
+\definecolor[osm:highway:trunk_link] [osm:unknown]
+\definecolor[osm:highway:unclassified] [osm:track]
+
+\definecolor[osm:historic:citywalls] [osm:unknown]
+
+\definecolor[osm:junction:yes] [osm:unknown]
+
+\definecolor[osm:landuse:allotments] [osm:grass]
+\definecolor[osm:landuse:cemetery] [osm:cemetery]
+\definecolor[osm:landuse:commercial] [osm:industrial]
+\definecolor[osm:landuse:construction] [osm:industrial]
+\definecolor[osm:landuse:forest] [osm:forest]
+\definecolor[osm:landuse:grass] [osm:grass]
+\definecolor[osm:landuse:industrial] [osm:industrial]
+\definecolor[osm:landuse:meadow] [osm:grass]
+\definecolor[osm:landuse:residential] [osm:residential]
+\definecolor[osm:landuse:static_building] [osm:special]
+\definecolor[osm:landuse:village_green] [osm:forest]
+
+\definecolor[osm:leisure:beach] [osm:sand]
+\definecolor[osm:leisure:garden] [osm:park]
+\definecolor[osm:leisure:ice_rink] [osm:water]
+\definecolor[osm:leisure:marina] [osm:quay]
+\definecolor[osm:leisure:park] [osm:park]
+\definecolor[osm:leisure:pitch] [osm:special]
+\definecolor[osm:leisure:playground] [osm:special]
+\definecolor[osm:leisure:slipway] [osm:unknown]
+\definecolor[osm:leisure:sports_centre] [osm:special]
+\definecolor[osm:leisure:track] [osm:track]
+
+\definecolor[osm:man_made:breakwater] [osm:water]
+\definecolor[osm:man_made:bridge] [osm:bridge]
+\definecolor[osm:man_made:cutline] [osm:unknown]
+\definecolor[osm:man_made:embankment] [osm:unknown]
+\definecolor[osm:man_made:groyne] [osm:unknown]
+\definecolor[osm:man_made:instrument] [osm:special]
+\definecolor[osm:man_made:pier] [osm:quay]
+\definecolor[osm:man_made:pipeline] [osm:unknown]
+\definecolor[osm:man_made:quay] [osm:quay]
+\definecolor[osm:man_made:tower] [osm:special]
+\definecolor[osm:man_made:windmill] [osm:special]
+
+\definecolor[osm:natural:arete] [osm:unknown]
+\definecolor[osm:natural:cliff] [osm:unknown]
+\definecolor[osm:natural:earth_bank] [osm:unknown]
+\definecolor[osm:natural:ridge] [osm:unknown]
+\definecolor[osm:natural:sand] [osm:sand]
+\definecolor[osm:natural:scrub] [osm:forest]
+\definecolor[osm:natural:tree_row] [osm:forest]
+\definecolor[osm:natural:water] [osm:water]
+\definecolor[osm:natural:wetland] [osm:wetland]
+\definecolor[osm:natural:wood] [osm:forest]
+
+\definecolor[osm:power:cable] [osm:unknown]
+\definecolor[osm:power:line] [osm:unknown]
+\definecolor[osm:power:minor_line] [osm:unknown]
+
+\definecolor[osm:railway:construction] [osm:unknown]
+\definecolor[osm:railway:disused] [osm:unknown]
+\definecolor[osm:railway:funicular] [osm:unknown]
+\definecolor[osm:railway:light_rail] [osm:unknown]
+\definecolor[osm:railway:miniature] [osm:unknown]
+\definecolor[osm:railway:monorail] [osm:unknown]
+\definecolor[osm:railway:narrow_gauge] [osm:unknown]
+\definecolor[osm:railway:platform] [osm:unknown]
+\definecolor[osm:railway:preserved] [osm:unknown]
+\definecolor[osm:railway:rail] [osm:unknown]
+\definecolor[osm:railway:subway] [osm:unknown]
+\definecolor[osm:railway:tram] [osm:unknown]
+\definecolor[osm:railway:turntable] [osm:unknown]
+
+\definecolor[osm:tourism:yes] [osm:unknown]
+
+\definecolor[osm:water:basin] [osm:water]
+\definecolor[osm:water:river] [osm:water]
+
+\definecolor[osm:waterway:canal] [osm:waterway]
+\definecolor[osm:waterway:derelict_canal] [osm:waterway]
+\definecolor[osm:waterway:ditch] [osm:waterway]
+\definecolor[osm:waterway:drain] [osm:waterway]
+\definecolor[osm:waterway:river] [osm:waterway]
+\definecolor[osm:waterway:stream] [osm:waterway]
+\definecolor[osm:waterway:tidal_channel] [osm:waterway]
+\definecolor[osm:waterway:wadi] [osm:waterway]
+\definecolor[osm:waterway:weir] [osm:waterway]
+
+\stopbuffer
+
+\getbuffer[osm:colors]
+
+\registerctxluafile{m-openstreetmap}{autosuffix}
+
+\startMPdefinitions
+
+ presetparameters "openstreetmap" [
+ filename = "test.osm",
+ % grid = "dots",
+ griddot = 1.5,
+ ] ;
+
+ def lmt_openstreetmap = applyparameters "openstreetmap" "lmt_do_openstreetmap" enddef ;
+
+ vardef lmt_do_openstreetmap =
+ image (
+ lua.mp.lmt_do_openstreetmap() ;
+ )
+ enddef ;
+
+\stopMPdefinitions
+
+\continueifinputfile{m-openstreetmap.mkxl}
+
+\startMPpage
+ draw lmt_openstreetmap [
+% filename = "hasselt.osm"
+ filename = "e:/tmp/map.osm"
+ used = [
+ university = false,
+ ],
+ ] ;
+\stopMPpage
+
+% \startMPpage
+% draw lmt_openstreetmap [
+% filename = "e:/tmp/hulshorst.osm"
+% used = [
+% boundary = false,
+% ],
+% ] ;
+% \stopMPpage
+
+% \startMPpage
+% draw lmt_openstreetmap [
+% filename = "hasselt.osm"
+% used = [
+% boundary = false,
+% emergency = false,
+% boat = false,
+% golf = false,
+% area = false,
+% agricultural = false,
+% historic = false,
+% tourism = false,
+% power = false,
+% junction = false,
+% water = false,
+% highway = false,
+% waterway = false,
+% railway = false,
+% aeroway = false,
+% aerialway = false,
+% ]
+% ] ;
+% \stopMPpage
+
+% \startMPpage
+% draw lmt_openstreetmap [
+% filename = "hasselt.osm"
+% used = [
+% amenity = false,
+% boundary = false,
+% building = false,
+% emergency = false,
+% man_made = false,
+% natural = "magenta",
+% barrier = false,
+% leisure = "cyan",
+% bridge = false,
+% boat = false,
+% landuse = "green",
+% golf = false,
+% area = false,
+% bridge = false,
+% agricultural = false,
+% historic = false,
+% tourism = false,
+% power = false,
+% junction = false,
+% water = false,
+% highway = false,
+% waterway = false,
+% railway = false,
+% aeroway = false,
+% aerialway = false,
+% ]
+% ] ;
+% \stopMPpage
+
+% \startMPpage
+% draw lmt_openstreetmap [
+% filename = "hasselt-large.osm"
+% grid = "dots",
+% % collect = true,
+% ] ;
+% \stopMPpage
+
+% \startMPpage
+% draw lmt_openstreetmap [
+% filename = "e:/tmp/map.osm"
+% ] ;
+% \stopMPpage
+
+% \startMPpage
+% draw lmt_openstreetmap [
+% filename = "e:/tmp/map-x.osm"
+% grid = "dots",
+% griddot = 1,
+% ] ;
+% \stopMPpage
+
+% \startMPpage
+% draw lmt_openstreetmap [
+% filename = "e:/temporary/ford-collins.osm"
+% ] ;
+% \stopMPpage
+
+\stoptext
+
+% -- -- The original approaches:
+% --
+% -- local colors = {
+% -- amenity = {
+% -- arts_centre = "osm:special",
+% -- ...
+% -- }
+% -- }
+% --
+% -- local function getcolor(r)
+% -- local what, color, both
+% -- for t in xmlcollected(r,"/tag") do
+% -- local at = t.at
+% -- local k = at.k
+% -- local all = usedcolors[k]
+% -- if all then
+% -- local v = at.v
+% -- local col = all[v]
+% -- if col then
+% -- what = k
+% -- color = col
+% -- both = lines[k]
+% -- elseif missing then
+% -- missing[k][v] = (missing[k][v] or 0) + 1
+% -- end
+% -- end
+% -- if k == "amenity" then
+% -- break
+% -- end
+% -- end
+% -- return what, color, both
+% -- end
+%
+% -- -- maybe nested:
+%
+% -- for m in xmlcollected(parent,"/member[@type='relation']") do
+% -- local f = xmlfirst(root,f_relation(m.at.ref))
+% -- if f then
+% -- for m in xmlcollected(f,"/member[@type='way']") do
+% -- -- local f = xmlfirst(root,f_way(m.at.ref))
+% -- local f = ways[m.at.ref]
+% -- if f then
+% -- local p, n = addpath(f, { }, 0)
+% -- if n > 1 then
+% -- local what, color = getcolor(parent)
+% -- if what and rendering[what] then
+% -- r = r + 1
+% -- if p[1] == p[n] then
+% -- result[r] = f_fill(p,color)
+% -- else
+% -- result[r] = f_draw(p,color)
+% -- end
+% -- end
+% -- end
+% -- end
+% -- end
+% -- end
+% -- end
+%
+% -- local filename = resolvers.savers.virtual("foo",result,"mp")
+% -- context([[input "%s" ;]],filename)
+% -- context([[runscript "resolvers.cleaners.virtual('%s')" ;]],filename)
+%
+% -- context.startTEXpage()
+% -- context.startMPcode("doublefun")
+% -- context("lua.mp.fetchresult();")
+% -- context.stopMPcode()
+% -- context.stopTEXpage()
+
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/m-svg.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/m-svg.mkxl
new file mode 100644
index 00000000000..56a10197967
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/m-svg.mkxl
@@ -0,0 +1,39 @@
+%D \module
+%D [ file=m-svg,
+%D version=2022.02.18,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=SVG Helper Macros,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\protected\def\showSVGcode#1#2%
+ {\ctxlua{metapost.showsvgpage{
+ filename = "#1",
+ index = tonumber(#2),
+ method = "code"
+ }}}
+
+\protected\def\showSVGcodeG#1#2%
+ {\ctxlua{metapost.showsvgpage{
+ filename = "#1",
+ index = tonumber(#2),
+ method = "code",
+ x = 0,
+ y = 1000,
+ width = 1000,
+ height = 1000,
+ noclip = true
+ }}}
+
+\protected\def\typeSVGcode#1#2%
+ {\ctxlua{metapost.typesvgpage{
+ filename = "#1",
+ index = tonumber(#2)
+ }}}
+
+% \continueifinputfile{m-svg.mkxl}
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-system-readers.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/m-system-readers.mkxl
index a077b20a313..0f2d3275e85 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-system-readers.mkxl
+++ b/Master/texmf-dist/tex/context/modules/mkxl/m-system-readers.mkxl
@@ -51,8 +51,8 @@
\startluacode
- local createtoken = token.create
- local gobbletoken = token.gobble
+ local createtoken = tokens.create
+ local gobbletoken = tokens.gobble
local integer_value = tokens.values.integer
local marked = { }
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/m-tikz-pgfplots.tex b/Master/texmf-dist/tex/context/modules/mkxl/m-tikz-pgfplots.tex
new file mode 100644
index 00000000000..1dd06b8b221
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/m-tikz-pgfplots.tex
@@ -0,0 +1,46 @@
+%D See m-tikz.mkxl for comments.
+
+\startmodule [pgfplots]
+
+\writestatus{loading}{ConTeXt User Module / Pgfplots}
+
+\tikzinputfile{pgfplots.revision.tex}
+
+\usetikzlibrary[plotmarks]
+
+\tikzinputfile{pgfplots.code.tex}
+
+\def\pgfplotsincludegraphics[#1]#2%
+ {\externalfigure[#2][#1]}
+
+\starttikzsettings
+ \pgfkeys{/pgfplots/plot graphics/includegraphics cmd=\pgfplotsincludegraphics}
+\stoptikzsettings
+
+\unprotect
+
+\let\pgfplots@ORIG@tikz@installcommands@before@context\tikz@installcommands
+
+\def\tikz@installcommands{%
+ \pgfplots@ORIG@tikz@installcommands@before@context
+ %
+ \let\startaxis=\pgfplots@environment@axis
+ \let\stopaxis=\endpgfplots@environment@axis
+ %
+ \let\startsemilogxaxis=\pgfplots@environment@semilogxaxis
+ \let\stopsemilogxaxis=\endpgfplots@environment@semilogxaxis
+ %
+ \let\startsemilogyaxis=\pgfplots@environment@semilogyaxis
+ \let\stopsemilogyaxis=\endpgfplots@environment@semilogyaxis
+ %
+ \let\startloglogaxis=\pgfplots@environment@loglogaxis
+ \let\stoploglogaxis=\endpgfplots@environment@loglogaxis
+ %
+ \def\startpgfplotsinterruptdatabb{\pgfplotsinterruptdatabb}%
+ \def\stoppgfplotsinterruptdatabb{\endpgfplotsinterruptdatabb}%
+}
+
+\protect
+
+\stopmodule
+
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/m-tikz-pgfplotstable.tex b/Master/texmf-dist/tex/context/modules/mkxl/m-tikz-pgfplotstable.tex
new file mode 100644
index 00000000000..acc3309a1b1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/m-tikz-pgfplotstable.tex
@@ -0,0 +1,12 @@
+%D See m-tikz.mkxl for comments.
+
+\startmodule [pgfplotstable]
+
+\writestatus{loading}{ConTeXt User Module / Pgfplotstable}
+
+\usemodule[pgfplots]
+
+\tikzinputfile{pgfplotstable.code.tex}%
+
+\stopmodule
+
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/m-tikz.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/m-tikz.mkxl
new file mode 100644
index 00000000000..3d6c649d667
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/m-tikz.mkxl
@@ -0,0 +1,140 @@
+%D \module
+%D [ file=m-tikz,
+%D version=2021.07.12,
+%D title=\CONTEXT\ Extra Modules,
+%D subtitle=TIKZ support,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D A fixed variant of the t-tikz module distributed with tikz. For practical reasons
+%D per 2021 we split the module for \MKIV\ and \LMTX. (Maybe some day I'll optimize
+%D TIKZ a bit.)
+%D
+%D All these t-* modules in the tikz distribution make no sense as we can just load
+%D them here which is way cleaner. There is also some mkii filename mapping going on
+%D that is not needed on todays systems (windows has no 8.3 limitation and on unix
+%D tds finally adopted a case insensitive approach.)
+
+%D Just in case someone does a hard input ...
+
+\ifdefined\pgfdefined \endinput \fi
+\ifdefined\pgfcoredefined\endinput \fi
+
+%D ... but normally we end up here:
+
+\startmodule[tikz]
+
+\ifdefined\pdflastxpos \else
+ \unprotect
+ \frozen\overloaded\protected\def\pdflastxpos{\numexpr\clf_lastxpos\relax}
+ \frozen\overloaded\protected\def\pdflastypos{\numexpr\clf_lastypos\relax}
+ \protect
+\fi
+
+\permanent\protected\def\starttikzinput
+ {\pushoverloadmode
+ \pushcatcodetable
+ \setcatcodetable\texcatcodes
+ \pushmacro\meaning
+ \let\meaning\meaningless
+ \catcode`\@=11
+ \catcode`\|=12
+ \catcode`\!=12
+ \autoparagraphmode\zerocount}
+
+\permanent\protected\def\stoptikzinput
+ {\autoparagraphmode\plusone
+ \popcatcodetable
+ \popmacro\meaning
+ \popoverloadmode}
+
+\permanent\protected\def\tikzinputfile#1%
+ {\starttikzinput
+ \input{#1}\relax
+ \stoptikzinput}
+
+\permanent\protected\def\tikzerrormessage#1#2#3%
+ {\writestatus{#1}{#2}}
+
+% For now we need this but we need to educate the user to wrap settings in the
+% wrappers. So some day the next line will go. I need to check what commands are
+% possible outside a picture.
+
+\overloadmode\zerocount
+
+\permanent\protected\def\starttikzsettings
+ {\pushoverloadmode
+ \pushmacro\meaning
+ \let\meaning\meaningless
+ \autoparagraphmode\zerocount}
+
+\permanent\protected\def\stoptikzsettings
+ {\autoparagraphmode\plusone
+ \popmacro\meaning
+ \popoverloadmode}
+
+\permanent\protected\def\starttikzpicture
+ {\dontleavehmode
+ \hcontainer\bgroup
+ \autoparagraphmode\zerocount
+ \pushmacro\meaning
+ \let\meaning\meaningless
+ % \pushoverloadmode
+ \ifdefined\PackageError\else \let\PackageError\tikzerrormessage \fi
+ \tikzpicture}
+
+\permanent\protected\def\stoptikzpicture
+ {\endtikzpicture
+ % \popoverloadmode
+ \popmacro\meaning
+ \egroup}
+
+\let\pgfdefined \relax
+\let\pgfcoredefined\relax
+
+\tikzinputfile{pgfutil-common.tex}
+\tikzinputfile{pgfutil-context.def}
+\tikzinputfile{pgfrcs.code.tex}
+\tikzinputfile{pgfsys.code.tex}
+\tikzinputfile{pgfkeys.code.tex}
+\tikzinputfile{pgfsyssoftpath.code.tex}
+\tikzinputfile{pgfsysprotocol.code.tex}
+\tikzinputfile{pgfcore.code.tex}
+\tikzinputfile{pgffor.code.tex}
+\tikzinputfile{pgfmoduleplot.code.tex}
+\tikzinputfile{tikz.code.tex}
+
+\let\startpgfpicture \pgfpicture \let\stoppgfpicture \endpgfpicture
+\let\startpgfscope \pgfscope \let\stoppgfscope \endpgfscope
+\let\startpgflowlevelscope \pgflowlevelscope \let\stoppgflowlevelscope \endpgflowlevelscope
+\let\startpgfinterruptpath \pgfinterruptpath \let\stoppgfinterruptpath \endpgfinterruptpath
+\let\startpgfinterruptpicture \pgfinterruptpicture \let\stoppgfinterruptpicture \endpgfinterruptpicture
+\let\startpgfinterruptboundingbox\pgfinterruptboundinbox \let\stoppgfinterruptboudingbox\endpgfinterruptboundingbox
+
+\let\normalusepgfmodule\usepgfmodule
+\let\normalusepgflibrary\usepgflibrary
+
+\tolerant\protected\def\usepgfmodule[#1]#;#2% somehow both variants are used
+ {\starttikzinput
+ \normalusepgfmodule[#1#2]%
+ \stoptikzinput}
+
+\tolerant\protected\def\usepgflibrary[#1]#;#2% somehow both variants are used
+ {\starttikzinput
+ \normalusepgflibrary[#1#2]%
+ \stoptikzinput}
+
+\usepgfmodule[shapes]
+\usepgfmodule[plot]
+\usepgfmodule[matrix]
+\usepgfmodule[decorations]
+
+\definefilesynonym [pgfplots] [tikz-pgfplots]
+\definefilesynonym [pgfplotstable] [tikz-pgfplotstable]
+
+\stopmodule
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/m-timing.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/m-timing.mkxl
index 3edfd14e235..3edfd14e235 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/m-timing.mkxl
+++ b/Master/texmf-dist/tex/context/modules/mkxl/m-timing.mkxl
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/s-braille-basic.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/s-braille-basic.mkxl
new file mode 100644
index 00000000000..aac6dc2078f
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/s-braille-basic.mkxl
@@ -0,0 +1,178 @@
+%D \module
+%D [ file=s-braille-basic,
+%D version=2021.11.17,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Playground for spacing,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This style is triggered by the 2021 blog by Murray Sargent (from Microsoft)
+%D about nemeth sequences:
+%D
+%D \starttyping
+%D https://devblogs.microsoft.com/math-in-office/unicode-math-braille-sequences/
+%D \stoptyping
+%D
+%D I ran into it when Mikael Sundqvist and I were working on an upgrade of the lfg
+%D (goodie) files for math. Being sort of monospaces a braille font is a good
+%D candidate for exploring al these math spacing parameters.
+%D
+%D More settings might show up and existing ones might change so it's mostly an
+%D example style. Fell free to contribute. We use color so that we can see what
+%D we're dealing with. Braille looks kind of interesting anyway although it was
+%D never meant to be seen but felt.
+%D
+%D Musical timestamp: Nothing but the truth (PT with GH drum cam 5.1 bluray) ...
+%D ... I'm always amazed of the power of music and wonder how that evolved with
+%D and in humans.
+
+\startmodule[braille-basic]
+
+\unprotect
+
+\definemeasure [braille:margin] [\paperheight/15]
+
+\definelayout
+ [braille]
+ [\c!topspace=\measure{braille:margin},
+ \c!bottomspace=\measure{braille:margin},
+ \c!backspace=\measure{braille:margin},
+ \c!header=\measure{braille:margin},
+ \c!footer=\zeropoint,
+ \c!width=\v!middle,
+ \c!height=\v!middle]
+
+\setuplayout
+ [braille]
+
+\enableexperiments[fonts.compact]
+
+\setupbodyfont
+ [braille,11pt]
+
+\setupwhitespace
+ [\v!big]
+
+\setuphead
+ [\v!chapter]
+ [\c!style=\bfd,
+ \c!color=darkblue,
+ \c!headerstate=\v!high,
+ \c!interaction=\v!all]
+
+\setuphead
+ [\v!section]
+ [\c!style=\bfc,
+ \c!color=darkblue]
+
+\setuphead
+ [\v!subsection]
+ [\c!style=\bfb]
+
+\setuphead
+ [\v!subsubsection]
+ [\c!style=\bfa,
+ \c!after=]
+
+\setuplist
+ [\c!interaction=\v!all]
+
+\setupdocument
+ [\c!before=\directsetup{document:titlepage}]
+
+\setupalign
+ [\v!verytolerant,\v!flushleft]
+
+\setupitemgroup[\v!itemize][1][\c!width=4em,\c!style=\s!bold,\c!color=darkred]
+\setupitemgroup[\v!itemize][2][\c!width=5em,\c!style=\s!bold,\c!color=darkred]
+\setupitemgroup[\v!itemize][3][\c!width=6em,\c!style=\s!bold,\c!color=darkred]
+
+\setuptyping
+ [\c!color=darkyellow]
+
+\setuptype
+ [\c!color=darkyellow]
+
+\setupformulas
+ [\c!color=darkgreen]
+
+\protect
+
+\stopmodule
+
+\continueifinputfile{s-braille-basic.mkxl}
+
+\starttext
+
+\showframe \showglyphs \showboxes \dontcomplain
+
+\startchapter[title=The first]
+
+\startsection[title=Tufte] {\tf \samplefile{tufte}\par} \stopsection
+\startsection[title=Ward] {\bf \samplefile{ward} \par} \stopsection
+\startsection[title=Davis] {\bi \samplefile{davis}\par} \stopsection
+
+\startsection[title=Four]
+
+ Here is some simple inline math: \formula {x_2 = 10 \neq \alpha} and here is
+ some (quick and dirty) display:
+
+ \startformula
+ y = \sqrt[2]{\frac{1+x^2}{2x+x^2+4}}
+ \stopformula
+
+ but there are rules for that. So we need to look into those so that:
+
+ \startformula
+ y = \frac{1+x^2}{2x+x^2+4}
+ \stopformula
+
+ and
+
+ \startformula
+ y = \overline{2x+x^2+4} + \underline{2x+x^2+4}
+ % y = \overbar{2x+x^2+4}
+ \stopformula
+
+ come out right.
+
+\stopsection
+
+\stopchapter
+
+\startchapter[title=The second]
+
+The monospaced font has no braille but actually all is kind of monospace apart
+from spacing:
+
+\starttyping
+Let's show some {\bf fancy tex} code,
+assuming that mono has gotten the
+braille glyphs.
+\stoptyping
+
+And some itemize:
+
+\startitemize[n]
+ \startitem first one \stopitem
+ \startitem second one \stopitem
+\stopitemize
+
+\startitemize
+ \startitem first one \stopitem
+ \startitem second one \stopitem
+\stopitemize
+
+\startitemize[a]
+ \startitem first one \stopitem
+ \startitem second one \stopitem
+\stopitemize
+
+\stopchapter
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/s-colors-show.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/s-colors-show.mkxl
index aa0e3227eb6..3658e632c4e 100644
--- a/Master/texmf-dist/tex/context/modules/mkxl/s-colors-show.mkxl
+++ b/Master/texmf-dist/tex/context/modules/mkxl/s-colors-show.mkxl
@@ -84,7 +84,7 @@
\scratchwidth\wd\scratchbox
\fi}%
\colo_palets_process[#1]\colo_palets_show_palet}%
- \advance\scratchwidth\emwidth
+ \advanceby\scratchwidth\emwidth
\ifdim\scratchwidth<5\emwidth
\scratchwidth5\emwidth
\fi
@@ -219,7 +219,7 @@
\setlocalhsize
\hsize\localhsize
\scratchcounter\zerocount
- \dorecurse{15}{\doifcolor{#2:\recurselevel}{\advance\scratchcounter\plusone}}
+ \dorecurse{15}{\doifcolor{#2:\recurselevel}{\advanceby\scratchcounter\plusone}}
\scratchwidth2\emwidth\relax
\hsize\scratchcounter\scratchwidth
\dorecurse\scratchcounter{\colo_groups_compare_step{#1}{#2}\recurselevel}}}
@@ -237,6 +237,16 @@
\hss}}}
\endgraf}
+\permanent\tolerant\protected\def\compareluminance[#1]#*[#2]% by MS
+ {\dontleavehmode\hpack\bgroup
+ \unframed
+ [\c!background=\v!color,\c!backgroundcolor=#2,\c!foregroundcolor=#1,\c!loffset=.25\exheight,\c!roffset=.25\exheight]%
+ {#1\enspace#2\quad\colorluminanceratio{#1}{#2}}%
+ \unframed
+ [\c!background=\v!color,\c!backgroundcolor=#1,\c!foregroundcolor=#2,\c!loffset=.25\exheight,\c!roffset=.25\exheight]%
+ {#2\enspace#1\quad\colorluminanceratio{#2}{#1}}%
+ \egroup}
+
\protect
\continueifinputfile{s-colors-show.mkxl}
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/s-fonts-show.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/s-fonts-show.mkxl
index 42b5af125f7..32f50c48407 100644
--- a/Master/texmf-dist/tex/context/modules/mkxl/s-fonts-show.mkxl
+++ b/Master/texmf-dist/tex/context/modules/mkxl/s-fonts-show.mkxl
@@ -111,7 +111,7 @@
\orelse\ifnum\scratchcountertwo=\scratchcounterthree
\exitloop
\else
- \advance\scratchcountertwo\plusone
+ \advanceby\scratchcountertwo\plusone
\fi}}}
{\processcommalist[#2]{\module_fonts_show_font_indeed{#1}}}}%
\egroup}
@@ -418,7 +418,7 @@
\protected\gdef\showotfsteps_n
{\blank
\begingroup
- \advance\leftskip6\emwidth
+ \advanceby\leftskip6\emwidth
\showotfstepmessages\recurselevel
\par
\endgroup
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/s-languages-goodies.lmt b/Master/texmf-dist/tex/context/modules/mkxl/s-languages-goodies.lmt
new file mode 100644
index 00000000000..7256fd35dc5
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/s-languages-goodies.lmt
@@ -0,0 +1,99 @@
+if not modules then modules = { } end modules ['s-languages-goodies'] = {
+ version = 1.001,
+ comment = "companion to s-languages-goodies.mkxl",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+moduledata.languages = moduledata.languages or { }
+moduledata.languages.goodies = moduledata.languages.goodies or { }
+
+function moduledata.languages.goodies.show(specification)
+ specification = interfaces.checkedspecification(specification)
+ local filename = specification.file
+ if filename and filename ~= "" then
+ local list = table.load(resolvers.findfile(filename))
+ if list then
+ list = list.options
+ if list then
+ for i=1,#list do
+ local l = list[i]
+ local w = l.words
+ if w then
+ local pre = l.prefixes
+ local suf = l.suffixes
+ context.startsubject { title = table.concat(table.sortedkeys(l.patterns)," ") }
+ context(languages.strippedgoodiewords(w))
+ if pre then
+ context.blank()
+ context.bold("prefixes: ")
+ context(languages.strippedgoodiewords(pre))
+ end
+ if suf then
+ context.blank()
+ context.bold("suffixes: ")
+ context(languages.strippedgoodiewords(suf))
+ end
+ context.stopsubject()
+ end
+ end
+ end
+ end
+ end
+end
+
+local lpegmatch = lpeg.match
+
+moduledata.languages.goodies.ligaturehandlers = { }
+
+function moduledata.languages.goodies.ligatures(specification)
+
+ specification = interfaces.checkedspecification(specification)
+ local language = specification.language
+ local filename = specification.file
+
+ if not language then
+ elseif moduledata.languages.goodies.ligaturehandlers[language] then
+ else
+ -- fb ff ffb fff ffh ffi ffj ffk ffl fft fi fk fl ft
+ local list = specification.list or "ff fi fl ffi fff ffl"
+ local hash = table.tohash(lpeg.split(" ",list)) -- also strip
+ local pattern = (1-lpeg.utfchartabletopattern(hash))^1 * lpeg.P(-1)
+ local checked = { }
+
+ moduledata.languages.goodies.ligaturehandlers[language] = function(original)
+ if not checked[original] and not lpegmatch(pattern,original) then
+ checked[original] = true
+ end
+ return original
+ end
+
+ languages.installhandler(language,"moduledata.languages.goodies.ligaturehandlers." .. language .. "")
+
+ statistics.register(string.formatters["'% t' ligatures checked for language %a"](table.sortedkeys(hash), language), function()
+ return next(checked) and table.concat(table.sortedkeys(checked)," ") or nil
+ end)
+
+ local applied = languages.appliedoptions[language]
+
+ trackers.enable("languages.applied")
+
+ if applied then
+ statistics.register(string.formatters["options applied for language %a"](language), function()
+ return next(applied) and table.concat(table.sortedkeys(applied)," ") or nil
+ end)
+ statistics.register(string.formatters["missed ligatures for language %a"](language), function()
+ for k, v in next, applied do
+ checked[k] = nil
+ end
+ for k, v in next, hash do
+ checked[k] = nil
+ end
+ return next(checked) and table.concat(table.sortedkeys(checked)," ") or nil
+ end)
+ end
+
+ end
+
+end
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/s-languages-goodies.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/s-languages-goodies.mkxl
new file mode 100644
index 00000000000..fd5e66bdaf2
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/s-languages-goodies.mkxl
@@ -0,0 +1,144 @@
+%D \module
+%D [ file=s-languages-goodies,
+%D version=2021.25.03,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Language Goodies,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\startmodule[languages-goodies]
+
+\registerctxluafile{s-languages-goodies}{autosuffix}
+
+\installmodulecommandluasingle \showlanguagegoodies {moduledata.languages.goodies.show}
+\installmodulecommandluasingle \showlanguageligatures {moduledata.languages.goodies.ligatures}
+
+\stopmodule
+
+\continueifinputfile{s-languages-goodies.mkxl}
+
+% Beware, for now this file is a playground so what gets rendered
+% can differ per upload.
+
+\usemodule[art-01]
+
+% \setupbodyfont[libertine]
+
+\setuplanguage[de][goodies={lang-de.llg}]
+\setuplanguage[en][goodies={lang-en.llg}]
+
+\mainlanguage[de]
+
+% \setupalign[stretch,verytolerant,flushleft] \dontcomplain
+
+% \startlanguageoptions[de]
+% Zapf|innovation
+% \stoplanguageoptions
+
+% \tracinghyphenation3 \tracingonline2
+
+\starttext
+
+ \start
+% \setupalign[stretch,verytolerant,flushleft,nothyphenated] \dontcomplain
+
+% \showlanguageligatures[language=de,list=ff fi fl fk ft fb ffi ffl fff ffk fft ffb ffh ffj]
+% \showlanguageligatures[language=en,list=ff fi fl fk ft fb ffi ffl fff ffk fft ffb ffh ffj]
+
+% \starttitle[title={DE}]
+% \start \de \showlanguagegoodies [file={lang-de.llg}] \stop
+% \stoptitle
+
+% \starttitle[title={EN}]
+% \start \en \showlanguagegoodies[file={lang-en.llg}] \stop
+% \stoptitle
+
+ \page
+
+ \stop
+
+ % oeps effe
+ % nonexistentffitestcase
+ % nonexistentffltestcase
+
+ \enabletrackers[languages.goodies,languages.applied]
+
+ \start \de \dontcomplain
+
+% general
+
+% 0 : ignore
+% 1 : invisible % {}{}{}
+% 2 : no break % {}{}{}[9]
+% 3 : pre % {-}{}{}
+% 4 : pre replace % {-}{}{-}
+% 5 : post % {}{-}{}
+% 6 : post replace % {}{-}{-}
+% 7 : pre post % {-}{-}{}
+% 8 : pre post replace % {-}{-}{-}
+
+% \codedef\hccode
+% \codedef\hycode
+
+% \hccode"002D = "2010 \hycode"002D = "0 % hyphen minus
+% \hccode"00AD = "0000 \hycode"00AD = "1 % soft hyphen
+% \hccode"2010 = "2010 \hycode"2010 = "0 % hyphen
+% \hccode"2011 = "2010 \hycode"2011 = "2 % non breaking hyphen
+% \hccode"2012 = "2012 \hycode"2012 = "0 % figure dash
+% \hccode"2013 = "2013 \hycode"2013 = "0 % en dash
+% \hccode"2014 = "2014 \hycode"2014 = "0 % em dash
+
+
+% \permanent\protected\def\cwm{\discretionary preword postword{-}{}{-}}
+% \tracingonline2 \tracinghyphenation2
+
+% One can map to exhyphenchar and use a pre/post for that one but if
+% really needed \hbcode (before=pre) and \hacode (after=post) can be
+% introduced. Maybe only settable runtime via lua.
+
+\hccode"002D = "002D
+\hccode"2010 = "2010
+\hccode"2013 = "2013
+\hccode"2014 = "2014
+
+% Offline\cwm Anwendungen\par
+% {\hsize 1mm Offline\cwm Anwendungen\par}
+% Offline-Anwendungen\par
+% Offline{\char"2010}Anwendungen\par
+% {\hsize 1mm Offline-Anwendungen\par}
+% {\hsize 1mm Offline{\char"2010}Anwendungen\par}
+% {\hsize 1mm Offline{\endash}Anwendungen\par}
+% {\hsize 1mm Offline{\emdash}Anwendungen\par}
+ {\hsize 3mm \emdash Offline-Anwendungen\emdash\par}
+ {\hsize 3mm \emdash\wordboundary Offline-Anwendungen\wordboundary\emdash\par}
+ {\hsize 3mm \quotation{Offline-Anwendungen}\par}
+ {\hsize 3mm „Offline-Anwendungen“\par}
+ {\hsize 3mm -Offline-Anwendungen-\par}
+
+% OfflineAnwendungen\par
+% {\hsize 1mm OfflineAnwendungen\par}
+% Offline\par
+% {\hsize 1mm Offline\par}
+
+
+% \hyphenationmode\bitwiseflip\hyphenationmode-\forcehandlerhyphenationcode
+
+% \de \dontcomplain
+
+% \startexceptions[de]
+% multi-cul-ti{-}{}{-}word{-}{}{-}boun-daries
+% \stopexceptions
+
+% {multiculti-word-boundaries\par}
+% {multicultiwordboundaries\par}
+% {\hsize 1mm multicultiwordboundaries\par}
+% {\hsize 1mm multiculti-word-boundaries\par}
+% {\hsize 1mm multiwordboundaries\par}
+
+ \stop
+\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/s-layout-show.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/s-layout-show.mkxl
index 95a6d3371c1..948b0953f75 100644
--- a/Master/texmf-dist/tex/context/modules/mkxl/s-layout-show.mkxl
+++ b/Master/texmf-dist/tex/context/modules/mkxl/s-layout-show.mkxl
@@ -118,6 +118,36 @@
\NC inner margin \NC \the\innermarginwidth \NC \NR
\stoptabulate}
+\permanent\protected\gdef\showcentering
+ {\setupbackgrounds
+ [\v!text]
+ [\c!background=centeringlines]}
+
+\defineoverlay
+ [centeringlines]
+ [\vpack to \d_overlay_height \bgroup
+ \vfill
+ \hpack to \d_overlay_width \bgroup
+ \hss
+ \hskip1cm
+ \dorecurse{15}{%
+ \kern-.25\onepoint
+ \ifodd\recurselevel
+ \darkred
+ \else
+ \darkblue
+ \fi
+ \vrule
+ height.5\d_overlay_height
+ depth .5\d_overlay_height
+ width .5\onepoint
+ \hskip1cm
+ }%
+ \hss
+ \egroup
+ \vfill
+ \egroup]
+
%D Page grids:
\newconstant\c_page_grids_location
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/s-math-atoms.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/s-math-atoms.mkxl
new file mode 100644
index 00000000000..1b5ebed416e
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/s-math-atoms.mkxl
@@ -0,0 +1,104 @@
+%D \module
+%D [ file=s-math-atoms.mksl,
+%D version=2022.02.13,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Show Math Atom Spacing,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This is just a quick and dirty overview.
+
+\startmodule[math-atoms]
+
+\setvalue{atom:\number\mathordinarycode }{ord}%inary}
+\setvalue{atom:\number\mathoperatorcode }{ope}%rator}
+\setvalue{atom:\number\mathbinarycode }{bin}%ary}
+\setvalue{atom:\number\mathrelationcode }{rel}%ation}
+\setvalue{atom:\number\mathopencode }{ope}%n}
+\setvalue{atom:\number\mathclosecode }{clo}%se}
+\setvalue{atom:\number\mathpunctuationcode }{pun}%ctuation}
+%setvalue{atom:\number\mathinnercode }{inn}%er}
+%setvalue{atom:\number\mathovercode }{ove}%r}
+%setvalue{atom:\number\mathundercode }{und}%er}
+\setvalue{atom:\number\mathfractioncode }{fra}%ction}
+\setvalue{atom:\number\mathradicalcode }{rad}%ical}
+\setvalue{atom:\number\mathmiddlecode }{mid}%dle}
+%setvalue{atom:\number\mathaccentcode }{acc}%ent}
+%setvalue{atom:\number\mathfencedcode }{fen}%ced}
+%setvalue{atom:\number\mathvariablecode }{var}%iable}
+%setvalue{atom:\number\mathactivecode }{act}%ive}
+%setvalue{atom:\number\mathvcentercode }{vce}%nter}
+%setvalue{atom:\number\mathreservedcode }{res}%erved}
+%setvalue{atom:\number\mathimaginarycode }{ima}%ginary}
+%setvalue{atom:\number\mathdifferentialcode}{dif}%ferential}
+%setvalue{atom:\number\mathexponentialcode }{exp}%onential}
+\setvalue{atom:\number\mathfunctioncode }{fun}%ction}
+\setvalue{atom:\number\mathdigitcode }{dig}%it}
+
+\dostepwiserecurse \mathordinarycode \mathdigitcode \plusone {
+ \setmathatomrule \mathbegincode #1 \allmathstyles \mathbegincode #1
+ \setmathatomrule #1 \mathendcode \allmathstyles #1 \mathendcode
+ \dostepwiserecurse \mathordinarycode \mathdigitcode \plusone {
+ \setmathatomrule#1 ##1 \allmathstyles #1 ##1
+ }
+}
+
+\protected\def\showmathatomspacing#1{
+ \startTEXpage[offset=10pt]
+ \showmakeup[mathglue]
+ \bTABLE[align=middle,width=4em]
+ \dostepwiserecurse \mathordinarycode \mathdigitcode \plusone {%
+ \ifcsname atom:##1\endcsname
+ \bTR
+ \dostepwiserecurse \mathordinarycode \mathdigitcode \plusone {%
+ \ifcsname atom:####1\endcsname
+ \bTD
+ $ #1%
+ \mathatom class ##1 {\hpack to 1.5em{\infofont[\hss\getvalue{atom:##1}\hss]}}
+ \mathatom class ####1 {\hpack to 1.5em{\infofont[\hss\getvalue{atom:####1}\hss]}}
+ $
+ \eTD
+ \fi
+ }
+ \eTR
+ \fi
+ }
+ \bTR[frame=off]
+ \bTD[nx=12,height=6ex,align={middle,lohi}]
+ \type{#1}
+ \eTD
+ \eTR
+ \bTR
+ \bTD[nx=12,align=middle]
+ \infofont\hfill
+ tiny : \the\tinymuskip\hfill
+ thin : \the\thinmuskip\hfill
+ med : \the\medmuskip\hfill
+ thick : \the\thickmuskip\hfill\strut
+ \eTD
+ \eTR
+ \eTABLE
+ \stopTEXpage
+}
+
+\stopmodule
+
+\continueifinputfile{s-math-atoms.mkxl}
+
+\starttext
+
+ \showmathatomspacing{\displaystyle}
+ \showmathatomspacing{\textstyle}
+ \showmathatomspacing{\scriptstyle}
+ \showmathatomspacing{\scriptscriptstyle}
+ \showmathatomspacing{\crampeddisplaystyle}
+ \showmathatomspacing{\crampedtextstyle}
+ \showmathatomspacing{\crampedscriptstyle}
+ \showmathatomspacing{\crampedscriptscriptstyle}
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/s-math-definitions.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/s-math-definitions.mkxl
new file mode 100644
index 00000000000..8b99ae6029b
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/s-math-definitions.mkxl
@@ -0,0 +1,56 @@
+%D \module
+%D [ file=s-math-definitions.mkxl,
+%D version=2022.01.27,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Math Definition Checking,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D I use this file for checking the classes as set in \type {char-def.lua}. It
+%D could work with \MKIV\ but because we have more clases in \LMTX\ we only use
+%D (and need) it there.
+
+\startmodule[math-definitions]
+
+\registerctxluafile{s-math-definitions}{autosuffix}
+
+\permanent\tolerant\protected\def\showmathcharacterdefinitions[#1]%
+ {\ctxlua{moduledata.math.definitions.showlist()}}
+
+\permanent\tolerant\protected\def\showmathatomspacing[#1]%
+ {\ctxlua{moduledata.math.definitions.showatoms()}}
+
+\def\ShowMathAtomSpacingPage#1#2#3#4%
+ {\startTEXpage[offset=10pt]
+ \raggedcenter
+ \dontleavehmode\framed
+ [height=60pt,width=150pt]
+ {$\showglyphs\showmakeup[math]#3 #4$}
+ \blank
+ \strut\infofont\detokenize{#1 #2 : $#3 #4$}
+ \stopTEXpage}
+
+\permanent\tolerant\protected\def\showmathatomspacingpage[#1]%
+ {\ctxlua{moduledata.math.definitions.showatomspage()}}
+
+\stopmodule
+
+\continueifinputfile{s-math-definitions.mkxl}
+
+\setuplayout[tight]
+
+\setupbodyfont[cambria,10pt]
+
+\starttext
+ \showmathatomspacing
+% \page
+% \showmathatomspacingpage
+% \page
+% \showmathcharacterdefinitions
+\stoptext
+
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/s-math-tweaks.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/s-math-tweaks.mkxl
new file mode 100644
index 00000000000..8a70d431fcc
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/s-math-tweaks.mkxl
@@ -0,0 +1,355 @@
+%D \module
+%D [ file=s-math-atoms.mksl,
+%D version=2022.02.13,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Show Math Atom Spacing,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This is just a quick and dirty overview.
+
+\startmodule[math-tweaks]
+
+\unprotect
+
+\starttexdefinition protected showmathfonttweaks_text_accent #1
+ \bTR
+ \bTD[width=7em,align=flushleft,style=mono] #1 \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{i} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{I} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{x} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{X} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{xx} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{XX} } \eTD
+ \eTR
+\stoptexdefinition
+
+\starttexdefinition protected showmathfonttweaks_wide_accent #1
+ \bTR
+ \bTD[width=7em,align=flushleft,style=mono] #1 \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{i} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{I} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{x} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{X} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{xx} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{XX} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{xxxxx} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{XXXXX} } \eTD
+ \eTR
+\stoptexdefinition
+
+\starttexdefinition protected showmathfonttweaks_prime #1
+ \bTR
+ \bTD \type{#1} \eTD
+ \bTD \m {\showglyphs #1} \eTD
+ \eTR
+\stoptexdefinition
+
+\starttexdefinition protected showmathfonttweaks_bracer #1
+ \bTR
+ \bTD \type{#1} \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{x} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{xxxxx} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{X} } \eTD
+ \bTD \m {\showglyphs \getvalue{#1}{XXXXX} } \eTD
+ \eTR
+\stoptexdefinition
+
+\starttexdefinition protected showmathfonttweaks
+
+ \startsubject[title=text accents]
+ \startlinecorrection
+ \bTABLE[align=middle,offset=1ex]
+ \showmathfonttweaks_text_accent{grave}
+ \showmathfonttweaks_text_accent{bar}
+ \showmathfonttweaks_text_accent{acute}
+ \showmathfonttweaks_text_accent{hat}
+ \showmathfonttweaks_text_accent{check}
+ \showmathfonttweaks_text_accent{breve}
+ \showmathfonttweaks_text_accent{dot}
+ \showmathfonttweaks_text_accent{ring}
+ \showmathfonttweaks_text_accent{tilde}
+ \showmathfonttweaks_text_accent{ddot}
+ \showmathfonttweaks_text_accent{dddot}
+ \eTABLE
+ \stoplinecorrection
+ \stopsubject
+
+ \startsubject[title=wide accents]
+ \startlinecorrection
+ \bTABLE[align=middle,offset=1ex]
+ \showmathfonttweaks_wide_accent{widegrave}
+ \showmathfonttweaks_wide_accent{widebar}
+ \showmathfonttweaks_wide_accent{wideacute}
+ \showmathfonttweaks_wide_accent{widehat}
+ \showmathfonttweaks_wide_accent{widecheck}
+ \showmathfonttweaks_wide_accent{widebreve}
+ \showmathfonttweaks_wide_accent{widedot}
+ \showmathfonttweaks_wide_accent{widering}
+ \showmathfonttweaks_wide_accent{widetilde}
+ \showmathfonttweaks_wide_accent{wideddot}
+ \showmathfonttweaks_wide_accent{widedddot}
+ \eTABLE
+ \stoplinecorrection
+ \stopsubject
+
+ \startsubject[title=primes]
+ \startlinecorrection
+ \bTABLE[align=flushleft,offset=1ex]
+ \showmathfonttweaks_prime{x'}
+ \showmathfonttweaks_prime{x''}
+ \showmathfonttweaks_prime{x'''}
+ \showmathfonttweaks_prime{X'}
+ \showmathfonttweaks_prime{X''}
+ \showmathfonttweaks_prime{X'''}
+ \showmathfonttweaks_prime{x'}
+ \showmathfonttweaks_prime{x'^2}
+ \showmathfonttweaks_prime{x'_2}
+ \showmathfonttweaks_prime{x'^2_2}
+ \showmathfonttweaks_prime{x'}
+ \showmathfonttweaks_prime{x^2'}
+ \showmathfonttweaks_prime{x_2'}
+ \showmathfonttweaks_prime{x^2_2'}
+ \eTABLE
+ \stoplinecorrection
+ \stopsubject
+
+ \startsubject[title=bracers]
+ \startlinecorrection
+ \bTABLE[align=flushleft,offset=1ex]
+ \showmathfonttweaks_bracer{overbrace}
+ \showmathfonttweaks_bracer{underbrace}
+ \showmathfonttweaks_bracer{overbracket}
+ \showmathfonttweaks_bracer{underbracket}
+ \showmathfonttweaks_bracer{overparent}
+ \showmathfonttweaks_bracer{underparent}
+ \showmathfonttweaks_bracer{overbar}
+ \showmathfonttweaks_bracer{underbar}
+ \showmathfonttweaks_bracer{overline}
+ \showmathfonttweaks_bracer{underline}
+ \eTABLE
+ \stoplinecorrection
+ \stopsubject
+
+ \startsubject[title=whatever]
+ \startlinecorrection
+ \bTABLE[align=flushleft,offset=1ex]
+ \bTR
+ \bTD \m{\mfunction{máx}}\eTD
+ \eTR
+ \eTABLE
+ \stoplinecorrection
+ \stopsubject
+\stoptexdefinition
+
+\starttexdefinition protected showmathalphabettweaks_check_flush #1
+ \dontleavehmode
+ \hbox \bgroup
+ \smallinfofont
+ \setstrut
+ \lower \dimexpr\dp\scratchbox+\ht\strutbox\relax \hbox to \wd\scratchbox\bgroup
+ \hss
+ \strut
+ \hexnumber{#1}
+ \hss
+ \egroup
+ \hskip-\wd\scratchbox
+ \box\scratchbox
+ \egroup
+\stoptexdefinition
+
+\starttexdefinition protected showmathalphabettweaks_check_scripts
+ \subscript 1
+ \superscript 2
+ \subprescript 3
+ \superprescript4
+\stoptexdefinition
+
+\starttexdefinition protected showmathalphabettweaks_check_hat #1
+ \setbox\scratchbox\ruledhbox {
+ \im {
+ \resetmathattributes
+ \widehat{\Uchar#1}
+ \showmathalphabettweaks_check_scripts
+ }
+ }
+ \showmathalphabettweaks_check_flush{#1}
+\stoptexdefinition
+
+\starttexdefinition protected showmathalphabettweaks_check_fences #1
+ \setbox\scratchbox\ruledhbox {
+ \im {
+ \resetmathattributes
+ \left(
+ \Uchar#1
+ \showmathalphabettweaks_check_scripts
+ \right)
+ }
+ }
+ \showmathalphabettweaks_check_flush{#1}
+\stoptexdefinition
+
+\starttexdefinition protected showmathalphabettweaks_check #1#2
+ \startsubsubsubject[title=#1]
+ \traverseblock {#1} {
+ \begingroup
+ \showglyphs
+ \showfontitalics
+ \showfontkerns
+ #2{##1}%
+ \endgroup
+ \space\space
+ }
+ \removeunwantedspaces
+ \stopsubsubsubject
+\stoptexdefinition
+
+\starttexdefinition protected showmathalphabettweaks_all #1
+ \startsubsubject[title={Numbers}]
+ \showmathalphabettweaks_check{digits normal}#1
+ \showmathalphabettweaks_check{digits bold}#1
+ \showmathalphabettweaks_check{digits sansserif normal}#1
+ \showmathalphabettweaks_check{digits sansserif bold}#1
+ \showmathalphabettweaks_check{digits monospace}#1
+ \showmathalphabettweaks_check{digits doublestruck}#1
+ \stopsubsubject
+ \startsubsubject[title={Lowercase}]
+ \showmathalphabettweaks_check{lowercase normal}#1
+ \showmathalphabettweaks_check{lowercase italic}#1
+ \showmathalphabettweaks_check{lowercase bold}#1
+ \showmathalphabettweaks_check{lowercase bold italic}#1
+ \showmathalphabettweaks_check{lowercase sansserif normal}#1
+ \showmathalphabettweaks_check{lowercase sansserif italic}#1
+ \showmathalphabettweaks_check{lowercase sansserif bold}#1
+ \showmathalphabettweaks_check{lowercase sansserif bolditalic}#1
+ \showmathalphabettweaks_check{lowercase monospace}#1
+ \showmathalphabettweaks_check{lowercase fraktur}#1
+ \showmathalphabettweaks_check{lowercase bold fraktur}#1
+ \showmathalphabettweaks_check{lowercase script}#1
+ \showmathalphabettweaks_check{lowercase bold script}#1
+ \showmathalphabettweaks_check{lowercase doublestruck}#1
+ \showmathalphabettweaks_check{lowercase greek normal}#1
+ \showmathalphabettweaks_check{lowercase greek italic}#1
+ \showmathalphabettweaks_check{lowercase greek bold}#1
+ \showmathalphabettweaks_check{lowercase greek bold italic}#1
+ % \showmathalphabettweaks_check{lowercase greek sansserif normal}#1
+ % \showmathalphabettweaks_check{lowercase greek sansserif italic}#1
+ \showmathalphabettweaks_check{lowercase greek sansserif bold}#1
+ \showmathalphabettweaks_check{lowercase greek sansserif bolditalic}#1
+ \stopsubsubject
+ \startsubsubject[title={Uppercase}]
+ \showmathalphabettweaks_check{uppercase normal}#1
+ \showmathalphabettweaks_check{uppercase italic}#1
+ \showmathalphabettweaks_check{uppercase bold}#1
+ \showmathalphabettweaks_check{uppercase bolditalic}#1
+ \showmathalphabettweaks_check{uppercase sansserif normal}#1
+ \showmathalphabettweaks_check{uppercase sansserif italic}#1
+ \showmathalphabettweaks_check{uppercase sansserif bold}#1
+ \showmathalphabettweaks_check{uppercase sansserif bolditalic}#1
+ \showmathalphabettweaks_check{uppercase monospace}#1
+ \showmathalphabettweaks_check{uppercase fraktur}#1
+ \showmathalphabettweaks_check{uppercase bold fraktur}#1
+ \showmathalphabettweaks_check{uppercase script}#1
+ \showmathalphabettweaks_check{uppercase bold script}#1
+ \showmathalphabettweaks_check{uppercase doublestruck}#1
+ \showmathalphabettweaks_check{uppercase greek normal}#1
+ \showmathalphabettweaks_check{uppercase greek italic}#1
+ \showmathalphabettweaks_check{uppercase greek bold}#1
+ \showmathalphabettweaks_check{uppercase greek bolditalic}#1
+ \showmathalphabettweaks_check{uppercase greek sansserif bold}#1
+ \showmathalphabettweaks_check{uppercase greek sansserif bolditalic}#1
+ \stopsubsubject
+\stoptexdefinition
+
+\starttexdefinition protected showmathaccenttweaks
+ \showmathalphabettweaks_all\showmathalphabettweaks_check_hat
+\stoptexdefinition
+
+\starttexdefinition protected showmathfencetweaks
+ \showmathalphabettweaks_all\showmathalphabettweaks_check_fences
+\stoptexdefinition
+
+\starttexdefinition protected showmathmiddletweaks
+ \dostepwiserecurse {5} {75} {1} {
+ $\left\{
+ \mathatom class \mathconstructcode \bgroup \vcenter \bgroup \hbox \bgroup
+ \blackrule
+ [\c!height=\dimexpr##1pt/2\relax,
+ \c!depth=\dimexpr##1pt/2\relax,
+ \c!width=\emwidth,
+ \c!color=darkblue]%
+ \egroup \egroup \egroup
+ \middle|
+ % \begingroup\darkblue\scriptscriptstyle\mathtt{##1}\endgroup
+ \right)$
+ \space
+ }
+ \removeunwantedspaces
+\stoptexdefinition
+
+\protect
+
+\stopmodule
+
+\continueifinputfile{s-math-tweaks.mkxl}
+
+\setuplayout
+ [tight]
+
+\setuphead
+ [chapter]
+ [style=\bfd]
+
+\setuphead
+ [section]
+ [style=\bfc]
+
+\setuphead
+ [subsection]
+ [style=\bfb]
+
+\setuphead
+ [subsubsection]
+ [before=\blank,
+ style=\bfa]
+
+% \enabletrackers[math.tweaks]
+
+\starttext
+
+% \definefontfeature[mathextra][compose=yes]
+
+ \doifelse {\getdocumentargument{bodyfont}} {} {
+
+% \setupbodyfont[cambria,10pt] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+% \setupbodyfont[modern] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+% \setupbodyfont[pagella] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+% \setupbodyfont[termes] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+% \setupbodyfont[bonum] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+% \setupbodyfont[schola] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+% \setupbodyfont[lucidaot,10pt] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+% \setupbodyfont[ebgaramond] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+% \setupbodyfont[stixtwo] \starttitle[title=\fontclass] \showmathfonttweaks \stoptitle
+
+% \setupbodyfont[bonum] \starttitle[title=\fontclass] \showmathaccenttweaks \stoptitle
+
+% \setupbodyfont[bonum] \starttitle[title=\fontclass] \showmathfencetweaks \stoptitle
+ \setupbodyfont[bonum] \starttitle[title=\fontclass] \showmathmiddletweaks \stoptitle
+% \setupbodyfont[modern] \starttitle[title=\fontclass] \showmathfencetweaks \stoptitle
+
+ } {
+
+ \normalexpanded{\setupbodyfont[\getdocumentargument{bodyfont},12pt]}
+ \showmathfonttweaks
+ \showmathaccenttweaks
+ \showmathfencetweaks
+ \showmathmiddletweaks
+ }
+
+\stoptext
+
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/s-publications-show.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/s-publications-show.mkxl
index 9f4098489ae..f4967f7e446 100644
--- a/Master/texmf-dist/tex/context/modules/mkxl/s-publications-show.mkxl
+++ b/Master/texmf-dist/tex/context/modules/mkxl/s-publications-show.mkxl
@@ -26,9 +26,9 @@
\tolerant\gdef\publ_show_dataset_whatever#1[#2]%
{\begingroup
- \letdummyparameter\c!specification\currentbtxspecification
- \setdummyparameter\c!dataset {\currentbtxdataset}%
- \letdummyparameter\c!field \empty
+ \letdummyparameter \c!specification\currentbtxspecification
+ \setdummyparameter \c!dataset {\currentbtxdataset}%
+ \resetdummyparameter\c!field
\ifparameter#2\or
\ifhastok={#2}%
\getdummyparameters[#2]%
diff --git a/Master/texmf-dist/tex/context/modules/mkiv/s-system-macros.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/s-system-macros.mkxl
index 0f26444037b..6058590004f 100644
--- a/Master/texmf-dist/tex/context/modules/mkiv/s-system-macros.mkxl
+++ b/Master/texmf-dist/tex/context/modules/mkxl/s-system-macros.mkxl
@@ -62,7 +62,7 @@
local find = string.find
local gsub = string.gsub
- local create = token.create
+ local create = tokens.create
local crap = "[$>%|%&%#" .. string.char(0xEF) .. "]"
@@ -108,12 +108,31 @@
local data = scripts.interface.editor("data")
local files = data and data.common and data.common.filenames or { }
+ local macros = { }
local flagged = 0
local total = 0
local list = tex.hashtokens()
local all = not tex.modes.notmarked
local everything = tex.modes.everything
+ local fmtname = resolvers.locateformat("cont-en.fmt")
+ if fmtname then
+ local logname = file.replacesuffix(fmtname,"log")
+ for filename in string.gmatch(io.loaddata(logname),"fullname=(%S+)") do
+ local s = file.suffix(filename)
+ local b = file.basename(filename)
+ if s ~= "lua" and s ~= "lmt" then
+ local d = io.loaddata(filename)
+ for m in string.gmatch(d,"\n[\\a-z]*[exg]*def\\([a-zA-Z_]+)") do
+ macros[m] = b
+ end
+ for m in string.gmatch(d,"\n[\\a-z]*[g]*let\\([a-zA-Z_]+)") do
+ macros[m] = b
+ end
+ end
+ end
+ end
+
table.sort(list)
local function show(visible, check)
@@ -137,7 +156,7 @@
if everything or ((all or not marked) and not find(k,"^[pvm]_") and not find(k,"^![tT]")) then
local parameters = v.parameters
local noaligned = v.noaligned and "noaligned"
- local filename = files[k]
+ local filename = files[k] or macros[k]
local csname = context.escape(k)
if undefined then
marked = "?"
@@ -225,7 +244,7 @@
local find = string.find
local gsub = string.gsub
- local create = token.create
+ local create = tokens.create
context.starttitle { title = "\\METAFUN\\ commands" }
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/s-system-tokens.lmt b/Master/texmf-dist/tex/context/modules/mkxl/s-system-tokens.lmt
new file mode 100644
index 00000000000..c19f6699eff
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/s-system-tokens.lmt
@@ -0,0 +1,247 @@
+if not modules then modules = { } end modules['s-system-tokens'] = {
+ version = 1.001,
+ comment = "companion to s-system-tokens.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local context = context
+local ctx_NC = context.NC
+local ctx_BC = context.BC
+local ctx_NR = context.NR
+local ctx_FL = context.FL
+local ctx_ML = context.ML
+local ctx_LL = context.LL
+local gsub = string.gsub
+local find = string.find
+local concat = table.concat
+
+moduledata.system = moduledata.system or { }
+moduledata.system.tokens = moduledata.system.tokens or { }
+
+local getrange = token.get_range
+local getcmdchrcs = token.get_cmdchrcs
+local whatever = { [1] = true, [4] = true, [8] = true }
+
+local collected = nil -- at some point we might have this one preloaded
+
+function moduledata.system.tokens.collect()
+
+ if not collected then
+
+ local allcommands = tokens.commands
+ local primitives = tex.primitives()
+ collected = { }
+
+ for i=0,#allcommands do
+ local codes = { }
+ local kind, min, max, fixedvalue = getrange(i)
+ if min and whatever[kind] and max >= 0 and max <= 256 then
+ for i=min,max do
+ codes[i] = false
+ end
+ end
+ collected[i] = codes
+ collected[allcommands[i]] = codes
+ end
+
+ for i=1,#primitives do
+ local prm = primitives[i]
+ local cmd, chr = getcmdchrcs("normal"..prm)
+ local codes = collected[cmd]
+ if codes and codes[chr] == false then
+ codes[chr] = prm
+ codes[prm] = chr
+ else
+ -- print(cmd,chr)
+ end
+ end
+
+ collected.undefined_cs = nil
+
+ -- table.save("whatever.lua",collected)
+ -- local p = token.getprimitives()
+ -- table.sort(p,function(a,b) if a[1] == b[1] then return a[2] < b[2] else return a[1] < b[1] end end)
+ -- table.save("moreever.lua",p)
+
+ -- local p = token.getprimitives()
+ -- for i=1,#p do
+ -- local t = p[i]
+ -- pi[i] = { t[1], t[2], t[3], getrange(t[1]) }
+ -- end
+
+ -- inspect(collected)
+
+ end
+
+ return collected
+
+end
+
+function moduledata.system.tokens.showlist()
+
+ local l = tokens.commands
+ local t = moduledata.system.tokens.collect()
+
+ context.starttabulate { "|cT|rT|lT|rT|rT|pTA{flushleft,verytolerant,stretch}|" }
+ ctx_FL()
+ ctx_BC() context("")
+ ctx_BC() context("cmd")
+ ctx_BC() context("name")
+ ctx_BC() context("min")
+ ctx_BC() context("max")
+ ctx_BC() context("default or subcommands")
+ ctx_BC() ctx_NR()
+ ctx_ML()
+ for i=0,#l do
+ local kind, min, max, fixedvalue = getrange(i)
+ local what = whatever[kind]
+ ctx_NC() context(kind)
+ ctx_NC() context(i)
+ ctx_NC() context(l[i])
+ ctx_NC() if min then if what or min == 0 then context(min) else context("-0x%X",-min) end end
+ ctx_NC() if max then if what or max == 0 then context(max) else context("0x%X",max) end end
+ ctx_NC()
+ if min and what and max >= 0 and max <= 256 then
+ local l = { }
+ local c = t[i]
+ if c then
+ for j=min, max do
+ local s = c[j]
+ if s == " " then
+ s = "<space>"
+ elseif not s then
+ s = "<unavailable>"
+ end
+ l[#l+1] = j .. "=" .. s
+ end
+ if (#l > 0) then
+ context(table.concat(l," "))
+ elseif fixedvalue ~= 0 then
+ context("0x%X",fixedvalue)
+ end
+ else
+ print("weird")
+ end
+ elseif fixedvalue and fixedvalue ~= 0 then
+ context("0x%X",fixedvalue)
+ end
+ ctx_NC() ctx_NR()
+ end
+ ctx_LL()
+ context.stoptabulate()
+
+end
+
+function moduledata.system.tokens.table(t)
+ local t = t or token.peek_next() -- local t = token.scan_next() token.put_back(t)
+ local n = ""
+ local w = ""
+ local c = t.cmdname
+ if c == "left_brace" then
+ w = "given token list"
+ t = token.scan_toks(false)
+ elseif c == "register_toks" then
+ token.scan_next()
+ w = "token register"
+ n = t.csname or t.index
+ t = tex.gettoks(n,true)
+ elseif c == "internal_toks" then
+ token.scan_next()
+ w = "internal token variable"
+ n = t.csname or t.index
+ t = tex.gettoks(n,true)
+ else
+ n = token.scan_csname()
+ local r = { }
+ local m = token.get_meaning(n,true)
+ if t.frozen then r[#r+1] = "frozen" end
+ if t.permanent then r[#r+1] = "permanent" end
+ if t.immutable then r[#r+1] = "immutable" end
+ if t.primitive then r[#r+1] = "primitive" end
+ if t.mutable then r[#r+1] = "mutable" end
+ if t.noaligned then r[#r+1] = "noaligned" end
+ if t.instance then r[#r+1] = "instance" end
+ if t.tolerant then r[#r+1] = "tolerant" end
+ if t.protected then r[#r+1] = "protected" end
+ r[#r+1] = "control sequence"
+ if type(m) == "table" then
+ t = m
+ else
+ t = { t }
+ end
+ w = concat(r, " ")
+ end
+ if type(t) == "table" and #t > 0 then
+ context.starttabulate { "|l|r|r|l|c|l|l|" }
+ ctx_FL()
+ ctx_NC() context.formatted.rlap("\\bold %s: %s",w,n)
+ ctx_NC() ctx_NC() ctx_NC() ctx_NC() ctx_NC() ctx_NC() ctx_NC()
+ ctx_NC() ctx_NR()
+ ctx_ML()
+ for i=1,#t do
+ local ti = t[i]
+ local cs = ti.csname
+ local id = ti.id
+ local ix = ti.index
+ local cd = ti.command
+ local cn = gsub(ti.cmdname,"_"," ")
+ ctx_NC() context(id)
+ ctx_NC() context(cd)
+ ctx_NC() context("%3i",ix)
+ ctx_NC() context(cn)
+ if cs then
+ ctx_NC()
+ ctx_NC()
+ ctx_NC() context(cs)
+ ctx_NC() ctx_NR()
+ elseif cn == "letter" or cn == "other char" then
+ ctx_NC() context.char(ix)
+ ctx_NC() context("%U",ix)
+ ctx_NC()
+ ctx_NC() ctx_NR()
+ elseif cn == "match" then
+ ctx_NC()
+ ctx_NC()
+ if ix == 32 then context("optional spacer") -- space
+ elseif ix == 43 then context("keep braces") -- "+"
+ elseif ix == 45 then context("thrash") -- "-"
+ elseif ix == 61 then context("mandate braces") -- "="
+ elseif ix == 94 then context("keep spaces") -- "^"
+ elseif ix == 95 then context("keep mandate braces") -- "_"
+ else context("argument %c",ix)
+ end
+ ctx_NC()
+ ctx_NC() ctx_NR()
+ else
+ ctx_NC()
+ ctx_NC()
+ ctx_NC()
+ ctx_NC() ctx_NR()
+ if cn == "end match" then
+ context.ML()
+ end
+ end
+ end
+ context.LL()
+ context.stoptabulate()
+ else
+ context.starttabulate { "|l|" }
+ ctx_FL()
+ ctx_NC() context("%s: %s",w,n)
+ ctx_NC() ctx_NR()
+ ctx_ML()
+ ctx_NC() context("<no tokens>")
+ ctx_NC() ctx_NR()
+ ctx_LL()
+ context.stoptabulate()
+ end
+end
+
+interfaces.implement {
+ name = "luatokentable",
+ public = true,
+ protected = true,
+ actions = moduledata.system.tokens.table,
+}
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/s-system-tokens.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/s-system-tokens.mkxl
new file mode 100644
index 00000000000..584fcf82f54
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/s-system-tokens.mkxl
@@ -0,0 +1,41 @@
+%D \module
+%D [ file=s-system-tokens.mkxl,
+%D version=2020.06.02,
+%D title=\CONTEXT\ Style File,
+%D subtitle=System Tokens Checking,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\startmodule[system-tokens]
+
+\registerctxluafile{s-system-tokens}{}
+
+\permanent\protected\def\showsystemtokens{\ctxlua{moduledata.system.tokens.showlist()}} % can be public implementor
+
+\stopmodule
+
+\continueifinputfile{s-system-tokens.mkxl}
+
+\usemodule[article-basic]
+
+\setuppapersize[A4,landscape]
+
+\setuplayout[tight]
+
+\setupbodyfont[8pt]
+
+\starttext
+
+ \luatokentable\startframed
+
+ \page
+
+ \showsystemtokens
+
+\stoptext
+
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/x-mathml.lmt b/Master/texmf-dist/tex/context/modules/mkxl/x-mathml.lmt
new file mode 100644
index 00000000000..30a435cde6d
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/x-mathml.lmt
@@ -0,0 +1,972 @@
+if not modules then modules = { } end modules ['x-mathml'] = {
+ version = 1.001,
+ comment = "companion to x-mathml.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+-- This needs an upgrade to the latest greatest mechanisms. But ... it
+-- probably doesn't pay back as no mathml support ever did.
+
+local type, next = type, next
+local formatters, lower, find, gsub, match = string.formatters, string.lower, string.find, string.gsub, string.match
+local strip = string.strip
+local xmlsprint, xmlcprint, xmltext, xmlcontent, xmlempty = xml.sprint, xml.cprint, xml.text, xml.content, xml.empty
+local lxmlcollected, lxmlfilter = lxml.collected, lxml.filter
+local getid = lxml.getid
+local utfchar, utfcharacters, utfsplit, utflen = utf.char, utf.characters, utf.split, utf.len
+local lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns
+local P, Cs = lpeg.P, lpeg.Cs
+
+local mathml = { }
+moduledata.mathml = mathml
+lxml.mathml = mathml -- for the moment
+
+local context = context
+
+local ctx_enabledelimiter = context.enabledelimiter
+local ctx_disabledelimiter = context.disabledelimiter
+local ctx_xmlflush = context.xmlflush -- better xmlsprint
+
+local ctx_halign = context.halign
+local ctx_noalign = context.noalign
+local ctx_bgroup = context.bgroup
+local ctx_egroup = context.egroup
+local ctx_crcr = context.crcr
+
+local ctx_bTABLE = context.bTABLE
+local ctx_eTABLE = context.eTABLE
+local ctx_bTR = context.bTR
+local ctx_eTR = context.eTR
+local ctx_bTD = context.bTD
+local ctx_eTD = context.eTD
+
+local ctx_mn = context.mn
+local ctx_mi = context.mi
+local ctx_mo = context.mo
+local ctx_startimath = context.startimath
+local ctx_ignorespaces = context.ignorespaces
+local ctx_removeunwantedspaces = context.removeunwantedspaces
+local ctx_stopimath = context.stopimath
+
+local ctx_mmlapplycsymbol = context.mmlapplycsymbol
+
+local ctx_mathopnolimits = context.mathopnolimits
+local ctx_left = context.left
+local ctx_right = context.right
+
+-- an alternative is to remap to private codes, where we can have
+-- different properties .. to be done; this will move and become
+-- generic; we can then make the private ones active in math mode
+
+-- todo: handle opening/closing mo's here ... presentation mml is such a mess ...
+
+-- characters.registerentities()
+
+local doublebar = utfchar(0x2016)
+
+local n_replacements = {
+-- [" "] = utfchar(0x2002), -- "&textspace;" -> tricky, no &; in mkiv
+ ["."] = "{.}",
+ [","] = "{,}",
+ [" "] = "",
+}
+
+local l_replacements = { -- in main table
+ ["|"] = "\\mmlleftdelimiter\\vert",
+ ["{"] = "\\mmlleftdelimiter\\lbrace",
+ ["("] = "\\mmlleftdelimiter(",
+ ["["] = "\\mmlleftdelimiter[",
+ ["<"] = "\\mmlleftdelimiter<",
+ [doublebar] = "\\mmlleftdelimiter\\Vert",
+}
+local r_replacements = { -- in main table
+ ["|"] = "\\mmlrightdelimiter\\vert",
+ ["}"] = "\\mmlrightdelimiter\\rbrace",
+ [")"] = "\\mmlrightdelimiter)",
+ ["]"] = "\\mmlrightdelimiter]",
+ [">"] = "\\mmlrightdelimiter>",
+ [doublebar] = "\\mmlrightdelimiter\\Vert",
+}
+
+-- todo: play with asciimode and avoid mmlchar
+
+-- we can use the proper names now! todo
+
+local o_replacements = { -- in main table
+ ["@l"] = "\\mmlleftdelimiter.",
+ ["@r"] = "\\mmlrightdelimiter.",
+ ["{"] = "\\mmlleftdelimiter \\lbrace",
+ ["}"] = "\\mmlrightdelimiter\\rbrace",
+ ["|"] = "\\mmlleftorrightdelimiter\\vert",
+ -- ["."] = "\\mmlleftorrightdelimiter.",
+ ["/"] = "\\mmlleftorrightdelimiter\\solidus",
+ [doublebar] = "\\mmlleftorrightdelimiter\\Vert",
+ ["("] = "\\mmlleftdelimiter(",
+ [")"] = "\\mmlrightdelimiter)",
+ ["["] = "\\mmlleftdelimiter[",
+ ["]"] = "\\mmlrightdelimiter]",
+ -- ["<"] = "\\mmlleftdelimiter<",
+ -- [">"] = "\\mmlrightdelimiter>",
+ ["#"] = "\\mmlchar{35}",
+ ["$"] = "\\mmlchar{36}", -- $
+ ["%"] = "\\mmlchar{37}",
+ ["&"] = "\\mmlchar{38}",
+ ["^"] = "\\mmlchar{94}{}", -- strange, sometimes luatex math sees the char instead of \char so we
+ ["_"] = "\\mmlchar{95}{}", -- need the {} ... has to do with active mess feedback into scanner
+ ["~"] = "\\mmlchar{126}",
+ [" "] = "",
+ ["°"] = "^\\circ", -- hack
+
+ -- [utfchar(0xF103C)] = "\\mmlleftdelimiter<",
+ [utfchar(0xF1026)] = "\\mmlchar{38}",
+ [utfchar(0x02061)] = "", -- function applicator sometimes shows up in font
+ -- [utfchar(0xF103E)] = "\\mmlleftdelimiter>",
+ -- [utfchar(0x000AF)] = '\\mmlchar{"203E}', -- 0x203E
+}
+
+local simpleoperatorremapper = utf.remapper(o_replacements)
+
+--~ languages.data.labels.functions
+
+local i_replacements = {
+ ["sin"] = "\\sin",
+ ["cos"] = "\\cos",
+ ["abs"] = "\\abs",
+ ["arg"] = "\\arg",
+ ["codomain"] = "\\codomain",
+ ["curl"] = "\\curl",
+ ["determinant"] = "\\det",
+ ["divergence"] = "\\div",
+ ["domain"] = "\\domain",
+ ["gcd"] = "\\gcd",
+ ["grad"] = "\\grad",
+ ["identity"] = "\\id",
+ ["image"] = "\\image",
+ ["lcm"] = "\\lcm",
+ ["lim"] = "\\lim",
+ ["max"] = "\\max",
+ ["median"] = "\\median",
+ ["min"] = "\\min",
+ ["mode"] = "\\mode",
+ ["mod"] = "\\mod",
+ ["polar"] = "\\Polar",
+ ["exp"] = "\\exp",
+ ["ln"] = "\\ln",
+ ["log"] = "\\log",
+ ["sin"] = "\\sin",
+ ["arcsin"] = "\\arcsin",
+ ["sinh"] = "\\sinh",
+ ["arcsinh"] = "\\arcsinh",
+ ["cos"] = "\\cos",
+ ["arccos"] = "\\arccos",
+ ["cosh"] = "\\cosh",
+ ["arccosh"] = "\\arccosh",
+ ["tan"] = "\\tan",
+ ["arctan"] = "\\arctan",
+ ["tanh"] = "\\tanh",
+ ["arctanh"] = "\\arctanh",
+ ["cot"] = "\\cot",
+ ["arccot"] = "\\arccot",
+ ["coth"] = "\\coth",
+ ["arccoth"] = "\\arccoth",
+ ["csc"] = "\\csc",
+ ["arccsc"] = "\\arccsc",
+ ["csch"] = "\\csch",
+ ["arccsch"] = "\\arccsch",
+ ["sec"] = "\\sec",
+ ["arcsec"] = "\\arcsec",
+ ["sech"] = "\\sech",
+ ["arcsech"] = "\\arcsech",
+ [" "] = "",
+
+ ["false"] = "{\\mathrm false}",
+ ["notanumber"] = "{\\mathrm NaN}",
+ ["otherwise"] = "{\\mathrm otherwise}",
+ ["true"] = "{\\mathrm true}",
+ ["declare"] = "{\\mathrm declare}",
+ ["as"] = "{\\mathrm as}",
+
+}
+
+-- we could use a metatable or when accessing fallback on the
+-- key but at least we now have an overview
+
+local csymbols = {
+ arith1 = {
+ lcm = "lcm",
+ big_lcm = "lcm",
+ gcd = "gcd",
+ big_gcd = "big_gcd",
+ plus = "plus",
+ unary_minus = "minus",
+ minus = "minus",
+ times = "times",
+ divide = "divide",
+ power = "power",
+ abs = "abs",
+ root = "root",
+ sum = "sum",
+ product = "product",
+ },
+ fns = {
+ domain = "domain",
+ range = "codomain",
+ image = "image",
+ identity = "ident",
+ -- left_inverse = "",
+ -- right_inverse = "",
+ inverse = "inverse",
+ left_compose = "compose",
+ lambda = "labmda",
+ },
+ linalg1 = {
+ vectorproduct = "vectorproduct",
+ scalarproduct = "scalarproduct",
+ outerproduct = "outerproduct",
+ transpose = "transpose",
+ determinant = "determinant",
+ vector_selector = "selector",
+ -- matrix_selector = "matrix_selector",
+ },
+ logic1 = {
+ equivalent = "equivalent",
+ ["not"] = "not",
+ ["and"] = "and",
+ -- big_and = "",
+ ["xor"] = "xor",
+ -- big_xor = "",
+ ["or"] = "or",
+ -- big-or = "",
+ implies = "implies",
+ ["true"] = "true",
+ ["false"] = "false",
+ },
+ nums1 = {
+ -- based_integer = "based_integer"
+ rational = "rational",
+ inifinity = "infinity",
+ e = "expenonentiale",
+ i = "imaginaryi",
+ pi = "pi",
+ gamma = "gamma",
+ NaN = "NaN",
+ },
+ relation1 = {
+ eq = "eq",
+ lt = "lt",
+ gt = "gt",
+ neq = "neq",
+ leq = "leq",
+ geq = "geq",
+ approx = "approx",
+ },
+ set1 = {
+ cartesian_product = "cartesianproduct",
+ empty_set = "emptyset",
+ map = "map",
+ size = "card",
+ -- suchthat = "suchthat",
+ set = "set",
+ intersect = "intersect",
+ -- big_intersect = "",
+ union = "union",
+ -- big_union = "",
+ setdiff = "setdiff",
+ subset = "subset",
+ ["in"] = "in",
+ notin = "notin",
+ prsubset = "prsubset",
+ notsubset = "notsubset",
+ notprsubset = "notprsubset",
+ },
+ veccalc1 = {
+ divergence = "divergence",
+ grad = "grad",
+ curl = "curl",
+ laplacian = "laplacian",
+ Laplacian = "laplacian",
+ },
+ calculus1 = {
+ diff = "diff",
+ -- nthdiff = "",
+ partialdiff = "partialdiff",
+ int = "int",
+ -- defint = "defint",
+ },
+ integer1 = {
+ factorof = "factorof",
+ factorial = "factorial",
+ quotient = "quotient",
+ remainder = "rem",
+ },
+ linalg2 = {
+ vector = "vector",
+ matrix = "matrix",
+ matrixrow = "matrixrow",
+ },
+ mathmkeys = {
+ -- equiv = "",
+ -- contentequiv = "",
+ -- contentequiv_strict = "",
+ },
+ rounding1 = {
+ ceiling = "ceiling",
+ floor = "floor",
+ -- trunc = "trunc",
+ -- round = "round",
+ },
+ setname1 = {
+ P = "primes",
+ N = "naturalnumbers",
+ Z = "integers",
+ rationals = "rationals",
+ R = "reals",
+ complexes = "complexes",
+ },
+ complex1 = {
+ -- complex_cartesian = "complex_cartesian", -- ci ?
+ real = "real",
+ imaginary = "imaginary",
+ -- complex_polar = "complex_polar", -- ci ?
+ argument = "arg",
+ conjugate = "conjugate",
+ },
+ interval1 = { -- not an apply
+ -- integer_interval = "integer_interval",
+ interval = "interval",
+ interval_oo = { tag = "interval", closure = "open" },
+ interval_cc = { tag = "interval", closure = "closed" },
+ interval_oc = { tag = "interval", closure = "open-closed" },
+ interval_co = { tag = "interval", closure = "closed-open" },
+ },
+ linalg3 = {
+ -- vector = "vector.column",
+ -- matrixcolumn = "matrixcolumn",
+ -- matrix = "matrix.column",
+ },
+ minmax1 = {
+ min = "min",
+ -- big_min = "",
+ max = "max",
+ -- big_max = "",
+ },
+ piece1 = {
+ piecewise = "piecewise",
+ piece = "piece",
+ otherwise = "otherwise",
+ },
+ error1 = {
+ -- unhandled_symbol = "",
+ -- unexpected_symbol = "",
+ -- unsupported_CD = "",
+ },
+ limit1 = {
+ -- limit = "limit",
+ -- both_sides = "both_sides",
+ -- above = "above",
+ -- below = "below",
+ -- null = "null",
+ tendsto = "tendsto",
+ },
+ list1 = {
+ -- map = "",
+ -- suchthat = "",
+ -- list = "list",
+ },
+ multiset1 = {
+ size = { tag = "card", type = "multiset" },
+ cartesian_product = { tag = "cartesianproduct", type = "multiset" },
+ empty_set = { tag = "emptyset", type = "multiset" },
+ -- multi_set = { tag = "multiset", type = "multiset" },
+ intersect = { tag = "intersect", type = "multiset" },
+ -- big_intersect = "",
+ union = { tag = "union", type = "multiset" },
+ -- big_union = "",
+ setdiff = { tag = "setdiff", type = "multiset" },
+ subset = { tag = "subset", type = "multiset" },
+ ["in"] = { tag = "in", type = "multiset" },
+ notin = { tag = "notin", type = "multiset" },
+ prsubset = { tag = "prsubset", type = "multiset" },
+ notsubset = { tag = "notsubset", type = "multiset" },
+ notprsubset = { tag = "notprsubset", type = "multiset" },
+ },
+ quant1 = {
+ forall = "forall",
+ exists = "exists",
+ },
+ s_dist = {
+ -- mean = "mean.dist",
+ -- sdev = "sdev.dist",
+ -- variance = "variance.dist",
+ -- moment = "moment.dist",
+ },
+ s_data = {
+ mean = "mean",
+ sdev = "sdev",
+ variance = "vriance",
+ mode = "mode",
+ median = "median",
+ moment = "moment",
+ },
+ transc1 = {
+ log = "log",
+ ln = "ln",
+ exp = "exp",
+ sin = "sin",
+ cos = "cos",
+ tan = "tan",
+ sec = "sec",
+ csc = "csc",
+ cot = "cot",
+ sinh = "sinh",
+ cosh = "cosh",
+ tanh = "tanh",
+ sech = "sech",
+ csch = "cscs",
+ coth = "coth",
+ arcsin = "arcsin",
+ arccos = "arccos",
+ arctan = "arctan",
+ arcsec = "arcsec",
+ arcscs = "arccsc",
+ arccot = "arccot",
+ arcsinh = "arcsinh",
+ arccosh = "arccosh",
+ arctanh = "arstanh",
+ arcsech = "arcsech",
+ arccsch = "arccsch",
+ arccoth = "arccoth",
+ },
+}
+
+function xml.functions.remapmmlcsymbol(e)
+ local at = e.at
+ local cd = at.cd
+ if cd then
+ cd = csymbols[cd]
+ if cd then
+ local tx = e.dt[1]
+ if tx and tx ~= "" then
+ local tg = cd[tx]
+ if tg then
+ at.cd = nil
+ at.cdbase = nil
+ e.dt = { }
+ if type(tg) == "table" then
+ for k, v in next, tg do
+ if k == "tag" then
+ e.tg = v
+ else
+ at[k] = v
+ end
+ end
+ else
+ e.tg = tg
+ end
+ end
+ end
+ end
+ end
+end
+
+function xml.functions.remapmmlbind(e)
+ e.tg = "apply"
+end
+
+function xml.functions.remapopenmath(e)
+ local tg = e.tg
+ if tg == "OMOBJ" then
+ e.tg = "math"
+ elseif tg == "OMA" then
+ e.tg = "apply"
+ elseif tg == "OMB" then
+ e.tg = "apply"
+ elseif tg == "OMS" then
+ local at = e.at
+ e.tg = "csymbol"
+ e.dt = { at.name or "unknown" }
+ at.name = nil
+ elseif tg == "OMV" then
+ local at = e.at
+ e.tg = "ci"
+ e.dt = { at.name or "unknown" }
+ at.name = nil
+ elseif tg == "OMI" then
+ e.tg = "ci"
+ end
+ e.rn = "mml"
+end
+
+function mathml.checked_operator(str)
+ context(simpleoperatorremapper(str))
+end
+
+function mathml.stripped(str)
+ context(strip(str))
+end
+
+local p_entity = (P("&") * ((1-P(";"))^0) * P(";"))
+local p_utfchar = lpegpatterns.utf8character
+local p_spacing = lpegpatterns.whitespace^1
+
+local p_mn = Cs((p_entity/"" + p_spacing/utfchar(0x205F) + p_utfchar/n_replacements)^0)
+local p_strip = Cs((p_entity/"" + p_utfchar )^0)
+local p_mi = Cs((p_entity/"" + p_utfchar/i_replacements)^0)
+
+function mathml.mn(id)
+ -- maybe at some point we need to interpret the number, but
+ -- currently we assume an upright font
+ ctx_mn(lpegmatch(p_mn,xmlcontent(getid(id)) or ""))
+end
+
+function mathml.mo(id)
+ local str = lpegmatch(p_strip,xmlcontent(getid(id)) or "")
+ context(simpleoperatorremapper(str) or str)
+end
+
+function mathml.mi(id)
+ -- we need to strip comments etc .. todo when reading in tree
+ local e = getid(id)
+ local str = e.dt
+ if type(str) == "table" then
+ local n = #str
+ if n == 0 then
+ -- nothing to do
+ elseif n == 1 then
+ local first = str[1]
+ if type(first) == "string" then
+ -- local str = gsub(first,"&.-;","") -- bah
+ -- local rep = i_replacements[str]
+ -- if not rep then
+ -- rep = gsub(str,".",i_replacements)
+ -- end
+ local str = lpegmatch(p_strip,first)
+ local rep = i_replacements[str] or lpegmatch(p_mi,str)
+ context(rep)
+ -- ctx_mi(rep)
+ else
+ ctx_xmlflush(id) -- xmlsprint or so
+ end
+ else
+ ctx_xmlflush(id) -- xmlsprint or so
+ end
+ else
+ ctx_xmlflush(id) -- xmlsprint or so
+ end
+end
+
+function mathml.mfenced(id) -- multiple separators
+ id = getid(id)
+ local at = id.at
+ local left = at.open or "("
+ local right = at.close or ")"
+ local separators = at.separators or ","
+ local l = l_replacements[left]
+ local r = r_replacements[right]
+ ctx_enabledelimiter()
+ if l then
+ context(l_replacements[left] or o_replacements[left] or "")
+ else
+ context(o_replacements["@l"])
+ context(left)
+ end
+ ctx_disabledelimiter()
+ local collected = lxmlfilter(id,"/*") -- check the *
+ if collected then
+ local n = #collected
+ if n == 0 then
+ -- skip
+ elseif n == 1 then
+ xmlsprint(collected[1]) -- to be checked
+ else
+ local t = utfsplit(separators,true)
+ for i=1,n do
+ xmlsprint(collected[i]) -- to be checked
+ if i < n then
+ local m = t[i] or t[#t] or ""
+ if m == "|" then
+ m = "\\enabledelimiter\\middle|\\relax\\disabledelimiter"
+ elseif m == doublebar then
+ m = "\\enabledelimiter\\middle|\\relax\\disabledelimiter"
+ elseif m == "{" then
+ m = "\\{"
+ elseif m == "}" then
+ m = "\\}"
+ end
+ context(m)
+ end
+ end
+ end
+ end
+ ctx_enabledelimiter()
+ if r then
+ context(r_replacements[right] or o_replacements[right] or "")
+ else
+ context(right)
+ context(o_replacements["@r"])
+ end
+ ctx_disabledelimiter()
+end
+
+-- local function flush(e,tag,toggle)
+-- if tag == "none" then
+-- -- if not toggle then
+-- context("{}") -- {} starts a new ^_ set
+-- -- end
+-- elseif toggle then
+-- context("^{")
+-- xmlsprint(e.dt)
+-- context("}{}") -- {} starts a new ^_ set
+-- else
+-- context("_{")
+-- xmlsprint(e.dt)
+-- context("}")
+-- end
+-- return not toggle
+-- end
+--
+-- function mathml.mmultiscripts(id)
+-- local done, toggle = false, false
+-- for e in lxmlcollected(id,"/*") do
+-- local tag = e.tg
+-- if tag == "mprescripts" then
+-- context("{}")
+-- done = true
+-- elseif done then
+-- toggle = flush(e,tag,toggle)
+-- end
+-- end
+-- local done, toggle = false, false
+-- for e in lxmlcollected(id,"/*") do
+-- local tag = e.tg
+-- if tag == "mprescripts" then
+-- break
+-- elseif done then
+-- toggle = flush(e,tag,toggle)
+-- else
+-- xmlsprint(e)
+-- done = true
+-- end
+-- end
+-- end
+
+function mathml.mmultiscripts(id)
+ local prescripts = false
+ local subscripts = true
+ local firstdone = false
+ for e in lxmlcollected(id,"/*") do
+ if firstdone then
+ xmlsprint(e.dt)
+ firstdone = true
+ else
+ local tag = e.tg
+ if tag == "none" then
+ subscripts = not subscripts
+ elseif tag == "prescripts" then
+ prescripts = true
+ subscripts = true
+ elseif subscripts then
+ if prescripts then
+ context("\\subprescript{")
+ xmlsprint(e.dt)
+ context("}")
+ end
+ subscripts = false
+ else
+ if prescripts then
+ context("\\superprescript{")
+ xmlsprint(e.dt)
+ context("}")
+ end
+ subscripts = true
+ end
+ end
+ end
+ local prescripts = false
+ local subscripts = true
+ local firstdone = false
+ for e in lxmlcollected(id,"/*") do
+ if firstdone then
+ firstdone = true
+ else
+ local tag = e.tg
+ if tag == "none" then
+ subscripts = not subscripts
+ elseif tag == "prescripts" then
+ prescripts = true
+ subscripts = true
+ elseif subscripts then
+ if not prescripts then
+ context("\\subscript{")
+ xmlsprint(e.dt)
+ context("}")
+ end
+ subscripts = false
+ else
+ if not prescripts then
+ context("\\superscript{")
+ xmlsprint(e.dt)
+ context("}")
+ end
+ subscripts = true
+ end
+ end
+ end
+end
+
+local columnalignments = {
+ left = "flushleft",
+ right = "flushright",
+ center = "middle",
+}
+
+local rowalignments = {
+ top = "high",
+ bottom = "low",
+ center = "lohi",
+ baseline = "top",
+ axis = "lohi",
+}
+
+local frametypes = {
+ none = "off",
+ solid = "on",
+ dashed = "on",
+}
+
+-- crazy element ... should be a proper structure instead of such a mess
+
+function mathml.mcolumn(root)
+ root = getid(root)
+ local matrix, numbers = { }, 0
+ local function collect(m,e)
+ local tag = e.tg
+ if tag == "mi" or tag == "mn" or tag == "mo" or tag == "mtext" then
+ local str = xmltext(e)
+ str = lpegmatch(p_strip,str)
+ for s in utfcharacters(str) do
+ m[#m+1] = { tag, s }
+ end
+ if tag == "mn" then
+ local n = utflen(str)
+ if n > numbers then
+ numbers = n
+ end
+ end
+ elseif tag == "mspace" or tag == "mline" then
+ local str = e.at.spacing or ""
+ for s in utfcharacters(str) do
+ m[#m+1] = { tag, s }
+ end
+ -- elseif tag == "mline" then
+ -- m[#m+1] = { tag, e }
+ end
+ end
+ for e in lxmlcollected(root,"/*") do
+ local m = { }
+ matrix[#matrix+1] = m
+ if e.tg == "mrow" then
+ -- only one level
+ for e in lxmlcollected(e,"/*") do
+ collect(m,e)
+ end
+ else
+ collect(m,e)
+ end
+ end
+ ctx_halign()
+ ctx_bgroup()
+ context([[\hss\startimath\alignmark\stopimath\aligntab\startimath\alignmark\stopimath\cr]])
+ for i=1,#matrix do
+ local m = matrix[i]
+ local mline = true
+ for j=1,#m do
+ if m[j][1] ~= "mline" then
+ mline = false
+ break
+ end
+ end
+ if mline then
+ ctx_noalign([[\obeydepth\nointerlineskip]])
+ end
+ for j=1,#m do
+ local mm = m[j]
+ local tag, chr = mm[1], mm[2]
+ if tag == "mline" then
+ -- This code is under construction ... I need some real motivation
+ -- to deal with this kind of crap.
+--~ local n, p = true, true
+--~ for c=1,#matrix do
+--~ local mc = matrix[c][j]
+--~ if mc then
+--~ mc = mc[2]
+--~ if type(mc) ~= "string" then
+--~ n, p = false, false
+--~ break
+--~ elseif find(mc,"^[%d ]$") then -- rangecheck is faster
+--~ -- digit
+--~ elseif not find(mc,"^[%.%,]$") then -- rangecheck is faster
+--~ -- punctuation
+--~ else
+--~ n = false
+--~ break
+--~ end
+--~ end
+--~ end
+--~ if n then
+--~ chr = "\\mmlmcolumndigitrule"
+--~ elseif p then
+--~ chr = "\\mmlmcolumnpunctuationrule"
+--~ else
+--~ chr = "\\mmlmcolumnsymbolrule" -- should be widest char
+--~ end
+ chr = "\\hrulefill"
+ elseif tag == "mspace" then
+ chr = "\\mmlmcolumndigitspace" -- utfchar(0x2007)
+ end
+ if j == numbers + 1 then
+ context("\\aligntab")
+ end
+ local nchr = n_replacements[chr]
+ context(nchr or chr)
+ end
+ ctx_crcr()
+ end
+ ctx_egroup()
+end
+
+local spacesplitter = lpeg.tsplitat(" ")
+
+function mathml.mtable(root)
+ -- todo: align, rowspacing, columnspacing, rowlines, columnlines
+ root = getid(root)
+ local at = root.at
+ local rowalign = at.rowalign
+ local columnalign = at.columnalign
+ local frame = at.frame
+ local rowaligns = rowalign and lpegmatch(spacesplitter,rowalign)
+ local columnaligns = columnalign and lpegmatch(spacesplitter,columnalign)
+ local frames = frame and lpegmatch(spacesplitter,frame)
+ local framespacing = at.framespacing or "0pt"
+ local framespacing = at.framespacing or "-\\ruledlinewidth" -- make this an option
+
+ ctx_bTABLE { frame = frametypes[frame or "none"] or "off", offset = framespacing, background = "" } -- todo: use xtables and definextable
+ for e in lxmlcollected(root,"/(mml:mtr|mml:mlabeledtr)") do
+ ctx_bTR()
+ local at = e.at
+ local col = 0
+ local rfr = at.frame or (frames and frames [#frames])
+ local rra = at.rowalign or (rowaligns and rowaligns [#rowaligns])
+ local rca = at.columnalign or (columnaligns and columnaligns[#columnaligns])
+ local ignorelabel = e.tg == "mlabeledtr"
+ for e in lxmlcollected(e,"/mml:mtd") do -- nested we can use xml.collected
+ col = col + 1
+ if ignorelabel and col == 1 then
+ -- get rid of label, should happen at the document level
+ else
+ local at = e.at
+ local rowspan = at.rowspan or 1
+ local columnspan = at.columnspan or 1
+ local cra = rowalignments [at.rowalign or (rowaligns and rowaligns [col]) or rra or "center"] or "lohi"
+ local cca = columnalignments[at.columnalign or (columnaligns and columnaligns[col]) or rca or "center"] or "middle"
+ local cfr = frametypes [at.frame or (frames and frames [col]) or rfr or "none" ] or "off"
+ ctx_bTD { align = formatters["{%s,%s}"](cra,cca), frame = cfr, nx = columnspan, ny = rowspan }
+ if xmlempty(e,".") then
+ -- nothing, else hsize max
+ else
+ ctx_startimath()
+ -- ctx_ignorespaces()
+ xmlcprint(e)
+ -- ctx_removeunwantedspaces()
+ ctx_stopimath()
+ end
+ ctx_eTD()
+ end
+ end
+ -- if e.tg == "mlabeledtr" then
+ -- ctx_bTD()
+ -- xmlcprint(xml.first(e,"/!mml:mtd"))
+ -- ctx_eTD()
+ -- end
+ ctx_eTR()
+ end
+ ctx_eTABLE()
+end
+
+function mathml.csymbol(root)
+ root = getid(root)
+ local at = root.at
+ local encoding = at.encoding or ""
+ local hash = url.hashed(lower(at.definitionUrl or ""))
+ local full = hash.original or ""
+ local base = hash.path or ""
+ local text = strip(xmltext(root) or "")
+ ctx_mmlapplycsymbol(full,base,encoding,text)
+end
+
+local p = lpeg.Cs(((1-lpegpatterns.whitespace)^1 / "mml:enclose:%0" + (lpegpatterns.whitespace^1)/",")^1)
+
+function mathml.menclosepattern(root)
+ root = getid(root)
+ local a = root.at.notation
+ if a and a ~= "" then
+ context(lpegmatch(p,a))
+ end
+end
+
+function xml.is_element(e,name)
+ return type(e) == "table" and (not name or e.tg == name)
+end
+
+function mathml.cpolar(root)
+ root = getid(root)
+ local dt = root.dt
+ ctx_mathopnolimits("Polar")
+ ctx_left(false,"(")
+ for k=1,#dt do
+ local dk = dt[k]
+ if xml.is_element(dk,"sep") then
+ context(",")
+ else
+ xmlsprint(dk)
+ end
+ end
+ ctx_right(false,")")
+end
+
+-- crap .. maybe in char-def a mathml overload
+
+local mathmleq = {
+ [utfchar(0x00AF)] = utfchar(0x203E),
+}
+
+function mathml.extensible(chr)
+ context(mathmleq[chr] or chr)
+end
+
+--
+
+local function install(name,action)
+ interfaces.implement {
+ name = name,
+ public = true,
+ -- protected = true, -- some definitely not !
+ arguments = "argument",
+ actions = action,
+ }
+end
+
+install("mathml_mi", mathml.mi)
+install("mathml_mo", mathml.mo)
+install("mathml_mn", mathml.mn)
+install("mathml_mfenced", mathml.mfenced)
+install("mathml_mmultiscripts", mathml.mmultiscripts)
+install("mathml_menclosepattern", mathml.menclosepattern)
+install("mathml_mtable", mathml.mtable)
+install("mathml_mcolumn", mathml.mcolumn)
+install("mathml_extensible", mathml.extensible)
+
+install("mathml_csymbol", mathml.csymbol)
+install("mathml_cpolar", mathml.cpolar)
diff --git a/Master/texmf-dist/tex/context/modules/mkxl/x-mathml.mkxl b/Master/texmf-dist/tex/context/modules/mkxl/x-mathml.mkxl
new file mode 100644
index 00000000000..adabf777c3a
--- /dev/null
+++ b/Master/texmf-dist/tex/context/modules/mkxl/x-mathml.mkxl
@@ -0,0 +1,2463 @@
+%D \module
+%D [ file=x-mathml,
+%D version=2008.05.29, (evolved from pre 2000 code)
+%D title=\CONTEXT\ XML Modules,
+%D subtitle=\MATHML,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D We should update this one wrt grouping and styles.
+
+% \xmlfilter{#1}{/*/name()} -> \xmltag
+
+% This implementation looks like a hack ... this is because we deal with all weird
+% cases we ran into, including abuse that was supposed to render ok (even if it
+% didn't in other renderers) .. it was simply expected to work that way. It is also
+% the product of stepwise adaptation to what we run into. And that in turn is often
+% determined by the tools that were used to produce the \XML. Even worse is the
+% cycling between coding that happens in projects: from content\ \MATHML\ to
+% OpenMath to asciimath to presentation \MATHML\ to \unknown\ which all depends on
+% what tools are available to render in a browser (where first \MATHML\ was hardly
+% supported, then became accepted, then was taken over by mathjax, then merged with
+% other input methods and who knopws what comes next in these days where technologies
+% are shortlived and the next best thing is already waiting around the corner.
+%
+% So, consider this module to be under constant construction and clean up. We still
+% use a funny mix of xml, tex and lua. I could rewrite the lot but it also shows
+% how context evolves. I might end up with a lua-only implementation some day, but
+% I must find a real good reason to spend time on it as so far it never paid back.
+% As far as I can tell, publishers have never shown much (real) interest anyway or
+% at least I haven't met one who cared to invest in it. If they run into \MATHML\
+% they just expect it to be supported.
+%
+% This variant is adapted to \LMTX\ and might evolve with upcoming variations of
+% the standard. As with \SVG\ and probably other \XML\ definitions that target a
+% specific domain, \MATHML\ is now more just something for browsers and \HTML\
+% usage (although support fluctuates). It's getting less generic (or at least we
+% see no more structural elements showing up) and with \CSS\ becoming the
+% recomended way to control local optimizations it indeed looks like only browsers
+% are the target, unless we can just ignore all that. Limitations of renderers,
+% specific usage, application determined \XML\ ... where will it end. All we can do
+% is follow and try to keep up, but maybe the more web it becomes, the less \TEX\
+% users need to care (read: can stick to \TEX\ coding).
+%
+% See the \MKII\ and \MKIV\ files for a history and the hacks we had to use in
+% the past.
+
+\writestatus{loading}{ConTeXt XML Macros / MathML Renderer}
+
+\unprotect
+
+\usemodule[x][calcmath]
+%usemodule[x][asciimath]
+
+\startmodule [mathml]
+
+\registerctxluafile{x-mathml}{autosuffix}
+
+\setupxml[\c!entities=\v!yes] % load big entities table
+
+\def\ctxmodulemathml#1{\ctxlua{moduledata.mathml.#1}}
+
+\startxmlsetups xml:mml:define
+ \xmlsetsetup{#1} {(formula|subformula)} {mml:formula}
+ \xmlfilter {#1} {omt:*/function(remapopenmath)}
+ \xmlfilter {#1} {mml:bind/function(remapmmlbind)}
+ \xmlfilter {#1} {mml:csymbol/function(remapmmlcsymbol)}
+ \xmlsetsetup{#1} {mml:*} {mml:*}
+ \xmlsetsetup{#1} {mml:apply/mml:apply/mml:inverse/../..} {mml:apply:inverse}
+ \xmlstrip {#1} {(mml:mi|mml:mo|mml:mn|mml:csymbol)}
+\stopxmlsetups
+
+\xmlregisterns{omt}{openmath}
+\xmlregisterns{mml}{mathml}
+
+\xmlregistersetup{xml:mml:define}
+
+\xmlmapvalue {mml:math:mode} {display} {\displaymathematics} % we had this already
+\xmlmapvalue {mml:math:mode} {inline} {\inlinemathematics }
+
+\xmlmapvalue {mml:math:display} {block} {\displaymathematics} % before this showed up
+\xmlmapvalue {mml:math:display} {inline} {\inlinemathematics }
+
+\xmlmapvalue {mml:math:dir} {ltr} {\setfalse\c_math_right_to_left\math_basics_synchronize_direction}
+\xmlmapvalue {mml:math:dir} {rtl} {\settrue \c_math_right_to_left\math_basics_synchronize_direction}
+
+\edef\mmlconstantone {1}
+\edef\mmlconstantfalse{false}
+
+\startxmlsetups mml:math
+ \begingroup
+ \enableautofences
+ \enableautofencemode
+ \xmlval {mml:math:dir} {\xmlatt{#1}{dir}} {}
+ \xmlval {mml:math:display} {\xmlatt{#1}{display}} {
+ \xmlval {mml:math:mode} {\xmlatt{#1}{mode}} {
+ \automathematics
+ }
+ }
+ {
+ \xmlflush{#1}
+ }
+ \endgroup
+\stopxmlsetups
+
+\startxmlsetups mml:imath
+ \inlinemathematics {
+ \enableautofences
+ \enableautofencemode
+ \xmlflush{#1}
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:dmath
+ \displaymathematics {
+ \enableautofences
+ \enableautofencemode
+ \xmlflush{#1}
+ }
+\stopxmlsetups
+
+%D First we define some general formula elements.
+
+\startxmlsetups mml:formula
+ \edef\mmlformulaid {\xmlatt{#1}{id}}
+ \edef\mmlformulalabel {\xmlatt{#1}{label}\mmlformulaid}
+ \edef\mmlformulasublabel{\xmlatt{#1}{sublabel}\mmlformulaid}
+ \doifsomething\mmlformulalabel{\placeformula[\mmlformulalabel]{\mmlformulasublabel}}
+ \startformula
+ \xmlfirst{#1}{/mml:math}
+ \stopformula
+\stopxmlsetups
+
+
+\setfalse\mmlignoredelimiter % alternatively we could turn it on/off inside the start/stop and ignore \left\right\middle otherwise
+
+\let\mmlleftdelimiter \autofenceopen
+\let\mmlmiddledelimiter \autofencemiddle
+\let\mmlrightdelimiter \autofenceclose
+\let\mmlleftorrightdelimiter\autofenceboth
+
+\def\mmlchar#1{\char#1 } % used in lua code
+
+%D The rendering macros:
+
+\def\MMLrm{\mr}
+
+\def\MMLseparator#1{\removeunwantedspaces{#1}\ignorespaces} % nils space after separator
+\def\MMLseparator#1{,} % todo, for europe we need to block the space
+
+%D Since I only had the draft of MathML 2 and later 3 as example of rendering, there
+%D are probably a lot of omissions and misinterpretations. At least I learned some
+%D bits and pieces of math rendering.
+%D
+%D The main complications were not so much the math, but to find the most efficient
+%D way to handle elements without spacing beging messed up. The first implementation
+%D was aimed at getting reasonable output, this second implementation is already
+%D better in terms of handling nesting, and I will definitely need a third one that
+%D has more efficient and less ugly code.
+%D
+%D The \TEX\ part is not that complicated and once the preprocessor was okay, the
+%D rest way just a lot of keying and testing. It all comes down to gobbling,
+%D redefining, and not so much to parsing.
+%D
+%D The second implementation expanded the whole math sequence into an internal \TEX\
+%D representation. This is a rather clean and fast process. Filtering and testing
+%D takes place by redefining the internal representation macros.
+%D
+%D The third implementation may look a bit more messy in some respects. This is
+%D because in \TEX\ it's not that trivial to implement a tree handler. We use a
+%D stack for the \type {apply} element and other sequential content. Occasionally we
+%D need to peek into child elements which involves messy code. This implementation
+%D is closer to the normal \XML\ handling in \CONTEXT.
+%D
+%D This fourth variant just improves on the third. It uses some tricks available in
+%D \LUAMETATEX\ where we have extended the math machinery.
+
+%D We start with the parent elements and the option handler.
+
+\protected\def\xmlmathmldirective#1{\dosetvalue{MML#1}}
+
+\xmlinstalldirective{mathml}{xmlmathmldirective}
+
+%D In the styles, options can be set with:
+
+\protected\def\setupMMLappearance[#1]{\dodoubleargument\getparameters[MML#1]} % no @@ because passed to lua
+
+%D We will apply inner math to all bits and pieces made up by an \type {apply}.
+
+\def\MMLmathinner
+ {\ifinner
+ \expandafter\firstofoneargument
+ \else
+ \expandafter\mathinner
+ \fi}
+
+%D Auxiliary MathML macros: (to be generalized)
+
+\def\mmlfirst #1{\xmlelement{#1}{1}} % we can move these inline if needed
+\def\mmlsecond #1{\xmlelement{#1}{2}}
+\def\mmlthird #1{\xmlelement{#1}{3}}
+\def\mmlprelast#1{\xmlelement{#1}{-2}}
+\def\mmllast #1{\xmlelement{#1}{-1}}
+
+\starttexdefinition doifelsemmlfunction #1
+ \xmldoifelse {#1} {/mml:fn} {
+ \firstoftwoarguments
+ } {
+ \xmldoifelse {#1} {/mml:apply/mml:fn} {
+ \firstoftwoarguments
+ } {
+ \xmldoifelse {#1} {/mml:ci[@type=='fn']} {
+ \firstoftwoarguments
+ } {
+ \secondoftwoarguments
+ }
+ }
+ }
+\stoptexdefinition
+
+%D A couple of lists:
+
+\convertargument
+ mml:times|mml:divide|mml:power|%
+ mml:lt|mml:gt|mml:eq|mml:leq|mml:geq|%
+ mml:in|mml:inverse|%
+ mml:fn|%
+ mml:floor|mml:ceiling|%
+ mml:mean|%
+ mml:selector|%
+ mml:abs|mml:int|mml:limit|mml:sum|mml:product|%
+ mml:outerproduct|mml:innerproduct|mml:scalarproduct%
+\to \MMLcmainresetlist
+
+\convertargument
+ mml:sin|mml:arcsin|mml:sinh|mml:arcsinh|%
+ mml:cos|mml:arccos|mml:cosh|mml:arccosh|%
+ mml:tan|mml:arctan|mml:tanh|mml:arctanh|%
+ mml:cot|mml:arccot|mml:coth|mml:arccoth|%
+ mml:csc|mml:arccsc|mml:csch|mml:arccsch|%
+ mml:sec|mml:arcsec|mml:sech|mml:arcsech|%
+ mml:ln|mml:exp|mml:log|%
+ mml:abs|mml:int|mml:limit|mml:sum|mml:product|%
+ mml:fn%
+\to \MMLcfunctionlist
+
+\convertargument
+ mml:sin|mml:arcsin|mml:sinh|mml:arcsinh|%
+ mml:cos|mml:arccos|mml:cosh|mml:arccosh|%
+ mml:tan|mml:arctan|mml:tanh|mml:arctanh|%
+ mml:cot|mml:arccot|mml:coth|mml:arccoth|%
+ mml:csc|mml:arccsc|mml:csch|mml:arccsch|%
+ mml:sec|mml:arcsec|mml:sech|mml:arcsech|%
+ mml:ln|mml:exp|mml:log|%
+ mml:abs%
+\to \MMLcpurefunctionlist
+
+\convertargument
+ mml:diff|mml:partialdiff|mml:root%
+\to \MMLcconstructlist
+
+%D We use inner and grouping (begin/end and no b/e) else we get problems with
+%D 1/2(1+2) and alike. 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 version 3 the following
+%D definitions may be sub optimal or more complex than actually needed.
+
+%D We will more more to lua ...
+
+% simple version
+
+\newinteger\@MMLlevel \def\MMLcreset{\@MMLlevel\zerocount}
+
+\lettonothing\MMLctempresetlist \def\setMMLcreset{\edef\MMLctempresetlist}
+
+\let\MMLdoL\donothing
+\let\MMLdoR\donothing
+
+\newinteger\mmlapplydepth \def\MMLcreset{\mmlapplydepth\zerocount}
+
+\startxmlsetups mml:apply
+ \MMLmathinner {
+ % \xmldoif {#1} {/(\MMLcmainresetlist\string|\MMLctempresetlist)} {
+ % \MMLcreset
+ % }
+ \edef\mmlapplyopentoken {\xmlatt{#1}{open}}
+ \edef\mmlapplyclosetoken{\xmlatt{#1}{close}}
+ \ifcase\mmlapplydepth
+ \orelse\ifempty\mmlapplyopentoken
+ \def\mmlapplyopentoken {(}
+ \def\mmlapplyclosetoken{)}
+ \fi
+ \advanceby\mmlapplydepth\plusone
+ \begingroup
+ \ifempty\mmlapplyopentoken
+ \let\MMLdoL\donothing
+ \let\MMLdoR\donothing
+ \else
+ \edef\MMLdoL{\noexpand\left \mmlapplyopentoken }
+ \edef\MMLdoR{\noexpand\right\mmlapplyclosetoken}
+ \fi
+ \lettonothing\MMLctempresetlist
+ \xmldoifelse {#1} {/mml:apply} {
+% % <apply> <apply> ... </apply> <ci> .. </ci> </apply>
+% \xmldoifelse {#1} {/mml:apply(mml:plus|mml:minus)} {% [a]
+% % yet incomplete and rather untested
+% % <apply> <apply> <minus/> <tan/> <cos/> </apply> <ci>x</ci> </apply>
+ } {% [b]
+% \MMLcreset
+ }
+% \MMLdoL
+% \mmlfirst{#1}
+% \ifconditional\somepostponedMMLactions
+% \postponedMMLactions
+% \else
+% \left(\MMLcreset\mmlsecond{#1}\right)
+% \fi
+% \MMLdoR
+% } {
+ \edef\mmlapplyaction{\xmlfilter{#1}{/*/tag()}}
+ \doifelsesetups {mml:apply:mml:\mmlapplyaction} {
+ \xmlsetup{#1}{mml:apply:mml:\mmlapplyaction}
+ } {
+% \MMLdoL
+ \xmlsetup{#1}{mml:\mmlapplyaction}
+% \MMLdoR
+ }
+% }
+ \endgroup
+ \advanceby\mmlapplydepth\minusone
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:apply:mml:apply
+ \xmlflush{#1}
+ \xmlall{#1}{../[position()>1]}
+\stopxmlsetups
+
+\startxmlsetups mml:apply:mml:fn
+ \xmldoifelse {#1} {/mml:fn/mml:ci} {
+ \edef\mmlfnci{\xmlstripped{#1}{/mml:fn/mml:ci}}
+ \doifelsesetups{mmc:fn:\mmlfnci} {
+ \xmlsetup{#1}{mmc:fn:\mmlfnci}
+ } {
+ \MMLcreset
+ \MMLdoL
+ \mmlfirst{#1}
+ \ifnum\xmlcount{#1}{/*}>\plusone
+ \negthinspace % not enough
+ \left(\MMLcreset\xmlconcatrange{#1}{/*}{2}{}{\MMLseparator,}\right)
+ \fi
+ \MMLdoR
+ }
+ } {
+ \MMLcreset
+ \MMLdoL
+ \xmlall{#1}{/*}
+ \MMLdoR
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:apply:mml:csymbol
+ \xmlsetup{#1}{mml:csymbol}% \MMLdoL/MMLdoR to be handled in plugin
+\stopxmlsetups
+
+\startxmlsetups mml:apply:mml:ci
+ \xmlfirst{#1}{/mml:ci}
+ \ifnum\xmlcount{#1}{/*}>\plusone
+ \left(\MMLcreset\xmlconcatrange{#1}{/*}{2}{}{\MMLseparator,}\right)
+ \fi
+\stopxmlsetups
+
+% reln
+
+\startxmlsetups mml:reln
+ \writestatus{XML}{MathML element "reln" is obsolete}
+\stopxmlsetups
+
+% fn
+
+% plusminus ±
+
+\startxmlsetups mmc:fn:\utfchar{"00B1}
+ \MMLdoL
+ \xmlconcat{#1}{/[position()>1]}{\utfchar{"00B1}}
+ \MMLdoR
+\stopxmlsetups
+
+% minusplus
+
+\startxmlsetups mmc:fn:\utfchar{"2213}
+ \MMLdoL
+ \xmlconcat{#1}{/[position()>1]}{\utfchar{"2213}}
+ \MMLdoR
+\stopxmlsetups
+
+\startxmlsetups mmc:fn
+ \begingroup
+ \edef\mmlnoffn{\xmlcount{#1}{/*}}
+ \ifnum\mmlnoffn>\plustwo
+ \def\MMCfnleft {\left(}
+ \def\MMCfnright{\right)}
+ \else
+ \let\MMCfnleft \relax
+ \let\MMCfnright\relax
+ \fi
+ \xmldoifelse {#1} {/mml:ci} {
+ \edef\mmlfnci{\xmltext{#1}{/mml:ci}}
+ \doifelsesetups{mmc:fn:\mmlfnci} {
+ \xmlsetup{#1}{mmc:fn:\mmlfnci}
+ } {
+ \MMLcreset
+ \mmlfirst{#1}
+ }
+ } {
+ \xmldoifelse {#1} {/mml:apply} {
+ \xmldoifelse {#1} {/(mml:plus\string|mml:minus)} {
+ \left(\mmlfirst{#1}\right)
+ } {
+ \mmlfirst{#1}
+ }
+ \ifnum\mmlnoffn>\plusone
+ \left(\xmlall{#1}{/!mml:apply}\right)
+ \fi
+ } {
+ \MMLcreset
+ \negthinspace
+ \MMCfnleft
+ \ifnum\mmlnoffn=\plustwo,\fi
+ \xmlconcat{#1}{/*}{2}{}{\MMLseparator,}
+ \MMCfnright
+ }
+ }
+ \endgroup
+\stopxmlsetups
+
+\startxmlsetups mmc:fn:apply % where used?
+ \xmldoifelse {#1} {/mml:ci} {
+ \edef\mmlfnci{\xmltext{#1}{/mml:ci}}
+ \doifelsesetups{mmc:fn:\mmlfnci} {
+ \xmlsetup{#1}{mmc:fn:\mmlfnci}
+ } {
+ \MMLcreset
+ \mmlfirst{#1}
+ \ifnum\xmlcount{#1}{/*}>\plusone
+ \negthinspace
+ \left(\MMLcreset\xmlconcat{#1}{2}{}{\MMLseparator,}\right)
+ \fi
+ }
+ } {
+ \endgroup
+ \MMLcreset
+ \mmlfirst{#1}
+ }
+\stopxmlsetups
+
+%D The next definition provide a kind of plug-in mechanism (see the open math
+%D extension module).
+
+% http://www.publishers.com/somename
+%
+% called at the lua end
+
+\starttexdefinition mmlapplycsymbol #1#2#3#4
+ % #1=full url, #2=name, #3=encoding, #4=text
+ \doifelse {#3} {text} {
+ \text{#4}
+ } {
+ \doifelsesetups {mml:csymbol:#1} {
+ % full url
+ \fastsetup{mml:csymbol:#1}
+ } {
+ % somename (fallback)
+ \doifelsesetups {mml:csymbol:#2} {
+ \fastsetup{mml:csymbol:#2}
+ } {
+ \xmlval{mmc:cs}{#3}{}% todo
+ }
+ }
+ }
+\stoptexdefinition
+
+\startxmlsetups mml:csymbol
+ \mathml_csymbol{#1}
+\stopxmlsetups
+
+\startxmlsetups mml:csymbol:cdots
+ \cdots
+\stopxmlsetups
+
+% \startxmlsetups mml:csymbol:<url> \stopxmlsetups
+
+%D Alternative b will convert periods into comma's:
+
+\setupMMLappearance[cn] [\c!alternative=\v!a]
+\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
+
+\startxmlsetups mml:cs \xmlcommand{#1}{/}{mml:cs:\xmlattdef{#1}{type}{default}} \stopxmlsetups
+\startxmlsetups mml:ci \xmlcommand{#1}{/}{mml:ci:\xmlattdef{#1}{type}{default}} \stopxmlsetups
+\startxmlsetups mml:cn \xmlcommand{#1}{/}{mml:cn:\xmlattdef{#1}{type}{default}} \stopxmlsetups
+
+% helpers cn / todo: \mn{...}
+
+\startxmlsetups mml:cn:default
+ \mathopnolimits{\xmlflush{#1}}
+\stopxmlsetups
+
+% helpers ci
+
+\startxmlsetups mml:ci:default
+ \xmlflush{#1}
+\stopxmlsetups
+
+\startxmlsetups mml:ci:set
+ {\blackboard{\xmlflush{#1}}} % todo
+\stopxmlsetups
+
+\startxmlsetups mml:ci:vector
+ \overrightarrow{\xmlflush{#1}}
+\stopxmlsetups
+
+\startxmlsetups mml:ci:matrix
+ {\bi\xmlflush{#1}}
+\stopxmlsetups
+
+\startxmlsetups mml:ci:function
+ \xmlflush{#1}% \negthinspace
+\stopxmlsetups
+
+\startxmlsetups mml:ci:fn
+ \xmlsetup{#1}{mml:ci:function}
+\stopxmlsetups
+
+\startxmlsetups mml:ci:complex-cartesian
+ \xmlsetup{#1}{mml:cn:complex}
+\stopxmlsetups
+
+\startxmlsetups mml:ci:complex
+ \xmlsetup{#1}{mml:cn:complex}
+\stopxmlsetups
+
+\startxmlsetups mml:ci:complex-polar
+ \xmlsetup{#1}{mml:cn:polar}
+\stopxmlsetups
+
+\startxmlsetups mml:ci:polar
+ \xmlsetup{#1}{mml:cn:polar}
+\stopxmlsetups
+
+% helpers ci
+
+\startxmlsetups mml:cn:default
+ \xmlflush{#1}
+\stopxmlsetups
+
+\startxmlsetups mml:cn:integer
+ \mathatom class \mathdigitcode \bgroup
+ \edef\mmlintegerbase{\xmlattdef{#1}{base}{}}
+ \ifempty\mmlintegerbase
+ \xmlflush{#1}
+ \else
+ \mtext {
+ \nospacing
+ \MMLcCNbasedata{\xmlflush{#1}}
+ }
+ \doifnot \MMLbasesymbol \v!no {
+ \normalsubscript {
+ \mtext {
+ \processaction
+ [\MMLbasesymbol]
+ [\v!characters=>\MMLcCNbasestring BODH,
+ \v!text=>\MMLcCNbasestring{BIN}{OCT}{DEC}{HEX},
+ \s!unknown=>\mmlintegerbase]
+ }
+ }
+ }
+ \fi
+ \egroup
+\stopxmlsetups
+
+\def\MMLcCNbasedata#1%
+ {\ifnum\mmlintegerbase>10 \relax{\mr#1}\else#1\fi}
+
+\def\MMLcCNbasestring#1#2#3#4%
+ {\ifnum\mmlintegerbase= 2 #1\orelse
+ \ifnum\mmlintegerbase= 8 #2\orelse
+ \ifnum\mmlintegerbase=10 #3\orelse
+ \ifnum\mmlintegerbase=16 #4\else
+ \mmlintegerbase \fi}
+
+\startxmlsetups mml:cn:polar
+ \xmlsetup{#1}{mml:cn:polar:\MMLpolaralternative}
+\stopxmlsetups
+
+\startxmlsetups mml:cn:polar:a
+ \mathml_cpolar{#1}
+\stopxmlsetups
+
+\startxmlsetups mml:cn:polar:b
+% {\mr e}\normalsuperscript{\xmlsnippet{#1}{1}+\xmlsnippet{#1}{3}\thinspace{\mr i}}
+ \ee\normalsuperscript{\xmlsnippet{#1}{1}+\xmlsnippet{#1}{3}\ii}
+\stopxmlsetups
+
+\startxmlsetups mml:cn:polar:c
+% \exp\left(\xmlsnippet{#1}{1}+\xmlsnippet{#1}{3}\thinspace{\mr i}\right)
+ \exp\left(\xmlsnippet{#1}{1}+\xmlsnippet{#1}{3}\ii\right)
+\stopxmlsetups
+
+\startxmlsetups mml:cn:complex-polar
+ \xmlsetup{#1}{mml:cn:polar}
+\stopxmlsetups
+
+\startxmlsetups mml:cn:complex % todo ( )
+% \left(\xmlsnippet{#1}{1} + \xmlsnippet{#1}{3}\thinspace{\mr i}\right)
+ \left(\xmlsnippet{#1}{1} + \xmlsnippet{#1}{3}\ii\right)
+\stopxmlsetups
+
+\startxmlsetups mml:cn:complex-cartesian
+ \xmlsetup{#1}{mml:cn:complex}
+\stopxmlsetups
+
+\startxmlsetups mml:cn:float
+ \doifelse \MMLfloatsymbol \v!no {
+ % make sure that e shows up ok
+ \mathopnolimits{\xmlflush{#1}}
+ } {
+ % we should ignore \entities !
+ \edef\mmlfloatstring{\xmlflush{#1}}
+ \splitstring\mmlfloatstring\at e\to\first\and\last
+ \ifempty\first
+ \mmlfloatstring
+ \orelse\ifempty\last
+ \mmlfloatstring
+ \else
+ \first
+ \doifelse \MMLfloatsymbol {dot} \cdot \times
+ 10\normalsuperscript{\last}
+ \fi
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:cn:real
+ \xmlsetup{#1}{mml:cn:float}
+\stopxmlsetups
+
+\startxmlsetups mml:cn:e-notation
+ \doifelse \MMLenotationsymbol \v!no {
+ \xmlsnippet{#1}{1}
+ \unskip\mathopnolimits{e}\ignorespaces
+ \xmlsnippet{#1}{3}
+ } {
+ \xmlsnippet{#1}{1}
+ \doifelse \MMLenotationsymbol {dot} \cdot
+ \times10\normalsuperscript{\xmlsnippet{#1}{3}}
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:cn:logical
+ \mathopnolimits{\xmlflush{#1}}
+\stopxmlsetups
+
+\startxmlsetups mml:cn:rational
+ \xmldoifelse {#1} {/mml:sep} {
+ \mmlfrac
+ {\xmlsnippet{#1}{1}}
+ {\xmlsnippet{#1}{3}}
+ } {
+ \xmlflush{#1}
+ }
+\stopxmlsetups
+
+% interval
+
+\setupMMLappearance[interval][\c!alternative=\v!a,\c!separator={,}]
+
+% when empty element, then it's an apply
+
+\startxmlsetups mml:interval
+ \doifelse {\xmltag{#1}} {apply} {
+ % #1 == apply
+ \let\mmlintervalfirst \mmlsecond
+ \let\mmlintervalsecond\mmlthird
+ \xmlsetup{#1}{mml:interval:\xmlattributedef{#1}{/mml:interval}{closure}{closed}}
+ } {
+ % #1 == interval
+ \let\mmlintervalfirst \mmlfirst
+ \let\mmlintervalsecond\mmlsecond
+ \xmlsetup{#1}{mml:interval:\xmlattdef{#1}{closure}{closed}}
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:interval:closed
+ \left[\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right]
+\stopxmlsetups
+
+\startxmlsetups mml:interval:open-closed
+ \doifelse \MMLintervalalternative \v!b {
+ \left<\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right]
+ } {
+ \left(\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right]
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:interval:closed-open
+ \doifelse \MMLintervalalternative \v!b {
+ \left[\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right>
+ } {
+ \left[\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right)
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:interval:open
+ \doifelse \MMLintervalalternative \v!b {
+ \left<\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right>
+ } {
+ \left(\mmlintervalfirst{#1}\MMLseparator\MMLintervalseparator\mmlintervalsecond{#1}\right)
+ }
+\stopxmlsetups
+
+% inverse
+
+\setfalse\xmlinversefunction
+
+\startxmlsetups mml:apply:inverse
+ \settrue\xmlinversefunction
+ \xmlsetup{#1}{mml:\xmlfilter{#1}{/mml:apply/*[2]/tag()}}
+\stopxmlsetups
+
+% condition
+
+% maybe a fast \xmlnonfirst
+
+% instead of the following we could do \xmlcontent{#1}{/mml:bvar} etc
+
+\startxmlsetups mml:bvar \xmlflush{#1} \stopxmlsetups
+\startxmlsetups mml:lowlimit \xmlflush{#1} \stopxmlsetups
+\startxmlsetups mml:uplimit \xmlflush{#1} \stopxmlsetups
+\startxmlsetups mml:degree \xmlflush{#1} \stopxmlsetups
+\startxmlsetups mml:logbase \xmlflush{#1} \stopxmlsetups
+\startxmlsetups mml:fn \xmlflush{#1} \stopxmlsetups
+
+\startxmlsetups mml:condition
+% \xmldoif {#1} {/mml:bvar} {
+% \xmlfirst{#1}{/mml:bvar}\mid
+% }
+ \xmlall{#1}{/!(mml:condition\string|mml:bvar)}
+\stopxmlsetups
+
+% declare
+
+\setupMMLappearance[declare][\c!state=\v!start]
+
+\startxmlsetups mml:declare
+ \doif \MMLdeclarestate \v!start {
+ \mathopnolimits{declare}
+ \mmlfirst{#1}
+ \ifnum\xmlcount{#1}{/*}>\plusone
+ \thickspace
+ \mathopnolimits{as}
+ \thickspace
+ \fi
+ \mmlsecond{#1}
+ }
+\stopxmlsetups
+
+% lambda
+
+\setupMMLappearance[lambda][\c!alternative=b]
+
+\startxmlsetups mml:lambda
+ \begingroup
+ \doifelse \MMLlambdaalternative \v!a {
+ \lambda\left(\xmlconcat{#1}{/!mml:lambda}{\MMLseparator,}\right)
+ } {
+ \ifnum\xmlcount{#1}{/mml:bvar}>\plusone
+ \left(\xmlconcat{#1}{/mml:bvar}{\MMLseparator,}\right)
+ \else
+ \xmlfirst{#1}{/mml:bvar}
+ \fi
+ \mapsto
+ \MMLcreset
+ \xmlall{#1}{/!(mml:bvar|mml:lambda)}
+ }
+ \endgroup
+\stopxmlsetups
+
+% compose
+
+\startxmlsetups mml:compose
+ \begingroup
+ \MMLcreset
+% \let\MMLcCIfunction\firstofoneargument % brrr ? ? ?
+ \doifelsemmlfunction {#1} {
+ \left(\xmlconcat{#1}{/!mml:compose}{\circ}\right)
+ } {
+ \xmlconcat{#1}{/!mml:compose}{\circ}
+ }
+ \endgroup
+\stopxmlsetups
+
+\startxmlsetups mml:image
+ \mathopnolimits{image} \left( {\mr\xmlfilter{#1}{/!mml:image/tag()}} \right)
+\stopxmlsetups
+
+\setupMMLappearance[piece][\c!separator=]
+
+\startxmlsetups mml:piecewise
+ \processaction
+ [\MMLpieceseparator]
+ [ \v!yes=>\def\theMMLpieceseparator{,&},
+ \v!no=>\def\theMMLpieceseparator{&},
+ \s!default=>\def\theMMLpieceseparator{&},
+ \s!unknown=>\def\theMMLpieceseparator{\,\,\hbox{\MMLpieceseparator}\,\,}]
+ \cases{\xmlflush{#1}}
+\stopxmlsetups
+
+\startxmlsetups mml:piece
+ \mmlfirst{#1}\theMMLpieceseparator\mathematics{\mmlsecond{#1}}\crcr
+\stopxmlsetups
+
+\startxmlsetups mml:otherwise
+% \xmlflush{#1}\MMLcPIECEseparator&{\mr otherwise}\crcr
+ \xmlflush{#1}&\mtext{otherwise}\crcr
+\stopxmlsetups
+
+% end of piece
+
+\startxmlsetups mml:quotient
+ \lfloor\mmlsecond{#1}/\mmlthird{#1}\rfloor
+\stopxmlsetups
+
+\startxmlsetups mml:factorial
+ \xmlall{#1}{/!factorial}!
+\stopxmlsetups
+
+\setupMMLappearance [divide] [\c!level=\!!maxcard,\c!alternative=\v!a]
+
+\newinteger\mmldividelevel
+
+\startxmlsetups mml:divide
+ \advanceby\mmldividelevel\plusone
+ \doifelse \MMLdividealternative \v!b {
+ \mmlsecond{#1}/\mmlthird{#1}
+ } {
+ \ifnum \mmldividelevel > \MMLdividelevel \relax % threshold
+ \mmlsecond{#1}/\mmlthird{#1}
+ \else
+ \MMLcreset
+ \mmlfrac{\MMLcreset\mmlsecond{#1}}{\MMLcreset\mmlthird{#1}}
+ \fi
+ }
+ \advanceby\mmldividelevel\minusone
+\stopxmlsetups
+
+% min max
+
+% \startxmlsetups mml:min \mathopnolimits{min} \xmlsetup{#1}{mml:minmax} \stopxmlsetups
+\startxmlsetups mml:min \min \xmlsetup{#1}{mml:minmax} \stopxmlsetups
+% \startxmlsetups mml:max \mathopnolimits{max} \xmlsetup{#1}{mml:minmax} \stopxmlsetups
+\startxmlsetups mml:max \max \xmlsetup{#1}{mml:minmax} \stopxmlsetups
+
+\startxmlsetups mml:minmax
+ \xmldoif {#1} {/mml:bvar} {
+ {}\normalsubscript{\xmlfirst{#1}{/mml:bvar}}
+ }
+ \left\{
+ \xmlconcat{#1}{/!(mml:bvar\string|mml:max\string|mml:min)}{\MMLseparator,}
+ \right\}
+\stopxmlsetups
+
+% minus plus
+
+\setupMMLappearance [plus] [\c!alternative=\v!a] % b = no sign -> 3 1/4
+\setupMMLappearance [sign] [\c!reduction=\v!yes]
+
+% alternative b -> geen sign
+
+% branch needed, else (a-b) + (c-d) goes wrong
+% reset check in case of (-x) + 37
+% reset check in case of (-x) + 37
+
+\newinteger\mmlpluscounter
+
+\startxmlsetups mml:plus
+ \doifelse \MMLsignreduction \v!yes {
+ \MMLdoL
+ \xmlsetup{#1}{mml:plus:reset}
+ \xmlcommand{#1}{/!mml:plus}{mml:plus:body}
+ \MMLdoR
+ } {
+ \ifnum\xmlcount{#1}{/!mml:plus}=\plusone
+ +\xmlfirst{#1}{/!mml:plus}
+ \else
+ \MMLdoL
+ \xmlconcat{#1}{/!mml:plus}{+}
+ \MMLdoR
+ \fi
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:plus:reset
+ \mmlpluscounter\zerocount
+\stopxmlsetups
+
+\startxmlsetups mml:plus:body
+ \advanceby\mmlpluscounter\plusone
+ \ifnum\mmlpluscounter>\plusone
+ \xmldoifelse{#1}{/mml:minus} {
+ \ifnum\xmlcount{#1}{/!mml:minus}>\plusone
+ +
+ \fi
+ } {
+ \doifelse {\xmlatt{#1}{type}} {rational} {
+ % fraction
+ } {
+ +
+ }
+ }
+ \fi
+ \xmldirect{#1}
+\stopxmlsetups
+
+\newinteger\mmlminuscounter
+
+\startsetups mml:minus
+ \doifelse \MMLsignreduction \v!yes {
+ \ifnum\xmlcount{#1}{/!mml:minus}=\plusone
+ -\xmlfirst{#1}{/!mml:minus}
+ \else
+ \MMLdoL
+ \xmlsetup{#1}{mml:minus:reset}
+ \xmlcommand{#1}{/!mml:minus}{mml:minus:body}
+ \MMLdoR
+ \fi
+ } {
+ \left( % \MMLdoL
+ \ifnum\xmlcount{#1}{/!mml:minus}=\plusone
+ -\xmlfirst{#1}{/!mml:minus}
+ \else
+ \xmlsetup{#1}{mml:minus:reset}
+ \xmlcommand{#1}{/!mml:minus}{mml:minus:body}
+ \fi
+ \right) % \MMLdoR
+ }
+\stopsetups
+
+\startxmlsetups mml:minus:reset
+ \mmlminuscounter\zerocount
+\stopxmlsetups
+
+\startxmlsetups mml:minus:body
+ % we can also use concat here
+ \advanceby\mmlminuscounter\plusone
+ \ifnum\mmlminuscounter>\plusone
+ -
+ \fi
+ \xmldirect{#1}
+\stopxmlsetups
+
+% power
+
+\setupMMLappearance[power][\c!reduction=\v!yes]
+
+\lettonothing\MMLpowerelement
+
+\startxmlsetups mml:power
+ \xmldoifelse {#1} {/mml:apply} {
+ \doifelse \MMLpowerreduction \v!yes {
+ \xmldoifelse {#1} {/mml:apply/(\MMLcfunctionlist)} {
+ \gdef\MMLpowerelement{\mmlthird{#1}}% postpone, no xdef
+ \MMLcreset\mmlsecond{#1}
+ } {
+ \left(\MMLcreset\mmlsecond{#1}\right)\normalsuperscript{\MMLcreset\mmlthird{#1}}
+ }
+ } {
+ \left(\MMLcreset\mmlsecond{#1}\right)\normalsuperscript{\MMLcreset\mmlthird{#1}}
+ }
+ } {
+ \mmlsecond{#1}\normalsuperscript{\MMLcreset\mmlthird{#1}}
+ }
+\stopxmlsetups
+
+% rem
+
+\startxmlsetups mml:rem
+ \xmlconcat{#1}{/!mml:rem}{\mathopnolimits{mod}}
+\stopxmlsetups
+
+\setupMMLappearance [times] [\c!symbol=\v!no,\c!auto=\v!yes] % new, auto catches cn cn cn
+
+\startxmlsetups mml:times
+ \setMMLcreset{\MMLcfunctionlist\string|\MMLcconstructlist}%
+ \doifelse\MMLtimesauto\v!no {
+ \let\MMLtimes@@symbol\MMLtimessymbol
+ } {
+ \xmldoifelse {#1} {/mml:cn[name(1) == 'mml:cn']} {% name(1) is next one
+ \doifelseinset\MMLtimessymbol{\v!yes,\v!no} {
+ \let\MMLtimes@@symbol\v!yes
+ } {
+ \let\MMLtimes@@symbol\MMLtimessymbol
+ }
+ } {
+ \let\MMLtimes@@symbol\MMLtimessymbol
+ }
+ }
+ \doifelse\MMLtimes@@symbol\v!yes {
+ \xmlconcat{#1}{/!mml:times}{\times}
+ } {
+ \doifelse\MMLtimes@@symbol{dot} {
+ \xmlconcat{#1}{/!mml:times}{\cdot}
+ } {
+ \doifelse\MMLtimes@@symbol{times} {
+ \xmlconcat{#1}{/!mml:times}{\times}
+ } {
+ \xmlall{#1}{/!mml:times}
+ }
+ }
+ }
+\stopxmlsetups
+
+\setupMMLappearance[root][\c!symbol=\v!yes]
+
+\startxmlsetups mml:root
+ \xmldoifelse {#1} {/mml:degree} {
+ \root
+ \doifnot\MMLrootsymbol\v!no{\MMLcreset\xmltext{#1}{/mml:degree}}
+ \of
+ } {
+ \sqrt
+ }
+ {\MMLcreset\xmlall{#1}{/!(mml:degree\string|mml:root)}}
+\stopxmlsetups
+
+% gcd
+
+\startxmlsetups mml:gcd
+ \begingroup
+ \gcd\left(\MMLcreset\xmlconcat{#1}{/!mml:gcd}{\MMLseparator,}\right)
+ \endgroup
+\stopxmlsetups
+
+% and or xor implies, not
+
+\startxmlsetups mml:and \xmlconcat{#1}{/!mml:and} {\wedge} \stopxmlsetups
+\startxmlsetups mml:or \xmlconcat{#1}{/!mml:or} {\vee} \stopxmlsetups
+\startxmlsetups mml:xor \xmlconcat{#1}{/!mml:xor} {\mathopnolimits{xor}} \stopxmlsetups
+\startxmlsetups mml:implies \xmlconcat{#1}{/!mml:implies}{\Rightarrow} \stopxmlsetups
+\startxmlsetups mml:not \neg \xmlall {#1}{/!mml:not} \stopxmlsetups
+
+% forall exists
+
+%D We need to shift left below rotated A.
+
+\startxmlsetups mml:forall
+ \forall \negthinspace \xmlsetup{#1}{mml:forallexists}
+\stopxmlsetups
+
+\startxmlsetups mml:exists
+ \exists \xmlsetup{#1}{mml:forallexists}
+\stopxmlsetups
+
+\def\mmlforallexistslist{mml:bvar\string|mml:forall\string|mml:exists\string|mml:condition}
+
+\startxmlsetups mml:forallexists
+ \normalsubscript{\xmlconcat{#1}{/mml:bvar}{\MMLseparator,}}
+ \xmldoifelse {#1} {/mml:condition} {
+ \thickspace
+ \begingroup
+ \xmlfirst{#1}{/mml:condition}
+ \endgroup
+ \ifcase\xmlcount{#1}{/!(\mmlforallexistslist)}\relax
+ % nothing
+ \or
+ % == snelle volgende
+ \left\vert
+ \MMLcreset \medspace \xmlconcat{#1}{/!(\mmlforallexistslist)}{}
+ \right.
+ \else
+ % special case
+ \left\vert
+ \matrix {
+ \xmlconcat{#1}{/!(\mmlforallexistslist)}{\hfill\crcr}
+ }
+ \right.
+ \fi
+ } {
+ :\xmlfirst{#1}{/!(\mmlforallexistslist)}
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:abs
+ \left\vert \MMLcreset\xmlall{#1}{/!mml:abs} \right\vert
+\stopxmlsetups
+
+\startxmlsetups mml:conjugate % watch extra {}
+ {\overline{\MMLcreset\xmlall{#1}{/!mml:conjugate}}}
+\stopxmlsetups
+
+\startxmlsetups mml:arg
+ \mathopnolimits{arg} \left( \MMLcreset\xmlall{#1}{/!mml:arg} \right)
+\stopxmlsetups
+
+\startxmlsetups mml:real
+ \Re \left( \MMLcreset \xmlall{#1}{/!mml:real} \right)
+\stopxmlsetups
+
+\startxmlsetups mml:imaginary
+ \Im \ left( \MMLcreset \xmlall{#1}{/!mml:imaginary} \right)
+\stopxmlsetups
+
+\startxmlsetups mml:lcm
+ \mathopnolimits{lcm} \left( \xmlconcat{#1}{/!mml:lcm}{\MMLseparator,} \right)
+\stopxmlsetups
+
+\startxmlsetups mml:floor
+ \lfloor \xmlall{#1}{/!mml:floor} \rfloor
+\stopxmlsetups
+
+\startxmlsetups mml:ceiling
+ \lceiling \xmlall{#1}{/!mml:ceiling} \rceiling
+\stopxmlsetups
+
+% relations
+
+% apply attr or eq
+
+\setupMMLappearance[relation][\c!align=\v!no]
+
+\xmlmapvalue {mml:relation} {eq} {=}
+\xmlmapvalue {mml:relation} {neq} {\neq}
+\xmlmapvalue {mml:relation} {gt} {>}
+\xmlmapvalue {mml:relation} {lt} {<}
+\xmlmapvalue {mml:relation} {geq} {\geq}
+\xmlmapvalue {mml:relation} {leq} {\leq}
+\xmlmapvalue {mml:relation} {equivalent} {\equiv}
+\xmlmapvalue {mml:relation} {approx} {\approx}
+\xmlmapvalue {mml:relation} {factorof} {\mid}
+
+\startxmlsetups mml:eq \xmlsetup{#1}{mml:relation} \stopxmlsetups
+\startxmlsetups mml:neq \xmlsetup{#1}{mml:relation} \stopxmlsetups
+\startxmlsetups mml:gt \xmlsetup{#1}{mml:relation} \stopxmlsetups
+\startxmlsetups mml:lt \xmlsetup{#1}{mml:relation} \stopxmlsetups
+\startxmlsetups mml:geq \xmlsetup{#1}{mml:relation} \stopxmlsetups
+\startxmlsetups mml:leq \xmlsetup{#1}{mml:relation} \stopxmlsetups
+\startxmlsetups mml:equivalent \xmlsetup{#1}{mml:relation} \stopxmlsetups
+\startxmlsetups mml:approx \xmlsetup{#1}{mml:relation} \stopxmlsetups
+\startxmlsetups mml:factorof \xmlsetup{#1}{mml:relation} \stopxmlsetups
+
+\startxmlsetups mml:relation
+ \edef\mmlapplyaction{\xmlfilter{#1}{/*/tag()}}
+ \MMLcreset \xmlsetup{#1}{mml:relation:\xmlattdef{#1}{align}{\MMLrelationalign}}
+\stopxmlsetups
+
+\startxmlsetups mml:relation:default
+ \xmlconcatrange{#1}{/*}{2}{}{\xmlval{mml:relation}{\mmlapplyaction}{[\mmlapplyaction]}}
+\stopxmlsetups
+\startxmlsetups mml:relation:last
+ \eqalign {
+ \xmlconcatrange{#1}{/*}{2}{-2}{&\xmlval{mml:relation}{\mmlapplyaction}{[\mmlapplyaction]}\crcr}
+ \mmlprelast{#1}&\xmlval{mml:relation}{\mmlapplyaction}{[\mmlapplyaction]}{}\mmllast{#1}
+ }
+\stopxmlsetups
+\startxmlsetups mml:relation:first
+ \eqalign {
+ \mmlsecond{#1}\xmlval{mml:relation}{\mmlapplyaction}{[\mmlapplyaction]}{}
+ &\xmlconcatrange{#1}{/*}{3}{}{\crcr\xmlval{mml:relation}{\mmlapplyaction}{[\mmlapplyaction]}{}&}
+ }
+\stopxmlsetups
+\startxmlsetups mml:relation:left
+ \eqalign {
+ \xmlconcatrange{#1}{/*}{2}{}{&\xmlval{mml:relation}{\mmlapplyaction}{[\mmlapplyaction]}\crcr}
+ }
+\stopxmlsetups
+\startxmlsetups mml:relation:right
+ \eqalign {
+ &\xmlconcatrange{#1}{/*}{2}{}{\crcr\xmlval{mml:relation}{\mmlapplyaction}{[\mmlapplyaction]}{}&}
+ }
+\stopxmlsetups
+\startxmlsetups mml:relation:no
+ \xmlsetup{#1}{mml:relation:default}
+\stopxmlsetups
+\startxmlsetups mml:relation:yes
+ \xmlsetup{#1}{mml:relation:left}
+\stopxmlsetups
+
+% personal goody:
+
+\edef\MMLcmainresetlist{\MMLcmainresetlist\string|becomes}
+
+\xmlmapvalue {mml:relation} {mml:becomes} {:=}
+
+\startxmlsetups mml:becomes \xmlsetup{#1}{mml:relation} \stopxmlsetups
+
+% calculus and vector calculus
+
+\startxmlsetups mml:domainofapplication
+ \xmlall{#1}{/!mml:domainofapplication}
+\stopxmlsetups
+
+\setupMMLappearance[int][\c!location=\v!top]
+
+\def\doMMLlimits#1{\doifelsevalue{MML#1\c!location}\v!top\limits\nolimits}
+
+\startxmlsetups mml:int
+ \MMLcreset
+ \xmldoifelse {#1} {/mml:domainofapplication} {
+ \int \doMMLlimits{int}\normalsubscript{\xmlfirst{#1}{/mml:domainofapplication}}\relax
+ } {
+ \xmldoifelse {#1} {/mml:condition} {
+ \int \doMMLlimits{int}\normalsubscript{\xmlfirst{#1}{/mml:condition}}\relax
+ } {
+ \xmldoifelse {#1} {/mml:lowlimit} {
+ \int \doMMLlimits{int}\normalsubscript{\xmlfirst{#1}{/mml:lowlimit}}\normalsuperscript{\xmlfirst{#1}{/mml:uplimit}}
+ } {
+ % funny, why do we have lowlimit/uplimit then
+ \xmldoifelse {#1} {/mml:apply/mml:interval} {
+ \int \doMMLlimits{int}\normalsubscript{\xmlindex{#1}{/mml:apply}{2}}\normalsuperscript{\xmlindex{#1}{/mml:apply}{3}}
+ } {
+ \int
+ }
+ }
+ }
+ }
+ \MMLcreset
+ \xmldoifelse {#1} {/mml:apply} {
+ \doifelsemmlfunction {#1} { % todo test
+ \xmlfirst{#1}{/mml:apply}
+ } {
+ % if there are too many () now, we need to be more clever
+ \left( \xmlfirst{#1}{/mml:apply} \right)
+ }
+ } {
+ \xmlfirst{#1}{/mml:ci}
+ }
+ \xmldoifelse {#1} {/mml:bvar} {
+% \thinspace {\mr d} \xmlfirst{#1}{/mml:bvar}
+ \dd \xmlfirst{#1}{/mml:bvar}
+ } {
+ % nothing
+ }
+\stopxmlsetups
+
+\setupMMLappearance[diff][\c!location=\v!top,\c!alternative=\v!a]
+
+\startxmlsetups mml:diff
+ \MMLcreset
+ \doifelse \MMLdiffalternative \v!a {
+ \xmldoifelse {#1} {/mml:lambda} {
+ % a special case (mathadore/openmath)
+ \mmlfrac {
+ d
+ \normalsuperscript
+ {\xmlfirst{#1}{/mml:bvar}\xmlfirst{#1}{/mml:cn}}
+ {\xmlfirst{#1}{/mml:lambda}\xmlfirst{#1}{/mml:ci}}
+ } {
+ d
+ {\xmlfirst{#1}{/mml:bvar}\xmlfirst{#1}{/mml:ci}}
+ \normalsuperscript
+ {\xmlfirst{#1}{/mml:bvar}\xmlfirst{#1}{/mml:cn}}
+ }
+ } {
+ \xmldoifelse {#1} {/mml:bvar} {
+ \mmlfrac {
+% {\mr d}{
+ \dd{
+ \xmldoifelse {#1} {/mml:degree} {
+ \normalsuperscript{\xmlconcat{#1}{/mml:degree}\empty}
+ } {
+ \xmldoif {#1} {/mml:bvar/mml:degree} {
+ \normalsuperscript{\xmlconcat{#1}{/mml:bvar/mml:degree}+}
+ }
+ }
+ }
+ \doif \MMLdifflocation \v!top {
+ \xmldoifelse {#1} {/mml:ci} {
+ \xmlfirst{#1}{/mml:ci}
+ } {
+ \MMLcreset
+ \ifnum\xmlcount{#1}{/mml:apply/*}>\plustwo % hack
+ \left(\xmlfirst{#1}{/mml:apply}\right)
+ \else
+ \xmlfirst{#1}{/mml:apply}
+ \fi
+ }
+ }
+ } {
+% {\mr d}
+ \dd
+ \xmlfirst{#1}{/mml:bvar/!mml:degree}
+ \xmldoif {#1} {/mml:bvar/mml:degree} {
+ \normalsuperscript{\xmlfirst{#1}{/mml:bvar/mml:degree}}
+ }
+ }
+ \doifnot \MMLdifflocation \v!top {
+ \left(\MMLcreset\xmlfirst{#1}{/(mml:apply\string|mml:ci)}\right)
+ }
+ } {
+ % beware, the second {} is needed for the superscript
+ % \xmlconcatrange{#1}{/*}{2}{}{}\normalsuperscript\prime
+ \xmlconcatrange{#1}{/*}{2}{}{}\prime
+ }
+ }
+ } {
+ \MMLcreset
+ \xmlfirst{#1}{/(mml:apply\string|mml:ci)}
+ % there can be problems with nested diff's: \normalsuperscript\normalsuperscript{} error
+ % so we add an empty group here
+ {}\normalsuperscript
+ {
+ \xmldoifelse {#1} {/mml:degree} {
+ \edef\mmldegree{\xmlfirst{#1}{/mml:degree/mml:cn}}
+ \ifempty\mmldegree
+ % what to do here
+ \else
+ \dorecurse\mmldegree\prime
+ \fi
+ } {
+ \prime
+ }
+ }
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:partialdiff
+ \xmldoifelse {#1} {/mml:list} {
+% {\mr D}\normalsubscript{
+ \DD\normalsubscript{
+ \begingroup
+ \setfalse\mmllistdelimiters
+ \xmlall{#1}{/mml:list}
+ \endgroup
+ }
+ \xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)}
+ } {
+ \xmldoifelse {#1} {/mml:bvar} {
+ \mmlfrac {
+% {\mr d}\normalsuperscript{
+ \dd\normalsuperscript{
+ \xmldoifelse {#1} {/mml:degree} {
+ \xmlconcat{#1}{/mml:degree}\empty
+ } {
+ \xmlconcat{#1}{/mml:bvar/mml:degree}+
+ }
+ }
+ \MMLcreset
+ \xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)}
+ } {
+ \xmldoif {#1}{/mml:bvar/!mml:degree} {
+ \xmlfirst{#1}{/mml:bvar/!mml:degree} \,
+ }
+% {\mr d}\xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)}
+ \dd\xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)}
+ \xmldoif {#1} {/mml:bvar/mml:degree} {
+ \normalsuperscript{\xmlfirst{#1}{/mml:bvar/mml:degree}}
+ }
+ }
+ } {
+ \xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)}
+ }
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:divergence \mathopnolimits{div} \xmlall{#1}{/!mml:divergence} \stopxmlsetups
+\startxmlsetups mml:grad \mathopnolimits{grad} \xmlall{#1}{/!mml:grad} \stopxmlsetups
+\startxmlsetups mml:curl \mathopnolimits{curl} \xmlall{#1}{/!mml:curl} \stopxmlsetups
+\startxmlsetups mml:laplacian \nabla\normalsuperscript2 \xmlall{#1}{/!mml:laplacian} \stopxmlsetups
+\startxmlsetups mml:ident \mathopnolimits{identity} \xmlall{#1}{/!mml:ident} \stopxmlsetups
+
+\setupMMLappearance[domain] [symbol=]
+\setupMMLappearance[codomain][symbol=]
+
+\startxmlsetups mml:domain
+ \doifelsenothing \MMLdomainsymbol {
+ \mathopnolimits{domain}\MMLcreset\xmlall{#1}{/!mml:domain}
+ } {
+ \MMLdomainsymbol\normalsubscript{\xmlall{#1}{/!mml:domain}}
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:codomain
+ \doifelsenothing \MMLcodomainsymbol {
+ \mathopnolimits{codomain}\MMLcreset\xmlall{#1}{/!mml:codomain}
+ } {
+ \MMLcodomainsymbol\normalsubscript{\xmlall{#1}{/!mml:codomain}}
+ }
+\stopxmlsetups
+
+% theory of sets
+
+\startxmlsetups mml:set
+ \left\{
+ \xmldoifelse {#1} {/mml:condition} {
+ \xmlfirst{#1}{/mml:bvar}\,\middle\vert\,\xmlfirst{#1}{/mml:condition}
+ } {
+ \xmlconcat{#1}{/!mml:set}{\MMLseparator,}
+ }
+ \right\}
+ \relax % needed
+\stopxmlsetups
+
+\settrue\mmllistdelimiters
+
+\startxmlsetups mml:list
+ \begingroup
+ \ifconditional\mmllistdelimiters\left [\fi
+ \begingroup
+ \settrue\mmllistdelimiters
+ \xmlconcat{#1}{/!mml:list}{\MMLseparator,}
+ \endgroup
+ \ifconditional\mmllistdelimiters\right]\fi
+ \endgroup
+\stopxmlsetups
+
+\startxmlsetups mml:union \mmlsecond{#1} \cup \mmlthird{#1} \stopxmlsetups
+\startxmlsetups mml:intersect \mmlsecond{#1} \cap \mmlthird{#1} \stopxmlsetups
+\startxmlsetups mml:in \mmlsecond{#1} \in \mmlthird{#1} \stopxmlsetups
+\startxmlsetups mml:notin \mmlsecond{#1} {\not\in} \mmlthird{#1} \stopxmlsetups
+\startxmlsetups mml:subset \mmlsecond{#1} \subset \mmlthird{#1} \stopxmlsetups
+\startxmlsetups mml:prsubset \mmlsecond{#1} \subseteq \mmlthird{#1} \stopxmlsetups
+\startxmlsetups mml:notsubset \mmlsecond{#1} {\not\subset} \mmlthird{#1} \stopxmlsetups
+\startxmlsetups mml:notprsubset \mmlsecond{#1} {\not\subseteq} \mmlthird{#1} \stopxmlsetups
+\startxmlsetups mml:setdiff \mmlsecond{#1} \setminus \mmlthird{#1} \stopxmlsetups
+
+\startxmlsetups mml:card
+ \left\vert \xmlall{#1}{/!mml:card} \right\vert
+\stopxmlsetups
+
+\startxmlsetups mml:cartesianproduct
+ \xmlconcat{#1}{/!mml:cartesianproduct}{\times}
+\stopxmlsetups
+
+% sequences and series
+
+\setupMMLappearance[sum] [\c!location=\v!top]
+\setupMMLappearance[product][\c!location=\v!top]
+
+\xmlmapvalue {mml:sumprod} {sum} {\sum}
+\xmlmapvalue {mml:sumprod} {product} {\prod}
+
+\startxmlsetups mml:sum \edef\mmlsumprodname{sum} \xmlsetup{#1}{mml:sumprod} \stopxmlsetups
+\startxmlsetups mml:product \edef\mmlsumprodname{product} \xmlsetup{#1}{mml:sumprod} \stopxmlsetups
+
+\def\mmlstackedsubscripts#1%
+ {\vbox
+ {\baselineskip\zeropoint % hack, taco vragen
+ \halign{\startimath\scriptstyle\hss\alignmark\alignmark\hss\stopimath\cr#1\crcr}}}
+
+% unfinished
+
+\startxmlsetups mml:sumprod
+ \begingroup
+ \xmldoifelse {#1} {/(mml:condition\string|mml:bvar\string|mml:lowlimit)} {
+ \def\mmlsumprodlower{
+ \normalsubscript{
+ \xmldoifelse {#1} {/mml:condition} {
+ \mmlstackedsubscripts{\xmlconcat{#1}{/mml:condition}{\crcr}}
+ } {
+ \xmldoif {#1} {/mml:bvar} {
+ \xmlfirst{#1}{/mml:bvar}
+ \xmldoif{#1}{/mml:lowlimit}{=}
+ }
+ \xmlfirst{#1}{/mml:lowlimit}
+ }
+ }
+ }
+ } {
+ \lettonothing\mmlsumprodlower
+ }
+ \xmldoifelse {#1} {/mml:uplimit} {
+ \def\mmlsumprodupper{\normalsuperscript{\xmlfirst{#1}{/mml:uplimit}}}
+ } {
+ \lettonothing\mmlsumprodupper
+ }
+ \xmldoif {#1} {/mml:interval} { % open math converter gives this
+ \edef\mmlintervalfrom{\xmlindex{#1}{/mml:interval}{1}}
+ \edef\mmlintervalto {\xmlindex{#1}{/mml:interval}{2}}
+ \ifempty\mmlintervalfrom \else
+ \def\mmlsumprodlower{\normalsubscript{\xmldoif{#1}{/mml:bvar}{\xmlfirst{#1}{/mml:bvar}{=}}\mmlintervalfrom}}
+ \fi
+ \ifempty\mmlintervalto \else
+ \def\mmlsumprodupper{\normalsuperscript{\mmlintervalto}}
+ \fi
+ }
+ \MMLcreset
+ \xmlval{mml:sumprod}{\mmlsumprodname}{}\doMMLlimits\mmlsumprodname\mmlsumprodupper\mmlsumprodlower
+ \MMLcreset
+ \xmldoifelse {#1} {/mml:lambda/mml:apply} {
+ \xmlfirst{#1}{/mml:lambda/mml:apply}% a bit of open math conversion mess
+ } {
+ \xmlfirst{#1}{/(mml:apply\string|mml:lambda\string|mml:ci)}%
+ }
+ \endgroup
+\stopxmlsetups
+
+\setupMMLappearance[limit][\c!location=\v!top]
+
+\startxmlsetups mml:limit
+ \MMLcreset \lim
+ \doMMLlimits {limit}\normalsubscript{
+ \MMLcreset
+ \xmldoifelse {#1} {/mml:condition} {
+ \xmlfirst{#1}{/mml:condition}
+ } {
+ \xmldoif {#1} {/mml:bvar} {
+ \xmlfirst{#1}{/mml:bvar}\rightarrow
+ }
+ \xmlfirst{#1}{/mml:lowlimit}
+ }
+ }
+ \begingroup
+ % a bit of open math conversion mess, lambda needed for openmath, ok?
+ \MMLcreset
+ \xmlfirst{#1}{/mml:lambda/mml:apply}
+ \xmlfirst{#1}{/(mml:apply\string|mml:lambda)}
+ \endgroup
+\stopxmlsetups
+
+% consider a faster index
+
+\startxmlsetups mml:tendsto
+ \MMLcreset \mmlsecond{#1}
+ \xmlval {mml:tendsto:type} {\xmlattdef{#1}{type}{default}} {\rightarrow}
+ \MMLcreset \mmlthird{#1}
+\stopxmlsetups
+
+\xmlmapvalue {mml:tendsto:type} {above} {\downarrow}
+\xmlmapvalue {mml:tendsto:type} {below} {\uparrow}
+\xmlmapvalue {mml:tendsto:type} {default} {\rightarrow}
+
+% elementary classical functions
+
+\setupMMLappearance[log][\c!location=\v!right]
+
+\startxmlsetups mml:exp
+% {\mr e}\normalsuperscript{\xmlfirst{#1}{/mml:apply\string|mml:reln\string|mml:ci\string|mml:cn}}
+ {\mr e}\normalsuperscript{\xmlfirst{#1}{/!mml:exp}}
+\stopxmlsetups
+
+\startxmlsetups mml:log
+ \xmldoifelse {#1} {/mml:logbase} {
+ \doifelse \MMLloglocation \v!left {
+ \mathop {
+ {}\normalsuperscript{\xmlfirst{#1}{/mml:logbase}}\negthinspace\mathopnolimits{log}
+ }
+ } {
+ \mathopnolimits{log}\normalsubscript{\xmlfirst{#1}{/mml:logbase}}
+ }
+% \MMLcreset
+ \xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)}
+% \xmlsetup{#1}{mml:function} % todo, we start elsewhere
+% \mmlthird{#1}
+ } {
+ \mathopnolimits{log}
+% \MMLcreset
+% \xmlsetup{#1}{mml:function} % todo, we start elsewhere
+ \xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)}
+% \mmlsecond{#1}
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:ln
+ \mathopnolimits{ln}
+ \xmlsetup{#1}{mml:function}
+\stopxmlsetups
+
+% statistics
+
+\startxmlsetups mml:mean \overline {\mmlsecond{#1}} \stopxmlsetups
+\startxmlsetups mml:sdev \sigma \left(\MMLcreset\mmlsecond{#1}\right) \stopxmlsetups
+\startxmlsetups mml:variance \sigma \left(\MMLcreset\mmlsecond{#1}\right)\normalsuperscript2 \stopxmlsetups
+\startxmlsetups mml:median \mathopnolimits{median}\left(\MMLcreset\mmlsecond{#1}\right) \stopxmlsetups
+\startxmlsetups mml:mode \mathopnolimits{mode} \left(\MMLcreset\mmlsecond{#1}\right) \stopxmlsetups
+
+% moments
+
+\startxmlsetups mml:moment
+ \left\langle
+ \xmlfirst{#1}{/(mml:apply\string|mml:reln\string|mml:ci\string|mml:cn)}\normalsuperscript{\xmlfirst{#1}{/mml:degree}}
+ \right\rangle
+ \xmldoif {#1} {mml:momentabout} {
+ \normalsubscript{\xmlfirst{#1}{mml:momentabout}}
+ }
+\stopxmlsetups
+
+% linear algebra
+
+\setupMMLappearance [vector] [\c!direction=\v!horizontal,\c!separator={,}]
+
+\startxmlsetups mml:vector
+ \begingroup
+ \ifnum\xmlcount{#1}{/*}>\plusone
+ \doifelse\MMLvectordirection\v!horizontal {
+ \left(\xmlconcat{#1}{/*}{\MMLseparator\MMLvectorseparator}\right)
+ } {
+ \MMLcreset\left(\matrix{\xmlconcat{#1}{/*}{\MMLseparator\MMLvectorseparator}}\right)
+ }
+ \else
+ \overrightarrow{\charhtstrut\mmlfirst{#1}}
+ \fi
+ \endgroup
+\stopxmlsetups
+
+\settrue\MMCdelmatrix % ( ) when true
+
+\startxmlsetups mml:matrix
+ \begingroup
+ \MMLcreset
+ \ifconditional\MMCdelmatrix
+ \left(\matrix{\xmlcommand{#1}{/mml:matrixrow}{mml:matrixrow:do}}\right)
+ \else
+ \settrue\MMCdelmatrix
+ \matrix{\xmlcommand{#1}{/mml:matrixrow}{mml:matrixrow:do}}
+ \fi
+ \endgroup
+\stopxmlsetups
+
+\startxmlsetups mml:matrixrow
+ \begingroup
+ \MMLcreset
+ \left(\xmlsetup{#1}{mml:matrixrow:do}\right)
+ \endgroup
+\stopxmlsetups
+
+\startxmlsetups mml:matrixrow:do
+ \xmlconcat{#1}{/*}{&}\crcr
+\stopxmlsetups
+
+\startxmlsetups mml:determinant
+ \begingroup
+ \setfalse\MMCdelmatrix
+ \left|\mmlsecond{#1}\right|
+ \endgroup
+\stopxmlsetups
+
+\startxmlsetups mml:transpose
+ \mmlsecond{#1}\normalsuperscript{\mathopnolimits{T}}
+\stopxmlsetups
+
+\startxmlsetups mml:selector
+ \MMLmathinner{\mmlsecond{#1}\normalsubscript{\MMLcreset\xmlconcatrange{#1}{/*}{3}{}{\MMLseparator,}}}
+\stopxmlsetups
+
+\startxmlsetups mml:vectorproduct \mmlsecond{#1}\times \mmlthird{#1} \stopxmlsetups
+\startxmlsetups mml:scalarproduct \mmlsecond{#1}\cdot \mmlthird{#1} \stopxmlsetups
+\startxmlsetups mml:outerproduct \mmlsecond{#1}\otimes\mmlthird{#1} \stopxmlsetups
+
+% semantic mapping elements
+
+\setupMMLappearance[semantics][\c!state=\v!start]
+
+\startxmlsetups mml:semantics
+ \doifelse\MMLsemanticsstate\v!start {
+ \xmlall{#1}{/mml:annotation}
+ } {
+ \xmlall{#1}{/!mml:annotation}
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:annotation
+ \xmldoifelse {#1} {.[oneof(@encoding,'TeX','tex','application/x-tex','TEX','ConTeXt','context','CONTEXT','ctx')]} {
+ \xmlflushcontext{#1}
+ } {
+ \xmldoifelse {#1} {.[oneof(@encoding,'calcmath','cm')]} {
+ \expanded{\calcmath{\xmlflush{#1}}}
+ } {
+ \xmldoifelse {#1} {.[oneof(@encoding,'asciimath','am')]} {
+ \ifdefined\asciimath
+ \expanded{\asciimath{\xmlflushpure{#1}}}
+ \else
+ \hbox{\tt no am loaded}
+ \fi
+ } {
+ \xmlall{#1}{../!mml:annotation}
+ }
+ }
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:annotation-xml
+ % maybe diagnostics
+\stopxmlsetups
+
+% misc
+
+\startxmlsetups mml:integers \integers \stopxmlsetups
+\startxmlsetups mml:reals \reals \stopxmlsetups
+\startxmlsetups mml:rationals \rationals \stopxmlsetups
+\startxmlsetups mml:naturalnumbers \naturalnumbers \stopxmlsetups
+\startxmlsetups mml:complexes \complexes \stopxmlsetups
+\startxmlsetups mml:primes \primes \stopxmlsetups
+\startxmlsetups mml:exponentiale \ee \stopxmlsetups % \mathopnolimits{e} \stopxmlsetups
+\startxmlsetups mml:imaginaryi \ii \stopxmlsetups % \mathopnolimits{i} \stopxmlsetups
+\startxmlsetups mml:notanumber \mathopnolimits{NaN} \stopxmlsetups
+\startxmlsetups mml:true \mathopnolimits{true} \stopxmlsetups
+\startxmlsetups mml:false \mathopnolimits{false} \stopxmlsetups
+\startxmlsetups mml:emptyset \mathopnolimits{Ø} \stopxmlsetups
+\startxmlsetups mml:pi \pi \stopxmlsetups
+\startxmlsetups mml:eulergamma \gamma \stopxmlsetups
+\startxmlsetups mml:infinity \infty \stopxmlsetups
+
+% gonio functions
+
+\setupMMLappearance[function][\c!reduction=\v!yes]
+
+% todo: \mfunction which adapts itself when registered as command
+
+% todo: \def\mmlcfunction#1#2{\mathopnolimits{#2}\xmlsetup{#1}{mml:function}}
+
+\startxmlsetups mml:sin \mathcommand {sin}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:sinh \mathcommand {sinh}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:cos \mathcommand {cos}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:cosh \mathcommand {cosh}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:tan \mathcommand {tan}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:tanh \mathcommand {tanh}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:cot \mathcommand {cot}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:coth \mathcommand {coth}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:csc \mathcommand {csc}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:csch \mathcommand {csch}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:sec \mathcommand {sec}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:sech \mathcommand {sech}\xmlsetup{#1}{mml:function} \stopxmlsetups
+
+\startxmlsetups mml:arcsin \mathcommand {arcsin}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arcsinh \mathcommand{arcsinh}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arccos \mathcommand {arccos}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arccosh \mathcommand{arccosh}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arctan \mathcommand {arctan}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arctanh \mathcommand{arctanh}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arccot \mathcommand {arccot}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arccoth \mathcommand{arccoth}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arccsc \mathcommand {arccsc}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arccsch \mathcommand{arccsch}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arcsec \mathcommand {arcsec}\xmlsetup{#1}{mml:function} \stopxmlsetups
+\startxmlsetups mml:arcsech \mathcommand{arcsech}\xmlsetup{#1}{mml:function} \stopxmlsetups
+
+\startxmlsetups mml:function
+ \ifempty\MMLpowerelement
+ \ifconditional\xmlinversefunction\normalsuperscript{-1}\fi
+ \setfalse\xmlinversefunction
+ \else
+ \normalsuperscript{\ifconditional\xmlinversefunction-\fi\MMLpowerelement}
+ \setfalse\xmlinversefunction
+ \glettonothing\MMLpowerelement
+ \fi
+ \xmlsetup{#1}{mml:function:argument}
+\stopxmlsetups
+
+\startxmlsetups mml:function:argument
+ \doifelse \MMLfunctionreduction \v!yes {
+ \xmldoifelse {#1} {/mml:apply} {
+ \xmldoifelse {#1} {/mml:apply/(\MMLcfunctionlist\string|mml:divide)}
+ \donefalse
+ \donetrue
+ } {
+ \donefalse
+ }
+ } {
+ \donetrue
+ }
+ % beware, we still flush from 2 up
+ \ifdone
+ \left(
+ \MMLcreset
+ \xmlall{#1}{/[position()>1]}% \xmlconcatrange{#1}{/*}{2}{}\empty
+ \right)
+ \else
+ \MMLcreset
+ \xmlall{#1}{/[position()>1]}
+ \fi
+\stopxmlsetups
+
+% PRESENTATION MATHML
+
+% helpers: maybe we can need a setting for the uprights
+
+\xmlmapvalue {mml:s} {normal} {\mathupright} % {\mathtf}
+\xmlmapvalue {mml:s} {double-struck} {\mathblackboard}
+\xmlmapvalue {mml:s} {italic} {\mathit}
+\xmlmapvalue {mml:s} {fraktur} {\mathfraktur}
+\xmlmapvalue {mml:s} {script} {\mathscript}
+\xmlmapvalue {mml:s} {bold} {\mb} % {\mathbf}
+\xmlmapvalue {mml:s} {bold-italic} {\mathbi}
+\xmlmapvalue {mml:s} {bold-fraktur} {\mathfraktur\mathbf}
+\xmlmapvalue {mml:s} {bold-script} {\mathscript\mathbf}
+\xmlmapvalue {mml:s} {sans-serif} {\mathss}
+\xmlmapvalue {mml:s} {bold-sans-serif} {\mathss\mathbf}
+\xmlmapvalue {mml:s} {sans-serif-italic} {\mathss\mathit}
+\xmlmapvalue {mml:s} {sans-serif-bold-italic} {\mathss\mathbi}
+\xmlmapvalue {mml:s} {monospace} {\mathtt}
+
+\xmlmapvalue {mml:l} {-} {\let\mmlfrac\tfrac}
+ \let\mmlfrac\frac
+\xmlmapvalue {mml:l} {+} {\let\mmlfrac\sfrac}
+
+\xmlmapvalue {mml:d} {true} {\displaystyle}
+\xmlmapvalue {mml:d} {false} {\textstyle} % or whatever
+
+\starttexdefinition setmmlmathstyle #1
+ \ifxmlattempty{#1}{displaystyle}\else
+ \xmlval{mml:d}\xmllastatt\empty
+ \fi
+ \ifxmlattempty{#1}{mathvariant}\else
+ \xmlval{mml:s}\xmllastatt\empty
+ \fi
+\stoptexdefinition
+
+\starttexdefinition setmmlscriptlevel #1
+ \ifxmlattempty{#1}{scriptlevel}
+ \let\mmlfrac\frac
+ \else
+ \xmlval{mml:l}\xmllastatt{\let\mmlfrac\frac}
+ \fi
+\stoptexdefinition
+
+\starttexdefinition setmmlmathcolor #1
+ \ifxmlattempty{#1}{mathcolor}\else
+ \directcolor[\xmllastatt]
+ \fi
+\stoptexdefinition
+
+\starttexdefinition setmmlmathproperties #1
+ % \ifxmlatt{#1}{displaystyle}\empty\else
+ \ifxmlattempty{#1}{displaystyle}\else
+ \xmlval{mml:d}\xmllastatt\empty
+ \fi
+ \ifxmlattempty{#1}{mathvariant}\else
+ \xmlval{mml:s}\xmllastatt\empty
+ \fi
+ \ifxmlattempty{#1}{scriptlevel}
+ \let\mmlfrac\frac
+ \else
+ \xmlval{mml:l}\xmllastatt{\let\mmlfrac\frac}
+ \fi
+ \ifxmlattempty{#1}{mathcolor}\else
+ \directcolor[\xmllastatt]
+ \fi
+\stoptexdefinition
+
+% todo: textbackgrounds / todo: can be combined with new grouping
+
+\starttexdefinition applymmlmathbackground #1#2
+ \ifxmlattempty{#1}{mathbackground}
+ #2
+ \else
+ \backgroundline[\xmllastatt]{#2}
+ \fi
+\stoptexdefinition
+
+\starttexdefinition applymmlsometext #1#2
+ \begingroup
+ \applymmlmathbackground {#1} {
+ \setmmlmathcolor {#1}
+ \setmmlmathstyle {#1}
+ #2
+ }
+ \endgroup
+\stoptexdefinition
+
+% setups
+
+\startxmlsetups mml:mi % todo: mathsize (unlikely) mathcolor (easy) mathbackground (easy)
+ \begingroup
+ \pushmathstyle % still needed ?
+ \setmmlmathproperties{#1}
+ \mathml_mi{#1}
+ \popmathstyle % still needed ?
+ \endgroup
+\stopxmlsetups
+
+\startxmlsetups mml:mn
+ \begingroup
+ \setmmlmathcolor{#1}
+ \mathml_mn{#1}
+ \endgroup
+\stopxmlsetups
+
+% <m:mo>-</m:mo><m:mn>2</m:mn> and <m:mn>1</m:mn><m:mo>-</m:mo><m:mn>2</m:mn>
+%
+% spacing between - and 2 is taken care of by tex itself
+
+\startxmlsetups mml:mo
+ \begingroup
+ \setmmlmathcolor{#1}
+ \ifxmlatt{#1}{maxsize}{1}
+ \settrue\mmlignoredelimiter
+ \orelse\ifxmlatt{#1}{stretchy}{false}
+ \settrue\mmlignoredelimiter
+ \fi
+ \ifxmlattempty{#1}{lspace}\else
+ \hskip\xmllastatt\relax % todo: check for dimension
+ \fi
+ \mathml_mo{#1}
+ \ifxmlattempty{#1}{rspace}\else
+ \hskip\xmllastatt\relax % todo: check for dimension
+ \fi
+ \endgroup
+\stopxmlsetups
+
+\startxmlsetups mml:mfenced % {} around separator is needed for spacing
+ \mathml_mfenced{#1}
+\stopxmlsetups
+
+\defineoverlay [mml:enclose:box] [\useMPgraphic{mml:enclose:box}]
+\defineoverlay [mml:enclose:roundedbox] [\useMPgraphic{mml:enclose:roundedbox}]
+\defineoverlay [mml:enclose:circle] [\useMPgraphic{mml:enclose:circle}]
+\defineoverlay [mml:enclose:left] [\useMPgraphic{mml:enclose:left}]
+\defineoverlay [mml:enclose:right] [\useMPgraphic{mml:enclose:right}]
+\defineoverlay [mml:enclose:top] [\useMPgraphic{mml:enclose:top}]
+\defineoverlay [mml:enclose:bottom] [\useMPgraphic{mml:enclose:bottom}]
+\defineoverlay [mml:enclose:updiagonalstrike] [\useMPgraphic{mml:enclose:updiagonalstrike}]
+\defineoverlay [mml:enclose:downdiagonalstrike] [\useMPgraphic{mml:enclose:downdiagonalstrike}]
+\defineoverlay [mml:enclose:horizontalstrike] [\useMPgraphic{mml:enclose:horizontalstrike}]
+\defineoverlay [mml:enclose:verticalstrike] [\useMPgraphic{mml:enclose:verticalstrike}]
+
+\startuseMPgraphic{mml:enclose:box}
+ draw OverlayBox withpen pencircle scaled (ExHeight/10) ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:roundedbox}
+ draw OverlayBox cornered .5ExHeight withpen pencircle scaled (ExHeight/10) ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:circle}
+ draw fullcircle xysized(bbwidth(OverlayBox),bbheight(OverlayBox)) withpen pencircle scaled (ExHeight/10) ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:left}
+ draw leftboundary OverlayBox withpen pencircle scaled (ExHeight/10) ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:right}
+ draw rightboundary OverlayBox withpen pencircle scaled (ExHeight/10) ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:top}
+ draw topboundary OverlayBox withpen pencircle scaled (ExHeight/10) ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:bottom}
+ draw bottomboundary OverlayBox withpen pencircle scaled (ExHeight/10) ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:updiagonalstrike}
+ path p ; p := OverlayBox enlarged -.25ExHeight ;
+ draw llcorner p -- urcorner p withpen pencircle scaled (ExHeight/10) ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:downdiagonalstrike}
+ path p ; p := OverlayBox enlarged -.25ExHeight ;
+ draw ulcorner p -- lrcorner p withpen pencircle scaled (ExHeight/10) ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:horizontalstrike}
+ path p ; p := OverlayBox enlarged -.25ExHeight ;
+ draw .5[llcorner p,ulcorner p] -- .5[lrcorner p,urcorner p] withpen pencircle scaled (ExHeight/10) ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+\startuseMPgraphic{mml:enclose:verticalstrike}
+ path p ; p := OverlayBox enlarged -.25ExHeight ;
+ draw .5[llcorner p,lrcorner p] -- .5[ulcorner p,urcorner p] withpen pencircle scaled (ExHeight/10) ;
+ setbounds currentpicture to OverlayBox ;
+\stopuseMPgraphic
+
+\startxmlsetups mml:menclose
+ \edef\mmlmenclosenotation{\mathml_menclosepattern{#1}}
+ \ifempty\mmlmenclosenotation
+ \xmlflush{#1}
+ \else
+ \doifelse \mmlmenclosenotation {mml:enclose:longdiv} {
+ \overline{\left)\strut\xmlflush{#1}\right.}
+ } {
+ \doifelse \mmlmenclosenotation {mml:enclose:actuarial} {
+ \overline{\left.\strut\xmlflush{#1}\right\vert}
+ } {
+ \doifelse \mmlmenclosenotation {mml:enclose:radical} {
+ \sqrt{\xmlflush{#1}}
+ } {
+ % todo: no framed when longdiv, actuarial or radical ? spec ?
+ \vcenter {
+ \framed
+ [frame=off,strut=no,background={\mmlmenclosenotation}] % offset is kind of undefined
+ {
+ \startpickupmath
+ \expanded{\doifelseinset {mml:enclose:longdiv} {\mmlmenclosenotation}} {
+ \overline{\left)\strut\xmlflush{#1}\right.}
+ } {
+ \expanded{\doifelseinset {mml:enclose:actuarial} {\mmlmenclosenotation}} {
+ \overline{\left.\strut\xmlflush{#1}\right\vert}
+ } {
+ \expanded{\doifelseinset {mml:enclose:radical} {\mmlmenclosenotation}} {
+ \sqrt{\xmlflush{#1}}
+ } {
+ \expanded{\doifelseinset {mml:enclose:rule} {\mmlmenclosenotation}} {
+ \overline{\strut\xmlflush{#1}}
+ } {
+ \xmlflush{#1}
+ }
+ }
+ }
+ }
+ \stoppickupmath
+ }
+ }
+ }
+ }
+ }
+ \fi
+\stopxmlsetups
+
+\xmlmapvalue {mml:mfrac:linethickness} {thin} {.2pt}
+\xmlmapvalue {mml:mfrac:linethickness} {medium} {.4pt}
+\xmlmapvalue {mml:mfrac:linethickness} {thick} {.8pt}
+\xmlmapvalue {mml:mfrac:linethickness} {0} {0pt}
+
+\startxmlsetups mml:mfrac % dodo: handle linethickness in lua + unit
+ \begingroup
+ \edef\mmlfraclinethickness{\xmlatt{#1}{linethickness}}
+ \ifempty\mmlfraclinethickness
+ \doifelse{\xmlatt{#1}{bevelled}}{true} {
+ \left.\mmlfirst{#1}\middle/\mmlsecond{#1}\right.% \thinspace\middle/\thinspace
+ } {
+ \mmlfrac{\mmlfirst{#1}}{\mmlsecond{#1}}
+ }
+ \else % use \ifchknum
+ \doifelse {\xmlval{mml:mfrac:linethickness}{\mmlfraclinethickness}{}} {} {
+ \scratchdimen\xmlval{mml:mfrac:linethickness}\mmlfraclinethickness{.4pt}
+ } {
+ % probably not yet ok
+ \setdimensionwithunit\scratchdimen\mmlfraclinethickness{pt}
+ }
+% {
+ \Uabove\scratchdimen{\mmlfirst{#1}}{\mmlsecond{#1}}
+% }
+ \fi
+ \endgroup
+\stopxmlsetups
+
+\startxmlsetups mml:ms
+ \hbox {
+ \tf % else encoding problems
+ \ifxmlattempty{#1}{lquote}\symbol[leftquotation]\else\xmllastatt\fi
+ \applymmlsometext{#1}{\xmlflush{#1}}
+ \ifxmlattempty{#1}{rquote}\symbol[rightquotation]\else\xmllastatt\fi
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:mstyle
+ \begingroup
+ \pushmathstyle
+ \setmmlmathstyle{#1}
+ \setmmlscriptlevel{#1}
+ \xmlflush{#1}
+ \popmathstyle
+ \endgroup
+\stopxmlsetups
+
+\setupMMLappearance[text][\c!alternative=\v!b] % a=normal, b=keep spaces
+
+\startxmlsetups mml:mtext
+ \text {
+ \applymmlsometext{#1}{
+ \ifcstok{\MMLtextalternative}\v!a
+ \ignorespaces
+ \xmlflush{#1}
+ \removeunwantedspaces
+ \else
+ \xmlflush{#1}
+ \fi
+ }
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:merror
+ \hbox{\startimath\displaystyle\xmlflush{#1}\stopimath}
+\stopxmlsetups
+
+\startxmlsetups mml:mphantom
+ \phantom{\triggermathstyle\normalmathstyle\ignorespaces\xmlflush{#1}\removeunwantedspaces}
+\stopxmlsetups
+
+\startxmlsetups mml:mpadded % todo
+ \xmlflush{#1}
+\stopxmlsetups
+
+% mrow / option: no fenced
+
+\startxmlsetups mml:maction
+ \xmlflush{#1}
+\stopxmlsetups
+
+\startxmlsetups mml:mrow
+ \begingroup
+ \xmlflush{#1}
+ \endgroup
+\stopxmlsetups
+
+\startxmlsetups mml:msqrt
+ \sqrt{\xmlflush{#1}}
+\stopxmlsetups
+
+\startxmlsetups mml:mroot
+ \root{\mmlsecond{#1}}\of{\mmlfirst{#1}}
+\stopxmlsetups
+
+\setupMMLappearance[scripts][\c!alternative=\v!a] % {} rond base
+
+% brrr no { } when limop .. todo: better in lua
+% speed up with ifx and setups or just in lua
+
+\let\mmlnucleus\relax
+
+% maybe make helper
+% \iftok{\utfmathclass{\xmlraw{#1}{/mml:*[1]}}}{limop}
+% \ifcstok{\utfmathclass{\xmlraw{#1}{/mml:*[1]}}}\s!limop
+
+\startxmlsetups mml:msub
+ \iftok{\utfmathclass{\xmlraw{#1}{/mml:*[1]}}}{limop}
+ \mmlfirst{#1}
+ \normalsubscript{\mmlsecond{#1}}
+ \orelse\ifcstok{\MMLscriptsalternative}\v!a
+ {\mmlfirst{#1}}
+ \normalsubscript{\mmlsecond{#1}}
+ \else
+ \mmlfirst{#1}
+ \normalsubscript{\mmlsecond{#1}}
+ \fi
+\stopxmlsetups
+
+\startxmlsetups mml:msup
+ \iftok{\utfmathclass{\xmlraw{#1}{/mml:*[1]}}}{limop}
+ \mmlfirst{#1}
+ \normalsuperscript{\mmlsecond{#1}}
+ \orelse\ifcstok{\MMLscriptsalternative}\v!a
+ {\mmlfirst{#1}}
+ \normalsuperscript{\mmlsecond{#1}}
+ \else
+ \mmlfirst{#1}
+ \normalsuperscript{\mmlsecond{#1}}
+ \fi
+\stopxmlsetups
+
+% use mathclass number
+
+\startxmlsetups mml:msubsup
+ \iftok{\utfmathclass{\xmlraw{#1}{/mml:*[1]}}}{limop}
+ \mmlfirst{#1}
+ \normalsubscript{\mmlsecond{#1}}
+ \normalsuperscript{\mmlthird{#1}}
+ \orelse\ifcstok{\MMLscriptsalternative}\v!a
+ {\mmlfirst{#1}}
+ \normalsubscript{\mmlsecond{#1}}
+ \normalsuperscript{\mmlthird {#1}}
+ \else
+ \mmlfirst{#1}
+ \normalsubscript{\mmlsecond{#1}}
+ \normalsuperscript{\mmlthird {#1}}
+ \fi
+\stopxmlsetups
+
+% helpers
+
+\protected\def\mmlexecutecommand#1%
+ {\ifcsname#1\endcsname
+ \expandafter\firstoftwoarguments
+ \else
+ \expandafter\secondoftwoarguments
+ \fi
+ \lastnamedcs}
+
+\let\mmlextensible\mathml_extensible
+
+\definemathtriplet [\v!mathematics] [mmlovertriplet] % or will we use a special instance
+\definemathtriplet [\v!mathematics] [mmlundertriplet] % or will we use a special instance
+\definemathtriplet [\v!mathematics] [mmldoubletriplet] % or will we use a special instance
+
+% common to munder/mover/munderover : will become core helper (speed up too)
+
+\starttexdefinition protected mmlfencedfirst #1
+ \xmlelement{#1}{1}
+\stoptexdefinition
+\starttexdefinition protected mmlfencedsecond #1
+ \xmlelement{#1}{2}
+\stoptexdefinition
+\starttexdefinition protected mmlfencedthird #1
+ \xmlelement{#1}{3}
+\stoptexdefinition
+
+% mover
+
+\starttexdefinition protected mmloverabove #1
+ \mmlexecutecommand{\utfmathfiller\mmlovertoken} {\mmlfencedsecond{#1}} \relax
+\stoptexdefinition
+\starttexdefinition protected mmloverbase #1
+ \mmlexecutecommand{\utfmathfiller\mmlbasetoken} {\mmlfencedfirst{#1}} \relax
+\stoptexdefinition
+\starttexdefinition protected mmloverbasefiller #1
+ \mmlexecutecommand{e\utfmathcommandfiller\mmlbasetoken} \relax {\mmlfencedsecond{#1}} {}
+\stoptexdefinition
+\starttexdefinition protected mmloveraccent #1
+ \mmlexecutecommand{\utfmathcommandabove\mmlovertoken} \relax {\mmlfencedfirst{#1}}
+\stoptexdefinition
+
+\starttexdefinition protected mmlovertext #1
+ \mmlovertriplet {\mmloverbase{#1}} {\mmloverabove{#1}} {}
+\stoptexdefinition
+\starttexdefinition protected mmloveraccentchecker #1
+ \edef\mmlovertoken{\mmlextensible{\xmlraw{#1}{/mml:*[2]}}}% /text()
+ \doifelseutfmathabove\mmlovertoken \mmloveraccent \mmlovertext {#1}
+\stoptexdefinition
+
+\startxmlsetups mml:mover
+ \edef\mmlbasetoken{\mmlextensible{\xmlraw{#1}{/mml:*[1]}}}% /text()
+ \doifelseutfmathlimop\mmlbasetoken
+ {\mmllimopover{#1}}
+ {\doifelseutfmathfiller\mmlbasetoken \mmloverbasefiller \mmloveraccentchecker {#1}}
+\stopxmlsetups
+
+\starttexdefinition mmllimopover #1
+ \mmlbasetoken\normalsuperscript{\mmlfencedsecond{#1}}
+\stoptexdefinition
+
+% munder
+
+\starttexdefinition protected mmlunderbelow #1
+ \mmlexecutecommand{\utfmathfiller\mmlundertoken} {\mmlfencedsecond{#1}} \relax
+\stoptexdefinition
+\starttexdefinition protected mmlunderbase #1
+ \mmlexecutecommand{\utfmathfiller\mmlbasetoken} {\mmlfencedfirst{#1}} \relax
+\stoptexdefinition
+\starttexdefinition protected mmlunderbasefiller #1
+ \mmlexecutecommand{e\utfmathcommandfiller\mmlbasetoken} \relax {} {\mmlfencedsecond{#1}}
+\stoptexdefinition
+\starttexdefinition protected mmlunderaccent #1
+ \mmlexecutecommand{\utfmathcommandbelow\mmlundertoken} \relax {\mmlfencedfirst{#1}}
+\stoptexdefinition
+
+\starttexdefinition protected mmlundertext #1
+ \mmlundertriplet {\mmlunderbase{#1}} {} {\mmlunderbelow{#1}}
+\stoptexdefinition
+\starttexdefinition protected mmlunderaccentchecker #1
+ \edef\mmlundertoken{\mmlextensible{\xmlraw{#1}{/mml:*[2]}}}% /text()
+ \doifelseutfmathbelow\mmlundertoken \mmlunderaccent \mmlundertext {#1}
+\stoptexdefinition
+
+\startxmlsetups mml:munder
+ \edef\mmlbasetoken{\mmlextensible{\xmlraw{#1}{/mml:*[1]}}}% /text()
+ \doifelseutfmathlimop\mmlbasetoken
+ {\mmllimopunder{#1}}
+ {\doifelseutfmathfiller\mmlbasetoken \mmlunderbasefiller \mmlunderaccentchecker {#1}}
+\stopxmlsetups
+
+\starttexdefinition mmllimopunder #1
+ \mmlbasetoken\normalsubscript{\mmlfencedsecond{#1}}
+\stoptexdefinition
+
+% munderover
+
+\starttexdefinition protected mmlunderoveraccentcheckerUO #1
+ \edef\mmlundercommand{\utfmathcommandbelow\mmlundertoken}
+ \edef\mmlovercommand {\utfmathcommandabove\mmlovertoken}
+ \edef\mmlbasecommand {\mmlovercommand\mmlundercommand}
+ \ifcsname\mmlbasecommand\endcsname
+ \lastnamedcs {\mmlfencedfirst{#1}}
+ \orelse\ifcsname\mmlundercommand\endcsname
+ \ifcsname\mmlovercommand\endcsname
+ \lastnamedcs {\csname\mmlundercommand\endcsname{\mmlfencedfirst{#1}}}
+ \else
+ \mmldoubletriplet {\csname\mmlundercommand\endcsname{\mmlfencedfirst{#1}}} {\mmlfencedthird{#1}\mmlfencedthird{#1}} {}
+ \fi
+ \orelse\ifcsname\mmlovercommand\endcsname
+ \mmldoubletriplet {\csname\mmlovercommand\endcsname{\mmlfencedfirst{#1}}} {} {\mmlfencedsecond{#1}}
+ \else
+ \mmlunderoveraccentcheckerTT {#1}
+ \fi
+\stoptexdefinition
+\starttexdefinition protected mmlunderoveraccentcheckerUT #1
+ \edef\mmlundercommand{\utfmathcommandbelow\mmlundertoken}
+ \edef\mmlbasecommand {\mmlundercommand text}
+ \ifcsname\mmlbasecommand\endcsname
+ \lastnamedcs {\mmlfencedfirst{#1}} {\mmlfencedthird{#1}}
+ \orelse\ifcsname\mmlundercommand\endcsname
+ \mmldoubletriplet {\csname\mmlundercommand\endcsname{\mmlfencedfirst{#1}}} {\mmlfencedthird{#1}} {}
+ \else
+ \mmlunderoveraccentcheckerTT {#1}
+ \fi
+\stoptexdefinition
+\starttexdefinition protected mmlunderoveraccentcheckerOT #1
+ \edef\mmlovercommand{\utfmathcommandabove\mmlovertoken}
+ \edef\mmlbasecommand{\mmlovercommand text}
+ \ifcsname\mmlbasecommand\endcsname
+ \lastnamedcs {\mmlfencedfirst{#1}} {\mmlfencedsecond{#1}}
+ \orelse\ifcsname\mmlovercommand\endcsname
+ \mmldoubletriplet {\csname\mmlovercommand\endcsname{\mmlfencedfirst{#1}}} {} {\mmlfencedsecond{#1}}
+ \else
+ \mmlunderoveraccentcheckerTT {#1}
+ \fi
+\stoptexdefinition
+\starttexdefinition protected mmlunderoveraccentcheckerTT #1
+ \mmldoubletriplet {\mmlfencedfirst{#1}} {\mmlfencedthird{#1}} {\mmlfencedsecond{#1}} \relax
+\stoptexdefinition
+\starttexdefinition protected mmlunderoveraccentchecker #1
+ \edef\mmlundertoken{\mmlextensible{\xmlraw{#1}{/mml:*[2]}}}% /text()
+ \edef\mmlovertoken {\mmlextensible{\xmlraw{#1}{/mml:*[3]}}}% /text()
+ \doifelseutfmathbelow\mmlundertoken {
+ \doifelseutfmathabove\mmlovertoken \mmlunderoveraccentcheckerUO \mmlunderoveraccentcheckerUT {#1}
+ } {
+ \doifelseutfmathabove\mmlovertoken \mmlunderoveraccentcheckerOT \mmlunderoveraccentcheckerTT {#1}
+ }
+\stoptexdefinition
+
+\starttexdefinition protected mmlunderoverbasefiller #1
+ \mmlexecutecommand{e\utfmathcommandfiller\mmlbasetoken} \relax {\mmlfencedthird{#1}} {\mmlfencedsecond{#1}}
+\stoptexdefinition
+
+\startxmlsetups mml:munderover
+ \edef\mmlbasetoken{\mmlextensible{\xmlraw{#1}{/mml:*[1]}}}% /text()
+ \doifelseutfmathlimop\mmlbasetoken
+ {\mmllimopunderover{#1}}
+ {\doifelseutfmathfiller\mmlbasetoken \mmlunderoverbasefiller \mmlunderoveraccentchecker {#1}}
+\stopxmlsetups
+
+\starttexdefinition mmllimopunderover #1
+ \mmlbasetoken\normalsuperscript{\mmlfencedthird{#1}}\normalsubscript{\mmlfencedsecond{#1}}
+\stoptexdefinition
+
+% tables (mml:mtable, mml:mtr, mml:mlabledtr, mml:mtd)
+
+\startxmlsetups mml:mtable % some more attributes need to be supported
+ \vcenter {
+ \hbox {% needed because otherwise positions make the vcenter wide
+ \mathml_mtable{#1}
+ }
+ }
+\stopxmlsetups
+
+\startxmlsetups mml:mcolumn
+ \vbox{\mathml_mcolumn{#1}}% needs checking
+\stopxmlsetups
+
+\def\mmlsetfakewidth#1{\setbox\scratchbox\hbox{#1}\scratchdimen\wd\scratchbox}
+
+\def\mmlmcolumndigitspace {\mmlsetfakewidth {0}\kern\scratchdimen}
+\def\mmlmcolumndigitrule {\mmlsetfakewidth {0}\vrule \s!width \scratchdimen \s!height .2\points \s!depth .2\points\relax}
+\def\mmlmcolumnsymbolrule {\mmlsetfakewidth{\times}\vrule \s!width \scratchdimen \s!height .2\points \s!depth .2\points\relax}
+\def\mmlmcolumnpunctuationrule{\mmlsetfakewidth {.}\vrule \s!width \scratchdimen \s!height .2\points \s!depth .2\points\relax}
+
+\setupMMLappearance[mspace][\c!option=] % \v!test
+
+\startxmlsetups mml:mspace
+ \begingroup
+ \edef\mmlspacetext{\xmlatt{#1}{spacing}}
+ \ifempty\mmlspacetext
+ \scratchwidth \xmlattdef{#1}{width} \!!zeropoint % must be string
+ \scratchheight\xmlattdef{#1}{height}\!!zeropoint
+ \scratchdepth \xmlattdef{#1}{depth} \!!zeropoint
+ \ifzeropt\scratchheight
+ \ifzeropt\scratchdepth\else
+ \novrule\s!depth\scratchdepth\s!height\zeropoint\s!width\zeropoint
+ \fi
+ \else
+ \novrule\s!depth\zeropoint\s!height\scratchheight\s!width\zeropoint
+ \fi
+ \ifzeropt\scratchwidth
+ % maybe we need to do it anyway
+ \orelse\ifx\MMLmspaceoption\v!test
+ \hbox to \scratchwidth{\showstruts\strut\hss\lower2\exheight\hbox{\infofont\xmlattdef{#1}{width}}\hss\strut}
+ \else
+ \hskip\scratchwidth
+ \fi
+ \orelse\ifx\MMLmspaceoption\v!test
+ \hbox{\showstruts\strut\phantom{\triggermathstyle\normalmathstyle\mmlspacetext}\strut}
+ \else
+ \phantom{\triggermathstyle\normalmathstyle\mmlspacetext}
+ \fi
+ \endgroup
+\stopxmlsetups
+
+% later we can do a better job by manipulating node lists
+
+% \startxmlsetups mml:mline
+% % new, rather undefined, we need to capture a few keywords
+% \edef\mmllinewidth {\xmlatt{#1}{linethickness}}
+% \edef\mmllinetext {\xmlatt{#1}{spacing}}
+% \edef\mmllinelength{\xmlattdef{#1}{length}\!!zeropoint}
+% \ifempty\mmllinewidth
+% \!!deptha.5\linewidth
+% \else
+% \!!deptha.5\dimexpr\mmllinewidth\relax
+% \fi
+% \!!heighta\!!deptha
+% \ifempty\mmllinetext
+% \ifempty\mmllinelength
+% \!!widtha\zeropoint
+% \else
+% \!!widtha\mmllinelength
+% \fi
+% \else
+% \setbox\scratchbox\hbox{\mathematics{\mathstyle{\mmllinetext}}}% not ok
+% \!!widtha\wd\scratchbox
+% \fi
+% \hbox{\vrule\s!width\!!widtha\s!depth\!!deptha\s!height\!!heighta}
+% \stopxmlsetups
+
+\startxmlsetups mml:mglyph % probably never ok (hbox is needed in order to switch to normal font)
+ \begingroup
+ \edef\mmlglyphfontfamily{\xmlatt {#1}{fontfamily}}
+ \edef\mmlglyphalt {\xmlattdef{#1}{alt}{unknown}}
+ \edef\mmlglyphindex {\xmlatt {#1}{index}}
+ \ifempty\mmlglyphfontfamily
+ \hbox{\tttf[no fontfamily specified for \mmlglyphalt]}
+ \orelse\ifempty\mmlglyphindex
+ \hbox{\tttf[no index specified for \mmlglyphalt]}
+ \else
+ \hbox{\getglyph\mmlglyphfontfamily\mmlglyphindex}
+ \fi
+ \endgroup
+\stopxmlsetups
+
+\startxmlsetups mml:maligngroup \stopxmlsetups % will be done when needed
+\startxmlsetups mml:malignmark \stopxmlsetups % will be done when needed
+
+\startxmlsetups mml:none \stopxmlsetups
+\startxmlsetups mml:mprescripts \stopxmlsetups
+
+\startxmlsetups mml:mmultiscripts
+ \mathml_mmultiscripts{#1}
+\stopxmlsetups
+
+% goodie
+
+\definebuffer[mml]
+
+\permanent\protected\def\stopmml{\xmlprocessbuffer{@mml@}{\thedefinedbuffer{mml}}{}}
+
+\stopmodule
+
+\protect \endinput
+
+% TODO:
+%
+% <apply><divide/>
+% <apply><minus/>
+% <apply><minus/><ci>b</ci></apply>
+% <apply><minus/><ci>b</ci></apply>
+% <apply><root/> <ci>a</ci></apply>
+% </apply>
+% <apply><minus/>
+% <apply><minus/><ci>b</ci><ci>b</ci></apply>
+% <apply><minus/><ci>b</ci></apply>
+% <apply><root/> <ci>a</ci></apply>
+% </apply>
+% </apply>
diff --git a/Master/texmf-dist/tex/context/patterns/common/lang-bn.rme b/Master/texmf-dist/tex/context/patterns/common/lang-bn.rme
new file mode 100644
index 00000000000..fff218f7178
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/common/lang-bn.rme
@@ -0,0 +1,3 @@
+% generated by mtxrun --script pattern --convert
+
+% no comment \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/common/lang-gr.rme b/Master/texmf-dist/tex/context/patterns/common/lang-gr.rme
new file mode 100644
index 00000000000..fff218f7178
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/common/lang-gr.rme
@@ -0,0 +1,3 @@
+% generated by mtxrun --script pattern --convert
+
+% no comment \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/common/lang-gu.rme b/Master/texmf-dist/tex/context/patterns/common/lang-gu.rme
new file mode 100644
index 00000000000..fff218f7178
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/common/lang-gu.rme
@@ -0,0 +1,3 @@
+% generated by mtxrun --script pattern --convert
+
+% no comment \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/common/lang-hi.rme b/Master/texmf-dist/tex/context/patterns/common/lang-hi.rme
new file mode 100644
index 00000000000..fff218f7178
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/common/lang-hi.rme
@@ -0,0 +1,3 @@
+% generated by mtxrun --script pattern --convert
+
+% no comment \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/common/lang-kn.rme b/Master/texmf-dist/tex/context/patterns/common/lang-kn.rme
new file mode 100644
index 00000000000..fff218f7178
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/common/lang-kn.rme
@@ -0,0 +1,3 @@
+% generated by mtxrun --script pattern --convert
+
+% no comment \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/common/lang-sa.rme b/Master/texmf-dist/tex/context/patterns/common/lang-sa.rme
new file mode 100644
index 00000000000..fff218f7178
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/common/lang-sa.rme
@@ -0,0 +1,3 @@
+% generated by mtxrun --script pattern --convert
+
+% no comment \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/common/lang-sq.rme b/Master/texmf-dist/tex/context/patterns/common/lang-sq.rme
new file mode 100644
index 00000000000..a686fa54932
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/common/lang-sq.rme
@@ -0,0 +1,4 @@
+% generated by mtxrun --script pattern --convert
+
+
+\message{Albanian Hyphenation Patterns } \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/common/lang-ta.rme b/Master/texmf-dist/tex/context/patterns/common/lang-ta.rme
new file mode 100644
index 00000000000..fff218f7178
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/common/lang-ta.rme
@@ -0,0 +1,3 @@
+% generated by mtxrun --script pattern --convert
+
+% no comment \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/common/lang-te.rme b/Master/texmf-dist/tex/context/patterns/common/lang-te.rme
new file mode 100644
index 00000000000..fff218f7178
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/common/lang-te.rme
@@ -0,0 +1,3 @@
+% generated by mtxrun --script pattern --convert
+
+% no comment \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-af.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-af.hyp
deleted file mode 100644
index b7a8ed85d0b..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-af.hyp
+++ /dev/null
@@ -1,192 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-af.rme
-
-% used: a b c d e f g h i j k l m n o p r s t u v w x y ê ë ô
-
-\hyphenation{
-sandaal
-aand-e-tes
-aan-gons
-aan-sit-riem
-af-ets
-af-glooi
-a-fri-kaans-eer-ste-taal-spre-ker
-al-berts-kroon
-al-ler-geen
-baad-jie-mou-e
-baan-vak
-bar-mit-swa
-boek-il-lus-tra-sies
-bruids-ka-mer
-buf-fels-poort
-bur-ger-drag
-chris-sies-meer
-da-gha-men-ger
-dak-oor-hang
-dek-la-ding
-dek-weef-sel
-del-gings-fonds-plan
-deur-swer-we
-di-a-lek-woor-de-boek
-dik-bek-wind
-di-vi-dend-uit-ke-ring
-dom-siek-te
-drie-hoeks-me-ting
-druk-ker-fonts
-ei-en-doms-wê-reld
-eks-trin-sie-ke
-e-lands-kraal
-e-lek-tro-ne-ga-ti-wi-teit
-et-ter-sweer
-fru-ga-le
-gang-lig
-gars-aar
-ge-beds-ket-ting
-ge-bruik-sfeer
-ge-loofs-i-den-ti-teit
-gem-mer-es-sens
-ge-skoert
-ge-slags-om-gang
-ge-voels-kri-tiek
-ge-voels-waar-de
-ge-we-tens-angs
-ge-wrig-smeer
-gras-ta-pyt
-grie-kwa
-groeps-por-tret-te
-grond-sop
-haard-ys-ter
-haat-skrif
-han-dels-per-seel
-han-ger-tjie-hei-de
-har-sing-aan-doe-ning
-hel-toe-gaan-vloek-woor-de
-hond-ag-tig
-ie-der-een
-in-dink
-in-gaar
-in-skink
-in-steek-slot
-in-tap
-in-ter-net-om-ge-wing
-in-tree-da-tum
-in-twy-fel-trek-king
-ja-ka-ran-da-ko-nin-gin
-jong-mei-sie-dro-me
-ka-juits-maat
-ka-li-glas
-kam-de-bo-stink-hout
-ka-me-roens
-kam-sti-ge
-kant-ruit
-ka-ree-paal
-karst-treg-ter
-keg-an-ker
-kies-a-re-as
-klik-spaan
-knal-kwik
-kon-sep-or-don-nan-sie
-kooks-oond
-ko-tan-gens
-kui-pers-am-bag
-kuns-te-ra-de
-kwak-sal-wers-mid-del
-lamp-staan-der
-lands-op-me-ting
-lang-ter-myn-im-pak
-lang-u-re
-la-ven-tel-tak-kies
-le-wens-kiem
-lies-maat
-lig-gaams-tem-pe-ra-tuur
-limf-weef-sel
-lip-om-ly-ner
-maand-uit-ga-we
-man-gaan-staal
-mas-korf
-mens-ky-ker
-me-to-diek-es-sen-sies
-mid-o-se-a-nie-se
-mou-ska-kel
-na-gaan-de
-nar-re-slee
-ne-gev-woes-tyn
-nek-a-re
-om-me-swaai
-on-der-wys-ak-sie
-on-tra-di-si-o-ne-le
-oor-deels-plek
-o-ra-gie
-paarl-oos
-pa-si-ënt-re-kords
-pas-to-rie-tuin
-plan-ke-koors
-poe-toe-pap
-pos-a-dres
-pot-te-bak-kers-oond
-pries-ter-amp
-prins-loo-straat
-proe-gla-sie
-pte-ri-gi-um
-raar-der
-re-gi-ments-kom-man-dant
-regs-en-ti-teit
-res-lap
-rond-skink
-rooi-poot-el-sie
-room-ter-te
-ru-staal
-se-ren-ge-ti
-seun-so-praan
-siek-wees
-sies-tog
-skaats-loop-baan
-skree-tjies
-slet-jie
-snik-warm
-soet-o-lie
-son-de-val
-sor-ghum-oes
-spoed-oe-fe-nin-ge
-spoor-weg-in-kom-ste
-stads-nôi
-sti-let-jie
-stok-siel-sa-lig-al-leen
-straat-slim
-stre-pies-fer-weel
-suid-ein-de
-suip-roes
-swaan-nes-te
-swart-aas-vo-ëls
-swie-ren-ga
-ta-ke-la-sie
-teen-sank-sies
-tip-pe-ra-ry
-tref-en-trap-on-ge-luk
-tui-me-laar-dop
-twis-ap-pel
-tyds-ter-me
-ui-er-sweer
-uit-tree-loon
-val-reep-leer
-ver-band-uit-ma-ker
-ver-koops-wel-sla-e
-ver-sap-te
-ver-val-funk-sie
-ver-wy-sings-half-le-we-in-deks
-vin-ger-e-te
-volks-e-mo-sie
-volks-ka-pi-ta-lis-me
-vol-son-ge
-vond-se
-vos-kop
-vre-des-en-gel
-vre-des-par-ty
-wa-pen-stil-stand
-wa-ter-ver-koe-lings-to-rings
-we-du-wee-skof
-wel-oor-wo-ë
-werp-lood
-wes-oe-wer
-xho-sa-tjie} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-af.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-af.pat
deleted file mode 100644
index a34c451cc3d..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-af.pat
+++ /dev/null
@@ -1,10349 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-af.rme
-
-% used: ' - a b c d e f g h i j k l m n o p q r s t u v w x y z ä è ê ë î ï ô ö û ü
-
-\patterns{
-.aan5s4
-.aä7lawa
-.a6bc-b
-.a4b5la
-.ab7salo
-.a6b-ja
-.ac7cra.
-.a6farm
-.af7arm.
-.a6feet
-.af7eet.
-.a4f5en
-.a6fets
-.af7ets.
-.a6foes
-.af7oes.
-.a4f5oo
-.a4f5ra
-.af6ro'
-.a7fro's
-.af6ro-
-.a7fro-h
-.a6fry.
-.af3s
-.ag6aam
-.agte6r5
-.a6guur
-.a9ha.
-.ah7lers
-.a3kw
-.a6leer
-.al7eer.
-.alf4
-.al7fagr
-.al5fr
-.al6lda
-.a4l3o
-.al6oïe
-.a7loïen
-.al3p
-.al5st
-.al7thea
-.al7twee
-.al6zhe
-.amp4s
-.amps5w
-.a6naër
-.an7aëro
-.an6cpl
-.and4
-.an5dr
-.ang4
-.an5gl
-.angs5
-.a4n5io
-.an7thro
-.a3pr
-.ap7side
-.a5rag
-.ara6p.
-.ar7thur
-.ar6zbe
-.as7jas.
-.a6snog
-.a6sof.
-.a5sti
-.a7straa
-.a7s6tral
-.at6hol
-.a7thol.
-.a5tsj
-.atte4
-.au7drey
-.b6aanv
-.ba6din
-.ba4d5o
-.ba7loi.
-.ba7ragw
-.ba7rins
-.ba6sek
-.ba7tho.
-.be7deks
-.be6kaf
-.bek7af.
-.be5la
-.be7lol.
-.be7skos
-.be7thel
-.be7thul
-.bi7sho.
-.bli4
-.blus5
-.bo7kerf
-.bo7kies
-.bo7kors
-.bo7maat
-.b4on
-.bo7plaa
-.bo5ro
-.bo7sor.
-.bo5sta
-.bo7trit
-.bo7tswa
-.bo7uit.
-.bout5j
-.b4re
-.bu6eno
-.bu6lol
-.bu7thel
-.by6ldr
-.by6lho
-.by6lne
-.by6lpi
-.by7port
-.bys4
-.by6tal
-.ca7thy.
-.ca7yenn
-.chlo7e.
-.ci6rca
-.ci7trus
-.cos7ta.
-.cy6pri
-.d2
-.da7gon.
-.dag5s
-.da6kat
-.da6koo
-.da7tage
-.da6tji
-.dat7jie
-.da6wki
-.de6k7laa
-.de6klo
-.de6kwe
-.de5la
-.de7roga
-.de6sal
-.de6sok
-.de4sp
-.diep5l
-.di6jks
-.di4si
-.di7thak
-.do4m5a
-.do4m5o
-.dor7ste.
-.dr6oef
-.dun5s
-.du6pre
-.dut5j
-.dy7spie
-.e6bcu.
-.ed5wa
-.ed7win.
-.eer6sk
-.ee4t
-.e6fron
-.ef7ron.
-.eg7gofo
-.e6indu
-.ei5st
-.ek4s5k
-.ek7sopa
-.ek7sord
-.eks7tri
-.eks7tro
-.en7dres
-.enk4
-.en5kl
-.e6noft
-.en7ofta
-.en4t5j
-.en7topt
-.ep7soms
-.er4d5a
-.er6dwo
-.er6fle
-.er6foo
-.er6inv
-.ern4
-.er4t4
-.er5te
-.ert5j
-.ert7se.
-.erts5w
-.e2s
-.e9sau
-.e4s3k
-.e3so
-.es3p
-.es8p.
-.es6pma
-.es3t
-.es6tco
-.es6tni
-.es5tr
-.e7tage.
-.et4sn
-.eur5a
-.eu7stac
-.ex7odus
-.e6zra.
-.f2
-.fo6chv
-.fo6wle
-.f4ri
-.fy6tji
-.g2
-.ga7lage
-.ga7lago
-.ga6lap
-.ga6loo
-.g6arbo
-.ga6sen
-.ge7dart
-.ge3g
-.ge7geks
-.ge7guil
-.gekun5
-.gekuns6
-.ge5la
-.ge7mopp
-.ge7muit
-.ge7nève
-.ge7rogg
-.ges4
-.ge7sjab
-.ge7sjar
-.ge5sk
-.ge5so
-.ges7pe.
-.ge7sper.
-.ge7steg
-.gif3
-.gi7gagr
-.gi6sen
-.gly3
-.gly5k
-.g6lyna
-.g4oo
-.gou7da.
-.gr6äbe
-.g6ruba
-.gui7do.
-.hang5s
-.he6blu
-.he6gor
-.he6gra
-.h6eind
-.hek5o
-.he7rakl
-.he6r5en
-.he6wle
-.hi8v.
-.ho6fet
-.ho6laa
-.ho6loo
-.hooi5
-.ho7taze
-.ho4t5o
-.hy6gro
-.ic7teru
-.i4gl
-.ile7us.
-.i2n1
-.i9n8a.
-.in6ari
-.i7narie
-.ind4
-.in7dwar
-.ing4
-.in5gr
-.in5gw
-.in6iti
-.in5kl
-.in6kly
-.in5kn
-.in5kw
-.in6osi
-.i7nosie
-.in3s4
-.in7snee
-.in7twyf
-.i5raa
-.i3sa
-.i4sk
-.i3so
-.ja6gli
-.jah7we.
-.ja6spa
-.ja7taga
-.j6äger
-.je7sopp
-.jo7dofo
-.jo7safa
-.ju6kos
-.juk7os.
-.j6ü6rge
-.jy6sel
-.k2
-.kaar4
-.kade4
-.kadet5
-.k4af
-.kaï7ro.
-.ka7nont
-.ka6pla
-.ka7plak
-.k6arbe
-.ka7thar
-.ka7thu.
-.ka6toë
-.kat7oë.
-.ka6tui
-.ke6ple
-.ker6k5a
-.ker6k5l
-.kerk5r
-.ker6sa
-.ker6sl
-.ker6s5p
-.ke4s5t
-.kie6st
-.ki6pli
-.ki4r
-.kit7se.
-.k4la
-.k6leyn
-.k4li
-.klip5
-.knik5
-.kn6opn
-.ko6maa
-.ko6maf
-.k4op
-.kope4
-.koper7a
-.ko6pla
-.kop5o
-.ko7rag.
-.kor6st
-.kors7te.
-.k6rak.
-.kr6üge
-.kryt5
-.ku7mon.
-.k4we
-.k4wo
-.ky7otop
-.l'7etji
-.la6eti
-.la6kwa
-.la5sa
-.lei5s4
-.lek7oë.
-.le6poo
-.le5pr
-.le7shab
-.le6son
-.le4sp
-.les5t
-.le6suu
-.lig5e
-.li4gi
-.li6gom
-.li6gre
-.li7pase
-.l6loyd
-.lo6chn
-.lof7ui.
-.lo6glê
-.l6ontd
-.los5k
-.lu6gen
-.lui5sl
-.l6üder
-.m2
-.m'7etji
-.ma6cdo
-.ma6nal
-.ma6nur
-.ma7stek
-.ma7thes
-.ma6zda
-.mel6k5a
-.mel6k5l
-.mer6k5l
-.mes5m
-.me4sw
-.me6tem
-.mi6dos
-.mi6rba
-.mi7traa
-.m4ne
-.mo7djad
-.mo7flam
-.mo6sin
-.mo4sk
-.mu4e
-.my6nen
-.my6n5in
-.my7unis
-.n2
-.n6aand
-.na5fl
-.na6gro
-.na7groe
-.na7smaa
-.na7stor
-.na7uurs
-.ne4k5a
-.ne4k5o
-.ne6kri
-.nek7rin
-.ne6kys
-.ne4s3
-.ne7serh
-.n6etik
-.ne4t5j
-.ne6tru
-.ne6wca
-.ne6wfo
-.ne6wla
-.ne6wma
-.ni4e
-.ni6jho
-.ni6rva
-.nix7on.
-.n6kosa
-.noet4
-.noe5tj
-.no6gee
-.no4k
-.n6ondu
-.nu4l
-.ny7lont
-.oe5kr
-.oe4r
-.oe7ralg
-.oe7rang
-.oer7os.
-.oe4s3
-.o4gl
-.oh7rigs
-.o6klah
-.ok7laho
-.ol6ieu
-.o7lieui
-.oms4
-.o2n1
-.ond6ui
-.on7duit
-.o6nemo
-.on6ias
-.o7nias.
-.on3k
-.on7parm
-.on3s4
-.on6she
-.on6sse
-.on6t7eer
-.on6t5er
-.on4tr
-.ont7ras
-.ont5ri
-.o9nus
-.on6us.
-.oon4
-.oon7de.
-.o4op
-.oor5n
-.oor5s4
-.oo4s
-.o6peet
-.op7eet.
-.o6peg.
-.o6pein
-.o6p5erd
-.o4pof
-.o4pr
-.op5ra
-.ops4
-.op7smuk
-.o7ragie
-.or6kne
-.o3ro
-.orto5
-.o4sk
-.os5ko
-.os7oog.
-.ot6hel
-.o7thell
-.ou6doo
-.ou7nôi.
-.ou5tj
-.p2
-.pa4d3
-.pa7die.
-.pa6vlo
-.pe5la
-.pel6sk
-.per6st
-.pe4sk
-.pe4st
-.pie6tj
-.pi7laf.
-.pit5s
-.p4la
-.po6dzo
-.p6oefe
-.poen4
-.p6ontw
-.po6sad
-.p4re
-.pu6tad
-.py6paa
-.py6pla
-.py6pol
-.pyp5r
-.py7thon
-.r2
-.r'7etji
-.r6aard
-.ra7dart
-.ra6seg
-.ras7eg.
-.re7aumu
-.re6gru
-.rek5s
-.re6mas
-.rem7as.
-.re6mco
-.re4sl
-.rie4t
-.riet5j
-.riet5r
-.ri6ple
-.roc7ky.
-.ro6gak
-.ron7do.
-.rond5s
-.ro5py
-.ros5t
-.ro6tre
-.ro6wli
-.ru7klip
-.ruk4o
-.ru7kope
-.ru7staa
-.ru6suu
-.ry4k5a
-.ry6ste
-.s6aans
-.s4af
-.s4ag
-.sa7gopa
-.s6akty
-.s4am
-.sa6vlo
-.s4ca
-.se6an.
-.see5ra
-.see7ys.
-.se7khuk
-.se6laa
-.se6lop
-.se7reni
-.se6sle
-.ses5t
-.se6suu
-.se6tap
-.se4tr
-.sex5y
-.s6fale
-.s4fi
-.s4gr
-.s4ha4
-.s4he
-.s4hi
-.s4ho
-.s4hu
-.s4in
-.si6nes
-.si7pho.
-.si7rag.
-.s4ja
-.s4ka
-.s4ke
-.s4kl
-.s4ko
-.s4kr
-.s4ku
-.slag5
-.s4ma
-.s4me
-.s4mi
-.s4mo
-.s4mu
-.s6nags
-.s4ne
-.sod4
-.so7dafa
-.so7dwan
-.so7iets
-.so6kop
-.some4
-.s6oms.
-.s4on
-.so6neg
-.s4op
-.so6pek
-.so7phok
-.so7ross
-.s4pe
-.s4pl
-.spo4g
-.s6pren
-.s4py
-.s8ri.
-.s4ta
-.s6temp
-.ste7rol
-.ster6ta
-.ster6t7j
-.s4ti
-.s4to
-.straf5
-.s6trei
-.s6tuar
-.stuc5
-.su7biet
-.sub5m
-.sub5p
-.su8e.
-.s4ui
-.su5kr
-.su7ther
-.su7tra.
-.s4we
-.s4wi
-.s4wo
-.sy1
-.sy6lvi
-.sy7nagr
-.sy7slag
-.t2
-.t6afsy
-.t4ag
-.tee5k
-.te6flo
-.te7rafi
-.te7ragr
-.ter6tj
-.tert7ji
-.te4s5t
-.te7stud
-.ti6ene
-.tie6t5j
-.ti4k
-.ti6ner
-.t6jaai
-.tjok5
-.toe7ys.
-.to6kla
-.to7ky7o.
-.to6lun
-.to7ront
-.tou3
-.trap5r
-.trek5
-.tre4s
-.trie4
-.tries5
-.t4sa
-.ts4h
-.ts6jaa
-.ty6daa
-.ty6dor
-.ty6dra
-.ui6laa
-.ui4t3
-.ui5ti
-.ui5t6ji
-.um7hlan
-.uns4
-.un5st
-.u5raa
-.u5tra
-.va6kad
-.va6kei
-.va6naf
-.va4n5o
-.va7raan
-.va6sen
-.va6swa
-.vas7ys.
-.ve7cino
-.ve7laar
-.ve7lare
-.ve7lêr.
-.ve7loer
-.ve7lome
-.ve7meng
-.ve7rema
-.ve7rena
-.ve7reve
-.ve7skaf
-.ve7tore
-.vlas5
-.vo6gin
-.vo6lyw
-.vo6sko
-.wa7ghri
-.wa4n
-.wa7smou
-.wa6spa
-.web5m
-.we4bo
-.we6b-o
-.week7lan
-.wee4t5
-.we6kuu
-.we4l5a
-.we6lin
-.wel7ing
-.we6nan
-.werk5l
-.wer6k5r
-.we4s5k
-.we6soe
-.we6swa
-.w8hê.
-.w4hi
-.wi6id.
-.wins5
-.wi4p
-.wi4t
-.wî9e.
-.wy7kwas
-.wy7nand
-.wy6net
-.x2
-.y6amin
-.y6anni
-.y6asud
-.yk7loon
-.ys3
-.ys6ere
-.ys5la
-.ze5us
-.z6üric
-.z4wa
-.z4wi
-aa2
-aad1
-aa4da
-aa4de
-aa4do
-aa4d3r
-aaf7emme
-aaf6sat
-aag5al
-aag7asem
-aag7elas
-aag3r
-aag7rond
-aag5s4l
-aag5sp
-aag5st
-aag7swee
-aai7lag.
-aak1
-aa4ka
-aa4ko
-aak3r
-aak7ster
-aak3w
-aal1
-aal6dys
-aald7ys.
-aal5fe
-aal6fpo
-aal5sa
-aal7sfee
-aam1
-aa4ma
-aa4me
-aa4mo
-aam7smul
-aan1
-aan6dou
-aand6re
-aan7dren
-aan7dros
-aan7gons
-aan3k4
-aan5kl
-5aankon
-aan7kry.
-5aanleg
-aan7sage
-aan6see
-aans7eer
-aan6sek
-5aansig
-aan7skem
-aan5sl
-aan5sn
-aan6som
-aan6son
-aan5sp
-aan7tuig
-5aanva
-aap1
-aa4pa
-aa4po
-aap3r
-aa4pu
-aar3a
-aar6dan
-aard7ang
-aard7as.
-aar5de
-aar7ding
-aar4du
-aar3e
-aar3i
-aar7kwek
-aar6lbe
-aar6lka
-aar6lva
-aar6lzi
-aar6l-o
-aar3o
-aar7ser.
-aar7seri
-aar6sid
-aars8teek
-aars8tell
-aars6ti
-5aartap
-aar6tin
-aar7tomo
-aar7tryb
-aar3u
-aas3
-aa4so
-aas7omel
-aat1
-aat7nagt
-aa4to
-aat3r
-aat6sef
-aat7sfee
-aat7slim
-aat6slo
-aat6sly
-aat7sonn
-aat6sow
-aat6sti
-aau6wbe
-aä5ron
-aba6kas
-abak7as.
-aba7komb
-abare4
-aba7ster
-ab3d
-aber6sp
-ab5lau
-ab5rup
-3abso
-abu7scha
-ab5wie
-ac5que
-a2d
-a3da
-a4d3aa
-adam4
-adam7pe.
-ada4r
-a3de
-ades7lan
-ade7smee
-a3di
-adi6eus
-5adjud
-5admin
-a3do
-a4dow
-a3dr
-5adres.
-ads7erwe
-ad4sn
-ads6op.
-ad5sor
-ads7teso
-ad4su
-a3du
-ad5uit
-adu7spel
-adu5tj
-5advert
-a3dy
-ady7smit
-a1e
-ael7atoo
-ae4l5ei
-ae4lo
-aes5to
-aes5tr
-aes7tuur
-aë1
-4afee
-af5eks
-afel5aa
-af4fre
-af5gha
-af5inr
-af3l
-a4fof
-af1r
-af5raa
-af5ram
-af5ran
-a4f3re
-3afri
-a4f5rit
-a4f3ro
-a5frod
-a4f3ru
-af3s4w
-3afva
-afval5
-ag3aa
-a6gaanv
-a4gaar
-ag5adv
-a4g3ak
-ag5alg
-ag5api
-ag5are
-4age.
-4ageb
-4aged
-age6ddo
-a4gei
-4agem
-a4g5erv
-4ages
-a6g5ewen
-agge7us.
-a3gi
-a5ging
-a4g5ins
-agi5s6tr
-ag1l
-ag5ogg
-ag5ord
-ag5ork
-ag5oud
-a4g3re
-ag5rei
-a4g3ru
-ag3sa
-ags7abno
-ag6sins
-ag5ska
-ags7koev
-ag5skol
-ag5skr
-ag5sky
-ags4lo
-ag4sn
-ags6oep
-ag5som.
-ags6oom
-ags6op.
-ag5spe
-ag5s6por
-ags4t
-ags7taal
-ag5sti
-ags6waa
-ags6wee
-ag4tu
-agt7uur.
-a4g3ui
-ag5ure
-ag5uur
-ag-7lag.
-aher4
-ahe5ri
-a4hs.
-ai1
-aig6ne.
-aiï5er
-ai4lp
-ain6ste
-aip6eis
-ai3s4k
-ai5sla
-ais4p
-ais7prys
-ais4t
-ai3tj
-ai3t4r
-a4k5aan
-ak5arb
-ake6lee
-ake6lof
-ak5ess
-ak5ins
-akis4
-akis7te.
-5akkoo
-a2k3l
-a5klank
-ak6leet
-a2k3n
-ako6bre
-ak5oms
-a1kr
-a4k3re
-ak5rig
-ak4sc
-ak5sme
-ak3sp
-a4k3ui
-a2kw
-ak3we
-ak5win
-a3ky
-a4kys
-a1la
-ala7gadi
-a5lagm
-al5agt
-ala7kled
-alan7gaa
-al5dei
-a4lef
-ale6str
-al4f3e
-alf6eni
-al4fh
-al5fie
-al4fj
-alf7olie
-alf6sko
-alf6sni
-alf6sta
-alfs7tan
-al4fu
-alf4-
-5algori
-alien5s
-ali6gal
-ali7glas
-alk7aard
-alk7laag
-alk7oond
-alk5sp
-al4kui
-alk7wyk.
-5alleen
-alm7eier
-alm7lont
-a1lo
-als4a
-als7agti
-als7ghaa
-al6skel
-als7kelk
-als5li
-al4s5oo
-als7pret
-als5waa
-als7werw
-alt6hea
-alt6hus
-alt7rots
-alt6sas
-alt6wee
-a1lu
-alve5o
-a2m
-a3ma
-ama3k4
-aman6t5j
-ama7rins
-am5atoo
-5ambag
-5ambass
-a3me
-am5egt
-ame6sin
-ame5sm
-ame6spo
-a3mi
-ami7skyw
-amm6afu
-5ammun
-a3mo
-amp7arre
-amp7lag.
-amp7leer
-amp7lig.
-amp7lug.
-amp7omhe
-amp7seël
-amp7sfee
-amp7sier
-amp7staf
-amp7staw
-ams7esel
-am6s5kop
-ams7lend
-am6smet
-ams7meti
-ams6mul
-am4s3o
-ams7pels
-am6swan
-am6swar
-ams7wyn.
-a3mu
-a4mui
-am5uit
-a3my
-an5agt
-ana7kwal
-an5alf
-ana6spi
-an4c-
-and7aans
-and7adel
-an6dakt
-an5dan
-and7anal
-an4dap
-an6dase
-an6datt
-and7attr
-an6degt
-and7egte
-and5eks
-and7emal
-an6derf
-and7erf.
-an6dete
-and7etes
-and7eval
-an6dinw
-and7inwa
-and6ja.
-and6jar
-an4d5om
-an4don
-an4d5op
-and7oud.
-an6drak
-an4dro
-and6ser
-and6s7kop
-and7spaa
-and7spre
-and7steg
-and7swee
-an7dwing
-and7wyn.
-ane6ron
-ang7aal.
-ang7adem
-ang7ghor
-ang6hai
-ang6lad
-an5g4li
-an6glig
-ang7lig.
-ang7lip.
-ang6nol
-ang6ons
-ang7ore.
-ang7repu
-ang7sakm
-ang6ska
-ang7snee
-ang6s7te.
-ang7stem
-ang6sur
-ang7ure.
-anie6t5r
-an5inl
-ani5sf
-ani7slaw
-an6kase
-ank7asem
-ank7refe
-an4kry
-ank3w
-an5ops
-an5opt
-an5opv
-an5ord
-an5org
-ano7roei
-ano7stoe
-anr6hyn
-ans7aalw
-an4s5am
-an6sass
-ans7asse
-an4sc
-ans7eila
-ans7eura
-an6sink
-ans7ink.
-an6sjek
-ans7jekk
-ans7jord
-an4ske
-ans5kei
-an6skin
-an6s5kop
-ans7kous
-an6slat
-ans7mada
-an4sn
-ans7oran
-an4s5pa
-an6sper
-ans7pet.
-an4spo
-ans4ti
-ans7toil
-ant5aan
-ant5aar
-an6tass
-ant7asso
-an4tei
-an6teks
-ant7ekst
-5antenn
-ant7ete.
-an6tins
-ant5jo
-an4tol
-ant7opru
-ant7rest
-ant5rin
-ant7rob.
-ant6ski
-ant6sko
-an4tui
-5antwo
-a1ny
-a1o
-a2p
-a3pa
-a4p5aan
-a4p5agt
-ap5aks
-ap5arm
-5aparth
-a3pe
-ape6nop
-a3pi
-api6rfa
-ap3l
-a3po
-apo6kaa
-ap5ond
-apo5sta
-5appar
-ap1r
-ap5rol
-ap3ru
-a4pry
-ap5ryk
-a5prys
-ap6sall
-aps7alli
-ap6seko
-aps7iden
-ap6skof
-ap6s5taa
-ap5sti
-aps7toet
-aps5we
-a3pu
-a4pui
-ap5uit
-a3py
-a1ra
-ara7gwan
-ara7klee
-ara6kop
-ara3p4
-ara6ppa
-ar6d5agt
-ar6das.
-ar6datm
-ar5der
-ar6deti
-ar6d5opp
-3area
-aree5s
-areg7swe
-ar3ei
-are7knip
-ar5fla
-arg4h
-ar5gha
-5argite
-ar4gl
-arg4o
-arie4f
-ari6jke
-ar6k5ana
-ar6kini
-ark7leer
-ar5klo
-ark6los
-ark7onvo
-arko6v.
-ark7snui
-ark5sp
-ar4kw
-ark5wa
-arn6avo
-a1ro
-aroet6j
-aroe7tji
-aroo5h
-aroom4
-aroo5p
-aroo5s
-ar3op
-aro6wva
-ar5rag
-arres5t
-ars5ag
-ars7elek
-5arsena
-ar5sie
-ars6kou
-ars7krap
-ar6skre
-ars7kree
-ar6skro
-ars7pan.
-ar4spr
-ar6stal
-ars7tall
-ars7tee.
-ars6-in
-ar6taas
-art7aasv
-ar6talb
-art7albu
-ar4t5as
-ar4tc
-ar5te.
-art7eend
-ar5teh
-ar4tei
-art6hol
-art6hur
-art6omo
-art5oog
-art5oor
-ar4tor
-art7reek
-art7roep
-art6ryb
-art7samb
-art6slu
-art6spr
-art7spyn
-a1ru
-arus6o.
-a1ry
-ary7taal
-as3ag
-as5app
-as3c
-as4d.
-as4dh
-as5egt
-ase6rak
-as5ete
-as3f
-asg6hit
-as4hi
-asi7freu
-a4sj.
-a4sjm
-a2s3k
-a5skool
-a5skri
-as5kru
-a2s3l
-as5laag
-as3m
-a4smy
-a4sna
-as3no
-as9of.
-as5ogi
-a4s3oo
-as3op
-as3p
-as4por
-as3t
-as4t.
-a5staa
-as4th
-ast6les
-a5stof
-a7strak.
-a5s6tran
-a5s6troo
-as3w
-a4sys
-as5yst
-at5aar
-a4tag
-ata3s4
-ata6sse
-atas7se.
-ata6wba
-ate5it
-5atelj
-ate6rar
-ate6rer
-ate6ron
-a6tetes
-ath7cart
-a5t4hee
-ath7kinp
-ath7lone
-atie6te
-a2t3j
-atk6v-s
-5atleet
-5atmos
-at5oog
-at5ry.
-ats7alma
-at6sint
-ats7inte
-at4sj
-at6skin
-ats6kom
-at6skop
-ats7kop.
-ats7krip
-at4s5le
-ats7lykh
-at4sm
-ats6maa
-ats7nood
-at6somw
-ats7omwe
-at4son
-ats5ond
-ats7onko
-ats7onlu
-ats5op
-ats7ower
-ats7tend
-ats7trek
-ats8treke
-at6stro
-ats3w
-at5the
-att6hys
-at4tu
-atu6maa
-2au
-aud6rey
-au5gra
-aug6sbu
-aul6spo
-au3p
-aure5u
-auri5s4
-aus4t
-aus7tin.
-au5str
-aus7tus.
-aut6ste
-ava6lop
-ave7lott
-avlo6v.
-3avon
-awa7glas
-awas4
-awe5ga
-awe4r5a
-awer6ui
-aws6han
-ax5ofo
-a3ya
-ay4a.
-ay5ist
-ayn6ard
-ayn6or.
-a3yo
-a3yw
-azoo7ka.
-azz7agti
-az4zl
-azz7orke
-1ä
-1b2
-2b.
-babak4
-bab7wiër
-ba4d5ra
-bad5sp
-ba4kin
-ba3kl
-ba4kla
-ba6kleu
-ba4k3o
-ba4k3r
-bak3w
-bal6kla
-ba4lo
-bal7onts
-bal5or
-bal7tsas
-ban4da
-ban6dek
-ban4d5r
-ban7glad
-bang7ste
-bangs8te.
-ban4k5a
-ban6kre
-ban4kw
-bar7kaan
-bar4s3
-bar5th
-bas7ekst
-bas7ghit
-bas7jan.
-ba4sn
-ba5spe
-bas7peer
-bat5aan
-ba3t4j
-2bb
-b3ba
-b3be
-b3bi
-b3bl
-b3bo
-b3by
-2bd
-b3de
-b3di
-b3do
-bed7slaa
-bed6sta
-beds7taa
-be3dw
-beel6dr
-bek7neus
-bek7wind
-bel6aga
-belk6li
-bel7klik
-bel6ldo
-ber6gaa
-berg7aar
-ber4gl
-ber4g5r
-ber7grys
-ber6gzi
-bers7pan
-ber6spr
-bers7pre
-bert6sk
-bes6aan
-bes4k
-be5ska
-be3sl
-be3sm
-be3so
-be5son
-be5sôr
-be3s4t
-be6s5ter
-be5sti
-be6stia
-bes7tial
-bes7trol
-bet4h
-be5tha
-bet7hesd
-be5ton
-be3tw
-2b1f
-2b1g
-b3ge
-bid3s
-bi4du
-bid7ure.
-bie6dui
-bie4g
-bieg5r
-bi4jl
-bin6dri
-bio7sfee
-bi4rc
-bis4a
-bis6ho.
-bis7scho
-bi3tr
-2bj
-b3je
-2b1k
-b3kl
-b3ko
-b3ku
-bla4d5a
-bla6don
-bla4d5r
-bla5so
-4blau
-bleem5
-ble4s
-ble7ser.
-bles5k
-ble6tji
-blet7jie
-blê6rfl
-blik5o
-blix7en.
-blo4k3
-blo7kaal
-blo4m3
-blu6sem
-bly7mare
-bly3s4
-2b1n
-b3no
-bob7slee
-boe6kil
-boe6kom
-boe6koo
-boer6st
-boers7te
-boe4s5k
-bog7gher
-bog7skut
-bo2k1
-bo3ka
-bok6aak
-bok6ale
-bok6as.
-bok6erf
-bok6ies
-bok3l
-bo7kleed
-bok6om.
-bok6ors
-bok6ost
-bok3r
-bok6rag
-bo4m5aa
-bom6aat
-bo4m3o
-bon6dam
-bon6dra
-bond7raa
-bon6tel
-bon4t5r
-bo9op.
-bop6laa
-bor6dak
-bor6des
-bor4g5a
-bor6gri
-b4ors
-bor6saa
-bor4s5k
-bor4s5l
-bor4s5t
-bo2s
-bos7anem
-bos7jamb
-bos7pepe
-bos7taai
-bo5s4tr
-bos7uil.
-bo5t4ha
-bot6sto
-bou6it.
-bou3s4
-b3pr
-brand5a
-breek5
-br4ei
-brei5s4
-brengs7t
-brie6kw
-briek7wa
-3bro
-bro4n
-bro4sk
-bro6vni
-bro6wni
-bru4l
-4brup
-br4üm
-2b1s
-b3se
-b3si
-b3sk
-b3so
-b3sp
-b3st
-bs4ti
-b3su
-2bt
-b3te
-b3ti
-buc7cleu
-buik5s
-bui5t4j
-bult7af.
-bul4t5j
-bul6top
-bult7op.
-bul6tui
-bun7senb
-bus6had
-bus7toer
-but6hel
-buu7rend
-2bv
-b3ve
-b3vi
-2bw
-b3we
-by1
-by3d
-by3k
-by4lb
-by4lt
-by3n4a
-by3s
-bys6kot
-bys4l
-bys6tek
-bys7ter.
-bys6tor
-bys4w
-byt7alka
-byt7eier
-by3tr
-1c2
-2c.
-ca4es
-cam5ph
-ca3pr
-ca3ra
-car6lto
-caru7so.
-cat4h
-ca5tha
-2cc
-c3ca
-c3ch
-c3ci
-c3co
-ce4st
-ces5te
-2ch.
-che6lan
-5chemi
-che6reg
-che5r4i
-che7ryl.
-che7styl
-che6vvi
-ch5hoe
-ch5lei
-ch5nik
-cho7rage
-ch5sia
-2cht
-2ck
-c3ke
-cot7rand
-cove7ry.
-2ct
-c3ta
-c3to
-c3tu
-cus5to
-cyp7rian
-1d
-2d.
-4d5aanb
-d5aand
-4d5aank
-d5aansl
-daard5u
-4dabs
-2d1af
-da2g
-da5gas
-dag5et
-da5gha
-dag6ham
-da5gra
-dag4sk
-dag5so
-dag7ster
-dak7lei.
-dak7oorh
-da4k3r
-dak5wa
-4d5alar
-4damb
-dam6plu
-3dan
-dan6k7erk
-dan6sak
-dan6sko
-dans5m
-dan4so
-dan4s5t
-dan4t5r
-daph7ne.
-dap4l
-da5pla
-4d3arm
-4dart
-d5arti
-da4s.
-das7lag.
-das7traa
-da3t4j
-2db
-dby6lvo
-2dd
-dda5kl
-dda3s4
-dde6lee
-ddel5so
-dder7aal
-dde6ras
-dder7as.
-d3dh
-dd4hi
-deba4t
-dee4g
-deeg5r
-dee4l
-dee7lig.
-4d5eenh
-deë7skou
-4deg.
-2dei
-de3ka
-dek6aan
-de6klad
-de6k5lat
-de6klei
-dek7lei.
-de4kna
-6dekono
-de6krie
-dek7riet
-4deksa
-dek6ska
-del7appe
-del5eeu
-del5egg
-d5elekt
-del7elek
-6d5eleme
-de6leng
-del7enge
-del6fer
-del5fi
-del6fos
-delf7os.
-del5oor
-del7oper
-del6ser
-del4so
-del7sold
-del7sone
-del4sp
-del6str
-del7stre
-delt6ag
-del7tagt
-del7weis
-4demm
-dem6pla
-den6din
-4d3eng
-4denj
-den6kar
-den6kja
-den4k5l
-den4kr
-dens7pre
-den4t5j
-den6tri
-deo7plek
-deo7sfee
-3dep
-der5ast
-de6reen
-der7een.
-der7emig
-der7ent.
-der7flap
-de6rin.
-derm7ins
-der5na
-de4ro
-de5rob
-de5roe
-der5of
-de5rol
-der5on
-der5ow
-der5ps
-der6sjo
-der5s6kr
-der6slu
-der6spu
-der7thal
-der6uit
-de5sag
-des7alni
-des5ap
-de6seng
-des7enge
-de4s5in
-deskat5
-de6skor
-des7leed
-de4sn
-des7offe
-des7oksi
-de4s5on
-de4sor
-de4spa
-des7pari
-des7poës
-des7prik
-des7taal
-des7tele
-de4sti
-de5stig
-de4sw
-des7weë.
-4d5ete.
-deten6te
-de3tw
-4deuro
-deur5s6w
-2d1f
-2d1g
-dge5sp
-dg4li
-2dh
-dias4
-dia7stol
-dia6zvi
-dic7kie.
-dic7tio.
-die6fal
-die6kes
-5diens
-die4pl
-die6tom
-die4t5u
-dig6ofa
-di4gre
-digs4
-dig7skro
-dig7som.
-di6kamp
-dik7amp.
-di4k3l
-di4kr
-dik7ribs
-di4kw
-dik7wyn.
-di4l5al
-din6gas
-din4gr
-4d3inl
-4dins
-4d3int
-4d3inv
-di6sass
-dis7assi
-di4so
-di5son
-dis6pne
-dis7quis
-dit6hak
-dit7jies
-2dj
-dja7dji.
-d4ji.
-d4jia
-2d1k
-dklo4
-2d1l
-d3la
-2dm
-2d1n
-doek5r
-doe6lon
-doe6sko
-does7kop
-2dof
-4dogi
-do4l5os
-dol6sou
-dols7ou.
-3dom
-dom6pli
-dom6sap
-4d5omse
-dom7slim
-dom6swê
-4domt
-don4sk
-4d5oord
-4dopn
-dop6rof
-dop6rys
-3dor
-4d3org
-dor7othy
-dor4sl
-dor4st
-dos6tel
-dou3t
-do3y
-doy4e
-2dp
-d2r
-3dra
-dra6gaa
-4d5rand
-dra7stan
-4dreë
-4d3reg
-d4rela
-d4rew
-4driff
-d5rigt
-d5riss
-4driv
-droë7ys.
-4d5rond
-d5rooi
-4d5roos
-dr4op
-dro6pan
-dro5pn
-dro7sfee
-4d3rug
-d5ruim
-d5ruit
-4d3rus
-4d3ry.
-4d3rye
-4d3ryk
-4drym
-d4ryw
-2ds
-ds5aamb
-ds5aar
-d4s3ad
-d5sakr
-ds5aks
-ds5angs
-d4s3ar
-ds3as
-d3se
-d4s5een
-ds5eis.
-d4s5eko
-dse4l
-dse7leer
-d4s5eng
-d4s5era
-dser6tj
-dsert7ji
-d4s5erv
-d5sfeer
-ds3id
-ds5imp
-ds5inde
-d4s5ins
-ds5int
-d2s3j
-d5skee
-d4skin
-ds5kind
-d4skis
-d5skole
-d4skom
-d5skoo
-d6skraa
-d6skrit
-d6skroo
-d4s3le
-ds3li
-ds6luie
-ds3m
-d5s4mee
-ds6moor
-d4sna
-ds5neu
-ds5noo
-ds5not
-d2s1o
-d3soe
-d5some
-ds3on
-d7sonde.
-d7sondes
-dson4t
-ds5oog
-ds3op
-ds3ow
-d5s4pel
-d5spes
-d3spi
-ds5pop
-ds6prek
-d7spreker
-ds7preki
-d1st
-ds5taak
-d4staf
-d5stand
-ds5tea
-d5stel
-ds5tent
-d5ster.
-ds5terr
-d5sters
-ds4ti
-d3str
-d3stu
-ds3w
-d3sy
-2dt
-dter6tj
-dtert7ji
-du4e-
-duns6te
-dur6rhe
-dusie5k
-dus6kap
-dus6pel
-2dv
-dverdiens9
-dverdien8st
-dve6sid
-dvie4
-2dw
-d4waal
-d5waar
-5d4wang
-dwa6nor
-4dwarm
-dwar7se.
-d3wat
-d4weil
-5dwerg
-dwerk5o
-dwe6tar
-d3wil
-d4wing
-4dwoo
-d4wyn
-dys5ag
-dys6mit
-dys7tuin
-2d-
-d-r6hod
-e1a
-eam6ses
-eang4
-eate4
-eau7mont
-e3ba
-eb5adr
-eb9cu.
-ebou5t
-ebou6t.
-eb4re
-ebrons5
-eb5tui
-ec5cle
-e4chn
-ech7tiaa
-eda7gaat
-eda5go
-e3de
-ed5eis
-eder7as.
-ede7ring
-ede6sap
-ed5off
-edors5
-ed4ra
-ed5rep
-ed6saks
-eds7kalm
-ed4sl
-eds7lafe
-eds5om
-ed3sp
-ed5s4we
-ed5uit
-ed2w
-ed5woo
-ed5yst
-ed3yw
-ee5agt
-eed6atu
-eed5we
-ee4dy
-ee2f
-eef7laag
-eef7lopi
-eef7rant
-eef7rek.
-eeg3l
-eeg5ru
-eeg3s4
-eeg6sdi
-e5eila
-ee2k
-eek5ass
-ee5klaa
-ee5klag
-eek5lo
-eek3n
-eek5og
-eek7oors
-eek7rooi
-eek3w
-eek6wal
-eel5ap
-eel6doo
-eel7doos
-eel5een
-eel7eer.
-eel5ei
-eel7indr
-eeling7s6
-ee6lins
-eel5int
-ee4l3o
-ee5lob
-eel6ood
-eel6oon
-eel5sa
-eel7snag
-eem7onde
-eem5ou
-ee2n1
-5eendj
-een6ema
-ee5nen
-3eenj
-eenk4
-een5kl
-een7slot
-een5sm
-eens6pa
-een7swee
-een7topp
-ee4ny
-eep7esel
-eep7leer
-eep7loog
-ee4pop
-eep7roes
-eep6sam
-eep7skep
-eeps5ko
-eep7skui
-eep6sti
-ee2r
-eer5ap
-ee5red
-eer5ee
-eer5end
-eer5in
-ee5rob
-eer7oes.
-eer5om
-eer5on
-ee5row
-eer5ps
-eer7skur
-eers7lam
-eer7smed
-eer6sow
-eer3u
-eer6ust
-eery4
-eer5ys
-ee2s3
-ee4s.
-ees6ala
-ees6ap.
-ees6lep
-ees5me
-ees7muil
-ee5sna
-ee5sny
-ees6op.
-ees6pre
-ee5staa
-ees6tal
-ees4tr
-ee6styd
-ee4sw
-ee5syd
-ees6yfe
-eet7appe
-eet7eenh
-ee4ti
-eet5in
-eet7rek.
-ee6troe
-eet7roed
-eet7ruik
-eet7wiel
-eeu3g4
-eeu5in
-eeus4
-eeu7spoe
-eeu5tj
-eeu6ur.
-ee5yst
-e3êr
-eë5aan
-eëks5t
-eël7eier
-eël7yste
-eë4na
-e3ër
-eër7agti
-eë5ran
-eër7arm.
-eë5rod
-eër6ske
-eë4sk
-eët6ste
-eëts7te.
-e4faf
-ef5afs
-ef5eks
-5effek
-ef5inh
-e1fl
-ef5loo
-e4fly
-ef5oms
-ef5oue
-ef3st
-efs6tal
-eg5amp
-ega5s4k
-e3ge
-ege6las
-egel7as.
-eges7per
-eges4t
-ege6vwo
-e6ginko
-eg5ogg
-eg5rig
-egs7enti
-eg6sins
-eg6s5int
-eg3sk
-egs6lot
-egs6pre
-egs6pri
-egs6pyk
-eg6s7taal
-egte6re
-e4g3ui
-eher6in
-ehe7rinn
-eho6kra
-eib7niz.
-eid7rok.
-eid7saam
-eid7salo
-eid7sirk
-eid7skou
-eid7sku.
-eid7spa.
-eid7spek
-eid7ste.
-eid7stoo
-eid7sug.
-ei1e
-eie7naan
-eig6h-n
-eig7opro
-eik7aard
-ei5kno
-eik7wydt
-eil6spa
-3eind
-ei4n5ed
-ein7eed.
-ein7glas
-ei4non
-ein7oord
-ei4n5op
-ein7otte
-ein6sad
-ein6sep
-eis7angs
-ei5sei
-ei6s5ind
-ei5sja
-eis7kamm
-eis6kaw
-ei5skê
-eis6kot
-eis6laa
-4eiso
-eis7ouer
-eis6pir
-ei5s6tel
-ei5s6tre
-eit2
-eit7hand
-ei3tj
-eit7klin
-eit7nisp
-eit7onde
-ei5tra
-eits5ko
-eits5l
-eits5o
-eit7spor
-eit7stak
-eit7stra
-eits5w
-eï5mit
-eï4na
-eïn7klin
-eï4no
-eï4nu
-eï5oni
-eï4sl
-eja7stas
-ek5aan
-ekaars8te
-ek5aks
-e3kan
-ek5asg
-e3ke
-ek5een
-eke7naar
-eke6tam
-e3kê
-e4k5ins
-ek3k
-e4k5les
-e5kleu
-e4klê
-ek5log
-e3koe
-eko6mol
-ekom4s
-ek5omsl
-ekoms5t
-5ekono
-ek5ooi
-e3kop
-eko6pap
-e4k5opm
-ek5opn
-ekor6da
-eko7rum.
-ekou6st
-ek5owe
-e1kr
-ek5rad
-e4k5rok
-e5krom
-ek5rug
-ek6sapp
-5eksemp
-eks5esk
-eks7inge
-eks7logi
-eks7loks
-eks7outo
-eks5pir
-eks5po
-eks6poe
-eks6tel
-ek6sten
-ek4sti
-eks7uur.
-ek5uit
-e4kwê
-ek5wie
-e4kwu
-e1ky
-e1la
-e6l5aand
-el5aanh
-e6laanv
-el5aard
-el5adm
-el5adv
-el3af
-el3ag
-e5lag.
-ela7klon
-e4l3al
-e5lari
-e4l5arm
-ela7slan
-el5asp
-eld7adel
-el4dap
-el5de.
-el6d5ele
-eld7erfe
-eld7evan
-eld7olie
-eld7onde
-eld7smid
-e3le
-el5eien
-eleis6t
-elei7sta
-e6lelek
-el5erts
-ele7sett
-ele6too
-el4faa
-elf6abr
-elf6eit
-elf7en-d
-elf5erk
-elf6lan
-elf6les
-el4fon
-elf7onth
-elf7ontp
-el6foop
-elf7oops
-el6foor
-elf7oors
-elf6ron
-elf7twyf
-e3li
-eling8stell
-el5inh
-e6linko
-el5inv
-elk7nage
-elks4
-el4kwi
-el4lv
-elm5agt
-e1lo
-el4ob
-e4lol
-el5oli
-el5ond
-el5ont
-e4loor
-e4l5opd
-el6ope.
-e4l3or
-el5phi
-els7angs
-el5sfe
-el6sind
-els7indr
-el6skan
-el6skom
-els7korr
-els7krit
-els7lof.
-el5smi
-els7mora
-els6nag
-els7nood
-els7onde
-els7oork
-el6stek
-el6s7tran
-els7ware
-el5swee
-elt7akke
-e1lu
-el5uit
-eluit6j
-elui7tji
-e3ly
-ely6kaa
-em5app
-e5masj
-eme6lek
-eme6lew
-eme6ron
-eme4s
-eme7sis.
-emes5m
-emes5t
-e5metf
-em5eva
-e4moef
-em3op
-em5org
-emp7laag
-emp6skr
-ems4p
-em5spl
-e4naf
-ena7glas
-en5agt
-en5akk
-en5alt
-e4n5art
-ena6spe
-en6d5agt
-ende7ro.
-end7raak
-end7rit.
-ends7oë.
-end7sons
-end7ure.
-end6wer
-en5eil
-en4en
-e4n5ent
-5energ
-ener6tj
-enert7ji
-eng6hor
-eng4la
-eng6lor
-e3ni
-en4ig
-en4im
-en5inh
-e6n5ink.
-eni7soms
-3enji
-en6kinh
-enkom4
-enkoms5
-enk3w
-e5nomm
-eno7ryn.
-en5out
-ens7adem
-en6sall
-ens7are.
-ens7eise
-ens7elek
-ens7elik
-en5sen
-ens5erv
-ens7esse
-ens6haw
-en5sie
-ens7inga
-en5sji
-ens7koei
-ens7kyke
-ens7luik
-ens6med
-ens7nuk.
-en4son
-ens7onru
-ens7onva
-en6spei
-ens7pist
-ens7pot.
-en6spou
-ens7pous
-ens7taak
-en6stak
-ens6tam
-en6steh
-ens6tei
-ens6tel
-ens7tele
-en7sters
-en7s6tes.
-ens6tet
-ens6teu
-ens6too
-ens7toom
-ens7trek
-ens7uil.
-ens7ure.
-en5sy.
-ent5akt
-en6teks
-ent7inte
-ent7rif.
-ent7rok.
-ent6sin
-ent6son
-ent6spa
-ent6wen
-en3ui
-enu6lin
-enu5sk
-enu5st
-e3ny
-en-7steg
-e1o
-eoe4s
-eo5fag
-eo3g4n
-eoi6ste
-eop6lek
-eo3ro
-eo1s
-eos4t
-eo3tr
-e4paf
-e4p3ag
-epe6loo
-ep5emm
-ep5epi
-epers7te
-5epidem
-e4p5int
-ep4la
-ep5lap
-ep5ligg
-ep5lus
-epoet4
-epo6nin
-ep5ops
-e4p5rei
-eps7ameu
-ep6s5eis
-eps5id
-ep4sj
-ep4sk
-eps7kano
-ep5ski
-eps7kohe
-ep4slu
-eps7luik
-eps6oms
-eps5on
-ep4s5pr
-eps7waar
-ep5uit
-e1ra
-er4a.
-er5aan
-er5afd
-er5afh
-er5afsk
-er5aft
-er5afv
-er5afw
-er3ag
-era7gree
-era7kles
-er5aks
-er5akt
-er5alb
-er6ald.
-er5alt
-er5ana
-e5randa
-e4rapp
-er3ar
-era6ser
-era7uitv
-erd7ryle
-erd7slip
-erd7tree
-er3dw
-er4eb
-er6eenk
-er5eers
-er5eff
-er5eie
-er5eil
-er4ek
-er5ekst
-er5elm
-e4r5emm
-e6rengt
-e4reni
-e4renj
-er5erg
-er5erv
-e3r4es
-er5esel
-ere7spio
-eres6ta
-ere6stp
-ere7temm
-e5rewa
-e1rê
-er4fh
-er6flaa
-erf7leen
-er6flet
-erf7lett
-er5flo
-erf7lug.
-erf7lus.
-erf7omhe
-erf7oom.
-er4fp
-erf7reuk
-erf7ruik
-erg7aren
-erg7lyn.
-erg7renm
-erg7rymp
-erg6rys
-erg6sho
-erg7stra
-erg7uitj
-er4id
-eri5fr
-e3rig
-eri4g5a
-e4r5ind
-e6rink.
-e6rinna
-er5ins
-e4r5int
-e6r5ital
-eri7trea
-erk5aan
-erk7esel
-erk6has
-erk7ink.
-er6kins
-erk7inwy
-er4kj
-er6klat
-er5kle
-erk7onde
-erk6opn
-erk6s5on
-erk7spas
-erk6sto
-erk7uurr
-er6kweë
-erk7weë.
-erk7ywer
-er5lik
-er5lui
-erm4a
-erm7aanh
-erm7afsl
-ern7eiwi
-ern7kwes
-er4nm
-er4nn
-ern7oes.
-er4nr
-e1ro
-er5oew
-er3oë
-er5ogg
-e3roï
-e5rok.
-e4r5oks
-e4r5oli
-er5om.
-er5omh
-er5oms
-er6ona.
-er5oog
-e5room
-er5oond
-e5roos
-e4r3op
-e5ropa
-er6opla
-e5ropo
-e4ror
-e5rora
-5erosi
-e4r5oss
-ero7stil
-er5oud
-er5oue
-erou6t.
-erp7anke
-er6pinh
-erp7inho
-erp6lan
-erp7ruik
-erp6sig
-err6ein
-ers7assi
-er6s5eli
-ers7ete.
-ers7inda
-ers7jean
-ers7kaia
-er6skaj
-ers7kaju
-er7skake
-ers7kaki
-ers7kete
-ers7kiss
-ers7koet
-ers7koor
-ers7kop.
-er5sky
-ers7less
-ers7lone
-ers7luid
-ers6mal
-er7smara
-er6smat
-er4s5om
-ers7onvr
-ers6opn
-ers7ower
-ers7pien
-ers7put.
-ers7scen
-er5ste
-ers7tele
-ers6teo
-ers4ti
-ers7treg
-ers7waar
-ert5aan
-er6taap
-ert7aap.
-er5tap
-ert7ape.
-er6tend
-ert7end.
-er5tes
-ert6hal
-ert7jakk
-ert7opin
-ert7orre
-er6tres
-ert7rok.
-erts5l
-ert7uur.
-ert6wak
-er5twi
-e1ru
-erug3
-er5uin
-er5uit
-er3uu
-e1ry
-ery7doel
-ery7salf
-erys6ma
-ery7smaa
-ery7suur
-ery7trek
-e5saan.
-e5sage
-es5agt
-es4ak
-es5all
-esa6mol
-es4an
-es3c
-es4dh
-e3se
-e4s5een
-e4s5epi
-es4er
-e3si
-es4ia
-es4ie
-es4if
-esi6gei
-e4sill
-esin6s5i
-es4it
-e2sj
-e4s5ke.
-es5kle
-eskor6s
-eskors7t
-e5s4kut
-e3sla
-es5lem
-es4lip
-e1sm
-es4me
-es5me.
-es5men
-es9mè.
-e5smou
-es4mu
-es5nie
-es5noo
-es4ny
-esoet6j
-esoe7tji
-eso7fagu
-es4ol
-e3s4oo
-es4ou
-e1sp
-e5spel
-es5pen
-e4sper
-es5pet
-es5pir
-es4pli
-es4pra
-ess6opv
-e1st
-es4t.
-e5stad
-es5tas
-e4s5te.
-es5tea
-es5teli
-e4s5tes
-estes5o
-est6her
-es6tik.
-es5toi
-es5tos
-e6strak
-es4tre
-e5stuk
-e3sw
-es4yd
-e4t3ag
-eta7stas
-e3te
-e4t5eie
-ete5r6aa
-etie4l5
-5etike
-et7jie-k
-etk6ysi
-eto6nop
-et5opv
-e4t5ord
-e4t5ram
-e6treke
-e6treko
-etre7kor
-et5rim
-ets7fyn.
-et6skat
-ets7kato
-ets7kous
-ets7krie
-et6s5lap
-ets6maa
-ets5ong
-et6spaa
-et4spr
-et6stek
-ett6re.
-et5uits
-et5unie
-et4wi
-et5win
-et4wy
-et5yst
-2eu.
-eug6rie
-e3uit
-euk7inte
-euk4l
-eul7eien
-eu4loo
-eu5mon
-eum7uitg
-eu4na
-eun6sla
-eup7aand
-eu4ra
-eur5aa
-eur6aal
-eu5ral
-eu4ree
-eur7eet.
-eu6reg.
-eu6regt
-eur7egth
-eur7ekst
-eur7elem
-eur7spar
-eu4sa
-eus7ape.
-eus7jig.
-eus6kot
-eus6tac
-eute4l
-eu5tem
-eu3tr
-e1uu
-2eu-
-eva7kwaa
-eva6les
-evr6ore
-evu6es.
-ewal4s5
-ew4ar
-ewee4
-ewe7gaan
-ewe7goed
-ewe7inde
-e5weis
-ewe6nee
-ewen8stes
-ewe6res
-ewe7span
-ewik4s
-ewiks7te
-exy7ste.
-eyn4o
-e5yste
-e3yw
-e4zka
-ez9ra.
-è1r
-ê1
-êe4ro
-êla7flui
-ê4rde
-êre6loe
-ê4rhe
-1ë
-ë1g
-ëi3e
-ëk4sk
-ëks3p
-ëks6pek
-ëk4st
-ë3laa
-ël5agt
-ël5alb
-ël5as.
-ë4lei
-ël5ent
-ëlf4l
-ël5fle
-ë5loop
-ëls7kuil
-ën5agt
-ën4tr
-ënt5re
-ëpre4
-ër5aan
-ër5afd
-ër5off
-ërog4
-ëro3s
-ër5owe
-ërs7kent
-ë1ry
-ë1s
-2f.
-1fa
-f5aanb
-f3aar
-f3ad
-2f1ag
-f4agi
-fah7renh
-fai6r-n
-fak6ste
-faks7te.
-fan4t5j
-fan4tr
-fant6s5t
-f3ap
-f3art
-faru6q.
-2fb
-2fd
-f5dein
-fde4s
-fde7sake
-fde7sess
-fde7skei
-fde7stor
-fde7stra
-fde7sust
-f3d2w
-1fe
-4feen
-3f4ees
-f3eie
-fe4l5ap
-fel7asem
-fel7enti
-fe6loon
-fel7oond
-fel5s4m
-fel6spoo
-fe4lu
-fe4ly
-fel5ys
-fer6skr
-fers7kra
-fer6sku
-fers7kui
-f5erts
-fe2s
-fes3t
-fet7ete.
-f1f
-ffe6las
-ffe6ret
-ffe6tet
-ffi6eek
-ffies6m
-ff5rei
-f1g
-fge7sper
-fg4ha
-fg4li
-fg4ly
-fgod4s5
-1fi
-fi3d
-fid6ji-
-fie7ekst
-fie7lafo
-fie7smaa
-fie4s5o
-fie6tol
-fi5lag
-fil4m5a
-4finr
-fi5sto
-fit4z
-2f1k
-fkom6st
-fkoms7te
-fla4p
-flap5o
-f2le
-f5lees
-f5lese
-fle4t
-flet5j
-flex7or.
-2fli
-5f4liek
-3f4lit
-2fm
-fmo4no
-f1n
-fni4s3
-1fo
-f3of
-4foff
-fok4s5t
-fol4k3
-4foms
-5fonds
-fond6sk
-fond6st
-fonds7te
-f5ontb
-5fonte
-f5ontl
-f5oorl
-2fop
-fo4po
-fop7spen
-f5orde
-f3org
-for7oksi
-fo5rom
-fo3ru
-fos7feen
-fout5j
-fox7hill
-fox7stra
-fp4sa
-1f2r
-frag6aa
-4fram
-f4ras
-f4ren
-fre4s5k
-4f3rig
-fri6too
-f4rod
-fru5ga
-f3ry
-2f1s
-fs5agt
-f4s5ank
-f4s5eko
-f4skon
-fs5log
-f3sm
-f4sma
-fs4me
-fs4mi
-f3sp
-fs4pl
-f4spro
-f4s5tak
-fs4ti
-2ft
-ftre4
-ftre5d
-ftrek5
-1fu
-fu4ch
-fur6ore
-fu3so
-4fuur
-f5uur.
-2fv
-fva4l
-2fw
-1fy
-fyn7goud
-2f1ys
-fyt7appe
-fyt7jie.
-2g.
-1ga
-g4aai
-gaam6s7te
-g4aan.
-g5aanbi
-g6aandh
-g5aanl
-g5aanw
-g4aat
-4g3add
-2g1af
-g4afo
-2g1ag
-g4agr
-ga5gre
-gag6rep
-gak4l
-ga5kla
-gal7afsk
-gal7appe
-galei5
-gal7oog.
-gan6gra
-4g5anke
-gans7ke.
-g3app
-ga3ra
-4g3arb
-4g3arm
-gar4s3
-gars6ti
-gar7stig
-g5arti
-ga6sarm
-gas7arm.
-gas6mok
-ga4so
-ga5sol
-gas6pel
-gas6tre
-ga4tr
-gat7ruik
-gay7nor.
-2gb
-gbys4
-2gd
-gde7roof
-gdut7jie
-g3dw
-gd4wa
-1ge
-ge3d
-gedi4s
-g5eenh
-gee6tal
-geet7al.
-geës3
-geë6sti
-ge3f
-4ge4ff
-gef4l
-ge1g2
-4geg.
-geges5p
-geg6uil
-g3eie
-geï7migr
-ge7k6lik.
-4geks
-gek4y
-gel6agk
-gel6dad
-gel4do
-ge5lol
-ge5loo
-ge6loon
-gel7oond
-gel6s7te.
-gemi7au.
-gem6opp
-3gen
-gen4dr
-gen6dur
-genes5t
-4geng
-ge4oi
-gep4a
-ge5pag
-geper6st
-gepon6s
-3ger
-ge5rap
-ger6ard
-ger5ete
-ger7iden
-ge6roef
-ger6ogg
-ger6spo
-ger5sw
-ger6uit
-ge3sa
-ge5sfe
-ge5sin
-ges7jagt
-ges4k
-ges7kade
-ge3sl
-ge3s4m
-ge5sne
-ge3sp
-ges7perb
-ges7pers
-ges7pes.
-ge3st
-ges6tas
-ges6tig
-ges4w
-ge5tja
-ge3tw
-ge3ui
-ge5um.
-gev7woes
-gewens7te
-ge1y
-2g1f
-g3fl
-gf4li
-2g1g2
-g3ga
-gga7kwee
-gga7stre
-gga5t4j
-gge6sti
-2gh
-5g4hoer
-gho7ghok
-gho4l
-5gholf
-g4hs.
-ghu6moe
-1gi
-g5iden
-gie6far
-gi4fa
-4gimp
-gin6gaa
-4g5inri
-gip4s
-gip7siet
-gis7enti
-gi5tra
-git5sw
-2g1k
-gkaar4
-5g4lans
-gla4sa
-gla6sel
-gla6ska
-glas5o
-g4le.
-5g4len.
-gli6don
-g4lif
-gli6gur
-4glik
-g4lim
-g4lip
-3glis
-g4lob
-4glod
-3g4loe
-g4lof
-3g4lom
-g3lop
-3g4lot
-g4lo-
-g3lus
-3g4luu
-g4ly.
-4glyn
-2gm
-gma7skui
-2g1n
-gneem5
-gneet5
-gnie6ko
-1go
-god6sak
-god6sid
-4g3oef
-goe7krui
-4goes
-g5oes.
-g5oeta
-goe7the.
-goë7lary
-2g1of
-3gogi
-gol4f5o
-4g5olie
-go4mag
-4g3ong
-gon6sto
-g3ont
-goo5gl
-4g3oor
-2g1op
-go5pla
-3g4opo
-g5orig
-go3sl
-gos7pelr
-g5osse
-go3s4t
-gou4d3
-goud6a.
-gou7dief
-gou7dini
-gou7dink
-goud6s.
-gow7rie.
-go9ya.
-2gp
-1g2r
-g4rab
-g5rak.
-gra4ma
-gra7mado
-gra4m5o
-g4ras
-gra4s5a
-gra4se
-4g3red
-g4ree4
-g5reek
-greep5
-4greë
-g4ren
-gren6st
-g5rese
-gre4sp
-gre6sur
-gre6tji
-gret7jie
-g4reu
-griek6s7t
-grie6t5j
-4grig
-gri4p
-g5rit.
-4g3rok
-g4ron
-4g5rooi
-g5rook
-g5room
-g5rowe
-4grug
-g5ruim
-4g3ryk
-4grym
-gry6ste
-2gs
-g2s1a
-g5saam
-gs3ad
-gs6ade.
-g4saf
-gs5agt
-gs5aks
-g5sala
-g5sale
-gs5ana
-gs5ant
-gs5app
-gs6appe
-gs3ar
-gs3as
-g4s5een
-g4s3ef
-gs5eis.
-g6seise
-gs5eko
-gs5eks
-g5sekt
-g4s5ele
-g4s5eli
-g4s5ene
-g4s5est
-g4sew
-gs5ewe
-gs3f
-g5s6feer
-g4sid
-gs5ide
-g6simpa
-gs5inde
-gs5ini
-gs5inl
-gs5ins
-g2s3j
-g2s1k
-g5skaal
-gs5kab
-g5skad
-g6skapa
-g5skatt
-g5sked
-g5sker
-g7skeur.
-gs7keurd
-g3ski
-g4s5kin
-g4skl
-g5skof
-g5skole
-g4skom
-g5skoo
-g6s5koor
-gs5korr
-g5skot
-g5skou
-gs3kr
-g2s3l
-g3s4la
-g5s4lop
-gs3m
-g5snel
-g2s3o
-gs4ol
-gso6pro
-gs4ou
-gs3p
-g5s4pel
-gs5per
-g5spes
-g3s4pi
-g6spill
-gs4poe
-gs6pore
-g7sports
-g5s4pru
-g1st
-g6s5taak
-g4s5tab
-gs6tabi
-g4stak
-g4stal
-g4star
-g4s5tek
-g6stelg
-g6stera
-gs5teri
-g6sterr
-gster6s
-g6stese
-g4sti
-g5stigt
-g4stoe
-g7stoele
-gs5toer
-gs5toet
-g4s5ton
-gs5trad
-g6strak
-g6stran
-g6strap
-g6strib
-gs5troe
-gs7troon
-g6struu
-g4s3ui
-gs3w
-gs6werw
-2gt
-gte7eenh
-gte7lagi
-gte6ras
-gte6rer
-gte4ro
-gte7roer
-gte7rol.
-gtes4
-gte7sfee
-gte7smee
-gt5uri
-1gu
-gu2a
-gu2e
-gu5ela
-guid6o.
-gui6rla
-4guit
-2gv
-2gw
-g3yst
-2g-
-1h2
-2h.
-2ha.
-hal4f3
-hal6m5ag
-4halo
-hal4s5k
-hal6s5tr
-ham7pagn
-ham6skr
-hams7kra
-han6dan
-han7dja.
-han4dr
-han4du
-han6gli
-han6gor
-hangs6l
-hang5s6w
-han4s5k
-han6ska
-har6dop
-hard7op.
-har6sel
-har6sol
-har6spa
-har6t5aa
-har4t5j
-har4to
-har7toem
-ha4wk
-haw7shan
-hay6eli
-heb7lus.
-hee4l
-heer8s7te.
-hees6e.
-heg7orga
-heg7rank
-heg7spyk
-5heid.
-heid7stem
-he4ko
-hek7saan
-he4k3w
-hel7ange
-hend4
-hen4so
-he2r
-her3a
-he9ra.
-her6akl
-he7rald.
-he5r4an
-he3re
-her7egpa
-he4r5ek
-he4r5ev
-herf4
-herfs5
-her3i
-her6ib.
-he5rid
-he5rod
-he5rol
-her5ond
-her7ontm
-he5ros
-her6oss
-he5rou
-her5ow
-her7sche
-her3u
-her5yk
-he4sp
-hes7peru
-he4s3t
-hete5r6o
-heu6paa
-he3us
-hev3
-he4vr
-hewen7st
-hie4r
-hier7in.
-hie7roni
-hie7rony
-hië1
-hil6lbr
-5hings
-hing6s5t
-hipe4
-hi4rl
-hi4sp
-his5pa
-hi4v-
-2hl
-h3li
-2hm
-h3ma
-2hn
-hode6sl
-hodes7la
-hoe7kaai
-hoe6kys
-hoe6spi
-hoe4s5t
-hoër7op.
-ho4fa
-hof5aa
-hof7amp.
-hof7uits
-hog6hok
-hoi7swer
-hok7rakk
-hol7aar.
-holes5
-4holf
-hol5in
-hol7oog.
-4hon.
-hon6daa
-hon6dag
-hon6dro
-hop7land
-hop7smaa
-ho3ro
-hor4s
-hor4t5j
-hos6hol
-ho4ta
-hou4t5a
-hout5j
-hou6tol
-hou6tom
-hou6who
-2hr
-hre6sto
-hrie4
-hries5
-hris5t
-h3te
-h3to
-hu9go.
-hui6daa
-hui6dui
-hui6sef
-huit6ji
-hui7tjie
-huk6hun
-hul4p5a
-hul6pek
-hul6ple
-hul6por
-hul6ste
-huls7te.
-hu3mo
-hum7oes.
-humus5
-huter6s
-hut7jie.
-hut6spo
-hut6ste
-huts7te.
-h5vill
-2hw
-hyg7roma
-hys3k
-hys7tang
-i1a
-iaan6so
-iaan6sp
-iaan6st
-iaans7te
-iam7son.
-ia4nop
-ias6koo
-ia5spo
-ia5sta
-ia5s4tr
-i4baf
-i4bag
-ibou6s.
-ic5ky.
-i2d
-i3da
-ida7groe
-id5agt
-idde6ra
-i3de
-ide7snui
-i3dê
-i3di
-idia5s
-id4ja
-i5djan
-i3do
-i3dr
-id2s1
-id4s5et
-ids7inoe
-id4ska
-ids7kerm
-ids5kr
-ids3l
-ids7lags
-ids7nye.
-ids3o
-ids3p
-ids6pa.
-ids6pek
-ids6pie
-id6spil
-ids6pri
-id6spry
-ids7taal
-ids7tee.
-ids7teks
-ids7tele
-ids5ti
-ids5toe
-id6s7trek
-ids7ure.
-i3du
-id3uu
-ieding6s7
-ied7ione
-ied5rol
-ied3w
-i1ee
-i4eee
-ie5een
-ieë7aard
-ieë6lys
-ief7alar
-ie5fie
-ie4f3r
-ief7stal
-ief7uitg
-ie5gla
-ieg7loka
-ieg7riem
-ie6grit
-ieg5st
-iek7asyn
-ie5ke.
-ie6k5erv
-iek7esse
-ie5kie
-ie6klaa
-iek7laai
-ie4kni
-ie6k5ond
-iek7ople
-ie6kops
-iek7opse
-iek5opv
-ie4kre
-iek7revu
-iek7rigt
-iek7ware
-iek7wees
-ie4k5wi
-iek6wos
-iek7wyd.
-ie4laa
-iel6afo
-ie6lene
-iel7oor.
-iel6san
-iel6s5on
-ien7anal
-ien7glor
-ien6kro
-ien7olie
-ie4n5oo
-ien4s
-ien7sakk
-iens5or
-ien7sout
-ien7span
-iens5t
-ien7stam
-ien7stel
-ien8stele
-ien7stet
-ien7stoo
-ien5suu
-ie4n5ur
-ie6poog
-iep7oog.
-ie6proo
-iep7rooi
-ier7afma
-ie6rafs
-ier7engt
-ier7eter
-ier7neff
-ier7omtr
-ie4r5on
-ier6oni
-ier6ony
-ier7swee
-ies6amp
-ie5se.
-ie6senk
-ies7enke
-ies7ents
-ies7ferw
-ies7kaf.
-ie6skon
-ies7kop.
-ies7kraa
-ies6kry
-ies7laag
-ie6slep
-ies7lepe
-ies5li
-ies7luik
-ies7meub
-ies7mooi
-ie3so
-ies7oes.
-ies5ond
-ies7oorp
-ie6sopn
-ies7opne
-ies7pane
-ies5per
-ies7plig
-ie6s7taal
-ies6tas
-ies7tee.
-ie6steh
-ies7tele
-ies7tent
-ies6tin
-ies5uil
-ie4s3w
-iet7aans
-iet7aard
-iet7alba
-ie5te.
-iet7erts
-iet7omse
-iet7reke
-iet7reko
-iet4sl
-iet7uie.
-ie5twi
-ie4tys
-i1eu
-i4eub
-i4eud
-i4eug
-ieu7grie
-i4e3ui
-ieu7ing.
-i4eul
-i4eum
-ieu7skot
-i4euu
-i4euv
-i4euw
-ie5wie
-ie4w-
-ie5yst
-ie-7klik
-i3èr
-i1ê
-iël6sku
-iën6tji
-iënt7jie
-ië4s3t
-i4fei
-i4fim
-i4fin
-if1l
-i2f3r
-i4f3ui
-i4g5aan
-i4gap
-igare4
-igaret5
-ig5eff
-ige6naa
-ig5ete
-ig5ins
-ig1l
-ig5loe
-ig4op
-ig5opt
-ig5org
-igo7roos
-ig5res
-ig5roo
-i4g3ry
-ig3sa
-igs6ins
-igs7kaps
-ig7skend
-igs5ko
-ig5sku
-igs6mee
-igs6ona
-ig5soo
-igs7poei
-ig5sti
-ig7stoei
-igu7era.
-ihu6ahu
-i1i
-ike6roe
-iket5j
-ik5kli
-i2k3n
-iko6nat
-i1kr
-ik6sakt
-iks7akte
-iks7iden
-ik4sin
-iks7inve
-iks7juk.
-ik6skom
-iks7paar
-iks6pad
-iks7pare
-iks6tik
-iks6tuu
-iks6wel
-ik5wan
-i4k3we
-i4kwy
-2il
-i1la
-il5agt
-ila6too
-ilbe6st
-ild7agti
-ild7smaa
-ild6stj
-ild7temm
-ilet5a
-ile6tji
-ilet7jie
-ilf4l
-il5fli
-il5gha
-ilinde6
-illo4w
-3illu
-il4m5at
-ilm7oper
-i1lo
-ilo5sk
-ils7insp
-ils7orde
-il4spr
-ilt7aar.
-i1lu
-i2m
-i3ma
-im5agt
-i3me
-i4mek
-im5eks
-ime7laar
-iment6s
-ime4s
-imes5t
-i3mê
-i3mi
-5immigr
-i3mo
-i4m3o4p
-imo7theu
-5implik
-i3mu
-imu6maa
-in5aard
-i4naf
-i4n3ag
-in5akk
-in5arg
-in4d5aa
-in4das
-inder7as
-5indiv
-ind6oef
-in6doog
-ind7oogm
-in6d5oor
-ind7sleu
-ind5sw
-3indu
-in5dwi
-inee7tji
-ine5ra
-2inf
-ing7aars
-in5gan
-ing7eter
-ing6hpa
-in6gind
-in6ginf
-ing7infr
-ing7inst
-ing6leb
-ing6ope
-ing6opl
-ing5ou
-ing7pseu
-in4g5ru
-ing7saag
-ing7sap.
-ing7see.
-ing7sekr
-ing7seku
-ing7sfer
-ing7sin.
-ing7sinj
-ing7skal
-ing7skêr
-ing7skud
-ing7slep
-ing7slym
-ing7sofa
-ing7som.
-ing7somm
-ing6s7pil
-ings9telle
-ing7stin
-ing7suie
-ing7suil
-ing7swel
-ing7uil.
-i3ni
-ini6gaa
-in4ik
-in5inf
-5inisia
-ink7erts
-ink7laag
-ink7ler.
-ink7nerf
-ink5nu
-ink7ogie
-in4kol
-ink7olie
-5inkom
-ink7ring
-in6krol
-ink5st
-ink7wit.
-5innam
-5innemi
-innes6t
-inne7ste
-in5ong
-ino7skaa
-in5rag
-5inrig
-ins7epou
-in6s5ete
-5insets
-in4sg
-ins7kaps
-ins6kin
-in3sl
-ins7molt
-ins7moor
-ins6ond
-5inspek
-ins7prie
-ins4t
-5insti
-insti7t.
-ins6ton
-ins7twis
-int7appe
-int5ess
-inte6s5t
-int6he.
-int6uit
-int6wyf
-inu5e.
-5invlo
-i1o
-io3pr
-ior6ubr
-io1s
-ios4k
-io5skl
-ios4p
-ios4t
-io3tr
-i2p
-i3pa
-i4p3ag
-i3pe
-i3pi
-i3pl
-ip4lo
-i3po
-ipo4s5t
-i3pr
-ipre4
-ip4s.
-ips7kopi
-i3pu
-i4pui
-i3py
-i1r
-ir4ch
-irke4
-irkel5o
-irop4
-iro5pr
-iru4s
-i4rwa
-is3ag
-i5sagi
-i4s5aks
-i6sangs
-is3ar
-i4sarg
-is5asp
-i4sav
-is3c
-i4s3ei
-i4s3et
-ise5um
-i5sfeer
-ish7nie.
-i4s5int
-is5inv
-i2sj
-i4sj.
-is5jan
-is5joe
-i2s3k
-is4k.
-i4ska
-is6kaaf
-is5kan
-is4kê
-is5kui
-i2s3l
-is5laa
-i5slag
-is3m
-i5s4mit
-i2s3n
-is5oes
-is5ond
-is3or
-is3p
-is4p.
-is3t
-is4t.
-is4th
-isto7pho
-i5s4tyn
-i4s3ui
-i5suik
-isu6maa
-is3w
-i2t
-i3ta
-it3ag
-ita6tis
-it3b
-i3te
-ite7dwal
-ite7glas
-itek7te.
-ite6mas
-i5tenh
-it4er
-ite5ru
-i4t5ete
-i3tê
-i3ti
-it4in
-i4t5ins
-i3to
-ito5fa
-ito7plan
-ito7rowe
-it1r
-it3re
-it3ry
-it4sc
-it5ser
-its5ete
-its7jood
-it4s5oo
-its7perk
-its6tek
-its7tori
-its7uur.
-i3tu
-itu6saa
-it5win
-i3ty
-ity7sokk
-itz7laan
-i1u
-ium1
-iu4ma
-iu4me
-iu4mi
-iu5mie
-ium6uur
-iwel6s5k
-iwe7mos.
-iwes4
-iwe7spor
-iwe5st
-1ï
-ï2m
-ïn5akt
-ïn3o
-ïns4t
-ïn5und
-ïs5lam
-ïs3t
-1j
-3jaa
-jaar6s7kr
-3jac
-ja4cq
-3jag
-ja4ga
-jan7ghai
-jan7knap
-jap4l
-ja5pla
-3jare
-3jari
-ja4sm
-jas7pant
-jas6tas
-jaz4z
-jaz7zeri
-je4kn
-je4kr
-jek7rasi
-je5rop
-jes7nië.
-jes4t
-je4t3r
-jet6sjn
-jeu4g
-5jie5kn
-jie6nan
-jie6nol
-jien5s
-5jieon
-5jieop
-jie6ska
-jie7skap
-jies7kat
-jie6ski
-jie6skop
-jie6s5lo
-jie6slu
-jie6sol
-jie6son
-jie6spa
-jie6s5tr
-jie6sui
-jie7suik
-ji4eu
-jin7gope
-ji4rp
-job4s3
-joe7kwee
-joen6sk
-5joern
-3jong
-jos6afa
-jou7kuit
-juit6sp
-juk7riem
-3jun
-jun6kre
-2k.
-1ka
-k4aal
-k5aand
-kaan8s7te.
-k5aanw
-kaar7se.
-kaars7te
-5kaart
-kaar6ti
-kaar6t5j
-kade6la
-kade6sl
-4k3adv
-5kafee
-kaf6oef
-4kafr
-4k3afs
-2k1ag
-5kagem
-k4agg
-5kagge
-k4ago
-k4agr
-4kaks
-kal4k5a
-kal4k5l
-5kalko
-kal6koo
-kal4kw
-kal4s5p
-kal4st
-3kam
-kam6par
-kam6ple
-kams4
-3kana
-kaner5o
-3kank
-kan6ont
-kan6sko
-kan6ste
-kans7te.
-3kant
-kan4t5j
-kant7om.
-kan4t5r
-ka4pak
-5kapas
-kap7inte
-5kapit
-kap6lak
-kap7lat.
-kapo4
-ka5pri
-kap7seis
-kap6spr
-kap6stek
-5kapte
-3kar.
-5karak
-4k5arbe
-k5arm.
-ka5roo
-kar6oor
-kar4st
-k5arti
-kar5to
-3kas
-4kasg
-kas7laai
-kas6maa
-kas7traa
-ka5s6tro
-5kateg
-kat7etes
-kat6har
-kat6hu.
-ka4too
-kat7ryk.
-kats4
-kat5sw
-kat7uil.
-kay6aku
-2kb
-kbe6kwi
-kbout7ji
-2kd
-k3de
-1ke
-kede6lo
-kee2
-keel5a
-4keen
-keep6s5t
-keer6so
-keer6ste
-keë6laa
-keël7aar
-4keff
-kei6dro
-keids7pr
-4keik
-keis4
-kei5st
-4k3eks
-ke4l5ak
-ke6lane
-kel7anem
-kel7assi
-kel7eenh
-4k5elem
-ke6linb
-kel7inbr
-kel6mag
-ke4l5ou
-kels8onde
-kem6afa
-4k3emm
-ken6aar
-ken6dra
-ken7eel.
-4k3enj
-3kenm
-3kenn
-ke4nou
-ken7son.
-kep7laai
-kep7ler.
-ke4p5lo
-kep5sk
-ker7een.
-ke4rel
-ker7els.
-ker7flan
-3kerk
-ker6kal
-ker6kin
-ker6k5or
-ker6kow
-ker4kr
-ker7kris
-ker6kui
-kerk7uil
-kerk5wy
-ker6m7eng
-ker6naf
-ker6nei
-ker6nen
-ker4n5o
-ker7oes.
-ke4r5on
-ker6pru
-ker6set
-ker4sk
-ker7skil
-kers7kom
-ker6slo
-ker4sn
-ker4so
-ker7son.
-ker6s5pi
-kers5w
-4kerts
-6k5ervar
-kes6el.
-ke4sn
-ke6trol
-ket6ska
-5ketti
-ke4tu
-keu6ror
-3keus
-keut7jie
-key7kleu
-key7nooi
-kê4rb
-2k1f
-2k1g
-kga7laga
-kge5la
-2kh
-kha7yeli
-k4hoi
-khu7khun
-1ki
-ki2e
-kie6dro
-kie7laai
-kie6mas
-kiem7as.
-kie6sent
-kie4s5k
-kie7skry
-kies5l
-kie6slo
-kies7tan
-kie4ta
-kieu5s
-ki4kl
-ki4ma
-4kimm
-5kind.
-6k5indel
-kin5dr
-4kindu
-k3inh
-4kinl
-4k5inst
-kio4s
-kios7ke.
-kip7ling
-ki4rc
-3kis.
-kis7obli
-ki5s4po
-ki5s6tew
-kit4s
-kits5k
-2k1k
-kk4ag
-kka7smaa
-kka5str
-k3ke
-kke6nee
-kker5kr
-kk4li
-1k2l
-k5ladi
-4kland
-k5lang
-k4lank
-klas3
-klas6e.
-kla6sin
-k5leerd
-4kleg
-k5lege
-k4l4ei
-4klel
-4k3len
-3kle4p
-klep7as.
-k4ler
-5klere
-kle5us
-k3lê
-4klied
-k4lier
-4k3lig
-4k3lik
-5klikk
-kli6kop
-k4lim
-kli6moe
-k4lin
-5klink
-k5linn
-kli4p3
-k4lis
-kli7sjee
-4klog
-klo6kon
-k5loos.
-k4lou
-klub5h
-klu6bre
-4klug
-2k3ly
-2km
-kman7spo
-1k2n
-k4nap
-4knav
-5kneg.
-4knei
-4knem
-kne4t
-knet5j
-3kni
-kni6kla
-kni4p3
-knoe4
-knoe7te.
-4k3nom
-k5noot
-k4nop
-knor7os.
-1ko
-kob7rego
-3kod
-4k3oef
-3koek
-koe6kei
-koe4l5o
-koe5pl
-3koer
-koe4s3
-koe7sist
-3koë
-4koë.
-k4ofi
-4kogi
-kok7onth
-kok6skr
-ko5lag
-kol6for
-3koll
-3kolo
-3kolw
-3kom
-kom7aan.
-kom7bina
-4komg
-kom7ghad
-k5omhu
-kom7miss
-kom7saal
-kom4sp
-kon7atoo
-4k5ontl
-kon5tr
-4k5onts
-4k3oog
-ko4op
-5koord
-3koö
-ko4pag
-kop7ape.
-kope7la.
-kop7las.
-4koplo
-3kopm
-4kopn
-5kopno
-ko4po
-6kopper
-kop7uits
-kord7aan
-kor6doe
-kor6foo
-k3org
-koring7s
-k3ork
-ko3ro
-3korp
-kor4s5l
-kor7sten
-kor4t5a
-kor6tji
-kort7jie
-3kos
-kos7eetp
-kos7inko
-kos7juff
-ko4sk
-ko5ski
-kos5ko
-kos5pe
-kos5taa
-ko4t5ak
-5kotel
-kous7te.
-kou5tj
-kovi7ev.
-ko4vk
-ko4vs
-k5owerh
-2kp
-kpro6pa
-kp4si
-k2r
-k5raad
-3kra4g
-kra7gers
-krag5o
-k5rak.
-4krand
-5krank
-5kredi
-5kreet.
-k4reëe
-4k3reg
-4k3rek
-k3rel
-k5rese
-3kret
-4kri4f3
-4krig
-kri4k3
-kri6moo
-3krin
-kri4p
-krip7lee
-3kris
-4k3riv
-k5roet
-k5rolp
-5kroon
-kr4or
-4k3row
-4krub
-3krui
-4kruim
-kru6kas
-kruk6s.
-kru4l
-k5rusp
-kry6fin
-krygs5t
-4k3ryk
-kry7sket
-3kryt
-2k1s
-ks6aan.
-ks5agt
-ks4ak
-ks5chi
-k4s5een
-k4s5erv
-k4s5eti
-k3si
-k6singe
-ks5ins
-ks6jari
-k4skan
-ks5kin
-k4skon
-k4slê
-ks3li
-k5s6maak
-ks5moo
-k5smou
-k2s3n
-k5snob
-k4sob
-ks5obj
-k4s5ond
-ks5onl
-ks5opk
-k2sp
-k5spek
-k5spel
-ks5pen
-ks5per
-k5spes
-k3spi
-k4spir
-k5spra
-k5spri
-ks5pur
-k6s5taal
-ks5tant
-k6steken
-k6stemp
-ks5tens
-k6stera
-k6s5teri
-k6sterr
-kster6t7j
-ks5tet
-ks5tip
-k7strado
-k6s5trah
-k5s6trak
-ks5tur
-ks5tuu
-k3sty
-ks3ui
-k4s5ure
-ks3w
-k5swei
-ksyn4
-2kt
-kte6rad
-kte6ron
-kter6sp
-ktes4
-k4the
-k3ti
-k3to
-kto6rev
-k3tu
-kt4wi
-1ku
-kud7aksi
-3kuik
-4kuim
-kuin4
-kuins5t
-4kuit
-kul6der
-kul6plo
-kul6poo
-3kult
-3kun
-4k3uni
-kun6sin
-3kurs
-3kus
-ku6seen
-kus7lang
-kus7node
-kus7taak
-kut3r
-kut6slu
-kuus6te
-kuu7ste.
-2kv
-kvang6s
-1k2w
-4k5waar
-k3wae
-k4wan
-3k4war
-kwa7skaa
-k4week
-4kwees
-4kweg
-4k3wer
-kwê7lafl
-kwik3
-kwi6kwa
-3kwis
-2k3wo
-3k4wot
-k3wu
-ky4fa
-kyk7uit.
-k1ys
-2k-
-k-5kli
-2l.
-4laanb
-4laanh
-4laard
-laat7slo
-laat6str
-lad7onde
-la4du
-4ladv
-2laf
-la4fa
-l3afd
-2lag
-l4ag.
-la4ga
-la5ga.
-la5gas
-l4agi
-la5gie
-l4agl
-lag7lag.
-l4ago
-lag5ri
-lag7some
-lai6rgo
-lak7albu
-lak6led
-lak7okul
-lak7oore
-4l5aksi
-lak3w
-lak7ware
-lamb7da.
-la4m5oo
-lam6pli
-lam6pol
-lamp7oli
-lam6sko
-lam6sle
-lam6spe
-3land
-lan6daa
-land7aar
-lan6dad
-lan4d5r
-land6sta
-land6s7te
-lan6gaa
-lan7gnol
-lan4go
-lang7ste
-langs8te.
-lan6gur
-lan4k5a
-lan4k5l
-lan6kop
-lank7ope
-lan4k5r
-lan6kwi
-lan4s5k
-lan4sp
-lan4s5t
-lan6taa
-lan7taat
-lan4t5j
-lan6tre
-4lantw
-lap3r
-4l3art
-las7elek
-las6ie.
-la4sn
-la4so
-la5sol
-la4sp
-las5pa
-late5r6a
-5lawaa
-lba6spe
-lbe6kne
-lbo6wvi
-lb4re
-ld5amb
-ldan7ha.
-ld5apt
-l4d5een
-ld5eis
-lde6rat
-lder7os.
-ld5ins
-ld3of
-ld5oor
-ld6oor.
-ld5ord
-l4dow
-ld5owe
-l5draa
-l4d3re
-lds4k
-lds6maa
-ld3so
-lds6ond
-ld3sp
-l4d5uit
-1le
-lec5tr
-lee2
-lee4g3
-4leep3
-leer5a
-leer7eis
-5leerl
-leer5o
-leer5s
-lee4s
-lees7tra
-lee7tjie
-lee7vaar
-4l3eff
-leg7slot
-4leien
-lei7gleu
-lei6kaa
-lei6naa
-lei6not
-lei7skoo
-lei6spa
-leis7pan
-lei7spir
-leit5s
-lek7loti
-le4kn
-lek6suu
-3leli
-5lengt
-4lenj
-len6sel
-len6ste
-lens7te.
-len6tji
-lent7jie
-le5pel
-lep5li
-lep7oog.
-lep7ratw
-lep5sk
-lep6szy
-leps7zy.
-ler4a
-5leraa
-ler6kam
-lerk7amp
-lerk5sp
-4lerts
-le4see
-le4set
-les5ete
-les6hab
-les7insl
-le4ske
-les7kes.
-les7lie.
-les7onde
-le4s5oo
-le3st
-les7taak
-le4ste
-le5stel
-les6tin
-les5tra
-les4ty
-les7uur.
-les7wete
-l5etan
-le4tc
-let5em
-let7oorb
-let7rol.
-let6sko
-4leuf
-le3u4m
-leun5s
-leur7eg.
-leu4r5o
-leute4
-lew6ein
-6l5ewena
-4l5ewig
-3ley
-1lê
-lê4rw
-lf5aan
-lfa7stra
-lf3ei
-l4fek
-lf5eks
-l4fen
-l4f3ev
-lf4ie
-l4fin
-lf5ing
-lf3l
-l5flap
-lf5onde
-l5fone
-lf5onts
-lf3op
-l2f3r
-lf6skar
-lfs7karm
-lfs7kop.
-lfs7kuil
-lfs7nier
-lfs7oog.
-lfs7perk
-lft4w
-l4f3ui
-l4f3uu
-l1g
-lg4ha
-l4gli
-lgo7lagn
-lg6ordy
-lgs6mee
-1li
-liat6ji
-lia7tjie
-3lid
-lid7onts
-3lied
-lie6gli
-lie6kwy
-lie5la
-liers5w
-lie5sme
-lie7steg
-lie7stys
-lie7swak
-4l3i4eu
-lig7inte
-lig6las
-lig6ny.
-lig7omge
-lig7rekl
-lig7riet
-li4gro
-lig7skag
-lig7sona
-lig5s4p
-lig5s4w
-lig7ure.
-lik7aspa
-4likk
-5likkew
-li4kl
-lik7opsi
-lik6see
-lik6sju
-lik6soo
-li4k5wa
-lin6gid
-lin6gin
-lin6gli
-lin6goo
-ling7ooi
-4linh
-lin4k5l
-lin4kr
-l5inli
-4l3inr
-l5insp
-lin4t5j
-4linv
-li4pa
-li4p3l
-lip5la
-li5plo
-li6poml
-lip7omly
-li4p3r
-lips4
-lip7soom
-5lisen
-l5item
-liter6t7j
-lit3j
-litjie6
-lit3r
-lit7sha.
-lit4sp
-lit4s5t
-lit6zdo
-ljus4
-l1k
-l4kaf
-lka6tio
-lkat7ion
-lk5een
-lks7emos
-lks7epos
-lk6skap
-lk4sku
-lk4sl
-lk4son
-lks7ower
-lk5spe
-lk5spr
-lk6stel
-lks7tell
-lkter6t
-lktert7j
-lk5uil
-lk5wat
-lk5wit
-l4kwy
-lk5wyf
-2l1l
-l3la
-llat6ji
-lla7tjie
-llei5s
-lle7knop
-lle6rui
-lle6swe
-lleve7ë.
-llo5sk
-lls7moor
-l4maf
-lmo6kal
-lmo4no
-lm3sm
-l1n
-lne4s
-lob7eend
-loe6dal
-loe6det
-loe7dja.
-loe6don
-loe4d5r
-4loef
-loe6gos
-loeg7os.
-loers7te
-loe6skr
-loe4st
-lof7opri
-lof6spa
-4logig
-log4o
-lo5gop
-log7sot.
-log4st
-log7stok
-lo4k3l
-lok7onde
-lok7swin
-lo5kwi
-l5olie.
-lomer4
-lomert5
-loms4
-4lond
-lon6gaa
-long7aar
-lon6spa
-lon6ste
-lons7te.
-4lont
-lon4t5j
-3lood
-loofs5w
-l4oop
-5loopb
-l5oore
-5loosh
-loo7stra
-lop7emme
-4lopl
-lop6rys
-lo3ro
-lo5ryn
-5lose.
-lo4sj
-lo4sk
-los7laat
-los5ta
-los7trum
-los7wikk
-lo4tak
-lot7riet
-lot7ruïn
-lot7swan
-lot5ui
-loui7sa.
-lou3t
-lou6wna
-lou6wre
-lou6wtj
-lo4wr
-low5ry
-lox7era.
-lö4jd
-löj6don
-lp5aan
-lpe6nin
-lp4he
-l4pon
-lp5ond
-l1r
-2l1s
-l4s5aar
-l4sad
-ls5arm
-l4s5asp
-l4s5eko
-lse4l
-lse5le
-lse6mek
-ls5erva
-ls5fei
-lsg6haa
-lsi6g5aa
-ls5jas
-l4s5kin
-l4skon
-l6skorr
-l4skre
-l4skru
-l5s6maak
-l5s4mee
-l4snaa
-ls5opw
-ls6plet
-l5s4pli
-l4spu
-l3st
-ls4ti
-l6stoeg
-ls5waar
-ls5wet
-ls5wyn
-l4t3ag
-l4t5amp
-lta7spie
-lter6sk
-lt5oond
-l5t4wak
-lu4bh
-lu4bl
-lub5le
-lub7loka
-lu2g1
-lug6er.
-lu5gub
-3lui.
-4l5uie.
-lui7masi
-lui7slan
-4luit
-luk5raa
-luk7rake
-luk6s5pa
-l5unie.
-luns6a.
-lur6pag
-lus7moor
-lu3t4h
-lut6zpu
-luus6te
-luu7ste.
-lva7soor
-lve5ti
-lwe4r5a
-lwe6rui
-1ly
-lyce7um.
-ly4fe
-ly4fo
-lyk7aant
-lyk7lope
-lyk7lug.
-ly4kn
-ly4k3o
-lyk6ont
-lyk7rede
-lyk5sk
-ly4ma
-lym5ag
-lym7uint
-3lyn
-lyn6aaf
-ly3pl
-ly3sp
-lyt7ring
-1m
-2m.
-mac7dona
-made7us.
-mae4s
-m1af
-4mafd
-m4afo
-ma5fro
-4mafs
-mag6sta
-ma4hd
-mah5di
-mak6lot
-ma3kw
-ma5lag
-mal7thus
-mamat6j
-mama7tji
-man7djar
-man3g4
-man7gona
-man6n-p
-man7salm
-man7spen
-man6spr
-man6s7taa
-man6sto
-man7ure.
-map4l
-ma3ra
-mar6kek
-mar6kle
-mar6kom
-mar6kon
-mar4k5r
-mar6lpr
-mar4s5k
-mar4s5t
-mar6tro
-mary7na.
-mas6koo
-mas6kri
-mas6kui
-mas6tek
-ma5s4tr
-mat6hes
-mat7thys
-may7nard
-2mb
-mb4re
-2md
-mdo6poë
-mdop7oë.
-md5soo
-m3dw
-md4wa
-4meder
-mee7kole
-mee5kr
-5meel.
-mee5l4o
-mee5ne
-mee7reis
-mee7reke
-mee5sl
-mee7spre
-meest7al
-mee6tre
-me3ga
-megas4
-mega5st
-4megt
-mei6nee
-mel6aar
-mel7ekwa
-mel6kal
-mel6kjo
-mel6kla
-mel6kna
-mel4k5r
-melk5s
-mel4k5w
-mel7spul
-mel6too
-mem7phis
-men7angs
-men7eise
-men7opga
-men6sky
-men6snu
-men4s5p
-men6s5ta
-men6tin
-men4t5j
-men4t5r
-me5phi
-me4rak
-me6rass
-mer7asse
-mer5ast
-mer7dein
-me4rei
-me6reng
-mer7enge
-mer7esse
-mering8s9taa
-mer6kli
-mer6kna
-mer7kopn
-mer4kw
-mer7kwar
-mer5oes
-mer7onth
-mer7treë
-mes4a
-me4sal
-me4s5ka
-me6s7koor
-me6skor
-mes7kore
-me6skro
-mes7kroe
-me4sl
-me5slu
-mes7moss
-mes7port
-me6stas
-me4s5to
-mes7ware
-me4t5ee
-met7emps
-meter6so
-meu6las
-meul7as.
-2m1f
-mfloer6
-2m1g
-mgang4
-mgangs5
-mgeper6
-mges7per
-2mh
-mh4ei
-4mid.
-mid7osea
-4mids
-mids5t
-mie6kas
-mie6kwa
-mie6ret
-mie4r5y
-mie6skr
-mie6taa
-mie6tji
-miet7jie
-mig6re.
-migu7el.
-mih7rab.
-mil6taa
-min7gopl
-4m5insp
-6minstu
-mi4rl
-mi3sf
-mis7sêr.
-mis6tkr
-mis6tok
-mit7swa.
-mi4v-
-2m1k
-mkaar4
-mkom6st
-mkoms7te
-2m1l
-m3la
-2mm
-mma5sp
-mmas6to
-mma7stor
-mmat6ji
-mma7tjie
-mme7loor
-mme6res
-mme4r5o
-mmi7stok
-2m1n
-3mod
-mode4l
-mod6jad
-3moe
-moed4s
-moe6nes
-moe4st
-mof6lam
-mok7alba
-mole4s5
-m5olie.
-mol4m5a
-mon6dch
-mon6dop
-4m5onts
-3moon
-moor6da
-2mop
-m3opl
-4morg
-mo3ro
-mor6sju
-mor6spo
-mor4s5t
-mo5saa
-mos3f
-mos7fles
-mos7inen
-mo4ske
-mos7keë.
-mo5sta
-3mot
-mote7us.
-mot6heu
-motor5a
-mou5fl
-mou7slip
-mou6ste
-mous7te.
-mou6tek
-mo9ya.
-5môre.
-2mp
-m4pag
-mpa7gne.
-mp5agt
-mpe6lys
-mpen6to
-mp4her
-mp5ops
-mps7kraa
-mp5sli
-mps7taal
-2m1r
-2m1s
-ms5app
-m4s5kat
-m4skon
-ms7kraal
-m5slin
-m3s4me
-ms3op
-ms5pen
-m6s5taal
-ms4te
-m5steg
-m5steo
-m3sw
-2mt
-mter6t5j
-muc7klen
-mues7li.
-muf7smaa
-mui6les
-4muit
-3mul
-mum7aant
-muns4
-mun5st
-mun6tou
-mur4g
-mur7gie.
-3mus
-2mv
-mvi6tra
-2mw
-myl7afst
-myl6sla
-3myn
-myn7ent.
-myn7impa
-myn7inge
-m1ys
-2m-
-2n.
-1na
-3naal
-3n4aam
-4n3aan
-6n5aardi
-naar6skr
-n5admi
-4n3adv
-nae6lys
-nael7yst
-n1af
-n4afi
-naf6lad
-nag6aand
-na6gaap
-na4g5ap
-na6gemm
-nag7emme
-nag6las
-n4ago
-nag5ron
-nag3s
-4nagt
-n5agtig
-na4gu
-nai7set.
-na5kli
-nak6lip
-4nalf
-4nalt
-3nam
-na3p4l
-na3pr
-nap7roet
-4n3arb
-4narea
-na3s4k
-nas7klip
-na3s4l
-nas6maa
-na3sp
-nas6pel
-nas4pr
-na5s4ta
-nas6ten
-nas6tor
-na5s4tr
-na5stu
-nas6tuu
-nas4w
-na5swe
-na5t4ha
-nat6jie
-nat7onde
-3nav
-5nawee
-na9yl.
-2nb
-nba6chs
-4nche
-2nd
-nda7gesk
-nd5akt
-nd5app
-n4d5arb
-nd5art
-n4d5ass
-nda7stoe
-nde7eier
-n4d5een
-nd5eg.
-nd3ei
-nd5eksa
-ndel8s7kor
-ndel8s7taa
-nd5emm
-nde6rad
-nde6raf
-nder7af.
-nde6rar
-nde6rem
-nde6r7ent
-nde6r7ess
-nde6rim
-nder7in.
-n6deros
-nde7rosi
-nde7sill
-nde6zvo
-nd5ide
-ndi5go
-nd5ins
-nd3of
-n5dome
-nd5omt
-nd5ond
-nd5ont
-n4d5opb
-ndo5st
-nd5rak
-nd5rat
-n4d3re
-nd6resd
-nd5riff
-nd5riv
-nd5roe
-nd5rok
-nd5rot
-n6druim
-nds7ertj
-nds7geru
-nd6sinl
-nds7kenn
-nds7koor
-nds7kraa
-nd6s7laag
-nds6leg
-nd5s6maa
-nds6ons
-nds7oorn
-nd5sor
-nd6spre
-nd5spu
-nds7taal
-nd6stek
-nds7toet
-nds7troe
-nds6wee
-ndt6wis
-ndu4e
-n4d5uit
-ndu7kraa
-n4d3ys
-1ne
-nebe6st
-nec7ticu
-5neder
-nee2
-nee4l
-neel5a
-n4eem
-4n5eend
-4n5eenh
-neer5o
-neer5s
-nee6tew
-neeu3
-nee7uur.
-nee7woor
-4neff
-4neg.
-ne5gla
-n3eie
-4neil
-4neksp
-n5ekspe
-nel6lma
-ne6loon
-nel7oond
-nel6spo
-3nem
-nem6afi
-nen4sl
-nep7olie
-3ner.
-ner6faf
-nerf7af.
-ne4ros
-ner7psig
-ner6sle
-ner5sw
-ners6we
-nes7evan
-nes6tas
-ne4ste
-net7omge
-ne4tri
-ne5um.
-neu7moko
-neu7raal
-neu6sji
-neu6ska
-neu7stoo
-neu6toë
-neut7oë.
-ne4wt
-3nez
-1nê
-2n1f2
-n3fl
-nfy6tap
-2ng
-n4gad
-n4g3ak
-n4g5apt
-n4g5ase
-ng5ass
-n4g5een
-n4g3ei
-ng5eks
-nge6r7aap
-nge6r5al
-nger6d5r
-nge6ret
-nges7per
-ng5eten
-n6geter
-ng5imp
-n4g5ink
-n6ginst
-ng1l
-ng6lasu
-n4goë
-ng5oë.
-n4g3on
-n4g5oog
-n4gou
-ngp6seu
-n6g5raad
-ng5ran
-ng5rat
-n4g3ri
-ng7sade.
-ngs7agit
-ng7sappe
-ng4see
-ngs7eise
-ng4sek
-ng6serk
-ngs7erke
-ng6sero
-ng6serv
-ngs6fer
-ngs7impa
-ng4sin
-ngs5int
-ngs5kan
-ng7skat.
-ng7skoel
-ngs7koep
-ngs7kop.
-ng7skors
-ngs7kort
-ngs7kurw
-ngs7kuur
-ng6s5laa
-ng6slab
-ngs7labo
-ngs7ladi
-ngs6lep
-ng7s6loop
-ngs6lym
-ng4sn
-ng5sni
-ngs6oet
-ngs6ofa
-ngs6omm
-ngs7pelo
-ngs7pill
-ng5spoe
-ng7stabi
-ngs7tal.
-ng6steh
-ng6stei
-ngs7teik
-ngs7telg
-ng6stem
-ngs7tema
-ng7stemm
-ngs7temp
-ng6s5ten
-ngs7tese
-ngs6tin
-ng6stou
-ngs7tou.
-ngs7trap
-ngs7truu
-ngs6uie
-ngs7ure.
-ngs6wel
-ng5uit
-2nh
-1ni
-nie6kaa
-nie7knik
-nie6raa
-nier7aar
-niers5w
-nie6uin
-nig7aard
-ni4g5ee
-ni4g5ie
-niks7py.
-nik7warm
-4n3ind
-4ninf
-nin6g7ele
-nin6get
-4ninh
-4n3ins
-4n3int
-4ninv
-n5invo
-n2is
-nis7alma
-nis6ara
-ni5see
-nis5id
-nis7insp
-nis6oms
-ni4son
-ni3tr
-nit7sare
-nje7glas
-nje7krui
-njie6st
-2n1k
-nkaar4
-nk5aard
-n4k3af
-n4kak
-nk5aks
-nk5eff
-n4kei
-nk5eie
-nke6las
-nke6lit
-nke6ree
-nkers6w
-nker7swe
-n4k3li
-n2kn
-nk3na
-nk5nes
-nk5neu
-n4k3of
-n5kofi
-nk5psi
-nk5rig
-nk5rol
-n4k5roo
-nk5ros
-nk5rye
-nks6noe
-nk4s5om
-nk3sp
-nks4t
-nk3s4w
-nk5uit
-n2kw
-nk5wat
-n5kwen
-2n1l
-n3la
-nli4ga
-nlu4s
-n1n
-nna6spo
-nna7tjie
-nne6pol
-nne6sev
-nni4s
-1no
-4noef
-4noes
-noe4st
-no4g5al
-nog7eens
-nok5as
-no9ko.
-nok7riww
-3n4oma
-n4omm
-nomo7yi.
-no4n3a
-4n3ond
-4n3ont
-noo6dan
-n3oog
-noor6di
-4nopb
-no5pla
-nop6laa
-4noplo
-nop7omhu
-nop6rod
-4norg
-n5orga
-nor6kla
-3norm
-nor7tham
-nos6kaa
-no3sp
-3nota
-3note
-not4r
-no5tre
-2np
-n1r
-nroet6j
-nroe7tji
-2n1s
-n4s5aar
-ns3ag
-ns4an
-ns5angs
-ns4e.
-ns4el
-nse4pr
-nser6to
-nser6tr
-ns3f
-ns6feer
-ns5gel
-n3si
-ns4ia
-ns4ie
-ns4ig
-nsi6gar
-ns7inges
-nsi6tri
-ns4iu
-ns3ja
-n6skafe
-n5skap
-n4skar
-n4s5kel
-ns5kin
-n6skous
-n4s5kra
-n2sl
-n3sla
-ns5lam
-n6sland
-ns3le
-n4s3li
-n4s3lo
-ns6lotg
-ns6lott
-n3slu
-ns4mee
-n5snar
-n4sne
-n5snel
-ns5noo
-n5soek
-n4soë
-ns5oë.
-ns5ond
-nson4t5
-ns5onw
-ns3op
-ns5par
-ns5pas
-n4s5per
-ns7portr
-n4spot
-n6sprat
-ns6prek
-n6staak
-n4staf
-ns5teh
-ns6tel.
-ns6tels
-n5s6ter.
-ns6ters
-ns5trak
-n3s4tu
-n4s3tw
-nst6wyf
-ns5tyd
-ns3w
-ns6weer
-n4syw
-ns5ywe
-2nt
-nt5ags
-nt5ark
-n4t5art
-nta5tj
-n4t5eie
-nte6ram
-nte5sm
-nte6sti
-n5t4hon
-nti7kwaa
-nt5inv
-nt3ja
-n4tjo
-nto7fakt
-nt7oksie
-n4t5oli
-nto6nad
-nt5ond
-n4top
-nt5ops
-n4t5org
-nt7radin
-nt5raf
-n5tref
-ntre7kor
-nt5rim
-nt5roe
-nt5rom
-nt5ron
-nt5room
-n5troos
-n5trou
-nt5row
-nt5rui
-nt5ryk
-nt3sa
-nts7inge
-nt6skan
-nts7kand
-nt4s5le
-nt3s4m
-nts7onde
-nts5paa
-nt3st
-nt5uit
-ntu4m3
-n4t3ys
-1nu
-3nua
-nu4e.
-nu4es.
-2nui
-nuk4w
-nu5kwa
-nul7soms
-4nuni
-nu5skr
-nu6skra
-nus4t
-nu3tr
-4n3uur
-2nv
-nva6lis
-2nw
-ny4so
-nza6cs.
-o1a
-o4bag
-ob5agt
-o3bo
-ob5vor
-oby6nro
-ock7wyn.
-oda5gr
-od5een
-ode7leie
-ode7spaa
-od5lui
-od3op
-od3re
-ods7akke
-ods7kish
-od6slak
-ods7lake
-ods7lopi
-ods5oo
-ods6op.
-ods6org
-ods7paar
-ods7rogg
-ods6uit
-ods6waa
-ods6war
-ods6wyg
-odu4k
-oe4d5aa
-oe4d5ag
-oe4dei
-oed7eie.
-oed7ette
-oe6dind
-oed6ja.
-oed7onde
-oe4d5oo
-oe4d5op
-oe4d5or
-oe4d5ro
-oed7stry
-oe4du
-oed3w
-oed7wyn.
-oe4f5aa
-oe4f5an
-3oefe
-oe4fek
-oe4f5lo
-oe4f3o
-oef7rit.
-oeg7aand
-oeg7laer
-oeg7lam.
-oe4gog
-oeg3s
-oeg7yska
-oei1
-oeien6a
-oeis4
-oei7sker
-oe4kaa
-oek7eier
-oe6kerf
-oek7erf.
-oek7eval
-oe4k3l
-oek6lap
-oek7olie
-oek7oort
-oe4kr
-oek5rak
-oek5re
-oek5ro
-oek7sten
-oe4k3w
-oe4lei
-oe5leie
-oe6lemm
-oel7emme
-oel7eter
-oeling6
-oelings7
-oe6lins
-oel7inst
-oel7onbe
-oel7opri
-oel6ser
-oel6skr
-oel7slik
-oe4nei
-oen7eike
-oe6nert
-oen7ertj
-oen7esse
-oenk4
-oen5kl
-oen7knoo
-oen5kw
-oe4n3o
-oens5ko
-oen5sm
-oens4o
-oen7ysbe
-oep7aang
-oep7inst
-oe6pinv
-oe4pl
-oe5pla
-oep5li
-oe5plo
-oep6s5ee
-oep6s5in
-oep4sl
-oe4pu
-oeras5e
-oer3k
-oe4r5on
-oer5ou
-oer6ske
-oer7twak
-oe5ser
-oe5sie
-oe5sje
-oes7kraa
-oes7limt
-oe4s5lo
-oes7medi
-oes7pil.
-oe4s5po
-oes5ter
-oes7troe
-oe4swe
-oet7aanp
-oe4t5am
-oet6he.
-oe4t3j
-oe6t5oli
-oe4t5oo
-oe4t5ri
-oe4t5ru
-oets7kra
-oet6sna
-oet6spe
-oet6s5te
-oet6sti
-oet5wy
-oë5rug
-of3at
-of5een
-5offis
-o4f3in
-of3l
-o4fok
-of5oks
-o4f3om
-of5psa
-o2f3r
-of6sant
-ofs7iden
-of6sins
-ofs7insi
-of4s5le
-of4s5oo
-ofs7paar
-o4fui
-o1g
-og4d.
-oge4s5t
-ogge6lo
-oggel7oo
-ogi7faal
-3ogig
-og1l
-og4nat
-ogo7steo
-o4gry
-og5rye
-og4s.
-og4sg
-ogs6inf
-og5ska
-ogs7last
-ogs6ot.
-ogs4p
-ogs7pad.
-ogs7pris
-ogs6uip
-ogs6wan
-oi1
-oig6aff
-oi3k
-oile4
-ois4a
-oi5sag
-oi5ski
-ois6kuu
-oi5sky
-oi5sla
-ois4p
-ois4t
-ois7teïs
-ois6wer
-oi3tj
-oje4k
-ojek5l
-o4k5aas
-o4kag
-ok4am
-ok4an
-oke4t
-oket5j
-okie4
-o4k5ins
-ok5lat
-ok6leed
-ok3n
-oko7seil
-oko6sol
-o4kou
-o1kr
-o4k3ro
-ok4s.
-ok5sig
-ok6sins
-ok4sj
-oks7kraa
-oks6lip
-ok3sp
-ok3st
-oks6win
-o2k3w
-ok4win
-o1la
-ol5agt
-olf7ent.
-ol5fèg
-olf6lap
-olf6sku
-olf6sme
-ol4gl
-olg7onde
-ol4g5or
-olg7smee
-5olieb
-olies6m
-olie7sma
-5olifa
-oli7gny.
-olk6sem
-olk6sep
-olk6sow
-olk6sti
-o1lo
-olo5kw
-o4l5oor
-olo5sp
-olp6hta
-ol4sar
-ols7are.
-olt6zha
-o1lu
-olyf5o
-o2m
-o3ma
-om5agt
-oma7pleg
-o4m5arm
-omat6ji
-oma7tjie
-o3me
-ome4s
-ome5us
-omg6had
-o3mi
-omka5s4
-5omloop
-o3mo
-omos6fe
-omo7sfee
-omp7ligs
-omp7oor.
-om6pop.
-oms6aal
-om5sla
-oms6lag
-oms7perk
-5omstan
-oms6tin
-o4n3ag
-o5n4age
-o3n4an
-ona6skl
-ona7sten
-ond7aap.
-ond5agt
-ond7ampt
-ond7dwaa
-4ondes
-onde7us.
-on4did
-on4dom
-ond7rol.
-ond5sle
-ond5so
-ond5sp
-ond6spl
-ond7twis
-on5eff
-o4n3ei
-ong5aan
-on4g5os
-o3n4ik
-o4nil
-onin6gr
-onk7ert7j
-on4kj
-on5kno
-onk7omge
-onk7rugh
-onne5st
-o4n5oks
-ono7sfee
-on4s.
-onse4p5
-ons7iden
-ons7kepe
-ons7kori
-ons7pamp
-ons7self
-ons4t
-on5ste
-ons7tol.
-on6t5aar
-3ontd
-ont7elsi
-5ontgi
-ont5raa
-on4tri
-ont7rol.
-on4t5ru
-ont7slik
-3ontw
-o1ny
-ony7okol
-oo2
-oo5agt
-ood3a
-oo5deb
-ood5ee
-oo5dek
-ood5er
-ood5et
-ood5ok
-ood7onge
-ood3r
-ood6san
-ood7smoo
-ood7sorg
-ood7spui
-ood7suit
-ood7swaa
-ood7swar
-ood5ui
-oof1
-oof6ser
-oof6sid
-oog3
-oog6enh
-oog6les
-5oogpu
-oog7sinf
-oog7suip
-oog6-lo
-ooi6spa
-ook3
-oo4ka
-ook6sst
-ool1
-ool6and
-ool7snaa
-oom1
-oo4ma
-oo4me
-oo4mo
-oon1
-oon6ag.
-oong4
-oons6ko
-oon5sl
-oop1
-oo4pa
-oo4pe
-oop7klik
-o4opn
-oo4po
-oop6swe
-oor1
-oor6daa
-oor7daad
-oor6dap
-oor7darm
-oor6dca
-oor6d5om
-oor7doop
-oor7frek
-oor3i
-oor7klik
-5oorlog
-oor6ot.
-4oort.
-oor6taa
-oor6t5in
-oort7ja.
-oor6tyl
-oort7yl.
-oorve7ë.
-oos3a
-oos3k
-oo4so
-oos7pers
-oot1
-oo4ta
-oot6aai
-oot6en.
-oo4ti
-oo4to
-oo4t3r
-oo4tu
-oo3v
-oö5spo
-o2p
-o3pa
-o4paf
-op5agt
-opa6les
-o4p3am
-5opdrag
-o3pe
-op5een
-op9eg.
-5openi
-op4er
-oper7aar
-ope7rage
-op6horu
-o3pi
-opie6le
-opk6lik
-op3l
-op4lan
-op6lein
-3oplo
-1opn
-4opno
-o3po
-opo7fagi
-op5off
-op5ont
-opo7sfee
-5opperv
-op3r
-o5p4rot
-o4pru
-op6skre
-ops6maa
-ops7neus
-op5son
-ops5or
-op3st
-op3sw
-ops7wels
-o3pu
-o1ra
-or5afd
-or5agt
-ora6lee
-ora6loo
-orat6ji
-ora7tjie
-ord7akti
-ord6arm
-ord7eksa
-ord7ierl
-ord7inst
-ord5oes
-or4d5oo
-ord6oop
-or6dord
-ord7orde
-or4d5ri
-ord7roma
-ore7ster
-o3rê
-orf7oond
-4org.
-or3gh
-or4glo
-4orgp
-org7ring
-3orië
-orings8ku
-or5kaa
-orkes5
-ork7lag.
-ork6lik
-ork7ney.
-orkom6s
-orkoms7t
-or6maan
-or4mj
-or4nj
-or5ond
-or5ong
-o5rot.
-oro7thy.
-or3p4h
-orp6ski
-orp4sn
-ors7aar.
-ors5ag
-ors7jurk
-ors5mo
-ors7pot.
-ors7teri
-ors7tery
-or4sti
-ors7trek
-ort7aan.
-ort5aar
-ort5akt
-or4tar
-ort6ham
-5ortod
-ort7onde
-ort7rol.
-ort7ruk.
-ort5sw
-or1u
-o3r4us
-o3ry.
-ory4s
-os3ag
-osa7phat
-os5api
-osas4
-osa7tjie
-os5cen
-o3se
-ose7phin
-ose7phus
-o3si
-osi6nen
-o4sjo
-os1k
-o4s3ka
-os5kee
-os5kis
-os5koe
-os5kop.
-os5kor
-os5kou
-os5kow
-os3kr
-o5skri
-o4sku
-o2s3l
-os3m
-o2s3n
-os5oli
-os5oor
-o4sor
-os5ord
-os3p
-os4pe
-os5ste
-os3t
-os4t.
-os4ta
-os5taf
-os5tak
-os5tal
-os5tar
-os4td
-os4th
-ost7impe
-os4tm
-o5strat
-os6trev
-ost7revo
-ost6roo
-os4tw
-os4t-
-os3w
-os-7lond
-o2t
-o3ta
-ot5akk
-otas4
-ota5st
-ota7tjie
-o3te
-oteek5
-ote4s5a
-ote6sno
-ote6spr
-ote4s5t
-o4the
-oth7nage
-o3ti
-ot3j
-o3to
-ot5opm
-oto6ran
-oto6ren
-otor5o
-otos4
-oto5sk
-ot3re
-o3tro
-ot5ryk
-ots7eila
-ots7karr
-ot4s5ko
-ot4sl
-ots5la
-ot4s5po
-ots7rûe.
-ots7tee.
-ot6stek
-ots7toet
-ot4stu
-otte6l5o
-o3tu
-o4tui
-otu6set
-oua6che
-oud7agti
-ou6dakt
-oud7akti
-oud6ief
-oud6ini
-oud6ink
-oud7oorg
-oud7styd
-ou4du
-oud7uitg
-oue6rio
-ou3g
-ou4gh
-ou4gl
-oug4r
-ou1i
-ou5ill
-ouis6a.
-ou1k
-oul7ontl
-ou3m
-ou5nyw
-ou5rei
-ous6kak
-ous6ken
-ou5ski
-ous6lip
-ous6ouw
-ou3s4p
-ous7pan.
-ou3s4t
-ous7tert
-ou7stiek
-ous7ties
-out7aar.
-out7aksy
-ou4t5as
-out7ekst
-out7emme
-5outoma
-out7omhe
-ou4t5oo
-out3r
-out6rap
-out6rei
-ou4wb
-ouw7rens
-ou4wv
-ou4-o
-ove5re
-over6y.
-ovie6v.
-ov5ket
-owe6nal
-owen7al.
-owe6ral
-ower7al.
-ower7kon
-oy4a.
-oy4eu
-ô1
-ô2i
-ôi3e
-ôre5st
-1ö
-öjd7onde
-ö1l
-1p
-2p.
-5paaie.
-4paanv
-paar7dui
-3pad.
-pa4da
-pad6ie.
-pa4d3r
-pad6-eg
-p1af
-pag6ne.
-3pak
-pa4ke
-pak5es
-paki3
-pakket5
-pa4ko
-pak5os
-4p5akti
-3pale
-pal7esse
-pal5fr
-pal6mol
-pa4nop
-pan5sp
-pan4t5j
-3pap
-pa5pri
-pap7ryp.
-paps4
-pap7saf.
-pap7smee
-3pa3ra
-pa6ramn
-par7amne
-3park
-par6kar
-par4ko
-park5r
-4parm
-par4sk
-par6ste
-pars7te.
-5party
-pa5sja
-pa4so
-p5aspi
-3pass
-5paste
-pas7til.
-pa4taa
-pat7are.
-4patel
-pat4j
-pa5tji
-3patr
-pats4
-pat5sj
-pav7lov.
-2pb
-pbe6koo
-pbreng6
-2pd
-p3dw
-pd4wa
-pd4wi
-3pe.
-pe4ak
-pe4ar
-3ped
-pede4r
-pe5dof
-pee2
-peel5a
-peel5u
-4peen
-peet3
-3pei
-4peie
-p5eien
-4p3eis
-pek7nek.
-pe4k3r
-pel7aktr
-pe4l5oe
-pel7oond
-pels7kra
-pel6tak
-pel7yste
-4pemm
-pe6nars
-3penn
-pen7opsl
-pen6slu
-pen7smed
-pen6sop
-4pepi
-3pera
-pe6raap
-per7aap.
-per7admi
-per6ary
-per7asid
-pera5s6t
-5perd.
-per6dag
-per6dry
-per6dwy
-per7enke
-per5est
-3peri
-pe4rok
-3pers
-pers5ag
-per6set
-per6sje
-pers7med
-5perso
-per6s7ond
-pers8tel.
-5pertj
-per6top
-per7tsja
-per7uran
-3pes.
-4pesi
-pe4sl
-pe4s5te
-peu6rel
-2p1f
-p3fl
-pf4li
-2p1g
-pges4
-pge5sp
-pg4ly
-2ph
-phe6ars
-p2hi
-phi5s4t
-p3hit
-piek5n
-pie6raf
-pie6rom
-pie4ru
-pie7samp
-pie6ska
-pik7erts
-pik3s4
-6p5inges
-ping6la
-pin7glas
-pin5kl
-4pinst
-pipe4
-pipet5
-pi3s4k
-pit3j
-pit4s5k
-pit4st
-pits5te
-pits7tek
-pit6suu
-pit6zko
-2pj
-2p1k
-pkom4s5
-p2l
-pla6kal
-pla6kok
-5plan.
-5p4lant
-4p3lap
-3p4las
-3p4lat
-pla4t5r
-plee4
-pleet5
-p5leie
-ple4k
-5pleks
-4p3lep
-pleu7ra.
-p3lê
-pli4g
-pli4t5e
-4plits
-p5loos
-p5lose
-plu6ska
-4plyn
-2pm
-2p1n
-p4neum
-poe6doe
-3poei
-poe4s5t
-poe6tol
-po4fa
-pog7rest
-pog5sk
-pok5aa
-pok7olie
-3pol
-3pom
-4pomh
-3pone
-pon7opbr
-pon4s5k
-pons7te.
-4pont
-5pont.
-p5onts
-4poor.
-5poort.
-3poot
-poo6tel
-po4pag
-4popd
-pop6lek
-4pops
-p5ordo
-po3ro
-por6tak
-6portso
-por6t5ui
-3pos
-po4sk
-pos6tim
-pos6tko
-pos6tna
-po4t5as
-3pote
-pou6ste
-2pp
-ppe6las
-ppel7as.
-ppe6rad
-ppe4ro
-ppie6sl
-ppoor6t
-ppoort7j
-p2r
-p4raa
-4praak
-p5raam
-5praat
-pra6esi
-5prakt
-3pren
-3pres
-pre4s5t
-4preu
-3p4ria
-p3rib
-p4rie4
-prie7ël.
-5pries5
-priet5j
-5prins
-3prio
-3prob
-3prod
-pr4oe
-3prof
-3p4rog
-3proj
-4p5rok.
-3p4rop
-pro6pop
-pro5pr
-pr4or
-3pros
-pro5sa
-pro7sopa
-pru4t
-3pry
-pry4st
-2p1s
-p4sad
-p4s5aks
-p4sakt
-5psalm.
-p4sas
-ps5asp
-p4sat
-p4sid
-5p4sigi
-5psigo
-p4s5ing
-p4s5int
-ps3j
-p5skaa
-p4s5ket
-ps5kof
-p4skon
-ps5loj
-ps3m
-ps4my
-p4son
-p5son.
-p4s3oo
-p4sor
-ps7portr
-p6stera
-ps4ti
-p6stoet
-p4ston
-p5swar
-ps5wer
-2pt
-ptos4
-3pub
-pue4b
-4puit
-3pun
-pun4t5j
-pus7tipo
-put7adde
-put7emme
-put5ji
-put7rioo
-2pv
-2pw
-3pyn
-3pyp
-pyp7aard
-pyp3l
-pyp7las.
-pyp3o
-py4pr
-pys3k
-4p5yste
-py5tha
-pyt6hon
-2p-
-1q
-qu2
-qua7driv
-que6str
-qui7nas.
-2r.
-raa6min
-4raan
-r6aans.
-4r5aard
-4rabs
-rac5te
-5radio
-4r3adv
-4rafd
-ra4fek
-4rafh
-ra4foe
-4raft
-ra4fu
-raf7urn.
-4rafv
-4rafw
-2rag
-rag6aal
-5rageb
-ra5gie
-ra6ginl
-rag7inli
-r4agr
-rag7raad
-rag7ryer
-rag6sab
-rag6sak
-rag6sin
-rag7soep
-ragu5e
-rag6wan
-rai7gne.
-rak6les
-rak7oper
-rak7wate
-4ralb
-ral7eer.
-ral7oor.
-4ralt
-ram7argi
-4r5ameu
-ram6pla
-r4anda
-ran6daa
-ran7dafe
-ran6d7akk
-ran6dem
-ran6dev
-ran6doe
-ran4dr
-ran4g5o
-rank5l
-ran4k5r
-ran6saa
-ran6seu
-ran6sjo
-ran6sko
-ran6sor
-ran4s5p
-ran4s5t
-ran6tad
-ran6tet
-ran4t5j
-ran4tr
-4r3any
-rapa7da.
-ra6pas.
-ra5pes
-rap7ewen
-rap6loï
-ra4pon
-rap7onge
-rap7para
-rap7rem.
-rap7righ
-r4ari
-4rarm
-4rarr
-4rart
-r5asia
-ras6tan
-ra5s4to
-ra5s4tr
-ra4su
-ras5ui
-ra5t4ho
-4r5atom
-rats5o
-rbo6lol
-rd5agti
-r4d5ame
-rd5eil
-r6delek
-rd5esel
-rde5sm
-rd5euro
-r3do
-r4d5oli
-r4d5ont
-r4d5oon
-rdô6nne
-rd7raais
-r6droma
-rds6lip
-rd3so
-rd3sp
-rdt6ree
-rdu6sol
-rd4wa
-r5dwar
-r4dwu
-r4d5yst
-1re
-3r2e.
-3reak
-reed5a
-ree4k
-reek5e
-ree7kier
-ree7loon
-4r5eend
-4r5eenh
-4reenv
-ree6pes
-ree6ple
-ree6pro
-4reers
-ree7sala
-ree7stra
-3reë
-4reë.
-4reff
-3reg.
-reg7ruk.
-reg6sen
-reg6skw
-regs7om.
-reg7spre
-4reie
-4reil
-rei6nar
-4reind
-rei6noo
-rei6ser
-rei6sou
-reit7ze.
-re4kn
-rek7naar
-rek5ne
-rek4r
-rek7spoe
-4rekst
-re4kwa
-rel4d
-rel7dae.
-rel7diag
-rel7dopp
-reld7ran
-rel7duik
-rel7oest
-ren6agt
-r4end
-5rend.
-r5enig
-ren7shaw
-ren4so
-ren4sp
-rens7te.
-ren6sto
-ren6str
-ren6tak
-ren6tcl
-ren4t5j
-ren4t5r
-4rerg
-4r3er4t
-rert5j
-4resel
-re4s5ka
-res7lap.
-res5lo
-re3s4m
-res7ore.
-re4spi
-re4ste
-re5stel
-re4sti
-res7toet
-res7toma
-res7ure.
-ret5art
-reu6kin
-reu4kl
-reu4k5o
-re5usg
-r4ewa
-rey5no
-rê4rh
-r4faa
-rf5laa
-rf5lat
-r3fle
-r5f4lie
-r5flui
-rf5opv
-r4fre
-rf5reg
-rf4sl
-r1g
-r4gak
-rg5akt
-rgek6li
-rge7klik
-rg5eng
-rgeper6
-rge6rid
-rg4hu
-rg5hut
-rg4len
-rg4let
-rg5loo
-r4g3lu
-rg4ly
-rgo6wri
-rgrie4
-rg5ros
-rg3s
-rg4s.
-rgs4p
-rguit6j
-rgui7tji
-1r2i
-3rib.
-rib7file
-rie6dio
-rie6dop
-rieket5
-rie6klo
-rie5me
-rie6pri
-ries6e.
-rie6skr
-rie6taa
-ri4fa
-rif6ree
-rig6ska
-rig7smee
-rig7styf
-ri4kl
-rik6sid
-rik5sj
-rik7spad
-ri4kw
-rim4s
-4r3inf
-rin6gaa
-rin7gaan
-ring7aar
-6r7ingest
-rin7gleb
-rin4g5r
-rin6gui
-4r3inh
-rin6kar
-4r5inko
-rink5w
-rin6kwa
-4r3inl
-4r3inr
-4rins
-r5inst
-rin7the.
-r3inv
-4rinve
-rio7rye.
-rip4s5t
-ri5s4ko
-ris4o
-ri5son
-ris5op
-ris6per
-rit5ji
-rit7oond
-rit6rea
-ri5tro
-rit6zri
-5rivie
-rix7tont
-2r1k
-r4kaan
-rk5een
-rk5eik
-rke6lap
-rke4s3
-rke7sel.
-r6kink.
-rk5inl
-rk5leie
-r4klid
-r5klip
-r4k5los
-rk5nei
-rk5omg
-rkom6sti
-r4k5opd
-r4k5ops
-rk5rand
-rk5red
-rk5rib
-rk5rok
-rks6maa
-rk5spo
-rks6uid
-rk5twi
-rk5uit
-r4k5ure
-rk5wag
-r4k5wat
-rk5wee
-r4k5wet
-rk5wil
-rk5win
-r4kwy
-r1l
-r3la
-rli4g
-rlo6gja
-rloo7ple
-rlo6wpa
-2rm
-r6maanh
-rma5gô
-rma6gun
-rma7klot
-rma7plaa
-rma7raan
-rme6raa
-rmer7aar
-rme5sa
-rmi4l
-rmos4
-rmo7stro
-rm5uit
-rmy6nim
-2r1n
-r5nagte
-rna6spl
-r4n5ele
-rne4s
-rne4t5a
-rne6tom
-rn5oor
-rn6stig
-rns6tin
-r3nu
-roduk5
-roe6fas
-roef7as.
-roe4f5l
-roe6fri
-roe4ga
-roe7glas
-roe4n5a
-roe4pa
-roep5l
-roe4p5o
-roe4s5k
-roe6sla
-roes7lag
-roe4s5t
-roes5w
-roe6taa
-4roew
-rog7akke
-4rogg
-rog6lis
-ro5gna
-ro4kn
-rok4r
-rok7slip
-rok4s5p
-ro5kyn
-ro4l5aa
-rol7gord
-r6olien
-rol7mops
-romp7op.
-4roms
-ron7aar.
-ron6dag
-ron6dak
-ron6d7er6t7
-ron6d5et
-ron4d5o
-rond6o.
-ron4d5r
-ronds4
-rond5sw
-ron4du
-ron6gaa
-ron6kaa
-ronker6
-ron6kert
-ron4k5l
-ron6kow
-ron4kr
-ronk7wa.
-ron6ske
-ron6ste
-rons7te.
-ron7stel
-ron6s5ti
-r5ontp
-ron4t5r
-ron6tui
-4rontw
-roo7dewa
-roo7dist
-3roof
-4roog
-roo7gron
-roo7mens
-roo7nag.
-4roond
-roop6la
-4r3oor
-roo7taai
-r4opa
-rop7aans
-rop7anys
-ro5pee
-rop6een
-4r5open
-r4opi
-r4opo
-r1or
-r4ora
-ro3ro
-ros6afr
-4r5osea
-ros7kie.
-ro3s4p
-ro5sta
-ros6til
-rot6hsc
-ro5ton
-ro3tr
-rot4sa
-4roud
-rou7floe
-rou5sk
-rou3t
-rovi7ch.
-rov7nik.
-ro4w-
-rox9y.
-r2ö
-rpe4s3
-r4pid
-rp5ide
-r4p5lik
-rp5opd
-r4p5reg
-rps7idio
-rp4sl
-rps5no
-rp6spri
-rp4stu
-2r1r2
-rre7glob
-rre7nagt
-rre4st
-rre7stau
-rres5tr
-rri6gin
-rron7kaa
-2rs
-r4sakt
-rs5alm
-r4s3ar
-r5scha
-rs5eila
-rseuns6
-rs3f
-r5s6feer
-rs4ie
-rsi7flag
-r6sinda
-rs5inko
-r6sinsp
-r6sinst
-r5sjam
-r6skaki
-r5skap
-r6skapa
-r6skapi
-r6skeus
-r4s5kin
-rs6kink
-r6skoet
-rs6komm
-rs6koni
-r4skor
-r5skors
-r5skou
-rs5krib
-r6skroo
-r4skur
-r4slê
-rs5lis
-r4s5los
-rs5lyf
-rs6maad
-rs6maai
-r5s6maak
-r6smaat
-rs6magt
-rs6mak.
-r6smake
-rs6mara
-rs6mede
-rs4mee
-r5smeer
-rs4mel
-rsnee5m
-r5snoo
-r4snot
-r4s3og
-rsonde6
-rsonder7
-rs5ong
-rs5oog
-r6soors
-rs3op
-rs4op.
-rs5ord
-r1sp
-r6spaar
-r4s5par
-r6spien
-r5spri
-r1st
-r6s5tal.
-r4stb
-r6stegn
-rs6terp
-r5s6ters
-rs6tigl
-rs4tik
-rs4tis
-r4s5tit
-r4stj
-r6s5toet
-r6streg
-r3sty
-rs3un
-rsu4s
-rs5wa.
-rs5wap
-rs3we
-rs6werf
-rs5wyk
-2rt
-rt5afd
-rt7angel
-rt5art
-r6teend
-rte6loe
-rtie4s
-rting4
-rti7saan
-r4t3om
-rt5ont
-rt5opr
-rt5org
-r6treda
-rt5reis
-rt5ren
-r4t5rie
-r6trol.
-r4t3ry
-rt6s5aar
-rts5ond
-rts6pyn
-rt5uits
-rt4wis
-rt4wyf
-3rub
-ru4ga
-rug6-sk
-rui6lek
-rui6moe
-5ruimte
-rui6niv
-4ruit5s
-ru2k3
-ru5kaa
-ruk6lip
-ruk6opp
-ruk6-en
-rul5aa
-rul7ape.
-rul7yste
-r2um
-rum7grok
-4runi
-rup7lys.
-ru5spi
-rus6tak
-rus6tka
-rus6tma
-rus6tvo
-rus7uur.
-rut7oond
-2ruu
-ruus6te
-ruu7ste.
-rweg5a
-rwe6gei
-rwe6skr
-rwi7sje.
-rwoes5
-rwy6sak
-rwy6see
-ry4fa
-ryf7ink.
-ry4fo
-ryf7ode.
-ryf6sch
-ryf6sin
-ryf6ska
-ryg7stek
-ryg6str
-ry6kinr
-ryk3l
-ry5klu
-3rym.
-ryn4s5l
-ryp7arm.
-ry5ple
-ryp7lus.
-ryp7nagt
-ry4s3a
-rys6alf
-ry6sinl
-rys5pi
-rys5po
-ry3st
-rys4ti
-ry4su
-ry4ta
-ry5tra
-s2
-2s.
-s'9ie.
-1sa
-3sa.
-s4aad
-saa6dui
-3saak
-3saal
-4s3aan
-4s3aap
-4s5aard
-4s3aas
-4s3adm
-s5adre
-4s3adv
-2s3af
-2sag
-3s4ag.
-sa4gal
-s3age
-s4agi
-s4ag4n
-sa5gne
-3s4ago
-sag6opa
-5sagte.
-5s6agtew
-3sak.
-s5akad
-3sake
-3sakk
-sa6k5rok
-sa6krus
-saks4
-s3akt
-4s5akti
-sa6lamm
-sal7ammo
-4salb
-s5albu
-3salf
-sal6fol
-4s3alg
-4salm
-sal6mei
-sal6tro
-3sam
-4samba
-same4n
-4s3amp
-sam6swy
-4sana
-s5anal
-san6d5ag
-san6dak
-sand7akk
-san6dru
-3sang
-san4g5a
-san6gre
-sang7ste
-4s5anke
-sap6hat
-s5appa
-s5appel
-sa3pr
-4s3arb
-4sarea
-sar7olie
-4s3art
-4sase
-s5asem
-4s5aspe
-sa5spr
-sat6jie
-4s3atl
-4s5atta
-sav7lon.
-2sb
-s3ba
-s3be
-s3bi
-s3bl
-s3bo
-s3br
-s3bu
-s3by
-s3ca
-s3ci
-2sd
-s3da
-s3de
-s3di
-s3do
-s3dr
-s3du
-s3dw
-sd4wa
-s3dy
-1se
-3se.
-s5eed.
-see3f
-see3k
-s5eenhe
-see6plo
-see5ram
-seer7as.
-see5rei
-see7roet
-see3s4
-see7soog
-see5sw
-seë7kran
-s5egpa
-4segt
-4s3eie
-4seik
-s5eik.
-4seila
-sei6nan
-4seind
-4seis.
-sek6huk
-4seksa
-s5eksam
-sek4s5k
-sek4s5p
-sek4st
-3sel
-sel5aan
-sel7anal
-se4l5el
-sel4f5a
-sel7fabr
-sel6fer
-self5i
-sel6fid
-6seliks
-sel5of
-sel7oor.
-sel5op
-sels7kak
-sel6slo
-sel7spen
-sel6s7taa
-se4m5ag
-4s5emal
-sem7ekst
-sen6dan
-sen7ghor
-sen7sord
-sen6str
-sep6hus
-ser7afse
-4serf
-s5erf.
-ser6s5in
-ser6skr
-ser6sta
-sers7taa
-ser7stad
-sers7tal
-ser6tuu
-s5ervar
-ses6aan
-4se4s5ka
-ses7lett
-se4s5po
-se4st
-se4s5ur
-ses7uur.
-se4sw
-ses7weke
-s4et.
-sewes6t
-sewe7ste
-sey7stof
-1sê
-2s1f2
-s3fa
-s3fi
-s3fl
-s3fo
-s3fr
-s3fu
-2s1g
-s3ga
-sga4s5e
-s3ge
-sges7per
-s3gi
-s3gl
-sg4ly
-s3go
-s3gr
-s3gu
-2sh
-s3ha
-s4ha.
-sha7ron.
-s3he
-s3hi
-s3ho
-sho7shol
-s3hu
-1si
-4s5idea
-s5idee.
-4s5ideo
-3sie
-sie7kwos
-sies6li
-sies7mee
-si5fle
-sif6reu
-4si3go
-si4gro
-4simpl
-3sin.
-si5nag
-s5indek
-5sindr
-4sindu
-sin7enti
-sin7este
-4s3inf
-s4ing
-sin6gaa
-sing7aan
-6singes
-sin7gle.
-sin6gre
-s5ingry
-4s3inh
-sin6kch
-sin4kl
-4sinko
-s5inlig
-4s3inm
-4s3inr
-sin6see
-sin6sin
-6sinslu
-sin5sn
-4sinv
-sip6ho.
-s4ist
-sit6are
-4s5item
-si3tr
-si4tre
-sit7riem
-sit6sik
-sit5sl
-3situ
-siu6mur
-1sj
-2sja
-sje6ans
-5sjoko
-4sjuf
-1sk2
-2sk.
-5skaaf
-skaar6s
-6skaart
-s5kafe
-3skak
-6skakeb
-s5kakt
-4s5kalf
-4skam
-4skant
-3skap
-ska6pin
-ska6pon
-skap5r
-4skar.
-4skara
-4skas
-s5kata
-ska6tel
-ska6tit
-5skawe
-3skem
-4skenn
-3s4kep
-ske6pla
-ske4p5r
-4skerk
-4s5kern
-ske7smee
-5skets
-4skett
-s5kiem
-ski7klub
-s4kil
-4s5kilj
-ski6lol
-s4kip
-5skip.
-4skis.
-2s3kl
-2s3kn
-4skod
-4s5koeë
-5s4koen
-4skoer
-sko6kaa
-sko4ko
-4skoll
-4skolo
-4skolw
-4skomb
-4skomi
-4skomp
-s3kon
-s4kone
-4skonf
-4skong
-4skons
-4skont
-6skoord
-s4koot
-4skoö
-4skos
-sko6see
-5skott
-4skow
-6skraan
-4skrag
-4skran
-sk4re
-6skreet
-s5kres
-5skrif
-4skrin
-5s4krip
-4skris
-4skrui
-3s4kry
-4s5kryt
-sku6dak
-4skuik
-s5kuip
-5skuld
-4skult
-4skun
-5skurf
-4skus
-sku6tar
-2s3kw
-sky7drin
-s4kyf
-s4kyw
-1sl
-s4laa
-4s3lad
-s4la4g
-4slam
-4s5land
-s4lang
-s5lant
-4s3las
-4s3lat
-s4law
-4s3led
-5sleep
-4s5leer
-4s3leë
-s4leë.
-4s3lei
-4s3lek
-4slel
-4sleng
-sle6tji
-slet7jie
-s4leu
-4s5leue
-s5leus
-5sleut
-4s3lew
-4sley
-s3lê
-2sli
-slib3
-5slier
-s3li4g
-5slinge
-slo6bee
-s4lof
-4sloj
-4slok
-4s5loon
-4s5loos
-4slop
-slo4t5a
-s5loter
-s4low
-sl4öj
-4s3lug
-4slui.
-4s5luia
-s5luih
-5sluit
-4s3lus
-4s3lye
-4slyf
-sly6mui
-4slyn
-sly6paf
-4s3lys
-2sm
-s3ma
-s4mad
-5s4mart
-s3me
-s5melk
-5s4melt
-s3mi
-5smid.
-smi4s
-smit4h5
-3smok
-s5mol.
-s3mon
-s3mu
-3smy
-smy6nin
-s4myt
-1sn
-s5naai
-4snaam
-s5naat
-4s3na4g
-snag5e
-snag6s.
-4snam
-sna6pro
-s4nar
-s3nas
-4snat
-4snav
-snee7tji
-4s3nek
-3s4nel
-4s3nes
-4s3net
-4sneu
-sni6kwa
-sni6tre
-s4nob
-5snoet
-4s3nom
-4snoo
-4snorm
-s4nui
-sny3
-s4nye
-5snyer
-sny6-ys
-1so
-4soef
-3s4oek
-soe6kal
-soe6kev
-soe6kol
-soe4k5u
-s4oen
-soe6nys
-4soes
-5soet.
-soets6t
-soet7ste
-sof6agu
-4soff
-so3fr
-sof6ree
-sog4l
-soi6ets
-sok7opho
-3sol
-s5olie.
-sol6lme
-solo5s
-s4om.
-s4ome
-4s3omg
-4s3oms
-4s3omv
-3s4on.
-s6onde.
-s7ondern
-3s4one
-so6neek
-son7eekh
-son5eg
-4son3g
-son7kwas
-so4n5op
-son4so
-4s3ont
-son7uit.
-s4onv
-4sonw
-4soog
-3s4ool
-4s5oond
-soon4s
-4s5oor.
-4s5oorb
-4s5oord
-4s5oore
-s5oorg
-4s5oorl
-s5oors
-5soort.
-s5oortr
-2s1op
-3sop.
-sop7ekst
-so5phi
-sop6hok
-s4opi
-5sopie
-s3opl
-3sopo
-so3pr
-5s4op4ra
-s3ops
-s3opt
-s3opv
-4sord
-5sorg.
-4s5orga
-sor6gee
-sor6gra
-sorg7raa
-s5orke
-so5ror
-4sorto
-sos4h
-so5sha
-so3th
-sot4ho
-so3tr
-3sou
-4soud
-s5oude
-sou6spa
-sou4s5t
-sou6taa
-sou6tak
-4souto
-s5outom
-so9ya.
-s5paal
-5spaan
-4spad
-4spak
-3s4pan
-span5o
-spa6noo
-4spap
-4spark
-4s5pas.
-4spast
-spa6tar
-4spatr
-4spe.
-3s4pee
-spe4k5l
-spe6kne
-spe6lak
-5speler
-s4pell
-6spelot
-4spen
-s5pen.
-4sperd
-4sperk
-5sperm.
-4spers
-4spes.
-5spesi
-4spet
-s4peu
-4s5piek
-s4pio
-2s3pl
-5s4plee
-5s4plin
-5splits
-3s4ply
-4spoei
-4spol
-4spom
-spon6st
-5spoor.
-4spoot
-5spore
-6sportr
-4spos
-4spote
-s5poti
-5spraak
-6sprakt
-4s5prat
-spreek5
-s5prem
-4spres
-5spreu
-4sprob
-5sproei
-4sprof
-4sprog
-5s4pron
-4spros
-5spruit
-4spry
-s3ps
-sp4si
-4spub
-3s4pul
-4spun
-4spyn
-4spyp
-2s1r
-s3ra
-sra4e
-s3re
-s3ri
-s3ro
-s3ru
-s3ry
-2s1s
-s3sa
-ss4af
-ss4ag
-ssa6rol
-ssay7is.
-s3se
-sse6nas
-sse4n5i
-sser4s
-sse5st
-s3si
-ssie6l7ei
-s3sk
-ss4ko
-s3sl
-s3sm
-ss4ma
-ss4me
-s3sn
-s3so
-s3sp
-ss4pl
-s3st
-ss4ti
-s3su
-s3sw
-s3sy
-2st.
-4sta.
-s4taa
-st5aard
-5staat
-3s4tad
-4stafe
-sta6las
-stal7as.
-4stale
-sta6lee
-sta6lem
-4stali
-5s4talt
-5s4tam.
-sta4m5o
-5s4tan.
-stand8s7ta
-4stari
-3s4tat
-s5tatr
-4stea
-s4tedd
-5s4tede
-s4tee4k
-5s4teen
-4steer
-4steg
-ste6gre
-st4ei
-ste6kli
-ste6lek
-stel7eks
-6stelev
-5s6telse
-stel6tj
-stelt7ji
-5s4tem.
-5stemm
-ste6mom
-ste6nou
-4stent
-s5teny
-4steo
-6sterap
-ste6r5ei
-5sterkt
-4sterm
-ste6rom
-ster5sm
-ste6rys
-ster7ys.
-ste6ser
-ste6sin
-ste6ska
-ste6ski
-ste4sl
-ste6sma
-2sth
-s3ti
-4stie
-s4tigt
-4s5tiku
-sti6laa
-s4timu
-sting5a
-5stinkh
-s4tip
-4stir
-4s5tite
-s3tj
-4sto.
-s5toeg
-s5toek
-5stoel.
-6stoela
-s5toen
-4stoer
-4stoes
-s5toev
-s4tof
-sto6fek
-sto6fem
-sto6fen
-sto4fo
-4stog
-sto4ka
-sto6kle
-sto6kre
-3s4tom
-4stone
-4stoon
-st4op
-sto6poo
-4stos
-sto4st
-3s4tot
-s4tow
-s4traa
-4strad
-s6trak.
-4s5trei
-s4trew
-4s5tril
-6strins
-4stroe
-s5trog
-str6ont
-6stroon
-6strosp
-4strot
-s5trots
-4strou
-4strov
-s4tru
-5struk
-4s5trus
-3s4try
-stu4c
-3s4tud
-4stuig
-3s4tuk
-stu6kin
-stu7klep
-stu7stra
-stu4to
-stu6tys
-st4wi
-2sty
-4styd
-5styf.
-3s4tyl
-sty6loo
-1su
-su2b1
-sub3a
-sub7gids
-sub7hoof
-sub7nasi
-sub5oo
-sub7reko
-3suid
-sui6daf
-sui6dei
-s4uik
-s4uil
-suip5l
-sui6pro
-4s3uit
-s4uiw
-sul6tin
-sum7aans
-2sun
-s3uni
-su4su
-sut6her
-su9yo.
-2sv
-s3va
-s3ve
-s3vi
-s3vl
-s3vo
-s3vr
-s3vu
-s3vy
-svy7kraa
-2sw
-5s4waai
-5swael
-s5waen
-3s4wak
-3s4wa4m
-swam5a
-s5wand
-5swart
-s3wat
-3s4waw
-6sweefs
-s6weeft
-s5week
-5s4weep
-5s4weet
-4sweg
-5sweis
-s4welg
-3s4we4m
-5s4werm
-swe6tre
-s3wê
-s3wi
-s4wik
-4swil
-s3wo
-5swoeg
-swor6st
-4swort
-s3wr
-s3wu
-3swyg
-1sy
-5syfer
-sy3k
-syn6agr
-syn6sin
-syn5sm
-sy5pla
-sy3sk
-4syst
-s5yster
-4sywe
-s5ywer
-2s-
-1t
-2t.
-3ta.
-taa6nam
-4taand
-taan5s6f
-6taansi
-4taant
-4t5aanv
-3tabb
-4tadm
-ta4d5ro
-tad6ser
-tad4s5i
-tad6ska
-tads5n
-tads5p
-tad6ste
-tad6s5to
-4taf.
-4tafd
-3tafe
-tafe4l
-4ta4fr
-4t3afs
-4tafv
-4t3afw
-t4age
-4t5agen
-4tags
-4t3agt
-tai4l
-ta5inv
-tai7peis
-5take.
-tak6lep
-ta5kli
-ta4kr
-tak7rol.
-3takt
-tak7wyn.
-3tale
-tal7eenh
-tal7emme
-5talig
-tal6kaa
-tal6sor
-ta6mind
-tam7inde
-tan6dat
-tan4dr
-tand7rin
-tand6sto
-tang5st
-4t5anna
-tan4sk
-tap5ro
-3tari
-4tark
-4tarm
-t5arm.
-tar5oo
-t5artik
-ta4s.
-t5asem
-tas4p
-tas6tas
-tat7isol
-tat4j
-tat7jies
-ta4t5ra
-2tb
-tba6lun
-tby6tei
-2td
-tdy7ing.
-teby6s.
-3tedo
-teek5r
-tee6lee
-tee7lood
-tee6mev
-tee4mo
-tee4n
-4teenh
-3teer
-tee7raad
-tee7renv
-tees4
-tee5sk
-tee5sl
-tee5st
-tee7suik
-4t3eeu
-tef7lon.
-3tegn
-teg6ori
-teg7ren.
-5tehui
-tei6noo
-tek2
-5tekam
-tek7bak.
-5teken
-teke8n7aap
-tek7haak
-tek7limi
-5tekor
-tek7semp
-tek6sin
-teks5k
-teks5t
-tek7stel
-tek5vo
-te6laap
-tel7aap.
-te4l5ak
-te4l5ap
-tel7dwei
-te4l5el
-tel7fles
-tel7idee
-5telik
-tel6lho
-tel7oes.
-tel7oog.
-te6loon
-tel7oond
-tel7smed
-tem7asse
-4temm
-tem7omva
-te6moog
-tem7oog.
-5tempo
-tena6ge
-5tend.
-t4enh
-ten6kaa
-ten6koo
-ten7ouer
-ten6san
-ten7slot
-5tenso
-ten4s5u
-ten4t5j
-ten4tr
-tent7reg
-ten7treu
-ten7twen
-3teo
-te3p4h
-ter7adel
-5te4r5af
-ter6afi
-ter6ago
-te4rak
-ter7akro
-ter7als.
-ter7aman
-ter7amer
-te6ramp
-ter7amp.
-5terap
-ter5app
-ter6arg
-ter6dro
-terd7roo
-ter5een
-te4r5el
-te4rem
-4terft
-te6rin.
-ter7ink.
-terk7wyn
-3term
-ter7omra
-ter5ond
-ter5ont
-5teror
-ter5os.
-te4r5ow
-ter7raan
-5terrei
-ter7rein
-5terri
-ter6sas
-ter6sef
-ter6seg
-ter6skop
-ter7sopn
-ters6we
-ter7swee
-ter7syst
-ter6tap
-te4rui
-ter7uie.
-te6ryst
-ter7yste
-ter6-in
-3tesi
-tes7inst
-tes7loe.
-tes7lydi
-tes7mart
-tes7meto
-tes7proe
-tes7teri
-tes6tud
-te5sty
-te4s3w
-3teti
-teun5s4
-2t1f
-tf4li
-2t1g
-tg4af
-tge6nap
-tg4li
-2th
-3tha.
-t4has
-4thei
-3t4hen
-ther6aa
-the7raan
-the5ro
-3t2hi
-4thit
-t5hitt
-th5leh
-t4ho.
-tho6nat
-ths7chil
-t4hy.
-tib7niet
-tie4f
-tief5o
-tie6gri
-tie6kap
-tie4k5l
-tie6kom
-tie4k5r
-tie4k5w
-tie6roë
-tie7smoo
-4tif.
-4tiff
-4tigm
-tike4
-ti4kla
-tik7lug.
-tik5ro
-tik6waa
-4til.
-til7aan.
-4tild
-4til3s
-4tilt
-4t3ind
-tin7erts
-tin4ga
-tin7gaal
-ting7aan
-ting7eg.
-tin4g5r
-ting6su
-tings7uu
-4tinkh
-tink7wa.
-4t3inl
-4tinv
-5tipe.
-5tipes
-ti4rp
-tis6aan
-ti3sj
-ti3tr
-tive5r
-t2j
-2tja
-tje6sni
-tjo4k
-2t1k
-tki6sob
-tkom4s5
-2t1l
-t3la
-tla6sin
-t3li
-t3lo
-t5lont
-2tm
-tme6sti
-2t1n
-tne6ywe
-tnot4s5
-3to.
-toe7eien
-4toef
-5toef.
-toe7gly.
-toe7klap
-toe5kr
-4toel.
-5toe5la
-4toele
-toe6let
-toe6lop
-4toelt
-4toep.
-toe7plei
-5toern
-toe6rou
-5toeru
-3toes
-toe5sl
-toe5sm
-toe7swel
-toë7roti
-to4fa
-tof7ekst
-tof7emis
-to4f5io
-tof7onde
-3tog
-to4gl
-tok7las.
-tok7lett
-tok5ou
-t5olie.
-4tom.
-4tond
-3tone
-ton4gr
-tong5s
-4tont
-t5ontl
-t5onts
-3toon
-t5oper
-to5p4he
-4topm
-top7oorl
-4topv
-tor7eien
-tor7eval
-to6rint
-tor7inte
-tor6m5ag
-tor6mom
-to1s
-to3sf
-tos6tro
-to3tr
-tot6ste
-tou3s4
-tou7tjie
-tou6wsr
-to4wn
-toy7ota.
-2tp
-tpen6sk
-tpie6tj
-tpiet7ji
-tplek5
-tpoor6t
-tpoort7j
-tp4sa
-t5psal
-t2r
-4t5raad
-t5raam
-5tradis
-4traf
-tra6fas
-traf5o
-tra6foo
-5trakta
-5transa
-5transf
-tra6paf
-trap7as.
-tra6pew
-tra7ploï
-5trapp
-trat4
-tra5tj
-4tratu
-4trea
-t3rec
-t5reda
-t5redd
-t4ree
-4treek
-4t5reen
-4treë
-4treg.
-t5regi
-tr4ei
-t5reini
-tre6ink
-4treis
-tre4ka
-tre4k5l
-tre4ko
-tre4kr
-trek5w
-tre6kwi
-t4rer
-t5rese
-tre4st
-tre4t
-tre7talb
-tret5j
-t5reuk
-t5rewo
-5tribu
-t5rief
-trie6kl
-5tries
-tri5g4l
-4tring
-trobo5
-4t5roer
-tro6las
-trol7as.
-tro6lin
-tro6naf
-troo4
-4troom
-tro6ski
-3trou
-3trov
-4trub
-4t3rug
-truit6j
-trui7tji
-4truk
-tru7kopp
-trust5r
-4tryk
-2t1s
-ts5agt
-t4sam
-t4sar
-ts5arg
-t4s5eks
-t4s5eng
-tse6raf
-tse6rys
-tser7ys.
-t6singr
-t4s5ins
-ts5inv
-tsi7tsik
-ts5jae
-t4skar
-ts5kok
-t4skon
-t4skor
-t6skrie
-t6skrip
-t4skru
-ts5lam
-t5s6maak
-t5s4mee
-ts4mel
-t4smo
-ts5mot
-t5smou
-ts5nat
-ts5neu
-ts5oon
-t4s5pas
-ts5pen
-ts5pot
-t4s5pro
-ts5tea
-t5stel
-t6stend
-ts4ti
-ts5toer
-ts5tron
-t3stu
-t3su
-ts5waar
-t5swar
-t5swen
-ts6wing
-ts5wyn
-2tt
-tta5tj
-tte6loë
-tte6ral
-tte6ram
-tte7ridg
-tte4ro
-tte7ruil
-tte6slo
-tte6s5ta
-tte5us
-tt4he
-tting5a
-tt5uur
-3tua
-3tue
-3tuig
-3tuin
-4tuits
-tu4kl
-tum7aanw
-tur6kna
-4turt
-tus7aart
-tus7eter
-tussen5
-tu5têr
-2tv
-tv4li
-2tw
-twee5k
-twee5l
-twees4
-twerp5o
-twi6sap
-3tyd
-tyd7aanw
-tyd7lont
-tyd7orde
-tyd3r
-tyd6sat
-3tye
-tyl7oorw
-3tyn
-tyn7spre
-ty3o
-t5yster
-2tz
-tze6nel
-2t-
-u1a
-ua4e4s
-uahu6a.
-u4b3ag
-ubas4
-uba7slag
-ub5eko
-ub3f
-ub5gro
-ub5int
-u3bl
-u4blu
-ub5lun
-ub3or
-ub5sch
-ub3t
-ub3v
-ub5wyk
-uck6len
-u4d3ar
-udi6top
-u4d3re
-u4dri
-uds6med
-ud5sor
-ud6stoe
-uds6tyd
-u1e
-ueb5lo
-uer7ione
-ue4ron
-uer7onde
-ues7tria
-ue5uni
-u4fri
-uf5rin
-ufs6maa
-ug5aan
-u4gei
-uge6ska
-ug1l
-u2go
-ugo6mol
-ug3or
-u2g3r
-ug3s
-ugs4k
-ugs4l
-ug4soo
-ugs4p
-ug5ste
-ugs6tek
-ug5sto
-ug5sui
-ug4ub
-ui4dag
-uid7arts
-ui4d3o
-ui4dr
-uid7reek
-uid7simb
-uid7skat
-uid7skel
-uid7skil
-uid7slui
-uid5spr
-uids6to
-uid7stoe
-uid7uits
-ui1e
-uiers6w
-uies6ma
-uie7smaa
-ui4f3a
-uif7eend
-uif5le
-ui4go
-ui4g3r
-uig3s4
-ui4k3a
-ui4k3l
-ui4k3r
-uik7sfee
-uik6sta
-uik7uitk
-ui4kw
-uil7aap.
-uil5eks
-uil7esel
-ui4l5oo
-uil7tjan
-ui4ma
-uim7oes.
-ui4na
-ui5nae
-uin5ar
-uin7asyn
-uind4
-uin7drek
-uin7ivoo
-uin7kole
-ui4n3o
-uin7ser.
-uin5si
-uin6ska
-ui4pl
-ui4po
-uip5oo
-uip7ore.
-uip7roes
-ui4s3a
-uis3j
-ui4s3o
-uis5ta
-ui4t3a
-uit7dein
-ui4t5ee
-ui5ter
-uit3j
-uit3r
-uit4sj
-uit6-as
-uk4aa
-ukaar4
-uk5loo
-u4kof
-uk5off
-u4kor
-u5krat
-uk3ry
-ukse4s
-uk4ski
-uks4m
-uks7pop.
-uk4sv
-uk4th
-uku7yama
-u2k3w
-u1la
-ul3ag
-uld5erk
-ule6sta
-ulê6r-w
-ulf6api
-ul5ins
-u1lo
-ul5oog
-ulp7eksa
-ulp7oort
-ulp7orga
-ul4saa
-uls6oms
-ult7inge
-ult7uit.
-u1lu
-u2m
-u3ma
-um5agt
-umat4
-uma5tj
-u3me
-umg6rok
-u3mi
-um4ie
-um5ond
-um4s.
-ums7feld
-u3mu
-u4mui
-umu4s
-un5arm
-uner6st
-5unifo
-3univ
-unk7reda
-un2s3
-uns6enb
-un4sid
-uns6kap
-un5s6kol
-un7s6kool
-uns7lagg
-uns7taal
-un5str
-unt7eenh
-un6tinn
-unt7real
-unt6roe
-unts6ko
-unt5sw
-unug6s.
-u1o
-upi6lop
-u4ply
-u4pon
-u1ra
-ur5aar
-ur3af
-ur5agt
-ur3ak
-u5ra5s4t
-ur5atl
-ur5een
-u4ref
-ur5eff
-ure5um
-urf7loop
-urg6h-s
-urg7laag
-u4r5int
-urke5s
-urk7nael
-u1ro
-uro7pesi
-urp7agti
-urr7heim
-urs7agte
-ur4s5ek
-urs6fee
-ur6sloo
-urs7mous
-ur4sno
-ur4s5oo
-urs7paar
-urs6par
-ur4spr
-urs6wee
-urs6wie
-ur6t5oor
-ur4top
-urt7room
-u1ru
-u1ry
-us3ag
-usa7lag.
-u4sap
-us5een
-use5st
-ush7die.
-ush7koal
-usie4k
-usiek5l
-u4s5ins
-u2s3k
-us4k.
-us4kok
-us4kri
-u2s3l
-u3s4lu
-u4sno
-u2s3o
-us4ol
-us4or
-us3p
-us4pie
-u4spo
-us5pot
-usse7us.
-us3t
-us4t.
-ust5akt
-usta6v.
-us4tb
-us4tf
-us4tg
-us4th
-us6tink
-us4to
-us6trek
-us5tru
-us4ts
-us3w
-u2t
-u3ta
-ut5adm
-u4t3ag
-uta7spek
-u3te
-ute7ling
-ute7rago
-u3ti
-u3to
-u4topl
-ut5org
-ut4rek
-uts7luis
-ut4spr
-u3tu
-u3ty
-uu2
-uur1
-uur3i
-uur6s5in
-uus3
-uus6khe
-uut3j
-uwees4
-uwe7smit
-u5yste
-u3yu
-û1
-1ü1
-1v2
-vaar6st
-va4kar
-vak7eie.
-va4kes
-va4ki
-va5kie
-va4k3o
-va4kr
-val7este
-val7fees
-val7funk
-val7isog
-valk7oë.
-val7opto
-val4sa
-val6spa
-vals7pan
-val6spo
-val6spr
-val6s5te
-val6sth
-va4n5ee
-van7effe
-van6gap
-van6gre
-van7uit.
-vari5et
-var6kja
-var6kle
-var4k5n
-var4k5o
-var4k5r
-vas7ent.
-vas6oor
-vas7waai
-ve2
-ve3d
-vee7kong
-vee5kr
-vee4l
-veer5a
-vee3s4
-ve9ga.
-veis4
-vei5st
-vel6don
-vel4d5r
-vel5oo
-ve5lop
-vel5sm
-vel7sple
-ve5lum
-ve3na
-ve3ne
-ve5nor
-ven4t5j
-ve3nu
-vep7legi
-3ver1
-ve9ra.
-verd4
-verdien7s8
-ve5reb
-ve5rek
-ver6ema
-ver6ena
-ve5rend
-ver6eve
-ver6flu
-ver6fru
-ve3ri
-ve6r5inn
-verk4
-ver5kl
-ver5kw
-ve7rona.
-ver5sa
-vers6ki
-ver7skin
-vers8kop.
-ver5sl
-ver5sm
-vers6mag
-ver5sp
-ver7stal
-ver5s4w
-vers8waar
-ver4t5j
-ver5tw
-ves3p
-ves3t
-ves7taal
-ve5suv
-vet5in
-vet5ji
-vet7opga
-vet3r
-vets4
-vet5sm
-vid5so
-vie7ring
-vig4s
-vi5rag
-vi4rg
-vi4r-
-vi4sar
-vi4so
-vis5ol
-vis7oog.
-vis5tr
-vi3tr
-vit7rate
-vlag5s
-vla4k
-vla7koek
-vla6sak
-vle4k
-vlek5l
-v4lie
-vlie6so
-voe6rek
-voe6rui
-voë4l
-voël7oë.
-vog7inho
-vo4gr
-vo4lei
-vol4g5a
-vol6gon
-vo4l3o
-vol7song
-vol7uit.
-vol7ywer
-vond6s7te
-von6klo
-voo7doo.
-voor5s4
-vor4s5t
-vor7ster
-vou7pops
-vou5tj
-vra6gry
-v4re.
-vree6tj
-vreet7ji
-vrie6sp
-vri6jze
-vry7duik
-vry7kyk.
-vry3s4
-vry5st
-vry7uit.
-vu4e.
-vu9yo.
-vyf7armi
-vy3s
-1w
-2w.
-4wael
-wae6lat
-4wa4eo
-3wag.
-wag6las
-wal6ste
-wand6sk
-wan6gaa
-wan7inge
-wans4
-wan5sm
-5wapen
-3warm
-war4s3
-wars6e.
-4wart
-war6thi
-war4t5j
-war6toë
-wart7oë.
-war6too
-war4t5r
-war6tys
-wa5shi
-was6kaa
-was5la
-was6mou
-was7pan.
-wa5str
-wate6ra
-water7aa
-wat5so
-we4bad
-we4bm
-we4b5ru
-web7taal
-web7vlie
-3wed
-we4d3r
-we5dra
-we5dry
-we4dy
-5weefse
-weeg6s.
-wee5ran
-wee5sa
-wee7skaa
-wee5sko
-wee5sl
-wee5s4p
-wee5st
-wee6tru
-3weg
-we4ga
-weg7dof.
-weg3l
-we4go
-weg7orde
-we4g3r
-weg3s4
-weg5st
-we4gu
-4weis
-we4k5ro
-wek7uur.
-wel7aanb
-we6larg
-we4l5ee
-wel7flan
-wel7fron
-wel5oor
-we4l5op
-wel6ske
-we4m3o
-wem6os.
-we4nak
-we4n5as
-wen7eens
-wen6sad
-wen6san
-wen6sar
-wen6sei
-wen6ser
-wen6ses
-wen4sk
-wens5ka
-wen7skud
-wen4s5l
-wen4so
-wen6spr
-wen6ste
-wens7tes
-wen4s5u
-wer7esse
-wer6fom
-wer6gar
-wer6gre
-wer6int
-3werk
-wer6kad
-wer6k5af
-wer6kes
-wer4kl
-werk7laa
-wer7klan
-wer7klap
-wer7klok
-wer6koms
-wer6kon
-wer7kony
-wer6kre
-wer6kro
-wer6kuu
-wer4kw
-wer5kwa
-wer4ky
-we4r3o
-wer6paf
-wer6pan
-wer6plo
-wer6pon
-wer6poo
-wer6por
-wer7smed
-wer7uil.
-wes6mit
-wes7oewe
-we4sp
-wes7pemi
-we4s3t
-we5sta
-wes4th
-we5s4tr
-wes7waar
-3wet.
-wet7regu
-wet4s5o
-wet4s5t
-wet7wysi
-3wêr
-4wfon
-wids7tor
-wiel5a
-wie4t5j
-wi4gr
-wi4kl
-wi4ko
-wiks7te.
-wil6dag
-wil6sin
-wil4sk
-wind7as.
-win6del
-win6dop
-wind7op.
-win4dr
-wind7ruk
-win6kle
-win4sk
-win7sky.
-win4s5t
-win7ston
-win6tap
-win6tes
-wip7lig.
-wip7roos
-wit5el
-wit7inkb
-wit5ji
-wi4t3o
-wit5ro
-2wj
-wje6tun
-4woeg
-woe4s
-wo4l3a
-wol7invo
-wol6klo
-wo4l3o
-woor6dr
-wo5rum
-wou6dag
-w2r
-wree4
-wri6gon
-2ws
-wur4gr
-wur4m
-wurm5a
-2ww
-wwe7rint
-wyd5oo
-wyd7uite
-wyk6was
-wyn6and
-wyn5sm
-3wys
-wys7aksi
-wys3k
-wys3p
-wys5ta
-wyt7raak
-x'9ie.
-x1a
-xe1
-x3em
-xerox7e.
-x2h
-x1i
-xys6te.
-y1a
-y4ama
-ybe6lil
-y2d
-y3da
-y3de
-yden4s
-ydgele6
-ydg6leu
-y3di
-yd3of
-yd3re
-yd3ro
-yd4sin
-yd6skat
-yds7krit
-yds7orde
-y1e
-y4enn
-yer2
-yer7hof.
-yer7maat
-yer4s
-yer7ton.
-yer7vill
-yer7voël
-yes6agt
-3yeu
-yf3aa
-y4far
-yf5as.
-yf3l
-y2f3r
-yf5ren
-yf4sl
-yf4su
-y1g
-yg4le
-yg4li
-yg4ly
-yg5saa
-ygs7kans
-yg5sko
-ygs5le
-ygs6tek
-yg4sto
-yg4stu
-ykaar4
-yker6st
-y4k5ins
-y2kl
-yk3li
-yk4lu
-yk5lui
-yk5lus
-ykoms4
-y4kor
-yk3ri
-yk4s5ad
-yk4sk
-yks7kans
-yk3sp
-yks4t
-yk4su
-y2k3w
-y1la
-y1lo
-y4loe
-yls7laar
-y2n1a
-yn4a.
-y4nei
-y4n5ete
-yn1g2
-yn5kli
-yn5kwa
-y2n1o
-y3n4om
-yns6agt
-yn4s5am
-yns5ins
-yn5sly
-yns4m
-yns7maan
-yn4s5or
-yn4sp
-yns7paar
-yns4t
-yn3u
-yo9yo.
-y2p
-y3pa
-y3pe
-y3pi
-y5plan
-yp3li
-yp5org
-y3pr
-y3pu
-y1r
-y4sam
-ys4ig
-y4s5ind
-y4s5ins
-y2sk
-ys5kar
-ys3ko
-y5s4koo
-y2s3l
-y2s3n
-y2s3o
-ys4ok
-ys4ou
-ys5poe
-ys3t
-ys4ta
-y4s5taf
-y5s4tel
-y4ster
-y3s4tr
-ys4tu
-ys3ui
-ys3w
-y2t
-y3ta
-yt3ag
-y3te
-yt4ha
-y3ti
-y3tj
-y3to
-y3tu
-y3ty
-yve7sant
-1z
-2z.
-4zbur
-zee7rust
-zen7elle
-zi2c
-zi5cat
-4zman
-zook6a.
-2zz
-2-1
--er4t
--ert5j
--ha-7ha.
--k4li
--na6gew
--s4ti
--t4we
--5twee} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-agr.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-agr.hyp
deleted file mode 100644
index 16a2cc279d3..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-agr.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-agr.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-agr.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-agr.pat
deleted file mode 100644
index 4064ae88318..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-agr.pat
+++ /dev/null
@@ -1,3113 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-agr.rme
-
-% used: ' ʼ ΐ ά έ ή ί ΰ α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ ς σ τ υ φ χ ψ ω ϊ ϋ ό ύ ώ ϐ ϲ ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ ἐ ἑ ἒ ἓ ἔ ἕ ἠ ἡ ἢ ἣ ἤ ἥ ἦ ἧ ἰ ἱ ἲ ἳ ἴ ἵ ἶ ἷ ὀ ὁ ὂ ὃ ὄ ὅ ὐ ὑ ὒ ὓ ὔ ὕ ὖ ὗ ὠ ὡ ὢ ὣ ὤ ὥ ὦ ὧ ὰ ά ὲ έ ὴ ή ὶ ί ὸ ό ὺ ύ ὼ ώ ᾀ ᾁ ᾂ ᾃ ᾄ ᾅ ᾆ ᾇ ᾐ ᾑ ᾒ ᾓ ᾔ ᾕ ᾖ ᾗ ᾠ ᾡ ᾢ ᾣ ᾤ ᾥ ᾦ ᾧ ᾲ ᾳ ᾴ ᾶ ᾷ ᾽ ᾿ ῂ ῃ ῄ ῆ ῇ ῒ ΐ ῖ ῗ ῢ ΰ ῤ ῥ ῦ ῧ ῲ ῳ ῴ ῶ ῷ
-
-\patterns{
-α1
-ε1
-η1
-ι1
-ο1
-υ1
-ω1
-ϊ1
-ϋ1
-ἀ1
-ἁ1
-ἂ1
-ἃ1
-ἄ1
-ἅ1
-ἆ1
-ἇ1
-ἐ1
-ἑ1
-ἒ1
-ἓ1
-ἔ1
-ἕ1
-ἠ1
-ἡ1
-ἢ1
-ἣ1
-ἤ1
-ἥ1
-ἦ1
-ἧ1
-ἰ1
-ἱ1
-ἲ1
-ἳ1
-ἴ1
-ἵ1
-ἶ1
-ἷ1
-ὀ1
-ὁ1
-ὂ1
-ὃ1
-ὄ1
-ὅ1
-ὐ1
-ὑ1
-ὒ1
-ὓ1
-ὔ1
-ὕ1
-ὖ1
-ὗ1
-ὠ1
-ὡ1
-ὢ1
-ὣ1
-ὤ1
-ὥ1
-ὦ1
-ὧ1
-ὰ1
-ὲ1
-ὴ1
-ὶ1
-ὸ1
-ὺ1
-ὼ1
-ᾀ1
-ᾁ1
-ᾂ1
-ᾃ1
-ᾄ1
-ᾅ1
-ᾆ1
-ᾇ1
-ᾐ1
-ᾑ1
-ᾒ1
-ᾓ1
-ᾔ1
-ᾕ1
-ᾖ1
-ᾗ1
-ᾠ1
-ᾡ1
-ᾢ1
-ᾣ1
-ᾤ1
-ᾥ1
-ᾦ1
-ᾧ1
-ᾲ1
-ᾳ1
-ᾴ1
-ᾶ1
-ᾷ1
-ῂ1
-ῃ1
-ῄ1
-ῆ1
-ῇ1
-ῒ1
-ῖ1
-ῗ1
-ῢ1
-ῦ1
-ῧ1
-ῲ1
-ῳ1
-ῴ1
-ῶ1
-ῷ1
-ά1
-έ1
-ή1
-ί1
-ό1
-ύ1
-ώ1
-ΐ1
-ΰ1
-ά1
-έ1
-ή1
-ί1
-ό1
-ύ1
-ώ1
-α2ι
-α2ί
-α2ί
-α2ὶ
-α2ῖ
-α2ἰ
-α2ἴ
-α2ἲ
-α2ἶ
-α2ἱ
-α2ἵ
-α2ἳ
-α2ἷ
-ά3ι
-ά3ι
-ᾶ3ι
-ἀ3ι
-ἁ3ι
-α2υ
-α2ύ
-α2ύ
-α2ὺ
-α2ῦ
-α2ὐ
-α2ὔ
-α2ὒ
-α2ὖ
-α2ὑ
-α2ὕ
-α2ὓ
-α2ὗ
-ά3υ
-ά3υ
-ᾶ3υ
-ἀ3υ
-ἁ3υ
-ε2ι
-ε2ί
-ε2ί
-ε2ὶ
-ε2ῖ
-ε2ἰ
-ε2ἴ
-ε2ἲ
-ε2ἶ
-ε2ἱ
-ε2ἵ
-ε2ἳ
-ε2ἷ
-έ3ι
-έ3ι
-ἐ3ι
-ἑ3ι
-ε2υ
-ε2ύ
-ε2ύ
-ε2ὺ
-ε2ῦ
-ε2ὐ
-ε2ὔ
-ε2ὒ
-ε2ὖ
-ε2ὑ
-ε2ὕ
-ε2ὓ
-ε2ὗ
-έ3υ
-έ3υ
-ἑ3υ
-ἐ3υ
-η2υ
-η2ύ
-η2ύ
-η2ὺ
-η2ῦ
-η2ὐ
-η2ὔ
-η2ὒ
-η2ὖ
-η2ὑ
-η2ὕ
-η2ὓ
-η2ὗ
-ή3υ
-ή3υ
-ῆ3υ
-ἠ3υ
-ἡ3υ
-ο2ι
-ο2ί
-ο2ί
-ο2ὶ
-ο2ῖ
-ο2ἰ
-ο2ἴ
-ο2ἲ
-ο2ἶ
-ο2ἱ
-ο2ἵ
-ο2ἳ
-ο2ἷ
-ό3ι
-ό3ι
-ὀ3ι
-ὁ3ι
-ο2υ
-ο2ύ
-ο2ύ
-ο2ὺ
-ο2ῦ
-ο2ὐ
-ο2ὔ
-ο2ὒ
-ο2ὖ
-ο2ὑ
-ο2ὕ
-ο2ὓ
-ο2ὗ
-ό3υ
-ό3υ
-ὀ3υ
-ὁ3υ
-υ2ι
-υ2ί
-υ2ί
-υ2ὶ
-υ2ῖ
-υ2ἰ
-υ2ἴ
-υ2ἲ
-υ2ἶ
-υ2ἱ
-υ2ἵ
-υ2ἳ
-υ2ἷ
-ύ3ι
-ύ3ι
-ῦ3ι
-ὐ3ι
-ὑ3ι
-ου3ι
-όυ4ι
-όυ4ι
-ὀυ4ι
-ὁυ4ι
-ο3υί
-ο3υί
-ο3υῖ
-4β.
-4ϐ.
-4γ.
-4δ.
-4ζ.
-4θ.
-4κ.
-4λ.
-4μ.
-4ν.
-4ξ.
-4π.
-4ρ.
-4σ.
-4ς.
-4τ.
-4φ.
-4χ.
-4ψ.
-4'
-4β'
-4ϐ'
-4γ'
-4δ'
-4ζ'
-4θ'
-4κ'
-4λ'
-4μ'
-4ν'
-4ξ'
-4π'
-4ρ'
-4σ'
-4τ'
-4φ'
-4χ'
-4ψ'
-.β4
-.ϐ4
-.γ4
-.δ4
-.ζ4
-.θ4
-.κ4
-.λ4
-.μ4
-.ν4
-.ξ4
-.π4
-.ρ4
-.σ4
-.τ4
-.φ4
-.χ4
-.ψ4
-2β1β
-2ϐ1ϐ
-2γ1γ
-2δ1δ
-2ζ1ζ
-2θ1θ
-2κ1κ
-2λ1λ
-2μ1μ
-2ν1ν
-2π1π
-2ρ1ρ
-2ῤ1ῥ
-2σ1σ
-2τ1τ
-2φ1φ
-2χ1χ
-2ψ1ψ
-2β1γ
-2ϐ1γ
-2β1ζ
-2ϐ1ζ
-2β1θ
-2ϐ1θ
-2β1κ
-2ϐ1κ
-2β1ξ
-2ϐ1ξ
-2β1π
-2ϐ1π
-2β1σ
-2ϐ1σ
-2β1τ
-2ϐ1τ
-2β1φ
-2ϐ1φ
-2β1χ
-2ϐ1χ
-2β1ψ
-2ϐ1ψ
-2γ1β
-2γ1ϐ
-2γ1ζ
-2γ1θ
-2γ1κ
-2γ1ξ
-2γ1π
-2γ1σ
-2γ1τ
-2γ1φ
-2γ1χ
-2γ1ψ
-2δ1β
-2δ1ϐ
-2δ1γ
-2δ1ζ
-2δ1θ
-2δ1κ
-2δ1λ
-2δ1ξ
-2δ1π
-2δ1σ
-2δ1τ
-2δ1φ
-2δ1χ
-2δ1ψ
-2ζ1β
-2ζ1ϐ
-2ζ1γ
-2ζ1δ
-2ζ1θ
-2ζ1κ
-2ζ1λ
-2ζ1μ
-2ζ1ν
-2ζ1ξ
-2ζ1π
-2ζ1ρ
-2ζ1σ
-2ζ1τ
-2ζ1φ
-2ζ1χ
-2ζ1ψ
-2θ1β
-2θ1ϐ
-2θ1γ
-2θ1δ
-2θ1ζ
-2θ1κ
-2θ1ξ
-2θ1π
-2θ1σ
-2θ1τ
-2θ1φ
-2θ1χ
-2θ1ψ
-2κ1β
-2κ1ϐ
-2κ1γ
-2κ1δ
-2κ1ζ
-2κ1θ
-2κ1ξ
-2κ1π
-2κ1σ
-2κ1φ
-2κ1χ
-2κ1ψ
-2λ1β
-2λ1ϐ
-2λ1γ
-2λ1δ
-2λ1ζ
-2λ1θ
-2λ1κ
-2λ1μ
-2λ1ν
-2λ1ξ
-2λ1π
-2λ1ρ
-2λ1σ
-2λ1τ
-2λ1φ
-2λ1χ
-2λ1ψ
-2μ1β
-2μ1ϐ
-2μ1γ
-2μ1δ
-2μ1ζ
-2μ1θ
-2μ1κ
-2μ1λ
-2μ1ξ
-2μ1π
-2μ1ρ
-2μ1σ
-2μ1τ
-2μ1φ
-2μ1χ
-2μ1ψ
-2ν1β
-2ν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ν
-2ψ1ξ
-2ψ1π
-2ψ1ρ
-2ψ1σ
-2ψ1τ
-2ψ1φ
-2ψ1χ
-4βδ'
-4ϐδ'
-4βλ'
-4ϐλ'
-4βμ'
-4ϐμ'
-4βν'
-4ϐν'
-4βρ'
-4ϐρ'
-4γδ'
-4γλ'
-4γμ'
-4γν'
-4γρ'
-4δμ'
-4δν'
-4δρ'
-4ζβ'
-4ζϐ'
-4θλ'
-4λμ'
-4θν'
-4θρ'
-4κλ'
-4κμ'
-4κν'
-4κρ'
-4κτ'
-4μν'
-4πλ'
-4πμ'
-4πν'
-4πρ'
-4πτ'
-4σβ'
-4σϐ'
-4σγ'
-4σδ'
-4σθ'
-4σκ'
-4σμ'
-4σπ'
-4στ'
-4σφ'
-4σχ'
-4φθ'
-4φλ'
-4φμ'
-4φν'
-4φρ'
-4χθ'
-4χλ'
-4χμ'
-4χν'
-4χρ'
-ἀγω2ν1άρ
-ἀγω2ν1άρ
-ἀγω2ν1αρ
-ἀδιέ2ξ1
-ἀδιέ2ξ1
-ἀδιε2ξ1
-ἀδυ2σ1ώ
-ἀδυ2σ1ώ
-ἀδυ2σ1ω
-ἁλό2σ1
-ἁλό2σ1
-ἁλο2σ1
-ἀμπαλί2ν1
-ἀμπαλί2ν1
-ἀμπαλι2ν1
-ἀμφί2σ1β
-ἀμφί2σ1β
-ἀμφί2σ1ϐ
-ἀμφί2σ1ϐ
-ἀμφι2σ1β
-ἀμφι2σ1ϐ
-ἀμφί2σ1ω
-ἀμφί2σ1ω
-ἀμφι2σ1ώ
-ἀμφι2σ1ώ
-ἀ2ν1αγής.
-ἀ2ν1αγής.
-ἀ2ν1αγὴς.
-ἀ2ν1αγήσ.
-ἀ2ν1αγήσ.
-ἀ2ν1αγὴσ.
-ἀ2ν1αγο
-ἀ2ν1αγεῖ.
-ἀ2ν1αγῆ.
-ἀ2ν1αγές.
-ἀ2ν1αγές.
-ἀ2ν1αγὲς.
-ἀ2ν1αγέσ.
-ἀ2ν1αγέσ.
-ἀ2ν1αγὲσ.
-ἀ2ν1αγεῖς.
-ἀ2ν1αγεῖσ.
-ἀ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αγνώ
-ἀ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αγωγία
-ἀ2ν1άδελ
-ἀ2ν1άδελ
-ἀ2ν1αδέλ
-ἀ2ν1αδέλ
-ἀ2ν1άελπ
-ἀ2ν1άελπ
-ἀ2ν1αέλπ
-ἀ2ν1αέλπ
-ἄ2ν1αθλ
-ἀ2ν1άθλ
-ἀ2ν1άθλ
-ἀ2ν1αίδ
-ἀ2ν1αίδ
-ἀ2ν1αιδ
-ἄ2ν1αιμ
-ἀ2ν1αίμ
-ἀ2ν1αίμ
-ἀ2ν1αιμ
-ἀ2ν1αίσθ
-ἀ2ν1αίσθ
-ἀ2ν1αισθ
-ἀ2ν1αισι
-ἀ2ν1αισί
-ἀ2ν1αισί
-ἀ2ν1αίσχ
-ἀ2ν1αίσχ
-ἀ2ν1αισχ
-ἀ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αλλ
-ἀ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ανθ
-ἀ3ν2ανθέ
-ἀ3ν2ανθέ
-ἀ4ν3ανθές.
-ἀ4ν3ανθές.
-ἀ4ν3ανθὲς.
-ἀ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απόδο
-ἀ2ν1απόδο
-ἀ2ν1αποδό
-ἀ2ν1αποδό
-ἀ2ν1απόδρ
-ἀ2ν1απόδρ
-ἀ2ν1αποδρ
-ἀ2ν1απόλαυ
-ἀ2ν1απόλαυ
-ἀ2ν1απολαύ
-ἀ2ν1απολαύ
-ἀ2ν1απολό
-ἀ2ν1απολό
-ἀ2ν1απολο
-ἀ2ν1απόλυ
-ἀ2ν1απόλυ
-ἀ2ν1απολύ
-ἀ2ν1απολύ
-ἀ2ν1απόν
-ἀ2ν1απόν
-ἀ2ν1απον
-ἀ2ν1απόπ
-ἀ2ν1απόπ
-ἀ2ν1αποπ
-ἀ2ν1απόσ
-ἀ2ν1απόσ
-ἀ2ν1αποσ
-ἀ2ν1απότε
-ἀ2ν1απότε
-ἀ2ν1αποτε
-ἀ2ν1απότμ
-ἀ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αρρ
-ἀ4ν3αρραγ
-ἀ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αστεί
-ἀ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αυδ
-ἀ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αφὲ
-ἀ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εκ
-ἀ3ν2έκα
-ἀ3ν2έκα
-ἀ3ν2εκάς.
-ἀ3ν2εκάς.
-ἀ3ν2εκὰς.
-ἀ3ν2εκάσ.
-ἀ3ν2εκάσ.
-ἀ3ν2εκὰσ.
-ἀ3ν2εκτ
-ἀ4ν3έ2κ1τιτ
-ἀ4ν3έ2κ1τιτ
-ἀ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έλκω
-ἀ2ν1έλκω
-ἀ2ν1ελκώ
-ἀ2ν1ελκώ
-ἀ2ν1έλλ
-ἀ2ν1έλλ
-ἀ2ν1έλπι
-ἀ2ν1έλπι
-ἀ2ν1ελπί
-ἀ2ν1ελπί
-ἀ2ν1έλυτρ
-ἀ2ν1έλυτρ
-ἀ2ν1ελύτρ
-ἀ2ν1ελύτρ
-ἀ2ν1έμβ
-ἀ2ν1έμβ
-ἀ2ν1έμϐ
-ἀ2ν1έμϐ
-ἀ2ν1εμβ
-ἀ2ν1εμϐ
-ἀ2ν1έμετ
-ἀ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
-ἀ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επ
-ἀ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εφ
-ἀ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ηλή
-ἀ2ν1ηλή
-ἀ2ν1ηλὴ
-ἀ2ν1ηλοῦ
-ἀ2ν1ηλεῖ
-ἀ2ν1ηλῆ
-ἀ2ν1ηλέ
-ἀ2ν1ηλέ
-ἀ2ν1ηλὲ
-ἀ2ν1ηλοῖ
-ἀ2ν1ηλῶ
-ἀ2ν1ήλικ
-ἀ2ν1ήλικ
-ἀ2ν1ηλίκ
-ἀ2ν1ηλίκ
-ἀ2ν1ήλιο
-ἀ2ν1ήλιο
-ἀ2ν1ηλίο
-ἀ2ν1ηλίο
-ἀ2ν1ηλίω
-ἀ2ν1ηλίω
-ἀ2ν1ήλια
-ἀ2ν1ήλια
-ἀ2ν1ήλιπ
-ἀ2ν1ήλιπ
-ἀ2ν1ηλίπ
-ἀ2ν1ηλίπ
-ἀ2ν1ηλιφ
-ἀ2ν1ήμ
-ἀ2ν1ήμ
-ἀ2ν1ημ
-ἀ2ν1ήνυ
-ἀ2ν1ήνυ
-ἀ2ν1ηνύ
-ἀ2ν1ηνύ
-ἀ2ν1ήρει
-ἀ2ν1ήρει
-ἀ2ν1ηρεί
-ἀ2ν1ηρεί
-ἀ2ν1ηρέμ
-ἀ2ν1ηρέμ
-ἀ2ν1ηρεμ
-ἀ2ν1ηρεφ
-ἀ2ν1ήρι
-ἀ2ν1ήρι
-ἀ2ν1ηρί
-ἀ2ν1ηρί
-ἀ2ν1ήροτ
-ἀ2ν1ήροτ
-ἀ2ν1ηρότ
-ἀ2ν1ηρότ
-ἀ2ν1ήσσ
-ἀ2ν1ήσσ
-ἀ2ν1ησσ
-ἀ2ν1ήττ
-ἀ2ν1ήττ
-ἀ2ν1ηττ
-ἀ2ν1ήφα
-ἀ2ν1ήφα
-ἀ2ν1ηφα
-ἀ2ν1ίατ
-ἀ2ν1ίατ
-ἀ2ν1ιάτ
-ἀ2ν1ιάτ
-ἀ2ν1ίδιο
-ἀ2ν1ίδιο
-ἀ2ν1ιδίο
-ἀ2ν1ιδίο
-ἀ2ν1ιδίω
-ἀ2ν1ιδίω
-ἀ2ν1ίδια
-ἀ2ν1ίδια
-ἀ2ν1ιδιτ
-ἄ2ν1ιδρος
-ἄ2ν1ιδροσ
-ἀ2ν1ίδρου
-ἀ2ν1ίδρου
-ἀ2ν1ίδρω
-ἀ2ν1ίδρω
-ἄ2ν1ιδρον
-ἄ2ν1ιδρε
-ἀ2ν1ίδροι
-ἀ2ν1ίδροι
-ἄ2ν1ιδροι
-ἀ2ν1ίδρυτ
-ἀ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ικ
-ἀ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ίσ
-ἀ3ν2ισᾶτ
-ἀ3ν2ισάτ
-ἀ3ν2ισάτ
-ἀ3ν2ίστ
-ἀ3ν2ίστ
-ἀ3ν2ιστ
-ἀ4ν3ιστορη
-ἀ4ν3ιστόρη
-ἀ4ν3ιστόρη
-ἀ4ν3ιστορή
-ἀ4ν3ιστορή
-ἀ3ν2ίσχ
-ἀ3ν2ίσχ
-ἀ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ολ
-ἀ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ομο
-ἀ3ν2ομοθ
-ἀ3ν2όμου.
-ἀ3ν2όμου.
-ἀ3ν2όμῳ.
-ἀ3ν2όμῳ.
-ἀ3ν2όμω.
-ἀ3ν2όμω.
-ἀ2ν2όμοιν.
-ἀ2ν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ορθ
-ἀ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
-ἀντιπροσ3κ2υ
-ἀντισύ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υπε2ρ1
-ἄ2ν1ῳδ
-ἀ2ν1ῴδ
-ἀ2ν1ώδυ
-ἀ2ν1ώδυ
-ἀ2ν1ωδύ
-ἀ2ν1ωδύ
-ἀ2ν1ώι
-ἀ2ν1ώι
-ἀ2ν1ωί
-ἀ2ν1ωί
-ἀ2ν1ώλ
-ἀ2ν1ώλ
-ἀ2ν1ωλ
-ἀ2ν1ώμ
-ἀ2ν1ώμ
-ἀ2ν1ωμ
-ἀ2ν1ών
-ἀ2ν1ών
-ἀ2ν1ων
-ἀ2ν1ωρ
-ἄ2ν1ωρ
-ἀ2ν1ώρ
-ἀ2ν1ώρ
-ἄ2ν1ωτο
-ἀ2ν1ώτο
-ἀ2ν1ώτο
-ἀ2ν1ωφέλ
-ἀ2ν1ωφέλ
-ἀ2ν1ωφελ
-ἀ2ν1ώχυ
-ἀ2ν1ώχυ
-ἀ2ν1ωχύ
-ἀ2ν1ωχύ
-ἀπα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τ
-ἁρπα2ξ1
-ἀρρε2ν1ω
-ἀρχισυ2ν1
-ἀστε2ρ1ω
-ἀσύ2ν1
-ἀσύ2ν1
-ἀσυ2ν1
-ἀξύ2ν1
-ἀξύ2ν1
-ἀξυ2ν1
-αὐτέ2κ1μ
-αὐτέ2κ1μ
-αὐτε2κ1μ
-αὐτε2ξ1
-ἀω2σ1φ
-.γερα2σ1φ
-.δα2σ1π
-.διαμφι2σ1β
-.διαμφι2σ1ϐ
-.διέ2κ1ρο
-.διέ2κ1ρο
-.διε2κ1ρό
-.διε2κ1ρό
-.διέ2ξ1
-.διέ2ξ1
-.διε2ξ1
-.δικα2σ1π
-.διό2σ1κ
-.διό2σ1κ
-.διο2σ1κ
-.διό2σ1π
-.διό2σ1π
-.διο2σ1π
-.δί2σ1α
-.δί2σ1α
-.δι2σ1ά
-.δι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άντων.
-δυ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ϐ
-.δυσέ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μῶ
-.δυσξύ2ν1
-.δυσξύ2ν1
-.δυσξυ2ν1
-.δύ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οιο
-εἴ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λάο
-ἐ3κ2λάσ
-ἐ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κλέπ
-ἐ3κ2κλέπ
-ἐ3κ2κλέψ
-ἐ3κ2κλέψ
-ἐ3κ2λάπ
-ἐ3κ2λάπ
-ἐ3κ2λαπ
-ἐ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λύ
-ἐ4κ3λύσεω
-ἐ4κ3λύσεω
-ἐ4κ3λύσει
-ἐ4κ3λύσει
-ἐ4κ3λύσεοι
-ἐ4κ3λύσεοι
-ἐ4κ3λύσεσι
-ἐ4κ3λύσεσι
-ἐ3κ2λόμ
-ἐ3κ2λόμ
-ἐ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νήσ
-ἐ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ρίν
-ἐ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τάσ
-ἐ2κ1τε
-ἐ2κ1τέ
-ἐ2κ1τέ
-ἐ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τίσα
-ἐ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κτύποι.
-ἐ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
-ἐ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αρηφ
-ἐ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τ
-ἐ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νηέ
-ἐ3νηέ
-ἐ3ν2ήνο
-ἐ3ν2ήνο
-ἐ3ν2ί
-ἐ3ν2ί
-ἐ3ν2ι
-ἔ3ν2ι
-ἐ4ν3ιαύ
-ἐ4ν3ιαύ
-ἐ5ν4ιαύσ
-ἐ5ν4ιαύσ
-ἐ5ν4ιαυσ
-ἐ4ν3ιδρ
-ἐ4ν3ίδρ
-ἐ4ν3ίδρ
-ἐ4ν3ίζ
-ἐ4ν3ίζ
-ἐ4ν3ίη
-ἐ4ν3ίη
-ἐ4ν3ιέτον.
-ἐ4ν3ιέτον.
-ἐ4ν3ίεμεν.
-ἐ4ν3ίεμεν.
-ἐ4ν3ίω.
-ἐ4ν3ίω.
-ἐ4ν3ιππ
-ἐ4ν3ίππ
-ἐ4ν3ίππ
-ἐ4ν3ίπτ
-ἐ4ν3ίπτ
-ἐ4ν3ίψ
-ἐ4ν3ίψ
-ἐ4ν3ίσσ
-ἐ4ν3ίσσ
-ἐ4ν3ίστ
-ἐ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υσ
-ἐ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
-ἐ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άμεθα.
-ἐπει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
-ἐ3σ2άω
-ἐ3σ2άω
-ἐ3σ2ημ
-ἐ3σ2θ
-ἐ4σ3θέσ
-ἐ4σ3θέσ
-ἐ3σ2ιγ
-ἐ3σ2κ
-ἐ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ύ
-ἐσύ2ν1
-ἐσύ2ν1
-ἐσυ2ν1
-ἐ3σ2χ
-ἐ4σ3χέ
-ἐ4σ3χέ
-ἐ3σ2ώ
-ἐ3σ2ώ
-ἐ3σ2ω
-ἔ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όστ
-.μελά2ν1ουρ
-.μελά2ν1ουρ
-.μελα2ν1ούρ
-.μελα2ν1ούρ
-.μελα2ν1ουρ
-.μελά2ν1υ
-.μελά2ν1υ
-.μελα2ν1ύ
-.μελα2ν1ύ
-.μετε2ξ1α
-.μετε2ξ1έ
-.μετε2ξ1έ
-.μετε2ξ1ε
-.μογι2σ1
-.μογο2σ1τ
-.μυ2σ1π
-.μυ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
-.πα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εῖ
-.παρε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ονται.
-.πλεο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αϐ
-.προσει2σ1
-.προ3σ2εί
-.προ3σ2εί
-.προ3σ2έσει
-.προ3σ2έσει
-.προ3σ2εσεί
-.προ3σ2εσεί
-.προσε2ν1
-.προσε2ξ1
-.πρό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τέν
-.προ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χημ
-.προ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
-.τρι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
-ὑπεί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αισ.
-ὑπέ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τί
-ὑπε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άγ
-.χει2ρ1αγ
-.χει2ρ1απ
-.χει2ρ1αψ
-.χει2ρ1ου
-.χει2ρ1ῶν
-.χει2ρ1άν
-.χει2ρ1άν
-.χει2ρ1αν
-.χη2ν1ναλ
-ὡ2σ1α2ν1εί.
-ὡ2σ1α2ν1εί.
-ὡ2σ1α2ν1εὶ.
-ὡ2σ1αύτως.
-ὡ2σ1αύτως.
-ὡ2σ1αύτωσ.
-ὡ2σ1αύτωσ.
-ὡ2σ1εί.
-ὡ2σ1εί.
-ὡ2σ1εὶ.
-ὥ2σ1περ.
-ὡ2σ1πε2ρ1εί.
-ὡ2σ1πε2ρ1εί.
-ὡ2σ1πε2ρ1εὶ.
-ὥ2σ1τε
-ι2σ1χίλιοι.
-ι2σ1χίλιοι.
-ι2σ1χιλίων.
-ι2σ1χιλίων.
-ι2σ1χιλίοις.
-ι2σ1χιλίοις.
-ι2σ1χιλίοισ.
-ι2σ1χιλίοισ.
-ι2σ1χιλίους.
-ι2σ1χιλίους.
-ι2σ1χιλίουσ.
-ι2σ1χιλίουσ.
-ι2σ1χίλιαι.
-ι2σ1χίλιαι.
-ι2σ1χιλίαις.
-ι2σ1χιλίαις.
-ι2σ1χιλίαισ.
-ι2σ1χιλίαισ.
-ι2σ1χιλίας.
-ι2σ1χιλίας.
-ι2σ1χιλίασ.
-ι2σ1χιλίασ.
-ι2σ1χίλια.
-ι2σ1χίλια.
-ι2σ1μύριοι.
-ι2σ1μύριοι.
-ι2σ1μυρίων.
-ι2σ1μυρίων.
-ι2σ1μυρίοις.
-ι2σ1μυρίοις.
-ι2σ1μυρίοισ.
-ι2σ1μυρίοισ.
-ι2σ1μυρίους.
-ι2σ1μυρίους.
-ι2σ1μυρίουσ.
-ι2σ1μυρίουσ.
-ι2σ1μύριαι.
-ι2σ1μύριαι.
-ι2σ1μυρίαις.
-ι2σ1μυρίαις.
-ι2σ1μυρίαισ.
-ι2σ1μυρίαισ.
-ι2σ1μυρίας.
-ι2σ1μυρίας.
-ι2σ1μυρίασ.
-ι2σ1μυρίασ.
-ι2σ1μύρια.
-ι2σ1μύρια.
-ι2σ1χιλιοστ
-ι2σ1μυριοστ
-ι2σ1χιλιάκις.
-ι2σ1χιλιάκις.
-ι2σ1χιλιάκισ.
-ι2σ1χιλιάκισ.
-ι2σ1μυριάκις.
-ι2σ1μυριάκις.
-ι2σ1μυριάκισ.
-ι2σ1μυριάκισ.} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-ala.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-ala.hyp
deleted file mode 100644
index edeef6039e9..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-ala.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-ala.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-ala.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-ala.pat
deleted file mode 100644
index 63aff72e3d5..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-ala.pat
+++ /dev/null
@@ -1,26083 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-ala.rme
-
-% used: a b c d e f g h i j l m n o p q r s t u v x y z á æ é í ó ú ý ā ă ē ĕ ī ĭ ō ŏ œ ū ŭ ǣ ǽ ȳ ́ ̄ ̆ ͞ ͡
-
-\patterns{
-.ab1
-.aba2
-.ab3a4u
-.aba4v
-.ab3áu
-.ab3áv
-.abe4
-.ab3es
-.abé2
-.ab3és
-.abi2
-.ab3i4n
-.ab3is
-.ab3it
-.abi4u
-.abi4v
-.abī2
-.abī4n
-.abī́4
-.abí2
-.ab3í4n
-.ab3ís
-.abí4t
-.abo2
-.abó2
-.ab5us
-.ab3ú
-.ad3ā
-.ad3á
-.adǣ́4
-.adǽ2
-.ade4
-.ad3es
-.ad3ē2
-.adḗ4
-.adé2
-.ad3ér
-.ad3és
-.ad3ib
-.ad3i4c
-.ad3ie
-.ad3ié
-.adi4m
-.ad5i4n
-.ad3i4q
-.ad3is
-.ad5i4t
-.adi4u
-.ad3i4v
-.ad3ī4
-.adī́4
-.adí4c
-.adí4m
-.ad3í4n
-.ad3í4q
-.ad3ís
-.adí4t
-.ad3í4u
-.ad3í4v
-.ad6ora.
-.ad6orane
-.ad6oraq
-.ad6oraue.
-.ad6orave.
-.ad5ṓro
-.ad5ṓ6rō
-.ad6ó6ra.
-.adó4ro
-.adú2
-.ae2a
-.ae2ă3
-.ae4st
-.ae5te
-.ag2n
-.aī3b
-.aī́3b
-.aí2
-.aí3b
-.am4b3ē
-.am4bi.
-.am4b5i4n
-.am4b5i4q
-.am6b5is.
-.am6b5isn
-.am6b5isq
-.am6b5isu
-.am6b5isv
-.ambi6ue
-.amb6iui.
-.amb6iuin
-.amb6iuiq
-.amb6iuiu
-.amb6iuín
-.amb6iuíq
-.amb6iuíu
-.ambi6ve
-.amb6ivi.
-.amb6ivin
-.amb6iviq
-.amb6iviv
-.amb6ivín
-.amb6ivíq
-.amb6ivív
-.ambī4n
-.ambī́6n
-.am4b5í4n
-.am4bí4q
-.am4b5ís
-.am6bí6ue
-.am6bí6ve
-.am4b3ú
-.an6t5ea.
-.ante5i4
-.ante5í4
-.as4ce
-.as4cé
-.as4ta
-.as4tá
-.as4te
-.as4té
-.as4to
-.as4tō
-.as4tó
-.as6trar
-.as6trat
-.as4trā
-.as6trár
-.as6trás
-.as4tru
-.as4trū
-.ate2
-.atē2
-.a͞e4ă
-.a͞e4s5t
-.a͡e4ă
-.a͡e4s5t
-.á͡e4s5
-.āg2
-.ā́2
-.ā́g2
-.ā́4l
-.ā́4t
-.ăbă2
-.ăbă4u
-.ăbă4v
-.ăbĕ4
-.ăbĕ́4
-.ăbī2
-.ăbī4q
-.ăbī́4
-.ăbĭ2
-.ăb3ĭt
-.ăbĭ́4
-.ăbŏ́4
-.ăd3ā
-.ăd3á
-.ădæ4
-.ădǣ4
-.ădǣ́4
-.ădǽ4
-.ăd3ē2
-.ădḗ4
-.ădĕ4
-.ădĕ́4
-.ăd3ī4
-.ădī́4
-.ăd3ĭē
-.ăd3ĭĕ
-.ăd3ĭī
-.ădĭ4m
-.ăd3ĭ4t
-.ădĭ́4t
-.ăd5ṓ6rō
-.ăd5ṓrŏ
-.ăd3ŭ́
-.ăī3b
-.ăī́3b
-.ăm4b3ē
-.ămbī4q
-.ămbī́6q
-.ăm4b5ŭ́
-.ăs4pĭ
-.ăs4tă
-.ăs4tĭ
-.ăs4tō
-.ăs4trā
-.ăs4trū
-.ắ2
-.ắb5ă4u
-.ắb5ă4v
-.ắb3ĕ4
-.ắbĭ4
-.ắb5ĭt
-.ắb3ŏ
-.ắ4c
-.ắd3ē
-.ắd3ĕ4
-.ắd3ī
-.ắd5ĭē
-.ắd5ĭī
-.ắd5ĭ4t
-.ắ4g
-.ắ4ĭ
-.ắ4l
-.ắ4r
-.ắ4s
-.ắs4tā
-.ắs4tă
-.ắs4tĕ
-.ắs4tō
-.ắ4t
-.áb1
-.ába2
-.áb3a4u
-.áb3a4v
-.áb3e4
-.ábi2
-.áb3is
-.áb3it
-.áb3o
-.ád1
-.áde2
-.ád3es
-.ád3ē
-.ádi2
-.ád3ie
-.ád3is
-.ád3it
-.ád3ī
-.áes3
-.áes5t
-.ág4nit
-.ám4bi.
-.ám4b5is
-.án4ter
-.ás4ta
-.ás4tā
-.ás4te
-.ás4to
-.ás4tō
-.ás4tru
-.æs3t
-.ǣs3t
-.ǣ́2
-.ǣ́4q
-.ǣ́s3
-.ǽs3
-.ba3g
-.ba6iane.
-.ba6iáne.
-.ba4ii
-.ba4iī
-.bā́3
-.bá4iī
-.bi3
-.bĭ1
-.bĭ3ĕ
-.ca2i
-.cá2i
-.cen3s
-.cēn3s
-.ci6sta
-.ci6sté
-.co3i4
-.co3í4
-.com5ēs
-.com5ḗs
-.co4més
-.co4n5i4c
-.co4ní4c
-.cŏ3ĭ
-.cŏm5ēs
-.cŏm5ḗs
-.cŏm3ĕ
-.cŏ4n5ĭ4c
-.cŏ6n5ĭ́6c
-.cŏ́3ĭ
-.cŏ́4m3
-.cŏ́mĭ4
-.cŏ́6n5ĭ6c
-.có3i
-.có4mit
-.cómi6te
-.có4n5i4c
-.de3d
-.de4met
-.des2
-.de5u4ta
-.de5u4tá
-.de5utí
-.dēs2
-.dē3sc
-.dē3sú
-.dḗ3i
-.dḗ5sum
-.dĕ1
-.dĕ3d
-.dĕ3ŏ
-.dé3s2
-.di3gé
-.di4r5e4m
-.di4r5é4m
-.dis6cendam
-.dis6cendas
-.dis6cendám
-.dis6cendás
-.dis6cendi
-.dis6cendí
-.dis6cendo.
-.dis6cendon
-.dis6cendoq
-.dis6cendou
-.dis6cendov
-.dis6cendón
-.dis6cendóq
-.dis6cendóu
-.dis6cendóv
-.dis6céndam
-.dis6céndas
-.dis6cénde
-.dis6céndi
-.dis6céndo.
-.di5s6tau
-.di5s6tav
-.dis4tá
-.di5s4tī
-.dī1
-.dīs4t
-.dĭ5s4tă
-.dĭ5s4tī
-.do3l
-.dó3l
-.ed2
-.ed4i
-.ed4o
-.ed4u
-.ei2
-.er2e
-.ere5x4
-.et3i
-.ex3ā
-.ex3á
-.ex3éq
-.ex3i4
-.ex3ī4
-.exī́4
-.ex3í4
-.ex5ṓr
-.ex3ón
-.ex3u4
-.exū2
-.exū́4
-.exú2
-.ēs3tĭ
-.ḗ2
-.ĕd2
-.ĕd4ĭ
-.ĕt3ĭ
-.ĕx3ā
-.ĕx3ī4
-.ĕxī́4
-.ĕx3ĭ2
-.ĕxĭ́4
-.ĕx5ṓr
-.ĕxū2
-.ĕxū́4
-.ĕx3ŭ
-.ĕ́2
-.ĕ́4c
-.ĕ́4q
-.ĕ́4t
-.ĕ́t3ĭ
-.ĕ́x3ī
-.ĕ́x3ĭ4
-.ĕ́x3ŭ
-.ét3e2
-.ét3i
-.éx3eq
-.éx3i2
-.éx3u
-.gé1
-.hemi3
-.hḗ3
-.hi6ste
-.hi6str
-.hĭ6stĕ
-.ho4s
-.ibe3
-.id3eo
-.id3eō
-.id3í
-.id3ue
-.ie3su
-.ié3su
-.ig2
-.ig3ne
-.ig3ni
-.ig3nī
-.ig3ní
-.in1
-.in3a4
-.in3ā4
-.inā́4
-.iná4
-.in3e4
-.inē2
-.inḗ4
-.in3é2
-.in3i4
-.inī4
-.inī́4
-.in3í4
-.in3o4
-.inó4
-.in3t
-.inte6re6ri
-.inte6re6rí
-.inte6res
-.inte6rés
-.inte6ri.
-.inte6riq
-.inte6ris
-.inte6rí6n
-.inte6rí6q
-.inte6rís
-.inte6rí6t
-.inté6re6ri
-.inté6ri6te
-.inté6ri6ti
-.inté6ri6to.
-.inté6ri6tō
-.inu4d
-.in3ue
-.in3ui
-.in3uī
-.in3uí
-.in3us
-.inū́4
-.inú4d
-.io3s4
-.io5su
-.ió3s2
-.is5ta
-.is5tā
-.is5te
-.is5ti
-.is5tí
-.is3tr
-.ī́2
-.ī́4b
-.ī́4m
-.ī́4n
-.ī́4q
-.ī́4t
-.ĭd3ĕō
-.ĭg2
-.ĭg3nĕ
-.ĭg3nī
-.ĭn1
-.ĭn3ā4
-.ĭnā́4
-.ĭnḗ4
-.ĭnĕ4
-.ĭnĕ́4
-.ĭnī4
-.ĭnī́4
-.ĭn3ĭ2
-.ĭnĭ́4
-.ĭntĕ6rĭt.
-.ĭntĕ6rĭ6tĕ
-.ĭntĕ6rĭtn
-.ĭntĕ6rĭ6tō.
-.ĭntĕ6rĭ6tōn
-.ĭntĕ6rĭ6tōq
-.ĭntĕ6rĭ6tōu
-.ĭntĕ6rĭ6tōv
-.ĭntĕ6rĭ6tṓn
-.ĭntĕ6rĭ6tṓq
-.ĭntĕ6rĭ6tṓu
-.ĭntĕ6rĭ6tṓv
-.ĭntĕ6rĭtq
-.ĭntĕ6rĭtu
-.ĭntĕ6rĭtv
-.ĭntĕ6rĭ́6t
-.ĭntĕ́6rĕ6rĭ
-.ĭntĕ́6rĭ6tĕ
-.ĭntĕ́6rĭ6tō
-.ĭnū́4
-.ĭn3ŭs
-.ĭs5tā
-.ĭs5tă
-.ĭs5tĕ
-.ĭs5tĭ
-.ĭ́2
-.ĭ́d5ĕō
-.ĭ́4n
-.ĭ́n3ĕ4
-.ĭ́n3ĭ4
-.ĭ́n5ŭĕ
-.ĭ́n5ŭī
-.ĭ́n5ŭō
-.íd3eo
-.íd3eō
-.íd3ue
-.ín1
-.ín3e2
-.ín3i2
-.ín3t
-.ín3ui
-.jo3s4
-.jo5su
-.jó3s2
-.li4g5n
-.líg3n
-.lí3t
-.ma3ge
-.magnæ6u
-.magnæ6v
-.magnǣ6u
-.magnǣ6v
-.magnǣ́6u
-.magnǣ́6v
-.magnǽ6u
-.magnǽ6v
-.mă3gĕ
-.măgnæ6u
-.măgnæ6v
-.măgnǣ6u
-.măgnǣ6v
-.măgnǣ́6u
-.măgnǣ́6v
-.măgnǽ6u
-.măgnǽ6v
-.mĕ3ĭ
-.mi6sta
-.ne3q
-.ne3s
-.ne5s4c
-.ne5ute
-.ne5uté
-.ne5u4ti
-.ne3xo
-.ne3xō
-.nḗ3
-.nĕ3xō
-.né3s2
-.né5ute
-.no6ste
-.nŏ6stĕ
-.nu3d
-.nū3d
-.ob3a2
-.obe4r
-.ob3es
-.ob3é2
-.obi2
-.ob3iī
-.ob3i4n
-.ob3iq
-.ob3is
-.obi4u
-.obi4v
-.ob3ī4
-.obī́4
-.obí4
-.ob3ín
-.ob3íq
-.ob3ís
-.obo2
-.ob3ō
-.obó4r
-.ob3u
-.oc4té
-.os3t
-.ṓ2
-.ṓ4l
-.ṓ4s
-.ŏb3ī4
-.ŏbī́4
-.ŏb3ĭī
-.ŏb3ō
-.ŏc4t3ĕ
-.ŏ́2
-.ŏ́b3ĕ
-.ŏ́b3ĭ
-.ŏ́4l
-.ŏ́4p
-.ób3i
-.œ́2
-.pa4r5ui
-.pa4r5uí
-.pā2r3
-.pá4rui
-.pera4
-.pe4r5an
-.per5ar
-.peras5
-.pe4rā
-.per5ār
-.pe6ráeq
-.peræ4q
-.perǣ́4
-.per5ǣ́q
-.pe4rǽ4q
-.pere4
-.per5em
-.pe4r5es
-.pe4r5ē4
-.perḗ4
-.peré4
-.pe4r5ém
-.pe4r5és
-.pe4ri.
-.pe6riens
-.per6iere.
-.per6ierene
-.per6iereq
-.per6iereu
-.per6ierev
-.per6ieris
-.per6ierís
-.per6iēn
-.per6iēre
-.per6iḗn
-.per6iḗre
-.per6iére
-.pe5rille
-.pe5r6illi
-.pe5rillí
-.pe5rimin
-.per6imini
-.per6iminí
-.per5imu
-.pe5r6imur
-.peri6mus
-.pe5rimúr
-.per5i6mús
-.peri4n
-.per5ine
-.pe4r5i4q
-.per6i6re.
-.peri6rem.
-.pe5r6iremi
-.peri6remn
-.peri6remq
-.peri6remue
-.pe5r6iremur
-.peri6remus
-.pe5r6iremúr
-.peri6remús
-.peri6remv
-.per6i6rene
-.peri6rent.
-.peri6rentn
-.peri6rentq
-.peri6rentue
-.pe5r6irentur
-.pe5r6irentú
-.peri6rentv
-.per6i6req
-.pe5r6irer
-.peri6res
-.peri6ret
-.per6iretur
-.per6iretú
-.per6i6reu
-.per6i6rev
-.pe5r6irémi
-.peri6rémn
-.peri6rémq
-.peri6rémue
-.pe5r6irémur
-.peri6rémus
-.peri6rémv
-.peri6réntn
-.peri6réntq
-.peri6réntue
-.pe5r6iréntur
-.peri6réntv
-.pe5r6irér
-.peri6rés
-.peri6rét
-.per6irétur
-.pe5r6iri
-.pe5r6irí
-.pe6ris.
-.pe6risn
-.pe6risq
-.pe6r5isse.
-.pe6r5issem
-.pe6r5issen
-.pe6r5isseq
-.pe6r5isses
-.pe6r5isset
-.pe6r5isseue
-.pe6r5issev
-.pe6r5issém
-.pe6r5issén
-.pe6r5issés
-.pe6r5issét
-.pe6r5isti
-.pe6r5istí
-.pe6risu
-.pe6risv
-.per5it.
-.peri6ta
-.peri6tā
-.peri6tá
-.per6i6tæ
-.per6i6tǽ
-.per6i6te
-.peri6ti.
-.peri6tin
-.peri6tiq
-.peri6tis.
-.peri6tisn
-.peri6tisq
-.peri6tisu
-.peri6tisv
-.peri6tiue
-.peri6tiv
-.peri6tín
-.peri6tíq
-.peri6tísn
-.peri6tísq
-.peri6tísu
-.peri6tísv
-.peri6tíu
-.peri6tív
-.per5itn
-.per6i6to.
-.per6i6ton
-.per6i6toq
-.per6itor
-.pe5ritor.
-.pe5ritorn
-.pe5ritorq
-.pe5ritorue
-.peri6torum
-.peri6torú
-.pe5ritorv
-.per6i6tos
-.peri6tot
-.per6i6tou
-.per6i6tov
-.per6i6tón
-.per6i6tóq
-.per6itór
-.pe5ritórn
-.pe5ritórq
-.pe5ritórue
-.peri6tórum
-.pe5ritórv
-.per6i6tós
-.peri6tót
-.per6i6tóu
-.per6i6tóv
-.per5itq
-.per6i6tu
-.per7itue
-.peri6tū
-.per6i6tú
-.per5itv
-.peri4u
-.per7iue
-.per5i4v
-.pe4rī.
-.pe6r5ī6mus
-.pe6r5ī6mús
-.per5ī4n
-.pe4r5ī4q
-.pe6r6ī6re.
-.pe6rī6rem
-.pe6r6ī6rene
-.pe6rī6rent.
-.pe6rī6rentn
-.pe6rī6rentq
-.pe6rī6rentue
-.per6īrentur
-.per6īrentú
-.pe6rī6rentv
-.pe6r6ī6req
-.per6īrer
-.pe6rī6ret
-.pe6r6ī6reu
-.pe6r6ī6rev
-.per6īrēmi
-.per6īrēmur
-.pe6rī6rēmus
-.per6īrēmúr
-.pe6rī6rēmús
-.per6īrēr
-.pe6rī6rēs
-.pe6rī6rēt
-.per6īrētu
-.per6īrētú
-.per6īrḗmi
-.per6īrḗmur
-.pe6rī6rḗmus
-.per6īrḗr
-.pe6rī6rḗs
-.pe6rī6rḗt
-.per6īrḗtu
-.pe6rī6rém
-.pe6rī6réntn
-.pe6rī6réntq
-.pe6rī6réntue
-.per6īréntur
-.pe6rī6réntv
-.per6īrér
-.pe6rī6rét
-.per6īri
-.per6īrī
-.per6īrí
-.pe4r5īs
-.pe6rī6te
-.pe6r5ī6tis.
-.pe6r5ī6tisn
-.pe6r5ī6tisq
-.pe6r5ī6tisu
-.pe6r5ī6tisv
-.pe6r5ī6tísn
-.pe6r5ī6tísq
-.pe6r5ī6tísu
-.pe6r5ī6tísv
-.pe6rī6tō.
-.pe6rī6tōn
-.pe6rī6tōq
-.pe6r5ī6tōt
-.pe6rī6tōu
-.pe6rī6tōv
-.pe6rī6tṓn
-.pe6rī6tṓq
-.pe6r5ī6tṓt
-.pe6rī6tṓu
-.pe6rī6tṓv
-.pe6rī6tur
-.pe6rī6túr
-.pe4r5ī4u
-.pe4r5ī4v
-.pe6r5ī́6mus
-.pe6r5ī́6n
-.pe6r5ī́6q
-.pe6r6ī́6re.
-.pe6rī́6rem
-.pe6rī́6ren
-.per6ī́rene
-.pe6r6ī́6req
-.per6ī́rer
-.pe6rī́6ret
-.pe6r6ī́6reu
-.pe6r6ī́6rev
-.pe6rī́6rē
-.per6ī́ri
-.per6ī́rī
-.pe6rī́s
-.pe6rī́6te
-.pe6r5ī́6tis
-.pe6rī́6tō.
-.pe6rī́6tur
-.pe6rī́6u
-.pe6rī́6v
-.pe4ríe
-.pe5ríl
-.per6ímin
-.pe6r5í6mus
-.perí4n
-.pe6r5íne
-.pe4r5í4q
-.pe6r6í6re.
-.pe6rí6rem
-.pe6rí6ren
-.per6írene
-.pe6r6í6req
-.per6írer
-.pe6rí6res
-.pe6rí6ret
-.pe6r6í6reu
-.pe6r6í6rev
-.per6íri
-.pe6rísn
-.pe6rísq
-.pe6r5íss
-.pe6r5ísti
-.pe6rísu
-.pe6rísv
-.pe6rí6tan
-.pe6rí6taq
-.pe6rí6tau
-.pe6rí6tav
-.pe6rí6te
-.pe6rí6tis
-.pe6r5ítn
-.pe6rí6to.
-.pe6r5ítq
-.pe6r5ítue
-.pe6rítur
-.pe6r5ítv
-.pe4rí4u
-.pe4rí4v
-.per5os
-.per3ō
-.pe4rór
-.pe4rós
-.pē4nī
-.pḗ3i
-.pĕ4r3ā
-.pĕ4r3ă
-.pĕrăs5
-.pĕ6r5áeq
-.pĕræ4
-.pĕrǣ4
-.pĕrǣ́4
-.pĕr5ǣ́q
-.pĕrǽ4
-.pĕ4r5ǽq
-.pĕ4r5ē4
-.pĕrḗ4
-.pĕ4rĕā
-.pĕ4rĕă
-.pĕ4r5ĕm
-.pĕ4r5ĕō
-.pĕ6r5ĕ́m
-.pĕ4rī.
-.pĕ6r5ī6mŭs
-.pĕ6r5ī6mŭ́s
-.pĕr5ī4n
-.pĕ4r5ī4q
-.pĕ6r5ī6rēmŭs
-.pĕ6r5ī6rēmŭ́s
-.pĕ6r5ī6rēs
-.pĕ6rī6rēt
-.pĕr5īrētĭ
-.pĕ6r5ī6rḗmŭs
-.pĕ6r5ī6rḗs
-.pĕ6rī6rḗt
-.pĕr5īrḗtĭ
-.pĕ6rī6rĕ.
-.pĕ6r5ī6rĕm
-.pĕ6rī6rĕnĕ
-.pĕ6r5ī6rĕnt.
-.pĕ6r5ī6rĕntn
-.pĕ6r5ī6rĕntq
-.pĕ6r5ī6rĕntu
-.pĕ6r5ī6rĕntv
-.pĕ6rī6rĕq
-.pĕ6r5ī6rĕt
-.pĕ6rī6rĕu
-.pĕ6rī6rĕv
-.pĕ6r5ī6rĕ́m
-.pĕ6r5ī6rĕ́ntn
-.pĕ6r5ī6rĕ́ntq
-.pĕ6r5ī6rĕ́ntu
-.pĕ6r5ī6rĕ́ntv
-.pĕ6r5ī6rĕ́t
-.pĕ4r5īs
-.pĕ6rī6tĕ
-.pĕ6r5ī6tĭs.
-.pĕ6r5ī6tĭsn
-.pĕ6r5ī6tĭsq
-.pĕ6r5ī6tĭsu
-.pĕ6r5ī6tĭsv
-.pĕ6r5ī6tĭ́sn
-.pĕ6r5ī6tĭ́sq
-.pĕ6r5ī6tĭ́su
-.pĕ6r5ī6tĭ́sv
-.pĕ6rī6tō.
-.pĕ6rī6tōn
-.pĕ6rī6tōq
-.pĕ6r5ī6tōt
-.pĕ6rī6tōu
-.pĕ6rī6tōv
-.pĕ6rī6tṓn
-.pĕ6rī6tṓq
-.pĕ6r5ī6tṓt
-.pĕ6rī6tṓu
-.pĕ6rī6tṓv
-.pĕ6rī6tŭr
-.pĕ6rī6tŭ́r
-.pĕ4r5ī4u
-.pĕ4r5ī4v
-.pĕ6r5ī́6mŭs
-.pĕ6r5ī́6n
-.pĕ6r5ī́6q
-.pĕ6r5ī́6rē
-.pĕ6rī́6rĕ.
-.pĕ6r5ī́6rĕm
-.pĕ6rī́6rĕn
-.pĕr5ī́rĕnt
-.pĕ6rī́6rĕq
-.pĕ6r5ī́6rĕt
-.pĕ6rī́6rĕu
-.pĕ6rī́6rĕv
-.pĕ6r5ī́s
-.pĕ6rī́6tĕ
-.pĕ6r5ī́6tĭs
-.pĕ6rī́6tō.
-.pĕ6rī́6tŭr
-.pĕ6r5ī́6u
-.pĕ6r5ī́6v
-.pĕ6rĭēn
-.pĕ6rĭērĕ
-.pĕ6r5ĭērŭ
-.pĕ6rĭḗn
-.pĕ6rĭḗrĕ
-.pĕ6r5ĭḗrŭ
-.pĕ6r5ĭĕr
-.pĕ6r5ĭĕ́r
-.pĕ4r5ĭī
-.pĕr5ĭmŭ
-.pĕrĭ4t
-.pĕ6r5ĭt.
-.pĕ6r5ĭtā
-.pĕ6rĭtĕ
-.pĕ6r5ĭtn
-.pĕ6r5ĭtq
-.pĕ6r5ĭtu
-.pĕ6r5ĭtū
-.pĕ6r5ĭtv
-.pĕ6r5ĭ́ĕ
-.pĕ6r5ĭ́t
-.pĕr3ō
-.pĕ́4r5ĕ
-.pĕ́6rĭē
-.pĕ́6r5ĭī
-.pĕ́6r5ĭ6t
-.pé3i
-.pé2r
-.pér3e
-.pér5ii
-.pér5iī
-.pér5i4t
-.pi6str
-.po6te6ris
-.po6te6rís
-.po6tes.
-.po6tesn
-.po6tesq
-.po6tesu
-.po6tesv
-.po4tés
-.pó4tes
-.pule5i
-.pulé3
-.ra3d4
-.radi5c
-.ra3i
-.ra3m
-.ra5ra
-.ra5rá
-.ras5t
-.ra6ste
-.rā6ste
-.rā6stĕ
-.rā́6st
-.rá3i
-.ræ3
-.re1
-.re5dam.
-.re5damq
-.re5damu
-.re5damv
-.re5das
-.red3e4
-.red3ē
-.re4dé
-.re4di.
-.re4d5ie
-.re4d5iē
-.re4d5ié
-.re4d5ií
-.re4d5i4m
-.red5i4n
-.re4d5i4q
-.re6dis.
-.re6disn
-.re6disq
-.red5iss
-.red5ist
-.re6disu
-.re6disv
-.re4d5i4t
-.re4di6u
-.red5iue
-.redi6v
-.red5ive
-.re4dī.
-.red5ī4m
-.re4d5ī4n
-.re4d5ī4q
-.red5ī4t
-.redī6u
-.redī6v
-.red5ī́6m
-.re6d5ī́6n
-.re6d5ī́6q
-.red5ī́s
-.red5ī́6t
-.re6d5ī́6u
-.re6d5ī́6v
-.re4d5í4m
-.re4d5í4n
-.re4d5í4q
-.re6dísn
-.re6dísq
-.red5íss
-.red5íst
-.re6dísu
-.re6dísv
-.re4d5í4t
-.re4d5í4u
-.re4d5í4v
-.re3ō
-.re3ó
-.res4tō
-.rex2
-.re5xi
-.rĕ1
-.rĕd3ē
-.rĕ4dĕ
-.rĕ4dī.
-.rĕd5ī4m
-.rĕ4d5ī4n
-.rĕ4d5ī4q
-.rĕd5ī4t
-.rĕdī6u
-.rĕdī6v
-.rĕd5ī́6m
-.rĕ6d5ī́6n
-.rĕ6d5ī́6q
-.rĕd5ī́s
-.rĕd5ī́6t
-.rĕ6d5ī́6u
-.rĕ6d5ī́6v
-.rĕdĭ4
-.rĕ4d5ĭē
-.rĕ4d5ĭĕ
-.rĕd5ĭm
-.rĕ4d5ĭt
-.rĕdĭ́4
-.rĕd5ĭ́t
-.rĕ3ō
-.rĕ5s4tō
-.rĕ́4d5ĭ4
-.rĕ́3q
-.rĕ́s6tē
-.rĕ́s6tĕm
-.rĕ́5s6tō
-.ré4d3i4
-.rés6tem
-.rés6tes
-.rés4tē
-.ré5s4to
-.ré5s4tō
-.ré5str
-.ris2
-.ro3b2
-.ro3d4
-.ro5di
-.rodi5u
-.rodi5v
-.ro4s3t
-.rō3d4
-.rō5dī
-.rōdī5u
-.rōdī5v
-.ru3r
-.ru4s
-.sa3mu
-.sá3mu
-.se3i
-.se6mis.
-.se6misn
-.se6misq
-.se6misue
-.se6misv
-.se6mísn
-.se6mísq
-.se6mísu
-.se6mísv
-.se3ps
-.sē3i
-.sē3p2
-.sḗ3i
-.sḗ3p4
-.sé3i
-.sé4mis
-.sé3ps
-.sér4ui
-.sér4uī
-.si4lu
-.sil5ui
-.sil5uī
-.sil5uí
-.si6str
-.sí4lui
-.sí4luī
-.supe6ris
-.supé6r5is
-.te4ia
-.te4iá
-.te4ie
-.te4ii
-.te4ií
-.te4io
-.te4ió
-.te4iú
-.te3n4u
-.te3ra
-.te5r4e
-.te5rim
-.te5rin
-.te5r6it
-.teri5tur
-.te5ri5ue
-.te5ri5v
-.te5rī
-.terī5u
-.terī5v
-.te3ro
-.te3rō
-.te5runt
-.tē2i
-.tĕ5rĕ
-.tĕrĕ5r
-.tĕ5rī
-.tĕrī5u
-.tĕrī5v
-.tĕ3rŭ
-.té3n4u
-.té5r4e
-.té3rī
-.tran5s6ue.
-.trān5s6ue.
-.trān5s6uĕ.
-.trā́n5s6ue.
-.trā́n5s6uĕ.
-.trán5s6ue.
-.tro4ii
-.tro4ií
-.tro4i5q
-.tro6iue
-.tro4iv
-.tro4í
-.troí5u
-.troí5v
-.ub2
-.ubī3q
-.ubī́3
-.ueni4
-.ue4ni.
-.ue6niens
-.ue6n5ier
-.ue6niéns
-.ue6n5iér
-.ue4nim
-.ue4nin
-.ue4niq
-.ue4nir
-.ue4nis
-.ue4nit
-.ue6niue
-.ue4ní4
-.uen5íe
-.ue6ste
-.uē4nit
-.uē4nī4
-.uēn5īs
-.uēnī́4
-.uēn5ī́s
-.uē4nĭt
-.uē6nĭ́t
-.uē4nít
-.uḗ6nit
-.uḗ4n5ī
-.uḗ6nĭt
-.uĕ6stĕ
-.ué4ni.
-.ué6niens
-.ué4nis
-.ué4nit
-.uī4cĕ́
-.ul3ui
-.ul3uī
-.ul3uí
-.um2e
-.un3et
-.uol6uere.
-.uol6uerene
-.uol6uereq
-.uol6uereu
-.uol6uēre
-.uol6uēru
-.uol6uērú
-.uol6uḗre
-.uol6uḗru
-.uol6uit.
-.uol6uitn
-.uol6uitq
-.uol6uitue
-.uo6ste
-.uŏ6stĕ
-.uól6ui.
-.uól6uit.
-.uól6uī.
-.ur1
-.uu2
-.ūn5ắn
-.ū́2
-.ū́4d
-.ū́4n
-.ū́4s
-.ū́4t
-.ŭb2
-.ŭ́4n
-.ŭ́4t
-.úb2
-.veni4
-.ve4ni.
-.ve6niens
-.ve6n5ier
-.ve6niéns
-.ve6n5iér
-.ve4nim
-.ve4nin
-.ve4niq
-.ve4nir
-.ve4nis
-.ve4nit
-.ve4niv
-.ve4ní4
-.ven5íe
-.ve6ste
-.vē4nit
-.vē4nī4
-.vēn5īs
-.vēnī́4
-.vēn5ī́s
-.vē4nĭt
-.vē6nĭ́t
-.vē4nít
-.vḗ6nit
-.vḗ4n5ī
-.vḗ6nĭt
-.vĕ6stĕ
-.vé4ni.
-.vé6niens
-.vé4nis
-.vé4nit
-.vī4cĕ́
-.vo6ste
-.vŏ6stĕ
-a1ā2
-a3āt
-a3ā́2
-a1á2
-a3át
-2aba
-aba3i
-ab2a3q
-aba6ste
-ab3aui
-ab3auí
-ab3av
-2abá
-abá3i
-abæ3
-a2beú
-2abé
-ab2ia
-ab2iá
-a2b3i2b
-ab3ice
-a2bie
-ab4ies
-ab4iet
-a2biē
-ab4iēs
-ab4iḗs
-a2bié
-ab4iés
-ab4iét
-a2bii
-a2biī
-ab3iī.
-ab3iīn
-ab3iīq
-ab3iīu
-ab3iīv
-ab5iī́n
-ab5iī́q
-ab5iī́u
-ab5iī́v
-a2b3ií
-2abil
-2abim
-ab3iss
-ab3ist
-2abit
-abi4tot
-abi4tót
-1abī
-abī2m
-a2b3í2b
-a2bíe
-ab3íer
-a2bíi
-ab3ímu
-ab3íss
-ab3íst
-ab3íto
-1abj
-1a2bl
-1abn
-2abo
-2abó
-abó2l
-1ab1r
-ab3rā
-ab3rá
-1abs
-ab2sq
-ab4stem
-ab4stēm
-ab6stḗm
-ab4stén
-ab4sti
-abs5tin
-ab4stó
-abs3tr
-ab4stru
-ab4strū
-ab4strú
-4abunt
-ab3u4s
-abu2t
-ab1ū2
-abū4s
-abū́2
-2abú
-5abúndat
-5a4b5úndā
-5abúndem
-5abúndes
-5abúndet
-5a4b5úndē
-5a4b5úndō
-abú2t
-a3ca
-a3cá
-a3cæ
-a3cǽ
-1acc
-2a3ce.
-2a3cen
-2a3ceq
-2a3ceu
-2a3cev
-2aci
-a3ci.
-a3ciq
-a3cis
-a3ciu
-a3civ
-2a3cī
-2ací
-a3cl
-2a3co
-aco3ni
-2a3cō
-2a3có
-2acum
-2acus
-a2cut
-1a2c2ū
-2acúm
-2acús
-a2cút
-ad1
-ad2ad
-ada4ma.
-ad6amans
-ada6mante.
-ada6mantem
-ada6manten
-ada6manteq
-ada6mantes
-ada6manteue
-ada6mantev
-ada6mantēs
-ada6mantḗs
-ad6amanté
-ada6mantém
-ada6mantés
-ada6manti
-ad6amanti.
-ad6amantib
-ad6amantin
-ad6amantiq
-ad6amantis
-ad6amantiu
-ad6amantiú
-ad6amantiv
-ad6a6mantī
-ada6mantí
-ad6amantín
-ad6amantíq
-ad6amantís
-ad6amantíu
-ad6amantív
-ad6amas.
-ad6amasn
-ad6amasq
-ad6amasu
-ad6amasv
-ad6amāns
-ad6amās.
-ad6amāsn
-ad6amāsq
-ad6amāsu
-ad6amāsv
-ad6amā́ns
-ad6amā́sn
-ad6amā́sq
-ad6amā́su
-ad6amā́sv
-ad6amáns
-ad6amánte
-ad6amántē
-ad6amánti.
-ad6amántib
-ad6amántis
-ad6amántiu
-ad6amántī
-ad6amásn
-ad6amásq
-ad6amásu
-ad6amásv
-ad2an
-a2dap
-ada2q
-ad2ar
-ad3ác
-adæ2
-adǣ2
-1add
-ade4d
-ade2g
-ade2q
-ade4s
-adē2d
-adē2g
-adē4s
-adḗ4d
-adḗ4g
-adḗ4s
-adé2d
-adé2g
-adé2s
-1adh
-ad3iác
-adi2c
-adi2g
-adi4mí
-adi2r
-adi4tā
-adi4tǣ
-adi4tī
-adi4tū
-adī2m
-adī2r
-adī2t
-adī́4m
-adī́4r
-adī́4t
-adí2b
-adí2g
-adí4mu
-adí2r
-ad3íss
-ad3íst
-adí4to
-adí4tu
-1adj
-1adn
-a2do2
-a3do.
-ad4oc
-a3don
-a3doq
-a3dou
-a3dov
-adō2
-ad4ōc
-ad5ṓ6rant
-ad5ṓ6rat
-ad5ṓ4rā
-ad5ṓ6rem
-ad5ṓ6rent
-ad5ṓ6rer
-ad5ṓ6ret
-ad5ṓ4rē
-adṓ6ror
-adó6rans
-adó6rant
-adó4ras
-adó4rat
-adó4rem
-adó6rent
-adó4rer
-adó4res
-adó4ret
-adó4ria
-adó4ror
-1adp
-1ads
-adu2
-a2dul
-ad3u4r
-ad3us
-adū2
-adū́2
-a2dú2l
-adú2r
-ae1
-2ae.
-2aea
-aea2b3
-a3eamú
-a3eant
-2aeā
-a3eām
-a3eā́m
-2aeă
-aeắ2
-2aeá
-ae3ác
-a3eánt
-ae3áp
-ae4cue
-1ae3d2
-aed4o
-2aee
-ae2eo
-ae2eō
-ae2eó
-ae3es
-ae2eu
-2aeĕ
-aeé2r
-ae3és
-ae3g2
-2aei2
-ae3ic
-2ae2ī
-2aeí
-2aen
-aení3t
-2ae2o
-2ae2ō
-2aeó
-aepo6tés
-aepó6tes
-ae3q
-4aeque.
-4aequĕ.
-ae3r
-aer4i
-ae4rn
-ae4rq
-ae4rv
-ae5sci
-ae4scu
-ae4scú
-ae4spō
-ae2sq
-aes4te
-aesti5t4
-aestí5t4
-aetere6ri
-aete6re6rí
-aete6res
-aete6rés
-aete6ri.
-aeter5ii
-aeter5ií
-aeteri6mu
-aeteri6mú
-aeteri6n
-aete6ri6q
-aeteri6ti
-aeteri6tí
-aeteri6to
-aeteri6tó
-aeteri6tú
-aete4r5ī4
-aeterī́6
-aete6r5í6mu
-aete6rí6n
-aete6rí6q
-aete6rí6t
-aeter5íti
-aete6rí6u
-aete6rí6v
-a3e2tē
-ae5tĕr
-aeté6r5es
-aeté6ri.
-aeté6r5ii
-aeté6rite
-aeté6ri6ti
-ae2un
-ae3ut
-2aeŭ
-2aeú
-aex2
-ae2xu
-aé2ru
-1af
-afe4r
-afé2
-ag2a
-a3gae
-a3ga͞
-a3ga͡
-a3gā.
-a3gān
-a3gāq
-a3gāu
-a3gāv
-a3gáe
-a3gál
-a3g2æ3
-a3g2ǣ
-a2geb
-a2ger
-a2get
-1a2gē
-a3gē.
-a3gēq
-a3gēu
-a3gēv
-a2géb
-a2gét
-a2gim
-agi6ste
-agi6str
-a2gím
-a2gít
-a2gn
-ag3ne
-ag3ni.
-ag3nin
-ag3niq
-ag3nis
-ag3niu
-ag3niv
-ag3nī
-ag3nín
-ag3níq
-ag3nís
-ag3níu
-ag3nív
-ag3no.
-ag5norum
-ag5norúm
-ag5nos.
-ag5nosn
-ag5nosq
-ag5nosu
-ag5nosv
-ag5noue.
-ag5nove.
-ag3nō
-ag3nón
-ag3nóq
-ag5nórum
-ag5nósn
-ag5nósq
-ag5nósu
-ag5nósv
-ag5nóue.
-ag5nóve.
-ag3nu
-ag3nú
-a3gri
-a3grī
-a3grí
-a2gun
-a2gún
-a1h
-ai2a
-aiad2
-ai4an
-ai2á
-a1ib
-a1ie
-a1i2i
-a1iī
-a2i3m
-ai4mn
-ai4mq
-ai4mv
-ai2nu
-aio2s
-a1iō
-a1is
-a1it
-a1iu
-a1ī2b
-aīn3
-aī2nu
-a1ī2r
-a1īs
-aī́2b
-aī́2r
-aī́2t
-a1í2b
-a1íi
-a2í3me
-a1í2r
-a1í2t
-a3la
-alae2
-a3lá
-alæ2
-alǣ2
-2a3le
-ale2i
-alē2i
-2a3lé
-a3li.
-a3lia
-a3lib
-a3lii
-a3lií
-a3lin
-a3lio
-a3liō
-a3lió
-a3liq
-a3lis
-a3lit
-a3liu
-a3liú
-a3liv
-2a3lī
-2a3lí
-2alu
-a2l3ua
-a2luā
-a2l3uá
-a2l3uæ
-a2luǣ
-a2l3uǽ
-al3ue.
-al3uen
-al3ueq
-al3ueu
-al3uin
-al6uine.
-a4l5uis.
-a4l5uisn
-a4l5uisq
-a4l5uisu
-al3uīs
-al5uī́s
-a4l5uísn
-a4l5uísq
-a4l5uísu
-a3l4um
-al3uó
-a3l4us
-alu6ste
-a3l4ut
-al3uu
-al3uú
-alū6ste
-2alú
-2am.
-am2a
-4amantē
-6amantéa
-6amantéæ
-6amantée
-6amantéi
-6amantéo
-6amantéu
-a4mantō
-1a2mā
-1amb
-am2be
-amb3és
-am4b5i4mu
-am4b5i4mú
-am4b5it.
-am6b5i6te.
-am6b5i6ten
-am6b5i6teq
-am6b5i6teu
-am6b5i6tev
-ambi4ti
-am4b5i4tí
-am4b5itn
-am4bi4to
-am4b5i4tó
-am4b5itq
-am6b5itue
-am4bitú
-am4b5itv
-am6bi6ui.
-am6bi6vi.
-am4bít
-am4b3u4r
-am4b3us
-ambūbā6i
-ambūbē6i
-am4bū4r
-am4b3ū́4
-am4b3ú4r
-am2e
-ame3g
-am4es
-ame3sæ
-ame3sǽ
-am2ē
-am2é
-am4és
-amé3sa
-am2i
-3a2mic
-2amin
-ami4s3
-ami6ste
-ami6str
-3a2míc
-2amm
-2amn
-3amnæ
-3amnǣ
-3amnǽ
-1amo
-a2móe
-1amœ
-1amp
-2amq
-2a1mu
-am4uel
-am2uē
-am2ué
-a2mui
-a2muī
-a2m3uí
-a3mur
-a3mus
-2a3mú
-2amv
-2an2a
-an2ā
-2aná
-2anæ
-2anǽ
-1anc
-an2cu
-2and
-ande4s3
-2ane
-a3nē
-1anh
-1ani
-a2nim
-2anī
-3a2ním
-2a3n2o
-ano3p
-2anō
-2a3nó
-2ans1
-an2sa2
-ans3ab3
-ansabi4
-ansabí4
-an4sá4b3
-an4s3ci
-an4scí
-an4sea
-an4seá
-an4seo
-an4seó
-an4si4b
-an4sig
-ansi4mi
-an4si4t
-ansi4u
-an4si4v
-an4sí4b
-an4síe
-an4síg
-an4sí4m
-an4sí4t
-ansí4ui
-ansí4vi
-an4sn
-an2sp
-an4sq
-ans3t
-an4sv
-2ant.
-ante5re
-an4t5ero
-an4t5erō
-an4t5e4ró
-an5tes
-antes4t
-ante5stāti
-ante5stā́ti
-ante5stem.
-ante5stemn
-ante5stemq
-ante5stemue
-ante5stemv
-ante5stes
-ante5stēs
-ante5stḗs
-ante5stémn
-ante5stémq
-ante5stémue
-ante5stémv
-ante5stés
-anté5ii
-antés4t
-anté5stem
-anté5stes
-anté5stē
-2antn
-2antq
-2antu
-2antú
-2antv
-2a1n2u
-a2n3ue
-an2ū
-2anú
-ao1n
-a2one
-ao3ni
-ao2ny
-ao2ný
-a1or
-aō2ny
-aō2ný
-a3ṓ4ny
-a3ó2ny
-aó1r
-1ape1
-ape2i
-ape3r4e
-aper4ē
-aper4i
-ape3r4ī
-aper4í
-aperí5tur
-aper4u
-2aph
-a3pi
-apis3
-api6str
-a3pí
-a2pn
-apo5str
-apo4su
-1apó
-após3
-1app
-appár4
-apule4
-aput3
-a3pú
-a2qua
-a2quā
-a2quá
-a3que.
-a2quē
-a2quo
-a2quō
-a2quó
-a1r
-2ar.
-ar2a
-arab2
-1arā
-2arám
-ardē2
-ar2e
-2are.
-are2i
-2aren
-2areq
-2arer
-3a4resc
-2areu
-2arev
-arē2i
-a3rēu
-a3rēv
-2aré
-3a4résc
-2ar2i
-3arid
-ari5do
-ari3ni
-2arí
-3aríd
-1arm
-2arn
-arpē4i
-2arq
-ar2sp
-3a2r3ua
-3a2r3uā
-3a2r3uá
-ar3uæ
-ar3uǣ
-ar3uǽ
-ar3ue.
-a4r3uen
-a4r3ueq
-ar4uer
-a4r3ueu
-ar4ui.
-ar4uin
-ar4uiq
-ar4uis
-ar5uis.
-ar5uisn
-ar5uisq
-ar5uisu
-ar4uiu
-ar3uī
-ar5uísn
-ar5uísq
-ar5uísu
-2a3rum
-2a3run
-a2r3uo
-a2r3uō
-a2r3uó
-a3rus
-aru3sp
-a2r3uu
-a2r3uú
-2a3rú
-arú3sp
-2arv
-3arva
-3arvā
-3arvá
-2as.
-2asca
-2ascá
-as6cendā
-as6cende
-as6cendī
-as6cendō
-as2cē
-as6céndā
-as6céndī
-as6céndō
-2as3ci
-2ascí
-2asco
-2ascó
-a3scr
-as4cri
-2ascu
-2ascú
-a3s2e
-ase2i
-as4er
-asē2i
-a3sé
-a3s2i
-a3sí
-2asn
-1asp
-as5per.
-as5pera
-as5perā
-as5perá
-as5peræ
-as5perǣ
-as5perǽ
-as5pere
-as5perē
-as5peré
-as5pe5ri
-as5pe5r4ī
-as5per4í
-as5perne.
-as5pero
-as5perō
-as5peró
-as5perq
-as5peru
-as5perú
-as5perv
-a4s3pē
-as5péra
-as6pérna
-as5pérq
-as5péru
-as5pérv
-a4spi
-as3pis
-a4s3pī
-a4spí
-as3pís
-as3po
-as3pō
-as3pó
-as3pum
-as3púm
-2as3q
-2ass
-as2tā
-as5te.
-as5teq
-as4ter
-as5teu
-as5tev
-as2tē
-4a4s3ti.
-4a4s3tin
-4a4s3tiq
-4a4stis
-4a4stiu
-4a4s3tiv
-2as3tí
-a4stín
-a4stíq
-a4stís
-3as4tít
-a4stíu
-a4stív
-as3to
-2astr
-as4tras
-as4trau
-as5traue.
-as4trav
-as5trave.
-as4trát
-as4tráu
-as4tráv
-as4trid
-as4tríd
-as5trum
-as4trúe
-2asu
-a3s2ua
-a4s3ue
-as3uis
-as3uís
-2asv
-2at
-at3a4g
-ata5str
-a2t3á4g
-ate4ie
-ate4io
-ate4ió
-ate4iú
-ate2ī
-ate3r4a
-ate3rǣ
-ate5re
-ate5ré
-ate3ri
-ateri5u
-ateri5v
-ate5rī
-aterī5u
-aterī5v
-ate3ro
-ate3rō
-a3ti
-ati4s
-atis5t
-ati6sta
-a3tí
-ato2i
-ató2i
-1att
-a3tur
-a3tú
-a1u
-au3a͞
-a2u1ǣ2
-au3d2
-2a3ue
-2a3ué
-1aug
-2aui
-2auí
-a2ul
-a2u1m
-a2un
-aupe5re
-aupe5ri
-auperi5n
-auperi5q
-auperi5ue
-auperi5v
-aupe5r4ī
-auperī5n
-auperī5q
-auperī5u
-auperī5v
-a2u1r
-a2ut
-1auu
-a2ux
-au2xu
-2av
-av3a͞
-a2v1ǣ
-a3ve
-a3vé
-1avu
-ax2
-ax4eu
-a2xia
-a2xiá
-a2xiæ
-a2xiǽ
-a2xié
-a2xii
-a2xií
-a2xio
-a2xió
-a2xiú
-a2xía
-a2xíe
-ax3ue
-ax4us
-a2͞
-4a͞e.
-2a͞ea
-2a͞eā
-2a͞eă
-2a͞eá
-2a͞eī
-4a͞en
-6a͞eque.
-6a͞equĕ.
-a͞u6ste
-a͞u6stĕ
-4á͞ea
-4á͞eā
-4á͞eă
-4á͞eī
-4á͞en
-a2͡
-4a͡e.
-2a͡ea
-2a͡eā
-2a͡eă
-2a͡eá
-2a͡ei
-2a͡eī
-2a͡eí
-4a͡en
-6a͡eque.
-6a͡equĕ.
-a͡ete6res
-a͡ete6rés
-a͡eté6r5es
-a͡u4st
-a͡u6ste
-a͡u6stĕ
-4á͡ea
-4á͡eā
-4á͡eă
-4á͡ei
-4á͡eī
-4á͡en
-6á͡eque.
-2āb2
-āba2
-ābá2
-ābī3u
-ābī3v
-ābo2
-āb4un
-2ācĕ
-ācé2
-2ācī
-2ācĭ
-1ā2cr
-1āct
-ā2c3ue
-āda2
-ādá2
-ādē2s
-ā3do2
-ād4or
-ādó2
-āe1
-āe3r
-āē2
-āēr3
-āḗ2
-āĕ1
-āĕ3r
-āĕr4ĕ
-āg2a
-ā2gā
-ā2gă
-ā3g2æ3
-ā3g2ǣ
-ā2ge
-āge2r
-ā2gĕ
-ā2gé2
-ā2gn
-ā2go2
-ā2gŏ
-ā2gó
-ā1i
-ā2ia.
-āiad2
-ā2iam
-ā2ian
-ā2iaq
-ā2iau
-ā2iav
-āi2ā
-ā4iāque
-ā4iāue
-ā4iāve
-ā6iā́que
-ā4iā́ue
-ā4iā́ve
-ā2iám
-ā2id
-ā2ien
-ā4iḗne
-ā6iḗque
-ā4iḗue
-ā4iḗve
-ā2iī.
-ā4iīne
-ā4iīque
-ā4iīue
-ā4iīve
-ā4iī́ne
-ā6iī́que
-ā4iī́ue
-ā4iī́ve
-ā2io
-ā2iō.
-ā4iōne
-ā4iōque
-ā4iōru
-ā4iōrú
-ā4iōs.
-ā4iōsne
-ā6iōsque
-ā4iōsue
-ā4iōsve
-ā4iōue
-ā4iōve
-ā4iṓne
-ā6iṓque
-ā4iṓru
-ā6iṓsne
-ā6iṓsque
-ā6iṓsue
-ā6iṓsve
-ā4iṓue
-ā4iṓve
-ā2ió
-ā2is
-ā2ium
-ā2ius
-ā2iús
-ā1ĭc
-ā2íe
-2āl
-āle2r
-ā3li
-ālo2
-2ā1m2
-āme4r3
-āmĭ́5c
-āmo2
-ā3na
-ā3n2ā
-ā3nă
-ā3ná
-ā3næ
-ā3nǣ
-ā3nǽ
-ā3ne
-āne2r
-ā3nē.
-ā3nēn
-ā3nēq
-ā3nēu
-ā3nēv
-ā3n2ĕ
-āné2
-āno2
-ā3nō
-2āns
-ān2s3a2
-ānsab3
-ān2să
-ānsá2
-ān4s3áb3
-ān4scī
-ān4s3ea
-ān4s3eā
-ān4s3eá
-ān4s3eo
-ān4s3eō
-ān4s3eó
-ān4s3ĕā
-ān4s3ĕă
-ān4s3ĕō
-ān4s3ĕŏ
-ān4s3i4b
-ān4sig
-ān4s3iī
-ān4s3i4t
-ān2s3ī2
-ānsī́4m
-ānsī́4t
-ān4s3ĭ4b
-āns3ĭē
-ān4sĭg
-ān4s3ĭī
-ān4s3ĭ4t
-āns5ĭ́4b
-ān4s5ĭ́ĕ
-ān4s5ĭ́g
-ān4s3í4b
-ān4síe
-ān4síg
-ānsí4t
-āns5íta
-āns5íte
-āns5íti
-ān2sp
-ān4s3t
-ā1nu
-ā2n3ue
-ā3nus
-ā3nŭ
-ā3nú
-ā1ō
-āpē2
-ā3pi
-ā3pĭ
-ā3p2t
-2āq
-ā1r
-2āra
-2ārā
-2ārá
-2ā3r2e
-ā3rē
-ārē2i
-2ārēm
-2ārēr
-4ārēs.
-3ā4rēsc
-4ārēsn
-4ārēsq
-4ārēsu
-4ārēsv
-2ārēt
-2ārḗ
-5ā4rḗsc
-2ā3r2ĕ
-2āré2
-2āria
-2āriā
-2āriá
-2āriæ
-2āriǣ
-2āriǽ
-ā2rid
-āri5dō
-2ārie
-2āriē
-2āriī
-2ārim
-2ārin
-2āriō
-2āris
-2ārit
-2āriu
-2āriú
-2ārī
-2ārĭ
-3ā2rĭd
-ārĭ5dō
-3ā4rĭ́d
-2ārí
-3ā2ríd
-āro2
-2ārō
-āró2
-ār2s3p
-ār2u
-ār3ue.
-2ārum
-2ārun
-2ārŭ
-ār4ŭn
-2ārú
-2ās
-ās2ca
-ās2că
-ās3cī
-ās2i
-āsi2n
-āso2
-ā2s3q
-ās5ter
-ās5tĕr
-ā2s3ti
-ā2s3tī
-ā2s3tĭ
-ā2s3tí
-ā2s3ue
-ā2s3uĕ
-2āt
-āté2
-āto2
-ātō2i
-ātó2
-2ā1u2
-2āv
-āx2
-ā2x3u
-2ā2́
-ā́b2
-ā́4crĕ
-ā́4crĭ
-3ā́ctē
-3ā́cti
-ā́2f
-ā́2go
-ā́2gŏ
-ā́3ici
-ā́3iul
-ā́3ĭcĭ
-ā́3lu
-ā́1m2
-ā́n4s5ea
-ā́n4s5eā
-ā́n4s5eo
-ā́n4s5eō
-ā́n4s5ĕā
-ā́n4s5ĕă
-ā́n4s5ĕō
-ā́n4s5ĕŏ
-ā́n4s5iī
-ā́n4s5i4t
-ā́n4s5ĭī
-ā́n4s5ĭ4t
-ā́3p2t
-ā́3rĕ
-3ā́4rid
-3ā́4rĭd
-ā́r4uī
-ā́5s4trŭ
-ă1ā2
-ă3āt
-ă3ā́2
-ăb1
-ăb2a
-2ăbă
-ăb2ăc
-ăbă4l
-ăb2ăq
-ăbă6stĕ
-ăb2ắ
-ăb3ắl
-ăb2á
-ăbæ3
-ăb2e
-2ăbē
-ăb2ēs
-ă2bi
-ăbī2m
-ăb4ĭēs
-ăb4ĭḗs
-ăb3ĭī.
-ăb3ĭīn
-ăb3ĭīq
-ăb3ĭīu
-ăb3ĭīv
-ăb5ĭī́n
-ăb5ĭī́q
-ăb5ĭī́u
-ăb5ĭī́v
-ăbĭ́4g
-ă2bl
-ăbŏ2
-ăbŏ3lŭ
-ăbŏ́2
-ăb3r
-ăb4ră
-ăb2sq
-ăb4stēm
-ăb6stḗm
-ăb4stĭ
-ăbs3tr
-ăb4strū
-ăb4strŭ
-ăb4stŭ
-ăb2su
-ăbū2
-ăbū́4
-ă2bŭ
-ă3bŭm
-2ăca
-2ăcā
-2ăcă
-2ăcá
-2ăcæ
-2ăcǣ
-2ăcǽ
-1ăcc
-2ăcē
-ă3cĕ.
-ă3cĕn
-ă3cĕq
-ă3cĕu
-ă3cĕv
-2ă3cī
-2ăcĭ
-2ă3cō
-ă2cu
-1ă2c2ū
-2ăcŭm
-2ăcŭs
-ă3cŭ́m
-ăd1
-ădă2
-ăd2ăd
-ăd6ămāns
-ăd6ămās.
-ăd6ămāsn
-ăd6ămāsq
-ăd6ămāsu
-ăd6ămāsv
-ăd6ămā́ns
-ăd6ămā́sn
-ăd6ămā́sq
-ăd6ămā́su
-ăd6ămā́sv
-ădă6măntēs
-ădă6măntḗs
-ăd6ămăntĕ
-ăd6ămăntī
-ăd6ămăntĭb
-ăd6ămăntĭs
-ăd6ămăntĭŭ
-ăd6ămăntĭ́s
-ăd6ămắntē
-ăd6ămắntĕ
-ăd6ămắntī
-ăd6ămắntĭb
-ăd6ămắntĭs
-ăd6ămắntĭŭ
-ăd2ăn
-ădă4q
-ădæ2
-ădǣ2
-ă3d2e
-ăde4u
-ădē2d
-ădē2g
-ădē2s
-ădḗ4d
-ădḗ4g
-ădḗ4s
-ădĕ2d
-ădĕ2q
-ădĕ́4d
-ă2di
-ădī2m
-ădī2r
-ădī2t
-ădī́4m
-ădī́4r
-ădī́4t
-ădĭ2c
-ădĭ4ta
-ădĭ4tā
-ădĭ4tă
-ădĭ4tá
-ădĭ4tæ
-ădĭ4tǣ
-ădĭ4tǽ
-ădĭ4tī
-ădĭ4tū
-ădĭ́4c
-ădĭ́4tă
-ădĭ́4tĭ
-ădō2
-ăd4ōc
-ăd5ṓ4rā
-ăd5ṓ6rănt
-ăd5ṓ6răt
-ăd5ṓ4rē
-ăd5ṓ6rĕm
-ăd5ṓ6rĕnt
-ăd5ṓ6rĕr
-ăd5ṓ6rĕt
-ădṓ6rŏr
-ă2dŏ2
-ă2du
-ădū2
-ădū́2
-ădū́4l
-ădŭ2
-ă1ĕ2
-1ăf
-1ăg
-ă3g2a
-ă2găr
-ă2găt
-ă3g2æ3
-ă3g2ǣ
-ă2gē
-ă3gē.
-ă3gēq
-ă3gēu
-ă3gēv
-ă2gĕ
-ă3gĭb
-ăgĭ6stĕ
-ă2gĭt
-ă2gn
-ă3grī
-ă2gŭn
-ă1h
-2ă1i
-ă1ī2b
-ă1ī2r
-ă1īs
-ăī́2b
-ăī́2r
-ăī́4t
-ă1ĭĕ
-ă1ĭĭ
-ă3ĭ2t
-ă3ĭ́ĕ
-ă3ĭ́ĭ
-ă3ĭ́2t
-2ăj
-ălae2
-ă3lă
-ălæ2
-ălǣ2
-2ălē
-2ălĕ
-2ă3lī
-ă3lĭă
-ă3lĭō
-ă3lĭŭ
-ă3lĭ́
-ă2l1u
-ălū6stĕ
-2ălŭ
-2ăm.
-ă1ma
-1ă2mā
-ă1mă
-4ămăntē
-3ă2măt
-1ămb
-ăm2bĕ
-ăm4b5ĭt.
-ăm4b5ĭtn
-ăm4b5ĭtq
-ăm4b5ĭtu
-ăm6b5ĭtŭ́
-ăm4b5ĭtv
-ăm6b5ĭ́tn
-ăm6b5ĭ́tq
-ăm6b5ĭ́tu
-ăm6b5ĭ́tv
-ămbūbā́5i
-ămbūbḗ5i
-ăm4bū4r
-ăm4b3ū́4
-ăm4b3ŭs
-ăm2e
-ăm2ē
-ăm2ĕ
-3ămīc
-ăm3ĭc
-ămĭ6stĕ
-2ămm
-2ămn
-3ămna
-3ămná
-3ămnæ
-3ămnǣ
-3ămnǽ
-1ămo
-1ă2mó
-1ămœ
-1ămp
-2ămq
-2ămu
-2ămv
-ăn2ā
-2ă3n2ă
-1ănc
-2ănd
-ă3nē
-2ă3n2ĕ
-1ănh
-2ă3nī
-1ănĭ
-ă2nĭm
-2ă3nō
-2ă3n2ŏ
-2ănt.
-ăn4t5ĕ4rō
-ăn5tĕs4
-ăntĕ5stātĭ
-ăntĕ5stā́tĭ
-ăntĕ5stēs
-ăntĕ5stḗs
-ăntĕ5stĕm
-ăntĕ5stĕ́m
-ăntĕ́s4
-ăntĕ́5stē
-ăntĕ́5stĕm
-2ăntn
-2ăntq
-2ăntu
-2ăntŭ
-2ăntv
-ăn2ū
-2ă3n2ŭ
-ăō2ny
-ă3ṓ4ny
-ă3pe
-1ăpĕ
-ăpĕ3rĕ
-ăpĕ3rī
-ăpĕ3rŭ
-ă3pé
-ă2pn
-1ăpŏ
-1ăpp
-3ă2quā
-3ă2quă
-3ă2quē
-3ă2quō
-3ă2quŏ
-2ăr.
-ă1ra
-ă1r2ă
-ără3bŭ
-ă3răg
-ără3gĕ
-ă1ræ
-ă1rǣ
-ărdē2
-ă3r2e
-ă3rēu
-ă3rēv
-ă1r2ĕ
-ă3rh
-ă1rī
-ă3r2ĭ
-2ărn
-ă1ro
-ă1rō
-ărpē3i
-ărpḗ5i
-2ărq
-ăr2su
-2ăr1u
-3ăruā
-ă1rū
-ă1rŭ
-2ărv
-3ărvā
-ă1ry
-2ăs.
-1ăsc
-ăsce2
-ăs2cē
-ăs2cĕ
-ăscé2
-ă3s2ĕ
-ăs4ĕr
-ă3sĭ
-2ăsn
-ă2sp
-ă4s3pē
-ăs5pĕr.
-ăs5pĕra
-ăs5pĕrā
-ăs5pĕră
-ăs5pĕrá
-ăs5pĕræ
-ăs5pĕrǣ
-ăs5pĕrǽ
-ăs5pĕrē
-ăs5pĕ5rī
-ăs5pĕrnĕ.
-ăs5pĕrō
-ăs5pĕrq
-ăs5pĕru
-ăs5pĕrŭ
-ăs5pĕrv
-ă4s3pī
-ă4spĭ
-ăs3pĭs
-ăs3pō
-ăs3pŏ
-ăs2pŭ
-2ăs3q
-2ăst
-ăs2tā
-ăs4tăn
-ăs2tē
-ăs2tĕ
-ăs3tĕ.
-ăs3tĕq
-ăs3tĕu
-ăs3tĕv
-4ăstr
-ăs3tră
-ăs3trō
-ă3strŏ
-ăs4trŭ
-2ăs3u
-2ăsv
-ă3ta
-ă3tā
-ătă5str
-ătắ2
-ă4t3ắg
-ă3tá
-ă3tæ
-ă3tǣ
-ă3tǽ
-ă3tē
-ătḗ3i
-ătĕ2ī
-ătĕ3r4a
-ătĕ3rǣ
-ătĕ3rĕ
-ătĕ5rī
-ătĕrī5u
-ătĕrī5v
-ătĕ3rŭ
-ă3tī
-ă3tĭ
-ătĭ4s
-ătĭs5t
-ă3tr
-1ătt
-ă2tu
-ă1u
-ă2u1a
-ă2u1á
-ă2uæ2
-ă2u1ǣ2
-ă2uǽ
-ă3uĕ
-ă3uŏ
-ă2v1a
-ă2v1á
-ă2væ
-ă2v1ǣ
-ă2vǽ
-ă3vĕ
-ăx2
-ă2xu
-ắb5ĭī.
-3ắbl
-ắb6stĭn
-ắb4s5tr
-ắ3bŭ
-ắdă4
-ắd6ămān
-ắd6ămās
-ắd3ăq
-3ắdd
-ắd3ĕŏ
-ắd3ĕs
-3ắdh
-ắd3ĭ4c
-ắd3ĭĭ
-ắd5ĭ4ta
-ắd5ĭ4tā
-ắd5ĭ4tă
-ắd5ĭ4tæ
-ắd5ĭ4tǣ
-ắd5ĭ4tī
-ắd5ĭ4tū
-3ắdj
-3ắds
-ắ1ĕ
-1ắf
-3ắgg
-ắ4gĭĕ
-2ắ1i
-ắ3ĭēn
-ắ3ĭī.
-ắ3ĭ2t
-2ắj
-ắl3u
-ắm4b5ĭt
-3ắmna
-3ắmnæ
-3ắmnǣ
-3ắmp
-3ắmt
-ắ4nĭm
-ắn2ŏ
-ắn6tĕrō
-3ắntr
-ắ2r
-ắ3r2ă
-ắră3g
-ắ3rēn
-ắ3rĕ
-ắ3rī
-ắ3rĭ
-ắ3rŭ
-ắ2sp
-ắs4tān
-ắs4tăt
-ắs4tēs
-5ắs4tĕm
-ắs6tĕnt
-5ắs4tĕt
-5ắstĭt
-2ắ2t
-ắ3ta
-ắ3tā
-ắ3tă
-ắ3tæ
-ắ3tǣ
-ắ3tē
-ắ3tĕ
-ắ3tī
-ắ3tō
-ắ3tŏr
-ắ3tr
-3ắtt
-ắ3tū
-ắ3tŭ
-ắ3uŏ
-áa2t
-áb2ac
-áb2a3q
-áb3aui
-áb3avi
-áb2eq
-áb2ia
-á2bie
-áb4ies
-3á2biē
-áb4iēs
-3á2bii
-áb4iis
-3á2biī
-áb3iī.
-áb2iu
-1ábī
-3á2bl
-áb2o
-ábs2c
-áb5sci
-áb2sq
-áb5s4te
-áb4stin
-áb3sto
-áb4str
-á3bu
-2áce
-áda2
-ád6amans
-ád4amas
-ád4amān
-ád4amās
-3ádd
-áde2d
-ád1ē
-3ádh
-á2d3i2c
-ádi2g
-ád2ip
-ádi3pi
-3ádj
-1ádm
-á3do
-ád4ora
-ádo4ri
-á3dō
-3áds
-ád1u
-á3eant
-á3eat
-áe2ă
-áe4cue
-áe3d2
-áe2eo
-áe2eō
-áe3es
-áe3g2
-áei2
-2áen
-2áe3q
-3áequa
-3áequā
-3áequă
-5áequem
-5áequer
-5áeques
-5áequet
-3áequē
-5áequĕm
-5áequĕr
-5áequĕt
-3áequo
-3áequō
-3áequŏ
-áe1r
-áer4i
-áes4ca
-áes4ci
-áes4ta
-áes4te
-áes4tē
-áes4tī
-áes4tō
-áete3
-áetĕ3
-áetĕ5r
-áe3ut
-áe2ŭ
-áe2x
-1áf
-ág2a
-á3gæ
-1áge
-á2ger
-3ágg
-á2giā
-á2giæ
-á2giǣ
-á2giē
-á2gim
-á2git
-á2gn
-ág3no
-á3gr
-á1h
-ái2a
-á2ia.
-á2iae
-á2iam
-á3iane
-á3iaq
-á2ias
-á3iau
-á3iav
-á2ia͞
-á2ia͡
-á2iā
-á2iæ
-á2iǣ
-á3ieq
-á3ieu
-á3iev
-á2iis
-á3iit
-á1iī
-á1i2t
-á1iu
-1álp
-á2l3ua
-á2luā
-á2l3uæ
-á2luǣ
-á2l3ue
-ál3uē
-ál3uin
-á4l3uis
-ál3uīs
-ál3uu
-ám1
-á1m2a
-1ámb
-ám4bes
-ám2bē
-ám4b3ia
-ám4biā
-ám4b3io
-ám4b3i4t
-ámb4iui
-ámb4iv
-ám2e
-áme3s
-ám2ē
-2ám2i
-ám2ī
-2ámn
-3ámnæ
-3ámnǣ
-á1mo
-3ámp
-2ámq
-3ámt
-2ámu
-á3m2uē
-2ámv
-án2cu
-á2nim
-3ánnu
-án2o3
-án4s3ea
-án4s3eo
-án2si2
-áns3it
-án4t3ea
-ánte3i
-ánt5ero
-ánt5erō
-3ántr
-á1nu
-án2ua
-á2nue
-án2uī
-án2ū
-ápe3r
-á3pi
-á2pn
-2áq
-á2qui
-á1r
-2ár2a
-ár5cha
-2árd
-2áre
-2ár2i
-3árid
-2áro
-ár2sp
-2áru
-á2r3ua
-á2r3uā
-ár3uæ
-á2rue
-á4ruis
-á3rum
-á3run
-á2ruo
-á2r3uō
-á2ruu
-2ás
-ás3c
-ás4er
-ás2i
-áspe3
-ás3pī
-ás2pu
-ás4tān
-ás4tēs
-á4sti
-ás5ti.
-ás5tis
-3ástit
-ás3to
-ás3tri
-ás5trum
-2át
-át3a4g
-áte3r
-á5trix
-3átt
-á1u
-2áue
-á2ul
-á2u1m
-á2un
-áupe3
-áupe5r
-á2u1r
-á2ut
-á2ux
-áu2xu
-2áv
-áx2a
-áx4eu
-áx2i
-á2xia
-á2xiæ
-á2xii
-á2xio
-á2xiu
-áx2ī
-áx2o
-áx2ō
-áx4us
-æ1
-2æa
-æa2b1
-æa2m
-æ2a3n
-æ2a3q
-æ2a3r
-æ2as
-2æ2ā
-2æă
-æ2ăn
-æ2ă3q
-æ2ău
-æ2ăv
-æắ2
-2æá
-æá2c
-æ2ám
-æ2án
-æ2ár
-2æ2æ
-2æ2ǽ
-æb2
-æbe3r
-æ2c3ue
-1æd2
-æde2s
-ædē2s
-æ2di
-æ2dĭ
-æ3do
-æd4or
-æ3dŭ
-æd4ŭĕ
-2æe2
-æ2e3n
-æ2eo
-æ2eō
-æ2eó
-æ2e3q
-æe4ra
-æe4ro
-æe4rō
-æ3es
-æ2eu
-æ2eú
-æ2ev
-æex3
-2æ2ē
-2æĕ2
-æ2ĕō
-æ2ĕ3q
-æĕ4rō
-æ2ĕŭ
-æĕ́2
-2æ2é
-æ3é2r
-æ3és
-æ2g2
-æge2
-ægé2
-æ3gn
-2æi2
-æ3ic
-æ2in
-æ2i3q
-æ2is
-æ2i3ue
-æ2i3v
-2æ2ī
-æĭ2
-æĭ́2
-2æ2í
-æ3í2c
-æmo4nu
-æmō2
-2æn
-æn2ā
-æ3ne
-æne3ī
-æ3nē
-æ3nĕ1
-æ3né
-æ2nin
-æni3t
-æn1ī
-æní3t
-2æ2o
-2æ2ō
-æ2ŏ
-2æ2ó
-æó2nu
-æó1r
-æpo6te6ri
-æpo6te6rí
-æpo4tes
-æpo4tés
-æpŏ4tĕs
-æpó4tes
-æ2qua
-æ2quā
-æ2quá
-4æ3que.
-4æquĕ.
-æ4quĕm
-æ4quĕr
-æ4quĕt
-æ4quĕ́
-ær2
-æ3ră
-æres3
-æ3rē
-ærĕ2s3
-æs2c
-æs3cu
-æs3cŭ
-æs3cú
-æs2i
-æs2p
-æspe3
-æs3po
-æs3pō
-æs3pó
-æst2
-æsti5t4
-æstí3t4
-æte5ram
-æte5ran
-æte5rar
-æte6re6ri
-æte6re6rí
-æte6reru
-æte4res
-æte4rés
-æte4r3i4
-æte4r3ī4
-æterī́4
-æte4rí4
-æter5ímu
-æter5íti
-æter5íu
-æter5ív
-æte3ro
-æte3rō
-æte5run
-ætĕ4r3ī4
-ætĕrī́4
-ætĕ4rĭē
-ætĕ4r5ĭī
-ætĕ4rĭt
-ætĕr5ĭ6tā
-ætĕrĭ6tĕ
-ætĕ5rĭtĭ
-ætĕrĭ6tō.
-ætĕrĭ6tōn
-ætĕrĭ6tōq
-ætĕrĭ6tōu
-ætĕrĭ6tōv
-ætĕrĭ6tṓn
-ætĕrĭ6tṓq
-ætĕrĭ6tṓu
-ætĕrĭ6tṓv
-ætĕrĭ́4
-ætĕ6rĭ́ĕ
-ætĕ6rĭ́t
-ætĕ3rŭ
-ætĕ́6rĕ6rĭ
-ætĕ́4rī
-ætĕ́6r5ĭī
-ætĕ́6r5ĭt.
-ætĕ́6r5ĭ6tā
-ætĕ́6rĭ6tĕ
-ætĕ́6rĭ6tō
-æté6re6ri
-æté4r5es
-æté4ri.
-æté4rie
-æté4riē
-æté4r5ii
-æté4r5iī
-æté4r5is
-æté4rit
-ætér5it.
-ætér5ita
-ætér5i6tā
-ætéri6te
-ætéri6ti
-ætéri6to.
-ætéri6tō
-æ3tr
-æu2
-æū2
-2æŭ
-æ2ŭs
-æ2ŭ́
-2æ2ú
-æx2
-æ2x3u
-ǣ1
-2ǣa
-ǣa2b1
-ǣa2m
-ǣ2a3n
-ǣ2a3q
-2ǣ2ā
-2ǣă
-ǣ2ăn
-ǣ2ă3q
-ǣ2ău
-ǣ2ăv
-ǣắ2
-2ǣá2
-ǣ2ám
-ǣ3ámb
-2ǣ2ǣ
-ǣ2c3ue
-1ǣd2
-ǣda2r
-ǣdē2s
-ǣ2di
-ǣ2dĭ
-ǣ3do2
-ǣd4or
-ǣdó2
-ǣ3dŭ
-ǣd4ŭĕ
-2ǣe2
-ǣ2e3n
-ǣ2eō
-ǣ2e3q
-ǣe4ra
-ǣe4rō
-ǣ3es
-ǣ2eu
-ǣ2eú
-ǣ2ev
-2ǣ2ē
-2ǣĕ2
-ǣ2ĕō
-ǣ2ĕ3q
-ǣĕ4rō
-ǣ2ĕŭ
-ǣĕ́2
-ǣé2
-ǣ3és
-ǣ2g2
-ǣge2
-ǣgé2
-ǣ3gn
-ǣi2
-ǣ3ic
-ǣ2is
-2ǣ2ī
-ǣĭ2
-ǣĭ́2
-ǣí2
-ǣmō2
-2ǣn
-ǣn2ā
-ǣ3ne3
-ǣ3nē
-ǣ3nĕ1
-ǣni3t
-ǣn1ī
-ǣní3t
-ǣ2o
-2ǣ2ō
-ǣ2ŏ
-ǣ2ó2
-ǣpote4
-ǣpo4t5er
-ǣpo4t5es
-ǣpoté4
-ǣpo4tér
-ǣpo4t5és
-ǣpŏ4tĕs
-ǣpó4t3e
-ǣ2quā
-4ǣ3que.
-4ǣquĕ.
-ǣ4quĕm
-ǣ4quĕr
-ǣ4quĕt
-ǣ4quĕ́
-ǣr2
-ǣra2r
-ǣ3ră
-ǣrá2
-ǣres3
-ǣ3rē
-ǣrĕ2s3
-ǣro2
-ǣró2
-ǣs2c
-ǣs3cu
-ǣs3cŭ
-ǣs3cú
-ǣs2i
-ǣs2p
-ǣs3pō
-ǣst2
-ǣsti5t4
-ǣstí3
-ǣstít4
-ǣte5ram
-ǣte5ran
-ǣte5rar
-ǣte6re6ri
-ǣte6re6rí
-ǣte6reru
-ǣte4r5es
-ǣte6réri
-ǣte4r5és
-ǣter5iē
-ǣter5iī
-ǣte5rim
-ǣter5i6tā
-ǣteri6te
-ǣte5riti
-ǣte5rití
-ǣte5rito
-ǣteri6tō.
-ǣteri6tōn
-ǣteri6tōq
-ǣteri6tōu
-ǣteri6tōv
-ǣteri6tṓn
-ǣteri6tṓq
-ǣteri6tṓu
-ǣteri6tṓv
-ǣte5ritó
-ǣte5r6i5tur
-ǣte5ritúr
-ǣte4r3ī4
-ǣterī́4
-ǣterí4
-ǣte4ríe
-ǣte4rít
-ǣte3ro
-ǣte3rō
-ǣte5run
-ǣtĕ4r3ī4
-ǣtĕrī́4
-ǣtĕ4rĭē
-ǣtĕ4r5ĭī
-ǣtĕ4rĭt
-ǣtĕr5ĭ6tā
-ǣtĕrĭ6tĕ
-ǣtĕ5rĭtĭ
-ǣtĕrĭ6tō.
-ǣtĕrĭ6tōn
-ǣtĕrĭ6tōq
-ǣtĕrĭ6tōu
-ǣtĕrĭ6tōv
-ǣtĕrĭ6tṓn
-ǣtĕrĭ6tṓq
-ǣtĕrĭ6tṓu
-ǣtĕrĭ6tṓv
-ǣtĕrĭ́4
-ǣtĕ6rĭ́ĕ
-ǣtĕ6rĭ́t
-ǣtĕ3rŭ
-ǣtĕ́6rĕ6rĭ
-ǣtĕ́4rī
-ǣtĕ́6r5ĭī
-ǣtĕ́6r5ĭt.
-ǣtĕ́6r5ĭ6tā
-ǣtĕ́6rĭ6tĕ
-ǣtĕ́6rĭ6tō
-ǣté6re6ri
-ǣté4r5es
-ǣté4riē
-ǣté4r5iī
-ǣté6r5it.
-ǣté6rita
-ǣté6r5i6tā
-ǣté6ri6te
-ǣté6ri6tō
-ǣu2
-ǣ3ue.
-ǣue2r
-ǣ3uĕ.
-ǣū2
-2ǣŭ
-ǣ2ŭs
-ǣ2ŭ́
-2ǣ2ú
-ǣ3úmb
-ǣ3ve.
-ǣ3vĕ.
-ǣx2
-ǣ2x3u
-ǣ2́
-ǣ́3da
-ǣ́3dă
-ǣ́3e2r
-ǣ́3es
-ǣ́3ĕ2r
-ǣ́2g2
-ǣ́3gn
-ǣ́4gr
-ǣ́1i2
-ǣ́1ĭ2
-ǣ́3l
-ǣ́2mu
-ǣ́2mŭ
-2ǣ́3n
-3ǣ́4qua
-3ǣ́4quā
-3ǣ́4quă
-5ǣ́4quem
-5ǣ́4quer
-5ǣ́4quet
-3ǣ́4quē
-5ǣ́4quĕm
-5ǣ́4quĕr
-5ǣ́4quĕt
-3ǣ́4quo
-3ǣ́4quō
-3ǣ́4quŏ
-ǣ́s4ca
-ǣ́s4ci
-ǣ́s4cī
-ǣ́s4cĭ
-ǣ́s4ta
-ǣ́s4tă
-ǣ́s4tǣ
-ǣ́s4te
-ǣ́s4tē
-ǣ́s4tĕ
-ǣ́s4tī
-ǣ́s4tō
-ǣ́tĕ3
-ǣ́4th
-ǽ1
-2ǽ2a
-2ǽ2ā
-ǽ2ă
-2ǽæ
-ǽc3ue
-ǽ3da
-ǽ3dă
-ǽ2e
-ǽ3e2r
-ǽ3es
-ǽ2ĕ
-ǽ3ĕ2r
-ǽ3ĕs
-ǽg2
-2ǽi2
-ǽ2is
-2ǽ2ī
-ǽĭ2
-ǽ2mu
-ǽ2mŭ
-2ǽn
-ǽ3ne
-ǽ3nĕ
-ǽ2o
-ǽ2ō
-ǽ2ŏ
-ǽ2qua
-3ǽ2quā
-3ǽ2quă
-4ǽque.
-ǽ4quem
-ǽ4quer
-ǽ4ques
-ǽ4quet
-3ǽ2quē
-3ǽ4quĕm
-3ǽ4quĕr
-3ǽ4quĕt
-ǽ2quo
-3ǽ2quō
-3ǽ2quŏ
-ǽr2
-ǽ3ră
-ǽst2
-ǽ2stu
-ǽte1
-ǽtĕ3
-ǽu2
-ǽ2um
-ǽ2ŭ
-ǽ3ŭt
-ǽ2x
-1b
-3ba.
-bab2o
-bab4u
-ba2c
-ba3ci
-ba3cí
-b2acu
-b2acú
-2b1a2d3
-3bae
-b2aeq
-b2aeu
-b2aev
-ba2g
-ba3gē
-ba3gu
-ba3gú
-ba3ian
-ba3ián
-ba3ion
-ba3ió
-ba2it
-ba3iú
-b1a2l
-b2ami
-b2an
-b2ap
-b1a2q
-ba3que
-ba2rā
-b2a2ru
-5barum
-ba4sp
-bas5pe
-bas3t
-bas5te
-bas5tr
-b3a2tr
-ba4uen
-ba4ueq
-ba4ueu
-ba2uī
-ba2uo
-ba2uō
-ba2uó
-ba2uu
-ba2uú
-3bav
-ba4ven
-ba4veq
-ba4vev
-b3a2vī
-b3a2vo
-b3a2vō
-ba2vó
-b3a2vu
-ba2vú
-2b1a2x
-b1āc
-2b1ā2g
-bā2ic
-bā2ĭ
-b2ān
-b2ār
-b3ā2tr
-b3ā́c
-2b3ā́2g
-b1ăb
-3bă2c
-bă3cŭ
-b1ă2d3
-bă2g
-bă3gē
-bă3gŭ
-3bă2l
-băm3
-b2ăn
-b2ăp
-b1ă2q
-b3ă2rŏ
-3bărr
-bă4sp
-băs5pĕ
-băs3t
-băs5tĕ
-băs5tr
-b2ăt
-bă4uĕn
-bă4uĕq
-bă4uĕu
-b3ă2uī
-b3ă2uō
-b3ă2uŭ
-bă4vĕn
-bă4vĕq
-bă4vĕv
-b3ă2vī
-b3ă2vō
-b3ă2vŭ
-b1ă2x
-3bắc
-b3ắ2d3
-b2ắn
-b3ắ2u
-b3ắ2v
-b3ắ2x
-b2áb
-b1ác
-2b1á2d3
-b2áeu
-b2áev
-2b1á2g
-bá3ian
-b2án
-bá2ru
-b3ásp
-b2áu
-bá4uen
-bá4ueq
-bá4ueu
-bá4ven
-bá4veq
-bá4vev
-2b1á2x
-b1æ2
-b2æ3q
-b2æu
-bæ3ue
-bæ3uĕ
-b2æ3v
-b1ǣ2
-b2ǣ3q
-b2ǣu
-bǣ3ue
-bǣ3uĕ
-b2ǣ3v
-b2ǣ́
-b3ǣ́m
-b2ǽq
-b2ǽu
-b2ǽv
-2bb2
-b3ba
-bba3q
-b3bā
-b3bá
-b3bæ3
-b3bǣ
-b3bǽ
-b3be3
-b3bē
-b3bé
-b3bi
-b3bī
-bbī3u
-bbī3v
-b3bí
-b3bo
-b3bō
-b3bó
-b3bu
-b3bŭ
-b3bú
-2bc
-2bd
-bde2s
-bdē2s
-b3do
-bd4or
-bdū3r
-be2a
-3beæ
-3beǽ
-3bec
-becī́3
-b1ed2
-be2dā
-be2de
-be2dē
-be2dé
-be2d4i
-be2dī
-be2dí
-be2d4o
-be2dō
-be2dó
-be2du
-be2dú
-3be2e
-3beé
-b1e2g
-3bei
-be3iǣ
-be3iē
-3beí
-b2el
-b2em
-b2en
-be4n3ia
-be2o
-b1e2q
-be3ra
-be5ra.
-be5raq
-be5rau
-be5rav
-be3r2æ3
-be3r2ǣ
-ber2e
-3berea
-3bereá
-3bereæ
-3bereǽ
-be4rec
-3beree
-3bereé
-3berei
-3bereí
-3bereo
-3bereó
-3bereú
-bere5x4
-be3rē
-3beréa
-be4réc
-3berée
-b3eréx
-ber4i
-be3ria
-be3riá
-be3rib
-be3ri5c
-3be3rie
-3be3rié
-be3rii
-be3rií
-3be3ri3n
-be5rite
-be3riu
-be3riú
-be3riv
-be3rī
-be4ríg
-3berín
-be4rít
-be4rn
-be3ro
-be3rōr
-be3rōs
-be4rq
-3berúm
-be4rún
-be4rv
-be2s
-be4sa
-be4si
-be4sn
-be4so
-be4sq
-2best
-be4su
-be4sv
-b1e2u
-2beun
-b1eú
-b2ev
-b1e2x
-b2ēb
-2b1ē2d
-b1ē2g
-bē6iaene
-bē6iaeue
-bē6iaeve
-bē4iam
-bē4ian
-bē4iāne
-bē6iāque
-bē4iāru
-bē4iārú
-bē6iāsne
-bē6iāsue
-bē6iāsve
-bē4iāue
-bē4iāve
-bē6iā́ne
-bē6iā́ru
-bē6iā́ue
-bē6iā́ve
-bē6iáene
-bē6iáeue
-bē6iáeve
-bē4iám
-bē4iæne
-bē6iæque
-bē4iæue
-bē4iæve
-bē4iǣne
-bē6iǣque
-bē4iǣue
-bē4iǣve
-bē6iǣ́ne
-bē6iǣ́ue
-bē6iǣ́ve
-bē4iǽne
-bē6iǽque
-bē4iǽue
-bē4iǽve
-bē6iīsne
-bē6iīsue
-bē6iīsve
-b2ēm
-b2ēn
-bē3ne
-bē2s
-bē4sa
-bēs3tĭ
-b2ēu
-b2ēv
-2b3ḗ2d
-bḗ2g
-bḗ3l2
-b2ḗm
-bḗ2s
-b3ḗse
-b3ḗsĕ
-b3ḗsī
-b3ḗss
-b3ḗst
-b2ḗu
-b2ḗv
-3bĕ.
-3bĕa
-bĕ2ă
-3bĕæ
-3bĕǣ
-3bĕc
-bĕcī́3
-b1ĕd2
-bĕ3da
-bĕ2dā
-bĕ4dă
-bĕ2dē
-bĕ2dĕ
-bĕ2dī
-bĕ2d4ĭ
-bĕ2dō
-bĕ2dŏ
-bĕ2dŭ
-3bĕē
-3bĕĕ
-3bĕī
-3bĕl
-b2ĕm
-3bĕ2q
-bĕ3r2a
-bĕ3r2æ
-bĕ3r2ǣ
-bĕ3rē
-bĕ3r4ĕ
-bĕ3rī
-bĕ3rŏ
-b3ĕrŭn
-b1ĕs
-b2ĕt
-3bĕu
-2bĕŭn
-3bĕv
-2b1ĕx
-bĕ́4dĭ
-bĕ́2q
-bĕ́3rĕ
-b1éd
-bé2di
-b1é2g
-bé1i
-bé3ie
-bé3iē
-b2él
-b2é1m
-bé4n3ia
-3béra
-3bérie
-bé4rig
-bé4rim
-bé4riti
-bé2ru
-bé2s
-bé4sa
-b3ése
-b3ési
-b3éss
-b3ést
-b1é2x
-2bf
-b1h
-bi2a
-3b2ia.
-3b2ian
-3b2iaq
-3b2iau
-3b2iav
-b2iā
-b4iā́n
-2biă
-3b4iáni
-3b4iáno
-b2iæ
-b2iǣ
-b2iǽ
-b1i2c
-b1ie
-3bieg
-b1iē
-2biĕ
-b1ié
-3biég
-2b1i2g
-5bigena
-5bigenā
-5bigená
-5bigenæ
-5bigenǣ
-5bigenǽ
-5bigenen
-5bigeneq
-5bigeneu
-5bigenev
-5bigenē
-5bigené
-5bigeni
-5bigenī
-5bigení
-5bigeno
-5bigenō
-5bigenó
-5bigenu
-5bigenú
-5bigéna
-5b4igéne
-bi4g3n
-b1ii
-3b4iis.
-3b4iisn
-3b4iisq
-3b4iisu
-3b4iisv
-b2iī
-3biīs
-3biī́s
-2biĭ
-3b4iísn
-3b4iísq
-3b4iísu
-3b4iísv
-b2il
-b1in
-b3int
-3b2io
-bio2s
-b2iō
-b2ió
-2b1i2r
-b4i3ter
-bi4tio
-bi4tiō
-4b3i4tud
-4bi4tui.
-4bi4tuin
-4bi4tuiq
-4bi4tuiu
-4bi4tuiv
-4bi4tuī.
-4bi4tuīn
-4bi4tuīq
-4bi4tuīu
-4bi4tuīv
-6bi6tuī́n
-6bi6tuī́q
-6bi6tuī́u
-6bi6tuī́v
-4bi4tuín
-4bi4tuíq
-4bi4tuíu
-4bi4tuív
-4b3i4tuú
-bi4tūd
-bi4tūs
-4bi4túd
-b1iu
-bi3u2b
-2bi2ue
-2bi2ué
-4bi4uim
-4bi4uin
-4bi4uiq
-4bi4uis
-4bi4uit
-4bi4uiue
-bi3uī
-2bi2uí
-3biuía
-b2ium
-2biun
-b2ius
-b2iús
-b1iv
-bi2ve
-2bi2vé
-4bi4vim
-4bi4vin
-4bi4viq
-4bi4vis
-4bi4vit
-4bi4viv
-bi3vī
-2bi2ví
-3bivía
-bi2x3
-b1ī
-2bī2b
-3bī3c
-bī2mi
-bī2mĭ
-bī2r
-b3ī2to
-b3ī2tŏ
-b3ī2tó
-bī2u
-bī2v
-bī́2b
-3bī́c
-bī́2m
-bī́2r
-bī́4to
-bī́4tŏ
-bī́4ui
-bī́4uī
-bī́4uĭ
-bī́4vi
-bī́4vī
-bī́4vĭ
-b2ĭb
-b1ĭ2c
-b1ĭē
-b1ĭĕ
-3bĭĕg
-3bĭĕ́g
-2b1ĭ2g
-5bĭgĕna
-5bĭgĕnā
-5bĭgĕnă
-5bĭgĕná
-5bĭgĕnæ
-5bĭgĕnǣ
-5bĭgĕnǽ
-5bĭgĕnē
-5bĭgĕnĕn
-5bĭgĕnĕq
-5bĭgĕnĕu
-5bĭgĕnĕv
-5bĭgĕnī
-5bĭgĕnō
-5bĭgĕnŭ
-5bĭgĕ́nă
-5bĭgĕ́nĕ
-b4ĭīs
-b1ĭĭ
-b2ĭl
-b2ĭm
-b1ĭn
-b4ĭ3tĕr
-bĭ4tĭb
-bĭ4tĭō
-bĭ4tūd
-b3ĭ4tūs
-4bĭ4tŭī.
-4bĭ4tŭīn
-4bĭ4tŭīq
-4bĭ4tŭīu
-4bĭ4tŭīv
-6bĭ6tŭī́n
-6bĭ6tŭī́q
-6bĭ6tŭī́u
-6bĭ6tŭī́v
-4b3ĭ4tŭŭ
-bĭ́4cĭ
-6bĭ́6gĕnĕ
-4b5ĭ́4gĕq
-4b5ĭ́4gĕr
-4b5ĭ́4gĕu
-4b5ĭ́4gĕv
-4b3ĭ́4gĭ
-4b3ĭ́gn
-4b3ĭ́4gŭ
-bĭ́4tĭb
-6bĭ́6tŭī.
-4b5ĭ́4tŭŭ
-3bía
-bí2ba
-bí2bo
-bí2bu
-bí2ci
-b1í2g
-4bígene
-4bígeq
-4bíger
-4bígeu
-4bígev
-2bígi
-2bí4g3n
-2bígu
-b1íi
-b2íl
-2bí2mu
-b3ínt
-2b1í2r
-2bí2to
-bí4tui.
-5bítuis
-5bítuīs
-5bítuo
-5bítuō
-5bítut
-4bí4uer
-4bí4ui.
-4bí4uim
-4bí4uit
-4bí4ver
-4bí4vi.
-4bí4vim
-4bí4vit
-bí2x
-2bj
-bl2
-2blŏ
-b3lu
-2blŭ
-b2ly
-2b1m2
-2b1n2
-bne3g
-bne3u2
-bnĕ3g
-bné1
-bnéu2
-b3ni
-b3nĭ
-bno3b2
-bnŏ3b2
-b3nu
-bn4ue
-b1o
-3bo2a
-bo4am
-boa3q
-bo2á
-bo2æ3
-bo2ǽ3
-bob2ú
-bo2e
-bo2ē
-bo3iá
-bo2ii
-bo2ií
-bo2i3q
-bo2iu
-bo2iv
-bo2ī
-boī3u
-boī3v
-boī́3u
-boī́3v
-bo2í
-bo2l
-b3olet
-bo3lín
-bo3líq
-bo3lís
-bo3líu
-bo3lív
-bol4u
-bo2m
-b2o1n
-bo3ni
-bo2o
-bo2ō
-bo2ó
-b2ora
-b2orá
-b2ore
-b2oré
-bo2ri
-bo3ri.
-bo3rin
-bo3riq
-bo3ris
-bo3riv
-borí3t
-bo4rn
-b2oro
-b2oró
-bo4rq
-bo2ru
-bo4rv
-3bo2s
-bo4sn
-bo4sq
-b2o4su
-bo4sv
-bo3ue
-bo3v
-b1ō2m
-b2ōn
-b1ōr
-bṓ3i
-b3ṓ2m
-bŏ2ă
-b1ŏd
-bŏ2ē
-bŏ2ī
-bŏī3u
-bŏī3v
-bŏī́3u
-bŏī́3v
-bŏ2l
-b3ŏlĕt
-bŏ2ō
-b2ŏ3rĕ
-bŏ3rī.
-bŏ3rīn
-bŏ3rīq
-bŏ3rīs
-bŏ3rīu
-bŏ3rīv
-bŏ5rī́n
-bŏ5rī́q
-bŏ5rī́s
-bŏ5rī́u
-bŏ5rī́v
-bŏ2rĭ
-bŏ2s
-bŏ4́l
-bŏ́4lĕā
-bŏ́4lĕă
-bŏ́4lĕō
-bŏ́4lĕŏ
-bŏ́4lŭ
-bó3ia
-bó3iæ
-bó4lea
-bó4leā
-bó3len
-bó4leo
-bó4leō
-bó3leq
-bó3leu
-bó3lev
-ból2u
-b1ó2m
-b2óra
-b2óre
-bó4rie
-bó4riē
-b2ós
-b3ósc
-2b1œ2
-bœ4da
-bœ4dă
-bœ̄2
-bœ̄4d
-bœ̄́2
-bœ́2
-br2
-bra3d4
-b2rā
-b2rá
-b4rác
-b2ræ
-bræ2ă
-b2rǣ
-brǣ2ă
-b2rǽ
-b1re
-bre2i
-brē2i
-2bria
-2briá
-b2rim
-b1rī
-b2rĭd
-b4rĭē
-2brĭĕ
-b2rĭm
-b1ro
-b2rot
-b1rŏ
-b4rŏt
-b1ru
-b2rus
-b1rŭ
-b2rŭs
-b4rŭ́s
-b2rús
-b2ry
-b2rý
-2b1s
-b4s5caen
-b6s5ca͞en
-b6s5cá͞en
-b6s5ca͡en
-b6s5cá͡en
-b4s5cáen
-b4s3cæn
-b4s3cǣn
-b4s5cǣ́n
-b4s3cǽn
-b2s3ce
-b2s3cē
-b2scĕ
-b2s3cé
-b4scid
-bs6cidera
-bs6ciderá
-bs6cidere.
-bs6ciderene
-bs6cidereq
-bs6cidereu
-bs6ciderev
-bs6cideri
-bs6ciderí
-bs6cidero
-bs6cideró
-bs6cideru
-bs6ciderú
-bs6cidére
-bs6cidérim
-bs6cidérit
-bs6cidéru
-bs6cidi.
-bs6cidimus
-bs6cidimús
-bs6cidin
-bs6cidiq
-bs6cidis
-bs6cidit.
-bs6ciditn
-bs6ciditq
-bs6ciditue
-bs6ciditv
-bs6cidiu
-bs6cidiv
-bs6cidín
-bs6cidíq
-bs6cidíss
-bs6cidíst
-bs6cidítn
-bs6cidítq
-bs6cidítu
-bs6cidítv
-bs6cidíu
-bs6cidív
-bs4ciss
-b2scī
-bs2cĭ
-b4scíd
-bs6cídera
-bs6cíderi
-bs6cídero
-bs6cídimus
-bs4císs
-b4scísu
-bs2e
-bs2q
-bs2ta
-bs2tā
-bs2tă
-bs2tá
-b5s4tem.
-b5s4temn
-b5s4temq
-b5s4temu
-b5s4temú
-b5s4temv
-b4sten
-b5s6tent.
-b5s6tentn
-b5s6tentq
-b5s6tentue
-b5s6tentv
-bs4tern
-bs4tes
-bs4tet
-b5s4tēmu
-b5s4tēmŭ
-b5s4tēmú
-bs4tēs
-bs4tēt
-b7s6tḗmu
-b7s6tḗmŭ
-bs4tḗs
-bs4tḗt
-bs4tĕm
-b4stĕn
-b5s6tĕnt.
-b5s6tĕntn
-b5s6tĕntq
-b5s6tĕntu
-b5s6tĕntv
-bs4tĕrn
-bs4tĕt
-bs4tĕ́m
-bs6tĕ́ntn
-bs6tĕ́ntq
-bs6tĕ́ntu
-b6stĕ́ntŭ
-bs6tĕ́ntv
-bs6tĕ́rn
-bs4tĕ́t
-b4stémi
-bs4témn
-bs4témq
-bs4tému
-bs4témv
-b5s6téntn
-b5s6téntq
-b5s6téntue
-b5s6téntv
-bs4térn
-bs4tés
-bs4tét
-b5stit
-b5stĭt
-b5s4tĭ́t
-b4stín
-bs4tít
-b2sto
-b3s4to.
-b3s4ton
-b3s4toq
-b3s4tou
-b3s4tov
-bs2tō
-b2stŏ
-b5s4tón
-b5s4tóq
-b5s4tóu
-b5s4tóv
-bs4trar
-bs4tras
-bs4trat
-bs4trau
-bs4trav
-bs4trār
-bs4trās
-bs4trāt
-bs4trāu
-bs4trāv
-bs6trā́r
-bs6trā́s
-bs6trā́t
-bs6trā́u
-bs6trā́v
-b4stră
-bs4trár
-bs4trás
-bs4trát
-bs4tráu
-bs4tráv
-b2sue
-2bt2
-btes5t
-bte6ste
-btē6ste
-btē6stĕ
-b3tu
-btū3s
-bu3b2
-bu4lue
-2bum
-4b3undā
-b2uni
-b2uní
-buol5ue
-buol5ué
-buol5ui
-buol5uī
-buol5uí
-b1ur
-bur5ue
-3bus
-b4us.
-busa4t
-bu2s3ā2
-bu2se
-b4usn
-bu4so
-bu2só
-bu2sp
-b4usq
-bu2su
-bu2sú
-b4usv
-b1ūn
-b1ūr
-bū3rĭ
-bū2su
-2b3ū́4s
-b2ŭē
-b2ŭĕ
-b2ŭī
-b2ŭĭ
-2bŭm
-b2ŭ2s
-b4ŭs.
-b4ŭsn
-b4ŭsq
-b4ŭsu
-b4ŭsv
-3b2ŭ́l
-b2úl
-2búll
-6búndans
-6b5úndant
-4b5úndat
-4b5úndem
-6b5úndent
-4b5úndes
-4b5úndet
-3bú2s
-bú4sa
-b2y
-b2ȳ
-b2ý
-1c
-c2a
-cab2
-ca3d2
-cad4u
-3caena
-3caenā
-3caenă
-3caená
-3caene
-3caenē
-3caenĕ
-3caené
-3caeno
-3caenō
-3caenó
-3caenu
-3caenŭ
-3caenú
-cae4sp
-ca2ie
-ca2ii
-ca2iō
-3cam
-ca3ni
-ca3ní
-3cant
-3car
-ca3rē
-car4uī
-caspe3
-cas3t
-cas5tr
-3cat.
-cate3i
-2catē
-catē3i
-catḗ5i
-caté3i
-3catn
-3catq
-3catu
-3catv
-ca2u3a
-ca2u3á
-ca2v3a
-ca2vá
-ca2x3
-5ca͞ena
-5ca͞enā
-5ca͞enă
-5ca͞ená
-5ca͞ene
-5ca͞enē
-5ca͞enĕ
-5ca͞enō
-5ca͞enu
-5ca͞enŭ
-5ca͞enú
-5cá͞ena
-5cá͞enā
-5cá͞enă
-5cá͞ene
-5cá͞enē
-5cá͞enĕ
-5cá͞enō
-5cá͞enu
-5cá͞enŭ
-5ca͡ena
-5ca͡enā
-5ca͡enă
-5ca͡ená
-5ca͡ene
-5ca͡enē
-5ca͡enĕ
-5ca͡ené
-5ca͡eno
-5ca͡enō
-5ca͡enó
-5ca͡enu
-5ca͡enŭ
-5ca͡enú
-5cá͡ena
-5cá͡enā
-5cá͡enă
-5cá͡ene
-5cá͡enē
-5cá͡enĕ
-5cá͡eno
-5cá͡enō
-5cá͡enu
-5cá͡enŭ
-cā5bun
-cā4iae.
-cā6iaene
-cā6iaeque
-cā6iaeue
-cā6iaeve
-cā6ia͞e.
-cā6ia͞ene
-cā6ia͞eque
-cā6ia͞eue
-cā6ia͞eve
-cā6iá͞ene
-cā6iá͞eque
-cā6iá͞eue
-cā6iá͞eve
-cā6ia͡e.
-cā6ia͡ene
-cā6ia͡eque
-cā6ia͡eue
-cā6ia͡eve
-cā6iá͡ene
-cā6iá͡eque
-cā6iá͡eue
-cā6iá͡eve
-cā2iā
-cā6iáene
-cā6iáeque
-cā6iáeue
-cā6iáeve
-cā4iæ.
-cā4iæne
-cā6iæque
-cā4iæue
-cā4iæve
-cā4iǣ.
-cā4iǣne
-cā6iǣque
-cā4iǣue
-cā4iǣve
-cā6iǣ́ne
-cā6iǣ́que
-cā6iǣ́ue
-cā6iǣ́ve
-cā4iǽne
-cā6iǽque
-cā4iǽue
-cā4iǽve
-cā4iīs.
-cā6iīsne
-cā6iīsque
-cā6iīsue
-cā6iīsve
-cā6iī́sne
-cā6iī́sque
-cā6iī́sue
-cā6iī́sve
-cā2iu
-cā2iú
-cā3s4uī
-cā́5suī
-c2ă
-căd2
-că2ĭ
-3căm
-că3nĭ
-3cănt
-3căr
-că3rē
-că3rĕ
-căs3
-căs5tr
-3căt.
-2cătē
-2cătĕ
-3cătn
-3cătq
-3cătu
-3cătv
-3cắm
-cắ5nĭ
-3cắr
-cắ3rē
-cắ3rō
-3cáena
-3cáenā
-3cáenă
-3cáene
-3cáenē
-3cáenĕ
-3cáeno
-3cáenō
-3cáenu
-3cáenŭ
-cá3ni
-cár4ui
-cár4uī
-cá2x
-c2æ
-3cæ.
-cæ3d
-cæ3n2
-3cæna
-3cænā
-3cænă
-3cæná
-3cænæ
-3cænǽ
-3cæne
-3cænē
-3cænĕ
-3cæné
-3cæno
-3cænō
-3cænó
-3cænu
-3cænŭ
-3cænú
-3cæq
-cæ2s3p
-c2ǣ
-3cǣ.
-cǣ3d
-cǣn2
-3cǣna
-3cǣnā
-3cǣnă
-3cǣná
-3cǣnǣ
-3cǣne
-3cǣnē
-3cǣnĕ
-3cǣnō
-3cǣnu
-3cǣnŭ
-3cǣnú
-3cǣq
-cǣ2s3p
-3cǣ́na
-3cǣ́nā
-3cǣ́nă
-3cǣ́nǣ
-3cǣ́ne
-3cǣ́nē
-3cǣ́nĕ
-3cǣ́nō
-3cǣ́nu
-3cǣ́nŭ
-3cǽna
-3cǽnā
-3cǽnă
-3cǽnæ
-3cǽne
-3cǽnē
-3cǽnĕ
-3cǽno
-3cǽnō
-3cǽnu
-3cǽnŭ
-cǽ2sp
-2cc2
-2c2d2
-c3du
-c3dŭ
-c2e
-3ce2a
-3ceá
-3ceæ
-3ceǽ
-3ceb
-ce3d2
-ced4o
-3ce2e
-3ceé
-3ce2i
-3ceí
-3cemú
-4c5e4nare
-4c5e4naré
-6c5e6nari.
-6cenarib
-6c5e6narin
-6c5e6nariq
-6c5e6naris
-6c5e6narit
-6c5e6nariue
-6c5e6nariv
-6c5e6narín
-6c5e6naríq
-6c5e6narís
-6c5e6naríu
-6c5e6narív
-4c5e4náre
-6c5e6nári.
-6cenárib
-6c5e6náris
-6c5e6nárit
-4c3ennā
-3cent
-3ce2o
-3ceó
-cepe3
-ce3ra
-ce3r2æ3
-ce3r2ǣ
-2cerb
-ce3rē
-ce3r4i
-ce3rī
-ce3ro
-ce3rō
-cer5ue
-cer3uē
-cer3ué
-ce3run
-ce2sp
-ce2sq
-ce2su
-3cet
-cete3
-cete5r4
-ceteri5u
-ceteri5v
-ce4ua.
-ce4uam
-ce4uan
-ce4uaq
-ce4uau
-ce4uā.
-ce4uān
-ce4uāq
-ce4uāu
-ce4uā́
-ce2uă
-ce2uá
-ce4uī́
-ce2uí
-3ceum
-ce2un
-3ceus
-3ceú
-3cē.
-cē2i
-4c5ē4nāre
-4c5ē4nārē
-4c5ē4nārĕ
-4c5ē4nāré
-6cēnārib
-6c5ē6nāris
-6c5ē6nārit
-4c5ē4nārī
-6cēnārĭb
-6c5ē6nārĭs
-6c5ē6nārĭt
-6c5ē6nārĭ́s
-6c5ē6nārís
-6c5ē6nā́re
-6c5ē6nā́rē
-6c5ē6nā́rĕ
-6cēnā́rib
-6c5ē6nā́ris
-6c5ē6nā́rit
-6c5ē6nā́rī
-6cēnā́rĭb
-6c5ē6nā́rĭs
-6c5ē6nā́rĭt
-cē3ne
-cēpe3
-cēper4
-cēpĕ5r
-3cēq
-cēte3
-3cēu
-3cēv
-c2ĕ
-cĕ2ă
-cĕ3d
-cĕ2ĭ
-4c3ĕnnā
-cĕ3r2a
-cĕ3r2æ
-cĕ3r2ǣ
-2cĕrb
-cĕ3rē
-cĕ3r4ĕ
-cĕ3rī
-cĕ3rŏ
-cĕ3rŭ
-cĕ2s
-cĕ́3rĕ
-3cĕ́u
-3cĕ́v
-c2é
-3céa
-3céb
-céd2
-3cée
-cé2i
-3céne
-3cént
-3céq
-2cérb
-3cét
-3céu
-cé4ua.
-cé4uan
-cé4uā.
-cé3ue
-3cév
-2ch.
-5chane
-3chă.
-3chăm
-3chănĕ
-3chăq
-3chău
-3chăv
-3chắm
-4cháng
-che1
-che2i
-che2s
-chē2i
-chĕ1
-ch4lĭ
-2chm
-2chn
-2cht
-c2i
-ci2a
-ci4an
-ci3b
-3cida
-3cidá
-cide4i
-cidē4i
-3cido
-3cidó
-3cid4u
-3cidú
-cig3
-ci4gn
-ci2i
-cin2ā
-2cind
-cin4e
-cin4é
-3cisa
-3cisá
-3cisæ
-3cisǽ
-ci4s3c
-cis5ci
-3cise
-3cis2i
-3cisí
-3ciso
-3cisó
-4cissa
-4cissā
-4cissá
-4cissæ
-4cissǣ
-4cissǽ
-4cissī
-4cisso
-4cissō
-4cissó
-4cissu
-4cissū
-4cissú
-ci4s3t
-cis5ta
-cis5tā
-cis5té
-3cisú
-3citā
-cī3s4uī
-c2ĭ
-cĭ3b
-cĭn2a
-cĭn2ā
-cĭn2æ
-2cĭnd
-cĭnĭ5tĕ
-cĭnĭ5tō
-cĭ4st
-cĭs5tā
-cĭs5tă
-3cĭtā
-3cĭtă
-4cĭ́nd
-4cĭ́ssa
-4cĭ́ssā
-4cĭ́ssă
-4cĭ́ssæ
-4cĭ́ssǣ
-4cĭ́ssī
-4cĭ́ssō
-4cĭ́ssū
-4cĭ́ssŭ
-cí3b
-cí3d
-cíg3
-cí4gn
-2cínd
-4císsa
-4císsā
-4císsæ
-4císsǣ
-4císsī
-4císso
-4císsō
-4císsu
-4císsū
-cís3t
-cí3tuī
-cí3tur
-cí3tuu
-2cj
-c2l2
-c4lei
-c4leī
-c4leí
-c4leo
-c4leō
-c4leó
-c4leu
-c4leú
-c4le͞
-c4le͡
-c3lĕg
-c3léc
-c3léx
-2c2m2
-2c1n2
-cn4ē3m
-3co.
-co2a3q
-co3ā
-coǣ4u
-coǣ4v
-c2o3b2
-cobo3l
-coco5m
-coc5te
-co3ea
-co3eā
-co3eá
-co2ia
-co3it
-coī2
-coī4n
-coī́4
-coí2t
-co3l4u
-com1
-co4me4d
-co4me4s
-co2mē
-comē4d
-comē4s
-comḗ4d
-comḗ4s
-co4mé4d
-comé4s
-co4mit
-comí4t
-co4míte
-3con1
-4conc
-co4nia
-co4niá
-co4niē
-co4niú
-cons2
-co3ō
-co2pī
-3coq
-3cor
-co3re
-co3rī
-cot4e3
-co5ter
-3cou
-3cov
-2cōnc
-cōn3s2
-cō3r
-cŏ3ā
-cŏǣ4u
-cŏǣ4v
-c2ŏb2
-cŏcŏ3m4
-cŏc5tĕ
-cŏī2
-cŏī4q
-cŏī́4
-cŏĭ2
-cŏ3ĭt
-cŏĭ́2
-cŏ2m1
-cŏmē4d
-cŏmē4s
-cŏmḗ4d
-cŏmḗ4s
-cŏmĕ2
-cŏm3ĕd
-cŏmĭ́4
-cŏ3ō
-cŏ3pĕ
-cŏ2pī
-3cŏr
-cŏ3rī
-cŏ4rs
-cŏ3t4ĕ
-cŏtĕ3r
-3cŏ́
-cŏ́3g2
-cŏ́3ī
-cŏ́4m3ē
-cŏ́3rĭ
-cób2
-cóbo3
-có3ea
-có3eā
-có3em
-cóg2
-có3ie
-có1ī
-có3l2u
-có4mes
-có2m3ē
-cómi4ta
-cóm5ita.
-cóm5i4tā
-cómi6te.
-cóm5itē
-cómi4ti
-cóm5iti.
-cóm5i4tī
-cómi4to
-cóm5i4tō
-cóm5i6tum
-4cónc
-có4nia
-có4niu
-cón3s
-có2nu
-cót4e3
-2cq
-cqui4
-cquid3
-cquí2
-cquíd3
-c2r2
-3cra
-3cră
-cræ2ă
-crǣ2ă
-cre3d4
-cre5di
-cred6it
-cre5mi
-cre5mo
-cre2o
-cre3r
-cres3
-crēs3
-2crĕ.
-2crĕq
-2crĕu
-2crĕv
-2cri3n
-2crip
-cri6spé
-2crī
-3crīm
-3crī́m
-2crĭă
-2crĭb
-crĭ6spĕ
-2crĭŭ
-3crím
-cros2
-3crō
-crŏs2
-3crŭ
-2ct
-ct3enn
-cte5re
-ct3ĕnn
-ctĕ3rĕ
-ct3énn
-c3tr
-cu3b2
-cud2
-cuda3
-2c1uĕ
-cu3ia
-cu3iá
-cu3iæ
-cu3iǽ
-cu3ii
-cu3ií
-cu3io
-cu3ió
-cu3ium
-cu3ius
-cu3iú
-cule4i
-4culix
-4culíx
-2culp
-3cu2m1
-cuma2
-cu3men
-cum3i2
-cumī́4
-cumí2
-cumín3
-2c3unc
-2c3unx
-c2uo
-cupe3
-cuper4a
-cuper4ē
-cu3ré
-3cus
-cus4á
-cu2s3p
-c2ūl
-c1ūn
-3cūq
-cū3rē
-cū3rĕ
-cū3ré
-cū3rĭ
-3cūs
-cū2su
-3cūu
-3cūv
-c2ŭ
-2cŭăr
-2cŭăt
-cŭ3b2
-2cŭēs
-2cŭĕt
-2c3ŭ2lĭ
-3cŭ2m
-cŭm3ē
-cŭmī́4
-cŭm3ĭ
-cŭmĭ́4
-cŭmĭ́n5
-2cŭŏ
-cŭpĕ5rĕ
-3cŭ2s
-2cŭŭn
-cŭ́3b
-cŭ́m3ĭ
-3cŭ́s
-cúb2
-cú3ia
-cú3io
-cú3ium
-cú3ius
-2cúlp
-3cúm
-cú2ma
-cú2m3i2
-2c3únc
-2c3únx
-3cús
-2cv
-2c2x2
-cy4gn
-cype3
-cý4gn
-1d
-d2ab2
-d1ac
-2d1ad
-da2dó
-dad2u
-dad2ū
-dad2ú
-3dae
-d2aeu
-d2aev
-2d1a2g
-da4g3n
-d2al
-da4mab
-da4mand
-da4mane
-da4mans
-da6mant.
-d6amante
-da6mantn
-da6manto
-da6mantó
-da6mantq
-da6mantu
-da6mantú
-da6mantv
-da4maq
-da4mat
-da4mau
-da4mav
-da2má
-2d3a2me
-2d3a2mē
-da2mé
-d2a3mi
-3damn
-2da2mo
-2d3a2mō
-da2mó
-2danc
-da2ni
-da3ni.
-da3nib
-da3nin
-da3niq
-da3nis
-da3niu
-da3niú
-da3niv
-da2p
-d2a3re
-da3ri
-3darii
-3darií
-3dario
-3darió
-3dariu
-3dariú
-da3rí
-d2aru
-d2as3
-da2x3
-3dá͡e
-2d1ā2g
-d2ān
-d2ār
-2d3ā́4g
-d2ă3b2
-d1ăc
-d1ăd
-dă3d2ū
-d2ăg
-2d3ă2mē
-2d3ă2mĕ
-3dămn
-2d3ă2mō
-2d3ă2mŏ
-2dănc
-dă2p
-dă3ră
-dăs3
-d2ăt
-d2ắ
-d3ắmb
-5dắmnā
-5dắmnă
-5dắmnē
-5dắmnĕm
-5dắmnĕn
-5dắmnĕr
-5dắmnĕt
-5dắmnō
-5dắmnŏ
-d3ắnĭ
-dắ3rē
-d3ắrg
-d2á
-3dáe
-dá2g
-dá4gn
-2d3ámb
-2dámp
-2dámt
-4dántr
-dá2p
-2d3árg
-dás3
-2d3áus
-dá2x
-dæ2a
-dæ2ă
-dæ2á
-dæ2i
-d2æu
-dæ3ue
-dæ3uĕ
-dæ2ŭ
-d2æ3v
-dǣ2a
-dǣ2ă
-d2ǣu
-dǣ3ue
-dǣ3uĕ
-dǣ2ŭ
-d2ǣ3v
-d2ǣ́u
-d2ǣ́v
-d2ǽu
-d2ǽv
-2dc2
-2dd2
-dde2s
-ddē2s
-d3do
-dd4or
-d2eb
-ded2
-de2dā
-de2dē
-ded4i
-ded4o
-de2dō
-3dee
-de3es
-de3é2r
-de3és
-d2ef
-2d1eg
-de3go
-3dei
-de2ia
-de2iá
-de4ien
-de2ii
-de2ií
-de4io.
-de4ioq
-de4ior
-de4iou
-de4iov
-de4ión
-de4ióq
-de4iór
-de4ióu
-de4ióv
-de2it
-de4ium
-3deī
-3deí
-de2ma
-de2má
-de4me.
-de4meb
-de4mem
-de4mend
-de4mene
-de4mens
-de6ment.
-de6mente.
-de6mentem
-de6menten
-de6menteq
-de6mentes
-de6menteu
-de6mentev
-de6mentém
-de6mentés
-de6menti.
-de6mentia
-de6mentib
-de6mentin
-de6mentiq
-de6mentis.
-de6mentisn
-de6mentisq
-de6mentisu
-de6mentisv
-de6mentiue
-de6mentium
-de6mentiúm
-de6mentiv
-de6mentía
-de6mentín
-de6mentíq
-de6mentísn
-de6mentísq
-de6mentísu
-de6mentísv
-de6mentíu
-de6mentív
-de6mentn
-de6mentq
-de6mentu
-de6mentú
-de6mentv
-de4meq
-de4mer
-de4mes
-de4meu
-de4mev
-de2mé
-d3e4mi.
-d3e4mim
-de4mine
-d3e4miq
-d3e4mis
-d3e4mit
-d3e4miu
-d3e4miv
-d3e2mí
-d2emn
-de4mo.
-de4mone
-de4moq
-de4mor.
-de4morn
-de4morq
-de4moru
-de4morv
-de4mou
-de4mov
-de4móne
-de4móq
-de4mórn
-de4mórq
-de4móru
-de4mórv
-de4móu
-de4móv
-de4munt
-de4múnt
-d2en
-3deo
-depe4
-deper5
-deperi4
-deper7iu
-deperí4
-depé2
-depér3
-depéri4
-2d3ept
-de1r
-d2e3r2e
-dere5x4
-de3ré
-der4i
-deri5c
-de3rī
-der4í
-de3ríc
-de1s
-de4sca
-de4scá
-de4sci
-de4scí
-de4so
-de2só
-2d3ess
-des2t
-4dest.
-de4s3ta
-de4s5tā
-de4s3tá
-de4s5te
-de4s3tē
-de4s3té
-desti5t4
-de4s3tī
-destí5t4
-4destn
-de4s3to
-de4s3tō
-de4s3tó
-4destq
-de4s3tú
-4destv
-de4uĕ
-de2ul
-2deun
-deu4ra
-deu4rá
-deu4re
-deu4ré
-deu4ri.
-deu4rin
-deu4riq
-deu4ris
-deu4rit
-deu4riu
-deu4riv
-deu4rín
-deu4ríq
-deu4rís
-deu4rít
-deu4ríu
-deu4rív
-de5u4ro.
-de5u4ron
-de5u4roq
-de5u4ror
-de5u4rou
-de5u4rov
-deu4ró
-de3u4s
-deu4tan
-deu4tat
-deu4tát
-de5u4tet
-de3uti
-deu4ti.
-deu4tin
-deu4tiq
-deu4tiu
-deu4tiv
-deu4tín
-deu4tíq
-deu4tíu
-deu4tív
-de3u4to
-de3u4tó
-de3utu
-de3utú
-deū4s
-deū́4
-deú2
-de3únc
-de3úr
-deú4s
-de3úsa
-de3úsæ
-de3úsi
-d2ev
-de2x
-dē1
-d2ēb
-2d1ēg
-dē2ia
-dē2iā
-dē2iá
-dē2iæ
-dē2iǣ
-dē2iǽ
-dē4ien
-dē2iī
-dē2iō
-dē2ma
-dē2mā
-dē2mă
-dē2má
-dē4me.
-dē4mene
-dē6mente.
-dē6mentem
-dē6menten
-dē6menteq
-dē6menteu
-dē6mentev
-dē6mentē
-dē6mentém
-dē6mentib
-dē6mentis.
-dē6mentisn
-dē6mentisq
-dē6mentisu
-dē6mentisv
-dē6mentium
-dē6mentiúm
-dē6mentī
-dē6mentísn
-dē6mentísq
-dē6mentísu
-dē6mentísv
-dē6mentu
-dē6mentú
-dē4meq
-dē4mer
-dē4met
-dē4meu
-dē4mev
-dē2mē
-dē4mĕ.
-dē4mĕnĕ
-dē6mĕntē
-dē6mĕntĕ.
-dē6mĕntĕm
-dē6mĕntĕn
-dē6mĕntĕq
-dē6mĕntĕu
-dē6mĕntĕv
-dē6mĕntĕ́m
-dē6mĕntī
-dē6mĕntĭb
-dē6mĕntĭs.
-dē6mĕntĭsn
-dē6mĕntĭsq
-dē6mĕntĭsu
-dē6mĕntĭsv
-dē6mĕntĭŭm
-dē6mĕntĭŭ́m
-dē6mĕntĭ́sn
-dē6mĕntĭ́sq
-dē6mĕntĭ́su
-dē6mĕntĭ́sv
-dē6mĕntŭ
-dē4mĕq
-dē4mĕr
-dē4mĕt
-dē4mĕu
-dē4mĕv
-dē4mĕ́
-d3ē2mé
-dē4mim
-dē4mis
-d3ē4mit
-d3ē2mī
-dē4mĭm
-dē4mĭs
-d3ē4mĭt
-d3ē4mĭ́
-dē2mí
-dē4mō.
-dē4mōne
-dē4mōnĕ
-dē4mōq
-dē4mōu
-dē4mōv
-dē6mṓne
-dē6mṓnĕ
-dē4mṓq
-dē4mṓu
-dē4mṓv
-dēm4ū
-d2ēn
-dē3ne
-dēpe2
-dēper5
-dēperi4
-dēperī4
-dēperī́6
-dēpĕ2
-dēpĕr5
-dēpĕrī4
-dēpĕrī́6
-dēpĕrĭ4
-dēpĕ́4
-dēpĕ́r5
-dēpĕ́rĭ6
-dēpé2
-dēpér3
-dēpéri4
-d2ēr
-dē2sā
-d2ēu
-d2ēv
-2d3ḗg
-dḗ3ic
-dḗ3ĭc
-dḗ4ma
-dḗ4mā
-dḗ4mă
-d3ḗ4me
-dḗ4mē
-d3ḗ4mĕ
-dḗ4mim
-dḗ4mis
-dḗ4mit
-d3ḗ4mī
-dḗ4mĭm
-dḗ4mĭs
-dḗ4mĭt
-dḗ4mō
-dḗ4se
-dḗ4sĕ
-dḗ3sp
-dḗ5str
-d2ḗu
-d2ḗv
-dĕ5cĭm
-dĕd2
-dĕ2dā
-dĕ4dă
-dĕ2dē
-dĕd4ĭ
-dĕ2dō
-dĕ2dŏ
-dĕ2dŭ
-3dĕĕ
-dĕ3ĕ́
-d2ĕf
-3dĕ2ī
-dĕ2ĭ
-dĕ3ĭn
-dĕ3ĭ́n
-dĕ2ō
-2d1ĕp
-dĕ3r4ĕ
-dĕ3rī
-dĕ3rŏ
-4d3ĕrŭn
-dĕs5tĕ
-d2ĕt
-dĕū́2
-2dĕŭ
-3dĕŭm
-3dĕŭs
-d2ĕ́f
-d3ĕ́mp
-2d3ĕ́p
-dĕ́2q
-dĕ́3rĕ
-3dée
-dé3es
-d2éf
-2d1ég
-dé3in
-dé2ma
-2d3é2me
-d3é4mi.
-d3é4mim
-dé4mis
-d3é4mit
-dé4mo.
-dé4mor.
-2démp
-2d1ép
-d2ér
-d3érr
-dé4sa
-dé4sn
-dé3sp
-dé4sq
-2d3éss
-4déstn
-4déstq
-4déstv
-d2ésu
-dé4sv
-dé2x
-2df
-2dg2
-2d1h
-di2a
-d2ia.
-d2iab
-d2iam
-d2ian
-d2iaq
-d2iar
-d2ias
-d2iat
-d2iau
-d2iav
-d2iā
-2diă
-d2iá
-2d3i2ba
-2d3i2bá
-di2be
-di2bé
-4d3i4bim
-4d3i4bis
-4d3i4bit
-di4bím
-4d3i4bís
-4d3i4bít
-2d3i2bo
-2d3i2bó
-d2ibu
-4d3i4bun
-d2ibú
-4d3i4bún
-di3cem
-di3cen
-di3ces
-d2icé
-di3cém
-di3cén
-di3cés
-di3cib
-d2i3cu
-di4c3ue
-4d3i4cul
-d2i3cú
-4d3i4cúl
-d2id
-d2ieb
-d2iem
-d2ien
-d2ies
-d2iet
-d2iēb
-d2iēm
-d2iēs
-d2iēt
-d2iéb
-d2iém
-d2ién
-d2iés
-d2iét
-2d3i2ga
-2d3i2gā
-2d3i2gá
-2digæ
-2digǣ
-2d3i2gǽ
-4d3i4ge.
-4d3i4gea
-4d3i4geā
-4d3i4geá
-4d3i4geb
-4d3i4gem
-4d5i4gend
-4d5i4gene
-4d5i4gens
-4d5i4gent
-4d3i4geo
-4d3i4geō
-4d3i4geó
-4d3i4geq
-4d3iger
-4d5i4ges.
-4d5i4gesn
-4d5i4gesq
-4d5i4gesu
-4d5i4gesv
-4d3i4get
-4d3i4geu
-4d3i4gev
-2d3i2gē
-di2gé
-4d3igéb
-4d3igém
-4d3igén
-5digéna
-4d3igéq
-4d3igér
-4d5igésn
-4d5igésq
-4d5igésu
-4d5igésv
-4d3igét
-4d3igéu
-4d3igév
-di2gi
-2d3i2gī
-di2gí
-dig5no.
-di5gnore
-di5gnori
-di5gnorí
-dig5norum
-dig5norúm
-di6g5nos.
-di6g5nosn
-di6g5nosq
-di6g5nosu
-di6g5nosv
-di6g5noue.
-di6g5nove.
-di5g6nóre
-2d3i2go
-2d3i2gō
-2d3i2gó
-2d3i2gu
-2d3i2gú
-d2iīs
-2dim.
-2d3i2ma
-2d3i2mā
-2d3i2má
-2di2me
-2d3i2mē
-di2mé
-4diméb
-4dimém
-4dimér
-4dimés
-4dimét
-4d3i4mi.
-4d3i4mia
-4d3i4miā
-4d3i4miá
-4d3imic
-4dimie
-4dimiē
-4dimié
-4dimii
-4d3i4miī
-4d3i4mií
-4d3i4mim
-di4mine
-4d3i4mio
-4d3i4miō
-4d3i4mió
-4d3i4miq
-4dimir
-4d3imis
-4d3imit
-4d3i4miu
-4d3i4miú
-4d3i4miv
-2d3i2mī
-2dimí
-di4míe
-di4mím
-di4mín
-di4míq
-di4míu
-di4mív
-2dimn
-2d3i2mo
-2d3i2mō
-2d3i2mó
-2dimq
-4d3i4mun
-di3mú
-4d3i4mún
-2dimv
-din2ā
-din2d
-d4ine
-d4inē
-d4iné
-d4ini
-d4inī
-d4iní
-di2nu
-d4inú
-d2io.
-d2ioq
-d2ior
-d2iou
-d2iov
-d2iō
-2diŏ
-d2ió
-d1ip
-di2pi
-di2pī
-d2ips
-d2iq
-dir5emé
-dir5e4mí
-di2rē2
-dirḗ4
-dir5éme
-diri4m
-di5s6cende
-di5s6cens
-dispe6r5
-disperi6
-disperī6
-disperī́6
-disperí6
-dispé4r5
-di3spi
-di3spí
-di5s4ta.
-di5s4tam
-di5s4taq
-di5s4tar
-di5s4tas
-di5s4tat
-di3s4tā
-di3stá
-dis4tám
-dis4tán
-dis4táq
-dis4tár
-dis4tás
-dis4tát
-di5s4tem
-di5s6tent.
-di5s6tentn
-di5s6tentq
-di5s6tentue
-di5s6tentv
-di5s6tern
-di5s4tes
-di5s4tet
-di3s4tē
-di5s4tém
-di5s6téntn
-di5s6téntq
-di5s6téntue
-di5s6téntv
-di5s6térn
-di5s4tés
-di5s4tét
-di5stím
-di5s4to.
-di5s4ton
-di5s4toq
-di5s4tou
-di5s4tov
-di3s4tō
-di5s4tón
-di5s4tóq
-di5s4tóu
-di5s4tóv
-di5s6trar
-di5s6tras
-di5s6trat
-di5s6trau
-di5s6trav
-di5s6trār
-di5s6trās
-di5s6trāt
-di5s6trāu
-di5s6trāv
-di5s6trā́r
-di5s6trā́s
-di5s6trā́t
-di5s6trā́u
-di5s6trā́v
-di5s6trár
-di5s6trás
-di5s6trát
-di5s6tráu
-di5s6tráv
-di5s4trī
-d2ite
-d2ité
-di4tiā
-4d3i4tib
-d4itn
-d4itq
-4d3i4tui
-4d3i4tuī
-4d3i4tuí
-di4tuum
-4d3i4tuú
-di4tūs
-d4itv
-4d3i4uia
-4diuiā
-4diuiá
-4diuiæ
-4diuiǣ
-4diuiǽ
-4d3i4uii
-4d3i4uiī
-4d3i4uií
-4d3i4uio
-4d3i4uiō
-4d3i4uió
-2di2uī
-4d3i4uía
-d4ius
-2diŭ
-d2iv
-d3i4via
-d3i4vii
-d3i4viī
-d3i4vií
-d3i4vio
-d3i4viō
-d3i4vió
-2di2vī
-d3i4vía
-di2xu
-2d1ī2b
-d2īne
-d2īnĕ
-dīo4n
-dīó2
-d2īq
-d2īs.
-dīs2c
-d2īsn
-2dīso
-2dīsŏ
-2dīsó
-d2īsq
-d2īsu
-d2īsv
-d2īu
-d2īv
-dī2xu
-2d3ī́2b
-d2ī́n
-d2ī́q
-d2ī́u
-d2ī́v
-d2ĭ3b
-dĭ4cŭl
-d2ĭē
-d2ĭĕn
-d2ĭĕt
-d2ĭĕ́
-dĭ2g
-2dĭga
-2d3ĭgā
-2d3ĭgă
-2dĭgá
-2dĭgæ
-2dĭgǣ
-2dĭgǽ
-2d3ĭgē
-2dĭgĕ
-d3ĭgĕ.
-d3ĭgĕā
-d3ĭgĕă
-d3ĭgĕm
-5dĭgĕna
-5dĭgĕnā
-5dĭgĕnă
-5dĭgĕná
-5dĭgĕnæ
-5dĭgĕnǣ
-5dĭgĕnǽ
-d5ĭgĕnd
-d5ĭgĕnĕ
-5dĭgĕnī
-d5ĭgĕnt
-d3ĭgĕō
-d3ĭgĕq
-d3ĭgĕt
-d3ĭgĕu
-d3ĭgĕv
-d3ĭgĕ́
-5dĭgĕ́nă
-2d3ĭgī
-2d3ĭgō
-2d3ĭgŭ
-2d3ĭ2mā
-2d3ĭ2mă
-2d3ĭ2mē
-2d3ĭ2mĕ
-2d3ĭ2mī
-d3ĭ4mĭā
-d3ĭ4mĭă
-d3ĭ4mĭī
-d3ĭ4mĭm
-d3ĭ4mĭō
-d3ĭ4mĭŏ
-d3ĭ4mĭs
-d3ĭ4mĭt
-d3ĭ4mĭŭ
-d3ĭ4mĭ́
-2d3ĭ2mō
-2d3ĭ2mŏ
-dĭ3mŭ
-4d3ĭ4mŭn
-dĭn2a
-dĭn2ā
-dĭn2æ
-dĭn2d
-d4ĭnē
-d4ĭn2ĕ
-d4ĭnī
-d4ĭnĭ
-d4ĭnŭ
-d1ĭp
-dĭ2pī
-dĭ2rē2
-dĭrḗ4
-dĭr3ĕ
-dĭ2sĭ
-dĭspĕ4r5
-dĭspĕrī6
-dĭspĕrī́6
-dĭs6pĕ́rn
-dĭ3s4pĭ
-dĭ3s4tā
-dĭs4tăt
-dĭ3s4tē
-dĭ5s6tĕnt.
-dĭ5s6tĕntn
-dĭ5s6tĕntq
-dĭ5s6tĕntu
-dĭ5s6tĕntv
-dĭ5s6tĕrn
-dĭ5s4tĕt
-dĭ5s6tĕ́ntn
-dĭ5s6tĕ́ntq
-dĭ5s6tĕ́ntu
-dĭ5s6tĕ́ntv
-dĭ5s6tĕ́rn
-dĭ5s6tĕ́t
-dĭ3s4tō
-dĭ5s6trār
-dĭ5s6trās
-dĭ5s6trāt
-dĭ5s6trāu
-dĭ5s6trāv
-dĭ5s6trā́r
-dĭ5s6trā́s
-dĭ5s6trā́t
-dĭ5s6trā́u
-dĭ5s6trā́v
-dĭ5s4trī
-d2ĭtĕ
-dĭ4tĭā
-d3ĭ4tĭb
-4d3ĭ4tūs
-4d3ĭ4tŭī
-4d3ĭ4tŭŭ
-2d1ĭ2u
-2d1ĭ2v
-4d3ĭ́4cŭ
-dĭ́2g
-4d3ĭ́4gă
-4d5ĭ́gĕā
-4d5ĭ́gĕă
-6d5ĭ́gĕnĕ
-4d5ĭ́gĕō
-4d5ĭ́gĕq
-4d5ĭ́gĕt
-4d5ĭ́gĕu
-4d5ĭ́gĕv
-4d3ĭ́gŭ
-4d3ĭ́4mĕ
-4d5ĭ́4mĭā
-4d5ĭ́4mĭă
-4d5ĭ́mĭē
-4d5ĭ́mĭĕ
-4d5ĭ́4mĭī
-4dĭ́mĭĭ
-4d5ĭ́4mĭm
-4d5ĭ́4mĭō
-4d5ĭ́4mĭŏ
-4d5ĭ́4mĭt
-4d5ĭ́mĭŭ
-4dĭ́nt
-4d3ĭ́nu
-4d3ĭ́nv
-d2ĭ́p
-dĭ́2r3
-dĭ́5spĭ
-dĭ́5s4tā
-dĭ́5s4tă
-dĭ́5s4tē
-dĭ́5s4tĕ
-dĭ́5s4tō
-dĭ́4tĭb
-4d3ĭ́4tŭ
-2d3ĭ́2u
-2d3ĭ́2v
-d1íb
-2dí2ba
-dí2be
-4dí4bim
-4dí4bis
-4dí4bit
-2dí2bo
-2dí2bu
-dí4ciā
-dí4cie
-dí4ciē
-d2ícu
-dí4c3ue
-4d3í4cul
-2d3í2ga
-4d3í4gea
-4d3í4geā
-4d5í4gene
-4d3í4geo
-4d3í4geō
-4d3í4geq
-4d3í4get
-4d3í4geu
-4d3í4gev
-dí4gia
-dí4gib
-dí4giu
-dí4g3n
-2d3í2gu
-2d3í2me
-4d3í4mia
-4d3í4miā
-4d3í4mie
-4d3í4miē
-4d3í4mii
-4d3í4miī
-4d3í4mim
-4d3í4mio
-4d3í4miō
-4d3í4mit
-4d3í4miu
-2dímn
-2dímq
-2dímv
-d2ín
-d3íns
-2dínt
-d3ínte
-dí4nue
-2d3ínv
-d2íq
-dí4r3i4m
-dí3spi
-dí3s4ta
-dí3s4tā
-dí3s4te
-dí3s4tē
-dí3s4to
-dí3s4tō
-4d3í4tib
-4d3í4tui
-4d3ítuī
-dí3tur
-4d3ítuu
-d2íu
-4d3í4uia
-4díuiā
-4díuiæ
-4díuiǣ
-4d3í4uii
-4d3í4uiī
-d2ív
-4d3í4via
-4díviā
-4díviæ
-4díviǣ
-4d3í4vii
-4d3í4viī
-dí2xu
-2dj
-2dl2
-d3lu
-2d1m
-2d1n2
-d3ne
-d3nĕ
-dnéx2
-dob3r
-dob2ū
-d2oc
-doco2
-doc5te
-do1e2
-4d3olem
-4d5oles.
-4d5olesn
-4d5olesq
-4d5olesu
-4d5olesv
-4d5olēs.
-4d5olēsn
-4d5olēsq
-4d5olēsu
-4d5olēsv
-6d5olḗsn
-6d5olḗsq
-6d5olḗsu
-6d5olḗsv
-4d3olém
-4d5olésn
-4d5olésq
-4d5olésu
-4d5olésv
-do4lib
-dol4u
-domi3
-d2on
-3don.
-do3ne
-do3ni
-d1op
-do2pé
-2d3ord
-d4ori.
-d4orin
-d4oriq
-do4rit
-d6oriue.
-d6orive.
-d4orī.
-d4orīn
-d4orīq
-d6orīue.
-d6orīve.
-d4orī́n
-d4orī́q
-d6orī́ue.
-d6orī́ve.
-d4orín
-d4oríq
-d6oríue.
-d6oríve.
-2d3o4rn
-do4rq
-do4rv
-d2os
-dos2p
-do3u
-do3v
-3dōc
-d2ōn
-3dōn.
-d2ōs
-4dṓrd
-4dṓrn
-dŏb2ū
-d2ŏc
-dŏc5tĕ
-4d5ŏlēs.
-4d5ŏlēsn
-4d5ŏlēsq
-4d5ŏlēsu
-4d5ŏlēsv
-6d5ŏlḗsn
-6d5ŏlḗsq
-6d5ŏlḗsu
-6d5ŏlḗsv
-4d3ŏ4lĕm
-4d5ŏ4lĕ́m
-dŏ4lĭb
-dŏ4lĭs
-dŏ4lĭŭ
-dŏ3mĭ3
-d2ŏn
-d1ŏp
-dŏ2r
-dŏ3ră
-d2ŏ3rĕ
-d4ŏrī.
-d4ŏrīn
-d4ŏrīq
-d3ŏrīs
-d6ŏrīuĕ.
-d6ŏrīvĕ.
-d4ŏrī́n
-d4ŏrī́q
-d6ŏrī́uĕ.
-d6ŏrī́vĕ.
-d3ŏrĭt
-dŏs2p
-4d3ŏ́lĭ
-dŏ́4lĭb
-dŏ́4lĭŭ
-d4ŏ́rĕ
-dŏ́4rĭŭ
-dób3
-d2óc
-dól2
-2d3óli
-dó2pe
-dó1r
-2d3órd
-dó4riā
-dó4rie
-dó4riē
-dó4rio
-dó4riō
-dó4riu
-d2órn
-4dórna
-4dórnem
-4dórnen
-4dórner
-4dórnes
-4dórnet
-4dórno
-d2ós
-dós2p
-dó2xu
-2dp
-2dq
-d3qu
-dqui4
-dquid3
-dquí2
-dquíd3
-dr2
-d2ra
-d2rā
-d2ră
-d2rá
-d2ræ
-d2rǣ
-d2rǽ
-d3rex2
-dre5xi
-dri3e
-dri3é
-dri5re5
-d2rĭă
-drĭ3ĕ
-d2rĭī
-d2rĭō
-d2rĭŭ
-d2rō
-d3rŏg
-d2ró
-d2ru
-d2rŭ
-dr4ŭn
-dr4ŭ́
-d2rú
-2d1s2
-d2ua
-d2uá
-dub2
-4d3u4cul
-4d3u4cúl
-2d3ueb
-2d3uem
-2d3uen
-2d3ues
-2d3uet
-d1uē
-2d3uĕ
-d1ué
-2d3uím
-d4ulæ
-d4ulǽ
-d4uli
-d4ulí
-d4ulu
-d4ulú
-du2m
-2d3ume
-2d3umé
-du2n
-d3unc
-d3und
-du3ni
-du3ní
-d2uo
-dupe3
-duper4
-du3r2u
-d4us.
-d4usn
-du3s4tr
-d4usu
-d4usv
-d1ut
-2du2ta
-2du2tá
-2du2tæ
-2du2tǽ
-2du2te
-du2té
-4du4ti.
-4du4tib
-4dutil
-4du4tin
-4du4tiq
-4du4tis
-4du4tiu
-4du4tiv
-2du2tí
-2du2to
-2du2tó
-2du2tu
-2du2tú
-2d1u2u
-2d1u2v
-d2ux
-du2xu
-4d3ū4cul
-4d3ū4cŭl
-4d5ū4cŭ́l
-4d3ū4cúl
-2d1ū2m
-dū2n
-dūn4e
-dūn4ĕ
-dū3nī
-2d1ū2t
-3dūtia
-3dūtiā
-3dūtiá
-3dūtiæ
-3dūtiǣ
-3dūtiǽ
-3dūtiī
-3dūtĭa
-3dūtĭā
-3dūtĭá
-3dūtĭæ
-3dūtĭǣ
-3dūtĭǽ
-3dūtĭī
-4d5ū́4cul
-4d5ū́4cŭl
-2d3ū́2t
-5dū́tia
-5dū́tiā
-5dū́tiæ
-5dū́tiǣ
-5dū́tiī
-5dū́tĭa
-5dū́tĭā
-5dū́tĭæ
-5dū́tĭǣ
-dū́4tĭb
-5dū́tĭī
-d2ŭă
-dŭb2
-d1ŭē
-2d3ŭĕn
-2d3ŭĕt
-2d3ŭĕ́
-3dŭī
-3dŭĭ
-4dŭĭs.
-d4ŭnt
-dŭpĕ3r
-dŭ3str
-2d1ŭ2u
-2d1ŭ2v
-d2ŭx
-dŭ́3b
-d2ŭ́m
-d3ŭ́nc
-d3ŭ́nd
-dŭ́5str
-2dŭ́u
-2dŭ́v
-dúb2
-4d3ú4cul
-dú2lo
-d2úm
-d3úmb
-dú2na
-2d3únc
-2d3únd
-dú3s4tr
-2d1ú2t
-3dútia
-3dútiæ
-3dútii
-2d1ú2u
-2d1ú2v
-dú2xu
-2dv
-d3ve
-d3vĕ
-2d2x2
-d2y
-d2ý
-2ea.
-eab2
-e2ace
-ea2cu
-ea2cú
-ead2
-2e2ae
-e2ami
-e2an
-2eane
-2e2a3q
-e2ar
-2earú
-e2as
-ea3tr
-2eau
-2eav
-2ea͞
-e2a͞e
-e2á͞
-e3á͞u
-2ea͡
-e2a͡e
-e2á͡
-e3á͡u
-e2ā
-2eā.
-2eān
-2eāq
-2eāru
-2eārú
-2eāu
-2eāv
-2eā́n
-2eā́q
-2eā́u
-2eā́v
-e1ă
-e2ăcĕ
-eă2cŭ
-e2ăn
-e2ăq
-e2ău
-e2ăv
-e2ắm
-e3ắmb
-e2á
-eá2cu
-2eáe
-e3ál
-e3ámb
-2eáne
-eá2nu
-2eáq
-2eáu
-e3áud
-2eáv
-2e2æ
-eæ2a
-eæ2á
-eæ2i
-2e2ǣ
-eǣ2a
-2e2ǽ
-eb2
-eba3q
-ebæ3
-ebe3d
-ebe3ia
-ebe3iá
-ebe3iæ
-ebe3iǽ
-ebe3ie
-ebe3ié
-ebe3io
-ebe3ió
-ebe3iú
-ebé3io
-e3bi
-ebī3u
-ebī3v
-eb4ri
-ebs3
-e2bul
-e3bŭ
-2ec
-e4c3enn
-ecen3s
-ecēn3s
-e4c3énn
-e5cént
-ec3le
-ec3lē
-ec3o2p
-ec3ue.
-ecu3ma
-ecu3mā
-ecu3má
-ecu3me
-ecu3m4i
-ecumi5q
-ecu3m4ī
-ecumī́5n
-ecumī́5q
-ecumī́5u
-ecumī́5v
-ecu3m4í
-ecumí5q
-ecumí5u
-ecumí5v
-2ed.
-ed1a
-e3da.
-ed2ae
-ed5ama
-e3dane
-e3d2a3q
-e5dari.
-e5darin
-e5dariq
-e5dariv
-e5darín
-e5daríq
-e5daríu
-e5darív
-e5darum
-e3darú
-e3daue
-e3dav
-e3d4a͡e
-ed4á͡e
-ed3ā́c
-e2d3ác
-e4d3áni
-ede2g
-e2dem
-ed3eme
-ed3emé
-e3deō
-e3deó
-ede2s3
-ede6ste
-e3deú
-edē2g
-ed3ēmē
-edē2s
-edḗ4g
-edĕ3r
-edé2g
-e2diǣ
-e2d3i2g
-ed3ime
-ed3imé
-edi4mis
-edi4mit
-ed3i4mí
-e2d3in
-e2di2p
-edi4s3
-edis5c
-edi6sce
-edis7cen
-ed4it.
-ed5i4ta͞
-e4d3i4tǣ
-edi4tiō
-e4d3i4tī
-ed5i4tōr
-ed5i4tōs
-e4d3i4tū
-edi5ue.
-edi5ve.
-edī5ue.
-edī5ve.
-e2d3í2g
-e4d3ínu
-ed5í4tiō
-e2d3o2l
-e2do2p
-e2dōr
-e2d3ó2l
-e2d3óp
-ed2r
-ed3ue.
-e2d3ul
-e2dun
-edu3no
-edu3nó
-ed2ū
-edū3n
-e3d2ŭ
-ed4ŭĕ
-ed3úlc
-2e1e2
-e2el
-e2em
-ee3mi
-ee3mu
-ee3mú
-e2en
-e2e3q
-ee4ra
-ee3re
-ee4ro
-ee4rō
-ee3ti
-ee3tí
-e2ev
-eex3
-2e2ē
-eēn3
-e1ĕ2
-e2ĕō
-e2ĕ3q
-eĕ4rō
-e2ĕŭ
-eĕ́2
-2eé
-e2éq
-eé2ru
-2efe
-2efé
-2efi
-2efí
-2e3g2a
-e3g2æ3
-e3ge.
-e3gen
-e3geq
-e3geu
-e3gev
-2egm
-eg3no
-e2go
-e3go.
-e3gon
-e3goq
-e3gor
-e3gou
-e3gov
-e2gō
-e3gō.
-e3gōn
-e3gōq
-e3gōu
-e3gōv
-e3gṓn
-e3gṓq
-e3gṓu
-e3gṓv
-e2gót
-egu6ste
-e1h
-2e1i
-ei2a
-e2ia͡
-e3iát
-e2iæ
-e2iǣ
-e2iǽ
-ei2b
-e3i2ce
-ei2cé
-ei2ci
-ei2cí
-ei2cu
-ei2cú
-e2id
-ei2i
-ei2m
-ei2n
-e2i3na
-e2i3ni
-e2i3nī
-e2i3ní
-e2i3nú
-ei2o
-eio2s
-e2i3q
-ei2r
-e2is
-e3ist
-ei2t
-ei3ta
-ei3tā
-ei3tá
-eite3
-e4i3ue
-e2iué
-e2iui
-e2iuí
-e3iur
-e2i3v
-2eī
-e1ī2b
-e1ī2m
-e2īq
-e1ī2r
-e2īs
-e3īss
-e3īst
-e1ī2t
-e2īu
-e2īv
-e2ī́
-e3ī́2b
-e3ī́2m
-e3ī́2r
-e3ī́2t
-e1ĭ2
-eĭ́2
-2eí
-e1í2b
-e1í2c
-e2íe
-e3íer
-e1íi
-e1í2m
-e3ínc
-e3índ
-e2íq
-e1í2r
-e3íst
-eí2te
-eí2to
-e2íu
-e2ív
-e3la.
-e3lae
-e3lam
-e3lan
-e3laq
-e3lar
-e3las
-e3lau
-e3lav
-e3la͡
-e3láe
-e3lám
-e3lán
-e3láq
-e3lár
-e3lás
-e3láu
-e3láv
-2e3læ
-2e3lǽ
-4e3le.
-e2leg
-ele2i
-4e3len
-4e3leq
-4e3les
-elē2
-3e2léc
-e3lis
-eli6sta
-e3lís
-2ell
-e2l3ue
-el3uē
-el3ué
-el4ui
-e2l3u2t
-e1m
-2em.
-em2am
-e4mani
-e4maní
-e2m3a2x
-e4m3áni
-e2m3áx
-e5mem.
-e5memn
-e5memq
-e5memv
-em2eq
-eme4s
-e4m3esa
-e4m3esá
-e4mesæ
-e4mesǽ
-e4m3ese
-e4m3esé
-e4m3esi
-e4m3esí
-4emete
-4emeté
-2e3mēt
-e5mémn
-e5mémq
-e5mémv
-emé4s
-e4mésa
-e4m3ése
-e4m3ési
-em2i
-emi3ac
-emi3án
-emi3es
-4emini
-4eminí
-e5mité
-emi3u
-2emne
-1emp
-em3pn
-2emq
-1emt
-2emu
-em2uē
-em2ué
-e2muī
-e5mul.
-em3ulc
-2emú
-e2m3úl
-2emv
-en2a
-en4an
-ena3ni
-ena3ní
-5e4narib
-en2ā
-ená3ni
-5e4nárib
-2en3d2
-end4u
-end4ú
-2ene
-en3eat
-en3eát
-en2e2x
-e3nĕ1
-eni3tu
-ení5tuī
-en2o
-eno3b2
-en2ŏ
-en2sc
-en3s2i
-ensi5ti
-en4sn
-en4sq
-ens3t
-ens4ué
-en4sv
-2ent
-ente5re
-e1n2u
-e1oc
-eo2g3n
-e2on
-eo3ni
-eo3p2
-eo5rā́
-eo3rá
-e3ors
-2eorú
-2e2os
-e2ōn
-2eōr
-2e2ōs
-2eṓr
-2eṓs
-e2ŏ
-e2ó
-eó2g
-eó2nu
-eó3p2
-e3órs
-2eós
-eper4ē
-eperi4b
-eperi4r
-eper4ī
-eperí4r
-epĕ3r
-epĕ5rĭ
-e3pé
-epére5r
-3e4pisc
-epi5s4tr
-3e4písc
-epo4ter
-epote6ri
-epote6rí
-epo4tes
-epŏ4tĕs
-2eps
-ep4se.
-ep4sen
-ep4seq
-ep4seu
-ep4sev
-ep2su
-4e3que
-2er.
-2e3ra.
-e3raba
-e3rabá
-e3rabe
-e3rabé
-e5rabil
-e5rabim
-e5rabis
-e5rabit
-e3rabí
-e3rabo
-e3rabó
-e5rabunt
-e5rabúnt
-era2c
-er3act
-era2d3
-eradi4
-eradí4
-e3rae.
-e3raea
-e3raeā
-e3raeá
-e3raei
-e3raeī
-e3raeí
-e3raen
-er3aes
-e3raeu
-e3raev
-era2g
-er5ama
-e3rame
-e3ramé
-e5ramin
-e5ramur
-e5ramúr
-e3rand
-4e5rane
-e3rané
-e3rans
-e5rante
-e5rantē
-e5ranté
-e5ranto
-e5rantō
-e5rantó
-e5rantú
-era2p
-2e3raq
-e3rar.
-e5rare.
-e5rareq
-e5rareu
-e5rarev
-e5rari.
-e5raria
-e5rariá
-e5rariæ
-e5rariǽ
-e5rarie
-e5rarié
-e5rarii
-e5rarií
-e5rarim
-e5rarin
-e5rario
-e5rarió
-e5rariq
-e5raris
-e5rarit
-e5rariu
-e5rariú
-e5rariv
-e3rarí
-e3rarn
-e3rarq
-e5r6arum
-e5rarun
-e5r6arúm
-e5rarún
-e3rarv
-e3rass
-e5rasti.
-e5rastin
-e5rastiq
-e5rastis
-e5rastiu
-e5rastiv
-e5rastín
-e5rastíq
-e5rastís
-e5rastíu
-e5rastív
-eras4to
-eras4tō
-eras4tó
-e3rata
-e3ratá
-e3ratæ
-e3ratǽ
-e3rate
-e3rato
-e3rató
-e3ratr
-e3ratu
-e3ratú
-2erau
-e3raue
-e3raué
-e3raui
-e3rauí
-2e3rav
-e5ra͞e.
-e5ra͞ea
-e5ra͞eā
-e5ra͞eá
-e5ra͞eī
-e5ra͞en
-e5ra͞eu
-e5ra͞ev
-e5rá͞ea
-e5rá͞eā
-e5rá͞eī
-e5ra͡e.
-e5ra͡ea
-e5ra͡eā
-e5ra͡eá
-e5ra͡ei
-e5ra͡eī
-e5ra͡eí
-e5ra͡en
-e5ra͡eu
-e5ra͡ev
-e5rá͡ea
-e5rá͡eā
-e5rá͡ei
-e5rá͡eī
-e5rá͡en
-e5rá͡eu
-e5rá͡ev
-e3r2ă
-er3áct
-e2r3ád
-er3áes
-e2r3á2g
-er3áll
-e4r3ámb
-er3á4pe
-er5ás4te
-er5ás4to
-er5ás4tō
-er3áud
-er1æ2
-e3ræ.
-e3ræa
-e3ræā
-e3ræá
-e3rææ
-e3ræǽ
-e3ræi
-e3ræī
-e3ræí
-e3ræn
-e3ræu
-e3ræv
-er1ǣ2
-e3rǣ.
-e3rǣa
-e3rǣā
-e3rǣá
-e3rǣǣ
-e3rǣī
-e3rǣn
-e3rǣu
-e3rǣv
-e3rǣ́a
-e3rǣ́ā
-e3rǣ́ǣ
-e3rǣ́ī
-e3rǣ́n
-er3ǣ́s
-e3rǣ́u
-e3rǣ́v
-er3ǽs
-e1re
-2e3re.
-2erea
-2ereá
-2e3reæ
-2e3reǽ
-ere4d4
-ered6it
-2e3ree
-2e3reé
-ere2g
-2e3re2i
-2e3reí
-ere2l
-e3rem.
-e4r3e4ma
-er3e4mā
-e4r3e4má
-er3e4me
-er3e4mē
-er3e4mé
-er5e4mim
-e5remini
-e5reminí
-er5e4mis
-e4r5e4mit
-er3e4mī
-ere4mím
-ere4mín
-ere4mít
-ere4mo.
-ere4moq
-ere4mou
-ere4mov
-ere4mō.
-ere4mōq
-ere4mōu
-ere4mōv
-ere4móq
-ere4mór
-ere4móu
-ere4móv
-e3remq
-e3remu
-e4r5e4mun
-e3remú
-er5e4mún
-e3remv
-2eren
-ere4na
-e3rend
-e3rene
-e3rent
-2ere2o
-2ereó
-2ereq
-e5reque
-e3rer.
-er3era
-er3erā
-er3erá
-e3rere
-e3rerí
-e3rern
-er3ero
-er3erō
-er3eró
-e3rerq
-e5rerue
-er3erú
-e3rerv
-e3res.
-e3resn
-e3resq
-er3ess
-eres3t
-ere4su
-ere4sú
-e3resv
-e3ret
-2ereu
-e3reue
-2ereú
-2erev
-e3reve
-2erē
-e2rē2d
-erē2g
-erē2i
-e5rēminī
-e5rēmu
-e5rēmú
-e5rēne
-e5rēre
-e5rēri
-e5rērí
-e5rēue
-e5rēve
-erḗ4d
-e4rḗ4g
-e5rḗminī
-e5rḗmu
-er5ḗna
-e5rḗne
-e5rḗq
-e5rḗre
-e5rḗri
-e5rḗt
-e5rḗue
-e5rḗve
-e1rĕ
-erĕ2s3
-2eré
-3eréc
-eré2d
-e2ré2g
-eré4mer
-er5é4mim
-eré6miti
-eré6mito
-eré6mitō
-eré6mitu
-e4r3éna
-er3éss
-e2réx
-2e3ri.
-e3ria.
-e3riae
-e3riam
-e3rian
-e3riaq
-e3riar
-e3rias
-e3riat
-e3riau
-e3riav
-e3ria͞
-e3ria͡
-e3riā
-er3iác
-e3riáe
-e3riám
-e3rián
-e3riáq
-e3riár
-e3riás
-e3riát
-e3riáu
-e3riáv
-e3riæ
-e3riǣ
-e3riǽ
-2erib
-er3i4ba
-er3i4bá
-er3i4be
-er3i4bé
-er3i4bi
-er3i4bí
-eri4bo.
-eri4bon
-eri4boq
-eri4bor
-eri4bou
-eri4bov
-er3i4bó
-eri6bunt
-eri6búnt
-eri4cer
-er5i4cér
-er3i4ci
-e3ricu
-e3ricú
-e3ride
-e3ridē
-e3ridé
-e3ridi
-e3ridī
-e3ridí
-eri4dō
-eri4dó
-e3ridu
-e3ridú
-2erie
-e3rie.
-e3rieb
-e3riem
-e3rien
-e3rieq
-er3ier
-e3ries
-e3riet
-e3rieu
-e3riev
-e3riē.
-e3riēb
-e3riēm
-er6iēne
-e3riēq
-er3iēr
-e5riēri
-e5riērí
-e3riēs
-e3riēt
-e3riēu
-e3riēv
-e5riḗb
-e5riḗm
-e5riḗri
-e5riḗs
-e5riḗt
-2erié
-e3riéb
-e3riém
-e5riénd
-e5riént
-e3riéq
-er3iér
-e5riéris
-e3riés
-e3riét
-e3riéu
-e3riév
-er3iim
-er3iis
-e5riis.
-e5riisn
-e5riisq
-e5riisu
-e5riisv
-er3iit
-e3riīs
-e5riī́s
-e5riísn
-e5riísq
-er5iíss
-er5iíst
-e5riísu
-e5riísv
-er3iít
-er3i4ma
-er3i4mā
-er3i4má
-eri4me.
-eri4meb
-eri4mem
-eri4men
-eri4meq
-eri4mer
-eri4mes
-eri6met.
-eri6meti
-eri6metí
-eri6metn
-eri6metq
-eri6metu
-eri6metú
-eri6metv
-eri4meu
-eri4mev
-eri4mēb
-eri4mēm
-eri4mēn
-eri4mēr
-eri4mēs
-eri4mēt
-eri6mḗb
-eri6mḗm
-eri6mḗn
-eri6mḗr
-eri6mḗs
-eri6mḗt
-eri4mé
-er5i4mi.
-er5i4mim
-e6r5i6mine
-e5riminī
-er5i4miq
-er5i4mis
-er5i4mit
-er5i4miu
-er5i4miv
-er3i4mī
-er3i4mí
-eri4mo.
-eri4moq
-eri4mor
-eri4mou
-eri4mov
-eri4mō.
-eri4mōq
-eri4mōu
-eri4mōv
-eri4móq
-eri4mór
-eri4móu
-eri4móv
-e5rimue
-er5i4mun
-er5i4mún
-2erin
-e3rio
-e3riō
-e3rió
-e3rip
-2e3riq
-er3ire
-er3iré
-er3iri
-er3irí
-eri6sne
-eri6squ
-eri6sue
-eri6sve
-e3rité
-er5itib
-eri6tne
-e5ritōt
-e5ritṓt
-eri6tqu
-eri6tue
-er5itui
-er5ituī
-er5ituí
-er5ituú
-eri6tve
-2eriu
-er6iue.
-er3iué
-er3iui
-er3iuí
-e5rium.
-e5riumn
-e5riumq
-e5riumu
-e5riumv
-er3iun
-e5riunt
-e3rius
-e3riúm
-er3iún
-e5riúnt
-e3riús
-2eriv
-er3ivé
-er3ivi
-er3iví
-e3riz
-2e1rī
-erī3ā
-er3ī2b
-e2rīn
-er3īr
-er3īss
-er3īst
-er3ī́4b
-er3ī́r
-er3í2b
-er3í4ci
-er3íer
-e2r3íi
-e4rí4men
-e4rí4meq
-erí4mer
-e4rí4meu
-e4rí4mev
-er5í4mim
-e5ríminī
-er5í4mit
-2erín
-e4ríng
-2eríq
-er3ír
-e4r5í4tib
-erí6tio.
-e4r5í4tui
-e4r5ítuī
-e4r5ítuu
-2eríu
-er3íui
-2erív
-er3ívi
-2ern
-ero2b
-erod4
-erodi5ue
-erodi5v
-e3ron
-ero4pu
-e3ror.
-ero4re
-ero4ré
-e3rorq
-e3roru
-e3rorú
-e3rorv
-er3o4sc
-ero4s3t
-3erot
-e3rōq
-erō4re
-erō4rē
-erō4ré
-erō4rō
-e3rōru
-e3rōrú
-er3ōsc
-3erōt
-erṓ4re
-erṓ4rē
-e5rṓru
-er5ṓsc
-3erṓt
-e1rŏ
-e2rób
-e4ró4re
-er3ó4sc
-3erót
-2erq
-er5rue
-e2r3ua
-e2r3uā
-e2r3uá
-2erue
-er5ue.
-e4r3uen
-e4r3ueq
-e4r3ueu
-er3uēm
-er3uēn
-er3uēs
-er3uēt
-er3uém
-er3uén
-er3ués
-er3uét
-e3rug
-er3uīs
-er3uía
-2eru2m3
-er3unc
-er3und
-e5runto
-e5runtō
-e5runtó
-e5runtú
-e2r3uo
-e2r3uō
-e2r3uó
-er3ur
-er3uss
-er3ust
-eru4su
-er5usur
-er3u4sú
-e2r3u2t
-e2r3uu
-e2r3uú
-e3rūg
-erū2r
-erū́4r
-e1rŭ
-2erúm
-er3únc
-e4rúnd
-erú2r
-e2r3út
-2erv
-e1ry
-e1rý
-2es.
-1e2sæ
-1e2sǽ
-e3s2că
-es3cæ
-es4cid
-e3s2cī
-e3s2cĭ
-es4cíd
-es2cr
-e2scŭ
-es2e
-ese2i
-3eséq
-3esév
-e3s2i
-2esn
-e1s2p
-espe5r4i
-espe5r4ī
-esper4í
-e2sph
-2esq
-4essat
-4essát
-3est.
-es4tān
-e3s2tă
-e2s3tæ
-e2s3tǣ
-e2s3tǽ
-es3te.
-es3teq
-es4ter
-es3teu
-es3tev
-e3s2tĕ
-e4s5tim
-e4stĭb
-e3s4tĭn
-e3stĭt
-es4tĭ́t
-3es4tn
-es4tol
-3estot
-es4tól
-3estót
-3es4tq
-e4strā
-es4tră
-es3tre
-es3trē
-es3tré
-es4tru
-es4trū
-e3s4trŭ
-e4stry
-e2stu
-e2stŭ
-3es4tv
-es3ue.
-e2suĕ
-es2ué
-e2s3ui
-2esv
-2et
-e3ta
-eta3g
-et3eni
-ete5ram
-ete5ran
-ete5rar
-ete6reri
-ete6reru
-ete4r5ie
-eter5iē
-eter5ié
-eter5iī
-eteri6mini
-eteri6miní
-eter5i6ta
-eter5i6tā
-eter5i6tá
-eteri6te.
-eteri6ten
-eteri6teq
-eteri6teu
-eteri6tev
-eteri6to.
-eteri6ton
-eteri6toq
-eteri6tot
-eteri6tou
-eteri6tov
-eteri6tō.
-eteri6tōn
-eteri6tōq
-eteri6tōu
-eteri6tōv
-eteri6tṓn
-eteri6tṓq
-eteri6tṓu
-eteri6tṓv
-eteri6tón
-eteri6tóq
-eteri6tót
-eteri6tóu
-eteri6tóv
-ete4rīs
-eterī́6u
-eterī́6v
-ete4ríe
-ete6rí6mini
-ete6rí6te
-ete3ro
-ete3rō
-ete5run
-etĕ4r3ī4
-etĕrī́4
-etĕ4rĭē
-etĕ4r5ĭī
-etĕ4rĭt
-etĕr5ĭ6tā
-etĕrĭ6tĕ
-etĕ5rĭtĭ
-etĕrĭ6tō.
-etĕrĭ6tōn
-etĕrĭ6tōq
-etĕrĭ6tōu
-etĕrĭ6tōv
-etĕrĭ6tṓn
-etĕrĭ6tṓq
-etĕrĭ6tṓu
-etĕrĭ6tṓv
-etĕrĭ́4
-etĕ6rĭ́ĕ
-etĕ6rĭ́t
-etĕ3rŭ
-etĕ́6rĕ6rĭ
-etĕ́4rī
-etĕ́6r5ĭī
-etĕ́6r5ĭt.
-etĕ́6r5ĭ6tā
-etĕ́6rĭ6tĕ
-etĕ́6rĭ6tō
-eté6re6ri
-eté4rie
-eté4riē
-eté4r5iī
-eté6r5it.
-eté6r5ita
-eté6r5i6tā
-etéri6te.
-eté6ri6to.
-eté6ri6tō
-e2t3ip
-e2t3íp
-eto2i
-etó2i
-e3tr
-etra3s
-3ets
-e4tue.
-e2tuī
-e3tur
-e3tú
-3etvi
-e1u
-2eu.
-eua6ste
-e4uasv
-e4uāsv
-e2uǣ́
-e2uǽ
-e2u3b2
-eu2dă
-eu4dis
-eu2dī
-2e3ue
-e3uĕ
-e4uīsv
-2eum
-eu3ma
-1eun
-e2und
-2e2une
-e2uni
-e2uní
-e2uno
-e2unó
-euol5ue
-euol5ué
-euol5ui
-euol5uí
-2euq
-eu4rat
-eu4rár
-eu4rát
-eu4reb
-eu4rem
-eu4ren
-eu4rer
-eu4réb
-eu4rém
-eu4rén
-eu4rér
-eu4rim
-eu4rím
-eu4rún
-2eus
-e4us.
-e4usn
-e4usq
-eu2su
-e4usv
-2e2ut
-eu4tami
-eu4tamú
-eu4tare
-eu4tari
-eu4tarí
-eu4támi
-eu4tánt
-eu4táre
-eu4tári
-e3u4tem
-e3u4ten
-e5u4tere
-e5u4teré
-eu6teris
-eu6terís
-e3u4tém
-e3u4tén
-e5u4tére
-e5u6téris
-e3u4tét
-eu4tim
-eu4tit
-e3u4tím
-eutru4
-eu4tun
-eu4tún
-2euu
-2e2uv
-e2ux
-e1ū2
-e2ū3m
-e2ū́m
-eū́2r
-eū́2t
-e1ŭ
-e2ŭs
-e3ŭt
-e2ŭ́
-e3ŭ́mb
-e2ú
-e3úl
-2eúm
-e3úmb
-1eún
-e3úng
-e3únx
-eú2r
-2eús
-e3úse
-e3úso
-e3úss
-e3úst
-e3úsu.
-e3úsum
-e3úsus
-e3ú2t
-eútru4
-eva6ste
-2e3ve
-e3vĕ
-ex2ă
-e2x3ea
-e2x3eā
-e2x3eá
-e2x3eo
-e2x3eō
-e2x3eó
-ex3e2q
-e2xeu
-e2x3eú
-e2xib
-e2xiē
-e2xié
-exin3
-e2x3íe
-exō2
-e3xṓ
-exṓ4ra
-exṓ4rā
-exṓ4re
-exṓ4rē
-exṓ4rō
-exó4ra
-exó4re
-exó4ri
-exó4ro
-ex5ter
-2e2͞
-2e2͡
-2ē2a
-ēad2
-ēa2m
-2ē2ā
-ēā2nu
-2ē2ă
-ēă3d2
-ēắ3d
-2ē2á
-2ē2æ
-2ē2ǣ
-2ē2ǽ
-ēb2
-ēba2
-ēba3q
-ēbá2
-ēbæ3
-ēbe3i
-ēbī3u
-ēbī3v
-ēbo2
-1ēbr
-ēbs3
-ēbu2
-ē2bul
-3ē2bŭl
-ē4bŭ́l
-ē2búl
-ēce1
-ē2ch
-ēd2
-ēda2r
-ēdá2
-ēdē2s
-ēdi3m
-ēd4it.
-ēd4itu
-ēd4ĭt.
-ēd4ĭtn
-ēd4ĭtq
-ēd4ĭtu
-ēd4ĭtv
-ē3do
-ēd4or
-ēd3ue
-ē3dŭ
-2ē2e
-2ē2ē
-2ē2ĕ
-ē3g2a
-ēga2r
-ē3g2æ3
-ē3g2ǣ
-ē3ge.
-ē3gen
-ē3geq
-ē3geu
-ē3gev
-ē3gĕ.
-ē3gĕn
-ē3gĕq
-ē3gĕu
-ē3gĕv
-ē2g3n
-ēgo2
-1ēgr
-ēgu6ste
-ēgŭ6stĕ
-2ē1i2
-ē2ia.
-ē2iaq
-ēia2r
-ē2iau
-ē2iav
-ē3ic
-ē2id
-ē4iḗne
-ē6iḗque
-ē4iḗue
-ē4iḗve
-ē2i3p
-ē2ir
-ē2is
-ē2ium
-ē3iŭ
-2ē2ī
-2ēĭ2
-ē1ĭc
-ē2ĭē
-ē2ĭĕ
-ē2ĭ3p
-ē3ĭ́2c
-ē2ĭ́ĕ
-ē2ĭ́p
-ē1í2c
-ē2íe
-2ēj
-ēja2r
-ē2lab
-ē3lā.
-ē3lān
-ē3lāq
-ē3lār
-ē3lās
-ē3lāu
-ē3lāv
-ē3lā́n
-ē3lā́q
-ē3lā́r
-ē3lā́s
-ē3lā́u
-ē3lā́v
-ē3lă.
-ē3lăm
-ē3lăn
-ē3lăq
-ē3lău
-ē3lăv
-ē3lắ
-2ē3lá
-2ē3læ
-2ē3lǣ
-2ē3lǽ
-ē2leg
-ēle2r
-ēlē2i
-ē3lĕī
-ē3lĕō
-ē3lĕŭ
-ēlé2
-ēli2n
-2ē3lī
-ēlí2n
-2ēll
-ēl2u
-ē2l3ue
-ē1m
-ē4mani
-ē4maní
-ēma2r
-ēmắ2
-ē4m3áni
-1ēm2e
-ē3me.
-ē3mem
-ē4mend
-ē4ment.
-ē6mentia
-ē6mentía
-ē4mentn
-ē4mentq
-ē4mentv
-ē3meq
-ē2m3es
-ē3meu
-ē3mev
-3ē2mēr
-ēmē2s
-ē4m3ēse
-ē4m3ēsē
-ē4m3ēsĕ
-ē4m3ēsī
-3ē4mḗr
-ēmḗ4s
-ē4m5ḗse
-ē4mḗsē
-ē4m5ḗsĕ
-ē4m5ḗsī
-1ēmĕ
-ē3mĕ.
-ē3mĕm
-ē4mĕnd
-ē4mĕnt.
-ē6mĕntĭă
-ē6mĕntĭ́ă
-ē4mĕntn
-ē4mĕntq
-ē4mĕntu
-ē4mĕntv
-ē3mĕq
-ē2m3ĕs
-ē3mĕu
-ē3mĕv
-ē3mĕ́m
-ē4m3ĕ́s
-ē2m3és
-ēm2i1
-3ēmim
-4ēminī
-3ēmis
-ē4miss
-3ē4mit.
-3ē4mitn
-3ē4mitq
-3ē4mitu
-3ē4mitv
-ēm2ĭ
-3ēmĭc
-ēmĭ3ĕ
-3ēmĭm
-3ēmĭnĕ
-3ēmĭs
-ē4mĭss
-3ē4mĭt.
-3ē4mĭtn
-3ē4mĭtq
-3ē4mĭtu
-3ē4mĭtv
-3ēmĭ́n
-5ē4mĭ́ss
-5ē4mĭ́st
-3ēmĭ́t
-1ēmí
-ē4míss
-ē4míst
-1ēmo
-ē3mo.
-ē3mon
-ēmo4nu
-ē3moq
-ē4mor.
-ē4morn
-ē4morq
-ē4moru
-ē4morv
-ē3mou
-ē3mov
-1ēmŏ
-ē4mŏr.
-ē4mŏrn
-ē4mŏrq
-ē4mŏru
-ē4mŏrv
-ē4mŏ́rn
-ē4mŏ́rq
-ē4mŏ́ru
-ē4mŏ́rv
-ē4mórn
-ē4mórq
-ē4móru
-ē4mórv
-1ēmp
-1ēmt
-2ēmu
-ē2m3ul
-ē2mun
-ēm3ū́
-2ēmŭ
-ē2m3ŭl
-ē2mŭn
-ē4m3ŭ́l
-ē4mŭ́n
-2ēmú
-ē2m3úl
-ē2mún
-ē2nat
-ēn2ā
-ēnā3nē
-ēnā3nī
-5ē4nārib
-5ē4nārĭb
-5ē6nā́rib
-5ē6nā́rĭb
-ē3nă.
-ē3năm
-ē3năn
-ē3năq
-3ēnăt
-ē3nău
-ē3năv
-ē3nắ
-2ēne
-ē2n3ea
-ē2n3eā
-ē2n3eá
-ē2n3eō
-ē2neu
-ē2neú
-ē2n3ĕā
-ē2n3ĕă
-ē2n3ĕō
-ē2nĕŭ
-ē2n3ie
-ē2n3iē
-ē2n3ié
-ē2n3ii
-ē2n3ií
-ē2n3ī2m
-ē2n3ī2r
-ēn3īss
-ēn3īst
-ē2n3ī2t
-ēn3ī́4m
-ēn3ī́4r
-ēn5ī́ss
-ēn5ī́st
-ēn3ī́4t
-ē2n3ĭē
-ē2n3ĭĕ
-ē2n3ĭĭ
-ē4n3ĭ́ĕ
-ē4n3ĭ́ĭ
-ē2n3íe
-ē2n3íi
-ēn2sc
-ēn3si
-ēn4sn
-ēn4sq
-ēns4ué
-ēn4sv
-ē1n2u
-ē2n3ue
-ē3n4uen
-ēn4ueq
-ēn4ueu
-ēn4uev
-ēn2ŭ
-ē1o
-ē2on
-ē2os
-2ē2ō
-ē1ŏ
-ē2ŏn
-ē2ŏs
-ē2ŏ́
-ēó2
-ēpa2
-ēpar3
-ēpá2
-ēper4ē
-ēperī4n
-ēperī4q
-ēperī4r
-ēperī4u
-ēperī4v
-ēperī́6n
-ēperī́6q
-ēperī́6r
-ēperī́6u
-ēperī́6v
-ēperí4
-ēpĕrī4n
-ēpĕrī4q
-ēpĕrī4r
-ēpĕrī4u
-ēpĕrī4v
-ēpĕrī́6n
-ēpĕrī́6q
-ēpĕrī́6r
-ēpĕrī́6u
-ēpĕrī́6v
-ēpĕ3rō
-ē2ph
-ēpo2
-2ēq
-ē3qu
-ē1r2
-ēra3g
-ē3ră
-ēræ2ă
-ērǣ2ă
-2ē3re
-ē3rēm
-ē3rēs
-ē3rēt
-ē3rēu
-ē3rēv
-ē3rḗm
-ē3rḗs
-ē3rḗt
-2ē3rĕ
-ē3ré2
-2ērī
-2ērí
-1ē2ro
-ēro4s3
-ērō3d4
-ērō5dī
-ērōdī5u
-ērōdī5v
-1ē2rŏ
-ēró2
-ē2r3ue
-2ērun
-3ērŭd
-2ērú
-2ēs.
-ē2sa.
-ē2sae
-ē2sam
-ē2saq
-ē2sav
-1ēsā
-1ēsă
-ē2să.
-ē2săm
-ē2săq
-ē2său
-ē2săv
-1ēsá
-ē2sáe
-ē2sám
-1ē2sæ
-1ē2sǣ
-1ē2sǽ
-ē2sca
-ē2scă
-ē2scá
-ēs3cæ
-ēs3cǣ
-ē2scé
-ē2sci
-ēs3cī
-ē2scĭ
-ē2scí
-ē2scu
-ēs4cul
-ēsc3ū
-ē2scŭ
-ē2scú
-ēs2e
-3ēsē.
-ēsē2i
-3ēsēn
-3ēsēq
-3ēsēv
-ēs2ĕ
-2ēsé
-ēs2i
-ēsi2n
-2ēsn
-ē2so2
-1ē2sō
-ē2sŏ
-ē2só
-ēs2p
-ēs3po
-ēs3pŏ
-ēs3pó
-ēs3pū
-2ēsq
-3ēst.
-ē2ste
-ēs5ter
-ē2stĕ
-ēs5tĕr
-ēs2ti
-ēsti5t4
-ēs2tĭ
-ēs4tíl
-ēstí3t4
-3ēs4tn
-3ē2stō
-3ēs4tq
-ēs2tr
-3ē2stu
-ēs4tue
-3ē2stŭ
-ē2stú
-3ēs4tv
-ē2s3ue
-ē2s3uĕ
-ēs3ui
-3ēsum
-3ē2sus
-1ē2sū
-1ēsŭ
-ē2sŭs
-1ē2sú
-ē3sún
-2ēsv
-2ēt
-ē3ta
-ē3tă
-ē3te
-ēter4a
-ēte5re
-ēte3ri
-ēte5rī
-ēterī5u
-ēterī5v
-ē3tĕ
-ētĕ3r4a
-ētĕ3rǣ
-ētĕ3rĕ
-ētĕ5rī
-ētĕrī5u
-ētĕrī5v
-ētĕ3rŭ
-ēti4tu
-ē3tī
-ē3to2
-ē3tō
-ētō2i
-ē3tŏ
-ē3tó2
-ē3tr
-ē1u2
-ēuā6ste
-ēuā6stĕ
-2ē3ue
-ē3uĕ
-ē3uī.
-ē3uīn
-ē3uīq
-ē3uīu
-ē3uī́
-ē2um
-1ēuo
-ēuol3u
-1ēuŏ
-2ē2ŭ
-2ē2ú
-ēvā6ste
-ēvā6stĕ
-2ē3ve
-ē3vĕ
-ē3vī.
-ē3vīn
-ē3vīq
-ē3vīv
-ē3vī́
-1ēvo
-1ēvŏ
-ēx2
-ē2x3u
-ē2́
-2ḗa
-2ḗā
-2ḗă
-2ḗæ
-2ḗǣ
-ḗb2
-ḗ3bu
-ḗ3bŭ
-2ḗe
-2ḗē
-2ḗĕ
-3ḗgr
-ḗ4gre
-ḗ4grĕ
-2ḗi
-ḗi2c
-ḗ3iēn
-ḗ4ir
-2ḗī
-ḗĭ2c
-2ḗj
-ḗ4loq
-ḗ4lŏq
-ḗ1m
-ḗ4mar
-ḗ4măr
-ḗ4mēn
-ḗ4mic
-3ḗmim
-4ḗminī
-5ḗ4mit.
-3ḗ4mĭc
-3ḗmĭm
-5ḗ4mĭt.
-ḗ4mor.
-ḗ4mŏr.
-3ḗmp
-3ḗmt
-2ḗmu
-ḗ4mŭn
-2ḗn
-ḗ4n3ea
-ḗ4n3eā
-ḗ4n3eō
-ḗ4n3ĕā
-ḗ4n3ĕă
-ḗ4n3ĕō
-ḗ4n3iē
-ḗ4n3ii
-ḗ4n3ĭē
-ḗ4n3ĭĭ
-2ḗō
-2ḗq
-2ḗr
-ḗ3r2ă
-ḗ3rĕ
-3ḗ4sa
-3ḗ2sā
-3ḗ2să
-3ḗ2sæ
-3ḗ2sǣ
-3ḗsē.
-2ḗsn
-ḗ2so
-3ḗ2sō
-ḗ2sŏ
-2ḗsq
-ḗ5s4tĭn
-3ḗstn
-3ḗstō
-3ḗstq
-ḗs4trŭ
-3ḗstu
-3ḗstŭ
-3ḗstv
-ḗ2su
-3ḗsum
-3ḗsus
-3ḗsū
-ḗ4sū.
-ḗ3sūs
-3ḗsŭ
-ḗ4sŭs
-2ḗsv
-2ḗt
-2ḗue
-2ḗŭ
-2ḗve
-2ĕ2a
-ĕ2ā
-2ĕā.
-2ĕān
-2ĕāq
-4ĕārŭ
-2ĕāu
-2ĕāv
-4ĕā́n
-4ĕā́u
-4ĕā́v
-2ĕă.
-ĕ1ăm
-ĕ2ăn
-4ĕănĕ
-2ĕ2ăq
-ĕ2ăr
-ĕ2ăt
-2ĕ2ău
-2ĕ2ăv
-ĕ2ắ
-ĕ3ắmb
-2ĕ2á
-2ĕ2æ
-ĕæ2ă
-ĕæ2ŭ
-2ĕ2ǣ
-ĕǣ2ă
-ĕǣ2ŭ
-2ĕ2ǽ
-ĕb2
-ĕbĕ3d
-ĕbī3u
-ĕbī3v
-ĕ3bŭ
-2ĕc
-ĕ4c3ĕnn
-ĕ4c5ĕ́nn
-ĕ2ch
-ĕc4ĭm
-ĕ2c3l
-ĕcŭ3mā
-ĕcŭ3mă
-ĕcŭ3mĕ
-ĕcŭ3m4ī
-ĕcŭmī́5n
-ĕcŭmī́5q
-ĕcŭmī́5u
-ĕcŭmī́5v
-ĕcŭ3mŭ
-ĕcŭpĕ3
-ĕ2c3ŭ2t
-ĕ2d1a
-ĕd3ā́c
-ĕ2d1ă2
-ĕdă4m
-ĕd5ămă
-ĕd3áu
-ĕdē2g
-ĕd3ēmē
-ĕdē2s
-ĕdḗ4g
-ĕ2dĕm
-ĕ3dĕō
-ĕdĕ6stĕ
-ĕdī5uĕ.
-ĕdī5vĕ.
-ĕ2dĭa
-ĕ2dĭá
-ĕ2dĭæ
-ĕ2dĭǣ
-ĕ2dĭǽ
-ĕ2d3ĭg
-ĕ2dĭm
-ĕ2d3ĭn
-ĕ2dĭp
-ĕdĭ4s
-ĕ4d3ĭ4ta
-ĕ4d3ĭ4tá
-ĕ4d3ĭ4tæ
-ĕ4d3ĭ4tǣ
-ĕ4d3ĭ4tǽ
-ĕ4d3ĭ4tī
-ĕ4dĭtĭ
-ĕd5ĭtĭō
-ĕd5ĭtōr
-ĕd5ĭtōs
-ĕ4d3ĭ4tū
-ĕd5ĭtŭm
-ĕd5ĭtŭs
-ĕ4d3ĭ́g
-ĕd5ĭ́4tă
-ĕd5ĭ́4tĭ
-1ĕdō
-ĕ2dōr
-ĕ4dṓr
-1ĕdŏ2
-ĕ2d3ŏl
-ĕ2dŏp
-3ĕdŏr
-ĕ4d3ŏ́4l
-ĕ4d3ŏ́p
-ĕd2r
-ĕd2ū
-ĕdū3n
-ĕ2d3ŭl
-ĕ2d3ŭn
-ĕ4d3ŭ́l
-ĕ4dŭ́n
-2ĕē
-2ĕ1ĕ
-ĕĕ2ă
-ĕ2ĕm
-ĕ2ĕq
-ĕĕ2r
-ĕĕ4rō
-ĕ2ĕt
-ĕĕ2x
-ĕ2ĕ́2
-2ĕfă
-2ĕfĕ
-ĕ2gn
-ĕ2gō
-ĕ3gō.
-ĕ3gōn
-ĕ3gōq
-ĕ3gōu
-ĕ3gōv
-ĕ3gṓn
-ĕ3gṓq
-ĕ3gṓu
-ĕ3gṓv
-ĕ1h
-ĕ1i
-ĕ3iē
-2ĕī
-ĕ1ī2b
-ĕ1ī2m
-ĕ2īq
-ĕ1ī2r
-ĕ1ī2t
-ĕ2īu
-ĕ2īv
-ĕī́2b
-ĕī́2m
-ĕī́2r
-ĕī́4t
-ĕ1ĭ
-ĕ2ĭc
-ĕ2ĭnŭ
-ĕĭ2t
-ĕĭ3tā
-ĕĭ3tĭ
-ĕ2ĭu
-ĕ2ĭv
-ĕĭ́4tĕ
-2ĕl
-ĕlă3s2
-ĕllē3i
-ĕllḗ5i
-ĕ2l1u
-2ĕm.
-ĕ1ma
-ĕ1mă
-2ĕmn
-1ĕmp
-ĕm3pn
-2ĕmq
-2ĕ2mu
-2ĕmv
-2ĕn
-ĕn2ā
-ĕn3d2
-ĕnd4ŭ
-ĕ3n2e
-ĕ3n2ĕ
-ĕnĕ3rŭ
-ĕnĕ́s5
-ĕ2ni
-ĕn2ŭ
-ĕ2ōn
-2ĕōr
-2ĕ2ōs
-ĕŏ2g3n
-ĕ2ŏr
-ĕŏ5rā́
-ĕ3ŏrs
-ĕ2ŏ́
-ĕ3pĕ
-ĕpĕ3r
-ĕpĭ5str
-ĕ3pŏ
-2ĕps
-ĕp2su
-4ĕquĕ
-2ĕr.
-ĕr1a
-ĕ3rae.
-ĕ3raea
-ĕ3raeā
-ĕ3raeă
-ĕ3raeá
-ĕ3raeī
-ĕ3raen
-ĕ3raeu
-ĕ3raev
-ĕ5ra͞e.
-ĕ5ra͞ea
-ĕ5ra͞eā
-ĕ5ra͞eă
-ĕ5ra͞eī
-ĕ5ra͞en
-ĕ5ra͞eu
-ĕ5ra͞ev
-ĕ5rá͞ea
-ĕ5rá͞eā
-ĕ5rá͞eă
-ĕ5rá͞eī
-ĕ5ra͡e.
-ĕ5ra͡ea
-ĕ5ra͡eā
-ĕ5ra͡eă
-ĕ5ra͡eī
-ĕ5ra͡en
-ĕ5ra͡eu
-ĕ5ra͡ev
-ĕ5rá͡ea
-ĕ5rá͡eā
-ĕ5rá͡eă
-ĕ5rá͡eī
-ĕrās3
-ĕr4āt
-ĕ1ră2
-ĕ3ră.
-ĕr3ăc
-ĕ2răd
-ĕr5ămă
-ĕr3ămī
-ĕ3rănĕ
-ĕr3ăng
-ĕ3răq
-ĕ2r3ăs2
-ĕ3rău
-ĕ3răv
-ĕrắ2
-ĕ4r3ắd
-ĕ4r3ắg
-ĕ4r3ắl
-ĕ4r5ắmb
-ĕrắs6tō
-ĕr3áes
-ĕ2r3áu
-ĕr1æ2
-ĕ3ræ.
-ĕ3ræā
-ĕ3ræă
-ĕ3rææ
-ĕ3ræǽ
-ĕ3ræī
-ĕ3ræn
-ĕ3ræu
-ĕ3ræv
-ĕr1ǣ2
-ĕ3rǣ.
-ĕ3rǣā
-ĕ3rǣă
-ĕ3rǣǣ
-ĕ3rǣī
-ĕ3rǣn
-ĕ3rǣu
-ĕ3rǣv
-ĕ3rǣ́ā
-ĕ3rǣ́ă
-ĕ3rǣ́ǣ
-ĕ3rǣ́ī
-ĕ3rǣ́n
-ĕr3ǣ́s
-ĕ3rǣ́u
-ĕ3rǣ́v
-ĕr3ǽ2s
-ĕ3r2e
-2ĕrē
-ĕ2r3ē2d
-ĕr3ē2g
-ĕ5rēmĭnī
-ĕ5rēmŭ
-ĕ5rēnĕ
-ĕ5rērĕ
-ĕ5rērĭ
-ĕr3ēss
-ĕr3ēst
-ĕ5rēuĕ
-ĕ5rēvĕ
-ĕr3ḗ4d
-ĕ4r3ḗ4g
-ĕ5rḗmĭnī
-ĕ5rḗmŭ
-ĕr5ḗnă
-ĕ5rḗnĕ
-ĕ5rḗq
-ĕ5rḗrĕ
-ĕ5rḗrĭ
-ĕr5ḗss
-ĕr5ḗst
-ĕ5rḗt
-ĕ5rḗuĕ
-ĕ5rḗvĕ
-2ĕ1rĕ
-ĕ3rĕ.
-ĕr3ĕăt
-ĕr3ĕ4d4
-ĕ2rĕf
-ĕrĕ2g
-ĕrĕ2m
-ĕr3ĕmā
-ĕ4r3ĕmă
-ĕr3ĕmē
-ĕr3ĕmĕ
-ĕr3ĕmī
-ĕr3ĕmĭ
-ĕ4r3ĕmō
-ĕr3ĕmŏ
-ĕr3ĕmŭ
-ĕ2r3ĕ2q
-ĕ5rĕquĕ
-ĕ2r3ĕ2s
-ĕ3rĕu
-ĕ3rĕv
-ĕr3ĕ́4d
-ĕrĕ́4m
-ĕr5ĕ́mĕ
-ĕr5ĕ́mĭ
-ĕ4r3ĕ́s
-ĕr1i
-2ĕ1rī
-ĕrī3ā
-ĕr3ī2b
-ĕ2rīn
-ĕr4īq
-ĕr3ī́4b
-ĕr4ī́q
-ĕ4r3ĭ4cĕ
-ĕr3ĭ4cĭ
-ĕr3ĭ4dō
-ĕ5rĭĕ.
-ĕ5rĭĕn
-ĕ5rĭĕq
-ĕ5rĭĕu
-ĕ5rĭĕv
-ĕ4r3ĭ4mā
-ĕ4r3ĭ4mă
-ĕr5ĭ4mēb
-ĕr5ĭ4mēm
-ĕ4r5ĭ4mēn
-ĕr5ĭ4mēr
-ĕr5ĭ4mēs
-ĕr5ĭ4mēt
-ĕr5ĭ6mḗb
-ĕr5ĭ6mḗm
-ĕ6r5ĭ6mḗn
-ĕr5ĭ6mḗr
-ĕr5ĭ6mḗs
-ĕr5ĭ6mḗt
-ĕ4r3ĭ4mĕ
-ĕ4r3ĭ4mī
-ĕr5ĭ4mĭm
-ĕr5ĭ4mĭs
-ĕr5ĭ4mĭt
-ĕr5ĭ4mĭ́
-ĕrĭ4mō.
-ĕrĭ4mōq
-ĕrĭ4mōu
-ĕrĭ4mōv
-ĕr3ĭ4mŏ
-ĕr5ĭ4mŭn
-ĕr5ĭ6mŭ́n
-ĕr3ĭng
-ĕr4ĭō
-ĕr4ĭŏ
-ĕr4ĭs
-ĕ4r5ĭ4tĭb
-ĕ5rĭtōt
-ĕ5rĭtṓt
-ĕ5rĭtŏ
-ĕrĭ4tūs
-ĕ4r5ĭ4tŭī
-ĕ5rĭtŭr
-ĕ4r5ĭ4tŭŭ
-ĕ5rĭtŭ́r
-ĕr4ĭŭ
-ĕr5ĭ́4cĭ
-ĕ4r3ĭ́ĭ
-ĕ6r5ĭ́6mĕn
-ĕ6r5ĭ́6mĕq
-ĕr5ĭ́6mĕr
-ĕ6r5ĭ́6mĕu
-ĕ6r5ĭ́6mĕv
-ĕr5ĭ́6mĭm
-ĕr5ĭ́6mĭt
-ĕrĭ́6tĭb
-ĕ4r5ĭ́4tŭ
-2ĕrn
-ĕ1ro
-ĕ1rō
-ĕ3rōn
-ĕr3ō4rē
-ĕr3ō4rĕ
-ĕr3ō4rō
-ĕ3rōrŭ
-ĕ3rōs.
-ĕr3ōsc
-ĕ3rōsn
-ĕ3rōsq
-ĕ3rōsu
-ĕ3rōsv
-3ĕrōt
-ĕrṓ4rē
-ĕrṓ4rĕ
-ĕ5rṓrŭ
-ĕr5ṓsc
-3ĕrṓt
-ĕr1ŏ
-ĕr3ŏ́l
-ĕ3rŏ́r
-2ĕrq
-2ĕ2r1u
-ĕ3rūg
-ĕrū2r
-ĕr3ūt
-ĕr3ū́4r
-ĕr3ū́t
-ĕ3rŭē
-ĕ3rŭĕ
-ĕ3rŭī
-ĕ3rŭĭ
-ĕ3rŭ2m3
-ĕ5rŭntō
-ĕ5rŭntŏ
-ĕ5rŭntŭ
-ĕ3rŭs.
-ĕ3rŭsn
-ĕ3rŭsq
-ĕr3ŭss
-ĕr3ŭst
-ĕ3rŭsu
-ĕ3rŭsv
-ĕr3ŭ2t
-ĕ3rŭ́l
-ĕ3rŭ́m
-ĕ5rŭ́sn
-ĕ5rŭ́sq
-ĕr5ŭ́ss
-ĕr5ŭ́st
-ĕ5rŭ́su
-ĕ5rŭ́sv
-2ĕrv
-1ĕ1sc
-ĕs2cī
-ĕs2cĭ
-ĕs2cŭ
-ĕ3s2ĕ
-ĕ3sō
-ĕ1sp
-ĕspĕ5rī
-ĕ2sph
-ĕs2pl
-ĕs2pō
-ĕs2pŏ
-ĕs2pŭ
-ĕ2sq
-ĕs2ta
-ĕ4stēs
-ĕ4stḗs
-ĕ4s3tĕ.
-ĕ4stĕm
-ĕ4s5tĕnĕ
-ĕ4s3tĕq
-ĕ4s3tĕu
-ĕ4s3tĕv
-ĕ4stĕ́m
-ĕ4s3tī.
-ĕ4s5tīnĕ
-ĕ4s3tīq
-ĕ4s3tīs
-ĕ4s3tīu
-ĕ4s3tīv
-ĕ6s5tī́nĕ
-ĕ4s5tī́q
-ĕ4s5tī́s
-ĕ4s5tī́u
-ĕ4s5tī́v
-ĕ4stĭ́c
-ĕs4tn
-ĕ2s3tō
-ĕs4tq
-ĕs3trē
-ĕs3trĕ
-ĕ2s4tu
-ĕs4tv
-ĕ2su
-ĕ3t2ă
-ĕtă3g
-ĕtĕ3rĕ
-ĕtĕ5rī
-ĕtĕrī5u
-ĕtĕrī5v
-ĕtĕ3rŭ
-ĕtĭ4ă
-ĕt3ĭp
-3ĕts
-ĕ2t1u
-2ĕ1u
-ĕ3uĕ
-ĕ1ū2
-ĕ2ū3m
-ĕ2ū́m
-ĕū́2r
-ĕū́4t
-1ĕŭ2
-ĕ1ŭl
-2ĕ2ŭm
-ĕ1ŭr
-2ĕŭs
-ĕ1ŭt
-2ĕ2ŭ́m
-2ĕŭ́s
-ĕ4ŭ́sq
-ĕ3ŭ́t
-2ĕv
-ĕ3vĕ
-ĕ2xă
-ĕx3áu
-ĕx3ĕ́m
-ĕ2xi
-ĕx3ĭī
-ĕxō2
-ĕ3xṓ
-ĕxṓ4rā
-ĕxṓ4ră
-ĕxṓ4rē
-ĕxṓ4rĕ
-ĕxṓ4rō
-ĕx5tĕr
-ĕ2xu
-ĕ2́
-2ĕ́ă
-ĕ́b2
-ĕ́2cl
-ĕ́4dăm
-ĕ́4dīs
-ĕ́4dĭa
-ĕ́4dĭæ
-ĕ́4dĭǣ
-ĕ́4d5ĭ4ta
-ĕ́4d5ĭ4tæ
-ĕ́4d5ĭ4tǣ
-ĕ́4d5ĭ4tī
-ĕ́4d5ĭ4tū
-ĕ́2dŏ
-2ĕ́ĕ
-ĕ́3ĕō
-ĕ́3ĕŏ
-ĕ́3ĕ2r
-1ĕ́f
-ĕ́1i
-ĕ́3iē
-2ĕ́l
-2ĕ́m
-2ĕ́n
-ĕ́nd4
-4ĕ́ps
-ĕ́ră4g
-ĕ́r5ĕăn
-ĕ́r5ĕăt
-ĕ́r3ī
-ĕ́4rīs
-ĕ́4r5ĭm.
-ĕ́4r5ĭ4mā
-ĕ́4r5ĭ4mă
-ĕ́4r5ĭmĕ
-ĕ́4r5ĭ4mī
-ĕ́4r5ĭ4mō
-ĕ́r5ĭ6tūs
-ĕ́2ru
-ĕ́4r3ŭt
-3ĕ́sc
-ĕ́3s4cī
-ĕ́3sĕ
-ĕ́3spŭ
-4ĕ́stā
-ĕ́5stĭtā
-ĕ́5stĭtī
-ĕ́5stĭtĭ
-ĕ́5stĭtō
-ĕ́4str
-2ĕ́2t
-ĕ́3tā
-ĕ́3tă
-ĕ́3tē
-ĕ́3tĕ
-ĕ́3tī
-ĕ́3tō
-ĕ́3tŏ
-ĕ́3tr
-3ĕ́ts
-ĕ́3tŭ
-ĕ́x3ĕā
-ĕ́x3ĕă
-ĕ́x3ĕō
-ĕ́x3ĭī
-2é2a
-2éæ
-2éb2
-éba3q
-ébe3
-éb4ri
-ébs3
-é3bu
-éce1
-é2ch
-é2c3l
-éco1
-écu3m4
-é2c3u2t
-éda2m
-é4d3ama
-é4damā
-éd2i
-é2diǣ
-é2d3i2g
-éd3ime
-éd3i4mi
-éd4is
-éd3i4tǣ
-éd3i4tī
-éd3i4tū
-é2d3o2l
-éd3ue
-2ée
-é1ea
-é1eā
-é1eo
-é1eō
-é1e2r
-é1es
-éfe1
-1éff
-é3g2a
-é3gæ
-é2gl
-é2g3n
-é1h
-2éi
-é3ian
-é3iaq
-é3iau
-é3iav
-é1i2c
-é1ie
-é3ieq
-é3ieu
-é3iev
-é1iē
-é3iit
-é2in
-é3ior
-é3iou
-é3iov
-é2is
-é3iul
-é2leg
-é3li
-élu2
-é2l3ue
-é2l3ut
-é1m2a
-ém2e1
-3é4mera
-ém2i
-é2mic
-2émin
-3é4mit.
-2émn
-é1mo1
-1émp
-2émq
-1émt
-2ému
-2émv
-2én
-énd2
-énd4u
-é2n3ea
-én2ex
-én3iit
-én3si
-é3n2ua
-é3n2uē
-é3n2uī
-én2ul
-é3n2uo
-2éo
-épe1
-épe3r
-2éps
-ép4se.
-ép4sen
-ép4seq
-ép4seu
-ép4sev
-ép2su
-4é3que
-é1r
-2éra
-é3ra.
-é3rae
-é2ra2g
-ér2al
-éra2m
-é3ram.
-ér3ama
-é3ran
-é3raq
-éra2r
-ér3ara
-ér5are
-ér3aro
-é3ras
-é3rau
-é3rav
-é3ra͡
-é3ræ
-2ére
-ér3ean
-ér3eat
-ér3e2d4
-ére2g
-ére2m
-é4r3ema
-ér3emā
-ér3eme
-ér3emē
-é4r3emi
-ér3emī
-é4r3emo
-é4r3emō
-é4r3emu
-é4r3eru
-é4rest
-é2rh
-é4riac
-é3riar
-2érib
-ér5i4cit
-2érie
-ér3ier
-é4r3iit
-é4r3i4ma
-é4r3i4mā
-é4r3i4me
-é4r3i4mē
-é4r3i4mi
-é4r3i4mī
-é4r3i4mo
-é4r3i4mō
-ér5i4mun
-é3rio
-é3rip
-é5ritor
-é5ritur
-éri4tūs
-ér3ī
-2érn
-é3ro.
-3é2rog
-é2r3o2p
-2érq
-ér5rue
-2éru
-é2r3ua
-é2r3uā
-é2rue
-é2r3uē
-é3rul
-é3rum
-é3run
-é2ruo
-é2r3uō
-é3rus
-ér3u2t
-é2ruu
-2érv
-1é2sa
-1é2sæ
-é3s2cī
-és2i
-2ésn
-1é2so
-éspe3
-és2pu
-2és3q
-4ésta
-4éstā
-és3tib
-3éstn
-3éstq
-3éstv
-3é2su.
-é4s3ue
-és3ui
-3ésum
-3ésus
-2ésv
-2ét
-éte1
-3éts
-2éu
-é1ua
-é2uam
-é2uaq
-é2uau
-é1uā
-é1uæ
-é1uǣ
-éub2
-é1ue
-é2uel
-é1uē
-é1ui
-é1uī
-éu1m
-é3unx
-éute3
-éu4tra
-é1ū
-2év
-é3ve
-éx2a
-é2x3ea
-é2x3eā
-é2x3eo
-é2x3eō
-éx2ib
-é2xiu
-éx2o
-éx2ō
-é2xue
-éx4us
-2é͞
-2é͡
-1f
-f2a
-fa4c3ue
-fa1m
-fa2ru
-fas3
-fās3
-fá2c3u
-fá1m
-fá2ru
-fece3
-fe2i
-fe3li
-fe3ra
-fe3r2æ3
-fe3r2ǣ
-fe3rē
-fe3r4i
-fe3rī
-fe3ro
-fe3rō
-fe3ru
-fes5tā
-fes5te
-fe2x
-fē2i
-fĕ3r2a
-fĕ3ră
-fĕ3r2æ
-fĕ3r2ǣ
-fĕ3rē
-fĕ3r4ĕ
-fĕ3rī
-fĕ3rŏ
-fĕ3rŭ
-fĕ2s3
-fĕs5tĕ
-fĕ́3ră
-fĕ́5r4ī
-fé2i
-fér4ī
-fé2ru
-fé2x
-2ff
-file2
-fi1s
-fis2i
-fĭĕ3
-fí1m
-f2l2
-flo3
-flor2
-fons3
-fo3rī
-fŏ3rī
-fœ̄3d
-f2r2
-fra3g
-fră3g
-fre3
-frem2
-fre5mi
-fre5mo
-fr4ē3n
-frḗ5n
-fr4ĕ́3
-fré1
-fré5na
-fu1s
-fú1s
-1g
-gab2
-2g1ae
-g2aeq
-g4aeue.
-g4aeuĕ.
-g4aeve.
-g4aevĕ.
-ga2i
-gao3
-g2ar
-ga3re
-g2au
-2g1a͞
-g4a͞eq
-g6a͞eue.
-g6a͞euĕ.
-g6a͞eve.
-g6a͞evĕ.
-g4á͞eq
-g6á͞eue.
-g6á͞euĕ.
-g6á͞eve.
-g6á͞evĕ.
-2g1a͡
-g4a͡eq
-g6a͡eue.
-g6a͡euĕ.
-g6a͡eve.
-g6a͡evĕ.
-g4á͡eq
-g6á͡eue.
-g6á͡euĕ.
-g6á͡eve.
-g6á͡evĕ.
-gā4iae.
-gā6iaene
-gā6iaeque
-gā6iaeue
-gā6iaeve
-gā6ia͞e.
-gā6ia͞ene
-gā6ia͞eque
-gā6ia͞eue
-gā6ia͞eve
-gā6iá͞ene
-gā6iá͞eque
-gā6iá͞eue
-gā6iá͞eve
-gā6ia͡e.
-gā6ia͡ene
-gā6ia͡eque
-gā6ia͡eue
-gā6ia͡eve
-gā6iá͡ene
-gā6iá͡eque
-gā6iá͡eue
-gā6iá͡eve
-gā2iā
-gā6iáene
-gā6iáeque
-gā6iáeue
-gā6iáeve
-gā4iæ.
-gā4iæne
-gā6iæque
-gā4iæue
-gā4iæve
-gā4iǣ.
-gā4iǣne
-gā6iǣque
-gā4iǣue
-gā4iǣve
-gā6iǣ́ne
-gā6iǣ́que
-gā6iǣ́ue
-gā6iǣ́ve
-gā4iǽne
-gā6iǽque
-gā4iǽue
-gā4iǽve
-gā4iīs.
-gā6iīsne
-gā6iīsque
-gā6iīsue
-gā6iīsve
-gā6iī́sne
-gā6iī́sque
-gā6iī́sue
-gā6iī́sve
-gā2iu
-gā2iú
-găb2
-gă3rĕ
-g4áeue.
-g4áeuĕ.
-g4áeve.
-g4áevĕ.
-gá2i
-gá3ian
-2g1æ2
-g2æ3q
-g4æue.
-g4æuĕ.
-g4æve.
-g4ævĕ.
-2g1ǣ2
-g2ǣ3q
-g4ǣue.
-g4ǣuĕ.
-g4ǣve.
-g4ǣvĕ.
-g2ǣ́3q
-g4ǣ́ue.
-g4ǣ́uĕ.
-g4ǣ́ve.
-g4ǣ́vĕ.
-g2ǽ3q
-g4ǽue.
-g4ǽuĕ.
-g4ǽve.
-g4ǽvĕ.
-2gd
-g2e
-ge2e
-ge2i
-3gena
-3genā
-3gená
-3genæ
-3genǣ
-3genǽ
-3genen
-3geneq
-3geneu
-3genev
-3genē
-3gené
-3geni
-3genī
-3gení
-3geno
-3genō
-3genó
-3genu
-3genú
-ge1r
-ger2æ3
-ger2ǣ
-ge3rē
-ge3rī
-ges3t
-ges5tā
-ges5te
-ges5tr
-2getē
-2geté
-2getī
-ge2un
-3gēd
-gē2i
-g2ĕ
-gĕ2ă
-gĕ2ī
-3gĕna
-3gĕnā
-3gĕnă
-3gĕná
-3gĕnæ
-3gĕnǣ
-3gĕnǽ
-3gĕnē
-3gĕnĕn
-3gĕnĕq
-3gĕnĕu
-3gĕnĕv
-3gĕnī
-3gĕnō
-3gĕnŭ
-3gĕ3r2a
-gĕ3ră
-3gĕrá
-3gĕ3r2æ
-3gĕ3r2ǣ
-3gĕrǽ
-gĕ3rē
-gĕ3r4ĕ
-gĕ3rī
-gĕ3rŏ
-3gĕ3rŭ
-gĕs3
-gĕs5tĕ
-3gĕ́nă
-3gĕ́nĕ
-gĕ́3rĕ
-gé2i
-3géna
-3génen
-3géneq
-3géneu
-3génev
-3géss
-3gést
-2gg2
-g3ga
-g3gæ3
-g3gǣ
-g2i
-3gie
-gig3
-gi4gn
-gi2i
-gi4lue
-gim2
-gin2ā
-gis3
-gi4sc
-gis5ci
-gispe3
-gis5te
-g2ĭ
-3gĭĕ
-gĭ5mĭn
-gĭn2ā
-gĭn2ĕ
-gĭs5tĕ
-3gĭtī
-gíg3
-gí2lu
-gí1m
-gí3tur
-g2la
-g2lā
-g2lá
-g2læ
-g2lǣ
-g2lǽ
-g2les
-g2lēs
-2glĕ
-g2lés
-2gli
-g2lī
-2glĭ
-g2lí
-g2lo
-g2lŏ
-g2lu
-g2lū
-g2lú
-2g1m2
-g1n2
-gn4an
-gna5ni.
-gna5nin
-gna5niq
-gna5nis
-gna5niu
-gna5niv
-gna5nín
-gna5níq
-gna5nís
-gna5níu
-gna5nív
-gnā3nī
-gná5ni.
-gná5nis
-gnæ4uŭ
-gnæ4vŭ
-gnǣ4uŭ
-gnǣ4vŭ
-2gne
-g3nem
-g3nes
-g3nĕm
-gnĕ3rŭ
-g3nĕ́
-2gné
-g3ném
-g3nés
-g3nib
-g4nitæ
-g2no
-g3non
-gno2p
-g3noq
-g3nor.
-3gnora
-3gnorá
-5gnorim
-5gnorit
-5gnorím
-5gnorít
-g3norn
-3gnoro
-3gnoró
-g3norq
-5gnorun
-5gnorún
-g3norv
-3gnos
-3gnou
-3gnov
-3g4nóra
-5g4nóre.
-5g4nórim
-5g4nórin
-5g4nóris
-5g4nórit
-3g4nóro
-5g4nórun
-3g4nósc
-3g4nóss
-3g4nóst
-5g4nóuer
-3g4nóui
-5g4nóver
-3g4nóvi
-g2ob2
-3gog
-go3n
-go5ni5c
-go4nn
-go4nq
-go4nue
-go4nv
-go2p
-g1o2t
-go3th
-3gōg
-g1ō2t
-g3ṓ4t
-g2ŏ
-2gŏ.
-gŏb2
-2gŏm
-gŏ2p
-2gŏq
-2gŏu
-2gŏv
-3góg
-g1ót
-gó2ti
-gœ̄3d
-g2r2
-gra3d4
-3grae
-gra4ia
-gra4iá
-gra4iæ
-gra4iǽ
-gra4ie
-gra4ii
-gra4ií
-3gra͡
-grā6iāne
-grā6iā́ne
-grăd2
-3gráe
-3græ
-3grǣ
-3grǽ
-gre3d4
-gre5di
-gre5dī
-gres3
-grĕ3d4
-grĕ5dī
-grĕ2s3
-grĕ́s3
-grés3
-gré6sti
-gri3n
-2grī
-g2u
-gumi3
-gus3
-gūn4e
-gūn4ĕ
-2gŭæ
-gŭ4ĕ́
-2gŭīs
-gŭ3m2ĭ
-gý3t
-h2a
-hab2
-ha4c3ue
-hae2c3
-ha2i
-ha2ī
-ha1m
-h3ang
-ha2o
-ha3re
-ha3rē
-hā2c1
-hā2i
-hā2ĭ
-h2ă
-hă3b2
-hă2ī
-h3ăng
-hă3ră
-hă3rē
-hă3rĕ
-h3ắng
-há2c3u
-háe2c3
-há2i
-h3áng
-hæ2a
-hæ2ă
-hæ2á
-hæ2c1
-hæ2i
-hæ2ŭ
-hǣ2a
-hǣ2ă
-hǣ2c1
-hǣ2ŭ
-hǽ2c1
-h2e
-he2a
-hed2
-he2e
-he3g
-he2ia
-he2iá
-he2ic3
-he2ie
-he2ié
-he2ii
-he2ií
-he2io
-he2ió
-he2í
-heíc3
-he2lu
-he2nu
-he2o
-he3r2a
-hera3g
-he3rá
-he3r2æ
-he3r2e
-he3r4i
-heris3
-he3rī
-he3ro
-hero5d
-he3se
-he2s3p
-hespe3
-he2sq
-he2st
-he2u
-he2ū
-heū3s
-he2x
-h2ē
-hē2ia
-hē2iā
-hē2iá
-hē2iæ
-hē2iǣ
-hē2iǽ
-hē2ie
-hē2iē
-hē2iī
-hē2iō
-hēmĭ3s
-hē2nu
-hē3r
-hē4rn
-hē4rq
-hē4ru
-hē4rv
-hē3se
-hē3sĕ
-hēs3t
-h2ĕ
-hĕ2ă
-hĕ2ĭ
-hĕ3r4ĕ
-hĕ3rī
-hĕ3rŭ
-hĕ2sp
-hĕ2ū
-hĕū3s
-hé2i
-hé1m
-hé3r2a
-héra3g
-hé2ru
-hé2x
-h2i
-hi4c3ue
-hi2i
-hin2ā
-hi2o
-hio2s
-hi3p2t
-hi4s3t
-his5ta
-his5tā
-his5te
-hi3uu
-h2ī
-hī2cu
-hī3p2
-hī3sŏ
-hī́3p2
-hĭn2a
-hĭn2ā
-hĭn2æ
-hĭŏ3p
-hĭ3p2t
-hĭ4st
-hĭs5tā
-hĭs5tă
-hĭs5tĕ
-hĭ́p4t
-hí2c3u
-híp2t
-h2l
-2h1m2
-hmĭ2ă
-hmo4nu
-h1n2
-hno3b2
-hnu3
-hn4us
-hnū3
-h2o
-ho2a
-ho3b2
-hobī3u
-hobī3v
-ho2c3u
-ho2e
-ho2i
-hoi3q
-ho2ī
-hoī3u
-hoī3v
-hoī́3u
-hoī́3v
-ho2í
-hon3g4
-hongæ3
-hongǣ́5
-hongǽ3
-ho2o
-ho2ō
-ho2ó
-ho5rén
-ho3rī
-ho2s
-ho3se
-ho3si
-ho3sí
-ho3spe
-hō2cu
-hōne4
-hō2nu
-hō2sp
-h2ŏ
-2hŏ.
-hŏ2ă
-hŏ3b2
-hŏbī3u
-hŏbī3v
-2hŏd
-hŏ2ī
-hŏī3u
-hŏī3v
-hŏī́3u
-hŏī́3v
-hŏ2ĭ
-hŏn3g4
-hŏngæ3
-hŏngǣ́5
-hŏngǽ3
-hŏ2ō
-hŏ3rī
-hŏ2s
-hŏ́3rĭ
-hŏ́4s
-hób2
-hó2c1
-hó3l
-hó2nu
-hó2sp
-2hœ
-h2r2
-hras5t
-hrăs3t
-hu2cu
-hu1i2
-huic3
-huí2
-huíc3
-hum2e
-h2ū
-hū2cu
-hū3l
-hū́3l
-hŭ3mĭ
-hú2c1
-hú3iu
-iab2
-iabo3l
-iab4u
-1iac
-3iact
-iad2æ3
-iad2ǣ
-iad2ǽ
-ia3d2e
-iad2ē
-iad2é
-iad2i
-iad2ī
-i2ae
-ia3iú
-i3alt
-iamb2
-iam5bi
-iambī5q
-iambī5u
-iambī5v
-iambī́5q
-iambī́5u
-iambī́5v
-3iamī
-i3ang
-i3ann
-i1ap
-i2aq
-ia3re
-ia4rid
-ia4ríd
-ia3s4pe
-ia3spé
-ias3t
-ias5te
-ias5tr
-ia4tra
-ia4trá
-ia4tro
-ia4tró
-i2au
-i1a2x
-i2a͞
-i2a͡
-2iāc
-i2ān2
-3iānĕ
-3iāquĕ
-i2āru
-3iārŭ
-3iāsnĕ
-5iāsquĕ
-3iāsuĕ
-3iāsvĕ
-iā4trā
-3iāuĕ
-3iāvĕ
-i1ā2x
-3iā́nĕ
-5iā́quĕ
-3iā́rŭ
-5iā́snĕ
-5iā́squĕ
-5iā́suĕ
-5iā́svĕ
-3iā́uĕ
-3iā́vĕ
-1iă
-iăd2
-iábo3
-3iácu
-2iád
-i2áe
-i3ált
-iám3b2
-i4áne
-i3áng
-2iáq
-iá4rid
-iá4tro
-i1á2x
-i2æ
-iæ2a
-iæ2á
-iæ2i
-i2ǣ
-iǣ2a
-i2ǽ
-ib2
-i3biu
-ibī3u
-ibī3v
-2iboe
-2iboē
-2iboé
-ibo3l
-i3bum
-ib4un
-i5bund
-4ibu2s3
-i3bū
-ib4ū́
-4ibús3
-2ic.
-2i3ca
-2i3cā
-2i3cá
-2i3cæ
-2i3cǣ
-2i3cǽ
-2iceb
-2icen
-i4c3enn
-2icet
-i3cēn
-2icén
-i4c5énni
-2icéq
-2icéu
-2icév
-i3cia.
-i3ciaq
-i3ciau
-i3ciav
-i3cii
-i3cií
-i3cium
-i3ciúm
-2i3cīs
-i3cī́s
-i3cía
-2icl
-2icn
-2i3co
-2i3cō
-2i3có
-2icq
-2ict
-i2c3u2t
-ic2ū
-2icv
-i3d2a
-2i3d2e
-ide3mé
-ide2s
-2i3dē
-idē4iē
-idē3m
-idē2s
-2i3dé
-2i3d2i
-idi3g
-id3ips
-idi4s
-2i3dī
-2i3dí
-i3do
-id4or
-2i3d2u
-2i3dú
-2ie.
-1iec
-iece3
-ie2e
-2ieg
-ie4gn
-2ieī
-2ieí
-i2em
-2ieo
-2ieō
-2ieó
-2i2eq
-ie1r
-ie3r2e
-ie3rī
-i3erm
-ie2s
-i3e4sa
-i3esá
-ies3c
-i3ese
-i3esé
-i3e4si
-i3esí
-i3e4so
-i3esó
-ies5tā
-i3esú
-2iete
-iete5re
-2ietē
-2ieté
-2ietī
-2i2eu
-ie2un
-2ieú
-2i2ev
-1iex
-iex2i
-ie2xu
-2ie͞
-2ie͡
-2iē.
-1iēc
-2iēg
-i2ēn
-iē3na
-2iē3ne
-2iēq
-3iēquĕ
-iē2s
-iē4sa
-iē3sū
-4iēta.
-4iētae.
-6iētaene
-6iētaeque
-6iētaeue
-6iētaeve
-4iētam
-4iētan
-4iētaq
-4iētau
-4iētav
-6iēta͞e.
-6iēta͞ene
-6iēta͞eque
-6iēta͞eue
-6iēta͞eve
-6iētá͞ene
-6iētá͞eque
-6iētá͞eue
-6iētá͞eve
-6iēta͡e.
-6iēta͡ene
-6iēta͡eque
-6iēta͡eue
-6iēta͡eve
-6iētá͡ene
-6iētá͡eque
-6iētá͡eue
-6iētá͡eve
-2iētā
-5iētānĕ
-5iētāquĕ
-5iētārŭ
-5iētāsnĕ
-5iētāsquĕ
-5iētāsuĕ
-5iētāsvĕ
-5iētāuĕ
-5iētāvĕ
-5iētā́nĕ
-5iētā́quĕ
-5iētā́rŭ
-5iētā́snĕ
-5iētā́squĕ
-5iētā́suĕ
-5iētā́svĕ
-5iētā́uĕ
-5iētā́vĕ
-6iētáene
-6iētáeque
-6iētáeue
-6iētáeve
-4iētám
-4iētæ.
-4iētæne
-6iētæque
-4iētæue
-4iētæve
-4iētǣ.
-4iētǣne
-6iētǣque
-4iētǣue
-4iētǣve
-6iētǣ́ne
-6iētǣ́que
-6iētǣ́ue
-6iētǣ́ve
-4iētǽne
-6iētǽque
-4iētǽue
-4iētǽve
-4iētē.
-4iētēn.
-4iētēne
-6iētēnne
-6iētēnque
-6iētēnue
-6iētēnve
-6iētēque
-4iētēs.
-6iētēsne
-6iētēsque
-6iētēsue
-6iētēsve
-4iētēue
-4iētēve
-6iētḗne
-6iētḗnne
-6iētḗnque
-6iētḗnue
-6iētḗnve
-6iētḗque
-6iētḗsne
-6iētḗsque
-6iētḗsue
-6iētḗsve
-6iētḗue
-6iētḗve
-4iētīs.
-6iētīsne
-6iētīsque
-6iētīsue
-6iētīsve
-6iētī́sne
-6iētī́sque
-6iētī́sue
-6iētī́sve
-2i2ēu
-3iēuĕ
-2i2ēv
-3iēvĕ
-1iēx
-3iḗc
-2iḗg
-iḗ2s
-4iḗta
-4iḗtā
-4iḗtæ
-4iḗtǣ
-4iḗtē
-4iḗtī
-i2ḗu
-i2ḗv
-1iĕ
-iĕ1r
-iĕ3r4ĕ
-iĕs3
-1iéc
-2iég
-ié4gn
-i2é1m
-2iéne
-2iéq
-i3érm
-ié2s
-ié4sa
-i3ése
-i3ési
-2iéte
-2iéu
-2iév
-1iéx
-ié2xu
-2ié͞
-2ié͡
-2if
-ife6ste
-ig2a
-1ig2æ3
-1ig2ǣ
-4igena
-4igenā
-4igená
-4igenæ
-4igenǣ
-4igenǽ
-4igenen
-4igeneq
-4igeneu
-4igenev
-4igenē
-4igené
-4igeni
-4igenī
-4igení
-4igeno
-4igenō
-4igenó
-4igenu
-4igenú
-4igéna
-ig2l
-i2gn
-ig3nat
-ig3nāt
-ig5nā́t
-ig3nát
-ig3nē
-i3gr
-2i1h
-i3ha
-ihí3
-i1i2a
-iiam3
-i1i2á
-i1ie
-i1iē
-i1io
-i1ió
-i1iu
-i2iue
-i1iú
-i2ī
-3iīnĕ
-3iīuĕ
-3iīvĕ
-1iĭ
-2ij
-2i3le
-ilē3i
-ilḗ3i
-2i3lé
-i3li
-ili4g5n
-ilí4g3
-4ille.
-4illen
-4illeq
-6illeue.
-6illeve.
-4illi.
-4illiq
-4illis
-4illiu
-4illiv
-2illī
-6illíne.
-4illíq
-4illís
-4illíu
-4illív
-2illo
-2illō
-2illó
-4illum
-4illus.
-4illusn
-4illusq
-4illusu
-4illusv
-4illúm
-4illúsn
-4illúsq
-4illúsu
-4illúsv
-2ilo
-2iló
-i2l3ua
-i2luā
-i2l3uá
-i2l3uæ
-i2luǣ
-i2l3uǽ
-il3ue.
-il3ues
-i2l3uē
-il4uēr
-il3ués
-il5uis.
-il5uisn
-il5uisq
-il5uisu
-il3uīs
-il5uī́s
-il5uísn
-il5uísq
-il5uísu
-i2luo
-i2luō
-i2l3uó
-i2luu
-i2luú
-i1m
-2im.
-i3ma.
-i2mad
-ima4lu
-im2am
-im2an
-i3maq
-im2as
-i3mau
-i3mav
-imás3
-i3mæ
-i3mǣ
-i3mǽ
-im3b2
-im5biv
-imbī3q
-imbī3u
-imbī3v
-imbī́5q
-imbī́5u
-imbī́5v
-im2e
-2imed
-ime5dá
-ime5de
-ime5dé
-2imel
-4imetr
-2imēd
-2imēl
-4imḗd
-4imḗl
-2iméd
-2imél
-4i5métr
-im2i
-imi2a
-i4micu
-i4micú
-3i2mie
-3i2miē
-3i2mié
-3i2mii
-i4minē
-4i5minī
-3i2mir
-i4mitæ
-i4mitǽ
-i4mitu
-3i2míc
-3i2míi
-3i2mír
-imí5tur
-1imm
-2imn
-imo4nu
-i4m3ord
-i4m3órd
-1imp
-impe5r6ii
-impe5r6iī
-impe5r6ií
-impe5rin
-impe5riue
-impe5riv
-impe5r4ī
-2imq
-2imue
-2imv
-i1n
-i3na.
-i3nae
-in4al
-i3nam
-i3n4aq
-i3nar
-i3nas
-i3nau
-i3n4av
-i3na͡
-i3náe
-in4ál
-i3nám
-i3náq
-i3nár
-i3nás
-i3náu
-i3náv
-i3næ
-i3nǽ
-indi5st
-in4d3ue
-in4d3ui
-in4d3uī
-in4d3uí
-in4d3úe
-2i3ne
-ine2d
-ine2l
-ine2x
-in3e͞
-in3e͡
-i3né
-iné2d
-1inf
-i3ni.
-i3nia
-i3niá
-i3nib
-ini2c
-in3ice
-in3ici
-i3nii
-i3nií
-ini2m
-i3nin
-i3nio
-i3nió
-i3nis
-i3nit
-i3niu
-i3niú
-i3niv
-iní4ciā
-iní4cie
-iní4ciē
-iní4ciō
-i3nín
-i3níq
-i3nís
-i3níu
-i3nív
-1inj
-2i3no
-2i3nō
-2i3nó
-in5réq
-1in1s2
-insi5ti
-instre5
-instré5
-4int.
-in5ter
-inte5ron
-inte5rōn
-inte5rṓn
-inté6r5is
-2inth
-4intn
-4intq
-2intu
-4intv
-1in1u2
-inu4b
-4inum
-2i3nus
-in1ū2
-inū́4b
-inú2b
-in3únd
-1inv
-io1
-io2a
-iob2
-iobo3
-io2bó
-iom2
-iome3
-iome5d
-2ion
-io3n2i
-io5ni5c
-3iono
-3ionó
-2iope
-2iopē
-2iopé
-io3rī
-2ios
-io2st
-iot4e
-io5ten
-iot4é
-io5tén
-i2ō
-iō3d
-3iōnĕ
-3iōrŭ
-3iōuĕ
-3iōvĕ
-1iŏ
-i1ó2b
-ióbo3
-2ióc
-2ióni
-2iós
-2ipa
-2ipā
-2ipá
-2i3pe
-ipe3r
-iper4a
-iper4ā
-iper4æ
-iper4ǽ
-iper4e
-iper4ē
-iper4o
-iper4ó
-2i3pē
-2ipé
-2iph
-2i3pi.
-2i3pib
-2i3pin
-2i3piq
-4i3pis.
-4i3pisn
-4i3pisq
-4i3pisu
-4i3pisv
-2i3piu
-2i3piv
-2ipī.
-2i3pīn
-2ipīq
-2ipīu
-2ipīv
-4i3pī́n
-4i3pī́q
-4i3pī́u
-4i3pī́v
-2ipín
-2ipíq
-i4písc
-4ipísn
-4ipísq
-4ipísu
-4ipísv
-2ipíu
-2ipív
-2ipl
-ip2ne
-ipo4s3
-2i3pu
-ipu3l
-2ipú
-2ir.
-i1r2a
-irad2
-ira3g
-iras7cen
-iras5t
-i1r2æ
-iræ3d
-i1r2ǣ
-irǣ3d
-i1re
-i3re3d4
-ire5di
-ir3e4me
-ire4mér
-ir5e4mim
-ir5e4mis
-ire4mít
-i3r2ex2
-ire5xi
-ir1ē
-iré4mer
-ir5é4mim
-i1rh
-i1r2i
-i2r3i2b
-iri4be
-i2r3i2m
-iri3n
-i1rī
-ir3í2b
-i2r3í2m
-i1ro
-i1rō
-1irr
-ir5réq
-2irrh
-ir5rue
-i1ru
-i2rue
-i1ry
-i1rý
-2is.
-is2ad
-i2s3al
-is3a4tr
-i2s3ā2
-isā́2
-is4ád
-2i2sc
-is3cæ
-i5scendamus
-i5scendamú
-i5scendant
-i5scendat
-i5scendámus
-i5scendánt
-i5scendát
-i6scende.
-i6scendene
-i6scendeq
-i6scendeu
-i6scendev
-i5scendé
-i5scendim
-i5scendit
-i5scendít
-i5scendun
-i5scendún
-is7cens.
-is7censn
-is7censq
-is7censv
-i5scéndant
-i5scéndat
-i5scéndens
-i5scéndent
-i5scénder
-i5scéndes
-i5scéndet
-i5scéndim
-i5scéndit
-i5scéndun
-i5s6cénsa
-i5s6cénsæ
-i5s6cénse
-i5s6cénsi
-i5s6cénso
-i5s6cénsu.
-i5s6cénsum
-i5s6cénsus
-is4cid
-i3s4cis
-i4s5cis.
-i4s5cisn
-i4s5cisq
-is5cisu
-i4s5cisv
-is3ciu
-is3civ
-is3cī
-is4cíd
-i5s4císs
-2is2e
-2isi
-i2s3i2c
-i2sie
-i2siē
-is4iue
-2isí
-i2s3í2c
-2ism
-2isn
-2iso
-3i2sod
-2isó
-3isód
-i3spec
-is3per
-i5sperg
-isperi6n
-isperi6q
-isper7i6u
-isperi6v
-isperī6n
-isperī6q
-isperī6u
-isperī6v
-isperī́6n
-isperī́6q
-isperī́6u
-isperī́6v
-isperí6n
-isperí6q
-isperí6u
-isperí6v
-i5spers
-i3spex
-i3spéc
-i5spérg
-i5s4pérn
-i5spérs
-i3spéx
-is3pī
-2i2s3q
-i3s4tab
-i3s4tan
-i5s4taue
-i5s4taué
-i5s4tave
-i5s4tavé
-is4tāb
-is4tāt
-is4tāu
-is4tāv
-i3s4táb
-i4s5táe
-is5the
-is5thé
-i2sti
-i3stil
-i2stī
-i2stí
-i3s4tíl
-i3stír
-is3to
-i5strin
-2isu
-i4sue
-is3uis
-is3uís
-2isú
-2isv
-2it.
-itas3t
-ita6ste
-4itatem
-4itates
-4itatém
-4itatés
-4iter.
-ite3ra
-ite5re
-ite3ri
-iteri5ue
-iteri5v
-4itern
-ite3rō
-4iterq
-4iteru
-ite5run
-4iterv
-i3tē.
-i3tēn
-i3tēq
-i3tēu
-i3tēv
-i3téq
-4itérn
-4itérq
-4itéru
-4itérv
-i3téu
-i3tév
-2ith
-i4tial
-i4tiál
-2itn
-4itōt
-4i5tṓt
-2itq
-i3tr
-it4ri
-2itt
-2itud
-i4t3ue.
-2itūd
-2itúd
-2itv
-2iu.
-2i1ua
-2i1uā
-2i1uá
-2i1uæ
-2i1uǣ
-2i1uǽ
-1iub2
-1iuc
-1iud
-2iud.
-iu2d3u
-i1ue
-i3ue.
-i4uerō
-2i1uē
-i1ué
-1iug
-i1ui
-2iuia
-3i2uiā
-3i2uiá
-3i2uiæ
-3i2uiǣ
-3i2uiǽ
-iuid4
-iui3g4
-2iuii
-2iuiī
-2iuií
-2iuio
-2iuiō
-2iuió
-i5uis.
-i5uisn
-i5uisq
-i5uisu
-4iuium
-4iuius
-2iuiú
-2i1uī
-i1uí
-2i3uía
-iuí3g4
-i3uísn
-i3uísq
-i3uísu
-3iulī
-3iulu
-i2um
-iu3ma
-i3und
-3iung
-3iunx
-2iuo
-2i1uō
-2i1uó
-1iur
-iu2s3
-i4us.
-3iusd
-i4usn
-3iusp
-i4usq
-i4usu
-i4usv
-3iuua
-3iuue
-2i3uum
-3iuuo
-2i3uus
-2i1uú
-1iuv
-1iu2x3
-1iū
-iūn4e
-iūn4ĕ
-i2ūr
-iū3rē
-iū2s
-iū2x3
-1i2ŭ
-iŭ2s
-iŭ́3b
-i2ú
-iúb2
-1iúd
-iú2du
-1iúg
-iú3lu
-2iúm
-i3únd
-3iúng
-3iúnx
-1iúr
-iú2s3
-1iú2x
-2iva
-2ivá
-2ivæ
-2ivǽ
-i3ve.
-2ivia
-3i2viā
-3i2viá
-3i2viæ
-3i2viǣ
-3i2viǽ
-ivi3g4
-2ivii
-2iviī
-2ivií
-2ivio
-2iviō
-2ivió
-i5vis.
-i5visn
-i5visq
-i5visv
-2iviu
-2iviú
-2ivī
-2i3vía
-iví3g4
-i3vísn
-i3vísq
-i3vísv
-2ivo
-2ivó
-2ivu
-2ivú
-2ix2
-ix4eu
-ixo3r
-ixu3
-i2x3ue
-ix4us
-2iz
-ī2a
-īa2m
-īa2t
-ī2ā
-īā2tr
-īā́4tr
-ī2ă
-ī2á2
-ī2æ
-ī2ǣ
-ī2ǽ
-īb2
-ība2
-ī3bas
-ī3băs
-ībá2
-ī3bás
-ībe3rō
-ībĕ3rŭ
-ībī3u
-ībī3v
-ībo2
-2īc
-īca2r
-ī5cene
-ī4c3enn
-ī3cē
-ī5cĕnĕ
-ī4c3ĕnn
-īc3énn
-ī3ci
-ī3cī
-ī3cĭ
-ī3cí
-ī2c3ue
-ī2c3u2t
-ī2c3ŭt
-ī3cú
-2īd2
-īda2r
-īde2s
-īdē2s
-ī3do
-īd4or
-ī3du
-īdū2
-ī2e
-īe2t
-ī2ē
-ī2ĕ
-īé2
-īg2
-ī3ga2
-īgá2
-ī3gæ3
-ī3gǣ
-ī3gn
-īg4ne
-īg4nu
-īgo2
-2ī1h
-ī3ha
-ī3hă
-ī1i
-ī2ī
-2īl
-īle2i
-īle2r
-īlé2
-īlo2
-ī1m
-īm2a
-īm2e
-īm2i
-īm2ĭ
-īmo3
-ī1n
-īn2ā
-īne2r
-īn2ĕ
-īné2
-1īnf
-īno2
-1īn1s2
-īn2u
-ī2n3ue
-īn2ŭ
-2īo
-īo3n
-īo4nn
-īo4nq
-īo4nv
-2ī2ō
-2īŏ
-2īó
-2ī2p
-ī3pa
-ī3pā
-ī3pă
-ī3pá
-ī3pæ
-ī3pǣ
-ī3pǽ
-ī3pe3
-īper2
-ī3pē
-ī3pĕ
-īpĕ3r4
-īpĕ́3
-ī3pé
-ī3ph
-ī3pi
-ī3pī
-ī3pĭ
-ī3pō
-ī3pu
-ī3pū
-ī3pŭ
-ī3pú
-ī1r
-īr2a
-īra3g
-īra2r
-īrās3
-ī3r2ă
-īræ2ă
-īrǣ2ă
-ī3rēu
-ī3rēv
-īro2
-īró2
-īsa2r
-īsá2
-īs3cæ
-īs3cǣ
-īs3cī
-2īs2e
-2ī3s2ĕ
-īs2i
-2īsī
-1ī2so
-2īsō
-1ī2sŏ
-1īsó
-ī2sq
-īs4tíl
-īs3tr
-ī2sue
-ī2suĕ
-2īsŭ
-2īsú
-īta2r
-īta6ste
-ītăs5t
-ītă6stĕ
-īte5re
-2ītē
-ītĕ3rĕ
-ī1u2
-2īua
-2īuā
-2īuă
-2īuá
-2īuæ
-2īuǣ
-2īuǽ
-īuid4
-īui3g4
-īuĭ3g2
-īuĭ́3g4
-īuí3g4
-ī2um
-ī2un
-īuo2
-2īuō
-2īuu
-2īuŭ
-2īuú
-2īū
-ī2ŭ
-ī2ú
-2īva
-2īvā
-2īvă
-2īvá
-2īvæ
-2īvǣ
-2īvǽ
-īvi3g4
-īvĭ3g2
-īvĭ́3g4
-īví3g4
-2īvō
-2īvu
-2īvŭ
-2īvú
-īx2
-īx4eu
-īxo4r
-ī2x3ue
-īx4us
-īxū3r
-ī2́
-ī́b2
-2ī́c
-ī́3ce
-ī́3cĕ
-ī́3cī
-ī́3cĭ
-2ī́d2
-ī́3g2
-ī́g4n
-2ī́h
-ī́5hai
-ī́5hăĭ
-ī́1i
-ī́3lu
-ī́1m2
-ī́3met
-ī́3mĕt
-3ī́n3s2
-ī́3r2ă
-ī́3sĕ
-ī́4s3t
-ī́s5tr
-2ī́ū
-2ĭa
-2ĭā
-ĭā4trā
-ĭ1ā2x
-4ĭā́n
-ĭ3ā́2x
-2ĭă
-ĭăb2
-ĭă4cĕ́
-ĭ2ăcŭ
-ĭăd2a
-ĭă2dă
-ĭăd2æ
-ĭăd2ǣ
-ĭăd2ǽ
-ĭăd2ē
-ĭă3d2ĕ
-ĭăd2ī
-ĭămb2
-ĭămbī5n
-ĭămbī5u
-ĭămbī5v
-ĭămbī́5n
-ĭămbī́5u
-ĭămbī́5v
-ĭăm5bŭ
-ĭă2m3ĭ
-ĭ3ăng
-ĭă2nĭ
-ĭ2ănt
-ĭ1ă2p
-ĭ2ăq
-ĭ2ăr
-ĭă3rĕ
-ĭă3s4pĕ
-ĭăs3t
-ĭăs5tĕ
-ĭăs5tr
-ĭ2ăt
-ĭ2ău
-ĭ2ăv
-ĭ2ắc
-ĭắ3d
-ĭ3ắl
-ĭ2ắm
-ĭắm3b4
-ĭắ2n
-ĭ3ắng
-ĭ2ắr
-2ĭá
-2ĭæ
-ĭæ2ă
-ĭæ2ŭ
-2ĭǣ
-ĭǣ2ă
-ĭǣ2ŭ
-2ĭǽ
-ĭbĕ3rŭ
-ĭb2ī
-ĭbī3u
-ĭbī3v
-ĭb2ĭ
-ĭb2ō
-ĭbŏ3l
-ĭb2r
-ĭ3b2ū
-ĭb4ū́
-ĭ3bŭm
-2ĭ3ca
-2ĭ3cā
-2ĭ3că
-2ĭ3cá
-2ĭ3cæ
-2ĭ3cǣ
-2ĭ3cǽ
-ĭ3cēn
-2ĭ3cīs
-ĭ3cī́s
-2ĭ3cō
-2ĭ3cŏ
-ĭ2cu
-ĭc2ū
-2ĭd
-ĭ3dă
-ĭ3dē
-ĭdē3m
-ĭdē2s
-ĭ3d2ĕ
-ĭ3dī
-ĭ3dĭ
-ĭdĭ3g
-ĭdĭ́3g
-ĭd3ĭ́p
-ĭ2d1u
-ĭ3d2ŭ
-ĭd4ŭĕ
-2ĭ2e2
-2ĭē.
-2ĭēg
-4ĭēnĕ
-2ĭēq
-ĭē2s
-ĭ3ēsa
-ĭ3ēsē
-ĭ3ēsĕ
-ĭ3ēsī
-ĭēs3p
-ĭēs3t
-2ĭēu
-2ĭēv
-2ĭḗg
-4ĭḗq
-ĭḗ2s
-ĭ3ḗsē
-ĭ3ḗsĕ
-ĭ3ḗsī
-4ĭḗu
-4ĭḗv
-2ĭĕ.
-2ĭ1ĕg
-2ĭĕī
-2ĭ2ĕm
-2ĭĕō
-2ĭĕq
-ĭĕ3r2ĕ
-ĭ3ĕrm
-2ĭĕtē
-2ĭĕtĕ
-2ĭĕtī
-2ĭĕtĭ
-2ĭĕtŭ
-2ĭĕu
-2ĭ2ĕŭ
-2ĭĕv
-2ĭ3ĕ́g
-ĭĕ́3rĕ
-4ĭĕ́tĕ
-4ĭĕ́tĭ
-2ĭé
-ĭfĕ6stĕ
-1ĭg2a
-1ĭgá
-1ĭg2æ3
-1ĭg2ǣ
-1ĭgǽ
-4ĭgĕna
-4ĭgĕnā
-4ĭgĕnă
-4ĭgĕná
-4ĭgĕnæ
-4ĭgĕnǣ
-4ĭgĕnǽ
-4ĭgĕnē
-4ĭgĕnĕn
-4ĭgĕnĕq
-4ĭgĕnĕu
-4ĭgĕnĕv
-4ĭgĕnī
-4ĭgĕnō
-4ĭgĕnŭ
-3ĭgĕs
-4ĭgĕ́nă
-4ĭgĕ́nĕ
-3ĭgĭă
-3ĭgĭb
-3ĭgĭŭ
-ĭ2gn
-ĭg3nāt
-ĭg5nā́t
-ĭg3nē
-ĭg3nĭ
-ĭ3gr
-ĭ1h
-ĭhĭ́3
-ĭ1i
-2ĭī
-ĭ3ĭ2ă
-ĭĭăm3
-2ĭle
-2ĭ3lē
-ĭlē3i
-ĭlḗ3i
-2ĭ3lĕ
-2ĭlé
-2ĭ3lī
-2ĭ3lĭ
-2ĭllĕ
-2ĭllī
-2ĭllō
-2ĭllŭ
-ĭ2l1u
-ĭ1m
-ĭ2măd
-ĭmăs3
-ĭm3b2
-ĭmbī3n
-ĭmbī3u
-ĭmbī3v
-ĭmbī́5n
-ĭmbī́5u
-ĭmbī́5v
-4ĭ5mĕtr
-4ĭmĕ́tr
-ĭm2ĭ
-ĭmĭ2ă
-3ĭ2mĭē
-3ĭ2mĭĕ
-3ĭ2mĭĭ
-2ĭmĭn
-ĭ4mĭnē
-ĭ4mĭnĕ
-1ĭmm
-1ĭmp
-ĭmpĕ5rī
-ĭ2mu
-2ĭmŭr
-ĭn1a
-2ĭ3nă
-ĭn4ăn
-ĭn4ăq
-ĭn4ău
-ĭn4ăv
-ĭn1æ
-ĭndĭ5st
-ĭn4d3ŭĕ
-ĭn4d3ŭī
-ĭn4d3ŭĭ
-ĭn4d5ŭ́ĕ
-ĭn4dŭ́ĭ
-ĭn3e
-2ĭ3nĕ
-ĭnĕ2d
-ĭn4ĕn
-ĭn4ĕu
-ĭn4ĕv
-ĭnĕ2x
-ĭnĕ́4d
-3ĭngr
-1ĭ2n1i
-2ĭnī
-ĭ3n4ĭb
-ĭn5ĭbĭ
-ĭnĭ2c
-ĭ3n4ĭs
-ĭnĭ2t
-ĭnĭ́4cĭ
-ĭ3nĭ́s
-1ĭnj
-2ĭ3nō
-ĭnŏ4p
-ĭnŏ3s2
-4ĭnt.
-3ĭntĕ
-ĭntĕ5rōn
-4ĭntn
-4ĭntq
-4ĭntu
-4ĭntv
-1ĭnu
-ĭn1ū2
-ĭnū́4b
-1ĭnŭ
-1ĭnv
-2ĭō
-2ĭŏ
-ĭŏb2
-ĭŏ2bŏ
-ĭŏm2
-ĭ2ŏn
-ĭ2ŏr
-ĭŏ3rī
-ĭŏ2s
-ĭŏ́2b
-ĭ2ŏ́n
-ĭ2ŏ́r
-2ĭpā
-2ĭpē
-2ĭpĕ
-ĭpĕ3rĕ
-ĭpĕ3rō
-ĭpĕ3rŏ
-2ĭpī.
-2ĭ3pīn
-2ĭpīq
-2ĭpīu
-2ĭpīv
-4ĭ3pī́n
-4ĭ3pī́q
-4ĭ3pī́u
-4ĭ3pī́v
-2ĭ3pĭ
-2ĭpl
-ĭp2n
-2ĭps.
-2ĭpsn
-2ĭpsq
-2ĭp2su
-2ĭpsv
-2ĭpŭ
-2ĭq
-ĭ3qu
-ĭ1r2a
-ĭ1ră
-ĭ1r2æ3
-ĭ1r2ǣ
-ĭrǣ3d
-ĭr1ē
-ĭ1rh
-ĭ1rī
-ĭ2r1ĭ2
-ĭrĭ́2
-ĭ1rō
-ĭ1rŏ
-2ĭrrh
-ĭ1rŭ
-ĭr4ŭn
-ĭ1ry
-2ĭs
-ĭ2s3ā2
-ĭsā́2
-ĭ2s1ă
-ĭs2ăd
-ĭ2sc
-ĭs3cī
-ĭ3s4cĭs
-ĭ5s6cĭ́ss
-ĭ2si
-ĭs1ĭ
-ĭsĭ2c
-ĭsĭ́4c
-ĭ3spĕc
-ĭs3pĕr
-ĭ5spĕrg
-ĭspĕrī6n
-ĭspĕrī6q
-ĭspĕrī6u
-ĭspĕrī6v
-ĭspĕrī́6n
-ĭspĕrī́6q
-ĭspĕrī́6u
-ĭspĕrī́6v
-ĭspĕ4r5ĭ
-ĭ5spĕrs
-ĭ3spĕx
-ĭ5spĕ́c
-ĭspĕ́4r5
-ĭ5spĕ́rg
-ĭ5spĕ́rn
-ĭ5spĕ́rs
-ĭ5spĕ́x
-ĭs3pī
-3ĭssĭs
-ĭs4tāb
-ĭs4tāns
-ĭs4tāt
-ĭs4tāu
-ĭs4tāv
-ĭs4tā́b
-ĭ3s4tăn
-ĭ3s4tĕm
-ĭ5s4tĕ́m
-ĭ3s4tĭm
-2ĭt.
-ĭ3tē.
-ĭ3tēn
-ĭ3tēq
-ĭ3tēu
-ĭ3tēv
-ĭ3tōt
-ĭ3tṓt
-2ĭtŏ
-ĭ3tr
-ĭ2tu
-2ĭ3tŭr
-ĭ3tŭ́r
-ĭ1u
-ĭ3uĕ
-2ĭuī
-ĭ1ūs
-2ĭŭ2
-ĭ1ŭb
-ĭ3ŭnd
-ĭ3ŭ́nd
-ĭ3vĕ
-2ĭvī
-ĭx2a
-ĭx2ā
-ĭx2ă
-ĭx2ǣ
-ĭx2ĕ
-ĭx2ī
-ĭx2ĭ
-ĭx2ō
-ĭx2ŏ
-ĭ2xu
-ĭx2ŭ
-ĭ2́
-2ĭ́ă
-ĭ́b2ī
-ĭ́bŏ3l
-ĭ́b2r
-2ĭ́d
-ĭ́2d3u
-ĭ́2ĕ
-2ĭ́ĕt
-3ĭ́gĭă
-3ĭ́gĭb
-3ĭ́gĭŭ
-2ĭ́l
-ĭ́5lĭn
-ĭ́l3u
-ĭ́m3b2
-3ĭ́mĭĭ
-ĭ́4mĭnē
-ĭ́5mĭnī
-3ĭ́mm
-ĭ́n4d5ŭī
-ĭ́n4dŭĭ
-ĭ́n3ĕs
-ĭ́n3ī
-3ĭ́nj
-ĭ́nŏ4p
-3ĭ́ntĕ5
-ĭ́n5ŭīs
-ĭ́n5ŭōs
-ĭ́n5ŭŭm
-ĭ́n5ŭŭs
-ĭ́ŏ1
-ĭ́rĭ4m
-2ĭ́s
-ĭ́4spĕr
-5ĭ́ssĭs
-ĭ́5s4tān
-ĭ́s4tĕm
-2í2a
-íad2
-ía3g
-ía1m
-ía1s
-íb2e
-íbe3r
-íb2i
-íb2ī
-íb2o
-íbo3l
-íb2r
-íb2u
-í3bum
-2íc.
-2íca
-2íce.
-2ícem
-2íces
-2ícet
-2í3ci.
-2í3cis
-2ícl
-2ícn
-2íco
-2ícq
-2íct
-í2c3u2t
-2ícv
-2íd
-í3d2e
-íd2i
-íd2u
-í3duu
-í2e1
-2íei
-2íeī
-2íen
-2íeo
-2íeō
-2íeq
-2íet
-2íeu
-2íev
-2íf
-ífe1
-íg2a
-í3gæ
-4ígena
-4ígenā
-4ígenæ
-4ígenǣ
-4ígenē
-4ígeni
-4ígenī
-4ígeno
-4ígenō
-4ígenu
-í2giī
-í2giō
-í2gn
-2í1h
-í3ha
-í1i
-2íi.
-í2im
-2í2is
-í2it
-í3li
-2ílle
-4ílli.
-4íllis
-2íllī
-2íllo
-2íllō
-2íllu
-íl1u
-í2lua
-í2luā
-í2luæ
-í2luǣ
-í4luis
-íl4uit
-í4luiu
-í4luīs
-í2luu
-2í1m2a
-2ím3b2
-ím2e
-2ímet
-ím2i
-í4minē
-í5minī
-1ímm
-2ímn
-í1mo
-ímpe3
-2ímq
-ím2uī
-2ímv
-ín2a
-ín3de
-ín4d3i4g
-índo4
-ín4d3ol
-ín4due
-ín4d3ui
-ín4d3uī
-2íne
-íni4cit
-ín1ī
-1ínj
-ín3o4p
-1ín1s2
-ín2t
-ínte3
-ínte5r
-2ínth
-2íntn
-ín3to
-2íntq
-2íntu
-2íntv
-í1nu
-ín2ua
-ín2uā
-ín2uē
-ín2ul
-í3nus
-2í2o1
-2íp
-ípe3
-í3pi
-í2pn
-ípte3
-ípu3l
-í1r
-ír2a
-íra3g
-ír3i4be
-ír3i4bē
-ír3i4ma
-ír3i4mā
-ír3i4me
-ír3i4mē
-ír3i4mi
-ír3i4mī
-ír3i4mo
-ír3i4mō
-1írr
-ír5rue
-í2rue
-2ís
-í2s3c
-ís4cid
-ís2i
-í2s3i2c
-í4sper
-ís3pī
-ís3q
-ís4tans
-í3s4tān
-ís4tem
-ís5tim
-ís5tin
-ís3to
-ís3uis
-íte1
-í2tu
-í3tu.
-í3tui
-4ítuis
-4ítuīs
-í3tum
-2ítuo
-2ítuō
-í3tus
-2ítut
-í1u2
-2íu.
-í3ub
-2íud
-2íuia
-3í2uiā
-3í2uiæ
-3í2uiǣ
-2íuii
-2íuiī
-2íuio
-2íuiō
-2íuiu
-2í2um
-í2un
-íuo1
-2ívia
-3í2viā
-3í2viæ
-3í2viǣ
-2ívii
-2íviī
-2ívio
-2íviō
-2íviu
-ívo1
-2íx
-íx2a
-íx4eu
-íx2i
-íx2ī
-íx2o
-íx2ō
-í2xue
-íx4us
-1j
-j2a
-jab2
-jad2
-jadæ3
-ja2x3
-jān2
-2jāx
-jăd2
-já2x
-jece3
-je1r
-jes5tā
-jex2i
-je2xu
-jē3sū
-jĕ1r
-jĕ3r4ĕ
-jĕs3
-jé2xu
-jo1
-jo2a
-jon2
-jo2s
-jón2
-jub2
-ju3ma
-ju3ri
-ju2s3
-ju2x3
-j2ū
-jūn4e
-jūn4ĕ
-jū3rē
-jū2s
-jū2x3
-j2ŭ
-jŭ2s
-jŭ́3b
-júb2
-jú2s3
-jú2x
-1l
-l2a
-la3b2
-lab4a
-labī3u
-labī3v
-lab4u
-la3cr
-la4c3ue
-la3cū
-lad2
-lae4s5t
-la3g
-la2i
-la3s4pe
-la3spé
-las3t
-las5tr
-late4i
-latē2
-la3tr
-la5trí
-la͞e4st
-la͡e4st
-l2ā
-lā3cr
-lā3g
-lā2ia
-lā2ic
-lā4iīs.
-lā6iīsne
-lā6iīsque
-lā6iīsue
-lā6iīsve
-lā6iī́sne
-lā6iī́sque
-lā6iī́sue
-lā6iī́sve
-lā2iu
-lā2iú
-lā2ĭ
-lā́3cr
-l2ă
-lă3b2
-lăbī3u
-lăbī3v
-lă3cū
-lăs3t
-lăs5tă
-lăs5tr
-lă5trĭ
-l2á
-láb2
-lá4c3ue
-láe2c3
-láes5t
-lá3g
-lá2i
-læ2a
-læ2ă
-læ2á
-læ3d
-læ2i
-læ3q
-læ2st
-læ3ue
-læ3uĕ
-læ2ŭ
-læ3v
-lǣ2a
-lǣ2ă
-lǣ3d
-lǣ3q
-lǣ2st
-lǣ3ue
-lǣ3uĕ
-lǣ2ŭ
-lǣ3v
-lǽ2c1
-lǽ2st
-2lb2
-l3bi
-lbī3u
-lbī3v
-l3bu
-l3bŭ
-2lc
-lce1
-2ld
-lda1
-lde3
-l2e
-le3br
-le3bu
-le2e
-le3go
-le3gō
-le2iá
-le2ii
-le2ií
-le2io
-le2ió
-le2iu
-le2iú
-le3l
-lelu3
-le1r
-ler2æ3
-lere3ā
-ler4i
-le3rī
-2l3ers
-2l3ert
-les3c
-le2s3p
-les3t
-le2un
-le2ur
-leu5rá
-leu5re
-leu5ré
-lex2
-le3x4e
-le3xi
-lexu3r
-lexū3r
-l2ē
-lē3bu
-lē3bŭ
-lē2iá
-lē2ie
-lē2iō
-lē2iu
-lē2iú
-lē3ne
-lē3nĕ
-lē2sp
-lēs3t
-3lēx
-l2ĕ
-lĕ2ă
-lĕ3gō
-lĕ2ĭ
-2lĕp
-lĕ3r4ĕ
-lĕrĕ3ā
-lĕ3rī
-lĕ3rŏ
-2l3ĕrs
-2l3ĕrt
-lĕ3rŭ
-lĕs3
-lĕx2
-lĕxū3r
-l3ĕ́rs
-l3ĕ́rt
-lĕ́s3
-lé3br
-3lég
-lé3iō
-2l3érs
-2l3ért
-lés3t
-lé3uō
-léx2ī
-2lf
-2lg2
-l3ga
-l3gæ3
-l3gǣ
-l2i
-li2a
-3libe
-li3g4ni
-li2i
-3liī
-lin2ā
-lino3s
-li3q
-li4s3c
-lis5ci
-li4st
-lis5ta
-lis5tā
-li3u2b
-4liud
-2lix
-lī3q
-lī2xu
-lī́3q
-l2ĭ
-lĭ4ắ
-3lĭbĕ
-lĭ4ēn
-3lĭĕ
-3lĭī
-3lĭm
-3lĭn
-lĭn2a
-lĭn2ā
-lĭn2æ
-lĭn2ĕ
-lĭnĭ5tĕ
-lĭnĭ5tō
-lĭs3
-lĭ4st
-lĭs5tā
-lĭs5tă
-2lĭŭd
-lí4c3ue
-lí3q
-lí3tur
-2lj
-2ll2
-lle2i
-lle2x
-llē2i
-lli4c3u
-llu2d3
-llū2
-l3lŭ
-llú2
-2l1m2
-2l1n2
-l2o
-lo2a3
-lo2ā
-lo2á
-lo3b2
-lo4bn
-lo4cue
-lo2e
-logæ3
-longǣ4u
-longǣ4v
-lo3ni
-lo5ni5c
-lo5níc
-lo4rn
-lo4rq
-lo4rv
-lo2sp
-los3t
-lo2x3
-lō3d2
-lōe2
-lō3r
-lṓr2
-lṓ4s5t
-l2ŏ
-lŏ2ā
-lŏb2
-lŏngǣ4u
-lŏngǣ4v
-lŏ2s
-ló2x
-2lp
-lpe3r2
-lpĕ3rĕ
-l3pi
-l3pĭ
-lpo4s3
-2lq
-2l1s2
-l2s3t
-2lt
-lte1
-lter4a
-lte5re
-lte5ré
-lteri5ue
-lteri5v
-lte5rī
-lterī5ue
-lterī5v
-ltĕ3r4a
-ltĕ3rǣ
-ltĕ5rī
-ltĕrī5u
-ltĕrī5v
-ltéri5t
-l1uā
-l1uă
-l1uǣ
-l2u3b2
-lu3do
-l3uea
-l3ueā
-l3ueá
-l3uee
-l3uei
-l3ueī
-l3ueí
-l3ueo
-l3ueō
-l3ueó
-2lues
-lue6ste
-l3ueú
-2l3uĕ
-luĕ6stĕ
-l3uée
-2l3uia
-2l3uiā
-2l3uiá
-2l3uiæ
-2l3uiǣ
-2l3uiǽ
-2l3uic
-2luif
-2l3uii
-2l3uiī
-2l3uií
-2l3uio
-2l3uiō
-2l3uió
-l3uium
-l3uius
-2l3uiú
-l1uĭ
-2l3uía
-2luíc
-2luíf
-l3uína
-l5uínen
-l5uíneq
-l5uíneu
-l2um
-lumi3
-3l2un
-l1uō
-lu1r
-luru3
-lusa4t
-lu2s3ā2
-lu2tī
-lu3xo
-lū3d
-lūru3
-lŭ3b2
-2lŭc
-2l1ŭ2t
-lŭ́4s
-lŭ́s5t
-lŭ́3u
-lŭ́3v
-lúb2
-lú3ia
-lú1r
-2lv2
-lve6ste
-lvĕ6stĕ
-2l2x2
-lx3u
-lý2c
-2lz
-1ma.
-1mab2
-m1ad
-ma2du
-3m2ae
-ma2ga
-ma2gā
-ma2gá
-ma2ge
-ma2gé
-ma2gī
-ma4g3n
-ma2gō
-ma2gu
-ma2gú
-ma1i
-ma4ia.
-ma4iae
-ma4iam
-ma4ian
-ma4iaq
-ma4iar
-ma4ias
-ma4iau
-ma4iav
-ma4ia͞
-ma4ia͡
-ma4iā.
-ma4iān
-ma4iāq
-ma4iār
-ma4iās
-ma4iāu
-ma4iāv
-ma4iā́n
-ma4iā́q
-ma4iā́r
-ma4iā́s
-ma4iā́u
-ma4iā́v
-ma4iáe
-ma4iám
-ma4ián
-ma4iár
-ma4iás
-ma4iáu
-ma4iáv
-ma2iæ
-ma2iǣ
-ma2iǽ
-ma4iis
-ma4iīs
-ma4iī́s
-ma4iís
-ma3io
-ma3ió
-ma2iq
-ma4iue
-ma3iú
-ma2iv
-1mal
-mali3g4
-malí3g4
-mal4ui
-ma4l3uī
-m1am
-mam4b3i4
-mambī4
-mambī́4
-mam4b3í4
-m2ami
-1man
-ma3ni.
-ma3nin
-ma3niq
-ma3nis
-ma3niu
-ma3niv
-ma3nín
-ma3níq
-ma3nís
-ma3níu
-ma3nív
-man3s
-man5s4i
-mansi5u
-mansi5v
-man5s4í
-1m2a3q
-ma2rā
-m2aru
-3masi
-3masí
-mas2p
-mas3t
-1mat
-ma3tr
-1m2au
-1mav
-3m2a͞
-3m2a͡
-1m2ā
-m3āc
-mān3sa
-mān3să
-mān5s4i
-mān3s4ī
-mānsī5n
-mānsī5q
-mānsī5u
-mānsī5v
-mān5s4ĭ
-2m3ā2x
-m3ā́c
-mā́n5s6i
-mā́n5s6ĭ
-2m3ā́2x
-1mă.
-m1ăd
-mă2gā
-mă2gă
-mă2gī
-mă2gō
-mă2gŏ
-mă2gŭ
-mămbī4
-mămbī́4
-măm4b3ĭ
-1m2ăn
-3mănĕ
-2m3ănĭ
-mă4nĭ́
-3măntē
-3m2ă3q
-m3ă2rā
-mă4răn
-mă4răt
-mă4rĕr
-mă4rĕt
-m3ă2rŏ
-măs2p
-1m2ăt
-3m2ău
-3m2ăv
-1m2ắ
-4m3ắnĭ
-1má
-3m2áe
-má4gn
-má1i
-má4iīs
-má3io
-má4luī
-mám4b3i
-m2án
-mán3s4i
-m2ár
-2máræ
-m2áu
-1m2æ
-mæ2a
-mæ2ă
-mæ2á
-mæ2i
-mæ2st
-mæ2ŭ
-1m2ǣ
-mǣ2a
-mǣ2ă
-mǣ2st
-mǣ2ŭ
-1m2ǽ
-2mb
-m2b3ag
-mb2al
-m4baru
-m4barv
-m2bă
-m3bắr
-mb2ác
-mbæ3
-m3be.
-m3bea
-m3beá
-m2be4d
-m3ben
-m3beo
-m3beó
-m3b2eq
-mb3es
-m3beu
-m3beú
-m3bev
-m2b3ēs
-m2bĕd
-m3bĕn
-mb3ĕ́4d
-m2bé2d
-m2bés
-m4b3iam
-m4b5iant
-m4b3iar
-m4b3ias
-m4b5iat.
-m6b5iatis
-m6b5iatís
-m4b5iatn
-m4b5iatq
-m4b5iatu
-m4b5iatú
-m4b5iatv
-m4b3iām
-m4b3iār
-m4b3iās
-m4b5iāti
-m4b5iātí
-m4b5iātu
-m4b5iātú
-mb3iā́
-m4biā́m
-m4biā́r
-m4biā́s
-m4biā́t
-m2b3iá
-mb2i3c
-m2bie
-mbi3eg
-m2biē
-m2bié
-mbi3ég
-mb6igene
-m2bii
-m2b3iī
-m2b3ií
-m4b3i4mi
-mbi4mur
-mbi4múr
-m4b3io.
-m4b3ion
-m4b3ioq
-m4b5ior.
-m4b5iorn
-m4b5iorq
-m4b5ioru
-m4b5iorv
-m4b3iou
-m4b3iov
-m2b3iō
-m2b3ió
-m4b3iss
-m4b3ist
-m4b3i4ta
-m4b3i4tá
-m4b3i4tæ
-m4b3i4tǽ
-m4b3iti
-mbi4ti.
-mbi4tib
-mbi4tin
-mbi4tió
-mbi4tiq
-mbi4tiu
-mbi4tiv
-mbi4tín
-mbi4tíq
-mbi4tíu
-mbi4tív
-mb3ito
-mbi4tor
-mbi4tos
-mbi4tór
-mbi4tós
-m4b5i4tu.
-m4b5i4tum
-m4b5i4tun
-m4b5i4tuq
-m4b5i4tur
-m4b5i4tus
-m4b5i4tuu
-m4b5i4tuv
-m4b3i4tū
-mb3i4tú
-m2b3iú
-m4bive
-m2bī2
-mbī́2
-mbī́4t
-m4b3ĭām
-m4b3ĭār
-m4b3ĭās
-m4b5ĭātĭ
-m4b5ĭātŭ
-mb3ĭā́
-m4bĭā́m
-m4bĭā́r
-m4bĭā́s
-m4bĭā́t
-m2b3ĭă
-mb2ĭ3c
-m2bĭē
-m2bĭĕ
-mb6ĭgĕnĕ
-m2b3ĭī
-m2bĭĭ
-m2b3ĭō
-m4b5ĭŏr.
-m4b5ĭŏrn
-m4b5ĭŏrq
-m4b5ĭŏru
-m4b5ĭŏrv
-m4b3ĭŏ́
-m4b3ĭtĭ
-m4b3ĭ4tū
-m4b5ĭ4tŭm
-m4b5ĭ4tŭs
-mbĭ6tŭ́m
-mbĭ6tŭ́s
-m2b3ĭŭ
-m4b3ĭ́ĕ
-m4b3ĭ́ĭ
-m4b5ĭ́4tĭ
-mb1í
-mb2í3c
-m2bíe
-mb4ígen
-m2bíi
-m4bí4mi
-m4b3íss
-m4b3íst
-mbí2t
-mbí4tu.
-mb4ítui
-mb4ítuī
-mbí4tum
-mbí4tus
-mb2l
-mb2o
-mbo3r
-mb2ō
-m3b2r
-m3bu
-m5bus.
-m5busn
-m5busq
-m5busu
-m5busv
-m2b3ūs
-m3bŭ
-2mc2
-2md2
-mde3d
-mde2s
-mdē2s
-mdĕ3d
-m3do
-md4or
-1me
-mea3p2
-meá3p2
-m2eb
-med2
-me4dam
-me4dan
-me4dat
-2me2dā
-me4dám
-me4dán
-me4dár
-me4dát
-me4deb
-me4den
-me4der
-me4det
-2me2dē
-me4déb
-me4dén
-me4dér
-me4dét
-med4i
-me4dim
-2me2dī
-me4dím
-me4dít
-med4o
-me4dor
-me4dō.
-me4dōq
-me4dōu
-me4dōv
-me4dór
-me4due
-me4dún
-me2e
-mee3ri
-mee3rí
-m1eg
-me2ge
-me2gé
-me2gi
-me3go
-me3iá
-me3ie
-me3io
-me3ió
-me2it
-me3iú
-me3íp
-m2em
-m2en
-3mena
-3mená
-men2e
-me3neu
-3mené
-3meni
-3mení
-me3p2
-m1eq
-m2er
-me3ra
-me3rē
-me3ri
-4merim
-me3rī
-2m3erm
-me3ro
-me3rō
-me3r2u
-2m3eso
-me4so.
-me4son
-me4soq
-me4sor
-me4sou
-me4sov
-2m3e2só
-me2sp
-2m3ess
-5messat
-5messát
-mes3t
-me2su
-m4esue
-4m3esum
-4m3esus
-2m3e2sú
-3mete
-mete3r
-meteri5ue
-meteri5v
-3meté
-2mets
-me2un
-m2ev
-m2e2x
-1mē
-mē4der
-mē4dēr
-mē4dĕr
-mē4dér
-mē4dim
-mē4dit
-mē4dĭm
-mē4dĭt
-mē4dít
-mē2du
-m1ēg
-mē2ge
-mē2gē
-mē2gĕ
-mē2gé
-mē2gi
-mē2gĭ
-mē2gí
-mē3i
-m2ēl
-m2ēm
-m2ēn
-mē3ne
-mē3p2
-3mēq
-m2ēr
-2m3ē4sa
-2mē2sā
-2mē2să
-2mē2sá
-2mēsæ
-2mēsǣ
-2mēsǽ
-2mēsō
-mēs3t
-mē2su
-4mēsum
-4mēsus
-2mē2sŭ
-2mēsú
-3m2ēu
-3m2ēv
-mḗ4der
-mḗ4dĕr
-mḗ4dim
-mḗ4dit
-mḗ4dĭm
-mḗ4dĭt
-mḗ4gi
-mḗ4gĭ
-mḗ3i
-mḗ3p2
-4mḗsa
-4mḗsā
-4mḗsă
-4mḗsæ
-4mḗsǣ
-4mḗsō
-4mḗsum
-4mḗsus
-4mḗ4sŭ
-m2ḗu
-m2ḗv
-1mĕ
-mĕ2ă
-m1ĕd2
-2mĕ2dā
-2mĕ4dă
-2mĕ2dē
-2mĕ2dĕ
-2mĕ2dī
-2mĕd4ĭ
-mĕ4dĭs
-mĕ4dō.
-m2ĕdŏ
-mĕ4dŏr
-2mĕ2dŭ
-mĕ2ĕ
-2mĕg
-mĕ2ĭ
-mĕ3ĭp
-m2ĕm
-m2ĕr
-4mĕrăm
-mĕ3rē
-mĕ3r4ĕ
-mĕ3rī
-4mĕrĭm
-4mĕrĭn
-2m3ĕrm
-3mĕ3rŏ
-mĕ3rŭ
-mĕ2sp
-m2ĕt
-mĕ2t3ĭ
-2mĕts
-m2ĕ́
-m3ĕ́2d
-5mĕ́ntĕr
-5mĕ́ntĭŏ
-5mĕ́ntĭŭs
-m3ĕ́2q
-mĕ́r6ĕă
-4m3ĕ́rm
-5mĕ́tr
-4mĕ́ts
-1mé
-mé4der
-mé4dim
-mé4dit
-mé2du
-mé3i
-mé4is
-m2ém
-5ménter
-5méntio
-5méntius
-mé3p2
-m2ér
-mér4e
-4mérim
-2m3érm
-mér4ui
-mér4uī
-4mérun
-2mésæ
-2méso
-2m3éss
-4méste
-4méstn
-4mésto
-4méstq
-4méstu
-4méstv
-mé2su
-4mésu.
-m4ésue
-4mésum
-4mésus
-2méts
-3méu
-3mév
-mé2x
-2mf
-mge6ste
-mgĕ6stĕ
-2m1h
-1mi
-m2ia.
-mi3ad
-m2iae
-mi3a2g
-mi3al
-m2iam
-miam4b3
-mia2p
-m2ias
-mi3ass
-mi3atr
-m2ia͞
-m2ia͡
-m2iā
-mi3ātr
-mi3ā́x
-mi3áss
-m2iæ
-m2iǣ
-mi2be
-mi2bé
-m3ict
-m2id
-3mie.
-3mieq
-3mieu
-3miev
-m2ig
-m2iīs
-m2il
-mi3n4a
-min2ā
-min4e
-min2i
-mini3m
-min4in
-min4iq
-min4is
-min4iu
-min4iv
-mi3n4ī
-miní4ci
-min4ín
-min4íq
-min4ís
-min4íu
-min4ív
-m2i3n4u
-minu3d
-min2ū
-minū3d
-mi3nú
-m2io
-mio2s
-m2iō
-m2ió
-m2is
-mi3sa
-mi3sá
-mi4s5ci
-mi3scr
-mis2i
-mi4sn
-mi3s2p
-mi4sq
-mi4s5ta
-mis5tā
-mis5te
-mi4sv
-m6itate.
-5mitatem
-m6itatene
-m6itateq
-5mitates
-m6itateu
-m6itatev
-5mitatém
-5mitatés
-m4itati
-m4itatí
-m6itatum
-m6itatúm
-m4itáte
-5mitátem
-5mitátes
-m4itáti
-m6itátum
-mi2tū
-mi4um
-2miur
-m2i1ū
-m2iú
-mi3úst
-1mī
-2mīc
-m2īn
-mī3nĕ
-m2ī3q
-m2īs.
-mī2sc
-m2īsn
-mī3so
-mī3sŏ
-m2īsq
-m2īsu
-m2īsv
-mī3ue.
-mī3uĕ.
-mī3ve.
-mī3vĕ.
-mī́4ba
-mī́4bā
-mī́4bă
-mī́4be
-mī́4bĕ
-mī́4bo
-mī́4bō
-mī́4bŏ
-mī́4bu
-mī́4bŭ
-2mī́c
-m2ī́n
-m2ī́q
-1mĭ
-3mĭa
-3mĭā
-mĭ3ātr
-mĭ1ă
-3mĭă.
-mĭă2g
-3mĭăm
-2mĭăr
-3mĭá
-3mĭæ
-3mĭǣ
-3mĭǽ
-3m2ĭb
-mĭ4cĭt
-2mĭcŏ
-3mĭĕ.
-mĭ4ĕn
-3mĭ4ĕq
-3mĭ4ĕu
-3mĭ4ĕv
-3mĭīs
-3m2ĭl
-mĭn2ā
-mĭn4ĕ
-4mĭnĕŏ
-mĭ3n4ī
-mĭn2ū
-mĭnū3d
-mĭnū3t
-3m2ĭ3n4ŭ
-3mĭō
-mĭ3r
-mĭ3s4ă
-mĭ3scr
-mĭ3s2p
-mĭs5tā
-mĭ4s5tă
-mĭs5tĕ
-m3ĭ2tū
-mĭ1ū
-3mĭŭ
-3mĭ́ă
-mĭ́4cĭ
-mĭ́3d
-mĭ4́n
-mĭ́3sp
-mĭ4́t
-1mí
-mí2ba
-mí2be
-mí2bu
-m3íct
-mí1m
-mí3n4u
-mí3s2p
-mí4tiō
-mí4tiu
-mí3tuu
-2ml2
-m3lu
-2m1m2
-mmi6sta
-2m1n2
-m3ne
-m3nē
-m3né
-1mo.
-2mob
-mob3r
-1moc
-modes3
-m2oe
-mo2ī
-1mol
-1m2on
-mo3ni
-monó3
-mon4s3
-mo3n2u
-1moq
-1m2or
-mo3rī
-3m2os
-1mou
-1mov
-1mox
-m2o͡
-1mō
-m2ōn
-mōn4s3
-2mōrd
-m2ōs
-mōs3t
-mṓn4s
-4mṓrd
-1mŏ
-3mŏ.
-mŏ2c
-mŏ2ī
-3mŏn
-3mŏq
-m2ŏr
-mŏ3rĕ
-mŏ3rī
-3mŏs
-mŏs2p
-3mŏu
-3mŏv
-mŏ́b3
-m2ŏ́r
-mŏ́3rĭ
-1mó
-2m1ób
-mó2c
-m2óe
-món4s3
-m2ór
-3m2ós
-m2œ
-2mp
-mpe4ior
-mpe4iór
-mpe4iu
-mpe4iú
-mpe3r4a
-mper4ā
-mpe5rem
-mpe5r4er
-mpere5ra
-mpere5ri
-mpere5rō
-mpe5res
-mper4ē
-mperi4b
-mpe6riens
-mper6iere
-mper6ieris
-mper6ierís
-mper6iēn
-mper6iēre
-mper6iḗn
-mper6iḗre
-mper6iére
-mper4im
-mpe5rimi
-mpe5rimur
-mperi6mus
-mpe5rimúr
-mperi6mús
-mper4ir
-mperi6re.
-mperi6rem.
-mpe5riremi
-mperi6remn
-mperi6remq
-mperi6remue
-mpe5riremur
-mperi6remus
-mpe5riremúr
-mperi6remús
-mperi6remv
-mperi6rene
-mperi6rent.
-mperi6rentn
-mperi6rentq
-mperi6rentue
-mpe5rirentur
-mpe5rirentú
-mperi6rentv
-mperi6req
-mpe5rirer
-mperi6res
-mperi6ret
-mperi6reu
-mperi6rev
-mpe5rirémi
-mperi6rémn
-mperi6rémq
-mperi6rémue
-mpe5rirémur
-mperi6rémus
-mperi6rémv
-mperi6réntn
-mperi6réntq
-mperi6réntue
-mpe5riréntur
-mperi6réntv
-mpe5rirér
-mperi6rés
-mperi6rét
-mpe5riri
-mpe5rirí
-mpe6risse
-mpe6rissé
-mpe6risti
-mpe6ristí
-mper4it
-mperi6te
-mperi6ti
-mperi6tí
-mperi6to.
-mperi6ton
-mperi6toq
-mpe5ritor
-mperi6tot
-mperi6tou
-mperi6tov
-mperi6tón
-mperi6tóq
-mpe5ritór
-mperi6tót
-mperi6tóu
-mperi6tóv
-mperi6tu
-mperi6tú
-mpe5riú
-mpe6rī6mus
-mpe6rī6mús
-mper4īr
-mpe6rī6re.
-mpe6rī6rem
-mpe6rī6rene
-mpe6rī6rent.
-mpe6rī6rentn
-mpe6rī6rentq
-mpe6rī6rentue
-mpe6rī6rentv
-mpe6rī6req
-mpe6rī6ret
-mpe6rī6reu
-mpe6rī6rev
-mpe6rī6rēmus
-mpe6rī6rēmús
-mpe6rī6rēs
-mpe6rī6rēt
-mpe6rī6rḗmus
-mpe6rī6rḗs
-mpe6rī6rḗt
-mpe6rī6rém
-mpe6rī6réntn
-mpe6rī6réntq
-mpe6rī6réntue
-mpe6rī6réntv
-mpe6rī6rét
-mpe4rīs
-mpe6rī6te
-mpe6rī6ti
-mpe6rī6tí
-mpe6rī6tō
-mpe6rī6tu
-mpe6rī6tú
-mpe6rī́6mus
-mper6ī́r
-mpe6rī́6re.
-mpe6rī́6rem
-mpe6rī́6ren
-mpe6rī́6req
-mpe6rī́6ret
-mpe6rī́6reu
-mpe6rī́6rev
-mpe6rī́6rē
-mpe6rī́s
-mper6ī́sn
-mper6ī́sq
-mper6ī́su
-mper6ī́sv
-mpe6rī́6te
-mpe6rī́6ti
-mpe6rī́6tō
-mpe6rī́6tu
-mper6ī́u
-mper6ī́v
-mpe4ríe
-mper4ím
-mpe6rí6mus
-mper4ír
-mpe6rí6re.
-mpe6rí6rem
-mpe6rí6ren
-mpe6rí6req
-mpe6rí6res
-mpe6rí6ret
-mpe6rí6reu
-mpe6rí6rev
-mpe6rísse
-mpe6rísti
-mpe4rít
-mperí6te
-mperí6ti
-mperí6to.
-mpe5rítor
-mper4íu
-mper4ív
-mpe3r4o
-mpe3rō
-mper4ó
-mpe6ste
-mpē4iē
-mpĕ4rĕā
-mpĕ4rĕă
-mpĕ4r5ĕō
-mpĕ6rī6mŭs
-mpĕ6rī6mŭ́s
-mpĕ6rī6rēmŭs
-mpĕ6rī6rēmŭ́s
-mpĕ6rī6rēs
-mpĕ6rī6rēt
-mpĕ6rī6rḗmŭs
-mpĕ6rī6rḗs
-mpĕ6rī6rḗt
-mpĕ6rī6rĕ.
-mpĕ6rī6rĕm
-mpĕ6rī6rĕnĕ
-mpĕ6rī6rĕnt.
-mpĕ6rī6rĕntn
-mpĕ6rī6rĕntq
-mpĕ6rī6rĕntu
-mpĕ6rī6rĕntv
-mpĕ6rī6rĕq
-mpĕ6rī6rĕt
-mpĕ6rī6rĕu
-mpĕ6rī6rĕv
-mpĕ6rī6rĕ́m
-mpĕ6rī6rĕ́ntn
-mpĕ6rī6rĕ́ntq
-mpĕ6rī6rĕ́ntu
-mpĕ6rī6rĕ́ntv
-mpĕ6rī6rĕ́t
-mpĕ4r5īs
-mpĕr6īs.
-mpĕr6īsn
-mpĕr6īsq
-mpĕr6īsu
-mpĕr6īsv
-mpĕ6rī6tĕ
-mpĕ6rī6tĭ
-mpĕ6rī6tō
-mpĕ6rī6tŭ
-mpĕ6rī́6mŭs
-mpĕ6rī́6rē
-mpĕ6rī́6rĕ.
-mpĕ6rī́6rĕm
-mpĕ6rī́6rĕn
-mpĕ6rī́6rĕq
-mpĕ6rī́6rĕt
-mpĕ6rī́6rĕu
-mpĕ6rī́6rĕv
-mpĕ6rī́s
-mpĕr5ī́ss
-mpĕr5ī́st
-mpĕ6rī́6tĕ
-mpĕ6rī́6tĭ
-mpĕ6rī́6tō
-mpĕ6rī́6tŭ
-mpĕ6rĭēn
-mpĕ6rĭērĕ
-mpĕ6r5ĭērŭ
-mpĕ6rĭḗn
-mpĕ6rĭḗrĕ
-mpĕ6r5ĭḗrŭ
-mpĕ6r5ĭĕr
-mpĕ6r5ĭĕ́r
-mpĕ6rĭtn
-mpĕ6rĭtq
-mpĕ6rĭtu
-mpĕ6rĭtv
-mpĕ6r5ĭ́ĕ
-mpĕ6rĭ́t
-mpĕ3rō
-mpĕ3rŏ
-mpĕ6stĕ
-mpĕ́6r5ĕā
-mpĕ́6r5ĕă
-mpĕ́6r5ĕō
-mpĕ́6rĭēn
-m3pé
-mpé4r5ea
-mpé4r5eā
-mpé4r5eo
-mpé4r5eō
-mpére5r
-mpé4ri.
-mpé6riens
-mpé6riēn
-mpé4rit
-m2pn
-mp2ne
-mp2su
-2mq
-m3qu
-m1r
-mro3
-mrod4
-mro5di
-mrodi5u
-mrodi5v
-mrō3d4
-mrō5dī
-mrōdī5u
-mrōdī5v
-2m1s2
-msed4
-mse5di
-msēd4
-msē5di
-msē5dĭ
-mso3
-m2s3q
-m3st
-m2s3u
-2mt
-mte3r4
-mte5re
-mter6it
-mteri5tur
-mteri5u
-mteri5v
-mte5rī
-mterī5u
-mterī5v
-mtĕ3r4
-mtĕ5rĕ
-mtĕrĕ5r
-mtĕ5rī
-mtĕrī5u
-mtĕrī5v
-mto1
-mto2s
-m1ua
-m1uā
-m1uă
-m1uá
-2m1ue
-4m3ue.
-m1uē
-m1uĕ
-m1ué
-m1ui
-m2ui.
-2mui2c3
-m2uim
-m2uin
-m2uiq
-2muir
-m2uit
-m2uiu
-m1uī2
-m2uī.
-muīc3
-m2uīn
-m2uīq
-m2uīu
-m1uĭ
-2m3uír
-1m2ul
-3m2um
-2m3unc
-muol3u
-m1uó
-1m2ur
-1mus
-2m3ust
-1mū
-m3ūnc
-2m1ūs
-mū2su
-1mŭ
-m2ŭl
-3m2ŭm
-m2ŭs
-m2ŭ́
-3mŭ́m
-1mú
-3m2úm
-2m3únc
-m2ús
-2m3úst
-2mv2
-m3ve
-mvi2c3
-mvī2
-mvīc3
-m2x2
-1m2y
-my2s
-1mý
-2mz
-1na
-nab2o
-na2br
-na2cr
-n1ad
-n2ada
-nae2s
-n2aeu
-n2aev
-na3ge
-na3gr
-na2i
-nai4m
-na2ī
-3nal
-na2ni
-n3a2ní
-na2o
-na3q
-n2ar
-nas7cend
-n4aue
-na2x3
-n2á͞
-n2á͡
-1nā
-nā5bun
-3nāc
-nā2i
-nā2ĭ
-n1ā2n
-nās3
-nā́4ni
-nā́4nĭ
-1nă
-n1ăb
-nă2br
-n1ăd
-n2ădă
-n2ăg
-nă3gĕ
-nă3gr
-nă2ī
-nă2nĭ
-n2ăp
-nă3q
-năs2p
-2năth
-nắ2n
-1ná
-n2áb
-ná2i
-3nál
-ná2ni
-n2ár
-ná2x
-1næ
-næ2a
-næ2ă
-næ2á
-næ2i
-n2æu
-næ2ua
-næ2uā
-næ2uă
-næ2uá
-næ2uæ
-næ2uǽ
-næ4uen
-næ4ueq
-næ4ueu
-næ2uē
-næ4uĕn
-næ4uĕq
-næ4uĕu
-næ2ué
-næ2ui
-næ2uī
-næ2uí
-næ2uo
-næ2uō
-næ2uó
-næ4uum
-næ4uus
-næ4uŭm
-næ4uŭs
-næ4uúm
-næ4uús
-næ2ŭ
-n2æv
-næ2va
-næ2vā
-næ2vă
-næ2vá
-næ2væ
-næ2vǽ
-næ4ven
-næ4veq
-næ4vev
-næ2vē
-næ4vĕn
-næ4vĕq
-næ4vĕv
-næ2vé
-næ2vi
-næ2vī
-næ2ví
-næ2vo
-næ2vō
-næ2vó
-næ4vum
-næ4vus
-næ4vŭm
-næ4vŭs
-næ4vúm
-næ4vús
-1nǣ
-nǣ2a
-nǣ2ă
-nǣ2ua
-nǣ2uā
-nǣ2uă
-nǣ2uá
-nǣ2uǣ
-nǣ4uen
-nǣ4ueq
-nǣ4ueu
-nǣ2uē
-nǣ4uĕn
-nǣ4uĕq
-nǣ4uĕu
-nǣ2uī
-nǣ2uō
-nǣ4uum
-nǣ4uus
-nǣ4uŭm
-nǣ4uŭs
-nǣ4uúm
-nǣ4uús
-nǣ2ŭ
-nǣ2va
-nǣ2vā
-nǣ2vă
-nǣ2vá
-nǣ2vǣ
-nǣ4ven
-nǣ4veq
-nǣ4vev
-nǣ2vē
-nǣ4vĕn
-nǣ4vĕq
-nǣ4vĕv
-nǣ2vī
-nǣ2vō
-nǣ4vum
-nǣ4vus
-nǣ4vŭm
-nǣ4vŭs
-nǣ4vúm
-nǣ4vús
-nǣ́4ua
-nǣ́4uā
-nǣ́4uă
-nǣ́4uǣ
-nǣ́4uen
-nǣ́4ueq
-nǣ́4ueu
-nǣ́4uē
-nǣ́4uĕn
-nǣ́4uĕq
-nǣ́4uĕu
-nǣ́4uī
-nǣ́4uō
-nǣ́4uum
-nǣ́4uus
-nǣ́4uŭm
-nǣ́4uŭs
-nǣ́4va
-nǣ́4vā
-nǣ́4vă
-nǣ́4vǣ
-nǣ́4ven
-nǣ́4veq
-nǣ́4vev
-nǣ́4vē
-nǣ́4vĕn
-nǣ́4vĕq
-nǣ́4vĕv
-nǣ́4vī
-nǣ́4vō
-nǣ́4vum
-nǣ́4vus
-nǣ́4vŭm
-nǣ́4vŭs
-1nǽ
-nǽ2ua
-nǽ2uā
-nǽ2uă
-nǽ2uæ
-nǽ4uen
-nǽ4ueq
-nǽ4ueu
-nǽ2uē
-nǽ4uĕn
-nǽ4uĕq
-nǽ4uĕu
-nǽ2ui
-nǽ2uī
-nǽ2uo
-nǽ2uō
-nǽ4uum
-nǽ4uus
-nǽ4uŭm
-nǽ4uŭs
-nǽ2va
-nǽ2vā
-nǽ2vă
-nǽ2væ
-nǽ4ven
-nǽ4veq
-nǽ4vev
-nǽ2vē
-nǽ4vĕn
-nǽ4vĕq
-nǽ4vĕv
-nǽ2vi
-nǽ2vī
-nǽ2vo
-nǽ2vō
-nǽ4vum
-nǽ4vus
-nǽ4vŭm
-nǽ4vŭs
-2nc
-n3cr
-n2c3ue
-n2c1ū
-2nd
-n2d3ág
-nd2e
-nde4sc
-nde3un
-nde3ún
-ndē4sc
-ndĕ3ŭn
-ndi4ger
-n4d3igi
-n4d3igí
-ndi4g3n
-ndi3m
-n2di2p
-n4d3ĭgĭ
-nd2ĭn
-n2dĭp
-ndĭ4sp
-n4d5ĭ́gĭ
-n4d3í4gi
-n3do
-ndo3l
-n4d5o4le.
-ndo4lem
-n6d5o6lene
-n4d5o4leq
-ndo6les.
-ndo6lesn
-ndo6lesq
-ndo6lesu
-ndo6lesv
-n4d5o4leu
-n4d5o4lev
-ndo6lēs.
-ndo6lēsn
-ndo6lēsq
-ndo6lēsu
-ndo6lēsv
-ndo6lḗsn
-ndo6lḗsq
-ndo6lḗsu
-ndo6lḗsv
-ndo4lém
-ndo6lésn
-ndo6lésq
-ndo6lésu
-ndo6lésv
-n4d3o4li
-n4d3o4lī
-n4d3o4lí
-nd4or
-ndŏ6lēs.
-ndŏ6lēsn
-ndŏ6lēsq
-ndŏ6lēsu
-ndŏ6lēsv
-ndŏ6lḗsn
-ndŏ6lḗsq
-ndŏ6lḗsu
-ndŏ6lḗsv
-n4d5ŏ4lĕ.
-n6d5ŏ6lĕnĕ
-n4d5ŏ4lĕq
-n4d5ŏ4lĕu
-n4d5ŏ4lĕv
-n4d3ŏ4lī
-n4d3ŏ4lĭ
-n4d5ŏ́4lĕ
-ndó2l
-n4d3óle
-ndó3lu
-nd2r
-n2d3ua
-n2d3uā
-n2d3uá
-nd3ue.
-nd3ueq
-nd3ueu
-nd3uev
-n2duē
-n2dué
-nd3uit
-n2d3uo
-n2d3uō
-n2d3uó
-n2d3uú
-n2d3ŭā
-n2d3ŭă
-n2dŭē
-nd3ŭĕ.
-nd3ŭĕq
-nd3ŭĕu
-nd3ŭĕv
-nd3ŭĭt
-n2d3ŭō
-n2d3ŭŏ
-n2d3ŭŭ
-nd3ŭ́ĭ
-nd3úen
-nd3úeq
-nd3úeu
-nd3úev
-n2d3úi
-1ne
-3ne.
-ne2a
-ne3bu
-ne2cl
-ne2co
-ne4c3u4t
-ned2
-ned4i
-ne2e
-nee3ri
-nee3rí
-n1ef
-ne2gl
-3nei
-ne2ia
-ne2iá
-ne2ie
-ne2ié
-ne2ii
-ne2ií
-ne2io
-ne2ió
-ne2it
-ne2iu
-ne2iú
-3neí
-ne2lu
-ne2na
-n4ene
-ne2nu
-3neo
-3neó
-3nep
-nepo5t
-ne1r
-nera5b
-nerab6u
-ner2æ3
-ner2ǣ
-ne3rē
-ne3rī
-ne4ss
-nes5tā
-nes5te
-nes5tr
-n4et.
-n4etn
-n4etq
-2nets
-n4eue
-2ne2un
-ne2ur
-neu5re
-neu4ter
-neu4tér
-ne3u4tr
-2neún
-n4eve
-n1ex
-n2ex.
-nex2a
-ne3x2i
-nexi3u
-nexi3v
-nex2ī
-n2exn
-ne2xo
-ne2xō
-nex2ó
-n2exq
-n2ex2u
-nexu3r
-nex2ū
-nexū3r
-nex2ú
-n2exv
-1nē
-nē2br
-n1ē2d
-nē3du
-nē2i
-n1ēl
-nē2lă
-nē2lĕ
-nē2lu
-nē2me
-nē2mĕ
-nē2mo
-nē2mŏ
-nē2nā
-nē2nu
-nēs3t
-nē2uī
-nē2vī
-nḗ4br
-nḗ2d
-1nĕ
-3nĕa
-nĕ2ă
-3nĕæ
-3nĕǣ
-nĕ2cŏ
-nĕd2
-3nĕē
-3nĕ2ĕ
-n1ĕf
-nĕ2gl
-3nĕī
-nĕ2ĭ
-3nĕp
-nĕ3r2a
-nĕ3r2æ
-nĕ3r2ǣ
-nĕ3rē
-nĕ3r4ĕ
-nĕ3rī
-nĕ3rŏ
-n3ĕrs
-n3ĕrŭn
-nĕs3t
-nĕs5tĕ
-n4ĕt.
-n4ĕtn
-n4ĕtq
-4nĕts
-2n3ĕŭn
-n1ĕx
-n2ĕx.
-nĕx2a
-nĕx2ă
-nĕx4ĕ́
-nĕx2ī
-nĕx2ĭ
-n2ĕxn
-nĕ2xō
-n2ĕxq
-n2ĕxu
-nĕx2ū
-nĕxū3r
-nĕx2ŭ
-n2ĕxv
-3nĕ́p
-nĕ́3rĕ
-nĕ́3s4c
-1né
-né2i
-3n1ép
-né3q
-2néts
-néu4ter
-né3u4tr
-néx2ī
-néx4ui
-2nf
-2ng
-n3gae.
-n3gaen
-n3gaeq
-n4gani
-n4ganí
-n5ga͞e.
-n5ga͞en
-n5ga͞eq
-n5gá͞en
-n5gá͞eq
-n5ga͡e.
-n5ga͡en
-n5ga͡eq
-n5gá͡en
-n5gá͡eq
-n4gă4nĭ
-n4g5ắnĭ
-n2gáe
-n3gáen
-n3gáeq
-ng3áeu
-ng3áev
-n4g3áni
-n3gæ.
-n3gæn
-n3gæq
-n3gǣ.
-n3gǣn
-n3gǣq
-ngǣ́2
-n3gǣ́n
-n3gǣ́q
-n2g1ǽ2
-n3gǽn
-n3gǽq
-ngu6ste
-ngŭ6stĕ
-n1h
-nhe3
-1ni
-ni2a
-n2ia.
-n2ian
-n2iaq
-nia6ste
-n2iau
-n2iav
-2niă
-2n3i2ba
-2n3i2bá
-ni2be
-ni2bé
-2n3i2bi
-2n3i2bí
-2n3i2bo
-2n3i2bó
-4n3i4bun
-4n3i4bún
-nic4e
-4ni4cer
-n2i3cē
-4ni4cér
-ni4cim
-4ni4cím
-4ni4cít
-n2i3cu
-n2i3cú
-3nid
-2niec
-2niex
-2niēc
-2niēx
-2niéc
-2niéx
-n2i3g2
-nig4n
-n2il
-ni3mam
-ni3man
-ni3mar
-ni3mas
-ni3mā
-ni3má
-ni3me
-ni3mē
-ni3mé
-ni3mi.
-ni3mie
-ni3mii
-ni3min
-ni3miq
-ni3mis
-ni3miu
-ni3miv
-ni3mī.
-ni3mīn
-ni3mīq
-ni3mīs
-ni3mīu
-ni3mīv
-ni3mín
-ni3míq
-ni3mís
-ni3míu
-ni3mív
-2nimm
-ni3mo
-ni3mō
-ni3mó
-ni3mu
-ni3mú
-2nins
-n2i2o
-n2ió
-n2ip
-n3i4qua
-n3i4quá
-n3i4quæ
-n3i4quǽ
-n5i4quen
-n5i4queq
-n5i4queu
-n5i4quev
-n3i4qué
-n3i4qui
-n3i4quí
-n3i4quo
-n3i4quó
-n3i4quu
-n3i4quú
-n2is
-ni4sc
-nis5ci
-nise4r3
-nisé2
-nis2i
-3ni3sp
-n2iue
-n2iué
-2niug
-n2ium
-2niux
-2niū
-2niŭ
-2niúd
-2niúg
-2niúr
-2niúx
-1nī
-2n1ī2b
-2nīns
-2n3ī́2b
-4nī́ns
-1nĭ
-3nĭa
-nĭă6stĕ
-3nĭæ
-3nĭǣ
-n3ĭ2bĭ
-nĭ3cē
-4n3ĭ4cĕr
-nĭ4cĭm
-nĭ4cĭŏ
-nĭ4cĭs
-nĭ4cĭt
-nĭ3cŭ
-3nĭd
-3nĭī
-nĭ3mĭĕ
-2nĭmŏ
-nĭ2ŏ
-nĭ3s2p
-nĭ3tĕr
-nĭ3tĕ́
-nĭ3tĭs
-nĭ5tĭ́s
-nĭ3tŏ
-n3ĭ4tūs
-4n5ĭ́4cĕr
-nĭ́4cĭm
-nĭ́4cĭŏ
-nĭ́4cĭt
-n4ĭ́s
-nĭ́3sp
-nĭ́4s5t
-1ní
-2n1í2b
-4ní4cer
-ní4cian
-ní4ciar
-ní4ciat
-ní4cim
-ní5cis
-ní4cit
-ní4ciun
-3níd
-n2í3g2
-níg4n
-n2íl
-ní1m
-2nímm
-2níns
-4n3í4qua
-4n3í4quæ
-n5í4quen
-n5í4queq
-n5í4queu
-n5í4quev
-4n3í4qui
-4n3í4quo
-4n3í4quu
-3ní3sp
-ní3tur
-2nj
-2n1n2
-n3ne
-n3nu
-nn4ue
-1no
-no2a
-no2á
-no2æ3
-no2ǣ
-noǣ́3
-no2ǽ3
-no2ba
-nob2ī
-nobī3u
-nobī3v
-nob2í
-no2bó
-3noc
-noc5te
-no2e
-no2ē
-no2i
-no2ī
-no2í
-no3l4u
-nom2
-n2on
-no3ni
-3nop
-n2ope
-no2pi
-no2pu
-no2pú
-n2or
-no3rī
-n2os
-nos3c
-no4sn
-no4sq
-nos3t
-nos5te
-no4sue
-no4sv
-no2xu
-1n2ō
-nōs3t
-1nŏ
-nŏ2a
-nŏ2á
-nŏ2æ3
-nŏ2ǣ
-nŏǣ́3
-nŏ2ǽ3
-nŏb2ă
-nŏb2ī
-nŏbī3u
-nŏbī3v
-nŏc5tĕ
-nŏ2ē
-nŏ2ī
-nŏ2ĭ
-n1ŏp
-nŏ4pī.
-nŏ4pĭ
-nŏ2pŭ
-nŏ3rī
-nŏ4sn
-nŏ4sq
-nŏ4su
-nŏ4sv
-nŏ3t
-nŏ2u3ĕ
-nŏ2v3ĕ
-nŏ́4p
-1nó
-nób2i
-nó3l2u
-nóp2
-n2ór
-n2ós
-nó2xu
-1nœ
-npo3
-npó1
-2nq
-n3qu
-n1r2
-n3rĕ
-nr4ĕ́3
-2ns
-n3sa.
-ns3a2c
-n3s4ae
-n3s4am
-ns4an
-n3s4aq
-n3sar
-n3sas
-n3s4av
-n3să.
-ns3ăc
-n3săm
-n3săn
-n3săq
-n3său
-n3săv
-nsắ2
-ns3ắb
-ns3ắl
-n2sál
-n1sc
-ns2ce
-ns2cē
-ns2cĕ
-ns2cé
-ns2ci
-ns2cĭ
-ns2cr
-n2scu
-n2scŭ
-n2scú
-n2se2g
-n2seú
-n2s3ég
-nsér4ui
-nsér4uī
-n2s3i2c
-n2sie
-n2siē
-n2sié
-ns3iér
-nsi2g
-ns3ige
-n2s3ii
-n2sií
-ns3iís
-nsi3l4u
-nsi4mur
-nsi4múr
-nsi2r
-ns5i4ta͞
-n4s3i4tǣ
-nsi4ti
-n4s3i4tī
-ns3i4tō
-n4s3i4tū
-n2siu
-nsi4ui
-nsi4vi
-nsī2r
-nsī́4r
-nsī́4to
-nsī́4tŏ
-nsī́4ui
-nsī́4uĭ
-nsī́4vi
-nsī́4vĭ
-n2s3ĭ2c
-n2sĭē
-ns3ĭēn
-ns3ĭēr
-n2s3ĭĕ
-ns3ĭgĕ
-n4s3ĭ4ta
-ns5ĭ4tă.
-ns5ĭ4tăm
-ns3ĭ4tá
-n4s3ĭ4tæ
-n4s3ĭ4tǣ
-ns3ĭ4tǽ
-ns5ĭ4tĕ.
-n4s3ĭ4tī
-ns3ĭ4tĭ
-ns3ĭ4tō
-n4s3ĭ4tū
-n4s3ĭ4tŭ
-n4s3ĭ́4c
-nsĭ́4g
-nsĭ́4t
-n4s5ĭ́tă
-n4s5ĭ́tĕ
-n4s5ĭ́tĭ
-n4s5ĭ́tŭ
-n2s3í2c
-ns3íer
-nsí2g
-ns3íge
-n2s3íi
-nsíl4u
-nsí4mi
-nsí2r
-ns5ítuī
-ns5ítuu
-nsí4uer
-nsí4uim
-nsí4uit
-nsí4ver
-nsí4vim
-nsí4vit
-n1sp
-ns2pa
-ns2pă
-ns2pá
-n3spec
-n3spĕc
-n5spĕ́c
-n3spéc
-n3s2pi
-n3s2pĭ
-n3s2pí
-n2sq
-n3s2ta
-n3s2tā
-n3s2tă
-n3s2tá
-n3s2te
-n3s2tē
-n3s2tĕ
-n3s2té
-n3sti5t4
-n3stĭt
-nstí3t4
-n3s2to
-n3s2tō
-ns2tó
-nstren6u
-nstrē5n4
-nstrḗ5n6
-nstrén6u
-ns2tu
-n3s2tŭ
-n4s3ue.
-n3s2uī
-2nt
-n3ta
-nta3g
-n3tā
-n3tæ
-n3te
-n4t3eā
-nte4ia
-nte4iá
-nte3ī4
-nteī́4
-nte5ram.
-nte5ramne
-nte5ramq
-nte5ramu
-nte5ramú
-nte5ramv
-nte5rant
-nteri4
-nter5ib
-nter5ic
-nte4r5ie
-nter5iē
-nter5ié
-nter5ii
-nter5iī
-nter5ií
-nte4rim
-nter5im.
-nte5ri5min
-nte5ri5mur
-nte5ri5múr
-nter5ita
-nter5itā
-nter5itá
-nte5ri5tor.
-nte5ri5torn
-nte5ri5torq
-nte5ri5torue
-nte5ri5torv
-nte5ri5tórn
-nte5ri5tórq
-nte5ri5tórue
-nte5ri5tórv
-nte4r3ī4
-nterī́4
-nte4r5í4c
-nte4ríe
-nte6r5í6mu
-nte6r5í6ti
-nte4rí4u
-nte4rí4v
-nte4ron
-nte5rō.
-nte5rṓq
-nte5rṓu
-nte5rṓv
-nte4rós
-nte5runt
-nt4es
-nte5stas
-nte5stās
-nte5stātí
-nte5stā́s
-nte5stás
-nte5sto.
-nte5ston
-nte5stoq
-nte5stou
-nte5stov
-nte5s4tō
-nte5stón
-nte5stóq
-nte5stóu
-nte5stóv
-ntē4ia
-ntē4iā
-ntē4iá
-ntē4iæ
-ntē4iǣ
-ntē4iǽ
-n2t3ĕā
-ntĕ3ă
-ntĕ3ī4
-ntĕī́4
-ntĕ4r3ī4
-ntĕrī́4
-ntĕ4r5ĭ4c
-ntĕ4rĭē
-ntĕ4r5ĭī
-ntĕ6r5ĭm.
-ntĕ6r5ĭ6tā
-ntĕ6r5ĭ́6c
-ntĕ6rĭ́ĕ
-ntĕ4rōn
-ntĕ4rōs
-ntĕ5rŭnt
-ntĕ5rŭ́
-nt4ĕs
-ntĕ5stās
-ntĕ5stā́s
-ntĕ5stō
-ntĕ́4rī
-ntĕ́6r5ĭ6c
-ntĕ́6r5ĭī
-ntĕ́6r5ĭt.
-ntĕ́6r5ĭ6tā
-ntĕ́5stās
-ntĕ́5stō
-nté4r5es
-nté4ri.
-nté4r5i4c
-nté4rie
-nté4riē
-nté4r5ii
-nté4r5iī
-nté6r5it.
-nté6r5ita
-nté6r5i6tā
-nté5stas
-nté5stās
-nté5sto.
-nté5s4tō
-n3th
-n3ti
-ntis4t
-nti5stá
-nti5sti
-nti5stí
-n3tī
-n3tĭ
-ntĭs4tā
-ntĭs4tă
-ntĭ5s4tĭ
-ntĭ́5s6tā
-ntĭ́5s6tă
-ntí5s4ta
-ntí5s4tā
-ntí5sti
-nto2s3
-n3tō
-ntŏ́2
-n4t3ŏ́p
-n2t3óp
-ntó2s3
-n3tr
-ntra3e
-ntrān4
-ntrá3e
-ntro3i4
-ntro3í4
-ntró3i
-n3tum
-n3tus3
-ntús3
-n1ua
-n2uam
-n2uan
-n2uar
-n2uat
-1n1uā
-n2uām
-n2uār
-n2uāt
-n1uă
-n2uám
-n2uán
-n2uár
-n2uát
-1nuæ
-1nuǣ
-1nub2
-nu3bi
-n3ud
-n4udæ
-n4udǽ
-n4udi
-n4udí
-n4u3du
-n4udú
-n1ue
-2n3ue.
-n2ueb
-3n4uel
-3n2uem
-3nueq
-3n2ues
-n2uet
-3nueu
-3nuev
-n1uē
-n2uēb
-n2uēm
-n2uēn
-n2uēr
-n2uēs
-n2uēt
-2n3uĕ
-n2uéb
-n2uém
-n2ués
-n2uét
-1nui
-n2uim
-n2uis
-n1uī
-n1uĭ
-1nuí
-n2uím
-n2uís
-1n1ul
-n2u3la
-n2u3lā
-n2u3lá
-n2u3le
-nule4i
-n2u3lé
-n2u3li
-n2u3lī
-n2u3lí
-3num
-n4um.
-n4u4mn
-n4u4mq
-n4u4mu
-n4u4mv
-1n1u2n
-1nuō
-n1uó
-n3u2r
-1nu2s
-n3usi
-nu4sn
-nu4sq
-n3uss
-n3ust
-nu4su
-nu4sv
-n2u3ta
-n2u3tá
-n2u3tæ
-n2u3tǽ
-n2u3te
-nu3ti.
-nu3tin
-nu3tiq
-nu3tis
-nu3tiu
-nu3tiv
-nu3tín
-nu3tíq
-nu3tís
-nu3tíu
-nu3tív
-n2u3to
-n2u3tó
-nu3tr
-n2u3tu
-n2u3tú
-1nuu
-n2uun
-n2uún
-n1u2x
-1nū
-n1ūd
-nū2n
-nū3nĕ
-n1ū2r
-n1ū2s
-n2ū3ta
-n2ū3tā
-n2ū3tă
-n2ū3tá
-n2ū3tæ
-n2ū3tǣ
-n2ū3tǽ
-n2ū3te
-n2ū3tĕ
-n2ū3tī
-n2ū3tō
-n2ū3tu
-n2ū3tū
-n2ū3tŭ
-n2ū3tú
-nū́2m
-nū́2r
-nū4́s
-1nŭ
-n1ŭl
-n2ŭlā
-n2ŭlă
-n2ŭlī
-n4ŭm.
-nŭ3mĭ
-n4ŭmn
-n4ŭmq
-n4ŭmu
-n4ŭmv
-n1ŭn
-n1ŭr
-nŭ2s
-nŭ́3mĕ
-1nú
-núb2
-n2úla
-n2úle
-nú2mi
-n4úmn
-n4úmq
-n4úmu
-n4úmv
-2n3úng
-n1ú2r
-2nv
-n3ve
-2nx2
-n3xi
-n2x3u
-1ny
-2nyma
-2nymā
-2nymæ
-2nymǣ
-1ný
-2o1a2
-o2a3b
-oad3
-oade4
-oadé2
-oadi4
-oadí2
-oadṓ4
-oadó2
-oadú2
-oa3ne
-oa3né
-oa3ru
-o2as
-oas3t
-oa3t
-oau6ste
-o1ā
-o2ān
-o2ār
-2o1á
-oá2d3
-oáde2
-o2án
-2o1æ2
-o2æ3q
-o1ǣ2
-o2ǣ3q
-oǣ́2
-oǣ́3q
-2o1ǽ2
-o2ǽ3q
-1ob1
-ob2ab
-o3bam
-o3ban
-o3b2a3q
-o3bar
-o3b2as
-obe4ra
-obe4rā
-obe4rá
-obe4ro
-obe4rō
-obe4ró
-ob2ēr
-obé2q
-obi2b
-ob3i4c
-obi2m
-ob2iq
-ob3it.
-ob3itn
-ob3itq
-ob3itv
-o2bi2u
-obi2v
-obī2m
-ob2īn
-ob2īq
-ob2īt
-obí2b
-obí2c
-obí2m
-ob2íq
-ob3íss
-ob3íst
-o2bl
-o2bo
-ob4ole.
-ob6olene
-ob4oleq
-ob4oleu
-ob4olev
-o2br
-ob3rá
-obri3
-ob5rue
-obs2
-ob3st
-ob5ste
-obur3
-o3ca
-o3cá
-1occ
-2o3ce
-o3cē
-2o3cé
-2o3ci
-o3cī
-2o3cí
-oco2i
-ocoi3q
-oco2í
-oco5me
-oco3m4ē
-ocomi5te
-ocomi5té
-oc4ten
-oc3ue.
-o3cú
-o3dam.
-o3dami
-o3damq
-o3damu
-o3damú
-o3damv
-o3dan
-o3dar
-o3das
-o3dat
-o2d3ác
-2ode
-o4d5eam.
-o4d5eamn
-o4d5eamq
-o4d5eamu
-o4d5eamú
-o4d5eamv
-o4d3ean
-o4d3eas
-o4d3eat
-o4d5eámn
-o4d5eámq
-o4d5eámu
-o4d5eámv
-o4d3eán
-o4d3eás
-o4d3eát
-ode4cé
-ode2g
-ode2i
-od3eo.
-od3eon
-od3eoq
-od3eou
-od3eov
-o2d3eó
-ode4st
-ode4u5t
-o2deú
-odē2i
-odé2g
-od2i
-o4d3ibi
-o4d3ibí
-o2d3i2g
-od4iue.
-o5dium
-o5dius
-od4ive.
-2o3dī
-2odí
-o2dí2b
-odí5ci
-o2d3í2g
-od6íue.
-od6íve.
-2o3do
-od4or
-2odō
-2odó
-2odu
-od3ue
-od3ui
-od3uī
-od3uí
-2odú
-2oea
-o3eat
-2oeā
-o3eām
-o3eāt
-2oe2ă
-2oeá
-o3eát
-oe3b
-oecu3
-oe3d2
-oe2e
-o1e2g
-2oe2i
-2oeī
-oe2ĭ
-2oeí
-o2el
-o3e2le
-o4e3leu
-o4e3lev
-o1e2m
-o5e4mēti
-o5e4mētí
-o5e4mētu
-o5e4mētú
-o3emu
-o3emú
-oepe3
-o1er
-oe3ro
-oete5r
-o1e2u
-o4eue
-oe2ŭ
-o1eú
-o1e2x3
-2o1ē2
-o2ēn3
-o2ēs
-o2ēu
-o2ēv
-oḗ2g
-oḗ2m
-2o1é
-oé2g
-oé2m
-o2éq
-o2és
-1off
-ofo1
-og2
-o3ga
-o3gæ
-ogæ3v
-o3gǣ
-o1h
-oho4s
-ohó2
-2o1i2
-o2iad2
-o2iā
-o2iǣ
-o3ic
-o2id
-o4iene
-o2iī
-o2io
-oio2s
-o2iō
-o2ió
-o1ī
-oī2b
-oī2m
-oī2r
-oī2t
-oī2u
-oī2v
-oī́2b
-oī́2m
-oī́2r
-oī́2t
-oī́2u
-oī́2v
-2o1í
-oí2b
-oí2c
-oí2m
-oí2r
-o3íss
-o3íst
-oí2ta
-oí2te
-oí2to
-oí4tu
-oí2ui
-oí2vi
-o3la
-o3lā
-o3lá
-o3læ
-o3lǣ
-o3lǽ
-ole3ii
-ole3ií
-ole3io
-ole3ió
-ole5ium
-ole3iú
-olé3ia
-olé3ii
-olé3io
-olé3iu
-2o3li.
-o3lia
-o3lii
-o3lií
-2o3lin
-o3lio
-o3liō
-o3lió
-2o3liq
-2o3lis
-2o3liu
-2o3liv
-2o3lī
-o3lía
-2olín
-2olíq
-2olís
-2olíu
-2olív
-2oll
-2o3lo
-2o3lō
-2o3ló
-o2l3ua
-o2luā
-o2l3uá
-o2l3uæ
-o2luǣ
-o2l3uǽ
-ol3ue.
-ol3ueb
-ol3uem
-ol3uen
-ol3ueq
-ol5uerē
-ol5ueré
-ol3ues
-ol3uet
-ol3ueu
-o2l3uē
-o2lué
-ol3uéb
-ol3uém
-ol3uén
-ol5uéris
-ol3ués
-ol3uét
-ol5uimi
-ol5uimur
-ol5uimúr
-ol5uis.
-ol5uisn
-ol5uisq
-ol5uisu
-ol3uit
-ol3uīs
-ol5uī́s
-ol3uím
-ol5uísn
-ol5uísq
-ol5uísu
-ol5uíte
-2o3l4um
-o2luo
-o2luō
-o2l3uó
-2o3l4u2s3
-o2l3uu
-o2l3uú
-2o3lúm
-2o3lús
-o1m2a
-om2á
-omb2
-ombu3r
-ombú3r
-ome4da
-ome4dá
-om2eq
-ome4sa
-ome4sá
-ome4so
-om1ē
-o3mēt
-o3mḗt
-o4mé4sa
-om2i2a
-om2ib
-om2ic
-om2im
-om2in4
-omini5c
-om2iq
-omi2t
-o5mit.
-om6itas.
-om6itasn
-om6itasq
-om6itasu
-om6itasv
-om6itásn
-om6itásq
-om6itásu
-om6itásv
-om4ite.
-om6itene
-om4iteq
-om4iteu
-om4itev
-om6itis.
-om6itisn
-om6itisq
-om6itisu
-om6itisv
-om6itísn
-om6itísq
-om6itísu
-om6itísv
-o5mitn
-om4ito
-o5mi5tot
-om4itó
-o5mi5tót
-o5mitq
-o5m4itue
-o5m4i5tur
-o5m4i5túr
-o5mitv
-om2iu
-om2iv
-om2ī
-om2íc
-om2ím
-om2íq
-om4íte
-o4mí4ti
-om4ítn
-om4ítq
-om4ítu
-om4ítv
-om2íu
-om2ív
-o1mo
-omo4nu
-o1mœ
-ompere5r
-ompe6ri.
-omperi6n
-ompe6ri6q
-ompe6ris.
-ompe6risn
-ompe6risq
-ompe6risu
-ompe6risv
-omperi6u
-omperi6v
-ompe6rī.
-omperī6n
-ompe6rī6q
-ompe6rī6u
-ompe6rī6v
-ompe6rī́6n
-ompe6rī́6q
-ompe6rī́6u
-ompe6rī́6v
-ompe6rí6n
-ompe6rí6q
-ompe6rísn
-ompe6rísq
-ompe6rísu
-ompe6rísv
-ompe6rí6u
-ompe6rí6v
-ompē4ia
-ompē6iā.
-ompē6iāq
-ompē6iās
-ompē6iā́q
-ompē6iā́s
-ompē4iá
-ompē4iæ
-ompē4iǣ
-ompē4iǽ
-ompē4iī
-ompē4iō
-ompé6r5ii
-ompé6r5iī
-ompé6r5is
-o1m2u
-om3ue
-o3m2ū2
-om2ú
-o3n2a
-o3n2ā
-o3n2á
-3onc
-on3d
-on2e
-2one.
-one4u5t
-2o3n2é
-2oni
-o5nia.
-o5nian
-o5niaq
-o5niau
-o5niav
-o4ni4ci
-on4ier
-on4iér
-on2ii
-on2ií
-on2im
-on2in
-on2iq
-on2it
-o2niu
-o3niue
-o3niué
-o3n4iui
-o3n4iuí
-o3nium
-o5niúm
-on2iv
-on2ī
-2oní
-o4ní4ci
-on2íe
-on2íq
-on2ít
-on2íu
-on2ív
-on2o
-ono3pi
-ono3s4t
-on2ó
-onós4t
-ons2c
-on5sci
-on3s2i
-onsi5u
-onsi5v
-on3s4p
-ons2u
-on3t2
-onte4i
-ontes5
-ontē4i
-2onu
-o4nue.
-on2uī
-on2ul
-2on2ú
-2o1o2
-o2o3n
-oo3ru
-o2os
-oo3u
-oo3v
-o1ō
-o2ōn
-o2ōs
-2oó
-o1ór
-oó2re
-oó2ri
-1ope1
-o2pem
-oper4a
-oper4æ
-oper4ǣ
-oper4ǽ
-ope3r4e
-oper4ē
-oper4i
-ope3r4ī
-oper4í
-operí5tur
-oper4o
-oper4ó
-oper4u
-o2pém
-o2pér
-opér4u
-o3pic
-1opī
-o3pīs
-opo4s3
-1opp
-op2su
-2oq
-o3qu
-2or.
-o1ra
-or3ang
-o3r2ā
-o3ræ
-o1rǣ
-o3rǽ
-2orc
-o1r2e
-2o3re.
-2o3rea
-2o3reá
-2o3reæ
-2o3reǽ
-2o3ree
-2o3reé
-2o3rei
-2o3reí
-4o3rene
-2o3reo
-2o3reó
-2o3req
-2o3reu
-2o3reú
-2o3rev
-o3rē
-2o3réa
-2o3rée
-o1r2i
-o3riæ
-o3riǽ
-2o3rib
-oric4
-ori5ce
-o3rii
-o3rií
-ori3ni
-4oris.
-4orisn
-4orisq
-4orisu
-4orisv
-o3ría
-o3ríc
-o2rír
-4orísn
-4orísq
-4orísu
-4orísv
-orí5tur
-4orne.
-o1r2o
-o3ron.
-o3ronn
-o3ronq
-o3ronu
-o3ronv
-o3rorú
-2o3ros
-oro4s3t
-2o1rō
-o3rónn
-o3rónq
-o3rónu
-o3rónv
-2o3rós
-2orq
-ort2
-or3tu
-2o1ru
-o2rue
-or3ue.
-o3rum
-o3rus
-2o3rú
-2orv
-o1ry
-2os.
-os2a
-os2cǽ
-os4ch
-os3cit
-o4sco
-o4scó
-os2cr
-o4scu
-o4scú
-os2e
-ose2i
-os2i
-osíl2
-o1s2m
-2osn
-o1sp
-o2spa
-o2spá
-os2pe
-ospe5ri
-ospe5r4ī
-osper4í
-os2pé
-os2pl
-2o2sq
-2ost
-os4t3ea
-os4t3eā
-os4t3eá
-ost5ill
-osti5t4
-os4t5íll
-ostí3t4
-os3to
-os4to.
-os4ton
-os4toq
-os4tou
-os4tov
-os5tri
-os5trī
-os3trí
-os3tru
-os3trú
-os4tué
-2osue
-o4s3ue.
-os2ué
-os2uī
-2osv
-o3ta
-o4t3ann
-o4t3ánn
-o4t3enn
-o5ter.
-o4t3e4ra
-o4t3e4rā
-o4t3e4rá
-o5te5re
-ote5rii
-ote5rií
-o4t5erim
-ote5rin
-o4t5erit
-ote5riu
-oteri5ue
-ote5ri5v
-ote5rī
-oterī5u
-oterī5v
-o4t5e4rít
-o5tern
-o5terq
-o5terue
-o4t5erun
-o4t3e4rú
-o5terv
-o4t5este
-o4t5esti
-o4t5estí
-o4t5esto
-o4t5estó
-o4t3énn
-o4t5é4rim
-o4t5é4rit
-o4t3ést
-o2tl
-o3t2u
-2o1u2
-ou3enn
-ouē5nī
-ou3énn
-o2um
-ou4st
-o1ū2
-oū́2
-2oú2
-o1út
-2ov
-ov3enn
-ovē5nī
-ov3énn
-2ox2
-ox4eu
-o3xi
-oxu3
-o2x3ue
-o͞e2i
-o͡e2i
-ō2a
-ōab2
-ōa2m
-ōăb2
-ōb2
-ōba3q
-ōbæ3
-ōbe3
-ōbī3u
-ōbī3v
-ōbo3
-ōbŏ3r
-ōbŏ́3
-ō3bu
-ō3bŭ
-2ōc
-ō2ch
-ō2c3ue
-ō2d1a2
-ō3dam.
-ō3damq
-ō3damu
-ō3damv
-ō3d2an
-ō3d2ar
-ō3dat
-ō2dāc
-ō4d3ā́c
-ō2d1ă
-ō3dăm.
-ō3dămq
-ō3dămu
-ō3dămv
-ō3d2ăn
-ō3dăr
-ō3dăt
-ō5dắmn
-ō5dắmq
-ō5dắmu
-ō5dắmv
-ō3dắn
-ō3dắr
-ō3dắt
-ōdá2
-ō4d5eam.
-ō4d5eamn
-ō4d5eamq
-ō4d5eamu
-ō4d5eamv
-ō4d3ean
-ō4d3eat
-ō2d3eā
-ō4d5eámn
-ō4d5eámq
-ō4d5eámu
-ō4d5eámv
-ō4d3eán
-ō4d3eát
-ō2d3eō
-ō4d3e4ru
-ō4d3e4rú
-ō2d3e2s
-ō2deu
-ō3deue
-ō2deú
-ōdē2g
-ōdē2s
-ōdḗ4g
-ō2d3ĕā
-ō4d5ĕăm.
-ō4d5ĕămn
-ō4d5ĕămq
-ō4d5ĕămu
-ō4d5ĕămv
-ō4d3ĕăn
-ō4d3ĕăt
-ō6d5ĕắmn
-ō6d5ĕắmq
-ō6d5ĕắmu
-ō6d5ĕắmv
-ō4d5ĕắn
-ō4d5ĕắt
-ō2d3ĕō
-ō4d3ĕrŭ
-ō2d3ĕs
-ō4d3ĕ́s
-ō2d3és
-ō2d3i2g
-ōd4īue.
-ōd4īuĕ.
-ōd4īve.
-ōd4īvĕ.
-ōd6ī́ue.
-ōd6ī́uĕ.
-ōd6ī́ve.
-ōd6ī́vĕ.
-ō2d3ĭg
-ō4d3ĭ́g
-ō2d3í2g
-ō3do
-ōd4or
-ō2e
-ōe2m
-ō2ĕ
-ōg2
-ōga2
-ōgá2
-ōgo2
-ō1h
-ō1i2
-ō2iad2
-ō2i3b
-ō3ic
-ō2ien
-ō2iēn
-ō2is
-ō1ĭ2
-ō2ĭ3b
-ō2ĭē
-ō2ĭĕ
-ōĭ́2
-ō2ĭ́ĕ
-ō1í2
-ō2íe
-ōle3i
-ōle2r
-ōlé3i
-ōl3ue.
-ō1m2
-ōma2r
-ōna2r
-ōn2ā
-ōná2
-1ōnc
-2ō3n2e
-ōneu5t
-2ōnē
-2ō3n2ĕ
-2ō3né
-2ōn2i
-2ōnī
-2ōnĭ
-2ōní
-ōno2
-ōns2c
-ōns4i
-ōnsi5t
-ōns4ĭ
-ōnsĭ5t
-ōn3s4p
-2ō1n2u
-ō2n3ue
-2ōn2ŭ
-2ōnú
-ōp2
-ō3pi
-ō3pĭ
-ō3pt
-2ōq
-ō3qu
-ō1r
-2ō3ra.
-4ō3rane
-2ō3raq
-2ō3rau
-2ō3rav
-2ō3ră.
-4ō3rănĕ
-2ō3răq
-2ō3rău
-2ō3răv
-1ōrd
-ōr2e
-2ō3re.
-2ō3rea
-2ō3reā
-2ō3reá
-2ō3reæ
-2ō3reǣ
-2ō3reǽ
-2ō3ree
-2ōreē
-2ō3reī
-4ō3rene
-2ō3reō
-2ō3req
-2ō3reu
-2ō3reú
-2ō3rev
-ōrē2i
-ō3rēu
-ō3rēv
-ōr2ĕ
-2ō3rĕ.
-2ō3rĕa
-2ō3rĕā
-2ō3rĕă
-2ō3rĕá
-2ō3rĕæ
-2ō3rĕǣ
-2ō3rĕǽ
-2ōrĕē
-2ō3rĕĕ
-2ō3rĕī
-4ō3rĕnĕ
-2ō3rĕō
-2ō3rĕq
-2ō3rĕu
-2ō3rĕŭ
-2ō3rĕv
-4ō3rĕ́ă
-4ō3rĕ́ĕ
-ōré2
-2ō3réa
-2ō3rée
-2ō3ri
-2ō3rī
-2ō3rĭ
-2ō3rí
-1ōrn
-ōro2
-2ō3ron
-2ō3ros
-2ō3rōr
-2ō3rōs
-ō3rṓr
-ō3rṓs
-ōrŏ2
-2ō3rŏn
-2ō3rŏs
-ō3rŏ́n
-ō3rŏ́s
-ōró2
-2ō3rón
-2ō3rós
-2ō3r2u
-ōr3ue.
-ō4ruĕ
-2ō3rŭ
-ōr4ŭn
-2ō3rú
-2ōs.
-ōs2cǽ
-ō3s4ch
-ōs3cit
-ōs3cī
-ōs3cŭ
-ōsē2i
-ōs4ēm
-ōs2i
-ōsi3l4
-ōsi2n
-ōsíl2
-2ōsn
-ō1s2p
-ōspe3r
-ōsper4ī
-ōspĕ5rī
-2ō2s3q
-2ōst
-ōs2ta
-ōs2tā
-ōs2tă
-ōs2tá
-ōs2te
-ōs2tē
-ōs2tĕ
-ōs2té
-ōs2ti
-ōsti5t4
-ōs2tĭ
-ōstí3t4
-ōs2tō
-ōs5tri
-2ō2s3ue
-2ō2s3uĕ
-2ōsv
-ōt2
-ō3ta
-ō3tă
-ōté2
-ō2th
-ōtó2
-ō3tu
-2ō1u
-ō3ue
-ō3uĕ
-ō2um
-2ōv
-ō3ve
-ō3vĕ
-ō2x
-2ō2́
-ṓb2
-ṓ3bu
-ṓ3bŭ
-ṓ4d3ea
-ṓ4d3eā
-ṓ4d3eō
-ṓ4d5eru
-ṓ4d3es
-ṓ4d3ĕā
-ṓ4d3ĕă
-ṓ4d3ĕō
-ṓ4d3ĕs
-ṓ2ĕ
-ṓ3g2
-ṓi2
-ṓ3ic
-ṓĭ2
-ṓ3ĭc
-ṓ3lo
-ṓ3lŏ
-ṓ3luī
-ṓm2
-ṓ3mu
-3ṓnc
-ṓns4i5
-ṓns4ĭ5
-ṓ3p2
-3ṓrd
-ṓ3rĕ
-3ṓrn
-ṓ3spe
-ṓ3s4pĕ
-ṓ3spi
-ṓ3spĭ
-ṓ3s4ta
-ṓ3s4tā
-ṓ3s4tă
-ṓ3s4te
-ṓ3s4tē
-ṓ3s4tĕ
-ṓ3s4tō
-ṓ5s4trē
-ṓ4s5tru
-ŏ1a
-ŏau6stĕ
-ŏ1ā
-ŏ2ān
-ŏ2ār
-2ŏ1ă2
-ŏăd3
-ŏădĕ4
-ŏădĕ́4
-ŏădṓ4
-ŏ2ăs
-ŏắ2
-ŏắd3
-ŏắdĕ4
-ŏ1á
-ŏ1æ2
-ŏ2æ3q
-ŏ1ǣ2
-ŏ2ǣ3q
-ŏǣ́2
-ŏ1ǽ2
-ŏ2ǽ3q
-1ŏb1
-ŏ2ba
-ŏbă2
-ŏb2ăb
-ŏb2ăq
-ŏb2ău
-ŏb2ăv
-ŏbắ2
-ŏb2ēr
-ŏbĕ4r
-ŏbĕ́2
-ŏ2bi
-2ŏbī
-ŏbī2m
-ŏb2īn
-ŏb2īq
-ŏb2īt
-ŏbĭ2
-ŏbĭ4c
-ŏb3ĭt
-ŏbĭ́2
-ŏ2bl
-ŏ2bo
-ŏ2bó
-ŏ2br
-ŏbs2
-ŏb5stĕ
-ŏ3că
-1ŏcc
-ŏ3cē
-ŏ3cĕ
-ŏ3cī
-ŏ3cĭ
-ŏcŏ3m4ē
-ŏcŏ3mĕ
-ŏcŏmĭ5tĕ
-ŏc4tĕn
-ŏ2cu
-ŏ3cŭ
-2ŏdĕ
-ŏdĕ4c3ĕ
-ŏdĕs3
-2ŏ3dī
-ŏd2ĭ
-2ŏdō
-ŏ2d1u
-2ŏdŭ
-ŏ1ē2
-ŏ2ēn
-ŏē3nĕ
-ŏ2ēs
-ŏ2ēu
-ŏ2ēv
-ŏḗ2g
-ŏḗ2m
-ŏ1ĕ2
-ŏ2ĕ3q
-ŏ3ĕ́2
-ŏfŏ1
-ŏg2
-ŏ3ga
-ŏ3gæ
-ŏgæ3u
-ŏgæ3v
-ŏ3gǣ
-ŏ1h
-ŏ1i
-ŏ1ī
-ŏī2b
-ŏī2m
-ŏī2r
-ŏī2t
-ŏī2u
-ŏī2v
-ŏī́2b
-ŏī́2m
-ŏī́2r
-ŏī́4t
-ŏī́2u
-ŏī́2v
-ŏ1ĭ
-ŏ2ĭu
-ŏ2ĭv
-ŏ3la
-ŏ3lā
-ŏ3lá
-ŏ3læ
-ŏ3lǣ
-ŏ3lǽ
-ŏ3lēn.
-2ŏ3lĕ.
-4ŏ3lĕnĕ
-2ŏ3lĕq
-2ŏ3lĕu
-2ŏ3lĕv
-2ŏ3lī
-2ŏll
-2ŏ3lō
-2ŏ3lŏ
-ŏ2l1u
-2ŏ3lŭm
-2ŏ3lŭs
-4ŏ3lŭ́m
-4ŏ3lŭ́s
-ŏ1ma
-ŏ3m2ă
-ŏmb2
-ŏmbū3r
-ŏmbū́3
-ŏm1ē
-ŏ3mēt
-ŏ3mḗt
-ŏ3mĕ.
-ŏ3mĕm
-ŏ3mĕn
-ŏ3m2ĕq
-ŏ3mĕu
-ŏ3mĕv
-ŏ3m2ī
-ŏ3mĭă
-ŏm2ĭn
-ŏmĭnĭ5c
-ŏ3mĭs
-ŏmĭ2t
-ŏm3ĭtŏ
-ŏ3mĭ́s
-ŏm3p2
-ŏmpḗ5i
-ŏmpĕ6rī.
-ŏmpĕrī6n
-ŏmpĕ6rī6q
-ŏmpĕ6rī6u
-ŏmpĕ6rī6v
-ŏmpĕ6rī́6n
-ŏmpĕ6rī́6q
-ŏmpĕ6rī́6u
-ŏmpĕ6rī́6v
-ŏmpĕ6r5ĭī
-ŏmpĕ6rĭt
-ŏmpĕ́6r5ĭī
-ŏ3m2ū2
-ŏ3n2ā
-ŏn3d2
-ŏn2gá
-ŏ2n1i
-ŏn5ĭ4cĕ́
-ŏ4n3ĭ4cĭ
-ŏ4n5ĭ́4cĭ
-ŏn2ŏ
-ŏnŏ3s2
-ŏntĕs5
-ŏn2ŭ
-ŏ1ō
-ŏ2ōn
-ŏ2ōs
-ŏ1ŏ2
-ŏŏ́4r
-2ŏpa
-2ŏpā
-2ŏpæ
-2ŏpǣ
-ŏpe2
-ŏ2pĕ
-ŏpĕ3r4a
-ŏpĕ3r4æ
-ŏpĕ3r4ǣ
-ŏpĕ3rĕ
-ŏpĕ3rī
-ŏpĕ3rŏ
-ŏpĕ3rŭ
-1ŏpī
-ŏ3pīs
-2ŏ3pŏ
-ŏpŏ3t
-ŏp2su
-ŏptĕ4
-ŏptĕ́4
-2ŏr.
-ŏ1ra
-ŏ3r2ā
-2ŏ1ră
-ŏ1ræ
-ŏ1rǣ
-2ŏrc
-ŏ1re
-ŏ3rē
-ŏ1r2ĕ
-2ŏ3rĭb
-2ŏ3rĭs
-4ŏ3rĭ́s
-2ŏrn
-2ŏ1rō
-ŏ1r2ŏ
-2ŏrq
-ŏr2su
-2ŏru
-2ŏ3rŭ
-2ŏrv
-ŏs2ă
-ŏ3s2ĕ
-ŏ1s2m
-ŏ1sp
-ŏ2spă
-ŏs2pĕ
-ŏspĕ5rī
-ŏ2s3pĭ
-ŏs2pl
-ŏs3q
-ŏs4t3ĕā
-ŏs5tĕr
-ŏst5ĭll
-ŏs6t5ĭ́ll
-ŏs5trī
-ŏ3strŏ
-ŏs3u
-ŏ4t3ănn
-ŏtĕ2
-ŏ2t3ĕr
-ŏtĕ3rĕ
-ŏtĕ5rī
-ŏtĕrī5u
-ŏtĕrī5v
-ŏ4t3ĕs.
-ŏ4t3ĕsn
-ŏ4t3ĕsq
-ŏ4t5ĕstĕ
-ŏ4t5ĕstĭ
-ŏ4t3ĕsu
-ŏ4t3ĕsv
-ŏ4t5ĕ́rĭ
-ŏ4t3ĕ́s
-ŏ2tl
-ŏ1u
-ŏuē5nī
-ŏ3u4ĕm
-ŏ1ū2
-ŏū́2
-ŏū́4t
-ŏ1ŭ
-ŏ2ŭm
-ŏ2ŭs
-ŏ2ŭ́
-ŏvē5nī
-ŏ3v4ĕm
-2ŏx2
-ŏx4eu
-ŏ2xu
-ŏxŭ3
-ŏxŭ́3
-ŏ2́
-ŏ́3ă
-ŏ́b3ĕŏ
-ŏ́b3ĕ4r
-ŏ́bĭ2
-ŏ́b3ĭt
-ŏ́b5ŏlē
-3ŏ́2br
-ŏ́bs2
-2ŏ́c
-3ŏ́cc
-2ŏ́d
-ŏ́2d3u
-ŏ́1ĕ
-ŏ́ĕ2m
-ŏ́1i
-ŏ́ĭ2
-ŏ́3ĭē
-ŏ́3ĭt
-4ŏ́lĕn
-4ŏ́lĕq
-4ŏ́lĕu
-4ŏ́lĕv
-2ŏ́ll
-ŏ́l3u
-ŏ́4m3ĕs
-ŏ́mĭ4tĭ
-ŏ́mĭ4tŏ
-ŏ́m3p2
-ŏ́3nĭb
-ŏ́3ŏ
-ŏ́4pĕr
-ŏ́4pī
-ŏ́2r
-2ŏ́3ră
-ŏ́3rē
-ŏ́3rĕ
-ŏ́3rī
-ŏ́3rĭa
-ŏ́3rĭæ
-ŏ́3rĭǣ
-4ŏ́3rĭb
-ŏ́3rĭc
-ŏ́3rĭd
-ŏ́3rĭī
-ŏ́3rĭs
-2ŏ́rn
-ŏ́3rō
-2ŏ́rq
-2ŏ́ru
-ŏ́3rŭ
-2ŏ́rv
-ŏ́3sĕ
-ŏ́3s4pĕ
-ŏ́3sph
-ŏ́s4t5ĕā
-ŏ́t5ĕ4rā
-ŏ́t5ĕ4ră
-ŏ́t5ĕ4rĭ
-ŏ́t5ĕrŭ
-2ŏ́x
-ó1ad
-ób1
-ób2ab
-ób2a3q
-ób3a2r
-ób2a͡
-ób2eq
-óbe4r
-ób3es
-óbi4c
-ób3i2t
-ób2iu
-ób2o1
-ób5olen
-ób5oles
-ób3olē
-óbo3r
-1ó2br
-ób2ri
-ób3ru
-ób5rue
-1ób3s2
-ób5ste
-ó3b2u
-1ócc
-óco3m
-óco5me
-ó2c3ue
-2ód
-ód2a
-ó2d3ea
-ó4d3eo
-ó4d3e4ru
-ó4dest
-ó2d3i2g
-ó3ear
-ó3eat
-óe2ă
-óe3b
-óed2
-óe2e
-óe2i
-ó1e2m
-óepe3
-óe2ŭ
-ófe1
-ófo1
-óg2o3
-ó1h
-ói2
-ó3ian
-ó3iaq
-ó3iau
-ó3iav
-ói3b
-ó1ic
-ó3ien
-ó1iē
-ó3iit
-ó2in
-ó2i3q
-ó3it
-ó1iu
-ó2i3ue
-ó2i3v
-2ólen
-2óleq
-2óleu
-2ólev
-2óll
-ó2l1u
-ó3lub
-ó3lum
-ó3lus
-ó1m
-óm2a
-óm2e
-ó2m3e2d
-óm2i
-ó5mit.
-óm5i4tan
-óm5i4tat
-ómi4tān
-óm5i4tem
-óm5i4ten
-óm5i4tes
-óm5i4tet
-ómi4tēs
-ómi4tor
-ó5mitur
-ómpe3
-ómpe5r
-óm2ui
-óm2uī
-ó3m2ū
-2ó1n
-3ónc
-ón3g2
-ón5i4cit
-ón3t2
-ó2nue
-ón2uī
-ón2ul
-ó3nus
-óo2
-ó1or
-ópe1
-ó2pe3r
-ó3pi
-óp2su
-ópu3
-2óq
-ó3qu
-ó1ra
-4órane
-2óraq
-2órau
-2órav
-ó1ræ
-ó1re
-2óre.
-2órea
-2óreæ
-2óree
-2órei
-4órene
-2óreo
-2óreq
-2óreu
-2órev
-ó1ri
-2óri.
-ó4riat
-2órib
-2óris
-ó1rī
-3órna
-4órne.
-3órnem
-3órnen
-3órner
-3órnes
-3órnet
-3órno
-ó1ro
-ó1rō
-2órq
-órt2
-ór3tu
-2óru
-ó2rue
-ó3r2ui
-ó3run
-2órv
-ós4ch
-ós2i
-2ósn
-ó1sp
-ós2pe3
-2ós3q
-2óst
-óste3
-ós4t3ea
-ós4t3eā
-ós5tri
-2ósue
-ós3uis
-ó3s2uī
-2ósv
-ó5ter.
-ót3e4ra
-ót3e4rā
-ót3eru
-ó4test
-ó2tl
-2ó1u2
-ó2um
-2óv
-2óx
-óx4eu
-ó3x2i
-óxu3
-ó2xue
-2œa
-œa2m
-2œā
-2œă
-2χ
-2Ͼ
-Ͼ2i
-œæ2ŭ
-2œǽ
-œb2
-œ3bi
-œbī3u
-œbī3v
-œ3bu
-œ3bŭ
-œce2
-œcu3
-œde3
-œdĕ3r
-œen3
-œēn3
-ώn3
-2œi
-2œī
-2ϒ
-œ1m
-œ1n2
-œno3b2
-ϗ1r
-œpe3
-œper2
-œpĕ3r
-œpĕ5rĭ
-œ1r
-œte5re
-œ́3b2
-œ́2i
-œ́3l
-œ́1n
-œ́2s
-1p
-p2a
-pab2
-3pa3d2
-pada3
-pae4nī
-pan3sa
-pan5s4i
-pansi5u
-pansi5v
-pans4í
-2parg
-2pars
-par2u
-pa4ruī
-pa3tr
-p2ā
-pān3sa
-pān3să
-pān3s4ī
-pānsī5n
-pānsī5q
-pānsī5u
-pānsī5v
-3pă3d2
-pă3ră
-2părg
-pă3rŏ
-2părs
-păs3t
-păs5tă
-2păth
-pắ3rē
-4pắrg
-4pắrs
-p2á
-pán3si
-2párg
-2párs
-pá4ruī
-pæ2a
-pæ2ă
-pæ2á
-pæ2i
-pæ2nī
-pæ2ŭ
-pǣ2a
-pǣ2ă
-pǣ2nī
-pǣ2ŭ
-p2e
-3pe.
-3pe2a
-pe4ae
-pe4am
-pe4as
-pe4a͞
-pe4a͡
-pe4ās
-pe3d2
-pe2e
-3pei
-pe4ia.
-pe4iae
-pe4iam
-pe6iane.
-pe4iaq
-pe4iar
-pe4ias
-pe4iau
-pe4iav
-pe4iáe
-pe4iám
-pe6iáne.
-pe4iár
-pe4iás
-pe4iáu
-pe4iáv
-pe4ien
-pe2ié
-pe2ii
-pe2ií
-pe4io.
-pe4ioq
-pe4iou
-pe4iov
-pe4ión
-pe4ióq
-pe4ióu
-pe4ióv
-pe4is
-pe4ium
-pe2ī
-pe4īs
-3pe2í
-pe4mn
-pe4mq
-pe4mv
-3pen
-pe4nt
-pe2nu
-3pe2o
-pe4os
-pe2ō
-pe4ōs
-3peó
-pepe3
-peper4
-pepere5
-3peq
-per1
-per5a6b5únd
-pe5ram.
-pe5ramn
-pe5ramq
-pe5ramu
-pe5ramú
-pe5ramv
-pe3ran
-per6ane
-pe5ras.
-pe5rasn
-pe5rasq
-pe5rasu
-pe5rasv
-pe5rat.
-pe5rati
-pe5ratí
-pe5ratn
-pe5ratq
-pe5ratv
-pe4rāc
-pe5rāt
-per5ā́c
-pe5rā́t
-pe4r3ác
-pe2re
-pere4s
-pere4x3
-perexi4
-perexí4
-pe5rē.
-pe4rēb
-pe5rēq
-perē4s
-pe5rēt
-perḗ4s
-pe4r5énn
-peré4s
-peré4x3
-per5i4ce
-peri4cī
-peri4cí
-peri4mo
-peri4mō
-peri4mó
-perin5i4
-peri4n5í4
-per5i6ta͞
-peri6tā.
-peri6tān
-peri6tāq
-peri6tār
-peri6tāu
-peri6tāv
-peri4tǣ
-peri4tī
-peri4tō
-peri6tū.
-peri6tūn
-peri6tūq
-peri6tūr
-peri6tūu
-peri6tūv
-pe4rí4ce
-pe4rn
-pero4s
-per5osa
-per5osá
-per5osæ
-per5osǽ
-per5ose
-per5osé
-per5osi
-per5osí
-per5oso
-per5osó
-per5osú
-pe3rō.
-pe3rōn
-perō4s
-pe3rōu
-pe3rōv
-pe5rṓn
-pe5rṓq
-perṓ4s
-pe5rṓu
-pe5rṓv
-pe4róp
-peró4s
-perpe5t4
-perpé5t4
-pe4rq
-pe4rt
-pe4rv
-3pes
-pe4sn
-pe4sq
-pes3t
-pes5te
-pe4su
-pe4sv
-3pet
-pete5r
-pete7rer
-pe4tn
-pe4tq
-pe3tuī
-pe4tv
-3peu
-pe4um
-pe2un
-pe2uo
-pe2uō
-pe2uó
-pe4us
-3peú
-3pev
-pex2
-pe3x4e
-pexu3
-pexū3r
-3pe͞
-3pe͡
-p2ē
-pē4iam
-pē4ian
-pē6iāne.
-pē4iāru
-pē4iārú
-pē4iāue
-pē4iāve
-pē6iā́ne.
-pē6iā́ru
-pē6iā́ue
-pē6iā́ve
-pē4iám
-pē4iæne
-pē4iæue
-pē4iæve
-pē4iǣne
-pē4iǣue
-pē4iǣve
-pē4iǽne
-pē4iǽue
-pē4iǽve
-pē4ien
-pē4iīne
-pē4iīue
-pē4iīve
-pē4iōne
-pē4iōru
-pē4iōrú
-pē4iōue
-pē4iōve
-pē2iu
-pē2iú
-pē2nu
-pē3r
-p2ĕ
-3pĕ.
-3pĕā
-3pĕ2ă
-3pĕ3d2
-3pĕf
-3pĕn
-pĕ4nt
-3pĕō
-3pĕq
-pĕ4r3ā4c
-pĕ5rāt
-pĕr5ā́c
-pĕ5rā́t
-pĕ5rē.
-pĕr3ēb
-pĕ5rēq
-pĕrē4s
-pĕ5rēt
-pĕrḗ4s
-pĕr3ĕā
-pĕr3ĕă
-pĕ4r3ĕŏ
-pĕ6r5ĕ́nn
-pĕ4r5ĭ4cī
-pĕr6ĭĕ.
-pĕr6ĭĕn
-pĕr6ĭĕq
-pĕr6ĭĕu
-pĕr6ĭĕv
-pĕr5ĭmĭ
-pĕ4r5ĭ4mō
-pĕ4rĭn
-pĕ5rĭō
-pĕ5rĭŏ
-pĕ5rĭs
-pĕ4r5ĭ4ta
-pĕr5ĭtā.
-pĕr5ĭtān
-pĕr5ĭtāq
-pĕr5ĭtār
-pĕr5ĭtāu
-pĕr5ĭtāv
-pĕ4r5ĭ4tă
-pĕ4r5ĭ4tá
-pĕ4r5ĭ4tæ
-pĕ4r5ĭ4tǣ
-pĕ4r5ĭ4tǽ
-pĕr5ĭtĕ.
-pĕr5ĭtĕn
-pĕr5ĭtĕq
-pĕr5ĭtĕu
-pĕr5ĭtĕv
-pĕ4r5ĭ4tī
-pĕ4r5ĭ4tō
-pĕr5ĭtū.
-pĕr5ĭtūn
-pĕr5ĭtūq
-pĕr5ĭtūr
-pĕr5ĭtūu
-pĕr5ĭtūv
-pĕ4r5ĭ4tŭ
-pĕ5rĭŭ
-pĕ6r5ĭ́6cĕ
-pĕr5ĭ́mĭ
-pĕ5rĭ́s
-pĕrĭ́4t
-pĕr5ĭ́tă
-pĕr5ĭ́tĕ
-pĕ2rō
-pĕ3rō.
-pĕ3rōq
-pĕrō4s
-pĕ3rōu
-pĕ3rōv
-pĕ5rṓn
-pĕ5rṓq
-pĕrṓ4s
-pĕ5rṓu
-pĕ5rṓv
-pĕr5ŏ́p
-pĕr3ū́
-pĕr5ŭ́n
-3pĕ2s
-pĕs5tĕ
-3pĕt
-3pĕu
-3pĕv
-2pĕx2
-pĕxū3r
-pĕ́4r3ē
-pĕ́6rĕăn
-pĕ́6r5ĕăr
-pĕ́6rĕăt
-pĕ́4r5ĕŏ
-4pĕ́rg
-pĕ́4rī
-pĕ́6r5ĭ6cĕ
-pĕ́6r5ĭ6cī
-pĕ́6r5ĭt.
-pĕ́6r5ĭ6ta
-pĕ́6r5ĭ6tă
-pĕ́6r5ĭ6tæ
-pĕ́6r5ĭ6tǣ
-pĕ́6r5ĭ6tī
-pĕ́6r5ĭ6tō
-pĕ́6r5ĭ6tū
-pĕ́6r5ĭ6tŭ
-6pĕ́rnān
-6pĕ́rnăr
-6pĕ́rnăt
-6pĕ́rnĕr
-6pĕ́rnĕt
-4pĕ́rnĭ
-4pĕ́rnŏ
-3pĕ́4s
-pĕ́s5t
-3pĕ́t
-3péa
-2péc
-3péi
-3péo
-pér5ear
-pér5eor
-pé2r3ē
-2pérg
-pér5i4ce
-pér5i4ci
-pér5i4cī
-pé4r5it.
-pér5i4tæ
-pér5i4tǣ
-pér5i4tī
-pér5i4to
-pér5i4tō
-pér5i4tu
-pér5i4tū
-pé2rī
-2pérm
-4pérnān
-4pérner
-pér4ui.
-pér4uī.
-3pés
-3pét
-3péu
-pé2uo
-péx2ī
-3pé͞
-3pé͡
-2ph.
-phe2i
-phē2i
-2phēx
-phi6sta
-2phn
-3pho
-3phŏ
-3phó
-2pht
-p2i
-3pi2a
-piad2
-3piā
-3piá
-3piæ
-3piǣ
-3piǽ
-2pic
-pic4e
-pi5cen
-3pid
-3pie
-3piē
-3pié
-pig3n
-3pi2i
-3piī
-3pií
-3pil
-pin2ā
-pin4i
-pini3c
-3pio.
-3pion
-3pioq
-pio2s
-3piou
-3piov
-3pión
-3pióq
-3pióu
-3pióv
-pi3r2
-pirí3t
-pi4s3c
-pis5ci
-pi4s3tr
-3pit
-pi5ter
-3pium
-3piúm
-pi2x3
-3pī.
-3pīm
-3pīq
-pīrí3t
-pīs3
-3pīu
-3pīv
-3pĭă
-2pĭc
-pĭn2a
-pĭn2ā
-pĭn2æ
-pĭr2
-pĭ4str
-3pĭt
-pĭ5tĕr
-pĭ́3d
-pĭ́4s5t
-3pĭ́t
-3pía
-3píd
-3píe
-píg3n
-3píl
-pí1m
-pí4s3t
-3pít
-pí3tur
-pí2x
-p2l2
-p1n2
-p3nem
-p3nen
-p3ner
-p3nes
-p3net
-2pni
-2pní
-p2o
-3po.
-2pond
-po3ni
-3poq
-3por
-pos3c
-posí3t
-po3s2u
-po4t5e4ro
-po4t5e4rō
-po4t5e4ró
-3pou
-3pov
-3pō.
-3pōq
-3pōr
-3pōs
-3pōu
-3pōv
-3pṓs
-p2ŏ
-pŏ3ĭ
-2pŏn
-3pŏny
-pŏ3rĕ
-pŏ3rī
-pŏs4trŏ
-pŏtĕ4r
-pŏtĕ́4
-pŏ́3rĭ
-pŏ́4t5ĕ4r
-3póq
-3pór
-pó3s4tr
-pó4te4r
-pót5eri
-pót5ero
-pót5erō
-3póu
-3póv
-2pp
-ppule4
-p2r2
-prae3
-prae5s4
-praete6ris
-praete6rís
-praeté6r5is
-pra3s2
-pra͞e5
-pra͞es4
-prá͞e5
-prá͞es6
-pra͡e5
-pra͡es4
-prá͡e5
-prá͡es6
-prā1
-prās2
-práe3
-práes4
-prá3s4t
-præ3
-præs4
-prǣ3s
-prǣ3ŭ
-prǣ́3
-prǣ́s4
-prǽ3
-prǽs4
-pre3d
-pre5mi
-pre5mo
-prē3m
-pr4ĕ́
-pri5mi
-pri4s3
-prĭ4s
-3pro
-pro6de6ri
-pro6de6rí
-pro4des
-pro4dés
-pro4di.
-pro6di6mus
-pro6di6mús
-pro4di4n
-pro4di4q
-pro4dis
-pro6dit.
-pro6di6te
-pro6di6tis
-pro6di6tís
-pro6ditn
-pro6di6to.
-pro6di6ton
-pro6di6toq
-pro6di6tot
-pro6di6tou
-pro6di6tov
-pro6di6tón
-pro6di6tóq
-pro6di6tót
-pro6di6tóu
-pro6di6tóv
-pro6ditq
-pro6ditue
-pro6di6tur.
-pro6di6turn
-pro6di6turq
-pro6di6turue
-pro6di6turv
-pro6di6túrn
-pro6di6túrq
-pro6di6túrue
-pro6di6túrv
-pro6ditv
-pro4dí4n
-pro4dí4q
-pro4dís
-pro6dí6te
-pro6dítn
-pro6dítq
-pro6dítu
-pro6dítv
-pro4d5í4u
-pro4d5í4v
-pro4li
-3prō1
-prō6de6ri
-prō6de6rí
-prō6dĕ6rĭ
-prō6dit.
-prō6ditn
-prō6ditq
-prō6ditue
-prō6ditv
-prō4dī.
-prō4dī4n
-prō4dī4q
-prō6dī́6n
-prō6dī́6q
-prō6d5ī́s
-prō6d5ī́6u
-prō6d5ī́6v
-prō6dĭt.
-prō6dĭtn
-prō6dĭtq
-prō6dĭtu
-prō6dĭtv
-prō6dĭ́tn
-prō6dĭ́tq
-prō6dĭ́tu
-prō6dĭ́tv
-prō6dítn
-prō6dítq
-prō6dítu
-prō6dítv
-prō4li
-prō4lĭ
-prōs2
-prō3s4t
-prṓ6de6ri
-prṓ6dĕ6rĭ
-prṓ6dit.
-prṓ4d5ī
-prṓ6dĭt.
-prṓ5s4t
-3pró
-pró6de6ri
-pró4des
-pró4di.
-pró4dis
-pró6dit.
-pró4li
-prós2
-pró3st
-2p1s2
-psa3c
-p3sá
-p2s3q
-p2s3ue
-p2s3uĕ
-2pt2
-p4t3enn
-pte3r4a
-pte3rǣ
-pte5re
-pte6rea
-pte6reā
-pte5ré
-pte3ri
-pteri5u
-pteri5v
-pte5rī
-pterī5u
-pterī5v
-pte3ro
-pte3rō
-p4t3ĕnn
-ptĕ3r4a
-ptĕ3rǣ
-ptĕ3rĕ
-ptĕ5rī
-ptĕrī5u
-ptĕrī5v
-ptĕ3rŭ
-p5tĕ́nd
-pt5ĕ́nn
-p4t3énn
-pti4s
-ptis5t
-pti6sta
-ptĭ4s
-ptĭs5t
-p3tr
-p3tu
-p2u
-2pua
-2puā
-2puá
-3pu3b2
-pu4gn
-pu2lu
-pul3ue
-pul3ué
-pu3lum
-pu1m
-2puo
-2puō
-2puó
-2puu
-2puú
-3pūb
-pū2s
-2pūt
-p2ŭ
-2pŭā
-2pŭă
-3pŭg
-2pŭō
-2pŭŏ
-2pŭr
-2pŭŭ
-3púb2
-pú4gn
-2pút
-1q
-q2u2
-qu4ắ
-qu4ám
-quás3
-qu4át
-que6ste
-3quĕ
-quĕ6stĕ
-qu4ia
-qui4d5ue
-qui4d5ui
-qui4d5uī
-qui4d5uí
-2quit
-quí4d5ue
-quí4d5ui
-quí4d5uī
-quo2s3
-quó2s3
-ra3a2
-rab4a
-r2ab2e
-ra3bib
-rabi3c
-r4abis
-ra3biu
-rab2ī
-rabī3u
-rabī3v
-r2abí
-rab2o
-ra3bu
-ra4b5und
-ra3ci
-ra3cí
-ra2cr
-rad2a
-rad2e
-rad2ē
-rad2é
-rad2ī
-radō5rō
-rad2ó
-ra3eat
-ra3eāt
-ra3eát
-raes2
-r2aeu
-r2aev
-r1ag
-ra2gā
-ra2gá
-ra3g2n
-ra2gr
-2rah
-ra1i2
-ra3ic
-ra3i4n
-ra2io
-ra2ió
-ra3is
-ra3it
-rai4u
-ra4ium
-ra4ius
-ra4iús
-rai4v
-ra1ī2
-raī4n
-raī́4
-ra1í2
-ra3í4n
-ra3ís
-r1al
-r2a3li
-ra3mam
-ra4man
-ra3mas
-ra4mán
-ra4már
-ram3b2
-ram5bi
-rambī5q
-rambī5u
-rambī5v
-rambī́5q
-rambī́5u
-rambī́5v
-ram5bu
-r2a3me
-r2a3mé
-r3amna
-r3amnā
-r3amná
-r3amni
-r3amnī
-r3amní
-ra5ne.
-4rang
-ran4si.
-ran4si4m
-ran4s5i4n
-ran4si4q
-ran4s5is
-rans5it
-ran4s5í4n
-ran4sí4q
-ran4s5ís
-ran4sí4u
-ran4sí4v
-r2ant
-ra1o
-ra1ō
-r2aq
-ra5que
-ra4rab
-r4aram
-ra4rar
-ra4rau
-ra4rav
-ra2rā
-ra4ráb
-ra4rár
-ra4ráu
-ra4ráv
-rar5ch
-r4arem
-r4aret
-r3a2rē
-ra4rid
-4ra4ríd
-r2aro
-r3aror
-r3a2rō
-r2aró
-r3arór
-ra4rue
-ra4rué
-ra4rui
-ra4ruí
-ra5rum
-r3a4rúe
-r3a4rúi
-ra5rúm
-rasce5u
-ra4sn
-ra4s2p
-ra4sq
-ra4ss
-ras4ta
-ras4tá
-ras4te
-ras4tém
-ras4tén
-ras4tés
-ras4tét
-ras4tic
-ras4tíc
-ras5tra
-ra4sui
-ra4suí
-ra4sv
-ra5te.
-ra5ten
-ra5teq
-ra5teu
-ra5tev
-ra5ti.
-ra5tic
-ra5tim
-ra5tin
-ra5tiq
-ra5tis
-ra5tiu
-ra5tiv
-ra5tíc
-ra5tín
-ra5tíq
-ra5tís
-ra5tíu
-ra5tív
-ra5to.
-ra5ton
-ra5toq
-ra5tor
-ra5tos
-ra5tou
-ra5tov
-ra5tón
-ra5tóq
-ra5tór
-ra5tós
-ra5tóu
-ra5tóv
-ra3tr
-r3att
-ra5tum
-ra5tus
-ra5túm
-ra5tús
-ra5ue.
-ra5ve.
-ra2xu
-r4a͞eu
-r4a͞ev
-r4á͞eu
-r4á͞ev
-r4a͡eu
-r4a͡ev
-r4á͡eu
-r4á͡ev
-1rā
-rā5bun
-rā4cer
-rā4cĕr
-rā4cér
-2rācr
-2rāct
-rāi2
-rā4iae.
-rā6iaene
-rā6iaeque
-rā6iaeue
-rā6iaeve
-rā6ia͞e.
-rā6ia͞ene
-rā6ia͞eque
-rā6ia͞eue
-rā6ia͞eve
-rā6iá͞ene
-rā6iá͞eque
-rā6iá͞eue
-rā6iá͞eve
-rā6ia͡e.
-rā6ia͡ene
-rā6ia͡eque
-rā6ia͡eue
-rā6ia͡eve
-rā6iá͡ene
-rā6iá͡eque
-rā6iá͡eue
-rā6iá͡eve
-rā4iā.
-rā4iāru
-rā4iārú
-rā4iās.
-rā6iāsne
-rā6iāsque
-rā6iāsue
-rā6iāsve
-rā6iā́ru
-rā6iā́sne
-rā6iā́sque
-rā6iā́sue
-rā6iā́sve
-rā6iáene
-rā6iáeque
-rā6iáeue
-rā6iáeve
-rā4iæ.
-rā4iæne
-rā6iæque
-rā4iæue
-rā4iæve
-rā4iǣ.
-rā4iǣne
-rā6iǣque
-rā4iǣue
-rā4iǣve
-rā6iǣ́ne
-rā6iǣ́que
-rā6iǣ́ue
-rā6iǣ́ve
-rā4iǽne
-rā6iǽque
-rā4iǽue
-rā4iǽve
-rā3ic
-rā4iīs.
-rā6iīsne
-rā6iīsque
-rā6iīsue
-rā6iīsve
-rā6iī́sne
-rā6iī́sque
-rā6iī́sue
-rā6iī́sve
-rāĭ2
-rāĭ́2
-rā1í2
-r2ān
-rānsī4
-rānsī́4
-rān6s5ĭ́t
-rān4s5ít
-4rārēsc
-6rārḗsc
-rā4rue
-rā4ruē
-rā4rué
-rā4rui
-rā4ruī
-rā4ruí
-r3ā4rŭē
-r3ā4rŭĕ
-r3ā4rŭī
-r3ā4rŭĭ
-rā4rŭ́ĕ
-rā4rŭ́ĭ
-r3ā4rúe
-r3ā4rúi
-rā́4cer
-rā́4cĕr
-r3ā́cr
-4rā́ct
-rā́i2
-rā́3ic
-rā́ĭ2
-rā́3ĭc
-rā́n4s5ī
-rā́r2
-r5ā́4rui
-r5ā́4ruī
-rā́4rŭī
-rā́4rŭĭ
-r4ā́t
-2r1ăb
-răb2ă
-răb2ē
-răb2ĕ
-răb2ī
-răbī3u
-răbī3v
-răb2ĭ
-răbĭ3c
-2răc
-r1ăd
-răd2ē
-răd2ĕ
-răd2ī
-rădō5rō
-ră3d2ŏ
-2răf
-2răg
-ră3g2n
-ră4gŏr
-ră4grē
-ră4grĕ
-ră4grō
-ră4grŏ
-2răh
-ră1ī2
-răī4q
-răī́4
-ră3ĭē
-ră3ĭī
-2r1ăl
-2rămā
-2r3ă4mă
-2răm3b2
-rămbī5n
-rămbī5u
-rămbī5v
-rămbī́5n
-rămbī́5u
-rămbī́5v
-răm5bŭ
-2rămī
-4rămna
-4r3ămnā
-4r3ămnă
-4rămná
-4rămnæ
-4rămnǣ
-4rămnǽ
-4r3ămnī
-2rămo
-2rămó
-2rămœ
-2rămp
-2răng
-2rănh
-ră1ō
-2răpĕ
-2răpp
-r2ă3q
-2r1ă2r
-răr3c
-r4ăsĭ
-ră4sn
-ră4sp
-ră4sq
-răs5trī
-ră4su
-ră4sv
-2rătt
-r2ău
-r2ăv
-2rắb
-rắb4ĭ
-rắbĭ5c
-2rắf
-rắ3gn
-rắm3b4
-4rắmna
-4r5ắmnā
-4r5ắmnă
-4rắmnæ
-4rắmnǣ
-4r5ắmnī
-4rắpĕ
-r3ắrd
-r3ắrm
-4r5ắs4tā
-4r5ắs4tă
-4r5ắstē
-4rắstĕ
-4rắs4tĭ
-4rắstō
-4rắtt
-1r2á
-ráb2i
-rábi3c
-2rábl
-rá4cer
-2r3á2cr
-2ráct
-4ráequa
-4ráequā
-4ráequă
-r5áequen
-4ráequē
-4ráequo
-4ráequō
-4ráequŏ
-2ráes
-2r3áf
-rá3g2n
-r4ágr
-rá3ian
-rá3iā
-rá3iǣ
-rá3i2c
-rá3ien
-rá3iē
-rá2iu
-rá3li
-2ráll
-rám3b2
-4r3ámna
-4r3ámnā
-4rámnæ
-4rámnǣ
-4r3ámni
-4r3ámnī
-2rámp
-ráns5is
-2rápe
-2r3árd
-4rá4rid
-2r3árm
-4r3á4r4ui
-2r3ásp
-4r3ás4ta
-4r3ás4tā
-4ráste
-rás4tem
-rás4tes
-rás4tet
-4r3ástē
-rá5s4tic
-4rástit
-4rásto
-4rástō
-2rátt
-2ráud
-rá2xu
-ræa2
-ræă2
-ræs2
-ræ5sci
-ræ5stō
-r2æu
-ræ3ue
-ræ3uĕ
-r2æ3v
-rǣa2
-rǣă2
-rǣs2
-rǣ5stō
-r2ǣu
-rǣ3ue
-rǣ3uĕ
-r2ǣ3v
-r2ǣ́
-1rǽ
-4rǽqua
-4rǽquā
-4rǽquă
-rǽ4quen
-4rǽquē
-4rǽquo
-4rǽquō
-4rǽquŏ
-2rǽs2
-r2ǽu
-r2ǽv
-2rb2
-rba3q
-rba3r
-rbæ3
-rbe1
-r3bi
-rbi3c
-rbi3r
-rbi5ti
-rbī3r
-rbī3u
-rbī3v
-rbī́3m
-rbī́3r
-rbĭ3c
-rbĭ5tĭ
-r3bí
-rbí3m
-rbí3r
-rbí3to
-rbí5tur
-rbo3ri
-rbs3
-r3bu
-r3bŭ
-2rc2
-r4chan
-r2chă
-rci6sta
-rcum3
-rcumi4
-rcumī4
-rcumí4
-rcŭm3
-rcŭmī4
-rcú2m3
-2rd2
-rde4sc
-rdē4sc
-r3di
-rdi4g3
-r3do
-rd4or
-r3du
-rd4ue
-r3dŭ
-rd4ŭĕ
-re3a4tr
-re3ā4tr
-reā́4tr
-re3á4tr
-rec4e
-re5cen
-rec4é
-re5cén
-2red
-re2da2
-red7aman
-re2dā
-re4d3ea
-re4d3eā
-re4d3eá
-re4d3eo
-re4d3eō
-re4d3eó
-re4deú
-re2dē
-re4d3ii
-re4d3iī
-red5iít
-re4d3i4r
-re4diss
-re4dist
-red5i4tā
-red5iti
-redi4u
-red5iuer
-red5iué
-red5iui.
-red5iuim
-red5iuin
-red5iuiq
-red5iuis
-red5iuit
-red5iuín
-red5iuíq
-red5iuís
-red5iuít
-re4di4v
-red5iver
-red5ivé
-red5ivi.
-red5ivim
-red5ivin
-red5iviq
-red5ivis
-red5ivit
-red5ivín
-red5ivíq
-red5ivís
-red5ivít
-re4dīm
-re4d3ī4r
-re4d3īs
-re4dīt
-red5ī4te
-red5ī4tō
-red5ī4tu
-red5ī4tú
-re4d3ī4u
-re4d3ī4v
-re4dī́m
-re4d5ī́4r
-re4dī́s
-red5ī́ss
-red5ī́st
-re4dī́t
-red5ī́6te
-red5ī́6tō
-red5ī́6tu
-red5ī́6ui
-red5ī́6uī
-red5ī́6vi
-red5ī́6vī
-re4d3íe
-re4d3íi
-re4d3í4r
-re4díss
-re4díst
-red5í4to
-redí4tu
-red5í4ui
-red5í4vi
-re4dúl
-re2er
-ree3ri
-ree3rí
-re2es
-3reē
-r1ef
-2r1eg
-reg2l
-re4gn
-re3go
-re3gō
-re2ia
-re2iā
-re2iá
-re3ic
-re4ien
-re2ii
-re2iī
-re2ií
-re2io
-re2iō
-re2ió
-re2iu
-re2iú
-re2ī
-2r1el
-re2le
-re2lo
-2remā
-2reme
-2remē
-2remé
-re4mic
-4remim
-re4mine
-re4miné
-4remis
-2remī
-4remím
-re4míss
-re4míst
-4remít
-4remo.
-4remoq
-4re4mor
-4remou
-4remov
-4remō.
-4remōq
-4remōu
-4remōv
-4remóq
-4remór
-4remóu
-4remóv
-2remp
-2remt
-4remún
-re5nar
-re5nas
-re5nau
-re5nav
-re1o
-re1ō
-repe3r
-r2ere
-r2eri
-re3rin
-re3riu
-re3riv
-3rerī
-r2erí
-re4rn
-re4rq
-2r3err
-re4rv
-re4sa
-re2sá
-re4so
-re2só
-re2sq
-2ress
-res2t
-4rest.
-4reste
-re4ste.
-re6stem.
-re6stemn
-re6stemq
-re6stemue
-re6stemv
-re6s5tene
-re4steq
-re4stes
-re4steu
-re4stev
-re4stēs
-re6stḗs
-re6stémn
-re6stémq
-re6stémue
-re6stémv
-re4stés
-4resti
-re4s5ti.
-re6s5tine
-re4s5tiq
-re4stis
-resti5t4
-re4s5tiv
-re4s5tī.
-re6s5tīne
-re4s5tīq
-re4s5tīs
-re4s5tīu
-re4s5tīv
-re6s5tī́ne
-re6s5tī́q
-re6s5tī́s
-re6s5tī́u
-re6s5tī́v
-4restí
-re6s5tíne
-re4s5tíq
-re4stís
-restí5t4
-re4s5tíu
-re4s5tív
-4restn
-4r3esto
-4r3es3tō
-4r3estó
-4restq
-4r3estu
-4restv
-re4su.
-r4esue
-re4sum
-re4sun
-re4suq
-re4suu
-re4suv
-re4súm
-re4sún
-re4súq
-re4súu
-re4súv
-rete5re
-2reun
-re4uol
-reu5sum
-reu5sus
-2reún
-re3únc
-re4vol
-2r1ex
-r2exé
-rexi4t
-re4xiu
-re4xiv
-re2x3ī4
-rexī́4
-rexí4t
-rexí4ui
-rexí4vi
-re2xu
-1rē
-2rēbu
-2rēbŭ
-2rēg
-rē2gr
-rē2iā
-rē2iu
-rē2iú
-2r1ē2l
-r2ē3la
-r2ē3lă
-2rē2me
-rē3men
-4rēmēr
-2rē2mĕ
-rē3mĕn
-4r3ē4mér
-4rē4mic
-4rē4mim
-rē4mine
-rē4minē
-rē4miné
-4rē4mis
-4rēmit.
-4rēmitn
-4rēmitq
-4rēmitu
-4rēmitv
-4rē4mĭc
-4rē4mĭm
-r5ē4mĭnē
-rē4mĭnĕ
-4rē4mĭs
-4rēmĭt.
-4rēmĭtn
-4rēmĭtq
-4rēmĭtu
-4rēmĭtv
-rē4mĭ́n
-4rē4mĭ́t
-4rē4mín
-4rē4mít
-2rē2mo
-2rē2mŏ
-2rē2mó
-2rēmp
-2rēmt
-2rēna
-2rē2nă
-rē3ne
-rēpe3r
-rēpĕ3r
-r2ēri
-2rēro
-2rērŏ
-2r3ē4sa
-2rē2sā
-2rē2să
-2rē2sá
-2rēsæ
-2rēsǣ
-2rēsǽ
-r2ēsc
-2rē2se
-2r3ē2sĕ
-2rēsō
-2rēss
-2rēst
-rēs3tĭ
-r2ē2su
-2rēsū
-2rē2sŭ
-2rēsú
-2rēu
-rē2uo
-rē2uŏ
-2rēv
-rē2vo
-rē2vŏ
-rḗ3b
-rḗ3ic
-rḗ3ĭc
-4rḗ4le
-4r3ḗ4lĕ
-r3ḗlŏ
-4r5ḗ4mer
-4r5ḗ4mĕr
-4rḗ4mim
-rḗ6mine
-rḗ6minē
-6rḗmit.
-4rḗ4mĭm
-r5ḗ6mĭnē
-r5ḗ6mĭnĕ
-6rḗmĭt.
-4rḗ4mo
-4r3ḗ4mŏ
-4rḗmp
-4rḗmt
-rḗ4nat
-rḗ4năt
-4r3ḗro
-4r3ḗrŏ
-r4ḗsc
-rḗ4se
-r3ḗ4sĕ
-4rḗss
-4rḗst
-r4ḗsu
-rḗ4sŭ
-4rḗ4uo
-4r3ḗ4uŏ
-4rḗ4vo
-4r3ḗ4vŏ
-r4ĕān
-r4ĕāq
-rĕ3ā4tr
-r4ĕāu
-r4ĕāv
-rĕā́4tr
-rĕ2ă
-r4ĕă.
-r4ĕăq
-r4ĕău
-r4ĕăv
-2rĕd
-rĕ2dā
-rĕ2dá
-rĕ2dē
-rĕ4d3ĕā
-rĕ4d3ĕă
-rĕ4d3ĕō
-rĕ4dīm
-rĕ4d3ī4r
-rĕ4d3īs
-rĕ4dīt
-rĕd5ī4tĕ
-rĕd5ī4tō
-rĕd5ī4tŭ
-rĕ4d3ī4u
-rĕ4d3ī4v
-rĕ4dī́m
-rĕ4d5ī́4r
-rĕ4dī́s
-rĕd5ī́ss
-rĕd5ī́st
-rĕ4dī́t
-rĕd5ī́6tĕ
-rĕd5ī́6tō
-rĕd5ī́6tŭ
-rĕd5ī́6uī
-rĕd5ī́6uĭ
-rĕd5ī́6vī
-rĕd5ī́6vĭ
-rĕ4d3ĭ4c
-rĕd5ĭĕr
-rĕ4d3ĭī
-rĕ4d3ĭĭ
-rĕd5ĭtā
-rĕd5ĭtă
-rĕ4d5ĭ́ĕ
-rĕ4d5ĭ́ĭ
-rĕ4dĭ́t
-3rĕē
-r1ĕf
-2r1ĕg2
-rĕ3gō
-rĕ2ī
-rĕ2ĭĕ
-2rĕmā
-2rĕmē
-2rĕmĕ
-2rĕmī
-2rĕmĭ
-4r3ĕmnē
-4r3ĕmnī
-4r3ĕmnĭ
-2rĕmŏ
-2rĕmŭ
-rĕ5nĕ.
-2r3ĕnn
-rĕ1ō
-r2ĕq
-rĕ5quĕ
-r2ĕr
-rĕ3r4ĕ
-2r3ĕrr
-2r3ĕrŭ
-rĕ1s
-rĕs3cĭ
-rĕs2p
-rĕs2t
-r2ĕt
-rĕ5uĕ.
-2rĕŭ
-rĕ5vĕ.
-2r1ĕ2x3
-rĕ4xă
-rĕxī4
-rĕxī́4
-2rĕ́d
-rĕ́4d5ĕā
-rĕ́4d5ĕă
-rĕ́4d5ĕō
-rĕ́4d3ī
-rĕ́4d5ĭī
-rĕ́4d5ĭĭ
-2rĕ́f
-4rĕ́mĕ
-4rĕ́mĭ
-4r5ĕ́mnē
-4r5ĕ́mnī
-4r5ĕ́mnĭ
-4r5ĕ́nnā
-4r5ĕ́nnă
-4r5ĕ́nnē
-4r5ĕ́nnĕ
-4r5ĕ́nnī
-4r5ĕ́nnō
-2r3ĕ́2q
-4r3ĕ́rr
-rĕ́3sp
-rĕ́5s4tā
-rĕ́5s4tă
-rĕ́5s6tĕnt
-rĕ́5s6tĕt
-rĕ́5strŭ
-2r3ĕ́2x3
-1ré
-2réd
-ré4d3ea
-ré4d3eā
-ré4d3eo
-ré4d3eō
-ré4d3iī
-ré2d3ī
-ré2e
-2r1éf
-2ré2le
-2ré2lo
-4rémer
-4rémic
-4rémim
-4r5é4mine
-4rémit.
-4rémiti
-4rémito
-4rémitō
-4rémitu
-4r3émnē
-4r3émni
-4r3émnī
-2rémo
-ré4mor
-2rémp
-2rémt
-ré4nat
-4r3énna
-4r3énnā
-4rénne
-4r3énnē
-4r3énnī
-4r3énno
-4r3énnō
-4réqui
-r2ér
-2réro
-2r3érr
-ré2ru
-2ré4sa
-2résæ
-4ré4se.
-2réso
-ré3sp
-2réss
-ré3s4ta
-ré3s4tā
-4réste
-ré5s6tent
-ré5s4tet
-4résti
-ré5stit
-4réstn
-4r3ésto
-4r3éstō
-4réstq
-rés4tru
-4r3éstu
-4réstv
-r2é2su
-4résu.
-4résum
-4résus
-2r3é2uo
-2r3é2vo
-ré4xeu
-ré4xiē
-ré4x3is
-ré2xī
-ré2xu
-2rf
-2rg2
-r3ge
-r3gĕ
-r1h
-r2hy
-r2hý
-ri2a
-r2ia.
-r2iae
-r2iam
-r2ian
-r2iaq
-r2iar
-r2ias
-r2iat
-ri3atr
-r2iau
-r2iav
-r2ia͞
-r2ia͡
-r2iā
-2riă
-r2iáe
-r2iám
-r2ián
-r2iár
-r2iás
-r2iát
-ri3átr
-r2iáu
-r2iáv
-r2iæ
-r2iǣ
-r2iǽ
-2ribe
-2ribē
-ri4bē.
-3riboe
-3riboē
-3riboé
-ri5bus
-ri5bús
-ri4cie
-ri4ciē
-ri4cié
-ri4cim
-ri4cio
-ri4ciō
-ri4ció
-4ricit
-r3i4cím
-r3i4cít
-3ricl
-r2icu
-r2icú
-2rido
-ri4don
-2ridō
-ri4dōn
-2ridó
-r2ieb
-3riei
-3rieí
-r2iem
-r2ien
-ri3enn
-r2ies
-r2iet
-r2iēb
-3riēī
-r2iēm
-r4iēri
-r4iērí
-r2iēs
-r2iēt
-r4iḗb
-r4iḗm
-r4iḗne
-r4iḗq
-r4iḗri
-r4iḗs
-r4iḗt
-r4iḗu
-r4iḗv
-2riĕ
-r2iéb
-3riéi
-r2iém
-r2ién
-ri3énn
-r4iéris
-r2iés
-r2iét
-ri3ga
-ri3gæ
-ri3gǣ
-ri4g3n
-r4iis.
-r4iisn
-r4iisq
-r4iisu
-r4iisv
-r2iīs
-r4iī́s
-r4iísn
-r4iísq
-r4iísu
-r4iísv
-2rij
-r1il
-3rile
-3rilé
-5rille.
-5rillen
-5rilleq
-5rilli.
-5rilliq
-5rillis
-5rilliu
-5rilliv
-3rillī
-5rillíq
-5rillís
-5rillíu
-5rillív
-3rillo
-3rillō
-3rilló
-5rillum
-5rillus.
-5rillusn
-5rillusq
-5rillusu
-5rillusv
-5rillúm
-5rillúsn
-5rillúsq
-5rillúsu
-5rillúsv
-3rim.
-3rimed
-3rimel
-5rimetr
-3rimēd
-3rimēl
-5rimḗd
-5rimḗl
-3ri5méd
-3ri5mél
-5rimétr
-ri3min
-3rimn
-3rimq
-4rimun
-ri3mur
-r4i3mus
-r2imú
-ri3múr
-ri3mús
-3rimv
-ri2ni
-rin3ic
-ri2n3ī2
-rinī́4
-ri4n3í4c
-r3inq
-rinte5r6
-rinteri5
-rinterī5n
-rinterī5q
-rinterī5u
-rinterī5v
-rinterī́5
-rinterí5u
-rinterí5v
-3rinth
-ri2nu
-ri4nún
-r2i2o
-r2iō
-r2ió
-r2ip
-ri3pi
-r2iq
-ri2ra
-ri2rá
-ri3r4e
-rir6emi
-ri3r4ē
-ri5rē5m
-3rirrh
-1r2is
-ri3sa
-ri4sat
-ri3sá
-ri4sát
-ri4s3p
-ris5pe
-ris5pé
-ris5ti
-ri6stri
-ri4sui
-ri4suí
-r2ita
-r4itāt
-r2itá
-r4i5ter
-r2ité
-ri5tér
-3rith
-r2iti
-3ritia
-3ritiá
-3ritiæ
-3ritiǽ
-3ritii
-3ritií
-5ritior
-r5itiō.
-r5itiōn
-r5itiōq
-r5itiōu
-r5itiōv
-5ritiór
-5ritiss
-5ritius
-3ritiú
-r2ití
-3ritía
-5ritíss
-ri5tōt
-3ritt
-r4itue
-r4iue.
-2riug
-r4ium.
-r4iumn
-r4iumq
-r4iumu
-r4iumv
-r4iunt
-r2ius
-2riŭ
-r4iúnt
-r2iús
-r4ive.
-rī3āt
-2rīb
-rī4c5ĕ́n
-rī4cén
-2rīg
-r2īm
-rīmi3
-r2īne
-r4īnĕ
-r2īq
-2r3ī2rā
-r2īs.
-r2īsn
-r2īsq
-r2īsu
-r2īsv
-r2īt
-r2īu
-r4īue.
-r4īuĕ.
-r4īus
-r2īv
-r4īve.
-r4īvĕ.
-2rī́b
-rī́3d
-r2ī́m
-r4ī́ne
-r4ī́nĕ
-r2ī́q
-r2ī́t
-r4ī́uĕ.
-r4ī́vĕ.
-1rĭ
-rĭ4bē.
-r2ĭc
-rĭ3cē
-rĭ3cĕ
-rĭ3cī
-2rĭcĭ
-rĭ4cĭă
-rĭ4cĭē
-rĭ4cĭĕ
-rĭ4cĭm
-rĭ4cĭō
-rĭ4cĭŏ
-rĭ4cĭŭ
-rĭ3cŭ
-2rĭdă
-2rĭdō
-rĭ4dōn
-r2ĭē
-r4ĭē.
-r4ĭēq
-r4ĭēu
-r4ĭēv
-r2ĭĕ
-r4ĭĕ.
-r4ĭĕn
-rĭ3ĕnn
-r4ĭĕq
-r4ĭĕu
-r4ĭĕv
-rĭ5ĕ́nn
-rĭ3ga
-rĭ3gæ
-rĭ3gǣ
-2rĭi
-2r1ĭĭ
-2rĭj
-2r1ĭl
-3rĭle
-3rĭlé
-3rĭllĕ
-3rĭllī
-3rĭllō
-3rĭllŭ
-4rĭmăr
-4rĭmăt
-2r3ĭmb
-4rĭmēb
-4rĭmēm
-4rĭmēr
-4rĭmēs
-4rĭmēt
-4rĭmḗb
-4rĭmḗm
-4rĭmḗr
-4rĭmḗs
-4rĭmḗt
-4rĭmĕt
-5rĭmĕtr
-5rĭmĕ́tr
-4rĭmĭm
-4rĭmĭs
-4rĭmĭt
-4rĭmĭ́
-2rĭmm
-2rĭmŏ
-2rĭmp
-4rĭmŭn
-4rĭmŭ́n
-rĭ2n1
-rĭ3nā
-2r3ĭnc
-2r3ĭnd
-2rĭni
-2r3ĭnī4
-rĭnī́4
-2r3ĭnĭ
-rĭnĭ́4
-2rĭnj
-2r3ĭnq
-rĭntĕ5r
-rĭntĕrĕ5r
-rĭntĕrī5n
-rĭntĕrī5q
-rĭntĕrī5u
-rĭntĕrī5v
-rĭntĕrī́5
-5rĭnth
-2rĭnu
-2rĭnŭ
-2rĭnv
-rĭ2ŏ
-2rĭpē
-2r1ĭr
-rĭ3r4ē
-rĭ5rē5m
-3rĭrrh
-rĭ3s4ă
-rĭ4sp
-rĭs5pĕ
-rĭs5tĭ
-rĭ5strŏ
-r2ĭt
-4r5ĭ4tĭō.
-4r5ĭ4tĭōn
-4r5ĭ4tĭōq
-4r5ĭ4tĭōu
-4r5ĭ4tĭōv
-2rĭu
-2rĭv
-r2ĭ́c
-rĭ́3cĕ
-4r5ĭ́4cĕr
-4rĭ́cĭ
-rĭ́4cĭā
-rĭ́4cĭă
-rĭ́4cĭē
-rĭ́4cĭĕ
-rĭ́4cĭm
-rĭ́4cĭō
-rĭ́4cĭŏ
-rĭ́4cĭŭ
-4rĭ́mĕr
-4rĭ́mĭm
-4rĭ́mĭt
-rĭ́2n
-r3ĭ́nc
-4r3ĭ́nd3
-r3ĭ́n3ĭ4
-2r3ĭ́r
-r4ĭ́s
-4r5ĭ́4tĭō
-1rí
-2ríb
-4r3í4cer
-2ríci
-rí5ci.
-rí4ciā
-rí4ciē
-rí4cim
-rí4cio
-rí4ciō
-rí5cis
-r2ícu
-rí3d
-2rída
-rí3ga
-rí4g3n
-2ríj
-4rílli
-4rímer
-4rímim
-rí3min
-4rímit
-2rímm
-r2ímu
-2rínc
-2rín2d3
-4rí4n3i4c
-2rínj
-2ríns
-4rínte
-r2íq
-2rírr
-rís3t
-rí4sui
-r2ít
-4rítio.
-4r3í4tiō
-rí2xu
-2rj
-2rl2
-r3lu
-2r1m2
-rmĭ2ă
-rmí5tur
-2r1n2
-r3ne
-rne3g
-r3nĕ
-rnĕ3g
-rn4i3m
-rn4ĭ3m
-rní5ci
-1ro.
-ro3áq
-rob2a
-rob2e
-rob2ē
-rob2é
-ro3b2i
-rob2ī
-rob2í
-ro3b2o3
-rob2ó
-rob3r
-r1oc
-ro2da
-ro4deo
-ro4d5e4ra
-ro4d5e4rá
-rod5e6rim
-rod5e6rit
-rod5e6rít
-ro4d5e4ro
-ro4d5e4ró
-ro4d5e4ru
-ro4d5e4rú
-rod5est
-ro6d5é6rim
-ro6d5é6rit
-rod5ést
-ro4d3ie
-ro4d3ié
-ro4d3ii
-ro4d3ií
-ro4dio
-ro4diō
-ro4dió
-ro4d3i4r
-rod5iss
-rod5ist
-ro4d3i4u
-ro4d3i4v
-ro4d3íe
-ro4d3íi
-ro4d5í4mu
-ro4d3í4r
-rod5íss
-rod5íst
-rod5í6te.
-ro6d5í6tis
-ro4d5í4to
-rodí4tu
-rod5ítur
-rod5í4ui
-rod5í4vi
-ro4em
-ro4en
-ro3eo
-ro3eō
-ro3eó
-ro4eq
-ro4es
-ro4ev
-ro2ē
-ro2é
-ro4ia.
-ro4iae
-ro4iam
-ro6iane.
-ro4iaq
-ro4iar
-ro4ias
-ro4iau
-ro4iav
-ro4ia͡
-ro4iáe
-ro4iám
-ro6iáne.
-ro4iár
-ro4iás
-ro4iáu
-ro4iáv
-ro2iæ
-ro2iǽ
-ro4iis.
-ro4iisn
-ro4iisq
-ro4iisu
-ro4iisv
-ro3iī
-ro4iísn
-ro4iísq
-ro4iísu
-ro4iísv
-ro3it
-ro4ium
-ro4ius
-ro4iús
-roī4n
-roī2q
-roī́4n
-roī́4q
-roí2t
-roí2u
-roí2v
-2r1ol
-ro2le
-ro2lē
-ro2lé
-ro4li.
-ro4lin
-ro4liq
-ro4lis
-ro4liu
-ro4liú
-ro4liv
-ro2lí
-ro2l4u
-ro2lú
-r2on
-ro3ni
-rons3
-ro2pe3
-ro2pé
-1roq
-ro2ra
-ro2rá
-r3ord
-ro4rer
-ro4ret
-ro4rén
-ro4rér
-ro4rét
-ro4ro.
-ro4ron
-ro4roq
-ro4ror
-ro4rou
-ro4rov
-ro4rón
-ro4róq
-ro4rór
-ro4róu
-ro4róv
-r2os
-ro3s2c
-ro2s3m
-ro3só
-ro3s2t
-ro4s3ui
-ro4s3uí
-1rou
-1rov
-1ro͞
-1ro͡
-rō4d5e4ra
-rō4d5e4rā
-rō4d5e4rá
-rōd5e6rim
-rōd5e6rit
-rōd5e6rít
-rō4d5e4rō
-rō4d5ĕ4rā
-rō4d5ĕ4ră
-rōd5ĕ6rĭm
-rōd5ĕ6rĭt
-rōd5ĕrĭ́t
-rō4d5ĕ4rō
-rō6d5ĕ́6rĭ
-rō4d5é4ri
-rō4d3ie
-rō4d3iē
-rō4d3ié
-rō4d3ii
-rō4d3iī
-rō4d3ií
-rō4d3ī4m
-rō4d3ī4r
-rō4d3īs
-rō4d5ī4te
-rō4d5ī4tĕ
-rō6d5ī6tis
-rō6d5ī6tĭs
-rō6d5ī6tĭ́s
-rō6d5ī6tís
-rō4d5ī4tō
-rō4d5ī4tu
-rō4d5ī4tŭ
-rō4d5ī4tú
-rō4d3ī4u
-rō4d3ī4v
-rō4d5ī́4m
-rō4d5ī́4r
-rōd5ī́ss
-rōd5ī́st
-rō6d5ī́6te
-rō6d5ī́6tĕ
-rō6d5ī́6tis
-rō6d5ī́6tĭs
-rō6d5ī́6tō
-rō6d5ī́6tu
-rō6d5ī́6tŭ
-rōd5ī́6ui
-rōd5ī́6uī
-rōd5ī́6uĭ
-rōd5ī́6vi
-rōd5ī́6vī
-rōd5ī́6vĭ
-rō4d3ĭē
-rō4d3ĭĕ
-rō4d3ĭī
-rō4d3ĭĭ
-rō4d5ĭ́ĕ
-rō4d5ĭ́ĭ
-rō4d3íe
-rō4d3íi
-rō4ia.
-rō4iae.
-rō6iaene
-rō6iaeque
-rō6iaeue
-rō6iaeve
-rō4iam
-rō4ian
-rō4iaq
-rō4iau
-rō4iav
-rō6ia͞e.
-rō6ia͞ene
-rō6ia͞eque
-rō6ia͞eue
-rō6ia͞eve
-rō6iá͞ene
-rō6iá͞eque
-rō6iá͞eue
-rō6iá͞eve
-rō6ia͡e.
-rō6ia͡ene
-rō6ia͡eque
-rō6ia͡eue
-rō6ia͡eve
-rō6iá͡ene
-rō6iá͡eque
-rō6iá͡eue
-rō6iá͡eve
-rō4iā.
-rō6iāne.
-rō6iāque
-rō4iāru
-rō4iārú
-rō4iās.
-rō6iāsne
-rō6iāsque
-rō6iāsue
-rō6iāsve
-rō4iāue
-rō4iāve
-rō6iā́ne.
-rō6iā́que
-rō6iā́ru
-rō6iā́sne
-rō6iā́sque
-rō6iā́sue
-rō6iā́sve
-rō6iā́ue
-rō6iā́ve
-rō6iáene
-rō6iáeque
-rō6iáeue
-rō6iáeve
-rō4iám
-rō4iæ.
-rō4iæne
-rō6iæque
-rō4iæue
-rō4iæve
-rō4iǣ.
-rō4iǣne
-rō6iǣque
-rō4iǣue
-rō4iǣve
-rō6iǣ́ne
-rō6iǣ́que
-rō6iǣ́ue
-rō6iǣ́ve
-rō4iǽne
-rō6iǽque
-rō4iǽue
-rō4iǽve
-rō4iī.
-rō4iīn
-rō4iīq
-rō4iīs.
-rō6iīsne
-rō6iīsque
-rō6iīsue
-rō6iīsve
-rō4iīu
-rō4iīv
-rō4iī́n
-rō4iī́q
-rō6iī́sne
-rō6iī́sque
-rō6iī́sue
-rō6iī́sve
-rō4iī́u
-rō4iī́v
-rō2iō
-rō4ium
-rō4ius
-rō4iús
-rō2le
-rō2lē
-rō2lĕ
-rō2lé
-rō4lis
-rō4liu
-rō4liú
-rō2lī
-rō4lĭs
-rō4lĭŭ
-rō4lĭ́
-rō2lí
-r2ōn
-rō2ra
-r3ō2rā
-r3ō2ră
-rō2rá
-2rōrd
-rō4rer
-rō4ret
-rō4rēm
-rō4rēr
-rō4rēt
-rō4rĕr
-rō4rĕt
-rō4rén
-rō4rér
-rō4rét
-rō2ro
-rō4rō.
-rō4rōn
-rō4rōq
-rō4rōu
-rō4rōv
-r3ō2rŏ
-rō2ró
-2rōs2c
-2rōt
-rṓ6d5e6ra
-rṓ6d5e6rā
-rṓd5e6rit
-rṓ6d5e6rō
-rṓ6d5ĕ6rā
-rṓ6d5ĕ6ră
-rṓd5ĕ6rĭt
-rṓ6d5ĕ6rō
-rṓ4d5iē
-rṓ4d5ii
-rṓ4d5iī
-rṓ4d5ĭē
-rṓ4d5ĭī
-rṓ4d5ĭĭ
-rṓ2l
-rṓ4lĕ
-r3ṓ4ra
-r3ṓ4rā
-r3ṓ4ră
-4rṓrd
-rṓ4rer
-rṓ4ret
-rṓ4rĕr
-rṓ4rĕt
-r3ṓ4ro
-r3ṓ4rō
-r3ṓ4rŏ
-4rṓsc
-rṓ5stĭ
-2rṓt
-rŏb2ē
-rŏb2ĕ
-rŏb2ī
-rŏb2ŏ
-rŏ2bŭ
-r1ŏc
-r1ŏd
-rŏ2dĭ
-rŏ2ē
-rŏī2n
-rŏī4q
-rŏī́4n
-rŏī́4q
-rŏ3ĭ2
-rŏĭ́4
-2r1ŏl
-rŏ2lē
-rŏ2lĕ
-rŏ2lŭ
-rŏm2ĕ
-r2ŏn
-rŏ2pŭ
-1r2ŏr
-r2ŏs
-r2ŏ́
-rŏ́3ĭ
-rŏ́4lĕ
-rŏ́4lŭ
-rŏ́m2
-4rŏ́t
-1ró
-rób2e
-2rócc
-ró4d5e4ra
-ród5e6rit
-ró4d5e4ro
-ró4d3ie
-ró4d3ii
-ró3eo
-ró3eō
-ró3iī
-ró3in
-ró4ium
-ró4ius
-2ról2
-ró2le
-ró4li.
-ró4lis
-ró4liu
-ró3m
-róm4e
-ró1r
-2ró2ra
-2r3órd
-ró4rer
-ró4ret
-4rórna
-4rórno
-2ró2ro
-2ró3sc
-ró3sta
-ró3ste
-ró3sti
-ró3sto
-rós3ue
-ró4sui
-2rót
-1rœ
-rœ̄3d
-2rp
-rpe2i
-rpe3r
-rper4e
-rper4ē
-rpĕ3ră
-rpĕ3rĕ
-rpo1
-2rq
-r3qu
-2r1r2
-rra3d4
-r3ră
-r3re
-rre2o
-rre3r
-rres3t
-rrex2
-rre5xi
-r3rē
-r3rĕ
-rrĕ4s3t
-rr4ĕ́
-rrĕ́3q
-r3ru
-2r1s2
-r3se
-rsed4
-rse5di
-rse2i
-rsēd4
-rsē5di
-rsē5dĭ
-rsē2i
-r3sĕ
-r3si
-rs4ig
-rsĭ3gĕ
-r2s3q
-r3st
-r2s3ue
-r2s3uĕ
-2rt
-r3ta
-rta3g
-r3tā
-rte3r
-rte5re
-rtĕ3rĕ
-r3ti
-r3tī
-rtran4
-rtrān4
-rtrāns5
-rua6ste
-ruā6ste
-ruā6stĕ
-2r1uă
-2ruæ
-2r1uǣ
-2ruǽ
-ru3b2
-rubī3q
-rubī́3
-2ru3d
-r1ue
-4rue.
-r4uera
-r4uerā
-r4uerá
-r4ueri
-r4uerī
-r4uerí
-r4uero
-r4uerō
-r4ueró
-r4ueru
-r4uerú
-ruete5
-r4uēru
-r4uērú
-2r3uĕ
-ru4gn
-r1ui
-rui4g3n
-r2uim
-r4uiss
-r4uist
-r2uit
-r1uī
-2ruīs
-r4uīv
-2r1uĭ
-ruí4g3n
-r2uíq
-r4uíss
-r4uíst
-r2uít
-1r2ul
-1r2um
-rum2e
-ru3m2ī
-ruol6uere.
-ruol6uerene
-ruol6uereq
-ruol6uereu
-ruol6uēre
-ruol6uēru
-ruol6uērú
-ruol6uḗre
-ruol6uḗru
-ruol6uit.
-ruol6uitn
-ruol6uitq
-ruol6uitue
-2ruŏ
-ruól6ui.
-ruól6uit.
-ruól4uī
-rupe3r
-ruperi5mus
-ruperi5mú
-ruperi5ti
-ruperi5tí
-r1u2r
-ru4rs
-1rus
-ru2sp
-2russ
-2rust
-4rusur
-2rusú
-ru2tr
-ru3tu
-r1uu
-2ruŭ
-ru2xu
-rū3d
-r1ūn
-r1ūr
-rū2ra
-rū2rā
-rū2ră
-rū2rá
-rū2rē
-rū2rī
-rū2ro
-rū2rō
-rū2rŏ
-rū2ró
-rū2ru
-rū2rŭ
-rū2rú
-rū4sp
-rū2ti
-rū2tĭ
-rū2tí
-rū3tu
-rū2xu
-r4ū́g
-rū́4ra
-rū́4rā
-rū́4ră
-rū́4re
-rū́4rē
-rū́4rĕ
-rū́4rī
-rū́4ro
-rū́4rō
-rū́4rŏ
-rū́4ru
-rū́4rŭ
-rŭb2
-rŭ3bī
-rŭ2bĭ
-2rŭd
-1rŭl
-r2ŭm
-rŭ3mă
-rŭm2ĕ
-rŭ3m2ī
-r3ŭnd
-r3ŭng
-r1ŭr
-3rŭsī
-3rŭsĭ
-rŭs2p
-rŭ4tĕr
-2rŭtr
-r2ŭ́
-rŭ́3b
-r3ŭ́ng
-r3ŭ́r
-3rŭ́sĭ
-rŭ́3sp
-1rú
-r2úe
-rú4gn
-r2úi
-r2úl
-r2úm
-2rúnc
-2rúng
-2rúnx
-2r1úr
-rú2ra
-rú2re
-rú2ro
-r2úsi
-r2úsq
-2rúss
-2rúst
-rú2tr
-rú2xu
-2rv2
-rva6ste
-rvā6ste
-rvā6stĕ
-r3ve
-rvete5
-r3vĕ
-rvi4g3n
-rví4g3n
-2r2x
-1sa
-2saa
-sab4a
-sab3ea
-sab3eā
-sab3eá
-sab3eo
-sab3eō
-sab3eó
-sab3iī
-sab3i4n
-sab3i4q
-sabi4te
-sabi4to
-sabi4tó
-sabi4u
-sabi4v
-sa2bī4
-sabī́4
-sab3í4n
-sab3í4q
-sabí4t
-sab3í4u
-sab3í4v
-sab2o
-s1ac
-sa2ci
-2s1a2d3
-sa3do
-s2ae
-sa2i
-sali4g5
-salí4g3
-s3alp
-sa2l3u
-s2am
-sa3ma
-3s2an
-s2a3q
-s2ar
-sa3re
-s2as
-sa4tro
-sa4tró
-sa4tru
-sa4trú
-s4aue
-s3aus
-s4a͞e
-s4á͞
-s4a͡e
-s4á͡
-1sā
-sā5bun
-2s1āc
-sā2i
-2s3ā́c
-sā́4tr
-1să
-2săă
-2s1ăb
-săb2ă
-să2bĕ
-să2bī4
-săbī́4
-să2b3ĭ
-s1ăc
-să2cĭ
-2s1ă2d3
-să3g
-s3ălp
-să3rĕ
-sắb3ĕ
-sắb3ĭ
-s3ắd
-1sá
-sá4b3ea
-sáb3eā
-sá4b3eo
-sáb3eō
-sá4bi.
-2sá2bī
-2s1ác
-2s1á2d1
-s2áe
-sá2lu
-s2ám
-s2án
-s2ár
-s3átr
-sá4tri
-sá4tro
-sá4tru
-s2áu
-1s2æ
-sæ2a
-sæ2ă
-sæ2á
-sæ2i
-sæ2ŭ
-1sǣ
-sǣ2a
-sǣ2ă
-sǣ2ŭ
-1s2ǽ
-2sb2
-s3bi
-sbī3u
-sbī3v
-s3bu
-s3bŭ
-2scam
-2scas
-2scā
-2scám
-2scás
-1s2cæ
-1s2cǣ
-2sce.
-2sceb
-2scem
-s6ce6naria.
-s6ce6narian
-s6ce6nariaq
-s6ce6nariau
-s6ce6nariav
-s6ce6narium
-s6ce6nariúm
-s6ce6naría
-s6ce6nária.
-s6ce6nárium
-s6cendamus
-s6cendamú
-s6cendant
-s6cendat
-s6cendámus
-s6cendánt
-s6cendát
-s6cendeb
-s6cendem
-s6cender
-s6cendes
-s6cendet
-s4cendē
-s4cendé
-s6cendim
-5s6cendiss
-5s6cendist
-s6cendit
-s6cendím
-5s6cendíss
-5s6cendíst
-s6cendít
-s6cendun
-s6cendún
-s4c5enna
-s4c5enná
-6scens.
-6scensn
-6scensq
-6s7censue
-6scensv
-2sceq
-2scer
-2sces
-2scet
-2sceu
-2scev
-2scēb
-2scēm
-s6cē6nāria.
-s6cē6nārian
-s6cē6nāriaq
-s6cē6nāriau
-s6cē6nāriav
-s6cē6nārium
-s6cē6nāriúm
-s6cē6nārĭă.
-s6cē6nārĭăn
-s6cē6nārĭăq
-s6cē6nārĭău
-s6cē6nārĭăv
-s6cē6nārĭŭm
-s6cē6nārĭŭ́m
-s6cē6nārĭ́ă
-s6cē6nāría
-s6cē6nā́ria.
-s6cē6nā́rium
-s6cē6nā́rĭă.
-s6cē6nā́rĭŭm
-2scēs
-2scēt
-2scĕ.
-2scĕq
-2scĕr
-2scĕt
-2s3cĕu
-2s3cĕv
-2scéb
-2scém
-s6céndant
-s6céndar
-s6céndat
-s6céndens
-s6céndent
-s6cénder
-s6céndes
-s6céndet
-s4céndē
-s6céndim
-s6céndit
-s6céndor
-s6céndun
-2scér
-2scés
-2scét
-2s3ch
-3s4cho
-3s4chŏ
-3s2cia
-3s2ciā
-s2ciá
-3s2ciǣ
-3scid
-5s6ciderā
-5s6ciderī
-5s6ciderō
-5s4cidē
-s7cidis.
-s7cidisn
-s7cidisq
-5scidissē
-5scidistī
-s7cidisu
-s7cidisv
-5s4cidī
-5scidíssē
-5scidístī
-3s2cie
-3s2ciē
-s2cié
-3s2cii
-3s2ciī
-s2cií
-3scind
-3s2cio
-3s2ciō
-s2ció
-s2cir
-4scisa
-4scisá
-4scisæ
-4scisǽ
-4scise
-4scisé
-4scisi
-4scisí
-4sciso
-4scisó
-4scisu
-4scisú
-s4citæ
-s4citǽ
-s2ciu
-s2ciú
-s2civ
-2scīd
-s2cīm
-s2cīr
-s2cīt
-s2cīu
-s2cīv
-3s2cĭā
-3s2cĭă
-3s2cĭǣ
-3s2cĭd
-3s2cĭē
-3s2cĭĕ
-3s2cĭī
-3s2cĭĭ
-3scĭnd
-3s2cĭō
-3s2cĭŏ
-4s5cĭs.
-4s5cĭsn
-4s5cĭsq
-4s5cĭsu
-4s5cĭsv
-3s2cĭŭ
-3s4cĭ́d
-5scĭ́nd
-s2cía
-3scíd
-5s6cíderā
-5s6cíderī
-5s6cíderō
-s2cíe
-s2cíi
-s4címu
-3scínd
-s2cír
-4scísa
-4scísæ
-4scíse
-4scísi
-4scíso
-s4cíta
-s4cítæ
-s4cíti
-s4cíto
-s4cíui
-s4cívi
-2s3c2o
-sco3p
-2scō
-2sc2ŏ
-scŏ3p
-2s3có
-2s3cœ
-3s4crib
-3scrip
-s5cris
-3scrīb
-3scrīp
-s3crīs
-5scrī́b
-5scrī́p
-s5crī́s
-s2crí
-3scríb
-3scríp
-s3crís
-2scun
-s2cū
-2scún
-2sd
-sde3d
-sde2s
-sdē2s
-sdĕ3d
-s3do
-sd4or
-1se
-se3b
-3sec
-se3d2
-sed4i3m
-se4d3i4t
-se5dit.
-se5ditn
-se5ditq
-se5d4itu
-se5ditv
-sedí4t
-se4d5íti
-sed4o
-sed4u
-se2e
-s1eg
-se2gi
-se2gí
-se2gn
-se2iā
-se2ie
-se2ié
-se4in
-se4iq
-se4ir
-se4iv
-se3íp
-3sem
-semi5as
-semi5ás
-se4m5iss
-se4m5íss
-se4mul
-s2en
-3sep
-s2e3q
-s2e1r
-ser2a
-ser2æ3
-ser2ǣ
-se3rē
-ser4i
-seri5c
-se3rī
-se3rō
-ser2u
-3ses
-ses3q
-2se2un
-se2ur
-s1eú
-s2ev
-se2xe
-se2xé
-se2xi
-se3x4ie
-se3x4iē
-1sē
-sēdĕ4c3
-sēdi2
-sē4d3it
-sē5dit.
-sē5ditn
-sē5ditq
-sē5ditu
-sē5ditv
-sēdĭ2
-sē4d3ĭt
-sē5dĭt.
-sē5dĭtn
-sē5dĭtq
-sē5dĭtu
-sē5dĭtv
-sēdĭ́4
-sē6d5ĭ́tĭ
-sēdí2
-sē4d5íti
-2s1ē2g
-sē2ie
-sē2iē
-sē4ir
-s2ēm
-sēmi5ās
-sēmi5ā́s
-sē4m5is.
-sē4m5isn
-sē4m5isq
-sēm5iss
-sē6m5isue
-sē4m5isv
-sēmĭ5ās
-sēmĭ5ā́s
-sē4m5ĭs.
-sē4m5ĭsn
-sē4m5ĭsq
-sēm5ĭss
-sē4m5ĭsu
-sē4m5ĭsv
-sē6m5ĭ́sn
-sē6m5ĭ́sq
-sēm5ĭ́ss
-sē6m5ĭ́su
-sē6m5ĭ́sv
-sē4m5ísn
-sē4m5ísq
-sēm5íss
-sē4m5ísu
-sē4m5ísv
-sē2mū
-sē3ne
-sēs4cō
-sēs3q
-sēs3t
-2s3ḗ2g
-sḗmi3
-sḗ4m5is
-sḗmĭ3
-sḗ4m5ĭs
-1sĕ
-sĕ2ă
-sĕ3d
-sĕd4ĭ3
-sĕp4tĕ́
-sĕ3r2a
-sĕ3ră
-sĕ3r2æ
-sĕ3r2ǣ
-sĕ3rē
-sĕ3r4ĕ
-sĕ3rī
-sĕ3rō
-sĕ3rŏ
-sĕ3rū
-sĕ3rŭ
-sĕ2s
-2sĕŭ
-sĕ2x3ĕ
-sĕx2ĭ
-sĕ́3ră
-sĕ́x4ĭ
-1s2é
-s1é2g
-sé4ir
-3sém
-sémi3
-sé3q
-3sés
-sé3x4ie
-séx4iē
-sg2
-s3ga
-s3gæ3
-s3gǣ
-1si
-s2i2a
-2si2ba
-2si2bá
-2si2be
-2si2bé
-si3bi
-si4bis
-si4bit
-si4bís
-si4bít
-2si2bo
-2si2bó
-si4bun
-si4bún
-s1ie
-3sie.
-s1iē
-3siē.
-2siĕ
-2siéc
-2s3i2ga
-2s3i2gā
-2s3i2gá
-2s3i2gē
-2s3igé
-2s3i2gi
-2s3i2gī
-2s3i2gí
-si4g3n
-2s3i2go
-2s3i2gō
-2s3i2gó
-2s3i2gu
-2s3i2gú
-s3iít
-3s2il
-si5lum
-si5lus
-3sim
-si3mus
-s2in
-sin2ā
-sino3p
-si2o
-sio2s
-2s1ir
-si2re
-si2ré
-si2rí
-si4s3t
-sis5ta
-sis5tā
-sis5ti
-s1iu
-3s2ium
-2siun
-2s3iur
-s2ius
-s2i3uu
-2s3iū
-2siŭ
-2s3iún
-1sī
-2s1ī2b
-s3ī2mi
-s3ī2mĭ
-2s1īr
-sī2re
-sī2rē
-sī2rĕ
-sī2ré
-sī2rī
-sī2rí
-sī4st
-s3ī́2b
-sī́4mi
-sī́4mĭ
-sī́4mur
-sī́4mŭr
-s3ī́r
-sī́4re
-sī́4rē
-sī́4rĕ
-sī́4rī
-sī́4tur
-sī́4tŭr
-1sĭ
-3sĭa
-3sĭā
-3sĭă
-3sĭæ
-3sĭǣ
-s2ĭb
-3sĭē.
-3s4ĭĕ.
-s4ĭĕn
-s4ĭĕq
-s4ĭĕu
-s4ĭĕv
-sĭ2g
-2s3ĭgā
-2s3ĭgă
-2s3ĭgē
-2s3ĭgī
-2s3ĭgĭ
-2s3ĭgō
-2s3ĭgŏ
-2s3ĭgŭ
-3sĭī
-2s1ĭĭ
-s2ĭn
-sĭn2a
-sĭn2ā
-sĭn2æ
-sĭs3
-sĭ4st
-sĭs5tā
-sĭs5tă
-sĭs5tĭ
-sĭ4́g
-4s3ĭ́4gĭ
-2s3ĭ́ĭ
-s2ĭ́n
-sĭ́s3
-1sí
-2sí2ba
-2sí2be
-sí3bi
-sí4bis
-sí4bit
-2sí2bo
-sí4bun
-2s3í2gi
-síg3n
-s2íl
-sí4mur
-sí2nu
-2s1ír
-sí2re
-sí4s3t
-2sj
-s1m2
-2s3me
-2s3mé
-2s1n2
-s3ne
-s3nĕ
-snŭ́3
-1s2o
-so3b2
-so4l3ue
-sol3ué
-so4l3ui
-so4l3uī
-so4l3uí
-3so1n
-so3ni
-son2u
-3so3p
-sos2p
-1sō
-sō4lue
-sō2s3p
-sṓ4s
-1s2ŏ
-sŏ3b2
-sŏl4lĕ
-3sŏn
-sŏs2
-1s2ó
-2sód
-sól2l
-só2s
-sp2
-3sparg
-3spars
-3spărg
-3spărs
-5spắrg
-5spắrs
-3spárg
-3spárs
-spár4ui
-4spe.
-s2pec
-4s3pem
-4spen
-4speq
-spe3r4a
-speras7c
-sper4ā
-spe3r4æ
-spe3r4ǣ
-sper4ǽ
-spe5rem
-spe5req
-spe5rer
-spe5r4es
-spe3r4ē
-sper4é
-s4perg
-speri4b
-sper5i4m
-speri4r
-spe5r4it
-spe4r5ī4m
-spe4rī4r
-sperī́6m
-sperī́6r
-spe4r5í4m
-spe4rí4r
-3s4pern
-spe3r4o
-spe3rō
-sper4ó
-s4pers
-spe3rū
-2spes
-4speu
-4spev
-s2pex
-4spĕ.
-s2pĕc
-4s3pĕm
-4spĕn
-4spĕq
-spĕ3r4a
-spĕ3r4æ
-spĕ3r4ǣ
-spĕ3rē
-spĕ4rĕā
-spĕ4rĕă
-spĕ4r5ĕō
-spĕ5rĕq
-s4pĕrg
-spĕ4r5ī4m
-spĕ4r5ī4r
-spĕrī́6m
-spĕrī́6r
-spĕ4r5ĭĕ
-3s4pĕrn
-spĕ3rō
-spĕ3rŏ
-s4pĕrs
-spĕ3rū
-spĕ3rŭ
-2spĕs
-4spĕu
-4spĕv
-s4pĕ́c
-4spĕ́n
-s6pĕ́rnē
-s6pĕ́rnō
-s6pĕ́rnŭ
-s4pĕ́rs
-4spĕ́s
-s4pĕ́x
-4s3pém
-2spén
-spé4r5ea
-spé4r5eā
-spé4r5eo
-spé4r5eō
-spé4ri.
-s4pérno
-s4pérs
-4spés
-s2péx
-s2phæ
-s2phǣ
-s2phǽ
-4sphen
-4sphén
-s2phr
-s3pi.
-4spia
-s3pib
-s3pin
-s3pio
-s3piō
-s3pió
-s3piq
-s2pir
-2spit
-s3piu
-s3piú
-s3piv
-s2pī
-4spĭă
-s3pĭb
-2spĭt
-s3pĭŭ
-4spĭ́t
-s2píc
-s3pín
-s3píq
-2spít
-s3píu
-s3pív
-2spn
-s2pod
-3s2pol
-3spond
-2s3pos
-2spōs
-1spŏ
-s2pŏd
-s2pŏl
-2spŏr
-2spŏs
-s4pŏ́l
-4spŏ́s
-s2pód
-3s2pól
-2s3pós
-2spub
-s2pue
-s2puē
-s2pué
-s2pui
-s2puī
-s2puí
-s3pus
-s2pŭē
-s2pŭĕ
-s2pŭī
-s2pŭĭ
-s3pŭm
-s3pŭs
-2spúb
-s2púe
-s2púi
-s3pús
-s2qua
-s2quā
-2s3que
-2squĕ
-s3qui
-s1r2
-2s1s2
-s3sa
-s3sā
-s3să
-s3sá
-s3sæ
-s3sǣ
-s3sǽ
-s3se
-ssed4
-sse5di
-s3sē
-ssēd4
-ssē5di
-ssē5dĭ
-ss4ēm
-s3sĕ
-s3sé
-ssér4ui
-ssér4uī
-s3si
-ssi3l4
-s3sī
-s3sí
-ssíl2
-s3su
-ssupe5rí
-2st.
-4s5taté
-s5tatib
-4s5tātē
-4s5tāté
-s5tātib
-s5tātĭb
-st2ă
-s2tág
-st4án
-s5tátib
-ste2ī
-4stemí
-ste3r4a
-ste3rǣ
-ste5re
-ste5ré
-4sterg
-ste3r4i
-ster6i5c
-steri5ue
-steri5v
-ste5rī
-sterī5u
-sterī5v
-5s4terne
-5sternē
-5sterné
-5s4terno
-5s4ternō
-5s4ternó
-5s4ternu
-5s4ternú
-ste3ro
-ste3rō
-4sterr
-4sters
-3s4tete
-3steté
-5s4teti.
-5stetim
-5s4tetin
-5s4tetiq
-5stetit
-5s4tetiu
-5s4tetiv
-5s4tetín
-5s4tetíq
-5stetít
-5s4tetíu
-5s4tetív
-4stēmí
-3s4tēte
-3stētē
-3s4tētĕ
-3stēté
-5stētim
-5stētit
-3stētī
-5stētĭm
-5stētĭt
-5stētít
-5s4tḗte
-5stḗtĕ
-5stḗtim
-5stḗtit
-5stḗtī
-5stḗtĭm
-5stḗtĭt
-stĕ2ī
-stĕ3r4a
-stĕ3rǣ
-stĕ3rĕ
-4stĕrg
-stĕ5rī
-stĕrī5u
-stĕrī5v
-stĕ5r4ĭ
-stĕrĭ5c
-5stĕrnē
-5s4tĕrnĕ
-5s4tĕrnĭ
-5s4tĕrnō
-5stĕrnŏ
-5s4tĕrnŭ
-4stĕrr
-4stĕrs
-stĕ3rŭ
-3s2tĕs
-6stĕ́nta
-6stĕ́ntā
-6stĕ́ntă
-6stĕ́ntæ
-6stĕ́ntǣ
-6stĕ́ntĕ
-6stĕ́ntī
-6stĕ́ntō
-6stĕ́ntū
-4stĕ́rg
-5s6tĕ́rnē
-5s6tĕ́rnĭ
-5s6tĕ́rnō
-5stĕ́rnŏ
-5s6tĕ́rnŭ
-4stĕ́rr
-4stĕ́rs
-4stérg
-stéri5t
-5s4térnē
-5s4térni
-5s4térno
-5s4térnō
-5s4térnu
-4stérr
-4stérs
-3s4téte
-5stéti.
-5stétim
-5stétit
-s2t1h
-2s3tia
-2s3tiā
-2s3tiá
-s2tib
-sti4bi.
-sti4bī
-4s3tibu
-4s3tibú
-2stic
-2s3tim
-3s4timu
-3s4tinā
-3s4tinc
-3s4ting
-3s4tinō
-3s4tinx
-2s3tio
-2s3tiō
-2s3tió
-s2tip
-3s2tir
-s3tis
-s2tit
-3stitǣ
-3stitū
-2s3tiu
-2s3tiú
-3s4tīnc
-3s4tīnx
-s4tī́nc
-2s3tĭā
-s3tĭă
-stĭ4bī
-4s3tĭbŭ
-2stĭc
-2s3tĭm
-3stĭnā
-4stĭnāx
-3s4tĭnă
-4stĭnē.
-4stĭnēn
-3s4tĭng
-3s4tĭnō
-3s4tĭnŏ
-2s3tĭō
-s2tĭp
-3stĭr
-2s3tĭs
-s2tĭt
-3stĭta
-5stĭtā.
-5stĭtān
-3stĭtă
-3stĭtá
-3stĭtæ
-3stĭtǣ
-3stĭtǽ
-5stĭtĕm
-5stĭtĕt
-5stĭtīs
-5stĭtŭm
-2s3tĭŭ
-4s3tĭ́m
-5stĭ́mŭ
-5s4tĭ́ng
-3s4tĭ́r
-4s3tĭ́s
-s3tía
-2stíc
-2s3tím
-3s4tínc
-3s4tíng
-3s4tínx
-s2típ
-s3tís
-s2tl
-2stn
-2stoc
-2stor
-2s3tot
-2stōr
-s3tōt
-st4ṓ
-4stṓr
-2stŏc
-4stŏ́c
-2stóc
-4stóre
-4stóri
-2s3tót
-2stq
-4strac
-4strah
-stra3p4
-4strax
-4stra͞
-4stra͡
-4strāx
-4strā́x
-4s5tră.
-4s5trăm
-s5trănĕ
-4s5trăq
-4s5trău
-4s5trăv
-s5trắm
-4strác
-4stráh
-4stráx
-s3træ
-s3trǣ
-s3trǽ
-s3tri.
-5strict
-3strig
-s5trine
-s3triq
-4s3tris
-s3triu
-s3triú
-s3triv
-4striz
-s3trī.
-s3trīq
-4s3trīs
-s3trīu
-s3trīv
-5strĭct
-3s4trĭē
-3s4trĭĕ
-3strĭg
-3strĭn
-4strĭz
-5strĭ́ct
-5strĭ́gĭ
-5strĭ́gŭ
-5strĭ́n
-5stríct
-5strígi
-5strígu
-5stríng
-5strínx
-s3tríq
-4s3trís
-s3tríu
-s3trív
-4stríz
-2stro
-3s4trom
-3strop
-2strō
-3s4trōm
-5strṓm
-2stró
-3stróm
-4strud
-4strus
-4strūd
-4strūs
-4strū́d
-4strū́s
-s5trŭm
-s5trŭ́m
-4strúd
-4strús
-2strȳ
-2strý
-s4tue.
-s4tuĕ
-2stul
-3s2tup
-s3tur
-2stū
-4stŭl
-3s2tŭp
-3s4tŭ́p
-2stúl
-2stún
-s2túp
-2stúq
-2s3túr
-2stúu
-2stúv
-2stv
-1s2ty
-1stȳ
-1s2tý
-s1u
-1su.
-3s2uam
-3s2uan
-3s2uar
-3s2uas
-3s2uat
-1s2uā
-1s2uá
-1s2u2b1
-su5ber.
-sube4ra
-su5bera.
-su5berane
-su5beraq
-su5berau
-su5berav
-sube4rá
-su5beren
-su5beri.
-su5berib
-su5beriq
-sube6ris
-su5beriu
-su5beriv
-su5beríq
-sube6rís
-su5beríu
-su5berív
-su5bern
-sube4ro
-sube4ró
-su5berq
-su5berue
-su5berv
-sub3es
-sub3ē
-subḗ4
-su5bérib
-su5bérn
-su5bérq
-su5béru
-su5bérv
-sub3és
-subi4
-sub3is
-sub3it
-subí4
-sub3ís
-sub3ō
-1su3d
-2sue.
-3s2ueb
-3s2uem
-3s2uen
-3s2ueq
-3s4uera
-3s4uerā
-3s4uerá
-3s4uere
-3s4uerē
-3s4ueré
-3s4ueri
-3s4uerī
-3s4uerí
-3s4uero
-3s4uerō
-3s4ueró
-3s4ueru
-3s4uerú
-3s2ues
-3s2uet
-3s2ueu
-3suev
-1s2uē
-2suēx
-4suḗx
-3s2uĕn
-3s2uĕq
-3s2uĕu
-3suĕv
-1sué
-s2uéb
-2suéc
-2suéh
-s2uém
-s2uén
-4suérb
-s4uére
-s4uéri
-4suérs
-4suért
-s4uéru
-s2ués
-s2uét
-s2uéu
-2suéx
-1sug
-1s2ui
-s3uir
-s2uī.
-3s2uīn
-3s2uīq
-3s2uīu
-3suīv
-1s2uí
-1s2ul
-2sulm
-1s2um
-su3ma
-sum2e
-su3mun
-1s2un
-3s2uo.
-3s2uon
-3s2uoq
-3s4uor.
-3s4uorn
-3s4uorq
-3s4uoru
-3s4uorv
-3s2uou
-3s2uov
-1s2uō
-3s2uón
-3s2uóq
-3s4uórn
-3s4uórq
-3s4uóru
-3s4uórv
-3s2uóu
-3s2uóv
-3sup
-supere6ri
-supe6re6rí
-supe6res
-supe4rē
-supe6rés
-supe6ri.
-super5im
-supe6riq
-super5it
-superī́6
-supe4rí4
-super5ím
-super5ít
-supé6r5es
-1suq
-1s2ur
-1sus
-su3spi
-su3spí
-1s2ut
-1s2uu
-1s2uŭ
-1s2uú
-1s2uv
-1sū
-sūbe3
-sū3d
-2sūri
-2sūrĭ
-2sūrí
-sū2su
-sū3sum
-1sŭ
-sŭ2b1
-sŭb3ē
-sŭbḗ4
-sŭbī4
-sŭbī́4
-sŭbĭ2
-sŭbĭ́4
-sŭb3ō
-2sŭlm
-sŭpĕ4rē
-sŭ5pĕ́
-sŭs4pĭ
-sŭ́b3
-sŭ́bĭ4
-sŭ́5bĭă
-sŭ́5bĭīs
-sŭ́5bĭō
-sŭ́5bĭŭ
-sŭ́3sp
-1s2ú
-sú2b1
-sú5ber.
-sú5bera.
-súbe6ran
-súbe6ras
-súbe6rat
-sú5bere
-sú5beri.
-súbe6ris
-súbe4ro
-súb3es
-súbi2
-súb3is
-súb3it
-sú3lui
-sú3luī
-súm2i
-sú1r
-sú3sp
-2sv
-s3ve
-s3vĕ
-1sy
-sy2lu
-1sȳ
-1sý
-1t
-t2a
-tab2
-ta4c3ue
-tad2
-2ta2g
-ta4g3n
-ta3go
-ta2i
-ta3ma
-ta3q
-tasce4
-tascé4
-ta3s2p
-tas5te
-ta2s3u
-5tatem
-5tates
-3tatém
-3tatés
-t2ā
-tā5bun
-2tāg
-5tātem
-5tātĕm
-5tātĕ́
-5tā́tē
-tăd2
-2tă2g
-tă4gĭ
-tă3gŏ
-tămĕ4n
-t2ăn
-tă3rĕ
-t2ăs
-tă3s2p
-tăs3pĕ
-tăs3pĭ
-tăs3t
-tăs5tĕ
-tăs4trŏ
-tá4c3ue
-tá2ge
-tá2s3u
-5tátem
-5tátes
-t2æ
-t2ǣ
-tǽ2cu
-2tc
-t2e
-te1a
-te2a͞
-te2a͡
-te4gn
-te3go
-te3gō
-te3gr
-te3iss
-te3it
-te2iu
-te1ī
-te3íp
-te3íss
-te3í2t
-te4nim
-te4nt
-te5ra.
-te3rab
-te5rami
-ter3ap
-te5raq
-te5rara
-te5rará
-te5rarem
-te5raren
-te5rarer
-te5rares.
-te5raresn
-te5raresq
-te5raresu
-te5raresv
-te5raret
-te5rarém
-te5rarén
-te5rarér
-te5rarésn
-te5rarésq
-te5rarésu
-te5rarésv
-te5rarét
-te5rari
-te5raro
-te5raró
-te5raru
-te5rarú
-te3ras
-te3rat
-te5rau
-te5rav
-ter3a͞
-ter3a͡
-ter5ā́c
-te3r4æq
-te3r4ǣq
-te4r3ea
-te4r3eā
-te4r3eá
-te6r5e6mi.
-te6r5emine
-te6r5e6miq
-te6r5e6miu
-te6r5e6miv
-te4r5e4mí
-te4r5e4mo
-te4r5e4mō
-te4r5e4mó
-te4r3eo
-te4r3eō
-te4r3eó
-te4r3eq
-te4re4ra
-te4re4rā
-te4re4rá
-te6r5erim
-te6r5erit
-te6r5e6rít
-te4re4ro
-te4re4rō
-te4re4ró
-te6r5erun
-te4re4rú
-ter5est
-te4rēmē
-te4r5ē4mī
-te4rēmí
-te3rēu
-te3rēv
-te6r5ḗ6mī
-te4r5é4me
-te6r5é6mi.
-te6r5é6mit
-te4r3éq
-te6r5é6rim
-te6r5é6rit
-ter5ést
-ter5ibo
-ter5ibun
-ter5ibún
-ter5ice
-te3rid
-ter5iēn
-ter5ime
-ter5imē
-ter5imé
-ter4imi
-ter5imo
-ter5imō
-ter5imó
-ter4imu
-ter4imú
-ter4ine
-teri5ni
-ter4iq
-teri4r
-ter4is.
-ter4isn
-ter4isq
-te4r5iss
-te4r5ist
-ter4isu
-ter4isv
-ter4it.
-ter5i6ta.
-ter5i6tae
-ter5i6tam
-ter5i6tan
-ter5i6taq
-ter5i6tar
-ter5i6tau
-ter5i6tav
-ter5i6ta͞
-ter5ita͡
-ter5i6tā.
-ter5i6tān
-ter5i6tāq
-ter5i6tār
-ter5i6tāu
-ter5i6tāv
-ter5i6táe
-ter5i6tám
-ter5i6tán
-ter5i6táq
-ter5i6tár
-ter5i6táu
-ter5i6táv
-ter5itæ
-ter5i4tǣ
-ter5itǽ
-ter4ite
-ter5i6ti.
-ter5i6tin
-ter5itio
-ter5itiō
-ter5itió
-ter5i6tiq
-ter6itis
-ter5i6tiu
-ter5i6tiv
-ter5i4tī
-ter5i6tín
-ter5i6tíq
-ter6itís
-ter5i6tíu
-ter5i6tív
-ter4itn
-ter6ito.
-ter6iton
-ter6itoq
-ter6itor.
-ter6itorn
-ter6itorq
-ter6itorue
-ter5itorum
-ter5i6torú
-ter6itorv
-ter5i6tos
-ter6itot
-ter6itou
-ter6itov
-ter6itō.
-ter6itōn
-ter6itōq
-ter5i6tōr
-ter5i6tōs
-ter6itōu
-ter6itōv
-ter6itṓn
-ter6itṓq
-ter5i6tṓr
-ter5i6tṓs
-ter6itṓu
-ter6itṓv
-ter6itón
-ter6itóq
-ter6itórn
-ter6itórq
-ter6itórue
-ter5itórum
-ter6itórv
-ter5i6tós
-ter6itót
-ter6itóu
-ter6itóv
-ter4itq
-teri4tu
-ter5itu.
-ter5itum
-ter5itun
-ter5ituq
-ter5itur
-ter6itur.
-ter6iturn
-ter6iturq
-ter6iturue
-ter6iturv
-ter5itus
-ter5ituu
-ter5ituv
-ter5i4tū
-ter5i6túm
-ter5i6tún
-ter5i6túq
-ter5i6túra
-ter5itúræ
-ter5i6túre
-ter5i6túri
-ter6itúrn
-ter5i6túro
-ter6itúrq
-ter6itúrue
-ter5itúrum
-ter5itúrus
-ter6itúrv
-ter5i6tús
-ter5i6túu
-ter5i6túv
-ter4itv
-teri4u
-ter5iue
-ter3i4v
-te4r5ī4mi
-te3r4īn
-ter6īne
-ter4īq
-ter6īqu
-te4rī4r
-te4r5ī4te
-te4r5ī4to
-te4r5ī4tō
-te4r5ī4tó
-te4r5ī4tu
-te4r5ī4tú
-te4r3ī4u
-ter6īue.
-te4r3ī4v
-ter6īve.
-terī́6mi
-ter6ī́n
-ter6ī́q
-te4rī́4r
-terī́6te
-terī́6to
-terī́6tō
-terī́6tu
-ter6ī́ue.
-terī́6ui
-terī́6uī
-ter6ī́ve.
-terī́6vi
-terī́6vī
-te4r5íme
-te6r5í6mur
-te4rí4r
-te4r5íss
-te4r5íst
-te4r5í4ta
-te6r5í6te.
-ter5ítio
-te4r5í4to
-te6r5ítur
-ter6íue.
-ter5í6uer
-te4rí4ui
-ter6íve.
-ter5í6ver
-te4rí4vi
-te4rn
-4ternām
-4ternē
-4terné
-4ternim
-4terním
-4ternít
-te3rop
-te5rorn
-4terot
-4terōt
-te3rōu
-te3rōv
-te4róni
-4terót
-te4rq
-te4rr
-te4rt
-ter3uē
-ter3uí
-ter3ū2
-te4rv
-te2sq
-2t3ess
-4test.
-te5s4ta.
-te5stabam.
-te5stabamn
-te5stabamq
-te5stabamue
-te5stabamus
-te5stabamús
-te5stabamv
-te5stabant.
-te5stabantn
-te5stabantq
-te5stabantue
-te5stabantv
-te5stabas
-te5stabat.
-te5stabati
-te5stabatí
-te5stabatn
-te5stabatq
-te5stabatue
-te5stabatv
-te5stabámn
-te5stabámq
-te5stabámue
-te5stabámus
-te5stabámv
-te5stabántn
-te5stabántq
-te5stabántue
-te5stabántv
-te5stabás
-te5stabáti
-te5stabátn
-te5stabátq
-te5stabátue
-te5stabátv
-te5stabimus
-te5stabimús
-te5stabis
-te5stabit.
-te5stabiti
-te5stabití
-te5stabitn
-te5stabitq
-te5stabitue
-te5stabitv
-te5stabís
-te5stabít
-te5stabo.
-te5stabon
-te5staboq
-te5stabou
-te5stabov
-te5stabón
-te5stabóq
-te5stabóu
-te5stabóv
-te5stabunt.
-te5stabuntn
-te5stabuntq
-te5stabuntue
-te5stabuntv
-te5stabúntn
-te5stabúntq
-te5stabúntue
-te5stabúntv
-te5stamus
-te5stamús
-te5stane
-te5stant.
-te5stantn
-te5stanto.
-te5stanton
-te5stantoq
-te5stantou
-te5stantov
-te5stantō
-te5stantón
-te5stantóq
-te5stantóu
-te5stantóv
-te5stantq
-te5stantue
-te5stantv
-te5s4taq
-te5starem.
-te5staremn
-te5staremq
-te5staremue
-te5staremus
-te5staremús
-te5staremv
-te5starent.
-te5starentn
-te5starentq
-te5starentue
-te5starentv
-te5stares
-te5staret.
-te5stareti
-te5staretí
-te5staretn
-te5staretq
-te5staretue
-te5staretv
-te5starémn
-te5starémq
-te5starémue
-te5starémus
-te5starémv
-te5staréntn
-te5staréntq
-te5staréntue
-te5staréntv
-te5starés
-te5staréti
-te5starétn
-te5starétq
-te5starétue
-te5starétv
-te5stat.
-te5statn
-te5statot
-te5statót
-te5statq
-te5statue
-te5statv
-te5s4tau
-te5s4tav
-te5s4tā.
-te5stābam
-te5stābant.
-te5stābantn
-te5stābantq
-te5stābantue
-te5stābantv
-te5stābat
-te5stābāmus
-te5stābāmús
-te5stābās
-te5stābāti
-te5stābātí
-te5stābā́mus
-te5stābā́s
-te5stābā́ti
-te5stābám
-te5stābántn
-te5stābántq
-te5stābántue
-te5stābántv
-te5stābát
-te5stābimus
-te5stābimús
-te5stābis
-te5stābit.
-te5stābiti
-te5stābití
-te5stābitn
-te5stābitq
-te5stābitue
-te5stābitv
-te5stābís
-te5stābít
-te5stābō
-te5stābunt.
-te5stābuntn
-te5stābuntq
-te5stābuntue
-te5stābuntv
-te5stābúntn
-te5stābúntq
-te5stābúntue
-te5stābúntv
-te5stāmus
-te5stāmús
-te5stāne
-te5s4tāq
-te5stārem
-te5stārent.
-te5stārentn
-te5stārentq
-te5stārentue
-te5stārentv
-te5stāret
-te5stārēmus
-te5stārēmús
-te5stārēs
-te5stārēti
-te5stārētí
-te5stārḗmus
-te5stārḗs
-te5stārḗti
-te5stārém
-te5stāréntn
-te5stāréntq
-te5stāréntue
-te5stāréntv
-te5stārét
-te5stātōt
-te5stātṓt
-te5s4tāu
-te5s4tāv
-te5stā́bam
-te5stā́ban
-te5stā́bat
-te5stā́bā
-te5stā́bimus
-te5stā́bis
-te5stā́bit.
-te5stā́biti
-te5stā́bō
-te5stā́bu
-te5stā́mus
-te5stā́ne
-te5stā́q
-te5stā́rem
-te5stā́rent
-te5stā́ret
-te5stā́rē
-te5stā́u
-te5stā́v
-te5stábam
-te5stában
-te5stábas
-te5stábat
-te5stábimus
-te5stábis
-te5stábit.
-te5stábiti
-te5stábo.
-te5stábu
-te5stámus
-te5stáne
-te5stántn
-te5stánto.
-te5stántō
-te5stántq
-te5stántue
-te5stántv
-te5s4táq
-te5stárem
-te5stárent
-te5stáres
-te5stáret
-te5státn
-te5státq
-te5státue
-te5státv
-te5s4táu
-te5s4táv
-te5stemus
-te5stemús
-te5stent.
-te5stentn
-te5stentq
-te5stentue
-te5stentv
-te6ster
-te5stet.
-te5steti
-te5stetí
-te5stetn
-te5stetq
-te5stetue
-te5stetv
-te5stēmus
-te5stēmús
-tes4tēt
-te5stēti
-te5stētí
-te5stḗmus
-te5stḗti
-te5stémus
-te5sténtn
-te5sténtq
-te5sténtue
-te5sténtv
-te5stéti
-te5stétn
-te5stétq
-te5stétue
-te5stétv
-tes3ti
-4testn
-4t3estō
-4testq
-4t3estu
-4testv
-te2su
-tete5r
-2teté
-4tetim
-4tetit
-4tetít
-te2un
-te3x4e
-tex2i
-tex2ī
-tex2o
-tex2ó
-tex2u
-tex2ú
-t2ē
-tē2ie
-tē2iē
-tē3ne
-tēte3
-2tētē
-2tēté
-4tētim
-4tētit
-2tētī
-4tētĭm
-4tētĭt
-4tētít
-4tḗtī
-t2ĕ
-3tĕa
-3tĕă
-3tĕæ
-3tĕǣ
-3tĕē
-3tĕĕ
-tĕ3gō
-tĕ3gr
-3tĕ1ī
-tĕ3ĭ
-3tĕl
-t3ĕ2nĭ
-3tĕō
-3tĕ1ŏ
-tĕ3q
-t4ĕr.
-tĕr5ā́c
-tĕ5ră.
-tĕ3răr
-tĕr5ắp
-tĕ3r4æq
-tĕ3r4ǣq
-tĕ4rēmē
-tĕ4r5ē4mī
-tĕ6rēmĭ́
-tĕ3rēu
-tĕ3rēv
-tĕ6r5ḗ6mī
-t4ĕrĕ
-tĕ4r3ĕā
-tĕ4r3ĕă
-tĕ3rĕn
-tĕ4r3ĕō
-tĕ4r3ĕŏ
-tĕ4r5ĕ4rā
-tĕ4r5ĕ4ră
-tĕ4rĕ4rĭ
-tĕr5ĕrĭm
-tĕr5ĕrĭt
-tĕr5ĕrĭ́t
-tĕ4r5ĕ4rō
-tĕ6r5ĕ́6rĭ
-t4ĕrī
-tĕ3rī.
-tĕ3rīn
-tĕ3rīq
-tĕ4r3ī4r
-tĕ3rīs
-tĕ4r3ī4u
-tĕ4r3ī4v
-tĕrī́4r
-tĕr3ĭē
-tĕ4r3ĭĕ
-tĕ4r5ĭ4mē
-tĕ4r5ĭ4mō
-tĕ4r5ĭ4ta
-tĕr5ĭ6tā.
-tĕr5ĭ6tān
-tĕr5ĭ6tāq
-tĕr5ĭ6tār
-tĕr5ĭ6tāu
-tĕr5ĭ6tāv
-tĕ4r5ĭ4tă
-tĕ4r5ĭ4tá
-tĕ4r5ĭ4tæ
-tĕ4r5ĭ4tǣ
-tĕ4r5ĭ4tǽ
-tĕ4r5ĭ4tī
-tĕ6r5ĭ6tĭō
-tĕ6r5ĭ6tōr
-tĕ6r5ĭ6tōs
-tĕ6r5ĭ6tṓr
-tĕ6r5ĭ6tṓs
-tĕ4r5ĭ4tū
-tĕ6r5ĭ6tŭm
-tĕ6r5ĭ6tŭs
-tĕ6r5ĭ6tŭ́m
-tĕ6r5ĭ6tŭ́s
-tĕr5ĭ́ĕr
-tĕ6r5ĭ́mĕ
-tĕ6r5ĭ́6tă
-tĕ6r5ĭ́tĭ
-t4ĕrn
-4tĕrnām
-4tĕrnăr
-4tĕrnăt
-4tĕrnē
-4tĕrnŏ
-4tĕrōt
-t4ĕ3rŏ
-t4ĕrq
-t4ĕru
-tĕr3ū2
-tĕ3rŭs
-t4ĕrv
-2t3ĕss
-4t3ĕst.
-tĕ5stā.
-tĕ5stābāmŭs
-tĕ5stābāmŭ́s
-tĕ5stābās
-tĕ5stābātĭ
-tĕ5stābā́mŭs
-tĕ5stābā́s
-tĕ5stābā́tĭ
-tĕ5stābăm
-tĕ5stābănt.
-tĕ5stābăntn
-tĕ5stābăntq
-tĕ5stābăntu
-tĕ5stābăntv
-tĕ5stābăt
-tĕ5stābắm
-tĕ5stābắntn
-tĕ5stābắntq
-tĕ5stābắntu
-tĕ5stābắntv
-tĕ5stābắt
-tĕ5stābĭmŭs
-tĕ5stābĭmŭ́s
-tĕ5stābĭs
-tĕ5stābĭt.
-tĕ5stābĭtĭ
-tĕ5stābĭtn
-tĕ5stābĭtq
-tĕ5stābĭtu
-tĕ5stābĭtv
-tĕ5stābĭ́s
-tĕ5stābĭ́t
-tĕ5stābō
-tĕ5stābŭnt.
-tĕ5stābŭntn
-tĕ5stābŭntq
-tĕ5stābŭntu
-tĕ5stābŭntv
-tĕ5stābŭ́ntn
-tĕ5stābŭ́ntq
-tĕ5stābŭ́ntu
-tĕ5stābŭ́ntv
-tĕ5stāmŭs
-tĕ5stāmŭ́s
-tĕ5stānĕ
-tĕ5stāq
-tĕ5stārēmŭs
-tĕ5stārēmŭ́s
-tĕ5stārēs
-tĕ5stārētĭ
-tĕ5stārḗmŭs
-tĕ5stārḗs
-tĕ5stārḗtĭ
-tĕ5stārĕm
-tĕ5stārĕnt.
-tĕ5stārĕntn
-tĕ5stārĕntq
-tĕ5stārĕntu
-tĕ5stārĕntv
-tĕ5stārĕt
-tĕ5stārĕ́m
-tĕ5stārĕ́ntn
-tĕ5stārĕ́ntq
-tĕ5stārĕ́ntu
-tĕ5stārĕ́ntv
-tĕ5stārĕ́t
-tĕ5stātōt
-tĕ5stātṓt
-tĕ5stāu
-tĕ5stāv
-tĕ5stā́bā
-tĕ5stā́băm
-tĕ5stā́băn
-tĕ5stā́băt
-tĕ5stā́bĭmŭs
-tĕ5stā́bĭs
-tĕ5stā́bĭt.
-tĕ5stā́bĭtĭ
-tĕ5stā́bō
-tĕ5stā́bŭ
-tĕ5stā́mŭs
-tĕ5stā́nĕ
-tĕ5stā́q
-tĕ5stā́rē
-tĕ5stā́rĕm
-tĕ5stā́rĕnt
-tĕ5stā́rĕt
-tĕ5stā́u
-tĕ5stā́v
-tĕ5stănt.
-tĕ5stăntn
-tĕ5stăntō
-tĕ5stăntq
-tĕ5stăntu
-tĕ5stăntv
-tĕ5stăt
-tĕ5stắntn
-tĕ5stắntō
-tĕ5stắntq
-tĕ5stắntu
-tĕ5stắntv
-tĕ5stắt
-tĕ5stēmŭs
-tĕ5stēmŭ́s
-tĕ5stētĭ
-tĕ5stḗmŭs
-tĕ5stḗtĭ
-tĕ5stĕnt.
-tĕ5stĕntn
-tĕ5stĕntq
-tĕ5stĕntu
-tĕ5stĕntv
-tĕ6stĕr
-tĕ5stĕt
-tĕ5stĕ́ntn
-tĕ5stĕ́ntq
-tĕ5stĕ́ntu
-tĕ5stĕ́ntv
-tĕ5stĕ́t
-4t3ĕstn
-4t3ĕstō
-4t3ĕstq
-4t3ĕstu
-4t3ĕstv
-2tĕtr
-3tĕŭ
-tĕx2ă
-tĕx2ĕ
-tĕx2ī
-tĕx2ĭ
-tĕx2ŏ
-tĕx2ŭ
-tĕ́3ĭ
-tĕ́5răr
-tĕ́4r5ĕā
-tĕ́4r5ĕă
-tĕ́4r5ĕō
-tĕ́4r5ĕŏ
-tĕ́6r5ĕ6rā
-tĕ́6r5ĕ6ră
-tĕ́6r5ĕ6rĭt
-tĕ́6r5ĕ6rō
-tĕ́6r5ĭēn
-tĕ́6r5ĭ6ta
-tĕ́r5ĭ6tā.
-tĕ́6r5ĭ6tă
-tĕ́6r5ĭ6tæ
-tĕ́6r5ĭ6tǣ
-tĕ́6r5ĭ6tī
-tĕ́6r5ĭ6tōs
-tĕ́6r5ĭ6tū
-tĕ́6r5ĭ6tŭm
-tĕ́6r5ĭ6tŭs
-6tĕ́rnăr
-6tĕ́rnăt
-6tĕ́rnĕr
-6tĕ́rnĕt
-4tĕ́rnŏ
-5tĕ́stā
-tĕ́5stā.
-tĕ́5s4tă
-tĕ́5stĕnt
-tĕ́5stĕt
-tĕ́x4ĭ
-té4gn
-té3iī
-té4r3ea
-té4r3eā
-té4r3eo
-té4r3eō
-té4r5era
-té4r5e4rā
-té6r5erit
-té4r5e4ro
-té4r5erō
-tér5ien
-tér5iēn
-té4r5im.
-téri4ta
-tér5ita.
-tér5itae
-tér5itam
-tér5ita͞
-tér5ita͡
-tér5i6tā.
-té4r5i4tæ
-té4r5i4tǣ
-té6r5i6ti.
-té4r5i4tī
-té6r5i6tos
-té6r5i6tōs
-té6r5i6tu.
-té6r5i6tum
-té6r5i6tus
-té4r5i4tū
-té2rī
-4térnar
-4térnat
-4térner
-4térnes
-4térnet
-té2ru
-2t3éss
-5tésta
-té5s4ta.
-té5stant
-té5s4tat
-5téstā
-té5s4tā.
-té5stent
-té5s4tet
-4téti.
-4tétim
-4tétit
-téx2i
-téx2u
-2tf
-2tg
-2th.
-3t2he
-the2i
-3t2hē
-thē2i
-3t2hĕ
-3t2hé
-3thī
-3thĭă
-3thĭī
-3thĭō
-3thĭŭ
-3thl
-2thm
-2thn
-3tho
-tho3sp
-3thō
-thŏ3sp
-3thó
-2thp
-3thr
-3thu
-3thú
-t2i
-tiad2
-3tiae
-3tia͞
-3tia͡
-ti2á
-ti4ám
-3tiæ
-3tiǣ
-3tiǽ
-ti3b
-tibe3
-t3ibi.
-t3ibī
-3tic
-tic4e
-ti5cen
-4tiche
-ti4c3ue
-ti4d3ea
-ti4d3eā
-ti4d3eo
-ti4d3eō
-2tigi
-2till
-3tilo
-3tiló
-ti3m2
-ti4mn
-ti4mq
-ti4mv
-tin2ā
-5tināx
-tin2u
-ti2o
-ti3q
-ti2s
-ti3s2p
-ti4sper
-ti3sta
-ti3stā
-ti3s4te
-ti3s4tē
-ti3s4té
-ti3s4to
-ti3s4tō
-ti3s4tó
-ti3s4tr
-ti3t2
-ti4tn
-ti4tq
-ti4tv
-ti3uu
-2tīgi
-2tīgĭ
-2tīp
-tī3q
-tī́3q
-t2ĭ
-3tĭa
-3tĭá
-3tĭæ
-3tĭǣ
-3tĭǽ
-2t3ĭbī
-4tĭchĕ
-3tĭcŭ
-tĭ4d3ĕā
-tĭ4d3ĕō
-2tĭll
-3tĭlŏ
-tĭn2ā
-tĭ2ŏ
-2tĭr
-tĭ3rĭ
-tĭ3s2p
-tĭ4spĕr
-tĭ3stā
-tĭs4tām
-tĭs4tār
-tĭ3stă
-tĭs4tăt
-tĭ3s4tē
-tĭ3s4tĕ
-tĭ3s4tō
-tĭ3s4tŏ
-tĭ3s4tr
-3tĭt.
-3tĭ́cŭ
-tĭ́4d5ĕā
-tĭ́4d5ĕō
-4tĭ́mŭ
-tĭ́3sp
-tĭ́5s6tăt
-tĭ́5s4tē
-tĭ́5s4tĕ
-tĭ́5stĭt
-tĭ́5s4tō
-tĭ́5s4tŏ
-tĭ́5str
-4tĭ́tă
-4tĭ́tŭ
-tí3b
-3tíc
-4tíche
-tí4c3ue
-tí4d3ea
-tí4d3eā
-tí4d3eo
-tí4d3eō
-4tígie
-3tílo
-tí1m
-4tímul
-tín4uī
-tí3q
-2tírp
-tí2s
-tí3sp
-tís4tat
-tí3s4te
-tí3s4tē
-tí3s4to
-tí3s4tō
-tí3s4tr
-tís3u
-4títer
-4títib
-4títim
-4títua
-4títuā
-4títuē
-4títui
-4tí3tuī
-4títuo
-4títuō
-tí3tur
-4títuu
-t2l
-t3li
-t3lī
-t3lĭ
-t3lí
-2t1m2
-tme1
-tmĭ2
-2t1n
-t3ne
-t2o
-to3b2
-to4cue
-to2ia
-to2iá
-to2iæ
-to2iǽ
-to2ie
-to2ié
-to2ii
-to2ií
-to2í
-2tola
-tom2
-ton3g4
-tongæ3
-tongǣ́5
-tongǽ3
-to3ni
-to5ni5c
-tons3t
-ton2u
-2t3o2pe
-to3rī
-tos3t
-t2ō
-tō3d
-tō2ia
-tō2iā
-tō2iá
-tō2iæ
-tō2iǣ
-tō2iǽ
-tō2ie
-tō2iē
-tō2iī
-tō2iō
-tō2ĭ
-2tōl
-2tṓl
-t2ŏ
-tŏb2
-tŏm2
-tŏn3g4
-tŏngæ3
-tŏngǣ́5
-tŏngǽ3
-2t3ŏpĕ
-tŏ3rĕ
-tŏ3rī
-tŏ́3rĭ
-tó2cu
-2tólo
-tó2pe
-2tp
-tpo3
-tpó1
-2tq
-t3qu
-t2r2
-trab2
-tra3d4
-tradi5ce
-tradi5cé
-tradi5ci
-tradi5cí
-trado3
-tra3e4t
-tra3g
-tra3i4
-3tral
-tra5ma
-tra5má
-4trang
-4tratē
-trā3ĭ
-tră3bŭ
-trăd2
-tră3g
-4trăng
-tră3s2
-3trăt
-4trătē
-4trắng
-trắ5st
-trá3i
-3trál
-4tráng
-trá3p2
-trá2s3
-træ2ă
-trǣ2ă
-3tre.
-tre2i
-tre5mi
-tre5mo
-2trep
-3treq
-3treu
-3trev
-trē2i
-trē3m
-trĕ2ĭ
-2trĕp
-4trĕ́p
-2trép
-3tria
-3trib
-tri5ci
-4trict
-4trida
-4tridá
-4tride
-4tri5do
-4tridó
-2trig
-3trige
-3trigé
-3trii
-3triī
-3trií
-2tr4in
-tri3ni
-3trio
-3triō
-3trió
-3trit
-2trīd
-2trīg
-4trīnx
-tr4ī́
-4trī́d
-4trī́g
-4trī́nx
-3trĭă
-3trĭb
-4trĭct
-4trĭgĭ
-4trĭgŭ
-2tr4ĭn
-3trĭs
-3trĭt
-3trĭŭ
-4trĭ́ct
-4trĭ́gĭ
-4trĭ́gŭ
-4trĭ́n
-3tría
-4tríct
-4trída
-4trído
-4trídu
-4trígi
-4trígu
-4tríng
-4trínx
-trí5tur
-tro3e
-4troph
-trō4iē
-4trṓm
-4trŏph
-trŏ2s
-tró3ea
-tró3eā
-2tróm
-4tróph
-4truct
-3trud
-3trus
-2trux
-4trūct
-3trūd
-3trūs
-2trūx
-3trū́d
-3trū́s
-4trū́x
-2trŭĭ
-2trŭŏ
-2trúc
-3trúd
-2trúi
-3trús
-2trúx
-2t1s2
-2tt2
-tte2i
-tte5re
-ttē2i
-ttĕ3r
-3tua
-3tuā
-3tuá
-tu2cu
-tu2d3u
-2t1ue
-t2uea
-t2ueā
-t2ueá
-t2ueb
-3t2uem
-3t2uen
-tu3enn
-t2ueo
-t2ueó
-3t2ueq
-t2uer
-3tuer.
-3tuere
-3tueri
-3tuerí
-3tuern
-3tuerq
-3tueru
-3tuerv
-3t2ues
-3t2uet
-3t2ueu
-3tuev
-3tuē
-2t1uĕ
-3tué
-tu3énn
-2t3uic
-3tuīs
-3tul
-tule4i
-tu3ma
-tum2e
-tu3m2ī
-3t2uo
-tuo2r
-3tuō
-3tuó
-tupe3r4
-ture5ia.
-ture5iaq
-ture5iau
-ture5iav
-ture5ii
-ture5ií
-ture5io
-ture5ió
-turé3
-tu2sp
-3tut
-3tuun
-tū2c1
-tū2su
-tū3sum
-tū3sus
-3tŭa
-3tŭā
-3tŭă
-3tŭæ
-3tŭǣ
-3tŭc
-3tŭē
-3tŭĕ
-3tŭl
-tŭ3mă
-tŭm2ĕ
-tŭ3m2ī
-tŭ3mĭ
-tŭ3mŏ
-3tŭō
-3tŭŏ
-tŭpĕ3r
-tŭ2s
-tŭ́3mĭ
-tú2cu
-tú2du
-túm2i
-2tv
-t3ve
-2tȳ
-tý3l
-uab2
-uab4u
-1uac
-ua3d2
-uad4o
-uae4st
-2uaev
-u2a3g
-ual4u
-u2a1m
-u2an
-ua3p2
-u2a3q
-u2ar
-u2as
-uas3p
-uas3t
-uas5te
-uas5tr
-ua4sui
-ua4suí
-u2au
-2uav
-ua2x3
-ua͞e4st
-ua͡e4st
-u2ā
-1uād
-2uāv
-2uā́v
-u2ă
-uă3d2
-uă3g
-uă2m1
-uăs3p
-uăs5tr
-2uăv
-uắs3
-1uác
-1uád2
-u2ág
-u2ám
-u2án
-uá3p2
-u2ár
-uás3p
-uá4sui
-u2áu
-2uáv
-uá2x
-2uæd
-uæ2dī
-uæ2dí
-u2æq
-uæ2s3t
-u2æu
-2u2æv
-u2ǣq
-uǣ2s3t
-u2ǣu
-2u2ǣv
-uǣ́2d
-uǣ́3r
-2u1ǽ2d
-u2ǽq
-uǽ2s3t
-u2ǽu
-u2ǽv
-uba3g
-uba4i
-ub2ă
-ubá3g
-ube2i
-ube4rā
-u5bere.
-u5bereq
-u5bereu
-u5berev
-ub4eris
-ub4erís
-ube4rō
-u5berum
-ubē2r
-ubé4ia.
-ubé4iae
-ubé4iam
-ubé4ias
-ubé4ia͡
-ubé4iæ
-ubé4ii
-u3bére
-2ubi
-ubi2b
-ub3ice
-ub4ii.
-ub4iin
-ub4iiq
-ub4iiu
-ub4iiv
-ub4iín
-ub4iíq
-ub4iíu
-ub4iív
-u3biō
-u3bió
-ub2iq
-ubi2u
-ub4iue.
-u3bium
-u3biú
-ubi2v
-ub4ive.
-u2bī2
-ub2ī4n
-ub2īq
-ub4īue.
-ub4īve.
-ubī́2
-ub4ī́4n
-ub4ī́q
-ub6ī́ue.
-ub6ī́ve.
-2ubí
-ubí2b
-ubí2c
-ub2íq
-ub3íss
-ub3íst
-ub4íue.
-ub4íve.
-u2bl
-ubo2
-u2bō
-ubŏ3
-u3b2œ
-u2b1r
-ub3s2
-ub5ste
-u3b2ul
-u2b1ū
-u3búl
-2uc
-u3ca
-u3cá
-u3ce
-u3cé
-u3ci
-u3cí
-u3c2o
-uco2i
-uco5n4i5
-ucon4í
-u3có
-u3cr
-u2c3ue
-u3cun
-u3cú
-2ud
-ud2ac
-u3dam.
-u3damq
-u3damv
-u2d3ap
-u3da͡
-ud2ā
-u2dăp
-u3dámn
-u3dámq
-u3dámv
-u3dæ
-u3dǽ
-u3de.
-u3dene
-u3deq
-ude2s3
-ude6ste
-u3deu
-u3dev
-udē2s
-u3déne
-u3déq
-u3déu
-u3dév
-u3d2i
-udi4g3
-u4diso
-u4disó
-u3dí
-ud2o
-ud4or
-u3dorú
-u3dos
-ud2ŏ
-udŏ3p
-u3dós
-ud2u
-u3dú
-u2e1
-ue2a
-ue3b
-ue3d2
-ued4i
-ue2e
-2uef
-ue2ī
-ue2í
-4uel.
-2ueln
-2uelq
-2uelu
-2uelú
-2uelv
-ue2ma
-ue2má
-ue4mui
-ue4m3uí
-ue4n3ea
-ue4n3eá
-ue4n3eo
-ue4n3eó
-ue4n3ii
-ue4n3ií
-ue4n3íi
-2uenn
-ue2o
-ue2ō
-uer2æ3
-ue3r4e
-ue5rem
-uere5me
-uere5mé
-uer6e5mi
-uere5mí
-ue3r4ē
-ue5rē5m
-ue3rī
-3uert
-ue2s
-ue3sá
-ues3c
-ue3sí
-ue4s3p
-ues5pe
-ue4s3t
-ues5tā
-ues5te
-ues5tr
-uete5re
-uete5ri
-ueteri5u
-uete5rī
-ueterī5u
-ueterī́7
-ue2un
-2uev
-ue3x2
-uex4e
-uē3b
-3uēnē
-3uēné
-3uēni
-uē4n3iī
-3uēnī
-uē4nīs
-uē4n3ĭī
-3uēní
-uē3r
-uēs3t
-3uēx
-uḗ4n5iī
-uḗ4n5ĭī
-3uḗx
-u2ĕ
-uĕ2ă
-uĕ2ĭ
-uĕ2m3ă
-uĕ3ră
-uĕ3r4ē
-uĕ5rē5m
-uĕ3r4ĕ
-uĕ3rī
-uĕ3rŏ
-uĕ3rŭ
-uĕ2s3
-uĕ4sp
-uĕs5pĕ
-uĕs5tĕ
-2uĕv
-uĕ3x2
-uĕ́3ră
-uĕ́3rĕ
-uĕ́x2
-u2é
-1uéc
-2uéf
-1uéh
-ué1i
-1uél
-ué4n3eo
-3uéni
-ué4n3ii
-2uénn
-2uéra
-2uéro
-3uérs
-3uért
-ués3
-2uév
-1uéx2
-2uf
-2ug
-u3g2a
-u3g2æ3
-u3g2ǣ
-u3g2l
-u2g3n
-u1h
-u3hœ
-ui2a
-u2ic
-3uice
-ui4c5énn
-1uif
-uile3i
-uilé3i
-u2in
-uin2ā
-ui3oc
-ui3o2p
-ui3óp
-ui3p2t
-ui3r4i
-ui3r4í
-u2is
-3uisc
-ui3s2i
-2uisv
-uiu2
-ui3ul
-ui3uu
-2uiv
-u2ī
-1uīc
-uī4cen
-uī4cĕn
-uīc5ĕ́n
-uī4cén
-uī2ni
-uī2n3ĭ
-uī2ní
-uī3p2
-uī3q
-uī3so
-uī3sŏ
-uī3u
-2uī3v
-uī́3p2
-2uī́v
-u2ĭ
-uĭ3ăl
-uĭn2a
-uĭn2ā
-uĭn2æ
-uĭn2ĕ
-uĭnĭ3t
-uĭ1ŏ
-uĭŏ2p
-uĭŏ́2
-uĭ3ŭl
-uĭ́3ŏ4
-u2í
-1uíc
-1uíf
-1uíg
-uí1m
-uí3o2p
-uí3p2t
-3uísa
-3uísæ
-3uíse
-3uísi
-3uíso
-uí3tur
-2uív
-1uíx
-2u3læ
-2u3lǣ
-2u3lǽ
-ule4ie
-ule6ine
-ule6iqu
-ule6iue
-ule6ive
-ulē2i
-3ulix
-3u2líx
-3ulm
-ul3ua
-ul3uá
-ul3uæ
-ul3uǽ
-u4l3ue.
-ul3uīs
-ul3uó
-u3lus
-2um.
-2uma
-u3ma.
-uma2g
-u3m2an
-u3maq
-uma4tr
-u3mau
-u3mav
-u3mā.
-u3mān
-u3māq
-u3mār
-u3mās
-umā4tr
-u3māu
-u3māv
-2u1mă
-2umá
-umá2g
-u3mán
-u3máq
-u3már
-u3máu
-u3máv
-u3mæ
-u3mǣ
-u3mǽ
-um3b2
-umb4e
-umb4ē
-umb4i
-um5bit
-umb6itu
-umbi5tur
-umbi5tú
-umbí5te
-2ume
-u3me.
-ume3d
-ume5de
-ume2g
-ume2q
-u3mev
-umē2g
-umḗ4g
-umé2g
-umi2b
-umi2c
-umi2n3
-uminí4c
-umi2r
-umi2u
-u2m3iū
-umi2v
-u2m1ī2
-umī́4b
-umī́4m
-umī́4r
-umī́4t
-umí2b
-umíni4c
-umí2r
-2umn
-2umo
-u3mo.
-u3mon
-u3moq
-u3mor
-u3mou
-u3mov
-u3m2ō
-2umŏ
-2umó
-u3món
-u3móq
-u3mór
-u3móu
-u3móv
-umpe3r
-2umq
-2umu
-u4mue
-um3uí
-u3mus
-u3mús
-2umv
-un3áni
-un3d2
-3undab
-3undáb
-une3b
-une3d
-une6ste
-un2ē
-2un2ĕ
-un2é
-uné3b
-2unī
-2unĭ
-u3nos
-2unō
-u3nós
-un3s
-uns4i
-un4sn
-un4sq
-un4sue
-un4sv
-2unt
-unte5io
-unte5ió
-unte5iu
-unte6iue
-unte5iú
-untē3i
-untḗ5i
-unté3i
-u1n2u
-1u2o
-uob2
-uo2du
-2uoe
-uo3i
-uo4in
-uo4i3q
-uo4iue
-uo4iv
-uo4lue
-uol5uere
-uo4lui
-uo4luī
-uo4luí
-uom3p2
-uo3ni
-uo4n3ia
-uo3p2
-uo3rī
-uo2sp
-uos3t
-uos5te
-uo3u
-uo1ú
-2uo͞
-2uo͡
-u2ō
-uō3d
-uō3i
-uō2sp
-uōs3t
-uṓ3i
-1u2ŏ
-uŏ2ĭ
-2uŏn3
-uŏ2nĭ
-uŏ3rī
-uŏ4t5ắn
-uŏ2t3ĕ
-uŏ3ŭ
-uŏ́2n3
-u2ó
-uód1
-uó2du
-uó1i
-uó3io
-1uól
-uóm3p2
-uó4n3ia
-uó3p2
-uó2sp
-2uœ
-2up
-upe5raeq
-upe5r6ara
-upe5r6ará
-upe5r6are
-upe5raré
-upe5raro
-upe5raró
-uperas6c
-upe5ra͞eq
-upe5r6á͞
-upe5ra͡eq
-upe5r6á͡
-upe5ræq
-upe5rǣq
-upe5rǣ́
-uper4ǽ
-upe5remn
-upere6ra
-upere6rā
-upere6rá
-uper5erim
-uper5erit
-uper5e6rít
-upere6ro
-upere6rō
-upere6ró
-upere6rú
-upe6r5é6rim
-upe6r5é6rit
-upe6résc
-uperi4
-upe4r5ie
-uper5ié
-upe4rī4
-uper5īm
-uper5īt
-uper5ī́6m
-uperī́6r
-uper6ī́s
-uper5ī́6t
-uper6ī́u
-uper6ī́v
-upe4rí4r
-uper5íte
-uper5íto
-uper4íu
-uper4ív
-upe5rorn
-upe5ros
-upe5rōs
-upe5rṓs
-upĕ3rĕ
-upĕ3rī
-upĕ3rŭ
-u3pé
-upé4r5ea
-upé4r5eā
-upé4r5eo
-upé4r5eō
-upé4r5e4r
-upé4ri.
-upé4r5ie
-upé4r5iē
-upo4s3
-u3pŏ
-2uq
-u3qu
-2ur.
-u1r2a
-u3ra.
-urad2
-u3rae
-u3rane
-u3raq
-u3rarú
-u3rau
-u3rav
-u3ra͡
-2urā
-2u3r2ă
-u3ráe
-u3ráne
-u3ráq
-u3ráu
-u3ráv
-2u3ræ
-2u1rǣ
-2u3rǽ
-u1r2e
-ure3d
-ure2i
-ure5iae
-ure5iam
-ure5iar
-ure5ias
-ure5ia͡
-ure5iáe
-ure5iám
-ure5iáq
-ure5iár
-ure5iás
-ure5iáu
-ure5iáv
-ure3iæ
-ure3iǽ
-ure5ium
-ure3iú
-ures3t
-2u3rē
-urē3ia
-urē5iā.
-urē5iāq
-urē5iār
-urē5iās
-urē5iāu
-urē5iāv
-urē5iā́q
-urē5iā́r
-urē5iā́s
-urē5iā́u
-urē5iā́v
-urē3iu
-urē3iú
-urḗ3i
-2u1rĕ
-ur2é
-u3réf
-u1rh
-u1r2i
-u3ria
-u3riá
-u3riæ
-u3riǽ
-u3rii
-u3rií
-ur4in
-uri3ni
-2urio
-2urió
-2u1rī
-2urĭ
-ur2í
-u3ría
-2urío
-urí5tur
-2urn
-2u1r2o
-2u1rō
-2u1r2ŏ
-ur2ó
-u3rós
-2urq
-ur3ua
-ur3uā
-ur3uá
-ur3uē
-ur2ui
-u3rum
-ur3uō
-ur3uó
-u3rus
-2u1rŭ
-ur2ú
-u3rúm
-u3rús
-u1ry
-u1rý
-2us
-us2a
-usa3b2
-u3s2ă
-usă3b2
-usá4tr
-u2s3c
-use2i
-us2i
-u2sm
-u1sp
-us5per
-u2spē
-us2pĕ
-us4pit
-us2pĭ
-us2pí
-us4pít
-u2s3q
-u2sta
-u2stā
-u2stă
-u2stá
-u2stæ
-u2stǣ
-u2stǽ
-u2ste
-us5ter
-u2stē
-u2stĕ
-us5tĕr
-u2sté
-u2sti
-u2stī
-u2stí
-u3s4tom
-u2stō
-u3s4tŏm
-u5s4tŏ́m
-u3s4tóm
-u2s3tr
-us5tro
-u2stu
-u2stŭ
-u2stú
-us2ua
-4u2sue
-u2suĕ
-u2sui
-u2suí
-1ut.
-3u4tar.
-3u4tarn
-3u4tarq
-3u4tarv
-3u4tárn
-3u4tárq
-3u4tárv
-3u2teb
-ute2ī
-ute3r4a
-ute3rǣ
-ute5re
-ute3ri
-uteri5ue
-uteri5v
-ute5rī
-uterī5u
-uterī5v
-ute3ro
-ute3rō
-utĕ1
-utĕr4a
-utĕ5rī
-utĕrī5u
-utĕrī5v
-utĕ5r4ĭ
-3u2téb
-2utia
-2utiá
-2utiæ
-2utiǽ
-2utii
-2utií
-u2til
-2utio
-u2tíl
-3u2trā
-3u2træ
-3u2trǣ
-3u2trǽ
-ut4ri
-3u2trī
-3u2trō
-3u2tru
-3u2trú
-ut2u
-ut3ut
-u1u
-2u3ue
-2uuĕ
-1u2ul
-uul3ui
-uul3uī
-uul3uí
-u2um1
-u2un
-u2u1r
-u2uu
-u2uv
-uū2s
-1uŭ
-1uúl
-uúl3u
-uú1r
-2u3ve
-ux2
-u3xe
-ux4eu
-u3xé
-u3xi
-uxi3n
-u3xí
-u2xo3
-u2xō
-uxu3
-u2x3ue
-ux4us
-uy2s
-ū1
-ūb2
-ūba2
-ūbā6iāne
-ūbā6iāru
-ūbā6iārú
-ūbā6iæne
-ūbā6iæue
-ūbā6iæve
-ūbā6iǣne
-ūbā6iǣue
-ūbā6iǣve
-ūbā6iǽne
-ūbā6iǽue
-ūbā6iǽve
-ūbá2
-ūbe3ri
-ūbe3rō
-ūbĕ3rŭ
-ūbī3u
-ūbī3v
-ūbo2
-ūca2r
-ūco2
-ū3cr
-ū2c3ue
-ūd2
-ū3da.
-ū3dam
-ū3dane
-ū3daq
-ūda2r
-ū3dau
-ū3dav
-ū3da͞
-ū3da͡
-ū3dă.
-ū3dăm
-ū3dănĕ
-ū3dăq
-ū3dău
-ū3dăv
-ū3dắm
-ūdá2
-ū3dám
-2ū3dæ
-2ū3dǣ
-2ū3dǽ
-ū3de.
-ū3dene
-ū3deq
-ūde2s3
-ūde6ste
-ū3deu
-ū3dev
-ū3dē.
-ū3dēn
-ū3dēq
-ūdē2s
-ū3dēu
-ū3dēv
-ū3dḗn
-ū3dḗq
-ū3dḗu
-ū3dḗv
-ū3dĕ.
-ū3dĕnĕ
-ū3dĕq
-ūdĕ6stĕ
-ū3dĕu
-ū3dĕv
-2ū3dī
-ūdo2
-ūd4or
-ū3dōr
-ū3dōs
-ū3dṓr
-ū3dṓs
-ūdó2
-2ū3du
-2ū3dŭ
-2ū3dú
-ū2ē
-2ūg
-ū3g2a
-ū3g2æ3
-ū3g2ǣ
-ū2gn
-ū3iú
-1ūl
-ū2la
-ū2lā
-ū2lă
-ū2lá
-ūle3i
-ūle2r
-ūlé3i
-ū2lo2
-ū2lŏ
-ū2ló
-ū2l3ue
-ūm2a
-ūma2r
-ūmá2
-ūm2e
-ūm2ĕ
-ūm2i
-ūm2ĭ
-ūmo2
-ūna2
-ūn2ā
-ūnă2
-ūná2
-ūn3áni
-ūne3b
-ūne6ste
-ūn3et
-ūnĕ6stĕ
-ūn3ĕt
-ūn2é
-ūné3b
-2ūni
-2ūnĭ
-2ūní
-ūno2
-ū3nōr
-ū3nōs
-2ūns
-ūn3s2i
-ūn3s4ĭ
-ūn2u
-ūn2ŭ
-ūpe3r2
-ūpĕ3r
-ūpĕ5rĭ
-2ūq
-ūr2a
-ūra2r
-ūr2ă
-2ūræ
-ūræ2ă
-2ūrǣ
-ūrǣ2ă
-2ūrǽ
-ūr2e
-ūres3
-ū3rēu
-ū3rēv
-ūr2ĕ
-ūrĕ2ĭ
-ūrĕ2s3
-ūr2é
-ū3réf
-ūr2i
-ūr4in
-ūr2ĭ
-ūr4ĭn
-ūrí2n
-ūro2
-ūró2
-ūr2u
-ū2sc
-ūs2ie
-ūs2iē
-ūs2iu
-ūso2
-ū2sp
-ūs5per
-ūs5pĕr
-ū2s3q
-ū2s3t
-ūs5ter
-ūs5tĕr
-ū2sue
-ū2suĕ
-ūs2uī
-ūt2
-ūta2r
-ūtá2
-ūte5re
-ūtĕ3rĕ
-2ū3tia
-2ū3tiā
-2ū3tiá
-2ūtiæ
-2ūtiǣ
-2ūtiǽ
-2ū3tiī
-2ūtĭa
-2ū3tĭā
-2ūtĭá
-2ūtĭæ
-2ūtĭǣ
-2ūtĭǽ
-2ū3tĭī
-ūtí2n
-ūto2
-2ūu
-2ūv
-ūx2
-ūx4eu
-ū2x3ue
-ūx4us
-ūxū3r
-ū2́
-ū́b2
-ū́3cr
-ū́d2
-2ū́g
-ū́1i
-ū́2lā
-ū́4lă
-ū́4lĕr
-ū́4lĕt
-ū́2lo
-ū́2lŏ
-ū́3mu
-ū́n3si
-2ū́q
-ū́rĭ5m
-ū́r2u
-ū́2sp
-ū́s5pe
-ū́4st
-ū́s5tr
-4ū́tia
-4ū́3tiā
-4ū́tiæ
-4ū́tiǣ
-4ū́3tiī
-ū́4til
-4ū́tĭa
-4ū́tĭā
-4ū́tĭæ
-4ū́tĭǣ
-4ū́tĭī
-ū́4tĭl
-2ū́u
-2ū́v
-ŭă3p2
-ŭắ3p2
-ŭbē2r
-ŭbĕ2
-ŭbĕ4r
-ŭbĕ́2
-ŭ2bi
-ŭ2bī2
-ŭb2īn
-ŭb2īq
-ŭb4īuĕ.
-ŭb4īvĕ.
-ŭbī́2
-ŭb4ī́n
-ŭb4ī́q
-ŭbī́4t
-ŭb6ī́uĕ.
-ŭb6ī́vĕ.
-ŭ3bĭă
-ŭbĭ3cŭ
-ŭ3bĭīs
-ŭ5bĭī́s
-ŭ3bĭō
-ŭb3ĭt.
-ŭ3bĭŭ
-ŭ3bĭ́ă
-ŭbĭ́4c
-ŭbĭ́4g
-ŭ2bl
-ŭ2bō
-ŭ2bŏ2
-ŭ2b1r
-ŭbs2
-ŭb5stĕ
-ŭ2b1ū
-ŭ3b2ŭl
-ŭ2cu
-ŭdē2s
-ŭ2du
-ŭ3d2ŭ
-ŭd4ŭĕ
-ŭĕ2ă
-ŭ3ĕnn
-ŭĕ3r4ĕ
-ŭĕ3rī
-ŭĕ3rŭ
-ŭ3ĕ́nn
-ŭ3g2a
-ŭ3g2æ3
-ŭ3g2ǣ
-ŭ2gn
-ŭ1i
-ŭī3p2
-ŭī́3p2
-ŭ2ĭ
-ŭĭn2
-2ŭĭs
-2ŭla
-2ŭlá
-2ŭlæ
-2ŭlǣ
-2ŭlǽ
-ŭlē3i
-ŭlḗ3i
-1ŭlm
-ŭ2l1u
-ŭm1
-2ŭm.
-ŭ3ma
-ŭ3mā.
-ŭ3mān
-ŭ3māq
-ŭ3mār
-ŭ3mās
-ŭmā4tr
-ŭ3māu
-ŭ3māv
-ŭmă2
-ŭ3mă.
-ŭ3măn
-ŭmắ2
-ŭ3má
-ŭ3mæ
-ŭ3mǣ
-ŭ3mǽ
-1ŭm3b
-ŭmb4ē
-ŭmb4ĭ
-ŭm5bĭt
-ŭmē2g
-ŭm2ēs
-ŭm2ḗ
-ŭmḗ4g
-ŭ3mĕ.
-ŭ3mĕn
-ŭmĕ2q
-ŭ3mĕu
-ŭ3mĕv
-ŭ2m3i
-ŭ2mī2
-ŭmī́4b
-ŭmī́4m
-ŭmī́4r
-ŭmī́4t
-ŭ2mĭ2
-ŭmĭn3
-ŭmĭnĭ́4
-ŭm3ĭt
-ŭmĭ́4c
-ŭmĭ́nĭ6c
-ŭmĭ́4t
-2ŭmn
-ŭ3m2ō
-ŭ2mŏ
-ŭmpĕ3r
-2ŭmq
-2ŭmu
-ŭ3mŭs
-2ŭmv
-ŭn3d2
-ŭndĕ3ŭ
-ŭn2ē
-ŭn2ĕ
-ŭnĕ3d
-2ŭnt
-ŭntḗ5i
-ŭŏ2r1
-ŭpĕ5raeq
-ŭpĕ5ra͞eq
-ŭpĕ5r6á͞
-ŭpĕ5ra͡eq
-ŭpĕ5r6á͡
-ŭpĕr5ắs
-ŭpĕ5ræq
-ŭpĕ5rǣq
-ŭpĕ5rǣ́
-ŭpĕrĕ4
-ŭpĕ4rĕā
-ŭpĕ4rĕă
-ŭpĕ4r5ĕō
-ŭpĕ6r5ĕrā
-ŭpĕ6r5ĕră
-ŭpĕ6r5ĕrĭ
-ŭpĕ6r5ĕrō
-ŭpĕrĕ́4
-ŭpĕ6r5ĕ́rĭ
-ŭpĕ4r3ī4
-ŭpĕr4īs
-ŭpĕrī́4
-ŭpĕr6ī́s
-ŭpĕ4r3ĭ4
-ŭpĕrĭ́4
-ŭpĕ5rṓs
-ŭpĕ́6r5ĕā
-ŭpĕ́6r5ĕă
-ŭpĕ́6r5ĕō
-ŭpĕ́6r5ĕ6r
-ŭpĕ́6r5ĭē
-ŭr1
-ŭ1r2a
-ŭr2ā
-ŭ1r2ă
-ŭ1r2æ
-ŭ1r2ǣ
-ŭr2ǽ
-ŭ3r2ē
-ŭrē3i
-ŭrḗ3i
-ŭ1r2ĕ
-ŭ1r2ī
-ŭ3r2ĭ
-ŭ1r2ō
-ŭ1rŏ
-ŭ1rŭ
-2ŭs.
-ŭ2s3ā2
-ŭsā́2
-ŭ2s3c
-ŭ2si
-2ŭsn
-ŭ1sp
-ŭ2spē
-2ŭsq
-ŭs3t
-ŭs5tĕr
-ŭs4trĭ
-ŭs5trŏ
-2ŭsu
-2ŭsv
-1ŭt.
-ŭtĕ2ī
-ŭtĕ3rĕ
-ŭtĕ5rī
-ŭtĕrī5u
-ŭtĕrī5v
-ŭtĕ3rŭ
-ŭ2tĭ.
-1ŭ2tr
-ŭ2tu
-ŭ1u
-1ŭ2x2
-ŭ́2
-ŭ́bĕ2
-ŭ́b4ĭī
-ŭ́bs2
-ŭ́3bŭ
-ŭ́3cĕ
-ŭ́3cī
-ŭ́3cĭ
-ŭ́3cl
-ŭ́3dē
-ŭ́3dĕ
-ŭ́3dĭ
-ŭ́3g
-ŭ́4gn
-ŭ́3i
-ŭ́3j
-2ŭ́lă
-ŭ́3lī
-ŭ́3lĭ
-ŭ́l3u
-ŭ́3lŭī
-ŭ́3lŭĭ
-ŭ́m3ă4r
-ŭ́m3b4
-ŭ́m5bĭ
-ŭ́m3ĕā
-ŭ́m3ĕă
-ŭ́3mĕn
-ŭ́m3ĕō
-ŭ́m3ĕŏ
-ŭ́3mĕq
-ŭ́3mĕu
-ŭ́3mĕv
-ŭ́m3ī
-ŭ́m3ĭ4c
-ŭ́m3ĭē
-ŭ́m3ĭĭ
-ŭ́3mĭn
-ŭ́m3ĭ4t
-2ŭ́mn
-2ŭ́mq
-2ŭ́mu
-ŭ́3mŭ
-2ŭ́mv
-ŭ́3nē
-ŭ́3nĕ
-ŭ́3nĭ
-ŭ́3pĕ
-ŭ́3ră
-ŭ́3rĕ
-ŭ́3r2ĭ
-ŭ́3rŏ
-ŭ́3sĭ
-2ŭ́sn
-ŭ́3spĕ
-ŭ́s3t
-ŭ́s4trĭ
-2ŭ́su
-2ŭ́sv
-ŭ́3tă
-ŭ́3tĕ
-3ŭ́4tr
-1ŭ́u
-ŭ́3uā
-ŭ́3uă
-ŭ́3uē
-ŭ́3uĕ
-ŭ́3uō
-ŭ́3uŏ
-1ŭ́v
-ŭ́3vā
-ŭ́3vă
-ŭ́3vē
-ŭ́3vĕ
-ŭ́3vō
-ŭ́3vŏ
-úbe4ram
-úbe4rā
-úb4eris
-ú5berum
-úb4ii.
-ú3b4iis
-ú3biō
-ú3b2iu
-úbi5ui
-úbi5vi
-ú2bī
-úb2o
-úb3s2
-úb5ste
-ú3b2u
-2úc
-ú2c3ue
-úd2i
-úd3ue
-úe1
-úe2a
-úe2o
-2úg
-ú3g2a
-ú3gæ
-ú3gǣ
-ú2g3n
-ú1iæ
-ú1ii
-ú2in
-ú2la.
-ú2lat
-ú2let
-ú2lu
-úl3ua
-úl3uæ
-úl3ue
-úl3uis
-úl3uīs
-ú3lum
-úm1
-ú1ma
-úma2g
-ú3m2an
-ú3maq
-úma2r
-ú3mau
-ú3mav
-úm3b2
-úmb4e
-úmb4ē
-úmb4i
-úm5bi5t
-úmb6itu
-úm2e
-ú2m3eā
-ú2m3eō
-úmi2c
-úm2im
-úm2in
-úm2iu
-ú2m3ī
-2úmn
-ú1mo
-2úmq
-2úmu
-ú3mun
-2úmv
-5úndans
-3úndān
-2úni
-ún3s4i
-2únt
-ú1n2u
-úpe1
-úpe3r
-2úq
-úr1
-ú1r2a
-2ú1ræ
-ú1r2e
-ú1r2i
-2úrn
-ú1r2o
-2úrq
-ú3r2ui
-úru3m
-ú2run
-ú2s3c
-ús2i
-2úsn
-ús3q
-ús3t
-2úsu
-ú2sui
-2úsv
-ú2tar
-úte3r
-2ú3tia
-2útiæ
-2ú3tii
-ú2til
-ú1u
-2úue
-ú2um
-ú2un
-2úve
-2úx
-úx2a
-úx4eu
-úx2i
-úx2o
-ú2xue
-úx4us
-1v
-vab2
-va3d2
-vad4o
-va3g
-val4u
-vas3p
-vas5te
-v2ă
-vă3d2
-vă3g
-văs3
-vắs3
-v3áed
-vás3p
-2væ2d
-vǣ2d
-vǣ́2d
-2v1ǽ2d
-vb2
-vbi2
-ve1
-ve2a
-ve2ia
-ve2iá
-ve4iene
-ve2ii
-ve2ií
-ve4io.
-ve4ioq
-ve4ior
-ve6ioue.
-ve6iove.
-ve4ión
-ve4ióq
-ve4iór
-ve6ióue.
-ve6ióve.
-ve2iu
-ve2iú
-ve2ī
-ve2í
-ve2lu
-ve4n3ea
-ve4n3eá
-ve4n3eo
-ve4n3eó
-ve4n3ii
-ve4n3ií
-ve4n3íi
-2venn
-ve2o
-ve2ō
-ver2æ3
-ve3rē
-ve2s
-ve3sá
-ve3sí
-ve4s3p
-ves5pe
-ve4s3t
-ves5te
-ves5tr
-vete5re
-vete5ri
-veteri5v
-vete5rī
-veterī5v
-veterī́7
-ve2u
-vex2
-vex4e
-vē4iae.
-vē6iaene
-vē6iaeque
-vē6iaeue
-vē6iaeve
-vē4iam
-vē4ian
-vē6ia͞e.
-vē6ia͞ene
-vē6ia͞eque
-vē6ia͞eue
-vē6ia͞eve
-vē6iá͞ene
-vē6iá͞eque
-vē6iá͞eue
-vē6iá͞eve
-vē6ia͡e.
-vē6ia͡ene
-vē6ia͡eque
-vē6ia͡eue
-vē6ia͡eve
-vē6iá͡ene
-vē6iá͡eque
-vē6iá͡eue
-vē6iá͡eve
-vē4iā.
-vē4iāne
-vē6iāque
-vē4iāru
-vē4iārú
-vē4iās.
-vē6iāsne
-vē6iāsque
-vē6iāsue
-vē6iāsve
-vē4iāue
-vē4iāve
-vē6iā́ne
-vē6iā́que
-vē6iā́ru
-vē6iā́sne
-vē6iā́sque
-vē6iā́sue
-vē6iā́sve
-vē6iā́ue
-vē6iā́ve
-vē6iáene
-vē6iáeque
-vē6iáeue
-vē6iáeve
-vē4iám
-vē4iæ.
-vē4iæne
-vē6iæque
-vē4iæue
-vē4iæve
-vē4iǣ.
-vē4iǣne
-vē6iǣque
-vē4iǣue
-vē4iǣve
-vē6iǣ́ne
-vē6iǣ́que
-vē6iǣ́ue
-vē6iǣ́ve
-vē4iǽne
-vē6iǽque
-vē4iǽue
-vē4iǽve
-vē4iene
-vē4iī.
-vē4iīne
-vē6iīque
-vē4iīs.
-vē6iīsne
-vē6iīsque
-vē6iīsue
-vē6iīsve
-vē4iīue
-vē4iīve
-vē6iī́ne
-vē6iī́que
-vē6iī́sne
-vē6iī́sque
-vē6iī́sue
-vē6iī́sve
-vē6iī́ue
-vē6iī́ve
-vē4iō.
-vē4iōne
-vē6iōque
-vē4iōru
-vē4iōrú
-vē4iōs.
-vē6iōsne
-vē6iōsque
-vē6iōsue
-vē6iōsve
-vē4iōue
-vē4iōve
-vē6iṓne
-vē6iṓque
-vē6iṓru
-vē6iṓsne
-vē6iṓsque
-vē6iṓsue
-vē6iṓsve
-vē6iṓue
-vē6iṓve
-vē2iu
-vē2iú
-vē4n3iī
-vē4nīs
-vē4n3ĭī
-vē3r
-vḗ4n5iī
-vḗ4n5ĭī
-v2ĕ
-vĕ2ă
-vĕ3rē
-vĕ3r4ĕ
-vĕ2s3
-vĕ4sp
-vĕs5pĕ
-vĕs5tĕ
-vĕ3x2
-vĕ́3rĕ
-vĕ́x2
-vé2lu
-vé4n3eo
-vé4n3ii
-2vénn
-vés3
-véx2
-v2i
-vi2a
-vi4c5énn
-vid4u
-vin2ā
-vi3r4i
-v2ī
-vī4cen
-vī4cĕn
-vīc5ĕ́n
-vī4cén
-vī3so
-vī3sŏ
-v2ĭ
-vĭn2a
-vĭn2ā
-vĭn2æ
-ví3d
-ví3tu
-2vj
-2voe
-vo3l4u
-vo1n
-vo3rī
-vos3t
-vos5te
-2vo͞
-2vo͡
-vōs3t
-vŏ3rī
-vó3l2u
-vó3ru
-2vœ
-vr2a
-vri2
-v̄2
-v̆2
-v̆́2
-v̆́4t
-v́2
-1x1
-xab2
-xae2
-x2aeq
-xaes3
-x2aeu
-x2aev
-x2ag
-2xal
-xam4b3i4
-xambī4
-xambī́4
-xam4b3í4
-x2ami
-x2an
-x2aq
-x2are
-x2aru
-xas3
-x2āg
-x2ān
-x2āri
-x2āru
-x3ā́c
-3xă.
-3xăm
-xămbī4
-xămbī́4
-xăm4b3ĭ
-3x2ăn
-3x2ăq
-3x2ăr
-xăs3
-3x2ăt
-3x2ău
-3x2ăv
-3xắ
-x2ắn
-x2ắr
-x2á
-x3ác
-x3áes3
-2x3ál
-x3ámb
-xám4b3i
-x3árs
-xás3
-x3áud
-xæ2
-x2æ3q
-xæs3
-x2æ3u
-x2æ3v
-xǣ2
-x2ǣ3q
-xǣs3
-x2ǣ3u
-x2ǣ3v
-x2ǣ́q
-xǣ́s3
-x2ǣ́u
-x2ǣ́v
-x2ǽq
-xǽ2s3
-x2ǽu
-x2ǽv
-2xc2
-xcí3
-x2e1
-xe2a
-xe2e
-x3e4ger
-x3e4gér
-x3e2gi
-x3e2gí
-xe2i
-xe2ī
-xe2í
-x3emp
-x3enn
-xe2o
-xe2ō
-xe4qui
-xe4quī
-x3erc
-xe2s
-x3e2u
-3x4eue
-x2ē
-x3ē2ge
-x3ē4gēr
-x5ē4gḗr
-x3ē2gĕ
-x3ē2gé
-x3ē2gi
-x3ē2gī
-x3ē2gĭ
-x3ē2gí
-x3ḗ2g
-xĕ2ă
-x3ĕăr
-x3ĕăt
-2x2ĕd
-x3ĕnn
-2x3ĕŏ
-x3ĕ4quī
-xĕ4quĭ
-x2ĕrā
-x2ĕră
-xĕ3r4ĕ
-x2ĕrĭ
-x2ĕrō
-x2ĕt
-x3ĕŭn
-x2ĕ́d
-xĕ́2q
-x2é
-x3é2g
-x3émp
-x3énn
-xé4qui
-x3érc
-2xh
-x2ia
-x2iā
-x2iæ
-x2iǣ
-xi2ba
-xi2bá
-xi2be
-xi2bé
-xi2bi
-xi2bí
-xi2bo
-xi2bó
-xi4bun
-xi4bún
-x2ic
-2xie
-3x2ies
-3x2iēs
-2xi2g
-xi2i
-x2im
-xi2n
-xin3ā
-xinā́4
-xi3ni
-xi3nī
-xi3ní
-xi3nu
-xi4nue
-xi3nú
-x2io
-x2iō
-x2iq
-2xi2r
-x2iss
-xi2tæ
-xi2tǣ
-xi2tǽ
-xi2tī
-xi2tū
-xi4uer
-xi4uér
-2xi2ui
-xi2uí
-x2i3uu
-2x3iŭ
-xi4ver
-xi4vér
-2xi2vi
-xi2ví
-2xī2b
-2xī2m
-x2īn
-xīō2
-x2īq
-2xī2r
-2xī2t
-xī2ué
-xī2ui
-xī2uĭ
-xī2uí
-xī2vé
-xī2vi
-xī2vĭ
-xī2ví
-xī́2b
-xī́2m
-xī́2r
-xī́4t
-xī́4ui
-xī́4uĭ
-xī́4vi
-xī́4vĭ
-x2ĭb
-x2ĭc
-x2ĭēs
-2xĭ2g
-2xĭĭ
-x2ĭm
-xĭ2n
-xĭn3ā
-xĭnā́4
-xĭn2ĕ
-xĭ3nī
-xĭ3nŭ
-xĭ2ta
-xĭ4tā.
-xĭ2tă
-xĭ2tá
-xĭ2tæ
-xĭ2tǣ
-xĭ2tǽ
-x2ĭtĕ
-xĭ2tī
-x2ĭtĭ
-xĭ4tōs
-xĭ2tū
-xĭ4tŭm
-xĭ4tŭs
-xĭ́2g
-x2ĭ́m
-xĭ́4tă
-x2í
-2x3í2b
-2x3í2g
-x3íi
-2x3í2mu
-2x3í2r
-x3í2ta
-x3í4te.
-2x3í2ti
-2x3í2to
-x3ítur
-x3í4uer
-x3í4uim
-x3í4uit
-x3í4ver
-x3í4vim
-x3í4vit
-2xj
-x2l2
-2xn
-x3ne
-x3nĕ
-xo2
-3xo.
-x2o3d
-3xon
-3xoq
-xorí3t
-xo4rn
-xo4rq
-xo3ru
-xo4rv
-3xos
-xo4sa
-xo4sn
-xo4so
-xo4sq
-xo4su
-xo4sv
-x2o3t
-3xo3u
-3xo3v
-3xō.
-3x2ōn
-3xōq
-3xō2s
-xō4sa
-x2ō3t
-3xōu
-3xōv
-xṓ4rat
-xṓ4rān
-xṓ4răt
-xṓ4rer
-xṓ4ret
-xṓ4rĕr
-xṓ4rĕt
-x3ṓ4ro
-x3ṓ4rŏ
-x3ṓrs
-xṓ4s
-x3ṓsa
-x3ṓsā
-x3ṓsă
-x3ṓsæ
-x3ṓsǣ
-x3ṓsc
-x3ṓse
-x3ṓsē
-x3ṓsĕ
-x3ṓsī
-x3ṓsō
-x5ṓsum
-x5ṓsus
-x3ṓsŭ
-xŏ2
-2x2ŏ3d
-xŏ́2n
-xó4ner
-xó4rat
-xó4rer
-xó4ret
-xó4riē
-xó4ror
-xó2s
-xó4sa
-x2ót
-2xp
-x3pé
-2xq
-x3qu
-2xs2
-x3sp
-xs4pe
-xsu4lu
-xsupe3
-2xt
-x3ta
-x3tā
-x3tă
-x3tá
-x3tæ
-x3tǣ
-x3tǽ
-x3te1
-xter4a
-xte5re
-xte5ré
-xteri5ue
-xteri5v
-xte5rī
-xterī5u
-xterī5v
-x3tĕ
-xtĕ3r4a
-xtĕ3rǣ
-xtĕ3rĕ
-xtĕ5rī
-xtĕrī5u
-xtĕrī5v
-xtĕ3rŭ
-xtéri5t
-x3ti1
-x3tī
-x3tĭ
-x3tí
-x3to
-x3tō
-x3tó
-x3tr
-x3tu
-x3tū
-x3tŭ
-x3tú
-xu2
-3xu.
-2x3ue.
-x3uev
-2x3uĕ
-x2ui.
-x2uis
-x2uī
-x2uís
-3x2um
-xum2e
-xum2ī
-xu4mn
-xu4mq
-xu4mv
-x2une
-xu1r
-xu3ro
-3x3us
-x4us.
-x4u4sn
-x4u4sq
-x4u4su
-x4u4sv
-x2uum
-x2uúm
-xū2b
-xūbe3
-x2ūne
-x2ūnĕ
-xū2re
-xū2rē
-xū2rĕ
-xū2ré
-xū2ri
-xū2rĭ
-xū2rí
-xū2ro
-xū2rŏ
-xū2ró
-x2ū2s
-xū2t
-xū́2b
-xū́4rē
-xū́4ri
-xū́4rĭ
-xū́4ro
-xū́4rŏ
-x2ū́s
-xū́2t
-xŭ2
-2xŭā
-2xŭă
-x2ŭī
-2xŭl
-x2ŭm
-xŭ3mā
-xŭ3mă
-xŭ3mē
-xŭ3m2ĕ
-xŭ3m2ī
-xŭ3mŭ
-2xŭō
-2xŭŏ
-x2ŭŭm
-xŭ́4l
-x2ŭ4́m
-xú2b
-xú2l
-x2úm
-x2úne
-xú1r
-x2úsq
-xú2t
-xú2ui
-xú2vi
-2xv
-x3ve
-x3vĕ
-x2x2
-y2a
-yad2
-ya1m
-ya2nu
-yā2nu
-yá2nu
-yb2
-ybe2
-ybē2
-ybé2
-ybé4i
-yd2
-yda3m
-yde2s
-ydē2
-ye2
-yes3
-yē2
-yé2
-yés3
-y2g3n
-y2i
-yi2i
-yin2
-yio2s
-yis3
-yi4sc
-yis5ci
-yl3ui
-yl3uí
-y1m
-ym2a
-ym2e
-yme3d
-yme5de
-y1n
-yn2ā
-yne2
-yn2i
-yo3ne
-yo3ni
-yó1
-yper4í
-y1r
-yr2a
-y3rá
-yr4ás
-ys2i
-ysta4
-yste3
-y1su
-yte3r
-yteri5ue
-yteri5v
-yte5rī
-yterī5u
-yterī5v
-yx4eu
-y2xu
-ȳ1
-ȳ2a
-ȳad2
-ȳ2ă
-ȳăd2
-ȳ2á
-ȳ2i
-ȳ2ĭ
-ȳ2í
-ȳló2
-ȳmo3
-ȳn2
-ȳne2
-ȳ3rē
-ȳré2
-ȳro2
-ȳró2
-ȳs2
-ȳso2
-ȳsó2
-ȳ2́
-ȳ́3l
-ȳ́1n
-ý2a1
-ýb2
-ýd2
-ýda3
-ý2g3n
-ý2i
-ý2l1u
-ý1m
-ým2e
-ý1nu
-ý1r
-ýs2i
-ýste3
-ýte1
-ý2th
-ýx4eu
-ý2xu
-1z
-z2a
-zab2
-za3r
-ză3r
-zá1m
-ze3b
-zé2ru
-z2i
-zmă3
-zo1
-zo2s
-zū2
-̄1
-̄2a
-̄a2m
-̄2ā
-̄2ă
-̄2á
-̄2ǣ
-̄ǣ2ŭ
-̄b2
-̄be3
-̄bī3u
-̄bī3v
-̄3bu
-̄3bŭ
-̄ce2
-̄2cl
-̄2cū
-̄de3
-̄dĕ3r
-̄2dī
-̄2e
-̄2ē
-̄ēn3
-̄2ĕ
-̄2f
-̄2i
-̄2ī
-̄2ĭ
-̄2í
-̄n2
-̄no3
-̄2ō
-̄pe3
-̄per2
-̄pĕ3r
-̄pĕ5rĭ
-̄r2
-̄2s
-̄to2
-̄2u
-̄2ŭ
-̄2ú
-̄2́
-̄́3b2
-̄́2cl
-̄́3l
-̄́1n
-̄́2s
-̆ăd2
-̆b2
-̆d2
-̆dă3m
-̆dē2
-̆ĕs3
-̆2gn
-̆2ĭ
-̆ĭ2ă
-̆ĭn2
-̆ĭs3
-̆2lu
-̆1ma
-̆1mă
-̆m2e
-̆m2ĕ
-̆1n
-̆n2ā
-̆1ra
-̆3r2ă
-̆1ræ
-̆1rǣ
-̆1rī
-̆1rō
-̆1rŏ
-̆rsĭ3
-̆1rŭ
-̆stă4
-̆tĕ5rī
-̆tĕrī5u
-̆tĕrī5v
-̆tĕ3rŭ
-̆2th
-̆3thĭ
-̆x2
-̆2xu
-̆́b2
-̆́d2
-̆́dă3
-̆́m2ĕ
-͞e1
-͞ea2b3
-͞eắ2
-͞eá2
-͞e3ác
-͞e3áp
-͞e3b
-͞e4cue
-͞e3d2
-͞ed4o
-͞e2eō
-͞e3es
-͞eé2
-͞e3és
-͞e3g2
-͞ei2
-͞e2iā
-͞e3ic
-͞e2iī
-͞e2ī
-͞e2ō
-͞eó2
-͞epe3
-͞epote4
-͞epot5er
-͞epot5es
-͞epo6t5és
-͞epó4t5e
-͞e3q
-͞e3r
-͞es4ca
-͞es4cá
-͞es4ci
-͞es4cí
-͞e4scu
-͞e4scú
-͞e4spō
-͞e2sq
-͞es4ta
-͞es4tā
-͞es4tá
-͞es4te
-͞es4tē
-͞es4té
-͞es4tin
-͞esti5t4
-͞es4tī
-͞estí3
-͞es4tít4
-͞es4tō.
-͞es4tōn
-͞es4tōq
-͞es4tōs
-͞es4tōu
-͞es4tōv
-͞es4trú
-͞e5ter
-͞etere6ri
-͞ete6re6rí
-͞ete6r5es
-͞ete6r5és
-͞ete5rim
-͞ete5riti
-͞ete5rití
-͞ete5rito
-͞ete5ritó
-͞ete5r6i5tur
-͞ete5ritúr
-͞ete4r5ī4
-͞eterī́6
-͞ete6rít
-͞e5tĕr
-͞eté6r5es
-͞eté6rite
-͞e3ut
-͞ex2
-͞e2xu
-͞2u1
-͞u2a
-͞u2ǣ
-͞u3b2
-͞u3do
-͞uō2
-͞upe5re
-͞upe5ri
-͞upe5r4ī
-͞uperī5n
-͞uperī5q
-͞uperī5u
-͞uperī5v
-͞u2su
-͞u3sum
-͞u3sus
-͞u2xu
-́͞2
-͡e1
-͡ea2b3
-͡eắ2
-͡e3ác
-͡e3áp
-͡e3b
-͡e4cue
-͡e3d2
-͡ed4o
-͡e2eo
-͡e2eō
-͡e2eó
-͡e3es
-͡eé2r
-͡e3és
-͡e3g2
-͡ei2
-͡e2iā
-͡e3ic
-͡e2ii
-͡e2iī
-͡e2ií
-͡e2ī
-͡e2o
-͡e2ō
-͡epe3
-͡epo6tés
-͡epó6tes
-͡e3q
-͡e3r
-͡er4i
-͡es4ca
-͡es4cá
-͡e5s4ci
-͡es4cí
-͡e4scu
-͡e4scú
-͡e4spō
-͡e2sq
-͡es4ta
-͡es4tā
-͡es4tá
-͡es4te
-͡es4tē
-͡es4té
-͡es4ti.
-͡es4tig
-͡es4tin
-͡es4tiq
-͡es4tis
-͡esti5t4
-͡es4tiv
-͡es4tī
-͡es4tíg
-͡es4tín
-͡es4tíq
-͡es4tís
-͡es4tí5t4
-͡es4tíu
-͡es4tív
-͡es4to.
-͡es4ton
-͡es4toq
-͡es4tos
-͡es4tou
-͡es4tov
-͡es4tō.
-͡es4tōn
-͡es4tōq
-͡es4tōs
-͡es4tōu
-͡es4tōv
-͡es4tón
-͡es4tóq
-͡es4tós
-͡es4tóu
-͡es4tóv
-͡es4trú
-͡e5ter
-͡etere6ri
-͡ete6re6rí
-͡ete4ri4
-͡eter5ii
-͡eter5ií
-͡ete4r5ī4
-͡eterī́6
-͡ete4rí4
-͡eter5ímu
-͡eter5íti
-͡e5tĕr
-͡eté6ri.
-͡eté6r5ii
-͡eté6r5is
-͡eté6rite
-͡eté6ri6ti
-͡e3ust
-͡e3ut
-͡ex2
-͡e2xu
-͡2u1
-͡u2a
-͡u3b2
-͡u3do
-͡uō2
-͡uó2
-͡upe5re
-͡upe5ri
-͡uperi5n
-͡uperi5q
-͡uperi5ue
-͡uperi5v
-͡upe5r4ī
-͡uperī5n
-͡uperī5q
-͡uperī5u
-͡uperī5v
-͡u2xu
-́͡2
-́2ă
-́ăd2
-́ă3g
-́b2a
-́ba3q
-́3bas
-́b2ă
-́4băc
-́bă2r
-́b3ărā
-́b3ără
-́b3ărē
-́b3ărĕ
-́b3ărō
-́3băs
-́b2e
-́be3r
-́b2ē
-́b4ĭă
-́bĭ4cŭ
-́b4ĭēs
-́2bĭĭ
-́b4ĭō
-́b4ĭŭ
-́b2o3
-́b2ŏ1
-́b5ŏlĕn
-́2bri
-́b2rī
-́b2sq
-́b5s4tĕ
-́b2su
-́b2u
-́3bŭm
-́2by
-́3că
-́ce1
-́3cē
-́3ci
-́cŏ3
-́2cre
-́2crē
-́2cri
-́2c3ue
-́2c3u2t
-́cŭ3m
-́2c3ŭ2t
-́dă2m
-́d3ămă
-́de4run
-́2d3ĕ2d
-́d4ĕp
-́d3ĕst
-́2d3i2g
-́d2in
-́d2ĭ
-́2d3ĭg
-́4d3ĭmĭ
-́d3ŏ2l
-́d2rē
-́d2rŏ
-́2d3ue
-́2dū
-́d2ŭ
-́e2ă
-́e3b
-́e4cue
-́e3d2
-́e2eo
-́e2eō
-́e3es
-́e3g2
-́ei2
-́e4ia.
-́e4iam
-́e4ias
-́e4ia͞
-́e2iā
-́e2ii
-́e2iī
-́epe3
-́e3q
-́e1r
-́er4i
-́e3s4ca
-́e3s4ci
-́e3s4ta
-́e5s4tā.
-́e5stān
-́e3s4te
-́e3s4tē
-́e5s4ti.
-́e5s4tin
-́e5s4tis
-́e5stit
-́e3s4tī
-́e5s4to.
-́e5s4tos
-́e3s4tō
-́es5tră
-́e5stru
-́es3tu
-́ete3r
-́etĕ5r
-́e3ut
-́e2ŭ
-́e2x
-́ĕ1
-́1ĕā
-́1ĕ2ă
-́ĕ2mŏ
-́2ĕq
-́4ĕr.
-́1ĕ2s
-́ĕ2ŭ
-́fe1
-́2fē
-́fĕ1
-́fŏ1
-́3g2a
-́3gă
-́3gæ
-́3gǣ
-́gĕ1
-́2gl
-́2gn
-́g3no
-́2gŭa
-́2gŭā
-́2gŭă
-́2gŭǣ
-́2gŭē
-́2gŭĕ
-́2gŭō
-́2gŭŭ
-́1h
-́2he
-́3ian
-́3iaq
-́3iar
-́3iat
-́3iau
-́3iav
-́i2ā
-́i3b
-́i2ci
-́3iem
-́3ien
-́3ieq
-́3iet
-́3ieu
-́3iev
-́3iēs
-́1ii
-́1io
-́3iun
-́3iuu
-́ĭ3b
-́ĭ2cĭ
-́1ĭĭ
-́2ĭn2
-́3ĭn.
-́3lă
-́2leg
-́3lĕ
-́4lĕg
-́4lĕp
-́3lix
-́2lu
-́3lub
-́l3ue
-́l3uē
-́3lui
-́3lum
-́3lus
-́1m2a
-́1mă
-́mă2g
-́m3ără
-́m3ă4rō
-́m3bă
-́m4bĭā
-́m4b3ĭŏ
-́m2e
-́4mera
-́4merā
-́mĕ4dĭ
-́4mĕdŏ
-́m2in
-́4minē.
-́4minēn
-́m2ĭ
-́4mĭăn
-́4mĭăt
-́4mĭēn
-́4mĭēs
-́4mĭĕn
-́4mĭĕt
-́2mĭĭ
-́4mĭnē.
-́4mĭnēn
-́4mĭŭn
-́1mo1
-́mŏ1
-́mpĕ5r
-́mpĕr6ī
-́2mun
-́3m2ū
-́n2ā
-́n2ă
-́n3dĕ
-́n4d3ĭg
-́n4d3ŏ4l
-́n4dŭĕ
-́nd3ŭĭ
-́n2ĕ
-́n3ĕst
-́n3g2
-́4n3ĭcĭ
-́n2o
-́nŏ1
-́ns2c
-́n4sig
-́ns5i4tæ
-́ns5i4tu
-́n4sĭg
-́ntĕ3r
-́nt5ĕrōs
-́3n2ua
-́n2uā
-́3n2uē
-́3n2uī
-́n2ū
-́n2ŭ
-́o1
-́2ŏ
-́ŏ3p
-́3pă
-́pe1
-́pe3r
-́pĕ3r
-́pĕ5rĭ
-́3pi
-́3pĭ
-́3pl
-́2pn
-́pŏ3
-́3pr
-́pu3l
-́3pŭī
-́3pŭĭ
-́1r
-́r2a
-́ra3g
-́4r2ăb
-́ră4gā
-́ră4gă
-́ră4gĭ
-́r2ăl
-́r3c
-́r2e
-́3rē.
-́r3ĕ2d4
-́rĕ2g
-́rĕ2m
-́r3ĕmā
-́4r3ĕmă
-́r3ĕmē
-́r3ĕmĕ
-́r3ĕmī
-́r3ĕmĭ
-́4r3ĕmō
-́r3ĕmŏ
-́r3ĕmŭ
-́2r3ĕs
-́2rh
-́rĭ4bē
-́rĭ4bĕ
-́r3ĭ4cĭ
-́rĭ4măn
-́rĭ4măr
-́rĭ4măt
-́4r3ĭ4mē
-́rĭ4mĕ
-́4r3ĭ4mĭ
-́r3ĭ4mŏ
-́r5ĭ4mŭn
-́3rĭŭ
-́2rog
-́2rŏg
-́2r3ŏp
-́r3ua
-́r3uā
-́r3uæ
-́2rue
-́r3uē
-́r2ui
-́ru3m
-́r3uō
-́3rū
-́2sc
-́s4cid
-́s3cr
-́s2ĕ
-́s4ĕr
-́3sĕŭ
-́s2i
-́2s3ĭ2c
-́s4per
-́spĕ3
-́s5pĕs
-́s3pī
-́s3q
-́s4tes
-́s3tib
-́3s4tin
-́3stit
-́5stĭtē
-́5stĭtĕn
-́s4trat
-́s4tret
-́s5tri
-́3s4trŏ
-́3s4tru
-́s5trum
-́s4trŭā
-́s4trŭă
-́s4trŭē
-́s4trŭĕ
-́s4trŭī
-́s4trŭō
-́s4trŭŭ
-́s3ui
-́3sumu
-́3sun
-́4tăg
-́te3r
-́tĕ2ī
-́tĕ3ra
-́t6ĕră.
-́2t3ĕs
-́3tha
-́3thā
-́3thă
-́3thæ
-́3thǣ
-́3tĭ
-́4tĭq
-́2tl
-́to1
-́tŏ1
-́5trīx
-́1u
-́2u1m
-́2un
-́uŏ1
-́upe3
-́upe5r
-́u1r
-́u2xu
-́1ūn
-́ŭ2
-́1ŭb
-́1ŭt
-́vŏ1
-́x2a
-́x2ă
-́x4eu
-́x2ĕ
-́x3ĕăn
-́x2i
-́2xia
-́2xiā
-́2xiæ
-́2xiǣ
-́2xiē
-́2xiī
-́2xiō
-́2xiu
-́x2ī
-́x2ĭn
-́x2o
-́x2ō
-́x2ŏ
-́xtĕ3
-́2xu
-́x4us
-́x2ŭĭ
-́x3ŭĭs} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-bg.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-bg.hyp
deleted file mode 100644
index 35eb1c35d41..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-bg.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-bg.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-bg.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-bg.pat
deleted file mode 100644
index ceba66813a9..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-bg.pat
+++ /dev/null
@@ -1,6893 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-bg.rme
-
-% used: а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ю я
-
-\patterns{
-.антиа4
-.антиб4
-.антив4
-.антиг4
-.антид4
-.антие4
-.антиж4
-.антиз4
-.антии4
-.антий4
-.антик4
-.антил4
-.антим4
-.антин4
-.антио4
-.антип4
-.антир4
-.антис4
-.антит4
-.антиу4
-.антиф4
-.антих4
-.антиц4
-.антиш4
-.антищ4
-.антиъ4
-.антию4
-.антия4
-.бб8
-.бв8
-.бг8
-.бд8
-.бж8
-.бз8
-.бк8
-.бл8
-.бм8
-.бн8
-.бп8
-.бр8
-.бс8
-.бт8
-.бф8
-.бх8
-.бц8
-.бч8
-.бш8
-.бщ8
-.вб8
-.вбб8
-.вбв8
-.вбг8
-.вбд8
-.вбж8
-.вбз8
-.вбк8
-.вбл8
-.вбм8
-.вбн8
-.вбп8
-.вбр8
-.вбс8
-.вбт8
-.вбф8
-.вбх8
-.вбц8
-.вбч8
-.вбш8
-.вбщ8
-.вв8
-.ввб8
-.ввв8
-.ввг8
-.ввд8
-.ввж8
-.ввз8
-.ввк8
-.ввл8
-.ввм8
-.ввн8
-.ввп8
-.ввр8
-.ввс8
-.ввт8
-.ввф8
-.ввх8
-.ввц8
-.ввч8
-.ввш8
-.ввщ8
-.вг8
-.вгб8
-.вгв8
-.вгг8
-.вгд8
-.вгж8
-.вгз8
-.вгк8
-.вгл8
-.вгм8
-.вгн8
-.вгп8
-.вгр8
-.вгс8
-.вгт8
-.вгф8
-.вгх8
-.вгц8
-.вгч8
-.вгш8
-.вгщ8
-.вд8
-.вдб8
-.вдв8
-.вдг8
-.вдд8
-.вдж8
-.вдз8
-.вдк8
-.вдл8
-.вдм8
-.вдн8
-.вдп8
-.вдр8
-.вдс8
-.вдт8
-.вдф8
-.вдх8
-.вдц8
-.вдч8
-.вдш8
-.вдщ8
-.вж8
-.вжб8
-.вжв8
-.вжг8
-.вжд8
-.вжж8
-.вжз8
-.вжк8
-.вжл8
-.вжм8
-.вжн8
-.вжп8
-.вжр8
-.вжс8
-.вжт8
-.вжф8
-.вжх8
-.вжц8
-.вжч8
-.вжш8
-.вжщ8
-.вз8
-.взб8
-.взв8
-.взг8
-.взд8
-.взж8
-.взз8
-.взк8
-.взл8
-.взм8
-.взн8
-.взп8
-.взр8
-.взс8
-.взт8
-.взф8
-.взх8
-.взц8
-.взч8
-.взш8
-.взщ8
-.вк8
-.вкб8
-.вкв8
-.вкг8
-.вкд8
-.вкж8
-.вкз8
-.вкк8
-.вкл8
-.вкм8
-.вкн8
-.вкп8
-.вкр8
-.вкс8
-.вкт8
-.вкф8
-.вкх8
-.вкц8
-.вкч8
-.вкш8
-.вкщ8
-.вл8
-.влб8
-.влв8
-.влг8
-.влд8
-.влж8
-.влз8
-.влк8
-.влл8
-.влм8
-.влн8
-.влп8
-.влр8
-.влс8
-.влт8
-.влф8
-.влх8
-.влц8
-.влч8
-.влш8
-.влщ8
-.вм8
-.вмб8
-.вмв8
-.вмг8
-.вмд8
-.вмж8
-.вмз8
-.вмк8
-.вмл8
-.вмм8
-.вмн8
-.вмп8
-.вмр8
-.вмс8
-.вмт8
-.вмф8
-.вмх8
-.вмц8
-.вмч8
-.вмш8
-.вмщ8
-.вн8
-.внб8
-.внв8
-.внг8
-.внд8
-.внж8
-.внз8
-.внк8
-.внл8
-.внм8
-.внн8
-.внп8
-.внр8
-.внс8
-.внт8
-.внф8
-.внх8
-.внц8
-.внч8
-.внш8
-.внщ8
-.вп8
-.впб8
-.впв8
-.впг8
-.впд8
-.впж8
-.впз8
-.впк8
-.впл8
-.впм8
-.впн8
-.впп8
-.впр8
-.впс8
-.впт8
-.впф8
-.впх8
-.впц8
-.впч8
-.впш8
-.впщ8
-.вр8
-.врб8
-.врв8
-.врг8
-.врд8
-.врж8
-.врз8
-.врк8
-.врл8
-.врм8
-.врн8
-.врп8
-.врр8
-.врс8
-.врт8
-.врф8
-.врх8
-.врц8
-.врч8
-.врш8
-.врщ8
-.вс8
-.всб8
-.всв8
-.всг8
-.всд8
-.всж8
-.всз8
-.вск8
-.всл8
-.всм8
-.всн8
-.всп8
-.вср8
-.всс8
-.вст8
-.всф8
-.всх8
-.всц8
-.всч8
-.всш8
-.всщ8
-.вт8
-.втб8
-.втв8
-.втг8
-.втд8
-.втж8
-.втз8
-.втк8
-.втл8
-.втм8
-.втн8
-.втп8
-.втр8
-.втс8
-.втт8
-.втф8
-.втх8
-.втц8
-.втч8
-.втш8
-.втщ8
-.вф8
-.вфб8
-.вфв8
-.вфг8
-.вфд8
-.вфж8
-.вфз8
-.вфк8
-.вфл8
-.вфм8
-.вфн8
-.вфп8
-.вфр8
-.вфс8
-.вфт8
-.вфф8
-.вфх8
-.вфц8
-.вфч8
-.вфш8
-.вфщ8
-.вх8
-.вхб8
-.вхв8
-.вхг8
-.вхд8
-.вхж8
-.вхз8
-.вхк8
-.вхл8
-.вхм8
-.вхн8
-.вхп8
-.вхр8
-.вхс8
-.вхт8
-.вхф8
-.вхх8
-.вхц8
-.вхч8
-.вхш8
-.вхщ8
-.вц8
-.вцб8
-.вцв8
-.вцг8
-.вцд8
-.вцж8
-.вцз8
-.вцк8
-.вцл8
-.вцм8
-.вцн8
-.вцп8
-.вцр8
-.вцс8
-.вцт8
-.вцф8
-.вцх8
-.вцц8
-.вцч8
-.вцш8
-.вцщ8
-.вч8
-.вчб8
-.вчв8
-.вчг8
-.вчд8
-.вчж8
-.вчз8
-.вчк8
-.вчл8
-.вчм8
-.вчн8
-.вчп8
-.вчр8
-.вчс8
-.вчт8
-.вчф8
-.вчх8
-.вчц8
-.вчч8
-.вчш8
-.вчщ8
-.вш8
-.вшб8
-.вшв8
-.вшг8
-.вшд8
-.вшж8
-.вшз8
-.вшк8
-.вшл8
-.вшм8
-.вшн8
-.вшп8
-.вшр8
-.вшс8
-.вшт8
-.вшф8
-.вшх8
-.вшц8
-.вшч8
-.вшш8
-.вшщ8
-.вщ8
-.вщб8
-.вщв8
-.вщг8
-.вщд8
-.вщж8
-.вщз8
-.вщк8
-.вщл8
-.вщм8
-.вщн8
-.вщп8
-.вщр8
-.вщс8
-.вщт8
-.вщф8
-.вщх8
-.вщц8
-.вщч8
-.вщш8
-.вщщ8
-.въ2за4
-.въ2зб4
-.въ2зв4
-.въ2зг4
-.въ2зд4
-.въ2зе4
-.въ5з4ел
-.въ5з4е5ла
-.въ5з4е5лът
-.въ2зж4
-.въ2зз4
-.въ2зи4
-.въ2зй4
-.въ2зк4
-.въ2зл4
-.въ2зм4
-.въ2зн4
-.въ2зо4
-.въ2зп4
-.въ2зр4
-.въ2зс4
-.въ2зт4
-.въ2зу4
-.въ2зф4
-.въ2зх4
-.въ2зц4
-.въ2зч4
-.въ2зш4
-.въ2зщ4
-.въ2зъ4
-.въ2зю4
-.въ2зя4
-.гб8
-.гв8
-.гг8
-.гд8
-.гж8
-.гз8
-.гк8
-.гл8
-.гм8
-.гн8
-.гп8
-.гр8
-.гс8
-.гт8
-.гф8
-.гх8
-.гц8
-.гч8
-.гш8
-.гщ8
-.дб8
-.дв8
-.дг8
-.дд8
-.дж8
-.дз8
-.дк8
-.дл8
-.дм8
-.дн8
-.доа4
-.доб4
-.до4б5лест
-.до4б5р
-.до4б6ро
-.дов4
-.дог4
-.до4г5м
-.дод4
-.дое4
-.дож4
-.доз4
-.дои4
-.док4
-.до4к5л
-.до4к5т
-.дол4
-.до4л5н
-.до4л5ч
-.дом4
-.дон4
-.до4н5г
-.до4н5д
-.до4н5ж
-.до4н5к
-.до4н5с
-.до4н5ч
-.доо4
-.доп4
-.дор4
-.дос4
-.до4с5то
-.дот4
-.доу4
-.доф4
-.дох4
-.доц4
-.доч4
-.дош4
-.дощ4
-.доъ4
-.дою4
-.доя4
-.дп8
-.др8
-.дс8
-.дт8
-.дф8
-.дх8
-.дц8
-.дч8
-.дш8
-.дщ8
-.жб8
-.жв8
-.жг8
-.жд8
-.жж8
-.жз8
-.жк8
-.жл8
-.жм8
-.жн8
-.жп8
-.жр8
-.жс8
-.жт8
-.жф8
-.жх8
-.жц8
-.жч8
-.жш8
-.жщ8
-.заа4
-.заб4
-.зав4
-.заг4
-.зад4
-.за4д5гран
-.за4д5гроб
-.за4д5кулис
-.за4д5мин
-.за4д5мор
-.за4д5н
-.зае4
-.заж4
-.заз4
-.заи4
-.зак4
-.зал4
-.за4л5п
-.зам4
-.зан4
-.за4н5д
-.зао4
-.зап4
-.за4п5т
-.зар4
-.за4р5з
-.зас4
-.зат4
-.зау4
-.заф4
-.зах4
-.зац4
-.зач4
-.заш4
-.защ4
-.заъ4
-.заю4
-.зая4
-.зб8
-.зв8
-.зг8
-.зд8
-.зж8
-.зз8
-.зк8
-.зл8
-.зм8
-.зн8
-.зп8
-.зр8
-.зс8
-.зт8
-.зф8
-.зх8
-.зц8
-.зч8
-.зш8
-.зщ8
-.иза4
-.изб4
-.изв4
-.изг4
-.изд4
-.изе4
-.изж4
-.изз4
-.изи4
-.изй4
-.изк4
-.изл4
-.изм4
-.изн4
-.изо2бб4
-.изо2бв4
-.изо2бг4
-.изо2бд4
-.изо2бж4
-.изо2бз4
-.изо4би
-.изо2бк4
-.изо2бл4
-.изо2бм4
-.изо2бн4
-.изо2бп4
-.изо2бр4
-.изо2бс4
-.изо2бт4
-.изо2бф4
-.изо2бх4
-.изо2бц4
-.изо2бч4
-.изо2бш4
-.изо2бщ4
-.изохк
-.изп4
-.изпоа4
-.изпоб4
-.изпов4
-.изпог4
-.изпод4
-.изпое4
-.изпож4
-.изпоз4
-.изпои4
-.изпой4
-.изпок4
-.изпол4
-.изпо4л5з
-.изпом4
-.изпо4м5п
-.изпон4
-.изпоо4
-.изпоп4
-.изпор4
-.изпо4р5т
-.изпос4
-.изпот4
-.изпоу4
-.изпоф4
-.изпох4
-.изпоц4
-.изпоч4
-.изпош4
-.изпощ4
-.изпоъ4
-.изпою4
-.изпоя4
-.изр4
-.изс4
-.изт4
-.изу4
-.изф4
-.изх4
-.изц4
-.изч4
-.изш4
-.изщ4
-.изъ4
-.изю4
-.изя4
-.кб8
-.кв8
-.кг8
-.кд8
-.кж8
-.кз8
-.кк8
-.кл8
-.км8
-.кн8
-.кп8
-.кр8
-.кс8
-.кт8
-.кф8
-.кх8
-.кц8
-.кч8
-.кш8
-.кщ8
-.лб8
-.лв8
-.лг8
-.лд8
-.лж8
-.лз8
-.лк8
-.лл8
-.лм8
-.лн8
-.лп8
-.лр8
-.лс8
-.лт8
-.лф8
-.лх8
-.лц8
-.лч8
-.лш8
-.лщ8
-.мб8
-.мв8
-.мг8
-.мд8
-.мж8
-.мз8
-.мк8
-.мл8
-.мм8
-.мн8
-.мп8
-.мр8
-.мс8
-.мт8
-.мф8
-.мх8
-.мц8
-.мч8
-.мш8
-.мщ8
-.наа4
-.наб4
-.нав4
-.наг4
-.на4г5ло
-.на2дб4
-.на2дв4
-.на2дг4
-.на2дд4
-.на2д3ж4
-.на3д4жав
-.на3д4жас
-.на2дз4
-.на4ди4гр
-.на2дк4
-.на2дл4
-.на2дм4
-.на2дн4
-.на2дп4
-.на2др4
-.над4ращ
-.над4реб
-.над4рем
-.над4роб
-.над4рус
-.над4рън
-.над4рям
-.на2дс4
-.на2дт4
-.на2дф4
-.на2дх4
-.на2дц4
-.на2дч4
-.на2дш4
-.на2дщ4
-.нае4
-.наж4
-.наз4
-.наи4
-.нак4
-.нал4
-.нам4
-.нан4
-.нао4
-.нап4
-.нар4
-.на4р5г
-.на4р5к
-.нас4
-.нат4
-.нау4
-.наф4
-.нах4
-.нац4
-.нач4
-.наш4
-.нащ4
-.наъ4
-.наю4
-.ная4
-.нб8
-.нв8
-.нг8
-.нд8
-.нж8
-.нз8
-.нк8
-.нл8
-.нм8
-.нн8
-.нп8
-.нр8
-.нс8
-.нт8
-.нф8
-.нх8
-.нц8
-.нч8
-.нш8
-.нщ8
-.оа4
-.оа5зис
-.оба4гн
-.обб4
-.обв4
-.обг4
-.обд4
-.обж4
-.обз4
-.оби4гр
-.обк4
-.обл4
-.об4лаго
-.об4лаж
-.обм4
-.обн4
-.обо4бщ
-.обоз4н
-.обоз4р
-.обос4н
-.обособ
-.обп4
-.обр4
-.об4рем
-.об4рул
-.об4ръс
-.обс4
-.обт4
-.обу4зд
-.обусл
-.обф4
-.обх4
-.обц4
-.обч4
-.обш4
-.общ4
-.об4щ5н
-.обя4сн
-.ов4
-.ов4дов
-.ов4лад
-.ов5ц
-.ов5ч
-.ог4
-.ог5н
-.од4
-.ое4
-.ож4
-.оз4
-.озд4р
-.ои4
-.ой4
-.ок4
-.ок5си
-.ок5т
-.ол4
-.ол5тар
-.ом4
-.ом5лет
-.ом5ни
-.он4
-.он5баш
-.он5дул
-.он5зи
-.он5ко
-.он5лайн
-.он5то
-.оо4
-.оп4
-.оп5т
-.оп5ци
-.ор4
-.ор5б
-.ор5г
-.ор5д
-.ор5к
-.ор5л
-.ор5н
-.ор5т
-.ор5ф
-.ор5х
-.ос4
-.ос5ман
-.ос5мин
-.ос5миц
-.ос5мич
-.ос5мо
-.ос5те
-.ос5тро
-.ос5ци
-.отб4
-.отв4
-.отг4
-.отд4
-.отж4
-.отз4
-.оти4в
-.оти4д
-.отк4
-.отл4
-.отм4
-.отн4
-.отп4
-.отр4
-.отс4
-.отт4
-.оту4ч
-.отф4
-.отх4
-.отц4
-.отч4
-.отш4
-.отщ4
-.оу4
-.оф4
-.ох4
-.ох5ва
-.ох5ка
-.ох5на
-.оц4
-.оч4
-.ош4
-.ощ4
-.оъ4
-.ою4
-.оя4
-.пб8
-.пв8
-.пг8
-.пд8
-.пж8
-.пз8
-.пк8
-.пл8
-.пм8
-.пн8
-.поа4
-.поб4
-.пов4
-.пог4
-.по2дб4
-.по2дв4
-.под4воу
-.по2дг4
-.по2дд4
-.по2д3ж4
-.по3д4жав
-.по3д4жур
-.по2дз4
-.по2ди4гр
-.по2ди4зр
-.по2дк4
-.по2дл4
-.по2дм4
-.по2дн4
-.по2до4паш
-.по2до4стр
-.по2до4тд
-.по2до4тч
-.по2до4ф
-.по2дп4
-.по2др4
-.под4рем
-.под4рън
-.под4ръп
-.под4рям
-.по2дс4
-.по2дт4
-.по2ду4пр
-.по2ду4ч
-.по2дф4
-.по2дх4
-.по2дц4
-.по2дч4
-.по2дш4
-.по2дщ4
-.пое4
-.пож4
-.поз4
-.позаа4
-.позаб4
-.позав4
-.позаг4
-.позад4
-.позае4
-.позаж4
-.позаз4
-.позаи4
-.позай4
-.позак4
-.позал4
-.позам4
-.позан4
-.позао4
-.позап4
-.позар4
-.позас4
-.позат4
-.позау4
-.позаф4
-.позах4
-.позац4
-.позач4
-.позаш4
-.позащ4
-.позаъ4
-.позаю4
-.позая4
-.пои4
-.пои2за4
-.пои2зб4
-.пои2зв4
-.пои2зг4
-.пои2зд4
-.пои2зе4
-.пои2зж4
-.пои2зз4
-.пои2зи4
-.пои2зй4
-.пои2зк4
-.пои2зл4
-.пои2зм4
-.пои2зн4
-.пои2зо4
-.пои2зп4
-.пои2зр4
-.пои2зс4
-.пои2зт4
-.пои2зу4
-.пои2зф4
-.пои2зх4
-.пои2зц4
-.пои2зч4
-.пои2зш4
-.пои2зщ4
-.пои2зъ4
-.пои2зю4
-.пои2зя4
-.пой4
-.пок4
-.пол4
-.по4л5з
-.по4л5к
-.по4л5с
-.пом4
-.по4м5п
-.пон4
-.понаа4
-.понаб4
-.понав4
-.понаг4
-.пона2дб4
-.пона2дв4
-.пона2дг4
-.пона2дд4
-.пона2дж4
-.пона2дз4
-.пона2ди4гр
-.пона2дк4
-.пона2дл4
-.пона2дм4
-.пона2дн4
-.пона2дп4
-.пона2др4
-.понад4ращ
-.понад4реб
-.понад4рем
-.понад4роб
-.понад4рус
-.понад4рън
-.понад4рям
-.пона2дс4
-.пона2дт4
-.пона2дф4
-.пона2дх4
-.пона2дц4
-.пона2дч4
-.пона2дш4
-.пона2дщ4
-.понае4
-.понаж4
-.поназ4
-.понаи4
-.понай4
-.понак4
-.понал4
-.понам4
-.понан4
-.понао4
-.понап4
-.понар4
-.понас4
-.понат4
-.понау4
-.понаф4
-.понах4
-.понац4
-.понач4
-.понаш4
-.понащ4
-.понаъ4
-.понаю4
-.поная4
-.по4н5т
-.пооа4
-.поо4бад
-.поо4бажд
-.поо2бб4
-.поо2бв4
-.поо2бг4
-.поо2бд4
-.поо2бж4
-.поо2бз4
-.поо2би4гр
-.поо4бик
-.поо2бк4
-.поо2бл4
-.поо2бм4
-.поо2бн4
-.поо2бп4
-.поо2бр4
-.поо2бс4
-.поо2бт4
-.поо2бф4
-.поо2бх4
-.поо2бц4
-.поо2бч4
-.поо2бш4
-.поо2бщ4
-.поо2бя4сн
-.поов4
-.поог4
-.поод4
-.поое4
-.поож4
-.пооз4
-.поои4
-.поой4
-.поок4
-.поол4
-.поом4
-.поон4
-.пооо4
-.пооп4
-.поор4
-.поос4
-.поо2тб4
-.поо2тв4
-.поо2тг4
-.поо2тд4
-.поо2тж4
-.поо2тз4
-.поо2тк4
-.поо2тл4
-.поо2тм4
-.поо2тн4
-.поо2тп4
-.поо2тр4
-.поо2тс4
-.поо2тт4
-.поо2ту4ч
-.поо2тф4
-.поо2тх4
-.поо2тц4
-.поо2тч4
-.поо2тш4
-.поо2тщ4
-.пооу4
-.пооф4
-.поох4
-.пооц4
-.пооч4
-.поош4
-.поощ4
-.поо4щ5р
-.пооъ4
-.поою4
-.пооя4
-.поп4риа4
-.поп4риб4
-.поп4рив4
-.поп4риг4
-.поп4рид4
-.поп4рие4
-.поп4риж4
-.поп4риз4
-.поп4рии4
-.поп4рий4
-.поп4рик4
-.поп4рил4
-.поп4рим4
-.поп4рин4
-.поп4рио4
-.поп4рип4
-.поп4рир4
-.поп4рис4
-.поп4рит4
-.поп4риу4
-.поп4риф4
-.поп4рих4
-.поп4риц4
-.поп4рич4
-.поп4риш4
-.поп4рищ4
-.поп4риъ4
-.поп4рию4
-.поп4рия4
-.пор4
-.по4р5н
-.по4р5т
-.по4р5ф
-.по4р5ц
-.пос4
-.по4с4т
-.пот4
-.по4т5н
-.поу4
-.поф4
-.пох4
-.поц4
-.пош4
-.пощ4
-.поъ4
-.пою4
-.поя4
-.пп8
-.пр8
-.преа4
-.преб4
-.прев4
-.превъ2за4
-.превъ2зб4
-.превъ2зв4
-.превъ2зг4
-.превъ2зд4
-.превъ2зе4
-.превъ2зж4
-.превъ2зз4
-.превъ2зи4
-.превъ2зй4
-.превъ2зк4
-.превъ2зл4
-.превъ2зм4
-.превъ2зн4
-.превъ2зо4
-.превъ2зп4
-.превъ2зр4
-.превъ2зс4
-.превъ2зт4
-.превъ2зу4
-.превъ2зф4
-.превъ2зх4
-.превъ2зц4
-.превъ2зч4
-.превъ2зш4
-.превъ2зщ4
-.превъ2зъ4
-.превъ2зю4
-.превъ2зя4
-.прег4
-.пре2дб4
-.пре2дв4
-.пре2дг4
-.пре2дд4
-.пре2дж4
-.пре2дз4
-.пре2ди4зб4
-.пре2ди4зв4
-.пре2ди4нфар
-.пре2ди4стор
-.пре2дк4
-.пре2дл4
-.пре2дм4
-.пре2дн4
-.пре2до4бед
-.пре2до4ктом
-.пре2доп4ред
-.пре2дос4воб
-.пре2до2та4
-.пре2до2тб4
-.пре2до2тв4
-.пре2до2тг4
-.пре2до2тд4
-.пре2до2те4
-.пре2до2тж4
-.пре2до2тз4
-.пре2до2ти4
-.пре2до2тй4
-.пре2до2тк4
-.пре2до2тл4
-.пре2до2тм4
-.пре2до2тн4
-.пре2до2то4
-.пре2до2тп4
-.пре2до2тр4
-.пре2до2тс4
-.пре2до2тт4
-.пре2до2ту4
-.пре2до2тф4
-.пре2до2тх4
-.пре2до2тц4
-.пре2до2тч4
-.пре2до2тш4
-.пре2до2тщ4
-.пре2до2тъ4
-.пре2до2тю4
-.пре2до2тя4
-.пре2дох4р
-.пре2дп4
-.пре2др4
-.пред4рем
-.пре2д4реш
-.пред4рям
-.пре2дс4
-.пре2дт4
-.пре2ду4бед
-.пре2ду4бежд
-.пре2дугад
-.пре2думис
-.пре2думиш
-.пре2ду4пр
-.пре2дусе
-.пре2дус4л
-.пре2ду4трин
-.пре2ду4чил
-.пре2дф4
-.пре2дх4
-.пре2дц4
-.пре2дч4
-.пре2дш4
-.пре2дщ4
-.пре2дя4в
-.пре2дя4ст
-.прее4
-.преж4
-.пре4ж5д
-.презаа4
-.презаб4
-.презав4
-.презаг4
-.презад4
-.презае4
-.презаж4
-.презаз4
-.презаи4
-.презай4
-.презак4
-.презал4
-.презам4
-.презан4
-.презао4
-.презап4
-.презар4
-.презас4
-.презат4
-.презау4
-.презаф4
-.презах4
-.презац4
-.презач4
-.презаш4
-.презащ4
-.презаъ4
-.презаю4
-.презая4
-.пре2зб4
-.пре2зв4
-.пре2зг4
-.пре2зд4
-.пре2зж4
-.пре2зз4
-.пре2зк4
-.пре2зл4
-.пре2зм4
-.пре2зн4
-.пре4з5о4кеан
-.пре2зп4
-.през4р
-.пре4з5рам
-.пре4з5ред
-.пре2зс4
-.пре2зт4
-.пре2зф4
-.пре2зх4
-.пре2зц4
-.пре2зч4
-.пре2зш4
-.пре2зщ4
-.преи4
-.преи2за4
-.преи2зб4
-.преи2зв4
-.преи2зг4
-.преи2зд4
-.преи2зе4
-.преи2зж4
-.преи2зз4
-.преи2зи4
-.преи2зй4
-.преи2зк4
-.преи2зл4
-.преи2зм4
-.преи2зн4
-.преи2зо4
-.преи2зп4
-.преи2зр4
-.преи2зс4
-.преи2зт4
-.преи2зу4
-.преи2зф4
-.преи2зх4
-.преи2зц4
-.преи2зч4
-.преи2зш4
-.преи2зщ4
-.преи2зъ4
-.преи2зю4
-.преи2зя4
-.прей4
-.прек4
-.прел4
-.прем4
-.прен4
-.пренаа4
-.пренаб4
-.пренав4
-.пренаг4
-.пренад4
-.пренае4
-.пренаж4
-.преназ4
-.пренаи4
-.пренай4
-.пренак4
-.пренал4
-.пренам4
-.пренан4
-.пренао4
-.пренап4
-.пренар4
-.пренас4
-.пренат4
-.пренау4
-.пренаф4
-.пренах4
-.пренац4
-.пренач4
-.пренаш4
-.пренащ4
-.пренаъ4
-.пренаю4
-.преная4
-.прео4
-.преп4
-.прер4
-.прес4
-.пре4с5но
-.пре4с5па
-.пре4с4пи
-.пре4с5ц
-.прет4
-.преу4
-.преф4
-.прех4
-.прец4
-.преч4
-.пре4ч5к
-.прещ4
-.преъ4
-.прею4
-.прея4
-.приа4
-.приб4
-.прив4
-.приг4
-.прид4
-.прие4
-.приж4
-.приз4
-.при4з5м
-.прии4
-.прий4
-.прик4
-.прил4
-.прим4
-.при4м5к
-.прин4
-.при4н5т
-.при4н5ц
-.прио4
-.прип4
-.при4п5в
-.при4п5к
-.при4п5н
-.прир4
-.прис4
-.прит4
-.при4т5ч
-.приу4
-.приф4
-.прих4
-.при4х5н
-.приц4
-.прич4
-.приш4
-.при4ш5к
-.прищ4
-.приъ4
-.прию4
-.прия4
-.проа4
-.проб4
-.про4б5в
-.про4б5к
-.про4б5лем
-.пров4
-.прог4
-.прод4
-.прое4
-.прож4
-.проз4
-.прои4
-.прок4
-.про4к5с
-.прол4
-.пром4
-.прон4
-.проо4
-.проп4
-.прор4
-.прос4
-.про4с5б
-.про4с4т
-.про4с5ф
-.прот4
-.проу4
-.прох4
-.проц4
-.проч4
-.прош4
-.прощ4
-.проъ4
-.прою4
-.проя4
-.пс8
-.пт8
-.пф8
-.пх8
-.пц8
-.пч8
-.пш8
-.пщ8
-.ра2за4
-.ра2зб4
-.ра2зв4
-.ра2зг4
-.ра2зд4
-.ра2зе4
-.ра2зж4
-.ра2зз4
-.ра2зи4
-.ра2зй4
-.ра2зк4
-.ра2зл4
-.ра2зм4
-.ра2зн4
-.ра2зо4
-.ра2зп4
-.ра2зр4
-.ра2зс4
-.ра2зт4
-.ра2зу4
-.ра2зф4
-.ра2зх4
-.ра2зц4
-.ра2зч4
-.ра2зш4
-.ра2зщ4
-.ра2зъ4
-.ра2зю4
-.ра2зя4
-.рб8
-.рв8
-.рг8
-.рд8
-.рж8
-.рз8
-.рк8
-.рл8
-.рм8
-.рн8
-.рп8
-.рр8
-.рс8
-.рт8
-.рф8
-.рх8
-.рц8
-.рч8
-.рш8
-.рщ8
-.сб8
-.св8
-.сг8
-.сд8
-.сж8
-.сз8
-.ск8
-.сл8
-.см8
-.сн8
-.сп8
-.ср8
-.сс8
-.ст8
-.сф8
-.сх8
-.сц8
-.сч8
-.сш8
-.сщ8
-.тб8
-.тв8
-.тг8
-.тд8
-.тж8
-.тз8
-.тк8
-.тл8
-.тм8
-.тн8
-.тп8
-.тр8
-.тс8
-.тт8
-.тф8
-.тх8
-.тц8
-.тч8
-.тш8
-.тщ8
-.уа4
-.уб4
-.ув4
-.уг4
-.уд4
-.уе4
-.уж4
-.уж5ки
-.уз4
-.уз5бе
-.уи4
-.уй4
-.уй5дис
-.уй5ду
-.ук4
-.ул4
-.ул5т
-.ун4
-.ун5гар
-.ун5ци
-.уо4
-.уп4
-.ур4
-.ур5ба
-.ур5в
-.ур5н
-.ур5суз
-.ур5ти
-.ус4
-.ус5та
-.ус5те
-.ус5ти
-.ут4
-.ут5ре.
-.ут5реш
-.ут5рин
-.ут4ро
-.уу4
-.уф4
-.ух4
-.уц4
-.уч4
-.уч5тив
-.уш4
-.уш5но
-.ущ4
-.уъ4
-.ую4
-.ую5те
-.уя4
-.фб8
-.фв8
-.фг8
-.фд8
-.фж8
-.фз8
-.фк8
-.фл8
-.фм8
-.фн8
-.фп8
-.фр8
-.фс8
-.фт8
-.фф8
-.фх8
-.фц8
-.фч8
-.фш8
-.фщ8
-.хб8
-.хв8
-.хг8
-.хд8
-.хж8
-.хз8
-.хк8
-.хл8
-.хм8
-.хн8
-.хп8
-.хр8
-.хс8
-.хт8
-.хф8
-.хх8
-.хц8
-.хч8
-.хш8
-.хщ8
-.цб8
-.цв8
-.цг8
-.цд8
-.цж8
-.цз8
-.цк8
-.цл8
-.цм8
-.цн8
-.цп8
-.цр8
-.цс8
-.цт8
-.цф8
-.цх8
-.цц8
-.цч8
-.цш8
-.цщ8
-.чб8
-.чв8
-.чг8
-.чд8
-.чж8
-.чз8
-.чк8
-.чл8
-.чм8
-.чн8
-.чп8
-.чр8
-.чс8
-.чт8
-.чф8
-.чх8
-.чц8
-.чч8
-.чш8
-.чщ8
-.шб8
-.шв8
-.шг8
-.шд8
-.шж8
-.шз8
-.шк8
-.шл8
-.шм8
-.шн8
-.шп8
-.шр8
-.шс8
-.шт8
-.шф8
-.шх8
-.шц8
-.шч8
-.шш8
-.шщ8
-.щб8
-.щв8
-.щг8
-.щд8
-.щж8
-.щз8
-.щк8
-.щл8
-.щм8
-.щн8
-.щп8
-.щр8
-.щс8
-.щт8
-.щф8
-.щх8
-.щц8
-.щч8
-.щш8
-.щщ8
-а1
-4б3б4
-8бб.
-4ббб4
-ббв4
-ббг4
-ббд4
-ббж4
-ббз4
-4ббк4
-ббл4
-ббм4
-ббн4
-4ббп4
-ббр4
-ббс4
-4ббт4
-ббф4
-ббх4
-4ббц4
-4ббч4
-ббш4
-ббщ4
-2б3в
-8бв.
-4бвб4
-4бвв
-4бвг4
-4бвд4
-4бвк4
-4бвп4
-4бвт4
-4бвф
-4бвц4
-4бвч4
-2б3г
-8бг.
-4бгб4
-4бгг
-4бгк4
-4бгп4
-4бгт4
-4бгц4
-4бгч4
-2б3д
-8бд.
-4бдб4
-4бдг
-4бдд
-4бдк4
-4бдп4
-4бдт4
-4бдц4
-4бдч4
-2б3ж
-8бж.
-4бжб4
-4бжг4
-4бжд4
-4бжж
-4бжк4
-4бжп4
-4бжс
-4бжт4
-4бжф
-4бжх
-4бжц4
-4бжч4
-4бжш
-2б3з
-8бз.
-4бзб4
-4бзг4
-4бзд4
-4бзз
-4бзк4
-4бзп4
-4бзс
-4бзт4
-4бзф
-4бзх
-4бзц4
-4бзч4
-4бзш
-бй4
-4б3к4
-8бк.
-4бкб4
-бкв4
-4бкг4
-4бкд4
-бкж4
-бкз4
-4бкк4
-бкл4
-бкм4
-бкн4
-4бкп4
-бкр4
-бкс4
-4бкт4
-бкф4
-бкх4
-4бкц4
-4бкч4
-бкш4
-бкщ4
-2б3л4
-8бл.
-4блб4
-4блк4
-4блл
-4блп4
-4блт4
-4блц4
-4блч4
-2б3м4
-8бм.
-4бмб4
-4бмк4
-4бмм
-4бмп4
-4бмт4
-4бмц4
-4бмч4
-2б3н4
-8бн.
-4бнб4
-4бнк4
-4бнн
-4бнп4
-4бнт4
-4бнц4
-4бнч4
-4б3п4
-8бп.
-4бпб4
-бпв4
-4бпг4
-4бпд4
-бпж4
-бпз4
-4бпк4
-бпл4
-бпм4
-бпн4
-4бпп4
-бпр4
-бпс4
-4бпт4
-бпф4
-бпх4
-4бпц4
-4бпч4
-бпш4
-бпщ4
-2б3р4
-8бр.
-4брб4
-4брк4
-4брп4
-4брр
-4брт4
-4брц4
-4брч4
-4б3с
-8бс.
-4бсб4
-4бсг4
-4бсд4
-4бсж
-4бсз
-4бск4
-4бсп4
-4бсс
-4бст4
-4бсц4
-4бсч4
-4б3т4
-8бт.
-4бтб4
-бтв4
-4бтг4
-4бтд4
-бтж4
-бтз4
-4бтк4
-бтл4
-бтм4
-бтн4
-4бтп4
-бтр4
-бтс4
-4бтт4
-бтф4
-бтх4
-4бтц4
-4бтч4
-бтш4
-бтщ4
-4б3ф
-8бф.
-4бфб4
-4бфв
-4бфг4
-4бфд4
-4бфж
-4бфз
-4бфк4
-4бфп4
-4бфт4
-4бфф
-4бфц4
-4бфч4
-4б3х
-8бх.
-4бхб4
-4бхг4
-4бхд4
-4бхж
-4бхз
-4бхк4
-4бхп4
-4бхт4
-4бхх
-4бхц4
-4бхч4
-4б3ц4
-8бц.
-4бцб4
-бцв4
-4бцг4
-4бцд4
-бцж4
-бцз4
-4бцк4
-бцл4
-бцм4
-бцн4
-4бцп4
-бцр4
-бцс4
-4бцт4
-бцф4
-бцх4
-4бцц4
-4бцч4
-бцш4
-бцщ4
-4б3ч4
-8бч.
-4бчб4
-бчв4
-4бчг4
-4бчд4
-бчж4
-бчз4
-4бчк4
-бчл4
-бчм4
-бчн4
-4бчп4
-бчр4
-бчс4
-4бчт4
-бчф4
-бчх4
-4бчц4
-4бчч4
-бчш4
-бчщ4
-4б3ш
-8бш.
-4бшб4
-4бшг4
-4бшд4
-4бшж
-4бшз
-4бшк4
-4бшп4
-4бшт4
-4бшц4
-4бшч4
-4бшш
-4б3щ
-8бщ.
-4бщб4
-4бщк4
-4бщп4
-4бщт4
-4бщц4
-4бщч4
-4бщщ
-2в3б
-8вб.
-4вбб
-4вбв4
-4вбк
-4вбп
-4вбт
-4вбф4
-4вбц
-4вбч
-4в3в4
-8вв.
-ввб4
-4ввв4
-ввг4
-ввд4
-ввж4
-ввз4
-ввк4
-ввл4
-ввм4
-ввн4
-ввп4
-ввр4
-ввс4
-ввт4
-4ввф4
-ввх4
-ввц4
-ввч4
-ввш4
-ввщ4
-2в3г
-8вг.
-4вгв4
-4вгг
-4вгк
-4вгп
-4вгт
-4вгф4
-4вгц
-4вгч
-2в3д
-8вд.
-4вдб
-4вдв4
-4вдг
-4вдд
-4вдк
-4вдп
-4вдт
-4вдф4
-4вдц
-4вдч
-2в3ж
-8вж.
-4вжв4
-4вжж
-4вжс
-4вжф4
-4вжх
-4вжш
-2в3з
-8вз.
-4взв4
-4взз
-4взс
-4взф4
-4взх
-4взш
-вй4
-2в3к
-8вк.
-4вкб
-4вкв4
-4вкг
-4вкд
-4вкк
-4вкф4
-2в3л4
-8вл.
-4влв4
-4влл
-4влф4
-2в3м4
-8вм.
-4вмв4
-4вмм
-4вмф4
-2в3н4
-8вн.
-4внв4
-4внн
-4внф4
-2в3п
-8вп.
-4впб
-4впв4
-4впг
-4впд
-4впп
-4впф4
-2в3р4
-8вр.
-4врв4
-4врр
-4врф4
-2в3с
-8вс.
-4всв4
-4всж
-4всз
-4всс
-4всф4
-2в3т
-8вт.
-4втб
-4втв4
-4втг
-4втд
-4втк
-4втп
-4втт
-4втф4
-4втц
-4втч
-4в3ф4
-8вф.
-вфб4
-4вфв4
-вфг4
-вфд4
-4вфж4
-4вфз4
-вфк4
-вфл4
-вфм4
-вфн4
-вфп4
-вфр4
-вфс4
-вфт4
-4вфф4
-вфх4
-вфц4
-вфч4
-вфш4
-вфщ4
-2в3х
-8вх.
-4вхв4
-4вхж
-4вхз
-4вхф4
-4вхх
-2в3ц
-8вц.
-4вцб
-4вцв4
-4вцг
-4вцд
-4вцк
-4вцп
-4вцт
-4вцф4
-4вцц
-4вцч
-2в3ч
-8вч.
-4вчб
-4вчв4
-4вчг
-4вчд
-4вчк
-4вчп
-4вчт
-4вчф4
-4вчц
-4вчч
-2в3ш
-8вш.
-4вшв4
-4вшж
-4вшз
-4вшф4
-4вшш
-2в3щ
-8вщ.
-4вщв4
-4вщф4
-4вщщ
-2г3б
-8гб.
-4гбб
-4гбг4
-4гбк4
-4гбп4
-4гбт4
-4гбц4
-4гбч4
-2г3в
-8гв.
-4гвб4
-4гвв
-4гвг4
-4гвд4
-4гвк4
-4гвп4
-4гвт4
-4гвф
-4гвц4
-4гвч4
-4г3г4
-8гг.
-ггб4
-ггв4
-4ггг4
-ггд4
-ггж4
-ггз4
-4ггк4
-ггл4
-ггм4
-ггн4
-4ггп4
-ггр4
-ггс4
-4ггт4
-ггф4
-ггх4
-4ггц4
-4ггч4
-ггш4
-ггщ4
-2г3д
-8гд.
-4гдб
-4гдг4
-4гдд
-4гдк4
-4гдп4
-4гдт4
-4гдц4
-4гдч4
-2г3ж
-8гж.
-4гжб4
-4гжг4
-4гжд4
-4гжж
-4гжк4
-4гжп4
-4гжс
-4гжт4
-4гжф
-4гжх
-4гжц4
-4гжч4
-4гжш
-2г3з
-8гз.
-4гзб4
-4гзг4
-4гзд4
-4гзз
-4гзк4
-4гзп4
-4гзс
-4гзт4
-4гзф
-4гзх
-4гзц4
-4гзч4
-4гзш
-гй4
-4г3к4
-8гк.
-4гкб4
-гкв4
-4гкг4
-4гкд4
-гкж4
-гкз4
-4гкк4
-гкл4
-гкм4
-гкн4
-4гкп4
-гкр4
-гкс4
-4гкт4
-гкф4
-гкх4
-4гкц4
-4гкч4
-гкш4
-гкщ4
-2г3л4
-8гл.
-4глг4
-4глк4
-4глл
-4глп4
-4глт4
-4глц4
-4глч4
-2г3м4
-8гм.
-4гмг4
-4гмк4
-4гмм
-4гмп4
-4гмт4
-4гмц4
-4гмч4
-2г3н4
-8гн.
-4гнг4
-4гнк4
-4гнн
-4гнп4
-4гнт4
-4гнц4
-4гнч4
-4г3п4
-8гп.
-4гпб4
-гпв4
-4гпг4
-4гпд4
-гпж4
-гпз4
-4гпк4
-гпл4
-гпм4
-гпн4
-4гпп4
-гпр4
-гпс4
-4гпт4
-гпф4
-гпх4
-4гпц4
-4гпч4
-гпш4
-гпщ4
-2г3р4
-8гр.
-4грг4
-4грк4
-4грп4
-4грр
-4грт4
-4грц4
-4грч4
-4г3с
-8гс.
-4гсб4
-4гсг4
-4гсд4
-4гсж
-4гсз
-4гск4
-4гсп4
-4гсс
-4гст4
-4гсц4
-4гсч4
-4г3т4
-8гт.
-4гтб4
-гтв4
-4гтг4
-4гтд4
-гтж4
-гтз4
-4гтк4
-гтл4
-гтм4
-гтн4
-4гтп4
-гтр4
-гтс4
-4гтт4
-гтф4
-гтх4
-4гтц4
-4гтч4
-гтш4
-гтщ4
-4г3ф
-8гф.
-4гфб4
-4гфв
-4гфг4
-4гфд4
-4гфж
-4гфз
-4гфк4
-4гфп4
-4гфт4
-4гфф
-4гфц4
-4гфч4
-4г3х
-8гх.
-4гхб4
-4гхг4
-4гхд4
-4гхж
-4гхз
-4гхк4
-4гхп4
-4гхт4
-4гхх
-4гхц4
-4гхч4
-4г3ц4
-8гц.
-4гцб4
-гцв4
-4гцг4
-4гцд4
-гцж4
-гцз4
-4гцк4
-гцл4
-гцм4
-гцн4
-4гцп4
-гцр4
-гцс4
-4гцт4
-гцф4
-гцх4
-4гцц4
-4гцч4
-гцш4
-гцщ4
-4г3ч4
-8гч.
-4гчб4
-гчв4
-4гчг4
-4гчд4
-гчж4
-гчз4
-4гчк4
-гчл4
-гчм4
-гчн4
-4гчп4
-гчр4
-гчс4
-4гчт4
-гчф4
-гчх4
-4гчц4
-4гчч4
-гчш4
-гчщ4
-4г3ш
-8гш.
-4гшб4
-4гшг4
-4гшд4
-4гшж
-4гшз
-4гшк4
-4гшп4
-4гшт4
-4гшц4
-4гшч4
-4гшш
-4г3щ
-8гщ.
-4гщг4
-4гщк4
-4гщп4
-4гщт4
-4гщц4
-4гщч4
-4гщщ
-4д3б4
-8дб.
-4дбб4
-дбв4
-4дбг4
-4дбд4
-дбж4
-дбз4
-4дбк4
-дбл4
-дбм4
-дбн4
-4дбп4
-дбр4
-дбс4
-4дбт4
-дбф4
-дбх4
-4дбц4
-4дбч4
-дбш4
-дбщ4
-2д3в
-8дв.
-4двб4
-4двв
-4двг4
-4двд4
-4двк4
-4двп4
-4двт4
-4двф
-4двц4
-4двч4
-4д3г4
-8дг.
-4дгб4
-дгв4
-4дгг4
-4дгд4
-дгж4
-дгз4
-4дгк4
-дгл4
-дгм4
-дгн4
-4дгп4
-дгр4
-дгс4
-4дгт4
-дгф4
-дгх4
-4дгц4
-4дгч4
-дгш4
-дгщ4
-4д3д4
-8дд.
-4ддб4
-ддв4
-4ддг4
-4ддд4
-ддж4
-ддз4
-4ддк4
-ддл4
-ддм4
-ддн4
-4ддп4
-ддр4
-ддс4
-4ддт4
-ддф4
-ддх4
-4ддц4
-4ддч4
-ддш4
-ддщ4
-8дж.
-4джб4
-2джв
-4джг4
-4джд4
-4джж
-2джз
-4джк4
-2джл
-2джм
-2джн
-4джп4
-2джр
-4джс
-4джт4
-4джф
-4джх
-4джц4
-4джч4
-4джш
-2джщ
-8дз.
-4дзб4
-2дзв
-4дзг4
-4дзд4
-2дзж
-4дзз
-4дзк4
-2дзл
-2дзм
-2дзн
-4дзп4
-2дзр
-4дзс
-4дзт4
-4дзф
-4дзх
-4дзц4
-4дзч4
-4дзш
-2дзщ
-дй4
-4д3к4
-8дк.
-4дкб4
-дкв4
-4дкг4
-4дкд4
-дкж4
-дкз4
-4дкк4
-дкл4
-дкм4
-дкн4
-4дкп4
-дкр4
-дкс4
-4дкт4
-дкф4
-дкх4
-4дкц4
-4дкч4
-дкш4
-дкщ4
-2д3л4
-8дл.
-4длб4
-4длг4
-4длд4
-4длк4
-4длл
-4длп4
-4длт4
-4длц4
-4длч4
-2д3м4
-8дм.
-4дмб4
-4дмг4
-4дмд4
-4дмк4
-4дмм
-4дмп4
-4дмт4
-4дмц4
-4дмч4
-2д3н4
-8дн.
-4днб4
-4днг4
-4днд4
-4днк4
-4днн
-4днп4
-4днт4
-4днц4
-4днч4
-4д3п4
-8дп.
-4дпб4
-дпв4
-4дпг4
-4дпд4
-дпж4
-дпз4
-4дпк4
-дпл4
-дпм4
-дпн4
-4дпп4
-дпр4
-дпс4
-4дпт4
-дпф4
-дпх4
-4дпц4
-4дпч4
-дпш4
-дпщ4
-2д3р4
-8др.
-4дрб4
-4дрг4
-4дрд4
-4дрк4
-4дрп4
-4дрр
-4дрт4
-4дрц4
-4дрч4
-4д3с
-8дс.
-4дсб4
-4дсг4
-4дсд4
-4дсж
-4дсз
-4дск4
-4дсп4
-4дсс
-4дст4
-4дсц4
-4дсч4
-4д3т4
-8дт.
-4дтб4
-дтв4
-4дтг4
-4дтд4
-дтж4
-дтз4
-4дтк4
-дтл4
-дтм4
-дтн4
-4дтп4
-дтр4
-дтс4
-4дтт4
-дтф4
-дтх4
-4дтц4
-4дтч4
-дтш4
-дтщ4
-4д3ф
-8дф.
-4дфб4
-4дфв
-4дфг4
-4дфд4
-4дфж
-4дфз
-4дфк4
-4дфп4
-4дфт4
-4дфф
-4дфц4
-4дфч4
-4д3х
-8дх.
-4дхб4
-4дхг4
-4дхд4
-4дхж
-4дхз
-4дхк4
-4дхп4
-4дхт4
-4дхх
-4дхц4
-4дхч4
-4д3ц4
-8дц.
-4дцб4
-дцв4
-4дцг4
-4дцд4
-дцж4
-дцз4
-4дцк4
-дцл4
-дцм4
-дцн4
-4дцп4
-дцр4
-дцс4
-4дцт4
-дцф4
-дцх4
-4дцц4
-4дцч4
-дцш4
-дцщ4
-4д3ч4
-8дч.
-4дчб4
-дчв4
-4дчг4
-4дчд4
-дчж4
-дчз4
-4дчк4
-дчл4
-дчм4
-дчн4
-4дчп4
-дчр4
-дчс4
-4дчт4
-дчф4
-дчх4
-4дчц4
-4дчч4
-дчш4
-дчщ4
-4д3ш
-8дш.
-4дшб4
-4дшг4
-4дшд4
-4дшж
-4дшз
-4дшк4
-4дшп4
-4дшт4
-4дшц4
-4дшч4
-4дшш
-4д3щ
-8дщ.
-4дщб4
-4дщг4
-4дщд4
-4дщк4
-4дщп4
-4дщт4
-4дщц4
-4дщч4
-4дщщ
-е1
-2ж3б
-8жб.
-4жбб
-4жбж4
-4жбз4
-4жбк
-4жбп
-4жбс4
-4жбт
-4жбф4
-4жбх4
-4жбц
-4жбч
-4жбш4
-2ж3в
-8жв.
-4жвв
-4жвж4
-4жвс4
-4жвф4
-4жвх4
-4жвш4
-2ж3г
-8жг.
-4жгг
-4жгж4
-4жгз4
-4жгк
-4жгп
-4жгс4
-4жгт
-4жгф4
-4жгх4
-4жгц
-4жгч
-4жгш4
-2ж3д
-8жд.
-4ждб
-4ждг
-4ждд
-4ждж4
-4ждз4
-4ждк
-4ждп
-4ждс4
-4ждт
-4ждф4
-4ждх4
-4ждц
-4ждч
-4ждш4
-4ж3ж4
-8жж.
-жжб4
-жжв4
-жжг4
-жжд4
-4жжж4
-жжз4
-жжк4
-жжл4
-жжм4
-жжн4
-жжп4
-жжр4
-4жжс4
-жжт4
-4жжф4
-4жжх4
-жжц4
-жжч4
-4жжш4
-жжщ4
-2ж3з
-8жз.
-4жзж4
-4жзз
-4жзс4
-4жзф4
-4жзх4
-4жзш4
-жй4
-4ж3к
-8жк.
-4жкб
-4жкг
-4жкд
-4жкж4
-4жкз4
-4жкк
-4жкс4
-4жкф4
-4жкх4
-4жкш4
-2ж3л4
-8жл.
-4жлж4
-4жлл
-4жлс4
-4жлф4
-4жлх4
-4жлш4
-2ж3м4
-8жм.
-4жмж4
-4жмм
-4жмс4
-4жмф4
-4жмх4
-4жмш4
-2ж3н4
-8жн.
-4жнж4
-4жнн
-4жнс4
-4жнф4
-4жнх4
-4жнш4
-4ж3п
-8жп.
-4жпб
-4жпг
-4жпд
-4жпж4
-4жпз4
-4жпп
-4жпс4
-4жпф4
-4жпх4
-4жпш4
-2ж3р4
-8жр.
-4жрж4
-4жрр
-4жрс4
-4жрф4
-4жрх4
-4жрш4
-4ж3с4
-8жс.
-жсб4
-жсв4
-жсг4
-жсд4
-4жсж4
-4жсз4
-жск4
-жсл4
-жсм4
-жсн4
-жсп4
-жср4
-4жсс4
-жст4
-4жсф4
-4жсх4
-жсц4
-жсч4
-4жсш4
-жсщ4
-4ж3т
-8жт.
-4жтб
-4жтг
-4жтд
-4жтж4
-4жтз4
-4жтк
-4жтп
-4жтс4
-4жтт
-4жтф4
-4жтх4
-4жтц
-4жтч
-4жтш4
-4ж3ф4
-8жф.
-жфб4
-4жфв4
-жфг4
-жфд4
-4жфж4
-4жфз4
-жфк4
-жфл4
-жфм4
-жфн4
-жфп4
-жфр4
-4жфс4
-жфт4
-4жфф4
-4жфх4
-жфц4
-жфч4
-4жфш4
-жфщ4
-4ж3х4
-8жх.
-жхб4
-жхв4
-жхг4
-жхд4
-4жхж4
-4жхз4
-жхк4
-жхл4
-жхм4
-жхн4
-жхп4
-жхр4
-4жхс4
-жхт4
-4жхф4
-4жхх4
-жхц4
-жхч4
-4жхш4
-жхщ4
-4ж3ц
-8жц.
-4жцб
-4жцг
-4жцд
-4жцж4
-4жцз4
-4жцк
-4жцп
-4жцс4
-4жцт
-4жцф4
-4жцх4
-4жцц
-4жцч
-4жцш4
-4ж3ч
-8жч.
-4жчб
-4жчг
-4жчд
-4жчж4
-4жчз4
-4жчк
-4жчп
-4жчс4
-4жчт
-4жчф4
-4жчх4
-4жчц
-4жчч
-4жчш4
-4ж3ш4
-8жш.
-жшб4
-жшв4
-жшг4
-жшд4
-4жшж4
-4жшз4
-жшк4
-жшл4
-жшм4
-жшн4
-жшп4
-жшр4
-4жшс4
-жшт4
-4жшф4
-4жшх4
-жшц4
-жшч4
-4жшш4
-жшщ4
-4ж3щ
-8жщ.
-4жщж4
-4жщс4
-4жщф4
-4жщх4
-4жщш4
-4жщщ
-2з3б
-8зб.
-4збб
-4збж4
-4збз4
-4збк
-4збп
-4збс4
-4збт
-4збф4
-4збх4
-4збц
-4збч
-4збш4
-2з3в
-8зв.
-4звв
-4звз4
-4звс4
-4звф4
-4звх4
-4звш4
-2з3г
-8зг.
-4згг
-4згж4
-4згз4
-4згк
-4згп
-4згс4
-4згт
-4згф4
-4згх4
-4згц
-4згч
-4згш4
-2з3д
-8зд.
-4здб
-4здг
-4здд
-4здж4
-4здз4
-4здк
-4здп
-4здс4
-4здт
-4здф4
-4здх4
-4здц
-4здч
-4здш4
-2з3ж
-8зж.
-4зжж
-4зжз4
-4зжс4
-4зжф4
-4зжх4
-4зжш4
-4з3з4
-8зз.
-ззб4
-ззв4
-ззг4
-ззд4
-ззж4
-4ззз4
-ззк4
-ззл4
-ззм4
-ззн4
-ззп4
-ззр4
-4ззс4
-ззт4
-4ззф4
-4ззх4
-ззц4
-ззч4
-4ззш4
-ззщ4
-зй4
-4з3к
-8зк.
-4зкб
-4зкг
-4зкд
-4зкж4
-4зкз4
-4зкк
-4зкс4
-4зкф4
-4зкх4
-4зкш4
-2з3л4
-8зл.
-4злз4
-4злл
-4злс4
-4злф4
-4злх4
-4злш4
-2з3м4
-8зм.
-4змз4
-4змм
-4змс4
-4змф4
-4змх4
-4змш4
-2з3н4
-8зн.
-4знз4
-4знн
-4знс4
-4знф4
-4знх4
-4знш4
-4з3п
-8зп.
-4зпб
-4зпг
-4зпд
-4зпж4
-4зпз4
-4зпп
-4зпс4
-4зпф4
-4зпх4
-4зпш4
-2з3р4
-8зр.
-4зрз4
-4зрр
-4зрс4
-4зрф4
-4зрх4
-4зрш4
-4з3с4
-8зс.
-зсб4
-зсв4
-зсг4
-зсд4
-4зсж4
-4зсз4
-зск4
-зсл4
-зсм4
-зсн4
-зсп4
-зср4
-4зсс4
-зст4
-4зсф4
-4зсх4
-зсц4
-зсч4
-4зсш4
-зсщ4
-4з3т
-8зт.
-4зтб
-4зтг
-4зтд
-4зтж4
-4зтз4
-4зтк
-4зтп
-4зтс4
-4зтт
-4зтф4
-4зтх4
-4зтц
-4зтч
-4зтш4
-4з3ф4
-8зф.
-зфб4
-4зфв4
-зфг4
-зфд4
-4зфж4
-4зфз4
-зфк4
-зфл4
-зфм4
-зфн4
-зфп4
-зфр4
-4зфс4
-зфт4
-4зфф4
-4зфх4
-зфц4
-зфч4
-4зфш4
-зфщ4
-4з3х4
-8зх.
-зхб4
-зхв4
-зхг4
-зхд4
-4зхж4
-4зхз4
-зхк4
-зхл4
-зхм4
-зхн4
-зхп4
-зхр4
-4зхс4
-зхт4
-4зхф4
-4зхх4
-зхц4
-зхч4
-4зхш4
-зхщ4
-4з3ц
-8зц.
-4зцб
-4зцг
-4зцд
-4зцж4
-4зцз4
-4зцк
-4зцп
-4зцс4
-4зцт
-4зцф4
-4зцх4
-4зцц
-4зцч
-4зцш4
-4з3ч
-8зч.
-4зчб
-4зчг
-4зчд
-4зчж4
-4зчз4
-4зчк
-4зчп
-4зчс4
-4зчт
-4зчф4
-4зчх4
-4зчц
-4зчч
-4зчш4
-4з3ш4
-8зш.
-зшб4
-зшв4
-зшг4
-зшд4
-4зшж4
-4зшз4
-зшк4
-зшл4
-зшм4
-зшн4
-зшп4
-зшр4
-4зшс4
-зшт4
-4зшф4
-4зшх4
-зшц4
-зшч4
-4зшш4
-зшщ4
-4з3щ
-8зщ.
-4зщз4
-4зщс4
-4зщф4
-4зщх4
-4зщш4
-4зщщ
-и1
-4й1б
-4й1в
-4й1г
-4й1д
-4й1ж
-4й1з
-4й1к
-4й1л
-4й1м
-4й1н
-4й1п
-4й1р
-4й1с
-4й1т
-4й1ф
-4й1х
-4й1ц
-4й1ч
-4й1ш
-4й1щ
-4к3б4
-8кб.
-4кбб4
-кбв4
-4кбг4
-4кбд4
-кбж4
-кбз4
-4кбк4
-кбл4
-кбм4
-кбн4
-4кбп4
-кбр4
-кбс4
-4кбт4
-кбф4
-кбх4
-4кбц4
-4кбч4
-кбш4
-кбщ4
-2к3в4
-8кв.
-4квб4
-4квв
-4квг4
-4квд4
-4квк4
-4квп4
-4квт4
-4квф
-4квц4
-4квч4
-4к3г4
-8кг.
-4кгб4
-кгв4
-4кгг4
-4кгд4
-кгж4
-кгз4
-4кгк4
-кгл4
-кгм4
-кгн4
-4кгп4
-кгр4
-кгс4
-4кгт4
-кгф4
-кгх4
-4кгц4
-4кгч4
-кгш4
-кгщ4
-4к3д4
-8кд.
-4кдб4
-кдв4
-4кдг4
-4кдд4
-кдж4
-кдз4
-4кдк4
-кдл4
-кдм4
-кдн4
-4кдп4
-кдр4
-кдс4
-4кдт4
-кдф4
-кдх4
-4кдц4
-4кдч4
-кдш4
-кдщ4
-2к3ж4
-8кж.
-4кжб4
-4кжг4
-4кжд4
-4кжж
-4кжк4
-4кжп4
-4кжс
-4кжт4
-4кжф
-4кжх
-4кжц4
-4кжч4
-4кжш
-2к3з4
-8кз.
-4кзб4
-4кзг4
-4кзд4
-4кзз
-4кзк4
-4кзп4
-4кзс
-4кзт4
-4кзф
-4кзх
-4кзц4
-4кзч4
-4кзш
-кй4
-4к3к4
-8кк.
-4ккб4
-ккв4
-4ккг4
-4ккд4
-ккж4
-ккз4
-4ккк4
-ккл4
-ккм4
-ккн4
-ккп4
-ккр4
-ккс4
-ккт4
-ккф4
-ккх4
-ккц4
-ккч4
-ккш4
-ккщ4
-2к3л4
-8кл.
-4клб4
-4клг4
-4клд4
-4клк4
-4клл
-2к3м4
-8км.
-4кмб4
-4кмг4
-4кмд4
-4кмк4
-4кмм
-2к3н4
-8кн.
-4кнб4
-4кнг4
-4кнд4
-4кнк4
-4кнн
-2к3п
-8кп.
-4кпб4
-4кпг4
-4кпд4
-4кпк4
-4кпп
-2к3р4
-8кр.
-4крб4
-4крг4
-4крд4
-4крк4
-4крр
-2к3с
-8кс.
-4ксб4
-4ксг4
-4ксд4
-4ксж
-4ксз
-4кск4
-4ксп4
-4ксс
-4кст4
-4ксц4
-4ксч4
-2к3т
-8кт.
-4ктб4
-4ктг4
-4ктд4
-4ктк4
-4ктп
-4ктт
-4ктц
-4ктч
-2к3ф
-8кф.
-4кфб4
-4кфв
-4кфг4
-4кфд4
-4кфж
-4кфз
-4кфк4
-4кфп4
-4кфт4
-4кфф
-4кфц4
-4кфч4
-2к3х
-8кх.
-4кхб4
-4кхг4
-4кхд4
-4кхж
-4кхз
-4кхк4
-4кхп4
-4кхт4
-4кхх
-4кхц4
-4кхч4
-2к3ц
-8кц.
-4кцб4
-4кцг4
-4кцд4
-4кцк4
-4кцп
-4кцт
-4кцц
-4кцч
-2к3ч
-8кч.
-4кчб4
-4кчг4
-4кчд4
-4кчк4
-4кчп
-4кчт
-4кчц
-4кчч
-2к3ш
-8кш.
-4кшб4
-4кшг4
-4кшд4
-4кшж
-4кшз
-4кшк4
-4кшп4
-4кшт4
-4кшц4
-4кшч4
-4кшш
-2к3щ
-8кщ.
-4кщб4
-4кщг4
-4кщд4
-4кщк4
-4кщщ
-4л3б
-8лб.
-4лбб
-4лбк
-4лбл4
-4лбп
-4лбт
-4лбц
-4лбч
-4л3в
-8лв.
-4лвв
-4лвл4
-4лвф
-4л3г
-8лг.
-4лгг
-4лгк
-4лгл4
-4лгп
-4лгт
-4лгц
-4лгч
-4л3д
-8лд.
-4лдб
-4лдг
-4лдд
-4лдк
-4лдл4
-4лдп
-4лдт
-4лдц
-4лдч
-4л3ж
-8лж.
-4лжж
-4лжл4
-4лжс
-4лжф
-4лжх
-4лжш
-4л3з
-8лз.
-4лзз
-4лзл4
-4лзс
-4лзф
-4лзх
-4лзш
-4л3к
-8лк.
-4лкб
-4лкг
-4лкд
-4лкк
-4лкл4
-4л3л4
-8лл.
-ллб4
-ллв4
-ллг4
-ллд4
-ллж4
-ллз4
-ллк4
-4ллл4
-ллм4
-ллн4
-ллп4
-ллр4
-ллс4
-ллт4
-ллф4
-ллх4
-ллц4
-ллч4
-ллш4
-ллщ4
-4л3м
-8лм.
-4лмл4
-4лмм
-4л3н
-8лн.
-4лнл4
-4лнн
-4л3п
-8лп.
-4лпб
-4лпг
-4лпд
-4лпл4
-4лпп
-2л3р4
-8лр.
-4лрл4
-4лрр
-4л3с
-8лс.
-4лсж
-4лсз
-4лсл4
-4лсс
-4л3т
-8лт.
-4лтб
-4лтг
-4лтд
-4лтк
-4лтл4
-4лтп
-4лтт
-4лтц
-4лтч
-4л3ф
-8лф.
-4лфв
-4лфж
-4лфз
-4лфл4
-4лфф
-4л3х
-8лх.
-4лхж
-4лхз
-4лхл4
-4лхх
-4л3ц
-8лц.
-4лцб
-4лцг
-4лцд
-4лцк
-4лцл4
-4лцп
-4лцт
-4лцц
-4лцч
-4л3ч
-8лч.
-4лчб
-4лчг
-4лчд
-4лчк
-4лчл4
-4лчп
-4лчт
-4лчц
-4лчч
-4л3ш
-8лш.
-4лшж
-4лшз
-4лшл4
-4лшш
-4л3щ
-8лщ.
-4лщл4
-4лщщ
-4м3б
-8мб.
-4мбб
-4мбк
-4мбм4
-4мбп
-4мбт
-4мбц
-4мбч
-4м3в
-8мв.
-4мвв
-4мвм4
-4мвф
-4м3г
-8мг.
-4мгг
-4мгк
-4мгм4
-4мгп
-4мгт
-4мгц
-4мгч
-4м3д
-8мд.
-4мдб
-4мдг
-4мдд
-4мдк
-4мдм4
-4мдп
-4мдт
-4мдц
-4мдч
-4м3ж
-8мж.
-4мжж
-4мжм4
-4мжс
-4мжф
-4мжх
-4мжш
-4м3з
-8мз.
-4мзз
-4мзм4
-4мзс
-4мзф
-4мзх
-4мзш
-4м3к
-8мк.
-4мкб
-4мкг
-4мкд
-4мкк
-4мкм4
-2м3л4
-8мл.
-4млл
-4млм4
-4м3м4
-8мм.
-ммб4
-ммв4
-ммг4
-ммд4
-ммж4
-ммз4
-ммк4
-ммл4
-4ммм4
-ммн4
-ммп4
-ммр4
-ммс4
-ммт4
-ммф4
-ммх4
-ммц4
-ммч4
-ммш4
-ммщ4
-2м3н4
-8мн.
-4мнм4
-4мнн
-4м3п
-8мп.
-4мпб
-4мпг
-4мпд
-4мпм4
-4мпп
-2м3р4
-8мр.
-4мрм4
-4мрр
-4м3с
-8мс.
-4мсж
-4мсз
-4мсм4
-4мсс
-4м3т
-8мт.
-4мтб
-4мтг
-4мтд
-4мтк
-4мтм4
-4мтп
-4мтт
-4мтц
-4мтч
-4м3ф
-8мф.
-4мфв
-4мфж
-4мфз
-4мфм4
-4мфф
-4м3х
-8мх.
-4мхж
-4мхз
-4мхм4
-4мхх
-4м3ц
-8мц.
-4мцб
-4мцг
-4мцд
-4мцк
-4мцм4
-4мцп
-4мцт
-4мцц
-4мцч
-4м3ч
-8мч.
-4мчб
-4мчг
-4мчд
-4мчк
-4мчм4
-4мчп
-4мчт
-4мчц
-4мчч
-4м3ш
-8мш.
-4мшж
-4мшз
-4мшм4
-4мшш
-4м3щ
-8мщ.
-4мщм4
-4мщщ
-на2д3з
-4н3б
-8нб.
-4нбб
-4нбк
-4нбн4
-4нбп
-4нбт
-4нбц
-4нбч
-4н3в
-8нв.
-4нвв
-4нвн4
-4нвф
-4н3г
-8нг.
-4нгг
-4нгк
-4нгн4
-4нгп
-4нгт
-4нгц
-4нгч
-4н3д
-8нд.
-4ндб
-4ндг
-4ндд
-4ндк
-4ндн4
-4ндп
-4ндт
-4ндц
-4ндч
-4н3ж
-8нж.
-4нжж
-4нжн4
-4нжс
-4нжф
-4нжх
-4нжш
-4н3з
-8нз.
-4нзз
-4нзн4
-4нзс
-4нзф
-4нзх
-4нзш
-4н3к
-8нк.
-4нкб
-4нкг
-4нкд
-4нкк
-4нкн4
-2н3л4
-8нл.
-4нлл
-4нлн4
-4н3м
-8нм.
-4нмм
-4нмн4
-4н3н4
-8нн.
-ннб4
-ннв4
-ннг4
-ннд4
-ннж4
-ннз4
-ннк4
-ннл4
-ннм4
-4ннн4
-ннп4
-ннр4
-ннс4
-ннт4
-ннф4
-ннх4
-ннц4
-ннч4
-ннш4
-ннщ4
-4н3п
-8нп.
-4нпб
-4нпг
-4нпд
-4нпн4
-4нпп
-2н3р4
-8нр.
-4нрн4
-4нрр
-4н3с
-8нс.
-4нсж
-4нсз
-4нсн4
-4нсс
-4н3т
-8нт.
-4нтб
-4нтг
-4нтд
-4нтк
-4нтн4
-4нтп
-4нтт
-4нтц
-4нтч
-4н3ф
-8нф.
-4нфв
-4нфж
-4нфз
-4нфн4
-4нфф
-4н3х
-8нх.
-4нхж
-4нхз
-4нхн4
-4нхх
-4н3ц
-8нц.
-4нцб
-4нцг
-4нцд
-4нцк
-4нцн4
-4нцп
-4нцт
-4нцц
-4нцч
-4н3ч
-8нч.
-4нчб
-4нчг
-4нчд
-4нчк
-4нчн4
-4нчп
-4нчт
-4нчц
-4нчч
-4н3ш
-8нш.
-4ншж
-4ншз
-4ншн4
-4ншш
-4н3щ
-8нщ.
-4нщн4
-4нщщ
-о1
-4п3б4
-8пб.
-4пбб4
-пбв4
-4пбг4
-4пбд4
-пбж4
-пбз4
-4пбк4
-пбл4
-пбм4
-пбн4
-4пбп4
-пбр4
-пбс4
-4пбт4
-пбф4
-пбх4
-4пбц4
-4пбч4
-пбш4
-пбщ4
-2п3в4
-8пв.
-4пвб4
-4пвв
-4пвг4
-4пвд4
-4пвк4
-4пвп4
-4пвт4
-4пвф
-4пвц4
-4пвч4
-4п3г4
-8пг.
-4пгб4
-пгв4
-4пгг4
-4пгд4
-пгж4
-пгз4
-4пгк4
-пгл4
-пгм4
-пгн4
-4пгп4
-пгр4
-пгс4
-4пгт4
-пгф4
-пгх4
-4пгц4
-4пгч4
-пгш4
-пгщ4
-4п3д4
-8пд.
-4пдб4
-пдв4
-4пдг4
-4пдд4
-пдж4
-пдз4
-4пдк4
-пдл4
-пдм4
-пдн4
-4пдп4
-пдр4
-пдс4
-4пдт4
-пдф4
-пдх4
-4пдц4
-4пдч4
-пдш4
-пдщ4
-2п3ж4
-8пж.
-4пжб4
-4пжг4
-4пжд4
-4пжж
-4пжк4
-4пжп4
-4пжс
-4пжт4
-4пжф
-4пжх
-4пжц4
-4пжч4
-4пжш
-2п3з4
-8пз.
-4пзб4
-4пзг4
-4пзд4
-4пзз
-4пзк4
-4пзп4
-4пзс
-4пзт4
-4пзф
-4пзх
-4пзц4
-4пзч4
-4пзш
-пй4
-2п3к
-8пк.
-4пкб4
-4пкг4
-4пкд4
-4пкк
-4пкп4
-2п3л4
-8пл.
-4плб4
-4плг4
-4плд4
-4плл
-4плп4
-2п3м4
-8пм.
-4пмб4
-4пмг4
-4пмд4
-4пмм
-4пмп4
-2п3н4
-8пн.
-4пнб4
-4пнг4
-4пнд4
-4пнн
-4пнп4
-по2д3з
-4п3п4
-8пп.
-4ппб4
-ппв4
-4ппг4
-4ппд4
-ппж4
-ппз4
-ппк4
-ппл4
-ппм4
-ппн4
-4ппп4
-ппр4
-ппс4
-ппт4
-ппф4
-ппх4
-ппц4
-ппч4
-ппш4
-ппщ4
-2п3р4
-8пр.
-4прб4
-4прг4
-4прд4
-пре2д2ж
-пре2д3з
-4прп4
-4прр
-2п3с
-8пс.
-4псб4
-4псг4
-4псд4
-4псж
-4псз
-4пск4
-4псп4
-4псс
-4пст4
-4псц4
-4псч4
-2п3т
-8пт.
-4птб4
-4птг4
-4птд4
-4птк
-4птп4
-4птт
-4птц
-4птч
-2п3ф
-8пф.
-4пфб4
-4пфв
-4пфг4
-4пфд4
-4пфж
-4пфз
-4пфк4
-4пфп4
-4пфт4
-4пфф
-4пфц4
-4пфч4
-2п3х
-8пх.
-4пхб4
-4пхг4
-4пхд4
-4пхж
-4пхз
-4пхк4
-4пхп4
-4пхт4
-4пхх
-4пхц4
-4пхч4
-2п3ц
-8пц.
-4пцб4
-4пцг4
-4пцд4
-4пцк
-4пцп4
-4пцт
-4пцц
-4пцч
-2п3ч
-8пч.
-4пчб4
-4пчг4
-4пчд4
-4пчк
-4пчп4
-4пчт
-4пчц
-4пчч
-2п3ш
-8пш.
-4пшб4
-4пшг4
-4пшд4
-4пшж
-4пшз
-4пшк4
-4пшп4
-4пшт4
-4пшц4
-4пшч4
-4пшш
-2п3щ
-8пщ.
-4пщб4
-4пщг4
-4пщд4
-4пщп4
-4пщщ
-4р3б
-8рб.
-4рбб
-4рбк
-4рбп
-4рбр4
-4рбт
-4рбц
-4рбч
-4р3в
-8рв.
-4рвв
-4рвр4
-4рвф
-4р3г
-8рг.
-4ргг
-4ргк
-4ргп
-4ргр4
-4ргт
-4ргц
-4ргч
-4р3д
-8рд.
-4рдб
-4рдг
-4рдд
-4рдк
-4рдп
-4рдр4
-4рдт
-4рдц
-4рдч
-4р3ж
-8рж.
-4ржж
-4ржр4
-4ржс
-4ржф
-4ржх
-4ржш
-4р3з
-8рз.
-4рзз
-4рзр4
-4рзс
-4рзф
-4рзх
-4рзш
-4р3к
-8рк.
-4ркб
-4ркг
-4ркд
-4ркк
-4ркр4
-4р3л
-8рл.
-4рлл
-4рлр4
-4р3м
-8рм.
-4рмм
-4рмр4
-4р3н
-8рн.
-4рнн
-4рнр4
-4р3п
-8рп.
-4рпб
-4рпг
-4рпд
-4рпп
-4рпр4
-4р3р4
-8рр.
-ррб4
-ррв4
-ррг4
-ррд4
-ррж4
-ррз4
-ррк4
-ррл4
-ррм4
-ррн4
-ррп4
-4ррр4
-ррс4
-ррт4
-ррф4
-ррх4
-ррц4
-ррч4
-ррш4
-ррщ4
-4р3с
-8рс.
-4рсж
-4рсз
-4рср4
-4рсс
-4р3т
-8рт.
-4ртб
-4ртг
-4ртд
-4ртк
-4ртп
-4ртр4
-4ртт
-4ртц
-4ртч
-4р3ф
-8рф.
-4рфв
-4рфж
-4рфз
-4рфр4
-4рфф
-4р3х
-8рх.
-4рхж
-4рхз
-4рхр4
-4рхх
-4р3ц
-8рц.
-4рцб
-4рцг
-4рцд
-4рцк
-4рцп
-4рцр4
-4рцт
-4рцц
-4рцч
-4р3ч
-8рч.
-4рчб
-4рчг
-4рчд
-4рчк
-4рчп
-4рчр4
-4рчт
-4рчц
-4рчч
-4р3ш
-8рш.
-4ршж
-4ршз
-4ршр4
-4ршш
-4р3щ
-8рщ.
-4рщр4
-4рщщ
-2с3б4
-8сб.
-4сбб
-4сбж4
-4сбз4
-4сбк
-4сбп
-4сбс4
-4сбт
-4сбф4
-4сбх4
-4сбц
-4сбч
-4сбш4
-2с3в4
-8св.
-4свв
-4свж4
-4свз4
-4свс4
-4свф
-2с3г4
-8сг.
-4сгг
-4сгж4
-4сгз4
-4сгк
-4сгп
-4сгс4
-4сгт
-4сгф4
-4сгх4
-4сгц
-4сгч
-4сгш4
-2с3д4
-8сд.
-4сдб
-4сдг
-4сдд
-4сдж4
-4сдз4
-4сдк
-4сдп
-4сдс4
-4сдт
-4сдф4
-4сдх4
-4сдц
-4сдч
-4сдш4
-4с3ж4
-8сж.
-сжб4
-сжв4
-сжг4
-сжд4
-4сжж4
-4сжз4
-сжк4
-сжл4
-сжм4
-сжн4
-сжп4
-сжр4
-4сжс4
-сжт4
-4сжф4
-4сжх4
-сжц4
-сжч4
-4сжш4
-сжщ4
-4с3з4
-8сз.
-сзб4
-сзв4
-сзг4
-сзд4
-4сзж4
-4сзз4
-сзк4
-сзл4
-сзм4
-сзн4
-сзп4
-сзр4
-4сзс4
-сзт4
-4сзф4
-4сзх4
-сзц4
-сзч4
-4сзш4
-сзщ4
-сй4
-2с3к
-8ск.
-4скб
-4скг
-4скд
-4скж4
-4скз4
-4скк
-4скс4
-4скф4
-4скх4
-4скш4
-2с3л4
-8сл.
-4слж4
-4слз4
-4слл
-4слс4
-2с3м4
-8см.
-4смж4
-4смз4
-4смм
-4смс4
-2с3н4
-8сн.
-4снж4
-4снз4
-4снн
-4снс4
-2с3п
-8сп.
-4спб
-4спг
-4спд
-4спж4
-4спз4
-4спп
-4спс4
-4спф4
-4спх4
-4спш4
-2с3р4
-8ср.
-4срж4
-4срз4
-4срр
-4срс4
-4с3с4
-8сс.
-ссб4
-ссв4
-ссг4
-ссд4
-4ссж4
-4ссз4
-сск4
-ссл4
-ссм4
-ссн4
-ссп4
-сср4
-4ссс4
-сст4
-ссф4
-ссх4
-ссц4
-ссч4
-ссш4
-ссщ4
-2с3т
-8ст.
-4стб
-4стг
-4стд
-4стж4
-4стз4
-4стк
-4стп
-4стс4
-4стт
-4стф4
-4стх4
-4стц
-4стч
-4стш4
-2с3ф
-8сф.
-4сфв
-4сфж4
-4сфз4
-4сфс4
-4сфф
-2с3х
-8сх.
-4схж4
-4схз4
-4схс4
-4схх
-2с3ц
-8сц.
-4сцб
-4сцг
-4сцд
-4сцж4
-4сцз4
-4сцк
-4сцп
-4сцс4
-4сцт
-4сцф4
-4сцх4
-4сцц
-4сцч
-4сцш4
-2с3ч
-8сч.
-4счб
-4счг
-4счд
-4счж4
-4счз4
-4счк
-4счп
-4счс4
-4счт
-4счф4
-4счх4
-4счц
-4счч
-4счш4
-2с3ш
-8сш.
-4сшж4
-4сшз4
-4сшс4
-4сшш
-2с3щ
-8сщ.
-4сщж4
-4сщз4
-4сщс4
-4сщщ
-4т3б4
-8тб.
-4тбб4
-тбв4
-4тбг4
-4тбд4
-тбж4
-тбз4
-4тбк4
-тбл4
-тбм4
-тбн4
-4тбп4
-тбр4
-тбс4
-4тбт4
-тбф4
-тбх4
-4тбц4
-4тбч4
-тбш4
-тбщ4
-2т3в4
-8тв.
-4твб4
-4твв
-4твг4
-4твд4
-4твк4
-4твп4
-4твт4
-4твф
-4твц4
-4твч4
-4т3г4
-8тг.
-4тгб4
-тгв4
-4тгг4
-4тгд4
-тгж4
-тгз4
-4тгк4
-тгл4
-тгм4
-тгн4
-4тгп4
-тгр4
-тгс4
-4тгт4
-тгф4
-тгх4
-4тгц4
-4тгч4
-тгш4
-тгщ4
-4т3д4
-8тд.
-4тдб4
-тдв4
-4тдг4
-4тдд4
-тдж4
-тдз4
-4тдк4
-тдл4
-тдм4
-тдн4
-4тдп4
-тдр4
-тдс4
-4тдт4
-тдф4
-тдх4
-4тдц4
-4тдч4
-тдш4
-тдщ4
-2т3ж4
-8тж.
-4тжб4
-4тжг4
-4тжд4
-4тжж
-4тжк4
-4тжп4
-4тжс
-4тжт4
-4тжф
-4тжх
-4тжц4
-4тжч4
-4тжш
-2т3з4
-8тз.
-4тзб4
-4тзг4
-4тзд4
-4тзз
-4тзк4
-4тзп4
-4тзс
-4тзт4
-4тзф
-4тзх
-4тзц4
-4тзч4
-4тзш
-тй4
-4т3к4
-8тк.
-4ткб4
-ткв4
-4ткг4
-4ткд4
-ткж4
-ткз4
-4ткк4
-ткл4
-ткм4
-ткн4
-4ткп4
-ткр4
-ткс4
-4ткт4
-ткф4
-ткх4
-4ткц4
-4ткч4
-ткш4
-ткщ4
-2т3л4
-8тл.
-4тлб4
-4тлг4
-4тлд4
-4тлк4
-4тлл
-4тлп4
-4тлт4
-4тлц4
-4тлч4
-2т3м4
-8тм.
-4тмб4
-4тмг4
-4тмд4
-4тмк4
-4тмм
-4тмп4
-4тмт4
-4тмц4
-4тмч4
-2т3н4
-8тн.
-4тнб4
-4тнг4
-4тнд4
-4тнк4
-4тнн
-4тнп4
-4тнт4
-4тнц4
-4тнч4
-4т3п4
-8тп.
-4тпб4
-тпв4
-4тпг4
-4тпд4
-тпж4
-тпз4
-4тпк4
-тпл4
-тпм4
-тпн4
-4тпп4
-тпр4
-тпс4
-4тпт4
-тпф4
-тпх4
-4тпц4
-4тпч4
-тпш4
-тпщ4
-2т3р4
-8тр.
-4трб4
-4трг4
-4трд4
-4трк4
-4трп4
-4трр
-4трт4
-4трц4
-4трч4
-2т3с
-8тс.
-4тсб4
-4тсг4
-4тсд4
-4тсж
-4тсз
-4тск4
-4тсп4
-4тсс
-4тст4
-4тсц4
-4тсч4
-4т3т4
-8тт.
-4ттб4
-ттв4
-4ттг4
-4ттд4
-ттж4
-ттз4
-4ттк4
-ттл4
-ттм4
-ттн4
-4ттп4
-ттр4
-ттс4
-4ттт4
-ттф4
-ттх4
-4ттц4
-4ттч4
-ттш4
-ттщ4
-2т3ф
-8тф.
-4тфб4
-4тфв
-4тфг4
-4тфд4
-4тфж
-4тфз
-4тфк4
-4тфп4
-4тфт4
-4тфф
-4тфц4
-4тфч4
-2т3х
-8тх.
-4тхб4
-4тхг4
-4тхд4
-4тхж
-4тхз
-4тхк4
-4тхп4
-4тхт4
-4тхх
-4тхц4
-4тхч4
-4т3ц4
-8тц.
-4тцб4
-тцв4
-4тцг4
-4тцд4
-тцж4
-тцз4
-4тцк4
-тцл4
-тцм4
-тцн4
-4тцп4
-тцр4
-тцс4
-4тцт4
-тцф4
-тцх4
-4тцц4
-4тцч4
-тцш4
-тцщ4
-4т3ч4
-8тч.
-4тчб4
-тчв4
-4тчг4
-4тчд4
-тчж4
-тчз4
-4тчк4
-тчл4
-тчм4
-тчн4
-4тчп4
-тчр4
-тчс4
-4тчт4
-тчф4
-тчх4
-4тчц4
-4тчч4
-тчш4
-тчщ4
-2т3ш
-8тш.
-4тшб4
-4тшг4
-4тшд4
-4тшж
-4тшз
-4тшк4
-4тшп4
-4тшт4
-4тшц4
-4тшч4
-4тшш
-2т3щ
-8тщ.
-4тщб4
-4тщг4
-4тщд4
-4тщк4
-4тщп4
-4тщт4
-4тщц4
-4тщч4
-4тщщ
-у1
-2ф3б4
-8фб.
-4фбб
-4фбв4
-4фбж4
-4фбз4
-4фбк
-4фбп
-4фбс4
-4фбт
-4фбф4
-4фбх4
-4фбц
-4фбч
-4фбш4
-4ф3в4
-8фв.
-фвб4
-4фвв4
-фвг4
-фвд4
-4фвж4
-4фвз4
-фвк4
-фвл4
-фвм4
-фвн4
-фвп4
-фвр4
-фвс4
-фвт4
-4фвф4
-фвх4
-фвц4
-фвч4
-фвш4
-фвщ4
-2ф3г4
-8фг.
-4фгв4
-4фгг
-4фгж4
-4фгз4
-4фгк
-4фгп
-4фгс4
-4фгт
-4фгф4
-4фгх4
-4фгц
-4фгч
-4фгш4
-2ф3д4
-8фд.
-4фдб
-4фдв4
-4фдг
-4фдд
-4фдж4
-4фдз4
-4фдк
-4фдп
-4фдс4
-4фдт
-4фдф4
-4фдх4
-4фдц
-4фдч
-4фдш4
-4ф3ж4
-8фж.
-фжб4
-4фжв4
-фжг4
-фжд4
-4фжж4
-4фжз4
-фжк4
-фжл4
-фжм4
-фжн4
-фжп4
-фжр4
-4фжс4
-фжт4
-4фжф4
-4фжх4
-фжц4
-фжч4
-4фжш4
-фжщ4
-4ф3з4
-8фз.
-фзб4
-4фзв4
-фзг4
-фзд4
-4фзж4
-4фзз4
-фзк4
-фзл4
-фзм4
-фзн4
-фзп4
-фзр4
-4фзс4
-фзт4
-4фзф4
-4фзх4
-фзц4
-фзч4
-4фзш4
-фзщ4
-фй4
-2ф3к
-8фк.
-4фкб
-4фкв4
-4фкг
-4фкд
-4фкж4
-4фкз4
-4фкк
-4фкс4
-4фкф4
-4фкх4
-4фкш4
-2ф3л4
-8фл.
-4флв4
-4флж4
-4флз4
-4флл
-4флф4
-2ф3м4
-8фм.
-4фмв4
-4фмж4
-4фмз4
-4фмм
-4фмф4
-2ф3н4
-8фн.
-4фнв4
-4фнж4
-4фнз4
-4фнн
-4фнф4
-2ф3п
-8фп.
-4фпб
-4фпв4
-4фпг
-4фпд
-4фпж4
-4фпз4
-4фпп
-4фпс4
-4фпф4
-4фпх4
-4фпш4
-2ф3р4
-8фр.
-4фрв4
-4фрж4
-4фрз4
-4фрр
-4фрф4
-2ф3с
-8фс.
-4фсв4
-4фсж4
-4фсз4
-4фсс
-4фсф4
-2ф3т
-8фт.
-4фтб
-4фтв4
-4фтг
-4фтд
-4фтж4
-4фтз4
-4фтк
-4фтп
-4фтс4
-4фтт
-4фтф4
-4фтх4
-4фтц
-4фтч
-4фтш4
-4ф3ф4
-8фф.
-ффб4
-4ффв4
-ффг4
-ффд4
-4ффж4
-4ффз4
-ффк4
-ффл4
-ффм4
-ффн4
-ффп4
-ффр4
-ффс4
-ффт4
-4ффф4
-ффх4
-ффц4
-ффч4
-ффш4
-ффщ4
-2ф3х
-8фх.
-4фхв4
-4фхж4
-4фхз4
-4фхф4
-4фхх
-2ф3ц
-8фц.
-4фцб
-4фцв4
-4фцг
-4фцд
-4фцж4
-4фцз4
-4фцк
-4фцп
-4фцс4
-4фцт
-4фцф4
-4фцх4
-4фцц
-4фцч
-4фцш4
-2ф3ч
-8фч.
-4фчб
-4фчв4
-4фчг
-4фчд
-4фчж4
-4фчз4
-4фчк
-4фчп
-4фчс4
-4фчт
-4фчф4
-4фчх4
-4фчц
-4фчч
-4фчш4
-2ф3ш
-8фш.
-4фшв4
-4фшж4
-4фшз4
-4фшф4
-4фшш
-2ф3щ
-8фщ.
-4фщв4
-4фщж4
-4фщз4
-4фщф4
-4фщщ
-2х3б4
-8хб.
-4хбб
-4хбж4
-4хбз4
-4хбк
-4хбп
-4хбс4
-4хбт
-4хбф4
-4хбх4
-4хбц
-4хбч
-4хбш4
-2х3в4
-8хв.
-4хвв
-4хвж4
-4хвз4
-4хвф
-4хвх4
-2х3г4
-8хг.
-4хгг
-4хгж4
-4хгз4
-4хгк
-4хгп
-4хгс4
-4хгт
-4хгф4
-4хгх4
-4хгц
-4хгч
-4хгш4
-2х3д4
-8хд.
-4хдб
-4хдг
-4хдд
-4хдж4
-4хдз4
-4хдк
-4хдп
-4хдс4
-4хдт
-4хдф4
-4хдх4
-4хдц
-4хдч
-4хдш4
-4х3ж4
-8хж.
-хжб4
-хжв4
-хжг4
-хжд4
-4хжж4
-4хжз4
-хжк4
-хжл4
-хжм4
-хжн4
-хжп4
-хжр4
-4хжс4
-хжт4
-4хжф4
-4хжх4
-хжц4
-хжч4
-4хжш4
-хжщ4
-4х3з4
-8хз.
-хзб4
-хзв4
-хзг4
-хзд4
-4хзж4
-4хзз4
-хзк4
-хзл4
-хзм4
-хзн4
-хзп4
-хзр4
-4хзс4
-хзт4
-4хзф4
-4хзх4
-хзц4
-хзч4
-4хзш4
-хзщ4
-хй4
-2х3к
-8хк.
-4хкб
-4хкг
-4хкд
-4хкж4
-4хкз4
-4хкк
-4хкс4
-4хкф4
-4хкх4
-4хкш4
-2х3л4
-8хл.
-4хлж4
-4хлз4
-4хлл
-4хлх4
-2х3м4
-8хм.
-4хмж4
-4хмз4
-4хмм
-4хмх4
-2х3н4
-8хн.
-4хнж4
-4хнз4
-4хнн
-4хнх4
-2х3п
-8хп.
-4хпб
-4хпг
-4хпд
-4хпж4
-4хпз4
-4хпп
-4хпс4
-4хпф4
-4хпх4
-4хпш4
-2х3р4
-8хр.
-4хрж4
-4хрз4
-4хрр
-4хрх4
-2х3с
-8хс.
-4хсж4
-4хсз4
-4хсс
-4хсх4
-2х3т
-8хт.
-4хтб
-4хтг
-4хтд
-4хтж4
-4хтз4
-4хтк
-4хтп
-4хтс4
-4хтт
-4хтф4
-4хтх4
-4хтц
-4хтч
-4хтш4
-2х3ф
-8хф.
-4хфв
-4хфж4
-4хфз4
-4хфф
-4хфх4
-4х3х4
-8хх.
-ххб4
-ххв4
-ххг4
-ххд4
-4ххж4
-4ххз4
-ххк4
-ххл4
-ххм4
-ххн4
-ххп4
-ххр4
-ххс4
-ххт4
-ххф4
-4ххх4
-ххц4
-ххч4
-ххш4
-ххщ4
-2х3ц
-8хц.
-4хцб
-4хцг
-4хцд
-4хцж4
-4хцз4
-4хцк
-4хцп
-4хцс4
-4хцт
-4хцф4
-4хцх4
-4хцц
-4хцч
-4хцш4
-2х3ч
-8хч.
-4хчб
-4хчг
-4хчд
-4хчж4
-4хчз4
-4хчк
-4хчп
-4хчс4
-4хчт
-4хчф4
-4хчх4
-4хчц
-4хчч
-4хчш4
-2х3ш
-8хш.
-4хшж4
-4хшз4
-4хшх4
-4хшш
-2х3щ
-8хщ.
-4хщж4
-4хщз4
-4хщх4
-4хщщ
-4ц3б4
-8цб.
-4цбб4
-цбв4
-4цбг4
-4цбд4
-цбж4
-цбз4
-4цбк4
-цбл4
-цбм4
-цбн4
-4цбп4
-цбр4
-цбс4
-4цбт4
-цбф4
-цбх4
-4цбц4
-4цбч4
-цбш4
-цбщ4
-2ц3в4
-8цв.
-4цвб4
-4цвв
-4цвг4
-4цвд4
-4цвк4
-4цвп4
-4цвт4
-4цвф
-4цвц4
-4цвч4
-4ц3г4
-8цг.
-4цгб4
-цгв4
-4цгг4
-4цгд4
-цгж4
-цгз4
-4цгк4
-цгл4
-цгм4
-цгн4
-4цгп4
-цгр4
-цгс4
-4цгт4
-цгф4
-цгх4
-4цгц4
-4цгч4
-цгш4
-цгщ4
-4ц3д4
-8цд.
-4цдб4
-цдв4
-4цдг4
-4цдд4
-цдж4
-цдз4
-4цдк4
-цдл4
-цдм4
-цдн4
-4цдп4
-цдр4
-цдс4
-4цдт4
-цдф4
-цдх4
-4цдц4
-4цдч4
-цдш4
-цдщ4
-2ц3ж4
-8цж.
-4цжб4
-4цжг4
-4цжд4
-4цжж
-4цжк4
-4цжп4
-4цжс
-4цжт4
-4цжф
-4цжх
-4цжц4
-4цжч4
-4цжш
-2ц3з4
-8цз.
-4цзб4
-4цзг4
-4цзд4
-4цзз
-4цзк4
-4цзп4
-4цзс
-4цзт4
-4цзф
-4цзх
-4цзц4
-4цзч4
-4цзш
-цй4
-4ц3к4
-8цк.
-4цкб4
-цкв4
-4цкг4
-4цкд4
-цкж4
-цкз4
-4цкк4
-цкл4
-цкм4
-цкн4
-4цкп4
-цкр4
-цкс4
-4цкт4
-цкф4
-цкх4
-4цкц4
-4цкч4
-цкш4
-цкщ4
-2ц3л4
-8цл.
-4цлб4
-4цлг4
-4цлд4
-4цлк4
-4цлл
-4цлп4
-4цлт4
-4цлц4
-4цлч4
-2ц3м4
-8цм.
-4цмб4
-4цмг4
-4цмд4
-4цмк4
-4цмм
-4цмп4
-4цмт4
-4цмц4
-4цмч4
-2ц3н4
-8цн.
-4цнб4
-4цнг4
-4цнд4
-4цнк4
-4цнн
-4цнп4
-4цнт4
-4цнц4
-4цнч4
-4ц3п4
-8цп.
-4цпб4
-цпв4
-4цпг4
-4цпд4
-цпж4
-цпз4
-4цпк4
-цпл4
-цпм4
-цпн4
-4цпп4
-цпр4
-цпс4
-4цпт4
-цпф4
-цпх4
-4цпц4
-4цпч4
-цпш4
-цпщ4
-2ц3р4
-8цр.
-4црб4
-4црг4
-4црд4
-4црк4
-4црп4
-4црр
-4црт4
-4црц4
-4црч4
-2ц3с
-8цс.
-4цсб4
-4цсг4
-4цсд4
-4цсж
-4цсз
-4цск4
-4цсп4
-4цсс
-4цст4
-4цсц4
-4цсч4
-4ц3т4
-8цт.
-4цтб4
-цтв4
-4цтг4
-4цтд4
-цтж4
-цтз4
-4цтк4
-цтл4
-цтм4
-цтн4
-4цтп4
-цтр4
-цтс4
-4цтт4
-цтф4
-цтх4
-4цтц4
-4цтч4
-цтш4
-цтщ4
-2ц3ф
-8цф.
-4цфб4
-4цфв
-4цфг4
-4цфд4
-4цфж
-4цфз
-4цфк4
-4цфп4
-4цфт4
-4цфф
-4цфц4
-4цфч4
-2ц3х
-8цх.
-4цхб4
-4цхг4
-4цхд4
-4цхж
-4цхз
-4цхк4
-4цхп4
-4цхт4
-4цхх
-4цхц4
-4цхч4
-4ц3ц4
-8цц.
-4ццб4
-ццв4
-4ццг4
-4ццд4
-ццж4
-ццз4
-4ццк4
-ццл4
-ццм4
-ццн4
-4ццп4
-ццр4
-ццс4
-4ццт4
-ццф4
-ццх4
-4ццц4
-4ццч4
-ццш4
-ццщ4
-4ц3ч4
-8цч.
-4цчб4
-цчв4
-4цчг4
-4цчд4
-цчж4
-цчз4
-4цчк4
-цчл4
-цчм4
-цчн4
-4цчп4
-цчр4
-цчс4
-4цчт4
-цчф4
-цчх4
-4цчц4
-4цчч4
-цчш4
-цчщ4
-2ц3ш
-8цш.
-4цшб4
-4цшг4
-4цшд4
-4цшж
-4цшз
-4цшк4
-4цшп4
-4цшт4
-4цшц4
-4цшч4
-4цшш
-2ц3щ
-8цщ.
-4цщб4
-4цщг4
-4цщд4
-4цщк4
-4цщп4
-4цщт4
-4цщц4
-4цщч4
-4цщщ
-4ч3б4
-8чб.
-4чбб4
-чбв4
-4чбг4
-4чбд4
-чбж4
-чбз4
-4чбк4
-чбл4
-чбм4
-чбн4
-4чбп4
-чбр4
-чбс4
-4чбт4
-чбф4
-чбх4
-4чбц4
-4чбч4
-чбш4
-чбщ4
-2ч3в4
-8чв.
-4чвб4
-4чвв
-4чвг4
-4чвд4
-4чвк4
-4чвп4
-4чвт4
-4чвф
-4чвц4
-4чвч4
-4ч3г4
-8чг.
-4чгб4
-чгв4
-4чгг4
-4чгд4
-чгж4
-чгз4
-4чгк4
-чгл4
-чгм4
-чгн4
-4чгп4
-чгр4
-чгс4
-4чгт4
-чгф4
-чгх4
-4чгц4
-4чгч4
-чгш4
-чгщ4
-4ч3д4
-8чд.
-4чдб4
-чдв4
-4чдг4
-4чдд4
-чдж4
-чдз4
-4чдк4
-чдл4
-чдм4
-чдн4
-4чдп4
-чдр4
-чдс4
-4чдт4
-чдф4
-чдх4
-4чдц4
-4чдч4
-чдш4
-чдщ4
-2ч3ж4
-8чж.
-4чжб4
-4чжг4
-4чжд4
-4чжж
-4чжк4
-4чжп4
-4чжс
-4чжт4
-4чжф
-4чжх
-4чжц4
-4чжч4
-4чжш
-2ч3з4
-8чз.
-4чзб4
-4чзг4
-4чзд4
-4чзз
-4чзк4
-4чзп4
-4чзс
-4чзт4
-4чзф
-4чзх
-4чзц4
-4чзч4
-4чзш
-чй4
-4ч3к4
-8чк.
-4чкб4
-чкв4
-4чкг4
-4чкд4
-чкж4
-чкз4
-4чкк4
-чкл4
-чкм4
-чкн4
-4чкп4
-чкр4
-чкс4
-4чкт4
-чкф4
-чкх4
-4чкц4
-4чкч4
-чкш4
-чкщ4
-2ч3л4
-8чл.
-4члб4
-4члг4
-4члд4
-4члк4
-4члл
-4члп4
-4члт4
-4члц4
-4члч4
-2ч3м4
-8чм.
-4чмб4
-4чмг4
-4чмд4
-4чмк4
-4чмм
-4чмп4
-4чмт4
-4чмц4
-4чмч4
-2ч3н4
-8чн.
-4чнб4
-4чнг4
-4чнд4
-4чнк4
-4чнн
-4чнп4
-4чнт4
-4чнц4
-4чнч4
-4ч3п4
-8чп.
-4чпб4
-чпв4
-4чпг4
-4чпд4
-чпж4
-чпз4
-4чпк4
-чпл4
-чпм4
-чпн4
-4чпп4
-чпр4
-чпс4
-4чпт4
-чпф4
-чпх4
-4чпц4
-4чпч4
-чпш4
-чпщ4
-2ч3р4
-8чр.
-4чрб4
-4чрг4
-4чрд4
-4чрк4
-4чрп4
-4чрр
-4чрт4
-4чрц4
-4чрч4
-2ч3с
-8чс.
-4чсб4
-4чсг4
-4чсд4
-4чсж
-4чсз
-4чск4
-4чсп4
-4чсс
-4чст4
-4чсц4
-4чсч4
-4ч3т4
-8чт.
-4чтб4
-чтв4
-4чтг4
-4чтд4
-чтж4
-чтз4
-4чтк4
-чтл4
-чтм4
-чтн4
-4чтп4
-чтр4
-чтс4
-4чтт4
-чтф4
-чтх4
-4чтц4
-4чтч4
-чтш4
-чтщ4
-2ч3ф
-8чф.
-4чфб4
-4чфв
-4чфг4
-4чфд4
-4чфж
-4чфз
-4чфк4
-4чфп4
-4чфт4
-4чфф
-4чфц4
-4чфч4
-2ч3х
-8чх.
-4чхб4
-4чхг4
-4чхд4
-4чхж
-4чхз
-4чхк4
-4чхп4
-4чхт4
-4чхх
-4чхц4
-4чхч4
-4ч3ц4
-8чц.
-4чцб4
-чцв4
-4чцг4
-4чцд4
-чцж4
-чцз4
-4чцк4
-чцл4
-чцм4
-чцн4
-4чцп4
-чцр4
-чцс4
-4чцт4
-чцф4
-чцх4
-4чцц4
-4чцч4
-чцш4
-чцщ4
-4ч3ч4
-8чч.
-4ччб4
-ччв4
-4ччг4
-4ччд4
-ччж4
-ччз4
-4ччк4
-ччл4
-ччм4
-ччн4
-4ччп4
-ччр4
-ччс4
-4ччт4
-ччф4
-ччх4
-4ччц4
-4ччч4
-ччш4
-ччщ4
-2ч3ш
-8чш.
-4чшб4
-4чшг4
-4чшд4
-4чшж
-4чшз
-4чшк4
-4чшп4
-4чшт4
-4чшц4
-4чшч4
-4чшш
-2ч3щ
-8чщ.
-4чщб4
-4чщг4
-4чщд4
-4чщк4
-4чщп4
-4чщт4
-4чщц4
-4чщч4
-4чщщ
-2ш3б4
-8шб.
-4шбб
-4шбж4
-4шбз4
-4шбк
-4шбп
-4шбс4
-4шбт
-4шбф4
-4шбх4
-4шбц
-4шбч
-4шбш4
-2ш3в4
-8шв.
-4швв
-4швж4
-4швз4
-4швф
-4швш4
-2ш3г4
-8шг.
-4шгг
-4шгж4
-4шгз4
-4шгк
-4шгп
-4шгс4
-4шгт
-4шгф4
-4шгх4
-4шгц
-4шгч
-4шгш4
-2ш3д4
-8шд.
-4шдб
-4шдг
-4шдд
-4шдж4
-4шдз4
-4шдк
-4шдп
-4шдс4
-4шдт
-4шдф4
-4шдх4
-4шдц
-4шдч
-4шдш4
-4ш3ж4
-8шж.
-шжб4
-шжв4
-шжг4
-шжд4
-4шжж4
-4шжз4
-шжк4
-шжл4
-шжм4
-шжн4
-шжп4
-шжр4
-4шжс4
-шжт4
-4шжф4
-4шжх4
-шжц4
-шжч4
-4шжш4
-шжщ4
-4ш3з4
-8шз.
-шзб4
-шзв4
-шзг4
-шзд4
-4шзж4
-4шзз4
-шзк4
-шзл4
-шзм4
-шзн4
-шзп4
-шзр4
-4шзс4
-шзт4
-4шзф4
-4шзх4
-шзц4
-шзч4
-4шзш4
-шзщ4
-шй4
-2ш3к
-8шк.
-4шкб
-4шкг
-4шкд
-4шкж4
-4шкз4
-4шкк
-4шкс4
-4шкф4
-4шкх4
-4шкш4
-2ш3л4
-8шл.
-4шлж4
-4шлз4
-4шлл
-4шлш4
-2ш3м4
-8шм.
-4шмж4
-4шмз4
-4шмм
-4шмш4
-2ш3н4
-8шн.
-4шнж4
-4шнз4
-4шнн
-4шнш4
-2ш3п
-8шп.
-4шпб
-4шпг
-4шпд
-4шпж4
-4шпз4
-4шпп
-4шпс4
-4шпф4
-4шпх4
-4шпш4
-2ш3р4
-8шр.
-4шрж4
-4шрз4
-4шрр
-4шрш4
-2ш3с
-8шс.
-4шсж4
-4шсз4
-4шсс
-4шсш4
-2ш3т
-8шт.
-4штб
-4штг
-4штд
-4штж4
-4штз4
-4штк
-4штп
-4штс4
-4штт
-4штф4
-4штх4
-4штц
-4штч
-4штш4
-2ш3ф
-8шф.
-4шфв
-4шфж4
-4шфз4
-4шфф
-4шфш4
-2ш3х
-8шх.
-4шхж4
-4шхз4
-4шхх
-4шхш4
-2ш3ц
-8шц.
-4шцб
-4шцг
-4шцд
-4шцж4
-4шцз4
-4шцк
-4шцп
-4шцс4
-4шцт
-4шцф4
-4шцх4
-4шцц
-4шцч
-4шцш4
-2ш3ч
-8шч.
-4шчб
-4шчг
-4шчд
-4шчж4
-4шчз4
-4шчк
-4шчп
-4шчс4
-4шчт
-4шчф4
-4шчх4
-4шчц
-4шчч
-4шчш4
-4ш3ш4
-8шш.
-шшб4
-шшв4
-шшг4
-шшд4
-4шшж4
-4шшз4
-шшк4
-шшл4
-шшм4
-шшн4
-шшп4
-шшр4
-шшс4
-шшт4
-шшф4
-шшх4
-шшц4
-шшч4
-4шшш4
-шшщ4
-2ш3щ
-8шщ.
-4шщж4
-4шщз4
-4шщш4
-4шщщ
-2щ3б4
-8щб.
-4щбб
-4щбк
-4щбп
-4щбт
-4щбц
-4щбч
-4щбщ4
-2щ3в4
-8щв.
-4щвв
-4щвф
-4щвщ4
-2щ3г4
-8щг.
-4щгг
-4щгк
-4щгп
-4щгт
-4щгц
-4щгч
-4щгщ4
-2щ3д4
-8щд.
-4щдб
-4щдг
-4щдд
-4щдк
-4щдп
-4щдт
-4щдц
-4щдч
-4щдщ4
-2щ3ж4
-8щж.
-4щжж
-4щжс
-4щжф
-4щжх
-4щжш
-4щжщ4
-2щ3з4
-8щз.
-4щзз
-4щзс
-4щзф
-4щзх
-4щзш
-4щзщ4
-щй4
-2щ3к
-8щк.
-4щкб
-4щкг
-4щкд
-4щкк
-4щкщ4
-2щ3л4
-8щл.
-4щлл
-4щлщ4
-2щ3м4
-8щм.
-4щмм
-4щмщ4
-2щ3н4
-8щн.
-4щнн
-4щнщ4
-2щ3п
-8щп.
-4щпб
-4щпг
-4щпд
-4щпп
-4щпщ4
-2щ3р4
-8щр.
-4щрр
-4щрщ4
-2щ3с
-8щс.
-4щсж
-4щсз
-4щсс
-4щсщ4
-2щ3т
-8щт.
-4щтб
-4щтг
-4щтд
-4щтк
-4щтп
-4щтт
-4щтц
-4щтч
-4щтщ4
-2щ3ф
-8щф.
-4щфв
-4щфж
-4щфз
-4щфф
-4щфщ4
-2щ3х
-8щх.
-4щхж
-4щхз
-4щхх
-4щхщ4
-2щ3ц
-8щц.
-4щцб
-4щцг
-4щцд
-4щцк
-4щцп
-4щцт
-4щцц
-4щцч
-4щцщ4
-2щ3ч
-8щч.
-4щчб
-4щчг
-4щчд
-4щчк
-4щчп
-4щчт
-4щчц
-4щчч
-4щчщ4
-2щ3ш
-8щш.
-4щшж
-4щшз
-4щшш
-4щшщ4
-4щ3щ4
-8щщ.
-щщб4
-щщв4
-щщг4
-щщд4
-щщж4
-щщз4
-щщк4
-щщл4
-щщм4
-щщн4
-щщп4
-щщр4
-щщс4
-щщт4
-щщф4
-щщх4
-щщц4
-щщч4
-щщш4
-4щщщ4
-ъ1
-ю1
-я1} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-ca.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-ca.hyp
deleted file mode 100644
index db408fc2970..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-ca.hyp
+++ /dev/null
@@ -1,33 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-ca.rme
-
-% used: a b c d e g h i j k l n o p r s t u v w x y
-
-\hyphenation{
-cu-rie
-cu-ries
-gei-sha
-gei-shes
-goua-che
-goua-ches
-hip-py
-hip-pies
-hob-by
-hob-bies
-jeep
-jeeps
-joule
-joules
-klee-nex
-klee-nexs
-lar-ghet-ti
-lar-ghet-to
-lied
-lieder
-nos-al-tres
-ro-yal-ties
-ro-yal-ty
-vos-al-tres
-whis-ky
-whis-kies} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-ca.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-ca.pat
deleted file mode 100644
index ec5a4b4ee0c..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-ca.pat
+++ /dev/null
@@ -1,876 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-ca.rme
-
-% used: a b c d e f g h i j l m n o p q r s t u v x y z à ç è é í ï ò ó ú ü
-
-\patterns{
-1ba
-1be
-1bi
-1bo
-1bu
-1ca
-1ce
-1ci
-1co
-1cu
-1da
-1de
-1di
-1do
-3du
-1fa
-1fe
-1fi
-1fo
-1fu
-1ga
-1ge
-1gi
-1go
-1gu
-1ha
-1he
-1hi
-1ho
-1hu
-1ja
-1je
-1ji
-1jo
-1ju
-1la
-1le
-1li
-1lo
-1lu
-1ma
-1me
-1mi
-1mo
-1mu
-1na
-1ne
-3ni
-1no
-1nu
-1pa
-3pe
-3pi
-3po
-1pu
-1qu
-1ra
-1re
-1ri
-1ro
-1ru
-1sa
-1se
-1si
-1so
-1su
-1ta
-1te
-1ti
-1to
-1tu
-1va
-1ve
-1vi
-1vo
-1vu
-1xa
-1xe
-1xi
-1xo
-1xu
-1za
-1ze
-1zi
-1zo
-1zu
-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
-3l2lo
-1l2lu
-1b2la
-1b2le
-1b2li
-1b2lo
-1b2lu
-1b2ra
-1b2re
-1b2ri
-1b2ro
-1b2ru
-1c2la
-1c2le
-1c2li
-1c2lo
-1c2lu
-1c2ra
-1c2re
-1c2ri
-1c2ro
-1c2ru
-1d2ra
-1d2re
-1d2ri
-1d2ro
-1d2ru
-1f2la
-1f2le
-1f2li
-1f2lo
-1f2lu
-1f2ra
-1f2re
-1f2ri
-1f2ro
-1f2ru
-1g2la
-1g2le
-1g2li
-1g2lo
-1g2lu
-1g2ra
-1g2re
-1g2ri
-1g2ro
-1g2ru
-1p2la
-1p2le
-1p2li
-1p2lo
-1p2lu
-1p2ra
-1p2re
-1p2ri
-1p2ro
-1p2ru
-1t2ra
-1t2re
-1t2ri
-1t2ro
-1t2ru
-1n2ya
-1n2ye
-1n2yi
-1n2yo
-1n2yu
-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
-e1a
-e1e
-e1o
-i1a
-i1e
-i1o
-o1a
-o1e
-o1o
-u1a
-u1e
-u1o
-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
-a1i2u
-a1u2a
-a1u2e
-a1u2i
-a1u2o
-a1u2u
-e1i2a
-e1i2e
-e1i2o
-e1i2u
-e1u2a
-e1u2e
-e1u2i
-e1u2o
-e1u2u
-i1i2a
-i1i2e
-i1i2o
-i1i2u
-i1u2a
-i1u2e
-i1u2i
-i1u2o
-i1u2u
-o1i2a
-o1i2e
-o1i2o
-o1i2u
-o1u2a
-o1u2e
-o1u2o
-o1u2i
-o1u2u
-u1i2a
-u1i2e
-u1i2o
-u1i2u
-u1u2a
-u1u2e
-u1u2i
-u1u2o
-u1u2u
-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
-.hi2u
-.hu2a
-.hu2e
-.hu2i
-.hu2o
-.i2è
-.i2ò
-.u2è
-.u2ò
-.hi2é
-.hi2ó
-.hi2ú
-.hi2à
-.hi2è
-.hi2ò
-.hu2é
-.hu2í
-.hu2ó
-.hu2à
-.hu2è
-.hu2ò
-gu2a
-gu2e
-gu2i
-gu2o
-qu2a
-qu2e
-qu2i
-qu2o
-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.
-o1isme.
-u1isme.
-a1ista.
-e1ista.
-i1ista.
-o1ista.
-u1ista.
-a1um.
-e1um.
-i1um.
-o1um.
-u1um.
-.antihi2
-.be2n
-.be2s
-.bi2s
-.ca2p
-.ce2l
-.cla2r
-.co2ll
-.co2n
-.co2r
-.de2s
-.di2s
-.en3a
-.hipe2r
-.hiperm2n
-.in3ac
-.in3ad
-.in3ap
-.in3es
-.in3o
-.inte2r
-.ma2l
-.mal1t2hus
-.pa2n
-.pe2r
-.pe3ri
-.pos2t
-.psa2l
-.rebe2s
-.re2d
-.su2b
-.sub3o
-.subde2s
-.supe2r
-.tran2s
-g2no
-p2si
-p2se
-p2neu
-g2nò
-p2sí
-.ch2
-.th2
-ein1s2tein
-ru1t2herford
-ni2etz1sc2he
-3exp
-3nef
-3nei
-3pr
-3ser
-a3ne
-a3ri
-bi3se
-des3ag
-des3ar
-des3av
-des3enc
-e3ism
-e3le
-e3rio
-e3ris
-es3aco
-es3af
-es3ap
-es3arr
-es3as
-es3int
-ig3n
-in3ex
-n3si
-o3ro
-qui3e
-s3emp
-s3esp
-sub3a
-ui3et
-o3gnò} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-cs.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-cs.hyp
deleted file mode 100644
index 1739a8d8beb..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-cs.hyp
+++ /dev/null
@@ -1,12 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-cs.rme
-
-% used: a c e f h i j k l n o p r t y í ú č ř
-
-\hyphenation{
-koe-fi-ci-ent
-koe-fi-ci-en-ty
-pro-jek-ční
-úhlo-příč-ka
-úhlo-příč-ky} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-cs.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-cs.pat
deleted file mode 100644
index 726a9e7d212..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-cs.pat
+++ /dev/null
@@ -1,3643 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-cs.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u v w x y z á é í ó ú ý č ď ě ň ř š ť ů ž
-
-\patterns{
-.a2
-.a4da
-.a4de
-.a4di
-.a4do
-.a4dé
-.a4kl
-.a4ko
-.a4kr
-.a4ku
-.ale3x
-.a4ra
-.a4re
-.a4ri
-.a4ro
-.a4ry
-.a4rá
-.a4sa
-.a4se
-.a4so
-.as3t3
-.a4sy
-.a4ta
-.a4te
-.at3l
-.a4to
-.a4tr
-.a4ty
-.a4ve
-.b2
-.c2
-.ch2
-.cyk3
-.d2
-.dez3
-.d4na
-.dne4
-.dneš4k
-.d4ny
-.dos4
-.d4ve
-.d4vě
-.d4ví
-.e2
-.e4ch
-.e4ko
-.es3k
-.es3t
-.e4ve
-.f4ri
-.g2
-.h2
-.h4le
-.h4ne
-.i2
-.i4na
-.i4ni
-.i4no
-.is3l
-.j2
-.j4ak
-.je4dl
-.j4se
-.j4zd
-.jád4
-.k2
-.k4li
-.k4ly
-.kří3d
-.l2
-.le4gr
-.li3kv
-.m2
-.mi3st4
-.moud3
-.na3č4
-.ne3c
-.neč4
-.ne3š
-.ni2t
-.no4s3t
-.n4vp
-.ná1
-.nář4k
-.o2
-.o4bé
-.ode3
-.od3l
-.od3rá
-.o4ka
-.o4ko
-.o4na
-.o4ne
-.o4ni
-.o4no
-.o4nu
-.o4ny
-.o4ně
-.o4ní
-.o4pe
-.o4po
-.o4se
-.o4sl
-.os4to
-.os3t3r
-.os4tě
-.ot3rá
-.ot3v
-.o4tí
-.o4tř
-.ově4t
-.o4za
-.oz3do
-.o4zi
-.o4zo
-.o4zu
-.o4šk
-.o4šl
-.o4ži
-.p2
-.pa4re
-.pa3tř
-.polk4l
-.po3č4
-.p4ro
-.p4rý
-.p4se
-.pu3b
-.r2
-.rej4
-.re3s
-.ro4k
-.roze3
-.roz3r
-.ru4dl
-.s2
-.s4ch
-.s4ci
-.sem4
-.se3pn
-.s4ke
-.sk4l
-.s4ká
-.s4le
-.s4na
-.s4ny
-.s4pe
-.s4po
-.st2
-.s4tá
-.s4ži
-.t2
-.u2
-.u4ba
-.u4be
-.u4bi
-.u4bo
-.u4de
-.u4di
-.u4do
-.u4du
-.u4dí
-.uh4n
-.uj4m
-.u4ko
-.u4ku
-.ul4h
-.u4ma
-.u4me
-.u4mi
-.u4mu
-.u4ne
-.u4ni
-.u4pa
-.u4pe
-.u4pi
-.up4n
-.u4po
-.u4pu
-.u4pá
-.u4pě
-.u4pí
-.u4ra
-.u4ro
-.u4rá
-.us2
-.u4so
-.u4st
-.u4sy
-.u4sí
-.ut2
-.u4vi
-.u4ze
-.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á
-.vý1
-.v4ži
-.y4or
-.y4ve
-.z2
-.za3
-.zao3s
-.zar2
-.zač2
-.zd2
-.z4di
-.z4dr
-.z4ky
-.z4mn
-.z4no
-.z4nu
-.z4ně
-.z4ní
-.z4pe
-.z4po
-.z4tř
-.z4ve
-.z4vi
-.č2
-.č4te
-.é2
-.í2
-.ó2
-.š2
-.še3t
-.š4ka
-.š4ke
-.š4ky
-.š4ťo
-.š4ťá
-.ú2
-.ú4dů
-.ž2
-a1
-2a.
-aa3t2
-ab3lon
-ab4lý
-ab3ri
-ab4sb
-ab2st
-ac4ci
-a2d
-a3da
-a3de
-a3di
-ad2la
-a4dli
-a4dlá
-a4dlé
-ad4me
-ad4mu
-a3do
-ado4s
-a3d3ra
-ad3ri
-a3drž
-a3du
-a4duž
-3a3dva
-ad3vo
-a3dy
-a3dá
-a3dé
-a3dě
-a3dí
-ad4úz
-ad4úř
-a3dů
-a3dý
-ae4vi
-afi2a
-a2g
-a3ga
-ag4fa
-a3go
-ag3ro
-a3gu
-a3gá
-ah4li
-ah3v
-a2i
-a3in
-ai4re
-a3iv
-a2jd
-a2jm
-aj4me
-aj2o
-a2k
-a3ke
-a3ki
-a3kl
-ak4ni
-a3ko
-a3kr
-a3ku
-a3ky
-a3ká
-a3ké
-a3kó
-a3ků
-a3ký
-al4fb
-al4kl
-al4tz
-al3ží
-am4bd
-am4kl
-am4nu
-amo3s
-am4ži
-a4nae
-a4name
-an4dt
-ane4sk
-aneu4
-an4sc
-an4sg
-an4sl
-an4sm
-an2sp
-an4sv
-an4tč
-an4žh
-ao4ed
-ao4hm
-ao4stř
-ao4tč
-ap4r.
-a4pso
-ap3t
-a4př.
-a2r
-a3ra
-ar4dw
-a3re
-a4rer
-ar4gl
-a3ri
-ar4kh
-a3ro
-a4rox
-ar3st
-a3ru
-ar2va
-a3ry
-a3rá
-a3ró
-ar3š2
-ar4šr
-a3rů
-arůs3
-a3rý
-a2s
-a3sa
-a3se
-a3sh
-a3sin
-as3ná
-a3so
-as3pi
-as4tat
-a4stk
-as4tm
-a4stru.
-as3tv
-a3su
-a3sv
-a3sy
-a3sá
-a3sé
-a3sí
-a3sů
-a2t
-a3ta
-at4ch
-a3te
-a3ti
-a4tio
-at4kl
-at3lo
-a3to
-a3tr
-at3re
-at3ron
-at3rov
-a4tru
-at4rá
-at4th
-a3tu
-a3tv
-a3ty
-a3tá
-a3té
-a3tě
-a3tí
-a3tó
-at1ř
-a4tří.
-a3tů
-a3tý
-a2u
-au4gs
-a3uj
-auj4m
-aus3t
-a3uč
-2av
-av3d
-av4d.
-av3lo
-a4vlu
-a4vlí
-av3t
-av4ti
-2ay
-ay4on
-az3k
-az3la
-az4lé
-az3ni
-a3zp
-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
-ba4chr
-ba3ka
-ba4se
-2b1c
-b1d
-be4ef
-be4et
-bej4m
-be3p
-beu4r
-be2z3
-beze3
-b1h
-1bi
-bi2b3
-bis3
-bist4
-bi4tr
-b1j
-2bk
-3bl.
-bl4bl
-b2lem
-b2les
-3blk
-b4lán
-b2lém
-b1m
-2bn
-1bo
-bo4et
-bo4jm
-bo4ok
-bo4tr
-bou3s
-bo4šk
-b2ral
-b2ran
-2bri
-b4rodit
-b4rou
-broz4
-b2ru
-b3ru.
-b3rub
-b2rán
-2b1s2
-bs3tr
-2b1t
-btáh4
-bu2c
-bu4en
-3by.
-bys3
-by4sm
-by4tč
-by4zn
-b2z
-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
-ca4es
-2cc
-1ce
-cech4
-ced4l
-celo3
-ce4ns
-ce4ov
-ce4ps
-cer4v
-ce2u
-2ch.
-1cha
-4chalg
-3che
-4che.
-2chl
-ch4ly
-ch4mb
-2ch3n
-2cht
-4chte
-1chu
-ch4u.
-1chy
-1chá
-2chř
-1ci
-cien4c
-cik4l
-2ck2
-c4ket
-ckte4rý
-2cl
-c3la
-c3lé
-2cn
-1co
-co4at
-co4mm
-co4žp
-c2p
-2ct
-c2ti
-ctis4
-ct4la
-ct2n
-c3tv
-c2tě
-cuk1
-1c2v
-cy2
-1cá
-1cí
-cí4pl
-2cň
-1ců
-2d.
-1da
-da3d
-da4jš
-da4kl
-da4tr
-d1b
-d2ba
-4dbat.
-d2bá
-2d1c
-dch4l
-3dch4n
-d1d
-dd4ha
-1de
-de4bre
-de3hn
-de3jd
-dej4mo
-de3kl
-de3kv
-de2na
-de2oz
-de3sl
-de4sm
-de4so
-de2sp
-des4t
-de3str
-de1x
-de4xt
-de2z
-de3zn
-dez3o
-de3čt
-de4žp
-2d1h
-1di
-di4gg
-4dind
-dis3k
-di4so
-d1j
-dj4us
-2dk
-d3kv
-3dl.
-d1la
-d4lab
-d4lak
-d3li
-1dln
-d2lou
-d3lou.
-d2lu
-d3luč
-d4láž
-d1lé
-2d1lí
-d2lů
-d1m
-1dmd
-dmýš4
-2dn
-1do
-4dobl
-4doboj
-dob4rat
-do3by
-do3bě
-do3bý
-do1d
-4do4dd
-4do4dj
-dod4n
-do3h
-doj4m
-4dokn
-4doly
-do3mn
-domoh4
-do3p
-do4pc
-dop4n
-dor2v
-do1s
-dos4p
-dos4tiv
-do3t
-do3uk
-do3uč
-do3z2
-doz4n
-do3č
-4do4čn
-doč4t
-do4žp
-4dran
-d4rap
-d1re
-d4ren
-3drobn
-d3ros
-d3rou
-d3roš
-dr4sc
-d3ruš
-d3ré
-d3rý
-d4rýv
-2d1s2
-ds4ků
-ds4po
-d1t
-d3tl
-d3tř
-1du
-dum3ř
-du3na
-du3p
-du4pn
-2dur
-du3si
-du4í.
-d2v
-d4vac
-d3ve
-d3vl
-d3vr
-d3vy
-d3vá
-d3vě
-d3ví
-1dy
-dy4su
-d3zb
-d3zd
-d3zn
-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
-e2ar
-e1b
-eb4er
-ebez2
-eb4li
-e2bř
-e4ch.
-e3chl.
-e4chm
-e3cho
-e2chr
-e3chv
-e4chť
-ed4be
-ed4kv
-ed1l
-ed2ma
-e3dmn
-ed3v
-ed4ří
-e1e
-ee4th
-ee3xi
-eg4gi
-e1ha
-e1he
-ehno4
-eh4ně
-e1ho
-e1hr
-e1hu
-e1hy
-e1há
-e1hý
-e1i
-eilus3
-ej3ag
-e3jas
-e1je
-e3jed
-ej3ele
-e3jez
-ej3in
-e3jis
-ej1m
-ej3mo
-e3jmu
-ej1o
-ej1u
-eju3st
-ej3v
-e2k
-e3ka
-e3ke
-e4kly
-e3ko
-e3kr
-e3ku
-e3ky
-e3ká
-e3ké
-e3kó
-e3kř
-e3ků
-e1la
-e4lau
-el4dv
-e1le
-e1lo
-e1lu
-e1ly
-el4ze
-e1lá
-e1lé
-e1lí
-e1ml
-e4mlí
-emo3k
-e1mr
-e1my
-e3má
-e1mě
-e1mí
-e3mř
-e3mů
-e1mý
-em3že
-en4dv
-enitos4
-en4sc
-en4si
-ent3r
-e1o
-eo3by
-eoch3r
-eod3l
-eo4du
-e4ole
-eo1s
-eo2st
-eo4tř
-eo3z
-eo4zb
-eo4zd
-eoše3
-epa3t
-e2pl
-e4pni
-ep2no
-e4pný
-epoč3t
-epro4zř
-ep4tl
-ep4tm
-ep4tn
-e4ptu
-epy3
-2er
-e1ra
-er4a.
-e1re
-e1ri
-e1ro
-er3s
-er4s.
-er4sn
-e1ru
-e1ry
-e1rá
-e1ré
-e1rů
-e1rý
-e1s
-e4sag
-e2sce
-e4sin
-esi4s
-e2sk
-es4k.
-e4s4kn
-es3ku.
-es3ky
-es3ké
-e2sl
-e4s3li
-e4sly
-es2m
-e4sp.
-es4pe
-e2st
-e4st.
-e4ste
-es3tiž
-es4tol
-e4strou
-es3tán
-e1t
-e4tki
-e4tkr
-e4tli
-e4tly
-et3ri
-et3ro
-et3rů
-et1ř
-et4ún
-e1u
-eu3b
-eu3ct
-eu3d
-eu3k
-eu3m
-eu4m.
-eu3n
-eu3p
-eu3r
-eu4r.
-e4ura
-eu4ras
-eu4rg
-eu3s2
-eu3t
-e4u4t.
-eu4tra
-eu4ts
-eu3v
-eu3z
-eu3ž
-e3vd
-eve4š
-e3v2k
-e4vsk
-evy3
-evyjad4
-evypá4t
-evy4čk
-evě4tr
-ex4ta
-e3xu
-ey4or
-ey4ov
-ezaos3
-ez4ap
-ez4bo
-ez3de
-ez3dov
-ez3du
-ez4dě
-e3ze
-ez4ed2
-ez4ej
-ez4el
-ez4er
-ez4es
-ez4ez
-ez4eš
-ezis4
-ez4it
-ez4le
-ez4ná
-ez4ně
-ez4py
-ez2t
-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
-fene4
-fe4ue
-fi4em
-fi4fl
-f2l
-f3lí
-fló4r
-fm4no
-2fn
-2fr
-f4ran
-f4ras
-3frek
-f1ri
-2fs
-fs4te
-2ft
-fu4ch
-2fé
-f2ú
-1g
-2g.
-ga4uč
-ge2s
-ghou4
-3gic
-3gin
-gi4ím
-g4lom
-2g1m
-2gn
-g4noi
-g4nos
-go1
-go4hm
-3graf
-gu4el
-gu4it
-gu3m
-gu4m.
-gus4t
-gu3v
-2h.
-ha4ag
-ha4ar
-ha4bl
-ha4br
-ha3dl
-ha4dla
-ha4ke
-has3t
-hatos4
-ha4yd
-h2b
-h2c
-2hd
-he4br
-he4id
-hej4s
-he2s
-he2u
-he3x
-hi4an
-hi3er
-hi4gh
-hi4re
-2hk
-4hla.
-h4led
-h3len
-2hli
-4h3lo.
-h3lob
-h3lop
-h3lov
-h3luj
-2h1ly
-4hlá.
-h4lás
-h3lí.
-4hlík
-2hlý
-h2m
-2h2n
-h3ne
-h4ned
-h3niv
-h4noj
-3hněd
-3hodin
-ho3str
-hos4tě
-4hove
-4hovna
-4hovny
-4hovná
-4hovně
-h2r
-hra4p
-2h1t
-h4tin
-h2tě
-h4tít
-hu4ch
-hu3mo
-hu4tň
-2h2v
-hyd1
-hy4do
-hy4ps
-hys3
-hy2t3r
-hy4zd
-h1č
-2hň
-hř2
-hř4by
-hý4bl
-h2ž
-2i.
-i1a
-ia3d
-ia3g2
-i4al.
-ias4t
-ia4tr
-i1b
-ib2l
-i2b1r
-i1ch
-i4chž
-i1d
-id4ge
-id2l
-id4lo.
-i4dlý
-i1em
-i1en
-i1et
-if1r
-ig4ne
-i1h
-i2hl
-i3hl.
-i4hli
-ih3n
-ih4na
-i3im
-i1j
-ijed4
-ij4me
-ij4mi
-i2kl
-ik3le
-ik3lo.
-ik3m
-ik4ry
-i4kve
-ik4úř
-i1l
-il4ba
-ilič4n
-i4lnu
-ilu3
-i1m
-i4mla
-i4mly
-i4mun
-i2n
-i3na
-ina3d
-in4cm
-in4dl
-i3ne
-3infe
-in4gh
-in4gp
-in4gs
-in4gt
-i3ni
-i3no
-i3nu
-i3ny
-i3ná
-i3né
-i3ně
-i3ní
-in4šp
-i3nů
-i3ný
-i1o
-io4sk
-i2ps
-i1r
-iro4s
-i1sa
-is3c
-is4ch
-is4k.
-is3ka
-is3ke
-is3ko.
-is3kr
-is3ku
-is3kv
-is3ky
-i3slav
-is3lo
-is3lé
-is3pl
-is3po
-is1t
-is4tal
-is4tat
-is4th
-ist3v
-is3tí
-i1sy
-i3sá
-i1t
-it1r
-it4rh
-it4rp
-it4se
-it4su
-i2tv
-i1um
-iv3d
-i1x
-ix4td
-i3zp
-iz1r
-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
-ja4cq
-ja3d
-ja3g
-j3akt
-j1b2
-jbyst3
-2j1c
-j2d
-j3dob
-j3dok
-j3dos
-j3dr
-j3dá
-jd4ří
-j3dů
-jech4
-j3ef
-j3ex
-jez3dí
-jg4ra
-2j1h
-1ji
-ji4ch
-jih3l
-ji4mž
-j4ina
-jis3k
-jit4ro
-ji2zv
-j1j
-2jk
-j3kv
-2j1l
-j2m
-j3ma
-j3mi
-jmou3d
-2jmí
-2jn
-jne3
-j1ob
-j1od
-jod2ř
-j1oh
-j1op
-j4ora
-j1os
-jo3sv
-j2ov
-j3ovl
-j1o3z2
-2jp
-jpor4
-jpo4zv
-jpříz4
-2j1r
-2j1s2
-j4sem
-j4si.
-j4sk.
-js4ko
-js4ká
-j4s4ků
-j4s4me
-j3sn
-j4sou.
-j4souc
-js4po
-j4s4te
-2j1t
-j3tl
-ju4an
-ju3na
-ju3p
-j1us
-ju3sp
-ju3t
-ju4t.
-ju3v
-ju4xt
-ju3z
-j1už
-ju3ži
-2jv2
-j3vd
-j3vn
-2jz
-j3zb
-j3zd
-j3zk
-j3zn
-j3zp
-jád2r
-2j1č
-2jď
-1jí
-j3št
-jš4ti
-j3šť
-2jú1
-jú3n
-jú3č
-jú3ž
-2jž
-1k
-2k.
-ka4bl
-ka4ch
-ka3dl
-3kaj
-ka3ka
-3kami
-3kaně
-ka2p3l
-ka2p3r
-ka2ps
-ka4pv
-ka2př
-kas3t
-kast3r
-3kat
-ka4uč
-3kav
-3kač
-3kař
-kaš3l
-ka4šp
-2k1c
-k2d
-k2e
-ke4bl
-ke3jo
-ke4pr
-ke4ps
-3ket
-2kf
-2kk
-k2l
-3kl.
-4k3la.
-k3lej
-4k3li.
-k4lib
-k3lic
-4klička
-4klo.
-k3los
-2k3ly
-k3lá.
-k3lé
-k3ló
-k3lý
-2k2m
-k3mě
-2kn
-kna4s
-ko3by
-3kof
-ko4jm
-ko2př
-ko4sk
-ko2t3v
-kous3k
-3kov
-ko3zá
-4kroa
-k3rob
-k3rof
-kr2s
-kr4ú.
-2ks
-2k1t
-kt2r
-kuch4
-ku4fř
-ku4hr
-3kuj
-ku3se
-ku3si
-ku3su
-ku4th
-ku3v
-2k2v
-k4vrň
-3kyn
-ky2pr
-kyp3ř
-ky4zn
-3kác
-ká4pl
-3kár
-3kář
-2kč
-k2ň
-k2ř2
-k3řej
-kš4ti
-3ků.
-2l.
-1la.
-la4br
-lab4s
-la3ka
-la4nq
-la4ps
-4la3si
-la4vš
-la4y.
-la2zm
-2l1b
-2l1c
-2l1d
-ld4ne
-le4ad
-le4au
-lech3t
-leh3n
-le2i
-1lej
-le3jo
-4lejšk
-1lel
-4lench
-lepa3d
-lepo4s
-le4pr
-le4ps
-le4sc
-le4sm
-le4sv
-let4li
-let3m
-le2tr
-le4tč
-le4uk
-le4vh
-le4vk
-le3xi
-lez3n
-2lf
-2lg
-2lh
-3lhan
-1li
-li4az
-li4bl
-li4bv
-li4dm
-lind4
-3lio
-li4tň
-li4vr
-2liž
-2lj
-2lk
-l4kat
-l2kl
-lk4nu
-2ll
-2l1m
-2ln
-l4nul
-lo3br
-lo4id
-lo4is
-1los
-lo3sp
-lo3stř
-lo3sv
-lo2tr
-lo4tř
-lo4u.
-lo3z
-loz4d
-lo4šk
-2lp
-l2pě
-2l1s2
-l4sla
-ls3n
-lst4n
-l4stí
-2l1t
-lt4ra
-lt4ru
-lt4ry
-lu4id
-lu4j.
-lu4k.
-lu4lk
-lu4m.
-lu4mn
-lu3pr
-lu3va
-lu3vl
-lu3vy
-lu3ví
-2lv
-2lz
-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
-ma4kl
-ma4kr
-4mald
-mas3k
-mat3r
-ma4tra
-ma4vš
-maz3l
-2m1b
-2m1c
-2m1d2
-m2dl
-1me
-3me.
-me4go
-me4is
-met3re
-me3x
-mezi3s
-2mf
-mh4le
-1mi
-mid3l
-mik3r
-mi4xt
-2mk2
-3m2kl
-mk4la
-mk4li
-m2l
-4mla.
-2mle
-ml3h
-ml4h.
-2mli
-ml4sc
-ml4sk
-4mlu.
-2mn
-m3na
-mna4s
-m4noh
-m3nos
-m4noz
-3množ
-m3ná
-m3né
-m4néz
-m3něj
-m3ný
-1mo
-mod3r
-mo2hl
-mo2k
-mo2s
-mo4s.
-mot3ř
-4mout
-moza4
-mo3zř
-moú3
-2mp
-m4plo
-mpo4s
-m2ps
-mp4se
-mp2t
-mr2s
-2m1s2
-m4stl
-2m1t
-1mu
-mu4fl
-mu3n
-mu4n.
-mu4nd
-mu4nn
-mu4ns
-mu4nš
-2muš
-2mv
-mys3lo
-my4šk
-2mz
-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.
-na3ch
-na4do
-na4em
-na3h
-na4h.
-na3jd
-na3ka
-nam4ne
-na3p2
-na3s2
-na4s.
-nat2
-na3tl
-na3tř
-na3z
-naz4k
-na4zš
-na4č.
-na3š
-naž4n
-2nb
-2n1c
-n4chc
-2n1d
-nd4hi
-ndo4t
-nd2re
-nd4ri
-nd4ří
-ne1d
-ne4gl
-ne1h
-ne3h4n
-ne2j
-nej3t
-nej3u
-ne3kl
-ne4kro
-ne3kv
-ne4m.
-ne3p
-ne3s2
-ne4s.
-nes4le
-ne4ss
-4nesti
-ne3tl
-net4r
-ne3ud
-ne3v2
-ne4v.
-ne3z
-nez4n
-ne3šk
-ne3šť
-2nf
-n3fr
-2ng
-ng1l
-ng4la
-ng4le
-ng4lí
-n4gro
-ng4vi
-nik4t
-ni4mr
-ni4mž
-3nio
-3nisk
-2nitř
-n1j
-2nk
-2n1l
-2nn
-no3b2
-no4bs
-no3hn
-no4hs
-no4ir
-no4mž
-no4sky
-no3sm
-no3str
-not4r
-no3z
-no4zd
-no4šk
-2nož
-2n1s2
-n2sa
-ns3ak
-ns4ko
-n4soc
-ns3po
-nst4ra
-2n1t
-nte4r3a
-nt4lem
-nt4r.
-nt3ru
-nt3rá
-2nub
-nu4gg
-3ny.
-2nz
-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
-o1ba
-o1be
-obe3j
-obe3s
-obe3z
-ob1l
-ob1r
-ob4rň
-o1bu
-obys4
-ob3z
-o3bé
-ob3řez
-o1c
-o4chl
-o2chr
-oc4ke
-oc4ko
-o4ct.
-oct3n
-ocy3
-oc4ún
-od3b
-odej4m
-ode3p
-ode3s
-od1l
-o4doc
-odos4
-odo4tk
-od3ra
-od4ran
-od3rů
-o3drž
-od3v
-od1ř
-o1e2
-oe3g
-oe3ti
-o2fl
-ofrek4
-og2
-o3gn
-o1h
-oh4ne
-o1i
-oi4ce
-o4int
-o1j
-o4jar
-oje4dl
-o4jmi
-o4jmov
-o4jmu
-o4jmů
-oj2o
-o4juz
-2oka
-ok2te
-o1l
-ol4gl
-ol4to
-o1m
-om4kl
-om2n
-o2n
-o3na
-ona4s
-o3ne
-o3ni
-o3no
-ont4ra
-o3nu
-o3ny
-o3ná
-onář4ka
-o3ně
-o3ní
-o3nů
-o3ný
-o1o
-oo4hř
-oote2
-opoč3t
-opro4s
-o2ps
-o4ptu
-opá4t
-o4př.
-opřej4
-opře4jm
-o1ra
-o4rae
-or4dm
-o1re
-o1ri
-o1ro
-or3st
-o1ru
-or4vá
-o1ry
-o1rá
-o3ré
-o1rů
-orůs3
-o3rý
-o1sa
-o4sai
-ose4s
-osi4d
-o1sk
-o4s3ke
-o4sku
-osk3v
-o4ská
-o4ský
-o1sl
-os4la
-os4li
-os4lý
-os3mo
-os4mu
-o4st.
-o4stg
-o4stm
-os4tor
-os3trů
-o4sté
-o4stš
-o4stý
-o1sy
-o1t
-ot4kl
-o4tlý
-oto3s
-ot3ro
-ot3ví
-o3tí
-o3tř
-ot3ři
-o2u
-ou3bě
-ou3dě
-ou4fl
-ou4il
-ou4is
-ou4k.
-ou3ka
-o4ukl
-ou3kr
-ou3ká
-ou3m
-oup3n
-oupo4
-ou4s.
-ou3sa
-ou3se
-ou4sk
-ou3sm
-ou4tv
-ou3v
-ou4vl
-ou4vn
-ouz3d
-o4učk
-ou3ži
-ovi4dla
-o4vsk
-ovy2p
-o2všt
-o1x
-o2z
-o3za
-oz1b
-oz4d.
-oz3dá
-oz3dě
-oz3dí
-o3ze
-oze3d2
-ozer4
-oz1h
-o3zi
-oz3j
-oz3k
-oz4ko
-oz1l
-oz3m
-o4zn.
-o3zo
-oz3p
-oz4py
-oz4pě
-oz4pí
-oz3ro
-oz3ru
-oz3rů
-oz3t
-o3zu
-o4zut
-oz3vr
-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
-pa4es
-pa4kl
-pa3si
-pa4t.
-pat4ri
-2p1c
-pe4al
-pede4
-pe4ig
-pe4np
-peri3
-pes3t3
-pe4tra
-3peč
-pi4kr
-pi4pl
-2pk
-p2kl
-p2l
-3pl.
-4p3la.
-pl3h
-pl4h.
-4p3li.
-4plo.
-2pn
-p2nu
-po1b2
-po3c2
-3pod
-podbě4h
-pod4nes
-po3dru
-po3drá
-po3h
-poly3
-po3m2
-po4mp
-po4ol
-po3p
-po4p.
-po4pm
-po1s2
-pos4p
-post4r
-po3t2
-po4t.
-po4tn
-po3uk
-po3uč
-po3už
-3po3v
-po3z2
-po4zd
-poč2
-po3čk
-poč3te
-po3ří
-po4šv
-2pp
-4pra.
-pra3st
-pr2c
-pro1
-prob2
-pro3p
-pro3t4
-pro3z
-pr2s
-4prán
-prů3
-pse4s
-2p1sk
-p4sut
-2pt
-p4tej
-p4ter
-p4tev
-pt4ri
-p3tu
-p4tá.
-pu4dl
-pu4tr
-pyt3l
-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.
-ra4br
-ra4em
-ra4es
-ra4ff
-ra4hl
-ra4hm
-ra4jg
-ra4jš
-2rak
-ra4nh
-ra3si
-rast4r
-ra4vv
-ra4wl
-ra4y.
-ra4yo
-ra4ďm
-4raži
-r1b
-r2bl
-r1c
-rca3
-r3cha
-r3cho
-rc4ki
-r1d
-r4dla
-rdo2s
-re4ad
-re4au
-red4r
-re4et
-re3kl
-re3kvi
-re4mr
-re2sb
-res3l
-retis4
-ret4r
-re4um
-r1ha
-r3hl.
-rh3n
-r1ho
-r3hu
-r1há
-ri4bb
-1ric
-ric4ku
-ri4dg
-ri4dr
-ri4fl
-ri4gh
-ri4zm
-2rk
-r2kl
-r1l
-2r1m
-r4mio
-2rn
-rna4vš
-rn4dr
-ro4ad
-ro3by
-rod2l
-ro3d4r
-3rofy
-ro3h
-ro4h.
-ro4jb
-ro4kš
-rom3n
-romy4s
-ropát4
-ro2sb
-ro4skv
-ro4sky
-ro3sv
-ro3ti
-ro3tl
-ro4tč
-ro3vd
-rově4t
-3rový
-roz3d
-roz3n
-ro4zo
-roz3v
-ro3zá
-ro4čp
-rpa3d
-2rr
-rr4ha
-rr4ho
-2r1s
-r2st
-r4stu
-rs3tvě
-rs3tvý
-2r1t
-r2th
-r4trá
-rt4sm
-rtu3
-r2t3v
-rt4zu
-1ru.
-ru3se
-ru3si
-rus3k
-ru3ži
-3rvaní
-r1x
-1ry.
-rych3
-ryd2
-rys3ky
-rys3t
-ry4zk
-ry4zn
-ry4í.
-ry4šk
-2rz
-rz3d
-rz3l
-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
-sas3k
-s2b2
-s2c
-s3ca
-s3ce.
-sch2
-sch4l
-sch4n
-3schop
-s3ci
-sci4e
-s3cí
-s2d
-1se
-se4au
-se3h
-se4ig
-se4il
-sej4m
-se4ku
-3sel
-se3lh
-3sem
-ser4va
-se3s2
-ses4k
-se4ss
-se4stra
-se4stru
-se4stř
-set2
-se3tk
-se3tř
-se4ur
-se3z
-se3čt
-2sf
-s3fo
-3sfé
-s3fú
-1si
-3sic
-3sif
-si4fl
-sig4no
-3sik
-si3ste
-3sit
-s2j
-s3ju
-s2k
-4skac
-s4kak
-4skam
-s4kok
-2skon
-skos4
-4skot
-sk4ra
-sk4ru
-sk4ry
-4skve
-sk4vo
-s3kán
-s3ků
-3sl.
-4s3la.
-s4lav
-s3le.
-s4led
-s3lem
-s3len
-s3let
-s4lib
-s4liči
-3sln
-4s3lo.
-s2ly
-s3ly.
-s1lí
-s2ma
-s4mek
-s2mo
-2sn
-s2na
-s3nat
-s2ne
-s3ne.
-sn4tl
-s2ná
-s3ná.
-s4níd
-1so
-sob4l
-so3br
-so4sk
-so4tv
-sou3h
-sou3s
-souz4
-so4šk
-s2p
-s4pol
-spro4s
-1sr
-2ss
-ss4sr
-2st.
-4sta.
-s3taj
-s2tan
-st4at
-4stec
-s4tep
-st4er
-s4tero
-s4tich
-2stil
-s4tink
-4stit.
-4stič
-st3lo
-2stn
-4sto.
-s4tona
-4stou.
-4str.
-4stram
-s4trik
-4strn
-4strác
-4stupni
-s2tv
-st4ve
-3ství
-4sty.
-s4tyl
-3styš
-s2tá
-4stá.
-s3tář
-4stě.
-s4těd
-3stěh
-s2těr
-s2těž
-s1tí
-2stí.
-s3třej
-1su
-su4ba
-su4bo
-suma4
-su3ve
-s2v
-sy3c
-sych3r
-sy4nes
-sá2d
-3sáh
-sá2kl
-2s2č
-s3či
-1sé
-1sí
-2sň
-2sť
-s3ťo
-1sů
-s2ž
-2t.
-1ta.
-ta2bl
-tac4tvo
-t2a3d
-1taj
-ta4jf
-ta4jg
-4talt
-4tand
-3taně
-t1ao
-2tark
-tast4
-ta3str
-ta4čk
-2t1b
-2t1c
-1te
-3te.
-te4ak
-te4fl
-te4in
-4teném
-teob4
-tep3l
-ters4
-tes3ta
-te4tr
-te4uc
-te4ur
-te4ut
-2tf
-2tg
-1ti
-ti4gr
-2tih
-ti3kl
-tin4g
-ti4pl
-ti3sl
-tis4tr
-ti4tr
-2titu
-tiz4r
-4tizí
-tiú3
-2tiž
-2tk2
-t4kal
-4t2kan
-t4kat
-t2kl
-tk4la
-tk4li
-4tkně
-t2ká
-2tl
-3tl.
-4tla.
-t1le
-tles3
-3tlm
-t3lo.
-t4lou
-tlu3
-tlu4s
-t1ly
-t1lé
-2tm
-t2ma
-2tn
-t3ní
-1to
-to4as
-to3b
-tob4l
-to3dr
-to4hm
-to4ir
-2toj
-tol4s
-to4ol
-4top.
-4topt
-4topu
-2torn
-2toup
-2tp
-t3rant
-t4rea
-t4ref
-tre4t
-4tric.
-trip4
-t4rit
-t4rog
-t3rol
-tro4sk
-t4rou
-4trouh
-4troň.
-4trun
-t4rus
-4t4ruž
-t3ráln
-4tráš
-2trč
-t3rům
-t3rův
-2trý
-2t1s
-ts4ko
-ts2t
-2t1t
-tt4ch
-tt4ri
-1tu.
-tu4ff
-1tuj
-tu4lk
-2tup
-tu4r.
-tu3ry
-tu4s.
-tu4ť.
-tu3ži
-t2v
-2tve
-2t3vi
-t4vinn
-t4viš
-t4výc
-1ty.
-ty4gř
-ty2la
-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
-u2b
-u3ba
-u3be
-u3bi
-u3bo
-ubs4t
-u3bu
-u3bá
-u3bí.
-u3bů
-uc4tí
-2u2d
-u3de
-u3di
-u3do
-u3dru
-u3du
-u3dy
-u3dí
-ue4fa
-2uf
-u2hl
-uh3lá
-uh3no
-u2in
-u2jm
-u2k
-u3ka.
-uk4aj
-uk4al
-uk4at
-u3ke
-uk3la
-uk3le
-u3ko
-u3ku
-u3ky
-uk4á.
-u3ků
-ul4fa
-ul1h
-ul4pí
-u2m
-u3ma
-u3me
-u3mi
-um4pl
-um4ru
-u3mu
-u3má
-3umř
-u2n
-un4dl
-u3ne
-u3no
-u3nu
-u3ně
-u3ní
-u3nů
-un4žr
-u2p
-u3pa
-u3pe
-upe2r3
-u3pi
-u3pln
-u3pu
-u3py
-u3pá
-u3pě
-u3pí
-u3pů
-u2r
-u3ra
-u3re
-u3ri
-2u3ro
-u3ru
-u3ry.
-u3rá
-1urč
-u3rů
-u2s
-us3ky
-us3ká
-us3ké
-us3ký
-us1l
-us2lo
-u3so
-u4ste
-u4sty
-u4sté
-u4stě
-u3stř
-u4stš
-u4stý
-u3su.
-u3sy
-u3sá
-u3sí
-u3sů
-u4tro
-u4trá
-u2v
-u3vi
-u3vu
-u2z
-u3ze
-u3zi
-uz1l
-u3zo
-u3zu
-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ť
-va4kl
-2v1b
-2v1c
-v2ch
-2v2d
-v4dal
-v3di
-v4děk
-v4děč
-ve3dle
-ve3jd
-3ven
-ve2p
-ve3ps
-vep3ř
-ves3l
-ve4sm
-ves4p
-ve3sta
-ve3t4ř
-ve2z3m
-vi4ch
-vide2
-vi4dr
-vi4et
-vi4kr
-vi2tr
-2vk
-v2kr
-v2l
-2v3la.
-4vle.
-4vlem
-2vlo
-2vm
-2vn
-v4nad
-vo3b
-vo4ic
-vo4ja
-vo4jb
-vo4jd
-vo4jj
-vo4jm
-vo4jř
-vo2s
-vo4tř
-vou3
-vous2
-v2p
-vr2c
-vr2dl
-4vrny
-v1ro
-vr4st
-vrst3v
-vrs4tvě
-2vs2
-v1sk
-v3stv
-2v2t
-vy3c
-vy3d2
-vy4dra
-vyp2
-vy3s2
-vy4sn
-vys4t
-vy3t
-vy3č
-vyč4k
-vyš2
-vy4š.
-vy4šm
-vy4šš
-vy4žl
-v2z2
-vz4no
-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
-we2
-2x.
-xand4
-2xf
-xisk4
-2xn
-3xov
-x1t
-xt4ra
-xy4sm
-y1
-y2a
-y2bl
-yb3ri
-y2ch
-y4chr
-y2d1l
-yd4lá
-y2dr
-yd4y.
-y2e
-y2gr
-y3hn
-yh4ne
-yj4ma
-yj4me
-y2kl
-yk3la
-y3klop
-yk4ly
-ymané4
-ym4kl
-yna4s
-y3ni
-ype4r
-yp4si
-yp4tá
-y2př
-yr2v
-y2s
-y3sa
-y3se
-y3si
-ys3lu
-y3sm
-y3so
-y3sp
-ys2t
-ys3te
-yst4r
-y3su
-y3sv
-y3sy
-y3sá
-y3sé
-y3sí
-yt4me
-yu3ž
-y3vs
-yvě4t
-y3zb
-y3zd
-y3zk
-y3zn
-yz4ně
-yz4ní
-y3zp
-yz4po
-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
-za4bs
-za4dk
-za3dl
-za4dn
-za3h
-za3i
-za3j
-za4jk
-za3k
-za4kt
-zal4k
-zam4n
-za3p2
-za3s2
-zat2
-za3tl
-zat4r
-za4ut
-za3z
-zaz4n
-za4zš
-za4č.
-za3š
-zaš4k
-za4šs
-2zb
-zban4
-z2by
-zbys4
-2z1c
-2z2d
-z3di
-zdně4ní
-z4doba
-z4dobný
-zd4re
-zd4ví
-z2e
-ze3h
-ze3p2
-4zerot
-ze3s2
-zes4p
-zet2
-zev2
-ze3vn
-ze3z
-ze4z.
-2z2f
-z1há
-z4ine
-z2j
-z3jí
-2z2k
-z3ka.
-z3ky
-z3ké
-z3ků
-z3ký
-2zl
-3zl.
-zlhos4
-zlik3
-z3ly.
-z2m2
-2zme
-z3mn
-z3my
-z4měn
-2z2n
-3znak
-z4nal
-z3ne.
-z3nic
-z3no
-z3nu
-z3ny
-z3né
-z3ně
-z4něl
-z3ní
-z4nít
-z4nív
-z3ný
-zo4tr
-zo4šk
-2z2p
-z3pt
-z4pát
-3zrak
-2z1s2
-2zt
-ztros3
-z4trá
-z3tř
-3zu.
-zu3mo
-zu3mě
-zu3mí
-zu3š
-z2v
-zva4d
-z3vař
-z3vi
-zvik4
-zv4ně
-z3vod
-z3voj
-z4von
-zv4ro
-z4ván
-z4věs
-z3víj
-3zy.
-2zz
-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ě} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-cy.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-cy.hyp
deleted file mode 100644
index 94cbe56cce5..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-cy.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-cy.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-cy.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-cy.pat
deleted file mode 100644
index 508ee566f19..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-cy.pat
+++ /dev/null
@@ -1,6735 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-cy.rme
-
-% used: a b c d e f g h i l m n o p r s t u w y á â ê ë ï ô ö
-
-\patterns{
-.ac4t
-.ad3ae
-.add5as
-.add3o
-.ad4eg
-.ad4eny
-.ad4fer
-.adl4
-.ad3r
-.ae3a
-.af3a
-.af4an
-.aff3
-.afl4u
-.af5lw
-.ag3w
-.am4le
-.am3s
-.an5ad
-.an4g3
-.anghen5a
-.anghen4r
-.an2o
-.anrhyd4
-.ansodd4e
-.an5te
-.an3w4
-.an5we
-.ar4bo
-.ar4cha
-.ar5ddel
-.ared4
-.ar4en
-.arff4
-.ar4ge
-.ar2i
-.ar3we
-.ar4wed
-.as3g
-.as3t
-.aw4e
-.ban4as
-.ban4ed
-.bara5t
-.bel3y
-.be3t4a
-.bl2
-.bl4e
-.br2
-.br4e
-.call5
-.ce4n
-.ch2
-.ch4e
-.ch4l
-.ch4o
-.chollad4
-.chr2
-.chwyn5
-.cl2
-.cr2
-.cy5we
-.dad3r
-.dd2
-.ddefn5
-.dd4i
-.ddi5an
-.ddi5dd
-.ddi3e
-.ddill5adas
-.ddill5ade
-.ddill5ado
-.ddill5adw
-.ddin4
-.ddiw5eddas
-.ddiw5edde
-.ddiw5eddo
-.ddiw5eddw
-.ddwl3
-.ddy5fala
-.ddy5fale
-.ddy5falo
-.ddy5falw
-.ddylad4
-.deallad4
-.defn3
-.der4w
-.deth5
-.di5an
-.di5dd
-.di3e
-.di3gy
-.dill5adas
-.dill5ade
-.dill5ado
-.dill5adw
-.din4
-.diw5eddas
-.diw5edde
-.diw5eddo
-.diw5eddw
-.dr4e
-.dwl3
-.dy5fala
-.dy5fale
-.dy5falo
-.dy5falw
-.dy5fo
-.dylad4
-.dyrchafad4
-.eb2
-.eb3r
-.eb4rw
-.ec2
-.ed2
-.edl4
-.edr4
-.eg2
-.egn3
-.el4or
-.els4
-.en3as
-.eny5na
-.er2
-.erfy5na
-.ern4
-.ewy5na
-.fadd3
-.falch5
-.fan3a
-.farn4ais.
-.fasg4
-.fas5ge
-.ff2
-.ff4a
-.ffer4a
-.ffe5ras
-.ffer4e
-.ff4o
-.ffor5t
-.ff4y
-.ffydd5
-.ffynad4
-.ffy5nas
-.fign5
-.fis5g
-.fon4edi
-.fordd4
-.for4o
-.for4w
-.for4y
-.fr4i
-.fryn4d
-.fydd5
-.fyn5as
-.fyw3
-.gal3e
-.gal5o
-.gan3l
-.gan5olas
-.gan5ole
-.gen5as
-.ger5b
-.geu5d
-.ghwy5na
-.gl2
-.glaf5y
-.gl4e
-.gleid4
-.gl4y
-.glyn3
-.glywad4
-.god3y
-.gof3a
-.goffad4wy
-.gollad4
-.gr2
-.grynho4em
-.grynho4wn
-.gwedd4er
-.gyd3
-.gyf5al
-.gyf5arc
-.gyfer5byna
-.gyfer5byni
-.gyfer5bynn
-.gyffel5
-.gym3o
-.gyn3a
-.gyn5e
-.gynef5
-.gyth5ru
-.gy5we
-.hac4
-.hadl4
-.haf4a
-.haf3l4
-.hagr3
-.ham4le
-.han5as
-.han4g5
-.hanghen5a
-.han5t
-.han5w4
-.har5ddel
-.hared4
-.har4en
-.har3n
-.harn4a
-.har3w
-.has3g
-.haw4
-.heb2
-.hec2
-.hed2
-.hedl4
-.he4o
-.herfy5na
-.her4w
-.heur5
-.hof4r3
-.hol4y
-.holyn5
-.hw2
-.hwn4
-.hwyl5u
-.hwyn5a
-.hwyr5
-.hwyth4au
-.hyd4
-.hydr4
-.hy3ff
-.hyf4od
-.hy5fry
-.hy3g
-.hyl4
-.hym3e
-.hym4u
-.hym4y
-.hymy5na
-.hymysg4
-.hyn2
-.hy3no
-.hy3rw
-.iach4
-.iac5has
-.iac5he
-.iac5hw
-.ir3
-.ladr3
-.ledr4e
-.le3na
-.le3o
-.lest4
-.lin3
-.ll2
-.llaw4e
-.lle5na
-.llo5nas
-.llon4e
-.llythr5
-.lo3na
-.lon4e
-.ludd3
-.lygr3
-.lyn3a
-.lythr5
-.man4ed
-.mant4a
-.mar4f
-.mign5
-.mis5g
-.mol3
-.mon4edi
-.mwyth5a
-.mwyth5w
-.myn5as
-.neilltu4ad
-.neis4i
-.nen3a
-.ner4w
-.ng2
-.ngen5as
-.nghyt5u
-.nghy5wa
-.ngl4
-.ng4w
-.ngy4
-.ni5an
-.ni3e
-.ni5fei
-.nig2
-.ni5ga
-.ni3ge
-.ni3gw
-.ni3gy
-.ni5re
-.ni3wa
-.niwl5
-.no4e
-.no4w
-.nwl3
-.nwyn3
-.oddefad4
-.od4l
-.of3a
-.of4o
-.of4u
-.og2
-.og4l4
-.ol2
-.oll3
-.ol5yga
-.ol5yge
-.olyn3
-.or1
-.orddad4
-.pl4a
-.pl4e
-.rad3r
-.rag3l
-.ra3na
-.ran5d4
-.rew3
-.rhi5a
-.ria4
-.rin4t
-.rug4l5
-.ry3n4a
-.ryn4e
-.sas4
-.ses4
-.st2
-.sych3
-.sych5e
-.talad4
-.tan4e
-.th2
-.thag5
-.th4i
-.tho5e
-.th4r4
-.thrad4
-.th4u
-.torad4
-.tr2
-.tr4a
-.trad4
-.tr4o
-.tro4en
-.uch2
-.wa5r4as
-.war4es
-.wedd4er
-.weithiad4
-.welad4
-.wen3a
-.west4
-.wn4io
-.wobr3
-.wybr4
-.wy3by
-.wy4r
-.wyw3
-.ydd4
-.yd4l
-.yf4ar
-.ym4adw
-.ym3e
-.ym4yl
-.ymysg4
-.yn4d
-.ys4b
-.ysg4
-.ys4i
-.ys4n
-.ys4t
-a1a
-a3ar2
-2ab
-ab3a
-ab4ad
-ab3ed
-ab3el
-ab5ine
-abl1
-a2b1o
-ab4or
-abr3
-a1bu
-a4bu.
-a4bum
-2ac
-ac1a
-ac5ade
-acan3
-ac4aol
-ac3ei
-ace3ne
-ac5enni.
-ach1
-a4ch.
-ach5ac
-ach5aw
-a5chef
-ach3o
-ach3r
-ach5us
-a3chwa
-achwyn5
-achy4
-aci5mw
-acl3
-ac3o
-ac3ta
-ac3te
-4ad3ac
-ad3ad
-ad5afa
-ad3arf
-adar4g
-a4dd.
-add3ad
-ad3dal
-ad3dd
-add3eu
-add5ew
-add3f
-add3i
-add2o
-ad4du
-addun4
-add3yc
-add3ys
-2ad1e
-ad3eg
-ad3el
-ad4el.
-ad4ena
-ad4ene
-ad4eni
-ad4eno
-ad4enw
-ad3i
-2adl
-ad3len
-ad5lys
-ad2na
-adnabydd4e
-adnabydded4
-ad2no
-2ado
-ad3oc
-ad3od
-ad3of
-ad3on
-4adr.
-ad4red
-ad3ri
-adr4od
-adr3on
-ad4ru
-4adunia
-ad5uniad
-ad5uro
-adwel4ed.
-ad3wi
-ad5wr.
-3ad3wys
-ad5wyt
-ad1y
-ady4n
-ad4yrn
-2aea
-ae4ada
-ae5an.
-aedd3
-ae3i
-ael1
-ael4edda
-aen3
-ae3oc
-ae3og
-aer1
-aerw4
-aer5we
-aer5wy
-aes3
-aest4
-aeth5a
-aethr4
-ae1w
-ae5wyd
-af3adw
-4af5aid
-af4al
-af3an
-afan5e
-af4ann
-4afar3
-af5arn
-af4at
-4af3au
-2af3e
-2aff
-aff3a
-aff3ed
-aff3ei
-aff3i
-affl3
-aff3w
-aff3y
-aff4yr
-af3i
-afl3a
-afl5edi
-af4l3u
-2afn1
-af3odd
-4afol
-af3ont
-2afr
-af3ra
-af3res
-af5rif
-af4ru
-af5rwy
-af1u
-2af1w
-af1y
-2a2g
-ag1a
-ag3ad
-ag3al
-age3na
-age5ne
-ag3law
-agl3o
-ag3lu
-agl3w
-ag3n
-ag3od
-ag3of
-ag4ori
-ag1r
-ag3ri
-ag3ry
-ag1u
-ag2w
-ag3wa
-ag3wel
-ag3wn
-ag3wr
-ag5yma
-agy4w
-a1h2
-ahan3
-ahanad4
-ahedr4
-a2i
-2aig
-2ail1
-ailen3
-2ain
-4ainc
-2ait
-2al
-al5abr
-al3ad
-4al3ae
-alaf3
-4alaid
-al3an
-al5arc
-al5aso
-al3ce
-alch3w
-al5cwl
-al4di
-al1e
-al5edau
-al3ei
-al3en
-al4ena
-al4es.
-al2fo
-al3fy
-al3i
-al4is
-all3a
-all3e
-all3i
-all3oc
-all3w
-all3y
-3aln
-al3oc
-al3od
-al4ogia
-alo3na
-alo3n4e
-al3ono
-al3or
-alp4e
-al1u
-4alwc
-alw3e
-4alwr
-al5wst
-al3wy
-4alwy.
-al1y
-2am
-ambl3
-am3d
-amdan5
-amel5o
-am3er
-amgym5r
-amhen4
-amhobl4
-amhryd4
-am5las
-am4led
-am4lf
-am4lg
-am5nif
-am4of
-am2or
-amor5w
-am4pa
-a4mwa
-am5wed
-am5wri
-am5wyd
-am3wyt
-amyn3
-a2n
-2an.
-an1a
-a4nab
-anadl3
-a4nae
-a4naf
-an4afi
-a4nai
-an2as
-an3at4
-a4nau
-a4naw
-4anco
-an2da
-an5dda
-an4ddy
-an2de
-an2do
-an1e
-an2ed
-an3ed.
-an5eda
-an5edd.
-an5edo
-a4n3eg
-a4nel
-an3eli
-an5er.
-an5ewi
-2anf
-an3fy
-2ang1
-ang3ad
-an4gd
-ang3e
-an4gf
-anghaff4
-anghelf4
-anghredad4
-anghrist4
-anghy4
-anghyd4
-anghydna4
-anghyf4
-anghyfar4
-anghyff4
-anghyfiawn4
-anghym4
-anghyn4e
-angl4
-ang5or
-an3if
-an3igi
-4annau
-an3oc
-an3od.
-an3odd
-an5og.
-an5og4ae
-4anol
-an3ol.
-an3om
-an3ont
-an3or
-1anr
-an5sic
-ans4ie
-ans4iw
-an5siwn
-an4ta
-ant5ac
-an5the
-ant3rw
-an1w
-an3wes
-4anwl
-anwy4
-an3wyd
-anwyn3
-an1y
-any4l3
-a1oe
-ap3a
-ap4cy
-ap5elw
-ap3l
-apl4a
-ap5ost
-ap5rwn
-ap5ryn
-ap5wll
-2ar
-ar3ab
-aradr3
-arae3
-ar3af.
-ara5ff
-ar3an
-ar4an.
-aran3a
-aran3e
-arat4
-ar3aw
-ar4ber
-arc3as
-arch5en
-ar5clo
-ar2da
-ar2de
-ard5es
-ar4dr
-ardyn3
-ar1e
-ar2eb
-ar2ei
-ar5eid
-ar3eit
-ar3fa
-arfan5
-arf5ed
-ar5fel
-ar4ff
-ar3fod
-ar1i
-ar4ian
-ar2m
-4arn.
-arn5adwy.
-ar4nd
-3arnh
-ar4no
-ar4nw
-ar4ny
-ar1o
-ar4od.
-ar4odi
-arogl3
-3aror
-ar3os
-5aros.
-ar4p3as
-arp3w
-ar3sy
-ar3te
-ar4th3
-ar3ug
-ar3ut
-aru5wc
-3arwai
-ar5wch
-arwd2
-arw5der
-ar3wed
-3ar3wi
-arw3n
-ar3wn.
-ar3wni
-ar3wy
-4arwyn
-ar3y
-2as.
-2asas
-as5awr
-1asb
-as5boe
-2asd
-2ased
-as4enn
-2asf
-2asg
-as5gal
-asgl3
-asg4oda
-as3gwr
-asg3wy
-2asia
-4asie
-2asl
-2asn
-as4ny
-as4od.
-2asoe
-2asr
-2ast
-as4tal
-as3tan
-astat5
-as3te
-as4tl
-as4tr
-as5trus
-ast2w
-as5ty.
-as3tyl
-astyn3
-2asu
-as3ur
-as5wir
-2aswr
-2asy
-as5ynn
-2a2t
-at3ad
-at5alf
-ateb3
-at3em
-ath3a
-athl3
-ath3o
-ath4r3e
-athr3w
-athr5yc
-ath3w
-ath3y
-ato2i
-at3ol
-a3tô
-at3ran
-atr5oc
-at3rod
-atro5e
-atr5yc
-at3wy
-aty3na
-aty5ne
-a2u
-2aul
-2aw
-aw1a
-aw5art
-aw5chw
-aw5ddr
-aw5dry
-aw3ed
-aw3ei
-aw3el
-aw3es
-aw3f
-aw3ga
-aw1i
-awl5ed
-awn3a
-awr1
-awr3d
-awy4r3
-3áu.
-1â
-bab4i
-bab5yd
-b3ac
-bach3
-badd3
-b3adw
-1bae
-2baet
-b1af
-b1ai
-b1an
-ban3a
-ban3e
-b4ann
-ban3o
-5barch
-bar4f
-bar4lys.
-barn3
-bar4wy
-b1as
-bas3g2
-bast4
-bat4a
-b4ath
-b1au
-bawd4a
-bawe5na
-b1d
-b1ec
-2bed
-beir4a
-be4iw
-b1em
-ben4ae
-be3nas
-be5ned
-bengl4
-bens4
-bent4
-b3ent.
-ben3w
-benwy5na
-b3ert
-b3esi
-bgal4
-2b1i
-b3ia
-bi5aidd
-3bib1
-b3id3
-b3ie
-3b2ig1
-b4inc
-bin2e
-b3io
-b3ir
-bisg4
-b3it
-bl3af
-bl5air
-bla3na
-bla5nedi
-bla5nes
-2blau
-bl5awd
-bl3ec
-bl4enni.
-blew3
-4blwr
-b4lyc
-4blyn
-bl5yn.
-bo4b4l
-b1oc
-4b3odd
-bol3
-b1om
-b2on
-bon4d
-b2r
-bra3na
-br3ed
-breg3y
-br3em
-br4enn
-br2i
-br4il
-br3ir
-brod4iae
-brog4
-br4wd
-bryf3
-bryn4d
-b1s2
-bse3na
-bse5ne
-2bu.
-1bua
-budd4l
-bu4lo
-3buo
-bw3a
-b1wc
-3bwll
-b1wn
-b4wns
-bwr1
-4bwyd
-b3wyd.
-4b3wyf
-bwyllt4
-3bwyn
-bwy4r3
-2by
-b3ych.
-bydd5i
-b2yl
-3bylla
-by3na
-by3ned
-by3nes
-byrf4
-b4yrw
-3byst.
-byw3
-cabl4en
-c1ad
-cad3a
-cad3l
-cae4a
-caethiw4ed
-c1af
-c3ai
-cal3e
-cal3o
-cam4enn
-camn4
-can3a
-ca4ne
-canghe5na
-can3l
-c4ann
-can5olas
-can5ole
-c3ant
-can4yd
-car4en
-car4ped.
-c1as
-casg4e
-3cat
-ca4t3r
-c3au
-c3áu
-c1b
-cd2
-c1e
-c3ed
-c5edig
-ceg3
-c3el
-c2en
-ce3na
-c3ent
-cer5by
-cer4f
-cer3y
-ceu4l
-c3ff
-3chae
-ch3af.
-ch4afb
-ch4afi
-chan3a
-changhe5na
-char4enn
-chasg4e
-chdr5y
-ch3eba
-ch3ebe
-ch3ebi
-ch3ebo
-ch3ebw
-ch3ech
-ch3ed.
-ch3edi
-5chein
-chelad4
-ch3ent
-chen3y
-ch3er.
-cher4f
-ch3esg
-3chest
-4chestio
-4chestol
-4chestwa
-4chestwe
-ch3eta
-ch5ig.
-chleid4
-chl5ent
-4chmyni
-4chmynnol
-chn5eg
-chob3
-chobl4
-ch3odd
-chon5ad4
-ch3ont
-chon4y
-chra4
-ch4ro
-4chu.
-ch4ub
-4chus
-5chwant
-ch3wch
-chw4f
-ch4wi
-ch3wn.
-ch3wyf
-chyd3
-chym4an
-ch4ynn
-chysg3
-chys5o
-chyt3u
-chy5wa
-c1i
-cib3
-cig1
-c3in
-ci3od.
-cl2e
-cleid4
-cl2i
-c1ll
-cllon3
-cloe4
-cl2w
-cl4wm
-cly4w
-clywad4
-cn2
-cno4en
-cn4yw
-cob1
-co4bl4
-c1oc
-c1od
-cod4l
-coffad4wy
-collad4
-c1om
-c1on
-con4y
-corn4an
-cosb3
-cr3ae
-cra4m
-3crat
-credad4
-cr4el
-cr3ie
-cring4
-crof4
-crog3
-cron4a
-cro5nas
-cron4e
-cryg3
-crygl4
-cr4yl
-cr4ym
-crynho4em
-crynho4i
-cs3a
-c3s4aw
-cs3yn
-ct2a
-c4teg
-ct4id
-c1to
-ctor3
-c3tr
-1cu
-2cus
-c1w
-c3wa
-cwast3
-cw4fa
-cwm3
-cwn4ed
-c3wy
-c4wyn3
-cwy4r
-cyb3y
-2c1yc
-cych3
-cyd3
-cydl4
-cydr4
-cy4f3a
-cyfer3
-cyffel5
-c1yl
-cyll5a
-cym3
-cym4an
-cym4ero
-c1yn
-cyn3a
-c5ynau
-cyn3e
-cynef3
-c2yny
-cy4se
-cysg3
-cys5on
-cys3t
-cys3w
-cyth5rud
-cy1w
-cy3wa
-cy3wi
-cy3wy
-d1a2
-dach3
-d3ach.
-d5achwr
-d2ad
-dad3u
-dad3w
-d5adwy
-dae5ara
-dae5ared
-dae5ari
-dae5arw
-d2ael
-d4afe
-d4afo
-dag1
-dag3w
-4dail
-da5ion
-d4ait
-d4al.
-d4ald
-d4aln
-d4alr
-d2an3a
-d2an3e
-dan3f
-d2ano
-d2anu
-d2anw
-d2any
-dar3a
-dar4ana
-dar4d
-darf2
-d5arne
-dar3w
-d5aryd
-2das
-2dau
-2daw
-dawd3
-d5awd.
-d1b
-ddad3r
-4ddaf
-3ddang
-dd4ani
-dd3ara
-dd3ari
-dd3arw
-2ddas
-dd4aw
-ddd2
-d4dda
-ddd4e
-dd4d4i4
-dd3dr
-dd4du
-dd4dy
-dd5dy.
-dd3er.
-ddeth5
-ddeuad4
-dd4eug
-dd4ew
-dd2f
-dd4fg
-2ddi.
-dd4ic
-dd4if
-ddif3a
-dd4ig.
-ddi3gy
-dd4il
-dd4im
-dd4ini
-4ddit
-dd1l2
-dd5len
-2ddo.
-4ddoc
-dd3odd
-4ddom
-4ddon3
-dd2or3
-ddr2
-ddr4a
-ddr4e
-ddr4i
-ddr4o
-ddr4w
-dd4ry
-d2du
-4dd3un
-dd5us.
-dd5waw
-4ddwc
-dd2we
-4ddwn
-5ddwrn
-dd4wyn
-3ddwyr
-dd2y
-4ddyc
-dd4ydd
-dd5yf.
-ddym4d
-dd4yn
-ddy5nad
-5ddyni
-4ddynt
-3ddyr
-3deb.
-debr3
-d1ec
-dech4a
-d1ed
-d5edd.
-deddf3
-def3a
-d1eg
-d5egol.
-de1h
-deheu5
-d2eil
-d4eim
-delff5
-d3ella
-d3elle
-d3elli
-d3ello
-dellt5
-d3ellw
-del3o
-d1em
-d3em.
-2d1en1
-d4eng
-d3ent
-de2o
-der3f
-derfyn5
-2d1es
-d3esi
-5destu
-d1et
-det5an
-deth4o
-d1eu1
-deul4
-deu4ny
-d4eut
-d1f2
-d3f4ae
-df4ann
-df4ao
-d4fa5ol
-df4at
-df4aw
-dfed5r
-d3fei
-dfe5ne
-d5ferf
-d4fery
-dff4y
-d2fi
-df4id
-df4od
-d4f3ol
-df4ry
-d2fu
-dfwr2
-d4fyd
-dfyn3a
-dfyn4ed.
-d1g2
-dgam2
-dgan5e
-dg4ei
-dgl2
-dgrynho5
-dgyf5ar
-d1h2
-dha5ol
-dhegl5
-2d1i
-di5ach
-di1b2
-dibryd4
-di1d
-did2e
-di5den
-d4ido
-di5dos
-di4et
-di3eu
-dif4an
-di5fat
-di3fe
-di3ffr
-di5fli
-di5flo
-di5fra
-di3fw
-di5gab
-dig2e
-di5gel
-di3gen
-dige5na
-dige5ne
-digl4
-di5gof
-di3gry
-di3gw
-dig2y
-di3gym4
-di3gys
-dil4a
-dil4e
-di5lec
-di5les
-dill4a
-di3lu
-dil2w
-di3lys
-d3in.
-di5niw
-di3nod
-d4inoe
-di3or
-d2ir
-d3ir.
-di3ra
-d4i3r2e
-di5rif
-3d4iro
-di4rw
-di3rym
-dis3g
-di3so
-dis3t
-di3sw
-di3sy
-4d3it.
-d2iw2
-d4iw.
-di3w4a
-d4iwe
-di5wen
-d3iwyf
-d1ï
-d3ladd
-dladr3
-dl3af
-d3lam
-d4lau
-dl3ed
-d3l4ei
-d4len.
-dle3na
-dle5ne
-d4lent
-dl3er
-d3lew
-d2lo
-dl3oc
-dl3od
-d3lon3
-dlon5e
-d1lu
-dludd3
-d2lw
-dl3yc
-d3lyd.
-d3lyn
-dl4yr
-d3lyw
-d1m2
-dm4ar
-dm4er
-dm4od
-d3my
-d1n
-d3nap
-dn3as
-d3naw
-dneb4
-d2n3ed
-dn3es
-d2ni
-d3ni.
-dno2i
-d3nos
-d2n1w
-d2ny
-d1o
-d3och
-d2od.
-d2odi
-d4odia
-dod3r
-2doe
-do4en
-d2of
-dof5yddio
-d3ol.
-d4oll
-dol4wg
-d3om
-don2a
-don2e
-d3ont
-dor2a
-dor4da
-dor5we
-dos3
-do2w
-2dr.
-3dra.
-dr3ad.
-dr3ada
-dradd3
-dr3adw
-dr3a4f
-dr5aid
-dr5ain
-dram4g
-dr4an.
-dra3na
-dra3ne
-dr4ann
-dr3ant
-dr5au.
-dr3c
-dr3ed
-dr4edo
-dr3en
-d4reu
-drew3
-dr3f
-drff4
-dr4iau
-d4r3id
-d4rir
-d4roe
-dro3es
-4drog
-drog4e
-dr3ol
-dr5ol.
-dr3on.
-dron3a
-dr3ont
-d4rwg
-dr3wn
-dr3wyf
-dr3yd
-dr3yn.
-d3ryw
-d1s2
-d1ug1
-d4un.
-dun3a
-d4unia
-d1ur
-d1us
-1dut
-du5wch
-d1w
-dw2a
-dw3adw
-d3wae
-dw3af
-d3wait
-d3wal
-dw3an
-dw3as
-dwb3
-dwbl4
-d3wc
-dwd2
-dw3edi
-d2wen
-dwer5y
-d4w3id
-d4w3ir
-d4wit
-dw5mig
-dw3o
-dwr3e
-d2wrn
-dwy3b
-d4wyc
-dwyn3
-dwy4on.
-d2wyr
-3dy.
-d1yc
-d5ych.
-d1yd
-d3yd.
-4dydd
-dyd2w
-dydw5y
-dyf5an
-dyff4
-dyf4n3
-dyf4od
-dyf5odd
-dy5fodi
-dyf2r3
-dyfrad4
-d3yg.
-d3ygl
-dy3gy
-d2yl
-dyl5ad
-dy3lan
-dyll3
-dy3lu
-d1ym
-dymag5
-dym5od
-3dyna
-dy3nas
-dy3nes
-dy3n4od
-dy3r2a
-dyr2e
-dy3ri
-dy5ryd
-2dys.
-4dysa
-dys4g
-dysg5a
-4dyso
-2ea
-e1ad
-e4adf
-e4adl
-eaf1
-e3af.
-ea4fa
-e4afg
-e1ai
-e1an3
-e4ang
-ear1
-earf2
-ear5fo
-earn4i
-e1as
-e1au
-e3aw
-eb3ad
-eb5ar.
-eb1e
-ebl2
-eb1o
-eb3ont
-ebra5ne
-ebr3e
-eb4r3i
-ebr3o
-eb1w
-eb3wy
-eb5yll
-2ec1a
-2ec3e
-ech1
-ech5od
-echr4
-ech3ry
-ech5we
-ech5wyd
-echwy5na
-echwy5ne
-2eco
-econ2
-eco5no
-ec5ord
-ecr1
-2ect
-ec4to
-2ecw
-ec3y
-2ed3a
-ed4al
-edd3ad
-edd3al
-edd3ar
-edd3e
-2eddf
-eddf3a
-eddf5i
-eddf3o
-eddf3w
-eddf3y
-4eddg
-edd3o
-edd3yc
-edd3yg
-edd5yla
-edd5yled
-edd5ylo
-edd5ylw
-edd5yn
-ed1e
-ed3eg
-ed2ei
-eden5a
-ed3fa
-ed3fe
-ed3fi
-edf4w
-4edia
-edi4f
-ed3ig
-ed3i4n
-ed3ir
-ed3iw
-3edï
-2edl1
-ed4lo
-4edr.
-edr3e
-edr3o
-edr4yd
-2edw
-ed2we
-edw3en
-edw5lw
-ed3wy4
-ed3y
-edym4
-2e1e
-ef5adwy.
-ef3an
-ef5an.
-ef3ar3
-ef3au
-ef1e
-efer2
-eff4e
-eff3r4
-eff5re
-effro4er
-eff3y
-ef3id
-ef3ig
-ef2l3
-ef4lo
-efn1
-ef5nos
-ef1o
-ef4odo
-ef2r
-efr3e
-ef4ri
-ef4ry
-ef4us
-ef1w
-efyddad5
-efy3na
-efy5ne
-e2g1
-4eg5an.
-eg4ana
-egar3
-egeir4
-eg5ell
-4egen.
-2egf
-eg5ig.
-egl3a
-egl3e
-egl3o
-2ego
-eg4on.
-4egos
-eg5os.
-egr3a
-egr3e
-egr3i
-egr3o
-egr3w
-eg3ry
-egr3yc
-eg2u
-eg3yr
-e1ho
-e1hy
-e2i
-2ei1a
-eiaf3
-ei5afr
-ei3bre
-eich3
-eidal5
-eidd3
-eidd5y
-ei5der
-eidl2
-eid5la
-2eidr
-eidr5o
-ei1e
-2eig
-eigl5ad
-eig5lenn
-eigl3w
-ei4gr
-3eilad
-4eiladwy.
-eil5ec
-eil5eg
-eil3es
-ei4ll
-ein2a
-eind5i
-ein4drw
-4einf
-eing4a
-ein5io
-4einl
-4einy
-2ei1o
-ei3ont
-eir3y
-2eit
-eith5e
-ei1w
-ei3y
-2e2l
-el1a
-el5ain
-elan5e
-el4co
-el1e
-el3ed
-el4eno
-el4era
-el4ere
-el5far
-el5fed
-elgri5
-3elh
-el5iff
-4elig
-ell1
-ell5ac
-ellt4ir
-ell5wy
-ell3y
-el2m3
-el5myn
-el1o
-el2od
-el3odd
-4elog
-el4oga
-el2ri
-el4wi
-el3wy
-el5ybia
-el5ybr
-el3yc
-4elyd
-el5yd.
-el3ydd
-elyn3
-el3yna
-el5yned
-elyng4
-el3ynn
-el3yr
-el3ys
-el4ysg
-el4yst
-em5ain
-em4at
-2em3e
-2emo
-em4os
-2emp
-empr3
-em5ryn
-2emt
-em5tas
-2emy
-en5ada
-e4n3adu
-e4nae
-en3af
-e4nag
-en5ago
-en3ai
-en3an
-e4nar3
-enar4g
-e4n3aw
-en5byl
-en3c
-en4ct
-en4cy
-2end
-endig3
-endr4
-en3ec
-en3ed.
-en5edd
-en3el
-en3em
-en3en
-en3er
-en3est
-en3eu
-e4new
-enew5y
-en5fyd
-eng3h
-en4gi
-engl3
-en5gl4og
-en5ise
-en3it
-en3o
-en4oli
-4enti
-ent4ir
-en3tr
-ent4wr
-4enty
-en5tya
-en5uch
-enw3ad
-en3wc
-en3wn
-en3wr
-en3wyd
-en3wyf
-en3yc
-en5ych.
-en5ychase
-en5ychia
-en4yg
-2eo
-e5och.
-e1od
-e1oe
-e4olae
-e4olaid
-e4olau
-e1om
-e1on
-eor3
-ep5ach
-ep3l
-er1a
-er5ain
-er2c
-erc3a
-er4ch
-4erco
-2er2d
-er3de
-erd3y
-er1e
-2erf
-er5fan
-erf5au
-er3fed
-er3ff
-er4fl
-er4fu
-er3fyd
-er3gl
-er2gy
-er3i
-er4ic
-er4il
-erin3
-er5ir.
-er5it.
-er2l
-er5lys
-er4md
-er4mw
-er4my
-er3na
-ern4i
-er5ni5as
-er5nyw
-er1o
-4erob
-erog4
-4erol
-er5oli
-er4ony
-er2se
-er5sei
-2ert
-erw3a
-er4w3e
-er4wl
-er3wn
-er4wre
-er3wy
-er4wyc
-er4wydd
-er3yc
-er3ydd
-er3yg
-er3yl
-eryl3e
-er4yll
-er3yn
-eryn4a
-eryn4e
-es3a
-es3ba
-es3e
-es5gar
-es4ge
-es4gn
-es4g3w
-es4gyn
-es3n
-es4ne
-es4t3a
-es5tam
-est3er
-2estf
-2estl
-est5ol
-4estu
-es5tyll.
-esty5na
-esty5ne
-2esu
-esurad4
-es4yd.
-es3yn3
-e2t
-et3ac
-et3ad
-e3tae
-et5eg.
-eter4
-et3er.
-eth1
-eth3e
-eth3i
-eth4le
-eth3os
-eth4r3
-eth3w
-et5iro
-et1o
-et5re.
-et5swy
-et1w
-4etwr
-ety5wy
-e2u
-eu3a
-4euau
-2eu1b2
-2eud2
-eu3da
-eu3d4e
-eud4i
-2eu1f
-eu1g
-eull4
-eu5lys
-2eun2
-eu5nan
-eu5nos
-eu5nyddi
-eu5sil
-eus3t
-eu4th
-eu4tu
-eu3w
-2ew
-ew1a
-ew3d
-ew1e
-ew3g
-ewgl4
-ewg4w
-ew3ir
-ewis3
-ewl1
-ew3o
-ew5par
-e3wyd.
-e3wyf
-2ey
-e1yc
-ey4en
-1ë
-3fa.
-fab3
-fab4i
-fach3
-fac4w
-fadd2
-fad4ei
-fad4r3
-fael3
-f1af
-3fag
-fag4d
-fagl3
-f1ai
-falch4
-f4al5on
-f4alu
-f3am
-f4an.
-fan3d
-fan5edd
-fan4es
-f3anf
-fan3o
-fant2
-3faoe
-far3a
-far4ch3
-4far2e
-f3arf
-far4fa
-far4l
-3farn
-farn3a
-f3arp
-f3art
-f4arwe
-f3arwy
-f1as
-fas4iw
-f3at
-fat4o
-fawd4a
-3fawr
-f1b2
-f1d2
-fdd2
-f2dw
-fd5wr.
-f4eb.
-febr3
-f1ec
-fed4n
-f2edr
-3feia
-3feie
-fe4io
-feiriad4u
-feith3
-fe4iw
-f4el.
-f3ell
-fel5yno
-f1em
-fe3na
-feng3
-fent4
-fentr5
-fenw3
-fen3y
-2fera
-ferch4er
-ferdd4
-2f2ere
-2f2eri
-fer4in
-2f2ero
-f2erw
-ferw5yc
-f4er3y
-f1es
-feth3
-f4eth.
-f4etha
-feu1
-3fey
-f2f
-ff3ad
-ff3ant
-ff4at
-ff3au
-ff3ed.
-ff5edig
-ff5eio
-ff5el.
-ffen5ed
-ff3ent
-ff3er.
-3ffert
-ff3esu
-ffet4
-2ffi
-ffidl5
-ff2l
-ff4la
-ffl4ac
-ff4lo
-ff5log
-ff5los
-ff3n
-ff3od
-ffod5e
-ff4odi
-3ffon.
-ffo3n4a
-ffo3n4e
-ff3ont
-ff2or
-5ffor.
-ff4os
-ff2ra
-ff2ri
-ff4rod
-ff2rw
-4ffry
-ffr3yn
-ff2t
-5ffurf3
-ff5wyf
-ff5yl.
-f1g
-fg4wr
-f1h2
-fha5ol
-f1i
-f4iadae
-2fic
-fic4e
-f2id
-f3id.
-fig4en.
-fil3y
-fin3
-f4in.
-f3ind
-fin4t
-fisg4
-f2ï
-fl2
-fl3ad
-flaf4
-fl3ai
-flamad4
-fla3na
-flan5ed
-f2las
-flaw4
-fl3ec
-fl5eis
-fl3em
-fle3na
-fle5ne
-fl4eo
-fl3id
-fl4ig
-flin3e
-fl3ir
-fl4iw
-fl3om
-f3lon
-fl5rwy
-f4l3wr
-f1ly
-f5lychw
-f4l4yd
-fl4yf
-flyn3a
-flyn3e
-f2n
-fn3a
-fn3d
-f4n3ec
-f4n3ed
-f4n3em
-f4nen
-f3nif
-fn3ig
-f3nith
-fn5lu.
-f4n3oc
-f4n3om
-f4n3on
-fn3w
-fn2y
-f4n3yc
-fn3yn
-f1oc
-fodd3
-fod4enn
-f4odf
-fodr4
-fod3rw
-f4odu
-f3oedd
-f1og
-fol3
-fol4enn
-f1om
-fon4d
-5fonog
-f4ony
-f4or.
-for4c
-f4ord
-for3f
-f3os2
-fos4i
-fos3o
-f3ot
-f4otr
-fr2a
-f2raf
-f2rai
-fra3na
-fra5ned
-fras4au
-f4r3au
-fr3d
-frdd2
-fre2
-f2rec
-f4red.
-f4reg
-freg3y
-f2rem
-f4ren
-f3reo
-f2rer
-fr3f
-f2rh
-f2rid
-fr3id.
-f2rir
-f4rit
-fr2o
-f3roa
-f5roadw
-f2roc
-frod4iae
-fro2e
-fro4en
-fro5esi
-f3ro2i
-f2rom
-f2ron
-f3roo
-fr4ot
-f3row
-fro4wc
-fro4wn
-f1ru
-fr2w
-f2rwc
-f2ry
-f3ryn
-f1ta
-f3ter
-fudd4l
-fud3w
-fu2l
-f1un3
-f4urf
-f3wa
-f1wc
-fwd3
-f1we
-4fwl.
-f1wn2
-f3wr.
-fwr5ne
-f4wy.
-f3wyd
-fwyllt4
-fwyn3
-f4wyn.
-f4wys
-f1yc
-fyd2
-fyddad4
-fydd4l
-fydd5y
-fyd4l3
-f4ydr
-fyd3y
-3fyf
-fyf4y
-f1yl
-f4yl.
-f2yn
-4fyn.
-f3yng
-fyn3o
-fyn5od
-f2yr
-fy3r2a
-f3yrd
-fyr2e
-fyrf4y
-fyr4y
-fys4t
-fystyr4o
-fys4w
-gabl4en
-g5ach.
-gad1
-gad3a
-5gadar
-g4ad2u
-5gaduri
-g4adwr
-g1ae
-gae3a
-g3af.
-gaf3a
-gaf4r3
-g1ai
-1gal2
-gal5ara
-gal5are
-gal5ari
-gal5aro
-gal5arwy
-galed5
-4gall
-gam4enn
-gamn4
-gan3a
-gan4d
-ga4ne
-ganghe5na
-g3ant
-4ganwr
-g3ao
-gar3eg
-gar4enn
-g3arf
-gar4ge
-3gart
-4garthia
-gar4we
-g1as
-5gased
-gasg4e
-ga4t3r
-2g1au
-4gawe
-2g1b
-gb4er
-g1c
-2g1d2
-gdd2
-gddig5
-gdo3ra
-gdo5r4e
-g2dw
-gd5wr.
-g1ec
-g1ed
-gedd3
-g2ede
-g4edi.
-g4edid
-g4edir
-g4edit
-g2edo
-g4edu
-g4edyc
-geg3
-g2egy
-g2ei.
-g3eid
-g4el.
-gell5a
-gel3o
-g1em
-gen4d
-g5enni.
-gen2r
-g3ent
-g4enu
-g3er.
-3g4erd
-ger4f
-ger3y
-g1es
-geu4l
-g1f2
-gfa3na
-gfa5ne
-gfe5ne
-gfyn3
-g3ga
-gh2
-ghae4
-ghan3a
-ghanghe5na
-ghar4en
-ghasg4e
-ghen5i
-gher4f
-gh4le
-ghleid4
-gh4ne
-ghob3
-ghobl4
-ghof5r
-gh4og
-ghon4y
-ghr2
-ghra4
-ghred4adu
-ghred4inia
-ghw4f
-ghyd3
-ghym4an
-ghysg3
-g1i
-gib3
-g4ida
-gi5en.
-g2ig1
-3gil
-1gip
-g3iw
-g2l
-gl3ac
-gl3adw
-glaf2
-glan5e
-gl3ant
-glas3
-g5las.
-g3lat
-gl5au.
-gl2e
-g3le.
-gl3ech
-gl3edi
-g5leisiaso
-g3leo
-gl3es
-gl3eu
-gl3f
-gl3ia
-gl3id
-g3liw
-gl4odi
-gl4ody
-glo4e
-gl4of
-5gl4oga
-glo2i
-g4lu.
-g4lwc
-g4l4wm
-g4l3wn
-g4lwyf
-gl3yc
-g3lyd.
-gl4ym
-gl4ys
-gl4yw
-g2n
-gn2i
-gn3io
-g4niw
-g3nï1
-gno3e
-gn2of
-gn2u
-gn1w
-gn4yw
-gobl4
-g1oc
-goddefad4
-go5ddr
-g2od2y
-god5yn
-g2oe
-go5fau
-go3fer
-goff4au
-gof4un
-gog2
-go3gan
-gog3e
-gog4l4
-go5gyn
-g3ol.
-goleu5
-3g4oll3
-go4lw
-gol5yga
-gol5yge
-gol5ygwy
-g3om.
-go3me
-gon5ad
-g4one
-g3ont
-gon4yn
-g2or
-gor5chy
-gorddad4
-gord5i
-g4orf
-gorn4an
-g4orol
-gor3t
-1gos
-gosb3a
-g3ota
-g3ote
-g3oti
-g3oto
-g3otw
-g2r
-gra4m
-gran3a
-gr4el
-gr3f
-gr2i
-g4rid4
-gr3ie
-gring4
-g4r3ir
-g4rit.
-gr2o
-gr3od
-gr4oe
-gr5oed
-grof4
-grog3
-gron4a
-gro5nas
-gron4ed
-gron4es
-gr4ono
-grwn5a
-gr3wo
-gr4wt
-gr2wy
-g5rwydd
-g4ryc
-gryg3
-grygl4
-gr4ym
-gr4yn
-g1s2
-gsym4
-gub3
-gudr4
-gu5edd
-gu4to
-gw2
-gwa5r4as
-gwar4es
-gw4as
-g3wc
-gweithiad4
-gwelad4
-gwel5e
-gwen3a
-gwerthad4
-gwm3
-gwn4a
-gw4n4e
-gwobr3
-g3wr.
-g4wrd
-g5wth.
-gwy3by
-g3wyd.
-gwydr5
-g3wyf
-gwy4r
-gwyw3
-3gyb
-gyb3y
-g1yc
-gych3
-g4ycho
-gydd4f5
-g2ydi
-gydl4
-gyd3r4
-g4ydu
-g4ydy
-3gyf
-gyf5an
-gy4fe
-gy4fl
-gy4fr
-g3yl3a
-3gylc
-g3yle
-g4ylio
-g3ylo
-g3ylw
-g2ym
-gym4an
-gym3u
-gyng3
-g2yno
-g2yr
-g4yro
-g2ys
-gy4se
-gysg3
-gys5on
-gys3t
-gys5to
-3gyw
-gy3wa
-gy3wed
-gy3wi
-gy3wy
-hab3yd
-hadd5as
-hadd3o
-had4eg
-had4eny
-h4adf
-had4fer
-hadl4a
-had3n
-had3r4
-h5aeol
-ha4f3a
-h4afl
-haf5ol
-h4afs
-hag3w
-h1ai
-h4aif
-hal3e
-hall3o
-hal3o
-ham4enn
-hamn4
-ham3s
-han3ad
-h4anau
-hanc4
-han3d
-ha4ne
-han5edd
-han4er
-h4ange
-hanghen4r
-han3ig
-han3l
-han2o
-han4oda
-han5olai
-han5olas
-han5ole
-han5olwy
-hanrhyd4
-hansodd4ei
-har5adwy.
-hara3t
-harato4en
-har4bwr
-har4cha
-har4fo
-h1as
-h3asf
-hast4a
-ha4tr
-hatr3e
-h1au
-hawe5nas
-hawe5ne
-hawl3
-h2â
-h1b2
-hbl4a
-h1d2
-hddad3
-h3di
-hd4ir
-hdo3na
-hdo3ne
-hd4ra
-hdr3e
-hdr5oc
-hdr5od
-hdro5ed
-hdr5wyd
-h4dwr
-h2eb
-h3eb.
-heb3ra
-hedd3
-hedd4fo
-h2ede
-hed5fo
-hed5fw
-h4edid
-h4edir
-h4edit
-h2edo
-hedr5wy
-h4edu
-h4edy
-h2ef
-h2eg
-hegn3
-h4egy
-he4ho
-h2ei2
-h4e3ia
-h4eil
-heimlad4w
-h4el.
-4helad
-4helaf
-4helai
-4helan
-4helas
-h3eld
-2hele
-4heli
-2hel3o
-hels4
-2helw
-4hely
-hel3yd
-h1em
-hen5cy
-hen4id
-hens4
-hen3wy
-henwy5na
-henwy5ne
-heny5na
-he3ol
-her3b
-h2ero
-h3esi
-h2et
-h3ete
-h3eto
-5heuae
-heu4aetha
-heu3d
-heu2l
-he4wi
-hewy5nas
-h1f2
-hfil4
-hfonhedd5
-hf4os
-hf4wy
-h1g2
-hgan3
-hgap2
-hgi5ai
-h1i2
-hiach4
-hiac5has
-hiac5he
-hiac5hw
-hi4a4n
-hib3
-hidl3
-h2ig1
-hig3y
-hin4t
-hir3
-hi4wa
-h2ï1
-hï4en
-hl2
-hl4ad
-hl5adw
-hl4am
-hla3na
-h5las.
-hl3asi
-hl3aso
-hl4aw
-hl5ech.
-hl5edig
-hledr5
-h3lef
-4hleit
-hl4en
-hl4et
-hl3id
-hlon3a
-hlon5e
-h4lus
-h4lwm
-h5lyd.
-hl3ydd
-hlym4u
-h4lyn
-hl3yn.
-hlywad4
-h1m2
-h3myg
-hmygad4
-h3myn.
-hmy3na
-hmy5ne
-h5myni
-hn2
-h3nad
-h2neg
-h4new
-hn4ie
-h1nï1
-hnod3
-h2nol
-hn5ole
-hn4yw
-ho4ad.
-ho4bl
-hod4l
-ho4dy
-ho4en
-hoffad4wy
-h3og.
-h3o4ga
-hog5lu
-ho2h
-h2ol
-h3ol.
-hol5ud
-h1om
-h2or
-h3or.
-hor4c
-horn4an
-h4os.
-hosb3
-hos3o
-h2ow
-hp2
-h2r
-hra3dd
-hr3adw
-hr3af.
-hra3g
-hr4aid.
-hr3ant
-h5raul
-hr5edig
-hr3em.
-hr3f
-hr2i
-hr3ia
-hr3id.
-hrid4a
-hr3ie
-hring4
-hr3ir
-hrisiad4
-hr3it
-hr3iwy
-hr2o
-hro4ad4
-hr5och.
-hr3odd
-hrog3
-hr3om.
-hron4a
-hro5nas
-hron4e
-hrong5
-hr3ont
-hr4ud
-hr3wn.
-hr5wyd.
-h5rwydd.
-hr3wyf
-h4ryc
-hryg3
-hrygl4
-hry3l
-hr4ym
-hrynho4e
-hrynho4i
-hrynho4wn
-h4rys
-h1s2
-hsef4
-h2t
-h2u
-hub5on
-hudd3
-hudd5y
-hudr4
-hud3w
-hud5yl
-h4uge
-hug4l
-hun3ad
-h4unn
-h3ur.
-h3us.
-h4use
-h4ust
-h4usw
-hw2a
-hw4as
-hwbl5e
-hwd3
-hw2e
-hwedl5
-h3wei
-h4wel.
-hwen3
-hwen4y
-hwe5nychaso
-hwe5nyched
-hwerw5
-hwe5ug
-hw2i
-hwiw5g
-hwm3
-hwn4e
-h3wr.
-h2wy
-h4wy.
-h4wya
-hwybr4
-hw4yc
-hwyll5t
-hw4ym
-h4wyo
-h5wyol
-hwy4r
-hyb4l
-hyb4wyl
-hyb3y
-hydd4id
-hyd4fo
-h2ydi
-hydl4
-hyd4naw
-hy4f3a
-hyfad4
-hyf4ae
-hyfar5f
-hyfer3
-hyffel5
-hyffred4in.
-hyf4iai
-hy4ga
-hygl4o
-hygl4w
-hygr4
-hyll3a
-hym4adw
-hym4ant
-hym5el
-hym4en.
-hymerad4
-hym3o
-hymp4
-hym3u
-hym5yr
-hym5ys
-hyn3a
-hyn3e
-hynef3
-hyn3yc
-hyr3a
-hyrdd5
-hyrf3
-hyr5n4o
-hyr2w
-hys4b
-hy4se
-hysg5od
-hys4ig
-hys4n
-hys5oni
-hyt4bw
-hyth5ru
-hyt2u
-hytun4deba
-hy3was
-hy3we
-hy5wed
-hy3wi
-hy3wyd
-1ia
-iab4a
-iach2
-iad3
-i4ada
-5iadaeth.
-iad4lo
-5iaduro
-i3ael
-3iaet
-4iafo
-iag3w
-2ial1
-ial4ae
-2i3am2
-iam3h
-ia3na
-4iand
-ian5da
-ia3n2e
-4i3ang
-iang4e
-ianghen5
-ian3o
-ian3w
-2iar
-i3ard
-i3arf
-iar4l
-iarll5
-iar4s
-i3asg
-iat5er
-i2au
-iawnad4
-2ib
-ib3ed
-ib3el
-iben5y
-ib3es
-ibetr4
-ib3i
-ib4il
-ibl3e
-ibl3o
-ibl3w
-ib5og.
-ib3on
-ibr3a
-ibr3w
-iby4nad4
-2ic
-ic3en
-ichl4
-ic5ied
-icon2
-ic5oni
-ic5rwy
-ics4i
-ic5siw
-ic3t2
-2ida
-idal4
-2idd
-i4ddai
-idd4au
-i2dde
-idd3f4
-idd3i
-i4ddir
-i4ddod
-idd3r
-2ide
-idel4
-ider4
-2idf
-idf4w
-2id3i
-idi4a
-id4lo
-idl3w
-2idm
-2i2d2o
-id3og
-i3dola
-i3dole
-i3dolo
-i5dolwy
-ido3na
-ido5ne
-i3dor
-2idr
-idr4a
-idr4o
-id3rwy
-2idu
-2idw
-idw3a
-idwad4w
-id4wr
-2idy
-id3yl
-id2ym
-1ie
-4iedd
-4iedi.
-iedif5
-ied4yl
-2i3ef
-i3eg
-iegwydd4
-2iei
-i3eid
-ieis4
-4ien.
-ien4a
-ien4c
-4iend
-i3ene
-2ienn
-ienw4
-i3eny
-i3esg
-2if
-if4add
-if4ae
-if4al
-ifan3a
-ifan5e
-if4ao
-if4ar
-if5ard
-ifar3e
-if4at
-if5ath
-if4aw
-if5bin
-i4fec
-i4fed.
-i4fedi
-i5feio
-i5feiw
-i4fem
-ife4n
-i4fent
-i4fer.
-i3fery
-i4fesi
-i3fet
-iffl3
-iff5or
-i3ffu2
-iffy5na
-iffy5ne
-if3i
-i3flas
-if4on.
-i3fre
-i3fry
-i1fu
-i4fwc
-i4fwn
-i4fwyd
-i4fwyf
-i1fy
-i4fyc
-i4f4yl
-ify5re
-ig3ad
-ig3af
-ig4ain
-2igan
-4i3gar
-ig1e
-ig3ed
-ig3es
-ig5hal4
-2ig3i
-ig5lan.
-ig5lann
-ig5law
-ig5let
-ig4l3o
-ig4ly
-ig5lyd
-igl3yn
-ign1
-2igo
-ig3odd
-ig4ode
-ig3oe
-ig3om
-2igr
-i3gre
-igref4
-i3gro
-ig3rw
-igryb4
-2igw
-ig5wai
-i4gwc
-i4g3wn
-ig4wrn
-2ig1y
-igyff4
-ig5yn.
-ig4yna
-ig4yr
-igys4
-ig5yso
-igysyllt4
-igyt4
-igy4w
-2i1h2
-i2han
-ihat4
-ihe4w
-2i1i
-i3iw
-2i2l
-il3a
-5ilau.
-ilc2
-ild5ir
-il3ed
-il5en.
-ilew4
-il1f
-ilf4y
-il3i
-il4ip
-ill3
-ill5iw
-illt4
-il3oc
-il3od
-il5ofy
-il3on
-il2s3
-il4sy
-il4ti
-iludd4
-il3un
-il1w
-il5wai
-ilwen3
-il4ws
-il3yd
-il3yg4
-il3yn.
-ily3na
-ily5ne
-i4lysia
-il5ywa
-2im2
-im4bi
-im3i
-iml3
-im4le
-2in
-in1a
-in3ac
-in3ad
-in3af
-in3ai
-in3an
-in2be
-inc4e
-in4ci
-inc2o
-in4cy
-in4dai
-in1e
-3in4eb
-in3f
-ing5en
-in4g3o
-ing3w
-ing5yl
-in5gyn
-in3ia
-in3id
-in5iew
-in3ig
-iniw4
-in4iwe
-in1o
-in4ode
-in4odi
-in4ody
-in3oed
-in3on
-in3os
-int4a
-in4te
-in2t3r
-in4ty
-in3w2
-in5wyc
-in1y
-1io
-3io.
-2iod.
-i3odde
-iod5le
-iod5wy
-2ioe
-2i1of
-iog3
-4iolc
-iom3
-i2on
-ion3a
-ior4c
-ior4f
-i4orw
-2ios
-2iot
-2ip
-ip5ell
-ip4og
-ir1
-ir2a
-ir5agl
-ir3an
-ir4áf
-ir3b
-irch3
-irdy5na
-irdy5ne
-2ir3f
-2iri
-i4ria
-ir3io
-i3ris
-ir4li
-ir4ll
-ir3na
-irnad4wy.
-ir3no
-irn4y
-2ir3o
-ir3w
-irw2i
-ir4wo
-ir2y
-ir3yn
-i3ryw
-2is
-isaf4
-is3b
-is5eld
-is2er
-is5er.
-is4gam
-is4ge
-isg3o
-is3gr
-isg5wyd
-is3gy
-is4la
-is5myn
-is2o
-is5odd
-is3ol
-is3on
-ist2
-is4ti
-is5tol
-is2w
-is3wn
-is5wyd.
-is4yc
-is4yr
-1it.
-3it2a
-2ith1
-ith3a
-ith4au
-ith3eg
-ith3i
-ith5or
-ith3w
-ith3y
-2iw.
-iw3adw
-iw3af
-i4wair
-i3wal
-iw3an
-iw3as
-3iwc
-iw4ch
-2iw1d2
-iwd4i
-iw5edd.
-iw3edi
-iw3eid
-iwg4w
-2iw1i
-iw1l2
-iwl4e
-iwl4i
-iwl4o
-iwl4w
-iwm4e
-iwmp4
-3iwn
-iwn4i
-4iwnl
-iw3o
-i3wre
-i3wrt
-iw5ter
-1iwy
-iw4yd
-iw4yf
-iwyn3
-4iwyr
-1iy
-2iyd
-2i1ym
-iyn3
-2i1ys
-ï3ae
-ï2i
-l1ac
-lach3
-2lad.
-l4ad4d3
-lad2m
-lad2o
-lad3r4w
-4laen
-l3af.
-5lafar
-l1ai
-l4ain
-l4air
-l4ait
-lam3
-l4an.
-lan5ced
-lan5de
-landr3
-l2ane
-lan4es
-l4ann
-lan3o
-4lant3
-lar3a
-lar4ia
-lar3n
-l1as
-l4as.
-lasg4
-last2
-las5ta
-4lat.
-lathr3
-lats5i
-2l3au
-law5dde
-lawen3
-law3l
-law3no
-lawr2
-law5ro
-law3y
-2l1b
-lb4an
-l2c
-lch1
-lch5io
-lch5iw
-lch3r
-lch5wyd.
-l3co
-lc3yn.
-2l1d2
-ldd2
-ld3i
-ld4ir
-ldro3
-ldy5na
-ldy5ne
-1le.
-le3a
-le4ad.
-le4ada
-lebr3
-lech3
-l3ed.
-leddf5
-l4eddog
-led5fy
-led3l4
-l4edr
-lef1
-lef3e
-lef3y
-l2ega
-leg5ar.
-l2egw
-leg5yr
-le5iau
-le3id.
-lei3l4
-le3ir.
-le3it.
-le4iw
-l3el
-2l1em
-l3em.
-l2ema
-len2d
-len5di
-len5ig
-l3ent
-len3y
-1leo
-le3oc
-le4on.
-l3er.
-l4erau
-ler5ig
-lesg5e
-l4esn
-let4em
-le4tr
-l4euad
-l4euh
-4leuon
-l5euon.
-le3wch
-le3wn
-lew3yn
-lf2
-lf5air
-l3fan
-lfe3ne
-lf4fa
-lff4y
-l1fi
-lf5icy
-l1fo
-lf5oda
-l1fr
-lf4wy
-lf3yd
-lfy5re
-l1g2
-lg4an
-lgo4f3
-2l1h2
-l3ha
-l3he
-l3hi
-l3ho
-l3hw
-l1i2
-liach3
-4lian
-libr3
-2lid
-li3de
-1lif1
-li4fr
-4lio.
-li5oed
-li5pal
-2lir
-l3ir.
-lis4g3
-l3it.
-lith4r3
-l4iw.
-l2l
-2ll.
-ll4ada
-lladr3
-ll5adwy.
-ll3ant
-ll5arn
-lledr4e
-ll4edy
-lle3o
-llest4
-lleu4a
-ll1f
-llf4y
-llin3e
-ll3odd
-llosgad4
-ll5tyr
-lludd3
-llw2
-ll3wa
-llw4e
-5llyd.
-llygr3
-ll4ynn
-ll4yr2
-ll5yro
-lm2
-l1ma
-l4mad
-l4maf
-lm3ai
-l2m3as
-l4mau
-lm3o
-lm3w
-lm4yn
-l1n
-2lo.
-lob5yn
-2loc
-loch3
-2lod
-lodd3
-lo3ed.
-l1og3
-logl2
-l1ol
-lol2w
-lolyg4
-2l1om
-l3om.
-lon2a
-lon3d
-lon4es
-4l3ont
-l3or.
-l4orau
-l4org
-l4ory
-2lot
-lo5ynn
-lp3a
-l3pu
-l1r2
-l3rh
-ls4ig
-l4syn
-l2t
-lt3ad
-lt5eg.
-lt3em
-l5tera
-l5tero
-l4tia
-lt4ig
-l4tio
-lt1o
-l3tra
-ltr4e
-l3tu
-l4tu.
-lt1w
-2lu.
-l2ud
-ludd5y
-lud3w
-lu4edd
-l2un3
-l4un.
-lur5ig
-lust5l
-lw1a
-lwadd4
-lw4ae
-l1wc
-l3wch
-lw3ed
-lw3er
-lw3es
-lw4fa
-lwfr5e
-l4wgr
-lw1i
-lw4ig
-l1wn
-l3wn.
-lw3o
-l1wr1
-4lwre
-l4wyc
-l4wydi
-lwyd4io
-l4wyn3
-l4wyr
-3l4wyt
-lyb3
-2lyc
-l3ych.
-lyd2
-l4yd.
-2lydd
-lydn3
-lydr3
-lyf3a
-lyf5an5
-lyf4n3
-lyf4r3
-5lyfr.
-l2yg
-4lygedd
-4lygia
-lym3
-l4ynau
-lyng3a
-l4yn3y
-lyr3a
-4lysau
-4lysen.
-lys3ga
-lys3ge
-l4ysl
-4lysn
-4lysr
-4lysyn
-lyw1
-m1
-mab3
-mab4i
-m3ac
-mac4w
-m4adad
-m4adaf
-m4adai
-m4adan
-m4adas
-m2adi
-mad4r3
-m4adwc
-m4adwn
-m4ady
-mael3
-maf4l3
-m3ag
-2mai
-m3am
-man3a
-man3e
-m4anf
-man2o
-m3ar
-m4ar.
-mar4ch3
-m4are
-m4ari
-mar4l
-marn3
-m4aru
-mar4wy
-masg2
-mas3ge
-m3at
-mat5eg
-mat4o
-m3aw
-mawd4a
-mbarato5
-m3bi
-m3by
-mcan3
-md2
-m4dai
-mdan4a
-mda5nas
-mda5n4e
-mdd2
-mddadl4
-mddef3
-mddi4d
-m5der.
-m4dera
-mdog4aetho
-mdo3na
-mdo5ne
-mdro3e
-mdwy4
-mdyng5
-mdy5re
-4meda
-4meddia
-4meddwr
-4medi
-4medï
-medr3
-meg3n4
-megni3
-meith3
-me4iw
-mel5yno
-mens4
-ment4e
-mentr5
-5menty
-men5yd
-m2er
-m3er.
-m3erad
-m4eradwy.
-m4eraf
-m4erai
-m4eran
-m4eras
-merch4er
-merdd4
-m4ere
-m5eriada
-m4eroc
-m4erom
-m4eron
-m4erw
-m4ery
-4mesia
-4mesol
-mest4
-4meswr
-4mesy
-meu1
-mfalchi5a
-mfalchi5e
-mffl4
-mfydd4
-mg2
-mgyff4
-mgyffr5o
-mgym4
-mgym5eria
-mgys2
-mh2
-mhar5ad
-mheir4a
-mhe3na
-mhe5ned
-mhe5nes
-mhen3t4
-mhen5w
-mhet2
-mhe3ta
-m2heu
-mhob4l
-mhr4a
-mhryf5
-mhyd4
-mhy3f
-2mi
-m3ias
-m3id3
-m3ie
-mi5gei
-min1
-min4t
-m3io
-m3ir
-mis2
-misg4
-mis4i
-m3it
-m3iw
-m3iy
-ml2
-m2las
-ml5blw
-m3led
-mlew3
-m3lin
-m5liwiais
-m5liwiase
-m5liwiwy
-mlo3na
-mlon4ed
-mlyn3
-m2n
-m3na
-mn4as
-m3ne
-m4ned
-mn5edi
-m5niau
-m3nï3
-m2od
-m3odd
-mod4ig
-mod3r
-mof5yd
-m3og
-m4on.
-mon3a
-mon4d
-m4onï
-mor2
-mor3c
-mordd4
-morddiw5
-mor4o
-m3os2
-mos4i
-mo5siy
-m2p
-mpr3a
-mpr3o
-mpr3w
-mp5wai
-mr2
-m2r3ai
-mra3na
-m2r4ed
-mreg3y
-m4ria
-m4rie
-m4rig
-mro4ad
-mrod4iae
-mrod4ir
-m2roe
-m2roi
-m2roo
-m2row
-m4roy
-m4ryn
-mryn4d
-mrys4o
-ms2
-m3sa
-m2se
-mse3na
-mse5ne
-m2so
-mstr4
-m2t
-mt2a
-mtas4
-m3th
-m2u
-mu4an
-mudd4l
-mud3w
-mu2l3
-mun3
-m3us
-m3w2a
-mw3as
-m3wch
-m3wi
-mwr2
-mwr3i
-m3wt
-mwy3b
-mwyllt4
-mwyn3
-m5wyse
-mwyth4adw
-mwyth4af
-mwyth4asan
-mwyth4aso
-mwyth4asw
-mwyth4ec
-mwyth4em
-mwyth4er
-mwyth4i
-mwyth4oc
-mwyth4w
-mwyth4y
-2m2y
-m3yc
-mych3
-m3yd
-mydd5i
-mydr3
-myd3y
-myf4y
-m4yl.
-myl3a
-m4yln
-m3ym
-myn4ai.
-m3yr
-myr4as
-myr5asa
-myr4edi
-myrf4
-m3ys
-m4ysg.
-mys4w
-myw3y
-3na3b2
-na4bl
-na4bo
-na4ch3
-n2ad
-n3adl
-nad4n
-nadna4
-n4ado
-nad3r
-nad3u
-nad3w
-n3adwr
-n1ae
-nae5ara
-nae5arw
-nael4
-n2afa
-n5afau
-n2af3o
-n4afy
-n4aic
-n4aig
-n4ain
-n4air
-n3al
-nan3a
-nan3e
-nan3f
-nap4om
-n3ar
-narllenad4
-n3asg
-n4asol
-n3as4t
-1nat
-nau3
-n1b2
-nbyd5r
-n2c
-nc3an
-nc5des
-nc4ed
-nc2ei
-nc5en.
-n3ch
-nchwiliad4
-n4cia
-n4cid
-n4cie
-n4cio
-n5ciod.
-n4cir
-n4cit
-n4ciw
-n4ciy
-n3cl
-ncr1
-nct1
-n5cyd.
-n5cyny
-n1d2
-nd3as
-nd3aw
-ndd2
-nd4da
-nden2
-n4d3ia
-nd3ie
-n3di3f
-n3di4g
-n3dil
-nd3io
-nd4ir
-n3dis
-n3dit
-nd3iw
-nd3iy
-n3dod
-nd3oe
-ndo3ra
-ndo5r4e
-n2dwr
-ndy5na
-ndy5ne
-n4dys
-neallad4
-n2eb1
-neb3o
-n5ebry
-neddf5
-n2ede
-n4edid
-n5ediga
-n4edir
-n4edit
-n2edo
-n4edu
-n3edy
-n1ef
-nefn3
-n4efy
-n1eg
-neg5in
-ne3h
-n3eidd
-n2eis
-n1el
-3nel.
-nel5yn
-3nenty
-ner3a
-nerch5
-n4erg
-n4erl
-3nert
-3nese
-4nesia
-n4esio
-nes4m
-3neso
-n2est
-3nesw
-n2esy
-neth5o
-n2eu
-neu3d
-n4euf
-neul4
-3new
-new5yll.
-newyn3
-n1f2
-nfadd4
-nf4am
-nfan3
-nfan5e
-nfan4t
-nfa5ol
-nf4at
-nfel2
-nff2
-nf4fa
-nff4o
-nffyn4
-nffynad4
-nf4id
-n4fil
-nfod4l
-n2fon
-nfon5a
-n5fonedi
-nf4ri
-nf4wy
-n2fy
-n5fyd.
-nfyd3a
-ng2ad
-ng5adwy.
-n4gai
-ngal4
-n3gam
-n3gar
-n4gau
-ng4ddy
-ngel4
-nghwyn5
-n2gi
-n2gl2
-n3glwm
-n4gly
-n5glym
-nglyn3
-ngn2
-ng3oe
-ngof3a
-ngol4ed
-ng3on
-ngop2
-n1gr
-ngr4a
-n2gw
-ng4wi
-ngwy5nas
-ngy3f
-n4gyn
-2n1h2
-nha3o
-nhar4
-nhaws4
-nheb5r
-nhe3na
-nhe3ne
-nhep2
-nh4es
-nho3ed
-nho5esi
-nho3n4a
-nhon4e
-nhudd4ed.
-nhu4e
-nhyc4
-nhyd2
-nhyl4
-nhym4
-n1i
-4ni4ad
-n5iald
-ni1b
-nib4a
-nib4e
-nibryd4
-ni1d
-nidd4
-ni5dde
-nid4e
-n3ie
-ni4et
-ni3eu
-n4iew
-ni3fed
-ni3fen
-ni4feryc
-ni3ffr
-ni3fw
-n2ig
-n5igam
-nige5na
-4nigiad
-n5igiad.
-n5igiada
-5nigiadw
-4nigion
-n5igion.
-5nigiont
-4n5igiwr
-nigl4
-4nigy
-ni3gym4
-nilead4
-nill5adas
-n5illio
-ni3lu
-ni3lys
-nin2
-ni3no
-nin4w
-ni3or
-ni3ra
-nir4e
-ni3ri
-ni4rw
-ni3rym
-nis3g
-ni3so
-nis3ty
-ni3sw
-ni3sy
-nith4e
-niw2
-niw4a
-ni4wc
-niw5eddas
-niw5edde
-niw5eddo
-niw5eddw
-niwl3
-niwl5e
-niwl5o
-niwl5w
-ni5ydd
-n2ïi
-nï4yc
-n1l2
-nladr3
-nlin3
-nll2
-nllon4
-nl4lw
-n4llyn
-n2ly
-nly3na
-nly3ne
-n1m2
-nmolad4
-n1n2
-nn4al
-nn4ar
-nned4
-nneth4
-n3nh
-nni2
-nnif4
-nni4l
-nnill4
-nni4o
-nnis4
-nni4w
-n5nos4b
-nn4wy
-nny3na
-nny5ne
-nn4yw
-no4ada
-n3ob
-n2od.
-n2odo
-nod3r
-n2oe
-noe4o
-no3er
-3no4et
-n1of1
-nof4el
-n2ofy
-n1og
-nol5eg
-nom3
-n4omi
-n5ones
-n1or
-norch4
-nor4f
-2nos3
-nö5es.
-np4et
-n1r2
-nre4o
-n1s2
-n2se
-n3sei
-ns3en
-ns3i
-ns4ic
-ns4ig
-n3s4il
-ns4iy
-ns5iyc
-n3siyn
-nsy3na
-nsy3ne
-nt3ad
-nt5af.
-nt5aid
-nt4ana
-nt3aw
-n2te
-n3tei
-nt3el
-nt3em
-nt3er.
-ntew3
-nth2
-n4tia
-nt5il.
-nt4in
-n3tis
-nt3oc
-nt3od
-nt5od.
-nt3oe
-n4t3or
-n1tr
-nt1w
-nt3yn
-nty3ra
-nty3r4e
-n1u
-nud2o
-nun4i
-nut1
-nw3af
-n3wait
-nw3an
-n3war
-nwar4ed.
-nw3as
-nwbl4
-nwb5le
-nwd3e
-n5wedd
-nw3edi
-n3wei
-nweithi5au
-nwelad4
-nwen5d
-nw4ia
-nw3id
-nwir4
-nw3ir.
-n3wis
-nw3o
-nwr5ei
-n4wy.
-nwybod4a
-n4wyc
-n3wyl
-n2wyn
-n4wyn.
-n3wyt
-nych3
-nyf2
-ny5fala
-ny5fale
-ny5falo
-nyff4
-nyf4n
-nyf4o
-ny5fod
-nyfr3
-n2yg
-ny3gy
-n1yl
-ny3lan
-ny3lu
-nym4a
-nym4y
-n5ynnau
-ny3n4od
-ny3ra
-nyrchafad4
-ny3ri
-n1ys
-n4ys.
-nys4g
-n3yw
-2o1a
-2o2b
-ob3ae
-ob4an
-ob5ant
-ob3ed
-ob3el
-ob5en.
-oben5y
-ob5er.
-obl3a
-obl5ed
-ob3ler
-obl5es
-obl3o
-obl3w
-o3b4ly
-ob3o
-obr1
-ob3yd
-oc1a
-oc5byn
-oc3e
-och3a
-och5an
-och5en
-ochl3a
-ochl5es
-ochl3o
-ochl3w
-och3n
-och4ni
-och3o
-ochr3
-och3w
-och3y
-2oci
-2ocr
-2oct
-2od3a
-od4ao
-odar4
-odd3a
-oddf5y
-odd5il
-oddiw3
-odd3r
-odd5ri
-4oddu
-odd3y
-odd5yd
-odd5yn
-odeb3
-o5debau
-o5debu
-od5edi
-od5eid
-od3el
-od3er
-od3i
-odl3a
-odl3ec
-odl5esi
-odl3w
-od5off
-2odog
-od4oga
-2odr
-odr3a
-odr5ec
-odr5em
-odr3o
-odr5wyd.
-od4ry
-odr5yc
-2odw
-od3wa
-od5wed
-od5wen
-od3yc
-od3yn
-od4ynn
-o1ec
-o4edd3
-oed3i
-o3edig
-oedl4a
-oed5lan
-oed5ra
-oeg3
-oel3c
-o1em
-oen3
-o3ent
-oer3
-oes3
-oesg4o
-oet5an
-oetr3
-2of.
-of3ad
-of3ai
-ofan3
-ofan5e
-of3ant
-ofa5ol
-of5ebi
-of3ed
-of3el
-of3en
-of4enn
-of3er.
-o4ferl
-o4fery
-of4f3a
-off3ed
-off5id
-off3w
-ofiad4w
-ofl3
-of3n
-of4na
-of4nd
-of4ne
-of4nf
-of1o
-of4odo
-ofr3a
-of3re
-of4rec
-of4red
-of4rem
-of4rer
-of5wyf
-of4yn
-ofy3na
-ofy3ne
-og1
-og3ai
-og2an3
-o4ganau
-o4ganu
-og3as
-og4edy
-og5elyn
-og3er
-og5erd
-og3es
-2ogf
-og3i
-2ogl
-ogl3w
-ogl3y
-2ogn3
-3og2o4f
-og5oru
-og3rwy
-o3gry
-og3yd
-ogyf4
-og4yl
-og5yrn
-o1h2
-oheb3
-oher4
-o1id
-oig1
-o1ir
-o1it
-ol1
-2olau
-ol4ce
-ol3d
-ol4da
-4oleu
-ol3eua
-ol4eued
-ol5euo
-ol4euwr
-olew3
-ol3i
-oll1
-oll3e
-oll5ed
-ol4lt
-oll5wy
-olo2
-o3los
-ol3s
-ol4sb
-2olu
-2olwr
-olw4y
-ol3wyd
-ol5wyno
-ol4yne
-ol4yni
-ol4yno
-ol4ynw
-2oma
-om4at
-2omb
-om2e
-om5eda
-om5edi
-om5eg.
-om3ei
-om3en
-om5isi
-2oml
-om4og4
-2omp
-om5pre
-on1
-on5ach.
-on5adu
-on3af
-o4n3ai
-4onair
-on3an
-o4n3au
-on5au.
-2onb
-on5cyf
-2ond
-on5did
-on2do
-2one
-on5edd.
-on3el
-onest3
-2onf
-ongl3
-ong2o
-ong3w
-on4gyr
-2oni
-2onn
-4onnu
-on5of.
-2onog
-on2t
-4onto
-on3w
-2o1o
-2op
-op3a
-op4ao
-op5aon
-opl3
-opr5ai
-op5ren
-or1a
-4orac
-or3ach
-or5aeth.
-or5aetha
-or3af
-or3ai
-or3an
-o4r3au
-or3aw4
-or3b
-or2c
-or3chw
-or4dd
-or5ddyn
-ord3en
-or5din
-or4d5yn
-or1e
-or2eb
-or4edd
-ore5ddy
-4oreg
-or4egw
-or4et
-or3fa
-orfa5na
-orfa5ne
-orff4e
-or3fo
-or3f4y
-2or3g
-or3i
-or3l
-or4mu
-or4my
-orn3a
-or3nel
-or1o
-or3of
-or4oh
-oron5a
-or3one
-or5oni.
-or5onid
-or5onir
-or5onit
-or5pws
-4orth.
-ort4i
-or4ty
-or5uwc
-or1w
-or5wah
-orw4e
-or4wel
-or5wgl
-or1y
-or3ydd
-2os
-os3a
-os4ana
-osb3as
-osb5ed
-osb3o
-osb3w
-osb3y
-os5eai
-osg3a
-os3gl
-osgo5e
-os3gor
-osg3wy
-os5iae
-os5ibi
-os2o
-os3odd
-os3ol
-os3on
-os3te
-os3tr4
-os4tu
-os3w
-os3y
-2ot1
-3ot.
-ot3e
-ot5esa
-oth3
-ots4i
-ot5sia
-o2u
-o1wc
-owg3
-owl5as
-owl3e
-o1wn
-owt5er
-o1wy
-o1yc
-oyw3
-oy4we
-ôr3f
-p1
-p2a
-pab5yd
-2p3ad
-2p3af
-2p3ai
-2p3an
-pa3od
-para3t
-par4c
-par3w
-past4
-p3au
-pawe5na
-2pec
-4p5edig
-p2ei
-peir4a
-p5eli.
-pel3y
-2pem
-pengl4
-pens4
-pen3t2
-pen3w
-penwy5na
-2per
-2pes
-pet2
-pe3ta
-p2h2
-pheir4a
-phen3t4
-phen5w
-phet2
-phe3ta
-phob4l
-phr4a
-phryf5
-p3ia
-pib1
-p3ie
-p3io
-p3iw
-p2l
-pla3na
-p4lau
-pl5eda
-p4lyc
-3plyg
-po4b4l
-pog4y
-pol3
-p2r2
-pr3as
-pryf3
-pr5ynn
-p2s
-ps4iw
-pt2
-p2ud
-p4usr
-pw2
-pwd3
-pwr1
-p4wy.
-pydr3
-p2yr
-r4abe
-r4abi
-rab5lyd
-rab3y
-rach5wy
-r4a4ci
-racs4
-r4a4ct
-r2ada
-r4add
-radd5ol
-rad4ri
-radwr4i
-r2ae
-raed4
-raeddad4
-r4aen
-ra5fann
-ra5fán
-r4aff
-rag1
-ra4ge
-rag3o
-ra3gra
-ra4ha
-ra5hau
-r1ai
-4raidd
-ram3od
-ra5mor
-ra3m2w
-ran4d3
-ran2e
-r4anf
-ran3o
-r4anod.
-ra5phe
-r3ar3
-rar4c
-2r1as
-ras4ie
-ras3t2
-r3atao
-rat3e
-2r1au
-raw3e
-5rawes
-3rawi
-rawn3
-2r1b
-r2ba
-r3bar
-r4bec
-r4bem
-r4bent
-rb4er
-r4bes
-r2bl
-r4boc
-r4bom
-r4bont
-r4bwc
-r4bwd
-r4bwn
-rbyd3
-rc2a
-rc5adw
-rc5af.
-r3car
-rc3e
-rc4er
-r2ch
-rch3ad
-rch3an
-rch3ar5
-rch5eb
-r5chei
-rch3et
-rch3l
-r3chm
-rch3oc
-rch3oe
-rch3og
-r3chu
-r3chwa
-r3chwi
-rch5wyd
-r5chwyn
-rch3yc
-rchyf4
-rchym4
-r1cy
-2rd2
-r1da
-r3dai
-rdan3
-rd5au.
-r2dd
-rdd3ad
-rdd5as
-rdd5ell
-rdd5in
-rdd5iwy
-rdd3o
-rdd4od.
-r5ddodi
-r3dd4u
-r4ddu.
-rddw4
-rdd3yc
-r5ddychw
-rddyrch5
-r5ddyw
-r1de
-rd3i
-rd4in
-rd4ir
-r1do
-r5dod.
-r1dr
-rdro3
-rdro4ada
-r3dw
-r1dy
-rdy4n
-rd3yn.
-re3a
-r3ebai
-r3ebas
-r3ebe
-r3ebi
-rebl3
-r3ebo
-rech3
-rec3i
-4redd
-r5edd.
-r4edio
-r4edol
-r4edwr
-red4yn.
-re4fa
-refn5y
-ref3y
-r4egl
-r5egl.
-r4egog
-re5iau
-r4eic
-re5id.
-reidd5
-r4eig
-r4eil
-r4eine
-re5ir.
-re5it.
-re4iw
-r3ell
-r4emi
-ren4d
-r4eng3
-r4eni
-ren3in
-r4ennyd
-re1o
-r1er
-r4er4id
-rer5in
-restr3
-r4esw
-r4eua
-r4euo
-r2euy
-re4wi
-rew5id
-re5wn.
-rew5ynn
-2r2f
-r1fa
-r4f3ad
-r4faeth.
-r4faf
-r4fai
-rf4ao
-r4fas
-rf4at
-r4fau
-r3fedw
-rfel3
-rf3en
-rf4eny
-rf4ey
-r4ff.
-rff3i
-rff3l
-rff3o
-r3ffw
-rff3y
-rf3id
-r5fil.
-r3fl
-rf3lu
-rfodad4
-rf5ol.
-rf3on
-rfor2
-rf5ord
-r3fr
-r3fu
-rf1w
-rf5wis
-rfyn5yc
-rf4yr
-r3fys
-2r1g2
-rgal4
-rgan3
-r3ge
-rgel4y
-rge3na
-rge5ne
-rgo4f
-r1h2
-rhag5e
-rhag3l
-rhag3o
-rha3n4a
-rhan4e
-r4haw
-rh4es
-rhew5y
-rhif3
-rho4ec
-rhon5a
-rhost4ir
-rhugl5
-rhyf2
-rhy3n4a
-rhyn4e
-ri2
-2ria
-r4iaethu
-riaf3
-r4iag
-ri5agl
-r3iai
-r4i5aidd
-ri5all
-ri4an
-r5iant
-r3ias
-r4iaw
-ri5awd
-rib3e
-ribl3
-rib3w
-rib3y
-ri5can
-r4ida
-ridd3
-ridd5y
-r4idi
-rid4yllau
-2rie
-ri3ei
-rif1
-rig3
-r4igo
-ri3i
-rin5dir
-rin3e
-ringl5
-r4ini
-r4inl
-2rio
-r3ioc
-ri5odad
-ri5odaf
-ri5odai
-ri5odan
-ri5odasai
-ri5odasan
-ri5odase
-ri5odasi
-ri5odasoc
-ri5odasom
-ri5odasw
-r3iodd
-ri3ode
-ri3odi
-ri5odoc
-ri5odod
-ri5odom
-ri5odon
-ri5odwc
-ri5odwn
-ri5odwy
-ri5ody
-r4ioe
-r3iom
-ri3ong
-r3iont
-r1ir
-ris4g
-risgl3
-rist3
-3r4ith
-2riw
-ri4wa
-riw3l4
-r5iwr.
-2r3iy
-r1l2
-rla3na
-rla3ne
-r3lew
-rl3ia
-rl3ie
-rl3io
-r3ll
-r4ll.
-rll4e
-rllen3
-rl4l4w
-rl5og.
-r3lon
-rludd4
-r3lw
-r2lym
-rlyn3
-rl5yn.
-r1m2
-r2ma
-rm4ac
-rm3i
-rm4il
-r2mo
-rm4od
-r3my
-2r2n1
-r4nai.
-r4nau
-rn4es.
-rn4esa
-r5nest
-rng4e
-rn3i
-rn5iae
-rn4ii
-rn5iol
-r3n2ï1
-rn4os
-rn3y
-rn4yw
-2roa
-4road
-4roau
-rob3l4
-roch3
-rochl4
-ro3cr
-rodd3
-r4odr
-rod5rw
-ro4ea
-roed3
-ro4eo
-ro3er
-r2of
-rof3l4
-rofun4ed.
-rof3w
-r3og.
-r4ogae
-ro4ge
-rol3
-r1om3
-r4onau
-rongl4
-rong5lwy
-ron3i
-r4os.
-r4osf
-rosg4
-ros3o
-2rot
-rö5edi
-rp2
-r1pa
-rpar3
-r1pe
-rp5ech
-rp5em.
-r2pen
-rp5ent
-rp5er.
-rp5esi
-rp3i
-rp3o
-rp3wy
-rp3y
-r1r2
-r3ra
-rr4og
-r1s2
-rs4ai
-r4sau
-r2s3en
-rs3i
-rs4in
-rs5li.
-r2s3t2
-r2sy
-r1t2a
-r4tau
-r4ted
-r3teis
-r4ten
-r4tes
-rth3a
-rth4eg
-r3thin
-rth3la
-rth3o
-rth5ol
-rth5ru
-r5thryc
-r4thw
-rth5wyon.
-rth5ydd
-rt4iy
-r1tr
-rtr4a
-rt5rwy
-rt2u
-rt3y
-rub4a
-r3uc
-rudd3
-3rudd.
-run4i
-r1us
-rw2a
-rw3ad
-rw3af
-r3w4ag
-r3wait
-rwb5an
-rwbl3
-r1wc
-r5wdenn
-rwedd3
-r4weddog
-r4weddol
-r4w3eid
-r3wel
-r3wer
-r2wg
-rw5hel
-rw1i
-rw3in
-r3wl
-r4wnc
-rw4ni
-rw4n3o
-rwobr4
-rw3od
-rw5old
-r1wr
-rwr5es
-rwr4iaetho
-rw2y
-r4wyb
-r5wydden.
-rwydd4iad4u
-r4wyde
-r4wydo
-rwydr3
-r4wydy
-3rwym
-rwyn3
-r4wys
-3ry.
-3rybl
-ry3bo
-rych5wai
-r2yd
-r4yd.
-ry5dano
-rydd4on.
-rydl4
-ry3f4a
-ryf2e
-ry3fer
-ryf4od
-ryl3a
-ryl2e
-ryl5it
-rym2r3
-ryn3a
-rync4
-4rynd
-ryn3e
-ryn3f
-ryng5a
-4rynn
-rynod4
-ryno5ded
-ryno5der
-ryn3yc
-rys3b
-rys5ba
-rysg5w
-rysg3y
-ry3wa
-ryw3i
-s1
-sach3
-saf3a
-saf3o
-san3a
-san3e
-san3o
-sarf5a
-sat4a
-sath4
-sathraw4
-s3au
-sá4it
-s2b2
-sbad4w
-s4bai
-s3bet
-sb3iw
-sb5iyc
-s3bl
-sbr5io
-sd4or
-se2
-sec4an
-sedd3
-3sef
-se5ion
-sen5ol
-senw3
-s4erc
-serch5
-s4eri
-s2et
-sf4am
-sfedd4
-sff4y
-sf4wy
-sf4yr
-s2g
-s5g4adr
-sg3adw
-s3gam
-sg3an
-sgar5a
-s3gaw
-s3geda
-s3gede
-s4gedig
-s5gedo
-s5gedw
-sgel4
-sg5en.
-s3ge3na
-sge5ne
-s4gia
-s4gl.
-sgl3a
-sgl3o
-s3gn
-sg3ni
-sg3od
-sg4od.
-sgo4g3
-sg4ol
-sg3om
-sg3on
-sg5oty
-sg5rwy
-sg5ryw
-s4gwc
-sg3wn
-s4gyc
-sgy4f3
-sgy3na
-sgy5nes
-2si
-s5ial.
-s5ialu
-si4am
-5siand
-s4iar
-s3id3
-sid4a
-s3ie
-s4iet
-s2ig
-s3ig.
-si4ga
-s3ige
-sigl3
-5sigl.
-s3igr
-s5igyn
-sil4f
-sins4
-s3io
-s3ir
-s3it
-si4wr
-s2iyn
-2s2ï1
-2sl2
-sl4au
-slo3na
-slo3n4e
-s3ly
-slyw4
-sm2
-sm4ar
-sm4er
-smwyt5haso
-s4nau
-sn2e
-sneg2
-s2n3i
-sn4ob
-s3oc
-sodd3
-sod4l3
-s3oe
-sof4l
-2s3og3
-s3om3
-son3
-s4on.
-s4onau
-son4deba
-son4der
-s3one
-s4ong
-sra3na
-sra5ne
-s2t
-st3ac
-s4tade
-s4taf
-st4am
-st2an
-st3as
-s4tau
-st5awc
-s4tec
-s4ted
-s4tei
-s4t3em
-s4ten
-s4tes
-st3f
-s5tiro
-stl3o
-st5lyt
-st2o
-s3tod.
-sto3ra
-sto3r4e
-st4ra
-s3tra.
-str3ec
-str3es
-str3oc
-str3ol
-s4tr3w
-str3yc
-st2u
-st3ur
-st5us.
-s5twyi
-styr3
-s2u
-sur3
-s3us
-sw2a
-s3wc
-swcr3
-s3we
-s4wed
-sw5edd
-swen3
-2swi
-swmp3
-s3wyf
-swyn3
-swy4r
-s2y
-s3yc
-s5ych.
-s3yd
-syf4l3
-2syg
-syll3a
-syllt3
-sym4l3
-symudad4
-2s3yn.
-syn4fe
-s3yr
-syr2a
-syr2e
-s3ys
-3syt
-s4ywa
-1tac
-tach3
-3tad4l3
-tad3r
-t1af
-ta4fa
-taf4l
-tag3
-t1ai
-t3aid
-t5aliae
-tal2m3
-t1an
-4tanc
-tan3e
-tang5n
-tan3o
-tan3w
-t3ao
-3tar4d
-tar4f
-t1as
-tat1
-t1au
-tawl3
-t1b
-t3ch
-t1ec
-t1ed
-tedd3
-4teg.
-4tegio
-t3eidi
-teimlad4w
-tel4y
-t3em.
-t4emi
-t1en
-ten4d
-te4ne
-terf4
-terfyn5
-t1es
-t4esa
-tes4io
-tet4a
-3tew
-4tew.
-4tewc
-tew5id
-t1f
-tff2
-tff4e
-tfod4
-tfydd4
-t1g2
-tg4af
-tg4an
-tg4en
-tg4er
-tgl4a
-tgn2
-t2gor
-t5gor.
-t5goria
-t5gorn
-tg4wc
-tg4wy
-tgy3w
-t2h
-thalad4
-thal4m3
-thang5n
-th4ar
-thar4f
-th4at
-that5y
-th1e
-th4ef
-th5ell
-therfyn5
-thet4
-thl3a
-thl5ent
-th5let
-th3n
-th5nod
-th1o
-th5old
-thollt4
-thon4e
-thorad4
-thr3ac
-th3red
-thr5ent
-thrid4
-thro3f
-th5rwf
-thryd4
-thry5da
-th3ug
-th3um
-th3un
-th3us
-th1w
-th3wa
-th4wl
-th3wyd
-th3wyf
-thwysg4
-th3ych
-thydd5
-th5yma
-thyrf4au
-thyr3w
-thy4w
-2t1i
-t3ia
-tid3
-t3ie
-t3in
-ting3
-t4ino
-tion4
-t4iono
-tï5ol.
-tl3a
-tl4ae
-tl1e
-tl4en.
-tl3on
-tl3wy
-t3lyd
-t1n2
-t3och
-t4od.
-t3odd
-to4ec
-to3edi
-to4em
-to3esi
-tof3
-t3og3
-3tois
-t2ol
-tollt4
-tol3y
-t1om
-t3om.
-t1on
-ton4e
-t3ont
-3tor
-tor2a
-tor4c
-t3os
-to4wc
-to4wn
-tra3c
-tra3dd
-tr3adw
-tr3af.
-tra3g
-tra3na
-tra5ne
-tr3ant
-3traw
-tr3ed
-3tr4ef
-tref5a
-tref3l
-4treg
-tr3em.
-tr3ent
-3trew
-tr3id4
-tr5ig.
-tro4ada
-tr3odd
-tro5fa
-tr3ola
-tr3olo
-tr3olw
-tron4o
-tr3ont
-2trw
-tr4wm
-tr3wn
-tr5wyd.
-t5r4wydd
-tr3wyf
-try3da
-tryd4y
-try3f
-try3l
-tr5yn.
-3tryw
-ts2
-ts5ach
-t1se
-ts3i
-3tud
-tudr4
-1tum
-t1un3
-1tur
-t4urm
-tw2
-t3wai
-t1wc
-t1wn
-t1wr1
-twr4n
-3twya
-t3wyd
-3twye
-t3wyf
-tw4ym
-3twyo
-twysg4
-3twyw
-t1yc
-t1yd
-tydd5y
-ty5gar
-ty3li
-tymp4
-4t3yn.
-tyng5ad
-1tyr
-tyr2a
-tyr4es
-ty3wr
-2u1a
-ual3
-u2and
-u4ane
-u3ar
-u3aw
-ub1
-2uc
-uch1
-uch3e
-uch5ed
-ud3ad
-u5dale
-udd1
-udd3a
-udd4eg
-udd3el
-udd3f
-udd3i
-ud5eir
-ud3er
-ud3i
-ud1l
-udr3
-ud5rwydd
-ud2w
-ud3wn
-ud3wr
-ud3yn
-u1e
-uedd3
-u4estai.
-u4estau
-u4estwr
-u4esty
-uf5au.
-uff4y
-uf3y
-ug3ad
-ug3af
-ug3en
-ug3i
-ugl3a
-ugl3e
-ug3lw
-ugn3
-ug1o
-ug1u
-ug1w
-ug3y
-u1h2
-u1i
-ul3ad
-ul3af
-u5lan.
-u5lann
-ul3ant
-u5lath
-ul3d
-u2l1e
-ul1f
-ul5igr
-ull1
-u1lo
-ul3oc
-ul3od
-ulon3
-ulon5e
-ul1u
-ul1w
-ul3yc
-u3lyd
-un1
-un4edy
-un5ell
-un5es.
-un3i
-unig3
-un5od.
-un2ol
-un5ol.
-2u1o
-uog3
-u3os3
-up2
-ur1
-urb4w
-ur5ddu
-ur3e
-ur5fau
-ur4fl
-ur2gy
-4urn.
-urof4
-ur2s3
-ur4ty
-ur4ud
-u5rwydd
-ur3y
-ur4yw
-1us.
-us4edda
-us5end
-usg1
-4usi.
-us3o
-3usr
-us3ter
-us3tod
-us3tr
-ut3a
-ut1e
-uth4r3
-uth3u
-uth4un
-ut3o
-utr3
-2u1w
-u2wc
-uwch3
-u1y
-2wa
-wac5ew
-wadd3
-wad2n3
-w5adwy.
-waen4i
-waer2
-wag1
-w1ai
-w3ai.
-w3aid
-w2air
-w3ais
-w4ait
-wallt5
-w4an.
-wan3a
-wan3e
-wan3o
-war5ddr
-war3e
-war4edd
-war5ia
-warth4
-wart5hai
-wart5has
-wart5hi
-wart5hw
-war3w
-3w4as.
-w3ase
-was4g
-w3asi
-w3aso
-w4as4t
-w3asw
-wat5er
-w1au
-2wb
-wbl5es
-w2c
-2wca
-wc4ed
-wch1
-4wchu
-2wci
-wc5wll
-wc4yn
-2wd
-wdd3eg
-w5ddew
-wd2e
-wd3ed
-wde3n4a
-wde5n4e
-wd3i
-wd4ih
-wd3ly
-w3dod.
-wdr1
-wd4ra
-wdry4
-wd2u
-w1eb3
-2w1ec
-2w3ed.
-w4eda
-4weddf
-4weddi
-4wedi
-w3edig
-we4gi
-wegr4
-wein3
-well5ti
-wel3o
-welw5l
-2w1em
-wen3au
-wen4d
-2w3ent
-wenwyn5
-wen3y
-2w3er.
-wer4i
-wer5id
-w4ers
-wer4yd
-2wes
-4w3esi
-w4esir
-w4esit
-5west.
-west4ai
-w1et
-w4eth
-2weu
-weu2g
-weun3
-2wf2
-w1fa
-w1fe
-wff3a
-w1fi
-wf4id
-w1fo
-wfor2
-w1fw
-wf4wy
-w3fy
-wg1
-2wg.
-w5gig.
-2wgl
-wg3n
-2w1h2
-w3he
-w3hw
-2wi
-wi4an
-wib5an
-wibl5a
-wib5ol
-widl3
-wi4fr
-3wig1
-wigl5e
-wil3
-win5gada
-win5gade
-win5gadi
-win5gado
-w4ione
-wir3
-wisg3
-w1it
-3wiw.
-wiw4e
-2wl
-3wlad.
-wlan3
-wl4co
-wl3in
-w4lip
-wll5yn
-wl5ws.
-wl4yc
-2wm
-wm3a
-wman3
-wm4br
-wm2i
-wm5iai
-wm5ian
-wm4wl
-wn1
-wn5adwy.
-wn2ae
-2wnd
-wn3de
-wn3di
-wndr3
-wn4ei
-wn4êl
-2wn3g
-wngl4
-wn3in
-wn3l
-wn2o
-w4n3oc
-wn3odd
-wn3og
-wn3ol
-w4n3om
-w4n3on
-2wnw
-2w1o
-w2od
-w3od.
-w3odd
-w2ol
-w3ol.
-w3olae
-w2or
-2wp
-wp3e
-wpl1
-wp5wrd
-wr5aet
-wrb5yn
-wrc2
-wr3ca
-wr4ce
-wr4ch3
-wr4ci
-wr5cwd
-2wrd
-wr5dei
-wr3ed
-wreig3
-wr5esi
-wr3f
-wr5fau
-wr4fi
-4wri.
-wrid3
-wr3id.
-wr3ie
-wr3l
-wr4ll
-wr3n2a
-wrn4es
-wr3no
-wr1o
-wr2t
-wrth3
-wr1w
-wr4ws
-w5rwydd
-wry4w
-ws5bre
-ws3e
-ws3g
-ws4gl
-ws4ig
-ws4og
-ws4ta
-wst5an
-ws5ter.
-wstr3
-ws4us
-ws3wa
-2wt
-wt3a
-wtan3
-wt3em
-wt5ery
-wth1
-4wth.
-wth3w
-wt3od
-wt3wy
-wt3y
-2w1w
-2wya
-wy5alc
-4wybr
-wybr5y
-wy3bu
-w1yc
-wych3
-wyd3a
-2wydd
-wydd4ly
-wydd4yd
-wydr3o
-2wydy
-2wye
-wy3fr
-wy3h
-2wyi
-2wyl
-wyl4deb
-wyll3a
-wyn5ad.
-4wynd
-wyn3eg
-wyn3f
-wyn3g4
-wy4ni
-wyn3o
-wyn3y
-2wyo
-wyr3ad
-wy3ran
-5wyrdd.
-wyrl3i
-2wys
-2wyt
-2wyw
-wy3wr
-wy3wy
-2wyy
-2y1a
-y3ar3
-y4ar.
-y4arn
-2yb
-yb4ac
-yb5edd
-yber4
-ybl1
-yb3ly
-ybr1
-ybr3i
-yb3w
-ych1
-ychan5
-ych4anwr
-ych5ei
-ych3r
-4ychwe
-ych3wy
-ychwy5na
-ychwy5ne
-ycl3
-2yd.
-2yda
-yd3ad
-yd4al
-yd2an3
-y3dana
-y3dane
-yd3ant
-y5danw
-y3dar
-yd3as
-yd3au
-ydd3
-ydd5an
-yd4de
-yd4df4
-yd4di4
-ydd4in.
-ydd4of
-ydd5yn.
-yddy5ne
-ydd4ysg
-2yde
-y3deb
-yd3ed
-yd4eddau
-yd3ei
-yd3er
-yd4eu
-yd5ffu
-ydfwr3
-ydfyn3
-yd3i
-yd1l
-yd4ma
-yd2ne
-ydne5b
-2yd3o
-yd4od.
-ydol3
-yd4os
-4ydrau
-ydr3ec
-ydr3em
-ydr5esid
-yd3rew
-yd4ri
-4ydria
-ydr3oc
-4ydrol
-ydr5wyd.
-yd5rwydd
-4ydry
-ydr3yc
-2ydw
-yd3wa
-yd5wed
-ydweithi5ol
-ydwel5e
-yd3wr
-yd1y
-ydy4l
-y1e
-y3el
-y4era
-y4ern
-2yf1
-y4f3ag
-yf3ai
-yfan3t
-yf3are
-yf3arh
-yfar5wa
-yf3eda
-yf3ede
-yf3edi
-yf3edo
-yf3edw
-yf3ei
-yfel3
-yf5erf
-yfer3n
-yf5esi
-yf5ewi
-yff1
-yf4fa
-yf5fait
-yf5fei
-y4ff3i
-yff5in
-y4ffl
-yffr3a
-yffro5ed
-yffro5em
-yffro5en
-yffro5wc
-yffr3w
-yff3ry
-yf3i
-yfl4ed
-yflo3e
-yf3ne
-yf3no
-yf3ny
-yf3o
-yf5od.
-yfogl4
-yf5rait
-yfra5ne
-yf5ryw
-yf3u
-yf5wng
-yf3yg
-yf5yn.
-yfy3na
-yfy5ne
-yfyng5
-yf4yt
-yg1
-yg3a
-yg5adu
-yg4ar
-ygeg4
-yg4eid
-yg3i
-yg4il
-3ygin
-ygl3a
-ygl3o
-ygl3w
-ygl3y
-ygn3
-yg3o
-yg4oe
-yg4of
-ygr1
-ygrad4
-yg5wyd
-y4gyc
-4ygyd
-y1h2
-y2he
-yhe3i
-yhe3w
-y1i
-y3ie
-yl3ad.
-yl5adwy.
-yl3af
-ylan3
-yl3ant
-y5law.
-2ylc
-ylch3w
-yl4dera
-yl1e
-yl1f
-y3lin
-y4lit
-yll5ad.
-yll3e
-4yllf
-yll5ida
-yll3o
-yll3w
-yll3y
-yl5nos
-yl3oc
-yl3od
-yl3on
-yl5ore
-y4lu.
-4ylwe
-yl3wy
-yl1y
-ym5ait
-ym4al
-ym5an.
-yman5t
-ymar5w
-ymbl2
-ym5edr
-ym4eri
-ym5es3u
-3ymg
-ym3heu
-ym2le
-ym2li
-ymlo5ne
-ym4oli
-ym3on
-ymp3a
-ym4pi
-ymp5od
-ym3pr
-ymra5ne
-ymr5ig
-ymro5e
-ym4ru
-ym3se
-ym4um
-5ymwyb
-ym3y
-ymyn5y
-ym5yra
-ym5yre
-ym5yri
-ym5yro
-ym5yrw
-yn4ada
-yn3ae
-yn3af
-yn3ai
-yn3an3
-ynas3
-2yn3au
-yn4aw
-yn5byn
-ync5ed
-yn3dir
-yn4eb
-yn3ec
-yn3ed.
-yn3edd
-yn2eg
-yn3ei
-yn3em
-yn3en
-yn3er
-y3nesa
-y4nesau
-2ynf
-ynfyd3
-2yng1
-yn4ge
-yng5er
-yn3gl
-yniaw4
-yni4d
-yn3i4f
-y3nig
-yn5igy
-yn3il3
-yn3n
-yn1o
-yn5o5ad
-yn5odd
-yn4odi
-yn4ody
-yn3oe
-yn3os4
-2ynr
-ynt1
-ynt4a
-yn4te
-yn4ti
-yn4to
-yn4tu
-yn4ud
-yn1w
-yn3wa
-yn2w4e
-yn3wy
-yn4wyr
-yn1y
-yn2yc
-ynydd5
-y1o
-ypl3a
-ypl3e
-ypl3o
-ypl3w
-yp3ly
-yr3ae
-yr3af
-yra3na
-yra3ne
-yr3ant
-y4r3au
-yr4ch
-yrch3e
-yrch3o
-yrch3w
-yrch3y
-yr4dd3
-yr5ddyd
-yr1e
-yr2ei
-yr5el.
-yren5d
-yrf3e
-yr3ff4
-yr4fu
-yrf5yd
-y4ria
-yr3id
-yr2l
-yr3ly
-yrn3
-yr1o
-yr5ol.
-yr2s
-yr1w
-yr5way
-yr1y
-2ysa
-ys3aw
-2ysb
-ysb5ïw
-ys4bl
-ysb3yd
-2yse
-ys5etl
-2ysf
-4ysgar.
-ys5garai
-ys5garasa
-ys5garia
-ys5garwy
-ysge4
-ysgl4e
-ysg5lw
-ys4gn
-3ysgr
-ys4gy
-2ysi
-ys5ni.
-2yso
-ys3od
-4ysol
-ys5ol.
-ys3ta
-4yste
-yst5eb
-ys5ted
-ys3ter
-ys4try
-yst4w
-ys3u
-2ysw
-ys4we
-ys4wi
-2ys3y
-ys4yg
-yt3ad
-yt1e
-yth3a
-yth3e
-ythi3e
-yth3l
-yth3o
-yth4re
-ythr5ec
-ythr5ed
-ythr5es
-yth5reu
-ythr3o
-yth5rwb
-ythr5yc
-yth5ur
-yth3w
-yth3yn
-yt5iro
-yt3o
-ytr2
-yt3ras
-yt3s
-ytw5ad
-yt3wy
-yt5ysa
-2yw
-yw4ae
-y3wait
-y1wc
-y3wedd
-y5weddia
-yw5eg.
-y4wel
-yw5en.
-yw3es
-yw1g2
-y4wia
-yw3id
-y4wio
-y4wir.
-y1wn
-yw3ol
-y2wr1
-ywr4a
-ywr5ain
-y4wyc
-y3wyf
-ywy3na
-ywy5ne
-y1y} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-da.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-da.hyp
deleted file mode 100644
index b288255a832..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-da.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-da.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-da.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-da.pat
deleted file mode 100644
index 5774f667c9d..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-da.pat
+++ /dev/null
@@ -1,1151 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-da.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u v w x y z å æ ø
-
-\patterns{
-.ae3
-.an3k
-.an1s
-.be5la
-.be1t
-.bi4tr
-.der3i
-.diagno5
-.her3
-.hoved3
-.ne4t5
-.om1
-.ove4
-.po1
-.til3
-.yd5r
-ab5le
-3abst
-a3c
-ade5la
-5adg
-a1e
-5afg
-5a4f1l
-af3r
-af4ri
-5afs
-a4gef
-a4gi
-ag5in
-ag5si
-3agti
-a4gy
-a3h
-ais5t
-a3j
-a5ka
-a3ke
-a5kr
-aku5
-a3la
-a1le
-a1li
-al3k
-4alkv
-a1lo
-al5si
-a3lu
-a1ly
-am4pa
-3analy
-an4k5r
-a3nu
-3anv
-a5o
-a5pe
-a3pi
-a5po
-a1ra
-ar5af
-1arb
-a1re
-5arg
-a1ri
-a3ro
-a3sa
-a3sc
-a1si
-a3sk
-a3so
-3a3sp
-a3ste
-a3sti
-a1ta1
-a1te
-a1ti
-a4t5in
-a1to
-ato5v
-a5tr
-a1tu
-a5va
-a1ve
-a5z
-1ba
-ba4ti
-4bd
-1be
-be1k
-be3ro
-be5ru
-be1s4
-be1tr
-1bi
-bi5sk
-b1j
-4b1n
-1bo
-bo4gr
-bo3ra
-bo5re
-1br4
-4bs
-bs5k
-b3so
-b1st
-b5t
-3bu
-bu4s5tr
-b5w
-1by
-by5s
-4c1c
-1ce
-ce5ro
-3ch
-4ch.
-ci4o
-ck3
-5cy
-3da
-4d3af
-d5anta
-da4s
-d1b
-d1d4
-1de
-de5d
-4de4lem
-der5eri
-de4rig
-de5sk
-d1f
-d1g
-d3h
-1di
-di1e
-di5l
-d3j
-d1k
-d1l
-d1m
-4d1n
-3do
-4dop
-d5ov
-d1p
-4drett
-5d4reve
-3drif
-3driv
-d5ros
-d5ru
-ds5an
-ds5in
-d1ski
-d4sm
-d4su
-dsu5l
-ds5vi
-d3ta
-d1te
-dt5o
-d5tr
-dt5u
-1du
-dub5
-d1v
-3dy
-e5ad
-e3af
-e5ag
-e3ak
-e1al
-ea4la
-e3an
-e5ap
-e3at
-e3bl
-ebs3
-e1ci
-ed5ar
-edde4
-eddel5
-e4do
-ed5ra
-ed3re
-ed3rin
-ed4str
-e3e
-3eff
-e3fr
-3eft
-e3gu
-e1h
-e3in
-ei5s
-e3je
-e4j5el
-e1ka
-e3ke
-e3kl
-4e1ko
-e5kr
-ek5sa
-3eksem
-3eksp
-e3ku
-e1kv
-e5ky
-e3lad
-el3ak
-el3ar
-e1las
-e3le
-e4lek
-3elem
-e1li
-5elim
-e3lo
-el5sa
-e5lu
-e3ly
-e4mad
-em4p5le
-em1s
-en5ak
-e4nan
-4enn
-e4no
-en3so
-e5nu
-e5ol
-e3op
-e1or
-e3ov
-epi3
-e1pr
-e3ra
-er3af
-e4rag
-e4rak
-e1re
-e4ref
-er5ege
-5erhv
-e1ri
-e4rib
-er1k
-ero5d
-er5ov
-er3s
-er5tr
-e3rum
-er5un
-e5ry
-e1ta
-e1te
-etek4s
-e1ti
-e3tj
-e1to
-e3tr
-e3tu
-e1ty
-e3um
-e3un
-3eur
-e1va
-e3ve
-e4v3erf
-e1vi
-e5x
-1fa
-fa4ce
-fags3
-f1b
-f1d
-1fe
-fej4
-fejl1
-f1f
-f1g
-f1h
-1fi
-f1k
-3fl
-1fo
-for1en
-fo4ri
-f1p
-f1s4
-4ft
-f3ta
-f1te
-f1ti
-f5to
-f5tvi
-1fu
-f1v
-3fy
-1ga
-g3art
-g1b
-g1d
-1ge
-4g5enden
-ger3in
-ge3s
-g3f
-g1g
-g1h
-1gi
-gi4b
-gi3st
-5gj
-g3k
-g1l
-g1m
-3go
-4g5om
-g5ov
-g3p
-1gr
-gs1a
-gsde4len
-g4se
-gsha4
-g5sla
-gs3or
-gs1p
-g5s4tide
-g4str
-gs1v
-g3ta
-g1te
-g1ti
-g5to
-g3tr
-gt4s
-g3ud
-gun5
-g3v
-1gy
-g5yd
-4ha.
-heds3
-he5s
-4het
-hi4e
-hi4n5
-hi3s
-ho5ko
-ho5ve
-4h3t
-hun4
-hund3
-hvo4
-i1a
-i3b
-i4ble
-i1c
-i3dr
-ids5k
-i1el
-i1en
-i3er
-i3et.
-if3r
-i3gu
-i3h
-i5i
-i5j
-i1ka
-i1ke
-ik1l
-i5ko
-ik3re
-ik5ri
-iks5t
-ik4tu
-i3ku
-ik3v
-i3lag
-il3eg
-il5ej
-il5el
-i3li
-i4l5id
-il3k
-i1lo
-il5u
-i3mu
-ind3t
-5inf
-ings1
-in3s
-in4sv
-inter1
-i3nu
-i3od
-i3og
-i5ok
-i3ol
-ion4
-ions1
-i5o5r
-i3ot
-i5pi
-i3pli
-i5pr
-i3re
-i3ri
-ir5t
-i3sc
-i3si
-i4sm
-is3p
-i1ster
-i3sti
-i5sua
-i1ta
-i1te
-i1ti
-i3to
-i3tr
-it5re.
-i1tu
-i3ty
-i1u
-i1va
-i1ve
-i1vi
-j3ag
-jde4rer
-jds1
-jek4to
-4j5en.
-j5k
-j3le
-j3li
-jlmeld5
-jlmel4di
-j3r
-jre5
-ju3s
-5kap
-k5au
-5kav
-k5b
-kel5s
-ke3sk
-ke5st
-ke4t5a
-k3h
-ki3e
-ki3st
-k1k
-k5lak
-k1le
-3klu
-k4ny
-5kod
-1kon
-ko3ra
-3kort
-ko3v
-1kra
-5kry
-ks3an
-k1si
-ks3k
-ks1p
-k3ste
-k5stu
-ks5v
-k1t
-k4tar
-k4terh
-kti4e
-kt5re
-kt5s
-3kur
-1kus
-3kut
-k4vo
-k4vu
-5lab
-lad3r
-5lagd
-la4g3r
-5lam
-1lat
-l1b
-ldiagnos5
-l3dr
-ld3st
-1le.
-5led
-4lele
-le4mo
-3len
-1ler
-1les
-4leu
-l1f
-lfin4
-lfind5
-l1go1
-l3h
-li4ga
-4l5ins
-4l3int
-li5o
-l3j
-l1ke
-l1ko
-l3ky
-l1l
-l5mu
-lo4du
-l3op
-4l5or
-3lov
-4l3p
-l4ps
-l3r
-4ls
-lses1
-ls5in
-l5sj
-l1ta
-l4taf
-l1te
-l4t5erf
-l3ti
-lt3o
-l3tr
-l3tu
-lu5l
-l3ve
-l3vi
-1ma
-m1b
-m3d
-1me
-4m5ej
-m3f
-m1g
-m3h
-1mi
-mi3k
-m5ing
-mi4o
-mi5sty
-m3k
-m1l
-m1m
-mmen5
-m1n
-3mo
-mo4da
-4mop
-4m5ov
-m1pe
-m3pi
-m3pl
-m1po
-m3pr
-m1r
-mse5s
-ms5in
-m5sk
-ms3p
-m3ste
-ms5v
-m3ta
-m3te
-m3ti
-m3tr
-m1ud
-1mul
-mu1li
-3my
-3na
-4nak
-1nal
-n1b
-n1c
-4nd
-n3dr
-nd5si
-nd5sk
-nd5sp
-1ne
-ne5a
-ne4da
-nemen4
-nement5e
-neo4
-n3erk
-n5erl
-ne5sl
-ne5st
-n1f
-n4go
-4n1h
-1ni
-4nim
-ni5o
-ni3st
-n1ke
-n1ko
-n3kr
-n3ku
-n5kv
-4n1l
-n1m
-n1n
-1no
-n3ord
-n5p
-n3r
-4ns
-n3si
-n1sku
-ns3po
-n1sta
-n5sti
-n1ta
-nta4le
-n1te
-n1ti
-ntiali4
-n3to
-n1tr
-nt4s5t
-nt4su
-n3tu
-n3ty
-4n1v
-3ny
-n3z
-o3a
-o4as
-ob3li
-o1c
-o4din
-od5ri
-od5s
-od5un
-o1e
-of5r
-o4gek
-o4gel
-o4g5o
-og5re
-og5sk
-o5h
-o5in
-oi6s5e
-o1j
-o3ka
-o1ke
-o3ku
-o3la
-o3le
-o1li
-o1lo
-o3lu
-o5ly
-1omr
-on3k
-ook5
-o3or
-o5ov
-o3pi
-op3l
-op3r
-op3s
-3opta
-4or.
-or1an
-3ordn
-ord5s
-o3re.
-o3reg
-o3rek
-o3rer
-o3re3s
-o3ret
-o3ri
-3orient
-or5im
-o4r5in
-or3k
-or5o
-or3sl
-or3st
-o3si
-o3so
-o3t
-o1te
-o5un
-ov4s
-3pa
-pa5gh
-p5anl
-p3d
-4pec
-3pen
-1per
-pe1ra
-pe5s
-pe3u
-p3f
-4p5h
-1pla
-p4lan
-4ple.
-4pler
-4ples
-p3m
-p3n
-5pok
-4po3re
-3pot
-4p5p4
-p4ro
-1proc
-p3sk
-p5so
-ps4p
-p3st
-p1t
-1pu
-pu5b
-p5ule
-p5v
-5py3
-qu4
-4raf
-ra5is
-4rarb
-r1b
-r4d5ar
-r3dr
-rd4s3
-4reks
-1rel
-re5la
-r5enss
-5rese
-re5spo
-4ress
-re3st
-re5s4u
-5rett
-r1f
-r1gu
-r1h
-ri1e
-ri5la
-4rimo
-r4ing
-ringse4
-ringso4r
-4rinp
-4rint
-r3ka
-r1ke
-r1ki
-rk3so
-r3ku
-r1l
-rmo4
-r5mu
-r1n
-ro1b
-ro3p
-r3or
-r3p
-r1r
-rre5s
-rro4n5
-r1sa
-r1si
-r5skr
-r4sk5v
-rs4n
-r3sp
-r5stu
-r5su
-r3sv
-r5tal
-r1te
-r4teli
-r1ti
-r3to
-r4t5or
-rt5rat
-rt3re
-r5tri
-r5tro
-rt3s
-r5ty
-r3ud
-run4da
-5rut
-r3va
-r1ve
-r3vi
-ry4s
-s3af
-1sam
-sa4ma
-s3ap
-s1ar
-1sat
-4s1b
-s1d
-sdy4
-1se
-s4ed
-5s4er
-se4se
-s1f
-4s1g4
-4s3h
-si4bl
-1sig
-s5int
-5sis
-5sit
-5siu
-s5ju
-4sk.
-1skab
-1ske
-s3kl
-sk5s4
-5sky
-s1le
-s1li
-slo3
-5slu
-s5ly
-s1m
-s4my
-4snin
-s4nit
-so5k
-5sol
-5som.
-3somm
-s5oms
-5somt
-3son
-4s1op
-sp4
-3spec
-4sper
-3s4pi
-s1pl
-3sprog.
-s5r4
-s1s4
-4st.
-5s4tam
-1stan
-st5as
-3stat
-1stav
-1ste.
-1sted
-3stel
-5stemo
-1sten
-5step
-3ster.
-3stes
-5stet
-5stj
-3sto
-st5om
-1str
-s1ud
-3sul
-s3un
-3sur
-s3ve
-3s4y
-1sy1s
-5ta.
-1tag
-tands3
-4tanv
-4tb
-tede4l
-teds5
-3teg
-5tekn
-teo1
-5term
-te5ro
-4t1f
-6t3g
-t1h
-tialis5t
-3tid
-ti4en
-ti3st
-4t3k
-4t1l
-tli4s5
-t1m
-t1n
-to5ra
-to1re
-to1ri
-tor4m
-4t3p
-t4ra
-4tres
-tro5v
-1try
-4ts
-t3si
-ts4pa
-ts5pr
-t3st
-ts5ul
-4t1t
-t5uds
-5tur
-t5ve
-1typ
-u1a
-5udl
-ud5r
-ud3s
-3udv
-u1e
-ue4t5
-uge4ri
-ugs3
-u5gu
-u3i
-u5kl
-uk4ta
-uk4tr
-u1la
-u1le
-u5ly
-u5pe
-up5l
-u5q
-u3ra
-u3re
-u4r3eg
-u1rer
-u3ro
-us5a
-u3si
-u5ska
-u5so
-us5v
-u1te
-u1ti
-u1to
-ut5r
-ut5s4
-5u5v
-va5d
-3varm
-1ved
-ve4l5e
-ve4reg
-ve3s
-5vet
-v5h
-vi4l3in
-1vis
-v5j
-v5k
-vl4
-v3le
-v5li
-vls1
-1vo
-4v5om
-v5p
-v5re
-v3st
-v5su
-v5t
-3vu
-y3a
-y5dr
-y3e
-y3ke
-y5ki
-yk3li
-y3ko
-yk4s5
-y3kv
-y5li
-y5lo
-y5mu
-yns5
-y5o
-y1pe
-y3pi
-y3re
-yr3ek
-y3ri
-y3si
-y3ti
-y5t3r
-y5ve
-zi5o
-.så3
-.ær5i
-.øv3r
-a3tø
-a5væ
-brød3
-5bæ
-5drøv
-dstå4
-3dæ
-3dø
-e3læ
-e3lø
-e3rø
-er5øn
-e5tæ
-e5tø
-e1væ
-e3æ
-e5å
-3fæ
-3fø
-fø4r5en
-giø4
-g4sø
-g5så
-3gæ
-3gø1
-3gå
-i5tæ
-i3ø
-3kø
-3kå
-lingeniø4
-l3væ
-5løs
-m5tå
-1mæ
-3mø
-3må
-n3kæ
-n5tæ
-3næ
-4n5æb
-5nø
-o5læ
-or3ø
-o5å
-5præ
-5pæd
-på3
-r5kæ
-r5tæ
-r5tø
-r3væ
-r5æl
-4røn
-5rør
-3råd
-r5år
-s4kå
-3slå
-s4næ
-5stø
-1stå
-1sæ
-4s5æn
-1sø
-s5øk
-så4r5
-ti4ø
-3træk.
-t4sø
-t5så
-t3væ
-u3læ
-3værd
-1værk
-5vå
-y5væ
-æb3l
-æ3c
-æ3e
-æg5a
-æ4gek
-æ4g5r
-ægs5
-æ5i
-æ5kv
-ælle4
-æn1dr
-æ5o
-æ1re
-ær4g5r
-æ3ri
-ær4ma
-ær4mo
-ær5s
-æ5si
-æ3so
-æ3ste
-æ3ve
-øde5
-ø3e
-ø1je
-ø3ke
-ø3le
-øms5
-øn3st
-øn4t3
-ø1re
-ø3ri
-ørne3
-ør5o
-ø1ve
-å1d
-å1e
-å5h
-å3l
-å3re
-års5t
-å5sk
-å3t} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-de.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-de.hyp
deleted file mode 100644
index f69d6dcb18a..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-de.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-de.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-de.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-de.pat
deleted file mode 100644
index 4968ac4c8e9..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-de.pat
+++ /dev/null
@@ -1,26384 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-de.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u v w x y z ß à á â ä ç è é ê ë í ï ñ ó ô ö ü
-
-\patterns{
-.ab1a
-.ab3l
-.abo2
-.ab3ol
-.ab1or
-.abs2
-.ab3si
-.ab3u
-.ach2sp
-.ade3n
-.ae3
-.aft2
-.ago1
-.ag4r
-.ag2u
-.ai2s
-.akt2a
-.al2e
-.ale3u4
-.al3lei
-.al3len
-.al3li
-.al3se
-.al4st
-.al2tei
-.al4tel
-.al4terp
-.alter4s3
-.al2tra
-.alt3s4
-.al2tu
-.ampe4
-.amt2s1
-.ana1c
-.an4a3t
-.an3d2
-.anden4k
-.an1e
-.ang2
-.an3g4li
-.an3go
-.angs4
-.angst3
-.ani2s
-.an3k4
-.an3s2
-.an4si.
-.an2tar
-.an3z4
-.ap3p4le.
-.ari1e
-.ar3k2a
-.ar2m3ac
-.ar4mun
-.ar2sc
-.ar2tan
-.ar4t3ei
-.ar4t3erh
-.ar2t1r
-.arz2
-.as4b
-.asbe2
-.as2ko
-.as3ta
-.as4ta.
-.as4tat
-.as3tr
-.as2zen
-.ata1
-.at2h
-.au3d
-.au4f3
-.au6fac
-.au6fas
-.aufs4
-.au2s3
-.aussen6du
-.auß2
-.ax2
-.är4schl
-.ät2h
-.ät2s
-.bahn3
-.baus4
-.be3erb
-.beige2
-.bei4ge.
-.beige4s
-.bel2a
-.be3r2a
-.ber2e
-.ber2g3a
-.ber4g3e4b
-.ber4gin
-.ber2g3r
-.ber2tr
-.bi4os
-.bi2t
-.bit1a
-.blau3
-.bleis4
-.boge2
-.bogen3
-.bogens4
-.bo4s3k
-.brut3s
-.bu4cher
-.bu2ser
-.bü3b
-.bübe3
-.by4t
-.ca2s3t
-.ce2ra
-.ch2
-.champi4o
-.char4mes
-.chi3er
-.ch6lor
-.dab4
-.da4ch3en
-.da2r1
-.dar3in
-.dar2m1
-.da4te.
-.da4tes
-.de2al
-.de1i
-.dein2
-.de3lo
-.de3na
-.den2ka
-.den2kl
-.den2ko
-.de1o2
-.de3r4en
-.de1s
-.des4pe
-.des2t
-.diä2r
-.di3el
-.die3n2e
-.diens2
-.dien4st
-.diensta6d
-.do3b
-.do4mo
-.do3pe
-.dor2f1
-.do2tr
-.dys3
-.ebe2r1
-.eg2o
-.eh2e
-.ehe1i
-.ehe5n
-.eichs4
-.ei3e4
-.ei3f2e
-.ei4fr
-.ei3k
-.ei4na
-.ein3d
-.ei2ne2
-.ein3eb
-.ei3n4erl
-.ein3sp
-.eise4
-.ei2sp
-.eis3s2
-.ei2s5t
-.ei4tr
-.eke2
-.ek3li
-.el2a
-.el2bi
-.el2bl
-.elb3s
-.el2fei
-.el2fl
-.em3m2
-.en1
-.en4da
-.en2d3er2
-.en2d3r
-.end3s
-.en4dü
-.en3ga
-.en2gl
-.enk2
-.enn2
-.enns3
-.ent3
-.en4ta
-.en4tei
-.en5thalp
-.en4tio
-.en4t1r
-.en5trop
-.ents4
-.epi3c
-.er2bei
-.er6brecht
-.er2bu
-.er2dan
-.erden4k
-.er2d3er
-.er1e
-.ere3c
-.er2em
-.erf4
-.er1i
-.er4stein
-.erster4
-.er6stritt.
-.er8stritten.
-.er2z3el
-.er2zen2
-.es3p
-.es3ta2
-.est4e
-.es3th
-.es3t3r
-.et2s
-.eu3
-.eug4
-.eur4
-.ext4
-.fe3la3
-.feri3
-.fer2no
-.fe2st
-.fi3d
-.fi3est
-.fi2le.
-.fi2len
-.fi2s
-.flu2g1
-.fs2
-.fu2sc
-.ga4me.
-.gan2ga
-.ga2s1
-.gas3e
-.ga4sp
-.ga4t
-.gd2
-.gebe2a
-.geb2l
-.gee4
-.gel2b3r
-.gel2d1
-.ge3lu
-.ge5nar
-.gen4aug
-.ge3n4e
-.gene5cke
-.ge3n2o
-.ge3r2a
-.ger2e
-.ge3ro
-.ger4s
-.ge3sa
-.ge3ste
-.glan2
-.glanz3
-.gs4t
-.gus2
-.halt4e
-.han2f
-.hau2t1
-.he2bei
-.he2r
-.he4r3an
-.he3rat
-.her4b3ra
-.he3rer
-.he3ri
-.he4r3inn
-.hin3u
-.hips4
-.hi4s
-.hof1
-.ho4fen
-.ho4met
-.hus3s
-.ia2
-.ia4t
-.im2a
-.ima2ge
-.imm2
-.im5mu
-.in1
-.ind2
-.in3gl
-.ink2
-.in3n2e
-.in3sk
-.in3t2
-.inu1
-.io4d
-.ioni1
-.ire3
-.is2a
-.is3ta
-.istri3
-.it2h
-.iv2
-.joni1
-.ka2b3l
-.ka2i
-.ka5ka
-.kal2a
-.ka3le
-.ka3t2a
-.kat3i
-.ka4ti4o
-.ki2e
-.ko3b
-.kopf1
-.kor2da
-.kraf2
-.ks2
-.kus2
-.la3be
-.lan4de4mi
-.lat3s
-.le4ar
-.le2gas
-.leh4me
-.le3n2i
-.lich6ter6sc
-.li4f
-.li2ve.
-.lo2g3in
-.lo2sc
-.lo4sk
-.loss4
-.lo2tr
-.lo3ver
-.luster4
-.lus4tr
-.lut2h
-.ly2s3
-.ma3d
-.mal4e
-.mani2e
-.ma2st
-.mat4c
-.ma5tr
-.matu3
-.md2
-.mel2a
-.me3ne
-.me3no
-.men4schl
-.men4schw
-.ment2
-.mes4sp
-.mi2f
-.mik4
-.mil2z1
-.mi2s
-.mi4t1
-.mm2
-.na3no
-.na3t
-.näs1c
-.nebe4n
-.ner2f
-.ne1ro
-.ne2s
-.nich2
-.nicht3e
-.ni2e
-.ni3k4l
-.nul2
-.nus2
-.oa3
-.ob1a
-.obe2
-.ober3ei
-.ob3i4t
-.och3
-.of2e
-.oper4
-.op3fe
-.or2a
-.ord4e
-.or3g
-.or3k2
-.ort2
-.orts3e
-.os3s
-.os4t1a4
-.oste2
-.ost3end
-.os4ten4de
-.os4teng
-.oste4re
-.ost5erwe
-.os4tes
-.os2t3i
-.os4tig
-.os4t3r
-.os2tu
-.ot1a
-.ou2t
-.ou4te
-.ozo4
-.öd2
-.öl3l
-.pab4
-.par2kl
-.part2h
-.pe2c
-.pe3le
-.pe3na
-.pf2
-.pf4l
-.pf4r
-.ph2
-.ph4t
-.poka2
-.po4st
-.postei4
-.pro1
-.ps2
-.rabe4
-.ra3ch2e
-.ra3e2
-.ra5me
-.rau2m
-.rau4schl
-.re3ale
-.reb3s2
-.re3cha
-.re3insz
-.reis4e3i
-.rei2s5t
-.re3ke
-.res6tr
-.ri4as
-.richt4e
-.ro4a
-.ro3be
-.ro2e
-.ro2h
-.rom4a
-.ro2st
-.ro2t3r
-.rö2s
-.ruf3s
-.ruh2r1
-.runder4
-.rü3b
-.rü4cker4
-.sa3br
-.sali3e
-.sami1
-.sau1c
-.sch4
-.schaf6t7end
-.se3ck
-.se2ei
-.seein2
-.se2ha
-.sen3de
-.sen4f3
-.sen3s
-.se3re
-.seri3e
-.se1ro
-.ser2u
-.se2t1
-.sha4
-.si4en
-.si1er
-.si3gn
-.si4te
-.ski1e
-.skis2
-.sour2
-.spani5er.
-.spiege6lei
-.st2
-.st4a
-.stau8be8cken.
-.st4e
-.ste2i
-.steiner6k
-.sto4re
-.st4r
-.st4u
-.sui4te.
-.tage4s
-.tan2k3a
-.tank3l
-.ta3ra
-.tar3t2
-.ta2t1h
-.ta2to
-.ta4tor
-.ta2t1u
-.te2e
-.te2f
-.tehe3
-.teiler4s
-.tei6l5ersc
-.te3le
-.te3no
-.tens4
-.te1ra
-.te2s
-.test3r
-.ti2a
-.ti2e
-.ti2me
-.ti4mes
-.ti3r
-.ti2s
-.tischen4
-.ti6sch5end
-.tite4
-.tode4
-.to2der
-.todes3
-.to2n
-.to4nat
-.ton1i
-.to4nin
-.tons2
-.to4pl
-.to2pr
-.to2w
-.tri3es
-.tro2s
-.ts2
-.tse3
-.ts4u
-.tu3ra
-.tu3ri
-.turm1
-.tur2ma
-.ub2
-.ufe2
-.ufer3
-.ul2b3
-.um3
-.uma2
-.ume2
-.umo2
-.un3a4
-.un3d
-.une2
-.un3g2
-.uni4t
-.un3s
-.uns4t
-.ur3a2d
-.ural4
-.uran4fa
-.ur1c
-.ur1e
-.ur2e3t
-.ur2inf
-.urin2s
-.ur3o4m
-.ur1o2p
-.ur3s4
-.ut2a
-.ut3r
-.ve5n2e
-.ves3t
-.voll1
-.vo4r
-.wah4l
-.wa2s
-.weg5s
-.weine2
-.wei2ta
-.welter4e
-.wer4ker
-.wer4kr
-.wer2tr
-.wetterer6
-.wi4e
-.wor2
-.wort3en4
-.wor4tend
-.wur2f1
-.xe3
-.ya4l
-.zel4la
-.zelle2
-.zel4leb
-.zeug2i
-.zi2e
-.zie2l3u
-.zin2ka
-.zin2s3c
-.zin2st
-.zuch2
-.zug3l
-.zu2gra
-.zwe2
-.zweigen4
-.zwei6g5end
-a1ab
-aa1c
-a1a2ce
-aa2gr
-a1akt
-a2al
-aa2l1a
-aa3lep
-aals2t
-a1an
-a3an.
-a1a2q
-2a2ar
-aa2r3a
-aar3b
-aar3d
-aa3rea
-aa2rei
-aarf4
-aar3g2
-aar3k4
-aar3s
-aart4
-1aas
-aata2
-aa2th
-aa4t3r
-aat4s3
-2a3au
-a1ä2
-2aba
-3abad
-ab1alt
-a3b2am
-ab2ant
-ab1au
-ab1ä
-ab2är
-ab2äu
-2abbat
-2abbin
-1abd
-ab5dec
-2abe.
-2abec
-ab1eic
-abe3id
-ab1eil
-ab1ein
-2ab2el
-abe2l1a
-abela2d
-2a3ben.
-1abent
-2aber
-a2berd
-ab1er2k
-ab1er2r
-ab1er2z
-4abes
-abe2s1e
-ab3esse
-2a3bet
-2abew
-1abf
-3abg
-1abh
-ab5hän
-2abi
-4abil
-ab1ins
-ab1ir
-abi3st
-ab1it
-abi4tur
-1abk
-ab1l
-1a2bla
-a3blat
-1a2blä
-a2b3led
-3ab3lei
-a3blem
-2ablet
-ab3li
-a2blin
-ab4lit
-2ablo
-1a2blö
-a2blu
-1abn
-2abo
-3a2bo.
-ab2of
-3a2bon
-4abot
-2abö
-ab3r
-a2bre
-ab4ros
-2ab4rö
-ab3sau
-1absc
-1abse
-1ab3sp
-abst2
-3absta
-ab3s4te
-1abstu
-ab3sz
-3abtei
-abte2s
-3abtr
-2abu
-abu3g
-a2bum
-ab1ur
-2abü
-1abw
-2a3by
-aby4t
-3abz
-2ac.
-2a3ca
-1ac1c
-2acci
-a1cem
-a1cen
-a2ceo
-a4ch.
-ach1a
-a3chari
-ach3as
-ach3au
-2achb
-2a1che
-a2ch1e2c
-ach1ei
-ach2ei.
-a2chep
-a2cherf
-a2ch3erh
-a2ch3erl
-a2cherö
-a2ch3erw
-2achf
-2a1chi
-a2chim
-ach3l
-2ach3m
-ach3n
-a1cho
-a3cho.
-a2cho2r
-ach3öf
-4ach3r
-a4chs
-2achsc
-achs2el
-ach3s2i
-achs2or
-ach3su
-a4cht
-ach2tak
-ach4terh
-ach4tersp
-ach4t3erw
-ach4t1o
-acht3rat
-ach4traum
-ach6träume.
-ach8träumen.
-ach4trit
-acht4s3al
-ach2tum
-a1chu
-ach1u4f
-ach3ü
-2achv
-4ach3w
-a1ci
-2acke.
-a3ckel
-ack3erz
-a2ckin
-ack2sp
-acksta2
-2a1cl
-acon4n
-2acu
-2ad.
-2ada.
-4adab
-ad2abr
-ad2ag
-ad1an
-3adap
-4a3d2a2r3
-2adas
-2adat
-a2d1au
-a3dau.
-1a2dä1
-ad1c
-1add
-2ade.
-ade2al
-a3dec
-a3dee
-adefi2
-2adeg
-a3dell
-2aden
-aden1a
-ade4nat
-adeo4
-ade1ra
-a2d1erk
-4ade1s
-ade3s4p
-ades2s
-2adf
-2adh
-2adi
-adi3en
-adi3er.
-adie2sc
-adi4st
-3adj
-2adli
-4admu
-ad2ob
-ado2n
-ado4na
-a2dop
-2adp
-2adq
-a2dre
-2ad3rec
-ad3rei
-ad3run
-2ads2
-ad3st
-ad3sz
-ad2t1
-ad4te2
-ad5tea
-1adv
-2ady
-2a1e1
-ae2b
-a2ec
-ae2ck
-ae2d
-ae2i
-a2ek
-a2el
-a3el.
-a4ela
-a3els
-ae2m
-ae2n1
-ae2o3
-aeop2
-ae2p
-3a2er2o1
-aes2a
-ae4sc
-aes3t
-aes5tr
-ae4ta
-a2e3u
-a2ew
-ae2x
-a2f
-2a3fa
-a4f1ab
-a4f1a2n
-a4fap
-a4f1au
-2a3fä
-a4f1än
-2a3fe
-a4f1ec
-a4fentl
-a4f1ep
-a4fex
-a3fé
-aff4a
-af2f3l
-aff2s
-aff4th
-2a3fi
-afi4kanz
-afi2kat
-afi2t
-2af3l
-af1la
-a3f4lu
-2a3fo
-a4f3oc
-a4ford
-a4f1ort
-afo1s
-2afra
-af3rau
-af3rä
-af3re
-2afro
-af3rö
-af4rü
-af3s2a
-af3s2h
-af2si
-af2sp
-afs4t
-af2t1a
-af3tat
-af2tei
-af2te2l
-aft2erk
-af2t1o
-af2tö
-aft3r
-af2tra
-aft5rei
-aft4stä
-af2tur
-af4tü
-a3fu
-a4f3ur
-2a3fü
-afür3
-2ag.
-2aga
-ag1a2b
-ag1a2d
-ag1ar
-a2g1au
-ag2del
-ag2dr
-ag2du
-4age.
-age2l3ei
-age2ler
-4agen.
-agend2
-age2neb
-a2gentu
-2ages
-age4sam
-age3sc
-age4s3in
-age4so
-ages3p
-ages4sen
-age3ste
-ages3ti
-3aggr
-a2g1id
-a2gim
-ag1inn
-2a2gl
-ag4lan
-ag4las
-ag3le
-a4glö
-2agm
-ag2n2
-ag4nat
-a4gnä
-ag4ne
-ag5neh
-ag4nu
-ago3b
-ag1op
-agori2
-ag3rat
-a2g3re
-a2gri
-ag3rie
-ag3rin
-2ags
-ag3s2ah
-ag4sam
-ag3s2eid
-ag5s4porta
-agst2
-ag1ste
-ag3stö
-ags3tr
-2agt
-ag2th
-2agu
-a2gund
-2ah.
-2a1ha
-ah2an
-ah4at
-a1hä
-2a1he
-ahe1in
-a2h1er2h
-ahe1s
-ahe3u
-a1h2i
-ahin3
-ah2l3a2
-ah2l1ä
-ah2l1ei
-ah2lel
-ahle4na
-ah4l3erd
-ah4l3erh
-ahl1o2
-ah2lö
-ahl3sz
-ahme1i
-ahme3s4
-ah3mu
-ah4n3a
-ah3nee
-ah2nef
-ahn3el
-ah4nerd
-ahner4e
-ah2nerl
-ah4ner4le
-ahner2n
-ah4nin
-ah2no
-ahn3ste
-ahn3t
-1a2hor
-ah1os
-ah3ös
-ahr1a
-ah3r2e
-ahre4s
-ah3ri
-ahrta2
-ahr4tage
-ahr4teng
-ahr2ti
-ahr2tri
-ahr2tro
-ahr2tun
-ah2ta
-ah2te2l
-ah2t1ex
-ah4t3r
-aht3s4
-2a1hu
-ah3w
-a1hy
-2ai.
-ai1a2
-a1ia.
-2aib
-ai2bl
-aid2s
-ai1e2
-ai3e4n3
-aif2
-ai3fr
-ai3g2
-aig4r
-a3ik.
-a4i3ke
-ai2lar
-ail3d4
-ai2lei
-ail3g
-ai2lo
-2ain
-ain2a
-a1ind
-ai3n4e
-ai4neb
-ain3s
-3airb
-ai2sa
-a3isch.
-ai3schw
-ai3s2e
-a2it
-ait4r
-a3iv.
-a3ivl
-a3ivs
-a2jat
-aje2
-ajekt4o
-a2k
-2ak.
-a3ka
-2aka.
-2aka3b
-akab4r
-a4kad
-2akal
-2akam
-2akan
-2akar
-ak4at
-akat1a
-aka2tak
-1a4kaz
-2a3kä
-2akb
-2akc
-2akd
-2a3ke
-a4kef
-a4k1em
-a4keo
-ak2et
-a4keu
-2a3ki
-ak1ins
-aki1s
-1akku
-2ak3l
-a3k4la
-ak5lad
-ak5lan
-ak4li
-3aklö
-ak4lu
-ak5lun
-a3kna
-ak3no
-2a3ko
-2a3kr
-4akra
-ak3res
-ak4ri
-3akro
-a4k3rü
-2aks
-ak3sh
-ak2t1a2b
-2aktb
-ak2tel
-ak3t2er
-2aktg
-2aktik
-2aktis
-2aktm
-ak2to4b
-ak2tö
-ak2t3r
-ak5t4ri
-2aktsi
-2aktsp
-2aktst
-2aktun
-2aktw
-a3ku
-2akun
-a4kup
-2akur
-aku2s
-2a3kü
-1akz
-3akze
-a1la
-2ala.
-4alabo
-a2l3abt
-al1ac
-al1af
-2alai
-al1akr
-al1am
-al1ana
-2aland
-a2l1ang
-al1anz
-al1app
-a3lar.
-al3arc
-a3lare
-al2arm
-2al1arr
-a2lart
-ala2s
-a3lat.
-alat3s
-alat3z
-al1au
-al3aug
-a1lä
-a2l1äm
-al1än
-al1är
-al1äu
-3albat
-al2bär
-al2berh
-al2b3er2w
-al2b1l
-al2boh
-al2bon
-alb3ru
-alb3st
-al4dan
-al2dä
-al2d3erl
-al2d3ern
-alde2s
-ald3inn
-ald1r
-al2drä
-alds2
-2ale
-4a3le.
-ale4ar
-a2l1e2b
-al1eck
-a4l1ef
-a2l1ei
-a3l2eic
-a4lein
-a2l1el
-5a2lema
-a2l1e2mi
-al1emp
-4a3len.
-alende2
-al3endr
-al3ends
-a2leng
-al2enn
-al1e2po
-4a3ler.
-a2l1erb
-aler2e
-a2l1erf
-a2l1er2h
-aler2kl
-a2l3erl
-al1erm
-aler4mi
-a2l1er4r
-aler3s
-a2l1ert
-aler3w
-3a2l3erwä
-4ales
-a2l1e4sk
-a2less
-a4leth
-a2l1eu
-alf4r
-1alge.
-3algi
-al2gli
-al3glo
-1algo
-3algor
-2ali
-al2imb
-al1imm
-ali2nal
-al1ind
-alin2ge
-a2l1in2q
-al1ins
-alken1
-al2klö
-al2kne
-al2kof
-1alkoh
-alk3s2
-alks4t
-al2lab
-al3lad
-al2l1an
-al2l1a2r
-al4lec
-3allee
-al3lend
-aller2z
-al5les
-al2lid
-alli3er.
-alli5ers.
-al2lob
-allo3c
-al2lop
-al2löf
-al2map
-al4m3ast
-almo4de.
-2alo.
-a2l1ob
-3a2loe
-a2l1of
-4alog
-alo2ga
-alo2gr
-alo3is.
-al1ont
-alori2
-al1ort
-2alos
-a2l1ö
-al2ös
-3alp.
-3alpe.
-1alph
-al2pho
-al3sak
-al2schm
-al3ska
-als2p
-al3sterb
-al3str
-al2sum
-al2t1ak
-alt3alg
-al3tam
-al2tan
-al2tat
-al2tau
-1altä
-al4tb
-al4td
-alt3eis
-alt3elt
-al2temu
-alter3f
-alt3er4pr
-al2teu
-al2tid
-al2tin
-alt1op
-al2tö
-alt3rad
-al2t3rat
-al2tre
-al4t3ri
-al2t3ro
-a1lu
-alu3b4
-al2uf
-alu3g
-al1u2k
-a2lum
-al1umb
-a2l1ur
-a3lus
-2aly
-al2zar
-al2zau
-al3zen
-alz2erk
-al2zw
-a2m
-2am.
-a3m2a
-ama2ba
-ama3d2
-ama3g
-1amal
-a4malg
-2am4an
-1a4maz
-2a3mä
-a3me
-4ame.
-2amel
-2am4e4n1
-amen4spr
-amen2t3r
-a5mer.
-ame3r2a
-amera3u
-a4m1erf
-1a4meri
-ame5r2u
-2ame1s
-a4mesh
-2amet
-a3mé
-2amf
-a3mi
-ami2k
-am4ing
-2amir
-2amit
-2amk
-2aml
-2amm.
-am2mab
-am2m1ac
-2am2mal
-am2mant
-am2mar
-am2mei
-ammes3
-am2mid
-ammi2e
-am2min
-4amml
-am2mor
-am2m1ö
-ammu2
-amni1
-a3mo
-2ampe.
-2ampen
-am4pf
-amp2f1a2
-2am2ple
-2ampo
-am3pr
-am5pre
-amp3s2
-2am2s
-am3sa
-4amsc
-am4schl
-3am3se
-ams3en
-am3s2h
-am3so
-am3sp
-am3su
-1amt.
-am2t1a2
-am4tau
-am2t1ä
-amt3eig
-am4tel
-am2tem
-amter4
-am2terh
-am2t3ern
-am2t1ex
-am2tis
-am2tit
-am2to
-am4tou
-am2tö
-am2t3r
-am4tre
-am4tri
-am4ts
-am2t1u
-am4tü
-2am4tv
-2a3mu
-3a4mul
-am4us
-a3mü
-a3my
-2ana.
-2anab
-ana3c
-2an2ad
-ana2der
-anadi1
-an2ag
-2a3nak
-an1alg
-ana2lin
-an2a5ma
-2anan
-an4and
-2ana1s
-a5nat.
-ana4th
-a5n4atm
-a2nato
-ana4tr
-a5nats
-an3aug
-1a2n1äs
-1anb
-2anbas
-2anbö
-2anbu
-an3ch
-2and.
-3an3d2ac
-and3ei
-an2deng
-anden4ga
-an2d3ent
-ander2e
-and3erob
-an3des
-ande2sc
-an2d1ex
-and2sas
-and2seh
-and2so
-and4spar
-and4spas
-and2su
-4andu2
-an2d1ur
-andy1
-2ane
-4ane.
-an3e2c
-a3nee
-an2ei.
-an3eif
-3aneig
-a4neis
-3a2n1e4k
-ane4l
-an1e2mi
-a2nemo
-4anen
-anen3s4
-4aner.
-aner2fa
-an2erh
-a2nerke
-4anern
-a4nerz.
-an2erze
-an1eth
-3anex
-1anf
-2anf.
-2anfab
-3anfä
-2anfi
-anf3le
-2anfors
-2anfs
-an3f2u
-2anfun
-4ang.
-1anga
-2anga.
-an2g1ar
-2angas
-2angd
-2ange.
-1angeb
-an2g1ei
-an3gen
-an2g3erf
-an2g3er2h
-an2g3er2w
-an2g3erz
-2angf
-2angh
-2angie
-ang1l
-an2gla
-ang3n
-ang5na
-ang1r
-ang3ra
-an3gri
-2angs.
-ang4sto
-angt2
-1an3h
-2anhau
-2a3ni
-an2i3d
-aniel2l
-ani3els
-ani3ers.
-anig2
-ani2ka
-ani3ke
-3a4nim
-a4nind
-ani2o
-an3i4on
-a4n3iso
-2anj
-2ank.
-an2kag
-an2k1ak
-an2kan
-an2kei
-2anken
-ank3erfa
-an3kes
-2anki
-an2kid
-an2klö
-an2klu
-ank3no
-an2k3opf
-an2kor
-ank1r
-ank3ra
-an2kras
-ank3rä
-an2kro
-2anks
-ank3se
-2ankt4
-1ankü
-1anl
-2anlad
-3anlag
-2anmo
-1anmu
-2ann.
-an3na
-1annah
-an4nar
-an3ne
-an4nef
-an4nei
-an4nene
-annen3s2
-ann2er
-2anns
-ann4sp
-2annt
-2ano.
-1an1od
-2anof
-2anog
-2a3nol
-ano2la
-1a2nom
-a3nom.
-2anoo
-an1op
-a2n1or
-ano2ri
-2a3nos
-2a1nö
-2anpu
-1anr
-2anrö
-an4same
-an3sar
-1an3s2ä
-an4sb
-3anschr
-an4sf
-an4sg
-an3skr
-1anspr
-1anst
-an3s2z
-2ant.
-ant3ar
-anta4re
-an3t2ä
-1antá
-3antei
-anteri2
-an3tha
-1anthr
-an3ti
-2antie
-3antise
-anton2
-1antr
-1antw
-2anu
-anu3r
-a1nü
-1anw
-2anwi
-an2z1ä
-2anzb
-2anzd
-1anzei
-anz3elf
-anze2n
-2anzes
-2anzg
-2anzh
-anzi2d
-an2z1i4n
-2anzk
-2anzm
-2anzr
-2anzs
-2anzt
-1anzü
-3anzün
-2anzv
-2anzw
-an2zwä
-an2zwi
-2anzy
-2ao
-ao3i
-a1op
-ao2pe
-aopf4
-a1or
-a1os3
-aos5ta
-a3ot.
-ao3t2s
-2a1ö
-aö4fe
-2ap.
-ap2a
-apa3b
-ap4an
-a2pe.
-3a2pé
-a3p2fa
-1apfel
-2apfes
-a3pfl
-a2pht
-2api
-2apl
-ap4la
-ap3le
-ap3li
-ap2n
-a2pot
-ap3pu
-2apr
-aps2ter
-ap3t2
-ap5tag
-2a3pu
-2ar.
-a1ra
-a3ra.
-ar2ab
-2ar3abb
-ar3abf
-ar3abr
-ar3abt
-2arac
-ara3d2
-ar3adr
-2arak
-2a2r3al
-a3rale
-a3rali
-a3ralo
-a2r1ang
-a2r1anz
-2arap
-a4r3app
-2a2rar
-ara2st
-ar2asy
-4arat
-a2r1au
-a1rä
-ar1äs
-1arb
-2arb.
-2arba
-ar2bak
-ar2b1at
-ar2bau
-4arbef
-ar2b3ein
-2arbek
-2arben
-2arber
-arb3erl
-4arbi
-2ar2bl
-2arbo
-2arb1r
-2arbs2
-arb3se
-arb3sk
-arb3so
-2arb3t2
-2arbu
-1ar1c
-2archl
-2ar3chr
-ar2dau
-arde4i
-ar2dop
-ar2d3r
-a2rea
-are3aler
-a2reb
-aree2
-ar1eff
-a2reh
-ar1ehr
-2arei
-a3rei.
-ar1eid
-a3reie
-a3reih
-areim3
-a2rein
-arein4b
-arein2s
-arein2t
-a2rele
-4arem
-are2mi
-4aren.
-aren4sem
-a2rentn
-are3r2a
-arerau5
-arer2e
-a2rerei
-a2rerg
-a2rer3h
-a2reri
-a2rerk
-a2rerl
-a2rert
-ar2erw
-2ares
-are3sc
-ar2et
-are3u
-a2rev
-arf1r
-arf3ra
-arf2sp
-4arg.
-ar3gan
-ar2gl
-ar4gn
-2arg4o
-ar3g4r
-arg4s
-2arh
-2ari
-ar2ia
-ari3en
-ari3erd
-ari3erg
-arin3s4
-ar1int
-a3r4io
-ar2ir
-ar4is
-ari2su
-a3riu
-ar2kal
-ar2k1ar
-ark3aue
-arker2
-ar2kil
-2ark3l
-ar2kle
-ar2klo
-ark4lö
-ar2kn
-2arko
-ar2koa
-ar2kor
-ark3s2a
-ark2se
-ark3she
-ark4tre
-ar2les
-ar3mad
-arm1au
-ar3m2ä
-ar2m1eg
-ar2m1ei
-arm2or
-ar2mum
-4armü
-2arn
-ar2nan
-arn2el
-ar3ni
-a1ro
-arob2
-4aroc
-aro4ckeng
-ar1o2d
-ar1of
-aro2i
-2a3rol
-a2r1op
-a2ror
-aros3
-aro4st
-1a2rou
-aro2w
-2a2r1ö
-arö4l
-2arp
-arr1ac
-ar2r3ad
-ar2r1as
-arre4n1
-2arri
-ar2r3or
-ar2schl
-ar3se
-arseri2
-ar3sh
-ar3s4i
-ars5ka
-ar3spe
-ar3sta
-ar2tau
-2artb
-art2e
-2ar3tei
-arter2e
-2artex
-ar3t2i
-2arto
-art3r
-art4res
-ar2tri
-art3ske
-art2sp
-2artuc
-2artü
-2arty
-2aru
-a2r1uh
-ar1um
-a3rumm
-a2rü
-2arv
-arwa2
-2a3r2y
-2arza
-ar2zau
-ar2zä
-2arze
-2arzi
-ar2zö
-1arzt
-arz4tei
-arz4ti
-arz2t3r
-2arzu
-ar2z3w
-2asa
-a2s3af
-a3sag
-a3s2al
-asal2t1
-as1am
-as3art
-asa2s
-as3at
-asau4f
-a4s3aug
-a2sä
-as3ät
-asbes2
-a2sca
-a4schec
-a4schef
-a4scherg
-a3s4chi
-a2schm
-asch3ru
-2ascht
-a3schu
-a4schum
-2asd
-2ase
-a2seb
-a2sec
-a2s1ef
-as1eie
-as1emi
-a3sen.
-ase4na
-ase4n3o
-a2sen2se
-as2ep
-as2er
-ase2re
-a2s3erke
-as4es
-ase4ta
-a2s1ev
-a2sex
-2asf
-asges4
-2ash
-a3s2hi
-as3hir
-2asig
-a2s3i2k
-2asim
-asin2g
-as1inn
-2asis
-2asiu
-aska3s
-2aso
-as1o4f
-a3sol
-a3som
-as1o2p
-as1or
-a2soz
-a2sö
-a2sp
-as3pan
-aspek4to
-as2ph
-a3spi
-as3pik
-as3pio
-a4spir
-2aspr
-2as3sa
-ass2a3b
-ass4aus.
-asse3le
-ass2i
-as3ski
-as3so
-ass3p
-as2spo
-as2spr
-as4sr
-as4ss
-as2st
-as3stau
-as3stei
-as3sti
-as3str
-as3stu
-4asta
-a3stad
-a1st2as
-as3tat
-a3stä
-as3te
-ast2el
-ast2er
-as4t3ese
-as4tex
-as2th
-ast2i3d
-as3tie
-as3til
-as4tl
-as3to
-as4tof
-ast3orc
-a1str
-ast3re
-as3t4ren
-as5tri
-as6t3ritt
-ast3roll
-as3tub
-2asu
-as2ur
-asu4s
-as4ut
-a2sü
-aswa2s
-1asy
-3asyl
-2asys
-aße2
-aß2en3
-2at
-at1ab
-ata2be
-at2a3f
-ata3g
-at2ago
-ata3la
-a3tam
-atan3k
-at1apf
-ata3ra
-at2ast
-at1att
-a2t1au
-at1än
-at2c
-a2teb
-ateien2
-at1eig
-3a2teli
-3a2temg
-at2en
-ate4na
-aten3s4e
-a2tep
-4ater
-ate3r4al
-at4ere
-atern2
-ater3st
-ate2ru
-4ates
-ates2sa
-at2eu
-a2tew
-a4th.
-4atha
-at3hag
-at3hal
-at2heb
-ath3in.
-3athl
-a4thm
-a4thr
-at2hu
-at3hü
-a3ti
-at4ia
-ati2kab
-ati4k3erw
-a4tinf
-at2is
-ati2sa
-ati2se
-a4tiso
-atis3s
-ati4v3erf
-3atla
-4atli
-3atm
-4atma
-4atmä
-4atmus
-a2t1ob
-a3tol
-3a2t4om
-ato4man
-atom1e
-ato4mo
-at1op
-at1ort
-a3to3s
-atra4t
-a2t3rau
-a2t3rä
-at3re
-at3rin
-at3rom
-at4ron
-at3rot
-at3rü
-at2sa
-at3sche
-at2schn
-at2se
-ats1e2h
-at2si
-ats1in
-at2s1o
-at2sp
-a4tst
-ats3tät
-at2su
-at3ta
-3attac
-at4tad
-at4t1ak
-atta2l
-at4tale
-at4tals
-at4tang
-at4tar
-at4tau
-at2tä
-at2t3ec
-at2tei
-at3t2el
-at3thä
-4atto
-at2tob
-3attr
-att3rat
-at2t3rä
-att3s2
-at3t2u
-a3tub
-atu2n
-a3tü
-atze4l
-atz3ela
-atz3elt
-at2zem
-at2z1er
-a3tzere
-atzer2h
-at2z1in
-atz3t2
-at2z3w
-a2u
-2au.
-2au3a
-2aub
-au2bab
-au2ban
-au2b1au
-aube4n
-au2beu
-au2blä
-au2bli
-au2blo
-au2blu
-aub2si
-aub2str
-2auc
-auch4str
-au2dr
-2aue
-aue2b
-au3er.
-au2ere
-aue3rei
-auer3ö
-au3erq
-au3ersc
-au3erst.
-au3ert
-aue2s
-au4fa
-au5fac
-au5fah
-auf1ak
-au5fal
-au5fam
-auf1an
-au5fas
-2aufe.
-2aufeh
-2aufen.
-3aufent
-auf1er
-au4fer2k
-au4feu
-auff4
-auf3ind
-1aufla
-1au4fn
-2aufo
-4aufö
-auf3ski
-auf3t2
-2auft.
-2aug
-au2ga
-au3g2ar
-aug2e
-4augeb
-4augeh
-4augel
-4augl
-au4gn
-4augr
-au3gu
-au3h2
-2au1i
-au2is
-2auj
-auk3t
-aule2s
-aul2les
-au3lü
-2aum
-aume4n
-au2m3ent
-au2m1e2r1
-aum3eri
-au2m1id
-au4mil
-au4mit
-au2m1o
-aumo2r
-aum3p2
-aum3s2
-au4mun
-2aun
-au3n2a
-aun2e
-au2nio
-au2no
-au3nu
-a4unz
-2aup2
-au3pf
-2aur2
-au1rh
-au3ru
-aurü3
-au2s1ah
-ausan4ne.
-au2sas
-au2sau
-2ausc
-au4schmi
-au2scho
-1ausd
-2ause.
-au2s1eh
-2ausen
-au2s3erb
-au2serf
-aus3erk
-aus3erp
-au2serw
-1ausg
-au2sin
-au2sis
-au2so
-aus1or
-au2spr
-1ausr
-3aussag
-aus2se.
-aus3s2el
-aus3s2t
-aust2a
-2auste
-au3stein
-aust2o
-aus5tri
-3ausü
-1ausw
-1ausz
-auße2
-2aut.
-au2tab
-au2t1äu
-2autb
-2aute
-au4t1e2l
-au4ten2g
-au2t3erh
-aut5ero
-au2tev
-2autg
-au2thy
-2auti
-1auto
-au4trö
-2auts2
-2auu
-2auv
-auve4
-2auw
-2aux
-2auz
-auz4w
-2a1ü
-av2a
-avari4e
-avas4
-ava3t2
-avener2
-2avi
-a2v3r
-2aw
-awi3e
-a2wr
-a1x
-ax4am
-a2xans
-ax2e
-a2xio
-axis1
-ay1
-2a1ya
-ay2al
-ay2am
-ay2as
-a1yeu
-ayma4
-ays2
-aysi1
-ays4t
-ay5tes
-ay2u
-az2
-a3za3d
-3azal
-azare3n
-az4at
-a3zi
-az3t
-a3zu
-azz3a
-az4zab
-az4zin
-ä1a
-2äb
-ä2b3l
-äb2s
-äbte1
-ä1ce
-ä1che
-äche1e
-äche4n
-ä1chi
-äch3l
-ä2chr
-äch4sa
-äch2so
-äch2sp
-äch2st
-ächt4e
-ä1chu
-ä1ck
-ä2da
-ädel1i
-äde1s2
-ä2d1ia
-ädi4e
-ä2d3r
-äd2s
-äd5tet
-2ä1e
-äe2k3
-äe4kl
-äe2x
-ä2f
-ä3fe
-äfe4n
-äf2fl
-ä3fi
-äfig3
-äf3l
-äf3r
-äf4ro
-äf2s
-äf3t2e
-äft4s3
-ä2g1a
-1ä2gä
-ägd2
-äg2e
-ägen4e
-äge2r3a
-äge3s4
-ä2g3l
-äg2n
-ä2g3r
-äg4ra
-ägst2
-äg3sta
-äg3str
-1ä2gy
-äh1a
-2ä3he
-ä4h1ei
-äher3t
-ä1hi
-äh1in
-ähl1a
-äh3l2e
-äh4l3e2be
-äh5ler
-2ähm
-äh3na
-äh3ne
-1ähnl
-2ähr
-äh2rel
-äh3ri
-ähr5sa
-2ähs
-2äht
-ä1hu
-äh3w
-2äi
-ä1im
-ä1is.
-ä3isch.
-ä1isk
-äka2la
-äk3l
-ä2kle
-äk4li
-ä2k3r
-ä1la
-äl4bc
-älbe2
-äl4bl
-älk3
-älks4
-äl2l1a
-äl2p3
-äl2schl
-äl2st
-ält2e
-älte1i
-äl5tet
-ä1lu
-ä2m
-2ä3ma3
-äm4at
-ä3me
-ämer2s
-ä3mi
-ämi3en
-2äml
-ä3mo
-ämoni3e
-2ämp
-ämp5f4e
-äm2s
-äm3t2e2
-ämter3
-ä3mu
-2än.
-änd4e
-än2dr
-2ä3n2e
-äne2n1
-äne1s
-2än2f3
-änft2
-4än3g2e
-änge2ra
-2än2gl
-äng3le
-än2gr
-äng3se
-2ä3ni
-än3k2e
-än2k3l
-än2kr
-änk2s
-2änn
-än3n4e2
-änner1
-2äns
-än4s1a
-än2s1c
-äns2e
-2änz
-ä1on
-äo3s2
-ä2p
-ä3pa
-1äpfel
-ä3po
-äp2pl
-äp2pr
-äp2s1c
-äp4st
-ä3pu
-1ä2q
-ä2r3a2
-är4af
-ära4r
-är1ä
-2ärb
-är2b3le
-är1c
-2ärd
-ärde4s
-2äre
-4äre.
-ä2r1ei
-ä2r1e2l
-4äre2m
-är1emi
-4äre2n
-ä2rene
-4ärer
-ä2rerh
-är2es
-4äres.
-ä2rese
-ärf2s
-är3ge
-ärg4s
-äri2e
-ä2r1ind
-är1int
-är3k4e
-ärk2s
-2ärm.
-ärm3arm
-ärm3at
-ärme1e
-ärm3ent
-ärm2s
-är1ob
-är1of
-ä1rö
-är3re
-ärse2
-är2seb
-är2s3eh
-ärs3er
-är2s3i
-är3spu
-är2st
-är3str
-2ärt
-ärt2e
-är2th
-ärt4s3
-ä2rü
-är2zu
-är2z3w
-ä3sa
-2ä3s2e
-äse3g
-äse1i4
-äse5ref
-äser2ei
-äse2ren
-äser2i
-ä3s2kr
-ä2sp
-2äs2s1c
-äss2e
-äss3erkr
-äss3ersa
-äss3erw
-äs2s3p
-äs2s3t
-ä2s3t
-äs4tc
-äst2e
-äs5tet
-1ästh
-äs4tl
-äs4tr
-ä3su
-äß1erk
-äß1ers
-ä2t3a2
-2ä3te
-äte3a
-äte1e
-äte1i
-äte3l2
-äte2n
-äteo2
-äte4pi
-äter2bl
-ät2e3t
-ä2th
-ä4thc
-ät1id
-ät1ob
-ä2t3r
-ät4sa
-äts3au
-ät2sä
-ät2schl
-ät2schr
-ät2s1i2
-äts3l
-äts1or
-ät2s3p
-ät2s3t
-ät2su
-ät2tei
-ätte4n
-ät4tr
-ätze3l
-ät2zw
-2äub
-äu2b3l
-äu2br
-äu1c
-äu3d
-äude3
-äuder2
-2ä2uf
-1äug
-äug3l
-2äul
-2äum
-äu2ma
-äum3p
-äumpf4
-äum4s3
-äums5t
-2ä2un
-äun2e
-äu3nu
-2äu3r2
-äure1
-2ä3us.
-2äusc
-äu4schi
-äu2schm
-äu3s2e
-äuse1i
-ä3usg
-ä3usk
-ä3usn
-äu2sp
-äus2s1c
-1äuß
-äut2e
-äu2tr
-ä2vi
-1äx
-ä3ze
-á1
-1b
-3ba.
-b2aa
-b3a2ba
-2babf
-2babg
-ba2bl
-ba2br
-2b1abs
-bach5t4e
-ba2ck3er
-back3s4
-ba3de
-bade1i
-2b1adel
-bader4
-2b1adl
-2b1adm
-b1a2dr
-ba2du
-2b1af
-3bah
-bah4nene
-bai3d
-bais2
-b2ak
-ba4k1a
-ba4k1er
-ba4k1i
-ba4k1l
-bak3r
-ba4kra
-ba4kre
-ba2lab
-ba2l1ak
-ba3lal
-ba2lau
-baler2
-ba2l3erk
-balk4a
-balke4
-bal4l3eh
-bal2l3ei
-ball4erk
-ball3s
-bal3tin
-bal2tr
-2b1am
-b2ama
-ba5maz
-ba4me
-4bamt
-ban2a
-3b2and
-band1a
-ban2dal
-ban2dan
-ban2dar
-ban4derk
-ban4derz
-ban2dr
-ba3n2e
-2banf
-b1ang
-ban3gl
-ban4k1a
-ban2kl
-ban2kn
-ban2kr
-ban2ku
-2banl
-b1anna
-ban2o
-2b1ans
-b1ant
-2banw
-b1anz
-ba2r3ab
-ba2rad
-bar3ast
-ba2rat
-bar3de
-ba2rei
-barer3ei
-barer2t
-3bar2s
-bar3sc
-b1arz
-bar3zw
-3b2as
-ba3sa
-ba2sc
-bas2i
-bas4sa
-bas4st
-ba2st
-ba4t3ent
-bat2o
-bau1
-3bau.
-bau3b
-bauer2l
-bauer2s
-bauer2w
-bau5fa
-bau3fl
-bau3f4r
-bau3g
-b2auk
-bau3r
-bau3s2k
-baus4t
-b1a2x
-ba1yo
-3b2ä1c
-3b2äd
-2b1äh
-b2äl
-2b1ärz
-b2äs
-2bäug
-2bb
-b3be
-bbe4n3
-bbens2
-bbe4p
-bb3le.
-bb2lö
-b3brec
-b3bru2
-bb2s
-bbu1
-2b1c
-2bd2
-b3da
-bdä2
-bdän3
-bde1s
-bdome4
-3be.
-3bea
-be3ab
-be3an
-be3as
-beat2m
-be3au
-be4au.
-b1ebb
-3be1c
-4becht
-2b1e2del
-bedi4
-be1e2h
-bee2l
-be3ela
-be1en
-bee4rei
-be1erh
-be1erl
-be1ert
-be1eta
-2b1eff
-be3g2
-be2he.
-beh5ri
-bei3b
-2b1eier
-bei3f4
-beige4be
-beige4ge
-beige2l
-beige4p
-bei3k4
-bei3l2a
-2b1eime
-be1ind
-be1inh
-bein4hal
-bein2hi
-bei3sc
-beis2e
-bei1s4t
-beit4e
-beit2s
-beit4s3k
-3bel
-b4el.
-be3l2ag
-be3las
-bel3d
-be3lec
-4be2lek
-be2l1en
-be2let
-bel3f
-bel3la
-belle4n3
-bel3li
-bel3om
-be2löf
-bel3sz
-belt2
-bem2
-3b2em.
-3b2e3ma
-2b1emp
-2bemul
-be5nabe
-ben3ar
-be4nas
-be4nat
-be2nä
-b2ene
-be3nei
-be4n3end
-ben2eu
-3beng
-be2nid
-be2nik
-be4nis
-ben3n
-3benp
-b2ens
-ben2spa
-ben2spr
-benst4
-3bensz
-2b1entb
-2bentd
-2benteu
-2bentf
-ben3th
-ben4thei
-ben5t4r
-2b1ents
-2bentw
-ben3un
-b2en3z2
-be1o
-2b1epi
-2bepoc
-be1ra
-ber3a2d
-be2rak
-be2r3am
-be2ran
-bera2s
-berb2
-ber3d
-be2r1e2b
-be2reck
-be2r3eiw
-ber3ell
-bere2m
-be2rene
-ber2er
-ber3erk
-bere4sc
-bere4t
-berf4
-ber2g3af
-ber2gal
-ber2gli
-ber2hab
-beri2d
-be3r4in.
-berin2g
-be3r4inne
-be2ri4o
-ber3iss
-ber3ko
-ber3kr
-ber3n2a
-bern2e
-b1ernt
-be4roh
-be2rö
-3bers.
-ber5se
-bers4k
-ber3st2a
-bert2a
-bert2e
-bert2i
-berz2
-ber3ze
-ber2zö
-b2e1s
-be3sa
-bes4abb
-bes2am
-bes2an
-be4sap
-be4sar
-bes2au
-be2sep
-be2s1er
-be2s1id
-bes3sa
-bes3s4e
-b3esst.
-bes3sz
-be2stab
-beste2
-bester2
-bes4terh
-besti3en
-be2s3tol
-bes4t3o2r
-bes3tos
-best4r
-be2s3trä
-be2s3tur
-be2sur
-be3s4ze
-be3tam
-be3tha
-be3thi
-bet4o
-bet2sp
-be1un
-be1ur
-3bev
-3b2ew2
-2b3e2x
-3b2ez
-2bf2
-bfal2
-bfal3t
-bfang3s
-bf4lö
-bf4ri
-bf4ro
-bf4rü
-2bg2
-bge3
-bgel2e
-bge5na
-bges4
-2b1h2
-bi1ak
-bi2ar
-3bib2
-bibe4
-biber1
-bi2c
-bid2
-bi3do
-bien3s
-bieres4
-bie2s
-biet2s
-3bietu
-biga1
-bik2a
-bi2ke.
-bi2kes
-bi2kre
-3bil
-bil2deb
-bil3der
-bi2lei
-4billu
-bi2lu
-2bimp
-2b1inb
-bin2e
-bine4n
-b1inf
-bin4fo
-bin2g3a
-bin3gl
-2b1inh
-bino2
-bi2n1ok
-bin4ol
-2b1int
-2b1inv
-bi2o3
-biri1
-3bis
-bi3si
-b1iso
-bi2sp
-bis4sa
-bis2s1c
-bi2st
-bi3s4ta
-bi1s5tr
-bis6tre
-3b2it.
-b2ita
-b2ite
-b2iti
-bit4r
-bi2tu
-bi3z2
-2bj
-bjek4to
-2bk2
-bk4ne
-bk4nu
-bl2
-2bl.
-bla3b4
-2b1lac
-b3lad
-b2lanc
-bl4at
-b2latt
-b2lau.
-b3laus4
-2b3law
-2b1län
-b2läse
-3blät
-b2le
-3ble2a
-b3leb
-3blec
-b3leg
-4bleh
-b4lei.
-3bleib
-2b3leid
-2bleih
-b3lein
-blei3sc
-2bleit
-ble3l
-blem3p
-ble2n
-b3lenk
-b3lese
-2blesu
-ble3s4z
-3blet
-b3leu
-2blich
-3blick
-b2lie
-2blief
-4blig
-b2lind
-2b5ling4
-b2lis
-2blis.
-b2lit
-b3lite
-b2lo
-b4lo.
-b4loc
-2b5loch
-b4loi
-blo2id
-b3los
-3b4lum
-2blun
-b2lus
-3blut
-blut1o
-blut3sc
-3blü
-2bm
-2b1n2
-b3na
-bnas4
-b3ne
-b3ni2
-bnis1
-bo3as
-b1o2b
-bo3ben
-bob3r
-bo2c
-bo3ch2
-bo3d2
-bo4dd
-boe1
-bo2ei
-2b1of
-bo3he
-boh2ra
-boh2u
-bo1is
-bo2lan
-bo2lau
-boli2e
-bol3le
-bol3za
-3bon.
-bo3n2a
-bond1
-bon2da
-bon2de
-bo2ne
-3bons
-boo4l
-boo2ti
-b1op
-3bor.
-bo1ra
-bor2an
-bo2r3as
-bo2rau
-bo4rä
-bor2da
-bor2d3r
-bo4rig
-bor3m
-bor2s
-b1ort
-bor2ter
-bor4t3rat
-bo4ruh
-bo2sc
-bo3se
-bo4s3p
-bos3t
-3bot
-bot2e
-bote3n2e
-bo3th
-bot2st
-bot3t
-bo3v
-b1oz
-bö2b3
-2böf
-2b1öl
-2bp2
-bpa2g
-b3pf
-bp4rä
-bpri2
-2bq
-b2r2
-2br.
-b4ra.
-2b3rad
-2b4rah
-b4rak
-bra5ka
-br4al
-b4r4am4
-brast4
-2b3rat.
-brat3er2
-bra4terg
-2bratg
-2bräd
-brä4u
-2bre.
-4b3rechte
-2b3red
-2b3ref
-2breg
-b3reic
-b3reif
-b3reiz
-2brek
-b4ren.
-2b3rent
-2breo
-2b3rep
-b4rer
-b4res.
-b3rese
-b3rest
-bret4t3en
-2b3reu
-b4rez
-bri2da
-brie2fa
-2b3riem
-b4rien
-bri2er
-b3ries
-2brigk
-b4rik
-bril3
-b4rina
-2b5rind
-b4rio
-b4risc
-b3ritt
-b4riz
-brob2
-2b3roh
-2b3rol
-bro4ma
-b4ron
-2b3rost
-bro4tei
-bro4tr
-brot3t4
-2b3rou
-3brö
-b4ruc
-2bruf
-b4rum
-2b3rund
-brun4e
-bru2s4
-brust1
-bru2th
-b4ruz
-3brü
-4b3rüb
-2b1s
-b2s1ad
-bs2am
-bs3amb
-b4s3amt
-bsau2r
-b4s3är
-b3s2äu
-b3sc
-bsch2
-b4schan
-b4schef
-bs2chi
-b5schl
-b4sco
-bs2cu
-b3se.
-bse2b
-b3sel.
-bse2n1
-b3sen.
-b2s1ent
-bs1erf
-bs1erg
-bs3e2r3in
-bs1erk
-bs1ers
-b3s2es
-b2sim
-bsi4t
-b4ski
-bs2ku
-b2s1of
-b3s2oh
-b3sol
-b4sop
-bso2r
-b2sö
-bs2p
-b3s4pi
-bs3po
-bss2
-bs2t
-b4st.
-bst1a2b
-bst1ak
-bst1al
-bst3an3k
-bs4t1as
-b3stä
-b5stär
-bs3tät
-bst3emi
-bst1er
-b3s4tet
-bst1h
-bst3ink
-b2stip
-b3sto
-b4stob
-b4stod
-b4stor
-b3stö
-bs3trau
-b2s3trä
-bs4tri
-bst3ro
-b3stü
-b4stüb
-b2s1un
-bs2zep
-bs2zi
-b4szü
-2bt
-b3t2a
-bta2s
-btast3r
-b3te
-b2t1h
-bt2i
-bti2s
-bt4ra
-btran2
-bts2
-b3tü1
-buche2
-bu2chec
-bucher2
-bu4ch3er4s
-bu2chi
-buch3sp
-bu2e3
-bu4fe
-bug3
-bu2gr
-bul2l3a
-2bumf
-2b3umk
-2buml
-2b3umr
-bun4a
-bun2d3er
-bunde2s
-b1une
-bung4
-b3un3gn
-2b1unh
-bur1c
-b2ure
-b2urg
-burg1a
-bur2gan
-bur2gar
-bur2gin
-bur4gr
-bu3r2i
-2burn
-b3ursa
-burts3
-bu3ru
-bu2sa
-bu2sc
-bus3cha
-bu3sche
-bu4schei
-bu4sch3el
-bu4scheu
-bu3schu
-busch3w
-bu3shi
-bu2sin
-bu2s3p
-buster2
-bu2su
-but2a
-bu3tan
-buto3re
-2büb
-bü4bc
-bü1c
-bügel3e
-2bv
-2bw
-bwur2
-b2y1
-bya2
-byo2
-by3p2
-bys2
-bys4t
-by5tau
-by2te
-2bz2
-bzeit1
-bz4wa
-1c2a
-ca3bl
-3ca2c
-ca2e3
-ca3g2
-ca1h
-cal2a
-cala3b
-cal3t
-3cam
-2can
-cana3
-ca2pe
-ca3r2a
-car3n2
-car5nu
-carri1
-car2s
-ca3s2a3
-cas5to
-ca3t2h
-ca1y2
-cä1
-cäs2
-2cc
-c1ce
-c1ch2
-c2d2
-c3do
-2cec
-1ced
-ce2dr
-2cef
-2ceh
-ce1i
-ce3in
-2cek
-3cels
-cen3a
-cens2
-ce3nu
-cen3un
-ceo2
-1cer
-cer3a
-cere1
-cere3u
-cer2i
-ce2ris
-ce1ro
-ce3s4h
-1cet
-ceta4
-cet1am
-ce1u
-1cé
-cg4re
-c2h
-2ch.
-2chab
-ch3a2b3i
-cha2ck
-2chaf
-2ch1a2g
-2ch1ak
-chal4l3ei
-chan4a
-3chanc
-ch1ang
-4chanl
-ch3ansa
-4chanz
-3chao
-4char.
-3chara
-3chard
-3charta
-cha2sc
-chasi1
-1chato
-4chatt
-ch3austr
-chau3t
-ch1äh
-ch1ärm
-ch1äs
-1châ
-2chb
-2chc
-2chd
-cheb4
-ch3e2ben
-che3bl
-ch3echt
-ch1edi
-che2el
-1chef
-3chef.
-che2fer
-3chefs
-2cheh
-2chei
-ch1eim
-2chelem
-che2ler
-3chemi
-2chemp
-che2neb
-che2nid
-che2no
-2chents
-2chentw
-che2r3a
-2ch3erbs
-2ch3er2de
-2ch3erfa
-4chergeb
-2cherke
-cher4zie
-ch3ess
-ches5t
-2ch1eta
-2ch3e2x
-1ché
-2chf
-2chg
-2chh
-1chia
-chi3na
-4chind
-3chines
-2chinf
-2chinh
-2ch1ins
-2ch1int
-2ch1inv
-1chip.
-1chiru
-2chiso
-2chj
-2chk
-2chl2
-chl4a
-ch2le
-chle2i
-ch3lein
-ch4len
-4chli
-ch2lu
-2ch2m
-2chn2
-chn4a
-chn4e
-chner4ei.
-2chob
-cho3ch
-cho4f
-ch1off
-cho5fr
-chof4s
-ch1oh
-cho3l2a
-ch1orc
-ch1ori
-ch2os
-ch3öl
-3chör
-2chp
-ch2r2
-2chr4a
-ch3rad
-2chre
-ch3rh
-4chrit
-3chromo
-3chron
-ch5ros
-ch4ry
-2chs
-ch2stal
-2cht
-ch4tb
-ch4tg
-ch4tm
-ch2truh
-ch4ts
-chts3trä
-ch4tw
-2chuf
-2chuh
-2chum
-2ch1unf
-2chunm
-2chunt
-2chur
-ch1urs
-2chut
-chut4t
-2chü
-2chv
-2chw
-2chz
-ci2al
-ci1c
-ci1es
-c1ind
-cins2
-c1int
-ci2s1
-1ci3t2
-c2k
-2ck.
-ck1a
-1cka.
-2cka2b
-2cka2c
-ck2ad
-1ckag
-ck2age
-2ckal
-cka4m
-2ckan
-2ckap
-cka4r1
-1ckard
-1ckat
-ck1ä
-2ckb
-2ckc
-2ckd
-1cke
-2cke2c
-2ck1ef
-4ckeff
-2ck1eg
-2ck1eh
-4ck1ei
-3ckem.
-2ckemp
-cke4na
-4ckensem
-2ckentf
-4ckentw
-cke2ra
-4ckeremi
-4ckergeb
-2ck3er2hö
-ckerk4
-2ckerke
-3ckerl
-ck2ern
-2cke2ro
-2ckerz
-3ckerzen
-4ckese
-ck2et
-4ckex
-2ckf
-2ckg
-2ckh
-1cki
-2ck1i2d
-ck1in
-4ckinn
-4ckint
-3ck4is
-2ckk
-2ck3l
-2ckm
-2ck3n
-ck5nac
-2ck3o2
-cko4f
-cko4p
-ckos4t
-ckos6te
-ck3ö
-ckö4f
-2ckp
-2ck3r
-2cks
-cks2al
-ck4ske
-ck4spen
-2ckt
-ck3te
-ck3t2i
-1cku
-2ck1uh
-ck1um
-2ckuni
-2ckunt
-2ck1up
-2ckü
-2ckv
-2ckw
-1cky
-2ckz
-c2l2
-cle4a
-clet4
-clin2g
-cli2p1
-clo1c
-clo2ck
-1clu
-c2m2
-c3me
-c3mu
-1c2o
-co2c
-co3ch
-co2d2
-co4de.
-co3di
-cof3f2
-co2ke
-cola3
-co2leu
-co3l2o
-co4mp
-com4te.
-comtes2
-con2ne
-continuati6
-co2o
-coo3p
-co3p
-co4ps
-co1ra
-4corb
-cor2da
-cor3de
-co4re
-co5ree
-cor3t
-cos3t
-co4te
-cou3si
-cô2
-cô4te
-2c2p
-2cq
-1c2r2
-c4ras
-c3rä
-cre2
-cre4me
-3crew
-2cri
-2cry
-2cs
-cs2a
-cs2f
-cs4fr
-c2si
-cst2
-c1s2ti
-c1s4tr
-2ct
-cti4o2
-ction3
-ctur4
-1c2u
-2cua
-cu2e
-cup3
-cu4pa
-cu4p1e
-cu4pl
-cu4pr
-cussi4
-c2v
-c3ve
-2cx
-1cy
-1ç
-1d
-3da.
-da1a
-2d1aal
-2d1ab
-d3a2bak
-d2abä
-d2abe
-d3a2ben
-d3a2bi
-da3blu
-d3a2bo
-dab4ra
-da2bri
-da3brie
-d2ab4rü
-d1ac
-dach3a
-dache4
-da2cho
-dach3s
-2d3achse
-2d1ad
-da2de
-da2do
-da2d4r
-d1af
-da5fab
-2da4ff
-da3f4l
-dafo4n
-d1ag
-dagi4
-dag2o
-da1h
-dah3l
-dail3
-da1in
-2d1air
-da1is
-da4kro
-2d1alar
-dal3b2
-4d1all
-da2lop
-da3lö
-2d1alp
-d1al3t
-2dalte
-da1lü
-3dam
-d1a4mei
-d1amma
-4d1ammä
-damo3
-d2amp
-damp5f4erf
-4d1amt
-3d2an.
-d1ana
-da2nan
-da4n4at
-2danb
-dan2ce.
-d1and2
-2danda
-d2andy
-3dane
-4d3anei
-2danf
-d1ang
-2danh
-dan2kl
-dan3kla
-dan2k1o
-dan2kr
-2danl
-d1ann
-2danna
-d1a2no
-2d1ans
-danti3e
-2dantw
-2danw
-d1anz
-d2anz.
-2danzi
-2danzü
-2d1ap
-d2apa
-d2aph
-da2po
-da3pos
-4dapp
-d3apte
-2daq
-da4r1a
-2darb2
-2d3arc
-dar2d1e
-2d1area
-daren1
-dar3g
-d3a2rist
-dark2a
-3darl
-dar2m1a
-dar2m1i
-dar4mun
-da2r3o
-d1arr
-2darres
-3d2ars
-2d1art
-dar2th
-4d3arti
-dar2tr
-da2ru
-d1arz
-da1s2
-da3sh
-d1asp
-das3s
-2d1assi
-2d1as4t
-da2s5tr
-dat2e2
-da3tei
-4d3a2tel
-date4n
-da2th
-2d3atl
-4datm
-d3ato
-dat2st
-2d3atta
-3daub
-2daud
-dau3e2
-dauer3e
-daue4rei
-2d3au4f
-2d3aug
-2dauk
-da3unt
-2d1aus3
-dau2ß
-3daw
-d1ax
-3däc
-2d1äg
-2d1äh
-2d1ämt
-dä4n3a
-2d1änd
-2d1äp
-2däq
-2d1ärz
-2d1ä2u
-dä3us
-2däx
-2db2
-dbau2c
-dbauch3
-dbe2e
-db4la
-db4ri
-dbu2c
-2dc
-d3ch
-2dd2
-d3da
-ddar4m1
-d3dä
-d3de
-d3dh
-dea2d
-3dean
-de3ar
-de3as
-de3a2t
-deb2
-deb4r
-3debü
-de1c
-de4ca.
-de2cka
-deco3
-2d1e2del
-de2dit
-2dee2
-de1eb
-de1e4g
-de1em
-dee4n
-de1er
-de1es
-def4a
-de2fa.
-2d1eff
-def4l
-deg2
-degene3
-de3gl
-deh2a
-dehe2
-3dehn
-de3ho
-2d1ehr
-d1ei
-3d2e4ic
-de3i2den
-de3il
-3d2eim
-4deime
-dein2d
-d2einfr
-4deinr
-d2e3inse
-de3inst
-dein4sta
-dein4sti
-4d3einw
-de3io
-2deise
-d4e1ism
-dei2sp
-2dekz
-de2l1ac
-de3lak
-dela4t
-del3ate
-de2l3aug
-del3änd
-del3b2
-del3d
-del1ec
-3de3leg
-delei2g
-2delek
-2delem
-de2len
-deler2
-deler4r
-2delf.
-2delfm
-3delik
-del2la
-dell3auf
-del2l1ä
-delle2
-del2l3eb
-del2lei
-del2l3er
-de2l1ob
-de2lop
-del2se
-del2so
-del2s3p
-del3t4
-dem2ar
-2d1emb
-dement2
-de4mentg
-dem3ents
-demi2e
-2d1emot
-2d1emp
-d2emu
-d4en.
-dend2
-de2n1e2d
-de4n3end
-de2nep
-2denerg
-de3n2es
-d3en2ge.
-de2ni
-denk3li
-dens2am
-den4scho
-2den2sem
-den2ser
-dens3tau
-den4stie
-2dentd
-2dentf
-2dentg
-den3th
-2dentn
-2dentw
-2dentz
-den4zerf
-den4zers
-de2ob
-2deol
-dep4l
-2depoc
-d4er.
-dera2b
-der3af
-de2rak
-dera2n
-de3rand
-de2r3ap
-dera4s
-de3r2ass
-der2bl
-2d1erbs
-2derdb
-de2r1e2b
-de2reck
-der3eis
-3d4erem
-d4eren
-de2r3end
-3d4erer
-der2erf
-der3erl
-derer3n
-der3ero
-derer2t
-3d4eres
-der3ess
-de2r1eu
-derf4
-d4erfl
-d3erheb
-d2erhü
-de2r3id
-de4rinnu
-derin4teg
-der3k2
-d3erken
-2derklä
-3derlan
-d2erm
-de4rn
-de1ro
-derö2
-der3r
-de4rs
-der3san
-2dersat
-derst2
-der3stau
-dert5ende.
-derter4e
-dert4ra
-4der4trag
-de3ru
-de4ruh
-de4rum
-2d1erz.
-d3erzeu
-2d1erzv
-d2es.
-de2sa
-desa2g
-des1ah
-de4sam
-de2s1än
-de2seb
-de2se2h
-de2sei
-2d1esel
-des3elt
-de3sem
-de3s2end
-desen3e
-de2set
-de2sin
-de2s1o
-de2s3p
-de3spe
-de3spu
-dess2
-dess4e
-dess4t
-dest3alt
-des4temp
-des4terg
-de3stern
-des2tex
-de1sto
-dest3rat
-de3stri
-des2tum
-de2su
-des1un
-3desw
-det2
-de3ta
-deten4t
-2d1e2th
-2d1etw
-2d1eul
-de1un
-de1url
-de3us
-de4ut
-2d1e2vid
-devil2
-de1x4a
-de2xer
-de2xis
-2dexpe
-2dexpo
-2df2
-df4la
-df4ru
-df4rü
-2dg2
-dgas3tr
-d2ge.
-dger2
-d2gesh
-dge2t3a
-dge4t1e
-2d1h2
-dha1s4
-d3hu
-di4aa
-di4ab
-di4ad
-di4ae
-di4af
-di4ag
-di4aj
-di4ak
-di4ale
-di4am
-di4ao
-di4ap
-di2a3s4
-di4at4
-di5at.
-di4au
-di4av
-di4az
-di3äre
-3dic
-di1ce
-di3chl
-dicht4er
-di4ck3el
-4d3i2co
-3dida
-d1ide
-2didee
-di2den
-2didy
-di2e
-di3e4d
-di3en.
-di3end
-die2neb
-diener4l
-di3e2ni
-dienst3r
-die2p
-di3ers.
-dies1c
-di3e4th
-3dif
-di4ff
-dige2s
-di4gk
-dig4n
-dik2a
-dil2s3
-2d1imb
-2dimp
-din4a
-2d1ind
-di3n2e
-2d1inf
-di4ng
-2d1inh
-di3ni
-2d1inj
-2d1ink
-di4nn
-2d1ins
-2d3int
-2d1inv
-di2o3b
-di2odi
-di4ok
-dion3in
-dion3s4
-di3ora
-d4ios2
-dip2
-di3pt
-d1i2ra
-di4re.
-di2ren
-di5rig
-di2rin
-di2ris
-2d1irl
-2d1irr
-di2s1a2
-2d1iso
-di2sp
-di3s4per
-2d1isr
-dist2
-di1s4ta
-di2s3te
-di2stra
-di4sz
-di2ta
-dite1c
-di2t3erl
-di2t3erm
-di2t3ers
-di3the
-di2tin
-di2tob
-di4t3r
-dit3s
-di2t1u
-di5vid
-di3z2
-2dj
-d2jar
-2dk2
-d3kl
-dk4le
-dk4na
-dk4ne
-2d1l2
-d3la
-dlap4
-d3le
-dle2ra
-dl3f
-dli4f
-dl3m
-dl3s
-2dm2
-d3ma
-d3me
-2d1n2
-d3na
-d3ne
-d3ni2
-dni3g
-dnis1
-d3nu
-do3a
-doa4k
-2d1ob
-3d2oba
-d2obo
-dob2s
-d1of
-do4fe
-2d1oh
-do3ha
-dole4
-dol3l2
-d3o2ly
-3dom
-do4mal
-do4mar
-domen1
-do4ming
-4domn
-do4mu
-don2a
-do3nan
-doni1e
-4dony
-do2o
-do3op
-2dope
-2d1opf
-do1r4a
-2d1orc
-2d1ord
-dor2f1a
-dor2fä
-dor2f1i
-dor2fl
-dor2fo
-dor2fr
-dor4f3u
-2d1org
-d2orn
-2d3orna
-2d1ort
-dor2ta
-dor2t3ei
-dor2ter
-dor4tr
-dos2
-d2os.
-2dosm
-dos3s
-dost1
-d1ost.
-dost3a
-dosten2
-dos4ti
-do4stu
-do3ta
-do3th
-do2tof
-do3un
-dow2s
-d2o1x2
-d1ö
-dö2d
-dö4fe
-döl1
-döll2
-d2ön
-3d2ör
-dö2s1c
-2dp2
-dpass1
-dpas2se
-d3pf
-d3po
-dpol4n
-dpost1
-d3ps
-2dq
-d2r2
-3d4ra.
-3d4rab
-4d3rad
-2drahm
-2d3rak
-3d4ral
-d4rama
-d3ramm
-d3ramp
-d3rand
-dran3k
-2d3rast
-dr4at
-dra4tin
-2draub
-2d3rauc
-d4rauf
-2draum
-2draup
-2dräd
-d4räh
-2d3rät
-2d3räu
-4dre.
-2d3rea
-d4rea.
-d4reas
-3d4reck
-2d3ref
-4dreg
-3d4reh
-dre2ha
-dr4ei
-2d3reic
-3d4rei3e
-d4reiv
-d4rej
-4drem
-4d3ren
-d4reo
-4d3rep
-4d3rer
-4dres.
-d4resc
-dres4sei
-dres4ser4
-dres2st
-d4rew
-2drez
-2d3rh
-d4ria
-4d3ric
-d3rieg
-3drif
-4d3riff
-d4rift
-4d3rind
-2d3rip
-2d3risi
-2driss
-2d3ritu
-2d3rob
-d3rod
-2drogg
-2drohr
-3d4rohu
-dro2id.
-2d3roll
-2d3rose
-d4ross
-2d3rost
-2d3rot
-2d3rou
-2d3rov
-d3row
-drö2sc
-3d4ruc
-2d3rud
-2d3ruh
-dr4un
-2d3rut
-drü3b
-drü3cke
-3d4rüs
-2d1s
-ds3a2b
-d2s1ad
-ds1al
-d2salk
-d2sall
-d4s1amt
-d2san
-ds3ane
-ds3assi
-d2saut
-ds1än
-ds2äu
-d2schef
-d2schin
-d3s4co
-d2scr
-d2s1e2b
-dse2e
-d2s1ef
-ds1ehr
-ds2eign
-d2sein
-d2s1emb
-dsen3er
-d2s1eng
-dsen3s
-d2s1ent
-d2s1erf
-d2s1erh
-d2s1erk
-d2s1erl
-ds1err
-d2s1ers
-d2s1ert
-d2serz
-dse4t
-d2s1eta
-d2s1ev
-d2sex
-d3sha4
-ds2hak
-d4shal
-d3sho
-d4shor
-d2sid
-d2s1im
-d3s2inf
-ds2kal
-d3s2kel
-d4sko
-d4sli
-d3soh
-d2sop
-dso2r
-ds1ori
-d2sö
-d2spat
-d2spä
-d2speri
-d2s3ph
-d3spi
-ds2por
-d4sporto
-d3spri
-d2spro
-ds2pu
-dss2
-dss4t
-dst2
-d4stag
-d2stas
-ds3tauf
-d2s3täti
-d2ste
-d3stec
-d3stei
-d4steil
-d3stell
-d4stem
-d4sten
-d3s2tern
-ds2ti
-ds4til
-ds4tip
-d2stoch
-d3strei
-d3s4tro
-ds2tur
-dsu2m
-d2sun
-ds1url
-ds2zen
-2dt
-dta2be
-d3t2ac
-dta2d
-dt2ag
-dta2n
-dt3ane
-d3t2as
-dt2ax
-d3tea
-dt2et
-d2th
-d4thei
-d3to2
-d4tob
-dt2op
-d3tö
-d4tök
-dt3r
-dtran2
-dts2
-dt3sa
-dtt4r
-dt2un
-d3t2ur
-d3tü
-d3ty
-dua2ler
-du1all
-du1alv
-du1ar
-du2b3li
-du1ce
-2d1u4fe
-duf2ter
-duf4to
-duf2tr
-d3u2g
-2d1uh
-du1i
-du2in
-du2kr
-dul3art
-2d1umb
-2dumd
-2d1u2m1e
-2dumf
-2dumg
-4d3umk
-2duml
-d2ump
-2dumr
-2d1ums
-d2ums.
-2d1umv
-du2n
-2d3und
-2d1unf
-dung4
-d1unga
-2dungl
-2d1uni
-dun3ke
-dun2kl
-2dunr
-dun2s
-2dunsi
-dunst3r
-2dunt
-2dunw
-2d3unz
-du1os
-dur2
-dur3au
-durch3
-2d1urk
-2d1url
-2d1urn
-2d1ursa
-2d1ur3t
-du2schn
-du2schr
-du2sch3w
-2düb
-d3über
-düns3
-2dv2
-2dw
-dwa2
-dwer3te
-dwes2
-dwest1
-dy2le
-dym3
-3dyn
-dy2s
-dys1c
-dy4sl
-dys3t
-2dz2
-d3zw
-dz4we
-2e1a
-ea2be
-ea2b3l
-ea4br
-ea2c
-eadli4
-e3a2dr
-ea2g
-ea3ga4
-ea3g4l
-ea4ka
-eakt2
-e2akta
-ea2la
-e3alei
-e4alem
-ea2l3ent
-ealen2z
-ealer2
-e3a2lerg
-e3alex
-e3a2lin
-eal1o
-ea2lon
-ea2lop
-e2alti2
-eal3tr
-ea2l3u2
-eam3
-ea4ma
-e2am4e
-ea4m1o
-eamt2
-e3anf
-e2ano
-e3ar.
-ea2ra
-ea3rat
-e2are
-e4are.
-ea2r1ei
-ea2rene
-e4arer
-e4ares
-e3ark
-e4arn2
-ea2ro
-e3arz
-e2as
-e3a4sc
-easin4
-ea4sp
-eas3s
-eate2
-eat4mes
-eat2mu
-eat4mun
-ea4to
-ea5tri
-eat3s2
-e3at3t2
-e4atu2
-e3aue
-e3auf
-eau4fe
-eau4fl
-e4aufo
-e4auj
-eau3n
-e2av
-e2az
-e1ä2
-e3äh
-2eba
-e3bak
-eba2p
-e3bän
-2ebec
-ebe1er
-ebein5h
-eb2el
-ebe2ler
-ebe2lo
-ebels2t
-ebel3ste
-ebenen3
-ebe2ras
-ebert4
-ebese2
-ebe2s3eh
-ebe2so
-2ebet
-ebet4s
-2ebh
-2ebi
-2ebl
-e3blä
-eb3le.
-eb3ler
-eb4leu
-e3blie
-eb3lo
-e3b2lö
-2ebo
-e2bob
-ebot2
-ebö2s
-2ebr
-eb5rah
-e3brau
-eb2s1
-eb4sche
-ebse2
-ebs3p
-eb4spanne
-eb3stan
-ebs3tau
-eb4stät
-ebs3t2h
-ebs3ti
-eb3str
-ebs3treu
-2ebu
-e2bunt
-ebu2t3
-eby4t
-2e3ca
-2e3ce
-ech1am
-ech1ä
-2e1che
-ech1ei
-ech2en1
-echer4fa
-e4ch3erzi
-e1chi
-echi3e
-ech3l
-ech3m
-ech3n
-e2cho.
-ech3ö4
-ech3re
-e1chri
-ech3sel
-echs2er
-echst3re
-ech3tab
-ech3t2ei
-ech3ter
-ech4terh
-e1chu
-ech3w
-2echz
-e1ci
-e4ck.
-ecke4n1
-e2ck3err
-ec4kl
-e4cks
-eck3ser
-2eckt
-3eckty
-2e1cl
-2eco
-2e3cr
-ec1s
-2ect
-ed2a
-ed2dr
-ed2e
-ede2al
-e3dee
-ede3n2er
-edens1
-eden4sa
-eden2se
-eden2sp
-eden4sta
-edeo2
-ed4e2r
-eder3a
-ede3rat
-ederer2
-eder3t2
-edes2t
-ed2i
-2edip
-edi4teng
-e3d2o
-ed2ö
-e3drei
-ed4rö
-ed2sal
-ed2seh
-ed2s1es
-ed2si
-ed2s1o
-ed2sp
-ed2sto
-ed2s3tr
-ed2s1u
-edun3
-edund2
-edy3
-edys4
-2ee
-ee3a2
-eeb2l
-ee3bs
-ee1c
-ee4ce
-ee2cho
-e1e2ck
-eede3
-eede1s
-eed3s2
-ee1e2
-e1eff
-eef4l
-ee3fo
-eeg2
-eeg4r
-e1ei
-ee2i3e
-eein2se
-eei4sc
-eeis3s
-e2ela
-eel2e
-e3e2lek
-eele4n
-eel2ö
-e2e3m2a
-e1emb
-e1emp
-eena2g
-e1end
-een1e
-e2e3n2i
-ee3n2o4
-een3s
-e1ent
-e1en2z
-ee3o2
-eeo4l
-e2ep
-ee3po
-e1erbt
-e1erd
-ee3r2e
-eer3ei
-ee4r3en4g
-eere2s
-eere2t
-eer3eti
-e1ermä
-ee1ro
-ee1rö
-e1eröf
-eer2ös
-eer3sh
-eer3str
-ee3r2un
-e1erz
-ee1s2
-ee3sh
-ees3k
-ee3sp
-ee3s4t
-e2et.
-ee3t2a
-ee4tat
-ee2th
-eet2i
-ee3t4r
-ee2tu
-ee1u
-eeu4f
-eewa4r
-e1e2x
-e2f1ad
-e2f1a2g
-e3fah
-ef1ana
-ef1ar
-e2farc
-ef3arm
-e2fat
-ef1aus
-2efä
-ef2äl
-e2fäu
-2efe
-e2f1e2b
-efe2l3ei
-ef1em
-efe2n1
-3e2f1ene
-e2fent
-efer3f
-eferin4d
-efeuil2
-3effek
-1effi
-ef2fl
-2efi
-ef1id
-e2f1ins
-efi2s
-2efl
-ef4le
-ef5le.
-e3f4lu
-e3f4lü
-2ef2o
-2efr
-ef4reih
-ef3rol
-ef3rom
-ef4ru
-ef4rü
-efs2
-efs4c
-ef3so
-ef3sp
-ef2tan
-ef2tei
-ef2tro
-2efu
-2efü
-ega4m
-e3g2anz
-e3ge
-eg1eil
-egein3
-ege2lan
-ege2l3au
-ege4l5ei4er
-ege2ler
-ege2lo
-eg2en
-ege4n1a2
-egene3ra
-ege4nero
-egen3z
-eg2er
-ege2ra
-ege3stal
-ege2s3tr
-ege1u
-e4gex
-2egi
-2egl
-e2glo
-e2glu
-egmen4ta
-e2gn
-eg3nä
-eg3ni
-ego3p
-egori2e
-egs2ag
-eg4sal
-eg3se
-eg4sei
-egs2e3l
-eg3si
-eg4sk
-eg4sm
-egs2of
-egs4pe
-eg4ss
-egst2
-eg4sto
-eg2th
-egung4
-egus3
-eg5ver
-2e1ha
-eh1ach
-eh1ad
-eh2ade
-e3h2ah
-eh2al
-ehalt2s
-e3hand
-e2harz
-e3haut
-e1hä
-e1he
-eh1eff
-eh1ein
-e3helf
-eh1elt
-e2hense
-e2h3ente
-ehen6tr
-ehe3o
-1e2hep
-2eher
-ehe1ra
-e2h1er2f
-e2h1er2l
-ehe3str
-2e1hi
-eh3im
-eh1lam
-eh2l3au
-eh1lä
-ehl3ein
-eh2lent
-eh5l2er
-ehlo2
-ehl1or
-eh2lö
-ehl2se
-ehl4sl
-ehls2t
-2ehm
-eh4mant
-ehme2s
-eh3mu
-eh3na
-eh3no
-2e1ho
-eho4f
-eho2l
-eh3oly
-2e3hö
-ehö2rer
-eh2r1a2
-ehr1ä
-ehr1e2c
-eh2rei
-eh2rel
-ehr4ern
-ehre3s
-eh4rin
-eh1roc
-ehr1of
-eh1rö
-ehr3sch
-ehs2
-eh3sh
-eh3sk
-ehs4p
-ehst4
-eh1ste
-2eh3t2
-eht3h
-eht4r
-eh4ts
-2e1hu
-e2hum
-eh1unf
-e2huni
-e1hü
-eh3üb
-eh3w
-e1hy
-2ei3a2
-eia4t
-ei2bar
-ei2bli
-ei4blu
-eibu4t
-ei2b3ute
-ei1ce
-ei2cho
-e2id
-ei2d1a
-ei4db
-ei4dl
-2eidn
-ei3dr
-ei1e
-eie2b
-eie2d
-ei3e2l
-eie2m
-4ei3e2n1
-eienge4
-eien3s
-ei3es
-eie2t
-4eif.
-ei3flo
-1eifr
-eif3t
-2eig.
-2eiga
-eig2ar
-2eigä
-2eige.
-2eigeb
-2eigeh
-2eigeno
-3eigensc
-4eig2er
-2eiges
-2eigew
-2eigi
-1ei2g3n
-ei2go
-ei2g3rat
-2eigre
-2eigrö
-2eigru
-2eigrü
-2eigs
-2eigt
-2eigu
-2eih
-ei2hum
-ei2kab
-ei2kak
-eik4am
-eik2ar
-eik2i
-eik2l
-ei3k4la
-ei3klä
-eik2o
-e2il
-4eil.
-ei4l3ab
-ei2lam
-eila2n
-ei2l3ane
-ei2lang
-ei2l3anz
-ei2lar
-2eilb
-eil3d4
-ei2lein
-eile2n1
-ei2let
-eil3f4
-eilm2
-ei2lob
-eil2ö
-2eim.
-ei2mab
-ei2m1a2g
-eim3all
-eim3alp
-ei2m1or
-2eimö
-2eimp
-eim2p4l
-eim3sa
-ei2mur
-e4i2n1a
-ei4na2d
-ei4nae
-ei4n3an
-ei4na4s
-ei4n3at
-ei2n1ä
-ein3d2e
-ein4derk
-e1indu
-2eineb
-einen2e
-ei4n3en2g
-einen2s
-ei4nen4se
-ein3erbe
-ei2nerf
-ei2nerk
-ein3er4la
-ei4ness
-ei2neu
-ein4fiz
-2einfo
-ein4fo.
-ein4fos
-ein3g2
-3einger
-ei4nh
-ein2hab
-e2inhä
-ei2nie
-e1in2it
-ein3k4
-ein4karn
-3einkä
-e2inl
-ein3n2
-3einna
-ei2n1o2
-1einri
-e4insa
-3einsat
-e2insc
-3einschä
-ein4stal
-ein2teg
-ein4terv
-3eintop
-3eintö
-3einträ
-1einu
-ein3zw
-ei3o
-eio2s
-ei3p
-eip2f
-ei4pp
-ei4pz
-2eir
-eir2c
-ei3re
-e1irr
-e4is.
-ei2sa
-ei3sas
-ei4sau
-ei2ser2g
-ei2s3er2l
-ei4s3erst
-ei2s3erw
-1eisho
-ei3s2ky
-ei2so
-eis4pe
-e2iss
-eist4e
-ei1sto
-eis4tol
-ei2sum
-ei2sur
-1eiswo
-e2it
-ei2t1a2b
-ei2tal
-ei2t1an
-ei2tap
-ei2tar
-ei4tat
-2eitä
-ei2tän
-ei2teli
-eite4ra
-ei4tess
-eit1h
-ei2tin
-ei2trau
-ei4tro
-eit3t4
-4eitu
-ei4t1um
-ei2t1ur
-eit3z4
-eiv2
-eive4
-ei2zar
-eiz1in
-2ej
-e3ju
-2ek.
-2e3k2a
-1ekd
-ek2e
-e3ke.
-e3ke4n
-eker3z
-e3kes
-e3key
-e3ki
-e3k2l
-ek4lo
-ek4na
-ek4ne
-ek4ni
-ek4nu
-e3k2o
-ekor2da
-2e3kr
-ek4s3p
-2ekt
-ek2tan
-ek4tank
-ek3t4ante
-ek2t3at
-ek2t1ä
-ek2te2l
-ek2tep
-ekt3erf
-ekt3erk
-ek2t3er2z
-ekt2o
-ek2t3o4b
-ek5tri
-ekts2
-2e3ku
-ekur2a
-e3k2w
-1ekz
-e1la
-el2abt
-el3abu
-ela2ck
-e2l1af
-ela4h
-e2l1ak
-e2l1a4m
-e4lame
-el2a5mi
-el1ana
-e4landa
-el1ank
-e2lanm
-e4l1ans
-e2l1ant
-e4lanw
-el1anz
-2elao
-e2l1ap
-e2l1ar
-el3a2ri
-ela2s
-el1a4si
-el1asp
-ela3su
-2e1lä
-2elbil
-2elbr
-2eld
-elda2r
-eld3ari
-eld2arm
-el2d3erf
-el2derl
-el3dern
-elder2s
-eld3erst
-el3des
-elds2
-4e3le.
-2e3lea
-elea2r
-2eleb
-4ele2c
-el1ech
-1elefa
-eleg3s
-4eleh
-el3ehe.
-2elei
-e4l3ei4ern
-e2l1ein
-e3leine
-e3leit
-el1eiw
-1elek
-2eleko
-e2l1el
-ele3ler
-1e2lem
-2e3lem.
-e3lema
-el1emb
-el1e2mi
-e3lemm
-4el1emp
-2e3len.
-elen2k3l
-e2lense
-e2l1ent
-e3lep
-4eler
-e3ler.
-eler2a
-el1erd
-el1erf
-e2ler2fa
-e2lerfi
-e2lerg
-el1erh
-e2l1erk
-e2l1erl
-eler2la
-e2l3ernä
-eler2ö
-e2l1err
-el3eru
-el1erw
-e2l1ess
-eles2t
-e2l1e4ta
-el2eth
-ele2ti
-elet2ta
-el1e2x
-e3lex.
-1elf.
-elf2er
-1elfm
-elf4r
-1elft
-elgi3
-el3g2l
-elg4r
-e2l1id
-2e3lie
-elif3
-2elig
-e2lim
-elin3a
-el3inka
-eli3no
-el1ins
-4elis
-2elk
-el2larb
-ellar4t
-ell2ei
-ell3ein
-ell3eis
-el4lel
-ell2er
-eller4fas
-eller5g
-ell3erh
-el3les
-el2lim
-1ellip
-el2lor
-ell2ö
-ell3sp
-elm2e
-elm3ein
-el3na
-2elo
-e2l3oa
-e2lof
-elo4fe
-e2lol
-e2lom
-e2lonk
-el1opf
-e2l1or
-e3lore
-elo2ri
-e3lot
-e3l2ov
-2elö
-elö2s
-el3p2
-el4sb
-el2s3ein
-el3sen
-els4tri
-el2sum
-el3tar
-elte4m
-el5ten.
-el4t3ent
-elter4b
-elter2f
-elt3erh
-elter2k
-elter4le
-3elter4n
-elt5ero
-elter2s
-elte4s
-el4tesc
-elt3eth
-el3the
-el5tri
-el4ts
-elt3se
-2e1lu
-el1uf
-e2l1um
-e2l3u2r
-elu2s
-el3use
-elu2t
-el3ute
-el3uto
-e1lü
-2ely
-e2lya
-el2zar
-el2zene
-elz1in
-e2m3a2b
-em4ak
-e2m3alar
-e2m1alk
-em3anf
-e2m1ano
-em1ans
-1emanz
-e4m1a4sp
-em1au
-2e3mä
-em2äh
-1embo
-1embry
-em2dä
-emd1r
-em2dra
-2eme
-e2m1e2b
-e2mef
-eme2i
-e2mele
-em2en
-emen4gel
-emen2t3h
-e4mentsp
-emer2i
-e2m1er2l
-em1erw
-3e2meti
-em1i2d
-emi2ei
-e2mig
-emik2
-em1im
-2emin
-emi3n2a
-e3mind
-em1int
-1e2mir
-4emisc
-emi4scha
-emi3tr
-emma3u
-em2m1ei
-e2mof
-emo3s
-1empf4
-em3pfl
-em3po
-empo1s
-em2sa
-em4scha
-em2sim
-em2spr
-em2st
-ems5tr
-ems6tra
-em3t2
-1e2mul
-3emuls
-emu3ne3
-e3mur
-2emü
-e2na
-4ena.
-e4na2b
-en3aba
-en3abo
-4ena2c
-en3ache
-e4n1ack
-enadi4
-e4naf
-4enah
-en3ak
-ena4ke
-en1al
-e4nalb
-e3nale
-ena3l2i
-e4nalk
-e4nalm
-e4nalo
-enal3p
-enal4s
-4en1am
-ena4n
-e4nand
-en3ane
-e4nant
-e4nanz
-en1ap
-ena2pa
-en3are
-en3ark
-4enarm
-en3aro
-en1as
-ena4sc
-e4na2st
-2enat
-4e5nati
-e4natl
-enat4s
-e4n3att
-4enatu
-e4nau4f
-en3aug
-e5naui
-e4n3aur
-e4nausta
-e4naut
-e4n1ax
-en1a4z
-en1ä
-en3äb
-en4äc
-e2när
-en2ä3s
-en3äst
-2enbew
-2enbom
-en2ce.
-end2ac
-en2dal
-en2dang
-4endef
-2endel
-ende2lä
-en2d3es4s
-en2dex
-en2did
-en3d2ort
-en2dost
-en3d4rü
-end3s2au
-end3s2l
-end3s2p
-end3sz
-en3d2um
-en3d2ü
-2ene.
-en3e2ben
-en1e2c
-e2neff
-ene3hen
-en2eid
-e3neien
-e4neige
-e4nein
-e4neis
-e2n1el
-ene4le
-2ene2m
-e2n1emi
-2enen
-e4n1ent
-en3envi
-en1ep
-4e3ner.
-e2n1erd
-e2nerf
-en2erfr
-1energ
-3energi
-e2nerh
-e2nerk
-e2n1erl
-e2nermi
-e2n3ermo
-4enern
-e2n3erne
-ene2ro
-e2n1erp
-e2n1err
-e2n1ers
-4eners.
-e2n1ert
-en2ert.
-e2n3eru
-e2n1erw
-2enes
-e3nes.
-e2n1e4sc
-e2n1esk
-e2n1ess
-en1eta
-e2n1eth
-en1eul
-e2n1e2v
-e4ne2x
-en3f
-en4fb
-en4ff
-en4fg
-en4fh
-en4fk
-en4fm
-en4fp
-en4fs
-en4ft
-enf2u
-en4fw
-en4fz
-1engad
-1engag
-eng2al
-en3geb
-enge3r2a
-eng2i
-en3gn
-en3g2o
-1engp
-eng4ra
-eng3se
-e3ni.
-2e3nic
-2e3nie
-eni3er.
-eni3era
-eni3erp
-eni3ers.
-en3i2ko
-en3ill
-eni4m
-en1ima
-en1imi
-e2n1in
-en3inh
-e3nio
-en3ion
-e2nir
-2enis
-eni4sa
-e4n3iso
-e3nit2
-e3niv
-enk3aus
-3enkeli
-enk3erg
-en2k3erk
-en3k2ü
-en5mil
-en2nef
-en2nel
-enner2e
-en2ner2f
-enn3erg
-enn2i
-enni4ger
-2enniv
-enns2
-enn3ste
-e2n3oa
-e2n1ob
-e3nobel
-eno2br
-e2nof
-e2noh
-en3oli
-en3olm
-eno4ma
-eno4n
-e2n1op
-e2n1o2r
-en2ora
-eno4ri
-4enorm
-e2n1ost
-4e3not
-eno2w
-e1nö
-en1ö2d
-e4nöf
-e4nök
-e4nöl
-4enred
-en3sabb
-en2san
-en3sche
-en2seb
-ense2e
-1ensem
-ensen3e
-en3s4pen
-en3spo
-ens2por
-4enst.
-enst3alt
-en2stät
-ens4tel
-ens4temp
-ens2th
-4enstl
-2ensto
-enst2ü
-2entab
-en2tad
-2entaf
-en5t2ag
-en2tanm
-en2tanw
-en3tar
-ent2ark
-1entd
-en3t2el
-ente2n
-3entera
-en2terb
-1entf
-2entfo
-1entg
-3entgeg
-en2thi
-1enthu
-1enthü
-en2t1id
-3entla
-1entn
-en2tob
-entopf3
-en2t1os
-2entö
-en5tré
-en4ts
-1entsc
-1entso
-2entss
-ent2sto
-3en4tw
-4entwet
-1entz
-e2n1u
-e3nu.
-e4nur
-enu4t
-e4nuto
-e1nü
-4enwü
-e1ny
-en3zare
-en2zene
-enz3erf
-enz3erg
-enz3erk
-enzer2l
-enz3erm
-enz3ersc
-en4zf
-enzi2d
-enzlan2
-enzo2l
-en4zp
-en4zr
-en4zs
-4enzuf
-1enzy
-2eo
-eo3a
-e1o2b1
-eo3ben
-eo3bl
-eo3bo
-eo3br
-eo1c
-eoch2
-e1of
-eo3g2
-e1oh
-eo3la
-e3o2ly
-e1on
-e3o2nat
-eon2i
-eo1o
-eo2pe
-e1opf
-e4oph
-eop4r
-e1or
-e3or.
-eo1ra
-e3orb
-e3o4r3ei
-eorgi1
-e3ors
-eort2
-e3orw
-eo1s2
-e3os.
-eo3se
-e1oste
-e1ou2
-eo1ul
-eou4t
-e1ö2
-eö4fe
-2ep2a
-epa2g
-epas4ser
-2epeg
-2eper
-e3p2f
-ep4fl
-2epia
-e2pid
-e4pig
-e2pik
-3e4pile
-e3pio
-e4pip
-1epis
-2epist
-1e2pit
-ep3le
-ep4lu
-1epoc
-eport4
-epor3te
-3e2pos.
-ep4p1a
-eppe3l
-ep4pl
-ep2pr
-2epr
-ep4rä
-ep3sh
-ep2tal
-ep2tau
-ep2tä
-2e3pu
-epu2s
-2eq
-e3qu
-er1a
-e3ra.
-e2r3a2ch
-e3rad.
-e3ra3di
-e2radj
-e2r3adm
-e4radmi
-e4r3adr
-eraf4a
-era2g
-era3ges
-e1rah
-e1rai
-er3aic
-e3rake
-era4ku
-e1rald
-eral2eb
-er3alke
-e2r3all
-er2an.
-era4n4a
-eran3d
-e3rand.
-e2rangr
-e2ranh
-e2rano
-e1rap
-er3apa
-er3apf
-er3apo
-e2rar
-er3are
-e3rari
-era2rie
-e3ras.
-era2si
-era2ß
-e2ratel
-e3rativ
-e2ratl
-e1raub
-e1rauc
-er3aue
-erau4f
-er3aug
-e2ra2v
-e1raw
-e2r3ax
-e1raz
-e1rä
-er1äf
-er1äh
-er1ä4m
-er1äp
-e2r1äs
-er1ätz
-3erbarm
-erb2au
-erb2e
-er3blo
-2erbru
-erb2sp
-er1c
-erche3i
-er3chl
-erch2o
-erd2am
-erda5me
-1erdb
-2erdec
-er2d3en4g
-erd3erw
-erdes2t
-erdeu2
-1erdg
-erd3st
-2erdy
-4ere.
-er3e2ben
-e3r2ech
-er3echs
-er1e2ck
-er1edi
-ere2dit
-er1eff
-e2r1e2h
-ere3ho
-4e3rei.
-e3reib
-1er1eig
-er3eime
-e4reink
-er3eis.
-er3eisar
-er3eisb
-er3eisf
-er3eisr
-erei3str
-er3eisv
-e4rek
-er1e2l
-e2rele
-ere3lev
-2erem
-4erem.
-er1emi
-ere2mis
-e2remp
-2eren
-4e3ren.
-e3rena
-eren1e
-e2rense
-e2rentn
-e4r3ents
-e3renz
-eren4z5en4d
-er4eo
-er1epe
-4erer.
-2ererb
-e2r1erd
-e4rerfo
-e2rerh
-e2rerk
-e2rer2l
-erer3lau
-e2rerm
-2erern.
-e2rerne
-e2rer2o
-erer2ri
-er1ers
-2erers.
-e4rersche
-e2rert
-2ererv
-2ererw
-e4r3erze
-2eres
-4eres.
-ere2sp
-er1ess
-eres3sk
-er1eta
-eretri3
-er1eul
-ere3un
-ere2vid
-erf2e
-2erfir
-4erform
-erf4r
-4erfür
-er2g3are
-4ergebi
-3ergebn
-4ergebü
-2ergeha
-2ergehä
-ergel4s3
-erg3elst
-2ergeni
-2ergn
-er2gop
-4ergrem
-erg1s
-erg3s2o
-ergs4p
-ergs4t
-e2rh
-1erhab
-er3hag
-2erhai
-2erhals
-2erham
-2erhas
-er3hei
-2erher
-4erhöc
-er3hu
-2eri
-e2riat
-e3rib
-4e3ric
-e4r3ico
-er1id
-4e3rie
-erien1
-erie2ne
-e4rij
-e3rik
-eri3k4l
-4erin.
-e2r1ind
-erin2fo
-e2r1in2i
-er1in3k
-er1inl
-er1int
-er1inz
-e2ri2on
-e4rir
-4eris
-e2riso
-e2risr
-er1ita
-3eritr
-e3riv
-2erk.
-2erkaj
-er3ker
-er3kla
-1erklä
-2erkm
-erk3t4
-erk5to
-er2kum
-2erl.
-2erlag
-3erlebn
-2erln
-erm2
-er3ma
-1ermah
-er3men
-ermen2s
-erm3ers
-er2nalg
-er2n3alt
-er2nau
-er4nene
-er2nerf
-er2nerk
-3erneue
-er2nob
-erno2r
-ern1os
-2e1ro.
-e1roa
-er1ob
-ero2bl
-ero2br
-e2r1of
-e3rofr
-e1rog
-e1roh
-e1rok
-e1rol
-er3oly
-e1rom
-er3omb
-2e3ron
-e2r1oo
-er1op
-2e4ro4r
-eror2a
-e1ros
-1erosi
-e3rosit
-e1rou
-e2r1o2v
-e1row
-er1ox
-er1oz
-erö2d
-2eröh
-erö4l
-er1ös
-erö2sc
-er3pl
-3erprobu
-er3rä
-4erren
-ers4ana
-ersch4
-er3schm
-er3schn
-er3sen
-ers3hal
-er3s4i
-er3sk
-ers4por
-er3stel
-erst3ers
-2erstil
-ers4tod
-ers6tri
-er3swi
-er3sz
-ert1ab
-4erteig
-er2t3erf
-er2t3er2g
-er2ter2h
-er2ter2k
-er2ters
-ert1h
-er2tho
-4ertö
-er3trau
-er5tri
-4ertru
-er4ts
-ert3s2e
-ert3s2p
-2eru
-eruf4s3
-e4r3uhr
-er1u2m1
-er1und
-e4rundu
-erung4
-er1up.
-e4r3ur
-er3use
-eru4t
-er3ute
-e2r3uz
-erü4b
-3erweck
-6erweib
-es3ab
-e4sabe
-e2s1a2d
-e3saf
-es3ak
-e4s3all
-es1ami
-es3ampl
-es2ank
-es2anm
-es2anr
-es3anz
-e3sap
-es2apa
-esa2ra
-e3sa2s
-es2ast
-e3satz
-esa2v
-es1ax
-2esb
-esbi3er.
-e3s2ce
-esch2
-es4chi
-e2s3ec
-es1ehr
-esein2s
-es4ek
-es2el
-ese3lam
-4esen
-ese4nal
-ese2neu
-esen3o
-e3s2ens
-esen3sk
-esen3th
-ese4r1u4
-eses2k
-e2s3e2x
-2esf
-2esh
-es2har
-2esi
-esi1er
-e2s3i2k
-e2s1il
-esi2st
-e4sk.
-es2kat
-e4skä
-e4s3ke
-e4s3kl
-e4skö
-es3ku
-e4s3ky
-es3l
-2esm
-e2s3oa
-e4s3ob
-es1od
-eso4f
-e3s2oh
-e3sol
-esonan2
-eso2r
-es1ora
-eso3re
-es2ort
-e3sot
-e3s2ö
-2es2p
-e3s4pal
-es4park
-es4pec
-e4spers
-e2s3ph
-e3spi
-e3s4por
-es4pru
-es4put
-2esr
-2ess.
-es2s1a2g
-essali3
-essau2s
-1essay
-es3sc
-ess2ere
-ess2erf
-es2s3er2g
-ess3er4la
-es5sie
-2esso
-es2sof
-es2sorg
-es2s3pa
-es2spu
-ess3tie
-es3stu
-es4sü
-e4st.
-estab4b
-esta3ge
-est1ak
-es4tanb
-es4tang
-e2stant
-e1stap
-e1star
-e2starb
-e2sta4s
-est3asc
-e1stat
-e2stat.
-e2staum
-es5te.
-es2tec
-este4i
-est3eing
-est3eink
-est3einl
-est3eint
-e1ste2l
-es4t3emi
-e4sten
-es4t3eng
-est3entr
-es2tep
-est3ergi
-est3erha
-es2ter2ö
-es4t3es4s
-es2th
-es2tid
-e1stil
-e2stip
-es2tis
-e4stl
-estmo4de.
-1estn
-e2stom
-e3strec
-es4tri
-e1strö
-es4ts
-est3ums
-es2tur
-est3urk
-e1s4tü
-e3sty
-es4uc
-e3suh
-e2s1um
-es3ums
-es2und
-es3unt
-es1ur
-esu4s
-es4ut
-2esw
-e3sy
-es4ym
-es3z
-es4zene
-es4zk
-2eß
-e2ß1el
-e2ßent
-eß2e3re
-e2ß1er2g
-e2ß1erl
-eß3t
-etab4
-eta2c
-2e3taf
-2etal
-et1a4mi
-et4an.
-e3tas
-et2ast
-et4at
-etat3r
-et1äh
-2ete
-ete2e
-e2t1ef
-et1ein
-ete3ke
-eten3d2
-ete2o
-eter1ä
-eter2hö
-eter2tr
-ete2s
-2eth.
-et2ha
-et3hal
-e3the
-et2hi
-e4thik
-3ethn
-et2hu
-e4t1i2d
-eti2m
-eti3na
-et1ini
-et2it
-eti2ta
-eti4th
-et3l
-2eto
-e2t1o4f
-eto4n3al
-eto2ner
-etons4
-et1orc
-e4torg
-eto2s
-2etr
-et3rad
-e2traum
-et3rec
-e4t3res
-et4ros
-ets2c
-etscher5e
-etsch3w
-et2s3pe
-et2ste
-ett1a
-et2ta2b
-et2tad
-et2tak
-etta4m
-et2tans
-ett2as
-et2tau
-et2tei
-ette4n1
-ett4er
-et2t1h
-et2t3r
-et2t1um
-3e2tui
-e3tur
-e3tü
-e4tüb
-etwa4r
-ety2l1
-1e2tym
-2etz
-et2z3w
-eu1a2
-eu3b
-eub4r
-2euc
-euch4ta
-2eud
-eude1s
-eudi4e
-eu2eb
-eue2r3ei
-eueren2
-euerer4s
-euerer4t
-eu3eri
-euer2ri
-eu2esc
-2euf
-eu4fer
-eu2g1a
-euge2mi
-eu4gense
-eugin2
-eugin4f
-eu2ging
-eu2gre
-eu2gri
-eugs4
-eug3sp
-eu3h
-eu1id
-eu1in
-1eukal
-eu2kä
-eulan2
-euland3
-eul2e
-eul2i
-2e1um
-e3um.
-eu3m4a
-e3umb
-e3umf
-e3uml
-e3um2s
-eum4s3p
-e3umw
-2eu2na
-eun2e
-e3un2g
-eu2nio
-eu4nis
-eunk2
-eun3ka
-eu1o2
-eu3p
-e1up.
-eu4pd
-eup2f
-e3u4pg
-eu4r1an
-eu2r3ast
-eura3t
-eu2rau
-eur1c
-e2ure
-euren2
-eu2rens
-eur4er
-eurf4
-1euro
-eu4rs
-eur4so
-e3usar
-eusch2o
-eus2i
-eu4sk
-eu3s2p
-eust4
-eu1sta
-eu1sto
-eu1s4tr
-eut2e
-eute3r2e
-eut2h
-1eu3tha
-eut2i
-eut2o
-eu5tor
-euts4
-eut4schn
-eut4schr
-2eux
-eu1y
-eu2za
-euz3eic
-eu2zo
-eu2z3w
-e1ü
-e3üb
-e2vak
-e3var
-eva4s3
-2ev2e
-eve5ri
-evie3le
-2e3vor
-ewä2s
-e2we.
-ewei4sc
-ewert2
-ewer3te
-ewi2s
-e3wit
-2ex.
-1exa4m
-ex3at
-2exc
-2exd
-e2xel
-ex1er
-2exes
-e1xi
-2exik
-e2xil
-e2x1in
-e3xio
-1exis
-ex3l
-1exp
-2expu
-2ext.
-2ex2ta
-ex2tin
-1extr
-2extu
-2extv
-2exu
-e2xum
-2e1xy
-2ey1
-eyl2
-ey2n
-ey3no
-eys2
-e3z2a
-ez2ä
-e2z1enn
-e3zi
-ezi2s
-ez2o
-ez4wa
-ez4wi
-ezz2
-é1
-é2e
-égi2
-él2
-élu2
-ém2
-ér2
-ési2s
-éu2
-éz2
-è1
-ène1
-ènes4
-2ët
-ê2t
-1f
-2f1abb
-fa2ben
-2fabf
-2fabg
-2f1a2bl
-2fabn
-3f2abr
-2f1abs
-2fabw
-fa2cheb
-fa2chel
-fa2ch1i
-fa2cho
-fachs4p
-fa2dan
-fa2del
-f4aden
-f1ader
-fa2di
-fa2dr
-fa3e
-fa4eli
-2faf
-fah4l3ent
-3fahrt
-fai3b
-f1a4ka
-fa4ke
-f3aktio
-f4akto
-f2aku
-fa3l2a
-fa3le
-fal2kl
-fal2l1a
-fal3le.
-fal2l3ei
-fall3ent
-fal2ler
-fall3er4s
-fal4scha
-fal4schei
-fal4schl
-fal2tr
-fa4mei
-4f1amp
-f1amt
-f2an.
-fa2nar
-2fanb
-fand2a
-f2anf
-fan2ga
-fan2gr
-2f1an3k
-2fanl
-4fann
-f1anp
-2fanr
-2fanw
-2f1an3z
-2f1a2p
-f2ar
-far2b1a
-far4bel
-far2b3er
-far2bin
-farb1l
-far2bo
-far4b3r
-far2b3u
-f3arc
-3fa3ri
-farm2e
-far2r1a
-far2rh
-farr3s
-2f3art
-2f3arz
-fa3s4a
-fa3sh
-fa2st
-2f1astr
-fa2ß
-f3at
-f4at.
-fa2to
-f4ats
-4fatt
-2f1aue
-2f1auf
-f3aug
-fau2s
-f1ausb
-faus4t3r
-3fav
-fa2xa
-3fä1c
-fäh4rin
-fäh2ru
-f1älte
-2fäq
-3färb
-2f1ärm
-4f1ärz
-fässer2
-fäs4serk
-fäs4serw
-fä2ßer
-2f1ätz
-2fäug
-2fäx
-2fb2
-fber2
-fb4re
-2f1c
-f3ch
-2fd2
-f3da
-fdien2
-fd4rö
-f3ds
-3fe.
-featu4
-fe2c
-f2ech
-fe3che
-fech5t2e
-fe2del
-fe2dr
-fe2e1i
-feein3
-fe1em
-4f1e2he
-fehle2
-feh2lei
-fei3le
-f2eind
-fe3infr
-2f1eing
-fe3ini
-fe3ins.
-fei4nu
-2f1einw
-f1eis
-fek2tin
-fek2t3r
-fe2l3a2
-fe2l1ä
-fel2da
-felde4m
-feld2er
-fel2dr
-2fe2lek
-fe2l1er
-fe2les
-fel3le.
-fe2l1o
-fels2t
-felt4
-4fel4tern
-f2em.
-2femb
-fem4m
-2femp
-3fen.
-fen3a2
-fe2nä
-fend2
-4fenerg
-fene4t
-fe2ni
-fe2no
-fen3s2a
-fens2c
-fenst2
-f1ent
-fen3t2a
-2f3entf
-f2enti
-2fentla
-f2ento
-2fentw
-4f3entz
-fe4pi
-f2er.
-fe2r3a2d
-fer3al
-fe1ran
-fe2rang
-fer2ant
-fe2ranz
-fe2r1ä
-2ferd.
-fer3da
-fer3d2e3
-2ferde.
-2ferden
-fe2r1e2b
-fe2rec
-fer2ei
-4f3ereig
-fer3eis
-fer3ell
-fe3rerf
-fe2rer2g
-fer2fah
-fer2fol
-ferg4
-2fer2geb
-f4erges
-f4ergr
-fe2ri2d
-ferie4n3
-feri4on
-fer2leb
-fer3m
-f2ern.
-fer4nei
-fe2rö
-f4erpa
-f4erpf
-f4erpl
-f4er5ra
-fer2reg
-ferri2
-f2ers.
-f2ert
-fert4r
-f2erz
-fer2zeu
-3fes
-fes3s2e
-fe2sta
-fest3a2b
-fest3an
-fest3ei
-fes4tel
-fester2
-fes4t1o
-fe2s4t3r
-2f1e2ta
-fe4tag
-fe2th
-fet4t3a
-fetti3s
-2feu.
-feuer3ö
-2f1ex
-fe1y2
-2ff
-ffab2s
-ff1a2d
-f3f2ak
-ff3ar
-f3fas
-ffa2t
-ff1au
-f2f1e2b
-f2f1ef
-f2f1ei
-ffe3in.
-ff1e2m
-f2femi
-ff2en
-ff3erle
-ffer3z
-fff4a
-ffi3k
-ffin3s
-ff1lag
-ff3le
-ff3li
-ff5lon
-f3flü
-ffo2r
-ff1ox
-f3f4rä
-ff3ro
-ff4rü
-ffs2am
-ff2s3p
-ffs3tie
-ffs3tut
-ff3stü
-ff3t2
-ffus3s
-2fg2
-fgeb2
-fge3s
-f3gh
-fglim2
-f3gü
-2f1h2
-fh4eu
-f3hu
-fi4ak
-fi2ar
-fi3at
-fid2
-fi2do
-fid4s
-f2i2e
-fi4eb
-fie1i
-fien3
-fi1er2f
-fi4es.
-2fif
-fi2g3r
-fi2k1as
-fi2kel
-fi2kin
-fi2kn
-fi2k1o4
-fi4k3r
-f2il
-fi2l3an
-fil3d
-fi2les
-fil2et
-fi3li
-fi4lin
-fil2ip
-fil2ma
-fil2mä
-fil2med
-fil2mei
-fi2l1o
-2f1im
-fi4mi
-4f3imp
-3f2in2a
-fin2e
-2f1inf
-fing2
-fing4s
-2f1inh
-fi3ni
-fin2s
-fin3sc
-fin3sti
-4f1int
-4f1inv
-fi2o
-fi3ol
-fi2r
-fi3ra
-fi4re
-fir3me
-fi3s2a
-fi2sch3a
-fi4schei
-fisch3o
-fi2schr
-fi2sch3w
-fi3s4h
-2f1iso
-fis2p
-fi2s3t
-fite2
-fi2tin
-fit1o2
-fi4tor
-five4
-fi2xel
-fi2za
-2fj
-f2jo
-2fk2
-fkaken4
-fka4t3
-fk4ne
-f2l2
-2fl.
-f3lad
-f5land
-f4lans
-f3lap
-f4lasc
-fl4at
-f3lat3s
-flauma2
-3flä
-f4läc
-4fläd
-4fläh
-4f3län
-4flär
-4f3läu
-f3le.
-2f3leb
-f4lec
-f4lee
-2f5lein
-flek3
-flekt2
-f3ler
-f4lex
-f3li.
-3f4lim
-f3lind
-fli4ne
-f3ling
-2f3lins
-f4log
-2f3lon
-3f4lop
-3f4loß
-3f4lot
-flo2w
-f3lö
-4flöf
-f4lög
-f4löß
-f4löz
-3f4luc
-f3luf
-3f4lug
-3f4luss
-f4lut
-flut1o
-f3lüm
-fly1
-2fm2
-f3ma
-fma3che
-fma2d
-2f1n2
-f3na
-f3ne
-fnerz2
-f3ni
-fni2s
-f1ob
-fo2be
-4fober
-fob2l
-2f3of
-fo4fe
-3foli3
-3fon
-fo2na
-fo4nan
-fon3au
-fon3dr
-foni2e
-fo4n1in
-fo2nop
-fons4
-fo2nu
-f1o2p
-fo3po
-4f3org
-fo3rin
-3form
-for2m3a2g
-for4mas
-for2m3ei
-for2min
-forni5er.
-for4st
-3fortb
-for2t3ei
-for2ter
-for2th
-for2t3r
-fort3s2
-for3tu
-for2u
-fot4r
-2föf
-fö4fe
-2f1ök
-2f1öl
-för4s
-2fp2
-f3pf
-f3pl
-fp4lu
-2fq
-f2r2
-f3ra.
-frach4tr
-2f3rad
-2f3rah
-fra4m
-fr4an
-f3rand
-f3rap
-f3rase
-fras3ta
-f3rat
-3frau.
-f3rauc
-2fräd
-3f4rän
-2fre.
-f3rec
-f3red
-4fref
-f4rei.
-f3reic
-f4reie
-frei3f
-f4reig
-frei3k2
-4frein
-2frek
-2f3rep
-f4req
-f3resi
-4frest
-3f4reu
-2f3ric
-fricht4e
-fri3d
-f4ri2e
-f5rieb
-f5rief
-2frig
-f4ri3k
-2f3rin
-f3rip
-fr4is
-f4risc
-f4rist
-2f3roc
-f3rok
-2frol
-3f4ro2n
-fro4n1a
-f4ror
-f4ro2s
-f3rot
-f3roz
-frös2
-f3ru
-f4ruc
-f3rü
-2f1s
-f2s1al
-f2sa2n
-fs3ane
-f4s3ar
-f2s1a2s
-fsa2t
-fs3ate
-f2saut
-fs2än
-f3sc
-f4sca
-f4sce
-f4schan
-f4schef
-f4schro
-f4scr
-f2s1e2b
-fse2ei
-fs1ehr
-fse2n
-fs1en1e
-f2s1ent
-f2s1er
-fser2u
-fse4t
-f2s1eta
-f2s1i2d
-f3s2ky
-f2s1o2
-f3soh
-f3sol
-fs2pa
-f2s3pas
-f2sph
-f3s2pl
-f3s2por
-fs2prä
-f2spre
-f2spro
-fs2pul
-fs3s2
-fss4h
-fs2t
-f4st.
-fst2a
-fs3tak
-f2stas
-f3stat
-fs3tät
-f2stäti
-f2stech
-fste2i
-f3stel
-f3stern
-fs3th
-f2stip
-fs4tor
-fst4r
-f2s3tres
-fs3trü
-f2stüte
-f2s1un
-f3sy
-2ft
-f4ta.
-ft1a2be
-ft1abl
-ft1af
-ft2ag
-ft1ala
-ft1an
-f2t1ap
-ft1a2r
-ft3att
-f2t1äu
-fte2c
-ft1eck
-ft1edi
-ft1eh
-fte2he
-ft1eig
-ft1ein
-ft1eis
-ft1eli
-fte3ma
-ft1emi
-f4t1ent
-ft3erfü
-ft1erk
-f2t1erl
-fter2le
-f2t1erz
-f4t1eti
-f2t1ex
-f2t1h
-f4t3hei
-f2t1id
-f3tik
-f2tim
-f2t1in
-f3t2ing
-fto2
-f2t1of
-f2t3ot
-f3t4ran
-f2tres
-f3treu
-ft4rit
-ft3ro
-ft4ru
-ft5rud
-ft5ruh
-ft2s1
-ftsa2g
-ft4sam
-ft3s2c
-ft4sche
-ftse2
-ftsen1
-ft3st
-ft4staf
-fts3tät
-ft4stei
-ft4stem
-ft4stier
-ft4streu
-f2tum
-ft1urk
-ft1url
-f3tü1
-f4tüb
-ftwa4
-ft3z2
-ftze3d
-ftz4w
-3fuc
-3fug
-fugi3
-3f2uh
-fuku3
-fulb4
-f1um1
-fu2mei
-f2umm
-2fums
-fun2d3er
-2f1unf
-fung4
-2fungl
-2f1u2ni
-fun2k3l
-fun2ko
-fun2k3r
-fun2ku
-4funm
-4funr
-4funt
-f2ur
-furch2
-fu4re.
-2f3url
-fus2sa
-fus2s3p
-fus2st
-fu2ß1er
-3fut
-2füb
-fühl2sc
-fün2
-fü2r
-2fv
-2fw
-fwur2
-2f1y
-2fz
-fz2a
-fzeiten4
-fzei4tend
-fz2ö
-fz4wi
-1g
-3ga.
-2gabf
-2gabg
-2g1a2b3l
-gab2o
-gab4ri
-2gabsc
-g2abt.
-2gabtr
-ga3bu
-2gabw
-2gabz
-ga1c
-gade2r
-ga3d2i
-gadi4e
-ga2dr
-gae2
-ga3fl
-3gag.
-ga3k
-ga4kt
-ga4ku
-gal2a
-2g1alau
-2g1alb
-g1alg
-gal3lo
-2g1alp
-2g1alta
-2g1altd
-g1a2lu
-ga4mec
-gam3ma
-3g4amo
-2g1amt
-g1a2na
-2ganal
-gan3d2
-2ganf
-2ganga
-2gangeb
-gan2gr
-gang4sp
-gan2g1u
-2g1ank
-2ganl
-2ganmu
-3gano
-ga2nob
-2ganr
-gans2
-g2ans.
-2g1ansi
-2ganst
-2ganw
-ga1ny
-2g1anz
-ga3pe
-2g1app
-3gar.
-g2ara
-2garc
-3g2ard
-ga3ret
-ga3r2i
-2g3arm
-ga3r2o
-gar2s
-2g1arti
-ga3ru
-2g1arz
-g2as.
-ga2sa
-ga4s3al
-ga4sam
-gasche2
-gase2
-ga3se.
-ga2sei
-ga2sel
-ga2se4m
-ga2si
-ga2sor
-gas3pe
-gas3s2
-3g4asse.
-g3asses
-4gassess
-ga2st
-ga4ste
-gas4t3el
-ga4str
-gast3rä
-ga3t2a
-2gatm
-gat4r
-gau1c
-2g1auf
-2g3aug
-g2auk
-gau3ne
-2g1aus
-2g1aut
-ga3z
-gäm3
-2g1äp
-gär3th
-2g1ärz
-gä4st
-2g1ät
-gä4us
-2gb2
-gber2
-gbi2
-gb4ri
-gby4t
-2g1c
-2gd
-g3d2ad
-gda3de
-g2d1ak
-g2d1an
-g2d1au
-gdä1
-g2dei2
-gd1els
-g2dent
-g2d1er
-g2d1et
-g2d1in
-g2dop
-gd3re
-gd3ru
-gd3s2
-gdt4r
-ge3a2
-ge4at.
-ge4ate
-geb2a
-3gebä
-ge4bb
-3gebi
-ge3ble
-geb2lin
-geb4lo
-gebot4
-ge4bt
-3gebü
-ge1c
-ge3ck
-ge1e2
-ge3ec
-ge2es
-geest3
-ge3fa
-2gefak
-3gefä
-4g1eff
-gef4l
-gef4r
-gege2n
-gegene4
-gegen3s4
-ge3g2l
-geg4r
-3geha
-3gehä
-geher3l
-ge3ho
-ge4hs
-ge4ht
-ge3hur
-2g1eid
-ge4ie2
-ge4ig
-ge1in
-ge2inf
-gein2h
-gein3i
-2g1einr
-gein2s
-gein2v
-ge1ir
-2g1eise
-gei3sh
-geis2s3c
-gei2st
-geist3r
-ge4iz
-2gek.
-ge2lanz
-gelb1r
-gel2b3ra
-gelb3s
-3ge4ld
-gel2den
-gelder2
-gel4derh
-gel4ders
-ge3lec
-gele3cke
-ge2lef
-2g3e2lek
-2gelem
-gelen1
-ge2lene
-geler3l
-geler3ö
-ge2l3ers
-ge2l1ev
-gel3f
-gel1i4m
-gel3la
-gell2i
-gel2ö
-gel3sa
-gels2p
-gels2t
-gel3ste
-gel3sz
-ge4lt
-gel2ta
-gelt4r
-gel3z4
-gem2
-ge2ma.
-ge3mau
-gem4e
-4g1emp
-gem3s
-ge3mu
-3g4en.
-ge3na
-ge4n1ac
-ge4nad
-ge4nak
-ge4nal
-ge4nam
-ge4nap
-ge4nar
-ge4nat
-2genda.
-gend3in
-2g3endmo
-gen2d3r
-gen2eh
-gen3eid
-2generg
-ge2n3ern
-gen4erwe
-gener2z
-ge2nim
-gen3k4
-gen3n
-3geno
-ge2noc
-ge4nr
-gen4sam
-gen4semb
-gen3sk
-gen3sz
-gen3tä
-2gentf
-gen3t2h
-gen3tr
-2gentw
-ge1oo
-geo2ri
-g2ep
-ge5pfi
-ge3pl
-ge3po
-ge1ra
-ge2ra2b
-ge2rak
-ge2r3al
-ge3rann
-ge2rant
-ge4r3a2r
-ger2as
-ge4rb
-2gerdg
-ge3rem
-ge2rene
-ge2reng
-ge2ren2s
-ge2r3ent
-ger2er
-gerin2d
-gerin4f
-ger2inn
-gerin2t
-2ger2klä
-g3erlas
-3g2erlä
-ger3no
-2g1ernt
-ge1ro
-ge2rob
-ge1r2ö
-4g3erprob
-ger2sat
-2g3er2seh
-ge3r2u
-ger2zeu
-ge1s2
-g4es.
-ges3auf
-gesch4
-ge4sche.
-ge2s3eb
-2g3e2sel.
-ges3elt
-ge2s3er
-ge3sha
-ge3si
-ges3k
-ge3so
-ges3s2a
-ges3se
-ges3s4t
-gest2
-gest4a
-ge3stak
-ges4tan
-gest4e
-ges4tem
-ge4s3ter
-ges3th
-ges4tier
-ge2s3tur
-ge3t2a
-ge4tang
-ge4tant
-g1etap
-ge2thi
-ge5tri
-ge3t4u
-ge5tun
-2g1e1ul
-ge3unk
-ge1urt
-ge3u4t
-ge3we
-2g1e2x
-2gf2
-g3fe
-gfi2l
-gf4rü
-2gg
-gga4t
-g3ge
-gge2ne
-gge3sa
-ggi3e
-gg2l
-g3gla
-g3glo
-g2g3n
-gg4re
-gg5re.
-ggs2
-2g1h
-gh2a
-3ghale
-gh2e
-gheit4
-3g2het
-3g2hie
-gh1l
-gho3re
-3gh2r
-ghs2
-gh3sc
-g2hu
-gh3w
-gi3alo
-gich2
-gicht1
-gi2e
-gi4eb
-gie3g
-gie1i
-gie3l
-giel2a
-gie5n2e
-gi4eno
-gi3ens
-gie3res
-gi3ern
-gie1st
-gift5s
-gi2gu
-gi2kel
-gi2me.
-gi4mes
-gi2met
-2gimp
-2gin2d
-gi3ne
-2g1inf
-4gingeni
-2gin2h
-g1i4ns
-gin2sa
-2ginsf
-2g3int
-2gin2v
-gi2ob
-2giok
-2g3isel
-gist4
-giste4
-git2a
-gitt2
-gitt4e
-gi3tu
-gi4u3s
-2gj
-2gk2
-gk4ne
-g3ko
-gl2
-2gl.
-2g1lab
-2g1lac
-2gladu
-2g1lag
-2g1lam
-2gland
-gla2s1c
-glas3p
-glas3t4
-gl4at
-3g2laub
-2g1lauf
-2gländ
-3gläs
-2gläuf
-gl3b
-g2le
-2g3le.
-3glea
-2g3leb
-g3lec
-3gled
-g3lee
-2g3leg
-2gleh
-g4leic
-4g3lein
-glei4st
-gleiter6sc
-glei4t5r
-g3len
-4glenk
-4g3ler
-glerei2
-2gles
-3gles.
-g3lese
-g2lia
-2glib
-3g2lid
-3g2lie
-4g3lieb
-2glif
-g2lik
-4glil
-g2lim
-2glin
-g2lio
-2glis
-g2lit
-g3lite
-g2liz
-g3lize
-g2loa
-g2lob
-g2loc
-2g3loch
-g5loks
-g2lom
-g2lop
-2glorb
-2glos
-g2lot
-2glöch
-2glös
-2glöw
-2gls
-g1lu
-2g3luf
-2gluk
-2g3lun
-g2lut
-3g2lü
-g3lüg
-2glw
-3g2ly
-2gm2
-gmen2tr
-gmi2s
-g1n
-2gn.
-g2n2a
-g4na.
-2gnac
-g4nad
-2gnah
-gn4al
-gna2ler3
-2gnanl
-3g2nä
-2gnb
-2gnc
-2gnd
-gn2e
-g3neh
-2gn3ent
-gne2tr
-gneu1
-2gnf
-2gng
-2gnh
-g2nie
-g2nif
-g4n1in
-2gning
-2gnint
-2gni2s3
-gnise2
-2gnk
-2gnl
-2gnm
-g2no
-3g4non
-gno1r
-g3not
-2gnp
-2gnr
-2gns
-2gnt
-2gnu
-3g2num.
-g2nü
-2gnv
-2gnw
-g2ny
-2gnz
-3go.
-go2a3
-go4al
-g1ob
-gobe3l
-2go4bj
-g2ob2l
-go4b2s
-go4ch
-goe3
-2g1of
-go4fe
-2gog
-go4gh
-2g1oh2
-goh3ren
-go1i
-gol2a
-gol2da
-gol2fr
-go4mn
-3gon.
-go4nat
-go4nd
-gon2e
-3gons
-3g2opa
-gopf4
-go2pos
-2gopt
-gor2a
-2g1o4rd
-g1org
-go4rt
-3gos
-go2si
-go2sp
-go4ss
-go1ste
-4g1osz
-go3th
-go4tt
-got4terb
-got4t3erg
-3gou
-go1y
-gö4fe
-g1öl
-3göt
-2gp2
-g3pf
-gp4fu
-gp4la
-g3ps
-g3pü
-2gq
-g2r2
-g4r4ab
-gra2ba
-gra2bi
-gra4bl
-2g3radl
-2g3rah
-g3rai
-2g3rak
-gr4al
-gram1
-grammen4
-gram4m5end
-gram4mer
-g3rand
-g4rande
-2gra2r
-grar1e
-gra3rie
-gra4s3a
-gra4sh
-gra4sp
-gra2st
-2g3raub
-grau5f
-2graum
-grau3sk
-2gräd
-g3rän
-gräs1c
-g3räu
-2gre.
-g4reb
-2g3rec
-g3rede
-g4ree
-2g3ref
-gre2fr
-2grege
-2g3reic
-grei4fr
-2g3reih
-g3reim
-g3rein
-g3reit
-3g4rem
-3g4ren
-4g5renn
-gre3no
-gren4z3ei
-grenz3w
-g4rer
-2g3rese
-g3ret
-g3rev
-2g3ric
-gri2e
-4g3riem
-g3riese
-2grig
-gril2la
-4g3ring
-4g3rinn
-gro2b3a
-gro3ber
-gro2bl
-gro2b3r
-2groc
-2groh
-2g3rol
-gr4om
-2g3rose
-g4ross
-gros4sel
-g4roß
-g4rot
-2g3röc
-2gröh
-2gruf.
-g4ruft
-2g3ruh
-g3rui
-2g3rum
-grunder5n
-grun2g
-3grup
-4g3rut
-2g3rüc
-2g2s1
-gsa2
-gs3ab
-g4sac
-g5sa3ck
-gs3a4k
-g3sal
-g4s3alb
-g4sall
-g4salm
-g4salt
-gs2am
-g4s3ama
-gs3amb
-g4s3amp
-gs3a4p
-gs3ar
-g3sat
-gsa3te
-gsau2g
-gsau4r
-g3säu
-g3s2c
-g4sca
-g4s3ce
-gsch4
-g4schef
-gs4chi
-g4scl
-g4sco
-gse2
-gs2e3h
-g3s4eil
-gse4kl
-g3sel.
-g4sela
-g3seln
-gs3em
-gsen1
-g4ser
-g3sere
-gs3er1i
-g4se4s
-gse4t
-g4seu
-gsfi2l
-gs3ha
-gsi2d
-gs3i2k
-g3s4il
-gs3io
-g4s3ita
-gs2ki1e
-gso2
-g4so4b
-gso4f
-g3sol
-gs4on
-g4s3op
-g3s4oz
-gs3p
-gs4pac
-gs4pant
-g3spei
-g3spek
-g4spf
-g3spi
-gs4pir
-g4spl
-g3s4port.
-g4spru
-gsrü2c
-gs3s2
-gss4t
-gss4w
-g4st.
-gs3ta
-g3s4tad
-g4stag
-g3s4tan
-gs6tand
-g4stanz
-g3star
-gs4tati
-gst1au
-gs3tä
-g3steh
-g3s4tein
-g3st2el
-gs4tell
-gste2r
-gst3err
-g1steu
-gs2thy
-g3stif
-g3stil
-g3stim
-g3stir
-g3sto
-g4stoch
-g4stod
-gs4tof
-g4stor
-gs3tö
-gs4tör
-gst3reit
-gs3t4res
-g4s3treu
-gs4t3rit
-gst3ros
-gs3trü
-g3stun
-gs3tü
-gs4uc
-gs3un
-g3sy
-gs4ys
-2gt
-g3te
-gtei3s
-gt1h
-gt2hy
-gt2i
-gti2m
-g3to
-gt4ra
-gt2s
-g3tü
-gu4ale
-gu3am
-gu1ant
-gu1as
-gu1c
-gu4d3r
-gu2e
-2gued
-guet4
-2g1uf
-gu4fe
-2g1uh
-gu3ins
-gu1is
-gum4e
-3gumm
-gummi1
-gun2e
-2g1unf
-gunge2
-2gungew
-2gungl
-2g1u2ni
-2g3unk
-2gunr
-gun2s
-2gunt
-gure4
-2g1url
-gur2t3h
-gur2tr
-gurt3s
-gu2s
-gu4s3a
-gu3sc
-guschi3
-gu3se
-gus3se.
-guss1o
-gus2sp
-gus2st
-gu4st
-gust3a2b
-gus3te
-gus4t3en4d
-gus4terl
-gus4tr
-gu2t
-gut1a
-gut3er2h
-gut1h
-gut2s3p
-2güb
-3gür3
-gü2s3
-2gv
-2gw
-gy2a
-gy3n
-gy4na
-2gz2
-gzeu2gi
-g3zh
-2ha.
-hab2a
-hab2e
-h3abf
-hab2i
-h1ablu
-2habn
-h1a2br
-h1abs
-2habw
-ha2ch3en
-ha2cho
-hacks4
-2hada
-ha2del
-h1adle
-h1a2dr
-ha3dri
-2hae
-ha3el
-ha4far
-haf2e
-h1affä
-haf3f4l
-h2aft
-haf4to
-haf2tr
-haf4tre
-haft4s3p
-hag2a
-h2agg
-h1ah
-ha3ha
-h2ahs
-h2ai
-3hai.
-h2aj
-2haka
-ha4kes
-ha3kl
-2h2al.
-ha3l2al
-halan2c
-h1a2lar
-ha2lau
-hal2ba
-hal4bel
-hal2bin
-hal2b3r
-hal2bu
-2hale
-2halh
-hal2i
-hal2l1a
-haller2
-ha3lo
-4halp
-hal4sk
-hal2sp
-hal2st
-hal2tal
-hal2tei
-hal2t5r
-hamot4
-hampi4ons
-2h1amt
-h2an.
-2hana
-ha2nal
-ha2nan
-han2au
-2hanb
-h2anbe
-h2and
-han2da
-han3den
-han2d3er
-han2d3r
-hand3s
-ha2nem
-hanf1
-han2fl
-han4g3end
-han2gro
-han2k1
-2hanl
-2hano
-2hanr
-h1ansc
-2hanz
-2h1ap
-3h2ape
-ha2pl
-ha2po
-ha2pr
-ha3ra
-h1a4rab
-2harb
-2harc
-h2ard
-har2fr
-h1arm.
-har3ma
-h2arme
-har2me.
-har4ne
-ha2rom
-2hars
-har2th
-h1arti
-har4tr
-h2arts
-har2za
-h2as
-2has.
-2ha3sa
-has4c
-has2h3
-has2p
-has4sa
-has2ser2
-has4s3t
-ha2str
-h1a2ß
-ha2ta
-hat2i
-h3atl
-ha2t3r
-2hats
-hatt2
-hat5tr
-h1audi
-h1aufb
-hau3f4lie
-hau3f4lo
-2h1aufm
-h1aufs
-h3au3g2
-h1aukt
-hau2sa
-hau4san
-hau2s1c
-h2ause
-hau2sel
-hau4s3ent
-hau2spa
-hau2spe
-haussen4
-hau2sur
-hau2t1a
-hauten4
-hauto2
-hau4t3r
-ha2ve.
-havil2
-häde2
-h1äff
-2häi
-hä2kl
-2h1ärz
-hä4s3chen
-2h1äst
-2häug
-häu2s1c
-hä3usp
-2hb2
-hba2ras
-hber2e
-h3bo
-hb4ri
-2h1c
-2hd2
-hdan2
-hdä1
-h3ds
-2hea
-he2ad
-he3as
-heb3eis
-he2b3l
-he3bla
-he3ch2e
-he1cho
-h3echs
-hed2g
-he2dit
-he1e4m
-he1e2n
-he2en.
-hee2s
-he1e2t
-h2ef.
-he2fan
-he2fau
-he2f1ei
-hef2em
-hef3erm
-2heff
-he2fid
-he2f3in2g
-he2f5le
-2hefr
-hef4ra
-he2fre
-3heft
-he2fu
-he2hel
-hei4a
-h4eib
-h1eie
-h1eif
-hei4fr
-h1eig
-he2im
-hei2mal
-hei2man
-hei2mei
-heim3p
-hei4mu
-2hein
-hei4na
-heine2
-hei2n3eb
-hei2neh
-hei4nene
-hei2n3er2
-he2inf
-h3einsp
-2heio
-2he1ism
-he1ist
-h2eit
-he3i4ti
-heit2s3
-h1eiw
-hekt3a
-he2la
-he3lag
-hel1an
-hel3au
-hel1ec
-he2lek
-h3elem
-h2elf
-hell2a
-hel2l3au
-helm1a
-hel2man
-hel2mei
-he3lo
-he4lof
-hel2or
-he2lö
-helsau2
-4helt
-h4em.
-2hema
-hem2b
-1hemd
-2heme
-h2em2i
-h3e2miss
-1hemm
-2h3emp
-h2en.
-he4n3a2
-he2nä
-hen3ebe
-henen1
-hen3end
-he4nene
-he4nens
-he4nenz
-hen3erg
-he2nerm
-he2n1e4t
-2henga
-hen2gag
-hen2kan
-hen2kau
-2heno
-heno3t
-hen2sem
-henst2
-hen3str
-hent2a
-hen2ter
-hen5tr
-h1ents
-2hentw
-h3entz
-he4n3u
-hen3z2
-2he2o
-he3on
-he3op
-heori2e
-h1e2pi
-h1epo
-hept2
-h2er.
-her3a2b
-he2rad
-2herap
-he4r3a2r
-herau2
-herb2
-her3c
-her2dri
-h2ere
-he2r1e2b
-he2reck
-her2eif
-2he3reig
-herein3
-he4reis.
-her5eises
-he2rel
-he2rene
-herer3s
-he4rersc
-he2rerw
-h4erfam
-h1erfo
-her2fol
-herg2
-4her4gebn
-he2rid
-heri2e
-4herif
-herin2d
-herin4f
-he4rin4nu
-herin2s
-herin4ter
-h1erke
-her2klä
-h3er4kran
-h4erlad
-2herm
-h1ernt
-he3ro
-he4r3o2b
-he4rof
-he4rop
-he4rot
-h1erör
-hers4k
-her3sta
-hert4
-her3th
-her3um
-he2rut
-h1erwä
-her2zap
-her4zeng
-her2zer
-h3erzeu
-her2z3w
-he3s2a
-2hese
-he3si
-hesi2e
-hes4p
-hes4ser
-hes6tän
-hes6tro
-hes6trö
-hes6tüc
-he2tap
-hete1
-heter2
-het2i
-he3t2s
-he2u
-heu3g
-h3eule.
-he3unt
-3heusc
-he1x4a
-2hexp
-hey2
-he1ye
-1hè
-2hf2
-hfaller4
-hfan2
-hfel2l3
-hfi2s
-h3fl
-hf4la
-hflei2
-hf4rü
-2hg2
-h3ga
-hga2s1
-h3gr
-hg4ru
-h3gu
-2h1h2
-hhoh2
-2hi.
-2hia
-hi2ar
-h1iat
-2hic
-hi1ce
-hich4t3er
-hicht4sp
-hi3d
-hi4db
-hi4dd
-hid4e
-hi4dio
-2hido
-hi2e
-hi3ens
-hie2rei
-hier3i
-hie2rin
-hiers4
-hif3f4r
-hi2k3r
-hi2l3a4
-hi3l4au
-hilen2
-hil2fr
-hili2e
-h2im
-2hima
-h3i4mit
-h4imm
-h3impe
-h3impl
-hi2n
-hi3nak
-hi3n2am
-hi3nap
-hi5n2as
-hinau2
-hine2i
-hi3nel
-hin2en
-h1inf
-h1inh
-2hi3n2i
-hin3n2
-hi3n2o3
-hin3s2
-hin2t1a
-2hio
-hi3ob
-hi4on
-hio3p
-hi2p3
-hi4pl
-hips2
-hi4pu
-hi2r
-hi3ra
-hir3b4
-4hi3re
-hi3ri
-hir2m1a
-hir2mi
-hirn1
-hir2ner
-hir2s
-1hirt
-2his.
-his2a
-hi2se
-h1i2so
-his2p
-hi3tac
-hi3th
-hi3t2i
-hit1r
-hit3z2e
-hi2v1o
-2hj
-2hk2
-hkamp2
-h2keu
-hki2n1
-h3kl
-hklat3
-hk4ne
-h3kö
-hk4re
-2hl
-hl2ag
-hla2gr
-hlan4d3a
-hl1ans
-hl1anz
-h1las
-h1lat
-h1laut
-h1lay
-h3läche
-h4läf
-hl1är
-h1läs
-h1läu
-hlb4l
-hl3d2
-hld4a
-hld4r
-h3le.
-hle3a
-h3leb
-h3led
-hle3e
-h2leis
-h3leist
-hl1el
-h5len.
-hle4nas
-hl2enn
-hl3entr
-h2lents
-hl2enz
-h3ler
-hle2r3a
-hl2ere
-h2lerg
-hler2hö
-hl2erk
-h6l3er2nä
-hle3run
-hl1erw
-h4lerz
-h3les
-h4lesi
-h4leud
-h2lie
-h3lied
-h2lif
-h2lim
-hl1ind
-hling4s
-h2lip
-h2lis
-h2lit1
-hl3l2
-hl3m2
-h2lo
-hl1ob
-h3loc
-hl1o4f
-h3log
-h4lor
-hlo2ra
-h5lorb
-h3los.
-h3losi
-h4loss
-hlos4st
-h2lös
-hl2sal
-hl4sar
-hl2ser
-hl3ska
-hl3slo
-hls2tec
-hl3s4tern
-hls3tie
-hl5str
-hl2su
-hl3t2
-h3luf
-h3luk
-h3lumpe
-h1lüf
-hlz4w
-2hm
-hm2a
-hm3abl
-h3mad
-h3mag
-h3m4ak
-h3man
-h2mant
-h3mar
-h4m3arc
-h3mä
-h4mäc
-h4mäh
-h4mäl
-hm2e
-h3me.
-h3med
-hme1e4
-hmeer2s
-h3mein
-h3meise
-h3meld
-hme3le
-h3men
-hmen2s
-hmen4s3p
-hme2ran
-hme2rei
-hme2rid
-hme1s2t
-hm3estr
-h3mex
-hmi2e
-h3mind
-h3mirr
-h3misc
-h2mo
-h3mop
-h3mot
-h3m2ö
-h4mök
-h4möl
-hm3p2
-hm2s
-hm3sa
-hms3p
-h2mu
-h3mul
-hmut4s
-h3my
-2hn
-h2na
-hna2c
-h3nag
-h3nam
-h4nar
-hn3a2te
-h4natt
-h3nau.
-h2nä
-hn1äh
-hn1är
-h3näs
-hn3d
-hnd4r
-hn2e
-hne3b
-hne2e3
-hn3eff
-hn3eig
-hn3ein
-h2nel
-hne4n
-hn4eng
-hne4pf
-h3ner
-hner2de
-hner3ei
-h4n3e2ro
-h4n3ersa
-hn3eur
-hn3ex
-hn3f2
-hnf4l
-hnflei4
-hnhof6stras
-h2nic
-h2nid
-h2nie
-hn1im
-hn1in
-h2nip
-hni4sa
-hnk2
-hn1ob
-h2no2r
-hnra2
-hns2
-hn3sa
-hn3sp
-hnst2
-hnsuch2
-hn2th
-hnts2
-h2nul
-h2n1unf
-hnz2
-h4oben
-ho3bern
-ho2b3l
-ho2ch3
-ho4cha
-ho2cka
-ho4ckerl
-2hocy
-2hod
-2ho2e
-hoe3n
-ho3er
-ho4f3a2
-ho4fä
-ho4fed
-ho4feu
-hof3f4a
-hofi4
-ho4f3l
-ho4f1o
-ho4f3r
-ho4fu
-ho4fü
-2hoi
-ho2l1a2
-hol3ar
-hol3dr
-1hole
-ho2l1ei
-ho2lem
-hol3g
-holin4
-hol3k
-hol3l4
-hol3s
-2holy
-h3olym
-1holz
-hol4zene
-hom2e
-ho4me.
-ho4mec
-ho4med
-ho4mel
-h2on
-hon2er
-honi2e
-ho1on
-hoo2r
-2hop
-ho2pe
-ho1ra
-ho2rak
-h1o2r2an
-ho2rau
-h1or3d
-2hore
-ho2rens
-ho3ret
-hor2fr
-2h1org
-hor3ta
-hor2ter
-h1ortu
-h2os.
-hose2
-ho2sei
-ho3sl
-ho4sla
-2hosö
-ho2sp
-ho3spr
-ho4ßene
-2hot.
-2hotr
-2hot3s2
-ho3un
-hou4s
-2ho2w1
-ho3wer
-h1ox
-ho1y2
-2hoz
-1h2ö
-2hö.
-hö2c
-hö3ck
-2höe
-3höhe
-hörs4
-hö2s1
-h4ösc
-h3öst
-2hp2
-h3pf
-hp4lä
-h3pu
-2hr
-hra2b
-hr3a2c
-hr3ad
-hr1a2g
-h1r4ah
-h1rai
-h3ramp
-h1rane
-hr3ap
-hrau2c
-h3räu
-hr1c
-hr3d
-h2rec
-h3r2ech
-h3red
-h3ref
-hr3eff
-h2r1eh
-h4rei.
-h4reib
-hrei2ba
-hrei2br
-h3reic
-h3reif
-h4r3eig
-hr2eini
-h2reinl
-hrei3th
-h4r3ele
-hren3z
-h3rep
-hrer2fo
-h4rer4geb
-hr2erh
-hr2erk
-h4rerla
-hr2erle
-h4rer4leb
-hrer2lö
-hr2erm
-hrer2sa
-hrer3st
-hrer2tr
-hrer4trä
-hrer4tüc
-hr2erw
-hr2erz
-h3re2s3
-hress4
-hrest2
-hre2t
-h2r1eta
-h2r1eu
-h2rev
-hrg2
-h2ri
-h3ric
-h4rick
-hri2e
-h3riesl
-h3rin
-hr1int
-h4rist
-h3ritter
-hr3m2
-h3rog
-h3roh
-h3ro2l
-h4romat
-h4rome
-h4romi
-h4romo
-h4ron
-h1ropa
-hro4r
-h3rou
-h3rö2s
-hr4s3ac
-hr4s3and
-hr4s3au
-hr2s3em
-hr2sen
-hr2s3er
-hr2set
-hr4sh
-hr2s3in
-hrs5ka
-hrs5kl
-hr4s3of
-hrst2
-hr2su
-hrs3z
-hr2tab
-hr2tan
-hr2te2l
-hr2th
-hr2top
-hrt3ric
-hrt2s
-h3ruh
-hr1ums
-h3rus
-h3rut
-h3rü
-h4rüb
-h2ry
-hrz2
-2hs
-hsa2b
-h4s3acht
-h2s1a2d
-h2s1alk
-hs2alt
-h4samt
-h2san
-hs3and
-h3sann
-h2s1as
-h2sath
-h2sato
-h2saud
-h2saut
-h2säh
-h2säug
-h2schan
-hs4co
-hs2cr
-h3se.
-h2s3ec
-hse2e
-h2s1ehr
-h2s1eie
-h2seind
-h2seins
-hsela2
-hse2lin
-hs1emi
-h2sendw
-hsen3erg
-h2s1ent
-h2s1erb
-h2s1erf
-hs1erg
-h2s1erh
-h2serkl
-h2s1erl
-h2s1ern
-h2serö
-h2s1ers
-hser2u
-h2s1erw
-h2serz
-h2sex
-h3s2ext
-hsha4k
-h2s1i2d
-hs2im
-h2s1ing
-h3s2inni
-h4s3ita
-hs2kal
-h3skand
-hs1of
-h2sop
-hs1or
-hs2p
-h2s3pac
-h3span
-h4s3pani
-hs3par
-hs3pat
-h3spec
-h3spei
-h3sperb
-h2s3ph
-hs3po
-h3spra
-h3spü
-hss2
-h4st.
-h1st2a
-hs3tabl
-h3stad
-h2staf
-hst3alt
-h3stan
-hst3arb
-h2s3tau
-h2s3täu
-h1stec
-h1stei
-h1stel
-h2stele
-h3stemp
-h3s2terb
-h3s2tern
-h1s2ti
-h2stier
-h2stit
-h1sto
-h2stol
-h2stor
-h1str
-hs3treue
-hstro4
-h1stun
-h1stü
-h2s1u
-hs2ung
-2ht
-ht1a
-h2tab
-hta2bl
-h2ta2d
-ht2ag
-ht2akt.
-ht2akte
-h2tall
-h4talo
-h2talp
-h2talt
-h4ta4m
-h2ta2n
-ht3ane
-ht2ank
-h2tap
-h2ta2r
-ht2a2s
-h2t3asi
-h2tasy
-h2t3at
-h3tat.
-h3tate
-h2tau
-h3taum
-h4tax
-ht1ä
-h2tär
-hte2ber
-ht1e2c
-hte3cha
-hte2d
-h2t1ede
-ht1eff
-ht1e2he
-h2teif
-h2t1eig
-h4t3eilz
-h2t1eim
-ht1ein
-h2t1eis
-h2t1eke
-h4t3elas
-hte4l3ei.
-h2telek
-h2t3elfe
-h2telit
-h2t1e4mi
-h2temp
-h4tenga
-h4t3engl
-h4t3en4ta
-h4tentf
-h4tents
-hte3rel
-hterer2
-h2t3erfo
-ht3erfü
-h4terfül
-h4tergeb
-ht3ergr
-ht1erh
-hter4häl
-hter4höhu
-h2terkl
-h4terleb
-h4t3erleu
-h4terneu
-h2t3ernt
-h4ter4prob
-hter4reg
-ht3erspa
-hter4spar
-ht3er2st
-h4tersta
-ht4erstr
-hter4tra
-ht3erwä
-h2t3erze
-h4t1e2se
-h4t1ess
-h4teta
-hte4th
-h2t1eu
-h2textr
-h2t1h
-h4thei
-h3thera
-h3thes
-h4thi
-h4tho
-h2t1i2d
-h2t1im
-h2t1i4n3
-ht3ine
-h2t1is
-hti3t2
-htni2
-hto2
-h2t1ob
-htod1
-h2t1o4f
-h2t3oly
-h2ton.
-h2tope
-h4tord
-ht3rak
-h3tran
-ht3rand
-h4t3ras
-ht4rates
-ht3rau
-h2traub
-ht4raume
-ht3rec
-h3treck
-ht3rei
-h2t3res
-ht3ric
-h4t3rieg
-h4t3rin
-h4t3riv
-h2t3rol
-h2t3ros
-ht3röm
-ht3ru
-ht2sah
-ht2sal
-ht4s3a4n
-ht2scr
-ht2sein
-ht2sel
-ht2s3end
-ht2seng
-htse2r1
-hts3eri
-htsha4
-ht3s2hak
-ht4s3kr
-ht2s1o
-ht2sp
-ht3spen
-hts3tät
-hts4tie
-hts3trau
-ht2stri
-ht2s3tur
-ht2s3tür
-ht2su
-htti2
-htt4r
-h3tub
-htu2e
-h2t1urs
-h3tü
-h4tüb
-ht3z2
-hu2b1a
-hu2b1ei
-hu4bel
-hu2b1en2
-hu2bi
-hu2b3l
-hu2b3r
-hu2bu
-hu1c
-hu4fa
-hu2h1a
-hu2h1i
-hu2ho
-h1uhr
-h1uhu
-hu2kä
-hu2k1in
-huko1
-huk3t2
-hu2l3a2
-hu4lab
-hu2lä
-hule2
-hu2l1eb
-hu2l1ei
-hu2lem
-hu2l3eng
-hu2lent
-hu2l1er2
-hu2let
-hu2lid
-hu2l1in
-hul3l2
-hu2lo
-hu2l3ö
-hul3s4
-hu3m2a
-h1umh
-h1ums
-hu2n
-h1una
-hun3d2e
-hunde3s
-hu3n2e
-2hunf
-hung2
-hun3ge
-hung4s
-h1uni
-2hunt
-h1ups
-2hur
-hur3g2
-hur2t3h
-hu3sa
-hu2so
-hus2s3a
-hus2ser2
-hus2s1o
-hus2sp
-hus2st
-hu2tab
-hu2ti
-hu2t1o
-hu2t3r
-hut2t
-hut3te
-hut2zen
-hut2z3er
-hut2zu
-h2ü
-h3über
-h4übs
-h3übu
-hüf2
-hüft1
-hühne4
-hüs3
-2hv
-hvil2
-2h2w2
-h4wall
-hwe1c
-h3weib
-hwei4fr
-h3weih
-hweins3
-hwein4sa
-hwen2ka
-h3werbu
-h4werp
-hwes3t
-h4wirr
-h3woh
-1hyd
-hy2de
-hy3dr
-hy2lor
-4hyme
-1hymn
-h1yo
-hy3os
-1hyp
-hy2pe.
-hysteri4e
-2hy2t
-2hz
-hz2a
-h3z2o
-hzug4
-h3zw
-hz4we
-iaa2
-i3ad.
-iad2a
-i1adn
-ia3e2
-iaf4l
-i2ago
-ia1h2
-i1ai
-i3ak.
-i3ake
-ia4kei
-i1akt
-i1al
-ia2l1a2
-ial3ar
-ial3as
-ia2lä
-ial3b4
-ial3d4
-i3aleb
-i3alef
-i3alei
-ia3lek
-i3alel
-i3alemp
-i3aleng
-i3alent
-i3alep
-i3alerb
-i3aler2f
-i3alerh
-i3a2lerm
-i3a2l1et
-i3alex
-i3a2lia
-i3alim
-i3a2lin
-iall2i
-i2alo
-ia2lon
-ia2lop
-ia2l1o2r
-ial3p
-ial3sc
-ial3t2
-ia2l3u4
-ial3z4
-i3am.
-iampe4
-i1ams
-i1an.
-i1an2a
-ia2nal
-ian3alt
-ia2nau
-i1anc
-i3and2
-i1a2n1e2b
-ia3n2er
-i1ann
-i1ans
-ian2s3p
-i3ant
-i3anz
-ianza4
-ia1o
-ia2op
-i1ar
-i3ar.
-ia2ra
-i2are
-2i1as
-i3as.
-i4asc
-i4a3sh
-i2asi
-i4aso
-i4a3s2p
-ias3s
-iast4
-i4asu
-i4asy
-i3at.
-i3at2h
-i4athe
-1iatr
-i3ats
-i3au
-ia3un
-i2az
-ia4zz
-2i1ä
-iä4mi
-iär2
-i3är.
-iär3m
-i3är3z
-i3ä4tem
-iä2ti
-iä4tr
-iät3s2
-iät5sa
-2ib
-ib1art
-i2b1auf
-i2b1aus
-i2baut
-ib2bli
-ibe2i
-i2b1eig
-ib3einh
-i2b1eis
-ibel4u
-iben1
-ibe4na
-i4ber4geb
-i2b3er2la
-ibe1ro
-i2bim
-i2b1in
-i2blad
-i2bläh
-ib3leis
-i2bleu
-i3blu
-i3b2o
-i2bö
-ib3ric
-i2b3roc
-ib2ser
-ib4ste
-ib2un
-i2b3unk
-i2b3unt
-ibus1c
-2ic
-i3ca
-ic1c
-ice1
-ich1a2
-ich4art.
-ich1ä
-i1che
-ich1ei
-ich2er
-icherin5
-i1chi
-ich1l
-ich3le
-ich3li
-ich6lor
-ich3m
-ich5mä
-ich3n
-i1cho
-ich3ort
-i2ch3r
-ich2sa
-ich4sele
-ich2s1i
-ich2sp
-i4cht
-ich2tr
-i1chu
-ich3w
-i1ci
-i3cke
-icks2p
-ickt2
-i1cl
-ic3la
-ic3ra
-2ida
-id2ab
-i3d2ac
-id4al
-id1a2n
-i3d2ans
-i3d4at
-id1au
-id2ax
-idä1
-id2e
-i2dea
-1idee
-ide2en
-id3eis
-2idel
-idel4ä
-i2demul
-ide4n1o
-ide3ran
-iderin4f
-iderin4nu
-ide1rö
-id3er4reg
-i3des
-ide5sa
-ide3so
-ides4p
-2idf
-idge3
-1i2di2o
-idi4on
-i4diot
-2idk
-idni3
-i2dol
-2idoo
-i2dö
-i2d3r
-id4rä
-id4rit
-id4ro
-id4ru
-id2sp
-1i2dy
-ie3a2
-ie2bä
-ie2bl
-ie2bri
-ie4b3rü
-ieb4sto
-ieb4stre
-ie1c
-ie2cho
-iech3t
-ie2ck
-ie2d3an
-ie3de
-ie2dr
-ie1e2
-ief3akt
-ie2f1an
-ie2far
-ie2fau
-ie2fäh
-iefe2m
-ie3fer
-ief3f4
-ie2f3l
-ie4fonk
-ief1r
-ie2fro
-ie2gl
-ieg5li
-ie3g4n
-ie2g3re
-ieg4s5c
-ieg4se
-ieg4si
-ieg4s3t
-ie3her
-ie2h1in
-ieh3r2
-i1ei
-iein3
-ie1ind
-i2e2l1a
-ie3lam
-ie4la2r
-ie2läs
-iel3d4
-i2ele
-iel3ebe
-iel1ec
-ie2l3eic
-iel3eid
-ie2lek
-i4elen
-ie2lene
-ie2leng
-iel2erd
-ieler2e
-ieler4fi
-ieler2g
-ieler6lebn
-iel2erw
-ieles4
-i2eli
-ieli2d
-i1e4ll2
-ie2lo2b
-ie2lop
-ie4lor
-i2els2
-iel3sz
-ielt2
-iem2e
-iemis2
-i1en
-i3ena
-ien1a2g
-ien4am
-ie4nas
-ien3au
-i3enä
-i2ene
-ien1eb
-ie2n1e4k
-iener4fo
-iener4la
-i3enf
-i3eng4
-ienge2f
-ienge2z
-i3enh
-ie2nid
-ie2nim
-ie4nin
-i3enj
-i3enk
-i3enm
-i3enn
-i3e2no
-i3enö
-i3enp
-i3enr
-ie4n2s
-i3ens.
-ien3sc
-ien3s2e
-ien3si
-ien3s2k
-ien3s2p
-ienst5ade
-ienst3er
-ienst3rä
-ien3sz
-ien4t3ar
-i3enti
-ien3tr
-ie3nu
-ie4num
-i3env
-i3enw
-i3enz
-ie1o2
-ieo4b
-ieo4f
-ier3a2
-ie2rad
-ie2rap
-ierb4
-i3erbun
-ier3d
-i2ere
-ie2reck
-iere3ins
-ie2r3eis
-ie5rek
-ie3r2er
-ier3erf
-ierer3k
-ierf4
-ierg4
-i3ergi
-i4eri
-ie2rid
-ierin3
-ierk2
-ier3l
-i1ern
-i3ern.
-ier3n2a
-i2erni
-ie2rö
-ier4re.
-ier2s3eh
-ier3sei
-ier3sta
-ier3ste
-ier3te
-iert2i
-ier3z2
-2ies
-ie2san
-i2esc
-i2ese
-iesen3s2
-ie3s4pa
-ie2spu
-ies4serl
-ies2st
-iest4e
-ie2stin
-ie1str
-ie1stu
-ie3su
-ie4t1a2g
-ie2t1ak
-ie2tan
-ie2t1ap
-ie2tat
-ie2tau
-ie4tent
-ie2t3erh
-ie2t3ert
-i4ethe
-iet3her
-ie2t1ho
-ie2thy
-ie2to
-ie2t1ö2s
-ie2t3ri
-ie2t3ru
-iet2se
-i3ett
-iet3zw
-ieu2e
-i2e1un
-ieu1s
-ie2w3u
-i1e2x
-ie3zo
-2if
-i3fam
-if1ang
-if1ar
-i2f3arm
-if4at
-i2f1au
-if1än
-i2fec
-i2f1ef
-ife4i
-if1ein
-i2felem
-ifel2s3o
-if2e4n1
-ifens2
-i2f1erg
-if1erh
-ife2s
-if2far
-if2f3l
-if2fro
-iff2s
-iff4ste
-if1in3s
-i2f3l
-if1lac
-if4lä
-iflo4
-if4los
-i3f4lü
-i2f3r
-i3fre
-i4fre.
-i4freg
-if4rev
-if4rö
-if2s
-if3sa
-if3se
-if3sp
-if3sta
-if2t3a
-if2ted
-if2t3ef
-if4t1ei
-if2te2l
-if2tep
-if2terk
-ifte4s
-if4t3esc
-if4th
-if2t1op
-if2t3r
-if4tri
-ift3sp
-ifts2t
-ift3sz
-if2tur
-i3fy
-2ig
-i2ganb
-i4g1ano
-i2garb
-ig1art
-iga1s
-i2g3att
-igd2
-i4gebrau
-i2gefar
-ige2füg
-3i2gel.
-ige3lau
-i2geln
-ige4me
-ige2mis
-ige4na
-ige4nene
-igener4f
-ige2nid
-ige2o
-ige2pa
-ige2ra
-ig3erwer
-ig1erz
-ige2sel
-ige4spru
-i2g1ess
-ige4steu
-ige2tra
-ige2tre
-ige2woh
-ig3hu
-i2gim
-i2gl
-ig1lau
-ig1län
-i3gle
-i4g3led
-ig3lim
-ig4na
-ig5nah
-i4gnä
-i3g4neu
-ig4no
-igo3p
-i2g3rad
-i2g3re
-i2grou
-ig3s2a3g
-ig4sal
-ig3sä
-ig4scha
-ig4schr
-ig3s2o
-ig3sp
-ig4spa
-igs2pr
-ig3stei
-ig4sti
-ig4s3to
-ig3str
-ig4stras
-ig3s4tü
-ig2t3r
-igung4
-2i1h
-i2hans
-i2har
-ih1auf
-i3he
-ihe1e
-ih1elt
-ihe4n
-ihenk4
-ihe3u
-ih3m
-ih3n
-ih3r2
-ihs2
-ih1um.
-ih3w
-ii2
-i1ia
-i1ie
-i3ig
-ii4ge
-i1im
-i3in
-i1is
-ii4sc
-ii3t
-i1it.
-1i2js
-2ik
-ik1aka
-ikaken3
-i2k1akt
-i2k1alb
-i2k1alt
-ik3amt
-i2k1ana
-i2k1ang
-i4kantei
-ikanten4n
-i2kanth
-ik1art
-ik3att
-i2k1au
-ik1äh
-i2k1är
-i2keb
-ik1ebe
-ike2c
-i2k1ed
-i2k1ef
-i2k1ei
-ike4l1
-ike2n1
-ik1en2s
-ik1ent
-ike2ra
-i2k3e4r2e
-i2k1er2f
-i3kerfam
-i2k1er2h
-i2ker2l
-i2kero
-i2ke3ru
-ike4t
-i2k1eta
-i3ki.
-ik1i2d
-i3kie
-ik1in
-i3kin.
-i2kins
-iki1s
-i2k3l
-ik4län
-i3k4leri
-i3k4let
-ik4lim
-i3klu
-i2kne
-ik3nu
-iko3be
-i2k1off
-iko3p2
-ik1o2r
-iko1s
-i2köl
-ik3rä
-ik3re
-i2kres
-ik3rin
-ik4ris
-i3kro
-i2krö
-iks2
-ik3sa
-iks4t
-ik3ste
-ik3sz
-ikt3erk
-ik4t3esk
-ik2t3re
-ik5tri
-ikt2u
-i2k1uh
-i2kup
-i2kü
-i1la
-i2lab
-i2l1ac
-i2l1ak
-il1a4ma
-il1ana
-il1ang
-i2l1anm
-i2lano
-il1ans
-il2anz
-ilan4zer
-i2larb
-il1asp
-i2l1au
-i3laub
-i3l2aufb
-i1lä1
-i2l1är
-2ilb
-ilb4l
-il2c
-il5chen
-il2da
-il2dä
-ild3ebe
-il2d3en4t
-ild2erp
-ilde2s
-ild1o
-il2dor
-il2d1r
-ild3t
-2ile
-il1e2c
-il1ein
-il1el
-i2l1emb
-i2l1e2mi
-ile3ni
-il1ent
-i2lentl
-i2lents
-i2l1er2d
-iler2ei
-il1erf
-iler2fo
-i2ler2g
-i2l1er2h
-i2ler2kl
-il1err
-i2lerri
-i2l1er2w
-i3l2erz
-ile4th
-il1ex
-ilf2
-il2f3l
-il2f3re
-ilf4s3
-il2gl
-2ilh
-2ili
-ilie4n3
-iliga2
-ili2g3ab
-ilik4
-i2l1ind
-i2l3init
-il1ins
-i2l1ip
-ili3pf
-ill2an
-il2lenn
-il3l2er
-il4lt
-1illu
-il2mak
-il2m1ap
-il2m1au
-ilm1ei
-il2min
-il2m1or
-2ilo
-il2oh
-il4on
-il2op
-i2l1o2r
-i3l2ou
-i3lov
-il1ox
-ils3ent
-ils4to
-ilt2
-il3th
-i1lu
-i2lum
-ilung4
-i2l1ur
-ilü4b
-2ilv
-il2zar
-il2zau
-ilz3erk
-il2zwa
-imad2
-ima1i
-im2al
-im3anh
-im1ans
-i2marc
-im3aren
-i2m1arm
-i2m1art
-im2as
-im4at
-ima2tr
-imat3sc
-ima2tur
-im1aus
-i2maut
-im3b
-1imbi
-i2meg
-im1ein
-i2mej
-i2mek
-i2mele
-i2melf
-im2en
-i2m1er2f
-i2m1er2l
-i2m1er2z
-i4me3sh
-imes3s
-i2meti
-i2mew
-imhau2
-i2mid
-im1i2de
-i2mim
-i2m1ind
-i2minf
-i2m1ins
-im2mei
-immen1
-im2m3ent
-1immo
-im2mor
-2imo
-i2m1ob
-i2mop
-imo3re
-i2mö
-1imp
-imp2fa
-im3pf2o
-imp2s
-im3pse
-im3sph
-2imt
-imt2e
-im3t2i
-imt3s2
-imtu2
-2imu
-im2um
-im1urk
-2in.
-ina2be
-in3abu
-in1a2c
-i4nack
-in1ad
-i3nald
-inaler2
-ina2lin
-in2alp
-i2n1am
-in2an
-in3an.
-in3ana
-in3ann
-i5nar.
-in2ara
-i2narb
-inas4
-i4n1asb
-in3att
-i2n3au
-2inä
-i2n1äh
-in1äs
-2ind.
-inda2
-ind2ac
-in2dal
-in2dan
-2indä
-2inde.
-2inden
-in2dene
-inderer4t
-inder3t
-inde3sp
-1index
-in4dh
-ind2i
-1indik
-in3dö
-2indr
-ind3se
-ind2spe
-1indus
-in3d2ü
-2ine
-in1e2c
-i3nee
-ine2en
-i2neff
-in2elen
-ine2n1
-ine3nä
-i2nener
-inen3s
-i4nen2zy
-ineo4
-i3ner.
-i2n3erbi
-in2erha
-i2ner2he
-in3erle
-i4ner4leb
-iner2lö
-i2nersa
-i2n3er2tr
-iner4trä
-i3nes
-inesi2e
-i4nesk
-ines2t
-in2et
-in1eu
-ine3un
-i3né
-in3f2
-1infek
-1infiz
-4inflü
-1info
-inf4r
-2infre
-2inga
-in2g1af
-in2g1a2g
-in2g1al
-in2gam
-ing1ar
-2ingä
-3ingeni
-in3g2er
-in4g3er2w
-inges4
-2ingi
-2in2gl
-2ingr
-2ings
-ing4sam
-ings4por
-in4gt
-2inhaa
-1inhab
-4inhaltu
-2inhar
-2inhau
-2inhe
-2ini.
-in2id
-ini3de
-2inie
-2inig
-inig2a
-ini3kr
-2inis
-ini3se
-init2
-i3nitz
-3inkarn
-inkels4t
-in2k3ent
-ink4er
-in2kro
-in3k2ü
-inma4le
-2inn.
-in4nas
-inne4n
-2innl
-in2nor
-1innta
-2ino
-in1od
-ino3e2
-in3ols
-in1or
-ino1s
-i3no3t
-i2n1ou
-i1nö
-in1ö2d
-2inr
-2ins.
-ins2am
-in4samt.
-in3sat
-insch2
-2inse.
-in2seb
-2insed
-2insen
-2insk
-in3skor
-in4sl
-in4sm
-in3sof
-ins2p
-3instal
-in2s3tät
-4inst2e
-ins2tec
-in3s4tip
-3instit
-2instra
-in2st3ro
-in2strü
-1insuf
-in2s3umw
-ins3umz
-in2sur
-in3sz
-2inta
-2inte.
-1integ
-in3tei
-2intep
-2int2h
-inthi1
-in3ti
-int2o
-2intö
-2in3t4r
-4inträ
-in5tri
-3intrig
-int3s
-i2n1u
-i4nuh
-in3unz
-2inverm
-invil2
-i1ny2
-in3z2e
-inzel4ler
-in3z2i
-in3z2sc
-inz2u
-2i1o
-io3a
-iob2l
-io1c
-io2d
-io3da
-io3e2
-i2of
-iof4l
-i2oh
-i2ok
-io3k4r
-i3ol.
-io3li
-i3ols
-i3om.
-i3oms
-ion2
-i3on.
-ional3a
-ion3an
-io2n3au
-i2onc
-ion3d2
-io4nee
-i2onf
-i4oni
-i3ono
-io2nor
-i3o4ns3
-ion4sa
-i2on3t
-i2ony
-i2o1o
-i2op
-i3o4pf
-iopi3
-i3opt
-i2or
-i3or.
-i3orc
-ior2e
-iore4n
-i3org
-io1r2h
-i3orp
-i3ors
-i3ort
-i3os.
-io3sh
-ios2p
-i2o1st
-ios2u
-i2o3sz
-io3t
-i3ot.
-iote3l
-i4oth
-iot4r
-i3o4ts
-io4tt
-i2ou
-i2ov
-i3ox
-i2oz
-i3oz.
-i1ö2k
-i1ön
-i1ös.
-i1öst
-ip2an
-i3ped
-ip4el
-i3per
-2ipf2
-i3pfan
-ipfe2
-iph2
-2ipi
-ipi3a
-ipi3el
-ipi3en
-ip4lu
-ip2pan
-ip3pe
-ipp3f
-ip4pl
-ip4ps
-ip3pu
-ip2sa
-ip2sei
-ip2sp
-ips3t
-ip4sta
-ip4stü
-ipt2a
-ip2ter
-ipt3ers
-ipt2i
-ipt2u
-2ipu
-2iq
-i1r2a
-i3ra.
-2i3rad
-ir4al
-i3ras
-irat2
-i1rä
-ir1äh
-ir2b3l
-ir1c
-ir2ch3i
-ir2ch1o
-ir2e
-i3ree
-2irek
-ire4na
-ir4er
-i3ré
-irg4s
-ir2i
-2irig
-2irk
-irke4n
-ir2kene
-ir2k3l
-irk4s3c
-irk2u
-irli4n
-ir2m1a2g
-ir2mak
-irm1au
-ir2mä
-ir2m1ei
-irme4n1
-ir2m1o2
-irm4th
-ir2mum
-ir4munt
-2irn
-ir2n3a
-ir4nat
-ir4nei
-ir2no
-i3ro
-i1rö
-irpla2
-irre4l
-ir2rh
-ir2schl
-ir2schm
-ir2sch3r
-ir2sch3w
-ir3se3
-ir3sh
-ir2st
-irt2s3t
-2iru
-ir1u2m
-iru2s1
-i3r2ü
-i2sac
-isa4m3
-i4samp
-i4s1amt
-is2ap
-isa2r
-is3are
-i3sat
-is1att
-i2s3au
-i2säh
-i2s1än
-2isb
-i2sca
-i2schab
-i2schan
-i2schar
-i3s2che
-i4schef
-i4sch3e2h
-isch3ei
-ische2m
-i4schemi
-i4scher4z
-i2schin
-i3sching
-i2sch3l
-i2schm
-isch3ma
-i2schna
-isch3ob
-isch3re
-isch3ru
-i2schüb
-i2schwa
-i4schwir
-i2schwo
-i2sch3wu
-i2schwü
-i2scr
-2ise
-ise3a
-ise1e
-iseh2a
-ise3h2i
-is2eind
-is4eli
-i4sel4ter
-ise2n1
-ise4nal
-is2end
-i2senho
-isen3s
-is2ep
-ise2r3ei
-is1erg
-i2s1erh
-iser2he
-i2s1erm
-iser2u
-i2s1es4s
-is2et
-i2s3etat
-i3seth
-i3s2eu
-2isf
-2ish
-2isi
-i3si.
-isi2a
-i2s1i2d
-isik2
-i2sim
-isin3g4
-isi1s
-i4ski
-i4sku
-is3la
-3islam
-2isma
-2ismi
-ismu2
-is1of
-i3soh
-1i2sol
-2is4o2n1
-iso4nend
-isono2
-i2sop
-is1ort
-3isot
-i2s1ou
-is1o2v
-2isp
-is3pan
-i2spar
-is3pe
-is3pic
-i2spro
-is3sa
-is4s1ac
-is4sau
-is4s3chen
-issen4s5tü
-isseri4e
-isser2s
-is2st
-is3sta
-is3sto
-iss3tr
-is3strä
-is3stu
-is2sum
-is3tab
-ist3a2c
-ist2an
-is3tang
-ist1ap
-i1stat
-is3täu
-is4tb
-is4tc
-is4td
-ist2e
-i1stel
-iste4n
-ister4ras
-i1steu
-is4tf
-is4tg
-ist2id
-i1stil
-istin4f
-is4tk
-is4tl
-is4tm
-is4tn
-is3t4o
-is4toc
-is3tör
-is3tr
-ist4ra
-i3s4tram
-istri3en
-is4tro
-is4tru
-is4ts
-is4tt
-i1stü
-is4tv
-isu2m
-isum3p
-isumpf4
-i2sü
-2isy
-ißer2s
-iß3ersc
-i2ßerse
-it1ab.
-it1abs
-ital3a
-it1alt
-it1a4m
-ita3ne
-it3anr
-ita2po
-it1app
-itar5b
-it1a2re
-it1art
-i3tat
-it1au
-i3tauc
-i2taut
-2itä
-it1änd
-i2t1äs
-ität2
-it1eff
-it1e2he
-i2t1ei
-i4teic
-2itel
-ite4l1a
-i2telek
-i2t1emi
-i2temp
-ite2n
-iten3s2
-i4tents
-i2tepo
-i2t3er2fo
-iterin4d
-i4ter4klä
-it2erö
-i4tersche
-i4t1esk
-i2t1ex
-i3text
-2i2th
-i4th.
-i4thä
-i3thr
-i4ths
-i4thü
-i4thy
-1itia
-i3tic
-i2t1id
-1itii
-iti2kr
-it1in
-i3tis
-i4tiso
-iti3sp
-iti2v5a
-itiver3f
-it3le
-itmen2
-2ito
-it1ob
-i3toc
-i2t1of
-ito2p
-it1orc
-it2os
-2itr
-i5tra.
-i2t3rad
-i3tradi
-it3raf
-it3ras
-it3rau
-it3räu
-it3re
-i4tren
-it4ret
-it3rob
-it3rom
-i2t3run
-it3rut
-2its
-it2sa
-its1a2g
-it2s1e
-itse2h
-its3e2r1
-it4sh
-it4sm
-its1or
-it4stras
-its3trau
-it2sur
-2itt
-itt3ac
-it2tan
-it2teb
-it3ter
-itt3hä
-it2tob
-it2top
-it4tri
-itt4schi
-itt2se2h
-itt2sei
-itt2sp
-itt2sti
-itt4sz
-it1uh
-it1ums
-it2ung
-i2tuns
-ituran2
-it1urg
-itut4
-i3tü
-i4tüb
-ity1
-ityl2
-2itz
-itz3erg
-itz3erl
-itz2erw
-it2zö
-it2z3w
-2i1u2
-i2u3l
-i3um3
-iu4ma4
-iump2
-ium4se
-ium4ste
-i3un2
-i2up
-i3us
-i1ü
-iü4be
-2iv
-i2v1ad
-i2v1a2g
-i2v1ak
-i2v1am
-iv1an
-iv4at
-i2v1ä
-i2veb
-i2v1ef
-iv1ei
-iv1elt
-i2v1ent
-i2v1ep
-ive3re
-iv1erh
-iver4kl
-iv1erl
-iver3s
-ive3s
-i2v1ex
-i2v1im
-i2v1ind
-iv1int
-i3vol
-ivo3re
-i2v1r
-i2vun
-i2v1ur
-i2vü
-2iw
-iwur2
-2i1x
-i2xa
-ix2em
-i3xi
-ixt2
-i1y
-2iz
-iz1a
-iz2ac
-i2zag
-i2zan
-i2zap
-iz2arr
-i3z2as
-i2zat
-i2zau
-i2zä
-i3ze
-iz2ei
-izeits2
-i2zele
-ize2n
-i4zener
-i4zentz
-i4z1erl
-izid3
-iz1ir
-izi4th
-izo4f
-i2zö
-i2zuna
-i2z3w
-i3z4wi
-í1
-ï1
-1j
-j2a
-jab4r
-ja1c
-jah4r3ei
-jahr2s5
-ja3l
-jal2a
-ja4lt
-ja3ne
-jani3t4
-jas2o
-ja1st
-jat2
-2jd2
-jda3
-jd4an
-je2a
-jean2s
-je2g
-jek2ta
-jek2ter
-jek2tin
-jekt3o2
-jektor4
-jek4t3r
-jek6tri
-je3na
-je2p
-je3r
-jer2e
-je4rr
-je4rs
-jes3t
-je2t1a
-je2t1e
-je4t3h
-je2tin
-je4tor
-je2t3r
-jet3s2
-jet3t
-je2t1u2
-je3v
-je3wo
-ji2v
-2jm
-joa3
-jo2b1
-job3r
-jo2da
-jo2i
-jol2a
-jong2
-jo2p3
-jo1r2a
-jor3d2
-jo1s
-jo2sc
-jos4t
-3jou
-jou2l
-2jt
-jty1
-j2u
-ju2b3l
-jugen4
-jugend3
-ju2k
-jul2i
-jung3s4
-ju3ni
-ju3r
-jur4a
-jur2o
-ju4rt
-jus3t
-ju3t2e3
-jutel2
-2jv
-1k
-ka2ans
-ka3ar
-2k1abb
-kab2bl
-2kabd
-2k1a2ben
-2kabf
-2kabg
-2kabh
-2kabn
-2k3a2bo
-2kabr
-2k1a4bs
-2k1abt
-2kabw
-2kabz
-ka1c
-kade2r
-2k1adm
-2k3a2dr
-2kadv
-ka3f4l
-ka3fr
-kaf3t2
-kag2a3
-ka1in
-kaken2
-ka3kl
-kak6lan
-2k1akt.
-4kala.
-kala3b
-ka2l1a2d
-ka2lan
-ka4l3d
-ka4l1eh
-ka2lens
-kal3eri
-k2alk
-kal2k1a
-kal4kan
-kal2k3l
-kall2i
-2k1allt
-ka2l1on
-ka2lop
-ka2l1os
-kal2tex
-kal4th
-ka2lu
-ka4mat
-kamp4f3en
-k2amt
-kan4al
-ka4n1a4s
-ka2nau
-2kanb
-kan3d2
-2kanda
-2kandä
-kan2e
-2kanf
-2kanim
-kank4
-2kanl
-2kanom
-2k1anor
-2k1ans
-k2ans.
-4k3antenn
-ka3nu
-kan2um
-2kanw
-2k1anzu
-2kanzü
-ka2o3
-ka3pr
-3kara
-2karbe
-2karc
-k2ard
-kar3d2a
-3kare
-4k1area
-ka2r3ent
-k2arg
-ka3r2i
-kari3es
-k2ark
-2k1arm
-kar4pf
-k2ars
-k2ar3ta
-k1arti
-2kartik
-karu4
-k2arw
-3k2asc
-kas2e1i
-kasi1
-kas2o
-ka4s3p
-ka2s3t
-2k1ast.
-ka4ste
-kas4tras
-3kasu
-ka3sz
-ka2tab
-ka2tan
-k3atel
-kate2n
-ka3t2h
-ka4t3r
-kat3se
-katt4
-ka4ue
-kau4fer
-kau4f1o
-kauf4s3ag
-kauf2sp
-kauf4sti
-k2aus.
-2k1auss
-2kausw
-kau3t2
-2kauto
-ka3ve
-3kaz
-käl3
-k1ä4mi4
-2k1änd
-kär2
-2k1ärg
-kä2s1c
-käse3
-kä3th
-2kb2
-k3be
-kbo4n
-kb4ri
-kbu2s
-kby2
-kby4t
-2k1c
-k3ch
-2kd2
-k3da
-kd4rö
-ke2ben
-2k1e1c
-ke2di
-2k1eff
-kefi2
-kege2
-kegel3e
-ke2gl
-ke2he.
-ke2hen
-kehr2s
-kehr4s3o
-2k1eic
-2k1eig
-kei2li
-ke2im
-2k1ein
-kein2du
-kein4e
-k1ei1s
-2keise
-keit2
-ke2l1a
-ke3l2ag
-kel3am
-ke2lä
-kelb4
-keld4
-kel3eis
-2ke2lek
-ke2l1en
-ke2l1er
-kel3l4e
-kell2i
-ke2l1o2
-ke2lö
-kel3sk
-kels4tern
-k4elt
-kelt4e
-2k1e2mi
-2k1emp
-k2en.
-ken1a
-ken3au
-ke2nä
-kend4
-ken3dr
-ke2n1e2b
-kenen1
-ke4nene
-ke4nens
-kener2n
-kene4t
-2ken2gag
-k3en4gel.
-ke2nim
-ken3in
-2kenlad
-2kenläd
-kenn2a
-kenn2e
-ke2no
-k2ensa
-2ken2sem
-ken3s2i
-ken3s2k
-ken3s4tei
-ken3sz
-k3en4te.
-k3en2ten
-ken4ten.
-2kentf
-4kentg
-ken3th
-2kentl
-2k1ents
-2kentw
-2kentz
-kenvo2
-ke3ny
-k2enz2
-ke1o2
-2kep
-ke2pl
-k2er.
-ke1ra
-ke2ran
-ke2ras
-ke2rau
-ke2r1ä
-ker2ble
-k2erc
-2kerd
-k2ere
-ke2r1e2b
-ke2rec
-ke3reig
-ker3ein
-k3eremi
-2kerfah
-k2erfam
-ker2fo
-k3er2geb
-2kergu
-ke4rin4nu
-kerin4st
-kerin2t
-k3erken
-k2erko
-k3er2lau
-k3er2leb
-k4erlebe
-ker3m
-ker2na
-ker4nei
-2k3er2neu
-kern3eur
-k1ero
-k2e1rod
-2keros
-ker4reg
-k2ers.
-2kersa
-kert2
-ker4werb
-kerz2
-k1erz.
-ker2zeu
-2k1er2zi
-k2es.
-ke2sa
-k2esc
-k1ese
-ke2sel
-kes3pa
-kes2sa
-ke2t1a
-ket2ag
-kete4
-ke2t1eb
-ke2tel
-2k1e2th
-ket3ha
-ket3s
-2ke2tu
-keu4schl
-2k1e2va
-2k1e2x
-2kf2
-kflei2
-kf4lö
-k3fu
-2kg2
-kga2s1
-kge3s
-k3go
-2k1h2
-k3he
-k3hu
-ki1a
-ki2ad
-ki2ag
-ki3a4k
-ki3a2r
-ki1c
-4kicl
-ki3d4r
-k2ids
-2kidy
-ki2el
-kie2lei
-kiel3o
-2kiern
-kier2s
-kie4z
-2kif
-ki3f4l
-ki3f4r
-ki3k
-kik4l
-2ki3l2a
-2kilä
-4kile
-4kili
-2kim
-ki2nä
-2kindex
-2k1indi
-2k1indu
-2k1inf
-k2ing
-kin2ga
-kin4g3ent
-king3s
-2kinh
-k2ini3
-kinik2
-ki3n4o3
-kinos2
-kinot4
-kin3s
-2k1inse
-k1inst
-2k1int
-ki3or
-kio4s
-3kirc
-2k1i2so
-kis2p
-kis3s
-kist2
-kis4to
-kiv2
-kive4
-2kiz
-2kj
-k3jo
-2kk2
-k3ka
-kkab4
-kk4ne
-kl2
-2kl.
-4kla.
-2k1lac
-k3lamp
-klan2
-2kland
-klan3du
-k4lar
-k1last
-k1lauf
-k3laug
-2kläd
-k2lär
-k2le
-4k3le.
-kle2br
-k3leg
-2kleh
-kl4ei
-klei2e
-k3leit
-k3lem.
-3klemp
-kle2o
-2k3ler
-kle2ra
-2k3leu
-kle3us
-2klic
-k2lien
-k2lif
-2klig
-3k2lim
-k2lin
-k3lin.
-3k4lina
-2k3lind
-k4link
-k2lip
-k2lir
-k2lisc
-2klist
-klit2s
-2k3liz
-2k3loc
-2klok
-3k4lop
-k3lor
-klost4
-2klöc
-2klöf
-k2löst
-k4löt
-k1lu
-k4lub
-k2lud
-k2lug
-k2lum
-klung4
-2klux
-2k1lüc
-2kly
-2km
-kma2la
-k2n2
-k4nac
-2k5nach
-2k3nad
-2knah
-2k3nam
-2k3nar
-kn4at
-2knav
-2k3näp
-k3ne
-k4nec
-kne1e
-2knes
-kne3tu
-2knetz
-4kney
-kni2e
-2k3niv
-kno2b3l
-k4nol
-2knorm
-2knov
-2k3num
-ko3a
-ko2al
-kobal2
-2kobj
-kob4s
-koe2
-kof3f2
-koffe3i
-kohl2e
-kohle3i
-koh3lu
-koka3
-ko2kl
-ko3l2a
-ko3le
-kol2k3
-3kom
-komer3
-4komn
-ko4mu
-k2on
-kone2
-ko2nem
-kon3s4
-kont6en
-ko2nu
-ko3on
-2kop.
-ko2pal
-ko3pat
-ko3pe
-2koper
-ko4pf
-kopfa2
-kop2fen
-kop4f3err
-3kopp
-kop3s
-ko3r2a
-kor2ba
-kor2bl
-kor2br
-2k1orc
-korder2
-kor4derg
-ko3re
-ko4rel
-2k1org
-ko3rin
-kor2k1a
-kor4kr
-kor3m
-k1orna
-kor4nac
-kor2n3ä
-kor4no2
-2korpi
-k2os
-k4os.
-ko4sk
-ko2sp
-3k4ost
-ko3stei
-ko2stü
-ko4ter
-ko3t2i
-koti4n
-koti6ne
-kot4r
-kot3s2
-kot2tak
-k1ou
-ko3un
-3kow
-ko2we
-2k1ox
-köde2
-k2öf
-k1öl
-2kp2
-k3pf
-2kq
-k3qu
-k2r2
-2k3rad
-2k3rah
-k4ral
-k3rats
-2kraum
-k4raw
-k4raz
-k4räc
-2kräd
-k4räf
-k4räm
-k4rän
-2k3räum
-2kre.
-2k3reak
-2k3real
-k4reb
-4k3rec
-2kred.
-2k3rede
-2kredn
-2kredu
-2k3ref
-2kreg
-2k3reic
-kre1i2e4
-kreier4
-k3reif
-2k3reih
-2k3reim
-krei4sei
-krei2s3i
-krei2st
-2krel
-k3ren
-2kresu
-2k3rh
-2krib
-2k3ric
-2k3ries
-2krip
-k3risi
-k4roa
-kro3a4d
-kro3b4
-k4roch
-4k3roh
-k4rok
-k4ron
-k4rop
-2krot
-krot4r
-k3rou
-2kröh
-2kruf
-2k3run
-2k1s
-ks3a2b
-ksa4k
-k4s1amt
-k2san
-ks3a2r
-ksa2s
-k2sau
-ksau4e
-ksau4f
-k2sav
-k2säh
-k3s2c
-ksch4
-k2s1e2b
-k2s1ec
-k3s2ed
-ks1ei
-ks2eid
-ks2eif
-k2seind
-kse2le
-k2s1eng
-k2s1ent
-ks1er
-ks2ere
-k2serf
-k2serg
-k2serk
-k2serl
-k2sers
-k2serw
-k2s1ev
-k2sex
-ks3ha
-k4s1i2d
-ks2im
-k2s1in
-k2s1is
-k3s2ke
-ks3ket
-ks3kl
-ks1o2
-kso4f
-ks4on
-k2sop
-k2sor
-k2sö
-k2spal
-k3s2pat
-k2spä
-k3spe
-ks4pel
-k2sph
-ks2por
-ks2pul
-ks3s2
-kss4t
-kst2
-k4st.
-kst4a
-k2s3tal
-k2s3tanz
-kstat4
-k3stäl
-k3stei
-k4steil
-ks4tel
-ks2tep
-k2stier
-k2stit
-k2stor
-k2strop
-k2stuc
-k2stum
-k2stur
-k2stüt
-k2s1u
-ks2zen
-2kt
-kt1abr
-kt1abs
-k2t1ad
-kt1akt
-k3tal
-kt1am
-kt1an
-kt2and
-k2t1a2r
-kta4re
-kta3ri
-k2t1au
-kt3aug
-ktä3s
-kt1ein
-k2tek
-k4t1ela
-kte4n1
-kten3s4
-k2tent
-k4tentf
-k4tents
-kten3z
-kte4pi
-kte2ra
-kte3ran
-kt4ere
-kt1erg
-k2t1erh
-kter3m
-k2terö
-kte3ru
-k4t1eti
-k2tex
-k2t1h
-k3ther
-k2t1i2d
-kti2me
-kt3ind
-kt1ing
-kt1ini
-kt3inn
-k2tint
-kti2s1e
-k2tiso
-kti2ter
-kto3b
-k2t1of
-kto3ren.
-k2t3ram
-k3t4ran
-kt3ras
-k2t3rau
-k4tref
-ktro1s
-kt3run
-kt3rü
-kt3s4a
-kt3sä
-kts2el
-ktsen1
-kt3si
-kts1o
-kt2sor
-kts2p
-kts4t
-kt3s2z
-ktt2
-k3tub
-kt1ums
-k2tuns
-k3tü
-k4tüb
-kt3z
-ktz4w
-ku2al
-ku1c
-kud4r
-ku2h
-2k1uhr
-ku3la
-ku3l2e
-ku3l2i
-4kulp
-kul4to
-kul2tr
-k2um.
-2k1umb
-k2um4e
-2kumg
-2kuml
-kum2sa
-kum2s3p
-k2u3n2a
-kun3da
-kund2e
-kunden3
-kunft4s
-kung4
-2kunm
-kun4s4
-kunst3
-4kunt
-2kunw
-4k1up.
-kur2bl
-ku2rei
-kuri2e
-kuri4er
-2k1urk
-2k1url
-ku2ro
-kurs3c
-kur2s3p
-kur2st
-kur3sti
-2k1urt4
-kur3tsc
-3kus
-kus3a2r
-ku2schl
-ku2sp
-ku2s3t2
-ku2su
-4kut.
-kut2a
-kuto3
-kü1c
-3küne
-3kür
-kür4s
-2kv
-k3ve
-2kw
-2kz2
-kze3l
-k3zu
-3la.
-laa2
-la3ar
-l1ab
-3l2ab.
-lab2a
-la2bad
-l2abä
-2labb
-lab2br
-2labd
-lab2e
-2la2ben
-4labf
-2labg
-2labh
-3labi
-l3a2bit
-2la2b3l
-2labn
-3lab2o
-4labo.
-la3b4ra
-lab4res
-la2bri
-2la4bs
-la2bus
-2labw
-2labz
-la1ce
-la2ce.
-l4ache
-lachter4f
-lacks2
-1lad
-2l1ad2a
-2ladd
-3laden
-la3d2i
-2ladj
-2l1adl
-2ladm
-2l1a2dr
-3l2adu
-2ladv
-4laf.
-la4f1ei
-la4f1er
-laf1r
-4laf3s
-laf3t4
-la4fu
-la2g1a
-lag3d
-lagen3d
-l2ager
-lagerin3
-4lagg
-la2gil
-la2gin
-la2gio
-lag3l
-la4g3n
-la2go4
-lag3str
-2la3ho
-3lai
-2l1akad
-lake2
-la4kes
-la4kin
-l2akk
-la3k4l
-la4kro
-lakt2
-2l1al
-la2la
-3la5la.
-3lali
-4lalo
-4lalt
-lami3t
-l4amm
-lam2m1a
-1lammf
-la4mor
-l2amp
-2l1amt
-lamt2s
-la4mun
-la2na
-la3nan
-4l1a4n4at
-la4nau
-2la2nä
-3l2and
-l4and.
-lan2d1a
-lan4dam
-land3au
-l4ande
-lan4derh
-lan4d3erw
-lan4d3erz
-lan4d3inn
-l4an2dr
-lan3dri
-land3rü
-lan3erd
-laner2f
-2lanf
-2langa
-lan2gan
-2l3angel
-lan4g3esc
-lang3s4
-l2anhe
-3lan2i
-4lanim
-4lanl
-2l1ann
-l1ano
-la2nof
-2l1anp
-2lans
-l1ansi
-3lansw
-2lantr
-2lantw
-2lanw
-lan4zerg
-lan2z3w
-3lao
-2l1apf
-la2ph
-2l1a2po
-lap2pl
-la2q
-la2r1an
-2larc
-lar1e2b
-la2r1ei
-la2rel
-la2rene
-larf4
-3lar3g
-lar3ini
-lark4l
-2larm
-2l1a2rom
-l1art
-2lart.
-lar2ter
-lart2h
-l3arti
-lart4r
-3laru
-l2as.
-la2sa
-la4s3aa
-la4sam
-la4sä
-lasche2
-4lasd
-la3seb
-la2sei
-la2s1e2l
-2lash
-la2sin
-la2sis
-la2so
-2la4sp
-3lasser
-l2a2st
-las4t3an
-last3ar
-la4ste
-las6t3ri
-la4stu
-la3t2e
-2l3a4tel
-l4at2i
-la5tio
-2latm
-lat2o
-la2tö
-la2t3ra
-lat4ri
-lat2s
-lat3st
-2lat2ta
-lat4tan
-lat2tex
-lat2t3in
-lat2t3r
-latzer2
-1laub.
-lauben4s3
-lau2b3r
-laub2se
-lau4fel
-lau4ferl
-lau4fin
-2laufn
-lau4fo
-1laug
-lau3gl
-lau3i
-2laun.
-la4us
-3l2aus.
-2l1ausb
-lau4scha
-2lausd
-2l1ausf
-2lausg
-2l1ausl
-2lausr
-2l1auss
-lau2st
-2lausw
-2lausz
-2lauto
-lau2tr
-la3va
-lave4n
-1law
-lawa4
-1l2ax
-la2xel
-l2ay
-lä1c
-3läd
-1lähm
-2l1ähn
-lä2i
-2lämt
-1länd
-2l1äpf
-2läq
-l2är.
-lär2ma
-l1ärme
-2l1ärz
-lä2s1c
-2lät
-2läub
-2läuc
-2läue
-1läuf
-2läug
-2läx
-1là
-2lb
-l3bac
-l2bant
-lb3a2ri
-lb1ärm
-lbb2
-lbb4r
-lbby4
-lb2ei
-lbei4ge.
-l2b3eink
-l2b3eise
-lbe2ral
-lber2ei
-l2b1e4ta
-l2b1id
-l2b1ins
-lb4lad
-l3b2lat
-l3blä
-lb3le
-l2bled
-l2blic
-l3blo
-l3b2lö
-l3b2lu
-l2b1o2ra
-lb3rea
-lb2s
-lb3sa
-lb3se
-lb3si
-lb3sla
-lb3sp
-lbs4t
-lbst3ac
-lbst3ei
-lbst1u
-l2b1uf
-l3bum
-lbu4n
-lbzei2
-2l1c
-l3ca
-l3che
-l4chei
-l4chent
-l3chi
-lch3le
-lch3li
-l3chlo
-lch3n
-lch3r
-lch3s2
-lch3ü
-lch3w
-l2ck
-l3cl
-l3co
-2ld
-ld3a2b1
-ld2ac
-ld3a2ck
-l2daf
-lda2g
-l2d1ah
-lda2i
-l2d1ak
-l2d1al
-ld1ams
-l2d3a4n
-ld1arm
-ld1ass
-l2d1au
-ld3aus
-l3däm
-ld1är
-ld1äs
-ld1ät
-l3de.
-lde2ben
-l2dei
-ldein5
-l2d1elf
-l2d1e2mi
-l2d1ems
-lden3erg
-l2dentl
-l3der.
-l4d3er2fa
-l4der4geb
-ld1erh
-l2der2he
-ld2erl
-ld3erlas
-ld2ern
-l2d1er2p
-lder4tr
-lde5sa
-l2d1es2s
-l2dex
-l2d1id
-ld1i4mi
-l2d3ion
-ldo2b
-ld2on
-l2dop
-ldo2r
-l2d1ori
-ld2os
-ldos3t
-ld2ö
-ld3r
-ld4ram
-ld1ran
-ld1rä
-l2dre
-l3d4ris
-ld1rol
-ld4ru
-ld5rub
-ld5rut
-l2drüc
-ld3sa
-ld3ska
-lds2p
-ld3st
-ldt4r
-ld3tu
-l2d1ul
-l2d1um
-ldwes4
-1le
-le2ad
-le2an.
-le3ar
-3leba
-leben2s3
-le2bl
-3lebr
-le2b3re
-lebs2
-2lec
-lech1a
-le2chi
-lech5t4e
-le2dit
-le2dr
-le1en
-le2er
-lee4ret
-le3f2a
-2l1eff
-lef4o
-le2g1ab
-leg1as
-le2gä
-legi3en
-le2gl
-leg4r
-3leh
-4lehe.
-leh3r2e
-4lehs
-4leht
-l2eid
-lei3ere
-lei2fan
-lei2fei
-lei2fi
-leif3s
-2l1eig
-lei3gl
-3leih
-lei2hau
-lei3l2
-leim3p
-3l2ein.
-lein2du
-l4eine
-lei4nerb
-le2inf
-le2ini
-2leink
-2l3einsa
-2leint
-l2einu
-le2is
-leisch3a
-lei4schei
-lei4scho
-lei4schr
-lei4sern
-l1eisf
-leis4s3er
-l4eist
-lei2ßer
-l2eit
-lei2ta
-leit5ersc
-lei4to
-lei5tri
-leit3s2
-leits4t
-2leiw
-3leko
-2lektr
-2lekz
-3l2ela
-le2le
-2lelek
-2leleme
-le3len
-leler2
-le3les
-2lelf.
-2l1elfe
-l2eli
-l2em.
-le3mal
-le2mau
-le2m1ei
-lem4en
-3lemes
-3lemet
-le2mid
-lem1o2
-le2mor
-4lemp
-lem3s
-le2mu
-le4mun
-l4en.
-len1a2
-len3ab
-le4nad
-le4n3an
-le4n3a4t
-le2nä
-2lendet
-4lendl
-l1endp
-4lendun
-le2n1ed
-lenen3er
-4lenerg
-le2neur
-2leneuv
-len2gag
-len2kau
-len2k3lo
-len2klu
-l1enni
-le2no
-len4sein
-2len2sem
-len3ska
-len3sz
-3lenta
-2lentg
-2l1entk
-2lentla
-2lentn
-l3entro
-2lentrü
-2lentw
-lent4wä
-3lentwet
-2lentz
-le4nz
-lenz2a
-len4z3eig
-2lenzy
-leo4f
-le1o2s
-2lep
-l1epe
-le2pen
-3lepf
-4l1e2pi
-le4pil
-4lepoc
-3lepr
-l2er.
-l2e1ra
-le2rag
-le2r3ap
-le2ra2s
-le2rau
-le2r1ä
-le2r1e2b
-ler2e3c
-2lereig
-le2r3ei2m
-le2r3eis
-le2rel
-le2reng
-l2erer
-le2rerg
-le2rers
-le2re4t
-2l3erfas
-2l1erfo
-l2erfr
-l2erfüh
-l1erg
-l2erga
-2lergeb
-l2ergef
-3lergeh
-4lergen.
-l2erger
-l2erges
-3l2ergew
-2lergi
-l2ergl
-l2ergr
-2ler2heb
-2lerhol
-leri2e
-lerin2s
-lerk2
-3l2erka
-l1erkl
-l2erkle
-3l2erko
-ler3kr
-3l2erkre
-3l4erlebe
-3l2erlei
-2lermä
-2l3ermüd
-ler2nal
-ler2nar
-l4erne
-ler4nei
-2l1erö
-3l2erra
-ler2ric
-l2errü
-l4ers.
-l1ersa
-2lersat
-lers4k
-3l4ersl
-ler2sto
-lert4
-ler4trä
-le2rup
-l4erwa
-ler2wer
-2ler2wo
-2l1erz
-ler2zä
-l3erzeu
-ler2zo
-l4es.
-les2am
-les2e
-lese1i
-2l1esel
-le3s4h
-lesi1
-le3s2k
-le3so
-le2spo
-le4ss
-lest4
-le1sta
-leste3
-lester4i
-le1sto
-le1str
-3lesu
-4lesw
-2lesy
-le2tab
-2le2tap
-2le2tat
-l1e2th
-le3tha
-2lethi
-let2i
-letsche4
-let2top
-lett1r
-letts2
-le2u
-4leue
-3le3u4f
-le4uk
-2l1eul
-le3unt
-le4ur
-2leuro
-3l2eut
-l1e2vol
-2lex
-3lexd
-3lexik
-le2xis
-1lé
-2lf
-l3fac
-l3fah
-lf4at
-l2f1ec
-lfe1e
-lf3einh
-l2feis
-lf2en
-l2ferei
-lfe2rel
-lf1erl
-l3fjo
-lf4lä
-lf3led
-lf4lö
-l3f4lu
-lf3ram
-lf3res
-lf4ru
-lf4rü
-lf2spe
-lf2sti
-lf2su
-lfun2
-lfur1
-2lg
-lgab4
-l3gas
-lga3t
-lgene2
-lgeräu3
-l2geti
-lg2i
-l3gle
-lg2lö
-l3go
-lg2p
-l3g4ra
-lg3re
-l3gro
-lgs3t
-lgung4
-2l1h2
-l3he
-3lhi.
-l3ho
-l3hu
-1li
-li1a
-lia2b
-li2ad
-li4am.
-lian2g
-li2ast
-3lib
-libi1
-lib4r
-li1c
-lich2ta
-licht5ersc
-lich4to
-4lick
-li2cka
-li2cl
-li3d2a
-l1ido
-l2idy
-liebe4s3
-lie2br
-3liefer
-li3efl
-lie4n1a2
-li3ene
-li3en3s
-lien3t
-li2er
-lie2rei
-li3ern
-lie2s1c
-lif3ti
-3lig
-liga3s
-li2g3ers
-lig1l
-lig4n
-li3ker
-lik2i
-lik2o
-likop4
-lik2sp
-lik2ter
-lik4th
-lik2ti
-lik4t1o2
-lik2u
-li3l
-lil2a
-li5lie
-li4ll
-li3m2a1
-limas4
-lima3t4
-2limm
-3limo
-2limp
-lin2a
-lin3all
-li3nar
-4lindi
-2l1indu
-li2nef
-li2neh
-li2nep
-li2nes
-2l1inf
-ling3l
-lings3
-lingst4
-2l1inh
-li5nie
-2l1inj
-lin2kan
-lin2kar
-link2s3
-lino2
-li2nol
-l2insa
-2linsel
-2linsp
-2linst
-2linsu
-2linsz
-2l1int
-l2intu
-li3n2u
-2l1inv
-2linz
-li2o
-li4om
-li3o2st
-3lipf
-3lipt
-3lis.
-li3s2a
-li3schm
-li2schu
-lis2h
-li3shi
-3lisk
-2l1isl
-2l1i2so
-li2s2p
-liss4
-3li2st
-li2t1a2d
-l1i2tal
-lit4an
-li3t2ä
-l2i3t2e
-3liter
-li3th
-li4t3r
-lit1s2
-lit3se
-lit3sz
-li3tu
-li4tur
-litz4er
-3liu
-li2vea
-live4n
-li2ves
-livi3e
-li3vr
-4lixi
-li4z3ä
-lizei3
-2lj
-l3ja
-2lk
-l3kale
-lk1alp
-l3k2an
-l3kap
-l3kar.
-lk1erd
-lke3r2e
-lk2l
-lk3lad
-l3k4las
-lk3lic
-l3k4lu
-lk4ne
-lk5ner
-lko4f
-lk1ofe
-lkor2b1
-lk3roc
-lk2s1
-lk3sän
-lk4sb
-lk3si
-lk4sm
-lk4spe
-lks3t
-lkt2
-lk2ü
-2l1l
-l2labk
-l2labt
-l3labu
-lla2der
-l3lage
-lla3gl
-l2l1am
-lla4ma
-l3lame
-ll2ami
-ll2anb
-lla2ner
-lla4ni
-l3lans.
-ll1anz
-l2l3appl
-ll1arm
-ll1a4sc
-l4latm
-ll1att
-l3laub
-ll3aufg
-llau4m
-ll1aus
-ll3axt
-ll1äm
-ll1är
-llb2
-llb4l
-llch4
-ll3d
-lld4r
-ll3ebene
-l3lec
-ll1ech
-lle3er
-l2l1ef
-ll1eic
-ll1eim
-ll2eis
-l2leise
-lle2la
-lle2m
-l2l1emi
-l3len.
-lle4na
-ll3endl
-llen3dr
-ll3en4dun
-lle4nens
-l4lentf
-l2lents
-l3lep
-l3ler.
-lle2ra
-ller4eig
-l4lerfas
-ller2fo
-ller4geb
-l4lergene
-l2lergo
-ll3erho
-ll3erkr
-ll3ermi
-ller4müd
-l2l3ernt
-ll3ertr
-ll2es
-lle4th
-ll1exe
-llg2
-lli2gan
-l2limb
-l2l1ind
-l4linf
-l4l1ink
-ll1ins
-ll3k
-ll3l2
-ll3m2
-ll5mit
-ll3n2
-ll1ob
-l2lobe
-l2l1o4f
-ll3ol
-l2lope
-ll1opf
-ll1or
-l4lorb
-llor2g
-l2lo2ri
-l2l1ou
-l3low
-ll1ox
-ll2s1es
-ll3ska
-ll2spr
-ll3t
-llt2e
-llt2i
-llti2m
-llt4r
-ll5tri
-ll4ts2
-ll1ur
-llus5t4
-l3ly
-ll3z2
-llz4w
-2lm
-l3ma.
-l2m3a2b
-l2m1ad
-lm1a2ge
-lm1aka
-l2m1a4m
-l3mana
-lm1apf
-lm1art
-lm1att
-lm1äst
-lmbu2
-lm1c
-lmd2
-lm3e2dit
-l2m1ef
-l2m1ent
-l2m1e2p
-lmer2
-l2m1erf
-l2m1erl
-l2m1erz
-l4messa
-l2m1i2d
-lm1ind
-lm1ins
-l2mof
-lm1orc
-lm3p2
-lmpf4
-lm3s2k
-lms2t
-lm3ste
-lm3s2z
-lm3t
-lmt4r
-l2mum
-l4munt
-2ln
-ln2ab
-lna2r
-ln3are
-lnd2
-l3n2e
-lnes2s
-l2n1in
-lnus2
-l1nü
-l1ny
-1lo
-3lob.
-l2oba
-3lobb
-lobe2s
-2lobj
-l1o2bl
-l2obr
-lob4ri
-lo2chel
-lodi4e
-l1ofe
-lo3fj
-lo4gh
-lo2gl
-lo2gor
-lo2gre
-lo2ha
-loh2e
-loh2ner
-4l1ohr
-loi4d
-loi4r
-3lok
-4l1okk
-lo2k3r
-l4olä
-l4ole
-2l3o2ly
-lomä3
-lo4mel
-lo4min
-lo2ner
-lo4nin
-lo2n1o
-lo2o3
-2lopf
-lop2p1a
-2lopt
-lo2rak
-lor3am
-lor2an
-lo4rä
-3lorb
-2l1orc
-2l1ord
-lo3r2en
-2l1org2
-lori4di
-2lort2
-l2os.
-lo4sa
-3lose
-lo4ske
-los3p
-lo2spe
-lo2spr
-los3sa
-lo4ste
-lo2s3t4r
-2loß
-lo2ta
-lo2th
-lo3tha
-loti4o
-lo5tos
-lots2e
-2l1ov
-lo2ve
-2lox
-1lö
-lö2b3
-2löck
-2löd
-2l3ö4fe
-2l1öhr
-2lök
-2l1öl3
-2löp
-3lösc
-3lösu
-lö4ta
-2lp
-lp2ar
-lpar2k1
-l2p1är
-l3p2f
-lp4fu
-l3phä
-l2phir
-lp1ho
-l3phr
-lph4t
-lpi4p
-lp4lu
-lp4rä
-lpt4r
-l3pu
-l3pü
-2lq
-2l1r2
-lrau2s
-l3re
-lrebs2
-lro2h
-lrö2
-l3ru
-l3rü
-2l1s
-ls3a2b
-lsa2ck
-ls3acke
-l2s1a2d
-l4s1amb
-l4samp
-ls2amt
-l2san
-ls3ane
-l3sare
-ls3a2ri
-l3sark
-l4s3au.
-lsau4m
-lsau4rer
-ls3aus
-l2saut
-l3s2äm
-ls2äug
-l2s1äus
-lsby4
-ls2c
-l2schin
-lschs4
-l2s1e2b
-l3seil
-ls2ele
-ls1eli
-ls1emb
-l2sent
-ls1er
-ls2erb
-l2serf
-l2serg
-l2serh
-l2serk
-l2serl
-l2sers
-lser2u
-l2serw
-lse2t
-ls1eta
-ls2ext
-ls3ha
-l2s1id
-l2simp
-ls2kal
-l3s2kele
-ls2ky
-lso4b
-l2sop
-l2s3ort.
-l3s2öl
-ls2pa
-l2s3pac
-l2s3ph
-l2s3pir
-l3spit
-l2spiz
-ls2po
-ls2pu
-l3s4pul
-ls3s2
-lss4t
-l4st.
-lst2a
-lstab4
-ls3tabl
-lstahl3
-l2stas
-l2stat.
-l2state
-l2s3täti
-l2ste
-l3stea
-l3stec
-l3steh
-l3stei
-l4steil
-l3stel
-l3stemp
-l4sten
-l6ster.
-ls2t3erk
-ls4terne
-ls4terns
-ls2tie
-ls4tip
-l2stit
-l2stoch
-ls4toi
-lstro4
-ls4tru
-l2s3trü
-ls2tu
-ls4tüm
-ls1um
-l2s1un
-ls2und
-ls3unk
-l4szu
-2lt
-l2tab
-l3tabl
-lt1abs
-lt2a3d
-ltag4
-lt1am
-l4tame
-ltampe4
-l3tan.
-ltan3d
-l2t1ap
-lt1ara
-l3tark
-lt1art
-l3tarta
-ltar4tik
-lt1au
-lt3aut
-lt1äh
-lte2c
-lt1eh
-l3tehu
-lt1eig
-lt1ein
-lte3mi
-lt2en
-lten4gel
-lten2sp
-lt3ents
-lte2ral
-l2t3er2fa
-l3t2erg
-l2terhe
-lter2ku
-lter2nä
-lte2ro
-lt2erö
-lter2se
-l4t1es3k
-lt2est
-lte3str
-lt2et
-lt3g
-l2t1h
-lt3hag
-l3thas
-l4t3hei
-lthol2
-l3thr
-l3t2hu
-lt1ide
-ltimo4
-l3tine
-l2tiso
-l3t2i3t
-l2t1ob
-l2t1o4f
-l4tord
-l4torg
-l4t1o2ri
-lto2w
-lt1öl
-lt1ös
-l4t1öt
-ltra3l2
-lt3räu
-lt3rec
-lt3rei
-lt3ris
-lt3rol
-l2t3rö
-lt3rum
-l2t3rus
-lt2se2l
-lt2s3ort
-lt3s2ph
-lt2sti
-lt2stüt
-lt3t
-l3tub
-lt1uh
-l2t1um
-lturan2
-lturen2
-ltu4r3ent
-ltu2ri
-l3tü
-lu1an
-2lu2b3
-luba2
-lubs2
-lu2dr
-lu2ec
-lu2es
-lu2et
-1luf2
-2l1u4fe
-lu5fel
-2luff
-luft1a
-luft3e
-luf4tei
-luft3r
-lu2g1a
-lu2g1e2b
-lu2gei
-lugen1
-lu2gi
-lug3l
-lu2go
-lu2g3r
-lug3se
-lug3sp
-lu2gu
-2l1uh
-lu1id
-lui2de
-lu4ig
-lu1is.
-2lumd
-lume4
-2lumf
-2lumg
-2l1umh
-2lumk
-2luml
-l2ump
-1lumpe
-lum2ph
-2lumr
-2l1ums
-lu3mu
-2l1umw
-2lumz
-1lu2n
-2l1una
-lund4
-2l1unf
-lung4sc
-2l1uni
-2lunr
-2l1uns
-2lunt
-2lunw
-lu4pf
-l2ura
-lu2r1an
-lu2rat
-3lurc
-lu2rei
-2lurg
-l2uri
-lu2ris
-l1urn
-lu2ro
-2lurs
-l1urt
-lu3sak
-2luse
-lu3si
-lu2sp
-lus4s3a
-lus2s1c
-lus2sel
-lus2s3er4
-lus2s1o
-lus4s3p
-lus2s3t
-lus4stä
-luss5tr
-1lu2st
-lus4terl
-lus4t1o2
-lust3re
-lu4s1u
-lu2t1a4
-lu4tas
-lu4t3au
-lu2tä
-lu2t1e4g
-lu2t1el
-luter2
-lu2t3er4b
-lu2t3erg
-lu4t3ersa
-lu2thy
-2luto
-lu2tob
-lu2t1o4f
-lu2top
-lu4t1or
-lu4t3r
-lut3schl
-lu4tü
-3lux
-2lüb
-3lübd
-lück4e2
-lücker3
-lüf3te
-lü2hel
-lüh1l
-lü2s
-2lv2
-lva3
-l3vl
-lv3r
-2lw2
-l3wa
-lw4ei
-l3wi
-2lx
-1ly
-ly1a
-lya4m
-ly3c
-ly3es
-ly1l
-2lymp
-3lyn
-ly3no
-ly1o
-ly3onn
-ly3th
-2lz
-l2z1ac
-l2z1ag
-l2zan
-l2z1ap
-l2zat
-lz1aus
-l2z1äp
-l2zär
-l2z1eim
-lze2l
-l2zele
-l2z3enth
-l2z1ep
-l2z1er2h
-l2zerz
-l2z1id
-lzi4m
-lz1imi
-lz1ing
-lz1inn
-lz3l
-lzo4f
-l2zö
-lz3t2
-l2z1u4fe
-lzvol2
-lz3w
-l2zwar
-lz4wec
-l2zwu
-1m
-maa2
-m1ab
-m3a2bar
-m2abä
-2m3abb
-m2abe
-4m3abf
-4mabg
-2mabh
-4mabk
-2mabl
-m2abli
-2mabm
-4mabn
-ma2br
-m2a3b4ra
-4mabs
-2mabt
-4mabw
-2mabz
-ma3chan
-mach2e
-mach4t5ers
-mach2tr
-ma2ci
-mack2s
-2m1act
-mada4m
-m2adä
-ma2del
-ma3dj
-ma4dl
-2m1adm
-2m1a2d4r
-ma4d2s
-mae2
-ma3f
-maf4r
-mag2a
-ma2ge.
-ma4geb
-ma2geg
-ma2gek
-ma2gep
-ma2ges.
-ma2get
-ma2gev
-ma2gew
-4m1agg
-magi3er.
-magi3ers
-ma3gl
-ma3g4n
-2m1ago
-ma3ha
-mahl4st
-ma1ho
-mai4s3e
-ma4ke.
-ma4kes
-2m1akt
-mal1ak
-ma2lakt
-ma2l1an
-ma2lau
-ma2lär
-2mal2de
-m2aldi
-ma3le
-ma4leb
-ma4lent
-mal2er
-ma4lex
-mali2e
-mali3er
-mal3lo
-2mallt
-ma2lon
-ma2lop
-m2alp
-mals4terb
-mal3t
-malu4
-ma2l3ut
-3malv
-ma4mid
-mam3m
-4m1a2nal
-ma2nar
-2m1a4n4at
-ma2nau
-2m1anä
-2manb
-man2ce
-3man3d4
-man2en
-ma2net
-2m2anf
-mang2
-2man3ga
-m2angel
-2m1angr
-2m2anh
-3manip
-2manl
-4manla
-m2anle
-3m2a4nn
-4manod
-2manr
-2m1ansa
-2mansä
-man2t1h
-2mantr
-ma4n1ut
-2manw
-2manz
-m1anza
-ma2or
-ma2phr
-ma2po
-m2ara
-4marag
-4marb
-2maren
-mar3g2
-3ma1rh
-ma3r2i
-m2ark
-mar2kr
-4mar2o
-maro3d
-4marr
-mar4schm
-mar4schn
-mar4schr
-mar2sp
-mar2su
-2mart.
-ma3r2u
-m1arz
-3mas
-ma3s4a
-ma3s2e
-ma3s2p
-masse4n3
-mas4ta
-mas4tel
-mas2ti
-mas4to
-mas4tr
-mas6tri
-ma4s3z
-3maß
-ma2tab
-ma2tan
-ma2tä
-m3a2tel
-ma2t3erd
-ma2t3erz
-ma3the
-m4atme
-2matmo
-ma2to
-ma4tort
-mat3se
-mat3sp
-matt4r
-matur2a
-mat3url
-2m1au4f
-3maul
-ma3un
-mau3r
-2maus
-m1auss
-mau2ta
-m2ay
-ma1yo
-2m1ähn
-mäh1r
-4m1änd
-2m1äp
-2mäq
-mär1
-2m1ära
-mär2kl
-mär2z1
-mä3t4r
-mäu2s1c
-2mb2
-mbe2e
-mbera2
-mber2e
-mbe3ri
-mbert4
-mbi3er.
-mb4le
-mble1i
-mb4re
-mbu3sc
-mby4t
-2mc
-m3ch
-2md
-m2dan
-m2d1a4s
-md1är
-mde2a
-m2dei
-mde2m
-m2d1emi
-m2d1ent
-mder2
-m2d1erl
-mdien4
-md2ö
-md3ras
-md3s2e
-mdt4r
-m2d1um
-me3an
-me3at
-me2ben
-4mebo
-me1c
-medi3
-medie4
-me1e2m
-me1e2n
-mee4rei
-2m1eff
-mega3
-me4gel
-3meh
-meh6l3er
-2m1eif
-2m1eig
-m2e4i3l2
-mein4da
-meinde3
-meiner4k
-mei4nerl
-5m2eist
-me3lam
-me3l2ant
-me2l1au
-melb2
-mel3d2
-melde3i
-me2lek
-2melem
-me2ler
-melet4
-2melf.
-mel3ink
-3melk
-mel2k3ei
-mell2
-3melo
-me2lob
-mel4sac
-mel2se
-mel2spa
-melt4
-4mel4tern
-2m1e2mis
-2m1emp
-2m1e2mu
-m2en.
-men3ab
-me3nage
-me4n3an
-men3ar
-me4nas
-men3au
-4m1endl
-menen1
-meng2a
-2men2gag
-men3ge
-me4nh
-me2nid
-me2nim
-me4n3k4
-men2on
-me4ns
-men2se.
-men2sem
-4mensemb
-men2sen
-men4ser
-men4ses
-mensi2d
-menst4
-3m4enta
-men2t3ak
-men4tanz
-mentar6ten
-3m4entei
-ment3eig
-men4t3ers
-4mentn
-ment4sp
-menü1
-me1o
-2meou
-2meö
-4mepa
-2m1e2pi
-m4er.
-me1ra
-mera3l
-mer2a3s4
-me2r1e2b
-2mer2eig
-me2rens
-mer2err
-mer2erw
-2m3er2gän
-meri2e
-merin2d
-merin2t
-2mer2klä
-3merkm
-mern3s4
-m4ersh
-mer3sm
-mer4stel
-mert4r
-merz4eng
-3mes
-me2sal
-me4sä
-4meser
-mes3pr
-2mes4sa
-mess3an
-messe2r
-mes4s1o
-mes2sp
-mes2st
-mes3ta
-me1sto
-mest3ri
-me3su
-me3sze
-me3ta
-met3abe
-meta1s4
-mete2
-me3th
-me2to
-me2tö
-me3tr
-me4trig
-met4t3en4d
-me3tu
-meu1
-2m1ex
-me2xe
-2mf
-mfi2le
-mf4rü
-2mg2
-mgang4
-mglim2
-2m1h2
-m3hu
-mi1a
-mia2b
-mi3ak
-mia4m
-2mian
-2m1iat
-mibi1
-mic1e
-mi1ch
-mi2ci
-mi3da
-mi2di.
-mi3dr
-2midy
-mie3dr
-mi3ele
-mi4e3no
-mien3s
-mierer2
-mie1s
-mie2ti
-mie4to
-mie2t3r
-mi3f4l
-3mige
-mig4r
-mi3h
-mik1an
-mi3ke
-mi4kel
-mi4kens
-mi3k4l
-3mil
-mi3l2a
-milch1
-mil4che
-mild4s
-mi3l2i
-mi3l2u
-4milz
-m2im2a
-2m1imm
-4mimp
-min2ac
-mi3nak
-min3anze
-m2in3de
-minde4s
-4m1indu
-mi2nef
-miner1
-mi4n3e2ri
-min2eu
-4minfo
-min2ga
-ming3s
-2minh
-3mi3ni
-mini3k4
-mi3nod
-mi2nof
-2m1inse
-m1inst
-mi3nu
-3minz
-mioni1
-mi3p
-mi4ps
-3mir.
-3miri
-3mirs
-3mirw
-3mirz
-3mis.
-mi2sa
-mis4au2
-mi3schu
-misch3w
-mi3se1
-2m1i2so
-mis2p
-mi2spe
-mis5sar
-mis2ser
-mis4st
-mis3te
-mi1sto
-mi1s4tr
-3misu
-3mit
-mi2ta
-mit1h
-mi5thr
-mi5tic
-mi5tig
-mi2to
-mi5toc
-mi2tr
-mit3s4
-mit5sa
-mit3tan
-mit3t2e
-mitte3s
-mi2t1u
-4mitz
-mi3v2
-2mj
-2mk2
-m3kn
-mk4na
-mk4ne
-mk4nu
-2m1l2
-ml3c
-m3le
-ml3f
-ml3k
-m3lo
-ml3p
-ml3s2
-2mm
-mma3a
-m2m1ak
-mma4kr
-mm1all
-m2mank
-m2m1ans
-mm1anz
-m2m1ap
-mm1art
-mma1st
-mm1aus
-m2m1äu
-mmd2
-m2m1e2b
-m2m1e2di
-m2m1ef
-mm1ein
-mme2l1a2
-mme2lin
-mm2ene
-mmen4te.
-mmen4ten
-m2ments
-m2mentw
-mme2r3a2
-mme2rec
-mmer4geb
-mme2s
-mme3sc
-mme4sz
-m2m1eu
-mmi3el
-mm1inb
-mm1inh
-m2m1ins
-mm1int
-mm2is
-mmi3sc
-mmisch4
-mmi1s4t
-mmi3tw
-mm3m2
-mm3p
-mmpf4
-mm2s
-mm3sa
-mm3se
-mm3s2i
-mm3so
-mm3sp
-mm3sta
-mm3sti
-mm3te
-m2mum
-mm2un
-mmu3r
-mmuts2
-mmül2
-mmüll1
-2m1n2
-m2nesi2
-m3ni
-m3nu
-2m1o2be
-3mobi
-2mobj
-3m2od
-mo3de
-mode1s
-mo2dr
-m1of
-mo4fe
-mo2g1al
-3m2oh
-moh2a
-moi3r
-mo2k1l
-mol3d
-3mom
-mom4e
-3m2on
-mo2nan
-mo2nä
-mon2dac
-mon2del
-mon2d3er
-mon2do
-mond3r
-mo2ner
-moni2en
-mon2s3
-mon3sa
-mon3s4e
-mon3s4u
-mont2a
-mon3th
-mo1ny
-3m2o2o
-2mope
-2m1opf
-2mopt
-mo1ra
-mo2rak
-mor2an
-mor2d3a
-mor4derm
-mor2dr
-mor3g
-morgen3s4
-mor3t2
-mor5to
-mo4ru
-3mos
-mo4ska
-mos3s
-moster4
-mos2ti
-mo2su
-mo3t2h
-2motio
-mo5tor
-mot4r
-motte3s
-mous2
-m1ox
-moy3
-möbe2
-mö2c
-2möf
-mö4fe
-3mög
-2m1öl
-2mp
-mpa3ne
-mpe2la
-mpe2lin
-mpe2n
-m2p1ene
-m4pf.
-mpf3au
-mpf1ef
-mp2f3erf
-mpf3erg
-mpf3er2p
-mp4ferpr
-mp2f3er4r
-mp2f3erz
-mp4f3l
-mpf1or
-m4ph.
-mp1haf
-m4phb
-m4phf
-m4phg
-m4phm
-mp1hos
-m4phs
-m4phz
-mpin2
-mp3lei
-m2p3lem.
-m2p3len
-m2p3les
-mp4lis
-mpor4tag
-mpor4ter4
-m2p3ra
-mp4rä
-mp3sh
-mps2p
-mp3str
-m3pu
-2mq
-2m1r2
-m3ra
-m3ru
-2m1s
-m2sam
-m2san
-m4sap
-ms1as
-m3sat
-m2sau
-m3sä
-m4s1än
-m3sc
-msch2l
-m4sco
-m3se.
-m2s1e2d
-m2s1ef
-m2sein
-m2se2le
-mse2n
-m2s1ene
-m2sent
-ms1erf
-mse2t
-ms1eti
-m2s1eu
-m2sex
-mso2
-m2s1od
-ms1orc
-ms1ori
-ms2p
-m2spä
-m2sped
-m4spl
-m2spot
-m2spro
-ms3s2
-mss4a
-mst2
-m4st.
-m3stä
-m3steh
-m3stei
-m3stel
-ms2ti
-m2stit
-m3sto
-m3s4tr
-ms5trä
-ms6trän
-m3s2tu
-ms4tü
-m2sü
-m3sy
-m4szi
-2mt
-mt1ab
-mt1ak
-mta4m
-mt1ar
-mt3aug
-m2t1e2d
-m2teig
-mt1ein
-m2t1eis
-m2teiw
-mt1elt
-m3tem.
-mt1emi
-m4tenga
-m4t3engl
-m4tentf
-m4tentg
-m4t3en2tr
-m4tents
-mter2
-m2t1er4b
-m2t1erf
-m2t1erg
-mt1erh
-m2t3e2r4i
-m2t1erk
-m2t1erl
-m2t1ers
-m2t1ert
-m4teta
-m2t1eu
-m2t1ev
-m2t1h
-mt3ho
-m2t1i2d
-m2tim
-m2t1in
-m2t1i2r
-mti2s
-mtmen2
-mt1ob
-mt1op
-m2t1öl
-mt1ös
-m2t3ro
-m2trö
-mt2sa
-mt3sco
-mt2s1e
-mt3send
-mt3s2ka
-mt3s2kel
-mts3tät
-mt3stu
-mtt4r
-mt1um
-mtu3re
-m3tü
-mt3z
-mu1a
-mu2ckel
-2m1uh
-mu3la
-3muld
-mul2lau
-3mult
-3mumi
-m1ums
-mum2s3p
-3mun
-mundan4
-mun4derf
-mu2ner2
-4m1unf
-4m3ungeb
-mu3ni
-mu4nin
-4mu4niv
-4munw
-4munz
-mu3ru
-mu4r1u4f
-3mus
-mu4s1a
-mu2s1o
-mu2sp
-mu2s3t2
-4must.
-must4e
-mu2su
-muße1
-mut1au
-mut2st
-2müb
-3müh
-mü2her
-mühl1a
-3mül
-mül2len
-3mün
-3müt
-mütter3
-2mv
-mvoll1
-2mw2
-mwa2
-mweg4
-mwel4
-mwelt3
-mwelter3
-mwu1
-my1a
-my1on
-my2s3
-2mz2
-mzug4
-1na
-3na.
-na2a
-2n1ab
-3naba
-na2bä
-naben3s2
-n3abh
-n3abk
-na2b3l
-na2bor
-na2br
-nab4rü
-4n3abs2
-na2bus
-4nabz
-3nac
-n4ac.
-na2ch1
-nachen6
-na3chen.
-n3achse
-nacht5ers
-nach6tersc
-nacht6raum
-n1ada
-na3dab
-3nade
-na3de.
-nadel1
-na3den
-4n1adl
-4n3adm
-n1a2dr
-3nae
-na3el
-2n1af
-na3fra
-nag2a
-na3ge.
-na2gem
-4n1agg
-n1a2gi
-na3gin
-na3g4r
-3n2ah
-nah1a
-na2hau
-n4ahm
-4n3ahn
-4n3aho
-na2hö
-3nai
-na1i2d
-nai2e
-n1aig
-4n3air
-nai4re
-n2ais
-2n1ak
-3n4akä
-3nako
-na4kro
-4nakt
-na4kus
-n2al.
-na2l1a2
-nal3am
-na4lar
-na2lä
-2n1albk
-n2ald
-nal3da
-na2l1ed
-nal3ei
-na2l3ent
-na2ler2g
-na2lerm
-na2l3erw
-nales2
-nal1et
-nal1ex
-nalg2
-na2lid
-na2lop
-nal2ph
-n2als.
-nal3t
-nalt2a
-nal5t4r
-n2alty
-na2lu
-2naly
-na4mal
-na4mat
-3name
-4na4mei
-n4amen
-namens3
-4n1a4mer
-na4mid
-na4min
-na3m2n
-3n2amo
-n1amp
-nam4sp
-2n1amt
-namt2s
-na4my
-n1an
-4na2n4a
-na4nat
-n3a2nä
-4n3anb
-n3and2
-nan1eu
-4n3anf
-4n3ang
-4nanh
-2nani
-4n3ank
-4n3anl
-3n2ann
-4n3anna
-4nano
-nan2o3b
-4n3anp
-2nanr
-4n3ans
-2nantr
-2nanw
-n2anz.
-nanzen2
-nan4zeng
-nanzer2
-nan4zerg
-nan2zw
-na3ot
-na2per
-n1apfe
-2napfel
-na2pos
-n3a2pr
-n1a2q
-n1ar
-3nar.
-na2r1a
-2narc
-n2ard
-n2are
-n4are.
-3nari
-n2ark
-n2arle
-2narm
-n2aro
-na2rom
-na3rö
-n2arr
-nar2rh
-n2ars
-2nart
-n2arta
-n2arth
-na3r2u
-3nas
-n4as.
-na3sä
-na2schw
-4n1a4sp
-nas2s1c
-4n1assi
-nas4ta
-4na2sy
-nasyl2
-3nat
-n4at.
-n4ata
-na2tat
-na4t3au
-nat1ei
-na2tem
-na2t2h
-4natm
-nat2o
-4natom
-nat1r
-nat4sa
-nats1e
-na4tt
-n4a3tu
-n1au
-nauf2fr
-4nauge.
-3n2aul
-3naum
-na3um.
-4nausb
-4nausd
-4nausf
-4nausg
-4nausl
-n2auso
-4nausr
-4n3auss
-4nausw
-4nausz
-nau5te
-3nav
-nave4
-navi3er.
-navi3ers
-na2x
-1nä
-2näb
-3n2äc
-3näe
-2n1äf
-3näg
-nä2hi
-3nähm
-2n1ähn
-nä2hu
-3näi
-2n1äm
-nä4mi
-2n1än
-2näpfel
-2näq
-när4s5t
-nä2sc
-n2äss
-nä4st
-2näu
-3nä1um
-2nb2
-n3ba
-n3be
-nbe2in
-nber2e
-nber2gr
-nbes4
-nb4la
-nb4le
-nb4ri
-nbruch4s5t
-n3bs
-nby4t
-2n1c
-n2c3ab
-n3can
-n3ce4n
-n3ces.
-n4ch.
-nchi3en
-n3chl
-n4ch3m
-n2ck
-ncor2
-n3cr
-n3cu
-2nd
-nda3f
-nd2ag
-n3d2ai
-n2d1ak
-n2dana
-n2dani
-n2danz
-n3dat
-nd3att
-nd1au
-n2daut
-n2dax
-nd1äng
-nd1c
-nde2al.
-n3de1e
-n2dei
-nde3inf
-nde2lat
-nde3l2ec
-nd3elfe
-ndel3l
-ndel4s3a
-ndel4s3en
-ndel3ste
-nden3sk
-n2dentl
-n2dents
-nde3o2
-n3der.
-nde4rei4s
-n3deren
-nd2erh
-n3deri
-nder4läs
-nde2rob
-n2de2ros
-nder4sat
-nder3ste
-nd2es1
-nde2se
-ndes3s
-ndi2a3
-nd1imm
-ndo1c
-n2dof
-ndo2n3a
-n2dopt
-nd1or
-n2do2ri
-ndo1st
-n2d3ott
-n2dout
-n2dö
-nd2ös
-n2d3rat
-nd3rau
-n2d3re
-n2drif
-n2d3roc
-n2drod
-n2d3rö
-n2drui
-n2d3run
-n4dsb
-nd2sene
-nd4sf
-nd4sg
-n4dsl
-nd4sm
-nd2spr
-nd3th
-ndt4r
-n2duns
-ndy3
-ndys2
-1ne
-3ne.
-ne2ap
-3ne3as
-ne3at
-ne3au
-2n3ebene
-ne2bl
-2n1ebn
-neb4r
-2nec
-3neca
-3nece
-ne2ch
-ne1ck
-neck2a
-ne2dit
-2nee
-neei4
-ne3ein
-ne3eis
-neen2
-ne1en.
-nee1r
-neer4e
-n1ef
-n2ef.
-n2e3f2a
-2nefr
-2n1egg
-neg4l
-n1e2go
-neg4r
-n1e2he
-2nehe.
-2nehem
-nehen2
-ne3he2r
-3nehm
-2n1ehr
-2n1ei
-3neia
-4neic
-nei4dr
-4neier
-3neigt
-3neigu
-nei4la
-4neing
-4neinh
-4neink
-4neinl
-4neinr
-4neinz
-neiss4
-ne2ke
-2n1eks
-nek3t2
-2nekz
-ne2l
-ne3lä
-nel3b
-n1ele
-ne3leb
-2nelek
-2nelem
-ne3len
-ne3l2i
-ne4lim
-ne4lit
-3nelk
-n2ell
-nel2l1a
-nel2lei
-neller4f
-n2eln
-3ne3l2o
-3ne3lu
-3n2em.
-2n1emb
-ne5men
-n2emo
-4n3emp
-2n1ems
-3nen
-n4en.
-n2en3a
-nen4am
-ne2nä
-n2enb
-n2enc
-4n1endb
-4n1endd
-4n1endf
-n1endg
-4n1endh
-4n1endk
-n1endl
-4n1endp
-4n1endt
-4n1endw
-nene2b
-nen3ei
-nene4m
-nenen1
-ne4nene
-nen3erb
-2nenerg
-ne2n1eu
-n2enf
-4n1engb
-nen2gen
-nen4gen.
-4n1engs
-4n1engt
-n1engu
-nen2gun
-n2enh
-ne2ni
-n2enj
-n2enk2
-n2enm
-n2enn
-nen2nar
-ne2no4
-nen3s2e
-2nensem
-nen3sk
-nen3s2p
-5n2en3t2a
-4n1entb
-4nentd
-4nentf
-5n2enti
-2n1entl
-4nentn
-5n2entra
-nen2tri
-4n1ents
-4nentw
-4n3entz
-ne4n3u
-n2env
-n2enw
-nenz2er
-neo3b2
-ne2oh
-ne2or
-neos4
-ne2pen
-2nepf
-2ne4pi
-2nepo
-ne2pos
-nept4
-n4er.
-ne1ra
-ne2ra2b
-ne2rac
-ne2r3af
-ne2rag
-ne3r4al
-ne2ram
-ne2ran
-ne2r3ap
-n2erat
-ne2rati
-ne3rato
-ne2rau
-n2erb2a
-2n3erbe.
-2n3erben
-2nerdb
-ner2dig
-nere2
-ne2r1eb
-ne2rec
-n1erf
-2nerfas
-nerfor2
-3nerfr
-2nerfü
-2ner3g4
-n3ergeb
-4nergi
-3nergr
-n1erh
-n3erhö
-4nerhöh
-3neri
-neri2e
-n2erj
-n1erk
-3nerka
-n2erkö
-n4erleh
-n2erli
-2n1erlö
-n1ermi
-2nermit
-2n1ernä
-4n3erneu
-2n1ernt
-n1eros
-n1eröf
-ne1rös
-3n2ers.
-n1ersa
-3nerse
-ner4sk
-2n3ersts
-nert4
-3nert.
-ne2rup
-3n2erv
-2nerwar
-2n1erz
-n2es.
-ne2sal
-nes2an
-ne2sei
-n1e2sel
-ne2s1ev
-2ne3sh
-ne3ska
-ne2s1of
-ne2s1or
-ne2s3pa
-2n1es4si
-ne1sta
-ne2ste
-nes3ti
-2n1est3r
-ne1stu
-4nesyn
-ne2tab
-2ne4tag
-net1ak
-ne2t1an
-2ne2tap
-2ne2tat
-ne2te2l
-ne2th
-net3ha
-ne3ti
-ne4tim
-ne4tin
-ne2tob
-n2ett
-net3ta
-net3te
-net3t4r
-2n1e2tu
-net2zer
-net2z1i
-ne2u
-neu1c
-neu2ere
-neuer2f
-neuer2k
-neuer4s
-neuer2w
-neuf4
-neu3g4
-n2eun
-2n1eup
-neur2
-neu2ra
-neu3t
-3n2evi
-n2ew
-2n1ex
-ne2xi
-3nez
-1né
-2nf
-nf2al
-nfalt4
-nf2ang
-nf4ar
-n3f2ä
-nfe2i
-n3f2en
-n3f2er
-nf2es
-n4fex
-n3f2i
-nfi2le.
-nf4le
-nf4lö
-nf5löf
-nf2o
-nfo1s
-n4föl
-nf4re
-nfres3
-nf4ri
-nf4ru
-nf4rü
-nf3s2
-nf2tan
-nf5ten
-nf2t3r
-nft4st
-nfts3tr
-nf3tu
-n2f1u
-2ng
-n3gabe
-ng1abt
-n2g1a2c
-n2g1ad
-n2g1ak
-ng1a4me
-ng1ams
-ng3anda
-ng3angl
-n2ganh
-n4ganl
-ng1ans
-ng1ant
-ng1are
-n3g2ars
-n2g1a2v
-n2g1äl
-ng3d
-n2g1eif
-n2g1ein
-ngelb4
-nge3l2ei
-ngel3t4
-n3gene
-nge3nerw
-ngen3sa
-nge2ram
-n2g1erg
-nger2zä
-nger3ze
-n3ges
-nge3sa
-ng5füh
-ng5get
-ngg3s
-ng3hu
-n2g1id
-ng5käf
-ng2lad
-n3glas
-ng2läs
-n2glic
-ng4lok
-n3glot
-n2gn
-ng3ne
-n4g3ni
-ng4nom
-ng2nu
-ng2ob
-n2g1op
-n2g1o2r
-n2gö
-n2grai
-ng4ran
-n2g3rat
-ng3roc
-ng3rost
-ng4s3au
-ng4scr
-ng4sd
-ngs3e4h
-ng4sek
-ng4sf
-ng3span
-ng4spar
-ngs5tan
-ngs4teu
-ng3ts
-n2gum
-ngung4
-ngzei4t
-2n1h2
-n3ha.
-nhabe4r3e
-n5haltu
-n3he
-nhe2r
-n3ho
-1ni
-3n2ia
-ni3alo
-ni2ar
-nibb4
-ni1ce
-n1id
-3n2id.
-ni3da
-ni2de
-n2i3de.
-2nidea
-ni3den.
-ni3d4r
-2n3idy
-n2ie
-nie3b
-3nied
-ni2e1i
-ni1el
-nie3l2a
-nie4n3
-ni3ene
-nie2rei
-nie4rerg
-ni2erna
-nie2sa
-ni2eu
-nife4s3
-ni3fl
-niga4
-ni2g1ab
-ni2g1am
-ni2g1an
-4n3i2gel
-2niget
-n4igk
-ni4gl
-nig3li
-ni2gn
-nigs3c
-nig4sp
-nihi3
-ni2kar
-4nikei
-4ni2kel
-ni3k2erh
-4nikh
-ni2ki
-nik3ing
-ni2kor
-ni2k3r
-ni4ks
-nik3t4
-4nikun
-3n2il
-ni3l2a
-ni3l2i
-nil3l
-4nimp
-nin1
-3nin.
-3n2ina
-nin2ac
-ni2nal
-3n2inb
-2n1ind
-2ninf
-3ning
-n2ing.
-n2ingo
-ning4s
-2n1inh
-4n1ink2
-3nino
-ni2nor
-3n2inp
-2n1ins
-4ninse
-4ninsu
-4n1int
-ni3nu
-4n1inv
-3n2inw
-ni2ob
-ni3ok
-ni3ora
-n2ip
-ni4ron
-n1irr
-3n2is
-ni4sam
-ni2san
-ni2sä
-nis3cha
-ni2schw
-ni2s1e
-ni3se.
-4n3isol
-ni2som
-4nisot
-ni2sp
-ni3spi
-nis3s4
-nis3tha
-ni2s1u
-2nit
-3nita
-ni3th
-ni2ti
-4ni4tia
-nit2o
-3nit4r
-nit3s
-nit4ter4g
-nit4t3er4k
-nit2t3r
-nitt4sa
-ni3v2
-3nix
-2nj
-2nk
-nk1abr
-n2k1ac
-nk1a2ge
-n3kal
-n4kalg
-nk1ang
-nk1apf
-nk3art.
-n2katm
-n2kato
-nk1aus
-n2kaut
-n2k1äh
-n2k1äp
-nke2c
-nk1ei
-nk2eil
-nke2lei
-n2kelem
-nkel5ster
-n3ken.
-nke4na
-nken4te
-nker4fah
-nker3la
-n2k3erle
-nke2ros
-nk3ersa
-n2k3erwe
-n3kesc
-nke2t
-nk1eti
-nk1i2d
-n2kide
-nk1inh
-n2k1ins
-n2klade
-n2k1laf
-nk3leis
-n2k3len
-nk3les
-nk2lo
-nk4neb
-n2knis
-n2knit
-n2knu
-n2k1o4be
-n2kopt
-nko2r
-nkord2
-nk1ori
-n2k1ort
-n2köl
-nk4rab
-nk3rät
-n4k5re.
-nk3rel
-n2kren
-nk3rep
-n2krez
-nk3ro
-n2krol
-nk2sal
-nk2se
-nk3sen
-nk2so
-nks2p
-nks2ti
-nk3s2z
-nk2tak
-nk2tan
-nk4tau
-nk3tek
-nk4tent
-nk2terg
-nk2t3ern
-nkte3sk
-nkt2et
-nk2tin
-nkt1it
-nk2top
-nkt1r
-nkt3ric
-nk2tro
-nk2tru
-nkt2sen
-n2k1um
-nku2n
-nk1urh
-n2küb
-2n1l2
-n3la
-n3le
-nle2ga
-nleit6e
-n3li
-2nm2
-n3ma
-n3mä
-nmen2s
-2n1n
-n2nada
-nna2g
-n2nalg
-n4n1all
-n2n1amb
-n4nan
-nn1a2sc
-n2nau
-n3nec
-n3n2eh
-nn2ei.
-n3nelb
-nne4le
-nne4na
-nn2ens
-n4nentl
-n4nereig
-nner2fü
-nner4geb
-nn4ergr
-nn2erh
-nn2erk
-n2n3er2la
-nner4mit
-nn2ero
-nne2rö
-nn3erwa
-nner2z
-nne2s1e
-nn2eu
-nn2ex
-nn3f
-nng4r
-n3ni
-n4nid
-nnk2
-nn2o3b
-nn3obl
-nn3obs
-n2nof
-n2nop
-nno2r
-nn1ori
-nn4sam
-nn3s2p
-nnst2
-nn2stoc
-nn2stö
-nnst4r
-nnt2a
-nn5tag
-nn2th
-n2n1uf
-n2n1unf
-nn1ur
-nnvoll4
-nnvol3le
-1no
-3no.
-no3at
-3n2oba
-n2obel
-2nobj
-no2bla
-n2oble
-3noblo
-3noblö
-2n1o4b2s
-3noby
-no1c
-noche4
-noch4r
-2nod
-no2de
-nodi3
-no2ed
-n1of
-no4fe
-no5fes
-2noff
-n1oh
-n2ohe
-no3id
-no2kel
-2n1okk
-no3kr
-nola4
-no2lam
-n3ole
-no4lig
-no2liv
-2n3o2ly
-3nome3
-3nomp
-non2e
-n1onk
-nons4
-n1ont
-2nony
-no2o
-3n2opa
-3nopä
-no2pe
-2no2pi
-2n1ops
-no3p2te
-3nor.
-nor2a
-no2rad
-n2o1rak
-no3ral
-no3rar
-2norc
-nor4da
-3nordb
-nor2des
-nor2d3r
-nor2du
-no3r2e
-2n1org
-3norh
-3n2orl
-3norm
-norm2a
-nor3mal
-3norö
-3nors
-2n1ort
-3n2os.
-nos2e1
-no3sh
-nos2k
-no5ski
-no2s3p
-2no2sti
-nost1r
-2nostv
-nos2u
-no2tan
-no3tart
-no2tä
-no4t1e2i
-no4t3entr
-no4ter4
-noterb3
-no4tex
-not1h
-no2tho
-n4oti
-no2tin
-no4tl
-no2t3op
-no2t3r
-3nov
-2n1o2x
-3noz
-2nöd
-2nöf
-nö4fe
-2n1ök
-2n1öl
-n2ör
-1n2öt
-2np2
-n3pa
-npa2ge
-npa2s
-n3pf
-np4fu
-n3pl
-np4lä
-np4lu
-n3pr
-npro1
-n3ps
-npsy3
-n3pü
-2nq
-2n1r2
-n3ra
-nra3di
-nran2d
-nräu3s
-n3re
-nrebe2
-nre3s4z
-nro2h
-nrö2s
-n3ru
-nrücker4
-2n1s
-nsa2b
-n3sabo
-n2s1a2d
-n2s1a2gi
-n3saka
-nsa4kr
-n2sall
-ns4alp
-n2salt
-ns2anat
-ns3ane
-n2sanm
-nsa2r
-ns2arg
-n3sark
-nsa2st
-ns4ath
-nsau4e
-nsau4r
-nsau2s
-n2saut
-ns2av
-ns2ax
-n2s1än
-ns2äug
-n2s1äus
-n4schemi
-nscher5g
-n4schl.
-nsch2o
-nscht4
-n3schu
-nsch5werd
-ns2cr
-ns1eb
-n3sed
-ns2eh
-nse2ha2
-nseh3ere
-n2seinf
-ns2ele
-nse2l3en
-n2sem.
-n2sene
-nsen2sp
-n2sepo
-ns4eq
-nse2rei
-nser4en
-n2s1erf
-n2s1erg
-n2s1erh
-n2s1erk
-ns2erko
-ns1erl
-n2serle
-n2s3erne
-n2serö
-ns1ers
-ns3ertr
-nser2u
-n2s1erw
-n2serz
-n2sety
-n2s1eu
-ns2ext
-nsfi2l
-ns4ic
-ns3iden
-ns4ie
-ns4ig
-n3sim
-n4simp
-n2sini
-nsinn2
-nsinns3
-n3sis
-n4siso
-nsi4te
-nsi2tr
-n3skal
-n3s2kel
-ns2kis
-n3skle
-n4skü
-n3s2ky
-n3smara
-ns3ob
-n2s1o2d
-ns1of
-n4soff
-ns4om
-n4s3ont
-n2s1op
-n2s3ort.
-ns2pac
-nspa2g
-n4sparti
-ns2pas
-ns4pel
-n2speri
-n2s3ph
-n3spi
-ns4pir
-n2spo
-n2sprä
-n2s3prie
-n2spro
-n2sput
-nsrü2
-ns3s2
-nss4t
-n4st.
-ns3tabl
-n3stad
-ns4tagent
-nst1ak
-n2stale
-ns4ta2n1
-n3stand
-nst3ane
-n3star
-n2stas
-n2stat.
-n4staten
-ns4tati
-n2stats
-n3stäm
-ns3täti
-nst3eife
-nst5einhe
-ns2temp
-ns4tent
-ns2tep
-nst3erge
-n3s4terne
-n3s4terns
-ns4teu
-ns2ti
-n3s4tic
-n3stif
-n2stilg
-n3stim
-n2stob
-nst3opfe
-ns4tor
-n2strie
-n2strik
-ns4trip
-ns4trun
-ns2tu
-nst3u4t
-ns4tüm
-nsuli2
-ns2um
-ns1un
-ns2ung
-ns4unk
-ns2unw
-ns4unz
-n2s1ut
-n3sy
-ns4ys
-n4sza
-ns4zene
-n4szo
-n4szu
-n4szü
-n4szw
-2nt
-n3t2a3c
-ntags4t
-ntak2ta
-ntal3ar
-nta2lin
-n4t1all
-nta2lo
-nt2alp
-n3tam
-n3t2anb
-nta3ne
-nt1ant
-n2tanza
-ntar3ak
-nt2arb
-ntar2c
-nt1ark
-nt2arm
-nt1art
-n4tarti
-ntar4tik
-n4t3artu
-ntasi2
-n2t1ass
-n2tath
-n3tatl
-nt1äm
-n2t1äu
-nte3au
-nte1e
-nte3g4
-nt1eh
-n3tehe
-n2teig
-nt1ein
-n2t1eis
-nte2lin
-n2temä
-n2t1e2mo
-nt4en
-nte4na
-n4tenpä
-nten4te.
-ntera2
-nte4r3eis
-nter3g
-nt4erh
-nt4erk
-nt4erm
-nt4ern
-ntern2e
-nt4erp
-nt4ert
-nte3sa
-n4t1es4s
-nte2st
-n4testri
-n4te4ta
-nteu3
-nteu4eri
-nte3v
-nt1hel
-nt1hie
-nt1ho
-nt2hos
-n2thot
-nt4hu
-n2t5hum
-nt2i
-nti3c
-nti2en
-ntim3p
-n2t3ind
-nt3inf
-nting2
-nt3inh
-ntini1
-nt4i3t
-n3t2lem
-ntmen2
-ntni2
-ntnis1
-nt4od
-nt4om
-nto3re
-n4torg
-n4t3o2rie
-nt4ou
-n4t1ox
-n2t1öl
-nt4ral
-nt1rau
-nt4raum
-nt5re.
-nt3rea
-nt3rec
-n5t4ree
-nt3reif
-n5trep
-nt4repr
-nt4ré
-nt3rich
-n4t3rieg
-nt3ring
-n2troh
-n2tropi
-n2t3rü
-nts2ah
-nts3k
-nt3s2p
-nt5spe
-nts2t
-nt2sur
-ntt2
-n3tub
-ntu4re.
-ntu1s
-n3t2ü
-nt3z
-nt4zk
-1nu
-3nu1a
-nu3a2r3
-nubi1
-2nu1c
-3nud
-nude2
-3nue
-nu2es
-nu4fe
-3nug
-2n1uh
-3nuhi
-3nui
-n2uk
-nu3k4l
-n3u2kr
-null1a
-nulle2
-null3eb
-n2um.
-2n3umb
-n2ume
-2numf
-4numg
-2numl
-3n2umm
-4n3umma
-4numr
-2n1ums
-2n1umv
-2n3umz
-nu2n
-4nuna
-2n1une
-3n2ung4
-4n3ungl
-4n1uni
-n3unk
-2nunr
-nun3s
-4nunt
-4nunv
-3nunz
-3nuo
-2nup
-2nu2r
-nur2i
-nur3s
-nur2z
-3nu2s
-nu3sc
-nu3se
-nu3sk
-nu3spo
-nus2s3er2
-nuss3p
-3nut
-nu2t1a
-nuti2v
-n3uto
-nu2top
-nu4t3r
-3nuu
-3nux
-3nuz
-3nü.
-2nüb
-nü4be
-nür1c
-3nüs
-1nüt
-2nv2
-n3ver
-n3vl
-nvoran2
-2nw
-nweis3s
-1ny.
-2n1ya
-n2ya.
-1nyh
-n1yo
-1nyr
-1nys
-1nyw
-2nz
-n2zac
-n2z1a2g
-n2z3a4k
-n2z3a4ne
-n2zant
-n2zar
-nz3a2ri
-nza2s
-n2zat
-n2z1au
-n2zän
-n2zär
-nze4la
-nzel4lig
-n3zeni
-n2zense
-n2zentl
-n2zents
-n2z1erh
-nz1erl
-nzer2lö
-nz4err
-nz3erste
-nzer4tra
-n3z4es
-nze3sk
-nze2t
-nz1eta
-nze3u4t
-n2z1id
-nzi2ga
-n2zinh
-n2z1ini
-nz1int
-nz1inv
-nz3le
-n2z1op
-n2zöl
-nz3st
-nzt4r
-nzu3p
-n2z3wa
-nz3wä
-n2zwet
-n2zwir
-n2zwö
-n2z3wu
-1ñ
-ño1
-ñor2
-2o1a2
-oa3bi
-o2ac
-oa3che
-oa3chi
-o2ad
-oa3de
-oad4st
-o3ah
-oa3in
-oa4k1l
-oa4ku
-o3al
-o4a3la
-oa4lg
-oa4ls
-oa4me
-oa4mé
-o2ami
-oa4n4a
-oa4nn
-o2a3q
-o2ar
-oa4re
-o2as
-3o4a3se
-o3ass
-oa4tr
-2o1ä
-2ob.
-o3b2al
-ob2am
-2ob2ar
-2obau
-ob1auf
-2o3b2ä
-2obb
-ob2e
-2obe.
-2obea
-2obec
-2obef
-o2b3ein
-2oben
-obe4na
-oben3d4
-1o2ber
-2o3ber.
-ober3eis
-ober3in
-obe4ris
-2obev
-2obez
-2o3b2i
-obi2e
-3obj
-ob1la
-ob3lei
-1ob3li
-ob4lit
-2oblo2
-2ob2lö
-ob2lu
-o2boe
-ob1or
-2obot
-2obö
-ob3rei
-2obrü
-ob3s2h
-ob3sk
-obs4p
-2o3bu
-o4bunt
-obu2s
-2o3bü
-o4büb
-2o3by
-oby4t
-2oc
-o3ca
-oc1c
-3occl
-o1ce
-och1a
-ocha2b
-ocha2r
-o1che
-oche2b
-o2ch1e2c
-och1eh
-och1ei
-oche2l
-ocher2k
-ochi4d
-ochi3e
-och3l
-och3m
-och1o
-ochö4f
-och3r
-och1s
-ochs4p
-och3t4e
-o1chu
-ochu4f
-och3u4t
-och3w
-o1ci
-o1ck
-o2ckar
-o2ckau
-o3cke
-o4ck3er4sc
-o3cki
-oc4ko
-o4cks
-ock3sz
-ock3ta
-o1cl
-o3cu
-2od2a
-od3ak
-od2dr
-o3dec
-o3d2e3i
-odein3
-ode2l3ag
-ode2man
-ode2n1
-ode2s1e
-ode3sp
-od2et
-o3dex
-od2i
-2o3dia
-2odic
-2odif
-2o3dir
-2odn
-o2don
-o2d1op
-odo4s
-od2ö
-2odr
-odt4r
-2o3du
-o3dy
-ody4m
-2o1e
-oe2b
-oe2c
-oe3de
-oe2h
-oe2l
-oe2m
-oe4mi
-oen1e
-oe4nz
-oe2p
-o2es
-oe2sc
-o2et2
-o3et.
-oe4ta
-o3ets
-oe2v
-oe2x
-o1ë
-o2f
-2o3fa
-ofa2c
-of1a2d
-of1a2g
-of2an
-of1au
-2o3fä
-of1är
-ofdie3
-o3fe
-o4f1e2b
-o4f1ec
-2ofee
-o4f1ei
-2ofem
-o4fent
-2ofer
-o4ferb
-o4f1err
-2of2es
-o4f1e2t
-2ofeu
-of2f1a
-off3erz
-of2f1in
-1offiz
-of2f3l
-2offn
-of2f1o
-of2f3r
-offs2
-off3sh
-off3si
-off3sp
-2o3f2i
-ofi3e
-ofie2i
-ofi3k4l
-ofi3s4
-2o3fl
-of3le
-of3li
-of4lö
-2o3fo
-2o3fö
-2o3fr
-of3rä
-of4ru
-of4rü
-of2s1
-of4sam
-of3sä
-ofs2ch
-ofs3p
-of3sta
-of4staf
-ofs3te
-of3sti
-of3str
-2oft
-oft2a
-of2tei
-of3th
-oft4r
-2o3fu
-of3uh
-of3ur
-o3fü
-2og
-o2g1ab
-o2g1ac
-oga3d
-og1ang
-og1ans
-o2g1e2i
-oge2li
-ogener2
-ogen2id
-ogerätein6
-ogeri2
-o2g1eth
-og2gl
-o3gh
-ogi4e
-o2g1ini
-o2g3ins
-og1l
-og3le
-og2lo
-o3g2n
-og4na
-og4ne
-og4ni
-og1o2ri
-ogs2
-og3s4p
-og1ste
-og3sti
-2o1ha
-o3ha.
-oh1alk
-oh1ar
-o1hä
-o1he
-o3he.
-oh1eis
-o3hem
-o3hen.
-ohen3s
-o3her.
-o3here
-oh1er4t
-oh1er2z
-o3hes
-2o1hi
-2ohl
-ohl1a
-oh2la2d
-oh2lä
-oh3lec
-ohl1ei
-ohle3l
-oh3lep
-ohler2
-oh4lerg
-oh4l3erh
-oh4lerw
-oh3lo
-ohl1o2r
-ohls2e
-oh2lu
-1ohmi
-ohn1a
-oh4nac
-oh3nee
-oh2ni
-1ohnm
-oh2n1o
-ohn3sk
-2o1ho
-oho2l1e
-ohol1o
-oh1o2p
-2ohö
-oh3öl
-ohr3a
-oh2rel
-oh2rem
-ohren3s
-ohrer2
-oh2rerg
-oh3rers
-oh3ri
-oh4rin
-oh4rol
-1ohrr
-ohr5t4r
-oh1s
-oh3sa
-oh3t
-o1hu
-oh3w
-2o1hy
-2oi
-o1i2d
-o3ida
-o1i2m
-o1in
-o4ine
-oi2r
-o3isch.
-o2ische
-o1ism
-oiss2
-o1i2t
-oi4ta
-oi3te
-oi3th
-oi3ti
-oi4tu
-2oj
-ojek4tori
-ok2a
-oka3b2
-o2k3ac
-oka3i
-oka2la
-okale2
-okas4t
-ok2e
-oki4o
-ok2la
-ok3lau
-ok1lä
-ok2li
-ok4na
-ok2o
-2okr
-ok2so
-ok2sp
-ok3t2
-ok5tor
-3okw
-2ol
-o1la
-ol3abu
-olaf4
-ol1ami
-ol1ant
-ol2ar
-olar3s
-o3l2as
-olast4
-o1lä
-ol1ät
-ol2chr
-ol4d1am
-ol2dä
-ol2d1ed
-ol2d3eng
-old3ersa
-olde2s
-ol2deu
-ol2dim
-ol2d3o
-ol2d1r
-4o3le.
-ole2e
-o2l1ef
-ol1eie
-o2l1eis
-ol1emb
-oler2
-ol1erk
-ol1er3t
-ole3s
-ol1ess
-ole2s2t
-ole4sti
-ole3u2
-ol1exz
-ol2fa
-ol2fem
-ol2ferl
-ol2f3l
-olf1r
-ol2fra
-olft4
-olgege3
-ol2gl
-ol2gr
-olie4n1
-oli4er
-oli3k4
-o4l1ind
-oli5tu
-oli6tun
-3oliv
-ol3ke
-ol2kl
-ol2k3re
-ol2kro
-olks3
-olk4sc
-olk4si
-ol2l1ac
-ol2l1ad
-ol2l1ak
-oll3am
-ol2lanh
-ol2l1au
-ol2l1e2b
-ol4l1e2c
-ol2l1ei
-ol2lel
-ol2lent
-ol2l3erh
-ol2ler2k
-ol2l3er2l
-ol2l3erw
-ol2l3ess
-ol4lk
-ol2lop
-oll3s2a
-oll3sp
-ol2of
-oloni2e
-olo3p
-ol1ort
-olo1st
-olo3t
-ol2ov
-ol3s2k
-ol4ster
-ol3t2h
-o1lu
-ol2y1
-4o3lys
-ol2z1a2
-olzer2
-ol4z3ern
-ol2zers
-ol2zim
-ol2zin
-ol2zo
-ol2zw
-ol2zy
-2o2m
-o3ma
-o4ma2bl
-o4m1a2ge
-om1alg
-om1all
-o5man.
-oma2n3er
-o4m1ang
-omani2e
-om2anr
-om3ansc
-o4m1ap
-o4m1ar4s
-o4m1art
-omar4te
-o4ma2sy
-omat2i
-o4matom
-o4m1au
-o3mä
-o3me
-o4meb
-om1ebe
-o4m1ef
-om1ei
-o4meis
-o4mele
-omen3t4an
-o4mep
-omer2
-o5mer.
-om1erh
-o4meru
-om1erz
-o4mex
-o3mi
-omi2c3
-omi2e
-omiet1
-om1ind
-om1ing
-o4m1inn
-o4m1ins
-o4m1int
-o4miso
-om2it
-om3ma
-omm2e
-3omn
-o3mo
-o4m3oa
-o4m1org
-om1o2ri
-o4mox
-o3mö
-ompani2
-om3pf
-oms2
-om3sk
-omt2
-om3th
-o3mu
-o4mum
-o4munt
-o3my
-2ona
-on3a2b
-on2ac
-ona3g
-o3nal
-on3ann
-onanz3ei
-o2n1ap
-o2n3arb
-ona3th
-4onatol
-onat2s
-o4n3at4t
-on2au
-2onä
-on1äh
-on2dan
-onde4rers
-ond1r
-on2dra
-on2drin
-on2d3rü
-ond3sk
-2one
-o2n1e2b
-on1ec
-one2ck
-o3nee
-o2nef
-one3h
-o3neig
-on3ein
-on3ele
-on1ema
-one4n1
-o4n3ends
-on2eng
-onen3s2
-onenz4
-on1ep
-o3ner.
-on1erb
-o2n1erd
-oner2fa
-o2nerh
-on2erka
-on1ers
-o3nes
-o3nett
-on2eu
-on3f2
-on3gl
-ong4le
-ong4r
-ong3s2
-on2gue
-2o3ni
-oni3de
-onie3g
-oni2ga
-o4nikan
-o4nikb
-o4nikf
-o4nikg
-o4nikk
-o4nikl
-o4nikm
-o4nikp
-o4nikr
-o4niks
-o4nim
-o4nind
-o4ninh
-o4nins
-on3k2
-3onke
-onk4n
-onli4
-onlo2c
-onna2
-on5n2an
-on3n2e
-2ono1
-o3nod
-o2nof
-o2n1oke
-o3nom
-on1orc
-on3ord
-ono3s
-ono3t2
-ons1a
-onsa2g
-on4sam
-onsau3c
-onsch2
-on2seb
-on4sed
-onsen1
-onse4t
-onsi2d
-ons3ing
-ons3l
-on4spin
-onst2a
-onst4r
-ons5tri
-on3ta
-on2t1eb
-ont5end
-on2t3erl
-on2th
-on2t3rat
-2onuk
-o3nur
-2onut
-on3v
-1ony
-o3ny.
-on3z2
-onze3in
-oo1c
-ooch2
-oo2gl
-oo2k3l
-oo2kn
-oo4mb
-oo4mo
-oo2ne
-o1o2p
-oo3pa
-oop2s
-o1or
-oor3a
-oor3d
-oo4sk
-oos3s4
-oo2su
-oo2t1a
-oo4t1ei
-oo2t1h
-oo2t3o
-oo2tr
-oot2st
-oot3t
-oo2tur
-2o1ö2
-2op.
-op3adr
-op1akt
-opa2le
-op1ang
-opa1s
-opa5s4t
-2opä
-1ope
-2o3ped
-o4p1ef
-2opei
-2opel
-2open
-2opep
-o2per
-o4pera
-op1erh
-2o4pf.
-op2f3a
-op3fah
-o3p2fä
-o4pfe
-op2fem
-op2fin
-opf3la
-op3flü
-op2fo
-2oph2
-o3phe
-opi3a2
-opia4t
-opie2r3u
-opin2
-2opl
-op3lag
-op3le
-op5leu
-op2ne
-2opo
-opo4la
-op2pan
-op4pl
-1oppo
-op2p3r
-2oppt
-2opr
-op3rec
-3o4psi
-op3sz
-1opt2
-2opte
-op3th
-o4pti
-opt4r
-o2pum
-2o3py
-2oq
-2or.
-or1a
-2o3ra.
-o1raa
-2or3a2b
-o2rabb
-o2r3add
-or3adr
-o1r2ag
-1orake
-ora4ku
-o1ral
-o4r3alm
-or4alt
-or2am
-or3a4mi
-o1ran3d
-or4ane
-oran2f
-oran2m
-oran2ze
-or3app
-2orar
-o1r2as
-o2r3att
-2orau
-oraus4wa
-or2av
-2o3raw
-o1ray
-o3rä
-or1änd
-or1ät
-orb2l
-or1c
-2orca
-2ord.
-4orda
-ord1am
-or2d1ar
-or2dau
-2ordb
-or3de.
-ord3eng
-ord3ermi
-or2d3erw
-orde4s
-or2deu
-or2d3ing
-or2d1ir
-or2dit
-1or4dn
-or2do2
-2ordr
-or4ds
-ord3s2t
-ord3t
-2ordu
-2ordw
-2ore
-ore4as
-o2r1e2b
-o2r1e2ck
-or1e2di
-o3ref
-or1eff
-ore2h
-o2r1ei
-o3rei.
-o3reie
-o3r2eif
-o3r2eis
-orems2
-o3renn
-oren4ne
-o3rep
-o2r1er
-o3r2ere
-o3r2ero
-ore4th
-o2r1eu
-2orf
-or2fac
-org4a
-org2e
-2orget
-or3ghi
-2orgia
-1orgi3e
-or2gl
-or3gla
-or3gle
-or2gn
-or3gne
-2orgr
-2orh
-2o3ria
-2or2id
-orid3i
-4o3rie.
-o3rien.
-ori4eng
-ori4enr
-o4rienti
-ori4env
-o3rier
-o3ril
-ori3m
-or1ima
-ori4mi
-2orin
-o2r1ind
-2or4io
-o2riso
-2orit
-2ork
-ork3sh
-2orm
-or2mam
-or2mang
-or2mans
-orm3asp
-or2m1eb
-or2m3erf
-or2mer2g
-or2mor
-orm3ord
-orm3org
-or2mum
-ormu4n
-or4muni
-or4munt
-ormwa5r
-orna2c
-orn3ack
-or2nal
-or2nan
-or2nar
-or2nau
-or5ne.
-or4nei
-or5nes
-or3ni
-or4nin
-or3no1
-2o1ro
-o2r1ob
-or3oly
-oro3n2a
-or1opf
-o2ro2r
-o3rou
-or1ox
-2o1rö
-2orp
-2orq
-2orr
-orr4a
-or3r2e
-2ors
-or3s4a
-or3sche
-or3sh
-or3si
-or3s4k
-ors3tun
-or3sz
-or2t1ak
-or2t1an
-orta2r
-or2tef
-orte4n
-or4ten3g
-ort3erb
-or2tere
-or2t3erf
-or2t3erg
-or2terk
-or2t3erl
-orter4sc
-or2t3e2v
-or2the
-orti3en
-or2tin
-or2t3off
-or4t1o2r
-or2tö
-ort3rad
-or2trau
-or2t3räu
-ort3re
-or2tro
-or2t1um
-or4tü
-or5tün
-2o3ru
-or2uf
-or1uh
-orum4s
-o4r3un
-oru2r
-o2rü
-or3z2e
-orzel5
-or2zw
-2o3s2a
-os3ad
-osal2
-o4s3ami
-osa1s
-2osc
-o4s3ca
-osch3ar
-o3sche
-osch3le
-os4co
-2ose
-ose1e
-ose1in2
-os2el
-ose3l2a
-o2s1er2k
-os2ex
-2osh
-o4sh.
-o3s2hi
-os2ho
-o4shö
-o4shs
-os4hu
-2osi
-os4it
-o3sk
-o4sk.
-2oska
-os2kal
-o4skb
-o4ski
-2os2kl
-2os2ko
-o4skr
-o4sks
-o4skv
-o4sky
-1osm
-os4mog
-2oso
-osol1
-o2sö
-2osp
-os5pfa
-o3sphä
-os3pi
-o3s2po
-os4pot
-os4pt
-os4pü
-os2sa
-oss2abb
-os4s3a2c
-os3sag
-oss3ala
-oss3and
-os4sä
-os2sei
-oss3enke
-os4s3enz
-os2s1ep
-os2s3er4b
-osser2e
-os2serf
-osseri2
-os2serz
-os5set
-os4sik
-os4sim
-os2s1o2
-os4son
-os2s3p
-os2s3t
-os4sü
-ost3abl
-ost1am
-ost3ang
-ost1ap
-os5tarr
-os4tat
-ost1a2v
-oste2c
-oste2n
-ost3engl
-oster3e
-os6ter6weit
-ost3eur
-os2t1h
-os2tid
-osti3en
-os3til
-os2tin
-os3tina
-os2tit
-os3to
-os4tob
-os4tor
-ost3ran
-ost3rä
-ost3re
-ost3rot
-ost3uf
-os2tug
-2osu2
-os1um
-osu4r
-2o3sy
-osyri5
-o3s4ze
-2o2ß
-o3ße
-o4ßef
-o4ßei
-o4ß1el
-oß1ent
-o4ß1en2z
-o4ßep
-oßer2
-o4ß1erb
-o4ß1ere
-o4ß1erf
-o4ßex
-o3ßi
-oß1is
-2ot
-o3tabe
-o2t3abi
-o2t1ah
-o2t1ak
-o3tam
-ot1ant
-o3tark
-ot1a2st
-o2t1att
-o2t1au
-o3tau.
-ot1ä
-o3te
-o4teb
-ote1i
-o4t1eib
-o4t1eic
-otei4n
-ote3in.
-ote3ine
-ot3einh
-ote3inr
-o4t1eis
-ot2el
-ote4l1a
-ote2lin
-otel3s2
-o4t1emi
-ot2em3p2
-ote4na
-otens4
-o4tentb
-ot1erb
-o4t1er2l
-o4t1erw
-ot2e2s
-ot2har
-o2them
-o2t1hi
-o2thu
-o2til
-o2t1i2m
-otli4
-ot2o
-oto3b
-ot3off
-oto2ph
-o2t1ö
-otra3c
-o3t4ran
-ot3rat
-ot3re
-ot3ric
-ot4rig
-ot3rin
-ot2s3at
-ot3sch
-ots1o
-ot2s3pr
-ots3tau
-ot3sti
-ot3stra
-ot2su
-ott1a
-ot4tan
-ot4ta4s
-ot2teb
-ot2terh
-ot2ter2k
-otte2s
-ot2t1h
-ot2tim
-ott2o
-ot2t3r
-ot3t4ra
-ot4tri
-ot3t4ru
-ot1url
-o3tü
-ou3f4l
-oug2
-ou4ge
-ou3gl
-o1uh
-ou1is.
-2oul
-ou2le.
-ou2les
-ou4li
-2o1um
-2o2u2n
-oun2ge.
-oure2
-ou2ret
-ouri4
-ourie4
-ourme4
-our4ne.
-ou3sa
-ous2i
-ousi2e
-1outf
-ou3ti
-3outp
-out3s2
-ou3tu4
-2o1ü
-ov2a
-2ovel
-o3ven
-ove3s4
-oviso3
-2ovo
-2ow
-o4w3al
-o3wec
-ow2er
-o2wer.
-o2wh
-owi3en
-o3wj
-ow4su
-o2wu
-2ox.
-o1x2a
-2oxe
-o2x1el
-o2xid
-2oxk
-ox3l
-o2x1u
-1oxy
-o1yo
-oy1s2
-oz2
-o3za
-1ozea
-2o3z4en
-ozen2ta
-ozes4sc
-2o3zi
-ozir3
-ozon1a
-2ozy
-ó2k
-ór3d2
-ö3ba
-öb4au
-öb2l
-ö2b3le
-ö2b3r
-öb2s3
-2ö1c
-öch1l
-ö2chr
-öch2s
-öch4ste
-öchst3ei
-öchst3r
-öchs2tu
-ö3cke
-ödel3l
-öde1r
-ödi3
-ödienst6
-öd2st
-1ödu
-ö1e
-1ö2f
-ö3fe
-öf2fl
-ö3fi
-öf3l
-öge3le
-ögen2s1
-ö2g3l
-ö2g3r
-ö1he
-öhe4n1
-öhl4e4
-öhre4
-öh3ri
-ö1hu
-ö3ig.
-ö3isch.
-1ö2k2o3
-ö2k3r
-ök2s
-ö2l
-3öl.
-öl1a2
-öl1ei
-öl1em
-öl4en
-öl2f1ei
-ölf2er
-öl1in
-ölk4e
-öl2k3l
-ölks4
-öll1a
-öl3le
-3ölm
-öl2nar
-öl1o
-ölo4f
-öls2
-öl3sa
-öl3sz
-öl3tu
-1ölu
-ölz4w
-öm2s
-ön2e
-ö3ni
-önizi1
-önn2e
-ön2s
-ön3sc
-ön3sp
-ö3o2ta
-öoti1
-2ö2p
-ö3pe
-öpf3l
-öp4s3t
-ör3a2
-öra4k
-ör2b3l
-ör1c
-ör3de
-ör2dr
-ör3dra
-ö2r1ec
-ö2r1ei
-ö2r1e2l
-ö2r1e2m
-öre2n
-ö2r1ene
-ö2rent
-ö3r2erb
-ö2r1e2r2e
-ö2rer2f
-ö2rer2g
-ör2erh
-ö2rer2l
-ör2err
-ör2erw
-ö3r2erz
-ör1ess
-ör2f3l
-ör2gl
-ö2rim
-ör2kl
-örn2e
-örner2v
-ör1o2
-örpe2
-örs4e
-ör3s4k
-örs3t
-ört2e
-ör5tri
-öru2
-ö2r1une
-ö2sa
-2ösc
-ö2sch3a
-ösche2
-ö2sch3ei
-ö4schen4e
-öscher4
-ö4sch3erf
-ö4sch3eri
-ö2schi
-ö2sch1l
-ö2sch3m
-ö2schn
-ö2schw
-ös1ei
-ö2sein
-öse3str
-ö3set
-2ösl
-ö2sp
-ös2s1c
-ös2st
-ö2st
-öst1a2
-ös3te
-ös2th
-ös3tr
-ö3su
-ößen3
-öß2ti
-ö2t3a
-öte4n1
-ö2t3r
-öts2
-öt2sc
-öt2tr
-öv2
-öwe2
-öze3
-özes4
-1p
-3paa
-p1ab
-p2abe
-pab2l
-pab4rü
-2pabw
-3p2ad
-2padr
-pae2
-pa3el
-pa2es
-pa3fr
-3pag2
-pa3gh
-pa1ho
-3pak
-pa3kl
-pak4to
-3pal2a
-pala3t4
-3palä
-3pal2e
-pa3l2i
-pal2ma
-pal2mä
-pal2m1o
-2palt
-pal2t1a
-pal2tei
-pal2tr
-pa4m3a
-pa2nar
-pa4n3at
-pan3d
-pand2a
-pan4ds
-pa2neu
-pang4
-2pange
-pa4nisl
-pank4
-2panl
-panne2
-pan4n3eb
-4pannu
-3pa2no
-pan3sl
-3pan3t2h
-3panto
-2pantr
-3panz2
-pan3ze
-3pap
-papieren4
-papie6r5end
-pap2pr
-pap4s
-papst1
-pa2r3aff
-par3akt
-pa2rant
-pa3rap
-pa2rä
-2parb
-p2arc
-par3d
-2parer
-parer2g
-2parg
-pargel4d
-pa2rid
-3park.
-park3am
-par2kau
-par4kr
-3parks
-par3m2
-pa2ro
-2parp
-4parr
-4parta
-3partei
-3parti
-3partn
-3party
-2parv
-2parw
-par3z4
-pas2e
-pa3s2p
-pa4spe
-passer2
-pas2sp
-pa4st
-pa5str
-2paß
-2pat.
-pat1a
-pa5tag
-pat4c
-pat4e2
-pa5ten
-pat2h
-3pati
-3pat4r
-pa5tri
-3pau
-4p1auf
-pa3uni
-4pausz
-pay2
-3pä2c
-pä3cke
-pä4ck3er
-3päd
-pä2d1er
-3päs
-pä4ta
-pä4t1e2h
-pä4tent
-pä4tep
-pä4t3erb
-pät1h
-pä2to
-pä4tr
-pät3s4
-2pb
-2p1c
-p3ch
-2pd2
-pda2
-pda4t
-pe2a2
-pea4r
-p1e2b
-pech1
-3pech.
-3peda
-3peel
-2pef
-4p1eff
-3peg
-pege2l
-pei1
-4peic
-p2eim
-4peis
-pekt2i
-3p2el
-pe4l3ab
-pe4lai
-pe2l1au
-pe2l3ax
-pe2l1ä
-pelb2
-pel3d4
-pe4l1e2h
-pe2l1er
-pe2let
-pe2leu
-pe4lh
-peli2d
-peli4n
-pe2l3ink
-pel3inn
-pel2ins
-pel3k
-pel3l2a
-pell4e
-pell2i
-pe2lob
-pels2
-pel3sp
-pel3t2a
-pe2lut
-pel2zin
-pena2r
-pe4nas
-pe2nä
-pen3d2a
-pe4nen1
-3penh
-pe4ni2t
-pe2n1o
-pens2a
-3pen3s2i
-pen3s2o3
-pens2p
-3pensu
-pen3sz
-pent2a
-2pentw
-penty2
-penu2
-pen3z4
-3pep
-pe3pi
-pept2
-pe1ra
-4perad
-pe2rak
-pe2rau
-pe2r1ä
-per1e2b
-perer2
-perer3s
-perer3z
-pere1s
-per2id
-pe3r4io
-3perle
-per2r3an
-3pers
-4persi
-peru4
-pe3run
-3perü
-perwa4r
-pe3s2a
-3pes3s2
-pes2ter
-pest1o
-3pet
-pet4r
-2pf
-p2f1ab
-p2fad
-pf4ah
-pf1ai
-p2f1ak
-pf1am
-pf1ans
-p2fa2r
-pf3are
-p2f1au
-pf4av
-p2f1är
-p2f1äu
-4pfe.
-p2fef
-p2fei
-pf1eim
-pf1ein
-pf1e2m
-p2fener
-p3fens
-p3fent
-p2f1enz
-p2f1ep
-pfer3a
-pfer4pro
-pf4es
-p2f1et
-pff4l
-pff4r
-p2f1i2d
-pf1inn
-p2f1in3s
-pfi2s
-p2fl
-pf1lam
-pf4lan
-pf4leg
-pf3lei
-pf3lo
-pf4lü
-4pf5lüm
-pf4lw
-pfo2
-p2fob
-p2fom
-p2for
-pf1ori
-p2f3r
-pf1ra
-pf4rä
-pf4ro
-pf5roc
-pf5roh
-pf4rü
-pfs2
-pf3sa
-pf3se
-pf3sl
-pfs4ti
-pf3sz
-pf3t2
-pft4r
-p4fuh
-p2fum
-2pg2
-p3gl
-pgra2
-2ph.
-ph2a
-phal4te4
-p1hand
-3pha3s
-p1hau
-phä1
-4phär
-2phb
-2phd
-2p1hei
-phen3d2
-phe4n1e
-phen3s4
-2ph1ers
-2phf
-2phg
-p2hid
-phik1a
-phi2kan
-3phil
-phi2t
-2phk
-ph2l
-2phm
-2phn
-p2ho.
-p2hob
-2phö
-ph2r
-2phs
-ph3t2
-2phthe
-phu4s
-phu3t
-2p1hü
-3p2hy
-4phyk
-2phz
-p2i2a3
-piab4
-pia5ka
-pi4ali
-pi4an
-piap2
-pia4tr
-pi1ce
-pid2
-pi2e
-pie1i
-piela2
-pieler4ke
-pi3ent
-3pier
-pie2ra
-pie2reb
-pie2rei
-3pig
-pi3gl
-3pil
-pi3le
-pill2
-pil2zer
-pil2zw
-p2im
-pi2nad
-4pind
-pingen2
-ping3s
-3pinse
-pin3sp
-pi2o
-pi3onu
-pi3os
-3pip
-pi2pe
-pi4pel
-3pirate
-pi3ri
-pi3s2k
-2piso
-pit2a
-pi3t2h
-pit2s
-4pitz
-pit3z2e
-pi2z1in
-3pizz
-2pj
-2pk2
-pku2
-p2l2
-2pl.
-3pla
-4p3lad
-p1lah
-p4lak
-pla3na
-p4lau
-pla2y
-3plä
-2p3le.
-ple1c
-ple2e
-p4leg
-ple3n2
-2p3ler
-p4leu
-p4lex
-2plig
-3p4lik
-p4liz
-plo3n
-2p3lu
-plu2s
-2pm2
-p3mö
-2p1n2
-pob2
-2po1c
-3pock
-3pod
-3poe
-po2el
-2p1of
-3pog
-2poh
-4poil
-3po2in
-po2it
-poka2le
-3pol
-po2lan
-po3lar
-po2l1au
-pold2e
-pol3f
-po3li
-po3lo5p
-pol3z4
-pom2ph
-poni2
-3pont2
-po1ob
-3p2op
-po4p1ak
-po2p1ar
-pop3l
-po2pli
-po3p2t
-po1rau
-po3re
-porf4
-pori2e
-pork4
-por3s
-3portal
-por2th
-3portio
-3porto.
-3portos
-3portr
-por2tre
-port3ric
-3posi
-poss2
-po2sta
-pos4t3ag
-po2stä
-post3ei
-pos3tel
-pos4tem
-pos4tr
-post3ra
-post3ri
-pot1ar
-3potä
-3pote
-pot2h
-poti2e
-po2tin
-pott1r
-po2t1u
-po3un
-po2w
-powe2
-p2o1x
-pö2bl
-pö2c
-2pp
-p2pab
-pp1ans
-p2pat
-pp1au
-ppe3e
-p2p1ei
-ppe2l1a2
-ppeli5ne
-ppel3s
-ppel3z
-pp2e2n1
-p2p1erz
-pp3fr
-p2p1h
-pp3he
-pp3l
-p4p1lac
-p4plan
-p4p1lä
-p2ple
-pp1oh
-p2p1ö2
-pp3p
-ppp4f
-p2p3ra
-p2prä
-p2pri
-pp3rol
-pp3rot
-pp3ru
-pp3s2a
-pps2p
-pp3sy
-ppt2
-ppt4r
-p4p1um
-ppyl2
-p2r2
-2pr.
-3prak
-3prax
-3präl
-3präm
-3präp
-3präs
-4pre.
-4prec
-3pred
-4pree1
-pre2ei
-2preg
-3preis
-prei2s3c
-prei4sei
-prei2s5t
-2preiz
-3prem
-pren2ga
-2p3rer
-pre3sa
-pres3s2e
-pri2e
-2prig
-pri2l1
-p4rin
-4pring
-prings4
-3prinz
-pr4io
-pri3o4n
-3pris
-pri2t1
-priter2
-prit5t4
-4pritz
-3priv
-3prob
-pro3be
-3p4rod
-3p4rog
-3proj
-3pr4om
-3prop
-pro3pe
-3prosa
-4pross
-pro1st
-3prot
-prot2e
-prote3i
-4prott
-3prov
-pro1x
-3proz
-2prö
-2pru
-2prüc
-3prüf
-4prüh
-2prün
-2p1s
-ps1ad
-ps2hi
-psi2e
-p2sö
-pss2
-pss4t
-p2st
-p4st.
-p3sta
-pst1au
-p3stä
-p3stea
-p3stel
-ps2th
-p3s2ti
-ps4to
-p3stö
-ps2tu
-p3stü
-3p2sy
-4psys
-ps2ze
-2pt
-pt1a
-pt2ab
-pta2g
-p2tana
-p2t3a4t
-pt1ä
-ptde1
-p2t1e2b
-pt3ec
-pt1ef
-pt1ei
-pt1emi
-p4t1en2g
-p4t1ent
-pt1ep
-pt3ernt
-pt1erw
-pt1erz
-p4teta
-p4t1eti
-p2t1h
-pt1id
-pti2de
-pt1in
-pto4mo
-pto4na
-pto2p
-pto2w
-pt3r
-ptri4e
-p2tro
-pt3s2
-pt4sl
-pts4t
-pt1uh
-pt1um
-p3tung
-pt1urs
-ptü4b
-3p2ty
-pt3z
-ptz4w
-pu1a
-3pub
-pub4l
-2puc
-pu2dr
-2p1uh
-2puk
-pu2kl
-pu2k1o
-pu3la
-pu2lin
-pul2sp
-pul2st
-3pulv
-4pulw
-pum2pl
-3pun
-4pund
-pun2e
-pun2s
-4punt
-3pup
-2pur
-pu2ra
-pu2rei
-pur3m
-pus4h
-pu3she
-pus3s
-pu2s3t
-3put
-put2e
-put2s
-puzi3
-2pü
-3püf
-pü4lei
-pül3l2
-2pv
-2pw
-pwa4r
-py1
-py3s
-py3t
-2pz2
-1q
-2qs
-qu2
-qu4ac
-qu4ar
-qu4at
-qu4en
-qu4er
-que3rel
-que4te.
-3queu
-qu4in
-1ra.
-r1aa
-ra2ab
-2raac
-2raal
-ra3ar
-r2a1as
-r1ab
-ra2b1ar
-r2abä
-1rabbi
-rab2b3l
-2rabd
-ra2bei
-rab2er
-rab3erd
-2rabf
-2rabg
-2rabh
-1rabi
-r2able
-ra2bli
-ra2b5lo
-2ra2br
-2rabs2
-2rabt
-2r3abw
-1raby
-2rabz
-ra2ce
-2r1acet
-ra2cheb
-ra2cho
-2rachs
-rach4t3rä
-ra2chu
-r2ack
-1r2ad
-r4ad.
-rada4
-ra2dac
-ra4d1am
-ra2dan
-2radap
-3radar
-ra2de4i
-ra2d3end
-3radf
-3r4adh
-r4adi
-3radio
-4radit
-3rado
-3radp
-ra4d1r
-rad3ri
-rad3t4
-rad5te
-rad5tr
-r2af
-raf3ahn
-raf3ar
-rafe2
-ra4f1er
-raf3r
-raft5s
-rag2a
-ragein2
-rages4
-2ragg
-ra3g4le
-4ragm
-ra2gn
-rag5ne
-r2ago
-rahle4n
-3r4ahm
-r1ahn
-2ra1ho
-4raht
-r2ai
-2raic
-rail2l
-2r3air
-raka3
-1r4ake
-2rakk
-3ra3k4l
-ra4kre
-ra4kro
-ra4kt
-2rakti
-1r4akü
-2rakz
-r2al
-r4al.
-ra2l1a4
-ra4l3ab
-ra2lä
-ral3b4
-3r4a4ld
-r4ale
-ra2l3end
-ra2lent
-ra2l5ern
-ra3lex
-r4ali
-ra2lid
-rali3er
-ra2lin2d
-ra2l3ing
-ralin4sp
-ralin4t
-2r3alk.
-2r3alm.
-2ralp.
-4ralpe
-r4als
-ral3sc
-ral3sk
-ral3su
-r3alt
-3r4al3t2h
-ra2l3u
-3r4aly
-rama3s
-ra4mei
-ra4mer
-r2ami
-r2amm
-ram2man
-ram4mens
-ram4m3ers
-ram4m3u
-2ramn
-3ramsc
-2r1amt
-ramt2s
-2ramu
-2rana
-ran1ad
-ran3ade
-ra2nal
-ra2nan
-ra2nar
-ra2nau
-2ranb
-r2anbe
-r4anda
-r4ande
-ran2dep
-ran2d3er
-3r2andi
-rand3s
-1raner
-2ranf
-ra4ng
-2ranga
-ran2gan
-ran4g3e4be
-3rangi
-r2angl
-rangs4
-rang3sp
-rang3ste
-rani3e
-r3a4nil
-ran3ka
-ran2kr
-ran2kü
-2ranl
-2r1anm
-r2anmi
-r2anmu
-2ranna
-ran5ne
-2r1anp
-2ranr
-2rans
-r2ans.
-ran2sam
-ran2spa
-2rantei
-r2anto
-2rantr
-1ranu
-2ranw
-r2anz.
-r2ap
-2rapa
-ra2par
-2rapf
-2rapo
-ra2pok
-ra2pos
-rap4pr
-2r3a2pri
-2r1a2q
-r1ar
-r2ar1a
-2rarb
-r2are
-3r4arei
-raren1
-rar3et
-rar1e2v
-r2arf4
-rar3in
-ra3ris
-r3a4rist
-4r3arit
-r2ark
-2rarm
-raro2
-ra2rom
-rar3r
-2rart
-2rarz
-rar3zw
-r4as.
-ras2a
-ra3san
-ra2schl
-r2asm
-ra3spr
-r2ast
-ra2sta
-ras4t3ei
-r3asth
-ras4to
-2rasyl
-2raß
-1rat
-r4at.
-r4ata
-ra2t1an
-ra2t1ei
-r3a2tel
-3ratg
-r4ati
-ra4tid
-rati2e
-2ratm
-rat2o
-2ratom
-ra5tor
-rat3r
-ra2tra
-rat4re
-rat5schl
-2r3atta
-2rattr
-4ratz
-rat3ze
-4rau.
-3raub.
-rau2bri
-rau3e4n
-2rauf
-rauf3sa
-2rau3g2
-3r4aum
-rau2m3ag
-rau2man
-rau3me.
-rau2mi
-3raup
-4raur
-2rausb
-3raus2c
-2rausd
-2rausf
-2rausg
-raus4gewä
-2raush
-2rausl
-rau2sp
-2rauss
-raus4sche
-raus3se
-2rausv
-2rausw
-rau3ße
-2rauto
-raut1r
-rau2tra
-rau2tro
-raut3s
-1raü
-r2ax
-raxi2
-r3axt
-r2ay
-r2az
-räch2s
-3r2äd
-2räf
-rä3fr
-2räg
-2räh
-2räm
-3rän.
-3räni
-3räns
-2räp
-2räq
-2r1är
-r2är.
-rä3ra
-rä1ro
-rä4sa
-rä4sc
-räse2
-räte1s
-3rätse
-4rätz
-rä2u
-4räue
-räu2s
-räus4c
-räu5schen.
-2räuss
-2räuß
-4räut
-2räx
-2rb
-r2b3a2b1
-r3bac
-rba4del
-rb2al
-r3bam
-r2bang
-r2bant
-rb1art
-r2barz
-rb1auf
-rbb2
-rb1ech
-rbe3erf
-rbei3d2
-rbe3inf
-rb3einh
-rbe3int
-r4belä
-rbel2o
-r3ben.
-rbe3r2e
-rbe3rum
-rbe3sl
-r2bim
-r2binf
-r3bit
-rbit2a
-rbi3tu
-rb4la2d
-r2blan
-r4blasser
-r2b3last
-r3blat
-r3blau
-r2b3le.
-r3blen
-rb3ler
-r2bleu
-rb2lin
-rb2lö
-rb2ob
-r2bonk
-rb3ras
-rb3rea
-r4b5rechts
-rb4ri
-rb4sam
-rb2sei
-rb2ser
-rb2s1o
-rb4stä
-rb2su
-rb2u
-rbü4b
-rby4t
-2rc
-r1ce
-r2cer
-r1che.
-r1che2n
-r1ch2i
-rch3l
-r3chlo
-rch3m
-rch3r
-rch4ro
-rch1s4
-rch3t2a
-rch3w
-r1ci
-r2ck
-r3cki
-r1cl
-2rd
-rd2ac
-r2daf
-r2d1ak
-r2d1a2l
-rd2amm
-rdani1
-r2dann
-rd1ant
-rd1ara
-rd1ark
-r2darz
-rdär2
-r3dee
-r2dei
-rd2ei.
-r2d1elb
-r2de2le
-r2delf
-rdem4
-rden3d
-r2dengl
-r2dents
-rde3ob
-rde3ono
-rde3r4er
-rderin4s
-r2d3ernt
-rder3w
-rde3sp
-r2d1e2x
-rdie3ne
-rdien4s
-rdiensta4
-r2d1inn
-rd1iri
-rd1ita
-r2dof
-r3don
-rd1os4
-rdo4st
-r2d1oz
-r2dö
-rd3rat
-r2drau
-rd3ris
-rd4rö
-r3d4rü
-rd3s2a
-rd2sän
-rd3s2k
-rd3s2z
-rd3t2a
-rd3th
-rdt4r
-rdt2s
-r2d1uk
-rduns3
-rdwa4
-1re
-3re.
-re2ade
-rea4l3erw
-4re2am
-re3as
-re3at.
-re3ats
-reatu3
-2reä
-re2b1a
-re2b1l
-reb3so
-rech3ar
-4rechs
-rechter4
-2rechth
-2reck.
-2recki
-reck2st
-re4ct
-3red.
-re3da
-4redd
-re2del
-rede3r2
-2redi1
-re2dik
-3redn
-3redu
-re1ebe
-re1el
-re1em
-re1eng
-re1er
-3refe
-4reff
-r2eff.
-3refl
-3refo
-3reg
-rege2l3ä
-4r1egg
-re3gi
-re2hac
-re2h1ar
-re2h1ei
-re2hen4e
-re2h3ent
-re2hi
-reh1l4
-re2h1o
-re3hol
-3rehö
-2rehr
-reh3re
-reh1ro
-reh4th
-re2hü
-r2ei.
-r2eib
-rei2bei
-rei4bel
-rei2ble
-reib1r
-rei2bra
-r2eic
-2rei3d
-r2eie
-4reier.
-reier2t
-rei2fei
-2reig
-3reigä
-3reigeh
-r2eigel
-4reigens
-3reigi
-4reign
-3reigru
-r4eih
-rei3l2a
-rei3l2i
-2r1eilt
-reim2p
-r1ein
-2rein2a
-rei3nal
-2reinb
-rein2du
-rei3n2e3c
-reinen3
-2reinf
-rein4fe
-re2info
-2reing
-2reinh
-4reinn
-4r3einr
-2reins
-4reinsa
-rein4sel
-rein4sz
-2reint
-re1in2v
-2reinw
-2reinz
-2reisar
-2reisb
-reises4
-2reisf
-2reish
-2reisr
-4reisu
-2reisv
-2reisw
-reit3s2
-3rek
-4re2ke
-4rekk
-2rekz
-r2el.
-r2ela
-re3lat
-2relb
-rel2e
-relea2
-re5lei
-re2lek
-4relem
-r2elev
-2relf
-reli1
-2relit
-2relix
-r2ell
-rel2lar
-rel2lei
-re3lo
-r2els
-2relt
-relu2
-3r2em.
-2r1emb
-rem2da
-re2m1ei
-re5men
-2remi
-re3mig
-r2emit
-2rempf
-rems1c
-rem4str
-2rem2u
-r2en.
-r2ena
-2rena.
-re4nac
-re3nad
-re3nal
-re4n3an
-re2nä
-2r1endg
-3rendi
-ren3dr
-2renerg
-2rengag
-ren2gan
-2rengp
-3renh
-re2ni
-re3nik
-3renm
-ren2nar
-ren4nene
-renns4
-renrü2
-ren4sein
-rens2p
-r4ent.
-2rentd
-4rentera
-2rentf
-3rentfo
-2rentg
-2r1entl
-rentmo4
-2r1ents
-3rentss
-2rentw
-2rentz
-r2enz
-ren2zan
-ren2zer
-renzer4f
-renz3er4s
-renzer4w
-ren2z3in
-ren2zw
-re2ob
-re3or
-3repe
-4re2pen
-2repi
-re2pis
-2repoc
-2r1e2pos
-4repp
-3repu
-3r2er.
-rera2
-2r1erb
-3r2erber
-rer2bi
-rere2
-2rereig
-r1erek
-re2r1ep
-3r2erer
-r1erf
-4rerfah
-r4erfe
-2rerfi
-2rerfo
-r2erfr
-r3er2fü
-r1erg
-2r3ergeb
-3rergebü
-r2ergen
-3r2erges
-2rer2go
-rer2gr
-r2ergru
-r1erh
-rer2hö
-re2rid
-r1erk
-rer2kan
-rer2ke
-4r3erken
-3r2erki
-3r2erko
-r2erkre
-r1erl
-2r3er2la
-5r4erlag
-2r3erleb
-r2erli
-2rerlö
-r1erm
-3rermo
-rer2n
-2r1ernä
-r1er3ne
-2r1er4ni
-4r3erns
-4r3ernt
-re2rosi
-2r1er2ö
-r1erre
-rer4reg
-rer2rei
-r1erri
-3r2ers.
-2r1ersa
-r2erse
-2rersp
-rer2spa
-rer2sta
-r2erstr
-2rer4su
-r1ert4
-r2erte
-2rertr
-r1erw
-2r3erwa
-rer2wac
-rer2wec
-r2erwes
-2r1erz
-rer2zä
-3r2erzy
-3r2es.
-re2sa
-re4sam
-resche2
-re2schm
-re2schw
-rese2h
-re2s1of
-3resol
-3reson
-re2spa
-2ress
-4resse
-res3sei
-res4s3erw
-4ressu
-re1sta
-res4tas
-res4tent
-res2tex
-2res2tu
-3resu
-re2t1ak
-2re2tap
-re2tau
-ret2e
-2r1e2th
-re2tra
-re2trol
-re2u
-reu4eri
-reu3g2
-2reul
-re3uni
-2r1eur
-reu2zei
-2reü
-4r3eva
-2r1evid
-rewa4r
-re2wi
-4rewo
-2r1e2x1
-3rez
-2rezi
-1ré
-2rf
-rf1a2ck
-r3fam
-rf3aue
-rfe2i
-r2fent
-rfer3g
-rf2es
-rff2
-rf3fe
-rfi2le.
-r2fland
-rf4lä
-rf3lic
-rf4lö
-rf4lu
-r3flü
-r2fo2b
-rfolg4s
-r2frauc
-rf4ru
-rf4rü
-rf2sa
-rf4sam
-rf2s1ä
-rf2su
-rf2ta
-rft4r
-r3f2u
-2rg
-r2g1a2d
-r2g1ah
-r2g1ak
-rga2ner
-r2g1ap
-r2garb
-rg3art.
-r2g1ask
-rg4at
-rgd2
-rge4an
-rge2bl
-r3gebo
-r2g1e2c
-rg1ein
-rge2l3er
-rge2li
-rgen2ge
-rgen2z3w
-r3ges
-r2ge4tap
-r2geto
-r3gew
-rg2ins
-rgi2sel
-r4gl.
-r2glan
-r3glanz
-r2gleu
-r2glig
-r2g3lit
-rg2log
-rg2lu
-r2g3na
-r2gne
-r2g3ni
-r2g3no
-r2g3oa
-r2gob
-r3gog
-rg3op
-r2g1or
-rgö2
-r2g1öd
-r2g3ral
-rg4rau
-r2grän
-r2greg
-r2g3res
-r2gret
-rg3rin
-r3grö
-r3gru
-rg3rüs
-rg3sä
-rg3se
-rgs2ei
-rg4sel
-rg3s2i
-rg3sp
-rgs4pe
-rgs4pi
-rgs4po
-rg3st
-rgs2tu
-rg3su
-r1h2
-2rh.
-r2hag
-2rhah
-2rhak
-r3halt.
-r2haltb
-r3han
-r3has
-2r3hau
-2r3hä
-r2he.
-r3hea
-2rheb
-2rhef
-rh4ei
-2rheit
-2rher
-2rhi
-2rhof
-rho2i3
-2rhol
-r3hop
-2rhot
-2rhöl
-2rhs
-rhu2s
-2r3hü
-1ri
-ri3ams
-ri1an
-ri2ano
-ria1s
-ri2ast
-rib2bl
-ri1ce
-ri1cha
-ri3chl
-rich3ter
-richt4spo
-ri2cki
-ri2con
-ri2dau
-r2ide.
-2ridee
-ri2d3e2l
-ri2dent
-r2i3di
-2ridol
-2ridy
-r2ie
-rie2fem
-4riefm
-rie2f3r
-rieg4s3
-ri2e1i
-ri1el
-rie3l2a
-ri3els
-ri4enä
-riene2
-rien3s
-rie4nu
-ri1er.
-rie3r2e
-riere4n
-ri3ers.
-rie3sa
-ri1eu
-ri2fa
-ri2fä
-ri2fei
-ri2fer3
-rif4f3end
-rif2fer
-ri2f1o
-ri4fr
-rif3s
-rif2ter
-3rig
-4riga
-4r3i2gel
-ri2gene
-4rigg
-rig1l
-ri4glä
-ri3g2o3
-ri1i
-rii4t
-ri2kar
-ri2kä
-ri2kin
-ri2kn
-ri2kone
-rik2op
-ri2kor
-ri4kt
-ri3kü
-2rima
-ri4mag
-ri2me.
-2rimm
-4rimp
-rim2s
-rim4sc
-rim4st
-ri3na
-r1inbe
-rin2c
-2r1indu
-ri3n2e
-rine1i
-rine3s
-2r1inf
-3rinfr
-r2ing
-3ring.
-rin2ga
-ring3le
-rin2gr
-ring3sp
-2r1inh
-2rinit
-4rinj
-2rink
-rin2kl
-rin2ko
-rin2kr
-2rinl
-4r3innenm
-2r3inner
-2r1innr
-r1innu
-ri3n2o3
-2r1in2q
-2r1ins
-rin4si
-rin2so
-rin2spe
-r2inspi
-rin3stei
-rin3str
-3r2insy
-2rint
-rin4tent
-rin4t5re
-2r1inv
-rin2va
-2rinz
-ri2ob
-r3ion
-ri3o2st
-ri2pl
-ri3po
-2r1ir
-r2is
-ris2a
-ri3san
-ri2scho
-ri2schw
-3risik
-ri3s2ko
-r3iso
-ri4s3p
-ris5pi
-r3isr
-3riss
-ri4s3t
-ris4t3ers
-ris4th
-rist3r
-r2it
-2r3i2tal
-rit3ant
-rit2i
-2ri3t4r
-rits2
-ritt3a
-rit2tau
-rit4ter4f
-rit4to
-rit2t3r
-ritt2so
-rit2u
-r3i4tum
-rix1
-1rí
-2rj
-2rk
-rka2b3l
-r2k1ah
-r2k1ak
-rk1all
-rk2am
-rk1are
-rk1asp
-r2k1att
-r2k1äh
-r2kelem
-r3kell
-rke2n1
-rken2er
-rken3s4t
-r2k1er2l
-rk3ersta
-r2k1er2w
-r3k2es
-r3ket
-rk1im
-rk4las
-rk4lau
-rk4lim
-r2klis
-rk2lo
-rk4lu
-rk4ne
-rk5neu
-rk5ney
-r2kob
-r3kol
-r3kon
-rk2op
-rk1o2ri
-r2kou
-rk2ö
-rk3räu
-r3kri
-rk3rin
-r2k3rom
-r2krou
-rk2sal
-rk2sei
-rk2sel
-rk2ser
-rk2so
-rk2sp
-rkstati4
-rk2stec
-rk2stoc
-rk2ta
-rk2tel
-rk4t3eng
-rk4tent
-rk2t3erf
-rk2terg
-rk2t3erl
-rkt3ers
-rk4tersc
-rk2t3erw
-rk2t3erz
-rk4teta
-rkt2i
-rk2t3in
-rk4t1o2
-rkto4b
-rk2t3r
-rk4tri
-rk2tum
-rk4tü
-rk1ums
-rku2n
-r3kup
-rkur3s
-rku2sa
-r2küb
-2r1l
-rl2ab
-r3lag
-rlan2d3i
-r2l1ar
-r2l1a4sc
-r2l3aug
-rle2a
-r3lec
-r3leg
-r3lep
-rl2et
-r3lex
-r3l2i
-rlicht6e
-rli4ne.
-rli2s
-r3l2o
-rlou1
-rl2ö
-rlös3s
-rls2a
-rl2spr
-rl3ste
-rl2s5to
-rl3t
-r3l2u
-rlus6tr
-r3ly
-rlz4w
-2rm
-r2mab
-r2m1ad
-rma2la
-rm1ald
-rmali3e
-rm1ami
-r2m1ank
-rm1anz
-r4m3aph
-r2marc
-r2marz
-rma4spe
-rmas3se
-rmat2o
-rm3d2
-rm1ef
-r2m3einh
-rme4na
-rm2ene
-r2ment
-r2meo
-rmer2fo
-rm1erg
-r2m1erh
-r2m1erl
-r2m1erp
-r2m1erw
-rm2es
-rme1st
-rmes4z
-rmeta2
-r2mide
-rmi4nanz
-rminen2
-rmi4neng
-r3minh
-r2m1ob
-rmon3s4
-rm1o2ri
-rmo1s
-rm3p2
-rm3sa
-rm3s2k
-rm3sta
-rm3t
-rmt2a
-rmu2n
-r4muna
-r2muni
-rmwa4
-2rn
-rna2b
-rn3ab2i
-r3nad
-rn4ade
-r3nage
-r2n1all
-rna4n
-rn4and
-rn3ani
-r2nanz
-rna2r
-rn3are
-r4n3ari
-rn3arra
-r4n1a2st
-r4n3att
-rn3aug
-rnd2
-rn3de
-rn3d4r
-r2nef
-r3neho
-r3nei
-rn2eid
-r4neif
-r4neis
-r2n1elf
-rn1ema
-r2nemu
-rne2n
-r2n1ene
-rn2eng
-r2n1e2p
-rn1erg
-rn2erhi
-rner2ke
-rner2ku
-r2n1erl
-r2n1ert
-r2n1erw
-r3nes
-r3n2e2t
-rnet1e
-rne4to
-rnet3r
-rn2eu
-rne3uf
-rn3f
-rn3g2
-r2nid
-r2n1in
-r4ninf
-rn2ing
-r3nit
-rnk2
-rnn2
-rn1ob
-rn2obr
-r3nod
-rn2oh
-r2n1op
-r2n1or
-rno2w
-rn1ö
-rnö2d
-rn3sa
-rn3s2ä
-rnse4ha
-rn3s2p
-rns2u
-rn3s2z
-rn3t2a
-rn3t2e
-rn1ur
-r1nü
-r1ny
-rnz2
-ro3ar
-ro3as
-r2oba
-2robj
-1r2obo
-ro2bo2r
-2robr
-ro2bre
-2robs
-ro1c
-roch2a
-3rock.
-r2o3de
-rodi4e
-rod4r
-roe2
-ro2ed
-ro4fen
-2roff
-4rog.
-ro3g2a
-3rogg
-ro2h1in
-roh1l2
-4rohn
-ro2hö
-3rohr
-1roi
-ro3in
-ro1ir
-ro2it
-rok2l
-ro3le
-ro2liv
-rol2lan
-rolle4
-rol3len
-rolls4
-r4olo
-rol3s
-2roly
-4rom.
-ro4mad
-ro4mal
-3roman.
-2romb
-ro4mei
-romen3e
-ro4m1er
-ro5mes
-4romm
-2romn
-rom3s
-4romt
-r2on
-ro3n4ab
-ro2nan
-3rond
-ro2nerb
-roni2e
-ro2nika
-ro4niki
-4ronk
-3ronn
-ron4tan
-ron2tel
-ron4tend
-ron4t3r
-ron2t1u
-ro1ny
-ro1o4f
-rop2a
-2rope
-2ropf
-1ropl
-ro3pn
-2ropt
-r1or
-ro2r3al
-ro2rat
-2rorc
-ro2rel
-2r3orga
-ro2ro
-ror3th
-rort2s
-ror2ü
-ro3se
-ro3sh
-ro3s2i
-ro5sin
-ros4ko
-ros4p
-ros6sac
-ros4sal
-ros4san
-ros2s1c
-ros4senk
-ros4st
-ro1sta
-ros4t1r
-ros6tri
-ro2sum
-4r3osz
-roßen2
-ro4ßenk
-ro4ßi
-ro2tan
-ro4tas
-ro4t3au
-ro2tä
-ro2tei
-rot3s
-rots2o
-rot2ta
-ro3tu
-3roul
-ro3unt
-3rout
-ro5win
-2rox
-rö2b3l
-rö2du
-2röf
-rö4fe
-3röh
-2r1ök
-1röl
-2röl.
-rö3le
-röl2l
-r1ölp
-3römi
-r1ör
-r2ös.
-rös1c
-r2öse
-1rösl
-3rötu
-2rp2
-r3pa
-rper1e
-rperer3
-rper3in
-r3pf2
-rpf4l
-rp4fu
-r2pli
-rp4lu
-r3po
-rp4rä
-r3pri
-rpro1
-r5prod
-r3prü
-rp3se
-rps3t
-rp3t
-r3pu
-2rq
-2r1r
-rr2ab
-rrat2s
-rr1auf
-rr1äm
-rrb2
-rr1c
-r5rega
-r5regi
-r5regl
-rr2ei
-rre2le
-rre2pa
-rrer2
-r2rerh
-r2rerl
-rre2ve
-r4rezi
-rr2hen
-rr2hos
-rri3erm
-rri3k2
-rr4is
-rrm2
-rr2n3au
-rr2o
-rr3obs
-rrr2
-rr2st
-rr3sto
-rr3str
-rr3stu
-rr2th
-r3r2u
-r3r2ü
-rrücker4
-rrz2
-2r1s2
-rs3ab
-r3sabo
-r2s3a2d
-rsa4lin
-r4s3amp
-r4s3amt
-rs3ana
-r2sanf
-rs3ang
-rs3anm
-rs3ant
-rs3anz
-rs3ar
-r3s4ark
-r3sau
-rs4au.
-rs4aue
-rs3äm
-rsch3e2b
-rscheiner5
-r3schen
-r4scherl
-r3schu
-r2s3ebe
-rse2e
-r2s3ef
-r2s3ein
-rse2n
-rse4ne
-r2sepi
-rs3ere
-r2s3erh
-rs3erö
-rs3ers
-r2s3erz
-rse2t
-rs3eta
-rs3eth
-rsha4k
-r3shav
-rs3hi
-r3shir
-r3sho
-r4shu
-rs3inf
-rs3ins
-rs3k
-rs4kal
-rs4kan
-rs4kel
-rs4kie
-r4skir
-rs4kis
-rs4kla
-r4skn
-rs4kop
-r4skor
-r3s4kri
-r4sky
-rs3l
-r3s4mog
-r3sno
-r3so
-r4s3ob
-rs4om
-r4s3op
-r4sord
-r4s3orie
-r4s3ort.
-rso2s
-rs3ost
-r3span
-rs4pel
-r2s3ph
-r3sphä
-r3spi
-r3spl
-r2sput
-r3spü
-rs3s2
-r4st.
-rst3abl
-r3stad
-rst3ala
-r2stale
-r2stans
-r2stant
-r2stas
-r3statu
-r3stä
-r3sted
-rst2ei
-rst3eing
-rst3eint
-rs4t3emi
-rs4temp
-r4sten
-rster2
-rst2erb
-rst3erl
-r3stern
-rst3er4w
-rst1h
-r3s4tie
-r2stin
-rst3ing
-r3stink
-r2stip
-r2stit
-rs4tob
-rs4tor
-r2stot
-rs4tr
-r2stran
-rs5tren
-rs4tuc
-r3s4tü
-rs3uml
-rs3un
-rs4ung
-r3sy
-r4szä
-rs3zi
-rs4zin
-2rt
-r2tabo
-rt1abs
-rta2ck
-r2t1a2d
-r2t3ae
-rt1aff
-rtag4s
-rt1akr
-r2t3albe
-rta3l2e
-r2t1all
-rtals1
-rtal2se
-rt1am
-rt1ann
-rt1ant
-r2tanw
-r2t1ar
-rt3att
-r2taut
-rt3äh
-rt1änd
-rt1ärm
-r3tea
-rte1e2
-r3teh
-rt1ein
-rt2eind
-r4t3einh
-rte2i3s4
-r2telf
-rtels2t
-rtem4e
-r2temo
-rte2n1
-rte4na
-rten3s4
-r4t3ents
-rten3z
-rteo2
-rt2ep
-rter2fa
-rt1erh
-rter2ha
-rt1erk
-r2t3er2la
-rter4mit
-r2t3ernä
-r2ter2ö
-rter4re
-rt1ers
-rt2ersp
-rt1erz
-rte3sk
-rt1he
-r2t1hi
-rt2hum
-r2t1id
-rti2en
-rtik2
-r2t1ima
-r4t3inf
-rt2is
-rt2it
-rt3l
-rt3m
-r2t1ob
-rto3pf
-rt1orc
-r4torg
-r5tork
-r4trak
-rt3ram.
-rt3rams
-rt3rand
-rt3rati
-rt3rec
-rt3re1s
-r4t3ris
-rt3rol
-rt3roma
-r3trop
-r2trou
-rtrü2c
-rt3sc
-rt2s1eh
-rts2el
-rt3sex
-rts3ing
-rts1o
-rts2tie
-rt2su
-rt3t
-rtt4r
-rt1umb
-rt2u3na
-r2t1urt
-rtu4t
-r2t3ute
-r3tü
-r4tüb
-rt3w
-rty1
-rt3z
-rtz2a
-rt4zb
-rtz4w
-1ru
-ru1a
-ru4ale
-ru3a2r3
-rube4
-ruben3
-rubens4
-rub2i
-ruchter4
-rucht3s2
-ru2cka
-ru4ckerl
-ru2cku
-ru3de
-rude2a
-ru2dr
-ru2et
-3ruf
-ru4f1a
-ruff4
-ru4fo
-ruf2s
-rufs3p
-ruf2ter
-ru2g3r
-3ruhm
-2r1uhr
-3ruin
-ru3ins
-ru1is
-2rum
-ruma2
-4r3umd
-4rumf
-4rumg
-ru2mi
-4ruml
-r2ums.
-4r3umsa
-4rumsc
-4rumw
-4rumz
-2r1una
-2rund
-run4d1a
-runden3e
-run2d3er
-runder4n
-runder5t
-run2do
-ru3nei2
-2r1unem
-run2en
-4r1unf
-run2ga
-2rungl
-run2gla
-4r1u2ni
-r3unio
-ru4nis.
-run2kr
-2r1unl
-2runm
-4runn
-4runr
-r1unse
-4r3unt
-4runw
-2rupd
-rupi3
-ru5pre
-2r1ur
-ru2ra
-ru2r1e
-r4us.
-rus4p
-rus2s3p
-rus4st
-ru2tab
-rute4
-ru4tei
-ru4t1el
-ru2t1er
-ru4t1o4
-ru2t3r
-ru2z3w
-1rü
-2rüb
-rü4bc
-rü4bs
-4rübu
-rü1ch
-rü2ckel
-rück3sta
-rü2hel
-rüher2
-rüh1l
-4rümm
-rü4na
-rün3z
-2rv
-rv2el
-rve4n1e
-r2ventz
-r3veo
-r3ver
-rve3s
-r3v2o
-2rw
-rwe4gel
-r5weis
-rwelt2s
-r3werk
-r3wert
-r2wo.
-r3woh
-r3wort
-rwun3s
-2r1x
-1ry
-2r1y2a
-ry2c
-rygi3
-ry1la
-ry2le
-ry1os
-ry3sth
-rysti3
-2rz
-rz2ans
-r2zar
-r2zat
-rz2än
-r3zeic
-rzell2
-r3zene
-rz1eng
-r2z3ente
-r2zents
-rze2p
-rze2ra
-r2z1erd
-r2z1erf
-r2z1erg
-rz1erk
-r2z1erl
-rz3ersc
-r2z1erw
-r2z1ess
-r2z1id
-rz1int
-rzir3
-r3z2of
-r2z3ot
-rz2tan
-rz3te
-rz2th
-rzu4g3l
-r3z4wec
-rz4wer
-r2zwir
-1sa
-3sa.
-3s2aa
-2s1ab
-sab2ä
-4sabd
-sa2ben
-3sabet
-sa2bit
-sa2bl
-4sabm
-sa2br
-4sabs
-4s3a4bw
-3sac
-4sacc
-sa3chal
-5sache
-sa2cho
-sach3t
-s2ack
-2s1ada
-sa2der
-s1adm
-2s1a2dr
-3safa
-sa4fe
-4s1aff
-sa3f4r
-3s2aft
-saf4tr
-3saga
-sag2e
-5sa3ge.
-5sagen.
-2s3a2gent
-2s1agg
-sa2gio
-s1a2gr
-sah3l
-s2ahs
-3s2ai
-sa3i2k1
-sail2
-sai4r
-2s1ak
-sa4ka
-sa5ka.
-sa5kar
-sak2e
-3saki
-3sako
-4sakt
-sa4kus
-3s2al.
-3s2al2a
-sa2l3an
-sa3l4at
-sal2ä
-3s2alb
-sal3bl
-3s2ald
-sa2lerk
-3sa3li
-sa4l1id
-s1all
-sal3la
-sal2le.
-3s2al2o
-sal3or
-sal2se
-s1alt
-s2alth
-3salz
-3sam
-4s3a4mat
-4s1a4mei
-sa4min
-4s1amma
-4s1amn
-s1am3p4
-4samph
-sam4ta
-sam4to
-samt3st
-s1an
-s2an.
-2sa2na
-san4at
-sa2nä
-2s3anb
-s2an2c
-3s2and
-s4and.
-san2dan
-san2dri
-sand3s
-sa2ner
-3sang.
-2sanga
-2s3anh
-3sani
-3sanken
-4s3anl
-2sa2no
-2s3anp
-2s3ans
-s4anse
-san4sk
-san3sp
-2santei
-4s3antr
-2s3anw
-2sanz
-2s1ap
-sa2pe
-s2aph
-sapi3
-sap3p
-3sapr
-2s1a2q
-2s1ar
-3s4ar.
-3sara
-4s3arb
-3s2ard
-s2are
-4s3area
-3sarg
-sar2ga
-sa3rin
-sa2rom
-s2ars
-4sarti
-sa4r1u4
-3sas.
-sas2a
-s1asc
-s1a4si
-2s1a4sp
-4sa2sy
-sat2a
-satan4
-sa2t3ant
-sat1ei
-2s3a2tem
-s3ath
-3sat2i
-4s3atl
-4satm
-sat2o
-sa4tol
-sa2tr
-sa3ts
-s3atta
-4s1attr
-3satza
-sat2zel
-sat2z3en
-s1au
-3sau.
-3sauc
-3sau2e
-2sauf
-4s3aufb
-3saug
-saug3le
-sau2gr
-3saum
-3saur
-4s3aura
-sauri1
-2saus
-3saus.
-4s3ausb
-4s3ausf
-4sausg
-sau2sp
-4sauss
-4s3ausw
-2sauß
-s1av
-sa2ve
-sa2xi
-sa2y
-1sä
-3säb
-3s2äc
-3s2äg
-s1äh
-4s3ähn
-3säl
-4s1ält
-2s1äm
-4s3änd
-2s3äp
-2säq
-2s1är
-3s2ärg
-4s3ärm
-3s2ät
-3säul
-4säuß
-2sb2
-s3ba
-sba4ne
-sbau4men
-s3bä
-s3be
-sber2e
-s3bi
-s3bl
-s3bo
-s3br
-sb4ra
-sb4ri
-s3bu
-s3bü
-sby3
-1sc
-2sc.
-2scab
-2scac
-2scal
-2scam
-2scar
-2scat
-2s1ce
-4s3cei
-4sch.
-3schaf
-s4chal
-sch3ana
-4schanc
-2schang
-4schao
-4schara
-sch3ar3m
-s2chä
-2schäq
-4schb
-4schc
-2schd
-sch2e
-3sche.
-4schech
-sche2f
-4schef.
-4schefi
-4schefs
-s4chei
-4sch3ei.
-sch4ein.
-s2chema
-4schemp
-sch3erfü
-2scherk
-sch3erla
-3sches
-4sches4s
-4schex
-2schf
-2schg
-2schh
-2schi4d
-2schiru
-3schis
-2schj
-2schk
-s4chl
-sch4lac
-2schle.
-4schlein
-2schmed
-2schmö
-2schmy
-s4chn
-2schn.
-2schneb
-2schnum
-3schop
-2schorc
-4schör
-4schp
-2schq
-2schrad
-2schre.
-2schres
-2schrin
-4s3chris
-sch3rom
-2schron
-2schrou
-2schrus
-4schs
-sch3s2e
-sch3s2k
-schs2o
-sch3s4ti
-4sch3t
-scht2a
-scht2i
-s4chu
-2schunt
-s4chü
-2schv
-s4chw
-sch4web
-2schweg
-4schwerk
-2schwet
-2schwid
-2schz
-2scj
-2s3cl
-2s3co
-4scoa
-4scom
-3s4co4p
-s2cor
-2scs
-2scu
-2scy
-2sd2
-s3da
-sda5me
-s4daq
-sdä1
-s3de
-sde1s2
-s3di
-sdie3n2e
-sdi1st
-s3do
-s3dr
-s3du
-1se
-sea2n
-se3at.
-seb2
-3sebä
-2s1e2ben
-2s1echo
-sech2st
-2s1echt
-2s1e2ck
-se2dik
-3see
-see1i2
-se2e3ig
-se2el
-se3elem
-see3len
-se3en.
-see3n2e
-se1eng
-se1enk
-se1enl
-se1enp
-see1ra
-seer4e
-se1erf
-se3e2r1i
-se1erk
-se2e3s4
-2s1eff
-sef4l
-3s2eg
-4s3e2gal
-se2gl
-seg4r
-seh1a
-se2ha2g
-se2hak
-se2hel
-seher2e
-se2herk
-se2h1in
-seh3l
-se4h3ö
-seh3ra
-seh3re
-seh5ri
-seh1s
-se4ht
-seh1ur
-se2hüb
-2s1ei.
-2s1eid.
-sei3da
-2s3eifer
-2s1eig
-s2eim
-s1ein
-3s4ein.
-2seinb
-sein2du
-2sei3n2e
-seine3i
-2seinfl
-sein4fo
-2seing
-2seinh
-2seini
-2seink
-2seinl
-2seinn
-sein4ne
-2s3einr
-s2eins.
-2seinsc
-sein4stit
-sein4str
-2seint
-sein4to
-4seintr
-2seinw
-2seinz
-2s1eis
-3s2eism
-3s2eit
-seit2s
-3sek
-4s1e2kel
-4sekz
-s2el.
-se2l1a
-3s2elb
-sel3d4
-sel1ec
-se2lef
-2s3e2leg
-2s3elem
-se2ler
-sel3ers
-2self.
-selin2s
-s3e2lit
-2s1elix
-sel3m
-s2eln
-se2lob
-s2els
-sel3sz
-selt2e
-sem2e
-2s1e2mis
-2s3emp
-s4en.
-3sena
-se4na2d
-se3nal
-sen2alg
-se4nas
-sen3au
-se2nä
-s2enb
-4s1endl
-sen3d4r
-s1endw
-senen1
-4senerg
-s2enf
-3s4eni
-se2nid
-se2n1im
-3s2enk
-sen4keli
-se2no
-se4nott
-se4noz
-s2ensa
-sen2s3e2h
-4sensem
-sen4sers
-s4ensi
-sen2si2d
-s2enso
-senst2
-sen4s5turm
-sen3t2a
-sen3tä
-2sentd
-4s3entf
-2sentg
-4sentla
-2sentn
-s2ento
-sen3tr
-4s1ents
-2sentw
-4sentwu
-4sentwü
-4sentz
-se4n3u2
-sen3za
-sen2zer
-sen3zw
-seo2r
-3sepa
-se2pen
-s1epi
-3seq
-3s4er.
-se2r3a2d
-ser3al
-se3rand
-se1ras
-ser3äus
-serb2
-s3erbe.
-serd2
-se2r1e2b
-se2r1ed
-se3reie
-4sereign
-ser3eim
-sere2m
-5seren
-se2r3enk
-ser3ent
-s4erfe
-s1erfo
-s2erfr
-s1erfü
-serg2
-ser3ga
-ser3gl
-s2ergr
-2s1erhö
-se2rid
-5serie
-se4rinf
-serk4
-se4rm
-ser4mah
-2s3ermit
-s2ern.
-s3erneu
-2s3ernt
-sero4b
-2s1e2ros
-s1erot
-s1erö
-2seröf
-ser3r
-s4ers.
-2sersa
-2s3erseh
-s3erset
-sers4p
-se3rum
-ser2um.
-se3rund
-se3rung
-s3e2rup
-3s4er3v
-s1erz
-3s2es.
-se3s2a
-se2sel
-se3sk
-2s1essa
-se1sta
-se3stec
-se3stei
-se3stemp
-se1sto
-se1stu
-se3su
-4s3e4tap
-se2tat
-2s1e2th
-set2i
-4s1e2tik
-se3tun
-3setz
-3seuc
-2s1eul
-seum4sc
-se1u2n
-se2va
-4s3evan
-s1ex
-3sex.
-2sexa
-sex4am
-se2xe
-sex3en
-s2exi
-s2exo
-4s3exp
-sex3t4r
-3sexu
-2sexz
-1sé
-2sf2
-s3fa
-sf4ak
-s3fe
-s3fi
-s3fl
-sf4la
-sf4lö
-s3fo
-s3fö
-s3fr
-sf4ru
-sf4rü
-s3fu
-s3fü
-2sg2
-s3ga
-sgang4
-s3gä
-s3ge
-sgeha2
-sge2h3ab
-sge3sa
-s3gi
-s3gl
-s4gl.
-s3gm
-sg4mü
-sg4na
-s3gö
-s3gr
-s3gu
-s3gü
-2s1h
-sh2a
-3sha.
-s3halb
-shal2li
-shalt2
-4shan
-s3hau
-s3hä
-s3h2e
-sh2i
-3s4hi.
-s2hip
-shi4r
-sh3n
-4s3hoc
-4s3hof
-s3hoh
-s3hol
-4shom
-3sho2p
-sho4re
-3s4how
-s3hö
-sh2r2
-sh4re
-s3hu
-1si
-si3ach.
-2siat
-3si1c
-si2cha
-2s1idea
-2sidee
-2s1ideo
-si3der
-s2i3do
-2sidy
-3s2ie
-sieben3s4
-sie2bu
-siege2s
-sien3
-si3ene
-si3f
-sif4l
-3sig
-si2g1a2
-si2g1ei
-sig4n
-si2g3r
-sig4st
-si2k1ab
-si2k1a2g
-si2kak
-si2kar
-si2k1ä
-si2k1el
-si2kens
-si2k3er4b
-sik3erl
-s4i2k3i
-si2k3n
-si2k3r
-sik3s
-sik3t2
-si2ku
-3silb
-sil2br
-sil2e
-3sili
-s1ill
-3silo
-2s1imm
-2s3impf
-sim4st
-3s4imu
-si3n4a
-2s1ind
-si3n2e
-2s1inf
-4sinfe
-sing1a
-sin3g4le
-sin2g3r
-sing3s2
-2s3inh
-s1in1i
-sini1e
-s2ink
-sinner2
-2s1inno
-4s1inq
-2s1ins
-4sinso
-4sinst
-2s1int
-4s3inv
-sion4
-s2ire
-sirn4
-2sirr
-3siru
-si2sa
-si4sam
-s2isc
-si2schu
-si2s1e2
-si2si
-s1i2so
-sis1or
-si2s3p
-sis3s4
-3s4ist
-si2su
-3s2it
-si2tal
-si2tau
-si2tra
-sit2u
-sit4zerg
-si2va
-sive3
-siver2
-si2v3erf
-si2vin
-siv1o4
-si2vor
-siz2
-1sí
-2sj
-s3ja
-s3je
-s3ju
-2sk2
-s3ka.
-4skab
-sk4al
-4skalk
-s3kalt
-4skam
-4skana
-4skanä
-3skanda
-skani3e
-4skann
-s3kanz
-4skap
-4s3kar
-4s3kas
-sk4at
-ska4te.
-4skateg
-s6kater
-ska4tes
-ska4to
-4skau
-s3kä
-ske2li
-4ske2n1
-3skep
-4sker
-s3kh
-3s4ki.
-s4kia
-3s4kif
-s4kig
-3s2kik
-s3kim
-s4kip
-ski1s
-s2kis.
-3skiz
-4s5klas
-sklat3
-3s2klav
-sk4le
-4sklu
-s3kn
-sk4na
-sk4ne
-4skoh
-4skol
-4skom
-4s3kon
-3skop.
-sko2pr
-4skos
-4skow
-s3kö
-4s3kra
-s3k4re
-3skrip
-4s3kro
-sk3t2
-skto2
-3skulp
-4skun
-sku2s1
-s3kü
-2s1l2
-s3lab
-3slal
-sl4am
-sla4ma
-sla2ve
-s2law
-s3lä
-sl3b
-s3le
-sler3s
-s3li
-3s4lip
-slo3be
-s3loc
-s4loga
-3s2low
-s3lö
-s3ly
-2sm2
-s3ma
-sma3b4
-sma3sc
-s3mä
-s3me
-s4me.
-sme3na
-s3mi
-smi2t3
-s3mo
-s3mu
-s3mü
-2s1n2
-s3na
-snab4
-s3ne
-s3ni
-sni4a
-sni3er.
-sni3ers
-4s3not
-s3nö
-1so
-3so.
-2s3oas
-2s1o2b
-3s2o3ba
-4sobj
-4soboe
-so1c
-so3ck
-sodi4
-so2do
-so3et
-2s1ofe
-so4fen
-s3offi
-3soft
-3sog
-sog4l
-s1o2he
-3sohl
-sohle2
-2s3ohng
-2s1ohr
-3soi
-so3id
-2s1ok
-3sol.
-so3la
-so4lau
-3sold
-3sole
-so2l1ei
-so3li
-sol2la
-sol2ler
-3solm
-so3l2o
-so3lu
-4s3oly
-2s3omb
-3somm
-3s2on
-son2a
-son3au
-sond2
-sone4
-sonen2d
-son4gl
-son3sä
-son2s1o
-so3o
-so2pe
-s1opf
-3sopr
-sop3s
-2s3ord
-sore2
-so2rel
-4s3orga
-so1rh
-2s1o2rie
-so2ro
-3sorp
-3s2orti
-so4ru
-3s2os
-4s3o4sk
-4s3osm
-4so1st
-4s3osz
-3soß
-2sot
-so3t2h
-3sott
-soun2
-sound1
-so3unds
-so3unt
-2s1out
-3sow
-2s1o2x
-2s1oze
-1sö
-sö2c
-2s1ö2d
-2söf
-sö4fe
-2s1ök
-2s1öl
-2s1ös
-1sp2
-2sp.
-s3pa.
-4spaa
-2s3pack
-2spag
-2spak
-2spala
-2spalä
-s2pali
-3s4palt
-spa4m
-s2pan
-3spann
-2spanz
-2spap
-2s3para
-s2parka
-2sparo
-5s4parten
-2spartn
-2sparty
-3s4paß
-3spat.
-2spati
-4spatr
-s2patz
-2spau
-3s2paz
-s2pä
-2späd
-3späh
-2s3pär
-2späs
-s2pe
-2s3pe.
-2speg
-4spein
-s4pek
-2spensi
-spe3p4
-3s4perg
-s3peri
-2sperle
-s3pern
-s4perr
-2spers
-2sperü
-4spet
-s4pex
-3s4pez
-2s3pf
-spf4l
-2spha
-s2phä
-3sphär
-s3phe
-s4phin
-s2pi
-3s4pie
-4s5pier
-spier4r
-spi2k
-4spil
-s4pinn
-3spio
-4spi4p
-4s3pis
-2spl
-4spla
-4sp4lä
-4sple
-3s4pli
-4s3p4lu
-s3pn
-2spod
-4spoe
-2spog
-s2poi
-4s3pok
-4spol
-s2pons
-4spoo
-2spop
-s2pore
-3s4porn
-spor4tag
-4s3pos
-4spote
-s2pö
-4spr.
-s2pra
-3sprac
-2sprak
-s4pran
-2sprax
-sp4rä
-2spräm
-s4prän
-4spräs
-3sprec
-4spred
-3s4pren
-2s3pres
-s2pri
-s4pric
-3spring
-2sprinz
-3sprit
-2sprob
-2sprod
-2sprog
-4sproj
-4sprop
-3spross
-2sprot
-2sproz
-3s4prö
-3spru
-3sprüc
-2sprüf
-3sprün
-2s3ps
-s4ps.
-2sp3t
-2spub
-2spud
-3spuk
-3s4pule
-2spun
-2spup
-3s4pur
-spu2rer
-s4putt
-2s3py
-2sq
-s3qu
-2s1r2
-s3ra
-sr4at
-srat2s
-srat4sc
-s3re
-sre3cha
-s3rh
-s3ri
-s3ro
-sro2h
-srö2s
-s3ru
-s3rü
-srücker4
-2s1s
-ss3abi
-ssa3bo
-s5sack
-ss2agi
-ss1aj
-s3sal
-ss3alba
-s4sall
-s4samt
-s2sanf
-s4sang
-ss2ann
-s4sano
-s4sans
-ss2ant
-s4sanz
-ss2ara
-ss2arg
-ssa1s2
-s2s3att
-ssau4r
-ssau5ri
-s3s2ä
-s4sce
-ssch2
-sschanker6
-s3schw
-s4scl
-s4sco
-s2scr
-sse3a
-ss1ec
-sse1ec
-s3seh
-sseh2a
-s2sein
-ss2eind
-sse3int
-s2selek
-sse2lö
-s3sen
-ssen4kel
-ssen4sem
-ss1epe
-sser3att
-sser2fo
-ss4ergr
-sser2hö
-sser4mit
-sser2öf
-s3s4eru
-sser4wei
-sser2ze
-sses2sa
-s2s3estr
-s3set
-sse3ta
-s3si
-ss3i2ko
-s4sill
-s4simp
-s4sind
-s4sinf
-s4sint
-s4s1isr
-s3skala
-ss3l
-ssmut4
-sso4f
-ss1off
-ssoi4
-s3sol
-s4sop
-ss3ost
-ss2p
-ss4pat
-ss4pec
-ss4pin
-s3s4prä
-s3spri
-s2spro
-ss4pü
-ssquet2
-ss3s2
-sssau4
-sss4p
-sss4t
-s4st.
-sst2a
-s3stad
-ss3tak
-s3stä
-sst2e
-s3stel
-s3s2tep
-s3s2tern
-ss4teu
-sst2i
-ss2tie
-ss2t3in
-s3stop
-ss4tör
-s3stran
-ss4tras
-s3s4trat
-s3strec
-s3strom
-s3strö
-ss2tur
-s3stü
-ss4tw
-s2suf
-s2sumg
-s2sumr
-s3sü
-s3sy
-2st.
-s2ta
-2sta.
-3s4t4aa
-3stab.
-2stabb
-2stabel
-1s4tabi
-2stabit
-2stabl
-4stabt
-2stabu
-st2ac
-1stadt
-2stafel
-1staff
-2stag
-3s4tagl
-3s4tagr
-3s4tah
-s3tai
-2stak
-3staks
-2stala
-sta3lak
-2st1alb
-s3ta3l2i
-2stalk
-st1alm
-st1alp
-st1alr
-st1alv
-st1a4mi
-1stamm
-1stan
-2stanb
-s4tand
-2stanf
-st2ang
-st3anges
-2stanl
-s4tanm
-4st1ann
-s4tano
-st3ansp
-2stanw
-s4tap
-stapo1
-stapos4
-st1app
-s4tar.
-sta4rens
-4stari
-s4tark
-s4tars
-st1asi
-sta4sie
-stast4
-s3tat.
-s4tata
-2statb
-3stati
-s4tau.
-2stauf
-s4taufs
-3s4taur
-2staus
-s4taut
-2stauto
-s4t1a2ve
-4stax
-1s2tä
-3s4täb
-3s4täd
-4stäg
-s4täm
-s4tänd
-2stänz
-4s4täp
-3s4tär
-3stätt
-2s3täus
-2stb
-2st3c
-st4ck
-2std
-4ste.
-4steam
-4stechn
-ste2d
-st1edi
-2stee
-3s2teg
-ste2g3r
-1steh
-s2tei
-st4ei.
-4steic
-st1eid
-3steig
-stei2gr
-2steil
-stei4na
-2steing
-s4teins
-2steint
-s2tel
-2stel.
-st1elb
-s3tele
-s3telf
-st2ell
-stel4l3än
-2steln
-2stels
-2s3tem
-4stem.
-ste2mar
-ste4ment
-3stemm
-2sten
-s5ten.
-ste4na
-s4t3ends
-s5t2ens
-s4tentf
-s4tents
-st1e2po
-2ster
-4s5ter.
-ste2r3a
-s4terben
-s3teren
-3stereo
-s3teres
-st3erfü
-3steril
-4s3term
-3s2ternb
-s2t3er2zo
-4ste2s1
-ste3sc
-stes2se
-stes3ta
-s4testn
-2stet
-s4teta
-ste2tab
-ste4tag
-3s4teti
-3s4tett
-3s2teu
-1steue
-4steuf
-st1eun
-st1ev
-s2tew
-4stex
-s2texa
-2stf
-stf6lan
-2stg
-2sth
-st2hen
-s2t1hi
-st3ho
-s4thö
-s2thu
-st1hy
-2stia
-2stib
-s2tic
-1stich
-st1i2d
-sti2e
-2stie.
-2stief.
-2stiefl
-2stien
-1s2tif
-2stig
-sti2gel
-3s4tigm
-2s3tik
-sti2kr
-s2t2il
-sti2la
-1s2tim
-2stimma
-2stimp
-st1inb
-2s4tinf
-s3tinn
-s2tins
-2s2tint
-2stio
-2stip.
-s4tipe
-2stipp
-s2ti2r
-st1ira
-st1iri
-st1iro
-4stis
-2stite
-1stitu
-2stiv
-2stj
-2stk
-2stl
-st3le
-2stm
-2stn
-s2to
-2sto.
-sto2bl
-2stocht
-2stod
-3stof
-s4toff
-2stok
-2stole
-s3tom
-2s3ton
-4stona
-3s4to4ne
-4stonl
-4stoo
-s4tope
-2stopo
-4s5tor.
-s4torb
-2s5tore
-2storf
-2s4torg
-2stori
-2storp
-2stors
-2stort
-s4tory
-sto3s2t
-3s4toß
-4stote
-2stotr
-4stou
-2stow
-2stoz
-1s2tö
-4stöch
-2stöf
-2s3töl
-2stön
-3stör
-2stöt
-2stp
-2stq
-s2tr
-2strac
-4s3trad
-st4rade
-stra4fa
-4s3trag
-1strah
-2strahi
-4s5trai
-4strak
-2s5tral
-s3trank
-4strans
-1strap
-3stras
-3straß
-2straum
-4sträc
-4s5träg
-2sträne
-2sträum
-2stre.
-s4trea
-s4trec
-4stref
-2streg
-4streib
-3st4reif
-2strep
-2stret
-4streuh
-s4treuu
-2strez
-2strib
-strie3s2
-2s4trig
-1s4trik
-2s5tris
-1stro
-s3troc
-3s4troh
-stro4ma
-s4trome
-2stropf
-2stros
-st4ross
-2ströp
-1stru
-2strua
-2strub
-s4trud
-2strug
-3struk
-2strun
-4s5trup
-2strut
-1strü
-2st3s2
-st4sb
-sts4t
-2st3t2
-stt4r
-st2u
-1stub
-4stuch
-3s4tud
-2stue
-3stuf
-st3uga
-3s4tuh
-s2t3uk
-4stumo
-stum2s
-s3tum4sc
-2stun.
-st3una
-5stund
-2stune
-s2t3uni
-4stunn
-2stuns
-2stunt
-stu3ra
-stu5re
-st3url
-4sturn
-2st3urt
-3s2turz
-2stus
-1s2tut
-1stüc
-4stüch
-3s4tück
-3s4tüh
-4stür.
-4stüre
-3stürz
-1stüt
-2stütc
-2stv
-2stw
-stwor2
-2sty
-4sty.
-1s2tyl
-4styp
-4stys
-2st3z2
-stze3c
-1su
-su1an
-3su2b3
-su4ba
-4subi
-3su1c
-su2cha
-su2chi
-su2cho
-suchs3p
-3sud
-su2eb
-s1uf
-su4fe
-2s1uh
-su1is
-su1it.
-su2k
-3sul
-su3l2i
-sum1a
-su2man
-su2mar
-3s2ume
-su2mei
-su2mel
-sument2
-su4ments
-su2m1et
-2s3umf
-su2m1id
-su2min
-3s2umm
-sum1o2
-su2mor
-s2ump
-s1ums
-s3umsa
-2sumse
-2s3umst
-su2n
-3s4un.
-2s1una
-sunder2
-sun4d3erh
-2s1unf
-4sungena
-2sungl
-sung4s
-4s1uni
-2sunm
-2s1uns
-s4uns.
-s4unst
-2sunt
-2sunv
-2sunw
-s4unwa
-3sup
-4supd
-sup3p4
-su2ra
-sure4
-su2rei
-su2rer
-3surf
-2s1urk
-su2r1o
-2s1ursa
-s1urt
-su2s3
-su3s2a
-s3u2t
-su4te
-su3tr
-3suv
-suz2
-1sü2
-2s3üb
-sü4be
-3süc
-süd1
-sü4da
-süden2
-3süf
-3sün
-3s2üs
-3süß
-2sv2
-s3ve
-s3vi
-s3vl
-s3vo
-svoran2
-2sw
-s3wa
-s3we
-swe4gers
-sweh2
-s3wi
-4swie
-4swil
-4swink
-s4wist
-4swit
-s3wo
-s3wü
-1s2y
-s3ya
-2syl1
-sy2lo
-sy2lu
-sym3
-sy2n3
-3synd
-sy4no
-3sys
-sy4ste
-sy3sto
-2sz2
-s3za
-s3zä
-s4ze.
-4s3zei
-4szel
-3s2zena
-s2zend
-3s2ze3n2e
-4s3zent
-4s3zer
-s2zes
-s3zet
-4s3zeu
-3s2zew
-4s3zie
-4szim
-s3zo
-s3zs
-sz3t
-sz4ts
-s3zu
-s3zü
-1ß
-2ß1a2
-ßa4si
-ß3at
-ß3au
-2ß1ä
-2ßb2
-ßb4ri
-2ß1c
-2ßd2
-2ß1e2b
-2ß1ec
-ß1ef
-2ß1e2g
-2ß1ei
-2ß1ek
-ße2la
-ße2le
-2ßelek
-4ß1emp
-ße4n3a2
-4ßenerg
-ße2ni
-ß1enke
-ße2no
-ß2ente
-4ßentl
-4ßents
-2ßentz
-ß1e2p
-ßer3b
-ßer2ei
-ßer2la
-ß1erse
-ßer3t
-ß1erw
-4ß1er2z
-4ß1es2s
-2ß1estr
-ß1ex
-2ßf
-ßf4ru
-2ßg2
-ßge2bl
-ß3gm
-2ß1h
-ßi2g1a2
-ßig4s
-ß3i2k
-ß1il
-ß1im
-ß1in
-2ßj
-2ßk2
-ß3kh
-ßk4le
-ßk4ne
-2ß1l
-ßler3s
-2ßm
-ßmut4
-2ß1n2
-ß3ni
-2ß1o2
-ßo4fe
-ßos2
-2ß1ö
-ßö4fe
-2ßp2
-ß3pf
-2ßq
-2ß1r2
-ßrö2
-ß3ru
-2ß1s2
-ß3sa
-ßsau4
-ßsch2
-ß3sk
-ßst2
-ßs4to
-ßs4tü
-2ßt
-ßt1in
-ß3tü
-2ß1um
-ß1unf
-2ßunt
-2ßunv
-2ß1ü
-ßü4be
-2ßv
-2ßw
-2ßz2
-ß3zs
-1t
-3ta.
-t2aa
-3taan
-ta3ar
-4tab.
-3taba
-ta2b3an
-2t1abb
-tab2bau
-4tabd
-3tabel
-2taben
-2tabf
-2tabg
-4tabh
-2t3a2bit
-2tabk
-4tabla
-4tablä
-4tabm
-2t3abn
-2ta4br
-4tabs
-t1abst
-2t3abt
-3tabu
-4tabw
-4tabz
-2t1ac
-4tachs
-3tacu
-t1ada
-2tadd
-ta2der
-tadi3
-tadi5o4
-t1adm
-t1a2dol
-t1a2dr
-ta3d2s
-4tadt
-tad4tr
-ta2er
-3taf.
-3tafe
-4tafet
-4taff
-t1afg
-t1afr
-3tag
-ta2ga
-ta2g1e2i
-2t3a2gent
-tage2s
-4t1agg
-ta3gl
-4t1a2go
-tag4san
-tags3c
-tah2
-tahls2t
-ta3i2k
-tai2l1
-ta1ins
-tai4r
-ta1ir.
-ta1i2s
-2t1a4ka
-2t1akk
-2t1akq
-ta4kro
-tak4t3erf
-tak4t1o2
-2takz
-3t2al.
-ta2la
-ta3lad
-ta3lag
-tal3au
-3talbr
-tald4
-3tal2en
-ta2l3end
-tal3eng
-ta2l3ens
-3taler2
-ta2ler3g
-ta2let
-tal2ga
-tali4ene
-tal2l3ac
-tall3ei
-tal2l1ö2
-tall3s4
-2t1alm.
-3talo
-ta2lop
-ta2l1o2r
-3t2als
-t1alta
-tal3th
-talt4r
-ta2lu
-2tam
-3tam.
-3tame
-t1a4mer
-tamm1a
-tam2m3er
-t1ampl
-3tams
-4t1amt
-t1a2na
-tan3ab
-4tanal
-ta4nat
-2t1a2nä
-2tanb
-3tan2c
-tan3d2ar
-tan2d3r
-tand2st
-ta2nerf
-4tanf
-2t1ang
-t3angeh
-t3angel
-t2ango
-tan2gra
-2tanh
-t2anho
-t4ani
-3tanj
-3tank
-tan2kl
-4tankr
-4tankü
-4t3anl
-t1anm
-2t1anna
-3t2anne
-t1ano
-2tanom
-2tanp
-t1ans
-t2ans.
-4tansi
-2tanspr
-tan2tan
-t2ante.
-2tantei
-2tantr
-2tanwa
-2tanwä
-t2anz.
-t1anza
-3tanzk
-t2anzp
-3tanzr
-2t1anzu
-2tanzü
-tan2z3w
-tao2
-ta3or
-t4ape
-ta2pes
-2tapf
-ta2pl
-ta2poka
-t2appe
-ta2ra
-2tarab
-3tarabb
-3tar5al
-2taram
-t2aran
-ta3rant
-tar3ap
-ta3ras
-t2arau
-2tarb
-3tarba
-tar4beitn
-3tarbek
-3tarber
-3tarbi
-3tar3bl
-2tarc
-4tarchi
-3t2ard
-ta2rel
-ta2r1er
-tar3g
-ta1r2h
-3tari
-2tark
-tark4l
-t2arl
-2t1arm
-t2armä
-tar4nei
-ta2rom
-4tarot
-2tart
-4tart.
-t2arta
-4tarten
-t2arth
-t1arti
-3t2artis
-tar4to
-tar2tr
-4tarts
-3tartu
-3tartü
-ta2ru
-2t1arz
-3tarzu
-3t2as.
-ta3s2a
-tasau1
-3tasc
-t1asp
-4taspe
-ta3spr
-2t3assi
-3tast
-tas4to
-t2asy
-2t1as2z
-t4at.
-ta2tab
-ta2tan
-3t4atb
-t4ate
-tat1ei
-t5a2tel
-ta2tem
-3taten
-ta2t1er
-2t3atl
-2tatom
-2ta2tr
-3tatsa
-2tatta
-2tatti
-4tatue
-tat3zw
-tau2b1a
-3taubh
-tau2bl
-tau2b3r
-4taubs
-tauchs4
-tauch3sp
-4taud
-2t1auf
-3taufe.
-4taufk
-4t3aufl
-tau3f4li
-4taufm
-4taufn
-t3au4f1o
-4taufp
-tau3fr
-4taufw
-3taug
-4t3auge
-t1auk
-3taume
-4t1ausb
-3tausc
-tau4scha
-tau4schm
-tau4schr
-tau4schw
-2tausd
-t2aus2e
-4tausee
-4t1ausf
-4t3ausg
-t1ausk
-4t1ausl
-2tausr
-4t3auss
-2tausü
-2tausw
-4t3ausz
-4tauu
-3tav
-4tava
-3tax
-4t1axt
-3taz
-tä1c
-t2äf
-3täg
-4tägä
-4tägy
-2täh
-4täll
-2t1ält
-2täm
-tä4mi
-t1ämt
-t1ängs
-3tänz
-2t1äp
-2täq
-tä2reng
-tä2ru
-2t1ärz
-tä2s
-t2ät
-3tätigk
-4tätt
-2täug
-2täuß
-2täx
-2tb2
-t3ba
-tbauer2
-t3be
-tber2e
-t3bh
-tblocken4
-tb4ra
-tb4ri
-t3bs
-tby4t
-2t1c
-t3cha
-t3che
-tchen3
-tch2i
-tch3l
-t3chr
-t2ch1u
-tch3w
-t2ck
-t3cl
-t3co
-tcor2
-t3cr
-tc4up
-2td2
-tdar2m1
-tdä1
-tdes2t
-t3do
-t3ds
-tdun2
-3te.
-te2a2
-te3ab
-tea3c
-te3ag
-2teak
-te3al
-3team
-3te3an
-te3ar
-3teba
-t4ebb
-2t1e2ben
-t2ech
-2techd
-2techk
-2techm
-3techn
-2techt
-te2chu
-2teck
-te3cker
-te2cki
-2t1ecu
-te2dit
-3tee
-tee3id
-te1em
-teen1
-te2er.
-te1erw
-te2es
-3tefa
-2teff
-2t1egg
-2teh
-3teha
-te2hac
-3tehä
-3tehi
-te2him
-3tehö
-t1ehr
-te3hu
-3tei.
-3teic
-tei3fl
-2teign
-teik4
-3t2eil
-tei4lent
-tei3m2
-2tein
-teinen4
-tei4nens
-t3einkü
-2t1eis.
-t1eisb
-te3isch.
-t1eiw
-tei3z4
-te2kel
-tekt4
-3tel.
-3te2la
-tel3ab
-tel1ac
-te3lan
-te4lant
-tel1au
-te2lä
-telb4
-3telbr
-3tel3d4
-tel1ec
-tel3ehr
-2telem
-tel3eng
-te2ler
-tele3s
-te2leu
-4t3elf.
-3telg
-3telh
-tel1in
-t1e2lit
-3telk
-tel3le
-tel4lein
-tel3li
-4tellu
-3teln
-te2lob
-te3lom
-te2lost
-te2l1ö
-3telp
-3tels
-tel3s2k
-3telt4
-tel3ta
-3telw
-t2ema
-te2man
-te2m1ap
-tem3art
-te2mau
-2tem2bo
-te2m1ei
-te2m1er
-te2mi
-tem3i2m
-tem3ing
-te3misc
-4temm
-3temod
-te2m1o2r
-te4mp
-5temper
-4tempf
-tem3s
-te2mu
-te4mun
-3ten
-t4en.
-ten1a
-te4na2d
-tena2g
-te4n3an
-ten3ar
-te4nas
-te4nat
-ten3au
-te2n3ä
-ten3da
-4t3endal
-tend2an
-4tendap
-4t5endf
-t4endi
-4t1endl
-t4endo
-4t5endp
-t4en3d4r
-te2n1e2b
-te2nef
-te2neh
-ten3ei
-te3n4ei.
-tenei2d
-tene4m
-tenen1
-te4n3end
-te4nene
-te4neng
-te4nens
-4t3energ
-te2n3ern
-4tenerp
-4t1eng.
-teng2a
-2ten2gag
-te2ni
-te4nil
-ten1im
-te4nin
-tenk4
-ten3n2
-4tenog
-te2nol
-te2nos
-te3nö
-6t3ensem
-tens2p
-tens3th
-t1entb
-4tentd
-4t3entl
-4t3entn
-t1ents
-4t5entw
-4tentz
-t2enz
-ten2z3er
-teo4f
-2tep.
-t1epi
-te2pil
-3tepr
-tept2
-3t4er.
-t4era
-tera2b
-ter3a2c
-te2rad
-te1ral
-te2r3alg
-te3ran.
-te3ranb
-te3rane
-te2r3ap
-tera4s
-2t1erbs
-2t1erbt
-3terc
-2t3erde.
-ter3d2s
-3tere.
-te2r1e2b
-te2rec
-2t3ereig
-ter3ein
-te5rek
-te2rel
-ter3ell
-3tere2m
-te2rema
-te2r3end
-te2rene
-te2reng
-te2r3ent
-teren3th
-2tereo
-3terer
-terer3k
-terer4ku
-terer3l
-te2r3erp
-te2rers
-te2rerw
-3t4erfr
-terg2
-ter3ga
-t4ergem
-t4erges
-t4ergew
-ter4gieb
-ter3gl
-4tergrei
-ter2gri
-t4ergru
-te4rh
-t4erhall
-t2erhan
-t4erhau
-t2erhäu
-t2erhei
-5t2erhi
-5t2erho
-t2erhu
-te3ria
-te2rid
-ter3iko
-2teril
-teri4o
-te2rit
-ter3i4ta
-3terkla
-t4erlä
-ter3lei
-t4erli
-ter2lös
-ter2mer
-t2ern.
-ter2nar
-2t4ernc
-t4ero
-te1rob
-ter2obe
-t1e2r1ö
-ter3r2
-t4erra
-ter4re.
-t4erro
-t4ers.
-t2erse
-t4erst.
-5t4erstad
-t4erstä
-t6ersted
-ter5sterb
-t4er3sti
-ter3sto
-ter3str
-t4erstu
-t4erstü
-ter4sw
-tert2
-ter3ta
-ter4trä
-t4eru4
-te4r1uf
-te3rung
-t4erü
-t4erv
-2t3erwäh
-ter3z2a
-2t1erzb
-3t4erzei
-ter3zw
-3tes
-t2es.
-tesa4k
-tes2c
-tes2ka
-te2s3pr
-2t1essa
-tes3tan
-tes3tät
-tes4tel
-tester2
-tes4terg
-tes4t3erh
-tes4terk
-2testn
-t3est3ri
-te2su
-3tet2
-t1eta
-te2tabl
-4te2tap
-2te2tat
-teten3
-4t1e2th
-te3tho
-te2tik
-4tetl
-tet3ti
-teuer5b
-teuer3r
-3t4euf
-teu4fa
-3teum
-3te1u2n
-4teunu
-2t3eup
-3teur.
-teu2rob
-te2va
-te2vi
-tewa2s
-3tewo
-2texam
-2t1e2xe
-te3xel
-2t1e2xi
-2texp
-tex4ta
-2t1exz
-tè2
-tê4te
-2tf2
-t3fj
-tf4la
-tf4lö
-tf4rö
-tf4rü
-2tg2
-tga2s3er
-tga2su
-tge4nen3
-tger2a
-tger2i
-tg4ra
-2th.
-2t1h2a
-3tha.
-3t2hag
-4thak
-3thal.
-3thalh
-t4hali
-t2hals
-4tham
-t2han.
-t3hand
-4t3hap
-4t3hau
-2t1hä
-3thäi
-4thäl
-2thb
-th2e
-3t4hea
-2t1heb
-4t1hef
-2t1hei
-the1in
-4theit
-t2hek
-2thel
-3thema
-2themd
-t1hemi
-2themm
-t1henn
-3theo
-t1herd
-3therm
-thero1
-2t1herr
-2t1herz
-4t1hess
-t2heu
-2thf
-th2i
-3thi.
-thic3k4
-thi3er.
-2t1hil
-2t1him
-2t1hin
-thi3nu
-2t1hir
-2thk
-2th3l
-2th3m
-thmu2
-2th3n2
-2t1hob
-t1hoc
-tho3chr
-t1hof
-2t1hoh
-t2hol.
-t2holo
-t1hols
-t1holt
-2tholz
-t2hom
-t2hon
-4thops
-tho3ra
-tho1s
-2t1hose
-t1hot
-4thote
-2thou
-t1hov
-2thö
-2thp
-th2r2
-th4ro
-2ths
-2tht2
-t1hu
-2thub
-4t3hun
-2t1hü
-2thv
-ti3ac
-ti1ag
-4t3iago
-ti3alo
-ti1a4m
-ti2ä
-3tib
-3ticc
-ti1ce
-3ticket
-t2id.
-ti3de.
-2tidee
-ti2d3en2d
-ti3dy
-3tief.
-3tiefe.
-2tiefel
-3tiefen
-3tiefl
-tie2fr
-2tieg4
-2tieh
-ti2e1i
-ti1el
-tiel3a
-tie4n1
-ti3ene
-tien3s
-3tier
-tie2rei
-tie2reu
-tie3s4t
-2tieß
-ti1eu
-3tif.
-ti3fe
-ti3f4r
-tifter4k
-3tig
-ti2gerz
-ti2git
-tih2
-3tij
-ti2kam
-ti2kar
-tiken2
-ti2kent
-ti3k4ere
-ti3kerl
-ti2kin
-ti4klu
-ti2kn
-ti2kop
-tik1r
-ti2kra
-ti2krä
-ti2krei
-ti4kro
-ti2lar
-til3d
-ti2lei
-ti2lel
-3tilg
-2tillu
-ti2lö
-tilt4
-ti2ma2g
-tim2man
-t3immat
-timmer2
-tim4merg
-3timo
-2timp
-tim2s
-3tin.
-t4ina
-ti3naf
-ti3nak
-ti2n3an
-t1ind
-ti3n2e
-tine1i
-ti5nen
-2t1inf
-3ting.
-tin2ga
-tin3gen
-tin2gi
-ting3l
-ting3s
-tings4p
-2t1inh
-3tinis
-t1init
-t1inka
-tin2k1l
-tin2kn
-t1inku
-t2inn
-ti2nor
-t1ins
-3tins.
-t2insä
-4t3inse
-tin2spa
-tin2sum
-t1int
-3tinte.
-2t3inter
-ti3nu
-tin2um
-4t1inv
-3tio
-tioxi3
-3tip
-2tipe
-ti3p4l
-ti2que.
-3tirad
-ti1r2h
-ti4ron
-3t2isc
-ti4schei
-ti2schr
-tisch3w
-ti2sei
-tis2el
-ti3sk
-2t1isl
-t1iso
-ti2sp
-t1isr
-tiss4
-ti3s2th
-tis3ti
-ti1s4tr
-ti2s1u
-t1it2a
-ti2tal
-3tite
-ti3th
-3t2iti
-2ti3tu
-3tiu
-tium4s
-tiu4s
-3tiv
-ti2van
-ti2vel
-tiver2
-ti2verh
-ti2verk
-ti2verl
-ti2v1o
-ti4v3r
-ti2za
-ti2zir
-2tj
-2tk2
-tklat3
-tk4ne
-t3kr
-2t1l2
-tlan2g
-t2lef
-tlei2bl
-tlei4der
-tl4er
-tle2ra
-t3li
-tlings5
-tli3sc
-tlit1
-t3lo
-tlung4
-2tm2
-tmal2
-tm4am
-tma2st
-tmen4schl
-tmen4t5
-tmen6tr
-t3mo
-tmo4des
-t3mö
-2t1n2
-t3na
-tn4an
-t3ne
-tnes2
-t3ni
-3to.
-to3ar
-to3at
-t2oba
-2to4bj
-tob2l
-t1obs
-3tobt
-to1c
-t3ochs
-3tocht
-to2cka
-to4ckent
-3tod
-tod1er2
-to4dun
-toe2
-tof4fa
-tof4f3ent
-tof2f3er
-2toffi
-toff3s
-3tog
-2t3ohr
-3toi
-4toi.
-toi4r
-4toiz
-3toj
-3tok
-tok4l
-3to3le
-tomar2b
-to4mene
-3tomi
-4tomn
-to4m1u
-to5mus
-to2nan
-ton3au
-tond2
-to2n2eh
-toner4ke
-to4nid
-to2nob
-2tony
-3too
-3top.
-to4pad
-to4pak
-to3pas
-to2pat
-top1hi
-to2ple
-3topo
-2to4pt
-3tor
-t4or.
-tora2g
-to4rän
-4torc
-t1ord
-t2ordi
-4t3ordn
-t4ore
-to2rel
-to2rem
-to4renna
-tor2fan
-t1or3g
-4torga
-t3orient
-torin2s
-tor3int
-to2rö
-t4o4rs
-4t1ort.
-tor3t2a
-4t1orth
-4tortn
-4tort2s
-to4ru
-to5rus
-to3rü
-to4rüb
-to3sc
-to3s2e
-to3s2h
-to4ska
-to3s2p
-4toss
-3to1st
-4t1osz
-to4ßi
-to3ßu
-to2tä
-3tote
-to5tem
-to2tho
-3totr
-tot3s2
-3t2ou
-touil2
-to3un
-3tow
-3to1x
-3toz
-3töch
-4töck
-2t1ö2d
-2töf
-tö4fe
-2t1ö2k
-2töl.
-3tön
-t2ör
-törs4
-t1öst
-3töt
-2tp2
-t3pf
-tpf4l
-tpi2n
-t3pl
-tp4lu
-tp4rä
-t3ps
-2tq
-t2r2
-2tr.
-3tra.
-t4rab
-3trac
-tra3cha
-tra3chl
-2t3rad.
-2trade
-tra2dem
-4t3radie
-tra4fah
-tra4far
-t4rag
-3trahi
-4trahl
-2trahm
-3t4rai
-3trak
-4t3rake
-t4rakt
-3tr4al
-tral3l
-tra5me
-3t4ran.
-4trand
-4trang
-t3rann
-5t4rans
-tra3po
-tra2st
-4traß
-2traub.
-t4raue
-t4rauf
-2traup
-3träc
-2träd
-3t4räg
-3träne
-4träng
-2träuc
-4tre.
-2trea
-t3reak
-2treb
-tre2b3r
-2trec
-t3rech
-t4reck
-5treck.
-tre3cke
-2t3red
-3tref
-4trefe
-5treff
-4trefl
-4trefo
-4treg
-t3reh
-t4rei.
-3t4reib
-4treic
-4treif
-2t3reig
-2t3reih
-2t3reim
-4t3rein
-2t3reis
-tre5isch.
-4treit
-t3reiz
-2trek
-4t3rel
-t4rem
-t4ren.
-3trend
-4trendi
-3trennu
-t3rent
-t3repa
-2trepe
-2t3repo
-3trepp
-t3repr
-t4rer
-5t4res.
-t3rese
-tre2ta
-t4rete
-tret3r
-tre2tri
-2t3rett
-t4reu
-3treuh
-4t3rev
-t4rex
-4trez
-3tré
-2t3rh
-3tri
-t4rib
-4tric
-t4rick
-t4rid2
-5trieb
-trie3fr
-tri2en
-tri4ena
-tri3ent
-tri2er
-tri4ers
-trie1s
-4trig.
-5trigg
-tri3gl
-t4rik
-tri2ke.
-tri2kes
-5triko
-4t3rind
-4tring
-tri3ni
-4t3rinn
-4tript
-tr4is
-tri2x
-trizi1
-3tro.
-tro3b4
-2trock.
-3troe
-3trog
-tro2kes
-trol2la
-tr4om
-tro4men
-4tromk
-4troms
-3tron
-tro3na
-t4rop
-tro3pe
-3tropf
-tro3sm
-3trost
-t1rot.
-2trout
-3t4roy
-4t3röc
-2tröh
-4tröm
-3tröp
-3trös
-4t3röss
-3tröt
-3trua
-3trub
-2t3ruc
-4truf
-t4rug
-4truk
-trum4
-t3rumä
-trums5
-t3rund
-3trunk
-3t4rup
-t3russ
-2trut1
-tru2th
-4truw
-trü3be
-trü3bu
-2t3rüc
-trücker4
-t4rüg
-3trümm
-3try1
-2ts
-ts3a2b
-t4sachs
-t2s1a2d
-ts1ahn
-t3s2akk
-t2sall
-t2salt
-t4samp
-t4s1amt
-t2san
-ts3ane
-tsa2p
-tsa2r
-ts3are
-ts3ari
-t2s1a2s
-tsas3t
-t3satz
-t2sau
-tsau1c
-ts2av
-t2säh
-ts1än
-ts1äus
-t4schart
-t4schef
-tsch2li
-t4schro
-t3schü
-ts4cor
-t2s1e2b
-tse2e
-t2sef
-tse2he.
-t2s1eic
-t3seil
-t3seme
-ts1eng
-t3s2ens
-t2s1ent
-t2s1ep
-t2s1er
-tser2u
-t4s3essen
-tse2t
-ts1eta
-t2s1eti
-t2s1ev
-t2sex
-t3sexi
-t2s1i2d
-t2s3i2k
-t2sim
-tsing4
-t2sini
-ts1ir
-t3s2kal
-ts2kele
-tski2
-t4sko
-tso2
-ts1off
-t2s1op
-ts1orc
-t2s1ori
-ts3ort.
-t3soz
-t2sö
-t2spac
-t2spal
-ts2pare
-t2spat
-t2spä
-t3sped
-t3spei
-t3spek
-t2sph
-t3spi
-t4s3pic
-t4spins
-ts3ple
-t2spo
-t3s2pon
-t3s2por
-t2sprei
-t2spro
-t4sps
-ts2pul
-ts3s2
-tsser2
-tss4t
-t1st2
-t2stabe
-t2staf
-t4stag
-ts3tak
-t2stale
-t4s3tanz
-t4stas
-t2stat.
-t2s3täti
-t2stea
-t3stein
-t4stele
-ts2terb
-t3s2tern
-t3s2tero
-t4sth
-ts5the
-t3stif
-t3stim
-t4stit
-t2stoch
-t4stoi
-t4ston
-tst4r
-t3strec
-t4stren
-ts3treu
-t3stric
-t4strie
-t4strun
-ts2t4u
-t5stub
-ts4tüm
-t4sty
-ts1u
-t2su.
-5tsubi
-t2sumg
-t2sums
-t2sumv
-t2sumz
-t2s3un
-tswa2s
-t3sy
-t4sza
-2tt
-tt1ab
-tt2ac
-tt3achs
-tt1ad
-tt2ag
-tta4g3ess
-t4t1ah
-tta4ke
-tt2al
-t4tan4a
-ttank3l
-t2tanm
-tt2ant
-t2t1ap
-t4tapp
-tt1art
-tt3atr
-tt1äh
-tt1ebe
-tt1eif
-tt1ein
-t2t1eis
-tte4l1a2
-tte2l3e2b
-tte2len
-tt2eli
-tte2lin
-ttel1o
-ttels2t
-ttel3ste
-t2temu
-tte4na
-tten4sem
-t4tentb
-tten3te
-t4tentf
-t4tents
-tten3z
-t2teo
-tte4r3ar
-tt4ere
-tt3erfo
-tteri2e
-tte4rik
-tte2ro
-tt2erö
-tt4es1
-tte4s3a2
-tte4s3ä2
-tte2so
-ttest4r
-tt2häu
-tthä3us
-tt1hi
-t2t1ho
-t2ti4d
-t4t3igi
-t2tins
-tt2int
-t2tiso
-t3tit
-t4t3la
-t4tli
-tt5nan
-t4torg
-tt3rü
-ttschi4
-tts1eh
-tt2sen
-tt2spe
-tt2spr
-tt2s3tät
-tt2sum
-tt3sz
-tt3t2
-tt5tri
-tt1u4f
-t3tü1
-t4tüb
-tt3z2
-ttz4w
-3tua
-tu4ale
-tu1alm
-tu1alv
-tu3ant
-2tub2
-tuba3b
-3tuc
-tu2chi
-tu1cho
-2tud
-tudie4n3
-3tue
-tu2ere
-2tuf
-tuf2e
-tu5fen
-t3u4fer
-3tuff
-tu2gan
-2tuh
-tuh4ler
-tu1ist
-tu2kr
-tul2i
-3tum.
-tum2b5l
-3tume
-4t3umf
-2t3umg
-2t1umh
-2t3umk
-2tuml
-3t2umo
-2t3umr
-2t3umsat
-2t1umsc
-tum2si
-tum2so
-tum4s5tr
-2t3umt
-2t1umw
-2t3umz
-3tun.
-2t1una
-2t1und
-tund2e
-tun2en
-2t3unf
-3tung.
-t3unga
-tung4s5
-tun2i
-2tunif
-2tu2nio
-2tuniv
-2tunm
-3tunn
-t1u2no
-2t3unr
-t3uns
-3tuns.
-4t3unt
-2tunv
-2t1up.
-t1upg
-tu2r1a2g
-tu2r1an
-turan4l
-tu2ras
-tu2rau
-tu2rä
-tur1c
-tu2r1e2b
-tu2rei
-tur3eis
-tu2rene
-tu2r1er
-tu4res
-tu2re4t
-tu2r3e2v
-turf4
-tur3g2
-tu2rid
-tur1in
-tur4mun
-3turn
-tu2r3o
-tur3s
-tur5sa
-tu2ru
-3tus
-tu2sa
-tu2schl
-tu2s1e
-tu2so
-tut2a
-tuto3
-2tü
-tü3ber.
-3tüch
-tück2s
-3tüf
-3tüm
-3tür.
-tür1c
-3türe
-3türg
-3tür3s
-3türw
-4türz
-3tütc
-3tüte
-4tütz
-2tv2
-t3vo
-t4vo.
-tvoran2
-2tw
-t3wa2
-twegs2
-t2wist
-tw4ri
-2t1ya
-3typ
-ty2p1a
-ty4ps
-ty1s2
-2tz
-t2za2
-tz1ag
-tz1ap
-tz3ar
-tz1au
-t2z1ä
-t3zäh
-t2z1e2c
-t2z1e2d
-tz1ehr
-t2z1eie
-t2z1eig
-t4z1eis
-tzei4tend
-tze2m
-tz1emi
-tze4n1
-tz2ene
-tzen3s4t
-tzen3ta
-t2zentg
-t2zentl
-t2zents
-tze2reb
-tzer4gre
-t2z1er2m
-tz1erw
-tz2er3z
-tz3erzi
-tze2s3
-tz1e2t
-t2z1i2d
-tzi4m
-tz1imi
-tz1int
-tz1inv
-t2z3om
-t2zop
-tz2th
-tz4tin
-tzu2gu
-tz1unf
-t2zuni
-tzwan2d3
-tz3wä
-tz3wi
-t3zwie
-tz3wu
-2ua
-u3a2b
-u3a2c
-ua2dan
-uad4r
-u1a2g
-u1ah
-ua4ka
-u1al.
-u1a2l1a
-u1a2l1ä
-u1alb
-u1ald
-u3aleb
-u3a2lent
-u3aler2
-ual3erk
-u3a2let
-u1alf
-u1alg
-u1alh
-u3a2lid
-u1aln
-ua2l1o2
-u1alp
-u1alr
-u1als
-u1alt4
-ual5tr
-ua2lu
-u1alw
-u1al3z4
-u1am
-u1an.
-ua3n2a4
-u1ans
-uant2
-u3ar.
-uara2b
-u1ars
-uar2t3an
-ua3sa
-uasi1
-ua2th
-uat2i
-uati4ons.
-uat2o
-u3au
-u1ay
-u1äm
-u1än
-uä2s
-u1äu
-2ub
-u2barb
-ubb4l
-ube2be
-ube2e
-u2b1ehe
-u2b3eins
-u2b1e2m
-ube4n1a
-uben3o
-ub2er
-u2b3erde
-ubert4
-u3b4es
-ub1eul
-ub4is
-u3b4it
-ub2l
-ub3läu
-ub3lic
-ub3lu
-ub4lut
-u2bob
-u2b1ok
-u2bop
-u2boz
-ub5rah
-u2b3rit
-ub4ro
-ub4rü
-ub2san
-ubsau4
-ub4s3che
-ub2s1o
-ub2s3p
-ubst4
-ub3t2h
-2uc
-uc1c
-u4ch.
-uch1a
-u1cha.
-u2chan
-uch1ä
-u1che
-uch1ec
-u2ched
-uch1ei
-ucher3f
-u3ches
-u1chi
-uch3im
-uch1in
-uch3l
-uch3m
-uch3n
-uch1op
-u2ch3r
-uch2sel
-uch2so
-uch2sp
-uch4stem
-uch2tak
-uch3tan
-uch4t3erf
-uch4t3ert
-u1chu
-uch3ü
-uch3w
-u1ci
-uck3elf
-u2ckem
-u2ckent
-u2ck3i
-uck2sti
-u1cl
-uc4re
-2ud
-u3d2a
-uda3d
-ud4at
-ud2e
-ude1e
-ude3i2
-udein5
-ude2n1
-uden3e
-uden3s2
-udert4
-udi3en
-udiener4
-udio3
-uditi4
-u3d2ob
-u2don
-udo1s
-ud3ra
-u3dru
-2u1e
-ueb4l
-ue1ch
-ue2ck
-u2ed
-ueen4
-u2eg
-u2eh
-ue2ke
-u2ela
-ue2lek
-ueli4
-uel2lau
-uel4lent
-ue2mi
-uen1
-u3en.
-ue4n3a2
-ue2nä
-u3enb
-u3end
-uene2
-ue2neb
-ue2ner
-uen2gag
-uenge2
-uenge4m
-uengene3
-uen2gl
-ue2ni
-uenk4
-ue2no
-uen2zu
-u2ep
-ue2r3a2
-ue2r1ä
-uerb2
-uer4baut
-u3erbu
-uer3d2
-uere2
-ue2rec
-uer4ei.
-u3ereinn
-uerei3s2
-uer3ela
-u3eremp
-u3e2r3ent
-ue3r2erb
-u3ererf
-ue2rer2g
-uerer2h
-uerer2k
-uerer4m
-ue2rers
-uerer4sa
-uer3esk
-ue2re4t
-u3erex
-uerg2
-uer3ga
-uer2geb
-ue2ri2d
-ue2r1i4m
-uerin3s
-u3erin2t
-u3erl.
-u3ern
-uer4nan
-uer2nar
-uer2ne
-uern3s2t
-ue2r3o4
-uer2ö
-uerrü2
-uers4p
-uerst4
-uer3stei
-u3ersti
-uer3t2
-u3eruh
-u3erum
-u3erunf
-u3erunt
-u3erur
-uer2wec
-uer3z2
-ue2ta
-ue2tek
-ue2tik
-uety2
-u2ev
-ue2x1
-u2f
-u3fa
-uf1ab
-ufa2ck
-ufall2
-ufa2n
-uf3ane
-uf3a2r
-uf1aß
-ufa2t
-uf1au
-u3fä
-u4f1än
-uf1är
-uf1äs
-u4f1ä2ß
-u3fe
-u4f1ei
-ufel4s3a
-u4f1em
-4ufen
-u4fent
-uf2ere
-u4ferf
-u4f1erh
-ufer4lau
-u4ferle
-u4ferne
-u4f1et
-u4fex
-2uff
-uf3f2e
-uff4l
-uf2fro
-u3fi
-u4f1id
-u4fim
-u4f1ins
-uf3l
-u4fläs
-uf4lü
-uf5lüd
-uf5lüm
-u3fo
-u4fob
-u4fof
-u4fop
-ufo2r
-uf1ori
-u3fö
-uf3r
-u4fru
-uf3sä
-uf2spo
-uf2stab
-2uft
-ufta2b
-uft1eb
-uft3erd
-uft3er2g
-uf5tri
-uft3s4
-u3fu
-u4fum
-u3fü
-2ug
-ug2abe
-u2gabte
-ug1a2d
-ug1ak
-u2gana
-u2ganb
-u2gani
-u2g1ans
-u2gant
-ug1ap
-u2g1ar
-uga4s
-ug1au
-ug3d2
-u3ge.
-u2g1ec
-ug4eg
-ug1e2i
-u2geig
-ug2eil
-u2g3ein
-uge2lob
-ug1emi
-ugene2
-ugen3s2
-u2g1erf
-u2g1erk
-u2g1erl
-u2gerr
-u2gerv
-uges4
-u3ges.
-u2g1esk
-ug2et
-ugge4st
-ug2gl
-ug4gt
-ug3hu
-u2g1i2d
-u2gim
-ug1in
-u2gins
-u2g1l
-u4glä
-u4gleitb
-u4gleitu
-u4glic
-u4glis
-ug3liz
-u4g3lo
-u4glu
-u2g3n
-ugo3
-u2go4b
-ug3oc
-u3gon
-ugo4p
-u2g1o4r
-u2gö
-u2g3ram
-u2g3rä
-u2greg
-u2g3reis
-u2g3res
-u2g3rie
-ug3ro
-u2grou
-ug3rüs
-ug4spe
-ugs4por
-ug4spr
-ug4spu
-ugst2
-ug3sta
-ug3stä
-ug3str
-ug3stu
-ug4stur
-ug3s4tü
-u2gum
-ugu3te
-u2gü
-u1h
-2u3h2e
-uhe3a2
-uhe1e2
-uhe1s
-2uhi
-2uhl
-uh1la
-uh2lar
-uh1lä
-uh2l1ei
-uh2l3ent
-uhl3erb
-uh2li
-uhl2ö
-2uhm
-uhme2
-uh1or
-uhr1a
-uhrei2s
-uh2r3er3
-2uh3ri
-uh4r1in
-uh4r3o
-uh2ru
-uh4rü
-uhs4t
-uh3t2
-u2hu
-2uhü
-uh3w
-2ui
-ui2a
-ui1ch
-ui2che
-ui4cker
-u2idi
-ui2du
-u1ie
-ui1em
-u3ig
-u4ige
-uil2les
-u1im
-u3in.
-u3isch.
-u3ischs
-uis2e
-uisi4n
-uis3t
-uit3s
-uji3
-uk2a
-uk1äh
-u3käu
-uk2e
-uke2n1
-uk2l
-ukle1
-uk4na
-uk4ne
-uk4nu
-u2k1ob
-uko4m1
-ukom3a
-uk2ö
-uk4re
-uk2ta
-uk2t1el
-uk4tent
-uk2t1er
-uk2tin
-uk4t3o2ri
-uk4t3r
-uk2tum
-uk4tü
-uku2s
-uk2ü
-u1l
-ul1am
-ulan2e
-ul2ar
-ula2s
-ul1äm
-ulb4l
-ul4dan
-ul2dar
-ul2dr
-ul3dra
-uld2se
-2ule
-u2l1el
-ul1emb
-ule4n1
-ul1er2h
-ul1er2r
-ule2t
-ul1eta
-2ul3f
-2uli
-ul1id
-uli2k
-ulin1a
-ul1ins
-uli3p
-ul3ka
-ul2kn
-ull1au
-ul3len
-ul3l2i
-ul2lo
-ull3s2
-ulm2e
-ulni2
-ulo2i
-u2lop
-u2l1or
-ul2ö
-ulp1h
-ul2pha
-ul2sa
-ul4sam
-ul2s1ec
-ul2sei
-ul2ser
-uls2th
-ul2sum
-4ult2a
-ul3tan
-ult3ar
-ul2tau
-ulter2m
-ul4tri
-ult3s
-u2lü
-ul2vr
-ul3z2e
-ulz4w
-2uma.
-u2maa3
-u2mab
-u2m1ad
-u2m1a4k
-u2m1all
-um1ang
-u2m1ant
-um1anz
-u2m1ap
-um1ar
-u2marc
-u2marm
-u2mart
-u2matl
-u2matm
-um1aus
-u2maut
-um4ay
-u2m1äh
-1umd2
-u2m1e2b
-u2m1e2ck
-u2m1ef
-u2m1ein
-ume2n1e
-um3engel
-u3mer.
-umer2a
-u2m1erf
-um1erg
-u3merk
-u2m1erl
-um1erw
-umes2t
-1umf
-4umfi
-1umg
-um1ind
-um1inh
-um1ir
-umi2t
-um1ite
-1umk
-1uml
-2umme
-um2mei
-um3mi
-um3n
-um1ob
-u3mol
-um3ot
-ump2fa
-ump2fin
-um5pit
-1umr
-um4sam
-um4s3an
-1umsat
-um4sd
-um2s1er
-1umset
-um4sf
-um4sg
-um2sim
-um4sj
-um4sk
-um4sm
-um2s3pe
-2umspf
-um4ss
-um2su
-um4sv
-um4sw
-um3t2
-um4ts
-u2mum
-u2m1u2r
-1umz
-un1
-2un.
-2una.
-1unab
-un2a3br
-un2ag
-un2al
-u3n2am
-u2n3an
-u2nap
-u2narb
-2un2a1s4
-un3at
-un2är
-4und.
-un2da
-unda2b
-un2dän
-1undd
-2unde
-un3de.
-underer4
-und3erf
-und3erö
-underten4
-under6tend
-und3erz
-un2dex
-1undf
-2undg
-un2did
-un2dim
-1undn
-undo2b
-un2dop
-4un2d3r
-und3s
-4unds.
-2undsc
-unds2p
-un2d1um
-undü4
-1undv
-1un4dz
-une2b
-une2d
-un2ei.
-un3eid
-un3ein
-un3eis
-un2emi
-une4n1
-un2ens
-unen2t
-un2enz
-u3ner.
-un3erz.
-un2es4
-unf2
-un3fa
-un2gab
-un2gam
-ungar4
-un2gat
-1ungeh
-3ungena
-unger2e
-1unget
-1ungew
-ung5ha
-1ungl
-ung3lat
-un2glu
-un2go
-un2gr
-ung3ri
-un4gs3
-ung4sa
-ungs5tr
-u3nic
-un2id
-un3ide
-4unie
-3u2nif
-uni3k4
-un2im
-1unio
-un2ir
-un3iro
-un3isl
-u3n2it
-1u2niv
-2unk
-un2k1a
-4unke
-un3ker
-un2k1es
-un2ket
-un2kne
-un2ko4p
-un2kro
-unk3s2
-unk4tit
-unk2tr
-unlö2
-1unm
-unna2
-un4n1ad
-unn2e2
-unne4n
-u2nob
-uno4r
-un2os
-1unr
-uns2
-2uns.
-unsch3el
-un3se
-1un3si
-un3sk
-un4ski
-un3s4p
-un4sr
-unsta2g
-unste2c
-uns4t1r
-4unsy
-4unsz
-1unt
-un3ta
-un3te
-unte2ri
-3unterr
-4unti
-un3tr
-unt3s
-2untu
-3unty
-2u2nu
-u3nuc
-unu4s
-u1nü
-1unv
-unvol2
-unvoll3
-1unw
-4unwä
-3unwe
-u2ny
-2unz
-un3z2a
-unz2e
-2uo
-u1o2b
-u3of
-u1op
-u1or
-u3or.
-uo2r3a
-uor3c
-u3oret
-uo2ris
-u3ors
-uor5tr
-uos2
-u1os.
-uote2
-u1ox
-u1ö2d
-u1ök
-u2p
-u3pa
-u3pä
-3upd
-u3pe2
-uper1
-uperer4
-u3pé
-up2fa
-upfe2
-u3p4fl
-u3p2fu
-u3ph
-u3pi
-up4id
-u3pl
-up4lu
-u3po
-2upp
-up2pl
-u3pr
-upra3
-up4t3a2
-upten1
-up4tene
-upt3erf
-upt3erg
-upt3erk
-upt3ers
-upti2m
-upt3in
-up4t1o
-up4tr
-u3pu
-u3py
-up4yb
-2ur.
-u1ra
-u2rab
-u3raba
-ura2be
-u2r1aka
-u2r1akt
-u2ral2t
-u2r1am
-ura4na
-u3r2and
-uran4fän
-ur1ang
-uran2ge
-ur2anh
-ur2anr
-uran3s
-ur2anti
-ur1anz
-ur3ap
-u2r3ar
-ura4ri
-u3rasc
-ur1asp
-ura2str
-ur4ate
-u2r3att
-ur1au
-2u1rä
-ur1äl
-ur1ä4m
-ur1än
-ur3b2a
-2urc
-urch1
-urch3s
-urcht3e
-urd2
-ur3da
-ur3di
-ure1e
-ur1eff
-ur1ehr
-ur1eig
-u2rele
-ure2n
-ure4na
-u2ren2se
-u2rentn
-u2r1ep
-urer3h
-urer3k
-ur2ert
-u2rerw
-ur1eta
-ure3u
-2urf
-urf3l
-ur2fli
-ur2fro
-urf2spr
-urf3t
-ur2gei
-ur4gense
-urg3inn
-urg1l
-ur2gla
-ur2gri
-urgros2
-urg1s4
-uri2c
-ur1ide
-uri3en
-u2r1ind
-urin2se
-urin4sek
-u2ri2so
-ur3ku
-ur3l
-ur4ls
-ur2m1ar
-ur2matt
-ur2m1au
-urm2ei
-ur2mern
-urme2t
-ur2mum
-ur2mun
-ur3n2e
-urn2o
-2u1ro
-urob2l
-ur1off
-uroh2
-uro1s4
-2u1rö
-ur3p
-2urr
-ur3re
-ur2rh
-3ursac
-ur2san
-ur4s3au4
-ur2s3er
-urs3int
-ur2spa
-urt2
-2urta
-ur2tai
-urt3ein
-ur2tro
-urts2c
-2urtu
-uruf4
-uru3fl
-ur1umh
-ur1ums
-urü2
-ur2z1a2
-ur2zä
-ur2z1ec
-ur2zep
-ur2z1op
-urzt4
-ur2z3w
-2us
-us3a2b
-usa2gi
-usal3t
-u4s1amb
-u4samt
-u2sang
-us4ann
-usa2s3
-us1ast
-u2säh
-u2s1äs
-u2schab
-u2schak
-u2schar
-u3schart
-u2schef
-usch3eic
-u4schen4e
-u3schi
-usch3mü
-usch3wer
-u3se.
-u3s2e3b
-u2s1ec
-use1e
-use2ei
-u2s1ei
-u3seid
-u2sen2se
-usen4te.
-u2sentl
-use2rec
-u2s1erl
-u2serp
-us1erw
-u2s1ese
-u2sex
-u3si.
-u2sid
-usi3er.
-usi3ers.
-u3sik
-usi2kat
-us1inn
-u4ske
-us3kl
-u4sko
-u4skö
-u4sku
-us3oc
-us1oh
-u3sol
-u2sop
-us1orc
-us1ou
-u3sov
-u2spac
-us2par
-us3part
-u2spas
-us3pe
-u3s4pec
-u3spek
-u2sph
-us3pic
-u3spit
-u3s4piz
-u2spo
-us2por
-u2spu
-usrich5
-us2s1ad
-us2s1eb
-usse4g
-usse4n
-us2sep
-uss3erf
-us2sesp
-us2sez
-us2sof
-us2sum
-us4sw
-us5taa
-u1stad
-u1stal
-us3tau
-us4tein
-u1stel
-ust3erl
-us3tin
-us3tr
-us4tras
-u2suf
-u2s1umb
-u2sumd
-u2sumg
-u2sumz
-3usus
-u2sü
-2uß
-u2ß1u
-2ut
-u3taf
-u2t1alt
-u4t1a4m
-ut2ans
-u2t1ap
-ut1ar
-uta4s
-u2taut
-ut1äh
-u2t1är
-ut3c
-ut1e2d
-u3teh
-ut1ei.
-ut1eie
-ut1ein
-u3tek
-ut1ela
-u3tem
-ute2n1
-uten2a
-u2tent
-u4tentf
-ute2ra4
-ute3ras
-ute4ring
-uter3k
-ute2ros
-ut2es
-ut2et
-ut2ev
-u2t1ex
-utfi2
-ut3hal
-ut3hei
-ut1hel
-u2t1hi
-u2t1ho
-u2thu
-u2t1id
-u4tigel
-uti2vi
-utli4n
-uto3c
-uto3p
-u2tops
-utor2a
-u4tord
-uto2re
-uto2rin
-uto3s4
-4utou
-u2töl
-ut3rea
-u2trou
-ut3rü
-utsau2
-ut2säu
-ut2scha
-ut3sche
-ut2schl
-ut2schm
-ut2scho
-ut2schö
-ut3ser
-u4t3sk
-uts2p
-ut3sta
-utt4er
-ut3t2l
-utts2
-utu4b
-u2tum
-utu2n
-u2t1une
-utu4re
-utu3ro
-utu3ru
-u3tü
-utz3a
-ut2zeh
-utz3eng
-utz2er
-utz4erg
-ut2zet
-ut2z1in
-ut2zis
-ut2zö
-ut2z3w
-2u1u2
-uu4fe
-uum1
-uu4ma4
-uume2
-u1ü
-uü4be
-uv2
-u2ve.
-uve3rä
-uv4re
-2u1x
-ux2e
-ux2o
-ux3oe
-ux3t2
-u1ya
-2uz
-uze2
-u2z1ec
-u2z1ene
-uz2er
-uzo4f
-uz3ot
-uz3we
-uz3z2
-uz4zb
-1ü2b
-üb1ä
-2übc
-2übd
-üb2e2
-übe3c
-übe3le
-ü3bem
-ü3ben
-übe4na
-übe3ne
-über1
-ü3bes
-ü3bi
-üb3l
-üb3r
-üb5rig
-üb2s3t
-2üc
-ü1che
-üch3l
-üch2s1c
-ücht4e
-ü3cke4n1
-ück1er
-ück3eri
-ücker4ke
-ücker2l
-ü2ckers
-ü2ckin
-ü2ckum
-üd3a2
-üda4m
-üda4s
-üde2c
-üde2l
-ü3den.
-üden2g
-ü3d2ens
-üdf6lan
-üd1o2
-üdo4s4
-ü2d3r
-üd3s2
-üdsa1c
-üdsau2
-üd3t2
-üdu2
-üe2
-üeb3
-ü1ei
-2üf
-ü2f1a
-ü2f1ä
-ü2f1ei
-ü2fent
-üfer2
-ü2f1erg
-üf2fl
-ü2f1i
-ü2f3l
-ü2fo
-ü2fum
-üg2e
-üge2l1a2
-üge2lä
-üge4lec
-üge4lei4s
-üge2lo
-ügen3s
-ü2g3l
-ü2gn
-üg3s2
-üg4s3t
-üh3a2
-ü1he
-ü2h1ei
-ü2h3e2m
-ü3hem.
-ü2h1eng
-ü2h1ent
-ü2h1erf
-ü2h1er2k
-ü2h1er2z
-ü2hex
-üh1i2
-ühi4r
-ühla2
-ühl1au
-üh1lä
-üh2lel
-ühlen1
-üh2lene
-ühl2er
-üh2lö
-ühl2se
-ühl4sk
-ühl2sta
-ühl2sti
-üh3mo
-üh3ne
-ühn2s
-üh1o
-üho4f
-üh3r2e
-ühr3ei.
-ühre2n1
-ühren3s4
-üh1ro
-ühr3ta
-üh1s
-ühs4p
-üh3t
-üht2a
-üht4r
-ü1hu
-üh3w
-ük2
-ül1a
-ül2c
-ü3l2e
-ü4l3ef
-ül3eim
-üle2r3a2
-ül2l1a2
-ül2l1ei
-üll2erg
-üller2z
-ül2lid
-ül2lo
-ül2lö
-ülls2
-ü2lö
-ü1lu
-ü2m
-ü3me
-ü4ment
-ü4m1e2p
-üme2ra
-ü3mi
-ü4m1id
-ü4m1in
-üm1u
-2ün
-ü2n3a2
-ün2da
-ün3di
-ün2dr
-ünd3s
-ü2n1erd
-ünf1
-ünf3li
-ün2g3l
-ün2s
-ün3sc
-ün4sd
-ün3se
-ün3sp
-ün3sta
-ünste2r3
-ün3str
-ün2za
-ün2z1i
-ünzu2
-ün2zun
-ün2zw
-ü2p
-ü3pe
-üpf3l
-ü3pi
-ü3pl
-üp2pl
-ü3pu
-2ür
-ür1a
-ü2r1ei
-ü2r1e2l
-ür2f1er2
-ür2fl
-ür2fr
-ür2g3eng
-ürge2ra
-ürk2e
-ü3r2o3
-üro5fe
-ürom2
-üro5ma
-üror2
-ürr2
-ür2r3h
-ür2s
-ür3sc
-ür3se
-ür3si
-ür3sp
-ür3sta
-ürte2l3
-ürt2h
-ürz2a
-ür2z1in
-ür2zö
-ür2z3w
-üs2a
-ü3schi
-ü2schl
-ü3s2e
-üse1e2
-üse3l2
-üse4n
-üse3r4
-üse1s
-üs2p
-üs4s3a
-üs4sä
-üs2s1c
-üs4s3o
-üs2st
-üst3a
-üste2n
-üs4tl
-2üß
-ü3ße
-ü3ßi
-2üt
-ü2t1al
-üte3m
-üte4n
-üten3s2
-ütent4
-üten3z2
-üte2ra
-üte2re
-üter3ei
-üterich4
-üter3n
-ü2t1h
-ü2t3r
-üt2se
-üt2st
-ütte4n
-üt2tr
-üt3zen
-üt2zw
-1v
-3va.
-2v1ab
-vab4r
-va1c
-va3f
-va3g2a
-va2la
-2valu
-v2an.
-2vanb
-v2ans
-2varb
-v1arm
-vas2
-2v1ass
-va1st
-va2t1a4
-va4tag
-va4tan
-va2tei
-va4t3eng
-va4tess
-va2t3h
-va4tid
-vati3k2
-va4tim
-va4t1in
-vati4ons.
-va4tord
-va4t3r
-vat3s2
-va2t1u
-2v1au
-2vb
-2v1c
-2vd2
-ve2
-ve3ak
-2ve3al
-ve3an
-ve3ar
-veau3
-ve3b
-veb4r
-ve3d
-ve3e2
-ve3f
-ve4ff
-ve3g
-ve3h2
-2veig
-v2eil
-2vein
-veit2
-veits3
-ve3la
-2velan
-vel2ar
-ve4l1au
-v1ele
-ve3lei
-ve3l2i
-ve3lo
-vel2o3p
-ve3ma
-ve3me
-2v1emp
-2vemu
-ve3nal
-ve4nas
-v1endu
-ve3ne
-venen2d
-2venerg
-ve3ni
-ve4nin
-ve3nö
-ven6t3ag
-vent4sk
-ven2za
-2veo
-ve3of
-ve3pa
-ve4pi
-ver1
-ver3a
-ve3rad
-2veral
-ve3rand
-ve3rane
-vera4s
-ver4bart
-ver3b2l
-ver3d4
-vere2
-vere4i
-verein4s5t
-ve4rf4
-ver3g4
-ve3ri
-ve4rin
-ver3k
-vern2
-ver2sep
-ver3sta
-vert4
-ver3te
-ver3u4
-ve3rus
-ve3sa
-2ve3sc
-2ve3se
-ves3p
-ves3ti
-ve3t
-vete1
-vete3r
-ve4tl
-ve4ts
-ve4tt
-2veü
-ve3v
-ve3w
-ve3z
-2vf2
-vf4gh
-2vg
-2v1h
-vi1an
-vi3ar
-vi4a3t
-vi2c
-vi3de
-vid3s2t
-3vie
-vie2h1a
-vi2el
-viela2
-viele2
-vi2er
-vie2rec
-vie2w1
-vig2
-2vii
-v2il
-vi2l1a
-vi2lä
-vi4l1e2h
-vi2lei
-viler2
-vi2lers
-vi2l1in
-vi2ma2
-vi4na
-vin3d
-ving3
-vings4
-v1ins
-vi3sa
-vise4
-vi3s2i
-vi3s2o
-vi2sp
-vis2u
-viv2
-viz2
-vize1
-2vk
-2v1l2
-v3le
-v2lie
-2vm
-vm2e
-vmwa4
-2v1n2
-2v1ob
-vo2be
-vob4l
-voge2l3
-vo2gu
-vo2i
-vol2a
-vol4l1a
-vollen4
-vol4lend
-vol4ler4t
-vol2li
-2v1op
-vo2pe
-vo2r1
-vo4r3a
-voran6schl
-vor3g
-vo3ri
-vo4rie
-vo5rig
-vorm2
-vormen2
-vor3o
-vor3t4
-vo4ru
-vo5ruf
-vot2a
-vö2c
-2vp2
-v3pf
-2vq
-vr2
-v1ra
-v2ree
-v4ret
-3v2ri
-2vs
-vs2c
-vs2e
-vs2p
-v1sta
-v1steu
-v1str
-v3s2z
-2vt
-vue3
-vu2enu
-vu2et
-2vumf
-2vumg
-2vumk
-v1ü
-2vv
-2vw
-2vz
-1w
-w2a
-3waa
-wab2bl
-wa3che
-wach4stub
-wach2t4r
-3wack
-waffe2
-waffel3
-3wag
-wa3ge
-wa5ge4n
-wa2g3n
-wag5ne
-wa3go
-wag4r
-3wah
-wahl3ent
-wah4ler
-wah2l1i
-wa4ig
-3wal
-wala3c
-wa2lar
-4walb
-wal4d3a
-wal2din
-wal2dr
-wa2les
-wa3li
-wa5lis
-wal2m1
-wals2
-wal4t1a
-wal4terl
-wal4to
-wal2tur
-wa3na
-wan2d1a2
-wandels4
-wan2dr
-w3anf
-wan3g2e
-wang4s3
-3wann
-wan4z3en4d
-wan2z3er
-wa2p
-3war2e
-ware1i
-wa3ren
-3warn
-war4ni
-war2th
-wart2st
-war2za
-3was
-wa3sa
-was2c
-wa2scha
-wa3sche
-wa4schei
-wa2sch3l
-wa2schw
-wa3se
-wa3sh
-was3s2
-wass4e2
-wa3su
-wäch3s2e
-3wäh
-3wäl
-wäm3
-4wäng
-3wäs
-wäs2c
-wäss4e
-2w1äu
-2wb2
-wbu2
-2w1c
-2wd
-we2a
-we2b1a
-webe1i
-we2b3l
-we2bo
-we2b3r
-webs2c
-we3cke.
-we3cken.
-we3ckes
-wee2
-weed3
-wef2e
-we2fl
-3weg
-we2g1a
-we4g1ei
-weg3ersc
-we4g3l
-we4gn
-we2g1o4
-we4g3r
-weg5re
-weg3s
-wegs2a
-wegs4t
-3weh
-weh2r3er2
-wei2bl
-weib4r
-4weie
-weifel4d
-wei2gr
-wei2ha
-wei3k4
-3weil
-wei3le
-weinsau4
-wei3sc
-weisch4
-weis2sp
-wei2t1r
-wei5ze
-wel5le4
-wel4schl
-wel4schr
-wel2t1
-wel4t3a2
-welte4
-wel4t3en4d
-wel4th
-welt3i
-wel4to
-welt3r
-wel6tri
-wen3a2
-wendes2
-wen2gl
-we3n2i
-wen2kau
-wen2kla
-wen2k3ri
-we2r3a2
-wer5be
-werbe3i
-wer2bl
-werb2s
-wer3d2
-3werdens
-3werdu
-werer2
-wer2fl
-wer2ga
-wer2gel
-wer2g3o
-wer2gr
-werin2
-we3rins
-we2ri4o
-3werk.
-wer4k1a
-3werke
-wer2ki
-wer2k3l
-wer2kn
-wer2k3o
-wer2k3re
-wer2ku
-we2rö
-wer2s
-wer3sc
-wer3sp
-wer2t1a
-wer2tä
-wer2tei
-wert3eig
-wer4t3erm
-wer2th
-wer2tin
-wer4t1o2
-wer2tre
-wer6t3ri
-wer2tum
-3wese
-we2s3p
-we4st
-wes4t1a
-weste2
-west3ei
-wes4ten4d
-wes2tex
-wes2ti
-wes4t1o4
-wes4t3r
-wes2tu
-3wet
-4wets
-wett3s
-2w3ey
-2wf
-2wg
-whi2
-whi4t
-w3ho
-w2i
-wicht4s
-wi1cka
-3wid
-wi2e
-4wieb
-3wied
-wie3l
-wie3n2e
-wik2
-3wild
-wim2ma
-wim4m3u
-win2a
-win2d3e2c
-win3del
-win4derz
-3win2d3r
-4wing
-win2g3r
-win2kl
-winner2
-win4n5ersc
-win2no
-win3s
-wint2
-3wi2r
-wi4re3
-wi3s2e
-wi5sen
-wi2s2p
-3wiss
-wiss4z
-wi3th
-3witz.
-wit2zer
-3witzl
-wiz2
-w2j
-2wk
-2w1l
-2wm
-2wn
-wns2a
-wn3sh
-3wo1c
-wo2cha
-woch2e4
-woh2lei
-woh4na
-3wolf
-wol3fe
-wolf2s3
-wol2la
-wol2ler
-wor3a
-wor3d
-wo2r3i
-wort1a
-wor2tel
-wor4terh
-wor4t3r
-wort3s
-wo4r3u
-wor3ü
-3wos
-wot2
-3wöc
-wöl2fo
-wört2h
-2wp
-w2r
-w3re
-w3ro
-2w1s
-w3s2h
-w3s2k
-w4sk.
-ws2t
-w2s1u
-2wt
-wti2
-w2u
-3wuc
-wuch2sc
-wuch2st
-w3uf
-wu4fe
-wul2
-wul3se
-wund4e
-wung3r
-wungs4
-wun2s
-wunsch3l
-4wur.
-wur2fa
-wurf1o
-wur2fr
-wur2s
-3wurst
-wus2
-wus3te
-3wu2t1
-wu4te
-3wüh
-wül2
-wün3
-3würf
-3würst
-2ww
-2wz
-x1a
-1xa.
-2xa2b
-1x2ac
-1x2ad
-1xae
-xa3fl
-1x2a3g2
-2xal
-xal2l
-x3am
-xa5met
-xa4mi
-x2an.
-1xane
-1xani
-x2an3t2
-xanti3
-x2anz
-xa2r
-1x2as
-xa2z
-2xb
-xb4ri
-xcal2
-x1ce
-x1ch
-x1cl
-2xd
-xda2
-xda4t
-1xe
-3xe.
-2x1e2g
-xe4ge
-2xek
-xe2l
-x1ele
-xe3lei
-x1em
-3x2em.
-2xemp
-x2ems
-x2en
-3xen.
-xen3s2
-3x2er.
-x2ere
-2x1erl
-xer2la
-x2ern
-x2ers.
-xe4rx
-3xes
-2x1eu
-2x1ex
-2xf
-2xg
-2x1h
-xi1c
-xich2
-xi2dan
-xide2
-xi2dei
-xi2d3em
-x1i2do
-3x2i2e
-xie3l
-xi4en
-xi3g
-3xi3k
-xik4l
-xi2ler
-xili3a
-xi2lo
-xi2l1u
-1xim2
-xin3s2
-x2is
-xi2sa
-xi2s1e
-xiso2
-xi2sp
-xis3s4
-xis3t
-xis4tä
-xi2su
-3xit
-xi3te
-x1i4tu
-xive4
-2xk2
-xkal2
-2x2l2
-x3lä
-x3le
-2xm
-2x1n
-2xoe
-x3o2l
-x1o2r
-3xos2
-2x1ö2
-2xp
-xpor4ter4
-xpor2t3r
-x1r
-2x1s2
-x3sh
-x3sk
-x3st
-x3sz
-2xt
-xt1a
-xta2b3
-x3tan
-xt2ant
-x3tas
-x2t1ä
-x3tät
-xtblo4
-xtblock3
-x2t1e2d
-xt1ein
-x2t1el
-x4tent
-x2t1er2f
-x2t1ev
-xtfi2
-x2t1h
-x2t1id
-xti2la
-xtil2lu
-x2t1o2
-x4to4r
-xtra3b4
-x2t3ran
-x2trau
-xt3rec
-xt3s2
-x2t1um
-x2t1un
-1xu
-xu1a
-xu2n
-2xunt
-xu2s3
-xusa2
-xuss2
-2x2v
-x3ve
-x3vo
-2xw
-1xy.
-2yab
-1ya2c
-y2ach
-y2ag
-ya1h
-y1al.
-ya4mo
-y1an.
-y2ana
-yan2g
-y1ank
-y2aq
-y1ar
-y2a3ra
-y2are
-yas2
-yas3t
-y1ät
-ybe2r
-y1c
-y2chi
-y3chis
-ych3n
-ydi3e
-ydri2
-ydrid3
-yd4ro3
-y1e
-y2ec
-ye2d
-y2ef
-y2el2
-yen4n
-yera2
-y2ere
-yer2n1
-y2es
-y4es.
-y4esp
-ye2th
-yf2
-ygie3
-yg2l
-y1h
-y3ho
-yhr2
-2y1i2
-yi4sc
-yk2
-yke3n
-yk4la
-yk4ni
-yk4no
-yk3s
-yk3t
-yl1a
-yla2c
-yl2ag
-y1l2ak
-yla4l
-y2la4m
-yla2n
-yl3ane
-y1lant
-yl2ante
-yl2anti
-yl2as
-y1lä
-yl3c
-yle2
-y2le.
-yl1em
-y2l1es
-y2l1e4t
-yli4n
-yloid3
-yloni1
-yl2op
-yl1ora
-yl3s2
-yl5tri
-y2m
-y3m2a
-ym4an
-ym4ar
-ym4as
-y3mä
-y3me
-ym4el
-y3mi
-y3mo
-ymp2
-ym2pha
-ympi3e
-ymp4t
-y3mu
-ynä2r
-yn2eu
-ynk2
-y2n1o2
-yno4t
-yn2oz
-yn3t2
-yob2
-y2od
-yoga3
-yom2
-yon2a
-y2onn
-y1ont
-yo2pe
-yo1s
-y2ost
-y3ot.
-y1ou
-2yp
-ypa2b3
-ypa2n
-yp2e2
-ype4r3o2
-y2p1i2d
-y2p1in
-y2plo
-y3po3
-yp3th
-ypu2
-y2p1um
-y1r
-yr2e
-y3ri
-yri1e
-yri3en
-y3ro
-yros3t
-yrr2
-2ys
-ys2an
-ysch4
-ys2e1
-ysein2
-ys3l
-ysme3
-ys2po
-ys3pr
-ys3t2e
-ys5tem
-yst2h
-ys2the
-y1sto
-ys4tol
-ysto4le
-ys3tr
-ys4tra
-y4stro
-y3s4ty
-ysu2
-ys1ur
-y3s2z
-y4tes
-yt2h
-ythe1
-ythi3e
-y3to1
-ytos2
-y2t3r
-y1u2r
-yur2e3
-yvet4
-yvon4
-y1y
-yz2
-yze3r2i
-1z
-2z1a2b
-zab3l
-za1c
-2z1ach
-zach2s
-2z1a2d
-2z1af
-za3gr
-3z2ah
-zah3len
-zah4ner2
-z1ak
-4z3akk
-2z1al
-4z3alb
-4z3ald
-3zali
-2z1am
-za4me
-z1a2n
-z2an.
-2za4n4a
-2zanb
-za3ne
-2zanf
-2zangs
-2zanh
-z2ank
-zan2ka
-2zanl
-2zanp
-2zanr
-zanti1
-2zanw
-za4pf
-z1a2q
-z1ar
-3zar.
-2zarb
-za3re
-2zarm
-3z2aro
-zar2t1r
-2z1as
-zas4b
-za4sc
-zast4
-z3at
-zat2e
-za2to
-3zaub
-2z1au4f
-2z3aug
-3zaun
-z3aur
-2z1aut
-zä2
-2z1äc
-z2äh
-zä3hi
-3zähn
-2z1äm
-z1än
-z1är
-2z1äus
-2zäuß
-2zb2
-zbah2
-zber2e
-z3bo
-zb4ri
-z3bü
-zbü3b
-zbübe3
-2z1c
-z3ca
-z3ch
-2zd2
-z3da
-zdan2
-zdä1
-zdi1st
-z3dü
-3ze.
-2zea
-ze2ana
-2z1e2ben
-ze1c
-2z1e2cho
-ze1e2
-2z1eff
-z1e2ga
-zehe4
-zehen1
-zeh2l
-zeh4n1a
-zeh4n3en
-ze3ho
-zei3f4
-zeik4
-zeil2
-zei3la
-zeile4
-2z1ein
-ze3in.
-z2e1ind
-zei4ne
-4z3einh
-ze3inse
-ze2i1s4
-zei3sk
-3zeit
-zei2t1a
-zeit3end
-zei2t3er
-zei4to
-zei2tr
-zeit3ri
-zek4l
-ze2l1a
-zela2d
-zel3am
-zel3a2n
-ze2l1ä
-zel3d4
-4ze2lek
-4zelem
-ze2len
-ze2l1er
-ze2l1in
-2z1e2lit
-zel3la
-zel4lab
-zel4l3ac
-zel4lar
-zel4lein
-zel4ler4t
-zeller4z
-zell3s2
-zelm4
-ze2l1o
-zels2
-zel3sa
-zel3sz
-zel2ti
-zelu4
-zembe2
-zem4e
-2z1emp
-3zen.
-ze4n1ac
-ze4nas
-zen3au
-ze2nä
-ze3n2em
-zenen1
-3zenerk
-2zenge.
-z4engl
-2zengp
-2zeni
-ze2nid
-zenk2
-zen3n
-ze2n3o
-ze4not
-2zen2sem
-zen2ser
-zens2p
-z2entn
-z1ents
-2zentw
-2zentz
-zen2z3er
-zen2zw
-zeo4r
-3z2er.
-zer3a
-ze2rad
-ze1ral
-ze2rat
-z2ere
-ze5rek
-zer2em
-z2erfe
-z3erfül
-2z1ergä
-z3ergeb
-5z4erges
-z4ergl
-zer2gon
-4z1ergu
-3z2erhe
-2z1er3hö
-zerin2t
-z2erko
-3zerl.
-zer2lau
-zer2le.
-2zerleb
-zer2len
-2zerlö
-3z2ern
-zer2nan
-zer2n3e2b
-zer4nei
-2z1erö
-zer2öf
-ze1rös
-2z1erq
-3zerr
-4z3erreg
-z2ers.
-z1ersa
-zerta2
-zer4t3ag
-zert2an
-zer4teng
-zer2ter
-zer2tin
-zer2to
-z3ertrag
-zer4trau
-z1erwe
-z1erz
-zer2ze
-3z2es.
-ze2sä
-ze3sch
-zes1e
-zes3p
-ze4s5po
-zes2sa
-zessen2
-zes4s3end
-zes4sent
-zes2ser
-zes2sp
-zes2st
-zes2sum
-ze1sta
-ze3stau
-ze1str
-ze3stra
-z2et.
-2zeta
-2ze2th
-ze2tr
-2zetts
-zeu2gem
-zeu2g3r
-2z1eul
-ze1ur
-2z1e2x1
-2zf
-zf4at
-z3fe
-zfeue2
-zf4la
-zf4le
-zf4re
-zf4rü
-2zg2
-zger2a
-zger4s3
-z3gn
-zg4nu
-2z1h2
-zhau2t1
-zhir3
-zi3alo
-zi2ar
-zich2o
-zi2dei
-ziele2
-zie2leb
-zie2l1i
-zi3en
-zien3s
-zi1erh
-zi1es
-zig4s
-2z3ik
-zi2ko
-zil2e
-4zimp
-zim4t3
-2z1ind
-zin2e
-zin3ei
-2z1inf
-z1inh
-zi4n1in
-2z1inj
-zin4na
-zin4o
-zin2sa
-zin2ser
-zin4sk
-2zinsuf
-2zint
-zi2o3
-zirk2
-zirk4s
-z1iso
-zi2sp
-zisse4
-zi3s2z
-zi3th
-zithe2
-zi4t1o2
-zit2u
-ziv2
-2zj
-2zk2
-zk4ne
-z3ky
-2z1l2
-zlei3ti
-zle1s
-z3ly
-2zm2
-z3ma
-zme2e
-2z1n2
-z3na
-z3ne
-z3oas
-2z1ob
-2z1of
-zo2gl
-zog4s3
-2z1oh
-zol2la
-zoller2
-zol4lert
-zon3au
-zon3s4
-zon2t3er
-zo2o
-2zo2pe
-2z1o2r
-zo3re
-3z2orn
-zor4ne
-2z1osz
-2z1ou
-zo2w
-2z1o2z
-2zöf
-zö4fe
-2z1ök
-z1öl
-2zöl.
-3z2öll
-2zöls
-2zp2
-z3pf
-z3pl
-zp4lu
-2zq
-2z1r2
-z3re
-zreb3
-zrebs2
-z3ru
-2z1s2
-z3sa
-zsau2
-zse1e
-z3sh
-z3si
-z3sk
-zspor2
-zst2
-z4st.
-z3ste
-zs4to
-z3sz
-2zt
-zta2n
-zt3ane
-z2t1au
-z4tehe
-ztein3
-zt3eins
-zt2el
-zte3ma
-z4t1ent
-z4t1erz
-zte3str
-zt2et
-zt1he
-z3them
-z3t2her
-zt1hi
-zt3ho
-z3thr
-z3thy
-z3ti
-zt3rec
-zt3ric
-zt3s2
-z3tü
-zu3a
-zu1ä
-zub4l
-3zu1c
-zuch2e
-zucht3
-zu3cke
-zudi4
-zud4r
-zu2el
-zu3e2r1
-zue2t
-zu3f2
-zu5fei
-zuf4l
-zuf4r
-zug2em
-zu2gent
-zug3g
-zug2i
-zu3gl
-zu4gla
-zu4glö
-zu2go
-2z1uhr
-zu3hu
-zu1i2
-zu3k
-zu3l2
-2z1um.
-zum2a
-2z1umb
-zumen2
-2zumf
-2zumg
-2z1umh
-zum2i
-2zumk
-2zuml
-2zumr
-2z1ums
-zum2u
-2zunab
-zu3n2e
-2z1unem
-zunf4
-zung4
-2zunget
-2zungl
-z1uni
-2zu2nio
-2zuniv
-2zunr
-2z1uns
-2zunt
-zuo2
-zup2fi
-zu3pfr
-zu3r2a
-2z1urk
-2z1url
-2z1urn
-2z1urs
-2z1urt
-zu3ru
-zu3s2
-zusch4
-zus4p
-zus4t
-zu3t2
-zut4r
-zu5tri
-zut4u
-zu4t3z
-zuz4w
-2züb
-zü4be
-3züc
-zür1c
-2zv
-z2w2
-z3wac
-2zwag
-2zwah
-z4wang
-z3war
-2zwa2s
-2zwäc
-2zwär
-2zwäs
-z3wech
-z4weck
-2z3wed
-2zweg
-2zweh
-z4weig
-2zweil
-zweiter4
-2z3wel
-2z3wen
-2z3wer
-z4werg
-2z3wes
-z4wic
-zwi4e
-3zwing
-2zwirt
-z4wisc
-2zwiss
-z4wit
-2z3wo
-z3wör
-z3wur
-2z3wü
-zy2le
-2zz
-z3z2a
-zzab4
-zz4at
-z3zer
-z3zi
-z4z1id
-zz1in
-zzi1s4
-z3zo
-z4zor
-zz2ö
-z3zu
-zzug4s} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-deo.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-deo.hyp
deleted file mode 100644
index 081342a1dfc..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-deo.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-deo.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-deo.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-deo.pat
deleted file mode 100644
index 95ea425d49a..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-deo.pat
+++ /dev/null
@@ -1,26488 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-deo.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u v w x y z ß à á â ä ç è é ê ë í ï ñ ó ô ö ü
-
-\patterns{
-.ab1a
-.ab3l
-.abo2
-.ab3ol
-.ab1or
-.ab3s2
-.ab3u
-.ade3n
-.aft2
-.ag2a
-.ago1
-.ag4r
-.ag2u
-.ai2s
-.akt2a
-.al2e
-.ale3u2
-.al3lei
-.al3len
-.al3lo3
-.al3se
-.al2tei
-.al2tel
-.al4terp
-.alter4s3
-.al2tra
-.al2tu
-.ampe4
-.amt2s1
-.ana1c
-.an4a3t
-.an3d2
-.anden4k
-.and4ri
-.an1e
-.ang2
-.an3gli
-.an3go
-.ang4s4
-.angst3
-.ani2s
-.an3k4
-.an3s2
-.an4si.
-.an2tar
-.an3z4
-.ap3p4le.
-.ari1
-.ar3k2a
-.ar2m3ac
-.ar4mun
-.ar2sc
-.ar4t3ei
-.arter2
-.ar4t3erh
-.ar2t1r
-.arz2
-.as2b
-.as2ko
-.as4sest
-.as4t
-.as2zen
-.ata1
-.at2h
-.au3d
-.au4f3
-.au6fac
-.aufs4
-.au2s1
-.aussen6du
-.au4s3tes
-.auß2
-.ax2
-.är4schl
-.ät2h
-.ät2s
-.äu3
-.bahn3
-.baus4
-.be3erb
-.beige2
-.bei4ge.
-.beige4s
-.bel2a
-.be3r2a
-.ber2e
-.ber2g3a
-.berga4s
-.ber4g3e4b
-.ber4gin
-.ber2g3r
-.ber4tr
-.be4ster
-.bi4os
-.bi2t
-.bit1a
-.boge2
-.bo4s3k
-.brut3s
-.bu4cher
-.bu2ser
-.bus3se
-.bussy4
-.bü3b
-.bübe3
-.ce2ra
-.ch2
-.champi4o
-.char4mes
-.chi3er
-.ch6lor
-.dab4
-.da4ch3en
-.da2r1
-.dar3in
-.dar2m1
-.da2te.
-.da2tes
-.de2al
-.de1i
-.dein2
-.de3lo
-.de3na
-.den2ka
-.den2kl
-.den2ko
-.de1o2
-.de3r2en
-.derma3
-.dermas4
-.des4pe
-.des3s
-.diä2r
-.di3el
-.dien2
-.diensta6d
-.do3b
-.do4mo
-.do3pe
-.dor2f1
-.do2tr
-.dys1
-.ebe2r1
-.eg2o
-.eh2e
-.ehe1i
-.ehe5n
-.ei3e4
-.ei3f2e
-.ei4fr
-.ei3k
-.ei4na
-.ein3d
-.ei2ne2
-.ein3eb
-.ei3n4erl
-.eins4
-.ein3sp
-.eise4
-.ei2sp
-.eis3s2
-.ei4s3t
-.ei2tr
-.eke2
-.ek3li
-.el2bi
-.el2bl
-.elb3s
-.el2fei
-.el2fl
-.em3m2
-.en1
-.en4da
-.en2d3er2
-.en2d3r
-.en4dü
-.en3ga
-.en2gl
-.enk2
-.enn2
-.enns3
-.en4ta
-.en4t3ei
-.en5thalp
-.en4t3io
-.en2t3r
-.en3trop
-.ents2
-.epi1
-.epi3c
-.ep3p
-.er2bei
-.er6brecht
-.er2bu
-.er2dan
-.erden4k
-.er2d3er
-.er1e
-.ere3c
-.er2em
-.erf4
-.er1i
-.ers4
-.er4stein
-.erster4
-.er4sterb
-.er6stritt.
-.er8stritten.
-.er2z3el
-.er2zen2
-.es3p
-.es2st
-.es4t
-.esta2
-.est4e
-.est3r
-.et2s
-.eu3
-.eug4
-.eur4
-.ever3
-.ext4
-.fäs3se
-.fe3la3
-.feri3
-.fer2no
-.fi3d4
-.fi2le.
-.fi2len
-.fi2s
-.flö4s5se.
-.flö6s5sen.
-.flö4sses
-.flu2g1
-.fs2
-.fu2sc
-.ga4me.
-.gan2ga
-.gas1
-.ga4s3e
-.ga4sp
-.ga4sten
-.ga4su
-.ga2t
-.gd2
-.gebe2a
-.geb2l
-.gel2b3r
-.gel2d1
-.ge3lu
-.ge5nar
-.gen4aug
-.ge3n4e
-.ge3n2o
-.gente4
-.ge3r2a
-.ger2e
-.ge3ro
-.ge3s4
-.glan2
-.glanz3
-.gla2s3t
-.grif4fes
-.gs4t
-.gus2
-.hal3le
-.halt4e
-.han2f
-.hau2t1
-.he2
-.he4bei
-.he3le
-.he4r3an
-.he3rat
-.her4b3ra
-.he3rer
-.he3ri
-.he4r3inn
-.hin3u
-.ho4c
-.hof1
-.ho4fen
-.ho4met
-.hou2
-.höch2
-.ia2
-.il3
-.im2a
-.ima2ge
-.imm2
-.im5mu
-.in1
-.ind2
-.in3gl
-.ink2
-.in3n2e
-.in3sk
-.in3t2
-.inu1
-.io4d
-.ioni1
-.ire3
-.is2a
-.istri3
-.it2h
-.iv2
-.joni1
-.ka2b3l
-.ka2i
-.ka5ka
-.kal2a
-.ka3le
-.ka3t2a
-.kat3i
-.ka4ti4o
-.ken4num
-.ker3s
-.ki2e
-.ko3b
-.kopf1
-.kor2da
-.kraf2
-.ks2
-.kus2
-.la3be
-.lan4de4mi
-.lat3s
-.le4ar
-.le2gas
-.leh4me
-.le3n2i
-.lich6ter6sc
-.li2f
-.li2ve.
-.lo2g3in
-.lo2sc
-.lo4sk
-.los3s4
-.lo2tr
-.lo3ver
-.lö4ss
-.lös3se
-.lus4
-.lu2ste
-.luster4
-.lu2str
-.lut2h
-.ly2s1
-.ma3d
-.mal4e
-.mani2e
-.ma2str
-.mat4c
-.matu3
-.md2
-.mel2a
-.me3ne
-.me3no
-.men4schl
-.men4schw
-.ment2
-.mes4sp
-.mi2f
-.mik4
-.mil2z1
-.mi2t1
-.mm2
-.na3no
-.na3t
-.näs5c
-.nebe4n
-.ner2f
-.ne1ro
-.nich2
-.nicht3e
-.ni2e
-.ni3k4l
-.no2c
-.no2s
-.nul2
-.nus2
-.ob1a
-.obe2
-.ober3ei
-.ob3i2t
-.och3
-.oe2
-.of2e
-.ohr5s
-.oper4
-.op3fe
-.or2a
-.ord4e
-.or3g
-.or3k2
-.ort2
-.orts3e
-.os3s
-.os4t
-.ost1a4
-.oste2
-.ost3end
-.osten4de
-.oste4re
-.ost5erwe
-.ost3i
-.ost3r
-.ot1a
-.ou2t
-.ozo4
-.öl3l
-.pab4
-.par2kl
-.part2h
-.pe2c
-.pe3le
-.pe3na
-.pe4ste
-.pf2
-.pf4l
-.pf4r
-.ph2
-.ph4t
-.poka2
-.po4stei4
-.po6steig
-.po2str
-.ps2
-.rabe4
-.ra3ch2e
-.ra3e2
-.ra5me
-.ra4sp
-.ra4s3s
-.rau2m
-.rau4schl
-.re3ale
-.rebs2
-.re3cha
-.re3insz
-.reis4e3i
-.rei4str
-.re3ke
-.re2stu
-.ri2as
-.richt4e
-.ro4a
-.ro3be
-.ro2e
-.ro2ha
-.rom4a
-.ro4t3r
-.ro3tu
-.rö2sc
-.rö4ss
-.rös3se
-.ruf3s
-.ruh2r1
-.runder4
-.ru3s4ses
-.rü3b
-.rücker4
-.rü4ss
-.sa3br
-.sali1
-.sali3e
-.sami1
-.sa3sse
-.sas4sen.
-.sau1
-.säs4
-.sch4
-.schaf6t7end
-.scho5s6se.
-.scho7s6ses.
-.se2ei
-.seein2
-.se2ha
-.sein2
-.sen3de
-.sen4f3
-.sen3s
-.se3re
-.seri3e
-.se1ro
-.ser2u
-.se2t1
-.sha4
-.si4en
-.si1er
-.si3gn
-.sini3
-.si2te
-.ski1e
-.sour2
-.spani5er.
-.spä5s4
-.spiege6lei
-.st2
-.st4a
-.stau8becken.
-.st4e
-.ste2i
-.steiner6k
-.sto4re
-.st4r
-.stras4
-.st4u
-.sui4te.
-.sy5st
-.tage4s5
-.tal3l
-.tan2k3a
-.tank3l
-.ta3ra
-.tar3t2
-.ta2t1h
-.ta2to
-.ta4tor
-.ta2t1u
-.te2e
-.te2f
-.tehe3
-.teiler4s
-.tei6l5ersc
-.te3le
-.te3no
-.tens4
-.te1ra
-.te4stei
-.te4stel
-.test3r
-.ti2a
-.ti2e
-.ti2me
-.ti4mes
-.ti3r
-.ti2s
-.tischen4
-.ti6sch5end
-.tite4
-.tode2
-.to2der
-.to2n
-.to4nat
-.to3nes
-.ton1i
-.to4nin
-.tons2
-.to4pl
-.to2pr
-.to2w
-.tra4s3
-.ts2
-.tse3
-.ts4u
-.tu3ra
-.tu3ri
-.turm1
-.tur2ma
-.ub2
-.ufe2
-.ufer3
-.ul2b3
-.um3
-.ume2
-.umo2
-.un3a4
-.un3d
-.une4
-.un3g2
-.uni2t
-.ur3a2d
-.ural4
-.uran4fa
-.ur1c
-.ur1e
-.ur2e3t
-.ur2inf
-.urin2s
-.ur3o4m
-.ur1o2p
-.ur3s2
-.ut2a
-.ut3r
-.ve5n2e
-.vol2
-.vo4r
-.wah4l
-.wa2s
-.weg5s
-.weine2
-.wei2ta
-.welter4e
-.wer4ker
-.wer4kr
-.wer2tr
-.wetterer6
-.wi4e
-.wor2
-.wort3en4
-.wur2f1
-.xe3
-.ya4l
-.zel4la4
-.zelle4
-.zel4lei
-.zeug2i
-.zi2e
-.zie2l3u
-.zin2ka
-.zin2s3c
-.zin2st
-.zol2
-.zuch2
-.zug3l
-.zu2gra
-.zweigen4
-.zwei6g5end
-a1ab
-aa1c
-a1a2ce
-aa2gr
-a1akt
-a2al
-aa2l1a
-aale3ne
-aa3lep
-a1an
-a3an.
-a1a2q
-2a2ar
-aa2r3a
-aar3b
-aar3d
-aa3rea
-aa2rei
-aarf4
-aar3g2
-aar3k4
-aart4
-1aas
-aas3t
-aa2th
-aa2t3r
-aat4s3
-2a3au
-a1ä2
-2aba
-3abad
-ab1alt
-a3b2am
-ab2ant
-ab1au
-ab2aut
-ab1ä
-ab2är
-ab2äu
-2abbat
-2abbin
-1abd
-ab5dec
-2abe.
-2abec
-ab1eic
-abe3id
-ab1eil
-ab1ein
-2ab2el
-abe2l1a
-abela2d
-abe2le
-2aben.
-1abent
-2aber
-a2berd
-ab1er2k
-ab1er2r
-ab1er2z
-4abes
-abe2s1e
-ab3esse
-ab1eß
-2a3bet
-2abew
-1abf
-1abg
-3abga
-1abh
-ab5hän
-2abi
-4abil
-ab1ins
-ab1ir
-ab1it
-abi4tur
-1abk
-ab1l
-1a2bla
-a3blat
-1a2blä
-a2b3led
-3ab3lei
-a3blem
-2ablet
-ab3li
-a2blin
-ab4lit
-2ablo
-1a2blö
-a2blu
-abma3s
-1abn
-2abo
-3a2bo.
-ab2of
-3a2bon
-4abot
-2abö
-ab3r
-a4brä
-a2bre
-ab4ros
-2ab4rö
-1absc
-1abse
-1ab3sp
-abs4t2
-3absta
-1abstu
-3abtei
-3abtr
-2abu
-abu3g
-a2bum
-ab1ur
-2abü
-1abw
-2a3by
-3abz
-2ac.
-2a3ca
-1ac1c
-2acci
-a1cem
-a1cen
-a1cet
-a4ch.
-ach1a
-a3chari
-ach3as
-ach3au
-2achb
-2a1che
-a2ch1e2c
-ach1ei
-ach2ei.
-a2chep
-a2cherf
-a2ch3erh
-a2ch3erl
-a2cherö
-a2ch3erw
-2achf
-2a1chi
-a2chim
-ach3l
-2ach3m
-ach3n
-a1cho
-a3cho.
-a2cho2r
-ach3öf
-4ach3r
-a4chs
-2achsc
-achs2el
-ach3s2i
-achs2or
-ach3su
-a4cht
-ach2tak
-ach4terh
-ach4tersp
-ach4t3erw
-ach2t1o
-acht3rat
-ach4traum
-ach6träume.
-ach8träumen.
-ach4trit
-acht4s3al
-ach2tum
-a1chu
-ach1u4f
-ach3ü
-2achv
-4ach3w
-a1ci
-2acke.
-ack3erz
-ackmu4
-ackmus3
-ack2sp
-acksta2
-2a1cl
-a3co
-acon4n
-2acu
-2ad.
-2ada.
-4adab
-ad2abr
-ad2ag
-adai4
-ad1an
-3adap
-4a3d2a2r3
-2adas
-2adat
-a2d1au
-a3dau.
-1a2dä1
-ad1c
-1add
-2ade.
-ade2al
-a3dec
-a3dee
-adefi2
-2adeg
-a3dell
-2aden
-a3den1a
-ade4nat
-adeo4
-ade1ra
-a2d1erk
-4ades
-ade3s4p
-ades2s
-2adf
-2adh
-2adi
-adi3en
-adi3er.
-adie4sc
-3adj
-2adli
-4admu
-ad2ob
-ado2n
-ado4na
-a2dop
-2adp
-2adq
-a2dre
-2ad3rec
-ad3rei
-ad3run
-2ads2
-ad3sz
-ad2t1
-adte2
-ad4tor
-ad4tro
-1adv
-2ady
-2a1e1
-ae2b
-a2ec
-ae2d
-aed4r
-ae2i
-a2ek
-a2el
-a3el.
-a4ela
-a3els
-ae2m
-ae2n1
-ae2o3
-aeop2
-ae2p
-3a2er2o
-a2es
-aes4a
-ae4sc
-ae4ta
-a2e3u
-a2ew
-ae2x
-a2f
-2a3fa
-a4f1ab
-a4f1a2n
-a4fap
-a4f1au
-2a3fä
-a4f1än
-2a3fe
-a4f1ec
-a4fentl
-a4f1ep
-a4fex
-a3fé
-aff4a
-af2f3l
-aff4th
-2a3fi
-afi4kanz
-afi2kat
-afi2t
-2af3l
-af1la
-a3f4lu
-2a3fo
-a4f3oc
-a4ford
-a4f1ort
-2afra
-af3rau
-af3rä
-af3re
-2afro
-af3rö
-af4rü
-af3s2a
-af3sh
-af2si
-af2sp
-afs4t
-af2t1a
-af3tat
-af2tei
-af2te2l
-aft2erk
-af2t1o
-af2tö
-aft3r
-af2tra
-aft5rei
-aft4stä
-af2tur
-a3fu
-a4f3ur
-2a3fü
-2ag.
-2aga
-a3ga.
-ag1a2b
-ag1a2d
-ag1am
-ag1ar
-a2g1au
-ag2del
-ag2dr
-ag2du
-4age.
-age2l3ei
-age2ler
-4a3gen.
-age2neb
-a2gentu
-2ages
-age4sam
-age3sc
-age4s3in
-age4so
-ages3p
-ages4sen
-age4s3ti
-3aggr
-a2g1id
-a2gim
-ag1inn
-2a2gl
-ag4lan
-ag4las
-ag3le
-a4glö
-2agm
-ag2n2
-ag4nat
-a4gnä
-ag4ne
-ag5neh
-ag4nu
-ago3b
-ag1op
-agori2
-ag3rat
-a2g3re
-a2gri
-ag3rie
-ag3rin
-2ags
-ag3s2ah
-ag4sam
-ag3schi
-ag3s2eid
-ag5s4porta
-agst2
-ags4tan
-ag2str
-2agt
-ag2th
-2agu
-a2gund
-2ah.
-2a1ha
-ah2an
-ah4at
-a1hä
-2a1he
-ahe1in
-a2h1er2h
-ahe3u
-a1h2i
-ahin3
-ah2l3a2
-ah2l1ä
-ah2l1ei
-ah2lel
-ahle4na
-ah4l3erd
-ah4l3erh
-ahl1o2
-ah2lö
-ahl3sz
-ahme1i
-ah3mu
-ah4n3a
-ah2nä
-ah3nee
-ah2nef
-ahn3el
-ah4nerd
-ahner4e
-ah2nerl
-ah4ner4le
-ahner2n
-ah4nin
-ah2no
-ahn3t
-1a2hor
-ah1os
-ah3ös
-ahr1a
-ah3r2e
-ahre4s5
-ah3ri
-ahrta2
-ahr2ti
-ahr2tri
-ahr2tro
-ahr2tun
-ah2ta
-ah2te2l
-ah2t1ex
-ah2t3r
-aht3s4
-2a1hu
-ah3w
-a1hy
-2ai.
-ai1a2
-a1ia.
-aia4p
-2aib
-ai2bl
-aid4s
-aids3t
-ai1e2
-ai3e4n1
-aif2
-ai3fr
-ai3g2
-aig4r
-a3ik.
-a4i3ke
-ai2lar
-ail3d4
-ai2lei
-ail3g
-ai2lo
-2ain
-ain2a
-a1ind
-ai3n4e
-ai4neb
-ain3s
-3airb
-ai2sa
-a3isch.
-ai3schw
-ai3s2e
-ais3sen
-ais5st
-ai2sti
-a2it
-ait4r
-a3iv.
-a3ivl
-a3ivs
-a2jat
-ajekt4o
-a2k
-2ak.
-a3ka
-2aka.
-2aka3b
-akab4r
-a4kad
-2akal
-2akam
-2akan
-2akar
-ak4at
-akat1a
-aka2tak
-1a4kaz
-2a3kä
-2akb
-2akc
-2akd
-2a3ke
-a4kef
-a4k1em
-a4keo
-ak2et
-a4keu
-2a3ki
-ak1ins
-1akku
-2ak3l
-a3k4la
-ak5lad
-ak5lan
-ak4li
-3aklö
-ak4lu
-ak5lun
-a3kna
-ak3no
-2a3ko
-2a3kr
-ak3res
-ak4ri
-3akro3
-a4k3rü
-2aks
-ak3sh
-ak2t1a2b
-ak3tan
-2aktb
-ak2tel
-ak3ten
-ak3t2er
-2aktg
-2aktik
-2aktis
-2aktm
-ak2to4b
-ak2tö
-ak2t3r
-ak3t4ri
-2aktsi
-2aktsp
-2aktst
-2aktun
-2aktw
-a3ku
-2akun
-a4kup
-2akur
-2a3kü
-1akz
-3akze
-a1la
-2ala.
-4alabo
-a2l3abt
-al1ac
-al1af
-2alai
-al1akr
-al1am
-al1ana
-2aland
-a2l1ang
-al1anz
-al1app
-a3lar.
-al3arc
-a3lare
-al2arm
-2al1arr
-a2lart
-ala2s
-a3lat.
-alat3s
-alat5t
-alat3z
-al1au
-al3aug
-a1lä
-a2l1äm
-al1än
-al1är
-a3läs
-al1äu
-3albat
-al2bär
-al2berh
-al2b3er2w
-al2b1l
-al2boh
-al2bon
-alb3ru
-alb5st
-alb6st.
-al4dan
-al2dä
-al2d3erl
-al2d3ern
-alde2s
-ald3inn
-ald1r
-al2drä
-2ale
-4a3le.
-ale4ar
-a2l1e2b
-al1eck
-a4l1ef
-a2l1ei
-a3l2eic
-a4lein
-a2l1el
-5a2lema
-a2l1e2mi
-al1emp
-4a3len.
-alende2
-al3endr
-al3ends
-a2leng
-al2enn
-al1epo
-4a3ler.
-a2l1erb
-aler2e
-a2l1erf
-a2l1er2h
-aler2kl
-a2l3erl
-al1erm
-aler4mi
-a2l1er4r
-aler3s
-a2l1ert
-aler3w
-3a2l3erwä
-4ales
-a2l1e4sk
-a2less
-a4leth
-a2l1eu
-alf4r
-1alge.
-3algi
-al2gli
-al3glo
-1algo
-3algor
-2ali
-al2imb
-al1imm
-ali2nal
-al1ind
-alin2ge
-a2l1in2q
-al1ins
-alken1
-al2klö
-al2kne
-al2kof
-1alkoh
-alk3s2
-al2lab
-al3la3d
-alla4me
-al2lan
-al2l1a2r
-al4later
-al2lä
-al3läu
-al4lec
-3allee
-alle2gi
-al4leh
-al3lend
-aller2z
-al5les
-alle3se
-al2leu
-al2lid
-alli3er.
-alli5ers.
-al2lob
-al2lo2c
-al2lop
-al2lo2s
-al2lö2
-all3öse
-al4lt
-al2luf
-allu4s
-al2lü4s
-al2map
-al4m3ast
-almo4de.
-2alo
-4alo.
-a2l1ob
-3a2loe
-a2l1of
-4alog
-alo2ga
-alo2gr
-alo3is.
-al1ont
-alori2
-al1ort
-4alos
-a2l1ö
-al2ös
-3alp.
-3alpe.
-1alph
-al2pho
-al3sak
-al2schm
-al4sh
-al3skl
-als2p
-al4ss
-als4te
-al2sum
-al2t1ak
-alt3alg
-al2tan
-al2tat
-al2tau
-1altä
-al4tb
-al4td
-alt3eis
-alt3elt
-al2temu
-alter3f
-alt3er4pr
-al2teu
-al2tid
-al2tin
-alt1op
-al2tö
-alt3rad
-al2t3rat
-al2tre
-al2t3ri
-al4t3ro
-a1lu
-alu3b4
-al2uf
-alu3g
-al1u2k
-a2lum
-al1umb
-a2l1ur
-a3lus
-2aly
-al2zar
-al2zau
-al3zen
-alz2erk
-al2zw
-a2m
-2am.
-a3m2a
-ama2ba
-ama3d2
-ama3g
-1amal
-a4malg
-2am4an
-ama2sta
-1a4maz
-2a3mä
-a3me
-4ame.
-2amel
-2am2e4n1
-amen4spr
-amen2t3r
-a5mer.
-ame3r2a
-amera3u
-a4m1erf
-1a4meri
-ame5r2u
-2ames
-a4mesh
-2amet
-a3mé
-2amf
-a3mi
-ami2k
-2amir
-2amit
-2amk
-2aml
-2amm.
-am2ma2c
-2am2mal
-amma2n
-am2mar
-am2mas
-amma2sc
-am2maß
-am2ma2te
-am2mä
-ammen4ge.
-ammes3
-am2mid
-ammi2e
-am2min
-am2mit
-4amml
-am4mo2d
-am2m1ö
-ammu2
-amm3unt
-am4mus
-am4mü
-amni1
-a3mo
-2ampe.
-2ampen
-amp2f1a2
-2am2ple
-2ampo
-am3pr
-am5pre
-2ams
-4amsc
-am2schl
-3amse
-ams1en
-am3sh
-1amt.
-am2t1a2
-am4tau
-am2t1ä
-amt3eig
-am2tel
-amter4
-am2terh
-am2t3ern
-am2t1ex
-am2tis
-am2tit
-am2to
-am4tou
-am2tö
-am2t3r
-am4tre
-am4ts
-am2t1u
-2am4tv
-2a3mu
-3a4mul
-a3mü
-a3my
-2ana.
-2anab
-ana3c
-an2ad
-anadi1
-an2ag
-2a3nak
-an1alg
-ana2lin
-an2a5ma
-2anan
-an4and
-2anas
-a5nat.
-ana4th
-a5n4atm
-a2nato
-ana2tr
-a5nats
-an3aug
-1a2n1äs
-1anb
-2anbas
-2anbö
-2anbu
-an3ch
-2and.
-3an3d2ac
-and3ei
-an2deng
-anden4ga
-an2d3ent
-ander2e
-and3erob
-an3de2s
-an2d1ex
-and2sas
-and2seh
-and2so
-and4spar
-and4spas
-and4s3paß
-and2su
-4andu2
-an2d1ur
-2ane
-4ane.
-an3ec
-a3nee
-an2ei.
-an3eif
-3aneig
-a4neis
-3a2n1e4k
-ane4l
-an1e2mi
-a2nemo
-4anen
-4aner.
-aner2fa
-an2erh
-a2nerke
-4anern
-a4nerz.
-an2erze
-an1eth
-3anex
-1anf
-2anf.
-2anfab
-3anfä
-an3fe
-2anfi
-anf3le
-2anfors
-2anfs
-an3f2u
-2anfun
-4ang.
-1anga
-2anga.
-an2g1ar
-2angas
-2angd
-2ange.
-1angeb
-an2g1ei
-an3gen
-an2g3erf
-an2g3er2h
-an2g3er2w
-an2g3erz
-2anges.
-2angf
-2angh
-2angie
-ang1l
-an2gla
-ang3n
-ang5na
-ang1r
-ang3ra
-an3gri
-2angs.
-ang4sto
-angt2
-1an3h
-2anhau
-2a3ni
-an2i3d
-4anie
-aniel2l
-ani3els
-ani3ers.
-anig2
-ani2ka
-ani3ke
-3a4nim
-a4nind
-ani2o
-an3i4on
-a4n3iso
-anis4t
-2anj
-2ank.
-an2kag
-an2k1ak
-an2kan
-an2kei
-2anken
-ank3erfa
-an3kes
-2anki
-an2kid
-an2klö
-an2klu
-ank3no
-an2k3opf
-an2kor
-ank1r
-ank3ra
-an2kras
-ank3rä
-an2kro
-2anks
-ank3se
-2ankt4
-3ankü
-1anl
-2anlad
-3anlag
-anma3s2
-2anmo
-1anmu
-2ann.
-an3na
-1annah
-an4nar
-an3ne
-an4nef
-an4nei
-an4nene
-ann2er
-2anns
-ann4sp
-2annt
-2ano.
-1an1od
-2anof
-2anog
-2a3nol
-ano2la
-1a2nom
-a3nom.
-2anoo
-an1op
-a2n1or
-ano2ri
-2a3nos
-2a1nö
-2anpu
-1anr
-2anrö
-an4same
-an3sar
-1an3s2ä
-an4sb
-1ansc
-an4sf
-an4sg
-an3skr
-1anspr
-1anst
-ans4te
-an3s2z
-2ant.
-ant3ar
-anta4re
-an3t2ä
-1antá
-3antei
-an3tha
-1anthr
-2antie
-3antise
-anton2
-3antr
-1antw
-2anu
-anu3r
-anus3s
-a1nü
-1anw
-2anwi
-an2z1ä
-2anzb
-2anzd
-1anzei
-anz3elf
-anze2n
-2anzes
-2anzg
-2anzh
-anzi2d
-an2z1i4n
-2anzk
-2anzm
-2anzr
-2anzs
-2anzt
-1anzü
-3anzün
-2anzv
-2anzw
-an2zwä
-an2zwi
-2anzy
-2ao
-ao3i2
-a1op
-ao2pe
-aopf4
-a1or
-a1os
-a3ot.
-ao3t2s
-2a1ö
-aö4fe
-2ap.
-ap2a
-apa3b
-ap4an
-a2pe.
-a2pé
-ap2fa
-1apfel
-2apfes
-a3pfl
-a2pht
-2api
-2apl
-ap4la
-ap3le
-ap3li
-ap2n
-a2pot
-1appro
-2apr
-ap4ster
-ap3t2
-ap5tag
-2a3pu
-2ar.
-a1ra
-a3ra.
-ar2ab
-2ar3abb
-ar3abf
-ar3abr
-ar3abt
-2arac
-ara3d2
-ar3adr
-2arak
-2a2r3al
-a3rale
-a3ra3li
-a3ralo
-a2r1ang
-a2r1anz
-2arap
-a4r3app
-2a2rar
-ar2asy
-4arat
-a2r1au
-a1rä
-ar1äs
-1arb
-2arb.
-2arba
-ar2bak
-ar2b1at
-ar2bau
-2arbef
-ar2b3ein
-2arbek
-2arben
-2arber
-4arbi
-2ar2bl
-2arbo
-2arb1r
-2arbs2
-arb3se
-arb3sk
-arb3so
-2arb3t2
-2arbu
-1ar1c
-2archl
-2ar3chr
-ar2dau
-arde4i
-ar2dop
-ar2d3r
-a2rea
-are3aler
-a2reb
-aree2
-ar1eff
-a2reh
-ar1ehr
-2arei
-a3rei.
-ar1eid
-a3reie
-a3reih
-areim3
-a2rein
-arein4b
-arein2s
-arein2t
-a2rele
-4arem
-are2mi
-4aren.
-aren4sem
-a2rentn
-are3r2a
-arerau5
-arer2e
-a2rerei
-a2rerg
-a2rer3h
-a2reri
-a2rerk
-a2rerl
-a2rert
-ar2erw
-2ares
-are3sc
-ar2et
-are3u
-a2rev
-arf1r
-arf3ra
-arf2sp
-4arg.
-ar3gan
-ar2gl
-ar4gn
-2arg4o
-ar3g4r
-2arh
-2ari
-ar2ia
-ari3e2n
-ari3erd
-ari3erg
-ar1int
-a3r4io
-ar2ir
-ar4is
-ari2su
-a3riu
-ar2kal
-ar2k1ar
-ark3aue
-arker2
-ar2kil
-2ark3l
-ar2kle
-ar2klo
-ark4lö
-ar2kn
-ar2koa
-ar2kor
-ark3s2a
-ark2se
-ark3she
-ark4tre
-arku2
-ar2les
-ar3mad
-ar3m2ä
-ar2m1eg
-ar2m1ei
-arm2or
-ar2mum
-4armü
-2arn
-ar2nan
-arn2el
-ar3ni
-a1ro
-arob2
-4aroc
-ar1o2d
-ar1of
-aro2i
-2a3rol
-a2r1op
-a2ror
-1a2rou
-aro2w
-2a2r1ö
-arö4l
-2arp
-arr1ac
-ar2r3ad
-ar2r1as
-ar4rek
-arre4n1
-2arri
-ar2r3or
-arseri2
-ar3s2h
-ar3s2i
-ars3k
-ar3sse
-ar2tau
-2artb
-art2e
-2ar3tei
-artel4li4
-ar3tem
-arter2e
-2artex
-2arth
-art2i
-2arto
-art3r
-ar4tram
-art4res
-ar2tri
-art3ske
-art2sp
-2artuc
-2artü
-2arty
-2aru
-a2r1uh
-ar1um
-a3rumm
-a2rü
-2arv
-arwa2
-2a3r2y
-2arza
-ar2zau
-ar2zä
-2arze
-2arzi
-ar2zö
-1arzt
-arz2t3r
-2arzu
-ar2z3w
-2asa
-a4s3af
-a3s2al
-asal2t1
-as1am
-as3art
-asa2s2
-asa3sse
-as3at
-asau4f
-a4s3aug
-asau2s
-a2sä
-as3ät
-a2sca
-a4schec
-a4schef
-a4scherg
-as4chi
-a2schm
-asch3ru
-2ascht
-a3schu
-a4schum
-2asd
-2a3se
-a4seb
-a4sec
-a4s1ef
-as1eie
-as1emi
-a5sen.
-ase4na
-ase4n3o
-asens2
-a2sen2se
-as4eo
-as2ep
-as2er
-ase2re
-a4s3erke
-as4es
-ase4ta
-a4s1ev
-a4sex
-2asf
-as3ha
-as4hf
-as2hi
-as3hir
-as4ie
-2asig
-a2s3i2k
-2asim
-asin2g
-as1inn
-2asis
-2asiu
-as3ka
-aska2r
-as3l
-as1o4f
-a3sol
-a3som
-as1o2p
-as1or
-a4soz
-a2sö
-a2sp
-as3pan
-aspek4to
-a4spel
-a4s2ph
-as3pik
-as4pin
-as3pio
-a4spl
-2aspr
-a5spra
-a4ss.
-a4s3sa
-ass2a3b
-ass4aus.
-a4ssb
-as3sel
-asse3le
-asserma4
-a4ss2i
-as3sin
-a4ssk
-as3ski
-a4s4sl
-a4ssn
-a4s3so
-a4ss3p
-as2spo
-as2spr
-a4s4ss
-a4s4st
-as5sta
-as6staf
-as6stag
-as3stau
-as5stei
-as5sti
-as5str
-as5stu
-a4st.
-4asta
-ast2as
-a3stä
-a4stb
-a4std
-a4stec
-as4tee
-ast2el
-a4stemp
-a4s5tep
-as4t2er
-a4st3ese
-as4tex
-a4sth
-ast2i3d
-a4stl
-a4stm
-a2stoc
-ast3orc
-a4stp
-a2st3re
-as3t4ren
-a4stritt
-a3stro
-a4strol
-ast3roll
-a4sts
-a4s3tub
-a4s5tuf
-a2stum
-as4ty
-2asu
-a4suh
-as2ur
-asu4s
-as4ut
-a2sü
-aswa2s
-1asy
-3a4syl
-2asys
-aße2
-aß2en3
-a2ß1er
-aß2th
-2at
-at1ab
-ata2be
-at2a3f
-ata3g
-at2ago
-ata3la
-a3tam
-at3an3k
-at1apf
-ata3ra
-at2ast
-at1att
-a2t1au
-at1än
-at2c
-a2teb
-ateien2
-at1eig
-3a2teli
-a3tell
-3atemg
-at2en
-ate4na
-atens4
-a2tep
-4ater
-ate3r4al
-at4ere
-atern2
-ate2ru
-at2eu
-a2tew
-a4th.
-4atha
-at3hag
-at3hal
-at2heb
-ath3in.
-3athl
-a4thm
-a4thr
-at2hu
-at3hü
-a3ti
-at4ia
-ati2kab
-ati4k3erw
-a4tinf
-at2is
-ati2sa
-ati2se
-a4tiso
-atis3s
-ati4v3erf
-3atla
-4atli
-3atm
-4atma
-4atmä
-at3mu
-4atmus
-a2t1ob
-a3tog
-a3tol
-3a2t4om
-ato4man
-atom1e
-ato4mo
-at1op
-a3tor
-at1ort
-a3tos
-a3tra.
-atra2t
-a2t3rau
-a2t3rä
-at3re
-at3rin
-at3rom
-a3t4ron
-at3rot
-at3rü
-at2sa
-at3sche
-at2schn
-at2se
-ats1e2h
-at2si
-ats1in
-at2s1o
-at2sp
-a4tst
-ats3tät
-at2su
-at3ta
-3attac
-at4tad
-at2ta2g
-at4t1ak
-at2ta2l
-at4tang
-at4tar
-at4tau
-at2tä
-at4tec
-at4tei
-att2el
-at4temp
-at3thä
-4atto
-at2tob
-3attr
-att3rat
-at2t3rä
-att3s4
-at3t2u
-at2ty2
-atu2n
-atze4l
-atz3ela
-atz3elt
-at2zem
-at2z1er
-a3tzere
-atzer2h
-at2z1i
-atz3t2
-at2z3w
-a2u
-2au.
-2au3a
-2aub
-au2bab
-au2ban
-au2b1au
-au2bei
-aube4n
-au2beu
-au2blä
-au2bli
-au2blo
-au2blu
-aub3rin
-aub2si
-aub2str
-aubu4s
-2auc
-auch4str
-au2dr
-2aue
-aue2b
-au3er.
-au2ere
-aue3rei
-auer3ö
-au3erq
-au3ersc
-au3erst.
-au3ert
-aue2sc
-au4fa
-au5fac
-au5fah
-auf1ak
-au5fal
-au5fam
-auf1an
-aufas2
-3aufber
-2aufe.
-2aufeh
-2aufen.
-3aufent
-auf1er
-au4fer2k
-au4feu
-auff4
-auf3ind
-1aufla
-1au4fn
-2aufo
-4aufö
-1aufru
-auf3ski
-auf3t2
-2auft.
-3aufzeic
-3aufzug
-1aufzü
-2aug
-au2ga
-au3g2ar
-aug2e
-4augeb
-4augeh
-4augel
-4augl
-au4gn
-4augr
-au3gu
-2auh
-au3ha
-auh1u
-2au1i
-au2is
-2auj
-auk3t
-aule2s
-aul2les
-au3lü
-2aum
-aume4n
-au2m3ent
-au2m1e2r1
-aum3eri
-au2m1id
-au4mil
-au4mit
-au2m1o
-aumo2r
-aum3p2
-aum3s4
-au4mun
-2aun
-au3n2a
-aun2e
-au4nei
-au2nio
-au2no
-au3nu
-a4unz
-2aup2
-au3pf
-2aur2
-au1rh
-au3ru
-au4sag
-au2s1ah
-ausan4ne.
-au2sas
-au2sau
-2ausc
-au4schmi
-au2scho
-1ausd
-2ause.
-au2s1eh
-2ausen
-au2s3erb
-au2serf
-aus3erk
-aus3erp
-au2serw
-1ausg
-au2sin
-au4sis
-au2so
-aus1or
-au2spr
-1ausr
-3aussag
-au3sse
-aus2se.
-auss2el
-au4ssende
-aus4ser
-aus2ses
-auss4t
-au2st2a
-2auste
-au4stec
-aus3tie
-aust2o
-au2stö
-aus3tr
-au2stri
-3ausü
-1ausw
-1ausz
-auße2
-au2tab
-au2t1äu
-2autb
-au2t1e2l
-au3ten.
-auten2g
-au2t3erh
-au3tet
-au2tev
-2autg
-au2thy
-2auti
-1auto
-aut3rin
-au4trö
-2auts2
-2auu
-2auv
-auve4
-2auw
-2aux
-2auz
-auz4w
-2a1ü
-av2a
-avari4e
-ava3t2
-avener2
-2avi
-a2v3r
-av2s
-2aw
-awi3e
-a2wr
-a1x
-ax4am
-a2xans
-ax2e
-a2xio
-axi2s1
-2a1ya
-a1yeu
-ayma2
-ay3o
-aysi1
-ay2u
-az2
-a3za3d
-3azal
-az4at
-a3zi
-az3t
-a3zu
-azz3a
-az4zab
-az4zin
-ä1a
-2äb
-ä2b3l
-äb2s
-äbte3
-ä1ce
-ä1che
-äche1e
-äche4n
-ächenma3
-ächenmas4
-ä1chi
-äch3l
-ä2chr
-äch4sa
-äch2so
-äch2sp
-ächt4e
-ä1chu
-ä2da
-ädel1i
-ä2d1ia
-ädi4e
-ä2dr
-äd2s
-äd3te
-2ä1e
-äe2k3
-äe4kl
-äe2x
-ä2f
-ä3fe
-äfe4n
-äf2fl
-ä3fi
-äf3l
-äf3r
-äf4ro
-äf2s
-äft2e
-äft4s3
-ä2g1a
-1ä2gä
-ägd2
-äg2e
-ägen4e
-äge2r3a
-ä2g3l
-äg2n
-ä2g3r
-äg4ra
-äg2s2
-äg3sc
-ägs4t2
-äg3sta
-äg3str
-1ä2gy
-äh1a
-2ä1he
-äh1ein
-äher5t
-ä1hi
-äh1in
-ähl1a
-äh3l2e
-äh4l3e2be
-äh5ler
-2ähm
-äh3na
-äh3ne
-1ähnl
-2ähr
-äh2rel
-äh3ri
-ähr5sa
-2äh2s
-ähs4t
-2äht
-ä1hu
-äh3w
-2äi
-ä1im
-ä1is.
-ä3isch.
-ä1isk
-äka2la
-äk3l
-ä2kle
-äk4li
-ä2k3r
-ä1la
-äl4bc
-älbe2
-äl4bl
-älk3
-älks4
-äl2l1a
-äl2p3
-äl2schl
-ält2e
-älte1i
-ä1lu
-ä2m
-2ä3ma3
-äm4at
-ä3me
-ämer2s
-ä3mi
-ämi3en
-2äml
-äm2ma4
-ämmas2
-ä3mo
-ämoni3e
-2ämp
-ämp5f4e
-äm2s
-äm3t2e2
-ämter3
-ä3mu
-2än.
-änd4e
-än2dr
-2ä3n2e
-äne2n1
-2än2f3
-änft2
-4än3g2e
-änge2ra
-2än2gl
-äng3le
-än2gr
-äng3se
-2ä3ni
-än3k2e
-än2k3l
-än2kr
-2änn
-än3n4e2
-änner1
-2äns
-än4s1a
-än2s1c
-äns2e
-2änz
-ä1on
-äo3s2
-ä2p
-ä3pa
-1äpfel
-ä3po
-äp2pl
-äp2pr
-äp2s1c
-ä3pu
-1ä2q
-ä2r3a2
-är4af
-ära4r
-är1ä
-2ärb
-är2b3le
-är1c
-2ärd
-ärde4s
-2äre
-4äre.
-ä2r1ei
-ä2r1e2l
-4äre2m
-är1emi
-4äre2n
-ä2rene
-4ärer
-ä2rerh
-är2es
-4äres.
-ä2rese
-är3ge
-äri2e
-ä2r1ind
-är1int
-är3k4e
-2ärm.
-ärm3arm
-är3mas
-ärm3at
-ärme1e
-ärm3ent
-ärno2
-är1ob
-är1of
-ä1rö
-är3re
-ärse2
-är2seb
-är2seh
-ärs1er
-är2si
-är3spu
-2ärt
-ärt2e
-är2th
-ärt4s3
-ä2rü
-ärz3te
-är2zu
-är2z3w
-äs2
-ä3sa
-äs4ch
-2ä3se
-äse3g
-äse1i4
-äse5ref
-äser2ei
-äse2ren
-äser2i
-äs3k
-ä3s4kr
-ä2s3p
-ä3ss
-ä4ss.
-äs4sb
-2ä4s4s1c
-äss2e
-äss3erkr
-äs3sern
-äss3ersa
-äss3erw
-ä5sses
-äs4sf
-ä4s4sh
-ä4s4sl
-äss3p
-äs4sr
-äs4ss
-äs4s3t
-äs4t2e
-1äs3th
-äs4ti
-ä2str
-ä1ß
-2äßc
-äß1erk
-äß1ers
-ä2t3a2
-2ä3te
-äte3a
-äte1e
-äte1i
-äte3l2
-äte2n
-äteo2
-äte4pi
-äter2bl
-äte3s
-ät2e3t
-ä2th
-ä4thc
-ät1id
-ät1ob
-ä2t3r
-ät4sa
-äts3au
-ät2sä
-ät2schl
-ät2schr
-ät2s1i2
-äts3l
-äts1or
-ät2s3p
-ät4s3t
-äts5te
-ät2su
-ät2tei
-ätte4n
-ät2tr
-ätze3l
-ät2zw
-äu1
-2äub
-äu2b3l
-äu2br
-äu3d
-äude3
-äuder2
-2ä2uf
-1äug
-äu4g3l
-äu4gs
-äu4gt
-2äul
-2äum
-äu2ma
-äum3p
-äumpf4
-äum2s3
-2ä2un
-äun2e
-äu3nu
-2äu3r2
-äure1
-äus2
-2ä3us.
-2äusc
-äu4schi
-äu2schm
-äu3se
-äuse1i
-ä3usg
-ä3usk
-ä3usn
-äu2sp
-äu3ss
-äuss1c
-1äuß
-äu4ßr
-äut2e
-äu2tr
-ä2vi
-1äx
-ä3ze
-á1
-1b
-3ba.
-b2aa
-b3a2ba
-2babf
-2babg
-ba2bl
-ba2br
-2b1abs
-bach5t4e
-back3er
-back3s4
-ba3de
-bade1i
-2b1adel
-bader4
-2b1adl
-2b1adm
-b1a2dr
-ba2du
-2b1af
-3bah
-bah4nene
-bai3d
-bais2
-b2ak
-ba4k1a
-ba4k1er
-ba4k1i
-ba4k1l
-bak3r
-ba4kra
-ba4kre
-ba2lab
-ba2l1ak
-ba3lal
-ba2lau
-baler2
-ba2l3erk
-balk4a
-balke4
-bal4lan
-balle4b
-bal2l3ei
-ball4erk
-bal4li2g
-bal4lo2k
-ballö3s
-ball3s
-bal3tin
-bal2tr
-2b1am
-b2ama
-ba5maz
-ba4me
-4bamt
-ban2a
-3b2and
-band1a
-ban2dal
-ban2dan
-ban2dar
-ban4derk
-ban4derz
-ban2dr
-ba3n2e
-2banf
-b1ang
-ban3gl
-ban4k1a
-ban2kl
-ban2kn
-ban2kr
-ban2ku
-2banl
-b1anna
-ban2o
-2b1ans
-b1ant
-2banw
-b1anz
-ba2r3ab
-ba2rad
-bar3ast
-ba2rat
-bar3de
-ba2rei
-barer3ei
-barer2t
-3bars
-b1arz
-bar3zw
-3b2as
-ba3sa
-ba2sc
-bas2i
-bas4sa
-bas6str
-bas6tel
-ba2str
-ba2ß1
-ba2t3ent
-bat2o
-3bau.
-bau3b
-bauer2l
-bauer2s
-bauer2w
-bau5fa
-bau3fl
-bau3f4r
-bau3g
-b2auk
-bau3r
-bau3s2k
-baus4t
-bau3sta
-b1a2x
-ba1y4o
-3b2äc
-bä1ch
-3b2äd
-2b1äh
-b2äl
-2b1ärz
-b2äs3
-bä4ss
-2bäug
-2bb
-bbe4n
-bbe4p
-b2be2se
-bb3le.
-bb2lö
-b3brec
-b3bru2
-bb2s
-bbu1
-2b1c
-2bd2
-b3da
-bdä2
-bdän3
-bdome4
-bd4ri
-3be.
-3bea
-be3ab
-be3an
-be3as
-beat2m
-be3au
-be4au.
-3beb
-b1ebb
-3bec
-be1ch
-4becht
-2b1e2del
-bedi4
-be1e2h
-bee2l
-be3ela
-be1en
-bee4rei
-be1erh
-be1erl
-be1ert
-be1eta
-2b1eff
-be3g2
-be2he.
-beh5ri
-bei3b
-2b1eier
-bei3f4
-beige4be
-beige4ge
-beige2l
-beige4p
-bei3k4
-bei3l2a
-2b1eime
-be1ind
-be1inh
-bein4hal
-bein2hi
-bei3s2
-bei5s4t
-beit4e
-beit2s
-beit4s3k
-3bek
-3bel
-b4el.
-be3l2ag
-be3las
-bel3d
-be3lec
-4be2lek
-be2l1en
-be2let
-bel3f
-bel3la
-belle4n3
-bel3li
-bel3om
-be2löf
-bel3sz
-belt2
-bem2
-3b2em.
-3b2e3ma
-2b1emp
-2bemul
-3ben.
-be5nabe
-ben3ar
-be4nas
-be4nat
-be2nä4
-bend3s2
-b2ene
-be3nei
-be4n3end
-be2ners
-ben2eu
-3beng
-be2nid
-be2nik
-be4nis
-ben3n
-3benp
-b2ens
-ben2spa
-ben2spr
-benst4
-3bensv
-3bensz
-2b1entb
-2bentd
-2benteu
-2bentf
-ben3th
-ben4thei
-bent4r
-2b1ents
-2b3entw
-be2nu
-ben3un
-b2en3z2
-be1o
-2b1epi
-2bepoc
-be1ra
-ber3a2d
-be2rak
-be2r3am
-be2ran
-bera4s
-berb2
-ber3d
-be2r1e2b
-be2reck
-be2r3eiw
-ber3ell
-bere2m
-be2rene
-ber2er
-ber3erk
-bere4sc
-bere4t
-berf4
-ber2g3af
-ber2gal
-ber2gli
-ber2hab
-beri2d
-be3r4in.
-berin2g
-be3r4inne
-be2ri4o
-ber3iss
-ber3ko
-ber3kr
-bermas2
-berma5sse
-ber3n2a
-bern2e
-b1ernt
-be4roh
-be2rö4
-3bers.
-ber5se
-ber3st2a
-ber3t2a
-bert2e
-bert2i
-berz2
-ber3ze
-ber2zö
-b2es
-be3sa
-bes4abb
-bes2am
-be4sap
-be4sar
-bes2au
-be2sep
-be2s1er
-be2s1id
-bes3sa
-bess4e
-b3esst.
-bes3sz
-beste2
-be4stein
-bester2
-be5ster.
-besti3en
-be2s3tol
-be2st3o2r
-best4r
-be2s3trä
-be2s3tur
-be2sur
-be3s2ze
-be3tam
-be3tha
-be3thi
-bet4o
-bet2sp
-bet2to
-be1un
-be1ur
-3bev
-3b2ew2
-2b3e2x
-3b2ez
-2bf2
-bfal2
-bfang3s
-bf4lö4
-bflös3
-bf4ri
-bf4ro
-bf4rü
-2bg2
-bga4s3t
-bga4su
-bge3
-bgel2e
-bge5na
-bges4
-2b1h2
-bi1ak
-bi2ar
-bi1as
-3bib2
-bibe4
-biber1
-bi2c
-bid2
-bi3do
-bieres2
-bie4str
-biet4s
-3bietu
-biga1
-bik2a
-bi2ke.
-bi2kes
-bi2kre
-3bil
-bil2deb
-bil3der
-bi2lei
-4billu
-bi2lu
-2bimp
-2b1inb
-bin2e
-bine4n
-b1inf
-bin4fo
-bin2g3a
-bin3gl
-2b1inh
-bino2
-bi2n3ok
-bin4ol
-2b1int
-2b1inv
-bi2o3
-biri1
-3bis
-bi3si
-b1iso
-bi2sp
-bis4sa
-bis4s1c
-bis3t
-bi3s4ta
-bi2sto
-bi3s4tr
-bi2stu
-bi2stü
-3b2it.
-b2ita
-b2ite
-b2iti
-bit4r
-bit4ta4
-bi2tu
-bi3tum
-bi3z2
-2bj
-bjek2to
-2bk2
-bk4ne
-bk4nu
-bl2
-2bl.
-bla3b4
-2b3lac
-b3lad
-b2lanc
-bl4at
-b2latt
-b2lau.
-b3laus
-2b3law
-2b1län
-3blät
-b2le
-3ble2a
-b3leb
-3blec
-b3leg
-4bleh
-b4lei.
-3bleib
-2b3leid
-2bleih
-b3lein
-blei3s4
-bleistras6
-2bleit
-ble3l
-blem3p
-ble2n
-b3lenk
-b3lese
-2blesu
-ble3sz
-3blet
-b3leu
-2blich
-3blick
-b2lie
-2blief
-4blig
-b2lind
-2b5ling4
-b2lis
-2blis.
-b2lit
-b3lite
-b2lo
-b4lo.
-b4loc
-2b5loch
-b4loi
-blo2id
-b3los2
-blo3sse
-blös4s
-3b4lum
-2blun
-b2lus
-3blut
-blut1o
-blut3sc
-3blü
-2bm
-bmas2
-2b1n2
-b3na
-bnas4
-b3ne
-b3ni2
-bnis1
-bo3as
-b1o2b
-bo3ben
-bob3r
-bo1ch2
-bo3d2
-bo4dd
-boe1
-bo2ei
-2b1of
-bo3he
-boh2ra
-boh2u
-bo1is
-bo2lan
-bo2lau
-boli2e
-bol3le
-bol3za
-3bon.
-bo3n2a
-bond1
-bon2da
-bon2de
-bo2ne
-3bons
-boo4l
-boo2ti
-b1op
-3bor.
-bo1ra
-bor2an
-bo2r3as
-bo4rä
-bor2da
-bor2d3r
-bo4rig
-bor3m2
-b1ort
-bor2ter
-bor4t3rat
-bo4ruh
-bo2sc
-bo3se
-bo4s3p
-3bot
-bot2e
-bote3n2e
-bo3th
-bot2st
-bot3t
-bo3v
-b1oz
-bö2b3
-2böf
-2b1öl
-2bp2
-bpa2g
-b3pf
-bp4rä
-bpri2
-2bq
-b2r2
-2br.
-b4ra.
-2b3rad
-2b4rah
-b4rak
-bra5ka
-br4al
-b4r4am2
-bra4ss
-brast4
-2b3rat.
-brat3er2
-bra4terg
-2bratg
-3brä
-4bräd
-brä4u
-2bre.
-4b3rechte
-2b3red
-2b3ref
-2breg
-b3reic
-b3reif
-b3reiz
-2brek
-b4ren.
-2b3rent
-2breo
-2b3rep
-b4rer
-b4res.
-b3rese
-b3rest
-bret4t3en
-2b3reu
-b4rez
-bri2da
-brie2fa
-2b3riem
-b4rien
-bri2er
-b3ries
-2brigk
-b4rik
-b4rina
-2b5rind
-b4rio
-b4risc
-2briß
-b3ritt
-b4riz
-brob2
-2b3roh
-2b3rol
-bro4ma
-b4ron
-2b3rost
-bro4tei
-bro2tr
-brott4
-2b3rou
-3brö
-b4ruc
-2bruf
-b4rum
-2b3rund
-brun4e
-bru4s4
-brust1
-bru2th
-b4ruz
-3brü
-4b3rüb
-brü4ss
-2bs
-b2s1ad
-bs2am
-bs3amb
-b4s3amt
-bsas2
-bsa3sse
-bsau2r
-b4s3är
-b3s2äu
-b3sc
-bsch2a
-b4schan
-b4schef
-bs2chi
-b5schl
-b4sco
-bs2cu
-b3se.
-bse2b
-b3sel.
-bse2n1
-b3sen.
-b2s1ent
-bs1erf
-bs1erg
-bs3e2r3in
-bs1erk
-bs1ers
-b3s2es
-b2sim
-bsi2t
-b4ski
-bs2ku
-b2s1of
-b3s2oh
-b3sol
-b4sop
-bso2r
-b2sö
-bs2p
-bs4pi
-bs3po
-bss4t
-b4st.
-bst1a2b
-bst1ak
-bst1al
-bst3an3k
-bst1a4s
-b3stä
-b5stär
-bs3tät
-bst3emi
-bst1er
-b4stern
-bst1h
-bst3ink
-b2stip
-b3sto
-b4stob
-b4stod
-b4stor
-b3stö
-bs3trau
-b2s3trä
-bst3rep
-bst3ro
-b3stü
-b4stüb
-b2s1un
-b3sz
-bs2zep
-bs2zi
-b4szü
-2bt
-b3t2a
-bta2st3r
-b3te
-b2t1h
-bt2i
-bti2s
-bt4ra
-btran2
-bts2
-btü1
-bu2chec
-bucher2
-bu4ch3er4s
-bu3ches
-bu2chi
-buch3sp
-bu2e3
-bu4fe
-bug3
-bu2gr
-bull3a
-2bumf
-2b3umk
-2buml
-2b3umr
-bun4a
-bun2d3er
-bunde2s
-b1une
-b3un3gn
-2b1unh
-bur1c
-b2ure
-b2urg
-burg1a
-bur2gan
-bur2gar
-bur2gin
-bur4gr
-bu3r2i
-2burn
-b3ursa
-burt4s3
-bu3ru
-bu2sa
-bu2sc
-bus3cha
-bu3sche
-bu4schei
-bu4sch3el
-bu4scheu
-bu3schu
-busch3w
-bu3shi
-bu2si
-bu2s3p
-bu4s3ses
-bussy2
-buster2
-bu4sterm
-bu2s3tr
-bu2su
-but2a
-bu3tan
-buto3re
-2büb
-bü4bc
-bü1c
-bügel3e
-bü3s2
-2bv
-2bw
-bwur2
-b2y
-by3a2
-by3o2
-by3p2
-bys2
-bys4c
-by2te
-2bz2
-bzeit1
-bz4wa
-1c2a
-ca3bl
-3ca2c
-ca2e3
-ca3g2
-ca1h
-cal2a
-cala3b
-cal3t
-3cam
-2can
-cana3
-ca2pe
-ca3r2a
-car3n2
-carri1
-car3tr
-ca3s2a3
-ca3sto
-ca3t2h
-ca1y2
-cä1
-2cc
-c1ce
-c1ch2
-c2d2
-c3do
-2cec
-1ced
-ce2dr
-ce1e
-2cef
-2ceh
-ce1i
-ce3in
-2cek
-3cels
-cen3a
-cens2
-ce3nu
-cen3un
-ceo2
-1cer
-cer3a
-cere1
-cere3u
-ce3r2i
-ce4ris
-ce1ro
-ce3s4h
-cet1am
-ce1u
-1cé
-cg4re
-c2h
-2ch.
-2chab
-ch3a2b3i
-2chaf
-2ch1a2g
-ch1ah
-2ch1ak
-chan4a
-3chanc
-ch1ang
-4chanl
-ch3ansa
-4chanz
-3chao
-4char.
-3chara
-3chard
-3charta
-cha2sc
-chasi1
-1chato
-2chatt
-ch3austr
-chau3t
-ch1äh
-ch1ärm
-ch1äs
-1châ
-2chb
-2chc
-2chd
-che3b4
-ch3e4ben
-ch3echt
-ch1edi
-che2el
-3chef
-che2fer
-2chei
-ch1eim
-2chelem
-che2ler
-3chemi
-2chemp
-che2neb
-che2nid
-che2no
-2chents
-2chentw
-che2r3a
-2ch3erbs
-2ch3er2de
-2ch3erfa
-4chergeb
-2cherke
-cher4zie
-ch3ess
-2ch1eta
-2ch3e4x
-1ché
-2chf
-2chg
-2chh
-1chia
-chi3na
-4chind
-3chines
-2chinf
-2chinh
-2ch1ins
-2ch1int
-2ch1inv
-1chip.
-1chiru
-2chiso
-2chj
-2chk
-2chl2
-chl4a
-ch2le
-chle2i
-ch3lein
-ch4len
-4chli
-ch2lu
-2ch2m
-2chn2
-chn4a
-chn4e
-chner4ei.
-ch2neu
-2chob
-cho3ch
-cho4f
-ch1off
-cho5fr
-chof2s
-ch1oh
-cho3l2a
-ch1orc
-ch1ori
-ch2os
-ch3öl
-3chör
-2chp
-ch2r2
-2chr4a
-ch3rad
-2chre
-chre3s
-ch3rh
-4chrit
-3chromo
-3chron
-ch5ros
-ch4ry
-2chs
-ch2stal
-2cht
-ch2truh
-chts3trä
-2chuf
-2chuh
-2ch1unf
-2chunm
-2chunt
-2chur
-ch1urs
-2chut
-2chü
-2chv
-2chw
-2chz
-ci2al
-ci1as
-ci1c
-ci1es
-c1ind
-cins4
-c1int
-ci2s1
-1ci3t2
-2c2k
-ck1a
-cka2b
-ck2ad
-ck2age
-cka4m
-cka4r1
-ck1ä
-ck1ef
-ck1eg
-ck1eh
-ck1ei
-cke4na
-cke2ra
-ck3er2hö
-ckerk4
-ck2ern
-cke2ro
-ck2et
-cket4t
-ck1i2d
-ck1in
-ck4is
-ck3l
-ck3n
-ck5nac
-ck3o2
-cko4f
-cko4p
-cko4s
-ck3ö
-ckö4f
-ck3r
-cks2al
-ck4ske
-ck4spen
-ck3te
-ck3t2i
-ck1uh
-ck1um
-ck1up
-c2l2
-cle4a
-clet2
-clin2g
-cli2p1
-clo1c
-1clu
-clu4b
-c2m2
-c3me
-c3mu
-1c2o
-3coa
-co1ch
-3co2d2
-co4de.
-co3di
-cof3f2
-co2ke
-cola3
-co2leu
-co3l2o
-3com
-co4mp
-com2te.
-comtes2
-con2ne
-continuati6
-co2o
-coo3p
-co3p
-co4ps
-co1ra
-2corb
-cor2da
-cor3de
-co4re
-co5ree
-cor3t
-cos4t
-co2te
-cou3si
-cô2
-2c2p
-1c2r2
-c4ra4s
-c3rä
-cre2
-cre4me
-3crew
-2cri
-2cry
-2cs2
-c2si
-cst2
-2ct
-cti4o2
-ction5
-ctur4
-1c2u
-2cua
-cu2e
-cup3
-cu4pa
-cu4p1e
-cu4pl
-cu4pr
-cussi4
-c2v
-c3ve
-2cx
-1cy
-1ç
-1d
-3da.
-da1a
-2d1aal
-2d1ab
-d3a2bak
-d2abä
-d2abe
-d3a2ben
-d3a2bi
-da3blu
-d3a2bo
-dab4ra
-da2bri
-da3brie
-d2ab4rü
-d1ac
-dach3a
-dache4
-da2cho
-2d3achse
-2d1ad
-da2de
-da2do
-da2d4r
-d1af
-da5fab
-2da4ff
-da3f4l
-dafo4n
-d1ag
-dagi4o
-dag2o
-da1h
-dah3l
-dail3
-da1in
-2d1air
-da1is
-da4kro
-2d1alar
-dal3b2
-4d1all
-da2lop
-da3lö
-2d1alp
-d1al3t
-2dalte
-da1lü
-3dam
-d1a4mei
-d1amma
-4d1ammä
-damo3
-da3mö
-d2amp
-damp5f4erf
-4d1amt
-3d2an.
-d1ana
-da2nan
-da4n4at
-2danb
-dan2ce.
-d1and2
-2danda
-d2andy
-3dane
-4d3anei
-2danf
-d1ang
-2danh
-dan2kl
-dan3kla
-dan2k1o
-dan2kr
-2danl
-d1ann
-2danna
-d1a2no
-2d1ans
-danti3e
-2dantw
-2danw
-d1anz
-d2anz.
-2danzi
-2danzü
-2d1ap
-d2apa
-d2aph
-da2po
-da3pos
-4dapp
-d3apte
-2daq
-da4r1a
-dara4s
-2darb2
-2d3arc
-dar2d1e
-2d1area
-daren1
-dar3g
-d3a2rist
-dark2a
-3darl
-dar2m1a
-dar2m1i
-dar4mun
-da2r3o
-d1arr
-2darres
-3d2ars4
-2d1art
-d3ar2th
-4d3arti
-dar2tr
-da2ru
-d1arz
-das2
-da3sh
-d1asp
-das3s
-2d1assi
-2d1ast
-da4str
-dat2e2
-da3tei
-4d3a2tel
-date4n
-da2th
-2d3atl
-4datm
-d3ato
-dat2st
-2d3atta
-3daub
-2daud
-dau3e2
-dauer3e
-daue4rei
-2d3au4f
-2d3aug
-2dauk
-da3unt
-2d1aus
-dau4ss
-dau2ß
-3daw
-d1ax
-3däc
-2d1äg
-2d1äh
-2d1ämt
-dä4n3a
-2d1änd
-2d1äp
-2däq
-2d1ärz
-2d1ä2u
-dä3us
-2däx
-2db2
-dbau2c
-dbauch3
-dbe2e
-db4la
-db4ri
-dbu2c
-dbu3s
-2dc
-d3ch
-2dd2
-d3da
-ddar4m1
-d3dä
-d3de
-d3dh
-dea2d
-3dean
-de3ar
-de3as
-de3a2t
-deb2
-deb4r
-3debü
-de1ch
-de4ck
-deco3
-2d1e2del
-de2dit
-2dee2
-de1eb
-de1e4g
-de1em
-dee4n
-de1er
-de1es
-def4a
-de2fa.
-2d1eff
-def4l
-deg2
-degene3
-de3gl
-deh2a
-dehas3
-dehe2
-3dehn
-de3ho
-2d1ehr
-d1ei
-3d2e4ic
-de3i2den
-de3il
-3d2eim
-4deime
-dein2d
-d2einfr
-4deinr
-d2e3inse
-de3inst
-dein4sta
-dein4sti
-4d3einw
-de3io
-2deise
-d4e1ism
-dei4sp
-2dekz
-de2l1ac
-de3lak
-dela4t
-del3ate
-de2l3aug
-del3änd
-del3b2
-del3d
-del1ec
-3de3leg
-delei2g
-2delek
-2delem
-de2len
-deler2
-deler4r
-2delf.
-2delfm
-3delik
-della3d
-del4lan
-del2lar
-dell3auf
-del2l1ä
-dell3eb
-del2lei
-del2ler
-del2lö2
-de2l1ob
-de2lop
-del2se
-del2so
-del2s3p
-del3t
-dem2ar
-2d1emb
-dement2
-de4mentg
-dem3ents
-demi2e
-2d1emot
-2d1emp
-d2emu
-d4en.
-de2n1e2d
-de4n3end
-de2nep
-2denerg
-de3n2es
-d3en2ge.
-de2ni
-denk3li
-dens2am
-den4scho
-2den2sem
-den2ser
-dens3tau
-den4s3tie
-2dentd
-2dentf
-2dentg
-den3th
-2dentn
-2dentw
-2dentz
-den4zerf
-den4zers
-de2ob
-2deol
-dep4l
-2depoc
-d4er.
-dera2b
-der3af
-de2rak
-dera2n
-de3rand
-de2r3ap
-de3r2ass
-der2bl
-2d1erbs
-2derdb
-de2r1e2b
-de2reck
-der3eis
-3d4erem
-d4eren
-de2r3end
-3d4erer
-der2erf
-der3erl
-derer3n
-der3ero
-derer2t
-3d4eres
-der3ess
-de2r1eu
-derf4
-d4erfl
-d3erheb
-d2erhü
-de5ric
-de2r3id
-de4rinnu
-derin4teg
-der3k2
-d3erken
-2derklä
-3d4erlan
-d2erm
-de4rn
-de1ro
-derö4
-der3r
-de4rs
-der3san
-2dersat
-derst2
-der3stau
-dert5ende.
-derter4e
-dert4ra
-4der4trag
-3de3ru
-de4ruh
-de4rum
-2d1erz.
-d3erzeu
-2d1erzv
-d2es.
-de2sa
-de4sa2g
-des1ah
-de4sam
-des3an
-de2s1än
-de2seb
-de2se2h
-de2sei
-2d1esel
-des3elt
-de3sem
-de3s2end
-desen3e
-de3sens
-de2set
-de2sin
-3desk
-de2s1o
-de2s3p
-de3spe
-de3spru
-dess2
-des3sau
-des5st
-dest3alt
-de4stant
-de4statt
-de6steige
-de4steins
-de4sterg
-des6tex
-de4stit
-dest3rat
-de2stre
-de2su
-des1un
-3desw
-de3ta
-deten2t
-2d1e2th
-2d1etw
-2d1eul
-deum3
-de1un
-de1url
-de3us
-2d1e2vid
-devil2
-de1x4a
-de2xer
-de2xis
-2dexpe
-2dexpo
-2df2
-df4la
-df4ru
-df4rü
-2dg2
-dga4s3tr
-d2ge.
-dger2
-dge3s
-d2gesh
-dge4t3a
-dge4t1e
-2d1h2
-d3hu
-di4aa
-di4ab
-di4ad
-di4ae
-di4af
-di4ag
-di4aj
-di4ak
-di4ale
-di4am
-di4ao
-di4ap
-dia3s
-di4at4
-di5at.
-di4au
-di4av
-di4az
-di3äre
-3dic
-di1ce
-di3chl
-dich3t4er
-dick3el
-4d3i2co
-3dida
-d1ide
-2didee
-di2den
-2didy
-di2e
-di3e4d
-di3en.
-di3end
-die2neb
-diener4l
-di3e2ni
-dienst3r
-die2p
-di3ers.
-dies3c
-di3e4th
-3dif
-di4ff
-di4gk
-dig4n
-dik2a
-dil2s3
-2d1imb
-2dimp
-din4a
-2d1ind
-di3n2e
-2d1inf
-di4ng
-2d1inh
-di3ni
-2d1inj
-2d1ink
-di4nn
-2d1ins
-2d3int
-2d1inv
-di2o3b
-di2odi
-di4ok
-dion3in
-dion5s4
-di3ora
-d4ios2
-di2osk
-dip2
-di3pt
-d1i2ra
-di4re.
-di2ren
-di5rig
-di2rin
-di2ris
-2d1irl
-2d1irr
-di4s1a2
-2d1iso
-di2sp
-di3s4per
-2d1isr
-dist2
-di2s3to
-di2s3tra
-di4sz
-di2ta
-dite1c
-di2t3erl
-di4t3erm
-di2t3ers
-di3the
-di2tin
-di2tob
-di2t3r
-dit3s
-di2t1u
-di5vid
-diz2
-2dj
-d2jar
-2dk2
-d3kl
-dk4le
-dk4na
-dk4ne
-2d1l2
-dlap4
-d3le
-dle2ra
-dl3f
-dli4f
-dl3m
-dl3s
-2dm2
-d3ma
-d3me
-2d1n2
-d3na
-d3ne
-dni2
-dni3g
-dnis1
-dnis3t
-dni3v
-d3nu
-do3a
-doa4k
-2d1ob
-3d2oba
-do5ba.
-d2obo
-do1chi
-d1of
-do4fe
-2d1oh
-do3ha
-dol3l2
-d3oly
-3dom
-do4mal
-do4mar
-domen1
-do4ming
-4domn
-do4mu
-do3n2a
-do5nan
-doni1
-4dony
-do2o
-do3op
-2dope
-2d1opf
-do1r4a
-2d1orc
-2d1ord
-dor2f1a
-dor2fä
-dor2f1i
-dor2fl
-dor2fo
-dor2fr
-dor4f3u
-2d1org
-d2orn
-2d3orna
-2d1ort
-dor2ta
-dor2t3ei
-dor2ter
-dor2tr
-d2os.
-do3se
-dos2k
-2dosm
-dost1
-d1ost.
-dost3a
-dosten2
-do3ta
-do3th
-do2tof
-do3un
-dow2s3
-d2o1x2
-d1ö
-dö2d
-dö4fe
-döl3
-dölla3
-d2ön
-3d2ör
-dö2s1c
-2dp2
-dpass1
-dpas2se
-dpas3ses
-d3pf
-d3po
-dpol4n
-dpo4st1
-d3ps
-2dq
-d2r2
-3d4ra.
-3d4rab
-4d3rad
-2drahm
-2d3rak
-3d4ral
-d4rama
-d3ramm
-d3ramp
-d3rand
-dran3k
-dra4s3s
-2d3rast
-dr4at
-dra4tin
-2draub
-2d3rauc
-d4rauf
-2draum
-2draup
-2dräd
-d4räh
-2d3rät
-2d3räu
-4dre.
-2d3rea
-d4rea.
-d4reas
-3d4reck
-2d3ref
-4dreg
-3d4reh
-dre2ha
-dr4ei
-2d3reic
-3d4rei3e
-drei3s
-d4reiv
-d4rej
-4drem
-4d3ren
-d4reo
-4d3rep
-4d3rer
-4dres.
-d4resc
-dres4sei
-dres4ser4
-dres2st
-d4rew
-2drez
-2d3rh
-d3ri
-3d4ri.
-d4ria
-d4rib
-4dric
-d4rid
-d4rie
-d5rieg
-3d4rif
-4d5riff
-d4rik
-d4ril
-d4rin.
-4d5rind
-2drip
-d4risc
-2drisi
-2driss
-2driß
-d4rit
-2d5ritu
-d4rix
-2d3rob
-d3rod
-2drogg
-2drohr
-3d4rohu
-dro2id.
-2d3roll
-2d3rose
-d4ross
-2d3rost
-2d3rot
-2d3rou
-2d3rov
-d3row
-drö2sc
-3d4ruc
-2d3rud
-2d3ruh
-dr4un
-2d3rut
-drü3b
-3d4rüs
-2ds
-ds3a2b
-d2s1ad
-ds1al
-d2salk
-d2sall
-d4s1amt
-d2san
-ds3ane
-ds3assi
-d2saut
-ds1än
-ds2äu
-d2schef
-d2schin
-d2schun
-d3s2co
-d2scr
-d2s1e2b
-dse2e
-d2s1ef
-ds1ehr
-ds2eign
-d2sein
-d2s1emb
-dsen3er
-d2s1eng
-dsen3s
-d2s1ent
-d2s1erf
-d2s1erh
-d2s1erk
-d2s1erl
-ds1err
-d2s1ers
-d2s1ert
-d2serz
-dse4t
-d2s1eta
-d2s1ev
-d2sex
-d3sha4
-d4shal
-d3sho
-d4shor
-d2sid
-d2s1im
-d3s2inf
-d3s2kal
-d3s2kel
-d4sli
-d3soh
-d2sop
-dso2r
-ds1ori
-d2sö
-dspa4s3
-d2spat
-d2spä
-d2speri
-d2s3ph
-ds2por
-d4sporto
-d3spri
-d2spro
-d3spru
-ds2pu
-dst2
-d2s3tas
-ds3tauf
-d2s3täti
-d4stea
-d4stele
-ds3th
-ds4til
-d2s3tis
-d2stoch
-d2stod
-ds3tor
-d3strei
-d3s4tro
-dsu2m
-d2sun
-ds1url
-ds2zen
-2dt
-dta2be
-d3t2ac
-dta2d
-dt2ag
-dta2n
-dt3ane
-d3t2as
-dt2ax
-dt2et
-d2th
-d4thei
-d3to2
-d4tob
-dt2op
-d3tö
-d4tök
-dt3r
-dtran2
-dts2
-dt3sa
-dtt4r
-dt2un
-d3t2ur
-d3ty
-dua2ler
-du1all
-du1alv
-du1ar
-du2b3li
-du1ce
-duel3la
-2d1u4fe
-duf2ter
-duf2to
-duf2tr
-d3u2g
-2d1uh
-du1i
-du2in
-du2kr
-dul3art
-2d1umb
-2dumd
-2d1u2m1e
-2dumf
-2dumg
-4d3umk
-2duml
-d2ump
-2dumr
-2d1ums
-d2ums.
-2d1umv
-du2n
-2d3und
-2d1unf
-d1unga
-2dungl
-2d1uni
-dun3ke
-dun2kl
-2dunr
-2dunsi
-dun2st3r
-2dunt
-2dunw
-2d3unz
-du1os
-dur2c
-durch3
-2d1urk
-2d1url
-2d1urn
-2d1ursa
-2d1urt
-du2schn
-du2schr
-du2sch3w
-dus4t
-2düb
-d3über
-dü2str
-2dv2
-2dw
-dwa2
-dwer3te
-dwe2s
-dwe4st1
-dy2le
-dym3
-3dyn
-dy2s3
-dys1c
-dy4sl
-2dz2
-d3zw
-dz4we
-2e1a
-ea2be
-ea2b3l
-ea4br
-eadli4
-e3a2dr
-ea2g
-ea3ga2
-ea3g4l
-ea4ka
-eakt2
-e2akta
-ea2la
-e3alei
-e4alem
-ea2l3ent
-ealen2z
-ealer2
-e3a2lerg
-e3alex
-e3a2lin
-eal5le
-eal3lö
-eallö3s
-e3al1o
-ea2lon
-ea2lop
-e2alti2
-eal3tr
-ea2l3u2
-ea4m3a
-e2ame
-ea4m1o
-eam3t2
-e3anf
-e2ano
-e3ar.
-ea2ra
-ea3rat
-e2are
-e4are.
-ea2r1ei
-ea2rene
-e4arer
-e4ares
-e4arn2
-ea2ro
-e3arz
-e2as
-e3as.
-e3a4sc
-easin4
-ea4sp
-eas3s
-eate2
-ea3te.
-ea3ten
-eat4mes
-eat2mu
-eat4mun
-ea4to
-eat3s
-e3at3t2
-e4atu2
-e3aue
-e3auf
-eau4fe
-eau4fl
-e4aufo
-e4auj
-eau3n
-eaus3s
-e2av
-e2az
-e1ä2
-e3äh
-eä4st
-2eba
-e3bak
-eba2p
-e3bän
-2ebec
-ebe1er
-ebein5h
-eb2el
-ebe2ler
-ebe2lo
-ebenen3
-ebe2ras
-ebert4
-ebese2
-ebe2s3eh
-ebe2so
-2ebet
-ebet4s
-2ebh
-2ebi
-2ebl
-eb2laß
-e3blä
-eb3le.
-eb3ler
-eb4leu
-e3blie
-eb3lo
-e3b2lö
-2ebo
-e2bob
-ebot2
-ebö2s
-2ebr
-eb5rah
-e3brau
-eb2s1
-eb4sche
-ebse2
-ebs3p
-eb4spanne
-eb3stan
-ebs3tau
-eb4stät
-ebs3t2h
-ebs3ti
-eb4s3tot
-eb3str
-ebs3treu
-eb4sz
-2ebu
-e2bunt
-ebus3s
-ebu2t3
-2eca
-2e1ce
-ech1am
-ech1ä
-2e1che
-ech1ei
-ech2en1
-echer4fa
-e4ch3erzi
-e1chi
-echi3e
-ech3l
-ech3m
-ech3n
-e2cho.
-ech3ö4
-ech3re
-e1chri
-ech3sel
-echs2er
-echst3re
-ech3tab
-ech3t2ei
-ech3ter
-ech4terh
-e1chu
-ech3w
-2echz
-e1ci
-ecke4n1
-eck3err
-ec4kl
-eck3ser
-2eckt
-3eckty
-2e1cl
-2eco
-2e3cr
-2ect
-ed2a
-ed2dr
-ed2e
-ede2al
-e3dee
-edel3l
-ede3n2er
-edens1
-eden4sa
-eden2se
-eden2sp
-eden4sta
-edeo2
-ed4e2r
-eder3a
-ede3rat
-ederer4
-eder3t2
-edhof4
-ed2i
-e3di.
-2edip
-edma3
-edmas2
-e3d2o
-ed2ö
-e3drei
-ed4rö
-ed2sal
-ed2seh
-ed2s1es
-ed2si
-ed2s1o
-ed2sp
-ed2sto
-ed2s3tr
-ed2s1u
-edun3
-edund2
-e3dy3
-edys4
-2ee
-ee3a2
-eeb2l
-ee3bs
-ee1c
-ee2ce
-ee2cho
-e1eck
-eede3
-eed3s2
-ee1e2
-e1eff
-eef4l
-ee3fo
-eeg2
-eeg4r
-e1ei
-ee2i3e
-eein2se
-eei4sc
-eei3se
-eeis3s
-e2ela
-eel2e
-e3e2lek
-eele4n
-eel2ö
-e2e3m2a
-eemas3s
-e1emb
-e1emp
-eena2g
-e1end
-een1e
-e2e3n2i
-ee3n2o4
-een3s
-e1ent
-e1en2z
-ee3o2
-eeo4l
-e2ep
-ee3po
-e1erbt
-e1erd
-ee3r2e2
-eer3ei
-ee4r3en2g
-eere4s5
-eer3eti
-e1ermä
-ee1ro
-ee1rö
-e1eröf
-eer2ös
-eer3sh
-eer3str
-ee3r2un
-e1erz
-ee3sh
-ee3sp
-ee5ste
-ees6tei
-e2et.
-ee3t2a
-ee4tat
-ee2th
-eet2i
-ee3t4r
-ee2tu
-ee1u
-eeu4f
-eewa4r
-eeweis4
-e1e2x
-e2f1ad
-e2f1a2g
-e3fah
-ef1ana
-ef1ar
-e2farc
-ef3arm
-e2fat
-ef1aus
-2efä
-ef2äl
-efä5sse
-e2fäu
-2efe
-e2f1e2b
-e3fef
-efe2l3ei
-ef1em
-e2femi
-efe2n1
-3e2f1ene
-e2fent
-efer3f
-eferin4d
-efeuil2
-ef2fä2
-3effek
-1effi
-ef2fl
-2efi
-ef1id
-e2f1ins
-efi2s
-2efl
-ef4le
-ef5le.
-e3f4lu
-e3f4lü
-2ef2o
-2efr
-ef4reih
-ef3rol
-ef3rom
-ef4ru
-ef4rü
-efs2
-ef3sc
-ef3so
-ef3sp
-efs4t
-ef2tan
-ef2tei
-ef2tro
-2efu
-2efü
-ega4m
-e3g2anz
-e3ge
-eg1eil
-egein3
-ege2lan
-ege2l3au
-ege4l5ei4er
-ege2ler
-ege2lo
-eg2en
-ege4n1a2
-egene3ra
-ege4nero
-egenma6s
-egen3z
-eg2er
-ege2ra
-ege3stal
-ege2s3to
-ege2s3tr
-ege1u
-e4gex
-2egi
-e3gio
-2egl
-e2glo
-e2glu
-egmen4ta
-e2gn
-eg3nä
-eg3ni
-ego3p
-egori2e
-egro3sse
-egs2ag
-eg4sal
-egsau3g
-eg3se
-eg4sei
-egs2e3l
-egs3er
-eg3si
-eg4sk
-eg4sm
-egs2of
-egs4pe
-eg4ss
-egst2
-eg4sto
-eg2th
-eg5ver
-2e1ha
-eh1ach
-eh1ad
-eh2ade
-e3h2ah
-eh2al
-ehalt2s
-e3hand
-e2harz
-e3haut
-e1hä
-ehäs3
-e1he
-eh1eff
-eh1ein
-e3helf
-eh1elt
-e2hense
-e2h3ente
-ehen2tr
-ehe3o
-1e2hep
-2eher
-ehe1ra
-e2h1er2f
-e2h1er2l
-2e1hi
-eh3im
-ehis4
-eh1lam
-eh2l3au
-eh1lä
-ehl3ein
-eh2lent
-eh5l2er
-ehlo2
-ehl1or
-eh2lö
-ehl2se
-ehl4sl
-2ehm
-eh4mant
-eh3mu
-eh3na
-eh3no
-2e1ho
-eho4f
-eho2l
-eh3oly
-2e3hö
-ehö2rer
-eh2r1a4
-ehr1ä
-ehr1ec
-eh2rei
-eh2rel
-ehr4ern
-ehre3s
-eh4rin
-eh1roc
-ehr1of
-eh1rö
-eh2s2
-eh3sa
-eh3se
-eh3sh
-eh3si
-eh3sk
-eh3so
-eh3s4p
-eh3sta
-eh3sto
-eh3str
-2eh3t2
-eht3h
-eht4r
-eh4ts
-2e1hu
-e2hum
-eh1unf
-e2huni
-e1hü
-eh3üb
-eh3w
-e1hy
-2ei3a2
-eia4t
-ei2bar
-ei2bli
-ei4blu
-eibu2t
-ei2b3ute
-ei1ce
-ei2cho
-e2id
-ei2d1a
-ei4db
-ei4dl
-2eidn
-ei3dr
-ei1e
-eie2b
-eie2d
-ei3e2l
-eie2m
-4ei3e2n1
-eienge4
-eie2t
-4eif.
-ei3flo
-1eifr
-eif3t
-2eig.
-2eiga
-eig2ar
-2eigä
-2eige.
-2eigeb
-2eigeh
-2eigeno
-3eigensc
-4eig2er
-2eiges
-2eigew
-2eigi
-1ei2g3n
-ei2go
-ei2g3rat
-2eigre
-2eigrö
-2eigru
-2eigrü
-2eigs4
-2eigt
-2eigu
-2eih
-ei2hum
-ei2kab
-ei2kak
-eik4am
-eik2ar
-eik2i
-eik2l
-ei3k4la
-ei3klä
-eik2o
-e2il
-4eil.
-ei4l3ab
-ei2lam
-eila2n
-ei2l3ane
-ei2lang
-ei2lant
-ei2l3anz
-ei2lar
-2eilb
-eil3d4
-ei2lein
-eile2n1
-ei2let
-eil3f4
-eilm2
-ei2lob
-eil2ö
-2eim.
-ei2m1a2g
-eim3all
-eim3alp
-eima4to
-ei2m1or
-2eimö
-2eimp
-eim2p4l
-eim3sa
-ei2mur
-e4i2n1a
-ei4na2d
-ei4nae
-ei4n3an
-ei4na4s
-ei4n3at
-ei2n1ä
-einbus2
-ein3d2e
-ein4derk
-e1indu
-2eineb
-einen2e
-ei4n3en2g
-einen2s
-ei4nen4se
-ein3erbe
-ei2nerf
-ei2nerk
-ein3er4la
-ei4ness
-ei2neu
-ein4fiz
-3einflus
-3einfluß
-2einfo
-ein4fo.
-ein4fos
-ein3g2
-3einger
-ei4nh
-ein2hab
-e2inhä
-ei2nie
-e1in2it
-ein3k4
-ein4karn
-3einkä
-e2inl
-ein3n2
-ei2n1o4
-1einri
-e4insa
-einsas2
-einsa5sse
-3einsat
-e2insc
-3einschä
-ein4stal
-ein2teg
-ein4terv
-3eintop
-3eintö
-3einträ
-1einu
-ein3zw
-ei3o
-eio2s
-ei3p
-eip2f
-ei4pp
-ei4pz
-2eir
-eir2c
-ei3re
-e1irr
-e4is.
-ei2sa
-ei3sas
-ei4sau
-ei2ser2g
-ei2s3er2l
-ei4s3erst
-ei2s3erw
-1eisho
-ei3s2ky
-ei4sl
-ei2so
-eis4pe
-ei3spru
-e2i3s2s
-eist4e
-eis3tras3
-ei2sum
-ei2sur
-1eiswo
-e2it
-ei2t1a2b
-ei2tal
-ei2t1an
-ei2tap
-ei2tar
-ei4tat
-2eitä
-ei2tän
-ei2teli
-eite4ra
-eit1h
-ei2tin
-ei2trau
-ei2tro
-eit4sag
-eit3t4
-ei2t1um
-ei2t1ur
-eit3z4
-eiv2
-eive4
-ei2zar
-ei2z1in
-2ej
-e3ju
-2ek.
-2e3k2a
-1ekd
-ek2e
-e3ke.
-e3ke4n
-eker3z
-e3kes
-e3key
-e3ki
-e3k2l
-ek4lo
-ek4na
-ek4ne
-ek4ni
-ek4nu
-2e3k2o
-ekor2da
-2e3kr
-ek4s3p
-2ekt
-ek4tank
-ek3t4ante
-ek2t3at
-ek2t1ä
-ek2te2l
-ek2tep
-ekt3erf
-ekt3erk
-ek2t3er2z
-ekt2o
-ek2t3o4b
-ekts2
-2e3ku
-ekur2a
-e3k2w
-1ekz
-e1la
-el2abt
-el3abu
-e2l1af
-ela4h
-e2l1ak
-el3al
-e2l1a4m
-e4lame
-el2a5mi
-el1ana
-e4landa
-el1ank
-e2lanm
-e4lans
-e2l1ant
-e4lanw
-el1anz
-2elao
-e2l1ap
-e2l1ar
-el3a2ri
-el1a4si
-el1asp
-2e1lä
-e3läd
-2elbil
-2elbr
-2eld
-elda2r
-eld3ari
-eld2arm
-el2d3erf
-el2d3erl
-el3dern
-elder2s
-eld3erst
-el3des
-elds2
-4e3le.
-2e3lea
-elea2r
-2eleb
-ele2c
-el1ech
-1elefa
-4eleh
-el3ehe.
-2elei
-e4l3ei4ern
-e2l1ein
-e3leine
-e3leit
-el1eiw
-1elek
-2eleko
-e2l1el
-ele3ler
-1e2lem
-2e3lem.
-e3lema
-el1emb
-el1e2mi
-e3lemm
-2el1emp
-2e3len.
-elen2k3l
-e2lense
-e2l1ent
-e3lep
-4eler
-e3ler.
-eler2a
-el1erd
-el1erf
-e2ler2fa
-e2lerfi
-e2lerg
-el1erh
-e2l1erk
-e2l1erl
-eler2la
-e2l3ernä
-eler2ö
-e2l1err
-el3eru
-el1erw
-e2l1ess
-e2l1e4ta
-el2eth
-ele2ti
-elet4ta
-el1e2x
-e3lex.
-1elf.
-elf2er
-1elfm
-elf4r
-1elft
-elgi3
-el3g2l
-elg4r
-e2l1id
-2e3lie
-elif3
-2elig
-e2lim
-elin3a
-el3inka
-eli3no
-el1ins
-4elis
-2elk
-elks4
-ella3den
-el2lant
-el2lap
-el2larb
-ellar2t
-ella2s
-ell2ei
-ell3ein
-el4lel
-ell2er
-eller4fas
-eller5g
-ell3erh
-el3lie
-el2lil
-1ellip
-el2lo2g
-el2lor
-el2lot
-ell2ö
-el4ls
-ell3sp
-ellu2m
-el2lü
-elm2e
-elm3ein
-el3na
-2elo
-e2l3oa
-e2lof
-elo4fe
-e2lol
-e2lom
-e2lonk
-el1opf
-e2l1or
-e3lore
-elo2ri
-e3lot
-e3l2ov
-2elö
-el3p2
-el2s3ein
-el3sent
-el2stor
-el2sum
-el3tar
-el3te.
-elte4m
-el5ten.
-el4t3ent
-elter4b
-elter2f
-elt3erh
-elter2k
-elter4le
-3elter4n
-elter2s
-el3test
-elt3eth
-el3the
-elt1r
-el4ts
-elt3se
-2e1lu
-el1uf
-e2l1um
-e2l3u2r
-el3use
-elu2t
-el3ute
-el3uto
-e1lü
-2ely
-e2lya
-el2zar
-el2zene
-elz1in
-em3a2b
-em4ak
-e2m3alar
-e2m1alk
-em3anf
-e2m1ano
-e2m1ans
-1emanz
-e2m3a4sp
-emas2s
-ema3sse
-e3maß
-em1au
-2e3mä
-em2äh
-1embo
-1embry
-em2dä
-emd1r
-em2dra
-2eme
-e2m1e2b
-e2mef
-eme2i
-e2mele
-em2en
-emen4gel
-emen2t3h
-e4mentsp
-eme3r2i
-e2m1er2l
-em1erw
-3e2meti
-e2m1i2d
-emi2ei
-e2mig
-emik2
-em1im
-2emin
-emi3n2a
-e3mind
-em1int
-1e2mir
-4emisc
-emma3u
-em2mec
-e2mof
-emo3s
-1empf4
-3empfä
-em3pfl
-em3po
-em2sa
-em2scha
-em2sim
-em2spr
-em2s3tr
-em3t2
-1e2mul
-3emuls
-emune3
-e3mur
-e3mus
-2emü
-emü3s2
-e2na
-4ena.
-e4na2b
-en3aba
-en3abo
-4enac
-en3ache
-e4n1ack
-enadi4
-e4naf
-4enah
-en3ak
-ena4ke
-en1al
-e4nalb
-e3nale
-ena3l2i
-e4nalk
-e4nalm
-e4nalo
-enal3p
-4en1am
-ena4n
-e4nand
-en3ane
-e4nant
-e4nanz
-en1ap
-ena2pa
-en3are
-en3ark
-4enarm
-en3aro
-en1as
-ena4sc
-e4na4st
-2enat
-4e5nati
-e4natl
-enat4s
-e4n3att
-4enatu
-e4nau4f
-en3aug
-e5naui
-e4n3aur
-e4nausta
-e4naut
-e4n1ax
-en1a4z
-en1ä
-en3äb
-en4äc
-e2när
-en2ä3s
-en3äst
-enbu4s3
-en2ce.
-end2ac
-en2dal
-en2dang
-4endef
-2endel
-ende2lä
-endermas4
-en2d3es2s
-en2dex
-en2did
-en3d2ort
-en2dost
-end3rom
-en3drü
-end3s2l
-end3s2p
-end3sz
-en3d2um
-en3d2ü
-2ene.
-en3e2ben
-en1ec
-e2neff
-ene3hen
-en2eid
-e3neien
-e4neige
-e4nein
-e4neis
-e2n1el
-ene4le
-2ene2m
-e2n1emi
-2enen
-e4n1ent
-en3envi
-en1ep
-4e3ner.
-e2n1erd
-e2nerf
-en2erfr
-1energ
-3energi
-e2nerh
-e2nerk
-e2n1erl
-e2nermi
-e2n3ermo
-4enern
-e2n3erne
-ene2ro
-e2n1erp
-e2n1err
-en1ers
-4eners.
-e2n1ert
-en2ert.
-e2n3eru
-e2n1erw
-2enes
-e3nes.
-e2n1e4sc
-e2n1esk
-e2n1ess
-en1eta
-e2n1eth
-en1eul
-e2n1e2v
-e4ne2x
-en3f
-en4fb
-en4ff
-en4fg
-en4fh
-en4fk
-en4fm
-en4fp
-en4fs
-en4ft
-enf2u
-en4fw
-en4fz
-1engad
-1engag
-eng2al
-en3geb
-enge3r2a
-eng2i
-en3gn
-en3g2o
-1engp
-eng4ra
-eng3se
-e3ni.
-2e3nic
-2e3nie
-eni3er.
-eni3era
-eni3erp
-eni3ers.
-en3i2ko
-en3ill
-eni4m
-en1ima
-en1imi
-e2n1in
-en3inh
-e3nio
-en3ion
-e2nir
-2enis
-eni4sa
-e4n3iso
-e3nit2
-e3niv
-enk3aus
-3enkeli
-enk3erg
-en2k3erk
-en3k2ü
-en5mil
-en2nef
-en2nel
-enner2e
-en2ner2f
-enn3erg
-enn2i
-enni4ger
-2enniv
-e2n3oa
-e2n1ob
-e3nobel
-eno2br
-e2nof
-e2noh
-en3oli
-en3olm
-eno4ma
-eno4n
-e2n1op
-e2n1o2r
-en2ora
-eno4ri
-4enorm
-eno2s
-e2n1o4st
-4e3not
-eno2w
-e1nö
-en1ö2d
-e4nöf
-e4nök
-e4nöl
-4enred
-en3sabb
-en3sac
-en2san
-ensas2
-ensa3sse
-en3sche
-en2seb
-ense2e
-1ensem
-en2sen3e
-en3s4pen
-en3spo
-ens2por
-4enst.
-enst3alt
-ens6tel
-en4stele
-en4s3test
-4enstl
-2ensto
-enst2ü
-en2sun
-2entab
-en2tad
-2entaf
-en5t2ag
-en2tanm
-en2tanw
-en3tar
-ent2ark
-1entd
-en3t2el
-ente2n
-3entera
-en2t3erb
-en3tes
-1entf
-2entfo
-1entg
-3entgeg
-en2thi
-1enthu
-1enthü
-en2t3id
-3entla
-1entn
-en2tob
-entopf3
-en2t1os
-2entö
-en4ts
-1entsc
-1entso
-2entss
-ent2sto
-1en4tw
-4entwet
-3entwic
-1entz
-en1u
-e2nuf
-e2num
-enu2t
-e4nuto
-e1nü
-4enwü
-e1ny2
-en3zare
-en2zene
-enz3erf
-enz3erg
-enz3erk
-enzer2l
-enz3erm
-enz3ersc
-enzi2d
-enzlan2
-enzo2l
-en4zs
-4enzuf
-1enzy
-2eo
-eo3a
-e1o2b1
-eo3ben
-eo3bl
-eo3bo
-eo3br
-eo1c
-eoch2
-e1of
-eo3g2
-e1oh
-eo3la
-e3o2ly
-e1on
-e3o2nat
-eon2i
-eo1o
-eo2pe
-e1opf
-e4oph
-eop4r
-e1or
-e3or.
-eo1ra
-e3orb
-e3o4r3ei
-eorgi1
-e3ors
-eort4
-e3orw
-eos2
-e3os.
-eo3se
-e1o4ste
-e1ou2
-eo1ul
-e1ö2
-eö4fe
-e3ös
-2ep2a
-epa2g
-epas4ser
-2epeg
-2eper
-e3p2f
-ep4fl
-eph2
-2epia
-e2pid
-e4pig
-e2pik
-e4pile
-e3pio
-e4pip
-1epis
-2epist
-1e2pit
-ep3le
-ep4lu
-1epoc
-eport4
-epor3te
-1e2pos.
-ep4pa
-eppe3l
-ep2pin
-ep4pl
-ep2pr
-2epr
-ep4rä
-ep3sh
-ep2tal
-ep2tau
-ep2tä
-2e3pu
-epu2s
-2eq
-e3qu
-er1a
-e3ra.
-era2c
-e2r3ach
-e3rad.
-e3ra3di
-e2radj
-e2r3adm
-e4radmi
-e4r3adr
-eraf4a
-era2g
-era3ges
-e1rah
-e1rai
-er3aic
-e3rake
-era4ku
-e1rald
-eral2eb
-er3alke
-e2r3all
-era4mat
-er2an.
-era4n4a
-eran3d4
-e3rand.
-e2rangr
-e2ranh
-e2rano
-e1rap
-er3apa
-er3apf
-er3apo
-e2rar
-er3are
-e3rari
-era2rie
-e3ras.
-era2si
-era4sie
-era4sp
-era4s3s
-era2ß
-era3te.
-e2ratel
-e3rativ
-e1raub
-e1rauc
-er3aue
-erau4f
-er3aug
-e2ra2v
-e1raw
-e2r3ax
-e1raz
-e1rä
-er1äf
-er1äh
-er1ä4m
-er1äp
-e2r1ä4s
-er1ätz
-3erbarm
-erb2au
-erb2e
-er3blo
-2erbru
-erb2sp
-er1c
-erche3i
-er3chl
-erch2o
-erd2am
-erda5me
-1erdb
-2erdec
-er2d3en2g
-erd3erw
-erdeu2
-1erdg
-erd5rin
-2erdy
-4ere.
-er3e2ben
-e3r2ech
-er3echs
-er1eck
-er1edi
-ere2dit
-er1eff
-e2r1e2h
-ere3ho
-4e3rei.
-e3reib
-1er1eig
-er3eime
-e4reink
-er3eis.
-er3eisar
-er3eisb
-er3eisf
-er3eisr
-erei3str
-er3eisv
-e4rek
-er1e2l
-e2rele
-ere3lev
-2erem
-4erem.
-er1emi
-ere2mis
-e2remp
-2eren
-4e3ren.
-e3rena
-eren1e
-e2rense
-e2rentn
-e4r3ents
-e3renz
-eren4z5en4d
-er4eo
-er1epe
-4erer.
-2ererb
-e2r1erd
-e4rerfo
-e2rerh
-e2rerk
-e2rer2l
-erer3lau
-e2rerm
-2erern.
-e2rerne
-e2rer2o
-erer2ri
-er1ers
-2erers.
-e4rersche
-e2rert
-2ererv
-2ererw
-e4r3erze
-2eres
-4eres.
-er1ess
-er1eß
-er1eta
-eretri3
-er1eul
-ere3un
-ere2vid
-erf2e
-2erfir
-4erform
-erf4r
-4erfür
-er2g3are
-4ergebi
-3ergebn
-4ergebü
-2ergeha
-2ergehä
-erg3elst
-2ergeni
-2ergn
-er2gop
-4ergrem
-erg3s2o
-ergs4p
-e2rh
-1erhab
-er3hag
-2erhai
-2erhals
-2erham
-2erhas
-er3hei
-2erher
-4erhöc
-er3hu
-2eri
-e2riat
-e3rib
-4e3ric
-e4r3ico
-er1id
-4e3rie
-erien1
-eri3enb
-erie2ne
-erien5s
-e4rij
-e3rik
-eri3k4l
-4erin.
-e2r1ind
-erin2fo
-e2r1in2i
-er1in3k
-er1inl
-er1int
-er1inz
-e2ri2on
-e4rir
-4eris
-e2riso
-e2risr
-er1ita
-3eritr
-e3riv
-2erk.
-2erkaj
-er3ker
-er3kla
-1erklä
-2erkm
-erk3t4
-er2kum
-2erl.
-2erlag
-3erlebn
-2erln
-erm2
-er3ma
-1ermah
-er3men
-ermen2s
-erm3ers
-er2nalg
-er2n3alt
-er2nau
-er4nene
-er2nerf
-er2nerk
-3erneue
-er2nob
-erno2r
-ern1os
-2e1ro.
-e1roa
-er1ob
-ero2bl
-ero2br
-er1of
-e1rog
-e1roh
-e1rok
-e1rol
-er3oly
-e1rom
-er3omb
-2e3ron
-e2r1oo
-er1op
-2e4ro4r
-eror2a
-e1ros
-1erosi
-e3rosit
-e1rou
-e2r1o2v
-e1row
-er1ox
-er1oz
-erö2d
-2eröh
-erö4l
-er1ö2s
-er3pl
-3erprobu
-er3rä
-er5regi
-4erren
-ers2a
-er5sam
-ers4ana
-ersch4
-er3schm
-er3schn
-ers2el
-er3s2i
-er3sk
-ersma3s2
-ers4por
-er3stä
-er4st3ers
-2erstil
-er3swi
-er3sz
-er2t1ab
-4erteig
-er2t3erf
-er2t3er2g
-er2ter2h
-er2ter2k
-er2ters
-ert1h
-er2tho
-4ertö
-er3trau
-4ertru
-er4ts
-ert3s2e
-ert3s2p
-2eru
-eruf4s3
-e4r3uhr
-er1u2m1
-er1und
-e4rundu
-er1up.
-e4r3ur
-eru2t
-er3ute
-e2r3uz
-erü4b
-3erweck
-6erweib
-es3ab
-es2abb
-e4sabe
-e3sac
-es1a2d
-e3saf
-e4sall
-es1ami
-es2an
-es4and
-es3ant
-esa2ra
-e3sas2
-esa3ss
-esa5sse
-es2ast
-e3satz
-esa2v
-es1ax
-esäs4
-es2äu
-2es3b
-esbi3er.
-e3s2ce
-esch2l
-esch2n
-e4sco
-e3se.
-e2s1ec
-es1ehr
-esein2s
-es4ek
-es2el
-ese3lam
-ese4nal
-ese2neu
-e3s2enk
-esen3o
-es2ens
-esen3sk
-esen3th
-ese4r1u4
-eses2k
-es3e2x
-2esf
-2esh
-es3ha
-es4ham
-es4har
-es3he
-2esi
-esi1er
-e4s3i2k
-e2s1il
-e4s3ins
-e4siso
-e4sk.
-es2kat
-e4skä
-e4s3ke
-e4s3kl
-e4skö
-e4s3ky
-es3l
-2esm
-e2s3oa
-e4sob
-es1od
-eso4f
-e3s2oh
-e3sol
-esonan2
-eso2r
-es1ora
-eso3re
-es2ort
-e3sot
-e3s2ö
-2es2p
-e3s4pal
-es4park
-es4paß
-es4pec
-e4spers
-e2s3ph
-e3s4por
-es4pru
-e3spu
-2esr
-2e4ss.
-e4ssa
-es4s1a2g
-essali3
-essau2s
-1essay
-e4ssb
-e4ssel
-e4ssent
-ess2ere
-ess2erf
-e4ss3er2g
-e4sserl
-ess3er4la
-e4ssf
-e4ssg
-e4ssh
-e4ssj
-e4ssk
-e4ssl
-e4ssm
-e4ssn
-2e4sso
-es2sof
-es2sorg
-e4ssö
-e4ssp
-es2s3pa
-e4ssr
-e4sss
-e4sst
-es4ste
-e4ssü
-e4ssv
-e4ssw
-e4ssz
-2est
-e4st.
-estab4b
-e2stabs
-esta3ge
-est1ak
-es4tan
-e2stant
-e2starb
-es4ta4s
-est3asc
-e3stat
-e2stat.
-e2staum
-es4te
-este2c
-este4i
-es5teil
-est3eing
-e4st3eink
-e4st3einl
-est3eint
-este2l
-e4stele
-e4st3emi
-e4st3eng
-e5stens
-est3entr
-e4sterei
-est3ergi
-est3erha
-e4ster2ö
-estes2
-e4st3ess
-e4stf
-e3sti
-e4stid
-e4stip
-e4stm
-estmo4de.
-3estn
-e2stod
-e2strad
-e3strec
-e3strick
-est3ums
-est3urk
-e3s4tü
-e3sty
-e3suh
-e2s1um
-es2und
-es1ur
-esu4s
-es4ut
-2esw
-e3sy
-e2ß1el
-e2ßent
-eß2e3r2e
-e2ß1erg
-e2ß1er2l
-e3ta.
-etab4
-et2a2c
-2e3taf
-2etal
-etal4li4n
-et1a4mi
-e5t4an.
-e3tas
-et2ast
-et4at
-etat3r
-et1äh
-2e3te
-ete2e
-e4t1ef
-e4t1ein
-ete3ke
-eten3d2
-ete2o
-eter1ä
-eter2hö
-eter2tr
-2eth.
-et2ha
-et3hal
-e3the
-et2hi
-e4thik
-3ethn
-et2hu
-e4t1i2d
-eti2m
-eti3na
-et1ini
-et2it
-eti2ta
-eti4th
-2eto
-e2t1o4f
-eto4n3al
-et1orc
-e2torg
-2etr
-et3rad
-e2traum
-et3rec
-e2t3res
-et4ros
-ets2c
-etscher5e
-etsch3w
-et2s3pe
-ett1a
-et2ta2b
-et2tad
-et2tak
-etta4m
-ett2as
-et2tau
-et2tä
-et4tei
-ette4n1
-et4th
-et4tö4
-et2t3r
-et2t1um
-et4tur
-et4tü4
-3e2tui
-e3tur
-etwa4r
-ety2l1
-1e2tym
-2etz
-etze4s5
-et2z3w
-eu1a2
-eu3b
-eub4r
-2euc
-euch4ta
-2eud
-eudi4e
-eu2eb
-eue2r3ei
-eueren2
-euerer4s
-euerer4t
-eu3eri
-euer2ri
-eu2esc
-2euf
-eu4fer
-eu2g1a
-euge2mi
-eu4gense
-eugin2
-eugin4f
-eu2ging
-eu2gre
-eu2gri
-eugs4
-eug3sp
-eu3h
-eu1id
-eu1in
-1eukal
-eu2kä
-eulan2
-euland3
-eul2e
-eul2i
-2e1um
-e3um.
-eu3m4a
-euma3s2
-e3umb
-e3umf
-e3uml
-e3um2s
-eum4s3p
-eum3st
-e3umw
-2eu2na
-eun2e
-eu4nei
-e3un2g
-eu2nio
-eu4nis
-eunk2
-eun3ka
-eu1o2
-eu3p
-e1up.
-eu4pd
-eup2f
-e3u4pg
-eu4r1an
-eu2r3ast
-eura3t
-eu2rau
-eur1c
-e2ure
-euren2
-eu2rens
-eur4er
-eurf4
-1euro
-eu4rs
-eur2so
-eus2
-e3usar
-eusch2o
-eu4sk
-eu3sp
-eu3s4s
-eust4
-eu5ted
-eu3tem
-eute3r2e
-eut2h
-1eu3tha
-eut2i
-eu3t2o
-euts4
-eut4schn
-eut4schr
-2eux
-eu1y
-eu2za
-euz3eic
-eu2zo
-eu2z3w
-e1ü
-e3üb
-e2vak
-e3var
-2ev2e
-eve5ri
-evie3le
-2e3vor
-ev2s
-ewä2s
-e2we.
-ewei4sc
-ewert2
-ewer3te
-ewi2s
-e3wit
-2ex.
-1exa4m
-ex3at
-2exc
-2exd
-e2xel
-ex1er
-2exes
-e1xi
-2exik
-e2xil
-e2x1in
-e3xio
-1exis
-ex3l
-1exp
-2expu
-2exs
-2ext.
-2ex2ta
-ex2tin
-1extr
-2extu
-2extv
-2exu
-e2xum
-2e1xy
-eyl2
-ey2n
-ey3no
-eys2
-e3z2a
-ez2ä
-e2z1enn
-e3zi
-ezi2s
-ez2o
-ez4wa
-ez4wi
-ezz2
-é1
-é2e
-égi2
-él2
-élu2
-ém2
-ér2
-éu2
-éz2
-è1
-2ët
-ê2t
-1f
-2f1abb
-fa2ben
-2fabf
-2fabg
-2f1a2bl
-2fabn
-f2abr
-2f1abs
-2fabw
-fa2cheb
-fa2chel
-fa2ch1i
-fa2cho
-fachs4
-fach3sp
-fa2ci
-fa2dan
-fa2del
-f4aden
-f1ader
-fa2di
-fa2dr
-fa3e
-fa4eli
-2faf
-fah4l3ent
-fai3b
-f1a4ka
-fa4ke
-f3aktio
-f4akto
-f2aku
-fa3l2a
-fa3le
-fal2kl
-fal2la
-falla2g
-fal3le.
-fal2lei
-fal4lenk
-fall3ent
-fal2ler
-fall3er4s
-falli4
-fal4lini
-fal2lis
-fal4scha
-fal4schei
-fal4schl
-fal3te
-fal4tei
-fal2tr
-3fam
-fa4mei
-4f1amp
-f1amt
-f2an.
-fa2nar
-2fanb
-fand2a
-f2anf
-fan2ga
-fan2gr
-2f1an3k
-2fanl
-4fann
-f1anp
-2fanr
-2fanw
-2f1an3z
-2f1a2p
-f2ar
-far2b1a
-far4bel
-far2b3er
-far2bin
-farb3l
-far2bo
-far4b3r
-far2b3u
-f3arc
-3fa3ri
-farm2e
-far2r1a
-farre2
-far2rec
-far4reg
-far2rh
-2f3art
-2f3arz
-3fas.
-fa3s4a
-fa3sh
-f1assi
-fas4t
-2f1a4str
-fa2ß
-f1aße
-f3at
-f4at.
-fa2to
-f4ats
-4fatt
-fau1
-2f1aue
-2f1auf
-f3aug
-fau2s
-f1ausb
-faus4t
-faust3r
-3fav
-fa2xa
-3fä1c
-fäh4rin
-fäh2ru
-f1älte
-2fäq
-3färb
-2f1ärm
-4f1ärz
-fä4ss
-fä6sser2
-fä2ßer
-2f1ätz
-2fäug
-2fäx
-2fb2
-fbau1
-fber2
-fb4re
-2f1c
-f3ch
-2fd2
-f3da
-fdien2e
-fd4ri
-fd4rö
-f3ds
-3fe.
-featu4
-f2ech
-fech5t2e
-fe2del
-fe2dr
-fe2e1i
-feein3
-fe1em
-4f1e2he
-fehle2
-feh2lei
-fei3le
-f2eind
-fe3infr
-2f1eing
-fe3ini
-fe3ins.
-2f1einw
-f1eis
-fek2tin
-fek2t3r
-fe2l3a2
-fe2l1ä
-fel2da
-felde4m
-feld2er
-fel2dr
-feld5ri
-2fe2lek
-fe2l1er
-fe2les
-fel3la
-fel4lan
-fel2lä
-fel3le.
-fel3les
-fe2l1o
-4fel4tern
-felt4r
-fel3tu
-f2em.
-2femb
-fem4m
-2femp
-3fen.
-fen3a2
-fe2nä
-fend2a
-4fenerg
-fene4t
-fe2ni
-fe2no
-fen3s2a
-fens4c
-fenst2
-fen4stri
-f1ent
-fen3t2a
-2f3entf
-f2enti
-2fentla
-f2ento
-2f3entw
-4f3entz
-fe2nu
-3fep
-fe4pi
-f2er.
-fe2r3a2d
-fer3al
-fe1ran
-fe2rang
-fer2ant
-fe2ranz
-fe2r1ä
-2ferd.
-fer3da
-fer3d2e1
-2ferde.
-2ferden
-fe2r1e2b
-fe2rec
-fer2ei
-4f3ereig
-fer3eis
-fer3ell
-fe3rerf
-fe2rer2g
-fer2fah
-fer2fol
-ferg4
-2fer2geb
-f4erges
-f4ergr
-feri2d
-ferie4n3
-feri4on
-fer2leb
-fer3m
-f2ern.
-fer4nei
-fe2rö
-f4erpa
-f4erpf
-f4erpl
-f4er5ra
-fer2reg
-ferri2
-f2ers.
-fers4t
-f2ert
-fert4r
-f2erz
-fer2zeu
-fes3s2e
-fes4t
-fe2sta
-fest3a2b
-fest3an
-fe4st3ei
-fes6tel
-fester2
-fe4stin
-fe2st1o
-fe2st3r
-2f1e2ta
-fe4tag
-3fete
-fe2th
-fet4t3a
-fetti3s
-2feu.
-feuer3ö
-3few
-2f1ex
-fe1y2
-3fez
-2ff
-f3fa.
-ffa2b
-ffa2ce
-ff1a2d
-f3fak
-f3fal
-ff1alt
-ff1ans
-ff3ar
-ff4arb
-ffa4s
-ffa2t
-ff1au
-ffa4z
-f2f1e2b
-f2f1ef
-f2f1ei
-ffe3in.
-ffel3l
-ff1e2m
-f2femi
-ff2en
-ff3erle
-ffer3z
-f2fetz
-ffi3k
-f2fil
-ffi4xi
-ff1lag
-ff3le
-ff3li
-ff5lon
-f3flü
-ffo2
-ff1ori
-ff1ox
-f2fö
-f3f4rä
-ff3ro
-ff4rü
-ffs2am
-ff3sch
-ff2s3p
-ffs3tie
-ffs3tut
-ff3stü
-ff3t2
-ffus5s
-2fg2
-fgeb2
-fge3s2
-f3gh
-fglim2
-f3gü
-2f1h2
-fh4eu
-f3hu
-fi4ak
-fi2ar
-fi1as
-fi3at
-fiden2
-fi2do
-f2i2e
-fi4eb
-fie1i
-fi1er2f
-fi4es
-2fif
-fi2g3r
-figs4
-fi2k1as
-fi2kel
-fi2kin
-fi2kn
-fi2k1o4
-fi4k3r
-f2il
-fi2l3an
-fil3d
-fi2les
-fil2et
-fi3li
-fi4lin
-fil2ip
-fil2ma
-fil2mä
-fil2med
-fil2mei
-fi2l1o
-2f1im
-fi4mi
-4f3imp
-3f2in2a
-fin2e
-2f1inf
-fing2
-fings4
-2f1inh
-fi3ni
-fin2sp
-4f1int
-4f1inv
-fi2o
-fi3ol
-fi2r
-fi3ra
-fi4re
-fir3me
-fi3s4a
-fi2sch3a
-fi4schei
-fisch3o
-fi2schr
-fi2sch3w
-fi3s2h
-2f1iso
-fis2p
-fite2
-fi2tin
-fit1o2
-fi2tor
-five4
-fi2xel
-fi2za
-2fj
-f2jo
-2fk2
-fka4t3
-fk4ne
-f2l2
-2fl.
-f3lad
-f5land
-f4lans
-f3lap
-f4lasc
-fl4at
-f3lat3s
-flauma2
-3flä
-f4läc
-4f3läd
-4fläh
-4f3län
-4flär
-4fläß
-4f3läu
-f3le.
-2f3leb
-f4lec
-f4lee
-2f5lein
-flek3
-flekt2
-f3ler
-f4lex
-f3li.
-3f4lim
-f3lind
-fli4ne
-f3ling
-2f3lins
-f4log
-2f3lon
-3f4lop
-flo5s4ses.
-3f4loß
-3f4lot
-flo2w
-f3lö
-4flöf
-f4lög
-f4löß
-f4löz
-3f4luc
-f3luf
-3f4lug
-3f4luss
-3f4luß
-f4lut
-flut1o
-f3lüm
-2fm2
-f3ma
-fma3che
-fma2d
-fmas2s
-fma3sse
-2f1n2
-f3na
-f3ne
-fnerz2
-f3ni
-fni2s
-f1ob
-fo2be
-4fober
-fob2l
-2f3of
-fo4fe
-foli3
-fo2na
-fo4nan
-fon3au
-fon3dr
-foni2e
-fo4n1in
-fo2nop
-fons4
-fo2nu
-f1o2p
-fo3po
-4f3org
-fo3rin
-for2m3a2g
-for2mas
-for2m3ei
-for2min
-forni5er.
-for2sta
-for2sti
-3fortb
-for2t3ei
-for2ter5
-for2th
-for2t3r
-fort3s2
-for3tu
-for2u
-fot4r
-2föf
-fö4fe
-2f1ök
-2f1öl
-2fp2
-f3pf
-f3pl
-fp4lu
-2fq
-f2r2
-f3ra.
-frach4tr
-2f3rad
-2f3rah
-fra4m
-fr4an
-f3rand
-f3rap
-f3rase
-f3rat
-3frau.
-f3rauc
-2fräd
-3f4rän
-2fre.
-f3rec
-f3red
-4fref
-f4rei.
-f3reic
-f4reie
-frei3f
-f4reig
-frei3k2
-4frein
-freis4
-2frek
-2f3rep
-f4req
-f3resi
-4frest
-3f4reu
-2f3ric
-fricht4e
-fri3d
-f4ri2e
-f5rieb
-f5rief
-2frig
-f4ri3k
-2f3rin
-f3rip
-fr4is
-f4risc
-f4rist
-fri4ster
-2f3roc
-f3rok
-2frol
-3f4ro2n
-fro4n1a
-f4ror
-f4ros
-fro2sc
-f3rot
-f3roz
-frös2
-f3ru
-f4ruc
-f3rü
-2fs
-f3sac
-f2s1al
-f2sa2n
-fs3ane
-f4s3ar
-f2s1a4s
-fsa2t
-fs3ate
-f2saut
-fs2än
-f2sca
-f2sce
-f2schan
-f2schef
-f4schro
-f2scr
-f2s1e2b
-fse2ei
-fs1ehr
-fse2n
-fs1en1e
-f2s1ent
-f2s1er
-fser2u
-fse4t
-f2s1eta
-f2s1i2d
-f3s2ky
-f2s1o2
-f3soh
-f3sol
-fs2pa
-f2s3pas
-f2sph
-f3s2pl
-f3s2por
-fs2prä
-f2spre
-f2spro
-fs2pul
-fs3s2
-f4st.
-fst2a
-fs3tak
-f2stas
-f3stat
-fs3tät
-f2stäti
-f2stech
-fste2i
-fs3terr
-fs3th
-f2stip
-f2s3tis
-fst4r
-f2s3tres
-fs3trü
-f2stüte
-f2s1un
-f3sy
-2ft
-f2ta.
-ft1a2be
-ft1abl
-ft1af
-ft2ag
-ft1ala
-ft1an
-f2t1ap
-ft1a2r
-ft3att
-f2t1äu
-f3te.
-ft1eck
-ft1edi
-ft1eh
-fte2he
-ft1eig
-ft1ein
-ft1eis
-ft1eli
-fte3ma
-ft1emi
-f2t1ent
-ft3erfü
-ft1erk
-f2t1erl
-fter2le
-f2t1erz
-f2t1eti
-f2t1ex
-f2t1h
-f4t3hei
-f2t1id
-f4tim
-f2t1in
-f3t2ing
-fto2
-f2t1of
-f3tor.
-f2t3ot
-f3t4ran
-f2tres
-f3treu
-ft4rit
-ft3ro
-ft4ru
-ft5rud
-ft5ruh
-ft2s1
-ftsa2
-ft4sag
-ft4sam
-ft3s2c
-ft4sche
-ftse2
-ftsen1
-ft3st
-ft4staf
-ft4star
-fts3tät
-ft4s3tem
-ft4ster
-ft4s3tes
-ft4stier
-ft4stor
-ft4streu
-ft3t
-fttra4
-f2tum
-ft1urk
-ft1url
-ftü1
-ftwa4
-ft3z2
-ftze3d
-ftz4w
-3fuc
-3fug
-fugi3
-3f2uh
-fuku3
-fulb4
-f1um1
-fu2mei
-f2umm
-2fums
-fun2d3er
-2f1unf
-2fungl
-2f1u2ni
-fun2k3l
-fun2ko
-fun2k3r
-fun2ku
-4funm
-4funr
-4funt
-f2ur
-furch2
-fu4re.
-2f3url
-fus2
-fus4s
-fu3sse
-fu4sser
-fuss3p
-fuss3t
-fu2ß1er
-3fut
-2füb
-fühl2sc
-fün2
-fü2r
-fü3s2
-2fv
-2fw
-fwur2
-2f1y
-2fz
-fz2a
-fzeiten4
-fzei4tend
-fz2ö
-fz4wi
-1g
-2gabf
-2gabg
-2g1a2b3l
-gab2o
-gab4ri
-2gabsc
-g2abt.
-2gabtr
-ga3bu
-2gabw
-2gabz
-gade2r
-ga3d2i
-gadi4e
-ga2dr
-gae2
-ga3fl
-3gag.
-ga3k
-ga4kt
-ga4ku
-gal2a
-2g1alau
-2g1alb
-g1alg
-gall4e
-gal3lo
-2g1alp
-2g1alta
-2g1altd
-g1a2lu
-ga4mec
-gam3ma
-3g4amo
-2g1amt
-g1a2na
-2ganal
-gan3d2
-2ganf
-2ganga
-2gangeb
-gan2gr
-gang4sp
-gan2g1u
-2g1ank
-2ganl
-2ganmu
-3gano
-ga2nob
-2ganr
-gans2
-2g1ansi
-2ganst
-2ganw
-ga1ny
-2g1anz
-ga3pe
-2g1app
-3gar.
-g2ara
-2garc
-3g2ard
-ga3ret
-ga3r2i
-2g3arm
-ga3r2o
-2g1arti
-ga3ru
-2g1arz
-ga2s
-g2as.
-ga4s3al
-ga4sam
-gasche2
-gase2
-ga5se.
-ga4sei
-ga4sel
-ga4se4m
-ga5ses
-ga4set
-gas3pe
-gas3s4
-3g4asse.
-g3asses
-4gassess
-ga3ssest
-gas5st
-gas6st.
-ga4st3el
-ga3sti
-ga4stin
-gastra4
-ga4stras3
-gast3rä
-ga3stri
-ga4strom
-gas3tu
-ga3su
-ga3t2a
-2gatm
-gat4r
-gau1c
-2g1auf
-2g3aug
-g2auk
-gau5ne
-2g1au4s
-2g1aut
-ga3z
-2g1äp
-gär3th
-2g1ärz
-gä3s
-gä5ste
-2g1ät
-gä4us
-2gb2
-gbau5s
-g3be
-gber2
-gbi2
-gb4ri
-2g1c
-2gd
-g3d2ad
-gda3de
-g2d1ak
-g2d1an
-g2d1au
-gdä1
-g2dei2
-gd1els
-g2dent
-g2d1er
-g2d1et
-g2d1in
-g2dop
-gd3re
-gd4ri
-gd3ru
-gd3s2
-gdt4r
-ge3a2
-ge4at.
-ge4ate
-geb2a
-3gebä
-ge4bb
-3gebi
-ge3ble
-geb2lin
-geb4lo
-gebot4
-ge4bt
-3gebü
-ge1ch
-ge1e2
-ge3ec
-ge2es
-geest3
-ge3fa
-2gefak
-3gefä
-4g1eff
-gef4l
-gef4r
-gege2n
-gegene4
-ge3g2l
-geg4r
-3geha
-3gehä
-geher3l
-ge3ho
-ge4hs
-ge4ht
-ge3hur
-2g1eid
-ge4ie2
-ge4ig
-ge1in
-ge2inf
-gein2h
-gein3i
-2g1einr
-gein2s
-gein2v
-ge1ir
-geis4
-2g1eise
-gei3sh
-geiss3c
-gei2sta
-geist3r
-ge4iz
-2gek.
-ge2lanz
-gelb1r
-gel2b3ra
-gelb5s
-3ge4ld
-gel2den
-gelder2
-gel4derh
-gel4ders
-ge3lec
-ge2lef
-2g3e2lek
-2gelem
-gelen1
-ge2lene
-geler3l
-geler3ö
-ge2l3ers
-ge2l1ev
-gel3f
-gel1i4m
-gel3l2a
-gel3le
-gell2i
-gel2ö
-gel3s2a
-gels2p
-gels4t
-gel3sz
-ge4lt
-gel2ta
-gelt4r
-gel3z4
-gem2
-ge2ma.
-ge3mau
-gem4e
-4g1emp
-gem3s
-ge3mu
-ge3na
-ge4n1ac
-ge4nad
-ge4nak
-ge4nal
-ge4nam
-ge4nap
-ge4nar
-ge4nat
-2genda.
-gend3in
-2g3endmo
-gen2dr
-gen2eh
-gen3eid
-2generg
-ge2n3ern
-gen4erwe
-gener2z
-ge2nim
-gen3k4
-genmas2
-genma5sse
-gen3n
-3geno
-ge2noc
-ge4nr
-gen4semb
-gen3sk
-gen3sz
-gen3tä
-2gentf
-gen3t2h
-gen5tr
-2gentw
-ge2nun
-genzma3
-genzmas4
-ge1oo
-geo2ri
-g2ep
-ge5pfi
-ge3pl
-ge3po
-ge1ra
-ge2ra2b
-ge2rak
-ge2r3al
-ge3rann
-ge2rant
-ge4r3a2r
-ger2as
-ge4rb
-2gerdg
-ge3rem
-ge2rene
-ge2reng
-ge2ren2s
-ge2r3ent
-ger2er
-gerin2d
-gerin4f
-ger2inn
-gerin2t
-2ger2klä
-g3erlas
-3g2erlä
-germas4s
-ger3no
-2g1ernt
-ge1ro
-ge2rob
-ge1r2ö
-4g3erprob
-ger2sat
-2g3er2seh
-ge3r2u
-ger2zeu
-g4es.
-ges2c
-ge4sche.
-ge2s1eb
-2g3e2sel.
-ges3elt
-ge2s1er
-ge3sha
-ge3s2i
-ge3so
-ges3s2a
-gess4t
-ges5ste
-gest2
-gest4a
-gest4e
-ges3th
-ge2s3tur
-ge3t2a
-g1etap
-ge2thi
-ge5trei
-ge3t4u
-2g1e1ul
-ge3unk
-ge1urt
-ge3u2t
-ge3we
-2g1e2x
-2gf2
-g3fe
-gfi2l
-gf4rü
-2gg
-gga2t
-g3ge
-gge2ne
-gges2
-gge3sa
-ggi3e
-gg2l
-g3gla
-g3glo
-g2g3n
-gg4re
-gg5re.
-2g1h
-gh2a
-3ghale
-gh2e
-3g2het
-3g2hie
-gh1l
-gho3re
-3gh2r
-ghs2
-g2hu
-gh3w
-gi3alo
-gich2
-gicht1
-gi2e
-gi4eb
-gie3g
-gie1i
-gie3l
-giel2a
-gie5n2e
-gi4eno
-gi3ens
-gie3res
-gi3ern
-gies4
-gift5s
-gi2gu
-gi2kel
-3gime
-gi2me.
-gi4mes
-gi2met
-2gimp
-2gin2d
-gi3ne
-2g1inf
-4gingeni
-2gin2h
-g1i4ns
-gin2sa
-2ginsf
-2g3int
-2gin2v
-gi2ob
-2giok
-2g3isel
-gist4
-giste4
-git2a
-gitt2
-gitt4e
-gi4u3s
-2gj
-2gk2
-gk4ne
-g3ko
-gl2
-2gl.
-2g1lab
-2g1lac
-2gladu
-2g1lag
-2g1lam
-2gland
-gla2s1c
-glas3p
-glast4
-gla4str
-gla2stu
-gl4at
-3g2laub
-2g1lauf
-2gländ
-3gläs
-g1läß
-2gläuf
-gl3b
-g2le
-2g3le.
-3glea
-2g3leb
-g3lec
-3gled
-g3lee
-2g3leg
-2gleh
-g4leic
-4g3lein
-glei4str
-gleistra4
-gleiter6sc
-glei4t5r
-g3len
-4glenk
-4g3ler
-glerei2
-2gles
-3gles.
-g3lese
-g2lia
-2glib
-3g2lid
-3g2lie
-4g3lieb
-2glif
-g2lik
-4glil
-g2lim
-2glin
-g2lio
-2glis
-g2lit
-g3lite
-g2liz
-g3lize
-g2loa
-g2lob
-g2loc
-2g3loch
-g5loks
-g2lom
-g2lop
-2glorb
-2glos
-g2lot
-2glöch
-2glös
-2glöw
-2gls
-g1lu
-2g3luf
-2gluk
-2g3lun
-g2lut
-3g2lü
-g3lüg
-2glw
-3g2ly
-2gm2
-gmen2tr
-gmi2s
-g1n
-2gn.
-g2n2a
-g4na.
-2gnac
-g4nad
-2gnah
-gn4al
-gna2ler3
-2gnanl
-3g2nä
-2gnb
-2gnc
-2gnd
-gn2e
-g3neh
-2gn3ent
-gne2tr
-2gnf
-2gng
-2gnh
-g2nie
-g2nif
-g4n1in
-2gning
-2gnint
-2gni2s3
-gnise2
-2gnk
-2gnl
-2gnm
-g2no1
-3g4non
-g3not
-2gnp
-2gnr
-2gns
-2gnt
-2gnu
-3g2num.
-g2nü
-2gnv
-2gnw
-g2ny
-2gnz
-3go.
-go2a
-go4al
-goa3li
-g1ob
-gobe3l
-2go4bj
-g2ob2l
-go4bs
-go4ch
-goe3
-2g1of
-go4fe
-2gog
-go4gh
-2g1oh2
-goh3ren
-go1i2
-gol2a
-gol2da
-gol2fr
-go4mn
-3gon.
-go4nat
-go4nd
-gon2e
-3gons
-3g2opa
-gopf4
-go2pos
-2gopt
-gor2a
-2g1o4rd
-g1org
-go4rt
-3gos
-go2si
-go2sp
-go4ss
-4g1osz
-3goß
-go3th
-go4tt
-got4terb
-got4t3erg
-3gou
-go1y
-gö4fe
-g1öl
-3göt
-2gp2
-g3pf
-gp4fu
-gp4la
-g3ps
-g3pü
-2gq
-g2r2
-g4rab
-gra2ba
-gra2bi
-gra4bl
-2g3radl
-2g3rah
-g3rai
-2g3rak
-gr4al
-gram1
-grammen4
-gram4m5end
-gram4mer
-g3rand
-g4rande
-2gra2r
-grar1e
-gra3rie
-gra4s3a
-gra6shi
-gra4sp
-gra4str
-2g3raub
-grau5f
-2graum
-grau3sk
-2gräd
-g3rän
-gräs5c
-g3räu
-2gre.
-g4reb
-2g3rec
-g3rede
-g4ree
-2g3ref
-gre2fr
-2grege
-2g3reic
-grei4fr
-2g3reih
-g3reim
-g3rein
-g3reit
-3g4rem
-3g4ren
-4g5renn
-gre3no
-gren4z3ei
-grenz3w
-g4rer
-2g3rese
-gres4ser
-g3ret
-g3rev
-2g3ric
-gri2e
-4g3riem
-g3riese
-2grig
-gril2la
-4g3ring
-4g3rinn
-gro2b3a
-gro3ber
-gro2bl
-gro2b3r
-grob3s
-2groc
-2groh
-2g3rol
-gr4om
-gros4
-2g3rose
-g4ross
-gro3sse.
-gro5ssen.
-gro5sser.
-gro5sses.
-g4roß
-g4rot
-2g3röc
-2gröh
-2gruf.
-g4ruft
-2g3ruh
-g3rui
-2g3rum
-grunder5n
-grun2g
-3grup
-grus2s
-gru3sse
-4g3rut
-2g3rüc
-grüs2
-2gs1
-g2sa2
-gs3ab
-g3sack
-gs3a4k
-g3sal
-g4s3alb
-g4sall
-g4salm
-g4salt
-gs2am
-g4s3ama
-g4s3amb
-g4s3amp
-gs3a4p
-gs3ar
-g3sat
-gsa3te
-gsau2g
-gsau4r
-g2sä
-gs4ät
-g3säu
-gs2c
-g4sca
-g4s3ce
-gsch4
-g5schal
-g4schef
-g5s4chi
-g5schn
-g3schu
-g5schü
-g4scl
-g4s3co
-gs3d
-gs5dor
-g2se2
-gs2e3h
-g5s4eil
-gse4kl
-g3sel.
-g4sela
-g3seln
-gs3em
-gsen1
-g5seni
-gs2enk
-g4ser
-g3sere
-gser1i
-g4se4s
-gse4t
-g4seu
-gsfi2l
-gsh2
-gs3ha
-g2si
-gsi2d
-g3sig
-gs3i2k
-g3sil
-g4s3io
-g4sis
-g4s3ita
-gs2ki1e
-gsmas4sen
-g2so2
-g4so4b
-gso4f
-g3sol
-gs4on
-g4s3op
-gs4oz
-g2sö
-g2s3p
-gs4pac
-gs4pant
-g5spei
-g3spek
-g4spf
-gs4pir
-g4spl
-g3s4port.
-gs3s2
-gss4t
-gss4w
-g4st.
-gs3ta
-g2stab
-g3stad
-g2staf
-gst1au
-gs3tä
-g2stät
-g4stee
-g5stein
-gst2el
-g5stell
-g4s3temp
-gste2r
-g4sterei
-g4sterm
-gst3err
-g4s3test
-g5steu
-gs3th
-gs4tha
-gs4thy
-g3sti
-gs3tier
-g4stis
-g3sto
-g4stoch
-g4stod
-gs3top
-g4s3tor
-gs3tot
-gs3tö
-g5stör
-gs3tr
-gs4tras
-gst3reit
-gst4res
-g2streu
-gst3rit
-gst3ros
-g2stru
-gs3tu
-gs3tü
-g2su
-gs4uc
-gs3un
-gsü3s
-g3sy
-2gt
-g3te
-gt1h
-gt2hy
-gt2i
-gti2m
-g3to
-gt4ra
-gt2se
-gu4ale
-gu3am
-gu1ant
-gu1as
-gu4d3r
-gu2e
-2gued
-guet2
-2g1uf
-gu4fe
-2g1uh
-guil3
-gu3ins
-gu1i4s
-gum2e
-3gumm
-gummi1
-gun2e
-2g1unf
-gunge2
-2gungew
-2gungl
-2g1u2ni
-2g3unk
-2gunr
-2gunt
-3gur
-gure4
-4g1url
-gur2t3h
-gur4tr
-gurt3s
-gu4s3a
-gu2sä
-guschi3
-gus3se.
-gus3ses
-guss1o
-gus2sp
-gus4s3t
-gust3a2b
-gu2stap
-gu4stein
-gu4st3en4d
-gu3sti
-gu2str
-gu2ß1
-gußt2
-gu2t1
-gu3te
-gu4ter2h
-gut2s3p
-2güb
-3gür3
-2gv
-2gw
-gy4ar
-gy3n
-gy4na
-2gz2
-gzeu2gi
-g3zh
-2ha.
-hab2a
-hab2e
-hab2i
-h1ablu
-2habn
-h1a2br
-h1abs
-2habw
-ha2ch3en
-ha2cho
-2hada
-ha2del
-hade2n
-h1adle
-h1a2dr
-ha3dri
-2hae
-ha3el
-ha4far
-haf2e
-h1affä
-haf3f4l
-h2aft
-haf2tr
-haf4tre
-haft4s3p
-hag2a
-h2agg
-ha3ha
-h2ahs
-h2ai
-3hai.
-h2aj
-2haka
-ha4kes
-ha3kl
-2h2al.
-ha3l2al
-halan2c
-h1a2lar
-ha2lau
-hal2ba
-hal4bel
-hal2bin
-hal2b3r
-hal2bu
-2hale
-2halh
-hal2i
-2halk
-hal2lei
-haller2
-hal4leu
-hal4lo2k
-ha3lo
-2halp
-hal2sp
-hal2tal
-hal2tei
-hal2t5r
-hamot2
-hampi4ons
-2h1amt
-h2an.
-2hana
-ha2nal
-ha2nan
-han2au
-2hanb
-h2anbe
-h2and
-han2da
-han3den
-han2d3er
-han2d3r
-ha2nem
-hanf1
-han2fl
-han4g3end
-han2gro
-hang3s3
-han2k1
-2hanl
-2hano
-2hanr
-2hanz
-hao2s
-2h1ap
-3h2ape
-ha2pl
-ha2po
-ha2pr
-ha3ra
-h1a4rab
-2harb
-2harc
-h2ard
-har2fr
-h1arm.
-har3ma
-h2arme
-har2me.
-har4ne
-ha2rom
-2hars
-har2th
-h1arti
-h2arts
-har2za
-h2as
-2has.
-2ha3sa
-has4c
-has4h
-has2p
-has4sa
-has2ser2
-hass3t
-has6sti
-ha4str
-ha2ß1
-h1aße
-ha2ta
-hat2i
-h3atl
-ha2t3r
-2hats
-hatt2
-h1audi
-h1aufb
-hau3f4lie
-hau3f4lo
-2h1aufm
-h1aufs
-h3au3g2
-h1aukt
-hau2sa
-hau4san
-hau2s1c
-h2ause
-hau2sel
-hau4s3ent
-hau2spa
-hau2spe
-hau4ss
-haus3sen4
-hau4s3ti
-hau2sto
-hau2sur
-h2aut.
-hau2t1a
-hauten4
-hauto2
-hau2t3r
-ha2ve.
-havil2
-häde2
-h1äff
-2häi
-hä2kl
-2h1ärz
-hä4s5chen
-hä4ss
-2h1äst
-2häug
-häu2s3c
-hä3usp
-2hb2
-hba2ras
-hber2e
-hb4ri
-2h1c
-2hd2
-hdan2
-hdä1
-hd4ri
-h3ds
-2hea
-he2ad
-he3as
-he3be
-heb3eis
-he2b3l
-he3br
-he3bu
-he3ch2e
-he3chi
-he1cho
-h3echs
-hed2g
-he2dit
-he1e4m
-he1e2n
-he2en.
-hee2s
-he1e2t
-h2ef.
-he3fab
-he2fan
-he2fau
-he2f1ei
-he3f2em
-hef3erm
-2heff
-he2fid
-he2f3in2g
-he2f5le
-2hefr
-hef4ra
-he2fre
-3heft
-he2fu
-he3gu
-he2hel
-hei4a
-h4eib
-h1eie
-h1eif
-hei4fr
-h1eig
-he2im
-hei2mal
-hei2mei
-heim3p
-hei4mu
-2hein
-hei4na
-heine2
-hei2n3eb
-hei2neh
-hei4nene
-hei2n3er2
-he2inf
-h3einsp
-2heio
-2he1ism
-heis4s
-he1i4st
-h2eit
-he3i4ti
-heit4s3
-h1eiw
-hekt3a
-he2la
-he3lag
-hel1an
-hel3au
-hel1ec
-he2lek
-h3elem
-he2len
-h2elf
-he3li
-hell2a
-hell3au
-hel2lic
-helm1a
-hel2man
-hel2mei
-he3lo
-he4lof
-hel2or
-he2lö
-4helt
-h4em.
-2hema
-hema4s3
-hem2b
-1hemd
-2heme2
-h2em2i
-he3mid
-h3e2miss
-1hemm
-2h3emp
-h2en.
-he4n3a2
-he2nä
-hen3ebe
-henen1
-hen3end
-he4nene
-he4nens
-he4nenz
-hen3erg
-he2nerm
-he2n1e4t
-2henga
-hen2gag
-hen2kan
-hen2kau
-2heno
-heno3t
-hen2sem
-hen3st2
-hent2a
-hen2ter
-hent4ra
-h1ents
-2h3entw
-h3entz
-he4n3u
-hen3z2
-2he2o
-he3on
-he3op
-heori2e
-he3pa
-he3ph
-h1e2pi
-h1epo
-hept2
-h2er.
-her3a2b
-he2rad
-2herap
-he4r3a2r
-herau2
-herb2
-her3c
-her2dri
-h2ere
-he2r1e2b
-he2reck
-her2eif
-2he3reig
-herein3
-he4reis.
-her5eises
-he2rel
-he2rene
-herer3s
-he4rersc
-he2rerw
-h4erfam
-h1erfo
-her2fol
-herg2
-4her4gebn
-heri2e
-2herif
-herin2d
-herin4f
-he4rin4nu
-herin2s
-herin4ter
-h1erke
-her2klä
-h3er4kran
-h4erlad
-2herm
-herma3s
-h1ernt
-he3ro
-he4r3o4b
-he4rof
-he4rop
-he4rot
-h1erör
-hers4t
-her3sta
-hert4
-her3th
-her3um
-he2rut
-h1erwä
-her2zap
-her4zeng
-her2zer
-h3erzeu
-her2z3w
-he3sa
-2hese
-he3si
-hesi2e
-he3s4p
-hes2ser
-he2tap
-he3tä
-hete1
-heter2
-he3th
-het2i
-he3t2s
-he2u
-heu3g
-h3eule.
-he3unt
-3heusc
-he3x
-he1x4a
-he4xd
-he4xk
-he4xl
-2he4xp
-he4xt
-hey2
-he1ye
-1hè
-2hf2
-hfaller4
-hfan2
-hfel2l3
-hfi2s
-hf4la
-hflei2
-hf4rü
-2hg2
-h3ga
-hgas1
-hga4sen
-h3gr
-hg4ru
-2h1h2
-hhoh2
-2hi.
-2hia
-hi2ar
-hi1as
-h1iat
-2hic
-hi1ce
-hich4t3er
-hicht4sp
-hi3d
-hi4db
-hi4dd
-hid4e
-hi4dio
-2hido
-hi2e
-hi3ens
-hie2rei
-hier3i
-hie2rin
-hiers2
-hif3f4r
-hi2k3r
-hi2l3a4
-hi3l4au
-hilen2
-hil2fr
-hili2e
-h2im
-2hima
-h1imb
-h3i4mit
-h4imm
-h3impe
-h3impl
-hi2n
-hi3nak
-hi3n2am
-hi3nap
-hi5n2as
-hine2i
-hi3nel
-hin2en
-h1inf
-h1inh
-2hi3n2i
-hin3n2
-hi3n2o3
-hin2t1a
-2hio
-hi3ob
-hi4on
-hio3p
-hi2p3
-hi4pl
-hi4pu
-hi2r
-hi3ra
-hir3b4
-hi3re
-hi3ri
-hir2m1a
-hir2mi
-hirn1
-hir2ner
-hir2s
-1hirt
-2his.
-his2a
-hi2se
-h1i2so
-his2p
-hi2spa
-hi3tac
-hi3th
-hi3t2i
-hit1r
-hit3z2e
-hi2v1o
-2hj
-2hk2
-hkamp2
-h2keu
-hki2n1
-h3kl
-hklat3
-hklo3s
-hk4ne
-hk4re
-2hl
-hl2ag
-hla2gr
-hlam4meng
-hlan4d3a
-hl1anz
-h1las
-h1lat
-h1laut
-h1lay
-h3läche
-h3läd
-h4läf
-hl1är
-h1läs
-h1läß
-h1läu
-hlb4l
-hl3d2
-hld4a
-hld4r
-h3le.
-hle3a
-h3leb
-h3led
-hle3e
-h2leis
-h3leist
-hl1el
-h5len.
-hle4nas
-hl2enn
-hl3entr
-h2lents
-hl2enz
-h3ler
-hle2r3a
-hl2ere
-h2lerg
-hler2hö
-hl2erk
-h6l3er2nä
-hle3run
-hl1erw
-h4lerz
-h3les
-h4lesi
-h4leud
-h2lie
-h3lied
-h2lif
-h2lim
-hl1ind
-hling4s
-h2lip
-h2lis
-h3list
-h2lit1
-hl3l2
-hlle3b
-hl3m2
-hlma3s2
-h2lo
-hl1ob
-h3loc
-hl1o4f
-h3log
-h4lor
-hlo2ra
-h5lorb
-h3los.
-h3losi
-h4loss
-hlos4st
-h4lo2ß1
-h2lös3
-hlö4ss
-hl2sal
-hl4sar
-hl2ser
-hl3ska
-hl3slo
-hls4tec
-hls3tie
-hl3str
-hl2su
-hl3t2
-h3luf
-h3luk
-h3lumpe
-h1lüf
-hlz4w
-2hm
-h3mad
-h3mag
-h3m4ak
-h3man
-h2mant
-h3mar
-h4marc
-h3mas
-hma3sse
-h3maß
-h3mä
-h4mäc
-h4mäh
-h4mäl
-hm2e
-h3me.
-h3med
-hme1e4
-hmeer2s
-h3mein
-h3meise
-h3meist
-h3meld
-hme3le
-h3men
-hmen2s
-hmen4s3p
-hme2ran
-hme2rei
-hm3estr
-h3mex
-hmi2e
-h3mind
-h3mirr
-h3misc
-h2mo
-h3mop
-h3mot
-h3m2ö
-h4mök
-h4möl
-hm3p2
-hm2s3p
-h2mu
-h3mul
-h3musi
-hmut4s
-h3my
-2hn
-h2na
-h3nag
-h3nam
-h4nar
-hn3a2te
-h4natt
-h3nau.
-hn1äh
-hn1är
-hnä6sse
-hnbau3
-hn3d
-hnd4r
-hn2e
-hne3b
-hne2e3
-hn3eff
-hn3eig
-hn3ein
-h2nel
-hne4n
-hn4eng
-hne4pf
-h3ner
-hner2de
-hner3ei
-h4n3e2ro
-h4n3ersa
-hn3eur
-hn3ex
-hn3f2
-hnf4l
-hnflei4
-hnhof6stra6s
-h2nic
-h2nid
-h2nie
-hn1im
-hn1in
-h2nip
-hni4sa
-hnk2
-hn1ob
-h2no2r
-hnra2
-hn3sa
-hn3s2p
-hnst2
-hnsuch2
-hn2th
-hntra4
-hnts2
-h2nul
-h2n1unf
-hnz2
-h4oben
-ho3bern
-ho2b3l
-ho2c
-hoch3
-2hocy
-2hod
-2ho2e
-hoe3n
-ho3er
-ho4f3a4
-ho4fä
-ho4fed
-ho4feu
-hof3f4a
-hofi4
-ho4f3l
-ho4f1o
-ho4f3r
-ho4fu
-ho4fü
-2hoi
-ho2l1a
-hol3ar
-hol3dr
-1hole
-ho2l1ei
-ho2lem
-hol3g
-holin2
-hol3k
-holl4
-2holy
-h3olym
-1holz
-hol4zene
-hom2e
-ho4me.
-ho4mec
-ho4med
-ho4mel
-h2on
-hond4
-hon2er
-honi2e
-ho1on
-hoo2r
-2hop
-ho2pe
-ho1ra
-ho2rak
-h1o2r2an
-ho2rau
-h1or3d
-2hore
-ho2rens
-ho3ret
-hor2fr
-2h1org
-hor3ta
-hor2ter
-h1ortu
-h2os.
-hos3a
-ho3se2
-ho4sei
-ho3sl
-ho4sla
-2hosö
-hos4t
-ho2str
-ho2ßene
-2hot.
-2hotr
-2hot3s2
-ho3un
-2ho2w1
-ho3wer
-h1ox
-ho1y2
-2hoz
-1h2ö
-2hö.
-hö2c
-2höe
-3höhe
-hö2s1
-h4ösc
-hö4ss
-hös3se
-h3ö4st
-2hp2
-h3pf
-h3pu
-2hr
-hra2b
-hr3ac
-hr3ad
-hr1a2g
-h1r4ah
-h1rai
-h3ramp
-h1rane
-hr3ap
-hras3s
-hrau2c
-h3räu
-hr1c
-hr3d
-h2rec
-h3r2ech
-h3red
-h3ref
-hr3eff
-h2r1eh
-h4rei.
-h4reib
-hrei2ba
-hrei2br
-h3reic
-h3reif
-h4r3eig
-hr2eini
-h2reinl
-hrei3th
-h4r3ele
-hren3z
-h3rep
-hrer2fo
-h4rer4geb
-hr2erh
-hr2erk
-h4rerla
-hr2erle
-h4rer4leb
-hrer2lö
-hr2erm
-hrer2sa
-hrer3st
-hrer2tr
-hrer4trä
-hrer4tüc
-hr2erw
-hr2erz
-h3re2s3
-hres5s4
-hrest2
-hre2t
-h2r1eta
-h2r1eu
-h2rev
-hrg2
-hrga4
-hrgu4
-h2ri
-h3ric
-hri2e
-h3riesl
-h3rin
-hr1int
-h4rist
-hr3m2
-h3rog
-h3roh
-h3ro2l
-h4romat
-h4rome
-h4romi
-h4romo
-h4ron
-h1ropa
-hro4r
-h3rou
-h3rö2s
-hr2s1ac
-hr4s3and
-hr4sau
-hr3sch
-hr2s1em
-hr2sen
-hr3sena
-hr2s1er
-hr2set
-hr4sh
-hr2sin
-hrs3k
-hrs3l
-hr2s1of
-hrst2
-hr4stec
-hr4stele
-hr2su
-hr2tab
-hr2tan
-hr2te2l
-hr2th
-hr2top
-hrt3ric
-hrt2s
-hrt4ste
-h3ruh
-hr1ums
-h3rus
-h3rut
-h3rü
-h4rüb
-h2ry
-hrz2
-2hs
-hsa2b
-hs3acht
-h2s1a2d
-h2s1alk
-hs2alt
-h4samt
-h2san
-hs3and
-h3sann
-h2s1as
-h2sath
-h2sato
-h2saud
-h2saut
-h2säh
-h2säug
-h3sc
-h4schan
-hs2cr
-h3se.
-h2s3ec
-hse2e
-h2s1ehr
-h2s1eie
-h2seind
-h2seins
-hsela2
-hse2lin
-hs1emi
-hsen3erg
-h2s1ent
-h2s1erb
-h2s1erf
-hs1erg
-h2s1erh
-h2serkl
-h2s1erl
-h2s1ern
-h2serö
-h2s1ers
-hser2u
-h2s1erw
-h2serz
-h2sex
-h3s2ext
-hsha4k
-h2s1i2d
-hs2im
-h2s1ing
-h3s2inni
-h4s3ita
-hs2kal
-h3skand
-hs1of
-h2sofe
-h2sop
-hs1or
-hs2p
-h2s3pac
-h2s3pani
-h2s3par
-h2s3pat
-h3spei
-h2sper
-h2s3ph
-h2s3po
-h3spoi
-h2sprä
-h2spro
-hss4t
-h4st.
-hst2a
-hs3tabl
-h2staf
-hst3alt
-hst3arb
-h2s3tau
-h2stäl
-h2s3täu
-h4stea
-h4stele
-h4sterm
-hs3the
-h2s3tier
-h2stin
-h2stit
-h2s3tol
-h2s3tor
-h3stö
-hs3treue
-hstro4
-h2s3tu
-hs4tub
-h3s4tun
-h3stü
-h2s1u
-hs2ung
-h3sy
-2ht
-ht1a
-h2tab
-hta2bl
-h2ta2d
-ht2ag
-ht2akt.
-ht2akte
-ht2al
-h2t3all
-h2talo
-h2talp
-h2t3alt
-hta4m
-h2ta2n
-ht3ane
-h2tap
-h2ta2r
-ht2as
-h2t3asi
-h2tasy
-h2t3at
-h3tat.
-h3tate
-h2tau
-h3taum
-h4tax
-ht1ä
-h2tär
-h3te.
-hte2ber
-ht1ec
-hte3cha
-hte2d
-h2t1ede
-ht1eff
-ht1e2he
-h2teif
-h2t1eig
-h4t3eilz
-h2t1eim
-ht1ein
-h2t1eis
-h2t1eke
-ht3elas
-hte4l3ei.
-h2telek
-h2t3elfe
-h2telit
-ht1e4mi
-h2temp
-h3ten.
-ht3engl
-ht3en4ta
-h2tentf
-hte3rel
-hterer2
-h2t3erfo
-ht3erfü
-h4terfül
-h4tergeb
-ht3ergr
-ht1erh
-hter4häl
-hter4höhu
-h2terkl
-h4terleb
-h4t3erleu
-h4terneu
-h2t3ernt
-h4ter4prob
-hter4reg
-ht3erspa
-hter4spar
-ht3er2st
-h4tersta
-ht4erstr
-hter4tra
-ht3erwä
-h2t3erze
-h2t1ese
-h2t1ess
-h2teta
-hte4th
-h2t1eu
-h3teum
-h3teun
-h2textr
-h2t1h
-h4thei
-h3thera
-h3thes
-h4thi
-h4tho
-h2t1i2d
-h3tig
-h2t1im
-h2t1i4n3
-ht3ine
-h2t1is
-h3tisc
-hti3t2
-htni2
-hto2
-h2t1ob
-htod1
-h2t1o4f
-h2t3oly
-h2ton.
-h2tope
-h2tord
-ht3rak
-h3tran
-ht3rand
-h2t3ras
-ht4rates
-ht3rau
-h2traub
-ht4raume
-ht3rec
-h5treck
-ht3rei
-h2t3res
-ht3ric
-h2t3rieg
-h2t3rin
-h3trit
-h2t3riv
-h2t3rol
-h2t3ros
-h2t3roß
-ht3röm
-ht3ru
-ht2sah
-ht2sal
-ht4s3a4n
-ht2scr
-ht2sein
-ht2sel
-ht2s3end
-ht2seng
-htse2r1
-hts3eri
-htsha4
-ht3shak
-ht4s3kr
-ht2s1o
-ht2sp
-ht3spen
-ht3spre
-hts3tät
-ht4s3tem
-hts4tie
-ht2stip
-hts3trau
-ht2stri
-ht2s3tur
-ht2s3tür
-ht2su
-htti2
-htt4r
-htu2e
-h2t1urs
-ht3z2
-hu2b1a
-hu2bei
-hu4bel
-hu2b1en2
-hu2bi
-hu2b3l
-hu4b3r
-hu2bu
-hu4fa
-hu2h1a
-hu2h1i
-hu2ho
-h1uhr
-h1uhu
-hu2kä
-hu2k1in
-huk3t2
-hu2l3a2
-hu4lab
-hu2lä
-hule2
-hu2l1eb
-hu2l1ei
-hu2lem
-hu2l3eng
-hu2lent
-hu2l1er2
-hu2let
-hu2lid
-hu2l1in
-hul3l2
-hu2lo
-hu2l3ö
-hul3s2
-hu3m2a
-h1umh
-h1ums
-hu2n
-h1una
-h2und
-hun3d2e
-hun2e
-2hunf
-hung2
-hun3ge
-h1uni
-2hunt
-h1ups
-2hur
-hur3g2
-hur2t3h
-hu3sa
-hus3h
-hu2so
-hus2s3a
-hus3se
-hus4ser2
-hus2s1o
-hus2sp
-hus4st
-hu2ß1
-hu2tab
-hu2ti
-hu2t1o
-hu2t3r
-hut2t
-hut2zen
-hut2z3er
-hut2zu
-h2ü
-h3über
-h4übs
-h3übu
-hüf2
-hüft1
-hühne4
-hüs6tel
-2hv
-hvil2
-2h2w2
-h4wall
-hwe1c
-h3weib
-hwei4fr
-h3weih
-hweins3
-hwein4sa
-hweis4s
-hwen2ka
-h3werbu
-h4werp
-h4wirr
-h3woh
-1hyd
-hy2de
-hy3dr
-hy2lor
-1hymn
-h1yo
-hy3os
-1hyp
-hy2pe.
-hysteri4e
-2hy2t
-2hz
-hz2a
-h3z2o
-hzug4
-h3zw
-hz4we
-iaa2
-i3ad.
-iad2a
-i1adn
-ia3do
-ia3e2
-ia3f4l
-i2ago
-ia1h2
-i1ai
-i3ak.
-i3ake
-ia4kei
-i1akt
-i1al
-ia2l1a2
-ial3ar
-ial3as
-ia2lä
-ial3b4
-ial3d4
-i3aleb
-i3alef
-i3alei
-ia3lek
-i3alel
-i3alemp
-i3aleng
-i3alent
-i3alep
-i3alerb
-i3aler2f
-i3alerh
-i3a2lerm
-i3a2l1et
-i3alex
-i3a2lia
-i3alim
-i3a2lin
-ial3l
-ial4ler
-iall2i
-ia2lon
-ia2lop
-ia2l1o2r
-ial3p
-ial3s
-ial3t2
-ia2l3u2
-ial3z4
-i3am.
-iampe4
-i1ams
-i1an.
-i1an2a
-ia2nal
-ian3alt
-ia2nau
-i1anc
-i3and2
-i1a2n1e2b
-ia3n2er
-i1ann
-i1ans
-ian2s3p
-i3ant
-i3anz
-ianza4
-ia1o
-ia2op
-ia3pf
-i1ar
-i3ar.
-ia2ra
-i2are
-2ias
-i1as.
-i4asc
-i1asg
-i4a3sh
-i2asi
-i1asm
-i4aso
-i4a3s2p
-i1as3s
-iast4
-i1ast.
-i4asu
-i4asy
-i3at.
-i3at2h
-i4athe
-1iatr
-i3ats
-i3au
-ia3un
-iau2s3
-i2az
-2i1ä
-iä4mi
-i3är.
-i3ärz
-i3ä4tem
-iä2ti
-iät3s2
-iät5sa
-2ib
-ib1art
-i2b1auf
-i2b1aus
-i2baut
-ib3be
-ib2bli
-ibe2i
-i2b1eig
-ib3einh
-i2b1eis
-ibel4u
-iben1
-ibe4na
-i4ber4geb
-i2b3er2la
-ibe1ro
-i2bim
-i2b1in
-i2blad
-i2bläh
-ib3leis
-i2bleu
-i3blu
-i3b2o
-i2bö
-ib3ric
-i2b3roc
-ib2ser
-ib4s5te
-ib2un
-i2b3unk
-i2b3unt
-ibus3
-ibus1c
-ibus4t
-2ic
-i3ca
-ic1c
-ich1a2
-ich4art.
-ich1ä
-i1che
-ich1ei
-ich2er
-icherin5
-ichermas4
-ichgro3
-i1chi
-ich1l
-ich3le
-ich3li
-ich6lor
-ich3m
-ichmas2
-ich5mä
-ich3n
-i1cho
-ich3ort
-i2ch3r
-ich2sa
-ich4sele
-ich2s1i
-i4cht
-ich3terz
-ich2tr
-i1chu
-ich3w
-i1ci
-icks2p
-ickt2
-i1cl
-ic3la
-ic3ra
-2ida
-id2ab
-i3d2ac
-id4al
-id1a2n
-i3d2ans
-i3d4at
-id1au
-id2ax
-idä1
-idbu4
-id2e
-i2dea
-1idee
-ide2en
-id3eis
-2idel
-idel4ä
-i2demul
-ide4n1o
-iden3te
-ide3ran
-iderin4f
-iderin4nu
-ide1rö
-id3er4reg
-i3des
-ide5sa
-ide3so
-ides4p
-2idf
-1i2di2o
-idi4on
-i4diot
-2idk
-idni3
-i2dol
-2idoo
-i2dö
-i2dr
-id4ro
-id2sp
-1i2dy
-ie3a2
-ie2bä
-ie2bl
-ie2bri
-ie4b3rü
-ieb4sto
-ieb4stre
-ie1c
-ie2cho
-iech3t
-ie2d3an
-ie3de
-ie2dr
-ie1e2
-ief3akt
-ie2f1an
-ie2far
-ie2fau
-ie2fäh
-iefe2m
-ie3fer
-ief3f4
-ie2f3l
-ie2fonk
-ief1r
-ie2fro
-ie2gl
-ieg3li
-ie3g4n
-ie2g3re
-ieg2s
-iegs5c
-ieg6sch
-ieg4se
-ieg4si
-ieg4st
-ieg6ste
-ie3her
-ie2h1in
-ieh3r2
-i1ei
-iein3
-ie1ind
-i2e2l1a
-ie3lam
-ie4la2r
-ie2läs
-iel3d4
-i2ele
-iel3ebe
-iel1ec
-ie2l3eic
-iel3eid
-ie2lek
-i4elen
-ie2lene
-ie2leng
-iel2erd
-ieler2e
-ieler4fi
-ieler2g
-ieler6lebn
-iel2erw
-ieles2
-i2eli
-ieli2d
-i1e4ll
-ie2lo4b
-ie2lop
-ie4lor
-i2els2
-iel3sz
-ielt2
-iem2e
-iemis2
-i1en
-i3ena
-ien1a2g
-ie4nas
-ien3au
-i3enä
-i3enbr
-i2ene
-ien1eb
-ie2n1e4k
-iener4fo
-iener4la
-i3enf
-i3eng4
-ienge2f
-ienge2z
-i3enh
-ie2nid
-ie2nim
-ie4nin
-i3enj
-i3enk
-i3enm
-ienma3s2
-i3enn
-i3e2no
-i3enö
-i3enp
-i3enr
-ie4ns2
-i3ens.
-ien3sk
-ienst5ade
-ien4st3er
-ien4stop
-ienst3rä
-ien3sz
-ien4t3ar
-ien3te
-i3enti
-ien3tr
-i3env
-i3enw
-i3enz
-ie1o2
-ieo4b
-ieo4f
-iera2
-ie2r3ad
-ier3al
-ier3an
-ie2r3ap
-ierb4
-i3erbun
-ier3d
-i2ere
-ie2reck
-iere3ins
-ie2r3eis
-ie5rek
-ie3r2er
-ier3erf
-ierer3k
-ierf4
-ierg4
-i3ergi
-i4eri
-ierin3
-ierk4
-ierken4
-ier3l
-ierma4ss
-i1ern
-i3ern.
-ier3n2a
-i2erni
-ie2rö
-ier4re.
-ier2s3eh
-ier3sei
-ier3sta
-ier3te
-iert2i
-ier3z2
-2ie3s2
-ie4s3an
-ie4sb
-i2esc
-i2ese
-ie4sf
-ie4sg
-ie4sh
-ie4sj
-ie4s3k
-ie4sl
-ie4sm
-ie4sn
-ies3o
-ie4sof
-ie4spu
-ie5sset
-iess3ti
-iest4e
-ie4sv
-ie4sw
-ie4sz
-ießer2g
-ie4t1a2g
-ie2t1ak
-ie2tan
-ie2t1ap
-ie2tat
-ie2tau
-ie4tent
-ie4t3erh
-ie4t3ert
-i4ethe
-iet3her
-ie2t1ho
-ie2thy
-ie2to
-ie2t3ö2s
-ie2t3ri
-ie2t3ru
-iet2se
-i3ett
-iet3zw
-ieu2e
-i2e1un
-ie2w3u
-i1e2x
-ie3zo
-2if
-if1ab
-if1ang
-if1ar
-i2f3arm
-if4at
-i2f1au
-if1än
-i2fec
-i2f1ef
-ife4i
-if1ein
-i2felem
-ifel2s3o
-if2e4n1
-ifens4
-i2f1erg
-if1erh
-if2fa
-iffe4s
-if4feste
-if2f3l
-if2form
-if2fro
-iff2s
-iff4ste
-if1ins
-i2f3l
-if1lac
-if4lä
-iflo4
-if4los
-i3f4lü
-i2f3r
-i3fre
-i4fre.
-i4freg
-if4rev
-if4rö
-ifrü4
-if3sa
-if2t3a
-if2ted
-if2t3ef
-if4t1ei
-if2te2l
-if2tep
-if2terk
-ifte4s
-if2t3esc
-if4th
-if2t1op
-if2t3r
-ift3sp
-ift3sz
-if2tur
-i3fy
-2ig
-i2ganb
-i4g1ano
-i2garb
-ig1art
-iga3s
-i2g3att
-igd2
-i4gebrau
-i2gefar
-ige2füg
-3i2gel.
-ige3lau
-i2geln
-ige4me
-ige2mis
-ige4na
-ige4nene
-igener4f
-ige2nid
-igen5s
-ige2o
-ige2pa
-ige2ra
-igerma3
-ig3erwer
-ig1erz
-ige2sel
-i2g1ess
-ige4steu
-ige4stim
-ige2tra
-ige4tre
-ige2woh
-ig3hu
-i2gim
-i2gl
-ig1lau
-ig1lä
-i3gle
-i4g3led
-ig3lim
-ig4na
-ig5nah
-i4gnä
-i3g4neu
-ig4no
-igo3p
-i2g3rad
-i2g3re
-igro3
-i2grou
-igs2a3g
-ig4sal
-ig3sä
-ig2scha
-ig2schr
-ig3s2o
-ig3sp
-ig4spa
-ig4sti
-ig4s3to
-ig2stö
-ig4stra4s
-ig2stur
-igs4tü
-ig2t3r
-2i1h
-i2hans
-i2har
-ih1auf
-i3he
-ihe1e
-ih1elt
-ihe4n
-ihenk4
-ihe3u
-ih3m
-ih3n
-ih3r2
-ih2s
-ih3sti
-ih1um.
-ih3w
-ii2
-i1ia
-i1ie
-i3ig
-i1im
-i3in
-i1is
-ii4sc
-ii3t
-i1it.
-1i2js
-2ik
-ik1aka
-ikaken3
-i2k1akt
-i2k1alb
-i2k1alt
-ik3amt
-i2k1ana
-i2k1ang
-i4kantei
-ikanten4n
-i2kanth
-ik1art
-ik3att
-i2k1au
-ik1äh
-i2k1än
-i2k1är
-i2keb
-ik1ebe
-i2k1ed
-i2k1ef
-i2k1ei
-ike4l1
-ike2n1
-ik1en2s
-ik1ent
-ike2ra
-i2k3e4r2e
-i2k1er2f
-i3kerfam
-i2k1er2h
-i2ker2l
-i2kero
-i2ke3ru
-ike4t
-i2k1eta
-i3ki.
-ik1i2d
-i3kie
-ik1in
-i2kins
-i2k3l
-ik4län
-i3k4leri
-i3k4let
-ik4lim
-i3klu
-i2kne
-ik3nu
-iko3be
-i2k1off
-iko3p2
-ik1o2r
-i2köl
-ik3rä
-ik3re
-i2kres
-ik3rin
-ik4ris
-i3kro3
-i2krö
-ik3sa
-iks2p
-ik3s2z
-ik3ta
-ikt3erk
-ik2t3esk
-ik2t3re
-ikt2u
-i2k1uh
-i2kup
-i2kü
-i1la
-i2lab
-i2l1ac
-i2l1ak
-il1a4ma
-il1ana
-il1ang
-i2l1anm
-i2lano
-il2anz
-ilan4zer
-i2larb
-il1asp
-i2l1au
-i3laub
-i3l2aufb
-ilau2s
-i1lä1
-i2l1är
-2ilb
-ilb4l
-il2c
-il5chen
-il2da
-il2dä
-ild3ebe
-il2d3en2t
-ild2erp
-ild1o
-il2dor
-il2d1r
-ild3t
-2ile
-il1ec
-ileid4
-il1ein
-il1el
-i2l1emb
-i2l1e2mi
-ile3ni
-il1ent
-i2lentl
-i2lents
-i2l1er2d
-iler2ei
-il1erf
-iler2fo
-i2ler2g
-i2l1er2h
-i2ler2kl
-il1err
-i2lerri
-i2l1er2w
-i3l2erz
-ile4th
-il1ex
-ilf2
-il2f3l
-il2f3re
-ilf4s3
-il2gl
-2ilh
-2ili
-il4ia
-ilie4n3
-iliga2
-ili2g3ab
-ilik4
-i2l1ind
-i2l3init
-il1ins
-i2l1ip
-ili3pf
-il2lad
-ill2an
-ill4ant
-il2lä2
-il4lb
-il2leg
-ille4ge
-il2lenn
-il3l2er
-il4lm
-1illu
-illu3s
-il2mak
-il2m1ap
-il2m1au
-ilm1ei
-il2min
-il2m1or
-2ilo
-il2oh
-il4on
-il2op
-i2l1o2r
-i3l2ou
-i3lov
-il1ox
-ils3ent
-ils4to
-ilt2
-il3th
-i1lu
-iluf4
-i2lum
-i2l1ur
-ilü4b
-2ilv
-il2zar
-il2zau
-ilz3erk
-il2zwa
-imad2
-ima1i
-im2al
-im3anh
-i2mans
-i2marc
-im3aren
-i2m1arm
-i2m1art
-im4at
-ima2tr
-imat3sc
-ima2tur
-im1aus
-i2maut
-im3b
-i2meg
-im1ein
-i2mej
-i2mek
-i2mele
-i2melf
-im2en
-i2m1er2f
-i2m1er2l
-i2m1er2z
-i4me3sh
-imes3s4
-i2meti
-i2mew
-imhau2
-i2mid
-im1i2de
-i2mim
-i2m1ind
-i2minf
-i2m1ins
-3immatr
-immen1
-im2m3ent
-im2mit
-1immo
-im4mo2d
-im2mö
-imni2
-2imo
-i2m1ob
-i2mop
-imo3re
-i2mö
-1imp
-imp2fa
-im3pf2o
-imp2s
-im3pse
-2imt
-imt2e
-im3t2i
-imtu2
-2imu
-im2um
-im1urk
-2in.
-ina2be
-in3abu
-in1ac
-i4nack
-in1ad
-i3nald
-inaler2
-ina2lin
-in2alp
-i2n1am
-in2an
-in3an.
-in3ana
-in3ann
-i5nar.
-in2ara
-i2narb
-inas2
-i4n1asb
-in3att
-i2n3au2
-2inä
-i2n1äh
-in1äs
-2ind.
-inda2
-ind2ac
-in2dal
-in2dan
-2indä
-2inde.
-2inden
-in2dene
-inderer4t
-inder3t
-inde3sp
-indes4t
-1index
-in4dh
-ind2i
-1indik
-in3dö
-2indr
-ind4ri
-ind3se
-ind3sp
-ind4spe
-1indus
-in3d2ü
-2ine
-in1ec
-i3nee
-ine2en
-i2neff
-in2elen
-ine2n1
-ine3nä
-i2nener
-i4nen2zy
-ineo4
-i3ner.
-i2n3erbi
-in2erha
-i2ner2he
-in3erle
-i4ner4leb
-iner2lö
-i2n3er2tr
-iner4trä
-i3nes
-inesi2e
-in2et
-in1eu
-ine3un
-i3né
-in3f2
-1infek
-1infiz
-4inflü
-1info
-inf4r
-2infre
-2inga
-in2g1af
-in2g1a2g
-in2g1al
-in2gam
-ing1ar
-2ingä
-in3gen.
-3ingeni
-in3g2er
-in4g3er2w
-2ingi
-2in2gl
-ingmas2
-2ingr
-2ings
-ing4s3am
-ings4por
-in4gt
-2inhaa
-1inhab
-4inhaltu
-2inhar
-2inhau
-2inhe
-2ini.
-in2id
-ini3de
-2inie
-2inig
-inig2a
-ini3kr
-2inis
-ini3se
-inis4t
-init2
-i3nitz
-3inkarn
-in2k3ent
-ink4er
-in2kro
-inks3t
-ink4ste
-in3k2ü
-inma4le
-2inn.
-in4nas
-inne4n
-in2neu
-in4ni2v
-2innl
-in2nor
-1innta
-2ino
-in1od
-ino3e2
-in3ols
-in1or
-inos4
-i3no3t
-i2n1ou
-i1nö
-in1ö2d
-2inr
-2ins.
-ins2am
-in4samt.
-in3sat
-insch2
-2inse.
-in2seb
-2insed
-2insen
-2insk
-in3skor
-in4sl
-in4sm
-ins2p
-3instal
-in2s3tät
-4inst2e
-3instit
-2instra
-in2st3ro
-in2strü
-1insuf
-in2s3umw
-ins3umz
-in2sur
-in3sz
-2inta
-int4e
-2inte.
-1integ
-in3tei
-2intep
-2int2h
-inthi1
-in3ti
-int2o
-2intö
-2in3t4r
-4inträ
-3intrig
-int3s
-i2n1u
-i4nuh
-in3unz
-inu3t
-2inverm
-invil2
-i1ny2
-in3z2e
-inzel4ler
-in3z2i
-in3z2sc
-inz2u
-2i1o
-io3a
-ioa4s
-iob2l
-io1c
-io2d
-io3da
-io3du
-io3e2
-i2of
-iof4l
-i2oh
-io3k4r
-i3ol.
-io3li
-i3ols
-i3om.
-i3oms
-ion2
-i3on.
-ional3a
-ion3an
-io2n3au
-i2onc
-ion3d2
-io4nee
-i2onf
-i4oni
-i3ono
-io2nor
-i3o4n4s3
-ion6scl
-ion6sfi
-i2on3t
-i2ony
-i2o1o
-i2op
-i3o4pf
-iopi3
-i3opt
-i2or
-i3or.
-i3orc
-ior2e
-iore4n
-i3org
-io1r2h
-i3orp
-i3ors
-i3ort
-i3os.
-io3sh
-ios2p
-i2ost
-ios2u
-i2o3sz
-io3t
-i3ot.
-iote3l
-i4oth
-iot4r
-i3o4ts
-io4tt
-i2ou
-i2ov
-i3ox
-i2oz
-i3oz.
-i1ö2k
-i1ön
-i1ös.
-i1ö4st
-ip2an
-i3ped
-ip4el
-i3per
-2ipf2
-ip5fam
-i3pfan
-ipfe2
-iph2
-2ipi
-ipi3el
-ipi3en
-ip4lu
-ip2pan
-ip3pe
-ipp3f
-ip4pl
-ip4ps
-ip3pu
-ip2sa
-ip2sei
-ip2sp
-ip2sta
-ip4stü
-ipt2a
-ip2ter
-ipt3ers
-ipt2i
-ipt2u
-2ipu
-2iq
-i1r2a
-i3ra.
-2i3rad
-ir4al
-i3ras
-irat2
-i1rä
-ir1äh
-ir2b3l
-ir1c
-ir2ch3i
-ir2ch1o
-ir2e
-i3ree
-2irek
-ire4na
-ir4er
-i3ré
-irg2
-irg4s
-ir2i
-2irig
-2irk
-irke4n
-ir2kene
-ir2k3l
-irk4sc
-irk2u
-irli4n
-ir2m1a2g
-ir2mak
-ir2mä
-ir2m1ei
-irme4n1
-ir2m1o2
-irm4th
-ir2mum
-ir4munt
-2irn
-ir2n3a
-ir4nat
-ir4nei
-ir2no
-i3ro
-i1rö
-irpla2
-ir2rei
-irre4l
-ir2reli
-ir2rh
-irs2
-ir2schl
-ir2schm
-ir2sch3r
-ir2sch3w
-ir3se3
-ir3sh
-irt2s3t
-2iru
-ir1u2m
-iru2s1
-iru3te
-i3r2ü
-i3sac
-isa4m3
-i4samp
-i4s1amt
-is2ap
-isa2r
-is3are
-i3sat
-is1att
-i2s3au
-i2säh
-i2s1än
-2isb
-i2sca
-i2sce
-i2schab
-i2schan
-i2schar
-i3s2che
-i4schef
-i4sch3e2h
-isch3ei
-ische2m
-i4schemi
-i4scher4z
-i2schin
-i3sching
-i2sch3l
-i2schm
-isch3ma
-i2schna
-isch3ob
-isch3re
-isch3ru
-i2schüb
-i2schwa
-i4schwir
-i2schwo
-i2sch3wu
-i2schwü
-i2scr
-2ise
-ise3a
-ise1e
-iseh2a
-ise3h2i
-is2eind
-ise3lad
-is4eli
-i4sel4ter
-ise2n1
-ise4nal
-is2end
-i2senho
-isen3s
-is2ep
-ise2r3ei
-is1erg
-i2s1erh
-iser2he
-i2s1erm
-iser2u
-i2s1es2s
-is2et
-i2s3etat
-i3seth
-i3s2eu
-2isf
-2ish
-2isi
-i3si.
-isi2a
-i2s1i2d
-isik2
-i2sim
-i3sin3g4
-i4ski
-i4sku
-is3la
-3islam
-2isma
-2ismi
-ismu2
-is1of
-i3soh
-1i2sol
-2is4o2n1
-iso4nend
-isono2
-i2sop
-is1ort
-3isot
-i2s1ou
-is1o2v
-2isp
-is3pan
-i2spar
-is3pe
-i4s3pic
-i2spro
-i4ss.
-i4s3sa
-is4s1ac
-is4sau
-i4ssä
-i4ssb
-i4s3sc
-iss3chen
-i4ssd
-is3senk
-issen4s5tü
-isseri4e
-issermas4
-isser2s
-i4sserse
-i4ssf
-i4ssg
-i4ssh
-i4ssk
-i4ssl
-i4ssm
-i4ssn
-i4s3so
-i4s3sp
-i4ssq
-i4ssr
-i4sss
-i4s2st
-is3sta
-is4ste
-iss6tel
-is3sto
-iss3tr
-is3strä
-is3stric
-is3stu
-is2su
-i4ssv
-i4ssw
-i4ssy
-i4ssz
-i4st.
-i2stab
-ist3ac
-is4tal
-i4stam
-ist2an
-i2s3tang
-i2st1ap
-is3täu
-ist2e
-i4stea
-i4stec
-is4te4n
-ister4ras
-is4ti
-ist2id
-istin4f
-ist4o
-ist4ra
-i2strä
-i2stre
-istri3en
-is3tromm
-i2stur
-isu2m
-isum3p
-isumpf4
-i2sü
-2isy
-i1ß
-ißer2s
-iß3ersc
-i2ßerse
-it1ab.
-it1abs
-ital3a
-ital3l
-it1alt
-it1a4m
-ita3ne
-it3anr
-ita2po
-it1app
-itar5b
-it1a2re
-it1art
-i3tat
-it1au
-i3tauc
-i2taut
-2itä
-it1änd
-i2t1äs
-ität2
-it1eff
-it1e2he
-i2t1ei
-i4teic
-2itel
-ite4l1a
-i2telek
-it1emi
-i2temp
-ite2n
-i3ten.
-itens4
-i2tents
-i2tepo
-i2t3er2fo
-iterin4d
-i4ter4klä
-it2erö
-i4tersche
-i2t1es2k
-ite3sp
-i2t1ex
-i3text
-2i2th
-i4th.
-i4thä
-i3thr
-i4ths
-i4thü
-i4thy
-1itia
-i3tic
-i2t1id
-i3tig
-1itii
-iti2kr
-it1in
-i3tis
-i4tiso
-iti3sp
-i4tiss
-i3tiv
-iti2v5a
-itiver3f
-it3le
-itmen2
-2ito
-i3to.
-it1ob
-i3toc
-i2t1of
-ito2p
-it1orc
-it2os
-2itr
-i2t3rad
-i3tradi
-it3raf
-it3ras
-it3rau
-it3räu
-it3re
-i4tren
-it4ret
-i3trie
-it3rob
-it3rom
-i2t3run
-it3rut
-2its
-it2sa
-its1a2g
-it2s1e
-itse2h
-its3e2r1
-it4sh
-it4sm
-its1or
-it4stec
-it4s3tem
-it4s3tes
-it4stra4s
-its3trau
-it2sur
-2itt
-itt3ac
-it2teb
-it4temp
-it3ter
-itt3erfo
-itt3hä
-it2tob
-it2top
-it2tri
-itt4schi
-itt2se2h
-itt2sei
-itt2sp
-itt2sti
-itt4sz
-it1uh
-it1ums
-it2ung
-i2tuns
-ituran2
-it1urg
-i3tus
-itut4
-ityl2
-2itz
-itz3erg
-itz3erl
-itz2erw
-it2zö
-it2z3w
-2i1u2
-i2u3l
-i3um3
-iuma4
-iump2
-ium4se
-i3un2
-i2up
-i3us
-ius3t
-i1ü
-iü4be
-2iv
-i2v1ad
-i2v1a2g
-i2v1ak
-i2v1am
-iv1an
-iv4at
-i2v1ä
-i2veb
-i2v1ef
-iv1ei
-iv1elt
-i2v1ent
-i2v1ep
-ive3re
-iv1erh
-iver4kl
-iv1erl
-iver3s
-i2v1ex
-ivil3l
-i2v1im
-i2v1ind
-iv1int
-i3vol
-ivo3re
-i2v1r
-i2vun
-i2v1ur
-i2vü
-2iw
-iwur2
-2i1x
-i2xa
-ix2em
-ixt2
-i1y
-2iz
-iz1a
-iz2ac
-i2zag
-i2zan
-i2zap
-iz2arr
-i3z2as
-i2zat
-i2zau
-i2zä
-i3ze
-iz2ei
-izeits2
-i2zele
-ize2n
-i4zener
-i4zentz
-iz1erg
-i4z1erl
-izid3
-iz1ir
-izi4th
-izo4f
-i2zö
-i2zuna
-i2z3w
-i3z4wi
-í1
-ï1
-1j
-j2a
-jab4r
-jah4r3ei
-jahr4s
-ja3l
-jal2a
-ja4lt
-ja3ne
-jani3t4
-jas2o
-jat2
-2jd2
-jda3
-jd4an
-je2a
-jean2s
-je2g
-jek2t3a
-jek2ter
-jek2tin
-jekt3o2
-jektor4
-jek2t3r
-je3na
-je2p
-je3r
-jer2e
-je4rr
-je4rs
-je2t1a
-je4t1e
-je4t3h
-je2tin
-je2tor
-je2t3r
-jet3t
-je2t1u2
-ji2v
-2jm
-joa3
-jo2b1
-job3r
-jo2da
-jo2i
-jol2a
-jong2
-jo2p3
-jo1r2a
-jor3d2
-jo2sc
-3jou
-jou2l
-j2s
-2jt
-j2u
-ju2b3l
-jude2
-jugen4
-jugend3
-ju2k
-jul2i
-jung5s4
-ju3ni
-ju3r
-jur4a
-jur2o
-ju4rt
-ju3t2e3
-jutel2
-2jv
-1k
-ka2ans
-ka3ar
-2k1abb
-kab2bl
-2kabd
-2k1a2ben
-2kabf
-2kabg
-2kabh
-2kabn
-2k3a2bo
-2kabr
-2k1a4bs
-2k1abt
-2kabw
-2kabz
-ka1c
-kade2r
-2k1adm
-2k3a2dr
-2kadv
-ka3e
-ka3f4l
-ka3fr
-kaf3t2
-kag2a
-ka1in
-kaken2
-ka3kl
-kak6lan
-2k1akt.
-4kala.
-kala3b
-ka2l1a2d
-ka2lan
-ka4l3d
-ka4l1eh
-ka2lens
-kal3eri
-3k2alk
-kal2k1a
-kal4kan
-kal2k3l
-kal3l
-kall2i
-kallö3
-2k1allt
-ka2l1on
-ka2lop
-ka2l1os
-kals2
-kal2tex
-kal4th
-ka2lu
-ka4mat
-kamp4f3en
-k2amt
-kan4al
-ka4n1a4s
-ka2nau
-2kanb
-kan3d2
-2kanda
-2kandä
-kan2e
-2kanf
-2kanim
-kank4
-2kanl
-2kanom
-2k1anor
-2k1ans
-k2ans.
-4k3antenn
-ka3nu
-kan2um
-2kanw
-2k1anzu
-2kanzü
-ka2o3
-ka3pr
-3kara
-2karbe
-2karc
-k2ard
-kar3d2a
-3kare
-4k1area
-kar3ent
-k2arg
-ka3r2i
-kari3es
-k2ark
-2k1arm
-kar4pf
-k2ars
-k2ar3ta
-k1arti
-2kartik
-karu4
-k2arw
-3k2asc
-kas2e1i
-kasi1
-kas2o
-ka4s3p
-kas4t
-2k1ast.
-ka3sta
-ka4ster
-3kasu
-ka3sz
-ka2tab
-ka2tan
-3kateg
-k3atel
-kate2n
-ka3t2h
-ka2t3r
-kat3se
-katt4
-ka4ue
-kau4fer
-kau4f1o
-kauf4s3ag
-kauf2sp
-kauf4s5tem
-kauf4sti
-k2aus.
-2k1auss
-2kausw
-kau3t2
-2kauto
-ka3ve
-3kaz
-käl3
-k1ä4mi4
-kär2
-2k1ärg
-kä2s3c
-käs5ch
-käse3
-kä3th
-2kb2
-k3be1
-kbo4n
-kb4ri
-kby2
-2k1c
-k3ch
-2kd2
-k3da
-kd4rö
-ke2ben
-2k1ec
-ke2di
-2k1eff
-kefi2
-kege2
-kegel3e
-ke2gl
-ke2he.
-ke2hen
-kehls4
-kehr2s
-kehrs3o
-2k1eic
-2k1eig
-kei2li
-2k1ein
-kein2du
-kein4e
-k1eis
-2keise
-keit2
-ke2l1a
-ke3lade
-ke3l2ag
-kel3am
-ke2lä
-kelb4
-keld4
-kel3eis
-2ke2lek
-ke2l1en
-ke2l1er
-kel3la
-kel3l4e
-kell2i
-ke2l1o2
-ke2lö
-kel3sk
-k4elt
-kelt4e
-2k1e2mi
-2k1emp
-k2en.
-ken1a
-ken3au
-ke2nä
-ken3dr
-ke2n1e2b
-kenen1
-ke4nene
-ke4nens
-kener2n
-kene4t
-2ken2gag
-k3en4gel.
-ke2nim
-ken3in
-2kenlad
-2kenläd
-kenn2a
-kenn2e
-ke2no
-k2ensa
-2ken2sem
-ken3s2i
-ken3s2k
-ken5s4te
-ken3sz
-k3en2te.
-k3en2ten
-4kentf
-4kentg
-ken3th
-2kentl
-2k1ents
-2kentw
-2kentz
-kenvo2
-ke3ny
-k2enz2
-ke1o2
-2kep
-ke2pl
-k2er.
-ke1ra
-ke2ran
-ke2ras
-ke2rau
-ke2r1ä
-ker2ble
-k2erc
-4kerd
-k2ere
-ke2r1e2b
-ke2rec
-ke3reig
-ker3ein
-k3eremi
-2kerfah
-k2erfam
-ker2fo
-k3er2geb
-2kergu
-ke4rin4nu
-kerin4st
-kerin2t
-k3erken
-k2erko
-k3er2lau
-k3er2leb
-k4erlebe
-ker3m
-ker2na
-ker4nei
-2k3er2neu
-kern3eur
-k1ero
-k2e1rod
-2keros
-ker4reg
-k2ers.
-2kersa
-kert2i
-ker4werb
-kerz2
-k1erz.
-ker2zeu
-2k1er2zi
-k2es.
-ke2s3a
-k2esc
-k1ese
-ke2sel
-kes3pa
-kes2sa
-ke2t1a
-ket2ag
-kete4
-ke4t1eb
-ke4tel
-2k1e2th
-ket3ha
-ket3s
-ketta4s
-kett1h
-2ke2tu
-keu4schl
-2k1e2va
-2k1e2x
-2kf2
-kflei2
-kf4lö
-k3fu
-2kg2
-kga4s1
-kge3s2
-k3go
-2k1h2
-k3he
-k3hu
-ki1a
-ki2ad
-ki2ag
-ki3a4k
-ki3a2r
-ki1ch
-ki3dr
-k2ids
-2kidy
-ki2el
-kie2lei
-kiel3o
-2kiern
-kier2s
-kie4sa
-kie4z
-2kif
-ki3f4l
-ki3f4r
-ki3k
-kik4l
-2ki3l2a
-2kilä
-2kim
-3kin.
-ki2nä
-2kindex
-2k1indi
-2k1indu
-2k1inf
-k2ing
-kin2ga
-kin4g3ent
-king3s
-2kinh
-k2ini3
-kinik2
-ki3n4o
-kinot4
-kin3s
-2k1inse
-k1inst
-2k1int
-ki3or
-kio4s
-3kir
-2k1i2so
-kis2p
-kiss4
-kis5st
-kist2
-kiv2
-kive4
-2kiz
-2kj
-k3jo
-2kk2
-k3ka
-kkab4
-kk4ne
-kl2
-2kl.
-4kla.
-2k1lac
-k3lamp
-klan2
-2kland
-klan3du
-k4lar
-k1last
-k1lauf
-k3laug
-2k1läd
-k2lär
-k2le
-4k3le.
-kle2br
-k3leg
-2kleh
-kl4ei
-klei2e
-k3leit
-k3lem.
-3klemp
-kle2o
-2k3ler
-kle2ra
-2k3leu
-kle3us
-2klic
-k2lien
-k2lif
-2klig
-3k2lim
-k2lin
-k3lin.
-3k4lina
-2k3lind
-k4link
-k2lip
-k2lir
-k2lisc
-2klist
-klit2s
-2k3liz
-2k3loc
-2klok
-3k4lop
-k3lor
-klos4
-klo3sse
-klost4
-2klöc
-2klöf
-k2löst
-k4löt
-k1lu
-k4lu4b
-k2lud
-k2lug
-k2lum
-2klux
-2k1lüc
-2kly
-2km2
-kma2la
-kmas2
-kma3sse
-k2n2
-k4nac
-2k5nach
-2k3nad
-2knah
-2k3nam
-2k3nar
-kn4at
-2knav
-2k3näp
-k3ne
-k4nec
-kne1e
-2knes
-kne3tu
-2knetz
-4kney
-kni2e
-2k3niv
-kno2b3l
-k4nol
-2knorm
-kno4s
-2knov
-2k3num
-ko3a
-ko2al
-kobal2
-2kobj
-kob4s
-koe2
-kof3f2
-koffe3i
-kohl2e
-kohle3i
-koh3lu
-ko2kl
-ko3l2a
-ko3le
-kol2k3
-kol2lan
-3kom
-komer3
-4komn
-ko4mu
-k2on
-kone2
-ko2nem
-kon3s4
-kont4e
-ko2nu
-ko3on
-2kop.
-ko2pal
-ko3pat
-ko3pe
-2koper
-ko4pf
-kopfa2
-kop2fen
-kop4f3err
-3kopp
-ko3r2a
-kor2ba
-kor2bl
-kor2br
-2k1orc
-korder2
-kor4derg
-ko3re
-ko4rel
-2k1org
-ko3rin
-kor2k1a
-kor4kr
-kor3m
-k1orna
-kor4nac
-kor2n3ä
-kor4no2
-2korpi
-k2os
-k4os.
-ko4sk
-ko2sp
-3k4ost
-ko2ter
-ko3t2i
-koti4n
-koti6ne
-kot4r
-kot3s2
-kot2tak
-k1ou
-ko3un
-3kow
-ko2we
-2k1ox
-köde2
-k2öf
-k1öl
-2kp2
-k3pf
-2kq
-k3qu
-k2r2
-2k3rad
-2k3rah
-k4ral
-kras3
-kra4ss
-k3rats
-2kraum
-k4raw
-k4raz
-k4räc
-2kräd
-k4räf
-k4räm
-k4rän
-2k3räum
-2kre.
-2k3reak
-2k3real
-k4reb
-4k3rec
-2kred.
-2k3rede
-2kredn
-2kredu
-2k3ref
-2kreg
-2k3reic
-kre1i2e4
-kreier4
-k3reif
-2k3reih
-2k3reim
-krei4sei
-krei2s3i
-2krel
-k3ren
-2kresu
-2k3rh
-2krib
-2k3ric
-2k3ries
-2krip
-k3risi
-k4roa
-kroa4d
-kro3b4
-k4roch
-4k3roh
-k4rok
-k4ron
-k4rop
-kro4ss
-2krot
-krot4r
-k3rou
-2kröh
-2kruf
-2k3run
-2ks
-ks3a2b
-k3sac
-ksa4k
-k4s1amt
-k2san
-ks3a2r
-ksa4s
-k2sau
-ksau4e
-ksau4f
-k2sav
-k2säh
-k3s2c
-ksch4
-k2s1e2b
-k2s1ec
-k3s2ed
-ks1ei
-ks2eid
-ks2eif
-k2seind
-kse2le
-k2s1eng
-k2s1ent
-ks1er
-ks2ere
-k2serf
-k2serg
-k2serk
-k2serl
-k2sers
-k2serw
-k2s1ev
-k2sex
-k4s1i2d
-ks2im
-k2s1in
-k4s1is
-k3s2ke
-ks3ket
-ks3kl
-ks1o2
-kso4f
-ks4on
-k2sop
-k2sor
-k2sö
-k2spal
-k3s2pat
-k2spä
-k3spe
-ks4pel
-k2sph
-ks2por
-ks2pul
-ks3s
-kss4t
-ks5ste
-kst2
-k4st.
-kst4a
-k2s3tal
-k2s3tanz
-kstat4
-ks3tat.
-k3stäl
-ks3th
-ks3tie
-k2stier
-k2s3tis
-k2stit
-k2s3tor
-k2strop
-k2stuc
-k2s3tum
-k2s3tur
-k2stüt
-k2s1u
-ks2zen
-2kt
-kt1abr
-kt1abs
-k2t1ad
-kt1akt
-k3tal
-kt1am
-k2t1an
-kt2and
-k2t1a2r
-kta4re
-kta3ri
-k2t1au
-kt3aug
-ktau2s
-ktä3s
-kt1ein
-k2tek
-k2t1ela
-kte3li
-kte4n1
-k2t1ent
-k4tentl
-kten3z
-kte4pi
-kte2ra
-kte3ran
-kt4ere
-kt1erg
-k2t1erh
-kter3m
-k2terö
-kte3ru
-ktes2
-kte3sta
-k2t1eti
-k2tex
-k2t1h
-k3ther
-k2t1i2d
-kti2me
-kt3ind
-kt1ing
-kt1ini
-kt3inn
-k2tint
-kti2s1e
-k2tiso
-kti2st
-kti2ter
-kto3b
-k2t1of
-kto3ren.
-k4t3ram
-k3t4ran
-kt3ras
-k2t3rau
-k4tref
-ktro5me
-kt3run
-kt3rü
-kt3s4a
-kt3sä
-kts2el
-ktsen1
-kt3si
-kts1o
-kt2sor
-kts2p
-kt3s2z
-ktt2
-kt1ums
-k2tuns
-kt3z
-ktz4w
-ku2al
-ku1c
-kud4r
-ku2h
-2k1uhr
-kuh3s
-ku3la
-ku3l2e2
-ku3l2i
-2kulp
-kul2to
-kul2tr
-k2um.
-2k1umb
-k2um4e
-2kumg
-2kuml
-kum2s3p
-k2u3n2a
-kun3da
-kund2e
-kunft4s
-2kunm
-kun4s
-kunst3
-4kunt
-2kunw
-4k1up.
-kur2bl
-ku2rei
-kuri2e
-kuri4er
-2k1urk
-2k1url
-ku2ro
-kurs1c
-kur2s3p
-kur2st
-kur4ste
-2k1urt4
-kur3tsc
-3kus
-kus3a2r
-ku2schl
-ku2sp
-kus3ses
-kust2
-kus3ta
-ku2su
-ku2ß
-4kut.
-kut2a
-kuto3
-kü1c
-3küne
-künf3
-3kür
-kür2s
-2kv
-k3ve
-2kw
-2kz2
-kze3l
-k3zu
-3la.
-laa2
-la3ar
-l1ab
-3l2ab.
-lab2a
-la2bad
-l2abä
-2labb
-lab2br
-2labd
-lab2e
-2la2ben
-4labf
-2labg
-2labh
-3labi
-l3a2bit
-2la2b3l
-2labn
-3lab2o
-4labo.
-la3b4ra
-lab4res
-la2bri
-2la4bs
-la2bus
-2labw
-2labz
-la1ceb
-l4ache
-lachter4f
-lacks4
-1lad
-2l1ad2a
-2ladd
-la3de.
-la3d2i
-2ladj
-2l1adl
-2ladm
-l1adop
-2l1a2dr
-3l2adu
-2ladv
-4laf.
-la4f1ei
-la4f1er
-laf1r
-4lafs
-laf3t4
-la4fu
-la2ga
-lag3d
-lagen3d
-l2ager
-lagerin3
-4lagg
-la2gil
-la2gin
-la2gio
-lag3l
-la4g3n
-la2go4
-lag3str
-2la3ho
-3lai
-lai4s3t
-2l1akad
-lake2
-la4kes
-la4kin
-l2akk
-la3k4l
-la4kro
-lakt2
-2l1al
-la2la
-3la5la.
-3lali
-4lalt
-lami3t
-l4amm
-lam2m1a
-lammen4ge
-1lammf
-la4mor
-l2amp
-l3ampu
-2l1amt
-lamt2s
-la4mun
-la2na
-l1anal
-la3nan
-4l1a4n4at
-la4nau
-2la2nä
-3l2and
-l4and.
-lan2d1a
-lan4dam
-land3au
-l4ande
-lan4derh
-lan4d3erw
-lan4d3erz
-lan4d3inn
-l4an2d3r
-lan3dri
-lan3erd
-laner2f
-2lanf
-lan2gan
-2l3angel
-lan4g3esc
-lang3s4
-l2anhe
-3lan2i
-4lanim
-4lanl
-2l1ann
-l1ano
-la2nof
-2l1anp
-2lans
-l1ansi
-3lansw
-2lantw
-2lanw
-lan4zerg
-lan2z3w
-3lao
-2l1apf
-la2ph
-2l1a2po
-lap2pl
-la2q
-la2r1an
-2larc
-lar1e2b
-la2r1ei
-la2rel
-la2rene
-larf4
-3lar3g
-lar3ini
-lark4l
-2larm
-2l1a2rom
-l1art
-2lart.
-lar2ter
-lart2h
-l3arti
-lart4r
-3laru
-l2as.
-la2sa
-la4s3aa
-la4sam
-la4sä
-lasche2
-4lasd
-la5seb
-la4sei
-la4s1e2l
-2lash
-la2sin
-la4sis
-la2so
-2la4sp
-3lasser
-l2ast
-la4sta
-last3an
-last3ar
-la4steu
-las4to
-la2str
-last3ri
-las3tro
-las3tur
-la2stü
-1la2ß3
-la3t2e
-2l3a4tel
-l4at2i
-la5tio
-2latm
-lat2o
-la2tö
-la2t3ra
-lat4ri
-lat2s
-lat3st
-2lat4ta
-lat2tex
-lat2t3in
-lat2t3r
-lat4tro
-latzer2
-1laub.
-lauben4s3
-lau2b3r
-laub2se
-laub4st
-lau4fel
-lau4ferl
-lau4fin
-2laufn
-lau4fo
-1laug
-lau3gl
-lau3i
-3laun
-4laun.
-la4us
-3l2aus.
-2l1ausb
-lau4scha
-2lausd
-2l1ausf
-2lausg
-2l1ausl
-2lausr
-2l1auss
-2lausz
-2lauto
-lau2tr
-la3va
-lave4n
-1law
-lawa4
-l2ax
-la2xel
-l2ay
-lä1c
-1lähm
-2l1ähn
-lä2i
-1länd
-l1äpf
-2läq
-l2är.
-lär2ma
-l1ärme
-2l1ärz
-lä2s3c
-läs5ch
-läs6chc
-2läse
-lä4s3s
-2lät
-2läub
-2läuc
-2läue
-1läuf
-2läug
-2läx
-1là
-2lb
-l3bac
-l2bant
-lb3a2ri
-lbau1
-lb1ärm
-lbb2
-lbb4r
-lb2ei
-lbei4ge.
-l2b3eink
-l2b3eise
-lbe2ral
-lber2ei
-lbe5st
-l2b1e4ta
-l2b1id
-l2b1ins
-lb4lad
-l3b2lat
-l3blä
-lb3le
-l2bled
-l2blic
-l3blo
-l3b2lö
-l3b2lu
-l2b1o2ra
-lb3rea
-lb2s
-lb3sa
-lb3se
-lb3si
-lb3sla
-lb3sp
-lbs4t
-lbst3ac
-lb4ste
-lbst3ei
-lbst1u
-l2b1uf
-l3bum
-lbu4n
-lbus3s
-lbzei2
-2l1c
-l3ca
-l3che
-l4chei
-l4chent
-lchermas4
-l3chi
-lch3le
-lch3li
-l3chlo
-lch3n
-lch3r
-lch3s4
-lch3ü
-lch3w
-l3cl
-l3co
-2ld
-ld3a2b1
-ld2ac
-ld3ack
-l2daf
-lda2g
-l2d1ah
-lda2i
-l2d1ak
-l2d1al
-ld1ams
-l2d3a4n
-ld1arm
-ld1ass
-l2d1au
-ld3au4s
-l3däm
-ld1är
-ld1äs
-ld1ät
-ldbus2
-l3de.
-lde2ben
-l2dei
-ldein5
-l2d1elf
-l2d1e2mi
-l2d1ems
-lden3erg
-l2dentl
-l3der.
-l4d3er2fa
-l4der4geb
-ld1erh
-l2der2he
-ld2erl
-ld2ern
-l2d1er2p
-lder4tr
-lde5sa
-lde2sel
-l2d1es2s
-l2dex
-ldi2c
-l2d1id
-ld1i4mi
-l2d3ion
-ldo2b
-ld2on
-l2dop
-ldo2r
-l2d1ori
-ld2os
-ld2ö
-ld3r
-ld4ram
-ld1ran
-ld1rä
-l2dre
-ld5rie
-l3d4ris
-ld1rol
-ld4ru
-ld5rub
-ld5rut
-l2drüc
-ld3sa
-lds2an
-ld3ska
-lds2p
-lds4t
-ldt4r
-ld3tu
-l2d1ul
-l2d1um
-1le
-le2ad
-le2an.
-le3ar
-3le3ba
-leben2s3
-le3ber
-le2bl
-3lebr
-le2b3re
-lebs2
-2lec
-lech1a
-le2chi
-lech5t4e
-le2dit
-le2dr
-le1en
-le2er
-lee4ret
-le3f2a
-2l1eff
-lef4o
-le2g1ab
-leg1as
-le2gä
-legi3en
-le2gl
-leg4r
-legs4
-3leh
-4lehe.
-leh3r2e
-4lehs
-4leht
-l2eid
-lei3ere
-lei2fan
-lei2fei
-lei2fi
-2l1eig
-lei3gl
-3leih
-lei2hau
-lei3l2
-leim3p
-3l2ein.
-leinbu4
-leinbus3
-lein2du
-l4eine
-lei4nerb
-le2inf
-le2ini
-2leink
-l1einn
-leins2
-l3einsa
-2leint
-l2einu
-le2is
-leisch3a
-lei4schei
-lei4scho
-lei4schr
-lei4sern
-l1eisf
-lei4ss3er
-leis3st
-lei2ßer
-l2eit
-lei2ta
-leit5ersc
-lei2to
-leit3s2
-leits4t
-2leiw
-3leko
-2lektr
-2lekz
-3l2ela
-le2le
-2lelek
-4leleme
-le3len
-leler2
-le3les
-2lelf.
-2l1elfe
-l2eli
-lel3s
-l2em.
-le3mal
-le2mau
-le2m1ei
-3lemes
-3lemet
-lem1o2
-le2mor
-4lemp
-le2mu
-le4mun
-l4en.
-len1a2
-len3ab
-le4nad
-le4n3an
-le4n3a4t
-le2nä
-2lendet
-4lendl
-l1endp
-4lendun
-l4endur
-le2n1ed
-lenen3er
-4lenerg
-le2ners
-le2neur
-2leneuv
-len2gag
-len2kau
-len2k3lo
-len2klu
-l1enni
-le2no
-len4sein
-2len2sem
-len4serk
-len3ska
-len3sz
-2lentg
-2l1entk
-2lentla
-2lentn
-l3entro
-2lentrü
-2l3entw
-lent4wä
-3lentwet
-2lentz
-le4nz
-lenz2a
-len4z3eig
-2lenzy
-leo4f
-le1o4s
-2lep
-l1epe
-le2pen
-3lepf
-4l1e2pi
-4lepoc
-le2pos
-lep4pi
-3lepr
-l2er.
-l2e1ra
-le2rag
-le2r3ap
-le2ra4s
-le2rau
-le2r1ä
-le2r1e2b
-ler2ec
-2lereig
-le2r3ei2m
-le2r3eis
-le2rel
-le2reng
-le2rerg
-le2rers
-le2re4t
-2l3erfas
-2l1erfo
-l2erfr
-l2erfüh
-l1erg
-l2erga
-2lergeb
-l2ergef
-3lergeh
-4lergen.
-l2erger
-l2erges
-3l2ergew
-2lergi
-l2ergl
-l2ergr
-lergro3
-2ler2heb
-2lerhol
-leri2e
-lerin2s
-lerk2
-3l2erka
-l1erkl
-l2erkle
-3l2erko
-ler3kr
-3l2erkre
-3l4erlebe
-3l2erlei
-2lermä
-2l3ermüd
-3lerna
-ler2nal
-ler2nar
-l4erne
-ler4nei
-2l1erö
-3l2erra
-ler2ric
-l2errü
-l4ers.
-l1ersa
-2lersat
-3l4ersl
-ler2sto
-lert4
-ler4trä
-le2rup
-l4erwa
-ler2wer
-2ler2wo
-2l1erz
-ler2zä
-l3erzeu
-ler2zo
-l4es.
-les2am
-les2e
-le3seb
-lese1i
-2l1esel
-l4e3s4h
-le5she
-lesi1
-le3s2k
-les4ki
-le3so
-le2spo
-lest4
-leste3
-lester4i
-3lesu
-4lesw
-2lesy
-le2tab
-2le2tap
-2le2tat
-l1e2th
-le3tha
-2lethi
-let2i
-letsche4
-let2to2
-lett1r
-letts2
-le2u
-4leue
-3le3u4f
-le4uk
-2l1eul
-le3unt
-le4ur
-3l2eut
-l1e2vol
-2lex
-3lexd
-3lexik
-le2xis
-3ley
-1lé
-2lf
-l3fac
-l3fah
-lf4at
-lfäs3
-l2f1ec
-lfe1e
-lf3einh
-l2feis
-lf2en
-l2ferei
-lfe2rel
-lf1erl
-l3fjo
-lf4lä
-lf3led
-lflo5sses
-lf4lö
-l3f4lu
-lf3ram
-lf3res
-lf4ru
-lf4rü
-lf2spe
-lf2s3ti
-lf2su
-lfun2
-lfur1
-2lg
-lgab4
-l3gas
-lga3t
-lgene2
-lgeräu3
-l2geti
-lg2i
-l3gle
-lg2lö
-l3go
-lgoa3
-lg2p
-l3g4ra
-lg3re
-l3gro
-lgro3s
-lg2s
-lg3sch
-lg4s3t
-2l1h2
-l3he
-3lhi.
-l3ho
-l3hu
-1li
-li1a
-lia2b
-li2ad
-li4am.
-lian2g
-li2ast
-3lib
-libi3
-lib4r
-li1c
-lich2ta
-lich5ters
-licht5ersc
-lich2to
-4lick
-li2cl
-li3d2a
-l1ido
-l2idy
-liebe4s3
-lie2br
-3liefer
-li3efl
-lie4n1a2
-li3ene
-li3ens
-lien3t
-li2er
-lie2rei
-li3ern
-lie4s3c
-lie4sta
-lif2fes
-lif2fo
-lif3ti
-3lig
-li2g3ers
-lig1l
-lig4n
-ligs4
-li3ker
-lik2i
-li3k2o
-lik2sp
-lik4tau
-lik2ter
-lik4th
-lik2ti
-lik2t1o2
-lik2u
-li3l
-lil2a
-li4ll
-li3m2a
-lima1c
-lima3t4
-2l1imb
-2limm
-3limo
-2limp
-lin2a
-lin3all
-li3nar
-4lindi
-2l1indu
-li2nef
-li2neh
-li2nep
-li5ner
-li6nere
-li2nes
-2l1inf
-ling3l
-lingst4
-2l1inh
-2l1inj
-lin2kan
-lin2kar
-link2s3
-lino2
-li2nol
-l2insa
-2linsel
-2linsp
-2linst
-2linsu
-2linsz
-2l1int
-l2intu
-li3n2u
-2l1inv
-2linz
-li2o
-li4om
-lion5s
-3lipf
-3lipt
-3lis.
-li3s2a
-li3schm
-li2schu
-lis2h
-li3shi
-3lisk
-2l1isl
-2l1i2so
-3lison
-li2s2p
-liss4
-2liß
-li2t1a2d
-l1i2tal
-lit4an
-li3t2ä
-l2it2e
-3liter
-li3th
-li2t3r
-lits2
-lit3se
-lit3sz
-li4tun
-li2tur
-litz4er
-3liu
-li2vea
-live4n
-li2ves
-livi3e
-li3vr
-4lixi
-li4z3ä
-lizei3
-2lj
-l3ja
-2lk
-l3kale
-lk1alp
-l3k2an
-l3kap
-l3kar.
-l3ke
-lk1erd
-lke3r2e
-lk2l
-lk3lad
-l3k4las
-lk3lic
-l3k4lu
-lk4ne
-lk5ner
-lk3nu
-lko4f
-lk1ofe
-lkor2b
-lk3roc
-lk2s1
-lk3sän
-lk4sb
-lk4set
-lk3si
-lk4sm
-lk4spe
-lks3t
-lks4te
-lkt2
-lk2ü
-2l1l
-lla2be
-l2labk
-l2labt
-l3labu
-ll3acht
-lla2de
-ll1aff
-lla3gl
-l2l1am
-lla4ma
-ll2ami
-ll2anb
-lla2ner
-lla4ni
-l3lans.
-l3lant.
-ll1anz
-l2l3appl
-ll1arm
-ll1a4sc
-lla4tern
-l2lath
-l2latl
-l4latm
-l2l1att
-l2lau
-ll3aufg
-ll3aufk
-llau4m
-ll1au2s
-l4lausf
-l2la2w
-ll3axt
-ll4äh
-l2l1äm
-ll1är
-l3läs
-l2läu
-llb2
-llb4l
-llch4
-ll3d
-lld4r
-l2le2b
-ll3ebene
-l3lec
-ll1ech
-lle3er
-l2l1ef
-l3legr
-lle2gu
-lle2he
-l2leib
-ll1eic
-ll1eim
-l2l3eise
-lle2la
-lle2m
-l2l1emi
-l3len.
-lle4na
-ll3endl
-llen3dr
-ll3endu
-llen4dun
-lle4nens
-l4lentf
-l2lents
-l3lep
-l3ler.
-lle2ra
-ller4eig
-l4lerfas
-ller2fo
-ller4geb
-l4lergene
-l2lergo
-ll3erho
-ll3erkr
-ll3ermi
-ller4müd
-l2l3ernt
-ll3ertr
-ll4erwei
-ll2es
-l2le2se
-lle4th
-l2leuc
-l3leur.
-ll1exe
-llg2
-l2lieb
-l2lieg
-lli2gan
-l3lik
-lli4la
-l2l1ind
-l4linf
-l2l1ink
-ll1ins
-llin4sen
-l2li2po
-ll3k
-ll3m2
-ll5mit
-ll3n2
-ll1ob
-l2lobe
-l2lo2d4
-l2l1o4f
-llo2ge
-ll3ol
-l2lope
-ll1opf
-ll1or
-l4lorb
-llor2g
-l2lo2ri
-llo2te
-l2l1ou
-l3low
-ll1ox
-llö2g
-l3löh
-ll2s1es
-ll3ska
-ll2spr
-ll2stor
-ll3t
-llt2e
-llt2i
-llti2m
-llt4r
-ll4ts2
-llu2d
-l2lu2me
-l3lung
-l2lu4p
-ll1ur
-llust4
-l3lut
-l2lüc
-llü4d
-l2lü2g
-l3ly
-ll3z2
-llz4w
-2lm
-l3ma.
-lm3a2b
-l2m1ad
-lm1a2ge
-lm1aka
-l2m1a4m
-l3mana
-lm1apf
-lm1art
-lm1att
-lmä2s
-lm1ä4st
-lm1c
-lmd2
-lm3e2dit
-l2m1ef
-l2m1ent
-l2m1e2p
-lmer2
-l2m1erf
-l2m1erl
-l2m1erz
-l4messa
-l2m1i2d
-lm1ind
-lm1ins
-lm3m
-l2mof
-lm1orc
-lm3p2
-lmpf4
-lm3s2k
-lms4t
-lm3str
-lm3s2z
-lm3t
-lmt4r
-l2mum
-l4munt
-2ln
-ln2ab
-lna2r
-ln3are
-l3n2e
-lnes2
-l2n1in
-lnus2
-l1nü
-l1ny
-1lo
-3lob.
-l2oba
-3lobb
-lobe4s
-2lobj
-l1o2bl
-l2obr
-lob4ri
-lo2chel
-lodi4e
-3lodr
-lo3dri
-l1ofe
-lo3fj
-lo4gh
-lo2gl
-lo2gor
-lo2gre
-lo2ha
-lo3h2e
-4l1ohr
-loi4d
-loi4r
-3lok
-4l3okk
-lo2k3r
-l4olä
-l4ole
-2l3o2ly
-lomä3
-lo4mel
-lo4min
-lo2ner
-lo4nin
-lo2n1o
-lo2o3
-2lopf
-lop2p1a
-lop2pr
-2lopt
-lo2rak
-lor3am
-lor2an
-lo4rä
-3lorb
-2l1orc
-2l1ord
-lo3r2en
-2l1org2
-lori4di
-2lort4
-l2os.
-lo4sa
-3lose
-lo4ske
-lo4spe
-lo2s3pr
-lo4stel
-lo4steu
-lo2s3to
-lo2s3t4r
-lo2ßu
-lo2t1a
-lo2th
-lo3tha
-loti4o
-lots2
-2l1ov
-lo2ve
-2lox
-1lö
-lö2b3
-2löck
-2löd
-2l3ö4fe
-2lög
-2l1öhr
-2lök
-2l1öl
-2löp
-3lösc
-2löß
-lö4ta
-2lp
-lp2ar
-lpar2k1
-l2p1är
-l3p2f
-lp4fu
-lph2
-l3phä
-l2phir
-lp1ho
-l3phr
-lph4t
-lpi4p
-lp4lu
-lp4rä
-lpt4r
-l3pu
-l3pü
-2lq
-2l1r2
-lra4ss
-lrau2s
-l3re
-lrebs2
-lro2h
-lrö2
-lrö4s3
-l3ru
-l3rü
-2ls
-ls3a2b
-ls3acke
-l2s1a2d
-l4s1amb
-l4samp
-l2san
-ls3ane
-l3sare
-ls3a2ri
-l3sark
-lsau2
-l4s3au.
-lsau4m
-lsau4rer
-ls3au4s
-l2saut
-l3s2äm
-lsä6sse
-ls2äug
-l2s1äus
-lsby4
-ls2c
-l2schin
-l2s1e2b
-l3seil
-ls2ele
-ls1eli
-ls1emb
-l2sent
-ls1er
-ls2erb
-l2serf
-l2serg
-l2serh
-l2serk
-l2serl
-l2sers
-lser2u
-l2serw
-lse2t
-ls1eta
-ls3ha
-l2s1id
-l2simp
-ls2kal
-l3s2kele
-l4skla
-l4sko
-ls2ky
-lso4b
-l2sop
-l2s3ort.
-l3s2öl
-ls2pa
-l2s3pac
-l2s3ph
-l4s3pir
-l4spiz
-ls2po
-ls2pu
-l3s4pul
-ls3s2
-l4st.
-lst2a
-lstab4
-ls3tabl
-l2s3tas
-l2s3tat.
-l2state
-l2s3täti
-l4st3erk
-l4s3terr
-l2s3tis
-l2stit
-l2stoch
-ls3tor
-lstro4
-ls4tru
-l2s3trü
-l2stuc
-ls1um
-l2s1un
-ls2und
-ls3unk
-l4szu
-2lt
-l3ta.
-l2tab
-l3tabl
-lt1abs
-lt2a3d
-ltag4
-lt1am
-l3tami
-ltampe4
-l3tan.
-ltan3d
-l2t1ap
-lt1ara
-l3tark
-lt1art
-l3tarta
-ltar4tik
-lt1au
-lt3aut
-lt1äh
-ltbau1
-lt1eh
-lt1eig
-lt1ein
-lte3mi
-l3t2en
-lten4gel
-lten2sp
-l4tentl
-lt3ents
-lte2ral
-l2t3er2fa
-l3t2erg
-l2terhe
-lter2ku
-lter2nä
-lte2ro
-lt2erö
-lter2se
-l2t1esk
-lte3sta
-lt2et
-l3tet.
-lt3g
-l2t1h
-lt3hag
-l3thas
-l4t3hei
-lthol2
-l3thr
-l3t2hu
-lt1ide
-ltimo4
-l3tin.
-l3tine
-l2tiso
-l3t2i3t
-l2t1ob
-l2t1o4f
-l2tord
-l2torg
-l2t1o2ri
-lto2w
-lt1öl
-lt1ös
-l4t1öt
-ltra3l2
-lt3räu
-lt3rec
-lt3rei
-lt3ris
-lt1roc
-lt3rol
-l2t3rö
-lt3rum
-l2t3rus
-lt2se2l
-lt2s3ort
-lt3s2ph
-lt4stec
-lt2sti
-lt2stüt
-lt3t
-lt1uh
-l2t1um
-lt2um.
-lturan2
-lturen2
-ltu4r3ent
-ltu2ri
-lu1an
-2lu2b3
-luba2
-lu3be
-lubs2
-lub5sz
-lu2dr
-lu2ec
-lu2es
-lu2et
-1luf2
-2l1u4fe
-lu5fel
-2luff
-luft1a
-luft3e
-luf4tei
-luf4t3r
-lu2g1a
-lu2g1e2b
-lu2gei
-lugen1
-lu2gi
-lug3l
-lu2go
-lu2g3r
-lug3se
-lug3sp
-lug3sta
-lu2gu
-2l1uh
-lu1id
-lui2de
-lu4ig
-lu1is.
-lume4
-2lumf
-2lumg
-l1umh
-2lumk
-2luml
-l2ump
-1lumpe
-lum2ph
-2lumr
-2l1ums
-lu3mu
-2l1umw
-2lumz
-1lu2n
-2l1una
-lund4
-2l1unf
-2l1uni
-2lunr
-2l1uns
-2lunt
-2lunw
-lu4pf
-l2ura
-lu2r1an
-lu2rat
-3lurc
-lu2rei
-2lurg
-l2uri
-lu2ris
-l1urn
-lu2ro
-2lurs
-l1urt
-lu3sak
-lu2san
-2luse
-lu2sp
-lus4s3a
-lus2s1c
-lus6sel
-lus3sen
-luss3er4
-lus2s1o
-lus4s3p
-lus4s3t
-1lust
-lu2sta
-lu2stä
-lu4sterl
-lu2s4t1o2
-lus4tr
-lust3re
-lu4s1u
-lu2ß1
-lu2t1a4
-lu4tas
-lu4t3au
-lu2tä
-lu2t1e4g
-lu2t1el
-luter2
-lu2t3er4b
-lut3erg
-lu4t3ersa
-lu2thy
-2luto
-lu2tob
-lu2t1o4f
-lu2top
-lu2t1or
-lu2t3r
-lut3schl
-3lux
-2lüb
-3lübd
-lück4e2
-lücker3
-2lüd
-lüf3te
-lü2hel
-lüh1l
-lü2str
-2lv2
-lva3
-l3vl
-l3vo
-lv3r
-2lw2
-l3wa
-lw4ei
-lweis4s
-l3wi
-2lx
-1ly
-ly3a
-lya4m
-ly3c
-ly3es
-2lymp
-3lyn
-ly3no
-ly3o
-lys2
-ly3th
-2lz
-lza2
-l2z1ac
-l2z1ag
-l2zan
-l2z1ap
-l2zat
-lz1aus
-l2z1äp
-l2zär
-l2z1eim
-lze2l
-l2zele
-l2z3enth
-l2z1ep
-l2z1er2h
-l2zerz
-l2z1id
-lzi4m
-lz1imi
-lz1ing
-lz1inn
-lz3l
-lzo4f
-l2zö
-lz3t2
-l2z1u4fe
-lzug4s
-lzvol2
-lz3w
-l2zwar
-lz4wec
-l2zwu
-1m
-maa2
-2m1ab
-3maba
-4m3a2bar
-m2abä
-m2abe
-4m3abf
-4mabg
-4mabk
-m2abli
-4mabn
-ma2br
-m2a3b4ra
-4mabs
-4mabw
-ma3chan
-mach2e
-mach4t5ers
-mach2tr
-ma2ci
-mack2s
-2m1act
-mada4m
-m2adä
-ma2del
-ma3dj
-ma4dl
-2m1adm
-2m1a2d4r
-ma4d2s
-ma3f
-maf4r
-mag2a
-ma2ge.
-ma4geb
-ma2geg
-ma2gek
-ma2gep
-ma2ges.
-ma2get
-ma2gev
-ma2gew
-4m1agg
-magi1
-magi3er.
-magi3ers
-ma3gl
-2magm
-ma3g4n
-2m1ago
-ma3ha
-mahl2s
-ma1ho
-mai4s3e
-ma4ke.
-ma4kes
-2m1akt
-mal1ak
-ma2lakt
-ma2l1an
-ma2lau
-ma2lär
-2mal2de
-m2aldi
-ma3le
-ma4leb
-ma4lent
-mal2er
-ma4lex
-mali1
-mali2e
-mali3er
-mal3lo
-mal3lö3
-2mallt
-ma2lon
-ma2lop
-m2alp
-mal3t
-malu2
-ma2l3ut
-3malv
-ma4mid
-mam3m
-4m1a2nal
-ma2nar
-2m1a4n4at
-ma2nau
-2m1anä
-2manb
-man2ce
-3man3d4
-man2en
-ma2net
-2m2anf
-mang2
-2man3ga
-m2angel
-2m1angr
-2m2anh
-3manip
-2manl
-4manla
-m2anle
-3ma4nn
-4manod
-2manr
-man3s
-2m1ansa
-2mansä
-man4sh
-man2t1h
-2mantr
-ma4n1ut
-2manw
-2manz
-m1anza
-ma2or
-ma2phr
-ma2po
-m2ara
-4marag
-mar2an
-4m3arb
-2maren
-mar3g2
-3ma1rh
-ma3r2i
-m2a4rk
-mar2kr
-4mar2o
-maro3d
-4marr
-mar4schl
-mar4schm
-mar4schn
-mar4schr
-mar2sp
-mar2su
-2mart.
-ma3r2u
-m1arz
-m2as
-3mas.
-ma3s4a
-mas2e
-ma3s2p
-masse4n
-ma3s2ses
-ma5sset
-mass3t
-ma3s2su
-3mas4t
-ma2sti
-ma4s3z
-ma2tab
-ma2tan
-ma2tä
-m3a2tel
-ma2t3erd
-ma2t3erz
-ma3the
-m4atme
-2matmo
-ma2to
-ma4tort
-mat3se
-mat3sp
-matta3g
-matt4r
-mat3url
-2m1au4f
-3maul
-ma3un
-mau3r
-2maus
-ma4ut
-mau2ta
-m2ay
-ma1y4o
-mä3he
-2m1ähn
-mäh1r
-3män
-4m1änd
-2m1äp
-2mäq
-mär1
-2m1ära
-mär2kl
-mär2z1
-mä3t4r
-mäu2s3c
-2mb2
-mbe2e
-mbera2
-mber2e
-mbe3ri
-mbert4
-mbi3er.
-mb4le
-mble1i
-mb4re
-mbu3sc
-2mc
-m3ch
-2md
-m2dan
-m2d1a4s
-md1är
-mde2a
-m2dei
-mde2m
-m2d1emi
-m2d1ent
-mder2
-m2d1erl
-md2ö
-md3ras
-md3s2e
-mdt4r
-m2d1um
-me3an
-me3at
-meau2
-me2ben
-4mebo
-me1c
-medi3
-medie4
-me1e2m
-me1e2n
-mee4rei
-2m1eff
-mega3
-me4gel
-3meh
-meh6l3er
-2m1eif
-2m1eig
-m2e4i3l2
-mein4da
-meiner4k
-mei4nerl
-m2eis4t
-me3lam
-me3l2ant
-me2l1au
-melb2
-mel3d2
-melde3i
-me2lek
-2melem
-me2ler
-melet2
-2melf.
-mel3ink
-3melk
-mel4k3ei
-mell2i
-melm2
-3melo
-me2lob
-mel2sac
-mel2se
-mel2spa
-melt4
-4mel4tern
-2m1e2mis
-2m1emp
-2m1e2mu
-m2en.
-men3ab
-me3nage
-me4n3an
-men3ar
-me4nas
-men3au
-4m1endl
-menen1
-meng2a
-2men2gag
-men3ge
-me4nh
-me2nim
-me4n3k4
-men2on
-me4ns
-men2se.
-men2sem
-4mensemb
-men2sen
-men4ser
-men2ses
-mensi2d
-menst4
-3m4enta
-men2t3ak
-men4tanz
-mentar6ten
-3m4entei
-ment3eig
-men4t3ers
-4mentn
-ment2sp
-me1o
-2meou
-2meö
-4mepa
-2m1e2pi
-m2er.
-me1ra
-mera3l
-mer2as
-me2r1e2b
-2mer2eig
-me2rens
-mer2err
-mer2erw
-2m3er2gän
-me5ric
-meri2e
-merin2d
-merin2t
-2mer2klä
-3merkm
-m4ersh
-mer3sm
-mer4stel
-mert4r
-merz4eng
-3mes
-me2sal
-me2sä
-4meser
-mes3pr
-2mes2sa
-mess3an
-messe2r
-mes4serg
-mes4s1o
-mes2sp
-mes2s3t
-mes3ta
-mes3tä
-me2str
-mest3ri
-me3su
-me3sze
-3me2ß3
-me3ta
-met3abe
-mete2
-me3th
-me2to
-me2tö
-me2trig
-me3tro
-met4t3en4d
-meu1
-2m1ex
-me2xe
-2mf
-mfi2le
-mf4rü
-2mg2
-mgang4
-mglim2
-2m1h2
-m3hu
-mi1a
-mia2b
-mi3ak
-mia4m
-2m1iat
-mibi1
-mic1e
-mi1ch
-mi2ci
-mi3da
-mi2di.
-mi3dr
-2midy
-mie3dr
-mi3ele
-mi4e3no
-mierer2
-mie2ti
-mie4t3r
-mif2
-mi3f4l
-3mige
-mig4r
-mi3h
-mik1an
-mi3ke
-mi4kel
-mi4kens
-mi3k4l
-3mil
-mi3la
-milch1
-mil4che
-mi3l2i
-mi3l2u
-4milz
-m2im2a
-2m1imm
-4mimp
-min2ac
-mi3nak
-min3anze
-m2in3de
-minde2s
-4m1indu
-mi2nef
-miner1
-mi4n3e2ri
-min2eu
-4minfo
-3ming
-min2ga
-2minh
-3mi3ni
-mini3k4
-mi3nod
-mi2nof
-2m1inse
-m1inst
-mi3nu
-3minz
-mioni1
-mi3p
-mi4ps
-3mir.
-3miri
-3mirs
-3mirw
-3mirz
-3mis.
-mi2sa
-mis4au2
-mi2scha
-mi2scho
-mi2schr
-mi2sch3w
-mise1
-2m1i2so
-3mis2p
-mi2spe
-mis5sar
-mis2ser
-mis4st
-mi2sta
-mi3str
-3misu
-mi2ß1
-3mit
-mi2ta
-mit1h
-mi2to
-mi2tr
-mi3tra
-mit3s2
-mit5sa
-mit3tan
-mit3t2e
-mitte3s
-mi2t1u
-4mitz
-mi3v2
-2mj
-2mk2
-m3kn
-mk4na
-mk4ne
-mk4nu
-2m1l2
-ml3c
-m3le
-ml3f
-ml3k
-m3lo
-ml3p
-ml3s2
-2mm
-mma3a
-mm3achs
-m2m1ak
-mma4kr
-mm1all
-m2mank
-m2mans
-mm1anz
-m2m1ap
-mm2app
-mm1art
-mma2ß
-mm1aus
-mmä2
-mmä4s
-m2m1äu
-mmd2
-m2m1e2b
-mme2c
-m2m1e2di
-m2m1ef
-m4meh
-m2mei
-mm1ein
-mm3eise
-mme2l1a2
-mme2lin
-mm2ene
-mmen4te.
-mmen4ten
-m2ments
-m2mentw
-m2me2nü
-mme2r3a2
-mme2rec
-mmer4geb
-mme2s
-mmes3a
-mme3sc
-mme4sz
-m2me4te
-m2m1eu
-mmga4s
-mmi3el
-mmi3m
-mm1inb
-mm1inh
-m2m1ins
-mm1int
-mm2is
-mmi3sc
-mmisch4
-m4mita
-mmi3tw
-m2mo2l
-m2mor
-mm3p
-mmpf4
-mms2
-mm3sa
-mm3si
-mm3te
-m2mum
-mm2un
-mmu3r
-m2mus
-mmuts2
-mmül2
-2m1n2
-m2nesi2
-m3ni
-m3nu
-2m1o2be
-3mobi
-2mobj
-3m2od
-mo3de
-mo2dr
-m1of
-mo4fe
-2mog.
-mo2g1al
-3m2oh
-moh2a
-moi3r
-mo2k1l
-4mol.
-mol3d
-3mom
-mom2e
-3m2on
-mo2nan
-mo2nä
-mon2dac
-mon2del
-mon2d3er
-mon2do
-mo2ner
-moni2en
-mon3s2
-mont2a
-mon3th
-mo1ny
-3m2o2o
-2mope
-2m1opf
-2mopt
-mo1ra
-mo2rak
-mor2an
-mor2d3a
-mor4derm
-mor2dr
-mor3g
-mor3t2
-mo4ru
-3mos
-mo4ska
-mos4t
-moster4
-mo2sto
-mo2su
-mo3t2h
-2motio
-mot4r
-mous2
-m1ox
-moy3
-möbe2
-mö2c
-2möf
-mö4fe
-2m1öl
-2mp
-mpa3ne
-mpe2la
-mpe2lin
-mpe2n
-m2p1ene
-m4pf.
-mpf3au
-mpf1ef
-mp2f3erf
-mpf3erg
-mpf3er2p
-mp4ferpr
-mp2f3er4r
-mp2f3erz
-mp4f3l
-mpf1or
-m4ph.
-mp1haf
-m4phb
-m4phf
-m4phg
-m4phm
-mp1hos
-m4phs
-m4phz
-mpin2
-mp3lei
-m2p3lem.
-m2p3len
-m2p3les
-mpor4ter
-mpot2
-m2p3ra
-mp4rä
-mp3sh
-mps2p
-m3pu
-2mq
-2m1r2
-m3ra
-m3ru
-2ms
-m2san
-ms1as
-m3sat
-m2s1än
-msch2l
-m3se.
-m2s1e2d
-m2s1ef
-m2sein
-m2se2le
-mse2n
-m2s1ene
-m2sent
-ms1erf
-mse2t
-ms1eti
-m2s1eu
-m2sex
-mso2
-m2s1od
-ms1orc
-ms1ori
-ms2p
-m2spä
-m2sped
-m4spl
-m2spot
-m2spro
-ms3s
-mss4a
-mss4t
-mst2
-m4st.
-m4stag
-m2stal
-m2stit
-m2sü
-m4szi
-2mt
-mt1ab
-mt1ak
-mta4m
-mt1ar
-mt3aug
-m2t1e2d
-m2teig
-mt1ein
-m2t1eis
-m2teiw
-mt1elt
-mt1emi
-m2tenga
-m2t3engl
-m2tentf
-m2tentg
-m2t3en2tr
-m2tents
-mter2
-m2t1er4b
-m2t1erf
-m2t1erg
-mt1erh
-m2t3e2r4i
-m2t1erk
-m2t1erl
-m2t1ers
-m2t1ert
-m2teta
-m2t1eu
-m2t1ev
-m2t1h
-mt3ho
-m2t1i2d
-m2tim
-m2t1in
-m2t1i2r
-mti2s
-mtmen2
-mt1ob
-mt1op
-m2t1öl
-mt1ös
-mtra4s3
-m2t3ro
-m2trö
-mt2sa
-mt3sco
-mt2s1e
-mt3send
-mt3s2ka
-mt3s2kel
-mts3tät
-mtt4r
-mt1um
-mtu3re
-mt3z
-mu1a
-2m1uh
-mu3la
-3muld
-3mult
-3mumi
-m1ums
-mum2s3p
-3mun
-mundan2
-mun4derf
-mu2ner2
-4m1unf
-4m3ungeb
-mu3ni
-mu4nin
-4mu4niv
-4munw
-4munz
-mu3ru
-mu4r1u4f
-3mus.
-mu4s1a
-3musc
-mu2s1o
-mu2sp
-mu3s2se.
-mu3s2ses
-mus4ste
-must2
-must4e
-mus4ter
-mu2s3to
-mu2str
-mu2su
-muße3
-mut1au
-mut2st
-2müb
-3müh
-mü2her
-mühl1a
-3mül
-mül2len
-3mün
-mü3s2si
-3müt
-2mv
-mvoll1
-2mw2
-mwa2
-mweg4
-mwel4
-mwelt3
-mwelter3
-mwu1
-my3a
-my3on
-2mz2
-mzug4
-1na
-3na.
-na2a
-2n1ab
-3naba
-na2bä
-n3abh
-n3abk
-na2b3l
-na2bor
-na2br
-nab4rü
-4n3abs2
-na2bus
-4nabz
-3na2c
-n4ac.
-nach1
-nachen2
-na3chen.
-n3achse
-nach3sp
-nacht5ers
-nach6tersc
-nacht6raum
-n1ada
-na3dab
-3nade
-na3de.
-nadel1
-na3den
-na2der
-4n1adl
-4n3adm
-n1a2dr
-3nae
-na3el
-na3es
-2n1af
-na3fra
-nag2a
-na3ge.
-na2gem
-4n1agg
-n1a2gi
-na3gin
-na3g4r
-3n2ah
-nah1a
-na2hau
-n4ahm
-4n3ahn
-4n3aho2
-na2hö
-3nai
-na1i2d
-nai2e
-n1aig
-4n3air
-nai4re
-n2ais
-2n1ak
-3n4akä
-3nako
-na4kro
-4nakt
-na4kus
-n2al.
-na2l1a2
-nal3am
-na4lar
-na2lä
-2n1albk
-n2ald
-nal3da
-na2l1ed
-nal3ei
-na2l3ent
-na2ler2g
-na2lerm
-na2l3erw
-nales2
-nal1et
-nal1ex
-nalg2
-na2lid
-nal3la
-na2lop
-nal2ph
-nal3s
-n2als.
-nal3t
-nalt2a
-nalt4r
-n2alty
-na2lu
-2naly
-na4mal
-na4mat
-3name
-4na4mei
-n4amen
-namens3
-4n1a4mer
-na4mid
-na4min
-na3m2n
-3n2amo
-n1amp
-nam2sp
-2n1amt
-namt2s
-na4my
-n1an
-4na2n4a
-na4nat
-n3a2nä
-4n3anb
-n3and2
-nan1eu
-4n3anf
-4n3ang
-4nanh
-2nani
-4n3ank
-4n3anl
-3n2ann
-4n3anna
-4nano
-nan2o3b
-4n3anp
-2nanr
-4n3ans
-2nantr
-2nanw
-n2anz.
-nanzen2
-nan4zeng
-nanzer2
-nan4zerg
-nan2zw
-na3ot
-na2per
-n1apfe
-2napfel
-na2pos
-n3a2pr
-n1a2q
-n1ar
-3nar.
-na2r1a
-2narc
-n2ard
-n2are
-n4are.
-3nari
-n2ark
-n2arle
-2narm
-n2aro
-na2rom
-na3rö
-n2arr
-nar2rh
-n2ars
-2nart
-n2arta
-na3r2u
-3nas
-n4as.
-na3sä
-na2schw
-4n1a4sp
-nas2s1c
-4n1assi
-4na2sy
-nasyl2
-3naß
-3nat
-n4at.
-n4ata
-na2tat
-na4t3au
-nat1ei
-na3ten
-na2t2h
-4natm
-nat2o
-4natom
-nat1r
-nat4sa
-nats1e
-na4tt
-n4a3tu
-n1au
-nauf2fr
-4nauge.
-3n2aul
-3naum
-na3um.
-4nausb
-4nausd
-4nausf
-4nausg
-4nausl
-n2auso
-4nausr
-4n3auss
-4nausw
-4nausz
-nau3te
-3nav
-nave4
-navi3er.
-navi3ers
-na2x
-1nä
-2näb
-3n2äc
-3näe
-2n1äf
-3näg
-nä2hi
-3nähm
-2n1ähn
-nä2hu
-3näi
-2n1äm
-nä4mi
-2n1än
-2näp
-2näq
-nä2sc
-n2ä4s3s
-2näu
-3nä1um
-2nb2
-n3ba
-n3be
-nbe2in
-nber2e
-nber2gr
-nb4la
-nb4le
-nb4ri
-nbruch4s5t
-n3bs
-nbu3s
-2n1c
-n2c3ab
-n3can
-n3ce4n
-n3ces.
-n4ch.
-nchi3en
-n3chl
-n4ch3m
-ncor2
-n3cr
-n3cu
-2nd
-nda3f
-nd2ag
-n3d2ai
-n2d1ak
-n2dana
-n2dani
-n2danz
-n3dat
-nd3att
-nd1au
-n2daut
-n2dax
-nd1äng
-nd1c
-nde2al.
-n3de1e
-n2dei
-nde3inf
-nde2lat
-nde3l2ec
-nd3elfe
-ndel3l
-ndel4sa
-ndels3en
-nden3sk
-n2dentl
-n2dents
-nde3o2
-n3der.
-nde4rei4s
-n3deren
-nd2erh
-n3deri
-nder4läs
-nde2rob
-n2de2ros
-nder4sat
-nd2es1
-nde2se
-nd4est
-ndi2a3
-nd1imm
-n2dof
-ndo4n3a
-n2dopt
-nd1or
-n2do2ri
-n2d3ott
-n2dout
-n2dö
-n2d3rat
-nd3rau
-n2d3re
-nd5ric
-n2drif
-n2d3roc
-n2drod
-n2d3rö
-n2drui
-n2d3run
-n4dsb
-nd2sene
-n4dsl
-nd2spr
-nd3th
-ndt4r
-n2duns
-ndy3
-ndys2
-ndys4p
-1ne
-3ne.
-ne2ap
-3neas
-ne3ast.
-ne3at
-ne3au
-2n3ebene
-neben3s
-ne2bl
-2n1ebn
-neb4r
-2nec
-3neca
-3nece
-ne2ch
-neck2a
-ne2dit
-2nee
-neei2
-ne3ein
-ne3eis
-neema4
-neen2
-ne1en.
-nee1r
-neer4e
-n1ef
-n2ef.
-n2e3f2a
-2nefr
-2n1egg
-neg4l
-n1e2go
-neg4r
-n1e2he
-2nehe.
-2nehem
-nehen2
-ne3he2r
-3nehm
-2n1ehr
-2n1ei
-3neia
-4neic
-nei4dr
-4neier
-3neigt
-3neigu
-nei4la
-4neing
-4neinh
-4neink
-4neinl
-4neinr
-4neinz
-ne2ke
-2n1eks
-nek3t2
-2nekz
-ne2l
-ne3lä
-nel3b
-n1ele
-ne3leb
-2nelek
-2nelem
-ne3len
-ne3l2i
-ne4lim
-ne4lit
-3nelk
-n2ell
-nel4la4
-nel2lei
-neller4f
-nel2lif
-n2eln
-3ne3l2o
-3ne3lu
-3n2em.
-ne3mas
-2n1emb
-ne5men
-n2emo
-4n3emp
-2n1ems
-3nen
-n4en.
-n2en3a
-nen4am
-ne2nä
-n2enb
-n2enc
-4n1endb
-4n1endd
-4n1endf
-n1endg
-4n1endh
-4n1endk
-n1endl
-4n1endp
-4n1endt
-4n1endw
-nene2b
-nen3ei
-nene4m
-nenen1
-ne4nene
-nen3erb
-2nenerg
-ne2n1eu
-n2enf
-4n1engb
-nen2gen
-4n1engs
-4n1engt
-n1engu
-nen2gun
-n2enh
-ne2ni
-n2enj
-n2enk2
-n2enm
-n2enn
-nen2nar
-ne2no4
-nen3s2e
-2nensem
-nen3sk
-nen3s2p
-nen3s4t
-5n2en3t2a
-4n1entb
-4nentd
-4nentf
-5n2enti
-2n1entl
-4nentn
-nen3to
-5n2entra
-nen2tri
-4n1ents
-4n3entw
-4n3entz
-ne4n3u
-n2env
-n2enw
-nenz2er
-neo3b2
-ne2oh
-ne2or
-ne2pen
-2nepf
-2ne4pi
-2nepo
-ne2pos
-nept4
-n4er.
-ne1ra
-ne2ra2b
-ne2rac
-ne2r3af
-ne2rag
-ne3r4al
-ne2ram
-ne2ran
-ne2r3ap
-n2erat
-ne2rati
-ne3rato
-ne2rau
-n2erb2a
-2n3erbe.
-2n3erben
-2nerdb
-ner2dig
-ne2r1e2b
-ne2rec
-n1erf
-2nerfas
-nerfor2
-3nerfr
-2nerfü
-2ner3g4
-n3ergeb
-4nergi
-3nergr
-n1erh
-n3erhö
-4nerhöh
-3neri
-neri2e
-n2erj
-n1erk
-3nerka
-n2erkö
-n4erleh
-n2erli
-2n1erlö
-nerma3
-nermas2
-n1ermi
-2nermit
-2n1ernä
-4n3erneu
-2n1ernt
-n1eros
-n1eröf
-ne1rös
-n2ers.
-2n1ersa
-3nerse
-ner4sk
-2n3ersts
-nert4
-3nert.
-ne2rup
-3n2erv
-2nerwar
-2n1erz
-n2es.
-ne2sal
-ne2sei
-n1e2sel
-ne2s1ev
-2ne3sh
-ne3ska
-ne2s1of
-ne2s1or
-ne2s3pa
-2n1es2si
-nes5tei
-2n3e2st3r
-4nesyn
-n2eß
-ne2tab
-2ne4tag
-net1ak
-ne2t1an
-2ne2tap
-2ne2tat
-ne4te2l
-ne5ten
-ne2th
-net3ha
-ne3ti
-ne4tim
-ne4tin
-ne2tob
-nets2
-n2ett
-net3ta
-net5te
-net3t4r
-2n1e2tu
-net2zer
-net2z1i
-ne2u
-neu1c
-neu2ere
-neuer2f
-neuer2k
-neuer4s
-neuer2w
-neuf4
-neu3g4
-n2eun
-2n1eup
-neur2
-neu2ra
-neu3t
-3n2evi
-n2ew
-2n1ex
-ne2xi
-3nez
-1né
-2nf
-nf2al
-nfalt4
-nf2ang
-nf4ar
-n3f2ä
-nfäs3
-nfe2i
-n3f2en
-n3f2er
-nf4es
-n4fex
-n3f2i
-nfi2le.
-nf4le
-nf4lö
-nf5löf
-nflös4
-nf2o
-n4föl
-nf4re
-nf4ri
-nf4ru
-nf4rü
-nf3s2
-nf2tan
-nf3tei
-nf2t3r
-nft4st
-nfts3tr
-n2f1u
-2ng
-n3gabe
-ng1abt
-n2g1ac
-n2g1ad
-n2g1ak
-ng1a4me
-ng1ams
-ng3anda
-ng3angl
-ngang4st
-n2ganh
-n4ganl
-ng1ant
-ng1are
-n3g2ars
-n2g1a2v
-n2g1äl
-ng3d
-n2g1eif
-n2g1ein
-ngelb4
-nge3l2ei
-ngel3t4
-n3gene
-nge3nerw
-ngen3s2
-nge2ram
-n2g1erg
-nger2zä
-nger3ze
-n3ges
-nge3s2a
-ng5get
-ng3hu
-n2g1id
-ng2lad
-n3glas
-n2glic
-ng4lok
-n3glot
-ngma5sse.
-n2gn
-ng3ne
-n4g3ni
-ng4nom
-ng2nu
-ng2ob
-n2g1op
-n2g1o2r
-n2gö
-n2grai
-ng4ran
-n2g3rat
-ng3roc
-ngro3s
-ng3rost
-ng2s
-ng4s3au
-ng3sc
-ng5schr
-ng4sd
-ngs3e4h
-ng4sf
-ng5son
-ng5soz
-ng3span
-ng4spar
-ng4stec
-ng5suc
-ng3ts
-n2gum
-ngzei2t
-2n1h2
-n3ha.
-nhabe4r3e
-n5haltu
-nhas3
-n3he
-nhe2r
-n3ho
-1ni
-3n2ia
-ni3alo
-ni2ar
-ni1as
-nibb4
-ni1ce
-n1id
-3n2id.
-ni3da
-ni2de
-n2i3de.
-2nidea
-ni3den.
-ni3dr
-2n3idy
-n2ie
-nie3b
-3nied
-ni2e1i
-ni1el
-nie3l2a
-nie4n
-ni3ene
-nie2rei
-nie4rerg
-ni2erna
-nie4sa
-nie5sse
-ni2eu
-ni3fl
-niga4
-ni2g1ab
-ni2g1am
-ni2g1an
-4n3i2gel
-2niget
-n4igk
-ni4gl
-nig3li
-ni2gn
-nigs3c
-nig4sp
-nihi3
-ni2kar
-4nikei
-4ni2kel
-ni3k2erh
-4nikh
-ni2ki
-nik3ing
-ni2kor
-ni2k3r
-ni4ks
-nik3t4
-4nikun
-3n2il
-ni3l2a
-ni3l2i
-nil3l
-ni3mo
-4nimp
-nin1
-3nin.
-3n2ina
-nin2ac
-ni2nal
-3n2inb
-2n1ind
-2ninf
-3ning
-n2ing.
-n2ingo
-ning4s
-2n1inh
-4n1ink2
-3nino
-ni2nor
-3n2inp
-2n1ins
-4ninse
-4ninsu
-4n1int
-ni3nu
-4n1inv
-3n2inw
-ni2ob
-ni3ok
-ni3ora
-n2ip
-ni4ron
-n1irr
-3n2is
-ni4sam
-ni2san
-ni2sä
-nis3cha
-ni2schw
-ni2s1e
-ni3se.
-4n3isol
-ni2som
-4nisot
-ni2sp
-nis3s4
-nis5st
-nis3tha
-ni2stu
-ni3stun
-ni2s1u
-2nit
-3nita
-ni3th
-ni2ti
-4ni4tia
-nit2o
-3nit4r
-nit3s
-nit4tec
-nit4tell
-nit4ter4g
-nit4t3er4k
-nit2tie
-nit2t3r
-nitt4sa
-niv2
-3nix
-2nj
-2nk
-nk1abr
-n2k1ac
-nk1a2ge
-n3kal
-n4kalg
-nk1ang
-nk1apf
-nk3art.
-n2katm
-n2kato
-nk1aus
-n2kaut
-n2k1äh
-n2k1äp
-nk1ei
-nk2eil
-nke2lei
-n2kelem
-nkelma3
-nkelmas4
-n3ken.
-nke4na
-nker4fah
-nker3la
-n2k3erle
-nke2ros
-nk3ersa
-n2k3erwe
-n3kesc
-nke2t
-nk1eti
-nk1i2d
-n2kide
-nk1inh
-n2k1ins
-n2klade
-n2k1laf
-nk3leis
-n2k3len
-nk3les
-nk2lo
-nk4neb
-n2knis
-n2knit
-n2knu
-n2k1o4be
-n2kopt
-nko2r
-nkord2
-nk1ori
-n2k1ort
-n2köl
-nk4rab
-nk3rät
-n4k5re.
-nk3rel
-n2kren
-nk3rep
-n2krez
-nk3ro
-n2krol
-nk2sal
-nk2se
-nk3sen
-nk2so
-nks2p
-nks6tel
-nks4ti
-nk3s2z
-nk2tak
-nk4tau
-nk2terg
-nk2t3ern
-nkte3sk
-nkt2et
-nk2tin
-nkt1it
-nk2top
-nkt1r
-nkt3ric
-nk2tro
-nk2tru
-nkt2sen
-n2k1um
-nku2n
-nk1urh
-n2küb
-2n1l2
-n3la
-n3le
-nle2ga
-nleit6e
-n3li
-nli4ne
-2nm2
-n3ma
-n3mä
-nmen2s
-2n1n
-n2nada
-nna2g
-n2nalg
-n4n1all
-n2n1amb
-n4nan
-nn1a2sc
-n2nau
-n3nä
-n3nec
-n3n2eh
-nn2ei.
-n3nelb
-nne4le
-nne4na
-nn2ens
-n4nentl
-n4nereig
-nner2fü
-nner4geb
-nn4ergr
-nn2erh
-nn2erk
-n2n3er2la
-nner4mit
-nn2ero
-nne2rö4
-nn3erwa
-nner2z
-nne2s1e
-n2ness
-nn2eu
-nn2ex
-nn3f
-nng4r
-n3ni
-n4nid
-nnk2
-nn2o3b
-nn3obl
-nn3obs
-n2nof
-n2nop
-nno2r
-nn1ori
-nn4sam
-nn3ser
-nn3s2p
-nnst2
-nns3tat
-nn2stoc
-nn2stö
-nnst4r
-nnt2a
-nn5tag
-nn2th
-n2n1uf
-n2n1unf
-nn1ur
-nnvol3le
-1no
-3no.
-no3at
-3n2oba
-n2obel
-2nobj
-no2bla
-n2oble
-3noblo
-3noblö
-2n1o4bs
-3noby
-no1c
-noche4
-noch4r
-2nod
-no2de
-nodi3
-no2ed
-n1of
-no4fe
-no5fes
-2noff
-n1oh
-n2ohe
-no3id
-no2kel
-2n3okk
-no3kr
-nola4
-no2lam
-n3ole
-no4lig
-no2liv
-2n3o2ly
-3nome3
-3nomp
-non2e
-n1onk
-n1ont
-2nony
-no2o
-3n2opa
-3nopä
-no2pe
-2no2pi
-2n1ops
-no3p2te
-3nor.
-nor2a
-no2rad
-n2o1rak
-no3ral
-no3rar
-2norc
-nor4da
-3nordb
-nor2des
-nor2d5r
-nor2du
-no3r2e
-2n1org
-3norh
-3n2orl
-3norm
-norm2a
-nor3mal
-3norö
-3nors
-2n1ort
-3n2os.
-nos2e1
-no3sh
-nos2k
-no5ski
-no2s3p
-2nosti
-nost1r
-2nostv
-nos2u
-no2tan
-no3tart
-no2tä
-not1e2i
-no4t3entr
-no2ter4
-noterb3
-no2tex
-not1h
-no2tho
-n4oti
-no2tin
-no4tl
-no2t3op
-no2t3r
-3nov
-2n1o2x
-3noz
-2nöd
-2nöf
-nö4fe
-2n1ök
-2n1öl
-n2ör
-nö4s3s
-1n2öt
-2np2
-n3pa
-npa2ge
-n3pf
-np4fu
-n3pl
-np4lu
-n3pr
-n3ps
-npsy3
-n3pü
-2nq
-2n1r2
-n3ra
-nra3di
-nran2d
-nra4s3s
-nräu3s
-n3re
-nrebe2
-nre3sz
-nro2h
-nrö2s
-n3ru
-nrücker4
-2ns
-nsa2b
-n3sabo
-n2s1a2d
-n4s1a2gi
-n3saka
-nsa4kr
-n2sall
-n2salt
-ns3ane
-nsa2r
-ns2arg
-n3sark
-nsa4st
-ns4ath
-nsau4e
-nsau4r
-nsau2se
-n2saut
-ns2av
-ns2ax
-n2s1än
-ns2äug
-n2s1äus
-n4schemi
-nscher5g
-n4schl.
-nsch2o
-nscht4
-n3schu
-nsch5werd
-ns2cr
-ns1eb
-n3sed
-ns2eh
-nse2ha2
-nseh3ere
-n2seinf
-ns2ele
-ns3elem
-nse2l3en
-n2sem.
-nsen2sp
-n2sepo
-ns4eq
-n3ser.
-nse2rei
-nser4en
-n2s1erf
-n2s1erg
-n2s1erh
-ns1erk
-ns1erl
-n2serle
-n2s3erne
-n2serö
-ns1ers
-ns3ertr
-nser2u
-n2s1erw
-n2serz
-n4sety
-n2s1eu
-nsfi2l
-ns3hor
-n5show
-ns4ic
-ns3iden
-n3sim
-n4simp
-n2sini
-nsinn2
-nsinns3
-nsi2te
-nsi2tr
-n4sk.
-n3s2kal
-n3s2kel
-ns2kis
-n3skle
-n4skü
-n3s2ky
-n3smara
-n2s1o2d
-ns1of
-n2soff
-ns4om
-n4s3ont
-n2s1op
-n2s3ort.
-ns2pac
-n4sparti
-ns2pas
-ns4pel
-n2speri
-n2s3ph
-n5spie
-n2spo
-n2sprä
-n2s3prie
-n2spro
-n2sput
-ns3s2
-nss4t
-n4st.
-ns3tabl
-nst1ak
-n2stale
-ns4ta2n1
-nst3ane
-n2stas
-n2s3tat.
-n4staten
-n2stats
-n2s3täti
-n5s4te.
-n4steif
-nst3eife
-nst5einhe
-ns4tem.
-ns4ten.
-n4stent
-ns4ter.
-nst3erge
-ns4tes.
-n5steu
-n5s4tic
-n4stilg
-n2stob
-n2s3tole
-nst3opfe
-ns3tor.
-ns3tore
-n2strac
-n2strad
-n4strieb
-n2strik
-ns4trun
-nst3u2t
-nsuli2
-ns2um
-ns1un
-ns2ung
-n2s1ut
-n3sy
-n4sza
-ns4zene
-ns2zin
-n4szo
-n4szu
-n4szü
-n4szw
-2nt
-n3t2a3c
-ntak4ta
-ntal3ar
-nta2lin
-n4t1all
-nta2lo
-nt2alp
-n3tam
-nt2anb
-nta3ne
-nt1ant
-ntar3ak
-nt2arb
-ntar2c
-nt1ark
-nt2arm
-nt1art
-n4tarti
-ntar4tik
-n4t3artu
-ntasi2
-n2t1ass
-n2tath
-n3tatl
-nt1äm
-n2t1äu
-nte3au
-nte1e
-nte3g4
-n2t1eh
-n3tehe
-n2teig
-nt3eilt
-nt1ein
-n2t1eis
-n2temä
-n2t1e2mo
-nte4na
-n3tens
-nten4te.
-ntera4
-nte4r3eis
-nter3g
-nteri4en
-ntern2e
-ntes2
-nte3sa
-n2t5ess
-n4testri
-n2te4ta
-nteu3
-nteu4eri
-nte3v
-nt1hel
-nt1hie
-nt1ho
-nt2hos
-n2thot
-nt2hu
-n2t3hum
-nt2i
-nti2en
-ntim3p
-n2t3ind
-nt3inf
-nting2
-nt3inh
-ntini1
-nti3t
-n3t2lem
-ntmen2
-ntni2
-ntnis1
-nto3re
-n2torg
-n2t3o2rie
-n4t1ox
-n2t1öl
-nt4ral
-ntras3s
-nt3rau
-nt4raum
-nt5re.
-nt3rea
-nt3rec
-n3t4ree
-nt3reif
-n3trep
-nt4repr
-nt4ré
-nt3ric
-n2t3rieg
-nt3rin
-n2troh
-n2tropi
-nt3run
-n2t3rü
-nts2ah
-nt3san
-nt4sang
-nts3k
-nts2p
-nt3spe
-nts4ti
-nt2sur
-ntt2
-nttü3
-ntu4re.
-n3t2ü
-nt3z
-nt4zk
-1nu
-3nu1a
-nu3a2r3
-nubi1
-2nuc
-nude2
-3nue
-nu2es
-nu4fe
-2n1uh
-3nuhi
-3nui
-n2uk
-nu3k4l
-n3u2kr
-null3eb
-nul4lin
-n2um.
-2n3umb
-n2ume
-2numf
-2numg
-2numl
-3n2umm
-4n3umma
-4numr
-2n1ums
-2n1umv
-2n3umz
-nu2n
-2nuna
-2n1u4ne
-3n2ung
-4n3ungl
-4n1uni
-n3unk
-2nunr
-2nunt
-2nunv
-2nunw
-3nuo
-2nup
-2nu2r
-nur2i
-nurs4
-nur2z
-3nu2s
-nu3sc
-nu3se
-nu3sk
-nu3spo
-nuss3er2
-nuss3p
-nu4s3t
-nu2ß1
-3nut
-nu2t1a
-nuti2v
-n3uto
-nu2top
-nu2t3r
-3nuu
-3nux
-3nuz
-2nüb
-nü4be
-nür1c
-1nüt
-2nv2
-n3ver
-n3vl
-nvoran2
-2nw
-nwei2st
-1ny.
-2n1ya
-n2ya.
-1nyh
-n1yo
-1nyr
-1nys
-1nyw
-2nz
-n2zac
-n2z1a2g
-n2z3a4k
-n2z3a4ne
-n2zant
-n2zar
-nz3a2ri
-nza4s
-n2zat
-n2z1au
-n2zän
-n2zär
-nze4la
-nzel3l
-nzel4lig
-n3zeni
-n2zense
-n2zentl
-n2zents
-n2z1erh
-nz1erl
-nzer2lö
-nz4err
-nz3erste
-nzer4tra
-n3z4es
-nze3sk
-nze2t
-nz1eta
-nze3u2t
-n2z1id
-nzi2ga
-n2zinh
-n2z1ini
-nz1int
-nz1inv
-nz3le
-nzlei3
-n2z1op
-n2zöl
-nzt4r
-nzu3p
-n2z3wa
-nz3wä
-n2zwet
-n2zwir
-n2zwö
-n2z3wu
-1ñ
-ño1
-ñor2
-2o1a2
-oa3bi
-o2ac
-oa3che
-oa3chi
-o2ad
-oa3de
-o3ah
-oa3in
-oa4k1l
-oa4ku
-o3al
-o4a3la
-oa4me
-oa4mé
-o2ami
-oa4n4a
-oa4nn
-o2a3q
-o2ar
-oa4re
-o2a3s
-3o4ase
-oa4si
-oa5sis
-oa4sp
-o3a4ss
-oa3te
-2o1ä2
-oäs3
-2ob.
-o3b2al
-obal3l
-ob2am
-2ob2ar
-2obau
-ob1auf
-2o3b2ä
-2obb
-ob2e
-2obe.
-2obea
-2obec
-2obef
-o2b3ein
-2oben
-obe4na
-oben3d4
-1o2ber
-2o3ber.
-ober3eis
-ober3in
-obe4ris
-2obev
-2obez
-2o3b2i
-obi2e
-3obj
-ob1la
-ob3lei
-1ob3li
-ob4lit
-2oblo
-2ob2lö
-ob2lu
-o2boe
-ob1or
-2obot
-2obö
-ob3rei
-2obrü
-ob3s2h
-ob3sk
-obs4p
-ob2sta
-2o3bu
-o4bunt
-obus3s
-2o3bü
-o4büb
-2o3by
-2oc
-o3ca
-oc1c
-3occl
-o1ce
-och1a
-ocha2b
-ocha2r
-o1che
-oche4b
-o2ch1ec
-och1eh
-och1ei
-oche2l
-ocher2k
-ochi4d
-ochi3e
-och3l
-och3m
-och1o
-ochö4f
-och3r
-ochs4p
-och3t4e
-o1chu
-ochu4f
-och3u2t
-och3w
-o3ci
-ock3er4sc
-oc4ko
-ock3sz
-ock3ta
-o1cl
-o3co
-o3cy
-2od2a
-od3ak
-od2dr
-o3de2c
-o3d2e3i
-odein3
-ode2l3ag
-ode2n1
-ode2s1e
-ode3sp
-od2et
-o3dex
-od2i
-2o3dia
-2odic
-2odif
-2o3dir
-2odn
-o2don
-o2d1op
-odo4s
-od2ö
-2odr
-odt4r
-2odu
-o3dy
-ody4m
-2o1e
-oe2b
-oe4be
-oe3de
-oe2h
-oe2l
-oe2m
-oe4mi
-oen1e
-oe4nz
-oe2p
-o2es
-oe2sc
-o2et2
-o3et.
-oe4ta
-o3ets
-oe2v
-oe2x
-o1ë
-o2f
-2o3fa
-of1a2d
-of1a2g
-of2an
-of1au
-2o3fä
-of1är
-o3fe
-o4f1e2b
-o4f1ec
-2ofee
-o4f1ei
-2ofem
-o4fent
-2ofer
-o4ferb
-o4f1err
-2of2es
-o4f1e2t
-2ofeu
-2off.
-of2fa4
-of4fal
-of4fam
-off3erz
-of2f1in
-of2fir
-of2fix
-1offiz
-of2f3l
-2offn
-of2fo
-of2f3r
-offs2
-off3sh
-off3si
-off3sp
-of2fü
-2o3f2i
-ofi3e
-ofie2i
-ofi3k4l
-2o3fl
-of3le
-of3li
-of4lö
-2o3fo
-2o3fö
-2o3fr
-of3rä
-of4ru
-of4rü
-ofs1
-of2sa
-of4sam
-ofs2ch
-of2se
-of2si
-of2s3p
-of2staf
-of2sto
-ofstra6ssen
-of2su
-2oft
-oft2a
-of2tei
-of3th
-oft4r
-2o3fu
-of3uh
-of3ur
-o3fü
-2og
-o2g1ab
-o2g1ac
-oga3d
-og1ang
-o2g1e2i
-ogel3dr
-oge2li
-ogener2
-ogen2id
-ogerätein6
-ogeri2
-o2g1eth
-og2gl
-o3gh
-ogi4e
-o2g1ini
-o2g3ins
-og1l
-og3le
-og2lo
-o3g2n
-og4na
-og4ne
-og4ni
-ogoi3
-og1o2ri
-og2s
-og3sc
-og3si
-og3s4p
-2o1ha
-o3ha.
-oh1alk
-oh1ar
-o1hä
-o1he
-o2h1eis
-o2h1er4t
-oh1er2z
-o2herze
-2o1hi
-2ohl
-ohl1a
-oh2la2d
-oh2lä
-oh3lec
-ohl1ei
-ohle3l
-oh3lep
-ohler2
-oh4lerg
-oh4l3erh
-oh4lerw
-oh3lo2
-ohl1or
-ohls2e
-oh2lu
-ohm2a
-1ohmi
-oh3mu
-ohn1a
-oh4nac
-oh3nee
-oh2ni
-1ohnm
-oh2n1o
-ohn3sk
-2o1ho
-oho2l1e
-ohol1o
-oh1o2p
-2ohö
-oh3öl
-ohr3a
-oh2rel
-oh2rem
-ohren3s
-ohrer2
-oh2rerg
-oh3rers
-oh3ri
-oh4rin
-oh4rol
-1ohrr
-ohrt4r
-ohs2
-oh3sa
-oh3t
-o1hu
-oh3w
-2o1hy
-2oi
-o1i2d
-o3ida
-o1i2m
-o1in
-o4ine
-oi2r
-o3isch.
-o2ische
-oi3se
-o1ism
-oiss2
-oi4st
-o1i2t
-oi4ta
-oi3te
-oi3th
-oi3ti
-oi4tu
-2oj
-2ok
-ok2a
-oka3b2
-o2k3ac
-oka3i
-oka2la
-okale2
-ok2e
-oki4o
-ok2la
-ok3lau
-ok1lä
-ok2li
-ok4na
-ok2o
-ok2so
-ok2sp
-ok3t2
-o3ku
-3okw
-2ol
-o1la
-ol3abu
-olaf4
-ol1ami
-ol1ant
-ol2ar
-o3l2a3s
-olast4
-ola2ve
-o1lä
-ol1ät
-ol2chr
-ol4d1am
-ol2dä
-ol2d1ed
-ol2d3eng
-old3ersa
-ol2deu
-ol2dim
-ol2d3o
-ol2d1r
-4o3le.
-ole2e
-o2l1ef
-ol1eie
-o2l1eis
-ol1emb
-ole4p
-oler2
-ol1erk
-ol1er3t
-ol1ess
-ole3u2
-ol1exz
-ol2fa
-ol2fem
-ol2ferl
-ol2f3l
-olf1r
-ol2fra
-olft4
-olgege3
-olge2ne
-ol2gl
-ol2gr
-olie4n1
-oli4er
-oli3k4
-o4l1ind
-oli3tu
-3oliv
-ol2kl
-olk3re
-ol2kro
-olks3
-olk4sc
-olk4si
-oll1ac
-ol4la4d
-ol2l1ak
-ol4lau
-ollä2
-ol2läd
-ol3le.
-oll1eb
-ol4l1ec
-ol2lei
-oll3ein
-ol3lem
-ol3lere
-oll3erh
-oller2k
-oll3er2l
-ol2l3erw
-ol3les.
-oll3ess
-ol2lic
-olli4st
-ol4lk
-ol2lo2c
-ol2lo2g
-ol2lop
-ol2lö2
-olls4
-oll3sa
-oll3sp
-ol2lu
-ol3lus
-ol2of
-oloni2e
-olo3p
-ol1ort
-olo3st
-olo3t
-ol2ov
-ol3s2k
-ols4t
-ol3te
-ol3t2h
-ol3ti
-o1lu
-ol2y
-4o3lys
-ol2z1a
-olzer2
-ol4z3ern
-ol2zers
-ol2zim
-ol2zin
-ol2zo
-ol2zw
-ol2zy
-2o2m
-o3ma
-o4ma2bl
-o4m1a2ge
-om1alg
-om1all
-o5man.
-oma2n3er
-o4m1ang
-omani2e
-om2anr
-o4m1ap
-o4m1ar2s
-o4m1art
-omar2te
-o4m3a2sy
-omat2i
-o4matom
-o4m1au
-o3mä
-o3me
-o4meb
-om1ebe
-o4m1ef
-om1ei
-o4meis
-o4mele
-omen3t4an
-o4mep
-omer2
-o5mer.
-om1erh
-o4meru
-om1erz
-o4mex
-o3mi
-omi4c3
-omi2e
-omiet1
-omil3l
-om1ind
-om1ing
-o4m1inn
-o4m1ins
-o4m1int
-o4miso
-om2it
-om3ma
-om3m2e
-om3mu
-3omn
-o3mo
-o4m3oa
-o4m1org
-om1o2ri
-o4mox
-o3mö
-ompani2
-om3pf
-oms2
-om3sk
-omt2
-om3th
-o3mu
-o4mum
-o4munt
-o3my
-2ona
-on3a2b
-on2ac
-ona3g
-o3nal
-on3ann
-onanz3ei
-o2n1ap
-o2n3arb
-ona3th
-4onatol
-onat2s
-o4n3at4t
-on2au
-2onä
-on1äh
-on2dan
-onde4rers
-ond1r
-on2dra
-on2drin
-on2d3rü
-ond3sk
-2one
-o2n1e2b
-on1ec
-o3nee
-o2nef
-one3h
-o3neig
-on3ein
-on3ele
-on1ema
-one4n1
-o4n3ends
-on2eng
-onenz4
-on1ep
-o3ner.
-on1erb
-o2n1erd
-oner2fa
-o2nerh
-on2erka
-on1ers
-o3nett
-on2eu
-on3f2
-on3gl
-ong4le
-ong4r
-ong3s2
-on2gue
-2o3ni
-oni3de
-onie3g
-oni2ga
-o4nikan
-o4nikb
-o4nikf
-o4nikg
-o4nikk
-o4nikl
-o4nikm
-o4nikp
-o4nikr
-o4niks
-o4nim
-o4nind
-o4ninh
-o4nins
-on3k2
-3onke
-onk4n
-onli2
-onlo2c
-onna2
-on5n2an
-on3n2e
-2ono1
-o3nod
-o2nof
-o2n3oke
-o3nom
-on1orc
-on3ord
-ono3s
-ono3t2
-ons1a2
-onsau1
-onsch2
-on2seb
-onsen1
-on5seq
-onse4t
-on4sho
-on5sic
-onsi2d
-on5sim
-ons3ing
-ons3l
-onst2a
-ons3tie
-onst4r
-on3ta
-on2t1eb
-ont3end
-on2t3erl
-on2th
-on2t3rat
-ont3s
-2onuk
-o3nur
-2onut
-on3v
-1ony
-o3ny.
-on3z2
-onze3in
-oo1c
-ooch2
-oo2gl
-oo2k3l
-oo2kn
-oo4mb
-oo4mo
-oo2ne
-o1o2p
-oo3pa
-oop2s
-o1or
-oor3a
-oor3d
-oo4sk
-ooss4
-oo2su
-oo2t1a
-oot1ei
-oo2t1h
-oo2t3o
-oo2tr
-oot2s3t
-oot3t
-oo2tur
-2o1ö2
-2op.
-op3adr
-op1akt
-opa2le
-op1ang
-2opä
-1ope
-2ope.
-2o3ped
-o4p1ef
-2opei
-2opel
-2open
-2opep
-o2per
-o4pera
-op1erh
-2o4pf.
-op2f3a
-op3fah
-o3p2fä
-o4pfe
-op2fem
-op2fin
-opf3la
-op3flü
-op2fo
-op3for
-2oph2
-o3phe
-opi3a2
-opie2r3u
-opin2
-2opl
-op3lag
-op3le
-op5leu
-op2ne
-2opo
-opo4la
-op2pan
-op4pl
-1oppo
-2oppt
-2opr
-op3rec
-3o4psi
-op3sz
-1opt2
-2opte
-op3th
-o4pti
-opt4r
-op3ty
-o2pum
-2o3py
-2oq
-2or.
-or1a
-2o3ra.
-o1raa
-2or3a2b
-o2rabb
-o2r3add
-or3adr
-o1r2ag
-1orake
-ora4ku
-o1ral
-oral5l
-o4r3alm
-or4alt
-or2am
-or3a4mi
-o1ran3d4
-or4ane
-oran2f
-oran2m
-oran2ze
-or3app
-2orar
-o1r2as
-o2r3att
-2orau
-orau2s
-oraus4wa
-or2av
-2o3raw
-o1ray
-o3rä
-or1änd
-or1ät
-orb2l
-or1c
-2orca
-2ord.
-2orda
-ord1am
-or2d1ar
-or2dau
-2ordb
-or3de.
-ord3eng
-ord3ermi
-or2d3erw
-orde4s
-or2deu
-or2d3ing
-or2d1ir
-or2dit
-1or4dn
-or2do4
-2ordr
-or4ds
-ord3t
-2ordu
-2ordw
-2ore
-ore4as
-o2r1e2b
-o2r1eck
-or1e2di
-o3ref
-or1eff
-ore2h
-o2r1ei
-o3rei.
-o3reie
-o3r2eif
-o3r2eis
-orems2
-o3renn
-oren4ne
-o3rep
-o2r1er
-o3r2ere
-o3r2ero
-ore4th
-o2r1eu
-2orf
-or2fac
-org4a
-org2e
-2orget
-or3ghi
-2orgia
-1orgi3e
-or2gl
-or3gla
-or3gle
-or2gn
-or3gne
-2orgr
-2orh
-2o3ria
-2o3r2id
-orid3i
-4o3rie.
-o3rien.
-ori4eng
-ori4enr
-o4rienti
-ori4env
-o3rier
-o3ril
-ori3m
-or1ima
-ori4mi
-2orin
-o2r1ind
-2or4io
-o2riso
-2orit
-2ork
-ork3s
-2orm
-or2mam
-or2mang
-or2mans
-orm3asp
-or2m1eb
-or2m3erf
-or2mer2g
-or2mor
-orm3ord
-orm3org
-or2mum
-ormu4n
-or4muni
-or4munt
-ormwa5r
-orn3ack
-or2nal
-or2nan
-or2nar
-or2nau
-or5ne.
-or4nei
-or5nes
-or3ni
-or4nin
-or3no
-2o1ro
-o2r1ob
-or3oly
-oro3n2a
-or1opf
-o2ro2r
-o3rou
-or1ox
-2o1rö
-2orp
-2orq
-2orr
-orr4a
-or3r2e
-2ors2
-or3s4a
-ors4c
-or3sche
-or3sh
-or3si
-or3sk
-ors4t
-or3sz
-or2t1ak
-or2t1an
-orta2r
-or3te.
-or2tef
-orte4n
-or3ten.
-or2ten3g
-ort3erb
-or2tere
-or2t3erf
-or2t3erg
-or2terk
-or2t3erl
-or3tes
-or2t3e2v
-or2the
-orti3en
-or2tin
-or2t3off
-or2t1o2r
-or2tö
-ort3rad
-or2trau
-or2t3räu
-ort3re
-or2tro
-or2t1um
-2o3ru
-or2uf
-or1uh
-orum4s
-o4r3un
-oru2r
-orus3
-o2rü
-or3z2e
-orzel5
-or2zw
-2o3s2a
-os3ad
-osal2
-o4s3ami
-2osc
-o4s3ca
-osch3ar
-o3sche
-osch3le
-2ose
-ose1e
-ose1in2
-os2el
-ose3l2a
-o2s1er2k
-os2ex
-2osh
-o4sh.
-os3hak
-o3s2hi
-o4shö
-o4shs
-os4hu
-2osi
-os2im
-o3sk
-o4sk.
-os2kal
-o4skb
-o4ski
-2os2kl
-2os2ko
-o4skr
-o4sks
-o4skv
-o4sky
-1osm
-os5ny.
-2oso
-osol1
-o2sö
-2osp
-os3pec
-os5pfa
-o3s2po
-os4pt
-2oss
-o4ss.
-o4ssa
-oss2abb
-os2s3ac
-oss3ala
-oss3and
-os4sä
-o4ssb
-o4ssd
-o4ssel
-o3ssem.
-oss3enke
-o3ssent
-oss3enz
-oss1ep
-oss3er4b
-osser2e
-osseri2
-o4ssf
-o4ssg
-o4ssh
-o4ssi
-os5sis
-os6sisr
-o4ssk
-o4ssl
-o4ssm
-os2s1o2
-o4s2s3p
-o4ssr
-o4sss
-o4s2s3t
-os2su
-o4ssv
-o4ssw
-o4ssz
-o4st.
-ost3abl
-o3stal.
-ost1am
-ost3ang
-ost1ap
-ost1a2v
-oste2n
-ost3engl
-o4s3tep
-o4sterd
-oster3e
-oster6weit
-ost3eur
-ost1h
-o2stid
-osti3en
-o2stin
-o3sting
-os4tö
-ost3ran
-o2st3rä
-ost3re
-ost3rot
-os4tru
-ost3uf
-2osu2
-os1um
-osu4r
-2o3sy
-osyri5
-o3s4ze
-2oß
-o2ß1el
-o2ß1ent
-o2ß1en2z
-oßer2
-o2ß1erb
-o2ß1ere
-o2ß1erf
-oß1is
-oß1u
-2ot
-o2t3abi
-o2t1ah
-o2t1ak
-o3tam
-ot1ant
-o3tark
-ot1a4st
-o2t1att
-o2t1au
-o3tau.
-ot2ax
-ot1ä
-o2teb
-ote1i
-o4t1eib
-o4t1eic
-otei4n
-ote3in.
-ote3ine
-ot3einh
-ote3inr
-o4t1eis
-ot2el
-ote4l1a
-o3tem
-o4t1emi
-ot2em3p2
-ote4na
-otens4
-o2tentb
-ot1erb
-o4t1er2l
-o4t1erw
-ot4es
-ot2har
-o2them
-o2t1hi
-o2thu
-o2til
-o2t1i2m
-otli4
-ot2o
-oto3b
-ot3off
-oto2ph
-o2t1ö
-otra3c
-o3t4ran
-otra4s3
-ot3rat
-ot3re
-ot3ric
-ot4rig
-ot3rin
-ot2s3at
-ot3sch
-ots1o
-ot2s3pr
-ot3sti
-ot3s4tra
-ot2su
-ott3akt
-ot4t3an
-ot4t1a4s
-ot2teb
-ot2terh
-ot2ter2k
-ot2t1h
-ot2tim
-ott2o
-ot2t3r
-ot3t4ra
-ot3t4ru
-ot1url
-ou3f4l
-oug2
-ou4ge
-ou3gl
-o1uh
-ou1is.
-2oul
-ou2le.
-ou2les
-ou4li
-2o1um
-2o2u2n
-oun2ge.
-oung5s4
-oure2
-ou2ret
-ouri4e4
-ourme4
-our4ne.
-ou3sa
-ous2i
-ousi2e
-ou3s4t
-1outf
-ou3ti
-3outp
-out3s2
-outu4
-2o1ü
-ov2a
-2ovel
-o3ven
-oviso3
-2ovo
-2ow
-o4w3al
-o3wec
-ow2er
-o2wer.
-o2wh
-o3wi
-owi3en
-ow4su
-o2wu
-2ox.
-o1x2a
-2oxe
-o2x1el
-o2xid
-2oxk
-ox3l
-o2x1u
-1oxy
-o1yo
-oz2
-o3za
-1ozea
-2o3zen
-ozen2ta
-ozes2sc
-2o3zi
-ozir3
-ozon1a
-2ozy
-ó2k
-ór3d2
-ö3ba
-öb4au
-öb2l
-ö2b3le
-ö2b3r
-2öc
-ö1ch
-öch3l
-ö2chr
-öchs4t
-öch6st3ei
-öchst3r
-öde1r
-ödi3
-ödienst6
-1ödu
-ö1e
-1ö2f
-ö3fe
-öf2fa
-öf2fl
-ö3fi
-öf3l
-öge3le
-ögen4s1
-ö2g3l
-ö2g3r
-ög2s
-ö1he
-öhe4n1
-öhl4e4
-öhre4
-öh3ri
-öh2s
-ö1hu
-ö3ig.
-ö3isch.
-1ö2k2o3
-ö2k3r
-ök2s
-ö2l
-3öl.
-öl1a2
-öl1ei
-öl1em
-öl2f1ei
-ölf2er
-öl1in
-ölk4e
-öl2k3l
-öl2la2
-öll1an
-3ölm
-öl2nar
-öl1o
-ölo4f
-öls2
-öl3sa
-öl3sz
-öl3tu
-1ölu
-ölz4w
-öm2s
-ön2e
-ö3ni
-önizi1
-önn2e
-ö3o2ta
-öoti1
-2ö2p
-ö3pe
-öpf3l
-ör3a2
-öra4k
-örb2e
-ör2b3l
-ör1c
-ör3de
-ör2dr
-ör3dra
-ö2r1ec
-ö2r1ei
-ö2r1e2l
-ö2r1e2m
-öre2n
-ö2r1ene
-ö2rent
-ö3r2erb
-ö2r1e2r2e
-ö2rer2f
-ö2rer2g
-ör2erh
-ö2rer2l
-ör2err
-ör2erw
-ö3r2erz
-ör1ess
-ör2f3l
-ör2gl
-ö2rim
-ör2kl
-örn2e
-örner2v
-ör1o2
-örpe2
-örs2e
-ör3sk
-ört2e
-öru2
-öru4n
-ö2r1une
-ö2sa
-2ösc
-ö2sch3a
-ösche2
-ö2sch3ei
-ö4schen4e
-öscher4
-ö4sch3erf
-ö4sch3eri
-ö2schi
-ö2sch1l
-ö2sch3m
-ö2schn
-ö2schw
-2öse
-ös1ei
-ö2sein
-ös4en
-ös4es
-2ösl
-ö2sp
-ö3s2s
-ö4ss.
-ö4ssb
-ö4s4s1c
-ö4ssd
-ös3ses
-ös3set
-ö4ssl
-ö4ssn
-ö4ssr
-ö4sss
-ö4s4st
-ö2st1a2
-ös4te
-ös4un
-ö1ß
-ößen3
-öß2ti
-ö2t3a
-öte4n1
-ö2t3r
-öt2sc
-öt2tr
-öv2
-öwe2
-öze3
-özes4
-1p
-3paa
-p1ab
-p2abe
-pab2l
-pab4rü
-2pabw
-3p2ad
-2padr
-pa3el
-pa3fr
-3pag2
-pa3gh
-pa1ho
-3pak
-pa3kl
-pak2to
-3pal2a
-pala3t4
-3palä
-3pal2e
-pa3l2i
-pal2ma
-pal2mä
-pal2m1o
-2palt
-pal2t1a
-pal2tei
-pal2tr
-pa4m3a
-pa2nar
-pa4n3at
-pan3d
-pand2a
-pan4ds
-pa2neu
-pang4
-2pange
-pa4nisl
-pank4
-2panl
-panne2
-pan4n3eb
-4pannu
-3pa2no
-pan3sl
-3pan3t2h
-3panto
-2pantr
-3panz2
-pan3ze
-3pap
-papieren4
-papie6r5end
-pap2pr
-pap2s
-papst1
-pa2r3aff
-par3akt
-pa2rant
-pa3rap
-pa2rä
-2parb
-p2arc
-par3d
-2parer
-parer2g
-2parg
-pargel4d
-3park.
-park3am
-par2kau
-3parke
-par4kr
-3parks
-par3m2
-pa2ro
-2parp
-4parr
-4parta
-3partei
-3parti
-3partn
-3party
-2parv
-2parw
-par3z4
-pas2e
-pa3s2p
-pa4spe
-passer2
-pa6ssio
-pas2sp
-pa2ßu
-2pat.
-pat1a
-pa5tag
-pat4c
-pa3t4e2
-pat2h
-3pati
-3pat4r
-3pau
-4p1auf
-pa3uni
-4pausz
-3päc
-päck3er
-3päd
-pä2d1er
-3päs3
-pä4ss
-pä4ta
-pä4t1e2h
-pä4tent
-pä4tep
-pä4t3erb
-pät1h
-pä2to
-pät3s4
-pät5st
-2pb
-pbe1
-2p1c
-p3ch
-2pd2
-pda2
-pe2a2
-pea4r
-pea4s
-p1e2b
-pech1
-3pech.
-3peda
-3peel
-2pef
-4p1eff
-3peg
-pege2l
-pei1
-4peic
-p2eim
-4peis
-pekt2i
-3p2el
-pe4l3ab
-pe4lai
-pe2l1au
-pe2l3ax
-pe2l1ä
-pelb2
-pel3d4
-pe4l1e2h
-pe2l1er
-pe2let
-pe2leu
-pe4lh
-peli2d
-peli4n
-pe2l3ink
-pel3inn
-pel2ins
-pel3k
-pel3l2a
-pel3lä
-pel3l4e
-pell2i
-pe2lob
-pels4
-pel3sp
-pel3sta
-pel3t2a
-pe2lut
-pel2zin
-pena2
-pe4nas
-pe2nä
-pen3d2a
-pe4nen1
-3penh
-pe4ni2t
-pe2n1o
-pens4
-3pen3si
-pen3so3
-3pensu
-pen3sz
-pent2a
-2pentw
-penty2
-pe2nu2
-pen3z4
-3pep
-pe3pi
-pept2
-pe1ra
-4perad
-pe2rak
-pe2r1ä
-per1e2b
-perer2f
-pe3r2id
-pe3r4io
-3perle
-perra2
-per2rad
-per2r3an
-per4rä2
-per2ric
-per2rie
-3pers
-4persi
-peru2
-pe3run
-3perü
-perwa4r
-pe3s2a
-pese2n
-3pes3s2
-pest1o
-pe2stop
-3pet
-pet4r
-2pf
-p2f1ab
-p2fad
-pf4ah
-pf1ai
-p2f1ak
-p4f1am
-pf1ans
-p2fa2r
-pf3are
-p2f1au
-pf4av
-p2f1är
-p2f1äu
-4pfe.
-p2fef
-p2fei
-pf1eim
-pf1ein
-pfels4
-pf1e2m
-p2fener
-p3fens
-p3fent
-p2f1enz
-p4f1ep
-pfer3a
-pfer4pro
-pf4es
-p2f1et
-pffa3
-pff4l
-pff4r
-p2f1i2d
-pf1inn
-p2f1ins
-p2fl
-pf1lam
-pf4lan
-pf4leg
-pf3lei
-pf3lo
-pf4lü
-4pf5lüm
-pf4lw
-p2fob
-p2fom
-p2fo2r
-pf1ori
-p2f3r
-pf1ra
-pf4rä
-pf4ro
-pf5roc
-pf5roh
-pf4rü
-pfs2
-pf3sa
-pf3se
-pf3sl
-pfs4t
-pf3sz
-pf3t2
-pft4r
-p4fuh
-p2fum
-2pg2
-p3gl
-pgra2
-2ph.
-phal4te
-p1hand
-3pha3s
-p1hau
-phä1
-4phär
-2phb
-2phd
-2p1hei
-phen3d2
-phe4n1e
-phen3s
-2ph1ers
-2phf
-2phg
-p2hid
-phik1a
-phi2kan
-3phil
-phi2t
-2phk
-ph2l
-2phm
-2phn
-p2ho.
-p2hob
-pho2s
-2phö
-ph2r
-2phs
-ph3t2
-2phthe
-phu4s
-phu3t
-2p1hü
-3p2hy
-4phyk
-2phz
-p2ia1
-piab4
-pia5ka
-pi4ali
-pi4a3n
-piap2
-pi2ar
-pia3s
-pi1ce
-pi2e
-pie1i
-piela2
-pieler4ke
-pi3ent
-pie2ra
-pie2reb
-pie2rei
-pies4
-3pig
-pi3gl
-3pil
-pi3le
-pill2
-pil2zer
-pil2zw
-p2im
-pi2nad
-4pind
-pingen2
-ping3s
-3pinse
-pin3sp
-pi2o
-pi3onu
-pi3os
-3pip
-pi2pe
-pi4pel
-3pirate
-pi3ri
-pi3s2k
-2piso
-pis4t
-pi3sto
-pit2a
-pi3t2h
-pit2s
-pit3z2e
-pi2z1in
-3pizz
-2pj
-2pk2
-pku2
-p2l2
-2pl.
-3pla
-4p3lad
-p1lah
-p4lak
-pla3na
-p4lau
-pla2y
-3plä
-2p3le.
-ple1c
-ple2e
-p4leg
-ple3n2
-2p3ler
-p4leu
-p4lex
-2plig
-3p4lik
-p4liz
-plo3n
-2p3lu
-plü2
-2pm2
-p3mö
-2p1n2
-pob2
-2po1c
-3pock
-3pod
-3poe
-po2el
-2p1of
-3pog
-2poh
-4poil
-3po2in
-po2it
-poka2le
-3pol
-po2lan
-po3lar
-po2l1au
-pold2e
-pol3f
-po3li
-pol3lo
-po3lo5p
-pol3z4
-pom2ph
-poni2e
-3pont2
-po1ob
-3p2op
-po4p1ak
-po2p1ar
-pop3l
-po2pli
-po3p2t
-po1rau
-po3re
-porf4
-pori2e
-pork4
-3portal
-por2th
-3portio
-3porto.
-3portos
-3portr
-por2tre
-por4t3ric
-3posi
-pos3s2
-pos4t
-po2sta
-post3ag
-po2stä
-po2st3ei
-po5stei.
-pos6tel
-po4stem
-post3ra
-post3ri
-pot1ar
-3potä
-3pote
-pot2h
-poti2e
-po2tin
-pott1r
-po2t1u
-po3un
-po2w
-powe2
-p2o1x
-pö2bl
-pö2c
-2pp
-p2pab
-pp1ang
-pp1ans
-ppa2p
-p2pat
-pp1au
-ppe3e
-p2p1ei
-ppe2l1a2
-ppeli5ne
-ppel3z
-pp2e2n1
-pper3r
-p2p1erz
-pp3fr
-p2p1h
-pp3he
-pp3l
-p4p1lac
-p4plan
-p4p1lä
-p2ple
-pp1oh
-p2p3ö2
-pp3p
-ppp4f
-p2p3ra
-p2prä
-pp3ren
-p2pri
-pp3rol
-pp3rot
-pp3ru
-pps2
-pp3sa
-pp3sy
-ppt2
-ppt4r
-p3puc
-p2pul
-p2p1um
-p4punk
-ppyl2
-p2r2
-2pr.
-3prak
-pra4s3
-pra5sp
-3prax
-3präl
-3präm
-3präp
-3präs
-4pre.
-4prec
-3pred
-4pree1
-pre2ei
-2preg
-3preis
-prei2s3c
-prei4sei
-prei4ss
-prei2s3t
-2preiz
-3prem
-pren2ga
-2p3rer
-pre3sa
-press2e
-pri2e
-2prig
-pri2l1
-4pring
-prings4
-3prinz
-pr4io
-pri3o4n
-3pris
-pri2t1
-priter2
-prit3t4
-4pritz
-3priv
-pro1
-3prob
-pro3be
-3prod
-3prog
-3proj
-3pr4om
-3prop
-pro3pe
-3prosa
-4pross
-2proß
-3prot
-prot2e
-prote3i
-4prott
-3prov
-3proz
-2prö
-2pru
-2prüc
-3prüf
-4prüh
-2prün
-2ps
-ps1ad
-ps2hi
-psi2e
-p2sö
-pss4t
-pst1au
-ps4te
-p2stu
-3p2sy
-4psys
-ps2ze
-2pt
-pt1a
-pt2ab
-pta2g
-p2tana
-p2t3a4t
-pt1ä
-p3te.
-p2t1e2b
-p4t3ec
-pt1ef
-pt1ei
-pt1emi
-p3ten
-p4t1en2g
-p4t1ent
-pt1ep
-pt3ernt
-pt1erw
-pt1erz
-p3tes
-p3tet
-p4teta
-p4t1eti
-p2t1h
-pt1id
-pti2de
-pt1in
-pto4mo
-pto4na
-pto2p
-pto2w
-ptpo4
-pt3r
-ptri4e
-p2tro
-pt3s2
-pt4sl
-pt1uh
-pt1um
-p3tung
-pt1urs
-p2tü
-ptü4b
-3p2ty
-pt3z
-ptz4w
-pu1a
-3pub
-pub4l
-2puc
-pu2dr
-2p1uh
-2puk
-pu2kl
-pu2k1o
-pu3la
-pu2lin
-pul2sp
-pul2s3t
-3pulv
-4pulw
-pum2pl
-3pun
-4pund
-pun2e
-pun2s
-4punt
-3pup
-2pur
-pu2ra
-pu2rei
-pur3m
-pus2h
-pu3she
-pus3s
-3put
-put2e
-put2s
-puzi3
-2pü
-3püf
-pü4lei
-pül3l
-2pv
-2pw
-pwa4r
-py3s
-py3t
-2pz2
-1q
-2qs
-qu2
-qu4ac
-qu4ar
-qu4at
-quel4la
-qu4en
-qu4er
-que3rel
-que4te.
-3queu
-qu4in
-1ra.
-r1aa
-ra2ab
-2raac
-2raal
-ra3ar
-r2a1as
-r1ab
-ra2b1ar
-r2abä
-1rabbi
-rab2b3l
-2rabd
-ra2bei
-rab2er
-rab3erd
-2rabf
-2rabg
-2rabh
-1rabi
-r2able
-ra2bli
-ra2b5lo
-2ra2br
-2rabs2
-2rabt
-2r3abw
-1raby
-2rabz
-ra2ce
-2r1acet
-ra2cheb
-ra2cho
-2rachs
-rach4t3rä
-ra2chu
-r2ack
-1r2ad
-r4ad.
-rada4
-ra2dac
-ra4d1am
-ra2dan
-2radap
-3radar
-ra2de4i
-ra2d3end
-rade3s
-3radf
-3r4adh
-r4adi
-3radio
-4radit
-3rado
-3radp
-ra4d1r
-rad5ri
-rad3t4
-r2af
-raf3ahn
-raf3ar
-rafe2
-ra4f1er
-raf3r
-rag2a
-ragein2
-rages4
-2ragg
-ra3g4le
-4ragm
-ra2gn
-rag5ne
-r2ago
-rahle4n
-3r2ahm
-r1ahn
-2ra1ho
-4raht
-r2ai
-2raic
-rail2l
-2r3air
-raka3
-1rake
-2rakk
-3ra3k4l
-ra4kre
-ra4kro
-ra4kt
-2rakti
-1rakü
-2rakz
-r2al
-r4al.
-ra2l1a4
-ra4l3ab
-ra2lä
-ral3b4
-3r4a4ld
-r4ale
-ra2l3end
-ra2lent
-ra2l5ern
-ra3lex
-r4ali
-ra2lid
-rali3er
-ra2lin2d
-ra2l3ing
-ralin4sp
-ralin2t
-2r3alk.
-2r3alm.
-2ralp.
-4ralpe
-r4als
-ral3sc
-ral3su
-r3alt
-3r4al3t2h
-ra2l3u
-3r4aly
-ra4mei
-ra4mer
-r2ami
-r2amm
-ram2man
-ram4mens
-ram4m3ers
-ram4mit
-ram4mu
-2ramn
-3ramsc
-2r1amt
-ramt2s
-2ramu
-2rana
-ran1ad
-ran3ade
-r1a2nal
-ra2nan
-ra2nar
-ra2nau
-2ranb
-r2anbe
-r4anda
-r4ande
-ran2dep
-ran2d3er
-3r2andi
-rand3s
-1raner
-2ranf
-ra4ng
-2ranga
-ran2gan
-ran4g3e4be
-3rangi
-r2angl
-rangs4
-rang3sp
-rani3e
-r3a4nil
-ran3ka
-ran2kr
-ran2kü
-2ranl
-2r1anm
-r2anmi
-r2anmu
-2ranna
-ran5ne
-2r1anp
-2ranr
-2rans
-r2ans.
-ran2sam
-ran2spa
-2rantei
-r1anth
-r2anto
-2rantr
-1ranu
-2ranw
-r2anz.
-r2ap
-2rapa
-ra2par
-2rapf
-2rapo
-ra2pok
-ra2pos
-rap4pr
-2r3a2pri
-2r1a2q
-r1ar
-r2ar1a
-2rarb
-r2are
-3r4arei
-raren1
-rar3et
-rar1e2v
-r2arf4
-rar3in
-ra3ris
-r3a4rist
-4r3arit
-r2ark
-2rarm
-raro2
-ra2rom
-rar3r
-2rart
-2rarz
-rar3zw
-ra3s2
-r4as.
-ra4sar
-ra4sb
-ra4schl
-ra4sd
-ra5seo
-ra5sex
-ra4sf
-ra4sg
-ra4sh
-ra5shi
-ra4sk
-ra4sl
-r2a4sm
-ra4sn
-ras3si
-r2as4t
-ra4st3ei
-r3asth
-ra4sto
-ras5tri
-ra4sw
-2rasyl
-2raß
-1rat
-r4ata
-ra2t1an
-ra2t1ei
-r3a2tel
-ra3tes
-3ratg
-r4ati
-ra4tid
-rati2e
-2ratla
-2ratm
-rat2o
-2ratom
-rat3r
-ra2tra
-rat4re
-rat5schl
-2r3atta
-2rattr
-4ratz
-rat3ze
-4rau.
-3raub.
-rau2bri
-4raue
-rau3e4n
-2rauf
-rauf3sa
-2rau3g2
-3raum
-rau2m3ag
-rau2man
-rau3me.
-rau2mi
-3raup
-4raur
-2rausb
-3raus4c
-2rausd
-2rausf
-2rausg
-raus4gewä
-2raush
-2rausl
-rau4sp
-2rauss
-raus4sche
-2rausv
-2rausw
-rau3ße
-2raut
-raut1r
-rau2tra
-rau4tro
-raut3s
-1raü
-r2ax
-raxi4s3
-r3axt
-r2ay
-r2az
-räch4s
-3r2äd
-2räf
-rä3fr
-2räg
-2räh
-2räm
-3rän.
-3räni
-3räns
-2räp
-2räq
-2r1är
-r2är.
-rä3ra
-rä1ro
-rä4sa
-rä4sc
-räse2
-rä5sse
-rä2st
-räs6tel
-3rätse
-4rätz
-rä2u
-4räue
-räu2s
-räus4c
-räu5schen.
-2räuss
-2räuß
-4räut
-2räx
-2rb
-r2b3a2b1
-r3bac
-rba4del
-rb2al
-r3bam
-r2bang
-r2bant
-rb1art
-r2barz
-rb1auf
-rbb2
-rb1ech
-rbe3erf
-rbei3d2
-rbe3inf
-rb3einh
-rbe3int
-r4belä
-rbel2o
-rbe3r2e
-rb1erl
-rbe3rum
-rbe3sl
-r2bim
-r2binf
-r3bit
-rbit2a
-rbi3tu
-rb2la
-rb4la2d
-r2blan
-r4blasser
-r2b3last
-r3blat
-r3blau
-r2b3le.
-r3blen
-rb3ler
-r2bleu
-rb2lin
-rb2lö
-rb3lös
-rbmas3
-rb2ob
-r2bonk
-rb3ras
-rb3rea
-r4b5rechts
-rb4ri
-rb4sam
-rb2sei
-rb2ser
-rb2s1o
-rb4stä
-rb2su
-rb4sz
-rb2u
-rbü4b
-2rc
-r1ce
-r2cer
-r1che.
-r1che2n
-r1ch2i
-rch3l
-r3chlo
-rch3m
-rch3r
-rch4ro
-rchs4
-rch3sp
-rch3t2a
-rch3w
-r1ci
-r1cl
-2rd
-rd2ac
-r2daf
-r2d1ak
-r2d1a2l
-rd2amm
-rdani1
-r2dann
-rd1ant
-rd1ara
-rd1ark
-r2darz
-rdär2
-r3dee
-r2dei
-rd2ei.
-r2d1elb
-r2de2le
-r2delf
-rdels2
-rdem4
-rde3nar
-rden3d2
-r2dengl
-r2dents
-rde3ob
-rde3ono
-rde3r4er
-rderin4s
-r2d3ernt
-rder3w
-rde3sp
-r2d1e2x
-rdie3ne
-rdien4sta4
-r2d1inn
-rd1iri
-rd1ita
-rdo2
-r2dof
-r3don
-rd1os
-rd3oss
-r2d1oz
-r2dö
-rd3rat
-r2drau
-rd4ri
-rd5ric
-rd5ris
-rd4rö
-r3d4rü
-rds2a
-rd2sän
-rd3s2k
-rd3s2z
-rd3t2a
-rd3th
-rdt4r
-rdt2s
-r2d1uk
-rdwa4
-1re
-3re.
-re2ade
-rea4l3erw
-4re2am
-re3as
-re3at.
-re3ats
-reatu3
-2reä
-re2b1a
-re2b1l
-reb3so
-rech3ar
-4rechs
-rechter4
-2rechth
-2reck.
-2recki
-reck2st
-re4ct
-3red.
-4redd
-re2del
-rede3r2
-2redi1
-re2dik
-3redn
-3redu
-re1ebe
-re1el
-re1em
-re1eng
-re1er
-3refe
-4reff
-r2eff.
-3refl
-3re3fo
-3reg
-rege2l3ä
-regenmas5
-4r1egg
-re2hac
-re2h1ar
-re2h1ei
-re2hen4e
-re2h3ent
-re2hi
-reh1l4
-re2h1o
-re3hol
-3rehö
-2rehr
-reh3re
-reh1ro
-reh4th
-re2hü
-r2ei.
-r2eib
-rei2bei
-rei4bel
-rei2ble
-reib1r
-rei2bra
-r2eic
-2rei3d
-r2eie
-4reier.
-reier2t
-rei2fei
-2reig
-3reigä
-3reigeh
-r2eigel
-4reigens
-3reigi
-4reign
-3reigru
-r4eih
-rei3l2a
-rei3l2i
-2r1eilt
-reim2p
-r1ein
-2rein2a
-rei3nal
-2reinb
-rein2du
-rei3n2ec
-reinen3
-2reinf
-rein4fe
-re2info
-2reing
-2reinh
-4reinn
-4r3einr
-2reins
-4reinsa
-rein4sel
-rein4sz
-2reint
-re1in2v
-2reinw
-2reinz
-2reisar
-2reisb
-2reisf
-2reish
-2reisr
-4reisu
-2reisv
-2reisw
-reit3s4
-3rek
-4re2ke
-4rekk
-2rekz
-r2el.
-r2ela
-re3lat
-2relb
-rel2e
-relea4
-re5lei
-re2lek
-4relem
-r2elev
-2relf
-reli1
-2relit
-2relix
-r2ell
-rel2lar
-rel2lei
-re3lo
-r2els
-2relt
-relu2
-3r2em.
-2r1emb
-rem2da
-re2m1ei
-re5men
-2remi
-re3mig
-r2emit
-2rempf
-rems1c
-2rem2u
-r2en.
-r2ena
-2rena.
-re4nac
-re3nad
-re3nal
-re4n3an
-re2nä
-r1endg
-3rendi
-ren3dr
-2renerg
-2rengag
-ren2gan
-2rengp
-3renh
-re2ni
-re3nik
-3renm
-ren2nar
-ren4nene
-ren4sein
-rens2p
-r4ent.
-2rentd
-4rentera
-2rentf
-3rentfo
-2rentg
-2r1entl
-rentmo4
-2r1ents
-3rentss
-2rentw
-2rentz
-r2enz
-ren2zan
-ren2zer
-renzer4f
-renz3er4s
-renzer4w
-ren2z3in
-ren2zw
-re2ob
-re3or
-3repe
-4re2pen
-2repi
-re2pis
-2repoc
-2r1e2pos
-4repp
-3repu
-3r2er.
-rera2
-2r1erb
-3r2erber
-rer2bi
-rere2
-2rereig
-r1erek
-re2r1ep
-3r2erer
-r1erf
-4rerfah
-r4erfe
-2rerfi
-2rerfo
-r2erfr
-r3er2fü
-r1erg
-2r3ergeb
-3rergebü
-r2ergen
-3r2erges
-2rer2go
-rer2gr
-r2ergru
-r1erh
-rer2hö
-re3ri
-re4rid
-r1erk
-rer2kan
-rer2ke
-4r3erken
-3r2erki
-3r2erko
-r2erkre
-r1erl
-2r3er2la
-5r4erlag
-2r3erleb
-r2erli
-2rerlö
-r1erm
-3rermo
-rer2n
-2r1ernä
-r1er3ne
-2r1er4ni
-4r3erns
-4r3ernt
-re2rosi
-2r1er2ö
-r1erre
-rer4reg
-rer2rei
-r1erri
-3r2ers.
-2r1ersa
-rer5scha
-r2erse
-2rersp
-rer2spa
-rer2sta
-r2erstr
-2rer4su
-r1ert4
-r2erte
-2rertr
-rer3tu
-r1erw
-r3erwa
-rer2wac
-rer2wec
-r2erwes
-2r1erz
-rer2zä
-3r2erzy
-3r2es.
-re2sa
-re4sam
-resche2
-re2schm
-re2schw
-rese2h
-res1of
-3resol
-3reson
-2re4ss
-4resse
-res3sei
-res4serh
-res4s3erw
-res2sto
-4ressu
-res6tau
-re4stent
-res6tex
-re2stra
-2restu
-3resu
-2re2ß1
-re2t1ak
-2re2tap
-re2tau
-ret2e
-2r1e2th
-re2tra
-re2trol
-re2u
-reu4eri
-reu3g2
-2reul
-re3uni
-2r1eur
-reu2zei
-2reü
-4r3eva
-2r1evid
-rewa4r
-re2wi
-4rewo
-2r1e2x1
-3rez
-2rezi
-1ré
-2rf
-rf1ack
-r3fahrt
-rfall4s
-rf3aue
-rfäs3
-rfe2i
-r2fent
-rfer3g
-r3f2es
-rff2
-rffa3
-rf3fe
-rfi2le.
-r2fland
-rf4lä
-rf3lic
-rf4lö
-rf4lu
-r3flü
-r2fo2b
-rfolg4s
-r3foli
-r3fon
-r3form
-r2frauc
-rf4ru
-rf4rü
-rf2sa
-rf4sam
-rf2s1ä
-rf2su
-rf2ta
-rft4r
-r3f2u
-2rg
-r2g1a2d
-r2g1ah
-r2g1ak
-rga2ner
-r2g1ap
-r2garb
-rg3art.
-r2g1ask
-rga5stes
-rg4at
-rgd2
-rge4an
-rge2bl
-r3gebo
-r2g1e2c
-rg1ein
-rge2l3er
-rge2li
-rgen2ge
-rgen2z3w
-r3ges
-r2ge4tap
-r2geto
-r3gew
-rg2ins
-rgi2sel
-r4gl.
-r2glan
-r3glanz
-rgleich4s5
-r2gleu
-r2glig
-r2g3lit
-rg2log
-rg2lu
-r2g3na
-r2gne
-r2g3ni
-r2g3no
-r2g3oa
-r2gob
-r3gog
-rg3op
-r2g1or
-rgö2
-r2g1öd
-r2g3ral
-rg4rau
-r2grän
-r2greg
-r2g3res
-r2gret
-rg3rin
-rgro3sse
-r3grö
-r3gru
-rg3rüs
-rg3sä
-rg3se
-rgs2ei
-rg4sel
-rg3s2i
-rg3sp
-rgs4pe
-rgs4pi
-rgs4po
-rgs4tr
-rgs4tu
-rg3su
-r1h2
-2rh.
-r2hag
-2rhah
-2rhak
-r2haltb
-r3han
-2rhau
-2r3hä
-r2he.
-r3hea
-2rheb
-2rhef
-rh4ei
-2rheit
-2rher
-2rhi
-2rhof
-rho2i3
-2rhol
-r3hop
-2rhot
-2rhöl
-2rhs
-2r3hü
-1ri
-ri3ams
-ri1an
-ri2ano
-ri1as
-ri2ast
-rib2bl
-ri1ce
-ri1cha
-ri3chl
-rich3ter
-richt4spo
-4rick
-ri2con
-ri2dau
-2ride
-r2ide.
-ri2d3e2l
-ri2dent
-r2i3di
-2ridol
-rid3r
-2ridy
-r2ie
-rieb4ste
-4riefm
-rie2f3r
-rieg4s3
-ri2e1i
-ri1el
-rie3l2a
-ri3els
-ri4enä
-ri2enb
-riene2
-rie2nu
-ri1er.
-rie3r2e
-riere4n
-ri3ers.
-ri1eu
-ri2fa
-ri2fä
-ri2fei
-ri2fer3
-rif4f3end
-rif2fer
-ri2f1o
-ri4fr
-rif2ter
-3rig
-4riga
-4r3i2gel
-ri2gene
-4rigg
-rig1l
-ri4glä
-ri3g2o3
-rigs4
-ri1i
-rii4t
-ri2kar
-ri2kä
-ri2kin
-ri2kn
-ri2kone
-ri2kor
-ri4kt
-ri3kü
-2rima
-ri4mag
-ri2me.
-2rimm
-4rimp
-rim2s
-ri3na
-r1inbe
-rin2c
-2r1indu
-ri3n2e
-rine1i
-2r1inf
-3rinfr
-r2ing
-rin2ga
-ring3le
-rin2gr
-ring3sp
-2r1inh
-2rinit
-4rinj
-4rink
-rin2kl
-rin2ko
-rin2kr
-2rinl
-4r3innenm
-2r3inner
-2r1innr
-r1innu
-ri3n2o3
-4r1in2q
-2r1ins
-rin2si
-rin2so
-rin2spe
-r2inspi
-rin3str
-3r2insy
-2rint
-4rinte
-rin4tent
-rin4t5re
-2r1inv
-rin2va
-2rinz
-ri2ob
-r3ion
-r4ior
-ri3o2st
-ri2pl
-ri3po
-2r1ir
-r2is
-ris2a
-ri3s4an
-ri2scho
-ri2schw
-3risik
-ri3s2ko
-r3iso
-ri4s3p
-ris5pi
-r3isr
-3riss
-rist3ers
-ristes2
-ri2st3r
-3ri2ß1
-r2it
-2r3i2tal
-rit3ant
-rit2i
-2ri3t4r
-rits2
-rit2t3au
-rit4tei
-3ritter
-rit4ter4f
-rit2to
-rit2t3r
-ritt2so
-rit2u
-r3i2tum
-rix1
-ri3xi
-1rí
-2rj
-2rk
-rka2b3l
-r2k1ah
-r2k1ak
-rk1all
-rk2am
-rk1are
-rk1asp
-r2k1att
-rkauf4s
-r2k1äh
-r2kelem
-r3kell
-rke2n1
-rken2er
-r2k1er2l
-rk3ersta
-r2k1er2w
-r3k2es
-r3ket
-rk1im
-rk4las
-rk4lau
-rk4lim
-r2klis
-rk2lo
-rk4lu
-rk4ne
-rk5neu
-rk5ney
-r2kob
-r3kol
-r3kon
-rk2op
-rk1o2ri
-r2kou
-rk2ö
-rk3räu
-r3kri
-rk3rin
-r2k3rom
-r2krou
-rk2sal
-rk2sei
-rk2sel
-rk2ser
-rk2so
-rk2sp
-rkstati4
-rk4stec
-rk2stoc
-rk2ta
-rk2tel
-rk2t3eng
-rk2t3erf
-rk2terg
-rk2t3erl
-rkt3ers
-rk4tersc
-rk2t3erw
-rk2t3erz
-rk2teta
-rkt2i
-rk2t3in
-rk2t1o2
-rkto4b
-rk2t3r
-rk2tum
-rk1ums
-rku2n
-r3kup
-rkur3s
-rku2sa
-rkus3s
-rku2s3t
-r2küb
-2r1l
-rl2ab
-r3lag
-rlan2d3i
-r2l1ar
-r2l1a4sc
-rlas4t
-r2l3aug
-rle2a
-r3lec
-r3leg
-r3lep
-rl2et
-r3lex
-r3l2i
-rlicht6e
-rli4ne.
-r3l2o
-rlou1
-rl2ö
-rlös5s
-rls2a
-rl2spr
-rl2sto
-rl3t
-r3l2u
-rlus4t
-rlu4ster
-rlu2str
-r3ly
-rlz4w
-2rm
-r2m1ad
-rma2la
-rm1ald
-rmali3e
-rm1ami
-r2m1ank
-rm1anz
-r4m3aph
-r2marc
-r2marz
-rma4spe
-rma3ssen
-rmas4sens
-rmat2o
-rm1aus
-rm3d2
-r2m3einh
-rme4na
-rm2ene
-r2ment
-r2meo
-rmer2fo
-rm1erg
-r2m1erh
-r2m1erl
-r2m1erp
-r2m1erw
-rm2es
-rme3sa
-rme3st
-rmeta2
-r2mide
-rmi4nanz
-rminen2
-rmi4neng
-r3minh
-rm3m
-r2m1ob
-rm1o2ri
-rm3p2
-rm3sa
-rm3s2k
-rm3sta
-rm3t
-rmt2a
-rmu2n
-r4muna
-r2muni
-rmwa4
-2rn
-rna2b
-rn3ab2i
-r3nad
-rn4ade
-r3nage
-r2n1all
-rna4n
-rn4and
-rn3ani
-r2nanz
-rna2r
-rn3are
-r4n3ari
-rn3arra
-r4n1a4st
-r4n3att
-rn3aug
-rn3de
-rn3d4r
-r2nef
-r3neho
-r3nei
-rn2eid
-r4neif
-r4neis
-r2n1elf
-rn1ema
-r2nemu
-rne2n
-r2n1ene
-rn2eng
-r2n1e2p
-rn1erg
-rn2erhi
-rner2ke
-rner2ku
-r2n1erl
-r2n1ert
-r2n1erw
-r3nes
-r3n2e2t
-rne4t1e
-rnet3r
-rn2eu
-rne3uf
-rn3f
-rn3g2
-r2nid
-r2n1in
-r4ninf
-rn2ing
-r3nit
-rnk2
-rnn2
-rn1ob
-rn2obr
-r3nod
-rn2oh
-r2n1op
-r2n1or
-rno2w
-rn1ö
-rnö2d
-rn3sa
-rn3s2ä
-rnse4ha
-rn3s2p
-rns2u
-rn3s2z
-rn3t2a
-rn3t2e
-rn1ur
-r1nü
-r1ny
-rnz2
-ro3ar
-ro3as
-r2oba
-2robj
-1r2obo
-ro2bo2r
-2robr
-ro2bre
-2robs
-ro1ch
-roch2a
-3rock.
-r2o3de
-rodi4e
-rod4r
-roe2
-ro2ed
-ro4fen
-2roff
-4rog.
-ro3g2a
-3rogg
-ro2h1in
-roh1l2
-4rohn
-ro2hö
-3rohr
-ro4hs
-1roi
-ro3in
-ro2it
-rok2l
-ro3le
-ro2liv
-ro4ll
-rol2lan
-rolle4
-roll4en
-rolli2n
-rol4lini
-rol2lis
-r4olo
-2roly
-4rom.
-ro4mad
-ro4mal
-3roman.
-2romb
-ro4mei
-romen3e
-ro4m1er
-ro5mes
-4romm
-2romn
-4romt
-r2on
-ro3n4ab
-ro2nan
-3rond
-ro2nerb
-roni2e
-ro2nika
-ro4niki
-4ronk
-3ronn
-ron4tan
-ron2tel
-ron4tend
-ron2tr
-ron2t1u
-ro1ny
-ro1o4f
-rop2a
-2rope
-2ropf
-1ropl
-ro3pn
-2ropt
-r1or
-ro2r3al
-ro2rat
-2rorc
-ro2rel
-2r3orga
-ro2ro
-ror3th
-rort4s
-ror2ü
-ro3se
-ro3sh
-ro3s2i
-ros4p
-ros6sac
-ross1c
-ros4st
-ros4t
-ro3sta
-ros5tel
-ro2st1r
-ro2sum
-4r3osz
-roßen2
-ro2ßenk
-ro2ßi
-ro2ßu
-ro2tan
-ro4t3au
-ro2tä
-ro3te
-ro2tei
-rot3s2
-rot2ta
-3roul
-ro3unt
-ro4up
-3ro4ut
-2rox
-rö2b3l
-rö2du
-2röf
-rö4fe
-3röh
-2r1ök
-1röl
-2röl.
-rö3le
-rölla4
-r1ölp
-3römi
-r1ör
-r2ös.
-rös1c
-rö3se
-1rösl
-rös6tel
-3rötu
-2rp2
-r3pa
-rper1e
-rperer3
-rper3in
-r3pf2
-rpf4l
-rp4fu
-r2pli
-rp4lu
-r3po
-rpo2str
-rp4rä
-r3pri
-r5prod
-r3prü
-rp3se
-rps3t
-rp3t
-r3pu
-2rq
-2r1r
-rr2ab
-rra4s3s
-rrat2s
-rr1auf
-rr1äm
-rrb2
-rr1c
-r5rega
-r5regl
-rr2ei
-rre2le
-rre2pa
-rrer2
-r2rerh
-r2rerl
-rre2ve
-r4rezi
-rr2hen
-rr2hos
-rri3erm
-rri3k2
-rr4is
-rrm2
-rr2n3au
-rr2o
-rr3obs
-rr2th
-r3r2u
-r3r2ü
-rrücker4
-rrz2
-2rs
-r3sabo
-r2s1a2d
-rs2al
-rsa4lin
-r4samp
-r4s1amt
-rs2an
-rs3ana
-r2sanf
-rs3ang
-rs3anm
-rs3ar
-r3s4ark
-r3sau
-rsch3e4b
-rscheiner5
-r3schen
-r4scherl
-r5schu
-r5schwu
-r5schwü
-r2s1ebe
-rse2e
-r2s1ef
-r2sein
-r5seit
-rse2n
-rs2end
-rse4ne
-r2sepi
-rs1ere
-r2s1erh
-rs1ers
-r2serz
-rse2t
-rs1eta
-rs2ext
-rsha4k
-r3s2hav
-r3shir
-r3sho
-rs2hor
-r4shu
-rs2il
-rs2ka
-rs2kel
-rs2ki
-r4skir
-rs2kl
-r4skn
-r4skor
-r3s4kri
-r4sky
-r3smog
-r3s2no
-rs4om
-r2s1op
-r2s3ort.
-rso4s
-rs1ost
-rs2p
-r3span
-rspa3s
-rs4pel
-r2s3ph
-r3sphä
-r3spl
-r2sput
-r3spü
-rs3s2
-rss4t
-rst3abl
-r3stad
-rst3ala
-r2stale
-r2stans
-r4stant
-r2stas
-rs4tea
-rs4tee
-rst2ei
-rst3eing
-r4st3eint
-r4st3emi
-rster2
-rst2erb
-r4sterbt
-r4st3erl
-r4sterö
-r4st3er4w
-rst1h
-rst3ing
-r2stip
-r2stit
-rs4tob
-r2s3tot
-r2stran
-r2stris
-rs4tuc
-r3stü
-rs2ums
-rsü3s
-r3sy
-r4szä
-rs2zin
-r1ß
-2rt
-rt1abs
-r2t1a2d
-r2t3ae
-rt1aff
-rt1akr
-r2t3albe
-rta3l2e
-r2t1all
-rtals1
-rtal2se
-rt1am
-r3tame
-rt1ann
-rt1ant
-r2tanw
-r2t1ar
-rt3att
-r2taut
-rt3äh
-rt1änd
-rt1ärm
-rte1e2
-rt1ein
-rt2eind
-r4t3einh
-rte2i3s
-r2telf
-rte3li
-rtel4lei
-r2temo
-rte2n1
-rte4na
-rten3s4
-r2t3ents
-rten3z
-rteo2
-rt2ep
-r3ter.
-rter2fa
-rt1erh
-rt1erk
-r2t3er2la
-rter4mit
-r2t3ernä
-r2ter2ö
-rter4re
-rt1er4s
-rt2er5sp
-rt1erz
-rtes2
-rte3sk
-rte3sta
-rt1he
-r2t1hi
-rt2hum
-r2t1id
-rti2en
-rtik2
-r2t1ima
-rt3inf
-rt2is
-rt2it
-rt3l
-rt3m
-r2t1ob
-r3top.
-rto3pf
-rt1orc
-r2torg
-r3tork
-rt3ram.
-rt3rams
-rt3rand
-rtra4s3
-rt3rati
-rt3rec
-rt3res
-rt3ris
-rt3rol
-rt3roma
-r3trop
-r2trou
-rt3sc
-rt2s1eh
-rts2el
-rt3sex
-rts3h
-rts3ing
-rts1o
-rts4tie
-rt2su
-rt3t
-rtt4r
-rt1umb
-rt2u3na
-r4tunt
-r2t1urt
-rtu2t
-r2t3ute
-rt3w
-rt3z
-rtz2a
-rt4zb
-rtz4w
-1ru
-ru1a
-ru4ale
-ru3a2r3
-rube4
-rub2i
-ru3ches
-ruchter4
-rucht3s2
-ru3de
-rude2a
-ru2dr
-ru2et
-3ruf
-ru4f1a
-ruff4
-ru4fo
-ruf2s
-ruf3sc
-rufs3p
-ruf2ter
-ru2g3r
-3ruhm
-2r1uhr
-3ruin
-ru3ins
-ru1is
-2rum
-ruma2
-4r3umd
-4rumf
-4rumg
-ru2mi
-4ruml
-rum2mes
-r2ums.
-4r3umsa
-4rumsc
-4rumw
-4rumz
-2r1una
-2rund
-run4d1a
-runden3e
-run2d3er
-runder4n
-runder5t
-run2do
-runei2
-2r1unem
-run2en
-4r1unf
-run2ga
-2rungl
-run2gla
-4r1u2ni
-r3unio
-ru4nis.
-run2kr
-2r1unl
-2runm
-4runn
-4runr
-r1unse
-4r3unt
-4runw
-2rupd
-rupi3
-ru5pre
-2r1ur
-ru2ra
-ru2r1e
-r4us.
-rus4p
-rus3sen
-rus2s3p
-rus4st
-rus6ste
-ru2tab
-rute4
-ru2tei
-ru2t1el
-ru2t1er
-ru2t1o4
-ru2t3r
-ru2z3w
-1rü
-2rüb
-rü4bc
-rü4bs
-4rübu
-rü1ch
-rück3sta
-rü4fa
-rü2hel
-rüher2
-rüh1l
-4rümm
-rü4na
-rün3z
-rü3ss
-rü4ssi
-2rv
-rv2el
-rve4n1e
-r2ventz
-r3veo
-r3ver
-r3v2o
-rv2s
-2rw
-rwe4gel
-r5weis
-rwelt2s
-r3werk
-r3wert
-r2wo.
-r3woh
-r3wort
-rwun3s
-2r1x
-1ry
-2r1ya
-ry4an
-ry2c
-rygi3
-ry2le
-ry3os
-ry3st
-rysti3
-2rz
-rz2ans
-r2zar
-r2zat
-rz2än
-r3zeic
-rzell2
-r3zene
-rz1eng
-r2z3ente
-r2zents
-rze2p
-rze2ra
-r2z1erd
-r2z1erf
-r2z1erg
-rz1erk
-r2z1erl
-rz3ersc
-r2z1erw
-rzes2
-r2z1ess
-r2z1id
-rz1int
-rzir3
-r3z2of
-r2z3ot
-rz2tan
-rz2th
-rzu4g3l
-r3z4wec
-rz4wer
-r2zwir
-1s
-3sa.
-3s2aa
-2s1ab
-sab2ä
-4sabd
-sa2ben
-3sabet
-sa2bit
-sa2bl
-4sabm
-sa2br
-4s3abs
-4s3a4bw
-4sacc
-sa3chal
-5sache
-sa2cho
-sach3t
-s2ack
-2s1ada
-sa2der
-2s1adm
-2s1a2dr
-sa4fe
-4s1aff
-sa3f4r
-3s2aft
-saf2tr
-3sag
-sag2e
-5sa3ge.
-5sagen.
-4s3a2gent
-4s1agg
-4s1a2gr
-sah3l
-s2ahs
-3s2ai
-sa3i2k1
-sail2
-sai4r
-2s1ak
-sa4ka
-sa5ka.
-sa5kar
-sak2e
-3saki
-3sako
-4sakt
-sa4kus
-3s2al.
-s2al2a
-sa2l3an
-sa3l4at
-sal2ä
-3s2alb
-sal3bl
-3s2ald
-sa2lerk
-3sa3li
-sa4l1id
-s1all
-sal3la
-sal2le.
-sallo3
-3sal2o
-sal3or
-sal2se
-s1alt
-s2alth
-3salz
-3sam
-4s1a4mat
-4s1a4mei
-sa4min
-4s1amma
-4s1amn
-s1am3p4
-4samph
-s1an
-s2an.
-2sa2na
-san4at
-sa2nä
-2s3anb
-s2an2c
-3s2and
-san2dan
-san2dri
-sand3s
-sa2ner
-3sang.
-2sanga
-2s3anh
-3sani
-3sanken
-2s3anl
-2sanm
-2sa2no
-2s3anp
-2s3ans
-s4anse
-san4sk
-san3sp
-2santei
-4santr
-2s3anw
-2s3anz
-s4anz.
-s4anzt
-2s1ap
-sa2pe
-s2aph
-sapi3
-sap3p
-3sapr
-2s1a2q
-2s1ar
-3s4ar.
-3sara
-4sarb
-3s2ard
-s2are
-s3area
-3sarg
-sar2ga
-sa3rin
-s2ark
-s3arm
-sa2rom
-s2ars
-4sarti
-sa4r1u4
-sas2a
-s1asc
-2s1a4si
-2s1a4sp
-sa4ssenb
-sas4sest
-sa5s2set
-4sa2sy
-3saß
-sat2a
-satan2
-sa2t3ant
-sat1ei
-2s3a2tem
-s3ath
-3sat2i
-4s3atl
-4satm
-sat2o
-sa4tol
-sa2tr
-sa3ts
-s3atta
-sat3te
-4s1attr
-s4atz
-3satza
-sat2zel
-sat2z3en
-s1au
-3sau.
-3sauc
-3sau2e
-2sauf
-4s3aufb
-3saug
-saug3le
-sau2gr
-sau3h
-3saum
-3saur
-4s3aura
-sauri1
-2saus
-4s3ausb
-4sausf
-4sausg
-sau2sp
-4sauss
-4s3ausw
-2sauß
-s1av
-sa2ve
-sa2xi
-sa3xo
-sa2y
-3säb
-3s2äc
-3s2äg
-s1äh
-4s3ähn
-2s1ält
-2s1äm
-4s3änd
-2s3äp
-2säq
-2s1är
-3s2ärg
-4s3ärm
-sä2s3
-sä4ss
-sä5sse
-3s2ät
-2säuß
-2sb2
-s3ba
-sba4ne
-sbau4men
-sber2e
-s3bl
-s3bo
-s3br
-sb4ra
-sb4ri
-s3bu
-sbus3
-s3bü
-sby3
-2sc.
-2scab
-2scac
-2scaf
-2scal
-2scam
-2scar
-2scat
-s1ce
-4s3cei
-4s4ch.
-3schaf
-s4chal
-sch3ana
-2schanc
-2schang
-5schanz
-4schao
-4schara
-sch3ar3m
-s2chä
-2schäq
-2schb
-2schc
-2schd
-sch2e
-3sche.
-4schech
-sche2f
-4schef.
-4schefi
-4schefs
-s4chei
-4sch3ei.
-sch4ein.
-s2chema
-4schemp
-sch3erfü
-2scherk
-sch3erla
-3sches
-4sches2s
-4schex
-2schf
-2schg
-2schh
-2schi4d
-2schiru
-3schis
-2schj
-2schk
-s4chl
-sch4lac
-2schle.
-4schlein
-2schloc
-2schlöc
-2schmed
-2schmö
-2schmy
-s4chn
-2schn.
-2schneb
-2schnum
-2schnut
-3schop
-2schorc
-2schox
-4schör
-4schp
-2schq
-2schrad
-2schre.
-2schres
-2schrin
-4s3chris
-sch3rom
-2schron
-2schrou
-2schrus
-4schs4
-sch3se
-sch3sk
-sch3sti
-4scht
-sch3t2a
-sch3t2i
-s4chu
-2schunt
-s4chü
-2schv
-sch4web
-2schweg
-4schwerk
-2schwet
-2schwid
-2schz
-2scj
-2s3cl
-2sco
-4scoa
-4scom
-3s2co4p
-2scs
-2scu
-2scy
-2sd2
-sda5me
-sdä1
-sdes4
-sdien2e
-s3do
-sd4ri
-sea2n
-se3at.
-seau4
-seb2
-2s1e2ben
-2s1echo
-sech4str
-2s1echt
-2s1eck
-se2dik
-3see
-see1i2
-se2e3ig
-se2el
-se3elem
-see3len
-se3en.
-see3n2e
-se1eng
-se1enk
-se1enl
-se1enp
-see1ra
-seer4e
-se1erf
-se3e2r1i
-se1erk
-se2e3s2
-2s1eff
-sef4l
-3s2eg
-s3e2gal
-se2gl
-seg4r
-seh1a
-se2ha2g
-se2hak
-se2hel
-seher2e
-se2herk
-se2h1in
-seh3l
-se4h3ö
-seh3ra
-seh3re
-seh5ri
-seh3s
-se4ht
-seh1ur
-se2hüb
-2s1ei.
-2s1eid.
-sei3da
-2s3eifer
-2s1eig
-s2eim
-s1ein
-5s4ein.
-2seinb
-sein2du
-2sei3ne
-seine3i
-2seinfl
-sein4fo
-2seing
-2seinh
-2seini
-2seink
-2seinl
-2seinn
-sein4ne
-2seinr
-s2eins.
-2seinsc
-sein4stit
-sein4str
-2seint
-4seintr
-2seinw
-2seinz
-2s1eis
-3s2eism
-3s4eit
-seit2s
-3sek
-4s1e2kel
-4sekz
-s2el.
-se2l1a
-3s2elb
-sel3d4
-sel1ec
-se2lef
-2s3e2leg
-2selem
-se2ler
-sel3ers
-2self.
-selin2s
-s3e2lit
-2s1elix
-sel3le
-sel3m
-s2eln
-se2lob
-s2els
-sel3sz
-selt2e
-sem2e
-2s1e2mis
-2s1emp
-s4en.
-se4nad
-se3nal
-sen2alg
-se4nas
-sen3au
-se2nä
-s2enb
-3sendet
-4s1endl
-sen3d4r
-2s1endw
-senen1
-2senerg
-se2ners
-s2enf
-3s4eni
-se2nid
-se2n1im
-sen4keli
-3senku
-se2no
-se4nott
-se4noz
-s2ensa
-sen2s3e2h
-4sensem
-sen4sers
-sen2si2d
-s2enso
-senst2
-sen4s5turm
-sen3t2a
-sen3tä
-2sentd
-2sentf
-4sentg
-4sentn
-s2ento
-sen3tr
-2s1ents
-2sentw
-2sentz
-se4n3u2
-3senva
-sen3za
-sen2zer
-sen3zw
-seo2r
-3sepa
-se2pen
-s1epi
-3seq
-s4er.
-se2r3a2d
-ser3al
-se3rand
-se1ras
-ser3äus
-serb2
-s3erbe.
-serd2
-se2r1e2b
-se2r1ed
-se3reie
-ser3eim
-sere2m
-se2r3enk
-ser3ent
-s4erfe
-s1erfo
-s2erfr
-s1erfü
-serg2
-ser3ga
-ser3gl
-s2ergr
-s1erhö
-5serie
-se4rinf
-serk4
-3serl.
-se4rm
-ser4mah
-2s3ermit
-s2ern.
-s3erneu
-4s3ernt
-sero4b
-s1e2ros
-s1erot
-s1erö
-ser3r
-s2ers.
-2sersa
-s3erseh
-s3erset
-sers4p
-sers4t
-se3rum
-ser2um.
-se3rund
-se3rung
-s3e2rup
-3s4er3v
-s1erz
-s2es.
-se3s2a
-3sesc
-se2sel
-2sesh
-se3sk
-s1essa
-se3su
-2s1e4tap
-se2tat
-2s1e2th
-set2i
-2s1e2tik
-se3tun
-3sety
-3setz
-3seuc
-4s3eul
-se1u2n
-se2va
-4s3evan
-s1ex
-2sexa
-sex4am
-se2xe
-sex3en
-s2exi
-s2exo
-4sexp
-sex3t4r
-3sexu
-2sexz
-2sf2
-s3fa
-sf4ak
-s3fe
-s3fi
-s3fl
-sf4la
-sf4lö
-sf4ru
-sf4rü
-s3fü
-2sg2
-s3ga
-sgang4
-s3ge
-sgeha2
-sge2h3ab
-sge3s4
-s3gm
-sg4mü
-sg4na
-s3gr
-sgro3
-2s1h
-3sha.
-s2hak
-shal2li
-shalt2
-4shan
-sh2e
-sh2i
-3s4hi.
-s4hig
-s2hip
-s2hi4r
-sh3n
-4shoc
-4shof
-4shom
-3sho2p
-sho4re
-3s4how
-sh2r2
-sh4re
-s3hu
-s3hü
-si3ach.
-sial5l
-2siat
-3si1c
-si2cha
-2s1idea
-2sidee
-2s1ideo
-si3der
-s2i3do
-2sidy
-3s2ie
-sie2bu
-siege2s
-si3ene
-si3f
-sif4l
-si2g1a
-si2g1ei
-sig4n
-si2g3r
-sigs4
-si2k1ab
-si2k1a2g
-si2kak
-si2kar
-si2k1ä
-si2k1el
-si2kens
-si2k3er4b
-sik3erl
-s4i2k3i
-si2k3n
-si2k3r
-sik3s
-3sik3t2
-si2ku
-sil2br
-sil2e
-3sili
-s1ill
-3silo
-2s1imm
-2s3impf
-sim2st
-3s4imu
-si3n4a
-2s1ind
-si3n2e
-2s1inf
-4sinfe
-sing1a
-sin3g4le
-sin2g3r
-sing3s2
-2s1inh
-s1in1i1
-s2ink
-sinner2
-2s1inno
-2s1inq
-2s1ins
-2s1int
-2s1inv
-3sio
-s2ire
-sirn4
-2sirr
-3siru
-3sis
-si2sa
-si4sam
-s2isc
-si2schu
-si2s1e2
-si2si
-si4sis
-s1i2so
-sis1or
-si2s3p
-sis3s4
-s4ist
-si2star
-si3sto
-si2stu
-si2su
-3s2it
-si2tal
-si2tau
-si2tra
-sit2u
-sit4zerg
-3siu
-si2va
-sive3
-siver2
-si2v3erf
-si2vin
-siv1o4
-si2vor
-siz2
-2sj
-s3jä
-s3je
-2sk2
-4s3kab
-s3kad
-sk4al
-4skalk
-s3kalt
-4s3kam
-4skana
-4skanä
-3skanda
-skani3e
-4skann
-4skap
-4s3kar
-4s3kas
-sk4at
-ska2te.
-4skateg
-s4kater
-ska2tes
-ska4to
-4skau
-s3kä
-ske2li
-4ske2n1
-3skep
-4sker
-s3kh
-3s4ki.
-3skif
-3s2kik
-s3kim
-s3kin
-s2kis.
-3skiz
-4s3klas
-sklat3
-3s2klav
-sk4le
-4s3klu
-sk4na
-sk4ne
-4skoh
-4skol
-4skom
-4skon
-3skop.
-sko2pr
-4skos
-4skow
-s3kö
-4s3kra
-sk4re
-3skrip
-4skro
-sk3t2
-skto2
-3skulp
-4skun
-sku2s3
-2s1l2
-s3lab
-3slal
-sl4am
-sla4ma
-sla2ve
-s2law
-sl3b
-s3le
-s3li
-3s4lip
-slo3be
-s3loc
-s4loga
-3s2low
-s3lu
-s3ly
-2sm2
-s3ma
-sma3b4
-sma3sc
-sme3na
-smi2t3
-s3mu
-s3mü
-2s1n2
-s3na
-snab4
-s3ne
-s3ni
-sni4a
-sni3er.
-sni3ers
-4s3not
-s3ny
-3so.
-2s3oas
-2s1o2b
-3s2o3ba
-4sobj
-4soboe
-so1ch
-sodi4
-so2do
-so3et
-s1ofe
-so4fen
-s1offi
-3soft
-3sog
-sog4l
-s1o2he
-3sohl
-sohle2
-4s3ohng
-2s1ohr
-3soi
-so3id
-2s3ok
-3sol.
-so3la
-so4lau
-3sold
-3sole
-so2l1ei
-so3li
-sol2la4
-sol2ler
-3solm
-so3l2o
-so3lu
-4s3o2ly
-2s3omb
-3somm
-3s2on
-son2a
-son3au
-sond2
-sone4
-sonen2d
-son4gl
-son3sä
-son2s1o
-so3o
-so2pe
-s1opf
-3sopr
-2s1ord
-sore2
-so2rel
-2s1orga
-so1rh
-2s1o2rie
-so2ro
-3sorp
-3s2orti
-so4ru
-3so3s2
-s2os.
-so4sk
-4so4sm
-4sost
-so4sth
-4s1o4sz
-3so3ß
-2sot
-so3t2h
-3sott
-soun2
-sound1
-so3unds
-so3unt
-2s1out
-3sow
-2s1o2x
-3soz
-4s1oze
-2s1ö2d
-2söf
-sö4fe
-2s1ök
-2s1öl
-2s1ö2s
-sö4st
-sp2
-2sp.
-s3pa.
-4spaa
-2s3pack
-2spag
-spa2ge
-2spak
-2spala
-2spalä
-s2pali
-3s4palt
-spa4m
-s2pan
-3spann
-2spanz
-4spap
-2s3para
-s2parka
-2sparo
-5s4parten
-2spartn
-2sparty
-spas2
-spa3sse
-spa5ssi
-s2paß
-3spat.
-2spati
-4spatr
-s2patz
-2spau
-3s2paz
-s2pä
-2späd
-3späh
-2s3pär
-2späs
-spä6ssc
-s2pe
-2s3pe.
-3spec
-2speg
-4spein
-s4pek
-2spensi
-spe3p4
-3sperb
-3s4perg
-s3peri
-2sperle
-s3pern
-s4perr
-2spers
-4spet
-s4pex
-3s4pez
-2s3pf
-spf4l
-4spha
-s2phä
-3sphär
-s3phe
-3s2pi
-s4pie
-4s5pier
-spier4r
-spi2k
-4spil
-s4pinn
-4spi4p
-4s3pis
-s4pit
-2spl
-4spla
-4splä
-3s4pli
-4s3p4lu
-s3pn
-2spod
-4spoe
-s2poi
-4s3pok
-4spol
-s2pons
-4spoo
-2spop
-s2pore
-3s4porn
-4s3pos
-4spote
-s2pö
-2spr.
-s2pra
-3sprac
-2sprak
-s4pran
-2sprax
-sp4rä
-2spräm
-s4prän
-2spräs
-4spred
-4spreis
-3s4pren
-2s3pres
-s2pri
-3spring
-2sprinz
-3sprit
-4sprob
-4sprod
-2sprog
-4sproj
-4sprop
-5spross
-2sprot
-2sproz
-3s4prö
-3sprüc
-2sprüf
-3sprün
-2s3ps
-s4ps.
-2sp3t
-2spub
-2spud
-3spuk
-3s4pule
-2spun
-4spup
-3s4pur
-spu2rer
-s4putt
-2s3py
-2sq
-2s1r2
-s3ra
-sra4s3s
-sr4at
-srat2s
-srat4sc
-s3re
-sre3cha
-s3ri
-sro2h
-sro3tu
-srö2s
-s3ru
-s3rü
-srücker4
-2ss
-s3saba
-ss3abi
-ssa3bo
-s5sack
-ss2agi
-s2s1aj
-ss3alba
-s2sall
-s4samt
-s2sanf
-s4sang
-ss2ann
-s4sano
-s4sans
-ss2ant
-s4sanz
-ss2ara
-ss2arg
-ss3ark
-s3sars
-s2s3att
-ssau4r
-ssau5ri
-s3s2ä
-s2sce
-ssch2
-sschanker6
-s2scr
-sse3a
-4ss1ec
-4ssee
-sse1ec
-4ssef
-4sseg
-4s3seh
-sseh2a
-4ssei
-s2sein
-s3s2eind
-sse3int
-4ssek
-4s2selek
-sse2lö
-4ssemp
-4ssendet
-4s3sendu
-4ssenerg
-ssen4kel
-ssenmas4
-ssen4sem
-4ssentl
-4ssents
-4ssentz
-ss1epe
-sser3att
-sser2fo
-ss4ergr
-sser2hö
-sser4mit
-s2serö
-sser2öf
-ss4eru
-sser4wei
-sser2ze
-4ssesc
-3ssesh
-sses2sa
-4ss3e2str
-4sset
-sse3ta
-s3seth
-4ssez
-ss3hi
-4ssic
-ss3i2ko
-s2simp
-ss1isr
-4ssit
-s3skala
-ss3l
-ssmut2
-sso4f
-ss1off
-ssoi4
-s3sol
-s4sop
-ss2p
-ss4pat
-ss4pec
-ss4pin
-s3s4prä
-s3spri
-s3spru
-ss4pü
-ssquet2
-ss3s2
-sssau4
-sss4p
-sss4t
-s4st.
-sst2a
-s5stad
-ss3tak
-s3stä
-ss3t2e
-s4ste.
-s5stel
-s5s4tep
-s5stern
-s4stes
-s4stet
-s5steu
-sst2i
-sst3in
-ss3tis
-ss3tole
-s5stop
-ss3tor
-s5stör
-ss4tras
-s3s4trat
-s3strö
-s3stü
-ss4tw
-s2suf
-4ssum
-s2sumg
-s2sumr
-4ssunt
-4ssunv
-4ssup
-s3sus
-s3sy
-s2t
-2st.
-3sta.
-3s4t4aa
-5stab.
-2stabb
-2stabel
-2stabg
-2stabh
-s4tabi
-2stabit
-2stabl
-2stabn
-2stabt
-2stabu
-2stabz
-st2ac
-s4tad
-2stada
-2stafel
-3staff
-2stag
-3s4tagr
-3s4tah
-s4tai
-2stak
-2stala
-sta3lak
-2st1alb
-2stalg
-3sta3l2i
-2stalk
-st1alm
-st1alp
-st1alr
-st1alv
-3stam
-st1a4mi
-stam4ma
-4stampl
-4stamt
-s4tand
-4stanf
-st2ang
-4stangeh
-st3anges
-4stanh
-4stanl
-4st1ann
-st3ansp
-3stant
-4stantr
-2stanw
-2st1app
-s4tar.
-sta4rens
-s4tark
-s4tars
-s4tart
-2stasc
-st1asi
-sta4sie
-sta3st4
-2statb
-3s4tati
-3s4tatu
-s4tau.
-2stauf
-5s4taur
-2staus
-2stauto
-st1a2ve
-4stax
-3s4täb
-3s4täd
-2stäg
-2stält
-s4täm
-2stämt
-3ständ
-2s3tänz
-4stäp
-s4tär
-3stätt
-2s3täus
-2stb
-2st3c
-st4ck
-2std
-3ste
-4steam
-s4tean
-s4teche
-4stechn
-ste2d
-st1edi
-s4teg
-ste2g3r
-s4teh
-4stehr
-st4ei.
-4steic
-4st1eid
-5s4teig
-stei2gr
-4steil
-s4tein
-stei4na
-4steinga
-4steinhe
-s4tel
-st1elb
-s5tele
-s6telen
-st2ell
-stel4l3än
-ste2mar
-ste4ment
-ste4min
-4stemper
-4stempf
-ste4na
-4st3ends
-st2ens
-4stentf
-4stentl
-4stents
-4stentw
-4steo
-4stepi
-st1e2po
-ste2r3a
-s4terb
-4sterbs
-4stereig
-st3erfü
-st2erg
-sterma5sse
-s4tern
-4sterras
-s4ters
-4st3er2zo
-st2es1
-ste4se
-stes3ta
-4stestb
-st3estl
-4stestn
-4stests
-4steta
-ste2tab
-ste4tag
-s4teu
-4s5teuf
-st1eun
-st1ev
-4s3tex
-s4texa
-s5text
-2stf
-stf6lan
-2stg
-2sth
-st2hen
-st1hi
-st3ho
-s3thr
-st1hy
-st1i2d
-sti2e
-2stief.
-4stiefl
-3stiel
-3stif
-sti2gel
-sti2kr
-st2il
-sti2la
-3stimm
-4stimma
-2stimp
-2st1inb
-4stinf
-4stinh
-2stins
-4stint
-s4tio
-2stip.
-2stipps
-sti2r
-st1ira
-st1iri
-st1iro
-2stite
-2stj
-2stk
-2stl
-st3le
-2stm
-stma3s2
-2stn
-sto2bl
-2stocht
-s4tode
-3s4tof
-stoffen4
-stof4fens
-4stoffiz
-2stomn
-2s3ton
-4stona
-3s4to4ne
-4stonl
-2stope
-2stopo
-2stord
-2storf
-2storg
-2storp
-2stort
-3s4tory
-3stos
-4stou
-4stöch
-2stöf
-2s3töl
-3s4tör
-2stöst
-2stöt
-2stp
-2stq
-s3trac
-s3trad
-st4rade
-stra4fa
-4s3trag
-4strai
-3s4tral
-s3trank
-4strans
-3stras
-3straß
-2straum
-2sträc
-2sträg
-2sträne
-2sträum
-2stre.
-2strech
-4stref
-2streg
-4streib
-3st4reif
-2strep
-2stret
-4streuh
-s4treuu
-2strev
-2strez
-3s4tria
-2strib
-4strig
-s3tril
-2strisi
-s3triu
-4stroc
-3s4trof
-3s4troh
-3s4trok
-stro4ma
-s4trome
-2stropf
-3stropo
-st4ross
-2strost
-3stroy
-2ströp
-2strub
-s4trud
-3struk
-s4trum
-2strun
-4strup
-2strut
-2st3s2
-stsas2
-st4sb
-2st3t2
-stt4r
-st2u
-3stub
-s3tuc
-4stuch
-3s4tud
-2stue
-3s4tuf
-2stug
-st3uga
-3s4tuh
-2stuk
-4stumo
-2stumr
-2stum2s
-2stumt
-2stumz
-2stun.
-2st3una
-s4tund
-2stune
-2stunf
-2st3uni
-2stuns
-2stunt
-3stuö
-stu3ra
-stu5re
-2st3url
-4sturn
-2st3urt
-3s4turz
-4stüch
-3s4tück
-3s4tüh
-2stür.
-2stüre
-2stürg
-2stürs
-2stürw
-2stütc
-2stv
-2stw
-stwor2
-2s3ty
-4sty.
-s4tyl
-4styp
-4stys
-2st3z2
-su1an
-3su2b3
-su4ba
-4subi
-su4br
-3su1c
-su2cha
-su2chi
-su2cho
-suchs3p
-3sud
-su2eb
-s1uf
-su4fe
-2s1uh
-su1is
-su1it.
-su2k
-3sul
-su3l2i
-sum1a
-su2man
-su2mar
-3s2ume
-su2mei
-su2mel
-sument2
-su4ments
-su2m1et
-2s3umf
-su2m1id
-su2min
-3s2umm
-sum1o2
-su2mor
-s2ump
-s1ums
-s3umsa
-2sumse
-2s3umst
-su2n
-2s1una
-sunder2
-sun4d3erh
-su4ne
-4s1unf
-4sungena
-2sungl
-4s1uni
-2sunm
-s1uns
-2sunt
-3sup
-4supd
-sup3p4
-su2ra
-sure4
-su2rei
-su2rer
-3surf
-2s1urk
-su2r1o
-2s1ursa
-s1urt
-su2s3
-su3s2a
-s3u2t
-su3tr
-suz2
-2süb
-sü4be
-3süc
-süd1
-sü4da
-sü4de
-süden2
-sü5den.
-sü4di
-sü4du
-3sün
-s2üs2
-sü3sse
-sü3ssi
-2sv2
-s3vl
-s3vo
-svoran2
-s3vö
-2sw
-s3wa
-s3we
-swe4gers
-sweh2
-swe5st
-4swie
-4swil
-4swink
-s2wist
-4swit
-s3wö
-s3wu
-s2y
-s3ya
-2sy2l1
-sym3
-sy2n3
-3synd
-sy4no
-3sys
-2sz2
-s4ze.
-4s3zei
-4s3zel
-3s2zena
-s2zend
-3s2ze3n2e
-4szent
-4szer
-s2zes
-s2zeß
-s4zew
-4s3zie
-4szim
-s3zins
-s3zo
-s3zs
-sz3t
-sz4ts
-s3zu
-2ß1a2
-ß3ab
-ßan1
-ßas2
-ßa4si
-ß3at3
-ß3au
-2ß1ä
-2ßb2
-ßb4ri
-ßbus3
-2ß1c
-2ßd2
-ßd4ri
-1ße
-2ß1e2b
-2ß1ec
-2ß1ef
-2ß1e2g
-2ß1ei
-2ß1ek
-ße2l
-2ßelek
-ße3lu
-2ß1emp
-ße4n3a4
-2ßenerg
-ße2ni
-ß1enke
-ße2no
-3ß2ente
-2ßentz
-ße2nu
-2ß1e2p
-3ß2er.
-ßer3b
-ße2ro
-ß1erse
-ßer3t
-ß1erw
-2ß1erz
-ße2s
-2ß1es2s
-2ß3estr
-ße2t
-2ß1ex
-2ßf
-ßf4ru
-2ßg2
-ßge2bl
-ß3gm
-2ß1h
-1ßi
-ßi2g1a
-2ß3i2k
-2ß1il
-2ß1im
-2ß1in
-2ßk2
-ß3kh
-ßk4le
-ßk4na
-ßk4ne
-2ß1l2
-2ßm2
-ßmut2
-2ß1n2
-ß3ni
-2ß1o2
-ß3oa
-ßo4fe
-ß3ok
-ß1ö2
-ßö4fe
-ßö4st
-2ßp2
-ß3pf
-2ßq
-ßquet2
-2ß1r2
-ßrö2
-ß3ru
-ßrus3
-2ßs2
-ß3sa
-ßsau4
-ßsch2
-ß3sk
-ß3sp
-ßs4pu
-ßst2
-ß3sz
-2ßt
-ßt1h
-ßt1in
-ßts2
-1ßu2
-ß1uf
-ßu4fe
-2ß1uh
-2ß1um
-ß2ung
-ß1uni
-2ßunt
-2ßunv
-ß1ur
-ß1ü
-ßü4be
-2ßv
-2ßw
-2ßz2
-ß3zs
-1t
-t2aa
-ta3ar
-4tab.
-3taba
-ta2b3an
-2t1abb
-tab2bau
-4tabd
-3tabel
-2tabf
-2tabg
-2tabh
-2t3a2bit
-2tabk
-2tabla
-4tabm
-2t3abn
-2ta4br
-4tabs
-t1abst
-2t3abt
-3tabu
-4tabw
-4tabz
-2t1ac
-tach5te
-3tacu
-t1ada
-2tadd
-ta2der
-tadi3
-tadi5o4
-tadi4s
-t1adm
-t1a2dol
-t1a2dr
-ta3d2s
-ta2er
-3tafe
-4tafet
-4taff
-t1afg
-t1afr
-3tag
-ta2ga
-ta2g1e2i
-4t3a2gent
-tage2s
-4t1agg
-ta3gl
-4t1a2go
-tag2s3
-tag4san
-tah2
-3tai
-ta3i2k
-tai2l1
-ta1ins
-tai4r
-ta1ir.
-ta1i2s
-2t1a4ka
-2t1akk
-2t1akq
-ta4kro
-tak4t3erf
-tak2t1o2
-2takz
-3t2al.
-ta2la
-ta3lad
-ta3lag
-tal3au
-3talbr
-3tal2en
-ta2l3end
-tal3eng
-ta2l3ens
-3taler2
-ta2ler3g
-ta2let
-tal2ga
-tali4ene
-tal2l3ac
-tal2la2g
-tal2leg
-tal2lei
-tal2let
-tal4leut
-tal4lin4s
-tal4los
-tall2ö
-tall3s
-tal2lus
-2t1alm.
-ta2lop
-ta2l1o2r
-3tals
-t1alta
-tal3th
-talt4r
-ta2lu
-2tam
-3tam.
-t1a4mer
-tam2ma2
-tam2m3er
-tam4mi
-tam2mut
-t1ampl
-3tams
-4t1amt
-t1a2na
-tan3ab
-4tanal
-ta4nat
-2t1a2nä
-tan2c
-tan3d2ar
-tan2dr
-tand2st
-ta2nerf
-4tanf
-2t1ang
-t3angeh
-t3angel
-t2ango
-tan2gra
-t2angs
-2tanh
-t2anho
-t4ani
-3tanj
-3t2ank
-tan2kl
-4tankü
-4t3anl
-t1anm
-2t1anna
-3t2anne
-t1ano
-2tanom
-t1ans
-t2ans.
-4tansi
-2tanspr
-tan2tan
-t2ante.
-2tantei
-2tantr
-2tanwa
-2tanwä
-t2anz.
-2t1anza
-3tanzk
-t2anzp
-3tanzr
-t1anzu
-tan2z3w
-tao2
-ta3or
-t4ape
-ta2pes
-2tapf
-ta2pl
-ta2poka
-t2appe
-ta2ra
-2tarab
-3tarabb
-3tar5al
-2taram
-t2aran
-ta3rant
-tar3ap
-ta3ras
-t2arau
-2tarb
-3tarba
-tar4beitn
-3tarbek
-3tarber
-3tarbi
-3tar3bl
-2tarc
-4tarchi
-t2ard
-ta2rel
-ta2r1er
-tar3g
-ta1r2h
-3tari
-2tark
-tark4l
-t2arko
-t2arl
-2t1arm
-t2armä
-tar4nei
-ta2rom
-4tarot
-2tart
-4tart.
-t2arta
-4tarten
-t1arti
-3t2artis
-tar2to
-tar2tr
-3tartu
-3tartü
-ta2ru
-2t1arz
-3tarzu
-t2as.
-ta3s2a
-tasau1
-3tasc
-t1asp
-4taspe
-ta3spr
-2t3assi
-ta4stem
-ta4sto
-t2asy
-2t1as2z
-t4at.
-ta2tab
-ta2tan
-3t4atb
-t4ate
-tat1ei
-t5a2tel
-ta2tem
-3taten
-ta2t1er
-2t3atl
-2tatom
-2ta2tr
-3tatsa
-2tatta4
-2tatti
-tat3zw
-tau2b1a
-3taubh
-tau2bl
-tau2b3r
-4taubs
-tauchs4
-tauch3sp
-4taud
-2t1auf
-3taufe.
-t3aufl
-tau3f4li
-4taufm
-4taufn
-t3au4f1o
-4taufp
-tau3fr
-4taufw
-3taug
-4t3auge
-t1auk
-3taume
-4t1ausb
-3tausc
-tau4scha
-tau4schm
-tau4schr
-tau4schw
-2tausd
-t2au3s2e
-4tausee
-4t1ausf
-t3ausg
-t1ausk
-4t1ausl
-2tausr
-2t3auss
-2tausü
-2tausw
-2t3ausz
-4tauu
-3tax
-taxi3s
-4t1axt
-tä1c
-t2äf
-3täg
-4tägy
-2täh
-4täll
-2t1ält
-2täm
-tä4mi
-t1ämt
-t1ängs
-2t1äp
-2täq
-tä2reng
-tä2ru
-2t1ärz
-tä2s
-tä4ss
-tä4st
-t2ät
-3tätigk
-4tätt
-2täug
-2täuß
-2täx
-2tb2
-t3ba
-tbauer2
-t3be
-tber2e
-t3bh
-tblocken4
-tb4ra
-tb4ri
-t3bs
-tbus3
-2t1c
-t3cha
-t3che
-tchen3
-tch2i
-tch3l
-t3chr
-t2ch1u
-tch3w
-t3cl
-t3co
-tcor2
-t3cr
-tc4up
-2td2
-tdar2m1
-tdä1
-t3do
-td4ri
-t3ds
-tdun2
-3te2a2
-te3ab
-tea3c
-te3ag
-4teak
-te3al
-teamma3
-te3an
-te3ar
-tea4s
-3teba
-2t1e2ben
-3t2ech
-4techd
-4techk
-4techm
-4techt
-te2chu
-2teck
-t1ecu
-te2dit
-3tee
-tee3id
-te1em
-teen1
-te2er.
-te1erw
-te2es
-3tefa
-2teff
-2t1egg
-te2hac
-2tehe
-te2him
-2t1ehr
-te3hu
-3teic
-tei3fl
-2teign
-teik4
-3t2eil
-tei4lent
-tei3m2
-2tein
-teinen4
-tei4nens
-t3einkü
-2t1eis.
-t1eisb
-tei3sc
-te3isch.
-t1eiw
-tei3z4
-te2kel
-3teko
-tek3t4
-te2la
-tel3ab
-tel1ac
-te3lan
-te4lant
-tel1au
-te2lä
-telb4
-tel3d4
-tel1ec
-tel3ehr
-2telem
-tel3eng
-te2ler
-te2leu
-2t3elf.
-te4lim
-te2l1in
-t1e2lit
-tel3le
-tel4lein
-tel3li
-tel4li4st
-te2lob
-te3lom
-te2lost
-te2l1ö
-tel3s2k
-tel3ta
-telt4r
-t2ema
-te2man
-te2m1ap
-tem3art
-te2mau
-2tem2bo
-te2m1ei
-te2m1er
-2temg
-2te2mi
-tem3i2m
-tem3ing
-te3misc
-2teml
-2temn
-3temod
-te2m1o2r
-te4mp
-3temper
-2tempf
-3tempo
-tem3s4
-te2mu
-te4mun
-t4en.
-t2en1a
-te4na2d
-tena2g
-te4n3an
-ten3ar
-te4nas
-te4nat
-ten3au
-te2n3ä4
-t2enb
-ten3da
-t3endal
-tend2an
-2tendap
-2t1endf
-t4endi
-2t1endl
-t4endo
-2t1endp
-t4en3d4r
-te2n1e2b
-te2nef
-te2neh
-ten3ei
-te3n4ei.
-tenei2d
-tene4m
-tenen1
-te4n3end
-te4nene
-te4neng
-te4nens
-4t3energ
-te2n3ern
-te2ners
-t1eng.
-teng2a
-2ten2gag
-te2ni
-te4nil
-ten1im
-te4nin
-tenk4
-ten3n2
-te2nol
-te2nos
-te3nö
-2t3ensem
-3tenso
-tens2p
-tens3th
-t2enta
-t1entb
-2tentd
-2t3entl
-2t3entn
-ten4tric
-t1ents
-4t3entw
-2tentz
-te2nu
-t2enz
-ten2z3er
-teo4f
-t1epi
-te2pil
-tept2
-t2er.
-t2era
-tera2b
-ter3ac
-te2rad
-te1ral
-te2r3alg
-te3ran.
-te3ranb
-te3rane
-te2r3ap
-2t1erbs
-2t1erbt
-2t3erde.
-ter3d2s
-te2r1e2b
-te2rec
-2t3ereig
-ter3ein
-te5rek
-te2rel
-ter3ell
-tere2m
-te2rema
-te2r3end
-te2rene
-te2reng
-te2r3ent
-teren3th
-terer3k
-terer4ku
-terer3l
-te2r3erp
-te2rers
-te2rerw
-t4erfr
-terg2
-ter3ga
-t4ergem
-t4erges
-t4ergew
-ter4gieb
-ter3gl
-4tergrei
-ter2gri
-t4ergru
-2t1ergu
-2tergü
-te4rh
-t4erhall
-t2erhan
-t4erhau
-t2erhäu
-t2erhei
-t2erhi
-t2erho
-t2erhu
-te3ria
-ter3iko
-teri4o
-te2rit
-ter3i2ta
-t4erlä
-ter3lei
-t4erli
-ter2lös
-3term
-termas2
-ter2mer
-t2ern.
-ter2nar
-t4ernc
-te1rob
-ter2obe
-2teros
-t1e2r1ö
-ter3r2
-t4erra
-3terras
-ter4re.
-t4erro
-t4ers.
-t2erse
-t4erst.
-t4erstad
-t4erstä
-t6ersted
-t4ersti
-ter3str
-t4erstu
-t4erstü
-ter4sw
-ter3t4a
-ter4trä
-teru4
-te4r1uf
-te3rung
-2t3erwäh
-ter3z2a
-2t1erzb
-t4erzei
-ter3zw
-te2s
-tesa4k
-te3sä
-te3s2c
-te3ser
-te3si
-te3so
-te3spen
-tes3pr
-2t1essa
-tes3si
-tes3tät
-3testb
-tester2
-te4sterg
-te4st3erh
-te4sterk
-t3est3ri
-3tests
-t1eta
-te2tabl
-2te2tap
-te2tat
-teten3
-2t1e2th
-te3tho
-te2tik
-2tetl
-teuer5b
-teuer3r
-3t4euf
-teu4fa
-te1u2n
-2t3eup
-teu2rob
-te2va
-te2vi
-tewa2s
-3tewo
-2texam
-2t1e2xe
-te3xel
-2t1e2xi
-4texp
-tex4ta
-2t1exz
-tè2
-2tf2
-tfäs3
-t3fj
-tf4la
-tf4lö
-tf4rö
-tf4rü
-2tg2
-tga4s3er
-tga4su
-tge4nen3
-tger2a
-tger2i
-tg4ra
-tgro3
-2th.
-2t1h2a
-3tha.
-3t2hag
-4thak
-3thal.
-3thalh
-t4hali
-t2hals
-4tham
-t2han.
-t3hand
-4t3hap
-4t3hau
-2t1hä
-3thäi
-4thäl
-2thb
-th2e
-3t4hea
-2t1heb
-4t1hef
-2t1hei
-the1in
-4theit
-3t2hek
-2thel
-3thema
-2themd
-t1hemi
-2themm
-t1henn
-3theo
-t1herd
-3therm
-thero1
-2t1herr
-2t1herz
-3these
-4t1hess
-t2heu
-2thf
-th2i
-3thi.
-thic3k4
-thi3er.
-2t1hil
-2t1him
-2t1hin
-thi3nu
-2t1hir
-2thk
-2th3l
-2th3m2
-thmu2
-2th3n2
-2t1hob
-t1hoc
-tho3chr
-t1hof
-2t1hoh
-t2hol.
-t2holo
-t1hols
-t1holt
-2tholz
-t2hom
-t2hon
-4thops
-tho3ra
-2t1hose
-t1hot
-4thote
-2thou4
-t1hov
-2thö
-2thp
-th2r2
-th4ro
-2ths
-2tht2
-t1hu
-2thub
-4t3hun
-2t1hü
-2thv
-ti3ac
-ti1ag
-2t3iago
-tial2l
-ti3alo
-ti1a4m
-ti1as
-ti2ä
-ti1ce
-ti3chr
-3ticket
-t2id.
-ti3de.
-2tidee
-ti2d3en2d
-ti3dy
-3tief.
-4tiefel
-3tiefl
-tie2fr
-ti2e1i
-ti1el
-tiel3a
-tie2n1
-ti3ene
-tie2rei
-tie2reu
-3tierr
-tie5sse
-ti1eu
-ti3fe
-tif3f
-ti3f4r
-tifter4k
-ti2gerz
-ti2git
-tigs4
-tih2
-tihi4
-ti2kam
-ti2kar
-tiken2
-ti2kent
-ti3k4ere
-ti3kerl
-ti2kin
-ti4klu
-ti2kn
-ti2kop
-tik1r
-ti2kra
-ti2krä
-ti2krei
-ti4kro
-ti2lant
-ti2lar
-til3d
-ti2lei
-ti2lel
-3tilg
-tille4b
-2tillu
-ti2lö
-tilt4
-ti2ma2g
-tim2man
-tim4ma4te
-timmer2
-tim4merg
-tim4mit
-2timp
-t4ina
-ti3naf
-ti3nak
-ti2n3an
-t1ind
-ti3n2e
-tine1i
-ti5nen
-2t1inf
-tin2ga
-tin3gen
-tin2gi
-ting3l
-ting3s4
-2t1inh
-3tinis
-t1init
-t1inka
-tin2k1l
-tin2kn
-t1inku
-t2inn
-ti2nor
-t1ins
-t2insä
-4t3inse
-tin2spa
-tin2sum
-t1int
-3tinte.
-2t3inter
-ti3nu
-tin2um
-4t1inv
-3tio
-ti2osk
-tioxi3
-3tip.
-ti3p4l
-3tipp
-3tips
-ti2que.
-3tirad
-ti1r2h
-ti4ron
-t2isc
-ti4schei
-ti2schr
-tisch3w
-ti2sei
-tis2el
-ti3sk
-t1isl
-t1iso
-ti2sp
-t1isr
-tiss4
-ti3sth
-ti2s5tic
-ti2s1u
-2t1iß
-t1it2a
-ti2tal
-3tite
-ti3th
-t2iti
-3tiu
-tium4s
-ti2van
-ti2vel
-tiver2
-ti2verh
-ti2verk
-ti2verl
-ti2v1o
-ti4v3r
-ti2za
-ti2zir
-2tj
-2tk2
-tklat3
-tk4ne
-t3kr
-2t1l2
-tlan2g
-tlei2bl
-tlei4der
-tl4er
-tle2ra
-t3li
-tlings5
-tli5ni
-tli3s
-tlit1
-t3lo
-2tm2
-tmal2
-tm4am
-tmen4schl
-tmen4t3
-tmo4des
-t3mö
-2t1n2
-t3na
-tn4an
-t3nä
-t3ne
-tnes4
-t3ni
-tni3v
-to3ar
-to3a4t
-t2oba
-4to4bj
-tob2l
-t1obs
-3tobt
-to1ch
-t3ochs
-3tocht
-3tod
-tod1er2
-todes3t
-to2dun
-toe2
-tof4f3ent
-tof2f3er
-2toffi
-2t3ohr
-3toil
-toi4r
-tok4l
-to3le
-tomar2b
-to4mene
-3tomi
-3tomo
-to4m1u
-to5mus
-to2nan
-ton3au
-tond2
-to2n2eh
-toner4ke
-to4nid
-to2nob
-2tony
-3too
-to4pad
-to4pak
-to3pas
-to2pat
-top1hi
-to2ple
-3topo
-2to4pt
-t4or.
-tora2g
-to4rän
-t1ord
-t2ordi
-2t3ordn
-t4ore
-3tore.
-to2rel
-to2rem
-to4renna
-3torf
-tor2fan
-t1or3g
-2torga
-4t3orient
-torin2s
-tor3int
-to2rö
-3torp
-t4o4rs
-2t1ort.
-tor3t2a
-2t1orth
-4tortn
-4tort4s
-to4ru
-to5rus
-to3rü
-to4rüb
-to3s2
-to4sb
-to4s3ka
-t1o4sz
-to2tä
-to2tho
-tot3s4
-3t2ou
-touil2
-to3un
-3to1x
-tö2c
-3töch
-4töck
-2t1ö2d
-2töf
-tö4fe
-2t1ö2k
-2töl.
-3tön
-t2ör
-t1ö4st
-3töt
-2tp2
-t3pf
-tpf4l
-tpi2n
-t3pl
-tp4lu
-tp4rä
-t3ps
-2tq
-t2r2
-2tr.
-t4rab
-tra3cha
-tra3chl
-2t3rad.
-2trade
-tra2dem
-t3radie
-tra4fah
-tra4far
-t4rag
-tra5gen
-4trahl
-2trahm
-3t4rai
-2t3rake
-t4rakt
-tr4al
-tral3l
-3tram
-tra5me
-3t4ran.
-4trand
-4trang
-t3rann
-3t4rans
-tra3po
-3trapp
-tra4sta
-tra4str
-4traß
-t1raub
-2traub.
-4trauc
-t4rauf
-2traup
-traus2
-3träc
-2träd
-3t4räg
-3träne
-4träng
-4träs
-4träß
-2träuc
-4tre.
-2trea
-t3reak
-4treb
-tre2b3r
-4trec
-t3rech
-t4reck
-5treck.
-2t3red
-3tref
-4trefe
-4trefl
-4trefo
-4treg
-t3reh
-t4rei.
-3t4reib
-4treif
-2t3reig
-2t3reih
-2t3reim
-2t3rein
-2t3reis
-tre5isch.
-t3reiß
-4treit
-t3reiz
-2trek
-2t3rel
-t4rem
-t4ren.
-3trend
-3trennu
-t3rent
-t3repa
-2trepe
-2t3repo
-3trepp
-t4rer
-t4res.
-t3rese
-3tret
-tre2ta
-t4rete
-tret3r
-tre2tri
-4t3rett
-t4reu
-3treuh
-2t3rev
-t4rex
-2trez
-3tré
-2t3rh
-3t4rib
-4trich.
-t4rid2
-3trieb
-trie3fr
-tri2en
-tri4ena
-tri3ent
-tri2er
-tri4ers
-tri3est.
-2trig.
-tri3gl
-t4rik
-tri2ke.
-tri2kes
-3triko
-t3rind
-2tring
-tri3ni
-3trink
-3trio
-tr4is
-2triß
-tri2x
-trizi1
-tro3b4
-3troc
-4trock.
-tro2kes
-trol2la
-tr4om
-tro4men
-4tromk
-4troms
-tro3na
-t4rop
-tro3pe
-5tropf
-tro3sm
-3trost
-t1rot.
-2trout
-t4roy
-4t3röc
-2tröh
-4tröm
-3tröp
-2t3rö4s3s
-3tröt
-3trub
-2t3ruc
-4truf
-3t4rug
-4truk
-trum2
-t3rumä
-trums3
-t3rund
-3trunk
-3t4rup
-t3russ
-2t3ruß
-2trut1
-tru2th
-trü3be
-trü3bu
-2t3rüc
-trücker4
-t4rüg
-3trümm
-3try
-try3o
-2ts
-ts3a2b
-t3sac
-tsa3che
-t4sachs
-t2s1a2d
-ts1ahn
-t3s2akk
-t2sall
-t2salt
-t4samp
-t4s1amt
-t2san
-ts3ane
-tsa2p
-tsa2r
-ts3are
-ts3ari
-t2s1a2s
-tsa3ssen
-tsa4st
-t3satz
-t2sau1
-ts2av
-t2säh
-ts1än
-ts1äus
-t2sce
-t4schart
-t4schef
-tsch2li
-t4schro
-t3schü
-ts2cor
-t2s1e2b
-tse2e
-t2sef
-tse2he.
-t2s1eic
-t3seil
-t3seme
-ts1eng
-t3s2ens
-t2s1ent
-t2s1ep
-t2s1er
-tser2u
-t4s3essen
-tse2t
-ts1eta
-t2s1eti
-t2s1ev
-t2sex
-t3sexi
-tsh2
-ts3he
-t2s1i2d
-t2s3i2k
-t2sim
-tsing4
-t2sini
-ts1ir
-t3s2kal
-ts2kele
-tski2
-t4sko
-tsmas2s
-tsma3sse
-ts1off
-t2s1op
-tso2r
-ts1orc
-t2s1ori
-ts3ort.
-t2sö
-t2spac
-t2spal
-ts2pare
-t2spat
-t2spä
-t3sped
-t3spei
-t3spek
-t2sph
-t4s3pic
-t4spins
-ts3ple
-t2spo
-t3s2pon
-t3s2por
-t2sprei
-t3spru
-ts3s2
-tsser2
-tss4k
-tss4t
-ts5ste
-tst2
-t2stabe
-t2staf
-t4stag
-ts3tak
-t2stale
-t4s3tanz
-t4stas
-t2s3tat.
-t2s3täti
-t2stea
-t4stee
-t4stele
-t4stens
-t4s3tep
-t4sterm
-t4s3terr
-t4s3th
-ts3tie
-ts4til
-t3stim
-t4s3tis
-t4stit
-t2stoch
-t4stoi
-t4ston
-ts3tor
-tst4r
-t2strac
-t4strad
-t4s3trak
-t3strec
-t4stren
-ts3treu
-t3stric
-t4strie
-t4strun
-tst4u
-t5stub
-t4sty
-ts1u
-t2su.
-3tsubi
-t2sumg
-t2sums
-t2sumv
-t2sumz
-t2s3un
-tsü3s
-tswa2s
-t3sy
-t4sza
-ts2zin
-2tt
-tt1ab
-tt2ac
-tt3achs
-tt1ad
-tt2ag
-tta4g3ess
-t4t1ah
-tta4ke
-tt2al
-t2tan
-ttan4a
-tt4anke
-ttank3l
-t3t2ant
-t2t1ap
-tt1art
-tta3st
-tt3atr
-tt1äh
-t2tän
-tt1ebe
-tt3echs
-tt1eif
-tt1ein
-t2t1eis
-tte4l1a2
-tte2l3e2b
-t2te2leg
-tte2len
-tt2eli
-ttel3l
-ttel1o
-t2temu
-tte4na
-ttens2
-tten4sem
-t2tentb
-tten3te
-t2tentf
-t2tents
-tten3z
-t2teo
-tte4r3ar
-t3t4ere
-tt2erg
-tteri2e
-tte4rik
-ttermas5s
-tter3nä
-tte2ro
-tt2erö
-tt4es1
-tte4s3a
-tte4s3ä
-tte4so
-t3tess
-ttest4r
-t4teuf
-tt2häu
-tthä3us
-tt1hi
-t2t1ho
-t2ti4d
-t2t3igi
-t2tins
-tt2int
-t2tiso
-t4t3la
-t4tli
-tt5nan
-t3to.
-t2torg
-t3tos
-ttras3s
-t3trog
-tt3rü3
-ttschi4
-tts1eh
-tt2sen
-tt2spe
-tt2spr
-tt2s3tät
-tt4s3tem
-tt4ster
-tt2sum
-tt3sz
-t2tu2c
-tt1u4f
-t4tunt
-t2tu4s
-ttü2
-tt3z2
-ttz4w
-3tua
-tu4ale
-tu1alm
-tu1alv
-tu3ant
-tub2
-tuba3b
-tu2chi
-tu1cho
-tudie4n3
-3tue
-tu2ere
-2tuf
-tuf2e
-tu5fen
-t3u4fer
-3tuff
-tuf4fel
-tu2gan
-3tuge
-2tuh
-tuh4ler
-tu1ist
-t3u2kr
-tul2i
-tum2b5l
-4t3umf
-2t3umg
-2t1umh
-2t3umk
-2tuml
-3t2umo
-2t3umr
-2t3umsat
-2t1umsc
-tum2si
-tum2so
-2t3umt
-2t1umw
-t3umz
-3tun.
-2t1una
-2t1und
-tund2e
-3tune
-tun2en
-2t3unf
-t3unga
-tungs5
-tun2i
-2tunif
-2tu2nio
-2tuniv
-2tunm
-3tunn
-t1u2no
-t3unr
-t3uns
-3tuns.
-2t3unt
-2tunv
-2t1up.
-t1upg
-tu2r1a2g
-tu2ran
-turan4l
-tur3ans
-tu2ras
-tu2rau
-tu2rä
-tur1c
-tu2r1e2b
-tu2rei
-tur3eis
-tu2rene
-tu2r1er
-tu4res
-tu2re4t
-tu2r3e2v
-turf4
-tur3g2
-tur1in
-tur4mun
-3turn
-tu2r3o
-tur3s2
-tur5sa
-tu2ru
-tu2sa
-tu2schl
-tu2s1e
-tu2so
-tut2a
-tuto3
-4tutz
-2tüb
-tü3ber.
-3tüch
-tück2s
-3tüf
-3tür.
-tür1c
-3türe
-3türg
-3türs
-3türw
-4türz
-3tütc
-3tüte
-4tütz
-2tv2
-t3vo
-t4vo.
-tvoran2
-2tw
-t3wa2
-twegs2
-t2wist
-tw4ri
-3ty.
-t1ya
-ty2p1a
-ty4ps
-2tz
-t2za2
-tz1ag
-tz1ap
-tz3ar
-tz1au
-t2z1ä
-t3zäh
-t2z1ec
-t2z1e2d
-tz1ehr
-t2z1eie
-t2z1eig
-t4z1eis
-tzei4tend
-tze2m
-tz1emi
-tze4n1
-tz2ene
-tzen3ta
-t2zentg
-t2zentl
-t2zents
-tzer4gre
-t2z1er2m
-tz1erw
-tz2er3z
-tz3erzi
-tzes3t
-tz1e2t
-tz1i2d
-tzi4m
-tz1imi
-tz1int
-tz1inv
-t2z3om
-t2zop
-tz2th
-tz2tin
-tzu2gu
-tz1unf
-t2zuni
-tzwan2d3
-tz3wä
-tz3wi
-t3zwie
-tz3wu
-2ua
-u3a2b
-u3a2c
-ua4ch
-ua2dan
-uad4r
-u1a2g
-u1ah
-ua4ka
-u1al.
-u1a2l1a
-u1a4l1ä
-u1alb
-u1ald
-u3aleb
-u3a2lent
-u3aler2
-ual3erk
-u3a2let
-u1alf
-u1alg
-u1alh
-u3a2lid
-ual3l
-ualle2
-uallö3
-u1aln
-u3a2l1o2
-u1alp
-u1alr
-u1als
-u1al3t4
-ua2lu
-u1alw
-u1al3z4
-u1am
-u1an.
-ua3n2a4
-u1ans
-uant2
-u3ar.
-uara2b
-u1ars
-uar2t3an
-ua3sa
-ua2th
-uat2i
-uati4ons.
-uat2o
-u3au
-uau2s3
-u1ay
-u1äm
-u1än
-u1äu
-2ub
-u2barb
-ubb4l
-ube2be
-ube2e
-u2b1ehe
-ub1ein
-u2b1e2m
-ube4n1a
-uben3o
-ub2er
-u2b3erde
-ubert4
-ub4es
-ub1eul
-ub4is
-u3b4it
-ub2l
-ub3läu
-ub3lic
-ub3lu
-ub4lut
-u2bob
-u2b3ok
-u2bop
-u2boz
-ub5rah
-u2b3rit
-ub4ro
-ub4rü
-ub2san
-ubsau2
-ub4s3che
-ub2s1o
-ub2s3p
-ubst4
-ub4sz
-ub3t2h
-ubu3s
-2uc
-uc1c
-u4ch.
-uch1a
-u1cha.
-uch1ä
-u1che
-uch1ec
-u2ched
-uch1ei
-ucher3f
-ucherma4s
-u1chi
-uch3im
-uch1in
-uch3l
-uch3m
-uchma4ss
-uch3n
-uch1op
-u2ch3r
-uch2sel
-uch2so
-uch2sp
-uch2tak
-uch3tan
-uch4t3erf
-uch4t3ert
-u1chu
-u2chum
-uch3ü
-uch3w
-u1ci
-uck3elf
-uck3i
-uck2sti
-uck3t
-u1cl
-uc4re
-2ud
-u3d2a
-uda3d
-ud4at
-ud2e
-ude1e
-ude3i2
-udein5
-udel3se
-uden1
-uden3e
-udert4
-udi3en
-udiener4
-udio3
-uditi4
-u3d2ob
-u2don
-ud3ra
-u3dru
-2u1e
-ueb4l
-ue1ch
-u2ed
-ueen4
-u2eg
-u2eh
-ue2ke
-u2ela
-ue2lek
-ueli4
-uel2la
-uel2lä
-uel4lent
-ue2mi
-uen1
-u3en.
-ue4n3a2
-ue2nä
-u3end
-uene2
-ue2neb
-ue2ner
-uen2gag
-uenge2
-uenge4m
-uengene3
-uen2gl
-ue2ni
-uenk4
-ue2no
-ue2nu
-uen2zu
-u2ep
-ue2r3a2
-ue2r1ä
-uerb2
-uer4baut
-u3erbu
-uer3d2
-uere2
-ue2rec
-uer4ei.
-u3ereinn
-uer3ela
-u3eremp
-u3e2r3ent
-ue3r2erb
-u3ererf
-ue2rer2g
-uerer2h
-uerer2k
-uerer4m
-ue2rers
-uerer4sa
-uer3esk
-ue2re4t
-u3erex
-uerg2
-uer3ga
-uer2geb
-ueri2d
-ue2r1i4m
-uerin3s
-u3erin2t
-u3erl.
-uerma4s
-u3ern
-uer4nan
-uer2nar
-uer2ne
-ue2r3o4
-uer2ö
-uer3ra
-uers4p
-uerst4
-u3ersti
-uer3t2
-u3eruh
-u3erum
-u3erunf
-u3erunt
-u3erur
-uer2wec
-uer3z2
-u3est.
-ue2ta
-ue4tek
-ue2tik
-uety2
-u2ev
-ue2x1
-u2f
-u3fa
-uf1ab
-ufall2
-ufa2n
-uf3ane
-uf3a2r
-ufa2t
-uf1au
-u3fä
-u4f1än
-uf1är
-uf1äs
-ufä6sse
-uf1ä2ß
-u3fe
-u4f1ei
-ufel4s3a
-u4f1em
-4ufen
-u4fent
-uf2ere
-u4ferf
-u4f1erh
-ufer4lau
-u4ferle
-u4ferne
-u4f1eß
-u4f1et
-u4fex
-2uff
-uf3f2e
-uffel2
-uff4l
-uf2fro
-u3fi
-u4f1id
-u4fim
-u4f1ins
-uf3l
-u4fläs
-uflos3
-uf4lü
-uf5lüd
-uf5lüm
-u3fo
-u4fob
-u4fof
-u4fop
-ufo2r
-uf1ori
-u3fö
-uf3r
-u4fru
-uf3sä
-uf5sät
-uf2spo
-uf2stab
-uf4ster
-2uft
-ufta2b
-uft1eb
-uf3ten
-uft3erd
-uft3er2g
-uf3ti
-uf4tin
-uft3s2
-u3fu
-u4fum
-u3fü
-2ug
-u3ga.
-ug2abe
-u2gabte
-ug1a2d
-ug1ak
-u2gana
-u2ganb
-ugang4
-u2gani
-u2gans
-u2gant
-ug1ap
-u2g1ar
-uga4s
-ug1au
-ug3d2
-u3ge.
-u2g1ec
-ug4eg
-ug1e2i
-u2geig
-ug2eil
-u2g3ein
-uge2lob
-ug1emi
-ugene2
-ugenma3
-u2g1erf
-u2g1erk
-u2g1erl
-u2gerr
-u2gerv
-uges2
-u3ges.
-u2g1esk
-ug2et
-ug2gl
-ug4gt
-ug3hu
-u2g1i2d
-u2gim
-ug1in
-u2gins
-u2g1l
-u4glä
-u4gleitb
-u4gleitu
-u4glic
-u4glis
-ug3liz
-u4g3lo
-u4glu
-u2g3n
-ugo3
-u2go4b
-ug3oc
-u3gon
-ugo4p
-u2g1o4r
-u2gö
-u2g3ram
-u2g3rä
-u2greg
-u2g3reis
-u2g3res
-u2g3rie
-ug3ro
-ugro3s
-u2grou
-ug3rüs
-ugsma3
-ugsmas2
-ug4spe
-ugs4por
-ug4spr
-ug4spu
-ugs3t2
-ugs4tan
-ug3stä
-ug2ste
-ugs4to
-ugs4tr
-ug2stur
-ugs4tü
-u2gum
-ugu4ster
-u2gü
-u1h
-uh2au
-2u3h2e
-uhe3a
-uhe1e2
-2uhi
-2uhl
-uh1la
-uh2lar
-uh1lä
-uh2l1ei
-uh2l3ent
-uhl3erb
-uh2li
-uhl2ö
-2uhm
-uhme4
-uh1or
-uhr1a
-uhrei2s
-uh2r3er3
-2uh3ri
-uh4r1in
-uh4r3o
-uh2ru
-uh4rü
-uh3s4p
-uh3t2
-u2hu
-2uhü
-uh3w
-2ui
-ui2a
-ui1ch
-ui2che
-u2idi
-ui2du
-u1ie
-ui1em
-u3ig
-u4ige
-uil2les
-u1im
-u3in.
-uin3n
-u3isch.
-u3ischs
-uis2e
-uisi4n
-ui2st
-ui3sta
-uit3s
-uji3
-uk2a
-uk1äh
-u3käu
-uk2e
-uke2n1
-uk2l
-ukle1
-uk4na
-uk4ne
-uk4nu
-u2k1ob
-uko4m1
-ukom3a
-uk2ö
-uk4re
-uk2ta
-uk2t1el
-uk2t1er
-uk2tin
-uk2t3o2ri
-uk2t3r
-uk2tum
-uku2s
-uk2ü
-u1l
-ul1am
-ulan2e
-ul2ar
-ula2sc
-ul1äm
-ulb4l
-ul4dan
-ul2dar
-ul2dr
-ul3dra
-uld2se
-2ule
-u2l1el
-ul1emb
-ule4n1
-ul1er2h
-ul1er2r
-ule4s5t
-ule2t
-ul1eta
-2ulf
-2uli
-ul1id
-uli2k
-ulin1a
-ul1ins
-uli3p
-ul3ka
-ul2kn
-ulla2g
-ull1au
-ul2lä
-ul3len
-ul3l2i
-ulli2n
-ul2lo
-ul2lö2
-ull3s2
-ulm2e
-ulni2
-ulo2i
-u2lop
-u2l1or
-ul2ö
-ulp1h
-ul2pha
-ul2sa
-ul4sam
-ul2s1ec
-ul2sei
-ul2ser
-ul2sum
-4ult2a
-ul3tan
-ult3ar
-ul2tau
-ulter2m
-ul2tri
-ult3s
-u2lü
-ul2vr
-ul3z2e
-ulz4w
-2uma.
-u2maa
-u2m1ad
-u2m1a4k
-u2m1all
-um1ang
-u2m1ant
-um1anz
-u2m1ap
-um1ar
-u2marc
-u2marm
-u2mart
-u2matl
-u2matm
-um1aus
-u2maut
-um4ay
-u2m1äh
-1umd2
-u2m1e2b
-u2m1eck
-u2m1ef
-u2m1ein
-ume2n1e
-um3engel
-u3mer.
-umer2a
-u2m1erf
-um1erg
-u3merk
-u2m1erl
-um1erw
-ume4s
-1umf
-4umfi
-1umg
-um1ind
-um1inh
-um1ir
-umi2t
-um1ite
-1umk
-1uml
-umm4a
-2umme
-um4mess
-um3mi
-um3n
-um1ob
-u3mol
-um3ot
-ump2fa
-ump2fin
-1umr
-um4sam
-um4s3an
-1umsat
-um4sd
-um2s1er
-1umset
-um4sf
-um4sg
-um2sim
-um4sj
-um4sk
-um4sm
-um2s3pe
-2umspf
-um4ss
-um4stem
-um2su
-um4sv
-um4sw
-um3t2
-um4ts
-u2mum
-u2m1u2r
-1umz
-un1
-2un.
-2una.
-1unab
-3unabh
-un2a3br
-un2ag
-un2al
-u3n2am
-u2n3an
-u2nap
-u2narb
-2un2as
-un3at
-unau2s
-un2är
-2und.
-un2da
-unda2b
-un2dän
-1undd
-2unde
-un3de.
-underer4
-und3erf
-und3erö
-underten4
-under6tend
-und3erz
-un2dex
-1undf
-2undg
-un2did
-un2dim
-1undn
-undo2b
-un2dop
-2un2d3r
-4unds.
-2undsc
-und3s2p
-un2d1um
-undü4
-1undv
-1un4dz
-u3ne
-une2b
-une2d
-un2ei.
-un3eid
-un3ein
-un3eis
-un2emi
-une4n1
-un2ens
-unen2t
-un2enz
-u4nerk
-u4n3erz.
-un2es2
-unf2
-un3fa
-un2gab
-un2gam
-ungar4
-un2gat
-1ungeh
-un3gen
-3ungena
-unger2e
-1unget
-1ungew
-1ungl
-ung3lat
-un2glu
-un2go
-un2gr
-ung3ri
-un4g4s3
-ungstra4s5
-u3nic
-un2id
-un3ide
-4unie
-3u2nif
-uni3k4
-un2im
-1unio
-un2ir
-un3iro
-un3isl
-u3n2it
-1u2niv
-2unk
-un2k1a
-un3ker
-un2k1es
-un2ket
-un2kne
-un2ko4p
-un2kro
-unk3s2
-unk4tit
-unk2tr
-unlö2
-1unm
-un4n1ad
-unn2e2
-unne4n
-u2nob
-uno4r
-un2os
-1unr
-uns2
-2uns.
-unsch3el
-1unsi
-un3sk
-un4ski
-un3s4p
-uns4t
-unsta2g
-uns6tel
-unst1r
-2unsy
-2unsz
-1unt
-un3ta
-un3te
-unte2ri
-3unterr
-2unti
-un3tr
-unt3s
-2untu
-3unty
-2u2nu
-u3nuc
-unu4s
-u1nü
-1unv
-unvol2
-unvoll3
-1unw
-2unwä
-u2ny
-2unz
-un3z2a
-unz2e
-2uo
-u1o2b
-u3of
-u1op
-u1or
-u3or.
-uo2r3a
-uor3c
-u3oret
-uo2ris
-u3ors
-u1os.
-uote2
-u1ox
-u1ö2d
-u1ök
-u2p
-u3pa
-u3pä
-3upd
-u3pe2
-uper3
-uperer4
-u3pé
-up2fa
-upfe2
-u3p4fl
-u3p2fu
-u3ph
-u3pi
-up4id
-u3pl
-up4lu
-u3po
-2upp
-up2pl
-up5pun
-u3pr
-upra3
-up4t3a2
-upten1
-up4tene
-upt3erf
-upt3erg
-upt3erk
-upt3ers
-upti2m
-upt3in
-upt1o
-up4tr
-u3pu
-u3py
-up4yb
-2ur.
-u1ra
-u2rab
-u3raba
-ura2be
-u2r1aka
-u2r1akt
-u2ral2t
-u2r1am
-ura4na
-u3rand
-uran4fän
-ur1ang
-uran2ge
-ur2anh
-ur2anr
-uran3s
-ur1anz
-ur3ap
-u2r3ar
-ura4ri
-u3rasc
-ur1a4sp
-ura4str
-ur4a3te
-u2r3att
-ur1au
-2u1rä
-ur1äl
-ur1ä4m
-ur1än
-ur3b2a
-2urc
-urch1
-urchas2
-urch3s
-urcht3e
-ur3d2a
-ur3d2i
-ure1e
-ur1eff
-ur1ehr
-ur1eig
-u2rele
-ure2n
-ure4na
-u2ren2se
-u2rentn
-u2r1ep
-urer3h
-urer3k
-ur2ert
-u2rerw
-ur1eta
-ure3u
-2urf
-urf3l
-ur2fli
-ur2fro
-urf2spr
-urf3t
-ur2gei
-ur4gense
-urg3inn
-urg1l
-ur2gla
-ur2gri
-urgs4
-uri2c
-ur1ide
-uri3en
-u2r1ind
-urin2se
-urin4sek
-u2ri2so
-ur2m1ar
-ur2matt
-ur2mau
-urm2ei
-ur2mern
-urme2t
-ur2mum
-ur2mun
-ur3n2e
-urn2o
-2u1ro
-urob2l
-ur1off
-uro3h2
-2u1rö
-ur3p
-2urr
-ur3re
-ur2rh
-3ursac
-ur2san
-ur4sau4
-ur2s1er
-ur2spa
-ur2sun
-urt2
-2urta
-ur4tai
-urt3ein
-ur2tro
-urts2c
-2urtu
-ur1umh
-ur1ums
-ur2z1a
-ur2zä
-ur2z1ec
-ur2zep
-ur2z1op
-urzt4
-ur2z3w
-2us
-us3a2b
-usa2gi
-usal3t
-u4s1amb
-u4samt
-u2sang
-us4ann
-us3ark
-us3art
-usa4s
-us1ast
-us3ate
-u2säh
-u2s1äs
-us3b
-u2sce
-u2schab
-u2schak
-u2schar
-u3schart
-u2schef
-usch3eic
-u4schen4e
-u3schi
-usch3mü
-usch3wer
-u3se.
-u3s2e3b
-u2s1ec
-use1e
-use2ei
-u2s1ei
-u3seid
-u2sen2se
-usen4te.
-u2sentl
-use2rec
-u2s1erl
-u2serp
-us1erw
-u2s1ese
-u2sex
-u3si.
-u2sid
-usi3er.
-usi3ers.
-u3sig
-usi2kat
-us1inn
-u4ske
-us3kl
-u4sko
-u4skö
-u4sku
-usmas2
-usma3sse
-us3oc
-us1oh
-u3sol
-u2sop
-us1orc
-us1ou
-u3sov
-u2spac
-us2par
-us3part
-u2s3pas
-us3pe
-u5s4pec
-u3spek
-u2sph
-us3pic
-u5spit
-u2spo
-us2por
-u2spu
-usrich5
-u4ss.
-us2s1ad
-u4ssc
-us2s1eb
-usse4g
-u4s5sel
-us2se4n
-us3sende
-us4seni
-us2sep
-us2ser
-us3ser.
-uss3erf
-us2sez
-u3s2sig
-u4ssl
-us2sof
-u4ssr
-u4sst
-us2sum
-u2stab
-u3stad
-u3stal
-us3tas
-us3tau
-ust3erl
-us3ther
-us3tic
-u3stis
-us3tob
-us4tod
-u2s3tor
-us4tras
-u2strä
-us4trop
-u2s3tur
-u2suf
-u2s1umb
-u2sumd
-u2sumg
-u2sumz
-3usus
-u2sü
-2uß
-u2ß1u
-2ut
-u3ta.
-u3taf
-u2t1alt
-ut1a4m
-ut2ans
-u2t1ap
-ut1ar
-u2taut
-ut1äh
-u2t1är
-ut3c
-u3te.
-u4te2d
-ut1ei.
-ut1eie
-ut1ein
-ut1ela
-ut2em
-ute2n1
-uten2a
-u2tent
-ute2ra
-ute3ras
-ute4ring
-uter3k
-ut2erl
-ute2ros
-u3t2es
-ut2et
-ut2ev
-u2t1ex
-utfi2
-ut3hal
-ut3hei
-ut1hel
-u2t1hi
-u2t1ho
-u2thu
-u2t1id
-u2tigel
-uti2vi
-utli4n
-utmas2
-utma3sse
-u3to.
-uto3c
-u3tom
-uto3p
-u2tops
-utor2a
-u2tord
-uto2re
-uto2rin
-4utou
-u2töl
-ut3rea
-u2trou
-ut3rü
-utsau2
-ut2säu
-ut2scha
-ut3sche
-ut2schl
-ut2schm
-ut2scho
-ut2schö
-ut3ser
-u4t3sk
-uts2p
-ut3sta
-uts4to
-ut3t2l
-utts2
-utu4b
-u2tum
-utu4n
-u4t1une
-utu4re
-utu3ro
-utu3ru
-utz3a
-utze2
-ut2zeh
-utz3eng
-utz2er
-utz4erg
-ut2zet
-ut2z1in
-ut2zis
-ut2zö
-ut2z3w
-2u1u2
-uu4fe
-uum1
-uum3a4
-uume2
-uungsma3
-uungsmas4
-u1ü
-uü4be
-uv2
-u2ve.
-uve3rä
-uv4re
-2u1x
-ux2e
-uxi3
-ux2o
-ux3oe
-uxt2
-u1ya
-2uz
-uze2
-u2z1ec
-u2z1ene
-uz2er
-uzo4f
-uz3ot
-uz3we
-uz3z2
-uz4zb
-1ü2b
-üb1ä
-2übc
-2übd
-üb2e2
-übe3le
-ü3bem
-ü3ben
-übe4na
-übe3ne
-über1
-überas4
-ü3bes
-ü3bi
-üb3l
-üb3r
-üb5rig
-2üc
-ü1che
-üch3l
-üch4s1c
-ücht4e
-ücke4n1
-ück1er
-ück3eri
-ücker4ke
-ücker2l
-ü2d
-üd3a2
-üda4m
-üda4s
-ü3de
-üde2l
-üden2g
-ü5d2ens
-üdf6lan
-ü3di
-üd3o2
-üdo4s
-üdö2
-üdö4s
-üd3r
-üd3s2
-üdsa1c
-üdsau2
-üd3t2
-ü3du2
-üdwe4
-üe2
-üeb3
-ü1ei
-2üf
-ü2f1a
-ü2f1ä
-ü2f1ei
-ü2fent
-üfer2
-ü2f1erg
-üf2fl
-ü2f1i
-ü2f3l
-ü2fo
-üf3ten
-ü2fum
-üg2e
-üge2l1a2
-üge2lä
-üge4lec
-üge4lei4s
-üge2lo
-ügen3s
-ü2g3l
-ü2gn
-üg3s2
-üh3a2
-ü1he
-ü2h1ei
-ü2h3e2m
-ü3hem.
-ü2h1eng
-ü2h1ent
-ü2h1erf
-ü2h1er2k
-ü2h1er2z
-ü2hex
-üh1i2
-ühi4r
-ühl1au
-üh1lä
-üh2lel
-ühlen1
-üh2lene
-ühl2er
-üh2lö
-ühl2se
-ühl4sk
-ühl2sta
-ühl2sti
-üh3mo
-üh3ne
-üh1o
-üho4f
-üh3r2e
-ühr3ei.
-ühre2n1
-üh1ro
-ühr3ta
-üh3s4p
-ühs4t
-üh3stu
-üh3t
-üht2a
-üht4r
-ü1hu
-üh3w
-ük2
-ül1a
-ül2c
-ü3l2e
-ü4l3ef
-ül3eim
-üle2r3a2
-ül2la4
-üll1ad
-üll1au
-ül2lei
-üll2erg
-üller2z
-ül4leu
-ül2lic
-ül2lid
-ül2li2n
-ül2lo
-ül2lö
-ülls2
-ü2lö
-ü1lu
-ü2m
-ü3me
-ü4ment
-ü4m1e2p
-üme2ra
-ü3mi
-ü4m1id
-ü4m1in
-üm1u
-2ün
-ü2n3a
-ün2da
-ün3di
-ün2dr
-ü2n1erd
-ünf1
-ünf3li
-ün2g3l
-ünste2r3
-ün2za
-ün2z1i
-ünzu2
-ün2zun
-ün2zw
-ü2p
-ü3pe
-üpf3l
-ü3pi
-ü3pl
-üp2pl
-ü3pu
-2ür
-ür1a
-ü2r1ei
-ü2r1e2l
-ür2f1er2
-ür2fl
-ür2fr
-ür2g3eng
-ürge2ra
-ürk2e
-ü3r2o3
-üro5fe
-ürom2
-üro5ma
-üror2
-ür2rh
-ür4ster
-ürte2l1
-ürt2h
-ürz2a
-ür2z1in
-ür2zö
-ür2z3w
-üs2a
-ü3schi
-ü2schl
-ü3s2e
-üse1e2
-üse3l2
-üse4n
-üse3r4
-üs2p
-ü4ss.
-ü4s4s3a
-üs4sä
-ü4s2s1c
-ü4s3sel
-ü4ssl
-ü4s4s3o
-ü4s4st
-üs2su
-ü2st3a
-üs4te
-ü4stei
-üste2n
-2ü1ß
-2üt
-ü2t1al
-üte3m
-üte4n
-üten3s4
-ütent4
-üten3z2
-üte2ra
-üte2re
-üter3ei
-üterich4
-üter3n
-ü2t1h
-ü2t3r
-üt2se
-üt2s3t
-ütte4n
-üt2tr
-üt3zen
-üt2zw
-1v
-3va.
-2v1ab
-vab4r
-va1c
-va3f
-va3g2a
-va2la
-2valu
-v2an.
-2vanb
-v2ans
-2varb
-vari2e
-v1arm
-vas2
-2v1ass
-va2s3to
-va2t1a4
-va4tag
-va4tan
-va2tei
-va2t3eng
-vates2
-va2t3h
-va4tid
-vati3k2
-va4tim
-va4t1in
-vati4ons.
-va4tord
-va4torg
-va2t3r
-vat3s2
-va2t1u
-vat3z
-2v1au
-2vb
-2v1c
-2vd2
-ve2
-ve3ak
-2ve3al
-ve3an
-ve3ar
-veau3
-ve3b
-veb4r
-ve3c
-ve3d
-ve3e2
-ve3f
-ve4ff
-ve3g
-ve3h
-2veig
-v2eil
-2vein
-veit2
-veits3
-ve3la
-2velan
-vel2ar
-ve4l1au
-v1ele
-ve3lei
-ve3l2i
-ve3lo
-vel2o3p
-ve3ma
-ve3me
-2v1emp
-2ve3mu
-ve3nal
-ve4nas
-v1endu
-ve3ne
-venen2d
-2venerg
-ve3ni
-ve4nin
-ve3nö
-ven5st
-ven6t3ag
-vent4sk
-ve3nü
-ven2za
-2veo
-ve3of
-ve3pa
-ve4pi
-ver1
-ver3a
-ve3rad
-2veral
-ve3rand
-ve3rane
-vera4s
-ver4bart
-ver3b2l
-ver3d4
-vere2
-vere4i
-verein4s5t
-ve4rf4
-ver3g4
-vergas4
-verga5sse
-ve3ri
-ve4rin
-ver3k
-vermas6sen
-vern2
-ver2sep
-ver3sta
-vert4
-ver3te
-ver3u4
-ve3rus
-ve3s
-2vesc
-2vese
-ve4sh
-ve4s3p
-ve5spi
-ves4t
-ve3t
-vete1
-vete3r
-ve4tl
-ve4ts
-ve4tt
-2veü
-ve3v
-ve3w
-ve3z
-2vf2
-vf4gh
-2vg
-2v1h
-vi1an
-vi3ar
-vi4a3t
-vi3de
-3vie
-vie2h1a
-vi2el
-viela2
-viele2
-vi2er
-vie2rec
-vie2w1
-vig2
-2vii
-v2il
-vi2l1a
-vi2lä
-vi4l1e2h
-vi2lei
-viler2
-vi2lers
-vi2l1in
-vi2ma2
-vi4na
-vin3d
-ving3
-vings4
-v1ins
-vi3sa
-vise4
-vi3s2i
-vi3s2o
-vi2sp
-vis2u
-viv2
-viz2
-vize3
-2vk
-2v1l2
-v3le
-v2lie
-2vm
-vm2e
-vmwa4
-2v1n2
-2v1ob
-vo2be
-vob4l
-voge2l1
-vo2gu
-vo2i
-vol2a
-vol4la
-voll3ar
-voll5auf.
-vollen4
-voll3end
-voller4t
-2v1op
-vo2pe
-vo2r1
-vo4r3a
-voran6schl
-vor3g
-vo3ri
-vo4rie
-vo5rig
-vorm2
-vormen2
-vor3o
-vorö4
-vor3t4
-vo4ru
-vo5ruf
-vot2a
-2vp2
-v3pf
-2vq
-vr2
-v1ra
-v2ree
-v4ret
-3v2ri
-2vs2
-v3sz
-2vt
-vue3
-vu2enu
-vu2et
-2vumf
-2vumg
-2vumk
-v1ü
-2vv
-2vw
-2vz
-1w
-w2a
-3waa
-wab2bl
-wa3che
-wach4stub
-wach2t4r
-3wack
-waffe2
-waffel3
-3wag
-wa3ge
-wa5ge4n
-wa2g3n
-wag5ne
-wa3go
-wag4r
-3wah
-wahl3ent
-wah4ler
-wah2l1i
-wa4ig
-3wal
-wala3c
-wa2lar
-4walb
-wal4d3a
-wal2din
-wal2dr
-wa2les
-wa3li
-wa5lis
-wal2li2n
-wal2m1
-wals2
-wal4t1a
-wal4terl
-wal2to
-wal2tur
-wa3na
-wan2d1a2
-wan2dr
-w3anf
-wan3g2e
-wang4s
-3wann
-wan4z3en4d
-wan2z3er
-wa2p
-3war2e
-ware1i
-wa3ren
-3warn
-war4ni
-war2th
-wart2st
-war2za
-3was
-wa3sa
-was4c
-wa2scha
-wa3sche
-wa4schei
-wa3schi
-wa2sch3l
-wa2schw
-wa3sh
-wass2
-was3s4e2
-wa3su
-wäch3s2e
-3wäh
-3wäl
-wäm3
-4wäng
-3wäs3
-wä4ss
-wäss4e
-2w1äu3
-2wb2
-wbu2
-2w1c
-2wd
-we2a
-we2b1a
-webe1i
-we2b3l
-we2bo
-we2b3r
-webs2c
-wee2
-weed3
-wef2e
-we2fl
-3weg
-we2g1a
-we4g1ei
-weg3ersc
-we4g3l
-we4gn
-we2g1o4
-we4g3r
-weg5re
-weg3s
-wegs2a
-wegs4t
-3weh
-weh2r3er2
-wei2bl
-weib4r
-4weie
-weifel4d
-wei2gr
-wei2ha
-wei3k4
-3weil
-wei3le
-weinsau4
-wei3sc
-weisch4
-wei2t1r
-wei5ze
-wel5le4
-wel4schl
-wel4schr
-wel2t1
-wel4t3a2
-welte4
-wel4t3en4d
-wel4th
-welt3i
-welt3r
-wem2ma2
-wen3a2
-wen2gl
-we3n2i
-wen2kau
-wen2kla
-wen2k3ri
-we2r3a2
-wer5be
-werbe3i
-wer2bl
-werb2s
-wer3d2
-3werdens
-3werdu
-werer2
-wer2fl
-wer2ga
-wer2gel
-wer2g3o
-wer2gr
-werin2
-we3rins
-we2ri4o
-3werk.
-wer4k1a
-3werke
-wer2ki
-wer2k3l
-wer2kn
-wer2k3o
-wer2k3re
-wer2ku
-we2rö
-wer2sta
-wer2t1a
-wer2tä
-wer2tei
-wert3eig
-wer4t3erm
-wer2th
-wer2tin
-wer2t1o2
-wer2tre
-wer2t3ri
-wer2tum
-3we3se
-wesen4s3
-we2s3p
-wes4t
-we4st1a
-we4st3ei
-wes6tel
-we5sten.
-we4sten4d
-we4steu
-wes6tex
-we4sti
-we4st1o4
-we2st3r
-we4stu
-3wet
-4wets
-wett3s
-2w1ey
-2wf
-2wg
-whi2
-w3ho
-w2i
-wicht4s
-3wid
-wi2e
-4wieb
-3wied
-wie3l2
-wie3n2e
-wie4st
-wik2
-3wild
-wim2ma
-wim4m3u
-win2a
-win2d3ec
-win3del
-win4derz
-3win2d5r
-2wing
-win2g3r
-win2kl
-winner2
-win4n5ersc
-win2no
-win4num
-win3s
-wint2
-3wi2r
-wi4re3
-wis4ch
-wi3s2e
-wi2s2p
-3wiss
-wiss4z
-wi3st
-wi3th
-3witz.
-wit2zer
-3witzl
-wiz2
-w2j
-2wk
-2w1l
-2wm
-2wn
-wns2a
-wn3sh
-3wo1c
-wo2cha
-woch2e4
-woh2lei
-woh4na
-3wolf
-wol3fe
-wolf2s
-wol4la
-wol2lä
-wol2ler
-wor3a
-wor3d
-wo2r3i
-wort1a
-wor2tel
-wor4terh
-wor4t3r
-wo4r3u
-wor3ü
-wot2
-3wöc
-wöl2fo
-wört2h
-2wp
-w2r
-w3re
-w3ro
-2ws
-w3s2h
-w3s2k
-w4sk.
-w2s1u
-2wt
-wti2
-w2u
-3wuc
-wuch4sc
-wuch2st
-w3uf
-wu4fe
-wuls2
-wul3se
-wund4e
-wung3r
-wung5s4
-wun2s
-wunsch3l
-4wur.
-wur2fa
-wurf1o
-wur2fr
-3wurst
-wur2sta
-wurs6te
-wus2
-wus4s
-3wu2t1
-3wüh
-3würf
-3würst
-wüs2
-2ww
-2wz
-x1a
-1xa.
-2xa2b
-1x2ac
-1x2ad
-1xae
-xa3fl
-1x2a3g2
-2xal
-xal2l
-x3am
-xa5met
-xa4mi
-x2an.
-xand4
-1xane
-1xani
-x2an3t2
-xanti3
-x2anz
-xa2r
-1x2as
-xau3
-xaus2
-xa2z
-2xb
-xb4ri
-xcal2
-x1ce
-x1ch
-x1cl
-2xd
-xda2
-1xe
-3xe.
-2x1e2g
-xe4ge
-2xek
-xe2l
-x1ele
-xe3lei
-x1em
-3x2em.
-2xemp
-x2ems
-x2en
-3xen.
-xen3s2
-3x2er.
-x2ere
-2x1erl
-xer2la
-x2ern
-xers2
-x2ers.
-xe4rx
-3xes
-2x1eu
-2x1ex
-2xf
-2xg
-2x1h
-xi1c
-xich2
-xi2dan
-xide2
-xi2dei
-xi2d3em
-x1i2do
-3x2i2e
-xie3l
-xi4en
-xi3g
-3xi3k
-xik4l
-xi2ler
-xili3a
-xi2lo
-xi2l1u
-1xim2
-xin3s2
-x2is
-xi2sa
-xi2s1e
-xiso2
-xi2sp
-xiss4
-xis5st
-xi3stä
-xi2su
-3xit
-x1i4tu
-xive4
-2xk2
-xkal2
-2x2l2
-x3lä
-x3le
-2xm
-2x1n
-2xoe
-x3o2l
-x1o2r
-3xos2
-2x1ö2
-2xp
-xpor4ter4
-xpor2t3r
-x1r
-2xs2
-x3sh
-x3sk
-x3sz
-2xt
-xt1a
-x3ta.
-xta2b3
-x3tan
-xt2ant
-x3tas
-x2t1ä
-x3tät
-xtblock3
-x2t1e2d
-xt1ein
-x2t1el
-x2tent
-x2t1er2f
-x2t1ev
-xtfi2
-x2t1h
-x2t1id
-xti2la
-xtil2lu
-x2t1o2
-xto4r
-xtra3b4
-x2t3ran
-x2trau
-xt3rec
-xt3s2
-x2t1um
-x2t1un
-1xu1
-xu2n
-2xunt
-xu2s3
-xusa2
-xuss2
-2x2v
-x3ve
-x3vo
-2xw
-1xy.
-y1
-y2a
-2y3ab
-1ya2c
-y4ach
-ya1h
-y3al.
-ya4mo
-y3an.
-yan2g
-y3ank
-y3anz
-y3ar
-y4a3ra
-y4are
-yas2
-ya4st
-y2än
-ybe2r
-y2chi
-y3chis
-ych3n
-ydi3e
-yd4ri2
-yd5ric
-ydrid3
-yd4ro3
-y2ec
-ye2d
-y2ef
-y2el2
-yen4n
-yera2
-y2ere
-yer2n1
-y2e2s
-y4es.
-y4e3sp
-ye4st
-ye2th
-yf2
-ygie3
-yg2l
-y3ho
-yhr2
-2yi2
-yi4sc
-yi4st
-yk2
-yke3n
-yk4ni
-yk4no
-yk3s2
-yk3t
-yl1a
-y2la2c
-yl2ag
-yl2ak
-yla4l
-y2la4m
-yla2n
-yl3ane
-y3lant
-yl2ante
-yl2anti
-y4lantr
-yl2as
-yl3c
-yle2
-y2le.
-yl1em
-y2l3e4s
-y2l1e4t
-yli4n
-yl4lo2s
-yl2lö2
-yloid3
-yloni1
-yl2op
-yl1ora
-y2m
-y3m2a
-ym4an
-ym4ar
-ym4as
-y3mä
-y3me
-ym4el
-y3mi
-y3mo
-ymp2
-ym2pha
-ympi3e
-ymp4t
-y3mu
-ynä2r
-yn2eu
-ynk2
-y2n1o2
-yn2oz
-yn3t2
-y2o
-yob2
-yoga3
-yom2
-yon2a
-y4one
-y3ont
-y3o2pe
-y4ost
-y3ot.
-y3ou
-y2ö
-2yp
-ypa2b3
-ypa2n
-yp2e2
-ype4r3o2
-y2p1i2d
-y2p1in
-y2plo
-y3po3
-yp3th
-ypu2
-y2p1um
-yr2e
-y3ri
-yri1e
-yri3en
-y3ro
-yro4ste
-yrr2
-2ys
-ys2an
-ysch4
-ys2e1
-ys4ei
-ysein2
-ys3er
-ys4ho
-ys3l
-ysme3
-ys4pi
-yst2e
-yst2h
-ysto4le
-ys4tra
-y4stro
-y3s4ty
-ysu2
-ys4ub
-ys1ur
-y3s2z
-yt2h
-ythe1
-ythi3e
-y3to
-y2t3r
-yu2r
-yur2e3
-yvet2
-yvon4
-yz2
-yzer2i
-1z
-2z1a2b
-zab3l
-2z1ach
-za1cha
-za1chä
-zach2s
-2z1a2d
-2z1af
-za3gr
-3z2ah
-zah3len
-zah4ner2
-z1ak
-4z3akk
-2z1al
-4z3alb
-4z3ald
-3zali
-2z1am
-za4me
-z1a2n
-z2an.
-2za4n4a
-2zanb
-za3ne
-2zanf
-2zangs
-2zanh
-z2ank
-zan2ka
-2zanl
-2zanp
-2zanr
-zanti1
-2zanw
-za4pf
-z1a2q
-z1ar
-3zar.
-2zarb
-za3re
-2zarm
-3z2aro
-zar2t1r
-2z1as
-zas2b
-za4sc
-za3st4
-2z1aß
-z3at
-zat2e
-za2to
-3zaub
-2z1au4f
-2z3aug
-3zaun
-z3aur
-2z1aut
-2z1äc
-z2äh
-3zähn
-2z1äm
-z1än
-z1är
-2z1äus
-2zäuß
-2zb2
-zbah2
-zber2e
-z3bo
-zb4ri
-z3bü
-zbü3b
-zbübe3
-2z1c
-z3ca
-z3ch
-2zd2
-z3da
-zdan2
-zdä1
-z3dü
-3ze.
-2zea
-ze2ana
-zeau3
-zeaus4
-2z1e2ben
-2z1echo
-ze1e2
-2z1eff
-z1e2ga
-zehe4
-zehen1
-zeh2l
-zeh4n1a
-zeh4n3en
-ze3ho
-zei3f4
-zeik4
-zeil2
-zei3la
-zeile4
-2z1ein
-ze3in.
-z2e1ind
-zei4ne
-4z3einh
-ze3inse
-ze2i3s4
-3zeit
-zei2t1a
-zeit3end
-zei4t3er
-zei2to
-zei2tr
-zeit3ri
-zek4l
-ze2l1a
-zela2d
-zel3am
-zel3a2n
-ze2l1ä
-zel3d4
-4ze2lek
-4zelem
-ze2len
-ze2l1er
-ze2l1in
-2z1e2lit
-zel3la
-zel4lab
-zel4l3ac
-zel4lar
-zel2lä
-zel4leh
-zel4lein
-zel4ler4t
-zeller4z
-zel2li2n
-zel2lum
-zelm4
-ze2l1o
-zels2
-zel3sa
-zel3sz
-zel2ti
-zelu2
-zembe2
-2z1emp
-3zen.
-ze4n1ac
-ze4nas
-zen3au
-ze2nä
-ze3n2em
-zenen1
-3zenerk
-2zenge.
-z4engl
-2zengp
-2zeni
-ze2nid
-zenk2
-zen3n
-ze2n3o
-ze4not
-2zen2sem
-zen2ser
-zens2p
-z2entn
-z1ents
-2zentw
-2zentz
-ze2nu
-zen2z3er
-zen2zw
-zeo4r
-3z2er.
-zer3a
-ze1ral
-ze2rat
-z2ere
-ze5rek
-zer2em
-z2erfe
-z3erfül
-z2erga
-2z1ergä
-z3ergeb
-5z4erges
-z4ergl
-zer2gon
-4zergu
-3z2erhe
-2z1er3hö
-ze3ri
-zerin2t
-z2erko
-3zerl.
-zer2lau
-zer2le.
-2zerleb
-zer2len
-2zerlö
-3z2ern
-zer2nan
-zer2n3e2b
-zer4nei
-2z1erö
-zer2öf
-ze1rös
-2z1erq
-3zerr
-4z3erreg
-z2ers.
-z1ersa
-zers4t
-zerta2
-zer4t3ag
-zert2an
-zer2ter
-zer2tin
-zer2to
-z3ertrag
-zer4trau
-z1erwe
-z1erz
-zer2ze
-ze2s
-3z2es.
-ze3sc
-zes1e
-zes3er
-zes3p
-ze4s5po
-zes2sa
-zessen2
-zes4s3end
-zes2ser
-zes2sp
-zes2sum
-ze3sta
-ze3str
-ze2ß1
-z2et.
-2zeta
-2ze2th
-ze2tr
-2zetts
-zeu2gem
-zeu2g3r
-2z1eul
-ze1ur
-2z1e2x1
-2zf
-zf4at
-zfäs3
-z3fe
-zfeue2
-zf4la
-zf4le
-zf4re
-zf4rü
-2zg2
-zgang5
-zger2a
-zger2s1
-z3gn
-zg4nu
-2z1h2
-zhau2t1
-zhir3
-3zi.
-zial5l
-zi3alo
-zi2ar
-zich2o
-zi2dei
-zid3r
-ziele2
-zie2leb
-zie2l1i
-zi1erh
-zi1es
-3zig
-zigs4
-2z3ik
-zi2ko
-3zil
-zil2e
-z2imm
-4zimp
-zim2t3
-2z1ind
-zin2e
-zin3ei
-2z1inf
-z1inh
-zi4n1in
-2z1inj
-zin4na
-zin4o
-zin2sa
-zin2ser
-zin4sk
-2zinsuf
-zi2o3
-zirk2
-zirk4s
-z1iso
-zi2sp
-zisse4
-zi4stern
-zi3s2z
-zite4
-zi3th
-zithe2
-zi2t1o2
-zit2u
-ziv2
-2zj
-2zk2
-zk4ne
-z3ky
-2z1l2
-z3ly
-2zm2
-z3ma
-zmas4sen
-zme2e
-2z1n2
-z3na
-z3ne
-z3oas
-2z1ob
-2z1of
-zo2gl
-zog4s3
-2z1oh
-zolla2
-zol3len
-zoller2
-zol2li2
-zon3au
-zon3s
-zon2t3er
-zo2o
-2zo2pe
-2z1o2r
-zo3re
-3z2orn
-zor4ne
-2z1osz
-2z1ou
-zo2w
-2z1o2z
-2zöf
-zö4fe
-2z1ök
-z1öl
-2zöl.
-3z2öll
-2zöls
-2zön
-2zp2
-z3pf
-z3pl
-zp4lu
-2zq
-2z1r2
-z3re
-zreb3
-zrebs2
-z3ru
-2zs2
-z3sa
-zsau2
-zse1e
-z3sh
-z3si
-z3sk
-zspor2
-zst2
-z3str
-z3sz
-2zt
-zta2n
-zt3ane
-z2t1au
-ztein3
-zt3eins
-zt2el
-zte3ma
-z2t1ent
-z2t1erz
-z3tes
-zte3str
-zt2et
-zt1he
-z3them
-z3t2her
-zt1hi
-zt3ho
-z3thr
-z3thy
-zt3rec
-zt3ric
-zt3s
-zu3a
-zu1ä2
-zub4l
-zubus2
-3zuc
-zuch2e
-zucht3
-zudi4
-zud4r
-zu2el
-zu3e2r1
-zue2t
-zu3f2
-zu5fei
-zuf4l
-zuf4r
-zug2em
-zu2gent
-zug3g
-zug2i
-zu3gl
-zu4gla
-zu4glö
-zu2go
-zug6spe
-zug4ste
-2z1uhr
-zu3hu
-zu1i2
-zu3k
-zu3l2
-2z1um.
-zum2a
-2z1umb
-zumen2
-2zumf
-2zumg
-2z1umh
-zum2i
-2zumk
-2zuml
-2zumr
-2z1ums
-zum2u
-2zunab
-zun2e
-2z1unem
-2zunget
-2zungl
-z1uni
-2zu2nio
-2zuniv
-2zunr
-2z1uns
-2zunt
-zuo2
-zup2fi
-zu3pfr
-zu3r2a
-2z1urk
-2z1url
-2z1urn
-2z1urs
-2z1urt
-zu3ru
-zu3s2
-zusch4
-zus4p
-zus4t
-zu3t2
-zut4r
-zut4u
-zu4t3z
-zuz4w
-2züb
-zü4be
-3züc
-zür1c
-2zv
-z2w2
-z3wac
-2zwag
-2zwah
-z4wang
-z3war
-2zwa2s
-2zwäc
-2zwär
-2zwäs
-z3wech
-z4weck
-2z3wed
-2zweg
-2zweh
-z4weig
-2zweil
-zweiter4
-2z3wel
-2z3wen
-2z3wer
-z4werg
-2z3wes
-z4wic
-zwi4e
-3zwing
-2zwirt
-z4wisc
-2zwiss
-z4wit
-2z3wo
-z3wör
-z3wur
-2z3wü
-zy2le
-2zz
-z3z2a
-zzab4
-zz4at
-z3zer
-zze3s
-z3zi
-z4z1id
-zz1in
-z3zo
-z4zor
-zz2ö
-z3zu
-zzug2s} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-eo.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-eo.hyp
deleted file mode 100644
index 5a16071a19c..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-eo.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-eo.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-eo.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-eo.pat
deleted file mode 100644
index 8e49677f76c..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-eo.pat
+++ /dev/null
@@ -1,2210 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-eo.rme
-
-% used: a b c d e f g h i j k l m n o p r s t u v z ĉ ĝ ĥ ĵ ŝ ŭ
-
-\patterns{
-a1
-e1
-i1
-o1
-u1
-2aj.
-2ajn.
-2an.
-2as.
-en.
-is.
-2oj.
-2ojn.
-2on.
-2os.
-2us.
-a3a
-e3a
-i3a
-o3a
-u3a
-a3e
-e3e
-i3e
-o3e
-u3e
-a3i
-e3i
-i3i
-o3i
-u3i
-a3o
-e3o
-i3o
-o3o
-u3o
-a3u
-e3u
-i3u
-o3u
-u3u
-e2sper
-2jn.
-2lp.
-2lt.
-2nk.
-2ns.
-2nt.
-2st.
-.bl4
-.br4
-.dr4
-.dl4
-.fl4
-.fr4
-.gl4
-.gn4
-.gr4
-.kl4
-.kn4
-.kr4
-.kv4
-.pl4
-.pr4
-.ps4
-.pt4
-.sf4
-.sk4
-.skl4
-.skr4
-.skv4
-.sl4
-.sm4
-.sn4
-.sp4
-.spl4
-.spr4
-.st4
-.str4
-.sv4
-.ŝl4
-.ŝm4
-.ŝn4
-.ŝp4
-.ŝr4
-.ŝpr4
-.ŝt4
-.ŝtr4
-.ŝv4
-.tr4
-.vr4
-1a2ĉa.
-1a2ĉaj.
-1a2ĉajn.
-1a2ĉan.
-1a2ĉe.
-1a2ĉo.
-1a2ĉoj.
-1a2ĉojn.
-1a2ĉon.
-1a2da.
-1a2daj.
-1a2dajn.
-1a2dan.
-1a2de.
-1a2do.
-1a2doj.
-1a2dojn.
-1a2don.
-1a2das.
-1a2di.
-1a2dis.
-1a2dos.
-1a2du.
-1a2dus.
-.avok2a3d
-.bal2a3d
-ĉokol2a3d
-.fas2a3d
-.inv2a3d
-kamar2a3d
-.kan2a3d
-limon2a3d
-persv2a3d
-.pom2a3d
-seren2a3d
-1a2ĵa.
-1a2ĵaj.
-1a2ĵajn.
-1a2ĵan.
-1a2ĵe.
-1a2ĵo.
-1a2ĵoj.
-1a2ĵojn.
-1a2ĵon.
-.al2t
-al3tabl
-al3t2a3r
-al3ter
-al3trui
-1a2na.
-1a2naj.
-1a2najn.
-1a2nan.
-1a2ne.
-1a2no.
-1a2noj.
-1a2nojn.
-1a2non.
-1a2nas.
-1a2ni.
-1a2nis.
-1a2nos.
-1a2nu.
-1a2nus.
-1a2nism
-1a2n1i2n
-afg2a3n
-akomp2a3n
-arg2a3n
-ark2a3n
-ban2a3n
-but2a3n
-cig2a3n
-ĉambel2a3n
-ĉamp2a3n
-ĉarlat2a3n
-ĉik2a3n
-dek2a3n
-dog2a3n
-el2a3n
-faz2a3n
-font2a3n
-galv2a3n
-germ2a3n
-ĝentlem2a3n
-hisp2a3n
-.ĥa3n
-inf2a3n
-ir2a3n
-jap2a3n
-.ka3n
-kalk2a3n
-kank2a3n
-kapit2a3n
-kard2a3n
-karav2a3n
-kor2a3n
-.ma3n
-marcip2a3n
-membr2a3n
-met2a3n
-nirv2a3n
-.on2a3n
-org2a3n
-.pa3n
-partiz2a3n
-pelik2a3n
-porcel2a3n
-prof2a3n
-.ra3n
-rum2a3n
-.sa3n
-3s2log2a3n
-sopr2a3n
-stef2a3n
-sufrag2a3n
-sult2a3n
-ŝam2a3n
-teher2a3n
-tir2a3n
-turb2a3n
-.va3n
-vatik2a3n
-veter2a3n
-vulk2a3n
-.ka3n2i3n
-safr2a3n2i3n
-.ta3n2i3n
-1an2ta.
-1an2taj.
-1an2tajn.
-1an2tan.
-1an2te.
-1an2to.
-1an2toj.
-1an2tojn.
-1an2ton.
-adjut2an3t
-.arog2an3t
-.atl2an3t
-.ban3t
-.brok2an3t
-.diam2an3t
-dilet2an3t
-disk2an3t
-elef2an3t
-.gal2an3t
-.gig2an3t
-inf2a4n3t
-inst2an3t
-konson2an3t
-.kan3t
-konst2an3t
-kvadr2an3t
-.kv2an3t
-leŭten2an3t
-mom2an3t
-.okt2an3t
-.ped2an3t
-.plan3t
-tal2an3t
-batal3an4t
-1an2t3ar
-an3t2arkt
-kan3t2arel
-1an2t1ig
-1an2t1ec
-.apu2d1
-1a2ra.
-1a2raj.
-1a2rajn.
-1a2ran.
-1a2re.
-1a2ro.
-1a2roj.
-1a2rojn.
-1a2ron.
-1a2rig
-1a2riĝ
-am2a3r
-barb2a3r
-baz2a3r
-biz2a3r
-boj2a3r
-bulg2a3r
-.ci3d2a3r
-cig2a3r
-din2a3r
-dol2a3r
-er2a3r
-fanf2a3r
-.f2a3r
-formul2a3r
-garg2a3r
-git2a3r
-.ha3r2
-hung2a3r
-invent2a3r
-izob2a3r
-jug2u3l2a3r
-kalend2a3r
-kap2i3l2a3r
-kla3r
-komp2a3r
-kulin2a3r
-kvatern2a3r
-lap2i3d2a3r
-.mol2a3r
-najb4a1r
-om2a3r
-ordin2a3r
-partik2u3l2a3r
-.pol2a3r
-pop2u3l2a3r
-prep2a3r
-prim2a3r
-rad2a3r
-remp2a3r
-rip2a3r
-sa3m2ov2a3r
-sanit2a3r
-sek2u3l2ar
-sekund2a3r
-sing2u3l2ar
-skal2a3r
-.st2a3r
-sol2i3d2a3r
-tal2a3r
-tat2a3r
-.vel2a3r
-vulg2a3r
-1a2ta.
-1a2taj.
-1a2tajn.
-1a2tan.
-1a2te.
-1a2to.
-1a2toj.
-1a2tojn.
-1a2ton.
-1a2t1ec
-adiab2a3t
-agreg2a3t
-aŭtom2a3t
-aŭtorit2a3t
-.ab2a3t
-.adekv2a3t
-advok2a3t
-afrik2a3t
-.ag2a3t
-akrob2a3t
-.akur2a3t
-alop2a3t
-.apar2a3t
-apost2a3t
-arom2a3t
-.ba3t
-.bl2a3t
-.brok2a3t
-.deb2a3t
-delik2a3t
-diplom2a3t
-.duk2a3t
-.et2a3t
-fakult2a3t
-.fr2a3t
-.gefr2a3t
-.gla3t
-.gran2a3t
-.hep2a3t
-kandid2a3t
-.kar2a3t
-.kazem2a3t
-.klim2a3t
-.kom2a3t
-.komit2a3t
-.komp2a3t
-konkord2a3t
-.konst2a3t
-.krav2a3t
-kro3m2a3t
-.kvadr2a3t
-magistr2a3t
-.magn2a3t
-majorit2a3t
-malgl2a3t
-.mals2a3t
-.mand2a3t
-.mecen2a3t
-minorit2a3t
-.mon2a3t
-.mul2a3t
-.musk2a3t
-ordin2a3t
-.pal2a3t
-.pir2a3t
-.prel2a3t
-.prim2a3t
-priorit2a3t
-.priv2a3t
-.rab2a3t
-.ren2a3t
-.ril2a3t
-.sab2a3t
-.sal2a3t
-.sen2a3t
-sindik2a3t
-.skarl2a3t
-.sold2a3t
-.son2a3t
-.sp2a3t
-stigm2a3t
-substr2a3t
-surog2a3t
-.tok2a3t
-.tom2a3t
-.ultim2a3t
-universit2a3t
-.vulg2a3t
-.ĉe2f1
-.ĉi4a
-.ĉia4m1
-.ĉi4e
-.ĉie4s
-.ĉi4o
-.ĉio4m
-.ĉi4u
-ĉi3el1
-3ĉ2jo
-.di2s1
-.di3s2ert
-.di3s2erv
-.di3s2ip
-.di3s2oci
-.di3s2a.
-.di3s2aj.
-.di3s2ajn.
-.di3s2an.
-.di3s2e.
-.di3s2en.
-.du2m1
-dump2in3g
-.du2on1
-1e2bla.
-1e2blaj.
-1e2blajn.
-1e2blan.
-1e2ble.
-1e2blo.
-1e2bloj.
-1e2blojn.
-1e2blon.
-1e2blas.
-1e2bli.
-1e2blis.
-1e2blos.
-1e2blu.
-1e2blus.
-1e2bl1ec
-1e2bl1aĵ
-.fe3b1l
-.me3b1l
-1e2ca.
-1e2caj.
-1e2cajn.
-1e2can.
-1e2ce.
-1e2co.
-1e2coj.
-1e2cojn.
-1e2con.
-.apr2e3c
-.de3c
-.pe3c
-sp2e3c
-1e2ga.
-1e2gaj.
-1e2gajn.
-1e2gan.
-1e2ge.
-1e2go.
-1e2goj.
-1e2gojn.
-1e2gon.
-1e2gas.
-1e2gi.
-1e2gis.
-1e2gos.
-1e2gu.
-1e2gus.
-.del2e3g
-.fl2e3g
-kol2e3g
-.om2e3g
-.prel2e3g
-.strat2e3g
-.norv2e3g
-1e2ja.
-1e2jaj.
-1e2jajn.
-1e2jan.
-1e2je.
-1e2jo.
-1e2joj.
-1e2jojn.
-1e2jon.
-1e2j1ig
-1e2j1iĝ
-.be3j
-.pl2ej
-malpl2ej
-.ek2s1
-.ek3s2ci
-ek4s3cit
-ek4s3ciz
-.ek3s2id
-.ek1i2r
-.ek1rid
-1e2kzem
-.ekste2r1
-.ekste3ra.
-.ekste3raj.
-.ekste3rajn.
-.ekste3ran.
-.ekste3re.
-.ekste3ro.
-.ekste3roj.
-.ekste3rojn.
-.ekste3ron.
-.ekste3ras.
-.ekste3ri.
-.ekste3ris.
-.ekste3ros.
-.ekste3ru.
-.ekste3rus.
-.el1i2r
-.el1aĉet
-.el1uz
-1e2ma.
-1e2maj.
-1e2majn.
-1e2man.
-1e2me.
-1e2mo.
-1e2moj.
-1e2mojn.
-1e2mon.
-1e2mas.
-1e2mi.
-1e2mis.
-1e2mos.
-1e2mu.
-1e2mus.
-1e2m1ec
-.alpr2e3m
-.anat2e3m
-blasf2e3m
-.boh2e3m
-diad2e3m
-.dil2e3m
-.ed2e3m
-ekstr2e3m
-.ektr2e3m
-.ekpr2e3m
-embl2e3m
-emfiz2e3m
-.ekz2e3m
-.har2e3m
-jerusal2e3m
-krizant2e3m
-.le3m
-.po2e3m
-.pr2e3m
-.probl2e3m
-.sk2e3m
-.te3m
-.tand2e3m
-.teor2e3m
-.tot2e3m
-.tr2e3m
-sist2e3m
-.en1ir2
-1en2da.
-1en2daj.
-1en2dajn.
-1en2dan.
-1en2de.
-1en2das.
-1en2di.
-1en2dis.
-1en2dos.
-1en2du.
-1en2dus.
-1en2do.
-1en2don.
-.am2en3d
-.at2en3d
-.def2en3d
-.et2en3d
-.kal2en3d
-kresĉ2en3d
-.men3d
-.of2en3d
-.pen3d
-.pl2en3d
-pret2en3d
-rekom2en3d
-.sen3d
-sc2en3d
-.ten3d
-.ven3d
-1e2ta.
-1e2taj.
-1e2tajn.
-1e2tan.
-1e2te.
-1e2to.
-1e2toj.
-1e2tojn.
-1e2ton.
-1e2taas.
-1e2tai.
-1e2tais.
-1e2taos.
-1e2tau.
-1e2taus.
-a2ĉ2e3t
-alfab2e3t
-alum2e3t
-amul2e3t
-.ask2e3t
-.atl2e3t
-.be3t
-bajon2e3t
-bil2e3t
-.bol2e3t
-bracel2e3t
-brev2e3t
-.buĝ2e3t
-.deb2e3t
-.dem2e3t
-diab2e3t
-elizab2e3t
-.enk2e3t
-epit2e3t
-.form2e3t
-.gaz2e3t
-.herm2e3t
-.ĥe3t
-.ĵak2e3t
-ĵ2e3t
-kabin2e3t
-.kad2e3t
-kastanj2e3t
-.kin2e3t
-klarn2e3t
-kloz2e3t
-.kom2e3t
-kompl2e3t
-.konf2e3t
-kors2e3t
-korv2e3t
-kotl2e3t
-.krik2e3t
-.krok2e3t
-kvodlib2e3t
-.me3t
-magn2e3t
-marion2e3t
-.mot2e3t
-.ne3t
-.oml2e3t
-pamfl2e3t
-parg2e3t
-.pl2e3t
-.po2e3t
-.prof2e3t
-.prol2e3t
-.rak2e3t
-.rem2e3t
-.rip2e3t
-sekr2e3t
-skel2e3t
-.son2e3t
-.sov2e3t
-spag2e3t
-spin2e3t
-staf2e3t
-.stil2e3t
-ŝibol2e3t
-.tib2e3t
-tual2e3t
-.ve3t
-.veg2e3t
-.vend2e3t
-vinj2e3t
-1es2tr
-.fo2r1
-.fo3r2in3t
-.fo3r2u3m
-.fo3r2a.
-.fo3r2aj.
-.fo3r2ajn.
-.fo3r2an.
-.fo3r2e.
-.fo3r2o.
-.fo3r2oj.
-.fo3r2ojn.
-.fo3r2on.
-.fo3r2en
-.fo3r2as.
-.fo3r2i.
-.fo3r2is.
-.fo3r2os.
-.fo3r2u.
-.fo3r2us.
-.ĝi2s1
-1i2da.
-1i2daj.
-1i2dajn.
-1i2dan.
-1i2de.
-1i2do.
-1i2doj.
-1i2dojn.
-1i2don.
-.abs2i3d
-.ac2i3d
-.akr2i3d
-.aps2i3d
-.ar2i3d
-.askar2i3d
-.asp2i3d
-.av2i3d
-.bi3d
-.bol2i3d
-.br2i3d
-cirkumc2i3d
-.dav2i3d
-.dec2i3d
-.eŭkl2i3d
-.eg2i3d
-.fi3d
-.flor2i3d
-.fr2i3d
-frig2i3d
-genoc2i3d
-.gv2i3d
-hibr2i3d
-hum2i3d
-ĥlam2i3d
-.inc2i3d
-.ins2i3d
-inval2i3d
-.ji3d
-kan3t2ar2i3d
-koinc2i3d
-.konf2i3d
-krizal2i3d
-.li3d
-.lib2i3d
-likv2i3d
-.liv2i3d
-.luc2i3d
-.madr2i3d
-morb2i3d
-.muc2i3d
-perf2i3d
-piram2i3d
-.prez2i3d
-.ri3d
-rap2i3d
-rez2i3d
-rig2i3d
-.si3d
-.sol2i3d
-.str2i3d
-telev2i3d
-.tim2i3d
-.vi3d
-.val2i3d
-1i2d1ar
-1i2d1i2n
-.pir2i3d2in
-1i2ga.
-1i2gaj.
-1i2gajn.
-1i2gan.
-1i2ge.
-1i2go.
-1i2goj.
-1i2gojn.
-1i2gon.
-1i2gas.
-1i2gi.
-1i2gis.
-1i2gos.
-1i2gu.
-1i2gus.
-.br2i3g
-.di3g
-.fi3g
-.in3d2i3g
-.inst2i3g
-.intr2i3g
-.kvadr2i3g
-.li3g
-pfen2i3g
-.pi3g
-.prod2i3g
-.ri3g
-.rodr2i3g
-.str2i3g
-.ti3g
-.nav2i3g
-1i2gebl
-1i2gant
-1i2gint
-1i2gont
-1i2gat
-al2i3g2a3tor
-l2i3g2a3turo
-1i2git
-1i2got
-1i2g1a2d
-br2i3g2a3d
-1i2g1e2m
-1i2g1i2l
-1i2ĝa.
-1i2ĝaj.
-1i2ĝajn.
-1i2ĝan.
-1i2ĝe.
-1i2ĝo.
-1i2ĝoj.
-1i2ĝojn.
-1i2ĝon.
-1i2ĝas.
-1i2ĝi.
-1i2ĝis.
-1i2ĝos.
-1i2ĝu.
-1i2ĝus.
-1i2ĝant
-1i2ĝint
-1i2ĝont
-.br2i3ĝ
-.negl2i3ĝ
-.prest2i3ĝ
-.vert2i3ĝ
-.vest2i3ĝ
-1i2ĝ1a2d
-1i2ĝ1e2m
-1i2la.
-1i2laj.
-1i2lajn.
-1i2lan.
-1i2le.
-1i2lo.
-1i2loj.
-1i2lojn.
-1i2lon.
-abut2i3l
-acet2i3l
-.ang2i3l
-.apr2i3l
-.arg2i3l
-.az2i3l
-.bab2i3l
-.bac2i3l
-.baz2i3l
-.ber2i3l
-.bi3l
-.br2i3l
-.braz2i3l
-.ced2i3l
-.civ2i3l
-.ĉi3l
-ĉinĉ2i3l
-.dakt2i3l
-.deb2i3l
-.def2i3l
-.dist2i3l
-.domic2i3l
-.dr2i3l
-.ed2i3l
-.ekz2i3l
-.eps2i3l
-.et2i3l
-.fi3l
-.fac2i3l
-.fus2i3l
-.gor2i3l
-.gr2i3l
-.ĝent2i3l
-.hum2i3l
-.jub2i3l
-.ki3l
-.kamar2i3l
-kamom2i3l
-.komp2i3l
-.kons2i3l
-krokod2i3l
-.mi3l
-.mant2i3l
-.met2i3l
-mob2i3l
-.mut2i3l
-naŭt2i3l
-of2i3l
-.osc2i3l
-paskv2i3l
-.ps2i3l
-pterodakt2i3l
-.pup2i3l
-sen2il
-sim2i3l
-.st2i3l
-.stab2i3l
-stenc2i3l
-strob2i3l
-subt2i3l
-svah2i3l
-trankv2i3l
-.ut2i3l
-.vi3l
-.van2i3l
-.vig2i3l
-vodev2i3l
-volat2i3l
-1i2l1ar
-b2i3l2a3rd
-dakt2i3l2a3rb
-pl2i3l2a3rĝ
-f2i3l2a3ri
-frit2i3l2a3ri
-f2i3l2a3rb
-1e2str1i2na.
-1e2str1i2naj.
-1e2str1i2najn.
-1e2str1i2nan.
-1e2str1i2ne.
-1e2str1i2no.
-1e2str1i2noj.
-1e2str1i2nojn.
-1e2str1i2non.
-1i2s2t1i2na.
-1i2s2t1i2naj.
-1i2s2t1i2najn.
-1i2s2t1i2nan.
-1i2s2t1i2ne.
-1i2s2t1i2no.
-1i2s2t1i2noj.
-1i2s2t1i2nojn.
-1i2s2t1i2non.
-d2is3t2ingo
-1u2l1i2na.
-1u2l1i2naj.
-1u2l1i2najn.
-1u2l1i2nan.
-1u2l1i2ne.
-1u2l1i2no.
-1u2l1i2noj.
-1u2l1i2nojn.
-1u2l1i2non.
-ins2ul2i3n
-1an2t1i2na.
-1an2t1i2naj.
-1an2t1i2najn.
-1an2t1i2nan.
-1an2t1i2ne.
-1an2t1i2no.
-1an2t1i2noj.
-1an2t1i2nojn.
-1an2t1i2non.
-adam2a4n3t2i3n
-a4n3t2i3nom
-brig2a4n3t2i3n
-gal2a4n3t2i3n
-.k2a4n3t2i3n
-strof2a4n3t2i3n
-1in2da.
-1in2daj.
-1in2dajn.
-1in2dan.
-1in2de.
-1in2das.
-1in2di.
-1in2dis.
-1in2dos.
-1in2du.
-1in2dus.
-1in2do.
-1in2don.
-1in2d3ec
-1in2d3ig
-1in2d3iĝ
-.bin3d
-.hin3d
-.lin3d
-rozal4in3d
-.bl4in3d
-.pin3d
-tamar4in3d
-.ŝin3d
-.vin3d
-.in3d2ign
-in3d2iĝen
-1in2ga.
-1in2gaj.
-1in2gajn.
-1in2gan.
-1in2ge.
-1in2go.
-1in2goj.
-1in2gojn.
-1in2gon.
-1in2gig
-.din3g
-.pud2in3g
-.vik2in3g
-3s2mok2in3g
-ŝil2in3g
-.klin3g
-sterl2in3g
-dom2in3g
-men2in3g
-salp2in3g
-.rin3g
-.far2in3g
-.har2in3g
-.lar2in3g
-.mer2in3g
-.fr2in3g
-.sir2in3g
-.krin3g
-str2in3g
-vrin3g
-.at2in3g
-.mit2in3g
-.est2in3g
-.dist2in3g
-.svin3g
-1in2ta.
-1in2taj.
-1in2tajn.
-1in2tan.
-1in2te.
-1in2to.
-1in2toj.
-1in2tojn.
-1in2ton.
-1in2t3ar
-1in2t3ec
-1in2t3us
-.abs2in3t
-.fin3t
-hiac2in3t
-.jac2in3t
-.kvin3t
-labir2in3t
-.pin3t
-.pl2in3t
-.tin3t
-tereb2in3t
-.inte2r1
-.inte3r2es
-.inte3r2ez
-.inte3r2upt
-.inte3ra.
-.inte3raj.
-.inte3rajn.
-.inte3ran.
-.inte3re.
-.inte3ro.
-.inte3roj.
-.inte3rojn.
-.inte3ron.
-.inte3ras.
-.inte3ri.
-.inte3ris.
-.inte3ros.
-.inte3ru.
-.inte3rus.
-.inte3ren.
-1is2ma.
-1is2maj.
-1is2majn.
-1is2man.
-1is2me.
-1is2mo.
-1is2moj.
-1is2mojn.
-1is2mon.
-1i2s2m3ec
-.pr2is3m
-.ris3m
-.sk2is3m
-.sis3m
-1i2s2ta.
-1i2s2taj.
-1i2s2tajn.
-1i2s2tan.
-1i2s2te.
-1i2s2to.
-1i2s2toj.
-1i2s2tojn.
-1i2s2ton.
-1i2s2t3ec
-1i2s2t3ar
-.amet2i3s3t
-antikr2i3s3t
-aor2i3s3t
-.ar2i3s3t
-.bal2i3s3t
-.bat2i3s3t
-.ci3s3t
-.di3s3t
-ekz2i3s3t
-.gen2i3s3t
-.gi3s3t
-.hi3s3t
-ins2i3s3t
-kons2i3s3t
-.ki3s3t
-.kr2i3s3t
-.li3s3t
-.pi3s3t
-pers2i3s3t
-.rez2i3s3t
-.sk2i3s3t
-.vi3s3t
-1i2ta.
-1i2taj.
-1i2tajn.
-1i2tan.
-1i2te.
-1i2to.
-1i2toj.
-1i2tojn.
-1i2ton.
-1i2t3ec
-p2i3t4eci
-.ag2i3t
-akred2i3t
-antrac2i3t
-.apet2i3t
-.bi3t
-.band2i3t
-biskv2i3t
-.br2i3t
-.ci3t
-.cenob2i3t
-.cirkv2i3t
-.civ2i3t
-.deb2i3t
-defic2i3t
-.di3g2i3t
-dinam2i3t
-.efr2i3t
-.eksc2i3t
-eksplic2i3t
-.el2i3t
-.emer2i3t
-.erm2i3t
-.erud2i3t
-.ev2i3t
-.fr2i3t
-.gamb2i3t
-.gl2i3t
-.graf2i3t
-.gran2i3t
-.grav2i3t
-hermafrod2i3t
-.hez2i3t
-hipokr2i3t
-.im2i3t
-.inc2i3t
-infin2i3t
-inkogn2i3t
-interm2i3t
-.inv2i3t
-kapac2i3t
-komprom2i3t
-.konf2i3t
-.kred2i3t
-.kv2i3t
-.kval2i3t
-.kviv2i3t
-.li3t
-.mi3t
-malak2i3t
-.margar2i3t
-.marm2i3t
-.med2i3t
-megal2i3t
-.mer2i3t
-mil2i3t
-asimil3i4t
-.mosk2i3t
-.neof2i3t
-okcip2i3t
-ol2i3t
-.orb2i3t
-palp2i3t
-.paraz2i3t
-.pir2i3t
-plebisc2i3t
-precip2i3t
-prestid2i3g2i3t
-preter2i3t
-prof2i3t
-prozel2i3t
-.ri3t
-rehabil2i3t
-.rekviz2i3t
-sanskr2i3t
-.satel2i3t
-sibar2i3t
-.sk2i3t
-.sp2i3t
-.spir2i3t
-.spl2i3t
-.spr2i3t
-stalagm2i3t
-stalakt2i3t
-.stil2i3t
-.su3b2i3t
-.ŝv2i3t
-.term2i3t
-.trans2i3t
-troglod2i3t
-.vi3t
-.viz2i3t
-.zen2i3t
-.kel2k
-.kro2m1
-.kro3ma.
-.kro3maj.
-.kro3majn.
-.kro3man.
-.kro3me.
-krom2o
-.ku2n1
-ku3n2ikl
-.li4a
-li5an
-li5as
-.ma2l1
-ma3l2ic
-.malno2v
-.me2m1
-me3m2or
-.mi4a
-mi5asm
-mi5aŭ
-.mi2s1
-.mi3s2al
-mi3s2il
-.mi3s2ia
-.mi3s2ie
-.mi3s2ii
-.mi3s2io
-.mi3s2iu
-.me2z1
-mez2alianc
-me3z2embri
-me3z2enter
-.me3z2ere
-.mez2o
-me3z2ur
-.ni4a
-3nja.
-3njaj.
-3njajn.
-3njan.
-3nje.
-3njo.
-3njoj.
-3njojn.
-3njon.
-.no2v
-1o2bla.
-1o2blaj.
-1o2blajn.
-1o2blan.
-1o2ble.
-1o2blo.
-1o2bloj.
-1o2blojn.
-1o2blon.
-1o2bl1ec
-gren2o3bl
-malno3bl
-.no3bl
-.vo3bl
-du3ona.
-du3onaj.
-du3onajn.
-du3onan.
-du3one.
-du3ono.
-du3onoj.
-du3onojn.
-du3onon.
-.trio2n
-.kvar3o2n
-.kvin3o2n
-.ses3o2n
-.sep3o2n
-.ok3o2na.
-.ok3o2naj.
-.ok3o2najn.
-.ok3o2nan.
-.ok3o2ne.
-.ok3o2no.
-.ok3o2noj.
-.ok3o2nojn.
-.ok3o2non.
-.naŭo4n
-dek3o2na.
-dek3o2naj.
-dek3o2najn.
-dek3o2nan.
-dek3o2ne.
-dek3o2no.
-dek3o2noj.
-dek3o2nojn.
-dek3o2non.
-cent3o2na.
-cent3o2naj.
-cent3o2najn.
-cent3o2nan.
-cent3o2ne.
-cent3o2no.
-cent3o2noj.
-cent3o2nojn.
-cent3o2non.
-mil3o2na.
-mil3o2naj.
-mil3o2najn.
-mil3o2nan.
-mil3o2ne.
-mil3o2no.
-mil3o2noj.
-mil3o2nojn.
-mil3o2non.
-1on2ta.
-1on2taj.
-1on2tajn.
-1on2tan.
-1on2te.
-1on2to.
-1on2toj.
-1on2tojn.
-1on2ton.
-disk2on3t
-.fon3t
-.fr2on3t
-.hon3t
-horiz2on3t
-.kon3t
-konfr2on3t
-.mon3t
-mastod2on3t
-.melol2on3t
-.pon3t
-.rak2on3t
-.rem2on3t
-.renk2on3t
-.sp2on3t
-vol2on3t
-duo2pa.
-duo2paj.
-duo2pajn.
-duo2pan.
-duo2pe.
-duo2po.
-duo2poj.
-duo2pojn.
-duo2pon.
-.trio2p
-kvar3o2p
-kvin3o2p
-ses3o2p
-sep3o2p
-.ok3o2pa.
-.ok3o2paj.
-.ok3o2pajn.
-.ok3o2pan.
-.ok3o2pe.
-.ok3o2po.
-.ok3o2poj.
-.ok3o2pojn.
-.ok3o2pon.
-naŭo4p
-dek3o2pa.
-dek3o2paj.
-dek3o2pajn.
-dek3o2pan.
-dek3o2pe.
-dek3o2po.
-dek3o2poj.
-dek3o2pojn.
-dek3o2pon.
-cent3o2pa.
-cent3o2paj.
-cent3o2pajn.
-cent3o2pan.
-cent3o2pe.
-cent3o2po.
-cent3o2poj.
-cent3o2pojn.
-cent3o2pon.
-mil3o2pa.
-mil3o2paj.
-mil3o2pajn.
-mil3o2pan.
-mil3o2pe.
-mil3o2po.
-mil3o2poj.
-mil3o2pojn.
-mil3o2pon.
-1o2ta.
-1o2taj.
-1o2tajn.
-1o2tan.
-1o2te.
-1o2to.
-1o2toj.
-1o2tojn.
-1o2ton.
-abrik2o3t
-anekd2o3t
-antid2o3t
-asimpt2o3t
-.az2o3t
-.bo3t
-.bal2o3t
-bankr2o3t
-.behem2o3t
-bergam2o3t
-.bi3g2o3t
-.bisk2o3t
-bojk2o3t
-.do3t
-.dep2o3t
-.desp2o3t
-.dev2o3t
-dorl2o3t
-.ekz2o3t
-.er2o3t
-.erg2o3t
-.fo3t
-.fag2o3t
-.fakt2o3t
-.fl2o3t
-fokstr2o3t
-.fr2o3t
-.go3t
-.gav2o3t
-.golg2o3t
-.gr2o3t
-.herod2o3t
-hipn2o3t
-hotent2o3t
-.jo3t
-ĵab2o3t
-.ko3t
-.kaĉal2o3t
-kalik2o3t
-.kaml2o3t
-.kan2o3t
-.kap2o3t
-.kar2o3t
-.koj2o3t
-.komp2o3t
-kompl2o3t
-kreoz2o3t
-.kul2o3t
-.kv2o3t
-.alikv2o3t
-.lo3t
-.lit2o3t
-.mo3t
-.mar2o3t
-.mark2o3t
-marm2o3t
-.mioz2o3t
-.no3t
-nark2o3t
-.po3t
-perlam2o3t
-.pier2o3t
-.pil2o3t
-.piv2o3t
-.pl2o3t
-poligl2o3t
-.ro3t
-.rab2o3t
-reding2o3t
-.rob2o3t
-.sab2o3t
-sacerd2o3t
-.sk2o3t
-.skler2o3t
-.skr2o3t
-.sp2o3t
-.ŝo3t
-ŝevj2o3t
-.terak2o3t
-.tr2o3t
-.trik2o3t
-.vo3t
-.zel2o3t
-.po2r
-.pos2t1
-pos3t2ament
-pos3t2iljon
-pos3t2u3l
-.prete2r1
-.re2f3l2ig
-.re2spond
-.re2spublik
-.re2storaci
-.re2tro
-.sa2m
-sam2ar
-.sa3m2u3m
-sa3m2uraj
-.se2n1
-.se3n2aa
-.se3n2ao
-sen2at
-sen2eskal
-.si4a
-.su2b1
-.su3b2ute
-.supe2r1
-.supe3ra.
-.supe3raj.
-.supe3rajn.
-.supe3ran.
-.supe3re.
-.supe3ro.
-.supe3roj.
-.supe3rojn.
-.supe3ron.
-.supe3ras.
-.supe3ri.
-.supe3ris.
-.supe3ros.
-.supe3ru.
-.supe3rus.
-.ŝi4a
-.tran2s
-tran3scend
-tran3sept
-tran3sistor
-tran3sit
-tran3s2pir
-.tu2t1
-.tu3ta.
-.tu3taj.
-.tu3tajn.
-.tu3tan.
-.tu3te.
-.tu3to.
-.tu3toj.
-.tu3tojn.
-.tu3ton.
-1u2ja.
-1u2jaj.
-1u2jajn.
-1u2jan.
-1u2je.
-1u2jo.
-1u2joj.
-1u2jojn.
-1u2jon.
-1u2j1ig
-1u2j1iĝ
-.and2u3j
-.halel2u3j
-1u2la.
-1u2laj.
-1u2lajn.
-1u2lan.
-1u2le.
-1u2lo.
-1u2loj.
-1u2lojn.
-1u2lon.
-1e2m1u2l
-e3m2u3ls
-1u2l3ec
-1u2l3ej
-.akum2u3l
-.ang2u3l
-.bu3l
-.bet2u3l
-.bru3l
-.ejak2u3l
-.fist2u3l
-form2u3l
-.fu3l
-galin2u3l
-.gran2u3l
-.grat2u3l
-.herk2u3l
-hierod2u3l
-homunk2u3l
-.inok2u3l
-.ins2u3l
-.instanb2u3l
-.ju3l
-.ĵu3l
-.ku3l
-.kab2u3l
-kalend2u3l
-kalk2u3l
-kapit2u3l
-kaps2u3l
-koag2u3l
-.kons2u3l
-.kop2u3l
-korpusk2u3l
-.kum2u3l
-.lu3l
-.liverp2u3l
-.mu3l
-.mak2u3l
-manip2u3l
-matrik2u3l
-.mod2u3l
-molek2u3l
-.nu3l
-.neb2u3l
-.ok2u3l
-.pu3l
-.paĉ2u3l
-partik2u3l
-.pust2u3l
-.ru3l
-.reg2u3l
-retik2u3l
-.ruk2u3l
-.sim2u3l
-skrup2u3l
-somnamb2u3l
-speg2u3l
-.spek2u3l
-.stim2u3l
-.tu3l
-.tab2u3l
-tarant2u3l
-.tru3l
-tuberk2u3l
-turb2u3l
-.ul2u3l
-.uv2u3l
-.vist2u3l
-1u2l1ar
-2u3l2ari
-2u3l2ard
-.pedik2u3l2ar
-1u2ma.
-1u2maj.
-1u2majn.
-1u2man.
-1u2me.
-1u2mo.
-1u2moj.
-1u2mojn.
-1u2mon.
-1u2mas.
-1u2mi.
-1u2mis.
-1u2mos.
-1u2mu.
-1u2mus.
-1u2m3ec
-.alb2u3m
-.bu3m
-.opid2u3m
-referend2u3m
-.fu3m
-parf2u3m
-.gu3m
-.hu3m
-.kuk2u3m
-.luk2u3m
-.lu3m
-vol2u3m
-.plu3m
-.stern2u3m
-.pu3m
-.ru3m
-.ser2u3m
-.gru3m
-.kvor2u3m
-.tru3m
-.stru3m
-.su3m
-.res2u3m
-kons2u3m
-opos2u3m
-.bit2u3m
-.kost2u3m
-.zu3m
-.vi4a
-vi5and
-vi5atik
-.vi2c1
-.vi3ca.
-.vi3caj.
-.vi3cajn.
-.vi3can.
-.vi3ce.
-.vi3co.
-.vi3coj.
-.vi3cojn.
-.vi3con.
-.vi3c2ia
-.vi3c2io
-.vi2r1
-vir2us
-vi1r2ulent
-1a2fabl
-1a2gra
-1a2kr
-1a2per
-1a2va1r
-4ologi
-4ografi
-2fik
-fre2m2d3l
-4b1c
-4b1b2
-4b1d
-4b1f
-4b1g
-4b1h4
-4b1j2
-4b1k
-4b1m
-4b1n
-4b1p
-4b1s
-4b1s2k
-4b1t
-4b1v
-4b1z
-4b1ĉ
-4b1ĝ
-4b1ĵ
-4b1ŝ
-4c1b
-4c1c2
-4c1ĉ
-4c1d
-4c1f
-4c1g
-4c1ĝ
-4c1h4
-4c1j2
-4c1ĵ
-4c1k
-4c1l
-4c1m
-4c1n
-4c1p
-4c1r
-4c1s
-4c1ŝ
-4c1t
-4c1v
-4c1z
-4ĉ1b
-4ĉ1c
-4ĉ1d
-4ĉ1f
-4ĉ1g
-4ĉ1h4
-4ĉ1j2
-4ĉ1k
-4ĉ1l
-4ĉ1m
-4ĉ1n
-4ĉ1p
-4ĉ1s
-4ĉ1t
-4ĉ1v
-4ĉ1z
-4ĉ1ĉ
-4ĉ1ĝ
-4ĉ1ĵ
-4ĉ1ŝ
-4d1b
-4d1c
-4d1d2
-4d1f
-4d1g
-4d1h4
-4d1j2
-4d1k
-4d1l
-4d1m
-4d1n
-4d1p
-4d1s
-4d1t
-4d1v
-4d1z
-4d1ĉ
-4d1ĝ
-4d1ĵ
-4d1ŝ
-1e2ben
-1e2d2z
-1e2gal
-1e2le1g2an3t
-4f1b
-4f1c
-4f1ĉ
-4f1d
-4f1f2
-4f1g
-4f1ĝ
-4f1h4
-4f1j2
-4f1ĵ
-4f1k
-4f1m
-4f1n
-4f1p
-4f1s
-4f1ŝ
-f1t
-4f1v
-4f1z
-4g1b
-4g1c
-4g1ĉ
-g1d
-4g1f
-4g1g2
-4g1ĝ
-4g1h4
-4g1j2
-4g1ĵ
-4g1k
-g1m
-g1n
-4g1p
-4g1s
-4g1ŝ
-4g1t
-g1v
-4g1z
-4ĝ1b
-4ĝ1c
-4ĝ1d
-4ĝ1f
-4ĝ1g
-4ĝ1h4
-4ĝ1j2
-4ĝ1k
-4ĝ1l
-4ĝ1m
-4ĝ1n
-4ĝ1p
-4ĝ1s
-4ĝ1t
-4ĝ1v
-4ĝ1z
-4ĝ1ĉ
-4ĝ1ĝ
-4ĝ1ĵ
-4ĝ1ŝ
-4h1ĉ
-4h1ĝ
-4h1ĵ
-4h1ŝ
-4ĥ1b
-4ĥ1c
-4ĥ1d
-4ĥ1f
-4ĥ1g
-4ĥ1h4
-4ĥ1j2
-4ĥ1k
-4ĥ1m
-4ĥ1n
-4ĥ1p
-4ĥ1s
-4ĥ1t
-4ĥ1v
-4ĥ1z
-4ĥ1ĉ
-4ĥ1ĝ
-4ĥ1ĵ
-4ĥ1ŝ
-1i2dent
-4j1b
-4j1c
-4j1d
-4j1f
-4j1g
-4j1h4
-4j1k
-4j1l
-4j1m
-4j1n
-4j1p
-4j1r
-4j1s
-4j1t
-4j1v
-4j1z
-4j1ĉ
-4j1ĝ
-4j1ĵ
-4j1ŝ
-4ĵ1b
-4ĵ1c
-4ĵ1d
-4ĵ1f
-4ĵ1g
-4ĵ1h4
-4ĵ1j2
-4ĵ1k
-4ĵ1l
-4ĵ1m
-4ĵ1n
-4ĵ1p
-4ĵ1s
-4ĵ1t
-4ĵ1v
-4ĵ1z
-4ĵ1ĉ
-4ĵ1ĝ
-4ĵ1ĵ
-4ĵ1ŝ
-4k1b
-4k1c
-4k1d
-4k1f
-4k1g
-4k1h4
-4k1j2
-4k1m
-4k1n
-4k1p
-4k1s
-k1s2t2r
-4k1t
-k1v
-4k1z
-4k1ĉ
-4k1ĝ
-4k1ĵ
-4k1ŝ
-4l1b
-4l1c
-4l1d
-4l1f
-4l1g
-4l1h4
-4l1j2
-4l1k
-4l1l2
-4l1m
-4l1n
-4l1p
-4l1r
-4l1s2
-4l1t
-4l1v
-4l1z
-4l1ĉ
-4l1ĝ
-4l1ĵ
-4l5ŝ2
-4m1b
-4m1c
-4m1d
-4m1f
-4m1g
-4m1h4
-4m1j2
-4m1k
-4m1l
-4m1m2
-4m1n
-4m1p
-4m1r
-4m1s
-4m1t
-4m1v
-4m1z
-4m1ĉ
-4m1ĝ
-4m1ĵ
-4m1ŝ
-mul2t1
-mult2e
-mul2t3eg
-mul3ta
-mul3te.
-mul3to
-mul4t3obl
-4n1b
-4n1c
-4n1d
-4n1f
-4n1g
-4n1h4
-4n1j
-4n1k
-n2kv
-4n1l
-n1m
-4n1n
-4n1p
-4n1r
-4n1s
-n1s2c
-n1s2t
-4n1t
-4n1v2
-4n1z
-4n1ĉ
-4n1ĝ
-4n1ĵ
-4n1ŝ
-n2k1c
-n2s1f
-nor2d1af
-nor2d1am
-nor2d1az
-nor2d1eŭ
-nor2d1rus
-nor2d1germ
-1o2be
-1o2kup
-1o2por1tun
-4p1b
-4p1c
-4p1d
-p1f
-4p1g
-4p1h4
-p1j2
-p1k
-p1m
-p1n
-p1s
-p1t
-4p1v
-4p1z
-4p1ĉ
-4p1ĝ
-4p1ĵ
-p1ŝ
-4r1b
-4r1c
-4r1d
-4r1f
-4r1g
-4r1h4
-4r1j2
-4r1k
-4r1l
-4r1m
-4r1n
-4r1p
-4r1s
-4r1t
-4r1v
-4r1z
-4r1ĉ
-4r1ĝ
-4r1ĵ
-4r1ŝ
-s1b
-s1c
-4s1ĉ
-4s1d
-s1f
-s1g
-4s1ĝ
-4s1h4
-4s1j2
-4s1ĵ
-s1k
-4s1l
-3s2lab
-3s2lalom
-3s2lang
-3s2lav
-3s2led
-3s2lip
-3s2lojd
-3s2lovak
-3s2loven
-3s2lup
-3s2lofoks
-4s1m
-3s2malt
-3s2merald
-3s2milak
-3s2mirg
-3s2mut
-4s1n
-3s2nob
-3s2nuf
-s1p
-s1r
-4s1s
-4s1ŝ
-s1t
-1s2tu1d
-s1v
-4s1z
-.su2d1af
-.su2d1am
-.su2d1azi
-.su2d1eŭr
-.su2d1rus
-4ŝ1b
-4ŝ1c
-4ŝ1d
-4ŝ1f
-4ŝ1g
-4ŝ1h4
-4ŝ1j2
-4ŝ1k
-ŝ1m
-ŝ1n
-ŝ1p
-4ŝ1s
-ŝ1t
-ŝ1v
-4ŝ1z
-4ŝ1ĉ
-4ŝ1ĝ
-4ŝ1ĵ
-4ŝ1ŝ
-1ŝ2tel
-4t1b
-4t1c
-4t1d
-4t1f
-4t1g
-4t1h4
-4t1j2
-4t1k
-4t1m
-4t1n
-4t1p
-4t1s
-4t1t
-4t1v
-4t1z
-4t1ĉ
-4t1ĝ
-4t1ĵ
-4t1ŝ
-4ŭ1
-ŭ2s1k
-4v1b
-4v1c
-4v1d
-4v1f
-4v1g
-4v1h4
-4v1j2
-4v1k
-4v1l
-4v1m
-4v1n
-4v1p
-4v1s
-4v1t
-4v1v
-4v1z
-4v1ĉ
-4v1ĝ
-4v1ĵ
-4v1ŝ
-4z1b
-4z1c
-4z1d
-4z1f
-4z1g
-4z1h4
-4z1j2
-4z1k
-4z1l
-z2lot
-4z1m
-4z1n
-4z1p
-4z1r
-4z1s
-4z1t
-4z1v
-4z1ĉ
-4z1ĝ
-4z1ĵ
-4z1ŝ} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-es.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-es.hyp
deleted file mode 100644
index 5263fdd82e7..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-es.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-es.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-es.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-es.pat
deleted file mode 100644
index b285650a4a2..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-es.pat
+++ /dev/null
@@ -1,4701 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-es.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u v w x y z á é í ñ ó ú
-
-\patterns{
-1b
-4b.
-.b2
-2bb
-2bc
-2bd
-2bf
-2bg
-2bh
-2bj
-2bk
-2bm
-2bn
-2bp
-2bq
-2bs
-2bt
-2bv
-2bw
-2bx
-2by
-2bz
-1c
-4c.
-.c2
-2cb
-2cc
-2cd
-2cf
-2cg
-2cj
-2ck
-2cm
-2cn
-2cp
-2cq
-2cs
-2ct
-2cv
-2cw
-2cx
-2cy
-2cz
-1d
-4d.
-.d2
-2db
-2dc
-2dd
-2df
-2dg
-2dh
-2dj
-2dk
-2dl
-2dm
-2dn
-2dp
-2dq
-2ds
-2dt
-2dv
-2dw
-2dx
-2dy
-2dz
-1f
-4f.
-.f2
-2fb
-2fc
-2fd
-2ff
-2fg
-2fh
-2fj
-2fk
-2fm
-2fn
-2fp
-2fq
-2fs
-2ft
-2fv
-2fw
-2fx
-2fy
-2fz
-1g
-4g.
-.g2
-2gb
-2gc
-2gd
-2gf
-2gg
-2gh
-2gj
-2gk
-2gm
-2gn
-2gp
-2gq
-2gs
-2gt
-2gv
-2gw
-2gx
-2gy
-2gz
-4h.
-2hb
-2hc
-2hd
-2hf
-2hg
-2hh
-2hj
-2hk
-2hl
-2hm
-2hn
-2hp
-2hq
-2hr
-2hs
-2ht
-2hv
-2hw
-2hx
-2hy
-2hz
-1j
-4j.
-.j2
-2jb
-2jc
-2jd
-2jf
-2jg
-2jh
-2jj
-2jk
-2jl
-2jm
-2jn
-2jp
-2jq
-2jr
-2js
-2jt
-2jv
-2jw
-2jx
-2jy
-2jz
-1k
-4k.
-.k2
-2kb
-2kc
-2kd
-2kf
-2kg
-2kh
-2kj
-2kk
-2km
-2kn
-2kp
-2kq
-2ks
-2kt
-2kv
-2kw
-2kx
-2ky
-2kz
-1l
-4l.
-.l2
-2lb
-2lc
-2ld
-2lf
-2lg
-2lh
-2lj
-2lk
-2lm
-2ln
-2lp
-2lq
-2lr
-2ls
-2lt
-2lv
-2lw
-2lx
-2ly
-2lz
-1m
-4m.
-.m2
-2mb
-2mc
-2md
-2mf
-2mg
-2mh
-2mj
-2mk
-2ml
-2mm
-2mn
-2mp
-2mq
-2mr
-2ms
-2mt
-2mv
-2mw
-2mx
-2my
-2mz
-1n
-4n.
-.n2
-2nb
-2nc
-2nd
-2nf
-2ng
-2nh
-2nj
-2nk
-2nl
-2nm
-2nn
-2np
-2nq
-2nr
-2ns
-2nt
-2nv
-2nw
-2nx
-2ny
-2nz
-1p
-4p.
-.p2
-2pb
-2pc
-2pd
-2pf
-2pg
-2ph
-2pj
-2pk
-2pm
-2pn
-2pp
-2pq
-2ps
-2pt
-2pv
-2pw
-2px
-2py
-2pz
-1q
-4q.
-.q2
-2qb
-2qc
-2qd
-2qf
-2qg
-2qh
-2qj
-2qk
-2ql
-2qm
-2qn
-2qp
-2qq
-2qr
-2qs
-2qt
-2qv
-2qw
-2qx
-2qy
-2qz
-1r
-4r.
-.r2
-2rb
-2rc
-2rd
-2rf
-2rg
-2rh
-2rj
-2rk
-2rl
-2rm
-2rn
-2rp
-2rq
-2rs
-2rt
-2rv
-2rw
-2rx
-2ry
-2rz
-1s
-4s.
-.s2
-2sb
-2sc
-2sd
-2sf
-2sg
-2sh
-2sj
-2sk
-2sl
-2sm
-2sn
-2sp
-2sq
-2sr
-2ss
-2st
-2sv
-2sw
-2sx
-2sy
-2sz
-1t
-4t.
-.t2
-2tb
-2tc
-2td
-2tf
-2tg
-2th
-2tj
-2tk
-2tm
-2tn
-2tp
-2tq
-2tt
-2tv
-2tw
-2ty
-1v
-4v.
-.v2
-2vb
-2vc
-2vd
-2vf
-2vg
-2vh
-2vj
-2vk
-2vm
-2vn
-2vp
-2vq
-2vs
-2vt
-2vv
-2vw
-2vx
-2vy
-2vz
-1w
-4w.
-.w2
-2wb
-2wc
-2wd
-2wf
-2wg
-2wh
-2wj
-2wk
-2wl
-2wm
-2wn
-2wp
-2wq
-2wr
-2ws
-2wt
-2wv
-2ww
-2wx
-2wy
-2wz
-1x
-4x.
-.x2
-2xb
-2xc
-2xd
-2xf
-2xg
-2xh
-2xj
-2xk
-2xl
-2xm
-2xn
-2xp
-2xq
-2xr
-2xs
-2xt
-2xv
-2xw
-2xx
-2xy
-2xz
-1y
-4y.
-.y2
-2yb
-2yc
-2yd
-2yf
-2yg
-2yh
-2yj
-2yk
-2yl
-2ym
-2yn
-2yp
-2yq
-2yr
-2ys
-2yt
-2yv
-2yw
-2yx
-2yy
-2yz
-1z
-4z.
-.z2
-2zb
-2zc
-2zd
-2zf
-2zg
-2zh
-2zj
-2zk
-2zl
-2zm
-2zn
-2zp
-2zq
-2zr
-2zs
-2zt
-2zv
-2zw
-2zx
-2zy
-2zz
-1ñ
-4ñ.
-c4h
-4ch.
-2chb
-2chc
-2chd
-2chf
-2chg
-2chh
-2chj
-2chk
-ch2l
-2chm
-2chn
-2chp
-2chq
-ch2r
-2chs
-2cht
-2chv
-2chw
-2chx
-2chy
-2chz
-l4l
-4ll.
-2llb
-2llc
-2lld
-2llf
-2llg
-2llh
-2llj
-2llk
-2lll
-2llm
-2lln
-2llp
-2llq
-2llr
-2lls
-2llt
-2llv
-2llw
-2llx
-2lly
-2llz
-b2l
-4bl.
-2bl2b
-2bl2c
-2bl2d
-2bl2f
-2bl2g
-2bl2h
-2bl2j
-2bl2k
-2bl2l
-2bl2m
-2bl2n
-2bl2p
-2bl2q
-2bl2r
-2bl2s
-2bl2t
-2bl2v
-2bl2w
-2bl2x
-2bl2y
-2bl2z
-c2l
-4cl.
-2cl2b
-2cl2c
-2cl2d
-2cl2f
-2cl2g
-2cl2h
-2cl2j
-2cl2k
-2cl2l
-2cl2m
-2cl2n
-2cl2p
-2cl2q
-2cl2r
-2cl2s
-2cl2t
-2cl2v
-2cl2w
-2cl2x
-2cl2y
-2cl2z
-f2l
-4fl.
-2fl2b
-2fl2c
-2fl2d
-2fl2f
-2fl2g
-2fl2h
-2fl2j
-2fl2k
-2fl2l
-2fl2m
-2fl2n
-2fl2p
-2fl2q
-2fl2r
-2fl2s
-2fl2t
-2fl2v
-2fl2w
-2fl2x
-2fl2y
-2fl2z
-g2l
-4gl.
-2gl2b
-2gl2c
-2gl2d
-2gl2f
-2gl2g
-2gl2h
-2gl2j
-2gl2k
-2gl2l
-2gl2m
-2gl2n
-2gl2p
-2gl2q
-2gl2r
-2gl2s
-2gl2t
-2gl2v
-2gl2w
-2gl2x
-2gl2y
-2gl2z
-k2l
-4kl.
-2kl2b
-2kl2c
-2kl2d
-2kl2f
-2kl2g
-2kl2h
-2kl2j
-2kl2k
-2kl2l
-2kl2m
-2kl2n
-2kl2p
-2kl2q
-2kl2r
-2kl2s
-2kl2t
-2kl2v
-2kl2w
-2kl2x
-2kl2y
-2kl2z
-p2l
-4pl.
-2pl2b
-2pl2c
-2pl2d
-2pl2f
-2pl2g
-2pl2h
-2pl2j
-2pl2k
-2pl2l
-2pl2m
-2pl2n
-2pl2p
-2pl2q
-2pl2r
-2pl2s
-2pl2t
-2pl2v
-2pl2w
-2pl2x
-2pl2y
-2pl2z
-v2l
-4vl.
-2vl2b
-2vl2c
-2vl2d
-2vl2f
-2vl2g
-2vl2h
-2vl2j
-2vl2k
-2vl2l
-2vl2m
-2vl2n
-2vl2p
-2vl2q
-2vl2r
-2vl2s
-2vl2t
-2vl2v
-2vl2w
-2vl2x
-2vl2y
-2vl2z
-b2r
-4br.
-2br2b
-2br2c
-2br2d
-2br2f
-2br2g
-2br2h
-2br2j
-2br2k
-2br2l
-2br2m
-2br2n
-2br2p
-2br2q
-2br2r
-2br2s
-2br2t
-2br2v
-2br2w
-2br2x
-2br2y
-2br2z
-c2r
-4cr.
-2cr2b
-2cr2c
-2cr2d
-2cr2f
-2cr2g
-2cr2h
-2cr2j
-2cr2k
-2cr2l
-2cr2m
-2cr2n
-2cr2p
-2cr2q
-2cr2r
-2cr2s
-2cr2t
-2cr2v
-2cr2w
-2cr2x
-2cr2y
-2cr2z
-d2r
-4dr.
-2dr2b
-2dr2c
-2dr2d
-2dr2f
-2dr2g
-2dr2h
-2dr2j
-2dr2k
-2dr2l
-2dr2m
-2dr2n
-2dr2p
-2dr2q
-2dr2r
-2dr2s
-2dr2t
-2dr2v
-2dr2w
-2dr2x
-2dr2y
-2dr2z
-f2r
-4fr.
-2fr2b
-2fr2c
-2fr2d
-2fr2f
-2fr2g
-2fr2h
-2fr2j
-2fr2k
-2fr2l
-2fr2m
-2fr2n
-2fr2p
-2fr2q
-2fr2r
-2fr2s
-2fr2t
-2fr2v
-2fr2w
-2fr2x
-2fr2y
-2fr2z
-g2r
-4gr.
-2gr2b
-2gr2c
-2gr2d
-2gr2f
-2gr2g
-2gr2h
-2gr2j
-2gr2k
-2gr2l
-2gr2m
-2gr2n
-2gr2p
-2gr2q
-2gr2r
-2gr2s
-2gr2t
-2gr2v
-2gr2w
-2gr2x
-2gr2y
-2gr2z
-k2r
-4kr.
-2kr2b
-2kr2c
-2kr2d
-2kr2f
-2kr2g
-2kr2h
-2kr2j
-2kr2k
-2kr2l
-2kr2m
-2kr2n
-2kr2p
-2kr2q
-2kr2r
-2kr2s
-2kr2t
-2kr2v
-2kr2w
-2kr2x
-2kr2y
-2kr2z
-p2r
-4pr.
-2pr2b
-2pr2c
-2pr2d
-2pr2f
-2pr2g
-2pr2h
-2pr2j
-2pr2k
-2pr2l
-2pr2m
-2pr2n
-2pr2p
-2pr2q
-2pr2r
-2pr2s
-2pr2t
-2pr2v
-2pr2w
-2pr2x
-2pr2y
-2pr2z
-r2r
-4rr.
-2rr2b
-2rr2c
-2rr2d
-2rr2f
-2rr2g
-2rr2h
-2rr2j
-2rr2k
-2rr2l
-2rr2m
-2rr2n
-2rr2p
-2rr2q
-2rr2r
-2rr2s
-2rr2t
-2rr2v
-2rr2w
-2rr2x
-2rr2y
-2rr2z
-t2r
-4tr.
-2tr2b
-2tr2c
-2tr2d
-2tr2f
-2tr2g
-2tr2h
-2tr2j
-2tr2k
-2tr2l
-2tr2m
-2tr2n
-2tr2p
-2tr2q
-2tr2r
-2tr2s
-2tr2t
-2tr2v
-2tr2w
-2tr2x
-2tr2y
-2tr2z
-v2r
-4vr.
-2vr2b
-2vr2c
-2vr2d
-2vr2f
-2vr2g
-2vr2h
-2vr2j
-2vr2k
-2vr2l
-2vr2m
-2vr2n
-2vr2p
-2vr2q
-2vr2r
-2vr2s
-2vr2t
-2vr2v
-2vr2w
-2vr2x
-2vr2y
-2vr2z
-2b3p2t
-2c3p2t
-2d3p2t
-2l3p2t
-2m3p2t
-2n3p2t
-2r3p2t
-2s3p2t
-2t3p2t
-2x3p2t
-2y3p2t
-4pt.
-2b3c2t
-2c3c2t
-2d3c2t
-2l3c2t
-2m3c2t
-2n3c2t
-2r3c2t
-2s3c2t
-2t3c2t
-2x3c2t
-2y3c2t
-4ct.
-2b3c2n
-2c3c2n
-2d3c2n
-2l3c2n
-2m3c2n
-2n3c2n
-2r3c2n
-2s3c2n
-2t3c2n
-2x3c2n
-2y3c2n
-4cn.
-2b3p2s
-2c3p2s
-2d3p2s
-2l3p2s
-2m3p2s
-2n3p2s
-2r3p2s
-2s3p2s
-2t3p2s
-2x3p2s
-2y3p2s
-4ps.
-2b3m2n
-2c3m2n
-2d3m2n
-2l3m2n
-2m3m2n
-2n3m2n
-2r3m2n
-2s3m2n
-2t3m2n
-2x3m2n
-2y3m2n
-4mn.
-2b3g2n
-2c3g2n
-2d3g2n
-2l3g2n
-2m3g2n
-2n3g2n
-2r3g2n
-2s3g2n
-2t3g2n
-2x3g2n
-2y3g2n
-4gn.
-2b3f2t
-2c3f2t
-2d3f2t
-2l3f2t
-2m3f2t
-2n3f2t
-2r3f2t
-2s3f2t
-2t3f2t
-2x3f2t
-2y3f2t
-4ft.
-2b3p2n
-2c3p2n
-2d3p2n
-2l3p2n
-2m3p2n
-2n3p2n
-2r3p2n
-2s3p2n
-2t3p2n
-2x3p2n
-2y3p2n
-4pn.
-2b3c2z
-2c3c2z
-2d3c2z
-2l3c2z
-2m3c2z
-2n3c2z
-2r3c2z
-2s3c2z
-2t3c2z
-2x3c2z
-2y3c2z
-4cz.
-2b3t2z
-2c3t2z
-2d3t2z
-2l3t2z
-2m3t2z
-2n3t2z
-2r3t2z
-2s3t2z
-2t3t2z
-2x3t2z
-2y3t2z
-4tz.
-2b3t2s
-2c3t2s
-2d3t2s
-2l3t2s
-2m3t2s
-2n3t2s
-2r3t2s
-2s3t2s
-2t3t2s
-2x3t2s
-2y3t2s
-4ts.
-san4c5t
-plan4c5t
-com4p3t
-prom4p3t
-o1eu2
-a1ae2
-a1aó2
-eo1á2
-eo1e2
-o1ae2
-o1eó2
-2no.
-2t2l
-2t2s
-2t2x
-2t2z
-tz3s4ch
-4caca4
-4cago4
-4caga4
-4cagas.
-4teta.
-4tetas.
-4puta4
-4puto4
-.hu4mea
-.hu4meo
-.he4mee
-4meo.
-4meable.
-4meables.
-4pedo4
-4culo4
-5mente.
-4i3go.
-4es.
-4és
-4e.
-4e3mos.
-4éis.
-4en.
-4ía.
-4ías.
-4ía3mos.
-4íais.
-4ían.
-4í.
-4í4s3te.
-4í4s3tes.
-4í3tes.
-4í3mos.
-4ís3teis.
-4e3ré.
-4e3rás.
-4e3rés.
-4e3rís.
-4e3rá.
-4e3re3mos.
-4e3réis.
-4e3rán.
-4i3ga.
-4i3gas.
-4i3gás.
-4i3gamos.
-4i3gáis.
-4a4i3gan.
-4e3ría.
-4e3rías.
-4e3ríamos.
-4e3ríais.
-4e3rían.
-4i3gá3mosme.
-4i3gá3mosmele.
-4i3gá3mosmelo.
-4i3gá3mos3mela.
-4i3gá3mosmeles.
-4i3gá3mosmelos.
-4i3gá3mos3melas.
-4i3gá3moste.
-4i3gá3mostele.
-4i3gá3mostelo.
-4i3gá3mos3tela.
-4i3gá3mosteles.
-4i3gá3mostelos.
-4i3gá3mos3telas.
-4i3gá3mosle.
-4i3gá3mosla.
-4i3gá3moslo.
-4i3gá3mosele.
-4i3gá3moselo.
-4i3gá3mosela.
-4i3gá3moseles.
-4i3gá3moselos.
-4i3gá3moselas.
-4i3gá3monos.
-4i3gá3monosle.
-4i3gá3monoslo.
-4i3gá3monosla.
-4i3gá3monosles.
-4i3gá3monoslos.
-4i3gá3monoslas.
-4i3gá3moos.
-4i3gá3moosle.
-4i3gá3mooslo.
-4i3gá3moosla.
-4i3gá3moosles.
-4i3gá3mooslos.
-4i3gá3mooslas.
-4i3gá3mosles.
-4i3gá3moslas.
-4i3gá3moslos.
-4ed.
-4é.
-4edme.
-4édmele.
-4édmelo.
-4éd3mela.
-4édmeles.
-4édmelos.
-4éd3melas.
-4edte.
-4édtele.
-4édtelo.
-4éd3tela.
-4édteles.
-4édtelos.
-4éd3telas.
-4edle.
-4eedla.
-4edlo.
-4édsele.
-4édselo.
-4édsela.
-4édseles.
-4édselos.
-4édselas.
-4ednos.
-4édnosle.
-4édnoslo.
-4édnosla.
-4édnosles.
-4édnoslos.
-4édnoslas.
-4eos.
-4éosle.
-4éoslo.
-4éosla.
-4éosles.
-4éoslos.
-4éoslas.
-4edles.
-4edlas.
-4edlos.
-4er.
-4erme.
-4érmele.
-4érmelo.
-4ér3mela.
-4érmeles.
-4érmelos.
-4ér3melas.
-4erte.
-4értele.
-4értelo.
-4ér3tela.
-4érteles.
-4értelos.
-4ér3telas.
-4erle.
-4erla.
-4erlo.
-4erse.
-4érsele.
-4érselo.
-4érsela.
-4érseles.
-4érselos.
-4érselas.
-4ernos.
-4érnosle.
-4érnoslo.
-4érnosla.
-4érnosles.
-4érnoslos.
-4érnoslas.
-4e3ros.
-4é3rosle.
-4é3roslo.
-4é3rosla.
-4é3rosles.
-4é3roslos.
-4é3roslas.
-4erles.
-4erlas.
-4erlos.
-4í3do.
-4í3da.
-4í3dos.
-4í3das.
-4o.
-4as.
-4a.
-4ás.
-4a3mos.
-4áis.
-4an.
-4aste.
-4astes.
-4ó.
-4ates.
-4asteis.
-4a3ron.
-4a3ba.
-4a3bas.
-4á3bamos.
-4a3bais.
-4a3ban.
-4a3ría.
-4a3rías.
-4a3ríamos.
-4a3ríais
-4a3rían.
-4a3ré.
-4a3rás.
-4a3rés.
-4a3rís.
-4a3rá.
-4a3remos.
-4a3réis.
-4a3rán.
-4a3ra.
-4a3ras.
-4á3ramos.
-4a3rais.
-4a3ran.
-4a3re.
-4a3res.
-4á3remos.
-4a3reis.
-4a3ren.
-4a3se.
-4a3ses.
-4á3semos.
-4a3seis.
-4a3sen.
-4ad.
-e5r4as.
-e5r4a3mos.
-e5r4áis.
-e5r4an.
-e5r4aste.
-e5r4astes.
-e5r4ates.
-e5r4asteis.
-e5r4a3ron.
-e5r4a3ba.
-e5r4a3bas.
-e5r4á3bamos.
-e5r4a3bais.
-e5r4a3ban.
-e5r4a3ría.
-e5r4a3rías.
-e5r4a3ríamos.
-e5r4a3ríais
-e5r4a3rían.
-e5r4a3ré.
-e5r4a3rás.
-e5r4a3rés.
-e5r4a3rís.
-e5r4a3rá.
-e5r4a3remos.
-e5r4a3réis.
-e5r4a3rán.
-e5r4a3ra.
-e5r4a3ras.
-e5r4á3ramos.
-e5r4a3rais.
-e5r4a3ran.
-e5r4a3re.
-e5r4a3res.
-e5r4á3remos.
-e5r4a3reis.
-e5r4a3ren.
-e5r4a3se.
-e5r4a3ses.
-e5r4á3semos.
-e5r4a3seis.
-e5r4a3sen.
-e5r4ad.
-4adme.
-4ádmele.
-4ádmelo.
-4ád3mela.
-4ádmeles.
-4ádmelos.
-4ád3melas.
-4adte.
-4ádtele.
-4ádtelo.
-4ád3tela.
-4ádteles.
-4ádtelos.
-4ád3telas.
-4adle.
-4eadla.
-4adlo.
-4ádsele.
-4ádselo.
-4ádsela.
-4ádseles.
-4ádselos.
-4ádselas.
-4adnos.
-4ádnosle.
-4ádnoslo.
-4ádnosla.
-4ádnosles.
-4ádnoslos.
-4ádnoslas.
-4aos.
-4áosle.
-4áoslo.
-4áosla.
-4áosles.
-4áoslos.
-4áoslas.
-4adles.
-4adlas.
-4adlos.
-4ar.
-4a4rme.
-4á4rmele.
-4á4rmelo.
-4á4r3mela.
-4á4r3meles.
-4á4r3melos.
-4á4r3melas.
-4a4r3te.
-4á4r3tele.
-4á4r3telo.
-4á4r3tela.
-4á4r3teles.
-4á4r3telos.
-4á4r3telas.
-4a4r3le.
-4a4r3la.
-4a4r3lo.
-4a4r3se.
-4á4r3sele.
-4á4r3selo.
-4á4r3sela.
-4á4r3seles.
-4á4r3selos.
-4á4r3selas.
-4a4r3nos.
-4á4r3nosle.
-4á4r3noslo.
-4á4r3nosla.
-4á4r3nosles.
-4á4r3noslos.
-4á4r3noslas.
-4a3ros.
-4árosle.
-4ároslo.
-4árosla.
-4árosles.
-4ároslos.
-4ároslas.
-4a4r3les.
-4a4r3las.
-4a4r3los.
-4a3do.
-4a3da.
-4a3dos.
-4a3das.
-e5r4a3do.
-e5r4a3da.
-e5r4a3dos.
-e5r4a3das.
-4ando
-4ándole.
-4ándolo.
-4ándola.
-4ándoles.
-4ándolos.
-4ándolas.
-4ándonos.
-4ándoos.
-4ándome.
-4ándomelo.
-4ándomela.
-4ándomele.
-4ándomelos.
-4ándomelas.
-4ándomeles.
-4ándote.
-4ándoteme.
-4ándotelo.
-4ándotela.
-4ándotele.
-4ándotelos.
-4ándotelas.
-4ándoteles.
-4ándotenos.
-4ándose.
-4ándoseme.
-4ándoselo.
-4ándosela.
-4ándosele.
-4ándoselos.
-4ándoselas.
-4ándoseles.
-4ándosenos.
-4a3dor.
-4a3dora.
-4a3dores.
-4a3doras.
-e5r4a3dor.
-e5r4a3dora.
-e5r4a3dores.
-e5r4a3doras.
-.a4
-.abre1h
-.abre1a2
-.abre1e2
-.abre1i2
-.abre1o2
-.abre1u2
-.abre1á2
-.abre1é2
-.abre1í2
-.abre1ó2
-.abre1ú2
-.acro1h
-.acro1a2
-.acro1e2
-.acro1i2
-.acro1o2
-.acro1u2
-.acro1á2
-.acro1é2
-.acro1í2
-.acro1ó2
-.acro1ú2
-acto1h
-acto1a2
-acto1e2
-acto1i2
-acto1o2
-acto1u2
-acto1á2
-acto1é2
-acto1í2
-acto1ó2
-acto1ú2
-adeno1h
-adeno1a2
-adeno1e2
-adeno1i2
-adeno1o2
-adeno1u2
-adeno1á2
-adeno1é2
-adeno1í2
-adeno1ó2
-adeno1ú2
-4i3ditis.
-aero1h
-aero1a2
-aero1e2
-aero1i2
-aero1o2
-aero1u2
-aero1á2
-aero1é2
-aero1í2
-aero1ó2
-aero1ú2
-afro1h
-afro1a2
-afro1e2
-afro1i2
-afro1o2
-afro1u2
-afro1á2
-afro1é2
-afro1í2
-afro1ó2
-afro1ú2
-agro1h
-agro1a2
-agro1e2
-agro1i2
-agro1o2
-agro1u2
-agro1á2
-agro1é2
-agro1í2
-agro1ó2
-agro1ú2
-.an3e2pigr
-.an3a2lcoh
-.an3amnio
-.an3i4so
-.an3i4só
-.an3aero
-andro1h
-andro1a2
-andro1e2
-andro1i2
-andro1o2
-andro1u2
-andro1á2
-andro1é2
-andro1í2
-andro1ó2
-andro1ú2
-anfi1h
-anfi1a2
-anfi1e2
-anfi1i2
-anfi1o2
-anfi1u2
-anfi1á2
-anfi1é2
-anfi1í2
-anfi1ó2
-anfi1ú2
-4o3xo.
-4o3xos.
-anglo1h
-anglo1a2
-anglo1e2
-anglo1i2
-anglo1o2
-anglo1u2
-anglo1á2
-anglo1é2
-anglo1í2
-anglo1ó2
-anglo1ú2
-ante1h
-ante1a2
-ante1e2
-ante1i2
-ante1o2
-ante1u2
-ante1á2
-ante1é2
-ante1í2
-ante1ó2
-ante1ú2
-.ante2o3je
-acante2
-4ísmo.
-4ísmos.
-4ísta.
-4ístas.
-4ismo.
-4ismos.
-4ista.
-4istas.
-4ístico.
-4ísticos.
-4ística.
-4ísticas.
-pante4o3n
-.anteo3nes
-mante4a
-e4a3miento
-e4ándo
-tras3antea
-2huelo.
-2huela.
-2huelos.
-2huelas.
-.anti1h
-.anti1a2
-.anti1e2
-.anti1i2
-.anti1o2
-.anti1u2
-.anti1á2
-.anti1é2
-.anti1í2
-.anti1ó2
-.anti1ú2
-ti2o3qu
-ti2o3co
-apico1h
-apico1a2
-apico1e2
-apico1i2
-apico1o2
-apico1u2
-apico1á2
-apico1é2
-apico1í2
-apico1ó2
-apico1ú2
-archi1h
-archi1a2
-archi1e2
-archi1i2
-archi1o2
-archi1u2
-archi1á2
-archi1é2
-archi1í2
-archi1ó2
-archi1ú2
-.atto1h
-.atto1a2
-.atto1e2
-.atto1i2
-.atto1o2
-.atto1u2
-.atto1á2
-.atto1é2
-.atto1í2
-.atto1ó2
-.atto1ú2
-audio1h
-audio1a2
-audio1e2
-audio1i2
-audio1o2
-audio1u2
-audio1á2
-audio1é2
-audio1í2
-audio1ó2
-audio1ú2
-austro1h
-austro1a2
-austro1e2
-austro1i2
-austro1o2
-austro1u2
-austro1á2
-austro1é2
-austro1í2
-austro1ó2
-austro1ú2
-auto1h
-auto1a2
-auto1e2
-auto1i2
-auto1o2
-auto1u2
-auto1á2
-auto1é2
-auto1í2
-auto1ó2
-auto1ú2
-.bi1anual
-.bi1aur
-.bi1ox
-.bi1ó2x
-.bi1un
-bi1u2ní
-biblio1h
-biblio1a2
-biblio1e2
-biblio1i2
-biblio1o2
-biblio1u2
-biblio1á2
-biblio1é2
-biblio1í2
-biblio1ó2
-biblio1ú2
-bien2
-bien3b
-bien3c
-bien3d
-bien3f
-bien3g
-bien3h
-bien3l
-bien3m
-bien3p
-bien3q
-bien3s
-bien3t
-bien3v
-bien3z
-.bie4n3and
-.bie4n3a4pa
-.bie4n3a4ve
-.bie4n3est
-.bie4n3int
-.bie4n3o4lie
-b4ien3do.
-.su3b4ien
-b4ien3das.
-bio1h
-bio1a2
-bio1e2
-bio1i2
-bio1o2
-bio1u2
-bio1á2
-bio1é2
-bio1í2
-bio1ó2
-bio1ú2
-busca1h
-busca1a2
-busca1e2
-busca1i2
-busca1o2
-busca1u2
-busca1á2
-busca1é2
-busca1í2
-busca1ó2
-busca1ú2
-cardio1h
-cardio1a2
-cardio1e2
-cardio1i2
-cardio1o2
-cardio1u2
-cardio1á2
-cardio1é2
-cardio1í2
-cardio1ó2
-cardio1ú2
-cefalo1h
-cefalo1a2
-cefalo1e2
-cefalo1i2
-cefalo1o2
-cefalo1u2
-cefalo1á2
-cefalo1é2
-cefalo1í2
-cefalo1ó2
-cefalo1ú2
-centi1h
-centi1a2
-centi1e2
-centi1i2
-centi1o2
-centi1u2
-centi1á2
-centi1é2
-centi1í2
-centi1ó2
-centi1ú2
-cian1h
-ciano1h
-ciano1a2
-ciano1e2
-ciano1i2
-ciano1o2
-ciano1u2
-ciano1á2
-ciano1é2
-ciano1í2
-ciano1ó2
-ciano1ú2
-cibe2r3r
-cibe2r1h
-cibe2r1a2
-cibe2r1e2
-cibe2r1i2
-cibe2r1o2
-cibe2r1u2
-cibe2r1á2
-cibe2r1é2
-cibe2r1í2
-cibe2r1ó2
-cibe2r1ú2
-centi5área
-ciclo1h
-ciclo1a2
-ciclo1e2
-ciclo1i2
-ciclo1o2
-ciclo1u2
-ciclo1á2
-ciclo1é2
-ciclo1í2
-ciclo1ó2
-ciclo1ú2
-cito1h
-cito1a2
-cito1e2
-cito1i2
-cito1o2
-cito1u2
-cito1á2
-cito1é2
-cito1í2
-cito1ó2
-cito1ú2
-clepto1h
-clepto1a2
-clepto1e2
-clepto1i2
-clepto1o2
-clepto1u2
-clepto1á2
-clepto1é2
-clepto1í2
-clepto1ó2
-clepto1ú2
-cnico1h
-cnico1a2
-cnico1e2
-cnico1i2
-cnico1o2
-cnico1u2
-cnico1á2
-cnico1é2
-cnico1í2
-cnico1ó2
-cnico1ú2
-.co1h
-.co2a2
-.co2e2
-.co2i2
-.co3o4
-.co2u2
-.co2á2
-.co2é2
-.co2í2
-.co2ó2
-.co2ú2
-.co3acer
-.co3acree
-.coá3gul
-.co3agen
-.coa3gul
-.co3apóst
-.coa3lesc
-.coa3lic
-.co3arrend
-.coa3xial
-.co3auto
-.co3edic
-.co3edit
-.co3educ
-.co3efici
-.coe3tá
-.co3exis
-.co6hib
-.co4hech
-.co4hesi
-.co4heso
-.co4herent
-.co4het
-.co3imput
-.coi3to
-.co4o5ki
-.co4o3per
-.co4o3pér
-.co4orden
-.co4ordin
-.co4ordín
-.co4opt
-.co4ópt
-.co2nurb
-cou3lomb
-corta1h
-corta1a2
-corta1e2
-corta1i2
-corta1o2
-corta1u2
-corta1á2
-corta1é2
-corta1í2
-corta1ó2
-corta1ú2
-cosmo1h
-cosmo1a2
-cosmo1e2
-cosmo1i2
-cosmo1o2
-cosmo1u2
-cosmo1á2
-cosmo1é2
-cosmo1í2
-cosmo1ó2
-cosmo1ú2
-crio1h
-crio1a2
-crio1e2
-crio1i2
-crio1o2
-crio1u2
-crio1á2
-crio1é2
-crio1í2
-crio1ó2
-crio1ú2
-cripto1h
-cripto1a2
-cripto1e2
-cripto1i2
-cripto1o2
-cripto1u2
-cripto1á2
-cripto1é2
-cripto1í2
-cripto1ó2
-cripto1ú2
-crono1h
-crono1a2
-crono1e2
-crono1i2
-crono1o2
-crono1u2
-crono1á2
-crono1é2
-crono1í2
-crono1ó2
-crono1ú2
-contra1h
-contra1a2
-contra1e2
-contra1i2
-contra1o2
-contra1u2
-contra1á2
-contra1é2
-contra1í2
-contra1ó2
-contra1ú2
-cuadru1h
-cuadru1a2
-cuadru1e2
-cuadru1i2
-cuadru1o2
-cuadru1u2
-cuadru1á2
-cuadru1é2
-cuadru1í2
-cuadru1ó2
-cuadru1ú2
-cuasi1h
-cuasi1a2
-cuasi1e2
-cuasi1i2
-cuasi1o2
-cuasi1u2
-cuasi1á2
-cuasi1é2
-cuasi1í2
-cuasi1ó2
-cuasi1ú2
-deca1h
-deca1a2
-deca1e2
-deca1i2
-deca1o2
-deca1u2
-deca1á2
-deca1é2
-deca1í2
-deca1ó2
-deca1ú2
-dento1h
-dento1a2
-dento1e2
-dento1i2
-dento1o2
-dento1u2
-dento1á2
-dento1é2
-dento1í2
-dento1ó2
-dento1ú2
-dermato1h
-dermato1a2
-dermato1e2
-dermato1i2
-dermato1o2
-dermato1u2
-dermato1á2
-dermato1é2
-dermato1í2
-dermato1ó2
-dermato1ú2
-dermo1h
-dermo1a2
-dermo1e2
-dermo1i2
-dermo1o2
-dermo1u2
-dermo1á2
-dermo1é2
-dermo1í2
-dermo1ó2
-dermo1ú2
-.de2s1h
-.de2s3a2
-.de2se2
-.de2si2
-.de2so2
-.de2su2
-.de2s3á2
-.de2sé2
-.de2sí2
-.de2só2
-.de2sú2
-deca2i3mient
-3sa.
-3sas.
-de2s3órde
-de2s3orde
-de3s4a3brid
-de3s4a3bor
-de3s4a3craliz
-de3s4a3cralic
-de3s4a3fia
-de3s4a3fía
-de3s4a3fiá
-de3s4a3fíe
-de3s4a3fié
-de3s4a3fío
-de3s4a3fió
-des5a4gua
-de3s4ahuci
-de3s4áhuci
-de3s4a3guis
-des4ala
-des4ála
-de3s4a3liv
-de3s4a3liniz
-de3s4a3liníz
-de3s4a3linic
-de3s4a3liníc
-de3s4angr
-de3s4angel
-de3s4a3prensiv
-de3s4a3rroll
-desa4sa
-desa4se
-des5a4tes
-de3s4astr
-de3s4a3yun
-de3s4a3zón
-de3s4a3zon
-.des3em
-de3s4e3meja
-de3s4e3méja
-de3s4e3mejá
-de3s4e3meje
-de3s4e3méje
-de3s4e3mejé
-de3s4e3mejo
-de3s4e3méjo
-de3s4e3mejó
-de3s4empeñ
-de3s4empéñ
-.des3en
-de3s4enfren
-de3s4enfrén
-de3seo
-de3sea
-de3sean
-de3seán
-de3sear
-de3seár
-de3seab
-de3seáb
-de3sead
-de3seád
-de3seam
-de3seám
-de3seas
-de3seás
-de3se3co
-de3se3ca
-de3se3cá
-de3se3có
-de3s4e3que
-de3s4e3qué
-de3se3can
-de3se3cán
-de3se3car
-de3se3cár
-de3se3cab
-de3se3cáb
-de3se3cad
-de3se3cád
-de3se3cam
-de3se3cám
-de3se3cas
-de3se3cás
-de3se3cha
-de3sé3cha
-de3se3chá
-de3se3ché
-de3se3che
-de3sé3che
-de3se3chó
-de3se3cho
-de2s3edif
-de2s3educ
-de2s3eduq
-de2s3escombr
-de2s3eq
-de3s4erci
-de3s4ert
-de3s4ért
-de2s3espa
-de3sesperac
-de2s3esperanz
-de2s3espin
-de2s3espum
-de2s3estabil
-de2s3estaci
-de2s3estalin
-de2s3estim
-de2s3estres
-de2s3estruc
-de3sider
-de3sidia
-de2s3ideol
-de3sidio
-de3siert
-de3sign
-de2s3igual
-de2s3iguál
-de2s3ilusion
-de2s3ilusión
-de2s3imagin
-de2s3iman
-de2s3impon
-de2s3impres
-de2s3incent
-de2s3inclin
-de2s3incorp
-de2s3incrust
-de3si3nenc
-de3si3nent
-de3sinfec
-de3su3dar
-de3su3das
-de3su3dan
-de2s3infart
-de2s3inflam
-de2s3infl
-de2s3inform
-de2s3inhib
-de2s3insect
-de2s3instal
-ini3ci
-iní3ci
-de3s4integr
-de3s4inter
-de2s3intox
-de2s3intub
-de2s3inver
-de3sisten
-de3isti
-de2s3obedec
-de2s3obedez
-de2s3obedien
-de2s3oblig
-de2s3obstr
-de3so3cas
-de2s3ocup
-de2s3ocúp
-de2s3odor
-de3so3la
-de3só3la
-de3so3lá
-de3so3le
-de3so3lé
-de3so3lo
-de3so3ló
-de3solac
-de3solad
-de3soll
-de2s3oprim
-de2s3orej
-de2s3orill
-de2s3orient
-de3sortij
-de2s3organi
-de2s3ornam
-de3suell
-de3sonce
-de2s3ova
-de2s3ová
-de2s3ové
-de2s3ovi
-de2s3oxi
-de2s3oye
-de2s3oyé
-de3s4ubstan
-de3s4ustan
-de3s4oseg
-de2s3ub4ic
-de2s3ub4iq
-de2s3unir
-de2s3unan
-de2s3unas
-de2s3une
-de2s3unid
-de2s3unien
-de2s3uniera
-de2s3unies
-de2s3unién
-de2s3uniér
-de2s3uniés
-de2s3unió
-de2s3uno
-de2s3uná
-de2s3uní
-de2s3unía
-de2s3unier
-de2s3unim
-de2s3uña
-de2s3uñá
-de2s3urbani
-.diecio2
-.diecio3ch
-ecano1h
-ecano1a2
-ecano1e2
-ecano1i2
-ecano1o2
-ecano1u2
-ecano1á2
-ecano1é2
-ecano1í2
-ecano1ó2
-ecano1ú2
-eco1h
-eco1a2
-eco1e2
-eco1i2
-eco1o2
-eco1u2
-eco1á2
-eco1é2
-eco1í2
-eco1ó2
-eco1ú2
-ecto1h
-ecto1a2
-ecto1e2
-ecto1i2
-ecto1o2
-ecto1u2
-ecto1á2
-ecto1é2
-ecto1í2
-ecto1ó2
-ecto1ú2
-ectro1h
-ectro1a2
-ectro1e2
-ectro1i2
-ectro1o2
-ectro1u2
-ectro1á2
-ectro1é2
-ectro1í2
-ectro1ó2
-ectro1ú2
-.e2n1h
-.e2n2a2
-.e2n2e2
-.e2n2i2
-.e2n2o2
-.e2n2u2
-.e2n2á2
-.e2n2é2
-.e2n2í2
-.e2n2ó2
-.e2n2ú2
-.ena3mor
-.en3amór
-.ene3mist
-.ene3míst
-.eno3jar
-.enu3mera
-.enu3merá
-.enu3mere
-.en3aceit
-.ena3jen
-.ena3jén
-.eno3ja
-.eno3já
-.eno3je
-.eno3jé
-.eno3jo
-.eno3jó
-.enó3j
-.en3arb
-en1hebr
-.en2hest
-4emboca
-4o3lógico.
-4o3lógica.
-4o3lógicos.
-4o3lógicas.
-4o3lógicamente.
-4o3logía.
-4o3logías.
-4ó3logo.
-4ó3loga.
-4ó3logos.
-4ó3logas.
-endo1h
-endo1a2
-endo1e2
-endo1i2
-endo1o2
-endo1u2
-endo1á2
-endo1é2
-endo1í2
-endo1ó2
-endo1ú2
-enea1h
-enea1a2
-enea1e2
-enea1i2
-enea1o2
-enea1u2
-enea1á2
-enea1é2
-enea1í2
-enea1ó2
-enea1ú2
-entero1h
-entero1a2
-entero1e2
-entero1i2
-entero1o2
-entero1u2
-entero1á2
-entero1é2
-entero1í2
-entero1ó2
-entero1ú2
-ento1h
-ento1a2
-ento1e2
-ento1i2
-ento1o2
-ento1u2
-ento1á2
-ento1é2
-ento1í2
-ento1ó2
-ento1ú2
-entre1h
-entre1a2
-entre1e2
-entre1i2
-entre1o2
-entre1u2
-entre1á2
-entre1é2
-entre1í2
-entre1ó2
-entre1ú2
-esclero1h
-esclero1a2
-esclero1e2
-esclero1i2
-esclero1o2
-esclero1u2
-esclero1á2
-esclero1é2
-esclero1í2
-esclero1ó2
-esclero1ú2
-estereo1h
-estereo1a2
-estereo1e2
-estereo1i2
-estereo1o2
-estereo1u2
-estereo1á2
-estereo1é2
-estereo1í2
-estereo1ó2
-estereo1ú2
-etno1h
-etno1a2
-etno1e2
-etno1i2
-etno1o2
-etno1u2
-etno1á2
-etno1é2
-etno1í2
-etno1ó2
-etno1ú2
-euco1h
-euco1a2
-euco1e2
-euco1i2
-euco1o2
-euco1u2
-euco1á2
-euco1é2
-euco1í2
-euco1ó2
-euco1ú2
-euro1h
-euro1a2
-euro1e2
-euro1i2
-euro1o2
-euro1u2
-euro1á2
-euro1é2
-euro1í2
-euro1ó2
-euro1ú2
-.e2x1h
-.e2x2a2
-.e2x2e2
-.e2x2i2
-.e2x2o2
-.e2x2u2
-.e2x2á2
-.e2x2é2
-.e2x2í2
-.e2x2ó2
-.e2x2ú2
-.ex2hal
-.ex2hál
-.ex2haus
-.ex2hib
-.ex2híb
-.ex2hort
-.ex2hórt
-.ex2hum
-.ex2húm
-3gono.
-3gonos.
-3gonal.
-3gonales.
-exá3men
-exá3ri
-exé3ge
-exó3ti
-exa3cerb
-exa3ger
-ex3alum
-exa3min
-exe3cr
-exe3géti
-exe3quia
-exi3ja
-exi3já
-exí3ja
-exi3ge
-exí3ge
-exi3gi
-exi3gí
-exi3jo
-exí3jo
-exi3lia
-exi3liá
-exí3lia
-exi3lie
-exi3lié
-exí3lie
-exi3lio
-exi3lió
-exí3lio
-exi3ma
-exi3má
-exí3ma
-exi3mi
-exi3mí
-exí3mi
-exi3me
-exi3mé
-exí3me
-exi3mo
-exi3mó
-exí3mo
-exi3tos
-exi3lar
-exo3bió
-exo3ner
-exo3crin
-exo3tér
-exo3tic
-exo3tiq
-exo3tism
-exo3gami
-exo3esq
-exo3plan
-exo3gámi
-exu3ber
-exu3dar
-exu3dat
-exu3dac
-extra1h
-extra1a2
-extra1e2
-extra1i2
-extra1o2
-extra1u2
-extra1á2
-extra1é2
-extra1í2
-extra1ó2
-extra1ú2
-u4teri
-.cau5t
-.deu5t
-femto1h
-femto1a2
-femto1e2
-femto1i2
-femto1o2
-femto1u2
-femto1á2
-femto1é2
-femto1í2
-femto1ó2
-femto1ú2
-ferro1h
-ferro1a2
-ferro1e2
-ferro1i2
-ferro1o2
-ferro1u2
-ferro1á2
-ferro1é2
-ferro1í2
-ferro1ó2
-ferro1ú2
-filo1h
-filo1a2
-filo1e2
-filo1i2
-filo1o2
-filo1u2
-filo1á2
-filo1é2
-filo1í2
-filo1ó2
-filo1ú2
-fisio1h
-fisio1a2
-fisio1e2
-fisio1i2
-fisio1o2
-fisio1u2
-fisio1á2
-fisio1é2
-fisio1í2
-fisio1ó2
-fisio1ú2
-fito1h
-fito1a2
-fito1e2
-fito1i2
-fito1o2
-fito1u2
-fito1á2
-fito1é2
-fito1í2
-fito1ó2
-fito1ú2
-fono1h
-fono1a2
-fono1e2
-fono1i2
-fono1o2
-fono1u2
-fono1á2
-fono1é2
-fono1í2
-fono1ó2
-fono1ú2
-foto1h
-foto1a2
-foto1e2
-foto1i2
-foto1o2
-foto1u2
-foto1á2
-foto1é2
-foto1í2
-foto1ó2
-foto1ú2
-galo1h
-galo1a2
-galo1e2
-galo1i2
-galo1o2
-galo1u2
-galo1á2
-galo1é2
-galo1í2
-galo1ó2
-galo1ú2
-gastero1h
-gastero1a2
-gastero1e2
-gastero1i2
-gastero1o2
-gastero1u2
-gastero1á2
-gastero1é2
-gastero1í2
-gastero1ó2
-gastero1ú2
-gastro1h
-gastro1a2
-gastro1e2
-gastro1i2
-gastro1o2
-gastro1u2
-gastro1á2
-gastro1é2
-gastro1í2
-gastro1ó2
-gastro1ú2
-geo1h
-geo1a2
-geo1e2
-geo1i2
-geo1o2
-geo1u2
-geo1á2
-geo1é2
-geo1í2
-geo1ó2
-geo1ú2
-geronto1h
-geronto1a2
-geronto1e2
-geronto1i2
-geronto1o2
-geronto1u2
-geronto1á2
-geronto1é2
-geronto1í2
-geronto1ó2
-geronto1ú2
-gineco1h
-gineco1a2
-gineco1e2
-gineco1i2
-gineco1o2
-gineco1u2
-gineco1á2
-gineco1é2
-gineco1í2
-gineco1ó2
-gineco1ú2
-giga1h
-giga1a2
-giga1e2
-giga1i2
-giga1o2
-giga1u2
-giga1á2
-giga1é2
-giga1í2
-giga1ó2
-giga1ú2
-gluco1h
-gluco1a2
-gluco1e2
-gluco1i2
-gluco1o2
-gluco1u2
-gluco1á2
-gluco1é2
-gluco1í2
-gluco1ó2
-gluco1ú2
-grafo1h
-grafo1a2
-grafo1e2
-grafo1i2
-grafo1o2
-grafo1u2
-grafo1á2
-grafo1é2
-grafo1í2
-grafo1ó2
-grafo1ú2
-guarda1h
-guarda1a2
-guarda1e2
-guarda1i2
-guarda1o2
-guarda1u2
-guarda1á2
-guarda1é2
-guarda1í2
-guarda1ó2
-guarda1ú2
-halo1h
-halo1a2
-halo1e2
-halo1i2
-halo1o2
-halo1u2
-halo1á2
-halo1é2
-halo1í2
-halo1ó2
-halo1ú2
-hecto1h
-hecto1a2
-hecto1e2
-hecto1i2
-hecto1o2
-hecto1u2
-hecto1á2
-hecto1é2
-hecto1í2
-hecto1ó2
-hecto1ú2
-helico1h
-helico1a2
-helico1e2
-helico1i2
-helico1o2
-helico1u2
-helico1á2
-helico1é2
-helico1í2
-helico1ó2
-helico1ú2
-helio1h
-helio1a2
-helio1e2
-helio1i2
-helio1o2
-helio1u2
-helio1á2
-helio1é2
-helio1í2
-helio1ó2
-helio1ú2
-hemato1h
-hemato1a2
-hemato1e2
-hemato1i2
-hemato1o2
-hemato1u2
-hemato1á2
-hemato1é2
-hemato1í2
-hemato1ó2
-hemato1ú2
-hemi1h
-hemi1a2
-hemi1e2
-hemi1i2
-hemi1o2
-hemi1u2
-hemi1á2
-hemi1é2
-hemi1í2
-hemi1ó2
-hemi1ú2
-hemio3la.
-hemio3las.
-hemo1h
-hemo1a2
-hemo1e2
-hemo1i2
-hemo1o2
-hemo1u2
-hemo1á2
-hemo1é2
-hemo1í2
-hemo1ó2
-hemo1ú2
-hepato1h
-hepato1a2
-hepato1e2
-hepato1i2
-hepato1o2
-hepato1u2
-hepato1á2
-hepato1é2
-hepato1í2
-hepato1ó2
-hepato1ú2
-hepta1h
-hepta1a2
-hepta1e2
-hepta1i2
-hepta1o2
-hepta1u2
-hepta1á2
-hepta1é2
-hepta1í2
-hepta1ó2
-hepta1ú2
-hetero1h
-hetero1a2
-hetero1e2
-hetero1i2
-hetero1o2
-hetero1u2
-hetero1á2
-hetero1é2
-hetero1í2
-hetero1ó2
-hetero1ú2
-2al.
-2ales.
-hexa1h
-hexa1a2
-hexa1e2
-hexa1i2
-hexa1o2
-hexa1u2
-hexa1á2
-hexa1é2
-hexa1í2
-hexa1ó2
-hexa1ú2
-hidro1h
-hidro1a2
-hidro1e2
-hidro1i2
-hidro1o2
-hidro1u2
-hidro1á2
-hidro1é2
-hidro1í2
-hidro1ó2
-hidro1ú2
-holo1h
-holo1a2
-holo1e2
-holo1i2
-holo1o2
-holo1u2
-holo1á2
-holo1é2
-holo1í2
-holo1ó2
-holo1ú2
-hipe2r3r
-hipe2r1h
-hipe2r1a2
-hipe2r1e2
-hipe2r1i2
-hipe2r1o2
-hipe2r1u2
-hipe2r1á2
-hipe2r1é2
-hipe2r1í2
-hipe2r1ó2
-hipe2r1ú2
-pe3r4e3mia
-hipe3r4i3cíne
-hipe3r4o3nimi
-hipe3r4o3ními
-hipe3r4ó3nimo
-hipe3r4o3xia
-hipo1h
-hipo1a2
-hipo1e2
-hipo1i2
-hipo1o2
-hipo1u2
-hipo1á2
-hipo1é2
-hipo1í2
-hipo1ó2
-hipo1ú2
-spano1h
-spano1a2
-spano1e2
-spano1i2
-spano1o2
-spano1u2
-spano1á2
-spano1é2
-spano1í2
-spano1ó2
-spano1ú2
-histo1h
-histo1a2
-histo1e2
-histo1i2
-histo1o2
-histo1u2
-histo1á2
-histo1é2
-histo1í2
-histo1ó2
-histo1ú2
-homo1h
-homo1a2
-homo1e2
-homo1i2
-homo1o2
-homo1u2
-homo1á2
-homo1é2
-homo1í2
-homo1ó2
-homo1ú2
-homeo1h
-homeo1a2
-homeo1e2
-homeo1i2
-homeo1o2
-homeo1u2
-homeo1á2
-homeo1é2
-homeo1í2
-homeo1ó2
-homeo1ú2
-ibero1h
-ibero1a2
-ibero1e2
-ibero1i2
-ibero1o2
-ibero1u2
-ibero1á2
-ibero1é2
-ibero1í2
-ibero1ó2
-ibero1ú2
-icono1h
-icono1a2
-icono1e2
-icono1i2
-icono1o2
-icono1u2
-icono1á2
-icono1é2
-icono1í2
-icono1ó2
-icono1ú2
-.i2n1h
-.i2n2a2
-.i2n2e2
-.i2n2i2
-.i2n2o2
-.i2n2u2
-.i2n2á2
-.i2n2é2
-.i2n2í2
-.i2n2ó2
-.i2n2ú2
-in4hib
-in4híb
-in4hal
-in4hál
-in4hest
-in4hést
-in4hum
-in4húm
-in4hiest
-in4hiést
-in4herent
-in4hóspit
-in4hesi
-.in3abarc
-.in3abord
-.in3acent
-.in3acept
-.in3adapt
-.in3adopt
-.in3aguant
-.in3alámb
-.in3alien
-.in3analiz
-.in3anim
-.in3apagab
-.in3afect
-.in3apel
-.in3aplaz
-.in3aplic
-.in3apreci
-.in3aprehen
-.in3aprens
-.in3armón
-.in3arrug
-.in3asist
-.in3atent
-.in3efic
-.in3efici
-.in3eludi
-.in3encont
-.in3equid
-.in3exact
-.in3evit
-.ina3movib
-.ina3nic
-.ine3narr
-.ine3quív
-.iná3nim
-.iné3dit
-.in3eleg
-.in3exha
-.in3ex
-ini3cia
-iní3cia
-ini3ciá
-ini3cie
-re3ini3cia
-re3iní3cia
-re3ini3ciá
-re3ini3cie
-.ini3cuo
-.ini3cua
-.in3igualab
-.in3in
-.in3obser
-.ino3cuo
-.ino3cua
-.ino3cenc
-.ino3cent
-.in3ocult
-.ino3fens
-.ino3cula
-.ino3culá
-.ino3cule
-.in3oport
-.inú3til
-.inu3tiliz
-infra1h
-infra1a2
-infra1e2
-infra1i2
-infra1o2
-infra1u2
-infra1á2
-infra1é2
-infra1í2
-infra1ó2
-infra1ú2
-inmuno1h
-inmuno1a2
-inmuno1e2
-inmuno1i2
-inmuno1o2
-inmuno1u2
-inmuno1á2
-inmuno1é2
-inmuno1í2
-inmuno1ó2
-inmuno1ú2
-.inte2r3r
-.inte2r1h
-.inte2r1a2
-.inte2r1e2
-.inte2r1i2
-.inte2r1o2
-.inte2r1u2
-.inte2r1á2
-.inte2r1é2
-.inte2r1í2
-.inte2r1ó2
-.inte2r1ú2
-.in3ter2e3sa
-.in3ter2e3se
-.in3ter2e3so
-.in3ter2e3sá
-.in3ter2e3sé
-.in3ter2e3só
-.de3s4in3ter2e3sa
-.de3s4in3ter2e3se
-.de3s4in3ter2e3so
-.de3s4in3ter2e3sá
-.de3s4in3ter2e3sé
-.de3s4in3ter2e3só
-4n5te5r2i3n
-inte6r5i4nsu
-inte6r5i4nst
-inte6r5i4nd
-4ino.
-4inos.
-4ina.
-4inas.
-.in3te3r4rog
-.in3te3r4rupc
-.in3te3r4rupt
-.in3te3r4rump
-inter4és
-inte3r4esar
-inte5r4regno
-inte3r4ior4
-in3te3r4im.
-4i4ano.
-4i4ana.
-4i4anos.
-4i4anas.
-intra1h
-intra1a2
-intra1e2
-intra1i2
-intra1o2
-intra1u2
-intra1á2
-intra1é2
-intra1í2
-intra1ó2
-intra1ú2
-islamo1h
-islamo1a2
-islamo1e2
-islamo1i2
-islamo1o2
-islamo1u2
-islamo1á2
-islamo1é2
-islamo1í2
-islamo1ó2
-islamo1ú2
-italo1h
-italo1a2
-italo1e2
-italo1i2
-italo1o2
-italo1u2
-italo1á2
-italo1é2
-italo1í2
-italo1ó2
-italo1ú2
-iso1h
-iso1a2
-iso1e2
-iso1i2
-iso1o2
-iso1u2
-iso1á2
-iso1é2
-iso1í2
-iso1ó2
-iso1ú2
-kilo1h
-kilo1a2
-kilo1e2
-kilo1i2
-kilo1o2
-kilo1u2
-kilo1á2
-kilo1é2
-kilo1í2
-kilo1ó2
-kilo1ú2
-leuco1h
-leuco1a2
-leuco1e2
-leuco1i2
-leuco1o2
-leuco1u2
-leuco1á2
-leuco1é2
-leuco1í2
-leuco1ó2
-leuco1ú2
-linfo1h
-linfo1a2
-linfo1e2
-linfo1i2
-linfo1o2
-linfo1u2
-linfo1á2
-linfo1é2
-linfo1í2
-linfo1ó2
-linfo1ú2
-lipo1h
-lipo1a2
-lipo1e2
-lipo1i2
-lipo1o2
-lipo1u2
-lipo1á2
-lipo1é2
-lipo1í2
-lipo1ó2
-lipo1ú2
-lito1h
-lito1a2
-lito1e2
-lito1i2
-lito1o2
-lito1u2
-lito1á2
-lito1é2
-lito1í2
-lito1ó2
-lito1ú2
-macro1h
-macro1a2
-macro1e2
-macro1i2
-macro1o2
-macro1u2
-macro1á2
-macro1é2
-macro1í2
-macro1ó2
-macro1ú2
-mal2
-ma4l3h
-.ma4l3e4du
-mal3b
-mal3c
-mal3d
-mal3f
-mal3g
-mal3m
-mal3p
-mal3q
-mal3s
-mal3t
-mal3v
-.mal1acon
-.mal1acos
-.mala1e
-.mal1andant
-.mal1andanz
-.mal1est
-.mal1int
-maxi1h
-maxi1a2
-maxi1e2
-maxi1i2
-maxi1o2
-maxi1u2
-maxi1á2
-maxi1é2
-maxi1í2
-maxi1ó2
-maxi1ú2
-megalo1h
-megalo1a2
-megalo1e2
-megalo1i2
-megalo1o2
-megalo1u2
-megalo1á2
-megalo1é2
-megalo1í2
-megalo1ó2
-megalo1ú2
-mega1h
-mega1a2
-mega1e2
-mega1i2
-mega1o2
-mega1u2
-mega1á2
-mega1é2
-mega1í2
-mega1ó2
-mega1ú2
-melano1h
-melano1a2
-melano1e2
-melano1i2
-melano1o2
-melano1u2
-melano1á2
-melano1é2
-melano1í2
-melano1ó2
-melano1ú2
-meso1h
-meso1a2
-meso1e2
-meso1i2
-meso1o2
-meso1u2
-meso1á2
-meso1é2
-meso1í2
-meso1ó2
-meso1ú2
-meta1h
-meta1a2
-meta1e2
-meta1i2
-meta1o2
-meta1u2
-meta1á2
-meta1é2
-meta1í2
-meta1ó2
-meta1ú2
-micro1h
-micro1a2
-micro1e2
-micro1i2
-micro1o2
-micro1u2
-micro1á2
-micro1é2
-micro1í2
-micro1ó2
-micro1ú2
-.mili1h
-.mili1a2
-.mili1e2
-.mili1i2
-.mili1o2
-.mili1u2
-.mili1á2
-.mili1é2
-.mili1í2
-.mili1ó2
-.mili1ú2
-familia3ri
-ia5res.
-amili6a
-a3rio
-a3ria
-li5á4rea
-mili4ar
-mini1h
-mini1a2
-mini1e2
-mini1i2
-mini1o2
-mini1u2
-mini1á2
-mini1é2
-mini1í2
-mini1ó2
-mini1ú2
-2os.
-2o3so.
-2o3sos.
-2o3sa.
-2o3sas.
-2o3samente.
-mini4a5tur
-.mio1h
-.mio1a2
-.mio1e2
-.mio1i2
-.mio1o2
-.mio1u2
-.mio1á2
-.mio1é2
-.mio1í2
-.mio1ó2
-.mio1ú2
-multi1h
-multi1a2
-multi1e2
-multi1i2
-multi1o2
-multi1u2
-multi1á2
-multi1é2
-multi1í2
-multi1ó2
-multi1ú2
-miria1h
-miria1a2
-miria1e2
-miria1i2
-miria1o2
-miria1u2
-miria1á2
-miria1é2
-miria1í2
-miria1ó2
-miria1ú2
-mono1h
-mono1a2
-mono1e2
-mono1i2
-mono1o2
-mono1u2
-mono1á2
-mono1é2
-mono1í2
-mono1ó2
-mono1ú2
-morfo1h
-morfo1a2
-morfo1e2
-morfo1i2
-morfo1o2
-morfo1u2
-morfo1á2
-morfo1é2
-morfo1í2
-morfo1ó2
-morfo1ú2
-moto1h
-moto1a2
-moto1e2
-moto1i2
-moto1o2
-moto1u2
-moto1á2
-moto1é2
-moto1í2
-moto1ó2
-moto1ú2
-namo1h
-namo1a2
-namo1e2
-namo1i2
-namo1o2
-namo1u2
-namo1á2
-namo1é2
-namo1í2
-namo1ó2
-namo1ú2
-nano1h
-nano1a2
-nano1e2
-nano1i2
-nano1o2
-nano1u2
-nano1á2
-nano1é2
-nano1í2
-nano1ó2
-nano1ú2
-narco1h
-narco1a2
-narco1e2
-narco1i2
-narco1o2
-narco1u2
-narco1á2
-narco1é2
-narco1í2
-narco1ó2
-narco1ú2
-necro1h
-necro1a2
-necro1e2
-necro1i2
-necro1o2
-necro1u2
-necro1á2
-necro1é2
-necro1í2
-necro1ó2
-necro1ú2
-nefro1h
-nefro1a2
-nefro1e2
-nefro1i2
-nefro1o2
-nefro1u2
-nefro1á2
-nefro1é2
-nefro1í2
-nefro1ó2
-nefro1ú2
-neo1h
-neo1a2
-neo1e2
-neo1i2
-neo1o2
-neo1u2
-neo1á2
-neo1é2
-neo1í2
-neo1ó2
-neo1ú2
-3c2neor
-neto1h
-neto1a2
-neto1e2
-neto1i2
-neto1o2
-neto1u2
-neto1á2
-neto1é2
-neto1í2
-neto1ó2
-neto1ú2
-neumo1h
-neumo1a2
-neumo1e2
-neumo1i2
-neumo1o2
-neumo1u2
-neumo1á2
-neumo1é2
-neumo1í2
-neumo1ó2
-neumo1ú2
-norte1h
-norte1a2
-norte1e2
-norte1i2
-norte1o2
-norte1u2
-norte1á2
-norte1é2
-norte1í2
-norte1ó2
-norte1ú2
-octo1h
-octo1a2
-octo1e2
-octo1i2
-octo1o2
-octo1u2
-octo1á2
-octo1é2
-octo1í2
-octo1ó2
-octo1ú2
-octa1h
-octa1a2
-octa1e2
-octa1i2
-octa1o2
-octa1u2
-octa1á2
-octa1é2
-octa1í2
-octa1ó2
-octa1ú2
-oligo1h
-oligo1a2
-oligo1e2
-oligo1i2
-oligo1o2
-oligo1u2
-oligo1á2
-oligo1é2
-oligo1í2
-oligo1ó2
-oligo1ú2
-omni1h
-omni1a2
-omni1e2
-omni1i2
-omni1o2
-omni1u2
-omni1á2
-omni1é2
-omni1í2
-omni1ó2
-omni1ú2
-onco1h
-onco1a2
-onco1e2
-onco1i2
-onco1o2
-onco1u2
-onco1á2
-onco1é2
-onco1í2
-onco1ó2
-onco1ú2
-onto1h
-onto1a2
-onto1e2
-onto1i2
-onto1o2
-onto1u2
-onto1á2
-onto1é2
-onto1í2
-onto1ó2
-onto1ú2
-opto1h
-opto1a2
-opto1e2
-opto1i2
-opto1o2
-opto1u2
-opto1á2
-opto1é2
-opto1í2
-opto1ó2
-opto1ú2
-ornito1h
-ornito1a2
-ornito1e2
-ornito1i2
-ornito1o2
-ornito1u2
-ornito1á2
-ornito1é2
-ornito1í2
-ornito1ó2
-ornito1ú2
-orto1h
-orto1a2
-orto1e2
-orto1i2
-orto1o2
-orto1u2
-orto1á2
-orto1é2
-orto1í2
-orto1ó2
-orto1ú2
-orto4e3pía
-osteo1h
-osteo1a2
-osteo1e2
-osteo1i2
-osteo1o2
-osteo1u2
-osteo1á2
-osteo1é2
-osteo1í2
-osteo1ó2
-osteo1ú2
-paleo1h
-paleo1a2
-paleo1e2
-paleo1i2
-paleo1o2
-paleo1u2
-paleo1á2
-paleo1é2
-paleo1í2
-paleo1ó2
-paleo1ú2
-.pa4n1a4fri
-.pa4n1a4meri
-.pa4n1á4rab
-.pa4n1a4ráb
-.pa4n1a4rab
-.pa4n1europ
-.pa4n1islam
-.pa4n1islám
-.pa4n5hisp
-.pa4n1hel
-.pa4n1ópti
-para1h
-para1a2
-para1e2
-para1i2
-para1o2
-para1u2
-para1á2
-para1é2
-para1í2
-para1ó2
-para1ú2
-para2is.
-aí5so.
-aí5sos.
-para4íso
-para4i3señ
-para4ulata
-penta1h
-penta1a2
-penta1e2
-penta1i2
-penta1o2
-penta1u2
-penta1á2
-penta1é2
-penta1í2
-penta1ó2
-penta1ú2
-peta1h
-peta1a2
-peta1e2
-peta1i2
-peta1o2
-peta1u2
-peta1á2
-peta1é2
-peta1í2
-peta1ó2
-peta1ú2
-pico1h
-pico1a2
-pico1e2
-pico1i2
-pico1o2
-pico1u2
-pico1á2
-pico1é2
-pico1í2
-pico1ó2
-pico1ú2
-piezo1h
-piezo1a2
-piezo1e2
-piezo1i2
-piezo1o2
-piezo1u2
-piezo1á2
-piezo1é2
-piezo1í2
-piezo1ó2
-piezo1ú2
-piro1h
-piro1a2
-piro1e2
-piro1i2
-piro1o2
-piro1u2
-piro1á2
-piro1é2
-piro1í2
-piro1ó2
-piro1ú2
-pluri1h
-pluri1a2
-pluri1e2
-pluri1i2
-pluri1o2
-pluri1u2
-pluri1á2
-pluri1é2
-pluri1í2
-pluri1ó2
-pluri1ú2
-poli1h
-poli1a2
-poli1e2
-poli1i2
-poli1o2
-poli1u2
-poli1á2
-poli1é2
-poli1í2
-poli1ó2
-poli1ú2
-poli4u3r
-poli4o5mie
-poli4arq
-poli4árq
-poli4éste
-poli4andr
-poli4antea
-poli4arca
-expoli4
-porta1h
-porta1a2
-porta1e2
-porta1i2
-porta1o2
-porta1u2
-porta1á2
-porta1é2
-porta1í2
-porta1ó2
-porta1ú2
-porta4e3ro
-.pos2t1h
-.pos2t2a2
-.pos2t2e2
-.pos2t2i2
-.pos2t2o2
-.pos2t2u2
-.pos2t2á2
-.pos2t2é2
-.pos2t2í2
-.pos2t2ó2
-.pos2t2ú2
-po4s3impr
-po4s3o2per
-po4s3ind
-po4s3e4lect
-po4s3estr
-.pos3tin
-.pos3tín
-.pos4t3ind
-pos3ta.
-pos3tas.
-pos4t5s
-s3te.
-s3tes.
-s3tal.
-s3ta3les.
-s3ti3lla.
-s3ti3llas.
-s3ti3llón.
-s3ti3llones.
-s3tor.
-s3tora.
-s3toras.
-s3tores.
-.pos3tó3ni
-.pos3terg
-.pos3te3ri
-.pos3ti3go
-.pos3ti3la
-.pos3ti3ne
-.pos3ti3za
-.pos3ti3zo
-.pos3tu3ra
-.pos3tu3la
-.pos3tu3lá
-.pos3tu3le
-.pos3tu3lé
-.pos2t3elec
-.pos2t3impr
-.pos2t3ope
-.pos2t3rev
-.pos2t3rom
-.pos3taci
-.pos3tar
-.pos3tear
-.pos3te3me
-.pos3ta3je
-.pos3te3ler
-.pos3te3ma
-.pos3te3mi
-.pos3te3río
-.pos3te3ta
-.pos3ti3le
-.pos3ti3llo
-.pos3ti3lo
-.pos3ti3lá
-.pos3ti3lé
-.pos3ti3ló
-.posti3nudo
-.posto3res
-.pos3tu3lo
-.pos3tu3ló
-.pos3tón
-.pos3te3mas
-.pos3ti3cer
-.pos3tism
-.pos3tu3reo
-.pos3te3lera
-.pos3teo
-.pos3ti3ll
-.pos3tista
-.pre1h
-.pre1a2
-.pre1e2
-.pre1i2
-.pre1o2
-.pre1u2
-.pre1á2
-.pre1é2
-.pre1í2
-.pre1ó2
-.pre1ú2
-.pre4ámbul
-.pre4o3cup
-.pre4o3cúp
-.pre4ordin
-.pre4ordín
-.pro1h
-.pro2a2
-.pro2e2
-.pro2i2
-.pro2o2
-.pro2u2
-.pro2á2
-.pro2é2
-.pro2í2
-.pro2ó2
-.pro2ú2
-.pro3abort
-.pro3etarr
-.pro4hiba
-.pro4híba
-.pro4hibá
-.pro4hibe
-.pro4híb
-.pro4híbo
-.pro4hibi
-.pro4hibí
-proto1h
-proto1a2
-proto1e2
-proto1i2
-proto1o2
-proto1u2
-proto1á2
-proto1é2
-proto1í2
-proto1ó2
-proto1ú2
-psico1h
-psico1a2
-psico1e2
-psico1i2
-psico1o2
-psico1u2
-psico1á2
-psico1é2
-psico1í2
-psico1ó2
-psico1ú2
-3p2sic
-3p2siq
-ptero1h
-ptero1a2
-ptero1e2
-ptero1i2
-ptero1o2
-ptero1u2
-ptero1á2
-ptero1é2
-ptero1í2
-ptero1ó2
-ptero1ú2
-quete1h
-quete1a2
-quete1e2
-quete1i2
-quete1o2
-quete1u2
-quete1á2
-quete1é2
-quete1í2
-quete1ó2
-quete1ú2
-quimio1h
-quimio1a2
-quimio1e2
-quimio1i2
-quimio1o2
-quimio1u2
-quimio1á2
-quimio1é2
-quimio1í2
-quimio1ó2
-quimio1ú2
-quiro1h
-quiro1a2
-quiro1e2
-quiro1i2
-quiro1o2
-quiro1u2
-quiro1á2
-quiro1é2
-quiro1í2
-quiro1ó2
-quiro1ú2
-radio1h
-radio1a2
-radio1e2
-radio1i2
-radio1o2
-radio1u2
-radio1á2
-radio1é2
-radio1í2
-radio1ó2
-radio1ú2
-ranco1h
-ranco1a2
-ranco1e2
-ranco1i2
-ranco1o2
-ranco1u2
-ranco1á2
-ranco1é2
-ranco1í2
-ranco1ó2
-ranco1ú2
-.re2a2
-.re3e4
-.re2i2
-.re2o2
-.re2u2
-.re2á2
-.re2é2
-.re2í2
-.re2ó2
-.re2ú2
-ea3cio.
-ea3cios.
-ea3cia.
-ea3cias.
-.re3abr
-.re3ábr
-.re3abiert
-.re3absor
-.re3absór
-.re3admis
-.re3admit
-.re3admít
-.re3afirm
-.re3afírm
-.re3agrav
-.re3agráv
-.re3acondic
-.re3acuñ
-.re3acúñ
-.re3ajust
-.rea3júst
-.re3alegr
-.re3alégr
-.rea3liza
-.rea3lizá
-.rea3líza
-.re3alim
-.rea3lism
-.rea3list
-.re3aloj
-.re3alój
-.re3alq
-.re3anim
-.re3aním
-.re3ama
-.re3áma
-.re3amá
-.re3ame
-.re3áme
-.re3amé
-.re3amo
-.re3ámo
-.re3amó
-.re3aparec
-.re3aprend
-.re3aprénd
-.re3apret
-.reapríet
-.rei3no
-.re3ubica
-.re3ubíca
-.re3ubicá
-.re3ubico
-.re3ubicó
-.re3ubiq
-.re3ubíq
-.reu3mati
-.reu3máti
-.reu3nir
-.reu3nír
-.reu3nia
-.reu3ní
-.reu3nis
-.reunim
-.reu3ná
-.reu3nie
-.reu3nié
-.reu3nid
-.reu3nió
-.re3unif
-.re3usar
-.re3usár
-.re3utiliz
-.re3utilíz
-.re3a2eg
-.re3a2q
-.re3a2z
-.re3asum
-.re3asúm
-.re3a2grup
-.re3i2m
-.re3inc
-.re3inic
-.re3inf
-.re3ing
-.re3inv
-.rei3na
-.re3ins
-.re3int
-.re3o2b
-.re3orient
-.rei3vind
-.re3oc
-.re4o3j
-.re3orga
-.re3unt
-.reu3ma
-rete1h
-rete1a2
-rete1e2
-rete1i2
-rete1o2
-rete1u2
-rete1á2
-rete1é2
-rete1í2
-rete1ó2
-rete1ú2
-rmano1h
-rmano1a2
-rmano1e2
-rmano1i2
-rmano1o2
-rmano1u2
-rmano1á2
-rmano1é2
-rmano1í2
-rmano1ó2
-rmano1ú2
-retro1h
-retro1a2
-retro1e2
-retro1i2
-retro1o2
-retro1u2
-retro1á2
-retro1é2
-retro1í2
-retro1ó2
-retro1ú2
-romo1h
-romo1a2
-romo1e2
-romo1i2
-romo1o2
-romo1u2
-romo1á2
-romo1é2
-romo1í2
-romo1ó2
-romo1ú2
-salva1h
-salva1a2
-salva1e2
-salva1i2
-salva1o2
-salva1u2
-salva1á2
-salva1é2
-salva1í2
-salva1ó2
-salva1ú2
-seleno1h
-seleno1a2
-seleno1e2
-seleno1i2
-seleno1o2
-seleno1u2
-seleno1á2
-seleno1é2
-seleno1í2
-seleno1ó2
-seleno1ú2
-semi1h
-semi1a2
-semi1e2
-semi1i2
-semi1o2
-semi1u2
-semi1á2
-semi1é2
-semi1í2
-semi1ó2
-semi1ú2
-i2a.
-i2as.
-2ótic
-emi2o2
-servo1h
-servo1a2
-servo1e2
-servo1i2
-servo1o2
-servo1u2
-servo1á2
-servo1é2
-servo1í2
-servo1ó2
-servo1ú2
-2seudo1h
-2seudo1a2
-2seudo1e2
-2seudo1i2
-2seudo1o2
-2seudo1u2
-2seudo1á2
-2seudo1é2
-2seudo1í2
-2seudo1ó2
-2seudo1ú2
-o2os.
-.so3a4s
-sobre1h
-sobre1a2
-sobre1e2
-sobre1i2
-sobre1o2
-sobre1u2
-sobre1á2
-sobre1é2
-sobre1í2
-sobre1ó2
-sobre1ú2
-sobre3a4sa
-sobre3a4sas
-socio1h
-socio1a2
-socio1e2
-socio1i2
-socio1o2
-socio1u2
-socio1á2
-socio1é2
-socio1í2
-socio1ó2
-socio1ú2
-4a3rio.
-4a3rios.
-4a3ria.
-4a3rias.
-3logía
-4ón.
-4ones.
-4i4er.
-4o2ico.
-4o2icos.
-4o2ica.
-4o2icas.
-.su2b1h
-.su2b2a2
-.su2b2e2
-.su2b2i2
-.su2b2o2
-.su2b2u2
-.su2b2á2
-.su2b2é2
-.su2b2í2
-.su2b2ó2
-.su2b2ú2
-.sub3acuát
-.subi3ll
-.su3bi3da
-.su3bi3dor
-.su3bi3do
-.su3bi3dón
-.su3basta
-.su3básta
-.su3bastá
-.su3baste
-.su3básté
-.su3basto
-.su3bástó
-.sub3índ
-.sub3ími
-.su4b3ray
-.sub3acepc
-.sub3acet
-.sub3aflue
-.sub3alcai
-.sub3arr
-.sub3ártic
-.sub3atómic
-.sub3ejecut
-.sub3elemen
-.sub3emple
-.sub3enten
-.seb3entrad
-.sub3espec
-.sub3estac
-.sub3estim
-.sub3estím
-.sub3estruc
-.sub3occipit
-.sub3ofici
-.su3bordin
-.su3bordín
-.sub3urba
-.sub3aliment
-.su3balter
-.sub3insp
-.sub3intenden
-.su3bir
-.su3bír
-.su3bién
-.su3bi3mien
-.su3bier
-.su3bies
-.su2r1est
-.su2r1oes
-supe2r3r
-supe2r1h
-supe2r1a2
-supe2r1e2
-supe2r1i2
-supe2r1o2
-supe2r1u2
-supe2r1á2
-supe2r1é2
-supe2r1í2
-supe2r1ó2
-supe2r1ú2
-ra5ra
-ra5rá
-ra5re
-ra5ré
-ra5rí
-ra5ro
-supe3r4a4r
-supe3r4á4r
-supe3r4á3vit.
-supe3r4á3vits.
-super4ior
-4a3ción.
-4a3ciones.
-4e3rior.
-4e3riores.
-4e3riora.
-4e3rioras.
-4e3riormente.
-4e3rioridad.
-4e3rioridades.
-4e3r4a3ble.
-4e3r4a3bles.
-4e3r4a3blemente.
-pe5r4ante
-perpon5d6r
-supra1h
-supra1a2
-supra1e2
-supra1i2
-supra1o2
-supra1u2
-supra1á2
-supra1é2
-supra1í2
-supra1ó2
-supra1ú2
-sup6ra
-talmo1h
-talmo1a2
-talmo1e2
-talmo1i2
-talmo1o2
-talmo1u2
-talmo1á2
-talmo1é2
-talmo1í2
-talmo1ó2
-talmo1ú2
-tele1h
-tele1a2
-tele1e2
-tele1i2
-tele1o2
-tele1u2
-tele1á2
-tele1é2
-tele1í2
-tele1ó2
-tele1ú2
-4ósteo.
-4ósteos.
-tecno1h
-tecno1a2
-tecno1e2
-tecno1i2
-tecno1o2
-tecno1u2
-tecno1á2
-tecno1é2
-tecno1í2
-tecno1ó2
-tecno1ú2
-.tele1imp
-.tele1obj
-.tele4o3lót
-tera1h
-tera1a2
-tera1e2
-tera1i2
-tera1o2
-tera1u2
-tera1á2
-tera1é2
-tera1í2
-tera1ó2
-tera1ú2
-termo1h
-termo1a2
-termo1e2
-termo1i2
-termo1o2
-termo1u2
-termo1á2
-termo1é2
-termo1í2
-termo1ó2
-termo1ú2
-tetra1h
-tetra1a2
-tetra1e2
-tetra1i2
-tetra1o2
-tetra1u2
-tetra1á2
-tetra1é2
-tetra1í2
-tetra1ó2
-tetra1ú2
-topo1h
-topo1a2
-topo1e2
-topo1i2
-topo1o2
-topo1u2
-topo1á2
-topo1é2
-topo1í2
-topo1ó2
-topo1ú2
-.tra2s1h
-.tra2sa2
-.tra2se2
-.tra2si2
-.tra2so2
-.tra2su2
-.tra2sá2
-.tra2sé2
-.tra2sí2
-.tra2só2
-.tra2sú2
-tras1abuel
-tras1alcob
-tras1alp
-tras1altar
-tras1andin
-tras1atlánt
-tras1oceán
-tra3se3ro.
-tra3se3ros.
-tra3se3ra.
-tra3se3ras.
-.tra3su3da
-.tra3su3dá
-.tra3su3de
-.tra3su3dé
-.tra3su3do
-.tra3su3dó
-.tra3sunta
-.tra3suntá
-.tra3sunte
-.tra3sunté
-.tra3sunto
-.tra3suntó
-.tra3so3ñ
-.tra3se3g
-.tra3sieg
-tran2s1h
-tran2sa2
-tran2se2
-tran2si2
-tran2so2
-tran2su2
-tran2sá2
-tran2sé2
-tran2sí2
-tran2só2
-tran2sú2
-trans3aminas
-tran2s1and
-tran2s1atl
-tran2s1oce
-tran2s1ur
-tran3sacci
-tran3sactiv
-tran3seún
-tran3se3xu
-tran3si3berian
-tran3si3cion
-tran3si3ción
-tran3sido.
-tran3sidos.
-tran3sida.
-tran3sidas.
-tran3si3gi
-tran3si3gí
-tran3si3ge
-tran3si3ja
-tran3si3já
-tran3si3jo
-tran3silvan
-tran3sisto
-tran3si3ta
-tran3si3tá
-tran3si3te
-tran3si3té
-tran3si3to
-tran3si3tó
-tran3si3tiv
-tran3si3tori
-trans3oraci
-tran3subst
-tran3sust
-.tri1ó2x
-tropo1h
-tropo1a2
-tropo1e2
-tropo1i2
-tropo1o2
-tropo1u2
-tropo1á2
-tropo1é2
-tropo1í2
-tropo1ó2
-tropo1ú2
-turbo1h
-turbo1a2
-turbo1e2
-turbo1i2
-turbo1o2
-turbo1u2
-turbo1á2
-turbo1é2
-turbo1í2
-turbo1ó2
-turbo1ú2
-ultra1h
-ultra1a2
-ultra1e2
-ultra1i2
-ultra1o2
-ultra1u2
-ultra1á2
-ultra1é2
-ultra1í2
-ultra1ó2
-ultra1ú2
-vice1h
-vice1a2
-vice1e2
-vice1i2
-vice1o2
-vice1u2
-vice1á2
-vice1é2
-vice1í2
-vice1ó2
-vice1ú2
-video1h
-video1a2
-video1e2
-video1i2
-video1o2
-video1u2
-video1á2
-video1é2
-video1í2
-video1ó2
-video1ú2
-xeno1h
-xeno1a2
-xeno1e2
-xeno1i2
-xeno1o2
-xeno1u2
-xeno1á2
-xeno1é2
-xeno1í2
-xeno1ó2
-xeno1ú2
-xero1h
-xero1a2
-xero1e2
-xero1i2
-xero1o2
-xero1u2
-xero1á2
-xero1é2
-xero1í2
-xero1ó2
-xero1ú2
-xilo1h
-xilo1a2
-xilo1e2
-xilo1i2
-xilo1o2
-xilo1u2
-xilo1á2
-xilo1é2
-xilo1í2
-xilo1ó2
-xilo1ú2
-zoo1h
-zoo1a2
-zoo1e2
-zoo1i2
-zoo1o2
-zoo1u2
-zoo1á2
-zoo1é2
-zoo1í2
-zoo1ó2
-zoo1ú2
-wa3s4h
-3grafo.
-3grafa.
-3grafos.
-3grafas.
-3grafía.
-3grafías.
-o4i3dea.
-o4i3deas.
-o4i3dal.
-o4i3dales.
-4o2i3de.
-4o2i3des.
-4i2dal.
-4i2dales.
-4i3deo.
-4i3deos.
-i2o.
-i2os.
-2i3co.
-2i3cos.
-2i3ca.
-2i3cas.
-4e3dro.
-4e3dros.
-4é3drico.
-4é3dricos.
-4é3drica.
-4é3dricas.
-4í3ble.
-4í3bles.
-3hablante
-3habiente
-5humano
-5humana
-3a4ficionad
-3a4merican
-su2d3a4merican
-su2r3a4merican
-3e4lectr
-3e4léctr
-di4e5lec
-di4e5léc
-5i4ndustr
-5islámi
-5islami
-5ingenier
-5técnic
-5biología
-5céntrico
-5e4cuatorial
-7u4niversid
-5u4niversit} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-et.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-et.hyp
deleted file mode 100644
index 33a2c24396f..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-et.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-et.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-et.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-et.pat
deleted file mode 100644
index 024e7610dd0..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-et.pat
+++ /dev/null
@@ -1,3698 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-et.rme
-
-% used: a b d e f g h i j k l m n o p r s t u v z ä õ ö ü š ž
-
-\patterns{
-.aa4
-.aasta5
-.ahe4li
-.al4a
-.al4gas
-.antiik5
-.ap3l
-.ap3r
-.art5r
-.au3a
-.eba3
-.ee4
-.eela4
-.ek3l
-.ek5r
-.gu4a
-.hie5
-.idi4
-.inim5a
-.ise5e
-.is4o
-.ja4e
-.ja4t
-.ka4e
-.ka2o
-.ke5hi
-.kip5r
-.ku4pl
-.ku5sa
-.kusee4
-.la4pl
-.le4e
-.le5hi
-.lemmik5
-.le5se
-.lõpp3
-.ma4a
-.maa5a
-.ma5j
-.mi5sa
-.mo4e
-.nek3
-.ni4p
-.nisu5
-.noa3
-.oa3
-.oo4
-.pap4p
-.pea3a
-.raadio5
-.re4a
-.re2o
-.rep3r
-.re5so
-.rü5hi
-.sak5r
-.sap3r
-.se4a
-.sk4
-.skaa5
-.so5li
-.sp4
-.st4
-.teoo4
-.tet3r
-.tina5
-.toa3
-.ts4
-.tsi4s
-.turba5
-.tus2
-.tu3sa
-.ul4ga
-.ulu4k
-.um2b
-.uu4
-.vaa3l
-.vask3
-.vere3
-.õppe5
-.ää4
-.õõ4
-.öö4
-.ühi4s
-.üle3e
-.ür2
-.üü4
-aaa5l
-a1aas
-4aab
-aa4bi.
-5aadel.
-aadio5a
-a1ae
-a4aer
-aa4fe
-aa4gan
-aa2h
-aa4has
-aa1i
-aai4g
-aa4is
-a5ait
-aa2j
-aa2la
-aa4lae
-aala4r
-aa4las
-aa4leh
-aa4lek
-aa4lel
-aalg4
-aali4ke
-aal3k
-a5allik
-aal3t4
-aa2l3õ
-aa4lü
-aa4mad
-aa4man
-aa4mee
-a5ameer
-aa4mö
-4aan
-aa4nam
-aa4nat
-a5andm
-aan4duu
-aa5ni
-aant4
-aa4pek
-aa4pen
-aa4ra4b
-aa4raf
-aa4raj
-aara4l
-a5arter
-aa2r3õ
-aa4rö
-aa4rü
-aa4sab
-aa4sai
-aa4sar
-aa2se4
-aa4so
-3aas5ta
-a5a4sul
-aa4sut
-aa4sü
-4aat
-aa4taa
-aa4tas
-aa4teh
-5aatom
-aa4tõ
-aa4tüh
-a1au
-aaši5
-a1b
-4a3ba
-a5be
-3abie
-a4bij
-5abs
-a1d
-a4dad
-a4deo
-a2der
-a3di
-adu4r
-adu3se
-a4dö
-a5eali
-ae2d
-3aed.
-2aee
-a3ees
-ae4f
-1aeg.
-ae4ga4j
-ae4gi
-3aegn
-2a1e2h
-4aei
-4aek
-a3eks
-2ael
-a5elani
-ae2le
-ae4lo
-ae4lu.
-4ae2m
-4aen
-ae4pi
-ae2s
-a3esi
-4aett
-a1f
-a4fek
-a1g
-3a4gent
-agia4
-a3go
-5agreg
-agud4
-1a2hi.
-ah4kar
-5ahnu
-4ai.
-ai2a
-5aian
-ai4hu
-ai4ke
-ai4kl
-a3ilm
-ai4lu
-ai4me.
-aimp4
-4ain.
-a5inf
-a5inime
-4ains
-a3inse
-ai4pr
-ai2sa
-5aistin
-aist4r
-ai4va
-a1j
-a3ja.
-a4jale
-5ajalo
-a4jalu
-1a2jam
-4ajo
-ajut4
-a1k
-akaa4s
-a4kaat
-ak4as
-3aken.
-a3ki
-ak4kis
-ak4kr
-a3klas
-ak4lau
-a5klii
-a3krii
-ak3ro
-4aks
-ak4te4l
-a2ku.
-aku4map
-a5kvali
-3alald
-ala4mas
-a4laüh
-ale4le
-al4et
-alet4t
-5algat
-al4ged
-a3li
-ali4san
-a4liste
-5allee.
-al4le4h
-al4luj
-al2lü
-a4lob
-als4
-4alt
-4alu.
-a4lud
-1alun
-alü4h
-a4lüt
-a1m
-4am.
-a5ma.
-a4maad
-3ametn
-amit4
-am4o
-am4pal
-5amper.
-4amü
-2an.
-3analü
-5anatoom
-an4das
-an4deo
-an4dog
-2ane
-a4neh
-a3ni
-a4niso
-4anj
-an4kr
-3anku
-an4nah
-4ano
-anos4
-3ansam
-4anst
-3anten
-5antilo
-ao4d
-ao4he
-a3oht
-ao4j
-ao2le
-ao2lu
-ao2m
-a3oma
-ao4nu
-aoo4p
-ao2pe
-a5opera
-ao2r
-a5oras
-a1osa
-ao4su
-a1ots
-a1p
-a2par
-5aparaa
-a5part
-a3parv
-a3pi
-a3pla
-a3po
-ap4pal
-ap4pin
-ap4pis
-ap3ri
-ap3ron
-a4pru
-a3pä
-4ara
-arak4k
-a4rase
-5areng
-3aretu
-3arhit
-2ari
-ari4al
-ari4ap
-4ark
-ar4kel
-5armast
-5armee.
-a4ro4l
-1arst
-5artikk
-3arua
-3arvam
-5arvestus
-1arvu
-ar4vää
-asa4las
-a4same
-a4sau
-ase4ma
-as5ema.
-1a2sen
-a4seos
-a4sese
-a4sett
-3a4setu
-as4fä
-1a2si.
-asi4ala
-asi3an
-a4sind
-asip4
-5asjan
-askõ4
-as4kõl
-a5slaav
-a4sok
-as3ole
-aso4p
-as4pet
-as3pl
-as2po
-a3spor
-as4san
-ass5t
-4asti
-5astme
-ast4rak
-a4su4b
-a4sud
-asui4
-a4suss
-a5suu
-a1t
-a3ta
-a4taž
-5ateljee
-atii4v
-atmi4k
-5atroo
-at4ros
-at4rus
-at4soo
-ats4p
-at4sü
-att4s
-4atu
-au2a
-aua3l
-au4ba.
-4aud
-au4de.
-a3ui
-4au2j
-au4ke
-aulu3
-aulus4
-au4pü4
-a5urg
-aus4o
-au2su
-a3usul
-1auto
-autoo4
-auto5s
-aut4r
-a1v
-av4a
-a4vans
-a3var
-a4veh
-a1õ2
-a1ö2
-a1ä2
-a1ü2
-až4ni
-4a1š
-5baa
-baa4g
-baa4k
-baa4s
-bab4
-bae4
-bag4
-ba4he
-ba4ju.
-ba3k4r
-bak4s
-bak4v
-bap4l
-bap4r
-ba4rõ
-basa4s
-bas4ko
-bas4pe
-bat4r
-4bb
-2bd
-be3a4
-beb2
-bef4
-beg4
-be4lü4
-be2ra2
-berk4
-bero4
-be4rõ4
-be4si
-be4st
-bes4tis
-bet4r
-4bf
-4bh
-bha4
-bi4ala
-bia4v
-2bi1e
-bi4en
-4binõ
-bi4pla
-bis4a
-bi4si
-bis4k
-2b1j
-2b1k
-2b1l
-bl4e
-blet4
-b2lon
-2bm
-2bn
-4bort
-2bp
-2b1r
-3brig
-bros4
-2bs
-b3so
-2bt4
-4buks
-bu4lõ
-3bum
-buse5
-bu4si4
-bus4kr
-2b3v
-1da
-daa2
-da5ab
-daala4
-da4do
-dae4
-daf4
-d5ain
-da4leh
-da4lum
-da4lus
-5dam
-4dann
-da4num
-dao4
-darat4
-4darb
-dar4de
-4da4re
-4daru
-2darv
-d3arv.
-4dasen
-da4sum
-2d5b2
-2dd
-1de
-dea2
-2deaa
-de5av
-ded4
-2dee.
-dee4le
-4dehe
-dek3l
-dek4s
-5del.
-de4lau
-4de4lek
-4deluv
-de4pr
-dep5ressi
-dere4
-de4rel
-de4rep
-5dero
-deru4
-2df
-2d5g
-2d1h
-1di
-dia4v
-did4
-dig4
-dii4g
-diina4
-dii4sa
-dii4su
-4dilm
-4dini
-di2os
-di4plo
-dis4ai
-di4sar
-di4sas
-dis4pr
-dit4r
-2d1j
-2d3k4
-dkop4
-2d1l
-dle4v
-dlust4
-2d1m
-dmee4
-dmi4k
-2d1n
-1do
-do4h
-doi4r
-2dos
-d3osa
-5dosk
-2d3p4
-2d1r4
-5draama.
-drao4
-3dreen
-d4rel
-d2ren
-3drena
-2d1s4
-dsar4
-2d3t2
-1du
-du4b
-due4
-2d5uks
-d4u2s
-du4s1a
-du4see
-dusk4
-2d1v
-2dõ
-dõ4l
-4dä
-2dül
-dü4li
-4dü4r
-5düü
-4dž
-2d2š
-3dšem
-eaa2
-ea3aj
-e1aas
-ea2b
-e3abi
-e1ae
-ea2hi
-e1ai
-ea2j
-eak4s
-eak4v
-ea2la
-e3ala.
-e1a4lu
-ea2me
-e5amet
-e5ann
-ea4nu
-eao4
-ea2pa
-e1ar
-ea4re
-ea2s
-e4ass
-e5aste
-e5asut
-e3au
-ea2v
-e3ava.
-e1b
-e1d
-ed4a
-e3eali
-e3ees
-ee4fe
-eei4
-eek4r
-ee2la
-3eelar
-e5elekt
-eel5uu
-ee4nai
-ee4nal
-ee4nam
-ee4no
-eent4
-ee4pai
-e5e4pit
-5eepos
-ee4ral
-eer5ap
-ee4ros
-ee4rot
-ee4sin
-e5esine
-ee4s5ist
-5eeskir
-ee4sü
-ee4tõm
-ee4tä
-e1f
-e1g
-egaa4
-egas4t
-e4goi
-4eha
-e2he.
-e2hi
-e3hin
-5ehist
-1e4hit
-5ehiti
-eh4ta4
-4ehä
-ei4dul
-ei4e
-eie5ri
-ei2ga
-e3iga.
-ei4ha
-ei4he
-e3ilm
-ei2lu
-ei4mem
-5eine.
-ei4roo
-e5i4sa.
-ei4sist
-ei4tau
-ei4tõ
-ei4va.
-e3j
-e3ka
-e4kahi
-e3ke
-ek4kap
-ek2l
-ek4lo
-e3k4o
-ek3re
-e3krii
-4eks.
-5eksam.
-3eksem
-eksi3k
-3ekska
-eksp3r
-5ekstr
-ek4tül
-e3kü
-elaa4v
-e4lagr
-e2lam
-3elamu
-el4an
-5elanik
-eleis4
-e4leks
-5elektro
-3eleme
-5elevaato
-e3li
-e4lid
-elii4t
-el4kus
-e4l4ob
-elo4p
-els4t
-elt2r
-el4tü
-e2lu
-1elu.
-e5lub
-elu5i4
-1e4lun
-e3lus.
-e4luss
-el5uss.
-el4üh
-e1m
-5emand.
-e5mat
-emne3
-emos4
-emp4r
-5emuls
-endus3
-5enelas
-e5nem
-3energ
-e4nese
-e4nesl
-enk5l
-enk4r
-en4sal
-en4tos
-en4tü
-eo5a
-eo4ja
-e3o4le
-eo2lu
-eo2ma
-eoo4p
-eo5pl
-e3osa.
-e3osak
-e5osali
-e5osav
-eos4f
-e3ots.
-e1p
-e3pl
-e4pli
-ep4lu
-e1r
-e3raa
-5erakon
-5erald
-e4rao
-erei2
-erek4
-5ergut
-erih4
-eri4uu
-er4nau
-e4ro4r
-erp4
-er2pr
-ers4k
-er4taa
-er4tak
-er4tes
-e4rud
-es1an
-1e2se.
-e5sek
-e5sen
-e5sil
-eska4j
-eska4s
-eske4
-es5kel
-esk3l
-esk3r
-es2k5ö
-es4laa
-es3ole
-es4or
-es2po
-e3spor
-es4sist
-4est
-es4tü
-e3su
-esup4
-e1t
-e3t4a
-e2ten
-5etendus.
-etii4s
-et2ra
-et4sin
-et4soo
-et4sü
-et4taj
-1ette
-et4tru
-et4tä
-et4tü
-4etu
-e4tõ4d
-e4tüm
-eu4de
-e3u2j
-e3u2l
-e5u2n
-eu4p
-eu4s
-e5usk
-e3uu
-e1v
-e3v4a
-e1õ2
-e3ö4
-e1ä2
-e1ü4
-e1š
-5faa
-faa4n
-4fa4d
-2ff
-1fi
-fii4t
-4fj
-4fk
-2f1l
-f2lo
-5floora
-2f1n
-1fo
-folk5
-fo4ro
-2f1r
-f2re
-3frees
-2fs
-2f1t
-ftat4
-3fu
-3gaa
-gaa4r
-4gaast
-4gab
-4gaed
-gag4
-2gah
-ga2hi
-gai4g
-ga5is
-ga3k4
-5gam
-ga3o
-ga3p
-4gart
-4garv
-g4as
-4ga4suk
-5gata
-gat4r
-gau4
-ga4va.
-ga4van
-2g3b
-2gd4
-gea4
-ge4du.
-gek4
-ge5kl
-4gekse
-ge4lah
-gela4s
-ge4leh
-ge3lu
-ge4lä
-ge4nan
-geok4
-ge4or
-4geos
-4gerg
-ge4rus
-4gf
-4gg
-2g1h
-gi2aj
-gii4s
-gi3k
-4ginf
-4gint
-gio4r
-gi3pl
-gi4san
-gi4sil
-gi4sö
-git4r
-gi4vaj
-2g1j
-2g1k
-2g1l
-g4lüt
-2g1m
-2g1n
-gne4ta
-gne4te4
-4goh
-go4le
-go4ma
-go4po
-2g1p4
-2g1r
-g2ran
-5granaa
-3g2rav
-g2ru
-3grup
-4g1s4
-2g1t2
-g3tr
-3gu
-gub4
-gue4
-gu5i
-gu4nel
-gu3o
-gup4
-gu4sen
-gu4sä
-guu4j
-2g1v
-2g3õ4
-4gä
-gü4l
-3ha
-haa4ri
-haa4s
-hal4lai
-5har
-hasa4
-hat4r
-1he
-hee4m
-hee4s
-hei4s
-hek4v
-2hel.
-hels4
-het4r
-4h1h
-hhe4l
-1hi
-hia2
-hii4s
-5hil
-5him
-hio2
-hi4san
-hi4sar
-hise4l
-hi4st4
-hi4sü
-5hits
-h1j
-hjaa4
-4hk
-h4kal
-h4kas
-h4kis
-hk3l
-h4ko4
-hk3r
-hks4
-hkt4
-h4kusk
-h4ku4su
-h4kõ
-h4kä
-h1l
-hle4n
-4h1m
-h4mo4
-h4mü
-h1n
-hnika5
-1ho
-hom4o
-4hp4
-hrs4
-4ht
-h2ta
-hta2j
-h5tak
-hta4l
-ht5ar
-hta4su
-h4teg
-hte4n
-hte4r
-h4tid
-h4to
-h4tr
-ht5s4
-h4tö
-h4tä
-1hu
-hu3a
-hue4
-hui4d
-huk4l
-hup4
-hu3sa
-2h1v
-hvad4
-hvast4
-hve4l
-h4vini
-h4vo
-hvu4s
-1hõ
-3hö
-1hä
-3hü
-4ia
-iaa2
-iaa4l
-ia5alane
-i3aast
-i5a4bi
-ia4bo
-i1ae
-ia2g
-ia2h
-i3aine
-i1a2j
-ia4kr
-i3akt
-i1a2la
-i5alb
-i3alli
-i1a2lu
-ia2me
-i5amet.
-ia2na
-i5andj
-i5andm
-ia4ne
-i5anne
-ia2p4
-i3apar
-ia5pr
-ia2re
-i3arm
-ia4ru
-i1arv
-ia2s
-ias4ke
-i5aste.
-i3asu
-ia4tel
-iat4r
-i1au
-iau4l
-i5a4vaj
-i5avald
-i1b
-i4bad
-i4bau
-i1d
-5ideaa
-idii4
-idlu4
-ie2
-i3eali
-i1eel
-iei4
-i1eks
-i5elani
-i1elu
-i3eos
-ie4ri
-iers4
-i3esi
-ie5so
-i5ess
-ie4st
-i3eten
-ietu4s
-i1f
-i1g
-i4ga4g
-i5gar
-5igatsu
-i4gav
-ig4ram
-ih4le
-ih4te
-ih4tin
-ii4a
-ii4deo
-ii4du.
-iie3
-ii4es
-ii4gaa
-ii4ga4s
-ii4ha
-iika4
-ii4kis
-iik4ro
-iiks4t
-iikt4
-ii4lab
-ii4lad
-ii4lae
-ii4last
-ii4leh
-ii4lel
-ii4les
-ii2lõ4
-ii4lü
-ii4mai
-iimat4
-ii4met
-ii4nai
-ii4nau
-i5inde
-i5inf
-ii3ni
-i5inimen
-iinit4
-iink4
-iino4
-ii4nol
-ii4nos
-ii4nõ
-ii4pr
-ii4ran
-ii4rau
-iirs4
-ii4rü
-ii4san
-iise4l
-ii4sev
-ii4sik.
-ii2ta
-ii4teh
-iito4
-ii4tom
-ii4tos
-iit5re
-ii4tõ
-ii4tü
-ii4ves
-ii4vet
-ii2vo
-i1j
-i1k
-i4kalu
-i4ka4re
-i4kark
-i4kaut
-i4k5elu
-ike4si
-i3klaa
-i3klas
-ik4ler
-i5klub
-ikop4
-ikos4
-i4kov
-i3kre
-ik3ro
-ik4sar
-iks4k
-iks4po
-ik3t2r
-i3ku
-iku3a
-il4a
-ila4s
-i4lasi
-ilia4
-i4lisi
-il4kan
-il4kõ
-ille5s
-illo4
-5ilme.
-il4mot
-3ilmut
-ilo5g2
-ilp3l
-il4ti
-i5lun
-ilu3sa
-5ilustu
-ilü4h
-i1m
-i4melu
-imi4g
-imisu4
-i4mo4l
-5imper
-i1n
-ind3al
-5indeks
-inde4r
-ind4re
-2ine
-inee4s
-i4neh
-i4neks
-ini4kü
-i2nim
-ini4mas
-i4nime
-5inimene
-5iniml
-i4nini
-inna5a
-inni4si
-3insen
-1insp
-1inst
-3inven
-io4de
-io4h
-i3oht
-i5ohv
-io4j
-i5oks.
-io2le
-i3olek
-io2lu
-i5oluk
-io4lü
-io2ma
-i5oman
-ioo4da
-ioo4ne
-iooni3
-io2p
-i3oper
-i5ork
-i1osa
-ios4f
-ios4p
-ios4t
-iost4r
-io4su
-i3ots.
-i3otsi
-io4tü
-i1p
-i3pla
-ip4lu
-ip4ro
-ip4sas
-ipse4
-ip4sep
-ip4sus
-i4ra4b
-i4rase
-ir4dis
-ir4nõ
-i2rui
-iruu4
-isaa4v
-isa4ja
-i4sana
-isa4re
-i4sarh
-i4selo
-i3sem
-iset4s
-isi4g
-i2so
-3isola
-i5soli
-is5oma
-iso4r
-i3sot
-i3s4pek
-is3pl
-i3s4por
-is3sp
-5istand
-i5s4tiil
-5istme
-ist4ru
-ist4se
-i5stsee
-5istutu
-i3su
-i4sõm
-i2sü4l
-isü4r
-2it
-itaa2
-itee4l
-it4rak
-it4ras
-it2ru4
-its3k
-it4so
-itte1
-itt4s
-iu4b
-iu2da
-iu4gi
-iu2j
-i3uju
-iu4la
-iu4mar
-iu4me4
-iu2mo
-iu4ni
-iu4pu
-iu5sa
-i5uss.
-iu2su
-iuti4
-i3uu
-i1v
-i4vad
-i4vakt
-i4va4lus
-i4vant
-i4vau
-i4veh
-ive4l
-iviil5
-i4vü
-i1õ2
-i1ä4
-i1ü2
-i1ž
-j4a
-3jaa
-ja1aj
-jaa4l
-jaa4r
-jaa4s
-jab4
-jad4
-ja5el
-jae4r
-jag4
-ja3i2
-ja5kra
-5jama
-5jame
-jao4h
-ja3p4
-jas4ke
-jas4tii
-jat4r
-jat4su
-jau4b
-jau4l
-je3lu
-3jo
-joo4k
-jue4
-5juma
-ju4sei
-juse4l
-5jõ
-5jä
-1ka
-kaa4da
-kaa3de
-ka5aj
-ka4al
-kaa4ra
-kaa4sis
-kaa4ta
-4kader
-4kaed
-4kaeg
-kae3lu
-kag4
-kahe5i
-4kaia
-2kain
-ka5ist
-kaitse5
-ka4jav
-ka4ju.
-k5a4lus
-ka4pl
-ka2pr
-4karm
-4kaset
-k5asj
-kat4r
-2k3b
-2kd4
-1k2e
-ke4el
-kee3lu
-2kehi
-4keks
-ke4laj
-ke4lak
-ke4lok
-4kemb
-2ken.
-5kene
-keo2
-kes2k
-kesk3a4
-ket5ra
-ket4te4
-2kf4
-4kg
-2k1h4
-1ki
-kie4
-kik4r
-4kinf
-kio4
-ki4pr
-kis4a
-ki4san
-ki4sik
-4kiste
-kit4r
-kiu4d
-kiu3su
-2k1j
-4k1k
-k3kra
-kks4
-kku4ro
-2k1l4
-k2la
-k3la.
-3klaas
-k3lai
-3k4lamb
-k3lan
-3klapp
-5klassi
-k3lat
-5klaver
-kle4a
-k4lee
-k2lei
-3kleit
-k3lem
-k4lib
-5klibu
-klig4
-k2lii
-3kliim
-5kliiste
-k3lik
-k3lin
-k4link
-k2lo
-k3loom
-3klots
-k2lub
-k3lus.
-klu4sa
-klu4sõ
-k4lut
-2k1m
-2k1n
-knaa4
-k4nip
-1ko
-2koks
-k4ol
-ko4len
-koo4sa
-4ko4rie
-4korpi
-k5osa.
-ko4va
-2k3p4
-2k2r
-k4raan
-5kraana
-3kraav
-3krab
-3k4rae
-k3rai
-3kramp
-4kran
-k3rau
-5kredii
-3k4reem
-4kreg
-5k4res
-k5ret
-4krip
-5kristal
-k4roh
-3krohv
-k4rook
-k3rut
-3kruu
-3kruvi
-4k3rü
-4k1s
-k5sae
-k4sai
-ksek4
-ksi2k
-ksika4
-ksit4
-ksk4l
-ks5kõ
-ksp5lo
-ks2pr
-kst3r
-ks4tü
-2kt
-kt2ra
-1ku
-kui4s
-4kujuj
-4kujum
-kuk3la
-4kuks
-kul2d
-2kulp
-kumi4su4
-kummi5
-3kus
-ku4siv
-kut4r
-kuu4ni
-kuuse5
-4kuž
-2k1v
-k4van
-3kvart
-5kviitu
-1kõ
-kõ4de.
-2kõi
-k5õis
-4kõp
-1kö
-4köd
-1kä
-käi5s
-2käk
-4käm
-1kü
-2kühe
-4küle
-4küll.
-2kž4
-4kš
-1la
-5laag
-la4aj
-laa2r
-laar5a
-laa4sa
-2laav
-5laava
-4ladj
-5ladu
-lae4r
-3laev
-4lahv
-lai5ek5
-lai4ga
-la4jap
-la4jav
-la3k4r
-lak4v
-la4la.
-4lald
-la4les
-4lals
-la4lus
-3lama
-3lamp
-4lams
-la4nes
-2lani
-lap4l
-4l1arv
-4larü
-la4sas
-4lasb
-la4sei
-la4sem
-4lasen
-l2asi
-4la4sut
-3lau
-5laud
-lau4n
-lau5su
-4lavh
-2l1b
-l4bau
-lb4lo
-4l1d
-l4dala
-l5dist
-l4don
-l4dü
-1le
-le1a2
-3lee
-leek5l
-lee4le
-leep5r
-le3hi
-4lehit
-5leht
-3lej
-4lekk
-5leks.
-4lektr
-lektri5
-4lele
-le4lek
-5lema.
-le4mor
-lenaa4
-leo2
-le3oh
-le5olu
-le4pl
-le2s
-4lese.
-le3sõ
-3let
-4lette
-4l1f
-lfoo4
-lf4t
-l1g
-l4gae
-l4gai
-l4gall
-l4gann
-l4gase
-lgas4k
-l4ge4le
-l4gi4d
-l2go
-l4gu4j
-2l1h
-1li
-li4ala
-li5am
-lia4v
-3lid
-li4dan
-li4ga.
-4liia
-liie4
-5liig
-lii4na
-5lik.
-likai4
-li3kla
-lik4ro
-4lilm
-4li4lus
-limi4s
-4linf
-4linim
-4lins
-lin4te
-4linv
-lio4k
-li3p4l
-li4sah
-li4sik
-4lisol
-li4suj
-li4sõl
-li4sö
-lit4r
-li5tu
-2liže
-2l1j
-lja1a
-lja5os
-2l1k
-lkk4
-l4kli
-lk4lu
-l3kr
-2l1l
-l5ler
-lli3tr
-l2lor
-l4lots
-llp4
-lls4
-llt4
-l3lu
-l4lää
-2l1m
-lmaa4v
-lmat4
-l4mau
-l4meks
-lmp4
-2l1n
-1lo
-lod4r
-lof4
-lo4gal
-4loha
-4lohv
-5loi
-lok4r
-2lo2l
-l1ole
-l3olij
-3lolo
-lo4man
-5loog
-loo4ram
-4lord
-4lorn
-2losa
-l3osa.
-2l1p
-l3plaa
-lp4le
-l4puk
-2l1r
-lrih4
-2l1s
-ls4ka
-lske4
-ls4o
-lste4
-2lt
-l4tau
-lti4l
-l4tok
-lt4sel
-lt4sis
-l4tuk
-l4tõm
-l4tää
-l4tüt
-1lu
-3lua
-lu3al
-lud4
-lue4
-3lug4
-4luhk
-4luim
-lu4juk
-4luk.
-3lukk
-2lun
-lu4nin
-lu4nio
-luo3r
-lu4rau
-lu4see
-lus4tii
-lu4sum
-lu4sö
-3luta
-lut4r
-3luu
-2l1v
-lvel4
-1lõ
-4lõd
-4lõie
-5lõik
-4lõis
-4lõit
-lõ4l
-lõ3pe
-lõp2p
-1lö
-4löe
-1lä
-4län
-län4gi
-lääne5
-1lü
-lü3h
-lü4ma
-1ma
-3maa
-maa2b4
-ma3abi
-maa3la
-maa3p
-ma4bi
-ma1e2
-mag4l
-5mahl
-4mahv
-4majam
-4ma4ju.
-ma3kl
-mak4v
-3mal
-ma4la.
-mal4ma
-ma4om
-ma3pl
-4mart
-4marv
-ma5se
-ma5sin
-ma4st
-4ma4sul
-ma4sä
-4maut
-2m1b
-mbat4
-mbe2r3
-mblu4
-mbo4j
-mb5usa
-2md4
-1me
-me1a4
-me4an
-3mee
-mee5la
-mee4s
-me3hi
-4mekv
-mers4
-mert4
-me5s4o
-m4et
-4met.
-4metl
-2metn
-met4se
-4mett
-me5u4
-2m1f
-4mg4
-2m1h
-1mi
-mia4m
-mia4r
-4mide
-mi4kaj
-mi4nah
-4minf
-mi3ni
-mip4
-mi2s
-mis1a2
-mi3si
-mi4sig
-mi4sih
-4mi4sik
-mi4sil
-mis3k4
-mis4tii
-mist4r
-mis3ts
-mitte3
-2m1j
-2m3k4
-2m1l
-2m1m
-m4maat
-mma4s
-mm4e
-mme4r
-mmika4
-mmi4kal
-m4mor
-2m1n4
-1mo
-4moh
-mo4ha
-m3oks
-4morg
-4morn
-mo3sa
-2mp
-mpa4l
-m4pap
-mp3l
-mp3r
-2m1r
-mruu4
-2m1s
-ms4o
-ms4p
-2m1t2
-m5ts
-1mu
-mua4
-mu5ah
-mud4
-mue4
-mui4m
-4muls
-mup4
-5mus
-mut4ra
-2m1v
-mõ4d
-4mõig
-4mõp
-3mö
-4mök
-3mä
-4mäk
-mär4gel
-3mü
-4müh
-4mž
-1na
-n4aa
-na5ah
-naa4lu
-naa4r5a
-nad4
-na5ei
-nag4l
-nah4ke
-nai4d
-nai4si
-na4kru
-2nal4ü
-4na4mer
-na4mii
-n5amiid
-nants5a
-na3o4
-nap4l
-na4ret
-4narv
-n4as
-4nasb
-nass4
-nat4ra
-nau4b
-4nb4
-4n1d
-n4daas
-n4dab
-n4dae
-nda4ko
-nda4l
-n4dau
-ndif4
-ndip4
-n4do4r
-n4duj
-ndu4sõ
-n4dü
-1ne
-5ne.
-nea2
-nee3la
-nee4le
-nee3lu
-nei4v
-ne4lah
-4nelas
-ne4lek
-neo4d
-ne4pl
-2nerg
-n4es
-ne4tan
-ne4tõm
-2n1f
-2n1g
-n4gai
-n4gall
-n4gase
-n4gau
-ng4lü
-n4go4r
-ng3r
-ngud4
-ngus4t
-n2gü
-2n1h
-1ni
-ni3ap
-nia4v
-nig4
-nii4g
-nii4tu
-nikkel5
-4nilm
-5nima
-nima4s
-5nimet
-3nimi
-ni4mig
-4niml
-4nint
-ni4sid
-nis4ke
-4nisl
-2n1j
-2nk
-n4ka4n
-nk3r
-nk4se
-nkst4
-2n1l4
-2n1m
-2n1n
-nna3e
-nna5i
-nnak4r
-n4ne4f
-nnio4
-nnk4
-1no
-4nob
-nod4
-4noks
-noo4na
-n4or
-2n3p4
-2n1r
-2ns
-n4salp
-ns4e
-nsk5r
-n3so
-nso4r
-nste4
-ns4tee
-ns4tem
-nstis4
-nst3r
-ns4tu
-nsu4s
-2nt
-ntaa4r
-n4teh
-nte4l
-ntig4
-n4tiso
-n4tots
-n4tr
-nt3ra
-nt3re
-nt4sab
-nt4sal
-nt4san
-nt4sar
-nt5sü
-ntt4
-n4tüh
-n4tük
-1nu
-nu4da
-nui4g
-nur2k
-nus4p
-2n1v
-1nõ
-nõ4l
-4nõli
-1nö
-1nä
-1nü
-4nül
-4nž
-4nš
-oa2
-oa4a
-o1ae
-o5aku
-o3anal
-o5apa
-oau4b
-o1b
-oba4s
-1obj
-4o1d
-odaa4
-odaal3
-o4deh
-odu4sõ
-od4š
-oe5a4
-oe4fe
-oe2l
-o3ele
-oe4mi
-oe4mu
-o4eo
-oe4rah
-oe4rõ
-oe4si
-oet4r
-o1f
-of5r
-o1g
-og4la
-og4li
-3ohaka
-oh5to
-5ohvits
-oi2ta
-oiu5a
-o1j
-oju2s
-okast4
-okku5
-ok3la
-ok5liin
-okoos4
-ok3r
-ok4re
-ok4ri
-o5kris
-ok4ru
-o3la
-o4lae
-olag4
-ola4las
-ola4su
-ol4do
-ole4an
-3olek.
-o4lend
-olig4
-o3lii
-olii4g
-o4li4lu
-o3lis
-4olj
-ol4lae
-ollis4
-ol4lü
-ol4mai
-4o3lo
-ol4tam
-ol4tar
-1olu.
-5olukor
-o4luks
-olõ4
-o4lä
-3omadu
-om4baj
-om4ban
-o4mok
-ona4a
-o4naj
-ona4ko
-o4neh
-o4nele
-on4gos
-onit4r
-oniu4
-onsoo4
-ont4re
-o4nuu
-2o2o
-oo1a
-oo4kal
-ook4r
-oo4kää
-oo4lau
-oo4lee
-oo4lig
-oo4list
-oo4log
-oo4lõ
-oo4lü
-oo4nah
-oo4nar
-oo4nau
-oon4dee
-oonk4
-oono4
-oo4noh
-oons4
-oon5t4
-o5opti
-oo4rat
-oo4ree
-oo3sa
-oo4sel
-oo4tõ
-o3pa
-op5last.
-op4lu
-op3ra
-op3ri
-o2r3ai
-o4ralg
-ora4mii
-o4rana
-5orav
-3order
-1org
-org4r
-oria4
-3orju
-5orkeste
-3orna
-or4nel
-or4tal
-ort3r
-oru4s
-or4võ
-o2sa
-o4sake
-3osako
-4o3sau
-4ose
-o4seks
-4osf
-o2si.
-4osin
-3oskus
-4osl
-4oso
-o4sok
-os1ol
-os4pa
-4oss
-os4saj
-os4sü
-os5taas
-os4tem
-4osto
-ost4ru
-5osuti
-4osõ
-oto5a
-otok4
-ot2ra
-o3tran
-3otsa
-o5tsö
-ot4ta
-ot4teo
-otus4ta
-otü4l
-ou4b
-ou4n
-o1v
-ovaa4l
-ovio4
-ovol4
-o4vu4n
-o3õ4
-oü2
-1pa
-paa4ka
-pa3a2m
-paa4tel
-pa4e
-pa4lus
-pans4
-pa4pr
-5paras
-3park
-4parta
-pa4sp
-4pb
-4pd
-1pe
-pe2a
-pea5j
-peas4
-pe4au
-pea3v
-pe4f
-4pektr
-pela4
-4pe4lev
-pel4t
-pe4lü4
-p4em
-pe4ol
-5perd
-pe4tap
-peti4k
-2pf4
-pg4
-2ph
-1pi
-pii4v
-pik5r
-pin2d
-pin4gis
-pip3r
-pis5ta
-piu4g
-2p1j
-2p1k
-2p2l4
-4pla.
-p4laa
-p5laasi
-3plaat
-p4lak
-p3lam
-p5lane.
-3plasm
-5plastik
-plek2
-3plekk
-4p3lem
-p3li
-5pliia
-pliig4
-3plok
-p3lom
-p3lu
-3pluus
-4plõ
-2p1m
-2p1n
-p4neu
-1p4o
-5po4e
-3pon
-3poo
-poo4la
-poola4v
-pordi5
-4p1p
-ppa4k
-p4pas
-ppe3a
-ppee4
-pp3l
-p2p3r
-pps4
-p4pud
-p4põ
-p4pü
-p2r4
-2pra
-3praa
-3prag
-3prakt
-p5rau
-p4rep
-p4resi
-4prib
-2prii
-p5riit
-p4rog
-p4roo
-4p4ros
-3p4rot
-4prum
-5pruu
-2p1s
-ps4a
-p4sor
-3p2sü
-2p1t
-p4tak
-3pu
-pua4
-pu4da
-puha4
-pui4t
-puk4k
-pul4ti
-4purt
-pus4p
-2p1v
-3põ
-põhi3
-p4õi
-põi4s
-põli4
-5pö
-1pä
-pär4gu
-4päs
-3pü
-pü3he
-4pž
-4pš
-1ra
-raal3a
-4raale
-5raalne
-raa4lu
-raamatu5
-raa4ta4
-4raatt
-raa4tu
-4raav
-5raaš
-raie3
-2rain
-r3aine
-rai4si
-r5a4la.
-ral4t
-ra4lus
-3rame
-ran4dem
-ra3om
-4rapa
-ra4pl
-4rapt
-4rarb
-ra4ren
-4rars
-2rarv
-ra4sal
-4rasen
-ra4sis
-rast4r
-ra4suk
-ra4sul
-ra4sut
-5ratas
-ratiiv5a
-rat4sen
-raua3
-rau2d
-raud5o
-2rauk
-4raum
-4raur
-rau4te
-5ravi
-2r1b
-r4bae
-4r1d
-r4dae
-r2dar
-rde3a
-rd4re
-r4duj
-r4dü
-1re
-5re.
-5rea
-reb2
-ree4le
-ree4ma.
-ree4man
-3reer
-3reet
-5reg
-2rehi
-rei4se
-rek3l
-4reks
-re4lai
-re4liit
-5relv
-re4mää
-4repp
-re2pr
-rep3re
-re4sin
-re3te
-ret4k
-re4tr
-ret5s
-2r1f
-rf4r
-2r1g
-r4gae
-rg3ah
-rga4re
-r4geh
-rgi4me
-r5g2ra
-2r1h
-1ri
-3ria
-ri3am
-ri5ast
-5rid
-2rig
-ri4ga.
-3rige
-rig4r
-2riib
-5riie
-4riinu
-ri4kis
-ri3k4r
-4rilm
-3rim
-ri5oks
-rio4r
-3rip
-rip4li
-4rip2p
-4ri4sa.
-ri4sah
-ri4sar
-ri4ses
-4risol
-ri4tol
-ri3t2r
-5riu
-5riv
-4riö
-2r1j
-2r1k
-r4kad
-rk5ain
-rka4se
-r4kek
-rkt4
-2r1l
-2r1m
-r4mald
-r4me4le
-r4mig
-rmo4ra
-rmo4s
-rmp4
-rms4
-2r1n
-r4nad
-r4neh
-rnk4
-1ro
-roa4
-ro3e2
-rok4k
-rol4la
-rol4le
-4romb
-2romi
-ro4nop
-roo4ga
-4rosa
-ros4po
-ro5staati
-rost4r
-4rož
-2r1p
-rp5ret
-2r1r
-r3ri
-2rs
-rsaa4l
-rs4l
-rs4o
-r5s2po
-rs4tak
-2rt
-r4tah
-r4tos
-rt2r
-rt4ra
-r4tri
-rt5roo
-rt4sai
-1ru
-2rua4
-rud4
-r4uj
-ru3kr
-3ruma
-4rumb
-2rumm
-4rump
-5rus.
-ru4set
-ru4sin
-ru4sul
-rut4r
-ruum5a
-4ruur
-2r1v
-rva4la
-rva4lu
-r4vann
-rvas5k
-rvis4k
-r4voh
-r4vok
-1rõ
-2rõ2l
-r5õli
-rõn4gu
-4rõr
-3rö
-4rök
-röö4pe
-rööp5l
-1rä
-4rä4r
-1rü
-4rük
-4rüm
-4rü4r
-4rž
-4rš
-1sa
-3s2aa
-saa5j
-saa4lu
-sa4an
-4s3aas
-3saba
-sa4bi.
-4sabo
-s4ad
-5sada
-4sade
-s5ader
-2s1ae
-sae4l
-5sa5ga
-s4age
-sa4gu
-4sahv
-3sai.
-4saia
-s1ain
-s4ajan
-sa4ju.
-sak4ro
-5saks
-4saku.
-sa4kää
-4s3a4la.
-4salas
-s4alat
-5salat.
-sa4lev
-4salla
-4sallu
-3salt
-sa4lum
-5salv
-3s4am
-4samp
-4sank
-4s5ann
-s4ant
-4santi
-s4anu
-sa4num
-sa2pr
-sa4ris
-s4arv.
-sar4va
-sase4
-3sasti
-sas4tii
-sa4suk
-sa4sum
-3sat
-4satl
-s5avald
-2s3b2
-2s3d2
-1se
-3sead
-se3ala
-s5eali
-se5aval
-se4du.
-4seela
-see4le
-s5eeln
-see4ma
-4seepi
-3seer
-see4si
-see4ta4
-4se4fe
-5seg
-sega5a
-2seh
-3seha
-3seho
-5sehu
-5sehä
-3sei
-sei4d
-sei4si
-3seka
-se3kl
-4s5eksp
-se4laj
-4selek
-5seli
-4sellu
-3selt
-2selu
-4sens
-se5oh
-seo4k
-se5om
-seo4p
-seo4r
-3sep
-sepat4
-4serem
-4sese.
-se4si.
-4se4sin
-s5esit
-ses4k
-3sest
-4s5eten
-se3t2r
-4sette
-2s1f2
-2s1g2
-2s1h
-1si
-3sia
-sia4h
-sie4
-5sign
-sig4ra
-s5i4ha.
-sii4g
-sii4sa
-sii4se
-4siits
-sii4tu
-si4ket
-siko4d
-siks4p
-sikt4
-sik4vi
-4sinim
-s5inime
-4sins
-sio4le
-si4pro
-4sirr
-5siru
-4si4sa.
-si3se
-s5i4sik
-sis2p
-sisse3
-s5istuj
-5sisu
-2s1j
-sja5ar
-2s1k
-4ska
-5skaa5la
-ska4no
-5skeem.
-s4kela
-5skelet
-s5ken
-ski4g
-sk2l
-s5klas
-5skler
-skuk4
-3skulp
-sku4si
-2s1l
-4s1m
-sma4sa
-2s1n
-sne4p
-1so
-3sobi
-3soe
-s1oht
-3soi
-s5oks.
-2so2l
-s3olek
-s3olij
-5solo
-so3lut
-so2ma
-3son
-3soo
-soo5o
-4so4pe
-so4pr
-5sor.
-s3orj
-3sort
-2s1os
-4sotsu
-2s1p
-s5per
-2s1r
-2s1s
-ssel4l
-ss2fä
-ssin4
-s4sinf
-ssk4
-ss4ke
-ss2p
-s5spor
-ss2t
-s5stat
-ss4ti
-sst5r
-s4suss
-2s1t
-s2taa
-3staad
-5staaš
-s4tain
-4stam
-5standard
-3start
-s4tati
-5statis
-s4teno
-5stepp
-stet4
-s4toh
-s4top
-s4tot
-5streik
-5strek
-5struktu
-st4so
-stt4
-stu2s
-stu4s5a
-3stuud
-stä4
-s4tär
-s4tüh
-1su
-sua2
-su4bar
-sud4r
-su4du
-su5e
-su4jul
-4suks
-s5uks.
-5sulg
-sul4ga
-sun4de4
-su4nis
-supe4
-supe5s
-su4pr
-4surb
-5sus.
-sus4aa
-su4ses
-s5uss.
-sus4ti
-su4sun
-sut4r
-sut4ü
-4suug
-suu4ra
-suusa3
-2s1v
-svus4t
-1sõ
-5sõda
-sõ4de
-4s3õh
-3sõid
-4sõie
-2s1õig
-2s5õis
-3sõit
-sõ2l
-2s3õli
-3sõlm
-3sõn
-2s1õp
-5sõr
-sõsa4
-2s3õu
-1sö
-4söd
-sö2k
-2sön
-1sä
-4säk
-4säm
-1sü
-4süa
-5süd
-5süg
-2süh
-s3ühi
-2sük
-s3üks
-sü4la
-sül5di
-sü3lem
-4sülo
-sü4ra
-3süs
-3süü
-4sž
-1ta
-3ta.
-3taat.
-2tabi
-4t3aed
-t3aine
-4tais
-4ta4ko
-t2al
-4ta4laj
-ta4lev
-tal4las
-ta3lu
-ta4lus
-3tam
-5tama
-4tanda
-ta4ot
-ta4pla
-ta4pr
-4ta4ret
-4tarm
-2tart
-ta4se4r
-ta4ses
-ta4set
-ta4sis
-ta4sü
-2taut
-3tav
-ta4vaj
-2t1b4
-2td2
-1t2e
-te4aa
-tea4g
-tea4h
-te3an
-te5as
-3tee
-tee5lu
-te4et
-te3hi
-tehi4s
-te3kl
-tek4r
-tek4v
-tel4ke
-te4lok
-te3lu.
-4tepiv
-tep4l
-2tepp
-3ter
-5ter.
-te5r4a
-terd4
-4terg
-ters4
-tes4a
-te4sin
-tes4k
-2t1f
-4t1g4
-2t1h
-thõl4
-3ti
-tia2
-ti3e
-tii2k
-tii4ma
-tii4sa
-tii4ve
-tik4o
-ti3k4r
-tik4vi
-4tilm
-5tima
-4tinf
-tin4ga
-ti4sai
-tisa4v
-ti4sik
-titee4
-2t1j
-2t1k2
-t3kl
-t3kr
-2t1l4
-tlu4
-2t1m
-tmika4
-tmis3
-2t1n
-3t2o
-4to4da
-toen4
-tog6
-4toks.
-toksi5k
-to4lek
-to4lu.
-to4lum
-tonis4
-to4o
-too4no
-too4pe
-to4rau
-tos4p
-tost4
-2t3p4
-2t1r
-t4rad
-t2raf
-3trafo
-t4rahh
-5trall
-t2ran
-3trans
-t4rate
-5traum
-t2re
-3treen
-t4rei
-5treim
-3trep
-t3rig
-5triib
-5triip
-5trikoo.
-tri4pl
-t4ross
-3trumm
-5t4rup
-3t2ruu
-3t2rü
-4trüü
-2t1s
-t3s2a
-ts4aa
-tsa5is
-t4saju
-tsa4lan
-3tsehh
-tse3la
-5tsellu
-5tsemen
-4tsena
-5tsensu
-tsig4
-5tsiitsi
-t4sink
-5tsiste
-ts4laa
-t2soo
-t4sor
-tsp4
-t4suss
-2t1t
-t4tad
-ttee2
-ttes2
-t5tsem
-3tu
-4tuim
-tu4raj
-tus1a
-tu4s5ee
-tu2si
-tus3s
-4t5uss.
-tus3t2
-tu5su
-tu4sä4
-tusü4
-4tutop
-4tuud
-tuule5
-2t1v
-1tõ
-5tõb
-2tõi
-tõ4l
-4tõ4n
-4tõp
-2t5õun
-1tö
-4töe
-4tök
-töö5k
-töö3p
-1tä
-täh4t3a
-tä5ke
-4täm
-1tü
-tü5he.
-tü3hi
-2t1ž
-t2že
-5tžek
-3tžem
-uaa4
-u3aast
-ua2b
-u5abi
-u1ae
-ua4he
-uai4k
-u3ain
-ua2ja
-u3akt
-ua2l
-u3all
-u3amet
-u1an
-ua4nu
-u5apar
-ua2re
-ua5ree
-u5art
-ua2s
-u3ast
-u1au
-uau4d
-ua2v
-u5avald
-u1b
-u4dalu
-u4deh
-udeo4
-udo4r
-u5eal
-u3eel
-u3eks
-ue2ma
-ueo4
-ue4r
-u1f
-u1g
-u4gi4d
-ug2ra
-u5graa
-u4gü
-uh4tem
-uh4ter
-uh4tin
-uh4tis
-uidu5
-ui2ga
-ui4h
-u3iha
-u3ilm
-5uim.
-uina2
-uinas5
-ui4si
-3uisut
-uite4h
-ui4to
-ui4vala
-ui4vel
-ui4vo
-u1j
-u5ja
-u4juj
-u4jum
-3ujumi
-u1k
-ukaa4s
-ukii4g
-ukki5
-ukop4
-u3kraa
-u5kro
-uku4sa
-uk4vi
-ul4a
-ul4deh
-uldi4
-ul4kr
-ul4len
-ul4lui
-ultra5
-u3lu
-uluo4
-4u1m
-umaf4
-u4mau
-5umbroh
-umet4
-umf4
-umia4
-umit4
-um5p4r
-unaa4
-unaal5
-un4dak
-un4dan
-un4das
-un4do
-u4ni.
-u1o2
-uo4h
-u2or
-u3org
-u1p
-u3pla
-up3le
-uppe4
-up4pis
-uraa4l
-u4rag
-ura4ju
-u4rala
-u4rap
-ur5auk
-ura4va
-3urb.
-urde3
-urea4
-u4reos
-ures4k
-u4rett
-urgas4
-5urge.
-u4ri4met
-u4rini
-uris4k
-urka4v
-uro4r
-u4rulu
-u2sa2
-u5sa.
-usad4
-u4sae
-u4salu
-us5aste
-u3sea
-useg4
-us5elek
-u4sett
-u3setu
-u5sev
-us4fä
-us5g
-u4si4d
-usi4g
-u4si4h
-us5ind
-usi4va
-us3kr
-u2so
-us5o2h
-us3ole
-uso4r
-us3p4
-u3s4por
-usui4
-3usuli
-u4suss
-u2sõ
-u2sü
-us3üh
-u1t
-ut4kl
-utos2
-utot4
-ut4ru
-ut4so
-utt4r
-utu4s
-utü4h
-uu5al
-4uud
-uu4du.
-uu4kak
-uuk5ri
-uu4mal
-uu4mis
-uu4pü
-uu4ran
-uu4ras
-uu4rau
-uu4rav
-uu3sa
-uusa3k
-uus4ke
-u3uss.
-uu4sul
-4uut
-uu4tas
-uu4tis
-uu4tüh
-u5uuri
-u1v
-u4vau
-u1õ2
-uä2
-u3är
-u1ü2
-už4l
-vaa4re4
-va4as
-4vabi
-vae4r
-vag4
-va5he
-4vaia
-4v3ain
-vak4v
-va4la.
-va4lai
-4valdi
-val4ga4
-va4lü
-vana5i
-vane2
-4vanku
-van4ta
-van4te
-vap4r
-v4ar
-4varm
-var4p
-2vart
-4varuh
-4varve
-va4sas
-vas4k
-vast4r
-vat4r
-4vatud
-vau4d
-vav4
-4vb
-2v1d
-3ve
-vee3a
-vee3k
-vee5la
-vee3sp
-4vehi
-vei4sa
-ve4ol
-veot4
-ve4rah
-ves4p
-2vf
-2vg4
-2v1h
-3vi
-via2
-vid4
-4videa
-vip4
-vi3pl
-vir4k
-vi4sak
-vis4ko4d
-2v1j
-2v1k
-2v1l
-2v1m
-2v1n
-voo5lu
-2v5p
-2v1r
-2v1s
-2v1t2
-v3tr
-vu4sa
-vu4su4
-2v1v
-3võ
-4võig
-4võ4li
-4võm
-võr4k5
-3vä
-vää4re4
-vää4ru
-3zo
-zook4
-zoos4
-õ1b
-õbe3
-õ1d
-õea4
-õe4lan
-õe3lu
-õet2
-õeu4
-õ1g
-õh4vu
-õi4a
-õi4b
-õie5k
-3õiel
-3õigu
-õi4ko
-õise4
-õi4su4
-õ1j
-õk4kõ
-õl2d
-õ4lim
-õ4lit
-õl4mad
-3õmbl
-õnet4s
-õ2p
-õ3pa
-õpi5e
-õp2pa
-4õp3r
-õranda5
-õra4s
-õr4da
-õr4gaa
-õr4gar
-õr4go
-4õs
-õs4a
-õ4tü4
-õude3
-õ1v4
-õõ5p
-õõre4
-õõ4rel
-õõ4ta
-öa2
-ö1b
-ö1d
-5ö2dee
-ödi4k
-3öeld
-öep4
-öet4r
-ö1g4
-ö1h
-öi4a
-öi4g
-öi4s
-ö1j
-ö1k
-ö2kon
-3ökono
-ök4v
-ö1l
-öli2s
-ölis5a
-ö1m
-öo2
-ö2p3au
-öp4lu
-ö4raa
-ö4rau
-ör4da
-ör4dell
-ör4e
-ö4ri4l
-ö4ro4
-ö4rä
-ö4rül
-ös4tii
-ö4to4
-ö4tü4
-ö1v
-ö3õ
-öö3a
-öö3e4
-öö5i
-3öölan
-öö3o
-ööt4r
-öü4
-äa4
-ä1b
-äbus5
-äbut4
-ä1d
-äe3a4
-äe1o
-ä1g
-äga4ri
-ähe5a
-äidi4s
-äike3
-äi4lo
-äi4lu
-äi2s
-äisa4
-äi4sõ
-äi4tar
-ä3j
-ä2ke
-3äke.
-ä5ker
-ä4kõ
-äli2s
-äl4ko
-5ämbl
-ä4nah
-än4deo
-änet4
-än4to4
-äok4
-ä4ra5a
-ära3o4
-ä4rar
-äre4lis
-äret4
-ärge4l
-ärii4
-äri4kl
-äri4sel
-ä4riste
-är4kar
-ä4ro
-5ärrit
-är4ta
-är2va
-ä4rõ
-äs4ko
-äs4nai
-äs4p
-äs4san
-äs4so
-ät4ri
-äu4d
-ä1v
-ävee4
-ää4kin
-ääo4
-ää4rase
-5ääris.
-üaa4
-ü1b
-üdame5
-ü1g
-ü2h
-ühe5i4
-1ühen
-3ühik.
-ü3hit
-ü1j
-ükan4
-ük4kas
-ük3l
-ül2d
-üld5a2
-ü2le
-3ülek
-ü5lel
-üle4mas
-1üles
-ülesä4
-ül4gav
-ül4gee
-ü4lih
-ülii4
-3üliko
-ü4liõ
-ül5kl
-ül5la
-ül4mei
-ülo4r
-ülp4
-ült4
-üma4rak
-üma4ru
-ümi4ko
-ü5ne
-üni4s
-üot4
-üp3l
-üp5p4
-üp3r
-üpsu4
-ürd4
-ürik4
-üs4o
-üs4pr
-üs4tal
-üs4tas
-üta4r
-ütee4l
-5ütlev
-ü4t3r
-üt4ru
-ü1v
-ü4ü
-üü2l3a2
-üü4le
-üü4lo
-üü4pe
-1ža
-4žb
-1že
-5žee
-5žer
-4žf
-1ži
-4žj
-4žk
-4žl
-4žm
-4žn
-3žo
-4žp
-4žt
-5žö
-5žü
-2žž
-3ša
-4šak
-4šau
-1še
-3š4i
-šis4k
-4šk
-5šo
-4št
-3šu4} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-eu.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-eu.hyp
deleted file mode 100644
index 85f620e90c2..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-eu.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-eu.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-eu.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-eu.pat
deleted file mode 100644
index 77f1f480326..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-eu.pat
+++ /dev/null
@@ -1,199 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-eu.rme
-
-% used: a b c d e f g i j k l m n o p q r s t u v w x y z ñ
-
-\patterns{
-1ba
-1be
-1bo
-1bi
-1bu
-1ca
-1ce
-1co
-1ci
-1cu
-1da
-1de
-1do
-1di
-1du
-1fa
-1fe
-1fo
-1fi
-1fu
-1ga
-1ge
-1go
-1gi
-1gu
-1ja
-1je
-1jo
-1ji
-1ju
-1ka
-1ke
-1ko
-1ki
-1ku
-1la
-1le
-1lo
-1li
-1lu
-1ma
-1me
-1mo
-1mi
-1mu
-1na
-1ne
-1no
-1ni
-1nu
-1ña
-1ñe
-1ño
-1ñi
-1ñu
-1pa
-1pe
-1po
-1pi
-1pu
-1qa
-1qe
-1qo
-1qi
-1qu
-1ra
-1re
-1ro
-1ri
-1ru
-1sa
-1se
-1so
-1si
-1su
-1ta
-1te
-1to
-1ti
-1tu
-1va
-1ve
-1vo
-1vi
-1vu
-1wa
-1we
-1wo
-1wi
-1wu
-1xa
-1xe
-1xo
-1xi
-1xu
-1ya
-1ye
-1yo
-1yi
-1yu
-1za
-1ze
-1zo
-1zi
-1zu
-1l2la
-1l2le
-1l2lo
-1l2li
-1l2lu
-1r2ra
-1r2re
-1r2ro
-1r2ri
-1r2ru
-1t2sa
-1t2se
-1t2so
-1t2si
-1t2su
-1t2xa
-1t2xe
-1t2xo
-1t2xi
-1t2xu
-1t2za
-1t2ze
-1t2zo
-1t2zi
-1t2zu
-1b2la
-1b2le
-1b2lo
-1b2li
-1b2lu
-1b2ra
-1b2re
-1b2ro
-1b2ri
-1b2ru
-1d2ra
-1d2re
-1d2ro
-1d2ri
-1d2ru
-1f2la
-1f2le
-1f2lo
-1f2li
-1f2lu
-1f2ra
-1f2re
-1f2ro
-1f2ri
-1f2ru
-1g2la
-1g2le
-1g2lo
-1g2li
-1g2lu
-1g2ra
-1g2re
-1g2ro
-1g2ri
-1g2ru
-1k2la
-1k2le
-1k2lo
-1k2li
-1k2lu
-1k2ra
-1k2re
-1k2ro
-1k2ri
-1k2ru
-1p2la
-1p2le
-1p2lo
-1p2li
-1p2lu
-1p2ra
-1p2re
-1p2ro
-1p2ri
-1p2ru
-1t2ra
-1t2re
-1t2ro
-1t2ri
-1t2ru
-su2b2r
-su2b2l} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-fi.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-fi.hyp
deleted file mode 100644
index 944dbd7a808..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-fi.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-fi.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-fi.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-fi.pat
deleted file mode 100644
index a2b4dad7c4b..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-fi.pat
+++ /dev/null
@@ -1,293 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-fi.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u v y ä ö
-
-\patterns{
-1ba
-1be
-1bi
-1bo
-1bu
-1by
-1da
-1de
-1di
-1do
-1du
-1dy
-1dä
-1dö
-1fa
-1fe
-1fi
-1fo
-1fu
-1fy
-1ga
-1ge
-1gi
-1go
-1gu
-1gy
-1gä
-1gö
-1ha
-1he
-1hi
-1ho
-1hu
-1hy
-1hä
-1hö
-1ja
-1je
-1ji
-1jo
-1ju
-1jy
-1jä
-1jö
-1ka
-1ke
-1ki
-1ko
-1ku
-1ky
-1kä
-1kö
-1la
-1le
-1li
-1lo
-1lu
-1ly
-1lä
-1lö
-1ma
-1me
-1mi
-1mo
-1mu
-1my
-1mä
-1mö
-1na
-1ne
-1ni
-1no
-1nu
-1ny
-1nä
-1nö
-1pa
-1pe
-1pi
-1po
-1pu
-1py
-1pä
-1pö
-1ra
-1re
-1ri
-1ro
-1ru
-1ry
-1rä
-1rö
-1sa
-1se
-1si
-1so
-1su
-1sy
-1sä
-1sö
-1ta
-1te
-1ti
-1to
-1tu
-1ty
-1tä
-1tö
-1va
-1ve
-1vi
-1vo
-1vu
-1vy
-1vä
-1vö
-1st2r
-ä2y
-y1a2
-y1o2
-o1y
-ö2y
-u1y2
-y1u2
-ö3a2
-ö3o2
-ä3a2
-ä3o2
-ä1u2
-ö1u2
-a1ä
-a1ö
-o1ä
-o1ö
-u1ä2
-u1ö2
-ä2ä
-ö2ö
-ä2ö
-ö2ä
-aa1i2
-aa1e2
-aa1o2
-aa1u2
-ee1a2
-ee1i2
-ee1u2
-ee1y2
-ii1a2
-ii1e2
-ii1o2
-uu1a2
-uu1e2
-uu1o2
-uu1i2
-e1aa
-i1aa
-o1aa
-u1aa
-u1ee
-a1uu
-i1uu
-e1uu
-o1uu
-ää1i
-ää1e
-ää3y
-i1ää
-e1ää
-y1ää
-i1öö
-a1ei
-a1oi
-e1ai
-i1au
-y1ei
-ai1a
-ai1e
-ai1o
-ai1u
-au1a
-au1e
-eu1a
-ie1a
-ie1o
-ie1y
-io1a2
-io1e2
-iu1a
-iu1e
-iu1o
-oi1a
-oi1e
-oi1o
-oi1u
-o1ui
-ou1e
-ou1o
-ue1a
-ui1e
-uo1a
-uo1u
-e1ö2
-ö1e2
-.ä2
-u2s
-yli1o2p
-ali1a2v
-1sp2li
-alous1
-keus1
-rtaus1
-2s1ohje
-2s1a2sia
-1a2sian
-1a2siat
-1a2sioi
-r2as
-l2as
-2s1o2pisk
-2n1o2pet
-2s1a2loi
-2n1o2pist
-2s1o2pist
-2s1o2sa
-2n1o2sa
-alkei2s1
-perus1
-2s1i2dea.
-2s1i2dean
-2s1e2sity
-2n1e2dus
-2s1ajatu
-2s1ase
-2s1apu
-2s1y2rit
-.ydi2n1
-.suu2r1a2
-2s1y2hti
-2n1otto
-2n1oton
-2n1anto
-2n1anno
-2n1a2jan
-2n1aika
-2n1o2mai
-2n1y2lit
-2s1a2len
-2n1a2len
-1a2siaka2s1
-ulo2s1
-2n1a2jo
-2s1a2jo
-b2l
-1b2lo
-bib3li
-b2r
-1b2ri
-1b2ro
-1b2ru
-d2r
-1d2ra
-f2l
-1f2la
-f2r
-1f2ra
-1f2re
-g2l
-1g2lo
-g2r
-1g2ra
-k2l
-1k2ra
-1k2re
-1k2ri
-1k2v
-1k2va
-p2l
-p2r
-1p2ro
-c2l
-q2v
-1q2vi
-sc2h
-ts2h
-ch2r} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-fr.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-fr.hyp
deleted file mode 100644
index 715889832c4..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-fr.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-fr.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-fr.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-fr.pat
deleted file mode 100644
index 7aee5604cc1..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-fr.pat
+++ /dev/null
@@ -1,1152 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-fr.rme
-
-% used: ' a b c d e f g h i j k l m n o p q r s t u v w x y z à â ç è é ê î ï ô û œ
-
-\patterns{
-2'2
-.a4
-'a4
-.â4
-'â4
-ab2h
-.ab3réa
-'ab3réa
-ad2h
-a1è2dre
-.ae3s4ch
-'ae3s4ch
-1alcool
-'2alcool
-a2l1algi
-.amino1a2c
-'amino1a2c
-.ana3s4tr
-'ana3s4tr
-1a2nesthési
-'2a2nesthési
-.anti1a2
-'anti1a2
-.anti1e2
-'anti1e2
-.anti1é2
-.anti2enne
-'anti2enne
-'anti1é2
-.anti1s2
-'anti1s2
-.apo2s3ta
-'apo2s3ta
-apo2s3tr
-archi1é2pis
-.as2ta
-'as2ta
-a2s3tro
-1ba
-1bâ
-.bai2se3main
-1be
-1bé
-1bè
-1bê
-4be.
-4bes.
-2bent.
-1bi
-1bî
-.bi1a2c
-.bi1a2t
-.bi1au
-.bio1a2
-.bi2s1a2
-.bi1u2
-1b2l
-4ble.
-4bles.
-2blent.
-1bo
-1bô
-1b2r
-4bre.
-4bres.
-2brent.
-1bu
-1bû
-1by
-1ç
-1ca
-1câ
-ca3ou3t2
-1ce
-1cé
-1cè
-1cê
-4ce.
-4ces.
-2cent.
-ja3cent.
-ac3cent.
-é3cent.
-munifi3cent.
-réti3cent.
-privatdo3cent.
-inno3cent.
-es3cent.
-acquies4cent.
-is3cent.
-immis4cent.
-.ch4
-1c2h
-4ch.
-2chb
-4che.
-4ches.
-2chent.
-.chè2vre3feuille
-2chg
-ch2l
-4chle.
-4chles.
-chlo2r3a2c
-chlo2r3é2t
-2chm
-2chn
-2chp
-ch2r
-4chre.
-4chres.
-2chs
-2cht
-2chw
-1ci
-1cî
-.ci2s1alp
-1c2k
-4ck.
-2ckb
-4cke.
-4ckes.
-2ckent.
-2ckf
-2ckg
-2ck3h
-2ckp
-2cks
-2ckt
-1c2l
-4cle.
-4cles.
-2clent.
-1co
-1cô
-co1acc
-co1acq
-co1a2d
-co1ap
-co1ar
-co1assoc
-co1assur
-co1au
-co1ax
-1cœ
-co1é2
-co1ef
-co1en
-co1ex
-.con4
-.cons4
-.contre1s2c
-.contre3maître
-co2nurb
-.co1o2
-.co2o3lie
-1c2r
-4cre.
-4cres.
-2crent.
-1cu
-1cû
-1cy
-.cul4
-1d'
-1da
-1dâ
-.dacryo1a2
-d1d2h
-1de
-1dé
-1dè
-1dê
-4de.
-4des.
-2dent.
-déca3dent.
-é3dent.
-cci3dent.
-inci3dent.
-confi3dent.
-tri3dent.
-dissi3dent.
-chien3dent.
-.ar3dent.
-impu3dent.
-pru3dent.
-.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œ
-.dé3s2o3l
-.dé3s2o3pil
-.dé3s2orm
-.dé3s2orp
-.dé3s2oufr
-.dé3s2p
-.dé3s2t
-.dé2s1u2n
-3d2hal
-3d2houd
-1di
-1dî
-di2s3cop
-.di1a2cé
-.di1a2cid
-.di1ald
-.di1a2mi
-.di1a2tom
-.di1e2n
-.di2s3h
-2dlent.
-1do
-1dô
-1d2r
-4dre.
-4dres.
-2drent.
-d1s2
-1du
-1dû
-1dy
-.dy2s3
-.dy2s1a2
-.dy2s1i2
-.dy2s1o2
-.dy2s1u2
-.e4
-'e4
-.ê4
-'ê4
-.é4
-'é4
-.è4
-'è4
-éd2hi
-1é2drie
-1é2drique
-1é2lectr
-1é2lément
-.en1a2
-'en1a2
-1é2nerg
-e2n1i2vr
-.en1o2
-'en1o2
-épi2s3cop
-épi3s4cope
-e2s3cop
-.eu2r1a2
-'eu2r1a2
-eu1s2tat
-extra1
-extra2c
-extra2i
-1fa
-1fâ
-1fe
-1fé
-1fè
-1fê
-4fe.
-4fes.
-2fent.
-1fi
-1fî
-1f2l
-4fle.
-4fles.
-2flent.
-1fo
-1fô
-1f2r
-4fre.
-4fres.
-2frent.
-f1s2
-1fu
-1fû
-1fy
-1ga
-1gâ
-1ge
-1gé
-1gè
-1gê
-4ge.
-4ges.
-2gent.
-ré3gent.
-entre3gent.
-indi3gent.
-dili3gent.
-intelli3gent.
-indul3gent.
-tan3gent.
-rin3gent.
-contin3gent.
-.ar3gent.
-'ar3gent.
-ser3gent.
-ter3gent.
-résur3gent.
-1g2ha
-1g2he
-1g2hi
-1g2ho
-1g2hy
-1gi
-1gî
-1g2l
-4gle.
-4gles.
-2glent.
-1g2n
-'a2g3nat
-.a2g3nat
-a2g3nos
-co2g3niti
-'i2g3né
-.i2g3né
-'i2g3ni
-.i2g3ni
-.ma2g3nicide
-.ma2g3nificat
-.ma2g3num
-o2g3nomoni
-o2g3nosi
-.pro2g3nath
-pu2g3nable
-pu2g3nac
-.sta2g3n
-.syn2g3nath
-wa2g3n
-4gne.
-4gnes.
-2gnent.
-1go
-1gô
-1g2r
-4gre.
-4gres.
-2grent.
-1gu
-1gû
-g1s2
-4gue.
-4gues.
-2guent.
-.on3guent.
-'on3guent.
-1gy
-1ha
-1hâ
-1he
-1hé
-1hè
-1hê
-hémi1é
-hémo1p2t
-4he.
-4hes.
-1hi
-1hî
-1ho
-1hô
-1hu
-1hû
-1hy
-hypera2
-hypere2
-hyperé2
-hyperi2
-hypero2
-hypers2
-hype4r1
-hyperu2
-hypo1a2
-hypo1e2
-hypo1é2
-hypo1i2
-hypo1o2
-hypo1s2
-hypo1u2
-.i4
-'i4
-.î4
-'î4
-i1algi
-i1arthr
-i1è2dre
-il2l
-cil3l
-rcil4l
-ucil4l
-vacil4l
-gil3l
-hil3l
-lil3l
-l3lion
-mil3l
-mil4let
-émil4l
-semil4l
-rmil4l
-armil5l
-capil3l
-papil3la
-papil3le
-papil3li
-papil3lom
-pupil3l
-piril3l
-thril3l
-cyril3l
-ibril3l
-pusil3l
-.stil3l
-distil3l
-instil3l
-fritil3l
-boutil3l
-vanil3lin
-vanil3lis
-vil3l
-avil4l
-chevil4l
-uevil4l
-uvil4l
-xil3l
-1informat
-'2informat
-.in1a2
-'in1a2
-.in2a3nit
-'in2a3nit
-.in2augur
-'in2augur
-.in1e2
-'in1e2
-.in1é2
-'in1é2
-.in2effab
-'in2effab
-.in2é3lucta
-'in2é3lucta
-.in2é3narra
-'in2é3narra
-.in2ept
-'in2ept
-.in2er
-'in2er
-.in2exora
-'in2exora
-.in1i2
-'in1i2
-.in2i3miti
-'in2i3miti
-.in2i3q
-'in2i3q
-.in2i3t
-'in2i3t
-.in1o2
-'in1o2
-.in2o3cul
-'in2o3cul
-.in2ond
-'in2ond
-.in1s2tab
-'in1s2tab
-'inte4r3
-.intera2
-'intera2
-.intere2
-'intere2
-.interé2
-'interé2
-.interi2
-'interi2
-.intero2
-'intero2
-.inte4r3
-.interu2
-'interu2
-.inters2
-'inters2
-.in1u2
-'in1u2
-.in2uit
-'in2uit
-.in2u3l
-'in2u3l
-io1a2ct
-i1oxy
-i1s2tat
-1j
-2jk
-4je.
-4jes.
-2jent.
-1ka
-1kâ
-1ke
-1ké
-1kè
-1kê
-4ke.
-4kes.
-2kent.
-1k2h
-4kh.
-.kh4
-1ki
-1kî
-1ko
-1kô
-1k2r
-1ku
-1kû
-1ky
-1la
-1lâ
-1là
-la2w3re
-1le
-1lé
-1lè
-1lê
-4le.
-4les.
-2lent.
-.ta3lent.
-iva3lent.
-équiva4lent.
-monova3lent.
-polyva3lent.
-re3lent.
-.do3lent.
-indo3lent.
-inso3lent.
-turbu3lent.
-succu3lent.
-fécu3lent.
-trucu3lent.
-opu3lent.
-corpu3lent.
-ru3lent.
-sporu4lent.
-1li
-1lî
-1lo
-1lô
-l1s2t
-1lu
-1lû
-1ly
-1ma
-1mâ
-.ma2c3k
-.macro1s2c
-.ma2l1a2dres
-.ma2l1a2dro
-.ma2l1aisé
-.ma2l1ap
-.ma2l1a2v
-.ma2l1en
-.ma2l1int
-.ma2l1oc
-.ma2l1o2d
-.ma2r1x
-1me
-1mé
-1mè
-1mê
-.mé2g1oh
-.mé2sa
-.mé3san
-.mé2s1es
-.mé2s1i
-.mé2s1u2s
-.méta1s2ta
-4me.
-4mes.
-â2ment.
-da2ment.
-fa2ment.
-amalga2ment.
-cla2ment.
-ra2ment.
-tempéra3ment.
-ta2ment.
-testa3ment.
-qua2ment.
-è2ment.
-carê2ment.
-diaphrag2ment.
-ryth2ment.
-ai2ment.
-rai3ment.
-abî2ment.
-éci2ment.
-vidi2ment.
-subli2ment.
-éli2ment.
-reli2ment.
-mi2ment.
-ani2ment.
-veni2ment.
-ri2ment.
-détri3ment.
-nutri3ment.
-inti2ment.
-esti2ment.
-l2ment.
-flam2ment.
-gram2ment.
-.gem2ment.
-om2ment.
-.com3ment.
-ô2ment.
-slalo2ment.
-chro2ment.
-to2ment.
-ar2ment.
-.sar3ment.
-er2ment.
-antifer3ment.
-.ser3ment.
-fir2ment.
-or2ment.
-as2ment.
-au2ment.
-écu2ment.
-fu2ment.
-hu2ment.
-fichu3ment.
-llu2ment.
-plu2ment.
-bou2ment.
-bru2ment.
-su2ment.
-tu2ment.
-1mi
-1mî
-.milli1am
-1m2némo
-1m2nès
-1m2nési
-1mo
-1mô
-1mœ
-.mono1a2
-.mono1e2
-.mono1é2
-.mono1i2
-.mono1ï2dé
-.mono1o2
-.mono1u2
-.mono1s2
-mon2t3réal
-m1s2
-1mu
-1mû
-1my
-moye2n1â2g
-1na
-1nâ
-1ne
-1né
-1nè
-1nê
-4ne.
-4nes.
-2nent.
-réma3nent.
-imma3nent.
-perma3nent.
-.émi3nent.
-préémi3nent.
-proémi3nent.
-surémi3nent.
-immi3nent.
-conti3nent.
-perti3nent.
-absti3nent.
-1ni
-1nî
-1no
-1nô
-1nœ
-.no2n1obs
-1nu
-1nû
-n3s2at.
-n3s2ats.
-n1x
-1ny
-.o4
-'o4
-'ô4
-.ô4
-o2b3long
-1octet
-'2octet
-o1d2l
-o1è2dre
-o1ioni
-ombud2s3
-omni1s2
-o1s2tas
-o1s2tat
-o1s2téro
-o1s2tim
-o1s2tom
-o1s2trad
-o1s2tratu
-o1s2triction
-.oua1ou
-'oua1ou
-.ovi1s2c
-'ovi1s2c
-oxy1a2
-1pa
-1pâ
-paléo1é2
-.pa2n1a2f
-.pa2n1a2mé
-.pa2n1a2ra
-.pa2n1is
-.pa2n1o2ph
-.pa2n1opt
-.pa2r1a2che
-.pa2r1a2chè
-.para1s2
-.pa2r3hé
-1pe
-1pé
-1pè
-1pê
-4pe.
-4pes.
-2pent.
-re3pent.
-.ar3pent.
-'ar3pent.
-ser3pent.
-.pen2ta
-per3h
-pé2nul
-.pe4r
-.per1a2
-.per1e2
-.per1é2
-.per1i2
-.per1o2
-.per1u2
-pé1r2é2q
-.péri1os
-.péri1s2
-.péri2s3s
-.péri2s3ta
-.péri1u2
-1p2h
-.ph4
-4ph.
-.phalan3s2t
-4phe.
-4phes.
-2phent.
-ph2l
-4phle.
-4phles.
-2phn
-photo1s2
-ph2r
-4phre.
-4phres.
-2phs
-2pht
-3ph2talé
-3ph2tis
-1pi
-1pî
-1p2l
-4ple.
-4ples.
-2plent.
-.pluri1a
-1p2né
-1p2neu
-1po
-1pô
-po1astre
-poly1a2
-poly1e2
-poly1é2
-poly1è2
-poly1i2
-poly1o2
-poly1s2
-poly1u2
-.pon2tet
-.pos2t3h
-.pos2t1in
-.pos2t1o2
-.pos2t3r
-.post1s2
-1p2r
-4pre.
-4pres.
-2prent.
-.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èr
-1p2tér
-1pu
-.pud1d2l
-1pû
-1py
-1q
-4que.
-4ques.
-2quent.
-é3quent.
-élo3quent.
-grandilo3quent.
-1ra
-1râ
-radio1a2
-1re
-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
-.re2s3ciso
-.re2s3cou
-.re2s3cri
-.re2s3pect
-.re2s3pir
-.re2s3plend
-.re2s3pons
-.re2s3quil
-.re2s3s
-.re2s3t
-.re3s4tab
-.re3s4tag
-.re3s4tand
-.re3s4tat
-.re3s4tén
-.re3s4tér
-.re3s4tim
-.re3s4tip
-.re3s4toc
-.re3s4top
-.re3s4tr
-.re4s5trein
-.re4s5trict
-.re4s5trin
-.re3s4tu
-.re3s4ty
-.réu2
-.ré2uss
-.rétro1a2
-4re.
-4res.
-2rent.
-.pa3rent.
-appa3rent.
-transpa3rent.
-é3rent.
-tor3rent.
-cur3rent.
-1r2h
-4rhe.
-4rhes.
-2r3heur
-2r3hydr
-1ri
-1rî
-1ro
-1rô
-1ru
-1rû
-1ry
-1sa
-1sâ
-.sch4
-1s2caph
-1s2clér
-1s2cop
-1s2ch
-e2s3ch
-i2s3ché
-i2s3chia
-i2s3chio
-4sch.
-4sche.
-4sches.
-2schs
-1se
-1sé
-1sè
-1sê
-sesqui1a2
-4se.
-4ses.
-2sent.
-ab3sent.
-pré3sent.
-.res3sent.
-.seu2le
-.sh4
-1s2h
-4sh.
-4she.
-4shes.
-2shent.
-2shm
-2s3hom
-2shr
-2shs
-1si
-1sî
-1s2lav
-1s2lov
-1so
-1sô
-1sœ
-1s2patia
-1s2perm
-1s2por
-1s2phèr
-1s2phér
-1s2piel
-1s2piros
-1s2tandard
-1s2tein
-stéréo1s2
-1s2tigm
-1s2tock
-1s2tomos
-1s2troph
-1s2tructu
-1s2tyle
-1su
-1sû
-.su2b1a2
-.su3b2alt
-.su2b1é2
-.su3b2é3r
-.su2b1in
-.su2b3limin
-.su2b3lin
-.su2b3lu
-sub1s2
-.su2b1ur
-supero2
-supe4r1
-supers2
-.su2r1a2
-su3r2ah
-.su3r2a3t
-.su2r1e2
-.su3r2eau
-.su3r2ell
-.su3r2et
-.su2r1é2
-.su2r3h
-.su2r1i2m
-.su2r1inf
-.su2r1int
-.su2r1of
-.su2r1ox
-1sy
-1ta
-1tâ
-1tà
-tachy1a2
-tchin3t2
-1te
-1té
-1tè
-1tê
-télé1e2
-télé1i2
-télé1o2b
-télé1o2p
-télé1s2
-4te.
-4tes.
-2tent.
-.la3tent.
-.pa3tent.
-compé3tent.
-éni3tent.
-mécon3tent.
-omnipo3tent.
-ventripo3tent.
-équipo3tent.
-impo3tent.
-mit3tent.
-.th4
-1t2h
-4th.
-4the.
-4thes.
-thermo1s2
-2t3heur
-2thl
-2thm
-2thn
-th2r
-4thre.
-4thres.
-2ths
-1ti
-1tî
-1to
-1tô
-1t2r
-tran2s1a2
-tran3s2act
-tran3s2ats
-tran2s3h
-tran2s1o2
-tran2s3p
-tran2s1u2
-4tre.
-4tres.
-2trent.
-.tri1a2c
-.tri1a2n
-.tri1a2t
-.tri1o2n
-t1t2l
-1tu
-1tû
-tung2s3
-1ty
-.u4
-'u4
-.û4
-'û4
-uni1o2v
-uni1a2x
-u2s3tr
-1va
-1vâ
-1ve
-1vé
-1vè
-1vê
-vélo1s2ki
-4ve.
-4ves.
-2vent.
-conni3vent.
-.sou3vent.
-1vi
-1vî
-1vo
-1vô
-vol2t1amp
-1v2r
-4vre.
-4vres.
-2vrent.
-1vu
-1vû
-1vy
-1wa
-1we
-4we.
-4wes.
-2went.
-1wi
-1wo
-1wu
-1w2r
-2xent.
-.y4
-'y4
-y1asth
-y1s2tom
-y1algi
-1za
-1ze
-1zé
-1zè
-4ze.
-4zes.
-2zent.
-privatdo3zent.
-1zi
-1zo
-1zu
-1zy} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-gb.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-gb.hyp
deleted file mode 100644
index 8d98f2de4d7..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-gb.hyp
+++ /dev/null
@@ -1,15 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-gb.rme
-
-% used: a c e g h i m n o p r s t u v w y
-
-\hyphenation{
-uni-ver-sity
-uni-ver-sit-ies
-how-ever
-ma-nu-script
-ma-nu-scripts
-re-ci-pro-city
-through-out
-some-thing} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-gb.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-gb.pat
deleted file mode 100644
index 7aee4ea65d8..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-gb.pat
+++ /dev/null
@@ -1,8534 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-gb.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u v w x y z
-
-\patterns{
-.ab4i
-.ab3ol
-.ace4
-.acet3
-.ach4
-.ac5tiva
-.ad4din
-.ad3e
-.ad3o
-.ae5d
-.aer3i
-.af3f
-.af3t
-.ag4a
-.ag5n
-.air3
-.al5im
-.al1k
-.al3le
-.am5ar
-.ama5te
-.am2i
-.am3pe
-.am3ph
-.an1
-.ana3b
-.ana3s
-.and2
-.an5da
-.an4el
-.an4en
-.an4gl
-.an4on.
-.an3s
-.ant3a
-.an3ti3
-.ant4ic
-.an4t5o
-.any5
-.aph5or
-.ap4i
-.ar5ab
-.ar5ap
-.ar4ci
-.ar5d
-.ar4e
-.ari4
-.ar4ise
-.ar4isi
-.ar5sen
-.art5icl
-.as1
-.as4q
-.as5sib
-.at5ar
-.ateli4
-.at5omise
-.at5omiz
-.at3r
-.at3t
-.au3b
-.au3g4u
-.aur4e5
-.aus5
-.authen5
-.av4
-.av5era
-.bap5tism
-.barri5c
-.bas4i
-.ba5sic
-.be3di
-.be3lo
-.be5r4a
-.be5sm
-.bi4er
-.blaz5o
-.bo3lo
-.bos5om
-.boun4d
-.bov4
-.bra5ch
-.bre2
-.burn5i
-.ca3de
-.ca4gin
-.cam5i
-.cam3o
-.can1
-.can5ta
-.ca5pitu
-.car4i
-.cas5ual
-.ca4ti
-.cen5so
-.cen5tena
-.cent5ri
-.cer4i
-.ch4
-.cit4a
-.clem5e
-.clima5to
-.co5it
-.co3pa
-.cop5ro
-.co3ru
-.co3si
-.co5ter
-.cotyle5
-.cri5tici
-.custom5
-.dav5
-.dea5co
-.de5lec
-.del5eg
-.de3li
-.deli5r
-.de1m
-.de5nit
-.de3no
-.der2
-.de3ra
-.de5res
-.de3ri
-.de5scrib
-.de5serv
-.de5signe
-.de5sir
-.de5sis
-.de5spoi
-.determ5i
-.de3ve
-.de4w
-.di4al.
-.dia3s
-.di4at
-.din4a
-.dio5c
-.do2
-.do4e
-.domest5
-.du4al.
-.du4c
-.dys3
-.east5
-.echin5
-.eco3
-.ec3t
-.ed5em
-.ed4it.
-.ed4iti
-.eg4
-.ei3d
-.ei5r
-.el3ev3
-.el2i
-.elu5s
-.em3b
-.em5in
-.emp4
-.em5py
-.en1
-.en5c
-.en4ded
-.en3s
-.ent2
-.en5ta
-.eos5
-.epi1
-.epi3d
-.er2a
-.er5em5
-.er4i4
-.er4o2
-.eros4
-.erot3
-.er4ri
-.es1
-.escal5
-.es3p
-.es3t
-.etern5
-.eth3e
-.eu1
-.eur4
-.eval3
-.evol5ut
-.ew4
-.ex1
-.ex3a
-.eye3
-.fal4le
-.far4i
-.fec5unda
-.fen4d
-.feoff5
-.fi2
-.fi5lia
-.fil5tr
-.fin5ess
-.fin3g
-.fi5n4it
-.fis4c5
-.fo3c
-.fran5ch
-.fu5ga
-.ga4m
-.gam5et
-.gen4et
-.ge5neti
-.gen5ia
-.ge3ro
-.glor5io
-.gnost4
-.go3no
-.gos3
-.hab2
-.ha5bili
-.hama5
-.han4de
-.hast5i
-.he4i
-.hem5a
-.hi2
-.hi3b
-.ho2l
-.ho5rol
-.hov3
-.hy3lo
-.ico3s
-.idi2
-.ig3
-.ig1n
-.il4i
-.im5b
-.in1
-.in3d
-.in3e2
-.in2i
-.in3o
-.in3t
-.invest5i
-.ir3r
-.is4c
-.is4li
-.is4o
-.iso5m
-.ka5ro
-.ki4e
-.kin3e
-.lab4o
-.la4me
-.lam5enta
-.lan5i
-.lash4e
-.le4m
-.len5ti
-.le2p
-.lep5r
-.les5son
-.le5van
-.librar5
-.lig3a
-.li3o
-.li4ons
-.li4p
-.loc3a
-.lo4gia
-.lo2p
-.loph3
-.lous5i
-.lov5er
-.lub3
-.lyo3
-.mac5u
-.mal5ad5
-.ma5lin
-.mar5ti
-.math5
-.me5lodio
-.ment4
-.men5ta
-.me5rid
-.me5rin
-.met4er
-.mi4e
-.mi3gr
-.min5ue
-.mirk4
-.mis1
-.mi5to
-.mo3bi
-.mo5lec
-.mon3a
-.mor5ti
-.mu3ni
-.mu3si
-.musi5co
-.myth3
-.na5k
-.nari4
-.nast4
-.nas5ti
-.nec3t
-.ni4c
-.ni5tro
-.no4c
-.nom3o
-.nos3t
-.no5tic
-.nucle5
-.obed5
-.ob3el
-.ob3l
-.od4
-.oed5
-.oe5so
-.of5t
-.oi4
-.ol4d
-.ome2
-.om5el
-.on4ce
-.on4e
-.op2i
-.opt5a
-.or1
-.or4at4
-.ora5tori
-.or5che
-.or3d
-.ore4
-.or3eo
-.or4i
-.orner4
-.or2o
-.os1
-.osi4
-.oth5
-.out1
-.ov4
-.pal5i
-.para5dis
-.par5af
-.para5t
-.pa5ta
-.pa4tio
-.pec3t4
-.pecu3
-.ped3e
-.pend4
-.pen5de
-.pep3t
-.peri5n
-.perse5c
-.pe5titi
-.ph2
-.phe5nom
-.phon4i
-.pi2e
-.pi3la
-.plast4
-.plic4
-.plica4
-.plos4
-.po3la
-.po5lite
-.po2p
-.pop5l
-.po5sitio
-.pos5si
-.pro5bat
-.pur4r
-.put4te
-.ra5cem
-.ran5gi
-.re3ca
-.ref5ere
-.re5gar
-.re1i
-.re5lin
-.re1m
-.re5o
-.res5ci
-.re5sen
-.re5spo
-.re5stat
-.re5store
-.re5str
-.re3ta
-.re5u
-.re3w
-.rib5a
-.rin4
-.rit2
-.rol4la
-.ros3a
-.sa2
-.sac5r
-.sal4i
-.sa5lin
-.salt5er
-.sanc5
-.sap5a
-.sa3vo
-.sci3e
-.sea3s
-.sect4
-.sec5to
-.se3gr
-.sen3t
-.se1q
-.ser4ie
-.ses1
-.sev5era
-.sh2
-.si5gno
-.sis3
-.st4
-.stat4o
-.stra5to
-.string5i
-.su5da
-.sulph5a
-.sul3t
-.tact4i
-.tac5tic
-.ta4m
-.tamar5
-.tar5o
-.tect4
-.tel5a
-.tell5e
-.te4m
-.te5ra5t
-.ter4p
-.th4
-.tho4
-.thol4
-.ti2
-.til4
-.ti5ni
-.tit4is
-.tor1
-.tran4c
-.tri5bal
-.tri3d
-.trin4a
-.tri5sti
-.tro4ph
-.troph5o
-.tro4v
-.tular5
-.turb4
-.turi4
-.tu5te
-.tu3to
-.ul4l
-.ulti5mat
-.un5ce
-.un5ch
-.un3d2
-.under5
-.un3e
-.un3g
-.uni3c
-.uni3o
-.un3k4
-.un5s
-.un3t4
-.un5u
-.up1
-.up3l
-.ura4
-.ur5eth
-.ur4o
-.va5led
-.ve2
-.vec5
-.ve5lo
-.vent5il
-.ver4ie
-.ver3n
-.vic5to
-.vi2s
-.vis3i
-.vi5so
-.vo1c
-.vo5lut
-.wine5s
-.xy3l
-.za5r
-a4a
-1ab
-2ab.
-2aba
-ab5are
-abay4
-2abb
-ab5ber
-2abe4
-ab3erd
-ab3err
-a3bet
-ab1ic
-a3bie
-2abin
-4abio
-abi5on
-ab3ita
-ab4itu
-ab3la
-abli4
-4abolic
-ab3om
-ab3ota
-3about
-ab1r
-2abs.
-ab1ul
-abu4lo
-ab3use
-ab3usi
-2aby
-ac2a
-ac5abl
-ac3al
-5acanth
-ac5ard
-a5cat
-ach5al
-a5chini
-ach5ism
-achro4
-ach5ur
-2aci
-a4cic
-aci4ers
-acif4
-4acit
-ack5a
-ac3li
-4aco.
-aco3d
-ac5onr
-4acos
-4acou
-ac1r
-ac3ry
-act5ate
-act5ile
-ac2to
-act5ory
-ac2t5r
-ac5uat
-a5dai
-ada3v
-4adee
-ad5eni
-ad4ha
-ad3ica
-a5dif
-4adil
-adi4op
-adi4p
-adis4i
-a3diti
-3adju
-5admit
-a2do
-4adoe
-4adoi
-ad3ol
-a3dos
-ad1ow
-ad1r
-adram4
-4a2du
-ad3ula
-ad3um
-4ady
-ae5a
-ae4cit
-aeco3
-4aed
-aed5is
-ae5g
-ae3on
-ae5p
-aerody5
-ae4s
-ae5si
-aes3t
-aet4a
-aeth4
-aet4or.
-aev3a
-4af.
-4afe
-af5ta
-a4fu
-ag4ari
-4ageri
-a5ghe
-a5gia
-agi4as
-4agino
-4agl
-agli4
-4ag1n
-ag3oni
-agor4a
-ag5ot
-a2gr
-ag3ri
-agru5
-2ah
-a1h2a
-ahar2
-aha5ra
-a1he
-ah4n
-a5hoo
-2ai2
-4ai.
-ai3a
-a1ic
-aid4a
-aid5er
-aig2
-ai5gu
-ail3er
-ail3o
-aim5er
-ain5ders
-ai5nea
-a3ing.
-ain3i
-ain5o
-aint5er
-air5a
-air5p
-air3s
-ais1i
-a5ism
-2a1j
-a4ju
-2ak
-akel4
-ak5u
-al5abl
-alact4
-a1lae
-al5ais
-ala3ma
-al5ance
-al3at
-a5lav
-alc3at
-al3ch
-ald5ri
-2ale
-a3lec
-aleg4
-ale5ma
-al5ende
-a1leo
-a2let
-al3ibr
-ali4ci
-al5ics
-al1id
-al3if
-5alig
-al1in
-a5lini
-alin5o
-al5ipe
-al5ipot
-4alis.
-4aliu
-4alk
-alk5ie
-al4lab
-al4lag
-alli5an
-allig4
-al4lish
-a5loe
-al3ogr
-a3lom
-a3loo
-al1or
-al4orim
-alos4
-a4lou
-al3ous
-a5low
-al5pen
-al3ph
-al5tati
-al3tie
-alu3b
-al5ued
-al3ues
-a5lumnia
-al1va
-al5ver
-alv5u
-2a1ly4
-a5lyn
-2a2m
-a5mad
-ama4g
-aman5d
-a5marine
-a3mas.
-am1at
-a5m4atic
-am5atu
-am4bin
-3ambu
-am5elo
-a3men
-amen4d
-am3era
-am5erl
-am1i
-ami2c
-am5ica
-amic5r
-3amid
-a3mili
-am5ily
-amini4f
-am5iniz
-aminos4
-a5mis.
-a4mium.
-a3mon
-amor5a
-amort3
-am5ose
-am2p
-am5peri
-amphi5g
-amp3li
-ampo5l
-am3ul
-amyl5
-a2n
-an2a
-a5nadi
-an3ae
-an3age
-ana5k
-an3ali
-an3arc
-a5nast
-an4con
-an3d4at
-and5au
-and5eer
-an5del
-an5dif
-and5ist
-an5dit
-an4doni
-an4ea
-an5eer
-an3ell
-anel5li
-an3eu
-an3gan
-angov4
-an4gur
-4anh
-an3ic
-ani3f
-an5ifo
-4anig
-an5ion
-anis5te
-4anity
-4aniu
-an5no
-4anny
-an1o
-an2oe
-an3oma
-anor3
-an2os
-an5ot
-an2s
-an3sc
-an4sco
-ans3il
-an4sur
-an2t2a
-ant5abl
-an3tal
-an5tam
-an2te
-1anth
-an4thi
-3anthr
-4antic
-an4tie
-an4ting
-ant4iv
-an4tone
-ant4r
-an4tus
-an5tym
-an3ul
-an3um.
-an5ums
-a3nur
-a5nut
-an2y
-an5ya
-a5nyi
-2ao
-aol3i
-5aow
-2ap
-4ap.
-4apa
-a1pac
-ap3al
-ap5aro
-ape5li
-a5peu
-aph5em
-aph3i
-aph5ol
-aphyl3
-ap1i
-ap5icu
-ap3in
-ap4ine
-a5pir
-a3plan
-ap5li
-apo5str
-apo3th
-a2pr
-ap5ron
-4aps
-apt5at
-apu5lar
-a5pun
-a4q
-a5qui
-a2r
-4arabi
-ara5bo
-aract4i
-ara2g
-ar3age
-ar4aged
-ar5agi
-ar3ago
-a3raj
-ar3all
-ara3m
-aran4g
-aran5te
-ar5apa
-ar1at
-a3rau
-ara3v
-ar3ba
-arb5et
-ar4bid
-ar4bl
-arb3li
-ar4bul
-ar5chet
-arch5o
-ar5dina
-ar4done
-ar3en
-aren5d
-ar5ett
-ar3ev5
-ar5gh
-ar3gu
-ar3h
-ar1i
-ar5iff
-ar4ill
-a5ri5net
-ar5ini
-a5rishi
-arm3er
-ar5mit
-ar3nal
-ar3nis
-ar3od
-ar5oid
-aro4mas
-aro4n
-a5roti
-a5rouc
-ar3ox
-arp5ers
-ar4pu
-2arr
-ar2rh
-ar2s
-ars5al
-ar3so
-art5at
-ar2th
-arth4e
-arth3r
-ar5tiz
-2aru
-ar3um
-ar5un4
-a3ryo
-a5ryt
-ar5z
-as1a
-as4af
-asan2
-2asc
-as5con
-as5cot
-as2cr
-as2e
-as3ect
-4ased
-asep4
-ash5ay
-ash5il
-as5ily
-as3in
-a5sio
-a3sit
-as5iv
-ask5er
-aski4
-as4la
-as4lo
-2aso
-as5och
-a4soned
-as5or
-as3ph
-ass2
-assa5gi
-ass5ibl
-as4sil
-assit5
-2asta
-as4tat
-as4tia
-as3tis
-as4tit
-4asto2
-as3tra
-as4tri
-as1u
-as4un
-as5ur
-2a2ta
-4atabi
-a5talis
-atam4
-ata3p
-atar3a
-ata3s
-ata3t4
-at3eau
-at3ech
-at5eer
-a5tel.
-ate5le
-at5enat
-at3ent
-4ater
-at3era
-at5ernis
-at5erniz
-4atess
-at5et
-4a2th
-ath3a
-a3then
-ath5erin
-ath5ero
-ath5ete
-ath3i
-ath3od
-a5thon
-ath5r
-4a3tia
-ati2c
-at5icis
-ati5cit
-at5iciz
-a2tif
-a4t1i4l
-a4tim
-a2t3in
-4atina
-at5ing
-4at4is.
-at1it
-atit3u
-atitud5i
-4atiu
-at4ivi
-a5tiviz
-a2to
-5at5od
-4atog
-2atol
-4aton
-a3too
-a4tops
-a5torian
-a4tory
-atos4
-a5toz
-2a2tr
-at3ra
-a4tre
-5at5ress
-at1ri
-atric5u
-at3ron
-at5rou
-at4tag
-2a2tu
-at1ul
-atu4m
-at3ura
-at3urg
-4a2ty
-2au2
-4au.
-aub5i
-4auc
-au5cer
-auc3o
-aud5er
-audic4
-aul3i
-aul4t
-aul5ted
-ault5er
-ault5i
-au3ma
-aun2
-aun5chie
-aun3d
-aun4dre
-au5reo
-aur4o
-au5ror
-4aus.
-aus5er
-aus5p
-aus4ted
-aut3ar
-aut3er
-au3th
-2av
-av4ab
-ava4g
-av3age
-ava5la
-av5alr
-av5ant
-av5ar
-avas3
-av3end
-av3ern
-av3ig
-aviol4
-av1is
-aw5er.
-aw5ers
-aw1i
-aw5nie
-aw5y
-a4x
-ax2id
-4ay
-ay5la
-ay3m
-ayn4
-ays2
-ay5si
-ay5sta
-ayth4
-2az2
-az3ar
-aze4
-az5ee
-azyg4
-azz4l
-2ba.
-ba5bir
-3back
-baen4
-bag4a
-5bah
-ba4i
-bal3a
-balm5i
-ba5lon
-bal5u
-bam4a
-ban4a
-ba5nan
-b4ane
-5bang
-b4aniti
-b4ans
-ba4p1
-5barb
-bar4d
-bardi4
-bar4n
-ba5rom
-bar3on
-5bars
-1bas
-bas4te
-ba4th4
-3batic
-ba5tio
-bat5on
-battle5
-2b1b2
-b4bata
-b3bli
-b4bone
-b1c2
-bcord4
-2b1d
-bdeac5
-bde4b
-bdi4v
-b2e
-4be.
-3bea
-4beas
-be3ca
-3becu
-2bed
-be3da
-bed5el
-bed2i
-be4do
-be5dra
-be4du
-5bee
-3bef
-be3go
-be5gr
-be3gu
-1bel
-be3la
-2bele
-be3lit
-bel4t
-be3m
-ben4d
-bend5a
-bend5er
-be1ne
-be5nig
-be5nu
-4beo
-be3q
-2bere
-berga5m
-berl4
-5berr
-ber5s
-b5ertin
-be1s2
-2bes.
-be3sl
-be3tr
-be3w
-2b1f
-bfa4
-4b1h
-b4ha
-2bi.
-1bia
-bi4b1
-bicen5
-3b2id
-bid5i
-b4ie
-bi4ers
-bif4
-bi4fid.
-bi5ga
-bigu3
-b1il
-b2ile
-5biles
-3b2ill
-4bim
-bimet5
-5bina
-5bin4d
-bind3e
-bin5et
-bin5i4
-1bi2o
-bio3l
-bio5m
-bi3ou
-bip4
-bi5q
-bir4
-bi3re4
-bi5rus
-b2is
-5bism
-bis4o
-bisul5
-3bitua
-4bity
-bi5ve
-b1j
-4b5k4
-2bl2
-5blac
-blag4
-b3lan
-5blast
-bla5tu
-blem5at
-3bler
-5blesp
-4blik
-blim3a
-bli3o
-bli2q
-b3lis
-4bly
-2b1m
-bment4
-bmi4
-4b1n
-bo2
-4bo.
-3boa
-bo5am
-5bob
-bod5i
-bo5h
-2boid
-4boke
-bol4e
-4boled
-bol3i
-bol4t
-3bon
-bon4c
-bon4e
-bon4ie
-boni4f
-bon4sp
-1boo
-b3orat
-bor3d
-bor5ee
-bor5et
-3bori
-bor5ic
-bor5io
-bor4n
-bot3an
-5boti
-boun5ti
-3bour
-bous4
-bow2
-bow3s
-4boxy
-5boy
-br4
-3brach
-4bral
-bram4
-b2ran
-bran4d
-4bre.
-b4reas
-4b2res
-brev5et
-b2rid
-5brief
-bring5
-bri4os
-b5rist
-b4roa
-bro4ma
-bros4
-brum4
-4bry.
-4b1s2
-b3sc
-bscon4
-bsen4
-bserv5an
-b5si
-bsin4
-bso2
-bsol3e
-bso3lu
-b4stac
-bstupe5
-2b1t
-b5tlet
-4bu.
-5bub
-buf5fer
-b4uli
-b4ulos
-bun2
-bun4a
-b5u5nat
-bunt4
-bur3e
-bur4ri
-busi4e
-buss2
-bus5si
-3bust
-bu5tar
-b3ute
-b5utin
-3butio
-but4iv
-b5ut5o
-b1v
-4b3w
-2by
-4by.
-3byi
-bys4
-5byt
-2ca.
-cab5in
-c4ace
-caco3
-cad4r
-5caf
-ca3go
-5cai
-5cak
-c1al
-c4ala
-ca5laman
-cal5ar
-3calc
-ca5lef
-call5in
-cal4m
-ca3ly
-ca3ma
-cam4i
-ca5nar
-c2an4e
-c4ano
-ca3noe
-can5tar
-can5ted
-can4tic
-can4tr
-5cao
-1cap
-ca5pil
-capt4
-cap3ti
-cap3u
-1car
-ca3ra5c
-car5ame
-ca3ree
-ca3r4i3c
-car3if
-car5m
-car3ni
-car3ol
-car5on
-car5oo
-ca3rou
-car4v
-case5
-cashi4
-3cas3s
-cas5tig
-3casu3
-c1at
-c4at.
-c2atc
-c4atom
-ca3t2r
-c4ats
-cat4u
-3cau
-caulk4i
-cav3il
-3cay
-c1c4
-ccent5r
-cces4sa
-c3ch
-cci3d4
-ccip4
-ccle3
-4ce.
-4ceab
-cean3
-3ceas
-ce4ci
-2ced
-5ceda
-ce3dar
-3cede
-3cedi
-4cef
-ce5g
-3ceiv
-cel3ai
-cel5ib5
-5cell
-cel5lin
-celo4
-ce5lom
-4cely
-2cem
-ce4met
-3cemi
-ce4mo
-1cen2
-5cenc
-cen5ci
-cen5ded
-cend5en
-cend5er
-cen3i
-2cenn
-3cent
-cent4a
-cen5ted
-cen5ter.
-cen5ters
-cen5tes
-1cep
-cept3a
-cep5tic
-3cera
-cer4bi
-3cerd
-ce3rem
-5cern
-5cess
-cest5o
-ces5tr
-ce2t
-cew4
-2ch
-4ch.
-4chab
-3chae
-3chai
-cham5per
-chan5gi
-cha3pa
-chec4
-4ched
-3chee
-3chem
-che3ol
-ch1er
-ch4eri
-5cherin
-ch4erl
-4ches
-3chete
-ch5eu
-che5va
-3chew
-ch5ex
-5chi.
-3chia
-3chico
-ch3ily
-ch4in.
-ch3inn
-3chio
-5chip
-chizz4
-ch5k
-5chlor
-4chm
-1cho
-cho3a
-5choc
-4choi
-ch5oid
-3chor
-4chored
-chor5ol
-4choso
-3chot
-4choti
-ch5ous
-chow5
-3chr
-chur4
-3chut
-5chyd
-3chyl
-3chym
-1c2i2
-4ci.
-4ciac
-cia4m
-ci3ca
-4cids
-4cie.
-ci3er
-ci3est
-ci5et
-ci3f
-cifi4
-4cig
-ci3ga
-cigar5
-3cil
-cil5lin
-2cim
-cim3a
-ci3me
-5cimen
-4cinab
-4cind
-cine5a
-cine5mat
-ci5ness
-4cint
-ci3ol
-ci5om
-ci4po
-cisi4
-cit3r
-ck1
-ckar5
-cka5t
-c4ke
-ck5if
-ck4sc
-cl2
-cla5rif
-3clas
-c2le2
-2cle.
-c5lec
-clemat4
-clev3
-cli1m
-c3ling
-cli2q
-clo4q
-c4lotr
-clue4
-clyp5
-5clys
-cn2
-c3ni
-1c2o2
-4co.
-3coa
-co5ba
-3coc
-co3ci
-co5cu
-co3dic
-co3dif
-4cody
-3coe
-co5et
-co3gr
-4c3oid
-co3inc
-4col.
-col3a
-co3log
-5colou
-co5ly
-co5mas
-co4me
-co3mo4
-comp4
-con1
-con4ati
-con4ch
-cond5er
-con4ey
-con4ie
-con3s
-con3t
-conta5d
-3coo
-coop4
-co3or
-cop4e
-co3ph
-co5pl
-co3po
-cop4t
-2cora
-cor5ded
-cord5er
-4cored
-co3rel
-3corn
-4coro
-co5rol
-5cort
-3cos.
-cost3a
-cost5er
-co5ta
-3co3tr
-5coty
-cous5t
-cov1
-co3va
-cow5a
-coz4
-co5zi
-c1q
-cr2
-5craf
-craft5i
-c4ran
-5crani
-cra5niu
-cras3t
-cra4te
-c2re
-4crean
-cre3at
-cre4p3
-5creti
-cre4to
-cret5or
-cri3l
-cron4
-crost4
-4crou
-5c4rus
-cry2
-crym3
-cryo3
-4c5s4
-csim5
-2ct
-c2ta
-c3tac
-ctac5u
-c5ta5g
-ct1an
-ct5ant
-c5taria
-c3tato
-c1te
-c4tea
-c2t5ee
-c4tent
-cter4ia
-ct5es
-ct5et
-ct2ic
-c5ticia
-c4tics
-ctifi4e
-c3tim
-ct4in.
-ct4ina
-ct5ing
-c3tini
-c5tin5o
-c5tio
-c3t2is
-c3tit
-c4titu
-c4tity
-ct5ive
-ct4ivit
-ct5olo
-c1tom
-c3ton
-c5toris
-c5toriz
-c1tr
-c2tre
-ctro5t
-c1tu
-c2tum
-c1ty
-cub3at
-c4uf
-cu5ity
-cul5ab
-c2uli
-cull5er
-cull5in
-1c2ult
-cu4mi
-5cuna
-cun4e
-5cuni
-5cuol
-cu5pa
-cu3pi
-c3upl
-1cur
-cur4er
-cur5ial
-4cur4o
-1cus
-cus5a
-c3utiv
-c3utr
-5cuu
-cu5v
-2cy.
-cy4bi
-1cyc
-cyl3
-cy4m
-cy5no
-cys4
-cys5to
-cy4t
-cz2
-4da.
-d4abr
-1d2ac
-dach4
-d5ache
-3dact
-d1ag
-d4a4gi
-d4ale
-d4alg
-dal5ler
-dam5a
-3dame
-d3ami
-da5mu
-3dang
-d1an4t
-d3ap
-d3ard
-5darm
-3d4as2
-dast5a
-d1at
-dativ4
-dat4u
-daugh3
-daun5te
-3dav
-d3b
-d3c4
-d1d4
-d4dere
-d3di
-d3dler
-d3dli
-d3dyi
-2de.
-deac3t
-de5aw
-de4bi
-deb5it
-3dec
-de5cant
-de4cil
-de1cr
-4dect
-ded3i
-defor5e
-de4fy.
-de3g
-de4gu
-de3io
-5de3is
-de3lat
-deli4e
-del5ler
-del5li
-de5lo
-1d4em
-4demie
-4dem4is
-demo4n
-de4mons
-de3mor
-de4mos
-4demy
-de1n2a
-den4d
-4dene
-d3enh
-deni4e
-dens5a
-dens5er
-den5tit
-de3od
-deo3l
-deon2
-deont5
-de1p
-depen4
-deposi4
-de2pu
-d3eq
-derac4
-de3rai
-d4ere
-4dered
-de5reg
-3derer
-1deri
-der3k
-3derm
-der4mi
-der5min
-5derne
-3dero4
-der5os
-der3s
-5deru
-4des.
-de3sa
-5desc
-des4ca
-de5scal
-de3sec
-des4i
-de3sid
-des5igna
-des1p
-des5pon
-de3sq
-d3est.
-des3ti
-1de1t
-de3tes
-de5th
-de2ti
-dev3il
-de3vis
-de3vit
-de4voi
-devol5u
-3dex
-2d5f
-dfol4
-d2g
-dg4a
-dgel4
-d4gen
-d3gr
-4d1h
-dhot4
-d4hu
-4di.
-1dia
-di2ad
-3diar
-diat5om
-4d1ib
-d1ic.
-dic5am
-di4ce
-di3ch
-d5icl
-dic5ol
-1dict
-dic5tat
-dic4te
-5dicul
-d5icur
-1did
-di4ers
-3di3ev
-d4ifo
-dig3al
-di3gam
-dil4
-5dill
-dilo4
-di3lu
-di5mer
-dimet4
-di1mi
-2d1in
-din4e
-din5gi
-di5nos
-3di1o
-dio4c
-di4ola
-dip5t
-3dire
-di3ri
-4d5iro
-di4s1
-d4isc
-disen3
-3disia
-3diss
-d4itas
-d4iter
-dithe4
-d3ito
-ditor3
-2dity
-1diu
-1di1v2
-di4val
-di5vine
-dix4i
-d1j
-2dl4
-d1la
-5dlef
-5dlest
-3dlew
-dlin4
-d1lo
-d5lu
-2d1m
-4d1n2
-1do
-4do.
-d4ob
-do4c3u
-dog4a
-do4j
-d4ol.
-dol3en
-do5line
-dol5it
-do4lon
-d4ols
-5dom.
-doman4
-domin5
-dom5ino
-dom5it
-do5mo
-don4at
-4dony
-3doo
-d2or
-4dor.
-dor4m
-dort4
-d4os
-do5sim
-dossi4
-dot1a
-dot4tin
-2dous
-d4own
-3dox
-d1p
-dr2
-d5rail
-d3ral
-3dram
-dran4
-d4ras
-drast4
-3drel
-dres4
-dress5o
-dri4e
-d4rif
-dri4g3
-d4rom
-dropho4
-drunk3
-4d1s2
-d5sl
-ds3m
-ds4mi
-d4sw
-dt4
-dt5ho
-1du
-2du.
-du1at
-3duc
-duch5
-duci5an
-du4co
-du5eli
-du5ell
-du5en
-du5ett
-du5in
-dul3c
-d3ule
-dul4l
-dum4be
-dun4a
-d5un4c
-du2p
-du3pl
-5duro
-d5use
-dust5er
-du3u
-d1v
-dver2
-dvert3
-dvoc5at
-2d1w
-dwell3
-2d2y
-dy4ad.
-dy5ar
-5dy4e
-5dyk
-dyl2
-dyll3
-5dymi
-3dyn
-dys3p
-d3zo
-ea2
-4eab
-e1act
-eac4te
-ea5cu
-e5add
-ead3er
-ead1i
-ead3li
-ea4g
-eak1
-eal3a
-eal3er
-ea3log
-eam4bl
-eam3er
-ean5i
-eap2
-eap5er
-e3app
-ear3a
-ear3er
-ear4li
-e5ar2r
-ear4te
-earth5i
-eas5er
-ea4soni
-e1as1s
-eassem4
-eas4t
-east5i
-eat5eni
-eat3er
-eat5ie
-e3atif
-eatit4
-eat4itu
-e3atri
-e4atu
-eau3
-eav5i
-eavi4e
-eav5ou
-eaz5i
-e1b
-ebar4
-eb2b
-ebe4
-e4bel.
-e4bels
-e2ben
-eb5et
-eb2i
-e5bil
-e4bin
-e4bis
-e4bl
-e4bos
-ebot3o
-e2br
-eb1ra
-eb2t
-e4buc
-ebus5i
-ec2a
-ec3ade
-ecad5en
-ecal5e
-e5cam
-e4capo
-ec3at
-ec5ath
-e1ce
-ecent5o
-ech3i
-e4cib
-eci4f
-ecip5i
-e1cl
-ec3lip
-econ4sc
-econstit5
-ec3ora
-ec5oro
-ec3rat
-ec5rean
-e4crem
-ec1ro
-ect5ati
-ec4ter
-ecti4c
-ec4tit
-ec4t5us
-ec1ul
-e5culi
-2ed
-e5dans
-e2dat
-ede2
-e4ded
-e5deh
-e4dele
-edes3t
-ede3te
-edeter5
-e3dev
-e5dew
-ed4g
-edi4als
-ed5ical
-ed5ics
-ediges4
-ed5igr
-ed3ime
-ed1it
-edi2v
-ediv5id
-ed3li
-edor4
-e4dox
-ed1ro
-edu5cer
-e2dul
-ed3ulo
-e4d5ur
-ee4ce
-eed3er
-ee4do
-ee2f
-ee5g
-ee1i
-ee2l1i
-ee2m
-eem5er
-eem3i
-eep1
-ee4pa
-eer4ine
-eesi4
-ee3to
-e1f
-efact5o
-efal4
-ef5eree
-ef5inite
-e4fite
-ef4l
-efor5est
-2efu
-e4fug
-efut5a
-egel3
-egi5a
-e4gib
-e3gla
-eg3le
-eg4mi
-eg5nab
-e5g4on
-e2gr
-e5gur
-e1h2
-e5ho
-eh5s
-ehy2
-ehyd5r
-eid4
-5eido
-4eif
-eig2
-e5ignit
-e4in.
-e3inc
-e2ine
-e1ing
-ein5i
-e4ins.
-ei4p4
-eir3o
-4eis
-eis3i
-eit5er
-eith4
-e2iv
-eiv3er
-e2iz
-e1j
-ejudic4
-ek3en
-ek5is
-ek4l
-e4lac
-e5lad
-el5age
-elam4
-el5anc
-elast3
-e4lates
-el5ative
-elch5er
-eld3er
-2ele
-elea5g
-4e4led
-el5eni
-el3eno
-ele3o
-ele5ph
-el1er
-e1les
-e5less
-e4leste
-el3et3o
-elev3a
-ele3vi
-el5ex
-e4l3ica4
-e1lie
-eli4ers
-e3lim
-el3ing
-eli3on
-e4li4s
-elit4t
-e3liv
-el4lab
-ell5iz
-e3loa
-e3loc
-elo5ca
-eloc3u
-elo4di
-e2log
-elom5ate
-el5op.
-el5ops
-elp5in
-el3so
-el5tie
-e1lu
-elu4m
-elus4
-elv4
-e5lyi
-3elyt
-em3ago
-em3ana
-emar4
-emarc5a
-em5atiz
-emat5ol
-em5bi
-e1me4
-e4mee
-e4mel
-e3mem
-e4m3era
-em5ero
-emet4e
-em4icis
-e4mie
-e2mig
-emig5ra
-em3ina
-em5ing
-e3mio
-em3ism
-e4mita
-e4miu
-em4mae
-4emnit
-emo3bi
-emod4u
-e2mog
-e4moi
-em3olo
-em5om
-4emon
-e3moni
-emon5ol
-e2mor
-em5oris
-em3orr
-e4motic
-e5moz
-empa5r
-empara5
-em5pes
-4empli.
-em4pre
-em3um
-e5mut
-en3ac
-e4nal
-en3am3o
-en4ann
-e2n3ar
-en3as.
-ena5ture
-3encep
-en4cile
-enct4
-2end
-en4d5al
-en4dedl
-end5rit
-4ene
-ene5d
-en3ee
-e5nelle
-e5nep
-e2ner
-e5nereo
-ener5v
-en5esi
-e3ness
-en1et
-en4ett
-e2n3eu
-e3new
-en3gi
-en3ic
-en5ier
-en3ig3r
-en5in
-enit5u
-en3k
-en1o
-en3oi
-eno2m
-en3oty
-enov3
-en2s
-ens5al
-en3sp
-en4sum
-en4sus
-ent3ar
-en4ters
-en5tia
-en4tify
-en2to
-en4tri
-ent5rin
-ent5up
-en4tus
-4enu
-en3ua
-en3uf
-en3ur
-en5ut
-5enwa
-eo3b
-e4och
-e4oda
-eof2
-eo2l
-eol5ar.
-eol5at
-eologi4
-e5olu
-eo3m
-eon4a
-e3ont
-eop4t
-e1or1
-eor4de
-eor3e
-eor5o
-eo1s2
-eo4to
-e1pa
-ep4al
-ep5arc
-epa4t
-epend5en
-ep5ert
-e4pete
-epe5titio
-ep5ex
-eph1
-eph4i
-e2pig
-e5pla
-ep3lic
-epol3a
-epol3i
-epolit5
-ep3reh
-epres5e
-ep5rim
-e4p5rob5
-ept3or
-e1p4u
-e3pur5
-e4puta
-equin4
-equi5no
-er1
-era4cie
-era4do
-era4g
-era4l
-er3aph
-er3api
-er3apy
-4erati.
-4eratim
-er5atu
-er3bat
-er3be
-erb5os
-2erc
-er3ch
-er3cl
-2erd
-erd5ar
-erdi4e
-2ere
-er3eal
-4ered
-er3egr
-er5el.
-er5ell
-er5els
-e4reme
-er3en
-5erend
-eren4e
-ere5ol
-e3req
-er3er
-ere4s
-er5ese
-er3esi
-er5este
-er5esti
-eres5tr
-eret4
-er3et.
-er3ets
-er3ett
-ere4v
-er3ex
-ergi3v
-er3gl
-er3ia.
-er4ian
-eri4cid
-5er5ick
-er2id
-er3ie
-er3iff
-er4imet
-er3in
-eri4na
-eri4on
-er3iou
-er4isc
-eri5sta
-4eri2t
-e3riv
-er5iz
-4erj
-erk4
-er3me
-er4moi
-5ernacl
-er5nalis
-ern3er
-ern3is
-ern3it
-4ero.
-er3oid
-ero5is
-ero5st
-erpent5in
-erre5la
-er4rep
-er5sine
-er5ted
-er4ter
-ert5er.
-ert5ers
-er4thi
-ert5iz
-2eru
-eru4b
-eru5d
-erund5
-er4vil
-5erwau
-eryth3
-2erz
-4es.
-es5am
-es5an
-e2sc
-es5can
-es5che
-esci5e
-escut5
-e3sea
-e3sect
-e5see
-e5seg5
-ese4l
-es5enc
-e3sh4a
-e1shi
-e5shu
-esi4an
-es5ic.
-e5sick
-es5iden
-esi5diu
-es5ies
-es3im
-es3in
-e5sion
-e4sit
-es4it.
-es4its
-e3skin
-e3s4mi
-es4od
-es3ola
-es3ol3u
-es3ona
-eso3p
-e1sor
-es3per3
-es5pira
-es5pit
-es4pl
-esplen5
-es5pot
-e5s2pr
-es4s3an
-essar5
-ess5ee
-es4sil
-es2so
-esta4b
-est3an
-e5star
-es5tau
-e2sti
-est5ifi
-est5igati
-e3stoc
-es5too
-est4r
-estud4
-e1su
-e2s3ul
-es4ur5
-et2a
-et3al.
-et5allis
-et3al5o
-eta5me
-eta3p
-et3ari
-et5ary
-et4as
-et3ate
-et3ati
-et5ay
-et3eer
-etell5i
-etend5er
-et5eni
-eter2
-et3er3a
-et5eria
-etex4
-e2th1
-ethyl3
-2etia
-e3ticu
-eti4gi
-e5tim
-et3in
-eti4na
-e3tir
-et5itiv
-eti4u
-et5olo
-e5tomete
-e2ton
-et3ona
-etor3i
-etra5g
-4e4tral
-etra5m
-et4ran
-et5ress
-et1ri
-et4ria
-etrib5a
-e4trim
-et1ro
-et2t
-et3ter
-etud4
-et3ude
-e4tum
-et4we
-et5z
-eudio5
-eue4
-euk5
-4eum
-e3urg
-eur5i
-eus4
-eu5ten
-eu3ter
-eut3i
-ev4abi
-eval5e
-eva2p3
-ev3ast
-ev3at
-ev5eli
-eve4n
-ev5erat
-ev5eren
-ever4er
-e4veri
-e4ves
-e1via
-e4viab
-e2vic
-evictu4
-evid3
-ev5ig
-ev4ile
-ev5ish
-evis5in
-evis5o
-e4viu
-evoc3
-evol5e
-evol5ute
-evu4
-e1wa
-e4wag
-e5way
-ew1er
-e3wh
-ew5ie
-ew1in
-ew5ish
-e3wit
-e1wr
-ex5ic
-ex4on.
-1exp
-4ey.
-ey4as
-eyl4
-ey3s2
-ez5er.
-ez5ers
-ez5ie
-1f2a
-2fa.
-fab4i
-fa3cet
-fact2
-fa2c3u
-2f3ag
-fall5in
-5falo
-fa5lon
-fals5ifie
-4fan3a
-fan5tasiz
-fant3i
-5far
-far3i
-5faw
-4f5b
-2f5d
-2fe.
-3feas
-fea3tu
-feb5r
-3fec
-2fed1
-5fei
-fe1li
-fem3i
-femin5
-fend5er
-f5eni
-4fered
-fer3ee
-3fero
-fe5roc
-fer5om
-3ferr
-fer3v
-2fes.
-fess3o
-fest3a
-fest5i
-fe4t
-fet4al
-fet4in
-fet4o
-3feu
-fe5veri
-2ff
-f1fe
-ffec4te
-f5fet
-f1fi
-f5fia
-f3fic
-f5fie
-ffil3
-f2f3is
-ff4le
-ff3lin
-ffoc3
-ffoni4
-ffor3e
-f3fr
-ffranch5
-4f5h
-fi5ance
-fib5u
-4fic.
-4fical
-3fici
-4fics
-fi5del
-fid3en
-fiel4
-fier4c
-fight5
-1fi2l
-2fin
-fin2a
-fi3nal
-find3
-fin2e
-f1ing
-5finin
-fin4ni
-fir2m1
-f3ita
-f5itee
-fl2
-3fla
-fle2s
-f3lica
-flin4
-3flo
-flo5ric
-3flu
-flum4i
-1fo
-4fo.
-3foc
-fo2e
-foeti4
-fo1l4i
-fo4lie
-foment4
-fo2n
-fon4de
-3foo
-fo5ram
-for5ay
-for5b
-for4di
-fore3t
-5form
-for4m3a
-fortu5na
-fo3v
-1fr2
-frag5a
-frant4
-frar4
-fratch4
-fre4s
-frost5i
-fruc4
-2f3s
-fs4p
-2ft
-f1ted
-f4ter.
-ft5es
-fti4et
-ft4ine
-3fu
-4fu.
-fu4c
-fuel5li
-fug4a
-fu4min
-fun2g
-4fured
-fur3n
-fu3sil
-fus5o
-fu5til
-4ga.
-ga4cie
-gadi4
-ga4dos
-3gag
-3gai
-3gale
-ga5len
-gali4a
-gal5ler
-3galo
-gam4bl
-gan5at
-4ganed
-gang5er
-g5ant.
-gan4tr
-g5ants
-g5arc
-g4are
-gar3ee
-gariz4a
-ga5rot
-gar5p
-5garr
-1ga4s
-gas5i
-gas3o
-gasol5
-gass5in
-gast3r
-g1at
-g4at.
-gat5iv
-g4ato.
-g4atos
-g4att
-gat5u
-gaud5
-ga5za
-g1b
-g5d4
-2ge.
-5geal
-3gean
-2ge4d
-3gedi
-5gedn
-4gef
-1gel
-4gele
-ge4li
-gel4in
-gel5li
-ge4lu
-2gely
-gem3i
-5gemo
-3gen
-gen4du
-gen5it
-gen3o
-gen5ti
-ge4o
-geo3lo
-4gere
-3germ4
-2ges.
-5gess
-gest5at
-3get
-get3a
-2g1f
-2g1g
-gg4a
-g2ge
-g5gedl
-g3ger
-g5gerer
-ggi4a5
-g3gli
-gglu3
-g5gly
-ggrav3
-g4gro
-2gh
-g5hai
-gh5eni
-g3ho
-g4hos
-gh2t
-1g2i
-4gi.
-gi4all
-gi4at
-3gib
-gi5co
-gi4g
-gi5gan
-gin5gi
-3gio
-gi4or
-gi4ot
-5gip
-gi5pa
-g4i4s
-5gis.
-gi2t1
-5gitu
-giv5en.
-2gl2
-g3lar
-5glass.
-glec4
-3gler
-g4leto
-g4letr
-g4ley
-gli5on
-g5lis4
-3glo
-4g5lod
-glom3
-4glop
-3glu
-glu5te
-glu5ti
-3glyp
-2g1m4
-2gn2
-g1na
-g4nab
-g5nate
-5gnath
-g5nati
-gna5tur
-gn5edl
-gn5ee
-gn3er
-g1ni
-g4nia
-g2n3in
-gn4in.
-g4ni2o
-g2no
-5gnori
-gno4s
-2go.
-5goa
-3goc
-5god
-3goe
-go4et
-go4ge
-4gogram
-g5oid
-go3is
-go2me
-5gonn
-go5nom
-3goo
-goph4
-4gor.
-5gorg
-4gors
-g4ory
-3gos
-gos4t
-2gou
-gour4i
-g1ous
-gov1
-g3p
-1gr2
-grab4
-3gram
-4grame
-gra2p
-g4re
-gril4
-grim3a
-g4ro
-gro4g
-g5ron
-grop4
-3gru
-gru3en
-gru5i
-grum4b
-2g1s
-gs4c
-gs4t
-g4sti
-gth5eni
-g5to
-g4u2a
-gu5ab
-5guan
-3guard
-g5uat
-2gue
-5gueu
-5guit4
-gui5ta
-gu2ma
-gu4mi
-3gun
-g4uras
-g4ured
-gur4n
-gur4u
-4gury
-gust5a
-2g1w
-2gy
-gy2b
-5gym
-3gyn
-gyn5o
-g5z2
-ha2
-4ha.
-h4ac
-hadi4e
-had4ine
-hae3o
-haged5
-hagi3o
-hag5u
-ha5ic
-hais4
-hak4ine
-hal5ant
-ha4m
-ham5an
-han4cro
-han2g
-h1ani4
-h5aniz
-han4t
-hant3a
-ha4pe
-hap3l
-har1a
-har5b
-har4d
-har5die
-harge4
-ha5rism
-har3o
-har4ted
-har4ti
-has4te
-hat5o
-haught5
-havel4
-hav5ersi
-hav5o
-h1b
-h1c
-h1d
-hdeac5
-hdu4
-he2
-4he.
-h2ea
-1head
-3hear
-hearch4
-heast5
-heav5en
-hec3t4
-he5del
-he3do
-heek4
-h4ei
-he3is
-he5lat
-h5elin
-he3lio
-he5liu
-hel4li
-h3el3o
-hem1a
-he3men
-hemis4
-he5mop
-hem4p
-hende5
-he3or
-hep1
-h1er.
-her4as
-her2b
-herb3a
-herb3i
-here3a
-here3o
-h5erett
-h5erh
-her5ial
-h5erine
-h1erl
-her5om
-h4eron
-h1ers
-h5erwa
-hes3tr
-het1
-h4et3a
-het3i
-het4ted
-heu2
-heum3
-heumat5
-he4v4
-hev5i
-hex5o
-h1f
-h5h
-2hi.
-hi4ar
-h1ic
-hi3c4an
-hi4cin
-h4icl
-h5ie.
-h1ier
-h4i4ers
-h1ies
-h3ifi4
-h3ify
-hig4o
-hi5ka
-hi4l
-hi5ma4
-hi5mer
-himos4
-h1in
-hin4d
-h2in2e
-hi5nie
-h5iniz
-hi5nop
-h2ins
-hio5lo
-h4ior
-hi2p
-hip3l
-h4ir
-hir4r
-hirr5i
-hit4a
-hiv5a
-4hl
-h3la
-h1le
-h3let
-h1l2i
-hli4a
-2h1m
-h4manic
-h5mica
-2h1n2
-hnocen5
-4ho.
-ho3an
-ho4co
-ho3don
-ho5du
-ho5ep
-hol3ar
-hold1
-hol4is.
-ho5lys
-ho4mag
-hom5in
-h2o4n
-hon5em
-ho5neu
-hon3ey
-hong3i
-ho5nio
-hon1o
-1hood
-hoo5r
-h4ope
-ho2p5r
-h4op4te
-hor5et
-h4orn
-horn5i
-ho5rog
-hort5h
-hosi4
-ho4ton
-h2ou
-3house3
-4h1p
-2hr
-hras5eo
-hre4
-hre5ma
-hr5er
-hres4
-hri4
-hrill5in
-hrim4
-h5rit
-h3rod
-hrom4i
-hry4
-h3rym3
-2h1s
-hsi4
-h4sk
-ht5ag
-ht5ee
-ht3en.
-ht5ener
-ht3eni
-ht3ens
-ht5eo
-ht5es
-ht4foo
-h1th
-ht4ine
-hu4g
-hu4mat
-hu5mer
-hu4min
-hun4c
-hunk4
-hun4t
-hur3i
-hu3sia
-huz4
-h1w
-h4wart
-h2y
-hy2l
-hyl5en
-hy2m
-hyn4
-hy3o
-hyol5i
-hy1pe
-hy3ph
-hyr4
-hys3te
-hy4t
-2i1a2
-ia4bl
-iab5olis
-iab5oliz
-i2ach
-iac3o
-i2ac2r
-ia5cri
-ia5dem
-i5ae
-iaf4
-i2ag4
-ia3gn
-i5a4g5o
-ia3gr
-i3ah
-i5ai
-ialect4
-i3alit
-ial5li
-4ialn
-i2a3lo
-ia5ly
-i5amb
-ia3me
-ianch5
-i3ant
-i5ape
-ia3ph
-i2ard
-4iarit
-i3at
-ia5the
-i5atom
-iat4u
-iatur4a
-i3au
-iav4
-ib3era
-ib1i
-ibio4
-ibios4
-ib5li
-4ibo
-i4bon
-ibor4
-i4bose
-i5bou
-ib1ri
-4ibu
-ib3uta
-ic3ac
-ic5ado
-i4cal
-ic1an
-2icar
-iccu4
-4ice
-i5ceo
-4ich
-ich4i
-ich5ing
-ich5ol
-4icin
-i5cio
-2ick
-ic4lo
-2i2co
-ico3c
-ic5ola
-icon3o
-i5cop
-icotyle5
-2i1cr
-i4cri
-i4cru
-i4cry
-ic4tedl
-ic4ter
-ict5ic
-2icu
-icu4lu
-ic3um
-i5cun4
-i5cut
-2i1cy
-i2d
-id1a
-i5day
-ide4m
-id3enc
-id3era
-iderm5
-i3dicu
-id3if
-i5dig
-i5dil
-i3dim
-id4ines
-idios4
-idir4
-id1is4
-id4ist
-2i4d1it
-idi4v
-id3li
-id3ol
-idol3a
-4idomi
-id3ow
-4idr
-id5ri
-id3ul
-ie2
-4iec
-2ieg2
-ie3ga
-ie5i
-i5ell
-4iem
-2i1en
-ien2d
-i1er
-i3eres
-i2eri
-ieri4n
-4iern
-ier2o
-i4ert
-i3esc
-ies3el
-i1es2t
-i3est.
-2i1et
-i4et.
-iet3ie
-4ieu
-i5euti
-iev3a
-iev3er
-iev3o
-2i1f
-i2fe
-if4fa
-iff5ler
-if3ic.
-i4ficac
-if5ics
-ifi4d
-ifi4n
-4i2fl
-i3fo
-ifoc5
-if5tee
-i3fy
-2ig
-i3gad
-ig3and
-3igar
-i1ge
-i3ger
-ight5er.
-ight5ers
-4igi
-ign5iz
-igno5m
-i3gon
-ig1or
-ig3ot
-i5gret
-i4g5ro
-igu5it
-ig1ur
-2i1h
-ihy4
-2ii
-i5in
-ija4
-4iju
-2ik2
-ik5an
-ike4b
-i2l3a
-ila4g
-ila5tel
-i5later
-il4ax
-il5dr
-il4du
-i3len
-ilesi4
-il3f
-il3ia.
-il3iar
-ili4arl
-i3lici
-i5lien
-ili4er
-ili4fe
-il4ific
-il1in
-il5ine.
-4iliou
-il5ipp
-il5iq
-il4ite
-ilit5u
-il4mo
-i5lon
-il3ou
-ilth4
-il2tr
-4ilu
-il5ul
-i5lum
-il5ure
-il3v
-4ilym
-ima4c
-im2ag
-im3age
-im1al
-im5am
-i5m2as
-i4mated
-i4matin
-imat5u
-im1i
-i3m2ie
-im4ine
-im5ino
-im5mes
-i2mo
-i5mog
-i3mon
-im5oo
-i3mos.
-impar5a
-imparad5
-im5pie
-impot5
-im5pr
-impu4
-im1ul
-im5um
-in3ab
-4inace
-in4ado
-in5agl
-in3air
-ina4l
-4inalit
-in5am
-in3an
-in3ap
-in4ars
-i3nas.
-4inata
-inator5
-in3au
-in4aw
-2inc
-inc4tua
-2ind
-in5dar
-inde5p
-indes5
-inde3t
-indeterm5
-in5dro
-4inea
-4ined
-in5ee
-in5ega
-4in5eo
-ine4s
-in3esi
-ine5te
-4ineu
-inev5
-infilt5
-infol4
-4infu
-4inga
-in5gal
-4inge
-ing5ha
-4ingi
-4ingle
-4ingli
-4ingo
-4ingu
-ing3um
-2ini
-in5ia.
-4inic
-in4ici
-in3ion
-in4itud
-4ink
-ink4ine
-4inl
-2inn
-2ino
-4ino.
-in3oi
-i5nole
-4inos
-i3nos.
-in5ose
-in3osi
-4inq
-ins2
-in4sch5
-inse2
-insect5
-insec5u
-in3si
-5insk
-insolv5
-in4tee
-int5ess
-in3til
-int5res
-intu5m
-2inu
-in5ul
-in5um
-in3un
-in3ur
-invol5u
-2io2
-ioact4
-i1od
-iod3i4
-iod5o
-ioe4
-io3gr
-4i1ol
-io3ma
-i4omani
-io3mo
-i5ope
-io3ph
-i5opo
-iop4s
-i1or
-iora4m
-4iore
-4iorit
-5ioriz
-4iorl
-ior4n
-io3sc
-i3ose
-i3osi
-i4oso
-io5sta
-i3ot
-iot4a
-io5th
-iot5ic
-io5tr
-i4oty
-i4our.
-i4ours
-i5ox
-2ip
-ip3al
-ipap4
-ipar3o
-ipart5ite
-ip1at
-i3pend
-i1ph2e
-iphen3
-i5pheri
-iphi4
-i4phu
-ip3id
-i5pil
-ip3in
-ip4ine
-ipir4
-ip5is
-ip1i4t
-ip4iti
-ip3lin
-ip3lo
-i3po
-i4pog
-i4poli
-i4pom
-ipon3
-i4pow
-ip2pl
-ip3pli
-ip4re
-ip5tori
-ip1ul
-i5put
-ipy4
-2iq
-i3qua
-2ir
-ir1a
-ir4abi
-ira4c
-ir4ae.
-ir4ag
-ir4alin
-ir4alli
-i5raso
-irassi4
-iray4
-ird3i
-ire3a
-ir3ec
-ir5ee
-irel4
-ire5li
-ires4
-ir5ess
-ir1i
-ir2i4d
-ir4im
-ir4is.
-5iriz
-irl5ing
-ir5och
-ir5ol
-ir3om
-ir4q
-ir2s
-ir5ta
-ir5tee
-irwo4me
-i4sa
-is5ad
-is3age
-is1al
-is3am
-is1an
-is3ar
-is5av
-4isb
-i2s3c
-is5chi
-isci5c
-4i1sec
-ise5cr
-is3ell
-4is3en
-is2er
-is5ere
-i2s3et
-4iseu
-is3har
-ish5ee
-4ishio
-ish3op
-is5hor
-2isia
-is5ic
-is3ie
-4isim
-is3inc
-4isis
-is4ke
-is1l
-islun4
-2isma
-is1on
-is5oner
-iso5p
-is1p
-i3s2ph
-5ispr
-2is1s
-iss5ad
-is4sal
-is5san
-iss4iv
-iss4o
-4ista
-is4tal
-ist5enc
-ist5ent
-is5terer
-4isth
-is4t3ic
-4istl
-i4s1to
-4is4tom
-is1tr
-3istry
-4isty
-i5sul
-is3ur
-2isy
-it1a
-it5ab
-ita4c
-4itai
-it3am
-it4ana
-it4as
-it3at
-i3tect
-it3ee
-it3enc
-it3ent
-it3era
-2ith
-itha5l
-ith5i
-i5thol
-ith3r
-ithy5
-2itia
-iti4co
-it5icu
-it1ie
-it3ig
-4itim
-it4in.
-it4ins
-4itio.
-4itione
-i5tiq
-4i5tit
-it3iv
-it4li
-it5lo
-4ito.
-it5ol
-2iton
-it1ou
-2itr
-it5ress
-i4tric
-2itt
-it4tit
-itu4als
-it5uar
-4itue
-it1ul
-it1ur
-it3us
-2i1u2
-i3um
-iur5e
-2iva
-iv5anc
-iv1at
-i4ved
-iv5el.
-iv5eling
-iv5els
-i4ver.
-iv3eri
-i4vers.
-iver5sal
-ives4
-iv3et
-i4vie
-iv3if
-i5vilit
-5ivist.
-5ivists
-iv1it
-i2vo
-ivoc3
-i5vore
-2i1w
-2ix
-ix3o
-i5ye
-1iz
-4izah
-iz3i2
-2izo
-iz5oi
-2izz
-1ja
-2ja.
-3jac
-ja2c5o
-jac3u
-jag5u
-jal4
-ja5lo
-ja5pan
-jel5la
-jeo2
-jeop3
-4jes
-jeu4
-jew3
-2ji
-3jig
-jil4
-jill5
-5jis.
-3jo2
-4jo.
-joc5o
-joc5u
-jol4e
-4jr
-4js
-ju1di
-jui4
-ju5l
-ju3ni
-juscu4
-jut3a
-ju1v
-k4abi
-k2a5bu
-kach4
-k3a4g
-kais5
-ka4l
-ka5lim
-kal4is
-k4an
-ka3o
-kap4
-kar4i
-1kas.
-kaur4
-kav4
-k1b4
-k1c
-kcom4
-k5d2
-kdo4
-kdol5
-4ked
-ke5da
-k5ede
-3kee
-ke4g
-ken4d
-keno4
-kep5t
-ker5a
-k4ere
-k5erel
-ker4j
-ker5o
-kes4i
-ket5a
-key4wo
-k1f
-kfur4
-k3ho
-5kih
-ki2l
-kilo3
-k1in
-k2in.
-3kind
-kinema4
-kin5et
-k3ing
-kin4i
-k2ins
-kir3m
-kir4r
-kis4
-3kis.
-k1ish
-kit5c
-ki4w
-kk4
-k5ker
-k2l2
-k3la
-k5lea
-k3ler
-k3let
-k3li
-k3lo
-k1m
-kn2
-k2no
-1know
-ko5a
-kol4
-ko5mi
-ko5pe
-k1p
-k5ro4
-k3ru
-4k1s
-k3sl
-ks2mi
-ks4t
-k1t
-kur5
-k5v
-k1w
-3kyl
-l2a
-4la.
-5laa
-lab5ar
-label4
-5labr
-l4ac
-la2ca
-la5ceo
-la5cer
-la4ch
-la2co
-5la5col
-lac5on
-la3cu
-la4de
-l5adm
-l4ae
-l4af
-la3ger
-la4gis
-lag3r
-5lah4
-la4ic.
-l4al
-4lale
-5lamandr
-la5melli
-lam4ie
-lam1o
-l5amu
-lan3at
-lan2d
-3land.
-land3i
-3lands
-lan4er
-lan3et
-lan5tine
-lan4tr
-la4p
-lapi4
-lar5an
-lar5de
-4lared
-l4as
-lat5al
-la4te
-5latilis
-5latiliz
-5latini
-lat5us
-l4au
-5laur
-lav5at
-l4aw
-4laz
-l3b
-lbe4
-l4bit
-l4by
-l1c2
-l2cat
-lce4
-lcen4
-l4cere
-lch4e
-l3dar
-l3ded
-l3deh
-l5dera
-ld3est
-l5dew
-ldi2
-l3die
-ld4ine
-l5di5nes
-ld3ish
-ld5li
-l3do
-4le.
-3leagu
-le5atio
-leav5er
-l3eb5ra
-le3ca
-le5cha
-lect5ica
-2led
-le5dr
-leg1a
-l3egan
-3legg
-le4gin
-leg3o
-le3gra
-lek4
-4leled
-lel5o
-lelu5
-lem5enc
-lem3is
-l5emiz
-5lemm
-l3emn
-le2mo
-lem5on
-l5enda
-len5dar
-lend4e
-len4do
-le1ne
-le5nie
-len3o
-4lentio
-len5u
-le3on
-leo4s
-le5q
-2ler
-le5rec
-5l4eria
-l4eric
-le5rig
-ler3om
-leros4
-ler3ot
-4les.
-le3sco
-3les4s
-1let
-le5tra
-le5tre
-5le5tu5
-leur5
-2lev
-l3eva
-5leve
-lev5ita
-le4wi
-l5exa
-1ley
-lf5id
-l2fo
-lf3on
-l1g2
-l4gal
-l4gem
-lgi4a
-l4gid
-l4goi
-l3h
-4li.
-li4ani
-lias4
-lib1r
-l1ic.
-5lich
-li4cie
-5licio
-l3ic3on
-lict4o
-li4cu
-l3ida
-l4idar
-5lidif
-3lieu
-l4ife
-l4ifo
-lift5er
-1lig
-li5ger
-light5i
-5lih
-3lik
-1l4il
-lil4i
-lim2b
-limet4e
-lim4p
-l4ina.
-l4inas
-lin4d
-l4ine
-5lin3ea
-lin4er.
-lin4ers
-lin4ger
-ling3i
-5lingt
-3lingu
-3linq
-lint5i
-3liog
-li4ol
-lio3m
-liot4
-li3ou
-5liph
-lipt5
-li1q
-3lir
-l1is
-l4isk
-5lisse
-l1it
-l2it.
-l3it5a
-5liter
-3lith
-5litia
-3litr
-lit4u
-l4iv
-l5ivat
-liv3er
-liv5id
-lkal5o
-lk5at
-lk3er.
-lk3ers
-ll2
-l1la
-lla4ba
-llact4
-l5las
-l4law
-l5leb
-l1lec
-l1leg
-l3lei
-l1lel
-lle5m
-l1len
-l3lep
-l3leu
-l3lev
-ll3f
-l1li
-lli5am
-lli4an
-llib4e
-llic4
-l4licl
-lli5co
-l5lie
-lligat4
-l2lin
-l5lin.
-l3lina
-l3line
-l5lio
-lli5v
-ll3m
-l1lo
-lloc3a
-lloc5u
-llo2q
-l4lov
-llow5er
-ll3p
-ll3s
-ll5t
-l1lu
-llun4
-l5lya
-l3lyc
-l3lyg
-l3lyh
-l3lyi
-l5lym
-lm2
-l1ma
-l1me
-l4mer
-lm3ing
-l5mip
-l2m3od
-l1n4
-l3ne
-lneo4
-2lo.
-5load
-5lob3a
-1loc
-loc3al
-loc5ul
-lo4cus.
-2locy
-l3odis
-3lo3dr
-1log
-lo5gan
-4loi.
-lo5mi
-lom4m
-lon4al
-lon4e
-l5onel
-lo5ney
-long5in
-3lonia
-loni4e
-l3onis
-l3oniz
-loom5er
-lop4e
-5lo5pen
-l3opm
-1lo1q
-l4ored
-lor5iat
-lor4ife
-lo5rof
-loros4
-l4os.
-lo1so
-loss4
-los5sie
-lot5at
-loth4ie
-lo5tu
-5loup
-lp1at
-lp3er
-lph2
-l5phe
-l3phin
-l2pho
-l3pie
-l3pit
-lr4
-l3ri
-l3ro
-l5ru
-4ls
-l5sam
-ls5an
-lsi4fia
-lsi4m
-ls4is
-l5sk
-ls4p
-l1s2t
-ltan3e
-l4tang
-lt5ant
-l5tar
-l1te
-l4tei
-ltern3
-lth3i
-lti4ci
-ltim4a
-ltin4
-lti3t
-l3t4iv
-lt4or
-l1tr
-ltramont5
-l1tu
-l4tus
-4lu.
-lu1a
-luch4
-lu2c5o
-luc5ra
-lu4cu
-4lue
-lu1en
-lu5er
-lu1i
-lu4it
-lum4bri
-lu4mo
-5lump
-lu2m5u
-lunch5eo
-5lune
-l3unta
-lu3ori
-5lup
-3lur3o
-lusk5
-luss4
-lut5an
-4lut5ar
-5lutioniz
-lu5toc
-lut5r
-lu1v
-lv5ate
-l5vet4
-l4vi
-l4vor
-l3w
-lx4
-2ly
-4ly.
-ly1c
-ly4ca
-lyc4l
-lyc5os
-lym2
-lymph5
-lyp2
-ly4pa
-lypt5o
-3lyr
-lys5er
-3lyw
-3lyz
-lz4
-4ma.
-m4aca
-mac3ad
-ma5chine
-5machy
-ma4cis
-mact4
-4mad.
-4mada
-4mads
-ma4ge
-5magn
-2mago4
-2mah
-ma5ho
-3ma4i
-4mai.
-maid3
-5mak
-mal3ap
-mal5ari
-5male2
-mal5ed
-mal3ef
-m3alg
-m3alis
-mal4is.
-mal3le
-mal4li
-2mam
-mament4
-m5ament.
-1man
-3m4an.
-man3a
-man5dar
-man3dr
-manic4
-man4ica
-ma5nil
-m4ans
-mantel5
-2map
-m3aph
-1mar
-5maran
-mar5ol
-ma5ron
-ma3roo
-mar5ri
-mar4shi
-mar3v
-ma3son
-massi4
-mass5ing
-3mas1t
-mas4ted
-mast4ic
-mas4tin
-m4at.
-m4aten
-ma3ter
-mater5n4
-m4atit
-mat4iti
-m4atiza
-ma3tog
-mat5om
-ma3top
-m4ats
-3m4att
-ma5ture
-mav4
-2m1b
-mbat4t
-mb4d
-m5bec
-m5berer
-m4bery
-m4bes
-mb2i
-m2bic
-m5bil5
-m4b3ing
-m4bis
-mb5ist
-mbival5
-m5bler
-m3bli
-mbru4
-mbu3l
-mbur4
-m1c
-m5d
-m2e
-2me.
-mea5g
-me5and
-me4ba
-me4bi
-2med
-4med.
-3media
-med5icat
-4medie
-m5ed5ies
-3medit
-me4do
-m5edy
-me2g
-5meg2a1
-mega5t
-4mele
-mel5ee
-mel5ler
-mel3on
-mel4t
-melt5er
-me2m
-4m5eme
-1men
-3men.
-2mena
-men4ag
-mend5er
-mend5o
-me1ne
-ment5or
-5ments
-5meog
-me4p
-m5eran
-4mere
-mer4ia
-2me2s
-mes5en
-me5si4a
-mes5q
-3mesti4
-1me2t
-meta3t
-met1e
-4meted
-meth4i
-meti4c
-met5ici
-met3o
-met3ri
-m1f
-4m3h
-4mi.
-m1ic
-mi4cin
-mi3co
-3micro
-m4ict
-mi3cul
-mi4cus
-m4idi
-mid4in
-mid5on
-mi5fi
-mig5a
-migh5ti
-mi2gr
-4mij
-mi5ka
-m2il
-m3ila
-mil4ad
-4m5ilie
-mil5ies
-3mill
-mi5lo
-mil4t
-3m2im
-mim5i
-5min4d
-mind5er
-min4er.
-min4ers
-ming5li
-min5ie
-m4init
-min3ol
-1m4int
-minth5o
-mi3o
-mi3p
-mirab4
-mi5racu
-m2is.
-m4isc
-mi4se
-4misem
-mis3ha
-5missi
-m3ist.
-mis4tin
-m3ists
-mi2t
-m5itan
-4mity
-3miu
-5mix
-4m1l
-mlo5cuti
-mlun4
-2m1m2
-mman4d
-mmand5er
-m3medi
-mmel5li
-mmet4e
-mmig3
-mmin3u
-mmis3
-mmob3
-m5moc
-mmor3
-mmut3a
-4m1n2
-mnif4
-m4nin
-mni5o
-mnis4
-mno5l
-1mo
-4mo.
-2moc
-mod1
-mod5ifie
-mogast4
-mo4go
-mog5ri
-m5oir
-mok4i
-mol3a
-4molog.
-4mologs
-4mologu
-mo3ly
-mo1m
-mo4mis
-m4on
-mona4
-4moned
-mon1g
-mo4no
-monolo4
-monolog5i
-m4op
-mophil5i
-mop4t
-m3orab
-m3orat4
-mor4ato
-m5ord
-mo5rel
-3moria
-m5oriz
-mor5on
-3morp
-3morse
-mor5tal
-mo3sp
-5most
-mo3sta
-2m1ous
-m1p
-m3pa
-m4panc
-m4pant
-mpath3
-mpel5li
-m5perer
-mper3i
-mpet5it
-mphal5o
-m4phe
-m4phl
-m2pi
-mp5id
-m5pig
-mp3ily
-mp1in
-m3pir
-mp3is
-m3po
-mpol5it
-mpo2t
-mpov5
-mp3to
-mp5tr
-m3pu
-m5q
-m3r
-m4ry
-4m1s
-msel5f
-m5si
-msol4
-mtu4
-muck4e
-muff4
-mul1t2
-m5unc
-mu5nio
-mun3is
-mus5co
-mu4se
-mus5ke
-mu3til
-m1v
-m3w
-2my
-5my3c
-my4d
-my3e
-3myi
-5myst4
-3myt
-n1a
-2na.
-na2c
-nach4
-na5cious.
-na5ciousl
-nac4te
-nac5tiva
-na5culari
-na4d4a
-nadi4
-nad4op
-n2ae.
-naffil4
-nag4a
-n4agen
-5na5geri
-na4gi
-n5ago
-5n4a3gr
-5nah
-5nail
-na5iv
-nak2
-4naled
-n5alg
-n4alia
-na3ly
-1nam
-3name
-nam4n
-na5nas
-nannot4
-nan4ta
-nan5ted
-nan4to
-na5o
-4n4ard
-nar5tisti
-n2as
-nas5i
-nas5p
-nas3s
-nas5te
-nat5al
-na5tat
-n4atee
-na3the
-nath4l
-nati4
-n4ati.
-nat5ic
-n4ato.
-na3tom
-na4tos
-nat4r
-na5turi
-naugh5ti
-naus3
-3naut
-naut3i
-na2v
-na5vel
-n3b4
-nbarric5
-nbeau4
-nbe4n
-nbene4
-nbet4
-nbit4
-n1c2a
-n4cal.
-ncarn5at
-ncel4i
-ncent5ri
-n4cept.
-n3cer
-ncer4e
-n4ces.
-n5cet
-n5cey
-n3cha
-nch4ie
-n3cho
-nch5olo
-n3chu
-n4cic
-ncid5en
-n4cif
-ncip5ie
-n1c2l
-n4cles
-ncoc4
-nco5pat
-n1cr
-nc1t
-nc4tin
-nct4ivi
-nct2o
-n1cu
-ncu4lo
-n4cun
-n4curvi
-ncus4t
-4nd
-n2da
-n3da4c
-n3dal
-n4dale
-n3dam
-nd3anc
-nde2
-n3dea
-nde3ci
-n1ded
-nde4l
-ndeleg4
-nd3enc
-ndepre4
-n3derl
-nde4s
-ndes5cr
-n5dez
-nd4hi
-n1dic
-ndic5u
-ndid5a
-n3die
-nd5ily
-nd4ine
-nd3ise
-nd5is4i
-nd5ism.
-nd5ity
-nd3ler
-nd1li
-n5doc
-ndor4
-n2dou
-nd5our
-ndrag5
-ndram4
-n5dron
-ndu4b
-nduct5iv
-n4dun
-nd2we
-n3dyi
-2ne.
-ne3alo
-n3ear
-ne2b3u
-5neck
-ne4cl
-ne2co
-n5ectom
-2ned
-3nedi
-ne4du4
-neg3a
-ne3go
-5negu
-neis4
-2nele
-ne5lia
-neli4g
-n4ely
-ne2mo
-4n1en
-n3end
-neo3l
-neon4
-ne2p
-n1er
-4nered
-5nering
-ner5o
-ner4r5
-ner2v
-nerv5in
-2nes.
-n1esc
-ne3sia
-1ness
-n1est
-nes3tr
-net3a
-net3ic
-ne4tog
-net1r
-neuma5to
-neut5r
-nev5er
-n4ew
-news3
-n4eys.
-n3f
-nfo4
-nform5er
-nfortu5
-nfran3
-4ng
-ng2a
-n4gae
-n5gee
-n3geri
-n5gero
-ngh4
-n2gi
-n5gic
-ngio4g
-n5glem
-n3glie
-n5glio
-ng1n
-n1go
-n4gry
-n1gu
-n2gum
-n1h2
-nhab3
-nho4
-nhy2
-nhyd5
-n1i
-4ni.
-3niac
-ni3ba
-n4icab
-ni4cen
-4nicl
-nict5a
-ni4cul4
-ni4dio
-n2ie
-ni4ers
-nif4f
-nift4
-nif5ti
-ni2g
-night5i
-n3igm
-3nign
-nik5e
-n2il
-nil4a
-n3im1
-n4ime
-5nimet
-n4ines
-nin4j
-5ninn
-n4inu
-5niol
-ni1ou
-3nipu
-5niq
-n4is.
-n4isk
-nis4l
-nis4o
-n5iss
-nis5ter.
-nis5ters
-nitch4
-ni4te
-ni3tho
-n4itos
-ni5tra
-nit5res
-ni3tri
-nit4ur
-n2iv
-niv4a
-ni3vo
-nivoc4
-niz5en
-n1j
-njam2
-njur5i
-4n2k
-nk5ar
-n5kero
-n3key
-nk5if
-nk5il
-4n1l2
-nland5
-n3le
-nlet4
-n3m
-nmater4
-nmor5ti
-n1n4
-nne4
-nnel5li
-nnerv5a
-n3ni
-nni3ki
-nnov3
-n5nyi
-4no.
-n5obi
-no5bil
-nob4l
-no5blem
-nobser4
-n5ocula
-no4di
-n4ody
-noe4c
-no4fa
-nois5i
-n5ol.
-no3la
-nol4i
-nom3al
-1nomi
-no2mo
-4none
-3nonic
-5nood
-nop5i
-nora4t
-nor5di
-nor4ia
-nor4is
-nor3ma
-n4oro
-nor4t
-n4os.
-nos4o
-no3sp
-not1a
-3note
-n1ou
-n4oug
-3noun
-2nous
-nou5v
-nova4l
-nove2
-nov3el
-novel5e
-n4ow
-now5er
-now3l
-n3p4
-npil4
-npla4
-npoin4
-npo5la
-npos4
-npri4
-n1q
-n4quef
-n1r
-nre4i
-nre3m
-nres5tr
-4n1s
-ns2c
-n2sco
-ns3cot
-n4scu
-n5sec
-nsec4te
-n2ses
-n5seu
-n3sh2
-n2si
-ns3ib
-n4sic
-n5sick
-n3sid
-n3sie
-ns5ifi
-ns3ing
-n3sio
-n3s2is
-nsi2t
-ns3iv
-nsolu4
-n5son
-n4sore
-n4sory
-n3spir
-n3s2t
-nsta4
-nstil4
-n3su
-nsur4e
-n3swa
-ntab4u
-nt3age
-nt1al
-n4t3anc
-nt5and
-ntan5eo
-n4t3ant
-nt4ariu
-n5tasis
-nt3ast
-nt1at
-nt5ath
-nt3ati
-nt5ativ
-n5tau
-n1te
-n4tec
-n4tee.
-n4tees
-n3tel
-ntend5en
-n4teo
-n4ter.
-n3teri
-n5tern
-ntern5al
-nter5nat
-nth2
-n1the
-nther5
-nth5ine
-nt2i
-nt4ib
-n4tic.
-n5ticis
-n5ticiz
-n4tics
-ntic4u4
-n3tid4
-n1tie
-n4tify.
-n3tig
-nt5ilati
-n5till
-nt3ing
-nt5ing.
-nti3p
-n4tipar
-n4tis.
-nt3ism
-nt3ist
-n5titio
-nt3iz
-n2tj
-n1t2o
-n3tom
-ntoni4
-n5top
-n1tr
-ntra3d
-nt3ral
-n4trant
-n3trat
-nt5ress
-nt3ril
-ntrol5ler
-n5trym
-n1tu
-n3tua
-ntub5
-ntup5li
-n5tur
-n2ty
-n2u
-nu1a
-5nuc
-3nud
-nud5i
-nu3en
-nug4a
-nu3i
-nu4is
-5nuk
-n4ulo
-n3ult
-nultim5
-nu1me
-5numenta
-5numer
-5numi
-3nunc
-nu3tat
-n5utiv
-nu4to
-nu1tr
-n3v2
-nve2
-nvel3
-nven4e
-nven5o
-nvers5an
-nvi4t
-nvoc5at
-n5w
-nwin4
-nwom4
-n2x4
-2ny2
-5nyc
-nym5it
-nyth4
-n1z2
-nzy4
-2oa2
-o5ace
-o3act
-oad5er
-oad5i
-o3ag
-oak5er
-o3ales
-oal4i
-oal5in
-o5alit
-oan4t
-oap5i
-oar5er
-oar4se
-oast5er
-oat5a
-oat5ee
-oat5er
-4oba
-obe4l
-ob2i
-ob3ing
-2obi3o
-ob3it
-o3bla
-ob1li
-4obo
-ob3oc
-o5bol
-o5bot
-o3bra
-obrom4
-ob5t
-ob3ul
-o3bus
-2oc
-oc2a
-o4cab
-o3cad
-oc5ag
-o5calli
-o4c5ativ
-oc5ato
-4o3ce2
-o4cea
-ocen5o
-ocess4i
-och4e
-och5in
-o3chon
-ochro4n
-o5chu
-oci3ab
-oci4al
-o1cl
-o2cle
-o1cr
-ocre3
-oct2
-oc2te
-oc1to
-ocu4lu
-ocum4
-oc5uo
-ocuss4
-ocus5si
-ocut5r
-o1cy
-o5cyt
-ocyt5o
-od3al.
-ode4c
-o5deg
-ode4ga
-o5dend
-o3dent
-odes4
-od3ica
-o4d1ie
-od3iga
-od4il
-od1is2
-odis5ia
-od5it
-5odiz
-od3li
-o2do
-od5olo
-od5ous
-o3dro
-od5ru
-o2du
-odu5cer
-o4duct.
-o4ducts
-od3ul
-o5dyt
-oe3a
-oe4bi
-oe5cu
-oe4d
-o5ee
-oe5ic
-o3elec
-oelli4
-oelo4
-oe3o4p
-oep5
-o5eq
-o3er
-oes3t
-o1et
-o4et.
-oet3i
-oet4r
-3oeu
-o3ev
-o3ex
-oflu4
-4ofo
-o4ful
-ofun4
-2o1g
-o2ga
-o3gam
-og5ar5
-o3gas
-ogen1
-o5gey
-o3gi
-o4gio
-og2na
-ogoni4
-o4got
-o2gri
-o4gro
-og4sh
-o2gu
-o5gyr
-o1h2
-o3ha
-ohab3
-o3he
-oher4er
-o3ho4
-ohy4
-2oi
-oi4c
-o3ic.
-oi5ch
-o2i4d
-4oide
-oig4
-oi5ki5
-oil3er
-oil5i
-oin3de
-o3ing
-oin4t5er
-oin4tr
-oi4o
-4ois
-o3ism
-oi4t
-oit4al
-oith4
-o1j
-ok4ine
-ok3l
-ok5u
-ola4c
-o4lack
-o5lali
-ol4an
-olan5d
-ol5ast
-olat5er
-ol5ch
-ole2c4
-ol5eci
-ol5efi
-o3leo
-ole4on
-o3lep
-ol1er
-o3lest
-o3leu
-o1lia
-ol3ica
-o3lice
-ol5iciz
-ol5ick
-ol3ics
-ol5id.
-oli2e
-o3lier
-ol5ies.
-o5lif
-oli4f3e
-oli5go
-o5lina
-ol3ing
-oli5os
-ol5ip4
-olis4
-ol2it
-olle2
-ollim3
-ol4lope
-ol4lyi
-ol3mi
-o1lo
-4oloc
-ol3oid
-o4lona
-olon5el
-ol1or
-o3los
-ol1ou
-4ol1ub
-o3lumi
-o5lunte
-ol3us.
-oly3ph
-4olyt
-2om
-o1ma
-o4mab
-o2mac
-o2mal
-o4mane
-omast4
-o3mat
-om4be
-ome4d
-ome4g
-omeg5a
-ome3li
-om3ena
-omen4t
-o3meri
-om1i
-o3mia
-omi2c
-omic5r
-om4ie.
-omil4
-om4iny
-omiss4
-om2it
-omme4
-om2na
-omni3
-o4moi
-omoli3
-o2mo4n
-om5ony
-o4mos.
-omot5iv
-o2mou
-om5pil
-ompt5er
-ona4d
-on3ai
-o5nas.
-onast5i
-on5ativ
-4onau
-on1c
-oncat3
-on4cho
-5ond5ar
-ond5ent
-on3der
-on3dr
-on5dy
-o2ne
-4onea
-onec4r
-4oned
-on1ee
-on5ell
-o3neo
-on3ess
-on1et
-ong3at
-on4gu
-4onh
-4o1nia
-on5iar
-2oni4c
-onic5a
-onical4
-on4id
-on3ies
-on3if
-o5nig
-o1nio
-onk4s
-4onnes
-on5odi
-on5oi
-ono4mi
-4o5nomic
-ono3s
-o5nota
-ons2
-2ont
-ont5ane.
-on4ter
-onti5fi
-onton5
-ont4r
-on4tre
-on5ur
-o5nus
-onvo5lu
-on2z
-2oo
-oof3er
-oo1i
-ook3er
-ook3i
-oo4le
-ool5ie
-oo4m
-oon3i
-oo2p
-oop4ie
-o3opt
-oo4se
-oost5er
-oo2t
-oot3er
-ooz5er
-o1pa
-o4pab
-o5pali
-opa5ra
-opath5
-o5pec
-opens4
-op1er
-3opera
-4operag
-o1pha
-o4phe
-oph4ie
-o5phil
-op5hol
-o1phy
-ophy5la
-op1i
-op3ies
-op5ing
-o3p2it
-4opl
-oplast4
-o4poi
-opol3i
-opon4
-op5ony
-op5ori
-opoun4
-o2p5ov
-op2pl
-op5pli
-oprac4
-op3ran
-opre4
-opro4l
-op5rop
-op5so
-1op1t
-op2ta
-op1u
-o5quial
-or1a
-or5ado
-ora4g
-o5rai
-or5al
-4orals
-oram4
-oran3e
-orator5
-orb3in
-or4ch
-orch3i
-or4du
-2ore
-or5ead
-ore5ar
-ore5ca
-ore3f
-ore3g
-or3ei
-oreo5l
-or3esc
-ore3sh
-or3ess
-orest5at
-or5este
-or5ett
-ore4v
-5orex
-or4fr
-or5gn
-or1i
-4ori.
-or3ia.
-4orian
-ori4ci
-ori5cid
-orien4
-or3if
-5orig
-ori5ga
-ori4no
-4orio.
-or5ion
-4orios
-ork5a
-2orm
-orm1i
-or3n4a
-5ornis
-or3nit
-or3one
-o5roo
-or5ose
-or5oso
-or1ou
-orrel3
-orres3
-or4sc
-or4sey
-or4sti
-2ort
-ort3an
-ort3at
-ort3er
-or5tes.
-or3thi
-or4thr
-or4tit
-ort3iz
-or4tor
-or5tra
-ort3re
-4or1u
-or4un
-ory5p
-osa5i
-os3al
-osar5
-o1sc
-os4ca
-os4ce
-o2sch
-o4sci
-osclero5s
-o3sec
-osec3u
-ose5g
-os5enc
-osens4
-os5eo
-oser4
-o2set
-os5eu
-o3sia
-osi4al
-osi4an
-os5ide
-o3sier
-os5if
-os1in
-o4sis
-o5ske
-o5son
-o3soph
-os3opo
-4osp
-o3spec
-os1pi
-os4sa
-oss5ar
-os4sit
-4osta
-ost5age
-os4tar
-os5tee
-os5ten
-osten5t
-ost5ica
-os3til
-o5stome
-ost3or
-4osu
-os1ur
-2ot
-ot3a4g
-o5talit
-ot3am
-ot4anic
-o3tap
-ot4atio
-o5ta5v
-o3tax
-o4ted
-oter4m
-ot5esta
-4oth
-othalam5
-oth5erin
-o5therm
-otherm5a
-o5thor
-o5tia
-o5till
-5ot5iniz
-ot4iv
-o3tiva
-o5tivi
-o1t2o
-o5tone
-o4torn
-o4tou
-4o1tr
-oturi4
-oty3le
-o4u2
-5ou3a
-oub2
-ou5br
-ou5ca
-ou5co
-oud5i
-4oue
-ou3et
-oug4
-ou5ga
-ought5i
-ou5gi
-oul4t
-oult5i
-ou3m
-2oun
-oun2d
-ound5a
-ound5el
-oun5gin
-oun3tr
-oup5li
-our3er
-ou5san
-2ouse
-5ousia
-ouss4
-out5ish
-ouv5a
-ova3le
-o5var
-4ovati
-ov5eling
-o4ver.
-over3b
-over3s
-ov4ete
-ovid5en
-o1vis
-ovis5o
-o2v5os
-ow3ag
-ow3an
-o5way
-owd4i
-owd3l
-ow1el
-owel5li
-ow5ha
-owhith4
-ow1i
-ow5in
-owi5ne
-ows4
-ow5sh
-ow5sl
-ow5y
-o4x
-ox3i
-oxic5ol
-ox5o
-2oy
-oy5a
-oys4
-2oz
-o1zo
-ozo5i
-o3zyg
-4pa.
-pac4te
-pa5dou
-pad4r
-paes4
-pa3gan
-4pagat
-pag4ati
-pain2
-4pairm
-pa5lan
-pal3in
-pa3lo
-p4als
-pan5ac
-pan1e
-pan3i
-pa4pa
-pa3pe
-pap3u
-pa3py
-1par
-para5s
-par3l
-pa3roc
-pa3rol
-par5on
-1p4as
-pass5ive
-pas1t
-pas4tin
-pa3ter
-pati4n
-p5ato
-pat4ric
-pa5tricia
-5pau
-paul5e
-pau3p
-pa5vil
-5paw
-pawk4
-paw5ki
-2p1b
-p1c4
-p5d2
-2pe.
-pearl5i
-pe4co
-pec4tu
-2ped
-5ped3a
-3pede
-3pedi
-ped3is
-3peds
-pe2du
-p4ee
-pe2f
-4pele
-pe5leo
-pel5v
-pen4at
-5p4enc
-pend5er
-pen5dr
-pen4ic
-3p4enn
-pens5ati
-pen5u
-pe5on
-5perc
-percent5
-4pere
-perem5i
-p4eri
-5p4er3n
-p3eron
-per4os.
-per5tin
-pert5is
-per3v
-p4ery
-2pes
-pes4s3
-pes5til
-3pet
-pet5all
-pet3en
-pe2ti
-pet3r
-pe4wa
-4pex
-p1f
-p5g
-2ph.
-4phae
-pha5ged
-ph5al.
-ph2an
-phant5i
-phe4
-ph5esi
-ph3et
-3phib
-4phic
-1phil
-phi4n
-ph1is
-phi5th
-ph2l
-1pho
-4phobl
-4phoned
-3phor
-ph5oriz
-phos3p
-ph3ou
-3phra
-4phs
-1phu
-phu5i
-2phy.
-3phyl
-4pi.
-3piar
-4pica
-p5ical
-pi3co
-pi4cr
-pict4
-p2ie
-p4iest
-pi5eti
-p5ifie
-pig3n
-p2il
-3pile
-pill5in
-5pilo
-pi3lot
-pim2
-pin4e
-pin5et
-3pinge
-p4inn
-5p4ins
-3pi1o
-pip4a
-pi4pe
-5piq
-pir5ac
-pir4t
-p4is.
-p4isc
-pis2s
-piss5a
-pis5til
-pis4tr
-p2itu
-2p3k2
-p2l2
-1pla
-pla5no
-plant5er
-plas5tici
-pla5t4o
-4ple.
-4pled.
-3pleg
-3plen
-2ples
-4plism
-4plist
-plu2m
-plum4be
-plumb5er
-p4ly
-2p1m
-2pn
-pnos4
-1po
-4po.
-po3ca
-3pod
-4pof
-2p5oid
-pois5i
-po5lemic
-po4ly1
-poly3s
-poman5
-pom4e
-p4o2n
-pon4ac
-pon4ce
-pon4i4e
-3ponif
-pon5ta
-2pony
-po4pa
-po5ple
-4porato
-por3ea
-4pored
-pori4f
-por3p
-3port
-por5tie
-3p4os
-pos1s2
-po1te
-poult5e
-pound5er
-pout5er
-p5oxi
-5poy
-4p1p2
-ppar3
-pparat5
-p4pene
-ppet3
-pph4
-ppi4c
-p4pled
-p5pler
-p5plet
-ppress5o
-pprob5a
-1pr2
-prac1
-pra5d
-prar4
-4pre.
-preb3
-pre1d
-pref5ere
-prel5ate
-3prem
-pre5mat
-pren3
-pres3a
-pre5scin
-p3rese
-5pressi
-5prici
-pri4es
-4pri4m
-pring5er
-pring5i
-4prio
-p5riol
-pri4os
-pris5in
-priv2
-4priva
-4pro.
-pro3bo
-p3roc3a
-pro4ch
-pro1l
-pron4a
-proph5e
-propyl5
-pro3r2
-pros4i
-pros5tr
-pro3th
-4pry
-2ps2
-p3sac
-psal5t
-p3sh
-p1si
-p5sin.
-pso3m
-p1st
-psul3i
-3psyc
-2pt2
-pt3ab
-p4tad
-p4tan
-p2tar
-pt5arc
-p1ted
-p5tena
-pt5enn
-5ptery
-p5tet
-pt4ic
-p5tie
-p3til
-p2t3in
-pt4ine
-p3tise
-p5tisi
-p5tom
-p4tr
-p1tu
-pub1
-pu5be
-puc4
-puch4
-pudi4c
-pu5er
-puff5er
-pu4lar
-pu5lar.
-pu5lis
-p4u4m
-pum4o
-p4un
-pun4a
-3punc
-pun5gi
-pun3i
-pun2t
-pu3pi
-pur5b
-pur3c
-p4us
-push4ie
-pu3tat
-p5u5tis
-pu3tr
-4p1w
-2p4y
-py3e
-3pyg
-3pyl
-pyr3e
-py5t
-4qf
-qu4
-5quak
-4quar
-qua5tio
-2que.
-3quera
-4quere
-4ques.
-1quet
-5quina
-5quir
-3quito
-4quitu
-4ra.
-ra3ba
-5rabe
-3ra3bin
-r2abo
-ra3bol
-rac4a
-r2acu
-rac5ula
-ra5culo
-r2ad
-ra4de
-rad4ine
-rag5ou
-ra3gr
-3raill
-ra5ist
-4ralia
-ra3ly
-r5amn
-ra3mu
-r4andi
-ran5dish
-ran4du
-ra5nee
-ran4gen
-ra3nia
-ra3noi
-ran2t
-ran5ted
-5rantel
-rant5in
-rant5o
-rapol5
-rap5to
-4rarc
-rare2
-rar3ef
-rar5ia.
-ras2
-ras3c
-r2ase
-r4ask
-ra3so
-rass5a
-rass5in
-r4as5te
-ra5tap
-ra5tat
-rat5eu
-rath4e
-rat3if
-rat4in.
-ra5toc
-5ra5tol
-4r4atom
-ra4tos
-ra5tui
-rat5um
-rat3ur
-rav5ai
-rav5eli
-rav3it
-rawn4
-ra3zie
-r1b
-r2ba
-r4bag
-rb3ali
-rb1an
-rbar3
-r2be
-rbe5c
-r3bel
-rbel5o
-rb3ent
-r4bes
-rb2i
-rbic4
-rbic5u
-r2bin
-r5bine
-rbit1
-r2bos
-r4bum
-rbu5t4
-r1c2
-rcant5
-rca4s
-r4cele
-rcen5er
-rcen5tena
-r2ces
-rcha3i
-rch3al
-rch5ard
-rch5ate
-r3cheo
-r4cher
-rch4ier
-r4chin
-rch3is
-r3chit
-rcil4
-rci5nog
-rcis2
-rciz4i
-r2cl
-r4cle
-r5clo
-rcolo4
-rcrit5
-rcriti4
-rct4
-rc5ti
-r5dam
-r4d1an4
-rd4an.
-r2dar
-r5de4l
-r3dens
-r4des
-rd5ess
-rd5ian
-r4die
-r5dig
-rd2in
-rd3ing
-rdi3o
-rd1is2
-rd5ler
-rd3li
-r4dol
-rd5ous
-r2e
-4re.
-rea4
-r4ea.
-react5iv
-re3af
-re3ag
-re5alt
-re5amb
-re3ani
-re5ant
-re5asc
-reas3o
-r5eau
-3reav
-r5ebrate
-reb5uc
-re3cal
-rec4ce
-re3ce
-reced5en
-re3cha
-reci5si
-r4e1c2r
-rec4t3r
-re3cu
-2r4ed
-re1de
-re3dis
-re4dol
-re1dr
-reed5i
-ree3m
-3reer
-re2fe
-re3fin
-re5gali
-re5gra
-re3gre
-reg3ri
-re3gro
-reg3ul
-rei4
-re3if
-re1in
-re3is
-reit3
-reit4i
-re1la
-re1le
-4reled
-re3lia
-rel3ic
-re5lig
-reli4q
-rel3li
-r5em.
-rem5ac
-reman4d
-rem5ato
-r3emp
-rem5ul
-rena4
-ren5at
-r4endi
-rene2
-ren4es
-r4eni
-renic5
-ren4it
-ren4ter
-re5num
-re3oc
-3reog
-re5ola
-re3oli
-3reos
-re1pe
-re4per
-re5ph
-rep5id
-re3pin
-re3ple
-re4pre
-re1q
-rer4a
-rere4
-re5rea
-re3r2u
-2res.
-re3scr
-re3sel
-re3sem
-re3ser
-res5ist
-re5sit
-re3spe
-r3esq
-re5stal
-rest5er
-re5stu
-3retar
-re3ten
-re4t4er3
-re5term
-re1t2o
-re5ton
-re3tra
-re3tre
-re5tri
-re3tu
-re3un
-reur4
-re1v
-rev3el
-revi4t
-r1f
-rf4l
-rfu4m
-r1g2
-r4gag
-rgal4
-r2ge
-r5gee
-r4gene
-r3geo
-r3ger
-rg5li
-rgu5f
-rh2
-r5hel4
-rhe5ol
-rhos4
-3r2hy
-4ri.
-ri3am
-ri5ap
-2r2ib
-ri3bo
-rica5tu
-2rice
-rich5om
-rick4en
-r4icl
-ri5cli
-ri3col
-ri5cor
-ri4cra
-2ricu
-rid4al
-rid4e
-ri5el
-ri3er
-ri2es
-rift5er
-rif5tie
-5rifuga
-ri5gam
-rig5ant
-ri5l4a
-r4ile
-rill5er.
-rill5ings
-4rim.
-ri2ma
-rima4g
-rim5an4
-rim3at
-r4imb
-rimen4
-4rimm
-4rims
-rin4e
-r4inet
-ring5ie
-rink5er
-r4ino
-rin4s
-rins5i
-rin4t5er
-ri3o
-rio4g
-5rione
-ri4op
-ri5or
-ri5p2a
-ri5pie
-rip5lica
-ri5r
-ris4c
-ris4is
-r2isp
-ris4pa
-ris4pe
-ris5ter
-4risti
-ri3ton
-r5it5r
-r2i4v
-riv4al
-ri5vall
-riv5eli
-riv3en
-riv3il
-5ri5zo
-r1j
-r2k
-r5kas
-rk5ati
-r5kell
-rk5eni
-rk1er
-r3ket
-r3key
-r3kier
-r5kiest
-r5kin.
-r5kins
-rks4me
-r1la
-rlat3
-r1le
-r3l4ic
-r3line
-r5lins
-r4lit
-r1lo
-r3mac
-rma5ce
-r5mad
-r2mal
-r4manc
-r4mano
-r4mari
-r4mary
-rm4as
-r4m3ati
-rma5toc
-r5ma5tol
-rme2a
-r2mic
-rm4ica
-r5m2id
-rm4ie
-r5mig
-rmil5
-rmin4e
-rm3ing
-r4ming.
-r4mite.
-r3moc
-rmol4
-r1mu
-rmu3li
-r2n2
-rn3ab
-r3nac
-r5nad
-rn5ar
-rn3ate
-rn5atin
-rn5edl
-r3nel
-r3ness
-rn5est
-r3net
-r3ney
-r5nia
-rn5ib
-r3nic
-rn3in
-rn4ine
-r1nis
-rn3ist
-rni5v
-rn3iz
-rn5n
-r3noc
-r5nog
-rnt4
-rnuc4
-r5nut
-4ro.
-ro4be
-rob3le
-ro5br
-5rocc
-ro3cu
-r2od
-ro3do
-rody4n
-ro1fe
-ro3gn
-4roi
-ro3ic
-roid3
-ro3la
-r4oled
-rol5ite
-ro3ly
-romant4
-ro5mel
-ro3mit
-romolec5
-rom4p
-ro3mu
-ron4ac
-4ronal
-ro5nate
-ron5ch
-ron4do
-rong5i
-r5onme
-ro1no
-ron4ton
-roo4
-1room
-5root
-r2op
-4rop.
-ro3pel
-rop4ine
-r4opr
-r5opte
-ror5d
-4rore
-r4osa
-rosi4a
-ro5sol
-4ross
-ro5stat
-ros4ti
-ros5tit
-ro3tat
-ro1te
-ro4ter
-ro3tu
-5roue
-roul3
-round5er
-rou5sel
-4rouss
-r4out
-r4ow
-row3er
-4rox
-rpass5in
-rp3at
-rpe2
-r3pent
-rp5er.
-r2ph
-rph5e
-r3phol
-rp3ing
-rp5is
-rpol3a
-r2p5ou
-rpre4
-rpret5er
-r3pu
-r1q
-4r1r4
-rra4h
-rran5gi
-rrap4
-rre2l
-r4reo4
-rrhe3
-r3ri
-rric4
-rricu4
-rri4fy.
-rrin5ge
-rri4os
-rrob3
-rrog5
-rro4t
-r5ru
-rry5
-r3ryi
-r3rym
-2r1s2
-r4sag
-r2sal
-r5salis
-r5saliz
-r2san
-r4sar
-r2se
-r3sea
-r3sec
-rsel4
-rsell5
-rs3er.
-rs3ers
-r3set
-r3sha
-r3shi
-r4shie
-r5si2a
-rs3ib
-r5sie
-r4sil
-rs3ing
-r3sio
-r4sit
-rs3iv
-rs5li
-rstor4
-rstrat4
-r3su
-r4sus
-rswear4
-rt2
-rt3ab
-rta4g
-rt3age
-r3tar
-r4tare
-rt3c
-r1ted
-r4tedl
-r3tel4
-r5tend
-rt3eni
-r5terer
-r5tet
-r5teu
-r4thene
-rth2i
-rth5ing.
-rth3ri
-r1t4ic
-r4ticl
-r5tiet
-r5tila
-r5till
-rtil5le
-rt5ily
-r2tin
-r3tina
-rt3ing
-r3titi
-rti5tu
-rt3iv
-r2tiz
-rt5let
-rt3li
-r1t4o
-rto5l
-rt5rid
-rt5si
-r1tu
-r4tus
-rtwis4
-ru3a
-r4ube
-rub3r
-ru4ce
-r2ud
-rue4l
-r4uf
-ru3in
-ruis5i
-ru2l
-r4ume
-r4umi
-ru4more
-run4cl
-runcu4
-runcul5
-run2d4
-run2e
-ru5net
-run4g
-run4t
-ru2p
-rup5lic
-ru3pu
-rur4i
-rus4p
-rust5at
-rust5ee
-rus5tic
-rus4t5u
-ru3tal
-ru3ti
-r1v2
-r4vanc
-r2ve
-rvel4i
-r3ven
-rven4e
-rv5er.
-rv5ers.
-r3vest
-r3vet
-r3vey
-rvi4t
-r1w
-2r2y
-ry5er
-5rygm
-ry4go
-rym4b
-3ryngo
-4ryngol
-ryp5a
-ry2t
-ryth4i
-r2z
-2sa.
-2sab
-s3abl
-5sack
-sac4q
-s3act
-sac4te
-sad5i
-sad5o
-5sae
-sa4g
-3sai
-sain4t
-5sak
-sa2l
-sa5lac
-3sale
-sa3lie
-s4al4t
-sa3lu
-sa4m
-sa5min
-sam5o
-samp4
-san3a
-san4ded
-s4an4e
-san5gar
-san5if
-2sant
-sant5ri
-s3ap
-sap3r
-sar5s
-3sas.
-sas3s
-sassem4
-s2a1t
-sa2te
-s5ativ
-s5atory
-sat1u
-1sau
-sau5ci
-saur5
-savi2
-sa3vou
-4s3b
-s4bei
-sbe4s
-sby3
-sc2
-s1ca
-sca5len
-sca2p
-scar4c
-scav3
-s1ce
-s4ced
-4scei
-4s4ces
-sch2
-scid5
-s2co
-scof4
-s4coi
-3s4cope
-5scopic
-5scripti
-2s1cu
-4scura.
-4scuras
-2s1d2
-2se.
-se2a
-s4eam
-seas4
-sea3w
-sec4a
-sec5an
-se2co
-secon4
-2sed
-se4da
-sed4it
-3seed
-3sei
-sei3g
-5sela
-4sele
-se3lec
-selen5
-5self
-2s4eme
-sem2i
-semi5d
-sem4o
-sen5g
-3sens
-sen5sati
-sen5sori
-sent5ee
-5sentm
-seo5log
-se2p
-sep3a
-sep4si
-3sept
-sep3ti
-ser4an
-se5rene
-ser4to
-4servo
-s2es
-4ses.
-se5sh
-s5esta
-1set
-5seum
-3sev
-sev3en
-sewo4
-3sex
-sexo2
-3sey
-2s1f
-sfact5o
-sfi4
-sfor5e
-sfran5
-2s1g4
-s2h
-4shab
-sh4abi
-sh1er
-sh5et
-shil5li
-sh5iness
-sh3io
-5ship
-s3hon
-4shu4
-shys4
-si4all
-siast5
-4s1ib
-s3icat
-3sicc
-2s5icl
-si4cu
-si5cul
-s4id
-4sid.
-si4de
-side5l
-sid3en
-sid5eri
-4sids
-5sid5u4a
-si4ers
-sif4
-sif5f
-si4g
-1sili
-sim4ply
-2sin
-s2ine
-sin5et
-5sing5er
-sin3i
-5sink
-si5nol
-si3nus
-1sio4
-4sio.
-si5o5s
-3sip
-si4pr
-s1is2
-4sish
-4sism
-sist3a
-sist3o
-s1it
-si4te
-sit5om
-4s1iv
-5siva
-s1j
-s2k2
-4sk.
-s5kar
-ske2
-s3ket
-s5key
-s3kier
-s5kiest
-sk5ily
-sk5ines
-4sks
-sky3l
-2sl4
-slang5i
-s1lat
-3slau
-slav5eri
-s2le
-s5lea
-s3let
-s5ley
-s3lit
-slo3c
-slov5
-s5luc
-2s1m4
-s3man
-smas4
-s3men
-smi3g
-3smith
-smo4d
-smu5tatio
-s1n2
-s2na
-2so.
-2s3od
-sod3o
-sody4
-3soe
-4s3oid
-s2ol
-sol3a
-so5lan
-sol4er
-so3lic
-3solve
-solv5er
-1so2m
-soma5to
-3some.
-so5mete
-so3mo
-s2ona
-son5at
-s4one
-son5or
-s2o2p
-4sor3ie
-5sorio
-sor4it
-s5oriz
-sor3o
-s3ory
-sos4
-4sose
-so5th
-3sou
-sov5e
-so3vi
-spast4
-spens5a
-4speo
-3sperm
-s5pero
-spers5a
-sph2
-s3pha
-3spher
-spic5ul
-s2pid
-sp5id.
-s5pier
-spil4l
-s2pin
-sp3ing
-spi5ni
-spital5
-s1pl
-sple2
-s4ply
-s2po
-5spom
-spon5gi
-3spons
-3spoon
-spru5d
-s4py
-s1r
-sre2
-sreg5
-srep5u
-sre4s
-4ss
-s1sa
-s5sam2
-s1sel
-s5seng
-s3sent
-ssent5er
-ss3er.
-s5seri
-ss3ers
-s5seu
-ssev3
-s3sia
-s1sic
-s1sif
-ss1in
-ss4in.
-s4sine
-ss4is.
-s3s2it
-ss4ivi
-ss5li
-ss3m
-s4sn
-s1so
-ssol3u
-ssolu4b
-s4sore
-ssor5ial
-ss5po
-s1su
-ss3w
-st2
-4st.
-stab2
-sta3bi
-4stak
-s4tale
-stant5iv
-s3tas.
-5static
-st3c
-ste2
-ste5ar
-ste5at
-s4teb
-s4tec
-4s1ted
-s4tedl
-s4tedn
-4stere
-ster4ia
-s4tern.
-s3tero
-st5est
-s1th
-s4tha
-s4thu
-s3ti3a
-3stick
-s3ticu
-stil5ler
-s4tily
-st3ing
-5s4tir
-s5tiz
-4stl
-st3ler
-st3li
-s4toe
-3ston
-stone3
-ston4ie
-s5torat
-stor5ian
-s4tose
-s2tou
-s4tray
-stre4
-strep3
-3struc
-stru5d
-2st3s
-s1tu
-s4tud
-stu4m
-stur4e
-4stw
-s4ty
-1styl
-4su.
-su5an
-su4b1
-subt2
-suct4
-sud4a
-su3et
-suf3f
-sug3
-3sui
-sui5c
-su5ing
-1s2ul
-s4u2m
-sum3i
-sun4a
-su5pe
-su3pin
-supra3
-sur4as
-sur3c
-s4urg
-sur3pl
-su5su
-su5z
-2s3v
-svers5a
-sves4
-svest5i
-sw2
-5swee
-swell5i
-4swered
-2swo
-s2y
-4sy.
-sy4bi
-sy1c
-sy4ce
-sy4chr
-sy4d
-1syl
-3syn
-syn5e
-sy5pho
-syr5i
-2ta.
-2tab
-ta5blem
-3tabli
-t2abo
-ta3bol
-ta4bou
-t4a3ce
-ta5chom
-ta3chy
-ta4cid
-t5ade
-tad4i
-5t2adj
-ta5dor
-tad2r
-tae5n
-taf4
-tage5o
-ta5gog
-3tagr
-3tah
-1tai
-3tail
-2tair
-t4ais
-1tak
-tal2c
-tal5ent
-ta5lep
-t4alia
-t4alin
-tal4l3a
-5tallu
-t2alo4
-ta3ly
-tam5ari
-5ta3met
-tamorph5
-tan5at
-tand5er
-t4ane
-5tanel
-tan5ie
-t5aniz
-tant5an
-ta4pa
-1tard
-tar5ia.
-tark5i
-tar3n
-3tarr
-tas3i
-t3asm
-5tass
-tas4t
-ta3sta
-tast5i4c
-t4ateu
-3tatis
-t4ato.
-tat4ou
-tat4r
-tat3ut
-tau3to
-t5awa
-tawn4
-t4ax
-4t3b
-2tc2
-t1ca
-tcas4
-tch5ett
-tch5u
-4t1d4
-4te.
-te5cha
-5techn
-te3cr
-t4ed
-te5d2a
-4tedd
-4tedo
-4teei
-te2g
-5tegic
-t3ego
-teg1r
-teg3u
-tei4
-te2l
-4teled
-tel5iz
-1tell
-4te3lo
-3tels
-tem3a
-4teme
-te5mon
-ten4ag
-4tenar
-4tene
-t5enm
-5tenna
-4teno
-te5nog
-tent4a
-te2o
-teo5l
-2tep
-te3pe
-tep5i
-tera4c
-t4erag
-t4erato
-3ter3b
-5terd
-2tere4
-ter3eb
-ter5ec
-5terel
-te3reo
-3teres4
-1teri
-ter3ia
-ter5id
-ter5if
-t4erin
-ter5iorit
-ter3it
-ter5k
-5ternit
-ter5no
-3terr
-2t2es
-4tes.
-tesi4
-t3esq
-t3ess.
-t5esses
-tes4t
-test3a
-5teste
-test5er
-test5in
-test5or
-tes5tu
-teti4
-tet1r
-tetr5o
-tew3ar
-3tex
-2t3f
-t3g
-2th.
-tha4
-th5al.
-thal3m
-4the.
-4thea
-th5eas
-4thed
-1thei
-3theo
-theo3l
-t4her
-5therap
-th5erc
-t5herd
-4thered
-th3ern
-th3ery
-4thi.
-t5hill
-3think
-5th4io
-th4is.
-th5lo
-2thm2
-th4mi
-th3oli
-4t5hoo
-4thopt
-4thores
-3thot
-5thoug
-1th2r
-2ths
-5thur
-5thym
-3thyr
-thys4
-4ti.
-1ti2a
-ti3ab
-2t3ib
-5ti5bu
-t1ic
-t3ic.
-tic5as
-t2ici
-tici5ar
-3ti3cin
-t4icity
-ti3col
-tic1u
-4ticule
-t3id.
-t4ida
-3tidi
-ti3die
-t5ids
-3ti2en
-1tif2
-ti3fe
-4tiff
-4tific.
-3tigi
-tigi5o
-4tigm
-5tigu
-ti4ka
-ti4let
-5tilin
-t4ill
-til4l5ag
-t4ilt
-1tim
-tim1a
-5timet4
-t1in
-5ti5nad
-4tined
-tin3et
-ting5ing
-3tinn
-4tins
-t4int
-tin4te
-tin5ted
-tint5er
-tin3ue
-1tio
-ti3oc
-tiol3a
-ti5omo
-4tionem
-1tip
-ti5plex
-ti3pli
-ti4q
-ti5qua
-t3iris
-2t1is
-3tisan
-tis4c
-tish5i
-3tiss
-tis2t
-5t4iste
-t4istr
-ti5t4an
-tith4e
-tit5il
-t3itis
-3titl
-ti3tra
-3tiu
-2t1iv
-tiv5all
-t3ive
-tiv3is
-2tl
-t1la
-tlant4
-5tleb
-5tledr
-3tlef
-3tlem
-5tlen
-5tletr
-5tlew
-t1li
-tlin4
-4t3m
-tmet2
-tmo4t5
-2t3n2
-t4nere
-2to.
-toas4
-to1b
-4tocc
-tode5c
-tod4i
-to5do
-3toe
-1tog
-2t3oid
-5tok
-4toled
-tol4l
-tolu5
-to5ly
-tom3ac
-toma4n
-tomat5ol
-tom4b
-to4mog
-tom5os
-ton4e
-ton5ea
-3tonn
-ton3s
-top4e
-to5pia
-to4pos
-t1or
-to5rad
-4tore
-tor5er
-tori4as
-tor5oi
-tor5p
-tor4q
-3tos.
-to3s4p
-tos4t
-to5str
-to5talis
-to5taliz
-to3tem
-tot5u
-tou4f
-5tour
-t3ous
-4tov
-to3war
-t3p
-tr2
-tra4co
-4tradd
-4traist
-tra5q
-trarch4
-tra5ven
-tra5vers
-trav5est
-3tray
-4tre.
-4tred
-tre4mo
-tren4
-trend5i
-tre5pr
-tres4s
-4trew
-t5ricl
-3tricu
-t2rie
-tri5fli
-trifu5ga
-2tril
-tri3li
-tri3me
-t2rit
-4trix
-t4rod
-tro5f
-5troop
-tro4pha
-tro3sp
-t2rot
-t5roto
-tro1v
-3troy
-t4ruc
-tru3i
-2t4ry
-trys4
-4t1s
-t2sc
-ts4h
-ts2i
-t4sil
-tstay4
-2t1t4
-tta4
-t3tab
-t5tan
-t5tas
-t3ted
-t4tere
-t5terer
-t5test
-t3ti
-tti3tu
-ttitud4
-ttitu5di
-t3tler
-t3tli
-t5toi
-t5tor
-t3tos
-tt5s
-t4tupe
-t2ty
-4tu.
-tu1a
-tu4al5li
-tuari4
-tu4bin
-tu5bu
-tu5den
-tud5ie
-tu5en
-4tuf
-tu1i
-tu4is
-2tum.
-3tumi
-4tums
-3tun
-tun4a
-tu4ne
-tun5it
-tup5let
-tup5lic
-tu5rac
-t4uran
-turb3a
-tur4d
-turf5i
-5turit
-tur4n
-5tur5o
-1tut
-4tut4iv
-t1w
-t3wa4
-t2wi
-twi5li
-t3wit
-t3wo
-twon4
-4ty.
-ty4a
-5tych
-ty4let
-tyl5i
-ty5mi
-1typ
-3type
-1tyr1
-2tz2
-t5zia
-t5zie
-2ua2
-ua3ci
-u2ag
-ua5h
-u1al
-ua5lu
-uan4o
-uant5is
-uant5it
-uar3a
-uar2d
-uar3i
-uari4n
-uar5ters
-uar4t5i
-ua5tern
-uba4
-ub5bly
-u1b2i
-u4bicu
-ub3lin
-ub5lo
-ub3ra
-4uc
-u1c2a
-uccen5
-u4cend
-u4ch
-u5chr
-uc3l
-u4com
-uco5t
-uc2tr
-uc3ub
-uc5ul
-u5cum
-u5dac
-ud1al
-ud4e
-ud5ep
-u4der
-udev4
-ud4g
-udi4cin
-ud3ied
-u5dinis
-udi3o
-u5ditio
-u2do
-u5doi
-ud5on
-u5dor
-ueb4
-u4ed
-uen4o
-uen4ter
-uer3a
-ues4s
-uest5rat
-ues5tri
-ue4t
-uf2
-3ufa
-u3fl
-u4fo
-uft4
-uga4c
-ug5lif
-ug2ni
-u4go
-ug3ul
-ug3ura
-uhem3
-2ui2
-ui3al
-u2ic
-uicent5
-uid5o
-uil4a
-uild5er
-ui3lib
-uil4t
-uinc5u
-uin4s
-uint4
-uin4ta
-ui5pr
-uis3er
-uis4t
-uisti4
-uit5er
-ui5val5
-ui3vo
-u2iz
-4ul.
-u1la
-u4lab
-4ulac
-ul5ard
-u5lat
-ul4bo
-ul3ca
-ul4ch
-5ulche
-5ulchre
-4ulea
-u5lee
-u1len4
-4ulenci
-u5lent
-ulet4
-ul4ev
-ul2fa
-ul2i
-ul4ia
-u3line
-ul3ing
-ul5ish
-u5liti
-u5lity
-4ull
-ul4lat
-ul4l5ib
-ul4lis
-ul4lit
-ul3m
-u1lo
-u5lom
-ulph3i
-ulph3o
-ulp5ing
-ul4po
-2uls
-ul3sif
-u1lu
-ul1v4
-u1ma
-um3am
-umar4
-u5mas
-um4bar.
-um2bi
-umen4t
-u1mi
-u4mic
-u2m5if
-umi4fy
-umi5lia
-umin4ar
-u4mined
-u4m3ing
-u4mora
-u4mos
-um2p
-um4pa
-ump3er
-ump5li
-umpt4
-ump5te
-u1mu
-umu4lo
-un1
-u4n3a4
-un5ab
-unabu4
-un4ae
-un4as.
-un2ce
-un4dal
-un3ded
-unde4t
-undeter5m
-undi4c
-un4die
-un3do
-un4dus
-u3n2er
-unho5li
-un2i
-u1nic
-un4ie
-un3in
-un4ine
-uni5p
-uni3so
-un3ist
-uni1v
-un3iz
-unk5eri
-un5ket
-un3kn
-2unn
-un4nag
-un5o
-un5r
-un3s4
-un5sh
-un2ti
-until4
-unu4
-un3us
-uo3de
-uodent4
-u5oros
-u3os
-uo5tatio
-u1ou
-2up
-u1pat
-u1pe
-u5pee
-uper3
-u1ph
-u5pid
-up3ing
-u4po
-u5pol
-u2pr
-upre4
-u5quet
-u4r
-ur1a
-4ura.
-ura4ci
-4urae
-ura2g
-4uranti
-uras5
-urb5ing
-ur2c
-urc3a
-ur5den.
-ur5deni
-ur5die
-ur4du
-ur3ea
-ur5ee
-ur1er
-ur3ers
-ur1e2t
-ur3ett
-ur2f
-ur3fa
-ur1i
-u5ri5cu
-ur4ie.
-ur5ifie
-uril4
-ur4ili
-ur5ion
-uri4os.
-url5er
-ur5lie
-url5ing
-ur1m4
-urn3al
-urn3er
-urn5s
-ur1o
-uro4d
-ur5o4m
-ur5ot
-uroti4
-urpen5t
-urph4
-ur2s
-urs5al
-urs5er
-ur3sh
-urs3or
-ur5ta
-ur1te
-ur5tes
-urth2
-ur3the
-urti4
-ur1u
-ur4va
-u3sad
-us3ag
-us3al
-us4ap
-us3at
-2usc
-us4can
-ush5a
-us5ian
-usil5
-u4s1in
-usk5er
-us1p
-us4pa
-uss4e
-4ust
-us3tac
-us5tan
-ust4ic
-us5tici
-ust5ig
-ust3il
-us1to4
-us1tr
-us4tre
-usur4e
-us5uri
-u3tane
-utch4e
-ut5eni
-u5teo
-u4tere
-ut2i
-u3tie
-ut3ing
-u5tini
-u3tio
-ut5ism
-ut3ist
-5u5tiz
-ut3le
-utli4
-ut2o
-u4to5s
-u4t1ra
-uts2
-ut5sm
-ut4tone
-u3tu
-u4tul
-uu4
-uv2
-u4va
-uve2
-uven3
-uv5eri
-u5vin
-ux2o
-uy4a
-uy5er
-4va.
-2v3ab
-5vac
-va1ca
-va5ceo
-vacu1
-v4ad
-3vag3a
-va4ge
-4vaged
-vager4
-vag5r
-v1al.
-1vale
-vali2
-va5lie
-val4ise
-5valu
-5val4v
-vam4i
-va5mo
-5vann
-vanta4
-4vantl
-var4is
-4vase
-vas5el5
-v5a4so
-vast3a
-v4at.
-5vatee
-vat4ina
-4vatu
-2ve.
-vect4
-ve3g
-3vei
-2vel
-vel3at
-4vele
-v3eler
-ve5line
-v1ell
-v4ella
-vel5ler
-vel3li
-vel5opi
-ven4al
-ven4do
-ve1ne
-ve5nia
-vent5o
-ven4tr
-4venu
-v5en5ue
-5ve3o
-5verb
-verde5v
-4v4ere4
-ver5ea
-ver3ei
-v5erie
-ver3m4
-ver4ne
-5verse
-4ves.
-4vi.
-5vialit
-vi4atr
-vi1b4
-vic2
-vi4ca
-vi5cari
-vice3r
-5vict2
-5vicu
-5vider
-vign3
-vi4l
-vil3i
-3vili4a
-v5ilise
-v5ilize
-vil5lin
-vim4
-5vime
-2v1in
-vin4ac
-3vinci
-vin2e
-5vinit
-v5iniz
-vint4
-vin5ta
-3vi1o
-viol3
-vi5om
-5vi3p
-vire4
-vi5rid
-vir3u
-5visecti
-5visio
-v3ism
-2v5ist
-vi2t
-vit2a
-vi3tal
-vi5tel
-v5itie
-vit1r
-vi3tu
-v3ity
-viv5al
-viv5or
-vi5zo
-1vo
-2vo.
-vo2l
-vo5litio
-vol4ubi
-volv4
-4von
-vo5rac
-3vorc
-4vore
-3voro
-vo3tar
-2vow
-vr4
-v5ra4
-v5ri
-v5ro
-vrot4
-4vs
-v3ure
-2vv2
-v5ver
-v5vi
-4vy
-4wab
-wag3o
-wais4
-w3al.
-wall5er
-w3als
-wan5gli
-wank5er
-war5ded
-ward5er
-ward5r
-war4f
-war4te
-war5thi
-wass4
-was4t
-wa1te
-wav4ine
-w1b4
-w4bon
-w5c
-w5die
-w3dr
-we4b
-w4ed
-3weed
-5wei
-weight5i
-weir4
-wel3i
-weliz4
-wel4izi
-wel4li
-went4
-wes4
-west3
-w5est.
-w5f
-wh2
-w5hid
-wi2
-wid4e
-wi5er
-will5in
-wim2p
-win2e
-wing5er
-win4tr
-3w4ise
-with5eri
-w3la
-wl1er
-wl1i
-wl4ie
-w1m
-1wo
-wol4
-wol5ver
-3wom
-won2t
-word5i
-wotch4
-woun4
-wp5in
-wra4
-ws5ing
-w5ster
-wt4
-w5te
-w3to
-wy2
-wz4
-x1a
-x4ach
-x4ade
-x2ag
-x3agg
-xa5met
-x3ami
-xan5d
-xano4
-x2as
-xas5p
-x3c4
-xcav3
-xcor5
-xe4
-x1ec
-xec3r
-xe5cutio
-xecut5o
-xe2d
-x5edl
-x5edn
-x5eg
-x1em
-x3en
-xen4op
-x3er
-xer4g
-xer3o
-x1h
-xhort4a
-x1i
-x3ia.
-x4ias
-xi4c
-x5ige
-xim3a
-x4ime
-ximet4
-x3io
-xi4p
-x4it.
-x4its
-x1o
-x4ode
-x5om
-xo4mat
-xo4n
-x4os
-xotrop4
-x3p
-xpel4
-xpo5n2
-xpoun4
-x1s2
-x1t2
-x4ted
-xtens5o
-xter3i
-xter4m3
-xtern3
-x4th
-xti4
-xtra5d
-xtra3v
-xtre4
-xu4o
-x1ur
-xur4b
-x5us
-x5w
-xx4
-xys4
-xy3t
-y1a2
-y5ac
-1y2ar
-3yard
-yas4i
-4y1b
-yb2i
-yca5m
-y5chede
-ych5is
-y3cho
-y4chose
-yc1l
-yclam4
-y4coli
-y4coll
-ycom4
-y2cos
-y1d4
-yda4
-yder4
-ydro5s
-y4drou
-y3ee
-yel5o
-y3en
-y1er
-y3est.
-yes5te
-y5ett
-y5f
-y1g
-ygi2
-ygi5a
-y3gl
-ygo4i
-y1h
-y1i
-y3in
-yle2
-ylin5de
-yllab5i
-yl3os
-yl5ou
-y1me4
-y3men
-y5met
-y5mia
-ym5in
-ymot4
-ym4pha
-yn1
-ynago4
-ynand5
-yn5ap4
-yn5ast
-yn4ci
-ynd4
-yn2e
-yn3er
-yng4
-yn4gol
-yni4c
-yn4y
-y1o2
-yo3d
-yo4gis
-youn4
-young5
-2yp
-yp5al
-yper3
-y5pere
-y4peri
-y4pero
-y4pet
-y2ph
-yph4e
-yph3i
-y4p1i
-yp1n
-ypo1
-y4pox
-y2pr
-yp5ri
-yp4si
-yp5syf
-ypt3a
-y5pu
-y3rag
-yr3at
-yr3ic
-y5rig
-yr3is
-yr3i4t
-yr5olo
-yr4r
-yr4s
-yr5u
-4y2s
-ys5ag
-ys5at
-y3s2c
-y3sh
-ys1ic
-ys3in
-ysi4o
-yso5
-ys4so
-ys1t
-ys4to
-y3u
-yv4
-y3w
-yz5er
-yzy4
-z1a1
-2za.
-za4bi
-za2i
-z4as
-za4te
-zd4
-zeb4
-ze4d
-zen4a
-z5eng
-zer5a
-z3et4
-z1i
-zib5
-5zic4
-z2ie
-zi5m
-zin4c3i
-z3ing
-zing5i
-z4is
-3zlem
-z3ler
-z3li
-4zo.
-5zoa
-zo3an
-3zoo2
-zo3ol
-zo3on
-zo5op
-zo5oti
-zo5p
-zot2
-z5s
-5zum
-4zy.
-zz2
-z3zar
-z5zas
-z3zie
-zzo3
-z5zot} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-hr.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-hr.hyp
deleted file mode 100644
index 4491ccb47bc..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-hr.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-hr.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-hr.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-hr.pat
deleted file mode 100644
index 9c84016054c..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-hr.pat
+++ /dev/null
@@ -1,1482 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-hr.rme
-
-% used: a b c d e f g h i j k l m n o p r s t u v z ć č đ š ž
-
-\patterns{
-a1a2
-a1e2
-a1i2
-a1o2
-a1u2
-e1a2
-e1e2
-e1i2
-e1o2
-e1u2
-i1a2
-i1e2
-i1i2
-i1o2
-i1u2
-o1a2
-o1e2
-o1i2
-o1o2
-o1u2
-u1a2
-u1e2
-u1i2
-u1o2
-u1u2
-a1ba
-a1be
-a1bi
-a1bo
-a1bu
-a1ca
-a1ce
-a1ci
-a1co
-a1cu
-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ža
-a1dže
-a1dži
-a1džo
-a1džu
-a1đa
-a1đe
-a1đi
-a1đo
-a1đu
-a1fa
-a1fe
-a1fi
-a1fo
-a1fu
-a1ga
-a1ge
-a1gi
-a1go
-a1gu
-a1ha
-a1he
-a1hi
-a1ho
-a1hu
-a1ja
-a1je
-a1ji
-a1jo
-a1ju
-a1ka
-a1ke
-a1ki
-a1ko
-a1ku
-a1la
-a1le
-a1li
-a1lo
-a1lu
-a1lja
-a1lje
-a1lji
-a1ljo
-a1lju
-a1ma
-a1me
-a1mi
-a1mo
-a1mu
-a1na
-a1ne
-a1ni
-a1no
-a1nu
-a1nja
-a1nje
-a1nji
-a1njo
-a1nju
-a1pa
-a1pe
-a1pi
-a1po
-a1pu
-a1ra
-a1re
-a1ri
-a1ro
-a1ru
-a1sa
-a1se
-a1si
-a1so
-a1su
-a1ša
-a1še
-a1ši
-a1šo
-a1šu
-a1ta
-a1te
-a1ti
-a1to
-a1tu
-a1va
-a1ve
-a1vi
-a1vo
-a1vu
-a1za
-a1ze
-a1zi
-a1zo
-a1zu
-a1ža
-a1že
-a1ži
-a1žo
-a1žu
-e1ba
-e1be
-e1bi
-e1bo
-e1bu
-e1ca
-e1ce
-e1ci
-e1co
-e1cu
-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ža
-e1dže
-e1dži
-e1džo
-e1džu
-e1đa
-e1đe
-e1đi
-e1đo
-e1đu
-e1fa
-e1fe
-e1fi
-e1fo
-e1fu
-e1ga
-e1ge
-e1gi
-e1go
-e1gu
-e1ha
-e1he
-e1hi
-e1ho
-e1hu
-e1ja
-e1je
-e1ji
-e1jo
-e1ju
-e1ka
-e1ke
-e1ki
-e1ko
-e1ku
-e1la
-e1le
-e1li
-e1lo
-e1lu
-e1lja
-e1lje
-e1lji
-e1ljo
-e1lju
-e1ma
-e1me
-e1mi
-e1mo
-e1mu
-e1na
-e1ne
-e1ni
-e1no
-e1nu
-e1nja
-e1nje
-e1nji
-e1njo
-e1nju
-e1pa
-e1pe
-e1pi
-e1po
-e1pu
-e1ra
-e1re
-e1ri
-e1ro
-e1ru
-e1sa
-e1se
-e1si
-e1so
-e1su
-e1ša
-e1še
-e1ši
-e1šo
-e1šu
-e1ta
-e1te
-e1ti
-e1to
-e1tu
-e1va
-e1ve
-e1vi
-e1vo
-e1vu
-e1za
-e1ze
-e1zi
-e1zo
-e1zu
-e1ža
-e1že
-e1ži
-e1žo
-e1žu
-i1ba
-i1be
-i1bi
-i1bo
-i1bu
-i1ca
-i1ce
-i1ci
-i1co
-i1cu
-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ža
-i1dže
-i1dži
-i1džo
-i1džu
-i1đa
-i1đe
-i1đi
-i1đo
-i1đu
-i1fa
-i1fe
-i1fi
-i1fo
-i1fu
-i1ga
-i1ge
-i1gi
-i1go
-i1gu
-i1ha
-i1he
-i1hi
-i1ho
-i1hu
-i1ja
-i1je
-i1ji
-i1jo
-i1ju
-i1ka
-i1ke
-i1ki
-i1ko
-i1ku
-i1la
-i1le
-i1li
-i1lo
-i1lu
-i1lja
-i1lje
-i1lji
-i1ljo
-i1lju
-i1ma
-i1me
-i1mi
-i1mo
-i1mu
-i1na
-i1ne
-i1ni
-i1no
-i1nu
-i1nja
-i1nje
-i1nji
-i1njo
-i1nju
-i1pa
-i1pe
-i1pi
-i1po
-i1pu
-i1ra
-i1re
-i1ri
-i1ro
-i1ru
-i1sa
-i1se
-i1si
-i1so
-i1su
-i1ša
-i1še
-i1ši
-i1šo
-i1šu
-i1ta
-i1te
-i1ti
-i1to
-i1tu
-i1va
-i1ve
-i1vi
-i1vo
-i1vu
-i1za
-i1ze
-i1zi
-i1zo
-i1zu
-i1ža
-i1že
-i1ži
-i1žo
-i1žu
-o1ba
-o1be
-o1bi
-o1bo
-o1bu
-o1ca
-o1ce
-o1ci
-o1co
-o1cu
-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ža
-o1dže
-o1dži
-o1džo
-o1džu
-o1đa
-o1đe
-o1đi
-o1đo
-o1đu
-o1fa
-o1fe
-o1fi
-o1fo
-o1fu
-o1ga
-o1ge
-o1gi
-o1go
-o1gu
-o1ha
-o1he
-o1hi
-o1ho
-o1hu
-o1ja
-o1je
-o1ji
-o1jo
-o1ju
-o1ka
-o1ke
-o1ki
-o1ko
-o1ku
-o1la
-o1le
-o1li
-o1lo
-o1lu
-o1lja
-o1lje
-o1lji
-o1ljo
-o1lju
-o1ma
-o1me
-o1mi
-o1mo
-o1mu
-o1na
-o1ne
-o1ni
-o1no
-o1nu
-o1nja
-o1nje
-o1nji
-o1njo
-o1nju
-o1pa
-o1pe
-o1pi
-o1po
-o1pu
-o1ra
-o1re
-o1ri
-o1ro
-o1ru
-o1sa
-o1se
-o1si
-o1so
-o1su
-o1ša
-o1še
-o1ši
-o1šo
-o1šu
-o1ta
-o1te
-o1ti
-o1to
-o1tu
-o1va
-o1ve
-o1vi
-o1vo
-o1vu
-o1za
-o1ze
-o1zi
-o1zo
-o1zu
-o1ža
-o1že
-o1ži
-o1žo
-o1žu
-u1ba
-u1be
-u1bi
-u1bo
-u1bu
-u1ca
-u1ce
-u1ci
-u1co
-u1cu
-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ža
-u1dže
-u1dži
-u1džo
-u1džu
-u1đa
-u1đe
-u1đi
-u1đo
-u1đu
-u1fa
-u1fe
-u1fi
-u1fo
-u1fu
-u1ga
-u1ge
-u1gi
-u1go
-u1gu
-u1ha
-u1he
-u1hi
-u1ho
-u1hu
-u1ja
-u1je
-u1ji
-u1jo
-u1ju
-u1ka
-u1ke
-u1ki
-u1ko
-u1ku
-u1la
-u1le
-u1li
-u1lo
-u1lu
-u1lja
-u1lje
-u1lji
-u1ljo
-u1lju
-u1ma
-u1me
-u1mi
-u1mo
-u1mu
-u1na
-u1ne
-u1ni
-u1no
-u1nu
-u1nja
-u1nje
-u1nji
-u1njo
-u1nju
-u1pa
-u1pe
-u1pi
-u1po
-u1pu
-u1ra
-u1re
-u1ri
-u1ro
-u1ru
-u1sa
-u1se
-u1si
-u1so
-u1su
-u1ša
-u1še
-u1ši
-u1šo
-u1šu
-u1ta
-u1te
-u1ti
-u1to
-u1tu
-u1va
-u1ve
-u1vi
-u1vo
-u1vu
-u1za
-u1ze
-u1zi
-u1zo
-u1zu
-u1ža
-u1že
-u1ži
-u1žo
-u1žu
-b1b
-b1c
-b1č
-b1ć
-b1d
-b1dž
-b1đ
-b1f
-b1g
-b1h
-1bj
-2bj.
-b1k
-1bl
-2bl.
-2b1lj
-b1m
-b1n
-b1nj
-b1p
-1br
-2br.
-b1s
-b1š
-b1t
-1bv
-2bv.
-b1z
-b1ž
-c1b
-c1c
-c1č
-c1ć
-c1d
-c1dž
-c1đ
-c1f
-c1g
-c1h
-1cj
-2cj.
-c1k
-1cl
-2cl.
-2c1lj
-c1m
-c1n
-c1nj
-c1p
-1cr
-2cr.
-c1s
-c1š
-c1t
-1cv
-2cv.
-c1z
-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č
-d1ć
-d1d
-d2ž
-d1đ
-d1f
-2d1g
-d1h
-1dj
-2dj.
-d1k
-2d1l
-2d1lj
-d1m
-d1n
-d1nj
-d1p
-1dr
-2dr.
-d1s
-d1š
-d1t
-1dv
-2dv.
-d1z
-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č
-f1ć
-f1d
-f1dž
-f1đ
-f1f
-f1g
-f1h
-1fj
-2fj.
-f1k
-1fl
-2fl.
-2f1lj
-f1m
-f1n
-f1nj
-f1p
-1fr
-2fr.
-f1s
-f1š
-f1t
-1fv
-2fv.
-f1z
-f1ž
-g1b
-g1c
-g1č
-g1ć
-g1d
-g1dž
-g1đ
-g1f
-g1g
-g1h
-1gj
-2gj.
-g1k
-1gl
-2gl.
-2g1lj
-g1m
-g1n
-g1nj
-g1p
-1gr
-2gr.
-g1s
-g1š
-g1t
-1gv
-2gv.
-g1z
-g1ž
-h1b
-h1c
-h1č
-h1ć
-h1d
-h1dž
-h1đ
-h1f
-h1g
-h1h
-1hj
-2hj.
-h1k
-1hl
-2hl.
-2h1lj
-h1m
-h1n
-h1nj
-h1p
-1hr
-2hr.
-h1s
-h1š
-h1t
-1hv
-2hv.
-h1z
-h1ž
-j1b
-j1c
-j1č
-j1ć
-j1d
-j1dž
-j1đ
-j1f
-j1g
-j1h
-j1j
-j1k
-j1l
-2j1lj
-j1m
-j1n
-j1nj
-j1p
-j1r
-j1s
-j1š
-j1t
-j1v
-j1z
-j1ž
-k1b
-k1c
-k1č
-k1ć
-k1d
-k1dž
-k1đ
-k1f
-k1g
-k1h
-1kj
-2kj.
-k1k
-k1l
-1k2lj
-2klj.
-k1m
-k1n
-k1nj
-k1p
-1kr
-2kr.
-k1s
-k1š
-k1t
-k1v
-k1z
-k1ž
-l1b
-l1c
-l1č
-l1ć
-l1d
-l1dž
-l1đ
-l1f
-l1g
-l1h
-l1k
-l1l
-2l1lj
-l1m
-l1n
-l1nj
-l1p
-l1r
-l1s
-l1š
-l1t
-l1v
-l1z
-l1ž
-lj1b
-lj1c
-lj1č
-lj1ć
-lj1d
-lj1dž
-lj1đ
-lj1f
-lj1g
-lj1h
-lj1k
-1ljl
-2ljl.
-lj1lj
-lj1m
-lj1n
-lj1nj
-lj1p
-1ljr
-2ljr.
-lj1s
-lj1š
-lj1t
-1ljv
-2ljv.
-lj1z
-lj1ž
-m1b
-m1c
-m1č
-m1ć
-m1d
-m1dž
-m1đ
-m1f
-m1g
-m1h
-1mj
-2mj.
-m1k
-1ml
-2ml.
-2m1lj
-m1m
-m1n
-m1nj
-m1p
-1mr
-2mr.
-m1s
-m1š
-m1t
-1mv
-2mv.
-m1z
-m1ž
-n1b
-n1c
-n1č
-n1ć
-n1d
-n1dž
-n1đ
-n1f
-n1g
-n1h
-2nj.
-n1k
-1nl
-2nl.
-2n1lj
-n1m
-n1n
-n1nj
-n1p
-n1r
-n1s
-n1š
-n1t
-1nv
-2nv.
-n1z
-n1ž
-nj1b
-nj1c
-nj1č
-nj1ć
-nj1d
-nj1dž
-nj1đ
-nj1f
-nj1g
-nj1h
-1njj
-2njj.
-nj1k
-1njl
-2njl.
-2nj1lj
-nj1m
-nj1n
-nj1nj
-nj1p
-1njr
-2njr.
-nj1s
-nj1š
-nj1t
-1njv
-2njv.
-nj1z
-nj1ž
-p1b
-p1c
-p1č
-p1ć
-p1d
-p1dž
-p1đ
-p1f
-p1g
-2p1h
-1pj
-2pj.
-p1k
-1pl
-2pl.
-2p1lj
-p1m
-p1n
-p1nj
-p1p
-1pr
-2pr.
-p1s
-p1š
-p1t
-1pv
-2pv.
-p1z
-p1ž
-r1b
-r1c
-r1č
-r1ć
-r1d
-r1dž
-r1đ
-r1f
-r1g
-r1h
-r1j
-r1k
-r1l
-2r1lj
-r1m
-r1n
-r1nj
-r1p
-r1r
-r1s
-r1š
-r1t
-r1v
-r1z
-r1ž
-1sb
-2sb.
-s1c
-1sč
-2sč.
-1sć
-2sć.
-1sd
-2sd.
-1sdž
-2sdž.
-1sđ
-2sđ.
-1sf
-2sf.
-1sg
-2sg.
-1sh
-2sh.
-1sj
-2sj.
-1sk
-2sk.
-s1l
-1slj
-2slj.
-1sm
-2sm.
-s1n
-2sn.
-1snj
-2snj.
-s1p
-1sr
-2sr.
-1ss
-2ss.
-1sš
-2sš.
-s1t
-2st.
-1sv
-2sv.
-1sz
-2sz.
-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č
-t1ć
-t1d
-t1dž
-t1đ
-t1f
-t1g
-t1h
-1tj
-2tj.
-t1k
-1tl
-2tl.
-2t1lj
-t1m
-t1n
-t1nj
-t1p
-1tr
-2tr.
-t1s
-t1š
-t1t
-1tv
-2tv.
-t1z
-t1ž
-v1b
-v1c
-v1č
-v1ć
-v1d
-v1dž
-v1đ
-v1f
-v1g
-v1h
-v1j
-1v2je
-vj.
-v1k
-v1l
-2v1lj
-v1m
-v1n
-v1nj
-v1p
-1vr
-v1s
-v1š
-v1t
-v1v
-v1z
-v1ž
-z1b
-1zc
-2zc.
-1zč
-2zč.
-1zć
-2zć.
-z1d
-1zdž
-2zdž.
-1zđ
-2zđ.
-1zf
-2zf.
-z1g
-1zh
-2zh.
-1zj
-2zj.
-1zk
-2zk.
-z1l
-2z1lj
-z1m
-z1n
-1znj
-2znj.
-1zp
-2zp.
-z1r
-z1s
-1zš
-2zš.
-1zt
-2zt.
-1zv
-2zv.
-1zz
-2zz.
-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
-ć1s2t
-d1s2m
-j1z2g
-r2n1t
-r2z1n
-m2p1t
-2d1vl
-r2t1c
-r2n1c
-r2č1k
-2s1hr
-z1v2l
-2z1vr
-r2k1n
-r2c1n
-r2h1nj
-s2p1n
-j1s2l
-r2d1n
-.zg2
-r2dž1b
-2š1tv
-r2t1s
-n2t1s
-2s1kr
-r2n1k
-d1š2k
-d1s2p
-r2t1m
-1r2je
-k2s1p
-t1s2t
-l2m1s
-r2h1k
-j1s2t
-s1v2l
-r2p1c
-t1k2l
-s1k2l
-n2t1n
-2d1ja
-2rt.
-z1r2j
-d1s2t
-n2k1c
-r2t1k
-r2g1n
-r2h1t
-.na2j1
-.be2z1
-.iz1
-.is1
-.ne2o3
-r2t1n
-r2v1n
-r1s2t
-n2s1t
-l2f1t} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-hu.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-hu.hyp
deleted file mode 100644
index 8161b083680..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-hu.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-hu.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-hu.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-hu.pat
deleted file mode 100644
index 1efa981e0c4..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-hu.pat
+++ /dev/null
@@ -1,62858 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-hu.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u v w x y z á ä é í ó ö ú ü ő ű
-
-\patterns{
-.a2
-.adatát1a2
-.ada2t1e2
-.adás1s
-.adá2s3z
-.ad1yé.
-.ad1yi
-.ag1os
-.ag2ra
-.agyag1g
-.agy1á2ram
-.agy1árt
-.agy1e2
-.agyo2
-.agyon1
-.agy1ó2
-.agy1ű2
-.akác1c
-.aká2cs
-.ak2h
-.ako2
-.ak2t1ér.
-.ak2t1orr
-.ak2t1ő2
-.aku1p2
-.ala2g1
-.alak1a2
-.ala2k1ö2
-.ala2k1ő2
-.ala2pa
-.ala2p1á
-.al1eg
-.al1is
-.al2járn
-.alje2
-.al2j1el
-.aljel1ö2
-.alo2m1
-.al1os
-.al2t1a2k
-.al2t1erj
-.al2tén
-.al2térn
-.al2tért
-.al2tin
-.am1ak
-.ango2l1ó2
-.an1th
-.anti1s
-.apa1p2
-.apá2ly1á2z
-.ara2ny1e2
-.ara2sze
-.ar1á2c
-.ar2cal
-.arc3c
-.ar2c1e2
-.ar2cél
-.ar2c3há
-.ar2c3hoz
-.ar2cin
-.ar2cio
-.ar2col
-.ar2cö
-.ar2c3s
-.ar1kh
-.at2h
-.az1a2
-.az1ám
-.aze2
-.az1ó2
-.á2
-.ács1ék
-.ág1árn
-.ág1árt
-.ág1ó2
-.ágy1ala
-.ágy1asz
-.ágy1árt
-.ágy1á2z
-.ál1a2
-.ál1é
-.ál1i2
-.áligaz1
-.ál2l1alj
-.ál2l1alt
-.ál2lin
-.ál1o2k
-.ál1ú
-.ár1aj
-.ár1aktá
-.ár1a2l
-.ára2m1e
-.ár1a2p
-.ára2sz
-.ár1aszó
-.ár1ác
-.ár1ál
-.ár1á2z
-.ár1d2
-.áre2
-.ár1em
-.áré2
-.ár1ir
-.ár2nyel
-.ár1ol
-.ár1om
-.ár1os
-.árrés1s
-.ár1s2
-.ár1t2r
-.ász1ál
-.ász1árb
-.ász1á2ré
-.ász1á2ri
-.ász1á2ro
-.át1a2d
-.át1a2k
-.át1alt
-.át1a2n
-.át1ar
-.át1a2s
-.át1av
-.át1á2
-.át1e2
-.át1é2
-.át1i2
-.át1ol
-.át1o2r
-.át1o2s
-.átó2
-.át1óh
-.át1óv
-.át1ö2
-.át1u
-.át1ü2
-.át1ű
-.b2
-.ba2b1a2rá
-.ba2bál
-.ba2b1e2
-.ba2bol
-.ba2j1á2rat
-.ba2j1e
-.bak1aszt
-.ba2kál
-.ba2k1á2ro
-.baké2
-.ba2k1ö2
-.ba2kur
-.ba2l1e2g
-.ba1ts
-.ba2u
-.bá2l1ó2
-.bár1a
-.bá1th
-.be2at.
-.be1d2
-.bei2
-.be1kr
-.be1str
-.be1szk
-.beté2t1e2l
-.be1tr
-.bér2c3sí
-.bé2r1o
-.bi2ke
-.bi2os
-.bi2ot
-.bita2
-.bi2tag
-.bi2t1á2
-.bi2tel
-.bi2t1er
-.bi2t1orr
-.bi2tur
-.bo2g1ó2
-.bol2ta
-.bo2ly1ó2
-.bo2nav
-.bo2raj
-.bo2ran
-.bo2ras
-.bo2rat
-.bo2rác
-.bo2rál
-.bo2r1odv
-.bor2sét
-.bort2
-.bo2tá
-.bra2i
-.bu2sz1e
-.c2
-.cen2t1á
-.cen2t1ó2
-.ce2t1e2l
-.ce2t1ű
-.cé2l1e2
-.ci2n1á2
-.cito1
-.cs2
-.csa2k1
-.csa2p1á2g
-.csa2t1é2
-.cse2l1ő2r
-.d2
-.dac1c
-.da2c3s
-.da2i
-.dal1an
-.da2lás
-.da2l1e2
-.da2l1ék
-.da2lén
-.da2l1í2
-.da3lol
-.da2l1ó2
-.dan1n
-.da2u
-.den2g1
-.dé2la
-.dére2
-.dé2res
-.dé2sa
-.di2afo
-.di2aka
-.di2al
-.di2csá
-.di2ómá
-.dó2mor
-.dú2ra
-.e2
-.eb1eg
-.eb1ir
-.eb1í
-.eb1u2
-.eg2é
-.egres1s
-.egy1a2
-.egy1á2
-.egy1e2lőr
-.egy1ev
-.egy1in
-.egy1ö2
-.egy1ü2l
-.el1a2k
-.el1an
-.el1ap
-.ela2s
-.el1ass
-.el1aszn
-.el1aszo
-.el1aszv
-.el1á2
-.el1e2c
-.el1eger
-.ele2gyá
-.el1e2h
-.el1ejt
-.el1e2l
-.ele2ma
-.ele2má
-.ele2meg
-.ele2mel
-.el1emele
-.el1emels
-.el1emelt
-.el1e2més
-.el1e2n
-.el1e2p
-.el1e2r
-.el1e2se
-.el1e2sés
-.el1esh
-.el1e2si
-.el1esn
-.el1e2ső
-.el1ess
-.el1este
-.el1estél
-.el1estü
-.el1e2sü
-.el1esv
-.el1e2sz
-.el1e2t
-.el1e2vet
-.el1e2vez
-.el1evi
-.elé2d
-.el1éde
-.el1é2gek
-.el1éh
-.el1ékez
-.el1é2le
-.elé2n
-.el1éne
-.el1é2p
-.el1é2r
-.el1é2tet.
-.el1é2v
-.el1id
-.el1ig
-.el1i2h
-.el1ik
-.el1i2mit
-.el1in
-.el1ir
-.el1i2s
-.eli2t1o
-.el1itta.
-.el1itták
-.el1izz
-.el1í
-.ellege2
-.elo2
-.el1okk
-.el1oko
-.el1or
-.el1ó2
-.elö2
-.el1ök
-.el1öle
-.el1ölé
-.el1ölh
-.el1öli
-.el1ölj.
-.el1ölje
-.el1öljé
-.el1öljü
-.el1ölne
-.el1ölné.
-.el1ölném
-.el1ölni
-.el1ölő
-.el1ölt.
-.el1ölte
-.el1ölté
-.el1öltn
-.el1öltü
-.el1ölün
-.el1ölv
-.el1öv
-.előé2
-.el1s2
-.el1t2
-.el1u
-.elü2
-.el1ül.
-.el1ülh
-.el1üli
-.el1ülj
-.el1üln
-.el1ülte
-.el1ülv
-.el2v1el
-.el2v1ég.
-.es1er
-.ese2tel
-.es2t1a
-.es2t1á
-.es2t1é2ke.
-.es2t1é2kek
-.et2h
-.etilén1g2
-.evés1s
-.ex1el
-.ez1á
-.ez1e2l
-.é2
-.édes3s
-.ég1a2
-.ég1eg
-.ég1e2rei
-.ége2s
-.ég1esz
-.ég1ér.
-.ég1é2ré
-.ég1érn
-.égés3s
-.égé2sz
-.ég1észb
-.ég1észe
-.ég1észé
-.ég1észn
-.ég1észr
-.ég1ö2
-.ég1u2
-.éh1év
-.éj1a2
-.éj1á2
-.éj1el
-.éj1u
-.ék1a2
-.ék1á
-.ékes1s
-.ék1ir
-.ék1o
-.él1a2
-.él2c1i
-.éli2k
-.él1ike
-.él2v1á2
-.ép1es
-.ép2pa
-.ép2p1el
-.ép2pé
-.ép2po
-.ér1a2n
-.ér2c1e2l
-.ér2c1é2j
-.ér2cék
-.ér2c3sí
-.ér1e2l
-.ér1e2s
-.éré2sz
-.ér1észé
-.ér1é2t
-.érü2
-.ér1ül
-.ér2vad
-.ér2val
-.ér2v1ég.
-.ész1a2l
-.ész1á
-.észe2
-.ész1el
-.ész1em
-.ész1es
-.ész1é2k
-.észigaz1
-.ész1o
-.ész1ő2
-.ész2t1örv
-.észü2
-.ész1ülő
-.év1á2g
-.év1essz
-.év1é2g
-.év1é2k
-.f2
-.fa2it.
-.fa2leg
-.fa2n1év
-.fa2r1ont
-.fas2
-.fa1st
-.fat2
-.fa1tr
-.fe2leme
-.fe2l1essz
-.fe2lev
-.fé2k1e2l
-.fé2m1a2
-.fé2m1á2
-.fil2méré
-.fin2ge
-.fogó2s3zá
-.fol2t1a2
-.fö2lő
-.fö2lül.
-.fölül1e2
-.g2
-.ga2zan
-.gát1al
-.gá2te
-.gá2z1ó2
-.gázs2
-.gá2zsu
-.gáz1z
-.gene2a
-.ge2od
-.ge2os
-.gesz2t1í
-.gé2d1
-.gé2na
-.gé2ná
-.gén3n
-.gé2pe2lem
-.gé2p1i2p
-.giga1s
-.gonor1
-.gonorr2
-.gó2ce
-.gó2la
-.gó2lá
-.gó2lel
-.gó2l1e2s
-.góli2g
-.gó2l1iga
-.gó2lis
-.gő2z1á2
-.gő2zen
-.gő2z1ő
-.gő2zs
-.gu2i
-.h2
-.ha2b1e2
-.ha2b1ol
-.ha2bor
-.ha2b1ő
-.ha2b1u
-.ha2dal
-.ha2d1e2
-.ha2dz
-.ha2ik
-.ha2j1e2
-.ha2jom
-.ha2lác
-.halá2l1ó2
-.ha2lárv
-.ha2leg
-.ha2l1el
-.ha2lep
-.ha2let
-.ha2l1e2v
-.ha2lis
-.han2gad
-.han2g1e
-.ha2sor
-.has3sz
-.ha2tag
-.ha2t1at
-.ha2t1e2
-.ha2told
-.há2m1a
-.há2ny1in
-.háro2m1e
-.há2t1alj
-.há2tus
-.há2zol
-.há2zó
-.he2i
-.hé2t1ez
-.hé2t1o
-.hit1a
-.hi2tis
-.hodás1
-.hol1l
-.hol2t1e
-.ho2ne
-.hő2sá
-.i2
-.ike2r1i
-.ikerü2
-.ike2r1ülé
-.ikon1s
-.ima1s
-.im1p2la
-.in1aktí
-.in2gin
-.inte2r1a
-.io2n1a2
-.io2n1á
-.io2ne
-.ion3n
-.ipa2re
-.izo2m1ért
-.í2
-.íjá2t
-.íj1áto
-.ín1e
-.írá2s1ág
-.írá2s3z
-.ív1a2
-.ív1á2r
-.ív1ell
-.íz1a
-.íz1in
-.j2
-.jaké2
-.ja2kér
-.ja2kov
-.járműká2
-.já2szá
-.já2szó
-.je2gy1a2
-.je2gy1á2
-.je2l1a
-.je2leg
-.je2lev
-.job2b1ol
-.jó2dal
-.jó2s1e2
-.jó2t1á
-.k2
-.kale2i
-.ka2nar
-.ka2n1e
-.kapolc1
-.ka2rala
-.ka2ras
-.ka2r1á2s
-.kar2c3se
-.kare2
-.ka2rem
-.ka2rék
-.ka2ring
-.ka2rí
-.ka2ró2ra
-.ka2r1ó2rák
-.ka2r1ü
-.ka1th
-.ka1tz
-.kár1a2d
-.kás2
-.kása3l
-.ke2csó
-.ke2l1á2
-.ke2l1e2g
-.ke2l1e2ve
-.kel1ö
-.ker2ta
-.ké2nét
-.ké2p1és
-.kéta2
-.ké2tab
-.ké2tad
-.ké2t1ag
-.ké2taka
-.ké2tal
-.ké2tan
-.ké2tap
-.ké2tas
-.ké2tat
-.ké2tau
-.ké2t1á2
-.ké2t1ele
-.ké2t1ez
-.ké2t1o2
-.kéze2
-.ké2z1el
-.ké2zem
-.ké2zs
-.kéz1z
-.kiá2
-.ki1g2
-.ki1krá
-.kió2
-.ki2ság
-.kiű2
-.kla2uz
-.kle2i
-.kló2re
-.ko2rác
-.ko2rí
-.ko2sis
-.kó2d1a2
-.kó2r1e
-.kó2r1é2s
-.kö2b1öl
-.kö2d1ő
-.kö2zis
-.kö2z1ő
-.köz1z
-.kr2
-.kun1a
-.kvar3k.
-.l2
-.lak1a2d
-.la2kal
-.la2k1an
-.la2kép
-.la2kor
-.la2kő
-.lan2t1e
-.lan2t1ó2
-.la2pal
-.la2p1ác
-.la2p1á2r
-.la2p1e2
-.la2p1or
-.la2p1osz
-.la2pó
-.lá2b1e2
-.lá2bil
-.lá2bor
-.lán2c3s
-.lá2nyan
-.lá2ny1e2
-.lá2p1e
-.lá2p1il
-.lá2z1ó2
-.lá2z3s
-.le3dé
-.le2g1
-.le3g2ali
-.le3g2elés
-.le3g2esle2g1
-.le3g2esle3g2esle2g1
-.lege2t
-.le4géne
-.leg3g
-.le3gy
-.lei2d
-.leí2ro
-.leí2ród
-.leí2ru
-.le1kl
-.le1k2r
-.lemez1z
-.le1p2ré
-.le1s2m
-.le1t2r
-.leü2
-.lé2c3s
-.lé2g1a2
-.lé2g1á
-.lége2
-.lé2g1el
-.lé2gér
-.lé2go
-.lé2gy1á2
-.lé2p1a2
-.lépü2
-.lép1ülé
-.lé2t1a2
-.lé2t1á2
-.lét1elek
-.lé2t1e2lé
-.lé2t1érd
-.lé2tör
-.lisz2ta
-.lisz2t1á2
-.lisz2ter
-.lito1s
-.lob1e
-.lobi2
-.lo2bin
-.lo2mag
-.lo2mal
-.lo2m1á
-.lom2b1e2
-.lo2me
-.lo2m1é2t
-.lon2csi
-.lófo2g1a2d
-.lő2cs1ö2v
-.lőrés3s
-.ly1o
-.m2
-.ma2e
-.ma2gal
-.ma2gar
-.ma2gál
-.ma2g1e2
-.mag1g
-.magó2
-.ma2gór
-.ma2in.
-.ma2r1ác
-.ma2r1ing
-.masz2k1or
-.masz2k1ö
-.ma1th
-.ma2uz
-.má2r1is
-.me2g1e2
-.me2g1é2
-.meg1if
-.mego2
-.me2g1ő2
-.me2i
-.mel2lá
-.me2ny1u2
-.me2zá
-.médi2af
-.mé2ná
-.mé2no
-.mé2sza
-.mé2szet
-.mé2szi
-.mé2szo
-.mé2zis
-.mi3rá
-.mo2lyan
-.műi2
-.mű1kr
-.mű1s
-.n2
-.na2gya
-.na2gyá
-.na2gye
-.na2gyú
-.na2pap
-.na2p1ar
-.na2pál
-.na2p1e
-.na2pés
-.na2p1o2r
-.na2pö
-.ne2ma
-.ne2meg
-.ne2m1el
-.ne2min
-.ne2ol
-.ne2szá
-.net2t1a2
-.ne2um
-.né2gyá
-.né2pa
-.né2v1ál
-.né2vel
-.no2r1
-.nya2k1á2ro
-.nya2k1e2
-.nya2k1ö2
-.nyol2c1an
-.o2
-.oda1
-.ok1a2d
-.ok1a2l
-.okka2
-.ola2j1e2
-.ola2sz1ó2
-.olda2l1út
-.or2r1aj
-.or2r1alt
-.or2ran
-.or2r1e2
-.orré2
-.or2r1és
-.or2v1a2
-.or2vá
-.or2v1é
-.orvi2
-.or2vis
-.ot1tr
-.ó2
-.ólo2m1a
-.óme3g2
-.ón1a2
-.ón1á2
-.ón1e2
-.ón1év
-.óvá2s1árt
-.ö2
-.ön1d2
-.ön1e2
-.öni2
-.ön1í
-.ön1k2
-.ön3n
-.ön1o
-.ön1ő
-.ön1s
-.ön1ü
-.össz1a
-.össz1á
-.öte2
-.öt1eg
-.öt1el
-.öt1t2
-.öv1e2g
-.öv1e2l
-.öv1ő2
-.ő2
-.őa3l
-.ői3r
-.őr1ab
-.őr1an
-.őr1e2g
-.őr1é2g
-.őr1é2s
-.őr1ist
-.őr1o
-.őr2s1ág
-.őr1u2
-.őr1üg
-.ős1a2
-.ős1á2
-.ős1eg
-.ős1e2l
-.ős1e2r
-.ős1e2s
-.ős1é2g
-.ős1ért
-.ős1í2
-.ős1o
-.ős1ó2
-.ős1p
-.ős1tr
-.ős1u2
-.ős1ú
-.ősz1a2
-.ősz1á
-.ősz1e2g
-.ősz1el
-.ősz1em
-.ős3zene
-.ős3zené
-.őz1a2
-.őz1eg
-.őz1e2l
-.őze2t
-.őz1ete
-.őz1ék
-.őz1ére
-.őz1ő
-.őz3s
-.őz1u
-.p2
-.pa2da
-.pa2d1á2
-.pa2din
-.pa2d1ó2
-.pa2i
-.pa2par
-.pa2pál
-.pa2pe
-.para1f2r
-.parke2
-.par2ker
-.par2ta
-.par2tel
-.par2ter
-.pá2c3s
-.pán2ta
-.pár2t1ö
-.pen3ny
-.pe2r1a2
-.pe2r1á
-.pe2r1enc
-.pe2rok
-.pe2rül
-.pe2s
-.pia2c3s
-.pina1
-.pin2t1ó
-.ple2i
-.ponta2
-.pon2te
-.po2rad
-.po2ral
-.po2ran
-.po2rác
-.po2rál
-.po2re
-.po2r1us
-.pó2kis
-.pó2k1ö
-.pó2rás
-.pó2t1e
-.pó2t1é
-.pre1k2
-.prés3s
-.proto1p2
-.q2
-.r2
-.ra2b1as
-.ra2b1á
-.ra2be
-.rabic1
-.ra2b1il
-.ra2b1i2z
-.ra2bí
-.ra2bor
-.ra2bö
-.ra2b1ő2
-.ra2bú
-.ra2gal
-.ra2j1ö2
-.rajtó2
-.raj2t1ór
-.rá2cs1á2z
-.rá1dr
-.rá1fr
-.rá1gr
-.rái2
-.rán2c1e
-.rány2
-.rá1spr
-.rá1s2t
-.rát2
-.rá1tk
-.rá1tr
-.re1k2re
-.ren2d1a2
-.ren2d1ő2
-.re1p2ri
-.rep2ro
-.re1prod
-.rete2k1
-.ré2m1emb
-.ré2mu
-.ré3p2a
-.ré2sa
-.rés3szer
-.ré2sza
-.ré2szá2
-.ré2sz1e2le
-.ré2szell
-.ré2szer
-.ré2szí
-.ré2szo
-.ré2sző
-.ré2t1a2
-.ré2t1á2
-.ré2v1á
-.ré2zá
-.ré2zel
-.ré2zet
-.ré2zis
-.ré2z1o
-.réz1z
-.ri2zso
-.rizs3z
-.rí2má
-.ro1c2kos
-.romé2
-.ro2m1ét
-.ro2min
-.ro2mis
-.ros2t1e2
-.rug1g
-.ru2m1a
-.ru2mil
-.rú2de
-.s2
-.sa2h1a
-.saj2te
-.sa2s1or
-.sa2vad
-.sa2v1ara
-.sa2v1ál
-.sa2vári
-.sa2v1e2
-.sa2v1é2
-.sá2r1ó
-.sá2rú
-.sás1s
-.sá2s3z
-.sá2v1a
-.sá2vá
-.sá2vó
-.sc2
-.se2bal
-.se2b1á
-.se2bel
-.se2besz
-.se2b1o
-.sé2fi
-.s3gr
-.si2em
-.si2ók
-.sín3n
-.sí2p1ő2
-.sí2r1a2
-.sí2rát
-.sk2
-.so2kél
-.so2kil
-.so2kis
-.so2kol
-.so2m1ag
-.so2mat
-.so1ny2
-.so2ral
-.so2rál
-.sör1e2g
-.sp2
-.spor2t1á2
-.st2
-.star2t1a2
-.sz2
-.szaba2d1e
-.sza2k1at
-.sza2k1ás
-.sza2k1e
-.sza2kö
-.sza2k1ü
-.szá2l1ó2
-.száz1z
-.szeg1ér.
-.sze2gí
-.sze2i
-.sze2m1á
-.sze2m1ér.
-.sze2m1é2ri
-.sze2r1ág
-.szer2v1a2d
-.szer2v1e2v
-.sze2szá
-.sze2szeg
-.sze2sz1ó2
-.szé2fa
-.szén1n
-.szé2t1
-.széte2
-.szín3n
-.szk2
-.szo2l1ó
-.szókész1
-.szó2szak
-.szószö2
-.szó2sz1öv
-.szt2
-.t2
-.ta2gal
-.ta2g1a2r
-.ta2g1á
-.ta2g1e
-.ta2gép
-.tag1g
-.ta2g1i2n
-.ta2gö
-.ta2nag
-.ta2n1as
-.ta2nál
-.tan1d2
-.ta2n1e2
-.ta2n1év
-.tané2ve
-.ta2nis
-.tan1n
-.ta2n1ó2
-.tant2
-.ta2n1u2s
-.ta3rá
-.ta2t1ál
-.ta2t1árai
-.ta2t1e2
-.ta2t1í
-.ta2tor
-.ta2tur
-.tá2l1ó2
-.tán2cse
-.tá2p1ol
-.tár2sor
-.tár2s1ö2
-.tár2t1es
-.tár2t1ölt
-.tá2v1a
-.távi2
-.tá2v1ir
-.tbc1
-.te2aka
-.te2ar
-.te2j1á2
-.te2j1eg
-.terape2
-.ter2v1a2
-.ter2v1á2
-.tes2ték
-.tes2t1öl
-.tetraé2
-.teza2
-.té3k
-.té2nyem
-.té2nyí
-.té2ra
-.té2rá
-.té2ret
-.tér1int
-.tí2z1ó2
-.tí2zs
-.tízü2
-.to2káro
-.tol2le
-.topa3u2
-.to2r1á2l
-.to2r1odv
-.tor2z3se
-.tó1st
-.tó2t1ér.
-.tön2k1a
-.tőa2
-.tőe2
-.tő2gya
-.tő2r1éss
-.tő2r1é2sz
-.tra2u
-.turnus1s
-.tus3s
-.tu2sz
-.tus3zá
-.tú2r1att
-.tű2z1ért
-.tű2z1ő2r
-.tű2zse
-.tyú2ka
-.u2
-.ugrás1s
-.un1in
-.uni2o
-.utas1s
-.utás4
-.uto2
-.utó2d1ö
-.ú2
-.új1as
-.új1e
-.úr1a2
-.úr1á2
-.úr1e
-.úszós2
-.úszó1sp
-.út1a2
-.út1á2
-.út1e2
-.út1ol
-.út1ő
-.út1ü2
-.ü2
-.ügy1ér.
-.ük1a2
-.üstö2l
-.üs2t1ölő
-.ütőkész1
-.üve2g1e2l
-.ű2
-.űr1a2
-.űr1á2
-.űr1e2
-.űr1é2s
-.űr1éte
-.űri2
-.űr1ita
-.űr1öss
-.űr1s
-.űrt2
-.v2
-.va2d1al
-.va2dár
-.va2dét
-.va2d1o2r
-.va2dóv
-.va2d1ö
-.va2d3z
-.va2gy1i
-.va2j1e
-.va2k1ak
-.va2kal
-.va2k1an
-.va2kap
-.va2k1ár
-.va2k1e2
-.va2k1ö
-.va2rak
-.va2r1á2s
-.va2r1e2
-.va2r1ing
-.va2sab
-.va2sar
-.va2s1a2tom
-.va2s1á2g
-.va2sárk
-.va2sás
-.va2s1e
-.va2sék
-.va2s1i2r
-.va2sol
-.va2s1or
-.va2só
-.vas3s
-.vas1tr
-.va2s1ü
-.va2s3z
-.vács1
-.vá2dá
-.vá2d1e
-.vá2ma
-.vár1a2dá
-.vá2r1i2s
-.vá2r1ol
-.verés1s
-.ver2s1ég
-.ver2s1o
-.ver2sz
-.vé2g1é2k
-.vé2g1o
-.vé2nyel
-.vé2r1a2
-.vé2rá
-.vé2r1eb
-.vé2r1eg
-.vé2rik
-.vé2r1o
-.vé2ró
-.vér2t1ék
-.vé2ru
-.vé2sza
-.vé2szá
-.vé2szer
-.vé2szí
-.vé2szo
-.vé2sz1ó2
-.vi1g2n
-.ví2zed
-.ví2zem
-.vona2t1út
-.von2z1e2
-.w2
-.x2
-.y2
-.z2
-.za2be
-.za2b1i2n
-.zai2
-.za2j1e2
-.za2j1ö
-.za2jut
-.zá2r1a2dá
-.zá2r1e
-.zá2r1ó2ra
-.zárta2n
-.zár2t1any
-.zár2t1é
-.zár2t1ö2v
-.ze2i
-.zé2t1
-.zs2
-.zű2r1ő
-2a.
-a1a
-aa2be
-aa2cé
-aa2ch
-aa2da
-aadás1s
-aa2dássz
-aa2dó
-aa2du
-aa2fo
-aa2ga
-aa2gi
-aa2gó
-aa2gy
-aa2já
-aa2ka
-aa2ká
-aa2ko
-aa2ku
-a2al.
-aa2la
-aala2g1
-aa2lá
-aal1eg
-aa2lé
-aalmana2
-aalmanac3
-aa2lo
-aal1os
-aa2lu
-aa2ma
-aa2na
-aa2ne
-aa2ni
-aa2no
-a2ans
-aa2ny
-aa2pa
-aa2pá
-aa2po
-aa2pu
-aa2ra
-aa2rá
-aa2ré
-aa2ri
-a2arl
-aa2ro
-aa2sz
-aa2to
-aa2ty
-aa2ur
-aa2ut
-aa2va
-a2avo
-aa2zo
-a1á
-aá2bé
-aá2cs
-aá2fá
-aá2ga
-aá2gá
-aá2gé
-aá2gi
-aá2go
-aá2gu
-aá2gy
-aá2hí
-aá2ju
-a2ál.
-aá2la
-aá2lo
-aá2po
-aá2ra
-aá2rá
-aá2r1e2
-aá2ré
-aá2ri
-aá2ro
-aá2ru
-aá2rú
-aá2sa
-aá2sá
-aá2so
-aá2só
-aá2ta
-aá2t1á2
-aá2t1e2
-aá2té
-aá2t1i2
-aá2tí
-aá2to
-aá2t1ö
-aá2tu
-aá2tú
-aá2tü
-aá2zá
-aá2zó
-2abab
-ab1adó
-aba2dz
-1a2bajg
-ab1akk
-2abal
-2aban
-aba2nal
-aba1pr
-2abar
-aba2rat
-a2b1a2ráb
-a2b1au
-2abáb
-abá2b1u2r
-2abád
-2abán
-a2b1áp
-abá2rak
-ab1á2ron
-ab1á2rú
-2abáz
-abb2a
-1abbah
-2abea
-abeá2
-a2b1e2b
-2abec
-ab1edé
-2abeé
-2abef
-2abeh
-2abei
-2abej
-ab1ejt
-ab1ela
-ab1e2lá
-2abele
-abe2lem
-2abels
-ab1elsz
-a2b1elt
-ab1elv
-2abem
-ab1emb
-a2b1erd
-2abetá
-2abete
-2abeté
-2abeto
-2abetö
-2abev
-a2b1ex
-2abék
-2abél
-2abén
-a2b1é2ne
-a2b1ép
-2abér
-a2b1érz
-2abétá
-a2b1éve
-ab1fl
-ab1fr
-2abic
-ab1i2do
-2abie
-ab1i2ke
-ab1iks
-a2b1i2nai
-abi2náb
-a2b1ing
-2abir
-ab1irkái
-ab1ism
-2abit
-a2b1i2ta
-2abiz
-a2b1íj
-ab1írn
-ab1kr
-1ablaká
-1ablakh
-1ablakk
-1ablakos
-1ablakr
-2ablo
-a1b2lú
-2abog
-2aboh
-2abok
-2abolt
-ab1oltó
-2abom
-abo2rak
-abo2r1as
-abo2rin
-2abot
-a2b1öb
-abö2l
-ab1ölő
-ab1ölt
-a2b1ös
-a2b1öt
-a2b1ö2z
-ab1őrl
-ab1pr
-ab2rek
-2abri
-a1b2rike
-ab2rin
-a1b2rit
-2abró
-ab2rók
-ab1st
-a2b1urd
-ab1úr.
-ab1úrt
-abú2s1á
-ab1úsz
-ab1ü2l
-ab1üs
-ab1üv
-a2b1üz
-aca2la
-aca2lá
-aca2l1e2
-aca2lét
-a2c1a2n
-aca2tá
-a2c1ág
-a2c1ál
-acci2ó
-ac2cö
-ac3cse
-ac3csí
-ac3csü
-acc3sz
-a2ce.
-ac1ebé
-a2c1eg
-ace2l
-a2c1ele
-a2c1elé
-a2c1elh
-ac1elle
-a2c1elm
-a2c1elo
-a2c1elv
-ac1emb
-2acen
-ace2ta
-a2c1e2v
-a2c1ex
-a2célá
-acél1e2
-a2célé
-a2c1ép
-a2c1é2re
-a2c1érte
-ac1fr
-a2chá
-ac3héj
-ac3hí
-a2c3hoz
-ac3hó
-a2c3hö
-a2c3hú
-ac1ide
-a2c1i2gá
-a2c1i2gé
-a2c1ike
-2acin.
-a2c1ind
-ac1inf
-a2c1ist
-a2c1ír
-ac1ív
-ack1aro
-ac2kál
-ac2k1e2v
-acké2r
-ac2k1ére
-ack1éte
-ac2kil
-ac2k1osz
-ac2kös
-ac2kű
-ac2lu
-a2c1op
-ac1ös
-ac1őr
-ac1pl
-ac1pr
-2acsal
-acs1alj.
-acsa2p1á2g
-a2cs1atk
-acs1áll
-a2csáru
-acse2c
-acs1egy
-ac3seml
-1a2cséb
-a2cs1ék
-2acsi
-2acsí
-2acson
-acs1orm
-a2cs1öc
-acs1s
-ac3str
-a2csúl
-a2cs1úr
-acsü2l
-a2csüt
-ac3szá
-ac3sze
-ac3szö
-ac1tr
-a2c1ud
-2acula
-a2c1ut
-ac1új
-ac1üg
-ac1ür
-ac1üz
-ac3za
-ac3zá
-ac3ze
-ac3zs
-ac3zu
-a2d1a2da
-a2d1a2dá
-1a2dag.
-ada2gá
-1a2dagb
-a2dagg
-1a2dagh
-1adagi
-1a2dagj
-1a2dagn
-1a2dago
-1a2dagr
-1a2dagt
-1adagu
-1a2dagú
-a2d1aktá
-ada2lap
-ada2l1es
-1adalé
-ada2lén
-ada2l1osz
-ada2l1ó2
-ada2l1út
-a2d1ana
-a2d1ann
-1adapt
-2adar
-ada2ral
-ada2re
-ada2r1és
-ada2r1in
-ada2rut
-ada2tab
-ada2tal
-ada2t1a2n
-ada2t1ár.
-ada2t1á2rak
-ada2t1á2ram
-ada2t1á2rat
-ada2t1á2rá
-ada2t1árb
-ada2t1árr
-ada2t1á2ru
-1a2datáu
-ada2t1e2g
-ada2tel
-ada2t1es
-adaté2r
-ada2t1érd
-ada2t1érő
-1a2datin
-ada2tint
-ada2tis
-ada2tív
-a2datm
-ada2t1old
-ada2t1öl
-ada2t1ő
-a2datv
-ad1azo
-a2d1ág
-adára2
-adá2rak
-adá2ris
-ad2del
-ade2g
-ad1ege
-ad1egé
-ad1egy
-ade2i
-a2d1ej
-adel1ej
-ad1elh
-ad1elm
-ad1eln
-a2d1e2lő
-ad1elr
-ad1elt
-a2d1emb
-ad1e2mé
-a2d1eml
-a2d1emu
-ad1eng
-ad1e2pe
-ad1epr
-a2derd
-ad1erő
-ade2ti
-a2deu
-a2d1e2v
-a2d1ex
-adé2kat
-adé2k1e2
-adé2kés
-adé2kis
-adé2kü
-adé2kű
-ad1éle
-2adémont
-a2d1ép
-a2d1érz
-adé2s
-adé2te
-a2d1é2ve
-ad1fl
-adfo2k1út
-ad1gr
-1adhé
-2adia
-adia2n
-ad1i2bo
-2adid
-adi2kut
-2adin
-ad1i2na.
-ad1i2nai
-ad1ind
-a2d1ing
-adi2o1g2ra
-2adip
-2adis
-2adiv
-a2d1í2z
-ad2ji
-adka2na
-ad1kr
-2adob
-2adoc
-a2d1okke
-2adol
-ad1ola
-1a2domá
-2adomb
-2adomi
-1a2dop
-a2d1orc
-a2d1org
-2adorh
-2adorian
-2adorig
-ad1orv
-a2d1orz
-a2d1osz
-a2dógu
-1a2dóku
-a2dómé
-a2dórá
-1a2dósat
-2adósi.
-ad1ó2vás
-1a2dózó
-a2d1ö2k
-a2d1ö2l
-ad1örd
-a2d1ös
-adőr1a
-adő2rel
-ad1ő2s
-ad1pl
-ad1pr
-a1d2rac
-ad2ram
-ad2raz
-2adrá
-ad2rám
-2adro
-ad2rog
-a1d2rót
-ad2ruk
-ad1sp
-ad1st
-2adug
-2adum
-2adup
-ad1u2rá
-ad1úsz
-adú2t
-a2d1úto
-a2d1üg
-ad1ü2lé
-a2d1üt
-ad1üz
-a2d1űr
-ad1űz
-ad1yéh
-ad1yér
-ad3zab
-ad3zav
-ad3zár
-ad3zel
-ad3zón
-a2d3zö
-ad3zsí
-a1e
-ae2bé
-ae2ce
-ae2cs
-ae2dé
-ae2dz
-ae2ge
-ae2gé
-ae2gy
-ae2he
-ae2ke
-ae2ké
-ae2la
-ae2l1á2
-ae2le
-ael1ej
-ae3len
-ael1érh
-ae2l1í2
-ae2lo
-ae2l1ö2
-ae2lő
-ae2lu
-ae2me
-ae2mé
-ae2mi
-ae2mu
-ae2ne
-ae2pe
-ae2pé
-ae2pi
-ae2po
-ae2red
-ae2ré
-aero1s
-ae2ró
-ae2rő
-ae2se
-aes1er
-ae2sé
-ae2si
-ae2ső
-ae2sü
-ae2sz
-ae2ta
-ae2tá
-ae2te
-ae2ti
-ae2tű
-ae2va
-ae2ve
-ae2vé
-ae2vi
-ae2vo
-ae2vő
-ae2xe
-ae2zü
-a1é
-aé2derv
-aé2ge
-aé2gé
-aé2gő
-aé2he
-aé2je
-aé2ke
-aé2kí
-aé2le
-aé2lé
-aé2li
-aé2lő
-aé2lü
-aé2lű
-aé2ne
-aé2pí
-aé2pü
-aérde2m1
-aé2ri
-aé2te
-aé2va
-aé2ve
-aé2vé
-aé2vi
-aé2vü
-2afa.
-2afaj.
-2afaja
-2afajá
-2afajb
-2afa2j1e2
-2afajj
-2afajn
-2afajo
-2afajt.
-2afaju
-2afajz
-2afak
-2afal
-2afam
-2afao
-2afar
-2afas
-afe2l1e2m
-2afék
-2aféli
-2afélő
-2afélt
-2afén
-2afér
-2afés
-1affé
-afi2ap
-afi2asz
-afi2ke
-afi2t1a2
-afi2t1e2
-af2le
-a1f2lo
-a1f2ló
-a1f2lö
-a1f2lu
-2afoc
-2afog
-2afok
-2afol
-2afon
-2aford
-2aforg
-2aformác
-2aformál
-2aformátu
-2aformáz
-2aformu
-2aforr
-2afos
-2afot
-af2rak
-2a1f2re
-af2riz
-af2rí
-2afro
-af2ron
-2a1f2rö
-af3tá
-afus3s
-a2g1abl
-ag1abr
-ag1a2cé
-ag1aga
-a2g1a2ka
-a2g1akk
-a2g1akt
-2agal
-a2g1a2lak
-a2g1a2lap
-a2g1a2lá
-a2g1alj
-a2g1alm
-aga2lom
-a2g1alt
-ag1ang
-ag1a2no
-ag1ant
-a2gany
-a2gap
-ag1apa
-ag1apá
-a2g1arc
-a2g1aré
-a2g1a2ro
-a2g1art
-aga2tom
-ag1a2tó
-a2g1a2ur
-ag1aut
-a2g1ava
-2agaz
-ag1a2zon
-agá2c
-a2g1ács.
-a2g1ácsi
-ag1á2ga
-1a2gák
-a3gála
-a2g1álm
-agá2lyan
-a2g1áp
-a2gár.
-a2g1árad
-a2g1á2rai
-a2g1á2rak
-a2g1áras
-a2g1árat
-a2gá2rá
-a2gárb
-a2g1árc
-a2gáre
-a2gáré
-agá2rév
-a2gárf
-a2gárh
-a2gá2ri
-a2gárj
-a2gárk
-a2gárm
-a2gárn
-ag1árná
-a2gáro
-a2gárr
-a2gárs
-a2gárt
-a2g1á2ru
-a2g1á2rú
-ag1ásv
-a2g1átá
-a2g1á2t1e2
-ag1átfe
-a2g1áth
-a2g1átk
-a2g1átm
-agá2tol
-a2g1áts
-ag1átü
-a2g1átv
-ag1bl
-ag2del
-agdí2j1a2da
-a2ge.
-ag1e2cs
-a2g1e2d
-a2g1e2g
-age2l
-a2g1ela
-ag1elb
-ag1eld
-ag1ele
-ag1elé
-ag1elf
-ag1elh
-ag1eli
-ag1elm
-ag1eln
-a2g1elo
-a2g1elő
-ag1elr
-ag1els
-ag1elt
-ag1elű
-ag1elv
-ag1elz
-a2g1e2m
-ag1eng
-a2g1eny
-a2g1e2p
-a2g1erd
-age2red
-a2g1erk
-a2g1erő
-age2s
-a2g1e2v
-a2g1ex
-a2g1ez
-a2g1é2j
-a2g1ék.
-a2g1ékn
-a2g1é2l
-agé2né
-agé2p1i2p
-a2g1é2pül
-a2g1ér.
-a2g1é2re
-a2g1é2ré
-a2g1érh
-a2g1é2ri
-a2g1érk
-ag1érl
-ag1érm
-ag1érte
-ag1érté
-ag1érth
-a2g1értő
-ag1ész
-a2g1éte
-a2g1éve
-ag1fl
-ag1fr
-1agg.
-ag2g1a2ty
-ag2g1em
-ag2git
-1aggl
-1aggod
-1aggok
-ag3gyar
-ag3gye
-ag3gyi
-ag3gyo
-ag3gyü
-agi3a
-ag1ide
-a2g1i2ga
-a2g1ige
-a2g1igé
-ag1ike
-a2gill
-ag1inf
-a2g1ing
-a2g1int
-a2g1i2oni
-agi2ó
-a2g1ip
-ag1iro
-a2g1ist
-agi2sz
-a2gita
-ag1izé
-ag1izm
-a2g1íj
-ag1ín
-a2g1ír
-ag1ív
-a2g1íz
-agká2rok
-ag1kl
-ag1kr
-ag2ne.
-a1g2non
-a2g1ob
-ag1oltó
-ago2ly1a2
-2agom
-2agona
-agon3n
-ago2n1osz
-a2g1op
-a2g1org
-ag1orj
-a2g1orn
-a2g1orr
-a2g1ors
-a2g1orv
-a2g1otth
-agó2rái
-a2g1ö2l
-ag1önk
-ag1önt
-a2g1örö
-ag1örv
-a2g1ös
-a2g1öt
-a2g1ö2v
-a2g1ö2z
-a2g1őr
-a2g1ő2s
-ag1pl
-ag1pr
-2agrammj
-a1g2rav
-2agrá
-a1g2róf
-ag1sk
-ag1sp
-ag1sr
-ag1st
-agsz2
-ag1szt
-ag1tr
-a2g1und
-a2guram
-agu2rat
-ag1u2rá
-ag1urn
-ag1u2tá
-a2g1új
-ag1úta
-a2g1úti
-ag1útt
-a2g1ü2l
-a2g1ür
-a2g1üs
-a2g1üt
-a2g1üv
-a2g1üz
-ag1űr
-ag1űz
-a2gy1a2c
-a2gyad
-agy1a2dó
-agy1a2gya
-a2gyaj
-1a2gyak.
-a2gyakb
-agya2la
-agy1alap
-agy1alg
-a2gyalj
-agy1alko
-agy1alm
-1a2gyam
-agy1ana
-a2gy1any
-a2gy1apa
-agy1apja
-agy1apjá
-a2gy1a2pó
-a2gy1apr
-agya2sz
-a2gy1aszó
-a2gyál
-agy1árv
-a2gy1e2c
-agy1e2g
-a2gy1el
-agy1em
-agy1est
-agy1esz
-a2gyev
-a2gy1ez
-agy1ék.
-agy1éke
-agy1ékk
-agy1ér.
-a2gy1é2re
-agy1érn
-agy1érr
-agy1érs
-a2gyima
-agy2nyá
-agyo2r
-a2gy1oro
-a2gyorr
-a2gy1ö2l
-a2gy1ő2r
-agyu2r
-agy1urá
-1a2gyú.
-1a2gyúa
-a2gyún
-agy1úr.
-agy1ú2sz
-a2gyút
-2agyű
-aha2l1e
-aha2sábr
-ahelyü2kü
-ahert2
-aher1tze
-ahé2j1út
-ah1ips
-ahitköz1
-ah1o2vi
-ahú2sár
-ahús3s
-a1i
-ai2bo
-2ai2de
-ai2dom
-2ai2dő
-a2iék
-ai2ga
-ai2gá
-ai2ge
-ai2gé
-ai2gy
-ai2ia
-ai2ib
-ai2ih
-ai2ij
-ai2in
-ai2ir
-ai2it
-ai2je
-aika2
-ai2kab
-ai2k1ad
-ai2k1al
-ai2k1ar
-ai2k1as
-ai2k1á
-ai2ke2
-aik1el
-aiki2
-ai2kik
-ai2kis
-ai2k1ol
-ai2k1osz
-ai2kő
-ai2kü
-a2ilb
-a2ile
-2aill
-ail2le.
-ail2lo
-ai2ma.
-2ai2má
-2aimi
-ai2mit
-2aimp
-ai2na.
-ai2na2l
-ain1ala
-2ai2nas
-ainá2
-ai2n1álo
-ai2nár
-2aind
-ai2ne
-ai2nél
-2ainf
-2aing
-ai2n1in
-ai2nol
-2ainp
-2ains
-2aint
-ai2nü
-ai2onb
-ai2onn
-ai2ono
-ai2onr
-ai2ont
-ai2pa
-a2ir.
-ai2ram
-2ai2rat
-2ai2rá
-ai2re.
-ai2ré
-ai2ri
-2airo
-ai2rod
-a2i2se
-ai2si
-2aisk
-2aism
-2aist
-2aisz
-ai2sza
-ai2szo
-2ai2ta
-ai2vad
-ai2var
-ai2vás
-2ai2vó
-ai2zé
-ai2zom
-a1í
-aí2gé
-aí2ja
-aí2já
-aí2ju
-aí2ra
-aí2rá
-aí2ro
-aí2ró
-aí2ru
-aí2té
-aí2vá
-aí2ve
-aí2vé
-aí2vi
-aí2vó
-aí2vü
-aí2vű
-aí2ze
-aí2zé
-aí2zü
-aí2zű
-a2j1a2dó
-a2j1adu
-aj1aga
-aj1agr
-aja2kol
-a2j1akó
-aja2kú
-a2j1ana
-a2j1ant
-a2j1any
-aj1apr
-a2j1áa
-ajá2c
-aj1á2go
-1a2jánd
-1ajánl
-a2j1áp
-2ajár
-a2j1árb
-a2j1árc
-a2j1áre
-a2j1áré
-a2j1árr
-aj1ásá
-aj1ásv
-a2j1á2t1e2
-ajá2z
-aj1ázá
-aj1bl
-aj1br
-aj2d1alm
-aj2d1a2lom.
-aj2d1a2lomm
-aj2d1a2lomn
-aj2d1a2lomr
-aj2d1a2lomt
-a2j1e2c
-a2j1ef
-a2j1egé
-a2j1ela
-aje2leme
-a2j1elf
-aj1ellá
-a2j1elo
-aj1elő
-aj1elvá
-aj1elvo
-a2j1e2m
-aj1ene
-aj1enz
-a2j1e2r
-aj1e2se
-a2j1ex
-a2j1ez
-a2j1ége
-a2j1égé
-aj1égő
-a2j1é2k
-a2j1él
-a2j1ép
-ajé2r
-a2j1ére
-a2j1éte
-aj1fl
-aj1fr
-aj1g2r
-a2j1i2d
-a2j1ij
-a2j1ik
-a2j1im
-a2j1int
-a2j1io
-a2j1ip
-a2j1iz
-aj1ír
-aj1íz
-aj1kl
-1ajkú.
-ajobb1o
-ajo2g1á2sza
-a2j1ola
-aj1old
-a2j1o2v
-a2j1ócskás
-ajó2sár
-aj1öb
-a2j1ök
-a2j1ör
-a2j1öz
-aj1őr
-aj1ő2s
-aj1pl
-aj1pr
-aj1sh
-aj1sk
-aj1sp
-aj2tág
-aj2teg
-aj2t1é2t
-ajt1org
-aju2hi
-a2j1új
-aj1úsz
-a2j1úto
-a2j1útr
-aj1üg
-aj1ül
-aj1üs
-aj1üz
-aj1űz
-ajz1aka
-ajz1atl
-aj2zer
-aj2zí
-aj2zü
-2akab
-aka2cse
-a2kadag
-a2k1a2data
-a2k1a2datb
-a2k1a2datn
-a2k1a2dato
-a2k1a2datr
-a2k1a2datt
-1akadál
-1a2kadém
-a2k1adm
-a2k1aga
-2akal
-ak1a2lag
-a2k1a2lak
-aka2lapú
-a2k1aleg
-ak1alko
-2akam
-2akan
-2akao
-2akap
-aka2pád
-ak1app
-ak1a2rai
-ak1arasz
-a2k1a2ráb
-a2k1a2rák
-2akarc
-a2karch
-2akard
-ak1a2rén
-2akari
-2akarr
-2akasí
-2akast
-aka2szaj
-ak1a2szat
-aka2szel
-aka2szö
-a2k1asztr
-2akata
-aka2tab
-2akate
-aka2tel
-aka2ter
-akati2
-aka2tik
-aka2tim
-aka2tin
-2akau
-a2k1autó
-2akav
-2akaz
-1akác.
-a2k1áf
-a2k1ág
-aká2l1a
-aká2lis
-a2k1álló
-ak1árad
-a2k1árb
-a2k1árj
-a2kárk
-aká2rokn
-a2k1ártó
-a2k1á2ru
-aká2sad
-aká2saj
-aká2sal
-aká2sar
-aká2sav
-aká2sást
-akás3s
-ak1á2szán
-aká2szu
-a2k1ászun
-akát1a
-a2k1átla
-ak1bl
-akció2s1ű2
-a2ke.
-ake2cs
-a2k1e2dz
-ak1e2ge
-ak1e2gé
-a2k1ela
-a2k1elá
-ake2lem
-ak1elh
-a2k1elj
-a2k1elo
-ake2lők
-a2k1elr
-a2k1elv
-a2k1emb
-ak1e2mel
-a2kerd
-ak1e2rei
-a2k1e2ró
-a2k1e2rő
-a2kesp
-a2k1est
-ak1eszk
-ak1eszm
-a2k1e2te
-ak1e2ti
-a2k1e2vez
-ak1é2kem
-ak1é2kes
-a2k1é2ké
-a2k1ékh
-ak1ékrő
-2akém
-2akény
-2akép.
-2aképb
-2aképe
-2aképé
-2aképh
-2aképk
-2aképl
-2aképn
-2aképpel
-2aképpé
-2aképr
-2aképt
-2aképü
-2aképz
-a2k1érc
-2akérd
-a2kérdek
-2akére
-2akéré
-a2k1érm
-2akérő
-a2k1é2rői
-a2k1é2rőj
-a2k1érr
-a2kérteke
-a2k1értel
-a2k1értet
-a2k1értő
-2akérv
-a2k1érz
-2akés
-a2k1észa
-a2k1é2te
-2akéts
-a2k1étt
-2akéz
-ak1fl
-ak1fr
-akgerinc1
-ak1gr
-2akia
-2akib
-2akic
-2akid
-a2k1i2dé
-ak1idi
-2akie2
-2akié
-2akif
-ak1iga
-a2k1igé
-2akigy
-2akih
-2akií
-2akij
-2akil
-a2k1ill
-ak1ily
-2akim
-a2k1i2má
-a2k1imi
-2akin
-ak1ind
-a2k1ing
-a2k1ins
-a2k1ion
-2akir
-aki2rom
-2akis
-a2k1isi
-a2k1isk
-ak1ism
-a2k1ist
-2akit
-2akiv
-2akiz
-a2k1izm
-a2kíté
-a2k1í2z
-ak2k1a2d
-ak2kaj
-ak2k1a2la
-akk1alk
-ak2k1arc
-ak2kál
-ak2k1á2p
-ak2k1ed
-akk1ell
-ak2kelm
-akk1elt
-ak2kem
-ak2k1eró
-akke2s
-akk1ese
-ak2ket
-ak2kola
-1akkord
-akk1ölt
-ak2k1ös
-ak2kőr
-1akku.
-1akkum
-ak2lau
-ak2lav
-ak2lor
-ak2lón
-ak2lór
-1aknai
-1aknáb
-1aknáh
-1aknái
-1aknáka
-1aknáko
-1aknás
-1aknát.
-1aknáv
-1aknáz
-2akoa
-ak1obj
-2akoc
-2akof
-2akokt
-akolás3s
-a2k1olda
-a2k1o2ly
-2akom
-2akonc
-2akond
-2akonf
-2akong
-2akonk
-2akons
-2akont
-2akonv
-2akony
-2akonz
-2akoo
-2akop
-a2k1o2pe
-ak1o2rat
-2akorb
-2akord
-a2k1org
-2akori
-a2k1orj
-2akorl
-2akorm
-2akoro
-2akorp
-2akorr
-2akors
-2akort
-2akoru
-2akorú
-a2k1orv
-2akos
-2akóni
-2akó1p2
-a2k1ó2rá
-ak1ó2ród
-1a2kózá
-ak1össz
-akö2z1é2l
-aközrea3
-ak1őr.
-ak1ős.
-ak1pl
-ak1pr
-ak1ps
-akrádi2
-ak2rát
-2akre
-ak2rea
-2akré
-a1k2réme
-ak2réta
-ak2rétá
-2akri
-a1k2rit
-2akrí
-ak2ríz
-1akrob
-2akrónik
-ak1sp
-ak1sz2t
-ak2t1au
-aktár2s1a2d
-akt1emb
-1akti.
-ak2tim
-1aktívb
-aktí2ve
-ak2t1íve.
-1aktívk
-1aktívo
-1aktívs
-1aktívt
-akto2r1ál
-akt1osz
-ak1trá
-1aktua
-1aktú.
-a2k1udv
-a2k1ujj
-2akun
-1akupu
-a2k1úg
-a2k1új
-a2k1úrr
-a2k1üg
-a2k1ü2le
-a2k1ü2lé
-a2k1üln
-a2k1ü2t
-a2k1ü2v
-ak1ya
-a2l1abl
-alac1c
-alace2
-alaci2
-ala2cit
-ala2cor
-a2lacsé
-ala2c3sö
-ala2csü
-a2ladag
-a2l1a2datá
-ala2gál
-ala2g1e
-ala2gép
-ala2gol
-ala2gya
-ala2j1a2d
-ala2jas
-ala2j1e2
-a2lakad
-ala2k1an
-a2l1a2kas
-ala2kál
-ala2k1áp
-ala2kes
-1a2lakí
-a2l1akna.
-a2laknák
-a2laknát
-ala2kol
-a2l1a2kód
-ala2k1öl
-a2l1aktu
-1alaku
-a2lakul.
-a2lakult
-al1alg
-a2l1alj
-a2l1alk
-al1all
-al1alm
-al1a2lo
-al1alt
-ala2n1e
-1a2lanny
-a2lany
-ala2nyal
-ala2ny1e2
-ala2p1a2d
-ala2pak
-ala2pal
-a2lapan
-ala2p1á2r
-ala2p1e2
-ala2pill
-ala2pin
-ala2pir
-1a2lapítv
-ala2p1ol
-ala2por
-ala2p1osz
-alap1ó2
-alap1p
-al1a2ra
-al1a2rá
-al1arg
-ala1s2p
-a2l1aszp
-alaszta2l
-alat1any
-alatát1a2
-ala2t1e2v
-ala2t1inf
-ala2tív
-ala2t1ol
-alató2
-ala2tór
-a2l1attak
-1a2latti
-ala2t1ü2
-al1ava
-ala2zúr
-1a2láa
-1a2láá
-alába2d
-alá2b1ada
-al1ábrá
-1a2lábúj
-alá2dal
-alá2d1ap
-1a2láf
-a2l1ág.
-a2lága
-al1á2gá
-al1ágb
-a2l1ágg
-al1ágh
-al1á2gi
-al1ágk
-al1ágn
-al1á2go
-a2l1ágr
-al1ágt
-al1á2gú
-al1ágya
-1a2láí
-1a2lámo
-a2l1árad
-a2lárak
-a2lárá
-alá2rár
-a2l1árk
-aláste2
-alás2tel
-alás2t1ér.
-a2l1átd
-a2láte
-a2láté
-al1átép
-a2l1átf
-alá2ti
-a2l1átl
-a2l1átm
-a2látö
-a2látr
-a2látú
-al1bl
-al1br
-1album
-al1d2r
-a2le.
-2alea
-2aleb
-al1ebé
-2alec
-al1ece
-ale2g1e2lé
-al1egés
-alegész1
-al1egys
-a2legyü
-2aleh
-2aleí2
-2alej
-ale2k1a
-a2l1ela
-a2l1elág
-a2l1eld
-al1e2led
-ale2lem.
-ale2lemb
-ale2leme
-ale2lemk
-ale2lemm
-ale2lemt
-a2l1elg
-a2l1elh
-al1elm
-a2l1eln
-ale2lők
-ale2lőt
-a2l1elr
-a2l1els
-al1elté
-a2l1elv
-2alem
-a2l1emb
-a2l1e2mel
-al1e2mé
-a2l1eml
-2alen
-a2l1ene
-2alep
-ale2pe.
-a2lerd
-a2l1e2re
-a2l1erk
-a2l1ern
-2ales
-al1esem
-a2lesi
-ale2sik
-ale2tet
-alet2t1est
-aleü2
-2alev
-ale2vol
-ale2vői
-2alex
-a2l1exp
-2aléc
-2alég
-al1égő
-alé2kal
-alé2k1an
-alé2kat
-alé2k1em
-alé2ker
-alé2kes
-alé2kor
-a2lél.
-al1é2len
-a2l1é2let
-a2l1élé
-a2l1éll
-al1é2lő
-a2l1élü
-2alén
-a2léneke
-a2l1érd
-al1érs
-a2l1érte
-a2l1érté
-a2l1értő
-a2l1érz
-2alét
-alé2tek
-a2l1é2tel
-al1étl
-a2l1évi
-1alfás
-1algásat
-1algor
-al1gr
-2alic
-al1ide
-a2lidé
-al1i2do
-al1ifj
-a2l1igé
-2alik
-al1ill
-2alim
-a2l1i2má
-a2linas
-ali2nin
-alió2ra
-al1i2pa
-a2l1irá
-a2l1iro
-a2l1i2si
-a2lism
-ali1s2po
-al1iste
-2alite
-al1izma
-al1íj
-a2l1í2v
-alja2iké
-1aljaka
-1aljakb
-1aljaké
-1aljakk
-1aljako
-1aljas
-1aljái
-alj1árna
-al2j1á2ro
-1aljb
-1aljc
-1aljd
-1aljer
-1aljf
-1aljg
-1aljh
-1aljia
-al2jí
-1aljj
-1aljk
-1aljl
-1aljm
-1aljn
-1aljr
-1aljs
-1aljt
-1aljú
-1al2jü
-1aljv
-1aljz
-al2k1a2pó
-alkele2
-1alkím
-1alkoh
-1alkotá
-1alkotm
-1alkotó
-al1kre
-al1kro
-1alku.
-1alkud
-1alkun
-al2l1aj
-al2l1akt
-al2l1akv
-alla2l
-al2l1ala
-al2lalk
-al2lau
-all1áll
-all1ázs
-al2led
-all1egy
-all1emb
-1allerg
-all1ese
-all1est
-all1e2vő
-all1é2jé
-al2l1id
-al2lim
-all1int
-al2lip
-al2l1isk
-al2lí
-all1óri
-al2lös
-al2l1ő2
-al2lü
-1allű
-1almád
-2alob
-al1obe
-alogos1s
-alo2g1ó2
-a2l1okta
-al2old.
-aloma2
-alo2mad
-alo2mak
-alo2m1al
-alo2m1an
-alo2map
-alo2mar
-alo2mas
-alo2mác
-alo2már
-alo2m1át
-alo2mer
-alo2min
-alo2mis
-alo2mit
-alom1p2
-alo2m1ú
-alo2n1á
-alon1d2
-alon3n
-2alop
-al1opc
-a2l1ope
-al1o2ra
-al1orc
-al1orn
-al1o2ro
-a2l1orr
-alos3s
-a2l1ostá
-a2l1oszl
-2alov
-aló2c3se
-3alóguses
-alóigaz1
-alói2ko
-al1ó2lo
-al1ónn
-alóó2
-aló2ráj
-aló2rák
-aló2zan
-aló2zis
-a2l1öb
-a2l1ö2l
-a2l1ön
-a2l1ör
-a2l1ös
-a2l1ö2z
-alpe2l
-alp1ele
-al2piz
-al1sh
-al1sk
-al1sl
-al1sm
-al1sp
-alsz2
-al1szt
-al2tada
-al2t1alap
-alt1anya
-alt1elv
-alt1emb
-al2t1e2p
-al2t1e2v
-al2t1é2k
-alté2n
-alt1éne
-alt1érne
-al2t1é2rő
-al2t1érr
-alt1értő
-al2t1i2m
-alti2n
-alt1ina
-alti2p
-alt1ipa
-al2t1ir
-al2t1old
-1altonk
-al2t1osz
-al2tóc
-al2tön
-al1trak
-al1tran
-al1trav
-al2tur
-al2t1út
-al2tür
-1altvé
-al1ty
-alu1p
-1a2luss
-alu1str
-a2l1új
-al1úr.
-al1úrb
-al1úrh
-al1úri
-al1úrk
-al1úrn
-al1úrr
-a2l1úté
-a2l1úth
-a2l1útj
-a2l1útn
-a2l1útt
-al1üg
-al1ül
-al1ün
-al1ür
-al1üs
-al1üt
-al1üv
-a2l1üz
-al1űr
-al1űz
-1alveo
-1alvó
-a2ly1ap
-a2lyar
-a2lyál
-a2ly1e2
-a2lyév
-a2ly1id
-a2lyim
-a2lyis
-a2lyö
-a2lyug
-a2ly1ü2
-am1abb
-am1abl
-2amad
-a2m1a2dat
-am1a2dás
-a2m1adm
-a2m1a2dó
-a2m1a2du
-2amag
-ama2gát
-2amaj
-am1ajt
-ama2kar
-a2m1akt
-a2m1akv
-a2m1a2lak
-am1a2lap
-a2m1a2l1e
-ama2nya
-amaó2
-2amap
-2amas
-ama2sz1a2k
-ama2szeg
-ama2sz1em
-ama2szél
-ama2szö
-ama2tad
-amata2n
-ama2tárá
-ama2tel
-ama2told
-ama2t1osz
-ama2t1ó2
-a2m1a2u
-a2mazo
-a2m1álm
-a2m1á2rai
-a2m1á2rak
-amá2rá
-amát1a2dó.
-a2m1átk
-a2m1átl
-a2m1átt
-am2b1ag
-am2bal
-am2b1at
-am2b1ászá
-am2b1e2g
-am2b1e2le
-am2bep
-am2b1e2te
-am2b1ér.
-1ambula
-am1dr
-a2me.
-am1e2ce
-2ameg
-am1elá
-am1e2lem
-a2m1e2l1i
-am1elj
-am1elk
-a2m1eln
-a2m1elo
-a2m1e2lő
-a2m1els
-a2m1elt
-a2m1elv
-a2m1e2me
-a2m1eng
-2amenn
-amens1s
-amen2t1á2ro
-a2m1erd
-a2m1e2rő
-a2mesk
-2amest
-a2m1e2v
-a2m1ex
-am1ezr
-amé2hes
-amé2k
-am1éké
-amé2let
-a2m1ép
-a2m1érd
-a2m1értek
-a2mértel
-a2m1étk
-a2m1évé
-1amforá
-am1fr
-am1gr
-amid1i2
-ami2g
-a2m1iga
-a2m1igá
-a2m1igé
-a2mimá
-am1imi
-am1imp
-ami2na.
-ami2nan
-ami2nin
-a2m1inté
-amió2
-a2m1irá
-a2m1iro
-amise2
-ami2sel
-ami2sep
-ami2sz
-1amitbo
-1a2mitha
-1a2mitm
-1a2mitö
-1amitro
-1amitrú
-1a2mits
-1a2mittá
-1a2mittö
-a2míg
-am1kl
-am1kr
-amme2g
-am2m1egy
-am2meta
-am2m1é2t
-2amod
-a2m1oke
-a2m1okm
-a2m1o2koz
-am1ola
-a2m1old
-a2m1oltá
-a2m1op
-a2m1ors
-1a2mort
-a2m1orv
-2amos
-amos3s
-2amot
-2amoz
-am1ó2ri
-am1ö2r
-am1ös
-am1öt
-am1ö2z
-am1ő2r
-am1ős
-am1pla
-am1p2r
-1amput
-am1sk
-am1sp
-am1sr
-am1st
-am1t2r
-2amun
-a2muni
-amu2riz
-amu1sl
-a2m1u2tas
-a2m1új
-am1üg
-am1ü2l
-am1üt
-am1üz
-2anad
-a2n1a2dat
-a2n1adu
-a2n1aga
-a2n1agá
-an1a2gya
-a2n1ah
-2anai
-1a2nakr
-ana2lap
-1analí
-an1alk
-an1alm
-1a2naló
-an1a2mo
-a2n1ana
-1a2naná
-an1ann
-an1a2ny
-2anap
-ana2pa2
-an1apa.
-a2n1apá
-a2n1a2pó
-an1appo
-an1a2rab
-an1a2rá
-a2narc
-ana2sz1e2
-ana2szén
-ana2szin
-ana2sz1í2
-ana2szó
-ana2szü
-ana2t1e
-ana2tö
-2anav
-a2n1a2va
-a2n1az
-a2n1ág
-a2n1álmi
-a2n1á2lom
-a2n1á2p
-a2násat
-2anát
-a2n1áta
-a2n1átk
-a2n1átr
-an1br
-anca3u
-an2c1ál
-ance2
-an2ce.
-an2c1ér.
-an2c3hit
-an2cho
-anci2al
-an2c1ó2
-an2csaj
-an2csar
-ancs1ell
-ancs1emb
-an2cs1en
-ancs1e2p
-ancs1et
-an2cséré
-an2cs1ill
-an2csiz
-an2cs1í2z
-an2cs1or
-an2csö
-ancső2
-ancs1t
-an2csut
-an2cs1ü
-an2d1alk
-anda1s
-and1atl
-and1e2le
-and1elk
-an2d1elő
-and1els
-an2derd
-an2d1es
-1andez
-an2dél
-an2dil
-an2d1ö
-an2d1ő2
-an2dús
-an2dün
-an2dű
-an1dy
-an2dzá
-a2n1eb
-an1edd
-an1e2gé
-1a2nekd
-ane2la
-ane2l1á
-ane2l1e2l
-ane2l1emb
-ane2lél
-ane2lő
-2anem
-an1emu
-an1e2re
-an1ern
-an1err
-2aneu
-2anev
-a2n1ex
-ane2z
-an1ez.
-a2n1eze
-an1ezé
-an1ezt
-an1ezz
-a2n1é2ké
-a2n1éle
-an1épí
-a2n1éri
-a2n1érv
-a2n1étk
-a2n1étt
-a2n1évc
-an1évem
-an1éves
-an1évet
-ané2véb
-ané2vén
-ané2vét
-ané2vév
-an1évha
-ané2vig
-an1évke
-an1évkö
-a2n1évü
-a2névz
-anfé2l1é2v
-an1fl
-an1f2r
-anga2d
-an2g1ada
-an2g1ado
-an2g1ala
-an2g1a2ra
-an2g1ass
-ang1azo
-an2g1ác
-an2g1áll
-angár1a2d
-ang1áta
-an2g1átj
-an2g1átt
-an2g1ed
-an2g1eg
-an2g1elf
-an2g1elh
-an2g1elj
-an2g1ell
-an2g1eln
-an2g1elő
-an2g1elt
-an2g1elv
-an2gem
-ang1emb
-ang1eng
-an2g1e2r
-ang1ese
-ang1éle
-ang1élv
-an2g1é2ne
-an2g1ér.
-ang1érő
-an2g1és
-an2gim
-an2giz
-an2gí
-an2g1osz
-an2g1óri
-an2g1öl
-an2g1ös
-an2g1ő2
-ang1sz
-an2gü
-an2gű
-angye2
-angy1el
-an2gyék
-an1ide
-ani2g
-a2n1iga
-a2n1igé
-a2n1i2ko
-an1ind
-a2n1inf
-an1i2on
-2anip
-a2n1i2pa
-an1i2rá
-a2n1iro
-a2n1isi
-a2n1isk
-a2n1ism
-a2nita
-an1itt
-a2n1íg
-a2n1íj
-2anív
-a2n1íz
-ank1abl
-an2kaj
-an2k1a2k
-ank1ale
-an2k1a2n
-ank1arc
-ank1ari
-an2k1atl
-an2k1au
-an2kaz
-an2k1ál
-an2k1e2g
-an2k1ek
-an2k1e2l
-an2k1e2m
-an2k1e2reit
-an2k1erj
-an2k1es
-ank1érde
-ank1érem
-an2kérte
-an2k1érté
-an2k1i2d
-an2k1i2p
-an1klu
-an2k1old
-ank1oszt
-an2k1ö2römb
-an2kös
-an2k1ö2v
-an2kőr
-ank1t2
-an2k1ü
-an2ne.
-an3ny.
-an3nye
-an3nyo
-a2n1oj
-a2n1okta
-a2n1old
-1a2nomá
-2anor
-a2n1o2ro
-a2n1orr
-a2n1ors
-2anos
-a2n1ott
-a2nódd
-a2nódo
-anó1g2
-a2n1óni
-a2n1óno
-a2n1ó2rá
-an1óri
-a2n1öl
-a2n1ön
-a2n1ör
-a2n1ös
-a2n1ö2t
-an1pl
-an1pr
-an2s1e2l
-an1ska
-an2sö
-an1s2p
-ans3sze
-an1sta
-an2szal
-an2sz1á2bó
-an2sz1á2h
-an2szár
-ansz1es
-an2szél
-an2sz1én
-an2sz1é2p
-an2szil
-an2szin
-an2szó
-ansz1t2
-ansz1ü2l
-an2t1abl
-ant1aga
-an2t1eg
-1anten
-an2t1e2se
-ant1esz
-anti1llát
-an2t1ing
-an1t2re
-a2n1ud
-a2n1ug
-a2n1uj
-2anuk
-a2n1u2r
-anu2szi
-a2n1u2t
-a2n1úg
-an1ü2g
-anü2l
-a2n1ülő
-an1ü2z
-an1űr
-an1űz
-any1a2dó
-anyag1ár.
-anyag1árr
-1anyagb
-1a2nyagé
-anyag1g
-1anyagh
-1anyagk
-1anyagm
-1anyagr
-1anyagt
-1anyagú
-a2nyakad
-a2ny1a2kas
-a2ny1alk
-a2ny1all
-a2ny1ass
-any1aszt
-a2ny1a2tom
-a2nyaz
-1anyádt
-1anyáék
-any1álo
-a2ny1árá
-a2ny1árb
-a2ny1árf
-any1árk
-a2ny1árn
-a2ny1á2ro
-a2ny1árr
-any1á2sz
-any1d
-2anye
-a2ny1e2c
-a2ny1ed
-a2nyeg
-any1egé
-any1egy
-a2ny1e2k
-a2nyela
-anye2leme
-any1elev
-a2ny1ell
-a2ny1elo
-a2ny1em
-a2ny1en
-any1e2re.
-any1e2rei
-any1e2ret
-any1e2rén
-any1e2rér
-any1e2rét
-any1e2rév
-any1e2rőm
-any1e2rőr
-any1e2rőt
-a2ny1ég
-a2nyéhe
-a2ny1é2j
-a2ny1ék
-any1élv
-a2ny1ér.
-a2ny1érb
-a2ny1érc
-a2ny1érd
-a2ny1ére
-a2ny1érg
-a2ny1érh
-a2ny1é2ri
-a2ny1érk
-a2ny1érm
-a2ny1érn
-a2nyérő
-a2ny1érp
-a2ny1érr
-a2ny1érs
-a2ny1érte
-a2nyérté
-a2ny1értő
-a2ny1érv
-a2nyéve
-a2nyévé
-anyha2j1ón
-anyha2j1ó2r
-2anyi
-anyigaz1
-any1ing
-a2ny1io
-2anyí
-2anyo
-any1old
-a2ny1o2r
-any1órá
-any1ök
-any1ö2r
-any1öz
-a2ny1ő2
-any1s
-anyt2
-any1tr
-a2nyur
-2anyú
-2anyü
-any1ül
-a1o
-ao2áz
-ao2be
-ao2cs
-ao2da
-ao2dú
-ao2ka
-ao2ká
-ao2la
-aolaja2d
-aola2j1ada
-ao2mo
-ao2pá
-ao2pe
-ao2ra
-ao2ro
-ao2so
-ao2ut
-ao2ve
-ao2vi
-ao2xi
-a1ó
-aóá2r
-a2óbar
-a2óbá
-a2óbi
-a2óbo
-aó2ce
-aó2dá
-a2ódi
-a2ófá
-a2ófe
-a2ófo
-a2ófő
-a2ófü
-a2óhé
-a2óhi
-a2óhü
-a2óil
-a2óis
-a2ói2v
-a2óká
-a2óke
-aó1kré
-a2óku
-aó2la
-a2óle
-a2ólé
-a2óli
-aó2lo
-aó2lu
-a2ómag
-a2ómar
-a2ómas
-a2óme
-a2ómi
-a2ómo
-a2óné
-a2ónö
-a2ónő
-aó2rá
-a2óré
-aó2ri
-a2ósí
-a2ósű
-a2óta
-a2óte
-a2óté
-aó2vo
-aó2vó
-a1ö
-aö2bö
-aö2cs
-aö2dé
-aö2ko
-aö2kö
-aö2le
-aö2lé
-aö2lő
-aö2ná
-aö2rö
-aö2ve
-aö2vi
-aö2vö
-aö2zö
-a1ő
-aő2re
-aő2ré
-aő2ri
-aő2rö
-aő2rü
-aő2se
-aő2sö
-aő2sz
-apa2cs1a2v
-apa2cs1i
-a2p1a2da
-a2p1aga
-a2p1ajá
-a2p1akc
-2apal
-apa2lag
-apa2lak
-a2p1alb
-a2p1alj
-a2p1alt
-apa2mas
-a2p1ant
-2apap
-apa2pán
-ap1a2rán
-1apasá
-a2p1asp
-apa2tad
-apa2t1ala
-apata2n
-apa2t1as
-apa2tál
-apa2t1ö
-ap1aut
-2apav
-a2pava
-ap1a2zo
-a2pájú
-ap1állap
-a2p1állá
-a2p1állo
-apán1n
-a2p1á2rad
-ap1á2rai
-a2p1á2rak
-ap1á2ram
-ap1á2ras
-ap1á2rat
-apá2ráé
-apá2ráh
-apá2rán
-apá2rár
-apá2ráv
-apárba2
-a2p1áre
-a2p1á2ré
-a2p1árf
-ap1árka
-ap1árko
-a2p1árny
-ap1ártó
-a2p1áru
-a2p1á2rú
-apáská2
-apá2túr
-1a2páu
-ap1bl
-ap1dr
-a2pe.
-ap1e2dé
-a2p1e2g
-ap1e2l1a
-ap1elb
-ap1e2lé
-a2p1elf
-ap1elg
-a2p1elh
-ap1elj
-ap1elk
-a2pell
-ap1elm
-ap1eln
-ap1elo
-ap1e2lő
-ap1elr
-a2p1elt
-a2p1elv
-ape2m
-ap1emb
-ap1eme
-ap1ene
-ap1eni
-ap1e2ny
-ap1e2rő
-ape2s
-ap1ese
-ap1esé
-ap1eső
-a2p1e2v
-a2p1ex
-a2p1é2he
-a2p1éje
-a2p1é2le
-a2p1éll
-ap1élm
-a2p1é2ne
-ap1épü
-a2p1ér.
-ap1észl
-a2p1éte
-a2p1éve
-ap1fl
-ap1f2r
-ap1gr
-a2p1ide
-a2pidé
-apigaz1
-ap1i2ko
-ap1ikr
-a2p1i2nár
-ap1ind
-ap1inj
-a2p1ins
-ap1i2rat
-a2p1i2rá
-a2p1irk
-a2p1ism
-a2p1íg
-a2p1ín
-a2píté
-ap1ív
-a2p1íz
-ap1kl
-ap1kr
-ap1kv
-ap2laz
-ap2léd
-apmeg1
-apmű1
-apműt2
-a2p1ob
-ap1o2laj
-ap1oltár
-ap1opc
-ap1ope
-ap1opt
-apo2rad
-ap1orcá
-ap1orsó
-apor2t1ő2
-apo2t1ál
-a2p1ov
-1a2póká
-ap1ólo
-ap1óri
-a2p1öb
-ap1öl
-ap1ön
-ap1örv
-a2p1ös
-ap1öv
-a2p1ö2z
-ap1ő2r
-1appará
-ap2p1árn
-ap1ph
-app1ing
-ap1pla
-ap1pri
-ap1pró
-ap1p2s
-ap1py
-ap2res
-ap2réd
-a1p2rém
-ap2rés.
-a1p2rím
-2apro
-ap2roc
-a1p2rod
-1apród
-1aprózó
-ap2s1i2kon
-ap2síz
-aps1ork
-apsz1ert
-ap1szf
-apsz2t
-aptára2d
-aptá2r1ada
-ap1t2r
-apuá2
-a2p1udv
-apu1p2
-apus3s
-a2p1u2tas
-a2p1után
-a2putc
-a2p1új
-a2p1üd
-a2p1üg
-a2p1ü2l
-a2p1ün
-a2p1üt
-a2p1üv
-a2p1üz
-ap1űr
-ap1wh
-ara2b1ár
-ara2b1í2
-ar1abla
-2arad
-ar1a2data
-ar1a2dato
-ar1a2datr
-2arag
-ara2g1e
-2araj
-ar1ajkáró
-2arak
-a2r1a2kol
-ara2kóh
-ara2kói
-ara2kós
-ara2kót
-a2r1akt.
-ar1alk
-a2r1alm
-a2r1ana
-1a2rann
-arany1a2gá
-ara2nyal
-1aranyb
-1aranyh
-ara2nyí
-1aranyk
-1aranyn
-1aranyr
-1aranys
-ara2pa.
-ar1arc
-1arasz.
-arasz2t1e
-ar1aszú
-ara2tal
-ara2tel
-ara2tin
-ara2t1ő2
-aratű2
-ara2tűr
-ar1aul
-aravasz1
-1a2raw
-ara2zon
-2arác
-a2r1ác.
-a2r1á2csi
-a2rácsom
-a2r1ág.
-a2r1á2ga.
-a2r1á2gai
-a2r1á2gak
-a2rágan
-a2r1á2gat
-ará2gáb
-ará2gáh
-ará2gán
-ará2gár
-ará2gát
-ará2gáv
-a2r1ágb
-a2r1áge
-a2r1á2gé
-a2r1ágf
-a2r1ágg
-a2r1ágh
-a2r1á2gi
-a2r1ágk
-a2r1ágl
-ará2gon
-a2r1ágr
-a2r1ágs
-a2r1ágt
-a2r1á2guk
-a2r1á2gun
-a2r1á2gú
-a2r1á2gy
-ar1álc
-a2r1állá
-a2r1állo
-2arám
-ará2m1e2
-ará2nye
-a2r1á2rak
-a2r1á2rá
-a2r1árk
-a2r1árr
-ar1á2ru
-ar1árú
-ar1árv
-ará2sze
-a2r1á2szoki
-ará2tal
-ará2t1ö
-aráz4s
-ará2zsál
-arázsi2
-arázs3z
-ar2c1a2d
-arc1agy
-arc1ala
-arca2n
-arc1any
-ar2car
-ar2cat
-ar2ceg
-ar2c1es
-ar2cev
-ar2c1é2h
-arc1él.
-arc1élb
-arc1éll
-arc1élt
-ar2c1é2n
-ar2cés
-1archí
-arc1ing
-ar2c1int
-ar2ciz
-arcolás1s
-ar2có
-ar2cő
-arcs1ala
-ar2csál
-arc3sere
-ar2csip
-ar2c3sor
-ar2cü
-ar2cű
-ard1acé
-ar2d1alj
-ar2d1áll
-arde2l
-ard1ele
-ard1elő
-ard1elt
-ar2d1e2m
-ar2d1é2l
-ar2d1ina
-ar2d1ing
-ar2dor
-ar2dö
-ar2d1ur
-ar2dü
-a2r1e2dz
-ar1egés
-a2r1e2gy
-are2i
-areil2
-a2r1e2le
-ar1elh
-ar1elm
-ar1eln
-ar1elr
-ar1elt
-ar1elü
-ar1elű
-ar1elv
-a2r1emb
-ar1emel
-ar1e2més
-a2remu
-a2r1e2r
-ar1e2se
-ar1e2ső
-a2r1eszek
-a2r1eszé
-a2r1eszü
-ar1etű
-ar1e2ve
-ar1e2vé
-a2rew
-aréé2
-ar1ég.
-ar1é2ge
-aré2k1a2l
-aré2kek
-ar1él.
-ar1élt
-2arém
-aré2nek
-aré1p
-a2r1épü
-a2r1é2ri
-a2r1érő
-ar1észj
-aré1sz2tá
-aré1tra
-ar1f2r
-ar1gha
-2ari.
-2aria
-ar1i2de
-a2ridé
-a2r1i2ga
-a2rimád
-ar1i2mi
-a2r1i2na.
-a2r1i2naké
-a2r1i2nas
-a2r1i2nat
-a2r1i2náb
-a2r1i2náh
-a2r1i2nán
-a2r1i2nár
-a2r1i2nát
-a2r1i2náv
-a2r1ingé
-ari2nit
-arink2
-a2r1inté
-ari2nü
-ar1i2ono
-a2r1i2ón
-2arip
-a2r1isp
-a2r1iste
-ari1szf
-2ariz
-ari2zom
-ar1í2té
-ar2j1áz
-ar2j1er
-arkas3s
-arká2p
-arká2s
-ar2k1eg
-ark1elá
-ar2kéj
-ar2képü
-ar2k1érd
-ar2k1in.
-ar2k1i2ont
-ar2kiz
-ar2k1orm
-ar2k1ovi
-ar2kud
-ar2k1u2s
-ar2les
-ar2m1a2gy
-arma2te
-arm1áll
-ar2me.
-ar2meo
-arme2s
-arm1ing
-ar2m1is
-ar2m1osz
-ar2m1ö
-ar2mü
-arnis3s
-aroka2
-aro2kan
-aro2k1á2
-aro2k1e
-aro2kin
-a2r1olda
-1a2romát
-aro2mis
-a2r1opt
-ar1org
-ar1o2ro
-ar1ors
-a2r1ovi
-aró1p
-a2r1ó2rak
-a2r1ó2ráj
-a2r1ó2rám
-aró2s3zár
-aró2vár
-ar1ózd
-a2r1ö2b
-a2r1ök
-a2r1ö2l
-ar1öng
-a2r1ör
-a2r1ös
-a2r1ö2z
-ar1őr
-ar1ős
-ar1pl
-ar1pr
-ar1ry
-ar1ska
-ar1srá
-ar1sta
-ar1sto
-ar1str
-2art.
-art1abl
-ar2t1a2lap
-arta2n1á2s
-art1aszt
-ar2t1a2u
-ar2t1álla
-ar2t1e2g
-art1e2lő
-art1emb
-art1e2rei
-ar2tég
-ar2t1é2l
-ar2t1érp
-ar2t1i2na.
-ar2t1i2nát
-ar2t1i2náv
-art1orz
-ar2t1ö2v
-ar2t1ut
-artvis1s
-ar1ty2
-a2r1uml
-a2runi
-aru2tas
-a2r1új
-a2r1úsz
-ar1útj
-ar1útr
-a2r1üt
-ar1üz
-ar1ű2z
-ar2vala
-arvas1s
-arv1ágy
-ar2v1árh
-ar2v1á2ri
-2asabl
-as1abr
-a2sadag
-asag2
-as1aga
-as1agg
-as1a2gy
-2asaj
-a2s1a2kar
-2asal
-as1alab
-a2s1a2lap
-as1alf
-a2s1alján
-a2s1alji
-a2s1alk
-as1alm
-a2s1anó
-a2s1ant
-a2s1a2ny
-2asap
-as1apr
-2asar
-as1aran
-a2s1a2rá
-asa2t1ó2
-as1a2ty
-2asav
-asa2vo
-a2s1á2c
-asá2g1ikr
-as1áll
-2asám
-a2s1árnak
-a2s1á2ro
-a2s1árr
-a2s1árt
-a2s1á2ru
-asás1s
-as1ásvá
-as1áth
-2asáto
-2asáv
-as1bl
-as1d2r
-a2s1e2d
-as1ege
-a2s1e2gy
-ase2k
-as1eke
-as1eké
-as1ell
-a2s1emb
-a2s1e2n
-a2serd
-as1e2ré
-as1erő
-a2s1es
-ase2t
-as1eti
-a2s1ez
-a2s1éhe
-a2s1éke
-a2s1é2l
-2asém
-a2s1ép
-2asér
-a2s1ér.
-as1érb
-as1érc
-a2s1érd
-asé1s2
-as1étv
-as1é2ve
-as1fr
-as1gl
-as1gr
-as1ide
-as1ido
-as1i2ga
-as1i2gá
-as1inj
-a2s1i2o
-2asiv
-as1izé
-as1i2zo
-a2s1íj
-2asík
-2asín
-2asír
-asírta2
-asír2tal
-a2s1í2v
-as1ízü
-2aská
-as1kl
-asko2s1a2rá
-asko2s1á
-as2koz
-as1k2r
-as2luk
-as2már
-2asodr
-a2s1of
-as1okke
-as1okl
-as1okos
-2asoks
-as1okta
-asom1or
-aso2né
-2asor
-a2s1ord
-a2s1orm
-as1osz
-a2s1ox
-asó1p2
-as1ó2rá
-a2s1ö2k
-a2s1ö2l
-as1örd
-as1örv
-a2s1ös
-as1ö2ve
-as1őr
-as1p2l
-as2pot
-asp2r
-a1s2pu
-as1s2p
-as3szabá
-as3szin
-asszí2ve
-assz1íve.
-assz1ívek
-assz1ívne
-1asszoc
-1asszony
-as3szü
-as3szű
-2asta
-a1stand
-2astá
-a1s2tád
-2asti
-astil2
-as2tim
-2astí
-2asto
-as2top
-2astr
-as1trag
-as1trav
-a1st2ru
-2astú
-a2s1ud
-2asug
-a2s1uj
-2asuly
-asu2r
-as1ura
-as1urn
-a2s1u2sz
-as1u2tak
-a2s1u2tas
-a2s1u2tá
-as1u2tu
-a2s1ú2s
-a2s1ú2t
-asút1a2
-a2s1üd
-a2s1ü2lő
-as1üst
-a2s1üz
-as1űz
-2aszab
-a2sz1a2d
-2aszak
-a2sz1akc
-asza2k1e
-a2sz1akt
-asza2k1ü
-a2sz1alk
-1aszaló
-asz1asp
-asz1ass
-asza2t1a2
-asza2t1e
-a2szath
-a2szati
-2aszav
-a2sz1ág.
-asz1á2ga
-asz1á2gá
-asz1ágb
-asz1ágg
-asz1á2gi
-asz1ágk
-asz1á2go
-asz1ágr
-asz1ágt
-a2szálc
-a2szálm
-2aszám
-aszá2rada
-a2száram
-asz1árnyé
-a2szárp
-a2száta
-a2száth
-asz1átl
-a2sz1á2to
-asz1áts
-2aszed
-2aszeg
-aszegész1
-asz1eh
-2aszek
-2aszel
-asz1e2lem
-asz1elj
-2aszemc
-2aszeme
-2aszemé
-2aszemp
-a2szemu
-2aszemü
-2aszemű
-2aszen
-a2sz1eng
-asz1e2pi
-2aszer.
-2aszere
-a2sz1erej
-2aszeré
-2aszerk
-2aszern
-a2sz1ero
-a2szerő
-2aszerr
-2aszers
-2aszert
-2aszerv
-2aszerz
-asze2s
-a2sz1ese
-asz1est
-2aszez
-2aszék
-aszé2k1el
-asz1é2let
-asz1élés
-aszé2n1ég
-aszén1n
-a2sz1é2re
-asz1éré
-2aszét
-asz2fér
-a2sz1ill
-2aszin
-a2sz1inf
-asz1ing
-2aszir
-a2sz1ism
-asz1ist
-2asziv
-a2sz1iz
-2aszí
-a2sz1ír
-asz1í2vi
-asz2karc
-asz2k1áp
-asz2kell
-asz2kes
-2aszob
-2aszoc
-2aszof
-aszon1n
-aszo2n1o
-a2sz1orr
-asz1ors
-a2sz1osz
-1aszóa
-asz1ó2dá
-2aszót
-2aszök
-asz1ölt
-a2sz1ön
-2aször
-asz1öss
-a2szöt
-2aszöv
-2asző
-aszőlőé2
-asz3su
-asz2tab
-asz2t1apo
-asz2tác
-asz2táll
-asz2t1emb
-asz2téne
-asz2t1és
-asz2t1ing
-asz2t1olt
-asz2t1oro
-asz2t1orr
-asz2tors
-asz2t1osz
-asz2töv
-asz2tős
-asz2t1ül
-asztvíz1
-2aszur
-1aszús
-asz1útr
-2aszü
-aszü2g
-asz1ügg
-a2sz1ü2z
-2aszű
-asz2vit
-asz1z
-2atab
-at1abla
-a2t1a2cé
-ata2dat
-at1a2dó
-2atag
-a2t1agya
-a2taján
-2atak
-a2t1akara
-ata2kár
-ata2kel
-ata2k1é2pes
-ata2k1ö2v
-a2t1aktu
-at1a2lag
-ata2lap.
-ata2lapb
-ata2lapj
-ata2lapo
-ata2lapp
-ata2lapr
-ata2lapú
-ata2lat
-a2t1aleg
-ata2lik
-a2t1alle
-a2t1almás
-2atan
-a2t1anal
-ata2nó
-at1a2nyag
-at1a2nyás
-2atap
-at1app
-ata2puk
-ata2pun
-2atar
-a2t1a2rab
-ata2ran
-a2t1a2rén
-ata1st
-atau2r
-a2t1a2ut
-a2t1azo
-2atáb
-at1ábr
-2atág
-at1ág.
-a2t1á2ga
-at1ágr
-2atáj
-2atál
-a2t1állá
-a2t1álló
-a2t1álm
-2atám
-atá2nal
-a2t1á2pol
-2atár
-atá2rada
-atá2rado
-atá2ramh
-a2táramk
-atá2ramn
-atá2r1az
-atá2rét
-atá2ris
-at1árkár
-atársá2g
-atár2s1ágá
-at1ártás
-2atás
-atá2s1á2g
-atá2sz
-atá2tal
-atátá2
-atá2tár
-a2t1átb
-a2t1átf
-a2t1áth
-a2t1áti
-a2t1átj
-a2t1átk
-a2t1átl
-a2t1átr
-a2t1áts
-a2t1átt
-a2t1átu
-a2t1átv
-2atáv
-at1bl
-at1br
-at1cl
-at1dr
-at1e2gé
-ate2jel
-ateké2r
-ate2kére
-ate2kó
-a2t1e2l1a
-a2t1elb
-at1elc
-a2t1eld
-at1e2led
-at1eleg
-at1e2lem
-at1e2l1en
-a2t1elf
-a2t1elh
-at1eljá
-at1elkö
-at1elkü
-a2t1elm
-at1eln
-a2t1e2lo
-at1e2lőn
-ate2lőt
-a2t1elr
-a2t1els
-at1elta
-at1eltá
-at1elté
-at1eltü
-a2t1elu
-a2t1elű
-a2t1elv
-a2t1elz
-a2t1emb
-at1e2mel
-a2t1emé
-a2t1eml
-a2t1emó
-a2t1enc
-a2t1ene
-at1epi
-at1epo
-a2t1erd
-at1e2rec
-ate2r1ék
-a2t1erő
-a2t1e2se
-a2t1esé
-a2tesk
-ates2t1á
-ates2tő
-at1eszm
-at1eszű
-ate2tol
-a2t1e2z
-2atég
-até2get
-a2t1éhe
-até2k1a2l
-até2ke2
-a2t1éke.
-aték1el
-2atél
-a2t1é2le
-a2t1é2lé
-a2t1élm
-a2t1élv
-2atém
-até2ne
-a2t1éps
-2atér
-até2rá
-a2t1érdek
-a2t1érin
-a2t1érl
-a2t1érm
-a2t1értel
-at1érvek
-a2t1érz
-at1észa
-at1észl
-2atét
-até2tét
-a2t1étv
-at1fj
-at1fl
-at1fr
-at1gl
-at1gr
-a1t2hus
-2ati.
-a2t1iat
-a2t1i2de
-a2t1ido
-ati2g
-a2t1ige
-a2t1igé
-a2t1igy
-a2till
-at1ille
-at1i2má
-at2i3mádá
-at1i2mi
-a2t1imp
-2atin
-a2t1ing.
-a2t1inga
-a2t1ingb
-a2t1inge
-atinó2
-ati2n1ór
-at1inté
-at1into
-2atip
-a2t1i2pa
-2atir
-a2t1irá
-a2t1iro
-2atis
-a2t1isk
-a2t1ism
-ati2sz
-a2t1iszo
-2atit
-a2t1i2ta
-a2t1izé
-a2t1izg
-a2tizmo
-a2t1i2zo
-a2t1íg
-a2t1íj
-2atíp
-2atír
-a2t1í2t
-at1í2vek
-atív1e2l
-at1í2vet
-atí2vét
-a2t1íz
-2atki
-2at1kl
-2atko
-2atkö
-2atku
-at1kv
-at1ojt
-atoka2
-a2t1o2k1al
-ato2koss
-a2t1o2koz
-a2t1okta
-a2t1o2ku
-at1oldá
-a2t1oldó
-ato2m1á
-1atombe
-ato2mer
-1a2tomj
-a2toml
-1a2tomok
-1a2tomos
-1a2toms
-1atomú
-at1opc
-at1ope
-a2t1opt
-2ator
-ato2rál
-a2t1ord
-a2t1org
-ato2rú
-a2t1orv
-a2t1orzá
-atos3s
-ato1sz2f
-a2t1oszl
-ató1p2
-a2t1ó2rák
-ató2rán
-ató2riá
-ató1stá
-ató1sz
-ató2s3zár
-ató2s3zené
-ató1tr
-at1öko
-atö2l
-a2t1öle
-a2t1ölé
-a2t1ölő
-at1öná
-atön2k1a
-at1ö2röm
-a2t1ös
-a2t1öt
-atö2vi.
-a2t1ö2z
-atő2ra
-at1őrl
-a2t1ő2s
-atpen1
-at1pl
-at1pr
-at1ps
-atrac1c
-a1t2rad
-2atraj
-2atrak
-at2ramb
-a1trap
-a1trau
-a1t2rav
-2atré
-a1t2réf
-at2rén
-atré2szel
-a1t2ril
-at2roj
-a1t2róg
-2atrón
-a1t2rü
-at2sán
-at1sh
-at1sk
-at1sl
-at1sp
-at1st
-at1s2v
-atszá2m1é
-atszáraz1
-att1adó
-1attakok
-1attasé
-at2t1e2g
-at2tez
-att1ing
-attó2
-at2t1ór
-at1t2re
-2atud
-a2t1udv
-a2t1ug
-2atul
-a2t1und
-a2tuni
-2atur
-at1utá
-at1utó
-a2t1új
-2atúl
-at1ú2sz
-a2t1üg
-2atük
-at1ü2lé
-at1ült
-2atün
-at1üst
-a2t1ü2v
-2atüz
-at1üzem
-at1űri.
-at1űrl
-2atűz
-a1u
-au2b1in
-au2bor
-a2udá
-au2de
-au2ga
-a2ug2h
-au2go
-1a2ukc
-aul2l
-aul2t1a
-aul2ti
-a2umae
-a2umaf
-a2umak
-a2umam
-a2umar
-a2umav
-a2umáb
-a2umád
-a2umáé
-a2umáh
-a2umái
-a2umám
-a2umán
-a2umár
-a2umáv
-au1ph
-au2rad
-au2r1ikr
-au2rö
-au2sz1e
-a2ut.
-au2tad
-au2tal
-au2tam
-au2tas
-au2tat
-2autá
-au2tál
-a2uti
-1a2uton
-a2utó
-1autób
-1autóé
-1autóh
-1autói
-1autóm
-1autón
-1autór
-1autós
-1autót
-1autóv
-a2utr
-a2utt
-au2tu
-au2zí
-au2zs
-a2uzú
-au2z1ü
-a1ú
-aú2jí
-aú2jo
-aú2ré
-aú2r1i
-aú2sz
-aú2ti
-aú2to
-a1ü
-aü2dí
-aü2dü
-aü2ge
-aü2gy
-aü2le
-aü2lé
-aü2li
-aü2lö
-aü2lő
-aü2lü
-aü2nő
-aü2re
-aü2rí
-aü2rö
-aü2rü
-aü2sz
-aü2te
-aü2té
-aü2ti
-aü2ve
-aü2vö
-aü2zem.
-aü2zemb
-aü2zemen
-aü2zemet
-aü2zemé
-aü2zemh
-aü2zemm
-aü2zemn
-aü2zemr
-aü2zen
-aü2zé
-a1ű
-aű2ri
-aű2rö
-aű2ze
-aű2zé
-aű2zi
-aű2zö
-aű2ző
-2avad
-2avak
-av1akti
-a2v1anh
-1a2vant
-a2v1a2nya
-a2vanz
-ava2rac
-ava2r1ag
-ava2r1e2
-ava2rék
-ava2sze
-ava2szü
-1a2vatá
-1a2vató
-2avád
-avá2nan
-2avár
-avá2r1al
-avá2ria.
-avá2riai
-a2v1á2riá
-a2v1áta
-a2v1átt
-avá2zal
-av1bl
-av1e2le
-av1elv
-2aves
-av1est
-2avet
-2avez
-avi2cse
-av1ing
-av1kr
-a2v1old
-av1oltó
-avo1s
-a2v1ox
-a2v1öm
-a2v1ös
-av1ős
-av1őz
-av1pr
-av1sp
-av1st
-a2v1ut
-av1ü2l
-av1ür
-av1ü2z
-a2wag
-aw2hi
-awhisky2
-awhiskyk2
-a2x1ab
-a2x1ad
-a2x1ak
-a2x1al
-a2x1an
-a2x1av
-ax1bl
-ax1eg
-ax1el
-ax1inf
-ax1ing
-ax1int
-axió2r
-axi2se
-ax1ír
-ax1ös
-ax1öz
-ax1pr
-a2x1ut
-ax1új
-ax1üz
-ax1űr
-a1ye.
-a1yed
-a1yei
-a1yek
-ay1e2l
-a1yen
-a1yes
-ayet2
-ay1fl
-a1yi.
-ay1il
-ay1ing
-a1yit
-ayma2
-ay1s2t
-aza2ch
-aza2cik
-azai2ko
-azal2t1a
-aza1p2
-aza1s2
-az1áll
-az1ált
-azá2nö
-azá2r1ó2ra
-azá2s1e
-azási2k
-azá2siko
-azás3s
-az2du
-a2z1e2g
-az1e2le
-az1elj
-az1elm
-az1elő
-a2z1em
-a2z1ex
-a2z1ég
-azé2k1e2
-azé2kol
-a2z1érté
-a2z1ing
-a2z1i2o
-az1irá
-az1irt
-azma1g
-a2z1ob
-2azol
-azo2nal
-azo2n1á
-azont2
-a2z1op
-a2z1or
-a2z1osz
-azót2
-azó1tr
-a1z2rí
-az4sé
-a2z3sike
-az3sor
-az3sp
-a2z3sü
-az3sz
-az1ut
-a2z1új
-azú2r1é
-az1üz
-2á.
-á1a
-áa2da
-áa2dá
-áadás1s
-áa2do
-áa2dó
-áa2du
-áa2já
-áa2ka
-áa2la
-áa2lu
-áa2ra
-áa2sz
-áa2ut
-áa2va
-á1á
-áá2cs
-áá2ga
-áá2gy
-áá2ju
-áá2mu
-áá2ra
-áá2ru
-áá2sá
-áá2sí
-áá2so
-áá2só
-áá2su
-áá2zo
-áá2zu
-á2b1adu
-áb1akc
-á2b1a2la
-á2b1alk
-á2b1ambu
-á2b1a2ny
-ába1p
-áb1art
-ába3se
-á2b1á2g
-áb1áll
-áb1álm
-á2b1áp
-á2b1árá
-á2b1árn
-á2b1á2ru
-á2b1átj
-á2b1átl
-á2b1átm
-á2b1átv
-á2b1áz
-áb2b1a2d
-ábba2l
-áb2b1ala
-áb2b1and
-áb2b1ár
-áb2ben
-áb2b1e2r
-áb2b1é2l
-áb2bid
-áb2bim
-áb2b1i2s
-áb2b1ita
-ább1o2so
-ább1oss
-áb2bör
-áb2b1ül
-áb2bű
-áb1dr
-á2b1ed
-á2b1e2g
-ábe2l1a
-ábe2l1á
-ábe2l1eg
-ábe2l1el
-ábe2l1e2r
-ábe2lég
-ábe2l1in
-á2belnö
-á2b1e2m
-á2b1e2n
-áb1e2ro
-áb1erő
-1á2béc
-á2b1é2g
-áb1é2ke
-á2b1éks
-á2b1é2les
-á2b1élt
-á2b1ép
-á2b1ér.
-á2b1é2ri
-á2b1érs
-á2b1érte
-á2b1érté
-áb1fr
-á2b1i2d
-ábi2g
-áb1iga
-áb1igé
-á2b1ikr
-áb1illa
-á2b1im
-ábi2nai
-á2binas
-á2b1ind
-á2b1ing
-á2b1int
-á2b1is
-áb1izm
-áb1izz
-á2b1ív
-áb1kl
-áb1kr
-ábla1kr
-ábla1p
-á2b1olda
-á2b1op
-ábo2raj
-ábo2ran
-ábo2rál
-ábo2ris
-á2b1osz
-á2b1o2v
-áb1öb
-áb1ö2d
-áb1öl
-áb1ön
-áb1ö2r
-áb1ös
-áb1öv
-áb1őr
-áb1pr
-1ábrái
-áb2rek
-áb1sp
-áb1st
-áb1sz2
-áb1tr
-á2b1ujjal
-ábu1sz2
-áb1úr.
-áb1üg
-áb1ü2l
-áb1üs
-áb1üt
-áb1üv
-á2c1a2g
-ác1ajt
-áca1k2l
-ác1akn
-á2c1a2la
-ác1alm
-á2c1a2ny
-á2c1ág
-á2c1ál
-ác3cse
-ác3cso
-ác1e2l1
-ácele2
-ác1en
-ác1er
-á2c1ép
-á2c1ére
-á2c3ha
-á2c3há
-ác3he
-á2c3hé
-ác3hon
-á2c3hu
-áci2as
-á2c1il
-ác1inc
-ác1ing
-ácin2til
-áci2ósű
-á2c1i2s
-ác1ív
-á2c1or
-á2c1osz
-ác1ór
-ác1ö2l
-ács1abl
-á2cs1a2g
-á2cs1ajt
-á2csaka
-á2cs1akn
-ács1alap
-ács1alj
-ács1alom
-ács1app
-ács1atk
-á2csatom
-á2cs1á2c
-á2cs1ál
-ác3sárg
-á2cs1árk
-á2cs1árn
-á2csáru
-á2cs1á2ta
-ácsboz1
-á2csef
-á2cs1e2g
-á2cs1e2l
-á2csene
-á2csent
-á2cser
-ácse2t
-á2cs1ev
-ács1é2g
-ácsé2k
-ács1éki
-ács1ékk
-ács1ékn
-á2csél
-á2csép
-ács1é2te
-ácsi2g
-á2cs1iga
-á2cs1ille
-á2csimi
-ács1int
-ácsi2p
-á2cs1ipa
-ács1isk
-ácsí2
-ács1ír
-á2csokta
-1á2csolat
-1á2csomk
-ács1orr
-á2csosz
-á2cs1ov
-ác3só.
-ács1ó2r
-ác3sót
-ác3sóv
-ács1ö2k
-á2cs1ö2l
-á2cs1ös
-á2csöt
-ács1ő2s
-ács1s
-á2csuj
-á2csut
-á2cs1úr
-ács1ü2l
-á2cs1ü2t
-á1csy
-ács3zen
-á2c1ut
-ác1úr
-ác1ül
-ác1ür
-ád1abl
-á2d1a2do
-á2d1akc
-ád1a2lap
-á2d1alb
-á2d1alj
-á2d1alk
-ád1a2nya
-ád1a2nyá
-áda1p
-á2d1a2pá
-ád1arc
-á2d1aty
-á2d1ág
-á2d1ál
-ád1á2sz
-ád1átl
-ád1dr
-ád3dz
-ád1e2c
-á2d1e2g
-á2d1ej
-á2d1e2l
-ádele2
-ádel1ej
-ádel1eme
-á2d1e2m
-á2d1ep
-áde2r1á
-ád1erő
-ád1e2ti
-ádéd2
-ádé1dr
-ádé1g2
-á2d1é2ge
-ádé1kré
-ád1éne
-á2d1érte
-á2d1érz
-ádé1st
-ádi2cse
-á2d1i2d
-á2d1i2ga
-ád1i2ko
-ád1ill
-ád1imi
-ád1ind
-á2d1int
-ádi2ódar
-ádióé2r
-ádi2óéra
-ádi2ói2v
-ádi2óko
-ádi2ó1k2ra
-á2d1i2p
-ád1ist
-ád1ív
-ád1kl
-ád1kr
-ádo2ga
-ádo2gá
-ádo2ge
-ádo2rak
-á2d1osz
-ádós2
-ádö2b
-á2d1ös
-ád1öv
-ád1ö2z
-ád1ő2r
-ád1pr
-ád1ps
-á1d2rót
-ád1st
-ád1tr
-ád1udv
-á2d1ú2s
-á2d1üg
-ád1ü2lé
-á2d1üz
-ád3za
-á2d3zá
-á2d3ze
-ád3zú
-á1e
-áe2cs
-áe2dz
-áe2ge
-áe2gé
-áe2gy
-áe2le
-áe2lő
-áe2me
-áe2re
-áe2rő
-áe2se
-áe2sé
-áe2si
-áe2ső
-áe2sü
-áe2te
-áe2ve
-áe2vé
-áe2vő
-á1é
-áé2de
-áé2ge
-áé2gé
-áé2gő
-áé2he
-áé2ke
-áé2le
-áé2ne
-áé2pí
-áé2pü
-áé2re
-áé2ré
-áé2ri
-áé2rő
-áé2rü
-áé2te
-á2f1a2gya
-á2f1alg
-á2fáb
-á2f1ág
-1á2fák
-á2f1áp
-1á2fás
-á2fát
-áf1dr
-áf1elm
-á2f1e2m
-á2f1e2t
-áf1é2ne
-áfi2ad
-áfi2am
-á2f1i2d
-á2f1im
-á2f1ing.
-á2f1ordá
-á2f1osz
-áf2rec
-á1f2rö
-áfus3s
-á2f1ün
-á2g1abl
-ág1abr
-ága2c
-ág1acé
-1ágacska
-á2gad
-ág1a2dá
-1ágadd
-ág1a2dó
-á2g1a2j
-á2gaka
-ág1a2kar
-ág1a2kas
-1á2gakb
-1á2gakh
-1á2gaki
-1á2gakk
-1á2gakn
-1á2gakr
-á2gakt
-á2g1a2la
-á2g1alj
-á2g1all
-ág1alt
-1á2gam
-ága2n
-ág1ana
-á2g1ang
-1á2gank
-ág1ant
-á2g1any
-á2g1a2p
-á2g1a2r
-ág1asp
-á2g1asz
-ága2tol
-á2g1au
-1á2gaza
-ága2zon
-á2g1á2g
-á2g1áld
-ág1álm
-ág1á2mu
-ágá2nyal
-á2g1áp
-á2g1árad
-á2g1árb
-á2g1á2ré
-á2g1árh
-á2g1á2ria
-ágá2rokb
-á2g1árv
-á2g1ásó
-ágás3s
-ágá2sz
-á2g1át1a2
-á2g1átá
-á2g1áté
-á2g1átf
-á2g1áth
-á2g1áti
-á2g1átl
-á2g1átm
-á2g1átn
-ágá2tokk
-á2g1átr
-á2g1áts
-á2g1átt
-ág1átü
-á2g1átv
-ág1bl
-ág1br
-ág1d2r
-á2g1e2c
-á2g1e2d
-ág1ef
-á2g1e2g
-á2g1e2l
-á2g1e2m
-á2ge2n
-ág1enc
-ág1ene
-á2g1e2p
-áge2ra
-áge2rá
-áge2r1el
-á2g1e2s
-á2g1e2t
-á2g1e2v
-á2g1ex
-á2g1é2g
-á2g1é2he
-á2g1éj
-á2g1é2k
-á2g1é2l
-á2g1é2ne
-á2g1épí
-ág1é2pü
-á2g1ér.
-á2g1érá
-á2g1é2ré
-á2g1éri
-ág1érm
-á2g1é2rő
-ág1érte
-ág1érté
-á2g1érv
-á2g1és
-á2g1éte
-á2g1éve
-á2g1évé
-ág1fl
-ág1fr
-ág1g2l
-ág1gr
-ág3gyar
-ág3gye
-ág3gyú
-ághá2nyi
-ági2al
-ági2asz
-ági2d
-á2g1ide
-á2g1if
-ági2g
-á2g1iga
-á2g1igén
-á2gill
-ág1ima
-á2g1i2mi
-á2g1i2na.
-ág1inf
-á2g1ing
-ág1ins
-á2g1int
-á2g1iri
-ág1iro
-á2g1ist
-á2g1isz
-á2g1i2ta
-á2g1iz
-á2g1íg
-á2g1ín
-á2g1ír
-á2gíté
-á2g1íz
-ágká2rok
-ág1kl
-ág1kr
-ág1kv
-á2g1oá
-á2g1okl
-á2g1o2li
-ág1oltó
-á2g1op
-á2g1or
-á2g1osko
-ágos3s
-á2g1oszl
-ágó1dr
-á2g1ó2rá
-á2g1ö2k
-á2g1ö2l
-ág1önt
-ágö2r
-ág1örö
-ág1örv
-á2g1ös
-á2g1öt
-á2g1öv
-á2g1ö2z
-ág1ő2r
-ág1ő2s
-ág1pl
-ágport2
-ágpor1tr
-ág1pr
-ág1ps
-ág1sh
-ág1sk
-ág1sl
-ág1sp
-ág1st
-ágsz2
-ág1tr
-á2g1ud
-á2g1uj
-águ2n
-á2g1una
-á2g1und
-á2g1u2ra
-á2g1u2rá
-á2g1u2t
-á2g1új
-á2g1ús
-ág1útt
-ág1üd
-ág1ü2g
-ág1ü2l
-ág1ün
-ág1üv
-ág1üz
-ág1ű2r
-ág1űz
-ágya1g
-ágy1alj
-ágy1alk
-ágy1alm
-1á2gyasn
-á2gyassa
-á2gy1á2l
-á2gy1á2ram
-ágyás1s
-á2gy1e2
-á2gyél
-ágy1ér.
-1ágygyű
-á2gyid
-á2gyil
-á2gyivad
-á2gyob
-á2gyosz
-ágy1otth
-á2gy1ó2s
-ágy1ö2l
-ágy1ös
-á2gyur
-á2gyúh
-á2gyút
-á2gy1ü2
-áh1ajk
-áh1ass
-1á2hít
-á2h1ors
-á1i
-ái2dom
-ái2dő
-ái2ga
-ái2gé
-ái2gy
-ái2ha
-ái2je
-ái2má
-ái2ram
-ái2rá
-ái2sz
-ái2ta
-ái2vá
-ái2vo
-ái2zé
-á1í
-áí2gé
-áí2rá
-áí2ve
-áí2vo
-á2j1adó
-á2j1akc
-á2j1akv
-á2j1a2la
-áj1ambu
-á2j1ana
-áj1ant
-á2j1any
-á2j1ar
-á2j1atl
-á2j1ax
-áj1azo
-á2j1ág
-á2j1ál
-á2j1áp
-ájás3s
-á2j1át1a
-á2j1átá
-á2j1átt
-áj1bl
-áj1br
-áj2ch
-á2j1e2c
-áj1egé
-áj1elm
-áj1eln
-áj1elő
-áj1elv
-á2j1em
-á2j1e2n
-á2j1es
-áj1e2t
-á2j1e2v
-áj1ex
-á2j1é2g
-á2j1él
-á2j1ép
-ájé2r
-á2j1ére
-á2j1éte
-áj1fl
-áj1fr
-á2j1i2d
-á2j1il
-á2j1im
-á2j1iz
-áj1íj
-áj1ír
-áj1ív
-áj1íz
-ájk1ell
-áj2k1ő2
-áj2kü
-áj2lad
-ájl1akt
-áj2l1an
-áj2l1as
-áj2l1at
-áj2lik
-áj2lob
-áj2nár
-áj2nin
-áj2nü
-á2j1ob
-á2j1op
-á2j1or
-á2j1öb
-áj1ök
-áj1öl
-á2j1ör
-áj1őr
-áj1ős
-áj1pl
-áj1pr
-áj1sn
-áj1sp
-áj1st2
-áj1t2r
-á2j1ud
-áj1úsz
-áj1üg
-áj1ül
-áj1ür
-áj1ü2t
-áj1üv
-áj1üz
-áj1űr
-áj2zab
-áj2zaj
-áj2z3sa
-ák1abr
-á2k1a2d
-á2k1aj
-ák1aka
-á2k1a2lapí
-ák1ale
-ák1alj
-ák1ant
-ák1ara
-á2k1a2rá
-ák1arm
-ák1arz
-á2k1ass
-á2k1atl
-á2k1a2u
-á2k1á2c
-á2k1á2l
-ák1áta
-ák1átk
-ák1bl
-ák1ebé
-á2k1e2g
-ák1e2le
-á2k1elk
-á2kellene
-á2k1elm
-á2k1e2lő
-ák1emb
-ák1e2rő
-á2k1e2vé
-á2k1e2vo
-á2k1é2l
-á2k1é2ne
-á2k1érm
-á2k1érte
-á2k1értő
-á2k1érv
-á2k1érz
-ák1éss
-á2k1é2te
-á2k1étk
-á2k1étt
-á2k1é2ve
-ák1fl
-ák1fr
-á2k1i2d
-á2k1if
-áki2g
-ák1iga
-á2k1igé
-ák1ill
-á2k1i2m
-ák1ing
-á2k1int
-ák1iro
-á2k1i2s
-áki2t
-ák1ita
-á2k1i2v
-ák1ír
-ák1k2l
-ák1k2r
-ák2lar
-á2k1oks
-á2k1o2la
-á2k1old
-á2k1o2li
-á2k1oll
-á2k1o2pe
-á2k1orv
-ákos3s
-á2k1ott
-ák1óni
-ákö2l
-á2k1ölő
-ák1ö2r
-ák1ő2r
-ák1pr
-ák2rák
-á1k2reá
-á1k2ris
-ák1sp
-ák1sr
-ák1st
-ák1sz2
-ák1t2r
-á2k1uj
-á2kuni
-áku2r
-ák1ura
-ák1utó
-ák1új
-ákú2t
-á2k1úto
-ák1üd
-á2k1üg
-ákü2l
-ák1ün
-ák1ür
-ák1ü2t
-ák1űr
-á1k2vat
-2ála.
-ál1abl
-ál1acé
-á2l1adag
-á2l1a2dó
-ál1a2já
-ál1ajt
-ála2kar
-á2l1akna.
-2álal
-ál1alak
-á2l1alát
-ál1alg
-á2l1alk
-á2l1alm
-á2l1ane
-á2l1ang
-á2l1ant
-á2l1a2nya
-ál1a2nyái
-ál1a2nyán
-á2l1a2nyát
-ál1a2nyáv
-á2l1a2pos
-ál1apó
-ál1a2ra
-ála2szek
-ála2szel
-ála2sz1ék
-ála2szö
-ála2szű
-ála2tat
-ála2tet
-ála2t1ér.
-ála2tikr
-ála2tint
-ál1atlé
-ála2told
-ála2t1ó2
-á2l1atti
-á2l1a2ty
-ál1aut
-á2l1ábr
-ál1ág.
-ál1á2gi
-á2l1á2gú
-ál1áll
-á2l1á2rak
-ál1árf
-ál1árk
-á2l1árn
-á2l1á2ro
-álá2s3z
-á2l1átc
-á2l1átk
-á2l1átm
-á2l1átú
-á2l1átvá
-ál1bl
-ál1br
-álcai2
-1áldás
-1áldoz
-ál1d2r
-ál1dy
-á2l1e2c
-á2l1e2d
-á2l1ef
-ál1elk
-ál1elm
-ál1elo
-ál1e2lő
-ál1elr
-ál1emu
-á2l1e2r
-ál1esem
-á2l1e2ső
-á2l1esz
-á2l1e2t
-ál1ez
-á2l1ég
-á2l1é2he
-álé2kal
-álé2k1an
-álé2k1e2l
-álé2kü
-ál1é2le
-ál1é2lő
-á2l1é2ne
-á2l1ér.
-á2l1érb
-á2l1érd
-á2l1érf
-á2l1érg
-á2l1érh
-á2l1é2ri
-á2l1érm
-á2l1érr
-á2l1érs
-á2l1értá
-á2l1érte
-á2l1érté
-á2l1érz
-á2l1év.
-á2l1é2vé
-ál1fl
-ál1fr
-ál1gr
-1álhaja
-áli2as
-ál1i2bo
-áli2d
-ál1ide
-ál1idé
-áli2g
-á2l1iga
-á2l1ige
-á2l1igé
-ál1ill
-ál1imp
-á2l1ind
-ál1inf
-á2l1i2onb
-á2l1i2ont
-á2l1i2p
-ál1irá
-á2l1iro
-áli2s1e
-áli2s1ék
-áli2sis
-ális3s
-ál1iste
-á2l1iz
-ál1ín
-ál1í2r
-ál1ít
-ál1í2v
-álká2rok
-ál1k2l
-ál1k2r
-ál2l1a2dó
-1állag
-ál2laj
-ál2l1a2lak
-1államá
-álla2m1e
-1államot
-1államti
-ál2l1a2pá
-ál2l1a2r
-1állata
-álla2tas
-álla2t1e2
-álla2t1or
-álla2t1ö2
-1állatu
-ál2l1á2g
-ál2l1á2l
-ál2l1árr
-állás1s
-ál2l1áth
-ál2l1átm
-ál2led
-ál2l1e2h
-ál2l1ej
-áll1éké
-ál2l1iz
-1állomá
-ál2lü
-1álmaim
-1álmok.
-1álmom
-1álmot.
-1álmuk
-1álmunkb
-ál1obj
-á2l1o2ka.
-á2l1o2kai
-1álokaih
-1álokain
-1álokair
-á2l1o2ká
-1álokán
-1álokát
-1álokáu
-álo2kok
-1álokonk
-álo2kos
-á2l1okta
-1á2l1o2ku
-á2l1ol
-áloma2
-álo2mad
-álo2m1al
-álo2m1an
-álo2mar
-álo2mas
-álo2m1á
-álo2m1e
-álo2m1it
-álo2mot
-á2loms
-álo2m1ú
-á2l1ont
-ál1opc
-á2l1ope
-á2l1or
-á2l1osz
-á2l1ox
-álóa2
-álóá2
-álóó2
-áló2ráj
-áló2s1ű2
-álót2
-ál1öb
-á2l1öd
-á2l1ö2l
-á2l1ös
-ál1öz
-á2l1őr
-ál1p2l
-ál1p2r
-ál1p2s
-ál1sk
-ál1sl
-ál1st
-ál1trad
-ál1t2rak
-ál1t2ran
-ál1t2re
-ál1tré
-á2l1ug
-álu2n
-á2l1una
-á2l1u2r
-á2l1u2t
-á2l1uz
-á2l1új
-á2l1úr
-álú2t
-ál1útj
-ál1útk
-ál1útn
-á2l1úto
-á2l1útr
-á2l1útt
-ál1üg
-ál1ün
-ál1ür
-ál1üt
-ál1üv
-ál1üz
-ál1űr
-ál1űz
-ály1ada
-álya1g2
-ály1ant
-ály1anya
-álya1p
-ály1ass
-á2lyál
-á2ly1e2
-á2lyéj
-á2lyél
-á2ly1é2ne
-á2lyére
-á2lyéve
-á2lyide
-á2lyí
-ály1k2
-ály1odv
-á2lyol
-á2ly1ó2
-á2ly1ö
-á2lyő
-ály1s
-á2lyug
-á2ly1ü2
-á2ly1ű2
-á2m1abl
-á2m1abr
-ám1a2cé
-ám1adm
-ám1agg
-á2m1ajt
-á2m1akt
-ám1a2lap
-ám1all
-ám1alt
-ámaó2
-á2m1app
-á2m1arc
-áma2sz1ál
-áma2szel
-áma2szív
-áma2sz1odv
-áma2sz1ü2
-ám1atl
-á2m1att
-á2m1aty
-ám1aud
-ám1a2zo
-ámá2c
-ám1áf
-á2m1ág
-ám1álla
-ám1állo
-ámán1n
-ámán1tr
-á2m1á2rak
-ám1á2ram
-á2m1áras
-á2m1á2rá
-á2m1árb
-á2m1á2ri
-á2m1árn
-á2m1á2ro
-á2m1árr
-á2m1á2ru
-ám1ásv
-á2m1átb
-ám1á2t1e
-á2m1áti
-á2m1átm
-ám1á2zó
-ám1bl
-ám1dr
-á2m1e2b
-á2m1ej
-á2m1ela
-ám1elá
-ám1e2lem
-ám1elé
-á2m1elh
-ám1elí
-á2m1elj
-ám1elk
-á2m1elm
-ám1elo
-á2m1e2lő
-ám1els
-ám1elt
-ám1elü
-ám1elv
-á2m1e2m
-á2m1erd
-ám1e2rek
-á2m1erk
-á2m1e2ro
-áme2rők
-áme2rőt
-áme2rőv
-ám1e2se
-ám1ess
-ám1esz
-áme2t
-á2m1eti
-á2m1etű
-á2m1ev
-á2m1ex
-á2m1ez
-ám1éke
-á2m1é2le
-á2m1ép
-á2m1érc
-á2m1érd
-á2m1értel
-á2m1étk
-ám1fr
-ám1gr
-ámi2ab
-ámi2al
-ámi2am
-á2mide
-á2m1idé
-ám1i2dő
-á2m1iga
-á2m1igá
-á2m1igé
-á2m1ill
-á2mimá
-á2mimm
-á2m1imp
-á2m1ind
-á2m1inf
-á2m1ing
-á2m1inte
-á2m1inté
-á2m1inv
-á2m1i2pa
-á2m1irá
-á2m1iro
-á2m1irt
-á2m1isk
-á2m1ism
-ám1i2szá
-á2m1i2z
-ám1íg
-á2m1íj
-á2m1ír
-á2m1í2v
-ám1íz
-ám1kl
-ám1kr
-ám1kv
-ámla3t2
-á2m1ob
-á2m1of
-á2m1oká
-á2m1okl
-á2m1okm
-á2m1okta
-ámo2lyas
-á2m1op
-ámo2r1á2l
-ámo2ris
-ámo2r1odv
-ámo2sas
-ámos3s
-ám1osto
-á2m1osz
-á2m1ov
-á2m1ox
-ám1ó2r
-ám1ö2k
-ám1öl
-ám1ön
-ám1ör
-ám1ös
-ám1öt
-ám1öv
-ám1ö2z
-ám1ő2r
-ám1ő2s
-ám1őz
-ámpa1p2
-ám1p2l
-ám1p2r
-ám1p2s
-ám1sk
-ám1sm
-ám1sn
-ám1sp
-ám1st
-ám1sz2
-ám1t2r
-á2m1ud
-á2m1ug
-á2m1uj
-á2m1und
-á2muni
-á2m1u2r
-á2m1utá
-á2m1új
-ám1üd
-ám1üg
-ám1ü2l
-ám1ür
-ám1üt
-ám1üv
-ám1üz
-á3műt
-ám1ű2z
-ámva2s1u2
-á2n1abl
-á2n1a2cé
-án1ach
-án1ada
-ánae2
-án1afr
-án1agya
-án1ajt
-á2n1aká
-á2n1akc
-á2n1akr
-á2n1a2la
-án1alk
-á2n1all
-á2n1anó
-án1anya
-á2n1a2o
-ána2p
-án1apa
-ánap1i
-án1ara
-á2n1arc
-án1assz
-ána2t1ér.
-ána2tol
-ána2tor
-ána2t1ű
-á2n1a2u
-án1ava
-án1ábr
-á2n1ág
-á2n1áll
-án1ár.
-án1árad
-án1á2ri
-án1árm
-án1árn
-án1áro
-án1áru
-án1ásv
-áná2t1a
-áná2t1á
-á2n1á2z
-án1bl
-án1br
-án2cac
-án2c1ad
-án2caj
-án2cal
-án2c1a2n
-án2car
-án2c1as
-án2cat
-án2c1au
-án2c1ál
-án2c1á2ro
-án2cás
-án2c1ed
-án2c1e2g
-ánce2l
-ánc1ele
-án2c1elt
-án2c1er
-án2c1e2s
-án2c1et
-án2cez
-ánc1éhe
-ánc1é2ne
-án2c1ér.
-án2c3h
-án2c1ill
-án2cim
-ánci2p
-ánc1ipa
-án2c1ir
-án2c1i2s
-án2c1ó2
-án2c1ö2
-án2cő
-áncs1an
-ánc3sás
-án2c3seb
-áncs1es
-ánc3spo
-ánc3sza
-án2cü
-án2cz
-áne2d
-án1edé
-á2n1ef
-á2n1e2g
-á2n1e2l
-án1emb
-án1e2mi
-án1eml
-án1e2mu
-á2n1en
-á2n1e2p
-án1es
-á2n1e2t
-án1e2u
-á2n1ex
-án1ez
-á2n1é2d
-á2n1é2g
-á2n1ék.
-á2n1ékn
-án1éks
-á2n1é2l
-á2n1é2ne
-án1épí
-án1épü
-á2n1ér.
-á2n1érc
-á2nérd
-á2n1éré
-á2n1érl
-án1éte
-á2névad
-á2n1éve
-á2n1é2vé
-án1f2r
-án2gab
-án2g1a2r
-án2g1ára
-ángás1s
-án2g1át
-án2ged
-án2g1el
-ánge2s
-án2g1ér.
-án2g1é2s
-áng3g
-án2g1it
-án2g1iv
-án2gí
-án2g1osz
-án2gőr
-án2g1us
-án2gü
-1ángy.
-án2gyas
-á2n1i2d
-á2n1if
-á2n1i2ga
-án1igé
-áni2k1a
-áni2k1á
-áni2ke
-án1ill
-á2n1im
-án1ind
-án1inn
-á2n1i2p
-á2nirr
-án1irt
-án1isk
-án1ism
-á2n1i2sz
-áni2tá
-áni2t1e2
-áni2t1í
-áni2tol
-áni2t1or
-án1izo
-án1íg
-án1ív
-án1íz
-án2kaj
-ánk1aro
-án2kern
-án1k2li
-án1k2lo
-án1klu
-án1k2rá
-án3nye
-án3nyí
-án3nyo
-án3nyu
-á2n1o2b
-á2n1okir
-á2n1okta
-á2n1o2ku
-án1old
-án1oli
-á3nom
-áno2n1i2m
-á2n1o2r
-án1oszl
-án1ott
-á2n1ox
-án1óri
-án1ök
-á2n1öl
-án1öm
-á2n1ön
-á2n1ör
-á2n1ös
-á2n1öt
-án1övö
-á2n1őr
-án1ő2s
-á2n1ő2z
-án1pl
-án1pr
-án2ses
-án2s1ér
-án2sis
-án2siz
-án1s2pe
-án1s2pi
-ánst2
-án1str
-áns1üld
-án1szl
-ánt1acé
-ánt1a2ny
-án2taz
-án2t1á2g
-ántá2p
-án2t1árb
-án2t1ári
-án2t1ed
-ánt1eké
-ánt1elh
-án2tez
-ánt1éke
-án2térte
-án2tid
-án2t1ipa
-ánt1ist
-án2t1iz
-án2t1ív
-án2tök
-án2t1ös
-án1t2rak
-án1tran
-án2t1ü2l
-á2n1ud
-á2n1ug
-á2n1uj
-á2n1u2r
-á2n1u2t
-án1úr
-ánú2t
-án1útj
-á2n1úto
-án1útt
-án1ü2g
-án1ü2l
-án1ü2t
-án1ü2v
-án1ü2z
-án1űz
-ány1adás
-ány1a2dó
-ány1agg
-ány1akc
-ány1alap
-ány1alk
-ány1all
-ány1anya
-ány1anyá
-ány1apá
-ány1ara
-ány1ará
-ány1art
-ány1assz
-ány1aszt
-á2ny1á2l
-ány1á2ras
-á2ny1á2rá
-á2ny1árb
-ány1árc
-á2ny1árf
-ány1árh
-ány1árk
-á2ny1árn
-á2ny1á2ro
-á2ny1árr
-á2ny1árs
-á2ny1árt
-ány1áru
-ány1árú
-á2ny1átl
-á2ny1á2z
-ány1ed
-á2ny1e2g
-ányegyez1
-ány1el
-ánye2le
-á2ny1e2m
-ány1en
-á2ny1ep
-ány1eső
-ány1et
-ány1e2v
-á2ny1éd
-á2ny1ég
-á2nyéhe
-á2ny1é2j
-á2ny1é2k
-á2ny1él
-á2ny1é2ne
-ány1érc.
-ány1érre
-á2ny1érte
-á2ny1érté
-ányé2r1ü
-ány1érvé
-á2ny1és
-á2nyéte
-á2nyétk
-á2ny1étt
-á2nyéve
-ányfé2l1é2v
-á2ny1id
-á2nyigé
-á2nyike
-á2ny1ikr
-á2nyirat
-á2nyiro
-á2nyisk
-á2ny1isz
-á2nyita
-ány1í2ró
-á2ny1oml
-á2ny1ont
-á2ny1o2r
-á2nyosz
-ány1ök
-ány1ö2r
-á2ny1ös
-ány1öz
-á2ny1ő2
-ány1tr
-á2nyug
-á2ny1ur
-ány1ut
-á2nyúto
-á2ny1ü2
-á2ny1ű2
-án2zál
-á1o
-áo2cs
-áo2ká
-áo2ko
-áo2mo
-áo2pe
-áo2so
-áo2szan
-áo2sz1e
-áo2szis
-áo2sziv
-áo2szú
-á1ó
-áó2ha
-áó2va
-á1ö
-áö2le
-áö2mö
-áö2re
-áö2rö
-á1ő
-áő2sz
-á2p1a2dot
-ápa1tr
-ápa3u2
-á2p1ág
-áp1áll
-áp1áta
-áp1dr
-áp1eg
-áp1e2l
-áp1e2m
-ápe2n
-á2p1e2s
-áp1e2t
-á2p1ég
-áp1é2te
-ápi2ac
-ápi2av
-á2p1im
-áp1inj
-áp1int
-ápi2t
-á2p1ita
-á2p1ín
-á2poll
-ápo2r1e
-áp1őr
-áp2ro
-áp1t2r
-á2p1ug
-á2p1u2t
-á2p1úr
-áp1üg
-áp1üz
-á2r1abl
-á2r1abr
-á2r1abs
-ár1adag
-á2radata
-á2radatá
-á2radatb
-1áradaté
-á2radatn
-á2radato
-1á2radatr
-á2radatt
-ár1a2gá
-á2r1ajk
-á2r1a2kad
-á2r1a2kas
-á2r1akc
-á2r1akna.
-á2raknát
-á2r1akt.
-ár1akti
-ár1aktí
-ár1alá
-á2r1alj.
-á2r1alja.
-á2raljak
-á2r1aljá
-ár1alk
-ár1all
-á2r1alm
-ár1alt
-á2r1alv
-1á2rama.
-1áramai
-1á2ramá
-ára2mál
-ára2m1el
-ára2m1érté
-1á2rami
-ára2m1in
-1á2ramkö
-1á2ramok
-1á2ramol
-1á2ramot
-1á2rams
-1á2ramu
-1á2ramú
-ár1ana
-ár1ang
-ár1a2no
-á2r1ant
-ár1a2pá
-ár1a2pó
-ár1aps
-á2r1a2rá
-á2r1arc
-ár1a2ri
-á2r1asp
-ára2taj
-ára2tal
-ára2tav
-ára2tál
-ára2t1inf
-ár1atlé
-ára2t1ü2
-ár1aty
-á2r1ábr
-árá2c
-árá2g
-ár1ága
-ár1ágr
-ár1ágy
-ár1á2lo
-á2r1á2p
-ár1ár.
-á2r1á2rak
-á2r1á2rá
-á2r1árb
-á2r1árf
-á2r1á2ri
-á2r1árk
-á2r1á2ro
-á2r1árr
-á2r1árt
-ár1á2ru
-ár1árú
-ár1árv
-á2r1ásás
-árá2szó
-á2r1á2ta
-árát1a2d
-á2r1átá
-ár1átb
-á2r1átc
-á2r1átd
-ár1á2t1e2
-á2r1áté
-á2r1átf
-á2r1áth
-á2r1á2ti
-á2r1átj
-á2r1átk
-á2r1átm
-á2r1á2tö
-á2r1átr
-á2r1áts
-á2r1átt
-á2r1átú
-á2r1átv
-ár1bl
-1árboc
-ár1br
-ár2d1ál
-árd1ell
-árd1eme
-ár2d1é2n
-ár2d1őr
-ár1drá
-ár2dud
-áre2á
-ár1e2d
-á2r1e2g
-ár1ej
-á2r1e2l
-árelői3r
-áre2ma
-áre2mél
-áre2n
-ár1ene
-ár1eng
-á2r1e2r
-ár1e2sé
-ár1e2ső
-ár1evé
-á2r1ex
-ár1ébr
-ár1éde
-á2r1é2g
-ár1éj.
-ár1é2je
-ár1éjs
-á2r1é2ke
-á2r1é2ké
-á2r1éks
-á2r1é2l
-á2r1é2ne
-á2r1ép
-á2r1éré
-á2r1é2ri
-ár1éss
-ár1ész
-á2rétk
-á2r1étr
-á2r1étt
-á2r1étv
-á2r1év.
-áré2vek
-á2r1évk
-á2r1évr
-ár1fl
-ár1f2r
-árgás1s
-ár1gl
-ár1g2r
-ár2gyárv
-ár2gyir
-ár2gyol
-ár2gyó
-á2r1i2de
-á2r1i2dé
-á3r2i3dőtl
-ár1ifj
-ári2g
-á2r1iga
-á2r1igá
-á2r1ige
-á2r1ill
-á2r1i2má
-ár1imb
-á2r1i2mi
-á2rinas
-á2r1inc
-á2r1ind
-á2r1inf
-á2r1ing
-ár1inn
-á2r1int
-á2r1inv
-á2rio
-á2r1i2paro
-ári2s1e
-ár1isko
-ár1iste
-ár1i2sza
-á2r1i2ta
-ár1i2zo
-á2r1ír
-ár1ív
-á2r1í2z
-árka1k2
-1árkádo
-ár1k2l
-1árkok
-ár1kré
-ár1k2v
-árnás3s
-árnya2n
-ár2ny1any
-árnye2l
-ár2ny1ele
-ár2nyelő
-ár2nyem
-ár2nyes
-ár2nyok
-ár2ny1ol
-ár2nyos
-ár2nyö
-ár2nyü
-ár1odv
-á2ro2ká
-áro2k1e
-á2rokha
-á2rokm
-áro2kol
-á2r1o2koz
-á2rokre
-1á2roks
-á2rokta
-á2r1olda
-ároma2
-áro2maj
-áro2mak
-áro2m1al
-áro2m1as
-áro2már
-áro2m1ok
-áro2m1os
-ár1opt
-á2r1o2r
-áro2sas
-áro2sál
-áros3s
-á2r1ostr
-á2r1osty
-ár1otth
-á2r1o2v
-áróé2r
-ár1ó2nét
-ár1ó2név
-áró1p2
-á2r1ó2rak
-áró2rák
-á2r1óri
-áró1ská
-áró1s2p
-ár1ö2b
-ár1öc
-ár1ök
-á2r1ö2l
-á2r1ön
-ár1ör
-á2r1ös
-ár1öv
-á2r1ö2z
-ár1ő2r
-ár1ő2s
-1árpa.
-ár1pl
-ár1p2r
-ár1p2s
-ár2s1ala
-árs1asz
-ár2s1ál
-ár2sed
-ár2s1e2l
-ár2sem
-ár2s1en
-ár2ses
-ár2s1é2g
-ár2sip
-ár2sirá
-árs1okt
-ár2s1ol
-ár2sóv
-ár2s1ön
-árs3s
-ár1s2tab
-ár2sut
-ársza2ké
-ár2s3zene
-ár2tado
-ár2t1aj
-1ártalo
-árta2n1á2s
-árt1ará
-árt1a2ris
-árta3u2
-árt1áll
-ár2t1árn
-ár2t1á2ru
-ár2t1e2g
-árt1elh
-árt1eli
-árt1ell
-árt1eln
-ár2t1elő
-árt1emb
-ár2t1erk
-árte2s
-árt1ese
-árt1esth
-árt1eti
-árt1éle
-ár2t1érd
-ár2t1érte
-ár2tid
-ár2tif
-ár2t1ins
-ár2t1int
-árt1izg
-ár2tít
-ár2t1okta
-ár2top
-árt1otth
-ár2t1ön
-ár2t1ös
-ár2t1ura
-árt1u2sz
-ár2t1ut
-1á2ru.
-1á2rua
-áruá2
-1á2ru1b2
-1á2ruc
-á2rud
-1áruda
-1árudá
-1á2rue
-1á2rué
-1á2ruf
-1árugy
-1á2rui
-á2ruj
-1árujá
-1á2rum
-1á2run.
-1á2runa
-1á2runá
-á2r1und
-á2runi
-1á2ruo
-1á2ru1p2
-á2rur
-1árura.
-ár1urá
-1á2rus
-árus3s
-á2rut
-1árut.
-áru2tal
-áru2tas
-1árute
-áru1tr
-áru2tun
-1á2ruü
-1á2ruv
-ár1u2z
-1á2rúé
-1á2rúk
-ár1úré
-ár1úrf
-ár1úsz
-á2r1úta
-á2r1útb
-á2r1úté
-á2r1úth
-á2r1ú2ti
-á2r1útj
-ár1útl
-á2r1útn
-á2r1ú2to
-á2r1útr
-ár1úts
-á2r1útt
-ár1ü2g
-ár1ü2l
-ár1ün
-ár1ür
-ár1ü2s
-ár1üt
-ár1ü2v
-ár1üz
-ár1űr
-ár1ű2z
-1árvác
-ása2b
-á2s1abl
-ás1abo
-ás1a2dat
-á2s1a2dá
-ás1a2do
-á2s1a2dó
-á2s1a2já
-ás1ajtó
-á2s1a2kar
-á2s1akc
-á2s1akv
-ás1a2la
-ás1alg
-ás1a2li
-ás1alj
-ás1alk
-ás1all
-ás1alm
-á2s1alt
-á2s1amb
-ása2n
-á2s1ana
-á2s1anó
-á2s1ant
-á2s1any
-ás1a2pá
-ás1app
-ás1apu
-ás1a2ra
-ás1a2rán
-á2s1arc
-á2s1aré
-á2s1a2ri
-ás1art
-ás1arz
-ás1asp
-á2sass
-1á2satá
-á2s1atl
-á2sato
-ás1aty
-á2s1a2u
-á2s1azo
-á2sábé
-á2s1ábr
-ásá2gai
-á2s1ágb
-á2s1á2gig
-á2s1ágk
-ás1ágn
-á2s1á2gú
-á2s1ál
-á2s1á2p
-ás1áras
-ásá2rét
-ásáró2
-ásá2rón
-1á2sásb
-1á2sási
-1ásásk
-ás1ásv
-ás1á2ta
-á2s1átá
-ás1áté
-ás1áth
-ás1áti
-ás1átj
-ás1átk
-á2s1átl
-á2s1átr
-ás1áts
-ás1átt
-ás1átv
-á2s1á2z
-ás1bl
-ás1br
-áscsa2p1á2
-ás1d2r
-ás1e2b
-á2s1e2d
-á2s1ef
-ás1e2gy
-á2s1e2l
-á2s1e2m
-á2s1e2n
-ás1epi
-ás1erk
-ás1erő
-á2s1e2s
-á2s1e2t
-ás1e2v
-ás1ex
-ás1ez
-á2s1é2g
-á2s1éhe
-á2s1éj
-á2s1é2k
-á2s1é2l
-á2s1é2ne
-á2s1ép
-á2s1ér.
-á2s1érd
-á2s1é2re
-á2s1é2ré
-á2s1é2ri
-á2s1érl
-á2s1érs
-á2s1érte
-á2s1érté
-á2s1értő
-á2s1érv
-á2s1é2s
-á2s1é2te
-ás1étk
-ás1étt
-á2s1é2ve
-ás1fl
-ás1fr
-ás1gl
-ás1gr
-á2s1i2d
-á2s1if
-ási2g
-ás1iga
-ás1ige
-ási2k1e
-á2s1ill
-á2s1imá
-ás1imp
-ás1ind
-ás1inf
-á2s1ing
-á2s1ini
-á2s1int
-ás1inv
-á2s1i2p
-á2s1i2rat
-á2s1i2rá
-ás1iro
-ás1irt
-á2s1isk
-á2s1ism
-ás1ist
-ás1i2sz
-ás1ita
-á2s1iz
-ás1íg
-á2s1íj
-ás1íns
-ásí2r
-ás1írá
-ás1író
-á2s1í2v
-á2s1í2z
-ás1kl
-ás1k2r
-ás1kv
-1ásnu
-á2s1ob
-ásoda2
-áso2d1al
-áso2d1an
-áso2d1as
-áso2dau
-áso2d1ál
-ás1okl
-ás1okm
-ás1okta
-ás1oldó
-ás1oli
-á2s1ont
-á2s1op
-ás1o2rá
-á2s1org
-á2sori
-á2s1ork
-ás1orr
-á2s1ors
-á2s1orv
-ás1osz
-á2s1o2v
-1á2sób
-1á2sóé
-1á2sóg
-1á2sói
-1á2sój
-1á2sók
-1á2són
-ásó1p2
-á2sór
-ás1ó2rá
-ás1óri
-1ásóró
-á2sós
-ás1ó2sá
-1á2sót
-á2sóv
-á2s1ö2k
-ás1ö2l
-ás1ön
-á2s1ö2r
-á2s1ös
-ás1ö2v
-á2s1ö2z
-ás1ő2r
-ás1ő2s
-á1spic
-ás1p2l
-á1s2pór
-ásp2r
-ás1ps
-ás1s2k
-ás1s2p
-ás1sr
-ás1s2t
-ássz2
-ás3szab
-ás3szag
-ás3szaka
-ás3szaké
-ás3száj
-ás3szám
-ás3száz
-ás3sze
-ás3szél
-ás3szf
-ás3szi
-ás3szí
-ás3szk
-ás3szoc
-ás3szok
-ás3szol
-ás3szor
-ás3szó
-ás3szö
-ás3szt
-ás3szú
-ás3szű
-ás2teg
-ást1elem
-ás2tir
-ás2t1ös
-ás1t2re
-ás1tri
-ás1tróf
-á2s1ud
-á2s1uj
-á2s1u2r
-á2s1u2s
-ásu2t
-ás1uta
-á2s1utá
-ás1utó
-á2s1u2z
-ás1úr.
-ás1úrn
-ás1ú2sz
-ás1úti
-ás1úto
-ás1üd
-á2s1üg
-ás1üld
-ás1üle
-á2s1ün
-á2s1ür
-ás1ü2ve
-á2s1üz
-ás1űr
-ás1ű2z
-á2s3zac
-á2sz1a2d
-ász1aga
-ász1agá
-á2sz1agy
-á2szaj
-á2sz1akc
-ász1a2kol
-á2sz1akt
-ász1ale
-á2sz1alk
-ásza2n
-á2szana
-á2sz1ant
-á2sz1any
-á2sz1ap
-ásza2s
-ász1asz
-ásza2t1e
-á2sz1au
-ás3zavar
-ász1ágg
-ász1ágy
-ász1á2lo
-ás3záp
-ászá2r1as
-ász1á2rih
-á2sz1á2rú
-ászás1s
-á2száta
-á2sz1áz
-ász1e2b
-ászebé2
-ászeb1éde
-ász1e2gé
-ász1e2gy
-ász1eln
-ász1elv
-ász1emb
-ás3zene
-ás3zené
-ász1eng
-ász1e2p
-á2sz1erd
-á2sz1e2ré
-á2sz1e2s
-ász1e2t
-ász1e2v
-ász1ex
-á2sz1éj
-á2sz1ékb
-á2sz1é2l
-á2sz1é2ne
-á2sz1ép
-ász1éré
-á2sz1éte
-á2sz1étt
-á2sz1éve
-á2szid
-á2szif
-á2sz1ill
-á2szind
-ász1ing
-ászi2p
-á2sz1ipa
-á2sziro
-á2sz1isk
-á2sz1ism
-ász1ist
-ász1ita
-á2sziz
-á2szír
-ász1k2
-1ászkái
-á2szokl
-á2sz1okm
-ász1ors
-á2sz1osz
-ászó1s2p
-á2sz1ö2b
-ászö2l
-ász1ölt
-á2sz1ö2r
-á2sz1ös
-ász1övé
-ász1őr
-ász1ő2s
-ász3sa
-ás3zsu
-ászt2
-ász1tr
-á2szuni
-á2szur
-á2szut
-ász1ú2s
-á2sz1ü2g
-á2sz1ün
-á2sz1ü2z
-ász1z
-át1abr
-át1a2já
-át1ajk
-át1ajt
-áta1kré
-á2t1akt.
-á2t1akto
-át1alh
-á2t1alja
-á2t1alm
-át1als
-át1a2lu
-át1alvá
-á2t1a2ra
-á2t1ará
-á2t1arc
-át1arz
-áta2sá
-át1aut
-át1azo
-átá2c
-át1ág.
-át1ál
-átá2p
-át1ápo
-á2t1á2rad
-á2t1á2rai
-át1áram
-á2t1á2rá
-á2t1árb
-á2t1árn
-á2t1á2ro
-á2t1árt
-á2t1á2ru
-1á2t1ásás
-átá2s3z
-á2t1átf
-á2t1átu
-át1átv
-át1bl
-át1br
-1átbu
-át1dr
-át1e2c
-át1ej
-át1ell
-át1eln
-át1elv
-á2t1emb
-át1eml
-át1eng
-áte2rá
-áteri2
-áte2rik
-át1erő
-át1ex
-át1é2d
-átée2
-áté2g
-át1ége
-át1égé
-áté2kaj
-áté2k1a2l
-áté2kas
-áté2ke
-áték1em
-áték1es
-áté2kol
-áté2k1ü
-át1é2l
-áté2p
-á2t1érb
-á2t1é2ri
-á2t1érr
-á2t1érz
-áté2t1á2
-1átfés
-át1fr
-át1gr
-át2hi.
-át2hia
-1áthid
-áti2ag
-áti2al
-áti2d
-áti2g
-á2t1igé
-át1ill
-á2t1ing
-át1i2pa
-á2t1irá
-át1isk
-át1ist
-á2t1i2ta
-á2t1izé
-á2t1izm
-á2t1i2zo
-át1íg
-á2t1í2r
-át1í2v
-1átkel
-át1kl
-át1k2r
-átle2g1
-átlege2
-átműt2r
-át1oj
-áto2kol
-át1okol.
-át1o2koz
-át1okta
-2átolj
-2átolt
-át1oml
-át1ont
-át1op
-áto2ran
-áto2ras
-áto2rác
-áto2rál
-áto2re
-áto2ris
-áto2r1ol
-át1orzá
-á2t1o2x
-átói2ko
-átó1p2
-át1óri
-át1öb
-átö2l
-át1ölé
-át1öml
-át1ön
-át1öt
-á2t1ö2v
-át1ö2z
-át1ő2r
-át1pl
-át1pr
-át1ps
-át2ril
-át1sk
-át1sl
-át1sm
-át1sp
-át1sr
-át1st
-1átszű
-1átteki
-át3t2é
-át1t2r
-á2t1udv
-á2t1ug
-á2t1uh
-á2t1uj
-átu2min
-átu2n
-á2t1u2r
-átu2sze
-á2t1u2t
-át1új
-á2t1úr.
-á2t1úrb
-á2t1úrh
-át1úri
-á2t1úrn
-á2t1ú2ro
-á2t1úrr
-á2t1ú2s
-á2t1üg
-át1ül
-á2t1üt
-á2t1ü2v
-át1űr
-1átvár
-1átvev
-á1u
-áu2ga
-áu2go
-áu2ná
-áu2no
-áu2nó
-áu2nu
-áu2sz
-áu2ta
-áu2tá
-á1ú
-áú2sz
-á1ü
-áü2ge
-áü2gy
-áü2le
-áü2lé
-áü2lö
-áü2lő
-áü2lü
-áü2rí
-áü2té
-áü2ti
-áü2tö
-áü2tő
-áü2tü
-áü2vö
-á1ű
-áv1adm
-á2v1ajk
-áv1akt
-áv1alk
-áv1alt
-áv1asp
-áva1st
-áva1sz2
-áva1t2
-á2v1au
-áv1azo
-áv1áls
-áv1áte
-áv1átf
-á2v1áth
-á2v1átj
-á2v1átk
-á2v1átu
-ávegész1
-á2v1e2l
-ável1é
-áv1é2de
-ávé1dr
-á2v1é2ri
-á2v1érte
-á2v1érté
-áv1fr
-á2v1iga
-á2v1igé
-áv1ind
-á2v1inf
-á2v1ing
-á2v1int
-á2v1i2rá
-á2v1iro
-á2v1i2si
-áv1isk
-áv1ism
-áv1izm
-áv1izo
-áv1ír
-á2v1ob
-á2v1olv
-á2v1op
-á2v1osz
-áv1órá
-áv1ör
-áv1ös
-áv1öv
-áv1őr
-áv1pr
-áv1sk
-áv1sp
-áv1st
-áv1tr
-á2v1ug
-á2v1ur
-á2v1ú2sz
-ávú2t
-á2v1úti
-á2v1úto
-áv1üg
-áv1ü2z
-á2z1abl
-áz1abs
-áza2dal
-áza2d1e2
-áza2dott
-áza2dü
-áz1ajt
-áz1akc
-á2z1a2kó
-á2z1akt.
-á2z1akta
-áz1aktá
-á2z1aktu
-áz1a2lap
-á2z1a2le
-á2z1alk
-áza2n
-á2z1ana
-á2z1ano
-á2z1any
-á2z1a2p
-áz1a2rá
-áz1arc
-áz1arm
-á2z1assz
-á2z1aszt
-áza2t1a2l
-áza2tan
-ázate2
-áza2t1el
-áza2t1ér.
-áza2t1érv
-áza2tés
-áza2tik
-áza2tí
-áz1aty
-á2z1a2u
-á2z1á2g
-á2z1á2l
-á2z1á2rai
-á2z1á2rak
-á2z1á2ram
-á2z1á2ras
-á2z1á2rat
-ázá2rár
-ázá2rát
-á2z1árb
-á2z1árc
-á2z1árd
-á2z1á2ré
-áz1árf
-á2z1á2ri
-á2z1árjáb
-á2z1árjáv
-á2z1árka
-á2z1á2rokk
-á2z1á2rokr
-á2z1árp
-á2z1árrá
-áz1á2runkn
-áz1á2runkr
-ázá3rus.
-ázás3s
-á2z1á2ta
-á2z1á2t1á
-áz1átb
-á2z1á2t1e2
-á2z1áté
-áz1áth
-á2z1átr
-áz1áts
-á2z1átü
-á2z1áz
-áz1bl
-áz1d2r
-áz1ef
-áz1e2g
-áz1e2m
-áz1ep
-áz1e2r
-áz1e2s
-áz1e2t
-áz1ex
-áz1e2z
-á2z1ég
-á2z1é2l
-á2z1é2p
-á2z1ér.
-á2z1érő
-á2z1érte
-á2z1érté
-á2z1értő
-á2z1érz
-á2z1é2te
-á2z1éve
-áz1évi
-áz1fl
-áz1fr
-áz1g2r
-á2z1i2d
-á2z1igé
-á2z1i2kon
-á2z1ill
-á2z1imá
-á2z1imi
-áz1imp
-á2z1inf
-á2z1ing
-á2z1inj
-á2z1int
-á2z1i2par
-áz1irá
-áz1iro
-ázi2s1e
-ázi2sir
-ázi2s1í2
-ázis3s
-ázi2s1ü
-ázi2szó
-ázi2z
-áz1izm
-áz1izo
-áz1íj
-áz1í2v
-áz1k2l
-áz1k2r
-á2z1olda
-á2zoltal
-á2z1oltó
-áz1oml
-á2z1ont
-á2z1o2r
-á2z1osz
-ázói2ko
-áz1ól.
-áz1ó2rá
-á2z1óri
-ázó1s2p
-ázó1sz
-áz1öb
-áz1öd
-áz1ö2l
-áz1öm
-áz1ön
-áz1ös
-áz1ö2t
-áz1ö2v
-áz1öz
-áz1ő2r
-áz1pl
-áz1p2r
-á2zsab
-á2zs1a2d
-á2zs1a2g
-ázs1ajt
-á2zs1akn
-ázs1ala
-ázs1alk
-ázs1all
-á2zs1amu
-ázs1any
-á2zsar
-ázs1ará
-á2zsat
-á2zs1au
-á2zs1áll
-á2z3sár.
-á2zse
-áz3seb
-ázs1e2c
-ázs1ef
-ázs1eg
-ázs1e2l
-ázs1e2m
-ázs1es
-á2zséj
-á2zs1é2k
-ázs1éne
-á2zs1ére
-á2zs1éri
-ázsé2t
-ázs1éte
-á2zsia
-á2zsiá
-á2zside
-ázsi2g
-á2zs1iga
-ázs1igá
-á2zsige
-á2zsimm
-á2zs1ing
-á2zs1int
-á2zsinv
-á2zsió
-á2zsip
-ázs1isk
-á2zs1ita
-á2zsiz
-á2zs1í2
-áz3sor
-áz3sóh
-ázs1ó2r
-á2zsö
-á2zs1ő2
-ázs1s
-á2zs1uj
-á2zs1ut
-á2zsúto
-á2zsü
-ázs1ü2v
-á2z3sű
-áz3szá
-ázs3zon
-áz1t2r
-á2z1ud
-á2z1ug
-á2z1uj
-á2z1u2r
-á2z1ut
-á2z1új
-á2z1úr
-á2z1ü2g
-ázü2l
-áz1ür
-áz1ü2z
-ázy1i
-áz3zse
-2b.
-1ba
-baa2d
-ba2b1a2dat
-ba2b1ajk
-baba1k2
-ba2b1ara
-ba2b1arc
-ba2b1aszt
-ba2b1ábr
-babá2c
-ba2b1ácsi
-ba2b1ág
-bab1áll
-ba2b1á2ro
-ba2bátv
-ba2b1érc
-babé2t
-bab1éte
-ba2bév
-ba2bik
-ba2b1i2na.
-ba2bola
-bab1old
-ba2b1ó2r
-ba2b1ult
-ba2bü
-ba2c3hu
-ba2csor
-2b1a2dag
-ba2das
-2b1a2dato
-ba2d1ár
-ba2deg
-ba2d1e2s
-ba2dog
-2badomá
-ba2dód
-ba2dói
-ba2dój
-ba2dók
-ba2dót
-ba2duj
-ba2dús
-baegész1
-bae2r
-baé2r
-ba1fl
-ba1f2r
-ba2gai
-ba1g2n
-ba1g2r
-2b1agy.
-bai2z
-ba2jag
-ba2j1á2ru
-ba2j1á2to
-2bajkú
-ba2j1ó2r
-ba2jü
-ba2jű
-ba2k1a2pó
-2bakas
-ba2kaszt
-2ba2kác
-bak1á2cs
-bak1áll
-2bakc
-ba2keg
-ba2k1ér.
-ba2k1éri
-bak1k
-ba1k2li
-ba1klu
-ba2k1o2v
-ba1k2ri
-bak1t2
-2b1aktu
-baku2r
-bak1ura
-bak1urá
-ba2ky
-2b1alany
-2b1a2lál
-ba2l1e2s
-ba2l1í
-bal2lak
-bal2lan
-bal2lál
-bal2l1ás
-bal2láz
-balle2
-bal2leg
-bal2l1el
-bal2lem
-bal2les
-bal2l1é2l
-bal2lin
-bal2lór
-bal2té
-bal2tiz
-ba2lud
-2b1amp
-2banal
-2b1a2nat
-banás3s
-ban2c1e
-banc3s
-2b1angy
-ban2kab
-ban2k1a2d
-ban2k1a2l
-ban2kar
-banke2
-ban2ker
-ban2kép
-ban2kérd
-ban2kir
-ban2kol
-banku2
-ban2kut
-ba2nyó
-bao2k
-bao2l
-baó2r
-ba1p2l
-ba1pro
-2b1arc.
-2b1arcé
-2b1arcn
-2b1arco
-2b1arcr
-bar2csad
-bar2csal
-bar2csan
-bar2csö
-2b1arcú
-2b1argu
-baro2ma
-2b1arté
-baság1g
-ba2seb
-ba1slá
-ba1s2m
-ba1sni
-2b1aspe
-ba1s2pó
-bas3sze
-ba1s2ta
-ba1s2tá
-ba2t1esti
-ba1t2rá
-ba1tre
-ba1tré
-ba2ud
-2b1a2ul
-bau2r
-2b1a2vat
-ba1yi
-1bá
-bá2bal
-bá2b1ass
-bá2bál
-bá2b1es
-bá2bik
-bá2bö
-bá2b1ü
-bá2csor
-bá2csü
-2b1á2ga
-b1á2gú
-bá2gyal
-bá2gyar
-bá2gyott
-bá2gyö
-bá2gyú
-bá2j1e2
-báj2n1á
-bá2j1ó2
-bá2j1ö2
-báj2t1a2k
-bá2jü
-bákos1
-bá2laj
-bá2l1ap
-bá2l1e2
-bálé2
-bá2l1éj
-bá2lid
-bá2l1ing
-bá2l1i2o
-bál2is
-2b1állí
-2b1állo
-2b1állv
-2bálm
-bá2lö
-bá2lü
-bá2lyad
-bá2ly1al
-bá2ly1a2n
-bá2ly1á2z
-báni2as
-bán2ré
-bánya2ié
-bá2po
-2b1á2rad
-2b1á2rai
-bá2r1aj
-2b1á2ram
-bá2rap
-bá2ras
-2bá2ra2t
-2b1á2ráb
-bá2rág
-bá2rár
-bá2r1ás
-2b1á2rát
-bár2das
-bár2d1á
-bár2de
-bá2r1e
-bá2rén
-2b1á2riá
-bár1i2o
-bá2r1i2p
-bá2rí
-2b1árny
-bá2r1ó2né.
-2báru.
-2báruf
-2b1á2rug
-2b1á2ruh
-2b1áruj
-2b1á2ruk
-2b1árur
-bár1u2ra.
-2bárus
-2b1árut
-2báruv
-2bárú
-bá2rúr
-bá2rü
-bá2s1á2ré
-bá2se
-bá2sis
-bá2sz1ak
-bá2szan
-bá2szas
-bá2sz1ál
-bá2sz1á2ru
-bá2sze
-bá2szil
-bá2szip
-bá2szí
-bá2szö
-bá2szü
-bá2t1a2k
-bá2t1al
-bá2t1á2
-2b1á2t1e2
-bá2tö
-bá2tü
-bb1a2da
-bb1add
-bb1a2kas
-b2b1alk
-b2b1als
-b2b1alu
-b2b1alv
-b2b1a2ny
-b2b1ap
-b2b1a2ra
-bba2t
-b2b1au
-bbá2gyas
-b2b1áll
-bb1álm
-b2b1áp
-bb1árn
-bb1á2ru
-b2b1á2s
-b2b1át
-bb1dr
-bbe2g
-b2b1e2kén
-b2b1elv
-b2b1emb
-bb1eng
-bb1erj
-bb1ern
-bb1erő
-bb1e2rű
-bb1esté
-b2b1etn
-b2b1ex
-b2b1ég
-bb1él.
-bb1éle
-bb1élh
-bb1élj
-bb1éln
-bb1élt
-bb1é2lű
-bb1élv
-b2b1ép
-bb1érl
-b2b1érm
-b2b1érte
-b2b1érté
-bb1érv
-b2b1évi
-bb1fr
-bb1i2de
-b2b1iga
-bbigaz1
-bb1illa
-b2b1ind
-b2b1int
-b2b1inv
-bbi2tat
-b2b1itt
-b2b1í2r
-b2b1ív
-bb1kl
-bb1kr
-b2b1okt
-bb1oltá
-b2b1olv
-b2b1op
-bb1ott
-b2b1ób
-bb1ó2r
-b2b1ö2m
-bbö2r
-bb1örö
-b2b1ös
-bb1őri
-bb1őrz
-b2b1ő2s
-bb1pl
-bb1pr
-bb1sk
-bb1sp
-bb1st2
-bb1t2r
-b2b1ud
-b2b1u2g
-b2b1uj
-bbu2r
-bb1ura
-b2b1u2t
-bbúgás1
-b2b1új
-b2b1ú2s
-b2b1üg
-b2b1ür
-b2b1üz
-bb1ű2z
-bb2ví
-bc3sz
-bda2cs1a2pá
-bda1d2
-bda1p2
-bda1s2
-bdasz2
-bda1t2
-bdé2n
-bd2rá
-bd2ro
-bd2ró
-1be
-be2ac
-bea2d
-bea2j
-bea2k
-bea2l
-bea2n
-bea2r
-bea2s
-bea2t1e
-be2ati
-bea2tin
-be2atk
-be2atl
-bea2v
-beá2j
-beá2s
-beá2z
-be1bl
-be1b2r
-be2csar
-be2csár
-be2csért
-be2cs1é2te
-be2dén
-be2dz
-bee2l
-bee2s
-beé2r
-be1fl
-be1fr
-begés3s
-begész1
-be1g2r
-be2gyel
-b1egyl
-bei2g
-bei2s
-beí2r
-be2j1elt
-2bejt
-2b1e2ke.
-beke2csa
-2b1e2kétő
-be1k2ré
-be1kri
-be1kró
-be1k2v
-be2lál
-beleí2
-bel1els
-be2lemz
-bele1p2r
-belet2
-bele1tr
-be2l1é2k
-be2l1ér.
-be2l1é2ren
-be2l1érr
-be2lí
-be2lof
-be2löl
-2b1e2lőa
-be2lőr
-bel1p2
-2bemel
-2b1eml
-b1e2mus
-be2n1ál
-be2n1ék
-ben2n1a2
-ben2ná
-ben2n1e2r
-ben2nég
-be2ny1e2g
-beo2k
-beo2l
-beo2m
-beó2v
-beö2r
-be2pe.
-be2ped
-2b1e2pé
-be1p2l
-be1p2r
-be2r1ad
-ber1alá
-ber1all
-bera2n
-ber1any
-be2r1a2p
-be2r1a2r
-ber1ass
-be2r1a2t
-be2r1av
-be2raz
-be3rág
-ber1áll
-b1erdei
-2berdő
-ber1egé
-ber1egy
-be2r1e2ke.
-bere2k1eg
-be2r1ekék
-be2r1ell
-be2r1elm
-be2relődö
-be2r1előn
-be2r1e2mé
-be2r1eml
-be2r1e2pé
-be2r1e2r
-ber1e2szü
-be2r1e2tet
-be2rég
-be2r1ékk
-ber1éss
-ber1ingü
-be2rism
-be2r1ist
-ber1iszo
-ber1old
-be2ror
-ber1osz
-be2ról
-be2r1ó2r
-be2rő
-2b1erőd
-ber1ős.
-ber1ő2se
-ber1ő2si
-ber1ő2sü
-ber3s2
-berta2n1á2s
-be2r1ub
-be2r1un
-be2rur
-be2r1ut
-be2r1ü2g
-berü2l
-be2r1üld
-be2r1ülé
-be2r1ült
-be2sem
-2b1esél
-2b1e2sés
-be1ska
-be1ská
-be1s2l
-be1s2m
-2b1e2ső
-be1s2p2
-bessz1a
-bessz1á
-be1s2ta
-2beste
-2besté
-be1s2til
-be1sto
-2b1e2szet
-2b1e2szét
-b1eszm
-besz2t1a2
-besz2t1á
-beteg1ér.
-beté2t1elb
-beté2telk
-be1t2hi
-be1t2ra
-be1trá
-be1t2ré
-be1t2ro
-beu2g
-beu2t
-beü2t
-be2vező
-2b1e2vol
-2b1e2vő
-2b1ezr
-1bé
-2b1ébr
-bé2csú
-bé2d1as
-bé2d1á
-2bédé
-2bédh
-2bédj
-2bédl
-bé2d1o
-bé2dö
-2bédr
-2bédü
-2bédv
-bé2gő
-bék1alk
-2b1éksz
-bé2l1akt
-bé2l1a2n
-bé2l1a2p
-bé2l1a2r
-bé2lál
-bé2l1áto
-bé2l1á2z
-bé2l1ed
-bé2l1e2g
-bé2lek
-bé2l1e2r
-2b1é2let
-bé2l1é2j
-bé2liz
-bé2lí
-2bélj
-bé2l1o
-bé2ló
-bé2lö
-2b1é2lő
-bélt2
-bél1tr
-bé2lul
-bé2lú
-bé2ly1ec
-bé2l3yen
-bé2lyin
-bé2lyö
-bé2pí
-bé2pü
-2b1é2rai
-bé2r1aj
-bé2ral
-bé2r1a2n
-bé2rap
-bé2rar
-bé2rá
-2b1éráb
-2b1éráh
-2b1éráv
-2b1érde
-bé2reb
-bé2r1eleme
-bé2r1e2lemé
-bé2r1e2lemh
-bé2r1e2lemk
-bé2r1e2lemn
-bé2r1e2lemr
-bé2r1ell
-bé2relm
-bé2r1elői
-bé2r1eng
-bér1essz
-bé2r1esz
-bé2r1id
-bé2rir
-bé2rí
-b1érni
-bé2rö
-bér1s
-bért2
-2bértel
-2b1értés
-bér1tr
-bé2rut
-bé2rú
-bé2sz1a2
-bé2szá
-bé2sz1o
-béta1s
-2bétel
-bé1t2h
-2b1étk
-2b1étt
-2b1év.
-bé2vek
-2b1é2ven
-2b1é2ves
-bé2vet
-bé2vi.
-2b1évn
-bé2zsú
-bfej1els
-bfe2len
-bfé2n
-bf2la
-bf2rá
-bf2re
-bf2ri
-bf2ro
-bg2ra
-bg2rá
-bgyökö2
-bgyö2k1öl
-1bi
-bia2d
-bi2ae
-bi2ag
-bia2la
-bia2v
-bi1br
-bi1by
-bic3sz
-bida2
-bi2d1ad
-bi2d1al
-bi2deg
-bi2del
-2b1i2dő
-bi2ed
-bie2l
-bi1fr
-bi2gaz
-2b1i2gáj
-2bigén
-2b1i2hat
-bik1ala
-bi2k1ál
-bi2k1em
-bi2kik
-bi1klu
-bi2k1ő2
-bi1k2ro
-bik1s
-bil1ima
-bil1int
-bilis3s
-2billé
-2b1illő
-2billu
-bi2lü
-bi2ma.
-2b1i2mi
-2b1imp
-bi2nab
-2b1i2nad
-bi2naj
-2b1i2nat.
-bi2n1árb
-2b1indá
-bi2n1éte
-2b1inká
-bin3n
-bi2nü
-bi1ny
-bi2oa
-bi2oá
-bi2ob
-bi2oc
-bi2od
-bi2oe
-bi2oé
-bi2of
-bi2oge
-bi2ok
-bi2ol
-bi2om
-2b1i2on
-bi2or
-bió2r
-bi2par
-bi1p2l
-bi1pr
-2b1i2ram
-2b1i2rat
-2b1i2rán
-2birkái
-2birodá
-2b1irr
-2b1irtá
-2b1irtó
-bis2hi
-2b1i2si
-2bism
-bi2sö
-bi1s2p
-bis3s
-bi1s2to
-bit1ará
-bi2t1e2g
-bit1elh
-bit1elr
-bit1elt
-bite2r1a
-bi2t1ing
-bi2t1int
-bi2t1i2o
-bi2t1on
-bit1t2
-bit1ura
-bi2t1ut
-biú2s
-bi2var
-2b1i2vás
-1bí
-bí2ja
-bíróé2r
-bí2ve
-bí2vé
-bí2vű
-2b1í2zü
-bkés3s
-bk2li
-bk2lu
-bk2ra
-bk2rá
-bk2re
-bk2ré
-bk2ri
-bk2rí
-bk2ro
-bk2ró
-1b2labl
-blai2k
-blak1a2d
-bla2kal
-bla2k1an
-bla2k1átm
-bla2k1átt
-bla2kem
-bla2kik
-bla2k1ol
-bla2kü
-blap1e
-bla1p2l
-bla1s2t
-blás1s
-bl2be
-ble2r1i
-bles2
-ble2t1ak
-ble2t1a2n
-ble2t1á2
-ble2t1e2l
-ble2ter
-ble2tesz
-ble2tél
-ble2t1érd
-ble2t1étk
-bletigaz1
-ble2t1o
-ble2tó
-ble2t1ö2
-ble2tu
-ble2tüz
-bleü2
-bleves1s
-bl2he
-bli2af
-bli2as
-bli2of
-b1ljana
-bl2ne
-1b2lok
-blok2k1ö2
-blo2n1á
-blon3n
-b2l1őzé
-bl2re
-bl2rő
-bl2tő
-blu2esz
-1bo
-bo2aá
-bo2ab
-bo2ad
-bo2ae
-bo2af
-bo2ah
-bo2aj
-bo2am
-bo2ar
-bo2at
-bo2av
-bo2c1ak
-bo2ce
-bo2cé
-bo2c3h
-bo2csé
-bo1dy
-bo2ei
-bo1fl
-bo2g1a2k
-bo2g1a2t
-bo2g1á2c
-bogás1s
-bo2g1e
-bo2g1osz
-bogó2szá
-bo2gyo
-boka1p
-2b1o2kí
-b1o2koz
-bok2szak
-bok2szal
-bok2sz1ál
-bok2szel
-bokszé2
-bok2szél
-bok2sz1in
-bok2szó
-bok2sz1ő
-2b1okta
-2bolaj.
-bolás1s
-2b1oldó
-2b1o2lim
-bolo1g2
-bol2t1e
-bol2t1ö2
-bol2t1ü2
-2bolvas
-bona1
-bon1ava
-bon2can
-bon2c1e
-bon2ch
-2bond
-bo2n1e2
-bo2n1ér.
-bo2n1or
-bon2t1i
-bo2nü
-bo2og
-bo2ok
-bo2om
-bo2ot
-bo2pe
-bo2r1a2d
-bo2r1aka
-bor1akk
-bo2r1akv
-bo2r1a2l
-bora2n
-bor1any
-bo2rar
-bor1asz
-bor1atr
-bo2r1au
-bo2r1av
-bo2raz
-bor1ács
-bo2r1áll
-bo2r1áz
-bor1d2
-bo2re
-bor1e2c
-bor1el
-bor1e2r
-bor1es
-bor1f2
-borfi2úké
-bo2r1i2ko
-bo2r1il
-bo2r1ing
-bo2r1int
-bo2r1isk
-bo2r1iss
-bo2r1ist
-bo2r1itt
-bo2r1iz
-bor1k2
-2b1ornam
-bo2r1ond
-bo2r1ó2r
-bo2rö
-bo2rő
-2b1orr.
-2b1orrú
-bor2s1eprű
-bor2sors
-bor1str
-bor2sül
-bor2süt
-bor1tre
-bor1tré
-bo2rü
-borvíz1
-bor2z1á2rak
-bor2zsa
-bor2z3se
-2b1oszt
-bo2t1a2g
-bo2t1al
-bo2tar
-bo2tas
-bo2t1a2u
-bo2t1ác
-bo2tár
-bo2t1e2
-bo2t1il
-bot1inf
-bot1int
-bo2t1i2p
-bo2tí
-bo2t1ó2
-bo2tö
-bo2tur
-botú2
-bo2túr
-bo2tü
-bo2tű
-bo2ui
-bo2ul
-bo2ur
-bo1ya
-bo1yá
-bo1yé
-bo1yi
-bo1yo
-bo1yu
-bo2zar
-bo2zál
-bo2z1e2
-bo2zid
-bo2z1i2p
-bo2z1ir
-bo2zí
-bo2z1old
-bo2z3s
-bo2zü
-bo2zű
-1bó
-bóa2d
-bóá2g
-bóá2r
-bó2bé
-bó2cal
-bó2ch
-bó2cü
-bó1fl
-bó1kré
-bóli2a
-b1ólm
-bó1p2l
-bó1p2r
-bó2r1ad
-bó2r1an
-bó2rat
-2bórá
-bó2rás
-bór1ásv
-bó2reg
-bó2rel
-bó2r1in
-bó2riz
-bó2r1ol
-bóró2
-bó2rós
-bó2rö
-bórt2
-bó2rü
-bó1s2p
-bó1sz
-1bö
-bö2ch
-bö2lá
-2bölb
-böl2csü
-2b1ö2lér
-2bölhö
-2bölig
-2bölk
-b1ölkú
-2bölr
-2b1öltö
-2böltő
-bö2lú
-bö2lyökö
-b1öml
-bö2ná
-2b1önt
-bö2ra
-bö2r1e
-bö2ro
-2b1össz
-2b1ötl
-2b1öts
-bö2ve
-1bő
-bő2r1a2
-bő2r1á2
-bő2r1e2g
-bő2r1e2l
-bő2r1em
-bő2r1en
-bő2r1e2r
-bő2r1é2g
-bő2rék
-bő2r1és
-bő2ril
-bő2r1ing
-bő2rip
-bő2r1i2s
-bő2riz
-bőr1izg
-2bőrl
-bő2r1o2
-bőr1öl
-bő2rő
-bőrren2
-bőr1s2
-bő2r1u
-bő2rú
-bő2r1ü2g
-bő2r1ü2l
-2bősi
-bp2la
-bp2lá
-bp2le
-bp2re
-bp2ré
-bp2rí
-bp2ro
-b1proj
-bp2ró
-bra2k1á2
-bra2kös
-bra1p2
-1braty
-brá2nag
-brá2nas
-brá2n1át
-bránt2
-brá2sz1ál
-brá2sze
-b2ric
-bri2da
-bri2dá
-bri2der
-1b2rig
-bri2no
-bri2ód
-bri2óf
-bri2óm
-bri2tel
-b2rosú
-bró2m1a
-bró2me
-1b2rum
-bsé2g1el
-b1s2ká
-bs2lá
-bs2pe
-bs2pi
-bs2po
-bs2ta
-bs2tá
-bs2ti
-bs2tí
-bs2tú
-bszá2r1a2da
-bsz2f
-b1sz2k
-bsz2tá
-btermo1
-btermosz2
-bt2rá
-b1t2re
-bt2ré
-b1t2ri
-b1t2ro
-b1t2ró
-1bu
-bu2ch
-2b1udv
-bué2r
-bu2g1i2
-bu2il
-2b1ujj.
-2bujja.
-2bujjad
-buj2j1a2da
-2bujjai
-2bujjak
-2bujjam
-2bujjas
-2bujjat
-2b1ujjá
-2bujjb
-2bujjc
-2bujjd
-2bujje
-2bujjé
-2bujjf
-2bujjg
-2bujjh
-2bujji
-2bujjk
-2bujjl
-2bujjm
-2bujjn
-2b1ujjo
-2bujjp
-2bujjr
-2bujjs
-2bujjt
-2bujju
-2bujjú
-2bujjv
-buk2j1e
-bu2maj
-bu2mel
-bu2m1i2k
-bu2m1ina
-bu2mis
-bu2mol
-2b1ural
-b1urb
-2burn
-2b1u2rú
-bu2se
-bu2sin
-bu2sol
-bu1s2p
-bus3sze
-bu2szab
-busz1aj
-bu2szal
-bu2szas
-bu2sz1ál
-bu2sz1á2rak
-bu2sz1árn
-busz1en
-bu2sz1él
-bu2sz1é2p
-bu2szid
-bu2sz1il
-bu2szim
-bu2szin
-bu2szip
-bu2sziz
-buszí2
-busz1íj
-busz3s
-bu2szü
-1bú
-bú2jí
-2búr.
-2b1ú2ri
-2búrt
-2búsz
-bú2szá
-b1ú2ti
-b1útm
-1bü
-bü2dü
-bü2ge
-bü2gy
-bü2ku
-2b1üld
-bü2l1é2n
-bü2ne
-2bürü
-2b1ü2te
-2b1ü2té
-b1ü2tő
-2b1ü2ve
-bü2ze
-1bű
-bű2na
-bű2ná
-bű2nel
-bű2nem
-bű2nes
-bű2n1e2t
-bűn1n
-bű2no
-bű2nó
-bű2n1ő2
-bű2nu
-bű2nű
-bű2ri
-bű2v1e2
-bű2z1a2
-bű2z1á
-bű2zo
-bű2z1ő
-bű2z3s
-bvá2nyad
-bvá2nyí
-by2te
-2c.
-1ca
-2c1abl
-ca1b2r
-ca2cél
-ca2ch
-ca2dás
-2c1a2dó
-ca2es
-caéne2
-ca1fro
-2c1agg
-ca2gya
-cagy1a2d
-ca2gyu
-2c1ajk
-2c1a2kad
-ca2kác
-ca2k1áz
-2c1akc
-cak2kol
-cak2k1ö
-ca1kri
-cala2g1
-ca2lan
-ca2l1a2s
-2c1albu
-ca2l1este
-ca2l1é2l
-calé2t
-cal1éte
-ca2lim
-ca2l1ip
-cal1osz
-cal1p
-cal1s
-ca2lü
-ca1ly
-ca2nal
-ca2nar
-2c1a2ni
-can2ne
-caó2r
-ca2pó
-ca1p2ró
-ca1p2s
-ca2ran
-ca2rán
-2c1arc
-ca2ris
-ca1s2p
-2c1assz
-cast2
-ca1sto
-ca1str
-2c1aszt
-ca2tau
-ca2tem
-2c1atl
-c1a2uk
-cau2n
-ca2vat
-2c1a2zo
-1cá
-2c1ábr
-cá2ga
-cá2gú
-cá2gy
-cá2la
-c1állá
-2c1álm
-cá2ne
-cá2nét
-cá2nir
-cá3p2a3
-2c1á2po
-2c1á2rad
-2c1á2rak
-cá2r1as
-cá2ria
-cá2riá
-cá2r1i2n
-2cárk
-2c1árp
-2cáru.
-2c1á2ruh
-2cárus
-cá2sás
-2c1á2só
-2c1ásv
-2c1á2szai
-2c1á2szo
-2c1á2t1a2
-c1áth
-2c1á2t1i2
-2c1átm
-2c1átr
-2c1átt
-2c1á2tü
-2c1átv
-cb2lo
-cb2ra
-c2c1a2j
-c2c1ak
-cc1alb
-cc1a2ny
-c2c1a2r
-c2c1au
-c2c1ág
-c2c1ál
-cc1bl
-cc1ef
-c2c1elm
-c2c1ember
-c2c1ép
-c2c1ér.
-c2c1érte
-cc3he
-cc3hí
-c2c3ho
-cc3hő
-cc3hú
-c2c1i2m
-cci2na.
-cc1ing
-cci2óv
-cc1i2pa
-cc1iro
-c2c1i2z
-cc1ír
-cc1kl
-cc1k2r
-cc1oá
-c2c1ov
-cc1ön
-cc1ös
-cc1öz
-cc1pl
-cc1pr
-c2cs
-c3csap
-c3csar
-ccs1as
-c3csat
-ccs1ál
-c3csáp
-ccs1ás
-ccs1átl
-ccs1eg
-ccs1elem
-ccs1ell
-ccs1elv
-ccs1embe
-ccs1eml
-c3csep
-ccs1él
-ccs1érté
-ccs1iv
-c3csop
-ccs1ork
-cc3soro
-ccs1ö2l
-ccs1önt
-ccs1s
-ccs1ut
-c3csú
-c3csű
-cc3sza
-cc3szá
-ccs3zen
-cc3szó
-cc1új
-c2c1üg
-cc1ür
-cc3zá
-cc3ze
-cc3zs
-cda2l1é2
-cda2l1i
-cde2m1e2ké
-cde2m1el
-cd2ra
-cd2rá
-1ce
-cea2l
-ce2at
-ce2au
-ceá2r
-ce2béd
-ce1bl
-ce2ch
-cec3he
-2c1e2dz
-ce2gas
-ce2g1é2k
-cegés3s
-ce2gina
-ce2gor
-ce1g2rá
-ce2gu
-ce2gú
-c1egy.
-c1egyb
-ce2gyen
-c1e2gyi
-c1egym
-c1egyr
-2c1egys
-2c1e2ke.
-ce1kl
-2c1elad
-2c1e2lág
-cel1ér
-2c1elf
-2c1elha
-2c1eljá
-2c1e2los
-c1e2lőa
-2celődöt.
-2c1e2lőf
-2c1e2lőí
-c1e2lőő
-2c1első
-2c1eltá
-c1elto
-2c1elvá
-2c1e2melő
-2c1eml
-cenc1c
-cen2c1eg
-cen2c3s
-2c1eng
-cen2s1ég
-cen2tau
-ceo2l
-ceo2r
-2c1e2pe.
-2c1e2pi
-ce1p2r
-cep2sz1a2
-cep2sz1é2p
-cep2szi
-cep2t1a2
-cep2t1ér.
-cep2tim
-cep2t1ol
-2c1e2rej
-ce2róz
-2c1e2rő
-cer2t1a2
-certá2
-cer2tár
-cer2teg
-cer2t1e2l
-cer2t1emb
-cer2t1est
-cer2tél
-cer2t1én
-cer2t1ol
-cer2t1ö
-cer2tu
-certü2
-cer2t1üz
-ce2sem
-2c1e2sés
-2c1e2ső
-ces2t1é2j
-ces2t1ék
-ce1stra
-ce2t1e2g
-ce2t1essz
-ce2t1esz
-ce2t1é2t
-2ceth
-cet1ill
-ce2t1i2n
-ce2tiz
-2cetn
-2ceton
-ce1t2ra
-ce2t1us
-ce2tűd
-cetű2z
-ceü2t
-ce2vés
-ce2vő
-2c1e2zer
-2cezrede
-1cé
-2c1ébr
-cé2dél
-cé2g1a2
-cé2g1á2
-cé2g1eg
-cé2g1e2l
-cé2ge2r
-cég1ere
-cég1eré
-cé2g1esem
-cé2geté
-cé2gető
-cé2g1ék
-cé2gép
-2c1é2gés
-cég1g
-cé2g1i2d
-cég1iga
-cé2gigé
-cé2gim
-cé2gir
-cé2g1iz
-cégo2
-cé2g1ok
-cé2gol
-cé2gó
-cé2gö
-cé2g1u2
-cé2gú
-céha2
-cé2hal
-cé2han
-cé2har
-cé2hed
-cé2h1e2g
-cé2hir
-cé2hu
-cé2hú
-2c1éks
-cé2la
-cél1a2n
-cé3lap
-cél1a2r
-cé2láb
-cé2lál
-cé2l1á2r
-cé2l1á2t
-cé2le.
-cé2led
-cé2leg
-cé2lei
-cé2lek
-cé2l1e2l
-cé2lem
-cél1emb
-cé2len
-cé2l1er
-cé2l1e2s
-2c1é2let
-2c1é2lez
-cé2léb
-cé2l1é2k
-cé2lénk
-cé2lép
-cé2lére
-cé2lés
-cé2lim
-cé2lin
-cé2lir
-cé2l1is
-cé2liz
-cé2lí
-cé2ló
-cé2l1ö2
-cé2l1ő2
-célt2
-cél1tr
-célu2
-cé2l1ut
-cé2lü
-2c1é2lű
-cé2pí
-cé2pü
-cé2rag
-2c1érd
-2c1é2rés
-cé2rin
-2c1érint
-cé2ris
-cér1s
-2c1érté
-2c1értő.
-cé2rú
-2c1érz
-cés3s
-2c1észh
-2c1étk
-2c1étt
-2c1év.
-2c1évad
-2c1é2ve.
-2cévei
-2c1é2vek
-2c1é2ven
-2c1é2ves
-2c1é2vet
-2c1é2vét
-cé2vi.
-2c1évn
-2c1é2vü
-cf2ló
-cf2ra
-cf2ri
-cf2ro
-cg2ra
-cg2ri
-c2h
-1cha
-c3had
-2c3haj
-2cham
-2chang
-2c3harc
-2charm
-2chatá
-2c3hav
-1chá
-2c3hám
-c3hány
-c3ház
-ch1bl
-1che
-2c3heg
-2chev
-2c3hez
-1ché
-1chi
-2c3hib
-2c3hió
-2chitel
-2chitet
-c3hiú
-1chí
-1cho
-cho1d2
-2c3hor
-2c3hoss
-1chó
-1chö
-1chő
-ch1pr
-ch1sc
-ch1sp
-1chu
-chu2r
-2c3huz
-1chú
-1chü
-1chű
-1ci
-ci2aa
-ci2aá
-cia1b2
-ci2aba
-ci2abo
-ci2abr
-ci2ac
-ci2a1d2
-ci2ae
-ci2aé
-cia1f
-cia2fag
-ci2afr
-ci2a1g2
-ci2ah
-ci2aik
-ci2aí
-ci2aj
-ci2akar
-ci2akas
-ci2akén.
-ci2akó
-ci2ala
-ci2alá
-ci2ale
-ci2alé
-ci2alo
-ci2am
-ci2any
-ci2ao
-ci2aó
-ci2aö
-ci2aő
-ci2a1p2
-ci2ar
-ci2asza
-ci2aszá
-ci2aszé
-ci2aszo
-ci2aszó
-cia1t2
-ci2ata
-ci2atá
-ci2até
-ci2ato
-ci2atű
-ci2au2
-ci2aú
-ci2aü
-ci2aű
-ci2av
-ci2az
-ciá2lan
-ciá2nár
-ci2áó
-2c1i2deg
-ci2deo
-2c1i2dé
-2c1i2dom
-2c1i2dő
-cie2r
-2c1ifj
-2c1i2ga.
-2c1i2gaz
-ci2ge.
-ci1g2r
-ci2ker
-cikka2
-cik2kaj
-cik2kan
-cik2k1o
-ci1k2la
-2c1ikrá
-ci2l1á2t
-2cillu
-ci2mit
-2cimpu
-ci2n1al
-ci2n1árt
-cin1d2
-ci2n1e2re
-2cinf
-2c1inge
-2c1ingr
-ci2nim
-cin2kac
-cin2k1a2l
-cin2kért
-cin2kol
-cin2kors
-cin2kö
-ci2nö
-cin2tar
-cin2t1es
-cinus1s
-ci2nü
-2c1inv
-ci2od
-ci2of
-ci2og
-cio1gra
-ci2oi
-ci2ol
-ci3olo
-2c1i2onn
-ci2op
-cio2v
-ci2óa
-ci2óá
-ci2óc
-ci2ódar
-ci2óe
-ci2óg
-ci2óí
-ci2ókal
-ci2ókam
-ci2óká
-ci2óke
-ci2ó1kl
-ci2ókom
-ci2ókos
-ci2óku
-ci2ól
-ci2ómag
-ci2ómá
-ci2óné
-ci2óo
-ci2óó
-ci2óö
-ci2óő
-ci2ó1p
-ci2ósá
-ci2óse
-ció2s1ér
-ci2ó1s2ká
-ci2ószo
-ci2ótá
-ci2óú
-ci2óü
-ci2ózón
-ciő2r
-ci2rat
-2c1i2rán
-2c1i2rod
-2c1irt
-ci2si.
-2c1isko
-2c1ism
-2c1isp
-ci1stad
-ci2sz1i
-ci2t1aj
-citá2r
-cit1ár.
-cit1ára
-cit1áré
-cit1áro
-cit1érr
-ci2tik
-ci2t1ol
-ci1ty
-ciumi2
-ciu2min
-ciu2m1io
-ciumköz1
-ciu2t
-2c1i2vad
-2c1i2vás
-1cí
-cí2ja
-cí2jé
-cí2m1a2
-cí2m1á
-cí2m1e2l
-cí2m1é2l
-cí2mí
-cí2mo
-cí2mö
-cí2mő
-cí2mu
-cí2rá
-cí2ró
-cí2vá
-cí2ve
-cí2vé
-cí2zs
-cí2zü
-ckaka2
-c2k1alj
-c2k1arc
-cka2rom
-c2k1ág
-ck1áll
-c2k1árn
-c2k1e2g
-cke1p
-1cker.
-1ckerk
-1ckern
-cké2p1e2l
-c2k1é2ré
-c2k1érl
-c2k1érté
-ck1fl
-ck1fr
-ck1ill
-c2k1íz
-ck1kl
-ck1k2r
-ck2lu
-c2k1o2la
-ck1o2pe
-c2k1orro
-c2korru
-c2korrú
-1c2kosak
-c2k1ou
-c2k1öb
-ck1öss
-ck2reá
-c1k2ri
-c1k2rí
-ck1sp
-c2k1üg
-ck1ült
-c2k1üt
-c2k1ü2v
-ck1űr
-ck2va
-cli2s
-clu2b1a
-cmelo1
-cnya2k
-cnyol2c1an
-1co
-co2at
-co2áz
-co2be
-co2eu
-co2kar
-co2ká
-co2ke
-co2kél
-co2kép
-2c1o2kí
-2c1o2laj
-co2l1áro
-2c1olda
-2c1oldá
-2c1oldó
-co2le
-co2l1ibr
-co2li2m
-col1ima
-co2l1i2na.
-co2l1ind
-co2l1ing
-co2l1inu
-co2l1o2r
-2colvad
-2colvas
-comba2
-com2bal
-com2b1e2
-com2biz
-com2bol
-com2bór
-com2bö
-2c1oml
-co2ol
-2c1o2pe
-cop2f1ő
-co1py
-2c1orc
-2c1o2ri
-2c1orm
-c1o2rom
-2c1orro
-2c1orrú
-2corv
-2c1oskol
-co2s1o2ku
-cos3s
-cos3zs
-2c1oszt
-co2ul
-co2un
-co2uv
-co2vi
-1có
-c1ó2ni
-2c1ó2rá
-c1ó2ri
-có2vó
-1cö
-c1öltö
-c1ösv
-c1ösz
-c1ötb
-c1ö2t1e
-c1ö2té
-c1ötf
-c1öth
-c1ö2ti
-c1ötk
-c1ötm
-c1ötn
-c1ötr
-c1öts
-c1ött
-c1ö2tü
-c1öv.
-cö2zö
-1cő
-cő2rü
-cp2la
-cp2ra
-cp2re
-cp2ré
-cp2ri
-cp2ro
-cp2ró
-c2s
-1csa
-2csabl
-2cs1a2dat
-2cs1a2dá
-2cs1a2dó
-2cs1akc
-csa2lakj
-csa2lapú
-2csaláí
-2csalát
-2csalb
-2cs1alg
-2cs1alk
-cs1alle
-2cs1alm
-csa2lomb
-cs1amb
-2csant
-csa2pál
-2csapka
-2csapká
-csa2por
-2csapóká
-2csapókr
-2csapósab
-2cs1arc
-2csarg
-2csark
-2cs1arz
-2cs1ass
-csa2t1ó2r
-csavar1a2
-cs1azo
-1csá
-csá2be
-2csáf
-2cság
-cs1á2gak
-cs1á2gu
-2cs1árad
-2cs1á2rak
-2csáram
-2csárat
-csá2rát
-2cs1árny
-cs1á2ruk
-2cs1ásá
-2c3sási
-2cs1ásó
-2csátásás
-2csátf
-2csátm
-2csátr
-2csáv.
-2c3sávo
-cs1bl
-cs1br
-cs1d2r
-1cse
-2csebé
-cs1e2ce
-cse2csa
-2cs1e2dé
-2cs1edz
-cs1eff
-cs1e2ges
-2csegí
-2cs1e2ke.
-2cself
-2csellá
-2cselőí
-2cselta
-2cseltá
-2cselv.
-2c3sely
-2cs1ember
-2cs1e2mel
-2cseml
-2csemu
-csen2d1ő2
-cse2nis
-cse2n3yen
-2csenz
-cse1p2ré
-cse2rál
-cse2r1e2ped
-2cseró
-2cserő
-2cseső
-2cseszm
-cse2tüz
-2csevő
-2cs1ex
-1csé
-2cség
-c3ség.
-c3ségb
-c3ségg
-c3ségh
-c3ségi
-c3ségn
-c3ségr
-2cséhes
-2cséhs
-2cs1é2ka
-2cséks
-2cs1éle
-csé2m1a
-2csénekb
-2cséneke
-2cséneké
-2csénekk
-2csénekr
-2cséneks
-2csénekt
-2csénekü
-2csépí
-2csépü
-2csérde
-csé2résk
-2c3sérv.
-2csérvb
-2csérvh
-2csérvr
-2csérvv
-2csérz
-csé2sza
-csé2tab
-2csév.
-2csévek
-2csévn
-2csévr
-2csévv
-cs1fr
-cs1gl
-cs1gr
-1csi
-csiá2
-2csidő
-2csigé
-2csimí
-2csimog
-2csimpo
-2cs1i2na.
-2csinas
-2cs1ind
-2cs1inp
-2cs1inv
-2csiono
-2csipí
-2csiví
-2csivó
-1csí
-2csíki
-2c3sírb
-2c3sírj
-cs1í2ró
-2cs1í2v
-2csíze
-2csízl
-cs1ízn
-2csízt
-cs1ízü
-cska1s
-cskasz2
-cs1kl
-cs1kv
-c3slág
-1cso
-2cs1o2á
-2csobj
-cso2k1á
-2csokk.
-2csokoz
-2csolaj
-2csolda
-2csoldá
-2csoldó.
-2csoldók
-2csoldóm
-2csoldón
-2csoldór
-2csoldót
-2csoldóv
-2cs1oli
-2csolló
-2csolvas
-cso2mor
-cson2t1a2
-2csopc
-2cs1orc
-2csori
-2csork
-2c3sorv
-2csoszl
-2csoszt
-1csó
-cs1ódá
-csó2kes
-csó2k1ö2
-2cs1óné
-1csö
-2csökrü
-cs1öml
-csön3n
-2csör.
-c3söre
-2csössz
-2csöv.
-2csözön
-1cső
-3cső.
-3csőb
-csőé2h
-2csőrz
-cső2sz1á2ra
-cső2szék
-cső2sző
-3csőv
-c3s2pek
-cs1p2l
-csp2r
-cs1ps
-cs1sl
-cs1s2p
-cs1s2t
-cs3sz2
-cssza2kü
-c3s2tab
-cs2top
-cst2r
-c3stru
-1csu
-2csudv
-2csug
-2c3suho
-cs1ujj
-2cs1una
-2csuni
-2cs1ura
-2cs1u2rá
-cs1u2tas
-2cs1utá
-cs1utó
-1csú
-csú1p2
-2csútn
-1csü
-2csüd
-2csügé
-2csügy
-2cs1ünn
-cs1ü2te
-2c3süv
-2cs1üz
-1csű
-c4s3zac
-cs3zaj
-csza2ké
-cs3zam
-c3szál
-c3szám
-cs3záp
-cs3zát
-c3száz
-c3sz2c
-c3szer
-c3szé
-c3sz2f
-c3szi
-c3szí
-c3sz2l
-c3szob
-cs3zokn
-c3szol
-cs3zon
-c3szor
-cs3zón
-c3sző
-cs3zs
-csz2t
-cs3zug
-cs3zú
-c3szü
-c3szű
-c3sz2v
-ct2ra
-ct2re
-ct2ré
-ct2ri
-ct2ro
-ct2rü
-1cu
-cucci2
-cuc2cin
-cuko2r1a
-cula2te
-cu2lü
-2c1und
-2c1u2no
-2c1u2ra
-2c1u2tá
-1cú
-cú2jí
-c1úr.
-c1úrr
-c1ú2ti
-cú2to
-1cü
-cü2ge
-cü2gy
-2c1ü2lé
-cü2lő
-c1ünn
-cü2re
-cü2rí
-cü2rü
-cü2te
-cü2té
-cü2tő
-cü2ve
-cü2ze
-1cű
-cű2ző
-cva2nem
-cva2név
-cve2név
-cven3n
-c2z
-1cza
-cza2ib
-cza2ié
-cza2ih
-cza2ik
-cza2in
-cza2ir
-cza2it
-cza2iv
-1czá
-1cze
-2c3zen
-1czé
-c3zéh
-1czi
-1czí
-1czo
-1czó
-1czö
-1cző
-1czu
-1czú
-1czü
-1czű
-1czy
-2d.
-1da
-daa2d
-daát1
-2d1abla
-da2c1ir
-da2cz
-da2dag
-dad1ala
-2dadato
-2d1a2dó
-da1drá
-da1dro
-dae2r
-daé2d
-daé2r
-da1f2l
-da1f2r
-da2g1el
-dag3g
-2d1ahh
-da2ire
-2d1a2ján
-2d1ajt
-2d1a2kad
-daká2r
-2d1akkora
-d1akku
-da1kl
-da1k2ré
-da1k2ri
-2d1aktu
-dal1a2ga
-dal1ajt
-da2lakj
-da2l1akta
-da2l1aktá
-da2laku
-da2lakú
-2d1alakz
-da2l1a2l
-da2lapc
-da2lapk
-da2lapn
-da2lapr
-da2l1aps
-da2lapt
-2d1a2lapú
-da2lar
-da2l1asz
-da2latt
-da2l1á2g
-da2l1ál
-dal1á2rak
-dal1árá
-da2l1árb
-da2l1árn
-da2l1árr
-dal1á2sz
-da2l1áti
-dale2l
-dal1elá
-dal1ele
-dal1ell
-dal1e2sé
-dalé2ke2
-dal1él.
-da2l1é2ne
-da2l1ér.
-dal1f2
-da2lid
-da2l1i2ko
-da2l1ikr
-da2l1i2m
-da2l1i2nát
-da2lind
-da2l1inf
-da2l1ing
-da2l1inj
-da2l1int
-da2l1i2nu
-da2l1itt
-dali2z
-dal1izo
-2d1alji
-dal3l
-2d1allo
-dalo2m1e
-dalomo2
-da2l1or
-da2lőr
-dal1p2
-dal1ud
-da2l1ur
-da2l1u2s
-da2l1u2t
-dalú2t
-da2l1úto
-dal1útr
-da2lü
-2d1amc
-2d1amf
-2d1a2nal
-2d1ang
-d1a2nyag
-2d1a2nyó
-dao2k
-daó2r
-daó2v
-2d1a2pa.
-2d1a2pai
-da2paké
-da2páb
-da2pád
-da2páé
-da2páh
-da2pái
-da2pák
-da2pám
-da2pát
-da2páv
-2d1apj
-da1p2l
-da2pó.
-2d1app
-da1pro
-da1p2s
-2dapt
-dara2be
-da2r1a2dó
-dar1ala
-da2rant
-da2r1azo
-da2r1áta
-da2r1átf
-dar2c1e2
-dar2c3h
-dar2cso
-2d1arcú
-dar2d1a2l
-dar2d1á
-dar2del
-dar2d1es
-dar2d1ó2
-da2r1el
-da2r1il
-darus3s
-dar1uta
-da2r1ü
-da2sál
-da1s2l
-da1spe
-2d1assz
-da1s2ta
-da1szl
-daszt2
-dasz2tá
-2daszú
-da2t1akt
-da2t1akv
-da2t1a2la
-da2t1alk
-dat1apu
-dat1ará
-dat1ass
-da2t1att
-da2taz
-da2t1áll
-da2t1árad
-datá2ramm
-datá2ramr
-da2t1áta
-da2t1átá
-da2telem
-dat1e2l1é
-dat1elí
-da2t1elk
-dat1ell
-da2t1elő
-dat1elt
-da2t1é2g
-da2térte
-da2t1érté
-da2t1érth
-da2t1érv
-da2tid
-dati2k
-da2t1iko
-da2tim
-da2t1inf
-dat1inte
-dat1ist
-da2tiz
-da2t1ír
-dat1íve
-dat1k2
-2d1atlas
-da2t1osz
-da2tóc
-2datóm
-da2t1ó2r
-dató2s
-dat1ósá
-dat1t2
-da2t1u2t
-da2tút
-da2tűr
-da2tya
-da2tyá
-2d1a2uk
-da2up
-2d1a2ur
-dau2s
-dau2ta
-da3u2tóp
-daü2t
-daü2z
-2d1a2vat
-2d1avv
-da1ye
-da1yé
-2d1az.
-da2zál
-2d1a2zé
-da2zok
-da2zon
-1dá
-2d1á2bé
-2d1ábr
-dá2c3ho
-dá2fá
-dá2ga
-dá2gá
-dá2gú
-2d1á2gy
-dá2lál
-dá2lár
-dá2l1e
-2d1állí
-dá2lü
-dá2ly1a2n
-dályú2
-dá2ly1ús
-dámu2
-dá2m1ut
-dá2m1ú
-dá2ny1a2d
-dá2ny1al
-dá2ny1a2n
-dá2nyaz
-dá2nyó
-dá2po
-2d1á2rad
-dá2r1ag
-2d1á2rai
-dá2r1a2j
-dá2ral
-2d1á2ram
-dá2r1a2n
-dá2r1a2p
-dá2rar
-dá2ras
-dár1ass
-dá2rat
-dár1atk
-dá2rá
-dár1ál
-dá2r1e2
-dá2réb
-2d1á2ria.
-dá2rij
-dá2ril
-dá2r1i2p
-dár1isk
-dár1ism
-dá2rí
-dá2rod
-dá2r1ond
-dá2r1ot
-dá2rö
-dá2rő
-dár1s2
-dárt2
-dár1tr
-2dáru.
-dá2ruk
-dáru2s1ág.
-dáru2s1á2ga
-dá2rú2
-2d1árú.
-dá2rü
-dá2rű
-dá2s1a2d
-dá2sal
-dá2sar
-dá2s1á2g
-dá2s1árad
-dá2s1árh
-dá2s1á2ru
-d1á2sás
-dását1a2
-dá2s1e2
-dásfé2l1é2v
-dá2sim
-dá2sis
-dá2sol
-dá2sor
-dá2só2
-dás1ór
-dá2sö
-dá2ső
-dást2
-dás1tr
-dá2sut
-dá2s1ü2
-dá2szag
-dá2szaka
-dá2szal
-dá2szar
-dá2szav
-dá2sz1ál
-dá2szárk
-dá2sz1á2ro
-dá2sze
-dász1el
-dász1em
-dász1er
-dá2széb
-dá2szip
-dá2szir
-dá2szis
-dá2sz1í2
-2dászkái
-dá2sz1ö
-dá2sző
-dász3s
-dá2sz1us
-dá2sz1ú
-dá2sz1ü2
-dá2sz1ű
-2d1á2ta
-dát1al
-2d1á2tá
-2d1átd
-dá2t1e2
-2d1á2té
-2d1átf
-2d1á2tí
-2d1átj
-2d1átk
-2d1átm
-2d1átr
-3dátu
-2d1á2tú
-2d1átv
-dba2l1
-db2lo
-db2lú
-db2ro
-db2ró
-dc2lu
-dcsa2p1á2g
-dd1elh
-d2d1i2d
-ddí2s
-d2d1o2d
-dd2rá
-dd2ró
-d2dz
-d3dzs
-1de
-de2aa
-de2aá
-de2ac
-dea2d
-de2ae
-de2aé
-de2agy
-de2ah
-de2aí
-de2ala
-de2alá
-de2alo
-de2am
-dea2n
-de2ao
-de2ap
-dea1sz2
-de2aszf
-de2at
-2d1e2bé
-ded1ell
-2d1e2dén
-de2d1ó2v
-de1dra
-de2d1ú2
-2d1e2dz
-de2ep
-dee2s
-deé2r
-2d1eff
-de1fr
-de2g1a2l
-de2g1a2n
-de2g1ál
-de2g1e2l
-degen3n
-de2ger
-de2g1ék
-deg1éri
-de2gés
-deg1éss
-degész1
-deg3g
-de2giz
-2dego
-de2gor
-degö2
-de2g1öl
-de2gör
-de2g1ös
-2de2gő
-2d1e2gye
-degyez1
-2degz
-2d1ehh
-deho2g
-de2if
-dei2g
-deí2r
-de2k1a2k
-de2kaz
-de2k1e2g
-de2kellen
-de2kep
-dek1e2rő
-de2k1esz
-dek1ékb
-dek1é2ke
-de2k1él
-de2k1éri
-de2kérte
-de2k1érté
-de2k1érv
-de2k1érz
-de1klu
-dek1old
-dek1s
-deksz2
-2d1elad
-de2lef
-2d1e2legy
-dele2m1a
-dele2má
-dele2meg
-de2lemek
-dele2mel
-delem1ele
-dele2mu
-2d1e2lemű
-2d1e2lemz
-dele2t1a2
-2d1eleteté
-2d1e2l1é2k
-2d1e2lél
-delés3s
-2d1elha
-2d1elho
-2delkezdé
-2delkezdő
-del2lal
-del2l1an
-del2l1e2g
-delle2l
-del2l1ele
-del2lelk
-2dellená
-2d1ellene
-del2l1ent
-del2ler
-del2l1é2j
-del2l1é2k
-del2l1in
-del2l1is
-del2los
-del2lór
-del2lőr
-2d1elma
-2d1elnö
-de2los
-2delö
-de2löl
-de2lőad
-2d1e2lőka
-2delőrej
-2d1elsa
-2d1eltett.
-2d1eltér
-2d1elv.
-2d1elvá
-2d1elves
-2d1elvo
-2d1elvű.
-2d1elvűe
-2d1elvűk
-2d1elvűn
-2d1elvűr
-2d1elvűs
-2d1elvűt
-2d1elvűv
-de2mad
-de2m1a2l
-de2maz
-de2m1ál
-de2mez
-de2m1é2rem
-de2m1érm
-de2mim
-dem1ing
-2demoi
-dem1p
-de2mus
-demü2l
-de2nal
-2d1e2ner
-denkié2ne
-de2nol
-de2n1ó2
-dens1s
-de2od
-de2of
-de2o1g2
-de2oj
-de2olo
-de2om
-de2ot
-de2pe.
-2d1e2pé
-de1p2re
-de1pro
-de1p2s
-de2rad
-der1aka
-de2rala
-de2r1a2n
-de2r1ar
-de2r1á2g
-de2r1á2r
-de2rás
-der1ázt
-2derdő
-dere2c
-2deredm
-2d1e2reje
-2derején
-2derejér
-2d1e2rejét
-de2r1e2kei
-der1e2le
-der1ell
-der1e2lő
-der1elt
-de2rer
-de2r1e2ső
-de2r1él
-de2rid
-de2r1il
-de2r1i2m
-de2r1in
-de2r1i2p
-de2r1i2s
-der2nék
-de2r1osz
-de2r1ó2r
-de2rő
-d1erő.
-der1ős.
-d1erőt
-d1erőv
-der1sp
-deru2
-de2rut
-de2r1ü2g
-de2r1üld
-der1üle
-der1ültet
-dervis1s
-2de2s1a2
-2desg
-de2sip
-2deskü
-2destes
-de1sto
-de2sur
-desú2
-de2s1úr
-2d1eszm
-de1sz2ta
-de2szű.
-de2t1ék
-de2tika
-de2tiká
-2d1e2vő
-2d1evv
-de2xa
-dexi2
-de2xin
-de2xiz
-de2xí
-de2x1o
-de2xö
-2deza
-de2zak
-de2zér
-de2zil
-de2zin
-de2z1or
-dezőe2
-dezőkész1
-2d1ezr
-1dé
-2d1ébr
-dé2dap
-dé2d1ő
-dé2du
-dé1fl
-dé2g1a2
-dé2g1á2
-dé2g1e2b
-dé2g1eg
-dé2gép
-dé2g1érk
-dé2gés
-dég1ész
-dég3g
-dég1iga
-dé2gigé
-dé2gin
-dé2gí
-dé2g1ok
-dé2got
-dé2gó
-dég1s
-dé2g1u2
-dé2gú
-dé2gű
-2d1é2hes
-2d1éhs
-2d1éj.
-2d1éjb
-dé2k1ab
-dé2kac
-dé2k1a2d
-dé2k1a2l
-dé2k1a2n
-dé2k1ap
-dé2k1as
-dé2k1au
-dé2kaz
-dé2k1ág
-dé2k1árt
-dé2kás
-dékát1a2
-dé2k1e2g
-déke2l
-dé2k1ele
-dék1ell
-dék1elő
-dé2k1elt
-dé2k1er
-dé2k1esz
-dé2k1eti
-dé2kez
-dé2k1é2j
-dé2k1é2k
-dé2k1é2l
-dé2k1ér.
-dé2k1éte
-dék1isz
-dé2kivá
-dé2kí
-dékkulcs1
-dé2k1old
-dé2kop
-dé2k1or
-dé2k1osz
-dékó2
-dé2kór
-dé2k1ö2v
-dé2köz
-dé2kő
-dék2rém
-dé2k1ut
-dé2lad
-dé2lam
-dé2l1á2
-dé2leg
-dé2le2l
-dél1elő
-dé2les
-dél1est
-2d1é2let
-dé2lim
-dé2lio
-délkö2z1ön
-dé2lo
-dé2l1ö2
-2d1é2lő
-dé2l1u2
-dé2lük
-dé2lyö
-dé2m1e2l
-dé2m1e2m
-déna2
-dén1ac
-dénár1a2
-2d1é2neke
-dé2ny1el
-dé2nyid
-dé2nyo
-dé2nyö
-dép2i
-2d1é2pí
-2d1é2pü
-dé2rag
-dé2ral
-dé2r1an
-dé2rar
-dé2ras
-dé2rá
-dér1d2
-dé2reg
-dér1eml
-dér1esé
-dé2r1est
-dé2rez
-dé2rés
-dé2rif
-dé2r1ik
-dé2rí
-dé2rot
-déró2
-dé2rór
-dé2rö
-2d1érté
-2d1érth
-dé2r1út
-dé1ry
-2d1érzé
-désa2
-dé2s1aj
-dé2sal
-dé2sap
-dé2sar
-dé2s1az
-désá2
-dé2s1ár
-dé2seg
-dé2s1e2l
-dé2s1eti
-dé2s1ég
-dé2sí
-dé2sú
-dé2s1ü2t
-dész1ak
-dé2s3zá
-dé2sz1ék
-dé2szév
-dé2sz1o
-dé2szú
-dé2t1as
-dé2t1e2g
-dé2t1is
-2d1étke
-dé2tőr
-2d1év.
-2d1évb
-2d1é2ve.
-2dévei
-2d1é2vek
-2d1é2vem
-2d1é2ven
-2d1é2ves.
-2dévesb
-2d1é2vesek
-2d1é2vesen
-2d1é2vesh
-2dévesi
-2dévesk
-2d1é2vesn
-2dévesr
-2d1é2vess
-2d1é2vet
-2d1évez
-2d1é2véb
-2d1é2véi
-2dévén
-2dévér
-2d1é2vét
-2d1é2vév
-2d1évf
-2d1évh
-2d1é2vi
-2d1évk
-2d1évn
-2d1évr
-2d1évs
-2d1évt
-2d1é2vu
-2d1é2vü
-2d1évv
-2d1évz
-dfé2nyem
-df2lo
-df2ló
-df2rá
-df2re
-df2ri
-df2ro
-df2rö
-dgá2zár
-dgázát1
-dgá2zi
-dgá2zó
-d2ge.
-dg2le
-dg2li
-dg2ló
-dg2ra
-dg2rá
-dg2ró
-d2gyu
-d2hali
-dhan2g1e
-dhé2t1
-d2hi.
-d2hié
-d2hih
-d2hii
-d2hij
-d2hik
-d2hir
-dhú2s1á2
-1di
-di2aa
-di2aá
-dia1b
-di2abá
-di2abi
-di2abr
-di2ac
-dia1d2
-dia3da
-di2adi
-di2ado
-di2ae
-di2aé
-di2afa
-di2agy
-di2ah
-di2ai2k
-di2aí
-di2aj
-di2akép
-di2akol
-di2ala
-di2alá
-di2ali
-di2am
-di2ana
-di2aná
-di2ani
-di2anó
-di2ao
-di2aó
-di2aö
-di2aő
-di2a1p2
-di2ara
-di2asza
-di2aszk
-di2aszó
-di2a1t2
-di2au2
-di2aú
-di2aü
-di2aű
-di2av
-di2az
-diá2k1e
-diá2kol
-dián3n
-di1c2k
-di2cs1aj
-di2cs1e2r
-2d1i2deg
-2didej
-di2deo
-2d1i2dén
-di2d1i2o
-2d1i2dő
-di2eu
-di1fl
-di2ga.
-2d1i2gáná
-di2ge.
-di2g1e2l
-2d1i2gén
-di2gét
-2dijes
-di2kép
-di1k2l
-2d1i2konh
-di1k2ro
-dik1u2ta
-di1k2v
-di2lan
-dile2m
-dilig2
-di2lö
-di2l1ő
-di2lü
-di1ly
-di2ma.
-2d1i2má
-di2mit
-2d1imp
-2d1i2naka
-2dind
-2d1inf
-dinga2
-din2gal
-2d1ingá
-2d1inger
-2d1i2nic
-di2n1ing
-2d1inj
-di2nód
-di2n1óm
-di2n1ó2n
-di2n1ó2r
-2d1inp
-2d1inté
-2d1inv
-di2oa
-di2oi
-di2ok
-di2ol
-di2ome
-di2ov
-di2óa
-di2óá
-di2óe
-di2óg
-di2óí
-di2ókam
-di2óká
-di2ó1kl
-di2ókok
-di2óku
-di2ómé
-di2óo
-di2óó
-di2óö
-di2óő
-di2ó1p2
-di2órá
-di2óri
-dió2si2
-diós1ik
-di3ósor.
-di2óspe
-di2ószű
-di2óu
-di2óú
-di2óü
-2dipar.
-2d1i2pará
-2diparb
-2d1i2pari
-2d1i2paro
-2d1i2rat
-2d1i2rá
-2d1i2rod
-2d1irt
-di2saj
-2d1i2si.
-2d1isko
-2d1ism
-2d1iste
-di2tal
-dit1a2la
-dit1ará
-di2t1e2g
-dit1t2
-di2tü
-diumé2
-diu2m1én
-diu2mil
-diú2t
-di2vad
-2d1i2var
-diva2t1a
-2d1i2zé
-1dí
-dí2gé
-dí2j1áto
-dí2je
-dí2jí
-dí2jö
-dí2jü
-2d1í2rá
-díri2
-dí2rik
-2d1í2ró
-dí2sz1a
-dí2szer
-dí2szö
-dítés3s
-2d1ív.
-2d1í2ve
-2dívn
-2d1í2vü
-2d1í2vű
-dí2zi
-dí2zs
-dí2zü
-dí2zű
-dj2eg
-dje2gya
-dj1is
-djo2n1
-dka2n1á2
-dkia2
-dkie2
-dk2la
-dk2li
-dk2lo
-dk2lu
-dk2rá
-dk2ré
-dk2ri
-dk2ro
-dk2ró
-dk2va
-dk2vi
-dlás3s
-dlá2s3z
-dleí2
-dló1g2
-dlót2
-dlő1kr
-dme2g1ér
-dna2pe
-dné2v1á
-dnö2k1ö2l
-1do
-do2áz
-do2b1ag
-do2b1a2l
-doba2n
-do2b1any
-do2b1ár
-do2bát
-dobe2
-do2b1el
-do2b1ill
-do2bí
-2dobje
-do2boá
-do2b1old
-do2b1or
-do2bö
-do2bü
-do2bű
-2d1o2dú
-do2gar
-dogasz1
-do2gár
-dogás1s
-do2g1ol
-do2gor
-dogos3s
-do1g2rá
-do2gü
-do2kal
-do2kas
-do2káj
-do2k1ál
-do2k1e
-do2k1é2l
-do2kép
-dokkö2
-dok2k1öb
-dok2kő
-do2k1ott
-2d1o2koz
-do2kö
-dokú2t
-dok1úto
-do2kü
-2d1o2laj
-dola2tar
-dola2t1e
-dola2t1ör
-2d1olda
-2d1oldá
-2d1oldo
-2d1oldó
-2d1oltár
-2d1oltás
-2dolvas
-dom1a2cé
-do2m1árb
-do2m1áré
-do2m1árh
-do2m1árj
-do2m1árk
-do2m1árl
-do2m1árn
-do2m1á2ron
-do2m1árr
-do2m1ártó
-dom2ba2l
-dom2bel
-dom2bol
-dom2bón
-do2mel
-2domí
-2doml
-do2m1ond
-do2mő
-2domú
-do2mü
-do2n1ad
-dona2l
-don1ala
-do2n1a2r
-do2n1as
-do2n1ál
-do2n1áta
-do2n1átj
-do2n1áts
-do2n1átv
-don1d2
-do2n1e
-donos1s
-do2n1osz
-do2nö
-don1s
-dont2
-don1tr
-do2nü
-do2nyal
-do2nyar
-do2nye
-do2nyó
-2d1o2pe
-do1p2l
-dor1akn
-do2r1a2l1
-do2r1a2p
-do2r1as
-do2rat
-dor1áll
-do2r1á2lo
-dord2
-dor1dr
-do2r1e2
-do2rid
-do2r1il
-do2r1is
-do2r1ita
-dor1k2
-do2r1okl
-dor1oszt
-do2rö
-do2rő
-2d1orrú
-dors2
-dor1sp
-dor1tró
-dorú2t
-do2rü
-2dorvos
-do2ug
-do2ut
-do2vi
-do1ye
-1dó
-dóa2d
-dóá2g
-dóá2r
-dó1bl
-2dóez
-dó1fl
-dó1f2r
-2dógá
-dó1g2r
-dói2g
-dóí2v
-dó1k2l
-dó1kré
-dó1k2v
-dó2mab
-dó2mak
-dóm1org
-dó2mő
-dóó2r
-dó1p2l
-dó1p2r
-dó2rád
-d1ó2rák
-dó2riá
-dó2sam
-dó2sas
-dó2sel
-3dósi.
-dó2sip
-dó2sis
-dó2sír
-dó1s2ká
-dó1spe
-dó1spi
-dó1s2rá
-dós3s
-dó1stáb
-dó1str
-dó2s1ű2
-dósz2
-dó1szf
-dó1szp
-dó1t2r
-2d1ó2vó
-1dö
-d1öbl
-dö2ga
-dö2gá
-dö2g1el
-dö2gev
-dög3g
-dögna2
-dö2go
-dö2gó
-dög1ö2lő
-dö2g1ő
-dö2gu
-dö2ka
-dö2ká
-dö2k1el
-dö2k1e2r
-dö2kék
-dö2k1ér.
-dö2kí
-2döntöz
-dö2ra
-dö2rá
-dö2ro
-2d1ö2röks
-2d1ösz
-d1ötl
-döt2tért
-dö2ve
-dö2vi
-1dő
-dőa2n
-dőá2g
-dő1bl
-dő1cl
-dő1dra
-dőe2l
-dőe2r
-dőé2l
-dőé2te
-dő1fl
-dő1f2r
-dőgé2p1e2ké
-dő1gr
-dőirá2
-dői2ta
-dő1kl
-dő1kv
-dő2ny1a
-dő2nyele
-dő1pl
-dő1pr
-2dőráb
-2d1őrál
-2d1ő2reb
-dőr1egy
-dőr1ele
-dőr1elő
-2d1ő2rem
-2d1ő2ré.
-2d1ő2réh
-2dőrék
-2d1őrél
-2dőrén
-2d1őrh
-2d1őrif
-2d1ő2ril
-2d1ő2r1in
-2d1ő2rip
-dő2r1is
-2dőrok
-2d1őror
-2dőros
-dő2röd
-dő2r1öz
-2dőrőr
-2dőrun
-2dőrur
-2d1ő2rut
-2d1ő2rü2
-dőr1üg
-dőr1ül
-2d1őrz
-dő2s1érv
-dő1ská
-dő1s2m
-dő1sni
-dőso2d
-dős1odo
-dő1spe
-dő1s2pi
-dő1spó
-dő1s2ta
-dő1sté
-dő1str
-dő1sv
-dő1sz2
-dőt1áll
-dő1t2r
-dp2la
-dp2le
-dp2lé
-dp2ra
-dp2re
-dp2ré
-dp2ri
-dp2rí
-dp2ro
-dp2ró
-dp2sz
-dra1ps
-dravasz1
-drág1g
-drá2sz1ál
-drá2sze
-dráta2
-drá2tal
-drá2t1e2
-drá2t1ér
-dren2d1ő2
-1d2ressz.
-1d2resszb
-1d2ressze
-1d2resszh
-1d2resszk
-1d2resszr
-1d2resszü
-dré2szá
-dro2g1a
-dro2gá
-dro2gen
-drogé2n1i2
-drog3g
-dro2g1ó2
-dro2n1a2
-dro2nyi
-drosz2
-dro1szf
-dro1t2r
-dró2baj
-dró2t1a2
-dró2t1á2
-dró2tis
-dró2t1ü2
-d2rui
-dru2se
-dru2si
-dság1g
-dsé2g1el
-dsé2gül
-ds2ká
-ds2li
-ds2pe
-ds2pi
-ds2po
-ds2rá
-ds2ta
-ds2tá
-ds2tí
-dst2r
-dsza2ké
-dszá2las
-dszáraz1
-dsz2e
-dsze2ra
-dsze2r1á
-dsze2r1elv
-dsze2r1o
-dszert2
-d1sz2l
-d1szn
-d1sz2p
-d1sz2t2
-d1sz2v
-dta2g1a2
-dtalpa2d
-dtal2p1ada
-dtal2p1al
-dta2n1á2s
-d2t1ékn
-d1t2rá
-d1t2ré
-d1t2ri
-d1t2ro
-d1t2róf
-d2t1ül
-1du
-du2cem
-du2c3h
-du2cö
-du2cü
-due2l
-du2gal
-du2g1ár
-2d1ugr
-2duit
-2d1ujj
-dula1k2
-dula2t1í
-du2l1e
-du2lép
-duli2
-du2l1im
-du2l1in
-du2lis
-du2lí
-du2lö
-du2lű
-2d1u2ni
-2d1u2no
-2d1unt
-du2óa
-du2óá
-du2ód
-du2óf
-du2ól
-du2óp
-du2rai
-du2rak
-du2ral
-2d1u2rat
-du2ráb
-du2ráh
-du2rát
-du2ruk
-du2sal
-du2san
-du2sar
-du2s1as
-du2sál
-du2seg
-du2s1érté
-du2sin
-du2s1iv
-du2sol
-du2ső
-du2s1ű
-2d1u2szod
-2d1u2szoka
-2d1u2szokb
-2d1u2szoké
-2d1u2szokh
-2d1u2szokk
-2d1u2szokn
-2d1u2szoko
-2d1u2szokr
-2d1u2szokt
-2d1u2szom
-dus3zs
-du2t1i
-2d1u2to
-du2tó.
-du2tór
-du2tu
-1dú
-dú2ce
-dú2ch
-dú2cse
-dú2c3so
-dúc3sz
-dú1dr
-dú2j1é2
-dú2jí
-dú2r1a2c
-dú2ral
-dú2r1e2
-dú2rén
-2d1ú2ron
-dú2rö
-dú2szá
-dú2szó
-dú2t1a2
-dú2té
-2d1útj
-d1útl
-2d1útn
-dú2ton
-2d1útr
-1dü
-dü2dü
-dü2gy
-dügy1érn
-dü2ha
-dü2há
-dü2hel
-dü2ho
-dü2hő
-dü2két
-dü2lá
-2d1üld
-dü2lep
-dülős2
-2d1ünne
-dü2rí
-dü2te
-dü2té
-dü2tő
-dü2ve
-dü2ze
-dü2zé
-1dű
-dű1pr
-d1űrl
-dű1sz
-dű1tr
-dű2zé
-dű2ző
-dva2raj
-dva2r1e
-dva2r1ó2
-dvá2nyan
-dvá2nyí
-dv1áta
-dv1áte
-dv1ece
-dv1e2leg
-dv1elk
-dven2t1í
-dve2ral
-dve2rár
-dve2rip
-dver1s
-d2v1e2sés
-dve1s2p
-d2v1e2teté
-dv1élm
-d2v1ép
-d2v1érd
-d2v1é2ri
-d2v1érté
-d2v1érz
-dv1fr
-dvi2csa
-dvi2csá
-d2v1iga
-dvigaz1
-dvitéz1
-dv1or
-dvö2l
-dv1ölő
-dv1ős
-dv1őz
-dv1pr
-dv1un
-dv1ú2t
-d2v1üg
-d2v1ü2z
-d2v1űz
-dwa1yi
-dy1as
-d1yéb
-d1yén
-dy1étő
-d1yév
-dy2jé
-dy2ke
-dyk2k
-dyk2n
-dyk2t
-dy2vé
-d2z
-1dza
-dzaé2
-2d3zaj
-dzak2
-dza1kr
-1dzá
-dzá2r1ó2ra
-dzás1s
-d3zász
-1dze
-1dzé
-dzé2sa
-1dzi
-2d3zil
-1dzí
-1dzo
-1dzó
-1dzö
-1dző
-dzőa2
-2dzőbő
-2dződ
-2dzőj
-2dzőné
-2dzőr
-1dzsa
-1dzsá
-1dzse
-2dzs1e2g
-2dzs1esz
-1dzsé
-1dzsi
-2dzsir
-2dzs1is
-d3zsiv
-1dzsí
-2dzso2
-dzs1ok
-1dzsó
-1dzsö
-1dzső
-dzs1s
-1dzsu
-1dzsú
-2dzsúj
-1dzsü
-1dzsű
-1dzu
-1dzú
-1dzü
-1dzű
-2e.
-e1a
-ea2bál
-e2abo
-e2abő
-ea2da
-ea2dá
-eadás1s
-ea2dó
-ea1d2r
-ea2du
-eaé2d
-e2afá
-e2afe
-e2afi
-e2afo
-e2afö
-e2afő
-e2afü
-e2afű
-ea2gi
-e2agó
-e2aid
-e2ail
-e2aim
-e2aip
-e2ais
-ea2ja
-e2ak.
-ea2kas
-e2akat
-e2aká
-e2akb
-e2ake
-e2akép
-e2akh
-e2aki
-e2akí
-e2a1kl
-e2ako
-e2akó
-e2akö
-e2a1k2r
-e2akú
-e2akü
-e2alán
-eal1eg
-ea2lu
-e2am.
-e2ama
-e2amá
-e2amel
-e2amer
-e2amé
-e2amin
-ea2mo
-e2amu
-e2amú
-e2amű
-e2ane
-e2ané
-e2anö
-e2ans
-ea2nya
-e2api
-e2apo
-e2apó
-ea1p2ro
-e2ar.
-ea2ran
-ea2ras
-ea2rat
-ea2rá
-e2arb
-e2are
-e2arh
-e2arj
-e2arn
-e2aró
-e2arr
-e2aru
-e2arü
-e2aso
-e2a1st2
-e2asü
-e2asű
-e2aszem
-e2aszé
-e2ata
-e2atá
-e2atc
-e2ate
-ea2t1eg
-e2até2
-ea2tél
-ea2t1éne
-e2atf
-e2atg
-e2ath
-ea2tid
-eat1ing
-ea2tip
-ea2tir
-e2atm
-eatmo1s
-eatmosz2
-e2atn
-e2ato
-ea2t1or
-e2ató
-e2atö
-ea1t2rak
-eat2rón
-e2ats
-e2atu
-e2a2tü
-e2atű
-e2atz
-e2au.
-ea2ut
-e2a2ux
-e2avi
-ea1vy
-ea2zo
-e1á
-eá2bé
-eá2cs
-eá2ga
-eá2gá
-eá2gi
-eá2go
-eá2gu
-eá2gy
-eá2hí
-eá2k1e
-eá2k1osk
-eála2
-eá2lad
-eá2l1ak
-eá2lál
-eá2l1á2r
-eá2l1e2
-eálé2
-eá2lél
-eálfe2
-eá2lid
-eá2l1in
-eá2lir
-eá2lism
-eá2lop
-eá2l1ór
-eá2lö
-eá2mu
-eá2nac
-eá2nal
-eá2n1at
-eáná2
-eá2nár
-eá2n1át
-eá2n1e2
-eá2ny1a2l
-eá2ny1a2n
-eá2nyap
-eá2nyar
-eá2ny1as
-eá2nyav
-eá2ny1e2
-eá2nyén
-eá2ny1ér.
-eá2nyif
-eá2ny1ing
-eá2nyis
-eá2ny1o2ku
-eá2nyö
-eá2po
-eá2rad
-eá2ram
-eá2ras
-eá2raz
-eá2ru
-eá2rú
-eá2sa
-eá2sá
-eá2sí
-eá2só
-eá2su
-eá2sz
-eáta2
-eá2t1e2
-eá2té
-eá2tí
-eá2tu
-eá2tü
-e2ba2d
-eb1adó
-eb1adta
-eb1aga
-e2b1ajk
-e2b1a2la
-e2b1alk
-eb1ant
-eb1a2ny
-eb1atl
-e2b1au
-eb1a2zo
-eb1ágg
-e2b1áp
-eb1ára
-ebeá2
-e2b1e2he
-eb1ejt
-ebe2l1á
-e2b1e2lef
-ebe2l1eme
-e2b1elhel
-e2b1enc
-eb1este
-eb1esté
-ebe2szek
-e2b1ex
-e2b1ég
-eb1ép
-e2b1érd
-e2b1érté
-e2b1érz
-eb1gr
-e2b1id
-e2b1i2na
-e2b1inf
-e2b1ing
-e2b1irá
-e2b1i2s
-e2b1izz
-eb1kl
-eb1kr
-eb2lat
-e1b2lú
-eb1okt
-eb1o2la
-eb1orv
-eb1öb
-eb1ös
-eb2rus
-eb1st2
-eb1tr
-e2b1üg
-ebü2l
-eb1ülé
-e2b1ür
-eb1üz
-ec1ajt
-ec1alk
-e2c1a2n
-e2c1az
-ec1ág
-e2c1ál
-ec1ár
-ec1bl
-ec2c1a2
-ec2c1ér
-ec2c3h
-ec2c1i
-eccs1át
-ec3cso
-ec2cú
-e2c1eg
-e2c1elo
-e2c1elv
-2ecento
-e2cetb
-ece2t1o
-1e2cets
-1e2cett
-e2cetü
-ece2tüz
-e2c1evé
-ec3har
-ec3hen
-ec3hi.
-ech1in
-1e2chó
-ech1u
-ec2le
-ec2lu
-e2csad
-e2cs1a2la
-e2cs1a2n
-ecsa2p1á2g
-e2cs1a2pák
-ecs1ará
-ecsá2r
-ecs1árá
-ecs1árb
-ecs1áro
-e2cs1á2t
-e2cs1é2l
-e2cs1ér.
-ecs1érté
-e2cs1ol
-e2cs1öl
-ecs1s
-ecsúszós1
-e2c3sükb
-e2c3süt
-ec3sze
-e2c1ud
-ec3zá
-ec3ze
-e2d1ab
-e2d1a2dá
-ed1a2ny
-e2d1a2z
-e2d1á2c
-e2d1ág
-e2d1áp
-ed1egy
-edeleme2
-e2d1elo
-e2d1eml
-ede2rak
-ede2r1ál
-ede2rel
-ede2r1ék
-ede2r1o
-ede2r1ü2l
-ede2s1o
-ede2tá
-ede2tel
-ede2t1ér.
-e2d1é2j
-edé2ká
-edé2kis
-edé2k1o
-edé2lyá
-edé2lyo
-1e2dénn
-1e2dény
-e2d1ép
-e2d1érd
-edé2sa
-edé2so
-edés3s
-edé2s3z
-ed1é2vén
-ed1é2vér
-ed1gr
-2edic
-e2dide
-e2d1i2ga
-edigaz1
-ed1ill
-e2d1int
-e2d1ira
-ed1iro
-e2d1ír
-ed1ívn
-e2d1íz
-ed1old
-ed1orv
-e2d1os
-e2d1ös
-e2d1őrs
-edő2s1ü
-ed1pl
-ed1pr
-ed2ram
-e1d2rog
-e1d2ró
-e2d1üg
-e2d1üt
-e2d1űz
-ed2v1a2
-edvá2
-ed2v1ár
-ed2vát
-edv1ér.
-ed2v1öz
-edy1i
-e2d3zá
-1e2dzői
-1edzőj
-1edzőr
-1e2dzőv
-1edzv
-e1e
-ee2bé
-ee2cs
-ee2dz
-ee2ge
-ee2gé
-eegész1
-ee2gy
-ee2he
-ee2ke
-e2el.
-ee2la
-ee2le
-e2eléb
-ee2léd
-e2elg
-ee2lo
-ee2lő
-ee2me
-ee3men
-ee2mé
-ee2mu
-e2en.
-e2enb
-e2enj
-e2ent
-e2enw
-ee2ny
-ee2pe
-ee2pé
-ee2po
-ee2re
-ee2ro
-ee2ró
-ee2rő
-ee2sé
-ee2sü
-ee2sz
-ee2te
-e2e1t2h
-ee2to
-ee2ve
-ee2vé
-ee2vi
-ee2vo
-ee2vő
-ee2zü
-e1é
-eé2de
-eé2ge
-eé2gé
-eé2gő
-eé2gü
-eé2he
-eé2je
-eé2jé
-eé2ke
-eé2kí
-eé2le
-eé2lé
-eé2li
-eé2lő
-eélőkész1
-eé2lü
-eé2lű
-eé2me
-eé2ne
-eé2pí
-eépítés1s
-eé2pü
-eé2ré
-eé2ri
-eé2rő
-eé2rü
-eé2sz
-eé2te
-eé2ve
-eé2vé
-eé2vi
-eé2vü
-efa2x1i
-efek2tá
-efek2t1í2
-efenyőé2
-ef2f1in
-ef2f1o
-e1f2la
-efle2x1i2k
-ef2lu
-efo2n1alk
-efo2nik
-eforma2
-efor2m1al
-ef1pl
-e1f2rá
-ef2rö
-e2g1a2bá
-ega2be
-eg1abl
-eg1abr
-e2g1a2cé
-ega2cs
-e2g1a2d
-e2g1a2g
-ega2i
-e2g1a2j
-e2g1a2k
-e3gaké
-ega2lac
-ega2lak
-ega2lan
-eg1a2lap
-e2g1a2lá
-e2g1alh
-e2g1alj
-e2g1alm
-e2g1als
-e2g1alt
-e2g1a2m
-eg1ang
-eg1ann
-eg1ant
-eg1a2ny
-e2g1a2pa
-eg1apá
-ega2po
-eg1a2pó
-e2g1apr
-eg1arc
-ega2ri
-eg1a2ro
-eg1art
-e2g1ass
-e2g1a2sza
-e2g1a2szo
-e2gaszú
-eg1atk
-ega1t2r
-e3g2aty
-e2g1a2u
-eg1a2va
-e3gazol
-ega2zon
-e3gába
-e3gábó
-eg1á2cs
-e2g1áf
-e2g1á2g
-eg1áh
-e3g2ái
-e3gája
-e3gájá
-egá2ju
-egá2m
-e3g2án
-e2g1áp
-e2g1á2rá
-e2g1árb
-e3g2árg
-e2g1árn
-egá2ro
-eg1árt
-egá2ru
-egá2rú
-egá2sa
-e3gát.
-e3g2átu
-e3gáva
-egá2zá
-egá2zi
-egá2zu
-eg1bl
-eg1br
-eg1d2r
-e2g1e2bé
-ege2cs1ö2
-eg1edz
-eg1e2ge
-eg1ehe
-e2g1e2kés
-e2gela
-e3geled
-ege2leg
-ege2lej
-e2gelekt
-eg1e2lemb
-e2g1e2leme
-e2g1e2lemn
-e2g1e2lemr
-e2g1e2lemt
-ege2l1e2s
-eg1elég
-eg1e2lér
-e2g1elf
-e3g2elg
-e2g1elha
-e3g2elit
-e2g1eljá
-e2g1elm
-e3g2elne
-e2g1elo
-e3g2előá
-ege2lőbbe
-e3g2előd
-e3g2előf
-e3g2elői
-e3g2előm
-e3gelőnye
-e2g1eltá
-e3g2eltet
-e3g2eltü
-e2g1elvá
-e2g1elz
-e2gemel
-e3gend
-e3genye
-eg1epe
-eg1epr
-e3gerá
-e2gerd
-1egere.
-e2gered
-1e2gerek
-e2geré
-ege2rény
-eg1erk
-e3gerl
-e2g1eró
-e2g1erő
-eg2esek
-e2g1esete
-e2g1eszk
-e2getal
-eg1e2ve
-e2g1ex
-e2g1é2g
-e3gémb
-e2g1é2neke
-e2g1é2nekk
-egé2ny1e2l
-e2g1épí
-eg1éps
-e2gér.
-e2gérb
-egé2r1es
-egé2re2t
-egér1ete
-egé2rez
-e2géré
-egé2rés
-e2gérg
-e2géri
-egé2ri.
-e2gérk
-e2gérn
-eg1é2rő.
-e2gérr
-e2gérs
-eg1érté
-eg1érth
-e2gértő
-e2gérv
-e2gész
-eg1észl
-1egészs
-eg1éte
-eg1fl
-eg2gim
-eg3gyal
-eg3gyan
-eg3gyás
-eg3gyú
-e3gi.
-eg1ibr
-eg1idd
-eg1i2de
-e3gie
-egi2g
-e3gig.
-e2g1iga
-e2g1igé
-eg1ij
-e2g1i2ko
-eg1ikr
-e2gill
-eg1imb
-e2gimm
-eg1inf
-e2g1ing
-eg1ino
-eg1ins
-e3g2io
-eg1ira
-eg1i2ro
-eg1iss
-eg1ist
-egi2sz
-e2g1i2ta
-e3gitá
-e2g1iva
-e2g1ivá
-e3give
-eg1izé
-eg1izg
-eg1izm
-eg1izz
-e2g1íg
-e2g1ín
-e2g1í2r
-e2g1ív
-e2g1íz
-eg1kl
-eg1kr
-eg1kv
-e2g1ob
-e2goc
-e2g1o2d
-e2goi
-e2g1o2k
-eg1o2la
-e2g1old
-eg1olv
-e3goly
-2egom
-ego2mi
-e2gont
-e2g1op
-eg1org
-e3g2orom
-ego2ros
-e2g1orr
-e2g1orv
-e2g1o2s
-e2g1ot
-e3gó.
-e3g2ób
-egó2do
-e3g2ój
-eg1ó2ra
-eg1órá
-eg1óv
-e2g1öb
-eg1ök
-eg1önt
-eg1örö
-e3görög
-egö2röm
-eg1öt
-eg1öv
-e2g1ö2z
-egőkész1
-e3gőre
-eg1őri
-eg1őrö
-egő2szi
-e3g2őz
-eg1pl
-eg1pr
-eg1ps
-e1g2rat
-e1g2róf
-eg1sk
-eg1sl
-eg1sm
-eg1sp
-eg1s2t
-egsz2
-eg1szt
-eg1tr
-e3g2ub
-eg1ud
-e3g2um
-eg1u2n
-e2g1u2ra.
-e2g1u2rai
-e2g1u2rak
-e2g1u2ras
-e2g1u2rat
-e2g1u2rá
-e3guru
-e2g1u2s
-e2g1u2t
-eg1u2z
-eg1új
-e3g2ún
-eg1úr
-eg1ús
-eg1út
-e2g1üd
-egü2gye
-e2g1ü2le
-eg1ü2li
-e2g1üs
-e2g1üt
-e2g1üv
-e2g1üz
-e2g1űz
-egvárosi2
-e2gy1a2d
-egy1a2g
-e2gy1aj
-egy1akt
-egy1a2la
-e2gy1ará
-e2gy1as
-egy1a2t
-e2gy1au
-egy1az
-e2gy1ál
-egy1á2rá
-egy1árf
-e2gyát
-egy1eleg
-egy1elf
-egy1ell
-egy1elo
-egy1e2lőj
-egy1e2lőv
-egy1elz
-e2gyeni
-1e2gyenl
-1e2gyens
-egy1eszt
-1egyezm
-egy1éks
-1egyéni
-egy1ér.
-e2gyip
-e2gyis
-e2gy1iz
-egy1ok
-e2gy1ol
-egyo2r
-e2gy1os
-egy1ot
-e2gy1ó2r
-egy1ö2l
-e2gy1ös
-e2gy1öz
-egy1ő2r
-egyu2
-egy1ur
-egy1ut
-1együt
-1egzis
-eha2de
-ehá2zal
-eh1ellá
-ehe2lyes
-ehe2rál
-ehe2rát
-ehere2
-ehe2r1el
-ehe2r1em
-ehe2ren
-ehe2res
-ehe2rin
-ehe2rol
-e2h1é2je
-ehé2ná
-ehé2név
-ehé2zá
-ehé2zo
-e2h1ors
-eh1sz
-e1i
-ei2áb
-ei2áh
-ei2áj
-ei2án
-ei2ár
-ei2át
-ei2áv
-e2ibn
-ei2deá
-ei2dei
-ei2deo
-ei2dén
-ei2dom
-ei2dő
-e2idp
-e2ier
-ei2gá
-ei2gé
-e2i1g2n
-ei2gy
-ei2ha
-eil2le.
-ei2ma.
-ei2man
-ei2má
-ei2mit
-e2imk
-e2ims
-e2imz
-ei2na2
-ein1ad
-ei2n1á2
-ei2neg
-e2inér
-e2inét
-ei2n1ita
-ei2nol
-ei2nő
-ein1t2r
-ei2nü
-ei2on
-ei2pa
-ei2ram
-ei2rat
-ei2ri
-ei2rod
-e2iró
-ei2ta
-e2itb
-e2itj
-e2itn
-e2itr
-ei2va
-ei2vá
-ei2vo
-ei2vó
-ei2zé
-e2izmi
-ei2zo
-e1í
-eí2gé
-eí2já
-eí2jú
-eí2ra
-eí2rá
-eí3rásbe
-eí3rásil
-eí3rásoc
-eí3rásonk
-eí2ró.
-eí2róa
-eí2róá
-eí2rób
-eí2ródn
-eí2róf
-eí2róg
-eí2róh
-eí2rói.
-eí2róik
-eí2róin
-eí2róit
-eíróí2
-eí2rója
-eí2rójá
-eí2róje
-eí2róju
-eí2rók
-eí2róm
-eí2rón.
-eí2róna
-eí2róná
-eí2róny
-eí2rór
-eí2rót
-eí2róv
-eí2té
-eí2vá
-eí2ve
-eí2vé
-eí2vi
-eí2vo
-eí2vó
-eí2ze
-eí2zü
-eí2zű
-ej1ab
-e2j1a2d
-ej1a2g
-e2jak
-ej1akk
-ej1a2l
-ej1a2n
-ej1ar
-ej1au
-ej1a2z
-ej1áb
-e2j1á2g
-ej1ál
-e2j1ártó
-ej1á2t1e2
-ej1átv
-ej1bl
-ej1br
-ejcsa2p1
-ej1dr
-eje2c
-e2j1ecse
-e2j1ef
-ej1e2ged
-e2j1e2gé
-e2jekc
-e2j1ela
-e2j1elc
-e2jelede
-e2j1e2lemb
-e2j1e2leme
-ej1e2lemé
-e2j1e2lemn
-e2j1elf
-e2j1elha
-e2j1elhel
-e2j1elo
-ej1elszá
-ej1eltér
-e2j1elu
-e2j1eng
-e2j1enz
-e2j1essz
-eje2sz
-e2j1ex
-e2j1é2j
-e2j1é2k
-e2j1él
-e2j1ép
-e2j1éte
-ej1fr
-ej1g2r
-e2j1i2d
-e2j1im
-ej1ina
-e2j1int
-e2j1ip
-e2j1iz
-ej1íg
-ej1ív
-ej1kl
-ej1kv
-ej2mok
-ej1ol
-ej1op
-ej1óc
-ej1ón
-ejó2sá
-ej1ót
-ej1óv
-e2j1öb
-e2j1öl
-ej1ö2ve.
-e2j1őz
-ej1pl
-ej1pr
-ej1sp
-ej1st2
-ej2tad
-ej2tau
-ej2tál
-ej2tát
-ej2t1elk
-ej2t1este
-ej2tev
-ejté2r
-ejt1éré
-ej2tin
-ej2tiz
-ej2tos
-ej2t1ó2r
-ej2töd
-ej2t1ö2l
-ej2tön
-ej2tös
-ej1tra
-ej1tró
-ej2tür
-ej1új
-ej1úr
-ej1ú2t
-e2j1üg
-e2j1ür
-e2j1ü2t
-e2j1üv
-e2j1üz
-e2k1abl
-ek1a2cé
-ek1a2dá
-e2k1a2dó
-eka2gy
-ek1a2ja
-e2k1ajtó.
-e2k1ajtói
-e2k1ajtók
-e2k1ajtón
-e2k1ajtór
-e2k1ajtót
-ek1a2kar
-e2k1alj
-e2k1a2lo
-ek1alt
-ek1ang
-e2k1ani
-ek1a2nyá
-ek1arc.
-ek1arca
-ek1arcr
-ek1arcú
-eka2sip
-e2k1au
-ek1azo
-e2k1ág
-ek1állo
-ek1álm
-ek1árad
-eká2rai
-ek1á2rak
-ek1áras
-e2k1á2rá
-e2k1árd
-e2k1árf
-e2k1árh
-e2k1árk
-e2k1árm
-e2k1árn
-e2k1á2ron
-e2k1árr
-e2k1á2ru
-e2k1á2rú
-e2k1árv
-ek1ásó
-ek1áta
-ek1átd
-e2k1áth
-ek1átj
-e2k1átm
-ek1á2to
-e2k1átt
-ek1bl
-ek1br
-1ekcém
-ekci2óf
-ek1cl
-ek1dr
-e2k1ebé
-e2k1e2dz
-e2k1egg
-e2k1e2gye
-e2k1e2kébő
-e2k1e2kés
-e2kela
-e2k1e2leg
-eke2leme
-ek1elha
-e2k1elk
-e2kellá
-e2k1elm
-e2k1elo
-e2k1előn
-e2k1elr
-ek1elta
-ekel2t1é2r
-e2k1e2ma
-e2k1e2mel
-ek1e2més
-ek1e2pi
-e2k1estr
-eke2szele
-eke2szo
-e2k1e2vé
-e2k1evi
-1e2kééh
-e2k1ég
-1e2kéik
-ek1ékek
-e2k1ékt
-ek1é2le
-ek1éln
-ek1élő
-e2k1épí
-e2k1érin
-ek1értékb
-eké2rül
-e2k1ész.
-e2k1észh
-e2k1észn
-eké2tel
-e2k1étk
-e2k1étl
-e2k1étt
-e2k1é2ve.
-e2k1é2vek
-ek1é2vet
-e2k1évi
-ek1fr
-ek1gn
-ek1gr
-ekiá2
-ek1i2ga
-ekigaz1
-ek1i2ge
-e2k1igé
-ekii2
-ek1ill
-e2k1ima
-eki2már
-e2k1iná
-ek1ind
-e2k1isk
-ek1ism
-e2k1isp
-ek1i2zo
-e2k1íj
-ek1írá
-ek1íz
-ekka2ró2
-ek2k1ele
-ek2k1elf
-ekk1osz
-ek1kri
-ek2kű
-eklés3s
-ek2lim
-ek3nő
-e2k1oá
-ek1obj
-e2k1odv
-e2k1o2la
-ek1olló
-e2k1olv
-e2k1o2pe
-ekor2da
-ekor2d1á2
-ek1o2rom
-ek1orra
-e2k1orv
-ek1otth
-e2k1ó2h
-ek1ó2ra
-ek1ó2rá
-ekö2k
-e2k1ökö
-e2k1ö2lé
-ek1ö2lő
-e2k1öm
-e2k1önk
-e2k1önt
-ekö2ri
-e2k1örv
-ek1pl
-ek1pr
-ek1ps
-e1k2ram
-e1krétá
-ek2ris
-e1k2rí
-ek2róm
-ek1sl
-ek1sm
-ek1sp
-ek1st
-eksz1al
-ekszes1
-ek2szip
-ek2tau
-ek2taz
-ekt1elk
-ek2t1esz
-ek2t1érd
-ek2til
-ek2tim
-ek2t1i2o
-ek2t1ok
-ektus1s
-e2k1ud
-e2k1u2ra
-ek1uro
-e2k1utá
-e2k1utó
-e2k1uz
-e2k1új
-e2k1úr.
-ekú2t
-ek1úto
-ek1útv
-e2k1ünn
-ekü2t
-ek1ütő
-ek1üzl
-e1k2vó
-el1a2ba
-el1abl
-el1a2bort
-e2l1a2c
-e2l1a2d
-el1agg
-el1a2gy
-el1a2j
-e2l1akad
-e2l1a2kas
-el1akc
-e2l1a2l
-el1a2m
-el1ana
-elan2di
-el1a2ne
-el1a2ni
-el1ann
-ela2ny
-el1a2pa
-ela2r
-el1ara
-el1ará
-el1aré
-el1asza
-el1aszi
-el1aszó
-el1aszu
-e2l1a2u
-el1a2va
-el1a2ve
-el1azo
-elá2bé
-el1ág.
-e2l1á2ga
-el1ágg
-el1á2gi
-el1ágn
-el1á2go
-el1á2j
-el1áld
-el1áll
-el1á2lo
-elá2m
-el1ámí
-el2án
-elá2ná
-elá2ne
-elá2nó
-el1á2p
-el1ár.
-el1á2rá
-el1árb
-el1árc
-el1á2re
-el1á2ré
-el1árf
-el1árh
-el1árk
-el1árn
-el1á2ro
-el1árö
-el1árr
-el1árt
-el1á2ru
-el1á2rú
-elá2s
-eláta2
-el1át1e2
-el1átf
-el1átk
-el1átl
-el1átm
-el1átr
-el1ázi
-el1ázo
-el1ázt
-el1bl
-el1br
-2eld.
-el1d2r
-ele1bre
-2eled.
-1e2ledel
-el1eff
-ele2g1e2lé
-el1e2gyene
-e2legyü
-el1egz
-eleí3ran
-ele1k2l
-ele2k1os
-ele1krá
-1elektr
-e2l1elb
-e2l1e2lemb
-e2l1elm
-e2lelőz
-el1elr
-ele2mad
-e2l1ember
-1eleme.
-1e2lemei
-1elemek
-ele2mell
-1e2lemem.
-1e2lememm
-1e2lemes.
-1e2lemesn
-ele2mesz
-ele2mélt
-ele2mérd
-1e2lemük
-1e2lemünk
-1e2lemzé
-1e2lemző
-2elend
-e2lener
-ele2nél
-eleó2
-ele2pal
-ele2pap
-ele2pele
-ele2pell
-ele2p1ő2r
-e2lerd
-el1e2red
-el1e2rei
-el1erj
-e2l1ern
-ele2róz
-ele2sege
-ele2sésb
-ele2sése
-ele2sésé
-ele2sésh
-ele2sési
-ele2sésk
-ele2sésn
-ele2sésr
-ele2séss
-ele2sést
-ele2sésü
-ele2sik.
-e2l1esnén
-ele2sőb
-ele2sős
-e2l1essél
-ele1sta
-ele2szek
-ele2t1e2két
-ele2teti
-ele2tetn
-ele2tető
-ele2t1ék
-ele2tél
-e2l1ették
-eleü2
-1e2l1e2vők
-el1e2xi
-e2lébb
-elé2du
-el1é2ges
-el1é2get
-el1égj
-el1égtek
-el1égv
-el1é2het
-eléka2
-elé2kak
-elé2k1an
-elé2k1á
-elé2k1e2le
-elé2kev
-elé2keze
-elé2kezi
-elé2kezt
-el1ékí
-elé2kö
-elé2ku
-el1él.
-el1éld
-elé2led
-el1é2let
-el1é2lé
-el1élh
-el1é2li
-el1élj
-el1éln
-el1éls
-e2l1élt
-el1é2lü
-e2l1élv
-e2l1é2neke
-e2l1é2nekh
-e2l1é2red
-e2l1é2rem
-elé2rend
-e2l1é2rez
-elé2rét.
-elé2ri.
-e2l1érp
-e2l1érrő
-e2lértel
-e2l1érté
-el1érth
-e2l1értő
-e2l1é2rü
-e2l1érz
-2elésétő
-elé2so
-2elész.
-2elészel
-2elészem
-2elészne
-2elészné
-2elésző
-2elészü
-2elészv
-elé2tel
-e2l1é2tes
-elé2tete
-e2l1étk
-e2l1étt
-e2l1év.
-el1fl
-el1f2r
-el1gl
-1elhap
-el2ib
-el1ideg
-el1idé
-el1i2do
-el1iga
-e2l1igé
-el1ill
-e2l1i2ma
-e2limá
-e2l1imp
-e2l1into
-el1i2on
-eliő2
-e2l1i2p
-e2l1ira
-e2l1i2ro
-e2l1i2si
-e2lism
-el1iss
-el1iste
-eli2tin
-eli2tol
-elitu2
-el1i2vá
-e2l2ix
-el1i2zo
-e2l1íg
-el1í2rá
-el1í2v
-elka2r1á
-1elkezdé
-1elkezdő
-el3ki
-el1k2l
-el1k2r
-el1kv
-el2l1a2dá
-el2l1a2dó
-ell1alk
-el2l1amb
-el2lamp
-ella1t
-el2lau
-el2l1ábr
-el2l1áll
-1ellátáso
-1ellátásü
-1ellátm
-el2lef
-elle2g1ó2
-ell1elké
-el2lelm
-1ellená
-1ellenes
-1ellenf
-1ellenő
-1ellens
-1ellenz
-el2lid
-ell1inf
-ell1ing.
-ell1int
-el2l1or
-ell1osz
-ell1órá
-el2lön
-el2lös
-el2l1űr
-1elmééh
-1elmél
-1elméte
-1elnép
-1elnök
-el1obj
-el1off
-el1oj
-e2l1o2ká
-el1okm
-e2l1o2l
-el1oml
-el1omo
-el1ont
-el1opc
-e2l1ope
-el1oro
-el1orr
-el1os
-e2losz
-e2l1ox
-eló2ig
-eló2in
-e2l1ó2ri
-el1öb
-el1ö2m
-e2l1ön
-e2l1ör
-e2l1ös
-e2l1ö2z
-2előáp
-2előár
-2előbé
-2előbi
-2előbo
-1elődei
-elő2d1í2
-1elődje.
-2elődo
-1elődöt.
-előe2r
-1e2lőfú
-2előfü
-2előfű
-1e2lőhív
-1előhű
-2előib
-2előik
-2előim
-2előiv
-2előja
-2előké.
-2előkért
-1előkése
-1e2lőkést
-2előkl
-2előkő
-2előkt
-2előku
-2előkü
-2előmö
-2előmű
-2előna
-1előnn
-2előnö
-1előny.
-1előnyb
-2előnyer
-1előnyh
-2előnyi
-1előnyk
-1előnyn
-1előnyö
-1előnyr
-1előnyt
-1előnyü
-2előö
-el1őr.
-1e2lőreg
-1előreh
-1előrej
-el1őriz
-el1őrl
-2előro
-e2l1őrü
-2elősá
-2előso
-2elősö
-elő1s2p
-2elősze
-2előszé
-2előszi
-2előszó
-2előtü
-2előü
-2elővis
-2előviz
-1e2lőz.
-e2lőze
-2e3lőzene
-1előzm
-el1p2l
-el1pró
-el1sk
-el1sl
-el1sm
-el1sz2t
-el2t1aj
-eltára2d
-eltár1ada
-2elte.
-el2t1e2rei
-2eltes
-2eltet.
-2eltete
-2elteté
-2elteth
-2elteti
-2eltetj
-2eltetn
-2eltets
-1eltettk
-2eltetü
-2eltetv
-2eltéb
-2eltél
-2eltét
-el1t2ra
-el1trá
-el1tré
-2eltük
-e2l1ud
-el1u2g
-elu2n
-el1und
-el1u2r
-e2l1u2t
-e2l1uz
-el1új
-el1ús
-el1ú2t
-el1üc
-e2l1üd
-e2l1üg
-elügy1ér.
-elügy1érn
-elü2kén
-e2l1ültet
-e2l1ür
-e2l1üs
-e2l1üt
-e2l1üv
-e2l1üz
-el1űrt
-e2l1űz
-elv1ada
-elv1a2dó
-el2v1at
-el2v1árai
-el2v1áras
-el2v1árár
-elv1ász
-el2vát
-el2v1enc
-el2v1égü
-elv1éle
-el2v1ér.
-el2v1éri
-el2vik
-elv1olt
-el2v1ó2
-el2vöd
-el2vő
-el2vú
-e2ly1a2
-e2ly1á2
-e2ly1e2kén.
-e2ly1el
-e2lyer
-ely1eszt
-ely1é2jé
-ely1é2ké
-e2ly1él
-e2lyés
-e2ly1i2ko
-e2ly1ira
-ely2kéj
-e2ly1o
-e2ly1ó
-e2lyöm
-e2lyön
-e2lyös
-e2lyő
-ely1ul
-elyü2l
-e2ly1ülé
-e2m1ab
-em1a2dat
-em1a2dás
-e2m1a2do
-e2m1a2dó
-e2m1adt
-e2m1a2gi
-em1a2ja
-e2m1ajá
-em1ajk
-e2m1ajt
-em1a2ka
-em1aká
-e2m1aku
-em1a2lap
-e2m1all
-em1almá
-em1alv
-e2m1ana
-1emaná
-e2m1a2ny
-ema2p
-em1apá
-em1apr
-em1a2rán
-em1asszo
-e2m1atl
-e2m1a2u
-e2m1a2v
-e2m1a2zo
-e2m1áb
-emá2l
-em1ála
-em1áld
-em1áli
-e2m1áp
-emá2r
-e2m1ára
-e2m1árn
-e2m1áro
-e2m1áru
-em1árv
-e2m1ásá
-emát1a2
-e2m1áte
-e2m1átl
-em1átm
-e2m1átt
-e2m1átu
-1embarg
-1embered
-1emberf
-ember1ő2
-1embers
-emb2len
-1emblé
-em1bre
-1embri
-em1bro
-em1dr
-e2m1ef
-eme3ger
-eme3gi
-em1egyet
-em1egyé
-e2m1egz
-e2m1e2kés
-e2m1ela
-em1elb
-1emelet
-1emelke
-e2m1ellá
-e2m1elm
-2e2m1elo
-1emelőb
-1emelőe
-em1előny
-1emelős
-1emelőv
-1emelty
-e2m1ember
-e2m1e2mel
-e2m1emu
-e2mener
-emenes1s
-e2m1e2p
-e2m1e2rény
-e2m1e2rő
-eme2sa
-em1e2seté
-e2m1e2sés
-em1e2szem
-e2m1e2szet
-e2m1eszk
-e2m1eszm
-e2m1eu
-e2m1e2v
-eme2z1a
-eme2z1á2
-eme2z1o
-eme2z3s
-e2m1ég
-e2m1é2he.
-e2m1é2hen
-e2m1é2hes
-e2méhs
-e2m1é2j
-emé2k
-e2m1éke
-em1ékr
-em1é2let
-e2méneke
-e2m1ép
-e2mértel
-e2m1értéke
-e2m1értéké
-e2m1értékn
-em1észl
-emé2t1a2
-emé2tár
-e2m1é2tek
-emé2tel
-e2m1étel.
-emét1elh
-emét1els
-em1fl
-emfoga2d
-emfo2gada
-em1f2r
-em1gr
-e2midé
-em1i2dő
-emi2g
-e2m1iga
-e2m1ige
-e2m1igé
-em1iks
-emi2m
-em1ima
-e2mimá
-e2m1inf
-e2m1ins
-e2m1inte
-e2m1i2p
-e2m1ira
-e2mirá
-e2m1iro
-e2m1irt
-e2m1isk
-e2m1ism
-e2m1iste
-emi2sza
-emi2szá
-emi2szo
-em1izé
-em1izg
-e2m1i2zo
-e2míg
-e2m1íj
-e2mír
-e2m1í2v
-em1kl
-em1kr
-1emlékm
-1emlékv
-emo2k
-e2m1okl
-em1oko
-e2m1okt
-em1ola
-e2m1old
-em1oll
-e2m1olt
-e2m1o2p
-e2m1ork
-e2m1ors
-e2m1orv
-emo1t2
-emó2ra
-em1ó2rá
-e2m1öb
-emö2k
-e2m1ökö
-emö2l
-e2m1öld
-em1ölé
-e2m1ön
-e2m1ö2r
-e2m1ös
-em1öv
-e2m1ö2z
-em1őr.
-em1őrk
-em1őrn
-em1ő2rö
-em1őrr
-em1őrt
-1empát
-em1pc
-em1p2re
-em1pré
-em1pro
-em1pró
-em1p2s
-em1sk
-em1sm
-em1sp
-em1s2t
-em1t2r
-1e2mu.
-e2mud
-e2mug
-e2muj
-1e2muk
-1emulz
-1e2mum
-em1uno
-e2mur
-e2musz
-em1utal
-e2m1u2tá
-e2mutc
-e2m1utó
-e2m1új
-em1úr
-e2m1út
-e2m1üd
-e2m1üg
-e2m1ü2lő
-e2m1ünn
-e2m1ür
-e2m1üt
-e2m1üv
-e2m1üz
-e2m1űz
-em1zr
-e2n1ab
-en1a2do
-en1agi
-e2n1a2j
-e2n1a2k
-en1a2la
-en1alk
-en1all
-en1alm
-e2n1a2n
-en1a2pá
-ena2p1e
-en1a2rá
-en1arc
-en1asz
-en1atk
-en1aut
-en1ábr
-en1ág
-en1áld
-en1álm
-e2n1ára
-en1árn
-en1á2ro
-e2n1áru
-en1átk
-en1átm
-en1átv
-e2n1áz
-en1bl
-en2c1a2
-en2c1ár
-en2c3h
-en2c1ip
-en2cí
-en2c1ol
-en2c1os
-en2c1ö2
-enc3ség
-en2c3sor
-enc3s2p
-enc3sz
-en2cu
-en2d1adá
-en2d1alk
-en2dano
-en2d1áll
-en2d1árn
-en2d1átl
-end1é2jé
-en2d1ér.
-en2d1érr
-en2d1értő
-en2d1érz
-en2d1or
-en2d1ón
-en2d1ó2r
-en2dös
-en1d2rá
-en2dú
-en2dza
-eneá2
-e2n1egér
-e2n1egg
-en1e2lek
-en1eljá
-en1elk
-e2n1ell
-en1elm
-en1elny
-en1elü
-en1elvá
-e2n1eml
-eneó2
-ene1p2
-2enerá
-1e2nerg
-e2n1ern
-e2nerv
-2enes
-ene1sztá
-ene2tal
-ene2tos
-e2n1ex
-ené2k1a
-ené2kel
-enéki2
-ené2kis
-en1épí
-en1épü
-e2n1ér.
-e2nérd
-e2n1éré
-e2n1éri
-e2n1érte
-e2n1érv
-ené2sza
-ené2szer
-ené2sz1in
-e2n1étk
-e2n1éves
-ené2vig
-en1f2l
-enfluo2
-enga2
-en2gan
-1engedé
-enger1ő2
-engés3s
-eng1g
-e2nidé
-enidi2o
-e2n1i2ga
-e2n1ige
-e2n1igé
-en1ill
-e2nimá
-e2n1ina
-en1ind
-e2n1inf
-e2n1inte
-e2n1inv
-e2n1ira
-en1i2rá
-en1isk
-e2n1ism
-eni2sza
-eni2szer
-eni2szo
-eni2sz1ó2
-e2n1ív
-en1k2j
-en2n1eme
-en2nes
-enn1ége
-enné2k
-en2n1éke
-en2nér
-en2nir
-en2n1ol
-en2nú
-en2n1ül
-enny1a2d
-enny1as
-enny1á
-en3nyer
-enny1í2
-en3nyu
-e2n1ob
-e2n1of
-e2n1oi
-en1old
-e2n1olv
-eno2ni
-en1opt
-eno2r1á2
-e2n1ost
-en1oszt
-e2n1ox
-enóta2
-enó2tal
-enó2t1e2
-e2n1öb
-e2n1öl
-en1ön
-e2n1ös
-e2n1ö2t
-e3növ
-enő2rü
-en1pr
-en1ry
-en2s1ab
-en2s1a2l
-en2s1a2n
-en2sas
-en2s1el
-en2s1érté
-ens3szá
-en2s3zon
-en2t1a2c
-en2tada
-ent1agy
-enta1k2
-en2t1a2la
-ent1alj
-en2t1alk
-ent1a2lo
-ent1and
-en2t1a2ny
-ent1ass
-en2t1á2rak
-en2t1á2rat
-en2t1árá
-en2t1á2rú
-en2t1elmé
-ente2r1a
-en2t1este
-en2t1esté
-en2t1esti
-ente1t2r
-en2t1é2g
-en2tép
-en2térm
-en2t1é2ve.
-en2tigé
-en2t1i2o
-enti2p
-ent1ipa
-enti2sz
-en2t1okt
-en2tön
-en1trad
-ent2ran
-en2tun
-en2t1u2r
-en2t1ü2z
-en1uta
-en1úr
-en1út
-e2n1űz
-e2nyab
-e2ny1a2d
-e2ny1ae
-enya2g
-eny1aga
-eny1agá
-e2ny1aj
-eny1alk
-e2ny1a2n
-eny1aré
-e2ny1as
-e2ny1at
-e2ny1au
-eny1d2
-eny1e2dzé
-e2nyelm
-eny1előn
-eny1elvo
-eny1elvű
-e2ny1e2rő
-eny1eve
-e2nyéva
-1enyhi.
-eny2h1ős
-e2ny1id
-e2nying
-e2ny1ira
-e2nyiz
-eny1í2ró
-e2nyok
-e2ny1o2l
-e2ny1or
-e2ny1os
-e2ny1ó2
-enyö2k
-e2ny1ökö
-e2nyöt
-eny1s
-enyt2
-eny1tr
-eny1út
-enyva2
-eny2van
-1enyve.
-eny2v1e2l
-enyves1s
-en2zal
-1enzim
-e1o
-eo2áz
-e2obo
-e2ode
-eo2dú
-eog2rafi
-e2oka
-eo2kád
-e2okár
-e2oké
-e2o1k2l
-e2okon
-eo2kos
-eo2kö
-eo2laj
-e2oló
-eo2ly
-e2ome
-e2omé
-e2omi
-eo2n1al
-eo2nan
-eon1any
-eo2natom
-eo2n1au
-eo2n1ál
-eo2nár
-eon1d2
-eo2ner
-eon1f2
-eo2niz
-eo2nö
-eon1t2r
-eo2n1ú
-eo2nü
-e2opa
-eo2pe
-e2o1p2l
-eo1pro
-eo2r1a2
-eo2r1á2
-eo2res
-eo2r1és
-eorgi2a
-e2orgi2áb
-eori2tá
-eor1k2
-eo2rö
-eor1s2
-eo2so
-e2ost
-e2osza
-eo1sz2f
-e2otí
-e2oto
-eo1t2r
-eo2vi
-e1ó
-eóa2d
-e2óbö
-eó2ce
-eó2dá
-e2ófa
-e2óhe
-e2óje
-e2ókap
-e2ókép
-e2ókor
-e2ómi
-e2ómű
-e2óné
-eó2no
-eó1pr
-eó2rá
-e2óre
-e2ósu
-e2ószo
-e2óta
-e2ótá
-e2óte
-e2óté
-e2óti
-e2ótí
-eó1tré
-eó2vak
-e2óve
-e2óvé
-e2óví
-eó2vo
-eó2vó
-e1ö
-eö2bö
-eö2dé
-eö2kö
-eö2le
-eö2lé
-eö2li
-eö2lö
-eö2lő
-eö2lü
-eö2mö
-eö2nö
-eö2rö
-eö2rü
-e2ös.
-eö2ve
-eö2vi
-eö2vü
-eö2zö
-e1ő
-eő2re
-eő2rö
-eő2rü
-eő2sz
-e2p1ab
-e2p1a2da
-e2p1a2dá
-e2p1a2dó
-ep1a2gy
-e2p1aka
-e2p1akk
-e2p1akn
-ep1a2lak
-ep1a2lap
-e2p1alj
-e2p1alk
-epa2lom
-e2p1a2ny
-epa2rán
-ep1atró
-ep1aut
-ep1a2zo
-e2p1áb
-e2p1á2g
-ep1állá
-e2p1á2ra
-epá2s
-e2p1ása
-ep1áta
-ep1átc
-e2p1á2t1é
-ep1átf
-e2p1átm
-ep1á2t1o
-ep1átt
-ep1átü
-e2p1átv
-ep1bl
-ep1br
-ep1dr
-e2p1e2dz
-ep1e2lemr
-e2p1e2let
-e2p1ellá
-e2p1elo
-e2p1ene
-epe2ral
-epe2r1e2c
-epe2rev
-epe2rin
-epe2rül
-e2p1esti
-epe2szá
-e2peszmé
-e2p1ex
-1e2péd
-1epééb
-1epééi
-1epéén
-e2p1ég
-1e2péit
-e2péj
-ep1ékh
-ep1éle
-ep1élm
-1e2pénk
-e2p1ér.
-ep1fl
-ep1ido
-e2p1i2ko
-ep1ind
-e2p1inga
-e2p1i2rá
-e2p1irt
-e2p1ism
-e2piz
-e2p1íg
-e2p1íj
-e2p1ín
-e2p1ív
-ep1kl
-ep1kr
-ep2lag
-e1p2laká
-e1p2lan
-e1p2lán
-e2p1ob
-e2poch
-ep1okt
-e2p1olv
-ep1ope
-e2p1orn
-ep1orsó
-1eposz.
-1eposza
-1eposzá
-1eposzt.
-ep1osztá
-e2p1ö2l
-ep1önt
-e2p1ös
-e2p1öv
-e2p1őri
-ep2pan
-ep2pát
-ep2p1e2le
-ep2p1elh
-epp1eró
-eppó2
-ep2pór
-ep2pö
-ep1pro
-ep1pró
-ep3ret
-e1p2réd
-e1p2rin
-e1proj
-e1p2rot
-ep1s2k
-ep1sp
-ep1st
-ep2tad
-ep2t1aj
-ep2t1í2v
-ep2t1op
-e2p1ug
-e2p1u2ta
-e2p1utó
-ep1új
-ep1út
-e2p1üg
-e2p1üt
-e2p1üz
-e2p1űz
-er1abla
-er1a2bor
-e2r1abr
-er1abs
-era2dat
-e2r1a2dá
-er1adm
-er1a2do
-e2r1a2dó
-era1dr
-er1a2ge
-er1agr
-e2r1a2ja
-e2r1ajk
-er1ajtó
-e2r1a2kad
-e2r1a2kas
-e2r1akc
-e2r1akti
-er1a2la
-e2r1alg
-e2r1alj
-er1alk
-e2r1a2lo
-er1als
-e2r1alt
-er1alv
-er1amb
-er1amp
-er1angy
-er1ann
-er1a2nya
-er1a2pa.
-er1app
-er1aps
-e2r1a2ro
-e2r1asp
-era2sz1a2l
-era2szav
-era2szárn
-era2szel
-era2sz1é2p
-e2r1atk
-e2r1atl
-era1t2r
-er1att
-er1aut
-e2r1a2zo
-e2r1ábr
-erá2fé
-er1áge
-er1á2gú
-e2r1á2gy
-er1állá
-er1állé
-er1állo
-er1álló
-er1állv
-er1ápo
-e2r1ár.
-er1á2rak
-er1á2rá
-e2r1árb
-er1áre
-er1áré
-er1árf
-er1árk
-e2r1á2ro
-e2r1árr
-er1árs
-er1á2ru
-er1árú
-er1árv
-er1ásá
-e2r1á2sz
-er1á2t1e2
-e2r1áth
-er1á2ti
-e2r1átí
-e2r1átj
-e2r1átk
-er1átl
-e2r1átm
-e2r1átn
-e2r1átr
-e2r1átt
-e2r1átv
-erb1i2na
-er2c1a2l
-er2car
-er2c1ár
-er2c1át
-erc1ell
-er2c3ho
-er2cid
-er2c1ina
-er2c1iná
-er2c1i2pá
-er2cis
-erc1k2
-erco2
-er2cö
-er2csad
-er2cs1an
-ercs1ál
-er2cú
-er2cz
-1erdej
-1erdő
-ereá2
-1eredetű
-e2redén
-1e2redm
-eree2
-er1eff
-ere2gál
-ere2gel
-e2r1e2ger
-erei2g
-1e2rején
-1e2rejér
-ere2k1el
-erek1e2szű
-erek1é2j
-ere2kot
-erek1t
-ere2k1ú2s
-e2r1e2leg
-er1elér
-e2r1ellen
-er1elli
-e2r1elö
-e2r1elr
-erem1egy
-ere2m1emb
-erem1érté
-ere2m1ut
-e2r1enz
-ereo1gra
-ere2pan
-ere2pas
-erepá2
-ere2p1ál
-ere2p1e2sé
-ere2pin
-ere2pos
-er1erk
-er1ern
-er1eró
-e2r1esti
-e2r1estj
-e2r1estr
-e2resze.
-ere2szí
-e2reszü
-ere2tál
-ere2tát
-ere2t1eg
-ere2t1erj
-ere2t1é2rő.
-ere2t1é2ve.
-eretö2
-er1e2vés
-e2r1ex
-1e2rezet.
-1e2rezete
-1erezőkh
-erébe2
-eré2bes
-er1ég.
-er1é2ge
-er1égé
-e2r1éj.
-e2r1éjb
-er1éjf
-e2r1éjn
-e2r1éjs
-eré2k1a2
-eré2ká
-eré2kol
-eré2k1ö
-e2réneke
-e2r1é2neké
-eré2p1a
-eré2pá
-e2r1é2ren
-e2r1é2ré
-e2r1é2ri
-eré2sa
-eré2s1elv
-eré2sza
-eré2szá
-eré2szo
-eré2szö
-er1é2ter
-e2r1étk
-e2r1év.
-er1é2ve.
-e2r1é2vek
-e2réven
-e2r1é2ves
-e2r1é2vet
-e2r1é2vén
-er1é2vét
-er1évf
-er1évh
-e2r1é2vi
-e2r1évn
-e2r1évr
-er1évt
-er1évv
-erfé2l1é2v
-er1fl
-er1f2r
-er1gl
-e2r1i2deg
-e2ridé
-e2r1ido
-er1idu
-eri2ga
-e2r1i2gá
-e2r1i2kon
-e2r1i2mi
-eri2no
-erint2
-e2rinteg
-erin1tr
-e2r1i2on
-eri2os
-e2r1i2par
-e2r1ira
-er1iró
-e2r1isk
-er1ism
-eri2szo
-e2r1ita
-e2r1i2zé
-e2r1izg
-er1íg
-er1íj.
-er1íjá
-e2r1ír
-e2r1í2z
-er1k2r
-er1k2v
-erme2k1a2
-erme2ká
-erme2kesz
-erme2ko
-erme2köl
-erme2sz1á
-er2mind
-erm1isi
-ern1ala
-ern1ékn
-ern3n
-er2n1ó2d
-1ernyő
-er1okl
-e2r1okm
-er1olda
-e2r1o2li
-ero2nal
-er1ope
-e2r1opt
-er1orc
-er1ord
-er1orm
-er1orn
-er1o2ro
-er1ors
-e2r1orv
-erosz2f
-e2r1o2ve
-e2r1ovi
-e2r1óc
-er1ó2dá
-er1ólo
-er1ó2rá
-er1óri
-e2r1ö2c
-erö2k
-er1ökl
-er1öko
-e2r1ökö
-e2r1ö2l
-e2r1ör
-e2r1ös
-e2r1öt
-e2r1ö2z
-e2rődd
-erőé2n
-1erőlt
-1e2rőmé
-1erőmh
-1e2rőnö
-1e2rőö
-e2r1őri
-er1őrö
-er1p2l
-er1p2s
-er2rév
-er1ry
-er2s1a2d
-ers1alk
-er2s1an
-er2sat
-er2s1á2gi
-ers1ára
-ers1eml
-er2sérte
-er2s1érté
-er2s1értő
-er2sid
-er2s1im
-er2s1i2n
-er1ská
-er2s1od
-er2s1ol
-er2s1ón
-er1spor
-er1srá
-er1stra
-er2sut
-ersz2to
-er2t1ai
-ertá2p
-ert1ápo
-ertára2d
-ertár1ada
-er2t1elké
-ert1estj
-ert1esze
-er2t1é2j
-er2t1ékn
-er2t1évén
-er2t1é2vév
-er2tid
-er2t1i2m
-er2t1íz
-er2tos
-ert1órá
-er2t1ös
-er2t1öz
-er1t2ran
-er1trén
-ert1s
-er2t1út
-erubi2
-1e2rup
-e2r1u2ra
-er1urá
-er1uru
-er1u2sz
-er1u2tá
-e2r1új
-e2r1úr
-e2r1ú2s
-er1útj
-er1útl
-er1ú2to
-er1útr
-e2r1üd
-e2r1ügg
-er1ügyb
-er1ügyn
-er1ügyr
-e2r1üled
-e2r1ür
-e2r1üs
-e2r1üt
-e2r1ü2v
-e2r1üz
-e2r1ű2z
-er2v1ala
-er2v1alt
-erva2n
-erv1any
-er2v1á2ru
-er2vása
-er2v1átk
-erv1e2lőké
-er2vereze
-er2v1e2sze
-er2vék
-er2vérte
-er2v1érz
-er2vos
-er2vös
-er2vú
-er1ya
-2esa.
-e2s1a2b
-e2s1a2d
-2esait
-e2s1alja
-es1alm
-esa2n
-es1any
-esa2p
-es1apá
-es1arc
-es1ass
-es1asz
-es1a2ty
-e2s1au
-2esábó
-e2s1á2g
-2esán
-es1ára
-es1á2ru
-2esát
-es1bl
-es1br
-es2ch
-1esdő
-es1dró
-1esedez
-ese1fr
-ese2gye
-e2s1elm
-e2seng
-es1epri
-e2s1erd
-eseren2
-1e2settü
-2esé.
-esé2g1el
-1eséll
-1esély
-e2s1ép
-es1érc
-esés3s
-e2s1i2d
-esike2t1
-e2s1ina
-es1i2pa
-e2s1isk
-1esítőst
-es1í2zű
-e1s2kat
-e1s2kál
-es2kic
-1eskü
-es2lat
-eslege2l
-esle2t1o
-es2lin
-e1s2lu
-e1s2mac
-esná2
-2esok.
-2esoka
-2esokbó
-2esokk
-2esokr
-2eson
-e2s1op
-2esos.
-2esosa
-es1osz
-es1ott
-e2s1ó2r
-esőká2
-e2sőz
-es2pan
-es2pec
-es1p2l
-e1s2pó
-e1s2rá
-es1stá
-es3szab
-essz1aga
-essz1a2r
-1esszenc
-es3szerű
-essz1élet
-essz1élt
-essz1int
-essz1ok
-es3szö
-e1s2tab
-es2taf
-es2t1a2l
-es2tana
-es2t1a2ny
-estapolc1
-es2t1a2ra
-est1ará
-e1s2tat
-es2taz
-es2t1á2p
-est1áram
-es2t1ári
-es2t1árn
-es2t1át
-1esteko
-es2tenz
-este2r1a
-es2t1este
-es2t1esti
-1estéih
-1estéj
-1estém
-1esténk
-es2t1ér.
-es2t1éri
-es2t1érr
-es2térte
-es2t1é2rü
-es2t1ill
-es2t1ina
-es2t1int
-es2tip
-es2t1isz
-es2tiz
-es2t1ol
-e1s2top
-esto2r
-es2t1os
-es2t1ó2r
-estö2
-es2t1ös
-es2t1őr.
-es2t1őrk
-es2t1őrö
-es2t1őrr
-es2t1őrt
-es2tun
-es2tú
-es2tür
-es2t1ü2z
-e2s1ud
-esu2r
-es1ura
-es1urá
-e2s1utá
-es1úr.
-es1úrb
-es1úré
-es1úrh
-es1úri
-es1úrk
-es1úrn
-es1úrp
-es1úrr
-es1úrt
-e2s1ú2t
-e2s1üz
-e2sza2c
-esz1acé
-e2szad
-e2sz1a2e
-esz1ajt
-esza2k1é
-esz1akn
-esz1alj
-esz1any
-e2sz1ara
-e2sz1au
-e2száru
-e2sz1ás
-eszá2t
-esz1áts
-e2szece
-eszeg1ér
-e2sz1egy
-esz1ekés
-e2sz1ela
-e2sz1e2mel
-1eszenc
-e2sz1erd
-e2szev
-e2sz1ex
-eszé2do
-esz1é2pí
-e2sz1é2ri
-esz1g2
-esz1i2pa
-esz1isk
-esz1ist
-e2sz1ita
-e2sz1iz
-eszke2l
-1eszme.
-1eszméb
-1eszméi
-1eszméj
-1eszmék
-1eszmén
-1eszmét
-1eszmév
-e2sz1old
-eszö2l
-esz1ölő
-e2sz1ön
-es3zsá
-esz3se
-esz2tab
-esz2tad
-esz2t1a2gá
-esz2taj
-esz2t1ala
-esz2t1alj
-esz2t1ap
-eszt1árf
-esz2t1árn
-esz2t1e2v
-esz2t1ér.
-esztés3s
-1esztéti
-esz2tid
-esz2t1ol
-esz2t1ó2r
-esztö2
-esz2t1öl
-esz2t1őr.
-esz2tut
-esz2t1út
-esz2tüz
-e2sz1ü2g
-e2sz1ü2z
-1e2szűs
-1e2szűt
-esz1z
-et1abr
-eta2c
-et1acé
-e2t1a2d
-e2t1a2gá
-e2t1a2gy
-e2t1a2j
-et1a2kas
-e2t1akc
-et1akó
-e2t1aku
-eta2lag
-eta2lak
-et1a2lás
-e2t1alb
-et1ald
-et1alf
-e2t1alg
-et1alj
-e2t1alk
-1e2talo
-eta2n1é
-eta2nyag
-e2tapr
-et1a2ra
-e2t1ará
-e2t1arc
-e2t1arz
-et1asp
-e2t1ass
-et1a2szá
-e2t1atk
-e2t1a2to
-e2t1aty
-e2t1a2u
-e2t1a2z
-et1ábr
-e2t1á2cs
-e2t1áf
-et1ág.
-e2t1á2ga
-et1ágb
-et1ágg
-et1ágn
-et1ágr
-e2t1áh
-et1áju
-et1áll
-e2t1álm
-e2t1á2rad
-et1áre
-et1árny
-etá2ron
-et1á2rú
-e2t1á2ta
-etát1a2d
-e2t1áth
-et1átl
-et1áts
-et1átu
-e2t1átv
-et1bl
-et1br
-et2ch
-et1dr
-etea2
-eteg1á
-ete2g1e2l
-ete2gó
-e2t1e2ke.
-e2t1e2kei
-e2t1e2kek
-ete2k1ék
-e2t1e2kénk
-e2t1e2kés
-e2t1elc
-et1eldo
-ete2lege
-ete2legy
-et1e2lej
-e2telemz
-e2t1e2lesé
-e2t1eléré
-etelés1s
-e2t1elha
-e2t1elhá
-et1elhel
-e2t1eliga
-e2t1eljá
-e2t1ellá
-e2tellen
-e2t1elme
-e2t1elmén.
-e2t1elméne
-e2t1elmét
-e2t1elnev
-e2telnö
-e2t1elny
-e2t1e2lo
-ete2lőad
-et1elszá
-e2t1eltá
-e2t1elter
-et1eltérí
-e2t1elvá
-e2t1elvez
-e2t1elvo
-e2t1elz
-ete2mal
-e2t1ember
-ete2mel
-e2t1enz
-ete1p2
-e2t1erd
-ete2rén
-etero1
-e2t1erő
-ete2s1a
-e2t1este.
-e2t1eszté
-ete2teté
-ete2t1ér.
-1e2tetésen
-1e2tetésn
-ete2tos
-ete2t1ö
-ete1tra
-e2t1ezr
-etéé2
-et1ég.
-et1égb
-et1é2gé
-et1égg
-e2t1é2gi
-et1égn
-eté2k1a2
-eté2k1á2
-eté2k1e2l
-et1ékí
-eté2kos
-e2t1élm
-e2t1érc
-e2t1é2ré.
-e2t1é2rén
-e2t1é2rér
-e2t1é2rét
-eté2rie
-e2t1érke
-e2t1érm
-e2t1é2rős
-e2t1értel
-e2t1érz
-eté2sa
-eté2s1ég
-eté2so
-etés3s
-eté2sza
-et1észl
-et1észr
-eté2t1a2
-eté2ter.
-eté2tere
-eté1tra
-e2t1é2ven
-eté2ves.
-e2t1é2vet
-e2t1é2véh
-eté2véig
-e2t1é2véne
-eté2vétő
-et1évh
-et1évt
-et1fr
-et1gl
-et1gr
-et2hei
-eti2d
-et1ide
-et1ido
-eti2g
-e2t1ige
-e2t1igé
-e2t1igy
-e2till
-et1i2ma
-e2t1imá
-e2t1i2mi
-1e2timo
-e2t1imp
-etina1
-e2t1ind
-e2t1inf
-e2t1ins
-e2t1inte
-e2t1inv
-e2tinz
-e2t1i2pa
-e2t1i2ra
-e2t1iri
-e2t1iro
-e2t1iró
-e2t1ism
-e2t1iste
-e2t1i2sza
-e2t1i2szon
-e2t1i2ta
-et1izé
-e2t1izg
-e2t1izo
-e2t1izz
-e2t1íg
-e2t1íj
-e2t1ín
-e2t1í2r
-e2t1í2v
-e2t1íz
-et1kl
-et1k2r
-et1kv
-1etnol
-et1oda
-e2t1okm
-e2t1okt
-e2t1oml
-eto2n1a2
-eto2nál
-eto2n1is
-eton1n
-et1opc
-et1ope
-e2t1opt
-2etor
-et1ord
-e2t1org
-e2t1orm
-et1orom
-e2t1ors
-e2t1orv
-et1ost
-etosz2f
-et1oszl
-et1oszt
-e2t1ou
-e2t1ó2c
-et1ó2ra
-et1ó2rá
-e2t1ó2v
-et1öko
-etö2l
-e2t1öl.
-et1ölé
-e2t1ölő
-e2t1ön
-e2t1ös
-e2t1öt
-et1ö2vü
-e2t1ö2z
-etőa2
-etőe2l
-etőé2b
-etőfé2l1é2v
-e2t1őr.
-e2t1őrb
-et1őrc
-et1ő2réh
-ető2ri.
-et1őrk
-et1őrl
-e2t1őrn
-ető2rök
-et1őrp
-e2t1őrr
-e2t1őrs
-et1ő2rü
-ető1s2p
-et1pl
-et1pr
-et1ps
-e1trap
-e1trau
-e1t2rág
-e1tréf
-e1t2ril
-et1sk
-et1sn
-et1sp
-et1st
-et3tad
-ettai2
-etta2n1ó2
-et2telem
-et2t1ing
-et2tír
-et1t2rá
-et1tri
-etty1á2
-e2t1ug
-et1una
-et1und
-et1u2ra
-etu2sz
-et1utá
-et1utó
-et1utu
-e2t1új
-e2t1ú2ri
-e2t1út
-e2t1üd
-e2t1üg
-e2t1üld
-e2t1üt
-e2t1ü2v
-et1ü2zem
-et3ya
-e1u
-eu2bo
-eu2ga
-eu1k2h
-eu2mal
-eu2m1e
-eu2mim
-eu2m1i2p
-eu2mis
-eu2m1iz
-eu2mí
-eu2mór
-eu2mő
-eum1p2
-eu2mü
-eu2na
-eu2ná
-eu2ni
-eu2no
-eu2nó
-e2ur.
-eu2rá
-eur1áz
-eu2ri.
-eu2rig
-e2urt
-eu2szí
-e2utai
-eu2tal
-e2utan
-eu2taz
-e2utái
-e2utájá
-e2utáka
-e2utákk
-e2utákná
-e2utákr
-e2utánk
-e2utár
-eu2tó
-e2uts
-eu2zs
-e1ú
-eú2jí
-eú2sz
-eú2ti
-eú2to
-e1ü
-eü2dü
-eü2ge
-eü2gy
-eü2le
-eü2lé
-eü2li
-eü2lö
-eü2lő
-eü2lü
-eü2re
-eü2rí
-eü2rü
-eü2sz
-eü2te
-eü2tő
-eü2tü
-eü2ve
-eü2vö
-eü2ze
-e1ű
-eű2ri
-eű2ze
-eű2zé
-eű2zi
-eű2zö
-eű2ző
-evá2r1al
-eve2szö
-evé2lá
-evé2l1e2l
-evé2nyel
-evé2r1emb
-evé2rö
-evé2so
-evé2sza
-evé2szö
-evízi2óét
-ex1ab
-ex1al
-ex1ap
-ex1áb
-ex1á2r
-e2x1át
-ex1bl
-ex1br
-ex1dr
-e2xeg
-e2x1elm
-e2x1elvá
-e2x1er
-e2x1ék
-e2x1él
-e2x1ép
-ex1idő
-e2x1igé
-ex1inf
-e2x1ing
-e2x1int
-ex1izz
-e2x1íj
-e2x1ír
-e2x1ob
-ex1op
-ex1ön
-ex1ör
-ex1ös
-1expan
-ex1sk
-ex1sp
-ex1st
-ex1új
-e2x1üg
-e2x1üv
-e2x1üz
-eza2c
-ez1acé
-e2z1a2d
-e2z1af
-ez1ajt
-e2z1a2l
-e2z1a2n
-ez1arz
-e2z1as
-ez1aut
-ez1áll
-ezá2ma
-ez1árb
-ez1árr
-ez1á2rú
-e2z1át
-ez1bl
-ez2dál
-ez1e2gy
-ez1e2kék
-e2z1ela
-e2z1e2leme
-e2z1elér
-e2z1elm
-e2z1el1ö
-e2z1e2mel
-ezen2t1e2
-eze2r1a
-eze2rá
-eze2red
-eze2r1el
-eze2r1em
-eze2r1es
-eze2r1o
-ez1erő
-ez1este
-e2z1e2sz
-eze2t1a2
-eze2t1á
-eze2t1eg
-eze2t1e2l
-eze2t1esz
-eze2t1ér.
-eze2t1é2rő.
-eze2t1é2ve.
-eze2t1o
-eze2tu
-e2z1ég
-e2z1é2j
-ezé2ká
-ezé2k1o
-e2z1él
-ezér1emb
-ezé2rett
-ezé2ru
-ezé2sa
-ezéskész1
-e2z1é2te
-ez1fr
-ez1gr
-ez1i2do
-ezi2g
-e2z1igé
-e2z1i2ko
-e2z1ill
-ez1imp
-ez1iná
-ez1ind
-ez1inf
-ez1int
-ezi2o
-ez1ion
-e2z1i2p
-ez1i2r
-ezisé2g
-ezi2s1égé
-e2z1ism
-ezi2ta
-e2z1í2v
-ez1k2r
-ezkupac1
-ez1kv
-e2z1ob
-ez1old
-ezo2nár
-ezon3n
-ez1opt
-e2z1ox
-e2z1ó2l
-e2z1ó2r
-ez1ó2t
-ez1ö2b
-ez1ös
-ez1ö2v
-ezőe2l
-e2z1ő2ri
-ez1őrl
-e2z1őrs
-ez1ő2rü
-ez1őrz
-ezős1orra
-ez1pl
-ez1p2r
-1ezrede
-1ezreds
-1ezrel
-1ezrem
-1ezresn
-1ezrű
-ez3saj
-ez3sap
-ez3sát
-ez3sáv
-e2z3sé
-ezsió2
-ez3sl
-ez3sor
-ez3s2p
-ez3s2ta
-ez3str
-e2z3sü
-ez3sz
-ez1t2r
-ez1u2r
-ez1ut
-ez1új
-ez1ú2t
-e2z1üg
-1e2züs
-e2z1üt
-e2z1ü2z
-2é.
-é1a
-éa2da
-éa2dá
-éa2do
-éa2dó
-éa2ga
-éa2gi
-éa2já
-éa2ka
-éa2la
-éa2l1e
-éa2na
-éa2ny
-éa2ré
-éa2ri
-éa2ro
-éa2uk
-é1á
-éá2fá
-éá2gy
-éá2ju
-éá2ra
-éá2ro
-éá2ru
-éá2rú
-é2b1ag
-é2b1a2j
-é2b1a2k
-é2b1a2l
-éba2n
-é2b1any
-é2b1a2v
-éb1ál
-ébá2r
-éb2b1á
-éb1eszű
-é2b1é2k
-é2b1él
-é2b1ép
-ébié2
-éb1isk
-éb1i2va
-éb1íz
-éb1kr
-éb1pl
-éb1pr
-1ébres
-é2b1ug
-éb1üg
-éc1a2d
-éc1aj
-éc1a2k
-éc1a2l
-éc1a2n
-éc1ál
-éc1ár
-é2c1e2lem
-é2c1elv
-é2c1ember
-é2c1e2mel
-éc1gr
-éc3ha
-éc3há
-éc3hí
-éc3ho
-é2c1i2d
-é2c1il
-éc1ima
-éc1ob
-éc1os
-éc1őr
-éc1pr
-éc3sab
-écs1ol
-éc3sz
-é2c1u2t
-é2c1ül
-éc3zs
-é2d1ab
-é2d1a2c
-é2d1a2d
-é2d1a2g
-é2d1a2j
-éd1akc
-éd1akt
-éd1a2ku
-éd1alk
-é2d1a2n
-éd1apa
-éd1a2pá
-é2d1arc
-éd1asp
-éd1ass
-éd1a2ti
-éd1att
-é2d1ág
-éd1áp
-éd1dr
-é2d1e2g
-é2d1ej
-é2d1e2ke.
-éde2kétő
-é2d1e2l1a
-é2d1elk
-é2d1ell
-é2d1elo
-éd1ember
-é2d1eml
-é2d1enz
-é2d1ep
-éd1erd
-é2derei
-é2derem
-é2derg
-é2derl
-é2derné
-é2d1erő
-é2derrá
-é2derrő
-é2ders
-é2dertő
-1édesa
-é2desem
-1édesg
-1é2desí
-é2d1ég
-é2d1é2j
-é2d1ékb
-é2d1é2ké
-é2d1ékk
-édé2l
-é2d1éle
-é2d1élm
-é2d1ép
-é2d1ér.
-é2d1é2ri
-é2d1érs
-é2d1érte
-é2d1értő
-é2d1érv
-é2d1érz
-éd1fr
-édi2ad
-édi2aka
-édi2al
-édi2ar
-édi2a1s
-édiasz2
-é2d1i2d
-édi2g
-é2d1iga
-é2d1ige
-é2d1igé
-éd1i2ko
-éd1ill
-é2d1i2m
-éd1i2na
-éd1ind
-é2d1ini
-éd1ins
-é2d1int
-é2d1i2p
-é2d1iro
-é2d1i2z
-é2d1ín
-é2d1ír
-éd1ív
-éd1kl
-éd1okta
-é2d1op
-é2d1or
-é2d1osz
-éd1ott
-éd1ó2r
-éd1öl
-éd1ön
-é2d1ö2r
-éd1öt
-éd1öv
-éd1öz
-é2d1őrm
-é2d1őrn
-édős2
-édő1sp
-éd1pl
-éd1pr
-é1d2ram
-éd2raz
-é1d2rám
-éd1sk
-éd1sp
-éd1sr
-éd1st
-éd1t2r
-é2d1ud
-éd1uj
-éd1ura
-é2d1u2t
-é2d1új
-éd1úr
-éd1ú2t
-é2d1üd
-é2d1üg
-é2d1üt
-é2d1üz
-éd3za
-éd3zá
-éd3ze
-éd3zó
-éd3zü
-é1e
-ée2bé
-ée2la
-ée2le
-ée2lő
-ée2me
-ée2pi
-ée2rő
-ée2se
-ée2sé
-ée2si
-ée2ső
-ée2sz1a2
-ée2sz1á
-ée2szel
-ée2szép
-ée2szir
-ée2szis
-éeszt2
-éesz1tr
-ée2uf
-ée2vé
-ée2vő
-é1é
-éé2ge
-éé2le
-éé2pí
-éé2ra
-éé2te
-éf1ai
-éf1ajtó
-éf1ing
-é2f1is
-éf1kl
-é2f1os
-ég1abl
-ég1abr
-ég1a2d
-ég1aka
-ég1akk
-ég1akn
-ég1alj
-ég1am
-ég1a2ny
-ég1a2p
-é2g1a2r
-ég1aut
-ég1a2v
-éga2z
-é2g1á2g
-é2g1ál
-ég1áp
-ég1árt
-égát1a2d
-ég1átá
-ég1á2t1e2
-ég1átf
-ég1átj
-ég1átm
-ég1áts
-ég1átt
-ég1átv
-ég1bl
-ég1br
-ég1d2r
-ég1ece
-é2gedén
-é2g1edz
-ég1e2ge
-é2g1ej
-é2g1e2kés
-é2g1ela
-é2g1elb
-ége2leg
-ég2elek
-ége2lemb
-é2ge2leme
-ége2lemn
-ége2lemt
-é2g1elér
-é2g1elf
-é2g1elha
-ég1elhá
-ége2lin
-é2g1elis
-é2g1eljá
-é2g1elk
-é2g1ellá
-é2g1ellen
-é2g1elm
-é2gelnö
-ég1elny
-é2g1elö
-é2g1e2lőa
-ége2lőm
-é2g1e2lőn
-ég1e2lőt
-é2g1elp
-é2g1elr
-é2g1elsa
-é2g1elszí
-ég1elta
-é2g1eltá
-é2g1elvá
-é2g1elz
-é2g1enc
-é2g1e2ne
-é2g1eng
-ége1p
-ég1epi
-ége2rál
-é2g1erede
-ége2r1el
-égeri2
-ége2rim
-ége2rin
-é2g1eró
-ég1erő
-ége2rül
-1é2gesd
-é2g1essz
-ége2sze
-é2g1eszk
-é2g1eszt
-1é2getj
-1é2getőh
-1é2getőn
-1é2getőt
-ég1eva
-ég1e2ve
-ég1e2vé
-ég1evo
-é2g1ex
-é2g1é2g
-é2g1é2l
-é2g1é2neke
-é2g1é2neké
-é2génekk
-é2g1é2nekn
-ég1épí
-é2g1épü
-ég1é2ret
-é2g1é2rez
-égé2ré.
-é2g1érh
-é2g1é2ri
-ég1érl
-ég1érm
-ég1é2rő.
-ég1é2rők
-égért2
-ég1érte
-ég1érté
-1é2gésé
-1é2gésn
-é2gést
-é2g1éva
-ég1fl
-ég1fr
-ég1g2l
-ég1g2r
-ég3gyo
-1éghes
-1éghü
-égi2as
-ég1i2den
-égi2g
-é2g1iga.
-égig1ap
-égig1as
-ég1igaz
-égig1á
-é2gill
-é2g1imá
-ég1ina
-ég1inf
-é2g1ing
-é2g1inj
-ég1ins
-é2g1int
-é2g1ira
-ég1iro
-é2g1i2ta
-é2g1iva
-é2g1i2zésn
-é2g1izg
-ég1íg
-ég1íj
-ég1ín
-ég1ír
-ég1ív
-ég1íz
-1égj.
-égkia2
-ég1kl
-ég1kr
-ég1kv
-1égne.
-1égnék
-1égnén
-1égnét
-1égni
-é2g1ob
-ég1oki
-ég1ola
-ég1old
-ég1oli
-ég1oll
-ég1olt
-é2g1op
-é2g1o2r
-é2g1os
-ég1ott
-é2g1o2v
-é2g1ox
-é2g1óc
-ég1ó2r
-ég1öb
-é2g1ö2d
-é2g1ö2l
-ég1ön
-égö2r
-ég1örö
-é2g1ös
-é2g1öt
-é2göv
-é2g1ö2z
-1égő.
-1égők
-é2gőr
-ég1őri
-ég1őrö
-ég1ősi
-1égőt
-1égőv
-ég1pl
-ég1pr
-ég1ps
-ég1sk
-ég1sp
-ég1s2t
-égsz2
-1égsz.
-égszáraz1
-ég1tr
-é2g1ud
-ég1un
-é2g1u2t
-ég1úg
-ég1új
-ég1úr
-ég1ús
-ég1ú2t
-é2g1üd
-é2g1ü2g
-é2g1ür
-é2g1üs
-é2g1üt
-é2g1üv
-é2g1üz
-é2g1űz
-égvezé2
-é2gy1a2
-é2gyál
-é2gyedé
-é2gy1eg
-é2gyelek
-é2gyeleme
-égye2m
-é2gy1emb
-é2gy1eme
-égye2seké
-é2gy1esz
-é2gy1e2v
-é2gyeze
-é2gy1ék
-é2gyél
-égy1é2ne
-égyi2
-é2gyin
-é2gyir
-é2gy1is
-é2gy1iv
-é2gyí
-égyo2
-égy1ok
-égy1os
-égy1ot
-é2gy1ó2
-égy1ö2l
-é2gy1u2
-é2gy1ú
-é2gy1ü2l
-é2gyür
-éha2l
-éh1ala
-éh1any
-é2h1arc
-éh1art
-é2h1au
-é2h1a2v
-éh1edé
-2éheg
-éh1e2gé
-éh1e2le
-éh1elé
-éh1elf
-éh1elh
-éh1ell
-éh1e2lő
-éh1elt
-éh1elv
-é2h1enz
-é2h1e2r
-é2h1esem
-é2h1e2to
-éh1evé
-é2h1ex
-é2heze
-1é2hezé
-1éhező
-1é2hezt
-é2hezü
-é2hezv
-éh1ég
-éh1é2k
-é2h1é2l
-é2h1ép
-éh1érb
-éh1fl
-é2h1ic
-é2h1if
-é2h1i2n
-é2h1ip
-éhi2r
-éh1ira
-éh1irt
-é2hit
-éh1ita
-é2h1iz
-éh1ín
-éh1kr
-é2h1od
-éh1old
-éh1öb
-éh1ö2d
-éh1ös
-éh1pl
-éh1pr
-1éhsé
-éh1sk
-éh1sp
-éh1ud
-éh1új
-é2h1üg
-é2h1ür
-é2h1üt
-é2h1űr
-é1i
-éi2dő
-éi2ga
-éi2gé
-éi2má
-éi2pa
-éi2rá
-éi2ro
-éi2ta
-éi2vás
-éi2vó
-é1í
-éí2rá
-éí2ro
-éí2ró
-éí2vá
-éí2ze
-é2j1ab
-é2j1a2da
-é2j1a2l
-é2j1any
-é2j1a2r
-é2j1á2l
-é2j1áp
-é2j1árn
-éj1eb
-é2j1e2lem
-é2j1elh
-éj1elm
-é2j1elv
-éj1emb
-é2j1esz
-é2j1e2v
-é2j1é2g
-éjé2j
-é2j1é2k
-é2j1él
-é2j1ép
-é2j1é2te
-1é2ji.
-é2j1il
-é2j1im
-éj1i2n
-é2j1ip
-é2j1iz
-é2j1o2l
-éj1ó2r
-éj1öd
-éj1ön
-éj1ör
-éj1pl
-éj1pr
-éj1sp
-éj1sz
-éj1ud
-éj1u2r
-éju2t
-éj1uta
-é2j1úr
-é2jül
-é2j1űz
-ék1abl
-ék1a2cé
-éka2dat
-ék1a2dá
-ék1a2dó
-ék1ajt
-éka2kad
-é2k1aká
-é2k1akk
-é2k1akn
-éka2lag
-ék1a2lak
-é2k1alg
-é2k1alj
-ék1alko
-é2k1all
-é2k1alt
-ék1alu
-ék1amb
-ék1ang
-ék1app
-é2k1a2rá
-ék1arc
-ék1a2ré
-ék1arz
-é2k1asp
-é2k1ass
-ék1aszt
-ék1a2tom
-ék1a2ve
-ék1azo
-é2k1ál
-é2k1á2p
-ék1árad
-é2k1á2rak
-é2k1á2rá
-ék1árb
-é2k1á2ré
-ék1árh
-é2k1árk
-é2k1árn
-é2k1á2ro
-ék1árr
-é2k1á2ru
-ék1á2rú
-ék1ásó
-ék1ásv
-é2k1áta
-é2k1átá
-é2k1átc
-é2k1átd
-é2k1áte
-ék1áté
-é2k1átf
-é2k1áth
-é2k1áti
-é2k1átí
-é2k1átk
-é2k1átl
-é2k1átm
-é2k1átö
-é2k1átr
-é2k1áts
-ék1átt
-é2k1átu
-é2k1átv
-é2k1áz
-ék1bl
-ék1br
-ék1dr
-ék1egé
-é2k1e2kés
-é2k1elb
-é2k1e2leg
-ék1e2leme
-ék1e2lemé
-éke2lemm
-ék1e2lér
-é2k1elf
-é2k1elk
-é2kellá
-é2k1ellen
-é2k1elm
-é2k1elo
-ék1elp
-é2k1elta
-ék1eltá
-é2k1eltér
-ék1elül
-ék1elvi
-é2k1e2mel
-ék1eng
-éke1p2
-é2k1erd
-é2k1e2rec
-é2kered
-é2k1e2rei
-é2k1e2rez
-é2k1erg
-é2k1e2ró
-é2k1e2rő
-é2k1e2sete
-ék1eszk
-éke1szl
-é2k1e2tet
-éke2tik
-éke2vés
-é2k1e2vo
-é2k1ex
-é2k1ég
-ék1éjs
-é2k1épí
-é2k1épü
-é2k1érc
-é2k1é2rem
-é2k1é2ren
-é2k1é2ré
-é2k1é2ri
-é2k1érk
-é2k1érl
-é2k1érm
-é2k1é2rő.
-é2k1é2rői
-é2k1é2rők
-é2k1érp
-é2k1érr
-é2k1érte
-é2k1érté
-é2k1értő
-é2k1é2rü
-é2k1érv
-é2k1érz
-2ékés
-ékés3s
-ék1észl
-é2k1étk
-ék1étv
-é2k1é2ve.
-é2k1é2vek
-ék1é2vet
-é2k1é2véb
-é2k1é2vén
-é2k1é2vét
-é2k1é2vév
-é2k1évi
-ék1fj
-ék1fl
-ék1fr
-ék1g2r
-ékia2
-éki2d
-é2k1ide
-ék1idé
-ék1ido
-é2k1idő
-éki2g
-ék1iga
-ék1ige
-é2k1igé
-ék1i2ko
-ék1ikr
-é2k1ill
-é2k1ima
-é2k1imá
-ék1imi
-ék1ind
-é2k1ing
-é2k1inh
-é2k1inn
-é2k1int
-é2k1inv
-é2k1i2o
-é2k1i2p
-é2kirán
-é2k1iro
-é2k1isk
-ék1ism
-é2k1ist
-éki2sza
-é2k1i2ta
-é2k1i2z
-ék1íj
-é2k1ír
-é2k1í2v
-é2k1í2z
-ék2kál
-ék1k2l
-ék1k2r
-ék1kv
-é1k2lu
-é2k1ob
-ék1of
-é2k1oká
-é2k1o2laj
-é2k1olda
-ék1oltás
-é2k1oml
-ék1opc
-ék1o2pe
-é2k1org
-é2k1orm
-é2k1orr
-é2k1orz
-é2k1osto
-é2k1ott
-é2k1ou
-é2k1ox
-é2k1óc
-ék1ó2l
-é2k1ón
-ék1ó2ra
-ék1ó2rá
-é2k1ó2v
-é2k1ó2z
-é2k1ö2b
-ékö2l
-é2k1öm
-ék1önt
-ék1ö2rö
-é2k1ös
-é2k1ötl
-ék1ö2vö
-ék1ö2zö
-ék1ő2r
-ék1ős
-ék1pl
-ék1pr
-ék1ps
-é1k2reá
-ék2rim
-ék1sh
-ék1sk
-ék1sl
-ék1sp
-ék1s2r
-ék1st
-ék1sz2
-ék1t2r
-é2k1ud
-é2k1ug
-é2k1uj
-é2k1und
-é2kuni
-é2k1u2tac
-é2k1u2tak
-ék1u2tal
-é2k1u2tas
-é2k1utá
-é2k1új
-ék1úr.
-ék1úrn
-ékú2t
-é2k1úth
-é2k1úti
-é2k1útj
-é2k1útn
-é2k1úto
-é2k1útr
-é2k1útt
-é2kútv
-é2k1üd
-é2k1üg
-ék1ü2le
-é2k1ünn
-é2k1ür
-é2k1ü2s
-é2k1ü2t
-é2k1ü2v
-é2k1üz
-ék1űr.
-ék1űrb
-ék1ű2rö
-é2k1űz
-él1abl
-él1abr
-él1a2cé
-él1a2da
-él1a2do
-él1a2dó
-él1a2g
-é2l1a2j
-él1a2ka
-él1akc
-él1akn
-él1ako
-é2l1a2l
-él1amc
-él1a2me
-él1and
-él1apó
-él1arm
-él1asp
-él1ass
-él1asz
-él1a2to
-él1a2u
-é2l1a2va
-él1azo
-él1ábr
-é2l1á2g
-élá2l
-é2l1áll
-é2l1álmá
-é2lálmot
-é2l1álo
-é2l1á2p
-él1ár.
-él1á2rá
-él1árb
-él1árf
-él1á2ri
-él1árk
-é2l1árn
-él1á2ro
-él1árr
-él1á2ru
-él1á2rú
-él1árv
-él1át1a2
-él1átc
-élát1e2
-é2l1átf
-él1áth
-él1á2ti
-él1átj
-é2l1átm
-élá2tok
-él1átr
-él1áts
-él1átt
-él1átü
-él1átv
-él1bl
-él1br
-élc3sz
-él1d2r
-éle2b
-é2l1ebé
-é2l1e2dz
-él1eff
-él1e2gé
-élegész1
-él1e2gy
-éle2k1a2
-éle2k1á
-éle2k1e2l
-éle2kem
-éle2ker
-éle2k1es
-é2l1e2kés
-éle2kis
-éle2kol
-éle2k1on
-éle2kot
-éle2kó
-éle2k1ö2
-éle2ku
-éle2k1ú
-él1e2l1a
-é2l1e2leg
-él1elf
-é2l1elo
-é2l1előe
-éle2lőj
-é2l1e2lők
-éle2lőt
-é2lemb
-é2l1e2mi
-é2l1emp
-éle2n
-é2l1ene
-é2l1eng
-é2lenj
-é2l1enn
-é2l1eny
-é2l1enz
-él1e2ró
-é2l1e2sés
-éle2szü
-éle2szű
-éle2t1a2
-éle2t1á2
-éle2t1eg
-éle2t1e2l
-éle2t1e2r
-éle2tesz
-éle2t1ék
-éle2tél
-éle2t1ér.
-éle2t1érd
-éle2t1é2rő.
-éle2térü
-éle2tés
-éle2téte
-éle2tété
-éle2t1étn
-éle2t1é2ve.
-éle2t1é2ved
-éle2t1é2vén
-éle2tik
-éle2tisz
-éle2t1o
-éle2tó
-életö2
-éle2t1öl
-éle2t1ör
-éle2t1u2
-éle2tüz
-éle2t1ű2z
-é2l1e2vő
-é2l1ex
-élé2d
-é2l1éde
-é2l1é2g
-él1é2hes
-él1ékek
-él1ékí
-é2l1é2l
-él1épü
-é2l1ér.
-é2l1érb
-é2l1érd
-él1é2rem
-é2l1é2ret
-é2l1é2ré
-é2l1érm
-é2l1érn
-é2l1érte
-é2l1érté
-é2l1é2rü
-é2l1érz
-élé2sa
-élés3s
-é2l1é2te
-é2l1étk
-é2l1év.
-é2l1é2v1á
-é2l1é2ves
-é2l1é2vet
-é2l1évez
-él1é2vén
-é2l1é2vér
-é2l1é2vi
-él1évü
-él1f2l
-él1f2r
-él1g2r
-é2l1i2d
-é2l1iga
-éli2gá
-é2l1i2ge
-é2l1igé
-é2l1i2ko
-él1ill
-éli2m
-él1ima
-él1imi
-él1imp
-é2l1ind
-é2l1inf
-é2l1ing
-él1int
-él1inv
-él1inz
-él1i2on
-é2l1i2p
-é2l1irá
-él1iro
-é2lism
-éli1s2p
-é2l1i2szá
-él1i2va
-é2l1i2vá
-él1izg
-é2l1izm
-é2l1i2zo
-él1íj
-él1í2r
-él1í2v
-él1íz
-él1k2l
-él1k2r
-él3lyu
-él2mat
-1élmén
-é2l1ob
-é2l1okm
-é2l1oks
-é2l1ol
-é2l1o2r
-élos3s
-é2l1osz
-é2l1óc
-él1ó2n
-é2l1ó2r
-él1öb
-él1öc1
-élö2k
-él1ö2l
-él1ön
-él1ör
-él1ös
-é2l1ö2z
-élőe2
-él1őrü
-1é2lősk
-él1p2l
-él1p2r
-élrádi2
-élre1pr
-él1sk
-él1sp
-él1st
-él2sz1árnn
-él1szt
-éltal2p1al
-él1trá
-él1tré
-él1tri
-él1tró
-é2l1ud
-é2l1ug
-é2l1uj
-él1ult
-él1u2r
-é2l1u2tas
-él1utó
-é2l1új
-él1úr
-é2l1üg
-él1üll
-él1ült
-é2l1ür
-é2l1üs
-é2l1üt
-é2l1üv
-é2l1üz
-él1űz
-1élvező
-é2ly1ab
-é2ly1a2d
-é2lyaj
-é2ly1a2l
-ély1a2n
-é2ly1ap
-ély1a2r
-é2ly1as
-ély1au
-é2ly1av
-ély1az
-é2ly1á2l
-élye2c
-é2lyef
-ély1egy
-é2lyekés
-é2ly1el
-é2lyeml
-é2lyene
-é2ly1ent
-é2lyer
-é2lyeti
-é2ly1é2j
-é2ly1ék
-é2lyél
-é2lyés
-ély1f2
-é2ly1ira
-ély1k2
-é2lyol
-é2ly1ó
-é2lyös
-é2ly1öz
-é2lyő
-ély1s
-élyú2
-é2lyültet
-é2lyüt
-ém1abr
-éma1d2
-ém1a2da
-ém1a2dó
-émae2
-émai2k
-ém1ajt
-ém1akk
-ém1all
-ém1alm
-ém1app
-ém1arc
-ém1arm
-émas2
-éma1sp
-émat2
-éma1tr
-ém1aut
-ém1a2zo
-émá2c
-émá2l
-ém1álm
-ém1álo
-é2m1áp
-ém1árn
-é2m1áru
-émát1a
-é2m1átt
-ém1b2l
-ém1b2r
-ém1dr
-éme2c
-éme2g
-é2m1e2ke.
-é2m1e2kés
-ém1ela
-éme2led
-é2m1elh
-é2m1ell
-ém1e2lő
-ém1els
-é2m1elv
-ém1e2re
-ém1ern
-ém1e2rő
-éme2s1á
-é2m1esemé
-é2m1esz
-éme2ta
-éme2tel
-éme2t1ék
-éme2to
-é2m1e2v
-é2m1ex
-ém1éks
-é2m1é2l
-é2m1ép
-é2m1érc
-ém1érd
-é2m1éri
-é2m1érm
-é2m1érté
-é2m1és
-é2m1é2te
-ém1fl
-ém1fr
-ém1gr
-émi2al
-é2m1i2d
-émi2g
-é2m1igé
-ém1iks
-ém1ill
-ém1ind
-ém1inf
-é2m1inv
-é2m1i2o
-é2m1i2p
-ém1irá
-ém1irh
-é2m1iro
-ém1isk
-ém1ism
-émi2sz
-ém1i2ta
-ém1izo
-é2m1ír
-ém1í2v
-ém1íz
-ém1kl
-ém1kr
-émo2nac
-émo2ne
-émon1n
-émont2
-ém1o2p
-ém1ost
-ém1ox
-ém1ó2l
-ém1ó2r
-ém1öb
-ém1ö2l
-ém1ön
-ém1ös
-ém1öt
-ém1öv
-ém1ő2r
-ém1p2l
-ém1p2r
-ém1sk
-ém1sl
-ém1sp
-ém1s2r
-ém1s2t
-ém1sz2
-ém1t2r
-ém1uj
-ému2n
-ém1una
-é2m1u2r
-é2m1úr
-é2m1üg
-é2m1ür
-é2m1üt
-é2m1üv
-é2m1üz
-ém1wh
-én1abb
-é2n1abl
-é2na2dal
-én1adá
-én1a2do
-én1agá
-én1agr
-én1akc
-é2n1akn
-én1akt
-én1alk
-én1ana
-én1ano
-én1ant
-éna1pré
-én1arc
-énas2
-éna1sp
-é2n1ass
-én1atm
-é2n1a2tom
-éna1t2r
-é2n1au
-é2n1ág
-éná2l
-én1ála
-én1álc
-én1áld
-é2n1áll
-é2n1á2p
-é2n1á2rak
-énás1s
-én1ásv
-én1áta
-én1átb
-én1áte
-én1átk
-én1átö
-é2n1átr
-én1átt
-én1átü
-é2n1átv
-énba2
-én1bl
-én1br
-én1d2r
-é2n1ef
-én1e2gy
-1é2ne2k1a2
-1é2nekd
-é2neke.
-1é2nekei
-1é2nekek
-1é2nekem
-éne2ker
-1é2nekes
-éne2k1é2j
-1é2nekf
-1é2nekg
-éne2kiz
-1é2nekí
-1énekj
-1énekka
-1é2nekl
-éne2kó
-éne2k1ö
-1é2neks
-én1ela
-én1elg
-én1elh
-én1elj
-én1ell
-én1eln
-én1e2lő
-én1elp
-én1els
-én1elt
-én1elv
-én1eml
-éne2n
-é2n1ene
-éne2r1a
-éne2r1á2
-éne2reme
-én1eró
-é2n1e2sz
-éne2t1a2
-éne2t1á2
-éne2t1e2l
-éne2test
-éne2to
-é2n1e2v
-é2n1ex
-én1éjb
-én1ékb
-én1é2ké
-én1é2ki
-én1é2kű
-éné2l
-é2n1éle
-é2n1élő
-éné2m1a
-én1éneke
-é2n1ér.
-é2n1érc
-é2n1éré
-éné2ter
-2énéz
-én1f2r
-énfüstö2
-énfüs2t1öl
-én1g2r
-én1ido
-éni2g
-é2n1igé
-én1iko
-én1ill
-én1imi
-én1ina
-én1ind
-én1inf
-én1inh
-én1int
-é2n1i2p
-én1ism
-é2n1ita
-é2n1iva
-é2n1i2z
-én1íj
-én1ín
-é2n1ív
-én1k2l
-én1k2rá
-én1k2ré
-én1kri
-énmű1
-én3nyo
-é2n1ol
-én1oml
-én1ond
-é2n1or
-é2n1osz
-én1ot
-é2n1ox
-én1óc
-é2n1ó2r
-én1ök
-én1öl
-én1ön
-én1ör
-én1öt
-2énöv
-é2n1ö2z
-én1ő2s
-énpe2
-én1pl
-én1pr
-én2sas
-én1s2p
-én1s2t2
-én2sú
-én1tra
-én1trá
-én1t2ri
-én1tró
-é2n1u2t
-én1út
-é2n1ü2g
-é2n1üle
-é2n1ür
-é2n1üs
-é2n1ü2v
-é2n1ü2z
-é2ny1a2
-é2ny1á2
-énye2c
-é2ny1ece
-é2nyecse
-é2ny1e2dz
-é2nyef
-é2ny1egy
-é2nyekés
-é2nyela
-é2nyelá
-é2ny1ell
-é2ny1elo
-é2ny1elvá
-ény1elvű
-ény1elvv
-é2nyema
-ény1enc
-é2ny1ep
-é2nyerd
-ény1ered
-é2ny1e2rő
-é2ny1e2sett
-é2ny1e2sés
-é2ny1e2ső
-é2ny1essz
-é2ny1esté
-é2ny1e2sz
-é2nyeta
-é2nyeti
-é2nyetű
-é2ny1ev
-é2ny1ég
-é2ny1é2j
-ényé2k
-ény1éke
-ény1ékh
-ény1ékn
-ény1ékt
-é2ny1é2l
-é2ny1ér.
-é2ny1érd
-é2nyéré
-é2ny1é2ri
-é2ny1érn
-é2nyérte
-é2ny1érté
-é2ny1é2rü
-é2ny1érv
-é2ny1érz
-é2ny1és
-é2ny1é2te
-é2ny1étt
-é2nyéva
-é2ny1if
-ényi2g
-é2ny1igé
-é2ny1i2ko
-é2ny1ing
-é2ny1ira
-é2nyiro
-é2nyisk
-é2nyita
-é2nyiz
-ényí2r
-ény1írá
-ény1író
-é2ny1ok
-é2ny1o2l
-é2ny1o2r
-é2ny1os
-é2ny1ó2
-ényö2
-é2nyön
-ény1ör
-é2ny1ös
-ény1öz
-é2ny1ő2
-ény1s
-ényt2
-ény1tr
-é2nyu
-ény1u2r
-ény1us
-é2nyúj
-ény1út
-é2ny1ü2lő
-é2ny1üs
-é2ny1üv
-é2nyüz
-énza2
-én2z1ad
-én2zag
-én2zak
-én2z1al
-én2zar
-én2zau
-én2z1ál
-én2z1ás
-én2z1át
-én2z1e2r
-én2z1im
-én2z1in
-én2zis
-én2zí
-énzo2
-én2z1ol
-én2zor
-én2zos
-én2zör
-én2z1ő
-én2zsa
-én2zse
-én2zur
-én2zú
-énz1z
-é1o
-éo2la
-éo2pe
-éo2sz
-é1ó
-éó2ra
-éó2ri
-é1ö
-é1ő
-ép1ado
-é2p1a2j
-ép1alk
-épa2ny
-ép1apo
-épa1pr
-ép1arc
-ép1aré
-ép1ass
-ép1atl
-épau2s
-ép1aut
-ép1a2va
-é2p1á2g
-é2p1álla
-é2p1állo
-ép1áp
-ép1ár.
-ép1árb
-ép1árf
-ép1ári
-ép1á2ro
-ép1á2ru
-ép1á2rú
-ép1átb
-ép1átj
-ép1átl
-ép1átm
-ép1áts
-ép1átü
-ép1átv
-ép1bl
-ép1br
-ép1dr
-é2peb
-ép1e2gé
-ép1e2gy
-é2p1e2kés
-2épel
-é2p1ela
-é2p1elá
-é2p1elb
-é2p1elc
-ép1e2lemb
-é2p1e2leme
-ép1e2lemr
-é2p1elér
-é2p1elf
-é2p1e2lin
-ép1eljá
-é2p1elk
-ép1ellá
-é2p1ellen
-é2p1elm
-é2p1elo
-é2p1e2lőke
-é2p1elr
-é2p1eltér
-ép1elu
-épe2n
-é2p1ene
-é2p1e2p
-é2p1er
-épe2rő
-é2p1esem
-é2p1e2ser
-é2p1e2sett
-é2p1e2sés
-é2p1e2ső
-é2p1este
-é2p1esté
-é2p1esti
-é2p1estj
-épe2sz
-é2p1esze
-é2p1eszk
-é2p1eta
-ép1e2tete
-épe2teté
-é2p1etű
-ép1eva
-é2p1ex
-é2p1ég
-é2p1é2k
-é2p1é2l
-é2p1é2neke
-é2p1ér.
-é2p1éri
-épé2sa
-é2p1éte
-ép1fl
-ép1gr
-é2p1i2d
-é2p1i2ko
-é2p1imp
-ép1ind
-ép1ing
-é2p1ins
-é2p1int
-ép1i2pai
-é2p1i2ra
-é2p1i2rá
-é2p1i2ro
-é2p1irt
-ép1isk
-é2p1ism
-é2p1ist
-é2p1i2ta
-é2p1iz
-ép1ín
-é2p1í2r
-1építm
-é2p1ív
-épká2r
-ép1kl
-ép1kr
-ép1kv
-éple2t1ö
-ép1ob
-é2p1ok
-ép1old
-ép1olv
-ép1on
-ép1op
-ép1orm
-ép1ors
-ép1osz
-é2p1óc
-é2p1ó2h
-ép1ó2r
-ép1öl
-ép1öm
-ép1ön
-épö2r
-ép1ös
-ép1ö2z
-ép2p1ek
-ép2pí
-ép1p2l
-ép2p1od
-ép1p2r
-é1prog
-ép2rózá
-ép1sh
-ép1sk
-ép1s2n
-ép1sp
-ép1s2t
-épsz2
-ép1t2r
-ép1udv
-ép1ug
-é2p1uj
-épu2n
-ép1uno
-é2p1u2r
-épu2s
-é2p1u2t
-ép1új
-ép1ús
-ép1út
-é2p1üd
-é2p1üg
-é2p1üld
-1épüle
-é2p1ür
-ép1üs
-é2p1üv
-é2p1üz
-ér1abl
-ér1abs
-é2r1a2d
-ér1a2gá
-ér1agg
-ér1agy
-ér1a2ja
-ér1ajt
-é2r1a2ka
-é2r1akc
-é2r1a2la
-ér1alá
-ér1alg
-ér1alk
-ér1alm
-ér1alv
-ér1amb
-ér1amp
-ér1ane
-ér1ani
-ér1a2no
-ér1ant
-ér1a2pá
-ér1a2pó
-ér1app
-ér1apr
-ér1a2ra
-ér1a2rá
-ér1arc
-ér1asp
-ér1ass
-ér1a2ti
-ér1atk
-ér1atl
-ér1a2to
-éra1t2r
-ér1att
-ér1aty
-é2r1a2u
-ér1a2va
-é2r1a2x
-ér1a2zo
-é2r1ábr
-ér1ág.
-é2r1á2ga
-ér1ágb
-ér1ágg
-ér1ágy
-é2r1á2l
-ér1á2p
-ér1árá
-ér1árk
-ér1á2ro
-ér1árp
-ér1árr
-ér1á2ru
-ér1á2t1a2
-ér1á2t1á2
-ér1átc
-ér1á2t1e2
-ér1áté
-ér1átf
-ér1áth
-ér1átj
-ér1átl
-ér1átm
-ér1á2tö
-ér1átr
-ér1átú
-ér1átü
-ér1átv
-é2r1áz
-1érbán
-ér1bl
-ér1br
-ér2caj
-ér2c1a2l
-ér2c1a2n
-ér2c1as
-érc3c
-1ércd
-ér2cedé
-ér2c1emb
-ér2c1esz
-ér2c3h
-ér2cil
-ér2c1im
-ér2ciz
-ér2c1o
-ér2có
-ér2c1ö
-ér2cő
-ér2c3seb
-ér2c3sis
-ér2cú
-ér2cz
-ér2d1am
-ér2d1á2
-1érdekbő
-1érdeke.
-1érdekei
-1érdekel
-1érdekl
-1érdekt
-1érdekü
-1érdekű
-1érdemé
-ér2d1erő
-érd1este
-érdés3s
-ér2d1i2ná
-ér2d1iz
-ér1dra
-érdü2l
-ér2d1ülé
-ér2d1ülő
-ér2d3z
-ére2b
-ér1eba
-é2r1ebe
-é2r1ebé
-é2r1ebr
-ér1eff
-ére2g1a2
-ére2g1á
-ére2ged
-ére2gel
-ére2g1em
-ére2gen
-ére2g1e2r
-ére2gev
-ére2g1él
-éreg1g
-ére2gin
-ére2go
-ére2g1ö2
-é2r1e2gy
-éregyez1
-é2r1ej
-é2r1e2kén.
-é2r1elá
-é2r1e2leg
-é2relemz
-ér1e2lég
-é2r1elis
-é2r1elk
-é2r1elo
-é2r1e2lőa
-ére2lőir
-é2r1e2lől
-é2r1e2lőme
-é2r1e2lőn
-ér1elr
-ér1eltá
-ére2m1a
-ére2má
-é2rember
-ére2m1eg
-é2r1emel
-ére2mes
-é2r1e2més
-ér1e2mis
-é2reml
-ére2m1o
-ére2m1ó
-é2re2mu
-ére2n
-é2r1ene
-é2r1e2r
-ére2ső
-é2r1eső.
-é2r1esőb
-é2r1esőj
-é2r1esőn
-éres1ő2r
-é2r1esőt
-é2r1esté
-ére2t1a
-ére2tá
-ére2t1eg
-ére2t1el
-ére2t1ér.
-ére2t1é2ve.
-ér1e2ve
-é2r1e2vé
-é2r1é2d
-é2r1é2g
-é2r1éj.
-é2r1é2jét
-é2r1é2k
-é2r1é2l
-é2r1é2neke
-é2r1ép
-é2r1é2ri
-éré2s1el
-éré2sza
-éré2szá
-éré2ter
-é2r1étk
-ér1é2ve.
-é2r1évn
-ér1évv
-érfiá2
-ér1fl
-érfo2g1ón.
-érfo2g1ós
-érfoto1
-ér1f2r
-ér1g2r
-éri2al
-éri2csi
-é2r1ido
-érié2n
-ér1ifj
-éri2g
-é2r1iga
-é2r1ige
-é2r1i2ko
-é2r1ill
-é2r1i2ma
-é2r1i2má
-é2r1i2mi
-é2r1i2na
-é2r1ind
-é2r1inf
-é2r1ing
-é2r1inj
-é2r1ins
-é2rint
-ér1inv
-é2rinz
-é2r1i2o
-é2r1i2pa
-ér1ira
-é2r1isk
-ér1ism
-é2r1ist
-é2r1i2sz
-é2r1i2ta
-é2r1iva
-é2r1ivá
-é2r1i2z
-ér1íg
-ér1íj
-é2r1ín
-é2r1ír
-é2r1í2v
-é2r1í2z
-ér2jan
-ér1k2l
-érkö2z1e2pé
-ér1k2r
-ér1k2v
-érle2t1öl
-1érméé
-1érméj
-1érmék
-1érmi.
-é2r1o2l
-ér1ont
-éro2p
-ér1ope
-é2r1o2r
-ér1ott
-ér1ovi
-é2r1o2x
-éró2l
-ér1ólo
-ér1óri
-é2r1ö2b
-é2r1ö2c
-ér1öko
-é2r1ö2l
-é2r1öm
-é2r1ön
-é2r1ör
-é2r1ös
-ér1öt
-ér1öv
-é2r1ö2z
-érő1f2
-ér1pl
-ér1p2r
-1érsek
-ér1s2k
-ér1sl
-ér1s2p
-ér1s2r
-ér1s2t
-érsz2
-ér1szk
-ér2tat
-1értekez
-ér2t1ela
-1értelm
-1értesí
-1értékil
-1értékm
-értés3s
-ért1ö2ve
-1értőc
-1értőg
-1értőü
-ér1t2ran
-ér1trá
-ér1t2ren
-ér1t2ré
-1ér1t2ro
-ér1tró
-ér1uga
-é2r1uj
-éru2m1e
-éru2n
-ér1una
-é2r1u2r
-éru2s1ér
-ér1u2sz
-ér1uta
-ér1utá
-ér1u2to
-é2r1u2z
-é2r1új
-ér1ú2r
-ér1ú2s
-érú2t
-é2r1ü2g
-érü2ké.
-é2r1ür
-é2r1üs
-é2r1üt
-é2r1ü2v
-é2r1üz
-é2r1ű2z
-érv1a2dó
-érv1ala
-ér2v1a2n
-ér2v1á2gy
-1érvel
-ér2v1elem
-ér2v1égb
-ér2v1égh
-ér2vék
-ér2vél
-ér2vu
-2érzá
-1érzék.
-1érzékb
-1érzéké
-1érzékh
-1érzékk
-1érzékn
-1érzékr
-1érzékt
-1érzékü
-1érzékű
-1érzésil
-és1abl
-é2s1a2d
-és1agy
-és1ajt
-és1a2ka
-és1akl
-és1akn
-és1ako
-és1akt
-és1a2la
-és1alg
-és1alk
-és1all
-és1alt
-és1alv
-é2s1am
-és1ana
-és1ant
-és1a2ny
-és1apa
-és1apr
-és1ara
-és1a2rá
-és1arc
-és1aré
-és1arm
-és1arz
-és1asp
-és1ass
-é2s1a2u
-ésá2c
-é2s1ál
-és1árt
-ésá2s
-és1áta
-és1áth
-és1átl
-és1bl
-és1d2r
-ése2b
-é2s1ebé
-é2s1ef
-és1e2ge
-és1e2gy
-é2s1e2ke.
-é2s1e2kei
-é2s1e2kés
-é2s1eks
-é2s1ekv
-és1ela
-és1elá
-és1elb
-és1elk
-é2s1elm
-és1elo
-és1elr
-é2s1elvé
-és1elz
-és1ember
-é2s1e2mel
-é2s1eml
-ése2n
-é2s1ene
-é2s1eng
-é2s1eny
-é2s1e2p
-és1erő
-é2s1esz
-é2s1eto
-é2s1ev
-é2s1ex
-és1égb
-é2s1é2géb
-é2s1é2géé
-és1é2géh
-és1é2gén
-é2s1é2gév
-é2s1égh
-é2s1é2gi
-é2s1égn
-é2s1égv
-é2s1é2hen
-é2s1é2j
-é2s1é2k
-é2s1é2l
-é2s1ép
-é2s1ér.
-és1érb
-és1érc
-é2s1érd
-é2s1é2rem
-é2s1é2ren
-é2s1é2ré
-é2s1érh
-é2s1érl
-é2s1érn
-é2s1é2rő.
-é2s1é2rők
-é2s1é2rőv
-és1érr
-é2s1érte
-é2s1érté
-é2s1értő
-é2s1é2rü
-é2s1érv
-és1ész
-é2s1é2te
-és1é2ve.
-és1é2vet
-és1é2véb
-és1é2vét
-és1é2vév
-és1fl
-és1fr
-és1gr
-é2s1ic
-é2s1id
-é3sidet
-ésié2
-ési2g
-és1iga
-és1ige
-é2s1ikt
-é2s1ill
-é2s1imi
-és1imp
-és1ind
-és1inf
-é2s1ing
-é2s1int
-és1inv
-é2s1i2p
-é2s1ira
-é2s1i2rá
-és1iro
-é2s1i2s
-é2s1i2ta
-é2s1i2vá
-é2s1í2r
-é2s1ív
-és2katu
-és1kl
-és1k2r
-és1kv
-é1slág
-é2s1ob
-és1oko
-és1okt
-é2s1o2l
-é2s1om
-é2s1op
-2ésor
-és1org
-és1orn
-és1orv
-é2s1os
-é2s1ot
-és1o2v
-és1óc
-és1ó2l
-és1ón
-és1ó2r
-é2s1ö2l
-é2s1ön
-é2s1ös
-é2s1öt
-é2s1ö2v
-é2s1ö2z
-és1p2l
-és1p2r
-és2pri
-és1ps
-és1s2k
-és1s2p
-és1s2t
-éssz2
-és3szab
-és3szag
-és3szak
-és3szap
-és3szá
-és4szel.
-és3szere
-és3széle
-és3szf
-és3szi
-és3szí
-és3szo
-és3szó
-és3szö
-és3sző
-és3szt
-és3szú
-és3szül
-és3szű
-ést2r
-és1tra
-és1trá
-és1tré
-é1stru
-és1ud
-és1u2r
-é2s1u2t
-é2s1ú2t
-é2s1üg
-é2s1ünn
-é2s1ür
-és1ü2té
-é2s1üz
-ész1abl
-é2sz1a2d
-ész1agy
-é2szaj
-északá2
-észa2k1áz
-é2szakc
-észa2k1ü
-ész1ale
-ész1alg
-ész1all
-észa2n
-ész1ant
-ész1any
-észa2p
-ész1apo
-é2sz1a2r
-é2sz1as
-ész1a2to
-é2sz1au
-é2szaz
-2észá
-é2száb
-é2sz1á2g
-észá2l
-ész1állá
-és3záp
-ész1áram
-é2szárá
-ész1árán
-ész1árf
-ész1árk
-é2sz1árn
-ész1á2ru
-é2szás
-é2sz1á2t
-ész1á2z
-é2sz1e2ge.
-é2sz1e2gei
-é2sz1e2gy
-é2sz1ej
-észe2k1a2
-észe2ká
-ész1ekés
-észekö2
-észe2köv
-é2sz1ela
-é2sz1e2leg
-ész1e2lemb
-ész1e2leme
-ész1e2lemé
-ész1e2lemm
-ész1e2lemn
-é2sz1elk
-ész1előd
-é2sz1előr
-é2szelőz
-ész1ember
-é2sz1emi
-é2s3zené
-é2sz1eng
-é2sz1ep
-ész1e2rez
-ész1e2rén
-ész1erkö
-é2szerő
-ész1e2sete
-ész1eszt
-észeta2
-észe2t1ak
-észe2t1e2l
-észe2t1ér.
-észe2t1o
-észe2t1ör
-ész1e2ve
-é2sz1ex
-é2szég
-é2sz1ékt
-é2sz1é2l
-é2sz1é2p
-ész1éré
-é2széró
-é2szész
-é2sz1é2te
-é2sz1étk
-é2sz1i2d
-é2szif
-ész1i2ko
-é2sz1ikt
-é2sz1ill
-é2sz1im
-é2szina
-é2sz1ind
-é2sz1inf
-ész1ing
-é2sz1inté
-ész1io
-é2sz1i2p
-é2szira
-é2sziro
-é2szirt
-é2sz1i2s
-é2sz1ita
-é2sz1iz
-ész1í2j
-é2szír
-ész1í2vá
-ész1í2vé
-ész1í2vó
-ész1k2
-ész1okt
-észo2l
-ész1old
-ész1olt
-é2szop
-ész1ors
-é2sz1os
-é2sz1ot
-é2s3zón
-2észö
-és3zöld
-ész1ölt
-é2sz1ön
-é2sz1ös
-é2szöt
-ész1őrs
-ész1p2
-ész3su
-ész3sű
-észtés1s
-ész2tors
-észtorz1
-ész1tra
-ész1tri
-és3zul
-ész1ut
-ész1úrn
-é2sz1út
-é2sz1ü2g
-é2szünn
-é2szüt
-é2sz1ü2z
-é2szűz
-ész1z
-ét1abla
-ét1a2do
-ét1a2dó
-ét1adt
-ét1agg
-éta1gr
-étai2k
-é2t1ajk
-é2t1ajt
-ét1akc
-éta1kr
-ét1akt
-é2t1alj
-é2t1alk
-ét1als
-é2t1alt
-é2t1ani
-é2t1ann
-é2t1ant
-ét1anya
-ét1anyá
-é2t1aps
-é2t1arc
-é2t1arg
-ét1aszt
-état2
-ét1atom
-étaü2
-ét1azo
-ét1ábr
-é2t1á2g
-é2t1áll
-ét1á2rad
-ét1á2ram
-ét1á2rá
-é2t1á2ri
-é2t1á2rú
-ét1árv
-ét1áti
-é2t1átr
-é2t1átv
-ét1bl
-ét1dr
-étea2
-é2tedén
-éte2g1a2
-éte2gele
-éte2g1elv
-éte2ger
-éte2go
-é2t1e2ke.
-é2t1e2kei
-éte2la
-éte2l1á
-éte2l1e2l
-éte2lemü
-éte2l1er
-éte2l1ék
-éte2l1ér.
-éte2l1é2ren
-éte2léré
-é2telfog
-é2tellen
-éte2lo
-é2t1e2lől
-éte2l1ő2r
-é2t1e2mel
-étera2
-éte2rad
-éte2r1ag
-éte2r1á2
-éte2reg
-éte2rel
-étermo1
-é2t1erő
-éte2sik
-é2t1estün
-é2t1esv
-é2t1eszm
-ét1e2vi
-été2g
-ét1ég.
-ét1ége
-ét1égé
-ét1égn
-ét1égt
-é2t1é2j
-é2t1é2l
-é2t1é2ren
-é2t1é2ré
-é2t1é2ri
-é2t1é2rőt
-é2t1érte
-é2t1érté
-é2t1é2rü
-é2t1érv
-é2t1érz
-ét1észl
-é2t1étb
-é2t1é2té
-é2t1étn
-é2t1étr
-é2t1é2ves
-ét1fl
-ét1fr
-ét1gr
-é2t1i2d
-éti2g
-é2t1ige
-é2t1igé
-é2t1i2ko
-é2t1i2m
-é2t1ind
-é2t1inf
-é2t1int
-éti2p
-é2t1ipa
-é2t1irá
-ét1iro
-étis3s
-éti2sz
-é2t1i2vá
-ét1izé
-é2t1í2r
-é2t1í2v
-ét1kl
-ét1kr
-1étkű
-ét1kv
-étmeg1g
-ét1o2ká
-ét1o2ki
-ét1okm
-ét1o2l
-é2tola
-é2tolv
-ét1oml
-é2t1op
-ét1ord
-ét1org
-éto2ris
-ét1orm
-ét1ors
-é2t1óc
-ét1ó2ha
-ét1ón.
-ét1órá
-étö2k
-étö2l
-é2t1ömö
-é2t1ön
-étö2rül
-é2t1ös
-ét1ö2t
-ét1ö2v
-é2t1ö2z
-ét1őr.
-ét1őrb
-ét1őri
-ét1őrm
-ét1őrö
-ét1őrü
-é2t1ő2s
-é2t1ő2z
-étpen1
-ét1pf
-ét1pl
-ét1pr
-é1t2rafá
-ét2réf
-étro2m1é2
-ét1sl
-ét1sm
-ét1sp
-ét1st
-ét1t2r
-ét1udv
-é2t1ug
-é2t1uj
-étu2n
-ét1una
-ét1und
-é2t1u2r
-é2t1u2t
-ét1ú2s
-é2t1üg
-é2t1ür
-ét1üs
-é2t1üt
-é2t1ü2v
-é2t1ü2z
-étű2z
-é2t3ye
-é1u
-éu2ni
-éu2ta
-éu2tá
-éu2zs
-é1ú
-é1ü
-éü2gy
-éü2le
-éü2lé
-éü2lö
-éü2lő
-éü2rü
-éü2té
-éü2tö
-éü2tü
-éü2ze
-é1ű
-é2vad
-1évad.
-év1adó
-1évadr
-év1agy
-év1ajá
-é2v1a2la
-é2valá
-é2v1alk
-é2v1am
-é2v1a2n
-év1arc
-év1au
-év1ava
-é2v1a2z
-é2v1állo
-é2v1áta
-év1áth
-év1átk
-é2v1átr
-évá2z
-év1ázá
-1évbeo
-é2v1e2g
-1é2vei
-1é2vekt
-év1ela
-1évelf
-1é2v1eli
-é2v1ell
-év1eln
-é2v1elo
-é2velő
-é2v1els
-é2v1elt
-é2v1elv
-é2v1eng
-1é2venk
-1é2vent
-év1e2ri
-é2v1e2rő
-1é2vesb
-1évesé
-év1e2sés
-1évesf
-1é2vesi
-1é2vesk
-1é2vesr
-év1esté
-év1eve
-év1é2ge
-év1é2gé
-év1égr
-év1égt
-év1ér.
-év1é2ré
-évé2ri.
-év1érr
-é2v1érte
-é2v1érté
-évé1ska
-évé1s2p
-évé1stá
-év1gr
-évi2g
-év1iga
-é2v1igé
-1é2vih
-1é2vik
-1é2vim
-é2vin
-év1ind
-1évine
-1éviné
-év1ing
-év1int
-év1ism
-1é2vitő
-1é2viv
-é2v1ír
-1évkös
-év1kr
-1évny
-év1ok
-év1os
-év1ó2r
-év1ö2r
-év1ös
-év1öt
-1é2vőd
-év1pr
-év1sk
-év1st
-év1sz
-évsza2k1as
-évtá2r1a2d
-1évtő.
-év1ur
-év1új
-év1ú2t
-é2v1üg
-é2vük.
-é2vükb
-é2vüke
-é2vükh
-é2vüki
-é2vükn
-é2vükt
-é2vülj
-é2v1üt
-é2v1üz
-1évzá
-éz1a2d
-éza2gal
-éza2ge
-éz1a2j
-éz1akr
-é2z1a2l
-éza2n
-éz1any
-éz1a2r
-éz1as
-é2z1a2t
-éz1az
-é2z1á2g
-é2z1á2l
-éz1ásv
-éz1áz
-éz1bl
-éz1d2r
-éze2c
-éz1ece
-é2z1e2dé
-éz1e2gé
-éz1e2gy
-é2z1ela
-é2z1eld
-é2z1e2le
-ézel1en
-é2z1elf
-é2z1elh
-é2z1ell
-éz1előb
-éz1előé
-éz1előg
-éz1elői
-éz1előj
-é2z1e2lőké
-éz1előn
-éz1előp
-éz1elős
-éz1előt
-éz1előv
-é2z1els
-é2z1elv
-é2z1emb
-éz2en.
-éze2n1á
-éz1enz
-é2z1e2p
-éze2r1a
-éze2r1á
-éze2r1in
-éze2rip
-éze2ro
-éz1erő
-éz1e2rű
-éz1esz
-éze2ta
-éze2t1á
-éze2t1eg
-éze2t1e2kéh
-éze2t1el
-é2z1e2v
-é2z1ex
-é2z1é2d
-é2z1ég
-é2z1ék
-é2z1é2l
-é2z1ér.
-é2z1érc
-é2z1é2ri
-é2z1érm
-é2z1érp
-é2z1érté
-é2z1érz
-éz1fr
-ézgé2
-éz1g2r
-ézi2d
-éz1ido
-é2z1igé
-é2z1ill
-éz1imp
-éz1ind
-éz1ing
-é2z1int
-ézi2o
-éz1ion
-é2z1i2pa
-é2z1ipá
-é2z1i2r
-é3zire
-é3zirő
-ézis3s
-ézi2s1ú
-ézi2sza
-ézi2s3zá
-éz1i2ta
-é2z1i2vá
-éz1izm
-éz1izo
-é2z1izz
-éz1í2j
-éz1ír
-éz1í2v
-éz1íz
-ézkar2c3h
-éz1k2l
-éz1k2r
-éz1ola
-éz1old
-éz1op
-é2z1or
-éz1osz
-é2z1ox
-éz1öb
-éz1ö2k
-éz1ön
-éz1ör
-éz1ös
-éz1öt
-éz1ö2v
-ézőa2
-éz1őr.
-éz1pl
-éz1p2r
-éz3saj
-éz3sar
-éz3seb
-éz3ser
-éz3sik
-éz3sín
-éz3sod
-ézsó2
-é2z3sók
-ézs1ór
-éz3sö
-éz3spi
-ézs1s
-éz3sug
-ézs1ú2r
-é2z3sü
-éz3sz
-éz1t2r
-éz1ug
-éz1uj
-é2z1u2r
-éz1ut
-é2z1ü2g
-é2z1ür
-é2z1üs
-é2z1üt
-é2z1ü2z
-éz1űr
-éz3zsa
-2f.
-1fa
-faát1
-fa1b2ro
-fa2chi
-fac3hi.
-fa2c3ho
-fa1d2r
-faegyez1
-fae3lek
-fae2r
-faé2d
-fa1f2r
-fa1g2r
-fagyé2
-fa2gyék
-fa2gyol
-fa2győ
-fa2gyúr
-fai2d
-fai2s
-fa2j1a2l
-fa2j1az
-fa2j1ág
-fa2j1á2ru
-fa2j1egys
-fa2jelem
-fa2j1elk
-fa2jelm
-fa2j1eln
-fa2j1elv
-fa2j1es
-fa2j1ö
-fa2jő
-fajt2
-faj1tr
-faju2r
-faj1ura
-fa2jü
-fa1k2l
-fa1k2r
-fa1k2v
-fa2l1a2dá
-fa2l1a2dó
-fa2lajá
-fa2l1a2kó
-fa2l1a2l
-fala2n
-fal1any
-fa2lav
-fa2l1azú
-fa2l1ábr
-fa2l1ál
-fa2l1á2ro
-fa2l1áth
-fa2l1átv
-fal1e2gy
-fa2l1elem
-fa2l1elő
-fal1ese
-fa2l1éri
-fal1f2
-fa2lid
-fa2l1inj
-fa2l1iz
-fa2l1í2
-fa2l1ol
-fa2l1oml
-fa2lor
-fa2l1os
-fal1órá
-falö2
-fa2lök
-fa2l1öv
-fa2l1őr
-fal1p2
-fal2s1ín.
-falta2n
-fal2tem
-fal2tip
-fal2tüz
-fa2lü
-fa2n1e2vet
-fan1évb
-fan1évr
-2f1a2nya.
-faó2r
-fa1p2l
-fa1p2r
-fa2r1a2dá
-fa2ragy
-fa2r1a2kó
-fa2r1a2l
-fa2r1at
-fa2r1a2v
-fa2r1ácc
-fa2r1ál
-fa2r1á2z
-fa2r1em
-fa2r1e2pe
-fa2r1id
-fa2r1iná
-fa2r1ing
-fa2r1izm
-fa2r1izo
-far2k1al
-far2kol
-far2mál
-far2min
-far2m1unká
-fa2r1okke
-fa2r1osz
-fa2r1ut
-fa1s2k
-fa1s2p
-fa1sta
-fa1sté
-fa2sz1ív.
-fa1tri
-fau2r
-fau2s
-fau2tá
-faü2t
-faü2z
-fa2xe
-faxi2
-fa2x1ik
-fa2xin
-fa2xí
-fa2xö
-fa2xú
-fa2xü
-fa2xű
-fa1ya
-fa1ye
-1fá
-f1ábr
-fá2c3h
-fá2gép
-fáj2lak
-fáj2lá
-fáj2l1e2
-fáj2l1í2
-fá2ní
-fánka2
-fán2kar
-fán2ká
-fán2tad
-fán2t1a2g
-fán2tan
-fán2t1á2
-fán2t1e2
-fán2tis
-fán2tor
-fán2tö
-fá2po
-fá2ram
-f1á2rá
-fás3s
-fá2t1a2
-fá2t1á
-fá2te
-fá2t1érd
-fá2t1i2s
-fátmű1
-fá2t1ol
-fá2t1ü2
-fázi2s1ág
-fázi2s3z
-fba2l1
-fc2lu
-fd2ró
-1fe
-fe2aa
-fe2aá
-fe2ab
-fe2ac
-fe2ad
-fe2ae
-fe2aé
-fe2af
-fe2ag
-fe2ah
-fe2ai
-fe2aj
-fe2am
-fe2an
-fe2a1p2
-fe2ar
-fe2as
-fe2at
-fe2aú
-fe2av
-2f1e2dz
-fe2ed
-fe2el
-fe1f2r
-fe2gy1i
-fe2győ
-fei2n1i
-fe2ja
-fe2j1á2
-fe2j1egy
-fe2j1elm
-fe2j1e2r
-fe2j1esz
-fe2j1e2v
-fe2j1o
-fe2j1ös
-fej1tr
-fe2j1u
-fe2jú
-fek2t1emb
-fe2l1a2
-fe2l1á2
-fele2c
-fe2l1e2dz
-fe2l1e2g
-fe2l1e2h
-fe2l1elev
-fe2l1e2mel
-fe3lemen
-fe3lemet
-fe2l1e2més
-fe2l1eml
-fe2l1eng
-fe2l1enn
-fe2l1e2re
-fe2l1esd
-fe2lesed
-fel1eseg
-fe2l1e2sett
-fe2l1esés
-fe2l1esik
-fe2l1esk
-fe2l1esni
-fe2l1e2ső
-fe2l1essen
-fe2l1este
-fe2l1estü
-fe2l1e2sz
-fe2l1e2tes
-fe2l1e2tet
-fe2l1ettek
-fe2l1ettél
-fel1e2ve
-fel1e2vé
-fel1evi
-felé2d
-fe2l1éde
-fe2l1é2g
-fe2l1é2k
-fe2l1é2l
-fe2l1é2p
-fe2l1ér.
-fe2l1é2rek
-fe2l1éren
-fe2l1érh
-fe2l1éri
-fe2l1érj
-fe2l1érk
-fe2l1érn
-fe2l1érs
-fe2l1ért
-fe2l1érv
-fe2l1étet
-fe2l1i2
-fe3lib
-fe2l1í2
-fel3l
-fe2l1o2
-fe2l1ó2
-fe2l1ö2
-fe2l1őg
-fe2l1őr
-fel1p2
-felt2
-fe2l1u2
-fe2lú
-2f1e2ner
-fen2n1a2
-fen2ná
-fenne2
-fen2nev
-fen1sc
-fer1abl
-fe2rak
-fe2r1áll
-fe2r1á2r
-fere2g
-fer1egy
-fe2r1old
-fe2r1olj
-fe2r1oln
-fe2r1olt
-fe2sem
-fe2s1er
-2f1e2sé
-feu2m1é2
-fe2vő
-fe2z1ér.
-fe2zó
-fe2zs
-1fé
-féka2
-fé2k1ad
-fé2k1ag
-fé2k1al
-fé2kas
-fé2k1au
-fé2k1á2
-fé2k1e2g
-fék1ell
-fé2k1er
-fé2k1ék
-fé2k1é2l
-fé2k1ér.
-fé2k1o2l
-fé2k1or
-fé2kön
-fé2k1u2
-fé2k1ú
-fé2l1a2
-fé2l1á2j
-fé2l1á2r
-fé2leg
-fé2l1ekk
-fél1elé
-fé2l1ell
-fé2l1elő
-féle2m
-fél1emb
-fé2l1eme
-fé2l1e2r
-fé2l1ese
-fé2l1esz
-2f1é2let
-fé2l1ez
-fé2l1éva
-féligaz1
-fé2lin
-fé2lir
-fé2l1is
-fé2liv
-fé2lí
-fé2l1ok
-fé2los
-fé2ló
-fé2l1ö
-fé2lőr
-félpen1
-fél1t2r
-fé2l1ú2
-fé2mab
-fé2mad
-fé2m1a2g
-fé2m1a2j
-fé2m1a2n
-fé2m1ap
-fé2mau
-fé2maz
-fé2m1ác
-fé2m1ál
-fé2m1ec
-fé2medé
-fé2me2két.
-fé2m1e2l
-fé2m1emb
-fé2mer
-fé2mez
-fé2m1é2k
-fémé2r
-fé2m1éré
-fé2m1i2n
-fé2m1ir
-fé2m1is
-fé2mit
-fé2m1iz
-fé2mí
-fé2m1o
-fé2mó
-fé2mö
-fé2m1u
-fémü2
-fé2m1ül
-fé2ny1e2g
-fé2ny1e2l
-fé2ny1e2r
-fé2ny1is
-fé2ny1í
-fé2nyo
-fé2nyö
-fé2nyú
-fé2pí
-fé2pü
-2féraá
-2féraf
-2férai
-2féral
-2férar
-2férád
-2féráé
-2férám
-fér2cem
-fére2g1e2
-fé2s1orr
-fész1al
-fészá2
-fész1ár
-fé2szeg
-fé2sz1el
-féta3u2
-2f1évk
-fé2zs
-fézs1e2
-fézs1o
-ffe3li
-ffi2ac
-ffi2ag
-ffi2aka
-ffi2am
-ffi2at
-ffli2
-ff1sh
-1f2fy
-fg2ló
-1fi
-fi2aa
-fi2aá
-fi2ae
-fi2aé
-fi2af
-fi2ah
-fi2aí
-fia2la
-fi2ao
-fi2aó
-fi2aö
-fia1p
-fi2apa
-fia2ra
-fia2rá
-fi2aré
-fi2aszá
-fi2aszo
-fi2au
-fi2aü
-fi2avá
-fi2ave
-fiá2l
-fi2c3h
-fici2t1á
-fi2dan
-fi2d1á
-fi1drá
-fie2l
-fie2n
-fie2r
-fie2s
-fies1e
-fie2t
-fi1fl
-fi1fr
-2f1i2gaz
-fi1k2l
-fi1krá
-fi1kré
-fi1kri
-fi1k2v
-fi2lac
-fil1ada
-fil1akn
-fil1akt
-fi2lal
-fi2lam
-fi2l1ál
-fi2lár
-fil1elt
-fi2l1en
-fi2les
-fil1esz
-fil1ért
-fi2l1i2d
-fi2l1i2m
-fi2l1in
-fil2mad
-fil2mak
-fil2man
-fil2m1as
-fil2mat
-fil2m1á2
-fil2mos
-fil2mu
-fi2lö
-fi2lü
-2f1i2má
-fimeg1
-2f1i2nas
-2find
-fin1osz
-fi2n1ó
-fint2
-fin1tr
-fi2n1u2
-fi2nú
-2finx
-fio2v
-fi3ók
-fió2k1a2l
-fió2kar
-fió2k1e2
-fió2kép
-fió2kol
-fió2kö
-fió2r
-fiő2r
-fi1p2l
-fi1p2r
-fi2rod
-fir2s1
-fis1arc
-fi1s2p
-fist2
-fi1str
-fi2t1ad
-fit1a2la
-fit1alj
-fi2tág
-fit1árak
-fitá2t
-fi2t1áta
-fi2t1éh
-fi2t1érd
-fi2tik
-fi2t1in
-fi2tir
-fi2t1i2z
-fito1p2
-fi2t1osz
-fi2tön
-fi2t1őr
-fi2t1ur
-fiu2min
-fiu2t
-fi2úa
-fi2úá
-fi2úe
-fi2úf
-fi2úg
-fi2úí
-fi2úl
-fi2úo
-fi2úö
-fi2úő
-fi2úp
-fi2úsz
-fi2úti
-fi2úu
-fi2úú
-fi2úü
-fi2x1ár
-fi2x1el
-fi2xö
-1fí
-fí2rá
-fírcsa2
-fí2r1in
-f1í2ró
-fír1tr
-fí2rü
-fjú1sz
-fki2s1
-fk2li
-fk2lu
-fk2ró
-f2lak
-f2lan
-f2lep
-f2lip
-fli2s1é
-flo2n1á
-flo2né
-f2lot
-f2luk
-1fo
-fo2am
-fo2g1á2c
-fo2gál
-fo2g1árk
-fo2g1áro
-fo2g1e
-fog3g
-fo2gí
-fo2g1or
-fo2g1os
-fo2gö
-fo2gur
-fo2gü
-fohá2szat
-fo2kal
-fok1áll
-fo2k1árr
-fo2k1e2
-fok1ing
-fo2kí
-fok1k2
-fo2kola
-fo2k1or
-folta2n
-fol2t1e
-fol2t1ö
-fo2n1ada
-fo2nado
-fo2nak
-fon1alap
-fona2l1e2
-fon1alja
-fon1aljo
-fona2n
-fon1any
-fo2n1asz
-fo2n1au
-fo2n1á2r
-fonás1s
-fo2n1át
-fond2
-fon1dr
-fo2neg
-fo2n1el1
-fo2ner
-fo2n1es
-fo2nék
-fon1f2
-fon1i2ko
-fo2n1i2m
-fo2nin
-fo2n1is
-fo2niz
-fo2ní
-fon1k
-fo2n1or
-fo2n1osz
-fo2nö
-fo2nő2
-fons2
-fon1st
-fon2t1i2n
-fontó2
-fon2tón
-fo2nü
-fonya1
-fo2r1ad
-forakész1
-fo2r1ala
-fo2r1a2n
-for1ato
-fo2reg
-fo2r1el
-fo2r1er
-forgás1s
-fo2r1il
-fo2r1i2o
-for2m1e2l
-for2m1em
-for2merő
-for2mes
-for2m1érté
-for2mil
-for2m1in
-fo2r1ol
-fo2rö
-2f1orrú
-fors2
-for1sp
-for2t1ál
-for2t1e2l
-for2t1érd
-for2tü
-fo2rü
-foto1s
-fo2vi
-1fó
-fó2rá
-fósza2
-1fö
-fö2la
-fö2lá
-föl2dök
-fö2l1e2
-fö3le.
-2f1ö2lésbel
-fö2liv
-fö2lí
-föl1k2
-fö2lo
-fö2ló
-fö2lön
-fölt2
-föl1tr
-fö2lu
-fö2lú
-fön2n1
-fönne2
-fö2sá
-1fő
-főa2n
-főá2g
-fő1bl
-fő1br
-fő1dra
-főe2l
-főe2r
-főe2s
-főé2h
-főé2te
-fő1fl
-fő1f2r
-fő1gl
-fő1gn
-fő1gr
-fői2d
-főigaz1
-fői2ta
-főí2t
-fő1kl
-fő1kv
-fő2n1ag
-fő2n1apj
-fő1pl
-fő1pr
-fő2r1aj
-fő2rem
-főre2s
-fő2r1ék
-főri2
-fő2r1is
-fő2rül
-főr1ülé
-fő1sl
-2fősö
-fő1sta
-fő1str
-fősz2
-fő1szl
-fő1szp
-fő1szt
-fő1t2r
-főü2l
-főzőé2
-fp2la
-fp2ro
-fra1s
-frá2ma
-frá2má
-frá2m1e2
-frá2nye
-f2rás
-f2resk
-fré2ná
-fré2nén
-1f2ric
-f3rich
-f2rig
-f3rip
-1f2ris
-fron2t1a2
-fron2t1e2
-f2röc
-f2rus
-fs2ho
-fs2po
-fs2tí
-fst2r
-ft1aj
-fta1kr
-ft1alj
-ft1bl
-f2t1ef
-fte2m
-f2t1eme
-f2t1ér.
-fti2g
-f2t1ige
-f2t1ing
-ft1ös
-ft1út
-f2t1üg
-ft1üt
-f2t1ü2z
-1fu
-fuga1
-fura2t1e
-fu2s1as
-fu2seg
-fu2sis
-fu2sz1á2
-fu2sz1ol
-fu2szü
-futókész1
-futó1s2p
-1fú
-fúj2tal
-2f1ú2ré
-2f1úrr
-fú2zs
-1fü
-2f1ü2gy
-fü2la
-fü2lá
-füle2c
-fü2l1eml
-fü2l1e2p
-fü2l1e2v
-fü2l1é2j
-fü2l1é2k
-fü2lí
-fül3l
-fü2lo
-2fülő
-fü2lőt
-fül3t2
-fü2ma
-fü2má
-fü2m1e
-fü2mo
-fü2mő
-fü2mú
-2f1ünn
-für2t1ő
-füstü2
-füs2t1ülé
-2f1ü2té
-2f1ü2tő
-2f1üzl
-1fű
-fű1dr
-fű1fr
-fű1pr
-fű1sr
-fűsze2r1el
-fű1t2r
-fű2zá
-fű2zis
-fű2zo
-fű2z1ölt
-fvárosé2
-1fy
-2g.
-1ga
-2g1abc
-2gabr
-2g1abs
-ga1by
-2g1a2dag
-g1adap
-2g1a2data
-2g1a2datb
-gadás1s
-2g1adm
-ga2dog
-2gadomá
-gadói2ko
-2gadósat
-2g1a2du.
-2g1a2duk
-gae2r
-2g1aff
-ga1fl
-ga2ga.
-2g1agg
-ga1g2rá
-g1agy.
-ga2gyu
-g1a2gyú
-2g1aján
-2g1ajk
-2g1ajt
-2g1a2kad
-ga2kác
-2g1akc
-g2a3ké
-2gakév
-ga1kl
-2gaknai
-g1aktu
-g1akv
-gala2g1ú
-ga2lat
-2galáf
-2galáí
-ga2láv
-2g1alb
-2g1alc
-gale2g1e2
-2g1alk
-galo2m1e
-3galop
-g1a2los
-2g1a2lud
-ga2lul
-ga2lusz
-2galvó
-ga2m1a2gá
-2g1amc
-2g1amp
-ga2nab
-2g1a2nal
-2gancs
-gan2csal
-gancs1ág
-gan2cse
-gan1d2
-3g2ané
-gan2ga
-g1a2nim
-ga2nyag
-ga2ny1at
-ganye2l
-ga2nyér
-g1a2nyó
-ga2nyö
-gaó2r
-ga2pa.
-ga2paá
-ga2pac
-ga2pas
-ga2pán
-ga2pát
-ga1p2l
-ga2pok
-ga2pó.
-ga2pób
-ga2pók
-ga2pón
-ga2póv
-2g1app
-ga1p2ré
-ga1pro
-gara2t1í
-2g1a2rák
-2g1a2rány
-ga2rén
-gar1k2
-ga2rő
-ga2seg
-ga2s1is
-ga2s1ín
-ga1s2pi
-ga1spr
-gas3sze
-gas3szí
-gast2
-ga1s2ta
-ga1sto
-ga1str
-gasz1agg
-ga2sz1an
-ga2szág
-ga2szás
-ga2sz1es
-gasz2tár
-ga2t1a2d
-gat1ará
-ga2tav
-ga2t1ál
-ga2t1á2ram
-ga2t1eg
-ga2tep
-gaté2s
-ga1thi
-ga2tim
-gat1old
-ga2tomi
-g1a2uk
-ga2ul
-ga2us
-ga2van
-ga2var
-ga2vat
-2g1a2vu
-gaza2n
-gaz1any
-gaza2te
-ga2zál
-3g2azd
-3g2aze
-ga2zer
-2gazg
-2gazítá
-gazmus1s
-2gazod
-2gazon
-ga2zü
-1gá
-g2ába
-2g1á2bé
-g2ábó
-2g1ábr
-3g2áci
-gács1a2va
-gá2cse
-gá2cs1il
-gá2csü
-gáda2
-gá2d1al
-gá2dá
-gá2d1él
-gá2d1ia
-gá2dis
-gá2dő
-gá2d1ü
-gá2fo
-2g1ág.
-gá2gak
-gá2gat
-gá2gaz
-2g1ágg
-2g1á2gi
-2g1á2gú
-2g1á2gy
-gágy1asz
-2g1á2hí
-g2ája
-g2ájá
-gá2j1e2
-gá2jü
-gála1p
-2g1álc
-2g1áldo
-gá2l1es
-g2áli
-3gális
-2g1áll.
-2g1állí
-2g1állu
-2g1álmo
-3g2ály
-g2ám.
-gá2mal
-gá2m1e2
-2g1á2mí
-gá2mü
-gána2
-gá2nac
-gá2nal
-gá2nap
-gá2n1at
-gá2nás
-gán2cse
-gán2csi
-gán2cs1ö2
-gán1d2
-gá2n1e
-2gángy.
-gá2nig
-gá2n1io
-gá2nis
-2g1á2niz
-gá2nol
-gá2n1ó2
-gán1sz2
-gánt2
-gán1tr
-gá2n1ú
-gá2nü
-gá2ny1a2n
-gá2nyar
-gá2ny1as
-gá2ny1e2
-gá2nyérd
-gá2nyérz
-gá2nyij
-gányká2
-gá2nyö
-gá2po
-gá2rad
-gá2r1ag
-gá2r1aj
-2g1á2ram
-gá2r1a2n
-gá2rar
-gá2ras
-gá2ra2t
-gár1ato
-gár1att
-gá2r1av
-2g1á2raz
-gá2rág
-gá2r1ál
-gá2r1á2z
-gá2re2
-gár1em
-gár1es
-gár1et
-gár1éte
-gá2rif
-gá2r1i2p
-gá2r1isk
-gá2r1ism
-gá2r1iz
-gá2rí
-2g1árnyé
-gá2r1ol
-gá2rop
-gár1ost
-gá2r1osz
-gáró2
-gá2r1ór
-gá2rö
-gá2rő
-gár1s2
-gár1tr
-2gáru.
-2g1árud
-gá2rug
-2g1á2ruh
-2g1á2rulá
-2g1á2ruló
-2g1árur
-2gárus
-gár1uta
-gár1utu
-gá2rúr
-gá2rút
-gá2rü
-gá2rű
-g2ás.
-gá2s1a2d
-gá2sal
-2gásatá
-gá2s1á2g
-gá2s1árad
-gá2s1árn
-2g1á2sás
-gá2s1á2to
-gá2s1e2
-gá2s1im
-gá2sis
-gá2sí
-gá2sor
-gá2só
-gás1ó2r
-gá2sö
-gá2ső
-gás3szé
-gás3szü
-gást2
-gás1tr
-gá2sut
-gá2s1ü2
-gá2sű
-gá2szal
-gá2szas
-gá2szatl
-gá2s3zav
-gá2sz1ál
-gá2sz1e2
-gá2szis
-gá2szit
-gá2szí
-2g1ászká
-gászkész1
-gá2sz1okta
-gá2sz1ól
-gá2s3zón
-gá2szöv
-gá2szü
-g2át.
-2gátad
-gá2taj
-2gá2tal
-gát1a2la
-gát1alj
-gátá2
-gá2tál
-gá2t1ár
-gá2tát
-2g1átbo
-gá2t1eg
-gá2t1e2l
-gá2t1e2m
-gá2ten
-gá2tél
-gáté2r
-gá2t1ér.
-gá2t1ére
-2gátfe
-2g1átg
-2g1átha
-gá2til
-gá2tis
-gá2tiz
-2g1á2tí
-g1átmé
-gá2t1olda
-gátó2
-gá2tór
-2g1á2t1ö
-gá2tő
-2g1áttű
-2gá2tü2
-g1átvi
-g2áva
-g1á2vó
-gá2z1a2d
-gáz1akn
-gáz1akt
-gá2z1a2l
-gá2zar
-gá2z1a2t
-gá2z1av
-gá2z1ár.
-gá2z1árá
-gáz1áre
-gá2z1árh
-gá2z1árk
-gá2z1árn
-gá2z1á2ro
-gá2z1árr
-gá2z1árt
-gá2záru
-2g1á2zásos
-gá2z1e2
-gázi2g
-gá2z1iga
-gá2zim
-gá2z1i2p
-gá2z1i2s
-gá2z1iz
-gá2zí
-gá2zö
-gá2ző
-gáz3sp
-gáz3sta
-gáz3ste
-gáz3sug
-gá2zsú
-gáz3sü
-gáz3sz
-gá2zü
-gbeá2
-gbé2lá
-gbé2rem
-gb2la
-gb2le
-gb2lo
-gb2lú
-gb2ra
-gb2ri
-gb2ro
-gb2ru
-gcsapá2
-gcsa2p1ág
-gda2u
-gd1ell
-gde1p2
-g2d1é2k
-g2d1ér.
-gd1ina.
-gd1ináb
-gd1ináh
-gd1inár
-gd1inát
-gd1ináv
-g1d2rá
-gd2re
-gd2ro
-gd1t2r
-g2d3zö
-1ge
-gea2c
-gea2g
-gea2l
-geá2r
-g2ebe
-g1e2cet
-3g2eci
-g1eddz
-2gedénn
-2gedény
-ge2dze
-ge2dzé
-ge2dzi
-ge2dző
-2g1eff
-2gege
-2g1e2gé
-3gegom
-ge2gye
-ge2gyé
-ge2gyo
-2g1e2gyü
-ge2hes
-ge2het
-2g1e2hü
-2g1ejt
-2g1e2ke.
-2g1e2kei
-2g1e2kek
-2g1e2kéé
-ge2kéj
-ge2kék
-2g1e2kés.
-ge1k2li
-2g1eks
-3g2el.
-g1elad
-ge2lag
-3g2elap
-ge2las
-ge2lál
-ge2l1ár
-2g1elcs
-3geld.
-2g1eldo
-2g1eldö
-ge2lef
-ge2legi
-g1elegy
-3g2elek.
-2ge2lemé
-ge2lemi
-2ge2lemk
-2g1e2lemm
-2g1e2lemz
-gele2n
-3gelend
-ge2l1eng
-ge2l1eny
-gel1este
-ge2lev
-ge2lég
-3g2elésb
-3g2elések
-3g2elésen
-3g2elésén
-3g2elésér
-3g2elésh
-3g2elési.
-3g2elésk
-3g2elésrő
-3g2eléss
-3g2eléstő
-3g2elésü
-2g1elész
-3gelész.
-3gelésző
-3gelészü
-3gelészv
-2g1elhel
-3g2elhes
-3g2elhet
-3g2eli.
-3g2elik
-gel1int
-3g2elj.
-3g2elje
-3g2eljé
-3g2eljü
-2g1elkü
-2gellenő
-2g1elmé
-2g1elnev
-3g2elnén
-3g2elni
-2g1e2los
-ge2lö
-3g2elő.
-ge2lőbbr
-3g2előbe
-3gelőbé
-3gelőbi
-3gelőbo
-3g2előbő
-3g2előc
-3g2előe
-3g2előé
-3g2előg
-3g2előh
-3gelőja
-3g2előjé
-3g2előjo
-3g2előjü
-3g2előjű
-3g2elők.
-3g2előka
-3g2előkb
-ge2lőkel
-3g2előker
-3g2előket
-3g2előkez
-3gelőké.
-3g2előkén
-2g1előkés
-3g2előkh
-3g2előki
-3g2előkk
-3gelőkl
-3g2előkn
-3g2előkö
-3gelőkő
-3g2előkr
-3gelőkt
-3gelőku
-3gelőkü
-2g1e2lől
-2g1előm
-3g2előn.
-3gelőna
-3g2előne
-3g2előné
-3g2előnk
-3gelőnö
-3gelőnyi
-3g2előo
-3gelőö
-3g2előő
-3g2előp
-g2előre.
-3g2előrés
-3gelőro
-3g2előrő
-3g2elős.
-3gelősá
-3gelőso
-3gelősö
-3g2elősza
-3gelősze
-3gelőszé
-3gelőszi
-3gelőszó
-ge2lőszö
-3g2előt.
-3g2előtá
-2g1előté
-3g2előtő
-3gelőtü
-3gelőü
-3g2elővá
-3g2előve
-3g2elővé
-3gelővis
-3gelőviz
-2g1e2lőz
-g1első
-3g2elsz.
-2g1elszá
-2g1elszo
-3g2elt.
-3gelte.
-3g2eltek
-3g2eltem
-3geltes
-2g1eltett.
-2g1eltettn
-3geltéb
-3g2elték
-3geltél
-2g1eltér
-3geltét
-2g1elto
-2g1eltű
-ge2lül
-3g2elün
-2g1elv.
-2g1elvb
-2g1elven
-2g1elvét
-2g1elvh
-2g1elvn
-2g1elvo
-2g1elvr
-2g1elvű
-2g1elvv
-ge2ly1e2g
-ge2lyid
-ge2man
-2g1ember
-2g1embl
-g1e2mel
-2gemelé
-2gemelk
-ge3mell
-2gemelő
-2g1e2més
-2g1eml
-ge2moc
-2g1emp
-gena2
-ge2n1ad
-ge2nar
-ge2n1as
-ge2nau
-ge2n1ál
-ge2nár
-ge2nát
-g2end
-ge2n1eg
-3generá
-ge2nere
-2generg
-ge2n1esz
-ge2n1e2vet
-ge2n1e2vez
-gené2k
-ge2n1éké
-ge2n1ékn
-ge2n1ékt
-geni2d1
-ge2n1in
-ge2n1is
-gen1k2
-g1enni
-g1ennü
-gen3nya
-ge2nop
-ge2n1or
-ge2n1os
-gen2sért
-gens3s
-gent2
-gen1tr
-ge2n1ur
-g2enye
-2g1enyh
-g1enyv
-2g1enz
-ge2ob
-ge2oc
-ge2of
-ge2ok
-ge2om
-ge2orgia
-ge2ot
-geó2r
-ge2ped
-ge2per
-ge2pés
-2gepi
-ge2pos
-ge2rab
-ge2r1ad
-ge2r1aj
-ge2ral
-ge2r1a2n
-ge2r1a2p
-ge2r1as
-ge2rau
-ge2ráb
-ge2r1á2g
-ger1áll
-gerá2r
-ge2r1ára
-ge2rát
-g1erde
-3g2ereb
-2geredm
-ge2reg
-g1erege
-ger1egy
-2g1e2rej
-ge2r1e2lők
-ge2r1eml
-ge2r1eny
-ge2r1er
-ge2resz
-ge2r1e2v
-ge2réj
-ge2r1ék
-ge2rél
-ger1éle
-ger1é2lé
-ge2r1ép
-ge2r1étt
-ge2r1i2na
-ge2r1ing
-ge2r1i2p
-ger2is
-ge2r1iz
-ge2rog
-ge2ror
-ger1osz
-ge2rot
-ge2ró
-ge2rök
-ge2r1ön
-ge2rő
-g1erő.
-g1erők
-g1erőv
-ger1őz
-geru2
-ge2rur
-ge2r1ü2g
-ger1üld
-ge2r1ü2lé
-g2es.
-ge2s1á
-ge1sc
-gesd2
-g2eseb
-3g2esei
-ge2s1e2l
-ge2s1emb
-g2esen.
-ge2send
-2g1e2s1er
-2g1e2setb
-2g1e2setet
-2g1e2seté
-ge2setl
-2g1e2setr
-2g1e2sett
-2g1esél
-2g1e2sés
-g1e2sik
-2geskü
-gesleg1
-g1esni
-2g1e2ső
-g2esr
-gess2
-3g2essé.
-3g2esség
-g2est.
-2g1este
-2g1esté
-2g1esti
-2g1estj
-g1esvé
-2g1e2szek
-ge2szes
-ge2szet
-g1eszl
-2g1eszm
-ge2t1ak
-ge2tal
-ge2t1a2ny
-get1ap
-ge2t1as
-get1e2gy
-2g1e2tetőn
-ge2t1é2k
-geté2l
-get1éle
-ge2t1ér.
-ge2t1é2rü
-ge2t1é2ve.
-getó2
-ge2t1ór
-getőkész1
-get1őrt
-ge1t2ró
-get2t1ebbé
-ge2tut
-ge2t1ü2z
-ge2ur
-geu2s
-ge2vic
-2gevo
-ge2vol
-2g1e2vő
-ge1yé
-ge2zo
-gezőa2
-2g1ezr
-1gé
-gé2ber
-2g1ébr
-géc3c
-gé2d1a2
-gé2d1á2
-gé2d1e2l
-gé2d1e2r
-gé2d1esz
-gé2dik
-gé2din
-gé2dir
-gé2dí
-gé2d1o
-gé2dö
-gé2d1ő2
-gé2d1u2
-gé2d1ú2
-gédü2
-gé2d1ülé
-gé2dű
-gé2d3z
-gé2gi
-gé2gő
-gé2gü
-2g1é2he.
-2g1é2hek
-2g1é2hen
-2g1é2hes
-2g1é2het
-2g1éhh
-2g1éhs
-2g1éj.
-gé2jért
-2g1éjh
-2g1éjj
-2g1éjs
-gé2kei
-g1é2kel
-g1é2kes
-gékes1s
-g1é2kez
-2g1éks
-gé2lál
-gé2lel
-2géles
-2g1é2let
-2g1é2lez
-gé2lén
-2g1élm
-gélvvá2
-gé2lya
-gé2lyá
-gé2lyeg
-gé2lyo
-gé2lyú
-gé2m1a2
-gé2m1á
-g2émb
-gé2m1eg
-gé2mel
-gé2mer
-gé2mér
-gé2m1o
-géna2
-gé2nab
-gé2n1ad
-gé2nag
-gé2n1al
-gé2n1an
-gé2n1ar
-gé2n1at
-géná2
-gé2n1ár
-gé2nát
-3g2énd
-gé2neg
-2génekes
-2génekl
-gé2n1e2l
-gé2n1e2r
-gé2n1e2t
-gé2n1é2g
-gé2n1in
-gé2ní
-g2énn
-gé2nó
-gé2n1ö
-gént2
-gé2nú
-génü2
-g2ény
-gé2ny1e2g
-gé2nyid
-gé2nyis
-gé2nyír
-gé2nyo
-gé2nyö
-gé2nyú
-3gép.
-gé2p1a2
-gé2p1á2
-gé2p1e2g
-3gépel
-gé2p1ell
-gé2p1esé
-gé2p1esz
-gé2pik
-gé2pí
-2g1épít
-gé2p1o2
-gé2pó
-gé2pö
-gé2pő
-3g2épp
-géptá2v
-gé2p1u
-gé2pú
-gé2pülé
-géra2
-gé2rag
-gé2rak
-gé2ral
-gé2r1an
-gé2rap
-gé2rar
-gé2ras
-gé2rá
-2g1érc.
-2g1érd
-gé2r1el
-gér1eml
-2géret
-2géré.
-gé2rie
-2g1é2rin
-gé2ris
-gérká2
-2gérl
-2gérm
-gé2ro
-gé2rö
-2gérő.
-2gérők
-2gérte
-2gérté
-2gérth
-g1érti
-g1értj
-g1értl
-g1értő.
-g1értőe
-g1értők
-g1értőv
-g1érts
-g1értv
-gé2r1u2
-gé2r1ú
-2g1érv.
-2gérvé
-2g1érz
-3gérzá
-gé2sar
-gé2seg
-gé2s1e2l
-gé2s1é2g
-gé2sim
-gé2s1o
-gé2só
-gés3sza
-gé2sza
-gés3zav
-gé2szá
-3gészítőü
-gé2sz1o
-gé2szó
-2g1é2tel
-gé2ter
-gé2tet
-2g1étk
-2g1é2to
-2g1étr
-2g1étt
-2g1év.
-2g1évb
-2g1é2ve.
-2g1é2ved
-2gévei
-2g1é2vek
-2g1é2ven
-2g1é2vet
-gé2véb
-2g1é2vén
-2g1é2vét
-2g1é2vév
-2g1évf
-2g1é2vi
-2g1évj
-2g1évk
-2g1évn
-2g1évr
-2g1évs
-2g1évt
-2g1évv
-gé2zan
-gé2zőr
-géz3s2
-gfala2d
-gfa2l1ada
-gfa2le
-gfi2úké
-gf2la
-gf2lo
-gf2ló
-gf2lu
-gfö2l1üle
-g1f2ra
-gf2rá
-g1f2re
-gf2rí
-g1f2ro
-g1f2rö
-gf2ru
-g2g1a2p
-gg1arc
-gga2s
-g2g1aszá
-g2g1aszó
-gge2lest
-ggés3s
-gg1i2ta
-g2g1iz
-gg1orv
-ggó2n
-g2g1óni
-ggős2
-g1g2raf
-g1g2ran
-g2gre
-gg2ro
-gg1sp
-g2g1ü2g
-g2gy
-g3gyak
-g3gyalá
-g3gyap
-g3gyara
-ggy1aro
-g3gyat
-g3gyár
-g3gyáv
-ggy1á2z
-ggy1e2lő
-g3gyeng
-g3gyep
-g3gyer
-g3gyérü
-g3gyil
-ggy1ol
-g3gyom
-g3gyor
-g3gyó
-g3gyö
-g3győ
-g3gyu
-g4gyút
-ggy1ült
-g3gyür
-g3gyű
-gha2d1e2
-ghajói2ko
-g2ham.
-g2hamb
-g2hame
-g2hamh
-g2hamm
-g2hamn
-g2hamr
-g2hamt
-gha2sábr
-g2hia
-1ghy
-1gi
-gi2aa
-gi2aá
-gia1b2
-gi2aba
-gi2abá
-gi2abi
-gi2abo
-gi2ac
-gi2a1d2
-gi2ae
-gi2aé
-gia1f
-gi2afr
-gi2a1g2
-gi2ah
-gi2aim
-gi2aí
-gi2aj
-gi2akar
-gi2akas
-gi2ala
-gi2alá
-gi2alé
-gi2am
-gi2anó
-gi2any
-gi2ao
-gi2aó
-gi2aö
-gi2aő
-gi2a1p2
-gi2ar
-gia1sz2
-gi2asza
-gi2aszá
-gi2aszem
-gi2aszé
-gi2aszf
-gi2aszi
-gi2aszo
-gi2aszó
-gi2at
-gia1t2r
-gi2au2
-gi2aú
-gi2aü
-gi2aű
-gi2av
-gi2az
-2gibr
-2g1i2dea
-2g1i2deá
-2g1i2deg
-gi2dei
-2gidej
-2g1i2deo
-2g1i2dé
-gi2dió
-2g1i2do
-2g1i2dő
-gi1fl
-gig1ad
-gig1ara
-gig1ass
-gig1au
-2gigaz
-gig1ál
-2g1i2ge.
-gig1e2c
-gig1eg
-gig1eh
-gig1eng
-gig1enn
-gige2r
-gig1ere
-gig1e2s
-gig1et
-gig1e2v
-gi2gé
-gig1éh
-gig1é2l
-gig1ém
-gig1é2ne
-gig1é2r
-2g1igéz
-gig3g
-gi2g1i2
-gi2gí
-gi2g1o2
-gi2g1ó2
-gi2g1ö
-gi2g1u
-gi2gú
-gi2g1ü
-gi2gű
-g1i2gy
-2g1i2ha
-2g1ihl
-2gijes
-gi2ker
-gi2kes
-3gile
-g1ill
-gi2ma.
-gi2man
-gi2máb
-2gimád
-gi2már
-2g1i2máz
-gi2me.
-2g1imp
-gina1p2
-gi2nas
-gi2n1á2z
-2g1ind
-3giné
-2ginf
-2g1inkv
-g1inná
-g1inni
-g1inno
-g1innu
-2g1inp
-2gins
-2g1inta
-3gintc
-2g1inte
-2g1inté
-g1inth
-g1inti
-g1intj
-g1intő.
-g1ints
-g1intu
-g1intv
-2g1inv
-2g1inz
-gi2one
-2g1ioné
-gi2ono
-gi2ot
-gi2óa
-gi2óá
-gi2óc
-gi2óe
-gi2óf
-gi2óg
-gi2óká
-gi2ókom
-gi2ól
-gi2ó1p
-gi2órá
-gi2ó1sp
-gi2óta
-gi2ótá
-gi2óú
-gi2óü
-gi2óz
-2g1i2pa
-3g2ips
-gip2sza
-gip2szá
-gip2szo
-gi2ram
-2g1i2rat
-2g1i2rá
-gi2rig
-2giro
-gi2rod
-2g1i2rón
-2g1irt
-g1isc
-2g1i2si
-2g1isk
-2g1isl
-2g1ism
-2g1isp
-2g1istál
-2g1iste
-2g1i2szá
-2g1i2szo
-gi2szu
-gi2tas
-g2itá
-2gitác
-3g2iti
-3gitte
-g1ittu
-2g1i2vad
-2g1i2vás
-g1i2vo
-2g1i2vó
-2g1i2zé.
-gi2zév
-2g1i2zo
-1gí
-gí2gé
-gí2ja
-gí2já
-gí2m1a2
-gí2má
-gí2né
-gí2ny
-gí2ra
-gí2rá
-gí2re
-gí2ri
-gí2ro
-gí2ró
-g1í2tész
-gí2vá
-gí2ve
-gí2vé
-gí2vo
-gí2vó
-gí2vü
-gí2ze
-gí2zü
-gí2zű
-gka2ró2r
-gké2p1e2l
-gkia3dóná
-gkiá2
-gkis1s
-gk2la
-gk2li
-gk2lí
-gk2lo
-gk2ló
-gk2lu
-gkö2zén
-gkö2z1ér
-gkővá2
-gk2ra
-gk2rá
-gk2re
-gk2ré
-gk2ri
-gk2rí
-gk2ro
-gk2ró
-gk2va
-gk2vó
-gla1p2l
-gla1s2t
-gla3t
-glá2sza
-gle2g1a2
-glege2l
-gle2g1elé
-gleí2
-gle2t1a2
-gle2tá
-gle2t1el
-gle2t1é2rőt
-gle2t1étn
-gle2tos
-gleü2
-glé2nyel
-g2lor
-1g2los
-glóó2
-glós2
-glőre2
-glő2reg
-glő2rel
-glő2ro
-gme2g1a2
-gme2g1e
-gme2g1é
-gmens1s
-gmen2sz
-gmus3s
-gna2d
-gn1ada
-g2n1a2j
-g2n1alk
-gna2pe
-g2n1a2r
-1g2náb
-1g2náh
-1g2nái
-g2nán.
-g2náná
-g2nára
-gná2s3z
-g2nát.
-g2nátó
-1g2náv
-gn1br
-gne2i
-g2n1e2l
-gne2m1e2l
-gne2sir
-gnes3s
-gne2szá
-gneto1
-gné2l
-g2n1éle
-gnév1a
-gné2v1á
-gni2g
-g2n1iga
-g2n1ing
-g2n1i2p
-g2n1i2r
-g2n1is
-gnit1a2
-gni2tel
-g2n1okt
-g2nol
-gn1olt
-1g2nora
-1g2nore
-1g2noré
-gn1ök
-gn1ös
-gn1pr
-gn1s2k
-gn1st
-gn1t2r
-g2núj
-gn1üg
-gn1üz
-1go
-go2áz
-go2be
-2g1obj
-2g1o2dú
-go2et
-g1o2ka.
-gok1a2d
-g1o2kai
-2g1o2k1a2l
-2g1o2ká
-goki2
-gok1ir
-goklá2
-2g1okm
-g1o2kok
-2g1o2kos
-g1o2kot
-2g1o2koz
-2g1okta
-2g1o2laj
-go2l1a2l
-2g1olda
-2g1oldá
-2g1oldó
-gol2f1a
-gol2f1e
-gol2fin
-go2lim
-go2l1ó2rá
-2goltalo
-2g1oltár
-2g1oltás
-2g1oltó.
-2g1oltv
-2golvad
-2golvas
-go2m1as
-3g2omb
-gom2b1árn
-gom2b1árt
-gom2b1e2
-3g2ome
-2g1oml
-go2n1a2to
-go2n1áll
-gonc3c
-gon2d1á2
-gon2d1ér.
-gondi2
-gon2dik
-gon2doks
-gon2d1or
-gon2dó
-go2n1e2
-gon2g1a
-gon2gál
-g2ono
-go2nol
-2g1onto
-go2nü
-go2nye
-go2od
-go2pá
-2g1o2pe
-gor1ass
-gorasz2
-gora1t2
-gor1áll
-2g1orc
-go2r1el
-2gorie
-2g1orm
-go2roz
-go2rö
-2gorz
-go2se
-go2sö
-2gosto
-2g1ostr
-g1osty
-go2sü
-go2s3za
-go2s3zá
-go2szó
-go2ua
-go2ub
-go2ud
-go2ur
-go2ut
-go2vác
-2g1o2ve
-go2xi
-go1ya
-go1yá
-1gó
-góa2d
-góá2g
-góá2r
-gó1bl
-gó2c3h
-gó2c1ol
-gócsapá2
-gócsa2p1ág
-gó2cü
-2g1ó2dán
-gó2div
-gó1dru
-gó1f2r
-góí2v
-gó1kl
-gó1kré
-gó2lar
-góle2l
-gól1elő
-gó2l1é2h
-gó2lí
-gó2lü
-2g1ó2nu
-góó2r
-gó1p2l
-gó1p2r
-g1ó2rad
-g1ó2ras
-gó2ráka
-gó2rár
-3g2óro
-3g2ósa
-gó2s1aj
-gó1s2ká
-gó1s2p
-gó1s2rá
-gós3s
-gó1s2ta
-gó1stá
-gó1str
-gó1sz2
-gó2s3zám
-gó2s3záras
-gó2s3zárá
-gós3zárú
-gó2tau
-gó2t1is
-gó1tré
-gó1tri
-3g2óval
-2góvod
-2g1ó2vó
-gó2vu
-3g2ózá
-3g2ózi
-3g2ózo
-3g2ózu
-1gö
-2g1öbl
-2g1ö2ko
-gö2ku
-2g1ö2lá
-2g1ölb
-g1ö2le
-2g1ölr
-3g2ömb
-göm2b1a
-gömbe2
-göm2bel
-göm2b1er
-2g1öml
-2g1ö2na
-g1ö2ná
-gö2ne
-gö2nö
-2gönt
-gö2ra
-3g2örb
-3g2örc
-gör2csa
-gör2csá
-gör2csel
-gör2cső
-3gördí
-3gördü
-2g1ö2re
-3g2örg
-3g2örn
-gö2rök
-g1ö2rü
-2görv
-gösé2
-gö2s1én
-2g1össz
-2g1ösz
-2g1ötl
-g1öv.
-g1övb
-g1ö2ve
-g1ö2vé
-g1övh
-g1övn
-g1ö2vö
-g1övr
-g1övt
-g1ö2vü
-g1ö2vű
-g1övv
-1gő
-gőa2n
-gőá2g
-gő1br
-gőe2l
-gőe2r
-gőé2b
-gő1fr
-gő1gl
-gő2g1ő2
-gői2ta
-gő1kl
-gő1kv
-gőnyá2
-gő1pl
-gő1pr
-2g1őr.
-g1őrb
-g1őrh
-g2őrit
-gő2riz
-2g1őrj
-g1őrk
-2g1őrl
-g1őrn
-gő2rök
-2g1őrr
-g1őrs
-g1őrt
-2g1ő2rü
-2g1őrz
-3gőrzősö
-gő2s1ep
-gő2sib
-gő1spi
-gő1sta
-gő2s1ü2v
-gő1tr
-gőu2t
-gőü2l
-gő2zát
-gő2zeg
-gő2z1e2k
-gő2z1e2l
-gő2z1o
-gőző2s
-gő2zsö
-gő2z3su
-gő2z3sű
-gő2zú
-gpe2c3h
-gp1e2lu
-gpia2c1i2o
-gp2la
-gp2lá
-gp2le
-gp2lu
-gpon2ga
-gpo2re
-gp2ra
-gp2rá
-gp2re
-gp2ré
-gp2ri
-gp2rí
-gp2ro
-gp2ró
-gp2rű
-gp2sz
-1graff
-grafo1
-gra2mad
-gra2maj
-gra2mal
-gra2m1a2r
-gra2m1as
-gram1a2z
-gra2m1á2
-gra2m1e2
-gra2m1érté
-gra2mik
-gra2m1in
-gra2m1is
-1grammj
-gramu2
-gra2mut
-1g2ra1p
-1g2raví
-grá2cs1i
-gráfa2
-1g2rá2f1an
-1g2ráfb
-grá2f1e2
-1g2ráffe
-1gráfid
-1g2ráfl
-1g2ráft
-grá2lát
-grá2l1e2
-g2ráná
-grán1d
-g2ráni
-grá2rá
-grá2r1i2p
-grá2s3za
-gre2e
-gren2d1ő2
-g2ril
-gril2l1a
-gri2s1á
-gris3s
-grisü2
-gri2süt
-g2ríz
-gróa2
-gróá2
-gró2f1a
-gró2fú
-gró1p
-1g2rup
-gság1g
-gsé2gel
-gs2ho
-gs2ka
-gs2ká
-gs2ko
-gsk2r
-gs2la
-gs2lá
-gs2li
-gs2má
-gs2mi
-gs2mu
-gs2ná
-gso2k1o
-gsors3s
-gs2pa
-gs2pá
-gs2pe
-gs2pé
-gs2pi
-gs2po
-gs2pó
-gsp2r
-gs2rá
-g1s2ta
-gs2tá
-gs2te
-gs2té
-g1s2ti
-g1s2tí
-gsto2
-gst2r
-g1stra
-g1stru
-gs2tu
-g1s2tú
-gsugá2
-gs2vé
-gsza2ké
-gsza2k1ü
-gszála2d
-gszá2l1ada
-gszá2li
-gszá2r1a2da
-g1sz2c
-gszé2t
-g1sz2f
-g1sz2k
-g1sz2l
-gsz2m
-g1sz2p
-gszt2
-g1sz2tá
-gta2g1ar
-gtag1g
-gta2n1ó2
-gtára2d
-gtá2r1ada
-gtermo1
-gtermosz2
-gté2rá
-gti2m
-gt2ra
-gt2rá
-gt2re
-gt2ré
-gt2ri
-gt2ro
-gt2ró
-gt2rö
-gt2ru
-gt2rü
-gtű2z1ő2r
-1gu
-gu2at
-gu2ay
-2g1u2bo
-gu2el
-gu2er2
-g1u2ga
-3g2ugg
-g1u2go
-2g1ugr
-gu2id
-gu2in
-gu2ir
-2g1ujj
-gula2te
-gula2t1í
-gu2ná
-2g1u2ni
-gu2nó
-gu2nu
-3g2urí
-gus1abl
-gu2sad
-gu2s1a2n
-gu2sas
-gu2sat
-gu2s1av
-gu2sál
-gu2s1e2
-gu2s1érté
-gu2sil
-gu2sis
-gu2s1í
-gu2sol
-gu2sor
-gu2s1ó2
-gu2sö
-gu2ső
-gus3s2
-gussz2
-gust2
-gu2sü
-gu2szá
-gus3zs
-gu2tac
-gu2tak
-gu2tal
-gu2tam
-gu2tan
-gu2tas
-gu2tat
-gu2taz
-2g1utc
-2g1u2tó
-gutó2d1o2ku
-2g1u2tu
-gu1ya
-1gú
-gú2ja
-gú2jí
-gú2ju
-gú2ny1e
-gú2ny1í2
-2g1úr.
-gú2ré
-gú2ri
-2g1úrn
-gú2ro
-2g1ú2sz
-2gú2t1a2
-2g1ú2t1á2
-2g1útb
-2g1útc
-2g1útd
-2g1ú2t1e2
-2g1ú2té
-2g1útf
-2g1útg
-2g1úth
-2g1ú2ti.
-2g1ú2tia
-2g1ú2tig
-2g1ú2tih
-2gútij
-2gútiko
-2g1ú2tina
-2gútiná
-2gútir
-gú2tis
-2g1ú2tit
-2g1ú2tiv
-2gútiz
-2g1útj
-2g1útk
-2g1útl
-2g1útm
-2g1útn
-2g1ú2to
-2g1útp
-2g1útr
-2g1úts
-2gútt
-2g1útv
-2g1útz
-gú2zi
-1gü
-gü2cs
-gü2dé
-gü2dí
-gü2dü
-gü2ge
-gügy1ér.
-2g1ü2gyi
-2g1ügyl
-2g1ügyv
-2g1üld
-gü2len
-gü2lep
-gü2lik
-gü2löm
-2g1ünn
-3g2ürc
-2g1ü2re
-3g2üri
-2g1ü2rí
-2g1ü2rü
-gü2te
-gü2té
-gü2ti
-gü2tö
-gü2tő
-gü2tü
-gü2ve
-gü2vö
-gü2ze
-gü2zé
-1gű
-2g1űr.
-2g1űrb
-gűre2
-g1űrh
-gű2ri
-2g1űrj
-2g1űrl
-2g1űrm
-2g1űrn
-2g1ű2rö
-2g1űrt
-gű2ru
-gű2rü
-gű2ze
-gű2zé
-gű2zi
-gű2zö
-gű2ző
-gva2s1u2
-gvá2gy1a2da
-gvá2nyan
-gvás1s
-gverés3s
-gvezé2rel
-gvé2nyel
-gvi2na
-gvó1s2
-g2y
-1gya
-gy1abl
-2gy1a2cé
-2gyadag
-gya2dal
-2gyadatb
-gy1a2dót
-2gyag.
-2gyagb
-gya2ge
-gya2gép
-2gyagg
-2gyagh
-gya2gis
-2gyagk
-2gyagn
-gya2g1ol
-2gyagt
-2gyagya
-gy1a2gyu
-2gy1aja
-2gy1akc
-2gyaknák
-2gyakt.
-2gyaktu
-gya2laj
-gyal1akt
-gya2lapo
-gya2lapp
-gy1alat
-2gyaláí
-gya2lel
-gya2lik
-gyan1ab
-gya2n1e
-2gy1a2nya
-gy1a2nyá
-gya2pak
-gy1a2páh
-2gyapái
-2gyapák
-2gyapám
-2gy1a2pán
-gy1a2pás
-2gyapátó
-2gyapjá
-gya2pón
-gya2pór
-2gyapp
-gy1aps
-gy1aran
-2gyaraw
-gyard2
-2gyardom
-gya2rel
-gy1argó
-3gyari
-gya2r1ón
-gya2r1ó2r
-gya2róv
-2gyarú
-2gyasak
-2gyasat
-2gyasra
-2gyaty
-2gyazá
-1gyá
-2gyábr
-2gy1ág
-gy1álc
-gy1áll
-gy1álm
-3gyám
-2gy1áp
-2gyáre
-2gyárf
-2gy1á2rok
-2gyárus
-2gy1árú
-gyá2szó
-2gyáta
-2gyátk
-gy1átl
-2gyátv
-gy1bl
-gy1br
-gy1dr
-1gye
-gye2d1ős
-2gy1e2dz
-gy1e2ge
-gy1e2gé
-gy1e2gye
-2gyeke.
-2gy1e2kés
-2gyeleg
-gye2legy
-2gyelemű
-2gyelnö
-2gyeltér
-2gy1elvá
-gy1elvű
-2gyembl
-2gy1e2mel
-gy1eml
-2gyenget
-2gy1e2ny
-2gyenz
-gye2pal
-2gy1erd
-gy1e2red
-2gyerej
-gy1e2res
-gye2rén
-2gy1ern
-2gyero
-2gy1e2rő
-2gy1ers
-gye2seg
-2gyesél
-2gyesg
-gy1e2ső
-2gy1este
-2gyestés
-2gy1esti
-2gyestű
-gye2szü
-2gyetem
-2gyetet
-2gyezm
-2gyezrede
-2gyezrel
-2gyezs
-1gyé
-2gyébr
-2gy1ég
-2gyéhes
-2gyéhs
-2gyéji
-gy1é2ke.
-gy1é2kes
-2gy1é2le
-2gy1élt
-gy1élv
-3gyém
-2gyéneke
-2gyéni
-2gy1ép
-2gyér.
-2gy1érd
-2gy1érem
-2gyérez
-gyé2rét
-gy1érg
-2gy1érh
-2gy1é2ri
-3gyérí
-gy1érke
-2gy1érm
-2gyérn
-2gyérr
-2gy1érte
-2gy1érté
-gy1értő
-2gy1érv
-2gy1érz
-2gy1été
-2gyétk
-2gyév.
-2gyévad
-2gyévb
-2gyéve.
-2gyévei
-2gyévek
-2gyéven
-2gyéves
-2gyévet
-2gyévh
-2gyévi
-2gyévn
-2gyévr
-2gyévt
-2gyévü
-2gyévv
-gy1fl
-gy1f2r
-gy1gl
-gy1gr
-1gyi
-2gy1ide
-2gyidé
-2gyidő
-2gyiga
-2gyigá
-2gy1ige
-2gy1i2gé
-2gyigm
-gy1iha
-2gyiker
-2gy1ill
-2gyimá
-2gyind
-2gyinf
-2gy1ing
-2gy1ipa
-2gy1i2rat
-2gyirá
-2gy1iro
-2gyirt
-2gyish
-gy1isk
-2gyism
-2gy1isn
-2gy1ita
-2gyivó
-2gyizg
-2gy1i2zo
-1gyí
-2gy1íg
-2gy1í2r
-2gy1ív
-gy1íz
-gy1kl
-gy1k2r
-gy1kv
-gymás1s
-1gyo
-2gyokos
-2gy1old
-2gyolvas
-gyo2m1as
-gyo2mi
-2gyope
-2gy1orc
-gy1orm
-2gyorsó
-2gy1orv
-gy1ou
-1gyó
-2gyódár
-2gyódásak
-gy1ó2rá
-2gyóri
-1gyö
-2gy1öb
-gy1ödé
-2gy1ökl
-2gyötöd.
-2gyötödd
-2gyötöde
-2gyötödé
-2gyötödne
-2gyötödöt
-2gyötödr
-2gyötödü
-2gyött
-2gyötv
-2gyöv
-2gyözön
-1győ
-gy1őre
-gy1őrü
-2gy1ő2s
-3győz
-gypárba2
-gypen1
-gy1pl
-gy1pr
-gy1ps
-gyrövid1
-gy1sc
-gy1sk
-gy1sl
-gy1sm
-gy1sn
-gy1sp
-gy1sr
-gy1s2t
-gy2sur
-gy1t2r
-1gyu
-2gy1ud
-2gy1ug
-2gy1uj
-2gyund
-2gyuni
-2gy1u2ra
-2gyurá
-2gyuru
-1gyú
-2gyúd
-2gyúé
-2gyúi
-2gyújí
-2gyújr
-2gyújs
-2gyúm
-2gyúrb
-2gyúré
-2gyúri
-2gyúrk
-2gyúrr
-gy1úti
-2gyúü
-1gyü
-2gy1üd
-2gyüg
-3gyüle
-3gyüm
-2gyünn
-2gyüre
-2gyürü
-2gyüs
-gy1üst
-2gyüt
-2gyüv
-gy1üve
-2gy1üz
-1gyű
-3gyűl
-2gyűré.
-2gy1ű2z
-gy1zr
-gza2táp
-gza2t1e
-gza2tö
-gza2t1ű2
-gzá2r1ó2r
-gzá2se
-gzás3s
-gze2t1a2
-gze2t1á2
-gze2t1el
-gze2tin
-gze2t1o
-gze2t1ő2
-gzőa2
-2h.
-1ha
-haa2d
-3hab.
-ha2bak
-ha2b1a2l
-ha2b1a2n
-ha2b1ág
-ha2b1árb
-ha2bed
-ha2b1ér.
-ha2bid
-hab1ill
-ha2b1im
-ha2b1i2na.
-ha2b1int
-3habo
-hab1old
-hab1o2ra
-hab1orr
-ha2b1ost
-hab1sz
-habu2r
-ha2bü
-ha2d1ag
-had1alk
-ha2d1ap
-hada2s
-ha2d1asz
-ha2d1á2c
-ha2d1ál
-hadás1s
-ha2d1ásv
-ha2d1á2szo
-ha2deg
-ha2d1el
-ha2dem
-ha2dél
-hadia2
-hadié2
-hadi2n
-ha2d1ina
-ha2dor
-ha2dos
-ha2d1u2r
-ha2d1úr.
-ha2d1ú2ré
-ha2d1úrh
-ha2d1ú2ri
-ha2d1úrk
-ha2d1úrn
-ha2d1úrr
-ha2d1úrt
-ha2dús
-ha2dü
-ha2dza
-ha2d3zá
-hae2r
-ha1fl
-ha1f2r
-2hagore
-ha2if
-ha2j1á2s
-ha2j1á2to
-ha2jáz
-ha2j1in
-haj1k2
-haj1oml
-ha2jö
-ha2jő
-haj1s
-haj1t2r
-ha2jü
-ha2k1ál
-ha1k2li
-ha1k2r
-h1akt
-ha1k2v
-ha2l1ach
-ha2l1a2g
-ha2l1aj
-ha2l1a2l
-hala2n
-hal1any
-ha2l1a2r
-hala2sz
-ha2l1asza
-ha2l1aszá
-ha2l1aszó
-ha2l1atk
-ha2l1a2tom
-ha2l1att
-3halá
-hal1á2cs
-ha2l1á2g
-halá2l1e2
-hal1á2rak
-hal1á2rá
-ha2l1árb
-ha2l1á2ro
-ha2l1árr
-hal1árve
-hal1áte
-ha2leb
-ha2lec
-hal1e2gy
-hale2l
-hal1ele
-hal1elő
-ha2lem
-ha2l1en
-hal1epe
-ha2l1ese
-ha2l1e2ső
-hal1ete
-hal1e2to
-hal1evo
-hal1e2vő
-ha2lez
-ha2l1é2l
-ha2l1ér.
-ha2l1éte
-ha2l1étk
-ha2l1étt
-ha2lid
-ha2l1ik
-ha2l1i2m
-ha2l1ing
-ha2l1inv
-ha2l1i2ono
-ha2l1i2ont
-ha2lip
-hali2s
-hal1isz
-ha2l1iv
-ha2l1i2z
-ha2lí
-hal2k1a2pu
-halke2l1
-hal2k1ele
-hal2l1aszt
-hallás1s
-hal2l1á2t
-hal2léj
-hal3ly
-3halm
-halma2z1ó2
-ha2l1ol
-ha2l1ó2ri
-ha2l1ö
-ha2l1ő2
-hal1p2
-ha2l1ug
-ha2l1u2s
-ha2l1u2t
-ha2lü
-ha2lű
-ha2l3ya
-ha2m1ál
-ha2m1árb
-hamb2
-hame2l
-ham1ele
-ham1esz
-ha2mez
-ham1ism
-hamkész1
-ha2m1osz
-3hamu
-ha2mü
-hanás1s
-han2ch
-2hanész
-3hang
-han2gal
-hange2
-han2gen
-han2g1es
-han2gél
-hang3g
-han2g1ó2
-han2gö
-han2gut
-han2t1ó2
-ha2nyél
-haó2r
-ha1p2r
-hara2g1ó2
-harang1g
-ha2r1ál
-har2c1al
-har2can
-harc3c
-har2c1e2
-har2c3h
-ha2rel
-ha2ret
-3harmó
-ha2r1ol
-ha2r1osz
-ha2r1ór
-ha2rű
-3hasa
-haság1g
-ha2s1iz
-ha2s1ol
-has1ors
-ha1s2pe
-ha1s2po
-ha3s2út
-ha2sür
-ha2s1ű2
-ha1szp
-ha2t1ab
-hat1agy
-ha2t1aj
-3hatá
-határa2d
-határ1ada
-ha2t1e2v
-ha2t1én
-ha2t1é2v
-ha2t1í2v
-hat1olda
-ha2t1osz
-ha2t1órá
-ha2t1ö2v
-ha1t2rá
-hatt2
-hat1tr
-ha2tül
-ha2ue
-hau2n
-hau2s
-ha2ut
-haü2z
-1há
-3hábo
-há2gy
-há2jús
-háma2
-há2m1al
-há2m1á
-há2m1e2
-hámi2
-há2m1is
-há2m1ol
-há2mö
-hán2cs1e
-hán2csi
-há2ny1a2l
-hánya2n
-há2ny1ar
-hányás1s
-há2ny1e2
-há2nyö
-hára2
-há2r1ad
-há2r1al
-há2r1au
-hári2
-há2r1iv
-3hárí
-hár1k2
-hármas1s
-háro2m1a
-háro2mo
-hár2s1al
-hár2se
-3hárt
-há2rü
-há1ry
-há2sí
-hász1a2tom
-há2sz1e
-há2sziv
-2h1ászka.
-há2sző
-hát1a2dó
-há2t1a2la
-há2t1a2n
-há2tar
-há2táp
-há2t1e2
-háté2
-há2tél
-há2t1ér.
-há2t1ére
-há2t1érn
-há2t1i2s
-há2tí
-há2t1ol
-há2t1o2r
-hátó2
-há2t1ós
-há2tö
-há2tő
-hát1u2sz
-há2t1ü
-há2tű
-hátvé2d1el
-há2z1a2dó
-há2zaj
-há2z1ala
-há2z1asz
-há2z1av
-há2z1á2p
-há2z1árn
-há2z1á2ru
-há2z1e2
-há2z1isk
-há2z1ism
-há2z1ist
-há2z1í
-ház1okt
-ház1old
-há2zos
-ház1otth
-há2zö
-há2ző
-házs2
-há2z3sa
-ház3se
-há2z3sé
-há2z3si
-ház3sp
-ház3st
-ház3sü
-ház3sz
-há2z1ü
-há1zy
-hb2le
-1he
-he2ad
-he2av
-hec2c1emb
-hecc3s
-2hecu
-he2dén
-he2e2s
-he2f1i
-he2f1u2
-he2g1a2
-hegész1
-he2gy1a
-he2gyá
-he2gyeg
-hegyes1s
-he2gy1o
-he2gyó
-he2győ
-he2gyú
-2heidp
-2h1e2kék
-3hekt
-he2lég
-helés1s
-2helf
-hel2fr
-2hellá
-2hellen
-he2lyeg
-he2lyeml
-he2lyesz
-he2ly1é2j
-2hema
-2h1embl
-2h1eml
-henés1s
-3heng
-he2ny1e2ge.
-he2nyo
-he2ol
-he2rab
-he2r1a2d
-he2r1aj
-he2r1a2r
-he2rau
-her1áll
-her1át1a2
-her1áté
-her1eng
-here1p
-her1ese
-herevíz1
-her1int
-he2rö
-her1s2
-he2rut
-he2rű
-he2s1a
-he2s1á
-h1e2sés
-hes2t1o
-3hety
-2heusz
-2hevé
-he2vés
-3heví
-he2z1á
-2hezh
-2hezi
-2hezn
-2hező
-2hezz
-1hé
-hé2hé
-3héi.
-3héit
-héje2
-hé2j1eg
-hé2j1el
-hé2jö
-3hékn
-hé2nal
-hé2nan
-hé2nar
-hé2nát
-héne2
-hé2n1el
-hé2nem
-hé2n1et
-hén1év.
-hé2nid
-hé2nil
-hé2n1is
-hén3n
-hé2nö
-hént2
-hé2nu
-hé2nü
-hé1ph
-hé2pü
-héra2
-hé2rar
-hé2r1as
-hé2rat
-hé2rin
-2h1érz
-hé2szá
-hé2szeg
-hé2szesz
-hé2sz1ö
-héta2
-hé2t1ab
-hé2t1aj
-hé2tal
-hé2tar
-hé2tál
-hé2t1e2l
-hé2t1e2m
-hé2t1es
-hé2t1ezres
-hé2t1é2v
-hé2tí
-hé2tol
-hé2tor
-hé2t1os
-hétó2
-hé2t1ór
-hé2t1ö
-hé2tu
-hé2t1ü2
-hé2v1á
-hé2ve.
-hé2vég
-hé2v1érz
-héze2
-hé2z1ek
-hé2zio
-hé2zip
-hézo2
-hé2z3s
-hf2ló
-1hi
-2hia.
-hi2aa
-hi2aá
-hi2abelie
-hi2ac
-hi2ad
-hi2ae
-hi2aé
-hi2ag
-hi2ah
-hi2aj
-hi2al
-hi2am
-hi2ant
-hi2ap
-hi2ar
-hi2at
-3hida
-hidro1s
-2hiév
-higa2nye
-3higi
-2hila
-2him.
-2hime
-2himé
-2h1i2nán
-3hinás
-2hing
-h1ing.
-2hink
-h1insp
-hi2om
-hi2pa
-2hips
-h1ips.
-h1ipse
-h1ipsé
-h1ipsh
-h1ipsr
-h1ipss
-hipszes1
-2hise
-hi2se.
-2hisn
-2hiso
-hi2ta
-hit1ak
-hita2l
-hit1a2n
-hi2t1á2
-hi2t1e2gy
-3hitel
-hite2l1e2l
-hi2t1elesé
-hi2t1elő
-hi2t1elve.
-hi2t1eng
-hi2t1er
-hi2t1esz
-3hitet
-hi2tél
-hi2t1ér.
-hi2t1érte
-hi2t1érv
-hi2t1é2te
-hi2t1é2ve.
-hi2t1im
-hi2t1int
-hitkész1
-hi2t1o
-hitó2
-hi2t1ón
-hi2t1ór
-hitö2
-hi2t1ör
-hi2t1őr
-hi2t1u2
-hi2tú
-hi2tül
-hi2zo
-1hí
-hí2da
-hí2dá
-hí2de
-hí2dí
-hí2dö
-hí2dő
-hí2dú
-hí2dü
-hí2dz
-hí2g1e
-hí2jé
-hí2m1a2
-hí2má
-hí2m1el
-hí2m1emb
-hí2mer
-hí2mo
-hí2mö
-hí2mu
-hí2r1a2
-hí2r1á2
-hí2r1ing
-hí2rí
-hí2r1o
-hí2r1ó2
-hí2rő
-hír1s
-hí2r1u
-hí2rú
-hkas3s
-hká2r
-hk2ri
-hle2g1e2lé
-hle2t1el
-hle2tö
-1ho
-ho2dú
-2ho2eá
-ho2ef
-ho2ii
-ho2it
-2hokl
-hola2
-ho2l1ad
-ho2l1al
-ho2lam
-ho2l1at
-ho2l1au
-ho2l1ál
-ho2l1á2r
-hol2dá
-hol2dem
-hol2d1ó2r
-ho2l1e2
-ho2lig
-ho2l1in
-ho2lip
-ho2l1i2v
-hol1k2
-hol2mes
-hol2nik
-ho2lor
-ho2l1osz
-ho2lot
-ho2l1ó2r
-ho2lö
-holta2n
-holt1any
-holte2
-hol2t1el
-ho2lü
-ho2ly1al
-3homb
-3homo
-homo1s
-ho2n1a2g
-ho2n1a2l
-ho2n1a2n
-ho2n1a2p
-ho2n1au
-ho2n1a2v
-ho2n1ál
-ho2n1át1a2
-ho2n1á2to
-hone2
-ho2neg
-ho2n1el
-ho2n1ik
-ho2n1i2m
-ho2ní
-ho2n1orj
-ho2n1o2ro
-ho2n1orr
-ho2n1ó2
-ho2nö
-ho2nő
-ho2nü
-hor2d1e2
-ho2re
-2ho1ry
-hossz1e2
-hosszé2
-hossz1ék
-hossz1ü2
-2hosz
-ho1th
-ho2us
-ho2we
-ho2zál
-ho2z1e
-hozi2
-ho2zü
-1hó
-hóa2k
-hóá2g
-hó1bl
-hó2cal
-hó2cat
-hóc3c
-hó2cel
-hó2c1é2g
-hó2c3h
-hó2cim
-hó2có
-hó2c1ö
-hó2csü
-hó2cz
-hó2d1a2ra.
-hó2d1a2rá
-hó2d1á2
-hó2dem
-hó2d1é
-hó2d1ó2
-hó2dö
-hó2dü
-hó2d3z
-hó2l1ej
-hó2l1e2ped
-hó2l1e2vet
-hó2nal
-hón1apa
-2hórá
-hó2rár
-hó1sh
-hóví2
-hóza2t1e
-1hö
-hökö1
-höl2gya
-höl2gy1á
-höl2gyel
-1hő
-hőa2n
-hő1br
-hőe2l
-hőe2m
-hőe2r
-hőé2n
-hő1fl
-hő1gl
-hő1gr
-hő1kv
-hő1pr
-hősa2
-hő2s1al
-hő2sas
-hő2s1av
-hő2s1el
-hő2sep
-hő2ses
-hő2sim
-hő2sis
-hő1s2pi
-hős3s
-hő1s2tab
-hős1tr
-hő2sut
-hő2s1ú
-hő2s1ült
-hő2s1ü2v
-hősű2
-hő2s1űr
-hő1tr
-hőü2l
-hp2la
-hp2ra
-hp2ré
-hp2ri
-hp2ro
-hp2ró
-hru1s2
-hs2ch
-hsé2gel
-hs2ka
-hs2pi
-hs2po
-hs1s2t
-hsza2ké
-hszá2j1a2da
-hsz2l
-ht1cl
-ht1kl
-h2t1ol
-ht2rá
-h1tref
-h2t1u2t
-1hu
-hu1hy
-2hurá
-hur2t1e
-hur2tit
-2hus.
-2husi
-huszon1
-1hú
-hú2gy1a2
-hú2gye
-hú2gyi
-hú2gyú
-hú2r1a2
-hú2r1á
-hú2re
-húrt2
-húr1tr
-hú2s1ak
-hú2sal
-hú2san
-hú2sap
-hú2sar
-hú2s1á2g
-hú2s1ál
-hú2s1e2
-hú2sim
-hú2sí
-hú2sor
-hú2sö
-hú2ső
-hús3szak
-hús3szá
-hús3szé
-hú2sü
-hú2s3zab
-hú2sz1ál
-hú2sz1e2
-hú2sz1í2
-hú2szol
-hú2szos
-hú2sz1ó2
-hú2sz1ü2
-1hü
-hü2gy
-2h1ünn
-hü2re
-hü2rü
-hü2tő
-h1ü2vö
-1hű
-hű2ré
-hű2ri
-hű2rö
-hy1ér
-hy1év
-hy1ig
-2i.
-i1a
-iaa2d
-iaát1
-iaáta2
-i2abaj
-i2aber
-i2abes
-i2abí
-i2abon
-i2abor
-i2abö
-i2abő
-i2abu
-i2abú
-i2abü
-i2abű
-ia2c1al
-iac3c
-i2acet
-iac1élé
-ia2c1ér.
-ia2c3h
-ia2cid
-iac1i2ko
-ia2c1im
-ia2c1int
-i2ací
-ia2c1or
-ia2có
-ia2cö
-ia2cő
-ia2c3sé
-iac3sp
-iac3st
-iac3sz
-ia2cü
-ia2cz
-iadás1s
-i2ade
-i2adí
-ia2dot
-ia2dóe
-iadó1st
-i2adö
-i2adő
-i2adú
-iae2l
-iae2r
-iae2t
-iaé2r
-i2afá
-i2afe
-i2afi
-i2a1fl
-i2afó
-i2afö
-i2afő
-i2afri
-ia1fro
-i2afu
-i2afú
-i2afü
-i2afű
-i2agá
-i2age
-i2agé
-i2agi
-i2agö
-i2agő
-i2agu
-ia2gyu
-i2aig
-i2aip
-i2ai2z
-ia2ján
-i2aje
-i2ajo
-ia2kad
-i2aká
-i2ake
-i2akí
-i2a1k2l
-i2akód
-i2akór
-i2akö
-i2akő
-ia1k2re
-ia1k2ré
-ia1k2ri
-ia1krí
-i2aku
-i2akú
-i2akü
-i2a1kv
-ia3lan
-ia2lat
-i2aleg
-i2alib
-i2alí
-ia2lom
-i2alö
-ia2lud
-ia2lus
-i2aly
-i2amá
-i2ame
-i2amó
-ia2m1ur
-i2amú
-i2amű
-ia2nek
-i2ané
-i2anö
-i2anő
-iao2k
-iaó2r
-ia2pát
-i2ape
-i2apé
-ia1p2l
-i2apo
-ia1p2s
-iarádi2
-i2are
-ia2rén
-i2aro
-i2aró
-i2arö
-i2aru
-i2arú
-i2ase
-i2a1sh
-i2asi
-ia1s2ká
-i2a1s2l
-i2a1s2m
-i2asó
-i2asö
-i2a1s2p
-iast2
-ia1s2ta
-ia1s2tá
-ia1sti
-ia1sto
-ia1str
-i2asú
-i2asü
-i2asű
-ia2sz1an
-i3aszerű
-ia2szes
-ia2szép
-iasz2k1e2r
-ia2szop
-i2aszú
-i2ate
-i2ató
-i2atö
-i2atő
-ia1tré
-ia2ty
-i2aud
-i2au2r
-iau2s
-iaü2z
-ia2vat
-i2avé
-i2avi
-i2aví
-i2avo
-i2azá
-i2aze
-ia2zo
-i2azs
-i2azú
-i1á
-iá2cs
-iá2ga
-iá2gá
-iá2ge
-iá2gi
-iá2go
-iá2gy
-iá2hí
-iáka2
-iá2kab
-iá2kak
-iá2k1al
-iá2k1an
-iá2k1ap
-iá2k1ar
-iá2k1as
-iá2k1á2
-iá2keb
-iá2k1el
-iá2kem
-iá2k1en
-iá2k1e2s
-iá2k1ér.
-iá2k1érd
-iá2kés
-iáki2
-iá2kin
-iá2kir
-iá2kit
-iá2kí
-iá2kop
-iá2k1or
-iá2k1osz
-iá2k1ó2
-iá2k1ö
-iá2kő
-iá2kur
-iá2k1ut
-iá2k1ú2
-iá2k1ü
-iá2kű
-iála2
-iál1ana
-iá2lál
-iá2l1ár
-iá2l1e2
-iá2lim
-iá2l1in
-iá2lop
-iá2nar
-iá2n1as
-iá2nem
-iá2nir
-iá2nis
-iá2nö
-iánt2
-ián1tr
-iá2nü
-iá2ny1ad
-iá2ny1a2l
-iá2nyan
-iá2nyar
-iá2ny1e2
-iá2nyérz
-iá2nyö
-iá2ói
-iá2po
-iá2rad
-iá2rak
-iá2ram
-iár2das
-iár2d1e
-iár2d3z
-iá2re
-iá2rim
-iár1s2
-iá2ru
-iá3run
-iá2rú
-iá2sal
-iá2sar
-iá2s1as
-iá2s1á2g
-iá2s1ám
-iá2sás
-iá2s1e2
-iá2sikr
-iá2sí
-iá2sor
-iá2só
-iá2sö
-iá2ső
-iás3szo
-iást2
-iás1tr
-iá2s1ü2
-iá2sű
-iásví2
-iá2szás
-iá2s3ze
-iás3zs
-iá2ta
-iá2t1e2l
-iáti2
-iá2t1ir
-iba1d2
-ibas2
-ibat2
-ibau2
-ibaü2
-ibá2l1a
-ibe2lér
-ibe2r1in
-ibe1s
-ibi2o
-ib2lo
-ib2ró
-ib2ru
-ica1f2
-ica1g2
-ica1kl
-ica1k2r
-ica2los
-ica1pr
-ica1t2
-icca2l
-ic2can
-ic2c1á2
-ic2c3h
-ic2cin
-ic2cir
-ic2cí
-ic2c1o
-ic2c1ö
-iccse2l
-iccs1ol
-iccs1ő2
-ic2cú
-ic2cz
-ic3ha.
-ic3hek
-i2chiná
-ic3hoz
-i2c3hű
-ici2t1a2
-ici2tár
-ici2tel
-ici2ter
-i1c2lu
-i2c1ol
-i2cs1a2d
-ics1a2la
-icsa2p1á2g
-i2cs1au
-ics1ág
-ics1áll
-i2cs1eb
-i2cs1e2g
-icse2t
-i2cs1ete
-i2cs1ev
-ics1é2g
-i2cs1é2ré.
-ics1ipa
-ics1s
-ics1út
-i2cs1ül
-i2cs1ü2t
-ic3sze
-ic1üz
-i2d1a2j
-id1ana
-id1a2ny
-i2d1au
-id1áll
-id1áru
-i2d1ásv
-id1br
-1iddo
-id3dz
-ide2av
-ide2g1á
-ide2g1él
-ideg1ér.
-1i2dej
-ide1k2v
-2idel
-id1elj
-id1elm
-id1elo
-id1elt
-i2d1emb
-ide1p2
-ide2red
-i2dero
-ide3sa
-ideu2
-i2d1é2g
-idé2kel
-i2dény
-idér2c3s
-2idész
-1i2déz
-id2ge
-idi2as
-1i2dil
-id1ionj
-id1ionn
-i2d1i2ono
-i2d1i2ont
-idi2os
-idi2ód
-i2d1ita
-idíja2d
-idí2j1ada
-id1kr
-id1old
-i2d1olv
-ido2mac
-ido2m1an
-1i2domá
-1i2domo
-1idomú
-id1ös
-1i2dő.
-1i2dőb
-1i2dőd
-1i2dőé
-1i2dőh
-1i2dői
-1i2dők
-1i2dőm
-i2dőne
-i2dőné
-i2dőnk
-1i2dőp
-1i2dőr
-1i2dős
-idő2sod
-idő1s2p
-1i2dőt
-idő2tál
-1i2dőv
-i2dőz
-id1pr
-id2rót
-i1d2ru
-id1st
-id1t2r
-id1u2t
-id1üg
-i2d1üz
-i2d3zá
-i2d3ze
-i2d3zó
-i2dzs1a
-i2dzs1á
-i2dzsen
-i2dzsél
-i2dzs1í2
-i1e
-ie2be
-ie2cs
-ie2dz
-ie2f1a2
-ie2fá
-ie2f1i
-ie2f1ü2
-ie2gé
-ie2gy
-ie2he
-i2eld
-ie2lo
-ie2lőa
-ie2ma
-ien2sá
-ien2s1o
-iens3s
-ie2ny
-ie2pe
-ie2r1a2d
-ie2rag
-ie2r1aj
-ie2r1a2k
-ie2ral
-ie2ram
-ie2r1an
-ie2ras
-ie2r1á
-ier1d2
-ie2reg
-ier1egy
-ie2r1el
-ie2r1ember
-ie2r1est
-ie2r1iga
-ie2r1in
-ie2r1iste
-ie2rí
-ie2r1ol
-ie2ror
-ie2rö
-ie2rő
-iersz2
-iert2
-ier1tr
-ie2r1u2
-ie2r1ú
-ie2r1ü2g
-ie2sel
-ie2sem
-ie2sett
-ie2sés
-ie2sik
-ie2ső
-ie2sz
-ieté1sz2
-ietz1
-ie2ur
-ie2ve
-ie2vé
-ie2vi
-ie2vő
-i1é
-i2édo
-i2éfe
-ié2ge
-ié2gé
-ié2gő
-ié2gü
-i2éha
-ié2hes
-i2éhi
-i2éil
-ié2le
-ié2lé
-ié2li
-ié2lő
-i2éme
-i2émé
-i2émo
-ié2neke
-ié2nekh
-ié2nekk
-ié2nekü
-ié2pí
-ié2pü
-ié2rek
-i2éren
-ié2rez
-ié2ré
-ié2ri
-ié2rő.
-ié2rők
-ié2rőt
-ié2rü
-i2észi
-iéta1s
-ié2tel
-i2étö
-ié2ve.
-ié2vek
-ifa1st
-ifa1t2
-i2fe.
-ifenyőé2h
-ifio2
-if1ír
-1ifjí
-1ifju
-1ifjú.
-1ifjúb
-1ifjúé
-1ifjúi
-1ifjúké
-1ifjún
-1ifjúr
-1ifjús
-1ifjút
-1ifjúv
-i1f2la
-if2le
-if2lo
-if2lö
-if2lu
-ifogo2
-ifon1n
-i1f2ri
-i1f2ro
-i1f2rö
-if2ru
-if2t1a
-if2t1á2
-if2t1e2l
-if2tin
-if2tö
-if2tú
-ig1a2git
-ig1a2ka
-ig1als
-ig1alv
-ig1and
-iga2nyal
-iganye2
-iga2ny1es
-iga2ras
-1i2garz
-iga1sl
-iga2szag
-igasz1al
-igau2r
-1i2gaz.
-1igazí
-ig1á2cs
-ig1álm
-ig1ásh
-i3gász
-ig1á2t1e2
-ig1br
-ig1d2r
-ig1edz
-i2geg
-igek2
-ige1kl
-ig1e2le
-ig1ell
-ig1elm
-1i2genl
-ige2rá
-ig1erő
-ig1e2se
-ig1esi
-ige2tál
-ige2teg
-ige2tél
-ige2t1o
-ige2tőr
-ig1evi
-i2g1ex
-1i2géd
-ig1é2g
-ig1é2li
-ig1é2lő
-ig1é2lü
-ig1élv
-i2gém
-igé2na
-igé2ná
-1i2gény
-i3gépe
-ig1épí
-ig1ér.
-ig1érj
-ig1érl
-ig1érn
-ig1é2rü
-ig1érv
-ig1ész
-1i2géü
-ig1fl
-ig1g2r
-ig1ív
-ig1íz
-ig1kl
-ig1kr
-ig2lac
-ig2nad
-ig2n1e2g
-igne2r
-ig2n1osz
-ig2nö
-ig2nü
-igo2rál
-ig1o2s
-igóé2
-ig1öb
-ig1ö2k
-ig1öl
-ig1ö2z
-ig1pr
-i1g2raf
-ig1sk
-ig1sl
-ig1sm
-ig1sp
-ig1st
-ig1sz
-ig1tr
-ig1ug
-igu2n
-igu2t
-ig1ús
-ig1üc
-ig1üd
-ig1ü2g
-igü2l
-ig1üt
-ig1üv
-ig1űz
-i2gya.
-i2gyam
-i2gyák
-i2gyál
-i2gy1eg
-i2gy1e2kéh
-i2gy1ékt
-igy1ér.
-i2gy1ért
-iha2re
-i1i
-ii2de
-ii2dé
-ii2dő
-ii2ga
-ii2gá
-ii2gé
-ii2gy
-ii2ha
-ii2je
-ii2má
-ii2mi
-ii2pa
-ii2ram
-ii2rat
-ii2rá
-ii2ro
-ii2sz
-ii2ta
-ii2vá
-ii2vo
-ii2vó
-ii2zé
-ii2zo
-i1í
-ií2gé
-ií2ra
-ií2rá
-ií2ro
-ií2ró
-ií2ru
-ií2té
-ií2ve
-ií2ze
-1i2jed
-ije2gy1á2
-1i2jes
-ikabe2j1
-ikabejá2
-i2k1abl
-ik1ajt
-ika2lak
-ik1ang
-ikaó2
-ika1p2l
-ika1p2r
-ika2ró2r
-ikas2
-ika1sp
-ika1t2r
-i2k1árk
-i2k1áru
-ikás1s
-iká2tol
-ik1dr
-ik1ebé
-i2k1eg
-ik1elo
-ik1eng
-ike2r1a2
-ike2r1á2
-ike2r1e2dz
-ike2r1e2l
-ike2r1ev
-ike2ris
-ike2r1o
-ik1e2rő
-iker1s
-ike2ru
-ike2t1ült
-ik1evo
-iké2kekk
-i2k1épí
-i2k1épü
-i2k1érz
-ik1fl
-ik1fr
-i2k1id
-ik1i2ko
-ik1ikr
-ik1ind
-ik1ins
-i2k1int
-i2k1i2o
-ik1isk
-ikka2l
-ik2k1ala
-ikk1any
-ik2k1a2r
-ikk1ára
-ik2káz
-ik2kev
-ikk1érde
-ik2kin
-ik2k1i2p
-ik2k1ol
-ik2k1ó
-ik2k1ös
-ik2köt
-ik2k1ö2z
-ik2k1u2
-ik2küz
-ikla1tr
-ik2ler
-ik2lor
-i1klub
-ik2lum
-i1knéd
-ikoma2
-iko2m1ar
-1ikonbá
-1ikonén
-1i2konl
-1i2konta
-1ikontö
-1i2kontü
-1ikonzs
-ikó1p
-ik1ó2rá
-ikó2s3zá
-ikő2res
-ik1pl
-ik1pr
-1ikrei
-1ikrek
-ik2rém
-i1k2róm
-i1k2ru
-ik1st
-ikszind2
-iksz2t
-iktus1s
-iktu2sz
-2iku.
-2ikub
-ik1udv
-2ikuf
-2ikuh
-2ikui
-2ikuí
-2ikuj
-2ikuk
-2ikur
-iku2sav
-2ikut
-2ikuv
-ik1ü2v
-il1abr
-il1a2ce
-il1a2cé
-il1a2dó
-il1a2la
-il1ald
-i2l1alk
-il1amb
-ila2n
-i2l1ana
-i2l1any
-ila2pin
-ila2pol
-i2l1a2r
-ilá2g1e2
-ilág3g
-ilá2gö
-il1á2gyo
-ilányfé2
-i2l1á2p
-i2l1árn
-il1á2ro
-il1áru
-il1á2rú
-ilá2sz
-i2l1ászo
-il1átf
-il1átm
-il1átr
-il1bl
-il2c1a2
-ilc3c
-il2ch
-il2c3sap
-il2c3sik
-ilc3sz
-il2cz
-il1e2lem
-i2l1emb
-i2l1eml
-il1exp
-ilé2n1á
-i2l1é2nekh
-i2l1é2nekn
-ilé1sp
-il1f2l
-il1fr
-il1g2r
-i2l1icc
-il1ide
-i2l1igáh
-i2l1igáj
-i2l1igás
-i2l1igát
-ili1gra
-i2l1i2kon.
-i2l1i2konb
-i2likoné
-i2l1i2konh
-i2l1i2konj
-i2l1i2konn
-i2l1i2kono
-i2l1i2konr
-i2l1i2kont
-i2likonz
-il1ill
-ili2ma.
-il1i2mi
-il1imp
-ilin1n
-ili2p1á
-il1iró
-il1k2l
-il1k2r
-illa2g1ó2
-1illatb
-1illatr
-1illatt
-il2l1este
-il2l1esté
-1illésé
-illé2t
-ill1éte
-ill1étt
-il2l1id
-illig2
-illi1gr
-il2l1ö
-1illu
-1illú
-ilm1ada
-il2m1agy
-il2m1aj
-ilm1aka
-il2m1a2l
-ilm1ank
-ilm1any
-il2m1ap
-il2m1arc
-ilm1atl
-il2m1a2z
-il2m1ál
-ilme2g
-il2m1egé
-il2m1egy
-il2m1e2l
-il2m1ep
-il2m1e2r
-il2m1esz
-il2m1é2j
-il2m1ék
-ilmé2l
-il2m1éle
-il2m1ér.
-il2m1érd
-ilm1é2rést
-il2mérte
-il2m1érté
-il2m1és
-il2mid
-il2m1i2k
-il2mim
-il2mir
-il2m1is
-il2miz
-il2m1í2
-il2m1ok
-il2mol
-il2m1or
-ilm1osz
-il2m1ó2r
-il2mö
-il2mő
-ilmu2
-il2m1ut
-ilo1g2
-i2l1or
-ilót2
-iló1tr
-il1öb
-il1ös
-il1p2l
-il1p2r
-il1sh
-il1sp
-il1s2t
-2ilte
-ilumi2
-ilumin1
-ilus3s
-i2l1üg
-il1ür
-il1üv
-i2l1üz
-ilva1k2
-ima1gl
-im1akk
-imaó2
-ima1p
-2imar.
-i2marit
-1i2mád
-i2mákt
-im1dr
-imeg1g
-im1elem
-ime2m
-i2m1eme
-ime2ra
-ime2rin
-i2m1érd
-im1inh
-im1inté
-imi2t1a2
-imi2t1á2r
-imi2tin
-1immu
-i2m1old
-i2m1om
-im1ó2rá
-imót2
-im1ös
-1impé
-1impu
-1imrei
-i2m1ür
-iműt2r
-i2n1abl
-i2n1a2cé
-i2n1adá
-in1ade
-i2nado
-in1a2já
-in1ajt
-inaka2r
-1i2nakat.
-i2n1akc
-i2nakk
-i2nakn
-i2nakt
-i2n1akv
-in1ald
-i2n1alk
-in1all
-1i2nam.
-i2n1a2mit.
-in1ana
-ina1pla
-ina2rán
-1i2nas.
-ina2sis
-1i2nasn
-ina2tell
-i2n1ág
-iná2lad
-in1á2rak
-in1árh
-i2náru
-i2n1ásv
-in1bl
-in1br
-in2c1a2g
-in2cal
-inca2n
-inc1elt
-in2c1él
-in2chi
-in2c3ho
-in2c1is
-in2c1os
-in2có
-in2c1ö
-in2cő
-incs1an
-in2cs1e2r
-in2cs1é2j
-in2cs1ér.
-inc3sérv
-in2csor
-inc3sor.
-in2csú
-inc3süt
-inc3sza
-in2cú
-in2d1ab
-1indai
-in2d1az
-in2deb
-in2d1ed
-in2d1e2g
-ind1ekö
-in2d1e2m
-in2d1ett
-1index
-in2d1e2z
-in2d1ég
-in2d1én
-in2dés
-ind1ink
-1indiv
-1indít
-indö2
-in2d1ör
-in2dös
-in1dra
-1indul
-2ine.
-i2n1e2dé
-i2n1ef
-ineg1g
-in1e2gy
-ine2ku
-i2n1e2l
-in1emu
-i2n1eny
-2iner
-i2n1erd
-i2n1erj
-ine2t1a
-ine2t1ér
-ine2tül
-i2n1ex
-2inéb
-in1é2ge
-iné1kré
-iné2l
-i2n1éle
-i2n1élt
-i2n1élv
-in1épí
-i2n1ér.
-i2nérd
-i2n1éré
-in1érte
-iné2tá
-iné2te
-2inév
-1infek
-1infl
-in2gadó
-in2g1ala
-ing1áll
-ing1árá
-ing1áré
-ing1á2ro
-ing1árt
-ing1áru
-ingás3s
-1ingec
-in2g1eg
-1ingei
-ing1eljá
-ing1elk
-in2g1ell
-ing1els
-in2g1enc
-1ingerb
-1ingerc
-1ingeré
-inge2r1és
-1ingerg
-1ingerh
-1ingeri
-1ingerk
-1ingerm
-1ingern
-1ingerp
-1ingerr
-1ingers
-1ingert
-1ingerü
-in2g1e2v
-in2g1é2j
-in2g1ék
-in2g1él
-ingés3s
-ing3g
-ing1i2na
-in2gí
-in1glo
-in2gor
-in2g1öl
-in2g1ös
-ing2rád.
-ing2rádb
-ing2rádd
-ing2rádn
-ing2rádo
-ing2rádt
-1inguj
-in2g1u2t
-in2gú
-ing1ült
-2inie
-2inié
-i2nigar
-i2n1ige
-in1ikra
-ini1kro
-i2n1ill
-i2n1i2ma.
-in1i2mi
-in1ind
-2ining
-i2n1inh
-i2n1i2o
-2inir
-ini2s1ég
-i2n1isk
-i2n1ism
-i2n1ital
-2iniu
-i2n1íz
-1injekc
-ink1acé
-in2k1a2d
-in2k1ato
-in2k1árn
-in2k1esz
-ink1érté
-in2kio
-ink1old
-ink1orsó
-in2kös
-1inkub
-1inna.
-in2nor
-i2n1ob
-i2n1okl
-i2n1old
-i2n1olt
-i2n1olv
-in1org
-i2n1ox
-in1óda
-in1ó2dá
-inó2rá
-i2n1öl
-in1ön
-in1őz
-in1pl
-in1pr
-in1s2k
-in1s2m
-1inspi
-in1spr
-1insta
-in1s2to
-in2t1aktu
-int1ann
-int1árai
-int1árak
-int1árat
-in2t1á2rá
-in2t1árf
-in2t1ári
-int1áron
-in2t1árr
-int1ársz
-in2t1áru
-int1á2ta
-1intege
-1integr
-in2t1e2gy
-int1előt
-int1elté
-in2t1enn
-in2t1e2ny
-1intenz
-in2t1e2rez
-1interfé
-int1essz
-inte2t1ős
-in2t1é2j
-in2t1ész
-1intézé
-1intézk
-1intézm
-1intéző
-2intézőc
-in1t2hos
-in1thu
-in2tid
-in2tigé
-int1illa
-in2t1ing
-in2t1ip
-in2t1ivá
-in2t1i2z
-int1oml
-in2t1osz
-in2t1ös
-intőkész1
-int1őr.
-int1ura
-intus1s
-in2t1ut
-in2tús
-in2t1út
-i2n1ug
-i2n1uj
-in1új
-in1ú2s
-i2n1ú2t
-i2n1ü2g
-in1ült
-in1ünn
-in1ür
-in1üs
-i2n1ü2t
-i2n1ü2v
-i2n1ü2z
-in1űr
-1inven
-in2xa
-1inzu
-i1o
-ioá2r
-io1b2r
-io2cs
-io1d2r
-io2dú
-i2ogá
-iog2raf
-io1g2ráf.
-io1g2ráff
-i2ogy
-io2ik
-io2ká
-io2kí
-io2ko
-io2ku
-i3old
-io2l1i2v
-iol1k2
-iol1okk
-i2oló
-i3olv
-io2mar
-io2m1árt
-io2mil
-io2mö
-io2nad
-io2n1a2g
-io2nak
-io2n1a2n
-io2n1a2r
-io2n1as
-io2n1a2t
-io2n1av
-io2n1át
-io2neg
-io2n1el
-io2nen
-ionim1
-io2nin
-ion1k2
-io2nop
-io2n1oszt
-io2nö
-ions2
-ion1st
-ion1t2r
-io2pe
-io1p2r
-io2r1a
-io2r1i2ko
-io2so
-io1sz2f
-i2ote
-io2xidj
-io2xidt
-i1ó
-ióa2d
-ió2ap
-ióá2g
-ióá2r
-ióát1a2
-i2óbá
-i2óbes
-i2óbé
-i2óbí
-i2ó1bl
-i2óbo
-i2óbö
-i2óbő
-i2ó1b2r
-i2óbu
-i2óbú
-i2óbü
-i2óbű
-i2óce
-i2ócé
-i2óci
-i3ócsk
-i2ócu
-i2óde
-i2ódé
-i2ódi
-i2ódí
-i2ódó
-i2ódö
-ió1drá
-i2ódú
-i2ódü
-i2ódz
-i2óég
-i2óék
-i2óél
-i2óép
-i2óés
-i2óév.
-i2ófá
-i2ófe
-i2ófi
-i2ó1fl
-i2ófó
-i2ófö
-i2ófő
-i2ó1f2r
-i2ófu
-i2ófü
-i2ófű
-ió1g2r
-i2óha
-i2óhá
-i2óhe
-i2óhé
-i2óhi
-i2óhí
-i2óhó
-i2óhö
-i2óhő
-i2óhu
-i2óhü
-i2óhű
-iói2g
-i2óip
-i2óis
-i2óiz
-ióí2v
-i2óje
-i2ójo
-i2ójó
-ió2kad
-ió2kaj
-iók1arc
-ió2k1aszt
-ió2kál
-ió2k1e2g
-ió2k1i2d
-i2ókí
-iókköz1
-iók1old
-i2ókort
-i2ókö
-i2ókő
-ió2küz
-i2óla
-i2ólá
-i2óle
-i2ólé
-i2óli
-i2ólo
-i2óme
-i2ómó
-i2ómu
-i2ómú
-i2ómű
-i2óne
-i2ónó
-i2ónö
-ióo2k
-ióó2r
-ió1p2s
-ió2rab
-i2órag
-i2órak
-i2óran
-i2órap
-ió2ras
-i2órád
-i2óre
-i2óré
-i2ória
-i2óro
-i2órö
-i2óru
-ió2s1aj
-ió2sel
-ió2si.
-ió1slá
-ió2só
-iós3s
-ió1s2tá
-ió1str
-i2ósú
-ió1sz2
-i2óte
-i2óté
-i2óti
-i2ótí
-i2ótö
-i2ótő
-i2ó1t2r
-i2ótu
-i2ótú
-i2ótü
-i2ótű
-i2óug
-i2óun
-i2óur
-i2óut
-i2óvár
-i2óvás
-i2óve
-i2óvé
-i2óvi
-i2óví
-i2óvö
-i2ózár
-i2óze
-i2ózs
-i1ö
-iö2kö
-iö2le
-iö2lé
-iö2li
-iö2lö
-iö2lő
-iö2mö
-iö2re
-iö2rö
-iö2rü
-iö2tö
-iö2ve
-iö2zö
-i1ő
-iő1dr
-i2őha
-i2őké
-i2őku
-i2őra
-iő2ri2
-i2ő1s2p
-i2ő1st
-i2őte
-i2őté
-i2őva
-i2ővá
-ipa2cse
-1i2par.
-1ipara.
-ipa2ral
-ipa2rál
-1i2parán
-1i2parát
-1iparb
-ipa2r1en
-ipa2r1es
-1i2paré
-1i2parh
-1iparil
-1i2parin
-ipa2ris
-1i2parm
-1i2parn
-i2parok
-i2paron
-1iparr
-1i2pars
-i2parta
-1i2partá
-1i2parte
-1i2partó
-1i2paru
-ipau2
-ipánk2
-ipán1n
-ip1átm
-i2p1ef
-ip1e2gy
-ip1e2lu
-i2p1esé
-i2p1ev
-ip1fl
-ip2fu
-ip1kl
-ip1kr
-ipo1kl
-ipor2tel
-ipor2t1ő
-ip1ö2l
-ip1ös
-ip2p1a2d
-ip2paj
-ip2par
-ip2pár
-ipp1ing
-ip2pö
-i1prof
-i1prog
-i1proj
-ip2rop
-i1p2rot
-ipsz1a2l
-ipsz1ál
-ip2sz1emb
-ip2szip
-ip2sz1í2
-ipsz1or
-i2p1ug
-iralo2
-1i2rama
-1i2ramá
-iramis1s
-ira2tal
-irata2n
-ira2t1any
-ira2t1as
-ira2t1at
-ira2tál
-1i2ratb
-1i2ratc
-1i2ratd
-ira2tel
-1i2raté
-1i2ratf
-1i2rati
-2i3ratill
-1i2ratm
-ira2t1ol
-1iratoz.
-ira2t1ö2
-1i2ratp
-1i2ratr
-1i2ratü
-irádi2ók
-irádi2ót
-irá2f1a2
-irá2g1al
-irá2g1ál
-irá2g1á2rak
-irá2g1á2ro
-irá2g1áto
-irá2gáz
-irá2g1e
-irág1g
-irá2g1ol
-irá2g1ó2r
-irá2gö
-irá2l1a
-irá2l1e2
-1i2ránn
-1i2rány
-irá2nyal
-irá2nye2
-ir2ch
-i2rei
-1irga
-irin2c
-iri2zo
-irka1s
-irkasz2
-irke1
-2iro.
-2irob
-1i2roda.
-1i2rodá
-iro1g2r
-iro2ka
-iro2ká
-iro2k1e
-iro2kér
-iro2l1a
-iro2m1a
-iros3s
-iró2ke
-i2róno
-1irri
-irsa2
-ir2s1al
-ir2s1á2
-ir2sil
-irs3s
-ir2s1ü
-ir2sz
-irté2
-ir2t1él
-ir2tiz
-ir2t1o2r
-ir2t1ö2
-ir2tür
-iru2sze
-i2s1abl
-is1a2da
-is1a2dá
-is1a2do
-i2s1a2g
-is1aja
-is1ajk
-isa2k1e
-isa2kol
-is1a2la
-is1alf
-i2s1alj
-is1alk
-is1alm
-is1amb
-isa2n
-i2s1ana
-i2s1ano
-i2s1ant
-i2s1any
-isa2p
-is1apá
-is1apo
-is1a2rá
-is1ass
-is1aut
-i2s1a2z
-i2s1ábr
-is1ággy
-iságy1út
-is1áll
-is1á2po
-i2s1á2rak
-i2s1á2rá
-i2s1árb
-i2s1árf
-i2s1árh
-i2s1árké
-i2s1árn
-isá2ron
-i2s1árr
-i2s1árt
-i2s1á2ru
-isárus1
-is1á2t1a2
-is1átk
-i2s1átl
-is1átv
-is1bl
-is1br
-is1dr
-is1edz
-is1eff
-i2s1ege
-is1e2gér
-i2s1e2ke.
-is1elf
-is1elm
-i2s1elo
-i2s1eml
-i2s1enc
-i2s1ene
-is1eng
-i2s1e2pi
-is1epri
-is1erő
-is1e2set
-is1esé
-isé2ge2l
-isé2gés
-isé2gid
-iségkész1
-is1élv
-i2s1ér.
-i2s1é2ri
-i2s1érté
-is1é2ve.
-is1é2vet
-is1é2vén
-is1é2vét
-is1évh
-isé2vi.
-isföl2
-is1fr
-is2hin
-is2his
-is1ido
-isi2g
-is1iga
-is1ind
-is1inf
-is1int
-is1inv
-isió2
-i2sipa
-isi2par
-is1iro
-i2s1isten
-is1ita
-is1i2zo
-i1s2katu
-is1kl
-is1k2r
-is1kv
-is2lag
-i1s2lat
-1isme.
-1ismek
-1ismere
-1ismérv
-2ismo
-2ismű
-i2s1ob
-i2s1o2l
-i2s1orc
-i2s1ord
-iso2rosz
-i2s1orra
-i2s1orró
-is1orv
-i2s1osko
-is1osz
-i2s1ott
-is1ó2rá
-i2s1öb
-i2s1ö2c
-is1öl
-is1ön
-isö2r
-is1örd
-is1öre
-is1ös
-is1ö2v
-is1ő2r
-i1s2pek
-isp2r
-i1s2pur
-is1s2p
-is1sta
-is1stá
-issz1e2rei
-issz1e2rek
-issz1erem
-issz1e2res
-is3szig
-is3szil
-is3szí
-is3szó
-is3szö
-is3sző
-is3szú
-is3szű
-ista1s
-istasz2
-1istáp
-1istenh
-iste2n1o
-i1s2til
-is1trez
-is1tré
-is1tri
-is1tro
-1istv
-i2s1ud
-is1ujj
-isu2t
-is1uta
-is1utá
-i2s1új
-i2s1üg
-is1üst
-i2s1ü2tőt
-i2s1üz
-isva2d1áss
-i1svin
-isvíz1
-isza2k1o
-isza2p1á2
-isza2p1e
-is3zárá
-isz1árk
-is3zárl
-is3zárú
-isz1e2gy
-i2sz1elv
-is3zene
-isz1esem
-i2széj
-isz2fér
-i2szimi
-isz1ing
-isz1isk
-isz1ist
-isz1kl
-isz2k1ö2v
-isz2k1ú
-isz1öl
-isz1ös
-isz3s
-isz2tati
-iszt1áras
-isz2t1árb
-isz2tárt
-isz2t1ékn
-isz2t1ér.
-isz2t1ill
-iszt1i2nai
-isz2t1öl
-isz2t1őr.
-isz2tüz
-i2sz1ü2g
-i2szüt
-is3zűrödn
-it1a2cé
-ita1d2
-it1a2dó
-ita1g2r
-it1agya
-i2t1akk
-i2t1akn
-1i2tal.
-ita2lad
-ita2l1á2rú
-i2talb
-ita2l1el
-italé2
-i2talh
-itali2n
-ita2lina
-i2talj
-i2talk
-it1allo
-1i2talm
-1i2taln
-i2talo
-ita2l1ó2
-1i2talr
-i2talt2
-i2talu
-it1anó
-it1ant
-i2t1ara
-i2t1au
-it1ács.
-it1ág.
-it1á2ga
-itána2
-itá2n1at
-itá2rak
-i2t1á2ram
-it1á2ras
-it1á2rat
-itá2rár
-itá2rát
-i2t1á2ria
-itá2rig
-itá2ris
-itáró2
-itá2r1ór
-itá2ruk
-itá2rú
-itáskész1
-itá2s3z
-itá2tal
-it1átf
-it1bl
-it1br
-it1dr
-ite2l1a
-ite2l1á
-ite2leg
-i2telemz
-ite2leng
-ite2lesé
-ite2lex
-ite2lél
-ite2l1ér.
-ite2linj
-it1eljá
-i2t1ellen
-it2elmély
-ite2lo
-ite2lőz
-i2t1e2mel
-i2t1eml
-i2t1e2p
-2iter
-i2t1e2rez
-i2t1erő
-i2t1e2sete
-it1ezr
-ité2g
-i2t1ége
-it1é2le
-it1élm
-i2t1é2ret
-i2t1érz
-ité2tek
-i2t1étt
-it1fl
-it1fr
-it1gl
-it1gn
-it1gr
-i1t2hot
-i2t1id
-iti2g
-itigaz1
-i2t1igé
-it1i2ko
-it1ikr
-itikus1s
-it1ill
-it1imp
-i2t1ind
-i2t1inf
-it1i2pa
-i2t1irá
-i2t1iro
-it1iró
-it1isk
-i2t1ism
-it1isza
-it1i2szo
-i2t1íg
-i2t1íz
-it1kl
-itkos1s
-it1kr
-ito2b
-it1obe
-ito2k1aj
-ito2kak
-ito2k1ol
-ito2n1á2
-itop2la
-ito2r1as
-ito2rál
-ito2ril
-2itosz
-ito1sz2f
-i2t1ov
-itóa2
-itó1f2
-1i2tókán
-i2t1ó2né
-i2t1ónn
-i2t1ónt
-itó1p2
-it1órá
-itós2
-itó1sp
-itó1st
-it1önt
-i2t1ös
-it1őrl
-it1pl
-it1pr
-it1sp
-1ittad
-1ittam
-itta2n1á2s
-itta2n1é
-itta2n1ó2
-2itte
-it2t1eg
-it2t1i2na
-it2t1ing
-it1tra
-it1tró
-1ittuk
-1ittun
-itty1i
-i2t1ug
-i2t1und
-itu2n1i
-itu2ral
-it1u2rán
-it1új
-i2t1üg
-it1üld
-it1üst
-i2t1üt
-i1t2zé
-i1t2zi
-i1u
-iu2ga
-iu2go
-iu2mab
-iu2mac
-iu2m1ad
-iu2maf
-iu2m1ag
-iu2mal
-iu2m1am
-iu2m1a2n
-iu2m1a2r
-iu2m1as
-iu2m1a2t
-iu2m1av
-iu2maz
-iu2m1á2l
-iu2meg
-iu2m1el
-iu2m1en
-iu2mer
-iu2m1es
-iu2mez
-iu2mél
-iu2m1éré
-iu2m1i2d
-ium1ill
-iu2m1im
-ium1inj
-iu2m1i2p
-iu2m1is
-iu2m1iz
-iu2mí
-iu2mol
-iu2m1or
-iu2m1ó2
-iu2mö
-iu2mő
-ium1p2
-iu2mü
-iu2na
-iu2no
-iu2ra
-iu2rá
-iu2ru
-ius3sze
-iu2ta
-iu2tó
-iu2tu
-iu2zs
-i1ú
-i2úbá
-i2úbe
-i2úbé
-i2úbi
-i2úbo
-i2úbö
-i2ú1br
-i2úci
-i2úcí
-i2údá
-i2úde
-i2údo
-i2údz
-i2úél
-iú1fr
-i2úha
-i2úhá
-i2úhe
-i2úhi
-i2úhö
-i2úhő
-i2úhu
-i2úhú
-i2úif
-i2úje
-iú2jí
-i2újó
-i2úke
-i2úkí
-i2ú1kl
-i2úkó
-i2úkö
-i2úku
-i2úme
-i2úmó
-i2úmu
-i2úmű
-i2úne
-i2úné
-i2únö
-i2úre
-iú2ri
-iú2ro
-i2úru
-i2úse
-i2úso
-i2ú1sp
-i2úta
-i2útá
-i2úte
-iú2té
-i2útí
-i2útö
-i2útú
-i2úve
-i2úvé
-i2úvi
-i2úvo
-i2úze
-i1ü
-iü2cs
-iü2ge
-iü2gy
-iü2le
-iü2lé
-iü2li
-iü2lö
-iü2lő
-iü2lü
-iü2re
-iü2rí
-iü2rü
-iü2te
-iü2té
-iü2ti
-iü2tö
-iü2tő
-iü2tü
-iü2ve
-iü2vö
-iü2ze
-i1ű
-iű2ze
-iű2zé
-iű2ző
-iva2csal
-iva2cs1e
-1i2vadé
-iva2r1ai
-iva2raj
-iva2re
-iva2rin
-iva2rol
-iva2ró
-ivar1s
-iva2t1a2n
-iva2t1e2
-iva2tin
-iva2tol
-iva2t1ó2
-iva2t1ö
-1i2vás.
-1i2vásb
-1i2vásé
-1i2vásn
-1i2vásr
-1i2váss
-i2ve.
-1ivot
-ivókész1
-ivós2
-ivőé2
-iv2ré
-i2x1ab
-i2x1ad
-i2x1an
-i2x1ar
-ix1as
-i2x1ág
-ix1bl
-i2x1ef
-i2x1eg
-i2x1ex
-i2x1ép
-ix1fr
-i2x1im
-i2x1in
-i2x1io
-i2x1ir
-i2x1is
-ixi2t
-i2x1ob
-i2x1op
-ix1öd
-ix1ös
-ix1őr
-ix1ős
-ix1pl
-ix1pr
-i2x1új
-i2x1ül
-iz1akn
-izala2g1
-iz1alk
-izas2
-iza1sp
-iz1árny
-iz1bl
-ize2d1á2
-ize2d1ék
-iz1egy
-i2z1e2lem
-izele2tel
-i2z1e2lér
-i2z1e2lőí
-iz1ember
-izene2g
-izen3n
-ize2s1á2
-i2z1esemé
-i2z1ev
-i2zéd
-i2z1ég
-1i2zéj
-1i2zék
-i2zél
-i2z1é2p
-1i2zésí
-iz1fl
-1izgal
-1izgatot
-i2z1iga
-i2z1igé
-iz1inf
-iz1int
-iz1iro
-i2z1isk
-i2z1ism
-izi1s2p
-1izmok
-1izmuk
-izmus1s
-1izmú
-iz1okt
-1i2zolá
-izo2m1a
-izo2mál
-1i2zomb
-1izomé
-1izomf
-1i2zomm
-1i2zomn
-1i2zomr
-1izoms
-1i2zomt
-1izomz
-izo1p2
-i2zos
-izo1szta
-1izotó
-izó2d1a2
-iz1órá
-iz1pl
-iz1pr
-i2zs1ad
-izsa2ik
-i2zsakn
-i2zs1all
-izs1ara
-izsa3u2tók
-iz4s1ág
-i2zs1ál
-i2zsec
-i2zs1embe
-i2zsev
-izsé2t
-izs1éte
-i2zsil
-i2zs1imp
-izs1ist
-i2zsita
-i2zsiz
-iz3sor
-i2zs1ő
-izs1s
-iz3str
-i2zs1ül
-iz3sze
-iztos1s
-iz1udv
-izura1
-iz1ú2t
-i2z1ü2g
-i2z1üt
-i2z1ü2z
-1izzi
-1izzí
-1izzot
-2í.
-í1a
-í1á
-íba2l1
-í2bis
-íbo2r1as
-ícius1s
-íd1a2c
-íd1a2d
-íd1a2l
-ídala2g1
-íd1a2n
-íd1a2v
-íd1a2z
-íd1ág
-íd1ál
-íd1á2r
-íd1át
-íd1bl
-íd1e2g
-íd1e2l
-íd1e2m
-í2d1é2g
-í2d1él
-í2d1ép
-í2d1ér.
-í2d1érz
-ídi2g
-í2d1iga
-í2d1igé
-í2d1in
-í2d1i2r
-íd1ív
-í2d1ol
-í2d1om
-í2d1os
-íd1ös
-íd1ő2r
-íd1pr
-íd1st
-í2d1ud
-í2d1ug
-íd1új
-íd1üg
-íd1ün
-íd1üz
-íd3zá
-íd3zs
-í1e
-í1é
-íé2le
-í2g1a2g
-íg1e2p
-íge2s
-í2g2ér
-í2g1op
-íg1tr
-ígyá2
-í1i
-íi2ro
-í1í
-í2j1a2dá
-í2j1a2dó
-í2j1a2j
-í2j1akc
-í2j1a2l
-íj1any
-í2j1a2r
-í2j1a2u
-í2j1á2c
-í2j1á2g
-í2j1árá
-í2j1áre
-í2j1árt
-í2j1áru
-1í2jás
-íjá2sze
-íj1ászka
-í2j1áta
-í2j1á2te
-í2j1áth
-í2j1átl
-íjá2tos
-í2j1átt
-í2j1átu
-í2j1átv
-í2j1á2z
-íj1e2g
-íj1e2l
-íjel2i
-íj1e2m
-íj1en
-íj1e2r
-íj1e2s
-íj1ép
-íjé2r
-í2j1ére
-íj1fr
-í2j1i2d
-í2j1im
-í2j1int
-í2j1ir
-íjirá2
-íj1íg
-íj1ín
-íj1kr
-í2j1o2d
-í2j1ok
-í2j1ol
-í2j1os
-í2j1ot
-íj1ön
-íj1ös
-íj1ö2v
-íj1öz
-íj1pl
-íj1pr
-íj1sk
-íj1sp
-íj1st2
-í2j1ug
-í2j1u2t
-í2j1út
-íj1üg
-íj1ü2t
-í2k1abl
-í2k1a2c
-í2k1a2g
-í2k1a2l
-í2k1an
-ík1ar
-íka2s
-ík1asz
-ík1a2v
-í2k1áb
-í2k1ág
-ík1ál
-í2k1á2r
-í2k1eg
-í2k1e2l
-ík1em
-í2k1es
-ík1ev
-í2k1é2k
-í2k1ér.
-í2k1érb
-í2k1é2rő
-ík1fr
-í2k1i2d
-í2k1ing
-í2k1i2r
-ík1ín
-ík1ír
-ík1k2r
-í1k2lu
-ík1oll
-í2k1op
-í2k1orn
-í2k1orr
-í2k1ors
-íkö2l
-í2k1ö2v
-ík1pl
-ík1pr
-ík1sp
-ík1sz2
-í2k1ug
-í2kuni
-í2k1u2r
-í2k1u2t
-í2k1ú2t
-ík1ü2v
-íl1aj
-íl1a2k
-íl1a2l
-í2l1á2g
-ílási2
-ílá2s1ik
-ílás3s
-ílá2s3z
-í2l1át
-íl1bl
-íl1br
-íl1e2g
-í2l1érz
-íli2as
-í2l1i2m
-í2l1i2r
-í2l1is
-íl1í2r
-íl1í2v
-íl1kr
-íl1ös
-íl1ö2z
-íl1st
-íltá2
-íl2t1árk
-íl2t1áro
-íl2t1árt
-íl2t1e
-íl2t1é2
-í2l1u2r
-ílu2sab
-ílu2se
-ílus3s
-ílu2s3z
-íma2n
-íma1p
-í2m1á2l
-ímá2ris
-ímás1s
-ím1bl
-ím1b2r
-ím1dr
-í2m1e2g
-ím1elí
-í2m1elm
-íme2r1a2
-íme2r1á
-íme2reg
-ím1e2rő
-í2m1esem
-í2m1e2v
-í2m1é2het
-í2m1é2k
-í2m1ép
-í2m1ér.
-í2m1é2ré
-í2m1é2rő.
-í2m1é2rői
-í2m1érr
-í2m1érte
-í2m1érté
-í2m1i2d
-ími2g
-í2m1iga
-í2m1igé
-í2m1ill
-í2m1ind
-í2m1inf
-í2m1ira
-í2m1is
-í2m1i2v
-ím1ír
-ím1kr
-ím1o2k1
-ím1ol
-ím1on
-ím1o2p
-ím1os
-ím1ök
-ím1ö2l
-ím1ös
-ím1öt
-ím1ő2r
-ím1p2r
-ím1sp
-ím1st
-ím1u2r
-ím1u2t
-í2m1üg
-í2m1ünn
-í2m1üt
-í2n1ab
-ín1a2cé
-ína2d
-ín1ada
-ín1adá
-ín1ado
-í2n1a2g
-í2n1a2j
-í2n1aka
-í2n1akk
-ín1a2la
-ín1alj
-ín1alk
-ín1ana
-ín1a2ny
-í2n1a2p
-í2n1a2rá
-í2n1arc
-ín1ass
-ín1atl
-ín1att
-í2n1au
-í2n1az
-ín1ábr
-í2n1á2c
-í2n1ág
-í2nálhaj
-í2n1álm
-í2n1á2p
-ín1á2t1a2
-ín1átc
-ín1áte
-ín1átf
-ín1áth
-ín1átl
-ín1átm
-ín1átt
-ín1átv
-í2n1á2z
-ín1bl
-ín1br
-ín1d2r
-í2n1ef
-í2n1e2g
-í2n1e2ke.
-í2n1elc
-í2n1e2le
-í2n1elh
-í2n1elj
-í2n1elk
-í2n1ell
-í2n1elm
-í2n1elny
-í2n1e2lo
-í2n1elö
-í2n1e2lőh
-í2n1elr
-í2n1eltá
-í2n1elto
-í2n1elvá
-í2n1e2mel
-í2n1eml
-í2n1e2mu
-íne2n
-í2n1ene
-í2nesd
-í2n1e2sz
-í2n1e2vé
-ín1ég
-íné2l
-í2n1éle
-ín1élé
-ín1élő
-ín1élt
-í2n1é2p
-í2n1ér.
-í2nérd
-í2n1éri
-í2n1érl
-í2n1érm
-í2n1érü
-íné2sza
-íné2szer
-íné2szint
-íné2szo
-í2n1éte
-í2n1é2ven
-ín1f2r
-ín1g2r
-íni2g
-í2n1iga
-í2n1igé
-í2n1i2ko
-í2n1ill
-ín1ind
-í2n1inf
-í2n1ing
-í2n1int
-1í2nio
-ín1i2rá
-í2n1iro
-í2n1ism
-í2n1i2z
-ín1íz
-ín1k2l
-ín1k2r
-ín1k2v
-ín3nyú
-í2n1ob
-í2n1ol
-í2n1op
-í2n1or
-í2n1osz
-ín1ó2l
-ín1ön
-ín1ör
-ín1ös
-ín1öt
-ín1ö2v
-ín1ö2z
-ín1pl
-ín1pr
-ín1ps
-ín1s2k
-ínso2k1
-ín1s2p
-ín1s2t2
-ín1sz2
-ín1t2r
-ín1ug
-ín1új
-í2n1üd
-í2n1ü2g
-í2n1ült
-í2n1ü2t
-í2n1ü2v
-íny1e2c
-íny1e2g
-íny1el
-íny1e2r
-íny1ing
-í1o
-í1ó
-íó2vo
-í1ö
-í1ő
-í2p1a2g
-í2p1a2n
-í2p1álc
-í2p1él
-ípés3s
-í2p1i2z
-íp3ro
-í2p1uj
-ípu2san
-ípus3s
-ípus3z
-ír1a2dó
-ír1akc
-ír1akn
-ír1akt
-ír1a2la
-ír1alj
-ír1alk
-íra1pl
-íra1pr
-ír1arc
-í2r1a2u
-í2r1ábr
-í2r1á2g
-í2r1á2p
-ír1ár.
-ír1árak
-í2r1á2ro
-ír1á2ru
-í2r1ásás
-írá2se
-íráskész1
-írás3s
-í2rász
-ír1á2t1a
-ír1á2t1e2
-í2r1áth
-ír1áts
-ír1átv
-ír1áza
-ír1bl
-ír1br
-ír1d2r
-ír1e2dé
-í2r1e2g
-í2r1e2kés
-í2r1e2l
-írel1a
-í2r1ember
-ír1eml
-ír1emu
-íre2n
-ír1ene
-í2r1e2r
-í2r1esem
-í2r1e2ső
-í2r1eszk
-í2r1ev
-í2r1é2g
-í2r1éj
-í2r1é2k
-í2r1é2l
-í2r1ép
-í2r1é2ri
-í2r1és
-í2r1é2te
-ír1évh
-ír1f2r
-ír1gl
-ír1g2r
-íri2g
-í2r1iga
-ír1iko
-í2r1ill
-í2r1im
-ír1ind
-í2r1inf
-í2r1inj
-ír1ins
-í2r1int
-í2r1i2p
-ír1ira
-í2ris
-íri2sz1á
-í2r1i2z
-ír1ín
-ír1ír
-ír1ív
-ír1í2z
-ír1k2l
-ír1k2r
-ír1kv
-1írnok
-í2r1o2b
-1írog
-í2r1okl
-í2r1okm
-íro2l
-í2r1ola
-í2r1old
-í2r1olv
-í2r1o2r
-í2r1osz
-í2r1o2v
-í2r1o2x
-íróá2
-í2ródj
-í2ródo
-í2ródó
-í2ródt
-í2róí
-író1p2
-író1s2p
-író1sz
-írót2
-író1tr
-ír1ön
-ír1ör
-í2r1ös
-í2r1ö2z
-í2r1ő2r
-ír1ő2s
-ír1p2l
-ír1p2r
-ír1sh
-ír1s2k
-ír1s2p
-ír1s2r
-ír1s2t
-írsz2
-írszt2
-ír2t1ag
-írt1alap
-írt1é2te
-írtha2
-ír1tran
-ír1tro
-ír2t1u2r
-íru2n
-í2r1und
-í2r1uni
-í2r1u2r
-íru2s1e2
-írus3s
-í2r1u2t
-í2r1új
-í2r1úr
-í2r1ú2s
-í2r1útj
-í2r1útn
-í2r1ú2to
-í2r1útr
-í2r1útt
-í2r1ü2g
-írü2l
-ír1ür
-ír1ü2v
-í2r1üz
-ír1ű2z
-ís2po
-ís2tí
-ísz1aj
-ísza2k
-íszak1o
-ísz1a2l
-ísz1as
-ísz1at
-ísz1au
-í2sz1á2
-í2sz1eb
-í2szedé
-í2sz1e2g
-í2sz1e2lem
-í2sz1ell
-í2szeln
-í2sz1e2lő
-í2sz1elv
-í2sz1emb
-í2sz1e2mel
-í2sz1eml
-í2sz1erk
-í2szég
-í2sz1é2l
-í2sz1é2p
-ísz1érem
-í2sz1ért
-í2sz1étk
-ísz1g2
-íszi2
-í2sz1id
-í2sz1in
-í2szír
-í2sz1ív
-ísz1k2
-í2sz1o2
-í2sz1ó2
-ísz1öl
-ísz1ön
-í2sz1ő2
-ísz1p2
-ísz3s
-ísz1tr
-í2sz1u
-í2sz1ú
-íszü2l
-í2sz1ülé
-í2szünn
-í2szüt
-ísz1z
-íta3u2
-ítá2s1á2g
-íté2k1a2l
-íté2k1e2l
-1í2tél
-íté2sa
-íté2s1ég.
-íté2s1é2gé
-íté2s1égr
-íté2sza
-íté2szá
-íté2szo
-ítész3s
-ítóa2
-ító1f
-ítógé2p1é2s
-ító1p2
-ító1sp
-ító1sta
-ítót2
-ító1tr
-ít2ré
-ítus3s
-í1u
-í1ú
-í1ü
-íü2dü
-í1ű
-í2v1a2d
-ív1a2já
-ív1ajk
-ív1ajt
-í2v1a2la
-í2v1alj
-í2v1a2na
-ív1ang
-í2v1anó
-í2v1a2ny
-ív1arc
-ív1a2ri
-í2v1aszt
-ív1ábr
-í2v1á2g
-í2v1ál
-ív1á2rad
-í2v1á2ram
-í2v1árk
-í2v1árn
-í2v1árt
-í2váru
-ívás3s
-ívá2s3z
-ív1áta
-ív1bl
-ív1dr
-íve2c
-í2v1e2dz
-í2v1e2g
-í2v1ej
-í2velek
-ív1e2lemb
-ív1e2leme
-ív1e2lemé
-ív1e2lemr
-í2velg
-ív1e2lől
-í2v1ember
-íve2n
-í2v1end
-í2v1ene
-íve2r
-ív1ere
-ív1eré
-ív1erő
-í2v1esemé
-í2v1esz
-í2v1e2tet
-í2v1é2g
-í2v1é2k
-í2v1é2le
-í2v1élm
-í2v1é2lő
-ív1élt
-í2v1ép
-í2v1ér.
-í2v1érd
-í2v1é2ri
-í2v1érr
-ív1érté
-í2v1érv
-í2v1érz
-í2v1é2te
-ív1fr
-í2v1i2d
-ívi2g
-í2v1iga
-ívi2k
-ív1ike
-í2v1ill
-í2v1im
-í2v1in
-í2v1i2p
-ív1iro
-ívi2s1el
-ívi2ses
-ívis1s
-ív1iva
-í2v1i2z
-ív1kl
-ív1kr
-í2v1ol
-í2v1op
-í2v1or
-í2v1osz
-í2v1ox
-ívó1s2p
-í2v1öb
-í2v1ö2r
-í2v1ös
-ív1öv
-í2v1ö2z
-ív1pl
-ív1pr
-ívren2de
-ív1sk
-ív1sp
-ív1st
-ívsz2
-ív1szk
-ív1tr
-í2v1ug
-ív1ult
-í2v1ur
-í2v1u2t
-ív1új
-ív1út
-í2v1üg
-í2v1ür
-í2v1üt
-í2v1ü2v
-í2v1üz
-íz1ab
-íz1a2d
-íz1a2g
-íz1aj
-íz1a2k
-íz1a2l
-íza2n
-íz1ar
-íz1a2u
-íz1á2g
-íz1ál
-íz1á2p
-íz1á2r
-ízár1ó2
-ízás1s
-íz1á2t
-ízát1a2d
-ízát1á
-ízát1e2
-íz1bl
-íz1d2r
-í2z1ef
-í2z1e2g
-í2z1ej
-í3zelá
-íze2l1el
-íze2lö
-íze2lő
-í2z1emel
-í2zemé
-íze2n
-í2z1ene
-í2z1e2r
-1í2zesí
-í2z1e2sz
-í2z1e2ti
-í2z1eu
-í2z1e2v
-í2z1ex
-í2z1e2z
-í2z1ég
-íz1ékk
-í2z1é2l
-í2z1é2p
-í2z1ér.
-í2z1érb
-í2z1érd
-í2z1érel
-í2z1é2ren
-í2z1érh
-í2z1é2r1i
-í2z1érk
-í2z1érm
-í2z1érn
-í2z1érr
-í2z1érs
-í2z1érte
-í2z1érté
-í2z1értő
-í2z1érv
-í2z1érz
-ízé2sa
-íz1ész
-íz1évi
-íz1fr
-íz1gl
-íz1icc
-ízi2g
-í2z1igé
-íz1iko
-í2z1ill
-í2zimá
-í2z1imi
-í2z1imp
-í2z1ind
-í2z1inf
-í2z1int
-ízióé2r
-ízi2óéra
-ízi2óto
-í2z1i2pa
-í2z1ira
-íz1irá
-ízi2so
-ízi2sza
-ízi2szo
-ízi2szó
-í2z1i2ta
-í2z1i2vá
-íz1í2v
-íz1íz
-íz1kl
-íz1k2r
-ízo2k
-íz1on
-íz1or
-íz1os
-íz1ó2rá
-íz1öb
-íz1öd
-íz1ök
-íz1ö2l
-íz1öm
-íz1ön
-íz1ör
-íz1ös
-íz1ö2v
-íz1öz
-ízpen1
-íz1pf
-íz1pl
-íz1p2r
-í2zsa2
-ízs1al
-ízs1as
-ízs1au
-íz4s1ág
-ízsá2r
-ízs1áro
-íz3sáv
-íz3seb
-í2zs1e2l
-ízse2s
-ízs1ese
-í2zs1in
-í2zs1it
-íz3sí
-í2zso
-ízs1ok
-íz3sor
-í2zs1ó2
-í2zsö
-ízs1s
-íz3str
-í2z3su
-í2zsú
-íz3sz
-íz1t2r
-í2z1ug
-í2z1uj
-ízu2me
-ízu2m1i
-íz1und
-í2z1u2r
-í2z1ut
-íz1úr
-íz1ú2t
-í2z1ü2g
-í2züle
-í2z1ür
-í2z1üs
-í2z1üt
-í2z1üv
-í2z1ü2z
-í2zűe
-í2zűn
-1í2zűr
-í2zűv
-2j.
-1ja
-j1a2cé
-2j1a2dag
-2j1a2dal
-ja2datá
-2j1a2dato
-2j1adm
-2j1a2dom
-2j1a2dot
-ja2dóh
-ja2dós
-ja2dót
-ja2dóv
-ja2dóz
-ja2dus
-ja1f2r
-ja2ga.
-2j1agg
-2j1a2gi
-2jakad
-ja2kadé
-ja2k1ál
-ja2k1á2p
-ja2k1árn
-2j1akci
-ja2k1ec
-ja2k1el
-ja2k1e2m
-ja2kes
-jak1ére
-ja2k1éri
-2jakf
-ja2k1im.
-ja2k1iz
-ja2k1í2r
-jak1k2
-2j1akku
-jako2v
-jak1ovi
-ja2kók
-ja2k1ölts
-ja2k1ös
-2j1akro
-jakt2
-2j1akt.
-2j1akti
-2j1aktu
-2j1alg
-2j1alk
-2j1all
-2j1alm
-jam2be
-2jambu
-ja2mes
-2jana.
-2jana2i
-ja2nal
-ja2nat
-2j1a2no
-jan2sze
-jan2szü
-ja2nya
-ja2ran
-2j1a2rá
-2j1arc
-ja2rom
-2j1a2szás
-2j1atk
-2j1atró
-ja2ur
-ja2uto
-2javat
-ja2xi
-ja2zon
-1já
-já2ar
-2j1á2bé
-2j1ábr
-2j1ág.
-2j1á2ga.
-2j1ág1a2d
-2j1á2gai
-2j1á2gak
-2j1á2gas
-2j1á2gat
-2j1á2gaz
-2j1á2gá
-2j1ágb
-2j1ágf
-2j1ágg
-2j1á2gi
-2j1ágk
-2j1ágr
-2j1á2gy
-jáí2r
-2j1áll
-já2n1e
-já2nék
-2jánl
-já2po
-2j1á2rada
-2j1á2rai
-2j1á2rak
-2j1á2ram
-já2rar
-já2r1av
-2j1á2rán
-járás3s
-járá2s3z
-2j1á2rát
-2j1á2ráv
-járe2
-já2r1em
-já2res
-já2rér
-2j1á2rig
-já2r1is
-2j1árki
-2j1árko
-2j1árny
-2j1á2ron
-já2r1ot
-já3ró
-já2rő
-2j1ártal
-2j1ártás
-2j1á2ruk
-2járus
-j1árut
-2j1árvál
-2j1árz
-já2s1ad
-já2sal
-já2san
-já2s1ág
-já2s1á2rai
-já2s1árak
-já2sás
-já2s1e2
-já2sit
-já2s1í
-já2s1ol
-2j1á2só
-já2sö
-jást2
-já2s1ü2
-já2sz1al
-jásze2
-já2szis
-já2sz1okta
-jász1ói
-jász1ón
-jász1ó2r
-ját1a2dó.
-ját1a2dók.
-ját1a2dón.
-ját1a2dót
-2j1á2tal
-já2t1á2
-2j1átáz
-játék1e2
-2j1átfe
-2j1áthá
-2j1á2ti
-2j1átír
-2j1átlé
-2j1átm
-ját1osz
-2j1á2t1ö
-2játszű
-2j1á2tü
-2j1átvé
-2j1átvi
-já3zs
-jba2l1
-jb2lo
-jb2ri
-jb2ró
-jbű2n1ü2
-jc3ho
-jcsapá2
-jcs1s
-jdo2nal
-j1d2rá
-j1d2ro
-j1d2ru
-jdúköz1
-1je
-jea2l
-jea2n
-je2bé
-2j1e2dén
-2j1e2dz
-jee2n
-je1f2r
-2jeged
-je2gés
-jegész1
-je2gyeg
-je2gyel
-jegy1els
-jegy1elv
-2j1e2gyesí
-je2gy1é2k
-je2gy1in
-je2gy1o
-je2győ
-je2gyu
-je2gy1ú
-je2gy1ű2rű
-j1ekcé
-je1kri
-jek2t1a2
-jek2t1á2r
-jek2t1e2l
-jek2ter
-je2laj
-je2l1an
-je2l1ap
-je2lar
-je2lav
-je2laz
-jelá2
-je2l1áb
-je2lág
-je2lál
-je2l1ár
-je2l1át1
-je2láz
-jel1e2gy
-je2l1e2l1e2v
-je2l1elk
-je2l1ell
-je2l1e2lőá
-je2l1e2lőb
-je2l1els
-je2l1emel
-2jelemé
-je2l1eml
-2j1e2lemz
-je2l1eng
-je2l1e2r
-jel1esés
-jel1esik
-je2l1esni
-je2l1e2ső
-jel1este
-je2l1esz
-je2l1etet
-jel1evo
-je2lég
-je2l1éj
-je2lél
-je2l1ép
-je2lérte
-je2l1ige
-je2lim
-je2l1i2na
-je2l1inf
-je2l1ing
-je2l1int
-je2l1í2
-2j1ellen
-je2l1o2
-je2l1öv
-je2lőa
-2j1e2lőfe
-je2lőí
-2j1e2lőtu
-jel1p2
-2jelszá
-2jelszo
-2j1eltett.
-2jeltér
-je2lu
-je2lú
-2j1emba
-2j1ember
-2j1e2mel
-je2mu
-je2n1á
-jen1d2
-je2n1e2ke.
-je2n1el
-je2ner
-jene2s
-je2n1esz
-je2n1in
-je2n1o
-je2n1ő2re
-je2n1ős
-je2n1ü
-je1p2r
-2j1erd
-je2red
-je2ró
-2j1e2rő
-je2s1a
-je2s1emb
-2j1e2setb
-2j1e2sett
-je2s1ér
-je2ső
-jest2
-je1sta
-je1str
-je2su
-je2s1ü2v
-jes3zac
-je2t1am
-je2tál
-jet1ell
-je2t1em
-je2t1ék
-je2t1o
-je1tra
-je2tun
-je2tut
-jeu2r
-2j1e2vő
-jezőkész1
-1jé
-2j1ébr
-jé2g1a2
-jé2g1á2
-jégár1a2d
-jé2gec
-jé2ged
-jé2g1e2k
-jé2g1el
-jé2g1em
-jé2g1erk
-jé2g1es
-jé2get
-jé2gép
-jé2g1ér.
-jé2gés
-jég3g
-jégi2
-jé2g1id
-jé2gigé
-jé2gim
-jé2g1is
-jé2g1o
-jé2gó
-jé2gö
-2jé2gő
-jé2g1u2
-jé2gú
-2j1é2hen
-2j1é2hes
-2j1éhs
-jé2k1os
-jé2kü
-2j1é2le
-jé2lő
-2j1élt
-jé2nad
-jé2n1ess
-jé2n1é2g
-jé2nil
-jé2no
-jé2nú
-jé2pí
-jé2pü
-2j1ér.
-2j1érb
-2j1érd
-jé2reg
-2j1é2ren
-2j1é2ré
-2j1érh
-2j1é2ri
-2j1érk
-2j1érl
-2j1érm
-2j1érn
-2j1érr
-2j1érte
-2j1érté
-2j1értő
-2j1é2rü
-2j1érv
-2j1érz
-jé2tel
-2j1étk
-2j1étt
-2j1év.
-2j1évb
-jé2ve.
-2j1é2vek
-2j1é2vet
-jé2vén
-jé2vér
-jé2vét
-j1évh
-j1é2vi
-j1évk
-2j1évn
-2j1évr
-j1évt
-2j1é2vü
-j1évv
-jfeles1s
-jf2le
-jf2lo
-jf2ló
-jfölös1s
-jf2ra
-jf2re
-jf2ri
-jf2rí
-jf2ro
-jf2rö
-jfu2na
-j1g2le
-j1g2ló
-jg2ru
-jhá2r1e
-1ji
-ji2do
-j1i2dő
-2j1i2ga
-2j1i2gé
-ji2je
-2j1ikr
-2j1ill
-ji2ma
-ji2má
-ji2mi
-2j1i2na.
-ji2náb
-2j1ind
-2j1inf
-2j1ing
-2j1inj
-2j1ins
-2j1inte
-2j1inté
-ji2on
-ji2pa
-2j1i2rat
-2j1i2rá
-2j1i2ro
-2j1irr
-2j1irt
-2j1isk
-2j1ism
-2j1ist
-2j1i2ta
-2j1i2vá
-2j1i2vó
-ji2zé
-ji2zo
-1jí
-jí2gé
-jí2rá
-jí2ró
-jítókész1
-jí2ve
-jí2vé
-jí2vó
-jí2ze
-jí2zé
-jí2zü
-jí2zű
-j2j1alj
-j2j1a2z
-jjá1s
-jje2lesé
-jje2lesi
-jje2lest
-jje2l1ül
-jj1e2r
-j2j1im
-j2j1iz
-jj1ív
-jj1íz
-j2j1ol
-j2j1os
-jj1pr
-jj1üg
-jka1pr
-jk1ard
-jkau2
-j2k1e2g
-j2k1e2lő
-j2k1e2s
-jké2p1e2ké
-jkia2
-jkiá2
-j2k1id
-jkie2
-jk2la
-jk2lá
-j1k2li
-j1k2lo
-jkme2
-j2k1old
-jko2r1á2s
-jko2r1in
-jk1órá
-jk1pl
-jk1pr
-j1k2ré
-j1k2ri
-j1k2rí
-jk1st
-j2k1u2s
-jk1üg
-jk2va
-j1k2vó
-j2l1abl
-jl1a2da
-j2l1a2lap
-j2l1all
-j2l1ar
-jla2t1e2
-j2l1azo
-jlás3s
-jl1á2t1a
-jl1átn
-jl1bl
-jl1e2gy
-jleí2
-jl1elé
-jl1ell
-jl1eln
-jle2t1é2te
-jlé2cel
-jlé2c3s
-j2l1év.
-jli2k
-jl1iko
-j2l1ind
-j2l1inf
-j2l1int
-jl1obj
-j2l1ol
-jlo2n1á
-jlo2ni
-j2l1ös
-jl1pr
-jl1sp
-jl1st
-jl1t2r
-jme2g
-jm1oká
-j2m1old
-jna2l1e
-jna2lég
-jna2lis
-jn1á2rá
-jn1á2ru
-jnév1a
-jn1ing
-jn1st
-jn1ü2g
-1jo
-jo2g1a2d
-jo2g1aka
-jo2gal
-jo2g1an
-jo2g1a2z
-jo2g1á2c
-jo2g1á2l
-jo2g1e2
-jog3g
-jo2g1í
-jo2g1ol
-jo2g1or
-jo2g1osz
-jogó2
-jo2g1óv
-jo2gö
-jo2gő
-jo2gur
-jo2gü
-2j1o2koz
-2j1oks
-2j1okta
-jo2laj
-jo2lim
-joma2
-jo2m1ag
-jo2m1an
-jo2mar
-jo2m1as
-jo2m1á
-jo2m1e2
-jo2m1é2t
-jo2mév
-jom1f2
-jo2mij
-jo2m1ik
-jo2m1is
-jo2m1iv
-jo2m1ol
-jo2m1or
-jo2mö
-jo2mő
-jom1p2
-jo2mü
-jo2mű
-jonc1c
-jon2ch
-jon2cil
-jon2c3s
-2j1ond
-jo2ób
-jo2pá
-jo2pe
-jo2r1ing
-2j1orr.
-jo2rü
-2j1osto
-2j1osz
-jo2ui
-jo2uk
-jo2ul
-jo2ur
-jo2ut
-jo2va
-1jó
-jóa2k
-jóá2g
-jóá2r
-jó1bl
-jó1b2r
-jó2ce
-jó2dad
-jó2dak
-jód1all
-jó2d1a2n
-jóda2t
-jó2d1ato
-jóde2
-jó2del
-jó2dig
-jó2diz
-jó2d1ol
-jódó2
-jó2dór
-jó2dü
-jó2d3z
-jó1fl
-jó1kl
-jó1kro
-jó2l1e2s
-2j1ónn
-jó1p2r
-jó2rák
-2j1ó2ri
-jó2sal
-jó2sas
-jó2sál
-jós1árk
-jó2seg
-jó2sem
-jó2sén
-jó2sip
-jó2sis
-jó2s1o2do
-jó2sö
-jós3s
-jós1üld
-jó2s1ün
-jó2s3zár
-jó1t2r
-1jö
-jö2dé
-jö2ko
-jö2lé
-2j1önt
-jö2re
-jö2rö
-j1ösv
-j1ötv
-2j1öv.
-2jöve.
-j1ö2vez
-2j1ö2vén
-jö2zö
-1jő
-j1őrl
-jő2rö
-2j1őrt
-jő2rü
-jő2ze
-jpárba2
-jp2la
-jp2le
-jp2re
-jp2ré
-jp2ri
-jp2ro
-jp2ró
-jra3d2
-jra1f
-jrai2
-jra1p2
-jra1s2
-jrau2
-jré2sz1e2l
-jré2szí
-jsa2v1e
-jsa2v1é
-jsa2vo
-jsa2v1ón.
-jsa2v1ó2r
-jság1g
-js2ho
-js2ká
-js2ki
-js2ni
-js2pe
-js2pi
-js2po
-js2pó
-jsp2r
-j1s2ta
-js2ti
-j1s2tí
-j1s2to
-j1st2ra
-j1st2ru
-j1s2tú
-jszabás1s
-jszá2l1a2da
-jszáraz1
-jszín3n
-jsz2k
-jszt2
-j2t1a2da
-jt1a2do
-jt1a2dó
-jt1akn
-jt1a2lap
-jt1alk
-j2t1all
-j2t1alv
-jt1a2nyag
-jta1p2
-j2t1a2pá
-jt1a2rom
-j2t1arz
-jta1sp
-j2t1atk
-j2t1a2ut
-j2t1ác
-jt1ága
-j2t1áll
-jtá2rai
-j2t1á2rak
-j2t1árka
-jtá2s3z
-jt1á2t1a
-j2t1e2gy
-j2t1e2ke.
-j2t1e2leg
-j2t1e2leme
-j2telemz
-j2t1elf
-j2t1elh
-jt1eljá
-j2t1ell
-j2telmél
-j2t1e2lo
-j2t1e2lő
-j2t1elp
-j2t1elr
-j2t1els
-j2t1elv
-j2t1eml
-j2tener
-j2t1enz
-jt1e2red
-jt1e2rez
-j2t1erő
-j2t1e2tetőe
-jt1e2vés
-jt1evo
-j2t1e2vő
-j2t1é2le
-jt1élm
-j2t1érl
-j2t1érm
-jtés3s
-jt1fl
-jt1fr
-j2t1i2d
-jti2m
-j2timá
-j2t1imi
-j2t1imp
-jt1inf
-j2t1ing
-jt1int
-j2t1i2pa
-j2t1ir
-jti2s
-jt1isi
-j2t1izg
-jt1i2zo
-j2t1í2v
-j2t1í2z
-jt1kl
-jt1kr
-j2t1olda
-j2t1orjáb
-j2t1ors
-jt1osz
-j2t1o2x
-jtóa2
-jtóé2ra
-jtó1p2
-jtó1s2po
-jtó1sta
-jtó1str
-jtó1sz
-jtó1tr
-jt1ödé
-jt1öng
-jt1öss
-jtőa2
-jtőe2
-jtőé2
-jtő1s2p
-jt1pl
-jt1pr
-j1t2ran
-jtrádi2
-j1t2rág
-jt2ri
-j1t2roj
-jt2róf
-jt1sp
-jt1st
-jt1t2r
-j2t1udv
-j2t1und
-jt1utá
-j2t1új
-j2t1üg
-j2t1ü2l
-j2t1üt
-1ju
-ju2ga
-jugo1
-ju2had
-ju2h1a2k
-ju2hal
-ju2h1a2n
-juha2ra
-ju2hat
-ju2hál
-ju2h1e2
-ju2h1éj
-ju2h1is
-ju2hor
-ju2hő
-ju2hü
-2jula
-2juls
-2jural
-ju2ru
-ju2sz1a2v
-ju2szim
-ju2sz1í2
-ju2tak
-2j1u2tál
-1jú
-jú1fr
-jú2jí
-jújjáé3
-jú1pl
-jú1p2r
-jú1s2p
-jú1s2t
-jú2szó
-jú1szv
-2j1útb
-jú2ton
-2j1útv
-1jü
-jü2ge
-jü2gy
-jü2le
-jü2lé
-j1ü2lő
-j1ült
-jü2re
-jü2rí
-jü2rü
-jü2ta
-j1ü2tő
-jü2ve
-jü2ze
-1jű
-jű2ri
-jű2ző
-j2z1abl
-j2z1a2d
-jza2j
-j2z1ajá
-jz1ajt
-jza2kad
-jz1akc
-j2z1a2l
-j2z1a2ny
-j2z1ar
-j2z1as
-jza2tan
-j2z1ál
-j2z1á2rad
-j2z1á2rán
-j2z1e2l
-j2z1em
-jze2r
-jz1eré
-j2z1es
-j2z1él
-j2z1érté
-jz1fr
-jzi2g
-j2z1igé
-j2zill
-j2z1int
-j2z1i2r
-j2z1isk
-j2z1ism
-jz1k2l
-jz1k2r
-j2z1ob
-jz1okta
-j2z1olda
-j2zolvas
-j2z1osz
-j2z1ó2d
-j2z1ó2r
-jzó1s2
-j2z1ös
-j2z1öt
-jz1pl
-jz1p2r
-jz3sab
-j2zs1a2l
-j2zs1ál
-jzscsa2p1
-j2zs1eg
-j2zsen
-j2zs1er
-j2zs1in
-jz3sín
-jz3sor
-j2zs1ö2
-j2zs1ő
-jzs1s
-j2zs1u2t
-jz3sza
-jz3szá
-jz3sze
-j2z1ut
-jz1ü2g
-2k.
-1ka
-kaa2d
-kaát1
-kaáta2
-kab2a
-2kabbah
-2k1abhá
-kabi2ná
-2k1ablak.
-2k1ablaka
-2kablaká
-2k1ablakb
-2kablakh
-2kablakk
-2k1ablakok
-2k1ablakon
-2kablakos
-2k1ablakot
-2kablakr
-ka1b2le
-ka1bre
-2k1abs
-ka2cél.
-ka2c3h
-kacs1á2g
-ka2cs1ús
-ka2cü
-ka2cz
-k1adap
-2kadál
-kadás1s
-2k1a2dot
-ka2dói
-ka2dój
-2k1a2dóso
-ka2dóu
-ka2dóz
-ka1d2rá
-kaegész1
-kae2l
-kae2r
-kaé2r
-ka1f2r
-ka2gan
-2k1agg
-ka1g2r
-2k1agy.
-ka2gyu
-kai2z
-2kajánl
-2k1ajk
-2k1ajtóh
-ka2kadé
-ka2kadó
-kakas3s
-ka2kác
-2k1akc
-ka1k2l
-ka2kó.
-ka1k2ré
-ka1kri
-2k1akt.
-2k1akti
-ka1k2va
-ka2lapa
-2kalapítv
-2k1alb
-kal1egy
-2k1alf
-2k1alj.
-2k1alji
-2k1alka
-2kalko
-2k1alle
-2k1alti
-kama2te
-2k1ambu
-kana2g
-ka2nalí
-2k1a2nam
-k1a2nat
-ka2n1e2g
-ka2n1el
-2kang
-ka2nim
-ka2nio
-ka2n1iv
-ka2nol
-ka2nód
-2kante
-ka2nű
-2k1a2nya.
-2k1a2nyag
-2k1a2nyai
-ka2nyáb
-ka2nyó
-ka2óa
-ka2óá
-ka2óc
-ka2óe
-ka2óg
-ka2óha
-ka2óí
-ka2óko
-ka2ókr
-ka2óp
-ka2óü
-ka2óz
-2kapád
-ka2páto
-2kapp
-ka1p2re
-ka1p2ré
-2k1aprí
-ka1prof
-ka2r1a2d
-ka2rakk
-ka2r1a2kó
-kar1a2lap
-2k1arank
-ka2r1a2r
-kara2s
-2ka2rasz
-2karat.
-2karatn
-2karato
-ka2rau
-ka2r1ácsh
-ka2r1ácsn
-ka2r1ácst
-ka2r1ál
-2k1a2rány
-kar2c1el
-kar2dac
-kar2dál
-kar2dz
-ka2rel
-ka2rev
-kar1éke
-karé2kor
-ka2rél
-ka2r1éne
-karfe2l1
-ka2rid
-ka2r1i2ko
-ka2r1ikr
-ka2rind
-ka2r1ing.
-kar1ingb
-kar1inge
-kar1ingg
-kar1ingr
-ka2r1isk
-ka2r1ism
-kari2z
-ka2r1izo
-2k1a2roma.
-2karomá
-ka2ror
-kars2
-2k1arti
-ka2sag
-kaság1g
-ka2sál
-ka2sid
-kasi2p
-kas1ipa
-ka2siz
-ka2s1ol
-ka2s1ó2r
-ka1s2po
-kas3sze
-kas3szé
-2k1asszi
-2kasszony
-kas3sző
-kast2
-ka1str
-ka2sür
-kasz1ajt
-2kaszat
-ka2szág
-kat1ará
-ka2tél
-kat1iko
-kat1int
-ka2t1i2o
-2k1atká
-ka2tolda
-katrádi2
-ka1t2ri
-ka2tyá
-ka2ud
-2k1a2ul
-kau2n
-kau2r
-kau2s
-kau2ta
-2k1a2uto
-2k1autó.
-2kautób
-ka3utóc
-2kautóé
-2kautóh
-2kautói
-2k1autój
-2k1autók
-2kautóm
-2kautón
-2kautós
-2kautót
-2kautóv
-kaü2t
-kaü2z
-2k1a2vat
-2k1a2zon
-1ká
-2kábé
-2k1ábr
-ká2cak
-ká2ce
-2ká2c3h
-ká2có
-ká2c3sar
-ká2csat
-ká2cse
-ká2cs1ék
-ká2csip
-ká2csis
-ká2c3sor
-ká2csö
-ká2cső
-ká2cü
-ká2dab
-ká2dar
-ká2d1ác
-ká2dát
-ká2dil
-ká2dí
-ká2d1ö
-ká2d1ü2
-ká2d3z
-ká2fá
-2k1ág.
-ká2ga
-2k1ága.
-2kágacska
-ká3gacská
-2k1ágai
-2k1ágak
-2k1ágat
-2k1ágaz
-2k1á2gá
-2k1ágb
-2k1á2ge
-k1á2gé
-2k1ágg
-2k1ágh
-2k1á2gi
-2k1ágk
-2k1ágn
-2k1á2go
-2k1ágr
-2k1ágs
-2k1ágt
-2k1á2gu
-2k1á2gú
-2k1á2gy
-2k1á2hí
-ká2jö
-ká2jü
-ká2lág
-2kálái
-2kálák
-2kálán
-2káláv
-2káláz
-2k1álc
-k1áldo
-ká2l1e2
-ká2lén
-2kállamti
-2k1állap
-2k1állás
-kál2l1e2
-kállé2
-kál2lék
-2k1állí
-2k1állom
-ká2lü
-ká2lyod
-2k1á2mí
-2k1á2mu
-ká2n1ag
-ká2n1a2n
-ká2n1as
-ká2nem
-ká2n1is
-ká2n1ó2
-ká2ny1ag
-ká2ny1a2l
-ká2ny1a2n
-ká2nyap
-ká2nyar
-ká2ny1á2to
-ká2ny1e2
-ká2nyis
-ká2nyiv
-ká2nyö
-2k1á2polá
-ká2poló
-2ká2rad
-ká2r1a2g
-2k1á2rakr
-ká2rakt
-kár1akta
-kár1aktá
-ká2r1a2l
-2k1á2ram
-ká2r1a2p
-ká2rar
-ká2ras
-kár1ass
-2k1á2rat
-ká2raz
-kár1azo
-kár1áll
-ká2r1á2z
-kár1d2
-ká2r1e2
-kár1éte
-2k1á2riá
-k1árká
-kárkié2h
-ká2r1old
-ká2r1osz
-ká2rö
-ká2rő
-kárpszi2
-kárpszic3
-kár1s2
-kárt2
-kár1tr
-ká2ruh
-ká2rü
-kás1ajt
-kás1ass
-ká2s1á2go
-ká2s1á2rai
-ká2s1árak
-ká2s1á2rá
-ká2s1árb
-ká2s1á2ro
-ká2s1árr
-ká2s1árv
-ká2s1árz
-2k1á2sásá
-2kásást
-ká2s1e2
-ká2s1i2k
-ká2sim
-ká2sis
-ká2sír
-káská2r
-ká2s1ol
-ká2s1ott
-ká2só
-ká2sö
-ká2ső
-kás1p
-kást2
-kás1tr
-ká2sut
-ká2s1ü2
-2k1á2száb
-ká2szár
-kás3zár.
-2k1á2szát
-ká2sze
-ká2szé
-ká2szis
-ká2sziv
-2k1á2szom
-ká2s3zü
-ká2tab
-2k1átad
-ká2taj
-ká2tal
-kát1a2la
-ká2t1a2n
-ká2tar
-ká2tau
-ká2t1á2
-2k1átbe
-ká2t1e2
-ká2tég
-k1átfo
-ká2tip
-ká2t1ir
-ká2tis
-ká2tí
-k1átló
-2k1átme
-ká2t1osz
-kátó2
-ká2tór
-ká2t1ö
-ká2tü
-k1átvá
-kba2l1
-kbé2rel
-kb2la
-kb2le
-kb2lo
-kb2rá
-kb2ri
-kb2ro
-kb2ró
-kci2ófa
-kci2ósi
-kci2óspe
-kc2lu
-kcsa2p1á2g
-kdi2al
-kd2ra
-kd2rá
-kd2re
-kd2ro
-kd2ró
-kd2ru
-1ke
-kea2j
-kea2k
-kea2l
-kea2n
-kea2r
-kea2s
-keá2l
-keá2r
-keá2t1
-2k1eb.
-ke2bei
-ke2bek
-ke2béd
-kecs1alj
-kecs1ón
-kecs1ó2r
-ke1d2ra
-keegyez1
-kee2n
-ke2ep
-kee2s
-2k1eff
-ke1fl
-ke1f2r
-2k1e2gér
-kegész1
-2kegyb
-ke2gyék
-ke2gy1in
-2k1egyl
-2kegyn
-ke2gyö
-2kegyr
-2kegys
-ke2gyu
-ke2gy1ú
-2kegyü
-2k1e2ke.
-2k1e2kei
-2k1e2kek
-2k1e2kéé
-2k1e2kék
-ke1k2l
-ke1k2ré
-kek2sza
-2k1ekv
-2k1elad
-ke2l1an
-ke2l1a2t
-2k1elav
-ke2l1á2g
-2k1e2lef
-ke2lekc
-2k1e2lekt
-ke2l1e2l
-k1e2lemb
-2keleme
-2kelemé
-k1e2lemh
-2kelemm
-2k1e2lemn
-k1e2lemr
-2k1e2lemz
-ke2l1e2pe.
-ke2l1e2pei
-kele2p1ü2
-ke2l1e2sé
-ke2l1esze
-kele2t1el
-kele2t1o
-2keley
-ke2l1é2k
-2k1e2lél
-kel1érh
-kelés3s
-kelé2s3z
-2k1elhel
-2k1elho
-kel1id
-kel2ig
-2k1e2lim
-ke2lio
-2k1elism
-2k1e2l1í2
-2k1eljá
-k1ellá
-2kellát
-2kellená
-2kellenő
-2k1ellent
-2k1elnev
-2k1elny
-2k1e2los
-2ke2lö2l
-2k1e2lőa
-kelőé2
-2kelőfú
-ke2lőhí
-2k1e2lőí
-2k1e2lőképz
-2k1e2lőkés
-2k1e2lől
-ke2lőny
-2k1e2lőo
-ke2lőté
-2k1e2lőtt
-k1e2lőz
-k1elra
-2k1elsa
-2k1első
-2k1elszá
-kel2t1é2rő.
-2k1elto
-2keltű
-2kelül
-ke2lűr
-2k1elv.
-2k1elvá
-2k1elvei
-2k1elvek
-2k1elven
-2kelvi
-k1elvk
-2k1elvo
-2k1elvt
-2k1elvű
-ke2lyemb
-ke2ly1ékn
-kelyköz1
-2k1elz
-2k1ember
-2k1embl
-2k1embr
-2k1eml
-2k1emul
-ke2nal
-2k1enci
-kende2rül
-ken2d1ék
-2k1endo
-2k1e2ner
-2k1enge
-ke2n1ip
-ke2nis
-ke2n1o
-kens3s
-kensz2
-2k1enyv
-keo2l
-keo2r
-keó2d
-keó2h
-keó2l
-keó2r
-ke2pik
-ke2ral
-ke2rap
-ke2r1a2r
-ke2r1as
-ke2rau
-ke2r1ál
-ke2r1ár
-ke2rás
-ker2csá
-ker2csell
-kercsí2
-ker2csír
-2kerde
-2kerdő
-2k1e2rege
-2k1e2rej
-kere2k1eg
-kerekes3s
-ker1ell
-ker1elv
-ke2r1ember
-ke2r1er
-kere2ta
-kere2t1e2l
-kere2t1ö
-ke2rég
-ke2r1é2l
-ke2r1ép
-ker1éte
-ke2r1id
-ker1iga
-ke2r1ill
-ke2rim
-ke2r1ind
-ke2r1int
-ke2r1inv
-ke2rio
-ker1ist
-ke2r1iz
-ker1k2
-2kernel.
-ke2r1ol
-ke2ror
-ke2ród
-ke2r1ó2r
-ke2rőde
-ke2rőe
-ke2rőké
-ke2rőo
-ke2rősí
-ke2rőte
-kers2
-ker1sp
-ker1st
-kersz2
-ker2taj
-ker2táp
-ker2tás
-ker2t1ebbé
-ker2teg
-ker2t1este
-ker2t1esz
-ker2télv
-ker2t1é2vét
-ker2tön
-ker2töv
-ker2t1őr
-ker2t1ős
-ker1tró
-ke2rút
-kerü2g
-2k1esemé
-ke2seté
-2k1e2sett
-2k1esél
-2k1e2sés
-ke2sis
-2kesítőst
-2keskü
-2k1e2ső
-ke1s2po
-kes3széke
-kes3szó
-ke1sta
-2k1este
-2k1esté
-2k1esti
-2k1estj
-2k1estk
-2k1estn
-ke1stra
-2k1estre
-2k1estt
-2k1estün
-ke2szaj
-ke2szép
-2keszmén
-ke2tál
-ke1tc
-ke2t1e2kéh
-2k1e2teté
-ke2tid
-ke1t2ra
-ke1t2ré
-ke1t2ri
-kettes1s
-ke2tűd
-keu2r
-keu2s
-kevés3s
-ke2vid
-2k1e2vő
-keze2tés
-kezőa2
-kezőe2
-kezőkész1
-2k1ezr
-1ké
-2k1é2ber
-2k1ébr
-ké2ge
-ké2gé
-ké2gő
-2k1é2hem
-2k1é2hen
-2k1é2hes
-2kéhezé
-2kéhezt
-2k1éhs
-ké2j1ak
-ké2j1elé
-ké2jö
-ké2jut
-2k1é2ke.
-2k1é2kei
-2kékekk
-2kékem
-ké2k1e2r
-kékes3s
-kéke2s3z
-ké2kén
-ké2k1o2
-2k1é2kük
-2k1é2kű
-ké2lel
-2kéles
-2k1é2letek
-2k1é2letet
-2k1élm
-ké2lőd
-2k1é2lől
-2k1élr
-2k1é2lű
-ké2lya
-ké2ly1esz
-ké2lyid
-ké2ly1ü2l
-kéma2
-ké2mad
-ké2m1al
-ké2m1an
-ké2map
-ké2m1as
-ké2m1á
-kémi2as
-ké2min
-ké2mis
-ké2mí
-ké2mo
-ké2mö
-ké2mő
-ké2m1u2
-kéna2
-ké2n1al
-ké2nan
-ké2n1ar
-ké2n1at
-kéndio2
-2k1é2neke
-2k1é2nekh
-2k1é2neki
-2k1é2nekk
-2kénekl
-ké2n1e2l
-ké2n1em
-ké2n1er
-kén1éte
-ké2nig
-ké2nil
-ké2n1ing
-ké2no
-ké2ny1e2g
-ké2ny1elv
-ké2nyú
-ké2p1a2
-ké2p1á
-képá2r
-ké2peg
-ké2p1e2lő
-ké2p1elté
-ké2p1elv
-képe2r
-ké2p1ill
-ké2pim
-ké2p1i2p
-ké2pí
-2k1épít
-ké2p1o
-ké2pó
-ké2p1ö
-ké2pő
-kép1s
-ké2pu
-ké2pú
-ké2p1ü2lé
-ké2p1ü2lő
-kéra2
-ké2rab
-ké2ral
-ké2ram
-ké2r1an
-ké2rar
-ké2r1as
-ké2rat
-ké2r1á2
-2k1érdeke
-kér1dr
-2k1é2retts
-ké2ro
-ké2rö
-2kértelm
-2kértékb
-2k1értéke
-2k1értékh
-2k1értékn
-2k1értékr
-2k1értés
-kértő2iké
-ké2r1u2
-ké2r1ú
-kérü2
-kér1ülé
-2k1érvek
-2k1érzé
-késa2
-ké2san
-ké2s1á2
-ké2s1é2g
-ké2s1o
-ké2só
-kés3sza
-kés3szer
-kés3szél
-ké2su
-ké2süt
-ké2sza2
-kész1al
-ké2sz1á2
-ké2szeg
-késze2l
-ké2szeml
-ké2szesz
-ké2széd
-ké2sz1ékné
-ké2szin
-ké2szir
-ké2szo
-ké2sz1ó2
-ké2szö
-ké2szőr
-készt2
-ké2szu
-ké2sz1ú
-két1akar
-ké2takn
-ké2t1akó
-két1ala
-két1asp
-ké2tál
-ké2t1ed
-ké2t1eg
-ké2tel.
-ké2teln
-ké2t1e2m
-ké2t1ep
-2ké2te2r
-két1ere
-két1erk
-két1erű
-ké2tesé
-ké2t1esté
-ké2t1esz
-ké2t1e2v
-ké2t1é2
-ké2t1i2
-ké2tí
-ké2tol
-ké2t1or
-kétó2
-ké2t1ór
-ké2t1ö
-ké2tud
-ké2t1ü2
-2kétv
-2k1év.
-2k1évad
-2k1évb
-2kévei
-2k1é2vem
-2k1é2ven
-2kévet
-2k1évf
-2k1évh
-2k1é2vi.
-ké2vig
-2k1évin
-2k1évk
-2k1évn
-2k1évr
-2k1évs
-2k1évt
-2k1é2vü
-2k1évv
-ké2z1a
-ké2z1á2
-ké2zeg
-kéz1elt
-kéze2m
-kéz1eme
-ké2z1e2r
-ké2z1ism
-ké2zí
-ké2z1o
-ké2zö
-kézs2
-ké2z3sé
-kéz3st
-ké2zsu
-ké2z1u2
-kfe2l1em
-kfil2mér
-kfi2sar
-kf2jo
-kf2la
-kf2le
-kf2li
-kf2lo
-kf2ló
-kfolyói2k
-kfo2n1ó2
-kf2ra
-kf2rá
-kf2re
-kf2ri
-kf2rí
-kf2ro
-kf2rö
-kf2ru
-kg2la
-kg2nó
-kg2ra
-k1g2ráf.
-kg2ri
-kg2rí
-kg2ru
-khá2t1al
-khelyköz1
-1k2hia
-khiá2b
-k2hil
-kh2me
-1ki
-kia2d
-ki2aé
-ki2af
-kia2g
-kia2j
-kia2kar
-kia2kas
-kia2lap
-kia2lá
-kia2n
-kia2p
-kia2ra
-kia2sz
-ki2aú
-kia2v
-kiá2z
-ki1b2l
-ki1b2r
-2k1i2deá
-2k1i2deg
-2kidej
-2k1i2dét
-2kidéz
-2kidi
-ki2dio
-2kidőb
-2kidők
-2kidőm
-2k1i2dőn
-2kidőt
-ki1dró
-kie2l
-kie2m
-kie2r
-ki2eset.
-kie2t
-ki2ew
-kié2d
-kié2k
-2k1ifj
-ki1f2r
-2kiga
-ki2ga.
-2kigá
-ki2gát
-2kige
-ki2gén
-ki2géz
-ki1g2r
-ki1k2l
-ki2konn
-ki2kono
-ki1k2ré
-ki1k2ri
-ki1k2v
-2k1ille
-2kily
-ki2lye
-2k1i2ma.
-2k1i2mai
-ki2mak
-ki2máb
-2kimád
-ki2mái
-ki2máj
-ki2mák
-2k1i2mám
-ki2mán
-2kimár
-ki2mát
-ki2máv
-ki2mit
-2k1imp
-2k1i2na.
-2k1i2nai
-2k1i2náb
-2k1i2nár
-kin2csa
-kin2csá
-kin2csel
-kin2cso
-2kind
-2k1inf
-kin2gas
-2k1inj
-2k1integ
-kio2l
-kio2m
-2k1i2onn
-2k1i2ono
-2kiont.
-ki3óh
-2k1i2ón.
-2kipar
-ki1pf
-ki1p2la
-ki1ple
-ki1p2r
-2k1ips
-2k1i2rat
-2kiránn
-2kirány
-2kirg
-2k1irh
-2k1irk
-2k1i2rod
-2kirom
-2k1irr
-2k1irt
-ki2sad
-ki2s1ajtó
-ki2s1akn
-ki2sal
-ki2sap
-ki2sas
-ki2sál
-ki2s1e2c
-ki2s1elő
-ki2s1emb
-ki2s1es
-ki2s1é2k
-ki2si.
-ki2s1in
-kis1ipa
-ki2s1i2ra
-ki2s1isk
-ki1skál
-2kism
-ki1smár
-ki1s2min
-kis2nyá
-kis1oko
-ki2s1oros
-ki2sör
-ki2ső
-kisp2
-kis1pl
-ki1s2por
-ki1s2pó
-kis3sz
-kist2
-ki1s2tar
-ki1steri
-ki1stí
-ki1stop
-ki1str
-ki1stu
-ki1t2r
-kit2t1er
-kit2t1ö
-kiu2s
-kiu2t
-kiú2s
-kiú2t
-kivíz1
-2k1i2vó
-1kí
-2k1í2gé
-k1így.
-kí2ja
-kí2nal
-kí2n1árb
-kí2n1e
-kí2nél
-kí2n1ó2
-kí2rá
-2k1í2re
-2k1í2ró
-2kítm
-kítőa2
-kítőe2
-2k1ív.
-2k1ívb
-2k1í2ve
-2k1í2vé
-2k1í2vű
-kí2zé
-kí2zü
-kí2zű
-kk1abl
-k2k1a2da
-kk1ajt
-k2k1a2kad
-k2k1akk
-k2kalá
-k2k1alj
-k2k1alm
-kka2ró2ra
-k2k1a2u
-k2k1azo
-k2k1áll
-kk1árf
-kká2rok
-k2k1á2ru
-kká2s
-k2k1ásá
-k2k1áth
-k2k1átl
-kk1átu
-k2k1átv
-kk1á2zó
-kk1br
-kke2c
-kk1ecse
-kk1e2dz
-kk1e2gé
-kke2l1e2g
-k2k1e2lem
-k2k1ellő
-kke2lőá
-kk1emu
-kke2ra
-kk1erd
-kke2ró
-k2k1e2rő
-kk1e2ti
-kk1e2vé
-k2k1ég
-k2k1é2l
-k2k1épí
-k2k1érté
-k2k1érz
-kk1fr
-kk1gr
-kkiá2
-kk1i2do
-kkie2
-kk1i2ga
-k2k1igé
-k2kill
-kk1ind
-k2k1ing
-k2k1ink
-k2k1int
-kk1i2par
-k2k1i2ro
-kk1isko
-kk1ism
-k2k1í2r
-k2k1íz
-k1k2lí
-kk2ló.
-k1k2lu
-kko2laj
-kk1olló
-k2k1o2pe
-kkor2dá
-k2k1org
-kko2r1os
-kko2r1út
-k2k1orz
-k2k1oszl
-kkó1p2
-kk1ó2rá
-kkö2l
-kk1ölő
-k2k1önt
-kk1ötl
-kk1ő2ri
-kk1ő2rö
-kk1őrs
-kk1őrü
-kk1pr
-kk2ris
-kk2rit
-kk2rí
-kk1sm
-kk1sp
-kk1st
-kk1t2r
-kk1udv
-kk1urt
-k2k1utá
-k2k1új
-k2k1üg
-kk1ü2lő
-k2k1ü2t
-k2k1ü2v
-kk1üzl
-kk1űr
-kk2vó
-kla1g
-kla3ko
-kla1kri
-kla2p1áta
-kla1pla
-kla1s2k
-kla2uzá
-kláma2
-klá2mal
-klá2m1an
-klá2mas
-klá2m1á2
-klámár1a2d
-klá2m1e2g
-klá2m1eh
-klá2mel
-klá2mer
-klá2m1ér.
-klá2m1érté
-klá2m1i2k
-klá2min
-klá2mis
-klá2mol
-kleí2
-kle2t1a2n
-kle2tál
-kle2t1elv
-kle2t1e2r
-kle2t1e2v
-kle2t1ér.
-kle2t1étbe
-kle2t1é2té
-kle2t1é2ve.
-kle2tin
-k2lini
-klió2
-kli2pel
-k2lisé
-kli2só
-1k2lím
-k2loá
-k2lopf
-k2loty
-kló2rad
-kló2raj
-kló2ran
-kló2rat
-kló2ris
-kló2rol
-k2lub
-klu2b1a
-klu2bá
-klu2b1e
-klu2bir
-klu2bol
-klu2se
-klus3s
-klu2s3z
-kma1b
-kmai2ko
-kmas2
-kmá2nyan
-knag2
-knak2
-kna1kr
-kni2a2
-knika2
-kni2k1al
-kni2k1as
-kni1sz2
-knőc1c
-kn2ő3r
-1ko
-ko2áz
-ko2be
-2k1obs
-ko2cho
-2k1o2dav
-2k1o2dú
-kogás1s
-ko1g2ra
-ko2kád
-2koke2
-ko2k1er
-2k1o2k1ir
-2k1o2kí
-2k1okl
-2k1okm
-2k1o2kol
-ko2k1o2v
-2k1o2koz
-kok2sze
-2k1okta
-kol1ajt
-kol1áro
-2k1oldal
-2k1oldá
-2k1oldó
-ko2lid
-ko2l1igá
-ko2limp
-ko2l1i2na.
-ko2lita
-kol2l1ad
-kol2lál
-kol2lel
-kol2les
-kol2l1ét
-ko2lö
-2k1oltár
-2kolvas
-2k1ombu
-ko2mil
-kom2p1ér.
-kom2p1ol
-ko2n1a2d
-ko2naj
-ko2n1a2l
-ko2n1a2n
-ko2n1ar
-ko2n1as
-ko2n1au
-ko2n1ál
-2konbá
-2konbet
-konc1c
-koncé2
-kon2ch
-kon2csá
-kon2c3sor.
-kon2c3soro
-ko2n1e
-2konén
-ko2n1ér.
-2kongu
-2konhab
-ko2nir
-2konog
-ko2n1ol
-2konola
-ko2nor
-2konosn
-2konosr
-2konost
-2konpa
-2konpr
-2konrét
-2kontö
-ko2nü
-ko2nyag
-ko2nyal
-ko2nye
-ko2nyó
-konz2
-2konzs
-ko2ón
-kopá2sé
-2kopc
-ko1pro
-2kopti
-ko2r1a2d
-ko2rag
-ko2r1aj
-ko2r1a2n
-kor1ass
-ko2r1aszt
-ko2r1átl
-2k1orch
-kor2csal
-kor2dad
-kor2d1ag
-kor2d1a2s
-kor2dác
-kord1d
-kor2d1e2l
-kor2dem
-kor2des
-k1ordít
-kor2d1ö
-kor2d3z
-ko2r1e2c
-ko2reg
-ko2r1el
-ko2r1er
-ko2r1es
-kor1f2
-korgás1s
-2korie
-kor1ill
-ko2r1ing
-ko2r1inte
-kor1isk
-ko2r1i2zom
-ko2rosz
-ko2r1o2v
-ko2r1ói
-ko2rón
-ko2rö
-ko2rő
-2k1orr.
-2korrk
-2k1orrt
-kor1s2
-kor1t2r
-ko2r1úto
-ko2rü
-ko2s1as
-ko2sál
-ko2se
-kos3sze
-kos3szo
-kos3szü
-2k1ostr
-ko2sü
-ko2szal
-ko2szer
-ko2szir
-ko2szí
-k2oszo
-ko2szó
-2kosztá
-kotókész1
-kotó1st
-ko2ut
-2kovaria
-ko2vié
-ko2xi
-koza2tal
-kozókész1
-kozóköz1
-2kozóö
-1kó
-kóa2d
-kó1bl
-kóc3c
-kó2cem
-kó2ch
-kó2d1ab
-kó2dak
-kó2d1a2l
-kó2d1a2n
-kó2daz
-kód1d
-kó2d1e2l
-kó2dem
-kó2d1e2r
-kó2d1es
-kó2d1és
-kó2din
-kó2dö
-kó2dü
-kó2dzá
-kóé2r
-kó1f2r
-kói2g
-kóí2v
-kó1kré
-kó1kv
-2k1ó2né.
-kó2nét
-2k1ó2ni.
-2k1ó2no
-kó2pan
-kó2p1as
-kó2p1e2l
-kó2pir
-kópó2
-kó2p1ór
-kó2pü
-2k1ó2raa
-kó2r1a2c
-2k1ó2rai
-kó2r1a2n
-kó2ras
-kó2ráb
-kó2rád
-kó2rág
-kó2rái
-k1ó2ráj
-kó2rám
-kó2rán
-kó2rár
-kó2rát
-kó2ráv
-kó2rel
-kóre2s
-kó2réj
-kó2r1éve
-kó2r1ir
-kó2r1ok
-kóro2ka
-kóro2ko
-kór1osto
-2kóród
-kó2r1ódá
-kó2rő
-2k1ó2ságú
-kó1slá
-kó2s1os
-kó1s2pe
-kó1spi
-kó1s2po
-kó1str
-kó2s1ü2
-kó2s3zára
-2k1ó2vó
-kó2z1a2m
-1kö
-kö2ba
-köb1öll
-köb1öln
-köb1ölr
-köb1ölt
-kö2da
-kö2dá
-kö2del
-kö2der
-kö2dev
-kö2do
-kö2dó
-kö2du
-kö2dú
-kö2dz
-2k1ö2ko
-2k1ökrö
-köl2csal
-köl2csá
-köl2csel
-köl2cs1ő2
-2k1ölel
-köles3s
-2k1ö2léssz
-kö2lí
-kö2lőe
-költa2
-köl2tal
-köl2t1e2v
-2k1öng
-k1önté
-k1öntő
-k1öntv
-köny2v1a
-köny2vá
-kö2ra
-kö2rá
-k1ördö
-kö2red
-kö2r1e2g
-kö2rék
-kö2r1étt
-kör1f2
-kö2rik
-kö2r1iz
-kö2ro
-kö2ró
-kö2r1ö2l
-kö2r1ő2
-kör1p2
-kör1s2
-kört2
-kör1tr
-kö2ru
-kö2rú
-körü2l1et
-körü2lé
-kö2r1ülés
-körü2lő
-kö2r1ülő.
-2körv.
-2körvb
-2körvh
-2körvn
-2k1örvö
-2körvr
-2körvt
-2körvü
-2körvű
-2körvv
-k1öszt
-2kötlé
-k1ötvö
-2k1öv.
-2k1övb
-2k1övh
-2k1ö2vig
-2k1övr
-2k1övv
-kö2za
-kö2zá
-kö2zen
-kö2z1é2k
-kö2z1í
-kö2zo
-kö2zó
-közőe2
-kö2z3s
-kö2zu
-kö2zú
-kö2z1ü2lé
-kö2z1ü2lő
-1kő
-kőa2n
-kő1bl
-kő2ch
-kő1dra
-kőe2k
-kőe2l
-kőe2r
-kőé2l
-kőé2ne
-kő1f2r
-kő1gn
-kő1gr
-kői2t
-kő1kr
-kő1pl
-kő1pr
-kőr1an
-k1ő2rei
-kőre2s
-kőr1esz
-k1ő2ri.
-kő2ril
-kő2rip
-kő2riv
-k1őrl
-kőr1s2
-kő2rül
-2k1őrz
-kő1s2k
-kő2sö
-kő1s2t
-kő1tr
-kőu2t
-kpára2
-kpá2rad
-kpá2r1at
-kpá2r1ál
-kpá2r1út
-kp2la
-kp2le
-kp2lé
-kp2lu
-kpó2t
-kp2ra
-kp2re
-kp2ré
-kp2ri
-kp2rí
-kp2ro
-kp2ró
-kp2sz
-k2rach
-kra2chi
-1k2rajc
-k2rakk
-kra1p
-krá2sz1e
-kren2d1ő2
-k2reo
-k2repá
-1k2rémh
-1k2réml
-1k2rémr
-kré3p2
-1k2rist
-1k2riti
-kro1g2
-1krokett.
-1krokod
-kro2n1a2
-kro2ná
-kron1d2
-kro2n1e
-kro1p2
-kro1str
-kro1sz2f
-kró2mar
-kró2m1e
-kró2mis
-k2rómo
-1k2rónik
-k2rup
-k2s1a2rá
-ks1elo
-ksé2gele
-ksé2gis
-kségü2l
-ksé2g1ülé
-k1s2ká
-ks2ko
-k1s2la
-ks2lá
-ks2lu
-ks2mi
-k1s2ni
-ks2pa
-ks2pe
-ks2pi
-ks2po
-ks2pó
-ksp2r
-ks2rá
-k1s2ta
-k1s2tá
-ks2ti
-k1s2tí
-ks2to
-k1st2r
-k1s2tu
-k1s2tú
-k2sz1a2d
-kszae2
-k2szagy
-k2sz1aj
-ksza2ke
-ksza2ké
-ksza2k1ü
-k2sz1am
-ksz1any
-ksz1aré
-k2sz1ág
-kszáraz1
-k2sz1e2gy
-k2sz1ela
-k2szemu
-k2sz1eng
-k2szev
-ksz1élet
-kszé2t1
-k2sz1id
-kszilá2
-kszi2p
-ksz1ipa
-ksz1isk
-k2szír
-k2sz1old
-k2szoltó
-k2sz1osz
-kszö2g1ell
-kszö2g1elv
-kszt2
-k2szuni
-k2szut
-k2sz1üg
-k2szüt
-k2sz1ü2z
-ksz1z
-kt1a2da
-kt1ajá
-kt1a2lap
-k2t1alb
-k2t1all
-kta2n1á2s
-kta2n1ó2
-kta1p2
-k2t1arm
-kt1a2ud
-kt1azo
-kt1ábr
-ktá2lal
-kt1álló
-k2t1álm
-ktára2d
-ktá2r1ada
-ktár1adó
-ktá2raj
-ktá2r1az
-k2t1átf
-k2t1átv
-k2t1e2g
-k2t1elg
-k2t1elh
-kt1eljá
-k2t1ell
-k2t1els
-k2t1elv
-k2t1enz
-kte2rad
-kte2ral
-kte2rár
-kte2rát
-kte2reg
-kte2r1e2l
-kte2r1in
-kte2rosz
-k2t1esem
-kté2lő
-k2t1érl
-k2térmi
-k2t1érte
-k2t1éss
-k2t1é2vet
-kt1fr
-kt1gr
-k2t1id
-kti2g
-k2t1igé
-kt1ill
-kti2m
-kt1ima
-k2t1ind
-k2t1inf
-k2t1i2r
-k2t1isk
-k2t1ism
-k2t1i2vás
-k2t1íg
-k2t1í2r
-ktív1e2l
-kto1g2ra
-kto2n1á
-kt1ope
-kto2ras
-kto2r1e
-kto2rol
-k2t1ös
-k2t1öt
-kt1pr
-k1t2ran
-k1trau
-k1tréf
-k1t2rén
-k1t2rió
-ktro2ná
-k1t2rón
-kt1sp
-kt1st
-kt1sz
-kt1t2r
-ktu2m1e
-ktu2min
-ktu2sab
-ktu2s1an
-ktu2szár
-ktu2sze
-ktu2szé
-ktü2l
-k2t1ülé
-k2t1üt
-k2t1ü2v
-1ku
-kuá2r
-2k1ucc
-kue2l
-kue2r
-kue2s
-ku1f2r
-2k1u2go
-2k1ugr
-ku2gya
-2k1ujj.
-2kujja.
-2kujjad
-kuj2j1a2da
-2kujjai
-2kujjak
-2k1ujjal
-2kujjam
-2kujjas
-2kujjat
-2k1ujjá
-2kujjb
-2kujjg
-2kujjh
-2kujji
-2kujjk
-2kujjn
-2k1ujjo
-2kujjp
-2kujjr
-2kujjs
-2kujjt
-2kujju
-2kujjú
-kuk2k1ó2
-kula1k
-kul2csal
-kul2cse
-kulus1s
-ku2m1a2d
-ku2mal
-ku2mü
-ku2nad
-ku2nal
-ku2n1ás
-ku2ne
-ku2n1in
-kun3n
-ku2nor
-ku2n1ó2
-ku2nü
-2k1up.
-2kupr
-2kupu
-ku2rad
-2k1u2rai
-ku2rak
-2kural
-ku2ram
-ku2ráu
-2k1urn
-ku2rol
-kuru2c3s
-ku2sal
-ku2sas
-ku2sál
-ku2s1e2
-ku2sis
-ku2s1i2z
-ku2s1ó2
-ku2sö
-kus3sze
-ku2s1ú
-ku2sü
-ku2szal
-ku2szar
-kusz1es
-ku2sz1é2l
-ku2sz1é2p
-ku2szét
-ku2sz1il
-ku2szis
-ku2szü
-2kutaló
-2k1u2tasí
-2k1u2taz
-ku2tál
-2k1u2tán
-2k1utc
-2k1u2tol
-2k1u2tód
-ku2tóp
-ku2zs
-1kú
-kú2jí
-2k1újs
-kú2p1a2
-kú2p1á
-kú2p1e
-kú2t1a2
-kú2t1á2
-kú2t1e
-kútfé2
-kútfél1
-kú2tos
-kú2t1ő
-2kú2tu
-kú2t1ü2
-1kü
-kü2ge
-kü2gy
-2k1ü2lep
-kü2lo
-kül2t1á
-2küreg
-2k1ü2rí
-kü2rü
-2k1üst
-kü2szá
-kü2szí
-2k1ütk
-küvés3s
-2k1ü2vö
-2k1ü2ze
-1kű
-2k1űrh
-2k1űrm
-kű2ro
-kű2r1ős
-kű2zé
-kű2ző
-1k2van
-k2varc
-1k2vark
-kvá2nyol
-kvárosi2
-kvé2sel
-kvé2so
-kvés3s
-1k2vin
-1k2vitt
-k2vóc
-k2vóta
-k2vótá
-kvőcsa2
-1ky
-kyd2n
-ky2fajtán
-ky2fajtár
-ky2fajtát
-ky1i2s
-ky1i2v
-kyk2k
-kyk2ne
-ky2se
-ky2s1ü2
-ky1üz
-kza2tal
-kza2t1e2
-kza2t1ó2
-2l.
-1la
-laa2d
-laát1
-laáta2
-2labár
-3labd
-2labr
-2l1abs
-la2c1ag
-la2c1aj
-la2c1al
-la2cem
-la2c1ete
-la2c3ha
-la2ché
-lac1ita
-lac2k1orr
-lac1orr
-la2c1ö2
-la2cő
-la2csalj
-lac3ság
-la2c3sor
-lac3sül
-lac3süt
-lac3sz
-la2cú
-la2cü
-2l1a2data
-2l1a2datb
-2l1a2datk
-2l1a2datn
-2l1a2dato
-2l1a2datr
-2l1a2datt
-2l1a2datu
-ladás1s
-2l1adl
-2l1a2dog
-2ladomá
-3l2a3don
-ladói2ko
-2l1a2duk
-la1dy2
-lae2d
-lae2l
-lae2r
-laé2d
-laé2r
-2laff
-la1fl
-la2gac
-lag1a2dó
-la2g1a2n
-lag1ass
-la2g1a2t
-la2gau
-la2gav
-la2gág
-lag1áll
-lag1ár.
-lag1árá
-lag1árb
-lag1áre
-lag1á2ré
-lag1árf
-lag1árh
-lag1árk
-lag1árm
-lag1árn
-lag1á2ro
-lag1árr
-lag1árs
-lag1árt
-la2g1ere
-la2gés
-la2gid
-la2g1i2k
-la2gim
-la2gis
-la2gí
-la2g1ont
-la2g1osz
-la2góc
-la2g1ó2rá
-la2góvá
-la2gön
-la2g1ud
-la2g1ur
-la2g1ut
-la2g1ü
-la2gű
-la2gyú
-la2ire
-la2jag
-la2j1a2l
-la2jap
-la2j1ar
-laj1ass
-laj1a2sz
-la2j1az
-la2j1ál
-2lajánl
-la2j1ár.
-la2j1árh
-la2j1árn
-la2j1árs
-la2j1árt
-la2jás
-la2j1áth
-la2j1áts
-la2j1elt
-la2jen
-la2j1es
-laji2
-la2jin
-la2j1is
-la2jí
-la2j1ol
-la2j1oml
-la2j1or
-2lajoz
-la2j1ór
-la2j1ös
-la2jő
-l2ajs
-laj1sz
-la2j1u2t
-la2j1ü2
-la2kad
-lak1alj
-la2k1alm
-la2k1a2lo
-laka2t1a2n
-la2k1ác
-la2k1álk
-lak1áll
-la2k1árn
-lak1ásás
-2lakci
-la2k1eg
-la2k1e2l
-la2k1ér.
-la2kérte
-la2k1iko
-la2k1ír
-lak2k1as
-lak2kec
-lak2kel
-lak2kol
-2l1akkor
-lak2köl
-la1klu
-2laknáb
-2laknáh
-2laknás
-la2kob
-la2k1op
-la2k1orm
-la2k1osz
-la2k1ov
-2lakóz
-la2k1ös
-la1k2rém
-lak2rip
-la1k2ru
-lakt2
-2l1akt.
-2l1aktiv
-la2kuj
-2lakulá
-2lakulg
-2lakulh
-2lakulj
-2lakuln
-2lakulo
-2lakuló
-2lakuls
-2lakulu
-2lakulv
-2lakús
-la2k1ú2to
-2lakúv
-2lakza
-la2la2g1
-la2laku
-2laláí
-lalás1s
-2l1alb
-2l1alc
-2l1alf
-2laljn
-2l1alka
-2l1alkot
-2l1alku
-2l1alle
-lal2tár
-lal2te
-2l1alti.
-2laltonk
-lal2t1ó2
-lal2t1ü2
-2laltvé
-2l1alvi
-lam1ada
-la2m1aka
-la2m1any
-la2m1a2p
-la2m1ará
-la2m1a2z
-lame2g
-la2m1egy
-la2m1ele
-lam1emb
-la2m1esz
-la2mék
-lam1éle
-la2méne
-la2m1érv
-la2minv
-la2m1ism
-la2m1ist
-la2m1í2
-2l1ammó
-la2m1ol
-lam1org
-la2m1osz
-la2m1ó2r
-la2mö
-la2m1ur
-la2m1ü
-la2n1a2d
-lana2g
-la2n1aj
-la2nal
-lan1ala
-la2nam
-la2nar
-la2n1áll
-la2n1ár.
-la2n1á2rai
-la2n1á2rak
-la2n1á2rá
-la2n1árr
-la2n1árv
-lanás1s
-lan2csel
-lan2csem
-lan2csi
-lan2csol
-lan2d1ál
-lan2d1el
-lan2d1ér.
-lan2diz
-la2ner
-la2nes
-la2n1ép
-lan2g1as
-lan2gen
-lang3g
-2l1angin
-la2nil
-la2nip
-la2nis
-2l1ankét
-lan1kr
-la2n1osz
-lans2
-lan2tag
-2lantác
-la2nü
-la2nyag
-lany1a2la
-la2nyau
-2lanyái
-la2ny1ál
-2lanyán
-la2nyás
-2lanyáv
-la2ny1e2lem
-lany1e2rő
-la2ny1í2r
-la2ny1ol
-la2nyó
-la2nyü
-laó2r
-2l1a2pa.
-lap1akk
-lap1akt
-lap1a2la
-lap1alk
-la2p1atm
-la2p1att
-la2p1a2u
-la2paz
-la2páb
-la2p1á2g
-la2pák
-la2pán
-lap1á2rá
-lap1árh
-la2p1árr
-la2pe2l
-lap1ele
-la2pem
-la2p1en
-la2p1es
-la2pik
-lap1illa
-lap1ille
-la2p1im
-la2p1i2na.
-la2p1ing
-la2p1int
-la2p1i2p
-la2p1i2s
-la2p1ita
-la2p1iz
-lap2lat
-la2p1o2ku
-lap1org
-lap1orn
-lap1orz
-lapos1s
-la2pó.
-la2pób
-la2pón
-la2pór
-la2pö
-la2pő
-2lappar
-2laprí
-lap1s2
-2lapún
-2lapúv
-la2pű
-la2ra.
-la2ran
-2l1arc
-larc3c
-2l1a2rén
-lar2m1e
-lar2min
-2l1art
-2l1arz
-la1s2pa
-la1s2pi
-la1stra
-la2sz1abl
-lasz1alt.
-la2szas
-2l1a2szat
-la2szás
-la2sz1én
-la2szód
-lasz3s
-lasz2t1alj
-l1asztam
-la2sz1út
-la2t1a2d
-la2t1aj
-lat1alak
-la2t1alk
-la2t1alt
-lat1ará
-la2t1a2ro
-lat1arti
-lat1aszt
-lat1att
-la2tau
-la2taz
-la2t1áj
-lat1áll
-la2t1árad
-la2t1á2rai
-la2t1á2rak
-la2t1á2ram
-la2t1á2rat
-la2t1á2ráb
-la2t1á2ráh
-la2t1á2rán
-la2t1á2ré
-la2t1árh
-la2t1árn
-la2t1á2rok
-la2t1árr
-lat1ártá
-la2t1ártó
-la2t1á2rú
-la2t1árv
-lat1ász
-la2t1áta
-latdi2al
-la2t1e2g
-la2telem
-la2t1ell
-la2tep
-la2t1erk
-late2s
-la2t1ess
-la2tesze
-la2t1eti
-la2t1eto
-la2t1e2vő
-la2t1éke
-lat1é2ké
-lat1ékk
-la2t1é2ré
-la2t1é2rő
-la2térte
-la2t1érv
-lat1éss
-la2t1i2ko
-lat1ikra
-lat1inte
-la2t1inv
-la2t1ist
-la2t1iz
-la2t1ír
-lat1ívé
-lat1k2
-la2toj
-la2t1okm
-lat1olda
-la2toll
-lat1oml
-la2t1osz
-la2t1otth
-la2t1órá
-la2t1óri
-la2t1övi
-la2t1ö2vö
-la2t1őr
-2l1attako
-latta2n1ó2
-2lattv
-la2tut
-la2tül
-lat1üze
-latű2z
-la2t1űző
-la2tyá
-la2ub
-la2uk
-la2us
-la2uto
-laü2z
-la2vat
-2l1a2vu
-la1yé
-la1yig
-2layrő
-lazac1c
-laza2c3s
-lazma1
-2lazmá
-2l1a2zon
-1lá
-lá2bar
-lábas1s
-lá2bál
-lá2b1e2l
-lá2b1ina
-lá2b1i2z
-láb1org
-láb1orr
-lá2bö
-lá2bő
-2lábrá
-lá2b1u2s
-lá2bü
-lácsé2
-lá2csét
-lá2cs1il
-lá2csip
-lá2csí
-láda1s
-lá2d1az
-lá2d1e2r
-lá2det
-lá2dim
-lá2d1or
-lá2d1ott
-lá2d1ó
-lá2dül
-lá2dz
-lá2gab
-lá2gac
-lág1a2da
-lá2g1a2g
-lá2g1al
-lá2gan
-lá2gas
-lág1ass
-lága2t
-lá2g1atl
-lá2g1ato
-lá2g1att
-lá2gál
-lág1áll
-lá2gám
-lá2g1á2rak
-lá2g1á2ro
-lá2g1á2to
-lá2gép
-lá2gid
-lá2gigé
-lá2gim
-lá2g1ott
-lá2g1ó2
-lá2gő
-lág1s
-lá2gü
-lá2gű
-2lágyá
-2lágyo
-lá2has
-2láhe
-láí2r
-lá2lad
-lá2l1aka
-lá2l1al
-lála2n
-lá2l1any
-lá2l1ar
-lá2lau
-lá2l1ág
-lá2l1á2l
-lálás1s
-lá2l1átj
-2láldás
-2láldoz
-lá2lel
-lá2l1est
-lá2l1e2v
-lá2lél
-lá2lim
-lá2l1is
-lá2lí
-2l1állam
-2l1állat
-2l1állás
-2l1állk
-2l1állom
-2l1állv
-2lálmaim
-2lálmok.
-2lálmom
-2l1álmos
-2lálmuk
-2lálmunkb
-2lálokaih
-2lálokain
-2lálokair
-2lálokán
-2lálokát
-2lálokáu
-lá2l1o2ko
-2lálokonk
-2láloku
-lál1órá
-lálö2
-lá2l1öv
-2l1álut
-lá2l1út
-lá2lü
-lá2lű
-lá2m1a2d
-lá2m1aj
-lám1ass
-lá2m1au
-lá2m1ál
-lá2m1á2z
-lám1b2
-lám1ell
-lám1erő
-lá2mes
-lá2mék
-lá2m1érv
-lá2m1int
-lám1ist
-lá2mí
-lá2m1or
-lá2mó
-lá2mö
-lá2mő
-lá2m1út.
-lá2mü
-lá2mű
-lána2
-lá2n1ag
-lá2nal
-lá2n1an
-lá2nar
-lá2n1as
-láná2
-lá2nár
-lánc3c
-lán2cel
-lán2c1ég
-lán2csá
-lá2nem
-lá2n1er
-lá2nép
-lán2g1at
-lán2gál
-lán2g1e
-lá2nil
-lá2n1is
-lán2k1e2l
-lán2k1ó2ra
-lán2k1ö2v
-lá3nok
-lá2nol
-lán1sp
-lán1sz
-lánt2
-lán1tr
-lá2nü
-lá2nyaj
-lá2nyala
-lá2nyam
-lánya2n
-lá2nyar
-lá2ny1as
-lá2nyav
-lá2nyel
-lá2ny1ér.
-lá2nyó
-lá2nyö
-lá2pét
-lápi2
-2l1á2pol
-lá2rad
-2l1á2rai
-lá2raka
-l1á2rakb
-l1á2rakk
-l1á2rakr
-lá2r1a2l
-2l1á2ram
-2l1á2rat
-lá2r1av
-l1á2raz
-2láren
-lá2res
-l1árkot
-2l1árnya
-lár1s2
-lárt2
-lár1tr
-2láru.
-lá2rug
-2l1á2ruh
-2l1á2ruk
-2l1á2rul
-2lárus
-2l1árut
-2láruv
-lá2rúa
-lá2rü
-lá2s1a2d
-lá2s1aj
-lá2sal
-lá2s1a2r
-lá2saz
-lá2s1á2g
-lá2s1á2rai
-lá2s1árak
-lá2s1á2rá
-lá2s1árb
-lá2s1á2ré
-lá2s1árh
-lá2s1árr
-lá2s1árt
-2l1á2sás
-lá2s1á2to
-lá2se
-lásegyez1
-lá2sír
-lá2sott
-lás1otth
-lásó2
-2l1á2só.
-lás1ór
-lá2ső
-lás3szé
-lá2sut
-lá2sű
-lá2szas
-lás3zav
-2lászed
-lá2szeg
-lá2sz1e2m
-lá2szen
-lá2szip
-lászkész1
-lászö2
-lá2szöl
-lá2szöv
-lász3s
-lá2szü
-lá2taj
-lá2t1e2re
-láté2tel
-2l1áthe
-lá2t1i2o
-2l1á2tí
-2látkö
-lá2t1osz
-lá1t2rá
-lá1tri
-2l1átte
-2l1áttö
-2l1áttű
-l1átús
-2l1átvé
-l1átvi
-2lávi
-lá2viz
-2l1á2vó
-2lávu
-lá2z1adot
-lá2z1al
-lá2z1árh
-láz2árus
-3lázb
-lá2z1el
-lá2z1i2s
-lázo2
-lá2z1olt
-lá2zsal
-lá2zsan
-lá2zsó
-láz3sz
-l2b1is
-lb2li
-lb2lo
-lb2lú
-lb2ra
-lb2re
-lb2ri
-lb2ro
-lb2ró
-lb2ru
-lc1ajt
-lc1alk
-l2c1a2to
-l2c1ág
-l2c1ál
-lc3csi
-lc3cso
-lc3csö
-l2c1e2le
-lc1elr
-l2c1emb
-lc1emel
-lc1esz
-l2c1e2v
-lce2z
-l2c1eze
-l2c1ép
-lc1évi
-lc1fr
-lc3ha
-lc3há
-lc3ho
-lc3hu
-lc3hú
-lc3hü
-l2c1i2d
-lci2tér
-lc1ív
-lc1k2r
-l1c2lu
-l2c1ost
-l2c1osz
-lc1ó2r
-lc1ök
-lc1ös
-lc1pr
-l2cs1a2d
-l2csakt
-lcs1alap
-l2cs1a2n
-lcsa2p1á2g
-lcs1apr
-lcsa2r
-lcs1ara
-lcs1aro
-l2cs1a2s
-l2csaz
-lcs1ág
-l2cs1ál
-l2cs1á2t1a2
-l2csátá
-l2cs1áth
-l2cs1átj
-l2csátv
-l2csec
-l2cs1e2g
-l2c3sej
-lcs1elf
-l2cs1elt
-l2cs1elv
-lcs1emb
-lcs1eml
-l2cserd
-lcse2r1e2l
-lcs1erő
-lcs1ese
-lcse2t
-l2cs1ete
-l2csél
-l2cs1é2rés
-l2csérle
-l2csérte
-l2cs1érté
-lcs1érve
-l2cs1érvé
-lcsé2sz1ék
-l2cs1é2te
-l2cs1étk
-l2cs1é2vét
-l2csidé
-l2csimi
-l2cs1inf
-l2cs1ing
-l2cs1int
-l2cs1i2pa
-l2cs1irt
-l2cs1isk
-l2cs1ism
-l2csita
-l2cs1í2z
-lcs1k2
-l2cs1okm
-lcs1ors
-l2cs1ö2l
-lcs1ő2sé
-lcs1s
-lc3str
-lc3sug
-lcs1ült
-lc3szo
-lc3szó
-lc1tr
-l2c1uj
-lc1ül
-lc1üt
-lc3zá
-lc3zo
-ld1abl
-ld1abr
-l2d1a2cé
-ld1a2dato
-l2d1a2dá
-ldai2
-lda2lag
-lda2laj
-lda2l1e2g
-lda2lel
-lda2les
-lda2l1é2l
-lda2liz
-lda2l1í2
-lda2los
-ldalt2
-l2d1ant
-lda2nya
-lda2nyá
-ld1apó
-l2d1aran
-l2d1arc
-l2d1ark
-lda2t1as
-lda2t1eg
-lda2t1in
-lda2tós
-ld1ág
-ld1áll
-ld1álm
-ld1árn
-ldás3s
-ld1br
-ld1egy
-l2d1e2kék
-l2d1e2kén
-l2d1e2kétő
-l2d1e2l1a
-l2d1e2leme
-l2d1e2lemi
-l2d1e2lemn
-l2d1elér
-l2d1elk
-l2d1ellá
-l2d1elo
-l2d1e2lőh
-l2d1e2lővez
-l2d1els
-l2d1eltá
-l2d1elvé
-l2d1ember
-l2d1e2mel
-l2d1eml
-lde1p2
-ld1epe
-l2d1erő
-ld1e2vé
-l2d1ex
-l2d1é2g
-l2d1é2jér
-ld1élm
-l2d1ép
-l2d1érc
-l2d1éré
-l2d1é2ri
-l2d1érte
-l2d1érz
-l2d1ész
-ldé2ves
-ld1fl
-ld1fr
-ld1gl
-ld1gr
-l2d1i2ga
-l2d1igé
-l2d1ill
-l2d1imi
-ld1ind
-l2d1int
-ldi2p
-ld1ipa
-l2d1isza
-l2d1ín
-l2d1ír
-l2d1íz
-ld1kr
-ld1kv
-ldo2g1as
-l2d1ola
-l2d1old
-l2d1olt
-ld1oml
-ld1orc
-ld1org
-l2d1osz
-l2d1ó2rá
-l2d1óri
-l2d1öb
-ld1ökle
-l2d1örök
-l2d1öv
-ld1őri
-ld1ősk
-ld1pl
-ld1pr
-ld2rót
-ld1sp
-ld1st
-ld1udv
-ldu2r
-ld1ura
-ldus3s
-l2d1u2t
-l2d1új
-l2d1úr
-l2d1ú2t
-l2d1üg
-l2d1üle
-l2d1ür
-l2d1üz
-l2d1űr
-ld3zá
-ld3zó
-ld3zu
-1le
-lea2bá
-lea2d
-lea2g
-lea2k
-lea2l
-lea2n
-lea2p
-le2aré
-lea2sz
-lea2v
-leá2j
-leá2s
-leá2z
-2l1e2béd
-le2bin
-le1bla
-le1bra
-leb2rek
-leb2s
-2lecc
-2l1e2cet
-2l1ecset
-l1eddi
-le1d2res
-le1dro
-lee2s
-leé2r
-lefona2
-lefo2nal
-le1fr
-2l1eft
-le2gala
-lega2r
-le2g1a2s
-le2g1áll
-le3g2áto
-le3g2áz
-le3geb
-le2g1e2g
-le3g2elem.
-leg1ell
-le3g2előa
-le3g2előj
-le3g2előké
-le3g2előt
-le3gelőze
-le3g2elve.
-le3g2elvé
-le2gene
-le3g2erj
-le3ges.
-le3geseb
-le3gesek
-le3gesen.
-le3g2esn
-le3gesr
-le3gest
-le2g1e2sz
-legé2d
-legé2l
-le3gén
-legg2
-le2gid
-le2g1is
-legmeg1
-le3g2on
-le2góv
-le3göng
-le2g1ös
-legpec1
-legvíz1
-legyá2
-2legyb
-2legyed
-l1e2gyel
-legy1e2lőr
-l1e2gyenge
-l1e2gyék
-le3gyi
-2legyí
-2l1egyl
-le3gyo
-2legys
-l1egysé
-le3gyú
-le3gyű
-2l1egyv
-le2ic
-lei2g
-lei2rá
-lei2s
-lej2ta
-lej2t1á
-le2kad
-le2k1a2pu.
-le2k1ál
-leká2p
-le2k1ár.
-le2k1ára
-le2k1árb
-2l1e2ke.
-le2k1eg
-lek1els
-lek1emb
-lek1eme
-lek1erj
-lek1e2rő
-le2k1értő
-2l1e2kés.
-le2k1id
-le2kij
-le2k1ik
-lek1ist
-le2kiz
-lekkész1
-le1kli
-lek1olt
-le2k1orz
-le2k1ó2r
-le2k1ő2
-2lektro
-2lektró
-le2k1út
-le2küd
-2l1elad
-l1eldo
-2l1e2lekt
-lele2ma
-2lelemei
-2le2lemek
-2l1e2lemes
-2lelemz
-lele2t1a2
-lele2tel
-lele2to
-2lelég
-2l1e2l1ér
-lelés1s
-lelé2s3z
-2l1elgo
-2l1elha
-2l1elhá
-2l1elhel
-l1elho
-le2lim
-lel1ing
-le2l1iz
-2l1eljá
-2l1ellá
-2l1ellé
-2l1ellő
-2l1elméj
-2l1elmés
-2l1elnev
-2l1elnö
-2l1elny
-2l1e2los
-2l1e2l1ö2l
-2l1e2lőél
-2l1e2lőfo
-le2lőí
-le2lőszű
-l1elso
-l1elsö
-2l1elszá
-2l1elta
-l1eltáv
-2l1eltér
-2l1elto
-l1eltö
-2l1elv.
-2l1elvá
-2l1elvét
-2l1elvh
-l1elvn
-2l1elvs
-2l1elz
-2l1e2mel.
-2l1e2meld
-l1emeled
-l1emelek
-2le2melé
-l1emelés
-2l1e2melg
-le2melh
-l1emelhe
-2l1e2meli
-2l1e2melj
-l1emellek
-2l1e2meln
-le2melő
-2l1emelő.
-2lemelős
-le2mels
-le2melt
-l1emelt.
-l1emelté
-l1emeltü
-2l1e2melü
-le2melv
-l1emelve
-lem1erk
-le2m1essz
-lem1eszt
-le2m1e2ti
-le2m1ék
-le2m1éle
-lem1élte
-le2m1élv
-lem1érde
-2l1e2méss
-le2m1ill
-le2mind
-le2m1ing
-le2m1isz
-le2mita
-le2m1itt
-l1emlege
-le2mok
-le2mol
-le2m1org
-le2m1osz
-le2m1ó2r
-le2möl
-le2m1ő2
-lem1p2
-lem1u2r
-le2n1a2d
-le2nal
-le2n1ál
-le2nát
-lenc1c
-len2cel
-len2ceme
-l2end
-le2n1e2g
-le2n1e2l
-le2ner
-lene2tel
-lené2k
-le2n1éke
-le2n1ékk
-le2n1ékt
-lené2l
-len1élé
-lenés3s
-le2n1ész
-le2n1év.
-len2g1e2l
-le2nid
-le2n1ip
-le2n1o2k
-le2nol
-le2n1or
-le2n1óv
-len1őré
-len1s2p
-len1sta
-len1tra
-len1t2ren
-lenu2
-le2n1ur
-le2n1ut
-le2n1üg
-le2n1üt
-2l1enyv
-le2oa
-le2oc
-leo2k
-le2oli
-leo2m
-le2oz
-leó2c
-leö2r
-le2p1aj
-lepa2p
-lep1apa
-lep1álla
-le2p1eg
-lepe2le
-le2pék
-le2pél
-lep1illé
-lep1iz
-le1p2lo
-le2p1osz
-le2p1ó2d
-lep2p1elv
-le1p2rése
-le1p2ri
-le1pro
-le1pró
-le2p1ü2lőh
-2lerdő
-2leredm
-le2rejé
-le2r1ék
-ler1éte
-le2r1il
-le2rir
-2leróz
-2l1e2rő
-le2s1al
-le2s1ál
-l1esdé
-2lesege
-le2s1e2kéh
-2l1esemé
-l1e2setb
-2l1e2setei
-lese2tel
-2l1e2seté
-l1e2seth
-l1e2seti
-l1e2setk
-l1e2setn
-lese2t1o2
-l1e2setr
-le2sésű
-le1s2ka
-le1ski
-2leskü
-le1sla
-le1s2li
-le1sma
-le1s2mi
-le1s2p2
-les3sza
-les3szá
-le1s2tar
-le1stemp
-2l1esten
-l1estébe
-2lesti.
-le1s2til
-2l1estj
-les2t1or
-2lestr
-l1estt
-2l1eszkö
-le1szto
-le2t1ab
-le2tac
-let1a2la
-let1all
-le2t1am
-le2t1ana
-let1apr
-le2t1e2kéb
-le2t1e2la
-le2t1elb
-let1eleg
-le2t1elf
-let1elk
-let1előa
-le2t1e2lőké
-let1elr
-let1emel
-le2t1eml
-le2tene
-le2t1ent
-let1ered
-le2t1eré
-le2t1erk
-le2testé
-let1eszk
-2l1e2teté
-2l1e2teth
-2l1e2tetj
-2l1e2tetv
-le2t1éd
-le2t1é2j
-leté2l
-let1éle
-let1élé
-let1élv
-le2t1é2nekn
-le2t1érb
-le2t1é2ren
-le2t1é2ri
-le2t1érr
-le2t1értő
-let1é2rül
-leté2sz
-let1éter
-let1é2té.
-leté2vede
-let1éves
-le2t1é2véb
-le2t1évéi
-le2t1é2vér
-le2t1é2vét
-le2t1é2vév
-le2tid
-let1ikr
-let1ill
-le2tim
-le2t1ing
-le2t1ist
-leti2sz
-let1iszo
-le2tivá
-le2tod
-le2t1o2k
-le2t1on
-let1ora
-le2t1ox
-le2t1ö2v
-letőe3d
-le2t1őri
-le1traf
-let2teg
-letü2l
-le2t1ülé
-let1üzé
-2lety
-leu2g
-le2uk
-leu2r
-leu2t
-2levene
-2levení
-2levenü
-l1e2vez.
-l1e2vezg
-l1e2vezh
-l1e2vezn
-l1e2vezt
-le2vezü
-l1e2vezv
-levél1l
-le2volú
-le2xá
-le2x1el
-le2x1e2p
-lexkész1
-le2xö
-le1yé
-le2zer
-lezőa2
-lezőe2r
-lezőé2n
-lező1s2p
-2l1ezr
-1lé
-2l1ébr
-lé2ca
-lé2cá
-léc3c
-lé2c1ék
-lé2c3h
-léci2
-lé2cim
-lé2co
-lécs2
-léc3sk
-lé2d1as
-lé2d1el
-lé2d1emb
-lé2dél
-lé2d1és
-lé2dil
-lé2dos
-lé2dot
-lé2dö
-lé2d1ő2
-lée2r
-léé2r
-lé1f2r
-lé2gal
-lé2g1e2c
-2léged
-lé2g1eg
-lég1ell
-lég1els
-lé2g1em
-lé2g1e2r
-lég1ér.
-2l1é2gés
-l1éghet
-lé2gil
-2légí
-lé2g1ö
-2lé2gő
-lé1g2ráf
-l1égtem
-l1égtet
-l1égtél
-lé2gú
-2légü
-l1é2gün
-lé2gyel
-lé2gyes
-lé2gyi
-lé2gyo
-lé2gyö
-3légz
-léh1asz
-2l1é2he.
-lé2hed
-lé2h1em
-2léhes
-2léhet
-2léhező
-lé2h1é
-lé2hol
-2léhs
-2l1éj.
-2l1é2ji
-2l1éjj
-2l1éjs
-lé2kab
-lé2k1a2d
-lé2k1a2g
-lé2k1aj
-lék1aka
-lé2k1a2la
-léka2p
-lé2k1apo
-lé2k1as
-léka2t
-lék1ato
-lé2k1au
-lé2k1av
-lé2kaz
-lé2k1e2g
-lé2k1ep
-lé2kesí
-lé2k1e2sz
-lék1evé
-lé2k1é2k
-léké2l
-lé2k1éle
-lé2k1élv
-lé2k1é2te
-lé2kid
-lé2kít
-lékköz1
-lék1ors
-lé2k1osz
-lé2k1öl
-lé2kör
-lé2köz
-lé2kő
-lé2k1u2r
-lékü2l
-lé2k1ülé
-lé2k1ült
-lékve2g
-l1élc
-2l1é2le.
-2l1é2lei
-2l1é2les
-lé2léb
-lé2lén
-lé2lér
-2l1élm
-lélőkész1
-2l1élr
-lé2lük
-2l1é2lű
-2l1é2mel
-lé2nag
-léná2
-lé2neg
-lé2nekb
-2lénekl
-lé2nel
-2lénkí
-lé2no
-lé2nyö
-lé2p1a2l
-lé2p1el
-lépés3s
-2l1é2pí
-lé2pó
-2lépül
-lé2pülé
-lé3rad
-lé2ral
-lé2rap
-lé2ras
-lé2rat
-lé2rav
-lé2r1á
-2l1érc.
-2l1ércb
-2l1érde
-lé2reg
-lé2r1e2l
-lé2r1eső
-2l1é2rez.
-2l1é2rezv
-lé2r1é2j
-2l1é2rés
-2l1é2rik
-lé2ris
-lé2rit
-lé2rí
-2l1érni
-2l1érnü
-lé2r1osz
-lé2rö
-2l1é2rő.
-lé2rőd
-2l1é2rőe
-lé2rői
-2l1é2rőj
-2l1é2rők
-lé2rőn
-2l1é2rőt
-2l1é2rőv
-2lértelm
-2l1érték
-2l1értj
-2l1értő.
-lé2rut
-2lérvel
-2l1érvén
-2l1érze
-2l1érzé
-lésa2
-lé2s1aj
-lé2sak
-lé2sal
-lé2sar
-lé2s1az
-lé2s1á2
-lé2seg
-lé2s1e2l
-lé2s1eti
-lé2s1é2g
-lé2sés
-lé2s1ikr
-lé2só
-lé2s1ő
-lés3sza
-lés3szer
-lésü2l
-lé2s1ülé
-lé2s1ülő
-lé2s1üt
-lész1ék
-2lészést
-2l1észl
-lés3zse
-lé2tag
-lé2taz
-lé2t1eg
-lé2tel.
-lé2telek
-léte2leko
-lé2t1e2lem
-lé2t1e2let
-lé2telh
-lét1elha
-lé2telm
-lét1elo
-lé2t1elő
-lé2t1elv
-lé2tene
-lé2tesé
-2l1é2teth
-lé2teti
-2l1é2tetn
-lé2tev
-lé2t1ér.
-lé2t1é2te
-lé2t1is
-lé2tít
-2létl
-lé2t1o2k
-3l2étó
-lé2tóh
-lé3tól
-lé2t1ó2r
-létö2
-lét1örö
-lét2rág
-lé2tun
-2l1évad
-2l1évb
-2l1é2ve.
-2l1é2ved
-2lévei
-2l1é2vek
-2lévelf
-2léveli
-2l1é2vem
-2l1é2ven
-2l1é2vet.
-2l1é2véb
-2l1é2véh
-2l1é2véi
-2lévén
-lév1ért
-2l1é2vét
-2l1é2vév
-2l1évf
-2l1évh
-2l1é2vi.
-2l1é2vig
-lé2vir
-lé2vis
-2l1évk
-2l1évl
-2l1évm
-2l1évn
-2l1é2vó
-2l1évr
-2l1évs
-2l1évt
-2lévü
-lé2vük
-lé2vün
-2l1é2vű
-2l1évv
-2l1évz
-lfa2l1e2
-lfat2
-lfa1tr
-lf1aut
-lfá2t1i2
-lf1cl
-lf1ese
-lfe2t
-lf1eti
-lfé2l1é2v
-l2f1élm
-lfé2m1e2ké
-lfi2d1é
-lfin3n
-lfi2nos
-lf1iro
-lf1isk
-lf1kl
-lf2lo
-lf2ló
-lf2lö
-lf2lu
-l2f1okta
-l2f1ó2r
-lf1pr
-lf2ri
-l1f2rí
-l1f2ro
-lf2rö
-lf2rő
-lf1sp
-lf1sz2
-lf1ülő
-lga1p2
-lgatói2ko
-lgau2
-lgár1as
-lgés3s
-lgi2as
-lg2la
-lg2lo
-lg2ló
-lgör2cso
-l1g2ra
-lg2ru
-l2gy1ad
-l2gy1ag
-l2gyaj
-lgy1ala
-lgy1alj
-lgy1any
-l2gy1a2s
-l2gy1au
-l2gyáb
-l2gyál
-l2gyát
-l2gy1e2g
-l2gyelá
-l2gy1e2le
-l2gy1elz
-l2gyembe
-lgy1eré
-l2gy1esem
-l2gy1e2v
-l2gyél
-lgy1ér.
-l2gy1és
-l2gyid
-l2gyikr
-l2gyip
-l2gyis
-l2gy1ok
-l2gy1ol
-l2gyop
-l2gy1os
-l2gy1ó2r
-l2gy1ö2r
-l2gy1ös
-l2gy1u2t
-l2gy1út
-lhai2
-lhón1al
-1li
-li2aa
-li2aá
-li2abi
-li2abo
-lia2cé
-li2aci
-li2acs
-li2acu
-li2a1d2
-li2ae
-li2aé
-li2ag
-li2ah
-li2aid
-li2aí
-li2aj
-li2akép
-li2ala
-li2ale
-li2ali
-li2amé
-li2amo
-li2ao
-li2aó
-li2aő
-li2ap
-li2ara
-li2aré
-li2asá
-li2aso
-lia1sz
-li2asza
-li2aszá
-li2aszé
-li2aszf
-li2aszi
-li2a1t2
-li2aü
-li2av
-li2az
-li3be
-lic3sz
-li2cü
-li1cy
-li2deá
-2li2deg
-li2dén
-li2dét
-2l1i2di
-2l1i2dő
-li2ec
-lie2d
-2lien
-lié2d
-lié2k
-lié2n
-lié2vé
-lifé2l1é2v
-li2fí
-li1fl
-li1f2r
-l2ig.
-2l1i2gaz
-ligán1n
-li2ge.
-2l1i2geb
-2l1i2gek
-2l1i2gep
-li2géb
-li2géh
-li2géi
-li2géj
-li2gék
-li2gén
-li2gér
-li2gés
-li2gét
-li2gév
-li2géz
-li2hat
-2l1ihl
-2l1i2ker.
-2l1i2kerb
-lik2k1ell
-lik2k1elv
-lik2k1e2r
-lik2kérd
-li1k2l
-2l1i2konc
-2l1i2konf
-2l1i2kong
-2l1i2konig
-2l1i2konk
-2likonl
-2l1i2konm
-2l1i2konp
-2l1i2kons
-li1kré
-2lill
-2lima.
-2limád
-li2mák
-li2máv
-l1imbo
-li2me.
-lime2rá
-lim1p2
-2limpo
-limű1
-li2nakr
-li2nal
-lin1any
-lin1ará
-2linas.
-lin2cs1ö2
-2l1indu
-li2ne.
-li2neg
-linék2
-2l1inger
-lin1grá
-ling2rádi
-2l1ingré
-lin1ing
-lin1inj
-lin1kl
-lin3ny
-li2nor
-2l1integ
-2l1intéz
-li2n1u2s
-li2n1ut
-2l1i2nú
-li2oc
-lio2l
-li2oni
-li2óke
-lió2raj
-li2őá
-li2őd
-li2őe
-li2őf
-li2őg
-li2őm
-li2őp
-li2pa.
-li2pai
-li2p1aj
-li2p1á2r
-li2pát
-li2peg
-lip1ele
-li2p1elv
-li2p1esz
-li2pö
-li2p1ő2
-li1pro
-2l1i2ram
-2l1i2rat
-2l1i2rán
-2l1irh
-li2rig
-li2rod
-2l1irr
-2l1irt
-li2sál
-li2s1el
-lise2s
-li2sid
-lis1isk
-2l1iskol
-l1ism
-lis1p2
-2l1ispá
-2l1isten
-2l1istr
-li2s1ü2t
-lis1ü2v
-2l1iszl
-lisz2t1á2z
-li1sztir
-li2t1a2g
-2lital.
-li2tala
-lit1alk
-li2t1áta
-li2t1e2g
-li2t1e2l
-li2t1emb
-li2tez
-li2t1érd
-li2térte
-li2til
-lit1int
-li2t1i2o
-li2t1is
-li2t1okt
-li2t1old
-li2tön
-litő2
-li2t1őr
-l1ittak
-l1ittas
-l1ittat
-li2t1ura
-liú2t
-2l1i2vad
-li2vot
-l1i2vó
-3lix.
-l1izél
-2l1i2zén
-2lizésí
-l1izgu
-2l1izmo
-2lizzí
-2l1izzó
-1lí
-lí2gé
-lí2ja
-lí2ju
-líma1
-2l1íns
-l1í2ny
-línyenc1
-l1írd
-l1írh
-l1írj
-l1írl
-lí2rod
-lí2rog
-lí2rok
-lí2rom
-2l1í2ró
-l1írs
-l1í2ru
-lítés3s
-lítőa2
-lítő2p3r
-2lív.
-líva1
-lívak2
-2l1íz.
-2l1í2ze
-l2ízi
-lízis3s
-2l1ízl
-2l1í2zü
-l1í2zű
-l2j1a2da
-l2j1e2lő
-l2j1er
-ljes1s
-ljharc1
-l2j1ip
-l2j1ir
-l2j1iz
-lj1ír
-l2j1or
-l2j1os
-lj1pr
-lj1sp
-lj1üz
-lka1sl
-lka2tel
-lka2t1é
-lka2tin
-lka2t1ó2
-lké2p1ell
-lké2szel
-lkia2k
-lkiá2
-l1k2lin
-lk2lí
-l1k2lu
-lkö2z1ön.
-l1k2rá
-lk2reá
-l1k2rémb
-l1k2ri
-l1k2rí
-lk2rom
-l1k2ró
-lk1sh
-lkukész1
-lk2va
-lk2vá
-lk2vó
-lla2dój
-lla1f2
-lla2g1ad
-lla2gal
-lla2g1a2s
-lla2gál
-lla2gen
-lla2gép
-llag3g
-lla2gol
-ll1a2ja
-ll1akad
-l2l1akc
-ll1a2kóz
-l2l1akti
-l2l1a2lap
-l2l1alm
-lla2mad
-lla2mal
-lla2mem
-lla2mél
-lla2mor
-l2l1anal
-lla2nyer
-llany1ó2
-lla2pal
-ll1aszf
-llata2l
-lla2tala
-llat1any
-lla2t1ál
-lla2t1ár.
-llatár1a2d
-lla2t1árb
-lla2tés
-lla2tint
-lla2t1olt
-l2latomo
-lla2tors
-lla2t1ű
-l2l1aty
-l2l1aut
-l2l1á2ga
-l2l1ágb
-l2l1ágg
-ll1ágy.
-ll1ágyá
-l2l1állo
-l2l1álm
-llá2mag
-llá2m1al
-llá2m1e2
-llá2m1érté
-llá2mik
-llá2mis
-llá2m1ut
-llán2k1e2
-l2l1á2p
-llára2
-llár1ad
-llá2rak
-llá2r1á2
-llá2s1ikr
-llá2sü
-llá2sza
-l2l1átd
-l2l1átf
-l2l1á2ti
-l2l1átk
-ll1bl
-ll1br
-ll1cl
-ll1d2r
-l2l1e2dz
-ll1eff
-lle2ger
-lleg1g
-lle2gyé
-lleí2
-l2l1e2kés
-lle2l1a
-lle2lin
-l2l1ell
-l2l1e2lőa
-l2l1e2lőd
-lle2m1a2
-lle2m1á
-lle2m1e2g
-lle2mel
-ll1emelé
-llem1ell
-lle2mer
-lle2m1él
-lle2m1ér.
-lle2m1érté
-lle2m1o2
-lle2mu
-lle2na
-llen3n
-lle2n1ő2r
-llens2
-lle2r1in
-l2l1e2ró
-l2l1e2sőt
-ll1estr
-lle2tos
-l2l1e2vet
-l2l1ex
-ll1é2het
-l2l1é2jek
-llé2k1aps
-lléká2
-llé2kár
-llé2k1ol
-llé2kos
-llé2kó
-llé2k1út
-l2l1é2let.
-l2l1é2letb
-l2l1é2lete
-l2l1é2letén
-l2l1é2letét
-l2l1é2letk
-l2l1élt
-l2l1élv
-llé3nya
-llé1sp
-l2l1é2ter
-llét2o
-l2l1év.
-ll1é2vén
-ll1f2l
-ll1fr
-ll1g2r
-ll1ide
-l2l1i2ga
-l2l1igé
-ll1ill
-l2l1i2ma
-l2l1imp
-ll1ina.
-l2l1ind
-ll1inga
-l2l1ingf
-l2l1ingm
-l2l1ings
-lli2nin
-l2l1inv
-lli2p
-l2l1ipa2
-l2l1irá
-l2l1iro
-l2l1isi
-ll1isko
-l2lism
-l2l1iste
-lli2ta
-l2l1ita.
-l2lital
-l2l1izé
-ll1izma
-ll1izmá
-l2l1i2zo
-l2l1íg
-l2l1íj
-l2l1í2v
-ll1k2l
-ll1k2r
-ll1kv
-l2l1oá
-ll1obj
-l2l1off
-l2l1o2l
-ll1ope
-llos3s
-llóá2
-lló1gr
-llóó2
-lló2rák
-lló2rát
-lló2riá
-l2lóvo
-l2l1öb
-l2l1öl
-ll1önt
-l2l1ör
-ll1öss
-ll1ösz
-l2l1ö2z
-l2l1őr.
-ll1ő2rei
-l2l1ő2rö
-l2l1őrt
-l2l1ő2si
-l2l1ő2ze.
-ll1p2l
-ll1p2r
-ll2si.
-ll1sk
-ll1sp
-lls3s
-llsz2
-ll1szt
-ll1tré
-ll1tri
-ll1tró
-ll1u2bo
-l2l1ug
-ll1ult
-llus1s
-l2l1u2t
-l2l1ús
-l2l1ú2to
-l2l1üd
-l2l1üg
-l2l1ür
-l2l1üt
-l2l1üz
-l2l1űz
-llvé2d1e2l
-l2ly
-lly1ö
-l3lyw
-lma2kad
-lma1kré
-l2m1ant
-lma1trá
-l2m1att
-lmá2l
-lm1álm
-lm1álo
-lmá2nyan
-lmá2ny1út
-lmá2ris
-lm1átk
-lm1átt
-lm1bl
-lm1b2r
-lm1cl
-lm1dr
-lme3gon
-lme1kl
-lm1elb
-lm1e2li
-lm1elm
-lm1e2lő
-l2m1ember
-l2m1enc
-l2m1eng
-lmeó2
-lm1epi
-lm1e2seté
-l2m1essz
-l2m1etn
-l2m1etű
-l2m1ex
-l2m1ég
-l2m1élv
-l2m1é2neke
-l2m1ép
-l2m1értő
-l2m1éva
-lm1gl
-lm1gr
-lm1i2dő
-lmi2g
-l2m1iga
-lmigaz1
-l2m1ind
-l2m1inf
-l2m1ing
-l2m1ins
-l2m1inte
-l2m1inté
-l2m1inv
-l2m1i2p
-lm1irá
-lm1iro
-lm1isk
-lm1izz
-lm1íg
-lm1ír
-lm1íz
-lm1kl
-lm1kr
-lm1old
-lm1olv
-l2m1o2p
-lm1ors
-l2m1ov
-l2m1ódá
-lm1ó2rá
-lm1ö2k
-lm1ön
-lm1ö2r
-lm1ös
-lm1öt
-lm1ö2z
-lm1ő2r
-lm1p2l
-lm1p2r
-lm1sk
-lm1sl
-lm1sn
-lm1sp
-lm1st
-lm1sz2
-lm1t2r
-l2m1u2g
-l2m1u2r
-lm1utó
-l2m1új
-l2m1üg
-l2m1ünn
-l2m1üz
-lnak2
-lna2p1e
-lná2ris
-lné2v1á
-lni2ker
-lni2s1
-1lo
-lo2áz
-lo2b1a2r
-2lobá
-lo2b1á2c
-2lo2be
-lo2b1iv
-lo2b1ó2
-2lobu
-lo1by
-lo2ch
-lo1cy
-lo2éc
-lo2éo
-lo2ép
-lo2éz
-lo2g1a2d
-lo2gal
-lo2g1ál
-logás1s
-lo2ger
-lo2gí
-lo2g1or
-lo2gö
-lo1g2ráf.
-lo1g2ráff
-lo2g1ú
-lo2gü
-lo2ir
-lo2kab
-lo2k1a2d
-lo2k1aj
-2l1o2kak
-lo2kárb
-lo2k1á2ro
-lo2k1árr
-lo2k1áru
-lo2k1átj
-lo2káu
-lo2k1e2
-lo2kék
-lo2kid
-lok1is
-lo2k1i2z
-lo2kí
-lokka2l
-lok2k1ala
-lok2k1el
-lok2k1ó2
-lok2kös
-lok2k1ut
-lo2k1ol
-lo2konk
-lo2kor
-2l1o2koz
-lo2kü
-lo2laj
-2l1old
-2l1o2li
-2l1olló
-2l1oltár
-lom1adá
-lom1aga
-lo2m1ajt
-lom1aka
-lom1a2lap
-lom1a2lo
-lom1ará
-lom1ass
-lo2m1att
-lo2maz
-lom1ács
-lo2mág
-lo2m1ál
-lo2m1áré
-lom1ári
-lom1árk
-lo2m1árn
-lo2m1á2ro
-lomba2l
-lom2bala
-lom2bav
-lo2med
-lo2meg
-lo2men
-lom1erk
-lom1erő
-lo2m1es
-lo2méd
-lo2mék
-lo2mél
-lom1é2ne
-lo2m1éri
-lo2m1i2d
-lo2m1i2k
-lo2m1im
-lo2mink
-lom1int
-lomi2s
-lom1isz
-lo2miz
-lo2m1í2
-l1omló
-lo2m1okoz
-lo2mol
-lo2m1o2r
-lo2m1osz
-lom1ott
-lo2m1ó2
-lo2mö
-lo2mő
-lom1p2l
-lo2mü
-lo2mű
-lo2nab
-lo2n1a2d
-lo2n1a2g
-lo2naj
-lo2nak
-lo2n1a2l
-lo2n1ar
-lo2n1as
-lo2n1au
-lo2n1av
-lo2n1á2z
-lon2ch
-lon2cil
-lon2d1ó2
-lo2n1el
-lo2n1ir
-lon1k2
-lo2nol
-lo2n1ó2
-lo2nö
-lon1s2
-lon1tr
-lo2nü
-lo2oi
-lo2oj
-lo2or
-lo2ós
-lo2pap
-lop1ál
-lo2pe
-lop1e2l
-lo2piz
-lo2pí
-lo2p1o2r
-lo2p1osz
-lo2pö
-lop2p1in
-lop1t2
-2l1opti
-lo2pü
-lor2din
-lore2t
-2l1org
-2l1orm
-2lorn
-2l1ors
-2l1orv
-2l1orz
-l2os.
-l2osa
-l2osb
-lo2se
-lo2sü
-lo1t2ha
-2lottl
-lo2xá
-lo2xi
-1ló
-lóa2d
-lóá2r
-ló1bl
-ló1br
-lóc3c
-ló2cem
-ló2ch
-lócsa2p1á2g
-2l1ó2dát
-ló1dro
-lófé2l1é2v
-lófi2úké
-ló1fl
-lóg1g
-ló2gí
-ló1grá
-lóí2v
-ló1k2l
-ló1kré
-ló2nar
-2l1ó2ni.
-2lónn
-2lóno
-2lónr
-2lónt
-lópárba2
-ló1p2l
-ló1p2r
-ló2rac
-lór1ada
-lór1a2la
-lóra2n
-lór1any
-ló2rar
-2lórái
-2lóráj
-ló2rámr
-2lórár
-2lórát
-ló2rem
-ló2r1e2s
-ló2r1ér
-ló2r1ing
-lór1ism
-ló2rí
-lór1old
-ló2rü
-ló2s1aj
-lósa2n
-lós1any
-ló1ski
-ló1sla
-ló1spe
-ló1s2po
-ló1s2rá
-lós3s
-ló1s2ta
-ló1str
-ló1sz
-ló1t2rá
-ló1tre
-ló1tré
-ló1tri
-ló1tro
-2lóvod
-l1ó2vó
-ló2zad
-ló2z1a2k
-ló2zal
-lóza2n
-lóz1any
-lóza2t1e
-ló2zál
-ló2z1es
-ló2zim
-ló2z1ir
-lóz1isk
-lóz1ism
-ló2zolv
-ló2ző
-ló2zü
-ló2z1ű
-1lö
-lö2bö
-lö2ca
-löc3c
-lö2ch
-lö2cő
-2l1ö2dé
-lö2ka
-lö2ká
-lö2ko
-l1öldö
-löl2t1a
-löl2tá
-2l1öltés
-l1ölthe
-löl2to
-l1öltöt
-l1öltöz
-l1öltő
-2l1öml
-lö2möl
-lö2na
-lö2ná
-lön2b1ékét
-lö2ne
-lö2né
-lö2n1o
-lö2nó
-lö2nu
-lö2nú
-lö2pa
-lö2pá
-lö2pe
-lö2pöl
-löpü2
-lö2p1ülé
-lö2p1ülő
-lö2re
-lö2rö
-lös3szá
-2lössze
-lö2sü
-lö2sze
-lö2szis
-2l1ötl
-löt2ter
-2l1ötv
-2l1öv.
-2l1övb
-l1ö2ve.
-l1ö2vez
-2l1övh
-2l1övn
-l1ö2vön
-2l1övr
-l1ö2vük
-2l1övv
-1lő
-lőa2c
-lőa2n
-lőá2g
-lő1bl
-lő1br
-lő2dad
-lő2dá
-2lőde.
-2lődei
-lő2del
-lő2d1ék
-lő2din
-lő2d1iv
-2lődje.
-2lődjét
-lődköz1
-2lődöke
-2lődökn
-2lődökr
-2lődöt.
-lő2d3ze
-lőe2l
-lőe2s
-2lőesé
-lő1fl
-lő1f2r
-lőgépi2
-lőgé2p1ip
-l1őgyel
-2lőhű
-lői2ta
-2lőít
-2lőkése
-lő1kl
-lőko2r1út
-lő1kv
-2lőlege
-2lőnn
-2lőny.
-lő2nyal
-lő2nyár
-2lőnyb
-2lőnye.
-2lőnyei
-lő2ny1elvi
-2lőnyéb
-2lőnyén
-2lőnyér
-2lőnyét
-2lőnyév
-2lőnyh
-2lőnyk
-2lőnyn
-2lőnyö
-2lőnyr
-2lőnyt
-2lőnyü
-lőőr2s1é2g
-2lőpán
-lő1pl
-lő1pr
-lő1ps
-2lőreh
-2lőrej
-lőre3m
-2lőret
-2lőréb
-lő2r1is
-lő2rül
-2l1őrz
-lő2sál
-lő2sin
-lő1s2ka
-lő1ská
-lő1sla
-lősó2
-lő2sór
-lő2s1ót
-lő2ső
-lő1s2pi
-lő1spr
-lő1srá
-lős3s
-lős2tar
-lő1str
-lő1sy
-lősz2
-lős3zára
-lős3zárr
-lő1szf
-l1ő2szít
-lő1szt
-2lőtét.
-2lőtolá
-lő1tre
-lőu2t
-lőü2l
-2lővig
-2l1ő2zét
-2lőzié
-2lőzl
-2lőzm
-2l1ő2zük
-lp1a2lag
-l2p1a2lap
-l2p1alát
-l2p1a2láv
-l2p1alk
-lpanto1
-l2p1any
-l2p1áll
-l2p1átm
-l2p1áts
-lpcsa2p1
-l2p1eg
-lp1e2lu
-l2p1e2m
-lpen1n
-l2p1e2rő
-l2p1ég
-lpé2l
-l2p1éle
-lpé2r
-l2p1éri
-l2p1i2d
-l2p1i2na
-lp1izm
-lp1i2zo
-l2p1ív
-l1p2lá
-l2p1old
-lpo2n
-lpon1á
-lp1p2r
-l1prd
-l1p2ri
-l1p2ro
-l1p2rób
-lpu2s
-lp1uszo
-lrá2k1e
-lrei2
-lre1p2ré
-lre1sz
-lreü2
-lsa2v1a2m
-lság3g
-ls1eprik
-ls2ho
-ls2ka
-ls2ká
-ls2ki
-ls2la
-ls2lá
-ls2li
-ls2ma
-ls2mi
-lsors1s
-lsóé2r
-lső1sz2
-l1s2pa
-l1s2pe
-l1s2pé
-l1s2pi
-l1s2po
-l1s2pó
-l1sp2r
-l1s2rá
-l1s2ró
-l1s2ta
-ls2tá
-lste2i
-l1s2ti
-l1s2tí
-l1s2to
-l1st2r
-l1s2tu
-l1s2tú
-lsza2ké
-lsza2k1ü
-lszá2rú
-l2sz1e2gű
-l1sz2f
-l1sz2l
-l1sz2p
-lszt2
-lsz2tá
-l1sztr
-l1sz2v
-lta2gyá
-lt1ajá
-lta2lapb
-lta2l1á2s
-lta2l1á2z
-lta2len
-lta2l1ev
-lta2l1é2
-lta2liz
-ltal1l
-lta2lö
-l2t1amp
-l2t1apr
-lt1ará
-l2t1arc
-lta2riá
-lt1assz
-lt1aszt
-l2t1a2u
-lt1azo
-lt1ág.
-lt1á2ga
-lt1ágb
-lt1ágg
-lt1ágn
-lt1ágr
-l2t1áll
-ltána2
-ltá2nan
-ltá2rada
-ltár2s1ág
-lt1árur
-ltá2s1á2g
-ltá2tal
-l2t1átr
-lt1bl
-lt1br
-l2t1ell
-l2t1elö
-l2t1emu
-lte2rad
-l2t1e2reik
-l2t1erő
-l2teru
-lte2t1a2
-lte2ték
-l2t1ékné
-lté2l
-lt1éle
-lt1élm
-lt1érc
-l2t1érz
-lté2sa
-lté2s1é2g
-ltés3s
-lté2t1é2
-lté2ves.
-lt1fl
-lt1gl
-lt1gr
-lt1ide
-ltig2
-l2t1i2gé
-lti1kl
-l2t1ill
-lt1imp
-l2t1ind
-l2t1ing
-l2t1i2o
-l2t1isi
-lt1ism
-l2t1ist
-l2t1i2ta
-l2t1ín
-l2t1í2r
-lt1ít
-l2t1í2v
-ltív1e2l
-l2t1í2z
-lt1kr
-l2t1oml
-l2t1ord
-l2t1org
-l2t1orj
-l2t1orr
-lt1ors
-ltos3s
-l2t1o2x
-ltó1p
-ltó1s2p
-ltó1sz
-ltót2
-ltö2l
-l2t1ölé
-lt1önt
-lt1öss
-ltőa2
-ltőe2l
-lt1ő2rö
-lt1pl
-lt1pr
-ltra1s
-lt2rág
-lt2rén
-lt2rik
-lt2ril
-lt2róf
-l1t2rón
-lt2róp
-ltsé2g1el
-lt1sl
-lt1sp
-lt1st
-lt1t2r
-l2t1udv
-l2t1una
-ltu2n1i
-lt1ura
-ltu2sze
-l2t1u2t
-ltú2ri
-l2t1üg
-lt1ü2lé
-lt1üst
-l2t1ü2v
-lt1ü2zem
-1lu
-lua2g
-luá2r
-lu2b1a2d
-lu2bal
-luba2n
-lu2b1as
-lu2bár
-lu2b1e2g
-lube2r
-lu2bes
-lu2bél
-lu2b1in
-lubó2
-lu2bór
-lu2bö
-lub1t2
-lu2bü
-2ludj
-2ludv
-lu1dy
-lue2l
-lu2esé
-lugas1s
-lu2gat
-lu1g2l
-2l1u2gor
-2l1ugr
-lui2r
-2l1ujj
-lu1kl
-lu2k1os
-lu2k1o2v
-lu2l1inf
-lu2lí
-2lulr
-lu2mad
-lu2maz
-lu2mál
-lumen1n
-lu2mer
-lu2mes
-lu2m1i2k
-lu2m1ip
-2lumí
-lum2pel
-2lund
-l1unh
-2l1u2ni
-l1unj
-l1unl
-l1unn
-l1u2no
-l1u2nó
-l1unv
-lu2rak
-lu2ram
-lu2rat
-2l1u2ru
-2l1u2rú
-lu2sad
-lu2s1aka
-lu2sakr
-lu2sal
-lu2s1a2n
-lu2s1ág
-lu2sál
-lu2s1e2r
-lu2s1érté
-lu2sim
-lu2sis
-lu2sír
-luskész1
-lu2s1ó2
-lusö2
-lu2sör
-lu2ső
-lus3sze
-lus3szi
-lust2
-2lutánz
-2l1utc
-lu1t2h
-lu2tód
-lu1tra
-lu2zs
-1lú
-lú2d1a
-lú2dá
-lú2de
-lú2dét
-lú2d3z
-lú2ga
-lú2g1á
-lú2ge
-lúg3g
-lú2gi
-lú2gol
-2l1újd
-2l1ú2jí
-lú2ju
-lú2ri
-lú2ru
-lú2rü
-2l1ú2sz
-lú2té.
-2l1útv
-lú2z1a2n
-1lü
-lü2cs
-lü2dí
-lü2dü
-lü2ge
-lü2gy
-lü2lá
-l1üldö
-lü2lel
-lü2l1e2m
-l1ülep
-lü2lé
-lül1ér
-2l1ülés
-2l1ülhet.
-2l1ülhetne
-2l1ülhets
-lü2lí
-2l1üljek
-2l1ülnek
-2l1ülnék
-2l1ülni
-2l1ü2lö
-2l1ü2lő
-2l1ülsz.
-2l1ült.
-l1ülte.
-2l1ültek
-2l1ültem
-2l1ültes
-2l1ültet.
-2l1ültete
-2l1ülteti
-2l1ültetj
-2lültetl
-2l1ültetn
-2lültets
-2l1ültett
-2l1ültetü
-2l1ültetv
-2lülté
-l1ültéi
-l1ülték
-l1ültél
-l1ültén
-l1ültér
-l1ültét
-l1ültn
-2l1ültü
-lü2lú
-lü2lü
-2l1ülün
-2l1ülve.
-2l1ünn
-lü2re
-lü2rí
-lü2rü
-lü2sz
-lü2te
-lü2té
-lü2ti
-lü2tö
-lü2tő
-lü2tü
-lü2ve
-lü2vö
-lü2ze
-lü2zé
-1lű
-lű2rá
-2l1űrb
-2l1ű2ri
-l1űrl
-lű2ze
-lű2zé
-lű2zi
-lű2zö
-lű2ző
-lű2zü
-lva2dat
-l2v1adm
-lvaj1ak
-lva2j1e
-lv1akad
-l2v1akc
-l2v1a2la
-l2v1alg
-l2v1alk
-l2v1ant
-l2v1a2ny
-l2v1a2rás
-l2v1a2z
-lvá2gy1ón
-l2v1állat
-l2v1állt
-l2v1áp
-lvá2rain
-l2v1á2rak.
-lvá2ras
-lvá2rár
-l2v1árny
-lvá2rol
-l2v1á2rul
-lvás3s
-lvá2szi
-lv1áta
-lv1áth
-lv1átk
-lv1br
-l2v1e2dz
-lv1egys
-lv1egyv
-lv1e2kéb
-l2ve2leme
-l2v1elk
-l2v1ell
-l2v1eró
-l2v1ex
-l2v1é2gés
-lvé2gül
-l2v1élm
-l2v1é2neke
-l2v1ép
-lvé2ri.
-l2vértel
-l2v1érté
-l2v1é2rü
-l2vérzési
-lvé2sza
-lv1fr
-l2v1i2de
-l2v1i2do
-l2v1iga
-lv1iko
-l2v1i2m
-lv1inté
-lv1i2pa
-l2v1iro
-l2v1irt
-l2v1isko
-l2v1ism
-l2v1izm
-l2v1izo
-l2v1í2ve
-lvíze2
-lvíz1es
-lv1kl
-lv1kr
-l2v1ok
-l2v1old
-l2v1olv
-l2v1onto
-l2v1op
-l2v1or
-l2v1os
-lv1ödé
-lvö2l
-l2v1ölé
-l2v1ölt
-l2v1ön
-l2v1ös
-l2v1öv
-l2v1ö2z
-lv1ő2r
-lv1ős
-lv1pr
-lv1ps
-lv1sp
-lv1st
-l2v1ut
-lv1új
-l2v1üg
-l2v1üt
-l2y
-1lya
-lya2dat
-2ly1adm
-2ly1a2dó
-2lyagy.
-2lyagyr
-2lyajt
-2ly1a2kas
-ly1akc
-2ly1akná
-2lyakós
-2lyakt
-ly1a2lat
-2ly1alb
-2ly1alk
-2ly1alm
-ly1a2lom
-ly1alt
-lya2maj
-lya2mará
-lya2m1el
-lya2mem
-lya2m1érté
-2lyang
-2lyani
-lya2nyag
-ly1a2nyá
-ly1a2pán
-lya1p2r
-2ly1arc
-lya2sal
-ly1aspe
-ly1assz
-2ly1atl
-lya1t2r
-2lyaty
-2lyazo
-1lyá
-2lyábé
-2lyábr
-2ly1ág
-ly1áld
-ly1áll
-2ly1áp
-2ly1á2rad
-2ly1á2rak
-2ly1á2ram
-2ly1á2rat
-ly1árk
-2ly1árn
-2ly1árr
-2ly1á2ru
-lyás3s
-lyá2sz
-2lyáta
-2lyátf
-2lyáth
-2lyátlá
-2lyátlé
-2lyátm
-2lyáts
-2lyátt
-2lyátv
-ly1bl
-ly1br
-ly1dr
-1lye
-lye2ga
-ly1e2gye
-lyegyez1
-ly1ej
-2lyeke.
-2lyekek
-2ly1e2kéb
-2ly1e2kérő
-ly1e2le
-ly1elf
-ly1elh
-ly1ell
-ly1elm
-ly1e2lő
-ly1elr
-ly1els
-ly1elt
-ly1elü
-ly1elv
-ly1elz
-lye2m1a
-2lyember
-2ly1e2mel
-lye2min
-2lyemlí
-2ly1eng
-ly1erk
-ly1e2rő
-2ly1esd
-2ly1esemé
-2ly1e2sete
-2lyeseté
-2ly1e2sett
-2lyesél
-2ly1e2sés
-2ly1este
-2lyeszk
-2lyeszm
-2lyeszű
-2lyetet
-2lyevő
-2ly1ex
-1lyé
-2ly1ég
-2lyéhe.
-2lyéhen
-2lyéhet
-lyé2l
-ly1éle
-ly1élm
-2lyéneke
-2ly1ép
-2ly1ér.
-2ly1érc
-2ly1érd
-2ly1é2ré
-2ly1érm
-2lyérő.
-2lyérői
-2lyérők
-2ly1érr
-2ly1érte
-2ly1érté
-2ly1é2rü
-2ly1érv
-2ly1érz
-ly1ész
-2ly1étt
-2lyév.
-2lyéve.
-2lyévei
-2lyévek
-2lyéven
-2lyévet
-2lyévév
-2lyévi
-2lyévr
-2lyévv
-ly1fl
-lyf1ölt
-ly1gl
-ly1gr
-1lyi
-2lyibo
-2lyideá
-2lyideg
-2lyiden
-2lyidi
-2ly1ido
-2lyidő
-lyié2h
-lyi2g
-2lyiga
-2lyigá
-2ly1ige
-2ly1igé
-2ly1iha
-2ly1ill
-ly1ima
-2lyimá
-2lyimp
-2lyind
-2lyinf
-2ly1ing
-2ly1ini
-2ly1int
-2lyinv
-2ly1i2p
-ly1i2rat
-2lyirá
-2lyiri
-2ly1iro
-2lyirr
-2lyirt
-2ly1isk
-2lyism
-2lyisp
-2lyist
-2ly1ita
-2lyivad
-2ly1i2z
-1lyí
-2ly1íg
-2ly1ín
-2ly1í2r
-ly1ív
-ly2kiz
-ly1kl
-ly1kró
-1lyn.
-1lyo
-2ly1ob
-2lyodú
-2ly1of
-2lyokal
-2ly1okl
-2lyokm
-2lyokoz
-2lyokta
-lyo2l
-ly1ola
-ly1old
-ly1oll
-ly1olt
-ly1olv
-lyo2m1as
-2ly1op
-2ly1o2r
-2ly1osz
-2ly1ott
-1lyó
-ly1ódá
-lyó2s1á
-1lyö
-2ly1öb
-2ly1ö2l
-2ly1ö2r
-ly1öss
-2ly1öv
-1lyő
-ly1ő2r
-ly1pl
-ly1pr
-lyrádi2
-lyre1p
-1lys.
-ly1sk
-ly1sp
-lys2t
-lyszá2m1é
-ly2tac
-ly1t2r
-1lyu
-2ly1ud
-2lyugr
-2ly1uh
-2ly1uj
-lyu2kás
-2lyuni
-2ly1u2r
-2ly1u2t
-1lyú
-2lyújs
-2ly1úr.
-2lyúth
-2lyútr
-2lyútt
-2lyútv
-1lyü
-2ly1üd
-2ly1üg
-2lyünn
-2ly1ür
-2ly1ü2v
-2ly1üz
-1lyű
-2ly1űr.
-2ly1űrh
-2ly1űrl
-1lywo
-lyze2t1el
-lzás1s
-lze2ta
-lze2t1e2l
-lze2t1ér.
-lzé2sa
-lzőa2
-lzőe2
-lző2s1orr
-lzus3s
-lzu2s3z
-2m.
-1ma
-maa2d
-ma1bra
-2m1abs
-ma2cél.
-ma2célb
-ma2célt
-2madag
-2m1adap
-ma2datb
-ma2dato
-ma2datt
-madás1s
-ma2d1é2v
-madókész1
-ma2dóz
-3m2a3dz
-mae2r
-maé2r
-ma1f2ra
-ma1fri
-ma2gac
-ma2g1a2dato
-ma2g1a2dá
-ma2g1a2dó
-ma2g1a2du
-maga2l
-mag1ala
-ma2ga2n
-mag1any
-maga2r
-mag1ara
-magas1s
-ma2g1asza
-mag1azo
-ma2gág
-mag1áll
-mag1á2ré
-mag1árn
-mag1árr
-mag1árt
-mag1áta
-ma2g1áto
-ma2geb
-ma2g1el
-2m1aggr
-ma2gid
-ma2g1i2k
-ma2g1í
-magkia3dó
-ma2g1or
-ma2g1osz
-mag1óra
-ma2g1óv
-ma2g1u2r
-ma2g1ü2
-2m1agy.
-2m1agyb
-2m1a2gyu
-m1ahh
-ma2il.
-ma2ilt
-mai2z
-2m1ajta
-maj2ti
-ma2kará
-ma2kác
-2m1akc
-mak2k1e2
-2makkr
-2m1akku
-ma1klu
-2m1a2kol.
-ma1k2rém
-ma1k2ri
-2makro
-m1akti
-ma2kus
-malac3há
-mala2c3s
-2malag
-mala2g1ú
-ma2laku
-2m1alakz
-2m1a2lan
-2m1a2lapí
-malasz2t1a
-2m1alb
-2m1alc
-2m1ald
-2malg
-m1algo
-2m1alj
-2m1alk
-malo2m1e
-mal1os
-m1alr
-2m1alt.
-mal1th
-2m1a2lu
-2malv
-2m1amp
-2m1a2nal
-ma2nat
-2maná
-ma2n1eg
-2m1angi
-2m1anto
-2m1antr
-2m1a2nya.
-ma2nyag
-2m1a2nyá
-2m1a2nyó
-mao2k
-ma2pa.
-ma2pas
-2m1a2pát
-ma1p2l
-ma1p2re
-ma1p2ré
-ma1p2ri
-ma1p2ro
-2m1aps
-2m1a2rány
-2m1arb
-2m1arc.
-2m1arcc
-2m1arch
-mar1cko
-2m1arcu
-2m1arcú
-2m1a2rén
-ma2r1i2si
-mar2k1al
-mar2k1in
-mar2k1ón
-mar2k1ó2r
-2marm
-maro2k1
-ma2romá
-maros1s
-marók2
-maró1kh
-maró1kk
-maró1kn
-maró1kr
-ma1ry
-2m1arz
-ma1s2ká
-ma1s2pe
-ma1spr
-ma1s2rá
-mast2
-ma1s2ta
-ma1ste
-ma1str
-masz1egy
-masz1e2me
-ma2sz1ét
-ma2szév
-ma2szis
-maszí2v
-masz1íve
-masz1ös
-mat1ada
-mat1alap
-mat1anya
-ma2taz
-ma2tág
-matá2raka
-ma2t1á2ras
-mat1á2rár
-ma2t1árn
-ma2t1á2rú
-ma2t1áz
-ma2t1e2g
-mat1eli
-ma2t1ell
-mat1elő
-mat1elt
-ma2t1eme
-mate2s
-ma2tél
-ma2t1érte
-matfé2
-matfél1
-matfélé2
-ma2tid
-ma2t1ind
-ma2t1inf
-ma2t1ing
-ma2t1int
-ma2t1örö
-ma1t2ran
-mat2rág
-mat2tin
-ma2t1ut
-2m1a2tya
-ma2tyá
-2m1a2uk
-mau2ra
-ma2uri
-ma2us
-mau2ta
-2m1a2uto
-2m1a2vat
-ma2z1a2l
-ma2zál
-ma2z1átl
-ma2zel
-mazókész1
-ma2z3sű
-1má
-2m1á2bé
-2m1ábr
-má2cs1as
-má2cs1e2
-má2csin
-má2csir
-má2csis
-má2csó
-má2csü
-má2fá
-2m1ág.
-2m1á2ga
-2m1á2gá
-2m1ágb
-2m1á2gé
-2m1ágg
-má2gi.
-2m1á2gig
-2m1ágk
-m1ágna
-2mágo
-2mágó
-2m1ágr
-má2guk
-má2gun
-2m1á2gú
-2m1á2gy
-mágya2d
-mágy1ada
-má2hí
-má2jan
-má2j1árt
-má2j1e2
-májo2
-má2j1ol
-májren2
-má2j1ul
-má2jü
-máka2
-má2k1al
-má2kar
-má2k1e2
-má2k1ér.
-má2kil
-má2k1ó
-má2kő
-má2k1ü
-má2l1a2l
-2m1álar
-má2lál
-2m1álc
-má2l1e2
-mál1ért
-2m1állam
-m1állap
-m1állat
-2m1állí
-m1állom
-2m1álma
-2m1álmo
-má2los
-má2m1as
-2m1á2mí
-mána2
-má2n1as
-má2nav
-má2nár
-mánc1c
-mán2ce
-mán2c1ég
-mán2cip
-mán2csé
-má2n1e
-má2n1in
-má2nis
-má2n1it
-má2n1ö2
-má2nő
-máns3s
-mán2tac
-mán2tag
-mán2t1al
-mán2t1as
-mántá2
-mán2t1ék
-mán2t1öl
-má2nú
-má2nü
-má2ny1a2d
-má2ny1a2g
-má2nyaj
-má2ny1aka
-má2ny1a2l
-mánya2n
-má2nyany
-má2nyap
-má2nyar
-má2nyau
-má2nyav
-má2nyaz
-má2ny1e2
-má2ny1ér.
-má2nyérd
-má2nyérz
-má2ny1í2
-má2ny1ó2
-má2nyö
-má2po
-2m1á2rad
-má2r1a2g
-2máram
-má2r1a2n
-má2ras
-már1ass
-2m1á2rat
-má2r1au
-má2r1ál
-má2re2
-már1em
-má2rés
-má2r1id
-má2r1ik
-má2r1i2p
-má2r1i2si
-már1isk
-már1istá
-má2rí
-2márkok
-2márol
-má2rö
-má2rő
-má2rug
-m1á2ruh
-má2ruk
-m1árur
-má2rü
-má2s1a2d
-má2sal
-má2sap
-má2s1a2r
-má2s1av
-má2saz
-má2s1á2rá
-má2s1árn
-má2sás
-2m1ásásá
-2m1ásásn
-2m1ásásr
-másbe2j1
-másbejá2
-má2s1e2
-má2sír
-má2sor
-2m1á2só
-má2sö
-má2ső
-mást2
-más1tr
-má2s1ü2
-más3zav
-2m1á2ta
-mát1a2k
-2m1á2tá
-2m1átc
-2m1átd
-máte2
-má2ten
-2máté
-2m1átf
-2m1átg
-2m1áth
-2m1á2tir
-2m1á2tí
-m1átj
-2m1átló
-2m1átn
-má2t1ol
-2m1á2t1ö
-2m1átp
-2m1átre
-2m1áts
-2m1átte
-2m1á2tú
-2m1á2tü
-2m1átv
-má2zal
-má2ze
-mázi2a
-mázi2é
-má2z1i2s
-má2ző
-má2zsal
-mázs1e
-máz3sz
-mb1akc
-m2b1akk
-mba1k2r
-mb1akv
-m2b1a2lag
-m2b1alj
-m2b1alk
-m2b1a2na
-m2b1a2nya
-mba1p
-mb1a2var
-mb1a2zo
-mb1á2gy
-m2b1áll
-m2b1á2ron
-m2b1árró
-mbá2száv
-m2b1ászná
-m2b1á2szoka
-m2b1á2szokk
-m2b1á2szoko
-m2b1á2szokr
-m2b1áta
-m2b1áth
-mbeá2
-mb1e2ce
-mbe1k2
-mbe2led
-mb1e2leg
-m2b1ell
-mb1elr
-mb1elsz
-mb1epe
-mbe2r1a2g
-mbe2ral
-mbe2ran
-mbe2ras
-mbe2rá
-mbe2reg
-mbere2sz
-mber1eszű
-mbe2rev
-mbe2r1él
-mbe2r1é2s
-mbe2rimá
-mbe2ring
-mbe2risz
-mbe2rol
-mbe2ros
-mbert2
-mbe2r1ú
-m2b1é2g
-mb1é2ke
-m2b1ékí
-m2b1ép
-mbé2ress
-m2b1érté
-m2b1érz
-mb1gr
-m2b1ide
-mbi2k1al
-mbi2ke
-m2b1illa
-m2b1i2na.
-m2b1i2nai
-m2binam
-mb1ind
-m2b1inf
-m2b1ing.
-mb1inv
-m2b1ipa
-m2b1izm
-mb1i2zom
-m2b1izz
-m2b1ív
-mb1íz
-mb1kl
-m1b2lú
-mb1ly
-m2b1ob
-mb1olda
-mbo2lyak
-mb1ond
-m2b1op
-m2b1ormá
-m2b1ormú
-m2b1o2roz
-m2b1oszl
-mb1öle
-m2b1öv
-mb1ő2si
-m2b1ő2sz
-mb1pl
-mb1pr
-mbrádi2
-mb2rev
-mb2rok
-mb2ron
-mb1sp
-mb1st2
-mb1sz
-mb1tr
-mbu2sze
-mbu2szí
-m2b1u2t
-mb1új
-m2b1üg
-m2b1ül
-m2b1üs
-m2b1üt
-m2b1üz
-mbvezé2
-mc2lu
-mcsa2p1á2g
-mda1b2
-mda1g2
-mda1p2
-mdi2ale
-mdi3ap
-md2ra
-md2rá
-md2ro
-md2ró
-1me
-mea2l
-mea2n
-me2av
-me2béd
-mede2r1e2
-2medény
-me1d2rá
-2m1e2dz
-mee2s
-me2et
-2m1eff
-me2gaba
-me2g1ala
-me2g1alu
-me2g1alv
-me2g1an
-me2g1a2r
-mega1sz2
-me2gav
-me2g1á
-me3gám
-megá2s
-megá2t
-megá2z
-me2g1eg
-me2g1el
-mege2le
-mege2lő
-me2ger
-me2g1esem
-meg1eszt
-me2geta
-me2g1e2te
-me2gez
-me2g1é2l
-megés3s
-megész1
-meg1f
-megg2
-meg1gr
-me2gi
-meg1igá
-meg1inn
-meg1ir
-meg1is
-meg1itt
-me2g1í
-me2g1o
-me2g1ó2
-me2g1ö2
-me2gőr
-me2g1u2
-me2gú
-me2g1ü2g
-me2g1ü2l
-2megyez
-2m1egyh
-2m1egyl
-2m1egys
-2megyüt
-me2hető
-mei2rá
-me2k1ad
-me2k1ag
-mek1alk
-me2k1am
-mek1arc
-me2k1a2s
-me2k1att
-me2k1á2l
-me2k1á2p
-me2k1ár.
-me2k1ára
-me2kát
-mek1egy
-mek1ell
-me2kep
-me2k1ers
-meke2sz
-me2k1esze
-me2keszm
-mek1eszte
-me2kev
-me2k1ék
-me2kél
-me2k1ér.
-mek1érde
-me2k1érk
-me2k1érte
-me2k1érté
-me2k1éss
-me2k1éte
-me2kido
-me2kij
-mek1imá
-me2k1ing
-me2k1int
-me2k1i2p
-me2k1ist
-me2k1ita
-me2kír
-me2kít
-mek1k2
-mek3lu
-me2kob
-me2k1ok
-me2k1old
-me2k1olt
-me2k1onk
-me2kop
-meko2r
-mek1ora
-mek1oro
-mek1ort
-me2k1os
-mek1ott
-me2k1ó2v
-mek1öltö
-me2kön
-mek1öröm
-me2k1öt
-me2k1ő
-mek1s
-meksz2
-mek1t2
-me2kuj
-me2kun
-me2kur
-me2k1ú2
-me2küd
-me2k1üg
-me2k1üld
-me2k1ü2lé
-me2k1ü2lő
-me2küz
-m1elad
-mel1ak
-me2lág
-me2lál
-2melb
-2m1e2lef
-me2lekt
-mel1e2l
-2m1e2leme
-2m1e2lemz
-2m1e2les
-2melet
-mele2t1ér.
-2m1e2lég
-2m1e2l1é2l
-2m1e2l1ér
-melés3s
-2m1elf
-2m1elgo
-m1elha
-2m1elhá
-2m1elhel
-me2lit.
-2me2l1í2
-2m1eljá
-2melk
-m1elké
-m1elkí
-m1elkö
-mel2lál
-m1ellene
-mel2ler
-mel2l1ér.
-mel2ling
-mel2l1iz
-mel2lo
-mel2lö
-mel2l1u2
-2m1elmé
-2m1elnö
-me2los
-m1előde
-2m1e2lőí
-m1e2lőle
-m1e2lőtt
-2melőz
-me2lőző
-2m1elr
-2m1elszá
-2m1elta
-2m1eltá
-m1elter
-2m1eltett.
-2m1eltettn
-2m1eltér
-2m1elti
-2melty
-2m1elv.
-2m1elvá
-2m1elves
-2m1elvn
-2m1elvo
-me2ly1ék
-2m1elz
-2m1eml
-2m1e2mul
-me2n1a2d
-me2nal
-me2nar
-me2nau
-me2nát
-me2n1e2g
-me2n1el
-me2ner
-mene2t1á2
-mene2tö
-menés3s
-2m1enges
-me2nil
-me2n1ip
-me2ní
-me2nö
-men2s1é2g
-men2t1ell
-men2tip
-men2t1is
-me2n1u
-me2nú
-me2nya
-menye2ma
-me2om
-me2óe
-me1p2h
-me2pik
-me2pos
-me1p2r
-mera1p2
-mer1ass
-2merdő
-2m1e2rec
-2meredm
-mer1egy
-2m1e2rej
-me2r1e2l
-me2r1eml
-mere2t1a
-mere2t1e2l
-mere2t1ér.
-2merezőkh
-me2r1ép
-me2r1il
-me2rim
-mer1inf
-mer1ing
-me2r1ip
-2mernyő
-me2r1ol
-me2ror
-me2r1os
-me2rov
-2meről
-2merősí
-mers2
-mer1st
-mer1tró
-me2r1ü2g
-me2sas
-me2s1emb
-2m1esemén
-mese1s
-2meseté
-2m1e2sett
-2mesély
-2m1e2sésé
-2m1e2sésh
-2mesésk
-2mesésr
-2meséss
-2mesést
-2m1e2ső
-me1s2po
-2m1estb
-2m1este.
-2m1estek
-2m1esté
-2m1estf
-me1s2tó
-2m1estr
-2m1estün
-me2szan
-2meszem
-me1sz2tá
-met1anya
-meta1s
-metasz2
-me2t1e2gy
-met1ell
-2m1e2teté
-met1ing
-me2tór
-me2tú
-me2tűd
-2m1e2ug
-me2uk
-meus3s
-meu2t
-me2vő
-me2zac
-me2z1aj
-meza2k
-me2zau
-me2zál
-me2zedé
-me2zeg
-me2z1elj
-me2z1ell
-me2zelőh
-me2zer
-mez1ere
-me2z1ék
-me2z1ér.
-me2z1érd
-mez1éret
-me2z1é2ri
-me2z1id
-me2zim
-me2zin
-me2zio
-me2zír
-me2z1ol
-me2z1or
-me2z1ö
-mezőe2
-me2z1ő2rö
-me2z1őss
-2mezrem
-m1ezrese
-m1ezresr
-m1ezrest
-me2z3sa
-me2zsá
-me2zsö
-me2zu
-me2zú
-1mé
-mé2ber
-2m1ébr
-mé2cs1a2
-mé2cso
-mé2g1a
-mé2ge
-még1eg
-mé2gé
-mé2gi
-még1is
-mé2g1o2
-mé2gő
-mé2gú
-mé2h1a2
-mé2h1á
-mé2heg
-mé2hel
-mé2hir
-mé2h1is
-mé2h1or
-mé2hö
-méhren2
-2méhsé
-2m1éj.
-2m1éjb
-mé2jes
-2m1éjs
-méka2
-mé2k1ad
-mé2k1aj
-mé2k1ak
-mé2k1al
-mé2k1an
-mé2kar
-mé2kaz
-mé2k1á2
-mé2k1e2g
-mék1elh
-mék1ell
-mék1e2lő
-mé2k1ese
-mé2kev
-mé2kez
-mé2k1é2k
-mé2k1é2l
-mé2kid
-mé2kirá
-mé2kí
-mé2k1o
-mé2k1ö
-mé2kő
-mé2k1u2
-mé2k1ú
-mé2le.
-2m1é2lel
-mé2les
-mé2lez
-2m1é2lén
-2m1élm
-mé2lya
-mé2lyá
-mé2lyeg
-mé2ly1ú
-mé2n1a2r
-mé2n1a2t
-2ménekb
-2ménekh
-2ménekl
-mé2n1el
-mé2n1é2k
-mé2n1és
-mé2nid
-mé2nin
-mé2n1is
-mé2niv
-mént2
-mé2ny1e2g
-mé2ny1e2l
-mé2nyer
-mé2nyék
-mé2nyim
-mé2nyír
-mé2ny1o
-mé2nyö
-mé2nyú
-ményü2l
-mé2ny1ülé
-mé2pí
-mé2pü
-2m1érc.
-2m1é2retts
-2m1é2rén
-mé2rér
-mérés1s
-2m1é2rév
-2m1é2rie
-2m1é2rin
-2m1érké
-2m1érlel
-mé2r1ón
-2mérteke
-2m1értes
-2m1értér
-2m1értés
-2m1é2rül
-mér2v1a2
-2m1érz
-mé2s1a2
-mé2s1á2
-mé2s1e2l
-mé2s1er
-mé2sez
-mé2sin
-mé2sö
-més3sza
-mésza2
-mész1al
-mé2sz1ál
-mé2sz1á2ra
-mé2szed
-mé2sz1el
-2mészl
-mé2sz1ő
-mész3s
-2mészté
-2mészth
-2mészti
-2mésztj
-2mésztl
-2mésztü
-2mésztv
-mé2sz1ü2
-mé2t1ad
-mé2t1ak
-mé2t1a2n
-mét1árt
-mét1elho
-mét1elta
-mé2t1e2v
-mé2tég
-2m1étje
-2m1étjér
-2m1étjév
-2m1étjü
-2m1étke.
-mé2t1o
-mé2tö
-métő2
-mé2tőr
-mé2t1u
-mé2t1ű
-2m1év.
-2m1évb
-2m1é2ve.
-2mévei
-2m1é2vek
-mé2ven
-mé2ves
-2m1é2vet
-2m1é2véb
-mé2vén
-2m1évf
-2m1évh
-2m1é2vi
-2m1évk
-2m1évn
-2m1évr
-2m1évs
-2m1évt
-2m1évv
-mé2z1a
-mé2z1á2
-mé2zeg
-mé2zil
-mé2zim
-mé2zin
-méz1ism
-mé2zit
-mé2zí
-mé2z1o
-mé2z3s
-mé2zu
-mé2zű
-mfa2l1e2
-mfa2lom
-mfa1s2
-mfé2m1a2
-mfit2
-mfi1tr
-mf2la
-m1f2lo
-mf2ló
-mf2lu
-mfog1adat
-m1f2rak
-m1f2ran
-mf2rá
-m1f2re
-m1f2ri
-m1f2rí
-m1f2ro
-m1f2rö
-mgé2p1e2l
-mgépi2
-mgé2p1ip
-mg2li
-mg2ló
-mgör2cso
-mg2ra
-mg2rá
-mha2sábr
-mhossz1út
-1mi
-mi2aa
-mi2aá
-mi2abo
-mi2ac
-mi2ae
-mi2aé
-mia1f2
-mi2afr
-mi2ag
-mi2ah
-mi2aí
-mi2ale
-mi2amé
-mi2ao
-mi2aó
-mi2aö
-mi2aő
-mi2a1p
-mi2aré
-mias2
-mi2aszá
-mi2aszé
-mi2aszi
-mi2aszó
-mi2atá
-mi2ati
-mi2ato
-mi2aü
-mi2av
-2m1i2áz
-mi1bl
-micsa2p1
-2m1i2deá
-2m1i2deg
-2m1i2dei
-2midej
-2miden
-mi2dent
-2m1i2deo
-mi2dén
-mi2dio
-mi2dió
-mi2dol
-2midő
-m1időz
-mie2l
-mi2éf
-mi1fl
-mi1fr
-2m1i2gaz
-2m1i2gén
-mi1gri
-2m1ihl
-mii2d
-mi1k2li
-mi1klu
-mi2kono
-mi2kont
-2miks
-mi2lal
-2mille
-2millu
-2millú
-mi2ma.
-mi2máh
-mi2mit
-mi2mór
-mi2naj
-2m1i2nam
-mina2n
-min1any
-2m1i2nas
-mi2n1ára
-min2c1e2
-min2ch
-min2d1a2
-2m1indá
-min2dek
-min2d1er
-min2din
-2m1indí
-2mindu
-mi2neg
-mine2s
-2minfl
-2m1infú
-min2g1á
-2m1ingé
-min1g2h
-min1inj
-min2k1a2l
-min2k1an
-min2k1as
-min2kec
-min2kó
-min2kö
-2m1insp
-2m1i2nuk
-mi2nü
-2m1inz
-mio2n1a
-mio2n1á
-mio2r
-mió2r
-mi1p2l
-mi1p2r
-mi2ram
-2m1i2rat
-2mi2rán
-2mirg
-2mirh
-miri2gyel
-2m1irk
-2m1i2rod
-2m1i2rom
-mi2rón
-2m1irr
-mi2sal
-mis1elv
-mis1epe
-mis1ing
-2misit
-mi2s1í2r
-mi1s2pi
-mis3szab
-mis3szer
-mi2s1ü2t
-mi2s1ü2v
-mi2s1ű
-mi2szár
-mis3zár.
-mi1sz2f
-mi2tac
-mita2n
-mit1any
-2m1i2tat
-2mitác
-mit1ár.
-mit1árá
-mit1árh
-mit1ári
-mit1árk
-mit1árn
-mit1árr
-mit1árt
-mit1árú
-2mitbo
-mit1ing
-miti2s
-2mitlá
-mi2tök
-mi1tri
-2mitro
-2mitrú
-mi2tür
-miumé2
-miu2min
-miu2s
-2m1i2vad
-2m1i2vó
-mi2x1i
-mi2xö
-mi2xő
-mi2zé.
-mi2zét
-1mí
-m1í2gé
-mí2ja
-mí2já
-m1íns
-2m1í2rá
-2m1í2ró
-m1ív.
-mí2vá
-m1ívb
-mí2vé
-m1ívh
-m1ívr
-m1ívv
-mí2zü
-mí2zű
-mjé2ná
-mjobb1o
-mjo2g1á2s
-m2j1ol
-mj1ósá
-mj1ős
-mkaró2
-mka2r1ór
-mke1p
-mkia2
-mkiá2
-mkie2
-mk2la
-mk2li
-mk2lí
-mk2lo
-mk2lu
-mkó2rost
-mk2ra
-mk2rá
-mk2re
-mk2ré
-mk2ri
-mk2rí
-mk2ro
-mk2ró
-mk2va
-mk2vó
-mla1f
-mlapá2r
-mla2p1áro
-mla2p1e2
-mla2pin
-mla1s2t
-mlás3s
-mlá2s3z
-mle1g2
-mleí2
-mle1kn
-mle1pla
-mlé2k1a2
-mlé2k1á
-mlé2k1el
-mlé2k1est.
-mlé2k1ér.
-mlé2k1ol
-mlé2kos
-mlé2kó
-mlé2k1ú2
-mlé2szé
-mlo2k1ál
-mlo2ké
-mlő2s1a2
-mlő2s1ű2
-mmag1g
-mma1gl
-mmai2
-mmas2
-m2m1atk
-m2me.
-mme2g1é
-mmifé2l1é2v
-1mo
-mo2be
-2m1obj
-moci1
-2m1off
-mo1g2ráf.
-mo1g2ráff
-mo1g2ráfk
-mo1g2ráfn
-mo2gy1a2
-mohu2
-mo2is
-mo2kab
-mo2k1ad
-mo2k1a2k
-mo2k1a2l
-mo2k1a2n
-mo2kar
-mo2kád
-mo2k1ál
-mo2k1á2s
-mo2k1e2
-mo2k1il
-mok1k2
-mo2k1ol
-mo2k1or
-mo2k1ó2
-mo2kö
-mok1t
-2m1oktat
-moku2
-mo2kur
-mokú2
-mo2kús
-mo2k1úto
-mo2kü
-2m1o2laj
-2m1olda
-m1oldó
-2m1o2lim
-molli2
-mol2l1in
-2m1olló
-molói2ko
-2m1oltár
-2m1oltás
-2molvad
-2molvas
-2m1oml
-mon1acé
-mo2n1a2d
-mo2n1a2l
-mo2n1an
-mo2n1a2p
-mona2r
-mo2n1as
-mo2n1áll
-mo2neg
-mo2n1er
-mo2n1is
-mon2or
-mo2nö
-mons2
-mon1sp
-mon1tré
-mo2nü
-mo2nű
-monyá2
-mo2nyáz
-mo2or
-2m1opc
-2mope
-mo2per
-mo1p2l
-2m1opt
-mo2r1ad
-mora2n
-mor1any
-morá2la
-2m1ordí
-mo2r1el
-mo2ren
-mo2r1e2r
-mo2r1est
-mo2rid
-2morie
-mori2s
-mo2r1isk
-mo2r1iszo
-mor1izg
-2morjaia
-2morjaié
-2m1orjait
-mo2r1ol
-mo2r1ont
-mo2r1ón
-mo2r1ó2r
-mo2rós
-mo2rö
-2m1orr.
-mor1s2
-mort2
-mor3tá
-mor1tr
-mo2rü
-mo2rű
-mo2sál
-mo2s1e
-2mosto
-2m1ostr
-2m1osty
-mo2sü
-mo2szal
-mo2szis
-2m1oszlo
-mo1t2h
-2m1ottha
-mot2to
-mo2un
-mo2us2
-mo2vi
-mo2xi
-mo3zso
-1mó
-móá2g
-mó1bl
-mó2ch
-mócsa2p1
-mócsapá2
-mó2d1a2l
-mó2dau
-mó2dák
-mó2dár
-mó2d1e2
-mó2dip
-mó2d1o2r
-módó2
-mó2d1ór
-módu2
-módus1
-mó1fl
-mói2ko
-mó1k2l
-mókus1s
-mó2lar
-mó1p2r
-mó2rak
-mó2rar
-mó2rág
-mó2rái
-mó2ráj
-mó2rám
-móri2as
-móró2
-mó2r1ón
-mó2rö
-mó1s2k
-mó1the
-1mö
-mö2bö
-mö2ko
-möl2cs1a
-möl2csá
-möl2csel
-möl2cs1es
-möl2cs1ér.
-möl2cs1il
-möl2cs1o
-möl2cs1ő
-mö2le
-mö2nu
-mö2ro
-mö2r1ő
-m1ötl
-mö2ve
-mö2vö
-mö2vü
-mö2vű
-1mő
-mőa2n
-mőá2g
-mőe2l
-mőe2r
-mőé2l
-mőé2te
-mő1kl
-mő1ps
-mő2r1á2r
-2m1őrh
-2m1ő2ri
-mő2si
-mő2sü
-mős3zár
-mőü2l
-mő2zi
-mpa1dr
-m2p1akc
-m2p1aktá
-m2p1áll
-m2p1árko
-m2p1átj
-m2p1átk
-mp2ci
-mp1elt
-mp1fr
-mp1ind
-mpi2re
-mp2lak
-mplo2mal
-m1p2lu
-mpon1d2
-m2p1ord
-mporta2
-mpor2t1al
-mpor2t1á2r
-mpor2t1e2
-m2p1osztás
-m2p1ös
-m1p2ref
-m1p2rep
-m1p2rés
-m1prib
-m1p2ric
-mp2rio
-m1p2rod
-m1prof
-m1prog
-m1proj
-m1p2ro1p
-m1p2rot
-m1p2rób
-m1p2ru
-m1p2szi
-m2p1u2ta
-m2p1utó
-m2p1üz
-mra1p
-mren2d1ő2
-mré2m1
-msa2vo
-ms2ka
-ms2ká
-ms2ki
-ms2ko
-ms2lá
-ms2mi
-ms2ni
-ms1ond
-ms2pa
-ms2pe
-ms2pi
-ms2po
-ms2pó
-ms2rá
-ms2ta
-ms2tá
-ms2te
-ms2ti
-ms2tí
-ms2to
-mst2r
-ms2tú
-msza2ké
-msza2k1ü
-mszáraz1
-msz2c
-mszé2dem
-m1sz2f
-mszín3n
-msz2l
-msz2m
-m1sz2p
-msz2tá
-m1sz2v
-mta2n1ó2
-mtára2d
-mtá2r1ada
-mtés3s
-mtőkész1
-mtran2s
-mtransz1
-mt2rá
-mt2re
-mt2ré
-mt2ri
-m1t2ró
-mt2rö
-mt2rü
-1mu
-2m1udv
-2m1ugr
-m1ujj
-2mulet
-2mulz
-mu2m1ad
-mu2m1el
-mu2mél
-mu2m1és
-mu2min
-mu2m1ir
-mu2mis
-mu2m1iv
-mumkész1
-mu2m1ó2
-mu2mö
-mu2mő
-mumus1s
-mun1g
-mu2nok
-2mur.
-mu2ral
-mu2ram
-mu2rat
-mu2rál
-mur1izm
-mu2r1u2
-mu2sal
-mu2san
-mu2sar
-mu2sas
-mu2sat
-mu2s1á2g
-mu2sál
-mu2s1e
-mu2s1érté
-mu2sir
-mu2sor
-mu2s1ó2
-mu2ső
-muss2
-mus3sze
-mus2tárá
-mus2t1erj
-mu2szal
-mus3zav
-mu2szál
-mu2szás
-mu2t1a2g
-mu2tal
-mut1a2la
-2m1utalá
-2mutalv
-muta2n
-mu2t1any
-mu2tasí
-m1u2taz
-mu2t1á2ra
-mu2t1árb
-mu2t1á2ru
-2m1u2tás
-2mutca
-mu2t1el
-mu2til
-mu2t1in
-2m1u2tol
-2m1u2tód
-2m1u2tóp
-mu2t1ö
-mu2tü
-1mú
-mú2jí
-múl2t1e2
-múl2tol
-2m1úr.
-mú2ri
-2m1úrn
-2m1ú2sz
-2m1útb
-m1úth
-2m1ú2ti
-2m1útj
-2m1útk
-2m1útm
-2m1útn
-2m1ú2to
-2m1útr
-2m1útt
-2m1útv
-1mü
-mü2dí
-mü2dü
-mü2gy
-mü2ná
-mü2re
-mü2rí
-mü2rü
-mü2te
-mü2té
-mü2tő
-mü1tz
-mü2ve
-mü2vö
-mü2ze
-1mű
-mű1bl
-mű1br
-mű1fl
-mű1fr
-mű1gr
-mű1kl
-mű1pl
-mű1pn
-mű1pr
-2m1űrl
-mű1sp
-műsú2
-mű1sz
-műtőkész1
-műves3s
-mű2zé
-mű2zi
-mű2zö
-mű2ző
-mű2zü
-m2v1a2dot
-mvágya2d
-mvá2gy1ada
-mverés3s
-mw2hi
-mza2t1e
-mzás3s
-mze2r1o
-mze2t1a2
-mze2t1á2
-mze2t1e2g
-mze2t1el
-mze2ter
-mze2tesz
-mze2t1é2k
-mze2t1érd
-mze2to
-mze2t1ö2
-mze2t1ő2
-mzé2s1a
-mzé2so
-mzókész1
-mzőe2r
-mz2rí
-2n.
-1na
-naa2d
-n1abbó
-2n1abr
-2n1abs
-na1cl
-2n1a2dag
-2n1a2dás
-2n1add
-na2dek
-2n1adm
-2n1a2dó
-na1d2re
-2n1adt
-na2du.
-na2dus
-na2ei
-naé2r
-2n1aff
-na2ga.
-na2gár
-na2git
-na2gón
-na1grá
-nagy1agg
-na2gy1a2l
-na2gyapj
-na2gy1as
-na2gyav
-na2gy1é2k
-nagyú2
-nagy1úr
-nagy1út
-na2ire
-na2ji
-2n1ajk
-2n1a2kad
-nakaró2
-nak1á2sz
-na2k1át
-n1akko
-na1kli
-na1klu
-nako2l
-nak1ola
-2n1a2kó.
-na1k2ré
-n1akti
-2n1a2kus
-na2k1útn
-na2l1a2dó
-2n1a2la2g1
-na2l1aj
-na2l1a2l
-na2lana
-2n1a2lapa
-2n1a2lapd
-na2lapr
-na2lapt
-na2lar
-na2lav
-na2l1ábr
-na2lág
-na2l1á2l
-na2l1á2ro
-nal1á2t1ö
-na2l1áts
-na2l1elá
-na2l1ell
-nal1eng
-nal1ent
-nal1ég.
-na2l1ék
-na2l1éri
-na2lid
-na2l1ing
-na2l1i2o
-na2l1í2r
-2nalízisb
-2nalízise
-2nalízisé
-2nalízish
-2nalízisi
-2nalízisk
-2nalízisn
-2nalízisr
-2nalízist
-2nalízisü
-2nalj.
-n1alja.
-3naljac
-n1aljad
-n1aljai
-2naljak
-n1aljam
-n1aljat
-n1alji
-2naljon
-2nalju
-2naljz
-2n1alkat
-na2l1ob
-na2l1ol
-na2lop
-nal1osz
-na2l1ó2r
-na2l1ő
-nalt2
-nal1tr
-na2lulj
-na2l1ut
-na2lü
-na2mer
-2namitbo
-2n1a2mite
-2n1a2mitg
-2namitha
-2n1a2mitk
-2n1amitl
-2namitm
-2namitö
-2n1a2mitp
-2namitro
-2namitrú
-2namits
-2namittá
-2namittö
-2n1amö
-2n1amp
-2n1a2nal
-2n1ang
-2n1anh
-nano1
-nanog2
-na2nód
-2n1a2nyag
-nao2l
-naó2r
-2napa.
-nap1adó
-na2p1a2g
-na2p1ala
-na2p1alk
-nap1a2pa
-nap1apá
-nap1ará
-na2p1as
-na2pád
-na2p1á2g
-na2pák
-nap1áll
-na2pám
-na2p1árb
-na2p1átm
-nape2l
-nap1ell
-na2pem
-nap1est
-na2p1ill
-na2p1ing
-na2p1int
-nap1isk
-na2pí
-nap2lat
-na2p1ola
-nap1orm
-napos1s
-na2p1ostá
-na2p1ott
-na2pó.
-na2p1ó2r
-napp2
-2nappo
-nap1pr
-n1aprí
-2napróz
-na2p1u2t
-na2p1úr
-2n1a2rai
-2narann
-2n1arany.
-2n1a2ranya.
-2n1a2ranyá
-2naranyb
-2naranyh
-2naranyk
-2naranyn
-2naranyr
-2naranys
-2n1aranyt
-2n1arc.
-2n1arcá
-narchi2ab
-2n1arco
-2n1arcu
-2n1arcú
-n1arró
-2n1arz
-na2sév
-nas1isk
-2nask
-na1s2ka
-na1s2rá
-nast2
-na1s2ta
-na1s2tá
-na1str
-na2sz1an
-na2sz1árad
-naszkész1
-nasz1üg
-na2t1ab
-na2t1aj
-na2t1alk
-na2t1alt
-nat1ará
-nat1áll
-na2t1á2ré
-na2t1árn
-na2t1eg
-nate3le
-na2t1elé
-nat1elle
-na2tél
-nat1érke
-na2t1érv
-na2t1i2m
-na2t1ing
-na2t1old
-nat1ors
-na2t1osz
-na2t1u2t
-na2tül
-natű2z
-2n1a2ty
-na2uc
-na2ul
-nau2ra
-na2urá
-nau2s
-na2uto
-naü2z
-na2vart
-na2vat
-2n1avv
-na1wh
-2n1azb
-na2zé
-2n1a2zo
-1ná
-2n1á2bé
-2nábr
-ná2caj
-ná2c3h
-ná2cí
-ná2csal
-ná2csap
-ná2cs1as
-ná2cse
-nác3sik
-ná2csis
-2nácsolat
-nác3sor
-ná2csö
-ná2csü
-nác3sz
-ná2d1ala
-ná2dap
-ná2d1a2r
-ná2d1asz
-ná2d1a2v
-ná2dá
-nád1d
-ná2d1e2
-ná2d1ö
-ná2dud
-ná2d1ü2
-ná2d3z
-ná2ga
-ná2gá
-ná2gi
-ná2gu
-ná2gú
-ná2gy
-2n1á2hí
-ná2k1ér.
-ná2kol
-ná2kü
-ná2lab
-ná2l1a2l
-ná2lana
-n1álar
-nála2te
-ná2l1az
-ná2l1át
-nále2
-ná2l1eg
-ná2l1el
-ná2lem
-ná2les
-n2álé
-ná2l1ép
-ná2l1in
-ná2lir
-nál2is
-ná2lí
-2n1áll.
-2n1álla.
-2n1állap
-2n1állat
-2n1állí
-2n1állom
-nállóköz1
-ná2lü
-ná2mí
-ná2mu
-ná2nad
-ná2n1al
-ná2nar
-ná2n1á2r
-nán2c1e
-ná2n1e2
-náné2
-ná2nét
-ná2nin
-ná2ní
-nán2se
-ná2nü
-ná2rad
-2n1á2raka
-2n1á2rakb
-2n1á2rakh
-2n1á2rakk
-2n1á2rakn
-2n1á2rako
-2n1á2rakr
-2n1á2rakt
-2n1á2ram
-ná2r1a2n
-ná2rap
-ná2ras
-nár1ass
-2n1á2rat.
-ná2r1att
-ná2r1av
-ná2r1ác
-ná2r1ál
-ná2r1e2
-ná2r1éve
-2n1á2riai
-2n1á2riá
-ná2r1i2p
-ná2rí
-náró2
-ná2r1ór
-ná2rő
-nár1s2
-nárt2
-nár1tr
-2n1árud
-ná2rug
-2nárun.
-nár1ur
-2nárus
-náru2t
-nár1utá
-ná2rút
-ná2rü
-ná2s1as
-nás1áré
-ná2s1á2ru
-2n1á2sás
-ná2s1e2
-ná2s1i2k
-nást2
-nás1tr
-ná2szan
-ná2szas
-ná2szág
-ná2szál
-ná2sze
-ná2szén
-ná2szil
-ná2szin
-ná2szis
-2n1ászka.
-2n1ászoks
-ná2sz1ö
-ná2sz1ú
-ná2sz1ü
-ná2tala
-ná2t1a2n
-ná2tál
-nát1ásv
-ná2t1e2
-2n1áthi
-ná2t1i2o
-2n1á2t1ir
-2n1á2tí
-2n1átlé
-ná2t1ö
-2n1átru
-2n1átug
-2n1átut
-2n1á2tú
-ná2tü
-2n1átvi
-nba2ká
-nba2k1e2
-n2b1é2kéb
-n2b1é2kén
-n2b1é2kér
-n2b1é2kév
-nb2la
-nb2lo
-nb2lú
-nbo2n1a2
-nb2ra
-n1b2ri
-nb2ro
-nb2ró
-nburg2hi
-nc1acé
-n2c1ajá
-nc1ajt
-n2c1akn
-n2c1akt
-nc1a2la
-nc1alj
-n2c1alk
-nc1alt
-nc1alv
-nc1ana
-nc1ant
-nc1a2nya
-nc1ari
-nc1att
-nca2u
-n2c1ava
-n2c1ág
-nc1árb
-nc1árk
-n2c1árn
-nc1árt
-nc1á2sa
-nc1ásá
-nc1bl
-nc1br
-nc3csi
-nc3cso
-nc3csö
-nc3csu
-nc1dr
-ncea2
-nc1egg
-n2c1eld
-nc1e2lek
-nc1e2lem
-nc1elm
-n2c1elv
-nc1e2red
-nc1eró
-n2c1eszt
-nc1etn
-n2c1ex
-ncé2g1ér
-ncé2hes
-n2c1ép
-n2c1évi
-nc1fl
-nc1fr
-nc1gr
-n2c3ha
-n2c3há
-n2che.
-nc3hel
-nc3het
-n2c3hé
-nc3hiá
-nc3hí
-nc3hol
-nc3hon
-n2c3hoz
-n2c3hó
-nc3hö
-n2c3hu
-n2c3hú
-nci2alis
-nci2aso
-n2c1ige
-n2c1i2gé
-n2c1i2ko
-nc1i2má
-n2c1i2na.
-n2c1ind
-nc1inf
-n2c1ing
-n2c1int
-n2c1irá
-nc1iro
-n2c1ist
-n2c1i2ta
-n2c1i2z
-nc1íj
-n2c1ír
-n2c1ív
-n2c1íz
-nc1kl
-nc1kre
-n2c1ob
-n2c1okta
-n2c1o2li
-nc1orv
-n2c1ott
-n2c1ölt.
-nc1öss
-ncö2t
-nc1őr
-nc1pl
-nc1pr
-n2cs1ab
-n2csac
-n2csad
-n2cs1ag
-n2cs1ajt
-n2csakt
-ncs1alap
-n2cs1alj
-n2csam
-n2csan
-ncsa2p1á2g
-ncsa2r
-ncs1ara
-ncs1arg
-ncs1aro
-n2cs1au
-n2csaz
-ncs1ágr
-n2cs1ál
-n2c3sár.
-n2cs1á2rá
-ncs1árb
-n2cs1árn
-ncs1árr
-n2csáru
-n2csáta
-n2csátá
-n2csátv
-ncs1elf
-ncs1é2rés
-n2csérte
-n2cs1érté
-n2c3sérü
-n2c3séta
-ncs1i2kon
-ncs1int
-n2cs1io
-n2csipa
-n2csirá
-ncs1irt
-n2cs1ism
-n2csita
-ncs1izz
-nc3síki
-n2cs1í2rá
-ncs1ízt
-n2csob
-n2cs1oks
-n2csokta
-n2csosz
-n2cs1ö2lé
-n2cs1ös
-n2cs1öz
-n2cs1őr.
-ncs1őrö
-ncs1s
-n2csur
-ncsu2t
-ncs1uta
-n2csút
-n2csüg
-n2csüt
-ncs3zár
-nc3sze
-nc3szó
-nc3szö
-nc1tr
-n2c1ud
-n2c1ug
-nc1uj
-n2c1ur
-n2c1új
-nc1út
-n2c1üg
-n2c1üt
-nc1üv
-n2c1üz
-n2c1űr
-nc1ya
-n2c3zá
-nc3ze
-n2c3zó
-nc3zö
-nc3zs
-nc3zü
-nczy1i
-nd1abl
-nda1br
-nd1a2dat
-nda2dás
-nd1add
-n2d1ajá
-n2d1akc
-n2d1akk
-nd1akt
-n2d1alj
-n2d1alr
-nd1ann
-nd1apó
-nd1a2rán
-nd1arr
-ndat1any
-nda2tap
-nda2t1eg
-nda2tin
-nda2tir
-nd1azo
-nd1azt
-nd1azz
-nd1á2rak
-ndás1s
-nd1bl
-nd1cl
-nd1dr
-nd1ebb
-n2d1e2kéb
-n2d1e2kéin
-nde2köz
-n2d1elf
-n2d1ellen
-n2d1elm
-nd1elö
-nde2mer
-nde2mu
-nde2m1ü
-nde2ná
-n2dennek
-nde1p2
-nde2r1a
-nde2rál
-nde2ráz
-nde2rel
-nde2ro
-n2d1erő
-n2d1e2sett
-n2d1e2sés
-n2d1e2ső
-nde2sza
-n2d1e2szü
-nd1eza
-ndé2go
-ndé2kel
-nd1ékez
-ndé2kö
-n2d1éle
-nd1élm
-n2d1ép
-ndé2raj
-n2d1éssz
-n2d1észh
-n2d1észl
-n2d1észr
-n2d1é2te
-n2d1étt
-nd1fr
-nd1gr
-n2d1iga
-n2d1ige
-n2d1ill
-n2d1i2na.
-n2d1ing
-n2d1ins
-n2d1i2onj
-ndi2óé2
-ndi2óf
-ndi2óm
-n2d1isza
-ndí2j1a2da
-nd1kl
-n2d1oá
-ndo2k1út
-ndo2rál
-n2d1orni
-ndo2r1ú
-n2d1ou
-n2d1ov
-ndóé2r
-nd1ó2ni
-n2d1ó2rá
-ndö2b
-nd1öss
-n2d1ö2z
-n2d1őr.
-n2d1ő2r1a2
-n2d1őrb
-n2d1őrc
-n2d1őrd
-nd1ő2reg
-nd1ő2rei
-nd1ő2rek
-nd1ő2rel
-nd1ő2rék
-nd1ő2rén
-nd1ő2rér
-nd1ő2rét
-nd1ő2rév
-n2d1őrf
-n2d1őrg
-nd1ő2rig
-nd1őris
-nd1ő2rit
-n2d1őrj
-n2d1őrk
-n2d1őrl
-n2d1őrm
-n2d1őrn
-nd1őrok
-nd1őros
-n2d1ő2rö
-nd1őrős
-n2d1őrp
-n2d1őrr
-n2d1őrs
-n2d1őrt
-n2d1őrú
-n2d1őrv
-nd1pr
-nd2raz
-n1d2ruk
-nd1sl
-nd1sp
-nd1st
-ndszá2m1út
-ndsze2r1e2l
-ndtár2s1a2d
-ndu2t
-n2d1uta
-nd1új
-ndú2rá
-nd1úsz
-n2d1üg
-nd1ünn
-n2d1üz
-n2d1űr.
-n2d1űrr
-n2d1űrt
-n2d1űz
-ndy2b
-ndy2h
-ndy2n
-ndy2r
-ndy2t
-ndy2v
-nd3zav
-nd3zár
-n2d3ze
-n2d3zó
-n2d3zu
-1ne
-nea2j
-nea2k
-nea2la
-ne2alo
-nea2n
-nea2r
-ne2bé
-ne1bl
-ne1dra
-ne1d2rá
-ned2v1el
-ne1dy
-2n1e2dzé
-2neff
-2n1e2ger
-2n1egér.
-ne2g1ö
-n1egy.
-n1egyb
-ne2gyek
-ne2gyen
-ne2gyes
-ne2gyet
-ne2gyez
-2n1e2gyé
-n1egyf
-n1egyh
-ne2gyig
-n1egyk
-n1egym
-n1egyn
-n1egyr
-2n1egys
-n1egyt
-ne2gyün
-nehéz1
-2n1ehh
-nei2g
-neí2r
-ne2k1aj
-ne2k1a2n
-ne2kát
-ne2k1e2g
-nek1erő
-nek1é2jé
-ne2kék
-nek1ékn
-nekie2
-2nekj
-nek1k2
-2nekka
-2nekki
-ne1klu
-ne2k1ok
-nekö2r
-ne1kreá
-nek1t2
-ne2k1üg
-nek1üldö
-ne2lag
-ne2laj
-ne2l1an
-ne2lál
-nelá2r
-ne2lef
-ne2leg
-n1elegy.
-nel1e2le
-nele2ma
-nelem1el
-nel1e2més
-nel1eng
-ne2ler
-ne2l1ép
-nelfé2
-nel1g2
-2n1elha
-ne2l1id
-ne2lim
-ne2l1in
-n1elló
-2n1elnev
-ne2l1ot
-ne2l1ó2
-ne2l1ö2
-2n1e2lőa
-2n1e2lőá
-ne2lőd
-ne2lőf
-ne2lőhí
-2n1e2lőí
-2n1e2lőké
-ne2lől
-2n1előny
-2nelőrej
-2n1e2lőté
-2n1eltér
-ne2l1ül
-2n1elz
-ne2mak
-2nemba
-2n1ember
-neme2g
-nem1egy
-2nemele
-2n1emelk
-ne2m1esz
-ne2m1ér.
-ne2m1id
-nem1isz
-2nems
-2nemul
-2n1eng
-2n1enn
-nen2sa
-nense2s
-nen2s1ese
-nens3s
-nen2s3z
-2n1enyv
-2n1enz
-ne2ob
-ne2od
-ne2of
-ne2og
-ne2oh
-ne2oko
-ne2ola
-ne2oli
-ne2oro
-ne2pad
-ne2pelm
-ne2p1est
-ne2pid
-ne2p1ó2r
-ne2p1ut
-ne2r1a2d
-ne2r1a2k
-ne2r1a2n
-ne2r1a2r
-ne2r1as
-ne2raz
-ne2ráb
-ner2co
-ne2r1e2g
-n1e2rej
-ne2r1e2ke.
-ne2r1e2l
-ner1emel
-ne2r1er
-ne2rez
-ne2rég
-ne2r1él
-ne2r1ép
-ne2r1étt
-ne2r1id
-ne2r1iga
-ne2r1il
-ne2r1i2m
-ne2r1inf
-ne2r1ing
-ne2r1int
-ne2ris
-ner1k2
-ne2r1ol
-ne2ror
-ne2r1os
-ne2ró
-ne2r1ön
-2n1e2rő
-3n2e3rőkü
-ner1s
-ner1tr
-ne2r1u2
-ne2r1üg
-ne2s1aljá
-ne2sas
-ne2s1ál
-ne2sár
-2n1e2setb
-2n1e2setr
-2n1e2sés
-2n1e2ső
-nes3sza
-nes3szá
-2n1esté
-2n1esti
-ne2s1ü2v
-nesz1ál
-ne2s3zár
-ne2sz1él
-ne2sz1ű2
-ne2t1ab
-net1a2la
-ne2t1a2ny
-ne2tál
-ne2t1át1
-ne2t1e2g
-net1elá
-net1elm
-ne2t1előa
-ne2t1eml
-net1este
-ne2t1esz
-ne2t1etet
-ne2t1eti
-ne2t1é2k
-ne2t1é2l
-ne2t1ér.
-ne2t1érd
-ne2t1éré
-ne2t1é2rő.
-ne2t1é2rők
-ne2t1érr
-ne2térte
-ne2t1értő
-ne2t1é2rü
-ne2t1ész
-ne2t1é2ve.
-ne2tid
-ne2t1i2ko
-ne2t1int
-ne2tip
-netké2sz1ü
-ne2t1o2k
-ne2tol
-net1old
-ne2t1ő2
-net2tév
-ne2tun
-ne2t1ut
-netü2l
-net1ülé
-ne2t1ü2z
-2n1e2vő
-2n1evv
-nexpor2t1ő2
-ne1yé
-2n1e2zer
-2n1ezred
-2nezüs
-1né
-2n1ébr
-2nédl
-né1f2r
-2n1ég.
-2n1é2gek
-2n1é2geté
-2n1é2gető.
-2négetőh
-2n1é2getők
-2négetőn
-2négetőt
-2n1é2gé
-2n1égj
-2n1égn
-2n1é2gő
-2n1égs
-2n1égt
-2n1é2gü
-né2gyer
-né2gyén
-né2gy1o
-né2gyök
-2n1é2hes
-2n1éhs
-né2kaj
-né2kak
-né2k1a2n
-né2kar
-né2k1á
-néke2l
-nék1ele
-né2ker
-né2kév
-né2kid
-nék1isz
-2n1é2kí
-né2kó
-nékü2
-né2kül
-n1é2les
-2n1é2let
-2n1élm
-né2lői
-né2lőn
-2néneke
-2n1é2neké
-népa2
-né2pad
-né2p1ak
-né2p1al
-né2p1an
-né2pap
-né2p1as
-né2pau
-népá2
-né2p1ál
-né2p1ár
-né2pát
-né2p1áz
-né2peg
-né2p1e2l
-népe2r
-nép1etet
-né2p1etn
-né2pev
-né2p1és
-nép1f2
-2né2pí
-né2p1o
-né2p1ö
-né2pő
-nép1s
-né2p1us
-né2pú
-2népül
-néra2
-né2raj
-né2r1an
-n1érd
-2nérde
-2n1é2rem
-né2ré.
-né2rés
-né2ri.
-né2rin
-né2rip
-né2rö
-2n1é2rő.
-2n1érté
-né2rü
-2n1érz
-né2s1e2l
-né2s1ég
-nés3szer
-nész1ak
-nész1al
-né2sz1á
-né2szeg
-né2sz1e2l
-né2sz1emb
-né2sz1e2sz
-né2sz1ék
-né2szik
-né2sz1í
-nészkész1
-né2szó
-né2sz1ö2
-né2szu
-né2sz1ú
-né2szül
-né2t1eg
-2n1é2tel
-né2t1es
-2n1é2tet
-néti2
-né2tir
-né2tö
-né1t2r
-néva2
-név1ada
-név1adá
-né2vaj
-né2var
-né2vav
-né2v1ág
-2n1évbú
-2n1é2ve.
-2névei
-2n1é2vek
-néve2l
-né2v1ele
-név1elő
-2né2vem
-2névenk
-2névent
-né2v1e2r
-né2ves
-név1esz
-2né2vet
-2névéb
-né2v1é2l
-né2v1éri
-né2vérő
-né2v1érz
-né2vis
-2névny
-né2v1o
-né2vö
-né2vő
-né2v1u2
-né2vú
-né2vün
-né2za
-néziu2m1i2
-nfe2lemé
-n1f2la
-n1f2lo
-nfluor1e
-nfol2ta
-n1f2rak
-n1f2rá
-n1f2rek
-n1f2ri
-n1f2rí
-n1f2rö
-n1f2ru
-nfüs2t1ölé
-n2g1abl
-n2g1a2dat
-n2g1a2dá
-ng1a2dó
-n2gadó.
-n2gadóa
-n2gadób
-n2gadói
-n2gadój
-n2gadók
-n2gadór
-n2gadós
-n2gadót
-n2gadóv
-ng1akn
-n2g1akr
-n2g1akt
-nga2lag
-nga2lak
-nga2lap
-ng1alát
-ng1alel
-n2g1alg
-n2g1alj
-n2g1a2ny
-nga1p2
-n2g1a2rán
-n2g1arc
-n2g1art
-n2g1arz
-n2g1asp
-ng1assz
-n2g1aszt
-nga1tr
-n2g1a2u
-n2g1ava
-nga2zon
-ngá2c
-n2g1á2g
-ng1állá
-ng1állo
-ng1álló
-n2g1áp
-ng1á2rak
-ng1áras
-ng1árat
-ngá2rát
-ngá2ráv
-ngá2ré
-n2g1árnya
-n2g1árta
-ngá2ruk
-n2g1á2rú
-n2g1á2szaib
-n2g1á2szair
-n2g1á2szait
-n2g1á2száv
-n2g1á2szé
-n2g1á2szi.
-n2g1á2szig
-n2g1á2szoké
-n2g1á2szos
-n2g1átá
-ng1átc
-n2g1á2t1e2
-n2g1á2ti
-n2g1átk
-n2g1átl
-n2g1átm
-n2g1áts
-n2g1átv
-n2g1á2zój
-n2g1á2zós
-n2g1áztato
-ng1bl
-ng1br
-ng1d2r
-ng1edz
-ngegész1
-n2g1ela
-nge2lis
-nge2r1a
-nge2rál
-nger1e2sz
-nger2im
-nge2ro
-n2g1esem
-n2g1eszk
-nge2tika
-n2g1ex
-n2g1é2g
-ngé2les
-n2g1épí
-n2g1érc
-ng1érl
-ng1é2rő.
-ng1érté
-ngé2sa
-n2g1éte
-ng1fr
-ng1g2r
-ng3gyi
-ng3gyo
-n2g1i2d
-ngi2g
-n2g1iga
-n2g1ige
-n2g1igé
-ng1i2ko
-n2g1ikr
-n2gill
-ngi2m
-ng1imi
-ng1inf
-n2g1ing
-ng1ins
-ng1iro
-n2g1izg
-ng1íg
-ng1ír
-ng1ív
-ng1íz
-ng1kl
-ng1kr
-ng1kv
-n1glec
-ngmeg1
-n1g2nó
-n2g1of
-n2g1op
-ngora1
-n2g1ord
-n2g1org
-n2g1ork
-ng1osto
-ng1oszt
-n2g1otth
-ngó2riá
-n2g1öb
-ng1önt
-ngö2r
-ng1örö
-ng1örv
-n2g1öv
-n2g1ö2z
-ng1őrö
-ngő2z1ős
-ng1pr
-ng1ps
-n1g2ram
-ng2rádih
-ng2rádj
-n1g2ráf
-ng2run
-ng1sh
-ng1sk
-ng1sp
-ng1tr
-n2g1ud
-n2g1ug
-n2g1uj
-n2g1und
-ng1u2ra
-n2g1uta
-n2g1új
-ng1útt
-n2g1üd
-n2g1ü2g
-ng1ür
-ng1üt
-n2g1üz
-ng1űr
-ngy1a2gya
-ngya2l1ó2
-ngy1ass
-n2gy1á2l
-n2gy1em
-n2gy1es
-n2gyez
-n2gy1é2d
-ngy1éks
-ngy1ékt
-ngy1ér.
-n2gyid
-n2gyim
-n2gy1ut
-n2gy1ü2lő
-nha2b1i
-nhal1k2
-nha2sábr
-nhá2z1alt
-nhá2zip
-nhá2zol
-nhá2zó
-nhá2z3s
-nhe2d3z
-nhe2i
-nhú2sá
-nhús3s
-1ni
-ni2aa
-ni2aá
-ni2abo
-ni2ac
-ni2ad
-ni2ae
-ni2aé
-ni2afo
-nia1g2
-ni2agy
-ni2ah
-ni2aí
-ni2aj
-ni2ala
-ni2alá
-ni2am
-ni2ao
-ni2aó
-ni2aö
-ni2aő
-ni2a1p
-ni2ar
-ni2asza
-ni2aszá
-nia1t2
-ni2ato
-ni2atr
-nia3u
-ni2aü
-ni2av
-ni2az
-niát1a2
-2n1i2bo
-ni1br
-ni2c1e2l
-ni2cha
-ni2c3he
-ni2c3hé
-ni2c3ho
-ni2de.
-2n1i2deg
-2n1i2dő
-ni2dü
-ni2et
-2n1ifj
-2n1i2gal
-2nigaz.
-2n1i2gá
-ni2ge.
-ni2géj
-2n1i2gén
-ni2géz
-2nigm
-2n1ihl
-ni2keb
-ni2k1el
-ni2k1em
-ni2k1érté
-nikk2
-ni1klu
-ni2konr
-2n1ikrit.
-ni2kud
-n1ille
-2nillu
-2n1i2ly
-2nimád
-n1i2máé
-2n1imp
-2n1i2na.
-ni2nas
-ni2n1áll
-2nind
-2n1info
-2n1infú
-nin2gas
-nin2gá
-2n1inge.
-2ningei
-nin2g1e2l
-nin2g1ó2
-nin1g2rá
-nin2gu
-2n1ingük
-ni2n1i2p
-ni2nol
-2n1inté
-2n1i2onb
-ni2onc
-ni2onh
-ni2onj
-ni2onk
-2n1i2onn
-2n1i2ono
-2n1i2onr
-2n1i2ont
-ni2óa
-ni2ód
-ni2óe
-ni2óp
-ni2óta
-ni2ótá
-ni2óü
-nióvá2
-nip2p1i
-ni1pr
-ni2rat
-2nirá
-nirész1
-2n1irg
-2n1irh
-2n1irk
-2n1i2rod
-ni2rón
-ni2si.
-ni2s1in
-nisü2v
-nisz1ak
-ni2szeg
-ni2szeml
-ni2szese
-ni2sz1é2l
-ni2szip
-ni2szis
-nisz1okt
-nisz1ol
-2n1iszon
-ni2szö
-ni2sz1ő
-ni2szu
-ni2t1a2d
-ni2t1ag
-ni2t1aj
-ni2tal
-nit1a2la
-ni2t1as
-2n1i2tat
-nit1ell
-ni2t1ép
-ni2t1ér
-ni2tim
-ni2t1in
-ni2tir
-ni2tob
-nit1old
-nit1olt
-ni2t1osz
-ni2tür
-niu2m1i2o
-2n1i2vad
-2n1i2var
-2n1i2vó
-ni2xa
-ni2xő
-ni2zén
-2n1izg
-2n1izmá
-n1izom
-ni2zsol
-1ní
-ní2gé
-ní2ja
-ní2ju
-níli2a
-ní2ra2
-2n1í2rá
-ní2r1é2
-ní2r1ot
-2n1í2ró
-ní2r1ú
-2nítél
-nítőa2
-ní2ve
-2n1í2vi
-ní2ze
-ní2zű
-nk1a2dós
-nkai2k
-nk1ajt
-n2k1akk
-n2k1alv
-n2k1anó
-nka2nyá
-nkaó2
-nka1p2l
-nk1app
-nka2ris
-nka1s2k
-nka1sp
-nka2tom
-nka1t2r
-nk1azo
-n2k1ág
-nk1árad
-nká2rál
-nká2rol
-nká2ruk
-nká2sad
-nká2sal
-nká2sav
-nkás3s
-nká2s3z
-nkáta2
-n2k1átj
-n2k1átm
-n2k1áts
-n2k1átu
-nk1br
-nkci2ósű
-nk1dr
-nk1e2cse
-nk1e2dz
-nk1ela
-n2kellá
-n2k1eltá
-nke2r1a
-nk1ered
-n2k1e2rő
-n2k1e2ti
-n2k1e2vé
-n2k1é2l
-nké2p1el
-nké2p1és
-n2k1épí
-n2k1érc
-nk1é2szé
-nk1g2r
-nkia2
-nkiá2
-nk1i2ga
-n2k1igé
-n2k1imi
-nk1ind
-n2k1ing
-n2k1int
-n2kinz
-nk1i2on
-nki2s1i2
-nk1ism
-nkká2
-nk1k2r
-nk2lar
-n1k2ló
-n2k1ob
-nk1oke
-nkos3s
-n2k1oszl
-n2k1ox
-n2k1óné
-n2k1óni
-nkó1p2
-n2k1ó2ri
-n2k1ö2lé
-n2k1ö2lő
-nk1öss
-nk1ötl
-nk1őrs
-nk1pl
-nk1pr
-nk2rac
-n1k2ris
-n1k2rí
-nk2roma
-nkron1n
-nk1sp
-nk1st
-nk1sz2
-n2k1ud
-n2k1u2ra
-n2k1u2s
-nk1utal
-n2k1utá
-n2k1uz
-n2k1új
-n2k1ús
-n2k1üg
-nlac1
-nla2pa
-nlap1e
-nla2p1osz
-nla2tal
-nla2t1a2n
-nla2t1e2
-nla2t1é2te
-nlás3s
-nle2g1á
-nleí2
-nle2t1o
-nletü2
-nle2tüz
-nlé2tés
-nlé2t1é2ve.
-nme2g1a2
-nme2g1é
-nműé2n
-nműt2
-nna2ié
-nnak2
-nna1kr
-nn1alv
-nna1p2ré
-nna1s2
-nn1áll
-n2n1eml
-nne2p1a2
-nne2se
-nn1ess
-nn1esz
-n2n1e2tet
-n2n1ett
-nn1evez
-nné2get
-nn1éri
-n2n1id
-nn1irt
-nn1ors
-nnőé2h
-nnőé2n
-nn1sy
-n2n1ug
-nn1ú2s
-n2n1ü2c
-nnü2l
-nn1ülő
-nn1ült
-nn1ülv
-n2ny
-n3nyak
-n3nyalá
-nny1a2n
-n3nyar
-nnyá2r
-nny1áz
-n3nydr
-nny1ell
-n3nyelő
-nny1elt
-nny1elvá
-nny1elvez
-nny1e2sett
-nny1e2sés
-nny1e2ső
-nny1ég
-nny1é2ké
-nny1é2ki
-nnyié2h
-nnyié2ne
-nnyi2g
-nny1igé
-n3nyjé
-nny1old
-nny1on
-nny1öz
-n3nyst
-1no
-no1d2rá
-2n1o2dú
-2nog.
-2nogh
-2nogj
-2nogn
-2nogo
-2nogs
-2nogt
-2nogv
-no2ir
-2nokal
-nok1ala
-no2k1a2r
-no2kau
-no2k1ál
-no2k1é2l
-no2kép
-no2k1ing
-nok1ist
-nok1k2
-2n1okke
-2n1o2koz
-no2kö
-no2kő
-no1k2ro
-nok1s
-noksz2
-no2kur
-no2kúr
-no2kü
-2n1o2la
-nol1f2
-2n1o2lim
-2n1olló
-2n1o2ly
-no2m1a2c
-nom1p
-nona2
-no2n1al
-nonc3c
-non2ch
-nonc3sz
-no2n1e
-non1k2
-no2nö
-no2nő
-non1s2
-no1ny
-no2ok
-2n1o2pe
-no1p2la
-no2r1al
-no2r1a2t
-no2raz
-no2r1el
-no2r1iv
-no2rí
-2n1ormo
-2n1orré
-nor1s2
-no2rü
-2n1orvo
-no2sál
-no2se
-nossz2
-nos3sze
-nos3szf
-nos3szi
-no1s2tab
-nosza2u
-no1sz2f
-2noszl
-no1t2r
-2n1otth
-no1ty
-no2ui
-2n1o2vi.
-no2xi
-1nó
-nóa2k
-nóá2r
-nó2ce
-nó2ch
-nó2da.
-nó2d1a2n
-nó2dák
-nó2d1e2s
-nó2d1is
-nó1fl
-nó1fr
-nó1k2l
-nó2mac
-nó2m1em
-nó2mik
-nó2m1u2t
-nó2mü
-nó2nib
-nó2non
-nó1p2r
-n1ó2rac
-nó2r1ad
-n1ó2raf
-2n1ó2rai
-nó2r1a2l
-n1ó2rar
-n1ó2ras
-n1ó2rat
-nórádi2
-nó2rás
-nó2riá
-nó2rü
-nós1akk
-nó2seg
-nó1sl
-nó1s2p
-nó1s2rá
-nós3s
-nó1s2ta
-nó1sz2
-nós3zene
-nós3zené
-nót1ala
-nó2til
-nó1trá
-nó2vó
-1nö
-nö2ka
-nö2ká
-nö2k1el
-nöke2t
-nök1eti
-nö2k1é2j
-nö2k1ék
-nö2k1é2l
-nö2k1ér.
-nö2k1éri
-nö2k1érté
-nö2ko
-nö2kó
-nö2ku
-nö2kú
-n1ö2le
-n1ö2lé
-nö2lő
-n1öml
-2n1ö2nö
-2n1önz
-nö2rö
-2n1össz
-2n1ö2sz
-nö2te
-nö2té
-nö2ti
-n1ötl
-nöt1t2
-nö2tü
-2n1öv.
-n1övb
-n1ö2ve.
-nö2vön
-2n1övr
-2n1ö2zön
-1nő
-nőa2l
-nőa2n
-nőá2g
-nő1br
-nő2ca
-nő2ch
-nő2csár
-nő2csős
-nő2csü
-nőe2r
-nőé2l
-nőfé2l1é2
-nő1kl
-nő1pl
-nő1pr
-2n1őr.
-2n1ő2r1an
-2n1őras
-2n1őrb
-2n1őrc
-2n1ő2rei
-2n1ő2réh
-2n1ő2rén
-nő2rét.
-nő2rétő
-2n1ő2rév
-2n1őrg
-2n1őrh
-2n1ő2ri
-2n1őrk
-2n1őrl
-2n1őrn
-2n1ő2rö
-2n1őrr
-n1őrs
-2n1őrt
-2n1őrü
-nő2rül
-nő2rün
-2n1őrv
-2n1őrz
-nő2s1a2l
-nő2s1e2l
-nő2ses
-nő2s1í2r
-nő2sok
-nő1spe
-nős3s
-nő1sz2t
-nő1t2r
-nőt2tin
-nőu2t
-nőü2l
-npa2dal
-npe2s
-npesz1
-np2la
-np2lá
-np2le
-np2lé
-np2lo
-np2lü
-npon2t1a2
-npo2r1a
-np2ra
-np2re
-np2ré
-np2ri
-np2ro
-np2ró
-np2sz
-npu2t1a
-npu2t1á2
-npu2t1e2
-npu2t1i
-nrefle2x1í2
-nren2da
-n2s1a2d
-n2s1akc
-ns1alk
-ns1a2rá
-ns1ass
-n2s1au
-nsa2vár
-nsa2v1e2
-nsa2vil
-nsa2vol
-n2s1a2z
-nság1g
-ns1áll
-n2s1á2rak
-ns1áta
-ns1átv
-ns2ch
-nsc3he.
-nsc3hei
-nsc3hé
-ns1dr
-ns1e2lé
-ns1elm
-ns1eln
-ns1elo
-ns1els
-ns1elv
-n2s1ene
-n2s1esz
-nsé2gel
-nsé2g1éj
-nségü2két
-n2s1ék
-n2s1é2l
-n2s1ép
-ns1é2ve.
-ns1fr
-n2s1i2d
-ns1imp
-ns1inf
-n2s1ing
-n2s1iró
-ns1isk
-nsi2z
-ns1izo
-n2s1í2r
-n2s1í2v
-n1s2kál
-ns1kl
-n2s1ob
-n2s1ol
-n2s1op
-ns1osz
-n2s1ott
-n2s1ó2r
-n2s1ös
-ns2pec
-ns1p2l
-ns2por
-n1s2rá
-ns1st
-ns1sy
-ns3szer
-ns3szi
-ns3szo
-ns3szö
-n1s2tab
-n1s2tác
-nste2i
-n1s2tim
-ns2top
-nsu2r
-ns1ura
-n2s1u2t
-ns1úr
-n2sz1a2d
-nsza2k1ü
-nsz1alk
-n2sz1a2n
-ns3zará
-n2sz1á2ba.
-ns3zárá
-nsz1á2ru
-n2sz1it
-n2sziz
-n2sz1omm
-nsz1p2
-n2szut
-n2sz1ü2z
-nsz1z
-nt1abla
-n2t1abr
-nta2cél
-ntad2
-nt1a2dó
-nt1a2ga.
-n2t1agg
-nta2gyu
-nta2gyú
-ntai2k
-n2t1ajk
-n2t1ajt
-n2t1akc
-n2t1aktá
-nt1alát
-nt1alel
-n2t1alf
-nt1anta
-nt1a2ra.
-nta2ran
-n2t1a2rá
-n2t1arc
-n2t1ark
-nta1s2p
-nt1assz
-n2t1aty
-nt1a2ura
-ntaü2
-n2t1azo
-nt1ábr
-ntá2cs
-nt1ácsi
-nt1ácso
-ntá2r1a2d
-n2táram
-ntá2ráv
-nt1árny
-ntá2ruk
-n2t1ásó
-n2t1ásvá
-n2t1áti
-n2t1átl
-n2t1átr
-n2t1áts
-n2t1átv
-ntá2zsi
-nt1bl
-nt1br
-nt1dr
-nt1ebe
-n2tedén
-nt1edi
-nte3gá
-n2t1ela
-n2t1elb
-ntele2mé
-nt1elf
-n2t1eljá
-n2t1elk
-n2t1ellen
-n2telmél
-n2telnö
-n2t1e2lo
-nte2lőá
-n2t1elr
-n2t1elto
-n2t1elvá
-n2t1elz
-n2t1ember
-n2t1e2mel
-n2t1eml
-n2t1emu
-n2t1endr
-n2t1ent
-nte2rál
-nte2rele
-nte2r1in
-nter2v1e2l
-n2t1erz
-n2t1esth
-n2t1eszk
-n2t1eva
-nt1e2vet
-nt1e2vez
-nt1ég.
-nt1é2gé
-n2t1é2kek
-nté2kes
-nté2ké
-n2t1éks
-n2t1é2le
-n2t1é2lés
-n2t1élm
-n2t1élt
-nt1élű
-n2t1é2neke
-n2t1épü
-n2t1érin
-n2t1érmé
-n2t1érté
-n2t1érz
-ntés3s
-nté2ter
-n2t1é2ven
-n2t1é2vet
-n2t1é2véb
-n2t1é2vén
-n2t1é2vér
-n2t1é2vét
-nt1évh
-nt1évk
-nt1évt
-nt1fl
-nt1fr
-nt1gr
-nt2hon
-ntia2n
-ntia2t
-nt1ido
-n2t1ige
-nti1k2l
-ntil2lát.
-n2t1ille
-n2t1imp
-n2t1info
-n2t1ing.
-n2t1inga
-nti1nk.
-n2t1inté
-ntió1
-nti2par
-n2t1irá
-n2t1iro
-n2t1isk
-n2t1ism
-n2t1iste
-nti2vás
-nt1izo
-n2t1íg
-n2t1íj
-nt1írá
-n2t1ívb
-n2t1í2z
-nt1kl
-nt1kr
-n2t1of
-ntoka2
-n2t1o2k1al
-n2t1okl
-n2t1olda
-n2t1oldó
-n2t1o2ly
-nto2m1e2
-nt1opc
-nto2ras
-nto2rék
-nto2rin
-nt1ormá
-nt1orro
-n2t1oszl
-n2t1oszt
-n2t1otth
-ntó1p
-n2t1ó2rá
-n2t1ó2ri
-ntót2
-ntó1tr
-nt1ökl
-nt1ö2kö
-nt1ö2lő
-nt1önt
-n2t1örd
-ntőa2
-ntőé2n
-nt1őrb
-nt1őrl
-nt1őrn
-n2t1őz
-nt1pl
-nt1pr
-nt2rans
-ntransz1
-ntranszk2
-n1t2réf
-n1t2róf
-nt1ry
-nt1sh
-nt1sk
-nt1sp
-nt1st
-ntsz2
-ntszá2m1é
-nt1szv
-nt1t2r
-n2t1udv
-n2t1ug
-n2t1uj
-ntu2mor
-ntu2n
-n2t1una
-nt1und
-ntun1i
-nt1u2rá
-ntu2sza
-nt1utá
-n2t1úg
-n2t1új
-ntú2ral
-ntú2ran
-nt1ú2sz
-n2t1üg
-n2t1ü2lő
-nt1ült
-n2t1üt
-n2t1ü2v
-n2ty1a2l
-n2ty1a2n
-n2tyál
-n2ty1e2l
-n2ty1él
-n2ty1ik
-n2ty1int
-n2ty1iv
-n2tyí
-n2ty1ő2r
-n2tyut
-1nu
-n1ucc
-nu2ga
-nu2go
-2n1ujj
-nu1k2la
-nu1klu
-nu2mü
-2n1und
-2n1u2ni
-2n1u2no
-2n1unt
-nu2ram
-nu2rá
-nu2sal
-nu2sas
-nu2s1av
-nu2s1e
-nu2s1érté
-nu2sik
-nu2sol
-nu1s2po
-nuss2
-nus3szi
-nu2szab
-nu2s3zav
-nu2szir
-nu2szí
-nu2sz1ol
-nu2tal
-nu2tat
-nu2taz
-nu2tál
-nu2te
-1nú
-n1újd
-nú2jí
-2n1újs
-núkész1
-nú1pr
-2n1úr.
-2n1úrb
-2n1úrh
-2n1úrn
-2n1úrr
-2n1úrt
-2n1ú2szá
-2nútb
-2núth
-2nútj
-2n1útk
-2n1útn
-2nútr
-2n1úts
-2nútt
-2n1útv
-1nü
-nü1bl
-2n1ü2dí
-2n1üdv
-nü1fr
-2n1ügg
-nü1gr
-2n1ügy.
-2n1ügyb
-2n1ügyc
-2n1ü2gye.
-2n1ü2gyei
-2n1ü2gyek
-2n1ü2gyes
-2n1ü2gyet
-2n1ü2gyé
-nügy1és
-2n1ügyh
-2n1ü2gyi
-2n1ügyk
-2n1ügyl
-2n1ügyn
-2n1ügyr
-2n1üld
-nü1pr
-nü2rí
-nüst2
-nü1str
-2n1ü2tem
-nü2tés
-nü2ti
-nü2tő.
-nü2tők
-nü2tős
-nü2tü
-nü2vö
-nü2zé
-2n1üzl
-1nű
-nű2zé
-nű2ző
-nva2su
-nvágya2d
-nvá2gy1ada
-nvá2gy1ón
-nvá2r1al
-n2v1át
-nven2ta
-nvé2d1a
-nvé2d1ő2r
-nv1ind
-nvona2l1út
-n2v1os
-nv1sk
-nx1ar
-n2y
-1nya
-2ny1abl
-2ny1abr
-nya2cél
-2ny1adag
-2nyadás
-2nyadó
-nya2dóz
-2nyaff
-nya2gar
-2nyagáh
-2nyagár
-2nyagáv
-2nyagc
-nya2gen
-2nyagi
-2nyagj
-2nyagm
-2nyagos
-2nyagta
-2nyaguk
-2nyagú
-2nyaján
-2nyajk
-2nyajt
-3nyak.
-nya2k1ala
-nya2kara
-2nyakc
-nya2kel
-nya2k1é2k
-nya2kiz
-2nyakt.
-2nyaktá
-2nyaktb
-2nyakti
-2nyaktj
-2nyakto
-2nyaktu
-2ny1a2lag
-2ny1a2lak.
-2nyalakj
-2nyalakk
-2ny1a2lakr
-2nyalany
-nya2lapb
-nya2laph
-nya2lapo
-nya2lapp
-nya2laps
-2ny1alász
-2ny1alb
-ny1alép
-2ny1alm
-ny1alte
-2nyaltú
-2nyamal
-2nyanal
-2nyang
-2ny1ant
-2nyaot
-ny1a2pad
-nya2pát
-2nyapp
-nya2rén
-2ny1arma
-2ny1arz
-nya1sp
-2nyassz
-2nyaszt
-2nyatká
-nya1trá
-2nyaty
-2nyauk
-2nyavat
-1nyá
-2nyábr
-2nyádná
-2nyádt
-2nyáék
-2ny1ág
-2nyáld
-2nyállí
-nyá2lom
-2nyámék
-2nyámná
-2nyáp
-2ny1á2rad
-2ny1á2rai
-2ny1á2rak
-2ny1á2ram
-2nyáras
-2ny1á2rat
-nyá2ráb
-nyá2rán
-nyá2rát
-nyá2ráv
-2nyárc
-2nyáre
-2nyárh
-2ny1árj
-2nyárk
-2nyárp
-3nyárt.
-2nyá2ru
-2nyárú
-2nyárv
-2nyásó
-nyá2szak
-nyá2szár
-2nyáta
-2nyátá
-2nyáté
-2nyátf
-2nyáth
-2nyátk
-2nyátm
-2nyátn
-2nyátö
-2nyátr
-2nyáts
-2nyátt
-2nyátü
-2nyátv
-ny1bl
-ny1br
-ny1cv
-1nydre.
-1nye
-2nyedén
-2nyedzé
-2nyeff
-2nyegyl
-2nyegys
-2nyeke.
-2nyekei
-2nyekéé
-2ny1elb
-2nyelc
-2nyelef
-2nyelemz
-2ny1elf
-ny1elha
-2nyeljá
-ny1elk
-2ny1ellá
-ny1elma
-2nyelnö
-2nyelőí
-2ny1e2lőő
-2nyelőz
-2ny1elr
-2nyelső
-2ny1eltá
-2nyeltér
-2nyelto
-2ny1elül
-nyel2vesz
-2nyelvev
-2nyember
-2nyembl
-2nyembr
-2nyemel
-2ny1emit
-2ny1eml
-2nyenc
-2nyene
-2ny1eng
-nye1p
-2nyerdő
-2nyerej
-nye2rekl
-2ny1erk
-2nyerny
-2nyerőm
-2ny1esemé
-ny1eser
-2nyeseté
-2nyesél
-2nyestj
-2nyeszk
-2nyetik
-2nyeve
-nye2vez
-2nyevé
-2nyevo
-2nyevő
-2ny1ex
-2nyezr
-2nyezüs
-1nyé
-2ny1ébr
-2nyéhen
-2nyéhes
-2nyéhs
-ny1é2jek
-2nyélet
-2nyélm
-2nyéneke
-2ny1é2neké
-2ny1é2nekn
-2ny1ép
-2nyérc.
-2nyérem.
-nyé2r1e2s
-2nyérin
-2nyérő.
-2nyérői
-2nyérőt
-2nyérték
-nyérü2
-2nyérv.
-2nyérzé
-2nyétel
-2nyétke
-2nyétl
-2nyév.
-2nyévb
-2nyéve.
-2nyévei
-2nyévek
-2nyévem
-2nyéven
-2nyéves
-2nyévet
-2nyévez
-2nyévéb
-2nyévér
-2nyévét
-2nyévév
-2nyévf
-2nyévi
-2nyévk
-2nyévm
-2nyévn
-2nyévr
-2nyévs
-2nyévt
-2nyévü
-2nyévű
-2nyévv
-ny1fl
-ny1f2r
-ny1gl
-ny1gr
-1nyi
-2nyibo
-2nyideg
-2nyidej
-2nyidő
-nyié2b
-2nyifjú.
-2nyifjúb
-2nyifjúé
-2nyifjúi
-2nyifjúké
-2nyifjún
-2nyifjúr
-2nyifjús
-2nyifjút
-2nyifjúv
-2nyiga
-2nyiha
-2nyihl
-2ny1ill
-2ny1ima
-2nyimá
-2ny1imb
-2nyimp
-2nyinas
-2nyinc
-2nyind
-2nyinf
-ny1ing.
-2nyinj
-2nyins
-2ny1int
-2nyinv
-2ny1i2p
-2nyirá
-2nyiri
-2nyirod
-2nyirt
-2nyisko
-2nyism
-2nyisp
-2nyist
-2nyivad
-2nyivás
-2nyivó
-2ny1izn
-2ny1izt
-1nyí
-2ny1íg
-2ny1íj
-3nyíl
-2ny1ín
-2ny1ív
-2ny1íz
-1nyjéb
-3nyk.
-nykar1óra
-1nyket.
-1nykk
-ny1kl
-1nykn
-ny1k2r
-ny1k2v
-1nym.
-1nymet.
-1nymt
-1nyn.
-1nyo
-2ny1ob
-2nyodú
-2ny1of
-2ny1okke
-2ny1okl
-2nyokos
-2nyokoz
-2nyokta
-2ny1o2laj
-nyolc1c
-2ny1olda
-2nyoldá
-2nyoldó
-ny1olló
-2ny1oltár
-2nyoltás
-2nyolvas
-3nyom.
-3nyomat.
-3nyomatk
-3nyomatom
-3nyomo
-3nyomt
-2ny1op
-ny1orc
-ny1orm
-ny1ors
-ny1orv
-2ny1osko
-2nyosto
-2nyoszl
-2nyoszt
-2ny1ott
-2ny1ov
-2ny1ox
-1nyó
-ny1ó2ni
-nyó2rác
-nyó2rán
-2nyóri
-nyó2s1ü
-1nyö
-2ny1öb
-2ny1öc
-2ny1ö2l
-ny1önt
-2ny1öv
-1nyő
-2nyőrs
-ny1pl
-ny1pr
-ny1ps
-3nys.
-ny1sc
-3nysek
-ny1sh
-ny1sk
-ny1sl
-ny1sp
-nys2t
-1nyst.
-ny1sta
-ny1stá
-1nyu
-2nyud
-2nyuj
-2nyuká
-2ny1ukrá
-3nyul
-2nyuni
-2nyuno
-ny1urá
-2nyut
-ny1u2ta
-ny1u2tá
-1nyú
-2nyújd
-2nyújé
-2nyújí
-2nyújs
-3nyúl
-nyú2lő
-2ny1úr.
-2nyúrb
-2ny1úrh
-2nyúri
-2nyúrk
-2ny1úrn
-2ny1ú2ro
-2nyúrr
-2ny1ú2sz
-2nyútb
-2ny1úté
-2nyúth
-2ny1úti
-2nyútj
-2nyútk
-ny1útl
-2nyútm
-2nyútn
-2nyútp
-2nyútr
-2nyútt
-2nyútv
-1nyü
-2ny1üd
-2ny1ü2g
-2ny1üld
-ny1üle
-2nyünn
-2ny1ür
-2ny1üt
-2nyüze
-1nyű
-2ny1űr.
-2nyűrb
-2ny1űré
-2ny1űrh
-2ny1ű2ri
-2ny1űrj
-2ny1űrl
-2ny1űrn
-2ny1ű2rö
-2nyűrr
-2ny1űrt
-2ny1ű2zé
-2ny1ű2ző.
-2nyűzőb
-2nyűzően
-2nyűzőé
-2nyűzőh
-2nyűzők
-2nyűzőn
-2nyűzőr
-2nyűzőt
-2nyűzőv
-ny2vék
-ny2v1isk
-ny2vó
-ny2vös
-ny2vő
-ny2vú
-nyzé2ke
-nza2c
-n2z1acé
-nz1adá
-nz1ado
-nz1adó
-nz1a2ga
-nz1agg
-nz1ajta
-nz1akc
-nz1akk
-nzak2o
-n2z1akt
-nz1ald
-n2z1alk
-nz1ang
-n2z1a2ny
-nz1app
-nz1ara
-nz1ará
-nz1arc
-nz1ari
-nz1aut
-nz1á2gy
-nz1áll
-n2z1á2rad
-nz1árny
-nzá2r1ó2ra
-n2z1á2ru
-nzá2s1e2
-nz1ásó
-nzás3s
-nz1át1a2
-nz1d2r
-n2z1e2g
-n2z1elb
-n2ze2leme
-n2z1e2lér
-n2z1elf
-n2z1elha
-n2z1elis
-n2z1elk
-n2z1ellá
-nz1ellen
-n2z1elm
-n2z1elny
-n2z1elo
-n2z1e2lőá
-n2z1e2lől
-n2z1e2lőt
-n2zelőz
-n2z1els
-n2z1elta
-n2z1eltü
-n2z1elver
-n2z1elvé
-n2z1elvo
-nz1ember
-n2z1e2mel
-nz1e2més
-n2z1emi
-nz1eml
-n2zener
-nz1erő
-nzer2t1a2
-nzer2v1a2d
-nzervé2t
-nzer2v1éte
-nzer2vi
-nze2su
-nz1eszk
-n2z1ez
-n2z1ég
-nzé2k1el
-n2z1é2l
-n2z1ér.
-n2z1érd
-n2z1é2rem
-n2z1érk
-n2z1érm
-n2z1érté
-n2z1érv
-n2z1érz
-nz1étv
-nz1gr
-nzi2a
-n2z1i2ga
-n2z1igé
-n2z1ill
-nzi2m1a2
-nzi2má
-nzi2mi
-nzi2n1á2
-nzi2n1o
-nzi2n1ó2
-n2z1i2p
-nz1irá
-nz1ism
-n2z1ist
-nzi2tár
-nzite2
-nzi2t1el
-nzi2ten
-nzi2t1í2ve.
-n2z1íb
-nz1íg
-nz1ín
-nz1kl
-nz1kr
-n2z1okl
-nzo2lin
-nzo2ló
-nzo2n1a
-nzo2né
-nzo2rin
-n2z1osz
-nzókész1
-n2z1ön
-nzö2r
-nz1örö
-n2z1ös
-n2z1ö2v
-n2z1öz
-nz1pl
-nz1pr
-nz3saj
-n2z3sár
-n2z3sát
-n2zsáv
-nz3seg
-n2z3ser
-nz3sik
-n2z3sis
-n2z3sod
-nz3sor
-n2z3só
-nz3s2p
-nz3s2t
-nz3sz
-nztá2r1a2d
-nz1t2r
-n2z1uj
-nzu2l1a
-nzu2mé
-nz1u2ra
-nzu2san
-nzus3s
-n2z1u2t
-nz1új
-nz1ú2t
-n2z1üd
-n2z1ü2g
-nz1üs
-nz1üv
-n2z1ü2z
-nz3zs
-2o.
-o1a
-oa2cé
-oa1fr
-o2aki
-o2a1k2v
-o2ami
-oa2nali
-o2asi
-o2aszó
-o1á
-oá2ga
-oá2r1a2n
-oá2ril
-oá2rí
-oá2r1ol
-oá2zs
-oba1b2
-oba1d2
-o2b1alj
-obal2t1a2
-oba1p
-ob1a2ra
-obau2
-obás3s
-ob1átm
-ob2b1eg
-ob2bö
-o2b1eg
-ob1ele
-o2b1e2m
-o2b1erő
-o2b1ez
-o2b1é2g
-o2b1érz
-obi2ki
-obi2k1ó2
-obi2lin
-obi2lip
-obina2
-ob1ina.
-obi2n1al
-o2b1ing
-o2b1i2s
-ob1ív
-1objek
-ob1kl
-1o2boa
-o2b1oll
-obo2r1a
-obo2rin
-obo2r1os
-obo2t1á2
-obo2tin
-obókész1
-o2b1ó2né
-ob1ó2rá
-ob1öt
-ob1pr
-1obst
-o2b1ut
-o2b1ú2s
-ob1üg
-ob1ür
-ob1üt
-ob1űr
-oca2ké
-o2c1ág
-o2c1ál
-oc1er
-oc1é2k
-o2c3hi.
-oc3hok
-oc3hot
-oci3a
-ocie2
-oci1k2r
-oció2
-oci1p
-oci1sz2
-o1c2kef
-oc2k1é2l
-ocké2n
-ock1éne
-o1c2kér
-o1c2két
-o1c2ki.
-oc2kia
-o1c2kig
-o1c2kin
-o1c2kit
-o1c2kiv
-oc2kop
-o1c2kosn
-o1c2koso
-o1c2kosr
-o1c2koss
-oc1pr
-o2c3sap
-o2cs1ál
-ocsá2s
-o2cs1ász
-o2cs1á2z
-o2cs1e2
-oc3sér
-ocsié2ra
-o2cs1ing
-ocs1izm
-o2csí2
-oc3sín
-o2csop
-ocs1s
-ocs1t
-o2csuj
-o2cs1ü2
-oc3sza
-ocs3zá
-oc3sze
-oc3zs
-o2daad
-oda1b2
-o2d1adj
-oda1dr
-o2d1akk
-o2d1alj
-oda1p2
-odas2
-o2d1ass
-od1aszt
-odat2
-oda1tr
-od1autó
-odáb2
-od1állá
-o2dáru
-odáskész1
-odás3s
-odá2s3z
-1o2dáz
-od1ed
-ode2l
-odel2l1a
-ode2min
-od1e2v
-o2d1é2g
-od1é2ne
-o2d1ép
-o2d1érd
-o2d1é2te
-o2d1é2ve
-od1é2vé
-2odéz
-od1ide
-odi2g
-o2d1iga
-o2d1ikre
-odi2l1e
-odi2lid
-odi2lik
-odi2l1is
-o2d1int
-o2d1iro
-od1isp
-od1í2z
-od1kl
-od1obo
-o2d1okt
-o2d1op
-odo2rak
-odo2rosz
-od1ö2l
-od1ö2r
-od1ő2r
-od1pr
-o1d2ram
-o1d2ráma
-od1st
-odu2l1a2l
-o2d1u2r
-1odún
-od1üg
-od1ün
-od1üz
-1odváb
-od3ze
-od3zo
-o1e
-oe2ir
-oe2le
-oe2mu
-oe2ne
-oe1t2he
-oe2ur
-oe2uv
-o1é
-o2éfa
-o2éfá
-o2éfo
-o2éke
-o2éki
-oéna2
-oé2n1al
-oé2n1an
-oé2n1ar
-oéná2
-oé2n1ár
-oé2nis
-o2ész
-o2évi
-ofi2lad
-ofi2lak
-ofi2l1á
-ofi2lel
-ofi2lér
-ofili2
-ofi2l1iga
-ofi2l1igá
-ofi2lis
-ofi2l1osz
-ofi2tal
-ofi2t1e2
-of2la
-of2ló
-ofona2
-ofo2n1al
-ofo2nan
-ofo2n1á
-ofo2n1ér.
-ofon3n
-ofo2n1ó2
-ofor2m1á2
-ofő2r1e
-ofőrü2
-of2rí
-og1abr
-o2g1a2g
-oga2kar
-o2g1aká
-o2g1a2la
-o2g1a2lá
-o2g1alj
-og1all
-og1alt
-og1alu
-o2g1a2ny
-o2g1ap
-o2g1a2ran
-og1arc
-o2g1a2sz
-oga2t1a2g
-oga2t1e2
-oga2t1i2n
-og1a2ty
-2ogaz
-o2g1á2g
-og1áll
-og1álm
-o2g1áp
-o2g1á2rak
-o2g1áre
-o2g1árja
-o2g1árját
-o2g1á2rok
-ogá2ros
-o2g1á2ru
-ogáskész1
-o2gásó
-o2g1áta
-o2g1áte
-o2g1átj
-o2g1átk
-o2g1átl
-o2g1átn
-o2g1á2to
-o2g1átr
-o2g1áts
-o2g1átt
-og1átü
-o2g1átv
-og1bl
-ogdí2j1a2d
-og1dr
-o2g1e2d
-o2g1e2g
-ogegész1
-o2g1e2l
-o2g1em
-o2g1e2p
-oge2r
-og1ere
-og1ern
-og1erő
-oge2s
-o2g1ese
-o2g1e2v
-o2g1ez
-o2g1é2g
-o2g1é2l
-ogén1n
-o2g1é2p
-o2g1ér.
-og1érte
-og1érté
-o2g1értő
-o2g1érv
-o2g1és
-og1fl
-og1fr
-og1g2l
-o2g1ic
-o2g1i2d
-o2g1if
-ogi2g
-o2g1iga
-o2g1igé
-o2gill
-og1inf
-o2g1ing
-og1ins
-o2g1int
-o2g1ip
-og1i2ro
-og1ita
-o2g1íj
-og1ín
-og1ír
-og1ív
-og1kl
-og1kr
-o1g2lic
-o1g2nai
-o2g1odv
-og1org
-og1orr
-og1orz
-o2g1oszl
-o2g1oszt
-o2g1o2v
-og1ö2b
-og1ö2l
-og1ö2r
-og1ös
-og1ő2r
-og1pl
-og1pr
-2ografi
-2ograp
-2ográf.
-2ográff
-o1g2ráffa
-o1g2ráfh
-o1g2ráfj
-o1g2ráfr
-o1g2rál
-og1sk
-og1sp
-og1s2t
-og1tr
-og1u2ra
-og1u2ru
-o2g1u2s
-o2g1u2t
-o2g1új
-og1ü2g
-og1ül
-og1ür
-og1üt
-og1üz
-og1űz
-ogy1a2c
-ogy1a2p
-ogy1is.
-ogy1os
-ogyóé2
-oha2mal
-oha2mel
-oha2mes
-oha2mis
-ohas2
-oha1sp
-o2h1ág
-o2h1ál
-ohá2nyad
-ohá2nyan
-ohá2r1e
-ohá2szi
-ohá2sz1odv
-o2h1á2z
-oh1e2c
-oh1ing
-oh2ni
-o2h1orr
-ohó2csi
-oh1órá
-oh1ö2v
-oh1urá
-o1i
-oi2ae
-oi2af
-oi2an
-oi2av
-oi2ába
-oida1
-oi2d1ad
-oi2dan
-oi2dál
-oi2d1e2
-oi2dol
-oi2d3z
-oilet2
-oina2
-oi2n1ad
-oi2ne
-oi2re
-oisel2
-oi2zo
-o1í
-ojá2r1as
-ojás3s
-ojás3z
-ojek2t1á2
-ojek2t1í2
-ojek2t1o2
-oj1in
-oj2t1ára
-oj2t1orják
-ojtóá2
-ok1abl
-ok1a2cé
-o2k1a2dat
-o2k1a2dá
-o2k1a2dó
-o2k1a2kar
-ok1akv
-o2k1alj
-o2k1alk
-ok1alm
-ok1alt
-ok1ang
-ok1ani
-o2k1ant
-oka1p2l
-ok1app
-ok1a2ra
-ok1arc
-oka2ris
-o2k1asp
-o2k1ass
-ok1aszf
-ok1aszt
-o2k1att
-o2k1aty
-oka2u
-ok1aut
-o2k1ava
-o2k1ág
-ok1ájt
-ok1árad
-o2k1á2rak
-oká2rul
-o2k1árv
-oká2sal
-ok1ásó
-okás3s
-ok1ász
-o2k1áte
-ok1bl
-ok1br
-ok1dr
-o2ke.
-ok1e2b
-o2k1e2c
-oke2d
-ok1edé
-o2k1e2g
-o2k1e2l
-o2k1e2m
-ok1eré
-ok1erk
-ok1ernel.
-ok1e2rő
-o2ke2s
-ok1esé
-o2k1e2v
-ok1e2z
-o2k1ég
-ok1é2ke
-ok1é2ké
-o2k1él.
-ok1é2les
-ok1é2let
-ok1é2lé
-ok1éln
-ok1élt
-o2k1é2ne
-oké2p
-oké3pá
-ok1épí
-o2k1épü
-o2k1ér.
-o2k1érb
-o2k1érc
-o2k1érd
-o2k1érg
-o2k1érh
-o2k1é2ri
-o2k1érm
-o2k1érr
-ok1értá
-o2k1érte
-o2k1érté
-ok1értö
-o2k1érz
-oké1s2
-okész2
-o2k1étk
-o2k1étt
-o2k1é2ve
-ok1fl
-ok1fr
-ok1gr
-o2k1i2de
-o2k1i2do
-ok1i2ga
-okigaz1
-ok1igá
-o2k1igé
-ok1ind
-o2k1int
-o2k1i2rá
-o2k1i2ro
-o2k1isk
-ok1ism
-o2k1isp
-ok1iste
-o2k1i2ta
-o2k1izm
-ok1íj
-ok1ír
-ok1ív
-ok1íz
-ok2kab
-ok2k1a2d
-ok2k1aj
-ok2k1ale
-okk1alk
-ok2k1as
-ok2kaz
-okk1elh
-okk1elö
-okk1elő
-okk1elr
-1okkeré
-ok2k1es
-ok2képü
-ok2kid
-ok1kló
-ok2kob
-okk1öss
-okk1ö2vű
-ok1kri
-ok2kud
-ok2k1ur
-o1k2lí
-ok2lor
-o2k1ob
-okola2
-oko2lár
-o2k1oltás
-okon1n
-oko2n1oks
-oko2ra
-oko2r1á
-oko2ril
-oko2ris
-o2k1ormú
-ok1o2ro
-o2k1osz
-ok1o2varia
-o2k1o2vi
-o2k1öb
-o2k1ö2d
-ok1ö2k
-o2k1öl
-o2k1ön
-okö2r
-o2k1ös
-o2k1ö2v
-ok1ö2z
-ok1ő2r
-ok1pl
-ok1pr
-o1k2ris
-o1k2róm
-ok2sel
-ok1sp
-oksz1alm
-ok2szan
-ok2sz1es
-ok2sz1is
-1oktán
-o2k1ud
-o2k1ug
-o2k1uj
-ok1u2ra
-o2k1u2t
-ok1úr.
-ok1úrb
-ok1úrh
-ok1úrr
-ok1úsz
-o2k1útb
-o2k1úth
-o2k1ú2ti
-o2k1útj
-o2k1útk
-o2k1útn
-o2k1útr
-o2k1útt
-ok1útu
-o2kútv
-ok1üg
-ok1ü2l
-ok1ün
-ok1ür
-ok1ü2t
-ok1ü2v
-ok1üz
-ok1űz
-o3la.
-ol1abl
-ola1d2
-ola1f2
-1o2laj.
-1o2lajb
-1o2lajf
-1o2lajg
-1o2lajh
-1o2laji
-1o2lajj
-1o2lajk
-1o2lajm
-1o2lajn
-1o2lajp
-1o2lajr
-1o2lajs
-o2lajt
-o2laju
-1o2lajú
-o2lajv
-ola1k2r
-o2l1alg
-ol1alk
-ol1amn
-ol1anya
-ola1p2
-ola1s2p
-ola1s2t
-ola2t1ala
-olat1any
-ola2tál
-ola2táp
-ola2ték
-ola2t1inf
-ola2t1í2v
-ola2t1ol
-ola2t1orn
-ola2t1öl
-ola2tüz
-olau2r
-ol1ábrá
-o2l1á2g
-olá2ha
-ol1áll
-o2l1árb
-o2l1árh
-o2l1á2ria
-olá2riá
-o2l1árk
-o2l1árn
-olá2rok
-olá2ron
-o2l1árr
-o2l1árt
-o2l1á2ru
-olá2sza
-o2l1á2ti
-o2l1átv
-ol2caj
-ol2cal
-olca2n
-olc1any
-ol2c1e2k
-ol2cel
-ol2ces
-ol2c1év
-ol2c3h
-olc1iko
-ol2cí
-ol2có
-ol2cö
-ol2c3sor
-ol2csű
-olc3sz
-ol2cü
-ol2cz
-ol2dab
-1oldal.
-1oldalá
-1oldalb
-olda2le
-1oldalh
-1oldalk
-1oldall
-1oldaln
-1oldalo
-1oldalr
-1oldalt
-1oldalu
-1oldalú
-ol2d1any
-ol2dap
-olda2tel
-ol2d1au
-ol2dál
-ol2deg
-ol2d1elé
-ol2d1ell
-ol2d1elv
-old1emb
-ol2d1e2r
-ol2d1e2s
-ol2dev
-ol2dez
-ol2dés
-ol2d1éve
-ol2dip
-ol2d1is
-ol2dor
-1oldós
-ol2d1ö2
-ol2dud
-ol2d1u2g
-ol2d1ü
-ol2dű
-ol1e2g
-o2l1e2l
-o2l1é2d
-o2l1é2g
-o2l1él
-ol1ér.
-ol1érd
-ol1é2re
-ol1éré
-ol1érh
-ol1é2ri
-ol1érj
-ol1érl
-ol1érn
-ol1érő
-ol1érs
-o2l1érté
-ol1é2rü
-ol1érv
-o2l1érz
-olfa2k
-ol2fau
-ol2f1ár
-ol2fes
-ol2fet
-olf1ing
-ol2fir
-ol2fis
-olfu2
-ol2f1ut
-ol2fúj
-ol1gl
-ol1g2r
-2olib
-o2l1i2du
-1o2liga
-oli2gáz
-o2l1igé
-ol1ill
-ol1i2ma.
-o2l1i2má
-1olimp
-oli2nu
-o2l1i2pa
-olipe2
-oli2p1et
-o2l1isk
-oli2szál
-ol1ív.
-oll1a2gy
-ol2l1aj
-olla2l
-ol2l1ala
-ol2l1alj
-ollan2d1ó2
-oll1any
-ol2l1atk
-oll1att
-ol2l1á2g
-ol2l1e2c
-oll1ege
-oll1egé
-ol2l1e2gy
-ol2l1e2h
-olle2l
-oll1ele
-ol2l1emb
-oll1ese
-ol2l1é2k
-ol2l1éri
-ol2l1inf
-oll1inge
-oll1ingé
-oll1ingi
-oll1ingj
-oll1ingn
-oll1ingr
-oll1inj
-ol2lins
-ol2l1int
-oll1isk
-ol2lob
-ol2lor
-ol2l1osz
-ol2l1ö
-ol2l1ő2
-oll1s
-ol2lub
-ol2lul
-ol2l1u2s
-ol2lü
-ol3lyu
-oln1ike
-o2l1o2l
-o2l1op
-olo2r1e
-ol1ott
-o2l1ox
-olóe3dénn
-oló1f2
-o2l1ó2né
-ol1ónn
-ol1ó2no
-ol1ónr
-ol1ónt
-oló2rái
-oló2ráj
-oló2rák
-oló2rán
-oló2rár
-oló2rát
-ol1ó2ri
-olót2
-oló1tr
-ol1ö2l
-ol1ör
-ol1ös
-ol1p2l
-ol1p2r
-ol1sk
-ol2t1aj
-1oltalm
-1oltalo
-ol2t1ari
-ol2t1ág
-ol2t1áta
-ol2t1eg
-ol2t1em
-olte2r
-ol2t1ere
-olte2s
-ol2t1e2v
-ol2t1ép
-ol2t1ér.
-ol2t1érr
-ol2t1és
-ol2tid
-ol2tim
-ol2tis
-ol2tiz
-ol2t1old
-1oltóé
-1oltóh
-1oltóké
-1oltólo
-1oltóm
-1oltón
-oltö2r
-ol2t1őr
-ol2tür
-o2l1ug
-o2l1ur
-o2l1u2tá
-ol1ús
-ol1üg
-ol1ül
-ol1üv
-ol1üz
-1olvad
-1olvas
-o2lyabr
-oly1ada
-oly1aggy
-olyame2
-olya2mes
-oly1aszt
-o2lyál
-o2ly1e2
-1o2lyéb
-1o2lyéh
-1o2lyéi
-o2lyél
-1o2lyén.
-1o2lyiér
-o2lyim
-2olyó
-o2ly1ö
-o2lyő
-o2lyug
-o2ly1ü2
-o2ly1ű2
-o2m1abl
-om1a2dat
-o2m1adm
-o2m1a2dó
-o2m1adt
-oma1f
-omaga2
-oma2ga.
-oma2g1ad
-oma2gal
-oma2g1á2
-oma2ge
-omagi2
-oma2g1in
-o2m1a2gya
-om1agyú
-o2m1ajá
-o2m1ajk
-oma1kré
-o2m1akt
-om1a2lag
-oma2lapo
-oma2lapr
-o2m1alm
-om1alt
-om1alv
-o2m1amb
-om1ang
-o2m1ann
-om1apad
-o2m1app
-oma1pr
-o2m1a2ra
-o2m1arc
-o2m1arg
-oma2t1árak
-o2m1atká
-o2m1aty
-o2m1au
-om1a2zo
-omá2cs
-omá2g
-om1ági
-om1ágo
-omá2nyan
-ományká2
-o2m1áp
-o2m1á2rai
-om1á2rak
-om1á2ram
-om1áras
-o2m1á2rá
-o2m1árd
-o2m1áre
-omá2ré.
-omá2rét
-o2m1árg
-omá2ria
-omá2riá
-o2m1árm
-o2m1á2ru
-omá2sí
-omás3s
-omá2sz
-omás3zó
-o2m1á2t1e
-om1á2t1é
-o2m1átk
-o2m1átm
-om1átol
-o2m1átr
-om2b1a2lo
-om2bág
-om2b1eg
-omb1elh
-om2b1elt
-omb1éne
-om2b1éri
-omb1ón.
-ombó2r
-omb1óra
-om1bro
-om2buj
-omdio2
-om1dr
-o2m1e2b
-o2m1e2ce
-o2m1e2dé
-om1ef
-ome2g
-ome3gá
-om1ege
-om1egé
-o2m1egy
-ome2l
-o2m1ela
-om1elá
-om1elb
-o2m1ele
-o2m1elé
-om1elk
-om1ellá
-o2m1elm
-o2m1eln
-o2m1elo
-o2m1elő
-o2m1els
-om1elte
-o2m1elu
-o2m1elv
-o2m1e2m
-om1ene
-om1eng
-om1eny
-om1enz
-ome2o
-o2mep
-om1erd
-o2m1e2red
-o2m1e2rei
-o2m1erny
-om1e2ro
-ome2rő
-o2m1erő.
-o2m1erőb
-o2m1erőh
-o2m1erőn
-o2m1erőr
-om1erősí
-omer1őss
-o2m1erőt
-o2m1erőv
-om1e2rű
-ome2s
-om1ese
-om1esé
-om1ess
-om1est
-o2m1e2ti
-o2m1etn
-o2m1etű
-o2m1e2v
-o2m1ex
-ome2z
-o2m1eze
-o2m1ezred
-o2m1ébe
-om1é2de
-o2m1ég
-o2m1é2he
-o2méhs
-om1éje
-o2m1é2ke
-o2m1é2le
-om1élé
-om1é2lő
-o2m1ép
-o2m1ér.
-o2m1érb
-o2m1érc
-o2m1é2re
-o2m1é2ré
-omé2ri.
-o2m1érm
-o2m1é2rő
-o2m1érr
-o2m1érte
-o2m1érté
-o2m1értő
-o2m1érv
-o2m1é2s
-omé2tel
-o2m1étt
-o2m1éve
-om1évé
-om1f2l
-om1gl
-om1gr
-om1ide
-omid1i2
-om1i2dő
-omi2g
-o2m1iga
-o2m1igé
-om1iks
-o2m1ill
-om1imá
-omime2
-omi2mel
-omi2m1é
-om1i2na.
-omi2náb
-omi2náv
-o2m1ind
-om1inf
-o2m1ing
-om1inv
-o2m1i2ono
-o2m1i2p
-o2m1irá
-o2m1i2ri
-o2m1iro
-o2m1irt
-o2m1isk
-o2m1ism
-o2m1iste
-omi2sz1á
-om1i2tal
-omi2tan
-omi2t1ás
-omi2t1e
-omi2tis
-om1izé
-om1izo
-om1izz
-om1íj
-o2m1ír
-om1í2v
-om1í2z
-omjó2
-om2jő
-omká2rok.
-om1kl
-om1kr
-omlá2b1út
-omo2dor
-omo2kas
-2omoly
-o2m1ont
-om1ope
-omo2ras
-omo2re
-omo2riz
-o2m1orjá
-om1osto
-omosz2f
-o2m1oszt
-o2m1ox
-om1ök
-om1ö2l
-om1ön
-om1ö2r
-om1ös
-om1ö2t
-om1öv
-om1ö2z
-om1ő2r
-om1ő2s
-om2pel
-om1pla
-om2p1ors
-om2pő
-om2p1u2tá
-om1sk
-om1sl
-om1sp
-om1st
-om2te.
-omtes2s
-om1t2r
-o2m1ud
-o2m1ug
-o2m1uj
-omu2n
-o2m1uno
-o2m1ur
-o2m1u2t
-o2m1u2z
-o2m1új
-om1üd
-om1üg
-om1ü2l
-om1ür
-om1üs
-om1üt
-om1üv
-om1üz
-om1űr
-om1űz
-om1ya
-o2n1abl
-ona2cél
-ona2dat
-ona1dr
-on1ads
-onae2
-on1agg
-on1agi
-on1agó
-on1agyh
-on1ajn
-o2n1ajt
-2onak
-on1akc
-o2n1akk
-on1akn
-o2n1akt
-ona2len
-ona2l1e2s
-ona2lint
-on1alj.
-on1alju
-ona2lok
-ona2los
-1onani
-o2n1a2no
-o2n1ant
-on1app
-ona1pr
-ona1ps
-ona2rác
-onarádi2
-ona1s2p
-ona2tál
-onatü2
-ona2tüz
-on1ábr
-2onác
-o2n1ág
-o2n1állo
-o2n1állv
-o2n1á2p
-on1árad
-o2n1á2rak
-on1á2rat
-on1árb
-o2n1árk
-o2n1árn
-o2n1á2ro
-o2n1árt
-o2n1á2ru
-o2n1á2rú
-on1árv
-o2n1á2sza
-o2n1á2szokr
-o2n1átál
-oná2tás
-o2n1átc
-o2n1áte
-oná2t1ér
-o2n1átf
-o2n1áthe
-o2n1átm
-o2n1átre
-on1bl
-on1br
-on2cal
-on2c1ál
-on2c1e2g
-once2s
-on2c1ez
-on2c1ék
-on2c1ér.
-on2c1éré
-on2che
-on2cid
-on2c1ikr
-onc1ill
-on2cös
-onc3ság
-on2cseg
-oncs1emb
-oncs1ég
-on2cs1ér.
-onc3sikk
-on2cs1im
-on2cú
-on2cü
-on2de.
-ond1iko
-on2d1o2kos
-ond1oksá
-on2d1osz
-2ondoz
-on2d1öl
-on1e2b
-o2n1e2d
-on1e2ge
-on1egg
-o2n1e2gy
-on1e2h
-one2l
-o2n1ela
-o2n1ele
-on1el1é
-o2n1elh
-on1elj
-o2n1elm
-o2n1eln
-o2n1elo
-on1elő
-o2n1elr
-on1els
-on1elt
-o2n1elv
-o2n1e2m
-one2n
-on1ene
-on1erj
-on1erk
-on1ers
-one2s
-o2n1ese
-ones2s
-on1est
-o2n1e2v
-o2n1ex
-2onéb
-oné2d
-on1éde
-o2n1é2g
-o2n1é2he
-on1é2ke
-on1éks
-o2n1é2l
-on1é2ne
-o2n1é2p
-o2n1érbe
-o2n1érc
-o2nérd
-o2n1éri
-o2n1érl
-o2n1érm
-o2n1érp
-o2n1érs
-o2n1érte
-o2n1érv
-o2n1év.
-o2névad
-o2n1évb
-o2n1é2ve
-on1é2vi
-o2n1évk
-o2n1évn
-on1évr
-on2g1áll
-ongás1s
-on2g1e2c
-on2ged
-on2g1eg
-on2g1e2l
-on2gik
-on1g2ló
-on2gü
-on2gyad
-on2győ
-onháro2
-onhárom1
-o2n1i2d
-oni2g
-o2n1iga
-o2n1ige
-o2n1igé
-o2n1ij
-on1i2ke
-o2n1ill
-o2n1inb
-on1ind
-o2n1inf
-o2n1ing
-o2n1inj
-o2n1inn
-o2n1inr
-o2n1ins
-o2n1int
-o2n1i2p
-on1i2rá
-o2n1iro
-o2n1irt
-o2n1isk
-o2n1ism
-on1iste
-onita2
-o2n1i2zé
-on1izo
-o2n1izz
-on1íg
-o2n1ín
-o2n1ív
-on1íz
-onk1áll
-onká2rok.
-onké2t1
-on2ne.
-on3nyár
-on3nye
-on3nyo
-on3nyú
-on3nyü
-o2n1ob
-ono1g2ráf.
-ono1g2ráfn
-onoka2
-on1o2kal
-on1o2kos
-o2n1okta
-o2n1old
-on1oll
-on1opt
-on1oszl
-ono1sztr
-o2n1o2v
-o2n1ox
-o2n1óri
-onó2sak
-onó2si
-onó2szen
-on1öb
-on1öl
-on1ön
-on1ör
-on1ös
-on1ö2t
-on1ö2v
-on1ö2z
-on1ő2s
-on1pl
-on1pr
-on1ps
-2ons.
-onsa2v1a2m
-on1s2k
-on1sl
-on1s2m
-on1spe
-on1spo
-on1spr
-on1sr
-on1sto
-onsz2
-on1szf
-on1szt
-ont1agy
-on2t1aj
-on2t1alk
-on2t1ara
-on2t1atr
-on2taz
-on2t1áll
-ont1árv
-on2teb
-on2t1ed
-on2t1e2g
-ont1elá
-ont1eld
-ont1elh
-ont1ell
-ont1elm
-on2teln
-on2t1elő
-ont1elt
-ont1elv
-ont1emb
-onte2s
-on2t1ese
-ont1éké
-on2tél
-on2tigé
-on2t1i2ko
-ont1ikr
-on2t1i2m
-on2t1inf
-on2t1int
-onti2sz
-ont1iszo
-on2t1iz
-on2t1í2v
-on2t1oml
-on2t1ors
-ont1óni
-1ontóst
-on2t1ös
-on2t1öz
-on2tül
-on2tür
-on2t1üz
-on2tye
-o2n1ud
-o2n1ug
-o2n1uj
-onu2n
-o2n1una
-o2n1u2r
-o2n1u2t
-o2n1új
-o2n1ú2s
-onú2t
-on1útb
-on1úté
-on1úth
-on1úti
-on1útj
-on1úto
-on1útr
-on1útt
-on1ü2c
-o2n1ü2g
-on1ü2l
-o2n1ün
-o2n1ür
-o2n1ü2t
-on1ü2v
-o2n1ü2z
-on1űr
-on1űz
-o2ny1acé
-ony1a2dó
-ony1akc
-ony1alj
-o2ny1alk
-ony1alt
-ony1anya
-onya1p2
-o2ny1apó
-o2ny1ál
-ony1árk
-o2ny1árn
-ony1ázó
-ony1e2c
-ony1e2g
-o2ny1e2l
-o2ny1e2m
-o2nyen
-o2ny1e2r
-ony1e2s
-o2ny1ég
-o2ny1é2j
-o2ny1é2k
-o2ny1él
-o2ny1é2ne
-o2ny1ér.
-o2nyéré
-onygóc1
-o2nyigé
-ony1iko
-ony1ing
-o2nyita
-o2nyitók
-o2ny1í2r
-ony1old
-ony1oml
-o2ny1o2r
-o2nyosz
-ony1ó2r
-o2ny1ö
-o2ny1ő2
-o2nyug
-o2ny1ur
-o2ny1ü2
-onz1abl
-on2zag
-onz1ajtó
-on2zar
-on2zág
-on2z1á2l
-on2z1ed
-on2z1e2l
-on2z1e2m
-on2z1es
-on2z1ék
-on2z1ére
-on2z1im
-onz1ing
-onz3sel
-on2zü
-o1o
-oo2ib
-oo2in
-oo2pe
-oo2re
-oo2xi
-o1ó
-o1ö
-o1ő
-o2p1a2b
-o2p1a2d
-o2pal
-op1a2la
-o2p1any
-op1a2po
-op1a2r
-opa2u
-o2p1a2z
-o2pál
-o2p1ám
-o2p1á2rat
-opáskész1
-o2p1áth
-o2p1átl
-o2p1átm
-op1bl
-op1e2dé
-op1e2g
-op1ejt
-op1elő
-op1em
-opera1s
-operasz2
-op1erd
-op1erk
-op1erő
-op1es
-op1e2t
-o2p1é2l
-o2p1é2n
-op1gr
-op1i2ko
-op1ikr
-o2p1im
-op1ind
-o2p1ing
-o2p1i2p
-o2piram
-o2p1i2rá
-op1isi
-op1ist
-o2p1i2ta
-opi2z
-op1izo
-op1izz
-op1ív
-op1kl
-op1kr
-o2p1ob
-2opol
-o2p1orj
-o2p1orr
-opor2t1a2
-opor2t1á2
-opor2t1e2
-opor2t1érd
-opor2tö
-o2p1orzó
-oposz2f
-o2p1ov
-op1ös
-op2pé
-op2p1is
-op1py
-2opro
-op2roc
-op2rod
-op1sl
-op1sp
-op1sr
-op1s2t
-o2p1ud
-o2p1u2r
-o2p1u2t
-op1új
-o2p1ús
-op1üd
-op1üg
-op1üt
-op1üz
-o2r1abl
-o2r1abr
-ora2dat
-o2r1a2dá
-or1adm
-o2r1a2dó
-or1aff
-or1agg
-or1a2gó
-ora2kad
-ora2kas
-o2r1akc
-ora1kl
-ora2kol
-o2r1akt
-or1alg
-o2r1alj
-or1alk
-o2r1alm
-o2r1alt
-o2r1alv
-or1amp
-o2r1ana
-o2r1ane
-o2r1ank
-o2r1a2no
-o2r1ant
-or1a2nya
-oraó2
-or1app
-o2r1a2rá
-o2r1arc
-or1a2ri
-or1aszk
-o2r1atk
-o2r1atl
-or1att
-or1aty
-o2r1a2zo
-o2r1ábr
-orá2cs
-or1ács.
-or1ácsa
-or1ácso
-o2r1á2g
-orá2le
-or1álló
-o2r1állv
-orá2lö
-o2r1á2p
-o2r1ár.
-o2r1á2rak
-o2r1árá
-o2r1árb
-o2r1árk
-o2r1á2ro
-o2r1árp
-o2r1árr
-o2r1árt
-or1á2ru
-or1árú
-o2r1árv
-o2r1ásv
-orá2sze
-o2r1áta
-o2r1á2t1e2
-o2r1átf
-o2r1áth
-o2r1átj
-o2r1átk
-o2r1átm
-o2r1átr
-o2r1áts
-o2r1átt
-o2r1átv
-or1bl
-or1br
-or2c1a2l
-or2car
-1orcád
-or2chá
-or2c3hé
-or2c3ho
-orc3ság
-or2c3seb
-or2c3sé
-or2cú
-or2cz
-or2d1au
-ord1eme
-ord1e2ső
-or2dex
-or2d1ing
-2orea
-o3reá
-o2r1e2b
-or1ecs
-o2r1e2d
-o2r1ef
-or1e2ge
-or1e2gé
-o2r1e2gy
-2ore2k
-or1eke
-or1eké
-ore2l
-or1ela
-or1ele
-or1elh
-or1elj
-or1elm
-or1eln
-or1elo
-or1elő
-or1elr
-or1els
-or1elt
-or1elv
-o2r1e2m
-ore2n
-or1ene
-o2r1eng
-or1eny
-o2r1ep
-or1eró
-ore2s
-or1ese
-or1esé
-or1eső
-o2r1ess
-o2r1esze
-o2r1e2v
-or1ez
-o2r1é2d
-o2r1é2g
-o2r1é2j
-oré2kás
-oré2k1e2
-or1ékné
-o2r1é2l
-o2r1é2m
-o2r1é2ne
-o2r1ép
-o2r1éré
-o2r1é2te
-o2r1étk
-o2r1év.
-o2r1é2ve
-o2r1é2vé
-o2r1é2vi
-o2r1évn
-o2r1évr
-orfé2l1é2v
-orfi2úér
-2orgiai
-or1gl
-o2r1ibo
-o2r1i2de
-o2r1i2dé
-oridi2
-ori2d1io
-1o2rie
-o2r1ifj
-o2r1i2ga
-o2r1i2gá
-o2r1i2gy
-or1iha
-o2r1i2ma.
-o2r1i2má
-o2r1i2na.
-o2rinas
-o2r1i2nán
-o2r1i2nát
-or1i2náv
-o2r1ind
-o2r1inf
-o2r1ing.
-o2r1ingc
-o2r1ingé
-o2r1ingi
-o2r1ingn
-o2r1ingr
-o2r1ings
-or1inh
-o2r1inj
-o2r1ins
-orin2t1a2
-orin2tel
-orin2t1ő
-ori2og
-o2r1i2p
-o2r1i2si
-o2r1ism
-or1isp
-o2r1iste
-o2r1i2szá
-ori2tan
-o2r1i2zé
-o2r1íg
-o2r1í2j
-o2r1í2n
-o2r1ír
-o2r1í2v
-o2r1í2z
-1orjaia
-1orjaié
-or3já
-or1k2l
-orkö2z1e2p
-or1k2v
-or2m1app
-orma1t2re
-or2m1att
-or2m1azo
-or2m1eb
-orme2g
-or2m1egy
-orm1eli
-orm1elv
-orm1erők
-orm1esz
-ormé2t
-or2m1éte
-or2m1osz
-or2móv
-or2m1ö
-or2m1ő
-or2mü
-or2ne.
-ornis1s
-o2r1o2á
-orogkész1
-oro2k1á2
-oro2kor
-o2r1olda
-o2r1o2li
-o2roltól
-o2r1ontó.
-o2r1ontób
-or1ontóé
-or1ontóig
-o2r1ontój
-o2r1ontón
-o2r1ontór
-o2r1ontót
-o2r1ontóv
-oro2nya
-oro2nyo
-or1ope
-or1opt
-o2r1o2r
-o2r1osko
-o2r1osto
-1o2roszi
-1o2roszr
-o2rosztá
-o2r1o2x
-or1ó2ia
-or1ó2ni
-or1ó2rá
-or1óri
-or1ó2sá
-oróso2r
-oró2soro
-or1ö2b
-or1ö2c
-or1ö2l
-or1ön
-or1ör
-or1ös
-or1öt
-or1öv
-or1ö2z
-or1ő2r
-or1ő2s
-or1ph
-or1pl
-or1p2n
-or1p2r
-orr1abl
-or2r1a2r
-or2r1áta
-1orrb
-1orri.
-or2rin
-or2riz
-1orrk
-1orruk
-1orrú.
-1orrúc
-or2s1a2d
-or2s1ajtók
-ors1alk
-ors1ass
-or2s1ál
-or2sed
-or2s1e2s
-or2s1é2ne
-or2sérte
-ors1é2tát
-or2s1í2r
-or2sön
-or2ső
-or1srá
-or1s2tab
-ors1ült
-ors1ü2tő
-1ország
-orszi2l1
-ors3zóná
-or1sz2t
-or2t1agg
-or2t1alm
-or2tana
-orta2n1á2c
-or2t1aré
-or2tág
-ort1árad
-ort1á2ram
-ort1á2rán
-ort1á2rár
-ort1árbe
-ort1árná
-ort1á2ruk
-or2t1á2rú
-or2t1e2g
-ort1ejt
-or2t1ela
-ort1e2lem
-or2t1elé
-or2t1ell
-or2t1elm
-or2t1eln
-or2t1elo
-or2t1elő
-or2t1elt
-ort1elv
-ort1emb
-or2tene
-orte2r1a
-or2t1ess
-ort1eti
-ort1éle
-ort1élé
-ort1élt
-ort1élv
-or2t1érm
-or2tid
-ort1i2ku
-or2t1int
-or2t1ist
-or2t1ita
-or2tít
-or2t1okm
-or2t1o2kol
-or2t1okta
-or2t1old
-or2t1orm
-or2t1ott
-or2t1ó2r
-or2t1ön
-or2t1ös
-or2t1ö2v
-ort1ura
-ort1úr.
-or2t1ü2zér
-o2r1ud
-o2r1u2g
-o2r1u2r
-o2r1u2t
-o2r1útb
-o2r1úth
-o2r1ú2ti
-o2r1útj
-o2r1útn
-o2r1ú2ton
-o2r1útr
-or1úts
-o2r1útt
-or1üd
-or1ü2g
-or1ü2l
-or1ün
-or1ür
-or1ü2s
-or1üt
-or1ü2v
-or1üz
-or1űr
-1orv.
-or2v1a2n
-2orvá
-orv1isi
-1orvos
-or2vő
-1orvv
-or2z1a2var.
-or2z1e2c
-or2zes
-or2zsan
-orz1z
-o2s1abl
-o2s1a2da
-o2s1a2dó
-o2s1akc
-o2s1a2l
-osa2n
-o2s1ang
-o2s1ant
-o2s1any
-o2s1a2p
-os1arc
-os1assz
-os1a2ty
-o2s1au
-o2s1ábr
-o2s1á2g
-os1áld
-o2s1áll
-os1á2lom
-osára2
-osá2rak
-osári2
-osá2rik
-osá2rok
-o2s1áru
-osás1s
-os1á2t1a
-os1áté
-os1átj
-os1átk
-o2s1átr
-os1e2d
-o2s1e2g
-o2s1e2l
-os1emb
-os1e2n
-o2s1er
-o2s1es
-os1e2t
-os1ex
-os1ez
-o2s1é2g
-o2s1é2l
-o2s1ép
-o2s1érd
-o2s1érte
-o2s1érté
-osgé2
-o2s1ide
-o2s1if
-osi2g
-os1iga
-os1ikr
-os1inf
-o2s1int
-o2s1i2p
-o2s1i2rá
-os1iro
-os1irt
-o2s1ism
-os1isp
-os1iste
-o2s1i2sz
-o2s1íj
-o2s1í2r
-o2s1í2z
-os1kl
-os1kró
-2osok
-o2sonh
-o2sonn
-o2sono
-1o2sont
-o2sonu
-1osonv
-o2s1o2r
-os1osz
-osó1p
-os1ök
-os1ö2l
-os1ön
-os1ö2v
-os1ő2r
-os1p2l
-os1p2r
-os1ps
-os1sta
-ossu2
-os2s1ur
-ossz1áll
-ossz1á2ro
-ossz1es
-ossz1íj
-osszó2
-os3sző
-ost1e2te
-os2tip
-os2tir
-os2tiz
-1ostob
-ost1old
-os2t1ös
-2ostu
-os2t1ü2
-1ostya
-o2s1ud
-o2s1uj
-o2s1u2r
-o2s1u2t
-os1úr.
-o2s1ú2s
-o2s1üg
-o2s1ün
-o2s1ü2v
-o2s1üz
-os3zabá
-o2szaj
-osz1alá
-osz1alk
-osz1alt
-osza2n
-osz1any
-o2szar
-osz1aré
-osza2t1e2
-o2sz1ál
-o2sz1ed
-o2sz1e2g
-o2sz1e2l
-o2s3zen
-osz1ep
-osz1es
-o2szég
-o2széj
-o2sz1é2l
-o2sz1é2p
-o2sz1és
-o2szige
-osz1ing
-osz1ism
-osz1ist
-oszí2
-osz1ív
-o1szkl
-o2sz1o2ro
-osz1ors
-o2sz1orz
-os3zón
-osz1ó2r
-o2szö
-os3zöl
-osz2t1alm
-oszt1any
-osz2t1apo
-osz2tár.
-osz2t1árn
-osz2ted
-osz2tell
-osz2t1em
-oszté2r
-osz2t1éré
-osz2t1ív
-osz2t1osz
-o2szur
-osz1úr
-o2szü
-osz1üg
-os3zül
-ot1abl
-ot1a2da
-otag2
-ota1gr
-ota1k
-ot1ana
-o2t1ant
-ot1a2ny
-ota1p2
-ot1arc
-ot1arz
-ot1ass
-o2t1a2z
-ot1ábr
-o2t1á2g
-ot1á2rak
-o2t1á2rá
-o2t1árb
-o2t1á2ré
-ot1árn
-ot1bl
-o2teb
-o2t1e2g
-otel1a
-ote2l1á
-ote2lel
-ote2lő
-ote2m1á
-ote2m1o
-ot1e2v
-o2t1é2l
-o2t1ép
-o2t1ér.
-o2t1érté
-o2t1érz
-ot1fr
-ot1gr
-oth2r
-o2t1id
-o2t1im
-otina2
-ot1i2na.
-oti2nar
-oti2nár
-o2t1ind
-otinká2
-2otipa
-2otipi
-2otipn
-2otipt
-o2t1irá
-o2t1is
-o2t1izé
-ot1íj
-ot1ín
-ot1kl
-ot1k2r
-o2t1ob
-oto1gram
-ot1ola
-otona2
-oto2n1á
-oto2n1in.
-oto2nis
-oton3n
-oto2rak
-oto2rál
-oto2rár
-oto2re
-oto2rim
-oto2rin
-oto2rol
-otosz2f
-otó1f2
-2otóp
-otó2pan
-otó2pas
-otó2pin
-otó2p1osz
-otó2sétá
-otós3s
-otó1sta
-otó1sz
-otó2s3zár
-otót2
-otó1tr
-ot1ö2l
-ot1ös
-ot1pl
-ot1pr
-ot1ps
-o1t2rag
-ot1sp
-ot1sr
-ot1st
-otta1g2
-ot2t1é2g
-1ottl
-ot1ura
-ot1u2sz
-o2t1új
-ot1úri
-ot1ü2l
-ot1üt
-ot1ü2z
-ot1űr
-otva1k2
-otya1
-o1u
-ou2ag
-ou2il
-ou2le
-o1ú
-o1ü
-o1ű
-ova2ga
-ova2g1i2n
-ova2r1an
-ova2rát
-ova2r1el
-ova2rék
-ova2rés
-ova2ris
-ovas3s
-ovau2
-ováb2b1o
-ová2s1á2rá
-ová2sik
-ovio2
-ow1el
-1oxidb
-1oxidr
-o2xigé
-1oxilc
-oy2ce
-oza2g
-ozag1a
-oz1agi
-o2z1a2l
-oza2mal
-oza2m1e2
-oza2m1érté
-oza2min
-oza2n
-o2z1any
-oza2r
-oz1ara
-oza2tat
-oza2tál
-oza2t1e2
-oza2tés
-oza2t1é2te
-ozat1ill
-oza2t1í2
-oza2t1ol
-o2z1au
-o2z1á2g
-ozá2ke
-oz1áll
-o2z1á2ro
-o2z1áru
-ozá2s1e
-ozás3s
-ozá2s3z
-o2z1átl
-oz1e2g
-oz1e2m
-oz1en
-ozé2k1e2
-o2z1é2l
-o2z1é2p
-o2z1é2ré
-oz1i2do
-o2z1i2par
-oz1iro
-ozi2s1aj
-ozi1sl
-ozi1st
-ozi1sz2
-ozi2t1a2
-oz1í2n
-o2zor
-oz1ors
-o2z1osz
-ozóegyez1
-2ozófia
-2ozófiáb
-2ozófiáh
-2ozófiája
-2ozófián.
-2ozófiána
-2ozófiár
-2ozófiát.
-2ozófiátó
-2ozófiáva
-ozó2tan
-oz1p2r
-o2zs1a2l
-ozsa2n
-ozs1any
-o2zs1ő
-ozs1s
-o2zsü
-oz1ün
-oz1ü2z
-oz1űr
-ozzá1s2
-2ó.
-ó1a
-óa2cé
-óa2dag
-óa2dá
-óa2do
-óa2dó
-óa2ga
-óa2gi
-óa2gy
-óa2já
-óajtói2
-óa2kad
-óa2kar
-óa2ká
-óa2ku
-óa2la
-óala2g1
-óa2lá
-óa2l1e
-óalmana2
-óalmanac3
-óa2lo
-óal1os
-óa2lu
-óa2ma
-óa2na
-óa2nó
-óa2ny
-óa2pá
-óa2po
-óa2pó
-óa2pu
-óa2ra
-óa2rá
-óa2ré
-óa2ri
-óa2ro
-óa2to2
-óatom1
-óa2ty
-óa2uk
-óa2ur
-óa2ut
-óa2va
-óa2xi
-óa2zo
-ó1á
-óá2bé
-óá2cs
-óá2ga
-óá2gi
-óá2go
-óá2gyú
-óá2hí
-óá2la
-óá2lo
-óá2po
-óá2rá
-óá2ru
-óá2rú
-óá2sa
-óá2só
-óá2sz
-óá2ta
-óát1a2dó.
-óá2tá
-óá2t1e2
-óá2té
-óá2t1i2
-óá2tí
-óá2to
-óá2t1ö
-óá2tu
-óá2tú
-óá2tü
-2óbab
-2óbaj
-2óbak
-2óbal
-2óband
-2óbank
-óba1p2
-2óbará
-2óbark
-2óbarna
-óbas2
-óba1t2r
-óbau2
-2óbec
-2óbef
-2óbeg
-2óbeh
-2óbej
-2óbek
-2óbele
-2óbelé
-2óbels
-2óbem
-2óbeo
-2óber
-2óbet
-2óbev
-2óbez
-ó2bég
-2óbil
-2óbio
-2óbir
-2óbit
-2óbiz
-ó1b2le
-ó1b2lo
-2óbój
-2óbólé
-ób2rá
-ó1b2ro
-ób2rók
-ó1b2ru
-óbuda2ik
-óbuszt2
-óbu2sz1ú
-ó2c1aj
-ó2c1akr
-óc1a2la
-óc1alk
-ó2c1ar
-ó2c1ass
-óc1att
-ó2c1ál
-1ó2ceá
-ó2c1e2g
-óce2l
-óc1ele
-óc1elm
-óc1elő
-óc1emb
-ó2c1e2v
-ó2c1ép
-ó2c1ét
-óc3há
-óc3he
-óc3ho
-óci2m
-óc1imi
-óc1ing
-ó2c1i2pa
-ó2c1is
-óc2lu
-ó2c1or
-ó2c1osz
-óc1ó2r
-óc1pr
-2ócsa
-óc3ság
-ó2cs1áru
-2ócse
-2ócsé
-2ócsi
-ó2csit
-2ócsí
-2ócso
-2ócsö
-2ócső
-ócs1p
-óc3s2pá
-óc3sz
-óc1tr
-ó2c1ud
-óc1ün
-óc1üz
-óc3za
-óc3ze
-óc3zu
-ód1ada
-ód1a2dá
-óda2j
-ód1ajá
-ód1akt
-2ódal.
-2ódala
-ód1alg
-ó2d1am
-ód1ana
-2ódarabk
-2ódará
-ód1aut
-ód1azo
-ó2d1áf
-ó2d1ág
-ó2d1ál
-ó2d1áp
-ó2d1árn
-ód1á2ru
-ódás3s
-ód1bl
-ód1br
-ó2d1e2d
-ó2d1e2g
-ód1e2lem
-ó2d1elh
-ód1elj
-ó2d1ell
-ó2d1elm
-ó2d1elo
-ód1elő
-ód1elr
-ó2d1elv
-ód1emb
-ód1eme
-ód1ep
-óde2ra
-ód1erő
-óde2sés
-ó2d1e2v
-ó2d1ez
-ó2d1é2g
-ó2d1ép
-ó2d1érte
-ó2d1érz
-ód1fr
-ód1gl
-ó2d1i2d
-ó2d1igé
-ó2d1int
-ódi2p
-ó2d1ipa
-ó2d1iro
-ódi2sz
-ód1izo
-ó2d1ír
-ód1kl
-ód1kr
-ód1kv
-2ódob
-ódo2ga
-2ódok
-2ódol
-2ódom
-ó2d1op
-ó2d1osz
-ó2d1o2x
-ódókész1
-ód1órá
-ó2d1ö2l
-ód1ös
-ó2d1öt
-ó2d1öv
-ód1őr
-ód1pr
-2ó1d2ram
-2ódrá
-ód2rám
-ó1d2rog
-ó1d2rót
-ód2ruk
-ód1sp
-ód1st
-2ódug
-ódu2r
-ó2d1ura
-ódus3s
-ódu2s3z
-ó2d1u2t
-ó2d1új
-ód1úr.
-ód1üg
-ó2d1ür
-ód1üv
-ód1üz
-ód3zár
-ó2d3ze
-ód3zso
-ó1e
-óe2bé
-óe2ch
-óe2cs
-óe2dé
-óe2dz
-óe2ge
-óe2gé
-óegész1
-óe2gy
-óe2ke
-óe2ké
-óe2l1a2
-óe2l1á2
-óe2le
-óel1en
-óe2lé
-óel1ér
-óe2l2i
-óe2l1í2
-óe2lo
-óe2lő
-óe2lü
-óembe2r1ék
-óe2me
-óe2mé
-óe2mu
-óe2ne
-óe2pé
-óe2pi
-óe2po
-óe2re
-óe2ré
-óe2ró
-óe2rő
-óe2se
-óe2sé
-óe2ső
-óe2sz
-óe2te
-óe2ti
-óe2tű
-óe2ve
-óe2vé
-óe2vő
-óe2zü
-ó1é
-óé2be
-óé2ge
-óé2gé
-óé2gő
-2óé2he
-2óéhs
-óé2ke
-óé2ké
-óé2kí
-óé2le
-óé2lé
-óé2lő
-2óé2ne
-óé2pí
-óé2pü
-2óér.
-2óérd
-2óé2re
-2óé2ré
-óé2ri
-óé2rő
-2óérte
-2óérté
-2óérz
-óé2te
-2óétk
-óé2ve
-óé2vé
-óé2vi
-óé2vü
-2ófa.
-2ófaa
-2ófaá
-2ófab
-2ófac
-2ófad
-2ófae
-2ófaf
-2ófag
-2ófah
-2ófak
-2ófal
-2ófao
-2ófap
-2ófar
-2ófas
-ófa1st
-2ófa1t2
-2ófaü
-2ófav
-2ófaz
-ófe2l1em
-ófe2len
-ó2f1ev
-2ófék
-2ófélő
-2ófélt
-2ófén
-ó2f1ér.
-ófi2ab
-ófi2ad
-ófi2ag
-ó1f2la
-ó1f2lo
-óf2ló
-óf2lö
-óf2lu
-2ófoc
-2ófog
-2ófok
-2ófol
-2óford
-2óforg
-2óformác
-2óformáj
-2óformál
-2óforr
-2ófos
-2ófot
-ó2f1ov
-ó1f2rak
-ó1f2ri
-ó1f2rí
-ó1f2ro
-ó1f2rö
-ó2f1ud
-ófu2r
-óf1ura
-óf1úr.
-óf1úrn
-óga1p
-óg1dr
-óge2o
-ógé2p1i2p
-óg3gy
-ógi2al
-óg1ír
-óg2la
-óg2le
-ógo2ras
-ó1g2raf
-óg2rán
-ógu2sab
-ógu2s3z
-ó2gy1el
-ó2gy1es
-ó3gyi.
-ógy1int
-ógyö2k1érb
-ógyta2n1á2
-ógyte2a
-ógy1ús
-óha2de
-2óhal
-2óhan
-2óhas
-2óhat
-óháza2d
-óhá2z1ada
-2óhon
-2óhor
-2óhos
-óhús1s
-ó1i
-2ói2de
-2óidé
-ói2dén
-ói2di
-2ói2dom
-2ói2dő
-2ói2ga
-2ói2ge
-2óigé
-ói2géb
-ói2géi
-ói2géj
-ói2gék
-ói2gén
-ói2gér
-ói2gét
-ói2gév
-ói2konb
-2ói2konj
-2ói2konn
-2ói2kono
-ói2konr
-ói2kont
-óile2
-2óill
-ói2ma.
-2ói2má
-ói2mi
-2óimp
-2ói2na.
-ói2nai
-ói2naka
-ói2nas
-ói2nat
-ói2nán
-ói2nár
-ói2nát
-2óind
-2óinf
-2óing
-2ói2ni
-2óinj
-2óinp
-2óint
-2óinv
-ói2pa
-2ói2rat
-2ói2rá
-2ói2ro
-ói2sz
-2ói2ta
-ói2tók
-ói2vad
-ói2zé
-ói2zo
-ó1í
-óí2rá
-óí2ri
-óí2ro
-óí2ró
-óí2té
-óí2vé
-óí2vü
-óí2vű
-óí2ze
-óí2zé
-óí2zi
-óí2zü
-óí2zű
-ója1g2
-2ójakén.
-ójak2r
-2ójam
-ója1p2
-2ójav
-2ójárá
-2ójárm
-2ójáró.
-2ójáru
-2ójárv
-2ójáté
-2ójáts
-óje2gy1á2
-2ójut
-2ókab
-ók1a2da
-ók1ajt
-ó2k1akó
-ó2k1alj
-ók1alko
-2ókaló
-2ókamp
-2ókamr
-2ókapa
-2ókapc
-2ókaps
-2ókar.
-2ókara
-2ókarr
-2ókart
-2ókata
-2ókate
-óka1t2r
-ók1aut
-2ókav
-2ókaz
-ó2k1áll
-ók1árad
-ó2k1á2ri
-ó2k1árn
-ó2k1áru
-2óke2d
-ó2k1edz
-ók1egé
-2ókem
-ó2k1emb
-2óker
-óker1este
-óke2r1ékné
-óke2rig
-ó2k1e2rő
-óke2r1üg
-óke2sz
-ók1esze
-óke2t
-ók1ete
-2ókev
-2ókez
-ó2k1é2l
-2ókém
-2ókény
-2ókép.
-2óképb
-2óképe
-óké2p1e2l
-2óképé
-2óképl
-2óképn
-2óképpel
-2óképr
-2óképt
-2óképz
-ó2k1ér.
-2ókérd
-2ókére
-2ókéré
-2ókérő
-2ókés
-ó2k1étt
-ók1étv
-ók1gr
-ók2hiá
-2ókia
-2ókiá
-2ókic
-2ókie2
-2ókié
-2ókif
-óki2g
-ók1iga
-ó2k1igé
-2ókií
-2ókij
-ók1ill
-2ókim
-ók1imi
-2ókinc
-2ókine
-ó2k1int
-2ókiny
-2ókio
-ó2k1isk
-ó2k1ist
-2ókisz
-2ókit
-2ókiv
-ók1i2va
-ók1k2r
-ók2lim
-ó1k2lí
-2ó1k2ló
-2ó1k2lu
-2ókock
-2ókoco
-2ókoe
-2ókoh
-2ókoll
-2ókomé
-2ókomf
-2ókomp
-2ókonc
-2ókonf
-2ókonj
-2ókons
-2ókont
-2ókony
-2ókonz
-2ókoo
-2ókop
-2ókorá
-óko2r1á2s
-2ókorb
-2ókore
-ó2k1org
-2ókori
-2ókorl
-2ókorm
-2ókorn
-2ókoro
-2ókorr
-2ókors
-2ókoru
-ó2k1oszl
-2ókód
-ók1ó2l
-2ókór
-ó2k1óv
-2óköl
-ók1ö2lé
-ók1ö2lő
-ók1örd
-ók1ötl
-ók1pl
-ók1pr
-ó1k2rá
-ók2reá
-2ó1k2rém
-ók2rét
-2ó1k2ri
-ó1k2rí
-ók2ron
-ók2ros
-2ó1k2rón
-ók1sk
-ók1st
-ó2k1ug
-ó2kum
-2ókup
-2ókur
-óku2sz1ál
-óku2sze
-2ókut
-2ókúr
-ó2k1üg
-2ókül
-2óküs
-ók1üzl
-2ó1k2vó
-ól1ajt
-óla2man
-óla2pa
-ó2l1a2pál
-óla2pol
-óla2p1osz
-ól1a2rá
-ól1azo
-ólá2b1út
-1ó2lál
-ólás3s
-ólá2sü
-ól1átl
-óleí2
-ól1e2se
-ól1e2sé
-ól1esh
-ól1esn
-ól1ess
-ól1est
-óle2ta
-ólete2
-óle2t1ev
-ó2l1érz
-ólé2tel
-ólé2tés
-óli2ako
-óli2am
-óli2s
-ól1iszo
-ól1ín
-óloma2
-ólo2m1al
-ólo2m1á
-ólo2m1e
-ólo2mis
-1ó2lomr
-ó2l1osz
-ólóá2
-óló1sl
-óló1sp
-ólót2
-ó2l1öl
-ó2l1ör
-ó2l1ös
-ó2l1ö2z
-ól1p2r
-ólu2m1e
-ólus3s
-ólu2szá
-ól1üt
-ól1üv
-ólya2ga
-ólyag1g
-óly2á
-óm1abl
-ó2m1a2cé
-2ómagn
-óm1akn
-óm1all
-2óman
-2ómara
-2ómarc
-ómaren2
-2ómarh
-2ómark
-ómas2
-óma1sp
-2ómass
-2ómate
-óm1a2to
-ó2m1au
-2ómax
-2ómág
-óm1áll
-2ómárk
-2ómárt
-2ómáz
-óm1b2r
-óm1e2gy
-ó2men.
-2óméd
-2ómél
-óm1éle
-ó2m1ép
-2ómére
-2óméré
-2ómérg
-2ómérk
-2ómérn
-2ómérő
-2ómérs
-2ómérté
-ómiac1
-ómi2as
-ó2m1i2b
-ómi2g
-ó2m1igé
-2ómi2k
-óm1iko
-2ómin
-ó2m1i2ono
-ó2m1i2ont
-ó2m1i2p
-2ómis
-ó2m1isk
-ó2m1ist
-ómi2sz
-ó2m1i2z
-2ómod
-2ómog
-2ómoh
-ó2m1ola
-ó2m1old
-2ómond
-2ómoni
-2ómono
-2ómont
-2ómor
-2ómos
-ó2m1osz
-2ómot
-ó2m1ox
-2ómoz
-óm1öt
-óm1őr
-óm1pr
-óm1üt
-óm1üz
-óműt2
-2ónad
-2ónag
-óna2kás
-óna2k1e2
-óna2kol
-ón1alj.
-ón1aljak
-ón1aljá
-ón1aljo
-ón1alju
-2ónap
-óna2pa.
-óna2pá
-ó2n1apába
-óna2pe
-ón1arc
-ó2n1asp
-ón1aszt
-óna1t2
-2ónav
-óná2l
-ó2n1áll
-ó2n1álo
-ónás1s
-ón1br
-óne2d
-ón1ez
-1ó2néé
-2óném
-ón1épí
-1ó2néra
-ón1érc
-ó2nérd
-1ó2néró
-óné2v1á
-2ónéz
-óni2g
-ó2n1igé
-ó2n1ist
-ón1odv
-1ó2nokul
-2ónor
-ón1ox
-ón1ön
-ó2n1ör
-ón1öt
-ónőé2h
-ón1pr
-ó2n1u2t
-ón1ür
-2ónya
-2ónye
-2ónyil
-2ónyitá
-2ónyitó.
-2ónyí
-2ónyo
-2ónyu
-2ónyú
-ó1o
-óo2dú
-óo2ka
-óo2ká
-óo2k1i2
-óo2ku
-óo2la
-óo2li
-óo2pe
-óo2ra
-óo2ri
-óo2ro
-óo2vi
-óo2xi
-ó1ó
-óó2la
-óó2lá
-óó2li
-óó2lo
-óó2ra
-óó2ri
-óó2sá
-óó2vá
-óó2vo
-óó2vó
-ó1ö
-óö2bö
-óö2ko
-óö2kö
-óö2lé
-óö2lő
-óö2rö
-óö2ve
-óö2zö
-ó1ő
-óő2re
-óő2ré
-óő2ri
-óő2rö
-óő2rü
-óő2sé
-óő2sö
-ó2p1a2da
-ó2p1alk
-óp1anal
-ó2p1a2no
-óp1ant
-ó2p1any
-óp1a2rán
-óp1áll
-ópcsa2p1
-ó2p1ef
-ó2p1e2g
-óp1elo
-ó2p1id
-óp1ind
-ó2p1i2o
-óp1i2rá
-ó1p2lak
-ó1p2las
-ó1p2lu
-ó2p1ob
-ó2p1o2la
-ópo2rad
-óp1óra
-ó1p2ri
-óp2rod
-óp2rop
-ó1prób
-óp1t2r
-ópus3s
-ó2p1új
-óp1üv
-ó2rabé
-ór1ace
-2órada
-óra2dat
-ó2raib
-ó2raié
-óra2iér
-ó2raih
-ó2raii
-ó2raij
-ó2raik
-óra2iké
-óra2iko
-ó2raim
-ó2rain
-ó2raip
-ó2rais
-ó2rait
-ó2raiv
-1ó2raje
-2órajo
-2órajz
-óra1kv
-ó2rala
-ór1alk
-ó2ramo
-ó2r1ani
-ór1ant
-óra1p2l
-ór1arc
-1órare
-óra1s2p
-ó2r1a2tom
-1ó2raü
-1óráén
-ór1ágg
-ór1á2gy
-1órákh
-1ó2ráki
-ó2r1ál
-1ó2rámé
-1ó2rámo
-1órámr
-ó2r1á2p
-órá2se
-2óráta
-ór1átv
-ór1br
-ór1ege
-ó2r1e2gy
-ó2r1e2le
-ór1ell
-ór1elm
-ó2r1elo
-ó2r1e2lő
-ór1elv
-ór1emb
-ór1eml
-ó2r1e2r
-ó2r1e2set
-ó2r1e2tá
-ó2r1e2té
-ó2rezü
-ór1é2je
-ó2r1é2l
-ór1é2ri
-óré2vek
-ór1fl
-órhá2zot
-óri2aka
-óri2al
-ó2riási
-óriás3s
-óri2ch
-ó2r1id
-ó2r1int
-ór1i2onn
-ór1i2ono
-2órip
-ó2r1i2pa
-ó2r1i2si
-ó2r1isme
-2órit
-óri2z
-ór1izo
-ór1í2j
-ó2r1ír
-ór1í2z
-ór1kl
-órmé2s
-ór1o2ká
-ó3roké
-ór1o2ki
-óro2kok
-óro2koz
-ór1o2ku
-ór1okú
-ó2r1osz
-ó2r1o2x
-ó2r1óda
-óró2dáj
-órói2ko
-óró1p
-ór1ósá
-2óróz
-ó2r1ö2l
-ó2r1öml
-ó2r1ös
-ó2r1öt
-ór1őr
-ór1p2r
-ór1trá
-óru2mag
-óru2me
-ó2r1u2r
-óru2sab
-óru2san
-óru2se
-órus3s
-óru2sü
-óru2s3z
-ó2r1uta
-ó2r1ú2s
-ó2r1út
-ór1ün
-ór1ü2v
-ór1üz
-2ósabl
-ó2s1a2d
-ó2s1a2g
-ó2s1alj
-ós1alt
-ós1amn
-ó2s1apr
-2ósar
-ó2s1arcot
-ó2s1asp
-ós1ass
-ó2s1atl
-ó2s1au
-ósa2vo
-ó2s1ábr
-ó2s1áf
-óság1g
-ó2s1áll
-ós1á2lo
-ó2s1á2ro
-ós1áti
-2ósáto
-ós1bl
-ós1br
-óscsap1á2
-2óseb
-ós1e2gy
-2ósej
-ós1elj
-ós1elm
-ós1e2lő
-ós1els
-ós1elv
-óse2m
-ós1emb
-ós1emi
-ó2s1en
-óse2p
-ós1epo
-ós1erő
-ó2s1es
-ó2s1e2t
-ó2s1ez
-ó2s1é2l
-2ósém
-ós1é2ne
-ó2s1ép
-ó2s1ér.
-ó2s1érte
-2ósét
-ósé2táka
-ó2s1é2te
-ós1étk
-ós1étt
-ós1fr
-ó2s1i2d
-ósi2g
-ós1ige
-ósi2kerb
-2ósikl
-ós1ind
-ós1inf
-ósi2p
-ós1ipa
-ós1iro
-ó2s1isk
-ós1ist
-2ósík
-ó2s1ính
-ós1í2rá
-ós1í2ró
-ó1s2kat
-ós2kic
-óski2s
-ós1kl
-ós1kv
-ós2lag
-2óslá
-ó1s2ni
-2ósokas
-2ósokko
-2ósoks
-ós1oli
-2ósor
-ó2s1org
-ó2s1orj
-ó2s1orm
-ó2s1ott
-ó2s1ov
-ó2s1ó2r
-ó2s1ö2l
-ó2s1ös
-ó2s1öt
-ós1őr
-ó1s2pec
-2ó1s2pek
-2ó1s2pir
-ós1pl
-ó1s2pu
-ós1s2k
-ós1s2p
-ós3sze
-ós3szö
-2ó1s2tab
-ó1s2tad
-ó1s2taf
-2ó1stand
-2ó1s2tat
-2óstá
-ós2tább
-ó1s2tád
-ó1s2tát
-ó1s2tég
-2óstí
-ós2topo
-2óst2r
-ós1tré
-ós1tri
-ó1stru
-2óstú
-2ósug
-ó2s1u2r
-ó2s1u2t
-ós1úr.
-ós1ú2ri
-ós1úrn
-2ósül
-2ósür
-ó2s1üs
-ó2s1üz
-2ósűrí
-2ósza
-ó2s3zac
-ósza2k1ü
-ó2sz1a2lap
-2ószá
-ószá2gol
-2ószed
-2ószeg
-ó2sz1e2gű
-2ószek
-2ószel
-2ószem
-2ószen
-2ószer.
-2ószere
-ósze2r1e2pé
-2ószerk
-2ószerv
-2ószerz
-2ószez
-2ószé
-ószé2n1é2
-2ószi
-ó2szima
-2ószí
-2ószk
-ósz2l
-2ószob
-2ószoc
-2ószof
-2ószol
-2ószon
-2ószó
-2ószö
-ó2sz1ös
-2ósző
-2ószp
-ós3zs
-2ószt
-ó1sz2tá
-ószt2rá
-2ószú
-2ószü
-ó2sz1üg
-2ószűk
-2ószűré
-2ószűrő
-ó2s3zűrt
-ósz2v
-ót1adó
-2ótag.
-2ótaga
-óta2gal
-2ótagb
-2ótag1g
-2ótagi
-2ótagj
-2ótagk
-2ótagn
-2ótago
-2ótags
-2ótagu
-ót1ajk
-2ótalap
-2ótalá
-ót1alk
-ó2t1alm
-2ótan
-ót1anti
-2ótap
-2ótar
-ótas2
-ó2t1ass
-2ótat
-ót1a2ur
-2ótax
-2ótág
-ót1á2ga
-ót1ágg
-2ótáp
-ótára2d
-ótá2r1ada
-2ótáro
-2ótárs
-2ótávc
-2ótávi2
-ótá2v1ir
-2ótáví
-2ótávk
-ó2t1e2g
-ó2t1elh
-ó2t1e2lő
-ó2t1emb
-ó2terd
-ót1égé
-ó2t1é2ké
-óté2t1ö2
-ót1fr
-ó2t1i2d
-óti2g
-ó2t1igé
-ót1ill
-ó2t1im
-ó2t1ing
-ót1i2pa
-óti2sz
-ó2t1í2r
-ó2t1í2v
-ó2t1íz
-ót1kr
-ótlé2ke
-2ótoj
-2ótol
-ótol2l1a2d
-ót1oml
-2óton
-2ótor
-ó2t1ors
-2ótov
-2ótó.
-2ótón
-ót1öko
-ótőe2
-ót2rad
-ót2raf
-ót2rak
-ót2ran
-ót2rén
-ót2rik
-ót2ril
-ót2rió
-ót2rom
-ót1sl
-ót1sp
-ótsze2r1ep
-ótu2sze
-ót1ülé
-ót1ü2lő
-ót1üst
-ó2t1ü2v
-ótű2z3s
-ó1u
-óu2bo
-óu2ga
-óugrás1s
-óuj2j1a2da
-óu2ni
-óu2no
-óu2ra
-óu2sz
-óu2ta
-óu2tá
-óu2to
-óu2tó
-óu2tu
-ó1ú
-óú2jí
-óú2ré
-óú2sz
-óú2ti
-óú2to
-ó1ü
-óü2gy
-óü2le
-óü2lé
-óü2lő
-óü2nő
-óü2re
-óü2rí
-óü2rü
-óü2sz
-óü2te
-óü2té
-óü2tő
-óü2ve
-óü2ze
-ó1ű
-óű2ző
-2óvad
-2óvag
-2óvaj
-2óvak.
-2óvaks
-2óvaku
-2óvaló
-2óvar
-2óvas
-ó2vat
-2óvág
-2óvák
-2óvál
-2óván
-óvá2r1al
-óvárosi2h
-ó2vása
-1ó2vási
-ó2váso
-1ó2vásr
-1ó2váss
-1ó2vást
-2óváz
-óve2r1a
-óveri2
-óve2rip
-óv1in
-1ó2vod
-ó2vom
-2óvon
-óza1d2
-óz1a2dá
-óz1a2dó
-2ózaj
-óz1akc
-óza1kr
-óz1akt
-óz1a2la
-óz1arc
-óza1s
-óza2t1a2l
-óza2tan
-óza2tál
-óza2tés
-óza2told
-óza2t1ü2
-2ózav
-ó2z1á2g
-óz1áll
-ó2z1á2ru
-ó2z1á2rú
-óz1bl
-1ózdi
-ó2z1e2g
-ó2z1el
-óz1em
-óz1erő
-ó2z1ex
-óz1ez
-ó2z1é2l
-ó2z1é2te
-óz1fl
-óz1fr
-ózhajói2
-óz1imp
-óz1ing
-ó2z1i2p
-ózi2s1e2
-ózi2sir
-ózis3s
-ózi2s3z
-ó2z1old
-ózo2n1a2
-ózo2n1á
-ózo2ni
-ózós2
-ózó1sp
-óz1őr
-óz1pr
-ózsa1k2
-ó2z3ser
-óz3sor
-óz3sz
-óz1t2r
-2ózuh
-ó2z1u2r
-ó2z1u2t
-óz1ú2s
-ó2z1út
-óz1ü2g
-óz1ül
-óz1ü2z
-2ö.
-ö1a
-ö1á
-öb1a2n
-öb1ál
-öb1á2r
-öb1át
-öb2b1a2
-öb2b1á2
-öb2b1eg
-öbbe2l
-öb2b1ele
-öbbe2m
-öbb1eme
-öb2b1e2r
-öb2b1esz
-öbb1eve
-öb2bél
-öb2bid
-öb2b1is
-öb2bí
-öb2b1ol
-öb2b1os
-öb2bot
-öb2bó
-öb2bö
-öbbü2
-öb2b1ül
-ö2b1ef
-ö2b1eg
-ö2b1e2l
-ö2b1e2m
-ö2b1e2n
-ö2b1er
-ö2b1él
-ö2b1ér.
-ö2b1érté
-ö2b1érz
-öb1fr
-ö2b1i2d
-ö2b1ing
-ö2b1int
-1öbli
-1öblö
-öb1or
-öb1ón
-ö2böll
-1öböltő
-öc1aj
-öccs1a2
-öccs1i
-ö2c1ép
-ö2c1éve
-öc3he
-öc3hö
-öció2
-öc1őr
-ö2cs1a
-öcs1éj
-öcs1ék
-ö2cs1é2te
-ö2csiz
-öcs1izz
-öcs1ó
-ö2cs1ö2l
-öcs1ű2r
-öc3sz
-öd1a2l
-öd1a2n
-öd1ar
-öd1á2l
-öd1ár
-ö2d1ef
-öd1ell
-ö2d1em
-öd1e2vé
-ödé2m1o
-ödé2sa
-ödés3s
-ödé2s3z
-ö2d1é2ves
-öd1é2vén
-öd1é2vér
-öd1gr
-öd1íz
-öd1os
-öd1óc
-öd1ó2r
-öd1sp
-öd1u2s
-öd1új
-öd1ú2s
-ö2d1üv
-ö2d1űz
-öd3zá
-ödzáró2
-öd3zu
-ö1e
-ö1é
-öfés3s
-ög1ab
-ög1a2c
-ög1a2d
-ög1ag
-ög1a2k
-ög1a2l
-ög1a2n
-ög1ap
-ög1ar
-ög1as
-ög1a2t
-ög1áb
-ög1ág
-ög1á2l
-ög1á2r
-ög1át
-ög1dr
-ö2g1e2g
-ö2g1e2kéi
-ög1elb
-ö2ge2leme
-ö2g1elf
-ö2g1elha
-ö2g1elm
-ö2g1elo
-ö2gemel
-ö2g1er
-ö2g1esz
-ög1e2vé
-ö2g1é2g
-ög1ékt
-ö2g1é2p
-ö2g1ér.
-ö2g1érs
-ög1érté
-ögés3s
-ög1fr
-ö2g1id
-ö2g1i2m
-ög1inf
-ö2g1ist
-ö2g1iva
-ö2g1i2z
-ög1ín
-ög1ír
-ög1ív
-ög1kr
-ög1o2l
-ög1op
-ög1o2r
-ög1os
-ög1ó2r
-ög1öli
-ög1ölö
-ö2g1öv
-ög1pr
-ögre1p2
-ög1sk
-ög1sp
-ög1tr
-ög1ud
-ög1u2n
-ög1u2t
-ö2g1üg
-ö2g1üs
-ö2g1üt
-ö2g1üv
-ö2g1üz
-ö2g1űz
-ög3ya
-ö1i
-ö1í
-öj2tél
-öj2t1o
-ök1ab
-ök1a2g
-ök1a2k
-ök1a2l
-ök1a2n
-ök1a2p
-ök1ar
-ök1as
-ök1a2t
-ök1au
-ök1a2v
-ök1ág
-ök1ál
-ök1á2p
-ök1á2r
-ök1át
-ök1áz
-ök1dr
-ö2k1e2d
-ö2k1e2g
-ö2k1eke
-öke2l
-ök1ela
-ök1ele
-ök1elh
-ök1elm
-ök1eln
-ök1elő
-ök1elv
-ö2k1e2m
-öke2né
-öken1s
-ök1erd
-ö2k1e2resz
-ö2k1e2rő
-ö2k1es
-öke2vés
-ö2k1ez
-ö2k1ég
-ö2k1ékn
-ök1éks
-ök1é2les
-ö2k1ép
-öké2r1e2l
-öké2r1em
-ö2k1é2rez
-ö2k1é2rés
-ökés3s
-ö2k1é2te
-ö2k1é2ve.
-ö2k1é2vek
-ök1é2vet
-ök1fr
-ök1gl
-öki2d
-ök1ide
-ök1ido
-öki2g
-ök1iga
-ö2k1igé
-ö2k1ikt
-ö2k1i2na
-ök1ind
-ö2k1ing
-ö2k1int
-ö2k1i2o
-ö2k1i2p
-ö2k1iro
-ö2k1is
-ö2k1iz
-ök1íj
-ö2k1ír
-ök1ív
-ök1íz
-ök1kl
-ök1k2r
-1öklű
-ök1ok
-ök1old
-1ökoló
-1ökon
-ök1o2p
-ök1o2ro
-ök1orr
-ök1ors
-ök1o2v
-ök1ó2r
-ök1óv
-1ökör.
-ökö2rö
-ökőár1a2d
-ökőé2
-ök1pr
-1ökrös
-1ökrü
-1ökrű
-ök1sp
-ök1sr
-ökszi2l1
-ök1t2r
-ök1u2n
-ök1u2r
-ök1us
-ök1u2t
-ök1új
-ök1úr
-ök1út
-ö2k1üg
-ökü2l
-ö2k1ülé
-ö2k1ült
-ö2k1ü2t
-ö2k1ü2v
-ö2k1üz
-öl1a2d
-öl1ag
-öl1a2j
-öl1a2k
-öl1al
-öl1ap
-öl1a2r
-öl1au
-öl1a2v
-öl1á2g
-öl1ál
-öl1á2m
-öl1á2p
-öl1á2r
-öl1á2s
-öl1át
-öl1á2z
-öl1br
-ölcsa2l
-ölcs1á2p
-ölcs1á2r
-ölcs1ell
-öl2csev
-öl2csid
-öl2csiz
-öl2cs1ok
-ölcs1ol
-öl2csos
-öl2csüg
-öl2csül
-öl2dab
-öl2d1a2d
-öl2d1a2k
-öl2d1a2la
-öl2d1alj
-öl2d1alk
-öl2d1a2n
-öl2dap
-öl2d1as
-öl2d1á2
-öl2deg
-öl2dep
-öl2dev
-öl2d1éd
-öl2dél
-öl2d1ing
-öl2dip
-öl2d1o2r
-öl2dos
-öl2d1ó2
-öldő2
-öl2dőr
-öl2dős
-öl1dró
-öl2dur
-öl2d3z
-1ö2l1e2b
-öle2gel
-öleg1g
-ö2lel
-ö2l1e2r
-ö3l2e3sü
-öle2t1á2
-öle2t1el
-öle2to
-öle2t1u
-ö2l1e2v
-ölé2d
-ö2l1éde
-1ö2léé
-ö2l1é2g
-ö2l1é2kes
-ö2l1ékí
-ö2l1él.
-ö2l1é2le
-ö2l1é2lé
-ö2l1élh
-ö2l1é2li
-ö2l1élj
-ö2l1éln
-ö2l1éls
-ö2l1élt
-ö2l1élv
-ö2l1éme
-ö2l1é2neke
-ö2l1é2p
-ö2l1ér.
-ö2l1é2red
-ö2l1é2rek
-ö2l1é2rezn
-ö2l1éré
-ö2l1érh
-ö2l1é2ri
-ö2l1érj
-ö2l1érk
-ö2l1érl
-ö2l1érn
-ö2l1érs
-ö2l1érte
-ö2l1érté
-ö2l1értü
-ö2l1é2rü
-ö2l1érv
-ö2l1érz
-ölés3s
-ö2l1é2tet
-öl1fr
-ölgyá2
-öl2gyer
-ö2l1i2d
-öli2g
-ö2l1iga
-ö2l1igé
-ö2l1igy
-ö2l1ij
-ö2l1il
-ö2l1im
-ö2l1i2n
-ö2l1i2p
-ö2l1i2r
-ö2l1i2s
-ö2l1i2ta
-ö2l1itt
-ö2l1iz
-öl1í2r
-öl1í2v
-öl1o2c
-öl1o2k
-öl1ol
-öl1or
-öl1o2s
-öl1ó2v
-ölö2ki
-ö2l1ökl
-ö2l1öl
-öl1önt
-ö2l1ör
-ö2l1ö2v
-öl1őrl
-öl1őrö
-ölpárba2
-öl1p2r
-öl1sk
-öl1sr
-öl1st
-öl2t1ad
-öl2taj
-ölt1ala
-ölt1alj
-ölta2n
-öl2tid
-öl2til
-öl2tí
-öl1tro
-öl2tur
-öl1u2g
-öl1uj
-öl1u2s
-öl1u2t
-öl1új
-öl1ús
-ö2l1üd
-ö2l1üg
-ölü2le
-öl1ülté
-ö2l1ültö
-ö2l1ülve
-ö2l1üs
-ö2l1üt
-ö2l1üv
-ö2l1üz
-ö2l1űz
-ö2ly1a2
-ö2ly1á
-öly1e2g
-ö2lyel
-öly2föl
-öm1a2d
-öm1a2g
-öm1al
-öm1a2n
-öm1a2p
-öm1ar
-öm1au
-öm1áb
-öm1ág
-öm1áh
-öm1ál
-öm1áp
-öm1á2r
-öm1á2t
-öm1áz
-öm2b1a2c
-öm2b1ak
-ömba2l
-öm2b1a2n
-öm2baz
-öm2b1á
-öm2bec
-ömb1ele
-öm2b1e2m
-öm2b1es
-öm2bék
-öm2b1i2d
-öm2bin
-öm2bí
-öm2b1os
-öm2b1ó2
-öm2bú
-öm2bür
-ö2m1e2b
-öme2g1a2
-ömeg1e2r
-öme2gesz
-öme2g1ék
-öme2gép
-ömeg3g
-öm1egy
-ö2m1e2l
-ö2m1ember
-ö2m1emel
-ö2m1e2r
-öme2s
-ö2m1ese
-ö2m1este
-ö2m1ég
-ö2méhs
-ö2m1é2l
-öm1é2nekb
-ö2m1é2neke
-ö2m1é2neké
-öm1é2nekh
-ö2m1é2nekk
-ö2m1é2nekr
-ömé2ny1ü
-ö2m1ép
-ö2m1ér.
-ö2m1érte
-ö2m1érté
-ömés3s
-öm1gr
-ömi2g
-ö2m1igé
-ö2m1in
-ö2m1i2p
-ö2m1i2ta
-ö2m1itt
-ö2m1izm
-ö2m1i2zo
-öm1í2z
-ömkész1
-öm1kl
-öm1kr
-ömlés3s
-1ömlöt
-öm1o2k
-öm1o2l
-öm1or
-öm1os
-öm1ó2d
-öm1ó2r
-ö2m1önt
-öm1p2r
-öm1sp
-öm1st
-öm1tr
-öm1u2g
-öm1uj
-öm1u2t
-ö2m1üg
-ö2m1ünn
-ö2m1üv
-ö2m1üz
-ö2m1űz
-ön1ab
-ön1a2d
-ön1a2g
-ön1a2j
-ön1a2k
-ön1a2l
-ön1am
-ön1a2n
-ön1a2p
-ön1ar
-ön1as
-ön1at
-ön1au
-ön1a2v
-ön1az
-ön1áb
-ön1ág
-ön1ál
-ön1ám
-ön1á2p
-ön1á2r
-ön1á2t
-önát1a2dó.
-önát1é
-ön1áz
-önbé2két.
-ön1bl
-ön2c1ál
-ön2ch
-ön2cő
-önc3ség
-önc3sz
-ön2cz
-ön2dab
-ön2dap
-önde2m
-ön2d1ér.
-ön2d1érn
-ön2d1érr
-ön2d1értő
-ön2d1or
-ön2d1ő
-ön2dz
-ö2n1eb
-ö2n1e2d
-ö2n1ef
-ö2n1e2g
-ö2n1e2l
-ö2n1e2m
-öne2n
-ön1ene
-ö2n1e2r
-ö2n1es
-ön1e2v
-ön1ex
-ön1é2g
-ö2n1éj
-ö2n1é2k
-ö2n1é2l
-ö2n1é2p
-ö2nérd
-ön1éri
-ön1érl
-ön1érte
-ön1érv
-önés3s
-ön1ész
-ö2n1éte
-ö2n1étt
-ö2n1év.
-ö2n1éves
-ön1évet
-ö2n1é2vér
-ö2n1é2vét
-ö2n1évv
-önfe2lem
-ön1f2r
-ön1g2l
-ön1g2r
-öngy1as
-ön2gyék
-öngy1ó2r
-2öngyö
-ön2győ
-ö2n1i2d
-ön1if
-öni2g
-ö2n1iga
-ön1ige
-ö2n1igé
-ön1ill
-ö2n1im
-ö2n1in
-ö2n1i2p
-ö2n1i2r
-ö2n1is
-ön1ita
-ö2n1i2z
-ön1íj
-ö2n1ír
-ö2n1íz
-ön2k1ag
-ön2k1any
-önk1áru
-ön2kát
-önk1olt
-ön2k1ú
-önkü2
-önmeg1g
-önna2k
-ön2n1á
-önny1a2d
-önny1á
-önny1e2dz
-ön3nyú
-ön1o2d
-ön1o2k
-ön1op
-ön1or
-ön1os
-ön1ox
-ön1ó2c
-ön1ó2r
-ön1óv
-ön1öb
-ö2n1ör
-ö2n1ö2v
-ön1őr
-önő2re
-ön1őz
-ön1pl
-ön1pr
-ön1ps
-önségü2ké
-ön1s2p
-ön1s2t2
-önsz2
-ön2t1ell
-öntgen1n
-öntös3s
-1öntöz
-ön1t2ra
-ön1t2rá
-ön1t2ré
-ön1ud
-ön1un
-ön1u2r
-ön1u2s
-ön1u2t
-ön1új
-ön1ú2s
-ön1út
-ön1üd
-ö2n1ü2g
-ö2n1ür
-ö2n1ü2t
-ö2n1üz
-ö2ny1a2
-ö2ny1á
-öny1d
-ö2ny1el
-ö2ny1id
-ö2ny1in
-ö2nyí
-ö2ny1o
-ö2nyüz
-öny2vaj
-öny2v1a2l
-öny2van
-öny2v1á2r
-öny2v1e2g
-öny2v1er
-öny2v1esz
-öny2vev
-öny2v1ég
-öny2vél
-öny2v1ér.
-öny2v1ill
-öny2v1í
-öny2v1o
-ö1o
-ö1ó
-ö1ö
-ö1ő
-öp1aj
-öp1a2l
-öp1ál
-öp1e2l
-öpe2nyá
-öp1e2r
-ö2p1ép
-öp1ö2lő
-ör1ab
-ör1a2c
-ör1a2d
-ör1a2g
-ör1aj
-ör1a2k
-ör1a2l
-ör1a2n
-ör1a2r
-ör1as
-ör1a2t
-ör1a2u
-ör1a2x
-ör1a2z
-ör1áb
-ör1á2c
-ör1á2g
-ör1á2l
-ör1á2r
-ör1á2s
-ör1á2t
-ör1br
-örcs1ál
-örcs1ell
-örcskész1
-ör2csos
-2ördí
-ör1d2r
-2ördü
-ö2r1e2c
-ör1e2dz
-ö2r1ef
-öre2ga
-öre2g1ék
-ör1e2gy
-öre2j1á
-öre2k1e2sz
-öreké2
-ö2r1e2l
-ö2r1em
-ör1enc
-ö2r1e2p
-ö2r1e2r
-ör1e2se
-ö2r1e2tető
-ö2r1e2v
-ö2r1ex
-ö2r1ez
-ö2r1é2de
-ö2r1é2g
-ö2r1éj.
-ör1éks
-ö2r1é2l
-ö2r1éneke
-ö2r1ép
-ö2r1éré
-ö2r1é2ri
-öré2sel
-öré2t1e2g
-ö2r1étv
-ör1é2ve.
-ö2r1évk
-ör2fá
-ör2f1év
-ör2f1i2p
-ör2fis
-ör2f1os
-ör2főr
-ör1g2r
-ö2r1i2d
-öri2g
-ö2r1iga
-ö2r1igá
-öri2k
-ör1iko
-ö2r1ill
-ö2r1im
-ö2r1ind
-ö2r1ing
-ö2r1inj
-ö2r1ink
-ö2r1int
-ö2r1inv
-ö2r1i2p
-ö2r1ira
-ö2r1i2s
-ö2r1i2ta
-ör1itt
-ö2r1ivá
-ör1i2zo
-ö2r1ír
-ö2r1í2v
-ö2r1í2z
-ör1k2l
-ör2k1öltő
-ör1k2r
-örle2ta
-ör2l1in
-örny1a2l
-örny1a2n
-örny1as
-örnye2l
-örny1ele
-ör2ny1er
-ör2nyéj
-ör2nyés
-örny1í2r
-ör2nyó
-ör1ob
-ör1o2k
-ör1o2l
-ör1op
-ör1o2r
-ör1os
-ör1ó2r
-2örög
-örö3g2e
-1örömü
-ö2r1önt
-ö2r1ör
-ö2rössze
-ö2r1ösz
-örpe1t2
-ör1s2p
-ör1s2v
-örta2r
-örtá2v1
-ör2t1éks
-örté2l
-ör2t1élé
-ör2t1élő
-ört1érne
-örté2sz
-ör2tív
-ör2t1ok
-ör2top
-ör1ud
-ör1uj
-ör1u2n
-ör1u2r
-ör1u2s
-ör1u2t
-ör1új
-ör1úr
-ör1ú2t
-ö2r1üd
-ö2r1ü2g
-örü2l1ék
-ö2r1ür
-ö2r1üs
-ö2r1üt
-ö2r1ü2v
-ö2r1üz
-1örv.
-örva2s
-1örvb
-1örvek
-1örvem
-1örvet
-1örvéb
-1örvéh
-1örvév
-1örvh
-1örvn
-1örvr
-1örvt
-1örvü
-1örvű
-1örvv
-örz4s
-ör2zs1á2
-ör2zs1e2l
-ör2zsid
-ör2zsin
-ör2zsir
-ör2zs1í2
-ör2zs1o
-ör2zsó
-ör2zsu
-ör2zsú
-ös1a2g
-ös1al
-ös1ár
-ö2s1el
-öses3s
-ö2s1ez
-ösié2
-ö2s1i2p
-ös1k2r
-ös1o2l
-ös1o2r
-összá2r
-1összeg
-össz1emb
-1összes
-ös3szí
-öst1arc
-ö2s1ü2v
-ö2sz1a2
-ösz1e2r
-öszi2s
-ösz1isz
-ö2sz1o2
-ö2sz1ő
-ösz2t1ell
-öt1ab
-öt1aj
-öt1a2k
-öt1a2l
-öt1am
-öt1as
-öt1a2t
-öt1áb
-öt1ág
-öt1ál
-öt1ár
-öt1á2s
-öt1eké
-öt1e2m
-öt1ep
-öt1es
-öte2t1a2
-öte2tel
-öte2u
-öt1e2v
-öt1e2z
-ötélé2
-öté2lék
-öté2l1o
-öt1érté
-öt1érz
-ötés3s
-öt1é2ves
-öt1fl
-öt1fr
-öt1gr
-öt1i2r
-öt1í2v
-öt1kr
-1ötlet
-ötle2t1á
-1ötlé
-öt1ok
-öt1ol
-öt1or
-öt1os
-öt1ó2r
-ö2tödb
-1ö2tödd
-1ö2tödne
-1ötödöt
-1ö2tödr
-1ötödü
-ö2tös
-ötőa2
-ötőe2
-ötőé2
-öt1pr
-öt1sc
-öt1st
-öt2t1a2c
-öt2tar
-öt2t1as
-öt2t1ál
-öttá2r
-ött1erk
-ött1érte
-öt2t1ut
-öt1uj
-öt1un
-öt1u2t
-öt1ü2l
-ötve2n1ez
-ö1u
-ö1ú
-ö1ü
-ö1ű
-öv1ab
-öv1ak
-öv1á2r
-öv1e2dz
-öve2g1a2
-öveg1és
-öveg1g
-öve2go
-öv1e2r
-öve2t1a2
-öve2teg
-öve2t1é2l
-öve2to
-öve2t1ú
-övetü2l
-öve2t1ülé
-ö2vé.
-öv1ég
-öv1é2j
-övé2nyel
-övé2nyer
-övé2nyö
-övé2sza
-övé2szá
-övé2szer
-övé2szo
-övé2szö
-övé2szül
-övi2dá
-ö2vih
-övis3s
-ö2viv
-öv1or
-öv1ó2d
-öv1ölt
-övőrés3s
-öv1ut
-öz1ab
-öz1a2c
-öz1a2d
-öz1a2j
-öz1a2k
-öz1a2l
-öz1a2m
-öz1a2n
-öz1a2p
-öz1a2r
-öz1at
-öz1au
-öz1az
-öz1á2g
-öz1ál
-öz1á2m
-öz1á2p
-öz1á2r
-öz1á2t
-özát1é
-öz1d2r
-ö2z1e2b
-ö2z1e2d
-öze2gel
-ö2z1egés
-özegész1
-ö2z1e2gy
-ö2z1ela
-öze2leme
-ö2z1e2m
-öz1eng
-öz1ent
-öz1epr
-ö2z1er
-ö2z1es
-öze2t1é2k
-özető2
-öze2t1őr
-ö2z1e2v
-ö2z1ég
-ö2z1é2je
-özé2k1e2l
-öz1élel
-öz1é2let.
-öz1é2lé
-öz1élm
-öz1élt
-özé2m
-öz1éme
-özé2p1a
-özé2p1el
-özé2p1em
-özé2pí
-öz1épít
-özé2p1o
-ö2z1ér.
-ö2z1érb
-ö2z1érd
-ö2z1érh
-ö2z1é2ri
-özér2t1e2h
-ö2z1értele
-ö2z1érté
-ö2z1értő
-ö2z1érv
-ö2z1érz
-öz1étk
-öz1fr
-özi2g
-ö2z1iga
-özigaz1
-ö2z1igá
-ö2z1igé
-ö2z1igy
-ö2z1i2ko
-ö2z1ikt
-ö2z1ill
-ö2z1i2m
-ö2z1inf
-ö2z1ing
-ö2z1inp
-ö2z1int
-ö2z1inú
-ö2z1inv
-ö2z1ira
-öz1irá
-ö2z1i2ri
-öz1iro
-ö2z1iró
-öz1isko
-ö2z1ism
-ö2z1isp
-ö2z1i2sz
-ö2z1iz
-öz1ír
-öz1íz
-özmeg1g
-öz1ob
-öz1o2k
-öz1ol
-öz1op
-öz1os
-öz1ov
-öz1ó2h
-öz1ón
-1özönt
-ö2z1ö2r
-öz1össz
-ö2z1öv
-özőa2
-özőe2r
-öz1őr.
-öz1őrk
-öz1ő2rö
-öz1pl
-öz1p2r
-öz3sa
-öz3sá
-öz3se
-öz3sé
-öz3s2k
-öz3so
-öz3s2p
-öz3sú
-öz3sz
-öz1t2r
-öz1ug
-öz1u2n
-öz1ur
-öz1ut
-öz1ú2r
-öz1út
-ö2z1üd
-ö2z1ü2g
-öz1ünn
-ö2z1üt
-ö2z1üv
-ö2z1ü2z
-öz3zs
-2ő.
-ő1a
-őa2da
-őa2dá
-őadás1s
-őadá2sz
-őa2do
-őa2dó
-őa2du
-őa2ga
-őa2gá
-őa2gi
-őa2gy
-őagyag1
-őa2ja
-őa2já
-őa2ka
-őa2ká
-őa2kó
-őa2la
-őala2g1
-őa2l1e
-őa2lo
-őa2mő
-őa2na
-őa2no
-őa2nó
-őa2nyá
-őa2pa
-ő2apar
-őa2pá
-őa2po
-őa2pó
-őa2pu
-őa2ra
-őa2rá
-őa2ri
-őa2ro
-őa2sz
-őa2to
-őa2ty
-őa2ul
-őa2ur
-őa2ut
-őautói2k
-őa2va
-őa2xi
-őa2zo
-ő1á
-őá2cs
-őá2gai
-őá2gak
-őá2gas
-őá2gat
-őá2gá
-őá2gé
-őá2gi
-őá2go
-őá2gú
-őá2gy
-őá2hí
-őá2la
-őá2lo
-őá2mí
-őá2po
-őá2ra
-őá2rá
-őá2re2
-őár1em
-őá2ri
-őá2ro
-őá2ru
-őá2rú
-őá2sa
-őá2sá
-őá2so
-őá2só
-őá2su
-őá2sz
-őá2ta
-őá2t1á2
-őá2t1e2
-őá2té
-őá2tí
-őá2tü
-őá2vó
-őba1p
-őb2le
-őb2lo
-őb2ri
-őb2ro
-őb2ró
-őb2ru
-őc1ap
-őc3cso
-őc1gr
-őc3há
-őc3hé
-őc3hö
-őc2lu
-ő2cs1ala
-őcsa2p1á2g
-ő2cs1é2j
-ő2cs1é2rü
-őcs1őst
-őcs1s
-őc3sz
-őd1a2da
-őd1a2dá
-ő2d1a2lap
-ő2d1au
-őd1ál
-őd1á2z
-ődea2
-ő2d1e2g
-őd1eld
-őd1elj
-őd1elk
-őd1e2lő
-őd1els
-ő2d1ép
-ő2d1érte
-ő2d1érz
-ődé2sa
-ődé2so
-ődés3s
-ődé2s3z
-ő2d1id
-ődi2g
-ő2d1iga
-őd1ind
-őd1int
-ő2d1isk
-ő2d1op
-őd1ost
-ő2d1ö2l
-ő2d1öv
-őd1őr.
-őd1ő2ré
-őd1őrn
-őd1őrr
-őd1őrt
-ő2d1őst
-őd1pr
-őd2ram
-őd2rap
-ő1d2rá
-ő1d2res
-ő1d2rog
-ő1d2ró
-ő1d2ru
-őd1st
-őd1t2r
-ő2d1üg
-ő2d1üz
-ő2d3zá
-ő1e
-őe2ce
-őe2cs
-őe2dé
-őe2dz
-őe2ge
-őe2gé
-őe2gy
-őe2ke.
-őe2kék
-őe2la
-őe2l1á2
-őe2lek
-őe2lemé
-őe2lemg
-őe2lemh
-őe2lemm
-őe2lemn
-őe2lemr
-őe2lemü
-őe2li
-őe2lo
-őe2lö
-őe2lőd
-őe2lü
-őe2ma
-őe2me
-őe2mé
-őe2mu
-őe2ne
-őe2pi
-őe2po
-őe2re
-őe2ré
-őe2rőd
-őe2rőé
-őe2rőh
-őe2rői.
-őe2rők
-őe2rőm
-őe2rőrő
-őe2rü
-őe2sé
-őe2si
-őe2ső
-őe2ta
-őe2te
-őe2ti
-őe2un
-őe2vé
-őe2vi
-őe2vo
-őe2vő
-őe2ze
-ő1é
-őé2de
-őé2et
-őé2ge
-őé2gé
-őé2gi
-őé2gő
-őé2hem
-őé2hes
-őé2ji
-őé2ke
-őé2ké
-őé2kí
-őé2lé
-őé2lő
-őé2lű
-őé2nekb
-őé2neke
-őéne2kest
-őé2neké
-őé2nekk
-őé2nekr
-őé2pí
-őé2pü
-őé2rem
-őé2ren
-őé2rez
-őé2ré
-őé2ri
-őé2tek
-őé2va
-őé2ve.
-őé2vek
-őé2ves
-őé2vet
-őé2véb
-őé2vén
-őé2vér
-őé2vét
-őé2vi
-őfa2l1a2d
-őf2la
-őf2le
-őf2lo
-őf2ló
-őf2lö
-őf2lu
-őfo2kál
-őfo2kér
-őfo2kin
-őf2ra
-őf2rá
-őf2ri
-ő1f2ro
-őf2rö
-őgé2p1e2l
-őgépü2l
-őgép1ülé
-őgés3s
-őg2le
-őg2ló
-őg2nó
-ő2g1ö2l
-őg2ra
-őg2rá
-őg2ri
-őg2ró
-őguba2
-őgy1a2la
-őgy1art
-ő2gyeg
-ő2gyel
-őgy1e2lő
-őgy1elv
-őgy1elz
-ő2gyin
-ő2gy1ör
-őhangá2
-őhan2g1ára
-ő1i
-ői2dea
-ői2deá
-ői2deg
-ői2deo
-ői2dén
-ői2do
-ői2dő
-ői2ga
-ői2ge
-ői2gé
-ői2gy
-ői2ko
-ői2ma
-ői2má
-ői2mi
-őim1p2l
-ői2nas
-ői2on
-ői2pa
-ői2ra
-ői2rá
-ői2ri
-ői2ro
-ő2iru
-ői2si
-ői2sz
-ői2tala
-ői2talá
-ői2talé
-ői2tali
-ői2tall
-ői2va
-ői2vá
-ői2vó
-ői2zé
-ői2zo
-ő1í
-őí2gé
-őí2ja
-őí2ra
-őí2rá
-őí2ro
-őí2ró
-őí2ru
-őí2vá
-őí2ve
-őí2vé
-őí2vi
-őí2vükb
-őí2vüke
-őí2vün
-őí2vű
-őí2ze
-őí2zü
-őí2zű
-ője2gy1á2
-őjob2b1ol
-őjob2b1ó
-őjogá2szi
-őke1k2
-őke1p2
-őkes2
-őke1sp
-őke1st
-őké2p1el
-őké2s1el
-őkiá2
-őkie2
-ők2la
-ők2le
-ők2li
-ők2lí
-ők2ló
-ők2lu
-őkóro2
-ő1k2ra
-ő1k2rá
-ő1k2reá
-ők2red
-ő1k2ré
-ő1k2ri
-ő1k2rí
-ő1k2ro
-ő1k2ró
-ők2va
-őleí2
-őlés3s
-őlőé2r
-őlőt2
-őlő1tr
-őma2gár
-őmag1g
-őma2g1ó2
-őműé2h
-őműé2n
-őműt2
-ő2n1e2ke
-őn1ems
-őnéve2
-őnév1es
-ő2ny1a2d
-őnya2g
-ő2ny1aga
-őny1a2la
-őny1ára
-őny1á2ro
-ő2nyát
-ő2nyef
-őnye2lem
-ő2ny1elh
-ő2ny1ell
-ő2ny1elo
-ő2ny1em
-ő2ny1élv
-ő2ny1ő
-ő2nyüz
-ő1o
-őo2áz
-őo2be
-őo2dú
-őo2ká
-őo2k1i2
-őo2kí
-őo2ko
-őo2la
-őola2j1á2r
-őola2je
-őo2pe
-őo2rá
-őo2ri
-őo2ro
-őo2so
-őo2ve
-őo2xi
-ő1ó
-őó2ce
-őó2ha
-őó2no
-őó2nu
-őó2ra
-őó2rá
-őó2ri
-őó2va
-őó2vó
-ő1ö
-őö2bö
-őö2dé
-őö2ko
-őö2kö
-őö2lé
-őö2lő
-őö2na
-őö2re
-őö2rö
-őö2ve
-őö2vé
-őö2vi
-őö2vö
-őö2zö
-ő1ő
-őő2re
-őő2ré
-őő2ri
-őő2rö
-őőr2s1égb
-őőr2s1égn
-őő2se
-őő2si
-őpárba2jo
-őp2la
-őp2le
-őp2lé
-őp2ne
-őponc1
-őpo2ral
-őp2re
-őp2ré
-őprés1s
-őp2ri
-őp2ro
-őp2ró
-őp2sz
-őr1a2dó
-őr1a2gá
-őr1agg
-őr1ajk
-őraj2t1ól
-őr1akc
-ő2r1a2l
-őral1e
-őra2n
-őr1any
-őr1ap
-ő2r1a2r
-ő2r1a2s
-ő2r1at
-ő2r1au
-ő2r1a2z
-1ő2r1áb
-őrádi2ók
-őr1ágy
-őrá2k1e
-ő2r1á2l
-ő2r1á2p
-őr1á2ru
-1őrbí
-1őr1bl
-1őr1br
-2őrea
-őreá2li
-őree2
-őre2get
-őr1e2gye
-őrei2g
-ő2r1ekc
-ő2r1ekh
-őre2lem
-őr1elh
-ő2r1ell
-őr1e2lőa
-őr1els
-őr1elt
-ő2r1elv
-ő2r1emb
-őr1eml
-őren2d1ő2
-őr1enz
-őreo2
-őre1prog
-ő2r1e2ső
-őreu2
-őreü2
-ő2r1ex
-1őrezr
-1ő2r1ég.
-1őrégn
-1őr1égt
-1ő2r1ékh
-őr1ékné
-őr1éks
-ő2r1é2l
-őr1épü
-ő2r1é2ri
-őré2sa
-őré2sza
-1ő2réü
-őr1é2ve.
-őr1é2vek
-őr1fl
-1őrfő
-őr1fr
-őr1g2r
-ő2r1i2d
-ő2r1if
-ő2r1i2ga
-ő2r1i2gá
-őr1iha
-őr1ill
-ő2rim
-őr1imi
-őr1i2na
-őr1ind
-ő2r1inf
-ő2r1int
-őr1i2pa
-őri2s1á
-őr1ivá
-őr1i2zé.
-ő2rizg
-őr1izm
-őr1i2zo
-őr1ír
-1őrjö
-őr1k2l
-őr1k2r
-1őrlö
-ő2r1okt
-őr1old
-1ő2r1o2li
-őr1oll
-ő2r1or
-ő2r1osz
-ő2r1ó2r
-ő3rög
-1ő2rökü
-ő2röl
-1őrömü
-őr1öng
-ő2r1ör
-ő2r1össze
-1ő2r1őr
-ő2r1ő2s
-1őrősr
-ő2r1ő2z
-őr1pl
-őr1p2r
-1őr1p2s
-1őrs.
-őr2s1ál
-1őrsí
-1őrsö
-őr1s2pe
-őr1spi
-őr1srá
-őrs3s
-őr1sz2
-1őrszen
-őr2s3zöm
-1őr1t2r
-1ő2r1un
-1ő2r1u2r
-őr1utá
-ő2r1új
-őr1úr
-ő2r1út
-ő2r1üd
-őr1üld
-1ő2rüle
-ő2r1üs
-ő2r1üt
-ő2r1üz
-2őrzősö
-ő2s1ad
-ő2s1a2g
-ős1ajtób
-ő2s1ajtók
-ősa2n
-ős1ana
-ősa2p
-ős1arc
-ős1ass
-ős1au
-ő2s1áb
-ő2s1á2g
-ősá2l
-ős1áll
-ős1ára
-ős1árv
-ős1dr
-ős1e2d
-ő2s1e2ge
-ő2s1e2gy
-ős1elm
-ős1e2lő
-ős1elv
-ő2s1e2m
-őse2n
-ős1ene
-őse2p
-ős1epi
-ős1epo
-ős1e2rej
-ős1erő
-ős1ess
-ős1esz
-ős1etn
-ő2s1e2v
-ő2s1ez
-ősé2g1e2l
-ő2s1éger
-ősé2gés
-ő2s1ék
-ő2s1é2l
-ős1ép
-ős1fl
-ős1fr
-ős1gn
-ős1gr
-ő2s1i2d
-ő2s1if
-ősi2g
-ős1iga
-ős1i2ma
-ős1i2má
-ős1imi
-ős1inf
-ős1ing
-ős1int
-ő2s1i2pa
-ős1i2ra
-ős1ist
-ős1i2sz
-ő2s1i2z
-ősí2ka
-ős1í2ró
-ős1í2z
-ős2kál
-ős1kl
-ős1k2r
-ős1kv
-ős2lat
-ős2nit
-ős1ob
-őso2k
-ős1oko
-ő2s1o2l
-ő2s1op
-ő2s1org
-ő2s1os
-ős1óc
-ős1óri
-ő2s1ö2l
-ős1önz
-ősö2r
-ős1örd
-ős1öre
-ős1örö
-ős1örv
-ő2s1ö2z
-ős1őr
-ős1ő2s
-ős2pec
-ős2pek
-ős1p2l
-ős2pór
-ősp2r
-ős2rác
-ős1sk
-ős1s2p
-ős1s2t
-őssz2
-ős3sza
-ős3szá
-ős3szeg
-ős3szek
-ős3szell
-ős3szem
-ős3szen
-ős3szer
-ős3szes
-ős3szék
-ős3szén
-ős3szf
-ős3szi
-ős3szí
-ős3szl
-ős3szo
-ős3szó
-ős3szö
-ős3sző
-ős3szu
-ős3szü
-ős2tad
-ős2tat
-ő1s2tát
-ő1s2teri
-ős2tég
-ős2til
-őst2r
-ős1tre
-ős1un
-ősu2t
-ős1uta
-ős1úr.
-ős1ú2s
-ősza2k1e
-ősza2k1ü
-ősz1e2lő
-2őszerk
-ő2szerő
-ősz1est
-őszi2l1i2
-ősz1ill
-ősz1ist
-őszö2l
-ősz1ölé
-ősz1ölő
-ősz1ölt
-ős3zse
-ősz3sir
-őszt2
-ő2s3zűrű
-őtermo1
-őtermosz2
-őtes2t1ő
-őtol2l1a2d
-ő1t2ra
-ő1t2ré
-ő1t2ri
-őt2ro
-ő1t2ró
-őttes3s
-őt2tés
-őtt1int
-őt2t1o2
-őt2t1u2
-őtűfé2
-őtűfél1
-ő1u
-őu2go
-őu2ni
-őu2ra
-őu2rá
-őu2ru
-őu2ta
-őu2tó
-őu2tu
-ő1ú
-őú2jo
-őú2ré
-őú2ri
-őú2ro
-őú2sz
-őú2té
-őú2ti
-őú2to
-ő1ü
-őü2dü
-őü2ge
-őü2gy
-őü2le
-őü2re
-őü2rí
-őü2sz
-őü2te
-őü2té
-őü2ti
-őü2tö
-őü2tő
-őü2ve
-őü2vö
-őü2ze
-őü2zé
-ő1ű
-őű2ré
-őű2ri
-őű2rö
-őű2zé
-őű2ző
-ővasfé2
-ővasfél1
-ővár1al
-őve2r1a
-2ővet
-ővé2res
-ővé2ret
-őz1abs
-ő2z1a2d
-őz1a2g
-ő2z1ak
-ő2z1a2l
-ő2z1a2t
-ő2z1au
-ő2z1ál
-őz1á2t1e2
-őz1bl
-őzeg1g
-őze2g1i
-őz1e2gy
-1ő2zekn
-őz1elo
-őz1els
-őz1elv
-ő2zem
-őz1emb
-őz1e2mel
-ő2z1e2r
-őze2t1a2
-őze2t1eg
-őze2t1el
-őze2ter
-őze2t1o
-ő2z1ér.
-őzé2rem
-ő2z1é2ri
-ő2z1érl
-őz1érté
-1ő2zié
-ő2zi2g
-őz1igé
-ő2z1in
-ő2z1iz
-őz1k2r
-őz1o2k
-őz1ol
-őz1os
-őz1össz
-őzőa2
-őzőe2l
-őzőe2r
-őz1p2r
-őz3saj
-őz3sap
-őz3sát
-őz3sik
-őz3sis
-őz3s2t
-ő2z3sü
-őz3sz
-őz1t2r
-őz1út
-őz1üg
-ő2z1üs
-ő2z1ü2z
-őz1ű2z
-2p.
-1pa
-2p1abl
-pa2cem
-pa2ch
-pa1cl
-pa2csú
-p1a2dag
-pad1ala
-pa2d1as
-pa2d1á2l
-pade2
-pa2d1el
-pa2d1em
-pa2d1id
-pa2d1iga
-p1a2dott
-pa2du.
-pa2dut
-pa2dül
-pae2r
-paé2r
-pa1fl
-pa1f2r
-pa2ga.
-pai2dé
-2p1ajtó
-pa2kad
-paka2r1ó
-pa2k1e2m
-pa2k1ér.
-2pakku
-pa1klu
-pa2k1ó2
-pa1k2ré
-2p1akta.
-pak2tal
-pak2t1e2l
-pak2t1es
-pak2t1e2v
-2p1akti
-pak2t1or.
-pak2t1orr
-pak2tos
-2palag
-pala2g1ú
-pa2lapí
-paláza2d
-palá2z1adá
-pa2l1é2l
-2p1alf
-2p1alg
-2p1alle
-2p1almá
-pal1ud
-pam1ass
-pa2m1ur
-pamu2ta
-pana2d
-pa2n1ag
-pa2nal
-pan1ala
-pa2n1á2r
-panás1s
-pan1d2
-pang1g
-pa2n1il
-pan1kro
-p1anny
-pa2nol
-pans2
-pansz2
-pan1szt
-pa2nü
-2p1a2nya
-p1a2nyu
-pa2p1ad
-pa2p1a2pa
-papa2r
-pap1ara
-pa2p1aszt
-pap1áll
-pa2p1il
-pa2p1i2na.
-pa2p1i2p
-pa2p1o2ku
-pa2pö
-pap1p2
-pa2p1ur
-pa2p1u2t
-pa2pú
-2para.
-para2je
-par1a2la
-2parann
-2p1a2rany
-2pa2r1a2r
-pa2r1ágá
-pa2r1ágn
-pa2r1ágo
-pa2r1ágv
-2paráh
-2p1a2ráj
-par1áll
-2parár
-2paráv
-2parb
-2p1arc.
-2p1arca
-2p1arcc
-2p1arch
-2parci
-2p1arco
-2p1arct
-2p1arcu
-2p1arcú
-pa2r1el
-pa2r1é2l
-2parig
-2paril
-pa2r1ill
-par1isk
-par2k1a2l
-par2k1á
-par2kel
-par2k1ing
-par2kov
-par2kó
-par2kön
-par2k1ö2v
-par2k1ő2
-par2k1ü
-2paros.
-2parosi
-2paroso
-pa2rö
-pa2rő
-2parr
-pars2
-par2tem
-par2t1ol
-par2t1ő2
-pa2r1ü2
-pa2rű
-past2
-pasz1alj
-pasz1alt
-pa2szas
-pat1ada
-patakö2
-pa2t1alk
-pat1anya
-pa2t1ara
-pat1álc
-pa2t1árk
-pa2t1e2g
-pa2t1ell
-pate2s
-pa2tél
-pa2t1ér.
-pa2t1érd
-pa2t1ére
-pa2t1érte
-pa2tid
-pa2t1int
-pa2tir
-2p1atka.
-2p1atkánk
-pa2t1old
-pa2t1olt
-2patombe
-pa2t1osz
-pa2t1otth
-pa2t1ut
-pa2tús
-patü2
-pa2t1üz
-2p1a2tya
-2p1a2tyá
-2paur
-pau2ra
-p1a2vat
-pa1wh
-2p1a2xi
-1pá
-2p1á2bé
-2p1ábr
-2páca
-2pácá
-pá2c1e
-pácé2
-pá2c3h
-pá2c3só
-pá2csö
-pá2csü
-2p1ág.
-2p1á2ga
-2p1ágg
-2p1ágy.
-2p1á2gya.
-2p1á2gyac
-2p1á2gyad
-pá2gyaib
-pá2gyaid
-pá2gyaih
-pá2gyaik
-pá2gyaim
-2p1á2gyain
-pá2gyair
-p1á2gyakb
-pá2gyaké
-pá2gyaki
-p1á2gyako
-2p1á2gyakr
-pá2gyakt
-2p1á2gyal
-2p1á2gyam
-2p1á2gyan
-pá2gyast
-2p1ágyaz
-2p1á2gyáb
-2p1ágyál
-2p1á2gyán
-pá2gyátó
-2p1á2gyáv
-2p1ágyb
-2p1ágyc
-2p1ágye
-2p1á2gyé
-2p1ágyf
-2p1ágyga
-2p1ágygo
-2p1ágyh
-2p1á2gyi
-2p1ágyj
-2p1ágyk
-2p1ágyl
-2p1ágym
-2p1ágyná
-2p1á2gyos
-2p1á2gyö
-2p1ágyp
-2p1ágyr
-2p1ágys
-2p1ágyt
-2p1á2gyu
-pá2gyú
-2p1ágyü
-2p1ágyv
-2p1ágyz
-2p1ájt
-pála2
-pá2lab
-pá2lac
-2p1álar
-2p1áldo
-pá2le
-p1álla.
-2pállap
-2p1állí
-2p1állom
-2p1állv
-2pálmo
-pá2lü
-p2ály
-pálya1s
-2pámi
-2p1á2mí
-pá2mu
-pána2
-pá2naf
-pá2n1am
-pá2n1an
-pá2nar
-pá2n1as
-pá2nár
-pá2n1e2
-pá2nék
-pá2nil
-pá2nir
-pá2nis
-pá2ní
-pán1kré
-2pánkt
-pá2n1ó2
-pá2nö
-pá2nő
-pán1sz
-pánte2
-pán2tek
-pán2t1el
-pá2nü
-pá2ny1ad
-pá2ny1a2l
-pá2ny1a2n
-pá2nyar
-pá2nyat
-pá2nyau
-pá2nyaz
-pá2ny1e2
-pá2nyérd
-pá2nyim
-pá2nyö
-2p1á2po
-pár1adó
-2páras
-2páráé
-pár2d1a2
-pár2del
-pá2r1e2
-pá2r1i2p
-pá2rő
-pár1s2
-pár2t1ag
-2pártal
-párt1any
-pár2tari
-pár2tál
-párte2
-pár2t1el
-pár2tem
-pár2tes
-pár2tet
-pár2tél
-pár2t1ér.
-pár2t1é2te
-pár2tiz
-pár2tott
-pártö2
-pár2tök
-pár2t1ő
-pár2tus
-pártü2
-pár2t1üz
-pá2ruh
-pá2ruk
-páru2t
-pár1utu
-pá2rún
-pá2rü
-2p1á2sás
-pá2s1e
-pá2sir
-pá2ső
-pás3s
-pá2s1ü2
-2p1ásván
-pá2t1a2
-pá2tá
-pá2tel
-pá2t1e2m
-pá2tis
-2p1átka.
-2p1átkát
-2p1átkáv
-p1átlag
-2p1átló
-pá2t1or
-2p1átrak
-2p1átté
-pá2t1uk
-pát1úrt
-pá2tü
-2p1átvét
-pba2l1
-pbé2r1e2l
-pb2lo
-pb2ra
-pb2ri
-pb2ro
-pci2ófo
-pcsa2p1á2g
-pcső2s1orr
-pda2l1ad
-pdal1an
-pda2leg
-pda2lel
-pda2l1es
-pda2lén
-pda2l1í2
-pd2ra
-pd2rá
-pd2ro
-pd2ró
-1pe
-pea2p
-pea2r
-peca1
-pec3c
-pe2cz
-pe2ed
-2p1eff
-pe1fl
-2p1e2gese
-pegész1
-pe1g2r
-2p1egz
-2p1e2ke.
-2p1e2kei
-pe1k2ré
-2pektr
-pe2lál
-pe2lár
-pe2lekt
-2pelemb
-2pe2lemek
-pe2lemet
-2p1e2lemé
-2p1e2lemg
-2p1e2lemh
-2p1e2lemi
-2p1e2lemk
-2p1e2lemm
-2p1e2lemn
-2pelemr
-2p1e2lemz
-pel1eró
-pele2t
-pel1ete
-2p1elgo
-2p1elha
-2p1elhel
-2peljá
-2p1elleb
-2p1elnev
-2p1elny
-pe2los
-2p1e2lö
-2p1e2lőa
-2p1e2lőá
-2p1e2lőe
-pe2lőg
-2p1e2lőh
-pe2lőí
-2p1e2lőjá
-2p1e2lőjeg
-2p1e2lől
-2p1e2lőz
-2p1elren
-2p1elsö
-2p1eltá
-2p1elto
-2pelu
-2p1elv.
-2p1elvá
-pel2v1el
-2p1elven
-2p1elvh
-2p1elvi
-2p1elvo
-2p1elvű
-3pely
-2p1elz
-2p1ember
-2p1e2mel
-2p1e2més
-2p1eml
-2p1ems
-2p1e2mu
-2p1e2ner
-2penged
-pen3ny.
-pen3nyb
-penny1ér
-pen3nyh
-2p1ennyi.
-pen3nyj
-pen3nyk
-pen3nym
-pen3nyn
-pen3nyr
-pen3nyt
-pen3nyv
-pe2nya
-penyá2
-pe2ny1e2l
-pe2ny1e2r
-peo2l
-peo2p
-peó2r
-pe2pe.
-2p1e2pé
-pe1p2r
-pe2r1akt
-per1all
-pera1p2
-perc1c
-per2c1el
-per2c1in
-2perdő
-perec1c
-peregyez1
-p1e2rej
-pe2r1elk
-pe2r1e2lőf
-pe2r1e2lőké
-pere2mért
-per1evé
-2perfa
-pe2rid
-pe2r1il
-pe2r1i2na
-pe2r1i2ná
-pe2r1ind
-pe2r1ing
-pe2rí
-per1k2
-p2erl
-per1okt
-pe2r1os
-pe2r1o2x
-pe2r1ó2r
-pe2rőd
-pe2rőf
-pe2rői
-pe2rőm
-pe2rőn
-pe2rőr
-2p1e2rős
-pe2rőt
-pe2rőv
-per1st
-persz2
-pe2rú
-pe2r1ü2g
-perü2l
-per1ülő
-per1ült
-p2erz
-pe2s1ebbel
-pe2s1ebbő
-pe2sésig
-2p1e2sésű
-pe2sői
-pe1s2p
-2p1esszév
-pes2t1a2
-pes2t1er
-pe2szak
-pe2sz1ál
-pesz1ell
-pe2sz1elv
-pesze2m
-pe2szeme
-pe2szu
-pe2sz1ü2l
-pe2tal
-pe2t1a2n
-pet2á
-petet2
-2petete
-2peteté
-2p1e2tető
-2p1e2tika
-2petim
-2p1e2to
-pet2t1i
-pe2tűd
-pe2ug
-pe2vő
-2p1ezr
-1pé
-pé2csu
-pédü2
-pé2d1ülé
-2pééb
-2pééi
-2péén
-2p1é2ge
-2p1é2gé
-pégés3s
-2p1é2hen
-2p1é2hes
-2p1é2het
-2p1éhs
-2p1éj.
-péje2
-pé2j1eg
-2p1é2ji
-2p1éjj
-pé2k1as
-pé2k1au
-pé2k1á2
-pé2k1er
-pé2k1ék
-pé2k1é2l
-péké2t
-pé2k1éte
-pé2k1i2n
-pé2kis
-2p1él.
-2p1élb
-pé2le.
-pé2lei
-pé2lek
-péle2l
-pél1ele
-pél1elmei
-pé2len
-pé2let
-2p1é2lé
-2pélm
-2p1éln
-2p1é2lő
-2p1élt
-2p1é2lű
-2p1élv
-2péneka
-2p1é2nekb
-2pénekd
-2p1é2neké
-2pénekf
-2pénekg
-2p1é2neki
-2pénekí
-2pénekj
-2p1é2nekk
-2p1é2nekn
-2p1é2nekr
-2p1é2nekt
-2p1é2nekü
-pé2ny1el
-pén2z1a
-pén2z1á2
-pén2zs
-pé2p1i2p
-2p1é2pí
-2pépü
-2p1érc
-2p1érd
-2p1é2ré
-2p1érh
-pé2rig
-2p1é2rin
-2p1érm
-2p1érn
-2p1é2rő.
-2p1érr
-2p1érte
-2p1érté
-2p1értő
-2p1érv
-2p1érz
-pé2s1aj
-pé2sal
-pé2s1e2l
-pé2sés
-péskész1
-pé2so
-pés3sza
-pé2s1ü2t
-pé2sza
-pés3zaj
-pész1ak
-pés3zav
-pé2sz1á2
-pé2sz1emb
-2p1é2széné
-pé2szin
-pé2sz1o
-pé2sz1ö
-pész3s
-pé2szu
-pé2szú
-pé2sz1ű
-péta1
-pé2tel
-2p1étk
-2pétl
-p1étla
-2p1étr
-2p1étv
-2p1év.
-2p1évb
-2p1é2ve.
-2pévei
-2p1é2vek
-pé2ven
-pé2ves
-2p1é2vet
-2p1évf
-2p1évh
-p1évk
-2p1évn
-2p1évr
-2p1évs
-2p1évt
-2p1évv
-pé2zak
-pé2z1ár
-pé2zel
-pé2z1e2m
-pézi2
-pé2zid
-pé2zin
-pé2ziz
-pé2zol
-pé2zsa
-pé2zu
-p2f1ép
-pfi2úé
-pfi2úkér
-pf2lo
-pf2ló
-pf2lu
-pf2rá
-p1f2re
-p1f2ri
-p1f2rí
-p1f2ro
-pf2ru
-pf1st
-pg2ra
-pg2ru
-pg2rü
-pha2de
-p2ha2i
-1phanész
-1p2hed
-phelyü2kü
-1p2hia2
-p2hic
-1phila
-1p2hoi
-phó2i
-1pi
-pi2aa
-pi2aá
-pi2aba
-pia2cel
-pia2cél
-pia2cik
-pia2c3se
-pi2ad
-pi2ae
-pi2aé
-pi2ag
-pi2ah
-pi2aj
-pi2akén.
-pi2al
-pi2am
-pi2ao
-pi2aö
-pi2ap
-pi2aré
-pi2asza
-pi2at
-pi2aú
-pi2aü
-pi2ave
-pi2az
-2picc
-pi2ce.
-2picl
-pida2
-pi2dan
-pi2dea
-pi2deá
-pi2dei
-pi2den
-pi2deo
-2p1i2dom
-2p1i2dő
-2p1i2du
-pi2eg
-pi2er
-pi2ég
-pi1fr
-2p1i2ga
-2p1i2ge
-2p1i2gé
-2pigo
-2p1ihl
-pi2k1ö
-pil2i
-pilis3s
-2pilles
-2p1illet
-2pillés
-2pillu
-2p1i2ly
-2p1i2má
-2p1i2mi
-2p1imm
-pinak2
-pina1p
-2pind
-2p1inf
-pin2gas
-pin2g1á2r
-pin2gelj
-pin2gép
-pin2gos
-2p1ingó
-2pinj
-2p1inp
-pin2tác
-pin2t1or
-pin2tőr
-pintu2
-pin2tur
-pi2nü
-2p1inv
-2p1inz
-pion1n
-pi2óa
-pi2óá
-pi2óe
-pi2óf
-pi2óg
-pi2óki
-pi2ól
-pi2óma
-pi2ómé
-pi2óo
-pi2óp
-2pipai
-2pipar.
-2p1i2pará
-2piparb
-2piparh
-2piparn
-2piparr
-2p1irh
-2p1i2rod
-pisau2
-2pisko
-pi2s1op
-2p1iste
-2p1isza
-piszkos1s
-pi2t1aj
-pi2tala
-pi2tall
-pi2t1a2n
-pi2t1á2p
-pi1tä
-pi1the
-pitos1s
-pi2t1ü2
-pi2vás
-2p1i2zé
-1pí
-pí2gé
-pí2já
-pí2né
-pí2r1a2
-pí2rá
-pír1ál
-pír1á2r
-2p1írás
-pí2r1e2
-pí2r1in
-pír1i2s
-pí2rí
-pí2rol
-2p1í2ró
-pí2r1ö2
-pír1s
-pírt2
-pír1tr
-pí2rü
-pí2rű
-2pítél
-2pítm
-pítőa2
-pítőe2l
-pí2ve
-pí2ze
-pí2zé
-pí2zü
-pí2zű
-pke1p2
-pke1s2
-pkés1s
-pkia2
-pkiá2
-pkie2
-pk2la
-pk2li
-pk2lí
-pk2lu
-pk2rá
-pk2re
-pk2ré
-pk2ri
-pk2ro
-pk2ró
-pk2va
-pk2vó
-p2lacc
-pla1k2l
-pla2pal
-plap1áll
-pla2p1osz
-p2latf
-1plazmá
-pleí2
-ple2t1a2n
-ple2t1e2l
-pléé2
-plé2has
-pli2s3zá
-plo2m1e
-plo2mén
-plom1ol
-plót2
-pló1tr
-plő2sa
-plő1stá
-plő2szár
-plu2m1e
-p2lur
-pmás1s
-pmeg1g
-1po
-po2be
-pocsi2
-po2cs1iz
-po2da.
-po2dz
-pogás1s
-po2in
-poki2
-2p1o2k1ir
-po2kí
-2p1okle
-po1k2ló
-2p1okm
-poko2la
-pokol1l
-2p1okta
-2p1oktá
-polás1s
-pol2can
-polc3c
-pol2c3s
-2p1olda
-polóá2
-2poltár
-2p1oltás
-2p1olti
-2p1oltó
-2polvas
-po2n1a
-pon2c3so
-po2nel
-pon2g1e
-poni2
-po2niz
-pon3n
-po2n1osz
-pon2t1a2d
-pon2tag
-pon2t1a2l
-pont1any
-pon2tál
-pon2tár
-ponte2
-pon2t1el
-pon2tem
-pon2ten
-pon2tes
-pon2ték
-pon2t1ér.
-pon2t1éte
-pon2tisz
-pon2tí
-pon2t1ő2
-2ponz
-po2ol
-po2p1a2
-po2p1á2
-2popc
-2po2pe
-pop1el
-popi2
-po2pik
-po2p1in
-po2p1ir
-po2pis
-po2p1o2l
-pop1p2
-pop1s
-popsz2
-2pop1t2
-po2pú
-po2pü
-po2r1a2c
-po2r1ag
-po2rakk
-por1ala
-por1all
-po2ram
-pora2n
-por1any
-po2r1a2r
-po2rat
-por1ács
-por1áll
-por2can
-por2c3h
-por2c3sí
-pore2
-po2rec
-po2res
-por1f2
-por1g2
-po2rid
-2porie
-po2rih
-po2r1il
-po2r1i2m
-po2r1in
-por1k2
-po2rö
-po2rő
-por2tamb
-por2t1au
-por2t1á2rá
-por2tárb
-por2tárn
-por2tej
-por2t1em
-por2tet
-por2tél
-por2t1ér.
-por2t1érk
-por2t1i2k
-por2tiz
-por2t1ív
-por2tur
-por2t1usz
-por2tut
-por2túr
-por2tű
-po2rü
-2p1orvo
-pos3szo
-pos3szö
-2postol
-2p1osty
-po2sü
-po2sze
-po2szí
-2p1oszl
-posz2tü
-po2tab
-po2tad
-po2t1a2l
-po2tan
-po2t1a2u
-po2t1e2l
-po2t1inf
-po2t1ip
-po2t1í2
-po2tol
-po2tö
-po2tus
-po2tü
-po2vi
-1pó
-pó2ce
-pó1fr
-pói2g
-pó2k1ass
-pó2kau
-pó2k1e2l
-pó2kem
-pó2ket
-pó2k1id
-pó2kim
-póki2s
-pók1isz
-pó2kiv
-pó2k1ös
-pó2k1ú
-pó2l1an
-pó2l1á
-pó2lom
-2p1ó2né.
-pó1p2r
-p1ó2rad
-pór1á2sz
-póre2
-pó2reg
-pó2rem
-p1ó2riá
-pó2rö
-pó2s1or
-pós3s
-pó2s1ü2v
-póta2
-pó2t1ad
-pó2tal
-pó2t1an
-póté2r
-pó2til
-pótü2
-pó2tül
-2póün
-2p1ó2vó
-pó2ze
-pó2z3sá
-1pö
-pö2ka
-pö2ká
-pö2kel
-pö2ker
-pö2kid
-p1ö2ko
-pö2ku
-pö2kú
-pö2lye
-2pönt
-pö2ra
-p1ördö
-pö2res
-3pörg
-pö2ro
-pö2r1ő
-pö2rú
-2p1öss
-p1ötl
-pötty1in
-2p1ötv
-pö2ve
-1pő
-pőa2n
-pőá2g
-pő1bl
-pő1dro
-pőe2r
-pőé2h
-pőé2l
-pő1kl
-pő1pl
-pő1pr
-2p1őr.
-pő2ri.
-p1őrj
-p1őrl
-2p1őrn
-p1őrs
-2p1őrt
-p1ő2rü
-2p1őrz
-pő1sz
-pp1ada
-ppai2
-ppa2j
-pp1ajá
-pp1akk
-ppa2nad
-ppa2n1ell
-ppan1k2
-pp1any
-pp1arc
-ppa1s
-pp1áll
-p2p1árj
-p2p1á2rok
-pp1átm
-p2p1á2to
-pp1átv
-p2p1e2gy
-p2p1e2kéh
-p2p1elo
-p2p1elr
-ppe2r1a
-ppe2ró
-p2p1ég
-p2p1éks
-pp2hó
-ppin2g1e2
-pp1íg
-pp1kl
-pp2las
-pp2lat
-pp1o2ly
-p2p1o2rom
-ppor2t1á2r
-ppor2t1e2
-ppor2t1ő2
-p2p1ó2l
-pp1órá
-pp1ön
-pp1öv
-pp1ö2z
-p1p2ref
-p1p2rem
-p1p2rez
-p1p2rém
-pp2rin
-pp2rio
-p1p2roc
-p1p2rod
-p1prof
-p1prog
-p1proj
-p1p2ros
-p1p2rot
-pp2rób
-pp1sp
-p2p1úg
-p2p1úr.
-ppví2
-ppvíz1
-1p2rax
-p2remi
-1p2repa
-pressz2b
-2pret
-pret2á
-1p2rédi
-p2rép
-pré2sa
-pré2s3zá
-p2riccs
-p2rius
-p2rizm
-prí2m1e2l
-prí2mem
-1probl
-1p2roce
-p2rof
-1profe
-p2rog
-p2roj
-1proje
-pro2mo
-p2ropa
-1p2rote
-1proté
-1p2roto
-1p2rovo
-1próbá
-pró2d1e
-pró2dz
-1p2róza
-pru2s1ág
-pru2se
-1p2rüs
-p2s1a2d
-psé2gel
-ps1i2ha
-ps1í2ze
-p1s2ká
-p1s2mi
-p2s1ón
-p2s1ö2z
-p1s2pe
-ps2pi
-p1s2po
-ps1pr
-ps2rá
-ps3szó
-p1s2tá
-ps2ti
-p1s2tí
-ps2to
-p1st2r
-ps2tu
-p1s2tú
-psza2k1ü
-psz1any
-p2sz1as
-psz1atl
-p2sz1ág
-ps3záp
-p2szég
-psz2fé
-1p2szic
-p2sz1ill
-pszis3s
-psz1k2
-psz1old
-psz1orn
-p2sz1ön
-p2sz1ös
-psz3s
-pta2d
-pt1ada
-pta2n1á2s
-pta2ne
-ptá2raj
-ptáró2
-ptá2rór
-p2t1eg
-p2t1e2ke.
-p2t1e2lő
-p2t1els
-pte2rál
-pté2ká
-pté2k1el
-p2t1érd
-pt1i2ma.
-p2t1i2n
-p2t1i2o
-p2t1i2r
-p2t1í2r
-pt1kl
-p2t1öt
-p1t2rag
-p1t2ran
-p1t2rá
-pt2ré
-ptu2sze
-ptu2szi
-p2t1úrr
-p2t1üt
-1pu
-pua2d
-pu2csor
-pue2l
-2p1ugr
-2puká
-pul2tas
-2p1u2ni
-2puno
-2p1u2nó
-puo2r
-pu1pr
-pu2rak
-pu2ral
-pu2sad
-pu2sal
-pusa2n
-pus1any
-pu2sap
-pu2sál
-pu2s1átl
-pu2s1e2
-pu2s1érté
-pu2sik
-pu2sis
-pu2sí
-pu2sol
-pu2sö
-pu2ső
-puss2
-pussz2
-pust2
-pu2sü
-pu2szag
-pu2szal
-pu2s3zár.
-pusz1é2p
-pu2szö
-pu2tab
-pu2t1a2d
-pu2tak
-puta2n
-2p1u2taz
-put1ing
-pu2tol
-pu2tód
-2p1u2tóp
-pu1trá
-1pú
-2p1úrf
-pú2sz
-2p1útb
-pú2té
-2p1ú2ti
-2p1útj
-2p1útk
-2p1útn
-2p1ú2to
-2p1útp
-2p1útr
-2p1útt
-2p1útv
-1pü
-pü2ge
-pü2gy
-pü2kü
-2püle
-püle2t1o
-2p1ünn
-pü2re
-2p1ü2rí
-2p1üst
-2p1ü2te
-pü2té
-2p1ütk
-2p1ü2tö
-pü2ve
-pü2ze
-1pű
-pű2ző
-pvá2r1al
-pw2hi
-pwhisky2
-py2ba
-py2bó
-py2do
-py2ho
-py2ja
-py2já
-py2ka
-py2ké
-py2ki
-py2ko
-py2ma
-py2na
-py2ná
-py2ra
-py2ró
-py1t2h
-py2tó
-py2va
-py2vá
-pze2t1a2
-pze2t1á2
-pze2t1e2r
-pzőa2
-pzőe2
-pzőé2
-2q.
-1qa
-1qá
-1qe
-1qé
-1qi
-1qí
-1qo
-1qó
-1qö
-1qő
-1qu
-qu2ae
-qu2at
-qu2er
-qu2ez
-que2zi
-qu2éb
-qu2ie
-qu2ij
-qu2il
-qu2in
-qu2is
-qu2od
-1qú
-1qü
-1qű
-2r.
-1ra
-raa2d
-raáta2d
-ra2bad
-rab1asz
-rab1á2ra
-rab1árb
-rab1árr
-ra2b1át
-ra2b1ele
-ra2b1ell
-ra2bid
-rabi2g
-ra2b1iga
-ra2b1igá
-ra2b1im
-ra2b1i2na.
-ra2b1i2ná
-ra2bind
-ra2b1int
-2rabla
-ra1bri
-ra2buj
-ra2c1aj
-rac3csa
-ra2cet
-ra2cha
-rac3hig
-ra2c3hok
-ra2c3hos
-ra2c3hot
-2r1a2cid
-rac2kar
-rac2kit
-rac2k1ö2
-rac2kü
-ra2dag
-ra2dalé
-rada2rad
-2radaté
-radás1s
-ra2de.
-r2a3dí
-2radíc
-2radm
-3radósi.
-2r1a2dóz
-ra1drá
-ra1dru
-2r1a2du.
-ra2dus
-rae2r
-raé2derb
-raé2dere
-raé2derh
-raé2dern
-raé2derr
-raé2dert
-raé2r
-rafikus1s
-ra1fl
-2r1a2ga.
-ra2gak
-rag1alo
-ra2g1ác
-ra2gáé
-2r1a2gán
-rag2de
-ragdi2
-rag2din
-ra2gel
-ra2g1i2na.
-2r1agy.
-ra2gyat
-2r1agyn
-ra2gyon
-2r1agyr
-rai2o
-2raizá
-2raizi
-2raizn
-2raizó
-2raizu
-ra2j1a2d
-ra2j1au
-ra2j1á2ru
-ra2j1es
-ra2jin
-2rajkáró
-2r1ajkú
-rajob2
-raj2t1e2l
-raj2t1en
-raj2zat
-raj2z1e
-raj2z1ón
-raj2z3s
-2r1a2kara
-rak2kép
-rak2kis
-ra1k2li
-ra1klo
-ra1kló
-ra1klu
-2raknáb
-2raknái
-r1a2kóz
-rak2re
-ra1k2ré
-ra1k2ri
-rak2rom
-raktus1s
-2r1a2kus
-r2alab
-2r1a2la2g1
-2ra2laku
-ra2lapa
-r1a2lapú
-ra2lázá
-ra2lázó
-2r1alb
-2r1aljai.
-2r1alji
-2ralk
-ralla2k
-ral2l1akó
-ral2l1at
-rallá2
-ral2lág
-ral2lál
-ral2lev
-ralo2m1e
-ra2mab
-ram1ada
-2ramai
-ram1akk
-rama2l
-ram1ala
-ra2m1any
-ram1áll
-ra2m1árá
-ra2m1árb
-ra2m1áre
-ra2m1árh
-ra2m1árn
-ra2m1árr
-ram1b
-ra2m1éhe
-ram1ide
-ram1i2ko
-ram1ill
-ra2m1im
-ram1ina
-ram1inf
-ram1ing
-ram1inj
-ra2m1i2p
-2rammb
-2rammet
-2rammi
-2rammj
-2rammn
-2rammr
-2rammt
-ra2m1osz
-ra2m1ó2r
-ra2mö
-ra2mő
-ra2mü
-2r1a2nal
-2r1a2nat
-ranás1s
-ran2csal
-rancs1ág
-ran2cse
-ran2csik
-ran2cső
-rancs3z
-2rand.
-ran2dat
-ran2d1au
-2randj
-ran2dz
-ra2nek
-ran2g1a2
-ran2g1á
-ran2ge
-rang1e2l
-ran2g1ó2
-ran2gye
-ra2nil
-ra2nim
-2ranka
-ran2szál
-ran2sze
-ransz1omb
-2rany.
-ra2nyag
-rany1a2la
-ra2ny1a2n
-ra2nyap
-ra2ny1ar
-r1a2nyáit
-r1a2nyáka
-r1a2nyákh
-r1a2nyákk
-ra2ny1ál
-ra2nyás
-r1anyás.
-2ranyb
-ra2ny1e2s
-2ranyé
-ra2nyél
-2ranyh
-ra2nyid
-ra2nyin
-ra2nyir
-rany1í2r
-2ranyk
-2ranyn
-ra2ny1ol
-2ra2nyó
-rany1ó2r
-ra2nyö
-2ranyr
-2ranys
-2ranyt
-ra2ny1ü
-2ranza
-ra2óa
-ra2óá
-ra2óf
-ra2ólá
-ra2óm
-ra2óp
-ra2ósz
-2rapa.
-ra2pák
-2rapp
-rap2pin
-ra1p2re
-ra1pré
-ra1p2ri
-ra1p2ro
-2rarann
-2r1arany.
-2r1a2ranya.
-2r1a2ranyá
-2raranyb
-2raranyn
-2raranyr
-2r1aranyt
-ra2rat
-2r1arco
-ra2rén
-2r1art
-2r1arz
-ra1s2ká
-ra1s2l
-ra1s2pe
-ra1s2po
-rassz1e
-2rasszoc
-rast2
-ra1s2ta
-ra1stá
-ra1str
-ra2sz1abl
-ra2sz1aj
-ra2szas
-ra2szat
-ra2szág
-ra2sz1árr
-rasz1emb
-ra2sz1étt
-ra2szób
-ra2szói
-ra2szón
-ra2szös
-rasz2t1a2ny
-rasz2t1el
-rasz2t1é2te
-rasz2tö
-rasz2tü
-ra2t1a2d
-rat1ajt
-rat1a2la
-rat1alt
-rat1ará
-2r1a2tád
-rat1áll
-ra2t1árad
-ra2t1á2rai
-ra2t1á2rak
-ra2t1árb
-ra2t1árv
-ratát1a2
-ratá2vi
-ra2t1e2g
-ra2t1elk
-ra2t1ell
-2ratég
-rat1ége
-ra2t1érd
-rat1érke
-ra2térte
-ra2t1érv
-rat1ing
-ra2t1ír
-ra2t1íve
-2r1atká
-2ratlé
-2ratoz.
-ra1t2ran
-2r1attr
-ra2tür
-2raty
-ra2tya
-ra2tyá
-ra2tyu
-ra2udi
-2r1a2uk
-ra2ulá
-2raum
-rau2n
-rau2ta
-rau2tá
-ra2uto
-2r1autó
-rautóé2
-raü2t
-raü2z
-2ravató
-2ravú
-ra2xü
-ra1ye
-ra1yé
-raz1ajt
-raza2n
-ra2z1any
-ra2zel
-ra2z1olt
-ra2zono
-1rá
-rá1bre
-rá2cal
-rá2c1e
-rá2c3h
-rá2c1i2n
-ráci2óf
-rá2cö
-rá2csala
-rác3ság
-rá2csét
-rá2csir
-rá2cs1is
-rá2cú
-rá2cü
-rá2d1any
-2rádáh
-2ráddá
-2rádju
-2ráfha
-2ráfhe
-2ráfhi
-2ráfid
-2ráfre
-rág1ad
-2rágam
-2r1á2gaz
-rág1á2zá
-rá2gia
-rá2gil
-rá2gim
-rá2gis
-2rágí
-rá2g1osz
-rágus4
-rá2gü
-2rágya
-2rágyáb
-2rágyáé
-2rágyáh
-2rágyái
-2rágyáj
-2rágyák
-2rágyán
-2rágyár
-2rágyás
-2rágyát
-2rágyáv
-rá2gyu
-ráí2r
-ráj2k1a2
-ráj2kel
-ráj2k1ó2
-rá2jü
-rá2kát
-rá2k1ered
-rá2k1e2s
-rá1kla
-2rákog
-rá2k1osz
-rá2k1ón
-rá2k1ó2r
-rá1krá
-rá1krét
-rá2l1ak
-rá2l1a2l
-rá2lana
-2r1álar
-rála2t1e
-rá2lál
-rál1átl
-r1álcá
-2r1áldá
-rá2lid
-rá2lim
-rá2lí
-2r1állam
-2r1állap
-2r1állat
-2r1állí
-2r1állom
-2r1álma
-rá2lü
-rá2lyal
-rá2ly1a2n
-rá2lyap
-rá2ly1as
-rá2lyav
-rá2lyús
-rá2lyút
-rá2mö
-rá2nal
-rá2n1a2n
-rá2n1a2t
-rá2n1ár
-rá2nás
-ránc1c
-rá2nék
-rán2gál
-rá2niz
-rá2ní
-rán1kl
-rá2nol
-rá2not
-rá2n1ó2
-rán2sav
-ráns3s
-rán2t1ak
-rá2nü
-rá2ny1a2d
-rá2nyag
-rá2nyako
-rány1alt
-rá2ny1a2n
-rá2ny1ap
-rá2nyar
-rá2nyaz
-rá2ny1ár.
-rá2nyérm
-rá2nyérz
-rá2ny1í2r
-rá2nyol
-rá2nyó
-rá1p2l
-2rápo
-rá2pol
-rá1p2r
-2r1á2rad
-rár1a2dá
-2r1á2rai
-2r1á2ram
-2r1á2ras
-2r1á2rat
-rá2raz
-rá2ráb
-rá2ráh
-rá2r1ál
-rá2rár
-rá2rát
-rá2ráv
-rá2r1em
-rá2rér
-2r1árh
-rá2riai
-2r1á2riá
-rá2rin
-2r1árj
-2r1árl
-2r1árn
-rá2r1ol
-r1ártó
-2ráru
-rá2rul
-rá2run
-2rárú
-rá2rú.
-rá2rút
-rá2rúv
-rá2s1a2d
-rá2s1akn
-rá2sal
-rása2r
-rás1ará
-rá2s1as
-2rásatá
-rás1a2to
-rá2saz
-rás1á2ga
-rá2s1árad
-rá2s1árak
-rá2s1á2rá
-rá2s1á2ré
-rá2sás
-rá2ser
-rá2sis
-rá2s1ol
-2r1á2só.
-2rásób
-2rásóé
-2rásóg
-2r1á2sóh
-2rásói
-2rásój
-2rásók
-2rásón
-rás1ó2ra
-2rásóró
-2r1ásós
-2rásót
-2r1ásóv
-rá2ső
-rást2
-rás1tr
-rá2sut
-rá2szan
-rá2szas
-rá2sz1á2ru
-rá2sziv
-rás3zón
-rá2tad
-rát1a2da
-rát1ala
-r1á2tál
-rá2tég
-rá2tél
-2rátép
-rá2t1i2o
-rá2tí
-2r1átlé
-rá1tri
-rá1tro
-rátus1s
-rátú2
-rá2túr
-2r1á2tül
-rá2zal
-2rázisb
-2rázisé
-2rázish
-2rázisk
-2rázisn
-2rázisr
-2ráziss
-2rázist
-rázi2sz
-rá2zsal
-ráz4sá
-rázs1e2
-rázsé2
-rá2zsén
-rázsi2a
-rá2zsis
-rá2zsó
-rázs1ü2
-rba2j1e
-rba2jokt
-rba2n1á
-rbátyá2t
-rbá2ty1áto
-r2b1ell
-r1b2la
-r1b2lo
-rb2lú
-rboc1c
-r2b1olda
-rbo2n1a2
-r1b2ra
-r1b2rá
-rb2ri
-rb2ro
-r1b2ró
-rb2ru
-rbu2t1e
-rc1adá
-rc1ajt
-rca2lak
-r2c1alk
-r2c1ana
-rc1anya
-rca1p
-rc1ara
-rc1ará
-rc1ass
-rc1a2to
-r2c1ág
-r2c1á2l
-rc1ár.
-r2c1ári
-r2c1árn
-r2c1á2ro
-r2c1árr
-r2c1árt
-r2c1á2ru
-rc3csi
-rc3csí
-rc3cso
-rc3csó
-rc3csö
-rce2g1a2
-rceg1g
-rc1egy
-rc1e2leg
-rc1elk
-rc1e2lőd
-r2c1els
-r2c1ember
-r2c1epe
-rc1e2ve
-r2c1ex
-r2c1ez
-rc1é2két
-r2c1éle
-r2c1é2lé
-r2c1é2li
-r2c1élm
-r2c1élü
-r2c1ép
-r2c1ér.
-r2c1érb
-r2c1é2ri
-r2c1érr
-rc1ész
-rc1fr
-rc1gr
-r2c3has
-rc3hel
-r2chen
-r2chig
-r2chom
-rc3hu
-r2c3hú
-r2c3hű
-rci2d
-r2c1ide
-r2c1i2ko
-r2c1ikr
-rc1ill
-r2cimá
-r2c1imi
-rc1i2na.
-rci2náb
-rci2náé
-rc1i2nár
-r2c1i2nát
-r2c1ind
-rc1i2oni
-r2c1i2pa
-r2c1isi
-r2c1isk
-r2c1ist
-rc1izm
-rc1i2zo
-r2c1íj
-r2c1ív
-r1c2ké.
-r1c2kéh
-r1c2kéi
-r1c2két
-r1c2ki.
-r1c2kia
-r1c2kig
-r1c2kok
-rc1k2ré
-rc1kv
-r1c2lu
-r2c1op
-r2c1o2r
-r2c1osz
-rc1ón
-rc1ó2r
-rc1óv
-r2c1öb
-r2c1ön
-r2c1ör
-r2c1ös
-rc1őr
-rc1pl
-rc1pr
-rcs1abl
-rcs1alak
-rcsa2p1á2g
-r2c3sara
-r2csarl
-r2c3sáp
-r2c3sár.
-rcs1áru
-r2c3sej
-r2cseleme
-r2cs1elr
-r2cs1érb
-r2csikr
-rcs1írás
-rc3s2ká
-r2c3sora
-r2c3soro
-rcsóna2k1á2
-rcs1ős.
-rcs1p
-rc3s2pi
-rcs1s
-rc3sto
-rc3sz
-rc1tr
-r2c1ud
-r2c1ur
-r2c1ut
-r2c1új
-rc1üg
-r2c1ür
-r2c1üs
-r2c1üt
-rc1üv
-rc1üz
-rc1űz
-r2c3zá
-rc3zó
-rc3zs
-rc3zu
-rc3zú
-rda2cél
-rd1a2dat
-r2d1akc
-rda2l1í2
-rd1alka
-rd1alko
-r2d1a2nya
-rda1p
-rd1a2rán
-r2d1arc
-rd1aszt
-r2d1azo
-rd1ács.
-rd1á2rak
-rd1árat
-rd1á2ron
-r2d1árv
-rdás1s
-rd1bl
-rd3dz
-r2d1e2g
-rde2k1a2
-rde2ker
-rde2kék
-rde2kol
-rde2k1ö2
-r2d1ela
-rde2sőt
-rd1exp
-rdező2p3
-r2d1é2g
-rd1é2lé
-rd1élr
-rd1élt
-rd1é2lü
-r2d1ép
-r2d1ér.
-r2d1érd
-r2d1é2ri
-rdé2sa
-rdé2sza
-r2d1é2vé
-rd1fr
-r2d1i2d
-r2d1i2ga
-r2d1igé
-r2d1ima
-r2d1i2na.
-r2d1i2nai
-r2d1i2nát.
-rdio2x
-rd1izo
-r2d1íg
-r2d1íz
-rd1kl
-r2d1okta
-r2d1old
-rd1orr
-r2d1osz
-r2d1ou
-rdóa2
-rd1ó2rá
-rdö2g1öl
-r2d1öl
-r2d1ös
-rd1öv
-rdő2s1orr
-rd1pr
-r1d2ram
-rd2rap
-r1d2raz
-rd2rog
-r1d2rót
-rd1sk
-rd1sp
-rd1st
-rdsza2k1
-rd1t2r
-rd1udv
-r2d1urá
-rd1üg
-r2d1üt
-r2d3za
-r2d3zá
-rd3zo
-rd3zó
-r2d3zö
-rd3zsí
-r2d3zú
-1re
-rea2d
-rea2j
-rea2ka
-rea2la
-rea2r
-2reálá
-2reáló
-2r1eb.
-2r1ebbő
-reb1egy
-2r1e2béd
-2r1ebh
-2r1ebk
-2r1ebm
-2r1ebn
-2r1ebs
-2r1ebv
-re2caj
-re2cal
-re2cá
-2recets
-re2ch
-rec3sar
-2r1e2cset
-rec3sor
-re2cz
-re2dan
-red1elv
-2redend
-re2d1e2r
-2redeti
-2redetű
-2redény
-re2d1é2ves
-re2dir
-re2dor
-2r1edzőb
-2redzőj
-2r1e2dzők
-2redzőr
-2r1e2dzőt
-2redzőv
-re2et
-re2ew
-2reff
-re2gap
-re2gas
-reg1áll
-re2gár
-reg1e2le
-reg1elh
-reg1ell
-re2g1elr
-reg1elv
-reg1eng
-reg1e2tető
-reg1e2vé
-regész1
-re2gid
-reg1inj
-re2giz
-re2góc
-reg2óv
-re2gú
-regü2l
-re2g1ülé
-2r1egy.
-2r1egyb
-re2gye.
-re2gyed
-re2gyen
-2r1e2gyes
-re2gyet
-2r1e2gyez
-2r1e2gyé
-2r1egyh
-2r1egyk
-2r1egyl
-2r1egyn
-2r1egyr
-2r1egys
-2r1egyt
-re2gyün
-r1egyv
-rei2rá
-re2ja
-2rejéé
-2rejűe
-2rejűn
-2rejűr
-2rejűt
-re2k1ag
-re2k1ará
-re2k1asz
-re2k1á2l
-re2k1á2p
-re2k1ár.
-re2kás
-rek1elh
-rek1elt
-rek1elü
-rek1erd
-re2k1e2rő
-reke2sz1á
-2rekééh
-re2kéj
-re2kék
-2r1ekék.
-rek1ékh
-re2kél
-2r1e2kénk
-re2k1ér.
-re2k1érd
-re2k1érte
-2r1e2kés.
-re2k1éss
-re2k1id
-re2kij
-re2kil
-re2k1ing
-re2k1int
-re2k1ip
-re2kír
-rek1k2
-re1klu
-re2k1ok
-re2k1old
-rek1opt
-re2k1os
-rek1ott
-re2kór
-re2kök
-re2kötl
-re2kő
-rek1s
-reksz2
-re2k1u2s
-re2küd
-re2k1üg
-rekü2l
-re2k1ülé
-re2k1ülő
-re2küt
-2r1elad
-2r1e2lág
-2r1elbí
-2r1elbo
-2r1elc
-2r1eldo
-2r1e2lef
-2relektr
-rele2ma
-2re2leme.
-2r1e2lemed
-rele2meg
-2relemei
-2re2lemek
-2relemem.
-2r1e2lememe
-2relememm
-2r1e2lemen
-rele2m1er
-2relemes.
-2r1e2lemese
-2relemesn
-2r1e2lemet
-re2lemezé
-rele2m1ér.
-2r1e2lemtel
-2relemük
-2relemünk
-2relemzé
-2relemző
-2r1e2l1eng
-2relér
-2r1elf
-2r1elha
-2r1elhá
-2r1elhel
-2r1elhú
-2r1eljá
-2r1elké
-rella2
-rel2l1an
-2r1ellá
-2r1ellő
-2r1elma
-2r1elmééé
-2relmééh
-2r1elméi.
-2relmél
-2relméte
-2r1elnev
-2r1elnö
-2r1elny
-2r1e2los
-2r1e2lőad
-2relődei
-2r1e2lődök
-2relőnn
-2r1előnye
-2relőzm
-2r1elso
-2r1elszá
-2r1elta
-rel2tár
-2r1eltáv
-2r1eltett.
-2reltettk
-2r1eltéré
-2r1eltév
-2relú
-2r1e2l1ül
-2relű
-2r1elv.
-2r1elvá
-2r1elvb
-2relved
-2r1elvei
-2r1elvek
-2r1elvem
-2r1elven
-2r1elves
-2r1elvé.
-2r1elvéne
-2r1elvér
-2r1elvéü
-2r1elvév
-2r1elvh
-2r1elvi
-2r1elvk
-2r1elvn
-2r1elvo
-2r1elvr
-2r1elvs
-2r1elvt
-2r1elvü
-2r1elvű
-2r1elvv
-2r1elz
-re2m1a2d
-re2m1asz
-re2maz
-re2m1ál
-re2mát
-2rembar
-2r1ember.
-2r1emberb
-2r1embere.
-2rembered
-2r1emberei
-2r1emberek
-2r1emberes
-2r1emberé
-2r1emberh
-2r1emberi
-2r1emberk
-2r1embern
-2r1emberr
-2rembers
-2r1embert
-2r1emberü
-rem1ble
-r1embó
-2rembr
-re2mel
-rem1e2lem
-2r1emelé
-2r1emelg
-r1emelk
-rem1előd
-rem1els
-re2m1eng
-re2m1esz
-re2m1ér.
-re2m1érm
-re2m1é2te
-re2migr
-re2m1ór
-re2mö
-re2m1ő2r
-rem1p2
-2remuk
-2r1e2mul
-rem1ur
-2r1e2mus
-2r1encik
-ren2d1e2r
-ren2d1ég
-ren2déj
-ren2dék
-ren2d1o
-ren2d1ö
-ren2d1ő2s
-2r1e2ner
-renés3s
-2r1enged
-2rení
-ren2s1ég
-rens3s
-re2of
-re2óa
-re2óc
-re2óe
-re2óé
-re2óf
-re2óka
-re2ól
-re2óo
-re2óp
-re2ósá
-re2ósz
-re2p1aj
-rep1ana
-rep1asz
-re2pau
-re2paz
-rep1áll
-rep1álm
-re2pás
-re2pát
-re2p1e2g
-re2p1elf
-re2p1elk
-re2p1ell
-re2pelm
-re2p1eng
-re2p1ep
-2r1e2per.
-re2p1erk
-2repéd
-rep1é2j
-2repénk
-2r1e2pés
-re2p1i2d
-rep1ille
-rep1int
-re2pok
-2reposz.
-2reposzt.
-rep1osztó
-repö2
-re2p1örö
-rep1pl
-rep1pr
-re2pú
-2r1erd
-re2rei
-re2rej
-re2res
-re2rez
-2r1erg
-re2róz
-2r1e2rő
-2r1ers
-re2sas
-re1s2c
-2r1esemé
-res1epr
-rese2t1e2l
-2r1esél
-2reskü
-r1essi
-re2szaj
-2r1e2szet
-resz1ív
-2reszkö
-2reszm
-reszta2
-resz2t1an
-resz2tál
-resz2t1ár
-resz2t1í2v
-resz2t1o2r
-resz2t1os
-2reszű.
-2r1e2szűe
-re2t1ab
-re2t1akt
-re2tal
-ret1a2la
-re2tant
-re2t1a2ny
-re2tág
-re2t1ára
-re2t1áro
-ret1átf
-re2t1elb
-re2t1ell
-re2telm
-ret1emel
-re2t1erk
-rete2sz1á
-2r1e2tetés.
-2r1e2tetésé
-2retetésn
-re2t1é2k
-re2t1él
-re2t1érb
-re2t1érd
-re2tid
-2r1e2tika
-re2tiká
-ret1ill
-r1e2tilt
-re2t1ing
-re2t1int
-re2tis
-r1etnik
-re2t1ok
-re2t1old
-re2t1os
-re2tór
-re2t1örö
-re2t1ö2v
-ret2t1est
-ret2téne
-ret2t1in
-re2t1ut
-re2t1ült
-re2tűd
-re2ud
-re2ute
-re2vező
-2r1e2vő
-2r1exp
-2rezetn
-2rezetü
-2rezor
-2rezőkh
-2r1ezr
-2rezüs
-1ré
-ré2bá
-ré2bis
-ré2biv
-ré2bí
-2rébres
-ré2bü
-2r1é2des
-2réfá
-2r1égb
-ré2gét
-2r1égn
-ré2g1ó2
-ré2gő
-2régt
-2r1éh.
-2r1é2hen
-2r1é2hes
-2r1é2het
-2r1éhs
-2r1éht
-ré2jen
-2r1é2jet
-2r1é2jün
-ré2k1ab
-ré2kac
-ré2k1a2g
-ré2k1a2n
-ré2k1au
-rék1á2sá
-ré2k1e2b
-ré2k1eg
-ré2kel
-rék1ele
-rék1elő
-rék1elr
-rék1els
-ré2k1esz
-ré2k1éte
-ré2kik
-ré2kin
-ré2kit
-rék1ola
-rék1old
-ré2kör
-ré2k1ö2v
-ré2köz
-ré2kő
-réku2
-ré2k1ut
-ré2k1ú
-ré2let.
-ré2letb
-2r1é2lete
-ré2leté
-ré2leth
-ré2letn
-ré2letr
-ré2lett
-ré2letü
-2r1élf
-2r1élm
-2rély
-ré2mad
-ré2m1a2l
-ré2m1an
-ré2mar
-ré2mau
-ré2m1ál
-ré2már
-ré2mel
-rém1e2le
-ré2mer
-ré2m1é2ré
-ré2mil
-ré2m1ist
-ré2mos
-ré2mó
-ré2mö
-2rémtu
-réna1p2
-2r1é2nekh
-2r1é2neki
-2rénekl
-2r1é2nekü
-ré2nel
-2réner
-ré2n1é2j
-ré2nö
-ré2ny1e2l
-ré2p1ed
-ré2peg
-ré2pes
-répi2
-ré2p1ip
-2r1é2pí
-ré2pol
-ré2pö
-ré2pü
-2r1épül
-2r1ér.
-2r1érb
-2r1érc
-2r1érd
-2r1é2ret
-2r1é2rez
-ré2ré.
-ré2réb
-ré2rén
-ré2rér
-ré2rés.
-ré2rése
-ré2résé
-ré2résh
-ré2rési
-ré2résk
-ré2résn
-ré2résr
-ré2réss
-ré2rést
-ré2résü
-ré2rét
-2r1érf
-2r1érh
-ré2rie
-ré2rig
-2r1érk
-2r1érl
-2r1érm
-2r1érn
-2r1é2rő.
-ré2rők
-2r1érr
-2r1értá
-2r1érte
-2r1érté
-2r1értí
-2r1értő
-2r1é2rü
-2r1érv
-2r1érz
-résa2
-ré2sal
-ré2sar
-ré2s1ár
-ré2sát
-ré2seg
-rés1ell
-ré2s1er
-ré2sés
-ré2s1ő2
-rés3sza
-ré2sú
-ré2s1ü2t
-ré2s1ü2v
-rész1a2l
-ré2szan
-rés3zav
-rész1ál
-ré2sz1eml
-ré2sz1e2sz
-ré2sz1é2k
-ré2szinte
-rész1í2v
-ré2szok
-ré2szol
-ré2szó
-rész1ó2r
-ré2szőr
-rész3s
-rész1t2r
-ré2szu
-ré2szú
-részü2l
-ré2sz1ülő
-2rétáz
-ré2t1egy
-2ré2tel
-rét1elm
-2réter
-ré2t1e2sz
-2r1é2tető
-ré2t1é2k
-ré2tiz
-ré2tol
-ré2t1os
-ré1tré
-ré2tud
-révá2
-ré2vát
-2réve.
-2révei
-rév1eké
-ré2v1é2l
-ré2v1éri
-2révé2t
-ré2v1éte
-2r1é2vév
-2révf
-2révh
-2révt
-ré2vú
-2révv
-ré2z1a2
-rézá2
-ré2z1ár
-ré2z1e2g
-réze2l
-réz1elő
-ré2zer
-ré2zes
-réze2t
-réz1ete
-ré2zid
-ré2zin
-ré2zio
-ré2zip
-réz1isz
-ré2zos
-rézó2
-ré2z1ór
-ré2zö
-ré2zsa
-ré2z3sá
-ré2z3se
-ré2z3si
-ré2zsí
-ré2zso
-ré2zsu
-rf1ál
-r2f1ép
-rfé2sza
-rfé2szá
-rf1fl
-rfia2n
-rfi1b2
-rfid2
-rfii2
-rfik2
-rfi1kr
-rf1ind
-rf1isk
-rfi1sz2
-rfit2
-rfi1tr
-rf1kl
-rf1kr
-rf2la
-rf2lo
-rf2ló
-rf2lu
-rf1okt
-rf1őrü
-rf1pr
-r1f2rá
-rf2rí
-r1f2rö
-rf1sp
-rf1st
-r2f1út
-rga1k2
-rgá2csal
-rgá2csan
-rgá2csav
-rgá2z1é
-rge2o
-rge2r1a
-rgés3s
-rg2ha.
-rgi2aia
-rgi2ako
-rgi2al
-rgi2aso
-rg2il
-rg2la
-rg2le
-rg2lo
-rg2ló
-r1g2nó
-rg2öl
-rgö3le
-rgőcsa2
-rgő2z1ölt
-rgő2z1ős
-r1g2rá
-r1g2ru
-r2gyado
-r2gy1aj
-r2gyalak
-r2gy1alap
-r2gy1algá
-r2gy1alk
-r2gy1any
-r2gyap
-r2gyarc
-r2gy1asz
-r2gyau
-r2gy1az
-r2gyál
-r2gy1á2z
-r2gy1eg
-r2gy1e2l
-r2gy1enc
-r2gy1e2s
-r2gy1és
-r2gyévé
-r2gyim
-r2gy1int
-r2gyip
-rgy1ira
-r2gy1ok
-r2gy1öz
-r2győr
-rhajóé2r
-rhatá2s1út
-rháza2d
-rhá2z1ada
-rhá2zal
-rhá2zip
-rhá2z3s
-rhitköz1
-1rhoeá
-1ri
-ri2aa
-ri2aá
-ria1b
-ri2aba
-ri2abá
-ri2abo
-ri2ac
-ri2ae
-ri2aé
-ria1f
-ri2afag
-ri2afr
-ri2a1g2
-ri2ah
-ri2ai2k
-ri2aí
-ri2aj
-ri2akén.
-ri2akó
-ri2ala
-ri2alá
-ri2alu
-ri2am
-ri2ana
-ri2ao
-ri2aó
-ri2aö
-ri2aő
-ri2a1p2
-ri2ará
-ri2aré
-ri2asza
-ri2aszá
-ri2aszi
-ri2aszo
-ri2até
-ri2ato
-ri2a1t2r
-ri2au
-ri2aú
-ri2aü
-ri2av
-ri2az
-2riásá
-2riász
-r1i2ázós
-2ribé
-ri2bol
-2r1ibr
-2ribü
-ri2c1e2l
-rics1il
-ri2d1a2l
-ri2dál
-rid1d
-ri2de.
-2r1i2deá
-ri2dei
-2ridej
-ri2del
-ri2deo
-rid1ere
-ri2d1esz
-2ridil
-2r1i2dom
-2r1i2dő
-ri2du
-ri2ed
-3rie2l
-3rier
-ri1fl
-ri1f2rá
-2r1i2ge.
-2r1i2gé
-2rigi
-ri1gla
-2r1igr
-ri2har
-2r1ihl
-rihó2
-rihón1
-2rijes
-ri1klo
-ri1k2ló
-ri1k2ri
-ri2lal
-ril2l1e2h
-ril2lét
-ril2l1in
-ril2l1ő
-2rillu
-2rillú
-2riló
-2rimáda
-2rimádá
-2r1imp
-ri2n1a2d
-2r1i2nai
-ri2naj
-ri2n1a2l
-ri2n1a2n
-ri2n1a2r
-2rinas.
-2r1i2nasá
-2rinasn
-2r1i2naso
-ri2nass
-2r1i2nast
-rina1sz2
-ri2nat.
-rin2c1a
-rin2cá
-rinc3c
-rin2c1eg
-rin2cel
-rin2cer
-rin2co
-rin2csér
-rin2csi
-2r1inde
-2r1indu
-ri2neg
-2rinfl
-rin2gál
-rin2gel
-2r1ingét
-rin2gül
-2r1inha
-2r1i2nic
-ri2nil
-ri2n1ip
-2r1injek
-rin1kré
-rin3n
-2r1insp
-2r1inst
-rin2t1ad
-rintá2r
-rin2tára
-rin2táro
-rin2társ
-2rinten
-2rinterf
-rinté2r
-rin2t1ér.
-rin2t1éré
-rin2t1éri
-2rintő.
-2rintők
-ri2nül
-ri2o1k2
-rio2lok
-ri2om
-2rionn
-2riono
-2riox
-ri2óa
-ri2óá
-ri2óc
-ri2ódar
-ri2óe
-ri2óg
-ri2óke
-ri2ól
-ri2ómá
-ri2ómé
-ri2óo
-ri2ó1p
-ri2óü
-2r1i2pai
-2ripar.
-2r1ipara
-2r1i2pará
-2riparb
-2riparé
-2riparh
-2riparil
-2riparin
-2riparn
-2riparr
-2ripars
-2riparte
-2ripartó
-2riparu
-2ripl
-ripor2ta
-2r1i2ram
-2r1i2rat
-2r1i2rá
-2r1irh
-2r1i2ri
-2r1i2ro
-2r1i2rón
-2r1irr
-2r1irt
-ri2s1ar
-ri2s1as
-ri2s1ál
-ri2sáp
-ri2s1e2l
-ri2s1emb
-ri2s1e2r
-ri2sid
-ri2sii
-ri2sil
-ri2s1is
-2rismérv
-ri2s1or.
-ri2s1ort
-2r1ispá
-2ristál
-ri2sut
-ris1üté
-ri2s1ü2tő.
-ri2s1ü2v
-2r1i2szák
-ri2t1a2d
-ri2tal
-2rital.
-2r1italb
-rit1alk
-2r1itall
-2ritaln
-2r1italo
-2ritalr
-2r1italt
-rit1a2ny
-ri2tág
-rit1ell
-ri2t1i2o
-ri2t1í
-riu2méne
-riumhid2
-riumhidr1
-riu2m1i2o
-2r1i2vad
-ri2var
-2r1i2vás
-2rivo
-2r1i2vó
-rixe2
-ri2x1el
-ri2xí
-ri2xö
-2riza
-r1i2zét
-2r1izmi
-2r1izmo
-2rizmuk
-2rizmú
-ri2zsar
-ri2zseb
-ri2zsel
-2r1izza
-2r1izzó
-1rí
-rí2gé
-2ríj.
-rí2jai
-rí2jak
-rí2jam
-rí2jas
-2ríjá
-rí2ján
-rí2ját
-rí2jáv
-2r1íjh
-2r1íjj
-2r1íjl
-2r1íjr
-2r1íjv
-rí2m1a2l
-2rímá
-rím1emb
-rí2mo
-rí2mö
-rí2né
-2r1íns
-rí2ra
-r1í2rá
-r1í2ró
-2rítél
-rítés3s
-rítőa2
-rítőe2
-rítőkész1
-2r1ív.
-ríva2
-2r1ívb
-2r1í2ve
-2r1í2vé
-2r1ívh
-rí2vi
-r1í2vü
-rí2vű
-2r1ívv
-rí2za
-rí2z1el
-rízis3s
-rí2zo
-r2j1ado
-rj1any
-r2j1ág
-r2j1áp
-rjet2
-r2j1id
-r2j1ös
-r2j1u2r
-rka1b
-rk1ang
-rka1pr
-rkaros3
-rka2ró2r
-rka2s1ü2v
-rka1t2r
-r2k1ács.
-rká2csá
-rká2ne
-r2k1á2ri
-rkár1om
-r2k1á2ru
-r2k1e2dz
-rk1e2lem
-rk2elm
-r2k1eltá
-rke1p
-r2k1erd
-rk1eredő
-r2k1e2rei
-r2k1e2rez
-r2k1e2rő
-rke2szö
-r2k1ex
-rké2p1e2l
-rké2p1éss
-r2k1ér.
-r2k1érté
-r2k1étt
-r1k2hé
-rk2hón
-rkia2
-rkie2
-rki2g
-rk1iga
-rkigaz1
-rkilenc1
-r2k1imi
-rk1inga
-rki2ont.
-rki2sem
-rki2z1a
-rk1izo
-rk1kl
-r1klie
-r1k2lí
-r1k2lo
-r1k2ló
-rk1o2laj
-rko2nya
-rko2vi.
-rko2vit
-r2k1óné
-rk1ó2rá
-rk1ó2ri
-r2k1öltési
-r2k1ötl
-rkö2ző
-rk1őr.
-rk1ő2ré
-rk1őrk
-rk1őrn
-rk1ő2rö
-rk1őrr
-rk1őrs
-rk1őrt
-rk2rém
-r1k2ri
-r1k2rí
-r1k2rom
-rk1sh
-rktus1s
-rk1udv
-r2k1ug
-rku2sze
-r2k1ú2sz
-r2k1üd
-r2k1üg
-rk2vó
-rlag1g
-rla2g1ol
-rla2p1a
-rla2pál
-rlap1e
-rla2pol
-rla2p1osz
-rla1pro
-rla1s2t
-rla2t1a2n
-rla2t1ó2
-rlá2pe
-rlás3s
-rlá2s1út
-rlá2t1e2
-rlá2t1é
-rlá2tor
-rle2g1a2
-rle2g1á
-rle2ger
-rleg1g
-rlegigaz1
-rleí2
-rle2t1á2
-rle2t1eg
-rle2tell
-rle2t1elő
-rle2t1ék
-rle2tél
-rle2t1ér.
-rle2t1érv
-rleü2
-rlésát1
-rlésáta2
-rlés3s
-rl1gr
-rló1g2
-rlóó2
-rlót2
-rlőe2
-rlő1sta
-r2m1akad
-rmaké2sz1ü
-r2m1a2kó
-rma1kré
-r2m1alt
-r2m1a2nya
-rmaó2
-rma2t1á2ru
-rma2t1ur
-rma2zon
-rmá2lér
-rmá2nyan
-rm1á2ram
-r2m1á2ro
-r2máru
-rm1cl
-rmege2
-rmeg1er
-rme2g1es
-rme2g1é
-rme3g2ö
-rme2k1an
-rme2kar
-rmeká2
-rme2k1eg
-rme2k1e2l
-rme2kérd
-rme2kor
-rme2kot
-rme2k1ó2
-rmekö2r
-rme2körö
-rm1elk
-r2m1elm
-rme2ran
-rme2ras
-rme2rin
-r2m1e2rői
-rme2rők.
-rme2rőke
-rme2rőkn
-r2m1e2rőm
-rmert2
-rmer1tr
-rm1esem
-rme2t1él
-rme2tin
-rmé2k1e2l
-rmé2ker
-r2m1é2le
-r2m1ép
-r2m1ér.
-r2m1érte
-r2m1étk
-r2m1étr
-r2m1étt
-rmi2g
-r2m1iga
-r2m1igé
-rm1illa
-rminc3s
-rm1inte
-r2m1irá
-rmi2si
-r2m1isko
-r2m1ism
-rmite2
-rmi2t1el
-r2m1íg
-rmjob2
-rm1kl
-rmo2n1a
-rmo2nár
-rmo2n1e
-rmon1n
-rm1ope
-r2m1ors
-rmo1sz2fér
-rmő2szá
-rm1p2l
-rm1p2r
-rm1sk
-rm1st
-rm1sz2
-rm1tr
-rm1üg
-rm1üz
-rmű1s
-rm1ya
-rna1b
-rna1f2
-rna2gyú
-rnai2k
-rna1k2r
-rna2pes
-rna1pro
-rnas2
-rna1sp
-rna1sz2
-rna1t2
-rná2cs
-r2n1el.
-r2n1elb
-r2n1elf
-r2n1elh
-r2n1elj
-r2n1ell
-r2n1eln
-r2n1elr
-r2n1elt
-rne2m1is
-r2n1est
-rne2t1a2
-rne2t1e2l1
-rnet1o
-rnés2
-rné1st
-r2n1i2d
-rni2g
-r2n1iga
-rno2kis
-rnó1d2
-rnö2ket
-rnus3sze
-rny1a2dó
-r2nyakad
-r2nyalako
-r2ny1alk
-r2nyarc
-rny1álm
-r2ny1ell
-r2nyelm
-r2ny1eln
-r2ny1elo
-rny1elvo
-rny1emb
-r2nyerd
-r2ny1e2rez
-rny1e2ső
-rny1ékné
-rny1ész
-r2ny1id
-r2nyiz
-rnyolc1
-rny1old
-r2ny1or
-rny1ök
-r2nyöt
-rny1s
-r2ny1ur
-1ro
-ro2ad
-roa2n
-2r1obj
-2robl
-r1obs
-roc2ke
-ro1cker
-roc2kén
-ro1c2kok
-ro1c2kon
-roc2kos.
-2r1o2dú
-rofi2tár
-ro1fl
-ro1fr
-ro2g1ad
-ro2g1ak
-ro2gal
-ro2g1am
-ro2gar
-ro2g1á2r
-ro2g1áz
-rog1enc
-ro2ger
-ro1g2ló
-ro2g1o2l
-ro2gor
-ro2g1osz
-ro2gö
-3rográ
-ro1g2ráf.
-ro1g2ráff
-rogu2
-ro2gur
-ro2gü
-3rogy
-ro2he
-ro2hö
-ro2is
-3rojt
-ro2ka.
-ro2kab
-ro2kac
-ro2k1a2d
-ro2kait
-ro2k1aj
-ro2kak
-ro2k1al
-rok1any
-ro2k1a2s
-ro2káb
-r1o2kád
-ro2k1ál
-ro2kán
-ro2k1á2s
-roke2
-ro2ked
-ro2k1en
-2rokett.
-r2oké
-ro2kék
-ro2k1é2l
-ro2kép
-ro2kid
-ro2k1ing
-ro2k1í
-2rokod
-rok1old
-ro2kő
-2r1okság
-rok1t2
-2r1oktat
-2roktán
-ro2k1u2s
-rokú2
-ro2kú.
-ro2kús
-ro2kü
-2r1o2laj
-rola2n
-rolás1s
-2r1oldá
-2r1oldó
-ro2l1i2d
-roligar2
-roligarc3
-rol2l1a2d
-rol2lag
-rol2l1akn
-rol2lan
-rol2lat
-rol2leg
-rol2lel
-rol2lis
-2r1olló
-2r1oltás
-2r1oltó.
-2r1oltób
-2roltóé
-2roltóh
-2r1oltói
-2roltóké
-2roltóm
-2roltón
-2r1oltót
-2r1oltóv
-2r1oltv
-ro2lü
-2rolvad
-2rolvas
-2r1o2lyai
-2r1o2lyáh
-2r1o2lyán
-2r1o2lyár
-2rolyéb
-2rolyéh
-2rolyéi
-2rolyén.
-2rolyiér
-2r1o2lyuk
-rom1ajt
-rom1akk
-rom1akó
-ro2m1a2ro
-ro2m1ál
-2romám
-ro2m1á2ri
-ro2m1árk
-ro2m1árn
-ro2m1á2ro
-rombé2
-rom2bén
-ro2meg
-ro2m1el
-ro2m1e2r
-ro2m1es
-ro2méj
-ro2m1é2ne
-rom2f1os
-ro2mim
-rom1iná
-rom1ist
-ro2mita
-ro2miz
-ro2mí
-romköz1
-2r1omni
-ro2m1o2r
-ro2m1ó2r
-ro2mö
-ro2mő
-rom1pr
-ro2mü
-ron1alj
-ron1alt
-ron1alu
-ron1any
-rona1t2
-rona2ut
-ro2n1áta
-ro2n1átr
-ron2csel
-ron2csem
-ro2nen
-ron1esz
-ro2n1ér.
-ron2gal
-ro2n1i2ko
-ro2n1i2m
-ro2ní
-ro2nop
-ro2nóc
-ro2n1ó2r
-ro2nö
-ro2nő
-ron1s2
-ron2tab
-ron2tem
-ron2tev
-ron2t1én
-ron2tin
-ron2tí
-2rontóé
-2r1ontóh
-2rontóig
-2rontós
-ro2nü
-ro2nyac
-rony1a2l
-ro2nyid
-ro2nyik
-ro2nyir
-ro2nyó
-ron2zab
-ron2z1al
-ron2zer
-ron2zin
-ron2z1ol
-ron2z1or
-ron2z1ó2
-ronz1z
-ro2om
-ro2os
-2r1opc
-2rope
-ro2per
-ro1p2l
-ropo1s
-rop2s
-ro2rak
-ro2r1a2l
-ro2rat
-ror1áll
-rore2
-ro2reg
-ro2r1el
-ro2r1es
-ro2r1in
-ro2rosz
-rort2
-ror1tr
-ro2rü
-ro2sar
-ros1ass
-ro2s1atl
-ro2s1av
-ro2s1árk
-ro2s1áro
-ro2sem
-ro2s1ist
-ro2s1ol
-ro2s1ó2
-ro2sö
-ro2ső
-ros3sze
-ros3szék
-ros2tet
-2rostob
-ros2tol
-2rostya
-ro2s1út
-ro2szal
-ro2szan
-ro2szás
-2r1oszlo
-ro2szó
-r1osztá
-2roté
-ro1t2he
-roto2na
-ro1t2ró
-2rotth
-ro2un
-ro2us
-rova2re
-rovás1s
-2r1o2vi.
-2r1o2vib
-2r1o2vik
-ro2vis
-2ro2xidb
-2ro2xidr
-2roxilc
-ro1xy
-ro1ya
-roza2tal
-ro2zsan
-1ró
-róa2d
-rób1ajt
-2róbá
-róc3c
-ró2c3h
-ró2cin
-ró2c1ö
-ró2c3sá
-ró2cz
-ró2dai
-ró2dep
-ródi2ad
-ró2dő
-ró2dü
-2r1óév.
-2róéve
-2r1óévé
-ró2f1ag
-2rófea
-2rófeá
-ró2f1iv
-2rófs
-ró2fur
-ró1g2r
-rói2g
-róke2rest
-róke2r1in
-ró1k2l
-ró1kré
-2r1ólm
-r1ó2lom
-ró2m1a2l
-róma2r
-róm1ara
-ró2mál
-róme2l
-ró2mél
-róm1isz
-ró2mí
-2rómk
-ró2mö
-ró2mü
-róne2m
-2r1ó2néb
-2rónéé
-2r1ó2néh
-2r1ó2nén
-2rónér
-2rónét
-2rónév
-2rónj
-2rónn
-2rónr
-rónus3s
-2rónú
-ró2nü
-róo2k
-róó2r
-ró1p2l
-ró1pro
-2r1ó2raa
-2r1ó2rac
-2r1ó2rad
-2r1ó2rae
-2r1ó2raf
-2r1ó2rag
-2róraje
-2r1ó2ram
-2r1ó2ran
-2r1ó2rap
-2r1ó2rar
-2r1ó2ras
-2r1ó2rat
-2róraü
-2r1ó2rav
-2r1ó2ráb
-2r1ó2rád
-2r1ó2ráé.
-2ró2ráén
-2r1ó2ráév
-2r1ó2ráh
-2r1ó2rái
-ró2rája
-2r1ó2ráka
-2r1ó2rákb
-2r1ó2ráké
-2ró2rákh
-2róráki
-2r1ó2rákk
-2r1ó2rákn
-2r1ó2ráko
-2r1ó2rákr
-2r1ó2rákt
-2r1ó2rán.
-2r1ó2rána
-2r1ó2ráná
-2r1ó2ránk
-2r1ó2rány
-2r1ó2rár
-2r1ó2rás
-2r1ó2rát
-2r1ó2ráv
-2r1ó2riá
-rós1orom
-ró1spi
-2rótb
-2róth
-ró2tip
-rót1ist
-2rótj
-2rótk
-2rótm
-2rótn
-ró2t1ö2v
-ró1tri
-ró2tül
-2r1ó2vó
-róza1t2
-ró2z1e
-ró2z1in
-ró2zú
-ró2zü
-1rö
-2r1öbl
-2r1ö2böl.
-2r1öbölb
-2r1öbölh
-2r1öböli
-2r1öböll
-2r1ö2böln
-2r1öbölr
-2röböltő
-rö2ga
-rö2go
-rö2gó
-rö2k1é2l
-rö2k1érv
-2rökí
-2röklé
-rö2ko
-2r1ö2kör
-2rökösé
-2rökösö
-2r1ökrö
-rö2lős
-rö2lyü
-rö2ma
-rö2má
-2röme.
-2römed
-rö2meg
-2römei
-2römén
-2römét
-2römév
-rö2mí
-2römmű
-rö2mo
-rö2mó
-2römöd
-2römök
-2römöt
-rö2mu
-2römü
-2römű
-rön2d1e
-rön2k1a2
-rön2k1e2
-rön2kép
-rön2kol
-rön2kos
-rön2k1öl
-rön2k1ü
-rö2p1i2
-rö2re
-rö2rö
-rö2sa
-rö2sá
-rö2so
-rös3sza
-2r1öv.
-2r1övb
-2r1ö2ve
-r1ö2vé
-2r1övh
-2r1övn
-2r1ö2vö
-2r1övr
-r1ö2vü
-2r1övv
-1rő
-rőa2n
-rőát1
-rőáta2
-rő1bl
-rő1br
-rő2dá
-rő2d1e2l
-rő2dos
-rő2d1ő2r
-rőe2l
-rőe2r
-rőe2s
-rőé2h
-rőé2l
-rőé2r
-rőé2te
-rő2f1as
-rő1fl
-rő2f1ő
-rőgé2p1és
-rői2ta
-rő1kl
-rő1kv
-2rőlt
-rő1pl
-rő1pr
-2r1őr.
-rőr1ak
-rőr1eg
-r1ő2rei
-r1őrh
-rőr1in
-rő2riz
-rőrköz1
-2r1őrl
-2r1őrm
-2r1őrn
-rő2rö
-2r1őrp
-2r1őrr
-2r1őrs
-2r1őrt
-2r1ő2rü
-2r1őrz
-rősá2
-rő2sár
-rő2sír
-rő1ská
-rő2ső
-rő1spe
-rő1s2pi
-rő1sta
-rő1str
-rősü2l
-rő2s1ülő
-rő2s1ült
-rő2s1ü2t
-rő2s1ű2
-rősza2kál
-rőu2t
-rőü2l
-rőva2s1
-rő2zi.
-rő2zön
-rpei2
-rpe2szel
-rp2he
-r2p1ig
-rpis1á2
-rpi2t1a
-rpi2t1e2
-r2p1ivá
-r1p2la
-rp2le
-rp2lé
-rp2lu
-rp2lü
-rprecíz1
-r1p2ré
-r1p2ri
-r1p2rí
-r1p2ro
-r1p2ró
-rpu2szé
-r2p1üz
-r2r1a2lap
-rra2sza
-rra2szi
-rrata2n
-rrat1any
-rra2t1á2r
-rra2t1e
-r2r1ábr
-rrádiók2
-rrádió1kb
-r2r1á2ga
-r2r1á2gy
-r2r1árb
-rrá2saj
-rrá2sar
-rrá2ság
-rrá2se
-rrás3s
-rrá2sü
-rrá2s3z
-rrá2tal
-r2r1áts
-rre2l1i
-rr1emb
-rren2d1ő2
-r2r1ék
-rré2r
-r2r1éri
-rré2sem
-rr1fl
-rr1fr
-r2r1i2de
-rr1in.
-rr1ing
-r2r1ir
-rri2ta
-rr1i2zé
-rr1izg
-rr1izm
-rr1k2r
-rr1ope
-rro2rál
-rror1osz
-rró1dr
-rró1p
-r2r1öb
-r2r1ös
-rr1pl
-rr1pr
-rr1sp
-rr1t2r
-r2r1u2r
-r2r1ür
-r2r1üt
-rry2n
-r2s1a2dó
-r2s1a2g
-r2s1aia
-rsa2il2
-rs1akku
-rs1alan
-rsa2lap
-r2s1ale
-rs1alm
-r2s1a2lomb
-r2s1ana
-rs1a2ny
-r2s1a2pá
-r2s1a2po
-rs1a2ra.
-r2s1arc
-rs1arom
-rs1arz
-rs1att
-rsa2v1ar
-rsa2v1é2
-rsa2v1i
-r2s1ax
-r2s1a2z
-r2s1ábr
-rság1g
-rs1áld
-r2s1á2ré
-r2s1árn
-r2s1árr
-r2s1á2ru
-rs1áté
-rs1áti
-rs1bl
-rs1br
-rs2ch2
-r1sche
-rsc3hé
-rs1d2r
-rs1edz
-r2s1ef
-rs1e2gét
-r2s1e2gy
-rse2il
-rse2k1a2
-rse2keg
-r2s1e2leme
-rs1elf
-r2s1elk
-r2s1e2lőa
-r2s1e2lől
-rs1e2mi
-r2s1e2mu
-rse2ny1a2
-rse2nyeg
-rse2ny1e2l
-rse2nyer
-rse2nyí
-rse2nyő
-r2s1erd
-r2s1erk
-rs1erő
-r2s1ess
-r2s1esz
-rsé2g1el
-r2s1él
-r2s1ép
-r2s1ér.
-r2s1érd
-r2s1érl
-r2s1érték
-r2s1és
-rs1é2te
-rs1étk
-rs1étt
-rs1fr
-rs1gl
-rs1gr
-rsi2d
-rs1ide
-rs1ido
-rsi2g
-rs1iga
-r2s1ikr
-r2s1ill
-r2simm
-rs1ind
-r2s1ing
-r2s1int
-r2s1i2o
-rs1i2pa
-rs1iro
-r2s1i2si
-r2s1isk
-r2s1ism
-r2s1ist
-rs1írn
-r2s1í2ró
-r2s1írt
-r1s2kál
-r1skj
-rs1kl
-rs1k2r
-r1s2lu
-rs2mink
-rs2ni
-rs1ond
-rsonya2
-rso2nyal
-rso2nyan
-rso2nyat
-rso2nyé
-r2s1op
-r2s1ord
-r2s1org
-rs1osz
-rsócsa2
-rsócsap1
-r2s1ódá
-r2s1óné
-rsó2s3zárr
-r2s1öb
-rs1önt
-rs1örv
-r2s1ös
-r2s1ö2z
-rs1őr
-rs1pl
-rsp2r
-r1s2rác
-rs1s2t
-rs3szag
-rs3szak
-rs3szá
-rs3szem.
-rs3szemet
-rs3szer.
-rs3szerű.
-rs3szerűb
-rs3szerűe
-rs3szerűn
-rs3szerűs
-rs3szerűt
-rs3szerűv
-rs3szi
-rs3szí
-rs3szó
-rs3szö
-r1stand
-r1s2tat
-r1s2tác
-r1s2tát
-rs2top
-rst2r
-r1strat
-rs1tre
-rs1tré
-r1stró
-r1stru
-r1s2tú
-rsu2r
-rs1ura
-rsu2t
-r2s1uta
-rs1utá
-rs1úr.
-rs1ú2ri
-r2s1ú2s
-rs1úto
-r2s1üd
-rs1üld
-r2s1üz
-rsza2k1a2l
-rsza2k1e
-rsza2kö
-rsza2k1ü
-r2szaló
-r2s3zam
-rszág1g
-rszáraz1
-rs3zárl
-r2s3zené
-r1sz2f
-rsz2lo
-rsz2m
-rszom2j1a2d
-rs3zse
-rs3zsi
-rsz2ta
-rszt1al
-rszt1árv
-rszt2rá
-r2s3zűr.
-r1sz2v
-r2t1abla
-r2t1abr
-r2t1a2dat
-rt1a2dó
-r2t1a2ga.
-rt1agit
-r2t1ajá
-rt1ajtó
-r2t1a2kara
-r2t1akc
-rta1kre
-rta1k2ré
-rt1alapj
-rt1a2láb
-r2t1alár
-r2t1alb
-r2t1alel
-r2t1alg
-r2t1alj
-r2t1alk
-r2t1alt
-r2t1alv
-rta2m1ér
-rt1anim
-rta2n1ó2r
-r2t1anto
-r2t1antr
-rt1a2nyag
-rt1app
-rt1arán
-r2t1arc
-rta2rén
-rt1a2ty
-rt1a2uto
-r2t1azo
-rt1ábr
-r2t1áf
-rt1ág.
-rt1á2ga
-rt1ágb
-rt1ágg
-rt1ágj
-rt1ágn
-rt1ágr
-rt1ágs
-rtá2lad
-rtá2lala
-rtá2rada
-rtá2raj
-rtá2ramr
-rt1ária
-rt1áriá
-r2t1árin
-rt1árszi
-rt1árszí
-r2t1árta
-rtá2ruké
-rtá2rukk
-rtá2rukn
-rtá2rukr
-rtá2rukt
-r2t1árur
-r2t1árut
-rtá2s1ág
-r2t1ásás
-rtá2s3z
-r2t1á2t1a
-r2t1átl
-r2t1áts
-r2t1átv
-rtá2v1é
-rtávi2
-rt1bl
-rt1br
-rt1cl
-rt1cr
-rt1dr
-rtea2
-rt1e2gé
-rt1e2gye
-rtei2
-r2t1eks
-r2t1elad
-r2t1elb
-r2t1elf
-rt1eljá
-rt1elker
-rt1elkö
-rt1elkü
-rtel2la
-rtel2l1á2
-rt1elma
-rt1e2lőa
-rte2lől
-r2t1elr
-r2t1ember
-r2t1eml
-r2t1enc
-r2t1ent
-rte1p
-rte2rac
-rte2rál
-rte2r1in
-rtermo1
-rtermosz2
-rte2r1os
-r2t1e2ró
-r2t1erő
-rte1sp
-rt1esték
-rt1estné
-r2t1estün
-rte2sze.
-rte2szei
-rte2szek
-rte2szem
-rte2szet
-r2t1eszk
-r2t1eszm
-r2t1e2szü
-r2t1é2d
-rt1é2gi
-rté2kaj
-rté2k1a2l
-rtékát1a2
-rték1í
-rté2kos
-rté2ku
-r2t1é2let
-rté2lén
-rt1é2li
-r2t1élm
-r2t1é2neke
-r2t1é2nekk
-r2t1é2nekr
-r2t1épü
-r2t1érdem
-r2t1érem
-r2t1é2ré
-r2t1érin
-r2t1é2rit
-r2t1értek
-r2t1érté
-r2t1érv
-r2t1érz
-rté2s1ég
-rtéskész1
-rtés3sza
-rté2sül
-rté2szá
-rté2szo
-rté2szö
-rtés3zsí
-r2t1étk
-r2t1étl
-r2t1étt
-r2t1étv
-r2t1é2ve.
-r2t1é2vet
-rté2véné
-r2t1é2vér
-rt1évk
-rt1fl
-rt1fr
-rt1gr
-r1t2ha.
-r1t2hág
-r2t1i2de
-rt1idé
-rt1idi
-rt1ifj
-r2t1i2gé
-r2t1ill
-r2timá
-r2t1i2mi
-r2t1imp
-r2t1i2náb
-r2t1i2náé
-r2t1i2náh
-r2t1i2nán
-r2t1ind
-r2t1inf
-r2t1ing
-rti2nik
-r2t1i2pa
-r2t1irá
-r2t1iro
-r2t1isi
-r2t1isk
-r2t1ism
-r2t1isza
-rt1i2tal
-r2t1izé
-rt1izm
-r2t1izz
-r2t1íg
-r2t1íj
-r2t1ín
-rtí2ra
-rtí2rá
-rt1í2ve
-rt1í2vű
-rtí2z
-rt1ízl
-rt1kl
-rt1kr
-rt1kv
-rtmű1
-rtműt2
-r2t1of
-rto2kad
-rto2k1a2l
-rto2k1ar
-r2t1o2li
-r2t1oml
-rto2n1a2
-rtoná2
-rto2nár
-rt1opá
-rt1ope
-rt1opt
-r2t1org
-r2t1o2rom
-r2t1orr
-r2t1ors
-r2t1orv
-r2t1osz
-rtóe3rejü
-rtó1p
-rtó2rák
-rtó2s1ín.
-rtó1sp
-rtó2s3zár
-r2t1ökl
-rt1ököl
-r2t1ö2lőse
-rtön3n
-rt1ö2rök
-rt1öröm
-r2t1össz
-rt1ö2vez
-rtőé2h
-rtőkész1
-r2t1őrköd
-rt1őrl
-r2tőrül
-rt1pl
-rt1pr
-rt1ps
-rt2rad
-r1t2raf
-r1t2ranz
-r1t2rág
-r1t2riá
-r1t2rik
-r1t2ril
-r1t2rió
-r1t2rón
-r1t2rü
-rt1sk
-rt1sl
-rt1sp
-rt1st
-rtsz2
-rt1t2r
-r2t1udv
-rtu2k
-rt1uká
-r2tunik
-rtu2rai
-rtu2ral
-rt1u2rá
-rtu2sze
-rt1u2tat
-rt1utá
-r2t1új
-r2t1ú2s
-r2t1üg
-r2t1üld
-r2t1ü2lé
-rt1ülő
-r2t1üt
-r2t1ü2v
-rt1ű2ző
-r2tying
-rty2j
-rty2s
-r1t2zé
-r1t2zi
-rt2ző
-1ru
-ru2ac
-ru2b1i2k
-ru2c3h
-ru2cz
-2r1udv
-rue2l
-rue2r
-ru1fr
-2rugar
-2r1u2gat
-rug3gy
-2r1ugr
-ruhás1s
-2r1ujj
-ru1k2l
-2ruktu
-2ruktú
-rum1agr
-ru2maj
-ru2mal
-ru2maz
-ru2m1eng
-ru2mer
-ru2mes
-ru2mél
-ru2m1i2k
-rum1ill
-ru2m1i2p
-ru2mis
-ru2m1iv
-ru2miz
-ru2mí
-ru2mol
-ru2m1o2r
-ru2mö
-ru2mő
-ru2mü
-2r1unc
-run2da
-ru2nit
-r1u2nok
-ru2pad
-ru2pe
-ru2p1il
-ru2pü
-ru2rad
-ru2rai
-r1u2ral
-ru2ras
-ru2rat
-r1u2raz
-ru2rán
-ru2rát
-2r1urb
-ru2ruk
-rus1abl
-ru2sad
-ru2sal
-rusa2n
-rus1any
-rusa2r
-rus1aro
-ru2sas
-ru2sál
-ru2s1iz
-ru2sír
-ru2s1ol
-ru2s1ó2
-ru2ső
-russ2
-russz2
-rust2
-rus1tra
-ru2s1ű2
-ru2sz1é2p
-ru2szip
-r1u2tac
-r1u2tak
-r1u2tat
-r1u2taz
-2r1utc
-r1u2tó.
-r1u2tób
-r1u2tód
-r1u2tói
-r1u2tój
-r1u2tók
-r1u2tón
-ru2tóp
-r1u2tór
-r1u2tós
-r1u2tót
-r1u2tóv
-1rú
-rúda2
-rú2dad
-rú2d1al
-rú2d1ar
-rú2d1á
-rú2del
-rú2din
-rú2du
-rú2dü
-rú1dy
-rú2d3z
-rú1gr
-2r1újd
-rú2jí
-2r1újk
-2r1újs
-2r1úr.
-2r1úrb
-2r1úrh
-2r1ú2ri
-2r1úrk
-2r1úrn
-rú2ro
-2r1úrr
-2r1úrt
-rú2szó
-rú2t1a2l
-2r1ú2t1e2
-2r1ú2té.
-rú2tér
-rú2tit
-2r1útk
-2r1útle
-2r1útm
-rúto2
-2rúts
-2r1ú2tü
-2r1útv
-rú2zsad
-rú2zse
-1rü
-rü2dí
-rü2dü
-rü2gyel
-2rügyn
-rü2ha
-rü2la
-rü2lá
-rü2led
-rü2les
-rü2lép
-rü2lér
-rü2lí
-rü2l1o
-rü2ló
-rülö2
-rü2l1ön
-rü2l1öz
-rü2l1őg
-rü2lu
-rü2lú
-rü2l1ül
-2r1ünn
-2r1ü2nő
-rü2rí
-rü2rü
-rü2te
-rü2té
-rü2tö
-rü2tő
-rü2vö
-rü2ze
-rü2zé
-1rű
-rű1gr
-rű1kl
-rű1pr
-2r1űr.
-2r1űrh
-2r1űrm
-rű2rö
-2r1űrt
-rű2s1orr
-rűs1ors
-rű1sp
-rű1str
-r2v1agá
-r2v1akc
-rva2lap
-r2v1alj
-r2v1alk
-r2v1a2rán
-rva2sáb
-rva2sék
-rvasu2
-r2v1a2szó
-rva1t2r
-rvavá2
-r2v1ága
-rvá2gyi
-r2vállam
-r2v1állo
-rv1állv
-rvá2nyad
-rvá2nyan
-rvá2nyú
-r2v1áp
-rvá2r1al
-r2v1á2ram
-rváro2s1os
-rv1á2rú
-r2v1á2sás
-r2v1áta
-rvá2tors
-r2v1e2b
-r2v1e2dz
-r2v1e2gye
-rv1ela
-rv1e2led
-rve2lemb
-r2ve2leme
-rv1e2les
-r2v1elk
-r2v1ell
-r2v1elo
-r2v1e2lőa
-rv1e2lőá
-r2v1e2lőkép
-r2v1előr
-r2velőz
-r2v1eng
-r2v1ep
-rve2r1a
-rve2r1á2
-r2v1e2retn
-rverés3s
-rve2rip
-rve2r1o
-r2v1e2rői
-r2v1e2sete
-r2v1e2sés
-r2v1ex
-rv1éke
-rv1ékk
-rv1ékn
-rv1ékü
-rv1é2lel
-r2v1é2lé
-rvé2ny1el
-r2v1ép
-r2v1é2rem
-r2v1é2ré.
-r2v1érés
-r2v1érp
-r2v1érté
-r2v1érv
-r2v1é2vet
-r2v1évi
-rv1fr
-r2v1ido
-r2v1iga
-rvigaz1
-r2v1igé
-r2v1ik
-r2v1inf
-rv1inte
-rv1inté
-r2v1i2p
-r2virán
-r2v1isme
-rvis3sze
-rv1ital
-rvi2z1a2
-rvi2z1á2
-rvi2z1elv
-rviz1o
-rvi2zó
-rvíze2
-rvíz1es
-rv1kl
-rv1kr
-r2v1ob
-r2v1olv
-r2v1op
-r2v1or
-rv1osz
-r2v1ov
-r2v1ó2h
-r2v1órá
-rv1öss
-rv1ős
-rv1pr
-rv1sk
-rv1sp
-rv1st
-rv1tr
-r2v1ub
-r2v1u2t
-r2v1üg
-rvü2l
-r2v1ülé
-r2v1ülő
-r2v1ült
-r2v1üt
-r2v1ü2v
-r2v1ü2z
-ry2be
-ry2bó
-ry2bő
-ry1é2n
-ry2ho
-ry2na
-ry2ne
-ry2ra
-ry2re
-rys2n
-ry2tó
-ry2tő
-ry2va
-ry2ve
-r2z1a2dot
-r2z1a2la
-r2z1alj
-r2z1alk
-rz1almás
-rza2sz
-r2z1aszó
-rza2tal
-rza2t1e2
-rza2tol
-r2z1áll
-rzá2r1ó2r
-rzá2se
-rzás1s
-rz1e2be
-rze1p2
-rz1est
-rze2tal
-rze2t1eg
-rze2t1e2l
-rzetes3s
-rze2t1o
-rzetü2két
-rzéna2
-rzé2n1al
-rzé2nat
-rzé2ná
-r2z1érm
-rzé2so
-rzi2ab
-rzis3s
-r2z1ín
-rzo2r1ál
-rzó2s3zár
-rzőa2
-rzőe2
-rz1p2r
-rzs1ala
-rzs1any
-rzs1apa
-r2zsaz
-r2z3sár.
-rz3seben
-r2zs1e2g
-r2zs1e2r
-r2zség
-r2zs1ék
-r2zs1ér.
-r2zséva
-r2zs1iga
-rzs1inj
-rzs1int
-r2zsip
-r2zsita
-rzs1or
-r2zs1ö2r
-r2zs1ő2
-rzs1s
-rzs1u2t
-rzs1úr
-rzs1ült
-rzu2sak
-rzu2san
-rzus3s
-rzu2s3z
-r2z1ut
-2s.
-1sa
-2sabo
-2sabr
-2s1abs
-2s1a2cé
-sa2dalé
-2s1adap
-2s1a2data
-2s1a2dato
-2s1adató
-sadás1s
-2s1adm
-sa2dog
-sa2dóc
-sa2dód
-sa2dóé
-sa2dóh
-sa2dói
-sa2dój
-sa2dóm
-sa2dón
-sa2dór
-sa2dóu
-sa2dóz
-sae2r
-sa1f2r
-2saga
-sa2gan
-sa2g1ál
-2sagg
-sa1gne
-2s1a2gó
-sa2gő
-sa1grá
-s1agy.
-s1agyb
-s1a2gyo
-sa2gyú
-3sah.
-saha2r
-sa2hov
-sa2ig
-2saja
-sa2jak
-sa2jág
-2saján
-sa2j1ö
-saj2tal
-saj2t1a2n
-saj2tar
-sajté2r
-saj2t1éré
-saj2tor
-saj2t1ö
-saj2t1ü2
-sa2k1ab
-2s1a2kad
-sa2k1an
-sa2kas
-2s1akci
-sak2k1a2r
-sak2k1as
-sakke2
-sak2k1eg
-sak2ker
-sak2kes
-sak2kis
-sak2kol
-sak2k1orr
-sak2k1ó2
-2sakku
-sa1klu
-2s1akna.
-2saknáb
-2saknái
-2s1aknák
-sak1ola
-sa2k1orm
-sa2k1ös
-sa1k2ru
-2s1akt.
-2s1akti
-2s1aktu
-sa2k1ug
-2s1a2kus
-sa1k2va
-2salab
-sala2g1
-sala2ka
-sa2laku
-2s1a2lapa
-sa2lapí
-sa2lapl
-sa2lapoz
-s1a2lapr
-sa2lapt
-salá2da
-2saláí
-salán1n
-salás1s
-2s1aláté
-2s1alb
-s1a2lel
-s1alépí
-salé2t
-sa2l1éte
-2salf
-2s1algáh
-2s1algái
-2s1algán
-2salgásat
-2s1aljai
-2s1aljáh
-2s1aljár
-2s1alját.
-2s1alka
-2s1alkot
-s1alku
-2salm
-2s1a2lomn
-2s1a2lomr
-sal2tag
-2s1alte
-2s1alth
-2s1altit
-sa2l1ú
-sa2m1any
-sa2mec
-sa2m1il
-sa2m1í
-sa2mol
-sa2m1osz
-2s1a2mő
-sa2nal
-sa2nat
-s2and
-2sane
-sa2nek
-2s1angy
-sa2nód
-sa3nö
-s1ante
-sa2nya.
-s1a2nyag
-sa3nyar
-2sanyá
-saó2r
-sa2p1a2dó
-sa2p1a2g
-sapa2te
-sa2pác
-sap1á2cs
-sap1áll
-sa2p1átm
-sa2páto
-sa2p1el
-sa2p1ék
-3sapka
-3sapkáb
-3sapkán
-3sapkás
-3sapkát
-3sapkáv
-sa2p1osz
-s1a2pókr
-s1a2pósab
-2sapp
-s1aprí
-sa1pro
-2sapu
-sa2ratá
-sa2rató
-sa2rány
-sar2c3ho
-sar2cin
-sa2rén
-sa2rit
-sar2j1e
-sar2k1e2
-3sarki
-sar2kin
-sar2kir
-sar2k1ö2
-3sarkú
-3sarló
-2sarm
-2sarom
-2sarz
-sase2
-sa2s1eb
-sa1s2m
-sa1s2po
-sas3sza
-sas3szá
-sas3sze
-2s1asszo
-3sast
-sa2s1u2t
-sa2sú
-s1aszf
-2saszt
-sata2kés
-sa2t1alj
-sa2t1alt
-sa2t1a2nyá
-sat1apu
-sa2t1á2rak.
-sa2t1árka
-sa2t1érk
-sa2t1érr
-sa2t1i2k
-sa2t1ing
-s1atlé
-satmo1
-satmosz2
-2s1a2tombó
-2s1a2tomo
-sa2t1orm
-sa2t1ó2d
-sa2t1ó2né
-sa1t2rá
-2saty
-sa2tyá
-sa2ul
-sa2urá
-2saut
-sa2uto
-s1autó.
-sautóé2r
-sautói2ko
-sa2uv
-3sav.
-3sava.
-sa2v1a2da
-sa2v1a2l
-3saván
-sav1ára
-sav1ária
-sa2v1árt
-sa2v1el
-sa2v1ér
-sav1ill
-sa2v1i2n
-sa2vő
-sa2vü
-sa2xi
-sa2zon
-1sá
-sá2b1ak
-sá2b1e2l
-sá2b1e2r
-sá2big
-sá2b1il
-sá2bö
-sá2buj
-sá2b1ut
-sá2bü
-sá2csá
-sá2gab
-sága2d
-ság1ada
-2ságadd
-sá2gal
-sá2gan
-sá2gas
-2s1ágas.
-ság1ass
-sá2gat
-2s1á2gaz
-sá2g1ál
-sá2g1á2rak
-sá2g1árn
-sá2g1á2ru
-sá2g1e2
-sá2gép
-sá2g1i2ko
-sá2gí
-sá2g1osz
-sá2g1ó2
-sá2g1ö
-sá2gő
-ság1s
-sá2gü
-sá2gű
-4s1á2gy
-ságy1a2d
-sáka2
-sá2kal
-sá2k1an
-sá2kar
-sá2kát
-sá2k1e2
-sákköz1
-sá2k1ö
-sá2kü
-s1álc
-sá2l1in
-2s1álm
-s1á2lomb
-3sámá
-sán2c1é
-sán2c3so
-sán1k2r
-sánt2
-sán1th
-sá2nü
-sá2p1ost
-sá2rad
-sár1adá
-sár1a2dó
-sá2r1ag
-sá2raj
-2s1á2rak.
-sá2raka
-2s1á2rakb
-2s1á2rakh
-2s1á2rakk
-2s1á2rakn
-2s1á2rako
-2s1á2rakr
-sá2rakt
-sá2r1a2l
-2s1á2ram
-sá2r1a2n
-2sá2ras
-sár1ass
-sár1asz
-2s1á2rat
-sá2rág
-sá2r1ál
-sár1d2
-sá2r1e2
-2sárét
-sá2r1év
-sá2ria.
-2s1á2riá
-sár1iko
-sá2r1i2p
-sá2r1i2s
-sá2rí
-sár1k2
-sá2r1osz
-sár1ott
-sár1óni
-sá2rö
-sá2rő
-2sárro
-sár1s2
-sárt2
-sár1tr
-sá2rug
-2s1á2ruh
-2s1á2rul
-2sárus
-sárú2
-2s1á2rú.
-sá2rü
-sá2s1ad
-sá2sar
-sá2sás
-sá2s1e2
-sá2sis
-sáskész1
-sá2só
-2s1ásó.
-sás1ó2r
-2s1ásóv
-sá2sö
-sá2ső
-sás3sz
-sá2s3za
-sászá2r1a2d
-2s1á2szo
-2sáta
-s1átad
-sá2t1alj
-s1á2tál
-s1á2t1á2z
-2s1átb
-2s1átc
-2s1átd
-2s1á2t1e2
-2sáté
-sá2tél
-2s1átf
-2sáth
-2sáti
-sá2t1ir
-2s1á2tí
-2sátj
-2sátk
-2s1átm
-s1á2tokt
-3sátor
-sátókész1
-2s1á2t1ö
-3sátra
-3sátrá
-s1átre
-2sáts
-2sátt
-s1áttö
-2sátu
-2s1á2tü
-2sátv
-s1átve
-s1átvé
-s1átvi
-3sáv.
-sá2v1a2d
-sáva2l
-sá2v1a2r
-sá2v1ál
-sá2v1á2r
-3sávb
-sá2v1e2
-sá2v1érz
-sá2vis
-sá2viz
-3sávj
-sá2v1or
-sá2vö
-3sávr
-3sávú
-3sávv
-sba2l1
-sbeá2
-sbér2cs
-sb2lo
-sb2lú
-sb2ra
-sb2ri
-sb2ro
-sb2ró
-scar2
-1scheie
-sc3hek
-sc3hen
-sc3het
-sc3hé.
-1schébe.
-sc3héd
-1schéére
-1schére
-sc3hés
-sc3hi.
-sc3hig
-1schil
-sc2ri
-sda2dal
-sdai2
-sdeá2
-sde1b2
-sde2del
-sde1kr
-sdes2
-sde1sp
-sde1st
-sdesz2t
-sdi2ale
-sd2ra
-sd2rá
-sd2ro
-sd2ru
-1se
-sea2d
-sea2l
-sea2n
-seá2l
-seá2r
-se2bag
-se2b1ak
-seb1alt
-sebá2
-se2b1ág
-se2bár
-se2b1e2g
-seb1ell
-seb1elz
-se2b1esh
-seb1esze
-s1e2béd
-3sebés
-se2b1ó2
-se2bö
-se2b1ő2
-seb1p
-seb1s
-se2b1u
-se2bú
-se2bül
-3sebzé
-secs1a2p
-se2csev
-se2cs1ék
-2sedez
-sedél1
-2sedény
-se1dra
-se1d2rá
-se2dzé
-se2dző
-see2l
-see2n
-2seff
-se1f2ra
-2s1e2ger
-3segéd
-2segér
-segés3s
-s1egész1
-2segét
-3segg
-seg2ga
-seg2go
-3segí
-se2gyed
-segy1e2l
-s1e2gyé
-2s1egyh
-2s1együ
-sehü2
-se2h1üv
-seí2r
-sej2t1a2
-sej2t1e2ny
-sej2ter
-sej2tér
-sej2t1o
-sej2tö
-seka2r
-se2k1ál
-2s1e2kés.
-sek2k1á
-sek2kos
-sek2k1ö
-se1klu
-se1k2ra
-se1k2ré
-se2kur
-se2kúr
-sel1ak
-se2lál
-2selb
-s1eldö
-2s1e2lef
-s1e2legy
-se2l1e2h
-se2l1eké
-se2lemek
-2s1e2lemé
-se2lemk
-se2lemm
-2s1e2lemz
-se2l1ere
-s1e2lesé
-sele2sz
-se2l1eszü
-sele2t1a2
-sele2t1e2l
-se2l1e2vé
-se2l1e2vő
-selés3s
-2self
-2s1elha
-2s1elhel
-s1elho
-sel1id
-se2lis
-2s1eljá
-s1ellá
-2selmél
-selnö2k1öl
-2s1elny
-s1e2los
-2s1e2lö
-se2lőad
-s1e2lőí
-2s1e2lőz
-2selr
-s1elta
-s1eltá
-2s1eltö
-2s1elv.
-2s1elvek
-s1elvű
-2s1elvv
-2selz
-2sember
-s1ember.
-s1emberb
-s1embern
-2s1embr
-2semén
-2semlé
-se2nat
-se2n1ál
-sen2d1a
-sen2d1á
-s1e2ner
-senés3s
-2s1enged
-sen1ist
-se2n1or
-s1enta
-seny1ag
-seny1ak
-se2ny1á2
-seny1ell
-seny1ere
-se2ny1él
-se2ny1ér.
-se2nyérd
-se2nyérte
-2senyhi.
-se2nyigé
-se2nyös
-se2nyu
-se2nyú
-se2ny1ü2l
-2senyve.
-s1enz
-seó2r
-se2pid
-s1epiz
-sep2pa
-sep2p1á2
-sep2per
-2sepri
-se1p2ro
-se1p2ró
-se2r1agy
-se2ral
-se2ram
-se2r1a2n
-se2r1a2r
-se2r1as
-se2rau
-se2r1á2g
-ser1áll
-se2rár
-s1erde
-2serdő
-sereg1g
-3seregs
-2serej
-se2r1e2lem.
-se2r1e2lő
-se2r1elt
-se2r1elv
-sere1p
-sere2pedő
-ser1e2sze.
-ser1eszk
-sere1t
-se2r1észb
-se2r1iga
-se2r1il
-seri2n
-se2r1ina
-ser1inf
-ser1ing
-ser1int
-se2ris
-se2riz
-ser1k
-se2r1ol
-se2ró
-s1eróz
-2se2rő
-s1erő.
-s1erőb
-s1erőd
-s1erőé
-s1erőf
-s1erők
-s1erőm
-s1erőn
-ser1ős.
-s1erőt
-s1erőv
-ser1s
-sert2
-ser1tr
-se2r1ü2g
-serví2
-2s1esemé
-2s1e2seté
-2s1esél
-2s1e2sés
-2seskü
-2s1e2ső
-se1s2p
-sessz1a2
-sesszé2l
-sessz1o
-2s1este
-se1sti
-s1eszen
-2seszk
-s1eszkö
-2s1eszm
-se2szű
-se2t1a2la
-se2tana
-se2t1a2ny
-se2tát
-se2t1e2g
-set1eleg
-se2t1elk
-se2t1elm
-2setenk
-2setes.
-2setese
-2s1e2teté
-2s1e2tető
-seté2k
-se2t1ékb
-se2t1éké
-se2t1é2l
-se2t1énk
-se2t1ér.
-se2t1é2ri
-se2t1érté
-se2tika
-se2tiká
-se2tike
-se2t1ing
-se2tol
-set1old
-se1tran
-se1tri
-se1t2ro
-2settk
-seü2t
-2s1e2vés
-2s1e2vő
-se1ye
-se1yé
-se1yi
-s1ezr
-1sé
-2s1ébr
-sé2f1a
-sé2f1á
-sé2g1a2
-sé2g1á2
-3sége.
-sé2g1eg
-3ségei
-3ségek
-ség1ele
-sége2lem
-sé2g1ell
-3ségem
-sé2g1ent
-sé2ger
-ség1erk
-sé2g1esz
-sé2geté
-sé2g1e2ti
-sé2gev
-ség1é2je
-sé2g1é2k
-sé2gép
-sé2g1ér.
-sé2g1é2ré
-sé2g1érn
-sé2g1érr
-sé2g1értő
-sé2g1é2rü
-sé2g1érv
-ség1ész
-ség3g
-ség1iga
-sé2g1igé
-ség1ist
-sé2gí
-3ségk
-ségo2
-sé2g1ok
-sé2gol
-sé2g1ó2
-sé2gör
-sé2gő2
-ség1őr
-ség1ős
-ség1s
-sé2gu
-sé2gú
-3ségü
-sé2g1ü2lő
-ség1ült
-2s1éh.
-2s1é2he.
-2s1é2hek
-2s1é2hes
-2s1é2het
-2s1é2hé
-2s1éhh
-2s1éhr
-2s1éhs
-sé2jem
-s1é2ji
-s1éjs
-sé2kek
-s1ékho
-2s1ékm
-2s1éks
-sé2k1ú
-sé2lel
-s1é2let
-2séll
-2s1élm
-sélőkész1
-sé2lű
-2sély
-sé2lya
-sé2lyeg
-3sémá
-sé2mu
-s1é2nekb
-2s1é2neke
-s1é2neké
-2s1é2nekh
-2s1é2neki
-s1é2nekk
-2sénekl
-2s1é2nekn
-s1é2nekr
-s1é2nekt
-s1é2nekü
-2s1é2pí
-2s1é2pü
-sé2ral
-sé2ran
-sé2rát
-2sérb
-2sérc
-s1érde
-sé2réé
-sé2rie
-sé2rig
-s1érlel
-2sérm
-sé3ró
-2sérr
-s1értéke
-3sérvb
-s1érvei
-3sérvem
-3sérves
-3sérvh
-3sérvr
-3sérvv
-4sé1ry
-2s1érz
-2sésdi
-2séseki
-sé2s1el
-2séssz
-2séstú
-sész1ak
-sé2sz1á
-sé2sz1emb
-sé2szir
-sé2sz1o
-sész3s
-sét1abl
-sé2t1a2d
-2sétk
-sé2t1o
-sétő2
-sé2t1őr
-2sétr
-2sétt
-2sétv
-2s1év.
-2s1évad
-2s1évb
-2séve.
-2s1é2ved
-2sévei
-2s1é2vek
-2s1é2ven
-2sévet
-2sévéb
-2s1é2véi
-2sévén
-2sévét
-2sévév
-2s1évf
-2sévh
-2sévi.
-2s1évk
-2s1évn
-2s1évr
-2s1évt
-2s1é2vü
-2s1évv
-sfaá3gac
-sfa2gy1al
-sfenyőé2
-sfé2má
-sfé2m1e2kéh
-sfé2m1é
-sfé2mi
-sfiúé2
-sfi2úéra
-sfi2úét
-sf2le
-sf2lo
-sf2ló
-sf2lu
-sfo2k1út
-sf2ra
-sf2rá
-sf2re
-sf2ri
-sf2rí
-sf2ro
-sf2rö
-sga1b
-sga1d2
-sga1p
-sga1tr
-sge2o
-sg2le
-sg2ló
-sg2nó
-s1g2ra
-sg2rá
-sg2ri
-sg2ró
-shelyü2kü
-1s2hi.
-1s2hih
-1s2hij
-1s2hik
-shitköz1
-s2hop
-s2horr
-3s2how
-shú2sár
-shús1s
-1si
-si2ac
-sia2d
-si2aé
-si3ak
-sia2l
-sia2ny
-siá2ro
-si2b1á2
-sibilis1
-sidás1s
-si2dea
-si2deá
-si2deg
-si2dei
-si2den
-si2deo
-s2idet
-2sidé
-s1i2dén
-si2dom
-2s1i2dő
-si2du
-si2eg
-sie2l
-si2en
-si2eu
-2s1ifj
-2siga
-s1i2gazo
-2sigá
-2sige
-s1i2ge.
-s1i2gek
-s1i2ges
-2s1i2gé
-sig2n1e
-sig2n1ó2
-2siha
-3sihed
-2s1ihl
-si2k1a2n
-sike2r1esz
-sike2s
-si2k1in
-si2k1ir
-si2k1old
-s1i2konh
-s1i2konj
-2s1i2konk
-s1i2konn
-2s1i2kono
-s1i2konr
-2s1i2kont
-s1i2konu
-sik1orr
-si1kré
-sikus1s
-2simád
-si2m1el
-s1i2mit
-3simí
-3simog
-2simp
-s1impor
-si2m1u2t
-2s1i2nas
-2sind
-s1indu
-si2ner
-2sinf
-2singa
-s1ingá
-s1inget
-s1ingé
-s1ingók
-si2nic
-2sinj
-2s1inku
-2s1ins
-s1inte
-2sinv
-s1invá
-2s1inz
-si2onn
-s1i2ono
-si2óa
-si2óá
-si2óc
-si2óda
-si2óe
-si2óg
-si2ói2k
-si2óo
-si2óp
-si2óú
-2sipar.
-2sipara
-2sipará
-2siparb
-2s1iparc
-2siparh
-2siparm
-2siparn
-2s1i2paro
-2siparr
-2sipartá
-2sipartó
-2siparu
-3sipí
-3sipka
-3sipká
-3sipol
-2s1i2ram
-s1irg
-2s1irh
-2siro
-s1i2rod
-2s1i2rón
-2sirt
-s1irtó
-si2sad
-si2sél
-si2s1is
-si2s1í2
-sis3s
-sist2
-si2s1ü2
-si2s3zab
-s1i2tal
-sita2li
-si2te.
-si2t1i
-si2t1ö
-sit2tin
-3sity
-siú2t
-2s1i2vad
-2s1i2var
-2sivás
-3siví
-2s1i2vó
-2sizé
-si2zé.
-si2zéb
-s1izmo
-1sí
-sí2gé
-sí2ja
-sí2ju
-sí2kas
-síke2
-sí2k1er
-sí2kí
-sí2kü
-sína2
-sí2nac
-sí2nal
-sí2nan
-sí2n1á2
-sí2nel
-sí2nö
-2síns
-sí2n1ú
-sí2r1ad
-sí2r1ál
-sírá2s3z
-sír1á2to
-sí2red
-sí2r1e2m
-sí2ren
-sí2res
-sí2r1e2t
-sí2r1én
-sí2rir
-sí2rí
-s1í2róa
-sí2róf
-sí2ról
-sí2róp
-sí2rö
-sír2t1e2v
-sí2r1ü
-sí1sp
-sí1st
-síté2kol
-2sítél
-sítés3s
-sítőa2
-sítőe2
-sí1tr
-2s1ív.
-sí2vá
-2s1ívb
-s1í2vek
-s1í2ven
-s1í2vet
-sí2vé
-sí2vű
-sí2za
-sí2ze.
-2s1ízl
-s1ízr
-2sízü
-sí2zül
-sje2gy1á2
-skao2
-skapocs1
-ska2r1i2m
-skaros3
-ska2ró2r
-ska1sm
-skat2
-ska1tr
-skau2
-1skálák
-1skálár
-ske1p2
-ske1s2p
-ské2p1el
-skiá2
-1s2kicc
-skie2
-sk2jö
-sk2la
-sk2li
-sk2lí
-sk2lo
-sk2ló
-sk2lu
-skolás1s
-s2korpi
-sko2s1a2rai
-skó1p
-s1k2rá
-s1k2ré
-s1k2rit
-sk2rí
-sk2rón
-sk2ru
-sk2va
-sk2vi
-sk2vó
-sky1ér
-sky1i
-sla1d2
-sla2g1e2
-sla1s2p
-sla2t1a2l
-sla2t1a2n
-sla2tel
-sla2tev
-sla2tés
-sla2t1é2t
-s2lág
-1slágerei
-slá2nyal
-slás3s
-slega2
-sleg1g
-sleí2
-sle2tal
-sle2t1el
-sle2t1em
-sle2tél
-sleves1s
-sléi2
-sléke2
-slé2kev
-slé2k1ol
-slés3s
-slic2c1elv
-sli2d
-sli2ká
-1s2liss
-slős2
-s2lus
-smaó2
-smarc2
-smas2
-sma1sp
-3s2már.
-3s2máru
-sme2g1a2
-sme2g1é
-smen2tel
-1smirg
-sna2pal
-sna2p1e
-sna2p1or
-snap2sz1e2
-sne1yi
-snit2t1elv
-snőé2h
-1so
-s1obj
-so1c2k
-sodaéne2
-soda1g2
-so2d1e
-so2dén
-so2dév
-so2did
-so2dis
-so2dí
-so2dob
-so2d1org
-so2d1os
-so2dö
-so2dő
-sodrás1s
-so2dú
-sod1út
-so2dü
-so2d3z
-so2kab
-so2kai
-so2k1aj
-so2k1a2la
-so2k1ap
-so2kar
-soka2t
-so2k1ato
-so2k1ál
-so2k1árn
-so2k1e2
-sok1ill
-so2kí
-3sokk.
-sokka2l
-sok2k1ala
-sok2k1a2p
-2sokke
-sok2k1el
-sok2kir
-sok2k1ö2v
-sok2k1ü
-2sokl
-2sokm
-so2kok
-sok1old
-2so2kos
-2s1o2koz
-so2k1ó2
-2sokta
-s1oktat
-so2k1ú2
-so2kü
-2s1o2laj
-sola2j1á2r
-sola2je
-sola2tel
-solás1s
-2s1olda
-2s1oldá
-2soldó
-s1oldó.
-s1oldók
-s1oldóm
-s1oldón
-s1oldór
-s1oldót
-s1oldóv
-so2lim
-2s1olló
-solóó2
-s1oltás
-2solvas
-so2lyan
-so2lyó
-so2m1ad
-somag1g
-so2m1a2l
-soma2t
-som1ato
-so2m1e2
-so2mél
-so2m1éte
-so2mil
-so2m1ita
-so2mí
-so2m1odo
-som1ort
-so2m1osz
-som1p
-so2mú
-so2mü
-son2ch
-2sond
-so2n1e
-son2kál
-son2k1e2
-2sonó
-son2tab
-son2t1a2l
-son2t1a2n
-son2tar
-son2t1á2r
-son2t1e2
-sonté2r
-son2t1éré
-son2tik
-son2tip
-son2tö
-son2tő
-2sonv
-so2nye
-so2nyis
-so2ór
-so2ós
-s1opc
-s1o2pe
-sor1ada
-sor1ala
-sor1áll
-so2r1átl
-3so2r1e2
-sor1f2
-s1orgi
-so2rid
-2sorie
-so2rif
-so2rim
-so2r1ing
-so2ris
-3sorké
-sormű1
-sorműt2
-sor1oszt
-3soroza
-so2r1ó2
-so2rö
-so2rő
-2s1orr.
-s1orrát
-2sorrb
-2s1orrn
-2s1orro
-2s1orrú
-3sors.
-sor2sal
-sor2sar
-sor2sas
-sor2s1e2
-sor2sir
-2sorsó
-sor2sü
-sor1sz
-sor2szón
-sor1tre
-sorú2t
-so2r1úto
-so2rü
-so2rű
-2s1osto
-2s1ostr
-s1osty
-2sosz
-s1oszl
-s1oszt
-so2ul
-so2ur
-so2ve
-so2vis
-so2xi
-1só
-sóá2g
-sóá2r
-sócsapá2
-só2dái
-só2dák
-só2dáv
-sógé2p1e2ké
-só1g2r
-sói2g
-sóí2v
-só2k1a2d
-só2kil
-só2kim
-só2kó
-só1kré
-sómű1
-só2né.
-só2ni
-sóó2r
-só2rai
-só2ráb
-só2rái
-só2ráj
-só2rám
-só2rán
-só2rár
-só2rát
-só2riá
-só2s1ü2
-só1sz
-sótá2ny1ér
-só1t2r
-2s1ótv
-2s1ó2vó
-1sö
-sö2bű
-sö2ga
-sö2gá
-sö2g1e2l
-sö2g1em
-sö2g1ék
-sög3g
-sö2go
-sö2g1ö2lé
-sö2g1ölt
-sö2gű
-sö2ka
-sö2k1el
-sö2kid
-2s1ö2ko
-s1ö2kör
-sö2kú
-sö2lőj
-s1ö2lőz
-s1öly
-sö2na
-sö2ná
-sön2d1a2
-sö2no
-sö2n1öl
-sö2n1ő
-s1öntv
-sö2nú
-3sör.
-sö2ra
-sö2rá
-3sörb
-2sörd
-sö2r1ed
-sö2reg
-sö2ren
-sör1f2
-sö2r1iz
-3sörk
-sö2ro
-sö2ró
-sö2r1ö2l
-sö2r1ő
-sör1s
-sö2ru
-2sörv
-s1össz
-s1ösv
-s1ösz
-2s1ötl
-2s1ötv
-2s1öv.
-2söve
-s1övv
-s1ö2zön
-1ső
-sőa2c
-sőa2l
-sőa2n
-2sőá2g
-ső1bl
-2sőbok
-ső2dad
-ső2dalk
-ső2dá
-ső2del
-ső2din
-ső2d1ő2r
-ső1dro
-sőe2l
-sőe2r
-sőe2s
-ső1gr
-ső1kl
-ső1pl
-ső1pn
-ső1pr
-ső2r1aj
-ső2r1á2csot
-ső2riz
-ső2rol
-sőr1ö2l
-s1őrti
-s1őrz
-ső2s1av
-ső2sim
-sős1orra.
-ső2s1orrá
-ső2s1orró
-ső1s2p
-ső1sta
-ső1str
-sősü2
-ső2s1ül
-ső2s1üt
-ső2szap
-ső2sz1áll
-sőszé2k
-sősz1éké
-ső2sz1í
-spa2d1a2
-1s2pann
-s2patu
-s2páj
-spá2n1a
-1s2párg
-3s2peci
-1spektr
-1s2peku
-1s2pék
-s2p1ér
-1spirálú
-spis3s
-sp2le2
-s1p2lé
-sp2lu
-sp2ne
-1s2pong
-sporta2
-spor2t1al
-1s2portág
-spor2tár
-3s2portb
-spor2t1e2
-1s2porté
-spor2t1érd
-1s2porth
-spor2t1i2n
-1s2portj
-1s2portn
-1s2portoka
-1s2portol
-1s2porton
-1s2portos
-3s2portot
-spor2t1ö
-spor2tő
-1s2portra
-1s2portró
-1s2porttó
-1s2portu
-spor2t1ü2
-1spórák.
-1spórol
-sp2ra
-s1prak
-3spray
-s1p2re
-s1p2ré
-1spric
-s1p2ro
-s1p2ró
-sp2sz
-1s2raf
-srau2
-1s2ráco
-sren2d1ő2
-3s2róf
-srú2de
-ssab2b1i
-ssa2vo
-sság3g
-ssé2g1e2l
-ssé2g1é2j
-ssé2gid
-s2s1ékt
-s2s1i2z
-ss2kál
-ss2ko
-ss1k2r
-ss2lá
-sso2m1o
-ss2pó
-s1s2rá
-ss3sz
-ss2tad
-ss2tar
-ss2tat
-s1s2tí
-ss2to
-s1st2r
-ss2tú
-ss1ura
-ssy1ér
-ssy1ét
-s2sz
-sszae2
-ssza1p2r
-sszat2
-ssza1tr
-ssz1á2g
-ssz1á2ram
-ssz1á2ruk
-ssz1á2sz
-s3száza
-s3szedé
-sszeg1ér.
-sszegü2l
-ssze2g1ülő
-ssz1egye
-s3szekv
-ssz1e2lőa
-s3szeml
-s3szemm
-ssze1p2
-ssze2reib
-ssze2reid
-ssze2rein
-ssze2reké
-ssze2rekt
-ssze2rem.
-ssze2remm
-ssze2rese
-sszer2t1á2r
-ssze1t2r
-s3széki
-ssz1é2lő
-sszér1in
-s3széto
-s3szige
-ssz1ing
-sszis1s
-sszí2vel
-ssz1k2
-sszkész1
-s3szob
-ssz1osz
-ssz1ósá
-s3szöc
-s3ször
-ssz1ös
-s3szöv
-ssz1p2
-ss3zsi
-sszt2
-ssz1tro
-s3szur
-sszus1s
-ssz1úr.
-1stabil
-1stadio
-st1a2dó
-1stafí
-s2t1alj
-s2t1alk
-s2tand
-1standa
-sta2n1ó2r
-stan2s1é
-st1a2nyag
-s2tarc
-1s2tart.
-star2tas
-1startos
-1s2tartot
-1startt
-sta1sl
-sta1s2t
-sta1t2r
-sta3u
-stau2t
-s2t1a2x
-st1azo
-3stáb.
-1stábj
-1stábk
-1stábn
-1stábot
-st1ág.
-st1áld
-stán2c1ol
-stán2s1á2
-stá2riá
-s2t1árka
-s2t1árká
-st1á2t1a2
-st1áts
-1s2tátu
-st1átv
-st1br
-st1dr
-ste2a
-1s2teak
-s2t1ebé
-s2tedén
-s2t1e2gy
-s2t1e2ke.
-s2t1elf
-s2t1elh
-s2t1ellen
-s2t1elm
-s2t1e2lo
-s2t1elö
-s2t1e2lő
-s2t1elr
-s2t1elt
-s2t1elv
-s2t1ember
-s2t1e2mel
-s2t1eml
-ste2n1a
-ste2n1á
-ste2neg
-ste2n1és
-sten3n
-ste2nos
-ste2n1ő2
-1stepp
-ste2rad
-ste2raj
-ste2ral
-ste2rav
-ste2rác
-ste2rál
-ste2r1e2le
-1sterili
-ste2r1int
-ste2ris
-ste2r1o
-s2t1erő
-ste2sz
-s2t1eszm
-ste2u
-1stégek
-1stéget
-1stégg
-1stégr
-sté2k1a2
-sté2ká
-stékát1
-stékáta2
-sté2k1el
-st1é2kesí
-st1ékí
-sté2k1o
-sté2ku
-s2t1é2le
-st1é2lé
-s2t1élm
-s2t1élt
-st1élv
-s2t1érc
-s2t1érem
-s2t1é2ré
-s2t1é2rőt
-s2t1érté
-s2t1érz
-stés3s
-s2t1észl
-s2t1étk
-s2t1é2ve.
-st1fl
-st1fr
-st1gr
-s2t1i2d
-sti2g
-s2t1ige
-s2t1igé
-s2t1i2ma
-s2t1i2má
-1s2timm
-s2t1imp
-sti2na.
-s2t1ind
-s2tinf
-s2t1ing
-s2t1inv
-s2t1i2o
-st1i2pa
-st1irá
-st1iró
-stis3s
-sti2sz
-s2t1isza
-s2t1i2vá
-st1i2zo
-s2t1íj
-3s2tíl
-s2tír
-st1írá
-st1í2v
-st1í2z
-stká2ro
-st1kr
-st1kv
-stola2t
-sto2lato
-sto2p1a
-1s2topb
-1s2toph
-1s2topr
-1s2topt
-sto2rál
-sto2rás
-sto2re
-sto2ris
-st1o2x
-3s2tóla
-3s2tólá
-st1ó2rá
-1s2tós
-stö2k1ölt
-s2t1önt
-s2t1örö
-s2t1össz
-stőa2
-stőe2
-stőkész1
-s2t1őra
-s2t1őrb
-s2t1őrc
-s2t1őreg
-s2t1őrei
-s2t1őré.
-s2t1őrén
-s2t1őrér
-s2t1őrév
-s2t1őrf
-s2t1őrg
-s2t1őrh
-s2t1ő2ri
-st1őrl
-s2t1őrm
-s2t1őrn
-st1őrp
-s2t1őrs
-s2t1ő2rü
-s2t1őrv
-st1pf
-st1pl
-st1pr
-1strando
-1st2rap
-1straté
-s1trág
-1st2réb
-s1t2rén
-st2riá
-st2róf
-1strófá
-1st2ruc
-1struktú
-st1sc
-st1st
-st1sz
-st1t2r
-s2t1udv
-1stukk
-st1uni
-st1u2ral
-3s2túd
-st1úr.
-st1út
-s2t1üg
-s2t1ü2lő
-st1üst
-s2t1üt
-s2t1ü2v
-s2t1űr.
-s2t1ű2ri
-s2t1űrn
-s2t1űrt
-1su
-suá2r
-subi1
-s1udm
-2s1udv
-3sugár.
-3sugárr
-2s1ugr
-3suhi
-2sujj
-suj2j1a2da
-su2k1ará
-su2ke
-su2k1ö
-su2k1ü
-3summ
-su2nal
-2s1und
-2s1u2ni
-su2no
-supe2
-2sura
-s1u2rad
-su2rai
-su2rak
-su2ral
-su2rat
-su2rát
-2surn
-2s1u2ru
-su2szo
-2s1u2tac
-2s1u2tad
-2sutak
-s1u2tal
-2s1u2tam
-2s1u2tan
-sutas1s
-2s1u2tat
-2su2tazi
-s1u2tazó
-2s1utc
-2sutó
-su2tód
-2sutu
-1sú
-sú2csal
-sú2csat
-sú2csem
-sú2cser
-sú2csip
-súcská2
-sú2cs1ö
-sú2cs1ü2
-súcs3z
-súdi2
-súi2m
-s1újh
-2s1ú2jí
-2s1újs
-3súly
-2súr.
-2súrb
-2súré
-2súrh
-2súri
-2súrk
-3súrl
-2súrn
-2súrp
-2súrr
-2súrt
-sú2sén
-sú2só
-2súsz
-súszó2s3z
-2s1útb
-sút1en
-2súté
-s1úth
-2súti
-sú2tig
-2s1útj
-2s1útk
-s1útn
-2súto
-s1ú2ton
-sú2t1ő
-2s1útr
-2s1útt
-sútü2
-sút1üz
-2s1útv
-1sü
-sü2d1e
-sü2dí
-sü2dü
-3sü3gé
-s1üggy
-2s1ü2gy
-3sü2k1a
-sü2kü
-2süldö
-sü2led
-3sültr
-sülye2
-sü2lyes
-sü2ná
-süne2
-sü2nev
-sü2n1é
-2s1ü2nő
-sü2rí
-2s1ü2rü
-2süst
-2s1ü2sz
-2sütk
-3sütőb
-sü2ze
-sü2zé
-1sű
-sű1pr
-sű2r1a
-3sűrí
-s1ű2ru
-sű2ző
-sva2s1u2
-svá2gy1ón.
-svá2nyan
-svá2r1al
-svárosi2
-sven1
-svezetőé2
-své2nyel
-své2tes
-svíze2
-svíz1es
-s2vun
-sw2hi
-swhisky2
-sy2bő
-sy1ig
-s2z
-1sza
-szaa2
-3szabáz
-3szabd
-sz1a2dás
-2sz1a2dó
-szaé2
-3szaft
-3szag.
-3szagb
-3szagú
-2szagy.
-2szagya
-2szaj.
-2szajá
-2szajj
-2szajú
-2szakci
-3szakm
-sza2k1ó2r
-sza2köz
-2szalás
-2sz1alb
-2sz1alf
-2szalg
-2szalj
-sz1alj.
-sz1aljak
-sz1aljo
-2szall
-2szaln
-2sz1alp
-2sz1als
-2szalt.
-2sz1alte
-2szalto
-2szaltu
-2szane
-sz1antr
-2szanya
-2szanyó
-2szap.
-2szapá
-2szapb
-sza2pel
-2szapé
-2szaph
-2szapi
-2szapj
-2szapn
-2szapr
-2szapt
-2szarán
-3szarb
-2szarc
-2szaré
-3szart
-3szarv
-2szasp
-sz1assz
-sz1aszt
-sza2tala
-3szaty
-2szaut
-szau2ta
-3szax
-2szazo
-1szá
-2szábr
-2szágó
-2szágy
-szá2gyá
-szá2gyo
-szá2j1e
-szá2ke
-2száldo
-szá2lin
-3szálú
-szá2man
-szá2mar
-3számá
-szá2mál
-3számc
-szá2m1e2
-3számé
-szá2m1érté
-3számí
-3számk
-3száml
-3számm
-3számn
-szá2mor
-3számt
-3számú
-3szánd
-3szánt
-2száp
-2száradd
-2szárás
-szá2r1e
-2száriá
-3szárí
-3szárm
-szá2r1ó2ra
-szárt2
-2száru.
-2száruh
-2szárus
-2szásó.
-2szátd
-2sz1á2t1é
-2száti
-2szátl
-2szátm
-2szá2t1ö
-2száts
-2sz1átu
-2sz1á2tü
-2szátv
-sz1bl
-sz1br
-1szcéna
-sz1cl
-sz1d2r
-1sze
-2szeb.
-2szebé
-2szech
-2szecse
-2szedz
-2szeger
-3szegfű
-2szegz
-2szeh
-3szekcső.
-sze2keg
-2szekéit
-2szekés
-sze2kés.
-3szekrén
-3szekto
-3szele.
-2szelef
-2szelemb
-2szelemek
-2szelemé
-2sz1e2lemk
-2szelemm
-2sz1e2lemr
-2szelemü
-2szelemz
-2szelere
-3szelet
-3szelén
-2sz1elf
-2sz1elgo
-2sz1elha
-2szelhá
-2sz1eljá
-2szelkü
-2sz1ellá
-3szellő
-2sz1elm
-2szelnev
-2szelnö
-2szelo
-2szelö
-2sz1e2lőá
-sze2lődö
-2sz1e2lőf
-sze2lőré
-2szelső
-2sz1elszá
-2sz1elta
-2szeltá
-2szeltű
-2szelu
-2sz1elül
-2szelv.
-2sz1elvá
-2szelvek
-2szelves
-2szelvez
-sz1elvi
-2szelvn
-2szelvt
-2sz1elz
-2szember
-3szemek
-3személ
-3szem1p2
-3szemű.
-2szenc
-2szener
-3szenny
-3szentm
-3szenz
-szeo2
-2szepi
-sze2r1á2l
-2szeredm
-szer1e2ge
-sze2rej
-3szerel
-szer1eszt
-3szerke
-3szers
-3szerta
-szer2tálo
-3szerv
-szervíz1
-3szerz
-2sz1esd
-2sz1esemé
-2szesetb
-2szesete
-2szeseté
-2szeseti
-2szesetr
-2sz1e2sés
-2szeskü
-2szeső
-sze1sp
-2szeste
-2szesté
-2szesti
-2szestj
-2szestr
-sze2t1e2lő
-sze2t1é2k
-2szetika
-sze2ton
-sze2tőr
-2szeve
-2szevő
-2szexp
-3szezo
-2szezr
-1szé
-2széber
-2szébr
-2szég.
-2szége
-2szégő
-2szégr
-2széhe.
-2széhen
-2széhet
-2széhs
-2széji
-3széke.
-3széked
-3székei
-3székek
-3székem
-3székes
-2székez
-3székéb
-3székév
-szé2k1ol
-szé2kos
-3széks
-3székü
-3szélek
-2széneke
-2szénekn
-szé1pró
-3széps
-2sz1ér.
-2sz1érb
-2sz1érc
-2sz1érd
-sz1é2rel
-2szérem
-szé2rem.
-szé2remm
-2sz1é2ren
-2széré
-szé2ré.
-szé2rén
-szé2rér
-szé2rét
-szé2rév
-sz1érf
-sz1érg
-sz1érh
-2sz1érin
-sz1érj
-2sz1érk
-2sz1érl
-2sz1érm
-sz1érn
-2szérő.
-2szérői
-2szérők
-2szérőt
-sz1érp
-2sz1érr
-sz1érs
-sz1értá
-2sz1érte
-2sz1érté
-sz1értí
-2sz1értő
-3széru
-2sz1é2rü
-2sz1érv
-2sz1érz
-szé2tel
-széte2s
-2szév.
-2szévad
-2szévb
-2széve.
-2szévei
-2szévek
-2sz1é2vet
-2szévén
-2szévét
-2szévév
-2szévf
-2szévi
-2szévk
-2szévn
-2szévr
-2szévs
-2szévt
-2szévü
-1szférai
-1szféráé
-1szféráso
-sz1fl
-sz1fr
-sz1gl
-1szi
-szi2ab
-2szide
-2sz1idé
-2szidő
-2szifj
-2sz1i2ga
-2sz1igé
-3szign
-szi2k1a2s
-szi2k1e2r
-szi2k1ó2
-sz1imak
-2sz1i2má
-3szimb
-sz1impr
-2szimpu
-2szinas
-2szinde
-2szindí
-2szindu
-sz1info
-2szing
-sz1inko
-2szinteg
-2szio
-2szirat
-2szirá
-2sz1i2ri
-2szirod
-szi2sí
-2sz1i2sza
-szi2szá
-3szitu
-2szivad
-2szivás
-2szivó
-sz1izg
-2sz1izz
-1szí
-2sz1íg
-3színe
-2színna
-szí2vár
-2szívi
-3szívű
-2sz1íz
-szka1pr
-1szkarab
-szk1arch
-1szkenn
-1szlávh
-1szlávok
-1szleng.
-1szlengn
-1szlengr
-szle2t1e2l
-szle2t1o
-1szloge
-1sz2mok
-1sznob
-1szo
-2szobj
-2szoda.
-2szodai
-2szodak
-2szodú
-3szof
-3szoká
-2szokke
-2szokoz
-2szoksö
-2szolaj
-szo2l1ál
-2szolda
-sz1oldá
-2szoldó
-2szo2lim
-2szolló
-2sz1oltár
-2szoltás
-2szolvad
-2szolvas
-2szombor.
-3szoms
-szo2nas
-szo2nár
-3szond
-2szora
-szo2r1ál
-2szorm
-2szorn
-2szors
-2szorv
-2szostá
-2szosto
-2sz1otth
-3szov
-2sz1ox
-1szó
-2szólm
-3szóló
-2szónád
-2szónái
-2szóni
-2szónod
-2sz1ó2rán
-2szórát
-2szóri
-szó2sík
-3szósz.
-szósza2k
-szó2száll
-szó2szón
-szó2szülő
-szó1tr
-1szö
-2szöbli
-3szöge
-2szöldes
-2sz1öle
-2szöre
-2szöv.
-2szövei
-2sz1öz
-1sző
-szőa2
-szőe2r
-szőé2
-3szőlő
-sző2ra
-sz1ősi
-2szőz
-sz1őze
-1sz2pí
-sz1pl
-1szponz
-szrádi2
-sz3saj
-sz3sap
-sz3sas
-sz3sav
-s3zsák
-sz3sán
-sz3sár
-sz3sás
-sz3sát
-sz3sáv
-sz3seg
-s3zsem
-s3zsen
-sz3sep
-sz3ser
-sz3sé
-sz3sh
-sz3sik
-s3zsin
-sz3sis
-sz3siv
-sz3sín
-sz3s2k
-sz3sl
-sz3sod
-sz3sok
-s3zsol
-sz3sor
-sz3só
-sz3sör
-sz3söv
-sz3s2p
-sz3s2r
-sz3s2t
-s3zsúll
-sz3sü
-sz3sz
-sz2t1álla
-sztá2r1a2d
-szt1á2ram
-sz2tá2ras
-sztá2rat
-sz2táre
-sz2tárf
-sz2tárh
-1sz2tárj
-sz2tárny
-sztáró2
-sz2táru
-szt1á2ruk
-sz2tárv
-szte2r1el
-1sztereo
-szté2g
-szt1ége
-sz2térte
-sz2t1érv
-sz2t1été
-szt1örök
-sz2t1őrn
-1sztrádá
-1sztrájk
-sz2tür
-1sztye
-1szu
-szu2b
-szub1o
-szuc1
-2szud
-sz1udv
-2szugo
-2sz1ugr
-2szuh
-2sz1uj
-3szuká
-sz1u2ra
-2sz1u2rá
-2szuta
-sz1utó
-2szutu
-2s3zuz
-1szú
-2szúg
-2szúj
-sz1úron
-2sz1úrr
-sz1úrtó
-2szús
-2szúté
-2szúth
-2szúti
-2szútj
-2szútn
-2szúto
-2szútr
-2szútt
-2szútv
-2szúz
-1szü
-2sz1üd
-2szügg
-3szüks
-2szüld
-2sz1ü2led
-2szülőse
-3szüne
-3szürke
-3szürkés
-2sz1üs
-2sz1üv
-1szű
-3szűk
-2szűrödn
-1szvit.
-1szvitet
-1szvitj
-1szvitn
-1szvitt
-sz3zs
-2t.
-1ta
-taa2d
-taa2l
-taát1
-taáta2
-taboz1
-ta1bra
-2t1abro
-ta1bró
-2t1abs
-ta1cl
-ta2dalé
-2t1adap
-ta2das
-t1a2data
-2t1a2datb
-2t1a2dato
-ta2datu
-2t1a2dá
-2tadio
-t1adj
-t1adl
-2t1adm
-ta2dod
-2t1a2dog
-2t1a2dot
-2tadó
-t1a2dóa
-ta2dóá
-ta2dób
-ta2dód
-ta2dóf
-ta2dóg
-t1a2dóh
-t1a2dóig
-t1a2dóik
-t1a2dóin
-t1a2dóit
-ta2dóí
-t1a2dój
-t1a2dóka
-t1a2dóké
-t1a2dóko
-t1a2dókra
-ta2dól
-t1a2dóna
-t1a2dóná
-ta2dóp
-t1a2dór
-t1a2dótó
-ta2dóü
-t1a2dóv
-ta1drá
-ta1d2re
-ta1dro
-t1ads
-ta2dun
-t1adv
-tae2l
-tae2r
-ta2ero
-taé2r
-2tafí
-ta1f2r
-taf2ta
-ta2g1aj
-ta2gav
-taga2z
-tag1azo
-ta2gág
-ta2g1ál
-ta2gec
-ta2g1el
-ta2g1e2r
-ta2g1é2g
-2taggo
-2t1aggr
-ta2gid
-ta2giz
-ta2g1osz
-ta2g1ott
-ta2góc
-2t1a2gón
-ta2g1ó2r
-ta2góv
-ta1g2raf
-ta1g2ram
-tagrádi2
-ta2g1u2s
-ta2gut
-ta2g1ü2
-2t1agy.
-ta2gya.
-ta2gyáb
-ta2gyáh
-2t1agyb
-2t1agyn
-2t1agyr
-2t1agyv
-ta2ire
-tai2rón
-tai2z
-ta2jé
-ta2j1u2s
-ta2jús
-2t1a2kad
-ta2k1ál
-taká2r
-tak1áro
-ta2kás
-ta2kátk
-2t1akce
-2t1akci
-take2l
-tak1ele
-ta2k1ér.
-tak1é2sze
-2t1akkora
-2takkord
-2t1akku
-ta1k2la
-ta1klu
-t1akna.
-ta2kó.
-ta2k1öb
-ta2k1öröm
-ta2k1ös
-ta1krá
-tak2reá
-ta1krí
-2t1akro
-ta1k2rón
-2t1akta.
-tak2tem
-2takti.
-2t1aktiv
-2t1aktí
-2t1aktj
-taktus1s
-ta2kus
-ta1k2va
-ta2l1a2da
-ta2l1a2dá
-ta2l1adh
-ta2l1adj
-ta2l1adn
-ta2l1a2do
-ta2l1a2dó
-ta2l1adt
-ta2l1a2du
-ta2l1adv
-2tala2g1
-t1a2lagu
-ta2lagú
-2t1a2lakb
-tal1akc
-2talakí
-2t1a2lakj
-2ta2laku
-2t1alakz
-ta2l1a2l
-2t1alany
-2t1a2lapa
-2t1a2lapí
-ta2lapk
-t1a2lapl
-2t1a2lapsz
-ta2l1a2r
-ta2l1as
-tala2te
-2talatti
-ta2l1au
-2taláá
-ta2l1á2g
-2taláí
-ta2l1állo
-tal1á2rak
-talás1s
-ta2l1áta
-tal1átr
-tal1ell
-ta2l1elő
-ta2l1eng
-tal1esi
-talé2g
-talé2k1e2
-ta2l1ér.
-2t1alge
-ta2l1i2ko
-tal1ikr
-tal1imp
-tal1ina.
-ta2lip
-ta2l1isk
-ta2l1í2r
-2taljas
-2t1alji
-2taljz
-2t1alkal
-2talkím
-2talkoh
-2talkot
-2taller
-tal3ly
-ta2l1ol
-talo2m1e
-ta2l1osz
-ta2l1őr
-tal2p1á2ro
-tal2pel
-tal2p1il
-tal2pus
-tal1t2re
-ta2lud
-2t1a2lulj
-ta2l1u2r
-ta2l1u2t
-ta2lúr
-ta2l1út.
-ta2lü
-ta2lű
-2talveo
-ta2mal
-tam1alm
-ta2maz
-ta2m1i2d
-2t1a2mő
-t1ampa
-2t1ampu
-2t1amur
-ta2mü
-ta2n1aj
-ta2nal
-ta2nan
-2t1a2nat
-tan1áll
-tan1álo
-tanás1s
-tan2del
-2tandr
-ta2n1el
-ta2ner
-2ta2n1es
-ta2n1ez
-ta2n1éj
-ta2n1ér.
-ta2n1érk
-tan1évb
-tan1é2vé
-tan1é2vi
-tan1évm
-ta2nid
-2ta2nim
-tan1ist
-tanké2r
-tan2kére
-tan2kés
-tankó2
-tan2k1óra
-2tanny
-ta2n1osz
-ta2nód
-tan2te.
-tan2t1el
-tan2tors
-tan1trá
-ta2nü
-ta2nű
-2tanyag
-2tanyád
-2t1a2nyó
-tao2l
-taó2r
-2t1a2pa.
-2t1a2pai
-ta2paké
-ta2pasá
-2t1a2páb
-2t1a2pád
-2t1a2páé
-2t1a2páh
-2t1a2pái
-2t1a2páj
-2t1a2pák
-2t1a2pám
-ta2pára
-ta2páró
-2tapáu
-2t1a2páv
-ta1p2la
-ta1plé
-t1a2pó.
-2tapp
-ta1p2ré
-2t1aprí
-ta1p2ro
-tap2sor
-taps3s
-tap2s1ü2
-2tapun
-ta2rabe
-ta2rai
-2t1a2ras
-2t1a2rat
-2t1a2ráb
-tarádi2
-2t1a2ráh
-2ta2rán
-2t1a2rát
-2t1a2ráv
-2t1arbi
-2t1arc.
-2t1arch
-2t1arco
-t1arcu
-2t1arcú
-ta2r1i2k
-ta2romá
-tar1s2
-tar2tab
-tar2t1e2l
-tar2t1em
-tar2t1en
-tar2t1ér.
-tar2tit
-tar2told
-2tartos
-2tartr
-2tartt
-2tasc
-ta2sem
-2tasf
-ta1s2ká
-ta1slu
-ta1s2m
-2tasnő
-ta2s1ol
-2t1aspi
-ta1spr
-2tasru
-2tassz
-tas3szá
-tas3szt
-tast2
-ta1s2ta
-2taste
-ta1str
-2tasv
-ta1sy
-2t1aszk
-ta1szl
-ta2t1alj
-ta2t1alm
-ta2t1aszt
-tatá2rai.
-2t1a2tei
-tate2s
-2tatika
-2tatiká
-ta2t1i2na.
-ta2t1i2ná
-ta2t1ing
-t1atlas
-t1a2tomo
-tat1orj
-ta2t1őr
-ta1t2ri
-2t1atti
-tat1u2ra
-ta2tya
-ta2tyá
-2t1a2uk
-tau2ta
-tau2tá
-2tauto
-taü2z
-2tavan
-2tavatá
-2tavató
-ta1wh
-ta2zon
-1tá
-2táb.
-tá2b1á
-tábe2sz1é2l
-2tábé
-tá2big
-tá2bin
-2tábj
-2tábk
-2tábn
-2tábok
-2tábon
-2tábot
-tá2bö
-2tábr
-t1ábrá
-tá2bü
-2táciu
-tá2fa
-tá2fá
-2tág.
-tá2ga.
-tága2d
-tág1ada
-2t1á2gai
-tá2gaz
-2t1á2gá
-2tágb
-2t1ágc
-2t1á2ge
-2t1á2gé
-2t1ágf
-2tágg
-2t1ágh
-2t1á2gi
-2tágj
-2t1ágk
-2t1ágm
-2tágn
-2t1á2go
-2tágr
-2t1ágt
-2t1á2guk
-2t1á2gun
-2t1á2gú
-2t1ágv
-2t1á2gy
-tá2hí
-tá2jal
-tá2jaz
-tá2j1e2g
-tá2j1e2l
-tá2jí
-tá2j1ok
-tá2j1ö2
-tá2jő
-t1á2jul
-tá2lab
-tála2d
-tál1ada
-tá2laj
-tál1a2lap
-tá2lap
-2t1álar
-tá2l1ál
-tá2l1áth
-2t1áldá
-2t1áldo
-tále2
-tá2l1eg
-tá2l1el
-tá2lél
-2t1áll.
-2t1állam
-2t1állan
-2t1állat
-2t1állás
-2t1állh
-2t1állí
-2t1állj
-2t1álln
-2t1állo
-2t1álls
-2t1állt
-2t1állu
-t1állú
-2t1állv
-2t1álma
-2t1álmi
-2t1álmok
-2t1á2lomr
-tá2lomt
-tá2lö
-2t1álru
-tá2lü
-tá2lyab
-tá2ly1a2c
-tá2lyad
-tá2ly1a2g
-tá2ly1a2l
-tá2ly1a2n
-tá2lyap
-tá2ly1at
-tá2lyau
-tá2lyátl
-tá2ly1á2z
-tá2lyid
-tá2lyir
-tá2lyis
-táma2sze
-tá2mí
-tá2mos
-2t1á2mu
-tán1alm
-tá2nár
-tánc3c
-tán2c1e
-tán2céh
-tán2cél
-tán2cén
-tánckész1
-táncs2
-tán2csá
-tán2csor
-tán1d2
-tá2n1e2
-tá2ní
-tá2n1ó2
-tá2nö
-2tánpó
-tán2s1e
-tá2nü
-tá2nű
-tá2nyal
-tá2ny1as
-tá2nye
-2tánz
-tá2p1a2
-tápá2
-tá2pál
-tá2p1ár
-tá2pát
-tá2p1e2
-tá2p1il
-tá2p1in
-táp1oll
-tá2p1osz
-tá2pő
-tá2pü
-2t1á2radá
-tár1a2dot
-tá2radó
-tá2r1a2g
-tár1ajt
-tá2r1a2l
-2tárama.
-2táramá
-2tárami
-2t1á2raml
-2táramok
-2táramol
-2táramot
-2t1á2ramt
-2táramu
-2táramú
-tára2n
-tá2r1any
-tá2rap
-tá2r1asz
-tá2r1att
-tá2r1au
-tá2r1av
-tá2rág
-tá2r1ál
-tá2r1á2sz
-tá2r1átl
-2tárboc
-tá2r1e2
-tá2réd
-tá2rés
-tár2gyö
-tá2r1i2k
-tá2r1i2p
-tár1isk
-tá2r1ism
-tá2rí
-tár1k2
-2t1árkád
-2t1árkána
-2tárkár
-2t1árnyé
-tár1okm
-tá2r1osz
-tá2róc
-tár1órá
-tá2rö
-tá2rő
-tár2s1alt
-2tártás
-tárt1öltő
-tár1tro
-2táru.
-2tárua
-2tárub
-2táruc
-2t1á2rug
-2t1á2ruh
-2tárui
-2t1áruj
-2táruna
-2tárus
-2tárut.
-tár1uta
-2táruü
-2táruv
-2tárúé
-tá2rúj
-2tárúk
-tá2rús
-tá2rü
-tá2rű
-tá2s1a2d
-tá2s1aj
-tá2sal
-tá2s1a2r
-tá2saz
-tás1á2ga
-tá2s1á2rai
-tá2s1á2rá
-tá2s1á2ré
-tá2s1árh
-tá2s1árn
-tá2s1á2ro
-tá2s1árr
-tá2s1árt
-tá2sás
-2t1ásáso
-tá2s1á2to
-tá2s1e2
-tá2sis
-tá2sodv
-tá2s1ol
-tá2sor
-tá2só
-2tásók
-tás1ó2r
-tá2sö
-tá2ső
-tás3s
-tást2
-tás1tr
-tá2sut
-tá2s1ü2
-tá2sű
-t1ásván
-tá2sz1ak
-tá2szal
-tás3zav
-tá2s3zá
-tá2sze
-tás3zen
-2tászi
-2tászo
-tá2szos
-tá2s3zó
-2tászt
-2t1átad
-2t1á2tál
-2t1átc
-2t1átd
-2t1á2t1e2
-2t1á2t1é
-2t1átfo
-2t1átg
-2t1áthe
-2t1áthi
-tá2t1ir
-2t1á2tí
-2t1átje
-2t1átkö
-2t1átlag
-2t1átm
-2t1á2t1ol
-2t1á2t1ö
-2t1á2tő
-2t1átp
-2t1átre
-2t1átru
-2t1átsz
-2t1átte
-2t1átté
-2t1áttö
-2t1áttű
-2t1átut
-2t1á2tü
-2t1átvi
-2t1átvo
-tá2v1a2d
-tá2vak
-táva2l
-tá2v1a2n
-tá2vas
-tá2vaz
-tá2v1ál
-tá2v1e2
-tá2véd
-tá2v1érz
-tá2v1és
-tá2vin
-tá2vis
-tá2ví
-tá2v1or
-2t1á2vó
-tá2vö
-tá2vő
-tá2vü
-tá2zsal
-tá2zsál
-tá2zsó
-tázs1p
-tbal2le
-tbeá2
-tb2la
-tb2le
-tb2li
-tb2lo
-tb2lú
-tb2ra
-tb2re
-t1b2ri
-tb2ro
-tb2ró
-tb2ru
-tca1k
-tca1s
-tca1t2
-tc2lu
-tc2re
-tcsap1á2g
-tdíja2d
-tdí2j1ada
-td2ra
-td2rá
-td2re
-td2ro
-td2ró
-td2ru
-1te
-te2aa
-te2aá
-te2ab
-te2ac
-te2a3d
-te2ae
-te2aé
-te2ag
-te2ah
-teai2
-te2aiv
-te2aí
-te2aj
-te2aku
-te2alap
-te2aláz
-te2ali
-te2ana
-te2ao
-te2aö
-te2aő
-te2apa
-te2apá
-teas2
-te2a1sp
-te2asza
-te2aszá
-te2aszo
-tea1tró
-te2aú
-te2aü
-te2av
-te2az
-te2ber
-te2béd
-2techó
-te2csá
-te2dit
-te2dí
-2t1e2dz
-2t1eff
-te1f2r
-te2gan
-te2g1a2r
-tega2z
-teg1azo
-te2gá
-teg1ál
-teg1ár
-te2g1eg
-teg1e2lem
-te2g1ell
-te2g1elr
-te2gene
-2tegere.
-teg1ered
-te2g1él
-te2g1é2p
-tegész1
-teg3g
-te2gid
-te2gis
-te2giz
-te2g1on
-te2g1ö
-te2gú
-te2g1ü2g
-tegü2l
-te2g1ülé
-te2g1ülő
-2t1egy.
-2t1e2gyes
-t1e2gyez
-t1egyén
-2t1egyh
-2t1egyl
-2t1egys
-2tegyüt
-tei2g
-tein1s
-te2j1a
-teje2g
-te2j1ell
-te2j1elv
-te2j1er
-te2jin
-te2jí
-te2jo
-te2j1ó
-te2j1ös
-te2jő
-te2j1u2
-te2jú
-te2k1ag
-te2k1ál
-te2k1el
-tek1éret
-te2k1i2p
-te2kí
-te1klu
-te2k1ok
-te2k1ös
-te2k1und
-te2k1út
-te2lab
-te2lag
-te2laj
-te2l1an
-te2lap
-te2lar
-te2las
-te2lav
-te2l1á2g
-te2lál
-telá2r
-te2l1át
-2telbü
-teleí3rá
-2telej
-tel1ejt
-2telektr
-tel1e2len
-te2l1elk
-te2l1ell
-te2lemba
-te2leme.
-2telemei
-2te2lemek
-te2lemes
-te2lemén
-2t1e2lemű
-tel1esés
-te2l1e2ső
-te2l1este
-tel1esti
-tele2t1ér.
-t1e2lég
-tel1érét
-te2l1éte
-t1elfoga
-telié2h
-te2l1imi
-te2lind
-te2l1inf
-te2l1ing
-2t1elix
-te2lír
-tel2l1eg
-2tellenf
-2tellenő
-2tellenz
-2t1ellniv
-2telméle
-te2l1ó2
-te2l1öl
-2telőadá
-2t1e2lőí
-2telőnn
-2t1e2lőny
-te2lőtt
-2t1e2lőtu
-te2lővét
-tel1őzi.
-tel1p2
-2t1elsa
-2t1első
-2t1eltelé
-2t1eltett.
-2t1eltéré
-te2lú
-telü2ké.
-2t1elv.
-2t1elvb
-2t1elvei
-2t1elvek
-2t1elvet
-2t1elvév
-2t1elvh
-2t1elvi.
-2t1elvil
-2t1elvk
-2t1elvn
-2t1elvr
-2t1elvt
-2t1elvü
-2t1elvű
-2t1elvv
-te2map
-te2m1as
-2t1embl
-2t1embr
-te2m1e2g
-tem1e2leg
-2t1emelé
-2t1emelk
-2te2melő
-te2melv
-te2m1él
-te2m1ér.
-te2m1é2rő.
-tem1érté
-2t1e2més
-te2m1éte
-te2m1étk
-te2mid
-te2migr
-tem1ill
-te2mim
-tem1ing
-te2m1int
-te2móc
-te2m1ó2r
-te2m1ő2
-2tempá
-2templi
-2t1e2mul
-te2mus
-te2mut
-temü2l
-te2m1ülé
-te2nad
-te2n1a2g
-te2nal
-te2n1a2r
-te2n1as
-te2nat
-te2nau
-te2n1á2t
-ten1d2h
-tene2g
-ten1egy
-te2n1el
-te2ner
-2tenerg
-te2n1esz
-te2n1ékt
-te2n1év.
-te2n1évi
-2t1enged
-te2n1i2p
-te2n1ol
-te2n1ó2
-te2nö
-ten2tin
-ten2t1í2v
-ten1tri
-te2n1u2
-te2nú
-te2n1üg
-te2nünn
-2t1enyh
-t1enyv
-te2oc
-te2of
-teo2s
-2t1epiz
-2t1e2pos
-2tepp
-tep2p1é2k
-ter1abl
-ter1a2cé
-te2r1ada
-ter1aka
-te2r1a2n
-te2r1a2r
-te2rau
-ter1á2cs
-te2ráf
-te2r1áll
-ter1álm
-te2r1á2ri
-ter1áta
-ter2ch
-ter1d2
-2terdő
-2teredm
-te2r1e2dz
-ter1egé
-ter1egy
-2t1e2rej
-te2r1e2ke.
-2t1e2rekl
-te2r1elm
-tereme2
-te2r1ent
-2tereo
-tere2pa
-tere2p1e2l
-tere2p1ü2lé
-te2r1er
-te2r1e2ső
-te2r1este
-te2r1esté
-te2reta
-te2r1eti
-te2retn
-te2rég
-te2r1é2j
-ter1éka
-te2ré2l
-ter1éle
-ter1élv
-ter1g2
-ter1iko
-2terili
-ter1illa
-teri2na
-te2r1i2p
-te2rism
-ter1ist
-ter1izm
-ter1k2
-t1erkölc
-termés1s
-te2r1old
-te2ror
-te2r1ox
-te2r1ó2r
-te2rök
-te2r1ön
-te2rő
-2t1erő.
-2t1erőb
-2t1erőf
-2t1erős
-t1erőt
-t1erőv
-ter1s2
-tersz2
-tert2
-ter1tr
-te2rur
-te2r1ut
-te2r1út
-te2r1üg
-te2r1üld
-ter2vaj
-ter2van
-te2sar
-te2sár
-te2sel
-tes1ell
-2t1esemé
-2t1e2setb
-2t1e2sete.
-2t1e2setei
-2t1e2seten
-2t1e2setet
-2t1e2seté
-2t1e2seth
-2t1e2seti
-2t1e2setn
-2t1e2setr
-2t1e2sett
-te2sél
-2teséll
-2tesély
-2t1e2sés
-te2s1int
-tesí2r
-te2sírn
-te2s1író
-te2síz
-2teskü
-t1esni
-te2sot
-2t1e2ső
-tesp2
-2t1esszen
-tes2tak
-tes2t1áll
-testá2r
-tes2tára
-tes2t1elk
-tes2t1ell
-tes2t1er
-2testéj
-2testék
-tes2t1ékn
-tes2t1éks
-2testém
-tes2tism
-tes2t1o
-testő2
-tes2t1őre
-tes2t1őré
-tes2tur
-te2s1ú
-te2s1ü2v
-2teszet
-2t1eszmé
-tesz2t1a2
-teszte2r
-tesz2t1ere
-tesz2t1é2te
-tesz2tor
-te2t1a2k
-te2t1a2l
-te2tana
-te2t1a2p
-te2tág
-te2t1ál
-tetá2r
-te2t1ára
-te2tát
-te2t1e2g
-te2t1ell
-tet1e2lő
-tet1elr
-te2t1elv
-te2tene
-tete2r
-te2t1eré
-te2t1esz
-te2t1éj
-tet1ékk
-te2t1é2l
-te2t1éri
-te2t1érv
-te2tid
-2t1e2tika
-2t1e2tiká
-te2tim
-te2t1int
-tetkész1
-te2t1olt
-te2t1ot
-te2tór
-te2tur
-te2t1üz
-2t1e2tűd
-te2t1ű2z
-tevés3s
-te2vol
-te2w1a
-2t1exp
-2t1e2zer
-tezőa2
-t1ezred
-1té
-2t1ébr
-té2cő
-té2des
-2tég.
-2tégb
-2téget
-2tégé
-té2gép
-té2gés
-2tégg
-2tégj
-2t1égk
-tégla1
-2tégn
-2t1é2gö
-2t1é2gő
-2tégr
-2tégt
-tégü2
-té2g1ül
-2t1éh.
-2t1é2hek
-2t1é2hen
-2t1é2hes
-2t1é2het
-2t1é2hé
-2t1éhs
-2t1é2jen
-té2jes
-2t1éjr
-2t1éjs
-2t1éjt
-té2kab
-té2kad
-ték1ada
-té2k1aka
-ték1alk
-té2kam
-té2k1a2n
-té2k1ar
-téka2t
-té2k1att
-té2kaz
-té2k1ág
-té2k1e2c
-té2kedé
-té2k1e2g
-té2k1e2kéh
-té2k1e2lőá
-té2k1elr
-té2k1er
-té2k1esz
-té2k1eti
-té2k1é2k
-té2k1é2l
-té2kép
-té2k1ér.
-té2k1és
-tékfélé2
-tékfé2l1év
-té2kid
-té2kik
-té2kim
-té2kirá
-té2k1i2s
-té2kí2
-té2k1o2r
-té2k1osz
-tékó2
-té2kór
-té2k1ö2
-té2kő
-té2k1u2t
-tékü2l
-téla2
-té2lak
-té2l1an
-té2lap
-té2las
-t2élá
-té2láb
-té2lál
-té2lár
-té2l1á2t
-té2lei
-té2le2l
-tél1ele
-tél1ell
-tél1elő
-tél1elv
-té2l1e2r
-té2les
-tél1est
-té2lez
-tél1ékb
-tél1éké
-té2lí
-té2ló
-té2l1ö2
-télőkész1
-télu2
-té2lut
-2té2lű
-té2lyeg
-télyigaz1
-téma1p
-té2mé
-té2mil
-téna2
-té2n1an
-2t1é2nekb
-2t1éneke.
-2ténekek
-2t1é2neké
-2ténekl
-té2n1in
-té2n1ö2
-té2ny1e2g
-té2ny1e2l
-té2nyék
-tényigaz1
-té2nyim
-té2nyo
-té2nyö
-tépés3s
-2t1é2pí
-té1p2la
-2t1é2pül
-té2rab
-té2raj
-tér1akt
-té2r1a2n
-té2rar
-té2ras
-té2rav
-té2r1á2r
-2térdekb
-2térdekl
-2térdekn
-2térdekü
-2térdekű
-tér2d1e2mel
-tér2d1í2j
-té2reg
-té2r1e2l
-té2rem
-tér1eml
-té2r1eng
-té2r1eső
-té2r1essz
-té2r1esz
-2t1é2rett
-térés1s
-té2r1ész
-tér1éte
-téri2d
-té2r1ide
-té2ril
-té2rip
-té2ris
-2térkez
-2t1érmü
-té2r1os
-té2rö
-2t1értes
-2t1érték
-2tértő.
-2t1értők
-tér1t2r
-2t1értv
-té2r1u2
-2t1érv.
-2t1érvei
-2térvek
-2t1érvény
-tésa2
-té2sab
-té2sag
-té2s1aj
-té2sak
-té2s1al
-té2san
-té2sap
-té2s1as
-té2s1az
-té2s1á2
-tésát1a2
-té2s1eg
-té2s1e2l
-té2s1e2r
-té2sés
-tés1iko
-té2s1or
-té2só
-té2s1ő2
-té2su
-tésü2l
-té2s1ülé
-tés1ülő
-té2s1üt
-tés3zav
-tész1ál
-tés3zár
-té2szeg
-té2sz1emb
-tés3zene
-té2szesz
-té2sz1ék
-tés3zsi
-té2t1a2l
-tétcsa2
-té2t1e2g
-tét1e2lemt
-tét1elkés
-té2t1elve
-2t1éteri
-té2t1ers
-té2t1e2v
-té2t1é2te
-té2tok
-té2tol
-té2t1os
-tétó2
-té2tón
-té2t1ór
-2t1év.
-2t1évad
-2t1évb
-2t1évc
-2t1é2vedb
-2tévei
-2t1é2vek
-2t1é2vem
-2téves.
-tévé1sz2
-2t1évf
-2tévh
-2t1é2vi
-2tévk
-2t1évn
-2t1évr
-2t1évs
-2tévt
-té2vú
-2t1évü
-té2vükö
-té2vün
-2t1é2vű
-2t1évv
-té2zs
-tfa2l1aj
-tfa2lan
-tfa2le
-tfa2lom
-tf2jo
-tf2la
-tf2le
-tf2li
-tf2lo
-tf2ló
-tf2ra
-tf2rá
-tf2re
-tf2ri
-tf2rí
-tf2ro
-tf2rö
-tf2ru
-tgá2zak
-tgá2zár
-tgá2zé
-tge2n1el
-tge2né
-tgen1s
-tg2lo
-tg2ló
-tg2ne
-tg2ra
-tg2rá
-tg2ri
-tg2ró
-tg2ru
-tg2rü
-tha2de
-1thagore
-t2har.
-1t2hau
-1t2he.
-the2i2d1
-1theidp
-1theusz
-t2holi
-thon1n
-tho1ny
-1thosz
-th1sc
-1thy
-1ti
-ti2aa
-ti2ae
-ti2aé
-ti2af
-ti2ah
-ti2aj
-tiakész1
-ti2ala
-ti2am
-ti2a1p
-ti2ata
-ti2atl
-ti2aü
-ti2av
-ti2chi
-ti2dea
-2t1i2deá
-2t1i2deg
-ti2dei
-2tidej
-2t1i2deo
-ti2dén
-2tidéz
-ti2dio
-2t1i2dom
-2t1i2dő
-tie2le
-tie2n
-tié2b
-ti1fl
-2t1i2ga
-2t1i2gá
-2t1i2ge.
-2t1i2gék
-ti1g2lo
-ti1g2ra
-2t1ihl
-ti3ki
-ti1kle
-ti1klu
-ti2konb
-ti2kono
-ti2konr
-tiko1sz2
-ti1k2ri
-ti2lac
-ti2lad
-ti2lan
-ti2l1ág
-tile2g
-til1egy
-ti2lex
-ti2lim
-til1ing
-ti2l1i2p
-ti2lir
-til1isk
-2t1illato
-2tillú
-ti2l1ö2
-2t1i2ly
-ti2mak
-ti2máb
-2timádó
-ti2máj
-ti2már
-ti2máz
-ti2mes
-2timmu
-2timrei
-2tinakat.
-2t1inakk
-tin1akt
-ti2n1a2n
-tin1ará
-tina1t2
-ti2n1au
-ti2n1áll
-tin1árt
-2t1indá
-2t1inde
-2t1indí
-2t1indu
-ti2ne.
-ti2neg
-ti2n1eké
-ti2nem
-2t1infar
-2tinfl
-2t1infr
-tin2gal
-tin2gas
-tin2g1ár
-tin2g1e2l
-2t1ingeni
-tin2g1eti
-tin2gos
-tin2g1ó2
-2t1i2nic
-tini2g
-tin1iga
-ti2n1i2m
-tini1sz2
-2t1inku
-2t1inkv
-tin3n
-tin1órá
-ti2nö
-2t1insp
-2t1integ
-2t1intéz
-ti2n1ut
-ti2nű
-ti2ol
-ti2onb
-ti2onh
-ti2oni
-ti2onj
-2t1i2onn
-2t1i2ono
-2t1i2onr
-2t1i2ont
-tio2x
-ti2pad
-ti1p2la
-tip2pin
-tip2po
-2t1i2rat
-2t1i2rán
-2t1irg
-ti2rig
-2t1irk
-2t1i2rod
-2tirol
-ti2rom
-ti2rón
-2t1irr
-tir2s1
-2t1irt
-tis2as
-ti2s1a2u
-ti2s1el
-2t1i2si.
-ti2sim
-ti2sin
-ti2s1i2r
-2t1i2sis
-2t1isko
-ti2sor
-2tistv
-tisz2tina
-ti2t1i2o
-ti1t2ri
-ti1t2ro
-tiu2mé
-tiu2m1i2
-2tivad
-2t1i2var
-2t1i2ván
-2t1i2vó
-ti2xa
-tize2n1
-ti2zé.
-2tizéj
-2tizék
-ti2zér
-ti2zét
-ti2zév
-tizo2m
-1tí
-tí2gé
-tí2ja
-tí2já
-tí2jú
-tí2la
-tí2l1ó2
-2tínio
-2t1í2no
-2t1ínr
-2t1íns
-2t1í2ny
-tí2ra2n
-tí2rar
-tí2r1ál
-2t1í2rás
-tí2r1e
-2t1í2ró
-tí2rő
-tí2rü
-títés3s
-títőa2
-títőe2
-tí2v1ec
-2t1í2vei
-tí2vel
-tí2ver
-2t1í2véi
-tívi2
-tí2vik
-tí2vir
-tí2viv
-tí2v1ó2
-tí2vö
-tí2vő
-tív1s
-tí2za
-tí2zá
-tí2zel
-tíz1ele
-tí2z1emb
-tízi2
-tí2zik
-tí2z1is
-tí2zí
-2tízl
-tí2z1o
-tí2zö
-tí2zsá
-tí2zu
-tí2zül
-tíz1ülé
-2t1í2zű
-tje2gy1á2
-tjó2t1
-tka1pr
-tka2ró2r
-tkende2
-tké2p1e2kéh
-tkia2l
-tkiá2
-tkie2
-tkié2
-tk2la
-tk2li
-tk2lí
-tk2ló
-tk2lu
-tkö2z1él
-tkőé2h
-tk2ra
-tk2rá
-t1k2reác
-t1k2ré
-t1k2ri
-tk2rí
-t1k2ro
-t1k2ró
-tk2ru
-tk2va
-tk2vi
-tk2vó
-tla2c3
-tla2g1a2d
-tla2g1ar
-tla2gas
-tla2gál
-tla2g1e
-tlag3g
-tla2g1ó
-tla2n1e2
-tlanká2
-tla2nó
-tla2pár
-tleí2
-tlen3n
-tle2t1a2n
-tle2tas
-tle2tele
-tle2t1elv
-tle2t1ér.
-tle2tos
-tle2tő
-tleü2
-tlé2kal
-tlé2kem
-tlé3pe
-tlés3s
-tlé1trá
-tló1dr
-tma2gál
-tma1k
-tmá2nyir
-tme2g1e2
-tme2g1é
-tme3gif
-tmu2sí
-tmus3s
-tmu2sz
-tna2gya
-tná2d1
-tne2k1el
-tne2küld
-tne2m1e2r
-tne2r1a
-tne2r1á
-tne2sz1a
-tne2szi
-tne2sz1ó2
-tnév1a
-tnómen1
-tnómenk2
-tnö2k1öl
-tnőé2n
-1to
-2t1obj
-2t1obl
-2t1obs
-to1cki
-to2daa
-to2das
-to2dí
-2t1o2dú
-2t1odv
-2t1off
-togás1s
-to1g2ráf.
-to1g2ráff
-to2il
-to2k1aka
-to2k1a2n
-to2k1ap
-tok1ari
-to2k1ál
-tok1á2rok
-to2k1átl
-to2k1átm
-to2k1átr
-to2k1áts
-to2k1átt
-to2k1átv
-to2ker
-to2k1é2l
-to2kép
-to2kid
-to2k1im
-to2k1in
-to2k1ip
-to2k1iv
-to2kí
-t1o2kozá
-to2k1ö
-to2kő
-to1k2ro
-tok1s
-toksz2
-to2k1ur
-to2kúr
-to2kü
-to2kű
-to2l1a2d
-2t1o2laj
-to2l1akt
-tola2n
-to2l1any
-to2l1a2r
-tol1atom
-tol1ábr
-2toldalo
-2toldalt
-2t1o2lim
-tol1k2
-tol2l1árb
-tol2l1á2ré
-tol2l1árh
-tol2l1árr
-tol2leg
-tol2l1in
-tol2l1í2
-to2l1o2r
-2t1oltás
-to2l1ut
-2tolvas
-to2m1ag
-to2m1ak
-to2m1a2l
-to2m1a2n
-to2m1ap
-to2m1ál
-to2m1á2r
-tom1b
-2tombe
-to2m1el
-to2men
-tom1erő
-to2m1es
-to2mí
-to2m1osz
-to2m1ó2
-to2mö
-tom1p2
-tom1s
-2tomtö
-2tomú
-to2mü
-to2mű
-to2nalm
-tona1t2
-tonau2
-ton1áll
-ton1álm
-to2n1á2z
-to2n1el
-to2n1en
-to2ner
-ton1gr
-to2nil
-ton1k2
-to2nol
-to2n1or
-to2n1osz
-to2nóc
-to2nór
-to2nö
-to2nő
-ton1s2
-tont2
-ton1tr
-to2n1út
-to2nü
-to2nű
-to2nyal
-to2nye
-to2p1at
-2topc
-2to2pe
-to2pik
-to2piz
-2topp.
-2toppo
-2toppr
-top1t2
-to2pü
-to2r1a2d
-to2r1ag
-to2r1aj
-to2r1aka
-to2r1akn
-to2r1ako
-to2r1a2l
-tora2n
-to2r1any
-to2r1a2p
-to2r1ar
-tor1ass
-to2rat
-to2r1au
-to2r1av
-tor1ács
-to2r1áll
-to2r1álm
-tor1áté
-to2r1átl
-to2r1á2z
-2t1orcá
-tord2
-tor1dr
-tore2
-to2rec
-to2rek
-to2r1el
-to2ren
-to2r1er
-tor1f2
-tor1g2
-2t1organ
-2torie
-to2r1ill
-to2r1int
-to2r1isk
-tor1k2
-2tornó
-to2rop
-to2rosz
-tor1oszt
-to2r1ov
-toró2
-to2rón
-to2r1ór
-to2rö
-to2rő
-2t1orr.
-2t1orráv
-2t1orri
-tors2
-tor1sc
-tor1sk
-2t1orsó
-tor1sp
-tor1st
-tort2
-tor1tr
-to2rü
-3torvá
-2torvos
-2torvv
-to1ry
-to2s1as
-to2s1e
-to2sik
-to2s1in
-to2sis
-tos3sze
-t1osto
-2t1osty
-to2sü
-to2szal
-to2szan
-to2sz1e
-tosz1k
-2t1oszlop.
-tosz1tr
-3t2ot.
-2t1otthon
-to2ut
-tova1
-2t1o2ve
-2t1o2vi
-2t1o2vu
-2t1oxid
-2t1o2xig
-to1yo
-toza2t1al
-1tó
-tóá2gy
-tóá2r
-tóát1
-tóáta2
-tó1bl
-tó1bra
-tó1bró
-tó1cl
-tócsa2p1á2g
-tó2daj
-tó2d1a2n
-tó2d1esé
-tó1dro
-tó2dúr
-tó1fl
-tó1gl
-tó1g2r
-tói2g
-tóí2v
-tóká2rok
-tó1k2l
-tó1kre
-tó1kré
-tó1kro
-tónus3s
-tóo2k
-tóó2r
-tóp1ass
-tó2p1e2l
-tóp1int
-tó1pro
-tó2ras
-tó2ráb
-tó2ráh
-2t1ó2rái
-tó2rár
-2t1ó2rás
-tó2rát
-t1ó2ráv
-tó2sep
-tós1éták
-tós1é2tát
-tó2sír
-tó1s2kan
-tó1skál
-tó2s1ol
-tó1s2porto
-tó1s2portt
-tó1s2rác
-tó2s1ü2l
-tó2s3zene
-tó1sz2f
-tó1szk
-tó2taj
-tó2tág
-tó2tom
-tó1t2rá
-tó1t2re
-tó1tro
-2tóvod
-2t1ó2vó
-1tö
-töb2bev
-töb2b1o
-2t1öbl
-2tödéé
-tö2dém
-tö2dí
-2tödné
-tö2do
-2tödöt
-2tödü
-tö2ka
-tö2ká
-tö2k1e2v
-tö2k1ér.
-tö2k1érd
-tö2kid
-tö2kí
-2tö2ko
-2t1ö2kör
-tökös3s
-tö2k1ő
-2tökrös
-tö2ku
-2t1ölb
-2t1ölci
-töl2gya
-töl2t1á2
-t1öltön
-2t1öltöz
-töm2b1a
-tömbe2
-töm2bel
-töm2b1o
-t1ömle
-2t1ömlé
-t1ömli
-tö2möl
-tö2na
-tö2ná
-tön1d2
-tö2nen
-tö2n1í
-tön2kár
-tönkész1
-tö2no
-tö2n1ő
-tön1s
-tö2nu
-tö2nú
-2t1ö2reg
-törés3s
-2töröks
-tör2t1a2
-tör2teg
-tör2t1e2lem
-tör2ter
-tör2térn
-tör2t1és
-tör2t1o2
-tör2t1öl
-tör2tös
-tör2zsa
-tör2zs1ö2l
-2t1ösv
-2t1ösz
-2t1ötl
-töt2t1á
-2t1ötv
-2t1öv.
-2t1övb
-2t1övh
-2t1ö2vie
-2tövig
-2t1övj
-2t1övk
-2t1övn
-2t1övr
-2t1övv
-2t1ö2zön
-tözőe2
-1tő
-tőa2c
-tőa2l
-tőá2g
-tő1bl
-tő1br
-tőe2ké
-tőe2r
-tőé2l
-tő1fl
-tő1gr
-tőí2t
-tőí2v
-tő1kl
-tő1kv
-tő1pl
-tő1pr
-tő1ps
-tő2rag
-t1őral
-2t1ő2r1an
-tőr1egy
-2t1őrez
-2t1ő2rék
-2tőréü
-tő2rin
-tő2r1is
-2t1ő2rí
-2t1őrjá
-2t1őrjel
-2tőrjö
-2tőrka
-2tőrl
-2tőr1öl
-2tőrp
-2t1őrti
-2tőrtr
-2t1őrz
-tő2s1a2l
-2t1ősny
-tő1spe
-tő1s2pi
-tő1spr
-tő1srá
-tő1sta
-tő1s2tá
-tő1sté
-tő1str
-2tősű
-tő2sű.
-tősz2
-tő1szt
-tő1tr
-tőü2l
-tőzá2
-tőzár1
-tpen3n
-tp2fe
-tp2la
-tp2lá
-tp2lé
-tp2lu
-tp2ra
-tp2re
-tp2ré
-tp2ri
-tp2ro
-tp2ró
-tp2ru
-tp2sz
-tpu2tin
-t2rafó
-1t2ragé
-1tragi
-tra1k2l
-tra1kro
-tran2d1a2
-tran2dá
-trans1s
-tran2sz1ai
-tran2sz1o2m
-tra1s2p
-trat2
-t2rati
-tra1tr
-1trágya
-1trágyáb
-1trágyáé
-1trágyáh
-1trágyái
-1trágyáj
-1trágyák
-1trágyán
-1trágyár
-1trágyás
-1trágyát
-1trágyáv
-t2rájk
-trán2sz
-trá2nyal
-trá2t1ér
-tre2csa
-tre2cso
-t2rego
-tren2da
-tren2d1ő2
-1trení
-tréé2
-1t2réni
-tré1p2
-tré2sz1á2
-tri1g2
-trii2
-t2rikó
-t2rill
-1t2rió.
-t2riój
-t2riók
-trol2l1in
-tro2mad
-tro2maj
-trona2
-tro2n1ag
-tro2nal
-tro2nan
-tro2nes
-tron3n
-tron1tr
-tr2os
-tro1sz2f
-tro1sz2ta
-t2r1o2x
-tró2de
-tró2nas
-tró2n1e
-1trónj
-1t2róno
-t2rónt
-tró1sz
-tró2zsi
-t3röm
-1t2rös
-1t2rub
-tru2mad
-1t2rup
-tsa2vo
-ts2ch
-1tsche
-tsé2g1éj
-ts2ká
-ts2ko
-ts2la
-ts2lá
-ts2le
-ts2li
-ts2má
-ts2mi
-ts2ni
-tsói2
-ts2pa
-ts2pe
-ts2pi
-ts2po
-ts2pó
-tsp2r
-ts2rá
-t1s2ta
-t1s2tá
-ts2te
-ts2té
-ts2ti
-ts2tí
-ts2to
-tst2r
-ts2tu
-ts2tú
-1t2sub
-tsza2ké
-tsza2k1ü
-tsza2t1e2
-tsza2tö
-tszé2t
-t1sz2f
-t1sz2k
-t1sz2l
-tszö2g1e2le
-t1sz2p
-t1sz2t2
-ttad2
-tta2dó.
-ttag1g
-tta2g1o2ku
-tta2n1ér
-t2t1ará
-t2t1aszt
-tta1t2r
-ttaü2
-t2t1a2z
-ttán2s1á2g
-ttá2v1i2
-tte2leme
-t2t1e2lőa
-tte2r1in
-t2t1erő
-tte2s1a2
-tt1ég.
-t2t1é2le
-tté2rak
-ttér1em
-tté2r1es
-tté2r1é2ne
-tté2rid
-ttér1in
-tt1éss
-tt1é2vér
-t2t1i2o
-t2t1iro
-t2t1isk
-t2tizz
-ttír1a
-tt1írá
-tt1kr
-ttornác1
-t2t1ors
-ttó1dr
-ttó1p2
-t2t1ó2rá
-ttó1s2r
-ttö2l
-tt1ölő
-tt1pr
-t1t2raf
-t1t2rag
-t1t2ran
-ttransz1
-ttranszk2
-t1t2rav
-t1t2róf
-tt2rón
-ttsé2gel
-tt2si
-t2t1ug
-t2t1üd
-t2t1üt
-t2t1ü2v
-ttwe2
-t2ty
-tty1or
-tty1ö2l
-ttyü2
-tty1ül
-ttyülés1
-1tu
-tuá2r
-tubus1s
-tu1ck
-tuda2te
-tuda2t1ö
-2tudí
-tu2ga
-tu2go
-2t1ugr
-tu2hu
-tu2in
-2t1ujj
-2tuká
-tulo2
-2t1ulti
-2t1ultr
-tu2lü
-tu2mab
-tu2m1a2d
-tu2maj
-tu2mal
-tu2man
-tu2mar
-tu2maz
-tu2mál
-tu2meg
-tu2m1el
-tu2mer
-tu2mes
-tu2m1i2k
-tu2mim
-tu2m1inf
-tu2m1int
-tu2m1ir
-tu2mis
-tu2miz
-tu2mí
-tu2mol
-tu2mö
-tu2mő
-tum1p2
-tu2mü
-tu2nal
-2t1unc
-2tunió
-tu2nit
-2t1u2no
-2t1u2nó
-2t1unt
-tu1p2r
-tu2rac
-2turai
-2t1u2rak
-tu2ralo
-tu2ram
-2t1u2ras
-tu2ráh
-2turán
-tu2rár
-tur2g1a
-tu2run
-tus1abl
-tu2sar
-tu2ság
-tu2se
-tu2s1érté
-tu2sis
-tu2s1í
-tu2sor
-tu2s1ó2
-tu2s1ö
-tu2ső
-tuss2
-tus3sze
-tus3szi
-tus3szo
-tu2sü
-tu2szab
-tu2sz1a2d
-tu2szag
-tu2szal
-tu2szap
-tu2szar
-tus3zav
-tu2szál
-tusz1em
-tu2sz1é2l
-tu2sz1é2p
-tuszi2
-tu2sz1il
-tu2szin
-tu2sz1ip
-tu2szir
-tu2szis
-tu2sz1it
-tu2szí
-tusz1k2
-tu2szol
-tu2s3zó
-tu2szö
-tu2sző
-tusz3sa
-tus3zse
-tuszt2
-tusz1tr
-tu2szü
-2t1u2tad
-2t1u2tak
-2t1u2tal
-2t1u2tam
-2t1u2tas
-2t1u2taz
-2tutá
-tu2tán
-2t1utc
-2t1u2to
-tu2tód
-tu2tóp
-tu2tót
-tu2tun
-tu2um
-2t1uzso
-1tú
-tú2ja
-tú2jí
-tú2jo
-tú2ju
-tú2l1a2
-tú2l1á2
-tú2l1e2
-tú2l1é2
-tú2list
-tú2lí
-tú2lok
-tú2lop
-tú2l1ó2
-tú2lö
-tú2l1ő
-túl1s
-túlt2
-tú2lú
-tú2lü
-tú2lű
-túra1sz
-tú2rál
-tú2r1e2
-tú2r1ér
-tú2r1és
-tú2r1ol
-tú2rot
-tú2rö
-tú2rü
-tú2sze
-tú2szö
-tú2szü
-tú2tá
-2t1útb
-tú2t1e2
-2t1ú2té
-2t1úth
-2t1ú2ti
-2t1útj
-2t1útl
-2t1útn
-2t1ú2to
-2t1útr
-2t1útt
-2t1útv
-1tü
-2t1ü2dí
-2t1ü2dü
-2t1üdv
-tü2ge
-tü2gy
-tü2l1a
-tü2lá
-2t1ü2led
-tü2l1e2m
-tü2len
-tü2lep
-tü2l1e2s
-tü2l1e2v
-tü2l1ér
-tü2lir
-tü2lí
-tü2l1o2
-tü2l1ökl
-tü2löm
-tü2l1ön
-tü2l1öz
-tü2lők
-tü2lőr
-tü2lu
-tü2lú
-tü2ma
-tü2mék
-tü2m1ő
-tüne2tel
-2t1ünn
-2türeg
-2türes
-2t1ü2rí
-2t1ü2rü
-2tüst
-2t1ü2te
-2t1ü2té
-tü2ti
-2t1ütk
-tü2tö
-2t1ü2tő
-tü2vö
-2t1ü2zen
-2t1üzl
-1tű
-tűcsa2p1
-tű2d1al
-tű2dá
-tűe2két
-tűé2h
-tűfélé2
-tű1gr
-tű1kv
-tűleü2
-tű1pl
-tű1pr
-tűrés1s
-tű1sp
-tű2z1a2
-tűzá2r
-tű2z1ára
-tű2zát
-tű2zene
-tű2zis
-tű2zí
-tű2zo
-tű2z1ös
-tűz3seb
-tű2zú
-tva2n1e
-tva2név
-tva2raj
-tvá2nyad
-tvá2nyí
-tvá2z1al
-tvá2zip
-tve2n1e2v
-tven3n
-tven3t
-tvenü2
-tve2nül
-tve2n3y
-tve2raj
-tve2ral
-tve2r1á2
-tve2reg
-tve2r1é2sz
-tve2rint
-tve2rip
-tve2r1o
-tvers2
-tver1st
-tve3se
-tvé2nyel
-tvér1int
-tvé2r1o
-tviselőé2
-tvis3szá
-t2víve
-t2y
-1tya
-tyai2ko
-tya1kl
-tya1p2
-tya1sz2
-tyat2
-tya1tr
-tyau2
-1tyá
-2ty1ág
-ty1áld
-ty1áll
-tyá2ran
-tyár1s
-tyás3s
-1tye
-ty1e2gy
-ty1ela
-ty1ell
-ty1emb
-ty1e2rő
-2ty1ex
-1tyé
-2ty1éte
-1tyi
-1tyí
-ty1í2r
-ty1ív
-tynk2
-1tyo
-tyo2lan
-tyo2r1os
-1tyó
-1työ
-1tyő
-ty1ős
-ty2pe
-ty1pr
-ty2sa
-ty1sp
-1tyu
-2ty1ug
-ty1u2tá
-1tyú
-tyú2kü
-1tyü
-1tyű
-1t2zekn
-1tzekrő
-1t2zen.
-t2zenj
-1t2zer
-1t2zes
-tz1ő2r
-tz3sc
-2u.
-u1a
-ua2ch
-ua2da
-ua2dá
-u2ador.
-u2adorb
-u2adoré
-u2adorn
-u2adoro
-u2adorr
-u2adort
-ua2dó
-ua2es
-ua2gá
-ua2ja
-ua2já
-ua2la
-ua2lá
-ua2ny
-ua2sz
-ua2ty
-ua2ut
-ua1yá
-ua1yé
-ua1yi
-ua1yo
-ua2zo
-u1á
-uá2ga
-uá2gy
-uá2po
-uá2r1á
-uá2r1e
-uá2réj
-uá2r1is
-uá2sz
-uá2t1a2
-uá2t1e
-ub1a2la
-ub1alk
-u2b1ang
-ub1arc
-ub1a2ri
-ub1ár.
-ub1á2ro
-ub1dr
-u2b1e2b
-u2b1ed
-ube2lá
-ube2lel
-ub1elö
-ub1e2se
-ub1est
-u2b1éj
-ub1éle
-u2b1é2n
-u2b1ép
-u2b1érd
-u2b1é2re
-u2b1érm
-u2b1érte
-u2b1éve
-ubi2g
-u2b1iga
-u2b1ige
-ubi2ke
-u2b1ina.
-ub1ism
-ub1kr
-ub1olda
-u2bork
-u2b1orv
-u2b1osz
-ub1óri
-ub1öl
-ub1ös
-ub1öv
-ub1pl
-ub1pr
-ub1sl
-ub1sp
-u2b1ud
-ubu2sz
-u2b1új
-ub1üd
-ub1üg
-ub1ü2l
-ub1üz
-uca2t1á2
-uc2c1e
-uc2c3h
-uc2c1ina
-uc2cip
-uc2cö
-ucc3sz
-uc2cú
-uc2cü
-uc2cz
-uc1emb
-uc3há
-u2c3hé
-u2c3ho
-uciá2r
-uci1p
-u1c2kig
-u1c2kon
-u1c2kot
-uc2ky
-uc1ö2l
-uc1pr
-ucsa2p1á2
-uc3ság
-u2cs1ál
-u2csáru
-u2cs1e2l
-u2cs1id
-ucs1s
-u2c3sü
-uc3sz
-u2c1ug
-uc1üg
-uc3zá
-uc3ze
-uda2tal
-uda2tál
-uda2t1á2ram
-uda2t1eg
-uda2ter
-udáskész1
-udás3s
-udi2o
-u2d1isk
-udo1kr
-udó2se
-udó2sor
-u1d2rá
-u1d2ro
-u1e
-ue2bé
-ue2dz
-ue2gé
-uegész1
-ue2gy
-uel1ér
-ue2lő
-ue2me
-ue2rő
-uervíz1
-u2es.
-u2esb
-ue2s1e
-u2esh
-u2esi
-u2esk
-u2esn
-ue2ső
-u2esr
-u2est
-u2esu
-ue2s3zen
-ue2te
-ue2ve
-u1é
-ué2ge
-ué2gé
-ué2ké
-ué2le
-ué2pí
-ué2pü
-ué2te
-ufé2nye
-u1f2le
-uf2ri
-uf2ru
-uf2tü
-ug1agy
-ug1alj
-uga1p
-ug1apa
-1u2garo
-uga2t1el
-uga2tés
-uga2tol
-uga2t1ó2r
-ug1ág
-ugára2
-ugár1ad
-ugá2rá
-ugá2ros
-ugá2ru
-ugár1ú
-ugás3s
-ug1á2sz
-ug1el
-ug1e2v
-ug1é2l
-ugg2l
-ugi2e
-ug1ing
-ug1int
-ug1iro
-ugi2t
-ug1ita
-ug1ivá
-ug1ír
-ug1kl
-ugo2r1á2
-ugó1sv
-ugó2s3zá
-ug1ös
-ug1pr
-ug1sk
-2ugui
-u2g1ut
-u2g1új
-ug1üg
-ug1üz
-ug1űr
-ugya2n
-uh1a2dó
-uh1alk
-uha2r1as
-uha1t2r
-uh1att
-u2h1á2g
-uh1áll
-u2h1ár.
-u2h1árb
-u2h1árf
-u2h1árh
-u2h1árn
-u2h1árr
-u2h1árv
-uhá2szak
-uh1em
-uh1ex
-uh1ind
-uh1ing
-uh1orz
-uh1őr
-uh1pr
-uh1tr
-u2hu.
-u2huj
-uh1ujj
-uh1üz
-u1i
-ui2de
-ui2dő
-ui2eu
-ui2ga
-ui2gé
-u2i1gn
-ui2pa
-ui2rá
-ui2zé
-u1í
-uí2ja
-uí2ju
-uí2ve
-uí2vű
-u2j1an
-1ujja.
-1ujjad
-1ujjai
-1ujjak
-1ujjam
-1ujjas
-1ujjat
-uj2j1á2ru
-1ujjb
-1ujjc
-1ujjd
-1uj2j1e2
-1ujjé
-1ujjf
-1ujjg
-1ujjh
-1ujji
-uj2jí
-1ujjk
-1ujjl
-1ujjm
-1ujjn
-1ujjp
-1ujjr
-1ujjs
-1ujjt
-1ujju
-1ujjú
-uj2jü
-1ujjv
-u2j1op
-uk1abl
-uka2c3se
-u2k1a2lap
-uka1pl
-uka2rán
-u2k1arc
-uka2szás
-uka1t2r
-uk1áll
-uká2sar
-u2k1ásó
-ukás3s
-u2k1átm
-uk1bl
-uke2l
-uk1e2m
-uk1ex
-u2k1ég
-u2k1érz
-u2k1i2p
-uk2k1alt
-uk2k1eg
-uk2k1em
-uk2k1ola
-uk2köl
-uklás1s
-ukló2s3zá
-u2k1old
-ukora2
-uko2ras
-uko2r1á2
-uko2ril
-uko2rin
-uko2r1o
-ukós2
-uk1öb
-uk1pr
-u1k2rón
-uk1ü2t
-uk1űr
-ula2cs1ö2
-ula1g2
-ula2jas
-ul1aleg
-u2l1alj
-ula1s2p
-ulata2l
-ula2t1ala
-ula2t1a2n
-ula2tál
-ula2tem
-ula2tik
-ula2tol
-u2l1ábr
-ulá2k1e
-ulá2k1ü
-u2l1á2ria
-ulá2s1i2k
-uláskész1
-ulás3s
-ulá2sza
-ulá2sze
-ul1bl
-ulcs1e2l
-ulcs1es
-ul2cs1ér.
-ul2csérv
-ul2cs1é2vé
-ul2csiga
-ul2csip
-ul2cs1í2
-ul2csor
-ul2cs1ö2
-ul2cs1ő
-ul2csut
-ul2csü
-ulcs3z
-ule2i
-uleí2
-ule2l
-ul1elő
-ulet2ta
-u2l1ex
-ulé2kal
-ulé2k1e2
-ulé2k1ol
-ulé2kut
-ul1épü
-u2l1érté
-uli2nar
-uli2nin
-ul1í2r
-ul1k2r
-ul2lef
-ul2l1e2l
-ul2l1em
-ul2l1en
-ul2l1ér
-ulot2
-uló1f2
-ulói2kon
-ulókész1
-ulóó2
-ulót2
-uló2zan
-uló2z1á2ra
-uló2z3s
-ul1öt
-ul1pr
-ul1st
-ul2t1aj
-ulta2r
-ult1asz
-ul2taz
-ul2tül
-ul1úr
-ul1üt
-ul1űr
-u2lyi
-u2m1abl
-um1abr
-um1a2cé
-um1ach
-um1a2dat
-u2m1adm
-um1a2do
-um1a2dó
-2umaé
-um1ajá
-u2m1a2ka
-umakész1
-u2m1akk
-u2m1akt
-u2m1a2la
-um1alg
-um1all
-um1alt
-u2m1ana
-u2m1ank
-u2m1a2no
-u2m1a2ny
-2umao
-2uma1p2
-u2m1a2rá
-um1arc
-um1arg
-u2m1a2ri
-um1a2ro
-um1asp
-u2m1atl
-u2m1au
-um1a2zo
-u2m1ág
-u2m1áll
-um1álm
-u2m1á2rak
-um1á2ram
-u2m1áras
-u2m1á2rá
-u2m1árf
-u2m1árk
-u2m1árn
-u2m1á2ro
-u2m1árr
-u2m1árt
-u2m1á2ru
-u2m1árv
-umát1a
-u2m1á2t1e
-u2m1átm
-u2m1átu
-um1bl
-um1b2r
-um1dr
-u2m1e2d
-u2m1ef
-ume2g
-um1egy
-um1ela
-um1elb
-u2m1e2le
-um1elé
-um1elh
-um1elí
-um1elj
-um1elm
-u2m1eln
-um1elo
-um1e2lő
-u2m1elt
-um1elv
-u2m1e2m
-ume2n1á
-ume2n1ó2
-um1e2re
-um1erk
-um1e2rő
-um1e2se
-um1ess
-um1e2sz
-u2m1e2t
-u2m1e2v
-u2m1ex
-um1ezr
-u2m1ég
-u2méhs
-um1é2le
-um1élv
-u2m1ép
-u2m1ér.
-u2m1érc
-u2m1érm
-u2m1érte
-u2m1érté
-u2m1érv
-u2m1é2te
-um1fl
-um1f2r
-um1gl
-um1gr
-umia2
-um1i2dő
-umig2
-umi1gr
-um1imp
-umi2na.
-u2m1ind
-u2m1ing
-u2m1inv
-um1i2onb
-um1i2oné
-um1i2onh
-u2m1i2onj
-um1i2onk
-u2m1i2onn
-u2m1i2ono
-um1i2onr
-um1i2ont
-u2m1irt
-um1isk
-umi1sl
-um1ism
-umi1sp
-umi2szü
-umit2
-umi1tr
-um1izé
-um1ív
-um1íz
-umkész1e
-um1kl
-um1kr
-um1kv
-umna2
-u2m1o2koz
-um1ola
-um1old
-um1oll
-um1olt
-um1olv
-u2m1o2p
-umo2ran
-um1o2rat
-umo2rál
-umo2rin
-um1osto
-u2m1osz
-u2m1ox
-um1ó2rá
-um1ö2l
-um1öm
-um1ön
-um1ö2r
-um1ös
-um1öt
-um1öv
-um1ö2z
-um1ő2r
-um1ős
-umpe2l
-ump1ele
-um2p1ing
-um1p2r
-um1sk
-um1sp
-um1st
-um1sz
-um1t2r
-u2m1ud
-u2m1ug
-u2muni
-umu2r
-um1ura
-u2m1u2t
-um1üg
-um1ü2l
-um1ür
-um1üs
-um1üt
-um1üv
-um1üz
-umva2s
-una1b
-un1adu
-un1akt
-u2n1arc
-u2n1á2g
-un2cs1e
-un2csiv
-un2dz
-un1e2r
-un1e2t
-un1ég
-un2g1a2g
-un2g1eg
-un2g1er
-ung3g
-un2g1ol
-u2n1i2d
-1u2nif
-1u2niku
-u2n1il
-u2n1ingo
-1u2nió
-1u2niv
-unka1p2
-unka1s
-un2k1eg
-u2nod
-u2n1orr
-un1ors
-u2not
-un1pr
-un1s2t2
-unta2i
-u2nun
-un1útj
-un1ü2l
-u1o
-uo2la
-uo2li
-uo2r1a2
-uore2
-uo2r1et
-uo2r1i2o
-uo2xi
-u1ó
-u2óbu
-u2óne
-uó1p2r
-u2óré
-uó2ri
-u2óso
-u2ósz
-u2óve
-u1ö
-uö2ko
-uö2kö
-uö2rö
-uö2zö
-u1ő
-uő2re
-uő2ré
-uő2ri
-uő2rö
-uő2rü
-upa1b2
-up1ada
-upa1pr
-upas2
-upa1sp
-upa1t2r
-upda2
-upe2r1a
-upe2rel
-upe2r1in
-uper1s
-up1e2s
-upé1p2
-up2hi
-upli2n
-up1üz
-1u2raim
-1u2rak.
-1u2rakh
-1u2rakk
-1u2rakn
-1u2rakr
-u2ralh
-1uralk
-1u2ralm
-1u2ram.
-ura2m1is
-1u2rasa
-ura1s2p
-ur1áll
-urát1a
-ur2dar
-ur2d1e
-u2r1ef
-ur2fí
-ur2f1ú
-1urná
-ur2ne
-urn2é
-uro1b2
-uroka2
-uro2kan
-uro2k1á
-uro2ke
-uro2ne
-uro1p
-uro1t2
-ur1öl
-urpi2
-ur2t1ag
-ur2t1e2t
-ur2t1e2v
-urti2t
-urt1ita
-ur2t1okta
-uru2c1e
-2urul
-uru1p2
-uru2szál
-u2rú.
-us1abla
-us1a2da
-us1a2dá
-u2s1a2dó
-u2s1a2g
-u2s1a2j
-usa2kar
-u2s1akc
-u2s1a2la
-us1alg
-us1alj
-us1alk
-u2s1alt
-us1alv
-u2s1ana
-us1ane
-us1ant
-us1apá
-u2s1a2ra
-u2s1a2rá
-u2s1arc
-us1arz
-u2s1ass
-u2s1att
-us1a2ty
-u2s1au
-u2s1a2z
-u2s1ábr
-u2s1á2gá
-us1ágb
-u2s1ágg
-us1ágh
-u2s1ágr
-us1áld
-us1áll
-u2s1á2p
-u2s1árad
-u2s1á2rai
-u2s1á2rak
-u2s1á2rá
-u2s1árb
-u2s1árh
-u2s1á2ri
-u2s1árk
-u2s1árn
-u2s1á2ro
-u2s1árr
-u2s1árt
-u2s1á2ru
-us1áta
-us1áth
-us1áti
-us1átk
-us1átt
-us1átu
-us1átv
-us1bl
-us1br
-us1dr
-us1e2c
-us1e2d
-u2s1ef
-us1e2gy
-u2s1e2l
-u2s1e2m
-u2s1e2n
-us1erd
-u2s1e2s
-use1t
-u2s1e2v
-u2s1ex
-us1ez
-u2s1ég
-u2s1éhe
-u2s1é2k
-u2s1é2l
-u2s1é2ne
-u2s1ép
-u2s1érd
-u2s1érte
-u2s1érv
-u2s1és
-u2s1é2te
-us1étk
-us1étt
-u2s1éve
-us1fr
-us1gr
-u2s1i2d
-usi2g
-us1iga
-u2s1i2ko
-u2s1ill
-u2s1i2ma
-u2s1i2má
-us1imi
-u2simm
-us1imp
-u2s1inc
-us1ind
-us1inf
-u2s1ing
-u2s1ink
-u2s1int
-us1inv
-u2s1i2p
-u2s1i2rat
-u2s1i2rá
-us1iro
-us1irt
-u2s1isk
-u2s1ism
-us1ita
-us1izé
-us1íg
-u2s1íj
-usí2r
-us1írá
-us1író
-u2s1í2v
-u1s2kál
-us1kl
-uskói2k
-us1k2r
-us1kv
-u2sodú
-u2s1of
-us1okl
-us1okm
-us1okta
-us1ola
-u2s1old
-us1oli
-u2s1oml
-us1ond
-u2s1op
-u2s1org
-u2sori
-u2s1orr
-u2s1ors
-us1osz
-u2s1ott
-us1óc
-us1ó2s
-u2s1ö2l
-u2s1ön
-us1örd
-us1ö2rö
-u2s1ös
-u2s1öt
-us1ö2v
-u2s1ö2z
-us1ő2r
-u1s2pec
-us1pl
-us1pn
-us1pr
-us1ps
-2uss.
-us2se.
-us1ská
-us1spe
-us1spi
-us1sta
-us1sy
-us3szab
-us3szag
-us3szak
-us3szál
-us3szám
-us3szen
-us3szé
-us3szig
-us3szí
-us3szó
-us3szö
-us3sző
-usszü2
-ussz1ül
-us3szű
-ust1á2rár
-us2teg
-us2t1il
-us1trad
-us1tre
-us1tré
-us1tro
-u1stru
-us2t1ül
-u2s1uj
-usu2s
-us1usz
-u2s1u2t
-u2s1új
-us1úté
-us1üd
-u2s1üg
-usü2l
-us1ülé
-u2s1ün
-u2s1ür
-us1üz
-usz1abl
-u2szaj
-usz1a2la
-usz1alk
-usz1alv
-u2sz1a2n
-usz1app
-usza2r
-usz1ará
-usz1aré
-usz1aro
-usz1asz
-u2sz1au
-u2sz1á2g
-usz1állá
-usz1á2p
-u2sz1á2rad
-u2s3zárako
-u2sz1á2ram
-usz1árje
-usz1ásv
-u2száth
-usz1átö
-u2sz1e2c
-u2szef
-usz1e2ge
-usz1e2gy
-usze2k
-usz1eke
-u2sz1e2l
-usz1emb
-usz1eml
-us3zene
-usz1eng
-u2sz1erd
-usz1e2ré
-usze2s
-u2sz1e2v
-u2sz1ex
-u2széne
-usz1éte
-usz1éto
-usz1imp
-usz1ind
-usz1inj
-usz1isk
-usz1ism
-u2sz1isz
-uszí2j1a2d
-u2sz1ír
-1u2szodá
-u2szola
-u2sz1old
-u2szony
-u2szop
-u2szosz
-u2sz1ö2b
-usz1öl
-usz1ön
-u2sz1ös
-usz1p2
-uszte2r1a
-usz1t2ran
-u2sz1u2s
-u2szut
-usz1útr
-uszü2
-usz1üg
-u2sz1ül
-u2sz1üz
-usz1z
-ut1abl
-uta2csel
-ut1a2dó
-2utakép
-1u2taló
-1u2talv
-utame2
-uta2mel
-uta2mer
-uta1p
-ut1ará
-1utasc
-uta2se
-1utasf
-1u2tasl
-1utasv
-utaü2
-2utav
-1utazi
-2utáb
-2utáé
-2utáib
-2utáin
-2utáju
-2utákb
-2utákt
-2utám
-2utáná
-után1n
-1utánz
-2utáró
-utá2rú
-ut1bl
-1utca
-1utcá
-u2t1e2g
-ute2r1a
-ute2rá
-ute2reg
-ute2rim
-ute2ru
-utén3n
-ut1fr
-uti2k1á2r
-uti2ke
-ut1ill
-uti2m
-uti2n1e2
-uti2nér
-utini2
-uti2nig
-uti2n1ik
-uti2n1ó
-utin1s
-u2t1i2pa
-u2t1isk
-ut1kl
-ut1okke
-u2t1old
-uto2l1é
-u2tols
-2utomata
-uto2rim
-2utos
-2utot
-utó2dal
-u2tódá
-utó2del
-utó1p2
-utó2s1aj
-utós3s
-utó1s2to
-utó1sz
-utó1tr
-utótűz1
-ut1pr
-ut2rak
-ut2ran
-ut2rák
-ut1sp
-ut1st
-ut1t2r
-ut1üg
-ut1ü2z
-utya1s2
-u1u
-uu2m1ag
-uu2mal
-uu2m1as
-uu2mál
-uu2m1e2
-uu2m1é2r
-uu2mim
-uu2min
-uu2mö
-uum1p2
-uu2mü
-uu2ta
-uu2tá
-uu2zs
-u1ú
-u1ü
-uü2gy
-uü2rí
-uü2té
-uü2ve
-uü2ze
-u1ű
-uva2r1a
-uva2r1á2
-uva2r1e
-uva2rin
-uva2szál
-uvata2
-uva2t1ag
-uvi1g2
-uv2re
-uxi2t1a
-uxi2t1á
-uxi2t1e
-uzala2
-uza2lac
-uza2lad
-uza2lan
-uza2lág
-uza2l1át
-uza2lel
-uza2l1ék
-uza1p2
-uza1s2
-2uzál.
-2uzálb
-2uzáll
-2uzálr
-u2z1id
-uz1i2gye
-uz1ír
-uzki2
-uzói2
-uz3sap
-uz3sz
-uz1t2r
-uz1ü2g
-uzü2l
-2ú.
-ú1a
-úa2da
-úa2dá
-úa2dó
-úa2gy
-úa2já
-úa2kar
-úa2kas
-úa2la
-úa2lá
-úa2ny
-úa2sz
-úa2ud
-úa2va
-ú1á
-úá2ga
-úá2gá
-úá2gi
-úá2go
-úá2gy
-úá2hí
-úá2lo
-úá2po
-úá2ra
-úá2ri
-úá2ru
-2úbab
-2úband
-2úbar
-úb2lo
-2úbód
-úb2ri
-úb2ro
-ú2c1aj
-ú2c1a2l
-ú2c1a2n
-ú2c1a2v
-úc1e2t
-úc3he
-úc3ho
-ú2c1i2d
-úci2ókép
-úc1pr
-2úcsa
-ú2csab
-ú2csad
-ú2cs1ag
-ú2cs1aj
-ú2csakt
-úcs1ala
-ú2cs1a2n
-úcsa2p1á2
-ú2cs1a2s
-ú2cs1au
-ú2csaz
-úcs1á2g
-ú2cs1ál
-ú2cs1árá
-ú2cs1árf
-ú2cs1ári
-ú2cs1árv
-ú2csátv
-2úcse
-ú2cs1eb
-ú2cs1e2g
-úc3sej
-ú2cs1e2l
-úcs1emb
-ú2cs1en
-úcs1erő
-ú2cs1e2s
-ú2cs1él
-ú2cs1ér.
-ú2csérd
-ú2cs1érte
-ú2cs1érté
-ú2cs1é2v
-ú2cs1id
-ú2csigaz
-ú2cs1il
-ú2csim
-ú2cs1inf
-ú2cs1int
-úcs1i2pa
-ú2csirá
-ú2cs1is
-ú2cs1iz
-2úcso
-ú2csokta
-ú2csosz
-2úcsó
-ú2cs1ó2r
-úcs1öl
-úcs1ös
-úcs1p
-úcs1s
-úcs1t
-úcsús1s
-úcs1ü2t
-úcs3za
-ú2d1a2c
-úda2d
-úd1ada
-ú2d1a2k
-ú2d1a2n
-úd1ág
-úd1ál
-úd1á2r
-ú2d1e2g
-ú2d1ej
-úde2l
-úd1ele
-úd1elh
-úd1elő
-ú2d1e2m
-úde2ra
-úde2r1ec
-úd1erő
-úd1e2v
-ú2d1ék
-ú2d1ér.
-ú2d1érc
-údé2t
-úd1éte
-ú2d1i2d
-údi2g
-ú2d1igé
-úd1ing
-údi2ódar
-údi2óz
-ú2d1os
-úd1pr
-úd2rá
-úd2ro
-úd1üv
-údy1éh
-údy1ét
-údy1i
-údy2s
-úd3zá
-ú1e
-úe2bé
-úe2gé
-úegész1
-úe2gy
-úe2la
-úe2le
-úe2lo
-úe2lö
-úe2lő
-úe2me
-úe2pi
-úe2re
-úe2ré
-úe2rő
-úe2rű
-úe2sz
-úe2ta
-úe2te
-úe2ve
-úe2vő
-ú1é
-úé2he
-úé2le
-úé2lő
-2úé2ne
-úé2pí
-2úér.
-úé2r1á
-úé2re
-úé2ri
-2úérz
-úé2te
-úé2ve
-úfélé2
-úfé2l1év
-úf2lö
-úf2rá
-úf2ri
-úf2rí
-úf2ro
-úg1a2d
-úgás1s
-úg1el
-úg1i2v
-úg1old
-úgós2
-úg2rá
-úgy1ag
-úgy1el
-úgy1ér.
-úgyi2
-úgy1is
-úgy1iv
-ú2gy1u2
-úgy1út
-ú1i
-2úi2de
-úi2dő
-úi2ga
-úi2gé
-2úi2ke
-2úikre
-2úill
-2úi2má
-úi2mi
-2úing
-2úint
-úi2pa
-úi2rat
-úi2rá
-2úisk
-2úism
-2úist
-úi2ta
-2úi2vad
-úi2vás
-ú1í
-úí2rá
-úí2ve
-úí2vi
-úí2vü
-2újáté
-új1es
-új1ez
-új1éve
-új1évé
-új1k2r
-1ú2jon
-új1or
-új1pl
-újra1
-1újsá
-új1ud
-ú2jul
-2úkab
-ú2k1a2g
-ú2k1a2j
-úk1a2lak
-2úkalan
-ú2k1alk
-ú2k1any
-2úkap
-ú2k1a2pó
-2úkar
-2úkate
-ú2k1atk
-ú2k1ál
-ú2káru
-úke2l
-úk1ele
-úk1ell
-ú2k1em
-úke2s
-úke2t
-úk1ete
-úk1e2vé
-2úkérd
-2úkéré
-2úkés
-ú2k1éss
-ú2k1észr
-ú2k1é2te
-2úkéz
-úkia2
-ú2k1i2d
-2úkin
-ú2k1is
-ú2k1i2t
-ú1k2li
-úk2lu
-2úkol
-ú2k1olt
-2úkom
-2úkonf
-2úkong
-2úkorá
-2úkoro
-2úkos
-úk1ó2l
-úkö2l
-úk1ölő
-úk1pr
-ú1k2re
-úk1t2r
-ú2k1ud
-ú2k1úr
-úkü2l
-úk1ülő
-úk1ült
-ú2k1ür
-ú2k1ü2t
-ú2k1üz
-úl1a2d
-úl1a2ja
-úl1a2l
-úl1a2m
-úla2n
-ú2l1any
-úl1a2ro
-ú2l1á2g
-ú2l1ál
-úl1árn
-ú2l1á2sz
-úl1átv
-úl1br
-úl1d2r
-úl1e2d
-úle2l
-úl1ele
-úl1ell
-ú2l1emb
-úl1en
-ú2l1e2re
-úl1e2s
-ú2l1e2vő
-úl1ex
-ú3lé.
-úl1é2d
-úlé2g
-ú3l2é3va
-úl1fr
-úl1gl
-ú2l1i2d
-ú2l1igé
-ú2l1ij
-ú2l1il
-ú2limá
-ú2l1ind
-ú2l1inf
-ú2l1ing
-ú2l1inj
-ú2l1int
-ú2l1inv
-ú2l1i2p
-ú2l1irá
-ú2l1isk
-ú2l1i2sz
-ú2l1i2ta
-ú2l1itt
-ú2livás
-ú2livo
-ú2lizgato
-ú2l1izz
-úl1íg
-úl1í2v
-úl1k2l
-úl1kv
-úlo2k
-úl1oko
-ú2l1ol
-úl1ope
-ú2l1or
-ú2l1os
-ú2l1ox
-úl1öb
-úl1öl
-úl1ö2m
-úl1ö2n
-úl1ör
-ú2l1ös
-úlövés1s
-úl1őrü
-úl1p2l
-úl1p2r
-úl1p2s
-úl1sk
-úl1sm
-úl1sp
-úl1s2t
-úlsz2
-úlsztá2
-últ1agg
-últ1agy
-úl2t1aj
-úl2t1al
-úl2t1árn
-úl2tél
-úl2térte
-úl2t1és
-últ1éves
-últi2
-úl2tid
-úl2t1im
-úl2t1in
-úl2t1ip
-úl2tis
-úl2tí
-últ1old
-úl2tös
-úl2t1ő2r
-úl1trá
-ú2l1ud
-ú2l1u2g
-ú2l1ur
-ú2l1u2t
-ú2l1úr
-úl1ús
-úl1üg
-úl1ül
-úl1ün
-úl1ür
-úl1üt
-úl1üv
-úl1üz
-úl1űz
-ú2ly1a2d
-ú2ly1a2l
-ú2ly1an
-ú2ly1a2r
-ú2ly1au
-ú2lyál
-ú2ly1átl
-ú2ly1e2
-ú2lyél
-ú2lyés
-ú2lyol
-ú2ly1ö
-ú2lyő
-úly1s
-ú2lyug
-2úmac
-2úmad
-2úmag
-2úmaj
-2úmar
-2úmatr
-úmi2al
-2úmoz
-2únac
-2únap
-únau2
-ú2ny1a2n
-ú2ny1i2r
-úny1tr
-ú1o
-úo2ko
-úo2ve
-ú1ó
-úó2ra
-úó2rá
-úó2sá
-úó2vo
-ú1ö
-úö2le
-úö2lé
-úö2lő
-úö2rö
-úö2ve
-ú1ő
-úő2rö
-úp1eg
-úpe2l
-úp1es
-ú2p1in
-úp2la
-úp2lé
-ú2p1or
-úp1p2l
-úp2rí
-úp2ro
-úraát1
-2úrab
-2úraj
-úr1akk
-úr1alu
-ú2r1ant
-úr1a2nya
-úra1p2
-úra1szp
-ú2rattas
-úrau2r
-ú2r1ábr
-úr1áll
-ú2r1á2ri
-úrás1s
-ú2r1átm
-úr1br
-úr1d2r
-úr1e2c
-úr1e2l
-úr1ez
-ú2rék
-úr1ékk
-ú2r1é2l
-úr1é2ne
-2úrés
-úrfé2l1é2v
-úri2al
-ú2r1i2d
-ú2rie
-úr1ifj
-úri2g
-ú2r1iga
-úri3gényé
-úr1i2m
-ú2r1inf
-úr1ing
-ú2r1int
-ú2ris
-úr1ist
-úr1k2r
-1úrnőr
-úr1ott
-úró1p2
-úró1sp
-úr1ö2c
-úr1ö2l
-úr1ön
-úr1öt
-úr1ős
-úr1pr
-úr1s2k
-úr1sn
-úr1s2r
-úr1s2t
-úr1szn
-úr1u2t
-úr1ü2l
-úr1ü2v
-2úsabl
-ús1abr
-ú2s1a2d
-ú2s1a2j
-ús1a2la
-úsa2n
-ús1any
-ús1apr
-úsa2r
-ús1ará
-ú2s1arc
-2úsarj
-úsá2gol
-ús1áld
-ú2s1á2p
-ú2s1á2rai
-ú2s1á2rak
-ú2s1árb
-ú2s1áre
-ú2s1á2ro
-ú2s1á2ru
-ú2s1á2rú
-ú2s1árv
-2úsát
-ús1átl
-ú2s1á2z
-ús1dr
-ús1e2c
-ús1e2l
-ús1e2v
-ús1ex
-ú2s1é2g
-ú2s1é2l
-ús1é2ne
-ú2s1é2ré
-ús1érm
-ú2s1érté
-ú2s1é2tá
-ú2s1é2te
-ús1étr
-ús1fr
-úsi2g
-ús1iga
-ú2s1il
-ús1imp
-ú2s1in
-ú2s1i2p
-ú2s1i2r
-ú2s1is
-ús1í2z
-ús1kl
-ús1kv
-ú2s1ola
-ú2s1old
-ús1org
-ú2s1orr
-ús1osz
-ús1ó2h
-ús1ös
-ús1őr
-ús2pe
-ús1pr
-ús1s2p
-ús3szag
-ússza2k1
-ús3szav
-ús3sze
-ús3szi
-ús3szí
-ús3szó
-ús3szö
-ús3szú
-ús3szü
-ús2tat
-ús1t2r
-ú2s1u2ga
-ú2s1u2t
-ús1üg
-ús1ün
-ús1ü2t
-ús1üz
-úsvé2t1e
-ú2sz1a2d
-ú2sz1akc
-ú2sz1á2g
-úszás1s
-2úsze
-úsz1ej
-úsz1e2s
-úsz1e2v
-2úszé
-ú2sz1év
-ú2szigá
-2úszí
-úsz1k2
-úsz1old
-úsz1osz
-ú2szóe
-2úszö
-úsz1ös
-úsz1p
-ús3zse
-ú2s3zú
-2úszü
-úsz1ü2g
-úsz2ve
-út1a2d
-út1a2i
-ú2t1a2j
-út1a2v
-ú2t1ál
-út1á2ro
-út1á2s
-ú2t1á2t1
-útá2v1i2
-út1bl
-út1ef
-ú2t1e2g
-út1elá
-út1ell
-út1elz
-ú2téh
-út1é2l
-ú2tén
-ú2t1ép
-út1érd
-ú2t1é2ri
-út1érz
-útfélé2
-út1gr
-ú2tiakh
-ú2tiakn
-út1id
-útie2
-ú2tié
-úti2g
-út1igé
-1ú2tij
-1ú2t1i2ko
-út1ill
-1ú2tiná
-út1ind
-út1inf
-út1ing
-út1int
-út1i2pa
-1ú2tir
-út1irá
-út1ism
-út1ist
-1ú2t1i2z
-út1íg
-út1íj
-út1ív
-út1okm
-ú2t1ola
-út1old
-út1oml
-úto2n1
-út1ont
-út1op
-2útor
-úto2ran
-úto2r1as
-úto2rál
-úto2re
-út1ost
-út1osz
-út1ös
-útő2r
-út1pl
-út1pr
-ú1t2rag
-2ú1t2ri
-útsá2gi
-út1st
-útu2m1é
-útu2r
-út1urá
-ú2t1út
-ú2t1üg
-1útvo
-ú1u
-úu2no
-úu2ra
-ú1ú
-ú1ü
-úü2gy
-úü2lé
-úü2re
-úü2te
-úü2ve
-úü2vö
-úü2ze
-ú1ű
-úű2ző
-2úvál
-úv2ár
-úvá2rad
-úvá2ral
-úvá2ris
-úvá2rosz
-úvá2r1ó2
-úváru2
-úzae2
-úzaé2
-úzak2
-úza1p2
-úz1arc
-úza1t2r
-ú2z1ál
-ú2záru
-úzás1s
-úz1i2d
-úzido2
-úzót2
-úzó1tr
-úz1p2r
-ú2zs1a2l
-ú2zsál
-2úzse
-úzs1e2c
-2úzsi
-úz3sz
-úz1t2r
-2ü.
-ü1a
-üa2já
-üa2la
-ü1á
-üá2ga
-üá2go
-üá2gu
-üá2ra
-üá2sz
-üb2lo
-ücsö2k1
-ü2des
-1ü2dít
-üd1íz
-ü2d1ör
-üdös3s
-üdőé2
-1ü2dül
-üd2v1a2
-üd2v1el
-üd2v1e2s
-üd2vél
-üd2vid
-üd2v1í
-üd2vo
-1üdvö
-üd2völ
-üd2vő
-üd2vu
-üd2vú
-ü1e
-üe2bé
-üe2ge
-üe2gé
-üe2le
-üe2l1é2
-üe2me
-ü1é
-üé2ke
-üé2pí
-üf2f1ö2
-üfö3le
-üf2ro
-üge1k2
-üge3l
-üg2ra
-ü2gy1a2
-ü2gy1á
-ü2gyef
-ügy1e2lemb
-ügy1e2lemm
-ügy1elf
-ü2gy1ell
-ügy1elm
-ügy1elo
-ügy1éjé
-ügy1ékb
-ügy1éré
-ügy1érr
-ü2gyés
-ü2gyil
-1ü2gyin
-ügy1int
-ügy1ira
-ü3gyí
-1ügynö
-ügy1os
-ü2gy1ő2
-üh1af
-üh1at
-üh1ás
-ü2h1e2le
-üh1elf
-üh1ellen
-ü2h1e2lő
-üh1elv
-ü2h1éh
-ü2h1ér.
-ü2h1in
-ü2h1it
-üh1or
-üh1ős
-ü1i
-üi2gé
-üi2ko
-ü1í
-üí2rá
-ük1a2n
-üka2p
-ük2kal
-ük2ká
-ükke2
-ükkel1
-ük2ker
-ükko2
-ük2kop
-ük1u2n
-ül1ab
-ül1a2d
-ül1ag
-ül1aj
-ül1a2k
-ü2l1a2l
-ül1a2r
-ül1at
-ül1au
-ül1á2c
-ül1á2g
-ül1ál
-ül1á2p
-ül1á2r
-ül1á2s
-ül1br
-ül1d2r
-ü2l1ecse
-ül1e2dz
-ü2l1e2g
-2ülek
-ül1ell
-ü2l1e2lőte
-ül1eng
-ül1enn
-ü2l1e2r
-ül1e2ső
-ületa2
-üle2tal
-üle2t1an
-üle2t1as
-üle2tav
-üle2t1á2
-üle2t1eg
-üle2t1e2l
-üle2t1ék
-üle2t1ér.
-üle2t1érn
-üle2t1é2rő.
-üle2térü
-üle2t1é2ve.
-ületo2
-üle2t1or
-üle2tos
-üle2t1ó2
-üle2t1ö2
-ület1t2
-ül1ette.
-ül1etted
-üle2t1u
-üle2tüz
-ü2l1ex
-ü2l1é2g
-ülé2k1a2
-ülé2k1á2
-ülé2k1e2l
-ülé2kev
-ülé2kir
-ülé2k1o
-ülé2ku
-ü2l1él
-ül1é2pü
-ü2l1ér.
-ü2l1é2ré
-ül1éri
-ül1érj
-ül1érn
-ül1érs
-ü2l1é2rü
-ül1érv
-ü2l1érz
-ülé2sa
-ülé2so
-ülés3s
-ülé2s3zá
-ül1fr
-ü2l1i2d
-üli2g
-ü2l1iga
-ül1ill
-ü2l1im
-ü2l1int
-ül1ira
-ü2l1itt
-ü2l1iz
-ül1íg
-ül1í2r
-ül1í2v
-ül2l1a2n
-ül2l1in
-ül2l1ö2vü
-ül2l1u2
-ül3lyu
-ülnö2k1öl
-ül1o2d
-ül1o2l
-ül1om
-ül1op
-ül1or
-ül1ó2v
-ü2l1öb
-ü2l1ö2l
-ü2l1ömö
-ü2l1ör
-ü2l1ö2v
-ülőe2
-ülőé2l
-ülő1sl
-ülő1s2p
-ülő1sta
-ülőt2
-ül1p2l
-ül1p2r
-ül1sl
-ül1sp
-ül1st
-ül2t1ad
-ültá2r
-1ültetl
-1ültets
-ül2t1e2v
-ül1tra
-ül1ud
-ül1u2g
-ül1u2t
-ül1ús
-ü2l1üg
-ülü2l
-ül1ülé
-ül1ülh
-ül1üli
-ül1ülj
-ül1üln
-ül1ült
-ül1ülv
-ü2l1ür
-ü2l1üt
-ü2l1üv
-ü2lyel
-üly1ess
-üly1esz
-üm1a2l
-üm1a2n
-üm1a2r
-üm1á2r
-üme3gi
-üm1éks
-ü2m1ép
-ü2m1érd
-üm1fl
-üm1fr
-ümi2g
-ü2m1iga
-ü2m1il
-ü2m1im
-ü2m1i2p
-ü2m1is
-ü2m1iz
-üm1kl
-üm1kr
-üm1o2l
-üm1or
-üm1os
-ü2m1öss
-üm1őr
-üm1p2r
-üm1tr
-üm1új
-ü2m1ü2l
-ü2m1üv
-ü2m1üz
-ün1ál
-ün1á2r
-ün1e2l
-üne2t1elet
-üne2tés
-ün1evé
-ü2n1é2p
-ün1id
-ü2n1ing
-ü2n1irt
-1ünnep
-ü1o
-üo2k1i2
-ü1ó
-üó2rá
-ü1ö
-ü1ő
-üő2re
-üp2ri
-üp2ro
-ürdés1s
-1ü2reg
-üre2g1a
-üre2gá
-üreg1g
-1ü2res
-üre2tö
-ü2röm
-ür2t1a
-ür2t1á
-ür2t1e2
-ür2tis
-ür2t1o2
-ürtok1
-ürtü2
-ür2tül
-1ü2rül
-üs2s1a2
-üs2s1á
-üs2s1eg
-üs2s1o2
-üss1s
-üssü2
-üs2s1ül
-üs2t1a2
-üs2tá2
-üst1ág
-üst1ál
-üst1ár
-üs2t1e2
-üst1ég
-üs2t1ék
-üs2tél
-üs2t1ér.
-üs2t1ére
-üs2t1érm
-üs2t1il
-üs2tim
-üs2tir
-üs2t1is
-üs2tí
-üs2t1o2
-üs2t1ó2
-üs2t1ör
-üs2t1ö2v
-üs2t1őr
-üs2t1ős
-üs2t1u2
-üs2tú
-üstű2
-üs2t1űz
-üsz1ál
-üszi2
-ü2sz1iv
-üsz1í2v
-ü2sz1önt
-ü2szür
-üt1ab
-üt1aj
-1ü2teg
-1ü2tem.
-üte2m1a2
-ü2temb
-1ü2teme
-üte2m1el
-ü2teméb
-üte2mért
-üte2min
-ütési2
-üté2sik
-ütés3s
-üté2s3z
-1ütkö
-ütő1s2p
-üt2t1á
-üt2t1é2
-ütty1e2g
-üt2zi
-ü1u
-üu2ta
-ü1ú
-ü1ü
-ü1ű
-üve2g1a2
-üveg3g
-üvezé2r
-1üze2m1a2
-üze2m1á
-üze2meg
-üze2m1érté
-üze2m1étk
-1ü2zemi
-üze2m1o
-ü2zemt
-üze2m1u2
-ü2zemű
-üze2t1a
-üze2t1o
-üzé2ra
-üzé2r1e2l
-1üzlet.
-1üzletn
-2ű.
-ű1a
-űa2da
-űa2dó
-űa2gy
-űa2ka
-űa2la
-űala2g1
-űa2lo
-űa2na
-űa2ny
-űa3nyagoc
-űa2or
-űa2pa
-űa2pá
-űa2ra
-űa2rá
-űa2to
-űa2ut
-űa2va
-űa2xi
-űa2zo
-ű1á
-űá2bé
-űá2ga
-űá2gá
-űá2gy
-űá2hí
-űá2je
-űá2lo
-űá2po
-űá2ra
-űá2ri
-űá2ro
-űá2ru
-űá2sí
-űá2té
-űá2tí
-űba2l1
-űbé2rel
-űb2lo
-űb2ró
-űcsapá2
-űcsa2p1ág
-űcs1as
-ű2cs1ék
-űcs1i2pa
-űd1ál
-ű2d1e2l
-ű1d2rá
-űd2ro
-ű1d2ró
-űd1sk
-ű1e
-űe2cs
-űe2ge
-űe2gé
-űe2gy
-űe2kére
-űe2la
-űe2le
-űe2lé
-űe2l1í2
-űe2lő
-űe2lü
-űe2me
-űe2pi
-űe2po
-űe2re
-űe2rő
-űe2se
-űe2sé
-űe2ső
-űe2te
-űe2ti
-űe2vé
-űe2vő
-ű1é
-űé2le
-űé2lé
-űé2nekb
-űé2neke
-űéne2kest
-űé2neké
-űé2nekr
-űé2pí
-űé2te
-űfa2j1e2
-űf2lo
-űfo2g1a2l
-űf2ra
-űf2ri
-űf2ro
-ű2g1ö2lé
-ű2g1ö2lő.
-űg1ős
-űgő2z
-űg2ra
-űg2rá
-űholda2d
-űhol2d1ada
-ű1i
-űi2do
-űi2ga
-űi2gé
-űi2má
-űi2mi
-űi2pa
-űi2rá
-űi2ro
-űi2sz
-űi2ta
-űi2zé
-űi2zo
-ű1í
-űí2rá
-űí2ri
-űí2ró
-űí2té
-űí2ve
-űí2zü
-űí2zű
-űkia2
-űk2la
-űk2li
-űk2lí
-űk2lo
-űk2rep
-ű1k2ré
-ű1k2ri
-ű1k2ro
-ű1k2ró
-űk2va
-űme2g1
-űn1al
-űn1ar
-űn1ál
-űn1á2r
-űn1e2le
-űn1elh
-űn1e2li
-űn1elk
-űn1e2lő
-űn1elr
-űn1elt
-űn1eml
-űn1e2se
-űn1est
-űne1t2
-ű2n1ér.
-ű2n1érte
-űni2g
-ű2n1iga
-ű2n1in
-ű2n1i2p
-ű2n1i2r
-ű2n1is
-űnme2
-űn3ny
-űn1o2k
-űn1ol
-űn1os
-űn1ó2r
-űn1pr
-űn1s2k
-űn1s2t
-űn1u2n
-űn1u2t
-ű2n1üs
-ű2n1üz
-űn1űz
-ű1o
-űo2dú
-űo2ká
-űo2ko
-űo2la
-űo2rá
-űo2ro
-ű1ó
-űó2ce
-űó2ra
-űó2rá
-űó2ri
-ű1ö
-űö2lő
-űö2rö
-űö2ve
-űö2zö
-ű1ő
-űő2rö
-űp2la
-űp2lü
-űp2ne
-űp2ré
-űp2ri
-űp2rí
-űp2ro
-űp2ró
-űr1ad
-űr1a2l
-űr1a2m
-űr1a2n
-űr1au
-űr1a2v
-űr1áb
-űr1ál
-űr1ás
-űr1áz
-űr1egy
-űr1e2l
-űre2n
-ű2r1e2r
-űr1ex
-ű2r1é2j
-űr1é2l
-űr1ép
-űrés3szer
-űré2sza
-űré2szá
-űré2szí
-űré2szo
-űr1fl
-űr1id
-űri2g
-űr1iga
-ű2r1i2m
-űr1int
-űr1i2p
-űr1ist
-ű2r1ír
-űr1o2d
-ű2r1ol
-űr1o2p
-űr1or
-űros2t1a2
-űr1ot
-űr1ón
-ű2r1ö2l
-űr1ör
-űrő1f2
-űr1pl
-űr1pr
-űr1p2s
-űr1s2p
-űr1s2t
-űrszt2
-űr1tra
-űr1uj
-űr1un
-űr1u2t
-űr1út
-űr1üg
-űr1üz
-ű2s1ajtó
-űs1ál
-űsé2g1el
-ű2s1ín.
-ű2s1í2r
-ű1s2ka
-ű1s2ká
-űso2rad
-űso2raj
-űso2ral
-űso2ran
-űso2rál
-űso2rosz
-űsor1s
-űsort2
-űs2pe
-űs2pi
-űs2po
-űsp2r
-űs2rá
-űs3sz
-ű1s2ta
-ű1s2tí
-ű1s2to
-űst2r
-űs1tro
-ű2s1uj
-ű2s1ü2t
-űsze2r1á
-űsze2r1e2le
-űszere2p
-űsze2r1epé
-űsze2r1ült
-űsz2k
-űsz2t
-űtés3s
-űtőa2
-űtőe2
-ű1t2ra
-ű1t2rágá
-ű1t2re
-űt2ri
-ű1t2ro
-ű1u
-űu2ga
-űu2ra
-űu2sz
-űu2ta
-űu2tá
-űu2tu
-ű1ú
-űú2ri
-űú2sz
-űú2ti
-űú2to
-ű1ü
-űü2gy
-űü2lé
-űü2rí
-űü2te
-űü2té
-űü2tö
-űü2ve
-űü2vö
-űü2ze
-ű1ű
-űű2ző
-űvé2sz1a
-űvé2sz1á
-űvé2sz1e2l
-űvé2szer
-űvé2szint
-űvé2szo
-űvé2sz1ó2
-űvé2szö
-űvé2szú
-űví2z1
-űvíze2
-ű2z1a2b
-űz1a2d
-űz1a2g
-űz1ak
-űz1a2l
-űzal1e
-űz1a2p
-űz1a2r
-űz1a2s
-űz1a2t
-űz1a2u
-űz1á2g
-ű2z1ál
-ű2z1árb
-ű2z1árj
-űz1átl
-űz1átu
-ű2z1ed
-ű2z1ef
-ű2z1e2l
-ű2z1em
-ű2z1e2r
-űze2s
-ű2z1ese
-ű2z1esé
-ű2z1est
-ű2z1esz
-űze2teg
-űze2tel
-ű2z1e2v
-ű2z1ég
-ű2z1é2l
-ű2z1érm
-ű2z1érté
-ű2z1érz
-ű2z1ész
-űz1fr
-űz1gl
-űz1g2r
-űzi2g
-ű2z1iga
-űzigaz1
-ű2z1igé
-ű2z1i2m
-ű2z1i2r
-űz1isk
-űz1ism
-űz1ist
-űz1i2sz
-ű2z1iz
-űz1ín
-űz1ír
-űz1í2v
-űz1kl
-űz1kr
-űz1o2k
-űz1o2l
-ű3zom
-űz1on
-űz1op
-űz1or
-űz1os
-ű2z1óc
-ű2z1ó2r
-ű2z1ö2kö
-űzöl2d1el
-ű2z1ö2v
-ű2z1öz
-űzőa2
-űzőe2
-ű2z1őr.
-űz1ő2rei
-ű2z1ő2ri
-űz1őrk
-űz1őrm
-ű2z1őrn
-ű2z1ő2rö
-ű2z1őrr
-ű2z1őrs
-ű2z1őrt
-űz1őrz
-űz1p2r
-űz3sa
-ű2zsám
-ű2z3sár
-ű2z3sáv
-ű2z3ser
-ű2z3sé
-ű2z3só
-ű2z3sö
-űz3s2p
-ű2z3suga
-űz3sü
-ű2z3sű
-űz3sz
-űz1t2r
-ű2z1ug
-űz1úr
-űz1út
-ű2z1ü2g
-ű2z1ül
-űz1ünn
-ű2z1üt
-űz3zs
-2v.
-1va
-vaa2d
-vaát1
-vaáta2
-2v1abl
-va1bra
-v1abs
-vacs1ala
-va2cs1an
-va2csap
-va2csál
-va2cs1ü2
-vacs3z
-2v1a2dag
-va2d1aj
-va2dalé
-2v1adap
-va2d1asz
-v1a2data
-v1a2datb
-v1a2datk
-v1a2dato
-v1a2datr
-va2daz
-va2d1ál
-va2deg
-va2d1e2l
-va2den
-va2dep
-va2d1e2r
-va2d1e2t
-va2dél
-vad1éte
-va2dib
-va2d1id
-va2d1ir
-va2d1i2t
-va2d1ír
-va2d1ol
-2vadom
-va2dóh
-va2dói
-v1a2dój
-va2dór
-v1a2dóu
-va2d1ör
-va2d1ő2
-va2d1ú
-va2dű
-va2dza
-va2dzá
-va2dze
-vaé2r
-va2g1as
-va2gav
-va2gás
-va2g1e2
-va2g1é2n
-vag1g
-va2gid
-va1gle
-va2g1o2ku
-va2goli
-vag1ost
-va2g1osz
-va2g1ura
-va2gú
-2v1a2gyú
-va2j1ar
-va2j1ác
-va2j1á2ro
-va2j1e2g
-va2jí
-va2j1ol
-va2j1ó2s
-va2jö
-va2jü
-2va2kad
-vak1a2dá
-va2k1aj
-vak1akn
-vak1apá
-vak1árn
-va2k1ás
-va2k1át
-va2keg
-va2kem
-va2k1érté
-va2kis
-va2k1ír
-va2k1ó2s
-va1krí
-vak1t2
-2vakti
-2v1aktu
-2vakup
-va2k1út
-va2lac
-va2laku
-va2lap.
-va2lapí
-va2lapú
-vallás1s
-2v1amp
-2v1a2nal
-va2n1e2g
-vane2m
-van1eme
-va2n1es
-vané2v
-van1éve
-van1évi
-2vang
-van3n
-va2nol
-va2nó
-2v1a2nyá
-2v1a2nyó
-va1p2l
-va2pos
-va1p2r
-2v1a2pu
-va2r1ab
-vara2c
-var1acé
-va2r1a2d
-var1ajt
-var1akt
-va2r1al
-va2rany
-var1a2nya
-va2r1a2p
-va2r1a2r
-va2r1assz
-va2r1at
-va2r1av
-va2rág
-va2r1ál
-2v1a2rány
-va2r1ászn
-var1áta
-va2r1átf
-va2r1átm
-va2r1á2to
-va2r1á2zá
-varca2
-var2cag
-var2cal
-var2can
-varc1c
-var2c3ho
-va2r1es
-va2r1e2t
-va2rev
-va2rég
-var1ék.
-var1éks
-va2r1é2l
-va2rép
-va2r1éré
-va2rid
-va2r1i2ko
-va2r1ikr
-va2r1ill
-va2rim
-var1inf
-var1ink
-va2r1inv
-va2r1i2p
-var1isk
-var1ism
-va2rí
-var2k1an
-var1k2b
-var1k2j
-var1k2ká
-var1kl
-va2r1okm
-var1old
-va2rop
-va2ror
-va2rön
-va2rő
-vars2
-varsz2
-2vartett.
-var2t1i2n
-var2tor
-vartó2
-var2t1ór
-va2r1ut
-va2r1út
-va2r1ü2
-va2rű
-vas1abl
-va2sag
-va2s1aj
-vas1arc
-vas1asz
-va2s1ábr
-va2s1ál
-va2s1árl
-va2sek
-va2s1e2l
-va2sem
-va2s1e2r
-va2set
-va2s1ék.
-vas1ékk
-va2s1ékn
-vas1ékt
-vasé2r
-va2s1ére
-va2s1érté
-va2s1érv
-vasfélé2v
-va2sid
-va2s1i2na.
-va2s1ing
-va2s1i2s
-va2s1iz
-va2s1ön
-va2ső
-vas3sze
-vas3szi
-vas3sző
-vast2
-vas1tró
-va2sus
-va2s1ü2t
-va2sű
-vasz1e2l
-va2szis
-va2t1a2d
-va2t1aj
-va2tau
-va2t1ál
-va2t1á2ru
-va2t1e2v
-va2t1ék
-va2tél
-va2t1érte
-va2t1é2te
-va2t1id
-va2tim
-vat1inf
-vat1ing
-va2t1is
-va2t1ír
-vatmo1
-vatmosz2
-va2t1okm
-va2t1old
-va2t1ö2v
-vatő2
-va2t1őr
-vatt2
-2vattako
-va2t1ur
-2v1a2uk
-vau2n
-vaza2t1e
-2v1a2zon
-1vá
-váb2baj
-váb2b1as
-váb2b1e2
-váb2b1é
-váb2bil
-váb2bol
-váb2bos
-váb2bő
-váb2bu
-2vábr
-vá2c3h
-vá2cs1a2p
-vá2cse
-vá2cs1ék
-vá2csip
-vá2cs1is
-vá2cső
-vá2csú
-vá2csü
-vács3z
-vá2d1al
-vá2d1a2n
-váde2
-vá2des
-vádé2
-vá2dén
-vá2dik
-vá2d1ir
-vá2d1or
-vá2dö
-vá2dü
-2v1á2gaz
-2v1ágr
-vá2gú
-vá2gyal
-vá2gyan
-vá2gyö
-vá2győ
-vá2k1e
-vá2k1ü
-vá2laj
-vá2l1a2l
-vála2n
-vá2l1any
-vá2l1ap
-vá2lar
-vála2szin
-vá2l1á2r
-vá2l1át
-vá2l1e2
-vá2lél
-vá2lid
-vá2lin
-vá2lir
-vá2lism
-2v1állás
-vál2l1e2
-2v1állom
-2v1álló
-vál2l1ö2
-vá2lú
-vá2lü
-váma2
-vá2m1ad
-vá2m1aj
-vá2m1ak
-vá2m1al
-vá2m1as
-vá2mau
-vá2m1á2
-vám1b2
-vá2m1e2
-vá2m1ér.
-vá2m1érté
-vá2mil
-vá2m1in
-vá2m1ir
-vá2mis
-vá2mí
-vá2m1or
-vá2mö
-vá2mő
-vámu2
-vá2m1ut
-vá2mü
-vá2naj
-vána2n
-ván1any
-vá2n1e
-vá2nis
-váns3s
-vá2n1ú
-vá2nü
-ványa2d
-vá2nyaj
-vá2ny1a2l
-ványa2n
-vá2nyany
-vá2ny1ap
-vá2nyar
-vá2ny1as
-vá2nyau
-vá2nyaz
-vá2ny1e2
-vá2ny1ér.
-vá2nyérd
-vá2nyérr
-vá2nyérv
-vá2nyérz
-vá2ny1ing
-vá2nyis
-vány1í2r
-vá2ny1ó2
-vá2nyö
-vá2po
-vár1a2dato
-vá2radá
-vá2r1a2dó
-vá2r1a2du
-vára2l
-vá2r1ala
-vár1ale
-vá2raml
-vára2n
-vá2r1any
-vá2r1ar
-vá2r1assz
-vá2r1a2sz
-vá2rág
-vá2r1ál
-várd2
-vá2r1e2
-vár1isk
-vár1ism
-vár1ist
-vá2rí
-vár1old
-vá2r1oml
-vá2r1ont
-váro2sz
-vár1oszt
-vá2r1ó2né
-vá2rö
-vá2rő
-várs2
-vár1sp
-vár1sr
-vár2t1es
-vár2t1ér.
-2váru.
-vá2ruh
-vár1u2r
-vár1usz
-vár1ut
-várú2
-vá2rús
-vá2rü
-vá2s1a2d
-vá2sam
-vá2saz
-vásár1a2d
-vá2s1e
-vási2k
-vás1iko
-vá2sis
-vá2sír
-váskész1
-vásó2
-vást2
-vás1tr
-vá2s1ü
-vá2sű
-vá2szan
-vá2s3zav
-vá2sz1e
-vá2szin
-váta2
-vá2t1al
-2v1átd
-2v1á2t1e2r
-2v1átfe
-vá2t1ir
-2v1á2tí
-v1átlé
-2v1átm
-2v1á2t1ö
-2v1átp
-2v1á2tü
-2v1átv
-vá2z1alj
-vá2z1alt
-vá2z1a2tom
-vá2z1a2v
-vá2z1e2
-vázi1s2
-vá2ziz
-vá2zí
-vá2zos
-vá2zö
-vá2ző
-vá2z3sa
-vá2z3sá
-váz3se
-vá2z3sé
-váz3sö
-vá2z3su
-váz3sz
-vá2zü
-vb2lo
-vb2ra
-vcsőé2ne
-vd2rá
-1ve
-vea2g
-vea2l
-vea2n
-vea2r
-veá2l
-2vece
-ve2cet
-ve1cl
-ve2cseg
-2vedény
-ve2gab
-ve2gac
-ve2gar
-ve2g1as
-vega2z
-ve2g1á2
-ve2g1eg
-ve2g1e2kéh
-ve2g1ell
-vege2lőké
-ve2g1elr
-ve2g1e2r
-ve2g1esem
-ve2g1esz
-ve2g1e2tet
-ve2g1ék
-ve2g1él
-ve2g1ép
-veg1éré
-veg1érte
-veg1érv
-vegés3s
-vegé2sz
-vegg2
-veg1gr
-ve2gid
-ve2gik
-ve2gim
-ve2gí
-ve2gol
-ve2gor
-ve2g1ó2
-ve2g1ö2
-ve2g1u
-ve2gú
-ve2gyelem
-ve2gyemb
-ve2gyez
-2v1egyl
-2vegyv
-ve2k1ak
-2v1e2ke.
-2v1e2kei
-2vekéb
-ve2kébő
-2v1e2kék
-2v1e2kés
-ve1klu
-2vela
-2v1e2lef
-2v1e2lemz
-vele2t1e2l
-2v1e2lég
-velés3s
-2v1elf
-v1elgy
-2v1elha
-2v1elhel
-ve2lis
-2v1e2l1í2
-v1eljá
-2v1elm
-ve2los
-2v1e2lőirá
-2v1e2lőí
-2velőkés
-2v1előleg
-2v1elr
-2v1elsa
-2v1elszá
-2v1elszo
-2v1eltá
-2v1elter
-2v1eltér
-2v1elto
-2v1elv.
-2v1elvá
-2v1elvek
-ve2lyö
-ve2lyu
-2v1elz
-2v1embó
-2v1e2mel
-2v1eml
-2v1e2mu
-ve2n1ad
-ve2nau
-ve2n1á
-ve2n1e2g
-ve2n1e2l
-ve2n1esz
-ve2n1é2vi
-ven1f2
-ven1g2
-ven3k2
-ve2n1o
-ve2n1ó2
-ve2nö
-ventü2
-ven2t1ül
-ven1ülé
-ve2nyö
-2v1enz
-veó2r
-ve2ör
-ve2pe
-ve1p2r
-ve2rab
-ve2r1a2c
-ve2r1a2d
-ve2r1a2g
-ve2rajá
-vera2l
-vera2n
-ve2r1a2r
-ve2r1au
-ve2raz
-ve2r1ág
-ve2r1ál
-2verdő
-ver1egy
-ve2r1e2h
-ve2r1e2ke.
-ve2rekl
-ve2r1e2l
-ve2r1eng
-ve2r1er
-ve2r1e2ső
-ve2r1esz
-ve2r1é2l
-ver1g2
-ve2r1iga
-ve2r1ill
-ve2rim
-ve2r1inc
-ve2rind
-ve2r1inf
-ve2r1ing
-ver1inte
-ver1ipa
-ve2ris
-ve2r1ol
-ve2ror
-ve2ró
-ver1ó2r
-ve2rö
-ver1p2
-ver2s1al
-ver2sár
-versé2g
-ver2s1égé
-ver2s1égg
-ver2s1égn
-ver2s1égt
-ver2sir
-ver2s1í2
-ver2só
-vers3s
-ver2s1üt
-vers3zár
-vers3zen
-ver1tra
-ve2rur
-ve2r1ut
-ve2rút
-ve2r1ü2g
-ve2san
-ve2sas
-ve2s1ál
-ve2s1e2kétő
-veset2
-2v1e2sett
-ve2sip
-ve2sis
-ve2s1íz
-ve1ská
-2v1e2ső
-ves3sza
-ves3szer
-vest2
-ve2s1u2
-2v1e2sze.
-2v1e2szekn
-2v1eszm
-2v1e2szű
-veta2l
-ve2tas
-ve2tál
-ve2t1á2r
-vet1egy
-ve2t1e2lől
-ve2tég
-ve2t1é2k
-ve2tid
-2v1e2tika
-v1e2tim
-ve2t1ing
-ve2t1ol
-ve2t1öl
-ve2töv
-vetőé2
-ve2tur
-ve2t1ut
-ve2t1ű2z
-ve2vet
-2v1e2vo
-vezőe2r
-vezőkész1
-vező2sorr
-vezős1s
-2v1ezr
-1vé
-véá2g
-2v1ébr
-vé2dak
-véda2l
-vé2d1as
-vé2dá
-vé2d1emb
-vé2dos
-vé2dóv
-vé2dö
-vé2dú
-vé2dz
-vé1f2r
-véga2
-vé2gab
-vé2gak
-vé2gal
-vé2g1á2
-vé2g1eg
-vé2g1e2le
-vé2g1elg
-vé2g1elh
-vé2g1eli
-vé2g1ell
-vé2g1els
-vé2g1elv
-vég2em
-vége2n
-vé2g1eny
-vé2g1ep
-vé2g1er
-vé2g1esem
-vé2g1e2sete
-vé2geté
-vé2gető
-vé2g1ér.
-vé2g1é2ren
-vé2g1é2ré
-vé2g1érr
-vég1érv
-vég3g
-2véghü
-vé2g1id
-végigaz1
-vé2gim
-vé2giz
-vé2g1í
-végkötés1
-vé2gol
-vé2g1ó2
-vé2gö
-vé2gú
-2v1éh.
-2v1é2he.
-2v1é2hen
-2v1é2hes
-2v1éhs
-vé2kei
-vé2kít
-vé1k2l
-vé1k2ré
-vé1k2ri
-2v1éks
-vé2kük
-vé2l1a2
-vé2láb
-vé2lál
-vé2l1ár
-vé2leg
-vél1ell
-vél1els
-vél1elt
-vél1emb
-vé2l1eme
-vé2l1e2r
-vé2les
-vél1ess
-vél1est
-vé2lev
-vé2lez
-vé2l1é2k
-vé2lin
-vé2lir
-vé2lí
-vé2los
-vé2lői
-vé2lős
-véltá2v
-vé2l1u
-vé2lú
-vé2lű
-véna1p
-2vénekl
-vé2n1emb
-vé2ny1eg
-vénye2l
-vény1ele
-vény1els
-vé2nyid
-vé2nyis
-vé2ny1í
-vé2nyú
-vényü2l
-vé2ny1ülé
-vé2ny1ült
-2v1é2pí
-vé1p2l
-vé1p2r
-2v1é2pü
-vé2ral
-vé2r1a2n
-vé2rap
-vé2rar
-vé2raz
-vé2r1ár
-vé2rát
-vér1d2
-vé2r1e2l
-vér1eml
-véres3s
-vér1eti
-vé2rés
-vér1ész
-vér1éte
-vér1ikr
-vé2rir
-vé2r1o2k
-vé2rot
-vé2róv
-vér1s
-vértes1s
-vér2t1ón.
-vér2töv
-véru2
-vé2rug
-vé2rut
-vé2r1ú
-vérü2kü
-2v1érzet.
-vé2sak
-vé2sal
-vé2seg
-vése2l
-vés1ele
-vés1elt
-vé2s1er
-vé2só
-vé1s2pe
-vés3szer
-vés2táb
-vé2s1ü2v
-vés3zav
-vész1á2r
-vé2szeg
-vész1ell
-vé2sz1ékn
-vé2sz1ő2
-vész3s
-vé2szu
-vészú2
-vész1úr
-vészü2l
-vész1ülé
-vét1est
-2v1év.
-vé3va
-2v1évb
-2vévei
-2v1é2vek
-2v1é2ven
-2v1é2véé
-2v1é2vér
-vé2vi.
-2v1évr
-2v1évt
-2v1é2vü
-vfe2l1em
-vf2ra
-vf2re
-vf2ri
-vf2ro
-vge2o
-vg2ra
-vg2rá
-vhang2a3
-vhez1
-1vi
-vi2aa
-vi2ab
-vi2ac
-vi2aé
-vi2ag
-via2p
-via2szal
-via2sz1ál
-via2sz1árn
-via2sz1em
-viaszé2
-via2szél
-via2szö
-viára2
-viár1ad
-vic2c1a
-2vické
-vi2csag
-vi2csal
-vi2cs1an
-vi2cs1as
-vi2csál
-vi2cs1e2l
-vi2cs1ér.
-vi2csérté
-vicsi2
-vi2csim
-vi2csip
-vi2cs1ö2
-vi2csú
-vics3z
-vi2deg
-vi2d1esz
-2vidéz
-2v1i2dő
-vi2dz
-vi2ew
-2v1i2gaz
-2v1i2gén
-vika2
-vi2k1ag
-vi2k1el
-vi2kon
-vi2l1ék
-villa1s
-villasz2
-2villu
-vi2má
-2v1imm
-vina1t2
-2vind
-vi2n1emb
-vi2n1ó
-vin2tess
-vin2tesz
-2vinté
-vin2tos
-2v1i2on
-2vipa
-vi1p2s
-2v1i2rat.
-2v1i2ratot
-2viratoz.
-2v1i2rod
-visa2
-vi2sal
-vi2s1au
-vi2s1á2g
-vi2ser
-vi2s1ék
-vi2sim
-vi2s1is
-vi2siz
-vi2sö
-vi2szár
-vi2szok
-vit2a
-vi3tad
-vitakész1
-2vital
-vitelő2
-2vitn
-vi2t1ú
-vi2zeg
-vi2z1ell
-viz1é2l
-vi2zin
-vi2zok
-vi2zol
-vi2zom
-viz1os
-vi2zsá
-viz3sz
-vi2zud
-vi2zú
-1ví
-vídi2
-ví2ge
-ví2ny
-vínyenc1
-2v1í2ra
-2v1í2rá
-2v1í2ró
-2vítélet.
-v2í3téletb
-2vítélete
-2v1ívb
-vívókész1
-ví2z1a2
-ví2zá
-ví2zel
-víz1e2le
-víz1elf
-víz1elh
-víz1ell
-víz1eln
-víz1elő
-víz1elp
-víz1els
-víz1elt
-víz1elv
-víze2m
-víz1emb
-víz1eme
-víz1emé
-ví2zék
-ví2zés
-ví2z1ing
-vízi1sk
-ví2z1ist
-ví2z1isz
-ví2zí
-ví2z1o
-ví2z1ó2
-ví2zö
-ví2z1ő2
-ví2z3s2
-ví2zú
-vízü2
-2v1í2zű
-víz3z
-vjára2t1út
-vje2gya
-vje2tel
-vje2tu
-vkia2l
-vkiá2
-vk2li
-vk2ló
-vk2lu
-vk2ri
-vk2rí
-vk2ró
-vla2te
-vleí2
-vleü2
-vme2g1
-vna2p1in
-1vo
-vo2il
-vo2ji
-vo2kí
-2v1okm
-voks3s
-2v1okta
-vola1t
-2v1oldá
-2v1oldó.
-vol2t1a2d
-vome2
-vomec3
-vona2l1e2
-vona2t1e
-vonás1s
-voná2s3z
-vo2od
-vo2pe
-vo2r1a2
-vo2r1in
-2v1orm
-vo2s1as
-vo2s1av
-vo2s1e
-vos3s2
-vo2s1ú
-vo2sü
-vo2uc
-vo2vá
-vo2xi
-1vó
-vóa2k
-vóá2g
-vóá2r
-vócsa2p1á2
-vó1d2re
-vó1f2r
-vó1k2l
-2v1ónn
-vóó2r
-vó1p2l
-vó1p2r
-vó2ran
-vó2rák
-vó2rán
-vó2rát
-vó2s1akk
-vó2s1a2l
-vó2seg
-vó2s1iv
-vó2sol
-vó2s1orr
-vó2só
-vó2sö
-vó2ső
-vó1spi
-vós3s
-vós1tr
-vó1sz2
-vósza2k1
-vó2s3zár
-vó2s3zen
-vóta1t2
-vó1t2r
-vóváros1u
-1vö
-vö2bö
-vö2dém
-2v1ö2ko
-völ2gya
-2v1ö2rök
-2v1ötl
-vö2ve
-vö2vé
-2v1özön
-vözőe3
-vö2zs
-1vő
-vőa2n
-vőá2g
-vőe2l
-vőe2r
-vőé2j
-vőé2n
-vő1fl
-vő1f2r
-vői3dejű
-vő1kl
-vőo2l
-vő1pl
-vő1pr
-v1őrm
-v1ő2rü
-vő1s2p
-vő1sta
-vő1str
-vő1t2r
-vőü2l
-vő2zi
-vp2la
-vp2ra
-vp2re
-vp2ré
-vp2ri
-vp2ro
-vp2ró
-vp2sz
-vs2ká
-vs2ki
-vs2ko
-vs2lá
-vs2pe
-vs2ta
-vs2ti
-vs2tí
-vs2to
-vst2r
-vs2tú
-vsz2p
-v1sz2t
-vta2n1á2s
-vta2n1á2to
-vta2n1ó2
-vtá2raj
-vtá2r1ass
-vtá2ris
-vtáró2
-vtá2r1ór
-vtelés1s
-vt2ra
-vt2ré
-vt2ri
-vt2ro
-1vu
-vu2bo
-vu2mal
-vu2man
-vu2m1e2
-vu2mis
-vu2mö
-2v1u2ni
-vu2ra
-vu2ru
-2v1u2tak
-2v1u2tas
-2v1u2tat
-vu2tá
-v1utc
-v1u2tó
-1vú
-vú1fr
-v1újd
-v1ú2jí
-v1újs
-vú2r1ad
-vú2re
-vúré2
-vú2rén
-vú2rö
-vú2szó
-v1útn
-1vü
-vü2gy
-vü2kü
-vü2lá
-2v1üld
-2v1ünn
-vü1pr
-vü2rí
-vü1st
-vü1sz2
-vü2te
-vü2té
-vü2zé
-1vű
-2v1űrl
-vű2ző
-vvágy1ób
-vverés3s
-vzá2r1ó2ra
-2w.
-1wa
-wa2ii
-wa2le
-war2d1i
-wa2re
-wa1s2h
-wa1ye
-wa1yé
-1wá
-1we
-we2b1a2
-we2b1á2
-we2b1ele
-we2b1é
-we2bir
-we2b1o
-we2b1ú
-we2bü
-we2ed
-we2ek
-we2ig
-we2is
-we2le
-we2ör
-1wé
-whi2t
-1wi
-wi2ch
-wi2cz
-1wí
-1wo
-wo2od
-1wó
-1wö
-1wő
-wri2t
-wsto2
-1wu
-1wú
-1wü
-1wű
-wyo2m1
-2x.
-1xa
-x1a2da
-xa2dá
-xaé2d
-xa1fl
-xa1k2l
-2x1akt
-2x1a2la
-2x1alg
-2x1alj
-2x1alk
-xa2na
-x1a2ny
-x1a2rá
-xa2ri
-xa2vi
-1xá
-2x1ábr
-xá2gy
-2x1áll
-xá2rak
-2x1á2ram
-xá2ras
-2x1á2ro
-2x1árr
-2x1á2ru
-2x1átj
-2x1átr
-2x1átv
-xba2l1
-xb2la
-xb2lo
-xb2ra
-xd2ró
-1xe
-x1e2gy
-2x1e2ke.
-xe2l1a
-xe2l1á
-2x1e2lekt
-xe2lel
-xe2l1emb
-2x1e2lemr
-xe2l1esz
-xe2l1in
-xe2l1o
-2x1emel
-2x1eml
-2x1e2rő
-2x1e2sé
-2x1e2zü
-1xé
-2x1éhs
-xé2pí
-2x1ér.
-2x1érte
-2x1érté
-2x1értő
-2x1érz
-2xévei
-xf2re
-xha2u
-1xi
-xia2n
-xi2av
-xi2d1a2l
-2xidá
-xi2dás
-2xi2de
-2xidé
-2xidgá
-xi2d1i2
-2xidjá
-2xidjé
-2xidl
-2xidm
-xi2dol
-xi2dö
-2xi2dő
-xid1őz
-xi1d2ro
-2xidró
-2xids
-2xidu
-2xidv
-2xi2dz
-xi2el
-2x1i2ga
-xigén1n
-2xilc
-2x1ill
-xina2
-xi2n1an
-2x1ind
-xine2
-xi2n1et
-xi2n1i2
-xi2nö
-xi2on
-xi2óc
-xi2óe
-xi2óg
-xi2ómé
-xi2óo
-xi2óö
-xi2óp
-xió2rá
-2x1i2rá
-2x1i2ro
-xi2sad
-xi2sal
-xise2
-xi2s1el
-xi2s1es
-xi1s2ká
-xis1p
-xis3s
-xi2s1ü
-xi2t1e2g
-xi2t1e2r
-xi2t1é
-xi2t1i2
-xi2t1ü2
-1xí
-xí2ja
-xí2já
-xí2jo
-xí2ju
-x1í2rá
-xí2ró
-2x1ívn
-2x1í2vü
-2x1ívv
-1xo
-2x1old
-xo2n1ai
-xo2n1al
-xo2n1e
-xo2pe
-xo1p2l
-2x1osz
-1xó
-1xö
-xö2dé
-xö2rö
-xö2zö
-1xő
-xő2sé
-xp2la
-xpor2t1a2
-xpor2t1á2r
-xpor2t1e2
-xpor2t1érd
-xpor2t1ü2
-xp2ri
-x1p2ro
-x1p2ró
-xs2ká
-xs2pe
-xs2ta
-xst2r
-x2t1e2d
-xti2la
-xti2lá
-xti2leg
-xti2lin
-xti2lis
-xti2l1o
-xt1ört
-1xu
-xu2sad
-xu2sal
-xu2s1a2n
-xu2s1e
-xu2s1érté
-xusi2
-xu2sil
-xu2sim
-xu2sin
-xu2sit
-xu2s1ol
-xu2s1ó2
-xu2s1ö2
-xus3s
-xust2
-xus1tr
-xu2sus
-xusú2
-xu2s1út
-xu2sü
-xu2s1ű
-xu2s3z
-xu2ta
-1xú
-1xü
-xü2lé
-xü2ve
-xü2ze
-1xű
-2y.
-yaa2d
-y1abla
-y1a2bon
-y1abra
-ya1bri
-y1abs
-ya2cél.
-ya2dako
-ya2dalé
-y1adap
-y1a2data
-y1a2datb
-ya2dati
-y1a2dato
-ya2datu
-yadé2ki
-ya2d1és
-ya2dév
-y1admi
-ya2dóan
-ya2dóbó
-ya2dóé
-y1a2dói
-y1a2dój
-ya2dóké
-ya2dókt
-y1a2dóm
-ya2dóná
-y1a2dór
-y1a2dós
-y1a2dóu
-yae2r
-ya2ero
-yae2t
-yaé2r
-y1aff
-ya1f2r
-ya2g1a2d
-ya2g1ag
-ya2g1am
-ya2gan
-y1aganc
-ya2g1a2s
-ya2g1atl
-ya2g1ato
-ya2gau
-yaga2z
-yag1azo
-ya2g1áll
-yag1árá
-yag1árb
-yag1á2ré
-yag1árh
-yag1ári
-yag1árj
-yag1árk
-yag1á2ro
-yag1árra.
-yag1árs
-yag1árt
-ya2gás
-yag1át1a2
-ya2g1átf
-ya2g1átl
-ya2g1átr
-yag1d2
-ya2gec
-ya2g1el
-ya2g1es
-ya2g1é2g
-ya2gék
-y1aggr
-yag3gyú
-ya2gid
-ya2gim
-ya2g1io
-yag1isz
-ya2giz
-ya2gí
-ya2g1osz
-ya2g1ó2r
-ya2gő
-yag1s
-ya2gur
-ya2g1ut
-y1agy.
-y1a2gyat
-y1agyb
-y1agyf
-y1agyk
-y1a2gyon
-y1agyr
-y1a2jak
-y1a2ján
-y1ajk
-y1ajt
-y1akadá
-ya2k1áll
-ya2k1átk
-ya2k1átm
-yak1elm
-yak1elt
-yak1ékn
-ya2k1ér.
-ya2k1éri
-yak1i2zo
-ya1klu
-y1akna.
-y1aknák
-ya1kné
-y1a2kol.
-ya2k1ola
-ya2k1old
-ya2k1ón
-y1a2kós
-ya2k1örv
-ya1k2rém
-ya1kri
-ya1krí
-y1akt.
-y1akták
-y1aktb
-y1aktiv
-y1aktj
-y1aktot
-y1aktu
-yala2g1ú
-ya2l1agy
-yal1ajk
-ya2lakb
-y1a2lakj
-y1a2lakk
-y1a2lakok
-y1a2lakom
-y1a2lakot
-ya2lakt
-ya2laku
-y1alakz
-ya2l1a2l
-y1alany
-ya2lapa
-y1a2lapí
-ya2lapjá
-y1a2lapú
-yala2te
-yal1ága
-ya2l1ál
-yalás1s
-y1aláté
-ya2l1é2ne
-ya2lif
-yal1i2ko
-ya2l1inv
-y1aljai
-y1alji
-ya2lor
-yalókész1
-ya2l1órá
-ya2l1ő2
-y2alta
-yal1t2r
-y1altú
-ya2lü
-ya2lű
-y1amalg
-ya2m1any
-yam1a2rár
-yama2tal
-ya2m1árb
-ya2m1árn
-yamászás1
-ya2m1á2to
-yam1b2
-yam1emb
-yam1esés
-yami2k
-ya2m1iko
-ya2mind
-ya2m1i2o
-ya2m1is
-ya2m1osz
-ya2m1ó2r
-ya2mö
-ya2mő
-ya2mü
-y1a2nal
-ya2nan
-ya2nar
-yan1arr
-ya2nat
-yan1att
-ya2n3e.
-ya2n1e2g
-ya2nek
-ya2ner
-ya2n1et
-ya2nez
-y1a2ném
-y1ang
-ya2nid
-ya2n1in
-ya2n1is
-ya2nit
-y1a2niz
-y1anny
-yano2d
-yan1oda
-yan1onn
-ya2nő.
-ya2nyas
-y1anyj
-y1a2nyó
-y1a2nyuk
-yaó2r
-y1a2pa.
-y1a2pai
-y1a2pas
-y1a2páb
-y1a2pád
-y1a2páé
-y1a2pái
-y1a2pák
-y1a2pám
-y1a2pára
-y1a2páró
-y1a2pát.
-y1a2páto
-y1a2pátó
-y1a2páv
-y1a2pi.
-y1apjáh
-y1apjái
-y1apju
-ya1p2l
-ya2post
-yapo2tá
-y1a2pó.
-y1a2póé
-y1a2póh
-y1a2pói
-y1a2pój
-ya2póké
-ya2póna
-y1a2pós
-ya2pót.
-ya2pótó
-y1a2póv
-y1app
-ya1pre
-ya1p2ri
-y1aprí
-ya1pro
-ya2r1a2dá
-ya2r1a2dó
-ya2r1a2du
-ya2rasz
-ya2ránn
-y1a2rány
-ya2r1átv
-y1arc.
-y1arca
-y1arcá
-y1arcb
-y1arcc
-y1arch
-y1arck
-y1arcn
-y1arco
-y1arcr
-y1arcu
-y1arcú
-1yard.
-1yardn
-3yardom
-1yardos
-yar1drá
-yar1ell
-ya2roma
-ya2ror
-yar1ó2rá
-yar1óvá
-ya2róz
-yar1s2
-yas1alj
-ya2sap
-ya2s1as
-yaság1g
-ya1sl
-ya1sne
-ya1s2pi
-ya1s2po
-ya1s2rá
-yast2
-ya1s2ta
-ya1sto
-ya1str
-ya1svi
-yasz2tár
-y1a2tád
-yatékát1a2
-y1atka.
-y1atká
-ya2tomh
-y1a2tomm
-y1a2tomo
-yat2rág
-ya1tré
-ya1tróf
-y1attr
-y1a2ty
-y1a2uk
-y1a2ulá
-yau2tá
-y1a2uto
-y1autó
-yautói2ko
-yaü2t
-yaü2z
-y1a2vat
-y1a2zon
-y1a2zúr
-y1á2bé
-y1ábr
-yá2ga
-yá2gá
-yá2gé
-yá2gi
-yá2go
-yá2gu
-yá2gú
-yá2gy
-yá2jal
-yá2j1e
-yá2j1ö
-yá2jő
-yáka2
-yá2k1an
-yá2k1á
-yá2k1e
-yá2kü
-yálas3s
-yá2lál
-y1áldo
-yá2l1e
-y1állam
-y1állat
-y1állás
-y1állí
-y1állo
-y1álló
-y1állv
-yá2lü
-yáma2
-yá2m1al
-yá2m1an
-yá2m1ap
-yá2m1as
-yámi2
-yá2m1in
-yá2mü
-yá2n1e
-yá2nék
-yán3n
-yá2nö
-yánt2
-yán1tr
-yá2nü
-yá1ny2
-y1á2po
-yá2r1a2l
-y1á2raml
-y1á2ramo
-yára2n
-yár1any
-yá2rap
-yá2rar
-yá2r1ass
-yá2r1av
-yá2raz
-y1árazá
-yár1azo
-yá2r1ál
-y1árbev
-yár1d2
-yá2r1e2
-y1árem
-yá2réj
-y1á2riá
-yá2rim
-yá2r1is
-y1árnya
-yáró2
-yá2rór
-yá2rö
-yá2rő
-y1árpá
-yár2sé
-y2árt.
-y1ártám
-yár1tr
-y1á2ruh
-y1árur
-yá2rú2
-y1árú.
-yá2rü
-y1árva
-y1árver
-yá2sal
-yá2sas
-yá2s1á2g
-yá2s1á2rá
-yá2s1árt
-y1á2sás
-yá2se
-yáská2
-y1á2só
-yá2sö
-yá2szab
-yá2szag
-yá2szal
-yá2szas
-yá2sz1ál
-yá2sze
-yász1el
-yász1em
-yás3zen
-yá2szét
-yá2szév
-yá2szim
-yá2szin
-yá2szis
-yá2szit
-yász1ó2d
-yász1ó2r
-yá2sz1ö2
-yá2sző
-yá2sz1ü2
-y1á2ta
-yát1a2l
-y1á2tá
-y1átb
-y1á2t1e2
-y1á2té
-y1átf
-y1áth
-y1á2t1i2
-y1átk
-y1átlag
-y1átlá
-y1átlé
-y1átm
-y1átn
-y1á2t1ö
-y1átp
-y1átr
-y1áts
-y1átt
-y1á2tü
-y1átv
-ybeá2
-yb2la
-yb2le
-yb2lé
-yb2li
-yb2lo
-yb2lú
-yb2ra
-yb2ri
-yb2ro
-yb2ró
-ycsa2p1á2g
-ycsőé2
-yc2vi
-yd2be
-y2desd
-yd2ni
-y1d2ra
-y1d2rá
-yd2ro
-yd2ró
-y1d2ru
-yea2v
-yeá2r
-ye1bl
-y1ecset
-ye2d1á
-ye2deg
-ye2d1esz
-ye2dol
-ye2d1ó2
-ye2d1u2
-ye2d1ú
-ye2d1ü2lő
-yed2vér
-yee2s
-y1eff
-yega2
-ye2g1ala
-ye2gan
-ye2g1az
-ye2g1á2
-ye2g1el
-yeg1e2red
-ye2g1él
-yeg1érbe
-y1egérr
-yegész1
-yeg1észn
-yeg3g2
-ye2gid
-ye2gí
-ye2gú
-ye2g1üg
-ye2gyed
-y1e2gyen
-y1e2gyes
-ye2gyet
-ye2gyez
-y1e2gyé
-y1egyh
-y1egyl
-y1egys
-y1együ
-y1egyv
-yei2g
-y1ejt
-y1e2ke.
-y1e2kei
-y1e2kek
-y1e2kéé
-ye2kéj
-y1e2kés.
-y1e2kése
-ye1k2ré
-y1elad
-y1e2lág
-ye2lál
-y1elc
-y1e2lef
-ye2lege
-ye2l1e2h
-ye2lemek
-y1e2lemez
-y1e2lemű
-y1e2l1e2re
-ye2légt
-ye2l1é2ké
-ye2l1ér.
-yelés3s
-yelé2s3z
-y1elhal
-y1elhel
-y1elhú
-y1e2l1in
-ye2liv
-y1e2l1í2
-y1eljá
-y1elka
-y1elnev
-y1elnö
-y1elny
-ye2los
-y1e2lö
-y1e2lőad
-y1e2lőí
-ye2lőtt
-y1e2lőz
-y1elsa
-y1első
-y1eltér
-y1elto
-y1eltö
-yel2vad
-yel2v1áll
-yel2vás
-yel2v1eg
-yel2v1e2r
-yel2vessz
-yelve2sz
-yelv1esze
-y1elvevé
-yel2véd
-yel2v1ég
-yel2vél
-yel2v1érz
-yel2v1í
-yel2vol
-ye2mak
-ye2m1a2l
-ye2map
-yema2r
-ye2m1at
-ye2mál
-y1ember
-y1e2melé
-y1emelk
-ye2m1er
-y1e2més
-yemi2
-yem1ing
-ye2m1is
-ye2mit
-yem1ita
-ye2miz
-y1emlék
-y1emlí
-y1emlő
-yem1ost
-ye2m1ö
-yem1p2
-yemu2s
-yem1usz
-ye2n1á2
-yen2csa
-yen2c3ser
-ye2n1elj
-ye2n1eln
-ye2n1elv
-y1e2ner
-yenes3s
-ye2n1é2l
-yenfé2l1é2v
-ye2nid
-ye2n1i2p
-yen1k2
-ye2n1o
-ye2n1üg
-yenyá2
-y1enz
-ye2pag
-yep1alo
-ye2p1ará
-ye2p1áll
-ye2pát
-ye2p1e2l
-ye2p1é2k
-y1e2pik
-y1epiz
-ye2pos
-yep2p1e2r
-ye1pro
-yep1t2
-y1erde
-yere2ga
-yere2gete
-yereg1g
-y1e2rej
-yere2k1a
-yere2ká
-yere2k1e2sz
-yere2ko
-yere2k1ö2
-y1e2rény
-y1erké
-y1erkö
-y1erny
-y1e2ro
-ye2rőér
-ye2rőig
-ye2rőné
-ye2rőrő
-ye2rősí
-ye2rőss
-ye2rővá
-yer2s1a
-y1erszé
-ye2sá
-yes1egé
-yes1egy
-ye2s1ej
-yes1e2kétő
-y1esemén
-ye2s1er
-y1e2setb
-y1e2seté
-y1e2seti
-y1e2setk
-y1e2setr
-y1e2setű
-y1esél
-ye2sip
-ye2s1í2r
-y1esőá
-ye2sőbe
-y1e2sőh
-ye2sője
-ye2sők.
-ye2sőkh
-ye2sőkr
-y1e2sőn
-y1e2sőr
-y1e2sős
-ye2sővé
-ye1s2pe
-yes2t1a2
-y1estés
-y1estév
-y1estjü
-yes2tőr
-y1estű
-y1eszk
-y1eszm
-y1esztét
-y1e2szű
-y1e2tal
-yeteg1ér.
-y1e2tet
-ye2t1ért
-y1e2tik
-y1etn
-y1e2tűd
-ye2vet
-ye2vező
-y1e2vé
-y1e2vol
-y1e2vő
-y1e2zer
-yeze2t1ék
-yezőa2
-yé2b1á
-yé2b1ér.
-yé2b1i2
-yé2bü
-yé2des
-y1égb
-y1é2ge
-y1é2gé
-y1é2gi
-y1é2gő
-y1égt
-y1é2he.
-y1é2hen
-y1é2hes
-y1é2het
-y1éhs
-y1éj.
-y1éjb
-yé2jei
-yé2jen
-yé2jért
-y1é2ji
-y1éjj
-y1éjs
-y1éjt
-yé2kab
-yé2kad
-yé2k1aka
-yé2k1a2l
-y1é2kat
-yé2k1el
-yé2ker
-yé2k1é2k
-yé2k1é2l
-yé2k1ér.
-yé2kik
-yé2k1ó2
-yé2k1ö
-yé2kő
-yé2kúr
-yé2l1á
-yé2le.
-yé2les
-y1é2let
-y1é2lén
-yé2lét
-yé2lim
-yél3l
-yé2lős
-y1élsp
-y1é2lű
-yéná2
-yé2n1ár
-yén1e2ke.
-yé2nel
-yé2n1ikr
-yé2no
-yé2pí
-yé2pü
-yéra2
-yé2r1aj
-yé2r1ak
-yé2ral
-yé2r1an
-yé2rar
-yé2r1á2
-y1érch
-yér1d2
-y1érdek
-yé2reg
-yé2r1e2l
-yé2rem
-y1érem.
-yér1eme
-yé2r1enc
-yér1eső
-y1é2ret
-yé2rev
-y1é2rez
-y1é2rés
-yé2ril
-y1é2rin
-y1érmü
-yé2r1osz
-yéró2
-yé2r1ór
-y1é2rő.
-y1é2rői
-y1é2rők
-y1é2rőt
-y1érpa
-y1érték
-yéru2
-yé2rut
-y1érv.
-y1érvén
-y1érvv
-y1érzet
-y1érzé
-y1érző
-yé2sz1á
-yé2sz1emb
-yé2sz1o
-yé2sz1ú
-yé2t1a
-y1é2tel
-y1é2ter
-yé2tén
-y1étke
-y1étl
-y1év.
-y1évad
-y1évb
-y1é2ve.
-y1é2vek
-y1é2vem
-y1é2ven
-y1é2ves
-y1é2vet
-y1évez
-y1é2véb
-y1é2vén
-y1é2vér
-y1é2vét
-y1é2vév
-y1évf
-y1évh
-y1é2vi
-y1évk
-y1évm
-y1évn
-y1évr
-y1évs
-y1évt
-y1é2vü
-y1é2vű
-y1évv
-yfas2
-yfé2lá
-yf1gl
-yf2la
-yf2le
-yf2li
-yf2lo
-yf2ló
-y2föl.
-yf1ő2sö
-y1f2ra
-yf2ri
-yf2rí
-y1f2ro
-yf2rö
-yg2le
-yg2ló
-ygó1g2
-ygót2
-yg2ra
-yg2rá
-yg2ri
-yg2ró
-yg2ru
-yg2rü
-y2h1a2dó
-yha1p2
-yha1t2r
-yhá2zal
-y2h1elv
-y1i2bo
-y1i2deá
-y1i2deg
-y1i2den
-y1i2deo
-y1i2dé
-y1i2dom
-y1i2dő
-y1i2ga
-y1i2gá
-y1i2géz
-y1igm
-y1i2har
-yi2hat
-y1ihl
-y1i2ker
-yi2k1érn
-yi2kont
-yi1k2ri
-y1i2ma.
-y1i2má
-y1i2mit
-y1imp
-y1i2nas
-y1inc
-y1ind
-y1inf
-y1inga
-yi2nic
-y1inj
-y1ins
-y1inv
-yi2ono
-yi2par
-y1i2ram
-y1i2rat.
-y1i2rata
-yira2t1é
-y1i2ratn
-y1i2rato
-yi2ratt
-y1i2rá
-y1i2ri
-y1i2rod
-y1irr
-y1irt
-y1ish
-y1isko
-y1ism
-y1isp
-y1ist
-y1i2sza
-yi2szel
-yi2szon
-y1i2tal
-y1i2tat
-y1i2var
-y1i2vás
-y1i2vó
-y1i2zé
-y1izg
-y1izm
-yi2zom
-yí2gé
-yí2ja
-yí2já
-yí2ju
-yí2ka
-yí2ká
-yí2ke
-yí2kí
-yí2kol
-yí2k1ö
-yí2la
-yí2l1e2
-yí2lí
-yí2lö
-yí2ral
-yí2ráb
-yír1á2sz
-yí2rog
-yí2rő
-yítőa2
-yí2vá
-yí2ve
-yí2vé
-yí2vó
-yí2vü
-yí2vű
-yí2zü
-yí2zű
-yje2gy1á2
-y2jév
-yjob2b1o
-ykai2
-yka1k2
-yka2ró2ra
-yk2bó
-y2k1e2lem
-yk1é2jév
-yké2p1el
-yk2ho
-ykiá2
-ykie2
-yk1izm
-yk2ka
-yk2la
-yk2le
-yk2li
-yk2lí
-yk2ló
-yk2lu
-yk2ná
-ykóro2
-yk2ra
-y1k2rá
-y1k2ri
-yk2rí
-yk2ro
-yk2ró
-yk2vó
-ylal2ta
-yla2t1a2n
-yla2t1é2t
-ylei2
-yleí2
-yle2tal
-yle2tá
-ylóá2
-ylót2
-yma1d2
-y2mat.
-ymá2s1ik
-yme2g1é
-ym2ma
-yné2vér
-yn2ka
-ynk2r
-ynőé2n
-ynő2ié
-yo2be
-y1obj
-y1o2dú
-yo2gal
-yo2gál
-yo2g1ár
-yo2ge
-yog3g
-yogi2
-yo2git
-yo2g1iv
-yo2gí
-yo2g1osz
-yo2gö
-yo2gü
-yo2gű
-yoka2
-y1o2k1al
-y1o2ká
-y1o2k1ir
-y1okm
-y1o2kol
-y1o2kos
-y1o2koz
-y1okta
-yo2l1a2l
-yola2n
-yol1any
-yo2l1ári
-yol2cem
-yolci2
-yol2cik
-y1oldá
-y1oldó
-y1o2lim
-y1oltás
-yol2ter
-yo2lú
-yo2lü
-yolví2
-yo2m1a2l
-yoma2n
-yo2m1any
-yoma2s
-yo2m1aszó
-yo2maz
-yo2m1ál
-yo2m1árk
-yo2m1á2to
-yo2m1á2z
-yo2m1e
-yo2m1ik
-yo2mil
-yo2m1is
-yo2mí
-yo2m1ol
-yo2mö
-yo2mő
-yom1p2
-yo2n1a2d
-yo2nag
-yo2naj
-yon1a2ka
-yo2n1a2l
-yo2n1am
-yo2n1a2n
-yo2nap
-yo2n1a2r
-yo2n1a2s
-yo2n1a2t
-yo2n1au
-yo2n1ál
-yo2n1át1a2
-yo2n1áté
-yo2n1átj
-yon1átk
-yo2n1átr
-yo2n1áts
-yo2n1átv
-yo2n1á2z
-yon1d2
-yo2n1e2
-yo2néd
-yo2néh
-yo2nék
-yo2nén
-yon1f2
-yo2nim
-yo2n1is
-yon1itt
-yo2niz
-yo2ní
-yon1k2
-yon3n
-yo2n1ol
-yo2nop
-yo2n1osz
-yo2nö
-yo2n1ő2
-yon1s2
-yont2
-yon1tr
-yo2n1ü
-y1o2pe
-y1opt
-yo2rad
-yo2r1a2k
-yo2r1a2p
-y1ord
-y1orgi
-y1orrú
-yor2sol
-y1orsó
-yors3s
-yo2se
-yos3s
-y1osto
-y1oszl
-yos3zs
-y1oszt
-yo2ut
-yo2ve
-yo2xi
-yóá2g
-yóá2r
-yócsa2p1á2
-yó2dák
-y1ó2dár
-y1ó2dásak
-yó1f2l
-yó1g2r
-yó2gyár
-yó2gyi
-yó2gyú
-yóí2v
-yóo2k
-yóó2r
-yó1p2r
-y1ó2rac
-y1ó2rad
-yó2rag
-yó2rai
-y1ó2ras
-y1ó2ráb
-y1ó2rád
-y1ó2ráé
-y1ó2ráh
-y1ó2rái
-y1ó2ráj
-y1ó2rák
-y1ó2rám
-y1ó2rár
-y1ó2rás
-y1ó2rát
-y1ó2ráv
-y1ó2ri
-yó2s1aj
-yóscsa2
-yó2sír
-yó2s1ol
-yó2s1orr
-yós1ors
-yós3s
-yósü2l
-yó2s1ű2
-yö2bö
-yö2bű
-yö2cs
-yö2dém
-yö2ka
-yö2ká
-yö2kel
-yö2k1ék
-yö2kid
-yö2kí
-yö2ko
-yök1os
-yö2kó
-yö2kör
-yö2k1öss
-yö2ku
-yö2lők
-y1öltés
-y1öml
-y1ö2ná
-yön2gya
-yön2gyá
-yön2gyó
-yön2gy1öl
-y1önk
-y1önté
-y1önz
-yö2ra
-y1örd
-yö2rit
-yö2ro
-yö2ru
-yö2so
-y1össz
-y1ösv
-y1öszt
-y1ötl
-y1ö2töd.
-y1ö2töde
-y1ö2tödé
-y1ötp
-y1ött
-y1ötv
-yö2ve
-yö2vé
-yö2vi
-y1ö2vö
-y1ö2zön
-yőa2n
-yő1bl
-yőe2l
-yőe2r
-yő1fr
-yő1pr
-yő2ra
-y1ő2rei
-y1őrg
-y1őrl
-y1őrp
-y1őrszi
-y1ő2rül
-y1őrz
-yő2seg
-yő1str
-yősz2
-yő2s3zár.
-yős3zs
-yő1szt
-yőzőkész1
-ypen1n
-ype2te
-yp2la
-yp2le
-yp2lé
-yp2lu
-yponté2
-yp2ra
-yp2re
-yp2ré
-yp2ri
-yp2rí
-yp2ro
-yp2ró
-y2prő
-yp2ru
-yp2sz
-yrádi2ón
-yrágás1
-yrea2
-yren2d1ő2
-yreu2
-ysa2van
-yság1g
-ys2ch
-ysé2g1e2l
-ysé2gés
-ys2ho
-ys2ka
-ys2ká
-ys2ki
-ys2la
-ys2lá
-ys2le
-ys2lu
-ys2mi
-ys2na
-ys2ni
-ys2pe
-ys2pi
-ys2po
-ys2pó
-ysp2r
-ys2ra
-ys2rá
-ys2rő
-ys2sa
-ys2sá
-ys2se
-y1s2tí
-y1s2to
-y1s2tó
-y1st2r
-y1s2tu
-y1s2tú
-ys2tü
-ysza2k1ü
-y2szaló
-y2száld
-yszáraz1
-ysze2ra
-yszer2v1ó2
-y1sz2f
-y1sz2k
-y1sz2l
-y1sz2m
-yszö2g1el
-y1sz2p
-y1sz2t
-y1sz2v
-yta2c
-yt1acé
-yta2n1é
-yta2n1ó2
-ytá2l1é2
-y2t1állá
-y2t1álló
-yt2raf
-yt2ran
-yt2rap
-y1t2rá
-y1t2re
-y1t2ré
-y1t2ri
-y1t2ro
-yt2rón
-yt2rö
-y1udv
-yu2g1á
-yu2ge
-y1ugr
-yu2gy
-yu2hu
-y1ujj
-yuj2j1a2da
-yu2kab
-yu2kar
-yu2k1aszá
-yu2k1ác
-yu2kál
-yuká2s
-yuk1ásá
-yu2k1e
-yu2k1ö
-yu2kő
-yuk1t2
-yu2kű
-y1und
-y1u2ni
-y1u2no
-yu2rad
-yu2rai
-yu2rak
-yu2ral
-yu2ram
-yu2ras
-yu2rat
-y1u2rán
-y1u2ráv
-y1urn
-y1u2ru
-yu2sál
-yus3s
-yu2szá
-y1u2szo
-yu2tak
-yu2tal
-yu2tam
-yu2tat
-yu2taz
-yu2tál
-y1utc
-yu2tód
-y1u2tu
-y1u2tú
-yú1bl
-yú1br
-yú1gr
-y1újd
-y1ú2jé
-y1ú2jí
-y1újr
-y1újs
-yú2kel
-yú2k1es
-yú2ket
-yú2kev
-yú2kó
-yú2köl
-yú2l1ag
-yú2laj
-yú2lar
-yú2l1á2r
-yú2lát
-yú2l1eg
-yú2l1el
-yú2l1e2t
-yú2lin
-yú2l1is
-yúl2tag
-yú2lü
-yú2lű
-yú1pl
-yú1p2r
-y1úrb
-y1ú2ré.
-y1úrél
-y1ú2rév
-y1úrho
-y1ú2ri
-y1úrk
-y1úrnő
-y1úrr
-y1úrtó
-yú1sta
-yú2sü
-y1úszt
-y1útb
-yú2té.
-y1úth
-yúti2
-yú2ti.
-yú2tig
-y1útj
-y1útk
-y1útm
-y1útn
-y1ú2ton
-y1útp
-y1útr
-y1úts
-y1útt
-y1útv
-yü2dü
-y1ü2gy
-yü2két
-yü2lá
-yü2led
-y1ülteté
-y1ünn
-yü2rí
-y1ü2rü
-y1ü2te
-y1ü2té
-y1ütk
-y1ü2tő
-y1ü2veg
-yü2völ
-y1ü2ze
-y1ü2zé
-y1üzl
-yű1bl
-yűé2n
-yű2g1ő
-yű1kl
-yű1pl
-y1űrb
-y1ű2ré.
-yű2réb
-yű2rén
-yű2rön
-y1űrr
-yű2sá
-yű2s1orra.
-yűs1s
-y1ű2zőb
-y1ű2zően
-y1ű2zőé
-y1ű2zőh
-y1ű2zők
-y1ű2zőn
-y1ű2zőr
-y1ű2zőt
-y1ű2zőv
-y2v1abr
-y2v1a2dó
-yva2d3z
-yvai2
-y2v1akc
-y2v1alb
-y2v1alk
-y2v1ank
-y2v1ant
-yv1a2nya
-y2v1apo
-y2v1arz
-yva2s1u2
-y2v1atk
-y2v1au
-y2v1azo
-yv1ábr
-yv1állo
-yv1állv
-yv1á2rai
-yv1á2rán
-y2v1áre
-y2v1árj
-y2v1árl
-yvárosi2b
-yv1árre
-y2v1á2ru
-y2v1árv
-y2v1áta
-y2v1áti
-y2v1átt
-yv1br
-yv1dr
-yv1e2gye
-yv1egys
-yv1e2kéb
-yv1ela
-y2v1e2lá
-y2v1ell
-y2v1elo
-y2v1elti
-y2v1ember
-yven3n
-y2v1e2p
-yve2r1a
-yve2r1á2
-yve2reg
-yve2r1ész
-yve2rip
-yve2r1o
-yvert2
-y2v1esszé
-y2v1eva
-y2v1e2vé
-yv1e2vő.
-y2v1ex
-yvezé2rel
-yvé2du
-yv1ékí
-yv1é2let
-y2v1élm
-y2v1élt
-y2v1ép
-y2v1érd
-y2v1é2ri
-y2v1érrő
-y2v1érté
-y2v1é2rü
-y2v1érze
-y2v1é2ve.
-yv1fr
-yv1gr
-yvigaz1
-y2v1igé
-y2v1i2k
-y2v1ille
-y2v1im
-yv1ind
-y2vint
-y2v1i2p
-y2v1ism
-y2v1ist
-y2v1íg
-y2v1ín
-yví2zis
-yví2zü
-yv1kl
-yv1kr
-y2v1old
-y2v1olv
-y2v1or
-y2v1os
-yv1ó2r
-yv1öss
-y2v1ö2z
-yv1őr
-yv1pr
-yv1sk
-yv1sl
-yv1st
-yv1sz2
-yv1tr
-y2v1ub
-y2v1ud
-y2v1ur
-y2v1u2t
-yv1új
-yv1út
-y2v1üg
-y2v1ü2z
-yza2t1a2l
-yza2t1e
-yza2t1érd
-yzá2r1ó2ra
-yzás3s
-yze2t1a2
-yze2t1á
-yze2t1ér.
-yze2t1é2rő.
-yze2tés
-yze2téte
-yze2t1o
-yze2t1öl
-yzé2k1e2l
-yzőa2
-yz2rí
-2z.
-1za
-3zaba.
-zab2b1i2ko
-za2b1i2ga
-za1bre
-za1bri
-z1abro
-2zabs
-za2ce
-za2c1ég
-za2cho
-zac1ikr
-za2c1im
-za2cipa
-za2c1iv
-za2cí
-zac1k2
-zac3st
-za2dad
-2zadag
-zad1alj
-za2dan
-za2data
-2z1a2dato
-z1a2datr
-zadás1s
-zadi2a
-za2d1ír
-za2dóme
-za2dóz
-za1d2rá
-za2d1ut
-za2dzá
-za1fl
-za1f2r
-za2g1a2d
-za2gak
-za2ga2n
-zag1any
-za2gara
-za2g1a2t
-za2gau
-za2gág
-za2g1ál
-zag1árn
-zag1árt
-za2g1áz
-za2gel
-za2gés
-z1aggy
-2zagi
-za2gin
-z1a2git
-za2g1osz
-zagren2
-za2g1ü
-z1agy.
-z1a2gyak
-z1a2gyar
-z1agyb
-za2ijá
-zai2z
-3zaj.
-3zaja.
-za2j1a2d
-za2jan
-za2j1átv
-3zajáv
-za2jes
-3zajf
-za2jin
-3zajj
-zajká2rok
-3zajol
-za2j1or
-2zajta
-2zajtó.
-z1ajtók
-2zajtót
-zaj1tr
-3zajú
-za2j1ü2
-2zakad
-za2k1a2dat.
-zakai2ko
-za2k1aka
-zak1alk
-za2k1alv
-za2kana
-za2k1ant
-za2kara
-z1akarat
-z1a2karás
-z1a2karó
-z1akarv
-za2k1atl
-za2k1á2p
-za2k1áta
-za2k1átl
-2zakc
-z1akció
-za2k1e2g
-za2k1ele
-za2kelm
-za2k1eln
-za2k1elő
-za2ket
-za2k1é2l
-za2k1int
-za2k1i2p
-zak1iro
-za2k1ír
-zak1k2
-za1klu
-2z1aknák
-zak1oszt
-za2k1o2v
-za2kős
-za1krí
-2zaktá
-2zakti
-z1aktív
-2zaktú
-zaku1p2
-zaku2r
-zak1ura
-za2k1urá
-zakü2
-za1kvó
-zal1acé
-zala2gá
-zalag1g
-2zalakí
-za2lakj
-za2laku
-zala2n
-zal1any
-z1a2lapb
-za2lapj
-zal1átk
-zale2l
-zal1ele
-zal1ell
-zal1elő
-za2l1e2m
-z1algá
-z1alge
-za2lid
-z1alkal
-z1alkat
-z1alkot
-2zalmás
-za2lól
-zalta2n
-zal2tel
-zal2tem
-z1alti
-za2m1a2d
-za2m1aj
-zam1ala
-za2m1a2p
-zama2t1ő2
-za2maz
-2z1ambu
-za2mem
-zam1ing
-za2m1is
-za2mí
-za2m1osz
-za2mü
-z1a2nal
-z1a2nek
-2zang
-z1angy
-2z1ankét
-zan2tes
-z1antil
-za2nya.
-z1a2nyag
-z1a2nyó
-zao2k
-zao2s
-zaó2h
-zaó2v
-z1a2pa.
-za2pad
-za2p1a2g
-z1a2pai
-za2p1ág
-z1a2pán
-za2p1ára
-z1a2pát
-z1a2páv
-zape2l
-zap1ele
-za2pem
-za2pes
-za2pí
-za1p2lán
-z1a2pó.
-z1a2póé
-z1a2pók
-2zap1p2
-zappa2ne
-zap3rof
-zap1s2
-za2r1a2dá
-za2ran
-zar1a2nya
-zar1apa
-za2rar
-z1a2rái
-za2r1ál
-z1a2rány
-z1a2rár
-2zarc
-z1arc.
-z1arca
-z1arcá
-z1arch
-z1arci
-z1arck
-z1arco
-z1arcú
-zare2t
-za2r1ete
-za2rev
-za2réna
-za2réná
-2zarm
-za2r1ön
-za2r1ü
-zar2vág
-2zarz
-za2sem
-za1s2ká
-za1s2ko
-za1s2li
-za1s2pó
-za1spr
-za2t1ab
-za2t1a2d
-za2t1aj
-zat1alap
-zat1alj
-zat1ana
-za2t1a2ny
-zat1ará
-zat1att
-za2tau
-za2taz
-za2t1áll
-zat1álo
-zatá2p
-zat1ápo
-za2t1árad
-za2t1áré
-za2t1á2ru
-za2t1elé
-zat1elk
-za2t1e2ré
-za2t1erk
-za2t1é2g
-za2tél
-zat1i2ko
-za2tim
-za2t1ind
-za2t1ing
-za2tins
-za2t1int
-za2t1ist
-za2tiz
-zat1k2
-2z1atka.
-z1atlas
-zatmo1s
-zatmosz2
-za2t1okos
-zat1olda
-2zatomj
-zat1oml
-za2t1osz
-za2tök
-za2t1ön
-zat2rok
-za1trom
-zatt2
-zat1tr
-za2tura
-za2tül
-za2tür
-2zaty
-za2tya
-za2tyá
-za2ula
-za2ulá
-za2urá
-zau2tak
-z1a2uto
-z1autó
-zaü2t
-zaü2z
-za3vará
-3zavarb
-2zavat
-z1az.
-z1azh
-z1a2zo
-1zá
-2z1ábr
-zá2de
-zág1a2d
-zá2gak.
-zá2gako
-zá2g1al
-z1á2gas
-z1á2gat
-zá2gaz
-zág1azo
-zá2g1ál
-zá2g1á2rak
-zá2g1áru
-zá2g1e
-zá2gép
-zá2golta
-z1á2gói
-zá2g1út.
-zá2gü
-z1ágy.
-z1á2gya
-zágy1a2da
-z1ágyb
-z1ágyh
-z1ágyn
-z1ágyr
-z1á2gyu
-záí2r
-zá2j1ék
-zá2jí
-zá2j1ol
-zá2j1ös
-zá2jő
-zá2jü
-zá2jű
-zá2kin
-zá2k1ö2v
-zála2n
-zá2l1any
-zál1apr
-z1álar
-zál1assz
-z1álca
-z1álcá
-z1áldá
-zá2l1e2g
-zá2l1e2l
-zá2l1em
-zá2lib
-zá2lid
-zál1ing
-zá2lir
-z1állam
-z1állap
-z1álma
-z1álmá
-z1álmo
-zá2lob
-zálo2d
-zá2l1oda
-zá2los
-zá2lü
-zá2ly1a2l
-zá2mac
-zá2m1a2d
-zá2m1aj
-zá2m1a2l
-zám1any
-zá2m1a2p
-záma2r
-zám1ará
-zá2maz
-zá2m1átl
-zá2m1á2to
-zá2mél
-zá2m1é2rő
-zá2m1ik
-zá2mip
-zá2mir
-zám1orm
-zám1ors
-zá2mó
-zá2mö
-zá2mő
-zá2m1ut
-zá2mü
-zá2mű
-zá2naj
-zá2n1as
-zá2n1at
-zá2n1át
-zá2nem
-zá2nis
-zá2n1it
-zán3n
-zá2n1osz
-zán1sp
-zá2nü
-zány2
-zá2p1ad
-zá2p1ag
-zá2p1orzó
-zá1p2r
-z1á2radd
-zá2r1a2dot
-zá2r1a2l
-z1á2ramk
-z1á2raml
-zára2n
-zá2r1any
-zá2r1ap
-zá2rar
-zá2r1ati
-zá2r1a2to
-zá2r1att
-zá2r1av
-zá2r1ál
-3zárás.
-3zárása
-3zárásb
-3zárási
-zárás1s
-zá2r1á2sz
-z1árbev
-3zárdá
-zár2dem
-zár2d3z
-2zá2r1em
-zá2réb
-2zárf
-2z1á2riá
-zá2rid
-zá2r1i2k
-zá2rim
-zá2r1is
-zá2r1iz
-zár1k2
-3zárkák
-2zárkö
-3zárlat
-2zárnö
-2zárny
-zár2nyál
-zá2r1osz
-3záró.
-3záróa
-zá2r1óbo
-3záród
-zár1óév
-zá2r1ó2rá
-zá2rő
-2zárré
-zárs2
-zár1sk
-zárt1anyá
-zár2t1es
-zárté2r
-zár1tro
-zá2rug
-z1á2ruh
-z1áruj
-2zárunkn
-2zárunkr
-zá2rü
-z1árvah
-zá2s1a2d
-zá2saj
-zá2sal
-zá2s1a2r
-zá2s1at
-zá2saz
-zá2s1á2g
-zá2s1árad
-zá2s1á2rá
-zá2s1á2ré
-zá2s1árh
-zá2s1árn
-zá2s1árt
-z1á2sás
-zá2sep
-zás1ikon
-zá2sis
-zá2s1í
-zá2s1ol
-z1á2só.
-zás1ó2r
-z1ásóv
-zá2sut
-zá2sü
-zá2s3zav
-3zászl
-zász3se
-z1átad
-zát1a2dó.
-zát1a2dók
-zátá2r
-2zátb
-2z1átc
-z1átd
-zát1e2m
-zá2tél
-2z1átf
-2záth
-z1átha
-z1áthe
-zá1t2hi
-z1á2t1i2
-2z1átj
-2z1átm
-zá1tra
-zá1tro
-2záts
-2z1átv
-zá2z1ala
-záza2t
-zá2z1ato
-zá2z1e2
-zá2zév
-zá2z1ol
-zá2zos
-zázó2
-zá2zór
-zá2zö
-zá2zsaj
-zá2zsas
-záz4sá
-zá2zsál
-zá2zsol
-zba2ki
-zbeá2
-zb2le
-zb2lo
-zb2lú
-zb2ri
-zb2ró
-zb2rú
-zc2lu
-zcsa2p1á2g
-zda1p2
-zdas2
-z2d1ass
-zd1áll
-zdés1s
-zdő1s2p
-zd2ri
-zd1u2r
-1ze
-zea2d
-zea2g
-zea2k
-zea2l
-zea2s
-zeán2sze
-zeá2r
-zeá2z
-2z1eb.
-2zebe
-ze2be.
-ze2bei
-ze2bek
-z1e2béd
-z1ebf
-z1ebh
-z1ebk
-2z1ebn
-ze1bru
-2zece
-z1e2cet
-z1e2ch
-z1e2cset
-ze2d1ál.
-ze2d1álj
-ze2d1áln
-ze2d1ált
-ze2d1álv
-zede2r1e
-ze2dil
-ze2d1ó2
-2z1e2dz
-zee2s
-z1eff
-ze1fr
-ze2g1a2l
-ze2gap
-ze2gar
-ze2g1ál
-ze2g1ár
-ze2g1eg
-zeg1ell
-ze2gep
-zeget2t1eb
-zeg1érr
-zegé2sz
-zeg1észb
-zeg1észé
-ze2gid
-ze2gil
-ze2gol
-ze2gú
-ze2gyed
-ze2gy1e2l
-ze2gyene
-ze2gyez
-z1egyl
-z1egys
-ze2het
-ze2ia
-zei2g
-zei2s
-zeí2r
-zekci2ósz
-zek1e2gy
-ze2k1ell
-z1e2kéit
-2zekék
-ze2kil
-ze1k2lap
-ze2k1ott
-zek1övek
-ze2kő
-ze1k2reá
-zek1t2
-ze2k1ü2lő
-z1ekviv
-ze2lag
-ze2lar
-ze2lál
-z1elbo
-2zeledel
-z1e2lefá
-ze2leji
-2zelekt
-ze2leme.
-ze2lemek
-zelem1el
-zele2m1ér.
-ze2lemű
-zele2pá
-zele2p1el
-zele2po
-zele2p1ü2l
-z1e2l1e2re
-ze2l1esz
-zele2tá
-zele2ter
-2z1e2lég
-2z1eléré
-zel1érh
-zelés1s
-z1elhá
-2z1elhel
-2z1elher
-ze2litet
-z1elkü
-2z1elláto
-2zellen
-z1ellene
-2z1elnev
-z1elnö
-ze2lof
-z1e2los
-z1e2lö2l
-z1elön
-2z1e2lőha
-zelő2saj
-z1e2lőző
-z1első
-z1eltá
-2z1eltér
-2z1elto
-2z1eltű
-z1e2lu
-2z1e2lú
-z1elv.
-z1elvek
-z1elves
-2z1elvev
-z1elvez
-z1elvn
-z1elvt
-2z1elvű
-z1elzá
-2zema
-ze2mak
-ze2m1ág
-ze2m1ár
-ze2mát
-2zember
-z1ember.
-z1emberb
-z1emberé
-z1emberh
-z1emberk
-z1embern
-z1emberr
-z1embert
-z1embl
-2zeme.
-ze2m1egé
-2zemei
-2zemek
-ze2m1ell
-ze2m1eng
-2zeméb
-2zeméh
-ze2m1ék
-ze2m1éle
-ze2m1é2lé
-ze2m1é2lő
-ze2m1élt
-ze2m1élv
-ze2m1é2rét
-2zemés
-zemé2te
-ze2m1éten
-ze2m1étet
-ze2m1étjé
-2zemév
-ze2migr
-ze2m1ing
-ze2m1int
-ze2mis
-ze2m1iz
-ze2m1í
-2zemk
-2zeml
-2zemmó
-ze2mol
-ze2m1osz
-ze2m1ó2
-ze2m1ő
-2zems
-z1emul
-zem1ur
-ze2mú
-2zemü
-2zemv
-zemvíz1
-3zeneir
-3zeneka
-zenesz2
-3zenéé
-3zenéi
-3zenéj
-ze2nép
-zenké2
-zenkét1
-ze2n1o
-zen2tag
-zen2tal
-zen2t1an
-zen2t1as
-zente2g
-zen2t1egy
-zen2telm
-zen2t1ere
-zen2tev
-zen2t1é2j
-zen2t1imr
-zen2tip
-zen2tis
-zen2tí
-zen2tol
-zen2t1ó2
-zen2t1ö
-zentő2s
-zen2t1őse
-2zenz
-zeo2k
-zeo2m
-zeö2r
-2zepééb
-2zepééi
-2zepéén
-2zepéit
-2z1epéj
-2z1e2pém
-2z1e2pés
-z1epiz
-ze1pla
-ze1ple
-2zepr
-ze1p2ri
-ze1pró
-ze2r1a2d
-ze2rajá
-ze2r1ajt
-ze2rakr
-ze2r1al
-ze2ram
-ze2r1a2n
-ze2r1a2r
-ze2r1as
-ze2r1a2t
-ze2r1au
-ze2raz
-ze2r1ága
-ze2r1á2r
-ze2rás
-ze2r1á2t
-zer2bin
-zer1d2
-z1erdé
-ze2r1eb
-ze2r1e2ce
-ze2redé
-ze2rege
-zer1e2ge.
-ze2r1e2gé
-ze2r1egg
-ze2r1egy
-z1e2reje
-zer1ejt
-z1e2rejü
-z1e2rejű
-ze2r1e2ke.
-z1e2rekl
-ze2relődj
-ze2r1ember
-ze2r1emi
-ze2r1eng
-zere2p1a
-ze2r1e2r
-ze2r1e2sés
-ze2r1essz
-ze2r1este
-zer1e2sze.
-zer1eszk
-ze2reszt
-ze2r1eu
-ze2r1e2v
-ze2rég
-ze2r1é2j
-ze2r1ék
-ze2r1é2l
-ze2r1ép
-zer1g2
-ze2r1i2d
-ze2r1iga
-ze2r1iko
-ze2r1ill
-ze2r1i2m
-ze2r1ina
-ze2rind
-ze2r1inf
-ze2r1ing
-ze2r1inj
-ze2r1ink
-ze2r1intel
-ze2r1inté
-zer1intő
-ze2rio
-ze2rism
-ze2riz
-ze2r1í2j
-zer1k2
-zer2nal
-ze2r1okt
-ze2r1old
-ze2rolv
-ze2ror
-ze2r1ost
-ze2r1osz
-ze2roti
-ze2r1ó2r
-ze2rök
-2ze2rő
-z1erő.
-z1erőf
-z1erői
-z1erők
-z1eről
-z1erőn
-z1erős
-z1erőt
-z1erőv
-zer1őz
-zer1p2
-zer1s
-zers2k
-zers2p
-zers2t
-zert1á2lom
-zer2tit
-zer2tór
-zer1tra
-zer1tren
-ze2r1un
-ze2rur
-ze2rus
-ze2r1u2t
-ze2r1út
-ze2r1ü2g
-2zerű
-zer2v1a2dó
-zer2van
-zer2vel
-zer2vél
-2z1e2sedék
-ze2s1e2kéh
-z1e2setb
-z1e2sete.
-z1esetes
-z1e2setet
-z1e2seté
-z1e2seti
-z1e2setr
-2z1e2sés.
-2z1e2sésb
-2z1esésd
-2z1e2sése.
-2z1e2sései
-2z1e2sések
-2z1e2sésem
-2z1e2sésen
-2z1e2séses
-2z1e2sésé
-2z1e2sésh
-2z1e2sési
-2z1e2sésk
-2z1e2sésn
-2z1e2sésr
-2z1e2séss
-2z1e2sést
-ze2s1it
-ze1s2mi
-2z1e2ső
-zesp2
-ze1s2pe
-ze1spr
-2zeste
-z1estek
-z1estem
-2z1esté
-z1esti.
-ze1s2til
-2z1estj
-ze1sto
-z1estre
-z1estt
-ze2s1ü2v
-zes3zac
-ze2szág
-zesz1e2get
-ze2szelle
-ze2szeng
-ze2széh
-ze2sz1é2le
-ze2sz1im
-ze2szip
-2zeszk
-z1eszkö
-ze2szol
-zeszt2
-zesz1tr
-ze2t1ab
-ze2tac
-ze2t1ala
-ze2t1a2ny
-ze2táj
-ze2t1á2l
-ze2t1á2p
-ze2t1át
-zet1egé
-zet1elá
-ze2t1ell
-ze2telm
-ze2t1e2lőá
-ze2t1e2lőd
-ze2t1elr
-zet1emel
-ze2t1eml
-ze2tene
-zet1erk
-zet1e2ró
-zete2s1ég
-zetest2
-zetes1tr
-z1e2teté
-ze2t1eti
-ze2tetn
-ze2t1éd
-ze2t1é2j
-ze2t1é2l
-ze2térte
-ze2t1érté
-zet1értő
-ze2t1é2rü
-zeté2sz
-zet1észe
-zet1éter
-ze2tid
-z1e2tika
-ze2t1i2ko
-zet1ill
-ze2t1ing
-ze2tít
-zetkész1e
-ze2tom
-zet1ont
-ze2top
-ze2t1ó2r
-ze2t1ö2v
-zet1őri
-zet1őrö
-zet1őrt
-ze2tut
-ze2tür
-ze2t1ü2z
-ze2ty
-zeu2g
-z1e2ur
-zeü2t
-z1e2vő
-ze2x1id
-ze2xim
-ze2x1i2p
-z1expe
-zex2t1ö
-ze2xú
-z1e2zer
-z1ezr
-1zé
-z1é2ber
-2z1ébr
-zé2dak
-zé2d1a2l
-zé2d1a2r
-zé2d1as
-zé2dat
-zé2d1á2
-zé2d1ekét
-zé2d1e2lem
-zé2delm
-zéde2r1
-zéd1esem
-zé2d1esz
-zé2d1eti
-zé2d1és
-zé2dik
-zé2dó
-zé2d1ő
-zédren2
-zédu2
-zé2dur
-zé2dú
-zé2d3z
-zé2fá
-z1ég.
-z1égb
-z1é2ge
-zé2gé
-z1é2gi
-z1égn
-z1é2gő
-z1égr
-z1égt
-z1é2he.
-z1é2hen
-2z1é2hes
-z1é2het
-2z1éhs
-2zéid
-z1éj.
-zé2jen
-z1é2ji
-zéjje2l1e2
-z1éjs
-2z1éjül
-2z1é2jün
-zé2k1a2d
-zé2k1a2l
-zé2k1a2n
-zé2k1ap
-zé2k1as
-zé2kás
-zé2k1eg
-zé2k1e2két
-zé2k1elr
-zé2ker
-z1é2kez
-zé2k1ék
-zé2k1é2l
-zé2k1és
-zék1old
-zék1osz
-zé2k1ó2
-zé2kör
-zé2kúr
-zékü2l
-zé2k1ülé
-zé2k1ülő
-zéla2
-zé2lab
-zé2lad
-zé2lak
-zé2l1an
-zé2las
-zé2l1á2
-2zé2le2l
-zél1ele
-zél1ell
-zél1elő
-zél1elt
-zé2l1e2r
-2zélet.
-2z1é2letb
-2z1é2lete.
-2z1é2leten
-2z1é2leté
-zé2letf
-2z1é2leth
-2z1é2leti
-2z1é2letn
-2z1é2letp
-2z1é2letr
-2z1é2lets
-2z1é2lettő
-2z1é2letü
-2z1é2letű
-2zélé
-zé2l1ékh
-zé2lim
-zé2l1ist
-zé2lí
-2zélm
-zé2l1o
-zé2l1ö2
-2zélős
-2zélt
-zé2l1u2
-zé2lú
-zé2lya
-zé2lyá
-zé2ly1esh
-zé2lyo
-2zéme
-zé2n1árn
-zéndio2
-zé2neg
-2z1é2nekb
-2z1é2neke
-z1é2neké
-zé2nekk
-2zénekl
-z1é2nekn
-zé2nekr
-zé2nekü
-zé2n1e2l
-zé2n1e2r
-zéni2
-zé2nik
-zé2nil
-zé2nim
-zé2n1io
-zé2n1is
-zé2ní
-zé2nom
-zé2nö
-zé2nő
-zént2
-zé2n1ü2lő
-zé2p1a2g
-zé2p1a2l
-zé2p1any
-zé2p1a2p
-zé2p1a2r
-zé2pas
-zé2pat
-zé2pau
-zé2pav
-zé2p1á2r
-zé2pát
-zé2peg
-zép1ell
-zé2pez
-zép1f2
-zé2pin
-zé2p1i2p
-zé2pir
-zé2p1i2s
-2zépít
-zépo2
-zé2pol
-zé2pos
-zé2pó
-zé2pö
-zép1s
-zé2pud
-zé2p1us
-zé2pú
-2zépül
-zé2rab
-zé2rag
-zé2r1a2l
-z1é2ram
-zé2r1a2n
-zé2rap
-zé2rar
-zé2r1as
-zé2rat
-zé2rav
-zé2r1á2
-zér1d2
-zé2r1e2lemé
-zé2r1e2lemk
-zé2r1e2lemn
-zé2remb
-zér1eml
-zé2r1esz
-2zérett
-zé2rev
-zé2rés.
-zé2résb
-zé2rése
-zé2rési
-zé2résk
-zé2résn
-zé2r1id
-zé2rim
-zé2ris
-zé2r1o2k
-zé2r1os
-3zérós
-zé2rö
-2z1é2rő.
-z1é2rői
-z1é2rők
-zé2rős
-z1é2rőt
-zér1s
-zér2taj
-2zértekez
-2zértelm
-2z1értetl
-2z1értető
-2z1érték
-2z1érthet
-z1érto
-zé2rú
-zé2sab
-zé2san
-zé2sar
-zé2s1az
-zé2s1á2
-zé2seg
-zé2s1e2l
-zé2s1e2r
-zé2s1eti
-zé2s1ég
-zé2sés
-zé2s1i2k
-zé2sok
-zé2só
-zés3s
-zé2s1ü2t
-zé2s3za
-z1észb
-z1é2szé
-z1észl
-zé2szó
-zés3zs
-zé2t1a2b
-zé2t1ad
-zé2tag
-zé2t1aj
-zé2t1a2k
-zé2t1a2l
-zé2t1ap
-zé2t1a2s
-zé2t1au
-zé2t1á2
-zéte2n
-zéte2se
-zéte2sü
-zé2tég
-zé2t1é2n
-zé2t1i2
-2zétk
-zé2tol
-zé2t1o2m
-zé2tor
-zé2t1o2s
-zé2tun
-zé2tú
-zé2t1ü2
-zé2t1ű
-2zétv
-2z1év.
-2z1évad
-z1évb
-2z1é2ve.
-2z1é2vek
-2z1é2ven
-2z1é2ves
-z1é2vén
-z1é2vét
-z1é2vév
-z1évf
-2zévi
-z1é2vi.
-z1évk
-2z1évn
-z1évr
-z1évs
-z1évt
-z1é2vü
-2z1évv
-zfa2l1a2da
-zfa2l1aj
-zfa2l1e2l
-zfa2les
-zfe2l1em
-zfe2len
-zfe2reg
-zf2la
-zf2le
-zf2li
-zf2lo
-zf2ló
-zfora2
-zfo2rat
-zfo2riz
-zföldié2
-zf2ra
-zf2rá
-zf2re
-zf2ri
-zf2rí
-zf2ro
-zf2rö
-zgás3s
-zgá2s3z
-zgá2zó
-zgé2p1e2két
-zgé2sa
-zgé2sá
-zgé2sem
-zgés3s
-zg2la
-zg2ló
-zgó1g2
-zgő2nyá
-zgő2z1á2
-zgő2zér
-zgő2z1ő
-z1g2ra
-z1g2ráf.
-z1g2ráff
-z1g2ráfh
-z1g2ráfj
-z1g2ráfk
-z1g2ráfn
-z1g2ráfr
-zg2ró
-z1g2ru
-zhán2
-zhá2t1a2d
-zházköz1
-1zi
-zi2aa
-zi2aá
-zi2abo
-zi2ac
-zi2ad
-zi2ae
-zi2aé
-zi2ag
-zi2ah
-zi2aí
-zi2aj
-zi2akép
-zi2akó
-zi2al
-zi2am
-zi2ao
-zi2aö
-zi2a1p2
-zi2ar
-zi2asza
-zi2aszo
-zi2aszó
-zi2at
-zi2au2
-zi2aú
-zi2aü
-zi2av
-2z1ibr
-2zicc
-zi1ch
-z1i2deá
-z1i2deg
-z1i2deo
-zi2dén
-2z1i2dő
-zie2l
-zie2m
-zi2éa
-zi2éá
-zi2éke
-zi2ép
-zi2éta
-zi2étá
-zi2éü
-z1ifj
-z2ig.
-zi2ga.
-2z1igazg
-2z1i2gazo
-z1i2gás
-zi2géj
-2z1i2gén
-zi1g2r
-2zigye
-zi2k1a2n
-zik1ékek
-zi2kik
-zi2kim
-zi2k1ing
-zi1klu
-zi2k1u2r
-zikus1s
-zi2ler
-zi2l1é2j
-zi2l1ék
-zi2l1ing
-zi2l1ü
-z1i2ma.
-zi2mak
-zi2máb
-zi2máj
-zi2mák
-zim1áll
-zi2már
-zi2mát
-zi2máz
-zim1b
-zi2m1e2g
-zi2m1e2l
-zi2m1é2ré
-zi2m1érté
-zim1ind
-zi2m1ip
-z1i2mit
-zi2mö
-zi2n1a2d
-zi2n1a2l
-zi2n1a2n
-zi2n1a2r
-2z1i2nas
-zi2n1au
-zi2nái
-zi2n1áll
-z1indu
-zin1emb
-zi2nég
-zin2gas
-zin2gál
-zi2n1i2m
-zi2n1in
-zi2ní
-zin3n
-zi2nol
-zin1s2
-zin2t1a2d
-zin2t1a2l
-zin2t1a2s
-zin2tát
-zin2t1á2z
-zinte2l
-zin2t1ele
-zin2telő
-zin2telt
-z1interj
-z1interp
-z1interv
-zin2tom
-zin2t1ón
-zi2n1u2t
-zi2nú
-zi2ol
-2z1i2ono
-2z1i2ons
-zi2ot
-zi2óa
-zi2óá
-zi2óc
-zi2óe
-zi2óg
-zi2óí
-zi2ókam
-zi2ókap
-zi2óká
-zi2óke
-zi2ó1kl
-zi2ól
-zi2ómá
-zi2ómé
-zi2óné
-zi2óny
-zi2óo
-zi2ó1p2
-zi2órá
-zi2ósá
-zi2ósé
-zi2ó1s2ká
-zi2ó1sp
-zi2ószű
-zi2óta
-zi2ótá
-zi2óú
-zi2óü
-zi2óű
-zi2pai
-zi2pari
-zi2páj
-zi1p2l
-zi1p2r
-z1i2rat
-2zirá
-z1i2rán
-z2i3re
-2ziro
-z1i2rod
-zi2rón
-z2i3rő
-2zirt
-zir2t1a2
-z1irtá
-zir2to
-z1irtó
-zi2sad
-zi2sal
-zi2sam
-zi2sar
-zi2s1a2s
-zi2sál
-zi2s1áro
-zi2s1e2g
-zi2s1e2l
-zi2s1er
-zise2s
-zi2s1ese
-zi2s1esz
-zi2s1ék
-zi2sérte
-zis1évi
-zi2s1il
-zi2sin
-zi2s1is
-zi2sit
-zi2s1o2v
-zi2s1ó2
-zi2sö
-zi2ső
-ziss2
-zis3sza
-zis3szá
-zis3szo
-zist2
-zis1tra
-zis1tre
-zi2sut
-zi2s1ü2v
-zi2s3zaj
-zis3zav
-zis3zón
-zi2t1áll
-zit1áru
-zi2t1e2g
-zi2t1elr
-zit1eng
-zi2tét
-zi2til
-zi2tin
-zi2tip
-zi2tir
-zi2t1or
-zitó2
-zi2tór
-zi2t1út
-ziú2r
-z1i2vad
-2z1i2vó
-2z1i2zé
-2zizm
-z1izmo
-z1i2zom
-1zí
-zí2gé
-zí2jan
-zí2je
-zí2jö
-zí2jü
-zí2nac
-zí2nad
-zí2naku
-zí2nal
-zí2nan
-zí2nas
-zí2nat
-zí2n1áll
-zí2n1ár
-zí2nát
-zí2n1e2r
-zí2nél
-zí2ní
-z1ínna
-zín3nye
-zíno2
-zí2n1od
-zí2n1ok
-zí2nos
-zí2n1ó2
-zí2nö
-zí2nu
-zí2nú
-z1í2ny
-zínyenc1
-zí2r1a
-2z1í2rá
-zí2rog
-2z1í2ró
-zítőa2
-zítőe2
-zítőkész1
-zí2vaj
-zív1akt
-zí2val
-zí2var
-zí2ver
-zí2v1ő
-zí2vul
-zí2vú
-zí2ze
-zí2zü
-zí2zű
-zje2gy1á2
-z2k1abl
-z2k1alak
-z2k1alj
-z2k1alt
-zka1p2l
-z2k1a2rád
-z2k1a2ráj
-z2k1a2rén
-zkaró2
-zka2rór
-zka1s2k
-z2k1állv
-zk1bl
-zk1dr
-zk1egys
-z2kenn
-zk1eszk
-z2k1etű
-z2k1ér.
-z2k1érté
-z1k2hü
-zkia2
-zkiá2
-zkie2
-zki2g
-z2k1igé
-zki2sé
-zk2la
-z1k2lá
-zk2ler
-z1k2lí
-zk2ló
-z1k2lu
-z2k1olda
-zkon2t1ár
-z2k1ontó
-zko2r1os
-z2k1oszl
-z3koszt
-z2kókor
-zk1ókort
-zkó2pá
-zkó2z3s
-zkö2zele
-zköz1ell
-zkö2z1é2l
-zkőé2h
-zk1pr
-z1k2rak
-zk2rá
-z1k2reá
-z1k2rém
-z1k2réta
-z1k2rétá
-zk2rí
-z1k2ro
-z1k2rón
-zkultú3
-zkultúr2
-z2k1u2rán
-z2k1u2rát.
-z2k1utá
-z1k2val
-zk2vó
-zky2b
-zky2h
-zky2j
-zky2k
-zky2n
-zky2r
-zky2t
-zky2v
-zla2tal
-zlata2n
-zlat1any
-zlá2m1e
-zlá2mis
-zlás3s
-z2láv.
-z2láve
-z2lávé
-z2lávk
-z2lávn
-z2lávo
-z2lávv
-zleg1g
-zlei2
-zleí2
-z2leng.
-zle2tak
-zle2tal
-zle2t1a2n
-zle2tál
-zle2t1á2r
-zle2t1eg
-zle2t1ell
-zle2tesz
-zle2tél
-zle2t1ér.
-zlet1érv
-zle2tés
-zle2t1é2té
-zle2t1é2ve.
-zletigaz1
-zle2t1u
-zle2tüz
-zlé2sí
-zlé2so
-zlés3s
-zlina2
-zli2nan
-zli2nin
-z2loge
-zlo2p1as
-zlo2pó
-zlóó2
-zló2s1orr
-zma1pr
-zmas2
-zma1sp
-zmeá2
-zme2ge
-zme3gom
-zmi2n1a2
-zmi2n1e
-zmuskész1
-zmu2sö
-zmu2s3z
-zmu2tok
-zna2pes
-znie2
-zni2ó
-z2nob
-znó1str
-znót2
-znó1tr
-1zo
-z1obj
-z1o2dú
-zo2es
-z1o2ka.
-z1o2k1a2d
-z1o2kai
-zo2k1ál
-zoki2
-zo2k1ip
-z1o2k1ir
-z1okke
-z1okle
-2z1o2koz
-2zokta
-zo2lab
-2z1o2laj
-zolajá2
-zola2j1ár
-zola2je
-zo2l1a2l
-zo2l1as
-zol1ábr
-zo2l1áro
-z1oldal
-2z1oldh
-2z1oldó
-zo2l1e
-zol1f2
-zol1inf
-zo2l1is
-zo2l1í
-z1olló
-zo2lö
-z1oltás
-z1oltó.
-zol1t2re
-zo2lü
-2zolvad
-zo2m1a2g
-zo2mak
-zo2m1a2l
-zo2m1a2n
-zo2map
-zo2m1a2s
-zom1áll
-zo2m1á2r
-zom1b2
-3zombor.
-2zome
-zo2meg
-zo2m1el
-zo2men
-2zomé
-zo2mél
-zomé2t
-zo2m1éte
-2zomf
-2zomg
-zomi2
-zo2min
-zo2miz
-zom2jó
-2zoml
-zo2m1ors
-zo2m1os
-2zo2mö
-2zom1p2
-2zom1s
-2zomz
-zo2n1aj
-zo2n1ak
-zo2n1a2la
-zo2n1alá
-zo2n1alk
-zona2n
-zo2n1any
-zo2n1a2r
-zon1asz
-zo2n1au
-zo2náld
-zo2n1áll
-zo2n1átl
-zone2
-zo2neg
-zo2nel
-zo2n1er
-zo2nes
-zo2név
-zo2nin
-zo2n1i2o
-zo2n1or
-zono2sé
-zo2n1ó2
-zo2nö
-zon1s2
-zon2t1es
-zon2tin
-zon1tre
-zo2nü
-zo2ny1ad
-zo2ny1a2l
-zo2ny1a2n
-zo2nyar
-zo2nyav
-zo2nye
-zo2nyid
-zo2nyij
-zo2nyó
-zo2ol
-zo2om
-z1opál
-z1o2pe
-zo1pho
-zo2r1a2d
-zo2raf
-zo2r1ag
-zo2r1aj
-zo2r1a2l
-zo2ran
-zo2r1as
-z1o2rat
-zo2r1au
-zo2r1e2
-zor1f2
-zo2rid
-zo2r1il
-zor1ing
-z1ormá
-zo2r1ol
-zo2rop
-zo2rosz
-zo2r1ó2
-zo2rö
-z1orr.
-z1orrú
-z1orsó
-zor1t2re
-zo2rü
-2z1osko
-z1ostá
-z1osto
-zo1sz2f
-z1oszl
-zosz2tat
-2zote
-2zotó
-zotó2pa
-zo2vi
-zo2xi
-1zó
-zóa2d
-zóá2g
-zóá2r
-zó1bl
-zó1b2r
-zó1cl
-zó2d1e2l
-zó1fl
-zó1f2r
-zó1gl
-zógyö2k1ér
-zói2g
-zóí2v
-zója1
-zó1k2l
-zó1kré
-zókupac1
-2zól.
-z1ólm
-zó2lomb
-3zónád
-3zónái
-z1ó2ni
-2z1ónj
-2z1ónn
-z1ó2nod
-2z1ónt
-zóó2r
-zó1p2l
-zó1p2r
-z1ó2rad
-z1ó2rar
-zó2rasz
-zó2rái
-z1ó2ráj
-z1ó2rák
-z1ó2rár
-zórás1s
-z1ó2rát
-z1ó2ráv
-z1ó2riá
-zós1ík.
-zó2s1ín.
-zó1s2ká
-zó1sl
-zó1s2ta
-zó1sté
-zósz1akad
-zósz1állí
-zó2szene
-zó2sz1é2le
-zó2sz1íj
-zósz1ü2lő.
-zóta2g1a2
-zóté2g
-zót1ége
-zó1tré
-z1ó2vó
-1zö
-zö2bá
-zö2bo
-zö2bó
-z1öcc
-zö2dé
-zö2dú
-zö2ga
-zö2gá
-zög3g
-zö2gil
-zö2gí
-zö2go
-zögö2
-zö2g1öl
-zö2gu
-zö2gy
-2z1ökl
-2z1ö2ko
-2zökrü
-3zöldes
-3zölds
-2zöleb
-zö2les
-2z1ölniv
-z1ölyv
-2z1öml
-z1ö2na
-z1ö2ná
-2zönb
-2zöne
-2zöné
-2zöni
-2zönl
-2zönne
-2zönö
-2zönr
-2zönt
-3zörej
-zör2f1e
-zör2f1o
-zör2nya
-zör2nyá
-zör2nyel
-zör2nyesz
-zör2nyék
-zör2nyí
-zö2rök
-zör2p1a2
-zör2pá
-2z1örv
-2zössz
-z1ösv
-z1ösztö
-zö2te
-2z1ötl
-2z1ötv
-z1öv.
-z1ö2vei
-z1ö2vek
-zöve2t1e2l
-z1ö2vez
-zö2zö
-1ző
-zőa2c
-zőa2l
-zőá2g
-ző1bl
-ző1br
-zőé2l
-ző1fl
-ző1f2r
-zőgépi2
-zőgé2p1ip
-ző1gr
-ző1kl
-zőmű1
-zőnyá2
-ző2ny1er
-ző2ny1é2k
-ző2nyért
-ző1pl
-ző1pr
-ző2ran
-ző2r1e2c
-ző2r1ege
-ző2rel
-ző2r1er
-2zőrk
-2zőrl
-z1őrlő
-2zőrm
-ző2rol
-2zőrü
-ző2r1ü2g
-2zőrz
-z1őrzé
-z1őrző
-ző2sis
-ző1ská
-ző1spe
-ző1s2pi
-ző1sta
-ző1sti
-ző1str
-zősz2
-ző1szf
-ző1szt
-ző1tr
-zőü2l
-zpen1n
-zp2fe
-zp2la
-zp2lé
-zp2lo
-zpor2t1e2
-zpor2t1ő2
-zpor2t1ú
-z1p2ra
-z1p2ri
-z1p2ro
-z1p2ru
-zrae3le
-zrádiói2t
-zre2d1á2
-zre2del
-zre2d1é2k
-zre2d3z
-zren2d1ő2
-3z2rí.
-z2s
-1zsa
-zs1abla
-2zs1a2dat
-2zs1a2dó
-zsag2
-2zsah.
-2zsajt
-2zs1akc
-2zs1alj
-2zs1alm
-2zs1alt
-zsa2nyá
-zsa2pa.
-2z3sapk
-zsa2rán
-z3sarj
-2z3sark
-2z3sarl
-2zs1arz
-2zs1aszt
-zs1atl
-zsa1tr
-2zs1a2ty
-2zsautó.
-2zsautón
-zs1azo
-1zsá
-2zs1ábr
-2z3sáf
-2z3ság
-zs1ággy
-zsá2kó
-2zs1ála
-2zsálc
-2zsálm
-2zs1á2p
-2zs1á2rak
-2zsárat
-2z3sári
-2zsáru
-2zsáte
-2zs1átk
-2zsáto
-2zsátö
-2zs1áts
-2zs1á2zós
-zs1bl
-zs1br
-z3s2ch
-zscsapá2
-zsde1s
-zs1dr
-1zse
-zse2ba
-zse2biro
-zse2b1o2
-2zsebz
-zs1e2ce
-zs1e2dé
-z3sej
-2zsell
-zs1elm
-2zselö
-zs1e2lőf
-zs1e2lőr
-2zsember
-2zs1e2mel
-zs1enc
-zs1ene
-zse2raj
-zse2r1á2
-zse2rel
-zsere2s
-zse2r1esz
-zse2r1ék
-zse2rin
-zse2r1o
-2zsese
-zse2szü
-zs1evé
-2zs1ex
-2zsez
-1zsé
-z3ség
-zsé2ge2l
-2zséhs
-2zsél
-zs1éle
-2zsép
-2zs1érd
-2zs1érte
-2zs1érté
-3zséry
-2zsérz
-2zséte
-2zs1étk
-2zs1étr
-2zs1étt
-2zs1é2ve.
-zs1fl
-zs1fr
-zs1gr
-1zsi
-2zsidő
-2zsigá
-2zsigé
-zsi2kor
-2zs1ill
-2zs1i2má
-zsi2min
-zsi2m1u
-2zsinas
-zs1i2pa
-z3sipk
-2zsirat
-zs1irato
-2zs1iro
-2zs1irt
-2zs1ism
-2zsist
-zsi2tat
-2zsivó
-zs1izé
-2zs1izm
-2zs1i2zo
-zs1izz
-1zsí
-2z3síb
-zs1íj
-2z3sík
-2z3síp
-zsí2r1a2
-zsí2rá2
-3zsírbó
-3zsíré
-3zsíros
-3zsírr
-3zsírt2
-2zs1í2v
-2zs1í2z
-zs1kl
-zs1k2r
-1zso
-2z3sof
-2zs1okm
-2zs1okta
-2zsolaj
-zs1oli
-3zsom
-2zs1op
-2zsor
-z3soro
-2zsosty
-2zs1osz
-1zsó
-zs1óné
-zs1órá
-1zsö
-2zsökör
-2zsölőz
-2zs1ös
-zs1ö2ve
-1zső
-zs2pir
-zs1p2l
-zsp2r
-zs1s2k
-zs1s2p
-zs1st
-zs3sz
-zssze2r1e2l
-z3s2tad
-z3s2tat
-z3s2top
-zst2r
-zs1tro
-z3s2tú
-1zsu
-2zs1ud
-2zsugár.
-2zsugárr
-2zsugr
-3zsul
-2zsum
-zsu1s
-zsusz2
-1zsú
-2zs1új
-2zsúl
-zsú2r1a
-1zsü
-2zsüg
-2zsült
-2zsünn
-zs1üs
-2zsüt
-2zs1üz
-1zsű
-zs1wh
-zs3zac
-z3szag
-zsza2ké
-zsza2k1ü
-z3szav
-zs3záp
-zs3zás
-z3szem
-zs3zené
-z3szer
-z3szé
-zsz2f
-z3szi
-zszind2
-z3szí
-z3sz2k
-zsz2l
-z3szo
-z3szó
-z3szö
-zsz2p
-zs3zs
-zsz2t2
-z3szü
-z3szű
-zt1abla
-z2t1a2bor
-z2t1a2cé
-z2ta2dal
-zt1a2dat
-zt1a2dó
-z2t1agre
-z2t1a2ká
-z2t1akc
-z2t1akk
-zt1akn
-ztaköz1
-z2t1akv
-zt1a2lapú
-ztale2l
-zta2lele
-z2t1anal
-ztan2e
-zt1anes
-zt1anké
-zta2n1ó2
-zt1a2nyag
-zt1anyak
-zt1anyas
-zt1anyád
-zt1anyám
-zt1anyáu
-z2t1anyu
-zt1a2pán
-zt1a2pás
-zt1a2pát
-z2t1apó
-zt1app
-z2t1aps
-zt1a2puk
-z2t1a2ra.
-zt1arán
-z2t1arc
-ztaso2
-zta1sp
-zt1assz
-z2taszt
-zt1aszta
-z2tatig
-z2t1atk
-z2t1aty
-z2t1a2ut
-zt1ábr
-ztá2cs
-zt1ácso
-zt1ág.
-z2t1á2ga
-z2táli
-z2t1álm
-ztá2raj
-ztá2r1ass
-zt1árem
-ztá2ris
-z2t1árnö
-zt1árnya
-z2tároc
-z2tárokk
-ztá2r1olt
-ztá2r1óra
-ztár1sm
-ztár1s2p
-ztárt2
-zt1árví
-ztá2sz
-zt1ászo
-zt1ászt
-z2t1átha
-z2t1áts
-z2t1átv
-ztávi2
-ztá2v1ir
-zt1bl
-zt1dr
-z2t1e2b
-z2t1ef
-z2t1e2gé
-z2t1egy
-z2t1e2ke.
-z2t1e2kés
-z2t1ela
-z2t1elá
-z2t1elb
-z2t1e2legy
-z2t1e2leme
-z2t1e2lemm
-z2telemz
-z2t1elf
-z2t1eljá
-z2t1ellát
-z2t1elm
-z2telnö
-z2t1e2lo
-zt1e2lőadá
-z2t1e2lőc
-z2t1elr
-z2t1eltá
-z2t1elto
-z2t1ember
-z2t1e2mel
-z2t1eml
-z2tent
-zt1ente
-zte2raj
-zte2rak
-zte2rál
-zte2rár
-z2terde
-ztere2ot
-zte2repo
-zte2rill
-zte2ris
-zte2riz
-zte2rosz
-z2t1e2rot
-z2t1e2ró
-z2t1erő
-zte2r1ü2lé
-zte2sz
-z2t1esze
-z2t1eszé
-z2t1eszk
-z2t1ezr
-zt1ég.
-zt1égb
-zt1é2gé
-zt1égr
-z2t1é2j
-zté2k1e2l
-z2t1ékné
-z2t1é2le
-z2télé
-zt1é2lés
-z2t1élm
-z2t1é2lő
-z2t1élt
-zt1élű
-z2t1épü
-zté2rá
-z2t1érd
-z2t1érl
-z2t1érté
-z2t1érz
-zté2sz
-z2t1észh
-z2t1észn
-zté2tét
-z2t1étk
-zt1é2ves.
-zt1évt
-zt1fl
-zt1fr
-zt1gr
-z1t2hen
-ztia2g
-zt1i2den
-z2t1idé
-z2tidi
-z2t1ifj
-z2t1i2gé
-z2t1i2kon
-z2t1ille
-z2timá
-z2t1imp
-z2t1ind
-z2tinfe
-z2t1info
-z2t1ing.
-z2t1ingá
-z2t1ingb
-z2t1inge
-z2t1ingé
-z2t1ingg
-z2tingu
-z2t1inte
-z2t1inté
-z2t1invá
-zti2p
-z2t1ipa
-z2t1irá
-z2t1isk
-z2t1ism
-z2t1istá
-z2t1iste
-z2tital
-z2t1i2tat
-z2t1íj
-z2t1í2r
-zt1í2veke
-zt1kl
-zt1kr
-zt1kv
-z2toi
-z2t1o2koz
-z2t1oltó
-zto2lyag
-zt1ope
-zto2ras
-zto2r1e
-z2t1orgi
-ztorkész1
-zt1ornam
-z2torrú
-z2torvo
-z2t1oszl
-zt1osztá
-ztóá2
-ztóigaz1
-z2t1ó2ni
-ztó1p2
-ztó1sp
-ztó1tr
-zt1öko
-ztö2l
-z2t1öle
-ztön3n
-ztö2röks
-z2t1öss
-zt1ö2vez
-zt1övig
-z2t1öz
-ztőa2
-ztőe2l
-ztőé2b
-z2t1őrh
-zt1őrl
-z2t1őrs
-zt1ő2sei
-z2t1ő2sö
-zt1ősű
-zt1pl
-zt1pr
-zt1ps
-z1tranz
-zt2rádá
-z1t2rág
-z1tréf
-z1t2rén
-z1trikó
-z1tril
-z1t2rió
-z1t2rü
-zt1sl
-zt1sn
-zt1sp
-zt1st
-zt1sz
-zt1t2r
-z2t1udv
-z2t1ug
-z2t1ura
-z2t1uru
-ztus3s
-zt1u2tat
-z2t1utu
-z2t1új
-z2t1úr.
-z2t1úrb
-z2t1ú2ré
-z2t1úrh
-z2t1ú2ri
-z2t1úrk
-z2t1úrn
-z2t1ú2ro
-z2t1úrr
-z2t1úrt
-z2t1üg
-ztü2lé
-z2t1ülés
-ztül1l
-z2t1üt
-z2t1ü2v
-zt1ü2zem
-z2t1űr.
-z2t1ű2ri
-z2tye
-1zu
-zu2b1a
-3zubb
-zu2b1i
-zu2bu
-zu2c3s
-3zug.
-zu2gag
-zu2gap
-zu2gáru
-zu2g1ás
-3zugb
-zu2g1e2
-zu2gé
-zu2gin
-zu2git
-zu2giv
-zu2gí
-3zugo
-zu2g1or
-zu2gö
-zu2gü
-zu2gű
-3zuha
-zule2
-zu2lel
-zu2l1enc
-zu2l1es
-zuli2ná
-zu2lú
-zulya2
-zu2ly1ag
-zu2mab
-zu2m1a2d
-zu2maj
-zu2mal
-zu2mar
-zu2m1as
-zume2
-zumegyez1
-zu2mel
-zu2m1en
-zu2mél
-zu2m1é2n
-zu2m1id
-zu2m1in
-zu2m1i2p
-zu2mí
-zumkész1
-zu2mol
-zu2mő
-zu2mur
-zu2mü
-2zund
-z1undo
-zu2ne
-zu2n1é
-2zuni
-zu2n1ö2
-zu2ral
-zu2ram
-zurat2
-2z1urn
-zu2rú
-zu2sad
-zus1aka
-zu2sal
-zusa2n
-zus1any
-zu2sas
-zu2s1ág
-zu2s1e2
-zu2s1érté
-zu2sis
-zu2s1í
-zuskész1
-zu2s1ol
-zu2s1ó2
-zu2ső
-zuss2
-zussz2
-zus3sze
-zus3szi
-zust2
-zus1tr
-zu2s1ü2
-zu2sz1i2k
-zu2szon
-zu2s3zó
-2z1u2ta
-z1u2tá
-2z1utc
-zu2tol
-zu2tó.
-zu2tób
-zu2tói
-zu2tój
-zu2tón
-z1u2tu
-1zú
-zú1dr
-zú1fl
-3zúgá
-z1újd
-z1ú2jé
-z1ú2jí
-z1újs
-zú2r1e2
-zúré2t
-z1ú2szás
-zú2té.
-z1ú2tér
-z1úth
-z1úti
-zú2ti.
-zú2tiak.
-3z2útiaka
-zú2tiakr
-zú2tib
-zú2tig
-zú2tih
-zú2tin
-zú2tiv
-z1ú2tí
-z1útj
-z1útn
-z1ú2ton
-z1útró
-z1útt
-zú2tü
-z1útv
-3zúzá
-3zúzd
-3zúzó
-1zü
-zü2dü
-zügy1és
-z1ügyk
-z1üldö
-z1ü2lep
-z1ü2lőseb
-z1ü2lőset
-zü2ni
-2zünn
-zü2rí
-z1ü2rü
-z1ü2te
-z1ü2té
-z1ütk
-z1ü2tő
-zü2ve
-zü2vö
-zü2zen
-z1üzl
-1zű
-zű2csa
-zű2csá
-zű2csip
-zű2cs1o
-zű2ra
-zű2rá
-zűrés3s
-zű2r1i2z
-z1űrla
-zű2ró
-zű2ru
-zű2z1a2
-zű2z1á
-zű2ze
-zűzé2r
-zű2z1ére
-zű2zo
-z1ű2ző
-zű2zs
-zű2zú
-zva2su
-zvárosé2
-zváro2s1om
-zve2gya
-zvé2nyel
-z2vit.
-zvi2tác
-z2vitj
-zy1ak
-z1yar
-zy2be
-zy2je
-zy2ne
-zy2né
-zy2re
-zy2rő
-zy2sa
-zy2so
-zy2tő
-zy2ve
-z2z1áll
-zzá2r1ó2r
-zzát2
-zzá1tr
-zzi2n1é2
-zz2le
-zz1ly
-z2zs
-z3zsák
-z3zsám
-z3zsi
-z3zsí
-z3zso} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-is.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-is.hyp
deleted file mode 100644
index fbb10dc85d9..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-is.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-is.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-is.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-is.pat
deleted file mode 100644
index e365f707214..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-is.pat
+++ /dev/null
@@ -1,4195 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-is.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u v w x y z á æ é í ð ó ö ú ý þ
-
-\patterns{
-.að3
-.aða4
-.aðk2
-.aðl4a
-.af3n
-.af3re
-.afr3í
-.af1s4
-.agn5ú
-.al3e
-.al4l
-.am4s
-.an3k
-.ann4e
-.ar2
-.ar3a4b5
-.arth5
-.asp3
-.aum5a
-.ám4
-.án4a
-.ba4
-.da4
-.dam5a
-.dav3
-.dr4
-.ds4
-.du4
-.dust5
-.ed5ik
-.eftir5
-.eigin5g
-.eink4
-.ekt4
-.er4m
-.eyf2
-.fa4
-.fi4
-.fjár3
-.fl4
-.fla4
-.fr4
-.frá1
-.ga2
-.gar4
-.gas5l
-.gd4
-.gem5
-.gja2
-.gl2
-.gr4
-.gu4
-.her5sk
-.il4
-.ingj5
-.is4m
-.ís1l
-.ja2
-.jar4
-.ka4
-.kal5e
-.kam5e
-.kapí3
-.kart5
-.kast3
-.kn4
-.kr4
-.kur4
-.la4
-.lag5e
-.leik5sv
-.líb5
-.lu4
-.ma2
-.maj5
-.mak5r
-.mi4
-.mj4
-.mu4
-.mynst4
-.na2
-.ní5f
-.ný5f
-.ol4íu.
-.óa4
-.óð5al
-.óf4
-.óg2
-.ók4
-.óm4i
-.ós2
-.pa4
-.pl4
-.ra2
-.ram4
-.rí4
-.róð4
-.rúm3
-.saman5
-.sk4
-.ski4
-.skj4
-.skr4
-.sl2
-.sm4
-.smá3l
-.sn4
-.snar5a
-.sp4
-.spr4
-.st4
-.sta2
-.ta4
-.ti2
-.til3
-.tí5f
-.tr4
-.tu2
-.tví1
-.ung3l
-.unn5usta
-.úr1
-.út1
-.út5s
-.vegg5s
-.vist3
-.yfir3
-.ævi3s
-.öfl3
-.ögr5
-.ör3s
-.öt3u
-2a3a4
-a4ab
-a4ad
-2a1á2
-2a1b
-ab4a
-3abís
-a5by
-abæk4l
-4ac
-2a1d4
-a5dó
-a4du
-1að
-4aðað
-að3al
-að3ar
-2aðfa
-4aðfö
-að3g
-að3i
-2aðl
-að4li
-4að2m
-2aðsh
-3aðu.
-2aðv
-2a1e
-a5ei
-a4es
-2af
-af3ald
-af3arn
-a3fá
-af4fr
-af3g
-a1fj
-a3fló
-a1flu
-af5ork
-a1fr
-af3ré
-afr4u
-a5fræ
-4afsd
-af1sk
-4afsso
-af2u
-a1ful
-a1fun
-3afurð
-2ag
-a3gau
-ag5ál
-ag5is
-a5gj
-agn4ara
-ag2ne
-ag5ot
-a1gr
-ag4ra
-ags4ið
-ag4sp
-ag4stj
-ag4ul
-ag3æð
-4a1h
-4ai
-a3ið
-a4in
-aí4h
-2aj
-a3jö
-2ak
-akaup4s
-a5ká
-a1ke
-a5kinnin
-a5kistu
-a1kj
-ak5rei
-aks4l
-4akss
-ak3u
-a3kv
-a5ky
-a5ký
-a3kö
-2al
-a1lag
-4aland
-a5landið
-a5landinu
-alas4
-alá4
-a4lem
-al3er
-al1f
-al1g
-5alge
-3alh
-alis4
-al4ín
-al3kj
-alk5s
-al3k2u
-al4lí
-all2s
-allst4
-al4lý
-4almað
-al5mann
-al5m2i
-a3log
-a5lok
-al5op
-a5lóð
-al4sæt
-al5up
-al5ú
-al3v4
-a3ly
-a1læ
-a1lö
-2am
-am3ang
-a3mann
-am3ari
-am3ars
-am3a4s
-am3dr
-a3mí
-am3k
-am2m
-amm4is
-a1mó
-am3se
-ams2i
-am1t
-1an
-3an.
-3ana.
-an3ada
-4anag
-2anal
-4anau
-2aná
-4and.
-and1e
-4an4dí
-andr4
-4andö
-4ane
-an5ei
-2ang
-an4ga
-ang1d
-an4gj
-ang5spi
-an2g3ö
-4anib
-4anið
-an5ín
-2ank
-ank5l
-ank3v
-3anm
-ann5d
-4annf
-4annh
-ann1k
-4annl
-4anns
-annsk4
-4an4o
-anst4
-an3sti
-an3tí
-3anu
-4anú
-4aný
-4anæ
-4anö
-2a3o
-2a3ó
-2ap
-ap3al
-a3per
-a3pil
-a3po
-a5pre
-ap3te
-a5p4un
-a5pör
-1ar
-3ar.
-ar3afu
-ara5kr
-ar3ang
-4arani
-ar4arp
-ar2as
-ar5ast.
-ar3au
-2ará4
-4aráð
-5ar3ák
-3ar3ár
-3ar1ás
-ar1át
-3ard2
-4ardí
-4arð.
-arðar5á
-4arði
-4arðs
-3arðu.
-2are
-3ar1ef
-4aref.
-5areig
-5arein
-a3rek
-ar3el
-ar3en
-ar5er
-a3ret
-4a1ré
-2arf
-3arfe
-3arfé
-arfs3k
-ar1fu
-ar3gj
-ar4græ
-args4
-arg3sl
-4ar5ið
-4arif
-ar3in
-ar4ind
-ar5ist.
-4a5rit
-4a1rí
-ar3j4
-4ark.
-ark4is
-ar5kj
-ar3kr4
-4arms
-ar3mú
-4arna.
-4aroð
-4arol
-4arot
-2aró
-2arp
-4arra
-arr2i
-arr4u
-ar4sá
-3arse
-ar1sk
-ar4spi
-arst4
-5arstí
-ar3su
-ar5til
-artr2
-ar5trað
-ar3u
-ar4uð
-4ar4ug
-5arum
-2ar1ú
-a5rús
-ar3v4
-ar3yf
-4arý
-2aræ
-a3ræð
-ar5æv
-4arö
-as2
-4a1sa
-as3an
-2a3sá
-4ase
-4asé
-2asi
-a5sinna
-2asj
-4a1sk
-2asl
-a3slag
-2a1sm
-4asn
-4aso
-4asó
-2asp
-aspít4
-4ass
-ass4v
-1ast
-4astað
-ast4and
-4astau
-4aste
-4asté
-4astig
-4astin
-ast4ing
-4astirð
-4a1stí
-4astj
-ast3l
-4asto
-2astó
-4astrá
-ast5ráð
-4astrí
-4a3stræ
-4aströ
-4astul
-4a3st4un
-4astú
-4a3sty
-4astæ
-4astö
-2a1su
-2a1sv
-4as4y
-2asý
-4asæ
-2asö
-2at
-at3að
-a3tak
-a3tal
-at4anv
-ata4r
-a1te
-at3ey
-3ath
-a1til
-a3tj
-3atk
-atns3
-a4tó
-atr4a
-at1re
-3at1ri
-at2sp
-a5t2un
-a1tú
-at4ve
-3atvi
-a1tö
-2a4u2
-4auð.
-auð5li
-5auðn
-aug4as
-au4m
-aum5ba
-aum5un
-aun5dr
-aup5e
-aup3l
-a5upp
-au4s
-ausa5m
-au4t
-2a1ú
-2a1v
-av4ar.
-a3vir
-2ay
-a5yf
-4az
-2a1þ
-a2þó
-2a3æ
-4a5ö
-á1a
-áak4
-áa5lo
-á1b
-á4bu
-á1d4
-4áð
-áð2s
-áð3sn
-áð3sta
-áð2u
-áð3us
-á1e
-áf2
-á5fá
-á5fí
-á3fl
-áflæð4
-áf5un
-ág2i
-ágl4
-ágr2
-ág1s
-ág3v
-á1h
-á1i
-ák2a
-ákam4
-ákap4
-ákó4
-ála3m
-ál3arf
-ál2as
-á5lau
-á3let
-álf3d4
-álf5sk
-ál4m
-álm5an
-álm5u
-álp3
-ál4se
-ál5sva
-ál5ug
-á5lú
-ál3æð
-2ám
-ámál5a
-ámsl4
-á2n
-án4aro
-án2as
-án4o
-á3ný
-5ánæ
-á3o
-4áp
-ára5g
-ár3an
-árar4
-á5ré
-ár3f4
-ár5g
-ár5k4
-ár1m
-árns4
-árn5sl
-ár2st
-ár5t
-ár1u
-ár3v
-á5ræ
-ás5en
-á1sk
-á2ska
-á4ske
-á3s4l
-ás2m
-ást2
-ást5i
-ást5ráð
-ást5rík
-ást5v
-4ásu4
-ás5va
-át3að
-á1te
-átr4as
-áttar3
-5áttin.
-átt3un
-á1tæ
-á1u
-áuk4
-á3ve
-á3ví
-á1væ
-á1þ
-á5æð
-b2a
-4ba.
-baðk4
-ba4h
-bak5sl
-ba2n
-4bana
-4baní
-bank5an
-4bans
-b5ant
-bar2b
-barð4as
-bar2n
-bá4s
-2b4b
-bb3að
-bb3an
-bb5arn
-bb3i
-bb3uð
-1be
-bess4
-b2i2
-bið5i
-bið5lis
-bið5r4
-bif1
-bilj5
-bill5
-4binn
-bisk3
-b4it
-bit2a
-4bía
-2b3ís
-2b3íu
-3bj
-bjar2
-b4l2
-bl4íunn
-4bn
-5bo
-3bó4
-bók3s
-b4r2
-br5að
-bra4s
-3bro
-br4u
-3brú
-4bum4
-bur2
-3burð
-burst5að
-bu4s
-1bú
-búf4
-bú3sta
-1by
-1bý
-bæk2i
-bæn4a
-1bær
-b5ættism
-1bö
-4böki
-c4a
-ci4
-ck4
-4da.
-daf4
-dak2
-3dal.
-5dals
-da1m4
-d5ang
-d4aní
-d4arad
-d4ar4að
-dar4ár
-d3arf
-d5arp
-dask4
-da3sl
-4dav
-d1b
-2dd
-4dea
-d5ef
-3deg
-1deil
-d1en
-d5eó
-5dep
-d1f4
-d1g2
-d4gi
-d1h
-d1i
-di5fu
-d3ill
-dim4
-di3ma
-di3nav
-d2ine
-dir3s
-dí3d
-d5íð
-d5ínu
-3dís
-dív3
-3dj4
-djarf5a
-d1k2
-d1l2
-d2la
-dl3að
-d3lag
-d3lau
-d4lið
-dl3u
-d1m
-d5olf
-d5óð
-d3óf
-dó5lí
-1dó2m
-dóm5an
-dó5ne
-3dór
-dó2s
-dós5e
-4dq
-d5raðf
-dr4aðs5
-d5raðst
-drafn4
-dr4ara
-3dreg
-d5reip
-d5rey
-d5riða
-d3rík
-d5roð
-dru4
-d4ræt
-2ds
-d5sal
-d4sjö
-dsk2
-ds4ko
-ds5kun
-ds1l
-d5snö
-ds1s4
-d1st4
-d4sti
-ds4uð
-d4söf
-d1t2
-d1u
-duf4
-5duft
-duk4
-d4umb
-du5ræ
-d4usta
-d3ún
-dún4a
-dút4
-d1v4
-4dw
-1dy
-1dý
-d3þ
-1dæ
-4dæf
-4dær
-3dö
-ð1a
-ðaf4
-ða3g
-ðak4
-ð4albo
-ð3ald
-ðal4is
-ð4a1m4
-ð3a4n
-ðanmeg4
-ðar1a
-ð3ar3f
-ðar3l
-ðar4lis
-ðar3t4
-ð3arú
-ðat4a
-ð3au
-ð3á2
-ð1b
-ð1d2
-ð1e
-ð3f4
-ð1g
-ð2ga
-ð2gi
-ðg4l
-ð4gn
-ðgu4
-ð3g4ul
-ð1h
-ð1i
-ði3g
-ðik4
-ð3in
-ðis5l
-ðist4
-ð4ista
-ðis4ve
-ðj3as
-ð3jó
-ð4ju
-ð3ke
-ð1kr
-ðk2un
-ð3kunn
-ð1kv
-ð1lá
-ðl2in
-ðl4ist
-ð3lí
-ðl4ur
-ð1læ
-ð1m2
-ðnum4
-ð3o
-ð3ó
-ð1p2
-ðr5át
-ð1re
-ð1ré
-ð3rik
-ð3rík
-ð5ró
-ðr1u
-ð3rú
-ð1ræ
-ðræðis5
-ðs5afl
-ðs5á
-ð4seg
-ðs4inn
-ð1sk
-ðskr4
-ð4skú
-ðs5kv
-ð4skö
-ðs4lu
-ð2so
-ðs3or
-ðss4
-ð1st2
-ð2stí
-ð3stö
-ðs4u
-ð4svi
-ð2sæ
-ð1t4
-ð1u
-ð3uð
-ð3ug
-ð3ull
-ð5uls
-ð5unn
-ð3unu
-ð3ur
-ður5á
-ður3f
-ður5g4
-ður5st
-ð1v
-ðv5að
-ðv3ann
-ðv3arn
-ð1y
-ð5ý
-ð1þ
-eat4
-ebr5e
-ed4e
-e1dik
-ed3it
-eð3a2
-eðal1
-eð3il
-eð4is
-e2f
-e3fal
-ef3i
-efj5an
-ef4n
-4eft.
-2efts5
-eg4ge
-eg3i
-egr5u
-eg3u4l
-egur4s
-e4i
-eið5ar
-eið4st
-eif4as
-ei4ka
-eik3li
-eik3u
-eil3ag
-eil5ö
-ei2m
-eim5u
-eing4
-1eink
-4eino
-eist5að
-e4k
-ek2is
-ekj5a
-ekn3
-ek3u
-ek5ú
-e2l
-el5ás
-el4d
-el3eg
-elf3in
-el4gr
-el1i
-4elí
-el3ín
-el4ke
-el2l
-ell5an
-ell3e
-elleg4
-el3ó
-el3r
-el1sí
-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á
-4erð
-5ere
-er5et
-erf5ar
-er2fr
-erf3u
-erg5l
-er4gr
-er3i
-er2k
-er4la
-erl3i
-er4lí
-er4mi
-erm5in
-er5ól
-er5skj
-er1un
-er2v
-er3ö
-eröf4
-e2s
-es3a
-es4ban
-es4bu
-4esj
-e5ske
-4eso
-esp3a
-es2s
-est3að
-est5ö
-e3sæ
-etik4
-et5ils
-etna4
-et5o
-etr5an
-etr3u
-etul4
-et2us
-ext4u
-5eyrar
-é3b
-é1d
-éð2s
-é3fe
-é1g4
-é5ky
-é1l
-éla4g
-él4ara
-é2li
-é4lj
-él3r
-ér1
-ér4á
-ér4r
-érs4
-ér4un
-ér3v
-é3sm
-étt4ug
-ét4un
-étur4
-f3að
-fa2g
-fa5k
-1fall
-fal4u
-fa4ná
-fa5p4
-f2ar
-f3arð
-f4are
-f4arg
-farka5l
-f3arl
-fast3e
-fá3f
-f5áns
-fá3rá
-fá3ta
-fá3v
-f1b4
-fd2an
-f1dr
-f5dú
-fða4l
-1fe
-f3ef
-f3ein
-3fel
-f3end
-ferl5i
-fer3t
-f1ey
-1fé
-f4fa
-f2fo
-f1fr
-ff4st
-ffær4a
-f1g2
-f2ga
-f2gi
-fg4n
-f1h
-f3ið
-fik4
-f5il.
-f5ili
-f3ill
-f5ils
-f5ilv
-fim3a
-f4ine
-f3inu
-3firði
-f3irðu
-firg2
-f3irn
-1firs
-3f4isk
-fi5so
-f3ist.
-f3istu
-fis5v
-fí4
-f5íkv
-f3ís
-fj4a
-fj5aðu
-fj5ann
-fj4e
-f1k2
-fl3and
-fl4at
-3flata
-f5lát
-f4len
-fl5g
-1flo
-5flut
-flv4
-4flý
-1flö
-f1m
-4fn
-fn1g
-f5n4í
-fn3k
-fn5ok
-1fo
-4fop
-forf4
-fork4
-1fó
-fr2
-4fra.
-fr3að
-fra4m
-fram3l
-fr5and
-4frar
-2fri.
-fr5in
-frí5m4
-f3róf
-fru4
-fr3uð
-1fræ
-2f3ræk
-4fræn
-fs3á
-f4sel
-f4skaf
-fsl4
-fs3li
-fs5na
-f2so
-fs5or
-fsr4
-fss4
-f4sti
-f5s4tæ
-fs1v
-f4sæ
-ft3að
-fta4sk
-ft5á
-f3te
-ft2s
-fts5l
-ft3u
-ft4ul
-f1u
-4fu.
-f3uð
-3fugl
-fund4as
-2f3ur
-5furðul
-fur5e
-furs4
-fur3t
-4f2us
-f5ust.
-f3ustu
-f1v4
-1fy
-f3yrt
-f1þ
-1fæ
-1fö
-för4l
-g1a
-4ga.
-4g3að
-gaf4ar
-gagl4
-3gagn
-gak4
-ga4lag
-gal4is
-5gals
-5galt
-gam3al
-gam4i
-g5and
-1gang
-gap4a
-g4ard.
-g2arð
-3garð.
-3garða
-3garði
-3garð4s
-5garður
-g3ar3f
-gar4kl
-gar3l
-gar3t
-4gas
-g4as.
-g4así
-g3ast.
-ga5stað
-1gata
-gat4r
-gá2
-3gáf
-gá5le
-g1b
-gd4ans
-g3de
-g4du
-gd4v
-gð4aro
-1ge
-3gei
-2g1el
-gen4
-g5end
-3geng
-g3ent
-5gerð
-ger5í
-germ4
-gerv5a
-get3r
-g1f2
-ggis5
-ggjaf3
-ggj5ar
-gg5rá
-gg3ræ
-ggs4v
-gg3ug
-gg2v
-g4gö
-g1h
-g1i
-4gi.
-4gik
-gi5kv
-3gild
-g5ill
-5gilt
-gim4a
-4g3i4n
-gis4a
-g4isp
-g5istæ
-gír5a
-gís4
-gjaf5ar
-gjaf5o
-gjak4
-gjal4
-gj4asta
-1gjö
-g1k4
-gkal4
-g1lá
-g4leð
-g3leg
-gl5é
-gl3f2
-g3lit
-g5lín
-gl3ót
-glsk4
-3glugg
-glu3s
-gl4y
-g3lær
-g1m4
-gnap4
-gnart4
-g4ná
-gn3g
-g3nó
-gn4se
-gn5ug
-g4ný.
-3gol
-g3or
-3góð
-gór5
-gó4ur
-g1p
-g3rak4
-gr4an
-gra2s
-gras5sv
-g2rá
-1grei
-g3reis
-g5reyð
-gr2i
-2gri.
-grið4
-g3rík
-3gró
-3grund
-3grunn
-g3ræði
-g2ræn
-4gs
-gs1á
-g4sei
-gsk4
-gs4len
-gsl2u
-gs4lö
-gs3m
-gs5or
-gs3s4
-gs4si
-gs1v
-gt3að
-g3te
-gt4s
-2g1u
-g4uði
-guðl4
-5g2uðs
-guð4só
-g3uðu
-5gufu
-gu4lagi
-g5ulin
-g3ull
-g3uls
-gu5mið
-g3un
-gurf4
-gur3g
-g4usta
-g3ú
-gúst5a
-g1v
-g2va
-g3val
-5gyð
-g1þ
-1gæ
-gæð4as
-gæl4
-gær3
-1gö4
-h2a4
-4ha.
-hað4
-haf4sp
-hand5r
-hat3r
-há3g
-hál4
-há3re
-há4ski
-há5sta
-hás4u
-hát4
-há5ti
-hátr4
-há1v
-he4
-hei2
-hellis5
-hen2r
-herk4
-her3l4
-hersk4
-4hersla
-hey5st
-4hg
-h4i
-hig4
-him5b
-hin4
-hit4as
-hit4n
-2hí2
-h5ía
-hí5b
-hj4
-h2l2
-4hl.
-4hls
-hlu4
-h4n2
-hnja4
-hnjá3l
-holl3u
-horm5
-hó2
-hóm5e
-hót3
-hr4
-4hs
-hu4
-hug1r
-hug3u
-hul5i
-hundr4
-hú2
-húm3
-4húr
-hús5k
-hv4
-hvar4
-hvik3
-5hy
-hæf5a
-hætt4us
-höst3
-2ia
-i5as
-4i5á
-4i1b
-ibb3
-ibl3í
-4ic
-2id4
-i3da
-i1de
-i3dr
-1ið.
-4iðf
-2ið3g
-ið5jarð
-4iðr
-4iðs
-ið5sal
-2iðu
-4ie
-i3ef
-4if
-if5arn
-ifat4
-i2fen
-if4g
-if3is
-if4t
-i4fy
-4i2g
-iga3m
-igð5u
-ig1en
-ig5rí
-2i1h
-2ii
-i5ið
-4ij
-4ik
-ik5á
-ik3i
-ik4is
-ikt5o
-i4kvö
-2il
-ila2g
-il4ara
-i1lá
-4ile
-ilf4a
-il1fi
-il1g4
-i5liðu
-il5in
-il3ip
-il5ís
-ilí4um
-il4kv
-il3lag
-ill5an
-il3lá
-i1lo
-il4sa
-il1sk
-il3sn
-ilst4
-ilæk4
-i5lön
-4im
-im4b
-imb3u
-im3i
-im4ið
-im4la
-im4m
-i5mó
-im4sv
-1i2n
-4inaf
-in3an
-4inar
-inat5r
-2i3nau
-2ina2v
-inav3í
-4iná
-4ind.
-in4ga
-ingj6arni
-4ingr
-ingv4
-2inns
-2innu
-in1o
-4inó
-in1s4k
-in2sp
-in3sta
-in5ul
-4iný
-2i3o
-4ió
-2ip
-i5pil
-3ir.
-4ira
-2i1rá
-2irði
-4irðn
-4ire
-4iré
-irf2i
-4irfs
-4irig
-2irit
-4i1rí
-2irk
-irk3u
-ir3l
-ir1m4
-4irnd
-4irni.
-4irnin
-4irnis
-4iró
-irs4á
-irst4
-ir3tal
-irt5i
-4irtl
-irt4ö
-ir3ug
-4irú
-4irö
-i2s
-1is.
-2isa
-4isag
-i5saga
-i3sam
-is2as
-3isd
-2ise
-4ishv
-3isins
-4isí4
-4isj
-i3sjó
-2isk
-is4ka
-isk5el
-iski3m
-isk5inn.
-3isko
-isk2u
-isk1v
-5iskö
-2islé
-is3læ
-5isma
-is5me
-4isni
-isp3að
-isp3u
-iss2i
-is5sú
-ist3al
-2iste
-4isté
-4istig
-i5stik
-ist4is
-ist5ín
-4isto
-4istó
-4isty
-4istæ
-2istö
-is5tök
-is1v
-4isvi
-is4við
-5isvin
-i3svæ
-2isö
-2it
-it3að
-it5ann
-i5tei
-4ith
-it4ha
-it5ill
-itis4m
-it2ka
-itn5es
-it3rí
-it4stö
-it3un
-it4urn
-it4ve
-4iu
-4iú
-4i1v
-i2v5ís
-4ixs
-2i3þ
-4iæ
-4iö
-í1a
-4í5ak
-íal3
-í5ald
-í3ali
-í2as
-í5at
-í5au
-í5á
-íb4a
-í5bar
-í4be
-5íbú
-í5dag
-íð2s3
-íðsk4
-í3el
-í3en
-íet3n
-í5ett
-í2f
-íf3eð
-í4f3i
-íf5rí
-ífs3k
-íf4sp
-í2g
-íg3e
-í3gil
-í1h
-í1i
-ík3a4
-4ík4anar
-4ík4ani
-ík5is
-íkk2i
-5íkm
-ík2n
-íkn5e
-ík4s
-ík3us
-2íl
-ílak4
-íl2as
-íl5ár
-íl5f4
-í3lí
-5ílmá
-íl3sk
-4ím
-ím3að
-íma3l4
-ím3an
-ím4g
-ím5o
-ím5t
-ím3un
-í2n
-í5ná
-ín5e
-ín3ge
-ín5t
-ínu3g4
-ín3ú
-í3óp
-íóp5íu
-4íp
-ír5ak
-íra4s
-í4r5i
-ír4sv
-ír3t
-í1ræ
-ír5ö
-í2se
-í4s5j
-ísl2
-3íslen
-ísl5i
-ís2m
-í2st
-ís5ter
-ít5að
-ít5als
-ít3i
-ítj5
-ít3re
-ítr5ó
-4íub
-í5uð
-4íul
-íu1ma
-í3un
-íu5p
-í3ur
-í4ura
-4íusa
-íu3t
-4íuv
-ívo4
-í5þ
-j2a
-j3að
-j5aði
-3jaf4n
-ja5kl
-jal2
-jal5ið
-ja5ló
-j4am
-j3an
-j4aram
-j3ari
-jark4i
-jarn4ið
-j4aræ
-jas4
-jask4u
-j3ast
-jál5as
-jál4f
-jálf3a
-3járn
-jár4u
-jáv3
-jávar5
-j1e
-jend4a
-j4ep
-j4er
-j4et
-j1i
-jó5b
-jó5fr
-jó2s
-jó5ug
-jó3ve
-j1u
-juf4
-jug2
-jug5as
-ju4gó
-j4u1l2
-jur4e
-5j2urt
-jurt4i
-j2us4
-j3ust.
-3jöfn
-3jök
-jöl3k
-jöl1m
-kað4s
-kaf4an
-ka4fr
-kag4as
-ka4j
-kaj5a
-kak4l
-kal2
-3kald
-4kalf
-k4all
-3kam4b
-kam2s5
-k3ana
-k4anaf
-k3ann.
-k4anó
-k4ant
-5kanta
-4kapa
-kark4
-1k2ar2l
-k4arm
-k3arn
-kar2r
-k4art
-kar4v
-kask4
-3kass
-5kastal
-k5astu.
-1kau
-5kaup
-kák5
-kám3
-k1b
-k1d4
-2k1end
-3kenn
-3kerf
-5kerl
-ker4m
-k1f4
-kfalls5
-k3g
-kgl4
-k1h
-k3ið
-kið5l
-kig4
-k5ill
-k5ilsi
-kim2
-k5ing
-k4ip
-k1ir
-k3irð
-5kirk
-k5irn
-k4irt
-k1is
-k5ise
-kisk4
-k3ist.
-k4it
-ki3te
-3kíl
-kís3
-kít3u
-kja4l
-kjar4a
-kjar5f
-kju3g
-1kjö
-3kjör
-kka5l
-kk5e
-kkj1ó
-k2kl
-kk1lá
-kk4li
-kk3rí
-kk4se
-kkul4
-kkv5ið
-kl2
-kl3að
-kl3ann
-klá4
-5klef
-kleif5a
-k4lem
-k1lin
-3klj
-3kluk
-3klú
-1klæ
-k1m2
-k4mið.
-kn3ar
-k2ney
-kni5svi
-3knú
-1ko
-2kob
-koff5
-kol5d
-kol4l
-kol5sv
-3kon
-4kons
-3kos
-kot4as
-kó3d
-kó3m4
-kór5a
-k1ótt
-kra5l
-kr2as
-k2rá
-k5ré
-kr2i
-krif3a
-1krö
-3kröf
-4ks
-ks4lí
-ks4lö
-ks4má
-ks4n
-ksp4
-k4ste
-k4stó
-k4str
-ksyf4
-kt3að
-kt5er
-k4tí
-k3tora
-k5ty
-2k1u
-k3uð
-k4uði
-kuf4
-kuk4
-kulegr4
-kum4
-kumb5
-k5un.
-k5una.
-k3unar
-k5uni
-5kunnátta
-k3unu
-k3ups
-k2urð
-kur5k
-k2us
-ku5sl
-k3ust.
-k5ustum
-ku3sty
-kú2
-3kúlu
-k3ún
-kú3re
-kút4us
-3kven
-4kvé
-4kvu
-kv4un.
-1k4væ
-3kvö
-4kvör
-k5þ
-3kök
-5köld
-5könn
-5kös
-2la.
-4lac
-la4dan
-2lað
-lað4al
-4laf
-laf4as
-laf4r
-l3afs
-3lagð
-4lage
-2lak
-la5kó
-la1l2
-l3ald
-lam4b
-2lana
-l2and
-3land.
-3lands
-1lang
-lank5as
-4lann
-l5anna.
-l4anó
-lan4t
-la3pl4
-2lar
-l4aram
-l4are
-larg4
-l4aris
-l3arn
-la3ró
-lart4
-l4ary
-2las
-las3i
-las3le
-la5sli
-last5að
-lat3ín
-lat4u
-1lau
-2laum
-laut5as
-lá2g
-lám5a
-lán5e
-4lár
-lá4t
-5látum
-lá3v
-2l1b
-2ld
-ld3ar
-ld3d
-ldem4
-ld3ey
-ldig4
-ldr4as
-ld5rau
-l4dri
-ld5ro
-ldr3ó
-1le
-4le.
-2lef
-l1efn
-4legn
-leif5as
-leik3v
-4lein
-4lek
-4lel
-4lenn
-4lep
-2ler
-le5rí
-les5e
-2let
-l3ex
-2ley.
-4leyj
-2leym
-lf4as
-lf5át
-lf4dr
-lf3f
-lf2i
-lf5inn.
-l3fj
-lf2l
-lfla4
-l4fó
-lf4sp
-lftr4
-lft4un
-4lg
-lg2a
-lgar4s
-lg5ast
-l1gá
-l4ges
-lgil4
-lg4isi
-lg3í
-lgl4
-lgni5s
-l1gr
-lg4ú
-l1h
-4li.
-lik4a
-li5kv
-lil2
-li5la
-li3li
-l2ind
-4lingsá
-l3inn
-l5inn.
-2l3inu
-4l3ir
-l1is
-l5is.
-l4isá
-l3isi
-lisk4
-l5isr
-l4isti
-l5istu.
-lit4ar
-3litl
-l3ía.
-lí4b
-1líf
-líf5a
-lík3k
-lím5ug
-4líp
-1lít
-l1íu
-l4íuf
-l4íuh
-l4íutr
-lj3ar
-lj5arð
-1ljós
-ljós5k
-ljós3l
-lj3ug
-ljur4
-lj4uru
-2lk
-lkap4
-lk4as
-l1ke
-l3kr
-l3kúr
-l1kv
-l3ky
-2ll
-ll3et
-l4ley
-ll3f
-ll1g2
-ll3iða
-lli3g
-lliss4
-l1lit
-llít4
-ll3k4
-ll3m
-ll1ót
-lls5tæ
-ll5te
-ll5ug
-ll3v
-2lm
-lm5ari
-lm3ars
-lmb4
-l3me
-l1mó
-lnar4
-ln4ið
-l5no
-lo4
-5loð
-5loki
-4lon
-4l1or
-5los
-lóð3r
-ló5gr
-ló4ma
-lp5t
-2l1r
-l2ri
-l3rit
-2ls
-lsí4
-l2sj4
-l5skin
-ls4kon
-ls4nesi
-l3stað
-lst4in
-ls1ve
-4lt
-lt3að
-l5til
-lt4s
-lt4ú
-l1tæ
-2lu
-4lu.
-l3uð
-lugl4
-luk4i
-l4u1l4
-l1um
-lu1ma
-l1un
-3lund
-l3unu
-lu5pe
-l1ur
-2l1v
-l2va
-lv3að
-l3val
-l4víu
-ly4
-3lyf
-1lyn
-l1yr
-1lý
-2lýf
-lýt4a
-4lýti
-2l1þ
-1læg
-lækj3
-lækjar5
-5lækk
-1læti
-1lög
-l5öl
-4löt
-m2a
-2ma.
-m4ab
-m4ad
-m3að.
-m3aða
-m3aði
-m3aðr
-m5aðs
-1maðu
-maf4
-m4ag
-3mag4n
-m4ak
-mal4as
-mal3dr
-m3alf
-m3all
-m4alp
-mal4t
-ma1m4
-4man.
-4mana.
-m4aná
-m3anb
-2m3and2
-m3ank
-m3anl
-mann4as
-3manni
-3manns
-mann5t
-2m3ans
-man5sa
-m3ant
-4manu
-ma2r
-m3ara
-m3arb
-m3arð
-1m4ark
-marks5
-m3arn
-mar3o
-mar4s
-mars5m
-m4arú
-m1as
-mask4
-ma4sp
-m3ast.
-1má
-4má.
-3má2l
-mál3f4
-2mám
-má5mu
-má5p
-4már
-4mb
-mb5aði
-m1ban
-mb3i
-mb4ir
-mb3un
-md2as
-md5asta
-md4v
-1me
-4me.
-með3
-m5ef
-megin3
-5m2eis
-meltr4
-m1end
-3menn
-m5erh
-m3er3í
-mest5a
-m1f4
-m4fí
-mför4u
-m1g2
-mgl4
-m1h
-mið3i
-miðr4
-mi3ge
-3mik
-milj3
-mil4l
-millj3
-m3ing
-5minj
-m3inn.
-min4s
-m3inu
-m3ir
-m1is
-mis3k
-mis3lu
-mism4
-2mí
-mjó3sl
-m1k
-m2ka
-mk4arg
-mk4as
-mk2i
-mk4l
-m1l
-m2la
-m3lag
-m3lau
-m2lá
-ml3ár
-m2li
-m5luk
-4mm
-m2m3a
-mm5b
-m4mó
-mm4sv
-mm3u
-m4nesku
-2mog
-4mok
-3mol
-mong5
-mód3
-móð4s
-mó5g4
-m5óní
-mó3rau
-mó4s
-3mót
-mp3á
-m5pe
-mp3i
-m3rau
-m5rá
-m3re
-m3rý
-m1ræ
-4ms
-ms5ál
-m2se
-ms5ei
-m5skau
-ms5kj
-ms5lá
-msn4
-mssetr4
-m1sv
-m4sví
-mt3að
-m4ti
-mt2is
-m3tug
-mt5un
-mt4us
-mt2v
-m1tö
-m1u
-4mu.
-mug4u
-4mul
-4mum
-m2un
-1mund
-m3ung
-4mur
-m4uru
-mu5sta
-m3úð
-múg4u
-m1ún
-mús4a
-m1v4
-1my
-3mý
-mý5m
-m1þ
-1mæ
-1mö
-mör4
-n1a
-4na.
-na2da
-na4dí
-naðar3
-naf4
-nafl4
-nafl5an
-3nafn
-nak4a
-na4kr
-nal2
-na3la
-n3ald
-na3li
-na1ma
-n4anaf
-n5ang
-n5ann
-n4arak
-n3ar3f
-n4arfi
-n4arfö
-narg4
-n4aris
-nar5m
-nar5rin
-n4aru
-n4arú
-nat4
-n5aug
-n3auk
-naum5a
-1ná
-ná1g
-ná1k
-3ná4m
-nán5ast
-n1b
-nbæj4
-nd3er
-nd4isv
-n4dj
-nd3ót
-nd3rek
-ndr1u
-nd1ræ
-nd4sen
-nd3ug
-nd5ul
-ndur5g
-nd3ú
-1ne
-neð2s
-3n2ef
-4nefl
-n4em
-nem5a
-2n1en
-4n4er
-nestr4
-netl4
-n5eyi
-n3eyj
-né5sk
-n1f2
-nfr4
-nga1m
-ng5are
-ng2as
-n2ge
-ng5ek
-n3ger
-n3get
-ng1ey
-ngi5k
-ngil4i
-ngi5lið
-ng5lag
-ngl2i
-ngl5ið
-ng5ólfs
-ng4ra
-ngr5an
-n3grí
-ngr3u
-ng3ræ
-ng4sj
-ng4sp
-ng4ste
-ngurs3
-ngu3t
-n1h
-4n1i
-n4iði
-ni5fr
-ni3gr
-ni3lu
-ni5m
-n4iru
-n3isa
-n4isá
-nisk4
-ni3skó
-nis2m
-nis5s
-ni3ste
-ni5stæ
-n3ía
-n3ísk
-n1íu
-ní4um
-njál4
-nk2
-nk3að
-nk5and
-nk3ans
-n5ká
-n1ke
-nk3i
-n5kó
-n3kunn
-n5ky
-n5kö
-n1l2
-nli4
-n4list.
-n1m4
-n2n
-nn1á
-nn1e
-nn3g2
-nnk4i
-nn4sj
-nn5ske
-nn4sto
-nn5stun
-nn5tó
-nn3ug
-nn2us
-nn3úð
-n1or
-1not
-n5ólf
-5nóttin
-n3p4
-n1r
-n3ram
-n5rau
-n2r4i
-n3rit
-n3sak
-n5sát
-n4seg
-ns5es
-ns5is
-ns1í
-n3skil
-nskír4
-ns5kja
-n5skö
-nsn4a
-ns5r
-nst4e
-nt3að
-n5tak.
-n5taki
-n3tal
-n1te
-ntgen5
-n3til
-n2tí
-nt2s
-nt5sk
-nt5sm
-nt3ug
-nt4v
-n1tý
-n1tö
-n1u
-nuf4
-n4ugr
-nuk2
-nu1l
-nu1ma
-5numd
-nungs3
-nur5f
-nur4l
-n3ust.
-nu5stað
-nu4sv
-nu5ta
-3núm3
-nú4s
-n1v
-n5yf
-n3yrk
-1ný
-n3ýg
-ný3l
-ný5sk
-n1þ
-1næ
-næl4a
-3nöf
-n3öld
-n5ön
-5obs
-oða3l
-oðr4
-oðs5l
-oð4ug
-o2f
-of3ang
-off4u
-of3o
-of5r
-of4sj
-of5su
-oga3l4
-ogast4
-ogs4u
-ok4as
-olak4
-old3u
-ol2g
-oll5eg
-ol5lit
-oll4st
-ol3m
-ol3ó
-oltal4
-o2m
-om3a
-om4m3
-om2u
-om3un
-on3sv
-on4t
-on5tó
-on4us
-opa5p
-op2h3
-op5u4
-ora4
-or4di
-or1e
-or2fe
-or2gr
-3orí
-orlag4
-or2ma
-or4mi
-4orn
-or4ne
-or4sta
-ortr4
-ort3ug
-or1u
-or3ug
-or3v4
-or4við
-or3y
-o4s
-osk3i
-os3m
-os2s
-ost5i
-ost5un
-4o4t
-ot3að
-ota5l4
-otam4
-ot3ro
-ots4á
-ot5un
-o4u
-o3ve
-ox4
-ó1a
-óaflat4
-ó5an
-óar4s
-ób3ak
-ód4a
-óði4
-óðl4
-óðm4
-óðv4
-ó5e
-óf3ar
-óf4as
-óflu5s
-ófr4
-óf5us
-ó2fy
-ó4fö
-ó2g
-ó1h
-ó1i
-ók5lo
-ó3kr
-ók2u
-óla3m
-ól2as
-ól5ik
-ól4is
-ól4kv
-ól5om
-3ólsk
-ó4m3að
-óm3ar
-óm4bæ
-óm2g
-óm4is
-óml4
-óm3p
-óm3stu
-óm3u
-ó2mö
-ó4n
-ón3í
-ón5kv
-óp4e
-óp2h5
-ór4as
-órá4
-ór2d
-ór4dö
-ór5es
-órf4
-órg4
-ó4ri
-ór4is
-órík4
-órj4
-órk4
-órm4
-órn4o
-ór3ón
-órr4
-órs4a
-ór1u
-ósa5f
-ósak4
-ó3sem
-ós3end
-ó5skaf
-ósk4as
-ósk5in
-ós2l
-óslav3
-ó2só
-ósp4
-ós4se
-ó4ta
-ót3að
-ótap4
-ót5ef
-ótil4t
-ó5tí
-ót4ó
-ót2v
-ó1u
-óum5b
-óv4a
-ó5vat
-óy4
-ó5þ
-p1a
-pag4
-pa4le
-pa3m
-pa4n
-pan3gó
-pa2r
-p4arat
-pari3f
-par5í
-p2art
-par5te
-p4aru
-p2ák
-p4ál
-pá5m
-p4ár
-pá2s
-p4át
-p1b
-p5d
-p1el
-1peni
-3pers
-p1f2
-p1g2
-p1h
-p1i
-pil5ar
-5pilt
-p4ink
-pist5i
-pit4
-3píp
-pí2t
-pl2
-pl3að
-pla4s
-p4læ
-3plö
-p1m4
-1pok
-3pós
-p2p
-pp5aks
-pp5e
-pp3í
-ppk4
-pp1l
-pp3ó
-pp1r
-ppsk4
-4pra
-pr2i
-p4ris
-prí4
-3prj
-1pró
-pró5fas
-pró5m
-p1sa
-pss4
-p1st
-pt2ú
-p1u
-puk4i
-pu1l
-pur4a
-3pú
-púf4
-p1v
-qu4
-2ra
-4ra.
-5raðsh
-raf4f
-r3ald
-ral4i
-r4all
-r3als
-3ranal
-r4ani.
-3ranns
-r4anó
-4r3ar
-r4arað
-r4arú
-r4ary
-r4aræ
-ras3i
-ra3tu
-r4aum
-1ráð
-ráf4i
-rá5kvæ
-rárs4
-r4ása
-r1b4
-rba4
-r1d
-r2dí
-r4ð
-rð4ar4á
-rð5is
-rð1l2
-rð4mu
-rð5rá
-rð5su
-rð3sv
-rðv4
-r4ef.
-r4efs
-5reftsk
-1regl
-r3eig
-3reik
-r5enu
-r5eu
-r4eyn
-r4é
-r1fal2
-rfa5li
-rf4ar
-r3fá
-r5feð
-rf1is
-r1fj
-rfjár4
-rf4lö
-rfóg5
-r1fr
-rfr4u
-rf4st
-r3fund
-rf4urð
-rgj4að
-rgj4ar
-rg2l4
-r5gly
-r1gr
-r2gra
-r4grey
-r5h
-4ri.
-4r3ið.
-rig2
-riga5s
-r3ild
-4rin
-rin5e
-ringj5ar
-r3inu
-rip4s
-4r3ir
-ri3sk
-ris5l2
-3risn
-rist5að
-ris4un
-1ri4t
-rit3li
-4rí.
-4ríf
-ríkis3
-4ríl
-ríst4
-4ríu
-4ríþ
-rj3ar
-rjá4l
-rjó3sa
-rjósk5a
-rka1m
-rkaup4s
-r3ká
-r1ke
-rk1ef
-r4kell
-r4kelss
-rkju3s
-rk4se
-rk1sm
-rk4sp
-rk4ú
-rk5vei
-r3kö
-r1l2
-rl3að
-rl5ann
-r2li4
-rl4ið
-rlis5s
-r3lit
-rl3m
-rlof4
-rmak4
-r1man
-rmáls5
-rmb4
-rm2i
-r1mið
-rmil4
-r5mj
-rmk4
-rml4
-r3móð
-rmr4
-rn3ar
-rnar5l
-rn1g
-rn5ór
-rn5sí
-rn5sm
-rn4so
-r4nu
-r5numi
-ro4
-rog4as
-ron4
-r1or
-ró5gr
-ró4m
-ró4sa
-rós3ó
-5róti
-r5pal
-r3pó
-r1pr
-r4pri
-rp2s
-rp3sk
-r5py
-rr5ar
-r1rá
-r1re
-r1ré
-r1rí
-rr2k
-r3ró
-rr1u
-r5rú
-r1ræ
-r1sa
-r4saf
-rs4ár
-rsegl4
-r3ser
-rs4inn
-r3ske
-r5skil
-rs4lan
-rs2má
-r1st
-r2sti
-rst4v
-r3stö
-rs2u
-r5sund
-r4sú
-r1sv
-rt3að
-rta5g
-r3tak
-rta4sk
-r5tá
-rt5er
-rt3ey
-rt2hu
-r4tík
-r3tó
-r3trö
-rt4se
-rt5sl
-rtt4
-rt4uru
-rt4ú
-r4tv
-rt4ve
-r1tæ
-rt1öf
-r1uð
-r4uðun
-ruk4i
-ru5li
-ru2m
-r1ur
-r4uss
-r3ust.
-rut4v
-r4úð
-3rúm
-rúst5
-r1v
-rv3að
-r3ve
-r2vi
-rvi3g
-rv3ing
-rv4un
-r3væ
-r3yr
-1rým
-r1þ
-1rækt
-ræmd5a
-1ræn
-ræt3i
-röf4ug
-rök1r
-röl4
-2sa.
-4sab
-2s3að
-s4að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á4
-s3áb
-s5áf
-sálar5
-s1ár
-s3ás
-s1b
-s3d4
-1se
-2s1ef
-4seld.
-5semi
-5sens
-2ser
-2ses
-3set
-sex3
-2s1ey
-s4eyð
-1sé
-s5f4
-sfl4
-sfr4
-s1g4
-sgl2
-s1h
-shá4s
-s1i
-s3ið.
-5s4iða
-s4iði
-sif2
-si5fi
-1sig
-sind4ar
-sind4as
-5sinnu
-2s5ins
-s3ir
-s3ist
-s4isv
-si3ta
-sí3br
-1síð
-síðk4
-sígl4
-s3ík
-sí4m
-sínk5a
-s3ír
-s1ís
-s5íu.
-sí3v
-sí4ve
-1sj
-s3jaf
-sjar4
-s4já
-sjó5l
-sjó3m4
-sjó3s
-4sju
-3sjú
-s2k
-2sk.
-4ska.
-4skað
-skaf4a
-4skal
-2skan
-1ska4p
-4skas
-1ská
-1skei
-3skemm
-4sken
-3skey
-s4k2i
-2ski.
-4skið
-sk3inu
-3skip
-2skir
-4skis
-3skír
-5skjá
-4sk4n
-3skoð
-4skon
-4skos
-1s4kot
-1skó
-5skóg
-1skrá
-4skró
-3skrú
-4sks
-sk3uri
-sk3ust
-2skv
-1sky
-3ský
-1skæ
-sla2
-sla3f
-s4lam
-slands5
-3s4lé
-sl2is
-s1lí
-s4líð
-s3lof
-s3lok
-1sló
-slu3s
-1slys
-s3læk
-s1m2
-4sma
-smá1s
-smá5v
-4sme
-s4mek
-s2mi
-1smí
-smj4
-4smö
-s2ne
-3sneið
-5sner
-s3nes
-3sneyd
-sn4ið
-sn2o
-1snú
-4snúm
-s4ný
-snæð5
-1so
-4sod
-3son
-2sor
-s5orði
-1só4
-s4ól
-sól3e
-sól3s
-2sóm
-s5ómag
-4sós
-1sp2
-spít3
-spj4
-4spl
-4spra
-2spró
-s5pund
-sr2an
-s5rau
-s1rá
-s1re
-s1ré
-s1rí
-s5ro
-s5ræ
-s3rö
-s3s4á
-ss3er
-ss5í
-s1s4k4
-ssl2
-ssm4
-ss5or
-s1st
-s4stir
-s1sv
-s2t
-2st.
-s4ta
-2sta.
-4stal
-4stap
-5starfi
-5starfs
-4staæ
-1ste
-3stef
-3stein
-5stekk
-4stet
-1sté
-st4he
-4sti.
-1stig
-st4isl
-3stíg
-2stím
-4stíu
-1stj4
-4stjón
-5stjór
-5stjör
-4stl
-st3le
-1sto
-3stof
-1stó
-4stón
-3stór
-st2r
-str5al
-5stranda
-5strang
-5straum
-5strá.
-1stre
-3strí
-4strú
-s3try
-5strön
-st5t
-2s4tu
-3stund
-1st2ú
-4stv
-3stý
-1stæ
-2stæk
-1s4tö
-3stöð
-4stöl
-5stöng
-s1u
-su3f4
-5sum3a
-s2ung
-s5upp
-s5ura
-sust4i
-sú4
-súln4
-s5ún
-s5úrs
-sút5
-sv4
-4svag
-4sval
-s3vat
-s5veð
-s4vef
-s2vei
-s3veik
-3svein
-5svep
-4svex
-s4viði
-5sviði.
-s4vik
-svik3u
-s5vin
-s1vo
-s2væ
-1svæð
-1sy
-2s3yfi
-3syn
-4s3yr
-3s4ý
-s1þ
-1sæ
-4sæð
-sæf4
-sæ5fa
-3sæj
-3sæl
-4sæs
-1sö
-3sög
-sögu5s
-2s3öld
-3söm
-2s3ör
-t2að
-ta2fr
-1taka
-5takend
-t4al.
-tala4m
-4tam
-ta1ma
-t5amt
-ta4ná
-3tang
-4tar
-t4ar4að
-tar5is5
-tark4
-tarp4
-tar5sá
-taræv4
-t1as
-t4as.
-ta5sl
-tat4
-ta4ví
-t4á4
-5tákn
-4tánd
-t1b
-t1d
-4tegí
-5tegu
-tei4
-tein5g
-t1eis
-1tek
-3tekj
-tekkj5
-t1end
-ten5ó
-4tepl
-t3ett
-2tey
-té4l
-t3f2
-tfirr4
-t1g
-t1h
-th5ers
-t1i
-ti4an
-ti5kis
-tild4
-4tin
-tirk4
-t4iræ
-tist4
-t5ist.
-ti3sta
-tistil4
-t2isv
-1tit
-1tí
-4tí.
-4tía
-3tíð
-tí4l
-3tím
-4tín
-4tít
-tív3
-t4jö
-t1k
-tk4a
-t4k2i
-tlaf4
-t3lag
-t4lag.
-tl2an
-tl5ann
-t1lá
-tl2i
-tlur4
-t1læ
-2t3m4
-tn2s
-tnsk4
-tnskr4
-to4
-1tog
-t3on
-3torg
-5toru
-1tóm
-tóm3a
-tóm5as
-5tónl
-tór1
-tór5au
-tóri3s
-t1ót
-t3p
-tra2b
-5traðari
-tr3alí
-tr2an
-tr3ann
-tr5ar
-3traus
-t4rey
-1tré
-tr4is
-t5risi
-t5ríka
-3trj
-t5róf
-tr3ótt
-tr3ug
-tr3una
-tr5uni
-1t4rú
-1try
-t5ryð
-t3ræn
-3tröð
-4ts
-t1sa
-ts4inn
-t5sí
-tsj4
-t1sk4
-ts1s
-t1st4
-ts4u
-t2sy
-tt3að
-ttak4i
-ttar5f
-tt5á
-tte5rí
-tt5ern
-t4tí
-tt5j
-tt1l
-tt1or
-tt3ræ
-tt3ug
-tt4ugl
-ttv4
-t1tæ
-t1u
-4tu.
-t4uði
-tugl4
-tuk4
-tu3l4ið
-tum2
-tu5min
-t2ung
-3t4ungl
-tup4
-t3ur3e
-tur3k
-t5urs
-t4usa
-t4usu
-tutr4
-túd3
-t3úð
-tú4l
-1tún
-tún4a
-t1úr
-tú3sk
-t1v
-5tveggj
-t5ver
-5týs
-t1þ
-3tæk
-1tök
-1töl
-t5öls
-2u1a
-u3af
-u5au
-2u1á4
-uáætl4
-4u1b4
-4uc
-4ud4
-u1da
-u5dá
-u3de
-u3dó
-u3dr
-2uða
-uð4are
-uð3k4
-2uðl
-uðm4
-2uð4n
-2uðr
-uð5ris
-uð4se
-uð3sv
-uð5sæ
-4uðul
-2u5e
-4ué
-4uf
-uf5á
-ufd4
-u5fit
-u3fj
-u1fr
-u3ful
-u5fú
-2ug
-4ugal
-4ugat
-4uge
-4ugil
-4u1gj
-4ugla
-ug1lj
-4uglu
-ug4n
-4ugó
-u5gran
-4ugre
-4ugrj
-4ugró
-ug3ræ
-ug3ta
-4ugö
-4u1h
-4ui
-u5ið
-4uí4
-2uj
-2uk
-ukak4
-uk4as
-u1ke
-u5kinnin
-ukku3s
-u5kó
-u3kv
-2ul
-3ul.
-4u1lag
-ul3ar
-3ulb
-4ule
-u5lind
-ul4is
-u1lí
-ul3k2
-ul4la
-4ulln
-ullt4
-4u3lo
-u3ló
-ul5sv
-ult4i
-ul3us
-ul5v4
-u3læ
-4u1lö
-3um.
-2uma
-umak4
-u1man
-um4aran
-2umá
-umál4ar
-um4ba
-um5bæ
-um4bö
-2umd
-2ume
-um3ein
-4umi
-umj4
-um4ki
-4uml
-umm4a
-4u5mo
-2umó
-4ump
-2umr
-ums4
-um3sl
-3umst.
-um1t4
-4umu
-um5unn
-4umú
-2umy
-2umý
-2umæ
-2umö
-un3ar1
-unar5a
-un2as
-4unat
-2u1nau
-2uná
-2und
-4une
-4unk
-2unná
-4unns
-2unnu
-unn5ug
-4uno
-4unó
-uns4an
-4unt
-1unu
-4unur
-4unæ
-4unö
-2u3o
-uol4
-4uó
-2up
-upp1
-upp5a
-uppal5
-upp4i
-3ur.
-2ura
-ura4f
-ur5a4m
-ur2an
-ur5anna
-2urá
-urða5rá
-2ure
-u1rek
-ur3ey
-4u1ré
-urf4a
-ur3fl
-urg4e
-ur3gj
-ur5in
-4urit
-4urí
-u3rík
-ur3j4
-urk4a
-ur1m
-ur3ní
-4uro
-4uró
-ur1sk4
-ur3sna
-ur4sta
-ur4svö
-ur5til
-urt4ir
-ur1u
-ur4unn
-4urus
-ur3v4
-ur4vis
-4uryk
-4urý
-2uræ
-4urö
-2usa
-u3sal
-4us4á
-2use
-4usí
-2usj
-4u1sk
-4usl
-2u3s4m
-2usn
-4uso
-4usó
-4usp
-u5starf
-4ustá
-4uste
-2usté
-2usti
-2ustí
-4usto
-4ustó
-4ustr
-3ustu.
-2ustú
-4usty
-4ustý
-4ustæ
-4ustö
-u5sund
-4u3sv
-4usy
-2usý
-2usö
-2ut
-ut3að
-ut2as
-u3te
-u5til
-u3tó
-ut4stó
-ut2ú
-u1tæ
-2u3u
-4u5ú
-4u3v
-2uy
-u3yf
-2u1þ
-4uæ
-2u5ö
-ú1a
-úal4
-ú3arf
-úb3an
-úbli3
-úð3ar
-úð5g
-ú3e
-úf5ar
-úfl2
-úf5li
-úf5ly
-úfs4á
-ú5gala
-úgó3
-ú4gæ
-4ú1i
-úk1l
-úkr1u
-úk4s
-úl5er
-5úl4f
-úlf5al
-úl4í3
-úlíp4
-ú3lo
-4ú2m
-úm4r
-úm4si
-ú4n
-únd4ug
-ún4gö
-úpl5i
-úr5ef
-úrít4
-úr5sl
-úr1t
-úr3un
-úr5v
-ú3ræ
-2ús
-ú4sa
-ús3ei
-ús3í
-ús4sti
-ús4sv
-ús1v
-út3e
-út2he
-úti5f
-út2is
-útj4
-út1l2
-út1r
-4ú1u
-ú1v
-ú4va
-ú5þ
-v2a2
-vaðr5
-va5fo
-va5h
-5vallag
-va4n
-var4ma
-varps3
-var5ú
-var4v
-v3ast
-va4t
-3vax
-veð5l
-ve3fe
-1veg
-v2ei
-3veið
-vein4as
-5veis
-4velg
-2vep
-v4er
-1verð
-ver3gj
-3verk
-ver2s
-vé2
-v5és
-v3ét5
-2v3h
-v2i
-2vi.
-v4ið
-5viðar
-við3l
-vil4i
-vi3lið
-3viln
-vi4lo
-vin3gj
-4vip
-3virk
-visk5un
-3viss
-vis4v
-5vita
-vitk5
-vit2n
-4viv
-4víb
-2víð
-5vík
-3vísi
-vísl3a
-ví1v
-2vn
-vo3k
-vol4
-vork4
-vor4r
-4vr1
-4vs
-2vu
-v1uð
-v1un
-5væg
-wa4
-win4s4
-x5ar
-x2as
-x3e
-x3f
-x5i
-xis4
-xí3
-xík4
-x5íu
-xt5að
-x1u4
-y5ba
-yð2s
-yf5a
-yf1i
-yfj5að
-yft4is
-y1i
-yj3ar
-yj5ó
-yk5e
-yk3i
-yk3su
-yk3u
-yk3v
-ylf5i
-ylgn4
-yll5a
-yl4v
-ym3a
-ymp5í
-y4n
-ynj5ar
-ynj3ó
-yn4k
-yn4t
-yn5u
-yp2us
-yr5e
-yr1i
-yr3il
-yrir3
-yrj3
-yrkv3a
-yr2l
-yr2s
-yr1u
-y2s
-ysj3
-ys2s
-yst3ug
-yt4h
-ytil4
-yt4k
-y3v
-ý5a
-ýaf5
-ý5á
-ýð2s
-ýfl4
-ý3flu
-ýg4r
-ýg4uð
-ý1i
-ýja5f4
-ým4a
-ým4k
-ýpru4
-ýp2s
-ýrf4
-ýri3m
-ýri5p4
-ýr3l
-ý4si
-ýsig4
-ýs4l
-ýs4m
-ý3stá
-ý5u
-ý5ú
-ý3v
-ý5y
-zó4
-þ2a
-þam4
-þarf5a
-þar4m
-4þb
-þ2i
-þist3i
-þjó4
-þol5a
-þor3f4
-þor3g
-þorm4
-þ1ól
-3þór
-þór5i
-þ2r2
-þra4
-þrás4
-þris4
-þríl4
-þrí3t
-þru4
-þum5a
-þumb3
-þur2
-þús3
-þ2v
-þver5sk
-æ1b
-æðn5
-æðnis5
-æð2s
-æð4ug
-4æf
-æf1a
-æ4fi
-æf3ust
-æg5ist
-æ1i
-æj3
-æj4al
-æjark4
-æk1a
-æk1li
-æk3u
-æ2l
-æl3an
-æl3e
-æl3us
-æm3a
-æm4al
-æ4mundu
-ænak4
-æn4k
-ær1a
-ær3e
-ærgöng5
-ærif4
-ær3ist
-æri3sv
-ær3l
-ær4n
-ær2s
-ær5un
-ær1us
-æ5rú
-æs4is
-æt5ise
-ætl5i
-æ5u
-æva5g
-æ5val
-æv3ar
-æv4ara
-æ3ve
-æv3in
-öð2
-öðl3
-öðm5
-öð3un
-öðv5an
-öðv3ar
-ö1fa
-öfl3ó
-öfn5
-öfr3u
-öf3u
-ö4g
-ög3gj
-öggv3
-ög1re
-ög2us
-ök5e
-ök5rá
-ök3st
-ök3ul
-ökv3a
-ö4l
-öl1f4
-ölk2
-ölu5mi
-öl5un
-öl2v
-ölv5an
-öm4b
-öm3u
-önd4l
-öng5sv
-öng4us
-öng4v
-öngv3a
-önk3
-önn4l
-ön3ug
-ön5un
-ör1e
-ör4ge
-ör4lan
-örm5un
-ör3ó
-ör3ug
-ör1un
-ör3und
-örus4
-ör2v
-4örva
-örv5al
-örv5an
-örv5ar
-örv4i
-ör1y
-ör5æ
-ö4s
-ösk3ul
-ös3u
-öt4s
-ö3tug
-öt2v
-ötv3a
-ö5u
-þ6ó} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-it.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-it.hyp
deleted file mode 100644
index f9877a6ec6b..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-it.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-it.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-it.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-it.pat
deleted file mode 100644
index 12a9edf33b4..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-it.pat
+++ /dev/null
@@ -1,362 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-it.rme
-
-% used: ' a b c d e f g h i j k l m n o p q r s t u v w x y z
-
-\patterns{
-.a3p2n
-.anti1
-.anti3m2n
-.bio1
-.ca4p3s
-.circu2m1
-.contro1
-.di2s3cine
-.e2x1eu
-.fran2k3
-.free3
-.li3p2sa
-.narco1
-.opto1
-.orto3p2
-.para1
-.ph2l
-.ph2r
-.poli3p2
-.pre1
-.p2s
-.re1i2scr
-.sha2re3
-.tran2s3c
-.tran2s3d
-.tran2s3l
-.tran2s3n
-.tran2s3p
-.tran2s3r
-.tran2s3t
-.su2b3lu
-.su2b3r
-.wa2g3n
-.wel2t1
-2'2
-a1ia
-a1ie
-a1io
-a1iu
-a1uo
-a1ya
-2at.
-e1iu
-e2w
-o1ia
-o1ie
-o1io
-o1iu
-1b
-2bb
-2bc
-2bd
-2bf
-2bm
-2bn
-2bp
-2bs
-2bt
-2bv
-b2l
-b2r
-2b.
-2b'
-1c
-2cb
-2cc
-2cd
-2cf
-2ck
-2cm
-2cn
-2cq
-2cs
-2ct
-2cz
-2chh
-c2h
-2ch.
-2ch'.
-2ch''.
-2chb
-ch2r
-2chn
-c2l
-c2r
-2c.
-2c'
-.c2
-1d
-2db
-2dd
-2dg
-2dl
-2dm
-2dn
-2dp
-d2r
-2ds
-2dt
-2dv
-2dw
-2d.
-2d'
-.d2
-1f
-2fb
-2fg
-2ff
-2fn
-f2l
-f2r
-2fs
-2ft
-2f.
-2f'
-1g
-2gb
-2gd
-2gf
-2gg
-g2h
-g2l
-2gm
-g2n
-2gp
-g2r
-2gs
-2gt
-2gv
-2gw
-2gz
-2gh2t
-2g.
-2g'
-.h2
-1h
-2hb
-2hd
-2hh
-hi3p2n
-h2l
-2hm
-2hn
-2hr
-2hv
-2h.
-2h'
-.j2
-1j
-2j.
-2j'
-.k2
-1k
-2kg
-2kf
-k2h
-2kk
-k2l
-2km
-k2r
-2ks
-2kt
-2k.
-2k'
-1l
-2lb
-2lc
-2ld
-2l3f2
-2lg
-l2h
-l2j
-2lk
-2ll
-2lm
-2ln
-2lp
-2lq
-2lr
-2ls
-2lt
-2lv
-2lw
-2lz
-2l.
-2l'.
-2l''
-1m
-2mb
-2mc
-2mf
-2ml
-2mm
-2mn
-2mp
-2mq
-2mr
-2ms
-2mt
-2mv
-2mw
-2m.
-2m'
-1n
-2nb
-2nc
-2nd
-2nf
-2ng
-2nk
-2nl
-2nm
-2nn
-2np
-2nq
-2nr
-2ns
-n2s3fer
-2nt
-2nv
-2nz
-n2g3n
-2nheit
-2n.
-2n'
-1p
-2pd
-p2h
-p2l
-2pn
-3p2ne
-2pp
-p2r
-2ps
-3p2sic
-2pt
-2pz
-2p.
-2p'
-1q
-2qq
-2q.
-2q'
-1r
-2rb
-2rc
-2rd
-2rf
-r2h
-2rg
-2rk
-2rl
-2rm
-2rn
-2rp
-2rq
-2rr
-2rs
-2rt
-r2t2s3
-2rv
-2rx
-2rw
-2rz
-2r.
-2r'
-1s2
-2shm
-2sh.
-2sh'
-2s3s
-s4s3m
-2s3p2n
-2stb
-2stc
-2std
-2stf
-2stg
-2stm
-2stn
-2stp
-2sts
-2stt
-2stv
-2sz
-4s.
-4s'.
-4s''
-.t2
-1t
-2tb
-2tc
-2td
-2tf
-2tg
-t2h
-2th.
-t2l
-2tm
-2tn
-2tp
-t2r
-t2s
-3t2sch
-2tt
-t2t3s
-2tv
-2tw
-t2z
-2tzk
-tz2s
-2t.
-2t'.
-2t''
-1v
-2vc
-v2l
-v2r
-2vv
-2v.
-2v'.
-2v''
-1w
-w2h
-wa2r
-2w1y
-2w.
-2w'
-1x
-2xb
-2xc
-2xf
-2xh
-2xm
-2xp
-2xt
-2xw
-2x.
-2x'
-y1ou
-y1i
-1z
-2zb
-2zd
-2zl
-2zn
-2zp
-2zt
-2zs
-2zv
-2zz
-2z.
-2z'.
-2z''
-.z2} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-la.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-la.hyp
deleted file mode 100644
index 266c3333bac..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-la.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-la.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-la.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-la.pat
deleted file mode 100644
index 40cec82b6f8..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-la.pat
+++ /dev/null
@@ -1,343 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-la.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u v x z æ œ
-
-\patterns{
-.a2b3l
-.anti1
-.anti3m2n
-.circu2m1
-.co2n1iun
-.di2s3cine
-.e2x1
-.o2b3
-.para1i
-.para1u
-.su2b3lu
-.su2b3r
-2s3que.
-2s3dem.
-3p2sic
-3p2neu
-æ1
-œ1
-a1ia
-a1ie
-a1io
-a1iu
-ae1a
-ae1o
-ae1u
-e1iu
-io1i
-o1ia
-o1ie
-o1io
-o1iu
-uo3u
-1b
-2bb
-2bc
-2bd
-b2l
-2bm
-2bn
-b2r
-2bt
-2bs
-2b.
-1c
-2cc
-c2h2
-c2l
-2cm
-2cn
-2cq
-c2r
-2cs
-2ct
-2cz
-2c.
-1d
-2dd
-2dg
-2dm
-d2r
-2ds
-2dv
-2d.
-1f
-2ff
-f2l
-2fn
-f2r
-2ft
-2f.
-1g
-2gg
-2gd
-2gf
-g2l
-2gm
-g2n
-g2r
-2gs
-2gv
-2g.
-1h
-2hp
-2ht
-2h.
-1j
-1k
-2kk
-k2h2
-1l
-2lb
-2lc
-2ld
-2lf
-l3f2t
-2lg
-2lk
-2ll
-2lm
-2ln
-2lp
-2lq
-2lr
-2ls
-2lt
-2lv
-2l.
-1m
-2mm
-2mb
-2mp
-2ml
-2mn
-2mq
-2mr
-2mv
-2m.
-1n
-2nb
-2nc
-2nd
-2nf
-2ng
-2nl
-2nm
-2nn
-2np
-2nq
-2nr
-2ns
-n2s3m
-n2s3f
-2nt
-2nv
-2nx
-2n.
-1p
-p2h
-p2l
-2pn
-2pp
-p2r
-2ps
-2pt
-2pz
-2php
-2pht
-2p.
-1qu2
-1r
-2rb
-2rc
-2rd
-2rf
-2rg
-r2h
-2rl
-2rm
-2rn
-2rp
-2rq
-2rr
-2rs
-2rt
-2rv
-2rz
-2r.
-1s2
-2s3ph
-2s3s
-2stb
-2stc
-2std
-2stf
-2stg
-2st3l
-2stm
-2stn
-2stp
-2stq
-2sts
-2stt
-2stv
-2s.
-2st.
-1t
-2tb
-2tc
-2td
-2tf
-2tg
-t2h
-t2l
-t2r
-2tm
-2tn
-2tp
-2tq
-2tt
-2tv
-2t.
-1v
-v2l
-v2r
-2vv
-1x
-2xt
-2xx
-2x.
-1z
-2z.
-a1ua
-a1ue
-a1ui
-a1uo
-a1uu
-e1ua
-e1ue
-e1ui
-e1uo
-e1uu
-i1ua
-i1ue
-i1ui
-i1uo
-i1uu
-o1ua
-o1ue
-o1ui
-o1uo
-o1uu
-u1ua
-u1ue
-u1ui
-u1uo
-u1uu
-a2l1ua
-a2l1ue
-a2l1ui
-a2l1uo
-a2l1uu
-e2l1ua
-e2l1ue
-e2l1ui
-e2l1uo
-e2l1uu
-i2l1ua
-i2l1ue
-i2l1ui
-i2l1uo
-i2l1uu
-o2l1ua
-o2l1ue
-o2l1ui
-o2l1uo
-o2l1uu
-u2l1ua
-u2l1ue
-u2l1ui
-u2l1uo
-u2l1uu
-a2m1ua
-a2m1ue
-a2m1ui
-a2m1uo
-a2m1uu
-e2m1ua
-e2m1ue
-e2m1ui
-e2m1uo
-e2m1uu
-i2m1ua
-i2m1ue
-i2m1ui
-i2m1uo
-i2m1uu
-o2m1ua
-o2m1ue
-o2m1ui
-o2m1uo
-o2m1uu
-u2m1ua
-u2m1ue
-u2m1ui
-u2m1uo
-u2m1uu
-a2n1ua
-a2n1ue
-a2n1ui
-a2n1uo
-a2n1uu
-e2n1ua
-e2n1ue
-e2n1ui
-e2n1uo
-e2n1uu
-i2n1ua
-i2n1ue
-i2n1ui
-i2n1uo
-i2n1uu
-o2n1ua
-o2n1ue
-o2n1ui
-o2n1uo
-o2n1uu
-u2n1ua
-u2n1ue
-u2n1ui
-u2n1uo
-u2n1uu
-a2r1ua
-a2r1ue
-a2r1ui
-a2r1uo
-a2r1uu
-e2r1ua
-e2r1ue
-e2r1ui
-e2r1uo
-e2r1uu
-i2r1ua
-i2r1ue
-i2r1ui
-i2r1uo
-i2r1uu
-o2r1ua
-o2r1ue
-o2r1ui
-o2r1uo
-o2r1uu
-u2r1ua
-u2r1ue
-u2r1ui
-u2r1uo
-u2r1uu} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-lt.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-lt.hyp
deleted file mode 100644
index 1d7dd564af8..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-lt.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-lt.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-lt.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-lt.pat
deleted file mode 100644
index 41474fa295e..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-lt.pat
+++ /dev/null
@@ -1,1553 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-lt.rme
-
-% used: a b c d e f g h i j k l m n o p r s t u v w y z ą č ė ę į š ū ų ž
-
-\patterns{
-.ap1
-.api1
-.ap3r
-.arbi1
-.arti1
-.as3p
-.at1
-.ata1
-.at3r
-.aš3v
-.dina1
-.ek3r
-.i2š3
-.iši2
-.kirti1
-.nu1
-.nusi1
-.pie2č
-.sam1
-.sida1
-.sk4
-.st4
-.su5kr
-.te3s2
-.uk3
-.u2š3
-.už1
-.įs4
-.šven1
-a1a2
-a1b
-a1c
-a2ch
-a1d
-a4dra
-a1e
-ae2l
-a1f
-2a1g
-a4gr
-ag3ra
-a5grio
-a5gro
-a1h
-a5inf
-ai4sk
-ai4tr
-a1j
-a1k
-ak2l
-ak2vi
-a2kėt
-a1l
-a3li
-a5lo1
-a3ly
-a3lė
-a3lū
-a1m
-a1n
-an3k2l
-an4sk
-an4tr
-a2o
-a1p
-ap1a4k
-ap3ei
-ap3i2m
-ap3l
-a3pr
-ap3s2
-a1r
-ar1eit
-a4rg
-ari4s
-a1s
-asi1
-asi5s
-a4sk
-as3kl
-a3sl
-as2mi
-as2mu
-a5s4n
-a4stu
-a1t
-at3aug
-ate5ist
-at3i2m
-ato1
-atp4
-a4tru
-at1ė2
-atū2ž
-a4u
-au4kl
-au4sk
-au4sl
-au4t3r
-a1v
-a1w
-a1y
-a1z
-a1ą
-2a1č
-a1ę
-a1ė2
-a1į
-a1š
-a3šn
-aš4tr
-aš2v
-a1ų
-a1ū2
-a1ž
-až2l
-ba3c
-balta1
-ba4sl
-2b1b
-2b1c
-4b3d
-bep4
-be3s2
-besi1
-be3t2
-2b1f
-2b1g
-2b1h
-b1j
-2b1k
-2b1l
-b2la
-b2liz
-3b2lo
-b2lu
-2b1m
-2b1n
-2b1p
-2b2r
-b3ri
-2b1s
-2b3t
-bu4k
-2b1v
-2b1w
-2b1z
-2b1č
-2b1š
-2b1ž
-car4
-2c1b
-2c1c
-2c1d
-2c1f
-2c1g
-3chi
-2c1k
-2c1l
-2c1m
-2c1n
-2c1p
-2c1r
-2c1s
-2c1t
-cu4
-cuk5
-2c1v
-2c1w
-2c1z
-2c1č
-2c1š
-2c1ž
-da3b4
-2d1b
-2d1c
-2d1d
-de4k
-dema1
-de4pr
-de4sp
-2d1f
-2d1g
-2d1h
-di4p
-di4s
-dis5k
-2d1j
-2d3k
-4d3l
-2d1m
-2d1n
-do3ri
-2d1p
-2d1r
-dro1
-dro2b
-d2rė
-4drų
-2d1s
-2d1t
-du2a
-du4k
-du5ka
-du4sl
-2d1v
-d3va
-dvi3a
-2d1w
-d4z
-2d1č
-2d1š
-d4ž
-džio1
-e1a2
-e2a3l
-eapi1
-eat1
-e1b2
-ebe1
-e3bl
-eb3r
-e1c
-e2ch
-e3d2
-ed3ri
-e4dro
-ed3rė
-e1e
-e1f
-e1g
-eg3ra
-e1h
-e1ie
-ei4k3l
-1ein
-ei4sk
-ei4sl
-2eis3t
-eist2ra
-ei2š1
-e1j
-e1k
-e3kr
-e1l
-e1m
-ema5s4
-2e1n
-en3k2l
-enk4la
-eno1
-ens4
-4enta
-enu1
-e2o
-e3or
-e3o2š
-e3p
-ep4li
-ep4r
-epra1
-epri1
-e1r
-ere3a4
-eri4s
-ero1
-erė2
-e1s
-esi5s
-es4k
-eska1
-e5sko
-e3s2v
-e1t
-e1u4
-euž3
-e1v
-e3vi
-e1w
-e1y
-e1z
-e1ą
-e1č
-e1ę
-e1ė
-e1į4
-eįp3
-eįs3k
-eįt3r
-e1š
-e3šn
-eš2v
-ešė3
-e1ų
-e1ū
-e1ž
-2f1b
-2f1c
-2f1d
-2f1f
-2f1g
-2f1h
-fi4s5
-2f1k
-2f1l
-2f1m
-2f1n
-2f1p
-2f1r
-fri1
-2f1s
-2f1t
-2f1v
-2f1w
-2f1z
-2f1č
-2f1š
-2f1ž
-gaš3
-2g1b
-2g1c
-2g1d
-ge4o1
-2g1f
-2g1g
-2g1h
-2g1k
-2g1l
-g2le
-g2lo
-2g1m
-2g1n
-3g2nų
-2g1p2
-3g2r
-grai2
-g3ran
-5g3re
-g4rei
-g3ri
-4g4rio
-g3ro.
-g4rą
-5grį
-4grų
-2g1s
-4g1t
-3gu
-2g1v
-2g1w
-gyva1
-2g1z
-2g1č
-2g1š
-2g1ž
-2h1b
-2h1c
-2h1d
-2h1f
-2h1g
-2h1h
-hi4b
-2h1k
-2h2l
-2h1m
-h2me
-2h1n
-2h1p
-2h1r
-2h1s
-2h1t
-2h1v
-2h1w
-2h1z
-2h1č
-2h1š
-2h1ž
-i2a
-ia5g4
-i3aiš
-ia3k
-i3antę
-i3antė
-iap4
-i3ar
-i3b2
-i1c
-ice1
-i1d
-id2r
-id3rė
-i2dėm
-i2e
-ie4d3r
-ie3g
-i3ei
-ie3kl
-i3ent
-ie4p5r
-ie4sk
-i1f
-2i1g
-i3g2l
-ig3ru
-2i1h
-i1i2
-i1j
-i1k
-i3k2n
-ik3r
-i1l
-ilo1
-i1m
-1imd
-4i1n
-in4kl
-5inv
-i2o
-io4g3r
-iok2
-io4pl
-i3or
-i1p
-i2p1j
-ip3ru
-i1r
-ira3s2
-i3ri
-4i1s
-i5sa
-i5si
-is4k
-i3sl
-is4li
-i5s4n
-i4ste
-isto1
-2i3t2
-i2u
-i1v
-i1w
-i1y
-i1z
-i2ą
-i1č
-i1ę
-i1ė2
-i1į
-i1š
-i3šn
-iš5t
-i4šv
-išė2
-1išš
-i2ų
-i2ū
-i3ž
-3ja.
-jauna1
-2j1b
-2j1c
-2j1d
-2j1f
-2j1g
-2j1h
-2j1j
-2j1k
-2j1l
-2j1m
-2j1n
-jot3
-jo4tv
-2j1p
-2j1r
-2j1s
-2j1t
-1ju
-2j1v
-2j1w
-2j1z
-2j1č
-2j1š
-1jū
-2j1ž
-3ka.
-5ka3d
-kak3
-ka4kl
-ka4pr
-3kar
-3kas
-3kati
-5kav
-kavar1
-ka3z2
-2k1b
-2k1c
-2k1d
-3ke
-ke4b3
-keren1
-2k1f
-2k1g
-2k1h
-k4i
-5ki.
-5kia
-3kib
-3kil
-5kit
-2k1k
-2k1l
-3k2la
-k4lan
-4kle.
-k2lel
-4klo.
-4klu.
-k2ly
-4klą
-4klų
-2k1m
-2k1n
-3ko
-2k1p
-2k2r
-k4rau
-kris2
-kri5st
-k3ro
-k4rov
-4k3ru
-5krun
-k4ry
-k5rą
-2k1s
-k4sk
-ks3l
-k4s3p
-4k1t
-k3ta
-3ku
-4kub
-ku4k
-ku4pr
-2k1v
-k2va
-k3vo
-k2vė
-2k1w
-3kyt
-2k1z
-5ką
-2k1č
-2k1š
-kš2ly
-kšė3
-2k1ž
-3la.
-lap4s3to
-2l1b
-lb3r
-2l1c
-2l1d
-3le.
-le3c
-le4gr
-4leč
-2l1f
-2l1g
-lg3s2t
-2l1h
-3li.
-li4a
-5li4o
-3lių
-2l1j
-2l1k
-lko1
-2l1l
-2l1m
-2l1n
-3lo.
-log4
-4lop
-4l1p
-lpna1
-2l1r
-4l1s
-l4sk
-l4s3p
-4l3t
-3lu.
-2lup
-4l1v
-2l1w
-3lyč
-2l1z
-3lą
-2l1č
-3lęs
-3lėm
-3lės
-2lėč
-3lį4
-4l1š
-3lų
-2l1ž
-m2a
-2m3aid
-3mas
-mas3ki
-2m1b
-mb3r
-2m1c
-2m1d
-me3c
-meis1
-2m1f
-2m1g
-2m1h
-mi4gl
-mi4gr
-min4s
-mi4tr
-2m1k
-2m1l
-2m1m
-2m1n
-m2o
-2mod
-2m1p
-m4pl
-m3pr
-2m1r
-4m1s
-2m1t
-m3ta
-3muo
-2m1v
-2m1w
-2m1z
-2m1č
-2m1š
-2m1ž
-na3s2
-na3t2
-2n1b
-2n1c
-ncen1
-2n1d
-n3drė
-ne1
-neg4
-nei2m
-ne4o3
-neor2
-nerė3
-nesi1
-ne3sl
-ne3s2t
-ne3t2
-neįs3t
-2n1f
-4n1g
-ng3l
-ng4r
-2n1h
-ni4s
-2n1j
-2n1k
-nk3la
-nk3r
-n3kry
-2n1l
-2n1m
-2n1n
-5no
-2n1p
-2n1r
-4n1s
-ns4ku
-ns3l
-n4s3p
-nst3r
-4n1t
-n3ta
-nt4pl
-n3tru
-nt2ruo
-nua4
-nu3b2
-nu3g
-nu1i
-nuk2
-nu4o3
-nuos2
-nu5s4
-2n1v
-2n1w
-2n1z
-4n1č
-2n1š
-2n1ž
-o1a
-o1b
-o1c
-o1d
-o3dr
-o1e
-o2et
-o1f
-o1g
-o1h
-o1i
-o1j
-o1k
-o3kr
-o1l
-olen1
-o1m
-om4pr
-o1n
-ono1
-o1o2
-o1p
-o1r
-o2rie
-ori4s
-or4tr
-o2rę
-o1s
-o3sl
-os3le
-os4lo
-o3s2v
-o3t2
-oto1
-o1v
-o1w
-o1y
-o1z
-o1ą
-o1č
-o1ę
-o1ė
-o1į
-o1š
-oš2v
-o1ų
-o1ū
-o1ž
-pa3
-pad2
-pai2l
-pai2m
-pai2r
-3pan
-pap4
-p2ar
-parsi1
-pa4r1ė2
-pas2
-pa5sr
-p2at2
-2p1b
-4p1c
-4p3d2
-p2e
-per1
-pe2re
-pe2r3im
-per3s
-pe2rė
-2p1f
-2p1g
-2p1h
-p2i
-p3ieš
-2p3k2
-3p2l
-p3le
-p3li
-4plio
-p4liu
-p3lo
-p4loj
-p4lu
-p4ly
-2p1m
-4p1n
-3po
-po4g
-poli1
-2p1p
-2p2r
-p3rai
-prau2si
-p3raš
-p3ri
-pris2
-p5ro.
-p3rom
-p3ry
-4prą
-p3rė
-p3rū
-4p1s
-psi1
-p5s4k
-p4s3ty
-p3s2v
-4p3t2
-3p4u
-pusiau1
-pu4sk
-pu4sl
-pu4tr
-2p1v
-2p1w
-p2y
-2p1z
-2p1č
-p2ė
-4p3š2
-4p3ž
-r2a
-3ra.
-ra3b
-3rac
-ra1im
-rai4tį
-ra3kr
-3ral
-3ram
-ras4l
-ra3sm
-rau4ka.
-3rav
-2r1b
-rbo1
-r3b4r
-2r1c
-4r1d
-2reb
-4rein
-4reit
-3rel
-re4p5
-5res
-res3l
-3ret
-2r1f
-2r1g
-2r1h
-r2i
-3ri.
-ri3d
-3rij
-ri3kr
-2ril
-ri2ma.
-2r3imt
-3rio
-ri3p
-risi1
-ri3st
-rivin1
-3rią
-3rių
-2riū
-4r1k
-rk3ly
-r3k4r
-4r1l
-2r1m
-4r1n
-r2o
-3rod2
-ro4gr
-3roj
-3rok
-3ron
-3rop
-2r3org
-5ros
-2r1p
-r3p4r
-2r1r
-4r1s
-rs4ko.
-rs4p
-4r1t
-rti5k4
-rti3s2
-r3t2r
-r3t2v
-r2u
-2ruk
-3rul
-4run
-3ruos
-2rup
-3rus
-ru4sk
-4ruto
-4r1v
-2r1w
-2r1z
-3rą
-4rąs
-4r1č
-4r1š
-r3š2l
-r3š2m
-5rų
-2r1ž
-sala1
-2s1amž
-san5t
-sarka1
-2s3b
-2s1c
-2s3d
-s2e
-se4kr
-senat4
-2s1f
-2s1g
-2s1h
-si3auk
-si3a2v
-si3a2š
-si3d
-si3k4
-si3p4
-si3s2
-si5š2v
-3s2k2
-4sk.
-s5ka.
-4ske
-5s4ken
-5ski
-5s4kle
-5sk4r
-5skub
-sk3va
-sk3vi
-5sky
-4ską
-5skę
-2s2l
-3sle
-s3li
-s3lo
-4s3lu
-4s3lū
-2s1m
-4sme.
-4smę
-4s3n
-so4dr
-3s2p
-s3pe
-4spn
-4spu
-4s1r
-s3ri
-2s1s
-2s1t
-s2tal
-s2ten
-4stin
-s2tod
-s2toj
-3s2tov
-st2rai
-st2v
-4stę
-4s3tė
-4stų
-s2tū
-su1
-su3bl
-su3d2
-su3g2
-suk2l
-su3s2
-susi1
-suž4
-2s1v
-s2ve
-3s2vy
-2s1w
-2s1z
-są3
-4s3č
-5sė
-2s1š
-2s1ž
-t2a
-2tab
-ta3kr
-ta5s
-2tat
-taura1
-2tač
-2t1b
-2t1c
-2t1d
-2teb
-3tem
-te4o
-te3t2
-2t1f
-4t3g
-2t1h
-t2i
-ti4gr
-ti4k3l
-3tin
-2tip
-4t3j
-4t3k
-t4kl
-4t3l
-4t3m
-2t1n
-t2o
-3toje
-2tolį
-to3s2
-2tow
-2t3p
-t4pj
-tp3lū
-tp4r
-2t1r
-4trio
-t2riš
-4tro
-4trą
-4trų
-4t3s4
-tsi1
-tskri1
-4t1t
-tua4
-3tur
-2t1v
-t2vo
-4tvėj
-2t1w
-3tyd
-2t1z
-2t1č
-3tę
-t2ėm
-t3ėmu
-t3ėmę
-t3ėmė
-2t3š2
-2t3ž
-u1a2
-u3ai
-u1b
-u2bj
-u1c
-u1d
-u1e2
-u1f
-u1g
-ug4r
-ug5rio
-u1h
-u1i2m
-u5in
-ui2r
-u1j
-u1k
-u3kl
-uk2le
-u3kr
-u3kv
-u5kų
-u1l
-u1m
-u1n
-u2o
-u3or
-uo4sl
-u3p
-up4l
-up3ro
-u1r
-urk2
-ur3kl
-u5ro1
-ur3s2
-u1s
-u2s1al
-u3sl
-us3la
-us3le
-usva1
-us3ve
-u3t2
-uto1
-2utr
-u1u
-u1v
-u1w
-u1y
-u1z
-u1ą
-u1č
-u1ę
-u1ė2
-u1į
-u1š
-u3š2l
-u3š2n
-uš2v
-u1ų
-u1ū2
-u1ž
-uži2m
-u3žl
-už3v
-už1ė2
-3va.
-vap4
-va3t
-2v1b
-2v1c
-2v1d
-v2e
-2vep
-3ves
-2v1f
-2v1g
-2v1h
-viesia1
-vi4s5k
-vi4t3r
-2v1j
-2v1k
-2v1l
-2v1m
-2v1n
-2v1p
-2v1r
-2v4s
-2v1t
-2v1v
-2v1w
-2vydau
-2v1z
-3vą
-2v1č
-3vė
-4vėp
-2v1š
-2v1ž
-2w1b
-2w1c
-2w1d
-2w1f
-2w1g
-2w1h
-2w1k
-2w1l
-2w1m
-2w1n
-2w1p
-2w1r
-2w1s
-2w1t
-2w1v
-2w1w
-2w1z
-2w1č
-2w1š
-2w1ž
-y1a
-y1b
-y1c
-y1d
-y1e
-y1f
-y1g
-ygia1
-y1h
-y1i
-y1j
-y1k
-y4k3l
-y1l
-y1m
-y1n
-y1o
-y1p
-y3r
-y1s
-y4sk
-y1t
-y1u
-y1v
-y1w
-y1y
-y1z
-y1ą
-y1č
-y1ę
-y1ė
-y1į
-y1š
-y1ų
-y1ū
-y1ž
-2z1b
-2z1c
-2z1d
-2z1f
-2z1g
-2z1h
-2z1k
-2z1l
-2z1m
-2z1n
-2z1p
-2z1r
-2z1s
-2z1t
-2z1v
-2z1w
-2z1z
-2z1č
-2z1š
-2z1ž
-ą1a
-ą1b
-ą1c
-ą1d
-ą1e
-ą1f
-ą1g
-ą1h
-ą1i
-ą1j
-ą1k
-ą1l
-ą1m
-ą1n
-ą1o
-ą1p
-ą1r
-ą1s
-ą1t
-ą1u
-ą1v
-ą1w
-ą1y
-ą1z
-ą1ą
-ą1č
-ą1ę
-ą1ė
-ą1į
-ą1š
-ą1ų
-ą1ū
-ą1ž
-2č1b
-2č1c
-2č1d
-čeko1
-2č1f
-2č1g
-2č1h
-čin1
-2č1k
-2č1l
-2č1m
-2č1n
-2č1p
-2č1r
-2č1s
-2č1t
-2č1v
-2č1w
-2č1z
-2č1č
-2č1š
-2č1ž
-ę1a
-ę1b
-ę1c
-ę1d
-ę1e
-ę1f
-ę1g
-ę1h
-ę1i
-ę1j
-ę1k
-ę1l
-ę1m
-ę1n
-ę1o
-ę1p
-ę1r
-ę1s
-ę1t
-ę1u
-ę1v
-ę1w
-ę1y
-ę1z
-ę1ą
-ę1č
-ę1ę
-ę1ė
-ę1į
-ę1š
-ę1ų
-ę1ū
-ę1ž
-ė1a
-ė1b
-ė1c
-ė1d
-ė1e
-ė1f
-ė1g
-ė1h
-ė1i
-ė1j
-ė1k
-ė4k3l
-2ė3l
-ė1m
-ė3me
-ė1n
-ė1o
-ė1p
-ė1r
-2ė1s
-ės3l
-2ė3t
-ė4tr
-ė1u
-ė1v
-ė1w
-ė1y
-ė1z
-ė1ą
-ė1č
-ė1ę
-ė1ė
-ė1į
-ė1š
-ė1ų
-ė1ū
-ė1ž
-į1a
-į1b
-į1c
-į1d2
-į2e
-į1f
-į4g
-į1h
-į1i
-į1j
-į2k4
-į2l
-į2m
-į1n
-į1o
-į4p
-į2r
-į1s
-įsi1
-įs3l
-įs2m
-įs2r
-įst2
-į2t2
-į1u
-į2v
-į1w
-į1y
-į1z
-į1ą
-į1č
-į1ę
-į1ė2
-į1į
-į1š
-į1ų
-į1ū
-į1ž
-2š1b2
-2š1c
-2š3d2
-š1ei
-še2v
-2š1f
-2š1g4
-2š1h
-2š5ist
-šiuk1
-2š1k2
-2š1l
-š2lij
-š2lu
-3šly
-2š1m
-2š1n
-š2ne
-šno1
-šo2r
-2š1p4
-2š1r
-2š3s4
-šsi1
-šsikap1
-4š3t2
-šu4š
-3š1v
-š2vi
-š4vyd
-2š1w
-2š1z
-4š3č
-šė2j
-2š1š
-2š1ž
-ų1a
-ų1b
-ų1c
-ų1d
-ų1e
-ų1f
-ų1g
-ų1h
-ų1i
-ų1j
-ų1k
-ų1l
-ų1m
-ų1n
-ų1o
-ų1p
-ų1r
-ų1s
-ų1t
-ų1u
-ų1v
-ų1w
-ų1y
-ų1z
-ų1ą
-ų1č
-ų1ę
-ų1ė
-ų1į
-ų1š
-ų1ų
-ų1ū
-ų1ž
-ū1a
-ū1b
-ū1c
-ū1d
-ū1e
-ū1f
-ū1g
-ū1h
-ū1i
-ū1j
-ū1k
-ū4k3l
-ū1l
-ū1m
-ū1n
-ū1o
-ū1p
-ū1r
-ū1s
-ū4s3k
-ūs3l
-ūs3t
-ū1t
-ū1u
-ū1v
-ū1w
-ū1y
-ū1z
-ū1ą
-ū1č
-ū1ę
-ū1ė
-ū1į
-ū1š
-ū1ų
-ū1ū
-ū1ž
-žant4
-žants5
-2ž3b2
-2ž1c
-2ž3d2
-žen1
-2ž3f4
-2ž3g
-2ž1h
-ži3mu
-žio3
-ž1j
-2ž3k2
-2ž1l
-ž2lu
-4ž1m
-2ž1n
-2ž3p
-2ž1r
-2ž1s
-žsi1
-ž4sk
-ž4s5l
-žs3t
-4ž3t2
-ž2u
-žu3s2
-3ž2v
-ž4vi
-ž3vo
-2ž1w
-2ž1z
-2ž1č
-žįs3
-2ž1š
-2ž1ž} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-lv.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-lv.hyp
deleted file mode 100644
index 2f1f4b0b1b7..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-lv.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-lv.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-lv.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-lv.pat
deleted file mode 100644
index 8fffdc8cdeb..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-lv.pat
+++ /dev/null
@@ -1,11590 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-lv.rme
-
-% used: a b c d e f g h i j k l m n o p r s t u v z ā č ē ģ ī ķ ļ ņ š ū ž
-
-\patterns{
-d4z
-d4ž
-a2i
-a2u
-i2e
-e2i
-u2i
-i2u
-o2i
-o2u
-e2u
-.vi1s2a.
-.vi1s2ā.
-.vi1s2i.
-.vi1s2os.
-.vi1s2u.
-.vi1s2iem.
-o1pī
-ū1rē
-i1ta
-ū1ga
-ē1žu
-ū1to
-ā1ni
-i1rē
-i1čo
-ā1bu
-o1mī
-o1kā
-o1či
-ā1lo
-e1čū
-o1ļā
-e1la
-i1šo
-o1bi
-ē1cē
-ā1ru
-o1si
-u1no
-e1hā
-ā1nē
-e1bū
-i1ru
-o1sū
-a1ča
-ā1ča
-o1rē
-i1ke
-o1ra
-u1te
-i1zo
-i1gi
-ē1ma
-ū1ķe
-ū1ca
-o1dē
-a1nā
-ā1ge
-e1či
-ū1bē
-ē1tā
-ā1fi
-i1zi
-o1lī
-e1še
-e1gā
-i1fo
-a1ņo
-u1to
-ī1zē
-ū1gu
-ā1ša
-i1ķi
-ū1nē
-ī1ma
-ā1te
-ē1kē
-ū1mā
-u1zu
-o1sā
-ē1bu
-ī1ga
-e1di
-ī1te
-a1ļī
-e1tē
-i1že
-o1fo
-ā1pu
-o1hu
-ē1do
-o1du
-ā1ma
-ū1mi
-e1re
-i1ha
-i1be
-e1lu
-ā1ja
-ū1ta
-a1šū
-a1da
-ē1cī
-i1bu
-a1pī
-u1ņā
-e1zu
-ū1no
-e1nī
-i1no
-e1mā
-ē1ļa
-ū1pā
-ā1be
-ā1mo
-ī1ja
-e1ji
-ī1re
-e1ce
-ī1ri
-ī1tī
-ū1ni
-ī1žī
-i1ži
-a1fī
-a1be
-e1šā
-e1ķo
-e1pū
-e1ļī
-u1ģi
-ē1tī
-a1ci
-e1jē
-a1zī
-o1lē
-u1ga
-ī1ci
-a1ke
-e1ho
-i1nū
-ū1šī
-e1si
-e1bo
-o1ģē
-u1ņi
-u1sē
-ē1bā
-o1ša
-ū1ro
-ē1ce
-i1zī
-i1ve
-o1ļu
-i1dī
-o1ku
-e1vē
-a1ri
-u1sā
-i1pā
-i1dē
-o1pū
-ī1vī
-a1me
-ē1ze
-ī1bē
-u1ķe
-a1bē
-a1ja
-ā1ļo
-a1jē
-e1fe
-o1pu
-o1to
-ē1vē
-a1ki
-o1mā
-o1lo
-a1lo
-ē1ķi
-e1šē
-ū1dī
-ū1cā
-o1zo
-o1gū
-o1gā
-ī1tē
-e1zē
-ī1le
-e1gī
-ī1na
-o1me
-e1po
-e1fu
-a1ģe
-u1rū
-u1ri
-ū1jo
-e1dē
-a1ļa
-a1žā
-ī1ļa
-ē1ne
-a1zū
-ā1vē
-e1so
-o1mi
-o1šo
-ē1sī
-ē1ļu
-e1ga
-i1pē
-e1vu
-o1ru
-ē1ju
-u1či
-ā1va
-a1hu
-ī1sē
-e1ķa
-i1rā
-a1čā
-ī1ki
-i1ti
-u1cu
-i1žu
-ā1jo
-u1ki
-u1mu
-o1ķī
-e1ma
-ī1ļo
-ē1de
-o1čo
-ā1ču
-i1ņa
-u1ļa
-u1mā
-o1he
-i1lī
-a1de
-o1fa
-ē1ro
-o1sī
-ā1ri
-ū1ti
-o1bē
-a1jā
-ū1zu
-ā1vī
-e1ļe
-o1ņa
-ī1de
-ī1še
-a1kū
-ū1ja
-o1dī
-e1ži
-e1ri
-ī1gā
-e1ki
-u1ze
-u1ma
-i1vī
-ē1pī
-u1lu
-e1ti
-o1čā
-a1ķi
-ū1zē
-a1ļo
-i1či
-o1ke
-a1ģu
-i1vē
-u1ču
-u1ca
-u1vu
-o1ļa
-i1ri
-o1ņo
-u1co
-a1rā
-o1jā
-ī1bi
-e1čī
-ē1rē
-e1kā
-i1pi
-a1ka
-ā1vu
-ū1ža
-e1mī
-e1vī
-o1gi
-a1pē
-ū1zā
-i1cē
-e1va
-o1nī
-ī1ru
-e1pā
-a1ce
-ē1kā
-o1ja
-a1hē
-a1bo
-ū1mu
-ī1ve
-i1nā
-i1fi
-o1va
-u1žu
-e1ģi
-ē1nī
-i1li
-i1ņo
-u1la
-ī1ģe
-e1ca
-a1tā
-ū1zi
-a1bū
-ē1pē
-ī1su
-ī1pā
-ī1zu
-ū1di
-e1lo
-ā1mā
-e1ci
-a1ža
-ē1to
-e1rū
-ā1la
-u1ķu
-o1ģī
-ā1pa
-e1lū
-e1sī
-e1bē
-i1co
-i1ķē
-a1šo
-ū1ku
-u1šā
-o1di
-a1ņa
-ī1pa
-o1pi
-a1žē
-a1si
-a1ha
-u1šo
-ē1mā
-ī1mo
-ā1žo
-ū1lu
-e1žū
-o1ķi
-ā1vā
-a1žo
-i1zā
-a1ku
-o1zi
-o1dā
-e1cu
-ī1no
-e1zi
-e1jū
-ā1ņo
-i1ce
-ū1lē
-a1žī
-o1mē
-i1bī
-o1re
-e1zū
-ū1ra
-a1gi
-i1lē
-ī1bā
-ū1šu
-e1bi
-i1gū
-ū1ķi
-ē1va
-ā1to
-u1ce
-a1pū
-ā1gi
-i1ķe
-ā1kā
-e1ķī
-ē1ža
-u1ve
-u1vo
-ē1no
-o1bu
-a1tī
-e1fi
-e1ļo
-ū1ži
-a1tū
-ī1ti
-ī1la
-i1ho
-ē1gi
-i1fū
-a1tē
-ā1ķi
-a1mi
-e1ra
-u1ja
-e1me
-ī1bu
-i1pu
-o1la
-a1ķī
-u1šu
-o1ža
-a1rū
-ū1ļa
-e1ču
-ī1lo
-o1nu
-ā1jē
-a1dā
-u1rē
-u1rī
-ē1žo
-i1mā
-a1zo
-o1žu
-ē1da
-ī1co
-ū1zī
-ā1sa
-ē1šu
-ū1po
-i1si
-u1zē
-ū1ri
-u1zī
-ū1gā
-e1pu
-ā1du
-e1cē
-ē1ji
-i1bi
-ē1rā
-i1ļi
-u1nu
-i1ki
-a1mū
-ī1ni
-ā1fe
-ē1ca
-ā1ņi
-u1go
-a1nu
-e1nē
-u1ku
-ā1ži
-ē1go
-e1če
-ē1za
-ā1čā
-i1ģe
-ī1go
-a1go
-e1bī
-i1ze
-e1šū
-o1kē
-o1pē
-i1na
-ā1ra
-ā1jī
-o1za
-e1zā
-a1lā
-e1ņē
-a1je
-ē1si
-ā1bo
-u1gā
-i1sē
-u1ši
-u1bī
-a1vā
-e1ko
-ā1šu
-ā1ģē
-i1mo
-e1ļā
-i1tē
-u1ļā
-a1ņē
-u1na
-ī1vo
-ū1me
-a1hī
-ū1ka
-ā1mī
-ā1lī
-ū1tu
-e1je
-ī1vā
-a1ba
-ī1dā
-ū1ko
-ū1cē
-ā1nī
-a1ļē
-u1ju
-ā1žā
-ū1mo
-i1ge
-ā1pā
-e1lā
-i1ķī
-a1sē
-e1ni
-a1ma
-a1tu
-i1kū
-a1bi
-i1jī
-ī1ķu
-e1fā
-u1ta
-ē1dē
-a1gā
-i1lā
-i1ņi
-e1ļa
-ē1ti
-ā1bi
-a1ši
-a1lī
-i1ja
-e1mu
-o1hē
-u1jā
-ū1ša
-i1sā
-u1po
-ā1cā
-a1se
-o1ņe
-u1fo
-ā1sū
-ā1bū
-o1co
-o1ķē
-ā1ļa
-e1že
-u1tī
-ī1ku
-u1ķa
-u1zi
-e1do
-i1so
-o1fi
-ē1sā
-i1pī
-ī1ši
-a1dī
-ā1ti
-u1ņo
-u1pa
-o1ka
-o1cī
-i1pe
-ī1mā
-ā1pē
-ā1pī
-ū1pē
-o1bū
-e1ķē
-a1mē
-ā1rū
-o1de
-i1ķa
-o1šī
-ī1gu
-u1bi
-ā1ka
-ā1nu
-u1ži
-u1so
-ē1ka
-ā1le
-ē1pe
-u1ļī
-ī1me
-u1dī
-i1žā
-i1du
-ē1ra
-o1vo
-o1fā
-o1so
-ā1ļā
-e1dā
-ā1gu
-o1bo
-e1hī
-ā1ģi
-ā1čo
-a1dē
-u1di
-ī1se
-ē1sē
-ā1nā
-a1nī
-ū1rā
-o1hi
-o1šā
-i1lū
-ē1lē
-i1te
-u1še
-ī1tu
-u1ģo
-e1ši
-ū1ba
-e1ņa
-u1si
-ē1zo
-ū1kā
-i1gu
-ū1da
-i1sū
-o1bī
-a1mo
-ē1gā
-ā1ve
-u1bē
-e1ņo
-ē1vo
-ī1mī
-u1ļu
-ā1tu
-i1cī
-u1fa
-ā1tā
-ē1gu
-o1ga
-i1mi
-i1fē
-i1ļe
-ā1co
-u1žī
-i1zē
-i1vu
-a1ju
-i1ca
-ī1ču
-ū1re
-ē1bi
-e1ro
-i1fā
-a1he
-u1mo
-i1jo
-e1bu
-ī1ro
-a1te
-ī1ģi
-ā1di
-i1bū
-u1ļi
-u1le
-a1na
-e1tā
-e1bā
-o1tū
-ū1ze
-ā1fu
-ī1be
-a1pā
-u1de
-i1dū
-e1ve
-ī1di
-a1vo
-u1lā
-e1pi
-u1dē
-ē1dā
-o1jo
-i1žo
-ī1ķe
-o1nā
-e1mū
-ā1zā
-a1ro
-ī1rā
-a1že
-u1je
-a1ti
-ū1cī
-i1tī
-ī1vi
-ī1jo
-e1co
-i1tū
-i1bo
-ū1pe
-e1tū
-o1pā
-ē1se
-a1ļā
-ā1ji
-a1čo
-e1za
-ā1mē
-a1žū
-e1šo
-ī1ļu
-ū1jā
-o1su
-e1ja
-o1ta
-e1lī
-o1ze
-ī1vē
-o1vā
-a1vī
-i1kī
-ā1zī
-u1ha
-ī1pē
-i1de
-o1nē
-ū1bī
-ē1tu
-a1ži
-ā1žu
-o1ņā
-o1ļo
-i1ņē
-u1ci
-ī1ca
-ū1sa
-e1rī
-i1bē
-e1ne
-a1šī
-u1gi
-ī1mu
-a1zā
-i1lo
-ī1cē
-u1lī
-e1čo
-a1bu
-i1nī
-ā1dā
-ā1tē
-ā1ko
-ī1šu
-o1ģi
-a1ta
-i1la
-a1va
-a1še
-a1hi
-a1ca
-e1be
-e1žē
-a1su
-ī1dī
-o1da
-e1ģo
-e1ņu
-e1pa
-ī1jā
-e1sā
-a1ņi
-ū1so
-ī1nu
-i1vo
-ū1lo
-ī1nē
-ē1mī
-ū1cu
-o1žē
-ē1jā
-ī1cā
-a1ču
-o1zū
-a1lu
-ā1lu
-o1ņu
-a1vu
-i1tu
-i1ķu
-i1ķo
-i1ko
-a1fa
-ī1pi
-i1go
-i1me
-a1fi
-e1sū
-ī1ju
-o1pe
-a1sī
-a1nē
-ū1že
-ē1ve
-i1po
-o1zē
-a1ne
-e1sa
-a1lē
-ē1ša
-ū1gi
-ē1lā
-i1mū
-u1vā
-ū1mī
-ū1mē
-u1ro
-ā1po
-o1ju
-i1fu
-i1jē
-i1ga
-ū1tā
-ē1lu
-ū1sā
-a1gū
-ā1bā
-a1la
-o1ri
-ē1šo
-ū1ņa
-o1fē
-e1li
-ē1ko
-u1va
-ī1šo
-a1zi
-e1dī
-i1da
-i1šī
-i1hī
-i1ne
-i1šu
-ē1ku
-e1ņā
-o1na
-ī1ža
-o1ča
-ā1fa
-o1tē
-ī1dē
-o1tā
-i1hi
-ē1mu
-ī1so
-e1cā
-ā1zi
-ī1cī
-u1šē
-o1no
-ā1ņe
-u1bu
-ū1gē
-o1ve
-a1ģī
-i1lu
-i1pa
-e1ka
-ā1ci
-u1ķī
-o1sa
-o1go
-i1nu
-ī1žo
-i1sī
-o1fī
-a1pu
-a1du
-ī1ļi
-o1ba
-i1fa
-e1mi
-o1cu
-u1ža
-ā1mi
-a1ķā
-i1ču
-o1žū
-ī1kā
-ā1ķe
-u1ģē
-e1da
-ē1dī
-ī1čo
-ū1pa
-ā1de
-o1ma
-i1dā
-ē1ņo
-ū1žu
-o1ko
-a1vē
-ā1zē
-ā1sā
-ī1do
-u1cā
-ī1ļā
-u1du
-e1ju
-ā1si
-o1vē
-i1ša
-u1fe
-o1ji
-ē1re
-ū1ļī
-u1ņa
-ā1ca
-a1šu
-ū1nu
-ū1le
-e1ķi
-ā1tī
-o1ge
-i1vā
-ū1za
-ē1nā
-ū1ma
-ā1ķu
-e1lē
-ā1sē
-ā1li
-ī1ne
-i1mī
-ā1pi
-a1mā
-a1žu
-i1ju
-ē1vu
-u1nā
-ū1ru
-e1vi
-a1pa
-i1bā
-o1cē
-ā1lē
-e1ku
-u1lē
-i1se
-e1vā
-ē1jē
-e1pī
-ē1ci
-o1ši
-a1hā
-a1kā
-u1ji
-ū1rī
-ī1sā
-i1ro
-o1rā
-ū1ki
-o1ro
-e1ru
-o1kū
-ē1su
-a1ņā
-ū1tī
-ā1ba
-e1ņe
-e1nu
-ē1te
-ā1vo
-a1sa
-e1nū
-ū1žī
-o1že
-ū1do
-ē1jī
-ī1vu
-o1vi
-u1ba
-ā1na
-ī1mē
-a1ji
-u1ti
-e1mo
-a1ra
-e1hi
-o1te
-u1bo
-e1su
-i1fī
-ē1pi
-i1ģi
-ī1ņu
-ū1lī
-ā1ro
-o1zā
-a1vi
-o1ni
-ī1za
-o1do
-ī1zā
-o1gē
-u1zū
-u1li
-u1da
-a1či
-e1ta
-i1ra
-ā1ķa
-a1jū
-ī1ba
-a1cē
-u1ra
-i1kā
-i1zu
-ē1nu
-a1šā
-e1to
-u1gē
-ū1pī
-a1ho
-ā1je
-ī1ķa
-a1ve
-o1šu
-u1čo
-ī1mi
-u1sī
-a1dū
-e1cū
-ī1rī
-u1ko
-ā1ķī
-ā1zu
-ā1mu
-ī1sa
-ā1ņu
-u1ka
-i1ba
-ū1vi
-ē1ga
-ē1ģe
-a1rī
-u1ša
-u1cī
-a1co
-ī1cu
-o1vu
-i1je
-u1do
-o1cā
-ā1vi
-i1jā
-a1ze
-a1mu
-o1ņi
-e1ža
-o1čī
-i1ča
-i1mē
-ā1cī
-ē1la
-e1dū
-ū1nī
-ī1po
-ē1ļi
-ī1nā
-ū1be
-u1se
-ū1ci
-ī1ņā
-ī1ke
-ā1cē
-ē1sa
-ē1li
-a1ģā
-u1pe
-ā1ku
-a1bī
-u1pu
-o1ca
-u1ne
-ī1ļī
-u1mi
-e1du
-i1ļu
-u1pā
-ī1ņa
-ī1pu
-u1be
-o1ču
-o1šē
-ū1šo
-ē1me
-a1ķa
-u1zo
-ē1zā
-ū1ce
-e1tī
-o1ķu
-ē1jo
-u1tū
-ā1cu
-i1vi
-e1žā
-a1jo
-e1jo
-ū1bi
-u1nī
-ā1ļu
-e1zo
-i1ma
-u1vē
-o1jū
-o1ha
-ū1pu
-e1ša
-a1ru
-a1li
-u1mī
-ū1ve
-ā1pe
-i1cu
-ū1nā
-ī1sī
-e1pe
-ī1zī
-i1rī
-ī1pe
-o1po
-ā1rē
-a1ņe
-ī1gi
-e1žī
-ī1lu
-i1su
-ī1tā
-a1no
-ī1ži
-a1sū
-a1ko
-i1žē
-u1jo
-i1va
-ī1ji
-a1fe
-o1pa
-e1rē
-e1šī
-ē1cu
-i1šā
-ū1žā
-e1ģe
-ē1cā
-a1po
-i1tā
-ā1ne
-ī1va
-e1se
-ī1ra
-o1gu
-ū1de
-u1dā
-i1di
-u1rā
-ē1nē
-a1to
-e1fī
-a1so
-e1ze
-ē1le
-o1mu
-ī1ta
-e1ļu
-a1zē
-ē1ķē
-o1ģe
-e1na
-ū1vē
-ē1du
-u1žo
-i1nē
-ī1si
-i1ka
-ī1fe
-e1no
-i1le
-e1pē
-e1ģē
-ā1go
-i1ni
-e1ča
-a1čī
-ē1be
-a1ša
-e1gi
-i1mu
-ē1bē
-a1čū
-ī1šā
-a1bā
-ī1du
-o1ci
-ē1bo
-ā1ki
-o1mo
-ē1lo
-o1lā
-o1le
-a1gī
-u1kā
-ē1vi
-ī1lē
-u1čē
-ē1mo
-a1cī
-u1ča
-ī1to
-a1fē
-u1ķi
-e1fa
-ī1ša
-o1bā
-a1ļi
-ī1da
-a1mī
-i1gā
-a1ģē
-e1cī
-ā1ta
-i1re
-ā1me
-ū1dē
-a1re
-ī1li
-a1ga
-o1tu
-u1pī
-e1ha
-ā1ķē
-e1tu
-i1ģē
-e1kē
-ā1bē
-o1čū
-a1zu
-ū1sē
-ū1ne
-ā1ga
-ū1vo
-o1ho
-ē1ļā
-o1rī
-ū1ju
-o1fu
-ū1ji
-o1lū
-ā1do
-i1to
-u1bā
-u1ge
-u1cē
-a1le
-u1ķē
-ī1ce
-a1ķu
-ā1ze
-e1šu
-ē1ja
-a1vū
-i1ņā
-ē1na
-o1ne
-ā1dē
-ā1ģa
-u1su
-u1sa
-ē1di
-ū1su
-e1fo
-ē1ni
-ī1pī
-i1ku
-ē1pa
-ē1po
-ī1zi
-i1ļa
-i1ši
-ē1lī
-ā1no
-a1jī
-ā1gā
-o1zī
-ā1dī
-o1ļi
-ā1rā
-ē1zi
-ū1pi
-ē1ge
-o1mū
-i1kē
-e1gū
-u1gu
-i1zū
-a1gu
-a1lū
-i1cā
-ū1lā
-o1ķe
-o1se
-ē1vā
-ē1ru
-a1fo
-e1sē
-ā1re
-ā1lā
-e1ļi
-a1ņu
-e1jā
-ā1ža
-ē1zu
-e1ņi
-u1pi
-ē1mē
-o1ņē
-o1ti
-u1pē
-e1zī
-u1fi
-e1ķe
-ā1jā
-u1vī
-ī1ņi
-u1žā
-ū1li
-e1de
-o1be
-ē1zī
-e1hu
-e1he
-ī1lā
-u1tē
-e1nā
-a1sā
-ā1se
-ē1ļo
-a1ģi
-ī1ze
-o1je
-ū1te
-e1kū
-o1li
-ā1ce
-o1vī
-i1ci
-ā1so
-e1ge
-i1še
-a1ni
-i1do
-ā1lū
-o1žā
-o1še
-o1zu
-a1cu
-e1mē
-e1gu
-ē1ta
-a1do
-e1ba
-ē1ģi
-e1žo
-ā1gū
-a1za
-ū1la
-ū1ķī
-a1pi
-ī1nī
-ū1šā
-i1šē
-o1ļe
-ē1mi
-u1zā
-i1ķā
-ī1ko
-o1dū
-ī1ķi
-a1ķē
-ā1su
-ī1lī
-e1čā
-ē1ļe
-u1za
-o1ži
-o1fe
-ū1tē
-o1ki
-ā1za
-e1le
-ē1bī
-a1di
-o1sē
-ī1žu
-ī1bo
-u1me
-a1rē
-i1ļo
-ū1si
-ā1sī
-u1ni
-ī1ka
-ā1ļi
-o1tī
-ā1šo
-u1tu
-e1žu
-i1ža
-o1lu
-ē1rī
-ā1ju
-u1šī
-a1ķe
-ē1so
-ā1da
-ē1ba
-ē1ri
-o1ce
-ē1ki
-i1ļā
-a1pe
-o1šū
-u1ļo
-ī1zo
-ē1rū
-e1go
-e1te
-i1za
-e1vo
-u1vi
-i1fe
-i1ņu
-ā1zo
-ē1zē
-o1jē
-u1re
-ā1ņa
-ē1pā
-o1žo
-u1nē
-u1ņu
-ū1du
-a1ļu
-u1mē
-ē1pu
-u1lo
-i1ji
-ā1rī
-ī1rē
-e1rā
-u1ru
-a1cā
-o1rū
-ū1na
-u1ģe
-ū1dā
-u1tā
-i1sa
-at1tu
-eg1rū
-ak1so
-it1de
-eb1lā
-et1vī
-or1bi
-al1ša
-ap1dū
-ak1na
-um1ci
-aš1le
-ēr1ķe
-en1ku
-il1ki
-ēr1ku
-at1nā
-at1ģē
-us1pē
-os1vī
-os1ci
-an1ra
-en1pa
-ej1dē
-až1vī
-as1bu
-īs1ga
-iņ1di
-en1to
-uj1me
-or1ki
-el1zo
-ot1nē
-es1ko
-uz1gu
-ak1ti
-īr1ni
-iz1hi
-il1pu
-es1ma
-āt1vi
-ag1rē
-on1zē
-īb1tu
-ap1do
-īt1vī
-ul1sā
-īk1lī
-ur1so
-ok1tē
-ēb1tu
-īs1la
-et1ve
-al1mo
-op1ša
-en1ce
-im1nī
-uš1ķa
-ek1ti
-iz1cī
-er1di
-ur1fa
-an1tā
-er1ba
-as1pe
-al1su
-ip1so
-al1cī
-at1de
-aņ1ra
-ēk1šu
-īg1li
-om1ni
-oņ1ka
-as1le
-at1ņi
-id1rī
-un1ve
-al1kū
-in1da
-ār1ba
-īs1žu
-al1ka
-up1jī
-ur1gu
-at1sī
-īg1mā
-āl1ti
-al1va
-uļ1ku
-ok1rē
-er1gi
-uz1ļo
-ak1šē
-īm1re
-iz1te
-āt1vē
-ēg1ni
-īg1ru
-il1cē
-ir1mu
-ar1ku
-ot1zi
-ub1na
-an1če
-om1bī
-ēg1si
-el1le
-av1ru
-il1nu
-ēs1te
-ur1kā
-ik1ro
-ep1nu
-ur1vē
-oņ1lu
-it1ma
-il1ja
-ēj1tē
-an1ga
-eš1pa
-āl1ce
-ob1rī
-ur1vi
-up1ri
-ēz1tā
-iz1čo
-ap1ša
-uz1ru
-ut1rē
-ar1to
-ež1nī
-aš1ļu
-aļ1ce
-al1ne
-is1sī
-ib1šo
-uz1nu
-ut1ņu
-ul1de
-ār1ho
-am1pū
-ēl1gu
-um1vi
-ik1to
-ēr1ze
-ož1va
-ez1nī
-am1lī
-ak1se
-el1ko
-ep1si
-āj1tu
-um1zā
-at1ja
-al1ķī
-az1dā
-or1to
-ec1he
-at1cī
-en1ko
-ūs1ki
-īg1sa
-ef1ri
-ār1sa
-im1po
-īt1rī
-ed1vi
-id1sē
-ā1džā
-up1la
-ēc1te
-es1pu
-uk1šo
-āp1ni
-ā1dži
-ak1la
-en1na
-as1ka
-ām1di
-ag1li
-og1rā
-ag1dā
-oz1vi
-an1ku
-īk1nē
-us1mū
-er1ma
-āb1ša
-in1tu
-ob1ti
-ap1cu
-es1vā
-ac1ti
-ur1pu
-ar1kī
-el1la
-it1ta
-am1le
-ik1se
-ēk1ti
-ar1sa
-is1mu
-ut1ķe
-ār1vī
-u1dži
-et1nā
-id1ka
-āl1se
-ur1na
-ār1zo
-uz1li
-ān1ka
-as1ve
-ab1la
-aņ1ķe
-ēb1tā
-el1vā
-al1žu
-at1pū
-at1go
-ēr1la
-e1dzi
-iz1dē
-ab1se
-at1žē
-ir1ca
-ēr1su
-uļ1ma
-el1pe
-ej1ve
-ap1ve
-īg1rā
-el1po
-ed1lo
-it1mo
-ep1nā
-uk1tu
-at1šo
-ap1šā
-ār1čo
-ak1sē
-ek1tē
-om1pe
-ul1go
-um1dī
-ec1si
-ēd1vi
-um1mā
-iz1mo
-ok1zā
-āp1ro
-āl1ko
-āl1vē
-ed1po
-īl1zi
-of1rē
-ēj1lo
-ap1sū
-ip1šo
-is1pu
-in1fe
-ep1ra
-at1ša
-or1ga
-on1gā
-ak1šu
-at1jo
-es1pa
-uz1ša
-ār1su
-uz1be
-ik1sī
-en1ša
-ok1te
-ok1bu
-ur1ša
-or1ģe
-īn1ta
-ap1ģi
-iz1zu
-im1tī
-ap1te
-on1nā
-us1jū
-ur1no
-ab1ti
-en1jū
-op1so
-eņ1no
-ur1ka
-an1šo
-ol1le
-ūs1mo
-ās1tā
-ek1tī
-uz1sī
-iš1ķā
-um1pā
-is1po
-ob1lē
-ap1za
-ek1do
-ez1mē
-ēd1la
-uš1ka
-of1ri
-en1hī
-āf1ri
-uk1nu
-iz1do
-ej1ga
-ul1ri
-iz1fi
-ir1na
-is1ka
-ār1do
-en1šo
-ož1ma
-ēs1tī
-at1sā
-um1la
-oš1pa
-eb1to
-ez1ņi
-ej1ka
-iv1žu
-uņ1ģu
-ik1na
-il1ko
-ol1mu
-im1si
-ap1ta
-os1tu
-us1tī
-at1ko
-ar1ci
-iļ1do
-un1či
-oš1si
-en1zā
-ir1zo
-i1džā
-uz1ba
-er1vē
-ip1ni
-il1zu
-in1pū
-or1hi
-iv1de
-os1mē
-uz1pū
-ām1pi
-os1tū
-az1bē
-al1de
-on1de
-uz1ce
-em1ba
-ēr1ļu
-at1nē
-ār1tū
-ur1cu
-ir1ku
-āv1da
-īp1ri
-op1rā
-ej1ni
-am1dī
-ak1va
-ek1pi
-up1ve
-ūt1ma
-un1tā
-aš1ma
-āv1ja
-um1ti
-ūz1mā
-im1te
-ev1rē
-on1ti
-ig1za
-iz1gū
-up1rā
-id1pū
-ār1cī
-ār1lī
-el1lē
-us1ga
-ez1da
-ap1cē
-ej1la
-ag1da
-uz1va
-op1sē
-āģ1ve
-el1to
-ēz1kū
-eš1vi
-uz1vī
-ī1dze
-is1mē
-ef1rī
-ab1ša
-up1ma
-ār1nī
-aš1va
-ab1ri
-ob1tā
-ik1sā
-is1mī
-ag1ša
-ūr1ka
-āņ1mu
-ev1ni
-or1da
-em1ze
-āj1lo
-at1rū
-al1re
-il1cī
-ār1mi
-et1ma
-um1da
-ob1le
-āp1tu
-el1pā
-iz1ķe
-ez1tu
-al1tī
-ap1rū
-iz1ta
-em1ža
-ar1gi
-ēv1re
-as1kā
-až1kā
-eg1ta
-al1gā
-ap1le
-ap1ro
-īv1ni
-op1ka
-ik1vi
-il1tī
-ur1pī
-ir1kī
-iņ1ne
-iz1da
-op1re
-ēl1ni
-is1nu
-ar1cē
-ed1sē
-ul1ka
-ās1ma
-op1ba
-os1fē
-ak1le
-eļ1mū
-ēb1šu
-aš1ra
-uļ1pu
-oķ1vā
-ār1šo
-am1di
-ār1žu
-ed1pu
-ed1ve
-en1re
-ūk1li
-uš1pi
-ep1ta
-al1ve
-ad1ma
-ez1ce
-ēg1tā
-ud1rī
-im1bi
-ek1ra
-iv1jū
-ez1bi
-iz1me
-uļ1tī
-if1rē
-ap1ku
-id1ni
-og1rē
-ēj1de
-op1ko
-iz1tī
-un1ci
-īt1ka
-ēj1nī
-ēr1pē
-oš1ļa
-at1zu
-īv1ga
-os1na
-og1ga
-es1lu
-āt1ko
-az1va
-em1zi
-as1ke
-an1si
-iz1mi
-er1vā
-ep1sē
-al1sā
-us1cū
-ul1sa
-en1ta
-or1vē
-ek1tā
-uz1žo
-an1ma
-i1dzī
-ij1ku
-id1la
-ēp1ta
-ēļ1ko
-ur1ti
-ap1nī
-ot1re
-eš1ņu
-un1de
-ār1vē
-uz1ģī
-er1mū
-o1džu
-oš1ni
-ij1kā
-al1lo
-ig1lo
-er1rī
-em1pu
-ug1ļo
-ūš1do
-ip1ša
-ūs1tā
-oš1ba
-al1lē
-eš1da
-uļ1ļā
-ār1sū
-in1de
-em1to
-ās1tu
-ol1fi
-or1mā
-iv1pu
-aš1la
-ec1ho
-ār1za
-ar1ka
-ub1sī
-ap1zi
-ēp1to
-āk1tu
-er1te
-ur1zu
-īm1ka
-on1ju
-ap1go
-us1lo
-or1na
-og1no
-am1dā
-ār1ta
-ēl1ne
-er1cā
-im1na
-uz1zā
-ār1no
-aj1ci
-ip1tā
-it1ļu
-ag1ri
-ār1bū
-os1po
-ēņ1da
-an1kū
-om1bē
-ār1ve
-aļ1ģe
-im1ti
-al1ti
-īņ1ni
-in1na
-ep1la
-uz1di
-iž1me
-al1tē
-in1si
-ed1ma
-or1tu
-em1ta
-ug1si
-er1be
-us1ra
-il1mu
-ār1ga
-eb1lo
-īr1rū
-īt1re
-al1la
-et1vi
-el1di
-ār1ži
-iz1ca
-ad1da
-ēn1mī
-ut1sa
-ol1po
-ez1ra
-ir1šā
-eg1šo
-ud1pu
-ud1lē
-uk1sē
-on1vu
-em1pā
-ēk1bē
-ār1dē
-en1zū
-āj1re
-at1lo
-ez1ni
-et1ka
-iv1ji
-in1ku
-or1bī
-ok1ti
-al1si
-ur1zī
-ūn1ga
-ēr1pa
-am1bi
-at1ro
-ēr1bu
-iz1ķē
-ip1sē
-uz1či
-ir1du
-uh1tā
-er1bā
-ik1ga
-īš1ķi
-iz1rū
-it1da
-ok1ņu
-ēg1ta
-ir1lo
-an1ka
-in1dī
-es1vī
-op1ma
-um1sī
-on1pa
-em1pī
-ūk1ko
-el1tī
-uz1me
-er1vī
-ūz1na
-eg1ru
-it1ga
-us1du
-īt1ņu
-ep1lā
-ur1va
-um1zī
-īd1lī
-o1dži
-ār1bu
-ak1tā
-er1ta
-ēr1no
-ēr1pā
-um1bi
-en1ca
-oņ1cū
-ēj1mu
-at1pī
-ēr1gā
-ip1re
-ār1vi
-aļ1ķo
-et1ni
-ir1gū
-āp1ne
-ir1su
-āt1me
-eb1tu
-in1cē
-aš1ķe
-ip1ro
-om1da
-ep1tī
-ef1ra
-ū1dza
-ēt1ku
-ub1li
-az1be
-ūs1ka
-us1pa
-ar1su
-uf1li
-ūr1vī
-īs1za
-af1rē
-uz1ņa
-e1dža
-iz1bē
-ūt1di
-en1nī
-eļ1ķē
-es1ku
-az1da
-īg1ra
-iz1gā
-ar1ķī
-er1šu
-ud1ka
-ed1ri
-op1ra
-ap1li
-ap1dī
-ed1la
-an1rī
-en1tī
-āb1šo
-an1cū
-ēj1da
-es1tī
-er1ko
-ūg1ta
-el1zu
-in1ne
-er1bi
-ig1me
-ež1ni
-ad1mi
-aj1ni
-el1li
-ik1šu
-āl1pu
-ar1ga
-et1ta
-īc1še
-uz1zu
-om1bū
-un1ku
-īb1ni
-ar1ža
-ēt1ni
-is1tu
-un1ze
-aš1di
-it1ni
-en1zē
-en1ģe
-er1pe
-uz1zū
-ul1si
-ur1ca
-ap1fa
-is1no
-iz1ķī
-us1vi
-in1ho
-og1ļu
-ūs1nu
-er1ga
-ir1ze
-ēl1re
-ēs1li
-em1ma
-if1ra
-at1mē
-ur1rā
-at1ho
-ob1ju
-op1ro
-ip1li
-ec1mā
-er1mī
-ak1mu
-es1sa
-īk1lo
-u1džē
-ur1fi
-id1ko
-ār1ņu
-uņ1ģa
-īk1li
-iņ1ķe
-as1kē
-il1de
-ār1kū
-ul1bo
-ez1no
-en1mē
-ab1ro
-uz1gū
-ek1ņu
-ož1ņā
-at1ku
-uk1sa
-uk1lo
-ar1do
-ak1tu
-ār1du
-ik1ci
-al1du
-en1pe
-al1vī
-un1ti
-ul1le
-os1cē
-ec1sa
-īk1ti
-ār1dā
-ēb1ju
-ap1ču
-ub1rā
-iv1pa
-os1ma
-oš1ķe
-aš1pu
-um1pē
-ēp1tā
-ek1si
-īk1ļu
-uļ1ķī
-ūš1ka
-al1pe
-īg1nā
-uz1pā
-āt1rā
-īg1nu
-ik1lu
-āb1tā
-um1ji
-ab1so
-og1le
-ir1te
-īb1tā
-il1do
-em1zē
-ar1ģe
-ot1ve
-ap1gū
-id1vā
-ār1de
-āt1ne
-ēt1sa
-ad1do
-en1ja
-er1na
-ēk1li
-iļ1ņa
-uš1ki
-iz1nē
-oz1va
-ez1go
-us1bā
-ut1ri
-ur1lu
-ib1re
-ej1te
-ok1ho
-en1zu
-eb1rā
-em1tā
-ed1mā
-ah1ti
-em1ti
-um1sā
-az1tu
-ur1sī
-in1go
-ār1di
-ap1ņo
-īs1cī
-al1bi
-as1ni
-ek1se
-al1li
-uk1na
-al1nē
-iz1mē
-er1ce
-ūs1mu
-al1tā
-ul1fā
-ēk1lo
-az1ga
-er1zā
-ir1gu
-ig1rī
-en1dē
-eč1tu
-ep1ļa
-ēk1ta
-uz1dē
-ur1su
-īc1ku
-it1bi
-āk1kā
-āp1tā
-eļ1ce
-ed1rā
-ib1rā
-er1mi
-āb1rī
-iļ1ķi
-or1mē
-em1pi
-os1vā
-as1zo
-af1rā
-ež1pā
-ūs1nē
-ān1ve
-eļ1ķi
-oš1ga
-il1žu
-en1va
-īt1ra
-ak1ri
-up1tu
-ad1ka
-eļ1zī
-ir1nē
-ec1ve
-or1mu
-iz1mī
-īš1ļa
-ab1ve
-er1ri
-ū1dze
-ūz1ni
-in1ka
-īķ1sa
-ud1pe
-us1mē
-iz1rī
-on1rā
-aņ1kā
-at1ze
-āl1re
-em1ja
-im1sē
-īk1lu
-ek1va
-at1bī
-is1lā
-os1pī
-ār1jā
-as1mā
-ol1nī
-īg1ti
-em1po
-īg1tā
-ed1va
-ar1da
-or1po
-us1ni
-al1lā
-os1ti
-eg1da
-uz1bā
-ūt1rī
-ag1ni
-iņ1dē
-iz1zo
-is1me
-at1bi
-az1ti
-og1ra
-en1la
-at1do
-ap1zī
-am1ga
-us1ti
-oš1ķi
-is1tā
-at1la
-ēj1ti
-e1džā
-ec1ka
-or1ķo
-iz1pū
-uļ1zi
-er1de
-uk1ļu
-eh1ni
-ēg1to
-ēl1si
-ēc1nā
-ap1pā
-āl1no
-ar1hā
-at1gu
-ob1ļa
-ap1bo
-uļ1ķi
-uk1lē
-es1bi
-ar1žo
-iv1co
-el1mi
-ēr1ci
-ik1mē
-ap1da
-uz1ķī
-im1pu
-īk1la
-ag1ru
-iz1dī
-er1ņa
-at1ņu
-or1pi
-ēp1ni
-ūt1ņu
-eš1ta
-ar1ta
-un1ga
-oš1ļi
-eņ1ģi
-an1tē
-at1si
-or1te
-iz1rā
-ol1vi
-iv1cī
-aš1ko
-ām1ri
-āz1tu
-ek1sī
-ūk1tu
-ēk1ļu
-ir1sā
-el1ku
-ek1su
-aš1ļi
-iļ1ņu
-iz1si
-ir1gi
-at1ha
-ar1tu
-em1bu
-āt1sa
-ek1ļū
-en1tā
-iz1šu
-as1po
-ir1ta
-ab1re
-it1le
-ūk1pi
-uņ1ne
-aš1vi
-ām1pa
-ār1sē
-ok1si
-og1pa
-ut1rī
-in1ji
-ig1no
-iž1ļa
-ēb1ni
-uk1ma
-ēp1šu
-ol1vē
-ēz1ta
-am1kā
-ed1fo
-āp1ra
-ir1ce
-ul1li
-as1no
-ēt1ra
-on1ta
-ur1ņi
-ur1bi
-iz1cē
-us1ki
-eb1ša
-ož1me
-an1gī
-āv1ji
-ip1si
-ur1nē
-ak1ša
-eņ1ku
-ab1li
-il1vī
-is1kē
-om1pā
-ir1mī
-ip1lī
-ēn1mā
-ēr1šā
-āk1da
-el1nā
-ul1pe
-iš1ļo
-ēj1pu
-āl1lī
-ud1ko
-er1vi
-ak1tē
-īs1ka
-ag1tā
-ī1dzī
-at1vu
-ar1mē
-ar1sē
-eb1lē
-od1kā
-ūr1vi
-ot1ņu
-en1da
-az1du
-āt1nā
-oņ1me
-āl1ba
-eb1šo
-uz1mā
-an1zī
-ag1lī
-ot1bu
-il1po
-ēr1ķa
-ur1cā
-ej1bo
-az1ze
-iz1žo
-op1ļā
-īg1šu
-ēs1lu
-at1mā
-eg1lo
-īt1ri
-ir1tu
-ek1sā
-ik1ta
-eg1lu
-ur1vā
-un1bē
-uz1mū
-ež1zi
-eg1tā
-or1ma
-ob1ga
-av1ko
-el1ba
-ā1dzi
-at1ģi
-āg1ne
-ēr1za
-ed1rū
-iz1hu
-aš1ņa
-āb1si
-uz1ni
-et1pi
-āz1vā
-u1dzi
-en1tē
-āt1re
-ūv1no
-um1su
-iz1ci
-at1ra
-uz1ri
-or1ta
-āk1lu
-ik1po
-āš1ķi
-ār1pe
-ap1ķī
-uz1bū
-uz1pē
-uz1si
-ir1ža
-an1gā
-ap1šū
-i1dze
-at1ju
-at1fo
-is1ne
-ez1rē
-as1gā
-al1gu
-as1ti
-ūš1ko
-es1tā
-al1jē
-in1ša
-ab1le
-i1dža
-ēp1ja
-eb1ļa
-ub1le
-ab1tu
-ād1mi
-iņ1ķo
-ā1dža
-ek1li
-un1li
-ek1mē
-ok1lī
-ēr1pi
-ēr1pu
-iļ1la
-ep1ka
-em1li
-ez1na
-id1ma
-až1ne
-ir1re
-ēt1di
-am1zo
-ūr1fo
-ež1ga
-im1to
-ūp1nī
-at1du
-im1tā
-ūg1šo
-en1si
-al1ge
-al1dē
-eļ1ļa
-ap1vī
-ār1cu
-ež1ģa
-iš1re
-ār1ne
-ul1je
-ar1mī
-oš1ka
-īn1va
-ēr1ma
-ok1nu
-om1ra
-ap1jā
-us1ce
-un1mā
-ek1ši
-ob1lā
-ēr1sā
-et1ne
-uz1de
-il1bo
-it1pā
-ar1tē
-ed1ko
-ol1vī
-ot1rī
-us1se
-ēt1ti
-iž1ļu
-īz1de
-en1sā
-is1la
-ik1te
-ob1to
-ag1lā
-it1ko
-ep1ci
-āg1ti
-ūs1le
-ek1lu
-us1mā
-ār1ze
-īs1tu
-ar1kū
-ir1de
-ed1jū
-or1fī
-ēt1li
-ūs1mā
-el1no
-id1ru
-ij1ko
-er1ve
-ec1la
-aš1mo
-em1zo
-uz1bē
-er1fo
-eš1ķū
-ak1lī
-el1lu
-ib1li
-ek1nu
-ir1ņu
-aš1nā
-ēl1ga
-em1nī
-iz1vi
-us1te
-is1ha
-on1jo
-az1ka
-ās1ta
-aš1ta
-iz1vē
-er1nē
-uļ1va
-ab1lē
-an1žu
-oņ1ve
-il1bu
-em1pa
-ob1se
-em1jo
-īv1su
-er1co
-ur1to
-ēg1vā
-in1ci
-ak1ļū
-uz1šu
-eņ1la
-ūg1šu
-āg1tu
-ūg1ti
-īt1va
-er1ka
-ol1šū
-iz1ču
-us1ke
-ur1bē
-āp1ri
-ak1ļa
-ūs1kā
-os1va
-er1ze
-ēt1nī
-āj1ku
-en1žo
-uļ1ve
-is1ķe
-īg1si
-ur1me
-ur1bī
-on1hī
-an1di
-āj1mā
-ep1ļē
-aš1ņu
-or1vi
-ad1vo
-az1gu
-uz1lū
-it1pi
-ak1šo
-ap1si
-ās1to
-in1te
-am1sa
-ap1šo
-iz1vo
-uz1ve
-uļ1ņe
-uz1fo
-uv1sa
-uņ1ķa
-uz1ta
-ug1ļu
-ek1lī
-ok1se
-ok1vi
-až1ņa
-oņ1sa
-ab1hā
-iņ1ci
-ug1šā
-ek1rū
-ij1pa
-ok1ve
-ap1he
-ut1bo
-el1zā
-or1di
-an1go
-iņ1zi
-ek1mī
-ap1bē
-on1gi
-aļ1me
-ab1ru
-ig1ti
-ur1be
-u1dže
-ek1vi
-ur1ze
-ūm1va
-um1mu
-aļ1bu
-āt1ņu
-om1re
-ug1le
-ez1ta
-am1bu
-at1cē
-ēp1ju
-ez1sa
-at1ni
-an1me
-uz1no
-ār1lē
-ul1kā
-ar1pu
-iz1ru
-an1ži
-eņ1ķē
-od1ni
-is1na
-em1zā
-ār1se
-at1ri
-it1ru
-uš1čo
-il1ve
-al1ta
-oš1vī
-ēr1po
-il1pi
-ap1pē
-is1ķē
-ēr1sa
-ār1ku
-oļ1še
-uz1pi
-av1ro
-og1rū
-īg1ņa
-ī1dzā
-il1ze
-ez1ve
-ūr1te
-on1dā
-up1da
-iz1nā
-im1di
-ul1gi
-az1mē
-ā1dze
-as1lē
-ok1ļa
-ak1ce
-ūn1ve
-ek1lo
-ok1tā
-ap1jo
-ēr1gu
-il1nā
-iz1he
-uļ1ņē
-īt1ru
-īd1se
-ak1rē
-āt1ro
-at1da
-iz1žā
-ol1tē
-ūt1sa
-as1ku
-īn1bū
-īv1si
-or1no
-ot1ce
-ol1de
-ab1pa
-ēr1pe
-oņ1ko
-ok1na
-ev1ze
-us1ri
-ip1ti
-eķ1tu
-op1ta
-īs1ra
-er1zē
-of1rā
-ur1dē
-ot1ka
-is1zi
-ēk1mī
-iz1ne
-ag1rī
-on1si
-ir1pē
-er1ni
-ās1vi
-an1za
-ēl1gā
-ap1du
-ek1lā
-ār1ņa
-um1pa
-an1fa
-ār1pa
-uļ1so
-ar1pe
-eš1ļa
-ēr1vi
-ef1rā
-og1la
-it1pē
-in1je
-ut1ma
-ig1nu
-ēr1te
-az1gā
-āl1de
-ār1zi
-on1fe
-on1ma
-ib1ta
-at1žu
-it1lī
-it1ra
-ok1be
-is1žē
-ēz1ma
-ār1ti
-er1ru
-az1ja
-ēg1le
-an1ni
-az1lē
-uk1ni
-at1lī
-eņ1ma
-ik1vī
-ap1be
-ar1ne
-ip1ta
-ap1žu
-az1pu
-ak1ra
-ul1ve
-is1pē
-ež1sa
-iv1ma
-ār1šu
-ek1na
-os1la
-ik1tē
-ēs1la
-es1la
-at1ki
-iz1lu
-ur1le
-īd1ni
-it1se
-ej1ma
-iņ1si
-ār1lā
-us1va
-us1ci
-if1te
-el1ta
-uz1ga
-ak1tū
-or1ve
-iz1ce
-oš1kā
-ēt1ru
-ad1rē
-et1ņu
-ik1šo
-oz1ma
-ir1ti
-uz1da
-ūm1de
-el1tē
-ēz1ti
-it1rē
-aņ1ve
-ap1zā
-at1ga
-up1de
-ās1na
-ap1tu
-āp1ņu
-in1tē
-ās1ne
-ap1re
-ir1ka
-uz1tī
-uz1go
-at1ļā
-ad1rū
-ir1zi
-īv1mā
-er1sa
-in1ti
-āb1ju
-iv1si
-ep1jo
-e1dzē
-el1si
-ij1žu
-an1du
-iz1tā
-il1lā
-ul1bā
-is1cī
-ag1vi
-āj1rū
-os1lo
-īk1lā
-āb1to
-al1nu
-āt1ki
-eņ1ķī
-ol1kū
-un1pi
-ec1re
-uz1ču
-ul1dā
-en1ro
-ir1di
-en1ču
-ul1jo
-ul1ce
-az1vē
-ap1jē
-āl1zī
-ūš1ļo
-og1ve
-ag1si
-on1su
-og1ca
-ol1gu
-ār1zā
-ig1li
-iš1sa
-ot1ru
-al1vā
-am1tī
-ās1te
-ud1rā
-ēt1ko
-uz1jē
-āl1gu
-et1me
-ed1ra
-at1cū
-ol1zā
-uz1žā
-ul1gā
-ok1ļu
-īv1ze
-at1ve
-en1gu
-um1du
-o1dzī
-up1jo
-ap1di
-ur1rū
-īv1mū
-ūk1to
-iz1ņu
-uz1šā
-uļ1bū
-ez1pi
-in1vā
-al1ja
-in1ve
-iz1bu
-ap1šu
-us1ze
-ob1rā
-ēk1me
-il1le
-ēz1to
-īk1de
-ēj1lu
-ar1zo
-ec1me
-ar1za
-ol1bu
-ēj1pe
-ul1te
-īd1pa
-al1ki
-en1zo
-iv1ka
-āl1te
-ok1no
-a1dze
-it1va
-ār1jū
-un1go
-iz1ko
-u1džo
-up1ti
-on1li
-iz1čā
-il1gā
-er1gu
-iz1za
-in1gi
-ū1dzo
-ur1ni
-um1bē
-ed1mu
-ēk1tu
-ār1so
-id1lu
-ar1me
-ir1ši
-ik1ša
-ej1za
-ap1ha
-īv1lī
-as1ga
-eg1šu
-iz1bā
-ev1ju
-ap1ce
-ar1di
-em1ju
-am1bo
-iņ1ma
-et1si
-āk1tī
-is1da
-id1pu
-iz1le
-et1no
-ul1da
-ur1tā
-em1ga
-ēr1ša
-or1mi
-ak1kā
-iz1mā
-ab1vē
-ok1pi
-ir1bē
-īg1tu
-ir1sī
-eņ1ci
-iz1sā
-uz1he
-eļ1ķe
-eb1kā
-in1če
-ar1mo
-ēp1šo
-eb1rū
-on1cū
-er1pa
-īg1na
-us1ta
-ār1rū
-is1lī
-ēg1li
-eš1re
-uz1hu
-ak1re
-īn1da
-el1de
-um1ja
-ak1nē
-ob1tu
-ek1to
-ēr1bē
-ir1ci
-ih1ti
-ov1nu
-al1be
-aļ1da
-ot1rā
-ēr1ķē
-ud1ma
-āv1ju
-ik1li
-ar1du
-uk1su
-ak1sī
-us1le
-āt1bū
-ug1ša
-ag1mā
-ēr1tā
-uz1nā
-uz1čī
-ēs1tu
-iv1tū
-un1ko
-er1mē
-or1ci
-un1ka
-īt1ci
-ūk1ni
-ār1gā
-oz1ta
-is1pi
-ef1ko
-āš1ņa
-ig1ni
-ur1cī
-aņ1ķī
-ec1ti
-il1tu
-ul1su
-an1jo
-ek1vā
-al1po
-uk1tī
-āj1ni
-ām1ja
-ēr1li
-ah1tu
-at1vē
-il1nē
-an1ke
-as1ci
-er1je
-es1nī
-id1gu
-ān1va
-us1fi
-ār1si
-ēd1va
-ul1vā
-el1ni
-eš1ma
-un1la
-al1ma
-un1du
-an1ho
-ul1šu
-el1mu
-al1žī
-el1rū
-ul1ci
-ar1ģi
-at1vo
-ēr1bi
-il1vē
-us1me
-at1li
-uz1mu
-av1da
-ēg1tu
-uz1ļu
-eg1vī
-ēb1to
-ad1ju
-ir1mo
-or1fē
-el1nī
-iž1ļi
-em1de
-ap1pa
-ūg1ša
-ul1bu
-ēr1mu
-as1vi
-eb1ļā
-as1pi
-ir1sū
-uz1vē
-ās1nī
-ur1zā
-ir1bo
-īk1da
-it1nī
-ar1pa
-el1do
-ēr1le
-or1fi
-ēt1la
-aļ1ļi
-am1bā
-āš1ņā
-us1jo
-eļ1ni
-eļ1nī
-us1ja
-in1gu
-ig1nī
-ed1ru
-uj1bi
-os1te
-em1va
-ar1lo
-ig1lu
-ak1lā
-un1ba
-iz1bū
-am1ze
-is1ti
-it1ne
-uz1sā
-ep1lē
-iz1bī
-ār1nē
-eg1la
-iz1du
-ēg1dē
-ān1za
-es1lo
-im1de
-at1hi
-ar1ķi
-iņ1ve
-ēr1zē
-uz1lā
-ir1vi
-ār1ru
-oš1ļu
-at1te
-at1žā
-un1su
-on1tā
-od1la
-ār1ģe
-ēs1lo
-al1kā
-aš1pa
-ūz1ne
-ār1čā
-ur1je
-uļ1ķa
-ak1ņā
-īr1fa
-es1kū
-ār1ši
-ar1ba
-ār1ša
-ir1dī
-id1nī
-uk1da
-uz1žu
-ār1va
-ot1ra
-am1do
-iz1ģi
-ep1lī
-em1si
-āl1ta
-in1su
-ol1ni
-ub1ļu
-iz1ņe
-ap1ča
-el1za
-ob1jā
-uk1tē
-ap1mā
-al1ri
-ot1za
-ir1dā
-av1ni
-ūr1mu
-it1mi
-og1ļū
-er1za
-ek1lē
-ūg1te
-it1mē
-oš1ņa
-āk1le
-aļ1čū
-ān1lī
-e1dzā
-um1be
-et1rī
-ek1sa
-al1le
-uļ1ka
-iv1ni
-ēd1mē
-il1dī
-ul1ti
-ot1le
-at1gā
-iņ1sē
-at1ca
-aļ1rā
-ab1su
-īn1bu
-ip1rī
-uz1ra
-uļ1de
-em1ko
-at1čo
-op1vē
-a1džu
-uz1ķi
-ir1ma
-ur1bo
-iz1pe
-em1tu
-āč1sū
-um1šo
-ap1ķē
-āl1sa
-as1fa
-ož1ņa
-em1dī
-ūz1da
-el1pi
-ir1sa
-āz1mo
-ed1ro
-il1si
-īk1na
-uz1cu
-os1pu
-ag1šo
-iv1va
-īd1vi
-iņ1ro
-ār1ču
-id1ne
-eg1pu
-um1ko
-uš1ķo
-ār1ka
-īļ1bā
-ak1ve
-ez1gi
-or1la
-aš1pā
-īg1va
-ir1šī
-iļ1li
-ēr1sī
-um1ši
-īm1ju
-ub1je
-ep1li
-at1po
-āl1ma
-am1bī
-iņ1ķi
-āj1ra
-as1tū
-eš1tū
-en1te
-īv1ma
-et1nī
-āb1pu
-os1ku
-is1tē
-ok1ļi
-iz1rē
-iz1ži
-el1nu
-iz1pā
-ul1tā
-oļ1ko
-ēv1vā
-os1lā
-or1tī
-āb1tī
-af1ro
-ēl1zī
-āl1ru
-an1šu
-us1tā
-or1do
-er1ci
-īs1ri
-ēd1ra
-im1da
-ar1be
-il1ku
-iz1mū
-it1rā
-up1ša
-uz1sū
-us1ru
-ir1do
-ur1ga
-ek1re
-al1nā
-ok1ni
-ek1šu
-ob1rē
-ir1žo
-ār1dī
-eļ1ma
-aš1ci
-il1pa
-ū1dzu
-ek1ša
-ār1mo
-il1gi
-uš1ņa
-el1mū
-ās1ka
-ēk1ša
-or1ķi
-ār1nu
-az1ru
-ās1tī
-im1šo
-um1ze
-īv1so
-ūt1nī
-ap1fo
-ag1šu
-il1ma
-īc1ga
-ēr1tu
-es1mi
-ūs1mī
-īs1ti
-ej1vi
-uz1na
-on1na
-id1ro
-el1mē
-os1pe
-op1lu
-ēc1ka
-ar1pā
-up1ci
-ūs1ma
-ag1re
-ūž1ņa
-ol1ga
-an1ta
-un1di
-al1ko
-ul1lā
-ir1ko
-ī1dzo
-os1vi
-es1lē
-us1ma
-ec1mo
-iz1ve
-az1ra
-āl1cu
-id1rā
-an1ža
-oņ1zī
-um1tā
-af1ra
-um1vā
-ār1rā
-ab1vī
-ū1dzī
-i1dži
-ēg1šu
-in1ža
-ed1ņe
-ec1tū
-or1ne
-eg1ma
-āp1ja
-ār1šī
-ep1re
-is1ve
-ol1fe
-op1ci
-as1te
-ār1šū
-ež1ku
-iņ1tū
-es1te
-ek1ta
-ēl1cu
-ār1na
-us1jē
-il1te
-āv1ra
-āv1ce
-aļ1va
-um1ni
-ak1ni
-ār1rē
-et1ri
-u1dzī
-on1tu
-up1le
-am1bē
-in1to
-ād1nī
-in1ta
-ol1ma
-īk1bu
-an1žā
-āb1ma
-ur1ķī
-ak1vi
-at1nu
-is1bi
-ol1ve
-og1ne
-īv1bi
-ok1lu
-ār1čī
-ug1ti
-īn1ra
-ig1to
-uļ1ģi
-ār1ma
-um1jī
-ē1dze
-ap1rē
-is1nā
-ūp1ko
-un1si
-il1tā
-ap1ņu
-ol1be
-os1mi
-ig1la
-īl1ni
-or1bū
-ip1ru
-ak1cī
-eņ1ķa
-ez1gī
-oņ1sā
-āz1ni
-ān1pā
-us1pu
-ād1ne
-us1po
-īn1de
-āk1ba
-ā1džu
-ur1sē
-at1ba
-āp1ti
-ūv1vi
-ah1tā
-ut1nē
-em1be
-ap1na
-ul1pa
-ob1je
-āk1ļa
-ib1ti
-os1ve
-ud1vi
-en1pā
-āv1ni
-iz1vā
-eg1ro
-op1si
-ap1pu
-am1ni
-at1ta
-ak1li
-es1ne
-uv1ju
-ar1rī
-i1dzu
-es1rē
-ob1lo
-es1li
-og1ma
-uš1ko
-an1zā
-ig1tu
-an1be
-im1pē
-ic1sa
-eb1ka
-uz1zī
-oš1ma
-at1nī
-am1dē
-uļ1ba
-ār1mu
-up1jā
-ār1he
-es1mē
-er1ha
-ēl1di
-ih1re
-op1ja
-il1go
-uv1ve
-ul1pu
-il1du
-aš1mi
-āl1ve
-ār1lu
-ez1pu
-at1so
-īs1ca
-ek1ni
-ēg1nā
-ūt1ro
-ap1ķe
-ab1pu
-iz1nu
-iz1ņē
-ēk1ne
-ež1jo
-es1po
-ās1no
-ūv1ni
-aļ1sa
-aļ1ķī
-ē1dzo
-ip1no
-ap1vā
-īk1tā
-ār1čū
-uz1ze
-uz1nī
-on1du
-ap1hu
-ez1nā
-uk1ļi
-ul1bi
-ad1pē
-at1pē
-ēr1zu
-uz1čā
-ēs1to
-aš1gā
-āt1no
-en1vē
-is1be
-et1rū
-āk1ta
-uk1tū
-ij1ni
-ug1šu
-us1ķi
-ij1ve
-el1šu
-ul1vē
-ēt1rī
-ag1ļē
-es1pe
-ēr1šo
-ak1rā
-eļ1pa
-ec1rī
-ez1lo
-ēk1lu
-el1va
-ār1ķi
-eļ1po
-am1pa
-ūt1ni
-iš1zi
-id1mē
-uz1dū
-ēk1la
-iņ1ta
-ol1tā
-īk1ša
-īt1nē
-iļ1jū
-it1tū
-is1pa
-ap1sā
-iz1so
-ež1ģī
-ud1ri
-oņ1nā
-am1lū
-iz1pē
-ak1vā
-al1te
-ad1ri
-ak1ga
-ār1bā
-ap1rī
-or1bē
-af1ti
-uz1du
-at1ši
-ug1tu
-iv1zi
-an1se
-eg1to
-ūd1rā
-os1lē
-ār1ri
-el1ga
-ēr1de
-ir1tē
-em1ļa
-us1na
-im1do
-āt1ve
-ur1ma
-ur1ģi
-īg1ni
-īd1ko
-ūd1ra
-iz1vī
-ed1rī
-at1jā
-il1mo
-e1dza
-ēk1to
-ār1ģē
-iļ1ņi
-iz1bo
-as1ro
-um1zo
-or1pu
-ar1kā
-ik1ko
-ap1ca
-īs1ba
-as1vā
-at1mo
-uz1pu
-ēn1ga
-am1ba
-uk1ši
-ag1to
-iz1zi
-uz1tu
-ul1ni
-er1lī
-eš1ķē
-en1zi
-at1zo
-ir1ša
-ez1si
-us1so
-am1fī
-ig1tā
-e1dzu
-ap1kā
-ār1ro
-es1vi
-ag1la
-ir1mē
-ad1ve
-it1di
-um1no
-ap1lā
-in1ga
-op1šo
-a1džā
-er1po
-uz1bī
-un1ra
-uk1ta
-ar1ve
-īn1sa
-ap1vi
-ēr1ce
-og1lū
-aš1li
-aš1po
-e1džu
-ap1mu
-ag1lu
-or1be
-am1ne
-ol1di
-iņ1ģe
-it1na
-eļ1ņu
-uz1lu
-ās1me
-ār1sī
-ur1ku
-ur1pe
-ep1na
-ut1na
-ac1da
-uz1le
-ik1ka
-ar1fi
-ab1si
-er1zī
-ār1ļu
-ap1ja
-ul1tu
-is1di
-an1ge
-ar1lī
-ug1tā
-on1so
-ud1kā
-eļ1ko
-iš1ķī
-um1po
-ik1ļa
-ūg1tu
-ār1gi
-ēr1ni
-et1va
-ap1lo
-ēr1ķī
-iz1tu
-īv1la
-is1ju
-od1ba
-az1ro
-ūs1di
-up1tū
-ūs1nī
-eļ1lo
-ap1bī
-um1ta
-īs1tī
-eb1rī
-uš1ķē
-ep1tū
-eb1lī
-or1že
-up1ra
-ēt1ma
-ak1ro
-ir1la
-at1či
-og1lu
-ūs1ku
-ut1rā
-il1no
-ec1de
-an1bā
-az1vi
-ān1ga
-ēj1ce
-eļ1ve
-er1zi
-el1sa
-īk1ta
-īt1rā
-ār1fe
-um1ka
-ir1si
-ag1ļi
-ip1ka
-ak1šā
-ar1ki
-ek1ļā
-ar1bā
-ed1da
-os1le
-iv1ja
-iv1kā
-ūk1šo
-uļ1vē
-ēk1tā
-oš1ņu
-og1de
-ok1ļo
-ul1dē
-ik1sa
-am1pē
-ūs1no
-um1to
-us1ču
-od1ka
-as1lo
-op1mī
-up1to
-oļ1ti
-ū1dzi
-īr1ma
-os1kā
-al1dī
-ok1va
-el1tu
-ap1pi
-is1ca
-os1ce
-āl1vi
-ir1mi
-uš1ķi
-oz1tā
-is1te
-ig1ša
-at1rā
-ar1žu
-os1kū
-im1ša
-ār1to
-um1bo
-an1sa
-aļ1ļa
-ēk1di
-āj1ka
-ak1tī
-ar1tī
-os1tā
-eg1re
-im1sa
-ul1sī
-ag1me
-il1lē
-on1ce
-iz1jā
-iž1ci
-or1ku
-az1no
-im1pā
-of1se
-op1ļē
-āl1ka
-ēs1ti
-oņ1de
-er1la
-ār1ņē
-uz1ku
-ab1pi
-ar1na
-em1ša
-er1ku
-im1pe
-in1tī
-es1mī
-īv1do
-uz1mo
-uš1mi
-ak1lē
-aļ1la
-up1lā
-ok1ta
-ūv1me
-em1žē
-āl1rū
-is1pā
-ar1le
-eš1va
-eņ1rā
-ad1ne
-on1ku
-īs1si
-ab1da
-il1lu
-ar1va
-an1ko
-ez1bē
-ež1li
-il1ga
-at1tā
-iz1kū
-ar1nu
-ir1mā
-ad1je
-ik1ra
-an1bu
-op1ri
-ik1vā
-ek1šē
-ap1ru
-uz1ņi
-iz1be
-at1vi
-it1ro
-ur1tē
-en1po
-ap1jū
-iz1ģī
-ol1rā
-ar1go
-ah1lo
-im1pa
-ī1dzi
-us1lu
-ir1žu
-at1cu
-am1vi
-ag1ti
-im1ju
-ep1ļā
-ec1ga
-on1di
-ān1kā
-is1fu
-at1ņē
-āņ1ti
-at1čū
-az1pa
-ik1pa
-ov1bo
-ad1si
-er1lū
-ir1bā
-um1tu
-uj1ko
-ež1vī
-ab1lo
-ūk1la
-os1pa
-ul1to
-ap1žē
-āv1ma
-ez1zo
-eg1mā
-ap1to
-iz1ku
-os1lu
-or1vā
-ok1rī
-os1to
-al1di
-is1lu
-ē1dzi
-āt1li
-aļ1li
-an1ču
-eb1la
-eņ1ķo
-ak1rū
-en1ri
-ez1be
-ēr1nē
-eļ1ņā
-ab1rū
-un1sa
-iz1zī
-až1da
-ūv1so
-aš1ķī
-it1kā
-ap1bu
-ē1dzē
-a1džo
-īb1šu
-us1lā
-ad1re
-ej1le
-ek1ro
-at1su
-ap1ļu
-ež1ci
-er1ra
-ez1vē
-aļ1ko
-og1re
-ur1ja
-er1zu
-ār1me
-av1tī
-on1tē
-at1fi
-ir1bi
-ob1li
-uz1jū
-aš1ļa
-āb1ra
-ur1bā
-ap1nu
-al1ģi
-an1vī
-on1dē
-ep1tē
-ez1de
-um1de
-up1ju
-īg1te
-od1de
-ok1sā
-at1jē
-ār1zu
-um1di
-eš1di
-eļ1mo
-iz1de
-in1gā
-ač1gā
-ip1se
-iš1ķē
-ūn1ze
-āk1to
-eš1vī
-ēņ1ve
-ap1la
-oņ1ni
-im1ni
-ut1ro
-et1de
-ep1pa
-aš1re
-up1ja
-us1pi
-uj1la
-āt1ti
-op1le
-an1nu
-ēj1mā
-as1lā
-am1mi
-az1dē
-am1po
-īk1pi
-ūk1tā
-ār1go
-ap1ma
-uf1ra
-īg1ta
-ad1ca
-ār1ķē
-ek1vo
-am1te
-iz1zā
-ar1ke
-ēr1mā
-en1dā
-eg1lī
-at1ci
-ur1ci
-āg1la
-af1ri
-īk1ze
-er1cu
-ad1va
-el1ci
-ep1no
-ag1ne
-ār1zī
-eg1rā
-eš1ķī
-an1ti
-iļ1dā
-ud1mu
-āl1li
-ub1ve
-uz1pe
-uš1ķu
-eļ1tē
-or1čē
-og1pu
-eg1nē
-op1la
-al1dū
-ef1rē
-īt1ni
-ek1nā
-āz1be
-er1ti
-er1no
-os1fo
-ēr1ga
-at1ka
-er1go
-or1ķe
-er1mo
-un1da
-an1žo
-ez1mi
-ef1pa
-ek1rī
-ūp1li
-eļ1te
-ār1tā
-ot1ri
-ud1li
-us1zā
-as1tē
-iv1da
-is1ko
-il1za
-īg1to
-uz1bu
-er1tē
-ap1su
-es1zi
-u1džu
-uk1li
-iz1lū
-it1ti
-īk1kā
-es1pī
-uz1vu
-ūž1di
-ūs1li
-āl1po
-ok1re
-āk1ļi
-īž1me
-eš1ķa
-at1ķe
-āt1rī
-iņ1ši
-ap1ga
-um1jā
-īm1ja
-ez1ro
-iz1jē
-es1sū
-eš1vā
-og1ri
-ār1lo
-al1so
-iz1lī
-is1kā
-ep1ti
-eg1bi
-ār1la
-ar1vo
-ēp1si
-ār1gū
-eļ1ga
-uz1kū
-iļ1le
-o1dze
-an1sē
-at1no
-ok1ma
-al1sa
-ek1ri
-ep1le
-en1rī
-eš1de
-ez1jū
-ik1sē
-al1gi
-ep1ro
-īv1ci
-id1po
-oņ1pi
-od1ra
-ej1pu
-ir1go
-el1ma
-in1se
-et1sa
-īb1ša
-aļ1ķa
-ol1la
-at1rī
-at1dē
-īļ1si
-ār1ņo
-ur1mi
-ep1lo
-āg1šo
-ec1to
-ob1ve
-up1tā
-āt1ra
-os1ko
-al1zi
-el1du
-iz1vu
-ār1pi
-at1šā
-ul1tū
-il1dē
-ap1mī
-ar1lē
-er1tā
-us1mu
-is1hu
-oņ1si
-āz1ve
-īp1ne
-āz1to
-iš1ma
-ol1vā
-em1zī
-āl1be
-al1šo
-us1ko
-es1ga
-in1fa
-āj1vi
-at1di
-at1ži
-ap1bā
-ah1ta
-ēr1nā
-el1me
-īs1le
-iz1ja
-ēb1ti
-es1ka
-ul1be
-ep1ri
-ež1zī
-ot1vē
-as1la
-at1ru
-er1mā
-ed1re
-ēj1ma
-av1ci
-ak1do
-us1nē
-eš1ga
-ap1cī
-āt1zī
-as1pa
-āk1ša
-es1ta
-ib1lo
-er1ģi
-ēr1mī
-eļ1di
-at1lā
-ak1te
-aš1vī
-og1li
-al1ga
-aš1kī
-ār1fi
-es1to
-ūt1pa
-on1ko
-ār1ci
-ām1ju
-el1ce
-īs1tā
-ec1ni
-al1ku
-at1hu
-er1fe
-ār1mē
-ēr1mū
-ul1di
-on1ga
-ār1pē
-ar1pē
-ās1nā
-am1fi
-āt1pe
-an1co
-oš1ņo
-eļ1ņi
-aš1no
-īr1na
-āk1šo
-et1ko
-ig1ma
-an1te
-an1ba
-e1dzī
-ek1šo
-um1bu
-ir1gā
-om1le
-ūm1ve
-al1na
-iz1va
-og1lā
-ūk1ta
-il1so
-uz1ma
-il1ša
-oš1ķū
-at1zī
-ās1mo
-ēr1na
-ūž1ņo
-um1nī
-eg1vi
-al1tū
-on1se
-iz1ža
-ek1te
-ep1lū
-ep1se
-os1tī
-as1ta
-ār1be
-iz1ša
-oš1ķo
-āg1ri
-īv1ku
-āt1na
-aš1ķi
-ēr1dē
-ir1tā
-ak1sa
-as1to
-az1jū
-un1me
-ap1pū
-ep1to
-ur1ve
-en1ma
-ēc1na
-eņ1ķu
-ār1le
-um1zi
-uz1cē
-ez1pa
-os1ka
-ab1rī
-er1ģē
-et1ra
-īt1na
-ap1čī
-ok1ri
-eš1pe
-iž1ma
-is1ša
-āz1ģe
-on1dī
-ep1tā
-am1zi
-īg1lo
-iv1re
-at1lu
-āl1ci
-ez1vā
-iz1ti
-al1mā
-ug1li
-il1bi
-iļ1ķu
-aš1ņā
-iv1ba
-ik1ši
-īk1me
-ap1kū
-un1gi
-uk1nā
-al1vo
-up1lo
-oz1vē
-ēj1ka
-ap1rā
-ad1li
-uz1ju
-el1pa
-en1li
-at1ču
-īk1bū
-at1dā
-up1ta
-iļ1ņo
-ar1pī
-ak1vē
-ēc1ga
-eb1ne
-af1li
-ol1ka
-ez1fo
-in1ki
-an1gi
-ak1lo
-up1si
-ej1va
-ag1tu
-ek1ļo
-iž1vī
-as1zi
-ir1lī
-en1du
-uz1tā
-if1lo
-eļ1ļo
-ob1lī
-um1sū
-on1ci
-an1de
-es1lī
-ēb1si
-ib1tā
-il1da
-uķ1ko
-uk1ša
-āj1pe
-ej1bu
-ūv1ka
-ar1fa
-oz1ve
-īk1rā
-up1mā
-ūs1to
-ir1nī
-ag1lo
-oņ1ra
-iz1sū
-īg1ce
-an1dū
-iņ1vī
-e1džo
-ār1da
-īn1mā
-ār1ju
-er1vo
-ar1se
-i1dzē
-iļ1pi
-it1pu
-ur1sa
-id1da
-iš1ko
-eš1ķo
-ār1po
-ev1kā
-īk1rū
-os1ri
-ik1no
-ār1tu
-ur1ko
-oz1tu
-om1pi
-ar1šē
-on1nu
-uņ1ģi
-ur1šu
-ab1rē
-īr1kū
-en1cē
-em1je
-ap1va
-av1ļa
-aļ1bi
-uz1hi
-in1ča
-on1fu
-ār1sā
-oš1mī
-uz1rī
-il1ka
-un1tē
-as1mi
-iz1ga
-ār1mā
-āk1tā
-ik1lo
-im1pi
-or1pa
-aš1ro
-um1mē
-īn1te
-ež1rū
-ab1sa
-uz1mē
-a1dza
-as1sa
-un1gā
-ag1mī
-eš1mī
-eg1ša
-ak1ru
-ēt1ri
-or1se
-us1no
-it1mā
-uz1po
-in1čo
-iz1su
-is1to
-uk1vi
-ir1to
-um1ju
-uļ1sū
-in1dā
-um1tē
-ar1šo
-īk1ko
-er1me
-uk1si
-īv1pi
-ēr1mē
-as1tī
-in1kā
-en1za
-al1bu
-or1ģi
-a1dzī
-en1sa
-īs1ta
-eļ1de
-ū1dzē
-uk1tā
-ec1vi
-ūk1le
-ap1čo
-ēd1ni
-ān1ce
-if1tu
-īk1di
-āl1va
-ap1gu
-en1de
-ar1de
-ap1mū
-on1te
-es1da
-ud1ci
-at1se
-ūp1ni
-in1ha
-ap1de
-al1ci
-ir1pu
-um1va
-ok1tu
-ug1lī
-aņ1da
-ep1ša
-el1su
-īk1si
-eņ1ģe
-aļ1fi
-er1si
-op1ju
-od1le
-īt1pa
-ak1nā
-ap1nē
-ar1dī
-ek1zē
-at1zi
-āt1ka
-āl1mē
-em1za
-um1pu
-ap1žo
-ēj1sū
-en1le
-iz1lē
-er1zo
-um1dā
-ur1žu
-eh1no
-ab1ka
-īs1vē
-īb1šo
-as1se
-ul1lē
-ir1ki
-at1ča
-uļ1ķe
-āz1ma
-ip1nu
-ar1nī
-īg1lī
-ad1ra
-ez1ti
-īk1ra
-ūr1zi
-ap1vu
-ib1la
-īt1kā
-iļ1da
-ēl1ko
-ob1la
-o1dza
-ep1nī
-es1ri
-up1ji
-eļ1ku
-ik1ve
-es1vē
-er1lo
-um1do
-ik1lā
-em1žo
-is1so
-om1ju
-ij1ka
-en1ni
-āz1ne
-īv1di
-if1to
-un1je
-er1da
-en1kā
-ūt1ra
-en1ge
-āp1ji
-oņ1kā
-al1vi
-ēr1zā
-en1ga
-īr1ku
-ar1te
-up1rī
-or1ti
-ar1ķē
-el1lī
-iš1la
-an1no
-ec1pi
-ēk1šo
-an1da
-āp1šu
-iļ1ru
-ež1lī
-ed1rē
-ed1ka
-at1kū
-īb1si
-ež1ņa
-am1va
-un1dī
-ār1nā
-al1me
-uļ1ze
-es1tē
-āj1ba
-āp1šo
-ap1po
-en1zī
-er1sī
-ig1ro
-at1bu
-um1sē
-el1cē
-ās1ni
-ar1pū
-od1ve
-oz1ga
-in1do
-uz1mi
-un1mē
-uz1ka
-ig1ne
-et1pa
-ol1si
-ab1ra
-on1to
-os1kī
-aš1ķa
-iz1se
-īn1pi
-eb1ru
-es1nu
-ūt1ru
-ik1ri
-as1lu
-iz1la
-uz1ci
-at1tē
-on1da
-āp1ša
-ēp1ne
-or1ce
-ep1rā
-ūr1mā
-ež1vā
-up1jē
-eh1lo
-īg1ņā
-us1li
-ec1tē
-āt1mā
-ak1nu
-u1dzē
-ez1ne
-ar1dē
-ēk1da
-et1nē
-ež1ro
-ir1kū
-ap1lū
-īs1tē
-us1ba
-ēj1zo
-ī1dzu
-at1le
-ēg1na
-ep1tu
-i1dza
-af1ta
-ep1de
-īļ1ve
-od1ro
-um1šā
-en1se
-eņ1ra
-as1tu
-at1pu
-eļ1da
-āb1ba
-iš1ķa
-āg1ša
-il1bā
-ūš1tu
-ud1sa
-at1ģe
-um1šu
-aš1mā
-en1so
-eg1ba
-am1re
-ud1ro
-ov1na
-ik1re
-ār1rī
-ār1ni
-ež1ra
-i1dzo
-īs1to
-an1še
-ar1ju
-iz1ģē
-az1dū
-ēr1me
-oņ1ga
-ēr1tē
-id1mo
-īs1fi
-at1mī
-al1se
-il1ha
-ep1ja
-il1ce
-of1ra
-um1pi
-uz1rē
-aš1ņo
-el1ža
-ap1ņē
-ar1bu
-iņ1re
-ij1pu
-er1žo
-ol1ta
-ez1va
-aļ1ķi
-il1nī
-ag1no
-ul1lī
-ib1ri
-āt1ri
-um1pī
-ūg1tā
-is1fē
-ak1su
-al1to
-el1žu
-ap1ģē
-iv1ga
-al1za
-aļ1dē
-ēr1si
-ār1ņi
-et1rā
-aļ1ņi
-um1zu
-ūg1si
-az1mā
-in1ko
-īg1ri
-il1šu
-er1va
-uz1tū
-ec1cī
-īs1li
-a1dži
-u1dzā
-am1žu
-uz1fi
-iz1nī
-ir1dē
-ev1ga
-iz1ča
-iz1pu
-up1šu
-iz1gu
-in1ce
-uz1dī
-āb1šu
-or1ba
-i1dzā
-a1dzo
-es1tu
-āz1ti
-el1mā
-ap1vo
-ub1lē
-aš1ķē
-īs1vi
-en1jo
-as1ki
-ik1tī
-ok1le
-ur1ķu
-in1gī
-ek1ļu
-uz1to
-uk1le
-ir1bu
-āg1to
-uz1ne
-as1ko
-ek1rē
-ur1do
-ob1ta
-ār1jo
-uk1no
-ot1lī
-ur1te
-uz1re
-at1ma
-at1žo
-ēd1ne
-at1na
-us1ka
-al1vu
-ib1šu
-iz1dū
-ug1ko
-uz1vo
-at1zā
-eg1zī
-ūš1ga
-il1ni
-uz1ro
-el1pu
-ūg1to
-os1mā
-ul1ma
-as1ma
-al1ni
-ut1ra
-ug1šē
-at1sē
-in1fo
-eļ1bū
-uz1jā
-ēt1va
-ēk1ba
-ik1di
-īg1le
-op1ne
-ur1vī
-ār1dū
-ir1cē
-ēr1sē
-as1ja
-es1mo
-il1ci
-az1li
-em1šu
-ap1lu
-er1nā
-ot1rū
-uz1čo
-as1dē
-os1mo
-aļ1ga
-un1te
-at1ne
-om1ba
-ok1ra
-en1vā
-ap1sē
-an1dē
-ol1dē
-ap1ļa
-ek1sē
-ad1so
-iz1po
-uz1lī
-īk1ne
-ud1ra
-uz1ko
-ur1ta
-ep1šo
-ud1mi
-ār1ki
-eļ1vi
-ūk1ti
-īg1ro
-iņ1ti
-ur1du
-eg1tu
-ār1bo
-es1mu
-ar1ce
-os1ki
-iz1tē
-ev1mā
-ān1ko
-er1ge
-ē1dzī
-en1ba
-īv1ba
-ot1mu
-ēb1ta
-īn1rū
-ūk1ņa
-op1jo
-is1lo
-ob1ru
-ur1li
-ēs1le
-ur1lā
-ēj1rā
-ul1ko
-āg1tā
-iv1ku
-ām1ga
-o1dzē
-ī1dzē
-ir1za
-ip1rā
-at1tū
-iv1vi
-op1lū
-āp1si
-em1me
-ap1žā
-ār1mū
-ik1šā
-il1ba
-an1ze
-on1do
-il1he
-ek1ļa
-el1nē
-āk1re
-uk1se
-ēr1so
-ef1re
-ūt1rā
-ip1tu
-am1pā
-ak1ņu
-at1me
-ūr1ma
-ik1tā
-am1pu
-az1de
-en1ki
-iv1mo
-ar1ge
-īb1ti
-uj1ma
-os1ta
-as1na
-ēs1ma
-om1bo
-eb1rē
-er1ža
-āt1nu
-ež1ko
-uz1tē
-up1ni
-ig1nā
-an1na
-az1ku
-on1tī
-ar1sī
-ek1tū
-eņ1me
-os1vē
-ak1šī
-at1rē
-er1bu
-eļ1ņa
-og1ro
-īt1lī
-ij1ro
-ūk1si
-ār1žā
-ap1dā
-uz1pa
-ek1ļi
-iz1tū
-aš1ķo
-im1ta
-ik1nā
-at1jū
-ēg1no
-ā1dzē
-em1te
-er1ģe
-āš1ņi
-eļ1ta
-ap1lī
-ul1la
-uz1bi
-īt1di
-ud1bā
-en1tu
-un1ne
-uk1so
-īv1ti
-ol1je
-ed1li
-iz1ni
-ēr1šu
-eb1si
-ēv1ze
-uz1za
-er1ne
-om1pa
-ec1kā
-in1sa
-uz1ža
-ūs1ta
-ap1ļā
-ūv1ga
-iv1ri
-aļ1ba
-ob1ša
-ir1zī
-aš1mē
-āt1ru
-az1sa
-iš1ķi
-ok1nā
-or1mo
-iļ1ļa
-iņ1ru
-uz1gā
-uz1vā
-it1ri
-om1de
-is1cē
-is1mi
-op1ga
-at1čī
-ar1nē
-uz1ho
-at1bā
-ir1ži
-el1fi
-ir1ne
-ar1dā
-uz1fa
-ap1ki
-ur1dā
-āl1ze
-ār1li
-or1bu
-ap1ti
-um1ga
-ek1ņa
-al1pi
-us1fa
-ār1vo
-uz1ģi
-e1dži
-ig1nē
-uz1te
-ot1va
-ag1ļu
-os1pā
-īk1ņā
-īk1šu
-e1dze
-iš1jā
-ek1ve
-at1ļa
-āl1si
-or1zā
-ul1lo
-ab1va
-aņ1ķi
-ār1ķe
-ur1vo
-ap1ze
-em1ni
-oš1ņā
-ūž1za
-ēr1cē
-ap1hi
-ek1nī
-uz1ņe
-in1tā
-un1cē
-ib1lā
-īr1ga
-is1ku
-uz1zo
-ug1ši
-am1zā
-as1me
-un1dā
-ak1sā
-it1ļa
-ur1nī
-uz1ņē
-ēz1tu
-ab1tā
-ār1šā
-us1sa
-īg1šo
-eņ1ca
-op1lo
-āp1to
-el1mī
-eč1zi
-eg1ku
-al1pē
-ik1rī
-al1vē
-it1ļo
-em1mē
-iz1ba
-is1dā
-īd1mē
-en1ve
-ap1ju
-ol1ko
-ag1le
-ap1tē
-āt1nī
-āv1va
-et1so
-an1hi
-eš1kā
-ir1šu
-es1lā
-os1me
-is1tī
-ur1ne
-et1nu
-ap1mi
-ūz1ma
-or1mī
-as1za
-an1cē
-es1ni
-al1fa
-ēr1bo
-ur1ģe
-āg1si
-is1de
-īs1sa
-at1mi
-ēš1ļa
-ūg1da
-ūs1nā
-ār1ra
-un1kā
-ok1li
-ē1dzū
-ēg1nu
-al1bo
-op1da
-et1ķī
-ur1pi
-ār1pu
-ok1sī
-it1ļi
-ap1sa
-ip1ci
-ar1ša
-av1ma
-ec1vā
-iv1do
-ūs1ti
-at1dī
-ār1žē
-am1na
-ak1ļā
-iņ1me
-uz1ha
-ar1mi
-eļ1ļi
-ēp1tu
-of1to
-ag1rā
-il1zī
-ēg1šo
-il1sē
-is1ba
-ap1ko
-ug1šo
-ot1mā
-iž1ni
-ār1tē
-at1šu
-ep1šu
-uz1ģē
-ag1lū
-up1lu
-ām1gā
-ar1šī
-it1ve
-ak1ma
-už1pu
-uk1te
-uz1lo
-ik1ce
-eļ1rī
-et1na
-āl1ra
-oz1ti
-iz1ze
-ap1zo
-ir1nā
-ad1le
-ēt1ho
-ad1mo
-un1ta
-a1dzi
-az1ko
-āl1pa
-uz1nē
-ug1ma
-en1di
-iz1šū
-ag1rū
-īr1ra
-as1pē
-ok1ce
-en1cī
-il1mā
-op1su
-al1šu
-of1li
-ev1ma
-ab1ļā
-a1dzē
-ud1ru
-ir1zā
-od1bi
-ol1dā
-ap1ci
-il1dā
-ok1pe
-an1ki
-as1vī
-od1ru
-ur1pā
-āj1ga
-ēr1da
-ep1ju
-iz1re
-iņ1ka
-ār1mī
-at1lē
-ir1sē
-iš1ļa
-ēg1ša
-āš1ņu
-ar1gā
-av1la
-aļ1ni
-iz1fo
-il1la
-er1mu
-up1šo
-is1ma
-āl1sā
-ap1ļē
-ur1dī
-as1tā
-ul1tē
-es1cē
-ud1lī
-on1ve
-uz1ģe
-ek1me
-āš1ņo
-ek1la
-āl1ga
-iz1di
-on1vo
-er1tī
-on1ja
-uļ1žo
-ār1fo
-ak1rī
-ev1bi
-ij1ci
-eš1ra
-um1jo
-az1me
-im1šu
-aš1da
-or1tē
-uz1rā
-ār1vu
-al1ba
-in1ge
-ab1na
-an1ci
-īs1lā
-il1šā
-am1za
-al1jo
-ek1le
-im1dā
-iņ1de
-oļ1va
-iž1ra
-am1mē
-ok1rā
-er1le
-ok1vē
-ok1rū
-uz1ķē
-eb1ti
-āv1la
-a1dža
-iz1ļu
-on1ka
-uz1do
-ār1ķī
-ē1dzā
-an1nā
-āģ1zo
-uz1ča
-īt1bi
-am1da
-at1kā
-ēj1ko
-ul1du
-op1lā
-uk1šā
-ik1nu
-oh1ro
-at1ti
-eļ1dā
-it1li
-uļ1ļa
-ūs1mi
-at1he
-at1to
-ec1pa
-aņ1pa
-om1bu
-ig1tī
-ap1me
-er1so
-an1tu
-on1fi
-aš1ni
-īv1ja
-oņ1ma
-il1rū
-ap1pe
-em1di
-ār1pī
-er1žu
-it1rī
-al1tu
-iz1kā
-an1gu
-im1tu
-an1va
-īn1dā
-el1ti
-ap1sī
-ēr1be
-ez1ga
-ēt1ki
-us1tē
-īn1ko
-el1ze
-ab1lī
-ar1tā
-aš1ķū
-en1vi
-il1fa
-ik1ti
-eg1ri
-et1vā
-us1mi
-um1te
-eb1jo
-eļ1ģi
-ar1ha
-al1mi
-ig1lā
-ek1vē
-is1le
-eg1rē
-el1tā
-ap1ģe
-iz1ri
-er1to
-ug1to
-el1lo
-ār1lū
-el1sī
-el1fī
-oņ1da
-in1du
-eg1si
-ub1ļo
-un1zē
-ar1bī
-iz1ju
-ap1nā
-at1ce
-ej1da
-am1vī
-eņ1ķi
-oš1ļā
-ij1me
-ob1ra
-e1dže
-ap1pī
-am1pi
-īķ1ma
-op1te
-uz1cī
-oņ1te
-at1vā
-ap1ņi
-uk1lā
-ir1so
-ak1me
-ip1lo
-ik1ca
-ap1fi
-oj1ne
-iz1pa
-ok1to
-ok1ci
-en1mu
-ip1nī
-ol1za
-ār1ģi
-āk1ļu
-ēr1to
-āl1šā
-ef1le
-as1li
-ar1so
-as1mī
-at1re
-īs1co
-ar1nā
-ug1ta
-is1ta
-eg1ļu
-ām1ni
-ēg1ti
-eļ1ri
-o1dzi
-op1lē
-ip1nā
-oš1ķē
-ap1bū
-im1nā
-ir1gē
-īg1vā
-ēr1nu
-āk1si
-el1mo
-iz1ņi
-ap1mē
-al1pa
-ol1ti
-un1vē
-os1mī
-āk1li
-as1pā
-ēr1ķu
-ul1tī
-ij1ti
-im1fa
-ūs1ni
-um1ba
-um1me
-al1dā
-us1to
-iž1ce
-it1cī
-or1ņa
-ad1rī
-ur1ba
-us1vā
-u1dze
-oš1da
-ok1mī
-ež1ģi
-ef1li
-ir1kā
-uk1ti
-uz1dā
-ēr1ģe
-īg1tē
-ūs1te
-is1vi
-il1ti
-eš1ļā
-ik1me
-or1de
-od1va
-ur1zi
-iz1či
-uk1nī
-az1ma
-uz1ja
-āb1jo
-at1fa
-ev1ri
-iz1jo
-īs1pa
-u1dža
-od1ko
-eb1ro
-is1li
-at1mu
-at1sa
-ub1ri
-ab1me
-ēļ1ni
-ār1hu
-ik1tu
-ok1sa
-em1dē
-ab1lā
-um1sa
-og1lē
-āg1ta
-ez1li
-ob1ļā
-ad1pa
-ig1na
-or1sā
-ir1da
-an1sī
-am1mu
-ul1do
-ār1či
-uz1vi
-ol1ho
-em1zu
-ut1ni
-el1šo
-uļ1vi
-īk1šo
-is1lē
-uz1sa
-ir1gī
-ež1va
-īb1ne
-īd1la
-it1vi
-ēk1ve
-is1sa
-em1pe
-ēj1sa
-id1ra
-ol1da
-il1ca
-uv1re
-ār1tī
-ar1bū
-ap1mo
-il1ža
-a1dzu
-ap1se
-ub1lā
-as1pī
-er1tu
-īc1ni
-ip1ra
-og1lo
-ib1lu
-el1na
-uļ1ni
-ak1si
-an1ši
-ēr1zi
-er1ke
-am1ka
-on1za
-ār1bē
-ud1ni
-ak1ha
-us1mo
-ār1ņe
-at1dū
-iz1žu
-ām1ma
-aj1mu
-uz1čū
-aņ1ģi
-iz1ho
-ēj1ni
-ir1ni
-ek1tu
-ās1ku
-el1žo
-iz1ģe
-ēr1ķi
-ēr1se
-īr1sē
-iz1na
-ob1ro
-al1go
-um1si
-op1ļa
-ur1tu
-or1tā
-ul1cē
-iš1ķo
-ad1ro
-it1če
-il1vi
-uz1se
-oh1lo
-od1ne
-iļ1ra
-īg1no
-ap1ni
-oz1ni
-il1me
-ur1da
-āt1do
-ar1he
-in1tū
-ul1fī
-us1gu
-ul1cī
-al1bā
-ib1ra
-ir1ga
-ul1gu
-ān1ri
-il1gu
-ab1pe
-op1to
-il1zi
-is1ķi
-uv1cī
-ap1tā
-až1re
-iz1pī
-ud1be
-ek1ne
-ab1ļa
-iz1ki
-ar1mā
-iļ1ķe
-ok1ro
-ig1šu
-at1bo
-ār1pū
-īb1ta
-uz1kā
-iz1bi
-um1ma
-or1ko
-an1vā
-es1le
-is1ci
-op1mē
-ām1pu
-ir1ba
-os1tē
-ig1rē
-ok1da
-īk1le
-el1te
-ek1ru
-ok1mā
-ob1ja
-ar1gu
-iz1ķi
-or1gā
-ij1jū
-is1mā
-ūk1nē
-al1ce
-ēs1tā
-ur1la
-īv1bē
-ar1bo
-až1vi
-iz1li
-om1fi
-ar1ni
-ār1cē
-uņ1ni
-ir1pā
-uk1šu
-in1fu
-op1ļo
-on1mē
-ēš1la
-ūm1ju
-on1me
-is1ja
-āl1da
-āj1pu
-el1zi
-ēr1ko
-īs1tū
-āb1ta
-it1re
-ēr1ta
-ik1ne
-aņ1ģē
-es1na
-uš1ķī
-ēk1sū
-āp1jo
-ār1ja
-op1li
-ib1rē
-oš1ķa
-ag1ta
-ob1jo
-ok1lē
-ul1ku
-ip1te
-ar1cī
-ār1te
-īg1ša
-uz1ki
-ās1la
-et1ro
-ās1ti
-ar1ti
-iz1sa
-āk1zi
-uz1sē
-em1šo
-ok1so
-et1ze
-ar1žī
-oš1vi
-ap1ri
-ad1ru
-u1dzo
-āp1nē
-at1za
-ūr1li
-iv1la
-or1va
-ūv1be
-ep1ni
-eņ1sā
-ūr1vē
-āz1tā
-ēb1šo
-ev1lū
-ib1kā
-īt1da
-um1ša
-ug1sa
-ik1da
-ak1lu
-ēr1ļa
-os1mu
-īņ1la
-if1rā
-oņ1tū
-eg1ne
-is1mo
-uz1šū
-on1tū
-ob1šo
-in1va
-eg1lū
-ir1pi
-u1dza
-us1la
-ūs1pu
-ib1to
-iz1sē
-ap1čū
-ok1lā
-uv1mu
-īk1sa
-āķ1ve
-iz1mu
-uz1mī
-uļ1ķo
-ar1hī
-ēl1me
-īg1me
-ag1ve
-ur1vu
-ār1ha
-ed1ni
-āt1se
-at1ņa
-at1sū
-ūk1šu
-ol1me
-ūz1mē
-ip1to
-at1tī
-ēs1ta
-us1ve
-iņ1pu
-ol1va
-in1ši
-āp1ta
-ar1ko
-ēk1si
-el1zī
-er1nu
-az1pi
-ār1bī
-uk1la
-ek1ņi
-er1ro
-ēt1bi
-al1da
-is1pe
-īk1mu
-ēc1pu
-in1dē
-ūr1ve
-es1tū
-ēr1mi
-ez1ko
-ār1ko
-āl1lē
-ep1te
-ār1re
-an1ce
-od1ku
-ig1ru
-īk1tu
-ēž1ve
-ap1no
-ul1ga
-el1ve
-at1ņe
-ār1pā
-op1bu
-iv1ti
-iz1dā
-ig1ra
-ij1va
-ēr1di
-iz1lo
-uz1bo
-ās1nu
-el1ņa
-us1ne
-ev1ge
-ab1di
-uz1jo
-ār1kā
-eb1re
-ir1nu
-op1tā
-il1li
-uz1pī
-āj1do
-ēg1tī
-ul1re
-eļ1ķī
-ej1nī
-av1ļu
-aļ1ņu
-ūs1ga
-im1fo
-ab1ta
-ut1ne
-iš1ķu
-ez1nu
-or1sē
-ep1ļu
-ūt1si
-ik1le
-is1ga
-oz1to
-op1ti
-ur1šo
-il1kā
-im1du
-ēr1ba
-iz1no
-ar1je
-am1du
-ul1lu
-ot1ni
-eš1si
-at1pa
-ab1to
-ip1zā
-ūs1tī
-at1mū
-ī1dza
-im1bo
-op1tu
-ak1ta
-es1ve
-īk1ma
-ūk1ša
-in1di
-uz1ži
-iz1čī
-ad1vi
-am1šā
-iņ1ņa
-ār1ce
-ēd1ma
-ik1ni
-ap1tī
-ap1zu
-ep1sī
-am1pe
-uz1lē
-iņ1ģi
-uņ1ķi
-ur1pa
-eb1ra
-eš1me
-āt1ni
-or1me
-uč1ka
-ar1vi
-en1gā
-ar1ši
-uz1la
-es1kā
-uk1ņī
-ap1gā
-er1vu
-es1nā
-ir1šo
-iz1sī
-at1gū
-ar1ma
-ef1ro
-eš1ķi
-on1nī
-ap1ho
-ez1zi
-oņ1re
-ur1nu
-am1be
-ek1no
-is1jē
-āž1ni
-ag1lē
-ek1ci
-el1da
-es1pi
-ož1vī
-oņ1mā
-il1pā
-ok1la
-as1lī
-en1ze
-ām1vi
-ir1be
-ik1lī
-e1dzo
-uz1ti
-ul1ta
-ār1gu
-an1so
-ik1si
-eņ1ze
-iv1ju
-ag1nā
-ār1bi
-ib1ša
-or1fo
-ūr1zā
-ap1ņa
-ap1ji
-ēr1lī
-u1dzu
-en1rā
-iņ1pa
-at1ķī
-ār1vā
-ap1ļo
-ār1ca
-ek1šā
-ēr1ka
-īz1da
-us1di
-īk1to
-op1sa
-iv1ko
-āb1ti
-il1jo
-iz1ra
-ir1se
-uļ1pa
-iz1ņa
-ār1fa
-os1li
-ez1ma
-ar1si
-oš1ta
-eh1ro
-až1di
-er1sā
-ep1sa
-el1je
-āt1ce
-ek1lū
-an1dā
-ig1rā
-is1za
-ok1ru
-eš1ļi
-āj1mu
-ot1rē
-el1ka
-ur1čū
-eb1šu
-uz1žū
-eg1ve
-uz1ņu
-ob1ri
-ap1bi
-iž1ga
-av1va
-ūs1na
-ēj1ra
-iņ1ni
-eg1tī
-uš1pa
-ag1ma
-ur1ķē
-on1go
-ēr1ne
-īž1ni
-ir1ģe
-as1kū
-ēr1cī
-el1ša
-ēr1nī
-āk1ti
-es1mā
-ap1dē
-īn1me
-ig1šo
-es1ki
-ot1ne
-ab1rā
-ab1te
-ib1rī
-ir1po
-az1do
-en1sī
-az1nī
-er1bo
-al1bī
-ib1lē
-aš1ha
-es1va
-et1ru
-ez1jē
-id1ga
-il1tē
-on1ki
-il1na
-ur1go
-oņ1pa
-ur1lī
-od1pi
-īb1to
-iņ1va
-ad1ni
-ev1ka
-ar1la
-āb1tu
-at1vī
-er1su
-us1ku
-iv1vē
-iņ1za
-or1nī
-an1do
-ūt1ne
-om1bi
-an1to
-el1dē
-uļ1sē
-el1jē
-il1ča
-ās1lē
-as1pu
-uz1su
-uš1ku
-om1po
-ul1bē
-ēc1mē
-eņ1ko
-īv1zā
-eg1le
-is1ce
-is1ni
-od1rā
-om1na
-ul1mi
-āk1ļo
-ig1mu
-ir1me
-eg1ra
-eb1ta
-al1mu
-is1ki
-in1jo
-īn1vi
-ef1lā
-ēj1ca
-ar1hi
-ul1ba
-om1ja
-an1kā
-am1bū
-op1tē
-ol1lo
-am1mā
-at1ķi
-ad1hē
-ot1ma
-em1lī
-āl1le
-as1mē
-ūr1ga
-ik1la
-um1so
-an1dī
-us1lī
-ūr1ta
-in1že
-ip1ri
-ej1se
-ul1ki
-eg1bu
-il1šo
-at1pe
-at1čā
-ap1lē
-eg1lā
-īs1re
-ēr1ve
-ek1ca
-ap1so
-ēr1mo
-āz1ta
-or1tū
-āk1šu
-em1ci
-ok1ne
-ēd1nī
-es1ti
-il1pe
-ip1na
-ik1va
-os1lī
-iz1šā
-od1ri
-ob1rū
-un1va
-eb1ku
-il1to
-ir1tī
-uk1ro
-iz1cu
-āž1ra
-ur1di
-eb1ju
-ul1so
-īs1lo
-ēj1čū
-in1fi
-ur1za
-il1va
-iz1fa
-al1do
-ib1si
-ēr1bā
-os1ni
-oš1re
-im1ba
-ig1si
-ūr1fi
-ec1pu
-ak1to
-el1so
-ek1rā
-īs1va
-aš1mī
-en1ti
-en1pu
-eb1ri
-am1ma
-es1me
-ūn1vi
-ak1ci
-ēp1ša
-eš1ni
-el1vi
-ov1ka
-ēz1do
-iz1lā
-en1tū
-en1su
-ur1nā
-ot1ro
-ob1re
-ep1žo
-at1ķē
-ēp1ti
-en1ci
-at1bē
-uk1to
-āg1šu
-il1mē
-ār1žo
-is1va
-ēt1ce
-un1ro
-eg1me
-on1bū
-ah1ro
-ād1re
-or1ni
-uģ1ni
-uz1so
-uz1rū
-īs1kā
-īs1pu
-ar1šu
-ar1sā
-el1bu
-il1ta
-ur1ķi
-ak1ne
-ap1vē
-ār1ča
-av1ve
-os1pē
-aļ1ra
-eš1ķe
-ur1zo
-as1va
-uk1či
-ar1pi
-uk1ra
-ur1mē
-ez1se
-al1pī
-um1za
-īs1de
-aļ1ru
-uk1ko
-eb1le
-ul1ju
-āt1ze
-at1bū
-ez1vi
-at1šū
-ag1ra
-āt1kā
-īs1te
-iz1jū
-eš1ņo
-ur1co
-ar1bi
-ūs1tu
-it1ka
-en1sē
-eš1ņa
-ag1ro
-aļ1si
-id1ri
-it1no
-ež1ma
-os1pi
-ev1ti
-ēk1pi
-ap1tū
-us1mī
-el1hi
-iz1ha
-eš1ļu
-ām1vā
-un1gu
-ā1dzī
-āl1nī
-eb1li
-od1re
-āk1la
-ab1zi
-af1ni
-ād1ni
-ig1ri
-ek1ga
-uļ1mu
-on1va
-īv1ko
-um1ra
-at1pā
-ub1ļa
-er1nī
-ug1ļi
-aš1ke
-ēr1tī
-ap1ba
-od1jo
-ok1ļū
-us1tu
-uz1ķe
-ih1ta
-iņ1ga
-ēp1jo
-un1ce
-il1ši
-īt1ne
-oš1ķī
-ig1ta
-ol1lī
-ūk1ga
-es1pē
-et1bo
-ez1di
-ap1ķi
-uz1ca
-ig1mā
-or1ķa
-ez1to
-āp1ju
-ēk1nī
-at1ļu
-es1sē
-ir1pa
-ap1ra
-up1li
-ul1dī
-ē1dza
-ek1so
-ol1zī
-ēr1co
-or1ka
-ad1ja
-en1ra
-ez1ba
-iz1go
-en1hā
-ez1ka
-et1re
-ah1ve
-il1pī
-ep1lu
-eg1ti
-im1fā
-ih1nī
-ēr1dī
-ap1čā
-ēj1vi
-an1tī
-eņ1tu
-ut1ru
-ēj1tā
-ur1bu
-ur1de
-es1no
-am1pī
-un1vā
-iž1ku
-uk1lu
-un1bū
-un1tu
-is1nī
-ub1ļi
-ap1či
-ūd1ri
-en1lī
-es1pā
-iz1čū
-ob1ji
-ez1tā
-em1žu
-op1lī
-ab1lu
-od1rī
-āj1sa
-uk1ci
-an1žē
-ūt1ri
-un1dē
-eg1gā
-ur1pū
-il1di
-iķ1ve
-eņ1ka
-an1tū
-āv1vi
-īt1ro
-iz1ro
-āl1di
-i1dzi
-ad1rā
-ap1ne
-at1va
-iz1ma
-ūv1ko
-ūt1nē
-až1va
-ān1sa
-uz1zi
-as1vē
-et1vē
-iļ1bu
-aš1vā
-ap1ka
-iz1pi
-er1ša
-ed1na
-im1dē
-ag1nē
-āj1bu
-ād1ve
-eb1tā
-us1pū
-īt1sa
-ap1ži
-ūr1ni
-og1ļa
-āt1nē
-el1vē
-et1la
-og1ru
-iz1ka
-al1sī
-ir1zu
-om1fo
-eļ1jū
-il1bī
-il1sa
-uņ1ģī
-ej1sa
-or1nē
-am1ta
-ul1šo
-or1pē
-em1du
-ur1lo
-at1be
-ur1si
-ēr1ti
-er1šo
-at1pi
-or1lo
-ev1na
-ec1ri
-ol1ba
-iņ1kā
-ār1hi
-os1fā
-at1lū
-og1ni
-aš1sa
-eg1li
-ij1de
-eļ1mā
-il1nsa
-ir1pti
-iz1šķo
-ēl1mju
-uz1glā
-ap1slā
-op1ska
-ek1špē
-al1tru
-iz1smē
-ēr1kta
-us1kri
-il1bsi
-ul1gri
-ap1sku
-at1frē
-is1pru
-at1fri
-um1pja
-ār1brā
-os1tga
-as1pre
-ār1sve
-ūm1tve
-ār1brī
-uz1fra
-iz1dru
-ēr1ptu
-un1dzā
-ut1ska
-īk1šķo
-āb1sti
-iz1hlo
-ēr1šļo
-ap1gro
-at1šmī
-un1spu
-es1tro
-ap1blē
-et1rka
-us1gri
-at1plā
-on1ste
-ap1šķī
-el1dze
-ab1sce
-at1kļa
-iz1prā
-ug1šde
-on1fli
-at1stu
-im1šte
-ir1kta
-ar1bnī
-er1dzī
-en1dro
-ok1snī
-uk1šķa
-eš1bļo
-īt1ņmē
-et1rde
-ir1mbā
-az1gru
-in1grā
-uk1ska
-ap1spo
-āg1sti
-ug1špa
-al1kva
-ez1tne
-an1gli
-udz1ba
-ūk1sli
-at1sma
-ap1fra
-iķ1skā
-uz1sma
-īp1sla
-il1stu
-iz1gra
-os1krē
-am1sti
-uz1pre
-ez1gla
-īdz1jū
-us1trā
-iz1pla
-iļ1krā
-ēr1zka
-ap1pro
-ir1sno
-ir1smo
-ir1mme
-er1dze
-ān1prā
-ap1bru
-ēg1sto
-as1bra
-ek1šne
-ēr1bšo
-edž1li
-as1tru
-un1dra
-āl1pro
-ār1grē
-ēr1stā
-ar1pta
-īk1stu
-ez1spē
-am1skā
-ir1kļo
-on1gru
-iz1šta
-āļ1dzi
-āl1štā
-īs1pro
-ur1dzu
-ir1stī
-ār1šļa
-uz1gru
-el1pšu
-al1frī
-ek1šga
-ir1mdī
-ek1sku
-iz1spu
-uz1plū
-āk1sla
-iz1dre
-in1ssū
-uz1gle
-om1pre
-ār1gti
-udz1cī
-iš1brū
-uz1kru
-uz1sli
-uz1klā
-at1ble
-īdz1ni
-iz1smī
-ār1sni
-īs1spa
-iz1pre
-īg1sko
-iz1žva
-ir1gti
-ēr1bta
-īt1pra
-at1gla
-as1dzi
-ap1skū
-uk1šķe
-at1dzī
-uz1šta
-uk1lva
-at1dzē
-ār1šma
-es1prā
-iz1blo
-al1sti
-at1zvi
-in1dzo
-uz1krē
-at1kvē
-an1brū
-ur1ksi
-uz1stī
-op1sta
-in1sti
-on1sti
-uz1pli
-at1kve
-as1krē
-in1sda
-an1smi
-ap1stu
-us1tpu
-uz1kņu
-ār1blo
-on1gli
-ar1pli
-ap1šļa
-us1kre
-āk1šķu
-al1vja
-iz1sni
-ap1pla
-uz1brā
-iz1brē
-eš1stū
-iz1svā
-ēr1kša
-ug1sta
-at1blo
-ap1švi
-il1dno
-iz1glū
-ir1sdi
-im1pro
-ār1tre
-iz1bri
-āl1bra
-at1bri
-uk1stē
-iz1brū
-at1plē
-il1bšo
-ur1dza
-ik1lpa
-āt1rra
-uk1sti
-ur1kša
-en1džo
-ār1svā
-ap1krā
-īk1šķi
-at1rre
-iņ1zva
-at1žvī
-ār1blī
-ēr1sta
-ār1smi
-iz1šmī
-ug1šna
-iz1skā
-uz1trī
-ap1svī
-is1prā
-ek1sta
-at1sla
-at1trū
-āk1slī
-uz1kna
-il1dvi
-ār1dzi
-uz1šņu
-is1tre
-iz1svi
-ap1dri
-el1dmē
-ul1gto
-an1tzi
-is1kvī
-uz1kļū
-ār1šņo
-uz1frē
-ib1sto
-ig1sta
-in1ktī
-ir1sni
-en1sne
-em1pjo
-ēr1btu
-īn1skā
-ēk1šņo
-ik1smē
-es1trī
-at1šķū
-at1pla
-in1gto
-ot1rdi
-al1cvi
-um1bri
-uz1švi
-is1glī
-an1džū
-ap1sle
-uz1pļē
-ap1šķe
-iz1ble
-ap1šņa
-ir1mre
-en1tra
-ār1tra
-ul1snē
-iz1spa
-ep1sti
-ūt1sga
-āg1sto
-īb1sta
-ap1pļā
-at1kle
-il1gtu
-iz1spi
-am1tra
-an1fra
-uz1frā
-ēr1nva
-uz1stū
-ūk1sto
-at1šma
-um1šzi
-ug1stā
-at1špa
-il1kti
-īp1sle
-iz1tri
-os1tro
-el1pšo
-av1sta
-ak1tda
-ik1snu
-iz1stū
-ok1tri
-ap1gve
-op1spē
-iz1pra
-el1ptā
-es1tra
-iz1kni
-ān1spē
-os1kva
-ol1ste
-ul1dzo
-ek1šzo
-uz1ste
-uz1brī
-in1skā
-ār1švī
-il1nvē
-ūv1pro
-iz1šļu
-ev1ski
-en1zda
-āt1rda
-ēk1šķu
-ig1sto
-ēr1kšu
-ēr1ktā
-iz1skū
-an1kre
-iz1pro
-il1spi
-al1kto
-ok1zvē
-ap1zva
-ār1zvē
-un1tni
-ak1sti
-as1tri
-īb1spē
-os1mve
-en1sžu
-el1nru
-er1csa
-uz1zvi
-al1vtu
-at1dzi
-um1krū
-ot1frī
-ap1klī
-an1sko
-el1dko
-an1tkā
-ap1gla
-īk1šņa
-ār1gve
-il1dba
-es1tma
-uz1sti
-at1drū
-ul1pto
-uk1smi
-as1trē
-er1tro
-īb1sti
-id1spa
-at1trā
-ar1pna
-at1sta
-ek1trī
-at1šņo
-at1zve
-ig1zda
-ir1mpa
-ak1tni
-ir1kšo
-ār1plo
-ār1prā
-il1nti
-om1sva
-ēr1bja
-il1trā
-al1kta
-iz1dza
-iz1šma
-at1dza
-iz1kri
-ol1skā
-en1tni
-et1sti
-at1tru
-iz1špa
-ur1kne
-īg1zna
-ul1sva
-an1tza
-ār1tņu
-īn1krū
-uz1šņo
-ek1tkā
-at1plū
-il1kni
-uz1žņa
-ur1sli
-iz1tre
-ap1stī
-or1dda
-ur1gra
-at1glā
-ās1tni
-uz1žmi
-at1dze
-āl1sti
-ēr1slī
-el1nze
-āk1ste
-op1pla
-at1prā
-up1sto
-em1plā
-ib1stī
-up1sti
-ār1špa
-ēj1pla
-ār1hlo
-ap1frē
-il1kto
-al1dzi
-on1tri
-ar1gsē
-iz1frē
-ap1bro
-ul1tne
-im1stī
-ug1špē
-em1pta
-at1grū
-as1tma
-īk1ste
-iņ1krū
-il1kšu
-ek1ska
-is1tvi
-ār1dro
-iz1tro
-us1smē
-el1zta
-ēr1psi
-āk1sme
-ēs1tne
-ār1grū
-ok1gri
-up1stē
-ok1sko
-et1rro
-un1dze
-ap1trī
-uk1šķu
-in1sri
-en1tri
-āj1dzī
-ap1fri
-et1rpa
-uz1klu
-ik1sme
-ār1dra
-iz1kvi
-ēr1pto
-at1plī
-od1pra
-at1glu
-ap1fli
-uz1gri
-at1krī
-īk1stē
-oš1prā
-an1frē
-ap1sva
-il1bta
-ek1smē
-ār1šru
-us1tmā
-īk1smī
-al1dķi
-os1trī
-in1ssē
-al1tga
-ir1mkā
-ap1zvi
-ūg1sto
-em1pli
-uz1ble
-on1spe
-at1spā
-ār1sko
-ap1trā
-ek1šli
-āl1skā
-iv1pro
-ar1krē
-iz1tra
-uz1tri
-uk1ste
-ir1klī
-ap1kna
-er1spē
-ik1šķa
-ak1šķo
-ur1gšo
-al1dga
-ap1kla
-ap1svē
-in1tri
-im1tga
-in1šķi
-ēr1bka
-ēr1sti
-at1ska
-āb1sle
-ap1slī
-iz1slā
-an1gļu
-ir1msā
-ēr1pša
-or1tlī
-iz1dri
-un1kta
-el1dzī
-em1ztu
-en1ksi
-ār1kna
-un1kto
-ap1klu
-at1tra
-at1brā
-at1žva
-an1kro
-ap1sme
-ūg1sti
-ar1tmā
-in1gti
-ār1sti
-ik1stē
-om1bve
-ap1sko
-ār1ple
-īk1smi
-ug1sne
-ap1krē
-en1skā
-en1szī
-āk1sne
-es1pre
-ēr1ķti
-āl1sma
-īr1ska
-at1slī
-us1krē
-us1ska
-el1pta
-en1kto
-ar1bga
-ār1tru
-eņ1krū
-en1trē
-ār1spu
-en1spu
-al1ktā
-ik1sti
-em1zti
-āt1stā
-al1kci
-ap1kļū
-el1nsi
-ēr1nru
-ir1dza
-ār1klī
-at1tre
-il1dma
-īk1pla
-ap1sni
-el1kme
-el1nbā
-ak1smē
-āb1sto
-un1drā
-uz1glu
-uz1ska
-en1slī
-an1sli
-ēr1sba
-un1dro
-el1zto
-uz1trā
-uz1spā
-ap1dzē
-ap1dru
-in1dze
-ed1gri
-eļ1blā
-an1kci
-os1krū
-iz1spā
-an1krū
-ir1sra
-it1sko
-ir1mso
-un1ktī
-iz1slī
-er1zto
-et1pra
-ur1tra
-al1tme
-iz1slu
-il1gti
-iz1gre
-ek1šķī
-op1sva
-uz1tru
-ar1ppa
-in1dzē
-ab1dzi
-ur1tni
-uz1bri
-ab1stu
-in1gra
-uz1sva
-iz1krē
-ap1dzi
-ug1šte
-um1bru
-at1dro
-ir1sti
-ur1sti
-āl1sko
-at1klu
-en1kšo
-ut1skā
-il1pšu
-ur1gšu
-ar1knā
-ap1knu
-im1bra
-ēk1stu
-iz1knā
-il1bto
-āp1sli
-us1tru
-ak1šņo
-ap1prā
-ir1dzo
-en1krā
-ār1spē
-ar1kro
-iz1dro
-ār1bra
-il1dnī
-el1dba
-al1bri
-uz1brē
-ot1gri
-at1tvē
-ur1sme
-uz1šļa
-ek1šte
-at1šņa
-en1sro
-āk1slo
-an1žsa
-uz1plī
-an1tra
-il1bša
-il1tni
-us1glā
-ur1gti
-īg1stu
-ar1zva
-ol1lmē
-iz1kve
-ar1glī
-in1kru
-ap1kņu
-ir1pšu
-ec1skā
-ar1dzi
-od1ršu
-al1tma
-uz1sle
-eg1spa
-ap1šļi
-ek1šķo
-uz1spo
-ar1kto
-iz1zvi
-uz1šķo
-il1trē
-or1tre
-im1šļa
-iz1blē
-el1gti
-uz1slē
-ār1spo
-al1dka
-uz1bre
-is1tzo
-im1fva
-az1pra
-ap1plī
-aš1kri
-ir1pji
-uz1šļu
-iz1sla
-em1zto
-ur1kri
-al1tna
-er1dzi
-en1kti
-at1pļē
-ēr1slo
-ar1gto
-ūk1šķi
-in1dzu
-es1pļa
-oņ1pri
-uz1bļā
-us1tro
-ij1skā
-ār1fra
-iz1tru
-og1dzi
-ij1spe
-ij1stū
-uk1šķi
-ār1trā
-uz1kla
-ek1sče
-ik1stu
-ar1ppi
-iz1šņu
-oņ1sli
-il1psi
-iz1gro
-ēg1stu
-uz1sku
-ol1stī
-ur1vci
-uz1smī
-ur1zma
-en1sve
-er1spe
-uš1plē
-ur1bšu
-at1stū
-iz1sme
-el1gšu
-ec1sta
-ap1kra
-ek1šda
-il1dde
-el1kņa
-il1dle
-el1psi
-ap1stū
-ap1ple
-uz1ple
-ur1kšo
-ār1dnī
-ēr1pju
-ēk1šķa
-ir1mte
-ug1ļķe
-an1kvē
-il1gta
-īr1šķi
-ap1svā
-ul1lpu
-es1nvē
-uz1gve
-at1pri
-ug1šda
-at1šķo
-iz1plī
-ār1bri
-al1dkā
-udz1ma
-un1ssa
-os1prū
-iļ1ņve
-er1che
-ān1skā
-ab1ska
-ēr1sli
-ār1krī
-al1kšu
-ur1sto
-ūg1sna
-uk1sto
-ir1mcē
-id1sta
-id1slā
-ut1sko
-ir1stā
-ār1pro
-ir1kti
-ār1kre
-ap1glu
-as1tne
-iz1švī
-uz1spu
-al1nrū
-ār1spa
-un1ktā
-āb1slī
-ār1pļē
-ir1bju
-ur1bto
-el1svi
-un1ktū
-ug1šga
-ir1sli
-uz1fri
-ur1bta
-āb1stu
-em1brā
-om1pro
-ez1glā
-ep1sto
-al1kme
-iz1blī
-ar1ksi
-īk1smo
-ār1spe
-ap1krī
-iz1šķē
-ur1tkā
-ēk1lko
-ār1tna
-il1dsa
-al1dni
-el1dce
-on1tru
-iz1sto
-ūp1sto
-ap1žvī
-ap1tri
-od1gru
-ār1gtā
-iz1gve
-el1gsi
-er1nha
-at1švī
-ār1hro
-il1tvā
-uz1sme
-at1sve
-im1tni
-uz1pri
-ēr1sra
-as1krā
-en1ska
-iz1glī
-us1tdē
-ol1tme
-ūr1stu
-um1švi
-at1šļa
-ār1knā
-uz1tre
-ok1šņo
-at1bli
-at1sni
-el1gto
-ek1šķe
-ab1sti
-un1fte
-ap1gri
-ir1ste
-ul1sni
-en1tvi
-am1plu
-am1zda
-ik1stī
-at1knā
-at1skū
-is1tro
-is1trē
-īg1sta
-ir1spu
-am1svē
-ār1bru
-ec1stū
-ul1dza
-il1kšo
-ār1plā
-os1tni
-īk1sna
-uz1sta
-ār1zda
-ār1šķi
-uz1bli
-ek1tro
-ap1grē
-ur1bšo
-ir1slē
-iz1kla
-uz1trū
-uz1tra
-ak1sto
-os1tre
-uz1dri
-ir1sma
-ak1šķē
-ak1tli
-ek1švē
-ās1nku
-el1zti
-er1cba
-ēr1kto
-in1dsē
-al1kša
-um1tra
-ip1sna
-eļ1ska
-ār1šķī
-ap1kri
-ār1šķē
-el1drē
-im1pli
-uļ1dzi
-ir1pta
-ēr1pta
-il1pra
-up1stī
-iz1fra
-us1tre
-ub1krē
-ār1pļā
-in1fra
-il1kta
-ir1mpi
-ap1šņo
-at1sku
-un1dzi
-es1trē
-an1drī
-il1pto
-adz1ni
-ar1pju
-in1gtā
-iz1gru
-ap1šķo
-ēr1skā
-ot1rpi
-or1tfe
-ir1mti
-ik1šķi
-an1tmē
-am1bri
-un1dža
-il1pšo
-as1brā
-el1gšo
-ap1kvi
-ug1sme
-il1pne
-ēt1svi
-ir1kša
-as1sko
-ek1spe
-en1kša
-iz1bre
-em1pti
-ār1gre
-iz1frā
-iv1stā
-ul1šņa
-ār1kro
-as1pra
-il1ktā
-at1sle
-iz1glu
-ik1snā
-ok1šņa
-um1šma
-ār1gru
-ār1sme
-at1sna
-ur1kto
-ik1sna
-uz1svī
-us1slo
-am1pda
-em1ztā
-uz1žva
-is1smi
-ēr1tnī
-ār1gtu
-ār1drū
-īg1sti
-ap1tro
-at1sme
-iz1plē
-ir1tni
-ak1šžo
-il1sku
-ul1bša
-um1spo
-āk1sli
-ap1blo
-ār1dze
-ār1kva
-uk1sne
-āt1rvi
-ap1žva
-am1stu
-an1dra
-ār1gšo
-ek1stē
-ār1slo
-ār1gto
-ek1ļve
-ek1spo
-ār1tsa
-iz1dži
-ar1blā
-ēg1sti
-ar1bdi
-uk1šķī
-il1bšu
-or1pro
-ap1hlo
-iz1trī
-as1trī
-uz1smē
-ār1spā
-is1tri
-ab1klā
-uz1hlo
-uļ1sti
-at1fli
-ut1nko
-iv1krā
-ur1tdi
-ap1glū
-ār1glū
-om1skā
-at1sto
-um1sta
-ap1gle
-al1sma
-el1tra
-er1sto
-el1dvi
-iz1fri
-et1sko
-at1tva
-ār1kle
-āš1kru
-er1tce
-ap1kru
-us1tri
-uz1gla
-ap1ble
-il1sta
-ap1sve
-iz1dzī
-as1tpa
-em1psi
-iz1tvē
-ac1grī
-ēr1dzī
-ul1lci
-iz1šļi
-at1žņa
-ov1smē
-as1ska
-en1tge
-at1plu
-īs1šķi
-ār1dzī
-ēk1šņā
-el1nko
-ār1sku
-āv1sti
-āl1dzi
-ēp1stu
-īv1kla
-im1tmu
-os1pro
-ap1spē
-um1brā
-ul1dzi
-ār1stā
-ur1knē
-er1trū
-el1nba
-ār1bro
-ar1sme
-ok1sne
-il1ška
-at1svē
-ar1vde
-at1slu
-iz1bro
-ēr1ste
-āb1sli
-us1skā
-at1grā
-āp1stu
-ār1brū
-am1stī
-as1tmē
-iz1kņu
-en1kla
-iļ1sli
-um1sto
-ap1bļā
-uz1sna
-ol1klo
-er1tme
-iz1fli
-al1stu
-ap1špa
-ar1sti
-āk1šķi
-ār1dži
-um1bra
-ir1dzu
-al1kjū
-ap1smī
-āb1sta
-iz1kļa
-ul1ptū
-ap1smē
-ār1tnī
-ar1gva
-udz1so
-us1stu
-ap1ste
-ul1zna
-ār1glā
-ār1blā
-ur1ska
-il1stā
-el1nra
-ak1tri
-at1kņu
-eg1sme
-ap1grū
-ēk1šķo
-in1spi
-ik1sta
-am1bli
-ir1dzē
-ēr1ktu
-ur1kni
-el1tni
-iņ1krā
-iņ1kre
-iz1kle
-an1spa
-un1ska
-am1stā
-ēr1pšo
-ār1fli
-ir1mri
-ēr1btā
-at1svi
-ir1spa
-ār1tnā
-ap1šķū
-en1drā
-ek1šni
-at1trī
-ar1kti
-iz1pri
-ig1znē
-on1spi
-ul1kve
-ek1šķu
-āt1sko
-ek1sne
-īs1krā
-iz1klā
-ēj1tve
-ur1kti
-og1ļhi
-or1tme
-aš1plū
-ēj1slē
-am1pla
-ēs1tni
-ur1bsi
-is1tka
-is1dzi
-iz1spe
-ab1sta
-āp1sti
-as1tme
-os1tri
-udz1da
-ur1dzē
-at1šļu
-at1bra
-un1kla
-er1zti
-uz1pļā
-ār1dre
-il1gša
-iz1ple
-iz1žņa
-er1ztā
-el1dše
-ir1knē
-eņ1krā
-ēr1ssi
-al1sno
-ūp1stī
-ir1gsi
-iz1sta
-ir1sse
-uz1spe
-ek1sni
-īg1snē
-in1dzi
-at1kli
-ar1bve
-on1glo
-iv1ska
-il1dni
-ār1kra
-ār1blē
-ar1stā
-ār1sli
-eņ1ķmē
-ēr1bsi
-ik1smī
-āl1sci
-at1dre
-až1brī
-iz1plā
-ir1mve
-uz1gro
-up1jma
-uz1dza
-em1pto
-an1kto
-ež1sta
-ēr1šļu
-ap1brī
-uz1kro
-uz1skū
-uz1krī
-ap1šmī
-uz1kvi
-il1btā
-or1tje
-es1krā
-at1tve
-ul1stu
-ūk1stu
-en1kta
-ēr1stu
-ar1bma
-uk1stu
-ēr1nzi
-uz1slī
-ūk1sti
-at1sva
-ap1pļē
-il1nmi
-ir1snī
-in1dni
-āj1prā
-ar1sbu
-at1spa
-el1nma
-ek1stu
-is1grū
-is1nle
-āk1stī
-uz1stu
-if1šte
-ār1spi
-īk1stā
-ar1ktu
-ur1ktā
-āj1dzi
-ēr1bto
-iz1zva
-at1knu
-at1fra
-en1sra
-al1ctī
-ār1bre
-ar1bni
-ār1tni
-ez1pro
-an1tnī
-ēp1sti
-as1trā
-āp1sto
-īr1sva
-iz1šķa
-ig1stu
-er1tra
-es1tru
-as1grā
-al1sna
-ur1pre
-ur1mjā
-ēn1prā
-at1pro
-ek1ļpa
-ik1lve
-ēr1kšo
-iz1gla
-ap1sna
-in1dza
-ār1gra
-ir1gto
-iz1sna
-an1čki
-ap1tva
-ār1sna
-um1špe
-at1zva
-ig1zdo
-en1sva
-et1rga
-il1gga
-īk1sme
-al1stā
-et1rri
-iz1dzi
-ār1pra
-iz1trū
-ār1pli
-ēk1šķē
-āj1sta
-iz1kro
-ur1kšu
-iž1knā
-or1bci
-em1ptā
-an1scē
-ir1kšu
-al1tdi
-ēk1šņu
-īdz1ši
-ot1rre
-āt1spē
-ēk1mju
-āt1krū
-il1dda
-at1svī
-udz1kā
-ār1trī
-ar1ktā
-āl1ska
-en1sli
-es1pri
-ur1btu
-ug1stī
-uz1plā
-em1zta
-iz1bļā
-īk1sti
-uz1spa
-ār1tve
-an1dce
-el1dse
-uz1kra
-ap1sli
-ir1gta
-uz1slā
-ir1kli
-oņ1plū
-ur1gto
-an1grē
-ūk1sna
-āv1zva
-an1slā
-ek1švā
-ār1žva
-ār1šļu
-ap1frā
-až1skā
-at1pre
-as1tti
-iv1plā
-uz1grē
-ek1šno
-iz1grā
-uz1bra
-es1tpa
-ur1bra
-iz1kļu
-im1sto
-ur1gtu
-om1dzi
-ir1gka
-iz1šķe
-ek1sti
-uk1šga
-ār1sma
-el1tka
-ar1gma
-al1nra
-uļ1krē
-ar1gka
-iz1svē
-ēr1sto
-il1špa
-im1tci
-uk1plē
-el1pti
-is1dra
-er1sme
-ul1snī
-ār1krā
-āt1sma
-ir1stu
-at1pļā
-uk1smu
-an1dtā
-en1kšu
-ar1sko
-ēr1pti
-ēk1lva
-or1skā
-uk1sta
-ep1sta
-ār1tri
-ir1kņi
-ul1stā
-et1rvi
-il1btu
-ār1sla
-at1pli
-el1nsa
-ur1kmē
-uz1bro
-al1dne
-ār1frē
-un1spū
-ek1šķē
-en1pro
-an1dro
-at1bru
-ak1snī
-uz1tvē
-ik1spā
-uz1blī
-ap1šķi
-el1dra
-un1svi
-at1spu
-ār1fri
-ep1stu
-ēr1szā
-īb1sto
-ār1dza
-ār1gli
-el1kne
-ār1tne
-un1prā
-ap1kve
-uz1kni
-ap1dra
-ār1gša
-ār1kvi
-ir1zga
-ek1šgā
-ek1sve
-at1gle
-ār1stī
-es1pro
-al1kma
-iz1klī
-ug1sto
-az1pro
-āj1sla
-en1tne
-ul1sti
-at1kre
-ār1sva
-ār1šķe
-iz1kļū
-ap1slu
-il1zka
-ek1šme
-am1pšo
-ūr1sko
-uz1grā
-es1grā
-ap1šņu
-ir1kļa
-ur1lmē
-el1dfē
-az1dru
-at1rpu
-um1stu
-es1grī
-iz1kna
-as1smē
-ur1spī
-eņ1skā
-ār1slē
-udz1vī
-un1dru
-ar1ska
-eņ1tra
-am1pli
-uz1kli
-ul1gtu
-ēk1brū
-us1dzī
-ap1stā
-ar1kšu
-es1kra
-iz1brā
-ir1sta
-ar1gce
-em1ptu
-ur1ste
-ār1dru
-uz1pļa
-at1glū
-ad1skā
-ov1skā
-ak1stā
-ēr1zga
-ir1mga
-in1gtu
-īdz1te
-ār1drī
-am1bra
-īk1šķu
-ur1gsi
-ab1sci
-on1dri
-il1pju
-āp1jve
-ar1gbū
-ul1gšu
-ār1dva
-ār1tno
-ap1plo
-as1tka
-il1gšo
-iz1ska
-ār1dni
-ap1dva
-īk1snā
-ap1blā
-as1pļa
-ap1kre
-al1pre
-em1pšo
-ap1tru
-ak1stī
-el1sku
-ak1ņve
-ak1špa
-aļ1ska
-ūr1sta
-at1bļā
-in1gve
-at1hlo
-ig1frī
-ok1snē
-ār1gri
-ak1šķi
-āt1sna
-ul1tsi
-as1tni
-ir1sto
-an1sfo
-ek1šla
-ul1tzo
-ob1spi
-os1pri
-el1bri
-ār1žvī
-at1blī
-ot1rti
-il1gsi
-uz1zvē
-in1spe
-ir1ptu
-ag1sva
-iz1kli
-ok1sni
-el1gra
-um1spē
-ūp1sti
-ak1stē
-ur1kta
-an1dri
-ir1pto
-iz1pli
-īv1drē
-ar1pzo
-ur1bti
-ul1šņi
-at1blē
-og1ļra
-iz1sle
-il1pro
-il1gto
-eļ1tra
-iz1slē
-ār1kve
-ur1btā
-ār1frā
-al1tla
-ur1pmā
-ēr1ksi
-al1ksi
-ir1kņo
-in1sra
-em1blē
-ib1sta
-in1sci
-ur1ktu
-iz1šķū
-an1tni
-ām1glā
-ur1zva
-īk1šķē
-up1rla
-il1nga
-il1gla
-ēk1šņa
-en1prā
-uk1špa
-at1pļa
-iz1šķī
-ār1gšu
-ir1gša
-ul1dzē
-an1kku
-ul1tni
-un1dzē
-ap1sma
-er1sti
-el1ztu
-ir1gko
-im1tre
-us1sna
-ūk1šķu
-ik1tni
-at1brē
-as1kra
-an1dža
-am1plī
-ar1kša
-ap1spe
-an1ska
-ih1svē
-od1sli
-ēr1pšu
-ar1gre
-am1sto
-ān1ska
-or1tvī
-at1svā
-uz1šķū
-ūr1sto
-in1sce
-ud1spi
-udz1ga
-al1snā
-āg1stu
-al1tro
-at1šta
-at1kļū
-udz1vi
-ap1slo
-ap1gre
-iz1šņo
-ug1stu
-im1sti
-up1stu
-ur1stī
-os1kra
-ir1ska
-og1ļde
-um1dzi
-in1kvi
-ed1kļū
-ul1tra
-iz1sko
-el1gtā
-ur1gtā
-iz1pļē
-ap1smu
-er1stī
-āt1ršu
-ok1šņu
-ap1šķa
-āt1dzī
-at1tro
-at1brī
-al1sta
-udz1ru
-ar1gtē
-in1sta
-iņ1ķve
-at1kri
-al1snu
-iz1zvē
-iz1klu
-in1hro
-ir1ptā
-as1kvi
-ur1spi
-iz1kvē
-ār1skā
-ir1gtu
-āp1sta
-uz1bru
-ed1krā
-et1sta
-al1vga
-am1pša
-ar1pga
-uz1sla
-at1šķī
-at1dži
-ār1kļū
-ār1šro
-eņ1bra
-īk1gru
-ār1klā
-ak1ņko
-od1prā
-at1klī
-iz1stē
-ār1žņa
-at1tri
-ik1stū
-ek1šzī
-ār1kni
-ār1pre
-ap1klā
-ul1gta
-ēr1pjo
-ār1gsi
-iz1šņa
-iz1gle
-ēr1bjo
-is1stū
-eļ1drā
-ik1ste
-ēr1nga
-ap1tve
-uz1skā
-ap1knā
-ik1snī
-am1ble
-ek1stā
-ol1fga
-em1bri
-uz1spī
-el1dma
-iz1slo
-ar1gkā
-iz1svī
-ūg1kri
-un1kti
-er1pre
-uz1švī
-ap1dzī
-iz1spī
-ek1tda
-ēr1dze
-il1ska
-ār1tnu
-ur1bša
-ap1tra
-ap1dze
-an1ste
-in1ktū
-er1ztu
-as1pru
-en1sca
-uz1svā
-il1dmē
-ik1sni
-ār1brē
-āk1sto
-āk1slu
-ap1bri
-ap1stē
-iz1sti
-ap1pļa
-ār1šta
-īk1sne
-un1tra
-ok1šķi
-ūs1tni
-ok1trī
-iz1glā
-om1ple
-ār1kri
-uv1bra
-īv1stu
-āt1rgā
-ār1pļa
-uz1klī
-uz1slo
-at1gre
-eļ1bri
-as1prā
-ig1žņa
-ēr1glē
-ūr1sti
-īv1sva
-ah1tve
-ūk1sne
-et1rsi
-uz1špa
-an1dze
-um1pra
-er1plē
-iņ1sti
-at1drī
-at1dva
-in1tnī
-in1gvi
-al1šķī
-ap1slē
-id1plē
-il1nva
-uz1glū
-iz1švi
-udz1pu
-or1tli
-in1kri
-ap1pri
-em1dvi
-ār1drā
-as1tro
-ar1dze
-āk1sni
-uz1ski
-as1tva
-um1sve
-ār1gdi
-ik1sto
-os1pre
-at1frā
-el1dre
-il1dva
-ug1prā
-ul1stī
-uz1svi
-ur1tda
-ār1slu
-ūp1stā
-ez1glu
-īļ1knā
-an1cle
-ūp1stu
-ec1svi
-ak1šķe
-ir1dzī
-uz1dze
-āl1spē
-ij1dro
-ār1kla
-im1sli
-ap1bli
-il1sru
-on1skā
-uz1spi
-ul1dze
-ik1šķo
-us1krū
-ek1stī
-ek1šro
-it1bri
-as1pri
-ik1šķu
-or1tku
-at1kni
-is1mju
-im1stu
-ez1prā
-at1sli
-ur1vma
-om1sta
-er1sta
-ot1rpu
-es1pra
-uz1gre
-at1šķē
-ur1dzi
-ūk1ste
-ap1smi
-ār1stu
-an1skā
-ūr1stē
-ur1zmi
-ār1krē
-er1sma
-at1šņu
-od1sko
-im1pre
-al1snē
-ap1dza
-iz1pļa
-il1krū
-at1spe
-uz1krā
-in1tra
-at1šķi
-at1bro
-el1tga
-in1tro
-on1tda
-ak1šķa
-as1tna
-ir1ski
-aļ1stu
-os1kni
-ēr1tni
-ār1trū
-er1zta
-ir1zma
-iz1knu
-ar1gku
-eļ1gle
-iz1dzē
-ap1sti
-os1trā
-uz1šķi
-os1tru
-ir1kļu
-es1brā
-ar1sto
-ap1grā
-us1tme
-iz1ski
-in1sva
-um1sko
-un1kni
-at1kvi
-uk1stī
-ap1pli
-ot1plā
-et1rmo
-el1djo
-ub1sta
-uz1sni
-iz1dze
-ul1gšo
-am1pjo
-uz1dre
-ar1pni
-is1mmī
-al1dzī
-iz1žvī
-ar1bmū
-at1spo
-al1šķi
-uz1kvē
-al1kti
-udz1re
-ār1spī
-iz1kra
-et1rre
-ab1sto
-uz1slu
-ār1plē
-us1ttē
-ur1sta
-iz1gri
-ot1rto
-en1sti
-āv1grū
-ār1tva
-un1slī
-on1gre
-ēk1sne
-ir1kni
-el1dpū
-av1grī
-or1tjē
-īk1smā
-īdz1ju
-es1smē
-iz1spo
-iz1brī
-um1bve
-is1kva
-īg1ļla
-īs1stū
-im1tkā
-ār1gme
-ār1ble
-āč1plē
-ēr1zci
-ēp1sta
-el1drā
-ak1šķu
-al1nga
-uk1šķē
-ir1ktā
-od1ska
-īk1sto
-ir1spe
-ir1pšo
-ēj1spē
-at1hro
-id1smi
-on1tra
-at1gve
-il1dķe
-in1sku
-el1dtī
-ek1šķi
-uz1kre
-ap1zvē
-ār1ska
-ān1sve
-udz1vā
-iz1ste
-uz1pla
-an1cka
-ež1frē
-in1gša
-ap1hro
-in1gtī
-ir1mdi
-ir1mva
-ap1svi
-uz1dzī
-uz1pro
-ēr1sna
-ap1dro
-uz1blo
-al1tva
-ek1šsē
-udz1ve
-ih1stā
-uz1gra
-ēd1dzi
-ar1psi
-ār1dri
-at1klā
-iz1tve
-ār1sle
-ul1gša
-al1tvī
-ēr1ļve
-ir1mzi
-at1dra
-os1pļa
-ir1kto
-el1nga
-ēl1spi
-ap1gru
-ēr1bti
-us1pli
-ik1sma
-ār1slī
-ol1ska
-īt1ska
-ap1dži
-ur1tnī
-uz1dzi
-ār1šmī
-odz1ni
-ar1gda
-at1ski
-uz1dzē
-el1tli
-ov1ski
-el1ztā
-at1blā
-ar1dzī
-is1trā
-as1tra
-en1svī
-on1krē
-ur1gta
-en1tmē
-ār1kru
-un1dri
-ār1gla
-el1pva
-as1pro
-is1pri
-iz1plū
-il1dko
-ār1šļi
-ar1tne
-us1tne
-at1kna
-at1kra
-at1spi
-ēr1ptā
-īk1sta
-in1grī
-ed1spi
-op1stu
-um1šsa
-ap1pre
-ap1trū
-ār1šķa
-at1brū
-um1šķi
-el1stu
-al1sto
-uz1kļa
-al1nze
-at1gru
-on1fro
-at1kla
-ap1brū
-ir1mtē
-īdz1nā
-uz1šmī
-ap1gra
-ak1šze
-ap1blī
-an1kno
-il1skā
-ir1ktu
-ēt1spē
-al1vni
-ar1gri
-uz1kle
-ul1sto
-es1krū
-iz1pļā
-uz1plo
-at1šļi
-ug1šma
-ec1sla
-īg1sto
-uz1blē
-ib1sti
-en1sto
-in1kli
-ir1dzi
-ug1zna
-in1gro
-as1prū
-ež1gra
-iz1kre
-eg1slā
-ām1grā
-ig1znā
-am1fle
-ir1pša
-eg1smi
-uz1šķa
-ap1šķē
-ug1sti
-al1ste
-al1nci
-em1mvi
-īdz1ti
-ik1sno
-ār1svē
-et1rkā
-ul1gtā
-at1spē
-ār1sto
-il1šmā
-et1rti
-ar1dzē
-er1cko
-ar1sta
-ēr1bša
-āj1gle
-am1pja
-uz1dva
-ot1rkā
-ak1šma
-uz1plē
-ak1špu
-ār1bļā
-ir1gtā
-ik1šķē
-uz1zva
-al1stī
-os1kle
-ār1ste
-ug1šžo
-ēr1tne
-iz1dva
-is1tru
-ek1šku
-ap1skā
-ar1gti
-ar1gvi
-uz1smi
-im1pto
-ār1ski
-ār1plū
-uļ1ska
-ib1snī
-iz1šķi
-ap1ski
-un1sbī
-ep1stē
-us1sko
-at1zvē
-at1sti
-el1dzo
-īk1smē
-an1sku
-um1sla
-uz1šma
-ap1žņa
-ek1šze
-uz1kri
-ir1mmā
-an1čka
-ēg1sta
-at1kro
-et1rrā
-uz1knā
-uz1stā
-ap1drī
-ez1glo
-at1ple
-ar1šļa
-ug1šņu
-ār1kli
-ot1rzi
-al1kvī
-is1tra
-ib1stā
-or1dni
-el1dpa
-in1gpo
-ul1sla
-uz1tve
-el1tta
-ap1plē
-uz1šņa
-ār1sta
-os1tbi
-ār1gle
-og1ļrū
-er1stu
-iz1plo
-ūv1bri
-ēl1spu
-iz1sli
-ap1plu
-um1sti
-uk1švā
-us1tra
-uz1dži
-ēr1npa
-el1pjo
-et1kre
-āb1slē
-ik1lķe
-an1spo
-im1tku
-ok1gre
-iļ1ska
-an1tku
-an1sjē
-il1pša
-ūk1snā
-āl1szā
-ol1sto
-us1trē
-ij1krē
-an1flo
-ap1glā
-āl1svi
-at1slo
-ur1bjo
-el1sme
-at1smē
-op1dzī
-ūg1stu
-al1tra
-er1tne
-at1švi
-os1trē
-ez1drā
-ur1gša
-en1spo
-ov1ska
-il1ktu
-es1tre
-iz1dve
-ār1smē
-at1gra
-āg1sta
-ūv1gri
-as1tmā
-in1flā
-oņ1stū
-ār1klu
-el1tne
-ak1sta
-ār1dko
-ār1kvē
-an1tro
-at1kru
-ap1sto
-il1pta
-edz1ni
-is1pro
-īr1gro
-udz1si
-em1bra
-ār1zko
-ul1šņā
-us1sti
-ēk1šķi
-udz1vē
-um1tni
-ar1stu
-ap1kle
-īk1smu
-up1sta
-īk1sma
-ār1zva
-ab1rka
-ēdz1ni
-āb1stā
-ēr1kli
-en1tro
-ār1plī
-il1gšu
-ap1kvē
-as1tre
-ak1ste
-ek1šķa
-āt1rmo
-an1sce
-in1sde
-iz1kru
-ap1šļā
-at1bre
-on1sta
-ēr1zla
-el1gša
-ām1bra
-el1dzi
-uz1dru
-udz1di
-ap1brā
-ar1kta
-eņ1sla
-ar1švi
-iz1smi
-ir1vja
-en1gri
-ar1kšo
-uz1drī
-ul1sta
-ek1sme
-ār1šņa
-ār1zni
-ār1tro
-ap1kli
-ār1svi
-ēr1stē
-īk1stī
-et1rtū
-īdz1ci
-ur1tli
-ek1sto
-im1tsa
-us1brā
-uk1šķo
-ir1zta
-ār1stū
-un1ktu
-ēr1mju
-īk1šķa
-ur1kli
-uz1fli
-ap1plū
-il1dzi
-ap1dre
-az1sva
-ug1ļla
-at1stī
-iz1plu
-uz1tro
-is1sli
-iž1skā
-ir1gšo
-en1ktā
-ār1gta
-iz1bli
-ār1smī
-im1brī
-ār1dzē
-ār1svī
-ek1spa
-īdz1ko
-uz1svē
-at1plo
-or1tla
-ab1prā
-ir1tne
-ūk1slā
-iz1sve
-et1plā
-ir1sva
-il1bti
-uz1brū
-īt1spē
-uz1šķē
-udz1no
-at1slā
-iz1blā
-es1tdi
-us1zvi
-is1kri
-ēl1slē
-ob1sku
-ēk1šņi
-ul1šņu
-on1tro
-il1stī
-iz1bra
-ur1pni
-al1dsē
-im1ttū
-is1spē
-es1tme
-in1gvī
-ug1špu
-ir1dne
-iļ1ņla
-ap1sta
-ik1smi
-ad1grā
-iz1spē
-il1gtā
-iz1sva
-il1nbā
-im1stā
-ak1šve
-uz1pra
-uz1grū
-ār1skū
-iz1bru
-us1tsē
-ug1snē
-ār1dzo
-in1tni
-ig1sti
-er1gtu
-en1tru
-as1krū
-ār1slā
-ap1tvē
-el1sti
-il1sto
-il1dra
-ot1rga
-ur1kņu
-ap1bra
-er1tzā
-at1stā
-er1cli
-ēr1bšu
-uz1stē
-ap1plā
-an1gvi
-uz1šļi
-uz1blā
-ed1rvi
-as1tla
-iz1stu
-ot1spē
-us1pro
-im1tda
-am1krē
-op1pro
-ig1žņo
-at1bļa
-ap1kni
-iz1sma
-iz1grū
-an1dpu
-īv1prā
-ur1stu
-ar1stī
-ig1zne
-ūk1sta
-āj1sko
-ek1ška
-ub1sti
-ur1dze
-iz1hro
-ap1šma
-ap1spa
-ār1stē
-ib1stu
-at1smī
-im1sta
-il1ksi
-ar1ndo
-on1kre
-es1krē
-āl1plā
-uk1sma
-in1gri
-um1pro
-uz1dra
-ār1pla
-ār1plu
-at1ste
-el1gta
-en1gru
-il1tze
-ār1pri
-iz1krī
-at1krē
-es1prū
-is1svē
-ār1švi
-ār1knu
-en1ktu
-ap1tre
-iz1kņū
-ul1gsi
-in1dri
-iz1drī
-ek1ste
-aļ1ķne
-uz1spē
-os1tma
-ug1sni
-at1grē
-al1sni
-ur1nga
-ip1frū
-ēr1sko
-at1stē
-ēr1gli
-ol1fra
-at1gro
-un1kci
-ār1kņu
-iz1sku
-ek1sce
-ap1sla
-at1slē
-ap1šta
-ap1šļu
-es1tri
-uz1plu
-ār1bli
-ār1grā
-uz1sto
-il1tra
-in1gru
-ūk1sni
-en1szā
-os1prā
-āp1jvī
-ār1tnē
-il1ptu
-um1šza
-is1kre
-is1krē
-ul1gti
-um1dzī
-ek1špu
-ur1zni
-uz1dro
-us1tve
-ās1trā
-ūg1sta
-ap1brē
-er1vje
-iz1grē
-ar1gmu
-at1dru
-ap1kļa
-ap1spi
-ap1bre
-el1pto
-ār1tvē
-al1kšo
-uk1sme
-el1dzē
-il1kme
-ēn1skā
-ir1gšu
-il1sti
-ir1dsa
-ir1slī
-at1smi
-ār1šķo
-ar1spa
-al1dse
-uz1knu
-ar1gpo
-iz1šļa
-at1šķa
-ār1šņu
-uz1sve
-an1stē
-ek1trā
-ār1glu
-ur1vju
-oņ1sti
-at1drā
-iļ1pro
-iz1tva
-iz1trā
-ap1spā
-om1pli
-ak1stu
-ap1spu
-ek1tdi
-ok1ste
-er1gra
-am1bre
-uz1bļa
-us1gra
-el1gru
-am1sta
-at1sko
-īb1stu
-ek1tri
-el1mla
-an1sve
-at1skā
-un1dzī
-īk1gra
-ap1ska
-in1dko
-al1ktu
-ul1dzu
-es1trā
-at1spī
-ol1dla
-at1šķe
-eņ1ple
-os1tla
-ik1stā
-ap1švī
-uz1prā
-ap1kro
-ūt1smē
-is1gri
-em1pšu
-iz1bļa
-ir1mno
-ap1spī
-ēr1kti
-al1gme
-ed1svi
-is1bri
-un1sne
-en1svi
-uz1kve
-ār1gro
-er1stā
-uz1šķe
-eļ1krū
-od1rpa
-īv1grā
-et1rba
-un1sku
-ār1tmē
-āb1stī
-il1pjo
-iz1stā
-uz1žvī
-uz1šķī
-is1tko
-os1pra
-el1gtu
-ad1smi
-om1kra
-ut1sva
-il1pti
-ug1pre
-un1kte
-il1gru
-ār1šķū
-ez1gli
-iv1spē
-er1dlo
-āt1ršā
-ēj1grā
-ur1dzo
-en1trā
-ap1bļa
-ēr1tņu
-em1dni
-in1ksa
-āl1šķē
-uz1hro
-iv1sto
-et1rjū
-uļ1glu
-ir1psi
-el1zce
-um1slē
-at1gri
-el1ptu
-uk1stā
-at1pra
-ar1gjo
-uz1tva
-uz1sko
-iz1stī
-el1sto
-ap1pra
-ov1sku
-ar1šru
-ēp1sto
-at1krā
-ir1ksi
-ok1šķe
-iz1šļā
-iz1dra
-il1ptā
-il1dsē
-in1gta
-ūp1sta
-ug1ļko
-ar1džu
-iz1krā
-ul1dzī
-ur1stā
-ārg1sti
-ilg1sto
-akt1spo
-alt1gva
-ark1sta
-ugs1tlē
-uzs1pļa
-ald1skā
-ins1grē
-izs1prū
-ilk1tni
-urb1sti
-ezg1lve
-arp1pro
-irk1sni
-eld1plē
-ird1spu
-ilp1stu
-īns1trā
-ārs1kra
-ird1smi
-eln1svā
-irp1sti
-ārg1stu
-ens1sta
-ugš1sti
-irk1sti
-ilg1sta
-als1tpu
-ārd1dzi
-irm1dzi
-abs1tra
-umš1brū
-arb1spē
-ils1blī
-urs1krū
-izs1pra
-urb1stu
-udz1šķa
-uzs1kra
-aps1pre
-ins1gru
-ens1bla
-ārs1pra
-arg1krā
-ilk1tne
-ens1tru
-ulk1ste
-upj1gra
-unk1šķi
-urk1sta
-aps1krē
-irs1drē
-ērt1sli
-obs1tru
-ērt1ssū
-ast1sko
-ird1ska
-irg1sto
-ord1zni
-aks1tve
-ikt1stē
-uzs1pre
-izs1pro
-ilt1stē
-uzs1prā
-eks1tko
-alk1stī
-īdz1pro
-ens1dro
-irg1stu
-ing1sto
-izs1kra
-ink1stē
-alk1šķi
-ātr1sli
-ild1spa
-āls1tre
-alk1sto
-ubs1trā
-aps1tru
-ērk1šķa
-izs1trī
-ats1krē
-ārs1trī
-alk1stu
-uss1kri
-izs1pre
-ent1lme
-irg1zda
-ilb1sti
-eks1tre
-aps1pra
-ilk1sti
-unt1szi
-uzs1pro
-eks1klu
-iss1pri
-aps1trī
-ulb1sto
-urk1sti
-aps1pro
-aht1klu
-āls1sta
-ens1krā
-ilt1smā
-eks1pre
-uzs1tru
-aps1prā
-etr1kla
-uzs1pri
-īks1tmē
-eld1spē
-apj1dra
-ist1hre
-ids1krē
-irs1plā
-irs1stu
-unk1stē
-ilk1sni
-ink1šķi
-ird1smī
-irs1kre
-īdz1ska
-alk1snā
-īks1tsi
-izs1tru
-ars1tda
-unt1sno
-ēst1gri
-uzs1tre
-urk1sto
-uns1dro
-ulg1sto
-ātr1spi
-ilg1spē
-erc1sko
-ilb1sto
-āls1skā
-ens1krū
-aps1tri
-ilk1tnē
-udr1skā
-urb1jma
-ats1pra
-ird1sli
-izs1trā
-ekš1ņnī
-ind1sta
-aps1kra
-ērk1stu
-iln1bri
-uzs1pra
-udz1pla
-ilb1stu
-izs1kri
-ilk1stu
-irp1sta
-eks1trē
-ugs1tka
-ult1zva
-ātr1gri
-ink1šķo
-urk1šķa
-ulb1sti
-uzs1trā
-aps1trā
-irk1stī
-ulb1stu
-unk1tsi
-ons1trē
-īgt1spē
-ark1stu
-ilk1sto
-ark1šķo
-alt1kvē
-uns1dzē
-irk1stē
-ild1krē
-ink1sli
-urs1trā
-unk1sto
-ilk1stē
-ārg1sto
-akt1sgu
-ert1bri
-ilg1sti
-ērt1svē
-ērs1gri
-aps1trē
-eņs1krā
-amp1stu
-ats1trā
-ilp1sti
-ežs1trā
-erk1šķi
-eln1pla
-urk1sni
-akt1svi
-ens1dzi
-irg1sti
-ark1šķu
-ess1krā
-irk1sto
-unt1sma
-isn1gri
-alk1sne
-ild1pla
-udz1ska
-ārs1tru
-uzs1krū
-ink1šķē
-ērs1svī
-ērk1šķo
-īks1tpi
-ilt1rpa
-ātr1bra
-urk1stu
-ārs1pro
-als1sti
-eks1plo
-amp1sto
-izs1tre
-ang1ste
-irg1sta
-izs1krē
-ātr1spē
-ust1knā
-ark1šķē
-ark1šķi
-ārs1prā
-aps1prū
-ilp1sto
-īgs1trā
-ont1rre
-akt1sde
-ats1tre
-uzs1trī
-aps1pļa
-urk1šķi
-urk1ste
-ink1stu
-ājs1trā
-ats1pļa
-ērk1šķi
-etr1stū
-ink1sta
-ans1kri
-eks1pro
-ald1drā
-ārp1sta
-urb1sta
-unk1šķē
-akt1sda
-akt1spu
-alk1sni
-ārg1sta
-āls1tra
-āls1ste
-irg1zde
-āgs1tvi
-ird1zni
-irt1sku
-ons1trā
-ērk1sta
-ilp1sta
-isn1stū
-elk1sni
-ilt1sko
-ats1prū
-urk1šķu
-ars1tga
-ugs1tro
-ens1šķi
-ing1sti
-ads1krū
-els1tra
-ark1šķa
-ark1sto
-ant1sbe
-ink1šķa
-unk1sti
-ird1sde
-ink1sti
-ans1pla
-ugs1tra
-ats1pre
-irk1šķi
-irp1stu
-ils1dru
-als1tni
-ats1tru
-ins1tru
-anž1dze
-īks1pro
-amp1sti
-ars1tvī
-ugš1stā
-anc1spē
-ark1sti
-unk1sta
-irm1ska
-akt1smī
-ulg1stu
-amp1sta
-eks1trī
-unk1šķo
-urk1stē
-elz1szā
-ārs1tre
-ens1kri
-ink1šķe
-uks1trā
-ink1sto
-ult1spū
-elt1spē
-ats1pri
-ild1spē
-uzs1prū
-eks1tro
-egl1prā
-irp1sto
-alt1kri
-akņ1gra
-ārs1lve
-ārs1pļa
-udz1stū
-urb1sto
-aps1tre
-ugs1tvē
-ekļ1skā
-unk1šķa
-isn1prā
-ats1tri
-ākļ1stā
-udz1krā
-imt1pro
-ing1sta
-eks1plu
-akt1spa
-ilk1sta
-alk1šņa
-ats1prā
-īks1tča
-ent1rti
-ērk1sti
-irg1spē
-ikt1spē
-izs1prā
-akt1smi
-izs1krū
-unk1stu
-ats1krū
-ārs1pri
-unk1šķu
-ult1spē
-unt1sga
-ugs1tsi
-izs1pri
-ārs1krū
-aps1krū
-ārk1sti
-izs1pļa
-ars1tpu
-ērk1ste
-uzs1tri
-ulb1sta
-izs1tri
-ons1tru
-irs1svā
-ats1trī
-ārs1krē
-akt1ssa
-eks1tra
-akt1slo
-urk1šķo
-ing1stu
-ult1kva
-ust1spo
-ītņ1gri
-ežs1krū
-irm1sle
-irk1sta
-urk1šķē
-ort1pre
-ekš1ņla
-iņs1trā
-alk1sta
-irk1stu
-emm1dzi
-irg1zdā
-irm1kla
-aks1tni
-ons1tra
-ink1šķu
-ats1kra
-ind1rve
-akt1sja
-ens1blu
-aļķ1špa
-ult1sva
-ogļ1skā
-ārk1sta
-ulg1sti
-ērk1sto
-ird1sdā
-ugs1tce
-uns1grē
-ult1pla
-irš1krā
-egt1spē
-ārs1tni
-ats1pro
-akt1sla
-ārs1tri
-ilg1stu
-īdz1sva
-uzs1krē
-oks1krū
-ārt1sta
-ilb1sta
-alk1sti
-oks1tro
-ekš1dzi
-ent1rbē
-iln1ska
-irm1šķi
-ārs1trā
-aps1pri
-ons1krē
-ārs1pre
-irk1ste
-ird1slē
-ulg1sta
-akš1svā
-alt1bri
-ārs1prū
-.jā1s2p
-.ne1s2p
-.ie1s2p
-.no1s2p
-.pa1s2p
-.pie1s2p
-.sa1s2p
-.uz1s2p
-.aiz1s2p
-.ap1s2p
-.at1s2p
-.bez1s2p
-.pār1s2p
-.iz1s2p
-.eks1s2p
-.vis1s2p
-.jā1t2r
-.ne1t2r
-.ie1t2r
-.no1t2r
-.pa1t2r
-.pie1t2r
-.sa1t2r
-.uz1t2r
-.aiz1t2r
-.ap1t2r
-.at1t2r
-.bez1t2r
-.pār1t2r
-.iz1t2r
-.eks1t2r
-.vis1t2r
-.jā1s2c
-.ne1s2c
-.ie1s2c
-.no1s2c
-.pa1s2c
-.pie1s2c
-.sa1s2c
-.uz1s2c
-.aiz1s2c
-.ap1s2c
-.at1s2c
-.bez1s2c
-.pār1s2c
-.iz1s2c
-.eks1s2c
-.vis1s2c
-.jā1s2tj
-.ne1s2tj
-.ie1s2tj
-.no1s2tj
-.pa1s2tj
-.pie1s2tj
-.sa1s2tj
-.uz1s2tj
-.aiz1s2tj
-.ap1s2tj
-.at1s2tj
-.bez1s2tj
-.pār1s2tj
-.iz1s2tj
-.eks1s2tj
-.vis1s2tj
-.jā1g2l
-.ne1g2l
-.ie1g2l
-.no1g2l
-.pa1g2l
-.pie1g2l
-.sa1g2l
-.uz1g2l
-.aiz1g2l
-.ap1g2l
-.at1g2l
-.bez1g2l
-.pār1g2l
-.iz1g2l
-.eks1g2l
-.vis1g2l
-.jā1ž2v
-.ne1ž2v
-.ie1ž2v
-.no1ž2v
-.pa1ž2v
-.pie1ž2v
-.sa1ž2v
-.uz1ž2v
-.aiz1ž2v
-.ap1ž2v
-.at1ž2v
-.bez1ž2v
-.pār1ž2v
-.iz1ž2v
-.eks1ž2v
-.vis1ž2v
-.jā1š2ļ
-.ne1š2ļ
-.ie1š2ļ
-.no1š2ļ
-.pa1š2ļ
-.pie1š2ļ
-.sa1š2ļ
-.uz1š2ļ
-.aiz1š2ļ
-.ap1š2ļ
-.at1š2ļ
-.bez1š2ļ
-.pār1š2ļ
-.iz1š2ļ
-.eks1š2ļ
-.vis1š2ļ
-.jā1s2f
-.ne1s2f
-.ie1s2f
-.no1s2f
-.pa1s2f
-.pie1s2f
-.sa1s2f
-.uz1s2f
-.aiz1s2f
-.ap1s2f
-.at1s2f
-.bez1s2f
-.pār1s2f
-.iz1s2f
-.eks1s2f
-.vis1s2f
-.jā1š2t
-.ne1š2t
-.ie1š2t
-.no1š2t
-.pa1š2t
-.pie1š2t
-.sa1š2t
-.uz1š2t
-.aiz1š2t
-.ap1š2t
-.at1š2t
-.bez1š2t
-.pār1š2t
-.iz1š2t
-.eks1š2t
-.vis1š2t
-.jā1s2tr
-.ne1s2tr
-.ie1s2tr
-.no1s2tr
-.pa1s2tr
-.pie1s2tr
-.sa1s2tr
-.uz1s2tr
-.aiz1s2tr
-.ap1s2tr
-.at1s2tr
-.bez1s2tr
-.pār1s2tr
-.iz1s2tr
-.eks1s2tr
-.vis1s2tr
-.jā1b2r
-.ne1b2r
-.ie1b2r
-.no1b2r
-.pa1b2r
-.pie1b2r
-.sa1b2r
-.uz1b2r
-.aiz1b2r
-.ap1b2r
-.at1b2r
-.bez1b2r
-.pār1b2r
-.iz1b2r
-.eks1b2r
-.vis1b2r
-.jā1š2r
-.ne1š2r
-.ie1š2r
-.no1š2r
-.pa1š2r
-.pie1š2r
-.sa1š2r
-.uz1š2r
-.aiz1š2r
-.ap1š2r
-.at1š2r
-.bez1š2r
-.pār1š2r
-.iz1š2r
-.eks1š2r
-.vis1š2r
-.jā1š2v
-.ne1š2v
-.ie1š2v
-.no1š2v
-.pa1š2v
-.pie1š2v
-.sa1š2v
-.uz1š2v
-.aiz1š2v
-.ap1š2v
-.at1š2v
-.bez1š2v
-.pār1š2v
-.iz1š2v
-.eks1š2v
-.vis1š2v
-.jā1s2t
-.ne1s2t
-.ie1s2t
-.no1s2t
-.pa1s2t
-.pie1s2t
-.sa1s2t
-.uz1s2t
-.aiz1s2t
-.ap1s2t
-.at1s2t
-.bez1s2t
-.pār1s2t
-.iz1s2t
-.eks1s2t
-.vis1s2t
-.jā1p2r
-.ne1p2r
-.ie1p2r
-.no1p2r
-.pa1p2r
-.pie1p2r
-.sa1p2r
-.uz1p2r
-.aiz1p2r
-.ap1p2r
-.at1p2r
-.bez1p2r
-.pār1p2r
-.iz1p2r
-.eks1p2r
-.vis1p2r
-.jā1g2ļ
-.ne1g2ļ
-.ie1g2ļ
-.no1g2ļ
-.pa1g2ļ
-.pie1g2ļ
-.sa1g2ļ
-.uz1g2ļ
-.aiz1g2ļ
-.ap1g2ļ
-.at1g2ļ
-.bez1g2ļ
-.pār1g2ļ
-.iz1g2ļ
-.eks1g2ļ
-.vis1g2ļ
-.jā1š2k
-.ne1š2k
-.ie1š2k
-.no1š2k
-.pa1š2k
-.pie1š2k
-.sa1š2k
-.uz1š2k
-.aiz1š2k
-.ap1š2k
-.at1š2k
-.bez1š2k
-.pār1š2k
-.iz1š2k
-.eks1š2k
-.vis1š2k
-.jā1p2s
-.ne1p2s
-.ie1p2s
-.no1p2s
-.pa1p2s
-.pie1p2s
-.sa1p2s
-.uz1p2s
-.aiz1p2s
-.ap1p2s
-.at1p2s
-.bez1p2s
-.pār1p2s
-.iz1p2s
-.eks1p2s
-.vis1p2s
-.jā1k2l
-.ne1k2l
-.ie1k2l
-.no1k2l
-.pa1k2l
-.pie1k2l
-.sa1k2l
-.uz1k2l
-.aiz1k2l
-.ap1k2l
-.at1k2l
-.bez1k2l
-.pār1k2l
-.iz1k2l
-.eks1k2l
-.vis1k2l
-.jā1g2r
-.ne1g2r
-.ie1g2r
-.no1g2r
-.pa1g2r
-.pie1g2r
-.sa1g2r
-.uz1g2r
-.aiz1g2r
-.ap1g2r
-.at1g2r
-.bez1g2r
-.pār1g2r
-.iz1g2r
-.eks1g2r
-.vis1g2r
-.jā1š2ķ
-.ne1š2ķ
-.ie1š2ķ
-.no1š2ķ
-.pa1š2ķ
-.pie1š2ķ
-.sa1š2ķ
-.uz1š2ķ
-.aiz1š2ķ
-.ap1š2ķ
-.at1š2ķ
-.bez1š2ķ
-.pār1š2ķ
-.iz1š2ķ
-.eks1š2ķ
-.vis1š2ķ
-.jā1p2n
-.ne1p2n
-.ie1p2n
-.no1p2n
-.pa1p2n
-.pie1p2n
-.sa1p2n
-.uz1p2n
-.aiz1p2n
-.ap1p2n
-.at1p2n
-.bez1p2n
-.pār1p2n
-.iz1p2n
-.eks1p2n
-.vis1p2n
-.jā1s2v
-.ne1s2v
-.ie1s2v
-.no1s2v
-.pa1s2v
-.pie1s2v
-.sa1s2v
-.uz1s2v
-.aiz1s2v
-.ap1s2v
-.at1s2v
-.bez1s2v
-.pār1s2v
-.iz1s2v
-.eks1s2v
-.vis1s2v
-.jā1s2pr
-.ne1s2pr
-.ie1s2pr
-.no1s2pr
-.pa1s2pr
-.pie1s2pr
-.sa1s2pr
-.uz1s2pr
-.aiz1s2pr
-.ap1s2pr
-.at1s2pr
-.bez1s2pr
-.pār1s2pr
-.iz1s2pr
-.eks1s2pr
-.vis1s2pr
-.jā1d2r
-.ne1d2r
-.ie1d2r
-.no1d2r
-.pa1d2r
-.pie1d2r
-.sa1d2r
-.uz1d2r
-.aiz1d2r
-.ap1d2r
-.at1d2r
-.bez1d2r
-.pār1d2r
-.iz1d2r
-.eks1d2r
-.vis1d2r
-.jā1p2l
-.ne1p2l
-.ie1p2l
-.no1p2l
-.pa1p2l
-.pie1p2l
-.sa1p2l
-.uz1p2l
-.aiz1p2l
-.ap1p2l
-.at1p2l
-.bez1p2l
-.pār1p2l
-.iz1p2l
-.eks1p2l
-.vis1p2l
-.jā1d2v
-.ne1d2v
-.ie1d2v
-.no1d2v
-.pa1d2v
-.pie1d2v
-.sa1d2v
-.uz1d2v
-.aiz1d2v
-.ap1d2v
-.at1d2v
-.bez1d2v
-.pār1d2v
-.iz1d2v
-.eks1d2v
-.vis1d2v
-.jā1š2l
-.ne1š2l
-.ie1š2l
-.no1š2l
-.pa1š2l
-.pie1š2l
-.sa1š2l
-.uz1š2l
-.aiz1š2l
-.ap1š2l
-.at1š2l
-.bez1š2l
-.pār1š2l
-.iz1š2l
-.eks1š2l
-.vis1š2l
-.jā1s2k
-.ne1s2k
-.ie1s2k
-.no1s2k
-.pa1s2k
-.pie1s2k
-.sa1s2k
-.uz1s2k
-.aiz1s2k
-.ap1s2k
-.at1s2k
-.bez1s2k
-.pār1s2k
-.iz1s2k
-.eks1s2k
-.vis1s2k
-.jā1s2kv
-.ne1s2kv
-.ie1s2kv
-.no1s2kv
-.pa1s2kv
-.pie1s2kv
-.sa1s2kv
-.uz1s2kv
-.aiz1s2kv
-.ap1s2kv
-.at1s2kv
-.bez1s2kv
-.pār1s2kv
-.iz1s2kv
-.eks1s2kv
-.vis1s2kv
-.jā1k2v
-.ne1k2v
-.ie1k2v
-.no1k2v
-.pa1k2v
-.pie1k2v
-.sa1k2v
-.uz1k2v
-.aiz1k2v
-.ap1k2v
-.at1k2v
-.bez1k2v
-.pār1k2v
-.iz1k2v
-.eks1k2v
-.vis1k2v
-.jā1z2v
-.ne1z2v
-.ie1z2v
-.no1z2v
-.pa1z2v
-.pie1z2v
-.sa1z2v
-.uz1z2v
-.aiz1z2v
-.ap1z2v
-.at1z2v
-.bez1z2v
-.pār1z2v
-.iz1z2v
-.eks1z2v
-.vis1z2v
-.jā1k2s
-.ne1k2s
-.ie1k2s
-.no1k2s
-.pa1k2s
-.pie1k2s
-.sa1k2s
-.uz1k2s
-.aiz1k2s
-.ap1k2s
-.at1k2s
-.bez1k2s
-.pār1k2s
-.iz1k2s
-.eks1k2s
-.vis1k2s
-.jā1p2t
-.ne1p2t
-.ie1p2t
-.no1p2t
-.pa1p2t
-.pie1p2t
-.sa1p2t
-.uz1p2t
-.aiz1p2t
-.ap1p2t
-.at1p2t
-.bez1p2t
-.pār1p2t
-.iz1p2t
-.eks1p2t
-.vis1p2t
-.jā1z2n
-.ne1z2n
-.ie1z2n
-.no1z2n
-.pa1z2n
-.pie1z2n
-.sa1z2n
-.uz1z2n
-.aiz1z2n
-.ap1z2n
-.at1z2n
-.bez1z2n
-.pār1z2n
-.iz1z2n
-.eks1z2n
-.vis1z2n
-.jā1k2r
-.ne1k2r
-.ie1k2r
-.no1k2r
-.pa1k2r
-.pie1k2r
-.sa1k2r
-.uz1k2r
-.aiz1k2r
-.ap1k2r
-.at1k2r
-.bez1k2r
-.pār1k2r
-.iz1k2r
-.eks1k2r
-.vis1k2r
-.jā1s2kr
-.ne1s2kr
-.ie1s2kr
-.no1s2kr
-.pa1s2kr
-.pie1s2kr
-.sa1s2kr
-.uz1s2kr
-.aiz1s2kr
-.ap1s2kr
-.at1s2kr
-.bez1s2kr
-.pār1s2kr
-.iz1s2kr
-.eks1s2kr
-.vis1s2kr
-.jā1f2r
-.ne1f2r
-.ie1f2r
-.no1f2r
-.pa1f2r
-.pie1f2r
-.sa1f2r
-.uz1f2r
-.aiz1f2r
-.ap1f2r
-.at1f2r
-.bez1f2r
-.pār1f2r
-.iz1f2r
-.eks1f2r
-.vis1f2r
-.jā1s2h
-.ne1s2h
-.ie1s2h
-.no1s2h
-.pa1s2h
-.pie1s2h
-.sa1s2h
-.uz1s2h
-.aiz1s2h
-.ap1s2h
-.at1s2h
-.bez1s2h
-.pār1s2h
-.iz1s2h
-.eks1s2h
-.vis1s2h
-.jā1ž2ņ
-.ne1ž2ņ
-.ie1ž2ņ
-.no1ž2ņ
-.pa1ž2ņ
-.pie1ž2ņ
-.sa1ž2ņ
-.uz1ž2ņ
-.aiz1ž2ņ
-.ap1ž2ņ
-.at1ž2ņ
-.bez1ž2ņ
-.pār1ž2ņ
-.iz1ž2ņ
-.eks1ž2ņ
-.vis1ž2ņ
-.jā1d2d
-.ne1d2d
-.ie1d2d
-.no1d2d
-.pa1d2d
-.pie1d2d
-.sa1d2d
-.uz1d2d
-.aiz1d2d
-.ap1d2d
-.at1d2d
-.bez1d2d
-.pār1d2d
-.iz1d2d
-.eks1d2d
-.vis1d2d
-.jā1š2pr
-.ne1š2pr
-.ie1š2pr
-.no1š2pr
-.pa1š2pr
-.pie1š2pr
-.sa1š2pr
-.uz1š2pr
-.aiz1š2pr
-.ap1š2pr
-.at1š2pr
-.bez1š2pr
-.pār1š2pr
-.iz1š2pr
-.eks1š2pr
-.vis1š2pr
-.jā1v2j
-.ne1v2j
-.ie1v2j
-.no1v2j
-.pa1v2j
-.pie1v2j
-.sa1v2j
-.uz1v2j
-.aiz1v2j
-.ap1v2j
-.at1v2j
-.bez1v2j
-.pār1v2j
-.iz1v2j
-.eks1v2j
-.vis1v2j
-.jā1f2j
-.ne1f2j
-.ie1f2j
-.no1f2j
-.pa1f2j
-.pie1f2j
-.sa1f2j
-.uz1f2j
-.aiz1f2j
-.ap1f2j
-.at1f2j
-.bez1f2j
-.pār1f2j
-.iz1f2j
-.eks1f2j
-.vis1f2j
-.jā1p2j
-.ne1p2j
-.ie1p2j
-.no1p2j
-.pa1p2j
-.pie1p2j
-.sa1p2j
-.uz1p2j
-.aiz1p2j
-.ap1p2j
-.at1p2j
-.bez1p2j
-.pār1p2j
-.iz1p2j
-.eks1p2j
-.vis1p2j
-.jā1b2ļ
-.ne1b2ļ
-.ie1b2ļ
-.no1b2ļ
-.pa1b2ļ
-.pie1b2ļ
-.sa1b2ļ
-.uz1b2ļ
-.aiz1b2ļ
-.ap1b2ļ
-.at1b2ļ
-.bez1b2ļ
-.pār1b2ļ
-.iz1b2ļ
-.eks1b2ļ
-.vis1b2ļ
-.jā1g2n
-.ne1g2n
-.ie1g2n
-.no1g2n
-.pa1g2n
-.pie1g2n
-.sa1g2n
-.uz1g2n
-.aiz1g2n
-.ap1g2n
-.at1g2n
-.bez1g2n
-.pār1g2n
-.iz1g2n
-.eks1g2n
-.vis1g2n
-.jā1h2r
-.ne1h2r
-.ie1h2r
-.no1h2r
-.pa1h2r
-.pie1h2r
-.sa1h2r
-.uz1h2r
-.aiz1h2r
-.ap1h2r
-.at1h2r
-.bez1h2r
-.pār1h2r
-.iz1h2r
-.eks1h2r
-.vis1h2r
-.jā1s2n
-.ne1s2n
-.ie1s2n
-.no1s2n
-.pa1s2n
-.pie1s2n
-.sa1s2n
-.uz1s2n
-.aiz1s2n
-.ap1s2n
-.at1s2n
-.bez1s2n
-.pār1s2n
-.iz1s2n
-.eks1s2n
-.vis1s2n
-.jā1ž2m
-.ne1ž2m
-.ie1ž2m
-.no1ž2m
-.pa1ž2m
-.pie1ž2m
-.sa1ž2m
-.uz1ž2m
-.aiz1ž2m
-.ap1ž2m
-.at1ž2m
-.bez1ž2m
-.pār1ž2m
-.iz1ž2m
-.eks1ž2m
-.vis1ž2m
-.jā1d2ž
-.ne1d2ž
-.ie1d2ž
-.no1d2ž
-.pa1d2ž
-.pie1d2ž
-.sa1d2ž
-.uz1d2ž
-.aiz1d2ž
-.ap1d2ž
-.at1d2ž
-.bez1d2ž
-.pār1d2ž
-.iz1d2ž
-.eks1d2ž
-.vis1d2ž
-.jā1k2c
-.ne1k2c
-.ie1k2c
-.no1k2c
-.pa1k2c
-.pie1k2c
-.sa1k2c
-.uz1k2c
-.aiz1k2c
-.ap1k2c
-.at1k2c
-.bez1k2c
-.pār1k2c
-.iz1k2c
-.eks1k2c
-.vis1k2c
-.jā1k2ņ
-.ne1k2ņ
-.ie1k2ņ
-.no1k2ņ
-.pa1k2ņ
-.pie1k2ņ
-.sa1k2ņ
-.uz1k2ņ
-.aiz1k2ņ
-.ap1k2ņ
-.at1k2ņ
-.bez1k2ņ
-.pār1k2ņ
-.iz1k2ņ
-.eks1k2ņ
-.vis1k2ņ
-.jā1š2m
-.ne1š2m
-.ie1š2m
-.no1š2m
-.pa1š2m
-.pie1š2m
-.sa1š2m
-.uz1š2m
-.aiz1š2m
-.ap1š2m
-.at1š2m
-.bez1š2m
-.pār1š2m
-.iz1š2m
-.eks1š2m
-.vis1š2m
-.jā1g2v
-.ne1g2v
-.ie1g2v
-.no1g2v
-.pa1g2v
-.pie1g2v
-.sa1g2v
-.uz1g2v
-.aiz1g2v
-.ap1g2v
-.at1g2v
-.bez1g2v
-.pār1g2v
-.iz1g2v
-.eks1g2v
-.vis1g2v
-.jā1h2l
-.ne1h2l
-.ie1h2l
-.no1h2l
-.pa1h2l
-.pie1h2l
-.sa1h2l
-.uz1h2l
-.aiz1h2l
-.ap1h2l
-.at1h2l
-.bez1h2l
-.pār1h2l
-.iz1h2l
-.eks1h2l
-.vis1h2l
-.jā1k2ļ
-.ne1k2ļ
-.ie1k2ļ
-.no1k2ļ
-.pa1k2ļ
-.pie1k2ļ
-.sa1k2ļ
-.uz1k2ļ
-.aiz1k2ļ
-.ap1k2ļ
-.at1k2ļ
-.bez1k2ļ
-.pār1k2ļ
-.iz1k2ļ
-.eks1k2ļ
-.vis1k2ļ
-.jā1s2l
-.ne1s2l
-.ie1s2l
-.no1s2l
-.pa1s2l
-.pie1s2l
-.sa1s2l
-.uz1s2l
-.aiz1s2l
-.ap1s2l
-.at1s2l
-.bez1s2l
-.pār1s2l
-.iz1s2l
-.eks1s2l
-.vis1s2l
-.jā1t2v
-.ne1t2v
-.ie1t2v
-.no1t2v
-.pa1t2v
-.pie1t2v
-.sa1t2v
-.uz1t2v
-.aiz1t2v
-.ap1t2v
-.at1t2v
-.bez1t2v
-.pār1t2v
-.iz1t2v
-.eks1t2v
-.vis1t2v
-.jā1š2ņ
-.ne1š2ņ
-.ie1š2ņ
-.no1š2ņ
-.pa1š2ņ
-.pie1š2ņ
-.sa1š2ņ
-.uz1š2ņ
-.aiz1š2ņ
-.ap1š2ņ
-.at1š2ņ
-.bez1š2ņ
-.pār1š2ņ
-.iz1š2ņ
-.eks1š2ņ
-.vis1š2ņ
-.jā1š2p
-.ne1š2p
-.ie1š2p
-.no1š2p
-.pa1š2p
-.pie1š2p
-.sa1š2p
-.uz1š2p
-.aiz1š2p
-.ap1š2p
-.at1š2p
-.bez1š2p
-.pār1š2p
-.iz1š2p
-.eks1š2p
-.vis1š2p
-.jā1d2z
-.ne1d2z
-.ie1d2z
-.no1d2z
-.pa1d2z
-.pie1d2z
-.sa1d2z
-.uz1d2z
-.aiz1d2z
-.ap1d2z
-.at1d2z
-.bez1d2z
-.pār1d2z
-.iz1d2z
-.eks1d2z
-.vis1d2z
-.jā1f2l
-.ne1f2l
-.ie1f2l
-.no1f2l
-.pa1f2l
-.pie1f2l
-.sa1f2l
-.uz1f2l
-.aiz1f2l
-.ap1f2l
-.at1f2l
-.bez1f2l
-.pār1f2l
-.iz1f2l
-.eks1f2l
-.vis1f2l
-.jā1k2n
-.ne1k2n
-.ie1k2n
-.no1k2n
-.pa1k2n
-.pie1k2n
-.sa1k2n
-.uz1k2n
-.aiz1k2n
-.ap1k2n
-.at1k2n
-.bez1k2n
-.pār1k2n
-.iz1k2n
-.eks1k2n
-.vis1k2n
-.jā1p2ļ
-.ne1p2ļ
-.ie1p2ļ
-.no1p2ļ
-.pa1p2ļ
-.pie1p2ļ
-.sa1p2ļ
-.uz1p2ļ
-.aiz1p2ļ
-.ap1p2ļ
-.at1p2ļ
-.bez1p2ļ
-.pār1p2ļ
-.iz1p2ļ
-.eks1p2ļ
-.vis1p2ļ
-.jā1s2pļ
-.ne1s2pļ
-.ie1s2pļ
-.no1s2pļ
-.pa1s2pļ
-.pie1s2pļ
-.sa1s2pļ
-.uz1s2pļ
-.aiz1s2pļ
-.ap1s2pļ
-.at1s2pļ
-.bez1s2pļ
-.pār1s2pļ
-.iz1s2pļ
-.eks1s2pļ
-.vis1s2pļ
-.jā1s2kl
-.ne1s2kl
-.ie1s2kl
-.no1s2kl
-.pa1s2kl
-.pie1s2kl
-.sa1s2kl
-.uz1s2kl
-.aiz1s2kl
-.ap1s2kl
-.at1s2kl
-.bez1s2kl
-.pār1s2kl
-.iz1s2kl
-.eks1s2kl
-.vis1s2kl
-.jā1k2b
-.ne1k2b
-.ie1k2b
-.no1k2b
-.pa1k2b
-.pie1k2b
-.sa1k2b
-.uz1k2b
-.aiz1k2b
-.ap1k2b
-.at1k2b
-.bez1k2b
-.pār1k2b
-.iz1k2b
-.eks1k2b
-.vis1k2b
-.jā1s2m
-.ne1s2m
-.ie1s2m
-.no1s2m
-.pa1s2m
-.pie1s2m
-.sa1s2m
-.uz1s2m
-.aiz1s2m
-.ap1s2m
-.at1s2m
-.bez1s2m
-.pār1s2m
-.iz1s2m
-.eks1s2m
-.vis1s2m
-.jā1m2n
-.ne1m2n
-.ie1m2n
-.no1m2n
-.pa1m2n
-.pie1m2n
-.sa1m2n
-.uz1m2n
-.aiz1m2n
-.ap1m2n
-.at1m2n
-.bez1m2n
-.pār1m2n
-.iz1m2n
-.eks1m2n
-.vis1m2n
-.jā1š2n
-.ne1š2n
-.ie1š2n
-.no1š2n
-.pa1š2n
-.pie1š2n
-.sa1š2n
-.uz1š2n
-.aiz1š2n
-.ap1š2n
-.at1š2n
-.bez1š2n
-.pār1š2n
-.iz1š2n
-.eks1š2n
-.vis1š2n
-.jā1v2r
-.ne1v2r
-.ie1v2r
-.no1v2r
-.pa1v2r
-.pie1v2r
-.sa1v2r
-.uz1v2r
-.aiz1v2r
-.ap1v2r
-.at1v2r
-.bez1v2r
-.pār1v2r
-.iz1v2r
-.eks1v2r
-.vis1v2r
-.jā1b2l
-.ne1b2l
-.ie1b2l
-.no1b2l
-.pa1b2l
-.pie1b2l
-.sa1b2l
-.uz1b2l
-.aiz1b2l
-.ap1b2l
-.at1b2l
-.bez1b2l
-.pār1b2l
-.iz1b2l
-.eks1b2l
-.vis1b2l
-2b3dams.
-2c3dams.
-2č3dams.
-2d3dams.
-2f3dams.
-2g3dams.
-2ģ3dams.
-2h3dams.
-2j3dams.
-2k3dams.
-2ķ3dams.
-2l3dams.
-2ļ3dams.
-2m3dams.
-2n3dams.
-2ņ3dams.
-2p3dams.
-2r3dams.
-2s3dams.
-2š3dams.
-2t3dams.
-2v3dams.
-2z3dams.
-2ž3dams.
-2b3da3ma.
-2c3da3ma.
-2č3da3ma.
-2d3da3ma.
-2f3da3ma.
-2g3da3ma.
-2ģ3da3ma.
-2h3da3ma.
-2j3da3ma.
-2k3da3ma.
-2ķ3da3ma.
-2l3da3ma.
-2ļ3da3ma.
-2m3da3ma.
-2n3da3ma.
-2ņ3da3ma.
-2p3da3ma.
-2r3da3ma.
-2s3da3ma.
-2š3da3ma.
-2t3da3ma.
-2v3da3ma.
-2z3da3ma.
-2ž3da3ma.
-2b3da3mies.
-2c3da3mies.
-2č3da3mies.
-2d3da3mies.
-2f3da3mies.
-2g3da3mies.
-2ģ3da3mies.
-2h3da3mies.
-2j3da3mies.
-2k3da3mies.
-2ķ3da3mies.
-2l3da3mies.
-2ļ3da3mies.
-2m3da3mies.
-2n3da3mies.
-2ņ3da3mies.
-2p3da3mies.
-2r3da3mies.
-2s3da3mies.
-2š3da3mies.
-2t3da3mies.
-2v3da3mies.
-2z3da3mies.
-2ž3da3mies.
-2b3da3mās.
-2c3da3mās.
-2č3da3mās.
-2d3da3mās.
-2f3da3mās.
-2g3da3mās.
-2ģ3da3mās.
-2h3da3mās.
-2j3da3mās.
-2k3da3mās.
-2ķ3da3mās.
-2l3da3mās.
-2ļ3da3mās.
-2m3da3mās.
-2n3da3mās.
-2ņ3da3mās.
-2p3da3mās.
-2r3da3mās.
-2s3da3mās.
-2š3da3mās.
-2t3da3mās.
-2v3da3mās.
-2z3da3mās.
-2ž3da3mās.
-2b3gans.
-2c3gans.
-2č3gans.
-2d3gans.
-2f3gans.
-2g3gans.
-2ģ3gans.
-2h3gans.
-2j3gans.
-2k3gans.
-2ķ3gans.
-2l3gans.
-2ļ3gans.
-2m3gans.
-2n3gans.
-2ņ3gans.
-2p3gans.
-2r3gans.
-2s3gans.
-2š3gans.
-2t3gans.
-2v3gans.
-2z3gans.
-2ž3gans.
-2b3ga3na.
-2c3ga3na.
-2č3ga3na.
-2d3ga3na.
-2f3ga3na.
-2g3ga3na.
-2ģ3ga3na.
-2h3ga3na.
-2j3ga3na.
-2k3ga3na.
-2ķ3ga3na.
-2l3ga3na.
-2ļ3ga3na.
-2m3ga3na.
-2n3ga3na.
-2ņ3ga3na.
-2p3ga3na.
-2r3ga3na.
-2s3ga3na.
-2š3ga3na.
-2t3ga3na.
-2v3ga3na.
-2z3ga3na.
-2ž3ga3na.
-2b3nieks.
-2c3nieks.
-2č3nieks.
-2d3nieks.
-2f3nieks.
-2g3nieks.
-2ģ3nieks.
-2h3nieks.
-2j3nieks.
-2k3nieks.
-2ķ3nieks.
-2l3nieks.
-2ļ3nieks.
-2m3nieks.
-2n3nieks.
-2ņ3nieks.
-2p3nieks.
-2r3nieks.
-2s3nieks.
-2š3nieks.
-2t3nieks.
-2v3nieks.
-2z3nieks.
-2ž3nieks.
-2b3nie3ce.
-2c3nie3ce.
-2č3nie3ce.
-2d3nie3ce.
-2f3nie3ce.
-2g3nie3ce.
-2ģ3nie3ce.
-2h3nie3ce.
-2j3nie3ce.
-2k3nie3ce.
-2ķ3nie3ce.
-2l3nie3ce.
-2ļ3nie3ce.
-2m3nie3ce.
-2n3nie3ce.
-2ņ3nie3ce.
-2p3nie3ce.
-2r3nie3ce.
-2s3nie3ce.
-2š3nie3ce.
-2t3nie3ce.
-2v3nie3ce.
-2z3nie3ce.
-2ž3nie3ce.
-2b3nī3ca.
-2c3nī3ca.
-2č3nī3ca.
-2d3nī3ca.
-2f3nī3ca.
-2g3nī3ca.
-2ģ3nī3ca.
-2h3nī3ca.
-2j3nī3ca.
-2k3nī3ca.
-2ķ3nī3ca.
-2l3nī3ca.
-2ļ3nī3ca.
-2m3nī3ca.
-2n3nī3ca.
-2ņ3nī3ca.
-2p3nī3ca.
-2r3nī3ca.
-2s3nī3ca.
-2š3nī3ca.
-2t3nī3ca.
-2v3nī3ca.
-2z3nī3ca.
-2ž3nī3ca.
-2b3ša3na.
-2c3ša3na.
-2č3ša3na.
-2d3ša3na.
-2f3ša3na.
-2g3ša3na.
-2ģ3ša3na.
-2h3ša3na.
-2j3ša3na.
-2k3ša3na.
-2ķ3ša3na.
-2l3ša3na.
-2ļ3ša3na.
-2m3ša3na.
-2n3ša3na.
-2ņ3ša3na.
-2p3ša3na.
-2r3ša3na.
-2s3ša3na.
-2š3ša3na.
-2t3ša3na.
-2v3ša3na.
-2z3ša3na.
-2ž3ša3na.
-2b3ša3nās.
-2c3ša3nās.
-2č3ša3nās.
-2d3ša3nās.
-2f3ša3nās.
-2g3ša3nās.
-2ģ3ša3nās.
-2h3ša3nās.
-2j3ša3nās.
-2k3ša3nās.
-2ķ3ša3nās.
-2l3ša3nās.
-2ļ3ša3nās.
-2m3ša3nās.
-2n3ša3nās.
-2ņ3ša3nās.
-2p3ša3nās.
-2r3ša3nās.
-2s3ša3nās.
-2š3ša3nās.
-2t3ša3nās.
-2v3ša3nās.
-2z3ša3nās.
-2ž3ša3nās.
-2b3ta3la.
-2c3ta3la.
-2č3ta3la.
-2d3ta3la.
-2f3ta3la.
-2g3ta3la.
-2ģ3ta3la.
-2h3ta3la.
-2j3ta3la.
-2k3ta3la.
-2ķ3ta3la.
-2l3ta3la.
-2ļ3ta3la.
-2m3ta3la.
-2n3ta3la.
-2ņ3ta3la.
-2p3ta3la.
-2r3ta3la.
-2s3ta3la.
-2š3ta3la.
-2t3ta3la.
-2v3ta3la.
-2z3ta3la.
-2ž3ta3la.
-2b3tu3ve.
-2c3tu3ve.
-2č3tu3ve.
-2d3tu3ve.
-2f3tu3ve.
-2g3tu3ve.
-2ģ3tu3ve.
-2h3tu3ve.
-2j3tu3ve.
-2k3tu3ve.
-2ķ3tu3ve.
-2l3tu3ve.
-2ļ3tu3ve.
-2m3tu3ve.
-2n3tu3ve.
-2ņ3tu3ve.
-2p3tu3ve.
-2r3tu3ve.
-2s3tu3ve.
-2š3tu3ve.
-2t3tu3ve.
-2v3tu3ve.
-2z3tu3ve.
-2ž3tu3ve.
-.jā3a2
-.ne3a2
-.ie3a2
-.no3a2
-.pa3a2
-.pie3a2
-.sa3a2
-.uz3a2
-.aiz3a2
-.ap3a2
-.at3a2
-.bez3a2
-.pār3a2
-.iz3a2
-.eks3a2
-.vis3a2
-.jā3ā2
-.ne3ā2
-.ie3ā2
-.no3ā2
-.pa3ā2
-.pie3ā2
-.sa3ā2
-.uz3ā2
-.aiz3ā2
-.ap3ā2
-.at3ā2
-.bez3ā2
-.pār3ā2
-.iz3ā2
-.eks3ā2
-.vis3ā2
-.jā3e2
-.ne3e2
-.ie3e2
-.no3e2
-.pa3e2
-.pie3e2
-.sa3e2
-.uz3e2
-.aiz3e2
-.ap3e2
-.at3e2
-.bez3e2
-.pār3e2
-.iz3e2
-.eks3e2
-.vis3e2
-.jā3ē2
-.ne3ē2
-.ie3ē2
-.no3ē2
-.pa3ē2
-.pie3ē2
-.sa3ē2
-.uz3ē2
-.aiz3ē2
-.ap3ē2
-.at3ē2
-.bez3ē2
-.pār3ē2
-.iz3ē2
-.eks3ē2
-.vis3ē2
-.jā3i2
-.ne3i2
-.ie3i2
-.no3i2
-.pa3i2
-.pie3i2
-.sa3i2
-.uz3i2
-.aiz3i2
-.ap3i2
-.at3i2
-.bez3i2
-.pār3i2
-.iz3i2
-.eks3i2
-.vis3i2
-.jā3ī2
-.ne3ī2
-.ie3ī2
-.no3ī2
-.pa3ī2
-.pie3ī2
-.sa3ī2
-.uz3ī2
-.aiz3ī2
-.ap3ī2
-.at3ī2
-.bez3ī2
-.pār3ī2
-.iz3ī2
-.eks3ī2
-.vis3ī2
-.jā3o2
-.ne3o2
-.ie3o2
-.no3o2
-.pa3o2
-.pie3o2
-.sa3o2
-.uz3o2
-.aiz3o2
-.ap3o2
-.at3o2
-.bez3o2
-.pār3o2
-.iz3o2
-.eks3o2
-.vis3o2
-.jā3u2
-.ne3u2
-.ie3u2
-.no3u2
-.pa3u2
-.pie3u2
-.sa3u2
-.uz3u2
-.aiz3u2
-.ap3u2
-.at3u2
-.bez3u2
-.pār3u2
-.iz3u2
-.eks3u2
-.vis3u2
-.jā3ū2
-.ne3ū2
-.ie3ū2
-.no3ū2
-.pa3ū2
-.pie3ū2
-.sa3ū2
-.uz3ū2
-.aiz3ū2
-.ap3ū2
-.at3ū2
-.bez3ū2
-.pār3ū2
-.iz3ū2
-.eks3ū2
-.vis3ū2
-.jā3ie1
-.jā3iz1
-.jā3no1
-.ne3aiz1
-.ne3ap1
-.ne3ie1
-.ne3at1
-.ne3in1
-.ne3iz1
-.ne3sa
-.ne3uz1
-.priek2š1
-4d5ze1me
-.tur2p1m
-il2k1tie
-.spil2g1t
-mē1ne2š1
-1pa1d2smit
-g2š1gal
-k2š1gal
-tran2s
-1port
-vēs2t1n
-vēs2t1k
-pa2t3stā
-pa2s2t3k
-pa2s2t3m
-pa2s2t2s.
-pa2r2k2s.
-pa2r3ket
-sa2ls.
-sa2lds.
-sa2l2d1
-pir2m1r
-pir2m1k
-pir2m2s1
-ot2r1r2
-ot2r1k2
-ir2k3l
-ir2k3ļ
-.adā2m3
-.ai4z5
-ak3me4ņ3
-apak2š3
-ap1au
-kār2t3n
-aug2s2t3
-.at3e2j
-bal2t3ma
-.vie2n1} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-mk.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-mk.hyp
deleted file mode 100644
index 96d2b2d5a79..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-mk.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-mk.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-mk.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-mk.pat
deleted file mode 100644
index f1a5b7e9311..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-mk.pat
+++ /dev/null
@@ -1,732 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-mk.rme
-
-% used: а б в г д е ж з и к л м н о п р с т у ф х ц ч ш ѓ ѕ ј љ њ ќ џ
-
-\patterns{
-.б2
-.в2
-.вр5зан.
-.г2
-.д2
-.др5жат
-.др5жи.
-.з2
-.к2
-.м2
-.ос3в
-.ос3л
-.п2
-.пос2
-.по3ср
-.по5ста
-.по5ств
-.с2
-.стап5к
-.т2
-.ш2
-а1а
-аб1л
-аб1р2
-а1ва
-а1ве
-ав1л
-а1во
-ав1р2
-ав1т
-аг1л
-аг1р
-ад1в
-ад1л
-ад1р
-а1е
-а1жа
-а1жи
-а1жу
-аз1д
-а1зу
-а1и
-а1ји
-а1ка
-ак1в
-а1ки
-ак1л
-а1ко
-ак1р
-а1ла
-а1ле
-а1ло
-а1лу
-а1м
-а1о
-а1па
-а1пе
-а3пкат
-а3пки
-ап1л
-ап1р
-а1ра
-ар1в
-ар1д
-а1ре
-а1ри
-ар1л
-а1ро
-арт2
-ар3тн
-ар3ту
-а1ру
-ас1в
-ас1к
-ас1л
-ас1п
-ас1р
-ас1т
-а1т
-а2т1в
-а2тн
-а2т1р
-а1у
-а1фа
-а1фо
-ах1р
-а2ц1р
-ач1л
-аш1т
-1ба
-б1в
-б1д
-1бе
-б1з
-1би
-2б1ј
-б1м
-б1н
-1бо
-б1р2н
-1бу
-в1г
-в1д
-в2з
-1ви
-в2ју
-в1ка
-в1ки
-в1м
-2в1н
-2вњ
-вос1
-в1па
-вр3ве
-вр2з
-в1ро
-вр4скат
-вр4скит
-вр2х
-2в1с
-в1тр
-1ву
-в1ш
-1га
-г2б
-г1в
-1ге
-г1з
-1ги
-г1м
-3г4нато
-1го
-гос3л
-г1рв
-гр4цит
-1гу
-1да
-да2с
-д1б
-д1ве
-д1вл
-д1вр
-д1г
-д1д
-1де
-д1з
-1ди
-4дицио
-д1ј
-д1к
-д1ле
-д1ло
-д1лу
-д1м
-д1н
-3д2нив
-1до
-до5з4нае
-дос3л
-д1п
-д1ре
-д1ри
-д1с2
-д1т2
-1ду
-1ѓ
-е1а
-еб1л
-еб1р
-е1ва
-е1ве
-ев1к
-е1во
-ев1р
-ег1л
-ег1р
-ед1в
-ед4нот
-ед1р
-е1е
-е1жа
-е1жи
-е1жу
-ез1г
-е1зу
-2е1и
-е1ка
-ек1в
-е1ки
-ек1л
-е1ко
-ек1р
-е1ла
-е1ле
-е1ло
-е1лу
-е1м
-ем1р
-е2м1с
-е1о
-е1па
-е1пе
-еп1к
-еп1л
-епос3р
-епо4ст
-еп1р
-е1ра
-ер1в
-е1ре
-ер1з
-е1ри
-е1ро
-ер1п
-е1ру
-ес1в
-ес1к
-ес1л
-ес1п
-ес1р
-ес1т
-е1та
-ет1в
-е1те
-ет1р
-е1ту
-е1у
-е1фо
-еф1р2
-ех1р
-еш1т
-ж1б
-ж1д
-1же
-жи1
-ж1ј
-ж2л
-2ж1н
-1жо
-ж1т
-1за
-зб2
-збе3с
-з1бр
-з1в
-звр2
-з1гл
-зд2
-з1дн
-1зе
-1зи
-з1ј
-з1ле
-з1м
-1зо
-з1ре
-з1ри
-1ѕ
-и1а
-иб1р
-и1ва
-и1ве
-ив1к
-ив1л
-и1во
-ив1р
-ив1т
-иг1л
-иг1р
-ид1р
-и1е
-и1ж
-из1г
-из1д
-из1л
-из1р
-и1зу
-и1и
-и1ј
-и1к
-и2кв
-и2к1л
-и2кн
-и2к1р
-и2кт
-и1ла
-и1ле
-и1ло
-и1лу
-им1с
-и2нс
-и1о
-и1па
-и1пе
-ип1к
-ип1л
-ип1р
-и1р
-и2рг
-и2рл
-и2рн
-и2р1т
-ис1к
-ис1л
-ис1п
-ис3т2
-и1т
-и2тн
-и2т1р
-и1у
-и1ф
-и1х
-и2ш1т
-1ја
-ј1б2
-ј1в
-ј1г
-ј1д2
-1је
-ј1ж
-ј1з2
-2ј1к
-ј1л
-ј1м2
-ј3мн
-ј1н2
-1јо
-ј1п
-јпо4с3
-ј1р
-2ј1с
-2ј1т
-2јќ
-1ју
-ј1ф
-2јц
-ј1ч
-2јш2
-ј1шт
-1кам
-кап3к
-1кар
-к1ве
-к1во
-1ке
-к2ј
-кл2
-к1ле
-к1лс
-к1м
-к1р2д
-кр2с
-кр1ш
-кр2ше
-кр2ши
-2к1с2
-к1т2
-2кт.
-1ку
-к1ф
-л1б
-л1в
-л1г
-л1д
-л1ж
-л1з
-1ли
-л1ј
-л1к2
-л1м
-л1н
-л1п
-л1с2
-л1т
-л1ф
-л1ч2
-л1ш
-1љ
-ља1
-1ма
-2м1б
-2м1в
-м1д
-1ме
-1ми
-2м1ј
-2м1к
-2мн
-1мо
-2м1п2
-2мр
-м3рм
-мр2т
-мр3т2в
-м1ст
-2м1т2
-м3тл
-1му
-м1ф
-м1ч
-м1ш
-1на
-н1б
-н1в
-н1г2
-2н1д2
-1не
-н1ж2
-н1з
-1ни
-2н1к2
-н1л
-н1м
-1но
-н1п2
-н1р
-н1с2
-2н1т2
-н3тс
-1ну
-н1ф2
-н1х
-2нц
-н1ч
-1њ
-ња1
-њас2
-ње1
-о1а
-об1л
-об1р2
-о1ва
-о1ве
-ов1л
-о1во
-ов1р2
-ов1т
-ог1л
-ог1р
-од1в
-од1л
-од1р
-о1е
-о1жа
-о1жи
-ож1р
-о1жу
-оз1д
-оз1р
-о1зу
-о1и
-о1ка
-ок1в
-о1ки
-ок1л
-о1ко
-ок1р
-о1ла
-о1ле
-о1ло
-о1лу
-ом1р
-ом1с
-о1о
-о1па
-о1пе
-оп1к
-оп1л
-оп1р
-о1ра
-о1ре
-о1ри
-о1ро
-ор3та
-о1ру
-ос3во
-осле3
-ослед4
-ос3ло
-ослу3
-ос1п
-осре3
-осред4
-ос1т
-ос5тави
-оста5пк
-о1та
-от1в
-отвр2
-о1те
-от1р2
-о1ту
-о1у
-о1ф
-о1хе
-ох1р
-о2ц1р2
-ош1т
-1пи
-п1ко
-п1кр
-п1н
-1по
-по3св
-по3ск
-по3сл
-по3с2м
-по3сп
-по3сти3
-постиг4
-по3сто
-пр2в
-пр2к
-п1с2
-п1т
-1пу
-п1ф
-п1х
-п1ч
-п1ш2
-р1б2
-р2биј
-р1вј
-рв1т
-р1г2
-рд2
-р2да.
-р2дил
-р2дим
-р2ду
-рз2
-р2зат
-р2зин
-р3зно
-2р1к2
-р2кн
-р1ло
-2р1м2
-р3мн
-р2мо
-р1н
-рос3в
-р1па
-рп2л
-р1с2
-рт1в
-рт4вит
-рт2ву
-р3теа
-р2тин
-р2тио
-рт2л
-рт2ни
-р2тов
-р1тр
-р1ф
-р1х
-рч2
-р2ча
-рш2
-р2шеш
-р2шим
-р2шу
-1са
-свр3зе
-1се
-1си
-с1ј
-ск2
-с1кн
-сма3т
-с2мел
-с1н
-с2наа
-1со
-с2пок
-с1рд
-2ст.
-3ставт
-3стапк
-ст2в
-3степ
-2стеш
-с1т2н
-с2тт
-1су
-с1фр2
-с1хр
-сцр2
-с1ч
-1та.
-2тапк
-т1г
-2т1д
-1теж
-2теп
-1ти
-2т1к
-2т1л
-2т1м
-1то
-2тоел
-2тоеч
-2тоја
-2т1п
-т2ра.
-тр2в
-тр1л
-тр2п
-2т1с2
-т1т
-ттр2
-т1ф
-тфр2
-т1х
-2т1ч
-1ќ
-ќа1
-2ќ1н
-2ќ1т
-у1а
-уб1л
-уб1р
-у1в
-у2в1р
-уг1л
-уг1р
-уд1р
-у1е
-у1жа
-у1жи
-у1жу
-у1и
-у1ка
-ук1в
-у1ки
-ук1л
-ук1р
-у1ла
-у1ле
-у1ло
-у1лу
-ум1р
-ум1с
-у1н
-у1о
-у1па
-у1пе
-уп1к
-уп1л
-уп1р
-у1ра
-ур1д
-у1ре
-у1ри
-у1ро
-у1ру
-ус1к
-ус1л
-ус1п
-ус1т
-у1та
-ут1в
-утвр2
-у1те
-ут1р
-уф1
-у1х
-у1ч
-уш4ниц
-уш4но.
-уш1т
-1фе
-1фи
-ф1к
-фл2
-ф1ле
-ф2н
-ф1ри
-ф1ро
-2ф1с
-ф1т
-1ха
-1хи
-х1м
-х1н
-1хо
-х1т
-1ху
-1ц
-2ц1в
-цвр2
-2цк
-ц1ки
-2ц1н
-цр2к
-цр2на
-цр2не
-2ц1х
-1ча
-ч1в
-1че
-1чи
-2ч1к
-2ч1н
-1чо1
-2ч1т
-1чу
-1џ
-џа1
-2џ1м
-1ша
-шап1
-1ше
-2шел
-1ши
-ш1к
-ш1л
-ш1м
-ш1н
-1шо1
-ш1та
-ш1тв
-ш1ту
-1шу} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-ml.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-ml.hyp
deleted file mode 100644
index 7dba49173d1..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-ml.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-ml.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-ml.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-ml.pat
deleted file mode 100644
index b53251a69fa..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-ml.pat
+++ /dev/null
@@ -1,95 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-ml.rme
-
-% used: ം ഃ അ ആ ഇ ഈ ഉ ഊ ഋ ഌ എ ഏ ഐ ഒ ഓ ഔ ക ഖ ഗ ഘ ങ ച ഛ ജ ഝ ഞ ട ഠ ഡ ഢ ണ ത ഥ ദ ധ ന പ ഫ ബ ഭ മ യ ര റ ല ള ഴ വ ശ ഷ സ ഹ ാ ി ീ ു ൂ ൃ െ േ ൈ ൊ ോ ൌ ് ൗ ൠ ൡ ൺ ൻ ർ ൽ ൾ ൿ ‌ ‍
-
-\patterns{
-2‍2
-1‌1
-1അ1
-1ആ1
-1ഇ1
-1ഈ1
-1ഉ1
-1ഊ1
-1ഋ1
-1ൠ1
-1ഌ1
-1ൡ1
-1എ1
-1ഏ1
-1ഐ1
-1ഒ1
-1ഓ1
-1ഔ1
-ാ1
-ി1
-ീ1
-ു1
-ൂ1
-ൃ1
-െ1
-േ1
-ൈ1
-ൊ1
-ോ1
-ൌ1
-ൗ1
-1ക
-1ഖ
-1ഗ
-1ഘ
-1ങ
-1ച
-1ഛ
-1ജ
-1ഝ
-1ഞ
-1ട
-1ഠ
-1ഡ
-1ഢ
-1ണ
-1ത
-1ഥ
-1ദ
-1ധ
-1ന
-1പ
-1ഫ
-1ബ
-1ഭ
-1മ
-1യ
-1ര
-1റ
-1ല
-1ള
-1ഴ
-1വ
-1ശ
-1ഷ
-1സ
-1ഹ
-2ഃ1
-2ം1
-2്2
-ന്2
-ര്2
-ള്2
-ല്2
-ക്2
-ണ്2
-2ന്‍
-2ല്‍
-2ള്‍
-2ണ്‍
-2ര്‍
-2ക്‍
-2ൺ
-2ൻ
-2ർ
-2ൽ
-2ൾ
-2ൿ} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-mn.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-mn.hyp
deleted file mode 100644
index f81ec6e5f46..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-mn.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-mn.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-mn.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-mn.pat
deleted file mode 100644
index 48a6b957730..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-mn.pat
+++ /dev/null
@@ -1,995 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-mn.rme
-
-% used: а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я ё ү ө
-
-\patterns{
-1ба
-1бе
-1бё
-1би
-1бо
-1бө
-1бу
-1бү
-1бы
-1бь2ю
-1бэ
-1бю
-1бя
-1ва
-1ве
-1вё
-1ви
-1во
-1вө
-1ву
-1вү
-1вы
-1вь2ю
-1вэ
-1вю
-1вя
-1га
-1ге
-1гё
-1ги
-1го
-1гө
-1гу
-1гү
-1гы
-1гь2ю
-1гэ
-1гю
-1гя
-1да
-1де
-1дё
-1ди
-1до
-1дө
-1ду
-1дү
-1ды
-1дь2ю
-1дэ
-1дю
-1дя
-1жа
-1же
-1жё
-1жи
-1жо
-1жө
-1жу
-1жү
-1жэ
-1жю
-1жя
-1за
-1зе
-1зё
-1зи
-1зо
-1зө
-1зу
-1зү
-1зы
-1зь2ю
-1зэ
-1зю
-1зя
-1ка
-1ке
-1кё
-1ки
-1ко
-1ку
-1кү
-1кэ
-1кю
-1кя
-1ла
-1ле
-1лё
-1ли
-1ло
-1лө
-1лу
-1лү
-1лы
-1лэ
-1лю
-1ля
-1ма
-1ме
-1мё
-1ми
-1мо
-1мө
-1му
-1мү
-1мы
-1мэ
-1мю
-1мя
-1на
-1не
-1нё
-1ни
-1но
-1нө
-1ну
-1нү
-1ны
-1нь2ю
-1нэ
-1ню
-1ня
-1па
-1пе
-1пё
-1пи
-1по
-1пө
-1пу
-1пү
-1пы
-1пь2ю
-1пэ
-1пю
-1пя
-1ра
-1ре
-1рё
-1ри
-1ро
-1рө
-1ру
-1рү
-1ры
-1рэ
-1рю
-1ря
-1са
-1се
-1сё
-1си
-1со
-1сө
-1су
-1сү
-1сы
-1сэ
-1сю
-1ся
-1та
-1те
-1тё
-1ти
-1то
-1тө
-1ту
-1тү
-1ты
-1ть2ю
-1тэ
-1тю
-1тя
-1фа
-1фе
-1фё
-1фи
-1фо
-1фу
-1фы
-1фэ
-1фю
-1фя
-1ха
-1хе
-1хё
-1хи
-1хо
-1хө
-1ху
-1хү
-1хы
-1хэ
-1хю
-1хя
-1ца
-1це
-1цё
-1ци
-1цо
-1цө
-1цу
-1цү
-1цы
-1цэ
-1цю
-1ця
-1ча
-1че
-1чё
-1чи
-1чо
-1чө
-1чу
-1чү
-1чэ
-1чю
-1чя
-1ша
-1ше
-1шё
-1ши
-1шо
-1шө
-1шу
-1шү
-1шэ
-1шю
-1шя
-1ща
-1ще
-1щи
-1щу
-2а1я
-2аа
-2б3ю4у
-2б3ю4ү
-2в3ю4у
-2в3ю4ү
-2г3ю4у
-2г3ю4ү
-2д3ю4у
-2д3ю4ү
-2ж3ю4у
-2ж3ю4ү
-2з3ю4у
-2з3ю4ү
-2и1е
-2й1е
-2й1ё
-2й1ю
-2й1я
-2л3ю4у
-2л3ю4ү
-2м3ю4у
-2м3ю4ү
-2н3ю4у
-2н3ю4ү
-2о1е
-2о1ё
-2о1я
-2оо
-2ө1е
-2өө
-2п3ю4у
-2п3ю4ү
-2р3ю4у
-2р3ю4ү
-2с3ю4у
-2с3ю4ү
-2т3ю4у
-2т3ю4ү
-2у1я
-2у3ю
-2уу
-2үү
-2х3ю4у
-2х3ю4ү
-2ц3ю4у
-2ц3ю4ү
-2ч3ю4у
-2ч3ю4ү
-2ш3ю4у
-2ш3ю4ү
-2ъ3е
-2ъ3ё
-2ъ3ю
-2ъ3я
-2ь3е
-2ь3ё
-2ь3я
-2э3е
-2ээ
-2ю3а
-2ю3и
-2ю3о
-.авто3а4г
-.авто3а4д
-.авто3а4к
-.авто3а4л
-.авто3а4н
-.авто3а4с
-.авто3б4л
-.авто3б4р
-.авто3в4в
-.авто3в4л
-.авто3г4р
-.авто3д4р
-.авто3и4м
-.авто3и4н
-.авто3и4о
-.авто3к4л
-.авто3к4р
-.авто3о4б
-.авто3о4к
-.авто3о4п
-.авто3о4т
-.авто3п4р
-.авто3с4к
-.авто3с4л
-.авто3с4м
-.авто3с4п
-.авто3с4т
-.авто3с4ц
-.авто3т4р
-.авто3ф4л
-.авто3ф4р
-.авто3х4р
-.авто3х4т
-.авто3ц4в
-.авто3э4к
-.авто3э4л
-.авто3э4м
-.авто3э4п
-.анти3а4в
-.анти3а4д
-.анти3а4л
-.анти3а4н
-.анти3а4п
-.анти3а4р
-.анти3а4с
-.анти3а4т
-.анти3а4у
-.анти3б4л
-.анти3г4л
-.анти3г4р
-.анти3д4р
-.анти3и4д
-.анти3и4з
-.анти3и4м
-.анти3и4н
-.анти3к4в
-.анти3к4л
-.анти3о4б
-.анти3о4з
-.анти3о4к
-.анти3п4л
-.анти3п4н
-.анти3п4р
-.анти3п4с
-.анти3с4в
-.анти3с4к
-.анти3с4т
-.анти3с4ц
-.анти3т4р
-.анти3у4з
-.анти3у4р
-.анти3у4т
-.анти3ф4л
-.анти3ф4р
-.анти3х4л
-.анти3х4р
-.анти3э4м
-.анти3э4н
-.анти3э4р
-.астро3б4л
-.астро3г4л
-.астро3г4р
-.астро3и4н
-.астро3о4р
-.астро3с4п
-.астро3ш4т
-.аэро3д4р
-.аэро3к4л
-.аэро3п4л
-.аэро3с4т
-.аэро3ф4л
-.би3а4к
-.би3а4л
-.би3а4ф
-.би3к4в
-.би3к4р
-.би3о4р
-.би3п4р
-.би3э4к
-.био3а4к
-.био3а4н
-.био3а4п
-.био3а4с
-.био3б4л
-.био3г4р
-.био3и4н
-.био3к4л
-.био3к4р
-.био3о4р
-.био3п4л
-.био3п4р
-.био3с4к
-.био3с4п
-.био3с4т
-.био3с4ф
-.био3х4р
-.био3э4к
-.био3э4л
-.био3э4н
-.био3э4т
-.бь4
-.въ4
-.вь4
-.газо3а4б
-.газо3а4д
-.газо3а4н
-.газо3а4п
-.гео3а4к
-.гео3б4л
-.гео3г4р
-.гео3и4з
-.гео3и4н
-.гео3к4р
-.гео3с4к
-.гео3с4т
-.гео3с4ф
-.гео3т4р
-.гео3ф4л
-.гео3х4р
-.гео3э4к
-.гео3э4л
-.гидро3а4б
-.гидро3а4в
-.гидро3а4г
-.гидро3а4д
-.гидро3а4к
-.гидро3а4л
-.гидро3а4м
-.гидро3а4р
-.гидро3а4э
-.гидро3г4р
-.гидро3и4з
-.гидро3и4н
-.гидро3и4о
-.гидро3к4л
-.гидро3к4р
-.гидро3о4к
-.гидро3п4л
-.гидро3п4н
-.гидро3с4т
-.гидро3с4ф
-.гидро3т4р
-.гидро3у4д
-.гидро3у4з
-.гидро3у4р
-.гидро3х4л
-.гидро3э4к
-.гидро3э4л
-.гидро3э4н
-.гипе2р3а4д
-.гипе2р3а4з
-.гипе2р3а4к
-.гипе2р3а4л
-.гипе2р3а4м
-.гипе2р3а4р
-.гипе2р3а4ц
-.гипе2р3а4э
-.гипе2р3е4а
-.гипе2р3е4м
-.гипе2р3е4р
-.гипе2р3е4с
-.гипе2р3и4з
-.гипе2р3и4м
-.гипе2р3и4н
-.гипе2р3о4в
-.гипе2р3о4к
-.гипе2р3о4с
-.гипер3б4р
-.гипер3г4л
-.гипер3г4р
-.гипер3к4в
-.гипер3к4р
-.гипер3м4н
-.гипер3п4л
-.гипер3п4н
-.гипер3п4р
-.гипер3с4п
-.гипер3с4р
-.гипер3с4с
-.гипер3с4т
-.гипер3т4р
-.гипер3у4р
-.гипер3ф4р
-.гипер3х4л
-.гипер3х4р
-.гипер3э4к
-.гипер3э4л
-.гипер3э4н
-.гипер3э4о
-.гипер3э4с
-.голо3б4л
-.голо3э4д
-.гомо3а4з
-.гомо3а4к
-.гомо3а4т
-.гомо3к4л
-.гомо3п4л
-.гомо3с4п
-.гомо3т4р
-.гомо3ф4т
-.гомо3э4н
-.гомо3э4п
-.гь4
-.ди1а3г4н
-.ди4ст5ри
-.ди4ст5ро
-.диа3д4р
-.диа3к4л
-.диа3к4р
-.диа3с4к
-.диа3с4п
-.диа3с4т
-.диа3т4р
-.диа3ф4р
-.диазо3т4р
-.диазо3э4т
-.диазо3э4ф
-.дина3т4р
-.дь4
-.евро3а4з
-.евро3а4т
-.евро3и4е
-.евро3к4р
-.евро3о4б
-.евро3с4п
-.евро3с4т
-.изо3а4в
-.изо3а4г
-.изо3а4д
-.изо3а4з
-.изо3а4к
-.изо3а4л
-.изо3а4м
-.изо3а4н
-.изо3б4р
-.изо3в4р
-.изо3г4л
-.изо3г4р
-.изо3д4р
-.изо3и4о
-.изо3й4о
-.изо3к4л
-.изо3к4р
-.изо3л4г
-.изо3л4ж
-.изо3о4к
-.изо3п4л
-.изо3п4р
-.изо3с4т
-.изо3т4к
-.изо3т4р
-.изо3х4р
-.изо3ш4л
-.изо3э4в
-.изо3э4д
-.изо3э4й
-.изо3э4л
-.изо3э4н
-.ин3а4кт
-.ин3а4п
-.ин3а4у
-.ин3б4р
-.ин3г4р
-.ин3к4л
-.ин3к4р
-.ин3с4тр
-.инте2р3а4к
-.интер3г4р
-.интер3к4в
-.интер3к4р
-.интер3п4р
-.интер3ф4л
-.кило3а4м
-.кило3г4р
-.кило3э4л
-.кино3а4к
-.кино3а4н
-.кино3а4п
-.кино3а4ф
-.кино3б4л
-.кино3д4р
-.кино3и4с
-.кино3к4л
-.кино3к4р
-.кино3о4п
-.кино3п4л
-.кино3п4р
-.кино3с4к
-.кино3с4ъ
-.кино3ф4л
-.кино3ф4р
-.кино3х4р
-.кино3э4к
-.ко3а4г
-.ко3а4д
-.ко3а4к
-.ко3и4н
-.ко3о4п
-.ко3о4р
-.ко3п4л
-.ко3э4ф
-.кь4
-.ль4
-.макро3а4н
-.макро3а4с
-.макро3б4л
-.макро3б4р
-.макро3г4л
-.макро3г4н
-.макро3г4р
-.макро3и4н
-.макро3и4с
-.макро3к4л
-.макро3к4р
-.макро3о4в
-.макро3о4п
-.макро3о4р
-.макро3п4л
-.макро3п4р
-.макро3с4к
-.макро3с4п
-.макро3с4т
-.макро3с4х
-.макро3т4р
-.макро3ф4л
-.макро3ф4т
-.макро3э4в
-.макро3э4к
-.макро3э4л
-.макро3э4н
-.макро3э4р
-.макро3э4с
-.мега3о4м
-.мега3п4р
-.мега3с4к
-.мега3с4п
-.мега3э4л
-.микро3а4в
-.микро3а4г
-.микро3а4д
-.микро3а4м
-.микро3а4н
-.микро3а4р
-.микро3а4с
-.микро3а4у
-.микро3а4э
-.микро3б4л
-.микро3б4р
-.микро3г4р
-.микро3д4в
-.микро3и4з
-.микро3и4н
-.микро3и4с
-.микро3й4о
-.микро3к4л
-.микро3к4н
-.микро3к4р
-.микро3о4б
-.микро3о4п
-.микро3о4р
-.микро3о4с
-.микро3п4л
-.микро3п4р
-.микро3с4к
-.микро3с4п
-.микро3с4т
-.микро3с4ф
-.микро3с4х
-.микро3т4р
-.микро3ф4л
-.микро3х4р
-.микро3э4в
-.микро3э4л
-.микро3э4м
-.микро3э4н
-.микро3э4р
-.милли3а4м
-.милли3г4р
-.милли3о4м
-.милли3э4к
-.моно3а4в
-.моно3а4з
-.моно3а4л
-.моно3а4м
-.моно3а4н
-.моно3а4р
-.моно3а4т
-.моно3а4ц
-.моно3б4л
-.моно3б4р
-.моно3г4л
-.моно3г4р
-.моно3и4з
-.моно3и4м
-.моно3и4н
-.моно3к4л
-.моно3к4р
-.моно3о4к
-.моно3о4л
-.моно3п4л
-.моно3п4р
-.моно3п4с
-.моно3с4п
-.моно3с4т
-.моно3т4р
-.моно3ф4т
-.моно3х4л
-.моно3х4р
-.моно3э4д
-.моно3э4н
-.моно3э4п
-.моно3э4т
-.моно3э4ф
-.мото3д4р
-.мото3к4р
-.мото3п4л
-.мото3п4р
-.мото3с4п
-.мото3ш4л
-.мь4
-.на3у
-.нано3а4д
-.нано3п4р
-.нео3а4д
-.нео3а4н
-.нео3а4р
-.нео3б4л
-.нео3г4л
-.нео3г4н
-.нео3г4р
-.нео3и4з
-.нео3и4м
-.нео3и4н
-.нео3к4л
-.нео3к4р
-.нео3п4л
-.нео3п4р
-.нео3х4р
-.нео3э4з
-.нео3э4н
-.нео3э4п
-.нео3э4с
-.нь4
-.орто3а4л
-.орто3а4м
-.орто3а4н
-.орто3а4р
-.орто3д4р
-.орто3и4з
-.орто3к4р
-.орто3п4л
-.орто3п4р
-.орто3п4с
-.орто3с4в
-.орто3с4к
-.орто3с4т
-.орто3т4р
-.орто3х4л
-.орто3х4р
-.орто3э4т
-.орто3э4ф
-.пара3а4к
-.пара3а4л
-.пара3а4м
-.пара3а4н
-.пара3а4п
-.пара3а4ц
-.пара3б4л
-.пара3г4н
-.пара3г4р
-.пара3к4л
-.пара3к4р
-.пара3о4к
-.пара3п4л
-.пара3п4с
-.пара3с4п
-.пара3с4ф
-.пара3с4ц
-.пара3т4р
-.пара3х4л
-.пара3х4р
-.пара3э4л
-.пара3э4т
-.паро3п4р
-.поли3а4в
-.поли3а4д
-.поли3а4з
-.поли3а4к
-.поли3а4л
-.поли3а4м
-.поли3а4н
-.поли3а4р
-.поли3а4ц
-.поли3б4р
-.поли3г4л
-.поли3г4р
-.поли3и4з
-.поли3и4м
-.поли3к4л
-.поли3к4р
-.поли3о4к
-.поли3о4л
-.поли3п4л
-.поли3п4н
-.поли3п4р
-.поли3с4п
-.поли3с4т
-.поли3у4р
-.поли3х4л
-.поли3х4р
-.поли3э4д
-.поли3э4к
-.поли3э4л
-.поли3э4н
-.поли3э4т
-.поли3э4ф
-.пре3э4к
-.пре3ю4д
-.про3а4г
-.про3а4к
-.про3а4м
-.про3а4н
-.про3а4у
-.про3г4р
-.про3и4г
-.про3и4з
-.про3и4л
-.про3и4н
-.про3к4л
-.про3с4п
-.про3х4р
-.про3э4к
-.про3э4м
-.про3э4н
-.про3э4р
-.про3э4с
-.прото3х4л
-.прото3х4р
-.прото3э4р
-.проф3г4р
-.пъ4
-.пь4
-.ре3а4б
-.ре3а4г
-.ре3а4д
-.ре3а4к
-.ре3а4с
-.ре3а4ф
-.ре3а4э
-.ре3г4р
-.ре3и4м
-.ре3и4н
-.ре3и4ф
-.ре3к4р
-.ре3п4р
-.ре3т4ра
-.ретро3а4к
-.ретро3а4у
-.ретро3г4р
-.ретро3о4т
-.ретро3ф4л
-.санти3г4р
-.стерео3а4д
-.стерео3а4к
-.стерео3б4л
-.стерео3г4р
-.стерео3и4з
-.стерео3с4к
-.стерео3с4п
-.стерео3т4р
-.стерео3э4л
-.стерео3э4н
-.стерео3э4ф
-.супер3а4г
-.супер3а4д
-.супер3а4к
-.супер3а4н
-.супер3а4р
-.супер3а4э
-.супер3г4р
-.супер3е4с
-.супер3и4з
-.супер3и4к
-.супер3и4м
-.супер3и4н
-.супер3к4л
-.супер3п4р
-.супер3с4к
-.супер3с4п
-.супер3с4т
-.супер3х4р
-.супер3э4в
-.супер3э4к
-.супер3э4ф
-.съ4
-.сь4
-.ть4
-.фь4
-.хризо3и4д
-.хризо3п4р
-.хризо3с4т
-.хь4
-.элек3тро
-.элек3тро3а4в
-.элек3тро3а4г
-.элек3тро3а4к
-.элек3тро3а4н
-.элек3тро3а4э
-.элек3тро3б4л
-.элек3тро3и4з
-.элек3тро3и4с
-.элек3тро3о4б
-.элек3тро3о4в
-.элек3тро3о4г
-.элек3тро3о4д
-.элек3тро3о4к
-.элек3тро3о4п
-.элек3тро3о4с
-.элек3тро3о4т
-.элек3тро3о4ф
-.элек3тро3о4ч
-.элек3тро3с4т
-.элек3тро3т4р
-.элек3тро3э4к
-.элек3тро3э4н
-.элек3тро3э4р
-3авто
-3актив
-3аппа
-3г4рад
-3г4рам
-3г4раф
-3им4пул
-3ин3ст4ру
-3ин3те4р
-3к4ва
-3к4лас
-3к4ри
-3оп3тик
-3п3роек
-3п4ро
-3с4коп
-3с4фе
-3с4хе
-3ск4ла
-3ск4ле
-3ск4ло
-3ск4ля
-3ск4ра
-3ск4ре
-3ск4ри
-3ск4ро
-3ск4ру
-3ск4ры
-3сп4ла
-3ст4ра
-3ст4ре
-3ст4ри
-3ст4ро
-3ст4рук
-3ф4рагм
-3х4лор
-3х4ром
-3ш2таб
-3ш2тат
-3э4к5ви
-3э4ко
-3э4лек4т
-3э4леме
-3э4нерг
-3э4нтро
-3эффе} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-nb.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-nb.hyp
deleted file mode 100644
index 85bd4f8e131..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-nb.hyp
+++ /dev/null
@@ -1,9 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-nb.rme
-
-% used: a b d e n r t
-
-\hyphenation{
-at-ten-de
-be-tre} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-nb.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-nb.pat
deleted file mode 100644
index ea562eebd46..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-nb.pat
+++ /dev/null
@@ -1,27455 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-nb.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u v w x y z å æ è é ê ò ó ô ø
-
-\patterns{
-.a4
-.aa4
-.ab4ba
-.ab7be
-.ab6s5t
-.ac6tin
-.adel4s
-.ad8la.
-.ad6le.
-.ad2r
-.ad1s2
-.af7f
-.af5t4
-.af5f8u
-.ag6na.
-.ag6ne.
-.ag4r
-.ai2
-.a6k
-.ak6ka.
-.ak6ke.
-.ak3kl
-.ak3kr
-.ak6ne.
-.ak6r
-.ak8sa.
-.ak4se.
-.ak6s3t
-.ak6ta
-.ak4te.
-.akte4r
-.akter5e
-.ak5tr
-.akva7
-.a6l
-.albu5en
-.alfa3
-.al4ge.
-.al5gi
-.al6ka.
-.al4ke.
-.al4kom
-.al4la.
-.al4le.
-.al5leg
-.al5lo
-.all5s6
-.al4ma.
-.al8me.
-.al5m6in
-.al4na
-.alpe5
-.al6s7k
-.als5o
-.alt4a
-.al4ta.
-.al5tar
-.al4te.
-.alt3o
-.al6ve.
-.am7b
-.a6me
-.am6ma.
-.am4me.
-.am4s4
-.am6ta
-.a6n
-.ana3b
-.an4da.
-.an4de.
-.an5d4ra
-.an4d5ø
-.and6ø6v
-.an3er
-.anes5
-.an4ga.
-.an3ge
-.an4ge.
-.ange4s
-.an4ja.
-.an4ka.
-.an4ke.
-.an4la.
-.an3n
-.an4na.
-.an7nal
-.ann4e
-.an4ne.
-.an5s8
-.an4sa.
-.an4se.
-.ant2
-.an4ta.
-.an4te.
-.an5tem
-.an5tep
-.an4ti.
-.an6tin
-.an4tis
-.an4tiv
-.ap8lan
-.ap1p6
-.ap8t
-.arbi5
-.ar6de.
-.are4o7
-.ar4ge.
-.ar5ges
-.ari6a
-.ari8e
-.arie5ne
-.ar5ka
-.ar8ka.
-.arlan9
-.ar4me.
-.ar7mea
-.ar4na.
-.ar3ne
-.ar4ne.
-.ar5nes
-.ar6ra.
-.ar6r7u
-.ar6ta.
-.ar4te.
-.ar3t4h
-.ar9ti
-.ar6va.
-.ar4ve.
-.ar4ved
-.ar4ver
-.arvi6
-.a6s
-.as8ka
-.as4ke.
-.as5kese
-.as4le.
-.as6pa.
-.as5s
-.ast5ru
-.at4h
-.at4ki
-.at4le.
-.at4na.
-.at2o4
-.at3s
-.atte4
-.att6r
-.a5ty
-.au8de
-.au6e
-.au8ga
-.au4ge
-.au4ka.
-.au8le.
-.au4r
-.au6sa.
-.au6se.
-.aus9k
-.au4sp
-.avi2
-.av7i6d
-.av7inde
-.av4la.
-.av4le.
-.av7s6
-.b6
-.ba6by
-.ba6la.
-.ba4le.
-.ba4ne.
-.ban4k3l
-.ba4re.
-.ba4ri.
-.ba8te.
-.be4de.
-.bede4n
-.be6d5ene
-.be4d5et
-.be8di.
-.be3e4d
-.be6ke.
-.be4la.
-.be9nar
-.be4ne.
-.be6ra.
-.be6re.
-.be4res
-.ber6ett
-.be8ri.
-.be7ska
-.be6sten
-.be4ta.
-.be6te.
-.be5t4v
-.bi6de.
-.bi6en
-.bi4le.
-.bilet5
-.bi6t3r
-.bl4
-.bla4d
-.ble4k3
-.ble5k4e
-.blek4k3f
-.blekk3s4t6
-.blekk9s8v4
-.bling5
-.bo8da
-.bo8de.
-.bogs8
-.bok5
-.bo4k4en.
-.bo8la
-.bon2
-.bo4na.
-.bor6t5
-.bort6e
-.bor8ti8
-.bort9r
-.brudd7s6
-.bruddså7
-.bu6da.
-.bu3d6r
-.bu4et
-.bul4k5
-.bus6sy
-.by6de.
-.by8ta.
-.bæ2
-.bø6k5a
-.bø8nen
-.bø8ner
-.c4
-.ca4en.
-.car4s5
-.ca6se
-.ce6b
-.cos1
-.co4st
-.d6
-.da4ge.
-.da4le.
-.dags6e
-.da2m
-.da4ne.
-.da4ta
-.dau3s
-.deka9r
-.deko7d
-.de4le.
-.de4l5ei
-.del5s6
-.de4mi.
-.demo7e
-.den5sl
-.de4re.
-.de4r5et
-.de4ri.
-.de6r3i4
-.de7r4i5v
-.de4r5om
-.de8ru
-.de6s5m
-.de4so
-.de4sto
-.de4u
-.devi5s
-.di2a
-.di5e4l
-.di6er
-.di4et.
-.di9f6t
-.di4ne.
-.dings7a
-.di4sk
-.di8s3t
-.do4en
-.do4er
-.do8et
-.dome5
-.do4ra
-.do6re.
-.drau4m
-.ds4
-.du4a
-.du4en.
-.du4er
-.duft3
-.du4ge.
-.duk3n
-.du4se.
-.du4st
-.dy4re.
-.dø6la.
-.dø6r3
-.dø7r4a
-.dø7r4e
-.dø4ve.
-.då5ren
-.då7ret
-.e6
-.eb4ba
-.ecu6
-.ed4da
-.ed4le.
-.efo7
-.ef4ta
-.efta5s
-.ef6ter
-.eg8de.
-.ege2
-.ege5l
-.eg6ga.
-.eg4ge.
-.eg4gel
-.eg8la.
-.eg4le.
-.eg6na.
-.eg4ne.
-.ego7t8
-.egs4
-.eg8se.
-.eg5si
-.ei2
-.eid5a
-.ei5den
-.ei4ga.
-.ei7ger
-.eik5a
-.ei4ke.
-.ei3l
-.ei3m
-.ei8ma.
-.ei8me.
-.ein7as
-.ei3ni
-.ein5og5
-.ein5s6ta
-.ein8s7to
-.ei9rar
-.ei5res
-.eir9u
-.ei5te
-.eit9r
-.ekk4o
-.ek4le.
-.ek3li
-.ek6ne.
-.ek4r
-.ek8sa.
-.ek3se
-.ek8se.
-.ek4sp
-.eks6pi
-.eks3t4
-.ek5s4ta
-.ek8ta
-.ek4te.
-.ek7to
-.el8da.
-.el4de.
-.el4g5r
-.eli5ne
-.el3k
-.el5l
-.el6s
-.els6a
-.els4kl
-.els6t
-.el6ta.
-.el6te.
-.elve7l8
-.el6veg
-.em3b2
-.emfa9
-.em4ma.
-.em8me.
-.em6na.
-.em5p
-.en5a
-.en4da.
-.en4de.
-.end5r
-.en4ga.
-.en6gav
-.en3ge
-.en4ge.
-.en6g5r
-.engs6
-.en6ka
-.en4ke.
-.en5og5
-.en6sa
-.en4se.
-.en5so
-.en3sp
-.en5t
-.en6te.
-.ent4r
-.en6t5ra
-.ent8re
-.en3ø4
-.ep6t
-.er8a
-.er4e
-.er4g5r
-.er4ke
-.er4la.
-.er4le.
-.er6ma.
-.er4me.
-.er4mek
-.er4na.
-.er6ta.
-.er4te.
-.es9ast
-.es1k
-.es3ka
-.es8ka.
-.es4ke.
-.es5l
-.es8la.
-.es8le.
-.es3p
-.es6pa.
-.es6r
-.es8sa.
-.es4se.
-.es4so
-.es5ta
-.es3te
-.es6te.
-.es7tet
-.es5ti
-.es6t6r
-.es7tu
-.et8la.
-.et8le.
-.et4na
-.et4ne.
-.et4s
-.et8sa.
-.et5s4e
-.et6se.
-.ets4i
-.et1te4
-.et6ter5
-.et6ti
-.euro5
-.ev8ja
-.ev4je.
-.ev4ne.
-.ex4
-.f4
-.fa2e
-.fag3s4
-.fa4ne.
-.fan3t4o
-.fe4e
-.fei8e
-.feil5i
-.fe2l
-.fela9
-.fel5l
-.fel4ta
-.fe4ma
-.fe8me
-.fem5o6g5
-.fem5t
-.fer8ro
-.fer6s
-.fe8sl
-.fe8st5
-.fes3t6e
-.fett5a
-.fi4b5
-.fi6a
-.fi4le.
-.fire5o6g5
-.fis6k
-.fjel4
-.fjor4d3
-.fla4t5o
-.fo4bi.
-.fol2
-.fo2r
-.for3d6ri
-.for7d6ra
-.for5en.
-.form5s
-.for7s6o
-.fre6e
-.fri5e6re
-.fug2
-.fu6ge.
-.ful2
-.fu8se.
-.fy8se
-.fø8rel
-.g6
-.gaf7
-.ga4le.
-.ga8li.
-.ga4me
-.ga4ne.
-.gang5s4
-.gas4
-.gas5ta
-.ga2t
-.ga4ve.
-.ga9vee
-.ge2a
-.gel4e
-.ge3ne
-.ge6ni5
-.gen5s
-.ge4o
-.ge4st
-.ge5s6tap
-.ge9sv
-.gha5
-.gift5s
-.gi4n
-.gi4s
-.gis7p
-.gi8v3a
-.gje8n7
-.gl6
-.glo6i
-.glo9v
-.gly5s
-.glø9se
-.gnå7la
-.go5des
-.gos7
-.gra4v3end
-.grei4e
-.grunn5s
-.grus5s
-.gu4de.
-.gud3v4
-.gu4lat
-.gus1
-.gu4tu.
-.gø2
-.gås4e5
-.gå4v
-.h4
-.hai5s6
-.ha6ka.
-.ha8ma.
-.hand5s6l
-.handsla9
-.ha6v5ak
-.ha6vi
-.he4er.
-.hei5e
-.hel3u
-.he2n
-.hen3i2
-.he6r5i6
-.he6r5o6
-.he9r6oe
-.he7r6oi
-.he7r6ol
-.he9r8os
-.he8ru
-.hes4s5
-.het6s5
-.het7s6e
-.he4t5
-.he5t6e
-.hil4l
-.hi4n
-.hi6re.
-.ho2d
-.ho2e
-.ho4re.
-.ho5ren
-.ho7ret
-.ho8ta.
-.ho8va.
-.hu4di
-.hull7s
-.hu4s3en
-.hus6val
-.hvit3
-.hvi3t4e
-.hvo8r5
-.hy6ra.
-.hy4re.
-.høi5
-.hø4re
-.hø4va
-.hø4ve.
-.høy6st5æ
-.hå8en.
-.hå8er
-.hånd5s6l
-.i2
-.i3a4
-.i3bl
-.i4da
-.ifø5re
-.ig8la.
-.ig4le.
-.i4her
-.ik2
-.ik6k
-.ikke5
-.ikkes8
-.i3k6l
-.ik5t
-.ik8te.
-.i5kv
-.i3la
-.i4la.
-.i8lande
-.ilbo8da
-.il6d3r
-.il6de.
-.i3leg
-.i6les
-.il4ja
-.il6je.
-.il6ke.
-.il4le.
-.il6sk
-.il4te.
-.i6me
-.imø5te.
-.in5ad
-.in5de
-.in8ga.
-.in4ge.
-.in3gr
-.in6gri
-.in5k6
-.in6ka.
-.in4n3
-.in4ne.
-.in5n6e
-.in6n7eks
-.in6n7ets
-.in6n7ett
-.in4n3i
-.in5s
-.in7tes
-.io4na
-.io4nom
-.i4rer
-.ir7k8
-.ir8ra.
-.ir6re.
-.i6sa
-.i3sc
-.i6se
-.is7k6
-.isla8ga
-.is6lam
-.is4le.
-.is4let
-.is4me.
-.is8na.
-.is8ne.
-.is5pa
-.i5s8pe
-.is3s4
-.is6sa.
-.is4se.
-.is5sk
-.ist6
-.is8te.
-.i5sted
-.i5stem
-.is7ti
-.i6s7tj
-.i6s7tr
-.is8ut.
-.i6s5ø
-.i5ti
-.i3va
-.i4van
-.i4var.
-.i3ve
-.i4vel
-.i6ven
-.i4ver.
-.i4vere
-.iv8ra.
-.iv6re.
-.i3ø
-.j4
-.ja4de.
-.ja6e
-.ja4ne
-.ja8se.
-.ja4va.
-.je2a
-.je2l
-.je2m
-.je5re
-.jern5s4
-.je4ta
-.ji4
-.jo8en.
-.jor8d7r
-.jor8d7s8
-.jor8d7u
-.jo4se.
-.ju6a
-.ju6la
-.jule3
-.ju4li3
-.jø4dep
-.k6
-.kaf2
-.ka6la.
-.ka6li.
-.kal7t8
-.kalve5l8
-.ka5me
-.ka3na
-.ka4ne.
-.ka4p3r
-.ka4ra.
-.ka5r6a5v
-.ka6re.
-.ka5rin
-.kar8t7r
-.ka4te.
-.ka5t6h
-.kau9k
-.ka6va.
-.ka4ve.
-.ke6e
-.kel3
-.kier3
-.ki4na
-.ki7ni
-.kino3
-.kir2
-.ki4se.
-.ki8va.
-.ki6ve.
-.kje3de5
-.kje4k
-.kjek7l
-.kjønn4
-.kle4s
-.kli5ne
-.klo9va
-.kly7sa
-.klø7s8
-.kna7se
-.kne4p3r
-.kne7r8
-.ko6da.
-.ko7gr
-.ko4la
-.ko3le
-.ko8le.
-.kol5j
-.ko3pe
-.ko6pe.
-.kor6s5ed
-.ko4se.
-.ko6ta.
-.ko4te.
-.ko6ve.
-.kring5s
-.kru4s3t
-.ks6
-.ku5f4l
-.ku4le
-.ku8ra.
-.ku4re.
-.ku8ta.
-.ku8te.
-.kva4r1a
-.kve9ka
-.kve5ke
-.ky8la.
-.ky4le.
-.ky6te.
-.kø3s
-.kå6pa
-.l6
-.la4da.
-.la4de.
-.la4ga
-.la4ge.
-.la5ger
-.la4ma.
-.lapp8e7
-.lap5s4e5
-.la6ta.
-.la4te.
-.la3tr
-.la4va
-.la3ve
-.la4ve.
-.la6v5æ
-.le8ar
-.le4da.
-.le4de.
-.le4er
-.le6et
-.le2f
-.lef3l
-.lega5ta
-.le4ge.
-.le4gel
-.le8gi.
-.lei8e
-.lei7er.
-.lei4ve
-.le4ke.
-.le4k5r
-.lemu9
-.le4ne.
-.le6o7
-.le7s6a
-.le4se.
-.le4sek
-.le4ses
-.le4s5p
-.le2t
-.le7ta
-.let6tan
-.le2u3
-.le3va
-.le4va.
-.le4ve.
-.le4ves
-.li8a
-.li4de.
-.li4e4
-.li5ene
-.li2g
-.liga3
-.li2k
-.lik5k6
-.lik3o
-.lik3s4
-.li4ma
-.link6
-.li6ra
-.li4re.
-.li4sa
-.li4se.
-.li4ta.
-.li4te.
-.li5ti
-.li4ve.
-.li4v5en
-.liv8s7u6
-.liv4s5v
-.lo5e6
-.lo6ge.
-.lo8gi.
-.lo6g5r
-.lo4i
-.lo6na
-.lo8o
-.lo6ri
-.lo8sa.
-.lo4se.
-.lo6te
-.lo4va
-.lo3ve
-.lo4ve.
-.lu4d
-.lu2e
-.lu4na
-.lu6pa
-.lu4pe.
-.lu6ra.
-.lu4re.
-.lu6se.
-.lu4ta.
-.lu9tas
-.ly4de.
-.lyd3s
-.ly8e
-.ly8ge
-.ly4se.
-.ly4sk
-.ly5s6e
-.lys5s6
-.ly8str
-.ly4te.
-.ly4ve.
-.lø8de.
-.lø6en.
-.lø8ne.
-.lø6pa.
-.lø4pe.
-.lø8s7a
-.lø8s7i
-.lø8s7m
-.lø8s7p
-.løv5i
-.løye5ne
-.lå8ma
-.lå5re
-.lå6re.
-.lå4te.
-.m8
-.ma4ge.
-.mag9r
-.mah6
-.ma3ka
-.ma4ke.
-.mak6t5at
-.makt5s
-.ma4le.
-.ma4li.
-.ma4na.
-.mande8l
-.ma4ne.
-.ma4ni.
-.ma4ra.
-.ma4re.
-.ma4ri.
-.mar8sj7ø
-.ma4sa.
-.ma4si
-.ma6st
-.ma8ta
-.ma6t8h
-.mat5t8o
-.ma4v
-.me4d3
-.me6d5ei
-.me6d4i
-.me6d7in
-.me6d5r
-.mei5er.
-.mei5et
-.mek5l
-.me6la.
-.mel3l6o
-.me4l5ø
-.me4ne.
-.me3ri
-.me8s7al
-.me4sk
-.me2t6a3
-.me3ta4ll
-.mes5ti
-.me4tri
-.mi6kj
-.mi4le.
-.mi4me.
-.mi4ni.
-.mi4nik
-.min4k3
-.min5k4e
-.mi6s3t4
-.mne6
-.mo5de
-.mo6er
-.mo4na.
-.mo8ne.
-.mon4st
-.mons6t5r
-.mor5d6e
-.mo4re.
-.mor3t6a5
-.mo4se.
-.mo4ta
-.mo4tek
-.mo4ter
-.mo4tr
-.mo5v
-.mu8ga
-.mu8ge.
-.mu6le.
-.mul5es
-.mur7
-.mu5r8e
-.my8ka
-.my4ke.
-.mø4re.
-.mø5res
-.mø2t
-.må6la.
-.mål3o
-.n8
-.nabo3
-.na6ge.
-.nak2
-.na8ke.
-.nan5s
-.na4r
-.na4sa.
-.nat2
-.na3tr
-.nat6tr
-.ne4de.
-.ne4den
-.ne4d5i
-.ne4d3r
-.ned3s4
-.ne4f5r
-.ne4g7
-.nei5e
-.ne6k6r
-.ne4o7
-.ne4o8n
-.ne8pa.
-.ne6pe.
-.ne2s
-.ne4t
-.ni8ar
-.ni6er
-.nig4l
-.ni4na.
-.ni5o6g5
-.ni4pa.
-.ni6pe.
-.ni8sa
-.ni6se.
-.nita9
-.ni4to
-.ni4va
-.no6de.
-.no6e
-.no8ka
-.no4me.
-.no8mi.
-.no4r
-.no8se
-.no8si.
-.no4va.
-.nu4e
-.ny5a
-.ny3o
-.ny8sa.
-.ny6se.
-.ny4te.
-.nær9ast.
-.næ4re.
-.nød4d
-.nø4re.
-.nå4de.
-.nå6le.
-.o6
-.obo5e
-.od4da.
-.od4de.
-.odel8s7
-.od8la.
-.od8le.
-.offsi6
-.of4te.
-.of5teb
-.og4
-.ok1k
-.ok8ka.
-.ok8ke
-.ok4se.
-.old3s
-.ol4ga.
-.oli5
-.ol8la
-.ol8le.
-.oli5v6
-.ol6m
-.om1
-.om4ar.
-.om6bo.
-.om4e6n
-.om4gå.
-.om4me
-.om5s2
-.on4de.
-.on5des
-.ond3s
-.on6kl
-.on6na
-.on8ne.
-.op5ar
-.op4pa
-.op4pe
-.opp7el
-.op4pi
-.opp3l
-.oppla8te.
-.opp5s6
-.op7r
-.opt6
-.or4da
-.or4de.
-.or4del
-.or4dr
-.ord5s4
-.or5ga
-.or6ka.
-.or4ke.
-.or6me.
-.or4re.
-.ort6
-.or6va
-.osa5
-.os3el
-.os4k
-.os4s
-.os4te.
-.ot5r
-.ot7t8a
-.ot4ta.
-.ot4te.
-.ot4tes
-.ot3to
-.ot4to.
-.ove6
-.over3
-.overen6d
-.over3i4
-.over5k8
-.ov8re
-.ov5u
-.ov6ul
-.p6
-.pa8la.
-.pa4le.
-.pal6i
-.pa8n7a
-.pa5n6e
-.pa6n7eu
-.pa5n6i
-.pa6re.
-.pe3do
-.pe4ke.
-.pek5t
-.pel4sj
-.pe4ne.
-.pe2p
-.pep3r
-.pe8ri7
-.per6m7
-.pe8sa.
-.pese5t
-.pe4st
-.ph2
-.pi6le.
-.pi6p
-.pi9ra
-.pi2s
-.plen5g6
-.plus6s5
-.plus7s6e
-.plø7se
-.po4et
-.po3la
-.po8la.
-.po4le.
-.po4log
-.po2p1
-.po2p2e
-.pop3p
-.po3p2u
-.po8ra
-.po6re.
-.po4res
-.po6st
-.po8ta.
-.po6tek
-.pro7k8
-.ps2
-.pøn3
-.pøn9s6
-.på5d6
-.r6
-.ra6da.
-.ra6et
-.ra4ga.
-.ra4ge.
-.ra4ja.
-.ra4ka
-.raks7
-.ra2m
-.ra4na
-.ra4ne.
-.ran7s6a
-.ra6pa.
-.ra6pe.
-.rap4s
-.rap5s4e
-.rap5s4o4
-.ra4re.
-.ra6sa.
-.ra7ti
-.ra6va.
-.ra4ve.
-.re4al
-.re6da.
-.re4de.
-.ree6l
-.rege4l
-.re4gi.
-.rei2
-.rei7de
-.rei5er.
-.re4ins
-.re6ka.
-.re4ke.
-.re8klar
-.re8kle
-.re4kli
-.re6kn
-.re8le.
-.re4ma.
-.re4na.
-.re4ne.
-.ren6sk
-.ren4t
-.rep5s
-.res9s
-.re5s6tan
-.rett7s8kri
-.re4ve.
-.re4ves
-.rev9n
-.ri2d
-.ri8e
-.rie5ne
-.ri6ka.
-.ri6ma
-.ri4me.
-.ri4pa.
-.ri4pe.
-.ri4p5o
-.ri4sa.
-.ri4se.
-.ris5ko
-.ri4s3ø
-.ri4ta.
-.ri6te.
-.ri6va.
-.ri4ve.
-.ro4an
-.ro4de.
-.ro8di
-.ro4e
-.ro8ke.
-.ro4ma.
-.ro4mi
-.ro6pa
-.ro9par
-.ro3pe
-.ro4pe.
-.ro4sa
-.ro9sar
-.ro4se.
-.ro4sed
-.ro4ta.
-.ro4te.
-.ro4tek4
-.ro8va
-.ro3ve
-.ro8ve.
-.ru8ga.
-.ru4ge.
-.rug9le
-.ru8ka
-.ru4na.
-.ru4ne.
-.runes6
-.run7g
-.ru4se.
-.ru4sk
-.ru8va.
-.ru4ve.
-.ry2e
-.rye7ne
-.ry6ke.
-.rød2
-.rød7s4
-.rø8le.
-.rø4re.
-.rø1v
-.rø8va.
-.rø4ve.
-.røy7e
-.rå8da.
-.rå4de.
-.rå4en
-.rå8er.
-.råg8
-.rå6ka.
-.rå4ke.
-.rå3k4l
-.rå6na.
-.rå8sa.
-.s6
-.sa4ge.
-.sag6n
-.sa4la.
-.sa4le.
-.sa4me.
-.sa4mer
-.san6d7
-.san7d8e
-.san7d8i
-.san8s7ku
-.sau6e
-.sch6
-.se2b
-.se2e
-.se4i
-.se4k5l
-.sek4s5o6g5
-.sel4v5
-.sel4v5i6
-.se6na.
-.se4ne.
-.sen7s
-.se4ra.
-.ser7vel
-.se4te.
-.sha9ke.
-.si2d
-.si6er
-.si6ga.
-.si4ge.
-.sik5k6e
-.si8la.
-.si4le.
-.si4ne.
-.sinn6s5
-.si4ra.
-.si5str
-.si4va
-.si4ve.
-.sje4i
-.sju5o6g5
-.sk6
-.ska7ka
-.ska5ke
-.skat4
-.skei5d
-.ski6n
-.skinns6
-.sko7de.
-.skog5u
-.skritt9s8
-.skudd5s6
-.skuddså7
-.sku6m5
-.sky6f7la
-.skå5ra
-.sle6s5v
-.sli6b7r
-.slim5
-.slotts5
-.slu9ka
-.slu5ke.
-.slø5se
-.sma4s
-.smas5k
-.smi6g7r
-.smo9g
-.små3
-.små7k6
-.små9l
-.små5t4
-.småt5t
-.sn4
-.sne3
-.sne4k
-.snitt5s6
-.snø3k
-.soa8
-.so8de
-.somma4
-.son6a
-.sop4pa
-.sor4t5
-.so4ta.
-.s8p6
-.spa5ra
-.spe6e
-.spi9la
-.spri5s6
-.st6
-.sta9ka
-.sta5li
-.stat4s
-.sted4s
-.ste4i
-.stein7a8
-.stein7s8
-.stem4m
-.stev9na
-.sti7me
-.sto5ne
-.sto6ra
-.strek5s6
-.stu8a
-.stu9va
-.stål5l6
-.sund5s6
-.su4ri
-.su5te
-.sv8
-.sva5la
-.sva5ra.
-.sva5re
-.svar5s
-.sver8n
-.syd5
-.sy3d6a
-.sy5d6e
-.sy6na.
-.sy4ne.
-.sy5ter
-.sy3ti
-.sy6v5
-.sy6v5o6g5
-.sz6
-.sæ2
-.sær1
-.sær3e4g
-.sø8ka
-.sø4ke.
-.søl6v5
-.sør3a
-.søye5
-.søy6en
-.så5pen
-.så3re
-.t8
-.ta8ke.
-.tak9r
-.tak5sk
-.tak9s8p
-.ta4la.
-.ta4le.
-.ta4les
-.tal4li
-.tam5m
-.tan5de
-.ta4p5r
-.ta4ra.
-.ta4re.
-.ta2s
-.te4e
-.te6i
-.tei9er
-.te8ke.
-.te4ma.
-.te6o
-.te8ne.
-.te4se.
-.te7si
-.te4sta
-.te4str
-.th2
-.ti8a
-.tid5r
-.tid6s3
-.ti4de.
-.ti4e
-.ti4g3r
-.ti4ki
-.ti4l5
-.tili6
-.ti4med
-.ti4na.
-.ti4ne.
-.ti4p5l
-.ti4s
-.to5arm
-.to6en.
-.to4er.
-.to6et.
-.tokk8
-.to6le.
-.to6na.
-.to5o6g5
-.to4ra.
-.to4re.
-.to6reb
-.tor6g5a
-.to3ro
-.torsk6e5
-.tor4s5v
-.to5rye
-.to4str
-.tota9la.
-.to5t8
-.to8te.
-.to6va
-.to4ve.
-.tr6
-.tra7c
-.tre3b
-.tre7p
-.tre5o6g5
-.tre6skja
-.tre3s8ko
-.tre7sl
-.tre3sp
-.tre5s6t
-.ts2
-.tsj2
-.tu4en.
-.tu6na
-.tu4ne.
-.tu6ra.
-.tu4re.
-.tu8ve.
-.tve6n
-.tver6r5a6
-.två7g
-.ty6da.
-.ty4de.
-.ty8et
-.ty8re.
-.tyr8s9
-.ty5ter
-.ty5ti
-.tæ4re.
-.tøv9d
-.tø6ve.
-.tø9ver
-.tø5vet
-.tå5ker
-.tå4le.
-.tåp9n
-.tå5ren
-.tå7ret
-.u5a6
-.u1b2
-.u6berg
-.u3d2
-.u7de
-.u3e6
-.u4er.
-.u6era
-.u4ere
-.uf4f
-.uf8sa
-.u4ga
-.u5gi
-.ug6la.
-.ug8n
-.u1i
-.ui6m
-.u1k6
-.u4ka.
-.u6ke
-.u7kn
-.u3le
-.u4le.
-.ule8k
-.ulen4d
-.u6lende
-.u8lene
-.u6let
-.u4lin
-.ul6ka
-.ul4ke.
-.ul4la.
-.ul8le.
-.ul8ma.
-.ul4me.
-.ul4ne.
-.ul5t
-.ul6te
-.u1lu
-.ul4v5i
-.u1ly
-.u3lå
-.u5ma
-.umu7
-.u2n
-.unde6ri
-.und5r
-.une8
-.u5nek
-.u9net
-.un4ge.
-.un2n
-.unn3s
-.u3no
-.un4se.
-.un4t
-.u5nu
-.u1o
-.u1p
-.u4pi
-.up2l
-.up4p3
-.u2ra
-.u5raf
-.ur6an
-.u6rane
-.ur4d
-.ure4n
-.u4ret.
-.u6rets
-.u2r2i
-.ur4ke
-.ur6na
-.ur4ne.
-.u1ro
-.ur1s
-.ur8ta
-.ur4te.
-.urte5m8
-.ur6tet
-.u5rut
-.u3ry
-.u5rå
-.u1s2
-.u4sa.
-.u4sas
-.u5se
-.u3ska
-.u5sn
-.u7sp
-.us3se
-.us6t4
-.u7stek
-.u5stel
-.usy5r
-.u2t
-.uta4g
-.ut5age
-.u3tak
-.u4ten.
-.ut5esk
-.ut6e7sko
-.u4ti.
-.ut3kan6t5
-.ut4ne.
-.u5tol
-.ut3o6v
-.ut6rer
-.ut6rov
-.u3trø
-.ut6se.
-.ut4si.
-.ut3t4
-.u3tu
-.v6
-.va4da.
-.va4de.
-.vai4
-.va4ke.
-.va6les
-.valg5s
-.va4ne.
-.van4n5
-.vann5s4
-.va6reta
-.vari4e
-.var5sk
-.ve8en.
-.ve4ga.
-.ve6ge.
-.ve4g3i
-.veg3s4
-.vei3g4
-.vei3s
-.vei4ta
-.ve4l3
-.ve5l4ar
-.ve6l5art
-.vel5d
-.ve4l3e
-.vel5l
-.ve5l4os
-.ve4l5ov
-.ve4ly
-.ve8læ
-.ve4ne.
-.ve4net
-.ve4ra.
-.ve4ras
-.ve6re.
-.vermo9
-.vers4t
-.ver5ste
-.ve4sl
-.ve4st
-.vete5
-.ve8te.
-.ve4ve.
-.vi4da.
-.vide4
-.vi6de.
-.vi4d5å4
-.vi2e
-.vi4ka.
-.vil5l6a5t
-.vi6ma.
-.vi8me.
-.ving7s
-.vin5n
-.vi4sa.
-.vi4se.
-.vi6seri
-.vi4ta.
-.vi4te.
-.vi5tr
-.vok4s3
-.vok5s6e
-.vo6r
-.vo6ta.
-.vy4
-.vye5ne
-.væ4ra
-.væ4re.
-.vå4d
-.vå4r3
-.vårs6
-.wa4r
-.we4g
-.wi6e
-.xe2
-.y6
-.ye4
-.yn8da.
-.yn4de.
-.yn6ge.
-.yn8ka.
-.yn6ke.
-.yn4kv
-.yns2
-.yp8pa.
-.yp4pe.
-.yr8ja.
-.yr8je.
-.yr8ka
-.yr4ke.
-.yrkes5
-.yr6t
-.ys4
-.ysterie8
-.yt9ren
-.yt5t
-.yt6te.
-.yv6
-.z4
-.zj8
-.æ8
-.ære4s5a
-.ære4st
-.æt4te.
-.ø6
-.øg8la
-.øg4le.
-.øi5
-.øi6e
-.øko5
-.øk6ta
-.øk4te.
-.øl3ed
-.øl3s6
-.øl3v6
-.øm4me.
-.øres8t
-.ør4je
-.ør5k
-.ør8na.
-.ør4ne.
-.ør6ski
-.ør9sm
-.ør3st
-.ør8ta
-.ørt9an
-.ør8te.
-.øs2
-.øs4t
-.øv4d
-.øve4r5
-.øve4r6s
-.øv4re.
-.øy6de.
-.øy2e
-.øyele8ge.
-.øy5ene
-.øy4n
-.øy6na
-.øy6ra
-.øy4re
-.øy8rer
-.øy4str
-.å2
-.å6e
-.å6f
-.å6g
-.å6k4
-.å8l
-.ål6t
-.ål8ut.
-.å8m
-.ån8da.
-.ån4de.
-.ånd6s5
-.åp6na
-.års3k
-.å6se
-.ås3k
-.ås7l
-.ås3m
-.å3ste
-.ås5v
-.å4t
-.åt4te.
-.åtte5o6g5
-.å6v
-a1ad
-4aaf
-a3aft
-aa4g
-a1aks
-aak5v
-aa3la
-aa2m
-a1a2n
-a6an.
-aans9t
-a7antr
-a1ap
-aa4ri6
-aarie9ne
-aar5n
-aa2s
-3aase
-aa5t6h
-a1av
-a6bab
-ab7av
-ab9b8l
-ab4but
-abe4lei
-abel5t4
-abe9na.
-abes9ka
-4abev
-a5bh
-abie6
-abi9er
-abi9la
-a4bist
-ab1l
-ab9lara
-ab4lok
-abl7u
-a5bo9a
-abo3b
-abo3e
-a3boer
-abo3kl
-a3bord
-5aborte
-ab1r
-ab8re
-ab2sl
-abu5e
-a4buel
-a4buf
-a6busk
-a4bute
-a4by.
-a4byb
-a4byk
-aby3r
-8ac
-aca5
-a6ca.
-ache3a
-ack3
-a1co
-6ada
-a5dal
-ad5ant
-a4dart
-ad9da
-a2deb
-ade5i6s
-a2dek
-a4del
-a4d5elv
-a5dend
-a3dene
-a2deo
-a2dep
-a5der.
-aderle7
-a2des
-a5de4ser
-a3desl
-a3det.
-a3dets
-3adfer
-1adg
-ad8ge
-adi4ene
-ad1j
-1adju
-2adl
-1adm
-ad5n
-ado7a
-a4dob
-ad7opp
-4ador
-a7dora
-ad5raf
-ad7ran
-a2dre
-ad7rel
-ad5rep
-ad3ret
-ad3rid
-ad1ro
-a7drø
-ad4s5amt
-ad4si
-adsle6ge.
-ad5s4let
-ads5te
-ad5s6tek
-ad3str
-ad5un
-1adv
-adva5re
-2adve
-a4dy.
-a4d5øy
-2a1e2
-4aea
-a4ed
-8a7ede
-aed7r
-aek5t
-a4el.
-ae5la
-ae3li
-ael5o
-aen5t
-a3ep
-aes8ke.
-aes4t
-6afa
-6afc
-a4fe.
-afei5
-af4fan
-af4fei
-affe3s
-af7fi.
-affi3d
-af5f4u
-af4i
-afia1
-afi5an
-a2fib
-a6f5inn
-afi7re
-a4fiti
-a5fjo
-af9la.
-af9lar
-af3le
-af5li
-a4frik
-6afo
-afo7ra.
-afo7r8e
-afore5ne
-afra5s
-1afri
-afs1l
-aft5ei
-af4t5e4l
-af6t5o
-aft1s4
-af5yr
-afø4r
-afø5ri
-4aga
-a2gaa
-a5gae
-a4ganf
-agang7s8
-a4gart
-a5gas.
-aga6ve.
-ag5de
-a7gelen
-a2gem
-3a4gent
-age4r3a
-age6rek
-age5risk
-a7gers
-a5geru
-age5s2
-a4geta
-a4gé
-ag5gar
-ag4gas
-ag5ge
-agg1s2
-agg7u
-ag6gut
-a4gi.
-ag5id
-agi6s
-ag1la
-ag4lem
-ag6lesa
-ag5lå
-agmo8e
-agn5om
-4ago
-ago5d8
-ag1or
-a5gos
-a3got
-ag5ov
-ag7ras
-ag1re
-ag1ri
-4a3gru
-ag1rå
-ag4samb
-ags4ang
-ag3s4ei
-ag4sel
-ag3sem
-ag5s6ing
-ag6sju
-ag4ska
-ags4kul
-ag2sl
-agsmå6la
-ags3tr
-ags3t2v
-ag2sy
-a6gu.
-agu3ay
-agå8va
-agå8ve.
-a1h
-a5hi
-ah4n5
-ah4v
-ai1a4
-ai3e2
-ai3er.
-ai4is
-ai5ke.
-ai5ko
-ai9kv
-ai5ne
-a3ing
-a1inn
-ai4n5o4
-ain8sm
-ai1ro
-ais4e
-ai4s3k
-aisk2h
-ai8sm
-ais6om
-ais5s
-ai5s4v
-ai5ve
-ai5ø
-a1j
-aja9d
-a7je
-a8je.
-ajes7
-a4jé
-a4ji
-a6jl
-6ak.
-a1ka
-4aka.
-1a2kad
-6akaf
-ak3aks
-6akan
-aka4o5
-4akar
-ak6arb
-aka4t5r
-ak4au
-2akd
-2ake
-a9kec
-a2keh
-a3kei5
-a6kek
-akel8e
-akelei9er
-ake5l4i
-ake4rek
-a4kerø
-ake5sm
-akes6p
-a8kete
-akhe6n
-4a1ki
-a6kid
-a6kik
-ak7ind
-akis1
-2a1kj
-akk6and
-ak5ke.
-ak3ken
-akk5erst
-ak4kes
-akki4
-ak5kim
-ak4k5is
-ak6kj
-ak1ko
-akk3ol
-ak6k5ri
-ak1ku
-ak4kul
-ak4k5v
-2ak1l
-ak3lev
-ak6lik
-ak6lus
-6akn
-ak5ne
-a5kno
-2a1ko
-ak5om.
-a5kon
-a7kos
-ak1o2v
-ak4pe6
-akra8sa
-ak5reg
-akregi4
-ak3res
-ak3ro.
-ak3roe
-ak1ru
-ak4s5and
-ak4sek
-akse3l4o
-ak4s5elv
-ak4ses
-ak7s6id
-3aksje
-ak2s1k
-ak7sku
-ak6sl
-4akso
-4aksr
-aks5ti
-ak5stol
-aks4tr
-akst7ren
-4aksu
-ak4tab
-ak4tai
-ak4tak
-akta6le.
-akt5all
-ak6tam
-ak6tans
-ak4tap
-ak4tas
-ak4tav
-ak4teg
-ak4tek
-ak5teme
-4akth
-7aktig
-ak5tit
-aktle6ge.
-ak2tr
-ak6tre
-akt3rå
-akt5s4la
-5aktue
-ak8t7æ
-akut2
-2akv
-ak3val
-ak5øl
-a5kå
-8ala.
-al7adr
-ala4g
-ala9ga
-a5lagm
-alag8ra
-a5lah
-a1lai
-al3all
-al3a4me
-al3ana
-a3land
-a5lande.
-a5lane
-alan5gr
-al3anl
-al3anv
-ala4o
-ala5pr
-a5lar.
-a3lara
-a5laren
-al3ark
-a7larl
-3a4larm
-al5arr
-a5lars
-al3art
-a7larv
-al3a4si
-2alat
-ala7tr
-4alau
-al5auk
-al1av
-ala4va
-al4ba.
-albo4g
-albu7er.
-5album
-al3de
-al7der
-4aldo
-ald3re
-2ale
-a2lef
-a2leg
-a9leg.
-aleie6n
-a9l8eik
-a5leke
-a4leks
-a4leli
-a2lem
-al5e4mu
-al8en.
-a4l3enh
-a4l5en5tr
-ale4pos
-a7lept
-a4lered
-alere6de.
-a4le5ro
-a4leru
-ale1s2
-ale7se
-a4lesk
-ale6s5kr
-a4lesl
-a6lesu
-a4leta
-a4le3te
-a2leu
-ale5v
-a4leva
-a4levi
-3alfab
-2alg.
-al3geb
-al2gu
-al4går
-al3ill
-a2lim
-a9lin.
-ali5na.
-a4l3ind
-a4l3ins
-al3int
-al9ja.
-al3je.
-alj5end
-al3jer
-al1jo
-al4jor
-al2j1u
-al1jø
-alj5ø6v
-al9kera
-alk7s6
-alla4ga
-alla6ge.
-al4lap
-all5art
-al5lea
-alle6ge.
-al4lek
-al5len.
-all5erst
-alle3s4
-al4lest
-al5let
-3allia
-al4lid
-5alli5e
-alli9ne
-al6list.
-al4lo3m
-all4sen
-all4sti
-al6lul
-al6løs.
-al4løse
-al8løst
-al6lå
-8almal
-al6mek
-al4met
-4aln
-a5lo.
-al1o4b
-a5loi
-al1om
-a1lon
-al3ope
-al7ord
-alori5
-alo6rit
-al3ove
-alow7
-alp2
-al3ps
-2als
-al7sed
-al9skap
-al7skare
-als1l
-als5lø
-al2sn
-al6spu
-als4te
-als6ter
-6alsu
-alt6ak
-alta8le.
-al3ted
-al7tema
-5alterna
-alte4t
-al4t5eta
-al4t5ete
-al4t3op
-a4l5u4k
-alul8la
-al5und
-alu8re.
-al5va.
-alv5aks
-alvak8se.
-al4ved
-al5v6er
-al8v9er8m
-alve5s
-al9ves.
-alvi8se
-al1vo
-alv3s
-6a1ly
-a2l5y4te
-alø5se
-al3øv
-a1lå
-al7å6t
-a4mah
-ama5is
-a2mak
-a5maki
-am3aks
-a2mal
-am5ald
-a3man
-a3mar.
-a5mara
-a7mas.
-amaso7
-3a4matø
-am4bar
-3ambas
-am4bat
-am5be
-a2mei
-am3eie
-a3meis
-a2mek
-am3eks
-amen8de.
-amen4s3
-amen6t7arv
-ame4ram
-a4meret
-3a4meri
-4amerin
-ame5u
-amhu7
-2ami
-ami7na
-ami7ne
-amisk3
-amis4ku
-am4lese
-am6lest
-am4mad
-6amn.
-am4ned
-a2mo
-amo5e
-am1op
-am1or
-amo6ve
-am4pap
-am4pare
-amp5ei
-am8peria
-am6perie
-ampes6
-amp7inn
-am2p3l
-am5p4let
-am4p4re
-am4pun
-am2på
-amru4
-am5rå
-am1s
-am7s6ku
-ams4l
-amst6
-am4s3tr
-ams9ut
-ams2v
-am4s5ve
-am2sø
-am3ti
-amti5da
-5amtm
-am7tv
-am6ul
-am5yr
-am5øy
-6ana.
-anak8te.
-ana3la
-anal4f
-3analy
-8anan
-a3nane
-a5nang
-anant8
-4anar
-a6narb
-an5art
-ana3to
-6an7au
-anaus7
-an9av.
-3anbef
-4and.
-an4da5m6
-anda5ta
-an4dek
-an5den
-anderle7
-an9det
-6ando
-an4dos
-4ands
-and4sel
-and8send
-and7slet
-and5s6tre
-a2ned
-an5egg
-a4n5elv
-ane8l7u
-a2nem
-2anen
-2aner
-a8n7erme
-ane3ru
-a5nes.
-a4nest
-ane5sv
-an5e6tika
-a5netike
-an5e6tikk
-an5e4tis
-a2nev
-3anfal
-anfø5re.
-ang4e
-an4ged
-an4g5enh
-ang5erme
-an8geste
-an4gi.
-5angiv
-ang5of
-an5gos
-an4g9ra
-an4gre.
-an6gres
-an4gret
-an4g3ry
-ang4sm
-angs6tro
-angs8t9rå
-angst5y
-ang5sva
-ang6søy
-ang4t5re
-ang5t6ve
-an4gun
-an4gå.
-ania7
-a6nib
-a4nisj
-4aniv
-an4kana
-4anki
-4ankj
-an4kob
-an4kop
-an4kos
-an2k1r
-ankra8na.
-ank3re
-ank3ut
-8an2kv
-an4kø
-an6k5å6
-2anla
-anland6
-anlø9pa
-ann5ans
-an6neme
-an5nen
-an5ner
-an5nid
-an4ninn
-an4nom
-5annon
-an4nov
-ann4sei
-ann4sid
-ann6s7kå
-ann6sl
-ann3st
-ann5sta
-ann4s3u
-an4ny
-an2nø
-a3no.
-a9noa.
-ano6deb
-2anog
-a7norm
-a6not
-a2no4v
-ano5va
-an3ove
-anri7ke
-ans5aft
-ansa7ka
-4ansan
-3ansat
-an4sek
-an4sent
-anseri8e9ne
-an4ses
-3ansik
-ans5ind
-ans5ins
-an4ski
-an3skj
-ans4k3l
-ans6kun
-an5skø
-an6slø
-an4sn
-ans5or
-an4s3pi
-ansport7s6
-an1st6
-6anstar
-ans4te4
-an8s7tu
-6ans6ti
-2ansu
-an9s6und
-5ansunda
-1an1sv
-4ansve
-6ansy
-an4så
-anta8la
-an5t6and
-an4tans
-an3ted
-ant5emi
-5antenn
-an4tesl
-anti7kl
-an4tim
-an5toi
-ant5ord
-ant5rab
-ant7rom
-ant5ryg
-ant5s6
-an4tul
-antus4t
-2anu
-anus7a
-an5ut
-3anven
-6anvin
-6any
-a4nya
-a2n1æ2
-anær8
-2anø
-a2nøk
-an7å
-a1o
-ao9a
-aog9
-a2oi
-ao6k6
-aon8de.
-ao2p
-ao4r
-a5pea
-a7pé
-a1pi
-a2pia
-ap1id
-a6pik
-a6pins
-a2pio
-api6r5
-api7r6e
-api7se
-ap1j
-a1pla
-a5p6las
-ap3li
-ap9lo
-ap2ly
-4apol
-a4pon
-a4poo
-apo3p
-apo5s4ti
-a2pot
-3ap3par
-4appar.
-6appare
-app7esk
-ap5plas
-ap4ple
-ap5pli
-ap6pri
-ap3ra
-ap5ren
-ap5ret
-ap3rin
-ap2s1
-apsa4
-ap3sel
-apse4s
-ap8s9l
-a3psy
-ap4s5ø
-8apu
-a6p5ut
-a1py
-ap7ø
-a3p8øls
-a5på.
-a1ra
-ara9bi
-ar5aks
-arak5t
-ar3alt
-a4rami
-2aran
-a4ranor
-a4rans
-a4ranv
-2arar
-a4r5ass
-ara5te.
-ar5aug
-ar7auk
-arau9ken
-ar7avh
-1arb
-2arba
-arba8ne.
-6arbeh
-4arben
-6arbet
-2arbi
-4arbj
-6arbl
-2arbo
-arbo8da
-2arbr
-2arbu
-2arby
-2arbø
-4arbå
-ar7deb
-ar6deli
-ardfø5re
-ard3re
-ard5sta
-a1re
-1a2rea
-4arear
-a4reb
-areba4r
-a2red
-a2ref
-a2rei
-are3in
-a2rek
-a6r5ekt
-a4rela
-ar7elek
-a4r6eli
-ar7emn
-a5remo.
-3arena
-a6r5eng
-a4reni
-aren5tes
-a2reo
-a2rep
-a6rerel
-a4r5erfa
-a6rerk
-a4rero
-a6rerø
-a5res.
-ares8ka
-ar4et
-a7reta.
-a4rev
-ar7e6va
-ar3evn
-arev6ne.
-8a1ré
-6arf
-ar7g6h
-ar5g6i
-6argj
-arg4l
-ar7go
-arg5stj
-2a1ri
-aria7ne
-a3rib
-ariba9
-ar5idr
-a4rim
-ar3inn
-ar3ins
-arins9k
-ar3int
-ari3se
-arise4a
-a4risto
-a2riv
-ar4kau
-ar3ke
-ar4ke5s
-ar5kha
-3arkit
-3arkiv
-ar4kle
-ar4k5løf
-ar6kod
-ark6ste
-ark4str
-ark7veg
-ar4køy
-arla4ga
-ar4map
-5armbå
-ar4medi
-arme7t
-ar6metr
-ar4minf
-armle6ne.
-armå6la
-2ar2n
-ar4nad
-ar4nal
-arneva7la
-ar3ni
-ar3no
-ar3nu
-ar3nå
-a1ro.
-aro8de.
-a5rok
-a1ron
-ar1op
-aro6pa
-a4r1o4r
-a1ros
-ar7ost
-a1rot
-ar3ove
-ar6ped
-ar9po
-arp5ret
-1arra
-ar5ree
-ar7resk
-arri8e7
-arrå6da
-2ars
-arsa6ka
-ars5ans
-ar3sel
-ar6s5ers
-ar4sin
-ars5kam
-ar5skar
-ars5kes
-ars7kre
-ar4spr
-ars6tr
-ars4vei
-ars7æ
-arta4la
-arta6le.
-ar3te
-ar7tele
-8artets
-art4ha.
-art4has
-ar4tika
-6ar4tim
-4artn
-4arto
-ar4top
-6artr
-art9ra
-ar6trin
-art6s5t
-arts5ø
-6artu
-8arty
-ar4tyv
-ar1ul
-ar1un
-ar5u6r
-a1rus
-ar5utb
-ar5utn
-arve3s
-ar6vete
-arvi8sa
-arvi8se.
-a1ry
-ar7æ6
-arø8ve.
-ar1øy
-a1rå
-arå8de.
-ar7åp
-a6r5åt
-6as.
-4a1sa
-asab4
-asak4
-a4salo
-as6an
-as7aug
-asbe2
-a1sc
-a2se.
-asea4
-a2sed
-a2seg
-a2sek
-as4el
-ase5le
-a2sem
-a6senet
-a4senk
-a7seol
-a2se5s
-a6sest
-a4sete
-a2se3u
-as2h
-as5hu
-a4sib
-a2sip
-a2sir
-a7sis.
-asis5t
-a2siv
-as4ja
-a6sjett
-as5jor
-as3kar
-ask6et
-as5keti
-ask2i
-as5kis
-a5skj
-as5ko.
-as5koe
-a4s5kopi
-as3kor
-as3kot
-a1skr
-as7kra
-as3kul
-a5s6kula
-as6kule
-ask9u8t
-as4kv
-ask5øy
-as1l
-a5s4lag
-asla8ga
-as4lev
-as4lit
-a1so
-a4so.
-a2s5om
-as5ov
-as4pan
-as3pe
-as7pis
-as5pl
-as9sa.
-as4sab
-as4sal
-ass5ald
-ass5alt
-as4sam
-as5se.
-as4sed
-as4sek
-asseri7e6
-as4serv
-as4ses
-as6sifr
-as5sing
-assi3s
-as4sit
-as2sj
-as6s1k
-assku6le.
-as2s3n
-as5so.
-asso9a
-as7sos.
-as6s1p
-as2s3t
-as4stan
-as4str
-ass5tru
-as2s1v
-as4sys
-as4søk
-as2s5å
-as1ta
-as6tab
-a6stande
-a4statu
-as5te.
-as3ted
-as4teg
-as4tek
-as4t5enh
-a1stj
-a9stof
-a5stok
-as5t6os
-ast5ov
-ast5ren
-as4tro
-as9tua
-astu8ve.
-ast5ø4v
-a1su
-asu3n
-asu9sa
-as1va
-a6sym
-asyn7d
-as7øye
-as5å
-4at.
-4ata1
-a5taene
-at6af
-ata8ka.
-ata8la.
-a4tang
-ata9rar
-a6t7arv
-atas4
-a5tas.
-atat8
-a2tau
-at5avh
-atch5
-a2tea
-a2tec
-at7edd
-a2tee
-a4tei
-at5eid
-at3eig
-ate3in
-a4teka
-ate5k8e
-ateke7ta
-a6t5ekte
-ate7le
-at3emb
-4aten
-a5tene.
-a4teni
-a4tenu
-a2teo
-4ater
-a5ter.
-a6terat
-a8terek
-a4teril
-a2tes
-a4t3ett
-at6e5u
-a4té
-3atfer
-at4ha.
-at8has
-4ati
-atik6ka
-atili5
-ati5nea
-ati4rep
-ati8sta
-at3jo
-5atlant
-atl9øy
-3atmos
-at4nel
-ato5a
-ato5gr
-at1oi
-a2tom
-a6t5oppr
-a1tor
-a5tose
-a3to1v
-a1tra
-at5reg
-at3ren
-at3rer
-a4trif
-at3rin
-at5rot
-a9tru
-at5røs
-at5røy
-2ats
-at3ser
-at7sje
-at7s6kat
-at7skj
-ats6kul
-at2s3ø
-4att.
-at6tat
-4at5te.
-at5tens
-attfø7re
-at4tid
-atti4s
-att5ise
-at3tit
-att1o
-att7o6p
-atto6v
-at1tr
-at4traf
-at4t3re
-at6trin
-att3s6k
-att5s8l
-att3sp
-att3sv
-at6tys
-at2t3ø2
-a1tu
-atu5e4
-a2tut
-at5v
-atvi5er.
-a3t3w
-a1ty
-atyr8ke.
-a5t6yv
-a1tø
-atør3s
-atø9se
-a4t5øy
-a3tå.
-a7tåa
-a1tåe
-at5år
-at5å4se
-at7åt8
-4au.
-8a8ua
-au9ar.
-4au5b
-auba6ne.
-au3c
-au5da.
-au9det
-au4di.
-4a6ue
-au7en
-au7er
-aue5re
-au3est
-au6e5ta
-au5e6te.
-au4gal
-au4gas
-au4gel
-augele8ge.
-5aug2n
-3augu
-au5i
-au5keli
-au5ket
-auk5la
-1auk7s6
-au5kve
-au6las
-au4lat
-aul5l
-aul8la
-au5lu
-au9men
-au6mo
-aum5s6k
-aum7s4t
-a5und
-au5rae
-aure5s
-au5ret
-au5ri
-aur5s6
-au1ru
-auru4e
-au1sa
-aus9kj
-au6skr
-au1so
-aus5s
-au6s8tas
-aus8tett
-austi6s
-aus6t7ise
-aus6ton
-au5str
-au6stra
-au6stri
-au1su
-au4sun
-au2s5ø4
-aut6a
-au3ta.
-au7tar
-au5te
-1auto
-auto5v
-au3t4re
-au4ty
-2aux
-a1va
-av5ab
-a5vae
-ava7g
-6aval
-av3alv
-a4v3and
-av3ang
-a4v5anl
-3a4van5s
-a9var.
-av3art
-avar6ta.
-4avas
-avat6a
-5avbi
-1avd
-3avdel
-2a1ve
-a2ve3d2
-a5vede.
-a7veil
-ave3in
-a2vek
-a4vela
-a4vele
-a5veleg
-avens4
-a5ver.
-ave7ras
-aver5d
-a6verei
-a2ves
-a2vev
-1avfa
-1avg
-avi4ar
-4a5vig
-a1vik
-avi9ke
-a1vin
-a4v5int
-2avir
-5avisa
-avi5sa.
-3a6vise
-av5ising
-avis3t
-a5vit
-avlu9t
-avlø5se
-6avn
-av7na
-av4nes
-a1vo
-a4vok
-avo3r
-avo4v
-av1r
-av4res
-av5ri
-av1sa
-av5seg
-avs2i
-avsko7g
-3avsni
-av1s2p
-avspe9g4
-avs4te
-av5su
-av1s2v
-1avt
-avta9ka
-2avu
-1avvi
-av3øl
-4a1vå
-a6v7å6l
-a1wa
-awat4
-a5we
-awe9ne
-a1wi
-ay2a
-ay7ane.
-ay5ar
-ay9s8t
-a5y4t
-a5zu
-azz3o
-a1ø
-a7å6
-1b4a
-ba3a
-baby5
-ba4bys
-ba5cl
-ba2d
-ba4da.
-ba7dan
-b5add
-ba8de.
-ba4deb
-ba5den.
-ba7dens
-ba3di
-bad1s
-4baf
-ba2k
-ba5kan7
-ba3kar
-bakars7
-ba3ken
-ba4k5end
-baken6de.
-ba3ker
-bake3s
-ba9ket.
-bak9ett
-ba3ki
-ba8ki.
-bak6kers
-bak6ko
-bak5kr
-4bakr
-bak4re
-ba5kri
-bak3ro
-bak3sm
-bak5sp
-bak5s6ti
-bak5str
-bak7t6
-bak1v
-ba3la
-bal7ak
-ba4les
-ba4li.
-bal3j
-bal4lag
-bal4lan
-bal4led
-bal4leg
-bal4lei
-bal4lev
-bal4lig
-bal6lov
-ball5s6
-bal6læ
-ba1lo
-bal5t
-ba1lu
-ban4a
-ba4na.
-ba5nan
-ba5nar
-ban9da
-ba4nel
-ba4nes
-ban6kap
-ban4kor
-ban2k3u
-bantu5
-ba3re
-baret5t
-ba3ri
-bari6e7n
-bark5s
-bar5skr
-bar5tr
-ba5ru
-ba5sen
-ba4seru
-ba4set
-ba3si
-ba2s1k
-bas6sak
-bas4san
-bassi4
-bassis5
-bas4so
-bas4st
-bass6tr
-ba2st
-ba7s8u
-ba1ta
-2ba1tr
-bat6ti
-bau9la
-6bav
-ba5z
-2b1b
-b3ba
-b6bak
-b4b5arb
-b6base
-b3be.
-b4beb
-b4beda
-b2bef
-b4beg
-b6beh
-b2bei
-bb3eie
-bb5eig
-b2bek
-b6belo
-bbel6t3
-bbelte4
-b4bem
-b9bene.
-b2beo
-b3ber
-b4b5erf
-b4bes6
-b7beska
-b6beta
-b6beten
-b4beti
-b6beto
-b6betr
-b2bev
-b8b1h
-b3bi
-bbi9e8
-b4b5inn
-b2b1l
-bb7len
-bb5op
-bb5rek
-bbu9ra
-bb5ut.
-bb5ute
-b2by5
-bby3e
-bby1k
-b4bø
-b6bå
-2bc
-2b1d
-b2dek
-b7den
-b4dep
-1be
-be2au
-be4bo.
-bebo5er.
-bebo9k
-be4da.
-be9dar
-be3der
-bedi9e8
-be4dre
-bed5red
-bed2s1
-bedy9ra
-be1då3
-2bee
-be5ed
-be6ef
-b4ef
-befa5re
-be3g
-bega7
-be4ga.
-be4gi.
-be4gn
-be5go
-be4g5re.
-be4g5rene.
-be4gå.
-be6ha.
-beha7g
-behers7
-4behu
-behå4r
-be6i
-be5ke
-be2k3i
-bek6kel
-bekke5r
-bek4kes
-bek6l
-4beks
-be4l3ab
-bela9ga
-bel5eie
-bel5eig
-bel5ein
-be4lek
-beli9na
-beli9v
-belle5sa
-bel5let
-bel5læ
-be2l1o
-bel5s4p
-bel7s4t
-bel4tag
-bel4te5s
-bel4t3ø
-bel3u
-bel5v
-belæ5re
-belå7ne
-be4na
-be5nat
-be3ne
-4bened
-be4nest
-ben5g
-be5ni
-ben5s4i
-ben5skj
-ben5sp
-ben5te
-2bep
-b4er
-4berai
-be7ras
-ber5d
-be4rep
-8berest
-bere5te
-ber4ga
-ber4g5ende
-ber5ges
-berg3j
-berg3l
-berg3o
-ber4g3å
-be5rib
-beri5ke
-be7ris
-ber6kl
-ber5na
-ber5ne
-be1ro
-be4ro.
-bero9a
-berri6
-ber5te
-ber5ti
-be1ru
-beru9sa
-berø5v
-b4e1s2
-5bes.
-be4se.
-be5s4i
-4besik
-6besj
-bes5ke
-bes6k5n
-be3sn
-bes7ne
-4be3so
-beso9v
-be5sp
-bes3s
-bes6s7a6
-bes6sel
-bes7si
-bes7tens
-bes6tes
-be5stes.
-be6så
-3b4et
-5bet.
-be4tab
-be3te
-4betei
-be7tes
-beto5ne
-be6trar
-be6tre.
-be4t3ri
-4betu
-be4ty.
-beva5re
-be6ve.
-bevi5se.
-be9vo
-bev9r
-6beå
-beån9
-7bé
-2b5f
-6bg
-2bh
-bhu1
-1b4i
-bi5ak
-bi6bla
-bi5ce
-bi1d
-bi5dee
-bi8dé
-bid6r
-bidu8
-bi5el
-bi6ele
-bi5erv
-4bifa
-bi5g
-bi3ka
-bik1k
-bik6ki
-bi5k4l
-4bi7kr
-bi6la.
-bi4l5ap
-bi4las
-bi4lau
-bi3let
-bilet5r
-bi4lin
-bil3j
-bil5la
-billa8ga
-bil5leg
-bil5m6
-bil1o
-6bi5m
-bi4nans
-bingo5
-bin4gol
-bi7no
-4b5int
-bio7
-bi3o8m3s4
-4bip
-bi4ri5
-bi7ris.
-bir4ken
-bi1ro
-bis2a
-bi3se
-b5ish
-bis6hi
-bis7ke
-bi5s4la
-8bisn
-bi4sp
-bis4p5i
-bis5se
-bi1st
-bi5s6ta
-bis4til
-bis5tru
-bi3s4v
-bi6ta.
-bi4te.
-bi5tes
-bi8ti.
-bi4tre
-bi6tri
-bjar3
-bjek4t5o
-bjø6r
-2b1k4
-b5kh
-bl2
-1b2lad
-blad3a
-bla6f3
-bla8ga
-blak5r
-bla5me
-blan9da
-b4lank
-blan5ke
-b4lant
-b1lar
-b8larar
-b3lat
-bla4u
-b4lef
-blei8e5
-blei5er
-b4lek
-ble4k3a
-ble5kes
-ble4mo
-b3ler
-ble7r6a
-b6lesa
-blesse9ne
-b4lest
-2blet
-bli9ke
-bli5ma
-bli5me
-blings6i
-blis3s
-b5lj
-blja4
-blo6dr
-1blok
-blom5m
-b6lu
-blues3
-blu9sa
-bly7gl
-blæ5re.
-blå5n
-blå3r
-blå7sa
-blå5se.
-6b5m
-6bn
-b3ne.
-b3ner
-b7nes.
-b7ni
-b2o
-boa5s4
-bobba6ne.
-bob5by.
-bob9bye
-bo2bl
-bob7la
-bobs4
-bo3de
-bo6din
-bo6d7r
-bo2dø
-4boef
-1boen
-bo2er
-bo4et.
-2bo3f6
-bo4gel
-bogn7
-bog1s
-2boh
-2boj
-3bok.
-bo2ka
-bo6kel
-bo4k3et
-bok1i
-bok1k
-bo6kop
-bo6k5ri
-5bok1s
-boksi8da
-boks4p
-bo2ku
-bok3ve
-b4ol
-bol5eie
-bo7li
-boli7n
-bo7lo.
-bo5loi
-bo4l5o4r
-bol5s4p
-bolst6
-1bomb
-bom4bel
-bom5m
-bo6mo
-bom1s4
-bo5nap
-bon5ato
-4bonn
-bon5ne
-bons4
-bo5nus
-boo6
-boom1
-bo1p4
-bo1ra
-bo4ra.
-bo6re.
-bo7rel
-bo3ren
-bo3ret
-bo4rete
-bo6ri.
-bo3ro
-bor6t7ef
-bor6tei
-bor4tes
-bor6t7et
-bor4ti
-bort5s6
-b4o1s
-bose8te.
-3boska
-bo2sl
-bos5se
-bo4sto
-1bot
-bo4ta.
-bo4tak
-bo4tal
-bo6te.
-2bo7to
-4bot6r
-4bot4v
-bou3c
-4bo1v
-bow4e
-bo6y
-4bp
-b7pl
-br8
-1b4ra
-bra5ka
-brak5s
-bra5se
-bred5sp
-brei5e
-brei3s
-bret7te
-b6rev
-brevi9er.
-bre4vin
-bri5a
-b4rio
-b2ro
-bro9ar
-bro1s4
-3b4ru
-bru5ke
-bruk4s3
-bru4na
-bru7na.
-bru5nes
-bru5pl
-bru7ren
-bru5sa
-brus4l
-1bry
-bryn4s
-3b4rø
-brø5de
-bråe6
-brå9ne
-brå5te.
-6b1s
-bs4e
-b5s6e6a5m4
-b4s5el
-b5s6i
-bsk4
-b4sli
-b2sm
-b2s1of
-bs2t6
-b6st7f
-b7s6v
-bså5
-6b5t
-b7t6s
-1b2u
-bu4ar
-4bub
-bu3da
-bud5d6h
-bu3de
-4bu3em
-bu4en.
-bu9ene
-bu4er.
-bue5s
-bu1i
-bu6is
-6buki
-buk3l
-bu5la
-bu4le.
-bul3le
-bun7de
-bund4s3
-bun8ge.
-bunk3r
-bunnla8ga
-bunn3s
-2bu3o
-bu1p
-bu6ra.
-bu4re.
-4bu3ro
-bu3ru
-bus6e
-bu4se.
-bus4h5e
-busk7ø
-bus6sek
-bus4sel
-bus6sent
-bus6set
-busse6te.
-bus6sj
-bus4sn
-bus4sp
-bus4st
-buss3v
-bu1st
-4bustr
-4busy
-bu1ta
-bu4tal
-bu7tem
-b5utg
-4butst
-bu2tu
-bu1tø
-4buv
-6buø
-2b1v
-4b5w
-1by
-bya2
-by5al
-by9are
-by7dep
-by4en.
-by7ene
-by5ens
-by2er
-by3ers
-by4ge.
-byg3l
-3byi
-by1lo
-4bylø
-by5n
-by1re
-by6re.
-by1s
-5bys.
-4byse
-6bysi
-6bysp
-byst4
-by4ste
-4bysv
-by5tar
-by4te.
-by1tr
-2by5v
-bæ5rar
-bæ6rar.
-bæ4re.
-bæ5ren
-bæ5rer.
-bæ5rere
-bæ5res.
-bæ5ret.
-bæ3ri
-bæ4r5is
-bæ3ru
-1b4ø
-bø4e
-bø7ens
-bøf3
-bø4kes
-bø6la.
-bø6le.
-bø2n
-bøne5
-bøn6nes
-bøn7o
-bø6re.
-bør4s5k
-bør4sp
-børs3t
-børs8ta.
-børs3v
-bø5ta
-bø1v
-bøy7ar
-bøye5
-bøy4ene
-bøy4es
-bøy4et
-1b4å
-bå4de
-bå9des
-bå6e
-bå7ene
-bå4la
-bå1re
-bå6reg
-bå4rep
-bå4s3te
-bå6s7ti
-bå6t5j
-bå6to
-båt5r
-1c4a
-cab4
-ca4e
-ca5le
-ca5me
-ca5mo
-ca4pe.
-cap1r
-ca6pris
-ca3ra
-car5n
-ca5ro
-car4te.
-ca2sa3
-ca6set
-cash5
-ca5s4til
-cas5to
-ca1t
-cath5
-ca3th6r
-ca4to.
-6cb
-4cc
-c1ci
-c2d
-cde6
-cebo9
-ce3d
-ce1i
-1cel
-ce5le
-cel4les
-cel4lev
-3cen.
-ce4ned
-ce4nee
-ce4nem
-ce4ne5s4
-ce5nes.
-ce4net
-ce4nev
-5cens
-cen4ti9m
-cen6to
-ce5o4
-1cer
-cerba6ne.
-ce3re
-ce1ro5
-cer3t
-6ceru
-cest3o
-2ch.
-cha5le
-3cham4
-cha7ne
-cha5t
-2chb
-4chei
-chel5s
-che7te
-chi4li
-4ch3h
-6ch5m
-4chn
-ch5ne
-chom4
-cho5s6
-2chp
-8chs
-6cht
-ch1v
-ci1c
-3cid
-ci2e
-cie8n
-cie2s5
-cil5l
-ci3ne
-ci5ta
-2c6k
-ck5ar.
-ck5art
-ck1en
-ck3er.
-ck4ere
-ck5e4t3
-ck5et.
-cke8y5
-ck1i
-ck1k
-ck1o2
-ck7r
-ck5s2
-cku6
-ckup3
-ck9ut
-c2l
-clai4r5
-cly4
-c1m
-cmini4
-coa6
-coat5
-co6bid
-1co4c
-2cod
-6cof
-6cog
-co4la.
-co4lab
-co4lak
-co4la5r
-co2m
-co5ma
-com5t
-co6n5os
-con5s
-con7t
-co2o
-co7pa
-2cor
-co3r6a
-co1re
-co4so
-4cost
-co4ver
-c1pr
-cr8
-cras4h
-crack4
-cre2e
-creen7
-cros2
-5cru
-4c4s
-4c1t
-c6ta
-cty5
-1cu
-4cu.
-cu5la
-cu5le
-cu5lu
-cup1l
-cu6po
-cup1r
-cup7s
-cu4på
-2cur
-cures4
-cu6t
-cy2a
-cy6p7
-cys3
-c6z
-cæ5
-1da
-4daa
-4daber
-8dabo
-d5abs
-6d5adel
-d4adg
-dadø4
-dadør5
-4daef
-2daf
-5dagb
-da4gev
-4dagj
-dag7l
-da6go.
-da4g1r
-da6gun
-4dagå
-4dahe
-5dahl
-da1i
-2daka
-4dako
-4dakr
-dak4se.
-4daktig
-da5kv
-7d6al5j
-da1la
-da8la.
-da4las
-6dalau
-dalbu8er
-4d5ald
-da4les
-dal6so
-da1lu
-da4ma.
-da4man
-da3mas
-da4me.
-da3men
-4d7ameri
-dame3s
-dame5t6
-da3mo
-dam7pe
-5dan.
-6danal
-d8ane
-9dani
-2d1anl
-3dann
-dan5neb
-4danno
-7dano
-d4ans.
-dan3sa
-dan4sel
-dan9s8kan
-4dansv
-9dant.
-9danti
-8dany
-2da3o
-2dap
-da3pe
-d3app
-3dar.
-5dara
-2darb
-dard3s4
-4darea
-da4res
-d5arn
-da2ro
-dar5os.
-dar5s6
-dar4ta.
-dar6va.
-dar8ve.
-4dasei
-2dash
-6dasi
-4dasjef
-da4sk
-da9sko
-6dast6r
-6dasu
-data5
-4da4tal
-data6le.
-datali8na
-da4tek
-7d6ato
-da3toa
-4da5tr
-dats6j
-d6aud
-daud7s8
-dau5go
-2daut
-2dav
-d5avb
-d5avis
-d1avl
-d3av5s
-4daø
-2d1b2
-dba8le.
-dba4ne.
-dbe5s6t
-dbe8ta.
-dbe6te.
-dbling7
-dbo6en.
-d6byf
-4d1c
-6d1d
-d2dad
-ddag4
-d4dak
-d4d5arm
-dd3eie
-d2dek
-dde4lap
-dde4l5o
-ddel5sv
-d4demi
-dder5s
-d4desu
-ddie8
-d7dom
-d8d7orm
-d4d1re
-dd5run
-ddsa4
-dd4sala
-dd4skap
-dds5tab
-dd3s4te
-dds5tr
-d2dyb
-ddø2
-ddør3
-d4d5øy
-dd1år
-1de
-2dea
-deak3
-de2al
-de7b
-6debar
-4debas
-3debat
-2debe
-4debl
-2debo
-5debon.
-2debr
-3debut
-2deby
-4debø
-de1c
-5ded.
-2deda
-6d7edd
-7dede.
-4dedek
-4dedel
-4dedia
-2ded4r
-2dedy
-2dee
-5dee.
-de7er
-2def
-d5eff
-d5eft
-2deg
-6d6e5ge
-5degg
-de3gl
-2deh
-5dehavs
-2dei
-dei4d
-dei4ene
-3deig.
-dei8ge.
-5deigen
-dei4g5r
-5deik
-d2e1in
-3deir
-de5is.
-de3ist
-7de7it
-2dej
-8deka
-2deke
-2deki
-2dekj
-5dekk
-dekk3a
-dek4kan
-dek4kel
-dekk8s
-dekk7s6t
-de6k6kv
-dek2l
-6dekly
-5dekni
-de5ko
-4dekod
-4dekon
-4dekos
-2de5k6r
-dek6st
-deks7ti
-deks6tr
-5dekt
-2deku
-4dekv
-4dekø
-4dekå
-d4el.
-6delad
-6delage
-de6lans
-4delau
-4deled
-de4lef
-4delei
-del5ei4d
-del5eie
-4de4lek
-de5lele
-4d5elem
-de4lest
-6d3e4lev
-4delid
-6delinj
-del5int
-4delis
-4deliv
-del4lap
-del6lei
-del4lek
-del6lerf
-del6lig
-d4els
-del4s5at
-del3se
-delses7
-del4si
-del4spo
-d4elt
-del6tala
-del3te
-del7tr
-6deluk
-de8l7ur
-del5ve
-4dely
-4delæ
-2delø
-delø6pa.
-6deløy
-2delå
-2de5ma
-d3emb
-2deme
-demie4
-4demj
-dem8na.
-de4mo.
-de4mog
-5demok
-4demol
-demo5no
-5demos
-dem5pe
-3demr
-5dems
-4demu
-2demø
-2demå
-d2en.
-4dena
-de7nak
-6d5en6den.
-8d7en6dene
-6d5en6der.
-de5neb
-4dened
-6denel
-4denem
-4denet
-4denev
-6d5engen.
-4deni
-4deno
-de4nom
-d2ens
-den4sin
-den4s3t8
-den6t5ant
-4dentif
-4dentit
-dent3o
-den4tr
-dent5s8
-den6t5u6
-den6tå
-4denu
-2denæ
-2denø
-de2ob
-de4og
-2deol
-4deopp
-4de3or
-de4ove
-4depak
-4depap
-2depe
-4depi
-4depl
-6depu
-d2er
-der8am
-de6rant
-de4rare
-de4rark
-5de7rast
-dera5te
-der3av
-der5d
-4derea
-4dered
-de4r5edd
-de4ref
-4dereg
-4derep
-6deresi
-der5est
-8derest.
-6dereste
-4derett
-de4rif
-de4ril
-5derin
-de4rinæ
-der5k
-der5ne
-de5rob
-4derog
-4deros
-de5rose
-dero8se.
-6de7rot
-dero4v
-der5s6n
-der4sp
-der3t
-der5un
-de5rup
-6derus
-der3v
-4derør
-2derå
-de1s
-3d6es.
-2desa
-4desc
-2dese
-de5seg
-des5ers
-4desho
-de8s9hop
-desi4s5t
-2desj
-2desk
-9desk.
-5deske
-4des4le
-2deso
-2desp
-7despl
-6de5s6pr
-d4es2t
-5dest.
-5deste.
-des6tem
-de5sti
-4destj
-4desto
-4destrå
-4destu
-6desty
-de4s3tå
-6desup
-des6v
-2desy
-deså7
-d2et.
-2deta
-deta8ka.
-de3te
-4detea
-6deteg
-6detekk
-4detel
-4deten
-4detep
-detes7
-2deti
-2detj
-4deto
-4det6r
-2detu
-4dety
-4detø
-6detå
-2deu
-d1eur
-5deus
-2dev
-deva8ne.
-devi9er.
-3devik
-d7ev8n
-de5vu
-2dey
-4deø
-2deå
-2d1f
-dfø6rarar
-2d1g4
-d4gel
-d5gi
-dgi6n
-dgjø6re7n6h
-d3go
-2d1h
-dhav4s
-dheim2s5
-dhu9ga
-dhø4r
-1di
-di6ak
-di5alg
-dia5li
-di1ar
-dia3re
-dia1s
-dia7sp
-dias6t
-diats4
-2diav
-2dib
-did5ri
-di7ell
-di5en.
-4di5end
-di1er
-dies4
-3diff
-diffe5
-3diful
-4difø
-di8g9and
-di4gat
-di3ge4s5
-dig7g
-2digj
-dig8la.
-dig6le.
-4digren
-dig5ret
-4digru
-di2gu
-4dih
-4dii
-2dij
-di5ka
-di8ka.
-di5kem
-2dikj
-6dikn
-2diko
-2di1kr
-dik7v
-2dili
-dil4les
-di5ma
-6dimed
-6d5i6mel
-4dimes
-4dimet
-2dimo
-4d5imp
-4dimå
-di5na
-2d1ind
-di7nen
-4d5ingk
-din3gr
-ding8s5en
-ding6s5er
-din8g9å
-dini4
-di4ni.
-4d1inn
-2dino
-2dinv
-4dinø
-3diog
-7diol
-dio3na
-dio4no
-di3ori
-dio5tr
-2dip
-3dipl
-dippe7
-4dired
-4direg
-4d5irs
-5dis.
-di6sc
-di6sed
-dis4i
-disie5ne
-d6isk
-dis6kam
-di4skj
-dis6k7l
-di4sk6o
-dis5ko.
-dis7koe
-dis7ku
-dis5s
-dis1t
-dis7tik
-di5sv
-dis4vi
-2disy
-di4tal
-di7te
-4ditek
-dit4tet
-ditt3r
-di9us.
-di4va.
-4dival
-di7van
-4divek
-div6i
-2divu
-2diøk
-d1ja
-d1je.
-d1jen
-djer5ve
-d7jes.
-dje9ve
-d6jingan
-d6jingar
-d1jo
-dju8la.
-5djup
-6djupar
-d4jø.
-2d5k2
-dka8ra.
-dki6
-d5kj
-dko2r
-8d7out
-dku4le.
-4d1l4
-d3la
-dla4ga
-dland7as
-dla6te.
-dla4v
-d4ledi
-d2lef
-d4lega
-d7legar
-dle3ge
-dlei7er.
-d5leka
-d2lel
-dlem4st
-d4lenet
-d4leru
-dleva8ne.
-d5li
-dli4f
-dli5ke
-d5lo
-dly8se.
-dlø8pa.
-d5lå
-dlå9re
-2d1m
-4d1t
-dme6la.
-dmo4e
-dmors6
-dmo8s
-dmø4re.
-dmå6la.
-8d1n
-dn6a
-dno8de.
-1do
-2doav
-do2b3
-4doba
-do3be
-8do9b8lan
-2dobå
-do4da
-dodø4
-dodør5
-4doeu
-2dof
-d3off
-d5ofr
-dog6med
-dog4me5s
-2dogr
-6do5i
-do3ki
-4dokine
-dok6kan
-4dokn
-do5le
-4doled
-doli8ne.
-4dolinj
-6dolis
-4dolj
-dol5l4
-4domes
-do5mis
-4doml
-do4mo
-dom7p
-2domr
-dom8sa
-dom8s5e6
-dom6s5i
-dom4s3k
-doms3l
-domsla6ga
-dom4so
-do4mu
-do4na.
-don5g
-4donke
-6d7on6kl
-don5st
-don5t4
-2dop
-do4pa.
-do4pe.
-3dopi
-d6o1ra
-do5ran
-2d1ord
-dor4da
-do1re
-dor6gest
-d5orie
-dorm8
-do3ro
-5dorp
-3dorr
-dors6
-dors7ke
-do1ru
-do7rye
-5dos.
-do4se.
-do4set
-do1sk
-6do7s6l
-2doso
-4dosp
-2dost
-do3str
-4dotr
-2dov
-do5va
-do5ven
-do4ver
-dov9n
-4doø
-2d7p8
-5dq
-dr4
-d1ra.
-d5raa
-d9rad.
-d5rade
-1d6rag
-dra5gen
-dra6kes
-3drakt
-1dram
-5d6rang
-3drap.
-5drapa
-3drape
-d3rapp
-d1rar
-d6rarar
-d3rarb
-dra6ret
-d5rarm
-d5rarr
-d9ra8sa
-9dratt
-drau7ma
-2dre.
-5dreass
-2dred
-d5rede.
-d5reder
-dre7d6r
-d5reds
-9dreg.
-9drege.
-d3regj
-3dreie
-drei5en
-drei5er.
-drei7ern
-d5rej
-d6reka
-d7rekk
-3drekt
-4drel
-d7relig
-4drem
-d1ren
-4drer
-d3ret.
-d3retn
-d6retr
-d3rets
-drett4
-dretts5
-5drevet
-3drevn
-4dria
-3d2rif
-2d1rig
-d2rik
-d3rik.
-dri8ka.
-d3rike
-3drikk
-drik7s6
-d9rikt
-5d4ril
-2d1rin
-dring6
-drit7tr
-drit5u
-dritun8ge.
-1d2riv
-3dronn
-dro6pa.
-drop5s
-2d1ror
-3d4ros
-dro8ta.
-2d1rov
-dro5va
-dro3ve
-2dru
-3druk
-d1rul
-d1rum
-d3rup
-6d5rut
-2dryk
-drykk4
-d2rys
-d4røm
-drø6re.
-d7røt
-drø3ve
-5d8røye
-d1råd
-drå4de.
-3dråp
-8ds
-d5sa.
-d3sabl
-ds1ad
-ds3a6del
-d1sag
-dsa9ga
-dsak6se.
-d1sal
-dsa8la.
-d4s3alf
-d6sall
-d9same
-ds1a6n
-ds5ane
-ds1a2r
-d2sas
-d4satf
-dsbø6n
-d5se.
-dse4d
-ds1ef
-d2s1ei
-ds7eks
-ds3ela
-dsel4s5a
-dse2m
-ds3emi
-d6s7enda
-dsen8de.
-d4s3eng
-d5sens
-ds3e2p
-d7ser.
-d6serf
-ds5erk
-d4s5e4sk
-ds5e4st
-ds3eta
-dse4te.
-d5setj
-ds1ev
-d2s1i
-d3s2id
-d7sida
-ds5ident
-d4s5ide4o3
-ds3idr
-d7sil
-ds5ind
-d3sir
-ds3i4s
-dsi4ve
-d4s3jen
-d2sjo
-ds7jor
-ds6ju
-ds5kab
-d4s3kan
-ds3kar
-d4skat
-d1skj
-ds5kjen
-d6s5kjøt
-ds1ko
-d5skot
-ds3kro
-d4s1kv
-ds1l
-ds5la.
-ds5lan
-ds6lem
-dsli6k
-ds6lo.
-d9slott.
-ds4luk
-ds3ma
-d6smo
-dsmå6la
-ds3ne
-ds5no
-ds1o2
-d7somst
-d4s5os
-d7sot
-ds1p
-d3spek
-d3spel
-ds2pi
-d9s8py
-6d7run
-ds5s4
-dst4
-ds3tak
-d4s3tal
-d3s8tar
-d5s4tat
-ds6tau
-dss8t
-d8s9te.
-ds9teik
-dste6ma.
-d6s5temp
-ds5teo
-d3s4tig
-d3s4tik
-d5stilli
-ds1tj
-d3stor
-d3stri
-dstu8na
-d5stund
-ds3tv
-dsty8e
-ds3tyv
-ds1u2
-dsure6
-d5s6us
-d6s7usk
-ds1v
-dsva8ne.
-d3s4vet
-dsvi6ka.
-d5syk
-d3syn
-dsy6na
-ds1yt
-d2s1ø
-d6sør
-ds1å6
-6dt.
-d3t4a
-dta6la.
-dta4le.
-dta4s
-d3tem
-dte4ma.
-dt4eng
-dterle7
-dte4se.
-d5t4et
-d4tg
-d3ti
-dt6j
-d7to
-d5t4rag
-d6troc
-d5t4rø
-d6t1s2
-d3t2va
-dtø8
-dt6øk
-dtørs3
-dtå4
-1du
-dub5b
-dub5l
-du1c
-du9ene
-du9ens
-due5s
-4dufo
-3dug
-4dugu
-duit6
-du6ka.
-dul5l
-4duly
-dums2
-du4na.
-dun7de
-4d5uni
-dun5s6
-dun7sta
-7duo
-d3upk
-dupp6e5
-3dur
-du6ra.
-du6re.
-du6rei
-dur8ta
-du1s
-du5s4a
-du9sem
-du5s2i
-du2sk
-du2sl
-du2sp
-duss4
-dust4
-du2sv
-2d1ut
-d6utt
-du6va.
-du4ve.
-2d1v
-5d8va6le
-dva4ne.
-dve6s
-dve6va
-dve8ve.
-d7vo
-dvo8r
-2d1w
-1dy
-dy9a
-2dyba
-2dyf
-dy5ke.
-4dykl
-4dykø
-2dyl
-dy4na.
-dy4ne.
-4dynk
-dynk6s5
-dy3pes
-dy2p3r
-dy4ra.
-dy5reba
-dyrle8ge.
-dyr5s4
-dy2r5u
-dyr5ø
-7dys.
-dy8sa
-4dyse
-dy6se.
-dys7s
-dyst7r
-dy2t
-d5z
-8dz.
-1dæ
-dærs4
-1dø
-4dø.
-død2s1
-dø3gr
-2døk
-d5økn
-dø4ma
-dø4pe.
-dø4pen
-d2ør
-dør3i
-2døs
-d6øs.
-dø2st3
-døt3
-dø9va
-dø3vel
-dø1vi
-6døvl
-døv8le.
-2døy.
-døya8
-døy8g
-4d9øys
-1dåd
-dåd6s5
-då8na.
-1dåp
-då8ra.
-då5ri
-d3ås.
-då8sa.
-d8åse
-då7sem
-d7åt.
-2ea
-e1a2b
-e1ad
-ea2d1i
-eadli5
-e1af
-ea2gu
-e1a2k
-e4akr
-6eakt
-eak6se.
-e1al.
-e5alle
-eal8le.
-ea4lov
-e3alte
-ea2lø
-ea4m1
-e3aman
-e5amn
-e1an
-e2an.
-ea4ne.
-e6a5net
-e4ani
-ean7n
-ea4nor
-e6ans.
-ean3sl
-e1ap
-ea4pe
-e1ar
-ea2re
-ea5rer
-ea5ret
-ea5r4i
-ear6ka.
-ear8ma.
-ear4ta.
-ea2s1i
-e3asp
-e1ass
-ea7ta
-e5a4tel
-eate6ren
-ea4t3et
-eat8h
-eat6le
-e8ato
-ea5tri
-e1att
-e1au
-eau6ga
-eau6ge.
-eau8ra.
-eau6re
-eau5s
-eau8sa
-eau8se.
-e1av
-eav8la
-eav8le.
-2e1b2
-eba3d
-eba4ne.
-eb3be
-eb4be.
-ebe4d3e6
-ebei7er.
-eben6s5k
-ebers6
-ebesku5
-ebet5s
-eb3h
-e5b6lo
-eblæ5
-ebob3
-ebo4da
-ebo5ers.
-ebo6kr
-ebo6la
-eb5s
-ebu4e5re
-ebu5ern
-ebu6et
-eby4ta
-ebø6n
-2ec
-e4ca
-ec4c
-e1ce
-e5cha
-e3com
-e2dad
-ed5ad.
-e5d4ag
-edag4s5
-e2dar
-ed3ark
-ed3arv
-ed7dela
-ed4dyr
-e3de.
-ed5e6ge
-ed5eg4n
-ed3eie
-e4deks
-ede8le.
-e4denf
-e8d5eng
-eden5t
-e6depr
-ede4ra
-e4derø
-e4desk
-ede4sl
-ede4sm
-e4desn
-ede4s5p
-ede4ta
-e6d5ett
-e8dé
-e5d6ia
-edi6a5ne
-edi4ene
-edi6gj
-ed4is
-edi3si
-edi4s5k
-3e4dit
-e7div
-edle6ge.
-ed8ob
-edok8se.
-e4dol
-ed1op
-ed1ov
-e1dr
-ed2ra
-ed3reg
-e5drev.
-ed3rom
-e6d5ryg
-ed7ski
-ed3skr
-ed3s4la
-ed2sm
-ed5ta
-ed3te
-edt6r
-edu8a
-ed7va
-edvi6s
-e3dyk
-ed5ynk
-edyr6ke.
-edæ4
-e3d6ø1r
-e3e2
-eea7
-ee3b
-e2ed
-ee3di
-eeg4ga
-eeg6n
-ee5gå
-eei4d
-eei7ni
-eek1e
-eek4te
-ee3la
-e5e4li
-eem6na
-ee4n
-e5enb
-een3in
-e5en6k
-een5t
-e3epl
-ee8ra
-eer3en
-ee3ri
-e4er3l
-eer4me.
-e6e5sh
-ees8ka
-ees6ke.
-e3e6t
-eev4ne.
-e1f
-4efa
-efal6s7
-e4fana
-ef3ank
-e4fark
-efar6s5
-ef7ea
-ef5ef
-ef3fe
-3effek
-ef3fo
-4efi
-e4f3id
-e5fig
-e5f4ilm
-efi7ren
-efisken8
-4e3fj
-2efl
-efle6ge.
-eflå3
-e2fn
-efo8bi.
-efo4no
-8efr
-ef2sj
-ef2sk
-ef2sp
-ef6str
-e8ft
-ef2ta
-efta5r
-eft5ei
-ef5ter
-eftle8ge.
-eft1s4
-6efu
-efyrs5
-e3fæ
-4efø
-efø5le
-eføy9
-2ega
-e3gaf
-e6gala
-e7gam
-ega4ve.
-egde8l
-eg7des
-e5gedo
-egei9e
-ege4let
-e2gem
-e3geme
-egen5s
-3e4gensk
-e7geom
-e2ges2
-ege5sp
-eg9gen
-egg3l
-eg8g9ut
-egi3an
-egie2
-e4giko
-egis4p
-e3g6lad
-e3g4led
-eg7lesa
-e5g4lit
-eg7ly
-e5g6lø
-6egm
-e9g8nag
-eg4nem
-eg6no
-e7gnå
-4ego
-e4go.
-7egoi
-eg2r
-egrans5
-e7g8rø
-egs4am
-egs4ki
-egs4ta
-e1gø
-egøy6e5ne
-4egå
-egå4va
-egå4ve.
-e1h
-ehea4
-ehei9e
-eh5er.
-e4h5ere
-eh7ern
-eher4s
-ehog5
-ehov2
-ehy6re.
-ehø8va
-e6hå.
-2e8ia
-e9iakt
-ei9a4n
-ei7ar.
-ei4c
-e8id.
-ei3d8ar
-e3idea
-e3ideo
-ei9der
-ei5det
-5eidf
-5eidg
-e6i2do
-e1idr
-ei3d4u
-e8i7e
-eie5d
-ei8eg
-eie2n
-ei9en.
-eier3a
-ei4ert
-ei6es
-ei1fl
-8eig.
-ei3ga
-eig6e
-ei6gev
-ei5gi
-ei6gra
-ei6gu
-4eii
-ei5kaa
-ei3ke.
-ei6kee
-ei6keh
-ei4kel
-ei6keri
-ei4ket
-ei1kr
-eiks3a
-eik6se
-eik4so
-4eil
-ei9led
-eil5egg
-e3illu
-ei3lo.
-ei9loa
-eil5op
-ei5los
-eil5s6
-4eim
-ei7ma.
-e5imag
-ei4m5a6l
-ei4med
-ei6mei
-ei7men
-ei4me5s
-ei4met
-eim9ett
-ei6mo
-8e1imp
-ei4n3al
-ei4nans
-ein5ant
-ei7nare
-ein1d
-4e3indu
-ei5ned
-ei7nel
-ein9f
-einga6
-ein3gr
-e4ini
-6ei6nit
-ein3k4
-e5inkar
-4e1inn
-ei4nom
-ei4nov
-einsi9d
-ein4s3l
-eins6o
-e4inspi
-ein7sto
-ei2n1u4
-ei3num
-6einv
-ei2n3ø
-ei5or
-e4ip
-ei9pa
-ei3pe
-eip5s
-2eir
-eir9ak
-ei7ren
-ei3ri
-eir5s
-2eis
-ei5sar
-e4ise
-ei3se.
-eise5i
-ei3sen
-eiseri9e8
-ei3s4ha
-ei4sil
-e3isk.
-e3iske
-ei6s3kj
-eis3ko
-ei3s4pe
-ei4spi
-ei4tek
-ei4tera
-ei4tere
-ei2to
-eit7ta
-ei6t7ut
-ei3tve
-ei6t7ø
-ei4vak
-eiva9r
-ei9ven
-ei3vi
-eiv5s4
-e1j
-ejo8en.
-eju6la
-4e1ka
-ekali7
-ekalie6
-ekam6s5
-eka6ra.
-e5kavr
-ek3eie
-e4kero
-e4kes
-ek5e4ta
-e6key
-e5k6hov
-e1ki
-e4ki.
-4e1kj
-2ekk
-ekke7le
-ekk9ist
-ek1kj
-ek4kjø
-ekk3l
-ek5kok
-ekko5v
-ek6ku
-ek4ky
-e1kl
-e8klane
-ek6leg
-e6klen
-ek5let
-e3klu
-e5klæ
-ek2lø
-4ekn
-ek9na.
-e3knek
-ekne7s
-ekni7p
-ek3no
-e3k4nok
-e1knu
-e5knø
-e1k2o
-e4ko.
-eko7le
-ekords8
-eko6te.
-e4kov
-2e1kr
-e3k2ra
-e3k4red
-e7kref
-e3kren
-e4k5ret.
-e5krets
-e5k4rev
-e3k2ri
-e3kro
-ek4ry
-e3k4rå
-ek5råd
-ek3s4ak
-ek4sal
-3eksam
-ek3sel
-3eksem
-ek4sig
-eks1k
-ek4ska
-ek8sn
-1eksp
-eks5pe
-ek4sta
-ek7s6tel
-ek3sti
-ek4stil
-ekst5o
-ekst3å
-ek4sæ
-ek6t7arm
-ekt3av
-ek3tef
-5ek3tep
-ek5tes
-ek6test
-ek4tid
-ekti5m
-ek5tiv
-4ekto
-ektori6a
-ek4t3ra
-e6k6t7ro
-e1ku
-eku4le.
-e1k2v
-ek4val
-ek6var.
-6ekve
-e4k5ve4d
-e4k5vik
-ek4vin
-ek6vis
-3ekviv
-6e5kw
-e5ky
-eky6te.
-e3kæ
-e1kø
-e1kå
-ekå6pa
-2e1la
-ela4ga
-el3agg
-e2l1ak
-e5lake
-elak8se.
-el7akt
-el1al
-e8lame
-el3anl
-e6l5arg
-e4larr
-el7arti
-e5las.
-e5lase
-ela4te.
-el5ato
-el5avl
-el3avs
-elbo8da
-el4ch
-el5do
-eld4rer
-eld5sle
-4eled
-e4ledi
-e4ledr
-e3lee
-eleg5d
-ele7ger
-eleg8na
-e7leir
-e7leis
-e5leke
-e2lel
-e2lem
-e5lem.
-e5lemat
-5elemen
-e5lemet
-e3lemm
-e3lemp
-4elen
-ele9na
-e4l5enh
-elens3
-e4lentu
-e5lepa
-2e3ler
-ele8ra.
-e7leret
-e6l7erg
-ele3sk
-e6lesku
-e4leta
-e4lete
-5e8lev.
-ele4vak
-6e5levn
-el5fi
-el9ga.
-el5gele
-el5gi
-elg3s8
-2eli
-e9lie
-eli5e6rer
-e4lif
-e4li5g4r
-e4l3ind
-elin5es
-e4linsp
-eli6o5s
-eli8ta.
-eli4tet
-6e5litt
-eli6v7en
-el1j
-elk2
-el6k5al
-el4ke5s
-el4kete
-el3kn
-el5la.
-el5l6ar
-el4led
-el4leg
-ell5eie
-el5ler
-el3le4s
-el6lete
-elli7ga.
-el4lisj
-ell7sa
-ell5sk
-ell5s4l
-ell5sp
-ell5sv
-el5l4ur
-el4læ
-el5m4o
-el5mu
-el5n
-2e1lo
-elo6ka.
-e2lom
-e3lomm
-el3omn
-el3oms
-el1op
-e2l1or
-e3lort
-el3ost
-el4ot
-elo7vers.
-e4l5ovn
-el4pet
-el5ph
-elro4s
-el4sei
-els5eie
-el3sen
-el3se6s3
-el3si
-el4sje
-el4skal
-7elskand
-els5kare
-els1l
-el6sno
-el4spe
-el3spr
-els4ten
-el4sti
-el4stj
-el2sø
-els5øk
-el5s6åpe
-elta8le.
-el5te.
-el6teg
-el4tero
-el4t5ett
-el4t3op
-el4tro
-elt5rop
-el2tu
-e3lua
-e1lu2e
-e4lu4he
-e3luk
-e7lum
-el3ung
-elun6ge.
-e7lup
-elu8pe.
-e1lur
-e7lus
-el3utr
-elv3an
-el4ve3d
-el4vei
-el6vere
-elv1r
-5elvs.
-elvæ6re.
-4e1ly
-ely8et.
-el5ynd
-2elæ
-elæ5res
-el9ærv
-e6l5æt
-2elø
-e4l3ø4r
-el3øy.
-el5øya
-el5øyd
-e6l3øyn
-2e1lå
-el1år
-e5låt
-4em.
-e2mad
-emafo5
-ema4ge.
-e4magr
-e2mah
-ema4ke.
-e4mako
-em5akti
-e4maku
-ema6le.
-5e4malj
-e4mam
-e4mana
-ema4ni.
-e6manu
-e4mare
-em7ar8m
-e4masi
-e6masku
-e4mata
-ema3uk
-ema5ve
-5emball
-3embed
-embe6r5
-3embet
-6emd
-8eme
-emei9e
-eme4li
-e4mend
-eme5tri
-eme6trisk
-em5e4v
-e4mib
-emi5ert
-e4mig
-4emin
-emi5ni
-emini6st
-e4minor
-e6mir
-emi9sa
-em7je
-e5mju
-em5le
-emle6s
-em5me.
-em5men
-em8mi.
-8emnd
-em4ne.
-em4ned
-em4nem
-6emni
-emo5nol
-em1op
-e2m3o4v
-em4ped
-em6peri
-em2p3l
-emp9lane.
-em6pli
-empo3
-em4pol
-em4pos
-em4ses
-emse8te.
-em4s5ju
-em4s1l
-em2sn
-em4sor
-em1st8
-ems4te
-ems3u
-emta8la
-em4til
-e3mug
-e2muk
-e5my
-emy4k
-6emø
-emø8r
-e5møy
-emå4la
-emå9lan
-emål4s
-em1å8r
-2ena
-en1ak
-en3ald
-ena5li
-en3all
-en5and
-e5nane
-e6n7ang
-e4n3ant
-e5nar.
-en8are
-e4narr
-en3ass
-enat6s5p
-ena2v
-en3avi
-4enb
-enbe9na
-en4d5and
-en4dek
-en3del
-endelø7se
-en5demi
-en3der
-en4desl
-end5l
-1endr
-en4d3ro
-end3st
-en7dø
-endø4r
-endør5e
-en5egg
-eneg8ga
-en3eie
-en5eks
-e3nekt
-4enem
-2enen
-en5eng
-3energ
-e4nesk
-4enev
-ene7ven
-eng6a
-en7gar
-en4gem
-en4geri
-enge6r5u
-en4gle
-eng4les
-eng4r
-eng3s4e
-eng5so
-eng5sp
-engs4ti
-en4gut
-en4g5å
-4enhj
-e4ni.
-e4nierk
-e2nif
-e5nir
-en4kera
-en4keri
-2enna
-en9nal
-2enne
-en4nem
-ennes6t
-enne4s5v
-enn2i
-enn2o
-enn4sj
-enn5sta
-enn7ø
-2eno
-en3ok
-en3og
-e8n7old
-en3om.
-en1op
-e6n5ord
-2enp
-en4pås
-en4rem
-en5sab
-ens5af
-en6s7a6ker
-en4sek
-en4seli
-5ensemb
-en4ses4
-ense3u
-en3si
-ensi8de.
-ensi5ert
-en4sim
-ensle7g
-ens6lev
-en7s6opt
-en1st
-en6s7tal
-ens4ter
-ens4ti
-ens7und
-ens4ve
-ensvi6
-en2sø
-ens3øk
-ens7å
-en5ta.
-en4tap
-en5te.
-en4tec
-en4teg
-en4tel
-en3ti
-en5tie
-en5tig
-en5tik
-en9tima
-en7timen
-en4to4r
-ent5ori
-ent5rab
-en4tre
-ent5ren
-en4t5rol
-entropi5
-en4t3rå
-en6tul
-entun6ge.
-3entus
-2enu
-e2n7ul
-e4n5ur
-2en3v
-4enw
-e4ny.
-e2nyb
-e6nyr
-e2nys
-e4nyta
-4e7næ
-enæ8m
-enø4k
-e2n3øv
-en5øyd
-4enå
-en1ås
-en6ås.
-e3o6
-eo3a
-e6obe
-eo2bl
-eo5d
-eod8de.
-e1og1
-eo7gr
-e2o1i
-e2ok
-e3oks
-e2ol
-e4o7lo
-eom1s4
-eon8de.
-eo5ne
-e7onk
-eon4kl
-e3ont
-eo2p
-eo3pa
-eo5pl
-eopo3
-eopp5r
-eo3pr
-eor4da
-eo9re
-e2ori
-eo4rid
-eori5e6
-eo4rik
-eo4ris
-eo1ro
-eo1s
-eos6l
-e2o1u
-2e1p
-epa3t
-e6peno
-epe6p
-eper5r
-e3pes
-epe4st
-e4peta
-e6peu
-3epid
-epi6ka.
-epi7kr
-8e7pin
-3episo
-ep2l
-e8plen
-ep5lene
-ep5ler
-eple9s6
-3eplet
-epo6et
-3epoke
-epp2s
-ep6sem
-ep4ses4
-ep6s5lu
-eps1t
-ep2su
-e3p2sy
-ep6tin
-ept6r
-2e1ra
-e4r3abb
-era8da.
-e4rael
-e2raf
-er3aft
-e4ra4g
-e2r1ak
-e3rake
-era5kl
-eral3u
-e4rama
-era6na.
-e5rande.
-e5ra7ne
-er7anli
-era4no
-er5ape.
-er5aper
-er5a4pin
-er3apo
-er5appe
-e5rar.
-e4rarg
-e5rasane
-e5rasar
-e4rasje
-e4rask
-e6raso
-e4r3ass
-er6ast
-e4ratek
-era7tor
-e4ratr
-er5att
-e2rau
-er5auk
-erau9ken
-erau8s
-er3av.
-er3avh
-er5avl
-e3ravn
-er3avr
-er3avs
-4erb
-erbi9ti
-erbo8da
-erbo8de.
-er8byl
-erd2e
-er4ded
-erden8s
-er4dis
-er1dr
-erd4ra
-erd8re
-erd4skj
-erds3t
-erd4sto
-erdsto8ga
-er3d4v
-e1re
-er3eff
-er3eft
-er5e4gen
-er3eid
-er3eie
-ere6ka
-ere6ke.
-e4r3eks
-e6r5ekte
-e4r3e4le
-ere4lit
-e6relli
-e4r3els
-e9rem.
-e5remm
-er3emn
-er5enden
-e4r3eng
-e4r5enh
-e3re4o7
-er8er.
-e4r3erf
-e5reri
-er3ess
-ere4t
-e5ret.
-e4r3eta
-eret6h
-ere5to
-e7rets
-6erett
-eretts5
-e4r3e4va
-e4r5e4ve
-e4r3evn
-erev6ne.
-e8ré
-5erfari
-6erfi
-4erfr
-2erg
-erg5elv
-ergi3f
-er6gli
-er4go.
-erg5ret
-erg5sko
-erg5sp
-2erh
-erhø6re.
-e1ri
-e4riad
-e4riak
-erib3b
-eri3bl
-e4rice
-e2rid
-e5rid.
-e5ridn
-eri4kat
-e6rikn
-4eril
-e7ri6ma.
-er3ind
-e3ring
-6eringar
-ering6si
-er3inn
-er3ins
-er3int
-e5riori
-e5ris.
-e4risa
-eri3se
-e4riso
-e6risp
-e5rist.
-e7rista
-e5riste
-eri5stil
-e4ri5s6to
-eri5sø
-e4rite
-e4rito
-er7ivo
-er7jes.
-4erka
-8erke
-erkeri6e
-er4kesa
-er4kese
-er4kete
-er6k5ett
-3erklæ
-6erkn
-4er5k4o
-4erkr
-erland7as
-erle6ge.
-erle7s8t
-er3me
-ermo8de.
-erm1s
-ermå6la.
-2ern
-er4nad
-er4ned
-er5nede
-er6nee
-er4nero
-er4nest
-er2no
-er3nob
-2ero
-e3roa
-er3obl
-5ero4b7r
-e1roe
-er3off
-e1rog
-er5oks
-e1rol
-er3oly
-e1rom
-er5omk
-ero5mo
-e1ron
-er5ond
-erono5
-er1op
-e5rop.
-e7ro6pa
-e5ropen
-er1o2r
-e5ror.
-e3rore
-e7ro4sa
-3erosj
-er3osl
-ero4ta
-er1ov
-2erp
-2err
-er3ra
-er4rae
-er4rel
-errie9n
-6ersa
-ersa8ka
-ers6al
-er3sep
-6ersj
-er1sk
-er3ska
-ers4ka.
-er8skaran
-er9s6karar
-ers5kor
-er1sl
-ers4la
-ers6led
-ers4mi
-er5sne
-6ersp
-ers5tens
-ers5ter
-er7stev
-er1su
-4ersv
-er4sva
-ers4ve
-er1så
-er4s5år
-2erta
-er4tare
-er4te3s4
-er5tia
-er3tib
-erti4e
-er5til
-erti4mo
-er4top
-ert5rol
-4erts
-ert3sa
-erty6e
-ertå7ren
-2eru
-e1rua
-e5rud3
-e1rui
-er1u2k
-e3rum
-e4r3ung
-er3uni
-e3rup.
-er1u8r
-erure8
-e1rus
-er5ut.
-e5ruta
-e3rute
-er5utn
-er9uto
-e4ruts
-er7u6v
-ervele8
-6ervi
-ervs3
-ervæ6re.
-e1ry4
-e2r3ya
-erye7ne
-er1yr
-erys3
-e1ræ
-e9r4ære
-2e1rø
-er5økn
-e4røko
-er1ø4l
-e4r5øn
-e5r6ønn
-erø8ra
-e6r5ør6s
-er3øya
-e4r5øy7e
-erøy4n
-e4r5øys.
-er7øysk
-2e1rå
-e9rå.
-erå4da
-erå8de.
-erå6e
-erå4k
-er5åke
-er3å4l
-e2r1ån
-er3å4p
-er3å4se
-erå6t
-er7åta9
-e6råv
-2es.
-e1sa
-es5aa
-e2sad
-esag6
-es4al
-esa6la.
-esa9met
-e4s3ant
-es5arab
-es5arv
-esbi9e
-es8ce
-2ese
-es5ege
-es3ei4d
-es5eie.
-es3eig
-esei8ge.
-e3sek
-e4seku
-esel5s4
-e3s2en
-e5ser.
-e5sere
-e5seri
-e4s3erk
-ese5s2
-e3sest
-e4sesv
-ese5tas
-ese4te.
-e5setj
-e9sets
-e4seu
-e4sha
-es6har
-esh9ar.
-es4h5er
-e4shi
-e1sho
-e7s8hop
-esi6ar
-esi5ert
-e4sil
-e5sili
-es3ill
-e4s3ins
-esi6v
-esi3st
-es3jor
-e5skab
-es6ked
-es4kee
-es4ker
-8eskil
-e4sking
-eskinns5
-e1skj
-e8s9kjer.
-es4kjæ
-e6skjøn
-es5k4n
-e5sko.
-es7koa
-e3skot
-e1skr
-e1sku
-esku5et
-es3kvi
-e5sky
-e6skyr
-e1skø
-e7skå
-eskå7r
-e1sla
-es4lek
-es4let
-es7let.
-es7lets
-es4lit
-e4s5lok
-es4løk
-es4løv
-es4make
-e7s4mett
-es9na.
-es4ner
-es2no
-es4nu
-es2ny
-esnæ5re
-4e1so
-eso4b
-e2s3od
-e2s1of
-es3oks
-e2som
-e3somm
-e4s3ori
-e1s2p
-espa9ra
-es3pas
-es5pe.
-e4s4ped
-es5perm
-es3pl
-es4p5le
-es3pol
-e3spor
-es3pun
-es4sed
-es4see
-es4seg
-esse7i
-es6sendi
-es4s5enk
-es4ses
-es4sete
-ess5e4va
-es4s3ja
-es4sje
-es4skr
-ess4let
-ess3om
-es4sos
-es4spa
-ess5tilt
-es4stol
-ess5tor
-ess9tua
-ess5tue
-esstu8en.
-4essu
-es2s1v
-es6s5å
-e7stad
-es5tae
-es7takt
-es9tala
-e8stane
-e5stans
-es5tant
-es3tap
-e5start
-e3stat
-es5tato
-e4s3tau
-e7stav.
-est5avs
-e6s5te.
-es4teg
-est5eie
-est5eig
-es4tek
-es4tel
-e5stell
-es5tels
-e4stema
-e6steme
-e4stemo
-es5temp
-6esten
-e7steng
-es5tenk
-e8s7ter.
-e5s6terk
-esterne8
-este3s4
-es4test
-es4tien
-e3stif
-es4tig
-e3stik
-es4tikk
-5e6s5tima
-es4tis
-e4stiv
-e1stj
-es3t6on
-e4stog
-e3stok
-e3s4tol
-es6tone
-est5ord
-est5ori
-es5trak
-est5rene
-est5rer
-est9ré
-es5trib
-e5stryk
-e3strå
-e1stu
-e5stud
-es5tus
-8estå
-estå5ren
-estå6s
-est7åse
-e1su
-es5ut
-esva5re
-e5s4vek
-es5vig
-e5svikt
-es3vis
-2e3sy
-esy4na
-e4s5yt
-es5øvi
-es7øye
-e1ta
-4eta.
-e4tae
-e2taf
-etafo7
-e3tak
-e6tako
-e3tal
-eta3la
-eta4la.
-et5ald
-8e7tank
-eta5le
-4e5tall
-etal6list
-etall5s6
-etal4s7
-et3amb
-e6tand
-eta4nen
-et4ap
-e9tapa
-e5tape
-3etappe
-et8ar.
-et8are
-et5art
-5e6tasjes
-1e2tat
-4e5tati
-e5tato
-e3tatt
-et5aun
-e8tax
-et1c
-2ete
-e4teie
-e4teka
-ete4ma.
-e5teran
-ete5ru
-etes5i
-e4tesl
-et8et
-e5tet.
-e7tets
-4eté
-4eth
-et6her
-2eti
-e3tit
-2e1tj
-e7tjer
-et3jø
-6etl
-et5m
-2etn
-et6nev
-etning4
-etnings7
-2e1to
-eto4er
-et5oppd
-et3ord
-e4tot
-2e1tr
-e5t4rad
-e7t6rak
-8etre
-e5tree
-e5tref
-e4t3ris
-e9tru.
-et5rum
-ets1
-et9sar.
-et4sku
-etsku8le.
-ets7l
-etsla8ga
-etsnæ4
-et2sø
-et4tak
-et4tal
-etta6le.
-ett5alt
-et4tank
-et8tap
-et5te.
-et6tei
-et6telt
-et4tenk
-et4tenn
-ettera4
-etter5at
-et5t6erf
-5etterk
-5etterr
-ett5esk
-2etti
-et6tia
-ettian8
-et4til
-et2tj
-etto5a
-et4tr
-ett3re
-ett4ski
-ett4sti
-et3tug
-et4tur
-ettvi5se
-et2ty
-2e1tu
-5e6tui
-etu6na
-et3uni
-2e3t2v
-e4t3va
-e5t6vang
-2e1ty
-4etz
-4etæ
-etæ3ra
-e1tø
-e1tå
-etå5re
-e1u
-eu4a
-e8uf
-eug8la
-eu4h
-eu4ka.
-eu2ke
-eu5kem
-eu7kr
-eu2l
-eum2
-e3u2n
-eun4ge.
-eu5nu
-e4up5a
-e6upk
-e2ur
-eu6rat
-eure4
-2euri
-e3urn
-eur8na
-eur6ne.
-euro1
-3europ
-e3urt
-e2us
-eu4si
-eu1ta
-e3uts
-eut7t
-e4u3z
-e1v
-evad6r
-ev5akti
-eva4la
-evann4s
-e4v5anta
-e4varar
-e4varb
-e4v5ark
-e6vatf
-6eved
-eve5d6a
-eve5del
-6eveg
-e5vegg
-evei6s5
-6evenn
-even5s
-5eventy
-e4veny
-e9ver.
-e5ves.
-e5veta
-e5vev.
-evi4e
-evi5ere
-evi5ert
-evin4s
-evi4se.
-evis3t
-e2vj
-ev2na
-evn5a4k
-ev7nu
-ev7oms
-e4vre
-e7vri.
-ev9rå
-ev1s
-evs8v
-evta8la
-evti4
-e2v3un
-e5vyrk
-e2vø
-ew3a
-ey1
-eybal4
-e1y2d
-ey5k
-e1yng
-e1yr
-eyr6ka
-eyr4ke.
-e1y2t
-e7yti
-ey3tr
-e3zi
-e1zu
-e1æ2
-eær3
-e1ø4
-eør6na.
-eøy4
-eøy9an
-eøy7en
-e1å6
-eåk4
-eån8da
-eåt8t
-é1a
-é1b
-é1d
-édø4r5
-é5e8
-é1f
-é1g
-é1h
-é1i
-é1k
-é1l
-é1m
-é4n5e
-é5n6et
-é5o
-é1p
-é1r
-é2rj
-é1s
-ése2
-é1t
-é1v
-éva8la
-évo8re.
-é5å
-è1r
-è2red
-è2ref
-è2rek4
-è4rener
-è2rep
-ère3s2
-è4rest
-è2rev
-è6ves
-ê8lan
-ê6ra
-ê1re
-êr7o
-êr9sl
-1fa
-4fabo
-fac8
-fa1ci
-fa3de
-fa6de.
-6fadm
-fa4f
-fa2g1a
-fa5ger
-fage4t
-fag5eti
-fa2gi
-fa2go
-fa2gr
-6f5agro
-fag3sk
-fa2g1u
-fai5
-2fakr
-fakse9t
-fakta3
-fa1ku
-5fal
-fa1la
-fal6kes
-fal4k3l
-fal6lers
-fal5m
-fa4lo
-fal4sk
-4fa5mo
-fa4na.
-7fan5d
-5fane
-fanfa5
-fang4s
-fangst7ev
-4fank
-2f3anl
-fan5s6
-fan7tesk
-fan5ti
-fan3to
-fan4try
-6fanu
-2fap
-3far
-9f8ar.
-fa3ra
-fa4ra.
-fa4re.
-fa4res
-far4gel
-far4ges
-fa4rit
-far5n
-far6skj
-fart2
-far4vel
-4fary
-fa7sa
-fa4sel
-fa4seru
-2fasl
-fast3r
-fa3tal
-fa4te.
-fa6t7ers
-fa1to
-fat2r
-fa3t6re
-fav5ne
-fa1vø
-2f1b
-fba4ne.
-2f1d
-1fe
-3fe.
-2fe1a4
-5fea.
-fe5a6l
-2fec
-fe4da
-3fede
-fe2dr
-fe3dra
-fe3d4ri
-fe7ene
-2fef
-2fe3g
-2fehj
-fei9en
-fei9er
-feig4de
-fei5ge
-feil5es
-fei4li
-9fein.
-7feine
-fei7ter
-8fej
-2fek4a
-4fekl
-2feko
-4fekr
-fek6tes
-fekt5ev
-fe5lag
-fe5len
-fe5li
-feli7e6
-6felik
-felles5
-fel7læ
-2felo
-fel5ok
-fel9ta.
-fel4tek
-fel4ti
-fel4tra
-fem5ak
-fem9b
-fem9ne
-fe4mo
-fem5s
-fem4tid
-fe2m1ø
-5fen.
-4fena
-fend9r
-4feni
-5fens
-fentleg5
-2feo
-2fe3p2
-5fer.
-fe6ral
-4feram
-fe5ras
-fer6at
-fer4dam
-fer5de
-4ferea
-4fereg
-fe4rek
-fer6en
-fe7rer.
-fer5ers
-feri6e
-feri8e5ne
-7fern
-fer2r
-fers9kar
-fers7ke
-2fe1ru
-3fes.
-2fesi
-2fe1sk
-fe2st
-fes9t6i
-fes8t3r
-fes9tum
-fe6st9ø
-4fesy
-fe6ta.
-4fetap
-fe4te.
-4fetea
-fe5ti
-4fetil
-2fet6r
-fett5j
-fett7s6
-4fe4ty
-2feu
-2fev
-fe4ven
-2feø
-fe6øy.
-2feå
-1fér
-2ff
-f7fa.
-f4fab
-f2f3a2g
-f4f3ak
-ffa7l
-f6fann
-f4farb
-ffar6d
-ffa7re
-f9fas
-f6fat
-f8f9au
-f2f3av
-f2feb
-f2fe3d
-f2fee
-f6feh
-ffel7t8
-f2fem
-f6ferdi
-ffe4rer
-f2fes
-f4feti
-f4feto
-ff5eve
-f2fib
-f4fice
-f2fid
-f9fien
-f4finn
-ff5int
-f2fip
-ffi5s4
-f2fj
-ff3la
-ffla8ga
-ff9leg
-ff5lek
-ff3li
-f2fo
-ff4ol
-f2f3re
-ff1ro
-ff5sl
-ff5t4
-ffu6r
-f6f7ut
-f3fæ
-f4fø
-2f3g2
-2f1h
-1fi
-fia7l
-fia4n
-4fiap
-fi4as1
-fibi6en
-fi9cen
-fici7
-fi7di
-fie2
-fi1er
-fi7e6re
-fi4f
-fi5fi
-fi5fo
-fi7fl
-f6ig
-figh9t
-fi7g6r
-4fih
-fi9ka
-fikali7
-fikalie6
-fi7ken
-fik6ka
-fik6k5n
-fi5ko
-fik7sa
-4fiku
-fi4la.
-fi3li
-fil6lel
-fil6leri
-fil4les
-fil7leti
-fil8m7at
-fi1lo
-filt6re
-fil7tres
-fil4tri
-4filæ
-fin5art
-fin5d
-fi4ne.
-fi5ner
-fing3r
-6finj
-finn5ei
-6finnsa
-fi4n3o
-fi9nor
-2fins
-fin6sleg
-fin6te5s
-fi2nu
-7fio5
-fi2r
-fi3ra
-fi6ra.
-fi9rene
-fi5res.
-fi3ri
-fi5s4a
-4fisc
-fi6se.
-fiser6s
-fi8si.
-fi2sk
-fi6ska
-fisk5a6d
-fis7kal
-fisk5and
-fis6kart
-fis6k5end
-fis4k3l
-6fiskol
-6fisku
-fis5ti
-6fistu
-fiti6me.
-4fitr
-fitt5s
-fi7ty
-fi4ve.
-1fj
-f1jeg
-fjel6lend
-f5jen
-fjer5ne
-fje4sk
-fje2t3
-f5ju
-fjære5
-fjæ4res8
-2f5k6
-f2l2
-f5lag.
-f6lagg
-fla7ke
-f4las
-2fleg
-fle6i
-f4lek
-f6lel
-fle6r5u6
-fle4sl
-f4lett
-f3lev
-fli7ne
-flis7t
-flit9t8
-1flo
-flo9ga
-flok9s
-flo2m3
-flo6r5o
-flos6kl
-f6lu
-flue3s
-flus8
-fl5ut
-3fly
-fly3s4
-f3løn
-flø5s
-1flå
-flå9sa
-flå7se
-2f1m
-fn6
-1fo
-2fo.
-fo9ar
-6fobs
-2foe
-4fof
-foi7la
-fo8ke.
-fo6la.
-fol4dr
-fo4le.
-fo5led
-fol6k5v
-fol9ler
-fol5lese
-folke5s6
-fol5li
-fo4lu
-3fon
-fo4na
-fond2
-fo5ne
-fo3n4id
-fo4nin
-fon1s2
-f1op
-for1a
-for9drev
-for7dro
-for5d6u
-fo6re.
-for9ei
-for7e6n
-for5ent
-for5ess
-for4et
-for9e8te.
-for9e8ten
-for9g6
-forh6
-fo4r9in
-fork8
-forlo7v
-forlø9pa
-forlø9se
-formo9r
-for3n
-foro6
-for5p4
-for3se
-forsi9da
-forsi7de.
-for3s4m
-fors8t
-for9ste
-fors4v
-forta8le.
-for5t6e
-fortei9e
-for7t6i
-forti5da
-for3t4v
-for3u4l
-for7v6
-forva9re
-fo8r5æ4
-for5ø4
-for9å
-fo9se
-fosfo5re
-4fosj
-fo4ta
-fo6te.
-foto5
-fo4tok
-fo4tom
-fo6top
-fo4tor
-fot3s
-fots6v
-fot3t
-4f1ov
-3fô
-2f3p2
-fpo6e
-fr2
-1fra
-fra5l
-fra4m5e
-fra6mi
-framma8ne.
-franko5
-fran7se
-fra7r8
-fra1s
-fra5se.
-fra7sep
-frasi8e
-fra7sk
-fras6p
-fra7v
-fra7v6r
-f2re.
-fred8sel
-freds5t
-fre4e3
-8freg
-f4rek
-fre4m5
-fremma8ne.
-frems4
-fre7ne
-fre6sk
-fres7ko.
-fres5koe
-fre8s9v
-fri5a6re
-6f5ridi
-fri4erf
-f1rin
-fris6ka
-fri5s4p
-fri5s6til
-frite8re.
-friti8me.
-6froc
-fro7f
-fronta9le
-fro8st
-frus1
-fruta6le.
-f1ryt
-frø5b
-f4røk
-frø7ko
-frå9r
-fråve4
-2f1s
-fs2h
-fsho6
-fsi2
-f5sjuk
-f2sl
-fsle6ge.
-f4sm
-f2sn
-fs7ne8
-fs5ov
-fs2t
-f2s3tab
-f6s5tan
-f4s9v
-2ft
-f1ta
-f3ta.
-fta7f
-ft1ak
-fta8la.
-ft3alg
-f2t1am
-f4tana
-f7tane
-ft3anl
-f5tar.
-ft8as4
-f6t1av
-f2tea
-f3ted
-f4tee
-f2teg
-f2tei
-f2tek
-f6tem
-fte4na
-ften3d
-f4t3enh
-ften5s6v
-f2teo
-fte4r5a4
-f4terin
-fter5s
-f4test
-f4teta
-f4t5ett
-f8t7id
-ft3ind
-f2t5i4s
-ft5l
-ft7n
-f2t1o2
-f5tog
-3fton
-ft3r
-fts5alt
-fts3ei
-fts5ers
-fts5erv
-ft2s1i
-fts1k
-ft2skaf
-ftsla6ga
-ft5s4lan
-ftsle6ge.
-ft3sto
-ft6s5top
-ft5s6tri
-ft5stø
-fts1u
-ft2s1ø4
-ft5t4
-ftta8ka
-ft1u
-1fu
-fu8ga.
-fug9le.
-fug6l7eg
-fu6le
-full3
-ful9lar
-fulle6
-ful9le.
-ful4len
-fullen8de.
-ful4ler
-ful7les
-fullfø7re
-funn2
-funns3
-funnsla8ga
-fu6ra.
-fu6re.
-fu9ret
-fu7ro
-furu1
-fu7sel
-fu6sk
-fus6o7
-fu4s5t
-fut4h
-futu1
-4f1v
-fva8la
-1fy
-fy5la
-fyr2
-fy8ra.
-fy4r5a4b
-fy1re
-fy4re.
-fyr7k
-fyr8ke.
-fyr5t
-fy3s
-fysa7
-fy8sa.
-2fæ1
-1fø
-fø4da.
-fø4dek
-fø5den
-fø4des
-fø5des.
-fødsel8s7
-fø1f
-2føk
-fø4le.
-f8ør
-før6a
-fø5rar
-fø4re.
-fø4res
-fø7resv
-fø8rete
-før6tin
-4få
-få7ren
-få7ret
-få5ri
-får7u
-få7va
-1ga
-4gaba
-ga1bo
-6gabø
-ga3da
-ga4ded
-4gadg
-2gadm
-4g5adr
-ga4e5k
-gaffel5
-6gaflo
-g3aft
-6gah
-6gak
-g1aks
-gak8ta.
-gak8te
-ga3kv
-ga1la
-ga4la.
-galei5
-ga7len
-gal4les
-4galli
-5ga7lo
-ga4ma.
-4gamb
-ga5mer
-gamme6l5
-6gand.
-6ganden
-9gane
-gan5g6en
-gan4g5j
-4gan5k
-2g1anl
-4gann
-4gansa
-4gansv
-4g5antre
-ga6pa.
-ga4pe.
-ga4p5l
-gap3s2
-ga6p7u
-9gar.
-ga6raf
-ga6r5ak
-2garb
-5garbr
-5garby
-gar4dek
-7gare.
-4garea
-gar5es
-gares6ke.
-gar2i
-4garki
-gar3ne
-gar6ta.
-g5arte
-gar8te.
-g3arti
-gart5s6la
-gar4un
-ga4ryl
-ga4sc
-ga5s2i
-gas8ka.
-gas8ke.
-ga6ski
-4gasp
-gas6sel
-gas5sen
-gas7ser
-gass5ett
-gass3l
-5gast
-gas5te
-ga5sto
-ga6s6t6r
-g2at
-ga4te.
-ga5tens
-gate5s
-ga3ti
-ga1to
-ga3tr
-gat6tap
-gau5la.
-9gav.
-2gavd
-6ga4vei
-ga4veri
-4gavg
-g5avk
-2g1avs
-2gavt
-4gavv
-2gaw
-4gaø
-2g1b
-gba4ne.
-g6byk
-2g1c
-8g1d
-gd5alt
-g6d5au
-gde3a
-g2deb
-g3deba
-g4dedi
-gde5lo
-g2dem
-g4dend
-g2de5o
-g4dera
-g4de5re
-g6dero
-g2des
-g2det
-g3det.
-gdevi8sa
-gd5op
-gd1or
-gdy4d
-g6d1øy
-1ge
-2ge1a
-geak8ta
-geak6te.
-gea7ren
-ge4ark
-2geb
-6geba
-4ge5be
-3gebri
-4gebrå
-3gebyr
-ged4
-4gedan
-6gedel
-gedia5
-9gedom.
-7gedoma
-9gedome
-7gedomme
-6gedoms
-4gedos
-2gedr
-2gedy
-2gedø
-2gee
-geen8de.
-2gef
-g5eft
-3gefæ
-2ge1g2
-g5egg
-g3e2gn
-2geh
-gehø8ve.
-2gei
-g1eie
-g4e1in
-gei4r3
-gei9re
-gei8s7p
-gei6st5
-3geit
-geit3a
-geit3o
-gei4t3r
-2gej
-2gek2
-ge9kl
-ge3kn
-g1eks
-6gekt
-5gel.
-ge4lar
-4gelau
-ge6le.
-ge7lea
-4geled
-4gelei
-gelei5er
-4gelek
-4g3elem
-ge5len.
-ge5lens
-5gelet
-gel5ett
-3geli
-4gelid
-6geligg
-4gelit
-6geliv
-2gelo
-ge5lov
-7gels4
-gel3se
-gel5si
-gelsk7l
-gel5t4
-4gelu
-ge5lun
-gel7ve
-4gely
-2gelæ
-2gelø
-2gelå
-5gem.
-2gema
-9gema.
-2gemi
-3geml
-4g5emn
-gem6na
-2gemo
-9gemr
-3gems
-3gem4s5t
-ge3mu
-2gemy
-2gemø
-2gemå
-g2en
-3gen.
-ge2n1a
-ge7n6am
-gends6t
-ge3nea
-4genem
-gen5erf
-ge5nes
-gene4t
-gen5eti
-4genev
-gene5ve.
-gen8ga.
-gen5gr
-ge4ni6n
-6geniv
-gen5k
-genle6ge.
-gen3n
-gens5l
-gen6sun
-gen5tr
-4genum
-4geny
-4genæ
-4genø
-2geo
-5geog
-3geol
-geome5
-geomet4
-ge5on
-6geop
-ge9ope
-2gep
-g2er
-3ger.
-ge5ra.
-ge6ral
-ge4r5ant
-ge9ras
-ger5di
-4gered
-4geref
-4gereg
-4gerek
-ge6rene
-4gerep
-6gerese
-4gerett
-ger4i5d
-4gerik
-geri8ka
-6gerike
-ge4rim
-ge4ris
-ge4rit
-ge4riv
-gerle9g
-g9er8ma.
-ger3n
-gerne6
-4geroa
-4gerom.
-4geromm
-6gerop.
-4gerope
-ger5p
-ger4s5af
-5gerud
-ge5rup
-ger5v
-gerø6re.
-ge4r3ø4v
-4gerå
-g6es
-5ges.
-2gesa
-2gese
-5gesen.
-5gesens
-4gesi
-4ge5sja
-4gesje
-2ge1sk
-ge1sl
-geslu7
-ges4lø
-4geso
-4gespe
-ge4spr
-ge5spra
-2ge1st
-3gest.
-gesta7b6l
-5geste.
-ges6tekk
-ges8ti.
-gest5rid
-gestri8de.
-6gestå
-2ge9s8u
-ges5vik.
-2gesy
-6gesæ
-2gesø
-2ge1så
-geså5re
-5get.
-ge5tak
-geta6le.
-6getat.
-6getate
-4ge3te
-5gete.
-2geti
-2getj
-2geto
-2getr
-5get5s
-2getu
-2gety
-gety8e
-2getø
-2geu
-g2ev
-2ge7v8a
-2geve
-4gevir
-gevi6sa
-4g5evn
-gev6ne.
-4ge5vo
-5gevå
-2gey
-4geæ
-2geø
-2geå
-1gé
-2g1f
-gfe2l
-4g1g
-g6g5al
-gg5ask
-g2g1av
-g4gedi
-gg1ei
-g4gela
-g4gele
-g2gem
-g4genu
-g6gerei
-gge4rin
-g4gerø
-gges6b
-gges5l
-g4gesm
-g6geso
-g4gesp
-g6ges6tio
-g6ge5sv
-g2gev
-ggie6
-g4gif
-g4g5i4m
-gg4je
-ggje5s
-g2gl
-g7glu
-g4gn
-g2g1o2
-g3go.
-g5gos
-gg3rad
-ggra6da
-gg5rat
-gg8re.
-gg3red
-gg7rek
-gg5s4par
-ggs7s
-gg3sto
-gg4sy
-gg3sø
-g7g8ud
-g4g5u4r
-2g1h
-ghe8n
-ght5ene
-gh4to
-ghæ8
-1gi
-3gi.
-4giak
-gi1ar
-4giarb
-6giav
-2gib
-gi8c
-2gid
-gi3de
-gi1e
-4giek
-3gien
-gi9end
-5gier
-4gifa
-2gifo
-4gifr
-4gifu
-gi6ga.
-2gigr
-2gih
-2gii
-5gika
-3gike
-4giki
-3gikk
-gi5k4r
-4giku
-gi5le
-4gimess
-gi4metr
-4gimi
-4gimø
-2g1ind
-6gingeni
-gi4nin
-2g1inn
-gin5nu
-4gino
-4g1ins
-4g1int
-2ginv
-4gi5om
-2gi1op
-gio4r
-2gip
-gip5si
-6gira
-gi3re
-gi4re.
-giro3
-gi6rob
-5gis.
-2gisa
-gi3se
-4gisel
-4gisen
-5gisk
-6giska
-gis8lu
-gis4lø
-4giso
-4gisp
-gi3s4pa
-gi5s4pr
-giste6ru
-gis5ti
-gist5ra
-gi5stré
-gi6st5rer
-4gistu
-6gisty
-gi5ta
-4gi5te
-gite4s
-gi2t9r
-git5te
-2giu
-gi7va
-4gival
-4givo
-4givu
-1gj
-8gjag
-2g1jak
-g5jarn
-2gjaz
-gje5f
-4g3jeg
-gjels4
-gje2n
-gjen7n8
-gjen1opp3s4
-gjen5s8
-6gjent
-3gjer
-gje7sk
-gje4s3p
-gje8v9ak
-2gjob
-2g1ju
-7g6jut
-gjø9de
-2g3k2
-gkly9
-gl2a
-6gla.
-gla3de
-4glag
-gla4ga
-gla8ge.
-g3land
-g1lar
-gl5art
-glar7v
-1g2las
-7glase
-gla6s7k
-g6lass
-6glast
-g5last.
-3glat
-g5lau
-gl6e
-gle6dero
-4g3lef
-gle3ge
-gleg8ga
-6glei
-glei7er.
-g2lek
-g7lek.
-g5leke
-g2lel
-3glemt
-4glen
-g9len.
-g9lene.
-g9lenes
-g9lens
-gle9pl
-4gler
-gle4ra
-glere8de.
-g9les.
-gle6se.
-g4le5sk
-g6le7sm
-4glet
-g2lev
-1g2lid
-gli4del
-gli7e6n
-gli8er
-glig1
-3g2lim
-gli9me
-4glio
-glitt4
-6g7liv
-4glj
-gl7ja
-gl5l
-g4lo.
-g2loa
-5glob
-5g6lome
-1g4lor
-gloria7
-glori6an
-glorie7ne
-g4los
-glo5ste
-6glov
-gls4
-8glu
-5glug
-g5luk
-6glun
-gl5ung
-glun8ge.
-gl5ut
-g5lyd
-3glyf
-gly4se.
-g2løg
-glø8pa
-2gløs
-gl7øy.
-5gløym
-2g1m
-g4mete
-g4metr
-g5mé
-gmini6
-gmo4e
-g3mu
-gmu8le.
-gmå6la
-g1n
-gn1ak
-gna5lem
-gna4lo
-g2nav
-gn1d
-gndø6
-gndør5
-gn4e
-g2nee
-g4nelo
-g6nero
-g6nerø
-gne1s4
-gne8se.
-g4nesk
-g4nest
-g5net
-g6netr
-g2nev
-g4nib
-g4nid
-5g6nik
-gning4
-gnings5
-gni4s
-g6ni5sk
-gni6st
-gnist9r
-gn5k4
-g2nom
-gn5o6p
-gn7o6v
-gn5r
-gn1s
-gn4skr
-gn6sm
-gn4som
-gns4pr
-gn4sti
-gn2s1v
-gn5t4
-gnu5re
-gnæ6re
-g2nå
-1go
-7goan
-go1ar
-7goar.
-2gob
-gobe5
-go4da
-go5dal
-god5ar
-2godd
-go4de.
-gods9t
-2gof
-go9ga
-go5ge.
-go9g8r
-6goi
-2gok
-gok4se.
-go3le
-gol6fa
-go5lo
-gol4va
-gol6var
-go4lå
-2gom
-g7o6ma
-6gometris
-7gomm
-go4n5and
-go9ne.
-go7ni
-go5nok
-gon9s
-2g1op
-3g6or4a5
-go5ra.
-go7rae
-go7ras
-2gord
-gor6da
-go1re
-gore8a7
-2gorg
-g4ori
-gori5e6
-g5orv
-gor8va
-go5rø
-gos3p
-8g7ost
-6goto
-got6r
-4gov
-go8ve.
-go8vi.
-2g3p6
-1gr4
-8gr.
-4grab
-6grac
-gra5ce
-9grads
-graf5f
-graf5t6
-gra4m5
-grand3s4
-gran5to
-grant4r
-gra9se.
-gra9set
-gra6sk
-gras3t
-gra5t
-gra8te.
-grati4s
-gra4u
-gra4v3ak
-gra7vis
-gravta8
-2grea
-4g5reds
-gre4en
-2gref
-g7refe
-g4rega
-greie5n
-grei6ene
-6g3reis
-4grek
-2g5rel
-g5rent
-4grepi
-grep4s3
-g7rese
-gres6sak
-gres6sent
-6g5rest
-4grett
-4g5ri.
-grib3
-4grid
-4grif
-4g1rig
-7g6rip
-gri4s5o
-gri4s5ø
-gri5sete
-4grit
-gro9ar
-g4ro7i
-grom5m
-g4ron
-gro5sk
-gro3ve
-gro6v5in
-4g5rui
-4g3rul
-grun7g
-5g4rup
-gru7sa
-grus5t
-2g1rut
-2gryd
-4g5ryg
-6g5rytm
-grø5de.
-6g5rør
-4g5røv
-grø5ve
-4grøy
-gr7øy.
-6gråd
-grå6da
-gråk4
-grå7n
-grå5te.
-8gs1
-gsa2
-gs5akers
-g7sal.
-g7sale
-g5salg.
-g5salge
-gsam3
-gs3amb
-gs7amn
-g7s8ang
-g3s6ank
-g5sard
-g2sas
-g7sast
-gsbø6n
-gs2ce
-gs5ef
-g2seg
-g2sei
-g2sek
-g5sekr
-g7sekv
-gse9la.
-gsel4s5a
-gsel4st
-g2sem
-gs6ende.
-gsen6ke.
-g5sens
-g3sent
-g2ser
-g5ser.
-g3seri
-gse4st
-gse4t
-g3sete
-gs3eti
-g9sets
-gs4ett
-gse2v
-gsfø2
-g2si
-g5sider
-gs5is
-gsi2v
-gs4jar
-g3sjef
-g5sji
-g2sjo
-g5sjå
-gs4ka.
-g5skad
-gs4kal
-g5skall
-g6skam
-g4skan
-g4skapa
-g5skape
-g4skapi
-gs7kav
-g5skilt
-g7s4kj
-g7s6kjæ
-g3skot
-g5skren
-g7skug
-g6skv
-gsla6ga
-gsle6ge.
-gs6leri
-g4sluk
-gs4lun
-gsl9ut.
-g5slyn
-gs5med
-g9s6mert
-g7snel
-g5sog
-gs9ope
-g7s8opp
-g7s8oppe
-g5spal
-g3spel
-gs2pi
-gs5pik
-g3spil
-gs5pile
-g6s5pors
-g3spur
-gs3s4
-gsse4e
-gs5tak
-g9s8tand
-g5stang
-gs4tasj
-g7s4tat
-gstatsrå7
-gst6e
-gs5te.
-g5ste4e
-gs4tell
-gs5tema
-gste6ma.
-g7stemt
-gs4tere
-g5s4terf
-g5s4terk
-g5s4tern
-g5s4ters
-g5s4terv
-gst7evnen
-g5s4ti.
-g3s4tie
-g3stif
-g3s4tig
-gs5tiå
-g5sto.
-gs4tol
-g5stol.
-g7stola
-g5stole
-gs5toll
-gs4trap
-g5strau
-gst5rea
-g5strede
-gst5rei
-g5streke
-gs6tret
-gstri8de.
-g5s4trof
-g3strø
-g5s6trå
-g5stue
-gst5ut
-gstyr8ka
-gs4tør
-g5s4tå
-gsu2
-gsu5g
-gs4vane
-gs5vik
-gs7væ
-gsy2d
-g7sym
-gsy6na
-gsy6t
-g2sø
-gsø6ki
-gs6øt
-gså4
-2g1t
-g3ta
-gta8ka.
-gta8ke.
-gta6la.
-gta4le.
-g9t6e
-gte6ke.
-gte6ma.
-g3ti
-gti8de.
-g4t5if
-gt6re.
-gtråd5s6
-gt7sv
-gt5t
-gtu8en.
-gtvek8
-gty8e
-gt9yt
-1gu
-4g5u4bå
-gu2di
-guds3t
-gu4el
-6gug
-g5ug6l
-gui4d
-guid5ar
-gu4le.
-4g5ulk
-gul8ke.
-gul4la
-gul5o
-gul7ø
-7gum
-gun4g
-gur2g
-gu4ri
-gur8na
-gur6ne.
-gu5rua
-gu3rue
-gu4st
-gu1ta
-2gutb
-4gutd
-g5ute.
-6gutg
-g7utl
-4gutn
-2guts
-gut4tak
-gut4tes
-4guttr
-2g1v
-gva4ke.
-gva8la
-gvedli6
-gvi8ta
-6g1w
-1gy
-g9y8a
-gy4da.
-7gym
-gy3ne
-gyr6
-gy8sa.
-gy6se.
-gy4te.
-gy4ve.
-g5æt
-4g5øk
-gør3s
-2g3øv
-gøy9a
-gøye6r
-gøy5n
-1gå
-gå6as
-gå6en.
-gå4er.
-4g5å4k
-4gåm
-4g3ån
-gån8da
-2g1å4p
-2g3åre
-gå2s
-gå3st
-gå9ven
-gå4vet
-h2a
-ha4a
-haba9
-4hae
-ha2el
-4hafi
-ha2g
-ha3ga
-ha4ga.
-ha3gen
-hai1
-ha7ism
-ha5ka
-ha4ke.
-ha5ken
-ha7kera
-ha4ke5s
-ha1la
-ha6la.
-hald4s7
-ha4le.
-ha4lev
-hal6lei
-hal6lø
-hal4s3k
-hal4so
-hal4s3t
-ha5lu
-hal4v5
-hal5v6ar
-hal5v6o
-ha5ma
-ha8me.
-ham6nest
-ha5mo
-ham4st
-hams4t7r
-ha5na
-han6d5r
-hand7skr
-hand5ø
-ha4ne.
-hani1
-hanis4
-han2n3
-han4ne
-han6nel
-han5nen
-han5n4es
-han5n4o5
-han3se
-han4sk
-ha4pe
-ha4re.
-ha5rei
-ha4rel
-ha3rem
-ha4res
-har5k
-ha5rov
-har7se
-har5tre
-har4tri
-ha4sj
-hasj5e
-ha2sl
-has6p7l
-has5v
-ha3tar
-ha4te.
-hat6le
-h4au
-hau5ke.
-hau6st
-hau4t5r
-hav4a
-ha4va.
-ha5van5
-ha4ve.
-ha4veg
-ha4vei
-have3s
-ha8v7ert
-ha1vi
-ha4vo
-hav4sl
-ha6vu6
-hav1ø
-4havå
-2h1b
-hba4ne.
-4hc
-2he.
-he2a
-he7ans
-heat4r
-heb5n
-he4de.
-heder6s5
-he2d9r
-hef9ta
-hef7tes
-he3ge
-he4ge.
-he2g3r
-he2i
-heia3
-hei5en
-3heim
-he3ins
-hei4sk
-heit4s
-he2k
-hek4sek
-hek6serin
-hel1a
-he4la.
-he4le.
-he4l5ei4
-hel6lesu
-hel3o
-hel2s2
-hel3sa
-hel4se7
-helses4
-hel3sk
-hel5sp
-hel5ste
-hel3sv
-hel4tes
-hel9ve
-he4mak
-hem5ne
-hem3s8k
-henfø5re
-hen5o6
-hen1s2
-hen5se
-hera9da
-he5ret
-he4ri.
-her5j
-herle9ge
-herli9ga
-4her5n
-he1ro
-he4ro.
-hero9a
-her7p
-her6rei
-her6resi
-her6ret
-her6ska.
-her8s7kare
-her6sv
-her5un4
-he2r3ø
-he4se.
-he2sp
-hes7pa
-hes5pel
-hes5pen
-hes9per
-heste5ri
-hes4tes
-he6stø
-het2
-he4te.
-he5t6i
-het4s3a4
-het4s5p
-het3t
-he6va.
-he6v7arm
-he4ve.
-hev9na.
-2hf
-2hh
-h5hu
-hi5ao
-hi4bak
-hie4n
-hi2et
-hi4f1
-hiff2
-hif9r
-hi6ge.
-hik7e
-himme6l5o
-hi6n7an
-hin4nes
-hins4
-hins9ke
-hi4pl
-hip3p
-hi1ro
-hi2s1
-hi9se.
-hi3sen
-hi5s4i
-4hisk
-hit7o
-hi4t5r
-hit5ti
-hi8va.
-hi4ve.
-hiv1s
-hjar4
-hje4
-hjem7e
-hjorte5
-hju6l7
-hju7l8e
-2hl
-h5lan
-2h1m
-hma8n
-2hn
-h2na
-hne6n
-hn1s
-h4o
-ho5ar.
-hob6
-ho6da
-ho4de.
-ho5den
-hode3r
-ho5der.
-ho5dy
-hof4f3
-hof4f3a4
-hof4f3e4
-hof5f6er
-hof4fi
-hogs6
-hog6str
-hog7stra
-hoi5
-ho2la
-ho5lag
-ho5lan
-ho4le.
-ho4lin
-hol5l
-ho4lom
-hols4
-ho4lu
-hol7ut
-ho4me.
-ho4mo.
-ho4mod
-ho4mos
-ho5n6o
-ho4o
-ho8pa.
-ho4pe.
-ho8pi.
-ho5ra
-ho6ra.
-hor2e1
-ho1ro
-2hort
-ho4s
-hos5a
-ho5sen
-ho5ser
-ho5si5
-hou2
-ho1v
-hove5re
-ho4vé
-2how
-h1p
-2hr
-h1ra
-h1re
-hri5ne
-hri2s3
-6h1s
-h5s4e
-4ht
-h5ter
-htere4
-h1tr
-ht5t
-hu4da
-hu4d3
-hud5s6
-hudså9re
-hu4er
-hu6et.
-hu4ga
-hu4ge.
-hu8ja.
-hu6ka.
-huk8ra
-hu4la
-hu4le.
-hu4leg
-hu5les
-hu4lev
-hul5v
-hu5ma
-hun6des
-hun2n3
-hu1ru4
-hus1a
-hu8sa.
-hu5s6a6r
-hu6s7arr
-husa7r8e
-hu4se.
-hu4s3ed
-hu2s1i
-hu2s5j
-hu2s1k
-hus7m
-hus5s4
-hus1t
-hu8str
-hust9ran
-hus4tre
-hu6sty
-hu6s5u6
-hu2sø
-hu4va
-hu4ve.
-hu4ves
-hv4
-hva5le
-hvas5
-hve2r
-hver3a
-hvi5l6i
-h4v4ir
-hvits4
-hvo2
-hvor5
-hvor5i6
-h6y
-hya3
-hy2bl
-hyd4
-hy2e
-hye5ne.
-hye9nes
-hyg5gel
-hy6la.
-hyldes7
-hy4le.
-hyr4des
-hys3
-hy8sa
-hy4se.
-hy2s1j
-hys5t
-hæ5g
-hærfø9
-hær3s6
-hø4e
-høf5
-hø2g
-høg3ri
-høg7rø
-høk6
-hø6le.
-hø4na
-hø4ne.
-hø5rar
-hø5ren
-hø5rer
-hø4res
-hør6sp
-hø2s
-høst7a
-høst5ø
-hø1va
-hø1ve
-hø1vi
-høy5a6
-høy5k
-høy7n
-høy7rar
-høys4
-høyse6te.
-h6å
-hå7a
-hå8le
-hå6na.
-hån8dr
-hånd5skr
-hå5nel
-hå6pa.
-hå4pe.
-hå4p5l
-hå1re
-hå1ri
-hår3s
-hår7u
-hå8va.
-hå4ve.
-ia9al
-i1abl
-ia1bo
-i2a3de
-i1adj
-ia5d8r
-ia1g2
-ia2ge
-ia1in
-ia1kr
-i1aks
-iak8se.
-ia5ku
-i1al.
-ial1a
-ial5ein
-iale4t
-ial5eti
-ia4l5ett
-i2alf
-ial3g
-ia4lin
-i4alk
-ial3op
-ia6lov
-i5als.
-ials4t
-i3alt.
-ial1u
-ia2lø
-i1an.
-i2ana
-ia4nal
-ian5ald
-ia5nar
-i7andr
-i5a4ne.
-ia8nes
-ia7net
-i5ank
-i1anm
-ia2no1
-i1ans
-ian3sa
-ian3sl
-i1ant
-ia7nø
-ia2pa
-i3app
-i1ar.
-iar4do
-iard5s4
-iar4du
-i2are
-i5area
-ia5r6e8l
-i5arn.
-i9arns
-i7arska
-i6asi
-i1asm
-ia4sp
-ias3s6
-i3assi
-i1ast
-i7ast.
-ia1t
-ia5te
-iat6r
-iaty6ra
-i1att
-i7auk
-i1av
-i1b2
-iba4ne.
-ib5bo
-ib3bu
-i3bere
-ibe4ro
-ibi5er.
-ib7lar
-i2b3le
-ib4leg
-ib4le5s
-i5bo
-ibo4e
-ibo7n
-ib4r
-ib3st
-ib8t
-ibya7
-iby9ar.
-8icanarar
-ice5ne
-i1ci
-ick1
-ick7ete
-i1co
-i5cy
-2ida
-i5dal
-i3das
-id1av
-id3del
-iddel5u
-id6dep
-2ide.
-3ideal
-i2deb
-i6def
-id5e4ge
-i7deki
-i9del.
-id3elv
-2iden
-i5dend
-iden5sv
-5identif
-5identit
-ideo3v
-i6derap
-i9de5re.
-i7deren
-i9deres
-iderla8ga
-iderle7g
-i7dern
-i5ders
-i6desm
-id6gem
-id4ges
-idi4en
-1i2dio
-i8dj
-id7jer
-id9na
-1i4dol
-id9ran
-id5reg
-4i3drev
-2idri
-id2s1
-id5sam
-idse4
-id6sel
-id5sim
-ids5l
-idsla6ga
-ids3t
-id4s5tu
-id2t1
-i2d1un
-i2dy
-3idyl
-i3dyr
-i3dø
-i6d7øy
-id7å
-2ie
-ie1a2
-i2ed
-i1eff
-ie4ge
-iego4
-ie1i
-iei6d
-i1eie
-i3eig
-i5eini
-iek8l
-i1eks
-ie5l6a
-i2ele
-i5elem
-ie4lev
-i7e6lim
-i1els
-i9elt
-ielø8pa
-i8e9ma
-iem7b8
-ie3me
-i1en
-ie7na
-i2end
-ien6dela
-ie8né
-i2e5ni
-ien7n
-ie5no
-i5ens
-ien4sk
-ien4s5v
-ien4t3r
-ie5nu
-i6eny
-ie4ran
-i4erd
-ie6re.
-ie5reg
-ie4r5eng
-i6eret
-i2eri
-ie4ril
-ie4ris
-ie4riv
-i2erl
-i6ero
-ie7ro.
-ier4ra
-ier4sp
-iers3v
-ier5t
-ie3run
-ier5v
-i2e1s
-i6es.
-ies4c
-ie3se
-ies5s
-ies4ti
-i8es6v
-i1et
-i2eta
-i5e4tabl
-i3etat
-ie9te
-ie5té
-iet4re
-ieu2
-ie7ved
-2if
-ife4s1
-if2fa
-ifi6e
-ifjø8
-if3le
-if4les
-iform4
-if1re
-i8ft
-if4tal
-if4tere
-ifte5s
-ift2s
-i3fø
-2ig
-i2gae
-ig3ann
-i7gark
-ig4art
-iga3ru
-iga7te
-ig3att
-i2gav
-ig3d
-i6geb
-i6gedi
-i6gedomm
-igedoms5
-i2gem
-i3gen
-ige6no
-i5gers
-i4gerø
-i4gesp
-ig3e4ta
-ig5ett
-ig4ged
-igges4
-ig4gra
-igg7s2
-i6gh
-i2g1ia
-i5gib
-i4gim
-igion4
-igje9va
-ig1l
-igl6d
-igli6se.
-ig5loa
-ig5neu
-ig5no
-igof6
-igo5fr
-ig1om
-igo4no
-ig2ra
-ig2re
-i2g1rø
-ig3råd
-igrå5t
-igs4al
-ig5sel
-igs2j
-ig5s4ka
-ig3s4kr
-igs4mu
-ig3s4pa
-igst4
-igs4ta
-ig4ste
-ig5stek
-ig7stel
-ig5stem
-igs4tra
-ig5s4va
-ig1un
-ig9ut
-i3h
-ihen3
-iho7le.
-i4huk
-ihu9la
-ihu5le.
-i1i
-i5in
-i7is.
-i4is8e
-i6ita
-i1j
-2ik
-i1k2a
-i2kab
-i5kabel
-i2kaf
-i2kak
-ikan9d
-i2kao
-i4kapo
-i5kar.
-i5kara
-ika5re
-i4karei
-i6kasa
-ika3sp
-i2ke.
-i2ked
-ik8ei
-i9keleg
-i5keli
-ike5lu
-i5ken.
-i4kena
-i5kene
-i9kens
-i3ker.
-i4kera
-i5kere.
-ike5ri
-ike4r5o
-i2ke1s2
-ike3si
-i6kesk
-i5keso
-ike5su
-i5ket.
-i5kets
-i1ki
-iki9ne
-ik5inn
-iki5st
-i1kj
-ik4kaf
-ik6kana
-ik4kap
-ikk5arv
-ik4kas
-ik4kat
-ikk5att
-ik6k7ent
-ik4keru
-ik8kesk
-ik4kest
-ik3kjø
-ik4kjøp
-ik4kl
-ikk5lag
-ik2ko
-ikk5ord
-ik4kr
-ikk3re
-ikk5sv
-4ik2ku2
-ikk5und
-ik2kv
-ik6ky
-ik1l
-i5klæ
-i1ko
-i2koa
-i9koar
-i2kob
-i4kod
-iko5de
-i2ko3f
-i4kog
-i4koh
-i2kok
-iko5na.
-i2koo
-i5k6ord
-i4kore
-i2kov
-ik1r
-ik4rak
-ik5rem
-ik5robe
-ik3ros
-ik2ry
-ik2sa
-ik4sek
-iksmå8la
-ik7sot
-ik5spel
-iks5ti
-iks5to
-ik8stu
-ik4tav
-ik4teg
-ik2t1r
-iktsla8ga
-i1ku
-iku6le.
-i6k7u6t
-ik1v
-ik4vin
-i1ky
-i3kø
-i3kå
-ikå8pa
-i1la
-il5adr
-il7af
-i2l3ak
-il3al
-i4lana
-il6and
-i4lark
-il3art
-il5ass
-ilas5t6
-ila5t
-il5av
-il4dak
-il4deko
-il4dete
-il7dj
-ild3re
-ildsfa9re
-ild3s4t
-ilea9r
-ile8are
-i3le7e
-i2lef
-ile4ge.
-i4l3egn
-i2l1ei
-i6leig
-i2lek
-i2lel
-i4leno
-i4lero
-ile1s
-i4lese
-i4le5sk
-i4lest
-ile6tri
-ilet5te
-ile4tu
-i1lé
-ilfø5re
-il5ge
-il1gl
-i4lid
-ili5ers
-ili9ga
-i5lik
-i2l1im
-i4l3ind
-i7line
-i4lins
-i4l3i4r
-ili5s6tik
-il3ja.
-il1je
-il5jese
-il1jo
-il1ju
-ilke3
-il5ker
-il4kes
-ilk4o6s
-il5ku
-il4lab
-il6lam
-illan8da
-il6lap
-il9lau
-il4lee
-illei9e
-il6l7ender
-il6lesk
-il4lev
-illi9ga
-il4lo5m
-ill3s2
-ills5kå
-illæ4
-illæ9re.
-il4m5est
-ilm5e4v
-il4mi
-ilm5s
-i1loe
-i9lolo
-i4lom
-il5omv
-i5lon
-il3opp
-i4l1o4r
-i5loso
-ilot3u
-i4love
-ilo1w
-ilret4
-ilset8je
-il3sl
-ilsla7
-ilsle7ge
-il6s7li
-ils4mu
-ils2p
-ils2t
-il5str
-il7su
-il3s2v
-ilsva9ra
-ilsva5re
-ilta9la
-ilt5rett
-il6t7å
-ilu4h
-i5luk
-il7ul8
-il3un
-i5lur
-i9lus
-il1ut
-il5v6
-ilve8d
-ilve4r
-i1ly
-il1å8
-ilår6
-8im.
-4ima
-i2mad
-i4maen
-i2mag
-i6m5akk
-i4mako
-imal8n
-i2mam
-i9man
-i2map
-i5mar.
-ima5s
-i4matr
-i8mb2
-i4mee
-i2me1g
-i2mek
-i6melu
-im5enh
-im8et
-i9met.
-i4meta
-i4meti
-i6mey
-i8mé
-imi9la
-imini6
-i7mj
-im4lev
-im8l9u
-im5m
-i6mog
-imo9l
-im5ord
-imor8da
-im7o6v
-imp2
-5imperi
-imp4l
-1impo
-imp9s
-impse8
-1impu
-im4ref
-im4rek
-im4res
-im9se
-ims4k5l
-ims3kr
-im5s4me
-im1s4t
-im6sti
-imta8la
-4imu
-i3mø2
-2in.
-6ina
-i4nag
-in5agg
-i5nakk
-ina4let
-i4na2m
-in3ame
-in2an
-i9nane
-in5ann
-i2nap
-in5app
-i5nar.
-i5nars
-i4nask
-i4nasp
-i4n5ass
-ina4t5ak
-ina7t8r
-i6nau
-in7auk
-in5avl
-in5avr
-ince2
-in7der
-6indig
-in4dog
-ind9ra
-in3dru
-indr5ø
-ind5sk
-ind3sp
-ind5s4t
-5industr
-ind7å
-4ine
-ine8are
-i2ned
-inedy6
-in5egg
-in5eid
-in3eie
-i6nele
-ine4li
-in7eng
-ine8pa
-ine8pe.
-i7nere.
-i5neren
-i9neres
-ine4rik
-i7nern
-i5nert
-i5nes.
-i4nesk
-ines8ka
-ines8ke.
-ines4st
-ine5s4ti
-i4nesø
-i2nev
-8iné
-3infek
-in4fos
-in4fot
-infu9
-4infy
-in4g5ald
-in4gav
-in5gebj
-in6gem
-5ingeni
-in5geri
-in4geru
-in3gev
-ing5jen
-in4goa
-in4gos
-in2gr
-ing5rep
-ing7ris
-ing2s
-ings5om
-ingst8
-ings5v
-6ingu
-in4g5un
-in2g5ø
-i7nia
-ini9ar.
-i2nib
-i5nie
-i4nif
-i2nig
-i4nil
-ini7m
-i4ninn
-i2nip
-i4nisa
-ini3se
-i4nises
-5initia
-i4nito
-5injek
-2ink
-in5kel
-in4kero
-in4k3la
-in4kok
-in5l
-inla8ga
-2inn.
-in4nal
-in4nem
-in4nerø
-in4nesi
-innes6t
-4innet
-in6n7ette
-innfa9s
-1inng
-5innhal
-3innho
-2inni4
-in4ni.
-in4n5om
-in5n6ova
-inn1s4
-6inns.
-3innsa
-inn5se
-inn9sen
-inn9ste
-inn7sve
-1innt
-in4n5u4
-4innæ
-in2nø4
-2ino
-ino5a
-i5noar
-i4nod
-inok6
-in7oks
-in7org
-in1s
-4ins.
-8insa
-in9sa.
-in7sal
-in5sar
-in5se.
-in4sek
-in3sen
-inseri8e9ne
-in3si
-insis5
-6insj
-in4sja
-in3sje
-4insk
-in9s8kas
-in5skat
-inske4t
-ins4ki
-in3skj
-ins5kjøt
-ins6kor
-ins4k3v
-ins6kø
-insle7g
-ins8lega
-in3slo
-in3s2lø
-in5s4ma
-in3sop
-1insp
-in4spa
-in5s4pl
-ins4po
-5instal
-in8s5te.
-ins5ten.
-ins9tens
-3in3s4ti
-in4stin
-4in3s6to
-in5stra
-inst5rel
-5instru
-in6stå
-in7sul
-in2sv
-6in3sy
-8int.
-2in3ta
-inta8la
-4inte.
-5in7teg
-in8t7ege
-in5ter
-int5ess
-in5te4t5
-4in5ti
-inti5me
-int2r
-intran4
-int4rer
-in5tres
-6inu
-inu6i
-i8n9ul8
-in7ut.
-in9u8te
-1inv
-6invev
-iny4i
-iny4t
-6inø
-in7øk
-i7nøt
-in3øv
-4io
-io1a4
-i2ob
-io8d8
-io4dere
-i1off
-io5gn
-io1i
-i1oks
-iol4
-io3le
-iol7jen
-io3mu
-io4nans
-io4narr
-io6n5erst
-ion3g4
-io4nin
-io4nu
-io1pl
-i1opp
-io5ra.
-ior8da
-io1re
-io4rie
-io4r5in
-iorla8ga
-iosk3v
-io1st
-iota6le.
-io3t4e
-io4tra
-i5pap
-ipa4ti.
-i4pee
-ipela9
-i7pe6p
-i1pi
-ipi1e
-ipi9ne
-i4p5ings
-i1pl
-i2ple
-ip4peli
-ippel7s6
-ipp6lan
-ipplæ8re.
-ip2pr
-ipp4s3t
-ippsy8na
-ipp4sø
-ip7pun
-i1pr
-i6pra
-ip5ru
-ipru8te.
-ips1a
-ipse4l
-ipsfø5
-ip2si
-ip2s1k
-ipsle6ge.
-ips1t
-ip6tar
-i5py7
-i3pø
-2ir
-i1ra
-i9r6and
-ir5ark
-i9rast
-ira6tr
-ir5de
-ird5s
-i1re
-ir3eie
-ir6ek
-i3repo
-i3rer
-ire6r5a
-ire7st
-i3ret
-i8reto
-ir7g
-i1ri
-iri4a
-iri8ka.
-ir3ind
-ir3inn
-ir5inst
-iri9t
-ir5ka.
-ir4kat
-ir5ker.
-irke3s6
-ir4kest
-ir4kle
-ir5kv
-irk5ø
-ir4mag
-ir4mal
-ir4mast
-ir9mé
-i5roa
-i1roe
-i4roi
-i1rol
-ir5opp
-iro1s
-ir3re
-ir7sko
-irs2p
-ir3s4t
-irt6
-ir3ta
-irti6g5r
-i1ru
-ir5u4k
-iru8m
-iru7sa.
-i1rø
-i1rå
-ir7å6l
-i1sa
-i4saks
-i4sanb
-i4s3ang
-is3ann
-i4s3ans
-is3ant
-i7sas
-is5aud
-3isbry
-is6cen
-isch5
-is3co
-i5scr
-i2sed
-i4seel
-i4seen
-ise5ern
-i2s2e3g4
-i2sei
-is3eie
-is5eig
-ise5is
-i2sek
-i3sekt
-i4sekte
-i6s7eld
-is4e5li
-i2sem
-ise5ne
-i4seno
-isensi6
-i5ser.
-i5sers
-i2ses
-is5ess
-i4sete
-iset8je
-i2seu
-8isé
-isha7ne
-3ishav
-is4h5in
-ishø9ve
-isi6ene
-is5ild
-i4s3ind
-isis5t
-is7jun
-is9ka.
-is3kal
-is3kar
-isk9art.
-isk5arte
-i8ske
-is5ke.
-is8kee
-is4kel
-isk5els
-iske5s4
-is3kje
-i3skjo
-iskla8ga
-is6k5le
-isk3lo
-isko5g
-is7kogr
-is3kop
-is3kot
-is1kr
-is6k5rin
-is1ku
-is4kul
-i5skula
-is1kv
-is4kvi
-is1l
-i6slu
-isl7ut
-isl9øy.
-i5smak
-is4med
-ismo5e
-i6smus
-is5ne
-is5nu
-1isol
-6isold
-5isomo
-is5omr
-iso3pa
-iso5pe
-iso7pr
-3isot
-is1ov
-is1p
-is4pan
-is5pane.
-is6pis
-is7pru
-is4ses
-is5si
-issis5
-is6s7kj
-is4sko
-is7skr
-is5sky
-is4skå
-is5sok
-is7sto
-is6sve
-is5svo
-is9s4ær
-is4søk
-i5stab
-ista9le
-is5tane
-is5tap
-i4s5tar
-ist5avb
-ist7avi
-i2ste
-is5te.
-is4tek
-ist5ekt
-istel5l
-iste6ma.
-ist6en
-is5ten.
-is5tene
-is5ter.
-is5tern
-is6terø
-is6té
-is4tik
-is5tilb
-is5tis
-is3tok
-is3tol
-i2str
-i8s8tre.
-i4st5ren
-i5strer
-i6strer.
-i4stres
-i6stret
-is3try
-is3tus
-6isu
-is5uf
-is5ul
-is1un
-is1v
-is4vak
-is7w
-isy8na
-isy5r
-i7s8ys
-is5yt
-i2s1øk
-i4søy
-is7åk
-is3år
-i1ta
-ita4l3a
-ita6l5ers
-ita4lo
-ita4ly
-i6tang
-itan7s6v
-itau4
-i4tav
-i4tec
-i2teg
-ite8ke.
-i7teky
-i6t7elg
-i4teni
-i2teo
-ite3re
-i4tero
-iter6s5
-i4te5ru
-i2te1s
-ite6se.
-itet6s5
-i1té
-it2i
-iti6er.
-i4ties
-i2tif
-i4tikam
-i4ti3kv
-iti5me
-i2tio
-i2tip
-iti3r
-i4tisa
-i4tisen
-i4tisi
-i4tisj
-i4tisko
-i4ti3sp
-i4tist
-iti5str
-i2tiu
-itiv4
-itivs5
-it7jaran
-it7jer
-it7ji
-itma6le.
-itnes4s
-i1to
-ito9a
-i4tom
-it5ord
-ito4s
-itostra6
-ito8v
-i1tr
-i4tra.
-i6trae
-it3rel
-it3ren
-it5rim
-itri8ma
-it3rin
-i5tris
-it7ro6s
-it1sa
-it4s3ei
-it3ser
-it6ses
-it5sku
-itsla8ga
-it1sn
-it6sti
-it3sun
-it4tag
-it6tak
-it4tal
-itta9la
-it6tann
-it6tap
-it4t5at
-it5ted
-itte4l5o
-it4tenk
-itte5s4
-itt5ett
-it4tid
-it4til
-it4tj
-itt1o
-it6tof
-it7ton
-it4tr
-itt5skr
-itt4sø
-it4ty
-it7tys
-i1tu
-itu5e
-itær1
-i1tø
-i5tå9
-i1u
-iu6a
-iu2b
-i5u6l
-i5um.
-ium4f5ar
-iu2m1i
-ium5m
-iu4mo
-i6umse
-i4um5s4t
-i4umsu
-iu2n
-iu8p
-i2ur
-iu5se
-4i1va
-i4vad
-i6vaj
-i4v3aks
-i5val
-iva6la.
-i4vana
-i4v5ank
-i4varb
-ivar5s6
-i4v5ass
-ivat3t
-i1ve
-i2veg
-ive6ge
-iv5eg6n
-i4vei
-iv7eig
-i2vek
-ive4ra
-ive5ras
-iver5d
-i6veret
-i4vesk
-i4vesti
-i6vesv
-i6vetø
-i2vev
-i1vé
-i1vi
-iv5ins
-iv5is.
-iv5isb
-ivle6ge.
-iv3n
-i1vo
-iv7om
-iv3r
-iv4sal
-iv2si
-iv2sk
-iv2sl
-iv2sn
-iv4so
-ivs5v
-i2v3un
-i5v6y
-ivyr8ke.
-i9væ
-iv7åpn
-i1wa
-iwi5
-i5wie6
-i5y
-iyr8ke.
-i5za.
-i7zas
-i4ze
-i1zo
-i1ø
-i1ø4k
-i1ør.
-iør5i
-iør5s
-i4øs
-iø3se
-i1øy
-i1å4
-iårs7l
-iåt4te.
-ja1ak
-ja9ar
-ja4da
-1jae
-ja7en
-5jag.
-ja4ga.
-ja7gar
-ja4ge.
-jag6r
-ja4ha
-ja4hv
-ja4j
-jak4kel
-jak7kele
-jak4ko
-ja8k7ok
-jakk5s4
-ja1k8r
-ja8kre
-jaktel
-jakts8
-ja7ku
-ja3lo
-ja1lu
-jam7b
-6jambi
-jamhø8ve.
-5jamm
-jams2
-jan4gr
-j5anl
-ja6ra.
-ja6r5ap
-ja9rek
-jarn3s4
-jar5ta
-jar5te.
-jar5tet.
-jar7ti
-6jarø
-ja6rå
-ja7se
-ja8ski
-ja5sti
-ja5ta
-jau4ere
-ja9vi
-1jaz
-j1b
-2jd
-j2e
-2je1a2
-je5ak
-2jeb
-jeb9b
-je4deb
-6je4dek
-4jedr
-je4ep1
-6jeev
-2jef
-je4f3et
-je2fj
-jef5lag
-je4f3re
-jef4sa
-jef6s5i
-jef3t4r
-je5ge
-jeg5ge
-6jegl
-jeg6les
-4jego
-4jegr
-4jegy
-2jeh
-je1i
-je5i8s
-4jej
-2jeka
-jek6keru
-4jekl
-je4kli
-2jeko
-jekt3a
-jek4tan
-jek6tes
-jekt5ev
-jek4t5in
-jek4t3r
-jekts4t
-4jekø
-2jel
-je6legr
-jelei7er
-je7lele
-je4les
-jel7ge
-jel6lag
-jell5ang
-jel5len
-jel4lo
-jelt3
-jel4tr
-jel9ut
-jel7va.
-2jem
-je4mia
-je4mit
-jemp6
-jem5pl
-jem5se
-jem4sti
-2je7na
-jen1d
-jendis5
-4jendr
-je3ne.
-je7ne8s
-4jenet
-jen5ged
-jen7g8la
-jeng5s4
-2jeni
-jen3k
-4jenl
-4jeno
-4jenu
-je2n1y4
-4jenæ
-2je5o4
-2jep
-je3raf
-je4r5ant
-jer4dep
-jerd6s
-je3r6e
-4jered
-6jereg
-6jerei
-6jerenn
-je5rik
-je6rim
-je6rinæ
-jer4kes
-jer6k5l
-jer4kv
-jerle7
-jer6mu
-jer6n5as
-jern5sl
-je6ron
-jer4sp
-jert5s
-4je1ru
-6jerå
-5jesf
-5jesh
-jes4kil
-2je3sp
-jes4tea
-je6stim
-je3str
-5jesut
-je5sve
-je4t3ag
-jeta6ka
-je9tar.
-je7tara
-je9tare
-je4t3ru
-jets2
-jet4t5an
-jet6term
-jett3o
-jett5s6
-je4t3v
-jety8e
-2jeu6
-4jev6a
-je7vark
-je6vas
-4jeve
-jevi4s
-jev7na.
-jev7ne
-6jeø
-j1f
-4jg
-j1h
-4ji.
-jib5b
-ji7e6
-6jik
-2j3inf
-ji7ro
-ji6sj
-4jiø
-2j1k
-j4kap
-6j1l
-6j1m
-6j1n
-6jn.
-j5ni
-j2o
-1job
-5joc
-jo4da.
-jo6dat
-jo6dis
-jo4fl
-jojo5
-jok9ker
-jokk9o8
-jol5t6
-j3omr
-jon2
-jo5ne
-jon7n
-jons1
-jons5a
-jonse4
-jons3p
-jons5t
-jon6sti
-jon4str
-jonsu4
-4jop
-jo5ra
-jor6dek
-jor6d7erv
-jor6d7is.
-jor4d3o
-jord3r
-jord5s
-jords4l
-jor6du
-jo1re
-jo4rie
-jort6a
-jor5tet
-jo3r4u
-2jos
-jo3se
-jo4ses
-jo5stei
-1jou
-jour5
-j1p
-4j1r
-2j3s2
-j1t
-ju8are
-1jub
-jubi3
-ju9bo
-juda8s7
-ju3de
-ju2do
-ju7doe
-jue7ni
-ju4e5re
-jue9s
-jug9le
-5jugo
-4ju2k
-ju3ka
-ju3ke.
-ju3ken
-juk9sar
-ju2l
-ju3la.
-ju5lar
-ju5las
-ju8l9ei
-ju4li.
-ju6lid
-ju4lik
-jul7inn
-jull6
-1jung
-jun7ge
-j6u6ni
-8jup
-jup7s
-ju6p5å6
-ju4ra
-ju7ras
-3juris
-ju9ro
-ju3ru
-5jury
-1jus
-ju5so5
-ju1ta
-jut5o
-ju6va.
-ju6vak
-ju1å
-j5v
-jy1
-jy8de.
-jy2p3
-jæ5le.
-jæ3ra.
-jæ9ran
-jæ9res.
-jæ7te.
-j2ø
-1jø.
-1jøa.
-jø5b4
-1jøe
-2jøef
-4jøeg
-6jøei
-2jøek
-4jøend
-4jøeng
-4jøeta
-jø1f
-jø3gr
-jø9kj
-4jøl
-jø4les
-jøl6ver
-jø5me
-jøn5ne
-jø5pa
-jør4kel
-jør4sp
-jørs5v
-jør4tel
-jø3ru
-jør7ut
-jø1rø
-jø4ses
-jøst2
-jø5ta
-jø6t7av
-jø3te.
-jøte4t
-jøt5eta
-jø1tr
-jøtte4
-4jø1v
-jø4vel
-2jå
-jå5ar.
-jå9ge.
-jå6la.
-jå4le.
-jå7les
-jå5let
-1ka.
-2kaa
-5kaa.
-5ka4an4
-k3aas
-ka3at
-6kabes
-ka7bo
-4ka1br
-4kaby
-ka3da
-6kadale
-ka5del
-ka6del.
-ka4deri
-4kadg
-kadi7e
-2kadr
-5kadu
-4kady
-3kaen
-ka3fe
-kaf5fere
-2kafo
-ka9fr
-2kaft
-kaf5ta
-6kafø
-2kag
-k5a4gi
-kag2r
-2kah
-ka5isk
-ka5ism
-6kajo
-ka4ka.
-ka4ke.
-ka4ked
-ka4kel
-ka4kes
-ka4ki.
-ka4kis
-6k5aksj
-4kakt
-ka3ku
-ka3lam
-ka3lan
-ka6lant
-ka3las
-kald5s
-5kaldt
-kal2e
-3kalen
-ka5lev
-5kalis
-k6al8k5
-kal7k6e
-5kalky
-kal7la
-kal6lero
-kall4s
-ka1lo
-kal3p
-kal7s6v
-kal4ves
-1kam
-ka6ma.
-ka8me.
-4kameri
-4kammel
-kam4p3i
-kam4pr
-7kamu
-1kana
-ka8na.
-4kanda
-kan6da.
-5k6ande.
-1kane
-ka5ner
-kan4i
-ka5nin
-2k1anl
-4k1anm
-k3anno
-5kano
-ka4no.
-ka8nom
-4kansa
-6kansi
-3kansl
-1kant
-kan6t7end
-kan6t9r
-2kap.
-5kapad
-ka4pak
-3kapas
-ka5pe
-5kapell
-4kapen
-3kapit
-1kapp
-kap3re
-kap4s3t
-1kar.
-1kara
-4karab
-4karam
-karan5
-ka3rav
-1karb
-4karbei
-4karea
-ka6rek
-ka5rel
-1karf
-5karg
-ka4ri.
-ka6rid
-6k3arki
-6k5arkt
-1karm
-kar3n
-ka3rol
-kar3om
-kar5pes
-karp3s
-3karri
-7karsj
-kars4t
-1kart
-kar5ti
-5karu
-4karå
-1kas
-7kas.
-ka5se4i
-ka3sek
-kas5ev
-kas2ju
-6kasjø
-ka4sk
-kas3ka
-kasko5
-6kasp
-ka4spi
-kass6
-kas6sad
-kas4sak
-4k3assi
-kas4so
-ka4st
-8kas5to
-ka6su8s7
-kas2t3r
-1ka7t6a
-ka8tak8
-ka3ted
-3kateg
-ka3tet
-ka1to
-ka4t5op
-4ka1t4r
-kat7s
-kat5ta
-kat6tak
-kat4tel
-kat6term
-katte5s
-kat4til
-kat4tri
-ka4t5y
-k7au4r
-2kav
-ka7ves
-k9avis
-kav8l9u
-9kay
-6k1b4
-2kc
-k5ce
-kcen4
-2k1d
-k5d6v
-1ke
-2ke1a8
-ke9al
-2keb
-4kebr
-4kebuk
-4kec
-ked4
-ke5da
-4kedag
-4kedal
-5kedan.
-9kedant
-ke5de
-6kedei
-4kedem
-4kedes
-7kedes.
-2kedi
-2ke5dr
-ked8sk
-kedu6
-4kedy
-2kedø
-2keeg
-2keek
-2keel
-ke4ep
-ke7ern
-2keev
-4kef
-k3eff
-k5eft
-2ke1g
-k3egg
-keg8ga
-5kegladh
-ke5h
-3kehet
-4kehj
-2kei
-k3ei2d
-k1eig
-ke5il
-ke1im
-k6e1in
-keis2
-2kej
-2kek
-kek2l
-ke3kn
-k1eks
-k5ek4t
-k6el.
-2kela
-ke3l4ak
-5kelal
-ke6lans
-ke6lat
-kel5eier
-kel5eig
-kel7eik
-kelei8ke.
-6keleis
-kel3e4l
-4k5elem
-4keleng
-4ke5lep
-4keles
-7k6elet
-4kelev
-keli8e8
-keli9en
-3kelig
-4kelign
-4kelinj
-kel5int
-4kelis
-ke4lise
-5kelit
-4keliv
-kel5l
-4kelof
-6kelov.
-4kelove
-kels4
-kels7kar
-kel5sl
-kel5sp
-kel5st
-kel3sv
-kelsva9
-kel2t
-kelt3e
-6kelua
-4kelue
-kel9uka
-kel5uke
-ke4l3ur
-6keluv
-kel5v
-2kely
-2kelæ
-2kelø
-kelø8pa.
-6ke5l4å
-kelå7re
-2kem
-ke4mit
-5kena.
-6kenam
-ken6ap
-ke4nas
-5kenatts
-ken5de
-6k5en6den
-6k5en4der
-4kend5r
-ke3ne
-4keneb
-4kenek
-4kenel
-4kenem
-6kenett
-4kenev
-3kenf
-ke4ni
-5k6enh
-4ke5niv
-ken3k
-ken7n
-kenne4l3
-ke4nom
-ken1s2
-4k5ense
-kens6t
-ken7te
-ken5t6r
-4k3entu
-6ke3ny
-6kenø
-2keo
-ke7of
-ke3on
-4kep
-5kepi.
-9kepia
-7kepie
-6kepl
-kera7l
-4keram
-ke4ran
-ker5ant
-6kerau
-4kered
-4kereg
-kerei4d
-4kereir
-6kereis
-4kerek
-4ke5rem
-kere6n
-6kerene
-ke6r5eng
-4kerenn
-4kerep
-ke4r5ert
-ke3res
-4keress
-4kerest
-4keresu
-4keret
-5keret.
-5kereta
-7kerets
-3keri
-ke4rif
-6kerik.
-4kerike
-6kerikt
-ke4rim
-ke4rine
-6keringi
-6keringj
-ke4rinæ
-ke4ris
-8kerist.
-8kerista
-6keriste
-3kerm
-7kerop
-5keror
-4ke3ros
-kero6se.
-ke3rot
-k4ert
-ker5to
-ker3t4v
-ker3un
-4kerus
-keru6se.
-kerø6re.
-8ker8øya
-6ker6øye
-2kerå
-5kes.
-4kesam
-9kesam.
-7kesdale
-5kese.
-k5esel
-ke5sil
-4kesit
-2kesj
-k9es8ka.
-4k5eske
-kes8ke.
-4keski
-4keskj
-6keskå
-kesle6ge.
-kes5ped
-5kespot
-5ke4spu
-5kest.
-4ke3sta
-5keste.
-4ke5sted
-4ke5stei
-kes6tem
-4ke5s4ten
-ke3sto
-4kestri
-4ke5stru
-4kestu
-4kestø
-ke4s5un
-kes1v
-2kesy
-kes1å
-2keta
-keta6ka
-keta6le.
-5ketals
-k6etar
-ke3te
-5kete.
-4ketek
-7keth
-2keti
-2ketj
-2keto
-2ket2r
-kets2
-ket6t7enh
-ket8tes
-2ketu
-2kety
-kety6e
-4ketæ
-ketøy6s5
-2ketå
-2keu2
-ke5ur
-2kev
-kev2a
-keva8ne.
-5kevas
-3kevel
-kevi6sa.
-k1evj
-kev6ja
-kev4je.
-k3evn
-kev6ne.
-ke3vr
-kevæ8ra
-ke2yt
-6keæ
-2keø
-2keå
-1ké4
-két5
-2k1f
-k5fi
-4k5g2
-k3ge
-k5gh
-kgu4
-4k1h
-kh5ak
-k4har
-khe4o
-khjul8s
-kh6m
-ki3a2r
-k3ideo
-4kidol
-ki3dr
-k4ie2
-kie5re
-ki6el
-ki3er.
-2kif
-ki5g4
-ki6ka.
-kikk8s9
-ki1k8l
-ki3k2r
-kik4s
-ki8la.
-3kilde
-6kildr
-ki4le.
-ki5li
-4kilj
-kil9ja
-kil6le5st
-ki7loa
-ki4log
-ki3los
-ki4lov
-2kilt
-ki7lå
-ki8ma.
-ki4me.
-5kimo5
-ki4mol
-2k1imp
-kin9and
-ki4nark
-ki5nas.
-6kind
-ki5ne
-ki6ne.
-2kinf
-1king
-king5and
-kin3ge
-kin5ing
-2kinn
-kinnsi8da
-kinnsi8de.
-kinn4sp
-ki2no
-kin5ov
-2kins
-kinsi6de.
-2kint
-kinti8me.
-ki6nu
-2kinv
-kio4
-4kiol
-7kios
-2kip
-ki5pe
-ki4p5l
-kip5pe
-kip2s3
-1kir
-ki5re
-ki5ri
-4kirs
-ki3se
-ki5sko
-ki3smu
-ki1s2p
-ki5stav
-ki5str
-ki6ten
-ki7ti
-5kito
-ki4ton
-4kiu
-k6iv
-ki4vek
-ki4v5enh
-ki6vi.
-kiv3s
-kj2
-3k8jan
-kjap5pe
-6k7jarn
-kje7fj
-kje7f6r
-4kjegg
-3kjeld
-kjel7leg
-5kjemas
-3kjemp
-6kjenk
-kje9ny
-kje1s
-kje6t5r
-kjet5t
-6kjor
-k8juk
-kju5le.
-kju5len
-kju9r
-3kjærl
-k5jødi
-1kjøp
-3kjøri
-kjø4tr
-8kk
-k1ka
-k2kab
-kk3aft
-k2k1ak
-k2k3al
-k2kam
-k4kanb
-kk5and
-k8kand.
-k6kanden
-k4k5ang
-k4kann
-k4kao
-k4karb
-k6karg
-k4k7art
-kkar6ta.
-k5kast
-k6kasu
-k6katt
-k2k1au
-kk1av
-k6kedo
-k4kedu
-k2kee
-k2keh
-kk1ei
-k5kel.
-kke6lei
-kk5e4lev
-kkel3t4
-kkelu4
-kke4luk
-kkel5un
-kke6nan
-k5ker.
-k4kerei
-k4kerel
-k6kerent
-k4kerig
-k4kerit
-kke5r6und
-k4kesa
-k5kesau
-k4kese
-k4kesi
-kke3s4l
-k4kesp
-k6kestad
-k4kete
-k5ketet
-k4ketø
-k4k9g2
-k1ki
-kk3ind
-kk3inf
-kk9inn
-kk3ins
-kk3int
-k2kir
-k1kja
-kkjek8
-kk5jent
-k4k5jern
-kkje7t
-kk5ju
-kk5k
-kkla4g
-kk3lan
-kk8lar
-kk7lau
-kk1lo
-kk1ly
-kk3læ
-k4kn
-kk5ne
-kk5ny
-kk6s5v
-k1kod
-k1koe
-k4k1of
-kko6lig
-kk5oml
-kk7oms
-kk9omt
-k6koo
-kk1op
-kko7s
-k4kosi
-k6kosk
-k4kost
-kk3ove
-kk5p
-k4kra
-kk5ram
-kk3rap
-kk3rea
-kk5rei
-kk3ren
-kk3res
-kkri6k
-kk3ro
-kkro8e
-kkro4s
-kk3ru
-kk4rus
-kk7rø
-kk7rå
-k8k7s
-kks6al
-kk4sar
-kk5sed
-kk3s4ei
-kk4sin
-kk1sk
-kks4kj
-kks4l
-kk3sla
-kk7sle
-kk5sli
-kk3spe
-kk1s2t
-kks5tak
-kks7tep
-kkst4r
-kk8s7va
-kk5s4å7
-kk7t8
-kk5uk
-k4kuni
-k2k1u6t
-kk1v
-k2kvo
-k1ky6
-kkyl4
-kk5yr
-kk7yt
-k2k1ø
-k8køl
-kkø6r
-kkøy6
-kk1å2
-kl4
-6kl.
-4kla.
-4k5lagt
-2klak
-kla9ke.
-kla4mel
-3k2las
-k7lati
-kla4tr
-kleby7t
-3k4ledd
-kle4deb
-kle4des
-2kleg
-klei9e
-k7leik
-k4leiv
-k2lem
-5k6lem.
-7k4leno
-k6lerik
-kles7j
-kle5sno
-kle4sp
-kle5sti
-kles7s8
-2klet
-8klia
-4klie.
-4klig
-1k2lim2
-3k4lini
-k5linj
-1klip
-4klit
-klon7a8l
-1klos
-2klov
-k3lukt
-4klun
-klun5t
-k5lyd
-6k7lyf
-3k4lyng
-klyse7te
-k2læ
-klæ5res
-klø7na
-k6lør
-6kløs
-klø9va
-klø5ve
-6k1lån
-klå5re
-2k3m
-kmann6
-kmål2
-2k1n2
-3k2nap
-kna5t4re
-kne4b3l
-k4nedi
-5k2nee
-kne8se.
-k4nest
-kn5f
-knas8t7a8
-3k4nip
-knippe6
-kni2t3
-7k6niv
-kno7g
-kno6kl
-5knop
-kno9ta
-kno5te
-3k2nu
-4k3num
-3k2ny
-kny4s
-k2nø
-knø9le
-kn3øy
-9koa.
-4ko1ak
-9koane
-ko7ar
-ko2b3
-ko3bo
-4ko3br
-ko5da
-4kodd
-ko4de.
-3kodek
-5koden
-2kodø
-ko3e
-3koef
-4koek
-4koel
-4koes
-4koev
-ko4g5eng
-kog9ger
-kog3l
-ko4gre
-kogst6
-ko4gu
-ko6gå
-2koi
-koi4e5ne
-ko7i6k
-ko1in
-2koj
-ko8ja.
-ko4ka.
-ko4kab
-ko4ke.
-ko6kel
-ko1ki
-kokk6o
-k3okku
-4kok4l
-4koko
-2koku
-kolba5
-kol8d7a
-2kole
-ko4leg
-ko4lei
-ko6lel
-ko4let
-ko4leu
-3kolle
-ko5lo.
-kol5p
-4koly
-2kolå
-1kom
-ko4ma.
-4komaf
-ko4me.
-6komg
-ko4mi.
-4komil
-4komisb
-ko4mise
-2komr
-4komse
-kom3sl
-kom5so
-kom4st
-4kom5t
-4komu
-4komå
-k6on
-ko4na.
-kon3d
-kon6dr
-kone5l6å
-4koniv
-kon3s2
-kon6s7v
-kon6ton
-ko4nu
-1ko1o
-4koom
-ko5pa
-ko5pers
-4kopet
-ko4pi.
-ko4pip
-ko4p9l
-4kopo
-kop5per
-2kopr
-ko1ra
-ko4ra.
-kor6da.
-kor4d3o
-kord5s4ø
-kor4du
-ko1r6e
-6koref
-4ko7rei9
-ko5rem
-ko7ret
-ko3ri
-ko6rik
-4korm
-ko5rol
-6korpa
-6korpe
-1kor3r
-kor4sal
-kor6s5inn
-kor4s5l
-kor6str
-kor4sv
-kor5tes
-kor6top
-kor4t5r
-kort5s4
-ko5ru
-ko6rume
-1kos
-2kosa
-ko6sa.
-ko4sed
-ko4sek
-5kosele
-ko5sen
-ko4ses
-ko9si
-kosi9d
-ko2sk
-ko1sl
-4kosmu
-2koso
-2ko1s2p
-ko6sta
-kost7as
-kos6t5ers
-kost5j
-ko8s8t7ø8
-4kosø
-kotes7
-ko5t4i
-4kotil
-4kotr
-ko6tre
-kot2s
-kots5tr
-kot4ti
-kott4s
-kotts5t
-4koty
-2kou4
-kout3
-kou7ta
-ko1va
-kover7e
-4kovr
-1kov4s3
-4koø
-4koå
-6k1p
-kr6
-k3rad
-1k4raf
-5krag
-3krakk
-krani6e7n
-6krank
-3krans
-4krap
-kra9se
-7k8ra4sj
-kras5s
-kra4to
-kra4u
-1krav
-4kred.
-3kredi
-4k1reg
-kregi3
-4krei
-krei9e
-krei5s
-6krek
-kre4kli
-2krel
-k5rela
-kre8m7o
-4k3renn
-4krent
-6kreo
-k5repr
-5kreps
-5kresj
-4k3ress
-kreta9
-6k7retn
-k4rets
-k3rett
-2krib
-4krif
-7k6rig
-krig6s5
-kri9ga
-4krik
-kri5ke
-kri4kj
-krik6ka
-1krim
-kri4me
-3k6rins
-krin6s7t
-kri2p
-1k2ris
-7krisene
-k2rit
-3krite
-6kriv
-k2ro
-kro5b4
-kro5de
-k3rofo
-k4rofor
-krok7k
-k6roni
-k5ronl
-kro4nom
-k4rop
-krop9n
-kropp4
-k4rost
-kro9t8e
-kroten9
-kro3v
-kru3i4
-krum3
-kru5sa
-krutt5i
-kru3tr
-2k5ryg
-kry7pa
-kry5pe
-kry4pi
-3krys
-krø5ke
-6k5rør
-krø3v
-4kråd
-krå8da
-kråe6
-5kråk
-krå5le
-krå9m
-krå7ne
-k1sa
-k3sa.
-k2s3ad
-ks3alt
-ksa5me
-k3sane
-k4sans
-k4s3ant
-k3sar.
-k7sara
-k6s3ark
-k7sas
-k1sc
-k2sed
-k2see
-kse6ge
-k2s1ei
-k5sekt
-k5sela
-kse5lev
-ksen5to
-k4serf
-ks3erk
-k5serol
-k4sesa
-k4ses6k
-k4se3sm
-k5seso
-kses4p
-k5sess
-kses6sel
-kses8serie
-kses4sp
-kses4st
-kse6te.
-ksfø4
-k5sia
-k2sif
-ksi5ko
-ks3ind
-k3sing
-ksi7ni
-ks3inn
-k4s3ins
-k7sio
-ksi3st
-k4siti
-6ksj
-ks9kab
-k6s3kal
-k6skio
-ks1kj
-ks5kl
-ksko7na
-ksko5ne
-ks1kr
-ksk8u
-ks9ku.
-ks7kua
-ks8kut
-ks1k6v
-ks1l
-ksla8ga.
-ks5lo
-k7s6lu
-k8s7lug
-k8s5løs
-kslø8va
-kslø8ve.
-k5s4mak
-ks4mel
-k8smid
-ksmå
-k5s4no
-k7s8nø
-k1so
-k6s7oa
-k6s5o6d
-k4sog
-k4somb
-k2s1or
-k2sot
-ks1ov
-k3spal
-ks3pek
-ks5pio
-ks3pir
-kspor6t5r
-6k6s5pors
-ks1pr
-k8sr
-k3spy
-k8s7s
-ks3sm
-k5stad
-k4stak
-ks3tal
-ks5tant
-k7s8vak
-ks6tav
-kste4da
-ks4teg
-k3stei
-k4stek
-kst3ev
-kstev6ne.
-ks4til
-k4stin
-ks1tj
-ks1tr
-kst6ran
-ks4t5rek
-k6stren
-k6strer
-ks4tri
-ks4tro
-ks9tum
-k5stus
-ks3tyv
-k2stå
-k1su
-k6sun
-k8suni
-ks1v
-k9s8vake
-ksva8ne.
-ks5veg
-k7s6vert
-k5s4vin
-k8svis
-ks5w
-ksy8na
-ksy8s7m
-ks5ær
-ksø4ke.
-k6s3øl
-ks1å
-k3så.
-k4såp
-ksår4
-ksåt4
-6k1t
-k5ta.
-kta7f6
-k4tag
-kta6ka
-k4t3aks
-k4takt
-kta6la.
-k4t3ana
-kta9na.
-kt3anl
-k4t3ann
-k4tanv
-kt3app
-k9tar.
-k4t3arr
-k4t3art
-k6tass
-k5tast
-k6t7atl
-kt5avh
-kt5avk
-k6t3avl
-k3ted
-k4teda
-k6tee
-k4tefø
-kt5e4ge
-k2te5i
-k6teka
-kte5le
-k6t5elsk
-kt5e4lit
-ktem8
-kt7emn
-k4t3enh
-k9ter.
-kterie5n
-kterie7ns
-kter5s6
-k7tes.
-k6tesa
-k6tese
-kt5eske
-ktes6ke.
-kt5esti
-k4t5e4ta
-k4tete
-kt5evn
-ktev6ne.
-k5tib
-k3til
-k4t3ins
-k5tir
-ktis5t
-kt7i6te
-kti6v7end
-k2tja
-kt7ju
-kto9a
-kt5off
-k6togram
-k4toli
-k2tom
-kt5omf
-k2t1op
-k9tor.
-k7tora
-kt5ord.
-k5tore
-ktori9e8
-ktor7s
-kt1ov
-kt3ral
-k2t1re
-kt2ro
-ktro5s
-k2t1ru
-kt4s5amb
-kts5ar
-kt5sek
-kt7sem
-kt4s5er
-kt6sin
-kts5kra
-kt5sku
-kts4kv
-ktsle6ge.
-kt6sok
-kt4spa
-kt5spre
-kt4sta
-kts6ton
-kts5top
-kt4stå
-kt3t8
-ktu9er.
-k4tuk
-kt7und
-k2t1ut
-kt8yo
-kt7yrk
-ktyr8ke.
-ktør7
-ktør8e
-k6t5øs
-kt1øv
-k2t3år
-ku2a
-ku9an
-ku4be.
-ku3bj
-2kud
-ku4dal
-ku4er.
-kue4r5a
-ku4et
-6kuf
-ku4f3l
-6kug
-k5u4gr
-ku7is
-kuit6
-ku7k8l
-6kuldi
-kuld3r
-ku4led
-ku4leg
-ku6lei
-ku4lem
-ku5len
-ku4let
-ku4lev
-ku5li
-ku6li.
-3kull
-1kult
-ku4man
-kumen6tal
-ku6mi
-kum2s
-3kumu
-1kun
-kund5s6l
-2k1ung
-kun4ge.
-k6unn
-ku4o
-1kup
-ku4pe.
-kup4pl
-ku7ra
-ku4rek
-ku8r7o
-ku7r6op
-kuro8pa
-1kurs
-kur6sk
-kur4sp
-kur4s3t
-kurs3v
-kur3t
-ku5ru6
-kuru9ken
-kuru7ker
-1kurv
-kur4v3i
-1kus
-5kus.
-ku7sa.
-kus5a6k
-kus5ar
-5kuse
-ku4s5el
-ku4ska
-ku7s6pe
-kus3t
-6k1ut.
-ku1ta
-4ku5te.
-ku5to
-ku6t7r
-2kuts
-1kuu8
-kuøy6
-kv2
-kva8ke
-k4vali
-k6vard
-kvari6e5n
-5k6vart
-kva9se
-kve3d2
-kve7e
-kve8g7r
-k4veik
-k6veil
-7k8vein
-kvei9se
-1k4vel
-kve5la
-4k3verd
-5kvern
-kverns8
-2kves
-kves5t
-7k6via
-4kvid
-3k4vie
-kvi4ene
-kvi5er
-kvi7la
-3kvinn
-kvi5se
-7kvist
-2kviv
-1kvo
-k1vog
-6kvok
-k4vot
-k2vu
-4k3væ
-k1vå
-k7we
-k5wu
-ky5a
-ky6el
-4kyf
-kyf5le
-2kyg
-ky4leg
-2k3yns
-kyn6skjer
-ky2p1
-ky4p5r
-1kyr
-kyrie5ne
-kyr8ke.
-ky8sa
-4kyse
-ky6se.
-kyse8te.
-ky3skr
-kys6sk
-1ky4st
-kyst3a
-kys4tel
-2kyt
-ky6ta.
-kyte3s
-k1æt3
-1kø.
-kø2ar
-1køe
-kø4en.
-kø2er
-6k1øk
-kø4le
-k1øn
-køn6skjer
-k3ørr
-køs4
-kø5se
-køy7ar.
-k7øyd
-køy4e5ne
-1k6øyr
-4kåke
-kå3le
-kån8da
-kå5ne
-kå4pe.
-kå7pen
-kå9ras
-kå1re
-kå1ri
-kå2t5
-k5åt6t
-1la.
-2laa
-la1b
-4laba
-la6bl
-1labo
-2l3abon
-4laby
-4lad.
-l6ade
-la4dem
-4ladg
-ladi9e8
-2ladm
-2ladr
-lad3s4
-1lae
-2laei
-4laent
-4laep
-2laf
-la3fl
-4lagg
-lagi4
-6lagne
-la2go8
-lag5om
-la2g1r
-lag5san
-lag4sj
-2laha
-2la1in
-la5ka
-la4ke.
-4lakj
-l2akk
-la2kr
-8l7aksel
-l7aksj
-l5aksl
-4lakt
-lakterie6
-la5kø
-2lal
-l1alk
-la5mab
-4lamb
-la4mes
-la4met
-la3mo
-l8a8mu
-4l3anal
-lan2c
-lan6das
-lan6deb
-land3r
-l6a3ne
-3lane.
-4lanet
-lan6gel
-lan4gem
-lan6germ
-lan4gr
-lang3s4
-lang4s5e
-lan6g5ø6
-4lanl
-4lann
-l3anno
-la4nor
-6l5ansi
-lan8s7p
-lan5ti
-4lanv
-l3anvi
-2lao
-la6pal
-la7pi
-la8pl
-lap8p7r8
-lapp7s8
-lap5sa
-lap5sen
-lap5s4i
-1l8ar.
-6l7arab
-2larb
-l8are.
-4l7area
-la9red
-la5rem
-l6aren.
-4larena
-lare6t
-la6r7eta
-5larf
-la7ria
-lariar
-lari6e7n
-4l3arki
-l2arm
-lar3n
-6l7arr
-4lart
-lar6ta.
-lar7vet
-la6sc
-la5se
-lasi9e
-la2sk
-7laskj
-4lasm
-la5smi
-4la4sp
-las6sak
-las6sam
-las6sat
-las6sel
-l6ast
-4lastr
-las3v
-la1ta
-lat5ang
-6latau
-la4teg
-lat6ek
-la4teno
-late5s4
-la5ti
-la6ti.
-4latm
-la1to
-lat7ra.
-lat9ran
-lat5rar
-lat4t5is
-lat4tra
-latt6u
-lau7a
-2laud
-laue6
-4laun
-4laur
-lau7se
-lau6st
-2laut
-2lav
-la4v5al
-la4vel
-l5avh
-lav5inn
-6lavs
-7lavå
-1law
-la6y5
-6l1b2
-lba3de
-lba4k
-lba5ke.
-lba4ne.
-l5be
-lbe9na
-lbe8re.
-l4boa
-l6buh
-lby4e
-l5bå
-2l1c
-l4ce.
-6ld
-l7da.
-ld5aks
-ld5akt
-l9dand
-lda6t5o
-lda6t5y
-l2deb
-l5den
-l2de5o
-l2dep
-l3der
-l7der.
-lder7a
-l4derek
-l6derik
-l6derklæ
-lderle9g
-lder5s6te
-lder6s5ti
-l4desh
-l6destr
-l9dé
-ldis7k
-ldo9a
-l8d5oks
-l2dol
-l4dore
-ld5ovn
-l3drak
-ld3ran
-ld5ras
-l6dre.
-ld7regn
-ld5rer.
-l8dres.
-ld1ri
-l7dry
-ld1rø
-ldse8
-ld4sek
-ld4sel
-ld4ses
-lds1k
-ld4ska
-lds4kj
-ldsla8ga
-lds6leg
-lds4let
-ld4s9m
-ld5s4om
-lds3tr
-ld6tus
-ldø2
-ldø5d
-ldø5l
-ld7øy
-1le
-2lea
-le7ag
-le3ak
-le1al
-lea5la
-3leas
-le5at
-2leb
-le4bem
-le6bosta
-5lebæk
-lec4
-2leda
-5ledar
-led4dø
-4ledeb
-le4dem
-6ledep
-le5der
-le3des
-2ledo
-3ledop
-5ledov
-le4dro
-le5dry
-led1s2
-6ledu
-4ledy
-2ledø
-4le3då
-2lee
-6leei
-6lefa
-lefa6ne.
-4l1eff
-2lefi
-4lefl
-4lefor
-4lefot
-2lefr
-l1eft
-6lefy
-4lefø
-6legap
-5legas
-3lege
-le4ged
-le9gen
-le4gera
-le9geran
-le9geras
-le4gero
-le4geta
-le4gev
-7leggi
-le3gi
-6legif
-4legj
-2le1g2l
-le4gol
-4legre
-leg3s4
-2legu
-2legå
-2leh
-6lehal
-6lehamr
-6lehan
-6lehau
-6lehave
-le3ido
-lei8e
-l6eie.
-lei5ende
-lei4e5ne
-lei9er
-l6ei8et
-leig6d
-lei4ger
-lei7ger.
-lei4get
-leig4h5
-leig6na
-leig8ne
-2lein
-le3int
-lei6r7u
-leis7t
-l6eit
-2lej
-2leka
-le4ka.
-6lekan
-lek6e
-le3ki
-2lekj
-lekk7s
-2lek2l
-2lekn
-lek4na
-2leko
-2lekr
-4l3ekso
-4leksp
-lekt5ord
-lekt4s5t
-2leku
-2lekv
-4lekø
-4lekå
-2le3la
-8l9eld
-2lele
-l3elem
-4l5elg
-5lelig
-2lelo
-3lels
-4l3elsk
-le1lu
-4leluk
-l5elv
-2lely
-4lelæ
-2lelø
-lelø6pa
-4lema
-le3me
-le8me.
-4lemet
-8lemetrisk
-8l9emn
-lem8na
-2lemo
-lem9ped
-lem5pes
-3lemr
-lem4si
-lem4s5ø
-2lemt
-lem5ti
-2lemu
-6lemy
-4lemø
-2lemå
-le4na.
-le4nal
-4lenav
-lend8a
-len9dan
-6lenden
-l6endre
-4lendri
-4lened
-4lenem
-4lenev
-l4engd
-len4g5r
-leng9u
-le5ni
-4leniv
-lensa4
-len4s5ak
-4lensem
-len5ses
-len4sta
-len4tam
-len4tr
-len8t9ra
-2lenø
-4lenå
-2leo
-5leol
-2lep
-le5pa
-le4pel
-le8p9enden
-le2p3j
-le8pla.
-le4ple
-4lepo
-4leraba
-4leram
-le2r3amb
-ler5d
-l8ere
-le9re.
-6lerea
-4leref
-4lereg
-4le9r8ei
-4lerek
-le5res
-4lereso
-4leresu
-4leret
-4lerev
-9leri.
-7lerie
-le6riei
-le7rina
-le4riv
-4l5ernæ
-le5ro.
-4lerom
-6lerope
-le3ros
-4le3rot
-7lers.
-lers4p
-ler7te
-le1ru
-4lerus
-leru8se.
-2lery
-5leryr
-2lerø
-2lerå
-5l6es.
-le4sab
-4lesam
-7lesar
-4lesau
-2lesc
-le5sed
-le4seg
-4lesek
-le5sen
-le3ser
-4leset
-4lesho
-le6si.
-4lesig
-le7sing
-les5inn
-4lesit
-4lesju
-le7skap
-le4s3kj
-6leskol
-le6sk9u8t
-4lesla
-2lesp
-6lespal
-les3s6
-lesse6ne.
-4lesta
-9lesta.
-7lestal
-le5sted
-le5steg
-le5stel
-le4stim
-le3sto
-4lestrø
-4lestyr
-4lestø
-4lestå
-4lesug
-les1v
-le5s6vi
-4le5sy
-4lesø
-5lesøy
-3let.
-le4tab
-6letak
-leta8ka
-leta8le.
-l5e4tas
-5lete.
-6letea
-4leteg
-4letek
-le5ten
-6letenk
-6le7tep
-le5ter.
-4letes
-2le3ti
-l5e4tik
-2letj
-2leto
-2let2r
-le7tre
-le5t4ri
-3lets
-let6sj
-lets8k
-let6tea
-let6tr
-lett3s4
-2letu
-le4tv
-2lety
-lety8e
-4letø
-8letå
-4leul
-2leun
-l1eur
-2leut
-le4ute
-2lev.
-le6vad
-le6valu
-le4ved
-4leveg
-4levei
-4levek
-6levern
-4le4vev
-levi6d
-lev5n
-2levo
-lev1r
-4levs
-4levæ
-lex1
-4leø
-2leå
-5lée
-1lér
-7lét.
-7lè
-5lê
-4l1f
-l4fa.
-lf5ant
-l5far
-l5fe
-lf3f
-l5fig
-l5f6in
-lf5ja
-l7fje
-l6f3nul
-l4fom
-l4fut
-2lg
-l6gaf
-lga8le.
-l4g5alt
-l4g3ana
-lga5t
-lga4ve.
-l2ged
-l4gela
-l4gele
-l2gem
-lge3na
-lge4r5an
-lge4rap
-lge5ri
-lger5un
-l4gery
-l4gesl
-l6ge7sp
-lg5g
-lgie8n
-lg1lo
-lg5ly
-lg5n
-lg3ob
-lgo2d
-lg1ok
-lg1om
-lg5ov
-lg3ref
-lgr9øy
-lg3s2e
-lg2sk
-lg5s4kre
-lgsle9g
-lg5s4tr
-lgu4l
-lg3un
-lg3ur
-l1gæ
-lg5ø
-l6gå.
-lg5år.
-lgå8va
-lgå8ve.
-8l1h
-lha8ka.
-lhav6s5
-l5hj
-1li
-li1a
-li4ala
-li2am
-li5ans
-li4as
-liba5
-libe5ro
-libi5
-libie6
-liby5e
-li4dak
-li4ded
-li4do.
-2l1idr
-lid3t
-li4ene
-li3er.
-li5ers.
-lie5s
-3lif
-4lifat
-lif5f
-3lig
-li4ga.
-li4g3an
-li4gar
-lig9art
-li8gas.
-li4g5enh
-li4get
-5lign
-li4g3re
-lig3se
-lig3s4i
-lig3sl
-lig3s4p
-lig5s4ti
-lig5str
-li2gu
-4lih
-li5kan
-li9kar
-li7kas
-li5kee
-li3ken
-li5keså
-li9ki
-likk3o
-li1k2l
-9likn
-liks4t
-li5ku
-6lila
-8l5ild
-li3le
-lil5lebe
-lil5let
-li4mar
-li4mas
-li6mate
-l6ime
-li4me.
-4limh
-limp3r
-lim7r
-lim9u
-li4na.
-4lina6l
-lin6c
-linch5
-5l4indr
-4lindu
-lind3s4
-l5indus
-li4ne.
-li3ne6a
-li6nem
-2l1inf
-lin4g3j
-ling5l
-ling7sen.
-5lingv
-4l5inju
-lin5kes
-lin5kle
-lin4kv
-2l1inn
-lin5net
-3linni
-6linns
-6l5inntr
-li4nor
-l4inse
-5linsk
-4l3inst
-4lint
-2linv
-li6n5ø6
-lio4no
-lion5sp
-lion5sv
-li5o6s
-2lip
-lipes4
-lipp4s3
-li9rar
-li4rek
-4lisak
-li5set
-lis4kl
-2liso
-4lisp
-lis6sp
-lis7tan
-lis6terk
-lis5ti
-4lis6til
-list3o
-li6s8tr
-list7rø
-lis4t3u4
-li4st5y
-listyr8ke.
-li4tee
-li4tek
-li4ti3a
-li4tid
-li4tig
-li4til
-li4tim
-liti5st
-li4tiv
-lit5j
-6litn
-li5to
-li2t1r
-lit5rer
-lit6tele
-lit6terk
-lit6term
-litt5s6
-li5ty
-7liu
-li6va.
-li4v3ak
-liv5eg
-livi5e
-liv2s3
-2lj
-l1jan
-l1jar
-l4jarb
-ljar5s6
-ljas4
-l4jed
-l6jee
-l2jei
-l2jek
-lje3l
-lj9elv
-l1jen
-l3jer.
-l4je1s
-l5jes.
-ljes4t
-l5jet.
-l4jete
-l5jete.
-l6je5t6r
-l2jev
-l5jé
-l1ji
-3l2jod
-ljo8e
-l4jom
-lj5ori
-3ljos
-lj5un
-l7jur
-lj7ut
-ljø3
-l5jøs.
-6l1k
-l3ka
-l5ka6l
-lkali9e8
-lk4an
-l6k5b
-lk4e
-l3ke.
-l2ked
-l5kedal
-l3kede
-lkeei4
-l6keh
-l5keleg
-l8k7els
-l3ken
-l7ker.
-l4kera
-l4keri
-l4k5ers
-l4ke3ru
-l5kestad
-l5ket.
-l5kets
-lk2l
-l7k8lem
-lk4li
-l5k4lu
-l6k5nin
-l6ko.
-lko9ma
-lko9sa
-l2kot
-lkras5
-lk5ri6k
-lk4ser
-l4k3s2h
-lk1s4t
-lku4le.
-lku8t
-lk9ute
-l6kveg
-lkå1
-6l1l
-l5la6a
-ll6a5f
-l2lak
-ll1al
-l4lami
-l5lane
-ll3anl
-l4l5ano
-llans4
-ll5ansk
-ll7apa
-llap3s
-ll4as
-ll5asp
-ll5aur
-llau6re
-ll7avl
-ll5avr
-ll3d2
-lle5a
-l5leak
-lle8da.
-lle4d3r
-l3lee
-l2lef
-lle5gev
-lle5gr
-l5leha
-l5leho
-l5lehå
-l4l5eig
-l4leki
-l6l5ekst
-l4leli
-l2lem
-llen6da.
-ll5enden
-l4lendr
-l6lendt
-l4lenk
-l5l8ens
-l4lentu
-l4lenu
-ll5eple
-l6l5e6rik
-l4lerob
-ll6es
-lle4so
-lles5pr
-lle5stø
-l5let.
-l4leta
-l5lets
-llet6tele
-l8letæ
-l2leu
-ll5even
-lle7vev
-l5levå
-lle6y
-l2lé.
-ll7g2
-lli1e
-lli5e4n
-l9lig
-l2lim
-l4l3ind
-l4lins
-ll3int
-l9lint.
-l3lip
-l4lir
-lli6sen
-l4liv
-ll1j
-ll7k2
-ll5m
-llmue9ne
-llmu7ens
-llmu9er
-l5lo.
-llob5
-l2lod
-l4l3off
-llo5id
-ll5oks
-llo2m1
-llom5s6
-ll3op
-ll5opp
-l2l1or
-l4loso
-l6lote
-ll5p
-llra7n
-ll4sak
-llsa6me.
-ll4sem
-lls5end
-llsk4
-lls6kar
-lls5kv
-ll5skå
-lls5lag
-ll3smy
-lls4no
-lls4te
-lls6tig
-lls7øk
-ll3t4
-llto4e
-l8lua
-l4lu4e
-l4luf
-ll7ug
-llu4k
-l8l7uka
-l4l3uke
-l6luks
-l5lum
-l4l1un
-llun6ge.
-llu4pi
-l2l1ur
-l3lus
-l2l1ut
-ll1v4
-llva8n
-lly4se.
-l4løk
-ll5øks
-llø6pa.
-l4løve
-ll7øy.
-ll5øya
-ll3øye
-lløy6er
-ll5øy6n
-ll1å8r
-ll3å2s
-2l1m
-l5ma.
-lm3anm
-l4map
-l4marki
-lm3av
-lm7b
-l4m3els
-l4melu
-lm5e4po
-l4m5erf
-lme7ri
-lme7sti
-lme5t4r
-l5mil
-lmi8le.
-lm3ind
-l5ming
-lmini6
-lmin7ne
-lm3ins
-lm5int
-l7mis
-lm5l
-lm5m
-lm1op
-lm1s
-lms6j
-lm5s2p
-lm3t
-lmu4le.
-lm3ut
-lmyr8ke.
-l4mø.
-l6m5øs
-lm5øy6
-lmøya9
-lmå6la.
-lm5å4r
-l4m5ås
-2l1n
-l2nab
-l3ne
-lni4u
-l7ny
-lo1al
-7loane
-lo1a4r
-5loar.
-2lob
-lob5by.
-lob9byan
-lob9byar.
-lob5bye
-lo2bl
-lo2d3a
-lo3de
-lo4d3ri
-lod3s4m
-lod7ste
-lod7s6v
-lo6d5u
-6loeng
-6lofj
-3loft
-1log
-lo5ge
-lo6g5e8v
-lo4gir
-log2o
-lo3gop
-log8res
-lo6g5ro
-log5sa
-4loh
-lo5id.
-lo3ide
-lo1in
-3loja
-lo1ki
-lok4ko
-lok6kul
-2lo1k4l
-4lokon
-2lok7s4
-lok8se.
-lo1k4v
-lole6ge.
-2lolj
-lolo9
-l5omdr
-lo4m5in
-lom4mel
-lomst9r
-lo4nal
-6lond
-lo5ne
-lon4g3r
-lo4nit
-lon7skj
-2lop
-lo3pa
-lo4pea
-lop5pa
-5l4opt
-lo1ra
-2lord
-lor6da.
-lo1re
-4l1org
-lor4g5l
-lorie6
-6lorm
-lo1ro
-lo7rød
-lo7sa
-lo6sek
-lo4ses
-lo5sev
-los4kle
-lo1sl
-lo7sp
-2lost
-lo9tes
-lo8ti.
-lo3to
-4lottet
-lo1un
-1lov
-lov7ald
-lo3van
-lo9vand
-lo7vane
-lo3var
-lo3ve7d6
-l6over.
-love5re
-l5overn
-6l5overs
-6l5overt
-7lovo
-lov3sa
-2l1p
-l7pa
-lpa5re
-lpas5
-l4pedo
-l4pee
-l2pei
-l2pel
-l5peleg
-l3peli
-l4pelin
-l3pesm
-l4peti
-l2peu
-lp2h
-lp2i
-lpin3e
-lpi5ne.
-lp2l
-lpo6et
-l4put
-l5q
-2l5r4
-lra8da
-lradi4u
-lra6ne.
-lre4de
-lre4i
-lre8ka
-lre8ke.
-lre8va
-lri8ma
-lri4ve.
-lro8de.
-lro6pa.
-lro8sa.
-lro4se.
-lrot5s
-lrø6re.
-lrø5v
-lrå8da.
-lrå4de.
-8l1s
-l2sad
-lsag6
-ls5ald
-ls4am
-l7sana
-lsan6ke.
-l4s5ano
-l4s3ans
-ls5ark
-l4sat.
-l4scu
-l3se.
-l2sed
-l2see
-ls3eid
-ls5eig
-l4s3ele
-l4s3elv
-l2sem
-ls5emb
-l4seno
-l7ser.
-lse2s
-lses5ku
-lses3l
-lses5pa
-lses5s
-lse8s5tr
-lse4te.
-l2seu
-l6sev
-l4sf
-l2sh
-l5sig
-l5sik
-l6s5ill
-l4sim
-l5simu
-l4s3inn
-ls5jakk
-l5sjef
-ls3jeg
-ls3jen
-8lsk.
-ls5kabi
-l4s5kan
-ls5kari
-lsk5art
-l6s5ke
-lskif5
-l2s3kild
-lskinn6
-lskinns5
-ls1kjed
-ls3kjo
-l6skl
-lsk3læ
-ls3koa
-ls5kor
-ls3kov
-l4skra
-ls8ks
-lsk5un
-ls7kva
-ls3kvi
-l4skå
-ls3kåp
-lskå6pa
-l2sl
-lsla4ga
-l7slagn
-lsle6ge.
-ls5lo
-l5s4luk
-l6s5løs
-l2sm
-l5smør
-lsmå6la
-l2snu
-lsok3
-ls5ond
-lson6de.
-l2s1or
-ls7o6se
-l5sot
-ls1ov
-l2spa
-l9speg
-l5spei
-l9spel
-l5spi
-l4spr
-l5spred
-ls3pri
-l8s7s
-l4s3tak
-l4s3tal
-l6stank
-8l7s8tat
-l6ste.
-ls4ted
-l4steg
-l3ste4i
-ls4tel
-ls5terr
-ls6ti.
-ls4tie
-ls6ton
-ls5tren
-l9stri
-l2su
-l5sub
-l3suk
-ls1un
-l2s1v
-ls7vea
-ls5vee
-lsve8en.
-l6s5vek
-lsve7re
-l4svik
-ls6vind
-l4sør
-l2s1øy
-l2s1å
-2l1t
-l4taa
-l4taf
-lt3akt
-l3tal
-lta4la.
-l4t3alb
-lta6lev
-lt3anl
-lta6no
-lt3art
-lta4st
-lta8tes
-lta4t3o
-ltat3r
-lt3avk
-l5tavæ
-lt9b
-l3tede
-l4teka
-lte6ma.
-lt4en.
-l4t5enh
-lt3epi
-l4teras
-l4t5erst
-ltesa8me.
-ltid6s
-l4tiet
-l2tif
-lti6g5
-l2tik
-l4tina
-lt3ind
-lt9inn
-lt3ins
-l4tivi
-l2t1ja
-ltle8ge.
-lt9n
-lto9ar
-l3tog
-lto4s
-lt3ost
-lt8ep
-lt2r
-l3tra
-lt3reg
-lt3rei
-l6treko
-l6t5rel
-l6t7rem
-l4trens
-lt3res
-l5t4rest
-l5trev
-l4t5rit
-lt3rol
-lt3rom
-ltro8pa
-l5tros
-l4t5rød
-l5trå
-lt1s2
-ltsa8me.
-lt5s4i
-lt7s6t
-lt2s3v
-lts4vi
-lt7t8
-lt3und
-ltu4ra
-ltur5e6
-ltu5r6en
-ltu5r6er
-ltur5s6
-ltur5å6
-l2tut
-l5tv.
-ltva8la
-l3tvs
-l4t5w
-l3ty
-lty8d
-lt7øl
-lt3øv
-lua8r
-2lub
-lub6band
-lu6bri
-lu5c
-lu7ere
-1luf
-3lugar
-lu7go
-lui6
-luid6er
-1luj
-4luk.
-lu4ka.
-4luket
-luk6keri
-lu3kr
-5l6ukt
-4luly
-l4um
-lu6mel
-lu2mo
-lum6sk
-lu4mø
-lun5d4r
-lu4ne.
-lun4gel
-l7u2ni
-lun5ne
-3lunsj
-4lunt
-lu6o
-lup4s
-lu2p3u
-lur2e
-6lurei
-lu5ren
-lu5ri
-6l5urn
-lur8na
-lur8ne.
-lur8ta
-1lus.
-lusa5
-lu7sak
-lu6sel
-lush7e
-lu2s5k
-lus4o5
-lus4sid
-lus4s3t
-lus1t
-lus2t3r
-luta3
-lu3ta.
-lu7tet
-6lutf
-4lutg
-luth
-3lu5t6he
-lutla9
-lut6m
-lu1to
-lu4t5r
-2luts
-lut4tal
-lut4tap
-lut4t5at
-6lutv
-1luv
-lu4va
-lu4ve.
-lu9ven
-lu9ver
-8lv
-l1va
-l4va.
-lva6k
-l4vakti
-lva6la
-l4va4m
-l4vana
-lv8and
-lv7a8p
-l7var.
-lv7asa
-l4v5ass
-lve3d4a
-lve5i6s
-l4vela
-l4vele
-lv4en
-lve9ne
-l9ver.
-lve9rau
-l4veru
-l4vesk
-lve5sl
-l7v6et.
-lve5str
-l9vé
-l1vi
-lvi8ene
-lvi9er
-lvi6ka.
-lv9im
-lvin5g6r
-lv3iro
-lv1j
-lvly8se.
-l6v3n
-lv1of
-lvoks6
-lv9op
-lvo8re.
-lvor4s
-lv5o4v
-l6v5p
-lvra8r
-lv9ri
-lv1s2
-lv5se
-lv7s6k
-lvs6l
-lv9ta
-lv1å
-l3våg
-lvå4p4
-lvå6r
-l5w
-ly1a
-2lyb
-ly4d7r
-ly5e
-lyes3
-ly4gel
-ly5g6l
-ly8is
-2lykj
-lyk6keri
-ly5ku
-ly7kv
-6lykø
-ly5l
-ly5me
-2lymp
-ly2n3a
-ly4ne.
-ly4n5il
-lyn3s2
-2lyo
-ly5ok
-ly3pe
-ly1r8
-ly8ra.
-ly6re.
-6l7yrk
-ly4sa.
-ly4s5a4k
-lyse6te.
-lysk4
-lys3kj
-lys9kl
-ly2s1l
-4lysp
-lyst9ra
-6lysy
-ly8ta.
-4lytek
-ly4teri
-lyte5s
-l5y4tin
-ly1tr
-ly5vak
-ly3ve
-l3z
-l6z5b
-1læ1
-6læd
-læ6ra.
-læ5rar
-lær4arm
-læ4re.
-lære3i
-læ3rer
-læ4re3s
-læ5res.
-lær6sv
-læ6ta
-1lø
-lø3de.
-lø4del
-lø5dem
-lø4er
-løk5kj
-4l1økn
-2løko
-lø4k5r
-l5ø6l
-lø9me
-lø2na
-løns5t
-løp6s5
-5l4ørd
-lør5k6
-lør5n
-4l5ørr
-5løs.
-lø2sa
-lø5san
-lø5ser
-løs3k
-løs3s
-2løt
-lø9ta.
-lø3te.
-lø4teg
-løva9r
-6l7øv8d
-lø4ve.
-lø3ver
-lø5ves
-6løy.
-4løya
-2løyd
-4løye
-løy8ed
-løy5el
-2løyf
-løy4g
-løyg5e
-4løym
-6l5øys.
-løy5ter
-lå6gal
-lå6gre
-lågs4
-lå4gå
-2låi
-lå1k4
-lå6ke.
-lå9me
-lå2m5o
-lå2n
-6l5ånd
-lån2s1
-2låp
-l1åp9n
-2lår
-lå8ra.
-lå9rar
-lå5ras
-lå3rin
-lå1ru
-lå6sa.
-lå1sk
-lå6sko
-lå4s5l
-lå4ste
-lås7ten
-lås5ter
-lå5su
-lå3te.
-lå4teg
-lå4tek
-lå8ti.
-4lått
-lå4ve.
-1ma
-2maa
-3maa.
-ma3ar
-2mab
-ma5br
-ma3che
-mada5me
-ma4del
-ma3dra
-m6ad9s
-4maef
-4maek
-7maene
-2ma1f
-3mafia
-3mafr
-6mafrå
-ma8ga.
-ma4ged
-ma4gel
-ma4ges
-3magn
-ma2gr
-2mahe
-ma4is
-ma4ja
-2mak.
-ma5kab
-4makad
-ma4kes
-mak7ke
-4makl
-mak6le
-ma4kot
-mak2r
-ma3kre
-mak5ron
-mak4tal
-4m3akti
-mak4to
-makts4t
-ma1ku
-2ma1kv
-ma1la
-ma7leb
-ma6leng
-ma4let
-mali9e8n
-mal5l
-ma4lov
-mals4
-mal4t5ek
-mal3u
-mal3å
-4mamer
-ma3mo
-m4an.
-ma3nak
-m3anal
-6manam
-4manav
-man8ce
-man4dom
-man4don
-ma3ne
-m4anf
-man5g4a
-m6ange
-4mangr
-mania8
-2manl
-m3anle
-4manm
-5m4ann
-man4nem
-manns5l
-ma4no
-2mao
-4mapa
-2mapr
-4marb
-mar5d6
-7mare.
-6mareg
-ma3rei
-ma7rel
-5ma9ren
-ma5res
-3mar4i
-mari8e9ne
-ma3rin
-m4arka
-4markit
-mar4kv
-mar5m
-marmo9ra.
-mar7n
-ma1ro
-ma4ro6p
-mar3s4h
-mar7sl
-mar5te
-ma4ry.
-ma6rå
-4masel
-ma5set
-mash3
-ma4sia
-ma4sik
-ma4sis
-6masju
-mas4ki
-4masko
-4masp
-mas4see
-mas6set
-massø9
-7mast.
-ma5stem
-4masto
-4ma5str
-2masy
-m6at
-ma1ta
-ma5tad
-ma3te
-ma4te.
-ma6ted
-ma4tel
-7maten
-7mater.
-6matera
-7matet
-6m7atfe
-4matil
-7matil.
-ma1to
-ma1tr
-4matra
-ma4t5ras
-ma4t3re
-ma6t7rom
-mat3s2
-mats8l
-mat5ta
-m8at7t8r
-2mau
-mau4k
-mau7l
-ma1un
-5maur
-mau7su
-2mav
-5m6a6ve
-ma5ven
-m7avh
-m5avk
-ma4ze
-ma3zo
-2m1b
-m4bao
-mbar3d
-m2bea
-m4beb
-mbe9da
-m4bedø
-m2bef
-m2bek
-m4beli
-m2bem
-m4bena
-m4beo
-m4bereg
-m4bero
-mbet2
-mbi6ar
-m2bib
-m3b4l
-mboe2
-mbo4end
-mbo5er.
-mbo5ere
-mbo5id
-mbo5n
-m4bop
-mbo5re
-mbo9t
-mbu7ar.
-mbu4e
-mbue7re
-mbus5
-m1c
-m6co
-2m1d2
-m3de
-md7om
-1me
-2mea2
-me5al
-mea5m
-2meb
-2mec
-meck4
-4medat
-2medb
-5mede.
-me4ded
-med5ei
-me7den
-me7det
-4medf
-me3di
-4medik
-4medir
-2medm
-me6dok
-4medom
-2medr
-me6dret
-med1s4
-4medu
-me6dun
-me5d4us
-med5v
-7medve
-2medy
-4medå
-me7e
-2meef
-6meek
-2meel
-4mees
-4meev
-2mef
-m3eff
-6me2ga
-me7gal
-2megr
-2megu
-4meh
-mei2e
-meie5n
-m1eig
-me3ild
-me3ind
-mei5ni
-me7isk
-4meiso
-2mej
-4meki
-4mekj
-2mekk
-me2k1l
-me3kn
-4meko
-2me5k8r
-4meks
-mek5t
-6mekte
-m2el
-4mela
-me5l4aks
-5melane
-5melar
-me3le
-me4le.
-4meled
-4melei
-4melek
-6m5e6lem
-me4l5eng
-4melik
-4melis
-4melit
-4meliv
-mel5le
-mello6m3
-4melok
-4melov
-mel4si
-mel2s3j
-melsk4
-mel5s4t
-mel7tr
-me1lu
-mel5v
-melvi6
-2mely
-2melæ
-4melø
-4me5l4å5
-2mem
-me6mo.
-me6n5e6d
-me6n5ers
-4m5enga
-men5k
-menle6ge.
-m6enn
-men4ny
-me4nom
-me4nor
-men4si
-men3sm
-men5spl
-men5te
-men6tek
-men4tom
-men5tr
-me4nyt
-2me3o
-me6os
-2mep
-5mer.
-me6rab
-4merad
-me4ra5l
-me4r5ant
-mer5di
-4mered
-4mereg
-4merei
-4merek
-4merel
-me6rense
-me3res
-4meress
-mere6t
-m4eri
-4me5rib
-meri5ke
-5merin
-merle7g
-mer9n
-mer5os
-5mers
-mer5sk
-me3run
-mer5und
-4merus
-2mery
-me2r3ø
-2merå
-me4råk
-5mes.
-2me5sa
-4me5s4h
-2mesj
-2me1sk
-mes5ke
-2me1sl
-mes6le
-4me3s4o
-2mesp
-5mess
-messe7s8
-7mest.
-4mesta
-5meste.
-mes4ti
-6me7sto
-mest3r
-me5stro
-6mestrø
-4mestrå
-4mestu
-4mesu
-2mesy
-2mesø
-4metab
-metall7s8
-4me9tap
-me4tar
-me3te
-4meteg
-4metei
-4metek
-4metel
-4metep
-4metil
-2metj
-4meton
-me4t3ra
-me4tre
-met5ren
-met7rer
-met5res
-met5rik
-me4tru
-4metræ
-2metu
-4metv
-2mety
-2metø
-4metå
-2meu4
-7m4eu3s
-2mev
-meva8n
-2meø
-2meå
-2mé
-2m1f
-mfa9ra
-mfar8ta
-mfav5
-m2fek
-m6f3ess
-m4fi.
-m4fibr
-m2fit
-m5fru5s6
-m5funn8s5
-mfu6se.
-2m5g6
-m4ga.
-m4gi.
-mgå8va
-mgå8ve.
-2m1h
-mhea4
-m4hu.
-1mi
-mi1a
-5mi6al
-mia2n
-9miane
-7miar.
-2miav
-mi6c
-miche6l
-8m9idé
-2midi
-mid5j
-mid3s4
-mid4t
-4mi3ele
-mi3er.
-mie9s8
-2mi5f
-5migraf
-2mih
-2mii
-4mij
-mik6h
-4mikj
-2miko
-mik5ro.
-mik5ron
-mik5sa
-6miku
-mi4la.
-mile6t
-mil7eti
-mi4lev
-mi7li
-4milin
-mil6s5v
-4milæ
-2mim
-mi8ma.
-5mimo
-m7imp
-mi4na.
-mi5nar
-mi4ne.
-mi4n5ers
-4m3innh
-4m3inns
-6minnt
-min2s
-min3sp
-mins4t
-mi3nu
-m4inv
-mi4n5y
-mi7ov
-2mip
-4misa
-mi4san
-mi3se
-4misek
-4misel
-9misé
-misha9ge
-4mi7si
-mi2sk
-mis4ko
-mi3s4la
-mis9le
-7mism
-mis4s5k
-mis4s7p
-mista9k
-5mis7te
-mis4tra
-4mistu
-2misy
-4miså
-6mita
-mi3te
-4mitj
-4mito
-2mit6r
-mitt3s
-mi5ur
-2miv
-mi5vå
-m6ja.
-m6jan
-m5jar.
-m7jarn
-2mje
-m7je.
-m1ji
-m8jingan
-m8jingar
-8mjo
-mju7ke
-1mjø
-mjøs5t
-2m3k2
-m4ko.
-mkro5
-mku6le.
-mkå8pa
-4m3l
-m7la
-mla6ga
-m2lef
-mlei5er.
-m2lek
-m2lel
-m2lem
-m4lera
-mle6se.
-m4lesk
-m6le5s8v
-m4leta
-mle4ve.
-ml6i
-ml5ja
-mly6se.
-mlø6pe.
-mløy3
-2m7m4
-m6mai
-mma5kl
-mmal5
-mma8le.
-m4mam
-mmando5
-mman6dol
-m5mar
-mmar7in
-mmar7o
-mmatik7ka
-m4medø
-m2meg
-m2mei
-m2me3k2
-m4melu
-m6meni
-m4menu
-mmer5t
-mme4run
-m2me1s
-mmest6
-m5met.
-m4meta
-m4meti
-m4metra
-mme5t6re
-mme3u
-m3mé
-m4mia
-m7mian
-m2mib
-m4mid
-mmie6n
-m2mik
-mmi5sk
-mmi5so
-mmi3st
-mm5n
-m3mu
-mmø2
-mmå8la.
-2m1n
-m2nee
-mn7eid
-m2ne9l
-mne4ra
-m5nese
-m4nesk
-m4nesta
-mnes9tie
-m9net.
-m4nete
-m2nev
-m6nip
-mn7sk
-1mo
-3moa
-mo2ar
-4moba
-5mode
-mo3dem
-mo5di
-mo6di.
-2mody
-3moe
-mo4en.
-m1off
-mofo6bi.
-mo6gi
-5mogl
-mo5go
-m5ogs
-4moh
-2moka
-mo8ka.
-mo8ke
-mo1ki
-mo6la.
-mo3le
-mo4le.
-mo7le6s
-4molt
-mo3ly
-m5om.
-4momf
-2momr
-mom4s5ø
-mo5ne
-mo4nisa
-mo2no
-mon1s
-mon4ste
-mon5t6
-2mop
-5mo1ra
-mo4ra.
-mo4rar
-mo7rar.
-mor5d6e
-4mordl
-mor6d5r
-mo3re
-mores7
-m2ori
-mo4ri.
-mo6rid
-4m3o4rie
-mor4kl
-morla8ga
-mo5rok
-mo4rom
-mor4si
-mor4skj
-mor7sky
-mor4sp
-mo1rø
-mo9sen
-mo2s7k
-mos4o
-6mostab
-4motap
-mo4te.
-mo6te6g6e
-mo4tei
-mote7kl
-mo5ter.
-mo4tes
-mo5to
-4motr
-mot7re
-mot1s2
-6motsagd
-motsva5
-mot7t
-mour5
-3mo3va
-mo5w
-8m1p
-m4pana
-m4p5anta
-m4pee
-m4pelot
-m6pena
-m6pep
-mpera8te.
-mpe5res
-m6peress
-m4p5erfa
-mperi6e7n
-mpes2
-mpes6te
-mpe4sti
-m5pett
-m2pe5u
-mp3id
-m4pinje
-m8pla.
-m3p4lan
-mp5le.
-m6p5lin
-m6p5n
-m6p5ob
-mpoe4
-m4poeta
-m4pog
-m6pok
-m2pop
-mp3opp
-mp1p8
-mp3rad
-mp5ret
-mp3rop
-mpro8pa
-mp1s
-mp3sek
-mps4p
-mp5s6t
-mpun6ge.
-m9pur
-mp5ut.
-mp5ys
-mpø5
-m9på.
-m3q
-2m1r6
-mro8sa.
-mro6se.
-mru7te.
-mrø9de
-m9rår
-6ms
-m5sa.
-ms1ak
-ms5ant
-m1sc
-mse5lu
-m9s6ei
-m4sem
-m4s3eng
-ms5e4pl
-m4serv
-mse5s
-m5s6etn
-mse6t7jare
-mse8t9jas
-msi6e
-ms4ing
-ms3inn
-m4s5ja
-ms5kab
-mska9k
-ms6kin
-msk5ing
-ms3k4n
-ms3kor
-ms5kren
-msk8u
-ms3lan
-ms6lega
-ms9lua
-ms3lue
-ms4ly
-m2sm
-m1s2n
-ms9ne
-ms5no
-ms3næ
-m1so
-m4soms
-ms3ori
-ms1ov
-ms3s2
-m4s3tal
-ms8tav
-m8s7te.
-ms7tea
-ms2ti
-ms5tilb
-ms3tim
-m1sto
-m4s5top
-m5s6topp
-mst5ord
-m8strand
-m5strane
-mst5red
-ms5tref
-mst5ren
-ms5trik
-ms4tru
-ms3unn
-msu9ta
-msu7ten
-ms1v
-msva9ra
-msva5re
-m3s4vet
-ms3ynd
-msø4ke.
-m4s5ør
-ms1øy
-ms1å
-2m1t
-m3ta
-mt4b
-mtbe6
-m2tee
-m2teg
-mteks7
-m6te7kv
-m4tel
-m6testu
-mti9a
-m9tida
-mti5e
-m6tien.
-m6tif
-m2tik
-m6tini
-m4tiø
-mtiør6
-m5to
-mt4r
-mt6ve
-mt4vin
-mtå5
-1mu
-mu6a
-m1u2b
-mu2e
-mu3el
-mue7r
-mues1
-2mug
-mug5l
-mu4he
-mu2k
-8m9uka
-4m1uke
-mu5la
-mu4leg
-mule6s
-mull2
-mull6s7
-mul6tiv
-4muly
-7mum
-mu3mi
-mum2s
-mun2c
-munes6
-4mung
-mun6ge.
-6m5univ
-mun3k
-munn5s6
-mun4t3r
-mu6ra.
-mu4re.
-2murn
-murs4
-6murt
-m2us
-mu4se.
-mu4ses4
-mu4sé
-mu2s3k
-muske6l5a
-must4
-mus5tan
-2mut
-3mu1ta
-mu8ta.
-mutsa8la
-mut7t6r
-2m1v
-mvak5t
-mva6la
-mvari6
-mveg5s4
-mvi7e6
-mvi6se.
-2mw
-1my
-my5a
-myg4ga
-my3ke
-myk4kes
-myk3l
-my8kr
-my2ra
-my9ran
-my9rar
-my1re
-my4re.
-4myrk
-m5yrke
-my4r5u
-mys3
-my6sa
-my4se.
-my4so
-my4te.
-mytt6s5
-5mæ
-mæ6la.
-1mø
-møb3l
-mø7des
-mø6e
-mø9ens
-møkk6a
-m3økn
-2møko
-mø6na
-mø4ne.
-møne9s
-mø8nest
-6m5ønsk
-mø2o
-3mørke
-mør4k5r
-mør5sm
-mør3ø
-mø5se
-7møt
-mø9tas
-mø4tere
-møt9t
-2møy
-møy9ar
-m5øys.
-1må
-2må.
-må5a
-6måenh
-må7g2
-må1k
-må4ka.
-må4ke.
-må4kes
-m6ål
-må5lar
-må4le.
-må6led
-måle3i
-målø6pe.
-må4ne5s6
-må9nese
-må8pa.
-må4pe.
-må7pl
-2mår
-måra6r
-må1re
-må1ro
-må1ru
-må1s4
-må6tak
-6måtf
-må5tr
-må3tø
-1na
-na6ans
-2nabo
-7na7bortr
-na6bot
-4naby
-na4ded
-na8dem
-nadi4
-n3adop
-nad2s1
-4nadv
-8naf
-n1aff
-nafo7r
-na3fr
-naf7t
-na8ga.
-na3ge
-4nagen
-nag3s4
-nagså5
-na7gø
-6nah
-4nair
-2nak
-n6akk
-nak7ka
-nak6ko
-5nakl
-na1kr
-n1aks
-nak8sa
-nak8se.
-8n1akt
-nak6ta.
-na7kv
-na9lag
-na6lare
-6nalarv
-na7leg
-na4l3ei
-na4lek
-nal5epo
-na4les
-na4l5ett
-na4lev
-nal5g
-nal6ge.
-na4lil
-nal6lag
-nal4løp
-nal3op
-nal5s2
-nal3t
-na3lur
-2naly
-na2l5ø
-4nalå
-na3lå5r
-5nam.
-na7mere
-na5mes
-na5mo9
-5nams
-2namø
-9nan.
-4nana
-n3anal
-n6ane
-nanfø8
-4n5angr
-nan5k
-nan6ke.
-4n3anl
-6n5anle
-nan4ne
-na4n5o
-n4n5ans
-nan4sin
-nan4skj
-nan4s5t
-4nany
-na7o
-na5pe
-nape4s
-nap3s4
-na7p8
-n4ar.
-na4rap
-2narb
-nar5dr
-4narea
-nar7ei
-4na5rek
-nari4e5n
-7nariksk
-4narkiv
-8n7arm
-6n5armé
-6n5arme
-nar8ma.
-nar5s
-nar8ste
-2nart
-nar6ta.
-nar5ti
-nar7v
-nar5ø
-nasa3r
-na4sas
-nas7h
-8nasik
-na4ski
-na2s5t4
-nasta5
-8nasu
-na1ta
-nate8k
-na7tem
-4natl
-4natom
-natori5e6
-nat8ra
-nat3sp
-nat6tak
-nat6tea
-naty5
-2nauk
-naus6p
-na6va.
-4navd
-6navf
-2navg
-2n3avh
-na1vi
-4n5avk
-4navl
-nav4les
-3navn
-6navo
-4navr
-n1avs
-4navt
-4n1b2
-n5ba2
-nba3d
-nba9ser
-nben4s
-nbo5et
-n6buf
-n6butr
-nbyr5
-nbø9le
-nbø6n
-n1c
-n5ca
-ncel5
-n3che
-nch3ei
-n6cot
-n2cy1
-8nd
-n7daa.
-n6dabi
-n4dad
-nda5f
-n7dag4
-ndags5
-n4daks
-n3dal
-n4dalf
-n4d5all
-ndals3
-n4dark
-n6d3art
-n8dask
-nda5tal
-nd5d4
-n3de.
-nde5a
-n2deb
-n2ded
-n5defi
-nd1ei
-nd4ein
-nd6ek
-n4dekl
-n4deko
-n5d4e5l
-nde4le.
-n4delik
-ndel4sk
-ndel4st
-nde6lt
-n2dem
-n5dem.
-nde5mo
-n5den.
-n6dener
-n5dens
-n2de5o2
-n2dep
-n4derab
-n4deras
-n4derei
-n4derim
-nd6erk
-nderla6ga
-n4desi
-n4dest
-n4desu
-n1dé
-ndi4en
-n4d3int
-ndi6sk
-nditori5
-nditorie6
-ndit4t5a
-nd3jer
-nd1ju
-nd5k
-nd4lem
-nd4lese
-nd4lest
-nd4lev
-n8d7m
-ndo9a
-n6dob
-n6d5okk
-nd4om4s3
-n2doo
-nd1op
-n2dor
-nd3org
-nd5orm
-n6dote
-nd5rae
-n4d3ram
-nd3ran
-nd6rek
-ndre4ra
-nd5resen
-nd5rett
-nd1ri
-n1dro
-nd4sag
-nds3ak
-nd4s5amb
-nds5elv
-nds5ende
-nd4ser
-nd4sje
-nd4skj
-nds7kul
-ndsla6ga
-nds6lett
-nd7spu
-nd3s4te
-nds9teg
-nds5trek
-nd5stry
-ndta6ka.
-n6duf
-ndu3is
-n4dun
-nd3ung
-ndun6ge.
-n2dup
-ndu6si
-ndus7k
-nd7v
-n2dyg
-ndy1k
-n2dys
-ndy5sp
-ndø5l
-n2d1øy
-1ne
-2nea
-5neae
-nea4g
-ne7a6le
-ne5alp
-ne5als
-nea9m6
-ne9a8r9an
-nea9ren
-ne1as
-6ne7av
-2neb
-3nebb
-4nebe
-ne4ble
-neck5
-2neda
-3nedal
-ned3d
-6n5eddik
-4nedeb
-4nedeg
-4nedel
-5nedg
-ne4di.
-nedi4s
-2nedo
-ned5over7
-ned1r
-ne6dre
-5neds
-ned3st
-6nedu
-4nedø
-ne5dår
-4neeg
-4neei
-2neek
-5ne4e4r5
-2nef
-n1eff
-n5eft
-2neg
-5negati
-ne3gla
-neg5lesp
-neg8r
-6negru
-6neh
-2nei
-n2eid
-nei8dan
-n5eig
-n2e1in
-n3eini
-5neir
-5n6eisk
-2nej
-2nek
-ne4ka.
-6nek2l
-ne3kn
-nek2r
-nek5rin
-n7ekser
-nek5t
-4nela
-nel3de
-4neled
-6nelegg
-7neleggj
-4nelei
-nelei5er
-4n3elem
-6nelê
-4nelid
-4neliga
-4nelis
-4nelit
-4neliv
-nel4lov
-nel7s
-2ne1lu
-4nely
-2nelæ
-2nelø
-nelø8pa
-4nelås
-2nema
-4n3emb
-4nemel
-4nemer
-6nemes
-2nemi
-nemie8
-6nemj
-nem6k
-5nemn
-nem5ne.
-nem7nel
-2nemo
-2nemu
-2nemy
-2nemø
-2nemå
-3nen
-4nena
-nen5at.
-6n5en6den
-6nendr
-nene4
-4nened
-4nenem
-ne3nes
-4nenesl
-4nenet
-nen5eta
-4nenev
-nen4ga.
-4n3enhe
-6nenhet
-4neni
-nen5se
-nent5ei
-6n3en5tr
-4nenu
-4neny
-4nenæ
-2neo
-5neo.
-ne5o4r
-7neos
-2nep
-ne5pe
-3n4er.
-4nerad
-6nerap
-3nerb
-4nerea
-4nered
-nere6de.
-4neref
-4nereg
-4nerek
-4nerent
-4nerep
-ne5res
-4neress
-4neresu
-4neret
-4nerev
-4nerfar
-4ner2g
-ner3ga
-ner3ge
-4ne3rib
-4nerik
-4nerit
-ne4ri9v
-5nerl
-nerla8ga
-n3erob
-6neroc
-ne7rof
-ne5rok
-4nerom
-ne5rot
-ne1r4ov
-n6ers.
-ner7se
-ner5s4i
-ners4p
-ners8ten
-4ne3rul
-ner5un
-2nery
-3neryr
-4nerør
-2nerå
-2nesa
-ne4sa.
-5nesar
-4nesc
-4nese
-6nesek
-nes6er
-5nesets
-nes5eva
-ne3si
-nes5ind
-4nesit
-2ne5sj
-ne5skam
-4ne5skar
-nesk4e
-4neski
-5neskins
-4neskj
-4ne5sko
-4neskr
-6nesku
-2nesl
-ne3sli
-ne7slø
-nes6mi
-6nesn
-ne7snø
-2neso
-3nesot
-2nesp
-nes6sam
-nes4stu
-5nest.
-4nestas
-nes9te.
-4nesto
-nes5tor
-4ne3str
-4nestu
-4nestø
-2nesu
-2ne1sv
-nes8va
-6nesy
-4nesæ
-5nesøy
-4ne5så
-neså5re
-3net.
-2neta
-4netaks
-n7e8tas
-neta6le.
-ne3te
-5nete.
-4ne3ti
-6netid
-2netj
-2ne5to
-6netom
-2net4r
-3nets
-net5s4p
-nett3a4
-net6tel
-2netu
-ne4tv
-4nety
-4netå
-netå5ker
-2neu
-neu1r
-ne5us
-ne6va.
-ne4ve.
-6ne8vent
-5nevik
-nevi8sa
-3nevn
-nev1r
-ne4y5t
-2neø
-4neå
-1né
-4néb
-4néd
-2néf
-6néh
-2nél
-4ném
-6néo
-2nép
-5nér
-4név
-4néå
-4n1f
-nfall4
-nfalls5
-nfan5t
-n6foa
-n4fob
-n4fole
-n4fom
-n4fora
-nfor9en.
-nfos4
-nfø5des
-nføy8ed
-8ng
-n8g8ad
-n4gaf
-n6gag
-ng1ak
-ng5and.
-n8gan8da
-ng3ank
-n4g5arm
-n4gart
-ng5art.
-n5garta
-ngar5u
-n2gat
-ng5ato
-nga4ve.
-ng7avi
-ngd4
-ng4ded
-ng4del
-ng4dep
-ng3dr
-n4geda
-n4gela
-n3gen
-n4gena
-n7gene
-n4g3eng
-n6geno
-n4genu
-n3ger
-n4geret
-nge5run
-n2ges
-nge3sl
-n4geta
-n2ge7v
-ngfø4
-ng5g2
-ng5id
-ngjen5g
-ng1l
-n5glem
-ng4lu
-ng7n
-ngo4d
-ng5odd
-n7goe
-n3g4ok
-n8g7o8m
-ng9ome
-ng5ond
-ng7o6pe
-n2gor
-ng5ord
-ng3ork
-ngos6p
-n2got
-ng3ra.
-n5grad.
-ng5rand
-ng7rea
-ng3reg
-ng3ren
-n4grend
-n4grer
-ng5rest
-ng3ret
-ng3rev
-ng3rid
-ng3rin
-ng7ro.
-ng9roa
-ng7roe
-n5g6ros5
-ng3råd
-ng8sa.
-ngs5elv
-ng4sem
-ng4ses
-ng2sj
-ng2sk
-ng6skj
-ngs7leg
-ng5sløy
-ngsmå6la.
-ngs3ne
-ngs7tep
-ngst5rid
-ngstyr8ke.
-ngs9tør
-ng3und
-ngu5ru.
-ngvi4s
-ng5ye
-n1gø
-n2g1øy
-ngå8va
-ngå8ve.
-4n1h2
-nhat5
-nhet4s
-1ni
-ni1ak
-ni1a2n
-nian5dep
-ni2bl
-4niby
-4nibå
-4nicr
-n8ida
-ni4del
-ni7dele
-n5idé
-ni6do
-nid7r
-nids4
-nid5st
-4nieg
-ni1el
-7ni3e2n
-ni3er.
-nie5ri
-ni7ers
-ni5ert
-4n3i4fr
-ni5gla
-ni9glo
-2nih
-8nij
-ni3ke
-2nikj
-4ni5ko
-2nikr
-4nikv
-ni5l4i
-5nilu
-4nimar
-4nimas
-4nimo
-2nimp
-ni6n7al
-2n1ind
-4ninf
-ning3o
-nin5gr
-ning6s5
-ningse4
-nings5te
-2n1inj
-n1inn
-4ninnb
-4ninnh
-4ninns
-4ninnt
-2n1ins
-2n1int
-2ninv
-5nio.
-nion2
-nions3
-4niop
-7nios
-4ni5ov
-ni4pet
-ni9pet.
-ni9pets
-ni2pl
-nip3li
-nip5si
-4nir
-nir7kel
-4nisem
-ni5set
-nis5im
-4ni3skj
-nis4k3o
-ni9sol
-niso5ne
-niss4
-4nistas
-6nistat
-nis5tik
-4nistil
-ni3str
-4nisty
-4nistø
-6nisu
-6nisy
-n4it
-ni3ted
-6nitj
-ni4tog
-ni4tos
-nitt4r
-nitt4s3
-nitt6sk
-4nitu
-ni3ty
-nit5z
-nitær6e
-2niub
-ni4umf
-2niut
-4niva
-2nive
-ni8v7eg
-niv5ei8
-4n5ivo
-niv3s2
-6niå
-4n1j
-n6jah
-njav9
-n2jed
-n5jede.
-n4jee
-n6jei
-n2je1s
-n3jes.
-n2jet
-n3jet.
-njet6r
-n5jett
-2nk
-n1ka
-n2kak
-nk3aks
-nkal5l
-n2kau
-n4kedo
-n4keer
-n4keh
-nk5eie
-nkel5s
-nkelt3
-n4k5enh
-n8keno
-n4k5erfa
-nker4st
-n4ke1s4
-n6ketø
-n1ki
-n4kid
-n4kie
-nk3ier
-nk5ind
-nk7inf
-nk3inn
-nk7int
-n5kj
-nk1k4
-n1kla
-n5k6lang
-n7k4lis
-nk3lok
-n1klu
-nk3ly
-n3klæ
-nk1lå
-n1knu
-n1kny
-n3ko
-n4kof
-nkofi8
-nk5oks
-nko5le
-nkol4la
-n6kot
-n6kov
-n1kr
-n3krav
-n7k8ry
-nk1s2
-nk4tak
-nk6tal
-nk4tin
-nkt3sk
-n1ku
-nku4le.
-nkuri9
-nkurie8
-n4ku6t
-nk9ute
-n1kv
-nk3ve
-n7kvit
-n6kvo
-n9ky
-n1kø
-n1kå
-nkå6pa
-4n1l
-nland9a
-nland6se
-n5le
-nlei7er.
-nle8ma.
-nli4en.
-n3lj
-nlu4e
-nly6de.
-nly6di
-nly4se.
-nlø6pa.
-n7lå
-4n3m
-nma4le.
-nmik3
-nmi8l
-nmini6
-nmo6se.
-nmusik7k
-nmå6la.
-4nn
-nn4ab
-n2nad
-nn5ad.
-nn9aft
-nn5air
-n6n1ak
-n4nala
-nn5alg
-n4name
-nn4an
-nn5ana
-n9nane
-nna8ni
-n4n5ank
-n5nanl
-n6n7anta
-n9nar.
-n4nari
-n6nasi
-n4nask
-n2nat
-n2nav
-nn3avl
-nnbo9e
-nnbu9e
-nn5d2
-nndø4
-nndør3
-n5nea.
-n5neap
-n5nebar
-nnebe8r
-n5nebu
-n4nedi
-n2nee
-n6nef
-nn1ei
-n3neke
-n4nelo
-n3n4en
-nne6nat
-nne4n3o
-n9ner.
-n4nerel
-n4nero
-n7nes.
-n6nesj
-n5nes4la
-n4ne3st
-n5n6et.
-n4nesø
-n4nete
-n2nev
-n2ney
-nn7g8
-nnhø8re.
-n4nid
-nn3ide
-nni3e
-n2nim
-nn7inf
-n5nis
-nni4sj
-nni4s3t6
-nn7k2
-nnle6ge.
-nnlø6pe.
-n4no.
-nn5of
-nno2m1
-nn6oms
-nnomsy8na
-nn1op
-n2n1o4r
-nn7ord
-n4n3o4ve
-nn9r
-nnsa9ka
-nn4s5amb
-nns5and
-nns3ar
-nn5seg
-nnsei8g
-nn4s3em
-nn6s5enk
-nn4s3es
-nnse6te.
-nnsi7da
-nn4s3in
-nn4s5i6s
-nn6s5jak
-nns5kan
-nn5s4kli
-nns5op
-nns3or
-nnst6
-nn6s5tab
-nns5tal
-nns5telt
-nns4ten
-nns5tep
-nns7tin
-nns5top
-nn6s5tre
-nns5tro
-nns3tv
-nn4s5ul
-nns3va
-nn6s5vo
-nnsy8na
-nn2sø
-nns3øk
-nn3så5r
-nn7t4
-nnte6se.
-nnto9ga
-nnu1i
-nn6ung
-nn1ut
-nnvi4s
-nn1yn
-nny4t
-nn7øk
-nn1øv
-nn1å
-1no
-noa4g
-no1ak
-5noane
-no7ar.
-2nob
-nobe4l
-no4bl
-nob5le
-no3b4r
-no5co
-nodi4e5n
-3noe
-4noef
-4noei
-4noek
-4noent
-2nof
-n1off
-3no3ft
-n6ogra
-no5id
-no3in
-2nok
-no1ki
-nok8r
-nok6se.
-n3oksi
-no9le
-2nolj
-no6mid
-no6mik
-no4mil
-4nomj
-nom9m
-nom7s2
-5nomy
-non1s4
-non5t
-2noo
-2nop
-n1opp
-nopp7s8
-no1r4a
-no5ran
-no5rar
-no5ras
-nor4da
-nor6d5end
-4nordn
-nor4d5r
-nord3s4
-nor4dø
-no9ree
-no3rek
-no3ren
-no7ret
-nor5g
-3norge
-norges5
-n3o4rie
-7norit
-4nork
-nor6kla
-nor6kle
-n4orm
-normlø7se
-nor2s
-nors6ka.
-no3ræ
-no4sel
-no4ses
-nose8te.
-4nosp
-no3stj
-nostra4
-2nosy
-no4ta.
-no4te.
-note5i
-5notek
-no4tel
-no4tes
-not3s
-4noty
-4nou
-no1v
-no3ve
-4no5vi
-4n5ovn
-7nó
-6n3p2
-n5pe
-npo8ta
-n4påk
-n3q
-2n1r2
-n9ra
-nra8na
-nra8sa
-n3re
-n4reb
-nrei7e
-n6renem
-n6reo
-n6ri.
-nro6de.
-nro6t
-nry6
-nrå8da
-6ns
-n1sa.
-ns1a4d
-n5sag
-n5sakk
-n5sa4kr
-ns3aks
-nsak6se.
-6n5akti
-ns5akv
-n3sala
-ns3ald
-n6s5alp
-n5sane
-n4sanf
-n5s6ann
-n5sanse
-ns5ansi
-ns5ant
-n5saren.
-ns6arm
-n6sart
-n4sati
-n1sch
-n3sco
-nse9a8l
-n2sed
-ns5edd
-ns8ede
-n2see
-nse5ei
-nse6er
-n6sef
-n2seg
-ns5ege
-nsei6d
-ns5eie.
-ns9eig
-n4seks
-n4s3elv
-n2sem
-n5sen.
-n5sene.
-n4sener
-n9senes
-n4senet
-n4seni
-n7sens
-n3ser.
-n4sera
-nseri7e6
-n4sesa
-n4sesi
-n4se3sk
-nse3sl
-n4ses4p
-n4sest
-n6sesu
-n4se3s4v
-n4sete
-n9sets
-n2seu
-ns5fr
-n2sh
-ns3ha
-ns7he
-ns5hi
-nsi5de.
-nsi4ent
-nsi6er.
-nsin5d
-n3s4ing
-ns3inn
-n4sinte
-nsi8ra
-nsis7k
-ns3jak
-n4sjav
-n5sjef
-n6s5jord
-n4skan
-n6s5kauk
-ns7kele
-ns4kete
-n9skim
-ns5kir
-n5skis
-n6skja
-n6skjele
-ns5kjen
-n3skjæ
-n8s7kåp
-nskog6s
-ns4kolli
-ns5kor
-ns3kro
-nsku9et
-n4skug
-ns5kuli
-n5skum
-ns1kv
-n5s6ky.
-n5s4kye
-n5skyss
-n5slang
-n7slarar
-ns5las
-nsle6ge.
-n3s4lekt
-ns6leri
-ns5lid
-n5slyn
-n1slå
-ns3mi
-n4smal
-n4s5mo
-n4smur
-n4smus
-nsmå6la.
-n5s4nar
-ns5nes
-nso4d
-ns1of
-n3s2ok
-n1sol
-n4sond
-nson6de.
-nso5ris
-ns1ov
-n3sovn
-nspa9ra
-ns5pels
-n5spet
-ns1pr
-n6spros
-n7spur
-ns7s6
-nsse4e
-nsså5
-ns4ta.
-n4stak
-n4stag
-ns5take
-n3stam
-n4stank
-nst5art
-nstar8ta.
-ns4tau
-n3s6ted
-n3s4tei
-ns4tel
-nste6ma.
-ns5tenk
-n6step
-n5s4tik
-ns5tild
-ns7tilf
-n4s5tils
-ns4tin
-ns4t3i4s
-ns1tj
-n5sto.
-n3stru
-ns7trøy
-n3stue
-n6stuk
-ns5tur
-nst3ut
-n1su
-ns1uk
-n4sung
-n5sup
-ns5vang
-nsva9ra
-n2s3ve
-ns9veg
-ns5verd
-ns5vern
-ns1vi
-n5s4vill
-ns4vind
-ns9vis
-n4svu
-n3s4væ
-nsy4d
-ns1yt
-n5søn
-n4s1øv
-ns5øya
-n5såpe
-nså7pen
-ns7ås.
-6n1t
-n5tab
-n4tagr
-nta4lan
-ntall4
-nta5na.
-n4t5and
-nt3anl
-nt4anv
-nt3app
-n7tart
-n6t5arvi
-nt6as
-nta5sia
-nt4at
-nt3avi
-nt5avr
-nt7avs
-n2tea
-n5teat
-n2tee
-n4tef
-n4tege
-n4tegi
-n7tegn
-n2tei
-nt5eini
-nte5ins
-n5teis
-n4teka
-n7tekn
-n4tekse
-n9teleg
-n5telig
-n5tell
-n4tels
-n9telt
-nte4ma.
-nt3emb
-nte4mis
-n5ten.
-n4te7na
-n5tene.
-n4t3enh
-n5tens
-n2teo
-n5teori
-n5tepp
-nt4er
-n5ter.
-n7terek
-n6terest
-nte6risk
-nteriø7ra.
-n5ters
-n7tes.
-n4tesel
-n4teta
-n4tete
-nt4e3u
-nt5e4va
-nt9g
-nti1a
-n4tiat
-n4tid
-n5tiem
-n4tig
-n4tikap
-n5tiki
-n4tikl
-nti5kli
-n5tile
-nti3lo
-n9time.
-n7times
-n4t3ind
-nti6net
-n6tini
-n2tio
-n2tip
-n4tisa
-n4ti5sti
-nt5l
-nt5n
-nto3a
-n2tob
-nt5omf
-nt5omn
-nt3oms
-n2t1op
-n5tor.
-n5to5re
-n6torg
-n2tou
-nt1ov
-nt6ran
-n4trep
-n5trer
-nt5resi
-ntres9kjare
-n4t3rin
-ntrol6li
-n6trom
-n6trul
-ntrøy4
-nt5skj
-nt5s6la
-nts2t
-nt3t4
-n6t7ub
-ntu9e
-ntu4l
-n2t1u2n
-n4t5uro
-n2t1ut
-ntva8la
-nty6e
-ntyr3s
-nt7år.
-1nu
-4nu.
-nu3an
-nu4av
-nuft4
-nufts5
-2nug
-nug6la
-4nu4h
-nuit8e
-nuk5
-nul9t8
-4nulu
-6nuly
-nu9me
-2n1un
-nun4ge.
-nuo2
-6nup
-nu3pl
-nu4re
-nu5sa.
-nu5sen
-nu7ser
-nus4k5l
-nus7l
-nuss4
-nu6st
-nus3ta
-2nut
-nu7ta
-nu3te.
-nute6r
-nut5eri
-n7utl
-nu6ume
-6n1v
-nva6la
-nvand5
-nverle9
-nves1
-n5vi
-nvi4et
-nvi4ka.
-nvi5ke
-n3vu
-nvæ8ra
-n3w
-1ny
-ny5ar.
-ny9ast
-2nyd
-ny4de.
-4nyef
-4nyg
-ny5ge
-5n6yhe
-ny3ke
-ny3k4le
-4nyko
-ny1lo
-2nyn
-nyn8da.
-nyn4de.
-4nyo
-4nyp
-ny8pa
-ny6ra.
-ny4re.
-ny7rev
-ny4ru
-ny1s
-ny5se
-ny9s6k
-nyst4
-nystu4
-ny3te
-ny3tr
-2nyv
-ny8va.
-ny5vak
-ny8ve.
-4nyø
-n1z
-1næ1
-næ8ra.
-nær9and
-næ8rast.
-1nø
-nø2da
-4nødd
-nødde5
-nød3sk
-nød5sto
-nø9dun
-2nøe
-4nøf
-nø1fl
-nø1fr
-nø7gr
-4nøko
-4nøks
-nø4le.
-nø9mo
-nø5mu
-nø3p4
-nø7ra
-nø6red
-nø1ry
-nø3se
-nø1sk
-nøs4l
-nø7te
-nø7tr
-n6øtt
-nøtt6r
-nøv4d
-nø3ver
-nøy1
-2n1øy.
-nøy8a9n
-n7øyh
-4nøys
-n3øys.
-nå6as
-1nåd
-nå5ded
-nå8en
-nå6et
-nå8j
-n1å2k4
-1nål
-nå2la
-nå5lev
-nå8ma
-nån6de.
-n1å4p
-nåp8na
-n1å6r
-nå2s
-nå5sa
-nåse4
-2oa
-oa5c
-o1af
-oa4k
-oak6kana
-oak4ku
-o1all
-o3alt
-o1a2m
-o3a6n
-o9and
-o1a6p
-oar6d7e
-oar4d5in
-oa4r5e4g
-oa4r5enh
-oa6ré
-oa4r5i
-oar5m
-oa9té
-o1au
-o1a4v
-2o3ba
-obakk8s
-obb4l
-ob4bo
-ob4b5r
-ob4b3u
-ob4e
-o4bea
-ober5et
-ober4s
-obers5ta
-obers5te
-o3bes
-2o3bi
-obi5e6
-1ob1j
-o1b2l
-ob5la.
-ob3le.
-ob3len
-o2b5li
-3oblig
-ob4lo
-o1b4o
-obo9a
-2obr
-ob5rar
-ob1re
-ob1ri
-3obser
-ob5st
-2o3bu
-2oby
-obyl5
-o5bø
-o3bå
-4oc
-ock5ers
-o5cy
-2o1d
-o6dab
-oda4f
-od7att
-odd5ei
-od4del
-od4dest
-od9do
-od4e
-o2deb
-o6d5ei
-o4deko
-o5deku
-o2dep
-oderle7
-o2des
-o5det.
-o5dets
-odie4n
-o4d3igl
-o4dj
-odko5
-od3oml
-od3ov
-o2d5re
-o4d3rø
-od3sk
-ods4ka
-od3s4po
-od5s4tol
-ods8t
-odu7s
-o4dy.
-o4dyb
-od5øk
-o5døs
-od5øy
-o2d1å6
-6o1e
-oe6f
-o4ein
-oek6s
-oe2l
-oe4mu
-oe2n
-oen5a
-o7ene
-oeng5d
-oen2g7r
-oeng3s
-oeng3u
-o5ens4
-o7ens.
-oen5t
-o3e4re
-o6erer
-oer8ma
-o3ersk
-o2es
-oe6sip
-oe6sit
-oes8ka
-oes8ke.
-o4etan
-oet2h
-oe5ti
-oev6ne.
-2ofa
-o2fa.
-ofag6a
-o4fara
-ofa4se
-o2fav
-o2feb
-o4fei
-o4fera
-o4fe3st
-o1fé
-off9and
-of4fek
-of5fes
-of6fia
-off5id
-of6fr
-of2fu
-of6fy
-2ofi
-o4fip
-o1fl
-of5le
-2ofo
-o6fra.
-of9ras
-of1re
-6o5fri
-of8sa
-of8se.
-6oft
-of4tel
-oft2s3
-2ofy
-2og
-o2ga.
-og7ank
-o4gare
-o2g7av
-4oge
-o2ge.
-o4ged
-og1ei
-oge7na.
-o3get
-og4gera
-og4g5j
-ogg3s4
-og6g7u
-ogi3a4
-ogie2
-o4giev
-o2gif
-o6gig
-o4giko
-o2gil
-o2gim
-o2gin
-o3ging
-o2gi1o
-o6gista
-o6gi7str
-o2giv
-og5jer
-og7la
-ogly7
-og4ned
-5o4g5ni
-og6nel
-o5g6nos
-o2go.
-og6ra
-og4re.
-o4g3reg
-o4g3rei
-og4rer
-og7rett
-o4g3ri
-og3ryd
-o4g5rø
-og5rå
-og3s4
-ogs4a
-ogs6an
-og3s2e
-og1sk
-ogs4kj
-og5sl
-ogs4le
-og1s4p
-ogs5pa
-og5ste
-og3sti
-og4s5tj
-ogs4to
-ogs4tr
-ogs5t6ra
-og5stre
-og5sy
-5og5s6y4v3
-ogt6r
-5o4g5åt
-og1un
-og5ø
-og7ås
-2o1h6
-ohe5te
-ohm9a
-o4ho.
-ohø4
-oia4
-o1i2d9i
-o1idr
-oid5t
-oie4n
-oi5er
-oi6es
-oi5k
-oi4la
-o1im
-o3in.
-o1ing
-oi2n1o4
-o4insp
-oi6r
-o1is
-o2is.
-o6isa
-o2ise
-o4isi
-4o1j
-o8je.
-o4jo.
-o1ka
-ok7aft
-ok1ak
-oka4n5i6
-ok2ar
-ok5ark
-o3kas
-ok1ef
-ok5els5
-ok5elv
-o5k6en
-o4kesk
-o6kev
-o1kj
-ok4kand
-4okke
-ok6kera
-ok4ke5s
-ok3kje
-ok3ko.
-ok5kol
-okk8s7m
-ok4kun
-4okl
-ok8la.
-okla5m
-ok8le.
-o1klu
-ok7lut
-oklå5
-2okn
-okna8sa
-o3ko
-o8ko.
-ok8ol
-o4k3oms
-ok3omt
-oko5pe
-ok5opp
-ok3orm
-oko4s
-oko9se
-o6kov
-o1kr
-ok5reo
-o6kret
-o4k5ru
-oks4al
-oks4e
-ok4sek
-okse5kr
-ok4sem
-ok7sen
-ok6serin
-ok4ses
-okse9te
-ok5s4i
-oksi7da
-okst2
-oks6ti
-ok6s5vi
-oks6tr
-ok5ta
-3oktan
-ok8t8a8v7
-ok3ti
-ok5to
-okto4r5i
-okt6r
-o1ku
-ok5u4k
-oku8le.
-oku6t
-ok7ute
-o5kva
-o6kvak
-o3kvi
-ok5øy
-o3kå
-8ol.
-4o1la
-ola6ded
-ola8ga
-ol5anl
-ol3ant
-o9lar.
-o6larbe
-ola5t
-olber4
-olbo7e
-olbo7ge.
-ol4bol
-olbu7
-2old
-ol7dan
-ol5de.
-ol4dem
-ol4dest
-ol5det
-ol3do
-oldo7ve7
-ol5drev
-ol3dri
-old3s4kr
-2ole
-o5leaks
-o6leb
-o2led
-o2lef
-ol5eig
-ole5in
-o2lek
-o7leki
-o2lel
-olele6ge.
-o2lem
-o5lem.
-o5lems
-o7lene.
-o9lenes
-o4lenet
-o4leni
-o4leno
-o6lered
-o4leru
-o2les
-ole5sta
-ole5str
-o9let.
-o2lev
-o1lé
-ol4f5i
-ol4fj
-ol3g4e
-ol1g4l
-2oli
-o4liba
-oli9e6n
-oli7ert
-oli5ne
-3o6lj
-olke3s4
-ol4kese
-ol4kesk
-ol4kest
-ol2k3l
-ol9ko
-ol6ku
-ol5kv
-ol5la.
-oll3ak
-ol4lam
-ol7le.
-ol4led
-ol4lel
-ol7len
-ol4les
-ol6linj
-ol4log
-ol4lom
-ol5los
-ol4lov
-oll5over
-olls4t
-oll5sv
-ol2lu
-ol4løp
-ol6løs
-ol6løy
-ol2lå
-olme5s
-ol4mest
-ol4må
-ol9n
-2o1lo
-o4lo.
-o5loan
-o3loe
-o4lof
-olo3i
-ol5oks
-ol3oms
-ol3op
-o6l7os.
-o6l7o6se
-o6l5osf
-olo5ve
-o8l7ovn
-ol4ped
-ol7so
-ols8t
-ol5sva
-ols5vik
-ol3ted
-ol5tep
-ol2tr
-ol6t7ra
-olt5re.
-olt5rer
-olt5ret
-o1lu
-olu5l
-o4l3ung
-olun8ge.
-o4l5ur
-ol5va
-ol1vo
-o1ly
-oly7d
-ol5ør
-o1lå
-2om.
-2oma
-om3ald
-o2ma2m
-om5ang
-oma4nif
-omann4
-oman5t
-om3ars
-omar7ø8
-om4as
-om1av
-omb6
-om4bet
-om4bis
-om3bl
-5ombod
-1ombu
-2ome
-o2m1ek
-o5meka
-o7menes
-omer6s
-o6mese
-o5met
-ome4tak
-ome7tar
-om1eu
-3omfan
-3omgre
-8omh
-o2mia
-o2mib
-omi3e4
-o4miek
-o2mig
-o7mikk
-o7mine
-om7inn
-om3in5s
-o4mio
-o2mir
-o4misj
-o4mist
-o2miu
-om1j
-2omm
-om6mat
-om4med
-om4metr
-3ommø
-2omo
-o4mofo
-om1op
-omo1v
-omp2
-ompa3t
-1omr
-2omre
-2omro
-2omru
-6oms.
-oms3al
-om4sek
-3omset
-omsko9d
-omsku9la
-om4som
-oms3un
-oms4ø
-omt2
-3omtal
-om4tes
-om3ti
-om3tv
-o2m1u
-o3mus
-omvæ8re.
-6omy
-omyr8ke.
-o2møk
-omø4r
-om5øy6
-o5må
-2on
-on3abo
-o4nac
-o6nak
-o4n3ang
-o4nap
-on3app
-o6narb
-o4n3arg
-o4n3arv
-o7n8a7sj
-onat5r
-o2n1a4v
-on5b
-on4dar
-onder6e
-ond3re
-on4d5ri
-onds4i
-o4ne.
-on5eie
-o4nele
-o7nell
-o2nem
-o3ner
-o4neru
-onesi6
-o4nesk
-o4ne3s8t
-o4nete
-o2nev
-on7f
-on7ga.
-ong3d
-on5ge.
-on6ged
-onges4
-on5gi
-on5go.
-ong2r
-on8gro
-ong9ros
-ongs4j
-on2gu
-on4gy
-on4g5ø
-o9ni.
-o2n3i2d
-oni1e
-o2nil
-on5ild
-o2nim
-oni6mi
-on3inf
-o6n7inn
-o2ni1o
-o4ni5p
-o6niso
-on3j
-on1k
-on5k6a
-3onkel
-on5k6i
-on4kle
-on5ku
-onle6g
-on5nad
-on3ni
-on5ny
-o4no.
-o5nor.
-o4no4v
-on3ove
-on4sh
-ons1i
-onsi3s
-onsi4v
-ons1k4
-ons7ke
-ons1l
-onsla6ga
-onstitue9ra
-onstitue9re
-onst5rum
-ons5und
-ons1v
-on4sve
-ons1å
-ont6a
-on3te
-on4ted
-on5ten
-on5ti
-on4tok
-on5tor
-ont2r
-on7ul8
-on5ur
-onu4sk
-o4n5ø4
-on6øy.
-on7å6
-2oo
-ood1s
-o1off
-oo2k1
-oo5k8a
-ook5es
-ool7a
-oo4m5i
-oo6mo
-o1o2p
-oopa8
-oop9an
-oo4pe
-oop5en
-oop5et
-o6opi
-o1o4r
-oor6da
-oo5s
-oo6sp
-o1o4v
-2op.
-2opa
-o4pab
-o2pak
-opan9d
-o4pa3re
-o7paren
-o4pasj
-o4pau
-o3pea
-ope1i
-opel6lø
-2open
-o4pena
-o9pend
-o4penet
-o7pent
-o2per
-6o3per.
-3opera
-ope6rar
-o7pero
-o5pert
-2opet
-o4peta
-4oph
-o1pi
-o4piek
-oping9s
-o4pir
-2opl
-o1pla
-o4p5land
-op3li
-op9lu
-op4na.
-op4ne
-2o3po
-2opp.
-4oppa
-op4p5art
-op4pas
-4oppe
-1oppg
-op4pi.
-op6pia
-op4pis
-opp3li
-3opply
-op6poe
-op6pr
-opp5rop
-opp5und
-opp1å2
-2o1pr
-op6re
-op7ru
-op7rå
-op6sa.
-o8p8si
-op2t1r
-o4q
-4or.
-o6r7add
-or3adr
-o2rag
-or1ak
-2oral
-or5ald
-o4r5alg
-oral4st
-or6alt.
-o3r4am
-o4rana
-o3rane
-o4rang
-o4rans
-or6ap
-or3att
-o4rau
-ora3uk
-or1a4v
-4orb
-orbit5
-or7by
-4orc
-orda9ta
-or3dea
-6ordel
-ord7e6pl
-or7dik
-ordi4s
-or4d5ise
-ord3it
-1ordn
-ordre8gi.
-or7d6rø
-ordsa6me.
-ords6e
-ord3st
-ordy9ra
-8ore
-orear8a
-orear8e
-o5rebra
-o8redi
-or1ei
-or1el
-o4rela
-o6reld
-ore6na.
-ore4ned
-ore4net
-or3enk
-oren3s
-ore6o5g6
-o6rerf
-o4rero
-ore1s2
-o5resc
-ores6te
-o4reta
-or9et8n
-o6retv
-o2rev
-2orf
-orfa6re.
-orfi7ne
-orfø9re.
-1or3g4a
-4orga.
-or3ge
-or5ger
-orge4s
-orgi6e5ne
-org4sk
-orha9g
-orha9le
-o1ri
-o3ria
-ori5b4
-ori4e5ne
-5orient
-o7riet
-o2rig
-ori7ka
-o6rim
-or3ind
-or3ink
-or3inn
-or3ins
-oriro8
-6oris
-oris4a
-6orit
-o4riti
-oriti6me.
-or5ka
-3orkes
-or5ko
-orko6se.
-ork7s2
-6orl
-orla7te
-or5le
-orm6al5t
-orm5ang
-or6map
-or5mel
-or4m3un
-ormæ9
-or4nar
-orned5
-orne6dr
-or5net
-or4nol
-orn3t
-4oro
-o3roa
-o3roe
-or3off
-o5rog
-oro5i
-o1ron
-or1op
-o4r1or
-oror9da
-o5rosa
-o5rot
-or3ove
-or5ovn
-orpe6s
-4orr
-2ors
-ors5alt
-or5sen
-or4serk
-orse9ta
-orse7te.
-or3si
-ors5kar
-orsk5ei4
-ors8k9l
-ors4ku
-or1s4l
-orsmå8la
-or1sn
-or3s2o
-orso9na
-orso9ne
-orso9v
-ors4pa
-ors4ten
-or1su
-orsva9re
-or3sy
-or9sø
-2ort
-or4t3ak
-orta8la.
-or4t5and
-orta9pe
-or4t5av
-orte5i6g
-or4tek
-or3tem
-or6t5erf
-or8t7erm
-or5tii
-or7til
-or5tis
-3ortod
-or6tok
-orto9ne
-orto4r
-ort5ori
-or4tou
-ort5res
-ort5råd
-ortå4
-or4t3år
-or1u
-oru8d
-or9ude
-oru4h
-o5rum
-oru4t5
-oruta4
-or4utf
-orva9ra
-or5veg
-orv3s
-4ory
-o7rya
-or1yn
-2orø
-or9ø8k
-orøk8t
-or5ør
-or3ø4v
-orøv8d
-or1øy
-or5ås
-2os
-o1sa
-o4sa5b
-o6sad
-o2saf
-o4saku
-6o5sau
-osbi7
-osefi5
-o2seg
-o5selei
-o2sem
-os2en
-o6sena
-ose5sl
-ose5sm
-oses4sk
-oses6sp
-oses4st
-o4seu
-osfa9ta
-os2hi
-os7his
-osi6e7ne
-osi5ere
-osi5ert
-o2s1ing
-osk3ei
-oskei6e
-o4skil
-osk9lar
-osk5len
-o1sko
-osko5p
-o3skri
-os8k3v
-os2l
-os3le
-oslo1
-os2lo5d4
-os5lu
-os5lø
-os9ma
-os5me
-os3mo
-o2sn
-o3so
-os7ove
-os6pa.
-os6pe.
-os4pil
-os4por
-os4sek
-os3sem
-os5sens
-osseri7e6
-osse5v
-ossis5te
-os6ski
-oss3kj
-os4s5ko
-oss9l
-os6spa
-oss7tro
-os7sty
-os8sv
-ost5adr
-os5tal
-osta5le
-o8ste.
-os4teg
-ost5egg
-os4tek
-ost6el
-os5teo
-o4sti.
-o8stia
-o4stie
-o4stin
-os5tis
-ost1o
-os6tons
-os6trad
-ost5ran
-ost3re
-o3stro
-ost5rup
-ost7rå
-o5stø
-os1v
-os5øy
-os7år
-2ot
-o1ta
-o5tad
-ota4l5a
-ot5ald
-otal7ev
-ota4lov
-o9tane
-o9tar.
-ot3arg
-o8t9arm
-o5tas
-ote7d
-ot6ei
-ote5int
-otek5i
-ote6k7la
-otekla8ga
-ote4kle
-ot5elem
-ote5lev
-otel6lan
-otel6lek
-otel4li
-otel8lø
-o4tena
-o4t5ende
-oten8de.
-oten4s5p
-o2teo
-o4teram
-o4teret
-o6terev
-o4tero
-oter5s
-ote5r8u
-o4terå
-otes6ter
-ote5sté
-otet5a
-otet5o
-otet3s6
-otfø4
-oti7ert
-oti2k
-otika3
-ot7i6ko
-o1tj
-o6tja
-ot5jer
-ot6nero
-otno7te.
-ot6nå
-o1to
-o2to.
-o4to3a
-o5toa.
-o2tob
-oto6en.
-o6tof
-ot3off
-o6toga
-o6togram
-o4toi
-o2tol
-oto5ne
-oto4ral
-otor5d
-o2tot
-o2tou
-o1tr
-ot7red
-ot5rer
-ot5rev
-o6t7ri
-o6t5rom
-o6t5rø
-ots5el
-ot6sh
-otshusvæ8
-ot4s3ki
-ots6op
-otsopp6
-ots5pr
-ots5tab
-ot7ste
-ots6å
-ot6tank
-ot5tas
-ot5tegn
-ot6tenk
-ot5tese
-ot5tin
-ot5toa
-ott4s3k
-otts5po
-otts4ti
-ot7tug
-ot4typ
-o1tu
-o6t5ut
-o1ty
-oty8e
-ot1yt
-o1tø
-ot7å
-oub8
-oul5l
-oun6ge.
-ou4r
-ou7ri
-ou5ro
-ou9sa
-out8a
-ouve4
-o5vae
-o1vak
-ovanfø8
-ovan9o
-ov3anv
-o7var.
-o6varb
-ova9re
-ov5art
-ov7arv
-oved3
-o1vei
-o1vel
-ove4la
-4oven
-o4vend
-o5vende
-ove6nya
-ove2r
-over3a
-ove7ra.
-ove9ras
-o6verdr
-overe6
-ove8r5es
-3o6verf
-3overg
-o5verks
-5overr
-5oversik
-overs4p
-over9v
-o1vet
-6ovh
-2o1vi
-oviso3
-2ovj
-6ovna
-ov4nes
-2ovni
-4ovo
-o5vo.
-o7vom
-ov1or
-o5vot
-ov1o2v
-ov5sal
-ov4sek
-ov4sen
-ov9ske
-ov4sle
-ovs1p
-ovs5te
-ov4sti
-ov7sun
-ovsy5k
-ovta6le.
-ovveg7i
-ow1
-owa8
-o7was
-owat2
-ow5h
-ox3
-oy9ar
-oys5l
-o1y2t
-o1za
-o3zy
-o1ø
-o1å
-ô6ra
-ô2re
-ôr5ei
-ô1ri
-ô4t
-ó9sa
-ó7t
-ó8v
-ò9re
-1pa
-4paa
-2pac
-pa8cen
-p5ad.
-pa3deb
-p4adg
-pads4
-2paj
-6pak.
-6paka
-4pake
-pak4kas
-pakke4s
-pakk7esl
-4pakti
-pa3kv
-3pa1la
-pa3le
-pa6le4o7
-pa7lim
-pal5in
-pal1j
-pal5lø
-5palm
-4palø
-2pam
-pa5me
-p3anal
-pa4nap
-pan9de
-pa5ne
-pang5s6
-pan3ka
-n7k8rea
-9panne.
-pan5se
-pan5sl
-pant8r
-4panv
-pa4ny
-2papa
-pa8pa.
-pa3pe
-4papo
-pap4pr
-4papr
-pap3ri
-pa4ra.
-5parad
-2parb
-4parek
-4parena
-par5ess
-par5g
-2pari
-pa4ri.
-pa3ris
-4parki
-par6k7l
-par4kv
-par3m8
-pa1ro
-4parr
-par8ra.
-par9s4
-par6tid
-par4tig
-par4tin
-par5u
-par7v
-parvi6
-6parø
-4parå
-p6as
-pasa5
-pa9se
-pase6r5
-4pasp
-3pass
-pas5sab
-pa4s3t
-pas4tar
-pas5ti
-pas9v
-pa1t
-pa3te
-pa4tist
-pa6tre
-p8atta
-pat6tak
-2patu
-p8at6v
-pau7k
-2pav
-pa4ve.
-3pa1vi
-2p1b6
-pba4ne.
-pbo6da
-pce6
-2p1d4
-pde4le.
-pdø2
-pdø9d
-1pe
-2pea
-peak3
-pe4a3re
-4peb
-pec3
-pe7d6a
-5pedas
-4pedd
-pe3de
-pedfø9
-pedi9e8
-pe6doa
-pe6don
-4pedr
-pe4dro
-4pedu
-4pedy6
-2pedø
-pe7då
-pee6
-pe3er
-2pef
-p5eft
-2peg
-p5egg
-peg8ge.
-pego4
-2peh
-pe4il
-pei4leg
-2pe1in
-pe6ism
-2pej
-2pek
-pe8ka.
-pek4l
-pek4tro
-pekt7ros
-8peku
-p6el
-4pela
-pe5l4aks
-5pelal
-pe5lar
-pel9d
-4peled
-pe4lef
-4pelei
-pe6lep
-4peler
-pe6lev
-6peliv
-6pelj
-pel4lo
-4pelov
-pel5s6e
-pel5s4i
-pel7st
-4pelu
-pe5lun
-2pely
-2pelø
-6pelå
-2pem
-p1emb
-pe4nan
-pe4n3ar
-pen3de
-6p5enden.
-4pener
-pe3net
-5peng8
-pen4gel
-pen7gl
-peni4n
-4peniv
-penly4
-pen7s8a
-pensa7k
-pensa8la
-pen5sk
-pen4s5l
-pen3s6m
-pen5s6o
-pens4t
-pen9sta
-pen7ste
-pen7tag
-pen5tr
-6peny
-2penå
-2peo
-pe7o6s
-2pep
-pep5ar.
-pep7p
-pera3a
-4pe4rab
-4perad
-pe4rai
-pe4ral
-4perap
-pera5t
-4perate
-5p6erc
-4pered
-4perei
-4perek
-4peresp
-4perest
-4peresu
-4peret
-pe4rev
-3peri
-perie8ns
-4pe5rik
-peri3s4
-4perit
-per7k8
-per6les
-per5mu
-per5n
-4pero
-pe3ros
-pero6se.
-per6regj
-per6rei
-5perro
-pers6m
-per4tro
-per4t5rå
-pervi6k
-2pery
-6perø
-4pe7rå
-2pe1s
-3pes.
-pe3se
-pe6se.
-pe7si
-pes8ka.
-p3eske
-pes4ke.
-6pesl
-pes4n
-5pess
-3pest.
-5peste.
-pes5til
-pe7t8
-4petab
-peta6ka
-4petal
-4petas
-4petau
-pe3te
-5pete.
-4peted
-6petei
-6petek
-4petel
-4petem
-pe3ti
-4petid
-4petil
-pe4tim
-2petj
-2peto
-2pet4r
-pe4t5ru
-pet1s6
-4pett
-2petu
-4petø
-4petå
-pe2u
-2pev
-peva8ne.
-pe5vi
-p5evn
-pev6ne.
-4peø
-4peå
-3pér
-2p1f
-3p6fenn
-p3fo
-p5fr
-pfri4
-pfø5re
-2p1g2
-pgjer4
-2p1h
-phav2
-pha9va
-phavs5
-3p4her
-phe9te
-phe7va
-phe5ve
-phi5li
-7pi3ane
-7piar
-pi4as
-7piase
-4piav
-4pib
-pi6ca.
-2pid
-pid3s2
-pie2n
-6piend
-pi3er.
-pi9ers
-2pif
-pi9fr
-pig5ge
-pig6g9u
-p7i6gj
-2pih
-6pii
-pi4keh
-pi6kel
-pike5r6o
-pi4ké
-8pikk
-pik3ko
-4pikl
-piku5
-pi5la
-pi6la.
-pi3lep
-pil4lag
-pillba6
-pil6led
-pil4leg
-pillega6
-pille6ra
-pil4le5s6
-pi1lo
-2pim
-pi4na.
-pi4ne.
-pi9ned
-pi4nel
-pine4v
-3ping
-pin6go
-ping3r
-ping5sk
-6pinns
-pin4sl
-pi2nø
-pio6n5an
-pion5s
-7pi2p
-pi4pi
-pip9la
-p8pip
-pi4rar
-pi4res
-pi4rut
-pisi9e
-pi4ski
-2piso
-piss4l
-pis4sp
-pis4st
-pis1t
-pis4t5r
-pis9t8ra.
-1pit
-pi9ta
-pita7la.
-pi5té
-2piti
-4pitj
-4pitr
-pit5t
-2piu
-2pi5v
-4piø
-4p5k4
-pka5v
-pka8va
-pl6
-8pl.
-2plad
-pla8de.
-p4lak
-p4lan.
-plan7de
-4plane.
-4p5lan5g
-plan5s
-plap3
-4p1lar
-p2las
-pla4st
-p2lat
-platina5
-2ple.
-2pled
-p8legi
-4pleis
-p2lek
-p6le5n4u
-ple5n4a
-ple6r5u
-ple8se.
-4plev
-p2li
-4plit
-p3liv
-pli7va
-plo4gj
-p4lo8i
-p1lok
-4p5lov
-plu4e
-p4luk
-plun3
-plun6d7ri
-p1ly
-ply5d8
-plæ5re
-plø6pa
-p1lå
-2p3m
-2p1n4
-p7ner
-pne6se.
-1po
-po9a
-pod8
-po6da.
-po4de.
-po6em
-2pof
-po6f7r
-pog6
-4poh
-po5id
-2poke
-po6lan
-po3le
-po4lek
-6polj
-pol5li
-po6lom
-pol6s4ka
-po2lu
-2pom
-pom6p9u
-pom5s
-4pon.
-pon5d
-pon4gr
-pongs6
-2pon1s
-pon5sa
-pon4sv
-po2p1a
-po6pe.
-p5opn
-pop1s
-2por.
-po1ra
-2p5ord
-po1r4e
-po4ref
-po6reg
-po8ré
-2p1org
-2pori
-2pork
-por6s7v
-por4tor
-por4t5ro
-por4trå
-2porv
-po1ræ
-po1rø
-po4se.
-po4ses
-4posj
-po2st
-po4sta
-pos5tas
-po5stat
-pos3te
-4pos4v
-5pot.
-7pota
-potak9
-po3te
-po4te.
-potek5l
-po5t6ha
-3poti
-4potr
-4pou
-2po4v
-pove6
-pover6n
-pow4
-2pp
-p2pad
-p2pak
-pp3akt
-p2p3a4l
-p9pane
-pp5angr
-pp5ank
-p4p3anl
-p2pap
-p9par.
-pp5arr
-p7past
-p4p7at
-p4pee
-p2pe5i4
-ppel5s6
-p4pena
-p8p9ender
-p4pendr
-ppe9nes
-ppe5p8
-p4penø
-ppe5ra
-p7pere.
-p4perkl
-pp7e6sen
-pp9esn
-ppes8ti
-p4peta
-pp5e4tas
-p4pete
-pp5ett
-p2peu
-pph8
-p1pi
-pp1id
-p2p1il
-pp5im
-pp3inf
-p4p5inn
-pp7ir
-ppir8re.
-p4pist
-pp1j
-pp3k
-pp1l
-pp5last
-pp3led
-pp5lei
-pp9lev
-pp5n
-pp1of
-p2pol4
-pp3old
-pp5om
-p2p1op
-pp3ork
-pp1ov
-pp5p
-pp1r
-pp5rei
-pp5rin
-pp4ris
-pp7riss
-pp9riv
-pp9ro.
-ppropri6
-pp7rot
-pp1s
-ppse6te.
-pp3ska
-ppska9k
-pps2p
-pp9spe
-pp3spl
-pps2t
-pp7sto
-pp7t2
-p2pu
-pp1uk
-pp5ut
-pp3ø4
-ppøs8
-p6på
-pr6
-4pr.
-4prad
-3praks
-pra7li
-2pran
-pran3s
-5prat.
-5prate
-pra5te.
-4pray
-5pref
-prei7er.
-4preii
-pr5elem
-1prem
-pren4s
-1pres
-6pres.
-pres6sak
-p6restas
-pre7t6en7
-4prett
-p3rif
-pri5ke
-pri4l3e
-4pring
-5prino
-3pr6in6s5
-3pr6in7s6e
-3pr6in7s6i
-1pris
-pri6s5k
-pris3t
-2prit
-pri9ve
-1p2ro
-8pro.
-6p7roc
-3prof
-4prog.
-4proge
-4progl
-4p3roi
-p5rop.
-3pros
-7prose
-6pru
-prun7ge
-pru5ta
-pru5te
-6prør
-prørs5t
-prø5s4
-5prøv
-prø5vels
-2prøy
-4prå
-prå8da
-pråk3i
-prå4ko
-pråk5k6
-2ps
-p1sa.
-ps5a6n
-p1sc
-p3se.
-psei8ge
-p2sek
-p2s1el
-ps5e4ly
-p3sen.
-p5sens
-p7ser.
-p5sete
-p5sets
-p2sh
-p6sib
-ps5ins
-p7sis
-p3s4jo
-p4s3kil
-ps7kjen
-p2s1ko
-p7s6ko.
-p3skod
-p5s4koe
-p2sle
-p9s8lo.
-pslø8va
-pslø6ve.
-p3s4lå
-p2sm
-psmå8la.
-p2sn
-ps4no
-ps1o
-p3sod
-pspi9la
-ps5ple
-p3s4pre
-p4s5pro
-ps5pu
-ps3s2
-pst2
-ps7tal
-p4s5tem
-ps3tv
-p5s6tå
-psu4r
-p3s4us
-ps1v
-p2sva
-p2sve
-ps4ving
-p4svæ
-ps5w
-psy3ke
-3psyko
-4psys
-p2s1ø
-p3s2øk
-psø4ke.
-psøy8
-psøy9ene
-ps1å
-2p1t
-pta8la.
-pta4le.
-pt7ark
-p3te
-pte6k
-pte4ma.
-pte7re
-p5ti
-pto7g
-p4tou
-ptus5t
-p4tut
-1pu
-pu4br
-5puc
-6pu6dy
-p5ugl
-pu2k
-pu7la
-pu8le.
-pull6
-5pum
-pu4ma.
-punk4t5
-punk5t6e
-2punn
-2pur
-pu4re.
-pu8rea
-3puri
-3purk
-pur5u
-pur3v
-pu7sa
-pus4h
-pusl7u
-pu1ta
-pu4ta.
-pu5tas
-pu5ter
-pu5tev
-4putg
-2puts
-put6tr
-put4tu
-2putv
-6putø
-2p1v
-pver7
-pvi4se.
-py4dr
-py8o
-3pyra
-py1re
-py1ro
-6pys
-py6sa.
-py4se.
-pys6t
-4p5z
-1pæ
-pæ4re.
-pø1kj
-pør4ret
-pø8sa.
-pø9ta
-pø9te
-p1ø2v8
-5påb
-på4by.
-på1k2
-1pål
-på4la.
-på4le.
-p5ån
-på3pe
-på1pl
-p1åpn
-på1r
-1pås
-på7sko
-på5sm
-på3t2
-6påtå7
-1påv
-qa5
-qu2
-qu9ar.
-1que
-que7r
-4raam
-4raar
-4rabis
-ra1bo4
-4rabr
-2raby
-ra3cet
-ra3ch
-5raci
-ra3d2a
-4radf
-3radio3
-4radir
-4radj
-2radm
-2ra1dr
-r3adre
-rad2s3
-radvi4
-ra5ede
-rael4
-4raerk
-raf4fer
-ra4fiu
-ra2fj
-2rafo
-ra5fo.
-ra4fos
-2rafr
-ra5fre
-6raft
-ra4fu
-ra6fy
-ra7gea
-ra5gee
-2ragl
-2rah6
-7raid
-ra5int
-ra3isk
-6r5akad
-ra9kar
-ra7kel
-ra5k6ha
-r2akk
-rak4kel
-r6akr
-ra5kro
-2raks
-rak6sa
-rak3s4e
-rak6se.
-rakst6
-4rakti
-rakt3r
-r4a5ku
-4rakv
-ral5ans
-6ralbum
-5ralds
-4raled
-ra5leo
-ral3g
-4r5alge
-4r5algo
-rali5e6n
-ra4lin
-ral1j
-ral5le
-ral7m
-ralo6i
-ral3op
-ra5ly
-4ralø
-4ra5l8å
-ra4mag
-ra4mas
-ram3b
-6r9ambi
-rambu9ens
-6ramed
-4ra4mer
-ram8et.
-4ramil
-ram1o
-ramperi8
-ram6p3u
-ramse8te.
-ramta8la.
-ramta6le.
-4ramu
-6ramy
-r4an.
-ra4naa
-6r3anal
-ra5nar
-ran9cs
-r4an9de.
-r5andel
-rand3r
-rand5s6a
-r4ane
-4ranfa
-ran5ge
-6rangi
-rang5st
-rania8
-ra6nin
-ran3kv
-2r5anl
-r6anli
-2r1anm
-r4ann
-ran6n5ett
-ran4n5in
-rann3s4
-rans7kar
-4ransv
-ran4tik
-ra5nu
-ran6ut
-4ranø
-2rao
-4rapa
-ra4pel
-4rapin
-ra4pir
-ra4pis
-ra6pit
-ra1pl
-4rapo
-ra4pos
-4rappa
-4r5appl
-3rappo
-2ra1pr
-4raps
-4rapu
-1r4ar.
-2rarb
-7rarbeh
-4rarea
-4rareg
-rar5e6l
-4ra3rep
-rar7eta
-r1arg
-6rargu
-8rarinna
-6rarinne
-rar8ka.
-4r1arm
-rar8ma.
-6rarn
-4rarr
-rar3re
-rar5s
-2r1ar5t
-rar6ta.
-ra3rø
-4rasa
-2rasc
-ra3sea
-4rasel
-ras3h
-raska8ra
-ras3ke
-ra4ski
-ra7s6ko
-ra6sl
-rass4l
-ras7st
-4rasti
-ra5s4til
-4rastj
-rast5re
-6rasty
-ras7v
-ra1ta
-ratak9
-r6ate
-ra4te.
-6ra5teg
-8r7a6teli
-4ratfe
-ra1to
-ra1t4r
-ra4t5ro
-ra4trø
-ra5t6røy
-rat5tel
-ratte4s
-4ratub
-rat5ut
-6raty
-7raud
-raud3s
-6raug
-rau6ga
-rau6ge.
-4rau4k
-raus6s
-2rav
-6ravd
-rave5s4
-4ravg
-ra1vi
-r3a4vis
-4ravl
-rav8l9ut
-ravlø8pa
-ravlø8s
-rav6r
-4ravt
-ra5vy
-ra3vør
-4raw
-raz5z6
-2raø
-raøy4
-2r1b8
-rba3d
-rbe2d
-rbede4
-rbed5en
-rbed5et
-rbed9ra
-rbie8
-rbi9er
-r2big
-r2bik
-rbist6
-rbis5tr
-rbo8di.
-rbo4ni
-rbon7s
-rbo5re
-rbra5s
-rbrei6
-rbu5en
-r5bø
-r1c
-4rd
-r4dab
-r5dag
-rdag4s5
-r5dah
-r4d5ak
-rdal4
-r4dala
-rda4le.
-rdals5
-rda4mes
-rda8n9o
-r4dant
-rd5anta
-r4d3arm
-r4d3art
-rd5atl
-r4datm
-r4d3au
-rd3d2
-r6dedi
-rde4en
-r3defi
-rd5e4ge
-rd1ei
-r9deka
-r4dekl
-r4deks
-r6delo
-r6demi
-r7dena
-r6d7eng
-r6d7enh
-rden4s3
-rdense4
-rdenta8le.
-r4deo
-r6depo
-r4derik
-r4d5erst
-rde6sm
-rd3e4ta
-r6d7ett
-r8dé
-rdfes5
-rdi3an
-r4diana
-r4dians
-r6diau
-r4did
-rdi3e2
-r2dif
-rdi6gres
-rdig3s4
-r4dika
-r4dikl
-r4diku
-r2dil
-r6dimi
-r2dio
-rdi3ov
-r4dish
-r2dit
-r2diu
-rd5je
-r1dju
-r8d7m
-rd3n
-rdnæ4
-r9dob
-r4d5o4d
-r4dol
-rdon8na.
-rd1op
-r6dor
-rd3ost
-rd1o4v
-rdover5
-r9drad
-r3drak
-rd5ran
-rd7rara
-rd3ras
-r3drei
-rd3ret
-r5drev.
-rd1ri
-rd3rot
-rd3sei
-rd8ske
-rds4kv
-rds5tan
-rd3sto
-rdsto5g
-rds7tre
-rds7tu
-rdsva9r
-rd5t
-rdta8ka
-rd5tr
-rd7tø
-rd3und
-rd5ve
-rdvi8ka.
-r4dyg
-rdy5pe
-rdy3re
-r6d7yt
-r6d5æ
-r7d6ær
-r7d6æ5r6e
-rd1øs6
-rdø4ve.
-rd3år
-rd7å6s
-1re.
-2rean
-re7a6r7an
-rear5e
-4reav
-2reb
-3redak
-6redam
-re3def
-re5den
-re3des
-re3di
-3redig
-r1edl
-2redo
-2redr
-re4d5ri
-red5sku
-red4sl
-reds5la
-red7s6led
-3reduk
-6redy
-2redø
-2ree
-re4el.
-re3er
-8refa
-4reff
-4refi
-2refj
-6refos
-6refr
-4reft
-2refø
-4regar
-rega7ta
-re3ge
-4regeb
-re5gel
-4regen
-4reger
-4regg
-1regi
-re4gia
-re4gil
-reg1l
-2regr
-4regub
-4regud
-2regå
-2reh
-2reid
-2reie
-2r1eig
-rei8ga.
-rei8ge.
-4reik
-rei9l
-rei5na.
-rei7nas
-re5inde
-rei5ne.
-rei7nes
-rein6skj
-re4inva
-rei9ra
-rei5sa
-rei3si
-rei7ska
-reis6led
-re7ism
-rei7v4a
-rei5ve
-2rej
-6rek.
-re5ka.
-re5kav
-re7ken
-4rekj
-rekk6an
-rek4k5v
-5reklam
-rek4led
-re5k6lir
-re7ko
-4rekob
-4rekom
-4rekon
-6rekos
-4rekra
-3rekru
-r3eksa
-6reksp
-rek4ter
-4reku
-r8el.
-re9la
-4relag
-9relandsk.
-9relandske
-2r2ele
-rele8ge.
-r4e5lei
-6relek
-re7len
-7relene
-6relg
-r3elit
-4re3lj
-r2ell
-rel4lag
-rel6land
-rel5led
-rel4lev
-5r4elm
-rel5ses
-rel4sk
-4re1lu
-4relv
-2re5ly
-2relæ
-2relø
-4re7l6å
-relå7r
-2rem
-remann6
-r1emb
-remi6ene
-remi6l
-re7mis
-rem9ji
-remmed5
-6remn
-rem8na
-rem5p4
-rem1s
-remti9da
-4remu
-8remy
-4remå
-2re3na
-ren4del
-4rendr
-8rened
-re5neg
-re7nei
-4renek
-r3e4nel
-4renest
-6renet
-6rengd
-reng5l
-4rengn
-reng5st
-re5ni
-2renk
-ren6kl
-r3enl
-ren8ne8sl
-rennes9la
-re5no
-ren5sa
-r3enss
-6r7entit
-4r3en5tr
-6rentu
-4renu
-5renz
-6renæ
-4renø
-re5og
-2reop
-re3o2r
-5reou
-8repen
-6r5e6pi
-1repu
-6repus
-1rer
-6rerad
-6re9rang
-4rer6at
-re5re.
-4rered
-4reref
-4rereg
-4rerei
-re4rek
-4rerent
-4rerep
-4rerese
-4reresu
-4reret
-6rerfa
-4rerig
-4rerik
-4r3ernæ
-4rerol
-4rerom
-re3ros
-rero6se.
-re5rot
-3rers
-rers4p
-4rerute
-re6r7øy
-2rerå
-1res.
-2resa
-re2s3c
-re3se
-4resel
-re4sem
-4reset
-resi7ere
-4resin
-2resj
-2resk
-res5ke
-re6s7kje.
-res6kl
-res7kod
-re6sky
-6re1sl
-re4slu
-1resm
-re5smo
-re3sov
-re9spe
-4respi
-4respr
-2ress
-res4sal
-res4sek
-res4sit
-res4sj
-res6sk
-res6sort
-res4sp
-res4st
-res4sy
-res9tane
-5restau
-res6t5erv
-res4tes
-res3té
-4re3sti
-res4til
-re3str
-4restre
-7restv
-4re5sty
-4restå
-1resu
-6resuk
-4resun
-re3s4ve
-re3svi
-2resy
-2resø
-4retaki
-4retal
-re4tap
-4retea
-8retek.
-6reteke
-4retekn
-6retel
-6re5tem
-re5ten
-4re5ti
-4retj
-4retoa
-2re5t2r
-rets4i
-ret4st
-ret7ted
-ret5ter
-rett8o
-rett6set
-4re5tu
-2rety
-2retø
-5retøya.
-7retøyets
-4re7tå
-2reu
-reu6r
-4revak
-re5van
-reva5re.
-6reveg
-4revei
-4revel
-re6v7enh
-re5ver
-reve5s
-r3e4vig
-re4v5inn
-re7vom
-1revy
-re4v5åp
-3rew
-2reå
-2r1f
-rfa5re
-rfat5
-rfe8en.
-rfe8er
-rfe4et.
-rfei5li
-r4fik
-rflå3
-rfe5m6ø
-rft2
-rfu8se
-rfyr4
-r9fæ
-rfø8rarar
-2r1g
-r5ga.
-rga8le.
-rga8li
-rg5and
-r7gann
-r4g5anv
-rga3ri
-rg3art
-rga4ve.
-r6gedi
-r4gef
-r2gem
-rgent4
-r3geo
-r4gerei
-r4geret
-r4ge3ru
-r4gesj
-r4gesl
-r4gesta
-rgi1a
-rgie4n
-r2gik
-r2gil
-r2gim
-r2gio
-r2gir
-rg3i4ri
-rgi7sl
-r2giø
-rg2le
-rg5le.
-rglem5
-rg3len
-rg3ler
-r2gn
-r4gog
-r3gom
-r2got
-rg5rab
-rg3rea
-rg3rel
-rg5reps
-r6g5ri
-r3gru
-rg5sc
-rgs6kor
-rg5s4le
-rg1sn
-rg5s6till
-rg5sto
-rg9stu
-rg2sy
-rgu7d
-rg6ut
-rgå9as
-rgå6va
-rgå6ve.
-2r1h
-rhav2
-rhavs3
-rhjul8s
-rho3d
-r7hu
-rhø5re
-rhånd6s9
-rhå9ne
-ri1an
-4rianf
-4rianl
-6riansv
-ri1ar
-4riarb
-4riarr
-6riau
-2riav
-ri4ava
-3ri6avo
-2rib
-ri2b3l
-ri8ca.
-ri4co.
-ri5da
-4ridale
-ri5der
-ri5di
-2r1idr
-rid3t
-4rieie
-4rieig
-4rieks
-ri1el
-6rield
-4rielem
-6rielim
-riel4la
-rie4n
-ri3end
-4rienh
-4rient
-rien5t4r
-ri1er
-rie5ra
-rie5ri
-4rietat
-ri5even
-2rifa
-riferi9e8
-rif4fi
-rifiserba8
-6rifj
-1rifl
-rif5la
-2rifo
-2rifu
-4rifø4
-ri4ga.
-rig4gr
-ri3gi
-4rigj
-4rigre
-rig2s
-rig6s7t
-2rih
-2rii
-2rij
-5rij.
-ri4kali
-ri5kan
-5rikd
-ri3kes
-ri7ki
-rik7ken
-rikk5j
-4rikl
-ri8k9la
-2ri7ko
-6rikon
-2ri1k2r
-rik4sk
-rik4s5u
-rikt6
-rikts3
-riku6m
-ri3k4v
-4rikå
-2rila
-6r5ilde
-6riled
-ri5lei
-ril6lest
-2ri5lo
-ril4sn
-2rilø
-4rima
-ri9mab
-ri9mar
-6rimes
-ri5met
-2rimi
-ri4mi.
-7rimis
-rim7l
-4rimm
-4rimo
-ri4mor
-4r1imp
-4rimu
-rim9ut
-4rimy
-rina5l
-ri5n6am
-4rinas
-4r5inc
-4rind
-r3indu
-ri4nee
-ri4nes
-2r1inf
-rin7gom
-ring3r
-ring4sa4
-rings5ak
-ring8spa
-2r3inj
-2rink
-4rinn
-rin9nes
-4rinor
-2rins
-rins6k
-rin6sm
-2rint
-rin4t5j
-rin4tr
-2rinv
-ri6nø
-2ri1of
-6ri3om
-2ri1op
-2rior
-rio5s4
-riot3r
-2rip
-4ripe
-ripo4s3
-4ri1r
-4risau
-4rised
-rise5i
-6risek
-4risel
-ri4seli
-4rish
-5risiko
-2risj
-ri6sju
-4riska
-ri4ski
-6risku
-4risky
-6ristad
-4ri5sted
-ris5tik
-4ristil
-ri4sto
-ris5tof
-ri5stun
-6ristø
-ri6stå
-4risv
-4risy
-4risø
-ri3te
-6riteo
-ri7ti
-riti9da
-4ritil
-4ritj
-ri5t6o
-ri5tr
-rit1s6
-ri6tun
-4rity
-2riun
-riu4r
-2riut
-4rivar
-ri6ved
-rive9ge
-ri5vei
-4riverk
-2rivi
-ri4vi4s
-riv5ise
-6rivo
-4riøk
-riø4r3a
-8riøya
-4riå
-r1j
-rj7ambi
-r4jere
-r2jes
-r4jeti
-r4jetr
-r4jetu
-rju6la
-8r1k
-rk3akt
-r6kanf
-r4kao
-r4kapr
-r6katr
-r3ke.
-r2keh
-rk5eik
-rkei8ka
-r6kek
-r4kelo
-r4ke3lu
-r3ken.
-r4kenav
-r3kene
-r4keni
-r5kens
-rke5ri
-r4keris
-r4kero
-r5kers
-r4ke3ru
-r4kerø
-rke4se
-rkeslø7se
-r9ket.
-rk4han
-r3ki
-rki3d
-rki3e
-rki4vi
-rkjek8
-rk5jor
-rk1k2
-r5k8led
-rk2li
-rk5lun
-rk9lut
-rklæ5re
-rk2lø
-rklå9ra
-r3knek
-r5knep
-rk7nes
-r3kno
-r2kob
-rko6b5r
-r6kofo
-r2koh
-r4kola
-r4koli
-r4kope
-r4kora
-r4koru
-r4kosel
-rko6sele
-r4kosj
-r6k7ras
-rk5rei
-r5k6rem
-r8ks
-rk4sar
-r6k6seg
-rk2s1i
-rk4ska
-rk1st
-rk6stal
-rk4sten
-rk4s5ti
-rk4stj
-rk4sto
-rk6s5vi
-rk5ti
-rkti4s
-rk5to
-rku4le.
-r6k7u6t
-r4k5ve6d
-rk5vei
-r5kvel
-r4kver
-rk3ves
-rk5vik
-r4k5øl
-r2k3øy
-rk9øys
-rkå4k
-rk5åke
-rkå6pa
-rk5å4s
-2r1l
-rla4te.
-rle4a
-r2lef
-r3lep
-r4l5e4ri
-r6le7sl
-rle4st
-r4lesu
-r4leu
-r3l4i
-rli9ke
-rling3s4
-rli8ta
-rli4te.
-r3lj
-rl6o
-rlog2
-rlo5ve
-rl4sk
-rlu4e
-r3ly
-rlys7k
-r6l5z
-rlø8pa.
-r5løy9
-2r1m
-rma6ge.
-rma5k4l
-r4m5alte
-rm3anl
-rm4ans
-r6manv
-r4mare
-r4marr
-rm5av
-rm3b
-r2me7g
-r2mek
-rme6lap
-rme5ne
-r4menet
-r6merev
-r4mese
-rme9tar
-r4mey
-r4m5ide
-rmi6ene
-rmini6
-rmin5ski
-r6m5inst
-rm5i4v
-rm1je
-rmlø8pa
-rmo4e
-r2mof
-rm1op
-rmo7st
-rm7p
-rm5s6ko
-rm1sl
-rms6n
-rm1st
-rms5til
-rm1su
-rmta8la
-rm3te
-rmu7an
-rmue4
-rmue5ne
-rmu8la.
-rmu6le.
-rm5øy.
-r9må.
-rmål4
-r6m5åp
-r9mår
-r6m7åta
-4rn
-r3na
-r4n1ak
-r4n3ald
-r6n5appar
-r4narb
-r4n3art
-rnat7r
-r4natv
-r6n9a6vis
-rn3avl
-rn3d
-rndø4
-rndør5
-r3ne.
-rne5a2
-r5neboe
-r2nec
-r4nef
-r2nel
-rnele6ge.
-r3nell
-r3nels
-r4n3eng
-r4nenh
-rne7p
-r4nerei
-r6neris
-rne3ro
-rne1s2
-r5nes.
-rne6se.
-r8nesi
-r4ne3sk
-r4nesm
-rne3so
-rn5e4tab
-r4nete
-r2nev
-rne5vr
-r2nés
-rn5g6
-r4ninn
-rn5k4
-rn3n
-r5no.
-r4noa
-rno5b
-r4nod
-r4noi
-r6nok
-r2nom
-rn5omn
-rn3oms
-r4n1op
-rn3ork
-r2nos
-r4n1o4v
-rn7se
-rn4s3in
-rn5ske
-rn3skr
-rn5sla
-rnsle7ge
-rn7s6mi
-rn6s3ovn
-rn5spon
-rn3s4pr
-rn1st
-rn4sti
-rn3te
-rn5ti
-rn7tr
-rntre4
-rnt4v
-rnu4
-rn5ug
-r6n3ut
-r7nøt
-r4n5øv
-rnå8le.
-rn3ås
-ro1ak
-roa4s
-ro5asi
-9roban
-9robar
-1robe
-ro4bed
-ro4bef
-5roben
-ro4bes
-5robølgj
-1roc
-r3odds
-7rodo
-ro5end
-ro7ens
-ro7fa
-ro4fel
-ro4fem
-roff5ri
-ro7ga.
-roga9ta
-ro7ge.
-rog5ret
-ro6gry
-rog1s4
-ro2gu
-1roi
-ro4kel
-ro5ki
-rok6kat
-rok6keri
-rok5kl
-rok4kom
-ro7k6l
-rok5n
-rok7s
-rok8se.
-rok5v
-roli7ga
-4rolj
-rol4lab
-rol4lap
-rol4leg
-rolle8ge.
-rolle8se.
-rol4lis
-rol6ly
-rolo9v
-2roly
-ro6mak
-ro4mal
-3ro5m8an
-ro4mate
-2rom7b
-4ro3me
-rome5d
-4romk
-4r3omn
-ro4mor
-2romr
-rom5sla
-r7omsy
-romsø3
-rom3t
-ro5ne.
-ro7nim
-6ronism
-6ronista
-8roniste
-6ronisti
-4ronn
-ron4na
-rono5s
-ron1s4
-ronta6le.
-ro4pad
-5ropet
-ro4pia
-ro8pla.
-2ropp
-ro9py
-ror3a
-ror6da.
-ro3re
-ro1ru
-ro4sat
-ro5sel
-ro3sen
-4rosl
-ros3la
-ro4sm
-ro6sov
-ro1s1p
-ros4st
-ros4sy
-ros7tas
-ro3sti
-ro3str
-rost7rø
-rot5ekte
-ro5tes
-rote7ster
-roti7ka
-rot5ord
-ro5tu
-6roty
-roun2
-round3
-ro5ut
-ro5va.
-ro9vare
-ro7vas
-ro5vek
-ro7ven
-rove5re
-rov5sm
-rovve6
-rò6te.
-8r1p
-r5pa
-r6parb
-r5pefo
-r4peno
-r6penø
-r5pesk
-r5pet
-rp6j
-rp2l
-rp3lad
-4rp3n
-rprø5ve
-r3pu
-rpun7g
-r6p5ut.
-r6p5øy
-r2påk
-8r1r
-r8raa
-r2rag
-rra3r
-r4raro
-rr3d
-rr6e
-r4reb
-r7rebart.
-r2ref
-rre7int
-r4rekl
-r5relat
-r4reo
-r4repl
-r4re3ru
-rre5sk
-r4resm
-r4reso
-r4respe
-r3ress
-rre4st
-rres5ta
-rre7sti
-rre5str
-rret6s5
-rre5u
-r3ri
-rri6ka.
-r6rip
-rri5v
-rr3m4
-rrmå8la
-rro6e
-r5rom
-rro8sa
-rro8se.
-rro8ta
-rr5s2
-r2r3un
-rr5v
-rrå5de
-4rs
-6rs.
-r1sa
-rs3ab
-r2s7ad
-r3sak
-rsa5ka
-r6sakt
-rsa6la.
-r8s9ald
-rs3all
-r5sam
-r4sarr
-rs3arv
-r1sc
-5s6ch6l
-r8sedi
-rse6g7
-r4seku
-rs4ela
-rs7eld
-r4seli
-r4s3elv
-rs5e4rik
-r3ses
-r4sesi
-r6sesu
-rse4te.
-rs6ett
-rsett8o
-r7sim6
-rsimp7
-rs1in
-r5s4ing
-r4sins
-rsis5t
-r7sja
-r4sjh
-rsj3or
-r3skad
-r6s7kaf
-rs4kam
-r3skap
-r4skar.
-r4skas
-r4ski
-r5skil
-rsk7inns
-r1skj
-rs5kjens
-r6skl
-rskla8g
-rsk5lar
-rs4k5le
-rs4k3læ
-r5sko.
-r5skoe
-rsk3op
-r4skor
-r3skot
-r1skr
-r4s3kra
-r5skriv
-r4s3kro
-r1sku
-r5sku.
-r5skue
-rsku7et
-rsk5und
-rsk5var
-rs5kys
-rsk5ø
-rs4lef
-r4slei
-rs4lek
-rs4les
-r5s6lit
-rs3lok
-r4slun
-rs4make
-rs4mo.
-rsmål4
-rs6nev
-r1so
-rso9a
-rs5oml
-rs8o6n5
-rso7n6al
-rso5n8e
-rso5n6i
-rsons4
-r2s1or
-rs5ord
-rso7ris
-rs1ov
-r1sp
-rs4pan
-rs6pat
-r5spel
-r4sper
-r7spes
-r5spi
-rs4por
-r5spred
-r4spå
-rs3s6
-r1s2t
-r4s5tabb
-rs5tank
-rs3tap
-r6st7b
-rs4ted
-rs4tem
-rs5tend
-rsten6s
-rs5ter.
-rstev9na
-r3stil
-r4s5tilf
-r4s5tilh
-r4s5tils
-r4s5tilv
-r5stis
-r4stit
-r6st5k
-rst4r
-rs9tre.
-rs7tree
-r4strin
-r4s5tro
-r5strø
-rst7ut
-rstu9va
-rstyg7
-r3st6ø
-r7stå
-rs5ukl
-rsu9r
-rsu7sa
-rs5usi
-r1sv
-rs8vak
-rsva9ra
-rsvar4s5
-rs1ve
-r3s4vek
-rs5vit
-rsy4na
-rsy3t
-r1sz
-rsøks3
-rs9øye
-6r1t
-rt5ad
-r4t5af
-rta4ka.
-r4tana
-rt3anl
-rta9pa
-r4tarr
-rt3art
-rt3avs
-r4tec
-r4teda
-r3tede
-r2tee
-r4tego
-r4tegr
-r4teie
-r4te3in
-r4teka
-rte6ke.
-r4teki
-r4teku
-rt5e4lit
-rte6ma.
-r3temp
-rten4s5k
-rtentle8
-r2teo
-r7t6er
-r5terd
-r5teres
-r4teris
-r5terk
-r4terå
-r4tese
-r6tesk
-r6testi
-r4teta
-r4tete
-rteus8
-r4tev
-r4th
-rtian8d
-r4tians
-r4tiar
-rti8ar.
-rti5en
-rti6gra
-r4ti3kv
-r4tila
-r4tili
-r4tilo
-r4ti7na
-r2tio
-r2tip
-rti7sa
-r6tiska
-r4tiski
-rt6i9so
-r4tisp
-rtis3s
-r4ti5str
-r3titu
-r2tiv
-rtma6le.
-r5to.
-rt3off
-r9tofo
-r9tok.
-rt3omk
-r4t3opp
-rt6opp.
-rt3ord
-r6t7o6s
-rt1o4v
-rt2r
-rt8ra
-r9tre.
-rt6red
-rt3reg
-rt3rei
-r4t5reko
-rt5rel
-rt5rep
-r7trib
-r4t3ris
-r4t5ros
-rt3rut
-r5t6rål
-rts3ar
-rt4seg
-rts5eng
-rt2si
-rt4s5ja
-rt5ske
-rt3skj
-rt5s4no
-rt3s4pe
-rt4sti
-rt7s6trek
-rt4s5tøy
-rts5unde
-rt3t4
-rtu6en.
-r7tug
-rt3und
-r2t1ut
-rtu8ve.
-rty8da.
-rty8de.
-rtyr5s
-rty6ra
-rt5yt
-rtæ9ra
-rt5øl
-r6t5ås3
-ru3and
-6ruav
-ru6avh
-rub6a
-ru8bl
-ru5bo
-ru4di.
-rud4r
-ruds4l
-ru4ele
-rue4r
-rue3s4
-ruga8l
-ruga5t
-rui3d6
-4ruk
-ruk4su
-rukt3s
-ru9la
-4ruli
-6r7ulk
-rul8ke.
-r2ull
-r7ulv
-r4um
-rum3al
-rum4p9l
-5r2unde
-run5del
-6r3under
-7r4under.
-r5unders
-rund3r
-rund3s4
-run6ge.
-4ru2ni
-run5kr
-r7uly
-ru4nøy
-ru2r
-ru5ra
-ru8ran
-ru8rar
-ru9rer
-rur8ta
-r4us
-rus2h3
-6r7u6sik
-rus5j
-rus7lu
-ru1s4o
-rus5sel
-rus4st
-ru4s4t3r
-r4uta
-ru3tal
-ruta8la.
-r7utan.
-r4utbe
-4rutd
-rut8e
-rute3i
-ru4tel
-ru9tene.
-ru9ter
-2rutg
-r1utk
-rut9o
-6rutr
-rut4re
-ru6trø
-rutto5
-2rutv
-rut5ø
-ru5va
-ru4ved
-ru4veg
-ru4vei
-ru4vel
-ru4vere
-ru4ves
-ruvi8
-ru6v7is
-2r1v
-rv4a
-rva7ka
-rva6la
-r8v7arb
-rve3de
-rve4den
-r4ve5dr
-r4vega
-r4vegi
-r4vegr
-r4veim
-rveis7e6
-rve5kl
-r4vela
-rvel9le
-r4v5eng
-r5ver.
-rve5re
-r2ves
-r2vev
-rvil9l
-rville9d
-rv2j
-r4vos
-r4vov
-r3vr
-rv2s1
-rv5ung
-rvå7r
-4r1w
-rx1
-ry1a4
-ry2dr
-ry7fe
-ry5fl
-ry5ke.
-2ry1kl
-ry7le
-ryl4l5i8s
-4r5yndl
-ry4nes
-ry5nes.
-ry4pa.
-2ryr
-ry8re
-r1yrk
-ryr4ke.
-ry9ro
-ry5rø
-rys6sal
-ry5ta
-ry4tek
-1rytm
-r3ytr
-r4z
-ræ7le
-8r3æ4re
-8r3æ4ren
-rær5in
-rær8t
-ræ8v
-2rø.
-rø8ar
-6røb
-rø4be.
-rø4dek
-rød1s
-4røep
-røf5l
-rø4ke.
-rø4kero
-røk3l
-4røkn
-røk5s4
-røk7t
-røk1v
-2røl
-rø6m
-røm1a
-røn5nes
-rønn5s4a
-rønn5sk
-røn5sko
-5r6øntg
-rø4pe.
-røp9l
-1rør
-rør5d6
-r6ørende.
-rø7ret
-5rørl
-rø2r3o
-rør4sp
-r8øs.
-rø3se
-rø5sla
-røs5v
-rø8ta
-røt9as
-rø1va
-rø5vede
-rø9vers
-rø1vi
-r4ø5væ
-2r1øy.
-4røya
-røy9ar
-røy6ed
-røy6ene
-røy5es
-røy4et
-5r6øyk
-3røyr
-røy5re
-røy8senes
-6røy4s3k
-røy4st
-2rå.
-rå7a
-4råag
-4råb
-3rådet
-rådy9ra
-rå9ene
-2råf
-4rå5g4
-2råkj
-råk3re
-rå2k3u
-råk1v
-4rål
-råle7s8
-rå4let
-rå5let.
-rå5lu
-r5ånd
-rån6da
-2råp
-2r1år
-rårs5k
-rå5ru
-rå1s
-4råsb
-2råse
-rå5si
-2råsj
-rås4t
-6råta
-råta8ka.
-rå5tr
-rå5tu
-2saa
-5saa.
-sa4ba.
-s6abe
-s8abl
-sa5bok
-s3abon
-sa5by
-sa3ce
-sa4dag
-4sadam
-sa4dere
-4sadm
-sa4do
-2sadv
-sae5d
-3saen
-7saer
-5safa
-1safe
-4s3affæ
-5saga
-sa4ga.
-sa4gas
-sa4gat
-6sagent
-6s5agg
-6s5a6gi
-sag8na
-sa6go.
-sa4gog
-2s1a2gr
-sag3s4
-sa3ik
-sa5ir
-sa1is
-5sak.
-sa2ka
-3saka.
-4sakad
-sa5kai
-3sakb
-3sakd
-3s4a3ke
-5sakf
-1sakh
-sakh5e
-1saki
-sa4kj
-sak5kr
-s4akky
-5sakl
-5sakm
-4sako
-3sakp
-sa1k2r
-5s4aks.
-sak4s3i
-4s3aksj
-sak4sp
-5saksr
-5saksu
-2s1akt
-sak6ta.
-5s4akto
-s4aku
-4sa7kø
-1s4al.
-sa1la
-4s5alarm
-7sala.
-5sa5lat
-4salb
-1sa3le
-sa9let
-1salg
-s4alge
-4s5algo
-salg6s5
-s6ali
-sal4mes
-sa5lo
-5sal2s3
-sals4a
-4salter
-sa1lu
-3salv
-sal5ved
-2saly
-1s2am
-5sam.
-sa2ma
-sa5ma.
-sam4an7
-sa5mas
-sam5ei
-sa4mel
-sa4met
-5saml
-sam4lev
-5samm
-sammen5
-sa4my
-4s1a2na
-sa9na.
-sa7nar
-sa3nat
-san6da.
-san7d8al
-5s6ande.
-sand5r
-sand5s6lo
-sand5st
-san4d5ø
-1s2a5ne
-4s3a6nek
-5sang.
-3sange
-4s3angr
-8s7angst
-s7anken
-2s1anl
-s5anm
-san5ne
-6sanno
-sa2no
-4s5anor
-san5os
-san1s
-5s4ans.
-4sansa
-5s4ansen
-san7s6k
-4s5ans8l
-6sansv
-s8ant.
-san9te
-6santr
-4santy
-4s1anv
-2s1ap
-sa2po
-1s2ar.
-1sara
-6sarab
-2sarb
-s4ard
-9s8are.
-4sareal
-4sareg
-sa5rev
-3sari
-sa4ri.
-sar6ka.
-4s3arki
-2s1arm
-sar5me
-sar8me.
-s1arr
-2s1art
-sar4ta.
-sa4ru
-4sarv
-s4ary
-1sas
-8sasju
-2s1a4sp
-4s1ass
-s6ast
-4sasty
-2sasu
-4sasy
-1sat
-sa1ta
-sa5ten
-sa3ti
-2s1atl
-4s3atmos
-sa1to
-4sa5t6r
-s5atsk
-5satt.
-4s3atta
-6s5atten
-satte4s
-5sau.
-sau4d
-sau5di.
-5saue
-4saug
-sau6ga
-s3auge
-sau6ge.
-2s1auk
-5saum
-3saus
-4saut
-2s1av
-s2ava
-sa4ve.
-5s6a5v6in
-sav5n
-3savu
-8s9b4
-sba4ne.
-sbi6e
-sbo4da
-sbu6et
-s6bug
-sbul3
-sby8ta
-4sca
-5s4can
-1sce
-2scel
-s4cene
-s3cer
-6s6ch.
-8schl.
-sch8m
-6s7cl
-4sco.
-6scoc
-4scos
-s4cus
-8s9d6
-sdag4s5
-sdam9p
-sde6le.
-sdu8en.
-sdu8er
-sdø8v
-1se
-2se1a
-3sea.
-sea4g
-se3an5d
-se7ansa
-sea9re
-5se4au3sk
-2seb
-4sec
-4sedag
-sed5d
-se3de
-5sede.
-5sedl
-4sedo
-2sedr
-2sedu
-6sedvanle
-2sedø
-5see.
-see3d
-2seef
-2seeg
-se6e3i
-se3e4l
-se5en
-seer1
-5sees
-2seev
-2sef
-s1eff
-4s1eft
-6sega
-sega6l
-se2ge
-se6ges
-se3gev
-seg8ga.
-9segl.
-7seglet
-3segm
-4s2e7g8r
-2seh
-2seid
-sei8dan
-sei9den
-sei8e9nes
-s5ei4et
-2seig
-sei6ga.
-sei5ge
-sei5k
-3se8il
-6seim
-2sein
-se3ind
-s3eini
-se6ink
-se3ins
-se3int
-sei5r
-3seis
-2sej
-5sej.
-2se5ka
-3seke
-4seki
-2sekj
-5sekk
-sek4kes
-2sek4l
-4se3kn
-2seko
-se2k1r
-4sekra
-4sekri
-4sekro
-3s4eksj
-4seksp
-sek4st
-sek2t3an
-sek6te.
-sekte9ra
-3sek5to
-4seky
-4sekå
-s2el
-2sela
-se6la.
-3selak
-5selane
-5selar
-sel5art
-s3e4las
-se6l5at
-sel1d
-se4le.
-4se5led
-6selega
-4selei
-4s3elem
-4seleng
-4seles
-4s3e4lev
-5s6elg
-4selik
-4selil
-4selis
-4s3e4lit
-sel6løp
-2selo
-7selol
-se3lom
-3sels
-sel4sin
-8s5elske
-sel9s8lag
-sel4spo
-sel5t6
-2selu
-se6l7u6r
-sel4v5ak
-sel4van
-selv3e4
-sel4ve.
-selvei4
-sel4ver
-sel8vin
-2sely
-2selæ
-2selø
-selø8pa.
-6selå
-2se3ma
-3semb
-7semd
-se5me
-se4mi.
-semini6
-2s1emn
-sem4na
-9semnd
-2semo
-sem5pe
-2semå
-s2en.
-se5nak
-6senau
-sen9d8a
-sen6dela
-6senden
-4sendr
-s2ene
-4sened
-se3neg
-4senem
-8senesa
-6senese
-sene8se.
-s5engas
-2s1enh
-se6nin
-s3enkj
-5sen3n
-s2ens
-4s5ensem
-sen6s5end
-sen4sj
-sen3so
-7s6ent
-sen5ter
-8s7en5trep
-4senum
-4seny
-2senæ
-6senø
-2seo2
-7seod
-se3or
-2sep
-se3pe
-seperso5
-3sept
-s2er.
-se3ra
-4seram
-5seran
-4serap
-5seras
-6serau
-ser5d
-s2e5r4e
-5sere.
-4serea
-4sered
-4seref
-4sereg
-4serei
-4serek
-4serel
-4serenn
-4serent
-4serep
-4sereso
-4seress
-4serest
-4seresu
-4seret
-4serev
-s1erf
-s2eri
-seri6e5ne
-4serik
-4serkje
-5serkr
-5sern
-ser7nev
-2se1ro
-se4rop
-se4ror
-se4ros
-9s6ert
-ser4tak
-ser6tat
-ser4tr
-se1ru
-4serul
-se4r3un
-ser4ved
-ser4vel
-2sery
-2se5r6ø
-2serå
-5ses.
-ses5ald
-5sesals
-ses5alt
-4sesc
-2sese
-se4sene
-ses5in
-se3sj
-4sesje
-4sesjuk
-ses5kal
-ses5kar
-ses5kv
-ses5lit
-se3sna
-5seso
-ses3pr
-ses4s5in
-se1st
-5sest.
-5seste.
-4sesto
-ses5un
-ses1v
-2sesy
-4sesø
-ses3å
-3s2et.
-2se2t6a
-3seta.
-se5tae
-seta8ka
-se5tar
-6setea
-4seteg
-4setei
-4setek
-se7tel
-se4tera
-se5tero
-4setes
-2se3ti
-se8ti.
-s3e4tik
-s3e4tis
-se8t7ja
-4setje
-5setje.
-7setl
-5setn
-2seto
-2set6r
-s4ets
-s5etters
-2setu
-2setv
-2sety
-6setø
-3seum
-4seun
-seure9ne
-seu2t
-2sev
-seva6ne.
-s8e5var
-sev4d
-sevi4sa
-s1evn
-sev4ne.
-se3vr
-3sevåg
-2seyn
-2seø
-2seå
-1sé
-2séa
-6séb
-4sée
-4séf
-4séj
-4sék
-2sél
-4séo
-6sép
-9sér
-4sés
-2sév
-4s3f
-sfa4ne.
-6sfe
-sfe6et.
-sfes5
-sfisken8
-sflå3
-s5fo
-sfo8ra
-sforlø9
-sfra5s
-sfri5e6re
-sfyrs5
-5s4fæ
-sfø9ren
-sfø5rer
-sfø5ri
-6s9g6
-sga4l
-sga8va
-sga4ve.
-sgen9s
-sge4st
-sgå4va
-sgå4ve.
-s1h
-4sh.
-sha2k
-s7hat
-s3hau
-6she
-shea4
-s5hei5
-7sh6e4rif
-8s5hett
-s4hi.
-s6hip
-sh5isk
-4shj
-6s7hopp
-3short
-5show
-6shs
-2shu
-4s5hy
-s5h6ø
-shø8l
-shø6va
-shø6ve.
-s7hå
-1si
-sial5v6
-4sia5m
-si7ans
-4siap
-4siav
-si2bl
-3si2da
-3si4de.
-3si3den
-si4de5o
-s4ider
-si5der.
-si4dete
-2si2do
-4s1idr
-sid8ra
-4sidy
-4sieg
-si1el
-sie4n
-si5er.
-si6eren
-sie4s
-si3est
-6sife
-si3fl
-2sifo
-si4f3r
-2sifu
-4sifø
-3sig
-siger4s
-4sigi
-4s3iglo
-si5gr
-4sih
-3sik
-si3ka
-si5ke.
-sik2h7
-sik4ka
-sikk8artet
-sik4k5el
-sik4ko
-siko3
-si4kom
-si4kop
-si4kos
-si4kot
-sikt4s3
-s2il
-5sil.
-3sild
-sil4del
-sil4der
-sil4des
-sil5j
-sil2k
-sil4les
-2silø
-si6mel
-4simet
-2simp
-si3mu
-4sinde
-4s3indu
-si3nek
-2s1inf
-sing4s5a4
-7singu
-si4ni
-4sinj
-2sinn
-3s4inn.
-7s4inna
-s6inne.
-5sinnet
-s3innh
-s5innk
-s3innl
-4sinnt
-si5nob
-sinsk5e
-2s1int
-4sinv
-si6nø
-4si5ov
-si4pa.
-si8pe.
-si6re.
-si7ren
-si4ri.
-sir8kl
-s2is
-si5sel
-si4serf
-sis5e4v
-si6sin
-6sisju
-si4sk
-sis5ke
-si4sn
-si4s5te
-si4sti
-sis3to
-4sisy
-3s2it
-si5ta
-sit8ji
-si6t7ra
-si4t5re
-si4tri
-sit3s4
-sitsva9
-sit6term
-sit4tes
-si4umf
-4siut
-5siva
-si9van
-si6vek
-si8vi.
-si9våt
-1sj
-2sj.
-s2ja.
-8s5ja9g
-7s8jakk.
-4sjam
-s4jan
-4sjanl
-s7jarn
-2sj3av
-6s7jaz
-2sjb
-6sjd
-5s4je.
-sje4f3i
-sje4fla
-sjef5t
-sje3g
-sjek4t5o
-3sjel
-sje4lev
-3s2jen.
-5s2jene
-4s3jent
-5s4jer.
-s2je5s4
-5s4jet.
-sjet4ti
-2sjf
-2sjg
-s6jim
-2sjk
-2sjl
-2sjm
-2sjn
-2sjob
-5sjok
-4sjom
-9sjon
-sjons7
-2sjor
-2sjou
-2sjp
-2sjr
-2sjs
-2s6jt
-s6j3t6sj
-sju1a
-6sjub
-6s7jug
-4s5juks
-sju8la
-4sjun
-4sjur
-2s7jus
-5s2jø
-sjø3k6
-sjø1p
-sjø9rø
-sjø1s2
-sjø3t8
-8sk.
-1ska
-2ska.
-4skab
-skabe3
-s2kad
-8skae
-4s6kag
-2skak
-5s4kal8a
-ska5lar
-2skam
-s4kaml
-8s7kamp
-4s5kana
-4skande
-4skane
-4skano
-6skant
-5s6kap.
-9s8kapa.
-4skapas
-5skapen.
-6skapit
-4skapp
-2sk2ar
-sk5arab
-sk7arbe
-5skard
-4s5kark
-5s6karp
-6skars
-4skart
-3s8karv
-2skas
-4skate
-8skay
-4skb
-6skd
-2ske
-s4keda
-s6kedo
-s2keh
-s6kei
-skei5er.
-s8k5e4lev
-s6kelik
-skel3t
-s4kelu
-s3ken.
-s4kena
-s6kenav
-s4keno
-s5kens
-5skept
-s5ker.
-s4kero
-s5kers
-s2ke1s
-ske3si
-skes4m
-ske5sn
-s4ketet
-s3ke4t3j
-s6kev
-s2key
-2skf
-2skh
-1ski
-5s6ki.
-7skia
-4skid
-5skie
-5skif
-5s4kik
-s6kill
-5s4kilt
-ski6net
-ski4nin
-5sk8inns5
-4skino6
-5skiol
-5skip
-2skir
-s4kire
-6s5kirk
-sk5irs
-s6kis.
-7skiss
-4s5kist
-5s2kiv
-s6kje.
-5skjema
-6skjemas
-5s6kjer4m3
-3skjer5m4e
-7skjers
-3skjor
-4s5kjærl
-5skjøn
-6skjøp
-skjø5res
-2sk1k4
-2s1k2l
-6skla
-sk5lak
-s6k5lan
-s5klas
-sk9leg
-s6klei
-sk3lek
-7s8klero
-sk5ling
-sk5lit
-s4k5luf
-s2klyd
-2skm
-2skn
-s1knu
-4skoa
-7skodd
-4skof
-3s2kog
-2s3koi
-1skol
-7s4kola
-3skole
-4s3koll
-4skom
-s6koma
-s5k6ome
-6s1kon
-4skoo
-sk5ord
-s6korpi
-s7kors
-s8korst
-4skort
-2skos
-s2kot
-3skott
-sk8ra
-s4k9ra.
-5s4kral
-s4krat
-s2k7re.
-4s3kref
-6skreg
-5s8krek
-4s3kret
-5skrevn
-3skrib
-3skrif
-4skrig
-3skrik
-3skrip
-4skrite
-3skriv
-5s4krog
-s3kron
-4s3krop
-sk6rud
-skru3s6
-6skryss
-1s2krå
-2sk1s2
-2sk3t4
-5skud
-1s4kue
-sku4end
-sku4er
-skue5re
-1skuf
-5skulan
-5skular
-3skule
-6s5kulis
-4skull
-s4kulp
-4skult
-skum3s
-2skun
-s6k5underv
-4skup
-8s5kurs
-8skurv
-2skv
-sk5va.
-3skvad
-sk3vas
-s6kven
-sk3ver
-sk5vit
-3skvu
-1sky
-s6kya
-s6kye
-4skyr
-sky3re
-4skys
-6s6kyss
-5s6kysk
-3skyt
-6skæ
-6skø.
-6s5køa
-4skøe
-1skå
-skå5re
-6skåt
-sl4
-sla8da
-s3lade
-sla5ge
-sla8ge.
-sla5ke
-s5laks
-3slakt
-3slal
-4s3land
-4s5langs
-slap5pe
-s5laran
-s5lare
-4s5last
-s1lat
-sla4te.
-4s1lau
-8s5laus
-sla1v
-3slave
-sla4vin
-2sle.
-s8leda
-4slega
-s4legi
-s4legn
-s6legr
-6slei
-slei5er.
-s4leiv
-8s5leke
-s5lekk
-s2lel
-s4leme
-4sle7ne
-s6lener
-s6len6t3
-2sler
-8s5les
-s6lesj
-s4leso
-s6lest
-s4leta
-s5lev
-s4leva
-4sley
-s5lia
-2slid
-sli4en.
-6slig
-sli5ke
-s4likk
-2slin
-8s3linj
-slin6t5
-3slip
-5s4lit.
-3s4lite
-4s5liv
-slob5b
-slott4
-s6lott.
-7slottet
-1slu
-8slu7a
-2slu2e
-slu5es
-6sluf
-4slug
-sluk3s6
-slum4p5
-slum5p6e
-s3lund
-s5luns
-s6lup
-slu7sa
-s4lut
-s1ly
-sly8et.
-1s4lyn
-4s5lys
-sly8t
-6s7lær
-slæ6rari
-2sløn
-8s5løp
-slø4pa.
-s6lør
-2sløs
-slø8s5a
-3s4løsi
-slø5va
-slø5ve
-slø5vi
-5sløyd
-sløye7
-9s4lå.
-s4låe
-s1lån
-slå5ner
-1slåt
-s1m
-sma6d
-3smak.
-5s4maken
-sma9let
-8sman
-s4med.
-s4mede
-6s5medi
-s4medk
-smeg5
-4smei
-smek7l
-s4mekt
-8s5meld
-3s4mell
-5s4melt
-2s5men
-3s4mert
-6smes
-s6mesi
-s6mia
-s4mie
-smi4ene
-s4mig
-s6mil.
-smi7la
-s6mile
-smini6
-s2mit
-smo7a
-smo8de.
-s2mok
-6smot
-3smug
-6s5mugg
-smul2
-s6mula
-s4muld
-s6mule
-5smurt
-1s2my4k
-6smøn
-1s2mør
-smør3s
-4smøt
-5små.
-små5r
-s8mått
-s1n
-8sna.
-s4nab
-7snak
-4s3nas
-6s3nat
-4snav
-4sne.
-4sneb
-4sned
-5s8nedd
-s6nee
-s4neg
-3snei
-snei5er
-sne4kri
-s7nekt
-s4nel
-2snem
-4sner
-6snes
-sne9sa
-snes9v
-4snet
-s6nif
-sni6gl
-s2nik
-snik5ko
-3s2nil
-6s3nin
-3s2nip
-snir4
-5s2nit
-2s3niv
-s8no.
-s6noe
-s5nord
-6s7not
-5s6nud
-s3num
-s4nur
-7snut
-8snyh
-2snæ
-snæ4re.
-5s6nø.
-snø5d4r
-5snøe
-1s2nør
-snø1s
-snø5vi
-so3al
-so8ar
-4soav
-2s1ob
-so2bl
-1sod
-so4da.
-5soe
-sofa1
-so4fag
-so4fas
-6s5off
-6s5ofre
-soft1
-so2ga
-so8gi
-so7gl
-sog6nem
-6soh
-5s4oi4
-so5id
-5sokn
-4soks
-sok4se.
-7sol.
-so4la.
-sol5av
-1sold
-so4le.
-solei5er
-so4lene
-sol5f6
-1so7li
-8s7olj
-so2lo
-so8lo.
-sol3s2
-sol5t4
-so4lum
-so4lø
-3som.
-so6mend
-s3omf
-4s3omfa
-4s1omg
-5somh
-2s1omk
-4soml
-1som5m
-sommar5a
-3s6omme
-somme6r5e6
-2somr
-7somren
-5somrer
-6s3områ
-s1oms
-som5sl
-s4omst
-som5sti
-4somsy
-1s2omt
-5somt.
-6somta
-3son
-so4na.
-son7da
-7s6one
-so8nea
-song3s4
-so4n3o
-sons4k
-son5st
-so2nu
-so4ny.
-2s1o2p
-so7pak
-so9par
-so7pet
-3sopp.
-5soppa
-3soppe
-sop4pi
-8sopple
-so3pr
-1sor.
-7sora
-so3ran
-5sorb
-4s1ord
-sor4da
-1so1re
-so4rek
-7sorga.
-sor4gl
-so2ri
-4s3orie
-7soris
-so5riu
-4sorke
-sor5n
-3sor5s
-7s8ort
-1sos
-4s5osc
-so8se.
-6sosf
-4sosj
-so4sl
-so5te
-so8te.
-so4tra
-sots4
-sot5te
-sot4ti
-4sou
-2sov
-so3va
-so4ve.
-so5ven
-sover5e
-sove3s4
-5sovet
-3sovj
-sp2
-4sp.
-spa5g6h
-7spak.
-7spaka
-5spake
-8spakk
-s2pal
-s3pall
-5spalt
-3s4pann
-3spari
-4spas
-5s6paser
-4spe.
-spe4a
-8speda
-spe9dé
-s4pee
-1s2pei
-s2pel
-spe4leg
-spe4les
-5spelet
-8s7peng
-3s4penn
-s4pent
-s5pep
-spe4r5and
-6speri
-4sperl
-s4perr
-s3pers
-3spesi
-s4pest
-s9pet.
-1spi
-6s5pilo
-4sping
-s2pio
-2spip
-spi7res
-spi7ri
-spi7ro
-5s6piss
-2s3piz
-2s1pl
-8s9plant
-sp9lar
-4sple
-s4plin
-3split
-sp6o
-2spoe
-spo6et
-2spol
-5s6pole
-6s7poli
-s4pora
-s4pore
-5s4pors
-sport6s5
-3sporv
-2s5pos
-4spot
-s3pote
-spo5v
-9sprag
-5spran
-6s3preg
-5sprei
-8s7preik
-s4prek
-spre5ke
-s3prem
-5s4pren
-6s5pres
-5s4pret
-s6print
-s5prio
-8sprinsi
-8s3pris
-6s5prob
-s3prod
-4sprof
-5s6prog
-6s7progn
-6s7progr
-5s6pross
-1spru
-s4pry
-3sprøy
-5språ
-2s3ps
-8spub
-2spul
-3s2pyd
-5s2pø
-6s3pøl
-sp5øy
-9spå.
-5spåd
-8s9r
-sre8ka
-sre8ke.
-sri8e9
-sri8ka
-sri8ma
-sri4ve.
-s5ro
-sro4e
-sro6pa
-sro6sa
-sro6se.
-sro2t
-sro9te
-srot5o
-srø1v
-srå4da.
-sråde9r
-srå6ders
-srå8ma
-4s1s
-s7sabel
-s7sabl
-s6sae
-s4saj
-ssa8ke.
-ssa6la.
-ss5all
-ssa4me.
-ss5amp
-s5sane
-s7s8ar.
-ssari8e9n
-s7s6arm
-s4sarr
-ssar8ve.
-ss6as
-ssau8sa
-ssau6se.
-s6seet
-s2seg
-sse5ge
-ss5egg
-ss4el
-sse5li
-ssel5s
-ss9elv.
-ssel5v6å
-s2sem
-s5sen.
-sse8na.
-ss5enden
-s5sene
-s4seni
-ssen6ke.
-s4senu
-s6senå
-s5ser.
-s6serab
-s6serat
-sse7sk
-s4seski
-s4sest
-s7set.
-s9sets
-s2seu
-s4sey
-s2sh
-ssi4a
-ssi7e6rer
-s4siff
-s6silo
-s8s9ime
-s6s3ind
-ss5init
-ss3inj
-ss3inn
-s4s3ins
-s5sis4
-ssis5m
-ssi6v7end
-s5s6jarg
-ss4kape
-ss3kar
-sska8ra
-ss3kn
-ss3kof
-s7skog
-s4skor
-ss6ky.
-ss4kye
-ss4kå
-ss5kål
-s7skåp
-s2sl
-s8slip
-ss1lo
-ss5ly
-s2sm
-ss6nar
-ss2no
-ss4nø
-s4s5nød
-ss5nøk
-s2sof
-s4sok6
-sso5lo
-s2som
-ss4oma
-sso3ra
-s4sorga
-ss3ove
-ss6pil
-ss4por
-ss9ri
-ss2t
-s5stad
-ss4ted
-ss3tek
-sstel6li
-ss5tep
-ss7tilp
-s7stip
-sst6r
-ss5tren
-ss4trå
-ss3tus
-ss3t4v
-s2s3ul
-s3sur
-ssva7ra
-ss1ve
-ss8vek
-ssy6na
-ssy5r
-ss7øye
-s6så
-6st.
-2s1ta.
-stabs3
-3s6t2ad
-stad3a
-sta6d3o
-s5tafa
-3stafe
-sta5fl
-st3aft
-sta7ge
-4stah
-sta6ka.
-5stakk
-4stakl
-6stal.
-6sta4la
-sta5lak
-st5ald
-4stale
-sta4le.
-5s6tali
-5stalt
-s3tame
-3stamm
-sta5na.
-3s4tand
-6stande.
-st8ane
-s4tanf
-s4tang
-stang5s6
-st3anl
-sta8n9o
-s6t5antr
-st3anv
-4stao
-2stap
-s7tapa
-s4tapp
-s8tapå
-s3tari
-1stas
-3s8tasj
-4s5tast
-1stat
-4stato
-sta5top
-sta3tu
-3stave
-2s4t5b
-st7c
-2std
-2s3te.
-2stea
-2steb
-3sted.
-s4teda
-5stedt
-s2tee
-ste4en
-2s4tef
-3s6teg.
-stega6l
-s4tege
-3stegh
-4s5tegn
-s4tegr
-4stegsp
-5stegspl
-ste4her
-s2t4ei
-stei5er
-4steikn
-ste6in6s5
-3s4tek.
-4s4teka
-s6teke
-ste4ket
-s4teki
-4s5tekn
-4steko
-v4s5tekst
-s4tekt
-s8te5kv
-4stela
-ste5le.
-s5teleg
-ste5lev
-s5telig
-5stemd
-3s4temm
-5stemn
-4stemø
-sten5a
-ste4nar
-5s4tenen
-s4tener
-4ste5nes
-3s6teng
-s4teni
-6stenk
-4steno
-stens5l
-4steo
-s5teol
-2step
-step7per
-st8er.
-8s5tera
-s4teram
-s6terest
-s4terev
-s7t6erf
-s4terid
-ste7ris
-s6teri6v
-4s3term
-6sterr
-ste5run
-ster8ø
-2stes
-s4tese
-ste7sle
-4stet
-s4teta
-ste7t6r
-s6tetø
-4steve
-4stevi
-6stevl
-5stevn
-6steå
-2s4t5f
-2stg
-stga6ve.
-stgå8va
-stgå8ve.
-2s6t5h
-st5he
-2s3tia
-4stib
-s5tibe
-s9tibl
-3stic
-s6tick
-6s7tid
-s6tidel
-sti5en
-s2tif
-3stift
-s4tigen
-7s6tigi
-st9i8gj
-3stign
-s5tij
-6s5tika
-4s5tike
-s4tikl
-3s6til.
-5s4tila
-sti4lag
-4stild
-3stile
-stile9ge
-s6tilk
-6stiln
-s4tilo
-6s5tils
-5s4tilt.
-6s5tilta
-5stilte
-4stime
-sti7mer
-6stimé
-3s6timu
-s6t3ind
-s6tini
-4s6tinn
-s6tinst
-s6tint
-1s2tip
-4s3tipp
-6stips
-5stir
-2stis
-6s7tisk
-4stitt
-4stiå
-s4tja
-5stjel
-8s7tjene
-s6t5jent
-3stjer
-4stju
-2stk
-2stl
-2stm
-2st5n2
-s2to.
-1stof
-2s3tog
-4stoks
-6stokt
-3stoli
-4stolj
-s5toll
-4stom
-s9tomm
-st3oms
-6s5tomt
-4stoni
-st3ope
-st5oppl
-6s8t5ord
-sto4ret
-s6torm
-stor3o
-4stors
-st5o4s
-s1tot
-sto4t5r
-5s6tore.
-st5ou
-5stova
-2stp
-8str.
-st3ra.
-4s5trad
-s8traff
-6strafi
-6strail
-st3ral
-st4ran
-stra8na.
-5strand
-4strane
-6strans
-6strap
-4strar
-st7ras.
-st7rast.
-5s4traum
-s4tre3a
-s4tred
-7s6treik
-st5reis
-7strek.
-st5rekl
-strek4sa8
-6streni
-st5rer.
-6strers
-6strh
-9stria
-9s8trid
-5strie
-st5rige
-st3rin
-3s4t6rip
-5stri3s
-6stroe
-s5t4rog
-5s4trok
-st3rol
-6s4t5rom
-st3ron
-st7rop.
-st7ro6pa
-s6trope
-s6t7rug
-9s6truk
-st5rum.
-2stry
-6stryg
-s7trykt
-st5ryt
-4s3træ
-1s2trø
-6s5trøb
-s5trøkk
-st6røm
-4strør
-4strøs
-st5røse
-s5trøst
-4strøy
-6stråd
-2st5s6
-stsa6me.
-stsy8na
-4st7t6
-stta6le.
-st3t4r
-s4tua
-1s2tub
-3s4tud
-s2tue
-stu4el
-stu4er
-stue5re
-3s4tum
-6s3tung
-6stunn
-3s8tunt
-6s5tur
-2s4tut
-2stv
-s3t4ved
-1sty
-2stya
-2styd
-3s4tyk
-sty6l
-2s5tyn
-2s7typ
-3s4tyr
-styrs3
-6stysk
-4styv
-sty5ve
-1stø
-2støk
-5støl
-6støm
-5støp
-6størk
-5støt
-stø7va.
-stø5var
-stø3ve
-stø5vi
-st8øy
-1stå
-5s4tåe
-stå5k
-4su.
-1su4a
-su7a8l
-1su2b
-sub7l
-sub3o
-5subs
-s3ubå
-1sue
-su8er
-su2f
-5s2ug
-su6ga.
-su4ge.
-sug3g
-su2h
-3sui6
-su3is5
-suit5a
-su2k
-4s1uke
-3suk5k
-suk3r
-1suk5s
-su4le.
-3s4ulf
-su4lik
-sul4t5r
-s1ulu
-2suly
-sulæ5
-3s2um
-4s3umid
-su2mo
-sums6
-5sund.
-8s5under
-5sundet
-5s4undi
-sun6d7r
-9sunds
-sun4ge.
-6s7u2ni
-su4o
-3s2up
-su4pe.
-super3
-supi9
-su8p4r
-su8pre
-sur5d
-su4re.
-4s3u4rei
-1surf
-su4rie
-su4riu
-surs5k
-sur4sp
-sur4sti
-1sus
-su3san
-su4se.
-su6s5es
-4susi
-su4sik
-sus3p
-sus3s
-su2sy
-2s1u4t1
-sut6ra.
-sut8reg
-7suv
-8s5u6vi
-sv2
-6sv.
-sva5a
-svai5
-5svak.
-3svake
-6svaks
-sva4la
-sva4les
-6svalet
-5s6vali
-7s6vam
-s4var.
-s4varet
-s3varm
-3s4vart
-6s1vas
-6s1veg
-sve6g7i
-s5veie
-3s4veis
-s5veka
-6s5veks
-5s4vens
-sverd5s4
-sve4re
-sve8res
-3s4verg
-5s4verj
-s5verk
-sver4ki
-s4verm
-6s7verv
-7s4vev
-s4vie
-svi6e3l
-8svift
-4svig
-svi5ke.
-6svikg
-4sviks.
-3svikt
-4s5vikti
-4svil
-s6vindel
-svi4nes
-sving5s4
-8s7vink
-ll6svint
-4svir
-6s7virk2
-2svis
-svi4sa.
-svi4se
-svi5sen
-svi5ser
-s8viv
-svi9ve
-4svol
-5s2vor
-svor7t
-s3vr
-3svul
-5s6vulm
-s3vy4
-svye7ne
-1s2vø
-4svæs
-2s7vå
-1sy
-sy4c
-sy4de.
-sy5den
-5sye
-sy2er
-sy8ka
-sy4ker
-sy5kere
-2syko
-sy6kog
-7s4ym
-sy7me
-s2yn
-4s5yndl
-synk4
-sy6n5o6
-syn6sk
-syn3te
-sy4ra
-sy5rar
-s6yre
-sy4re.
-2s1yrk
-syr4ka
-syr4ke.
-3sy1s
-sy4se
-sy2sl
-sy6s7t
-sys4tr
-2sy2t
-sy5ten
-sy5t6h
-9sytt
-sy2vå
-s4z
-sz3c4z
-6szt.
-1sæ
-sæ2l
-8s3æ4re
-8s3æ4ren
-sæ4r1i
-særle9
-sær5s8
-7s6æ5te4
-4sætt
-1sø
-4sø.
-sø2d
-s1øde
-4søf
-søg4
-4søj
-9søk.
-3s6øke
-5søkj
-5søkk
-søk7kj
-3s6økna
-2søko
-søk4sk
-søk6s3e6
-5s6øksm
-søk4ta
-3s4øl
-sø4la.
-sø4le.
-sø5let
-3s2øm
-sø6må
-3sønn
-s1øns
-s4øp
-sø4ras
-sø4re.
-sø4r5end
-søren6de.
-sø8ret
-sør9ett
-7sørl
-sør3s
-sør5ø
-3s2øs
-4søs.
-sø8sa
-7søt
-sø7tast
-sø7tel
-sø5tes
-2søv
-s1øve
-3søvn
-2s5øy.
-4s3øya
-søy8de.
-6s5øyd
-8søye
-3søyl
-6s5øy4n
-søy2r
-2s7øys
-5såg
-s3å2ke
-5s4ål
-så4le.
-6s1ån
-sån4da
-sån6de.
-så2p
-9såpa
-så5pet
-6s1åpn
-såp9u
-så2r
-så6ra
-sår9ast.
-så4re.
-sår3sk
-sår7ø
-så2s
-s7åsa
-s4åsb
-s5åse
-sås5k
-sås5t
-9såv
-såva7
-ta1a
-4tabo
-tab2r
-tab2s
-ta4bu.
-4tabø
-ta1c
-4tad
-ta2da
-ta8d3ei
-ta6d3e4t
-tad5spa
-tad7s6v
-ta6du
-t8ae
-6taei
-4taek
-4tael
-1taen
-4taend
-4taenh
-ta6es
-2ta5fe
-taf7f6
-5tafis
-4tafl
-1tage
-4tagj
-8tah
-ta7is
-1tak.
-ta4ka.
-4takau
-ta7ken
-ta5ker
-tak7kel
-tak5k4l
-ta8k9la
-2takr
-tak4sal
-tak6se.
-tak4si
-4t3aksj
-5takst
-tak4tal
-4taktig
-tak4to
-t5aktø
-ta1ku
-tak3v
-1tal.
-ta9lam
-ta3lan
-tal5ang
-ta7las
-3tale
-ta4lei
-tal5eie
-ta4lek
-ta5ler.
-tale7s6
-1talg
-tal6ge.
-7talj
-talj5es
-tal4led
-tal4leg
-8t7allerg
-tall7es
-tal8lign
-tall6s7a
-tal4ly
-tal3op
-6talter
-t5altern
-ta6l9u
-ta6lå
-2tamb
-tamba6ne.
-t3ambi
-t4ame
-4tamet
-tam4i
-2ta3m4o
-tam5v
-t6an.
-ta2na
-tan5ab
-4t3anal
-ta3nar
-ta5nas
-ta5nat
-t5andak
-5t6ande.
-t7andel.
-t5andele
-tand5r
-tandø4
-tandør5e
-1tane
-ta4nel
-ta5nem
-4tanett
-t3anfa
-tanfø6
-6tangf
-6t3angr
-1tank
-2tanl
-t3anle
-2t1anm
-3tannl
-t5anno
-tanns4
-tan6sk
-tans5ka
-t5an5sl
-4t5anstr
-4tansv
-8tantil
-tan4tra
-6t7antre
-t3anve
-2ta3o4
-5tap.
-ta4pa.
-1tape
-ta4pe.
-3tapi
-4tapl
-4tappa
-5tappi
-1t4ar.
-t6ara
-ta4r3ak
-4taram
-ta6rare
-2tarb
-3tarbo
-5tarbø
-4t9arena
-6t7ark.
-tar8ka.
-4t5arke
-4t3arki
-4tarra
-tar9si
-tar7sp
-tars6v
-4tart
-tart7est
-t5artik
-tar7tit
-tar4t3r
-ta6r5å8k
-4tasa
-ta3se
-6t9asf
-t3a4sia
-tasi3e
-ta4sif
-ta4sil
-ta4si5s4
-tas4p
-tas5s4
-tas8tas
-6ta7sto
-ta7str
-4tasu
-ta1ta
-ta7tes
-tate8se.
-tat5e4v
-tati1
-tat3op
-tat2s1
-tat3te
-t3attr
-1tau
-9tau.
-7taue
-4t5aug
-2t1a4uk
-4taun
-tau4ne.
-tau4sk
-2taut
-2tav
-6tavin
-3tavl
-4tavli
-ta9xy
-6t1b2
-tba3d
-tba2n
-t6be.
-tbe6te.
-tbe6t7r
-tbe6t8ra
-tbo6da
-tbu8da
-tby3k
-tby4s
-tby7te
-2tc
-t1ce
-tcen4
-tch5e
-t5co
-2t3d
-tdy5pe
-1te
-4tead
-4te3ag
-2teak
-2te9a8l
-tea6m
-2tea2n
-2teap
-2tear
-te5arb
-tea4s
-3teatr
-4teatt
-2teau
-2teav
-4teb
-t5ebb
-tebu8da
-4tecel
-te1co
-2ted
-6t5eddi
-3tede.
-4tedeb
-te7def
-4tedek
-4tedel
-4tedem
-te5den
-4tedi
-5tedil
-4tedo
-tedo6en.
-tedo4er
-tedo8et.
-te4dor
-ted4sk
-ted4sl
-6tedu
-4tedy
-tedyr9k
-4tedø
-te3e4
-2tef
-8tefa
-4tefi
-4tefl
-4tefo
-tefo8r
-t3efte
-3tefø
-2tega
-5tegat
-4t3egd
-te7gea
-te9gee
-4tegg
-teg8ga.
-2tegh
-te4gim
-2tegj
-2tegl
-te3gla
-te9g8li
-8tegs.
-6tegspl
-6tegsv
-2tegu
-tegvi8
-2tegå
-5tegås
-4teh
-5tei.
-2tei4d
-t3eie
-t3eiga
-tei6ga.
-t7ei6ge.
-6teigr
-3teikn
-tei5le
-te1im
-6teinf
-te4inne
-te5inte
-te5i4s
-6teiso
-2tej
-te7ken
-te5ker
-4tekil
-2tekj
-5tek1k
-2tekl
-te5k4la
-tek6lede.
-tek4li
-4teknu
-2teko
-2tekr
-te7kra
-te6k5ru
-9teks.
-4t3eksa
-t3ekse
-4teksp
-t4ek8st
-tek8t9r
-tekt4s
-tek6ty
-2teku
-te2k3v
-4teky
-2tekø
-4tekå
-2te3la
-tel6ak
-5te4l5ar
-3telav
-8te4le.
-4teled
-4telei
-4telek
-4teleme
-te4lene
-6teler
-te4les
-te5lesk
-4te4lev
-te6leva
-4telid
-4telik
-4telil
-4telin
-te4lir
-4telis
-4telit
-4teliv
-tel5lef
-tel4lei
-tel4lev
-tel8lign
-tel4lo
-2telo
-tel3se
-telses5
-t3elsk
-tel7s6v
-5teltet
-2te1lu
-7telut
-2tely
-6telæ
-2telø
-telø8pa.
-2telå
-2tem
-3temae
-6teman
-te4mans
-t5emba
-6temenn
-5temik
-tem9ma
-6temn
-tem5ne.
-tem5ord
-tem5pe
-tempe8l7
-3tempo
-tem3s
-4temø
-3ten.
-te5nab
-te4n5al
-ten8am
-te4nan
-te4nat
-ten5at.
-6t7enc
-6t5en6den
-4tendr
-4tened
-te5neg
-6tenem
-6tenerg
-5tenes
-4tenet
-2teng
-7tengon
-t5e4nig
-7tenik
-5tenis
-4teniv
-ten9no
-te4nom
-te5nor
-6tenorm
-4tenot
-te6nov
-6tenó
-ten3sa
-ten5sko
-ten6slu
-ten3so
-tens5v
-ten4t5in
-tentle8ge.
-4tenum
-4teny
-4tenæ
-2tenø
-ten5øks
-2teom
-5teon
-4teop
-te6ora
-te6ori
-4teord
-2teov
-2tep
-te3pa
-4tepak
-tepa9ra
-4tepas
-4te5pe
-7tepee
-9tepé
-tep6pere
-t5e6ple
-4tepr
-4terac
-te7rakk
-6teramm
-ter7apa
-4terapp
-te4rare
-6terasa
-4terase
-7terast
-terba6ne.
-t6er5d
-4tered
-4teref
-4tereg
-4tereis
-te4rel
-8terem.
-6teremm
-te4r5eng
-teren6ga
-6terenn
-4terep
-te4rerk
-ter5esti
-4terett
-6terevo
-3ter5g
-3terh
-te4rig
-4terik
-4terisi
-te4riv
-ter5j
-4terk.
-4terke
-4terkh
-7terkr
-6terks4
-4terkt
-terla6ga
-terle7ge
-terle6ve.
-ter8ma.
-ter3no
-tern5s
-te5ro.
-tero6e
-te3rof
-4teroll
-4terom
-5teromr
-4te3ros
-4te3rot
-tero6v
-ter5r
-5ters.
-5tersjøo
-ters4kl
-ter7s6ko
-ters4l
-ters4h
-ter3s4m
-ters6ne
-ter5sv
-tersø6ke.
-3ter3t
-ter9to
-ter9ul
-8terum
-ter7v
-tervi6se
-2tery
-ter5ør
-4terøt
-te4r3øv
-4teråd
-te4r3ås
-t4es
-5tes.
-2tesa
-5tesar
-te7sen
-2te1sh
-4tesid
-4tesik
-6te3sin
-4tesit
-4tesj
-6tesjef
-4te1sk
-t9es6ka.
-6teski
-te5sko
-2te1s2m
-7tesmåe
-2te1sn
-2te3so
-6tesp
-5tesr
-3tess
-5test.
-4testaf
-tes5tas
-4testat
-5tes7te.
-4te5stei
-te5s6tiv
-5testid
-tes4tik
-4te5s4til
-4te3sto
-4te3str
-4testy
-4testø
-2tesu
-4te1sv
-tes8væ
-2tesy
-2te3sø
-te7så
-te8sår
-teså9re
-3tet.
-teta6ka
-teta6le.
-te4tap
-te3te
-5tete.
-tete4e
-4teteg
-4tetei
-4tetek
-4tetem
-2teti
-3tetik
-3tetis
-2tetj
-2teto
-2t8et2r
-3tet2s
-tet5ti
-tett3s
-2tetu
-5tetu.
-2tetv
-2tety
-te2t3å
-2teu
-teu8k
-t1eur
-3teus
-2tev
-t6eva
-te4valu
-3tevl
-tevo6r
-te3vr
-2tey6
-2teø
-2teå
-4téa
-2téb
-2téf
-2téh
-2téi
-4téle
-2tém
-2tése
-4tést
-6t1f
-tfe6e
-tfe4l
-tflå3
-t7fo
-2t3g2
-t4ga.
-tge4a
-tgei5
-t4gi.
-tgi5ros
-tgrei9e
-t4gå.
-2t1h
-t4hap
-t4hea3
-thei5m
-t6hesi
-tho7li
-tho3re
-3thr
-thu5le
-thu6s
-thy5r
-1ti
-2tiad
-ti3ag
-2ti1ak
-4ti3all
-ti5als
-2tia2m
-2ti1ap
-ti3asp
-4tiau
-2tiav
-2tib
-2tick
-3tid
-ti2da
-4tidan
-tid7d
-6t3idee
-4ti5dem
-4t7idé
-4tidis
-4tido
-4tidr
-2tidu
-tidvi4
-6tidy
-4tidø
-ti1e2
-2tief
-2tiei
-2tiem
-4tienh
-tie5ra
-4tierf
-4tierk
-ti4ert
-ties3
-ti3esk
-ti3et
-4tieta
-4tiett
-2tifa
-tifa8ne.
-2tife
-4tifl
-2tifo
-2ti5f6r
-t8ifrå
-4tift
-tif5te
-2tifu
-4tifø
-ti9ge.
-4tigj
-2tign
-3tigno
-ti6gun
-2tih
-2tii
-2tij
-ti3ka.
-6tikarr
-ti5ke
-4tiket
-4ti5ki
-6tikj
-tik4kj
-2ti3ko
-2ti1k2r
-ti3ku
-6tikular
-6tikult
-6tiky
-4tikø
-t4il
-tila6ga
-til1d4
-3tilde
-2tile
-ti3lei
-3tilfe
-3tilg
-til3id
-4tilke
-3tilkn
-4tille.
-4tillh
-4tillin
-tillø7
-4tilm
-7tilnæ
-3tilst
-til3t4
-4tilte
-2tilu
-2tilø
-ti7mab
-5timat
-ti4me.
-5timedie
-ti4mera
-5timeri
-2timl
-4timo7
-4tim6o8r
-2t1imp
-tim7s
-2timu
-2timy
-2timø
-ti6nab
-tin5art
-4tinaz
-2tind
-t3indu
-ti4nem
-4t1inf
-tin5ge4s
-6ti4nit
-6t5inj
-2tink
-7tinks
-4t1inn
-6t5inne
-ti5no
-tinsk5
-4tinsp
-4t3inst
-4t1int
-2tinv
-4tinva
-4tiny
-9tiol
-6ti7om
-tion9s6
-4tiop
-ti1or
-ti1ov
-ti3pa
-ti6pla
-4tipr
-3tips
-2tir
-tira4t
-ti4ref
-ti1ro
-6tisak
-4tisam
-ti5s6an
-ti3se
-4tis4ei
-4tisek
-4tisel
-4tisem
-4tisep
-tise8ra.
-4tisers
-6tisig
-4tisio
-4tisje
-4tisju
-tis4ka
-4tiskan
-4tiskil
-tis5kok
-6tisku
-tis5l
-4tisn
-4tiso
-6tisprå
-4tistat
-tis4ti.
-tis4til
-ti5stre
-4tisty
-4tistø
-ti8støy
-2tisy
-2tit
-ti7ta
-ti8tar
-ti3te
-ti1tj
-3titl
-tit4r
-tit3s
-3titt
-4tiub
-2tiut
-ti4v5and
-tiva9re
-ti4v5art
-tiv6is
-2tivo
-tiv5si
-tiv5sk
-4tiy
-ti5ær.
-ti7ære
-ti9ært.
-ti1ø8
-2tiå
-6t3jag
-2t1jak
-t5jarn
-2t1je.
-2t1jeg
-2tjel
-1tjen
-tjen6st
-6tjep
-2tjer
-t5jev
-2t1ji
-6t5jing
-2tjo
-t5jord
-2tjub
-tju4e
-2tjun
-6tjur
-3t8juv
-tjæ4res
-2tjø
-4tjå
-4t3k2
-t6kag
-tka8ra.
-tkly9
-tku6le.
-tkå8pa
-6t3l6
-tla4ga
-tla8te.
-tle6da.
-t4ledr
-t6lef
-tlei5er.
-tle8se.
-tle5ti
-tligh6
-tlight5
-tli6nes
-tli4te.
-tlu4e
-t6l7ut
-tlø4pa.
-tl7øy.
-tlå3ne
-tlå7r
-2t1m
-tma3d
-tma8ge.
-t6maku
-t2mam
-t2meg4
-tme3in
-t2mek
-tmini6
-tmin5s6
-t2mos
-tmå4la.
-8t1n
-t3na
-t6nee
-t4neli
-t7nelig
-tne4rek
-tne4r5ø
-tne8se.
-t4nesk
-t4nest
-t5ni
-t8no.
-tn5sk
-tnæ6re
-7toan
-7toar.
-toa6t
-6toau
-2toav
-tobe6r
-t3o2bl
-6tobs
-4toc
-to5da
-to9de.
-to4dera
-3todo
-1toe
-2toek
-6toel
-toe4t
-2tof
-6toff.
-t3ofre
-to5fri
-to2g3at
-to7gen
-4togg
-to6gl
-6tograv
-to4gre
-tog3st
-to2gu
-2toh
-toil3
-2to1in
-4toj
-t6ok
-1to3ke
-to3ki
-2tokj
-2tokk
-tokk5end
-to3kl
-5toksi
-5tokt
-2toku
-to4l5arm
-5tolat
-to5lel
-tolele7
-5tolera
-toli8ne.
-2tolj
-1to4l3k
-7tolki
-tol4lab
-tol4lag
-tol6leg
-tol6lett
-3tolo
-tol5tr
-4tolå
-to9ma.
-2tomb
-to5mene.
-2tomf
-4tomg
-to3mi
-to5mise
-to7mist
-4tomk
-tomlø8pa
-t8omm
-2tomr
-4tom1s
-5toms.
-1ton
-to5na
-to4ned
-to4nel
-tong5s4
-to8nib
-2tono
-ton3sa
-ton5s4l
-ton5sp
-2tonu
-to4ny.
-2to3o
-4to1pl
-4toppd
-6toppg
-6t5opple
-4t5opplæ
-top4po
-4toppt
-4topr
-to1ra
-to4rak
-tor5alt
-tor5ang
-to4r5ant
-to4r3as
-4tord
-tor8da.
-to1re
-6toreg
-to4rek
-tor7eks
-to7rem
-6torent
-5torer
-tore4t
-tor5ete
-4torga
-tor5int
-tor7k8u
-tor7me
-torm5s
-tor5na
-tors4i
-tor5t8
-torvei5
-to4rø
-4torå
-to1s
-4tosa
-4to3se
-to2sh
-6tosj
-tos5ke
-to8sku
-4tos2p
-2tosy
-4tota
-to5te
-to8ti.
-to5to.
-to4tor
-6toty
-2tov
-to1va
-to7veg
-to5verd
-tove7re
-t5overs
-5tow
-4toø
-6t3p2
-t7pa
-tpi7ne
-tpi7pi
-tpo4et
-t4påk
-tr4
-8tr.
-6t9rabat
-3trafi
-tra7in
-tra8ka.
-trak7to
-tra7mu
-t5rane
-3t6rans
-tran7ske
-5trap
-tra3pe
-tra5po
-tra5r4
-5trase
-tra5se.
-tra5ses
-5trasé
-t2rat
-t5rate.
-3trav
-tre4al.
-tre1c
-4t3reds
-t3refu
-6t1reg
-t5regi
-4trei
-tre5int
-6trek.
-4treke
-4trekl
-4t3rekor
-4trela
-3t6re7na
-tre5ne
-t6reng
-3t6reni
-4t3renn
-tren6sk
-t7repe
-t5repres
-t2rer
-t4rero
-t4re3ru
-2tres
-6tresi
-tre5sko
-tres4l
-3tresn
-t5resu
-t1ret
-t4reta
-t6reto
-t5retted
-5t6rettel
-4trev
-tre9va
-t6rib
-4t1ric
-4t4rid
-tri7ei
-t5rig.
-t4rikk
-t8rina
-t4ri5ne
-4t5ring
-3trinn
-7t6rio
-6t5risk
-t4rist
-tri5to
-t4riu
-t2riv
-tri7vi
-5trix
-3t4ro.
-5troa
-tro9ar
-3troe
-t4rof
-tro5g
-3t2roi
-tro3in
-t4rok
-t2rol
-4t3rom.
-t6rond
-5t4rong
-tro5per
-t2ros
-5t6rosk
-tros3l
-tro1v
-t8ru.
-t8rua
-7trua.
-5trued
-5truet
-3trug
-tru1i
-5trukn
-t3rull
-2t1run9
-t3rund
-4trupe
-tru5sa.
-7t6rusk
-2trut
-t5ruta
-t3rute
-t3ruti
-tru5v
-try3dr
-3t2ryg
-tryg5ge
-7trykk.
-5trykke
-try7pe.
-t6ræ
-trø8a
-t5rød.
-t5rødt
-4trøk
-4trøm
-2trør
-5trøt
-5trøya
-5trøye5
-trøy9et
-4trøyr
-6trøys
-5trøyt
-trå8da.
-4trådet
-trå4dr
-t6råkl
-t3råst
-4ts
-6ts.
-t5sa.
-t5sab
-tsa2g
-tsak6se.
-ts1an
-ts4ang
-tsau6r
-t1sc
-t6scha
-t6sch5k
-t5se.
-tse6d
-tse4er
-ts5ege
-tsei4d
-ts3eig
-ts2em
-t3sen.
-ts4ende
-t5sendi
-tsen8ka
-tsen6ke.
-t5sens
-t4sentu
-t5ser.
-t3seri
-t4s3erk
-tser3o
-t5s6ers.
-ts4es
-t4sesk
-ts5e6st
-ts3eta
-tse4te.
-ts1e4v
-ts3f
-ts4fæ
-t7s8hop
-ts7ill
-ts3inn
-t4s3ins
-t5sir
-ts5jeg
-tsje5t6sj
-ts5jor
-5t6sjov.
-t7sjuk
-t4sjur
-t5skad
-t4skan
-ts6kis
-t4s5kjed
-ts6kjø
-t5skol
-t6skoll
-t7skot
-ts5kren
-tsk5ru
-ts5krø
-ts1k6v
-ts9kvi
-ts6ky.
-t6s7kyn
-ts1l
-t7s6lo.
-t3s4lot
-ts2lu
-ts5lø
-t5smit
-tsmå6la.
-ts1o
-t4s5o4d
-t5sok
-t5somst
-t5spek
-t3spel
-ts2pi
-t2s3pike
-t3s4por
-ts5s4
-t1st4
-t2s3tabb
-t5stad
-ts3tak
-t4s3tal
-t5stand
-t5stang
-t5star
-t5stat
-ts6tau
-t3sted
-t4steg
-t4stek
-ts6tig
-ts4tik
-t4stilk
-t4stin
-t4stit
-t2s1tj
-t8stolk
-ts5ton
-ts5tors
-ts5tree
-t4s5tren
-t4s5tro
-ts3try
-ts6trål
-t5stu
-ts3tv
-t4sua
-tsu7ge
-tsu4l
-ts3uli
-ts3u4r
-ts5usi
-ts1v
-t3svik
-ts1w
-t5syk
-ts5yt
-tsø8ka
-ts5økni
-ts5øv
-tsøy8er
-ts1å
-tsåt8
-8tt
-t1ta
-t3ta.
-t2tab
-ttaba6ne.
-tt9abo
-tt5adr
-t2taf
-tta9fr
-tt3aft
-tta4la.
-t6t3ald
-tta7lel
-ttall4
-t4t3ana
-t5t6ane
-t4t3ang
-t4tans
-t4tanv
-tt5appe
-t7t8ar.
-ttare6
-t4tarr
-tt5ar5t
-tt6arta
-t4tase
-t4tasj
-t4tav
-tt3avi
-tt5avk
-tt5avr
-t3te.
-t2tea
-t3ted
-t4teda
-t5tede.
-t8tedr
-t2tee
-t4tef
-tt3eff
-t2teg
-t2tei
-tt7eid
-tte3in
-t2tek
-tte7kv
-tt7elev
-tteli6te.
-t4tem
-tte4ma.
-tt5emn
-ttem8na
-ttem6ne.
-t3ten
-t5ten.
-t4tena
-t5tene.
-t4teni
-tten5s
-t9tens.
-t4t5ense
-t2teo
-t5ter.
-t4terei
-tter5un
-tte4r5ø
-t4terå
-t4tese
-t4tesi
-ttes6ke.
-t4tesl
-t5tet.
-t4teta
-t4tete
-t1té
-t8th
-tt5he
-tti5a
-t4tidel
-tti3e
-t2tif
-t5tig
-tti4g5j
-tt3ind
-t5tine
-t7tiné
-t5ting
-t4tini
-t4t3ins
-t4tisj
-t6tisti
-t7tite
-ttle6de.
-ttlin5
-t1to.
-t5tofr
-tt5om.
-t7tomr
-t2ton
-tton6na
-tt3opp
-t5tora
-tt3ord
-tto5re
-tt5o4ri
-tt3orm
-tto5u
-ttpar4
-tt6pås
-tt9raka
-tt5rake
-tt3ram
-tt3rap
-tt7rat
-t4t3rep
-tt3res
-tt3rev
-tt5rom
-t5trop
-t5try
-t2t1rø
-t6ts
-tt7saf
-tts3ar
-tts5kan
-tts5kj
-ttsla6ga
-tt3sok
-tt5still
-tts5top
-tts5tra
-tts5tøy
-tt3ugl
-t1tum
-tt1un
-ttun6ge.
-tt1ut
-tt8ute
-ttva8la
-tt5ve
-tt6vun
-t5tw
-t5ty.
-tty8e
-tt1y6t
-ttæ6
-tt3ø4l
-t1tør
-tt3øv
-tt7øy6r
-tt1å4
-5tual
-4tu4av
-tuba3
-tu4be.
-tu6bå
-tu6dem
-5tuel
-tu4er.
-tug8la
-tu1in
-tu2k
-t5uka
-t1uke
-7tukt
-3tula
-1tule
-tul5les
-tum5m
-tum4s
-3tun.
-4tund
-3tune
-tun5gesv
-6tungd
-tung9s
-6t5uni
-tu4nio
-5t4un5n
-9tuns
-3t2ur
-tur7ant
-tu4ras
-4tu4rei
-tu4rek
-turi4
-tu4rin
-tur1o
-tur3p
-tur5s4
-tur3uk
-tu5rus
-tur1ø
-1tus.
-tu1sa
-3tusb
-3tusf
-tu4sin
-tu4sm
-tus5o
-tus7s6t
-tust6r
-tus5u
-2tutg
-t5utj
-t5utk
-t1utr
-tut8t7rå
-tut6tenk
-tut5tor
-tutt5ov
-tu8va.
-2t1v
-tv4a
-tva8k
-tva6ne.
-3tvang
-t4v5anl
-8t9var
-tve5del
-3tveit
-4t7ver
-tvert5
-t2vet
-3tvet.
-7tvets
-t5vik
-tvi8ka.
-t8viklas
-5t4vil.
-tvi5la
-5t4vile
-t4vi5l4i
-t6ving
-tvi4sa.
-tvi4se.
-6t7vo
-3tvung
-6tw
-twa2
-1tyd
-tyg9gel
-tyg5ges
-6tyh
-tykk5s6
-ty4med
-1tyn
-ty4ne.
-6t5yo
-1typ
-5t6ype
-ty4pere
-ty4pet
-ty4rak
-5tyrann
-6tyreg
-ty4rep
-tyre5st
-ty4ri.
-tyri9e
-ty4ri5s
-ty2s
-3tysk
-tys3t
-2ty2t
-ty8ta
-t3ytel
-ty5ten
-ty4ve.
-2tz
-t5za
-5t6zel
-6t6z5l
-1tæ
-tæ5l
-tær6ene
-tæ4renh
-tær4er
-tær4et
-tær5s4
-tøf3l
-2t1øk
-tø9ket
-tøk8ta
-4tøl
-t7ø4let
-5t4øm5
-tøn5nes
-4tøp
-tøp5se
-t2ør
-tø4r3as
-tør3in
-tørk4
-7tørk.
-9tørka
-5tørke
-tør5ne
-tørs7ta.
-tørs7ter
-tørs5tin
-tør3t
-tøs4
-tø8sa
-4tøt
-tøt5a
-tø5ta.
-tø3te
-tøtt6
-2tøv
-tøv6d
-tø7vele
-t4øy
-tøy5a
-t9øyem
-tøy5r
-tøy5te
-tå4en.
-tå2k
-tå5ket.
-tå5ki
-tåk6r
-tå2l3a
-tå9la.
-tå4leg
-tå7lel
-tål5s4
-tån8da
-tån6de.
-tå3ne
-4tåp
-tå6pe.
-t1åpn
-tå6re.
-tå4rep
-t3året
-4t5åri
-3t8årn
-2t1års1
-tå3s
-tå2t
-t3åtak
-tå7ten
-ua7g
-u1ak
-uak3s
-u1al.
-ua7la
-ual5l
-ual3o
-ual3u
-u3a4ne.
-u5anl
-u3ans
-u1ar.
-uar5d
-u4arr
-u5ars.
-uash3
-ua3t
-u5au8
-u1av
-1uavh
-u4ba.
-ub7alt
-ub7ant
-ub5ark
-ub4bo
-ub2br
-ub4bu
-ubel5s
-ub5h
-ubi6s
-ubis7t
-ub1j
-ub7lande.
-uble3s4
-u1b4r
-ub5rin
-2ubs
-ubu8e
-u4bå
-uch5en
-uch5er
-u1ci
-uck1
-ucu5
-2ud
-u3da.
-u7das.
-ud4dag
-ud2dr
-udd4s5e
-ud2då
-udea9
-ude8are
-u2deb
-udeie5
-udei5er
-u2dek
-ude3lu
-u2dep
-u6dero
-u2des
-u3d2et
-u6d5ett
-u5devo
-udia2
-udi3an
-udi4en
-udio5
-ud7ir
-ud7ji
-ud5leg
-udle6ge.
-u7dob
-u6doe
-u2dot
-udover7
-ud1r
-udse4
-ud3t
-ud5v
-3u4dy
-udy9ra
-ud5å4s
-ue5a8
-u5ei
-u1el
-uem8na
-u1e2n
-uend5r
-u7ene
-u8e7net
-uensar4
-ue7o
-u1er
-u5e6rast
-ue4re.
-ue5ren
-ue4rer
-ue4res
-ue5ri
-uerle7
-u2erm
-ue4se
-ue2si
-ue4skj
-ues6n
-u1et
-uet8r
-ueul8
-u4fe.
-u6feb
-ufe6e
-uf1f4
-uf4f5erm
-ufi9l
-ufi5ne
-u1fl
-u6foa
-ufor3s
-u1fr
-uft3a
-uf4tan
-uft5s4la
-uft3sp
-ufø6
-u5gag
-u5gar
-u6g5av
-ugby7
-u2gem
-u5gen
-u3ger
-u4gerø
-u2ge5s4
-u9get.
-u8geta
-u2gev
-ugg3s4
-u5gis
-u4gl
-ug1la
-u5g4lad
-ug9lar.
-ug4le.
-ug9ler.
-ugle7s
-ug5ly
-ug7na
-ug7ne.
-ugo1
-u4go.
-ug4re
-ugrei9er
-u4grø
-ug5s4i
-ugs4k
-ug7so
-ug3s4pr
-ug5s4va7
-uguay7ans
-ug5øyn
-u1h
-3uhel
-ui8a
-u4i6c
-ui2d
-uid5el
-uid5en.
-uid5ens
-uid5er
-uid5in
-ui3e6
-u4il
-uil5l
-u1im
-ui3ne
-u1ing
-uinnsmi8
-uinnsmig9
-u1ism
-uista7
-uit3en
-uit5er
-u1itt
-u1j
-u4jas
-u8je.
-u7jå
-4uk.
-u1k2a
-u7kar
-ukare6
-ukar5t4
-u5kat
-u2ke.
-u4ked
-uke5l4
-4ukem
-uker5an
-uke4rek
-uker5i
-ukho7
-u7ki
-u1kj
-4ukk
-ukk6a
-uk7kestal
-uk8k9l
-ukk7n
-ukks6
-u5klem
-uk8lu
-ukl7ut
-u5k4no
-u1ko
-u4k5og
-u2kra
-uk3rus
-2uks
-uk2sa
-uk4sek
-uk4sel
-ukse7te
-uk2si
-uk2s1k
-uk7ski
-uk2so
-uks5t
-uk4s3un
-uk2sø
-ukt5e4sk
-ukteslø9se
-uk4t3id
-uk6tj
-uk4t5ori
-uk2t7r
-ukts6l
-ukt3sp
-ukt9s6v
-ukt4sti
-uktu8e9ra
-uktue5re
-u1ku
-uku6e
-uku5le
-uk5vik
-ukys8
-uk3ø4
-uk5å4
-6ul.
-u1la
-u4la.
-ula7d
-u6l1af
-u8l7aks
-ul5art
-ul4det
-u4lef
-u2lek
-u2lel
-ulele8ge.
-ule5ma
-u3len.
-u6leni
-u3lens
-u5ler.
-u5lere.
-ule3ri
-u2l3erl
-u4lero
-u2les
-ule3st
-u5lest.
-u5leste.
-u2leu
-u1lé
-ul5f6l
-ul4fo
-ul4fr
-u3l4i
-ulie8
-uli9en
-uli5ke.
-3ulikh
-uli9na.
-uli5ne
-u7linj
-ul1j
-ul5ka
-ul5k6e
-ul4k3v
-ul4lag
-ul4lam
-ull7arm
-ul4leg
-ull5egg
-ulleg8ga
-ul6leng
-ul9lere
-ul4le3s4
-ul8li.
-ul8lig
-ulling7s
-ull5i4v
-ul4l3o6s
-ul8lot
-ullo3v
-ull5sle
-ull3s6m
-ulls4t
-ull3sv
-ul2lu4
-ul6ly
-ul2lø
-ulm4u
-u1lo
-ulo6i
-ul5op
-ulo7va
-ul4sk
-uls4po
-ul8sn
-ulss8
-ul2st
-ul8s3t6r
-4ult
-ul4teg
-ul4tek
-ul4tes
-ul4til
-ul4tim
-ul4to
-ul7tor
-ul4t3re
-ult3ri
-u7lua
-u3lue
-1uluk
-u5lup
-u5lus
-ul9ut.
-u7luta
-u9lute
-ul7va.
-ul5van
-ul4var
-ul4ve.
-ul4veg
-ul4vei
-ul4ves
-ulv3t
-ul4v3u
-1uly
-ulyk5kes
-ulæ6ra
-ulæ5re
-ulø3se
-uløy6e
-ul5å6l
-2uma
-uma8ge.
-u6mare
-um5au
-umau7ken
-um3av
-2umb
-um5be
-4umc
-4umd
-2ume
-u4mend
-u4m3enh
-umen4t5i
-ume5ra
-2umfo
-2umh
-2umi
-u6midd
-umie6n
-umi9na
-u4mint
-um9ja
-2umk
-4uml
-4umm
-um3me
-um4mil
-um4mis
-um3n
-umna8
-4umo
-umo6g
-um5ok
-2ump
-um7pan
-um4ple
-um4p7ut
-4umr
-ums1
-um7se.
-um4sku
-umsku8le.
-um2sn
-um4sor
-ums3t
-ums4tø
-6um7t
-umta8l
-um5ut
-4umve
-umør3s
-um7øy
-umå7
-2un.
-una6da
-un5alg
-u4n3ap
-u9nar
-u7nas
-u3nat
-2und.
-6unda
-6unde.
-un4dek
-un4del
-6unden
-5undersk
-5underv
-4undet
-un6d7im
-4unds
-und5s4i
-u2ned
-u4nee
-u9nei.
-u2nel
-unele6ge.
-u4n5eng
-u4neno
-u2ne1s2
-u3nes.
-u2nev
-unev5n
-1ungd
-ungele8ge.
-un4gem
-un2g1j
-un4g5l
-un4go
-un2g1r
-un9g8ru
-ung3s4i
-un6i
-u4ni.
-u2nid
-1u2nif
-u4nim
-u3nin
-3union
-uni4st
-4unk
-un4k5l
-un7ko
-un4kr
-un7nak
-unn5erf
-un4n5ers
-un4n5erv
-un5nes
-un4niv
-un2no
-unn5ste
-unnta8la
-un4n3y
-u4no.
-u2n3os
-uno7t
-4uns
-un6sj5i
-un3skr
-un5s6kv
-un5sn
-un5s4p
-un3stek
-unst5e6l
-un7s6tenk
-unst3o
-un1s2v
-un4tal
-un4tam
-un4tas
-un3t2r
-unt5rep
-un4tri
-untun8ge.
-unu6
-un5ut
-u3ny
-u3nø
-un5øy6d
-u7nøyg
-u3nå
-uo9a
-u1ob
-u1om
-uom7s
-u1op
-uor8da
-uo1re
-uo5ro
-u1ov
-up3av
-u3pea4
-u5per
-uper3a
-upe6ren
-u4peta
-6upf
-up6h
-u3pi
-u8pi.
-up3ins
-up3li
-up6nev
-upo9pe
-up1p2
-up4ped
-up4pla
-up6pre
-upp5s
-4upr
-u3pra
-6ups
-up6sen
-up2s3k
-ups4ke
-ups5pr
-6upt
-6upu
-u1på
-upåvi6
-u1ra
-u2rad
-u2raf
-ur3aft
-u2r1ak
-ura6ly
-u4ram
-u5rane
-u3rans
-uran6t5re
-u5rar.
-u6r7arl
-ur3arv
-u9ras.
-ur5asp
-ur3att
-ur7au
-urau9ken
-ur1av
-ur4bod
-ur4c
-urd4
-ur3di
-ur4d5o
-u1re
-ure8al
-ureer6e
-ur5egg
-uregi6
-uregist5
-3urein
-ure4l
-ur3ele
-u4reli
-u7r8ell
-u7r8elt
-u4r3els
-u4r5eng
-u7reom
-ure7o6s
-u4resu
-u4reta
-u4rete
-ur4e5v
-2urf
-ur4feb
-ur6fed
-ur3ge
-u1ri
-u4ri.
-uri6a7ne
-uri9en.
-uri4e5ne
-uri9er.
-u3rik
-u3rim
-uri5ne
-ur3inn
-ur3ins
-ur3int
-uri6sp
-ur4ke5s
-ur7k6j
-ur6k7ja
-ur8kla
-ur4kle
-ur6k5n
-urk5s
-urla8ga
-urle6ge.
-urle8se.
-urma7g
-ur3nea
-urn1s2
-urnæ6re
-u4ro.
-u6roc
-5uroe
-urom5s
-u2rop
-uro7pi
-ur3opp
-ur1or
-uro3s4
-uro4sta
-uro8ta
-ur4pel
-ur7pi
-ur6p9ut
-ur7re
-ursa8ka
-ur4sal
-ur4s3el
-ur4sin
-ur4skr
-ur4spe
-ur5ste
-urs5til
-ur4stj
-ur2sv
-urs3va
-ur2s1ø
-ur3teo
-ur5ti
-ur4to
-ur6t5ri
-urts4t
-urue7re
-u6rug8
-ur7ugl
-uruk6
-uru4ke
-uru7kn
-ur6ul
-urumo7
-urun4g
-u7runk
-uru7v
-ur4vel
-urv3s
-u6rys
-urø2
-ur1ød
-ur1øy
-4usa
-u9sane
-us3ang
-u9sar.
-u8s7arb
-u7saren
-u6s7ark
-us7au
-us1c
-2use
-u5seal
-use4al.
-us7edvanle
-u2s1ei
-u2sek
-u4sele
-u2sem
-u6s5endi
-us7erk
-u4s5erm
-u6sesi
-uset8je
-us3eva
-4usg
-u2sh
-u2s3h4a
-u2s3h4o
-us4id
-us3ind
-us5inn
-us7jag
-u4sji
-us5kaf
-u4s3kan
-uska8ra
-us7kat
-us5ken
-u6s5kis
-usk4l
-us6k5le
-us5klo
-us1ko
-u1skr
-us7kru
-usk7u6t
-u8s7kå
-us4ky
-us1l
-usle6ge.
-us5lin
-u4slu
-us7mø
-u4sn
-us1ok
-uso5l
-uso6l5d
-us1or
-u3sori
-usove7r6e
-us1p
-u1s2pin
-us5sar
-us6sat
-us4sjå
-us4skj
-uss5kor
-us4skur
-uss1l
-us7smi
-uss7mø
-us4s5ti
-us4str
-us2sv
-u6stande
-u4stat
-us3tav
-u2ste
-us3ted
-u5stei
-us7ten
-ust9ette
-us5ti
-u5s6tig
-us1tj
-ust5of
-uston8
-ust7onn
-us5tor
-ust5o6v
-us8tra.
-us8tran
-us8trar
-u6stre
-ust5ren
-us4tri
-us3tro
-ust5rød
-u6st5rå
-ust7ut
-u4stå
-us3ung
-u2sur
-us1v
-u5svale
-u7s6valt
-usva8n
-usvi8ka.
-6usæ
-usæ9le
-usø6m
-us1øy
-u1tae
-u2tag
-u7tagg
-u9tal.
-ut3alb
-ut5ald
-u3tall
-u5tande
-uta7no
-ut6anv
-ut3arm
-ut3art
-uta1s4
-u5tas.
-u6t5a6sa
-u6t5a6se
-u2ta1u4
-1utb
-ut4ba.
-utbe8d
-4utbi
-ut6by.
-utch5
-1utd
-4utdat
-utda7ta.
-u2te.
-u2tea
-u4tee
-u4tei
-u2tek
-ut3eks
-u5tekst
-ute6ma.
-u5temm
-u9temt
-ut2en
-u6tena
-u3tenk
-u4tenu
-u2teo
-2uter
-u6terø
-u2te1s6
-u4teta
-u3tett
-ut6eu
-uteva9
-1utf
-utfa7s
-utfø5re
-1utg
-8utgåe
-6u3ti
-u4t5if
-utikk6u
-utiku9
-u4tili
-u6tiven
-ut1j
-u5tjen
-ut6ju
-3utlei
-utlø5se
-utlå7na
-utmå5le
-u8tni
-1utny
-2uto
-ut7oms
-uto5s
-uto4v
-3utpr
-ut4på
-ut1r
-u5t4radi
-ut3re
-u5treng
-u3triv
-u3trol
-u3tros
-5utru
-u5t6rul
-ut4rø
-ut9rød
-u7t8råk
-1ut1s4
-4uts.
-4utsei
-utse8t9ja
-2utsj
-ut3sk
-5utst
-7uttak.
-5uttake
-ut4terk
-utt5eva
-ut4tid
-ut4til
-ut5torea
-ut1tr
-ut4tra
-3uttry
-utt1s2
-ut8tår
-u1tu
-utu5e
-u6t5un
-utun8ge.
-u2t5ut
-1utv
-u3t4vil
-utvi5se
-2u3ty
-3u4t6yd
-u8ty.
-8utz
-ut1ø
-u5tør
-ut4ø8s
-utøs7t
-1utø4v
-ut5øya
-ut7åk
-u3tål
-ut1ån
-ut7år
-u1u
-u7uma
-u5ume
-u7ut
-u1v
-uve5di
-uve3in
-uve6ris
-uve3s
-u7ves.
-uvet5ø
-u6vev
-u5vi
-uvi6k
-uv5ra
-uv9sa
-u5vu
-uvø9re
-u1w
-4ux1
-ux4a4
-uy6a
-u7yn
-u1æ
-uærle9ge
-u1ø6
-uøv5
-u9åra
-u7åre
-va3am
-va8an
-4vab
-6vadj
-vad1r
-vaf3
-vaf6r
-vai5r
-vai5s
-va6ka.
-va7kan
-va5ker
-6vakh
-va8ki.
-4vako
-vak3r
-7v6aksi
-4v3aksj
-vak5s6t
-1vakt
-vakt5r
-va1ku
-vak3v
-va3lan
-va4led
-val9eks
-4valel
-val4g3r
-vali9e8
-val3la
-val6mes
-va6l1o
-va1lu
-va4lun
-4valv
-va4løy
-val7å
-vam8pu
-4v3anal
-vand5s
-v4ane
-vane5s
-va4net
-2vang
-van4gr
-vang4s7
-va8ni.
-1v4ann
-van4nan
-van4niv
-vann6sti
-va4nom
-v4ans
-van5sem
-5vansk
-van5s6ki
-van3sm
-van3ti
-van9tr
-va4ny
-2vap
-va5po
-va4ra.
-va6rak
-va4ral
-va4ram
-va4rap
-va4re.
-va4reg
-va6rem
-va4res
-var8ka
-var5ma
-var4mee
-var4sa
-var4sk
-var4s5ti
-var4sv
-varta9la
-var6tem
-var4t5i4s
-4vasa
-va4sa.
-va9set
-6vasid
-va6sie
-va4sif
-va4sik
-va4sil
-va6sis
-va2sk
-vass5a
-vas4sau
-vas4sel
-vas6s7ø
-4vasta
-vat5a
-va3ta.
-va6t7e8l
-va2terf
-vatle6ge.
-5vatn
-va1to
-va6tr
-vat7ra
-vat1s
-4vau
-2v1av
-va4z
-2v1b2
-vba4ne.
-vber5g
-vbo6da
-6v1d
-v7dev
-vding5s4
-v7doi
-v7don
-vd6r
-vdu6en.
-vdu6er
-v7dø
-1ve.
-2ve1a2
-ve6ag
-ve6ar.
-2veb
-2vec
-ve2d1
-ve9dob
-vedom5
-veds2
-ved5s4k
-3ve8d5t
-vedø4
-vedå6
-2vee
-ve4er
-2vef
-ve6g5av
-ve5ge
-3vegg
-veggs4
-2vegj
-4vegl
-ve3gle
-ve5g6lød
-veg5n
-2vego
-6vegre
-veg5rett
-4vegru
-ve4gut
-ve4g5å
-2veh
-1vei1e
-vei8eb
-vei3en
-4veill
-6veit
-2vej
-4veka
-5ve4ka.
-ve4ke.
-ve4ked
-4vekee
-2veki
-4vekj
-2vekl
-vek8la
-vek8le
-ve4kli
-2veko
-2vekr
-3veks
-vek4st
-veks4t5r
-1vekt
-vek4t5an
-vek5to
-vek4t5r
-2vekå
-5vel.
-ve4l5as
-5velat.
-5velatp
-6veld.
-vel4del
-8velds
-4veled
-6velei
-7velet
-4velis
-4velit
-6veliv
-2velo
-5veloc
-vels2
-vel3se
-velses5
-vel3sm
-vel5sp
-vel5st
-4velug
-vel5un
-vel5v
-2vely
-2velæ
-2velø
-velø8pa
-2vem
-ve5ma
-1ven
-ve8na.
-4venem
-ve5net
-ve6nete
-4venev
-ve4nin
-ven6n5i
-vennle7
-ve2no
-ven6sti
-ven6str
-vent6a
-ven5t6r
-vent4s
-4venty
-2venu
-ve4nus
-ve5ny.
-4venya
-ve4nym
-2ve3o4
-2vep
-1v8er.
-ver5ak
-ver3al
-8verau
-ver6des
-ver6din
-ver6dir
-verd7v
-ve3re.
-4vered
-4vereg
-5vereig
-4verek
-ve4rel
-ve6r7eng
-4verenn
-4verep
-ve5rer
-ve5res.
-4verett
-4veretu
-verfø5re
-ve9ri.
-veri3a
-ve4rial
-ve7rie
-4verik
-ver3il
-5verkn
-ver5m6
-ver6nal
-vern6s5
-ve9ro.
-ve3rom
-ver8ska.
-ver5ski
-ver7spo
-verta8la.
-verta6le.
-ve1ru
-5verum.
-6very
-verø6
-ver3øs4
-4verå
-v4es
-3ves.
-2ves4a
-ve5san
-4veset
-4vesh
-4vesi
-4vesj
-4veski
-2vesl
-ve9sli
-ve1s2m
-6ve3so
-4vesp
-ve6s3per
-ve5sted
-ves6t5end
-vest5o4v
-4vestr
-4vestu
-4vestø
-ve3sv
-vesva7
-5vesynds
-2vesø
-ve1så
-veså5re
-v4et
-1vet.
-2veta
-8vetaka
-4veteg
-4vetek
-ve5te6s7
-6vetev
-2ve7ti
-4vetj
-2veto
-ve4to.
-veto7e
-9vetoke
-9vetoks.
-ve4tor
-2vetr
-1vets
-vett5sk
-6vetv
-4vety
-vety8e
-2veu
-ve8um
-2veva
-ve6vak
-ve5van
-ve9var
-2vevi
-vevi8sa
-vev4sm
-vev4sp
-2veø
-2veå
-1vê
-2v1f
-vfall4
-vfø7re.
-2v1g2
-v4ga.
-vga4le.
-vga6li
-vga8ve.
-v9ge
-v4gi.
-vgjer6s7
-vgo4
-v4gå.
-2v1h
-vhø4re.
-1via
-vi1an
-vi6bl
-vice5s
-1vid
-vi5de
-vide4o7
-vi4d5o4
-vid3r
-vid3s4
-vi1el
-vi5end
-vig4m
-vi4gu
-vi5gø
-vi4kat
-5vikb
-vi5ked
-7vikg
-vik5ke
-vik5n
-vi2k3o6
-3viks.
-vik5sa
-vik5s6l
-4vikt
-5vikti
-vi4k5ø4
-vi2l1a
-vi5la.
-vi4les4
-vi4l3in
-1vilj
-vil4l5an
-vil4led
-ville6de.
-vil4lei
-vill9ep
-6v5illu
-vil5m
-vil1o
-vil4sti
-vilt7o
-vil6tret
-vil4tri
-vi2lø
-4vim
-vim7p
-vim7u
-vin6d5au
-4vindl
-5vindu
-vine5st
-v6ing
-4vingn
-vin5gom.
-ving3r
-vin8g9u
-vin3na
-vin4ned
-6vinnh
-4v5innl
-4v5inns
-4vinnt
-vi6n5o6ver
-v2in2s
-vin7sja
-vin4tes
-vin5tre
-vi8pa.
-vi6pe.
-vip5s
-1vir
-4viro
-7viru
-vis3ab
-vis3ak
-vis5and
-vi4see
-vi3sen
-vi6seng
-vi2s1k
-visk6re
-vis5m
-vi1so
-vis3om
-vi4sp
-vis9pa
-viss4p
-vis5ti
-vi4tak
-vi5tese
-5vi6t5j
-vi4t3o
-vi4tr
-vit7ra
-vit5re
-vit5skr
-vit6te6s7
-vi4t5un
-vitun6ge.
-vi4t5øy4
-vi4va.
-vi6ves
-vivi3
-v1ja
-v1je
-vje4t5a
-vje5t6e
-vje4t5r
-vjet3t
-vje4tu
-v1ji
-4v5jo
-vju3t
-6v3k6
-vk4le
-vk4ler
-vku4le.
-6v1l2
-v6lab
-vla6ga
-v9led
-v9leg
-vlei9e
-vl6el
-vle4se.
-v5lesn
-vle5str
-v6lesv
-vli7v
-vls9
-vlu9sa
-2v1m
-vma8le.
-vmo8de.
-vmord4
-vmå8la
-2v1n
-v3nad
-vna8ke.
-vn5al
-v9nar
-vn5dy
-vne7b
-v2ned
-vne7de
-v4nele
-v4neli
-v4nelo
-v2nem
-vne5r6e
-v4nero
-vne1s
-v4nesta
-v6neste
-v2nev
-vnor9s8kas
-vn4s5pa
-vn1s4t
-vn5t4
-vnæ4re.
-vn5ør
-vo1al
-vo2ar
-6vob
-2vof
-vof8fan
-vo4gu
-voi1
-1vok
-4voko
-voks3k
-vok6s5
-1vol
-voli7
-vo4litu
-vol4tes
-2vom
-vo4na
-vo9nal
-vo9nar
-von5de
-vons6
-von5sh
-2v1o6p
-2vord
-vor8da.
-vo1re
-vo9ren
-2v1org
-4voro
-vors7k
-1vos
-4vosj
-vos4se
-vo4teg
-vo4tel
-6votr
-vo1v
-vo4ve.
-vo6vi.
-2v1p4
-2vr8
-3v6rak
-v7rar
-v1re
-vregi3
-6vrenge
-4vrengi
-v6rengj
-v6rengt
-vrett4s
-v6ri.
-3vrid
-7vrie
-v6rigas
-vri6ma.
-vri8me.
-v3ring
-vrin5s
-vri6ve.
-v1ro
-v4rob
-v4rof
-v4rok
-v4rop
-vro8te.
-v1ru
-v7ry
-vrø3ve
-v1rå
-vrå8da.
-8vs
-v6sa.
-v7sali
-v6se.
-v4seg
-vs3egg
-v3s4el
-v4s5e4li
-vse4n
-v5sen.
-v4s5eng
-v5s4ens
-v2ser
-v6si.
-vs1in
-v1sk
-vs8ke
-v6s5kum
-vs1kv
-v1sl
-vs3lan
-vs6let
-v6slik
-vsmå8la
-v1s2n
-v6s7na
-vs3ne
-vs3ny
-vs3næ
-v4s3nø
-vs5od
-vsom5
-vs5oms4
-v7son
-vs1or
-vs2pe
-vsre6de.
-vs7s6t
-vs4s5å
-v1s2t2
-vste6ma.
-vs3til
-vs1v
-v6s7va
-vsø6ke.
-vsøl5
-v2s5øy
-vsøy4er
-v8så.
-vså7re
-2v1t
-vta1
-v4ta.
-vta8ka.
-vta6led
-vta9len
-vta4lev
-vta6s
-v5tepp
-v5t4i
-vti8na
-vti8ne.
-v5t4r
-vt7s
-v3t2v
-vty8e
-1vu
-vu2d1
-vud5d
-vuden5t
-vuds4
-8vué
-vu8k
-2vul
-2vung
-vun4ge.
-6vu6o
-2v1ut
-2v1v
-vva8la
-vve8g9ing.
-vve6g7inga
-vven7n6i
-vvi5ke
-vvi6k7l
-vvi8s9an
-vvi4se.
-2vy1
-vya4
-vy7ens
-1væ
-væ1ra
-væ9ret
-væ8ta.
-v3ø4d
-8v7øks
-vø4l
-vø7li
-vøm4met
-3vøre
-vø6re.
-v3ørke
-vør8na.
-vø3se.
-v5øv
-4v1øy
-vøy6e
-vøy7ene.
-vøy9enes
-1våa
-1våe
-4våend
-v4åk
-vå8ka.
-vå4ke.
-vå4kene
-vå9kene.
-vå4le.
-1vån
-vå5ne
-4vånu
-vå3ren
-vå8sa.
-vå5tes
-6våtf
-våt7å
-w2a
-wa6l
-5wald
-wal4k
-walk5o4
-wal4l
-2wap
-war6d7er
-wash3
-1wat
-wa3z
-w1b
-wboy5
-we2
-weate7
-we7b
-we3g
-we5re
-wes2
-wes3s
-wester6
-western7
-wet5
-wett4
-w4i2
-wi9ar.
-wich3
-3wicz
-wi3d
-5wi6en
-wi9er.
-wi5f
-wi3ni
-wi5ra
-wi3ren
-wi5ta
-wk3r
-w1l
-w1m
-wn5s
-wob5
-wou6
-wout7
-w3s4
-ws6k
-wurs6
-wy2
-w1yo
-wyor2
-wyork3
-w1z
-xan5t
-x7b
-x3f
-xga6
-x7h
-x1ic
-5x6id
-xi5e4
-x5k
-x1l
-x1p6
-x3r
-x1s2
-x7t
-x6u
-xy2
-ya7b
-1yac
-ya5f
-ya4h
-y1ak
-yak6te.
-ya2l
-y7am
-y1an
-y6an.
-y2ana
-ya4ne.
-yan7k
-yan7sl
-y1ark
-y7arr
-yas4
-ya5si
-ya5t
-y1av
-y1b
-yba4ne.
-yb4bed
-ybde3
-ybo2
-ybu6er
-ybue7re
-ybu7ern
-ybyg5
-y1c
-y8ce.
-y8cé
-y2co3
-y6dab
-yd5av
-4ydd
-yd6dela
-yd4dep
-y6d7enh
-y4deo
-y2dep
-y4dero
-y2d1is
-yd6je
-yd1ji
-ydo4
-yd3op
-yd5ov
-y1dr
-y4d4r5au
-yd1re
-yd5rem
-y8d7ri
-y4dro
-y4d4r5oks
-yd3si
-yds4v
-y2du
-yd1un
-ydø4
-y4døm
-ydør5
-yd1øs
-4y1e
-yed8l
-ye6dre
-y2ek
-y5eks
-ye4len
-ye6let
-yel4s5j
-yel4sk
-yels3m
-yel6s5t
-y2em
-ye2n
-y7e6ne
-y8ener
-y2enh
-ye5ni
-y2enk
-y2enl
-yenle6ge.
-yens4
-y4ense
-y3e6re
-ye4rel
-y3ern
-yer8sk
-y4erst
-yes2
-ye5sm
-ye2t
-ye9te
-ye5ty
-y2ev
-y1f
-yfan9
-yfjell4
-y4fle
-yf5le.
-y8ga.
-yga8ve.
-yg4dal
-yg4dek
-yg4del
-yg4dep
-yg2do
-yg2d1r
-yg2d1y
-yg2dø
-yge5i
-ygen5s
-y6geret
-y2ges
-y4gev
-yg6gam
-ygg7art
-ygges4
-yg5gj
-ygg5l
-yg6gr
-ygg3s2
-yg6gu
-yg6g5å
-ygi2
-y5glo
-yg7m
-yg6r
-y1h
-yhes5
-y1i
-y9in.
-yis7t
-y1j
-6yk
-y1ka
-ykap3
-y6kara
-y2ke
-y7kel.
-y5kelen
-y3keli
-y7kels
-y3ken
-y3ker
-y4kerel
-y4kero
-y5ket.
-y9kets
-y1ki
-y1kj
-y4kjar
-y5kjare
-ykjeva8ne.
-yk4kana
-yk4k5enh
-yk5kesj
-ykke6s5ta
-yk1kj
-ykk5ni
-ykk8s5k
-ykk8s5o
-ykk8s5s
-yk8k5vi6
-yk4ky
-yk1la
-yk6lest
-y1klo
-y3klub
-yk3lus
-y5klæ
-y1ko
-y2koa
-y6koli
-y4komo
-y5kosa
-y2kot
-y5koti
-y1kr
-yk1s
-yku6le.
-yk3var
-y1la
-yla8ga
-yl4dan
-yl4derk
-ylde4s
-yld1r
-yld5s6k
-yle6ge.
-y7les
-y4lev
-yligh9
-yl5k8
-ylke2
-ylke4s3
-ylkesla8ga
-yl4lev
-yll5is.
-yl3s6
-ylst7re
-yl5tet
-y8luse
-3ylven
-y1ly
-ylæ7re
-y6mei
-y4mete
-ym4fe5d6
-ym5jara
-y4mo.
-ymo5e
-ym3p2
-ym1s
-ym8sa.
-ym4se
-ym8sl
-ym6ta.
-ym6te.
-ymå6la
-y9n8and
-yndes8
-yn5det
-y2nel
-yn7eld
-yner3g
-yne5s4
-ynesi8
-y6nev
-yn5gel
-yn4gem
-yn2gr
-yn4g5ø
-ynko3
-yn6k5v
-yn5na
-yn5ne
-ynn3s4
-ynn4ø
-y3no
-y4no.
-yns1
-yns6are
-yn4sem
-yn9set
-yn2si
-yn2sk
-yns9ket.
-yns7ki
-yn5skj
-yns7kjele
-yn8s9kjer.
-yn4st
-yn2su
-yn4s5ver
-yn4tap
-yn8teg
-ynt5ei
-yn4tek
-yn6tete
-yn8t7r
-yo4gat
-yo6gi.
-y1om
-yon4
-yon5nen
-yo6nu
-y1o2p
-y1o2r
-yor6da
-yo5re
-you4
-yout5
-yp8e
-y2pe.
-y4pee
-y4pena
-y4penet
-ype4rel
-y6peta
-y1pi
-y4pi.
-y7ping
-yp5inn
-ypin8na
-y1p2l
-y5po
-yp7p6a
-yp3pe
-y1pr
-yp5s8
-yp4tok
-y3pu
-y1ra
-yra8ka
-y4r3a6l
-y7rarb
-y4r5au
-yr5av
-yr7da
-yr5dø
-y7real
-y8r7edd
-yre3in
-y5reis
-yrek4
-y7rek7k
-y3rels
-y5rems
-y1ren
-yre9ne
-y4reo
-y6rerel
-y4rero
-yre5sc
-y5rest.
-yre5ste
-y5reste.
-yres6ten
-y1ret
-y4reta
-y4rete
-y4reto
-y7retø
-yr7ga
-y1ri
-yrin5g6
-yri6ene.
-y4rif
-yri8ka.
-yr3inn
-yris6p
-yr4kee
-yrke4s
-yr5kj
-yr3m
-y7roe
-y3romm
-yr1op
-y5rosk
-yr5r8
-yr4san
-yr7set
-yr5sk
-yr6skj
-yr6skr
-yr2sp
-yrs7tan
-yrs5tar
-yrs7tene
-yrs5tens
-yr3sti
-yr4sv
-yr3te
-yr6tek
-yr2t3r
-yr3tra
-yrty8
-y1ru
-yrul8la.
-yr5ut5r
-yr3v
-y1ry
-yr3øk
-yrøy4
-y1rå1
-yråd2
-yrå8da
-yråde7r
-yrå6ders
-y4rådi
-y2råm
-y6råst
-y4råt
-y4råv
-2ys
-y1sa
-ys6a7kers
-y8s7al
-ys4e
-yse4bu
-y4sed
-y4see
-yse5ei
-y2seg
-y2sek
-y8s7ekte
-y2sem
-y4sera
-yse7rid
-yseri7e6
-y4sesj
-y4sesk
-y4se5s6l
-y4sest
-y5seste
-y6sesu
-y9set.
-y4seu
-ys6i
-ysi8e
-y5sjk
-y7skag
-ys6kara
-ys7kare
-ysk9au
-ys2k3l
-ysk5øs
-ys4mi
-ys4nø
-y1so
-y4s5or
-ys2pe
-ys5pis
-y5s4po
-ys6sak
-ys6sam
-ys4s3ei
-ys4s3ek
-ys4s5il
-ys2sj
-ys8s7ko
-ys4sku
-ys2so
-ys2sp
-yss5pe
-ys4sta
-yss5tab
-ys4s5ti
-ys4su
-ys2s5v
-ys2t
-ys3ta
-y8star.
-ys4tat
-ys3tel
-ys3ten
-y4s3ter
-ysterie7n
-ys7tesl
-y2s3ti
-yst3op
-yst3r
-ys8tra
-ys5t6ry
-y7s8tu
-ys6ty
-y1su
-ys1ve
-y8s7øm
-ys5år
-y1ta
-y4t3ana
-y2tee
-y4tef
-y2teg
-yt5e4ge
-yte3in
-y4teka
-y4teki
-y4tena
-y4teno
-y2teo
-y4teret
-yte6ro
-yters6
-yter5ske
-yte5r6ø
-y2tes2
-y2tet
-y3t2hi
-6y5til
-y6tj
-yt9ja
-yt5jen
-yt9jer
-yt4mei
-yt4mes
-y3to
-yt8ra
-yt4re.
-yt5rer
-yt1ri
-yt4rik
-y5trå
-yt4s3en
-yt3sk
-yt5sv
-4ytt
-yt5t6a
-ytt4e
-ytte8r9end
-yttes6
-yt4test
-yt8tien.
-yttsa6me.
-2y3tu
-y1ty
-yt4ys
-y7tå8
-y1u
-y6ua
-y8ue
-yu8g
-yu4l
-y1v
-y4vak
-yva8la
-y2ved
-yve4ria
-yve4ris
-y4vese
-y6vesy
-y6vev
-yvi8sa
-yvi6se.
-yv1år
-yvå5te
-y1w
-y5æ
-y5ø
-y1å2
-za5b
-3zae
-4zaes
-za4g5
-za5k6h
-zani4
-zania5
-5za5v
-z1b4
-zbu4
-z1c
-z1d
-1ze
-zea1
-zebu9
-zeli5
-zen3s
-4z3ense
-4z3ent
-z1f
-8z1g
-5zha
-z3hi
-z5hu
-5zie
-1zifi
-5zing
-z5int
-1zis
-6zisty
-4zi5s4v
-2zisy
-z1k
-4z1l
-z1m
-5zo.
-5zoe
-zo1f2
-zo4no
-zo5re
-6zos
-z1p
-z5r
-z1s
-4z1t
-zu3e
-z1un
-z1v
-z1za.
-z2z3el
-æ5by
-æ2bø
-æ5de
-æ7di
-æ1f
-æg6
-æ2k
-æ3ke
-æ5ki
-æ8kj
-æk1ja
-æk7je.
-æk9jer.
-ække7
-ækkel6
-æk6l
-æ1la
-æ4le.
-æ2le3d
-æ4lena
-æ4lev
-æl5j
-ælsle9
-æ4r1ak
-æ3rane
-æ4rans
-æ4rarb
-æ6rarbe
-ær4arte
-æ4r1at
-ærbu5e
-ær1d4
-æ1re
-æ2rea
-æ4red
-æ2ref
-æ2reg
-æ8r7ei
-ærei6e
-æ2rek
-æ6r7eld
-ære5ne.
-ære7nes
-æ2rep
-æ5rern
-æresa4m
-ære6skr
-ære4sl
-ære4sp
-æ4reta
-æ4retek
-æ9rets
-æ2rev
-4ærf
-ærgen5
-ærhø8
-æ1ri
-æri6e7ne
-æ4r3il
-ær3ins
-æri6s
-ær5is.
-4ærk2
-ærle6ge.
-4ærm
-ærmå8la
-ær3n
-ær5ne4
-ær4nå
-æ2r7o6
-ærom5
-æroms4
-ær5r
-ær6sel
-ær4s5il
-ær1sk
-ær7s6no
-ær2sp
-æ2r1u
-ærut5
-ær3v
-æ2r1ø4
-ærøy7e
-ær3å4
-æ8se.
-æ2sj
-æ2s1k
-æ5ta
-4æte
-æ4te.
-æt6he
-æt4r
-æt4ta
-æ5va
-ævar5
-æve4s
-æ5vi
-6ø1a2
-øa7re
-øau4
-ø1b
-øbe6lev
-øbe4li
-ø2bl
-ø3b6li
-øbl9u
-øb4r
-ød3ag
-ø4dak
-ød3d
-ød9de.
-ø2de.
-ø4dede
-ø6def
-ø4dela
-ø4dem
-ø4deo
-ø4deri
-ø4dero
-ø5dj
-ød1r
-ød4red
-ød4rek
-ød4rep
-ød2sc
-ød6s5ek
-øds7ke
-øds4ko
-ød6sku6
-øds4mu
-ød8t5om
-ødt6r
-ø2du
-ød3und
-ø4d5ur
-ø6d5ø
-4ø1e2
-ø4ed
-ø5ene
-ø5ep
-ø3e6re
-øfe8
-øf3fe
-øf6j
-øf8la.
-øf8le.
-øffe8l7a
-ø5fn
-øfte5s
-øg1
-øg2a
-øg5ak
-øg5al
-ø7gar
-ø5gas
-ø3ger
-øg5gl
-øg8gå
-ø7g4j
-øglo8ve
-øgn6s7p
-ø2g2r
-øg5re.
-øg5res.
-øgs2
-øg4ste
-øg4str
-øgta5
-4øg4u
-ø1h
-ø4i
-øi4e
-øi5er.
-øi5e4ne.
-ø5ing
-ø5isk
-ø4it
-ø1j
-6øk.
-6ø1ka
-ø5kav
-øka8ve.
-ø6keh
-ø4kelo
-ø6kerada
-ø6kerel
-ø4ke5ru
-øke1s
-ø6kese
-ø8kesl
-ø4kest
-ø4kete
-ø1ki
-4økj
-ø5kjare
-ø5kjas
-ø1kje
-2økk
-øk5kel
-øk5ket
-øk4k5l
-økk5r
-øk3lag
-øk3lan
-2økna
-1øko
-øk5opp
-ø1kr
-ø8krar
-øk8sa.
-øk6se.
-øk4ses
-øk4si
-øk2so
-øks1t6
-øks5ti
-øku4r
-øk5ur.
-øk5ure
-øk7ve
-ø7ky
-ø1la
-ø2lah
-ø6lam
-øl3d
-øled
-ø4ledi
-ø6lelu
-ø4lero
-ø6leta
-ø4le5te
-ø2lev
-øl4gera
-ølge5s6v
-øl1j
-øl2ke
-ølke7s
-øl4lese
-øl9leti
-øl6lev
-ø1lo
-øl7op
-ølrå4
-øl6sel
-øl4sere
-øl4se3s
-øls6t4
-øl5s4v
-ø5luk
-øl7ut
-ølva6
-øl4var
-øl4v3ei
-øl6vek
-øl8vel
-ølv7erk
-øl4v3in
-ølv5o
-ølv7r
-ø1ly
-ø4me.
-ø9met
-1ømfi
-ø5mi
-ømini6
-øm4med
-øm4mero
-ømmet6
-øm4metr
-øm3op
-øm4pel
-øm7s6p
-øm1st
-øm5svi
-ø2m1u
-ømå8la
-øn2ad
-ø6n5al
-ø5nas
-ø2nem
-ø3nes.
-ø9nese
-ønhø8re.
-øn8k7r
-4ønn
-øn4nal
-ønni4
-øn4n5it
-ønns5al
-ønn4s3e
-ønn4s5i4d
-ønns5kje
-ønns5kre
-ønns5ku
-ønns3l
-ønns3t
-øn2nø
-ø6nom
-øn2s
-øn9sa.
-øn5sak
-øn5sam
-øn5se.
-øn3ser
-øn3skj
-øn8skjer.
-ønst3r
-ønst9ra
-ønt1
-øn2ta
-øn2to
-øn7u8
-ø1o
-ø4peda
-ø6pe5i
-ø4penu
-ø5pero
-ø4peru
-øpes4
-ø4pete
-ø4peti
-ø1pi
-øp3li
-øp5p
-øp6pl
-ø1pr
-øp6s1
-øpsa4
-øpsla8ga
-øps8leg
-øp5ste
-øp7s8tik
-øp4s5ø
-ø1ra
-ø2ra.
-ø2r1af
-ø2r1ak
-ø2r1a2m
-ø4rans
-ø4r3ant
-øra8sa
-øra6si
-ø4r7au
-ørd4e
-ø1re
-ø2rea
-ør7edd
-ø6redu
-ø2ref
-ø2reg
-ø6rein
-ø2rek
-ørek6l
-ør3eks
-ør5ekt
-ørele8se
-ø9relet
-ø4r5eng
-ø2re5o4
-ø2rep
-ø6reret
-ø4reru
-øre1s2
-ø5res.
-ø4rese
-ø6resi
-ø7reskrivi
-ø8reso
-ø4rest
-øre6s7v
-ør6et
-ø4reta
-ør1eu
-ø2rev
-ør5fe
-ørge5s
-ø1ri
-øri8m
-ør4jet
-ør4keri
-ør4kes
-ør8k9lag
-ør6k5n
-ør4kve
-ør4kå
-ørla8ga
-ørm9ut
-ørn4e
-ør4nere
-ør4nes4
-ør4n3u
-ør4n5ø
-ør1o
-ø5r6ok
-ø1ros
-ø4r3ost
-øro4v
-ør4rek
-ør4rep
-ørri4
-ør4r5is
-ør4råt
-ør4sak
-ørsa8ka
-ørsa6me.
-ør4sc
-ør6ses
-ør2si
-ør5ski
-ør4skr
-ørs6lev
-ør4som
-ør4spe
-ør2st
-ørs9tar
-ørste5i
-ørs5tens
-ørs5tig
-ør3sto
-ørs9u
-ør2sv
-ørs1å
-ør9tar
-ør4tek
-ør6ti9a
-ør4tide
-ør8tien.
-ør6tif
-ør3to
-ørum5
-ø6rut
-ør5v
-ør1ø2s
-ørø1v
-ør1åp
-ø1sa
-øsa6me.
-ø8sarar
-ø1sc
-ø2se.
-ø2sem
-øse4n5o
-øseri7
-øserie6
-øs5jo
-øs7kar
-øs1l
-øs4lag
-ø4slu
-øs2me
-ø1s2p
-øss8n
-øs8tas
-øst9ast
-øs6teg
-øs5terse
-øst9ett
-østo2
-øst5of
-øst5ov
-øst1r
-øst3re
-østø4
-ø2s1ø2
-4øt
-øt3ak
-ø9tar
-øta4s
-øt5asa
-ø2te.
-ø2tea
-ø6tef
-ø6tege
-ø2tei
-øte5k
-ø2t5eks
-ø2tel
-ø5tela.
-ø3ten
-ø4teni
-ø3ter.
-øte3ru
-ø2te1s
-øte7sn
-ø4teta
-øt7ri
-øt1sa
-øt3s4p
-øt7s6å
-øtså9re
-øt4tero
-øt6test
-øtt5av
-øtt5eks
-øtt5eta
-øtt5ete
-øtt5ra
-øtt7ri
-øtt1s2
-øttså7re
-øt4tur
-øt4ty
-ø1tu
-ø5ty
-ø1u2
-øug8la
-øv5aa
-øv5ans
-øve5in
-ø4vek
-øve5no
-øveren8
-øve1s
-øves4t
-øve3te
-ø5vik
-øv6l7ut
-øv7ne
-øv6nø
-øv9o8
-øv1r
-øv5reb
-øv1s
-øv9sa
-ø5vå
-øy3al
-øya2n
-7øyan.
-9øy8ans
-øy4dek
-øy4dere
-øyd8i
-5øyeb
-øy7e4de
-øy2ee
-øy4ele
-øye4n
-øy4ep
-øy4erf
-øy1gl
-øy3ke.
-øyks4
-øyk5t
-2øyl
-øy4led
-øy4leg
-øy5na
-øy5ni
-øy3o
-6øyp
-øy3pe.
-øy4pel
-øy4ra.
-øy5rer.
-øyri6v
-øy3rø
-øy1s
-øy5s4ar
-øy5si
-øys2l
-øy4sm
-øy4spi
-5øysund
-øy4tei
-øy4tel
-øy4tere
-øyte5s6
-øyti7da
-øy1tr
-øyt5s
-øy2t3y6
-øy5tø
-øy4vei
-5øyvå
-ø1ø2
-ø5å6
-å1a
-åak6ta
-åa4n5
-åan8ka.
-åan6ke.
-å2ar
-å5aran
-åau4re
-å1b4
-åba8ne.
-åber2
-åbo9ta
-6å1d
-å7dan
-å9dar
-å4ded
-å4dek
-å4dem
-å4deo
-å4dep
-å4dere
-å4deri
-å6dero
-å2des
-å7di
-åd4ra
-åd8re
-åds1
-åd2sk
-åd3s4la
-åd7slo
-åd3slå
-åd1s2n
-åd3s4pe
-åd7spu
-åd5st
-åd6s7te
-4å1e
-å2ele
-åem8na
-åe2n
-å7ens
-å3er
-å3e6re.
-å7e8ri
-å1f
-åfe6
-åfø5re
-2åg
-å4ga.
-åg7ald
-å4ge.
-åg7ei
-å2ges
-ågna5
-åg5ne
-åg4r
-åg5rin
-ågs6k
-åg5sl
-åg7sp
-ågs4t
-ågu4l
-åg5ø
-å4gå.
-å1h
-å1i
-å1j
-å1ka
-å3kan
-å3kar
-å4karb
-åk7av
-å4keh
-å3ken
-å4kena
-å4k3enh
-å4kere
-åke5s
-å4kesl
-å5kevi
-å1ki
-å6kid
-å1kj
-åk1k
-åk5ka
-åkk6l
-åk7kr
-åk7lau
-åklist7
-åk3læ
-å1ko
-åk3opp
-åko4s
-åk6ra
-åk5røk
-åk3rå
-åk1s2
-åks7l
-åk3t4
-åku8
-å5k8ul
-åkva8la.
-åkøy8rar.
-å2k3å
-å1la
-å5l6amp
-å6larb
-å9las
-ål5au8
-ål9av
-ål3d
-å2lef
-ål5eini
-å2lek
-å2lem
-å4l5enh
-å4leni
-åle6ris
-å2le1s2
-åle9s6und
-å4lete
-å2lev
-ål5g
-ålgå6
-å6lio
-ål5j
-ålla6ga
-ål3or
-ål4san
-ål4sek
-ål4ser
-åls7i
-ål2sp
-ål4sti
-ålsy8na
-ål5ti
-ålti5d
-ål1u
-ålul8la
-å1ly
-å2l1øy
-åløy4e
-ål5å6k
-ålå8te.
-6åm
-å6me.
-åm4li.
-åm1om
-åm5øy
-8åna
-å3nar
-å9nas
-ånd3r
-ånd4sa
-ånd4se
-ånd4so
-å4ne.
-åned4
-åneds5
-åne5i6
-å2nel
-ånely6
-å5nes.
-å3net
-å4netr
-å3ni
-ån5o
-å9ny
-å3o
-åp2e
-åpe4n3a
-åpe4n5i
-åpen3s
-å5per
-å6pero
-å1pi
-åp6j
-å1pla
-åp4ne.
-åp7p
-å1pr
-åpra5
-åp2s1
-åp6ta
-å4på
-år3ak
-å9ran
-å7rara
-ård5str
-å2re.
-å5rei
-å6rel
-åre7s
-å4rest
-årfi4
-å7riv
-år3k2
-år4le.
-2årn
-årn5s
-år3on
-år3op
-årpo8
-år2s
-års5af
-års3el
-år3sem
-års3ko
-år8sku
-årsla8ga
-år3sol
-års3ta
-år7ste
-års3ti
-år7sto
-år5stu
-års1u
-års1v
-år5sy
-år5u4k
-år3un
-år5y4
-å1rø
-å5r8å
-ås2
-å1sa
-ås7au
-å4se.
-å4see
-ås5eid
-å4sek
-å4sem
-åseri7e6
-åse3s2
-å4sesm
-å4seso
-åse5ta
-ås3h
-å8si.
-ås5ka.
-ås9kene
-ås8ki
-å1skj
-å2s3kjør
-ås7kop
-å1skr
-å5sku
-å1sl
-ås5ne
-ås3ni
-å5so
-å1sp
-ås7pl
-ås5sa
-ås5se
-ås3si
-åss3k
-å8s7s6kå
-4å1st
-å7stei
-åsu4
-ås3un
-ås7ut
-ås7væ
-ås5øy
-åså7
-å1ta
-å4ta.
-åtaks5
-åta2l
-åta9la
-åtale3
-åta5le.
-åta5len
-å4tang
-å4tark
-å4t5arm
-å2te.
-å2tea
-å4tee
-å2t1ei
-åte6ke.
-å4teo
-å9ter
-å2tes
-5åtferd
-å5ti
-åti7da
-2åtn
-å1to
-åt7ov
-6åtp
-åt1re
-åtri6pa.
-åtri8pe.
-åt1ru
-åt5sk
-åt1t
-åt4ted
-åt4ti
-ått3o
-åt4tri
-åtts4
-åt6t5æ
-åt1u
-åt4un
-åtva5ra
-åtva7re
-åt5ve
-å5ty
-åt1øv
-å3u
-åun8ge.
-å1v
-åv4a
-å2ve7d
-å4veg
-åve5l
-å4veni
-å9ver.
-å2vev
-åv7s6
-å7vy
-åvæ4re.
-å1ø8
-åøy4} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-nl.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-nl.hyp
deleted file mode 100644
index 370e03ae59a..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-nl.hyp
+++ /dev/null
@@ -1,47 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-nl.rme
-
-% used: a b c d e f g h i j k l m n o p r s t u v w
-
-\hyphenation{
-aan-dachts-trek-ker
-aan-dachts-trek-kers
-acht-en-der
-acht-en-ders
-acht-en-der-tig
-acht-en-der-tig-ste
-be-heers-ta-ken
-be-scherm-en-gel
-be-scherm-en-ge-len
-be-stuurs-la-gen
-be-stuurs-ta-ken
-bij-stands-trek-ker
-bij-stands-trek-kers
-bui-ten-an-ten-ne
-bui-ten-an-ten-nes
-don-der-aal
-han-dels-taal
-her-e-nen
-ket-ting-ste-ken
-lands-taal
-meest-al
-mi-nis-ters-por-te-feuil-le
-mi-nis-ters-por-te-feuil-les
-ont-hoof-din-gen
-pa-ling-ste-ken
-rechts-taal
-schil-ders-ta-lent
-sou-ve-niertje
-sou-ve-niertjes
-spie-gel-ei
-ver-en-gels-te
-ver-hol-lands-te
-ver-in-lands-te
-ver-kinds-te
-ver-ne-der-lands-te
-ver-rechts-te
-ver-steeds-te
-wals-te
-wa-ter-staats-in-ge-ni-eur
-wa-ter-staats-in-ge-ni-eurs} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-nl.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-nl.pat
deleted file mode 100644
index bb0a4a86f5f..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-nl.pat
+++ /dev/null
@@ -1,12731 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-nl.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u v w x y z ä ç è é ê ë î ï ñ ö û ü
-
-\patterns{
-.a4
-.aan5
-.aarts5
-.aat5
-.ab5l
-.acht5end
-.ac5re
-.adi5
-.af3
-.af5l
-.af5s
-.aftu5re
-.al3ee
-.al3f
-.alk4
-.al5ko
-.alko5v
-.al5ma
-.al3om
-.al4st
-.ana3s
-.an3d2
-.an3en
-.an3gl
-.an5th
-.ar5d
-.ar5tr
-.as5h
-.as5l
-.as3t
-.as5tra
-.as3u
-.at4a
-.ave5n
-.b4
-.be3la
-.be5ra
-.be5ri
-.bos1
-.c4
-.coo5
-.co3ro
-.cus5
-.d4
-.daar5
-.da4gi
-.dag5r
-.da2k
-.dan2
-.debe4
-.de2k
-.dek5l
-.dek5s
-.den4k5r
-.de5od
-.de3ro
-.de5sta
-.di4a
-.die4p
-.di3o
-.doet3
-.do3v
-.du4w
-.e4
-.ede2
-.edel5a
-.ed3w
-.ee4n
-.eer5ste
-.eest3
-.eesto4
-.eet3
-.ei3l
-.ei5sc
-.ei3sp
-.ei5t
-.el4s5
-.en5s
-.en5th
-.ep4a
-.ere5s
-.er2f
-.erf3l
-.er3in
-.ert4
-.erts3
-.es3
-.es5c
-.es5pe
-.es5tr
-.eten4
-.et4h
-.ets5te.
-.eu3
-.eus5
-.é2
-.f4
-.fel4s
-.g4
-.gaat5
-.gang5s
-.gea5v
-.ge3l4a
-.ge5le
-.gelo5v
-.ge3n4a
-.gena5z
-.ge5ne
-.ge5no
-.ge3ra
-.ge5r4e
-.ge5r4o
-.gerst5a
-.ge3s
-.ge5sk
-.ge5ta
-.ge5tj
-.ge5to
-.gid4
-.go4m
-.goot3
-.h2
-.handels5
-.her5in
-.hits5t
-.ho4lo
-.houd5s
-.i4
-.ide5o
-.ij4s
-.ijs5l
-.ijs3p
-.ijs3t
-.ik3
-.in1
-.in5d4
-.in3g4
-.in5gr
-.ink2
-.in5kr
-.in5kw
-.in3s4
-.in5sl
-.in5st
-.in5ta
-.is5c
-.j4
-.jor5
-.k4
-.ka3d
-.ka5g
-.ka4taa
-.kerk5l
-.kerk5r
-.kerk5u
-.ker5sten
-.ke4s
-.koot5
-.ko5pe
-.kop5l
-.ko3v
-.kun2
-.l4
-.laat5ste
-.le4b5
-.leg3o
-.le4g3r
-.leid5st
-.len4s3
-.le5r4
-.le4s3
-.le5th
-.lin5d
-.lof5
-.loot3
-.lo4s1
-.lu3e
-.lui5t4j
-.lu4s
-.m4
-.ma5d
-.ma5ï
-.meel5d
-.me5la
-.me5ni
-.merk5l
-.me2s
-.me4st
-.met5ee
-.mij4n5i
-.moot3
-.mor5sten
-.mo4s
-.n4
-.naat5
-.na3d
-.na3n
-.na3s4
-.nee5s
-.ne2p
-.nep3a
-.ne4s
-.ne5te
-.ne4t3j
-.neu4t5j
-.nie4t5j
-.noot5
-.nos5t
-.no5v
-.o4
-.oe4r5
-.oe4s5
-.oeve4
-.ol3f
-.om1
-.omme3
-.on3a
-.on3d
-.onde4r
-.on1e
-.on5g
-.on3i
-.on5k
-.on1o
-.ono5v
-.on2t3
-.on4tee
-.on4ter
-.ont5s
-.ooi5tj
-.oot5jes
-.op5ee
-.opi5
-.op5l
-.op3r
-.op5s
-.org4
-.os5
-.ove4
-.p4
-.pee5tj
-.peri5
-.pers5te.
-.piet5j
-.pits5te.
-.poort5j
-.po4st
-.puit4
-.pui5tj
-.pu2t
-.r4
-.raads5le
-.ran4d
-.rand5a
-.re4men
-.ren4o
-.reno5v
-.re5o
-.rie4t3
-.rij5sp
-.ring5s4
-.roe5tj
-.ro4l
-.ro4st
-.ro4t3h
-.ro5v
-.s4
-.sap3
-.sa5v
-.sci3
-.see3
-.seks5te
-.se5re
-.set3
-.se5v
-.side3
-.ski3s4
-.sneu3
-.sno2
-.so2k3
-.song5
-.spoor5tj
-.st4
-.ste4m
-.t4
-.taart5j
-.tan4da
-.te4a
-.te4f
-.tek2
-.te3le
-.ten5ac
-.te3no
-.ten4t5j
-.te3ra
-.ter4p5a
-.ter5s
-.te4s
-.ti2n
-.tin3a
-.tin3e
-.toe5pr
-.to4lo
-.to4p
-.to5v
-.tri3s4
-.ts4
-.tsa3
-.tuit5j
-.ty2r
-.u4
-.ui2
-.ui5s
-.uit1
-.uit4je
-.uke5
-.ur4a
-.vaat5j
-.ven4t5j
-.ve4r3
-.ves5p
-.vet3j
-.vie4r
-.vol5s
-.w4
-.wals5te.
-.wee4ko
-.wee4t3
-.we4l3
-.wen4s5t
-.west5r
-.win4s
-.xe3
-.y2
-.z4
-.zes5
-.zit5
-.zooi5
-4a.
-a4a4
-4aad
-aad1a
-aad1o
-aad1r
-aad5sap
-aaf5a
-4aag
-aag1a
-aag3e
-aag3o
-aag5r
-aags4
-aag3sa
-aag5so
-aag3sp
-aai3l
-aak1a
-aak3e2
-aak1o
-aak5r
-aak3sp
-aal5a2
-aal1e
-aal5f4o
-aalfo5l
-aal1i
-aal5k
-aal5m
-aal1o2
-aal3sl
-aal5so
-aal5spe
-aal5ste
-aal1u
-aam1a
-aam3o
-aam4sta
-aam4ste
-aan1a
-5aandee
-aand4r
-aan1e2
-aan5g
-aan5i
-3aanj
-aan5k4
-3aann
-aan3o
-aan3sp
-aans4po
-aant4
-3aanta
-3aanv
-aap1a
-aap3i
-aap3o2
-aap3r
-aar3a
-aar4d5as
-aar3e4
-aar1i
-4aarn
-aar1o2
-aar5spel
-aar4t5on
-aarts5l
-aar3u
-aas3e
-aas3i
-4aast
-aas5tr
-aat3a
-aat5e
-aat3h
-aat3i
-aat1o
-aat5r
-abak4s5
-aba4l
-abat4s
-ab5eun
-ab3ijz
-a2bon
-aboot4j
-abot4j
-2abr
-ab3ru
-4ac.
-a3cal
-a3car
-4ace
-ace3st
-4ach.
-a3cha
-2a1che
-4a1chi
-ach3l
-a1cho
-a3chr
-4achs
-ach5tec
-a1chu
-achuut5
-4ack
-ac3kl
-2acl
-2a3co
-2acr
-ac5res
-4acta
-4acu
-4ad.
-a5da.
-ad3ac
-ada2d
-ada4l
-ada2r3
-adas5
-2add
-a5de.
-ad3ei
-ade5re
-a5des
-a3det
-a5deta
-ad3e4te
-2adh
-4ad4i
-adi3al
-adi4oc
-adi4od
-4adk
-2adl
-4ado.
-a3doo
-2adp
-ad3rei
-a3d4ri
-ad3rol
-2ads
-ad5se
-ad3so
-ad1s4t
-ad5sta
-ad3ui
-ad3w
-2ady
-4ae
-aege4
-ae5k4
-a3e2p
-ae3r
-ae2s3
-ae4s5t
-a3eu
-a2ë
-a4ër
-4afa
-af3aa
-a2f3ac
-af4as
-af4at
-afd4i
-afd2r
-af5d4w
-4afe
-afee4
-4afi
-af3l
-4afo
-a5fo.
-a2foe
-afon4d
-af3op
-af5org
-af1r
-af3s4
-afs2c
-af5se
-3afsl
-3afsp
-aft4a
-af5tr
-af3ui
-2afy
-4ag.
-ag1a2d
-ag3af
-ag3a2m
-ag3ar
-ag3di
-a5ge.
-agee5t
-4a5gen.
-ager4s
-ag3ex
-a4gil
-ag3ind
-a4g3ins
-agi5ot
-4ag1l
-ag3of
-a4g3or
-ag4o3v
-a2gr
-ag4ra
-ag5rap
-ag3ru
-ag3sl
-ag4sle
-ag5slu
-ags2p
-ag3spe
-ag3spi
-ag1st
-ag3sta
-ag5str
-2agt
-agu5a
-a2g3ui
-ag3u4r
-a2g3uu
-2ah
-4a1ha
-4a5he
-ahe5ri
-a1hi
-ah3l
-a3ho
-ah5r
-ah5t2
-a3hu
-a3hy
-ai5a2
-ai4dr
-ai1e
-a1ij
-ai5k
-ail3m
-ai2lo
-a2in
-aio4
-ai3ov
-ai3s4
-ai5sc
-ai4s5l
-ai5sn
-ai1so
-ai1st
-ai5tj
-ai3tr
-aiu4
-aïn4
-aïns5
-aïs3o4
-2a1j
-ajaars5
-aka2
-ak3af
-ak3ag
-a4k3ar
-a4k3ed
-ak3emi
-ake2t
-ak3id
-ak3ink
-ak5is
-1akko
-4a2k3l
-a2k3n
-ak5ne
-ak4ni
-a3kof
-ak3on
-ak3o2p
-a2kr
-ak5ru
-2aks
-ak4so
-ak5spe
-ak1st
-ak5to
-ak5t4w
-a2k3u4
-ak1w
-ak3wi
-a1la
-a4l3ach
-al3adr
-a3l4ag
-a3lal
-a5lapr
-al3art
-4ald
-a1le
-a5le.
-al3eff
-2aleg
-a2l3el
-ale5ro
-ale5ste
-ale4tj
-a3lè
-al4fen
-alf3l
-al5fon
-alfu4
-al2gl
-a3lie
-al3int
-alk5ei
-al5kle
-alk3s
-al4kui
-al5le
-al4mac
-al5me
-a1lo
-a4l3ol
-alo2n
-al3ou
-a4l3o4v
-2alp
-al3s4ag
-al3san
-al3scr
-als5j
-al2sl
-als5li
-als5m
-al4sn
-al4s3oo
-al4stem
-al5sten
-als5tou
-altaar5
-al3tha
-al4t3ro
-alt4st
-a1lu
-a2lui
-al3uit
-al3u4r
-alu2s5
-4am.
-a4m3ac
-am3adr
-ama4f
-4amag
-am3art
-5ambt
-ament4j
-ame4ran
-ame5tj
-a2meu
-am4i
-4amm
-am3oli
-a2m3o4v
-3ampè
-am2pl
-am4ple
-am4sm
-am4s3o
-am4spr
-ams5te.
-a2m3ui
-a3nad
-an3alg
-an4a3n
-an3arc
-2anc
-4anda
-anda4d
-and5ank
-an4d3e4d
-an4dex
-2andj
-an4dom
-an5d4ri
-and5roo
-ands5lo
-an4d3ul
-a4nem
-a3nen
-anen3i
-4aner
-an3est
-ane3us
-4ang.
-an4gan
-anga5p
-ange5st
-ang5le
-an2gr
-ang5sna
-angs4te
-aniet3
-anij4
-3anima
-an5ion
-a4n5isl
-ani5t
-4aniv
-4ank.
-an4kaa
-anka4n
-an4k3as
-an2k3j
-an4klu
-ank3of
-an2k3r
-a1no
-an3och
-a4n3oor
-an3ork
-ano3s
-ano3t4
-a4n3ou
-ano5v
-4ans
-an3san
-ans3cr
-an4seg
-an4serv
-an4sid
-an2so4
-ans5or
-ans3pi
-ans5pir
-an1st
-an4s5te.
-an5stru
-an4tac
-ante4n
-an3th
-2anti
-ant5sl
-ant3w
-4a1nu
-a5nuf
-an3ui
-an3ur
-an3uu
-anze5s
-2a1o
-ao4g
-ao2l
-a4om
-a2op2
-aor5t
-a3os
-aos3p
-aos5t
-4ap.
-a1pa
-a4pak
-a4pas
-ap3as.
-ap3ass
-a1pe
-ap5eten
-4a1pi
-apij4t5j
-ap3ijz
-ap1j
-2apl
-ap3le
-ap3li
-ap3lo
-a1plu
-apon5
-ap3oo
-apo3p
-apo5sta
-ap3o4v
-1appa
-4appen
-4apr
-ap3ra
-a3pre
-a4prem
-a5p4ris
-ap3ru
-ap2sa
-ap4si
-ap2s3l
-ap3sn
-ap4ste.
-2apt
-ap3tj
-2apu
-a2q
-4ar.
-a1ra
-araat5j
-a4r3app
-ara3s4
-ar2da
-ard3ac
-ard3ak
-ardo4
-ar4d3om
-ar4d3op
-ar4d3ov
-ar2d1r
-ar4dra
-ard3re
-ar4du
-ard3w
-a1re
-5a2rea
-a3reg
-a3rem
-ar4en
-are4no
-are3sp
-a3rev
-ar3gh
-ar2gl
-a1ri
-arie4tj
-arij3s
-ar3ins
-ark2
-ark3ac
-ar3k4l
-ar4map
-arm3u
-a1ro
-a2r3ob
-ar3oge
-a3rok
-aro4ko
-ar3oog
-a2r1o2p
-a3rot
-arpi4
-ar2s
-ar5sch
-ar3scr
-ars2e
-ar5see
-ar3si
-ars3l
-ar4sla
-ars5m
-ar3sni
-ar4so
-ar4sp
-ar5spo
-ars3ta
-ars5tal
-ar4s5tek
-ar4str
-ar4su
-art4aa
-ar4t3ak
-ar4tan
-art5ank
-ar4tap
-ar3tar
-4arte
-ar4tei
-ar2th
-ar5tij
-4ar4tj
-art5jesv
-4arto
-ar5tof
-art5o4ge
-art5oog
-ar4t3o4v
-ar2t3r
-ar4tro
-art5ru
-art4sl
-art5ste
-a3ru
-ar3ui
-4arw
-arwe3s
-a1ry
-4asa
-as3ad
-as4ag
-as3ak
-as1ap
-a2sc
-as5ce
-2ase
-a4sec
-a4s3eg
-aser5a
-ase5tj
-aseve4
-as5ha
-asis1
-a4sj
-as5ja
-as3ji
-as3k
-as5ka
-as5ki
-as3l
-as4lu
-as3m
-as5mi
-as3n
-as4ne
-as4ni
-4aso
-as3ob
-aso2l
-aso4r
-as1p
-as3pl
-a4s5q
-as5sa
-4assm
-3assu
-a2st
-4as3ta
-a4sta.
-as5tag
-as4tas
-as4tat
-as3te
-a3stek
-a3stem
-as5ten
-as3tè
-asting5sp
-as1to
-as3tob
-ast3op
-4astr
-ast5rem
-as5tro.
-as4tu
-a1t
-ataart5j
-at1ac
-at3ade
-at3af.
-at3ank
-ata3s
-2atek
-a5tell
-ate2n
-ate3no
-aten4t5r
-ater5ad
-ater5sl
-at4eu
-2atg
-at3hu
-ati5ni
-a2t3j
-at4je
-atjes5
-at5jesb
-at5jesh
-at5jesm
-at5jesp
-2atm
-2atn
-a2too
-at3oog
-atos5f
-ato3st
-at3rac
-at3rei
-at3rib
-at4roe
-at5ru
-at4s3a2
-at4s3ec
-atsi4
-at4s3id
-at2s3l
-at4slo
-ats5m
-ats3n
-at4sne
-ats3pr
-at2st
-at4staa
-at4s5tak
-at4ste.
-at5sten
-at5stij
-ats5tol
-ats5top.
-ats5trek
-at4t3u4
-a2t3ui
-at3w
-aua4
-au3ch
-au3co
-au5de
-aud4j
-1aug
-au3na
-aun3t
-aup2
-aur4
-au5re
-aure3u
-4aus
-au3so
-au4s5p
-au3sto
-au3t4
-4aut.
-1auto
-auto3p
-2auts3
-auw3a
-4auz
-a4ü
-avast4
-ave3c
-avee4
-ave4n3i
-aven5sp
-aver3a
-ave3re
-ave3r4u
-4avi
-a2vo
-1a4von
-a5voo
-a5vor
-4avy
-2a1w
-axis4
-ay2a
-4azif
-ä3h
-ämme3
-ä3r
-1b
-4b.
-3ba
-baar5ste
-baar5tj
-ba4da
-bad3ar
-ba4d3r
-bad3s
-ba3g4h
-ba3gl
-5b2ak
-ba4k3o4
-bak4sp
-ba3lan
-ba4lar
-bal3dw
-bale4
-bal3ev
-ba3lië
-bal4kl
-ba3lo
-bals4
-bal3sf
-ba4me
-ba5n2a
-ban4k3a
-ban4kl
-ban4k3o
-ban4kr
-bank3w
-ba3sa
-ba4st
-ba2tr
-ba3tro
-4bb
-bbe4l5ag
-bbe4l5ee
-bbe2n
-bben3a
-4b1c
-4b1d4
-b5de
-bdi5a
-3b4e
-be1a
-be3as
-be2au
-be3ch
-be5dwe
-be5dwi
-be5dwo
-bee4
-beet1
-be5g
-beie4
-bei3s
-bei5tj
-be5ki
-be3k4l
-be1kw
-be3lar
-be5l4as
-bel5dr
-be3le
-be4l3ec
-be4lex
-bel5f
-be3li
-be4l5int
-bel3k
-bel4o
-be3lo5v
-bel3sc
-bel3sp
-belt4
-bemen4s
-be3nep
-be5n4o
-be5ot
-be1ra
-bere5s4
-ber4g5af
-ber4g5et
-ber4gl
-ber4gr
-ber4i
-be1r4o
-bero5v
-be3ru
-be3ry
-be1s4
-bes5ac
-be4sh
-be4sje
-be3so
-be5sp
-bes5s
-bes5te.
-bes5ten.
-be5stie
-bet2
-be3t4h
-be5ton
-bet5ren
-be3tw
-be5twi
-be3und
-beur4s
-4b3f
-2b1g
-4b3h
-3b2i
-bid3s
-bi2du
-bie4li
-bi4en
-bie4t3j
-bij5d
-bij3f
-bij3g4
-bij5k4
-bij1p
-bij1s2
-bik4a
-5bil
-bi3lo
-bil3s2
-bin4dr
-bin4st
-bin4t3j
-bi5ob
-bi3ok
-bi5om
-bi3oso
-bi5ow
-bir3
-bi4st
-bis5troo
-bi1tr
-bit4se
-bit4s3p
-4b1j
-4b1k
-3b4l
-blad5ij
-2b5lap
-b5led
-bles3
-ble5spe
-ble2t3
-b5lid
-blijs4
-blij5ste
-bli2k
-4b5loi
-blok5l
-bloot5j
-blu2s
-2b1m
-4b1n
-b4o
-bo4d3ec
-body3
-boe4g3a
-boe4kn
-boe4ko
-boes4
-boe3st
-boet5st
-bo3f4l
-bo2k
-bok3an
-bokje5
-bok4st
-bolk4
-bo2m3a4
-bo2m3o
-bo5na
-bond2
-bond4s5
-3bone
-bo3no
-bon4t3j
-bon4t5o4
-boot3j
-boots5te.
-bo3p2
-bor4sta
-borst5o
-bor4st5r
-bo4s
-bos3a
-bo5sco
-bo5si
-bo5so
-bos5p
-bos5to
-bot3j
-bo4to
-bot3r
-bot4sp
-bot4st
-bo2tu
-bou5ta
-bouw5s
-bo3v
-bove4
-4b1p
-3br4
-braad5s
-bran4da
-bra5str
-brei5s4
-brie4t
-brie5tje.
-bri4l
-bro2n
-bron3o4
-bru2l
-4b1s4
-b2s5a
-b5sc
-b3si
-bsi3d
-bs5je
-b2s5la
-b2s5m
-bs5s
-b4stij
-4bt4
-b3ta
-b1tr
-bts5
-3b4u
-buit4j
-bul4k
-bu4lu
-bune5t
-b5urb
-bu5ri
-bus5c
-bus3o
-but4a
-but3j
-bu2to
-but4s
-buts5te
-buur4tj
-4bv
-2b3w
-by3
-4bz
-4c.
-1ca
-3ca.
-ca3b
-ca1ch
-5cada
-ca3do
-ca3dr
-cae3
-ca3g2
-cal4l3
-ca3lo
-came5r
-ca3na
-cant4
-ca2of
-ca1pr
-ca4pra
-ca5pri
-ca3ra
-car4u
-ca5se
-ca3s2p
-cas3t
-cas5tr
-ca3ta
-cate4n
-ca3t4h
-cau3
-cau4st
-ca3v
-2cb
-4c1c
-cca3
-cces5
-c4d
-c5do
-1ce
-3ced
-cee4
-3ceel
-3cel
-cel3d
-celes5
-ce5li
-cel5k
-ce4l3o
-2ce3n4a
-2cene
-ce3no
-5cent
-cen4t3j
-ceo4
-ce3ra
-cer2n
-ce5ro
-cer4t3r
-ce2s
-ce3s2a
-ce5sc
-ce3s2h
-ce3sta
-ce3s4ti
-cesu5r
-ce3ta
-ce4t3j
-ceto4
-cet3og
-cet3oo
-1cé
-c3g
-4ch.
-3chaï
-5chao
-3chas
-1chau
-5chauf
-2chc
-1chef
-5chef.
-5chefs
-5chemi
-5cheq
-che5ri
-che3ru
-5ches
-che3us
-1ché
-5chir
-4chn
-2chp
-5chromo
-4cht
-4chw
-1chy
-3ci
-ci5ab
-ci3am
-cie3k
-cier4s5
-ci1eu
-5cij
-5cil
-ci5le
-cil3m
-4cind
-ci3o
-ci5om
-5cir
-ci3t2
-ci5ta
-c3j
-c2k3a
-c4k3ed
-ck3ef
-cke5re
-c5k4et
-ck3id
-c2k3l
-ck4le
-c2k3n
-c2k3o4
-c4k3r
-ck5se
-ck3so
-ck5st
-c3ky
-1c4l
-cla2n
-cle3u
-5clu
-2c1n
-1co
-co3ad
-co3d
-co4i
-coin5
-co3k4
-co3la
-5com
-5cond
-con1g
-2co1no
-5cons
-3con5t4
-2coo
-2co1p2
-3copa
-4copi
-cor4dr
-co4rel
-co5ri
-cor2o
-5corr
-cors4
-co3ru
-co5sc
-co5se
-co5sp
-co3th
-co3tr
-5coun
-2cout
-co5v
-c3p4
-1c4r2
-3cras
-cre5d
-2crip
-3cris
-cro5f
-cro5k
-croo3
-cro5v
-crus5
-c3so
-c3sp
-c3ste
-2c1t
-ct3act
-ct3ad
-ct5c
-ctee5t
-cte2n3
-c2t1h
-c2t3j
-c4t3of
-c3tol
-c2t1on
-ct4or
-ct3rap
-c4t3re
-ct3sl
-ct3sp
-1c2u
-cu5d4
-cu3en
-cu3és
-cui5s
-cui2t
-cuit5e
-cu3k4
-cula5p
-cu3ra
-5cur3s
-cus3o
-c3w
-1cy
-1ç
-ça4o
-4d.
-1da
-3da.
-3daag
-d4aal
-d3aap
-daar5e
-5daat
-4dabo
-2d3acc
-da4ce
-da5den
-4dadr
-3dae
-2d1af
-3dag
-da2g3a4
-da3ge
-da4g3ed
-da4g3e4t
-da4g3on
-da4g3r
-dag4s3t
-da2gu
-3dai
-da3ï
-da3ke
-da4ker
-2dakk
-da4k1r
-4dala
-d3alar
-d3alc
-da3le
-4dalf
-da3li
-2dalm
-da2l3u
-d4am
-dam4a
-da5mac
-d3a4mat
-d2a5me4
-dames3
-dam4pl
-2da2na
-dan3as
-dank3l
-danoot5
-dan4si
-dan4sm
-dan4s3p
-dan4st
-dans5ta
-4d3antw
-2d1ap
-4d3a2pe
-5dapu
-da2r3a
-d3arb
-3dare
-3dari
-dar4mo
-darm5on
-3daro
-dar3s
-dar5st
-3das3
-5dasa
-da3stu
-3d4at
-da3ta
-dat5j
-4d5atl
-4d5atm
-da2t3r
-5daue
-4d1aut
-3dauw
-2db
-dbei5
-dbou4w5i
-2d5c
-4d3d4
-ddags4
-ddag5sp
-ddel5ev
-dde2n
-dden5a
-ddera4
-dder5al
-ddere4
-dder5ee
-dder5ep
-dder3o
-ddi3a
-d5dles
-d5do
-ddo3p
-1de
-3de.
-de2al
-de1ch
-d4e5den
-5dedir
-de4dit
-dee4g3
-dee4l
-deel3i
-4d3een
-dee4r
-4d3eff
-de3g
-4d5eg.
-4d5egg
-2d5egy
-2dei
-d3eie
-d3eig
-d3eil
-d1eis
-d3eiw
-5dek
-de3ke
-dek3lu
-dek3w
-del4aa
-del5da
-del5dr
-del5eek
-4d3e4lek
-4delem
-de4lev
-4d3e4lit
-del3k
-del2s
-del4s3e
-dels3i
-del4so
-4d3e4mai
-2demh
-5demi
-dem5ond
-d2en.
-den4ac
-den5ate
-den3ei
-den3e4p
-den3ev
-4d3engt
-den4k5of
-de4noc
-den3o4r
-den3sh
-den5str
-de3nu
-5denvl
-de4o
-de5ofo
-de5ol
-deo4li
-deo3v
-de3rab
-de4r3ad
-der3a4g
-de3rak
-de3ram
-de3ran
-de3rap
-de3ras
-de4r5as.
-de4r5ass
-der2e
-der5ede
-der5egd
-de4r3ei
-de4r3em
-de5re4n
-de4rep
-de4ret
-de5rij
-de4r3im
-der3k4
-der3on
-dero4r
-4d3eros
-der4s3a
-der4s5om
-der5ste
-der5sto
-der5stra
-der5th
-4d3erts
-der5tw
-de2r3u
-de3rup
-de2s
-de3sav
-des3m
-des3n
-des3p
-de3spe
-de5spel
-de4spl
-des5sm
-de3st
-des5tak
-de5stal
-de4s3te
-de4sti
-de5stic
-des5top
-de3t4
-4d3e4tap
-de5tw
-deu4r3o4
-de3us.
-deu4tj
-deve4
-2dex
-4d1exa
-4dexp
-3dè
-2d1f
-2d3g
-d4gaf
-dge3la
-dge2t
-dgeto4
-dget5on
-dget5ov
-dge4tr
-dg4l
-2d1h
-d5he
-dheer4
-3d4hi.
-1di
-di2a
-di5ae
-di4ak
-di4ano
-dia3s4
-di4atr
-5dich
-di4do
-die2f
-die4r3o
-di3esr
-die3st
-die2t
-diet3r
-di1eu
-3dig
-di2ga
-dig5aa
-diges5
-dijk3r
-di3jo
-2d3ijz
-di2k3o4
-5dil
-2d3imp
-di5n2a
-2d3ind
-2dinf
-3d4ing.
-4d5ingel
-4d3inj
-4d3inko
-2d5inr
-2d3ins
-4d3int
-dintel5
-2d3inv
-2d3inw
-2d3inz
-di2o
-di5ofon
-di4ol
-di4one
-di4oni
-dio1s
-dio5sc
-2d3i2ro
-2d3irr
-3di4s
-dis5ag
-di5se
-di5si
-dis4kr
-dis5p
-dis1t
-dis5tr
-di3th
-dit3j
-dit3r
-5div
-2d1j
-2d3k2
-4d3l
-d5le.
-dli4n
-dlot4s
-2d1m
-2d3n2
-d5ne
-dni3s
-1do
-3do.
-do3a
-2dobj
-4d3obs
-3d4oe
-5doe.
-doe5d
-4doef
-d5oefe
-5doek
-5doen
-5doet
-4d5oev
-3doi
-d4ole
-2do2li
-d4olin
-dolk5s
-5dol5s
-3d4om.
-5domi
-do4m3o4
-d3omr
-dom4sn
-5domu
-d3omv
-4domz
-5don.
-d4ona
-5done
-do5ni
-5d4onn
-5do3n4o
-do3nu
-do5ny
-5donz
-2dop
-do3pa
-d3opb
-d3opd
-do3pee
-5dopj
-4d1opl
-3dopo
-d3ops
-d3opz
-4d5org
-do4rië
-d3ork
-dors5m
-do3sp
-do3sta
-dot3j
-5dou
-2dov
-dover5s
-3dovl
-3dovo
-2d3p
-dpren4
-1dr4
-3dra
-5dra.
-d3raam
-d3raap
-d4rac
-d5race
-5drach
-d3rad.
-d3rada
-5draf
-5d4rag
-d4rama
-d3rame
-4d3rand
-4drap
-4dras
-4d3raz
-2dre
-4d1rec
-d5reco
-d1red
-d2ree
-4d3reek
-4drend
-d4ress
-4dret
-3d2rev
-5dreve
-d3ric
-dries4
-5d2rif
-dri5ga
-d3rijd
-d3rijk
-d3rijm
-d3rijs
-5d4rin
-3dris
-4d3rit
-4d3roei
-d3roer
-5d2rog
-4d3rok
-d3roma
-d3rond
-3droog
-4droos
-5drop
-2drou
-2d3ro5v
-2droz
-drug4s
-d3ruim
-d3ruit
-5d4ru4k
-4d3rus
-2ds
-d2s1a2
-d4saa
-dsa4b
-d3sal
-ds4ate
-ds2ch
-d5schi
-dse2
-ds3eco
-d4s3ed
-d4s5ee
-d4sef
-d4sei
-ds3eis
-ds3elf
-dse4li
-d5sen
-d4s3es
-d4set
-d2sh
-ds3ho
-d2s1i2
-d4s5id
-dsig5a
-ds2im
-ds4ing
-ds5is
-d4s3j
-ds4jo
-ds5jon
-ds4l
-d1sla
-ds5las
-ds5lic
-d4s5lie
-ds5lim
-d3slin
-d2sm
-ds4mak
-d3smij
-ds5mo
-ds3n
-ds4ne
-ds5neu
-d3snu
-ds1o4
-ds3ob
-ds3om
-d4son
-ds2oo
-ds3op
-d4spa
-d5span
-ds5pati
-d5spec
-d5s4pel
-d4s3pet
-d1spi
-d4s3pl
-d5spoe
-d5spok
-d5spor
-ds5s
-dst4
-d1sta
-d5staat
-d4stab
-ds3tak
-d4s3tal
-ds4tan
-d3s4tat
-d5stav
-d3ste
-ds4te.
-d5stee
-d4stek
-ds4ter
-d4sterr
-d4stev
-ds3th
-d3s4ti
-d4stit
-d1sto
-ds5tram
-ds5trekk
-ds5ty
-d2su4
-ds3ure
-ds3uu
-d1sy
-2dt
-d1ta
-dtaart5j
-d1th
-d2tj
-d1to
-d1tr
-d1tu
-1du
-2duca
-5due
-du3en
-du3et
-5duid
-5duif
-5duik
-d3uil
-2duit
-4duit.
-d3uitd
-5duite
-4duitg
-d3uitv
-5duiv
-du4n
-dun5i
-du2o
-du4ol
-3durf
-3durv
-5du1s
-dut3j
-du5wen
-2dv
-dvaat5
-dvee3
-dve5na
-dvies5
-2dw
-d3wac
-d3was
-d3wat
-d1we
-3d2wei
-d3wek
-d3wet
-d3wez
-d1wi
-4d1wo
-d3wor
-d3wr
-1dy
-4d3yo
-dy4sp
-dy2s4t
-2dz
-4e.
-4ea
-e3aa
-e1ab
-ea3bo
-e3ac
-ea4ca
-eac5t
-e1ad
-ea3da
-e5adem
-ea3do
-ead3s2
-ead5sh
-e1af
-e1ag
-e3ai
-ea4k3o4
-e1al
-ea3la
-e3ali
-e4als
-ea5mi
-e3an
-e4an.
-eang3
-ean4s
-e5ap
-ea3pr
-e3aq
-e1ar
-ear2c
-e1as
-e2asc
-ea5s4e
-ease5t
-ea3so
-e1at
-e4at.
-eat3s
-eau3s4t
-e1av
-e3bo
-ebots5te.
-e5br
-3ecd
-e3ce
-e1che
-e1chi
-echt5ec
-echts5o
-e3chu
-4eck
-ec5le
-4ecor
-4ect
-ec3ta
-ec4taa
-3ecz
-e1d
-ed4ag
-e3dam
-e3d4an
-e4d4as
-ede3a
-ed3ei.
-ede5le
-edem4
-ede5nac
-ede5o
-ed4er
-e4d5erns
-ede5rog
-edi3al
-edi3am
-e5die
-4edir
-edoe5tj
-e3d4oo
-ed3opv
-edors5te
-ed3ov
-e3d2r
-ed3rod
-ed3rol
-ed1s
-ed5se
-ed2sl
-ed4so
-ed5sp
-ed3su
-ed3uit
-e4d2w
-e5dwan
-e4e
-eea4
-ee5b
-ee5ca
-ee5che
-ee2d3a
-eed4ac
-eed5as
-ee5de
-ee5do
-eed3ru
-eed3si
-eed3w
-ee2f
-ee3fa
-eef3ac
-ee3fi
-eef3l
-eef3r
-ee4gap
-eeg3l
-ee3i
-ee2k
-ee3ka
-ee5kaa
-eek3ak
-eek5all
-eek1e
-ee5ket
-ee3ki
-ee3kl
-ee4k3lo
-eek3n
-eek3re
-ee3kri
-eek3ro
-eek5st
-eek3w
-ee2l
-eel3a
-ee3lad
-eel4as.
-eel5d4u
-ee3le
-eel4ee
-ee3li
-ee5lij
-eel5k4
-ee3lob
-eel3og
-eelo4ge
-ee3lu4
-eel3ur
-eel3uu
-4eem
-eema4
-ee2n
-een3a
-eena4r
-een3e2
-een5g
-ee3ni
-een5ie
-een5k
-ee5o2
-ee2pa
-eep3an
-ee3pl
-eepo4
-ee4p3re
-eep3ru
-ee2r
-eer1a
-eer3aa
-ee4rad
-eera4l
-ee3ram
-ee3ran
-ee3re
-ee4ree
-ee5rei
-ee4r3i
-ee5ric
-eer5k
-eer3og
-eer5oom
-ee3rot
-eer5ston
-eer5str
-ee2s3
-ee5sch
-ee4s5em
-ees5et
-ee3sj
-ees5lo
-ee3sn
-ee3s4p
-ees5pl
-ees5pot
-ees5ten
-ee3stu
-ee2t
-eet5aa
-ee3tal
-ee3tan
-ee5te
-eet5h
-ee3tj
-eetna4
-ee3to
-eet3og
-eeto4ge
-eet3oo
-eeto4r
-ee3tr
-ee4tro
-eet5rok
-eet3sp
-eet5ste
-ee5v
-ee5z
-eën3
-e5ër
-ef3ad
-efa4z
-efde5l
-ef3do
-ef3ei
-e5fer
-4efi
-efie4t
-efiet5j
-ef3ins
-e3fis5
-e1fl
-ef3li
-ef3loo
-e3flu
-ef3om
-e3foo
-ef3op
-e1fr
-ef3rij
-e5fron
-ef3sf
-4e1g
-egas4
-eg3as.
-ega5sk
-eg3ebb
-e4ge4c
-eg3eig
-egel5ei.
-ege4l5ov
-ege4net
-egen5of
-ege4ra
-eger5eng
-ege4ro
-eger5on
-e3g4i
-eg3ijz
-egip4
-egiste4
-e2gl
-e4go.
-eg3org
-e2gos
-eg3oud
-e5graf
-eg3s4
-eg5sle
-eg5so
-e2g3u4r
-egut4
-e4g3uu
-e1h4
-e5ha
-eheis5
-ehit4
-e2i
-ei5a
-4eid
-ei3do
-eid4sc
-ei1e
-4eien
-eien5s
-eie5re
-ei3f4
-ei3gl
-4eign
-e3ij
-eik4l
-ei3kn
-ei5kr
-eiks4
-4eil.
-eil5ant
-4eild4
-eil5dr
-4eile
-ei4lev
-eil5m
-ei2l3o
-ei4n3ab
-ei3n4ac
-ein4do
-eind5oo
-ein4d3r
-ein5gr
-ein5k
-ei2no
-ein5sl
-ei3o
-ei2sa
-ei5sha
-ei3s4la
-ei3slo
-eis4p
-ei3s4ta
-4eit2
-ei4too
-eit4s3
-eits5c
-eits5n
-eits5te.
-eit5sten
-eits5tr
-eive4
-4eiz
-e1j2
-e3je
-ek3aan
-ekaart5j
-ekaat4
-ek3af.
-e4k3a4g
-ek3al.
-ek3alt
-e5kam
-ek3ang
-ek4ee
-ek1ei
-e3kem
-e5ker.
-e5kers
-ekes3
-ekes4t
-ekes5tr
-e3ket
-ek5eter
-e5kic
-e4kil
-e5kis
-ekla4m
-eklam5a
-ek3lev
-e5klim
-ek5loos
-ek4ni
-e3ko
-e4k3ob
-e5kof
-ek3oli
-ek3opz
-e5kor
-ek5os.
-ek5oss
-e5kran
-ek3roz
-eks4e
-eks5erv
-ek5set
-ek4str
-eks5tra
-ek5t4e
-ek3to
-eku4
-ek3uit
-ek3ur
-ek1uu
-ekwet5ste
-ek3win
-e1la
-el3aan
-el5aand
-el1ac
-el4ade
-el3adj
-el3adm
-el3adr
-el3adv
-el1a4f
-el1al
-e3lan
-el5ana
-e3lap
-e5lap.
-e4lapp
-el3arb
-el3arc
-el3arm
-el3art
-e4l3as.
-el3asi
-e4l3asp
-e4l3ass
-el1au
-e4laut
-e3laz
-el5azi
-el4dec
-el4dr
-el4du
-e1le
-e3le.
-el3eeu
-el5eff
-e5leid
-el5eier
-el3eig
-el3ei5s
-e4lel
-3e2lem
-el3emp
-e5l4en
-e3ler
-ele5r4a
-eler4s
-el3erv
-e3les
-eles4t
-e4l3eta
-ele4tr
-e4l3etu
-el3exc
-e3lé
-elfi4d
-el1fl
-elf3s4
-el3gu
-2eli
-e5lie
-e5lig
-eli5kw
-el3imp
-e4l3ind
-e3ling
-e4l5inkt
-el5inz
-3elix
-el4kee
-elk3s
-el4k3u4r
-el4kw
-4e1lo
-e5loep
-el3oes
-e3lok
-el3ol
-el3oms
-el5ond
-el5ont
-e3loo
-e5lood
-e5loos
-el3ops
-el5opt
-el5opv
-el3o2r
-el5org
-elot4j
-e5lou
-el3o4ve
-e5loz
-elp4o
-el4ps
-el4s5em
-el4s3k
-el5smed
-el5twe
-4e1lu
-el3uit
-eluks5
-2ema
-e4mana
-ema3sc
-ema5to
-emees5
-emens5te
-emer4s
-emes3
-emie4tj
-e5mok
-em3oli
-em3op
-em3org
-emor5sten
-e4mo4v
-em3sa
-em5sc
-em4sli
-em4sm
-em1st
-em3su
-em3uit
-emut4
-en3aap
-e3naar
-e4n3aas
-en1ac
-e5n4acc
-en5af
-e2n1ak
-e2nal
-en3al.
-en3als
-en3amb
-en4ame
-e2nan
-e4n3ang
-en1a2p
-e5nari
-en3ars
-e2n3a2s
-enas3p
-e3nat
-ena4tel
-e4n3att
-en1av
-e2n3a2z
-enci4
-3ency.
-en3da
-en5daa
-end5ama
-5enderti
-en3d4o
-en3dr
-en5drek
-e2n3e2c
-enede4
-e3nee
-en3eed
-enee5t
-en5eg.
-en5egg
-en3ela
-en3elf
-en3ema
-e4n3en5t
-e2ne2p
-en3epo
-e5nere
-5energ
-e4nerv
-en3eta
-en3ete
-ene4ten
-e3neu
-4enf
-en5ga
-en3gl
-en4g5le
-eng4r
-en5gri
-engs4
-eng5se
-eng3sm
-e3nie
-e5nijd
-e2n3im
-e4ninga
-e4n3ink
-e3niv
-e4n3i4vo
-en3k2a
-e4n3och
-en3off
-e4n3oli
-e2n1on
-e4n3oor
-enoot5
-e2n1o2p
-e3nor.
-en3ord
-eno3s
-en3ou
-e2n1ov
-3enq
-en5sce
-en4sei
-ens5ein
-ensek5
-3ensem
-ens4fe
-en4sin
-en5slak
-en4s3on
-en1s2p
-ens5pot
-en5stan
-en5sten
-enst5ijv
-en4stin
-en4stu4r
-en3su
-en4tac
-en5tee
-en5tei
-ente5re
-en4terv
-3entè
-en1t2h
-en5tom
-ent4r
-en3tre
-ent5rol
-ent4sl
-ents3m
-ent4s3p
-en3tw
-e1nu
-e4n1ui
-e2nun
-en3ur
-en3uu
-5envelo
-eny4
-e3o
-eo3d
-eodo3
-e5oe
-eoes3
-e5off
-eo3fr
-e4o3k4
-e5on
-eo5ni
-e5oo
-eo3pa
-eo3pe
-eo3pl
-eop4la
-eo3p2r
-e5ops
-eor5d
-e5org
-e5ori
-eo3ro
-eo3s4
-eo5st
-e4ot
-eo5te
-e5o3t4h
-e1pa
-e3paa
-ep3aak
-ep3ac
-e4paf
-epa4k
-ep5ake
-e3pal
-e3pap
-e4p3app
-e3par
-ep3asp
-e1pe
-e5pe.
-ep5een
-e5per
-epers5te.
-e1pi
-3epid
-ep3ijs
-ep3ijz
-ep5ingr
-ep3ins
-epit4s
-epits5te
-ep1j
-e1pl
-ep3led
-e4p3lod
-e5ploe
-ep3lus
-e1po
-e4p5o4ge
-epoort5j
-epoot4j
-3e4pos.
-e3pot
-epou4
-e1pr
-ep4ra
-e3pri
-ep5rode
-eprot4
-ep2s
-ep4s5ee
-ep4ser
-eps3l
-eps5n
-eps3p
-eps3ta
-eps5taa
-eps5tal
-eps5to
-eps3tr
-eps5tro
-ep4tak
-ep2tj
-ep4tr
-ept3ra
-ep5tro
-ep3uit
-4equa
-e3ra.
-e1raa
-e5raad
-e4raak.
-er3aan
-er5aanp
-e4raap.
-e5raat
-e4r1ac
-e5rac.
-e5race
-e5raco
-e3rad
-e5rad.
-er3ado
-er3af
-e3raff
-era4gen
-e1rai
-e4r3all
-er3ama
-er3ana
-e5randa
-e5rane
-e5ra3pl
-er3arc
-e3rare
-e3rari
-e1rat4
-er3a4tr
-er3azi
-er3d2a
-er3d4i
-erd4o
-er3d2r
-erd5uit.
-er3d4w
-e1re
-er5eat
-4erec
-er5editi
-er3een
-e5reep
-er5eers
-er3eet
-er3ef
-er5eff
-er5eg.
-er3egd
-er5egg
-er5egt
-er3eie
-er3eig
-er3eil
-er5eind
-ere3kl
-er3elk
-e4r3emm
-er3emp
-e3rend
-e5rendel
-ere4ne
-eren5eg
-er5enen.
-e3renm
-e3rent
-er5enth
-e5rento
-eren5tw
-ere2o
-ere4og
-er3epi
-er3e2q
-er3eri
-e3res.
-er3esk
-e3ress
-ere4st
-ere4t3j
-er3etn
-e4r3ets
-e4r5ex
-erg2l
-e3ri
-eri5ab
-e5rif
-e5rig
-erig5a
-er3ijl
-er3ijs
-e4rijs.
-er3ijv
-e4r3ijz
-e5rik
-er5ind
-e4r3ini
-er5inkt
-er3ins
-er3int
-e5rio
-e5ris
-erkeers5
-er2kn
-er3m4i
-er5mo
-er5nu
-e1ro.
-e3rob
-er3oc
-e4r3oed
-er3oef
-e5roep
-eroe5tj
-er3oev
-er3of
-ero2g
-e3rok
-e1ro2l
-e5rol.
-er3oli
-e5roll
-er3om
-er1on
-e3ron.
-e3rone
-er3onv
-er3oog
-er3oor
-e5roos
-e4r3op
-erop3a
-ero5pen
-e2r3or
-er1ov
-er3oxi
-e3roz
-e3rö
-er4plu
-errie5tj
-er3scr
-er3sj
-er5slag
-er5span
-ers4pot
-er5stem
-er5te
-er3t2h
-er5t4i
-er5t4o
-er3tr
-ert5se
-erts5l
-er3t4u
-er3t4w
-e1ru
-e3rub
-e3rug5
-e2rui
-er3uit
-erui5t4j
-e2run
-e3runs
-e4r3ur
-e3rus
-er5uu
-3ervar
-3erwt
-e4saf
-e4s3a2g
-e3sam
-e5san
-es3ap
-es3arr
-e3sa3s
-e3scop
-e3s2cr
-es4e
-e5sec
-es5een
-e5sel
-es5ene
-e4s5eng
-es5ex
-es2fe
-es5he
-e4shi
-e3sid
-e3sie
-es1in
-e4sir
-es5je.
-es5jes
-e3s4jo
-es5jon
-e4s3ka
-es5kr
-e3sl
-es4la
-e5sla.
-e5slag
-es3lak
-es5lat
-es4le
-es5leg
-es2m
-es4mui
-e5smuil.
-e1sn
-e3s4ne
-e1so
-e3sol
-es4oo
-es5oor.
-eso4p
-es3ore
-e1sp
-es5pas
-es4pel
-espit5ste
-e3spl
-e4sprie
-esp5riem
-es4sm
-e3stak
-e3s4tal
-e3stap
-es4tar
-es5tatie
-e4s3te.
-es4tea
-es4teel
-est5ei.
-e4steka
-es5tekam
-e3s4tem
-es5temo
-es3ten
-e4sten.
-es5tenb
-es3ter
-estere5o
-es5tes
-es4tet
-e3steu
-es4tic
-e4stie
-e3stot
-es5tra.
-es5trac
-es5trak
-e5stral
-est5rap
-es5trei
-est4sc
-es4tur
-e3sty
-e3su
-esu4r
-e3sy
-e1ta
-e3ta.
-et3aan
-et3ac
-et3ad
-et3afz
-3e2tag
-e3tak
-e5tak.
-et4ana
-e5tand
-e2tap
-e4tapp
-e5tat
-e4tau
-e2tav
-e3te
-e5tea
-et3edi
-e5tek
-4etel
-e5tel.
-e4t5elf
-e5tels
-et5emb
-et5emm
-etens5u
-eten5tj
-ete5r4a
-ete3ro
-eters5la
-eter5sm
-e5tes
-e1th
-et3ha
-et3hor
-et5hu
-e4t5i4d
-e5tie
-e4t3inc
-e4tiq
-e5tis
-e4tja
-e1to
-e5toc
-e3toe
-e5toev
-e3tol
-eto4p
-et3ope
-et3opl
-e4t3ork
-eto3sf
-e1tr
-et3rec
-e4t5res
-e3troe
-e5tron
-e5troo
-etros4
-e4t3ru
-et4sl
-ets5lap
-et5slu
-ets3n
-et4s3oo
-et3spe
-ets3pr
-et3spu
-et4ste
-ets5tek
-et5sten
-et5sti
-ets4u
-et5su5r
-et5suu
-e1tu
-etui5tj
-etu4r
-et3we
-et2wi
-1eua4
-1euc
-eudi5o
-eu5dr
-eu3e
-eugd3r
-eu3g2r
-eu4ler
-eu4li
-e1um
-e3um.
-e2umd
-eu2na
-eun3t
-1eu1o
-eu2po
-eu4rad
-eu4rec
-eu3ren
-eu4res
-eu4rij
-eur5k
-euro5v
-eur4sta
-eurs5taa
-eurs5te.
-eur4s5tr
-eur4su
-eu5sch
-eus4p
-eu3spa
-eu4st
-eu5str
-eu3tj
-eu1tr
-e3uu
-2euw
-eu4wa
-eu5win
-euw4str
-evaar5tj
-eval4s
-evari5
-eve4lo
-evel5op
-eve5n4aa
-4ever
-eve3ra
-4e1w
-e5wa
-e5we
-ewen4s
-ewens5te.
-ewest5r
-ew2h
-e5wi
-ewo3v
-4ex.
-2ex3aa
-ex3af
-4exco
-3exeg
-3exem
-4exi
-ex3in
-ex5op
-1exp
-e3y4o
-eys4
-ey3st
-e5za
-e3zee
-4e3zen
-ezers5
-e3zo
-ezz4
-é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
-f4aat
-3fab
-fa2bo
-f3acc
-face4
-f1ach
-2fad
-2f1af
-fa3g
-fal3s
-fa3m
-f3ang
-fant2
-fan4t3j
-fant4s5
-2f3a2p
-f4arm
-3fa5se
-fa2to
-fa3v
-4fb
-fbe5dw
-f1c
-4fd
-f3da
-fda4g
-f5dan
-fd1ar
-fde4k
-fdek3l
-fde4s3
-fdes5e
-fdes5l
-fde5sm
-fdes5t
-f2d3in
-fd3of
-fdors5te
-fd4ra
-f3d4ru
-fd5se
-fd3si
-fd3so
-fd3sp
-f4d2w
-fd3wo
-1fe
-fe2a
-fec4tr
-fede3
-fe4del
-f3een
-5fees
-feest5r
-fel5dr
-fe4l3ee
-3feli
-fe4lom
-fe4l3op
-fel3sp
-fe3no
-f4er
-fe3rab
-fe3ran
-fe4r3et
-fe3rom
-fe3ron
-3fes3
-fe4t3j
-fetu5r
-2f3ex
-1fé
-3fè
-3fê
-4f1f
-f5fe
-f5fi
-ffs2
-ff3sh
-ff3si
-f3fu
-f3g2
-fge3
-fge5r4
-fge5t
-4f5h
-1fi
-fi5ac
-fi4al
-fi3am
-fi3apa
-fi3apo
-fia4s
-3fib
-fi1ch
-5fie
-5fig
-f3ijs
-2f1ijz
-fik4st
-3f2il
-fil4m3a
-film5on
-fi3lo
-4find
-3fini
-f3inj
-4fink
-2finr
-fi3o
-fi4r
-fi4s
-fi5se
-f5iso
-f1j
-fjes5
-4f1k4
-f3ke
-f2l2
-4f3laa
-f1laf
-f4lam
-f3lei
-flen4st
-flens5te.
-f4les
-fle2t
-flet3j
-4flev
-f4lex
-f3lez
-2flie
-2flij
-f4lik
-f4lip
-f4lit
-f3lok
-3f4lor
-flu4t3
-4f1m
-f1n
-1fo
-3fob
-5foc
-foe5d
-foe5ta
-2f3of
-5fok
-2foms
-fo5na
-fond5en
-fonds5l
-fon5eng
-fo1no
-4font
-fon5te
-foo4
-fooi5
-f3oom
-5foon
-2fo4p
-fop5s4
-f4or
-3fo5re
-fo5ri
-5form
-for4t3j
-fo1ru
-fo3t
-2f3oud
-4f1ov
-3fö
-4f5p4
-fpers5te.
-fpits5te.
-fr4
-f4raak.
-fraam5
-5frac
-f3rad
-f2ras
-5frau
-f1rec
-f3rek
-5freq
-frie4s
-frie4t
-friet5j
-f4rik
-f4rod
-4f3rol
-f4rolo
-f3roma
-frus3
-4f1s
-f2sa4
-fs3ad
-fs3an
-fs3ar
-f3sc
-f5sch
-f4scr
-fse2
-f4s3ec
-f4s5ee
-f4sei
-f4s3eth
-fs4fe
-f2sh
-fs5he
-f2si
-f3sie
-fs3im
-fs1in
-f5slaa
-f5slac
-f5slag
-fs3lap
-fs2m
-fs3ma
-fs4mi
-fs3mo
-fs3mu
-f2s1o4
-fs3ob
-fs3om
-fs4oo
-fs2p
-fs4pre
-fs4t
-fst3as
-f3ste
-fs5tec
-f5stell
-fste4m3
-f4sterr
-f3sti
-f5stif
-f3sto
-f4st3oc
-f4ston
-f3str
-f3stu
-f3sy
-4ft
-f1ta
-ft1ac
-fta4kl
-fta4p
-ft3art
-fter5sh
-ft3h
-f1to
-f5tond
-f4tont
-f1tr
-ft2s3l
-ft4sm
-fts3n
-ft4so
-fts3p
-f1tu
-ftu4r
-1fu
-2fuit
-fu4ma
-fum3ac
-3f2un
-fur4o
-3fus
-2fuu
-4fv
-fva2
-fval3
-4f1w4
-3fy1
-2fz
-fzet5
-4g.
-1ga
-3ga.
-gaar5tj
-g4aat
-2g1ac
-4g3adm
-g4af.
-g3afd
-ga3fr
-4g3afs
-4g3afw
-2g3a4h
-4gal.
-ga3la
-ga4l3ap
-ga5ler
-gal3s
-4gamb
-g4a3mi
-3gan
-gan5d
-5gane
-gan4s5t
-ga3pl
-3gar.
-4g3arb
-ga3re
-g1arm
-3gars
-2g3art
-gar5tj
-ga4s
-gas5c
-gas3i
-ga5sla.
-ga3sli
-ga5slo
-gas3o
-gas3p
-gas3tr
-gas5tra
-gast5rol
-3gat
-gat5j
-gat3s
-4gaut
-ga5ve
-g1avo
-2g5b
-2g1c
-4gd
-g5dac
-g5dag
-gd3art
-gd3at
-gd5ate
-g3de
-g4d3elf
-g5der.
-gd3erv
-g4d3id
-gd3im
-g2din
-g3dr
-g5dru
-gd3sa
-gd5sp
-g3du
-1ge
-3ge.
-ge3a
-gea3dr
-gea5na
-gea3q
-ge4ari
-ge5au
-4g3eb.
-2gebb
-ge3c
-ge3d4
-gedi3a
-ge4dit
-ge5dr
-ge5dw
-3gee4
-geest5r
-geet3a
-ge3f4
-2g3eff
-ge5g4
-gege4s
-4geig
-2g3eik
-gei4l5a
-5geit
-geit3j
-ge3k4a
-ge3ke
-ge5ki
-ge5k4l
-ge3kr
-gek4st
-gek4u
-ge3k4w
-ge3lau
-gel4d3a4
-ge3l4e
-4ge4lem
-gel5f
-gel5k
-5ge3l4o
-gel5si
-gel3sl
-gel3sp
-gel5ste
-ge5ma
-4gemb
-4g3emf
-ge5mo
-2g3emp
-gems3
-ge3m4u
-g4en.
-ge3nak
-gen4az
-3ge3ne
-ge4n3ed
-ge4nend
-4g3engt
-3geni
-gen5k
-ge1no
-ge4n4of
-ge4nog
-gen5sfe
-gen5ston
-gen5stu
-genstu5r
-5genw
-ge5om
-geo5pe
-georke5
-ge5os
-ge5ot
-ge5p4
-ge1ra
-ger5aal
-ger5aap.
-ge4r3a4l
-gera4p
-ger5ape
-ger5as.
-ge5reg
-ge3rem
-ge5ren.
-ger4i
-ger5ini
-ge1r2o
-ger4of
-ge5rol
-ger5slan
-ger4sli
-gers5lij
-ger4sp
-4g3erts
-ge3r4u
-3ge1s4
-ge3sa
-ge3sc
-ge5se
-ge3si
-4ge3sk
-ge5sl
-ge3sn
-ge3so
-ge5spend
-ge5sper
-ge5spo
-ge5stan
-ges5te.
-ges5ten.
-ge3str
-ge5sw
-ge3ta
-get4aa
-ge5tam
-ge2th
-ge5t4i
-ge3t4j
-get4o
-ge3tr
-ge5tra
-ge5tro
-ge5tru
-ge5tsj
-ge5tu
-ge5t4w
-ge3ui
-5g4ev
-4gex
-5g4ez
-1gé
-gédi4
-3gè
-4g1f
-gfijn5ste
-4g3g4
-g5ge
-gge3la
-gge4r5on
-gges5ti
-g4g5h
-g5gi
-ggings5
-g5gl
-2g1h
-g2het
-ght4
-gh5te
-g2hum
-1gi
-gids5te
-gie5ra
-gier4s
-gi1eu
-gi2f
-gif5r
-gi3ga
-5gigere
-5gigste
-2gij
-g3ijs
-4gijz
-gi2m
-gi3na
-4g3inb
-4g3inf
-g5infe
-g5infr
-5ging
-2g3inh
-gin3o
-2ginr
-gi4oc
-gi2od
-gi4onet
-gi2or
-gip4st
-5gir
-3gis
-4g1j
-4g1k
-gl4
-g5lab
-3glai
-1gla4s
-glas3e
-g5lat
-3g4laz
-3gle.
-g5leer
-glee5t
-g3len
-2g5lep
-4g5ler
-g3les
-3gle4t
-glet3j
-g5lev
-g5lice
-g5lich
-3glië
-g2lif
-g5lijs
-g2lim
-3g4lio
-g2lob
-3glof
-g5log
-3glom
-4g3lon
-g3loon
-g3lop
-3g2los
-g5loz
-3g2ly
-4g1m
-gmaat5j
-2g1n
-g3na
-gn4e
-gne5g
-gne5m
-gne4t3j
-gnie4tj
-4gnu
-1go
-3go.
-3go2a
-3gob
-2goc
-g1och
-go4d3a
-god4s3
-gods5t
-4goef
-goe1r
-2gof
-go3f2r
-g4og
-4goh
-go2k
-5gom.
-go2ma
-g3oml
-4gomz
-go4n3az
-2g3ong
-go5no
-2g1ont
-g2oo
-2g3oor
-3goot
-2g1op
-go3pa
-g4opr
-g4ora
-4go4re
-go5re.
-5g4ori
-gor2s
-gos1
-go3tr
-gou4d5ee
-2g3ov
-2g5p
-gpes3
-1gr4
-3gra
-5gra.
-graat5j
-g5rak
-gra2m
-g4ram.
-gram3a
-g3ramp
-gra4s3
-5grav
-2g3rec
-2g3red
-5gredi
-g5redu
-g3reek
-g3reel
-g4reep
-g3reis
-4g3rek
-2g3rem
-gren4s
-gre4s
-g4reu
-g3rev
-5gria
-grie4t5j
-g5rijd
-g5rijk
-g5rijm
-g5ring
-5g4ris
-grit5s
-2g3riv
-groet5j
-grof5
-g3rok
-g3rook
-g3room
-groot5j
-2grou
-gro5v
-2g3rug
-g3ruim
-g3rup
-4gs
-gs1a2
-gsa4g
-gs5alar
-gs3alt
-g2sc
-gse4
-gs3eco
-g4s3ed
-gs5een
-gs3ei
-gs3en
-gs5ene
-gs3erv
-gs3et
-gs3ev
-gs5he
-g2s1i2
-g3sie
-gs5is
-gs1j
-g3s4ke.
-gs3l
-gs4la
-gs5laag
-gs5lam
-gs5las
-gs1le
-g3slep
-g4sleu
-gs5lie
-gs4lin
-g5sling
-gs4lo
-gs5log
-gs5lok
-gs5lon
-gs4lu
-g4s5ma
-gs3n
-g4sna
-g3snij
-g4s1o4
-g5sol
-g5som.
-gs5ons
-gs3op
-gs3p
-gs5pand
-g3spec
-g3s4pel
-g3s4pet
-gs4pi
-g3spie
-g3spil
-g5spin.
-g5spinn
-gs5pir
-gs5pol
-g3s4pon
-gs5ps
-gs5q
-gs5sc
-gst2a
-gs5taal
-gst5aang
-gs5tac
-g5stad
-g5s4tan
-g4st3ap
-g5stat
-g1ste
-g5s4te.
-g5sted
-g5stee
-g3stei
-gs3tek
-g5stel
-g3sten
-g3ster
-g5ster.
-gs5terr
-g5sters
-gs3th
-g5s4tic
-g3s4tig
-gs5tijg
-g5stof
-g5stop
-g5stor
-gst3o4v
-g4s3tra
-gs5trad
-gs5trak
-gst5ram
-gs5trap
-g5strat
-gst5res
-gs5troe
-gs5tron
-g4stru
-g5struc
-g3stu
-gs5ty
-g2s1u4
-gsver3
-gs5w
-g5sy
-4gt
-g1ta
-g2t3ap
-g3te
-gte3ro
-gtes4
-gte3st
-g1to
-g3tr
-g1tu
-1gu
-5gu.
-3gue
-gu4eu
-2guit
-gu4ni
-gu2s3
-gut4st
-guts5te.
-4gv
-g5vo
-4g1w
-g5wa
-1gy
-4gyp
-2gz
-4h.
-haams5ta
-haar5sl
-haar5sp
-haars5te
-haar5tj
-haats5te.
-h3afd
-haf4t3u
-ha3g
-ha5ge
-hal2f1
-5hals
-hal4sto
-5halz
-2hamp
-4han.
-han4dr
-hand5sl
-han3ga
-hang5l
-hang5s
-han4s3l
-han3so
-han4st
-hap2s
-hap4se
-har4ta
-harte5l
-hart3j
-har4t3o4
-har5tre
-hart5sl
-hat5j
-ha2t3r
-hat3s
-ha3v
-4have.
-4hb
-2hd
-h4e
-2hea
-he2ar
-3hech
-he3co
-4hee.
-hee3g4
-hee4k
-heek3a
-heek5l
-hee4l3o
-heep4s
-heeps5c
-heers5tak
-hee5sto
-hee5tjes
-he2f
-he4i
-heids5p
-heis4
-hei5tj
-he2k3a
-he2kl
-hek4st
-heks5te.
-hek5sten
-hek3w
-he3le
-he4l3ee
-he3li
-hel4m3a
-helo4
-hel4p3a
-hel3sm
-he5mo
-he5ne
-hen4kr
-he3n4o
-4he5o
-he4pij
-he2p3l
-he2pr
-he1ra
-her4aa
-he4r3ad
-he3r4au
-he4r3i
-herm5eng
-he3ros
-hero5v
-her4p5aa
-3herst
-hert4
-herts5te
-he2ru
-he5se
-he2sp
-he2s5t
-hets5te.
-heu5le
-2h3f
-4h5g
-h3h
-hi5d
-hie4f3
-hielsges5
-hie4r3
-hie5ren
-hier5u
-hie4t5o
-hie4tr
-hiet5s
-hij4sl
-hik4s5
-hi3kw
-hil3m
-him4pl
-him4pr
-hin5d
-h3ins
-hin4t3j
-hi2p5l
-2hir2
-his5p
-hi3tr
-hit4st
-hits5te.
-hit5sten
-h3j
-2hl
-h3la
-h4lag
-h3lep
-h3loc
-2h2m
-h3ma
-h3me
-h4mer
-h1n
-h2na
-hno3
-2ho.
-ho3a
-hoa3n
-hoboot4
-ho3ch
-hoe4ker
-hoe4s
-hoes5l
-hoe3t
-ho2f
-hof5d
-hof3e
-ho3g2
-ho2ka
-ho5mo
-hon3dr
-hond4s
-hon3g
-honi4
-ho1no
-hool3e
-4hoom
-hoort4
-hoor5tr
-2hoot
-ho3pa
-ho1pe
-ho2p3o
-hop3r
-hop4str
-hor5de
-5horl
-ho3ro
-hor4st
-hors5te.
-hor5sten
-hor4t3j
-ho3ru
-ho3sa
-hot3j
-ho3tr
-ho4t3re
-hot4st
-hots5te.
-ho3v
-2ho4w
-how3o
-2h1p
-hpi4
-2hr
-hra4b
-h4re
-h5rea
-hri4
-hro2k
-hrok3o
-hroot3
-4hs
-h3sa
-h3sp
-h3st
-2ht
-h4t1a2
-ht3ac
-h3tal
-ht3ala
-h5tans
-h3te.
-h4t3ec
-ht4eco
-h2t3ee
-h2t3ef
-h2t3ei
-ht5em
-h3ten
-h4ten5t
-ht5entw
-hter3a
-hte4r5o
-h4t3esk
-h4tev
-ht5eve
-h5tevo
-ht3ex
-h2t5h
-h4t3int
-h2t1j
-ht1o4
-ht5oef
-ht5op
-h4t1r
-ht5roo
-ht4sap
-htse4
-ht4ser
-ht2si
-ht4sl
-ht5sla
-ht5slot
-ht3sme
-ht5smij
-ht4s3o
-ht3spe
-hts3pl
-ht3spr
-hts5taal
-ht4s5tak
-ht4s5tek
-ht4sti
-hts5tore
-hts5trekk
-ht1u2
-ht3w
-hu4ba
-3huiz
-hul4der
-hur4t5
-hut3j
-huts5te.
-huur5s
-4h1w
-hy4la
-3hyp
-hypo1
-4i.
-i1a
-i3aa
-i4ab
-i5abi
-i4ac
-i3ady
-i3ae
-i5ae.
-i2a3f4
-i2a3g2
-i3agr
-i3ai
-i5ak.
-i3ake4
-ia4kem
-ia3kl
-ia3kr
-i3al.
-i4a3la
-i3ali
-i2am
-i5am.
-i3ami
-i3an
-ian4o
-ia3o
-i2a1p4
-ia5pa
-i5api
-ia3sc
-ia5se
-ia3so
-ia4s5po
-ia3sta
-i3at
-ia3t2h
-i5atri
-iave4
-i5ble
-iboot4
-4ic
-i3ce
-5i4cepa
-i1cha
-i1che
-ichee4t
-i1chi
-i1cho
-i3chr
-ick5l
-icos4
-ic4t3op
-ict4s5c
-i3dam
-idde4r5a
-ide3a
-i4dee.
-ider4sp
-ider4st
-ides4
-idi3a
-idi5ab
-i2di5o
-id4mak
-i3dok
-i2dr
-id3ran
-id3ru
-id2s1
-id4s3a
-id4ser
-ids5i
-ids5j
-ids5l
-id4sm
-ids5ma
-id5s4mee
-id4s3o
-ids3ta
-ids5tak
-ids5tek
-id4stem
-id4sti
-ids5tr
-id3u4r
-id3uu
-idu3w
-id3w
-4ie
-ie1a2
-ie4d3ac
-ie3de
-ie4dro
-ied3w
-i1ee4
-ieë2
-ie3fi
-ie2fl
-ie3fle
-ie3fon
-ie4fr
-ie4gas
-ie3ge
-ie4g5ins
-i2ek
-iek3e4v
-ie4kl
-iek3li
-ie5klu
-ie2kn
-iek5ond
-iek4s5n
-iek4sp
-ie2ku
-ie3kwa
-ie5lan
-ie5lap
-iel5do
-iel5d4r
-iel4e
-iel5ei.
-iel5k
-iel3sc
-ie3ma
-iem3ov
-ien4dr
-ien3ij
-i3enn
-i5enne.
-ien3s4m
-ien5sp
-ien4sta
-ien4st5o
-ien4str
-ienst5ur
-ieo4
-i4ep
-ie5pen
-iepiet5
-iep5oog
-iepou5
-iep5rel
-iepro4s
-iep3s4
-iep5st
-iep5tr
-ie4pui
-ie5r4ad
-ier3a4l
-ie3ram
-ie3rap
-ier3as
-ie4rat
-ier5el.
-ier5els
-ie5ren.
-ie5ring
-ierk4
-ie3r2o
-ie4rof
-ier4sl
-ier5slu
-ie3ru
-ier4ui
-ie3sf
-ie2si
-ie4sl
-ie5sle
-ies3li
-ies3m
-ie2s3n
-ie2so4
-ie4s3pl
-ie3sta
-ies5te.
-ie5stel
-ies5tere
-ie3sto
-ie4taa
-ie5tal
-iet5ant
-ie5ten
-ie3tj
-ie3to4
-ie4t3og
-ie4too
-ie4top
-ie4tor
-ieto5re
-ie4t3ov
-ie5troe
-iets5te.
-iet3ur
-iet3uu
-ie3twi
-i3ety
-ie2u
-ieu3k
-i1eur
-ieu5r4e
-i1eus
-ieu3sp
-i1euz
-ie3v
-ie3z
-iezel5a
-i3és
-i1ét
-i1è
-i4ëg
-i4ëva
-4if
-if3aa
-if3ad
-if3l
-if3r
-if4ra
-if4taa
-if4tar
-if4tre
-iftu5r
-if3ui
-ig4a
-ig3aa
-ig5ac
-i5gal
-i4g5av
-i3ge
-ige2s
-ig3esk
-ig3ij
-i4gind
-igi3o
-ig5no
-i3g4om
-ig4op
-igs4
-ig3sk
-ig3sl
-ig3sp
-ig3sto
-ig3un
-i1h
-i3i
-i5ie
-ii2n
-i5is
-i2j
-4ij.
-ij5a
-ija4d
-4ijd
-4ije
-ij3ef
-ij3ei
-ij3el
-ij5e4n3
-ij1er
-ij3i
-4ijn
-ij3o4
-i3jou
-4ijso
-4ijsp
-4ijst
-ij5te
-ij4tr
-ij5u
-4ijvo
-4ijzo
-4ik
-ik3aar
-i4kam
-i3ke
-ik3ef
-ike4ra
-iket3
-i2kij
-i3kl
-ik3la
-i4k3lo
-i4k3lu
-i2k4n
-i4k5na
-ik5o2g
-i3kom
-i2koo
-iko2p
-ik3ope
-ik3ord
-i4kr
-ik3re
-ik3ri
-ik3ro
-ik5se
-ik5si
-ik3s4l
-iks3n
-ik3sno
-ik3sp
-ik4spa
-ik1st
-ik5sta
-iks5te.
-ik1w
-ik5war
-i1la
-i3la.
-il4aa
-il5aan
-il3ac
-il4act
-il3ad
-il3af
-i3lak
-il3al
-i5land
-il2da
-il4d3r
-ilds4
-4i3le
-il3een
-ile3l
-i4l3erv
-ile4t
-ilet5r
-ile3u
-il3e4ve
-ilevin4
-i4l3e2z
-i3lé
-il5f
-i3li
-ilie5g
-ilie5t
-il3ink
-ilk4l
-ilk3s2
-illa3s
-1illu
-il2m
-ilme2
-il4min
-il4mo
-i1lo
-ilo4ge
-il3ond
-i3loo
-i5loon
-il3oor
-il1or
-ilo4re
-ilo4ve
-il3s2h
-ils5j
-il4sti
-il2th
-i1lu
-4im.
-i2mag
-i4mago
-im5au
-imee4
-im3een
-i4m3em
-im3enc
-im3ex
-4imf
-i2m3of
-im3op
-im3org
-im5pa
-im4s3oo
-im1st
-i3mu
-in1ac
-i2nau
-ind4aa
-in4dene
-ind3sc
-ind5ste
-1indu
-in3e4de
-in3edi
-in3eed
-inek4
-ineo2
-inet4s
-i5neu
-1inf
-in2ga4
-ing3aa
-ing3ag
-ing3al
-3ingan
-ing5lo
-in2go
-in4gr
-ing4st
-4ini.
-i3nie
-ini5on
-ini5sl
-ini5sta
-4inkj
-in2kn
-3inkom
-in4kri
-3inno
-i1no
-i3noc
-i3nod
-in4o2g
-in1on
-ino5pe
-ino3s4t
-in3ov
-1inri
-4ins.
-in5sch
-in5se
-in3sl
-in3smi
-in3so
-in1sp
-in5spo
-in5sten
-in5swi
-in4t3ap
-in5te
-intes5
-in3th
-1int4r
-i1nu
-inuut3
-4i1o
-io5a
-ioas5
-io5b
-i3o1c
-i3ode
-ioes3
-io3f
-io3g2
-i3ol
-i5ol.
-i5olen
-i5olus
-i3on
-ioneel4
-i5ong
-ion4s3
-ions5c
-i5oo
-i2op4
-io3pa
-io3pr
-i3opt
-io3ra
-i3ori
-io3ru
-io4s
-i3os.
-ios3c
-i3o5se
-i3o5sf
-io5sh
-io5si
-i5osi.
-io5so
-io5sp
-io5s4t
-i5o5su
-i3osy
-i5othek
-i3oti
-iot3j
-i5otorens
-io3tr
-i2o3v
-i3ox
-i2oz
-i1pa
-i2p1ac
-ip3af
-i3pap
-i1pe
-i4perw
-ipe4t3j
-i1pi
-ip1j
-i1pl
-ip3lu
-i1po
-ipo4g
-i1pr
-i2pri
-ip3ru
-i4ps
-ipse4
-ip4si
-ip4sle
-ips5te.
-ip5sten
-i3ra
-ira3k
-i1r2e
-ires4
-ire3st
-i3ré
-i1ri
-irk4s
-i1ro
-iro3p
-iro5v
-ir2s
-ir4sc
-ir3sp
-ir5ste
-irt3r
-i1ru
-4is
-i1sa
-i2saa
-i4s3ad
-is3a2g
-is3ap
-i2s1ar
-i2s3as
-i4sc
-i5scha
-i5schr
-is5col
-i5scoo
-i5scope
-ise2d
-i4s3ei
-is3ell
-is5eng
-i4s3erv
-ise3st
-iset3j
-is4fee
-is4fer
-i4sh
-is5ho
-isi2d
-i2sij
-i2s3im
-is3ja
-i4sk
-is3ka
-is3ke
-is3l
-is5lag
-is5las
-is5le
-i4s5m
-i4s3n
-is5ned
-is5nij
-is5no
-5isol
-i4soo
-is4oor
-iso3s
-i2sot
-is3ott
-is3p
-is5pas
-is2pi
-is5pl
-is5q
-is5sa
-is5so
-i2s3t
-is1ta
-i3stak
-ist3ap
-i4s5tas
-is4tat
-is5terd
-is5tere
-is4th
-is1to
-ist5ong
-i3str
-is5tri
-i5stro.
-i3sty
-isu2m
-i5sy
-4it
-i1ta
-it3ac
-ita5d
-it3een
-i3ten
-i3ter
-ite5rei
-ites4
-ite3st
-ite4t
-it3hie
-it1ho
-it1hu
-it2i
-itie5st
-i4tj
-i1to
-it5oef
-it3oog
-i3t2ou
-i4to4v
-itper5st
-it3red
-it1ru
-it3sje
-it3sli
-it3sop
-it1sp
-its4te
-it4ste.
-it4too
-i3tu
-it3w
-4i3u2
-iu4m
-ium3a4
-ium3e
-ium3o
-iu3r
-i3ve
-iven5s
-ive3re
-i5w
-iwi2
-iwie2
-iwit3
-4iz
-i3ze
-ize3t
-î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
-ja3b
-2jaf
-1jag
-jagers5
-ja3kn
-ja3mi
-jan4s3l
-jan4st
-ja3pl
-ja1po
-1jar
-jare4
-1jas3
-jas5p
-3jaw
-jaz4
-j3b
-jba4l
-jbe4l3i
-j1c
-jda2
-j2d3aa
-jd3an
-j4d3ar
-j2d3ee
-jde4n3e
-jden4s
-jdens5p
-j4d3erv
-jdes4
-jde3sp
-jde5st
-jdi3a
-j2do4
-j3dom
-jd5on
-jd3op
-j3dr
-j4d3re
-j4d1ri
-j4d3ro
-j4d3ru
-jd5sei
-jd3spo
-jd1st
-j2d3u
-jd3w
-j3d4wan
-jea4
-3jeba
-je3ch
-jec4ta
-2j1ee
-jel4
-je3la
-j1en
-je2na2
-je3n4o
-5jep
-jepiet5
-je3ro
-jers4
-jer3sp
-je4s3
-3jesa
-5jesal
-je5sch
-3jeskn
-jes5l
-jes5m
-jeso2
-jes5pa
-jes4pr
-3jesr
-jes5tr
-5jesvo
-3jeswa
-3jeswi
-je2t
-jet3er
-jeto4v
-jet5st
-5jeu
-3jevr
-2jew
-j3ex
-j2f1a
-j2f3ei
-j2f1en5
-j4f3ij
-jf3ink
-jf3l
-j3f4lat
-jf5le
-j2f3o4
-jf3r
-j3f4ra
-j3f4ro
-jf2s
-jfs3a
-jf4sc
-jf4s3er
-jfs5f
-jfs3l
-jfs5m
-jfs3n
-jfs3p
-jfs5pa
-jf3st
-jf4sta
-jfs5tak
-jf5stan
-jf4stel
-jf4sti
-jf4s5to
-jft2
-jf5ti
-jf5tw
-j1g
-j3ge
-jger5sl
-j2g3l
-jg4s5e
-jg3sn
-jg2st
-jg3s4te
-j3h
-jif3
-j3ig
-jin3g
-ji5t2j
-j3j
-2jk
-j3ka
-j4kaa
-jk5aard
-j4kar
-jk3arb
-j4kau
-j4kav
-j2kij
-j2k4l
-j3klaa
-jk5lak
-jk5lap
-jk5las
-j4kle
-j5kled
-jk5les
-jk5li
-j3klon
-jk5lop
-jk5luc
-j2kna
-j2k3of
-j4k3o4l
-j2k3on
-j2ko4p
-jk3opb
-jk3ope
-jk3opl
-j3kops
-j2kr
-j4kra
-jk3raa
-j5kran
-jk3re
-jk3ro
-j4k5ru
-jk3slo
-jks3pl
-jk4sta
-jks5taak
-jks5taal
-jks5tak
-jk5stan
-j2k3ui
-jk3w
-j3k4was
-j1la
-j3laa
-jl5ana
-j1le
-j2l3ef
-j2l3el
-jl5f
-jl3ink
-j1lo
-j2loe
-j3lu
-j2m3af
-j5m4ar
-j3mi
-jm3op
-jm3s
-j2n1a4
-j4naa
-jn5ac
-j3na5g
-jn3ak
-jn2am
-jna5me
-j3n4an
-jn5d2r
-j2nef
-jne4n
-j4n3erk
-j4n3erv
-jn3gl
-j4n3im
-j4n3ink
-jn3k4
-j2n1o4
-jn4si
-jn2s3l
-jns5lac
-jn3slu
-jns5or
-jn2sp
-jns3pl
-jn1st
-jn4ste.
-jnt4
-jn3tr
-joet3
-4joi
-jol4e
-jo5lij
-j3om
-1j4on
-jone2
-j3op
-jo3pe
-jo3ra
-jo3ru
-j4ou
-1jour
-jou5re
-joy3
-j3pa
-j4p3ac
-jp3arm
-j1pe
-j2p3em
-jp3ij
-j1pin
-j3pio
-jp1j
-j1pla
-jp3li
-j1po
-j2p3or
-j4pre
-jp3ri
-jp3rok
-jps4
-j3r
-jraads5
-2js
-js1a
-j4sef
-j4s3ela
-j5seli
-j4s5em
-j4s3e4r
-j2s1i
-js5in
-js4ir
-js4le
-js3lee
-js3li
-js5lie
-js4me
-js5mel
-js5met
-js3n
-j4s1o4
-j5soe
-js3ol
-js3pac
-js3par
-j3spe
-js3pl
-j4spo
-js3poo
-jspoort5j
-j5spor
-j1sta
-j4star
-j2s3te
-j3stee
-j3s4tek
-j3s4tel
-j5s4teng
-js3th
-js4tij
-j5stond
-j4stoo
-js3tou
-jst5ran
-j5strok
-j2su
-j3sy
-j3taal
-jt3aar
-jt1ac
-j1tag
-j3tak
-j3tan
-j3te.
-jt1h
-j3toe
-jt3opt
-j3tr
-jt3ra
-j5tred
-j5tree
-jt3rei
-j5trek
-jt3ri
-j5trok
-jt3rot
-jt1s
-j1tu
-1j4u
-ju3d
-4jum
-jus3
-juve5
-j3v
-jve2n
-jver4s
-jvers5p
-jve3t
-jvie5s
-j1w
-jze4r5o
-4k.
-1ka
-k3aanb
-k3aanl
-5kaart
-kaart5jes
-kaats5te.
-kabe2
-ka3bo
-2k1ac
-kade4t5
-4k3adm
-ka3do
-k3adv
-2kaf
-k3afd
-k4aff
-ka3fl
-3k4aft
-ka4ga
-k3a4gen
-k3ah
-ka3i
-2k3alb
-ka3le
-5kalf
-kalf4s5
-ka3l4i
-kal2k
-kalk3a
-4kalt
-5kalv
-3kam
-4kamb
-kamen4
-kame4re
-kam4pa
-kam4pl
-kam4pr
-ka5naa
-kan5d
-4kang
-kan4sl
-kan4st
-kan4t3j
-kao3
-5kap.
-ka3pe
-kap3l
-ka1po
-4kappa
-ka3pr
-kap3s
-k3arc
-k4a3ro
-kart4
-4k3arti
-kar3tr
-ka4s
-kas5c
-4k3asi
-kast3o4
-ka3str
-kast5ra
-ka5stro
-kas3u4r
-kat5aal
-ka4t5a4le
-ka4tan
-kati4
-ka4t5io
-kat5j
-k3atl
-kato4
-ka4t3og
-ka5tr
-kat3s
-2k1aut
-2kavo
-2k3b
-2k1c
-k3ca
-2k5d
-kdi3a
-1ke
-k4eb
-2k3ec
-ke4di
-2k3een
-kee4p5l
-kee4r
-keer4s
-keers5to
-2kef
-4keff
-k4ei.
-k4eie
-k2eil
-kei3s4
-kei5t
-ke4lap
-kel5da
-kel5dr
-ke5lel
-4kelem
-kel5f
-ke4l5int
-ke4lom
-ke4l3op
-kel3sp
-5k4ema
-2kemm
-2kemp
-ke4n3an
-ke4nau
-ken4ei.
-ke5nen
-ken5k
-ke2n1o
-kens5po
-kepie5t
-4k3e4q
-ke3ram
-ke4r5enk
-ker3kl
-ker4kle
-ker4kn
-ker4k3r
-ker4ku
-ker4kw
-ker4n3a
-ker4no
-ker3o4
-ke3ros
-ker4sm
-ker5spe
-ker4spr
-ker4sta
-ker5ste.
-ker4sti
-4k3erts
-4kerva
-4kerwt
-ke2s
-ke3s4p
-ke3sta
-kes5ten
-ke3sto
-ke5straa
-k2et
-5ketel
-ke2t3j
-ke3to
-ke2t3r
-kets5te.
-ketting5s
-4k3e2tu
-ket3w
-3k2eu
-keviet5
-ke4vl
-4k1ex
-2k3e2z
-2k1f
-2k3g
-2k1h4
-k3ho
-khoud5s
-1ki
-2ki2d
-4kied
-kie4sp
-kie4s4t
-kie5ste
-kie4tj
-kieze4
-2kië
-kijk5l
-k3ijs
-4kijv
-4k1ijz
-ki3lo
-kilo5v
-ki3na
-4kinb
-4k5indel
-kinds5te.
-4kindu
-kin3en
-5king
-kings5l
-2k3inh
-kinie4
-k3inko
-4k1inr
-2k1ins
-2k3int
-4k3inv
-ki3o
-ki2p3l
-ki5se
-ki3s4p
-kit4s
-kits5te
-k1j
-2k3ja
-k3jew
-k3jo
-2k3ju
-4k5k4
-kke5nei
-kker4s
-kkers5ten
-kke3st
-1k2l4
-5klac
-k3ladi
-kla2p1
-k4las
-5klas.
-5klass
-k3last
-k3lat.
-k3latt
-3k4lav
-3k4led
-5kledi
-5kleed
-k5leer.
-4k5leg
-5klem
-4k5len
-k3ler.
-4klera
-k3lers
-k3les
-5k4le4u
-k5lic
-4klid
-k3lig
-2k3lij
-4klijs
-k4lim
-kli4me
-3k4lin
-k5lob
-4klod
-3klok
-5klok.
-k5loka
-k3loke
-k3lood
-5kloof
-k3lope
-5klos
-klots5te.
-2k5loz
-4kluc
-4kluih
-2k1m
-k3ma
-1k2n4
-4knam
-k4nap
-3k4nar
-5knec
-k5nem
-kni2
-5knie.
-knip1
-4k5niv
-3knol
-k3note
-2knum
-1ko
-ko4bl
-k4oc
-2k5oct
-4k1oef
-5koek
-koe4ket
-koers5p
-koes3
-koe3tj
-koets5te.
-koge4
-5ko5gr
-3k4ok
-ko5ko
-kol2e2
-kolen3
-2kolm
-5kolo
-ko4ly
-ko2m3a
-4komg
-kom5p
-k3omsl
-kom4str
-4komz
-konge4
-k4oni
-k3ontb
-kon4t3j
-kon4t3r
-koo4
-2k1oog
-kooi5tj
-koot3
-koot4j
-ko3pa
-4kopb
-4k3opd
-ko1pe
-ko5pen.
-4kopg
-3ko5pi
-5kopj
-ko2pl
-2kops
-4kopz
-2kord
-kor5do
-2k1org
-2k3ork
-kors5te.
-kor4ta
-kor4t3o4
-kor4tr
-ko3ru
-3k4o4s3
-4k3os.
-kos4j
-ko5sjere
-koso4
-4koss
-kot4st
-kots5te.
-4k1ov
-4k3ox
-2k3p
-kpi3s
-k4plam
-kpren4
-1kr4
-3kra
-k5raad
-kraads5
-kra4b
-4k5rad
-k5rand
-2k1rea
-2k3rec
-4k3rede
-k4ree4
-k5reep
-kreet3
-k3ref
-k2reg
-2k3rel
-2k1ric
-k3rijk
-k3rijp
-krij4t
-krijt5j
-k4rit
-k5ritm
-kroet5j
-2krol
-k4ron
-kron3t
-5kroon
-krop3a
-kro4to
-2krou
-k3ro5v
-3k4ru
-k5rub
-5kruis
-kru4l
-krul5a
-2ks
-k3sal
-ks3alm
-ks3an
-ks3ap
-ks1ar
-ks3as
-ks2e2
-k5sec
-ks3ed
-ks5ei.
-ks3ep
-k4serv
-ks3et
-kse3v
-ksges5t
-k4si
-k5sil
-ks1in
-k5sis
-k5sit
-ks1j
-k1sla
-ks3lab
-k4slan
-ks3le
-ks3li
-k4smo
-ks3na
-ks3no
-ks3nu
-kso4
-ks3om
-k5song
-k2s3pa
-ks5pand
-k4spar
-k1spe
-k3spi
-ks3poo
-k5spor
-ks3pot
-ks3pru
-k3spu
-ks5s
-ks4t
-k1sta
-k5staan
-k5staat
-k1ste
-ks5tec
-k4st3ed
-k3sten
-ks5tent
-kste4r
-kster5a
-k4sterr
-ks3th
-k3sti
-k3sto
-ks5ton
-k5stoo
-k4stop
-k5stot
-ks5trek
-ks3tri
-k3stue
-kst5uit
-k1sy
-4kt
-k1ta
-kt3aan
-k3taar
-ktaat5
-kt3ac
-kt3art
-k3te
-kte2c
-kt3eco
-k4tex
-kt1h
-k5tij
-kt3im
-kt3in
-k5tit
-kt3j
-k1to
-kt3om
-kto4p
-kt4or
-kt5ord
-kt5org
-kt5ori
-kt3o4v
-k1tr
-kt3res
-k5troll
-ktro3s
-k3tu
-1ku
-ku5be
-kui2f
-2kuit
-ku5k
-ku5me
-3k4u2n
-4k5uni
-5kuns
-ku2r
-ku3ra
-ku3re
-kur3s
-3ku2s
-kut3
-2kû
-2kv
-k3ve
-kven4t3
-5k4waal
-2k3wac
-k2wad
-k1wag
-5k2wal
-5k2wam
-3k4war
-k5ware
-4kwat
-k3weer
-2kweg
-k1wei
-5kwel
-kwen4st
-kwens5te.
-4k1wer
-5k2wes1
-kwes5tr
-5kwets
-k2wie
-k3wijz
-k4wik
-2kwil
-2kwin
-k3wind
-4k1wo
-ky3
-2kz
-4l.
-2laan
-4laand
-l3aanh
-laa5re
-laar5tj
-laat5sta
-l3abon
-2lac
-la4ca
-5lach.
-la4cha
-5lache
-lach5te
-lacht4s
-l4aci
-la2d5a
-la4det
-2ladj
-4ladm
-la2d3o
-4la2dr
-lad5s
-la2du
-4ladv
-3lae3
-2laf
-la2fa
-la3fl
-lafo2
-4l3afs
-la2g3a
-la4gent
-la2go
-lag3r
-lags4
-lag5sa
-la2k3a
-la4ki
-la3kr
-2lal
-3lald
-lal4o
-lam4p3j
-lam4p5l
-lam4po4
-lam4s3p
-l4an
-4la2na
-lan3ac
-3land
-lan4da
-land5aa
-lan4d5oo
-lan4d3r
-lands5te.
-la4n3ec
-lanel5
-5lange.
-lang5l
-lang5sp
-lang5sta
-lan4k3a
-lan4k3l
-lank3w
-4lann
-la4nor
-lan2s
-lans3l
-lan4st
-lan4t3j
-lap3ac
-la3pi
-lap3l
-lap3o4
-la5pre
-la2p3u
-la3q
-lar3da
-2larm
-4larm.
-lar5st
-las3a4
-lase4
-la2si
-las3to
-5lastt
-la3te
-la4t3he
-lat5j
-la4t3ro
-4lats4
-lat3sl
-2lau
-5lauf
-lau4st
-l2auw
-la3v
-lava3
-la4vo
-5law
-l4az
-4lazi
-la4zij
-2lb4
-lber4t
-lbert5j
-lboot4
-2l1c
-lce4l5
-4ld
-ldaat5
-l2d3ac
-ldak4
-ld3alf
-l4da4r
-ld3arc
-ld3ari
-ld3art
-l2dau
-ld3eco
-ldeks5
-l4d3e4z
-ldi3a
-ld5oef
-ld3oli
-l2d3om
-l2d3on
-ld3oog
-l4do4p
-ld3opi
-ld3ord
-ld1ov
-l3dr
-l5drade
-ld3ram
-ld5rang
-ld3rat
-ld1re
-l5dree
-ld3rij
-ld3roe
-ld3rol
-ld3rom
-ld3rui
-ld3sa
-ld3sl
-ld3sma
-ld5sp
-ld5ste
-l3du
-ld3uit
-ld3uu
-ld1w
-le2a
-le4ane
-le3at
-leba4l
-lecht5st
-lee4
-leeg3
-leege4
-leeg5i
-4leekh
-lee5l
-leem3
-3leen
-4leep
-leep3o
-lees5e
-lees5l
-lees5po
-2leeu
-2leff
-lega5s
-leg3ec
-leg3l
-le4go
-le5go.
-leg5s
-3leidi
-4leier
-4leig
-lei5tj
-leit5s
-le4ko4
-4leks
-lek5str
-5leld
-le2le
-5leli
-l3elp
-le4n3a4d
-len3a4k
-3lene
-le4n3e4m
-len5kw
-le2no
-len3op
-len3sf
-len3sm
-4l3en5th
-le5o
-4lep.
-3le1ra
-le4r3a4k
-le5rei
-le4r3e4v
-ler5g4
-le3r4o
-le4ron
-ler4sl
-ler5spo
-4l3erts
-le2s
-le4sa
-le3sc
-les5et
-le3s4h
-les3m
-le4sp
-le3spe
-4l3essa
-les3t
-les4ta
-les5taa
-le5s4tel
-le3str
-le4s3u
-le4t4h
-le3tha
-let4i
-le5tin
-le4top
-le2t3r
-le3t4re
-let4st
-lets5te.
-le2t3u
-leu3ko
-leum3a
-leur4o
-leus4
-leu5ste
-5leuz
-leven4s
-levink5j
-4lexc
-4lexp
-l2fac
-l3f4ag
-lfa3s
-l2fau
-lfe4n
-l4f3end
-lf3ene
-l2fe2z
-lf3li
-l3f4lo
-lf3lu
-l4fo
-l5foe
-lf3o4l
-lf1op
-lf5ord
-lf5org
-l5fou
-l1fra
-l3fru
-lfs5ei
-lf4sl
-lfs3le
-lf2s3m
-lf4so
-lft4
-lf5ta
-lf5tw
-lf3uu
-2l1g
-l5gaar
-l4gap
-lge4n5a
-l3gla
-l3g4oe
-l3gog
-l3goo
-lg3s4
-lgse5
-4l1h
-1li
-li3ag
-li3am
-licht5st
-3lid
-5lid.
-5lidm
-lid3s4
-lie4g3a
-lie4gr
-lie3ka
-lie4sp
-lie3s4t
-lie4to
-li3eu
-3liè
-3lift
-l4ig
-li3go
-lijk3a
-lij4m3a
-4lijmv
-5lijn
-4lijp
-3lij2s
-lijst5a
-4lijt
-4l3ijz
-li5kr
-lik5sp
-li4kw
-li3kwi
-lim4a
-li3mi
-2limp
-lim4p3j
-lin4da
-4linf
-4l3inh
-li5ni
-lin4k3a
-3linn
-l3inna
-2linr
-2l3ins
-lin4t3j
-l3inv
-4linz
-li3ob
-li5om
-li5o5s4
-li3ot
-li2pa
-li3pi
-li2p3l
-li5see
-2liso
-l5isw
-li1t2h
-lit3r
-lit4sa
-lit4sl
-lit4st
-lits5te.
-lit5sten
-2lix
-4l1j2
-lk3af
-l4k3ank
-lk3arm
-lk3art
-l3ke
-l4k3ei
-l4k3em
-lken5e
-lken4s
-l4k3ep
-l3ki
-lking4
-lk3laa
-lk3lag
-l5klas
-l4k3lev
-l5klim
-l3ko
-l5koe
-lk3ont
-lkooi5
-lk3opb
-l5kor
-l5kou
-l5kra
-l2kre
-lk3rep
-lk3res
-lk3rij
-l2k3ro
-lk2s
-lk4se
-lk4so
-lk3son
-lks3oo
-lks5taa
-lk3ste
-lks5tel
-lks5tr
-l4k3uu
-l3kw
-lk3wi
-l3ky
-2l1l
-l5la
-lla3d
-lla3g4
-lla5tr
-ll3eig
-lle3k
-ll4el
-lleo4
-ller5on
-lle3s4m
-lle5th
-llevie5
-l3l4i
-l3lo
-llo5f
-l5lon
-ll3sh
-2lm
-l3maa
-lmaat5
-lm3a4ca
-lm3af
-lma5ï
-l3mak
-lm3arc
-lm3art
-lma3s2
-lm3au
-l3me
-l4med
-lm3edi
-l4m3ep
-lme2s
-lme5te
-l3mi
-l3mo
-l5mog
-lm3oli
-lm3or
-lmro4z
-lm5sc
-lm3sh
-lm3su
-2l3n
-lni4s
-lo3a
-2lobj
-lo4boo
-loe4d5a
-loed3r
-4loeg
-loe4gr
-loen4st
-loens5te.
-4loes
-l3oeu
-5loev
-lo4faa
-lof5d2
-lof4s4
-log4
-log5l
-lo3go
-5logr
-log2s3
-lo4k3ar
-lo2k3o2
-lo4kr
-lo2ku
-2lo2l
-lo3la
-l3oml
-lom4p3j
-lom4p3l
-l3omt
-l3omv
-4lomz
-3lon.
-4lond
-5long
-lon4gaa
-lon4g3o
-lon4gr
-lon3o
-2lont
-lon4t3j
-3look
-loo5pi
-3loosh
-loot3e
-lo3pa
-4lopb
-l3opd
-lo1pe
-2l3oph
-2l3opl
-lop4la
-2lopn
-lo3p2r
-4lopt
-4l3opv
-4l3opw
-2lor
-3l4or.
-lo3re
-4l1org
-lo3ri
-l4o1r2o3
-3l4ors
-lo3ru
-lo3spe
-lost4
-los5to
-lo4s5tr
-lo5s2u
-lo2ta
-lot3a4l
-lo4tet
-lo2t3h
-lot3j
-lo4tof
-lot3r
-lou3s
-lo3v
-2love
-3lo5z
-4lp
-l1pa
-l3paa
-lp3aan
-lp3a4g
-lp3am
-l3par
-l3pas
-l1pe
-lpe2n
-l2pex
-l3pi
-l5ping
-lp3ins
-lp3j
-l1pl
-l3p4la
-l4plam
-l1po
-lp3of
-l3pom
-lp3on
-lp3ope
-l3pos
-l3pot
-l1pr
-lp3ram
-4l3r
-lraads5
-lrus5
-4ls
-l4saa
-ls1a2d
-ls3a2g
-l1sam
-ls3an
-l3sap
-ls3as
-l2sat
-ls4cor
-ls4cu
-ls3eco
-l4s3e2d
-l4sef
-l5sen
-l4s3e2p
-lsge4st
-l3s2hi
-l3si
-l4s3im
-l4sin
-ls3inj
-ls3ink
-ls3int
-ls4j
-ls5ja
-l3s4kel
-l3s2ki
-l1sl
-l3sla
-l2s4le
-ls5led
-ls5lee
-ls5leg
-ls5len
-l2s3li
-ls4lin
-l3slo
-ls4maak
-ls4med
-ls4mee
-l3smid
-ls3na
-l3sne
-l3sno
-ls3nor
-l3soc
-ls3of
-l3sol
-ls3op
-ls3o4r
-ls1ov
-l1sp
-l2spa
-ls3pac
-l3span
-ls3par
-ls4pe
-l3spi
-ls3pli
-l3spoo
-l4s5poot
-l3spor
-l2spr
-ls3pra
-l1st
-l3sta
-l4staf
-l4stak
-ls5tak.
-l3ste
-l4stek
-l4stev
-ls4ti
-l3sto
-l5straa
-ls5trak
-l5strat
-l3stu
-ls5ty
-l2su
-l3sur
-ls3us
-l3sy
-4l1t
-lt4aa
-lt1ac
-l4tam
-l5tame
-l5t4an
-lt4han
-l4t3hi
-l2t3ho
-l3thu
-lto4l
-lt3oli
-l2t3o4v
-l3tr
-ltra3s
-lt3rug
-lt3sl
-lt3sp
-lts5te.
-l3tu
-lu4b1
-lub5e
-lub5l
-lu1en
-3lui.
-5luia
-5luid
-luids3
-5luie.
-2luit
-luk2s
-luks3t
-lu3na
-3lunc
-2l3u2ni
-lu3sta
-lu3ta
-lut3j
-lut4st
-luts5te.
-lu3wi
-lven5s
-lvera4
-l1w
-1ly
-ly5i
-ly3st
-4lz
-lzooi5
-4m.
-1ma
-maas3
-maat5st
-m3act
-2m3adv
-ma5esto
-m3afl
-ma3fr
-2m3afs
-4m3afw
-m4ag
-ma3gl
-ma5go
-ma3gr
-maï4
-ma5ka
-ma5ke
-5ma3k4r
-ma3kw
-ma3l4a
-ma5lac
-ma4l5ent
-mal5st
-5m4an.
-man3ac
-m3anal
-man5da
-man5do
-mand4s
-5m4ann
-ma5no
-5man2s
-man4se
-mans5ee
-man4so
-mans3p
-man4s3t
-mans5ta
-man4th
-mant4r
-ma5pa
-ma3pr
-ma3q
-m4a5ri
-mariet5
-5m4ark
-mar3sh
-mar4s5t
-mar5ti
-ma1so
-ma3s4po
-5mass
-ma4ste
-ma3str
-ma5ta
-5mater
-mat5j
-ma4tom
-ma3tr
-mat4st
-mats5te.
-ma3v
-4mb
-m5bl
-mboot4j
-mbo5st
-mb4r
-2m1c
-2m1d
-m5da
-mdi3a
-mdis5
-m3do
-mdo3p
-m3dr
-m3dw
-1me
-me1c
-me5de
-5media
-5mediu
-mee5g
-mee3k4r
-mee5las
-mee3lo
-mee5re
-mee5ri
-5mees
-meest5al
-mee5stov
-mee5str
-m5eg.
-me3g2a
-mega5s
-m5egd
-m5egg
-m5egt
-me4i
-mei2n
-mei5tj
-m2el
-me4l4as
-mel5as.
-mel5dr
-mel4ko
-mel4kr
-5melo
-mel3s4m
-me4mi
-3men
-m4en.
-me3na
-men4as
-meng5ra
-men5k
-me5nor
-4menq
-men4s5uu
-men4t3j
-ment3w
-me5nu
-me3p2j
-2m3e2q
-me1ra
-me4r5aak
-me4r3a4k
-me4r4am
-mer5ante
-me4rap
-me3rau
-me4rav
-mer3ei
-5merk
-mer4kl
-mer4kn
-mer4kw
-mer5oc
-me5rong
-me3roo
-4m3eros
-me3rot
-mer4si
-mer4sl
-mers5m
-mers5ta
-me2ru4
-m4es
-me3s4h
-me4s4l
-mes5li
-me5slo
-mes3m
-me3so
-me4sp
-mes3pa
-me5spe
-me5spot
-me5stel
-mesto4
-mest5ov
-me3stu
-me5ta5n
-me3t4h
-3meti
-me5tr
-mets5te.
-meve4
-m3e4ven
-2mex
-3mé
-3mè
-3mê
-2m1f
-mfa3t
-mf4l
-mf3li
-mf5lie
-m5fo
-2m5g
-mger4
-2m1h
-1mi
-3mid
-4mid.
-5midd
-mie5kl
-mie3st
-4m3ijs
-4m3ijz
-mi3kn
-5mili
-mi3lo
-mimie4
-m3imp
-mi5nar
-2minf
-5ming
-4minh
-2m5inr
-2m3ins
-mi5nu
-4m3inw
-m2is
-mis5f
-mi2s3i
-mi3s4la
-mi4st
-mi5stra
-mis5tro
-mi3t4a
-mi1tr
-mit4st
-mits5te.
-mit5sten
-2m1j
-2m3k2
-mkaart5j
-2m3l
-2m1m
-2m1n
-m5na
-1mo
-5mo.
-mo3a
-5moda
-5mode
-moed4s
-2moef
-5moei
-moers5t
-moe2s
-moes3p
-moes4te
-mog2
-5moge
-mogen4s
-mo3gl
-4mok
-5mole
-2moli
-mo4lie
-mol4m3a
-4molt
-3mom
-4m3omv
-mond3r
-mo5no
-5mons
-mon4so
-mon5ta
-3mooi
-2mop
-mo3pa
-m1ope
-m4opp
-mop4s
-mo3ra
-mo3r4e
-mo3ro
-mor4sp
-mor4st
-mors5te.
-5mos
-mo5sc
-mo4s5l
-mo3sta
-mo3t2h
-mot3j
-mot3ol
-mot4st
-mots5te.
-2m3oud
-5mouw
-mou4wi
-mo3v
-m3ox
-2m1p
-mp3ach
-m4p3af
-m5pan
-mp3arm
-mp5arts
-m4p3ec
-m5pen
-m4p3erv
-mp3ins
-m3pl
-mp3lam
-m5plan
-mp3leg
-mp3lei
-mp3lev
-mp3lie
-m4plu
-mp5olie
-m5pon
-mpon4g
-mp3ope
-mp2r
-mp3rec
-mp3red
-m5pres
-m4ps2
-mp5sc
-m5p4se
-mp3sh
-mp5su
-2m1r
-2ms
-m3sam
-ms3ana
-ms3ap
-ms2c
-ms3co
-ms3cu
-ms2j
-m3sje
-m1sl
-m2sle
-ms3len
-ms3lie
-m3s2m
-ms3ma
-m1sn
-ms3nee
-mso4
-m3sol
-ms3or
-m3s2p
-ms4t
-m3sta
-m1ste
-ms5tec
-m5stel
-m5sten
-m1sti
-m1sto
-ms5toc
-m4s5ton
-mst5s
-m3sy
-2mt
-m1ta
-mte5re
-mtes4
-mte5sta
-m1th
-m1to
-m3tr
-m1tu
-1mu
-mu5da
-mue4
-5muilde.
-2muit
-2muk
-mul3p
-mu2m3
-mu3no
-munt3j
-mu3sa
-mus5ta
-5mut
-mut3j
-muts2
-muts5te
-3muu
-5muz
-2mv
-mvari5
-mve4
-mvee3
-mver3e
-2m1w
-1my
-my3e
-2mz
-mze4
-mzet5
-4n.
-1na
-3na.
-3naal
-5n4aam
-4n1aan
-2naap
-n4aar.
-4n3aard
-5naars
-naars5tr
-naar5tj
-5naast
-5naat
-n3abd
-5nabe
-2nac
-na2ca
-nacee5t
-n2aci
-3naco
-4n3act
-na5d4a
-nad4e
-3nade.
-5n4a5den
-3nades
-3nadi
-4n3adm
-na5dra
-2n1adv
-5nae
-n3aë
-4n1af
-na3f4lu
-n2a3g4
-na1h
-3nai
-3naï
-n2ake
-na3k4l
-na3kr
-n3alb
-3n4ale
-5nalen
-4n3alf
-n3alm
-2naly
-4nalys
-3nam
-4namb
-name5st
-n4ami
-n3amp
-n3a2na
-n3ank
-3nant
-5nant.
-5nante
-n5antenn
-nan4t3j
-2nap
-nap3ac
-3na3p4l
-na3p4r
-nap3s
-nap5st
-2n1arb
-5nares
-2n3arg
-narie5t
-2n1arm
-3naro
-4nars
-nar4st
-nars5te.
-nar5sten
-4n1art
-nas2
-3na3sa
-na1s4l
-na1sp
-na3sta
-na3stu
-n4at.
-3n4ati
-nat5j
-4n3atl
-na3to
-nats4
-nat3sp
-5nau.
-5naus
-2na3v
-5naven
-3navi
-3nazif
-na4zij
-2nb
-nbe5st
-nbe5t
-nbots5te.
-2n1c
-n3ce
-nces4t
-n3che
-ncht2
-nch5tr
-nch3u
-n5co
-4nd
-n5da.
-nd3aan
-nd5aas
-nd3abo
-nd3act
-nd5adel
-nd3adr
-ndags5p
-nd3alf
-nd3alm
-n4d3ana
-n4dap
-n2dar
-nd3art
-n4das
-nd3ass
-nda3st
-n4dav
-n4d3a4z
-n3de
-n4d3edi
-n4d1ei
-nde5laa
-n4d3emm
-n5den.
-ndera4
-nder5aal
-nder5al
-nde4r5an
-n4d5e4rec
-nder5in.
-nder5og
-nde4ten
-ndi3a
-ndie4tj
-n4dijs
-nd5ijs.
-n4d3ink
-ndi3o
-n3d2ji
-n5do.
-n5doc
-n4d5of
-nd3oli
-nd3omd
-n4don
-n5dona
-nd5ond
-n5dons
-nd3ont
-nd3oog
-nd3ope
-nd3opp
-nd3ov
-nd5rap
-nd3rat
-nd1re
-nd4rek
-n4dres
-nd3rot
-nd3rug
-nd3s4cu
-nd4sec
-nd5set
-nd3s4i
-nd3sjo
-nd4sm
-nd3sp
-nd4spo
-nd4spra
-nds5taal
-nd3su
-nd3uit
-n2d3u4r
-nd5ure
-n4d3uu
-nd1w
-n3dy
-1ne
-3ne.
-ne5ac
-ne3am
-nebe4s
-3neck
-ne2cl
-ne4dit
-ne3do
-n3edu
-ne5dw
-nee4
-4need
-nee5k
-neel5d
-neel3o
-3neem
-4n1een
-nee5ri
-nee5se
-neet3a
-neet5o
-neet3r
-neet5s
-4n1eff
-ne3g2
-ne4gel
-negen5en
-nege4re
-4n1ei
-5neien
-n5eier
-n2eig
-5neigd
-5nei5t
-ne4k3r
-ne2la
-4nelem
-4nelf
-3nem
-4n3emb
-5n4eme
-4n3e4mig
-4n3emm
-4n3emp
-ne2n
-3n4en.
-5nenb
-5n4end.
-nen5do
-ne4n5enk
-ne4ni
-ne5nig
-nen5k4
-nen1o4
-5nenp
-nen5t4a
-ne5oc
-ne5ok
-ne5om
-neo5p
-ne5os
-ne5ot
-nep3ag
-ne3pe
-nepi3s
-ne1ra
-nera4d
-3n2e5re
-n3erfe
-2nerg
-ne4r3id
-ne3ros
-ner4sl
-ner4sp
-ner4st
-ners5te
-ner3u
-ne3ry
-3nes
-ness5a
-ness5t
-ne3sta
-nes3te
-nes4tei
-ne5s4tek
-ne4ter
-net3on
-net4si
-ne2u
-4neum
-ne3ums
-neu5ste
-2nex
-3né
-2n3f
-2ng
-ngaat5j
-n2g1a2d
-ng3af
-ng3ana
-n4ga4p
-n2gar
-nga5sl
-n3gav
-nge4ad
-n4g3een
-ngels5te.
-ng3emb
-n5gen
-nge4rap
-nge4ras
-n4giger
-n4gigs
-ng3ij
-n4gind
-ng3ink
-n4g3ins
-ng4l
-ng5lad
-ng5lam
-ng5lan
-ng5led
-ng5leu
-ng2li
-ng5lin
-ng5lop
-n3goe
-ng3of
-n3goï
-n2g1on
-ng5oor
-ng5op
-ng3ore
-ng3org
-n3got
-n3gr
-ng3rac
-ng3rad
-ng3rai
-n4gras
-ng5rass
-ng4red
-n4g4ri
-ng5rie
-ng3rij
-n5gron
-ng3rui
-ng2s
-ng4se
-ngs5lop
-ngs5lu
-ng4s5ne
-ngs5tak.
-ngs5take
-ngs5trek
-ng5stri
-ng3uit
-4n3h
-nhek5
-1ni
-n4i2d
-nie5kle
-ni3eri
-nie4s3p
-nie4tr
-3nieu
-ni4g3ee
-nig3ra
-nij3f
-nij3k
-2n3ijz
-ni5kr
-nik4s
-niks3p
-3nil
-3nim.
-5nimf
-n3imp
-2n3in.
-n3inb
-2n1ind
-2ninf
-ning3r
-2n3inh
-n3inj
-2ninr
-2n1ins
-2n1int
-2n3inv
-ni3o
-ni4on.
-ni4one
-ni5or
-ni5o5s4
-nip3l
-3nis
-ni4sau
-ni4sel
-ni4s3ev
-ni3sfe
-ni2s3i
-ni4sl
-nis5n
-ni3sot
-ni5stel
-nis5to
-ni3t2h
-ni1tr
-nits4
-n1j4
-n3je
-njes4
-nje5sp
-nje5st
-nje3t
-4n1k
-nk3aan
-nk5aard
-nkaart5j
-nk3af
-n5k4am
-n4k3arb
-nkar5s
-n4k3asp
-n3kef
-nk3eff
-nk3emp
-n3ken
-nken4e
-nker5ku
-nk3id
-nk2j
-nk3lad
-nk3lod
-nk3luc
-nk3lus
-n2k3na
-n3kne
-n4ko4g
-nk3oge
-nkoot5
-nk4ra
-n4krim
-nk3rol
-nk5se
-nk5si
-nk3sl
-nk3s4m
-nk3sn
-nk4s5o
-nk1sp
-nk1st
-n4kw
-nk3waa
-nk3wez
-nk3wi
-2n3l
-2n3m4
-n3n
-n5n2e
-nnee5t
-nne3ne
-nnepo4
-nne4p5ol
-nne5te
-nnet4j
-nn4i
-nning5r
-nnoot5
-nno5v
-3no.
-1noc
-1no3d
-2noef
-noen5s
-noes3
-noet5s
-n5offi
-n3o2ge
-n5ogi
-1nogr
-3noï
-no3kl
-no3k2w
-no2li
-1nolo
-1nom
-4n3om.
-n2oma
-n3oml
-n1oms
-n3omv
-2n3omw
-2nomz
-3n2on.
-3n4onb
-3nonc
-4n5ond
-n4o5ni
-4nont
-3nood
-4n5oof
-4n1oog
-nooi5tj
-3noot3
-noot4j
-3no3pa
-no4p3as
-4n3opb
-no1pe
-n1opg
-n5opleidi
-no4poo
-no4por
-2nops
-2n3opz
-2nord
-no3re
-2n1org
-1norm
-4norr
-3nors
-3norz
-1nos
-no3sf
-no3sn
-no3sp
-1not
-3nota
-not5a4p
-5noti
-not3j
-not3r
-3nou.
-no3v
-3nova
-no4ve
-3nox
-3noz
-2n1p
-npers5te.
-npi4s5
-npoor4
-npoort5j
-n3ps
-2n3r
-nraads5l
-n5re
-n5ri
-2ns
-ns3a4d
-n3sag
-n1sal
-ns3alp
-n1sam
-ns3an
-n3sanc
-n1sap
-n3s4cal
-n5scho
-ns4ci
-n4sco
-nsee5t
-n4sef
-nse4g
-ns5ege
-ns3eis
-ns5emp
-n3si
-ns3idi
-n2sin
-n5sing
-ns3inj
-ns3ink
-ns3int
-n1sjo
-n1sl
-n5sla.
-n3s4laa
-ns5laag
-n5slag
-ns5lap.
-ns5lapp
-n4sle
-n5slep
-ns4let
-n5sleu
-n5slib
-ns3lie
-n5s4liep
-n5slim
-n5slip
-ns5lot.
-ns3m
-ns5mac
-n3s4me
-n3smij
-n3smol
-n4smu
-n1sn
-n2sna
-n5sne
-ns3nod
-n4snoo
-n4snot
-n1so
-n2s3ob
-n2sof
-n3sol
-n2son
-ns3ong
-ns3onz
-ns4opp
-ns4or
-n2s3ou
-ns1ov
-n4s3paa
-ns3pad
-n1spe
-n5spee
-n5spel
-ns3per
-n4spet
-ns4pi
-ns1po
-ns3pol
-n4spot
-n1spr
-ns5q
-ns5s
-ns4t
-n1sta
-nst5aang
-nst5aans
-nst3a4g
-n3stal
-n3ste
-ns5tec
-n4st3ei
-n4s5teko
-ns5teks
-n5sten.
-ns5tent
-n5ster.
-ns5tes
-ns3the
-n1sti
-n3stig
-n4stijv
-n1sto
-nst5oef
-n4ston
-n3stor
-nst5rade
-n5stree
-ns5trekk
-ns5troe
-ns5trog
-nst5roos
-ns5ty
-ns3uil
-n3sy
-2nt
-n3ta
-n5taal
-n4t5aard
-ntaar5tj
-n5tab
-nt3ach
-nt4act
-nt1ad
-nt3aga
-n4t3art
-nt4as
-n5t4at
-n3te
-n5tec
-n4t3ei
-nte4lo
-n5tem
-n5te2n
-nte5nach
-ntene5ten
-nte5rad
-nte4rof
-n3tè
-nt3ha
-n4tho
-n5thol
-n5tig
-nt3inw
-nt4jo
-n3to
-nt4og
-nt4ol
-n4t5oli
-n5ton
-nt4oo
-nt5oog
-n4top
-nt3opl
-nt3opm
-nt3opt
-n1tr
-nt3rec
-nt3rei
-nt3rel
-ntre4s
-nt5ribb
-nt5rij
-n5troos
-nt4rou
-nt3rus
-n5try
-nts3a
-nt5slu
-nt1sn
-nt4sno
-nt1sp
-nt4spr
-nts5pre
-nt1st
-nt5ste
-n3tu
-n4t3uit
-ntu4n
-n5twijf
-n5t4wis
-3nu.
-3nuc
-3nue
-nu3en
-nu3et
-4nuf
-2nui
-4n3uil
-nu2lo
-3num
-nu2m3a
-5numm
-nu2n
-3nunc
-n3uni
-2nu4r
-3n4u5ri
-nu5ro
-1nus
-nu4s3o
-nu3tr
-nut4st
-4nuu
-5nuut
-nuw5a
-nu2w3i
-2nv
-nve5na
-2n1w
-nx3
-n3xe
-nxo4
-1ny
-4n3yi
-4n3yo
-2nz
-nzet5s
-3ñ
-4o.
-4oa
-o3aa
-o2ad
-o3af
-o1ag
-o3ah
-o3ai
-o1al
-oa2m
-o1a2n
-oa4tiev
-o3au
-o3av
-o3ax
-2o3b
-4ob.
-obal4
-obalt3
-3obj
-1o4bli
-ob5oor
-o4b5o4r
-4obr
-4oca
-ocaat5
-5o2cea
-o3cha
-o1che
-o3chi
-o3cho
-o3chr
-ocke4
-4o3co
-oco3a
-oco3s4
-oc3t4
-od5ac
-oda3g
-ode4m5ar
-ode4mo
-ode5re
-odes4
-odi3a
-o5dru
-od5sc
-od5sei
-od3s4i
-od2sl
-ods5lam
-od5slan
-od3sli
-od5smak
-od4s3o
-od3spo
-od4spr
-ods4t
-od5sta
-od4ste
-ods5te.
-od5stek
-od5sten
-od3w
-o4e
-oe5an
-oe3as
-oe2d3a
-oeda4d
-oede4n
-oe2d3o2
-oe4dr
-oed3re
-oed3ri
-oed3ro
-oe2d3u
-oed3w
-oe3e
-oe5er
-oe4f1a
-1oefe
-oe2fi
-oe2fl
-oef3la
-oef5le
-oef3lo
-oe4f5o4
-oe2f3r
-oege3l
-oeg5ij
-oeg1l
-oe4gou
-oeii4
-oei3n
-oei5s4
-oei5tj
-oei3tr
-oe4kaa
-oek5erk
-oeke4t
-oe2k3l
-oe4k3op
-oe4k3r
-oe2ku
-oek1w
-oe4lap
-oe4lar
-oel5dr
-oe4l3ei
-oe3lem
-oel5f
-oelo4
-oe5loe
-oelo5p
-oel3sp
-oe4m3ac
-oem3o4
-oen3al
-oe5n4e
-oen5gr
-oen3o
-oen4sn
-2oep
-oep5ind
-oe4pl
-oe5plo
-oe4p3r
-oe3pra
-oe4ps
-oeps3e
-oe2p3u
-4oer
-oe1ra
-oe4raa
-oer5aal
-oe4r3a4l
-oer4e
-oer5ei.
-oer5eie
-oero2
-oe3roe
-oer3og
-oer5om
-oer4sl
-oer4sp
-oer4sta
-oers5tak
-oers5te.
-4oes.
-oe3sfe
-oe3si
-oe4sli
-oe4s3o4
-oes4ta
-oes4th
-oe3sto
-oe4taa
-oe2t3h
-oe5t4i
-oe2tj
-oe4t3o4
-oe5toe
-oe4t3ra
-oet4s3p
-oet3w
-2oë
-of3ar
-of3at
-o4fav
-of4d1a4
-ofd3ei
-of2d3o
-of2d3r
-ofd3w
-of3l
-o4fli
-o4flo
-4ofo
-of3om
-o3foo
-of3op
-o3for
-of3ox
-of1r
-o3f2ra
-of5se
-of4sl
-of5sla
-ofs3le
-of2sp
-of3spe
-ofs3pl
-of3spo
-ofs3pr
-ofs3tr
-ofs5tra
-4oft
-of4tu
-oft3ur
-oft3uu
-of3ui
-og5ac
-oga4l
-og3al.
-og5de
-og3di
-oge4d
-oge5laa
-ogel5ei
-2ogem
-o3ger
-oge4ro
-oger5on
-oge4s3t
-2og5h
-1ogig
-og1l
-og5ne
-og3op
-og3sp
-og3sta
-og4st5ei
-og3sto
-og4ston
-og4str
-ogs5tro
-og3ui
-o3gy
-2o1h
-3ohm
-4oi
-oi3do
-oi1e
-oi3j
-oi5k
-o3ing
-oi3o4
-oi3s4
-oi5sc
-ois2p
-oist2
-ois5tj
-o3ï
-2o1j
-2ok
-o3ka.
-o3kaa
-o4k3aas
-ok3ab
-ok3ag
-o3kal
-ok3ank
-o4k3a4z
-ok3ef
-o2k4l
-ok5let
-o4kli
-ok5lu
-o2k3n
-ok3o2l
-ok3op.
-ok3o4pe
-okos5
-o2k3ou
-o2k3r
-ok4ra
-ok1sa
-ok3s4l
-ok3sn
-ok5spri
-ok1st4
-oks5te.
-ok5sten
-ok4s5tr
-ok5te
-okter4s
-oku4
-ok3ur
-ok3uu
-ok1w
-ok2wi
-o1la
-o3l4ab
-ol3ac
-o3lal
-ol3a2p
-ol3arm
-ola3s4m
-4old
-ol3d4o
-ol3d2w
-o1le
-o3le.
-ole5g
-ol1ei
-ol3eks
-ol3emm
-o3len
-o5ler
-oleu2
-ole3um
-ol3exa
-ol2fa
-olf3l
-ol3fr
-olf5sl
-ol2gl
-ol2g1o
-olg5rap
-ol4gre
-ol4g3ri
-ol2g3u
-o3lia
-o3lic
-o5lid
-o3lik
-o3lin
-o5ling
-ol3int
-o3lit
-ol3kaf
-ol5ke
-ol2kr
-olk4s
-olk2v
-ollie4
-o3lo
-o5loc
-olo3k
-ol4om
-o4lop
-ol3op.
-ol3opp
-olo3s4t
-olo4ve
-ol4pra
-4ols
-ol5se
-ol4s5h
-ol5si
-ol1sj
-ol3s4l
-ol3s4n
-ol3so
-ol3sp
-ol5ster
-4o1lu
-ol3uit
-olu4r
-4oma
-om2aa
-om1ac
-om1af
-o3man
-4ome
-o4m3ef
-om3ela
-omen4s
-omen5ste.
-ome5ren
-omer5kl
-ome5sp
-ome5t
-om2i
-o4m3int
-4omm
-4omo
-omo5l
-omo3s
-om4p5ei
-5omro
-om3sl
-om4ste.
-om3ui
-3omz
-on1ac
-on4ag
-o4n3am
-on4an
-on3ap
-ona3th
-2onc
-on4d3ac
-on5d4as
-on5der
-ond5ete
-on4d3id
-ond5ijs
-ond5om.
-on2dr
-ond3re
-ond3ro
-ond5sj
-ond5slo
-on3d4u
-on4dur
-o5ne.
-o3neb
-o2n1e2c
-on3ei
-on3erf
-on3erv
-one3st
-4onet.
-on1e3v
-ong5aan
-ong5aap
-ong3ap
-4ongen
-ong5le
-ong2r
-ongs4
-ong5se
-ong3sp
-ong3st
-on5id
-o5nig
-on4k3ap
-onke5lap
-on3k2i
-on4k3lo
-on3kn
-on5kw
-onnes4
-onne5st
-o4n3of
-ono3l
-on1on
-o2n1ov
-on3sc
-ons4e
-on5sei
-ons2f
-on3s4m
-on2s3n
-ons5op
-on3sor
-on1s2p
-ons4pe
-on3spl
-on1st
-on5sten
-on5str
-4ont.
-on4taa
-3ont1h
-on4tid
-3ont1s4
-ont5sp
-3ontv
-1ont3w
-on1ui
-on3ur
-o4o2
-4oo.
-oo3c
-4oo4d
-ood1a
-ood1e4
-oo5de.
-ood1o
-ood1r
-ood3sl
-ood3sp
-4oof
-oo3fi
-oo4g
-oog1a
-oog3e
-oo5gi
-oog1r
-oogs4
-oog3sh
-oog3sl
-ook3a
-oo3ke
-ook5l
-ook3s4
-ook5st
-oo4k5w
-oo4l
-ool5a2
-oole2
-ool3ed
-ool5f
-ool5g
-oo5lig
-ool3ij
-ool3k
-ool1o4
-ool1u
-oom5a4
-oo3me
-oom3i
-oom1o4
-ooms5te.
-4oon
-oon5a
-oon5du
-oon3in5
-oon5k4
-oon1o
-oon5ta
-oo4p1
-oopa2
-oop5ee
-oop3o4
-oop3r
-oop4sp
-oor3a
-oord5aa
-oor5dop
-oor1e4
-oor3g4
-oor5i
-oor5k
-oor5m
-oor1o
-oor3sm
-oor5ste
-oor5sto
-4oort
-oor4th
-oo4s
-oos3a
-oo5se
-oos5n
-oo4t
-oot1a
-oot3es
-oot3h
-oot5o
-oot3r
-oot4sl
-o1ö
-2opa
-o4p3ac
-op3ad
-o4p3af
-o4p3ak
-op3am
-o3pan
-op3and
-op3at.
-op3att
-3opbre
-3opdr
-o3pe.
-op3ee
-op5eet
-op3ei
-o1pel
-o3pen.
-3o4peni
-o5per.
-o4pera
-op3e4te
-op3e4v
-4opf
-o1pi
-o5pic
-op3i2d
-opie5t
-op3ijz
-op3in.
-o5pina
-o5pis
-4op1j
-op3l
-op5los
-1opn
-o1po
-opoe3
-op1of
-o5pog
-o5poi
-o5pol
-op3ond
-o5poni
-op3ont
-op3ord
-op3o4re
-op3o4v
-op1r
-op3ric
-o4pru
-o4ps
-op5s2c
-op5se
-op5si
-3ops4l
-ops4m
-op3sma
-op3sn
-op3so
-op3sp
-op3sta
-op3su
-2opt
-4opt.
-op5tr
-op3ui
-o2p3u2n
-o1ra
-or3ach
-or3act
-or3adm
-or1af
-ora4g
-o4r3alg
-or3ana
-o5rate
-or4daa
-or4d3as
-or4denv
-or4do
-ord5ond
-ord3or
-ord3o4v
-or3dr
-or4drad
-ord3w
-o1re
-ore5ad
-4orec
-oree4
-ore4no
-or2gl
-o1ri
-o5ria
-3orië
-o5rig.
-o5rigere
-o4r3ink
-or3ins
-ork2a
-or5k4e
-or3kl
-or5kn
-or3kw
-or4m3ac
-or4mas
-or4m3ei
-or4n3ac
-or3ni
-orno3s4
-or3oe
-o3rol
-or1on
-or3ont
-or1oo
-or1o2p
-or3or
-o3ros
-or5ov
-4orp
-or4p3ac
-orp4s5c
-or3sag
-or5sc
-or5se
-or3sli
-or3smi
-or3so
-or4son
-or3sp
-or5s4pa
-or5spu
-or4t3ak
-ort5een
-or4t5ijl
-or2to
-or4tof
-or4t3oo
-or4tred
-ort5sp
-ort5ste
-or1u
-o3ry
-orzet5
-2os
-o4sac
-o5sas
-o3sau
-4o3s2c
-osca4
-o4sci
-o5s4cl
-os3cu
-o5sed
-os4el
-o5ser
-os3f
-os4fe
-o4sha
-o3shi
-os2ho
-o3si
-o4sj
-os5jer.
-o4sk
-os5ko
-os3l
-os5li4
-o4s3m
-os4n
-os5no
-o3s2o
-os3pa
-os3per
-os1pi
-os4pir
-o4spr
-os4s5m
-o2s3t
-os4ta
-os5taal
-os5taar
-osta3c
-ost3a4g
-os5tan
-os5tar
-o3stas
-o3stat
-os5te.
-os4tem
-o5steroï
-os4th
-os4to
-os5toli
-os5tou
-ost3o4v
-os5tra.
-os5traa
-ost3re
-ost3ri
-o3stro
-os5trum
-os1tu
-o3sty
-o3su
-o5sy
-4o1ta
-ot3aar
-ot1ac
-ot3af
-o3tag
-ot3akt
-ot3app
-ot3art
-otas4
-o5tat
-o3te
-ot3e2d
-o5tee.
-o5tees
-o5teg
-ot3ei
-ote4lan
-o5ten
-o5ter
-oter5sp
-ote4st
-ote4t
-ot3eta
-o1th
-o2t1ho
-ot3hu
-o4tj
-otje5sp
-otli2
-o1to
-ot3off
-ot3olv
-o5tom
-ot3ont
-ot3opm
-oto5po
-ot3opr
-o5t4or
-oto3s
-2otr
-o1t4ro
-ot3ru
-ot5s4i
-ot2sl
-ot3sla
-ots3li
-ot3smo
-ot3sn
-ot3sp
-ot4s3pa
-ot4ste.
-ots5tek
-ot5sten
-ot4stu
-o1tu
-ot3ui
-o3tul
-ot5w
-4ou.
-ou5a
-ou1c
-ou4d1a
-ou4des
-ou2do
-ou1e
-oue2t3
-ou3k4
-ou4ren
-ou5ren.
-ou5renn
-ou2r3o2
-4ous
-ou3sa
-ous5c
-oust4
-ou2ta
-out3h
-out1j
-ou2t3o
-out1r
-out5sp
-out5ste
-ouw3a
-ouw5do
-ouw5ins
-o2v
-2o3va
-o5ve.
-2o5vee
-3o4verg
-over5sp
-over5ste
-o5ves
-2ovi
-ovi5so
-4ovl
-4o3vo
-4ovr
-ovu3
-4ow
-o1wa
-o1we
-o5wen
-ow3h
-o1wi
-ow2n
-o3wo
-ow3r
-o4x
-oys4
-ozet5
-ö3l
-ö1p
-öpe1
-ö4r
-ös4
-ös5t
-ö5su
-4p.
-4paan
-paar5du
-paar5tj
-5paas
-3pab
-p3acc
-2pach
-pacht5s
-p4aci
-5pacu
-3pad.
-pa4da
-4padv
-pa3e
-4p3afd
-1pag
-pag2a
-pa4gen
-pa3gh
-p4a5gi
-3pak
-pa2k3a
-4p4ake
-pa4ki
-pa4k5l
-2p3alb
-3pale
-pal3f
-pa3li
-paling5s
-palle4
-palm5ac
-pal4mo
-pa4m
-pa3na
-pa4n3a4d
-5panee
-5panel
-4pank
-pan5sp
-pan4tr
-1pap
-pa4pe4t
-5papi
-pap3l
-pa3po
-pa3pr
-4par.
-3pa3ra
-p3arb
-pard4
-par3da
-3park
-par4ka
-par4k5l
-3parl
-4parm
-pa5ro
-4parr
-par5ta
-3parti
-part3j
-3partn
-pa5ru
-paru5r
-1pa4s3
-pa5sa
-pas5c
-pa5se
-pa5so
-pas4th
-pas5to
-pas5tr
-pa5te
-1path
-p3atl
-3pa3tr
-pats5te.
-2paut
-5pauz
-pa4vl
-5paz
-2pb4
-2p1c
-2p3d2
-pe4al
-4peci
-p3e2co
-3pectu
-1ped
-pe3de
-pe3do
-p4ee4
-3pee.
-3peeë
-pee5li
-4peen
-5pees
-3peg
-1p4eil
-pei4l3a
-4peis
-pek5ee
-pe2k3l
-pe2k3n
-pek5s
-p4el
-pe3l4aa
-pe4l3ak
-pel5dr
-pe3le
-pe4l3ee
-pe4l3e4t
-pe3l4i
-pe3l4or
-pel5si
-pel3so
-pel3sp
-2p3emm
-pe3na
-pe4nak
-pe4nap
-pe4nau
-pe4naz
-p3ency
-pen5d4r
-penge5
-pen5k
-5penn
-pen3sa
-pen5sl
-pen3sm
-pen5sp
-pent4
-pen5to
-2p3epi
-pep3o
-pep5s
-p4er.
-pe1ra
-pera3s4
-per4at
-3perc
-pe4r5eg
-pe5req
-1peri
-peri3s
-per1o
-pe3ron
-pe5ros
-3pers
-per4sm
-per5sti
-per4str
-p2ert
-3pes
-pe3sa
-3pet.
-pe5ta
-5pe5ter
-3peti
-pe4t3ra
-pets5te
-petu5
-3peuk
-5peut
-1pé
-3pê
-2p1f
-2p1g
-pge5s
-2p1h4
-4p3ha
-3p4hec
-p4his
-4pho
-pi3am
-pi5an
-pi4at
-2pid
-piek5la
-5piep
-pie4r3o
-pie4s3p
-pie4tj
-pi2g5a
-pi3gl
-3pij.
-pij3k
-pij5ke
-pij4li
-3pijn
-5pijp
-pij4p3a
-2pijz
-pi4k3l
-pilo5g
-pi5nam
-2pind
-3pinda
-3p4ing
-5ping.
-pin4ga
-pin5gri
-4p3inj
-pink3r
-pink5s
-4pinr
-2pins
-pin4ta
-pi5o
-pis5n
-pis5ta
-pi3th
-pit3j
-pit3r
-pit4sp
-2p1ja
-pjes5
-p3ji
-p1jo
-2p1k
-pkaart5j
-p2l2
-p3la.
-plaat5j
-2p3lad
-pla3di
-4p3lamp
-4p3lang
-p4lant
-p3lap
-1p4las
-3p4lat
-pla4t3r
-5p4lay
-p4lec
-plee5tj
-p3leid
-3p4len
-p3lep
-pleu5ro
-p4lex
-2p3lig
-4plij
-p4lom
-p3lone
-p5lood
-plooi5tj
-p3loon
-p3luie
-2p1m
-pmans5t
-2p1n
-p3na
-3pneum
-3po.
-poda5
-3poei
-poe2s3
-poes5t
-poets5te.
-3poez
-3poë
-p2ofa
-3pogi
-po5gr
-po2k3i2
-po4kol
-1pol
-po5l4o
-polo3p
-pol4s
-pols5te.
-1pom
-2p3oml
-3ponds
-pon4sm
-pon4st
-pons5te.
-pon5ta
-5pony
-poo3d
-poo5de
-4poog.
-3pool
-poo5len
-4poor.
-poor4tj
-poot3
-po4p3a
-4popd
-2pope
-pop5h
-2p3org
-2p3ork
-po3ro
-p4ort
-5portef
-por4to
-por4t5ra
-po3ru
-1pos
-po1sa
-po3sf
-po4taa
-po4t3as
-po5te
-potes5t
-pot1j
-pot3r
-3poul
-po3v
-4p3p
-p5pa
-p5pe
-ppe4l3o
-ppe5ni
-pper5ste
-ppie5k
-ppij5p
-p4ps
-pr4
-p2ra
-3pra.
-p5raad
-praat5j
-p5rad
-3prakt
-4pram
-p5rand
-3prao
-4p3rap
-p4rat
-p4rax
-4preeku
-1prem
-p3remm
-3prent
-pren4t5j
-3pres
-p3reso
-3pret
-pre4t3j
-pret3r
-4pric
-4p3riek
-4priet
-prie4t5j
-1prij
-3prik
-3princ
-pring5s4
-5prins
-3p4rio
-3p4riu
-5priv
-5p4rob
-3p2roc
-1p2rod
-p3roed
-3proef
-proet5j
-3proev
-5p4rof
-5p2rog
-1proj
-pro3la
-3prom
-p3rood
-prooi5
-pro5pa
-p4roq
-3pros
-pro5sc
-pro4s5t
-pro3t4a
-3proto
-3pro5v
-4proy
-pru2t
-prut3o4
-2ps
-p3sab
-ps3a2g
-p3sak
-ps3ar
-ps3ass
-4pse
-ps3erk
-p4s3et
-p3si
-p4s3i2d
-p4sin
-p5sis
-p1sl
-ps3le
-ps2me
-ps5mi
-p4s3na
-ps3neu
-p4sof
-p3sol
-ps3opt
-pso4r
-p1sp
-ps2pl
-ps3ple
-p1s4t
-p3stat
-p3ste
-ps5tent
-ps5tes
-ps5th
-ps3tor
-ps5tron
-p3stu
-ps5ty
-3psy
-5psyc
-p3sys
-4p1t
-pt3ad
-pt3alb
-p3te
-p2t1h
-p5ti
-pt3j
-p4t3o4v
-p3tr
-pt3ric
-1p2u
-3pub
-pu3ch
-pu3e
-puil3o
-pul4st
-3pun
-4pun.
-punt3j
-3put.
-puter5in
-put1j
-pu2t3o
-put3r
-put4st
-puts5te.
-2pv
-pvan4
-pvari5
-2p1w
-1py1
-2p5z
-1q
-5qe
-qu4
-que4s
-5quo
-4r.
-r2aa
-2raan
-4raand
-3raar
-5raar.
-4r3aard
-5raars
-raar5tj
-2rac
-ra4ca
-ra3ce
-5racl
-rad4a
-3radb
-ra5den
-ra3di
-5radia
-3radio
-4radm
-4r3adr
-3rad3s
-4radv
-2rafd
-r4aff
-raf5ond
-ra3fra
-3ragez
-ra5gi
-ra3g2n
-ra5go
-rag4s
-3rais
-raket3
-ra3k4l
-rak5r
-4r3a2la
-ra4l3ee
-4r3alf
-r3a4lim
-r3alt
-ra4man
-r5ameu
-ra3mi
-r2amp
-4rana
-ran4dr
-ran4g3o
-ran4gr
-r5angst.
-ra4nim
-4ranj
-ran4kl
-rank3w
-ran4sa
-ran4st
-ran4t3j
-r3antw
-ra3o
-4rap.
-ra3po
-4rappa
-rap5roe
-ra3q
-2r3arb
-r4a5re
-4rarit
-2r1arm
-4r3arr
-2r1art
-ra5sei
-ra4sk
-ra4sl
-ra1so
-ra2sp
-ras3po
-rast5ri
-r4ati
-rat5j
-ra4tom
-ra4tra
-ra5tri
-rat3sp
-rat4st
-rats5te.
-ra3t4u
-2rau
-3raus
-r1aut
-5ravr
-ra4zij
-rbe4ti
-r1c
-r3ce
-rces3
-r3chi
-r3co
-2r1d
-r4d3act
-rd3alk
-rda2m
-rd5ama
-r3dan
-r2d3ar
-rd3ei
-r4d5e4las
-rden5dr
-rde5o4
-r4derva
-rde5s4t
-rdi3a
-rdi5o
-rd5l
-r3do
-r5doc
-r4d3ol
-rd5olie
-rd3ont
-rd3oos
-rdo3pe
-rdo3v
-rd3ras
-rd3res
-rd5roos
-rd2ru
-rd3sa
-rd3s4c
-rd3so
-rd1sp
-rds4t
-rd5sta
-rd5ste
-rd3su
-r3du
-rd2wi
-rd5wo
-3re.
-1reac
-re4ade
-4reak
-re3amb
-4re5at
-re3co
-3recr
-rec5ta
-3reda
-3redd
-rede4s3
-4re4diti
-3redu
-re5dw
-ree4k
-2r1een
-ree3n4e
-r5eenh
-ree2p
-reeps5
-ree5r4ad
-4reers
-reer5ste
-r3eerw
-ree4s
-ree5sh
-r4ef
-4refb
-2reff
-3refl
-re3fu
-1reg
-4reg.
-4regd
-rege5ne
-rege4s
-4regg
-3regi
-re3gl
-4regt
-4reie
-4reil
-4reind
-rei5tj
-5reiz
-re4kap
-5rekeni
-re2k3l
-re2k5n
-re4ko
-re4k3re
-rek3sp
-re4ku
-re1kw
-rel4di
-rel4d3o
-reld3r
-re4l3ei
-rel5k
-re4lu4r
-3rem.
-re4mai
-remie5tj
-re5mo5v
-2remp
-3r4en.
-re2na
-re4naa
-ren5aar
-re5nade
-re3nal
-re4n3an
-ren3a4r
-r4end
-5rendee
-r5endert
-re5ne.
-re4nel
-re5nen.
-ren5enk
-ren3e4p
-re5ner.
-ren5erf
-ren5erv
-5renf
-2r1eni
-5r4enkl
-r4enn
-re4noc
-ren4og
-ren4opl
-re3nov
-5r4enp
-4renq
-ren4sl
-r4ento
-r3entw
-r5enveer
-re4of
-re4op4
-re5pa
-3repet
-re4pie
-4req
-re3qua
-4r1erf
-2r1erg
-re3r2o
-rer4s
-2r3ert
-4r5erv
-2rerw
-re3sa
-re5se
-re4sl
-res5le
-res3m
-re2s1p
-res3t
-re4tem
-re3t4h
-ret4i
-re4tik
-re5tin
-2retn
-re4t3o4g
-re4t3oo
-rets5te.
-re2u
-reur5es
-reus4t
-reu5ste
-3revis
-3revo
-2r3ex
-r4f3aa
-rf3act
-r2f3a4g
-rf3al
-r3fas
-r3fe
-r4f3eng
-r1fl
-r4f3lag
-rf3lev
-r2f3li
-rf3lus
-r4f3op
-r1fr
-r4f3re
-r5frea
-rf2s2
-rf3sm
-rf3sp
-r4f3u4r
-rf3uu
-r1g
-r4g3ab
-rg3amb
-r4g3een
-rg3ei
-rg4eis
-rgel5dr
-r5gen.
-rge4ra
-rge5rap
-r4g3ins
-r5glas
-r3glo
-r4g3lu
-rg4o3v
-r5grij
-rg3rit
-r3g4ro
-rg1s4
-rg2sm
-rg5so
-rg4s5pr
-r3h
-ri5abel
-ri4ag
-ri2ak
-ri5an
-rias4
-ri4av
-ri4bl
-4rice
-ri3co
-ridde4
-ri3di
-ri4dol
-ri4doo
-rie5dr
-rie4k5ap
-rie5kl
-rie3kw
-rie4la
-riel5aa
-rie4lei
-rie4ro
-rie4ta
-riet3o
-ri1eu
-ri3fl
-ri3fr
-r4ig
-ri4gaa
-ri3gl
-5rigste
-r4ijl
-4r5ijl.
-r5ijld
-r5ijlt
-rij5o
-rij3pl
-rij3pr
-rij3sp
-rij5ster
-rij4str
-4rijv
-ri4k5l
-rik5n
-ri3k4o
-ril5m
-ri3ma
-rim4pr
-4r3inb
-4rind
-ri5ne
-4r5inf
-r4ing
-4r5ingan
-r5ingeni
-ring5l
-4r3inh
-ri4nit
-rin4k3l
-r3inko
-4rinkt
-r3inl
-4r3inna
-4r1inr
-4rins
-r3inst
-4rint
-4r1inv
-ri5on
-ri3o5s
-ri4sam
-ri3sc
-ri3sot
-ris5to
-rit3j
-rit3ov
-rit4st
-rits5te.
-rit5sten
-3ritt
-r5j4
-rjaars5
-r5ka.
-rkaart5j
-rk3adr
-rk3af
-r2kah
-rk3ang
-r4k3art
-r2k3ei
-rke4n
-rken4s
-rker4sl
-r4k3erv
-rke4s
-rke5stree
-rke5strer
-rk5iep
-rk3ijv
-rk3inb
-r4k3ink
-rkjes5
-rk3lag
-r4k3lat
-rk5leid
-r2klo
-rk3loo
-rk3lus
-r3kn
-r4kne
-r2kob
-rk3olm
-rk3omg
-rkoot5
-rk3opg
-rk3ord
-rk5os.
-rk5oss
-rk2r
-r5k4ran
-rk4ri
-r5kris
-r5kron
-rk1s
-rk3s4f
-rk5si
-rks4p
-rk4t5e4v
-rkt3h
-rk4ti
-rkt3o
-rkt1r
-rk3uit
-r1kwa
-rk3waa
-rk5wat
-rk3wee
-r1kwi
-rk3win
-r3l
-rlaat5ste
-rle4g3r
-rlink4s
-rlinks5te
-rlofs5
-rlui5t4
-r1m
-rmaf4r
-r4m3art
-r2m3eb
-r2m5eg
-rme4r3a4
-rmes3
-rme4t3j
-rmet5st
-rm3inh
-rmi2s
-r3mo
-r5moe
-r4mop
-rm3opm
-rmors5te
-rmos5f
-rm3s4a
-rm1st
-rm3uit
-rmun4
-2r1n
-r3na
-r5n4am
-r4n3ap
-rn3ars
-rnee5t
-r4n3ene
-rnes3
-rne5te
-rne4t3j
-r2n5id
-r2nin
-r2n1on
-rn3oor
-r5noot
-rn3ops
-r5not
-rn3ove
-rns4
-rn3sm
-rn3sp
-rn1st
-rn3sta
-rn3th
-rn5tj
-rn5to
-r3nu
-rnu5r
-ro1a
-ro5ac
-r4oc
-ro1ch
-ro3d4o
-3roe.
-4roef
-4roeg
-roe4g3r
-3roem
-roens4
-roen5sm
-roep3l
-roe4rei
-roet4j
-4roev
-3roë
-r5offi
-r4ofi
-ro3fl
-roges5
-1roï
-ro3kl
-3rokm
-rok3sp
-r4ol.
-ro2l3a
-role5st
-rol3g2
-2roli
-rol3ov
-ro5ma
-ro3mo
-4romz
-r2on.
-ron3a4d
-5r4onal
-ron4da
-ron4d3o
-ron4d3r
-ron4d5u
-r2one
-r2oni
-r2onk
-ron4ka
-r2onn
-r2o1no
-r2ons
-ron4ste
-rons5te.
-4ron2t
-ront3j
-ront3r
-ro3nu
-4ronv
-3roof
-2roog
-4roon
-2r1oor
-root5ste
-ro3pa
-ro4paa
-ro4pan
-4ropb
-ro1pe
-ro5pee
-ro4pin
-ro3p4la
-4ropn
-r4opo
-rop5rak
-rop3sh
-r4opte
-ro4pu
-ror5d
-ro3ro
-ro3sa
-ro5se
-ro3sf
-ro3sh
-r4o5si
-ro3sp
-ros4s5t
-ro5stel
-ros5tra
-ro5te
-ro3t2h
-rot3j
-ro5ton
-ro3tr
-rot4ste
-rots5te.
-r1oud
-3rou5t4
-ro3v
-ro4ve
-ro5veri
-4roxi
-3roy
-r1p
-r3pa
-rp3aan
-rp3adv
-rp3ank
-r5pee
-rp3eis
-rpi3s
-r2p3j
-rp4lo
-rp5lod
-rpoort5j
-r4p3o4v
-r4p3rec
-rp3ric
-rp4ro
-r3psa
-rp4si
-rp2sl
-rp3sli
-rp5spe
-rp4s5to
-2r5r
-rre4l3u
-rren5s4
-rre5o
-rreu2
-rri5er.
-rrie4t
-rron5k
-rrot4j
-4rs
-rs3a2d
-rs3a2g
-r3sal
-rs3alm
-rs3amb
-r3san
-rs3ana
-rs3ap
-rs3ar
-rs3as
-rs4asse
-rsa4te
-r5schi
-rs2cr
-r4s3eis
-rsek5ste
-rs4et
-rseve3
-r2s3ez
-rs4fer
-rs4hal
-r3s2hi
-r3s4hoc
-rs3hot
-rs3ini
-rs3int
-r4sj4
-r5sjac
-r5sjou
-r5sjt
-r3s4kat
-r1sl
-r4slan
-r5slec
-r5slep
-r5sleu
-r5slib
-rs4lie
-r5sling
-rs3lob
-rs5loep
-r4s3loo
-r5sluis
-rs4m
-r5smaak
-rs5maal
-rs5mak
-r3sme
-r3smij
-rs5mis
-r5smit
-rs5mu
-r1sn
-r2s3na
-rs3neu
-r2s3no
-r1so
-r5sol
-rs3ong
-r2sor
-rsorkes5
-rs1ov
-r1sp
-r3spaa
-rs3pad
-r4s3par
-rs4pare
-r3spe
-r5spec
-r5spee
-r5spek
-rs4pene
-r4s3pet
-r5spit
-r5spoe
-r5spog
-r5spon
-r5spoo
-rs3pot
-r5spraa
-r4spu
-r5spul
-rs3put
-r1s4t
-r4s5taak
-rst5aang
-rs5tas
-r5stat
-r3ste
-r4s3te.
-r5ster.
-r5sterk
-rs5term
-r5sters
-r5stes
-rste5st
-r4steva
-r3sti
-r4stit
-r3sto
-rs5toma
-r4ston
-rst5ora
-r3str
-rs5trap
-r4st5red
-rs5trei
-r5stren
-rs5trog
-rst5roz
-r3sty
-r3su
-rs3usa
-r3sy
-4rt
-r1ta
-r5ta.
-r4t3aan
-rt5aand
-rt5aanv
-r4t1ac
-rt1ad
-rt3af.
-rt3aff
-rt3am
-r5tans
-r2tar
-rt3art
-r4tau
-r2tav
-rt5c
-r5teco
-rt3eig
-rt3eil
-rte4lei
-rt5emb
-r5ten.
-rte5nach
-rte3no
-rte3ro
-rtes4
-rte5sta
-r2t5e2v
-r4tha
-rt1he
-r3ther
-rt3hi
-r1tho
-rt3hol
-rt3hu
-rt3hy
-rt4ij
-rtij3k
-r4t3ini
-r4t3ink
-rt5jesc
-r3to
-rt3off
-r5tofo
-r5tok
-rt3om.
-rt3ond
-r4t3op
-r5tori
-r1tr
-r3tra
-rt4rap
-r4t3ras
-rt3rec
-r5treden.
-r3t4rek
-r4t3res
-rt3ri
-r4t3rol
-r2t4ru
-rt5ruk
-rt5rus
-rt4s5eco
-rt5sei
-rt2s3l
-rt3sle
-rts5li
-rt4slu
-rts5m
-rts5no
-rt4soo
-rt1sp
-rt4s3pr
-rts5ten
-r1tu
-rt3ui4t
-rt3w
-rt2wi
-5rubr
-rude3r
-ru1e
-4ruf
-ru2g
-ru4gr
-r5uitr
-ru2k
-4ru3ke
-ruk3i
-rul3aa
-rul3ap
-ru2li
-ru4l3ij
-ru3lin
-rul5s
-r2um
-ru2mi
-3run.
-r2und
-runet3
-4r5u2ni
-ru3niv
-ru4r
-ru5ra
-ru5re.
-ru5res
-r2u4s
-rus3e
-rus5tr
-4rut
-rut3j
-rut4st
-ruts5te.
-4ruu
-ru3wa
-rvaat5
-rval4st
-rvals5te.
-rvers5te.
-rves4
-rve3sp
-rvloot5
-r1w
-rwen4st
-rwens5te.
-r4wh
-rw2t3j
-r3x
-r3yu
-4rz
-rzet5st
-4s.
-5sa.
-s1aa
-1saag
-5s2aai
-saai4s
-3s2aal
-3s4aat
-1sab
-sa3bo
-2s1ac
-sa2ca
-3sacr
-s1adv
-2s1af
-3safe
-3safo
-sa3fr
-s5agg
-s4a3gi
-3sagn
-sa3go
-3sah
-3sai
-3saj
-2sak
-3saks
-s1akt
-s2al
-5sal.
-3sa3la
-3sald
-5salh
-s3all
-4salm
-sal5ma
-s3aln
-3s4a3lo
-3s2ame
-5samm
-sam5p
-4sa2na
-sa3nat
-s4anc
-s2a3ne
-s4ant
-san4t3j
-sa2p
-3sap.
-sa3pa
-2s3ape
-sa4pr
-sa5pro
-sa3ra
-s1arb
-3sard
-sa2re
-s1arm
-saro4
-sar3ol
-s4ars
-4s1art
-sart5se
-4sas.
-3sasa
-sa3sc
-3s4ast
-1sat
-3sa3te
-5sati
-2s3atl
-2s1att
-s3aud
-1saur
-3s2aus
-s1aut
-3sauz
-1sax
-4s3b
-s5ba
-s5be
-s5bo
-1sc
-2sca
-4sce
-5scena
-5scè
-3s4ch2
-4sch.
-sch4a
-5schak
-5schap
-4schau
-5sche.
-s5chec
-4schef
-5schen
-4scheq
-5scher
-5schev
-5schew
-s2chi
-4schir
-5schol
-5schoo
-5schot
-sch5ta
-2sci
-4scl
-2sco
-3s4cola
-3scoo
-3scope
-5scopi
-3s4co5re
-3scout
-2scr
-4scris
-2scu
-2scy
-4s1d
-s5de
-s4dh
-sdi5a
-sdis5
-s3do
-s5dr
-s3dw
-3se
-5se.
-se2a
-se3ak
-se3al
-sear4
-se3au
-s4eb
-4s3ech
-se3cr
-5sect
-4secz
-s4ee
-4s5eed
-5seei
-4s1een
-s5eenh
-see4t
-see5ts
-4seev
-s1eff
-se3ge
-2s5e2go
-seg2r
-4s3ei.
-4s3eig
-s4ein
-5sein.
-5seine
-2seis
-seis4t
-sei5tj
-5seiz
-sek4st
-seks5ten
-se1kw
-s2el
-5s4el.
-sel3ad
-se4l3a4g
-se4lak
-se4las
-se3le
-4s3e4lek
-sel3el
-4se4lem
-4self
-se5ling
-4s3elit
-sel5k
-5selm
-selo4
-5selp
-5s4els
-sel3sp
-5selt
-se2l3u
-s4em
-se4m3ac
-s5emm
-sem3oo
-s4en
-5sen.
-se4n3a4g
-se5nan
-se4net
-5sengr
-5senh
-sen5k
-se4n3o
-4s5enq
-sen5tw
-5s4er.
-se1r4a
-ser5au
-5se3r4e
-se4ree
-se5ren
-s4erg
-5sergl
-s5ergo
-5sergr
-ser4i
-se5rij
-4s3ern
-se3ro
-se5rop
-ser2s
-sers3p
-ser3st
-sert5w
-se3ru
-s4es
-se5sc
-se3sf
-2s5esk
-5sess
-se4t
-se5ta
-4s3ete
-se5ti
-se3tj
-set3r
-se5t4ra
-set5st
-4s5etu
-set3w
-se3um
-se4ven
-4s1ex
-4sez
-se2ze
-3sé
-3sè
-2s1f
-4sfed
-s5fei
-4sfi
-4s5fr
-4sfu
-sfu5m
-4s5g
-sgue4
-s1h
-s4ha.
-sha4g
-s5hal.
-3shamp
-4she
-sheid4
-sheids5
-s5hie
-5s4hir
-sh3l
-4shm
-s3hoe
-s3hoo
-3s4hop
-s2hot
-s3hote
-3show
-s5hul
-1si
-5si.
-5s4ia
-si5ac
-si3am
-si5an
-5sic
-sici4
-si3co
-3sie.
-3sieë
-sie5fr
-sie5kl
-siep4
-sies4
-sie5sl
-sie3so
-sie3st
-sie5ta
-sie5to
-si5è
-si1f4
-5s2ig
-si5go5
-s3ijv
-4s1ijz
-5sile
-4s5imper
-3simu
-5sina
-s3inb
-4s3inc
-4s1ind
-2sinf
-sing4
-3sing.
-s3inga
-s5ingeni
-sin3gl
-s3in5gr
-s3inh
-4si2ni
-4s3inko
-sin5kr
-4s3inm
-s4inn
-4sinr
-2s1ins
-2sint
-4s5inv
-4s3inz
-3sir
-5siro
-s3irr
-si4s
-sis3e4
-sis5ee
-sis3i
-sis5tr
-3sit
-si5to
-sito5v
-si3tr
-si4tru
-si5tu
-3siu
-3siz
-sj2
-4sj.
-3s4ja.
-5sjab
-4sj3d
-s1je
-2s3je.
-s5jeb
-3sjee
-3s2jei
-1sjer
-sje4ri
-s3jes
-3sjew
-3s4jez
-4sj5k4
-5sjof
-4s3jon
-sj3s2
-sjt4
-s5ju
-2s1k2
-skaart5j
-s5kad
-s4kele
-s5ken
-3s2kes
-sk4i
-3s2ki.
-3skied
-skie3s
-3skië
-ski5sc
-s2k3j
-s3ko
-s5kre
-sk5ruim
-sk3ste
-4sku
-s3k4w
-s2l4
-3s4la.
-5s4laan
-5slaap
-4s5laar
-4slab
-s4lac
-4s3lad
-3s4lag
-5slagm
-sla4me
-s5lamp.
-s5lampe
-4s5land
-3slang
-3slap
-5slape
-sla3pl
-4s3las
-2s3lat
-3s4la5v
-4slaw
-3s4laz
-s3led
-3s4lee.
-5sleep
-4s5leer
-s4leet
-slee5tj
-4s3leg
-2s5lei
-s5leng
-s3leni
-slen4st
-slens5te.
-3slent
-s4lep
-4s5ler
-s5les
-sle4t3j
-3s4leu
-s5leug
-s5leus
-5sleut
-2s5lev
-s3li.
-4s3lic
-4slid
-2slie
-s5lied
-s3lief
-3s4lier
-s3lif
-s5lig
-4s3lijf
-5slijp
-4s5lijs
-s4li4k
-sli2m
-slim5a
-s5lini
-4slinn
-s4lip
-4s3lit
-slo4b5
-2s3loc
-3s4loe
-3slof
-4s3log
-s3lol
-s3lood
-s5loon
-s5loos
-5s4loot3
-s3los
-3slot
-slo4tr
-4s3lou
-4s5loz
-4s5luc
-1s4lui
-4s5lui.
-4sluid
-5sluis.
-sluis4t
-slui5ste
-5sluit
-5sluiz
-4slun
-2s5lus
-4s3ly
-s1m
-4s5maat
-3smad
-3smak.
-3smal
-2s5man
-s5map
-s4mart
-4s5mat
-4s5mec
-5smeden
-3smeed
-5s4meet
-4s5mei
-4smelo
-4s5men
-4s5mes3
-5smid.
-smie2
-smies5
-s4mij
-s5min
-5smok
-s3mon
-5smuilden
-s5muile
-5smuilt
-s2n4
-s5nam
-5s4nap
-s4nar
-3snau
-3s4nav
-3s4ned
-3snee
-snee5t
-s5neg
-5s4nel
-2s5nes
-4s5net
-sneus4
-sneu5st
-s5neuz
-s3nie
-1s4nij
-s5nim
-3s4nip
-4s5niv
-4snod
-3s4noe
-s3nog
-2snoo
-s4nor.
-s3norm
-sno5v
-3snuf
-s4nui
-2snum
-3so.
-so4bl
-so1c
-s3oce
-3s4o3d
-1soe
-2soef
-3soep
-soes3
-2s1off
-3soft
-2so2g
-3so3ga
-s1oge
-so3gl
-3sogy
-5soi
-3soï
-3sok
-s2ol
-5sol.
-so3la
-so3le
-so3lis
-3so5l4o3
-solo5v
-5sols
-s2om
-3s4om.
-5somm
-2s3oms
-s3omv
-2somz
-5s4on.
-3sona
-so5nar
-s3onb
-2s1ond
-2song
-3sonn
-3so3no
-s4ons
-2s1on4t3
-4s3onv
-s3onw
-3soo
-4s5oog
-4s3ook
-4s3oor.
-s3oord
-4s3oorl
-5soort
-2s1op
-3s4op.
-4s5ope
-so3phi
-s2o5po
-so3pr
-3s4opra
-sop4re
-s2orb
-s3ord
-2s1or3g
-4s5ork
-sor4o
-so3ror
-sor4st
-3s2ort
-sos4
-so3sf
-s4ot
-s3oud
-sou2l
-sou3t
-2sov
-s1ove
-3so5z
-4sp.
-sp4a
-5spaak
-s3paal
-5spaan
-5spaat
-2spad
-2spak
-5spake
-s4pan
-3spann
-4s5pap
-5spar.
-s4pari
-5sparr
-2spas5
-5spatt
-s3pau
-5s4pea
-4spectu
-3s4pee
-speet3
-4s3pei
-s4pek
-5spell
-4s3pen
-s5pen.
-spe4na
-s5pep
-4sper
-s4per.
-s5peri
-s4perm
-5s4perr
-4spes
-s3pez
-s3pid
-1s4pie
-spie5tj
-4spijn
-4spijp
-s5ping
-5s2pio
-s3pis
-spi5sto
-2s1p4l
-4s5pla
-s4plet
-s2pli4
-5splin
-3split
-s3plo
-s3plu
-sp4o
-s2poe
-s3poes
-4spoë
-4spog
-4spol
-2s3pom
-s4pon.
-s4ponn
-s2poo
-s3pop
-5s4pore
-s4pori
-4s3pos
-5spots
-4spou
-4sprakt
-5spray
-s5pred
-5sprei
-s4prek
-4sprem
-4spres
-5spreu
-5spriet
-4s5prij
-4sprik
-4sprob
-4sproc
-4s5prod
-4sprof
-4sprog
-5s4pron
-s4proo
-4spros
-4s3ps
-4spt
-s2p4u
-4spub
-5s4pui
-4spun
-s4pur
-5spuw
-s4q
-4s5r
-sraads5l
-sro5v
-4s3s4
-ssa1s2
-s4sco
-s4s5cu
-s5se
-ssei3s
-sseo4
-s5si
-s5sl
-s4spa
-s5spaa
-ss5pas
-s5su
-s5sy
-s2t
-4st.
-5staaf
-5staan.
-4staang
-4staanw
-staart5j
-s4taat
-staat5j
-st3abo
-2s4t1ac
-3stad
-5stads
-2staf
-5staf.
-sta4fo
-s4tag
-s4tak
-5staki
-4stakk
-st3akt
-4s3tali
-5stam.
-5stamm
-3stamp
-3s4tand
-stan4s
-s4tap
-4stapo
-s4t3arc
-4stari
-2stas
-stasie4
-5statio
-4stau
-st3aut
-s4tav
-4stavo
-4s5tax
-4staz
-2stb
-2st5c
-2std
-4stea
-5steak
-4stec
-s5tech
-5steco
-3s4ted
-4stedu
-3steek
-3steen
-4steenh
-s5teer
-stee5t
-5stein
-5stekar
-5stekk
-5steldh
-ste4lee
-st5elem
-3stell
-5stem.
-5stemd
-5stemm
-4stemo
-4stent
-4stenu
-ste5ran
-4sterm
-ster5og
-st5e4ros
-5sterren
-s5teru
-4ste4s
-4s4t3ex
-s4t3e2z
-2stf
-4stg
-4sth
-s4tha
-st3hed
-st5heer
-st3hek
-s5them
-s3ther
-st1hi
-s4t1ho
-s4t1hu
-s4t3hy
-2stia
-2stib
-4sticu
-s4t3id
-5stiefe
-s5tiev
-4stijd
-3s4tijg
-5s4tijl
-st3ijs
-3stils
-s4tim
-st3imp
-sti5ni
-4stins
-4s5tint
-4stite
-2stiv
-st3ivo
-4s4t1j
-2stk
-4stl
-2stm
-2stn
-2stob
-2stoc
-4stoef
-3stoel
-5stoel.
-5stoele
-4stoen
-4stoer
-4stoes
-4stoez
-3s4tof
-st3o4ge
-5s4tok
-s4tol
-sto5li
-4stoma
-4stomz
-s4tong
-3s4too
-4st3oog
-stoot5j
-s4top
-st3o5pe
-st5opto
-4stora
-sto4rat
-4stord
-sto5ri
-4s5tos
-s4tov
-2stp
-1s4tr
-4stra.
-straat5j
-4st4rad
-3stra4f
-5straf.
-s5trag
-4strai
-4st3rec
-s5tref
-4streg
-4s3trei
-5strel
-3strep
-st3rif
-st5rijp
-s5tris
-4s3troe
-s5troep
-st4rom
-5strook
-5stroom
-4stroos
-st5roos.
-4s5trou
-4stroz
-3stru
-4strui.
-5struik
-4st1s4
-st3sc
-st5se
-st3sf
-st3sk
-st3sl
-st3so
-st5sp
-st5st
-2st5t2
-1stu
-4stub
-4stuc
-5s4tud
-4stuin
-stui5tj
-st5uitk
-5stuk
-2s4tun
-st3uni
-stu4nie
-4stus
-2stv
-2st3w
-2s4ty
-1styl
-s5typ
-2stz
-1su
-5su.
-5sua
-5su4b1
-suba4
-sub5e
-su5bl
-5suc
-5sud
-3sug
-2sui
-5suik
-4s1uit
-5suit.
-s5uitl
-5suits.
-5suk
-3sul
-5sum
-4s1u2n
-5sup
-5surv
-su4s
-sus3e
-suur5
-4s5v
-svaat5
-svari5
-sve4r
-sve5ri
-4s1w
-s5wo
-s4y
-3sy.
-4syc
-3syn
-sy4n3e
-1sys5
-4s5z
-4t.
-3taak.
-t4aal
-t5aando
-t3aank
-taan4st
-t3aanw
-t3aap
-taar5sp
-4t3aas
-taat4st
-taats5ta
-3tabe
-3tabl
-2tac
-ta2ca
-3t4aci
-4tad
-ta4de
-t3ader
-5tado
-t3adr
-tad4s3
-t3adve
-2taf.
-2t3afd
-5ta3fe
-4taff
-t3afha
-t4afr
-ta3fro
-4t1afs
-2t3afw
-4tafz
-ta4gaa
-5tagee
-5ta5g4l
-tag3r
-5taka
-5takg
-5takken
-ta3kl
-5takn
-5takp
-5tak3r
-5taks
-t2al
-ta3laa
-ta5lact
-4talb
-5tale.
-5talent
-ta3li
-5talig
-t5allia
-talm3a
-4talt
-ta4mak
-4tamb
-t3amba
-5tamen
-tament5j
-4tamp
-t3ampu
-5tan.
-4t3a2na
-ta3nag
-ta3nat
-tan4d3r
-tan4k5r
-ta3o
-t4ape
-5tapi
-ta3pl
-5tapo
-ta3q
-ta3ra
-4t3arb
-5tari
-4t1arm
-ta2ro4
-tar5sp
-tar5taa
-t3arti
-3tarw
-3tas
-5tasa
-5tasj
-5taso
-ta3s2p
-ta3sta
-ta3str
-ta3sy
-4tata
-4tatio
-tat5j
-4t3atl
-3tatr
-3tau
-4taut
-2t1avo
-3tax
-t3a2z
-4t3b
-tba2l
-4t3c
-t4ch
-t5cha
-t5che
-t5chi
-t5chu
-4t3d2
-tdor5st
-tdo3v
-1te
-3tea
-te3akt
-5tea4m
-3tec
-4t3echt
-4teco
-te4dit
-t3edu
-tee2
-teeds5te.
-tee4g
-4teek
-tee4k3l
-teem1
-4tee4n
-t5eenhe
-3teer
-tee5rin
-tee4t
-4t3eeu
-t4ef
-t5eff
-3tefl
-3teh
-4t3eier
-4teig
-tei4lo
-t4ein
-t5eind
-5teit
-tei5tj
-2t3eiw
-5tekene
-5tekens
-4teker
-4tekk
-3teko
-te4k3om
-3teks
-te3kw
-te4k3wi
-t4el
-tel5ant
-te4lap
-tel5da
-4telec
-5teleco
-t5elect
-tel5een
-5telef
-5teleg
-tel5ei.
-tel5eie
-tel5eit
-te5lel
-5telev
-5te5lex
-tel3f
-tel5k
-te4loe
-te4l3o4g
-tel5oog
-te4l3op
-telo4r
-tels4
-4telse
-tel3so
-tel5su
-te4l3uu
-t4em
-2temb
-4temm
-te4mor
-tem3ov
-5temper
-5tempo
-t4en
-ten4ach
-ten3a4g
-te3nak
-te5nare
-te4nau
-tene2
-ten3ed
-ten3el
-tene4t
-3tenh
-ten5k4
-te5nore
-4t5enq
-ten5scr
-ten3sn
-ten3sp
-tensu4
-tens5uu
-3tent
-5tenta
-5tenten.
-ten5to
-t3entw
-5tenu
-t2er
-teraads5
-te4r5aak
-ter3a4b
-tera5ca
-te4rad
-tera4de
-te4r5af
-ter3ag
-te3ral
-te4ran
-ter3ap
-ter3as
-5terec
-te4rei
-ter5eik
-te4rel
-te4rem
-te5ren.
-te4r5enk
-te4r5env
-4t4erf.
-4terfd
-ter3fr
-4t4erft
-te4r5in.
-3terj
-4terk.
-4terkt
-ter3k4w
-3term
-5term.
-5termi
-ter5oc
-te3rod
-te3rof
-te3rog
-5teron
-te5rons
-tero5pe
-tero4r
-te3ros
-5terrei
-5terreu
-5terror
-ter4spr
-ter5ste.
-ter5ston
-3tes
-te3s4ap
-tes3m
-te3so
-tes3ta
-te5stel
-tes5ten
-test5op
-test5ri
-test3u
-te3ta
-te5tr
-4t3euv
-t4ev
-t5e4van
-teve4r
-5tevl
-3tevr
-2tex
-3tex.
-4t3exe
-4texp
-1té
-tè3
-4t3f
-4t3g2
-tgaat5
-t5ge
-tge3la
-tger4
-4th.
-2t1ha
-t3haa
-t4haan
-t4had
-t3hak
-t5ham
-t4hans
-t3har
-t3hav
-5thea
-t3heb
-5thee.
-4t3hei
-4t3hel
-3t2hen
-5theo
-1t2her
-5the3ra
-4t3here
-3thes
-3thet
-t4hin
-4thm
-t1hoe
-t2hog
-t3hok
-t1hoo
-thoof5di
-4t1hou
-t3houd
-5thous
-4t3hov
-3thr
-2thu
-t1hul
-4thum
-t4hur
-3ti
-5ti.
-5tia
-ti5ab
-ti5ae
-ti3ap
-5tib
-5tica
-5tice
-5tici
-5ticu
-ti3d4
-5tie.
-tie5d4
-5tiefs
-tie3kn
-tie4kon
-ti3enc
-tien5st
-5tiep
-5ties
-tie5s4l
-tie5ta
-tie5to
-tie5tw
-ti1eu
-5tieven
-ti3fe
-ti3fr
-ti2ga
-tig5aa
-4tigm
-ti4gu4
-tig3ur
-5tijd
-tije4
-tij5ka
-tij4kl
-5tijn
-tij5p
-t3ijs.
-tij3st
-tij3t2
-tij5tr
-tij5tw
-4t1ijz
-ti3ko
-ti5kr
-t4il
-4tils
-5timm
-5timo
-tina4d
-tin3as
-4t3incu
-4t1ind
-4tinf
-tin4g3i
-ting4sa
-t3inh
-ti4nit
-4t3inj
-t3inko
-4t3inl
-t3inq
-4tinr
-4t3ins
-ti3nu
-4t3inv
-4tinw
-ti5om
-ti3o4p5
-t2is
-ti5sa
-ti3s4j
-ti3sl
-ti3so
-ti4son
-ti3s4p
-ti3sta
-5tite
-ti3th
-ti1t2r
-5tivi
-ti4vo
-1tj2
-2t1ja
-t5jaa
-t5jee
-t5jek
-t3jen
-t5jet
-4tjeu
-2tjo
-t1jou
-2tju
-4t3k2
-tkars3
-4t3l
-t5le.
-5tleb
-t5les
-tli4n
-4t3m
-tmen4st
-tmens5te
-tmos5
-4t3n
-tna4m3o
-tne4r
-tnes4
-5to.
-toa2
-to3ac
-to3ar
-to5bl
-3toc
-1toch
-3tod
-to3da
-t4oe
-toe5d4
-3toej
-toe5k
-5toe3l4a
-toe5le
-5toelic
-toemaat5
-5toen
-to5ende
-toe5pl
-3toer
-5toeri
-5toern
-5toe1s4
-toe5st
-toe3tj
-3toets
-5toets.
-5toetse
-toets5te.
-3toev
-5toez
-to2f
-tof5ar
-tof5d
-to4fr
-tof3th
-3togn
-5togr
-3toi
-to4kan
-tok3s
-t2ol
-to3la
-5tolaa
-to5le
-5tolet
-t3olf
-2toli
-5tolic
-to4lie
-tolk5s
-5tolo
-tolp3r
-t3oly
-4tom.
-5tomaa
-tomaat5
-t3oml
-to3mo
-tom4p3j
-4t3om5s
-5ton.
-4tond
-3t2one
-5tonee
-5to5nen
-to5ner
-3t4ong
-5tong.
-3t4oni
-5t4onn
-to3no
-5tons
-ton3sk
-too4m
-toom3e
-5toon
-t4op.
-top5art
-top3as
-to3pen
-to3pet
-to3pi
-2topm
-to4po
-to5pos
-t4opp
-to4pu
-to5pus
-t3opva
-5tor.
-to3ra
-to4r3ag
-t3ord
-to5rec
-5torens
-4t1org
-t5orga
-t4ori
-3toria
-to4rië
-tor3k
-tor4m3a
-toro4
-to4r5oli
-to3rom
-5torr
-3tors
-tors5te.
-to3r2u
-3tos4
-to3sa
-to1sl
-to1s2p
-tos5te
-5tota
-to3tr
-2t3oud
-3tour
-tou4r3e
-to3v
-tove5na
-to4vens
-4toverg
-to3w4
-4t3p4
-tpe4t3
-tpi3s
-tr4
-3tra.
-4t3raad
-5tracé
-5trafo.
-3trag
-4tragez
-3t4rai
-5train
-5traka
-t3rake
-3trakt
-3trans
-5transa
-5trap.
-5trau
-4t3raz
-3t4re.
-4trea
-2trec
-5tred.
-4treda
-t5redes
-4tredu
-3tref
-4t5reg
-4t3reis
-4treiz
-4trel
-t3rese
-t3resu
-tre2t3
-t4reu
-t3rib.
-5tribu
-5trico
-trie5ta
-trig2
-2trij
-5t4ril
-tri5ni
-5t4rio4
-t3risi
-t3rit.
-5t4riti
-5trody
-t3roed
-t3roes
-5trofy
-3trog
-t4roï
-5troj
-4trol.
-5trola
-5trolo
-5tromm
-5tron.
-5trona
-t5rond
-3trone
-5tronn
-5trono
-5trons
-tront5j
-t3rood
-5troon
-t4roos
-tro5pi
-t4ros
-5trotu
-3trou
-4t5rout
-tro5v
-5truc.
-5truf
-4trug
-5trui.
-5truie
-t3ruim
-trui5t4
-t3ruk
-t4rum
-4ts
-ts3a2d
-tsa4g
-ts1am
-t3sap
-ts3as
-tse4d
-ts5een
-t4s3ei
-ts5eind
-t4s5ene
-t4s3eng
-t4s3erg
-ts5erge
-t4s3e2v
-t2sij
-t4s3ink
-ts3int
-ts2j
-ts3ja
-t3sjen
-3tsji
-t1sl
-ts4laa
-t3slac
-t5slag.
-ts3lam
-t2s3le
-t5slib
-t5sloe
-t3s4lu
-ts2me
-ts4moe
-ts3neu
-ts4no
-ts5nor
-ts5not
-ts3nu
-ts3ob
-tso2l
-ts3oli
-ts3om
-ts1on
-ts4opp
-ts1o4r
-ts1ov
-ts3pad
-t3span
-t5spec
-t4s3pet
-t3spi
-t4s3pil
-t3spoe
-t3spoo
-t5s4por
-ts3pot
-t4spro
-ts4pru
-ts5q
-ts5s
-t3sta
-t4staak
-t4s5tank
-ts5tant
-t4star
-t4stas
-t3ste
-t5sted
-t5stee
-ts5teko
-t5stell
-t5stels
-t5stem
-t5ster.
-t4sterr
-t5sters
-t5s4tes.
-t5steu
-ts3th
-t1s4ti
-t3stij
-t5stijg
-t5stil
-ts5tin
-ts5t4j
-t1sto
-ts5toep
-ts5tong
-t4store
-ts5trad
-ts5trei
-t3stri
-ts5troe
-ts5ty
-t4su4
-ts3ur
-ts3us
-ts3uu
-t1sy
-4t3t
-t5t4a
-t5te
-tte5loe
-tte5l4op
-tte2n
-tten4t5j
-tte5ri
-t5tlet
-tt3oog
-ttop2
-t5t4r
-t5tum
-tt3uu
-3tua
-3tub
-3tuch
-3tu3e
-5tueu
-tu3és
-3tuig
-5tuin
-4tuip
-2tuit
-tuit4j
-4tuk
-tu4k3i
-tul5pi
-t4um
-5tune
-5tunn
-tu1o
-5turb
-tu3ri
-3tu4s3
-tut3j
-tuurs5la
-tu3wa
-4tv
-tvaat5
-t3ve
-4t1w
-3t4wijf
-t2win
-1ty1
-3typ
-tys4
-4tz
-t3za
-t3zi
-t5zw
-u1a
-u3ac
-u3an
-ua5ne
-ua3p
-u5ar.
-uar5t
-ua3sa
-uat4
-2u2b
-ub3ac
-ube4li
-ub5em
-u5bi
-u3bo
-ub5or
-4uc
-u1che
-ucht5sl
-uc4ki
-ucle3
-uc4t3a
-uc4tin
-u1d
-uda2
-u5da.
-ud5am
-ud3ei
-ud3ess
-u4de4z
-ud3eze
-udi4o
-udi5ologe
-udi3om
-udoe2
-ud3ond
-ud3oo
-ud3ov
-u4d1r
-uds5lo
-uds4m
-uds5ma
-ud3sme
-ud3smi
-ud1st
-ud4sta
-uds5tak
-ud4sti
-ud1w
-u3ec
-ue2co
-u1ee4
-u3ef
-u3ei
-u1el
-u4ene
-u1er
-uer3il
-ue3st
-u1eu
-u5eul
-u3ez
-u3è
-u4f3an
-u1fl
-u1f4r
-uf2s
-u5ga
-ug4da2
-ug4der
-ug2do
-ug4dr
-uge4l5o
-ug3ij
-ug1l
-u2go
-ug3or
-u2g1r
-ug5sce
-ug4sec
-ugs4p
-ugs5pa
-ug1s4t
-ugs5tra
-u1h
-u2i
-ui5ac
-ui2d3a
-ui2d1o
-uid4s
-uid3sp
-uid5spre
-uid5ste.
-uid3u
-ui3e
-uien4t
-ui2fa
-uif1l
-uif5r
-ui2fu
-4uig
-ui4g5aa
-uig1l
-ui2g3o
-ui4g3r
-ui4gu
-4uik
-ui2k3a
-ui4k3l
-ui2ko
-ui2ku
-ui2la
-uil5aa
-ui4l3em
-uil5m
-ui4l3og
-ui4loo
-uil3ov
-4uim
-ui2m3a
-ui3mag
-ui4n1a
-uin5g
-ui2no
-uin5og
-uin3or
-uin4s5lo
-uin5to
-ui2p3l
-ui4p3o4
-ui2p3r
-4uis
-ui2s3a
-uis5c
-ui4sl
-ui5slu
-uis5p
-ui4st
-ui4t3a4
-uit5aa
-uit5al
-ui5tar
-1uitg
-uit1j
-3uitl
-ui2t1o
-1uit5r
-uit3sl
-uit3sn
-uit5sp
-uits5te.
-3uitw
-3uitz
-ui3v
-4u3j
-2uk
-u2k3al
-uk3as
-ukkers5
-u2k3l
-u3klas
-u2k3n
-u2k3o
-u3koc
-uko2p
-uk4o3pl
-u4k3r
-uk3s2m
-uk3spa
-uk3spl
-uk4sti
-uk1w
-u1la
-ul3ac
-ulam4
-ula4p
-ul4d3a
-uld5erk
-ul5dop
-ul4d3u
-u1le
-ule5sp
-ul3fl
-ul5fo
-ul3fr
-ul3in.
-u5ling
-ul3inn
-ul3k2a
-ul5ke
-ul2k3l
-u1lo
-ul3o2p
-u3los
-ul2pa
-ulp3ac
-ul4pi
-ul2p3l
-ul2po
-ul4p3r
-ul3sa
-ul3so
-ul2s3p
-uls5te.
-uls5tel
-u3lu
-um3af
-um3ar
-3umda
-2ume
-umee4
-umes4
-ume3st
-um3om
-um3op
-um3so
-um3st
-u2m3ui
-un3ac
-un2c
-unch3r
-un4dra
-und4s
-unds5ta
-und5ste
-une4t
-un3g
-1univ
-un4k3r
-un4o
-uno3g
-un5o2p
-unst3a
-un4ste.
-unst3o
-un4st5r
-unst5ui
-un4tag
-unt5een
-un2tj
-un4t5o4
-unt3s4m
-un4t3u
-u3ol
-u3on
-u3oo
-u1or
-uo3ru
-u3os
-uota3
-4up
-u1pa
-u1pe
-upe3k
-upe4ro
-uper5st
-u3ph
-u3pi
-u1pl
-u4p3lei
-u1po
-u3pol
-up3om
-up3op
-u1pr
-up4tr
-u1ra
-ur3aan
-ur1ac
-ur3ada
-ur3adv
-u2r3a4r
-uras3
-u4r3a2z
-urd4o
-u1r2e
-ur3ech
-ur3een
-uree5s
-ure5lu
-urelu5r
-u4rem
-ur3emb
-ure4n
-u3res
-ur3ess
-ure3st
-ur3eta
-4urf
-ur2fa
-ur3gi
-u1ri
-uri4gl
-ur3ijz
-ur3ind
-ur3int
-4urk
-urken5s
-ur4kie
-ur3k4l
-urk4s5t
-u1ro
-ur5opb
-ur3or
-uro5s
-ur5pr
-ur4serv
-ur4s3ev
-ur3s4fe
-ur2sl
-urs5laa
-urs5li
-ur4s5m
-ur2sn
-ur4sp
-urs5pa
-ur5spel
-ur5spor
-urs5take
-urs5th
-ur4sti
-urs5tik
-ur3ta
-ur4tro
-ur5troe
-u3ru
-ur3ui
-4urv
-u1r4y
-4usaa
-us3ad
-us3a2m
-us1ap
-u4sc
-u5s2cr
-use5tj
-u5sie
-u4sj
-u4s5l
-u4sm
-u2s5n
-uso2
-us3oï
-us3os
-u2s3p
-us5pi
-us5pu
-us4ta
-us5tag
-ust3al
-u2s3te
-us4t3ei
-u4sti
-ust3oo
-us5tra.
-us5tre.
-us5tro
-us5tru
-ustu4
-ust3ur
-ust3uu
-u1ta
-ut3aan
-utaar5
-ut1ac
-ut3af
-u3tan
-uta3s4
-ut5c
-u4t3ees
-u4tek
-ut3eks
-ut3em
-ut5emm
-uter5an
-ut3ex
-ut2h
-ut3ho
-u2tj
-u1to
-uto5f
-ut3oog
-uto3pe
-utop4l
-uto5po
-utop4r
-uto5s
-ut3saa
-ut3s2c
-uts5eng
-uts2m
-ut1sn
-ut3sp
-ut4spa
-ut4spo
-ut2st
-uts5tak
-ut4ste.
-ut5sten
-ut3str
-ut5su
-utt4
-u1tu
-ut5w
-u4u4
-uur3a4
-uur3e4
-uur5i
-uur3k
-uur1o2
-uur5ste
-uur5sti
-4uut
-uut3a
-uut3r
-uvel4s
-uve5na
-uw1a
-u3wag
-uw3ar
-uw5art
-u1we
-uw3ec
-uwe5d
-uw3een
-u2w3ei
-uwe4nen
-uwes4
-u1wi
-u2w3ij
-uw5ijz
-u4wind
-u3wing
-u4wins
-uw3inz
-uw1o
-u3woe
-uwo4ge
-uw1r
-uw3u
-uxa3
-u3ya
-4uz
-uze3t4
-uzie2
-ût3s4
-1ü
-ü4b
-ü1n
-ü3ri
-üs3l
-1v2
-2v.
-vaar4ta
-vaart5r
-va3de
-va3g4
-va2ki
-va4kl
-va2ko
-va2l3a
-val5m
-va3lo
-va4loe
-val5si
-val4s5p
-vals5tek
-valu5
-va2n
-van3ac
-vand4
-vang3a
-van4gr
-va3no
-va4noc
-va1p
-va3re
-va5se
-va3s4o
-vast3r
-va3su
-va3te
-va2t3h
-vat5j
-va3z
-v4b
-4v3c
-v4e
-3ve.
-5veb
-vee4l
-veel5e
-vee3p4
-vees4
-ve3g4h
-vei3s4
-vei5tj
-3vek
-5vel
-ve4l3a4g
-vel4d3o
-ve3le
-vel3k
-5vem
-vem4a
-ve4na
-ve5nare
-5vend
-ven5k
-ve2n3o
-2venr
-ven4s3e
-ven4sl
-vens5lan
-vens5lo
-ven4sp
-vens5taak
-vens5take
-vens5tek
-ven4s3u4
-ve2r
-ver1a
-ver5aas
-ve4rad
-vera4g
-ve4rand
-ver5do
-ve3rec
-ver3ed
-ve3reg
-ve3rei
-ver5eis
-ve5ren.
-ve5rend
-ver3e4t
-ver5ijd
-ver5ijl
-ver5ijs
-ve5ring
-ver5k4
-ver3o
-ve3rom
-vero5v
-ver5p
-ver5spe
-ver5sta
-ver5sto
-ver5tw
-ver1u
-ve3ry
-ve2s3
-ves5ti
-ve2tj
-ve2to4
-vet3og
-vet3oo
-ve3tor
-ve2t3r
-vet4roe
-vet5ste
-5ve5z
-3vi
-4vicepa
-vid5st
-vie4r3a
-vie4s3
-vies5n
-vie4tj
-vi3eu
-vijf5
-vik4s
-vil4t3j
-ving4
-vings3
-vi3o
-vi5om
-vi4s3an
-vi1so
-vis5ot
-vis5p
-vi4st
-vis5tr
-vi1tr
-v3j
-vje4
-vjet1
-3vl
-v3lar
-vlei3s4
-vlie4s5
-vlot5s
-v3lov
-5vo.
-3voe
-voe4t3a
-voe4t3r
-voet5sp
-3vog
-voge4
-3voi
-vo2le
-vol4g3a
-vol4gra
-vo2li
-vol3ij
-vol5p
-von4det
-vond5u
-3voo
-voo5d
-vooi5t
-voorn4
-voor5na
-vo3ra
-vorm3a
-vors5te.
-vor5sten
-vos3
-3vot
-vot3j
-3vou
-vous5
-3v4r2
-vrei5
-vrie4s
-vrij5k4
-vrijs4
-vrij5ste
-v3t
-vues4
-vu2l
-vul5p
-vuur5s
-vy3
-2w.
-waad3
-w2aar
-waar5e
-waar5ste
-wa4b3
-wa2ba
-wa5bl
-w2ad
-wa3dr
-w4ag
-wa2la
-wa3lan
-4wam
-wan4d5r
-wan4gr
-wang5sl
-wa2n1o
-wan3s4
-3wap
-w4ar
-w5arc
-5ward
-war4st
-wars5te
-wart3j
-war4to
-wa2si
-wa4s5l
-wa4s5p
-was5tr
-1wate
-wat5j
-wa3tr
-3way
-2wb
-w1c
-2w1d
-w4doo
-wd3oom
-we2a
-2we2c
-3wed
-wede4
-we2d3i
-we4d3r
-wee4ki
-wee4k3r
-wee3lo
-wee3s4t
-wee5ste
-3weg
-we4g1a
-we4gerv
-weg3l
-we2g3o
-we4g5r
-wei3s
-wei5tj
-we4k3r
-we4le2
-4welem
-we3li
-we2lo
-wel3s
-we2m
-wem3a
-we3me
-we2n
-wena4
-wen3ad
-we3ne4
-we4nem
-we5nen.
-wen5enk
-we3ni
-wen4k3a
-wen3o
-wen5to
-wer2f
-4werg
-wer4ka
-wer4k5l
-wer4kn
-wer4k3o
-wer4k3r
-werk5ru
-wer4k3u4
-wer4k3w
-wer4p3a
-wer4p3l
-wer4pr
-wer4s
-wer5ste
-we2s3
-we3spo
-wes4t5o
-3wet.
-we2th
-we2t3j
-wet4st
-we2t3u
-2wex
-wezen4s5
-2w1f
-w1g
-w1h
-wie4la
-wie4t
-w4ij
-3wijd
-wij4ka
-wij4s
-wijs3l
-wijs3p
-wijs5ta
-wi4k
-3wil
-wind3a
-win4d3r
-w4ing
-2winr
-win2s
-winst5aa
-winst5r
-wi4t3h
-wit3j
-wi2t3o4
-wit3r
-w1j
-2w1k
-2w1l
-4w1m
-2wn
-wn3ac
-w3ne
-w3ni
-w3no
-w3ob
-w2oe
-woes3
-woest5a
-wo4l
-wol3a
-wolf4s5
-woon5sf
-woor4d5r
-wor4g3e
-w1p
-wren4st
-wrens5te.
-2ws
-ws3a2
-w3sc
-w1sl
-w2s3le
-w3som
-w3sp
-ws2pl
-w4spr
-w5spra
-w1s4t
-w4stij
-2wt
-wtes3
-wtje5sp
-w1to
-w1tr
-wu2
-wva2
-w1w
-xaf4
-xa3g
-xamen5t
-xan3
-xan5t
-x1c
-x4e
-xen4d
-xe3ro
-x1f
-x1h
-xie4t
-xi3g
-xi5o
-xi3sta
-xi3sto
-xi4t3i
-x3l
-x1m
-xo3no
-x4op
-xo3s4
-x1p
-xpre2
-xpres5
-x3r
-x3so
-x3sp
-x1t
-x2tak
-xtie2
-x3w
-xy3
-y1a
-ya3s4
-ya4s5p
-y3at
-yba2l3
-yber4t3
-y1c
-ycho3
-y3co
-y1d4
-ydi3a
-y5dr
-ydro3
-y1e
-yes3
-y3és
-y3è
-y1f
-y1g
-ygu2
-y1h
-y1i
-y4in
-y5is
-yksge4
-y3la
-yl3al
-y3le
-y4l3et
-y3lo
-ylo3l
-ym2f5l
-ym5pa
-y3na
-yn3er
-y3no
-yn1t
-y1o
-y3on
-y3os
-yo3t
-y1p
-y3p4h
-ypo3
-ypot4
-yp3s
-yp5si
-y1r
-y3r4e
-y5ri
-ys3
-y1s4a
-y3s4c
-y5s4e
-yse5t
-y3s4f
-y3s4h
-ys4i
-y3s4o
-y3s4p
-ys5pl
-ys4ta
-ys5tr
-y3sy
-y1t
-yt3hu
-yto3
-y2tof
-ytop4
-yu5a
-y3ui
-y3u2r
-yvari5
-y1w4
-1z
-4z.
-zaar5t
-za3f2
-zags4t
-za2k3a
-zak3r
-zan2d
-zand5a4
-zan3di
-zan4dr
-zang3s
-za3po
-za3s4
-4zb
-4zc
-4zd
-z4e
-zee3k
-zeel5d
-zee3r4o
-zeero5v
-zeer5s
-zee3s4
-ze5ge
-zeg4sl
-zei3sp
-ze5k
-zel5dr
-ze3lem
-zel2f1
-zel4so
-zen4d3a
-ze4nin
-zen5k
-zen3o4
-zen4og
-ze3non
-ze4r3a
-ze3ro
-zer2s
-zer4s5e
-ze4s3
-ze5sch
-zes5e
-zes5l
-ze5ste
-ze2t3a
-ze2t3h
-ze4ti
-ze2t3j
-ze2t3r
-zeve2
-zeven3
-4zf
-4zg
-2z3h
-z2i
-ziek3l
-zie4k3o
-ziek3w
-ziel4s
-zie5sl
-3zif
-zi2g5a
-zij5kl
-zij3po
-zij5s4
-zik2w
-zi4n3a4
-zings3
-zin4k3l
-zin4s
-zins3t
-zins5ta
-zin5str
-zi3o5
-zipi3
-zi4t
-zit3e
-zit3j
-zit3u4
-4z3k
-4z3l
-4zm
-zodi5
-zoet3j
-zoet5ste
-zo3f2
-zoi4
-zo5ie
-zo3la
-zome4
-zo2na
-zon3sf
-zon5ta
-zooi5tj
-zo1p
-zor4g3a
-zor4gl
-zor4gr
-zo2t
-zot3h
-zo3tr
-zo3v
-4z3p
-4z3r
-2zs
-4z5t
-zui4d3i
-zui4dr
-zus3
-2zv
-z4w
-zwets5te.
-5zy
-2z3z
-zz3in
-zz3or
-z4z5w} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-nn.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-nn.hyp
deleted file mode 100644
index 552576f8dc3..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-nn.hyp
+++ /dev/null
@@ -1,9 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-nn.rme
-
-% used: a b d e n r t
-
-\hyphenation{
-att-en-de
-bet-re} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-nn.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-nn.pat
deleted file mode 100644
index 37822ce3e62..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-nn.pat
+++ /dev/null
@@ -1,27455 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-nn.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u v w x y z å æ è é ê ò ó ô ø
-
-\patterns{
-.a4
-.aa4
-.ab4ba
-.ab7be
-.ab6s5t
-.ac6tin
-.adel4s
-.ad8la.
-.ad6le.
-.ad2r
-.ad1s2
-.af7f
-.af5t4
-.af5f8u
-.ag6na.
-.ag6ne.
-.ag4r
-.ai2
-.a6k
-.ak6ka.
-.ak6ke.
-.ak3kl
-.ak3kr
-.ak6ne.
-.ak6r
-.ak8sa.
-.ak4se.
-.ak6s3t
-.ak6ta
-.ak4te.
-.akte4r
-.akter5e
-.ak5tr
-.akva7
-.a6l
-.albu5en
-.alfa3
-.al4ge.
-.al5gi
-.al6ka.
-.al4ke.
-.al4kom
-.al4la.
-.al4le.
-.al5leg
-.al5lo
-.all5s6
-.al4ma.
-.al8me.
-.al5m6in
-.al4na
-.alpe5
-.al6s7k
-.als5o
-.alt4a
-.al4ta.
-.al5tar
-.al4te.
-.alt3o
-.al6ve.
-.am7b
-.a6me
-.am6ma.
-.am4me.
-.am4s4
-.am6ta
-.a6n
-.ana3b
-.an4da.
-.an4de.
-.an5d4ra
-.an4d5ø
-.and6ø6v
-.an3er
-.anes5
-.an4ga.
-.an3ge
-.an4ge.
-.ange4s
-.an4ja.
-.an4ka.
-.an4ke.
-.an4la.
-.an3n
-.an4na.
-.an7nal
-.ann4e
-.an4ne.
-.an5s8
-.an4sa.
-.an4se.
-.ant2
-.an4ta.
-.an4te.
-.an5tem
-.an5tep
-.an4ti.
-.an6tin
-.an4tis
-.an4tiv
-.ap8lan
-.ap1p6
-.ap8t
-.arbi5
-.ar6de.
-.are4o7
-.ar4ge.
-.ar5ges
-.ari6a
-.ari8e
-.arie5ne
-.ar5ka
-.ar8ka.
-.arlan9
-.ar4me.
-.ar7mea
-.ar4na.
-.ar3ne
-.ar4ne.
-.ar5nes
-.ar6ra.
-.ar6r7u
-.ar6ta.
-.ar4te.
-.ar3t4h
-.ar9ti
-.ar6va.
-.ar4ve.
-.ar4ved
-.ar4ver
-.arvi6
-.a6s
-.as8ka
-.as4ke.
-.as5kese
-.as4le.
-.as6pa.
-.as5s
-.ast5ru
-.at4h
-.at4ki
-.at4le.
-.at4na.
-.at2o4
-.at3s
-.atte4
-.att6r
-.a5ty
-.au8de
-.au6e
-.au8ga
-.au4ge
-.au4ka.
-.au8le.
-.au4r
-.au6sa.
-.au6se.
-.aus9k
-.au4sp
-.avi2
-.av7i6d
-.av7inde
-.av4la.
-.av4le.
-.av7s6
-.b6
-.ba6by
-.ba6la.
-.ba4le.
-.ba4ne.
-.ban4k3l
-.ba4re.
-.ba4ri.
-.ba8te.
-.be4de.
-.bede4n
-.be6d5ene
-.be4d5et
-.be8di.
-.be3e4d
-.be6ke.
-.be4la.
-.be9nar
-.be4ne.
-.be6ra.
-.be6re.
-.be4res
-.ber6ett
-.be8ri.
-.be7ska
-.be6sten
-.be4ta.
-.be6te.
-.be5t4v
-.bi6de.
-.bi6en
-.bi4le.
-.bilet5
-.bi6t3r
-.bl4
-.bla4d
-.ble4k3
-.ble5k4e
-.blek4k3f
-.blekk3s4t6
-.blekk9s8v4
-.bling5
-.bo8da
-.bo8de.
-.bogs8
-.bok5
-.bo4k4en.
-.bo8la
-.bon2
-.bo4na.
-.bor6t5
-.bort6e
-.bor8ti8
-.bort9r
-.brudd7s6
-.bruddså7
-.bu6da.
-.bu3d6r
-.bu4et
-.bul4k5
-.bus6sy
-.by6de.
-.by8ta.
-.bæ2
-.bø6k5a
-.bø8nen
-.bø8ner
-.c4
-.ca4en.
-.car4s5
-.ca6se
-.ce6b
-.cos1
-.co4st
-.d6
-.da4ge.
-.da4le.
-.dags6e
-.da2m
-.da4ne.
-.da4ta
-.dau3s
-.deka9r
-.deko7d
-.de4le.
-.de4l5ei
-.del5s6
-.de4mi.
-.demo7e
-.den5sl
-.de4re.
-.de4r5et
-.de4ri.
-.de6r3i4
-.de7r4i5v
-.de4r5om
-.de8ru
-.de6s5m
-.de4so
-.de4sto
-.de4u
-.devi5s
-.di2a
-.di5e4l
-.di6er
-.di4et.
-.di9f6t
-.di4ne.
-.dings7a
-.di4sk
-.di8s3t
-.do4en
-.do4er
-.do8et
-.dome5
-.do4ra
-.do6re.
-.drau4m
-.ds4
-.du4a
-.du4en.
-.du4er
-.duft3
-.du4ge.
-.duk3n
-.du4se.
-.du4st
-.dy4re.
-.dø6la.
-.dø6r3
-.dø7r4a
-.dø7r4e
-.dø4ve.
-.då5ren
-.då7ret
-.e6
-.eb4ba
-.ecu6
-.ed4da
-.ed4le.
-.efo7
-.ef4ta
-.efta5s
-.ef6ter
-.eg8de.
-.ege2
-.ege5l
-.eg6ga.
-.eg4ge.
-.eg4gel
-.eg8la.
-.eg4le.
-.eg6na.
-.eg4ne.
-.ego7t8
-.egs4
-.eg8se.
-.eg5si
-.ei2
-.eid5a
-.ei5den
-.ei4ga.
-.ei7ger
-.eik5a
-.ei4ke.
-.ei3l
-.ei3m
-.ei8ma.
-.ei8me.
-.ein7as
-.ei3ni
-.ein5og5
-.ein5s6ta
-.ein8s7to
-.ei9rar
-.ei5res
-.eir9u
-.ei5te
-.eit9r
-.ekk4o
-.ek4le.
-.ek3li
-.ek6ne.
-.ek4r
-.ek8sa.
-.ek3se
-.ek8se.
-.ek4sp
-.eks6pi
-.eks3t4
-.ek5s4ta
-.ek8ta
-.ek4te.
-.ek7to
-.el8da.
-.el4de.
-.el4g5r
-.eli5ne
-.el3k
-.el5l
-.el6s
-.els6a
-.els4kl
-.els6t
-.el6ta.
-.el6te.
-.elve7l8
-.el6veg
-.em3b2
-.emfa9
-.em4ma.
-.em8me.
-.em6na.
-.em5p
-.en5a
-.en4da.
-.en4de.
-.end5r
-.en4ga.
-.en6gav
-.en3ge
-.en4ge.
-.en6g5r
-.engs6
-.en6ka
-.en4ke.
-.en5og5
-.en6sa
-.en4se.
-.en5so
-.en3sp
-.en5t
-.en6te.
-.ent4r
-.en6t5ra
-.ent8re
-.en3ø4
-.ep6t
-.er8a
-.er4e
-.er4g5r
-.er4ke
-.er4la.
-.er4le.
-.er6ma.
-.er4me.
-.er4mek
-.er4na.
-.er6ta.
-.er4te.
-.es9ast
-.es1k
-.es3ka
-.es8ka.
-.es4ke.
-.es5l
-.es8la.
-.es8le.
-.es3p
-.es6pa.
-.es6r
-.es8sa.
-.es4se.
-.es4so
-.es5ta
-.es3te
-.es6te.
-.es7tet
-.es5ti
-.es6t6r
-.es7tu
-.et8la.
-.et8le.
-.et4na
-.et4ne.
-.et4s
-.et8sa.
-.et5s4e
-.et6se.
-.ets4i
-.et1te4
-.et6ter5
-.et6ti
-.euro5
-.ev8ja
-.ev4je.
-.ev4ne.
-.ex4
-.f4
-.fa2e
-.fag3s4
-.fa4ne.
-.fan3t4o
-.fe4e
-.fei8e
-.feil5i
-.fe2l
-.fela9
-.fel5l
-.fel4ta
-.fe4ma
-.fe8me
-.fem5o6g5
-.fem5t
-.fer8ro
-.fer6s
-.fe8sl
-.fe8st5
-.fes3t6e
-.fett5a
-.fi4b5
-.fi6a
-.fi4le.
-.fire5o6g5
-.fis6k
-.fjel4
-.fjor4d3
-.fla4t5o
-.fo4bi.
-.fol2
-.fo2r
-.for3d6ri
-.for7d6ra
-.for5en.
-.form5s
-.for7s6o
-.fre6e
-.fri5e6re
-.fug2
-.fu6ge.
-.ful2
-.fu8se.
-.fy8se
-.fø8rel
-.g6
-.gaf7
-.ga4le.
-.ga8li.
-.ga4me
-.ga4ne.
-.gang5s4
-.gas4
-.gas5ta
-.ga2t
-.ga4ve.
-.ga9vee
-.ge2a
-.gel4e
-.ge3ne
-.ge6ni5
-.gen5s
-.ge4o
-.ge4st
-.ge5s6tap
-.ge9sv
-.gha5
-.gift5s
-.gi4n
-.gi4s
-.gis7p
-.gi8v3a
-.gje8n7
-.gl6
-.glo6i
-.glo9v
-.gly5s
-.glø9se
-.gnå7la
-.go5des
-.gos7
-.gra4v3end
-.grei4e
-.grunn5s
-.grus5s
-.gu4de.
-.gud3v4
-.gu4lat
-.gus1
-.gu4tu.
-.gø2
-.gås4e5
-.gå4v
-.h4
-.hai5s6
-.ha6ka.
-.ha8ma.
-.hand5s6l
-.handsla9
-.ha6v5ak
-.ha6vi
-.he4er.
-.hei5e
-.hel3u
-.he2n
-.hen3i2
-.he6r5i6
-.he6r5o6
-.he9r6oe
-.he7r6oi
-.he7r6ol
-.he9r8os
-.he8ru
-.hes4s5
-.het6s5
-.het7s6e
-.he4t5
-.he5t6e
-.hil4l
-.hi4n
-.hi6re.
-.ho2d
-.ho2e
-.ho4re.
-.ho5ren
-.ho7ret
-.ho8ta.
-.ho8va.
-.hu4di
-.hull7s
-.hu4s3en
-.hus6val
-.hvit3
-.hvi3t4e
-.hvo8r5
-.hy6ra.
-.hy4re.
-.høi5
-.hø4re
-.hø4va
-.hø4ve.
-.høy6st5æ
-.hå8en.
-.hå8er
-.hånd5s6l
-.i2
-.i3a4
-.i3bl
-.i4da
-.ifø5re
-.ig8la.
-.ig4le.
-.i4her
-.ik2
-.ik6k
-.ikke5
-.ikkes8
-.i3k6l
-.ik5t
-.ik8te.
-.i5kv
-.i3la
-.i4la.
-.i8lande
-.ilbo8da
-.il6d3r
-.il6de.
-.i3leg
-.i6les
-.il4ja
-.il6je.
-.il6ke.
-.il4le.
-.il6sk
-.il4te.
-.i6me
-.imø5te.
-.in5ad
-.in5de
-.in8ga.
-.in4ge.
-.in3gr
-.in6gri
-.in5k6
-.in6ka.
-.in4n3
-.in4ne.
-.in5n6e
-.in6n7eks
-.in6n7ets
-.in6n7ett
-.in4n3i
-.in5s
-.in7tes
-.io4na
-.io4nom
-.i4rer
-.ir7k8
-.ir8ra.
-.ir6re.
-.i6sa
-.i3sc
-.i6se
-.is7k6
-.isla8ga
-.is6lam
-.is4le.
-.is4let
-.is4me.
-.is8na.
-.is8ne.
-.is5pa
-.i5s8pe
-.is3s4
-.is6sa.
-.is4se.
-.is5sk
-.ist6
-.is8te.
-.i5sted
-.i5stem
-.is7ti
-.i6s7tj
-.i6s7tr
-.is8ut.
-.i6s5ø
-.i5ti
-.i3va
-.i4van
-.i4var.
-.i3ve
-.i4vel
-.i6ven
-.i4ver.
-.i4vere
-.iv8ra.
-.iv6re.
-.i3ø
-.j4
-.ja4de.
-.ja6e
-.ja4ne
-.ja8se.
-.ja4va.
-.je2a
-.je2l
-.je2m
-.je5re
-.jern5s4
-.je4ta
-.ji4
-.jo8en.
-.jor8d7r
-.jor8d7s8
-.jor8d7u
-.jo4se.
-.ju6a
-.ju6la
-.jule3
-.ju4li3
-.jø4dep
-.k6
-.kaf2
-.ka6la.
-.ka6li.
-.kal7t8
-.kalve5l8
-.ka5me
-.ka3na
-.ka4ne.
-.ka4p3r
-.ka4ra.
-.ka5r6a5v
-.ka6re.
-.ka5rin
-.kar8t7r
-.ka4te.
-.ka5t6h
-.kau9k
-.ka6va.
-.ka4ve.
-.ke6e
-.kel3
-.kier3
-.ki4na
-.ki7ni
-.kino3
-.kir2
-.ki4se.
-.ki8va.
-.ki6ve.
-.kje3de5
-.kje4k
-.kjek7l
-.kjønn4
-.kle4s
-.kli5ne
-.klo9va
-.kly7sa
-.klø7s8
-.kna7se
-.kne4p3r
-.kne7r8
-.ko6da.
-.ko7gr
-.ko4la
-.ko3le
-.ko8le.
-.kol5j
-.ko3pe
-.ko6pe.
-.kor6s5ed
-.ko4se.
-.ko6ta.
-.ko4te.
-.ko6ve.
-.kring5s
-.kru4s3t
-.ks6
-.ku5f4l
-.ku4le
-.ku8ra.
-.ku4re.
-.ku8ta.
-.ku8te.
-.kva4r1a
-.kve9ka
-.kve5ke
-.ky8la.
-.ky4le.
-.ky6te.
-.kø3s
-.kå6pa
-.l6
-.la4da.
-.la4de.
-.la4ga
-.la4ge.
-.la5ger
-.la4ma.
-.lapp8e7
-.lap5s4e5
-.la6ta.
-.la4te.
-.la3tr
-.la4va
-.la3ve
-.la4ve.
-.la6v5æ
-.le8ar
-.le4da.
-.le4de.
-.le4er
-.le6et
-.le2f
-.lef3l
-.lega5ta
-.le4ge.
-.le4gel
-.le8gi.
-.lei8e
-.lei7er.
-.lei4ve
-.le4ke.
-.le4k5r
-.lemu9
-.le4ne.
-.le6o7
-.le7s6a
-.le4se.
-.le4sek
-.le4ses
-.le4s5p
-.le2t
-.le7ta
-.let6tan
-.le2u3
-.le3va
-.le4va.
-.le4ve.
-.le4ves
-.li8a
-.li4de.
-.li4e4
-.li5ene
-.li2g
-.liga3
-.li2k
-.lik5k6
-.lik3o
-.lik3s4
-.li4ma
-.link6
-.li6ra
-.li4re.
-.li4sa
-.li4se.
-.li4ta.
-.li4te.
-.li5ti
-.li4ve.
-.li4v5en
-.liv8s7u6
-.liv4s5v
-.lo5e6
-.lo6ge.
-.lo8gi.
-.lo6g5r
-.lo4i
-.lo6na
-.lo8o
-.lo6ri
-.lo8sa.
-.lo4se.
-.lo6te
-.lo4va
-.lo3ve
-.lo4ve.
-.lu4d
-.lu2e
-.lu4na
-.lu6pa
-.lu4pe.
-.lu6ra.
-.lu4re.
-.lu6se.
-.lu4ta.
-.lu9tas
-.ly4de.
-.lyd3s
-.ly8e
-.ly8ge
-.ly4se.
-.ly4sk
-.ly5s6e
-.lys5s6
-.ly8str
-.ly4te.
-.ly4ve.
-.lø8de.
-.lø6en.
-.lø8ne.
-.lø6pa.
-.lø4pe.
-.lø8s7a
-.lø8s7i
-.lø8s7m
-.lø8s7p
-.løv5i
-.løye5ne
-.lå8ma
-.lå5re
-.lå6re.
-.lå4te.
-.m8
-.ma4ge.
-.mag9r
-.mah6
-.ma3ka
-.ma4ke.
-.mak6t5at
-.makt5s
-.ma4le.
-.ma4li.
-.ma4na.
-.mande8l
-.ma4ne.
-.ma4ni.
-.ma4ra.
-.ma4re.
-.ma4ri.
-.mar8sj7ø
-.ma4sa.
-.ma4si
-.ma6st
-.ma8ta
-.ma6t8h
-.mat5t8o
-.ma4v
-.me4d3
-.me6d5ei
-.me6d4i
-.me6d7in
-.me6d5r
-.mei5er.
-.mei5et
-.mek5l
-.me6la.
-.mel3l6o
-.me4l5ø
-.me4ne.
-.me3ri
-.me8s7al
-.me4sk
-.me2t6a3
-.me3ta4ll
-.mes5ti
-.me4tri
-.mi6kj
-.mi4le.
-.mi4me.
-.mi4ni.
-.mi4nik
-.min4k3
-.min5k4e
-.mi6s3t4
-.mne6
-.mo5de
-.mo6er
-.mo4na.
-.mo8ne.
-.mon4st
-.mons6t5r
-.mor5d6e
-.mo4re.
-.mor3t6a5
-.mo4se.
-.mo4ta
-.mo4tek
-.mo4ter
-.mo4tr
-.mo5v
-.mu8ga
-.mu8ge.
-.mu6le.
-.mul5es
-.mur7
-.mu5r8e
-.my8ka
-.my4ke.
-.mø4re.
-.mø5res
-.mø2t
-.må6la.
-.mål3o
-.n8
-.nabo3
-.na6ge.
-.nak2
-.na8ke.
-.nan5s
-.na4r
-.na4sa.
-.nat2
-.na3tr
-.nat6tr
-.ne4de.
-.ne4den
-.ne4d5i
-.ne4d3r
-.ned3s4
-.ne4f5r
-.ne4g7
-.nei5e
-.ne6k6r
-.ne4o7
-.ne4o8n
-.ne8pa.
-.ne6pe.
-.ne2s
-.ne4t
-.ni8ar
-.ni6er
-.nig4l
-.ni4na.
-.ni5o6g5
-.ni4pa.
-.ni6pe.
-.ni8sa
-.ni6se.
-.nita9
-.ni4to
-.ni4va
-.no6de.
-.no6e
-.no8ka
-.no4me.
-.no8mi.
-.no4r
-.no8se
-.no8si.
-.no4va.
-.nu4e
-.ny5a
-.ny3o
-.ny8sa.
-.ny6se.
-.ny4te.
-.nær9ast.
-.næ4re.
-.nød4d
-.nø4re.
-.nå4de.
-.nå6le.
-.o6
-.obo5e
-.od4da.
-.od4de.
-.odel8s7
-.od8la.
-.od8le.
-.offsi6
-.of4te.
-.of5teb
-.og4
-.ok1k
-.ok8ka.
-.ok8ke
-.ok4se.
-.old3s
-.ol4ga.
-.oli5
-.ol8la
-.ol8le.
-.oli5v6
-.ol6m
-.om1
-.om4ar.
-.om6bo.
-.om4e6n
-.om4gå.
-.om4me
-.om5s2
-.on4de.
-.on5des
-.ond3s
-.on6kl
-.on6na
-.on8ne.
-.op5ar
-.op4pa
-.op4pe
-.opp7el
-.op4pi
-.opp3l
-.oppla8te.
-.opp5s6
-.op7r
-.opt6
-.or4da
-.or4de.
-.or4del
-.or4dr
-.ord5s4
-.or5ga
-.or6ka.
-.or4ke.
-.or6me.
-.or4re.
-.ort6
-.or6va
-.osa5
-.os3el
-.os4k
-.os4s
-.os4te.
-.ot5r
-.ot7t8a
-.ot4ta.
-.ot4te.
-.ot4tes
-.ot3to
-.ot4to.
-.ove6
-.over3
-.overen6d
-.over3i4
-.over5k8
-.ov8re
-.ov5u
-.ov6ul
-.p6
-.pa8la.
-.pa4le.
-.pal6i
-.pa8n7a
-.pa5n6e
-.pa6n7eu
-.pa5n6i
-.pa6re.
-.pe3do
-.pe4ke.
-.pek5t
-.pel4sj
-.pe4ne.
-.pe2p
-.pep3r
-.pe8ri7
-.per6m7
-.pe8sa.
-.pese5t
-.pe4st
-.ph2
-.pi6le.
-.pi6p
-.pi9ra
-.pi2s
-.plen5g6
-.plus6s5
-.plus7s6e
-.plø7se
-.po4et
-.po3la
-.po8la.
-.po4le.
-.po4log
-.po2p1
-.po2p2e
-.pop3p
-.po3p2u
-.po8ra
-.po6re.
-.po4res
-.po6st
-.po8ta.
-.po6tek
-.pro7k8
-.ps2
-.pøn3
-.pøn9s6
-.på5d6
-.r6
-.ra6da.
-.ra6et
-.ra4ga.
-.ra4ge.
-.ra4ja.
-.ra4ka
-.raks7
-.ra2m
-.ra4na
-.ra4ne.
-.ran7s6a
-.ra6pa.
-.ra6pe.
-.rap4s
-.rap5s4e
-.rap5s4o4
-.ra4re.
-.ra6sa.
-.ra7ti
-.ra6va.
-.ra4ve.
-.re4al
-.re6da.
-.re4de.
-.ree6l
-.rege4l
-.re4gi.
-.rei2
-.rei7de
-.rei5er.
-.re4ins
-.re6ka.
-.re4ke.
-.re8klar
-.re8kle
-.re4kli
-.re6kn
-.re8le.
-.re4ma.
-.re4na.
-.re4ne.
-.ren6sk
-.ren4t
-.rep5s
-.res9s
-.re5s6tan
-.rett7s8kri
-.re4ve.
-.re4ves
-.rev9n
-.ri2d
-.ri8e
-.rie5ne
-.ri6ka.
-.ri6ma
-.ri4me.
-.ri4pa.
-.ri4pe.
-.ri4p5o
-.ri4sa.
-.ri4se.
-.ris5ko
-.ri4s3ø
-.ri4ta.
-.ri6te.
-.ri6va.
-.ri4ve.
-.ro4an
-.ro4de.
-.ro8di
-.ro4e
-.ro8ke.
-.ro4ma.
-.ro4mi
-.ro6pa
-.ro9par
-.ro3pe
-.ro4pe.
-.ro4sa
-.ro9sar
-.ro4se.
-.ro4sed
-.ro4ta.
-.ro4te.
-.ro4tek4
-.ro8va
-.ro3ve
-.ro8ve.
-.ru8ga.
-.ru4ge.
-.rug9le
-.ru8ka
-.ru4na.
-.ru4ne.
-.runes6
-.run7g
-.ru4se.
-.ru4sk
-.ru8va.
-.ru4ve.
-.ry2e
-.rye7ne
-.ry6ke.
-.rød2
-.rød7s4
-.rø8le.
-.rø4re.
-.rø1v
-.rø8va.
-.rø4ve.
-.røy7e
-.rå8da.
-.rå4de.
-.rå4en
-.rå8er.
-.råg8
-.rå6ka.
-.rå4ke.
-.rå3k4l
-.rå6na.
-.rå8sa.
-.s6
-.sa4ge.
-.sag6n
-.sa4la.
-.sa4le.
-.sa4me.
-.sa4mer
-.san6d7
-.san7d8e
-.san7d8i
-.san8s7ku
-.sau6e
-.sch6
-.se2b
-.se2e
-.se4i
-.se4k5l
-.sek4s5o6g5
-.sel4v5
-.sel4v5i6
-.se6na.
-.se4ne.
-.sen7s
-.se4ra.
-.ser7vel
-.se4te.
-.sha9ke.
-.si2d
-.si6er
-.si6ga.
-.si4ge.
-.sik5k6e
-.si8la.
-.si4le.
-.si4ne.
-.sinn6s5
-.si4ra.
-.si5str
-.si4va
-.si4ve.
-.sje4i
-.sju5o6g5
-.sk6
-.ska7ka
-.ska5ke
-.skat4
-.skei5d
-.ski6n
-.skinns6
-.sko7de.
-.skog5u
-.skritt9s8
-.skudd5s6
-.skuddså7
-.sku6m5
-.sky6f7la
-.skå5ra
-.sle6s5v
-.sli6b7r
-.slim5
-.slotts5
-.slu9ka
-.slu5ke.
-.slø5se
-.sma4s
-.smas5k
-.smi6g7r
-.smo9g
-.små3
-.små7k6
-.små9l
-.små5t4
-.småt5t
-.sn4
-.sne3
-.sne4k
-.snitt5s6
-.snø3k
-.soa8
-.so8de
-.somma4
-.son6a
-.sop4pa
-.sor4t5
-.so4ta.
-.s8p6
-.spa5ra
-.spe6e
-.spi9la
-.spri5s6
-.st6
-.sta9ka
-.sta5li
-.stat4s
-.sted4s
-.ste4i
-.stein7a8
-.stein7s8
-.stem4m
-.stev9na
-.sti7me
-.sto5ne
-.sto6ra
-.strek5s6
-.stu8a
-.stu9va
-.stål5l6
-.sund5s6
-.su4ri
-.su5te
-.sv8
-.sva5la
-.sva5ra.
-.sva5re
-.svar5s
-.sver8n
-.syd5
-.sy3d6a
-.sy5d6e
-.sy6na.
-.sy4ne.
-.sy5ter
-.sy3ti
-.sy6v5
-.sy6v5o6g5
-.sz6
-.sæ2
-.sær1
-.sær3e4g
-.sø8ka
-.sø4ke.
-.søl6v5
-.sør3a
-.søye5
-.søy6en
-.så5pen
-.så3re
-.t8
-.ta8ke.
-.tak9r
-.tak5sk
-.tak9s8p
-.ta4la.
-.ta4le.
-.ta4les
-.tal4li
-.tam5m
-.tan5de
-.ta4p5r
-.ta4ra.
-.ta4re.
-.ta2s
-.te4e
-.te6i
-.tei9er
-.te8ke.
-.te4ma.
-.te6o
-.te8ne.
-.te4se.
-.te7si
-.te4sta
-.te4str
-.th2
-.ti8a
-.tid5r
-.tid6s3
-.ti4de.
-.ti4e
-.ti4g3r
-.ti4ki
-.ti4l5
-.tili6
-.ti4med
-.ti4na.
-.ti4ne.
-.ti4p5l
-.ti4s
-.to5arm
-.to6en.
-.to4er.
-.to6et.
-.tokk8
-.to6le.
-.to6na.
-.to5o6g5
-.to4ra.
-.to4re.
-.to6reb
-.tor6g5a
-.to3ro
-.torsk6e5
-.tor4s5v
-.to5rye
-.to4str
-.tota9la.
-.to5t8
-.to8te.
-.to6va
-.to4ve.
-.tr6
-.tra7c
-.tre3b
-.tre7p
-.tre5o6g5
-.tre6skja
-.tre3s8ko
-.tre7sl
-.tre3sp
-.tre5s6t
-.ts2
-.tsj2
-.tu4en.
-.tu6na
-.tu4ne.
-.tu6ra.
-.tu4re.
-.tu8ve.
-.tve6n
-.tver6r5a6
-.två7g
-.ty6da.
-.ty4de.
-.ty8et
-.ty8re.
-.tyr8s9
-.ty5ter
-.ty5ti
-.tæ4re.
-.tøv9d
-.tø6ve.
-.tø9ver
-.tø5vet
-.tå5ker
-.tå4le.
-.tåp9n
-.tå5ren
-.tå7ret
-.u5a6
-.u1b2
-.u6berg
-.u3d2
-.u7de
-.u3e6
-.u4er.
-.u6era
-.u4ere
-.uf4f
-.uf8sa
-.u4ga
-.u5gi
-.ug6la.
-.ug8n
-.u1i
-.ui6m
-.u1k6
-.u4ka.
-.u6ke
-.u7kn
-.u3le
-.u4le.
-.ule8k
-.ulen4d
-.u6lende
-.u8lene
-.u6let
-.u4lin
-.ul6ka
-.ul4ke.
-.ul4la.
-.ul8le.
-.ul8ma.
-.ul4me.
-.ul4ne.
-.ul5t
-.ul6te
-.u1lu
-.ul4v5i
-.u1ly
-.u3lå
-.u5ma
-.umu7
-.u2n
-.unde6ri
-.und5r
-.une8
-.u5nek
-.u9net
-.un4ge.
-.un2n
-.unn3s
-.u3no
-.un4se.
-.un4t
-.u5nu
-.u1o
-.u1p
-.u4pi
-.up2l
-.up4p3
-.u2ra
-.u5raf
-.ur6an
-.u6rane
-.ur4d
-.ure4n
-.u4ret.
-.u6rets
-.u2r2i
-.ur4ke
-.ur6na
-.ur4ne.
-.u1ro
-.ur1s
-.ur8ta
-.ur4te.
-.urte5m8
-.ur6tet
-.u5rut
-.u3ry
-.u5rå
-.u1s2
-.u4sa.
-.u4sas
-.u5se
-.u3ska
-.u5sn
-.u7sp
-.us3se
-.us6t4
-.u7stek
-.u5stel
-.usy5r
-.u2t
-.uta4g
-.ut5age
-.u3tak
-.u4ten.
-.ut5esk
-.ut6e7sko
-.u4ti.
-.ut3kan6t5
-.ut4ne.
-.u5tol
-.ut3o6v
-.ut6rer
-.ut6rov
-.u3trø
-.ut6se.
-.ut4si.
-.ut3t4
-.u3tu
-.v6
-.va4da.
-.va4de.
-.vai4
-.va4ke.
-.va6les
-.valg5s
-.va4ne.
-.van4n5
-.vann5s4
-.va6reta
-.vari4e
-.var5sk
-.ve8en.
-.ve4ga.
-.ve6ge.
-.ve4g3i
-.veg3s4
-.vei3g4
-.vei3s
-.vei4ta
-.ve4l3
-.ve5l4ar
-.ve6l5art
-.vel5d
-.ve4l3e
-.vel5l
-.ve5l4os
-.ve4l5ov
-.ve4ly
-.ve8læ
-.ve4ne.
-.ve4net
-.ve4ra.
-.ve4ras
-.ve6re.
-.vermo9
-.vers4t
-.ver5ste
-.ve4sl
-.ve4st
-.vete5
-.ve8te.
-.ve4ve.
-.vi4da.
-.vide4
-.vi6de.
-.vi4d5å4
-.vi2e
-.vi4ka.
-.vil5l6a5t
-.vi6ma.
-.vi8me.
-.ving7s
-.vin5n
-.vi4sa.
-.vi4se.
-.vi6seri
-.vi4ta.
-.vi4te.
-.vi5tr
-.vok4s3
-.vok5s6e
-.vo6r
-.vo6ta.
-.vy4
-.vye5ne
-.væ4ra
-.væ4re.
-.vå4d
-.vå4r3
-.vårs6
-.wa4r
-.we4g
-.wi6e
-.xe2
-.y6
-.ye4
-.yn8da.
-.yn4de.
-.yn6ge.
-.yn8ka.
-.yn6ke.
-.yn4kv
-.yns2
-.yp8pa.
-.yp4pe.
-.yr8ja.
-.yr8je.
-.yr8ka
-.yr4ke.
-.yrkes5
-.yr6t
-.ys4
-.ysterie8
-.yt9ren
-.yt5t
-.yt6te.
-.yv6
-.z4
-.zj8
-.æ8
-.ære4s5a
-.ære4st
-.æt4te.
-.ø6
-.øg8la
-.øg4le.
-.øi5
-.øi6e
-.øko5
-.øk6ta
-.øk4te.
-.øl3ed
-.øl3s6
-.øl3v6
-.øm4me.
-.øres8t
-.ør4je
-.ør5k
-.ør8na.
-.ør4ne.
-.ør6ski
-.ør9sm
-.ør3st
-.ør8ta
-.ørt9an
-.ør8te.
-.øs2
-.øs4t
-.øv4d
-.øve4r5
-.øve4r6s
-.øv4re.
-.øy6de.
-.øy2e
-.øyele8ge.
-.øy5ene
-.øy4n
-.øy6na
-.øy6ra
-.øy4re
-.øy8rer
-.øy4str
-.å2
-.å6e
-.å6f
-.å6g
-.å6k4
-.å8l
-.ål6t
-.ål8ut.
-.å8m
-.ån8da.
-.ån4de.
-.ånd6s5
-.åp6na
-.års3k
-.å6se
-.ås3k
-.ås7l
-.ås3m
-.å3ste
-.ås5v
-.å4t
-.åt4te.
-.åtte5o6g5
-.å6v
-a1ad
-4aaf
-a3aft
-aa4g
-a1aks
-aak5v
-aa3la
-aa2m
-a1a2n
-a6an.
-aans9t
-a7antr
-a1ap
-aa4ri6
-aarie9ne
-aar5n
-aa2s
-3aase
-aa5t6h
-a1av
-a6bab
-ab7av
-ab9b8l
-ab4but
-abe4lei
-abel5t4
-abe9na.
-abes9ka
-4abev
-a5bh
-abie6
-abi9er
-abi9la
-a4bist
-ab1l
-ab9lara
-ab4lok
-abl7u
-a5bo9a
-abo3b
-abo3e
-a3boer
-abo3kl
-a3bord
-5aborte
-ab1r
-ab8re
-ab2sl
-abu5e
-a4buel
-a4buf
-a6busk
-a4bute
-a4by.
-a4byb
-a4byk
-aby3r
-8ac
-aca5
-a6ca.
-ache3a
-ack3
-a1co
-6ada
-a5dal
-ad5ant
-a4dart
-ad9da
-a2deb
-ade5i6s
-a2dek
-a4del
-a4d5elv
-a5dend
-a3dene
-a2deo
-a2dep
-a5der.
-aderle7
-a2des
-a5de4ser
-a3desl
-a3det.
-a3dets
-3adfer
-1adg
-ad8ge
-adi4ene
-ad1j
-1adju
-2adl
-1adm
-ad5n
-ado7a
-a4dob
-ad7opp
-4ador
-a7dora
-ad5raf
-ad7ran
-a2dre
-ad7rel
-ad5rep
-ad3ret
-ad3rid
-ad1ro
-a7drø
-ad4s5amt
-ad4si
-adsle6ge.
-ad5s4let
-ads5te
-ad5s6tek
-ad3str
-ad5un
-1adv
-adva5re
-2adve
-a4dy.
-a4d5øy
-2a1e2
-4aea
-a4ed
-8a7ede
-aed7r
-aek5t
-a4el.
-ae5la
-ae3li
-ael5o
-aen5t
-a3ep
-aes8ke.
-aes4t
-6afa
-6afc
-a4fe.
-afei5
-af4fan
-af4fei
-affe3s
-af7fi.
-affi3d
-af5f4u
-af4i
-afia1
-afi5an
-a2fib
-a6f5inn
-afi7re
-a4fiti
-a5fjo
-af9la.
-af9lar
-af3le
-af5li
-a4frik
-6afo
-afo7ra.
-afo7r8e
-afore5ne
-afra5s
-1afri
-afs1l
-aft5ei
-af4t5e4l
-af6t5o
-aft1s4
-af5yr
-afø4r
-afø5ri
-4aga
-a2gaa
-a5gae
-a4ganf
-agang7s8
-a4gart
-a5gas.
-aga6ve.
-ag5de
-a7gelen
-a2gem
-3a4gent
-age4r3a
-age6rek
-age5risk
-a7gers
-a5geru
-age5s2
-a4geta
-a4gé
-ag5gar
-ag4gas
-ag5ge
-agg1s2
-agg7u
-ag6gut
-a4gi.
-ag5id
-agi6s
-ag1la
-ag4lem
-ag6lesa
-ag5lå
-agmo8e
-agn5om
-4ago
-ago5d8
-ag1or
-a5gos
-a3got
-ag5ov
-ag7ras
-ag1re
-ag1ri
-4a3gru
-ag1rå
-ag4samb
-ags4ang
-ag3s4ei
-ag4sel
-ag3sem
-ag5s6ing
-ag6sju
-ag4ska
-ags4kul
-ag2sl
-agsmå6la
-ags3tr
-ags3t2v
-ag2sy
-a6gu.
-agu3ay
-agå8va
-agå8ve.
-a1h
-a5hi
-ah4n5
-ah4v
-ai1a4
-ai3e2
-ai3er.
-ai4is
-ai5ke.
-ai5ko
-ai9kv
-ai5ne
-a3ing
-a1inn
-ai4n5o4
-ain8sm
-ai1ro
-ais4e
-ai4s3k
-aisk2h
-ai8sm
-ais6om
-ais5s
-ai5s4v
-ai5ve
-ai5ø
-a1j
-aja9d
-a7je
-a8je.
-ajes7
-a4jé
-a4ji
-a6jl
-6ak.
-a1ka
-4aka.
-1a2kad
-6akaf
-ak3aks
-6akan
-aka4o5
-4akar
-ak6arb
-aka4t5r
-ak4au
-2akd
-2ake
-a9kec
-a2keh
-a3kei5
-a6kek
-akel8e
-akelei9er
-ake5l4i
-ake4rek
-a4kerø
-ake5sm
-akes6p
-a8kete
-akhe6n
-4a1ki
-a6kid
-a6kik
-ak7ind
-akis1
-2a1kj
-akk6and
-ak5ke.
-ak3ken
-akk5erst
-ak4kes
-akki4
-ak5kim
-ak4k5is
-ak6kj
-ak1ko
-akk3ol
-ak6k5ri
-ak1ku
-ak4kul
-ak4k5v
-2ak1l
-ak3lev
-ak6lik
-ak6lus
-6akn
-ak5ne
-a5kno
-2a1ko
-ak5om.
-a5kon
-a7kos
-ak1o2v
-ak4pe6
-akra8sa
-ak5reg
-akregi4
-ak3res
-ak3ro.
-ak3roe
-ak1ru
-ak4s5and
-ak4sek
-akse3l4o
-ak4s5elv
-ak4ses
-ak7s6id
-3aksje
-ak2s1k
-ak7sku
-ak6sl
-4akso
-4aksr
-aks5ti
-ak5stol
-aks4tr
-akst7ren
-4aksu
-ak4tab
-ak4tai
-ak4tak
-akta6le.
-akt5all
-ak6tam
-ak6tans
-ak4tap
-ak4tas
-ak4tav
-ak4teg
-ak4tek
-ak5teme
-4akth
-7aktig
-ak5tit
-aktle6ge.
-ak2tr
-ak6tre
-akt3rå
-akt5s4la
-5aktue
-ak8t7æ
-akut2
-2akv
-ak3val
-ak5øl
-a5kå
-8ala.
-al7adr
-ala4g
-ala9ga
-a5lagm
-alag8ra
-a5lah
-a1lai
-al3all
-al3a4me
-al3ana
-a3land
-a5lande.
-a5lane
-alan5gr
-al3anl
-al3anv
-ala4o
-ala5pr
-a5lar.
-a3lara
-a5laren
-al3ark
-a7larl
-3a4larm
-al5arr
-a5lars
-al3art
-a7larv
-al3a4si
-2alat
-ala7tr
-4alau
-al5auk
-al1av
-ala4va
-al4ba.
-albo4g
-albu7er.
-5album
-al3de
-al7der
-4aldo
-ald3re
-2ale
-a2lef
-a2leg
-a9leg.
-aleie6n
-a9l8eik
-a5leke
-a4leks
-a4leli
-a2lem
-al5e4mu
-al8en.
-a4l3enh
-a4l5en5tr
-ale4pos
-a7lept
-a4lered
-alere6de.
-a4le5ro
-a4leru
-ale1s2
-ale7se
-a4lesk
-ale6s5kr
-a4lesl
-a6lesu
-a4leta
-a4le3te
-a2leu
-ale5v
-a4leva
-a4levi
-3alfab
-2alg.
-al3geb
-al2gu
-al4går
-al3ill
-a2lim
-a9lin.
-ali5na.
-a4l3ind
-a4l3ins
-al3int
-al9ja.
-al3je.
-alj5end
-al3jer
-al1jo
-al4jor
-al2j1u
-al1jø
-alj5ø6v
-al9kera
-alk7s6
-alla4ga
-alla6ge.
-al4lap
-all5art
-al5lea
-alle6ge.
-al4lek
-al5len.
-all5erst
-alle3s4
-al4lest
-al5let
-3allia
-al4lid
-5alli5e
-alli9ne
-al6list.
-al4lo3m
-all4sen
-all4sti
-al6lul
-al6løs.
-al4løse
-al8løst
-al6lå
-8almal
-al6mek
-al4met
-4aln
-a5lo.
-al1o4b
-a5loi
-al1om
-a1lon
-al3ope
-al7ord
-alori5
-alo6rit
-al3ove
-alow7
-alp2
-al3ps
-2als
-al7sed
-al9skap
-al7skare
-als1l
-als5lø
-al2sn
-al6spu
-als4te
-als6ter
-6alsu
-alt6ak
-alta8le.
-al3ted
-al7tema
-5alterna
-alte4t
-al4t5eta
-al4t5ete
-al4t3op
-a4l5u4k
-alul8la
-al5und
-alu8re.
-al5va.
-alv5aks
-alvak8se.
-al4ved
-al5v6er
-al8v9er8m
-alve5s
-al9ves.
-alvi8se
-al1vo
-alv3s
-6a1ly
-a2l5y4te
-alø5se
-al3øv
-a1lå
-al7å6t
-a4mah
-ama5is
-a2mak
-a5maki
-am3aks
-a2mal
-am5ald
-a3man
-a3mar.
-a5mara
-a7mas.
-amaso7
-3a4matø
-am4bar
-3ambas
-am4bat
-am5be
-a2mei
-am3eie
-a3meis
-a2mek
-am3eks
-amen8de.
-amen4s3
-amen6t7arv
-ame4ram
-a4meret
-3a4meri
-4amerin
-ame5u
-amhu7
-2ami
-ami7na
-ami7ne
-amisk3
-amis4ku
-am4lese
-am6lest
-am4mad
-6amn.
-am4ned
-a2mo
-amo5e
-am1op
-am1or
-amo6ve
-am4pap
-am4pare
-amp5ei
-am8peria
-am6perie
-ampes6
-amp7inn
-am2p3l
-am5p4let
-am4p4re
-am4pun
-am2på
-amru4
-am5rå
-am1s
-am7s6ku
-ams4l
-amst6
-am4s3tr
-ams9ut
-ams2v
-am4s5ve
-am2sø
-am3ti
-amti5da
-5amtm
-am7tv
-am6ul
-am5yr
-am5øy
-6ana.
-anak8te.
-ana3la
-anal4f
-3analy
-8anan
-a3nane
-a5nang
-anant8
-4anar
-a6narb
-an5art
-ana3to
-6an7au
-anaus7
-an9av.
-3anbef
-4and.
-an4da5m6
-anda5ta
-an4dek
-an5den
-anderle7
-an9det
-6ando
-an4dos
-4ands
-and4sel
-and8send
-and7slet
-and5s6tre
-a2ned
-an5egg
-a4n5elv
-ane8l7u
-a2nem
-2anen
-2aner
-a8n7erme
-ane3ru
-a5nes.
-a4nest
-ane5sv
-an5e6tika
-a5netike
-an5e6tikk
-an5e4tis
-a2nev
-3anfal
-anfø5re.
-ang4e
-an4ged
-an4g5enh
-ang5erme
-an8geste
-an4gi.
-5angiv
-ang5of
-an5gos
-an4g9ra
-an4gre.
-an6gres
-an4gret
-an4g3ry
-ang4sm
-angs6tro
-angs8t9rå
-angst5y
-ang5sva
-ang6søy
-ang4t5re
-ang5t6ve
-an4gun
-an4gå.
-ania7
-a6nib
-a4nisj
-4aniv
-an4kana
-4anki
-4ankj
-an4kob
-an4kop
-an4kos
-an2k1r
-ankra8na.
-ank3re
-ank3ut
-8an2kv
-an4kø
-an6k5å6
-2anla
-anland6
-anlø9pa
-ann5ans
-an6neme
-an5nen
-an5ner
-an5nid
-an4ninn
-an4nom
-5annon
-an4nov
-ann4sei
-ann4sid
-ann6s7kå
-ann6sl
-ann3st
-ann5sta
-ann4s3u
-an4ny
-an2nø
-a3no.
-a9noa.
-ano6deb
-2anog
-a7norm
-a6not
-a2no4v
-ano5va
-an3ove
-anri7ke
-ans5aft
-ansa7ka
-4ansan
-3ansat
-an4sek
-an4sent
-anseri8e9ne
-an4ses
-3ansik
-ans5ind
-ans5ins
-an4ski
-an3skj
-ans4k3l
-ans6kun
-an5skø
-an6slø
-an4sn
-ans5or
-an4s3pi
-ansport7s6
-an1st6
-6anstar
-ans4te4
-an8s7tu
-6ans6ti
-2ansu
-an9s6und
-5ansunda
-1an1sv
-4ansve
-6ansy
-an4så
-anta8la
-an5t6and
-an4tans
-an3ted
-ant5emi
-5antenn
-an4tesl
-anti7kl
-an4tim
-an5toi
-ant5ord
-ant5rab
-ant7rom
-ant5ryg
-ant5s6
-an4tul
-antus4t
-2anu
-anus7a
-an5ut
-3anven
-6anvin
-6any
-a4nya
-a2n1æ2
-anær8
-2anø
-a2nøk
-an7å
-a1o
-ao9a
-aog9
-a2oi
-ao6k6
-aon8de.
-ao2p
-ao4r
-a5pea
-a7pé
-a1pi
-a2pia
-ap1id
-a6pik
-a6pins
-a2pio
-api6r5
-api7r6e
-api7se
-ap1j
-a1pla
-a5p6las
-ap3li
-ap9lo
-ap2ly
-4apol
-a4pon
-a4poo
-apo3p
-apo5s4ti
-a2pot
-3ap3par
-4appar.
-6appare
-app7esk
-ap5plas
-ap4ple
-ap5pli
-ap6pri
-ap3ra
-ap5ren
-ap5ret
-ap3rin
-ap2s1
-apsa4
-ap3sel
-apse4s
-ap8s9l
-a3psy
-ap4s5ø
-8apu
-a6p5ut
-a1py
-ap7ø
-a3p8øls
-a5på.
-a1ra
-ara9bi
-ar5aks
-arak5t
-ar3alt
-a4rami
-2aran
-a4ranor
-a4rans
-a4ranv
-2arar
-a4r5ass
-ara5te.
-ar5aug
-ar7auk
-arau9ken
-ar7avh
-1arb
-2arba
-arba8ne.
-6arbeh
-4arben
-6arbet
-2arbi
-4arbj
-6arbl
-2arbo
-arbo8da
-2arbr
-2arbu
-2arby
-2arbø
-4arbå
-ar7deb
-ar6deli
-ardfø5re
-ard3re
-ard5sta
-a1re
-1a2rea
-4arear
-a4reb
-areba4r
-a2red
-a2ref
-a2rei
-are3in
-a2rek
-a6r5ekt
-a4rela
-ar7elek
-a4r6eli
-ar7emn
-a5remo.
-3arena
-a6r5eng
-a4reni
-aren5tes
-a2reo
-a2rep
-a6rerel
-a4r5erfa
-a6rerk
-a4rero
-a6rerø
-a5res.
-ares8ka
-ar4et
-a7reta.
-a4rev
-ar7e6va
-ar3evn
-arev6ne.
-8a1ré
-6arf
-ar7g6h
-ar5g6i
-6argj
-arg4l
-ar7go
-arg5stj
-2a1ri
-aria7ne
-a3rib
-ariba9
-ar5idr
-a4rim
-ar3inn
-ar3ins
-arins9k
-ar3int
-ari3se
-arise4a
-a4risto
-a2riv
-ar4kau
-ar3ke
-ar4ke5s
-ar5kha
-3arkit
-3arkiv
-ar4kle
-ar4k5løf
-ar6kod
-ark6ste
-ark4str
-ark7veg
-ar4køy
-arla4ga
-ar4map
-5armbå
-ar4medi
-arme7t
-ar6metr
-ar4minf
-armle6ne.
-armå6la
-2ar2n
-ar4nad
-ar4nal
-arneva7la
-ar3ni
-ar3no
-ar3nu
-ar3nå
-a1ro.
-aro8de.
-a5rok
-a1ron
-ar1op
-aro6pa
-a4r1o4r
-a1ros
-ar7ost
-a1rot
-ar3ove
-ar6ped
-ar9po
-arp5ret
-1arra
-ar5ree
-ar7resk
-arri8e7
-arrå6da
-2ars
-arsa6ka
-ars5ans
-ar3sel
-ar6s5ers
-ar4sin
-ars5kam
-ar5skar
-ars5kes
-ars7kre
-ar4spr
-ars6tr
-ars4vei
-ars7æ
-arta4la
-arta6le.
-ar3te
-ar7tele
-8artets
-art4ha.
-art4has
-ar4tika
-6ar4tim
-4artn
-4arto
-ar4top
-6artr
-art9ra
-ar6trin
-art6s5t
-arts5ø
-6artu
-8arty
-ar4tyv
-ar1ul
-ar1un
-ar5u6r
-a1rus
-ar5utb
-ar5utn
-arve3s
-ar6vete
-arvi8sa
-arvi8se.
-a1ry
-ar7æ6
-arø8ve.
-ar1øy
-a1rå
-arå8de.
-ar7åp
-a6r5åt
-6as.
-4a1sa
-asab4
-asak4
-a4salo
-as6an
-as7aug
-asbe2
-a1sc
-a2se.
-asea4
-a2sed
-a2seg
-a2sek
-as4el
-ase5le
-a2sem
-a6senet
-a4senk
-a7seol
-a2se5s
-a6sest
-a4sete
-a2se3u
-as2h
-as5hu
-a4sib
-a2sip
-a2sir
-a7sis.
-asis5t
-a2siv
-as4ja
-a6sjett
-as5jor
-as3kar
-ask6et
-as5keti
-ask2i
-as5kis
-a5skj
-as5ko.
-as5koe
-a4s5kopi
-as3kor
-as3kot
-a1skr
-as7kra
-as3kul
-a5s6kula
-as6kule
-ask9u8t
-as4kv
-ask5øy
-as1l
-a5s4lag
-asla8ga
-as4lev
-as4lit
-a1so
-a4so.
-a2s5om
-as5ov
-as4pan
-as3pe
-as7pis
-as5pl
-as9sa.
-as4sab
-as4sal
-ass5ald
-ass5alt
-as4sam
-as5se.
-as4sed
-as4sek
-asseri7e6
-as4serv
-as4ses
-as6sifr
-as5sing
-assi3s
-as4sit
-as2sj
-as6s1k
-assku6le.
-as2s3n
-as5so.
-asso9a
-as7sos.
-as6s1p
-as2s3t
-as4stan
-as4str
-ass5tru
-as2s1v
-as4sys
-as4søk
-as2s5å
-as1ta
-as6tab
-a6stande
-a4statu
-as5te.
-as3ted
-as4teg
-as4tek
-as4t5enh
-a1stj
-a9stof
-a5stok
-as5t6os
-ast5ov
-ast5ren
-as4tro
-as9tua
-astu8ve.
-ast5ø4v
-a1su
-asu3n
-asu9sa
-as1va
-a6sym
-asyn7d
-as7øye
-as5å
-4at.
-4ata1
-a5taene
-at6af
-ata8ka.
-ata8la.
-a4tang
-ata9rar
-a6t7arv
-atas4
-a5tas.
-atat8
-a2tau
-at5avh
-atch5
-a2tea
-a2tec
-at7edd
-a2tee
-a4tei
-at5eid
-at3eig
-ate3in
-a4teka
-ate5k8e
-ateke7ta
-a6t5ekte
-ate7le
-at3emb
-4aten
-a5tene.
-a4teni
-a4tenu
-a2teo
-4ater
-a5ter.
-a6terat
-a8terek
-a4teril
-a2tes
-a4t3ett
-at6e5u
-a4té
-3atfer
-at4ha.
-at8has
-4ati
-atik6ka
-atili5
-ati5nea
-ati4rep
-ati8sta
-at3jo
-5atlant
-atl9øy
-3atmos
-at4nel
-ato5a
-ato5gr
-at1oi
-a2tom
-a6t5oppr
-a1tor
-a5tose
-a3to1v
-a1tra
-at5reg
-at3ren
-at3rer
-a4trif
-at3rin
-at5rot
-a9tru
-at5røs
-at5røy
-2ats
-at3ser
-at7sje
-at7s6kat
-at7skj
-ats6kul
-at2s3ø
-4att.
-at6tat
-4at5te.
-at5tens
-attfø7re
-at4tid
-atti4s
-att5ise
-at3tit
-att1o
-att7o6p
-atto6v
-at1tr
-at4traf
-at4t3re
-at6trin
-att3s6k
-att5s8l
-att3sp
-att3sv
-at6tys
-at2t3ø2
-a1tu
-atu5e4
-a2tut
-at5v
-atvi5er.
-a3t3w
-a1ty
-atyr8ke.
-a5t6yv
-a1tø
-atør3s
-atø9se
-a4t5øy
-a3tå.
-a7tåa
-a1tåe
-at5år
-at5å4se
-at7åt8
-4au.
-8a8ua
-au9ar.
-4au5b
-auba6ne.
-au3c
-au5da.
-au9det
-au4di.
-4a6ue
-au7en
-au7er
-aue5re
-au3est
-au6e5ta
-au5e6te.
-au4gal
-au4gas
-au4gel
-augele8ge.
-5aug2n
-3augu
-au5i
-au5keli
-au5ket
-auk5la
-1auk7s6
-au5kve
-au6las
-au4lat
-aul5l
-aul8la
-au5lu
-au9men
-au6mo
-aum5s6k
-aum7s4t
-a5und
-au5rae
-aure5s
-au5ret
-au5ri
-aur5s6
-au1ru
-auru4e
-au1sa
-aus9kj
-au6skr
-au1so
-aus5s
-au6s8tas
-aus8tett
-austi6s
-aus6t7ise
-aus6ton
-au5str
-au6stra
-au6stri
-au1su
-au4sun
-au2s5ø4
-aut6a
-au3ta.
-au7tar
-au5te
-1auto
-auto5v
-au3t4re
-au4ty
-2aux
-a1va
-av5ab
-a5vae
-ava7g
-6aval
-av3alv
-a4v3and
-av3ang
-a4v5anl
-3a4van5s
-a9var.
-av3art
-avar6ta.
-4avas
-avat6a
-5avbi
-1avd
-3avdel
-2a1ve
-a2ve3d2
-a5vede.
-a7veil
-ave3in
-a2vek
-a4vela
-a4vele
-a5veleg
-avens4
-a5ver.
-ave7ras
-aver5d
-a6verei
-a2ves
-a2vev
-1avfa
-1avg
-avi4ar
-4a5vig
-a1vik
-avi9ke
-a1vin
-a4v5int
-2avir
-5avisa
-avi5sa.
-3a6vise
-av5ising
-avis3t
-a5vit
-avlu9t
-avlø5se
-6avn
-av7na
-av4nes
-a1vo
-a4vok
-avo3r
-avo4v
-av1r
-av4res
-av5ri
-av1sa
-av5seg
-avs2i
-avsko7g
-3avsni
-av1s2p
-avspe9g4
-avs4te
-av5su
-av1s2v
-1avt
-avta9ka
-2avu
-1avvi
-av3øl
-4a1vå
-a6v7å6l
-a1wa
-awat4
-a5we
-awe9ne
-a1wi
-ay2a
-ay7ane.
-ay5ar
-ay9s8t
-a5y4t
-a5zu
-azz3o
-a1ø
-a7å6
-1b4a
-ba3a
-baby5
-ba4bys
-ba5cl
-ba2d
-ba4da.
-ba7dan
-b5add
-ba8de.
-ba4deb
-ba5den.
-ba7dens
-ba3di
-bad1s
-4baf
-ba2k
-ba5kan7
-ba3kar
-bakars7
-ba3ken
-ba4k5end
-baken6de.
-ba3ker
-bake3s
-ba9ket.
-bak9ett
-ba3ki
-ba8ki.
-bak6kers
-bak6ko
-bak5kr
-4bakr
-bak4re
-ba5kri
-bak3ro
-bak3sm
-bak5sp
-bak5s6ti
-bak5str
-bak7t6
-bak1v
-ba3la
-bal7ak
-ba4les
-ba4li.
-bal3j
-bal4lag
-bal4lan
-bal4led
-bal4leg
-bal4lei
-bal4lev
-bal4lig
-bal6lov
-ball5s6
-bal6læ
-ba1lo
-bal5t
-ba1lu
-ban4a
-ba4na.
-ba5nan
-ba5nar
-ban9da
-ba4nel
-ba4nes
-ban6kap
-ban4kor
-ban2k3u
-bantu5
-ba3re
-baret5t
-ba3ri
-bari6e7n
-bark5s
-bar5skr
-bar5tr
-ba5ru
-ba5sen
-ba4seru
-ba4set
-ba3si
-ba2s1k
-bas6sak
-bas4san
-bassi4
-bassis5
-bas4so
-bas4st
-bass6tr
-ba2st
-ba7s8u
-ba1ta
-2ba1tr
-bat6ti
-bau9la
-6bav
-ba5z
-2b1b
-b3ba
-b6bak
-b4b5arb
-b6base
-b3be.
-b4beb
-b4beda
-b2bef
-b4beg
-b6beh
-b2bei
-bb3eie
-bb5eig
-b2bek
-b6belo
-bbel6t3
-bbelte4
-b4bem
-b9bene.
-b2beo
-b3ber
-b4b5erf
-b4bes6
-b7beska
-b6beta
-b6beten
-b4beti
-b6beto
-b6betr
-b2bev
-b8b1h
-b3bi
-bbi9e8
-b4b5inn
-b2b1l
-bb7len
-bb5op
-bb5rek
-bbu9ra
-bb5ut.
-bb5ute
-b2by5
-bby3e
-bby1k
-b4bø
-b6bå
-2bc
-2b1d
-b2dek
-b7den
-b4dep
-1be
-be2au
-be4bo.
-bebo5er.
-bebo9k
-be4da.
-be9dar
-be3der
-bedi9e8
-be4dre
-bed5red
-bed2s1
-bedy9ra
-be1då3
-2bee
-be5ed
-be6ef
-b4ef
-befa5re
-be3g
-bega7
-be4ga.
-be4gi.
-be4gn
-be5go
-be4g5re.
-be4g5rene.
-be4gå.
-be6ha.
-beha7g
-behers7
-4behu
-behå4r
-be6i
-be5ke
-be2k3i
-bek6kel
-bekke5r
-bek4kes
-bek6l
-4beks
-be4l3ab
-bela9ga
-bel5eie
-bel5eig
-bel5ein
-be4lek
-beli9na
-beli9v
-belle5sa
-bel5let
-bel5læ
-be2l1o
-bel5s4p
-bel7s4t
-bel4tag
-bel4te5s
-bel4t3ø
-bel3u
-bel5v
-belæ5re
-belå7ne
-be4na
-be5nat
-be3ne
-4bened
-be4nest
-ben5g
-be5ni
-ben5s4i
-ben5skj
-ben5sp
-ben5te
-2bep
-b4er
-4berai
-be7ras
-ber5d
-be4rep
-8berest
-bere5te
-ber4ga
-ber4g5ende
-ber5ges
-berg3j
-berg3l
-berg3o
-ber4g3å
-be5rib
-beri5ke
-be7ris
-ber6kl
-ber5na
-ber5ne
-be1ro
-be4ro.
-bero9a
-berri6
-ber5te
-ber5ti
-be1ru
-beru9sa
-berø5v
-b4e1s2
-5bes.
-be4se.
-be5s4i
-4besik
-6besj
-bes5ke
-bes6k5n
-be3sn
-bes7ne
-4be3so
-beso9v
-be5sp
-bes3s
-bes6s7a6
-bes6sel
-bes7si
-bes7tens
-bes6tes
-be5stes.
-be6så
-3b4et
-5bet.
-be4tab
-be3te
-4betei
-be7tes
-beto5ne
-be6trar
-be6tre.
-be4t3ri
-4betu
-be4ty.
-beva5re
-be6ve.
-bevi5se.
-be9vo
-bev9r
-6beå
-beån9
-7bé
-2b5f
-6bg
-2bh
-bhu1
-1b4i
-bi5ak
-bi6bla
-bi5ce
-bi1d
-bi5dee
-bi8dé
-bid6r
-bidu8
-bi5el
-bi6ele
-bi5erv
-4bifa
-bi5g
-bi3ka
-bik1k
-bik6ki
-bi5k4l
-4bi7kr
-bi6la.
-bi4l5ap
-bi4las
-bi4lau
-bi3let
-bilet5r
-bi4lin
-bil3j
-bil5la
-billa8ga
-bil5leg
-bil5m6
-bil1o
-6bi5m
-bi4nans
-bingo5
-bin4gol
-bi7no
-4b5int
-bio7
-bi3o8m3s4
-4bip
-bi4ri5
-bi7ris.
-bir4ken
-bi1ro
-bis2a
-bi3se
-b5ish
-bis6hi
-bis7ke
-bi5s4la
-8bisn
-bi4sp
-bis4p5i
-bis5se
-bi1st
-bi5s6ta
-bis4til
-bis5tru
-bi3s4v
-bi6ta.
-bi4te.
-bi5tes
-bi8ti.
-bi4tre
-bi6tri
-bjar3
-bjek4t5o
-bjø6r
-2b1k4
-b5kh
-bl2
-1b2lad
-blad3a
-bla6f3
-bla8ga
-blak5r
-bla5me
-blan9da
-b4lank
-blan5ke
-b4lant
-b1lar
-b8larar
-b3lat
-bla4u
-b4lef
-blei8e5
-blei5er
-b4lek
-ble4k3a
-ble5kes
-ble4mo
-b3ler
-ble7r6a
-b6lesa
-blesse9ne
-b4lest
-2blet
-bli9ke
-bli5ma
-bli5me
-blings6i
-blis3s
-b5lj
-blja4
-blo6dr
-1blok
-blom5m
-b6lu
-blues3
-blu9sa
-bly7gl
-blæ5re.
-blå5n
-blå3r
-blå7sa
-blå5se.
-6b5m
-6bn
-b3ne.
-b3ner
-b7nes.
-b7ni
-b2o
-boa5s4
-bobba6ne.
-bob5by.
-bob9bye
-bo2bl
-bob7la
-bobs4
-bo3de
-bo6din
-bo6d7r
-bo2dø
-4boef
-1boen
-bo2er
-bo4et.
-2bo3f6
-bo4gel
-bogn7
-bog1s
-2boh
-2boj
-3bok.
-bo2ka
-bo6kel
-bo4k3et
-bok1i
-bok1k
-bo6kop
-bo6k5ri
-5bok1s
-boksi8da
-boks4p
-bo2ku
-bok3ve
-b4ol
-bol5eie
-bo7li
-boli7n
-bo7lo.
-bo5loi
-bo4l5o4r
-bol5s4p
-bolst6
-1bomb
-bom4bel
-bom5m
-bo6mo
-bom1s4
-bo5nap
-bon5ato
-4bonn
-bon5ne
-bons4
-bo5nus
-boo6
-boom1
-bo1p4
-bo1ra
-bo4ra.
-bo6re.
-bo7rel
-bo3ren
-bo3ret
-bo4rete
-bo6ri.
-bo3ro
-bor6t7ef
-bor6tei
-bor4tes
-bor6t7et
-bor4ti
-bort5s6
-b4o1s
-bose8te.
-3boska
-bo2sl
-bos5se
-bo4sto
-1bot
-bo4ta.
-bo4tak
-bo4tal
-bo6te.
-2bo7to
-4bot6r
-4bot4v
-bou3c
-4bo1v
-bow4e
-bo6y
-4bp
-b7pl
-br8
-1b4ra
-bra5ka
-brak5s
-bra5se
-bred5sp
-brei5e
-brei3s
-bret7te
-b6rev
-brevi9er.
-bre4vin
-bri5a
-b4rio
-b2ro
-bro9ar
-bro1s4
-3b4ru
-bru5ke
-bruk4s3
-bru4na
-bru7na.
-bru5nes
-bru5pl
-bru7ren
-bru5sa
-brus4l
-1bry
-bryn4s
-3b4rø
-brø5de
-bråe6
-brå9ne
-brå5te.
-6b1s
-bs4e
-b5s6e6a5m4
-b4s5el
-b5s6i
-bsk4
-b4sli
-b2sm
-b2s1of
-bs2t6
-b6st7f
-b7s6v
-bså5
-6b5t
-b7t6s
-1b2u
-bu4ar
-4bub
-bu3da
-bud5d6h
-bu3de
-4bu3em
-bu4en.
-bu9ene
-bu4er.
-bue5s
-bu1i
-bu6is
-6buki
-buk3l
-bu5la
-bu4le.
-bul3le
-bun7de
-bund4s3
-bun8ge.
-bunk3r
-bunnla8ga
-bunn3s
-2bu3o
-bu1p
-bu6ra.
-bu4re.
-4bu3ro
-bu3ru
-bus6e
-bu4se.
-bus4h5e
-busk7ø
-bus6sek
-bus4sel
-bus6sent
-bus6set
-busse6te.
-bus6sj
-bus4sn
-bus4sp
-bus4st
-buss3v
-bu1st
-4bustr
-4busy
-bu1ta
-bu4tal
-bu7tem
-b5utg
-4butst
-bu2tu
-bu1tø
-4buv
-6buø
-2b1v
-4b5w
-1by
-bya2
-by5al
-by9are
-by7dep
-by4en.
-by7ene
-by5ens
-by2er
-by3ers
-by4ge.
-byg3l
-3byi
-by1lo
-4bylø
-by5n
-by1re
-by6re.
-by1s
-5bys.
-4byse
-6bysi
-6bysp
-byst4
-by4ste
-4bysv
-by5tar
-by4te.
-by1tr
-2by5v
-bæ5rar
-bæ6rar.
-bæ4re.
-bæ5ren
-bæ5rer.
-bæ5rere
-bæ5res.
-bæ5ret.
-bæ3ri
-bæ4r5is
-bæ3ru
-1b4ø
-bø4e
-bø7ens
-bøf3
-bø4kes
-bø6la.
-bø6le.
-bø2n
-bøne5
-bøn6nes
-bøn7o
-bø6re.
-bør4s5k
-bør4sp
-børs3t
-børs8ta.
-børs3v
-bø5ta
-bø1v
-bøy7ar
-bøye5
-bøy4ene
-bøy4es
-bøy4et
-1b4å
-bå4de
-bå9des
-bå6e
-bå7ene
-bå4la
-bå1re
-bå6reg
-bå4rep
-bå4s3te
-bå6s7ti
-bå6t5j
-bå6to
-båt5r
-1c4a
-cab4
-ca4e
-ca5le
-ca5me
-ca5mo
-ca4pe.
-cap1r
-ca6pris
-ca3ra
-car5n
-ca5ro
-car4te.
-ca2sa3
-ca6set
-cash5
-ca5s4til
-cas5to
-ca1t
-cath5
-ca3th6r
-ca4to.
-6cb
-4cc
-c1ci
-c2d
-cde6
-cebo9
-ce3d
-ce1i
-1cel
-ce5le
-cel4les
-cel4lev
-3cen.
-ce4ned
-ce4nee
-ce4nem
-ce4ne5s4
-ce5nes.
-ce4net
-ce4nev
-5cens
-cen4ti9m
-cen6to
-ce5o4
-1cer
-cerba6ne.
-ce3re
-ce1ro5
-cer3t
-6ceru
-cest3o
-2ch.
-cha5le
-3cham4
-cha7ne
-cha5t
-2chb
-4chei
-chel5s
-che7te
-chi4li
-4ch3h
-6ch5m
-4chn
-ch5ne
-chom4
-cho5s6
-2chp
-8chs
-6cht
-ch1v
-ci1c
-3cid
-ci2e
-cie8n
-cie2s5
-cil5l
-ci3ne
-ci5ta
-2c6k
-ck5ar.
-ck5art
-ck1en
-ck3er.
-ck4ere
-ck5e4t3
-ck5et.
-cke8y5
-ck1i
-ck1k
-ck1o2
-ck7r
-ck5s2
-cku6
-ckup3
-ck9ut
-c2l
-clai4r5
-cly4
-c1m
-cmini4
-coa6
-coat5
-co6bid
-1co4c
-2cod
-6cof
-6cog
-co4la.
-co4lab
-co4lak
-co4la5r
-co2m
-co5ma
-com5t
-co6n5os
-con5s
-con7t
-co2o
-co7pa
-2cor
-co3r6a
-co1re
-co4so
-4cost
-co4ver
-c1pr
-cr8
-cras4h
-crack4
-cre2e
-creen7
-cros2
-5cru
-4c4s
-4c1t
-c6ta
-cty5
-1cu
-4cu.
-cu5la
-cu5le
-cu5lu
-cup1l
-cu6po
-cup1r
-cup7s
-cu4på
-2cur
-cures4
-cu6t
-cy2a
-cy6p7
-cys3
-c6z
-cæ5
-1da
-4daa
-4daber
-8dabo
-d5abs
-6d5adel
-d4adg
-dadø4
-dadør5
-4daef
-2daf
-5dagb
-da4gev
-4dagj
-dag7l
-da6go.
-da4g1r
-da6gun
-4dagå
-4dahe
-5dahl
-da1i
-2daka
-4dako
-4dakr
-dak4se.
-4daktig
-da5kv
-7d6al5j
-da1la
-da8la.
-da4las
-6dalau
-dalbu8er
-4d5ald
-da4les
-dal6so
-da1lu
-da4ma.
-da4man
-da3mas
-da4me.
-da3men
-4d7ameri
-dame3s
-dame5t6
-da3mo
-dam7pe
-5dan.
-6danal
-d8ane
-9dani
-2d1anl
-3dann
-dan5neb
-4danno
-7dano
-d4ans.
-dan3sa
-dan4sel
-dan9s8kan
-4dansv
-9dant.
-9danti
-8dany
-2da3o
-2dap
-da3pe
-d3app
-3dar.
-5dara
-2darb
-dard3s4
-4darea
-da4res
-d5arn
-da2ro
-dar5os.
-dar5s6
-dar4ta.
-dar6va.
-dar8ve.
-4dasei
-2dash
-6dasi
-4dasjef
-da4sk
-da9sko
-6dast6r
-6dasu
-data5
-4da4tal
-data6le.
-datali8na
-da4tek
-7d6ato
-da3toa
-4da5tr
-dats6j
-d6aud
-daud7s8
-dau5go
-2daut
-2dav
-d5avb
-d5avis
-d1avl
-d3av5s
-4daø
-2d1b2
-dba8le.
-dba4ne.
-dbe5s6t
-dbe8ta.
-dbe6te.
-dbling7
-dbo6en.
-d6byf
-4d1c
-6d1d
-d2dad
-ddag4
-d4dak
-d4d5arm
-dd3eie
-d2dek
-dde4lap
-dde4l5o
-ddel5sv
-d4demi
-dder5s
-d4desu
-ddie8
-d7dom
-d8d7orm
-d4d1re
-dd5run
-ddsa4
-dd4sala
-dd4skap
-dds5tab
-dd3s4te
-dds5tr
-d2dyb
-ddø2
-ddør3
-d4d5øy
-dd1år
-1de
-2dea
-deak3
-de2al
-de7b
-6debar
-4debas
-3debat
-2debe
-4debl
-2debo
-5debon.
-2debr
-3debut
-2deby
-4debø
-de1c
-5ded.
-2deda
-6d7edd
-7dede.
-4dedek
-4dedel
-4dedia
-2ded4r
-2dedy
-2dee
-5dee.
-de7er
-2def
-d5eff
-d5eft
-2deg
-6d6e5ge
-5degg
-de3gl
-2deh
-5dehavs
-2dei
-dei4d
-dei4ene
-3deig.
-dei8ge.
-5deigen
-dei4g5r
-5deik
-d2e1in
-3deir
-de5is.
-de3ist
-7de7it
-2dej
-8deka
-2deke
-2deki
-2dekj
-5dekk
-dekk3a
-dek4kan
-dek4kel
-dekk8s
-dekk7s6t
-de6k6kv
-dek2l
-6dekly
-5dekni
-de5ko
-4dekod
-4dekon
-4dekos
-2de5k6r
-dek6st
-deks7ti
-deks6tr
-5dekt
-2deku
-4dekv
-4dekø
-4dekå
-d4el.
-6delad
-6delage
-de6lans
-4delau
-4deled
-de4lef
-4delei
-del5ei4d
-del5eie
-4de4lek
-de5lele
-4d5elem
-de4lest
-6d3e4lev
-4delid
-6delinj
-del5int
-4delis
-4deliv
-del4lap
-del6lei
-del4lek
-del6lerf
-del6lig
-d4els
-del4s5at
-del3se
-delses7
-del4si
-del4spo
-d4elt
-del6tala
-del3te
-del7tr
-6deluk
-de8l7ur
-del5ve
-4dely
-4delæ
-2delø
-delø6pa.
-6deløy
-2delå
-2de5ma
-d3emb
-2deme
-demie4
-4demj
-dem8na.
-de4mo.
-de4mog
-5demok
-4demol
-demo5no
-5demos
-dem5pe
-3demr
-5dems
-4demu
-2demø
-2demå
-d2en.
-4dena
-de7nak
-6d5en6den.
-8d7en6dene
-6d5en6der.
-de5neb
-4dened
-6denel
-4denem
-4denet
-4denev
-6d5engen.
-4deni
-4deno
-de4nom
-d2ens
-den4sin
-den4s3t8
-den6t5ant
-4dentif
-4dentit
-dent3o
-den4tr
-dent5s8
-den6t5u6
-den6tå
-4denu
-2denæ
-2denø
-de2ob
-de4og
-2deol
-4deopp
-4de3or
-de4ove
-4depak
-4depap
-2depe
-4depi
-4depl
-6depu
-d2er
-der8am
-de6rant
-de4rare
-de4rark
-5de7rast
-dera5te
-der3av
-der5d
-4derea
-4dered
-de4r5edd
-de4ref
-4dereg
-4derep
-6deresi
-der5est
-8derest.
-6dereste
-4derett
-de4rif
-de4ril
-5derin
-de4rinæ
-der5k
-der5ne
-de5rob
-4derog
-4deros
-de5rose
-dero8se.
-6de7rot
-dero4v
-der5s6n
-der4sp
-der3t
-der5un
-de5rup
-6derus
-der3v
-4derør
-2derå
-de1s
-3d6es.
-2desa
-4desc
-2dese
-de5seg
-des5ers
-4desho
-de8s9hop
-desi4s5t
-2desj
-2desk
-9desk.
-5deske
-4des4le
-2deso
-2desp
-7despl
-6de5s6pr
-d4es2t
-5dest.
-5deste.
-des6tem
-de5sti
-4destj
-4desto
-4destrå
-4destu
-6desty
-de4s3tå
-6desup
-des6v
-2desy
-deså7
-d2et.
-2deta
-deta8ka.
-de3te
-4detea
-6deteg
-6detekk
-4detel
-4deten
-4detep
-detes7
-2deti
-2detj
-4deto
-4det6r
-2detu
-4dety
-4detø
-6detå
-2deu
-d1eur
-5deus
-2dev
-deva8ne.
-devi9er.
-3devik
-d7ev8n
-de5vu
-2dey
-4deø
-2deå
-2d1f
-dfø6rarar
-2d1g4
-d4gel
-d5gi
-dgi6n
-dgjø6re7n6h
-d3go
-2d1h
-dhav4s
-dheim2s5
-dhu9ga
-dhø4r
-1di
-di6ak
-di5alg
-dia5li
-di1ar
-dia3re
-dia1s
-dia7sp
-dias6t
-diats4
-2diav
-2dib
-did5ri
-di7ell
-di5en.
-4di5end
-di1er
-dies4
-3diff
-diffe5
-3diful
-4difø
-di8g9and
-di4gat
-di3ge4s5
-dig7g
-2digj
-dig8la.
-dig6le.
-4digren
-dig5ret
-4digru
-di2gu
-4dih
-4dii
-2dij
-di5ka
-di8ka.
-di5kem
-2dikj
-6dikn
-2diko
-2di1kr
-dik7v
-2dili
-dil4les
-di5ma
-6dimed
-6d5i6mel
-4dimes
-4dimet
-2dimo
-4d5imp
-4dimå
-di5na
-2d1ind
-di7nen
-4d5ingk
-din3gr
-ding8s5en
-ding6s5er
-din8g9å
-dini4
-di4ni.
-4d1inn
-2dino
-2dinv
-4dinø
-3diog
-7diol
-dio3na
-dio4no
-di3ori
-dio5tr
-2dip
-3dipl
-dippe7
-4dired
-4direg
-4d5irs
-5dis.
-di6sc
-di6sed
-dis4i
-disie5ne
-d6isk
-dis6kam
-di4skj
-dis6k7l
-di4sk6o
-dis5ko.
-dis7koe
-dis7ku
-dis5s
-dis1t
-dis7tik
-di5sv
-dis4vi
-2disy
-di4tal
-di7te
-4ditek
-dit4tet
-ditt3r
-di9us.
-di4va.
-4dival
-di7van
-4divek
-div6i
-2divu
-2diøk
-d1ja
-d1je.
-d1jen
-djer5ve
-d7jes.
-dje9ve
-d6jingan
-d6jingar
-d1jo
-dju8la.
-5djup
-6djupar
-d4jø.
-2d5k2
-dka8ra.
-dki6
-d5kj
-dko2r
-8d7out
-dku4le.
-4d1l4
-d3la
-dla4ga
-dland7as
-dla6te.
-dla4v
-d4ledi
-d2lef
-d4lega
-d7legar
-dle3ge
-dlei7er.
-d5leka
-d2lel
-dlem4st
-d4lenet
-d4leru
-dleva8ne.
-d5li
-dli4f
-dli5ke
-d5lo
-dly8se.
-dlø8pa.
-d5lå
-dlå9re
-2d1m
-4d1t
-dme6la.
-dmo4e
-dmors6
-dmo8s
-dmø4re.
-dmå6la.
-8d1n
-dn6a
-dno8de.
-1do
-2doav
-do2b3
-4doba
-do3be
-8do9b8lan
-2dobå
-do4da
-dodø4
-dodør5
-4doeu
-2dof
-d3off
-d5ofr
-dog6med
-dog4me5s
-2dogr
-6do5i
-do3ki
-4dokine
-dok6kan
-4dokn
-do5le
-4doled
-doli8ne.
-4dolinj
-6dolis
-4dolj
-dol5l4
-4domes
-do5mis
-4doml
-do4mo
-dom7p
-2domr
-dom8sa
-dom8s5e6
-dom6s5i
-dom4s3k
-doms3l
-domsla6ga
-dom4so
-do4mu
-do4na.
-don5g
-4donke
-6d7on6kl
-don5st
-don5t4
-2dop
-do4pa.
-do4pe.
-3dopi
-d6o1ra
-do5ran
-2d1ord
-dor4da
-do1re
-dor6gest
-d5orie
-dorm8
-do3ro
-5dorp
-3dorr
-dors6
-dors7ke
-do1ru
-do7rye
-5dos.
-do4se.
-do4set
-do1sk
-6do7s6l
-2doso
-4dosp
-2dost
-do3str
-4dotr
-2dov
-do5va
-do5ven
-do4ver
-dov9n
-4doø
-2d7p8
-5dq
-dr4
-d1ra.
-d5raa
-d9rad.
-d5rade
-1d6rag
-dra5gen
-dra6kes
-3drakt
-1dram
-5d6rang
-3drap.
-5drapa
-3drape
-d3rapp
-d1rar
-d6rarar
-d3rarb
-dra6ret
-d5rarm
-d5rarr
-d9ra8sa
-9dratt
-drau7ma
-2dre.
-5dreass
-2dred
-d5rede.
-d5reder
-dre7d6r
-d5reds
-9dreg.
-9drege.
-d3regj
-3dreie
-drei5en
-drei5er.
-drei7ern
-d5rej
-d6reka
-d7rekk
-3drekt
-4drel
-d7relig
-4drem
-d1ren
-4drer
-d3ret.
-d3retn
-d6retr
-d3rets
-drett4
-dretts5
-5drevet
-3drevn
-4dria
-3d2rif
-2d1rig
-d2rik
-d3rik.
-dri8ka.
-d3rike
-3drikk
-drik7s6
-d9rikt
-5d4ril
-2d1rin
-dring6
-drit7tr
-drit5u
-dritun8ge.
-1d2riv
-3dronn
-dro6pa.
-drop5s
-2d1ror
-3d4ros
-dro8ta.
-2d1rov
-dro5va
-dro3ve
-2dru
-3druk
-d1rul
-d1rum
-d3rup
-6d5rut
-2dryk
-drykk4
-d2rys
-d4røm
-drø6re.
-d7røt
-drø3ve
-5d8røye
-d1råd
-drå4de.
-3dråp
-8ds
-d5sa.
-d3sabl
-ds1ad
-ds3a6del
-d1sag
-dsa9ga
-dsak6se.
-d1sal
-dsa8la.
-d4s3alf
-d6sall
-d9same
-ds1a6n
-ds5ane
-ds1a2r
-d2sas
-d4satf
-dsbø6n
-d5se.
-dse4d
-ds1ef
-d2s1ei
-ds7eks
-ds3ela
-dsel4s5a
-dse2m
-ds3emi
-d6s7enda
-dsen8de.
-d4s3eng
-d5sens
-ds3e2p
-d7ser.
-d6serf
-ds5erk
-d4s5e4sk
-ds5e4st
-ds3eta
-dse4te.
-d5setj
-ds1ev
-d2s1i
-d3s2id
-d7sida
-ds5ident
-d4s5ide4o3
-ds3idr
-d7sil
-ds5ind
-d3sir
-ds3i4s
-dsi4ve
-d4s3jen
-d2sjo
-ds7jor
-ds6ju
-ds5kab
-d4s3kan
-ds3kar
-d4skat
-d1skj
-ds5kjen
-d6s5kjøt
-ds1ko
-d5skot
-ds3kro
-d4s1kv
-ds1l
-ds5la.
-ds5lan
-ds6lem
-dsli6k
-ds6lo.
-d9slott.
-ds4luk
-ds3ma
-d6smo
-dsmå6la
-ds3ne
-ds5no
-ds1o2
-d7somst
-d4s5os
-d7sot
-ds1p
-d3spek
-d3spel
-ds2pi
-d9s8py
-6d7run
-ds5s4
-dst4
-ds3tak
-d4s3tal
-d3s8tar
-d5s4tat
-ds6tau
-dss8t
-d8s9te.
-ds9teik
-dste6ma.
-d6s5temp
-ds5teo
-d3s4tig
-d3s4tik
-d5stilli
-ds1tj
-d3stor
-d3stri
-dstu8na
-d5stund
-ds3tv
-dsty8e
-ds3tyv
-ds1u2
-dsure6
-d5s6us
-d6s7usk
-ds1v
-dsva8ne.
-d3s4vet
-dsvi6ka.
-d5syk
-d3syn
-dsy6na
-ds1yt
-d2s1ø
-d6sør
-ds1å6
-6dt.
-d3t4a
-dta6la.
-dta4le.
-dta4s
-d3tem
-dte4ma.
-dt4eng
-dterle7
-dte4se.
-d5t4et
-d4tg
-d3ti
-dt6j
-d7to
-d5t4rag
-d6troc
-d5t4rø
-d6t1s2
-d3t2va
-dtø8
-dt6øk
-dtørs3
-dtå4
-1du
-dub5b
-dub5l
-du1c
-du9ene
-du9ens
-due5s
-4dufo
-3dug
-4dugu
-duit6
-du6ka.
-dul5l
-4duly
-dums2
-du4na.
-dun7de
-4d5uni
-dun5s6
-dun7sta
-7duo
-d3upk
-dupp6e5
-3dur
-du6ra.
-du6re.
-du6rei
-dur8ta
-du1s
-du5s4a
-du9sem
-du5s2i
-du2sk
-du2sl
-du2sp
-duss4
-dust4
-du2sv
-2d1ut
-d6utt
-du6va.
-du4ve.
-2d1v
-5d8va6le
-dva4ne.
-dve6s
-dve6va
-dve8ve.
-d7vo
-dvo8r
-2d1w
-1dy
-dy9a
-2dyba
-2dyf
-dy5ke.
-4dykl
-4dykø
-2dyl
-dy4na.
-dy4ne.
-4dynk
-dynk6s5
-dy3pes
-dy2p3r
-dy4ra.
-dy5reba
-dyrle8ge.
-dyr5s4
-dy2r5u
-dyr5ø
-7dys.
-dy8sa
-4dyse
-dy6se.
-dys7s
-dyst7r
-dy2t
-d5z
-8dz.
-1dæ
-dærs4
-1dø
-4dø.
-død2s1
-dø3gr
-2døk
-d5økn
-dø4ma
-dø4pe.
-dø4pen
-d2ør
-dør3i
-2døs
-d6øs.
-dø2st3
-døt3
-dø9va
-dø3vel
-dø1vi
-6døvl
-døv8le.
-2døy.
-døya8
-døy8g
-4d9øys
-1dåd
-dåd6s5
-då8na.
-1dåp
-då8ra.
-då5ri
-d3ås.
-då8sa.
-d8åse
-då7sem
-d7åt.
-2ea
-e1a2b
-e1ad
-ea2d1i
-eadli5
-e1af
-ea2gu
-e1a2k
-e4akr
-6eakt
-eak6se.
-e1al.
-e5alle
-eal8le.
-ea4lov
-e3alte
-ea2lø
-ea4m1
-e3aman
-e5amn
-e1an
-e2an.
-ea4ne.
-e6a5net
-e4ani
-ean7n
-ea4nor
-e6ans.
-ean3sl
-e1ap
-ea4pe
-e1ar
-ea2re
-ea5rer
-ea5ret
-ea5r4i
-ear6ka.
-ear8ma.
-ear4ta.
-ea2s1i
-e3asp
-e1ass
-ea7ta
-e5a4tel
-eate6ren
-ea4t3et
-eat8h
-eat6le
-e8ato
-ea5tri
-e1att
-e1au
-eau6ga
-eau6ge.
-eau8ra.
-eau6re
-eau5s
-eau8sa
-eau8se.
-e1av
-eav8la
-eav8le.
-2e1b2
-eba3d
-eba4ne.
-eb3be
-eb4be.
-ebe4d3e6
-ebei7er.
-eben6s5k
-ebers6
-ebesku5
-ebet5s
-eb3h
-e5b6lo
-eblæ5
-ebob3
-ebo4da
-ebo5ers.
-ebo6kr
-ebo6la
-eb5s
-ebu4e5re
-ebu5ern
-ebu6et
-eby4ta
-ebø6n
-2ec
-e4ca
-ec4c
-e1ce
-e5cha
-e3com
-e2dad
-ed5ad.
-e5d4ag
-edag4s5
-e2dar
-ed3ark
-ed3arv
-ed7dela
-ed4dyr
-e3de.
-ed5e6ge
-ed5eg4n
-ed3eie
-e4deks
-ede8le.
-e4denf
-e8d5eng
-eden5t
-e6depr
-ede4ra
-e4derø
-e4desk
-ede4sl
-ede4sm
-e4desn
-ede4s5p
-ede4ta
-e6d5ett
-e8dé
-e5d6ia
-edi6a5ne
-edi4ene
-edi6gj
-ed4is
-edi3si
-edi4s5k
-3e4dit
-e7div
-edle6ge.
-ed8ob
-edok8se.
-e4dol
-ed1op
-ed1ov
-e1dr
-ed2ra
-ed3reg
-e5drev.
-ed3rom
-e6d5ryg
-ed7ski
-ed3skr
-ed3s4la
-ed2sm
-ed5ta
-ed3te
-edt6r
-edu8a
-ed7va
-edvi6s
-e3dyk
-ed5ynk
-edyr6ke.
-edæ4
-e3d6ø1r
-e3e2
-eea7
-ee3b
-e2ed
-ee3di
-eeg4ga
-eeg6n
-ee5gå
-eei4d
-eei7ni
-eek1e
-eek4te
-ee3la
-e5e4li
-eem6na
-ee4n
-e5enb
-een3in
-e5en6k
-een5t
-e3epl
-ee8ra
-eer3en
-ee3ri
-e4er3l
-eer4me.
-e6e5sh
-ees8ka
-ees6ke.
-e3e6t
-eev4ne.
-e1f
-4efa
-efal6s7
-e4fana
-ef3ank
-e4fark
-efar6s5
-ef7ea
-ef5ef
-ef3fe
-3effek
-ef3fo
-4efi
-e4f3id
-e5fig
-e5f4ilm
-efi7ren
-efisken8
-4e3fj
-2efl
-efle6ge.
-eflå3
-e2fn
-efo8bi.
-efo4no
-8efr
-ef2sj
-ef2sk
-ef2sp
-ef6str
-e8ft
-ef2ta
-efta5r
-eft5ei
-ef5ter
-eftle8ge.
-eft1s4
-6efu
-efyrs5
-e3fæ
-4efø
-efø5le
-eføy9
-2ega
-e3gaf
-e6gala
-e7gam
-ega4ve.
-egde8l
-eg7des
-e5gedo
-egei9e
-ege4let
-e2gem
-e3geme
-egen5s
-3e4gensk
-e7geom
-e2ges2
-ege5sp
-eg9gen
-egg3l
-eg8g9ut
-egi3an
-egie2
-e4giko
-egis4p
-e3g6lad
-e3g4led
-eg7lesa
-e5g4lit
-eg7ly
-e5g6lø
-6egm
-e9g8nag
-eg4nem
-eg6no
-e7gnå
-4ego
-e4go.
-7egoi
-eg2r
-egrans5
-e7g8rø
-egs4am
-egs4ki
-egs4ta
-e1gø
-egøy6e5ne
-4egå
-egå4va
-egå4ve.
-e1h
-ehea4
-ehei9e
-eh5er.
-e4h5ere
-eh7ern
-eher4s
-ehog5
-ehov2
-ehy6re.
-ehø8va
-e6hå.
-2e8ia
-e9iakt
-ei9a4n
-ei7ar.
-ei4c
-e8id.
-ei3d8ar
-e3idea
-e3ideo
-ei9der
-ei5det
-5eidf
-5eidg
-e6i2do
-e1idr
-ei3d4u
-e8i7e
-eie5d
-ei8eg
-eie2n
-ei9en.
-eier3a
-ei4ert
-ei6es
-ei1fl
-8eig.
-ei3ga
-eig6e
-ei6gev
-ei5gi
-ei6gra
-ei6gu
-4eii
-ei5kaa
-ei3ke.
-ei6kee
-ei6keh
-ei4kel
-ei6keri
-ei4ket
-ei1kr
-eiks3a
-eik6se
-eik4so
-4eil
-ei9led
-eil5egg
-e3illu
-ei3lo.
-ei9loa
-eil5op
-ei5los
-eil5s6
-4eim
-ei7ma.
-e5imag
-ei4m5a6l
-ei4med
-ei6mei
-ei7men
-ei4me5s
-ei4met
-eim9ett
-ei6mo
-8e1imp
-ei4n3al
-ei4nans
-ein5ant
-ei7nare
-ein1d
-4e3indu
-ei5ned
-ei7nel
-ein9f
-einga6
-ein3gr
-e4ini
-6ei6nit
-ein3k4
-e5inkar
-4e1inn
-ei4nom
-ei4nov
-einsi9d
-ein4s3l
-eins6o
-e4inspi
-ein7sto
-ei2n1u4
-ei3num
-6einv
-ei2n3ø
-ei5or
-e4ip
-ei9pa
-ei3pe
-eip5s
-2eir
-eir9ak
-ei7ren
-ei3ri
-eir5s
-2eis
-ei5sar
-e4ise
-ei3se.
-eise5i
-ei3sen
-eiseri9e8
-ei3s4ha
-ei4sil
-e3isk.
-e3iske
-ei6s3kj
-eis3ko
-ei3s4pe
-ei4spi
-ei4tek
-ei4tera
-ei4tere
-ei2to
-eit7ta
-ei6t7ut
-ei3tve
-ei6t7ø
-ei4vak
-eiva9r
-ei9ven
-ei3vi
-eiv5s4
-e1j
-ejo8en.
-eju6la
-4e1ka
-ekali7
-ekalie6
-ekam6s5
-eka6ra.
-e5kavr
-ek3eie
-e4kero
-e4kes
-ek5e4ta
-e6key
-e5k6hov
-e1ki
-e4ki.
-4e1kj
-2ekk
-ekke7le
-ekk9ist
-ek1kj
-ek4kjø
-ekk3l
-ek5kok
-ekko5v
-ek6ku
-ek4ky
-e1kl
-e8klane
-ek6leg
-e6klen
-ek5let
-e3klu
-e5klæ
-ek2lø
-4ekn
-ek9na.
-e3knek
-ekne7s
-ekni7p
-ek3no
-e3k4nok
-e1knu
-e5knø
-e1k2o
-e4ko.
-eko7le
-ekords8
-eko6te.
-e4kov
-2e1kr
-e3k2ra
-e3k4red
-e7kref
-e3kren
-e4k5ret.
-e5krets
-e5k4rev
-e3k2ri
-e3kro
-ek4ry
-e3k4rå
-ek5råd
-ek3s4ak
-ek4sal
-3eksam
-ek3sel
-3eksem
-ek4sig
-eks1k
-ek4ska
-ek8sn
-1eksp
-eks5pe
-ek4sta
-ek7s6tel
-ek3sti
-ek4stil
-ekst5o
-ekst3å
-ek4sæ
-ek6t7arm
-ekt3av
-ek3tef
-5ek3tep
-ek5tes
-ek6test
-ek4tid
-ekti5m
-ek5tiv
-4ekto
-ektori6a
-ek4t3ra
-e6k6t7ro
-e1ku
-eku4le.
-e1k2v
-ek4val
-ek6var.
-6ekve
-e4k5ve4d
-e4k5vik
-ek4vin
-ek6vis
-3ekviv
-6e5kw
-e5ky
-eky6te.
-e3kæ
-e1kø
-e1kå
-ekå6pa
-2e1la
-ela4ga
-el3agg
-e2l1ak
-e5lake
-elak8se.
-el7akt
-el1al
-e8lame
-el3anl
-e6l5arg
-e4larr
-el7arti
-e5las.
-e5lase
-ela4te.
-el5ato
-el5avl
-el3avs
-elbo8da
-el4ch
-el5do
-eld4rer
-eld5sle
-4eled
-e4ledi
-e4ledr
-e3lee
-eleg5d
-ele7ger
-eleg8na
-e7leir
-e7leis
-e5leke
-e2lel
-e2lem
-e5lem.
-e5lemat
-5elemen
-e5lemet
-e3lemm
-e3lemp
-4elen
-ele9na
-e4l5enh
-elens3
-e4lentu
-e5lepa
-2e3ler
-ele8ra.
-e7leret
-e6l7erg
-ele3sk
-e6lesku
-e4leta
-e4lete
-5e8lev.
-ele4vak
-6e5levn
-el5fi
-el9ga.
-el5gele
-el5gi
-elg3s8
-2eli
-e9lie
-eli5e6rer
-e4lif
-e4li5g4r
-e4l3ind
-elin5es
-e4linsp
-eli6o5s
-eli8ta.
-eli4tet
-6e5litt
-eli6v7en
-el1j
-elk2
-el6k5al
-el4ke5s
-el4kete
-el3kn
-el5la.
-el5l6ar
-el4led
-el4leg
-ell5eie
-el5ler
-el3le4s
-el6lete
-elli7ga.
-el4lisj
-ell7sa
-ell5sk
-ell5s4l
-ell5sp
-ell5sv
-el5l4ur
-el4læ
-el5m4o
-el5mu
-el5n
-2e1lo
-elo6ka.
-e2lom
-e3lomm
-el3omn
-el3oms
-el1op
-e2l1or
-e3lort
-el3ost
-el4ot
-elo7vers.
-e4l5ovn
-el4pet
-el5ph
-elro4s
-el4sei
-els5eie
-el3sen
-el3se6s3
-el3si
-el4sje
-el4skal
-7elskand
-els5kare
-els1l
-el6sno
-el4spe
-el3spr
-els4ten
-el4sti
-el4stj
-el2sø
-els5øk
-el5s6åpe
-elta8le.
-el5te.
-el6teg
-el4tero
-el4t5ett
-el4t3op
-el4tro
-elt5rop
-el2tu
-e3lua
-e1lu2e
-e4lu4he
-e3luk
-e7lum
-el3ung
-elun6ge.
-e7lup
-elu8pe.
-e1lur
-e7lus
-el3utr
-elv3an
-el4ve3d
-el4vei
-el6vere
-elv1r
-5elvs.
-elvæ6re.
-4e1ly
-ely8et.
-el5ynd
-2elæ
-elæ5res
-el9ærv
-e6l5æt
-2elø
-e4l3ø4r
-el3øy.
-el5øya
-el5øyd
-e6l3øyn
-2e1lå
-el1år
-e5låt
-4em.
-e2mad
-emafo5
-ema4ge.
-e4magr
-e2mah
-ema4ke.
-e4mako
-em5akti
-e4maku
-ema6le.
-5e4malj
-e4mam
-e4mana
-ema4ni.
-e6manu
-e4mare
-em7ar8m
-e4masi
-e6masku
-e4mata
-ema3uk
-ema5ve
-5emball
-3embed
-embe6r5
-3embet
-6emd
-8eme
-emei9e
-eme4li
-e4mend
-eme5tri
-eme6trisk
-em5e4v
-e4mib
-emi5ert
-e4mig
-4emin
-emi5ni
-emini6st
-e4minor
-e6mir
-emi9sa
-em7je
-e5mju
-em5le
-emle6s
-em5me.
-em5men
-em8mi.
-8emnd
-em4ne.
-em4ned
-em4nem
-6emni
-emo5nol
-em1op
-e2m3o4v
-em4ped
-em6peri
-em2p3l
-emp9lane.
-em6pli
-empo3
-em4pol
-em4pos
-em4ses
-emse8te.
-em4s5ju
-em4s1l
-em2sn
-em4sor
-em1st8
-ems4te
-ems3u
-emta8la
-em4til
-e3mug
-e2muk
-e5my
-emy4k
-6emø
-emø8r
-e5møy
-emå4la
-emå9lan
-emål4s
-em1å8r
-2ena
-en1ak
-en3ald
-ena5li
-en3all
-en5and
-e5nane
-e6n7ang
-e4n3ant
-e5nar.
-en8are
-e4narr
-en3ass
-enat6s5p
-ena2v
-en3avi
-4enb
-enbe9na
-en4d5and
-en4dek
-en3del
-endelø7se
-en5demi
-en3der
-en4desl
-end5l
-1endr
-en4d3ro
-end3st
-en7dø
-endø4r
-endør5e
-en5egg
-eneg8ga
-en3eie
-en5eks
-e3nekt
-4enem
-2enen
-en5eng
-3energ
-e4nesk
-4enev
-ene7ven
-eng6a
-en7gar
-en4gem
-en4geri
-enge6r5u
-en4gle
-eng4les
-eng4r
-eng3s4e
-eng5so
-eng5sp
-engs4ti
-en4gut
-en4g5å
-4enhj
-e4ni.
-e4nierk
-e2nif
-e5nir
-en4kera
-en4keri
-2enna
-en9nal
-2enne
-en4nem
-ennes6t
-enne4s5v
-enn2i
-enn2o
-enn4sj
-enn5sta
-enn7ø
-2eno
-en3ok
-en3og
-e8n7old
-en3om.
-en1op
-e6n5ord
-2enp
-en4pås
-en4rem
-en5sab
-ens5af
-en6s7a6ker
-en4sek
-en4seli
-5ensemb
-en4ses4
-ense3u
-en3si
-ensi8de.
-ensi5ert
-en4sim
-ensle7g
-ens6lev
-en7s6opt
-en1st
-en6s7tal
-ens4ter
-ens4ti
-ens7und
-ens4ve
-ensvi6
-en2sø
-ens3øk
-ens7å
-en5ta.
-en4tap
-en5te.
-en4tec
-en4teg
-en4tel
-en3ti
-en5tie
-en5tig
-en5tik
-en9tima
-en7timen
-en4to4r
-ent5ori
-ent5rab
-en4tre
-ent5ren
-en4t5rol
-entropi5
-en4t3rå
-en6tul
-entun6ge.
-3entus
-2enu
-e2n7ul
-e4n5ur
-2en3v
-4enw
-e4ny.
-e2nyb
-e6nyr
-e2nys
-e4nyta
-4e7næ
-enæ8m
-enø4k
-e2n3øv
-en5øyd
-4enå
-en1ås
-en6ås.
-e3o6
-eo3a
-e6obe
-eo2bl
-eo5d
-eod8de.
-e1og1
-eo7gr
-e2o1i
-e2ok
-e3oks
-e2ol
-e4o7lo
-eom1s4
-eon8de.
-eo5ne
-e7onk
-eon4kl
-e3ont
-eo2p
-eo3pa
-eo5pl
-eopo3
-eopp5r
-eo3pr
-eor4da
-eo9re
-e2ori
-eo4rid
-eori5e6
-eo4rik
-eo4ris
-eo1ro
-eo1s
-eos6l
-e2o1u
-2e1p
-epa3t
-e6peno
-epe6p
-eper5r
-e3pes
-epe4st
-e4peta
-e6peu
-3epid
-epi6ka.
-epi7kr
-8e7pin
-3episo
-ep2l
-e8plen
-ep5lene
-ep5ler
-eple9s6
-3eplet
-epo6et
-3epoke
-epp2s
-ep6sem
-ep4ses4
-ep6s5lu
-eps1t
-ep2su
-e3p2sy
-ep6tin
-ept6r
-2e1ra
-e4r3abb
-era8da.
-e4rael
-e2raf
-er3aft
-e4ra4g
-e2r1ak
-e3rake
-era5kl
-eral3u
-e4rama
-era6na.
-e5rande.
-e5ra7ne
-er7anli
-era4no
-er5ape.
-er5aper
-er5a4pin
-er3apo
-er5appe
-e5rar.
-e4rarg
-e5rasane
-e5rasar
-e4rasje
-e4rask
-e6raso
-e4r3ass
-er6ast
-e4ratek
-era7tor
-e4ratr
-er5att
-e2rau
-er5auk
-erau9ken
-erau8s
-er3av.
-er3avh
-er5avl
-e3ravn
-er3avr
-er3avs
-4erb
-erbi9ti
-erbo8da
-erbo8de.
-er8byl
-erd2e
-er4ded
-erden8s
-er4dis
-er1dr
-erd4ra
-erd8re
-erd4skj
-erds3t
-erd4sto
-erdsto8ga
-er3d4v
-e1re
-er3eff
-er3eft
-er5e4gen
-er3eid
-er3eie
-ere6ka
-ere6ke.
-e4r3eks
-e6r5ekte
-e4r3e4le
-ere4lit
-e6relli
-e4r3els
-e9rem.
-e5remm
-er3emn
-er5enden
-e4r3eng
-e4r5enh
-e3re4o7
-er8er.
-e4r3erf
-e5reri
-er3ess
-ere4t
-e5ret.
-e4r3eta
-eret6h
-ere5to
-e7rets
-6erett
-eretts5
-e4r3e4va
-e4r5e4ve
-e4r3evn
-erev6ne.
-e8ré
-5erfari
-6erfi
-4erfr
-2erg
-erg5elv
-ergi3f
-er6gli
-er4go.
-erg5ret
-erg5sko
-erg5sp
-2erh
-erhø6re.
-e1ri
-e4riad
-e4riak
-erib3b
-eri3bl
-e4rice
-e2rid
-e5rid.
-e5ridn
-eri4kat
-e6rikn
-4eril
-e7ri6ma.
-er3ind
-e3ring
-6eringar
-ering6si
-er3inn
-er3ins
-er3int
-e5riori
-e5ris.
-e4risa
-eri3se
-e4riso
-e6risp
-e5rist.
-e7rista
-e5riste
-eri5stil
-e4ri5s6to
-eri5sø
-e4rite
-e4rito
-er7ivo
-er7jes.
-4erka
-8erke
-erkeri6e
-er4kesa
-er4kese
-er4kete
-er6k5ett
-3erklæ
-6erkn
-4er5k4o
-4erkr
-erland7as
-erle6ge.
-erle7s8t
-er3me
-ermo8de.
-erm1s
-ermå6la.
-2ern
-er4nad
-er4ned
-er5nede
-er6nee
-er4nero
-er4nest
-er2no
-er3nob
-2ero
-e3roa
-er3obl
-5ero4b7r
-e1roe
-er3off
-e1rog
-er5oks
-e1rol
-er3oly
-e1rom
-er5omk
-ero5mo
-e1ron
-er5ond
-erono5
-er1op
-e5rop.
-e7ro6pa
-e5ropen
-er1o2r
-e5ror.
-e3rore
-e7ro4sa
-3erosj
-er3osl
-ero4ta
-er1ov
-2erp
-2err
-er3ra
-er4rae
-er4rel
-errie9n
-6ersa
-ersa8ka
-ers6al
-er3sep
-6ersj
-er1sk
-er3ska
-ers4ka.
-er8skaran
-er9s6karar
-ers5kor
-er1sl
-ers4la
-ers6led
-ers4mi
-er5sne
-6ersp
-ers5tens
-ers5ter
-er7stev
-er1su
-4ersv
-er4sva
-ers4ve
-er1så
-er4s5år
-2erta
-er4tare
-er4te3s4
-er5tia
-er3tib
-erti4e
-er5til
-erti4mo
-er4top
-ert5rol
-4erts
-ert3sa
-erty6e
-ertå7ren
-2eru
-e1rua
-e5rud3
-e1rui
-er1u2k
-e3rum
-e4r3ung
-er3uni
-e3rup.
-er1u8r
-erure8
-e1rus
-er5ut.
-e5ruta
-e3rute
-er5utn
-er9uto
-e4ruts
-er7u6v
-ervele8
-6ervi
-ervs3
-ervæ6re.
-e1ry4
-e2r3ya
-erye7ne
-er1yr
-erys3
-e1ræ
-e9r4ære
-2e1rø
-er5økn
-e4røko
-er1ø4l
-e4r5øn
-e5r6ønn
-erø8ra
-e6r5ør6s
-er3øya
-e4r5øy7e
-erøy4n
-e4r5øys.
-er7øysk
-2e1rå
-e9rå.
-erå4da
-erå8de.
-erå6e
-erå4k
-er5åke
-er3å4l
-e2r1ån
-er3å4p
-er3å4se
-erå6t
-er7åta9
-e6råv
-2es.
-e1sa
-es5aa
-e2sad
-esag6
-es4al
-esa6la.
-esa9met
-e4s3ant
-es5arab
-es5arv
-esbi9e
-es8ce
-2ese
-es5ege
-es3ei4d
-es5eie.
-es3eig
-esei8ge.
-e3sek
-e4seku
-esel5s4
-e3s2en
-e5ser.
-e5sere
-e5seri
-e4s3erk
-ese5s2
-e3sest
-e4sesv
-ese5tas
-ese4te.
-e5setj
-e9sets
-e4seu
-e4sha
-es6har
-esh9ar.
-es4h5er
-e4shi
-e1sho
-e7s8hop
-esi6ar
-esi5ert
-e4sil
-e5sili
-es3ill
-e4s3ins
-esi6v
-esi3st
-es3jor
-e5skab
-es6ked
-es4kee
-es4ker
-8eskil
-e4sking
-eskinns5
-e1skj
-e8s9kjer.
-es4kjæ
-e6skjøn
-es5k4n
-e5sko.
-es7koa
-e3skot
-e1skr
-e1sku
-esku5et
-es3kvi
-e5sky
-e6skyr
-e1skø
-e7skå
-eskå7r
-e1sla
-es4lek
-es4let
-es7let.
-es7lets
-es4lit
-e4s5lok
-es4løk
-es4løv
-es4make
-e7s4mett
-es9na.
-es4ner
-es2no
-es4nu
-es2ny
-esnæ5re
-4e1so
-eso4b
-e2s3od
-e2s1of
-es3oks
-e2som
-e3somm
-e4s3ori
-e1s2p
-espa9ra
-es3pas
-es5pe.
-e4s4ped
-es5perm
-es3pl
-es4p5le
-es3pol
-e3spor
-es3pun
-es4sed
-es4see
-es4seg
-esse7i
-es6sendi
-es4s5enk
-es4ses
-es4sete
-ess5e4va
-es4s3ja
-es4sje
-es4skr
-ess4let
-ess3om
-es4sos
-es4spa
-ess5tilt
-es4stol
-ess5tor
-ess9tua
-ess5tue
-esstu8en.
-4essu
-es2s1v
-es6s5å
-e7stad
-es5tae
-es7takt
-es9tala
-e8stane
-e5stans
-es5tant
-es3tap
-e5start
-e3stat
-es5tato
-e4s3tau
-e7stav.
-est5avs
-e6s5te.
-es4teg
-est5eie
-est5eig
-es4tek
-es4tel
-e5stell
-es5tels
-e4stema
-e6steme
-e4stemo
-es5temp
-6esten
-e7steng
-es5tenk
-e8s7ter.
-e5s6terk
-esterne8
-este3s4
-es4test
-es4tien
-e3stif
-es4tig
-e3stik
-es4tikk
-5e6s5tima
-es4tis
-e4stiv
-e1stj
-es3t6on
-e4stog
-e3stok
-e3s4tol
-es6tone
-est5ord
-est5ori
-es5trak
-est5rene
-est5rer
-est9ré
-es5trib
-e5stryk
-e3strå
-e1stu
-e5stud
-es5tus
-8estå
-estå5ren
-estå6s
-est7åse
-e1su
-es5ut
-esva5re
-e5s4vek
-es5vig
-e5svikt
-es3vis
-2e3sy
-esy4na
-e4s5yt
-es5øvi
-es7øye
-e1ta
-4eta.
-e4tae
-e2taf
-etafo7
-e3tak
-e6tako
-e3tal
-eta3la
-eta4la.
-et5ald
-8e7tank
-eta5le
-4e5tall
-etal6list
-etall5s6
-etal4s7
-et3amb
-e6tand
-eta4nen
-et4ap
-e9tapa
-e5tape
-3etappe
-et8ar.
-et8are
-et5art
-5e6tasjes
-1e2tat
-4e5tati
-e5tato
-e3tatt
-et5aun
-e8tax
-et1c
-2ete
-e4teie
-e4teka
-ete4ma.
-e5teran
-ete5ru
-etes5i
-e4tesl
-et8et
-e5tet.
-e7tets
-4eté
-4eth
-et6her
-2eti
-e3tit
-2e1tj
-e7tjer
-et3jø
-6etl
-et5m
-2etn
-et6nev
-etning4
-etnings7
-2e1to
-eto4er
-et5oppd
-et3ord
-e4tot
-2e1tr
-e5t4rad
-e7t6rak
-8etre
-e5tree
-e5tref
-e4t3ris
-e9tru.
-et5rum
-ets1
-et9sar.
-et4sku
-etsku8le.
-ets7l
-etsla8ga
-etsnæ4
-et2sø
-et4tak
-et4tal
-etta6le.
-ett5alt
-et4tank
-et8tap
-et5te.
-et6tei
-et6telt
-et4tenk
-et4tenn
-ettera4
-etter5at
-et5t6erf
-5etterk
-5etterr
-ett5esk
-2etti
-et6tia
-ettian8
-et4til
-et2tj
-etto5a
-et4tr
-ett3re
-ett4ski
-ett4sti
-et3tug
-et4tur
-ettvi5se
-et2ty
-2e1tu
-5e6tui
-etu6na
-et3uni
-2e3t2v
-e4t3va
-e5t6vang
-2e1ty
-4etz
-4etæ
-etæ3ra
-e1tø
-e1tå
-etå5re
-e1u
-eu4a
-e8uf
-eug8la
-eu4h
-eu4ka.
-eu2ke
-eu5kem
-eu7kr
-eu2l
-eum2
-e3u2n
-eun4ge.
-eu5nu
-e4up5a
-e6upk
-e2ur
-eu6rat
-eure4
-2euri
-e3urn
-eur8na
-eur6ne.
-euro1
-3europ
-e3urt
-e2us
-eu4si
-eu1ta
-e3uts
-eut7t
-e4u3z
-e1v
-evad6r
-ev5akti
-eva4la
-evann4s
-e4v5anta
-e4varar
-e4varb
-e4v5ark
-e6vatf
-6eved
-eve5d6a
-eve5del
-6eveg
-e5vegg
-evei6s5
-6evenn
-even5s
-5eventy
-e4veny
-e9ver.
-e5ves.
-e5veta
-e5vev.
-evi4e
-evi5ere
-evi5ert
-evin4s
-evi4se.
-evis3t
-e2vj
-ev2na
-evn5a4k
-ev7nu
-ev7oms
-e4vre
-e7vri.
-ev9rå
-ev1s
-evs8v
-evta8la
-evti4
-e2v3un
-e5vyrk
-e2vø
-ew3a
-ey1
-eybal4
-e1y2d
-ey5k
-e1yng
-e1yr
-eyr6ka
-eyr4ke.
-e1y2t
-e7yti
-ey3tr
-e3zi
-e1zu
-e1æ2
-eær3
-e1ø4
-eør6na.
-eøy4
-eøy9an
-eøy7en
-e1å6
-eåk4
-eån8da
-eåt8t
-é1a
-é1b
-é1d
-édø4r5
-é5e8
-é1f
-é1g
-é1h
-é1i
-é1k
-é1l
-é1m
-é4n5e
-é5n6et
-é5o
-é1p
-é1r
-é2rj
-é1s
-ése2
-é1t
-é1v
-éva8la
-évo8re.
-é5å
-è1r
-è2red
-è2ref
-è2rek4
-è4rener
-è2rep
-ère3s2
-è4rest
-è2rev
-è6ves
-ê8lan
-ê6ra
-ê1re
-êr7o
-êr9sl
-1fa
-4fabo
-fac8
-fa1ci
-fa3de
-fa6de.
-6fadm
-fa4f
-fa2g1a
-fa5ger
-fage4t
-fag5eti
-fa2gi
-fa2go
-fa2gr
-6f5agro
-fag3sk
-fa2g1u
-fai5
-2fakr
-fakse9t
-fakta3
-fa1ku
-5fal
-fa1la
-fal6kes
-fal4k3l
-fal6lers
-fal5m
-fa4lo
-fal4sk
-4fa5mo
-fa4na.
-7fan5d
-5fane
-fanfa5
-fang4s
-fangst7ev
-4fank
-2f3anl
-fan5s6
-fan7tesk
-fan5ti
-fan3to
-fan4try
-6fanu
-2fap
-3far
-9f8ar.
-fa3ra
-fa4ra.
-fa4re.
-fa4res
-far4gel
-far4ges
-fa4rit
-far5n
-far6skj
-fart2
-far4vel
-4fary
-fa7sa
-fa4sel
-fa4seru
-2fasl
-fast3r
-fa3tal
-fa4te.
-fa6t7ers
-fa1to
-fat2r
-fa3t6re
-fav5ne
-fa1vø
-2f1b
-fba4ne.
-2f1d
-1fe
-3fe.
-2fe1a4
-5fea.
-fe5a6l
-2fec
-fe4da
-3fede
-fe2dr
-fe3dra
-fe3d4ri
-fe7ene
-2fef
-2fe3g
-2fehj
-fei9en
-fei9er
-feig4de
-fei5ge
-feil5es
-fei4li
-9fein.
-7feine
-fei7ter
-8fej
-2fek4a
-4fekl
-2feko
-4fekr
-fek6tes
-fekt5ev
-fe5lag
-fe5len
-fe5li
-feli7e6
-6felik
-felles5
-fel7læ
-2felo
-fel5ok
-fel9ta.
-fel4tek
-fel4ti
-fel4tra
-fem5ak
-fem9b
-fem9ne
-fe4mo
-fem5s
-fem4tid
-fe2m1ø
-5fen.
-4fena
-fend9r
-4feni
-5fens
-fentleg5
-2feo
-2fe3p2
-5fer.
-fe6ral
-4feram
-fe5ras
-fer6at
-fer4dam
-fer5de
-4ferea
-4fereg
-fe4rek
-fer6en
-fe7rer.
-fer5ers
-feri6e
-feri8e5ne
-7fern
-fer2r
-fers9kar
-fers7ke
-2fe1ru
-3fes.
-2fesi
-2fe1sk
-fe2st
-fes9t6i
-fes8t3r
-fes9tum
-fe6st9ø
-4fesy
-fe6ta.
-4fetap
-fe4te.
-4fetea
-fe5ti
-4fetil
-2fet6r
-fett5j
-fett7s6
-4fe4ty
-2feu
-2fev
-fe4ven
-2feø
-fe6øy.
-2feå
-1fér
-2ff
-f7fa.
-f4fab
-f2f3a2g
-f4f3ak
-ffa7l
-f6fann
-f4farb
-ffar6d
-ffa7re
-f9fas
-f6fat
-f8f9au
-f2f3av
-f2feb
-f2fe3d
-f2fee
-f6feh
-ffel7t8
-f2fem
-f6ferdi
-ffe4rer
-f2fes
-f4feti
-f4feto
-ff5eve
-f2fib
-f4fice
-f2fid
-f9fien
-f4finn
-ff5int
-f2fip
-ffi5s4
-f2fj
-ff3la
-ffla8ga
-ff9leg
-ff5lek
-ff3li
-f2fo
-ff4ol
-f2f3re
-ff1ro
-ff5sl
-ff5t4
-ffu6r
-f6f7ut
-f3fæ
-f4fø
-2f3g2
-2f1h
-1fi
-fia7l
-fia4n
-4fiap
-fi4as1
-fibi6en
-fi9cen
-fici7
-fi7di
-fie2
-fi1er
-fi7e6re
-fi4f
-fi5fi
-fi5fo
-fi7fl
-f6ig
-figh9t
-fi7g6r
-4fih
-fi9ka
-fikali7
-fikalie6
-fi7ken
-fik6ka
-fik6k5n
-fi5ko
-fik7sa
-4fiku
-fi4la.
-fi3li
-fil6lel
-fil6leri
-fil4les
-fil7leti
-fil8m7at
-fi1lo
-filt6re
-fil7tres
-fil4tri
-4filæ
-fin5art
-fin5d
-fi4ne.
-fi5ner
-fing3r
-6finj
-finn5ei
-6finnsa
-fi4n3o
-fi9nor
-2fins
-fin6sleg
-fin6te5s
-fi2nu
-7fio5
-fi2r
-fi3ra
-fi6ra.
-fi9rene
-fi5res.
-fi3ri
-fi5s4a
-4fisc
-fi6se.
-fiser6s
-fi8si.
-fi2sk
-fi6ska
-fisk5a6d
-fis7kal
-fisk5and
-fis6kart
-fis6k5end
-fis4k3l
-6fiskol
-6fisku
-fis5ti
-6fistu
-fiti6me.
-4fitr
-fitt5s
-fi7ty
-fi4ve.
-1fj
-f1jeg
-fjel6lend
-f5jen
-fjer5ne
-fje4sk
-fje2t3
-f5ju
-fjære5
-fjæ4res8
-2f5k6
-f2l2
-f5lag.
-f6lagg
-fla7ke
-f4las
-2fleg
-fle6i
-f4lek
-f6lel
-fle6r5u6
-fle4sl
-f4lett
-f3lev
-fli7ne
-flis7t
-flit9t8
-1flo
-flo9ga
-flok9s
-flo2m3
-flo6r5o
-flos6kl
-f6lu
-flue3s
-flus8
-fl5ut
-3fly
-fly3s4
-f3løn
-flø5s
-1flå
-flå9sa
-flå7se
-2f1m
-fn6
-1fo
-2fo.
-fo9ar
-6fobs
-2foe
-4fof
-foi7la
-fo8ke.
-fo6la.
-fol4dr
-fo4le.
-fo5led
-fol6k5v
-fol9ler
-fol5lese
-folke5s6
-fol5li
-fo4lu
-3fon
-fo4na
-fond2
-fo5ne
-fo3n4id
-fo4nin
-fon1s2
-f1op
-for1a
-for9drev
-for7dro
-for5d6u
-fo6re.
-for9ei
-for7e6n
-for5ent
-for5ess
-for4et
-for9e8te.
-for9e8ten
-for9g6
-forh6
-fo4r9in
-fork8
-forlo7v
-forlø9pa
-forlø9se
-formo9r
-for3n
-foro6
-for5p4
-for3se
-forsi9da
-forsi7de.
-for3s4m
-fors8t
-for9ste
-fors4v
-forta8le.
-for5t6e
-fortei9e
-for7t6i
-forti5da
-for3t4v
-for3u4l
-for7v6
-forva9re
-fo8r5æ4
-for5ø4
-for9å
-fo9se
-fosfo5re
-4fosj
-fo4ta
-fo6te.
-foto5
-fo4tok
-fo4tom
-fo6top
-fo4tor
-fot3s
-fots6v
-fot3t
-4f1ov
-3fô
-2f3p2
-fpo6e
-fr2
-1fra
-fra5l
-fra4m5e
-fra6mi
-framma8ne.
-franko5
-fran7se
-fra7r8
-fra1s
-fra5se.
-fra7sep
-frasi8e
-fra7sk
-fras6p
-fra7v
-fra7v6r
-f2re.
-fred8sel
-freds5t
-fre4e3
-8freg
-f4rek
-fre4m5
-fremma8ne.
-frems4
-fre7ne
-fre6sk
-fres7ko.
-fres5koe
-fre8s9v
-fri5a6re
-6f5ridi
-fri4erf
-f1rin
-fris6ka
-fri5s4p
-fri5s6til
-frite8re.
-friti8me.
-6froc
-fro7f
-fronta9le
-fro8st
-frus1
-fruta6le.
-f1ryt
-frø5b
-f4røk
-frø7ko
-frå9r
-fråve4
-2f1s
-fs2h
-fsho6
-fsi2
-f5sjuk
-f2sl
-fsle6ge.
-f4sm
-f2sn
-fs7ne8
-fs5ov
-fs2t
-f2s3tab
-f6s5tan
-f4s9v
-2ft
-f1ta
-f3ta.
-fta7f
-ft1ak
-fta8la.
-ft3alg
-f2t1am
-f4tana
-f7tane
-ft3anl
-f5tar.
-ft8as4
-f6t1av
-f2tea
-f3ted
-f4tee
-f2teg
-f2tei
-f2tek
-f6tem
-fte4na
-ften3d
-f4t3enh
-ften5s6v
-f2teo
-fte4r5a4
-f4terin
-fter5s
-f4test
-f4teta
-f4t5ett
-f8t7id
-ft3ind
-f2t5i4s
-ft5l
-ft7n
-f2t1o2
-f5tog
-3fton
-ft3r
-fts5alt
-fts3ei
-fts5ers
-fts5erv
-ft2s1i
-fts1k
-ft2skaf
-ftsla6ga
-ft5s4lan
-ftsle6ge.
-ft3sto
-ft6s5top
-ft5s6tri
-ft5stø
-fts1u
-ft2s1ø4
-ft5t4
-ftta8ka
-ft1u
-1fu
-fu8ga.
-fug9le.
-fug6l7eg
-fu6le
-full3
-ful9lar
-fulle6
-ful9le.
-ful4len
-fullen8de.
-ful4ler
-ful7les
-fullfø7re
-funn2
-funns3
-funnsla8ga
-fu6ra.
-fu6re.
-fu9ret
-fu7ro
-furu1
-fu7sel
-fu6sk
-fus6o7
-fu4s5t
-fut4h
-futu1
-4f1v
-fva8la
-1fy
-fy5la
-fyr2
-fy8ra.
-fy4r5a4b
-fy1re
-fy4re.
-fyr7k
-fyr8ke.
-fyr5t
-fy3s
-fysa7
-fy8sa.
-2fæ1
-1fø
-fø4da.
-fø4dek
-fø5den
-fø4des
-fø5des.
-fødsel8s7
-fø1f
-2føk
-fø4le.
-f8ør
-før6a
-fø5rar
-fø4re.
-fø4res
-fø7resv
-fø8rete
-før6tin
-4få
-få7ren
-få7ret
-få5ri
-får7u
-få7va
-1ga
-4gaba
-ga1bo
-6gabø
-ga3da
-ga4ded
-4gadg
-2gadm
-4g5adr
-ga4e5k
-gaffel5
-6gaflo
-g3aft
-6gah
-6gak
-g1aks
-gak8ta.
-gak8te
-ga3kv
-ga1la
-ga4la.
-galei5
-ga7len
-gal4les
-4galli
-5ga7lo
-ga4ma.
-4gamb
-ga5mer
-gamme6l5
-6gand.
-6ganden
-9gane
-gan5g6en
-gan4g5j
-4gan5k
-2g1anl
-4gann
-4gansa
-4gansv
-4g5antre
-ga6pa.
-ga4pe.
-ga4p5l
-gap3s2
-ga6p7u
-9gar.
-ga6raf
-ga6r5ak
-2garb
-5garbr
-5garby
-gar4dek
-7gare.
-4garea
-gar5es
-gares6ke.
-gar2i
-4garki
-gar3ne
-gar6ta.
-g5arte
-gar8te.
-g3arti
-gart5s6la
-gar4un
-ga4ryl
-ga4sc
-ga5s2i
-gas8ka.
-gas8ke.
-ga6ski
-4gasp
-gas6sel
-gas5sen
-gas7ser
-gass5ett
-gass3l
-5gast
-gas5te
-ga5sto
-ga6s6t6r
-g2at
-ga4te.
-ga5tens
-gate5s
-ga3ti
-ga1to
-ga3tr
-gat6tap
-gau5la.
-9gav.
-2gavd
-6ga4vei
-ga4veri
-4gavg
-g5avk
-2g1avs
-2gavt
-4gavv
-2gaw
-4gaø
-2g1b
-gba4ne.
-g6byk
-2g1c
-8g1d
-gd5alt
-g6d5au
-gde3a
-g2deb
-g3deba
-g4dedi
-gde5lo
-g2dem
-g4dend
-g2de5o
-g4dera
-g4de5re
-g6dero
-g2des
-g2det
-g3det.
-gdevi8sa
-gd5op
-gd1or
-gdy4d
-g6d1øy
-1ge
-2ge1a
-geak8ta
-geak6te.
-gea7ren
-ge4ark
-2geb
-6geba
-4ge5be
-3gebri
-4gebrå
-3gebyr
-ged4
-4gedan
-6gedel
-gedia5
-9gedom.
-7gedoma
-9gedome
-7gedomme
-6gedoms
-4gedos
-2gedr
-2gedy
-2gedø
-2gee
-geen8de.
-2gef
-g5eft
-3gefæ
-2ge1g2
-g5egg
-g3e2gn
-2geh
-gehø8ve.
-2gei
-g1eie
-g4e1in
-gei4r3
-gei9re
-gei8s7p
-gei6st5
-3geit
-geit3a
-geit3o
-gei4t3r
-2gej
-2gek2
-ge9kl
-ge3kn
-g1eks
-6gekt
-5gel.
-ge4lar
-4gelau
-ge6le.
-ge7lea
-4geled
-4gelei
-gelei5er
-4gelek
-4g3elem
-ge5len.
-ge5lens
-5gelet
-gel5ett
-3geli
-4gelid
-6geligg
-4gelit
-6geliv
-2gelo
-ge5lov
-7gels4
-gel3se
-gel5si
-gelsk7l
-gel5t4
-4gelu
-ge5lun
-gel7ve
-4gely
-2gelæ
-2gelø
-2gelå
-5gem.
-2gema
-9gema.
-2gemi
-3geml
-4g5emn
-gem6na
-2gemo
-9gemr
-3gems
-3gem4s5t
-ge3mu
-2gemy
-2gemø
-2gemå
-g2en
-3gen.
-ge2n1a
-ge7n6am
-gends6t
-ge3nea
-4genem
-gen5erf
-ge5nes
-gene4t
-gen5eti
-4genev
-gene5ve.
-gen8ga.
-gen5gr
-ge4ni6n
-6geniv
-gen5k
-genle6ge.
-gen3n
-gens5l
-gen6sun
-gen5tr
-4genum
-4geny
-4genæ
-4genø
-2geo
-5geog
-3geol
-geome5
-geomet4
-ge5on
-6geop
-ge9ope
-2gep
-g2er
-3ger.
-ge5ra.
-ge6ral
-ge4r5ant
-ge9ras
-ger5di
-4gered
-4geref
-4gereg
-4gerek
-ge6rene
-4gerep
-6gerese
-4gerett
-ger4i5d
-4gerik
-geri8ka
-6gerike
-ge4rim
-ge4ris
-ge4rit
-ge4riv
-gerle9g
-g9er8ma.
-ger3n
-gerne6
-4geroa
-4gerom.
-4geromm
-6gerop.
-4gerope
-ger5p
-ger4s5af
-5gerud
-ge5rup
-ger5v
-gerø6re.
-ge4r3ø4v
-4gerå
-g6es
-5ges.
-2gesa
-2gese
-5gesen.
-5gesens
-4gesi
-4ge5sja
-4gesje
-2ge1sk
-ge1sl
-geslu7
-ges4lø
-4geso
-4gespe
-ge4spr
-ge5spra
-2ge1st
-3gest.
-gesta7b6l
-5geste.
-ges6tekk
-ges8ti.
-gest5rid
-gestri8de.
-6gestå
-2ge9s8u
-ges5vik.
-2gesy
-6gesæ
-2gesø
-2ge1så
-geså5re
-5get.
-ge5tak
-geta6le.
-6getat.
-6getate
-4ge3te
-5gete.
-2geti
-2getj
-2geto
-2getr
-5get5s
-2getu
-2gety
-gety8e
-2getø
-2geu
-g2ev
-2ge7v8a
-2geve
-4gevir
-gevi6sa
-4g5evn
-gev6ne.
-4ge5vo
-5gevå
-2gey
-4geæ
-2geø
-2geå
-1gé
-2g1f
-gfe2l
-4g1g
-g6g5al
-gg5ask
-g2g1av
-g4gedi
-gg1ei
-g4gela
-g4gele
-g2gem
-g4genu
-g6gerei
-gge4rin
-g4gerø
-gges6b
-gges5l
-g4gesm
-g6geso
-g4gesp
-g6ges6tio
-g6ge5sv
-g2gev
-ggie6
-g4gif
-g4g5i4m
-gg4je
-ggje5s
-g2gl
-g7glu
-g4gn
-g2g1o2
-g3go.
-g5gos
-gg3rad
-ggra6da
-gg5rat
-gg8re.
-gg3red
-gg7rek
-gg5s4par
-ggs7s
-gg3sto
-gg4sy
-gg3sø
-g7g8ud
-g4g5u4r
-2g1h
-ghe8n
-ght5ene
-gh4to
-ghæ8
-1gi
-3gi.
-4giak
-gi1ar
-4giarb
-6giav
-2gib
-gi8c
-2gid
-gi3de
-gi1e
-4giek
-3gien
-gi9end
-5gier
-4gifa
-2gifo
-4gifr
-4gifu
-gi6ga.
-2gigr
-2gih
-2gii
-5gika
-3gike
-4giki
-3gikk
-gi5k4r
-4giku
-gi5le
-4gimess
-gi4metr
-4gimi
-4gimø
-2g1ind
-6gingeni
-gi4nin
-2g1inn
-gin5nu
-4gino
-4g1ins
-4g1int
-2ginv
-4gi5om
-2gi1op
-gio4r
-2gip
-gip5si
-6gira
-gi3re
-gi4re.
-giro3
-gi6rob
-5gis.
-2gisa
-gi3se
-4gisel
-4gisen
-5gisk
-6giska
-gis8lu
-gis4lø
-4giso
-4gisp
-gi3s4pa
-gi5s4pr
-giste6ru
-gis5ti
-gist5ra
-gi5stré
-gi6st5rer
-4gistu
-6gisty
-gi5ta
-4gi5te
-gite4s
-gi2t9r
-git5te
-2giu
-gi7va
-4gival
-4givo
-4givu
-1gj
-8gjag
-2g1jak
-g5jarn
-2gjaz
-gje5f
-4g3jeg
-gjels4
-gje2n
-gjen7n8
-gjen1opp3s4
-gjen5s8
-6gjent
-3gjer
-gje7sk
-gje4s3p
-gje8v9ak
-2gjob
-2g1ju
-7g6jut
-gjø9de
-2g3k2
-gkly9
-gl2a
-6gla.
-gla3de
-4glag
-gla4ga
-gla8ge.
-g3land
-g1lar
-gl5art
-glar7v
-1g2las
-7glase
-gla6s7k
-g6lass
-6glast
-g5last.
-3glat
-g5lau
-gl6e
-gle6dero
-4g3lef
-gle3ge
-gleg8ga
-6glei
-glei7er.
-g2lek
-g7lek.
-g5leke
-g2lel
-3glemt
-4glen
-g9len.
-g9lene.
-g9lenes
-g9lens
-gle9pl
-4gler
-gle4ra
-glere8de.
-g9les.
-gle6se.
-g4le5sk
-g6le7sm
-4glet
-g2lev
-1g2lid
-gli4del
-gli7e6n
-gli8er
-glig1
-3g2lim
-gli9me
-4glio
-glitt4
-6g7liv
-4glj
-gl7ja
-gl5l
-g4lo.
-g2loa
-5glob
-5g6lome
-1g4lor
-gloria7
-glori6an
-glorie7ne
-g4los
-glo5ste
-6glov
-gls4
-8glu
-5glug
-g5luk
-6glun
-gl5ung
-glun8ge.
-gl5ut
-g5lyd
-3glyf
-gly4se.
-g2løg
-glø8pa
-2gløs
-gl7øy.
-5gløym
-2g1m
-g4mete
-g4metr
-g5mé
-gmini6
-gmo4e
-g3mu
-gmu8le.
-gmå6la
-g1n
-gn1ak
-gna5lem
-gna4lo
-g2nav
-gn1d
-gndø6
-gndør5
-gn4e
-g2nee
-g4nelo
-g6nero
-g6nerø
-gne1s4
-gne8se.
-g4nesk
-g4nest
-g5net
-g6netr
-g2nev
-g4nib
-g4nid
-5g6nik
-gning4
-gnings5
-gni4s
-g6ni5sk
-gni6st
-gnist9r
-gn5k4
-g2nom
-gn5o6p
-gn7o6v
-gn5r
-gn1s
-gn4skr
-gn6sm
-gn4som
-gns4pr
-gn4sti
-gn2s1v
-gn5t4
-gnu5re
-gnæ6re
-g2nå
-1go
-7goan
-go1ar
-7goar.
-2gob
-gobe5
-go4da
-go5dal
-god5ar
-2godd
-go4de.
-gods9t
-2gof
-go9ga
-go5ge.
-go9g8r
-6goi
-2gok
-gok4se.
-go3le
-gol6fa
-go5lo
-gol4va
-gol6var
-go4lå
-2gom
-g7o6ma
-6gometris
-7gomm
-go4n5and
-go9ne.
-go7ni
-go5nok
-gon9s
-2g1op
-3g6or4a5
-go5ra.
-go7rae
-go7ras
-2gord
-gor6da
-go1re
-gore8a7
-2gorg
-g4ori
-gori5e6
-g5orv
-gor8va
-go5rø
-gos3p
-8g7ost
-6goto
-got6r
-4gov
-go8ve.
-go8vi.
-2g3p6
-1gr4
-8gr.
-4grab
-6grac
-gra5ce
-9grads
-graf5f
-graf5t6
-gra4m5
-grand3s4
-gran5to
-grant4r
-gra9se.
-gra9set
-gra6sk
-gras3t
-gra5t
-gra8te.
-grati4s
-gra4u
-gra4v3ak
-gra7vis
-gravta8
-2grea
-4g5reds
-gre4en
-2gref
-g7refe
-g4rega
-greie5n
-grei6ene
-6g3reis
-4grek
-2g5rel
-g5rent
-4grepi
-grep4s3
-g7rese
-gres6sak
-gres6sent
-6g5rest
-4grett
-4g5ri.
-grib3
-4grid
-4grif
-4g1rig
-7g6rip
-gri4s5o
-gri4s5ø
-gri5sete
-4grit
-gro9ar
-g4ro7i
-grom5m
-g4ron
-gro5sk
-gro3ve
-gro6v5in
-4g5rui
-4g3rul
-grun7g
-5g4rup
-gru7sa
-grus5t
-2g1rut
-2gryd
-4g5ryg
-6g5rytm
-grø5de.
-6g5rør
-4g5røv
-grø5ve
-4grøy
-gr7øy.
-6gråd
-grå6da
-gråk4
-grå7n
-grå5te.
-8gs1
-gsa2
-gs5akers
-g7sal.
-g7sale
-g5salg.
-g5salge
-gsam3
-gs3amb
-gs7amn
-g7s8ang
-g3s6ank
-g5sard
-g2sas
-g7sast
-gsbø6n
-gs2ce
-gs5ef
-g2seg
-g2sei
-g2sek
-g5sekr
-g7sekv
-gse9la.
-gsel4s5a
-gsel4st
-g2sem
-gs6ende.
-gsen6ke.
-g5sens
-g3sent
-g2ser
-g5ser.
-g3seri
-gse4st
-gse4t
-g3sete
-gs3eti
-g9sets
-gs4ett
-gse2v
-gsfø2
-g2si
-g5sider
-gs5is
-gsi2v
-gs4jar
-g3sjef
-g5sji
-g2sjo
-g5sjå
-gs4ka.
-g5skad
-gs4kal
-g5skall
-g6skam
-g4skan
-g4skapa
-g5skape
-g4skapi
-gs7kav
-g5skilt
-g7s4kj
-g7s6kjæ
-g3skot
-g5skren
-g7skug
-g6skv
-gsla6ga
-gsle6ge.
-gs6leri
-g4sluk
-gs4lun
-gsl9ut.
-g5slyn
-gs5med
-g9s6mert
-g7snel
-g5sog
-gs9ope
-g7s8opp
-g7s8oppe
-g5spal
-g3spel
-gs2pi
-gs5pik
-g3spil
-gs5pile
-g6s5pors
-g3spur
-gs3s4
-gsse4e
-gs5tak
-g9s8tand
-g5stang
-gs4tasj
-g7s4tat
-gstatsrå7
-gst6e
-gs5te.
-g5ste4e
-gs4tell
-gs5tema
-gste6ma.
-g7stemt
-gs4tere
-g5s4terf
-g5s4terk
-g5s4tern
-g5s4ters
-g5s4terv
-gst7evnen
-g5s4ti.
-g3s4tie
-g3stif
-g3s4tig
-gs5tiå
-g5sto.
-gs4tol
-g5stol.
-g7stola
-g5stole
-gs5toll
-gs4trap
-g5strau
-gst5rea
-g5strede
-gst5rei
-g5streke
-gs6tret
-gstri8de.
-g5s4trof
-g3strø
-g5s6trå
-g5stue
-gst5ut
-gstyr8ka
-gs4tør
-g5s4tå
-gsu2
-gsu5g
-gs4vane
-gs5vik
-gs7væ
-gsy2d
-g7sym
-gsy6na
-gsy6t
-g2sø
-gsø6ki
-gs6øt
-gså4
-2g1t
-g3ta
-gta8ka.
-gta8ke.
-gta6la.
-gta4le.
-g9t6e
-gte6ke.
-gte6ma.
-g3ti
-gti8de.
-g4t5if
-gt6re.
-gtråd5s6
-gt7sv
-gt5t
-gtu8en.
-gtvek8
-gty8e
-gt9yt
-1gu
-4g5u4bå
-gu2di
-guds3t
-gu4el
-6gug
-g5ug6l
-gui4d
-guid5ar
-gu4le.
-4g5ulk
-gul8ke.
-gul4la
-gul5o
-gul7ø
-7gum
-gun4g
-gur2g
-gu4ri
-gur8na
-gur6ne.
-gu5rua
-gu3rue
-gu4st
-gu1ta
-2gutb
-4gutd
-g5ute.
-6gutg
-g7utl
-4gutn
-2guts
-gut4tak
-gut4tes
-4guttr
-2g1v
-gva4ke.
-gva8la
-gvedli6
-gvi8ta
-6g1w
-1gy
-g9y8a
-gy4da.
-7gym
-gy3ne
-gyr6
-gy8sa.
-gy6se.
-gy4te.
-gy4ve.
-g5æt
-4g5øk
-gør3s
-2g3øv
-gøy9a
-gøye6r
-gøy5n
-1gå
-gå6as
-gå6en.
-gå4er.
-4g5å4k
-4gåm
-4g3ån
-gån8da
-2g1å4p
-2g3åre
-gå2s
-gå3st
-gå9ven
-gå4vet
-h2a
-ha4a
-haba9
-4hae
-ha2el
-4hafi
-ha2g
-ha3ga
-ha4ga.
-ha3gen
-hai1
-ha7ism
-ha5ka
-ha4ke.
-ha5ken
-ha7kera
-ha4ke5s
-ha1la
-ha6la.
-hald4s7
-ha4le.
-ha4lev
-hal6lei
-hal6lø
-hal4s3k
-hal4so
-hal4s3t
-ha5lu
-hal4v5
-hal5v6ar
-hal5v6o
-ha5ma
-ha8me.
-ham6nest
-ha5mo
-ham4st
-hams4t7r
-ha5na
-han6d5r
-hand7skr
-hand5ø
-ha4ne.
-hani1
-hanis4
-han2n3
-han4ne
-han6nel
-han5nen
-han5n4es
-han5n4o5
-han3se
-han4sk
-ha4pe
-ha4re.
-ha5rei
-ha4rel
-ha3rem
-ha4res
-har5k
-ha5rov
-har7se
-har5tre
-har4tri
-ha4sj
-hasj5e
-ha2sl
-has6p7l
-has5v
-ha3tar
-ha4te.
-hat6le
-h4au
-hau5ke.
-hau6st
-hau4t5r
-hav4a
-ha4va.
-ha5van5
-ha4ve.
-ha4veg
-ha4vei
-have3s
-ha8v7ert
-ha1vi
-ha4vo
-hav4sl
-ha6vu6
-hav1ø
-4havå
-2h1b
-hba4ne.
-4hc
-2he.
-he2a
-he7ans
-heat4r
-heb5n
-he4de.
-heder6s5
-he2d9r
-hef9ta
-hef7tes
-he3ge
-he4ge.
-he2g3r
-he2i
-heia3
-hei5en
-3heim
-he3ins
-hei4sk
-heit4s
-he2k
-hek4sek
-hek6serin
-hel1a
-he4la.
-he4le.
-he4l5ei4
-hel6lesu
-hel3o
-hel2s2
-hel3sa
-hel4se7
-helses4
-hel3sk
-hel5sp
-hel5ste
-hel3sv
-hel4tes
-hel9ve
-he4mak
-hem5ne
-hem3s8k
-henfø5re
-hen5o6
-hen1s2
-hen5se
-hera9da
-he5ret
-he4ri.
-her5j
-herle9ge
-herli9ga
-4her5n
-he1ro
-he4ro.
-hero9a
-her7p
-her6rei
-her6resi
-her6ret
-her6ska.
-her8s7kare
-her6sv
-her5un4
-he2r3ø
-he4se.
-he2sp
-hes7pa
-hes5pel
-hes5pen
-hes9per
-heste5ri
-hes4tes
-he6stø
-het2
-he4te.
-he5t6i
-het4s3a4
-het4s5p
-het3t
-he6va.
-he6v7arm
-he4ve.
-hev9na.
-2hf
-2hh
-h5hu
-hi5ao
-hi4bak
-hie4n
-hi2et
-hi4f1
-hiff2
-hif9r
-hi6ge.
-hik7e
-himme6l5o
-hi6n7an
-hin4nes
-hins4
-hins9ke
-hi4pl
-hip3p
-hi1ro
-hi2s1
-hi9se.
-hi3sen
-hi5s4i
-4hisk
-hit7o
-hi4t5r
-hit5ti
-hi8va.
-hi4ve.
-hiv1s
-hjar4
-hje4
-hjem7e
-hjorte5
-hju6l7
-hju7l8e
-2hl
-h5lan
-2h1m
-hma8n
-2hn
-h2na
-hne6n
-hn1s
-h4o
-ho5ar.
-hob6
-ho6da
-ho4de.
-ho5den
-hode3r
-ho5der.
-ho5dy
-hof4f3
-hof4f3a4
-hof4f3e4
-hof5f6er
-hof4fi
-hogs6
-hog6str
-hog7stra
-hoi5
-ho2la
-ho5lag
-ho5lan
-ho4le.
-ho4lin
-hol5l
-ho4lom
-hols4
-ho4lu
-hol7ut
-ho4me.
-ho4mo.
-ho4mod
-ho4mos
-ho5n6o
-ho4o
-ho8pa.
-ho4pe.
-ho8pi.
-ho5ra
-ho6ra.
-hor2e1
-ho1ro
-2hort
-ho4s
-hos5a
-ho5sen
-ho5ser
-ho5si5
-hou2
-ho1v
-hove5re
-ho4vé
-2how
-h1p
-2hr
-h1ra
-h1re
-hri5ne
-hri2s3
-6h1s
-h5s4e
-4ht
-h5ter
-htere4
-h1tr
-ht5t
-hu4da
-hu4d3
-hud5s6
-hudså9re
-hu4er
-hu6et.
-hu4ga
-hu4ge.
-hu8ja.
-hu6ka.
-huk8ra
-hu4la
-hu4le.
-hu4leg
-hu5les
-hu4lev
-hul5v
-hu5ma
-hun6des
-hun2n3
-hu1ru4
-hus1a
-hu8sa.
-hu5s6a6r
-hu6s7arr
-husa7r8e
-hu4se.
-hu4s3ed
-hu2s1i
-hu2s5j
-hu2s1k
-hus7m
-hus5s4
-hus1t
-hu8str
-hust9ran
-hus4tre
-hu6sty
-hu6s5u6
-hu2sø
-hu4va
-hu4ve.
-hu4ves
-hv4
-hva5le
-hvas5
-hve2r
-hver3a
-hvi5l6i
-h4v4ir
-hvits4
-hvo2
-hvor5
-hvor5i6
-h6y
-hya3
-hy2bl
-hyd4
-hy2e
-hye5ne.
-hye9nes
-hyg5gel
-hy6la.
-hyldes7
-hy4le.
-hyr4des
-hys3
-hy8sa
-hy4se.
-hy2s1j
-hys5t
-hæ5g
-hærfø9
-hær3s6
-hø4e
-høf5
-hø2g
-høg3ri
-høg7rø
-høk6
-hø6le.
-hø4na
-hø4ne.
-hø5rar
-hø5ren
-hø5rer
-hø4res
-hør6sp
-hø2s
-høst7a
-høst5ø
-hø1va
-hø1ve
-hø1vi
-høy5a6
-høy5k
-høy7n
-høy7rar
-høys4
-høyse6te.
-h6å
-hå7a
-hå8le
-hå6na.
-hån8dr
-hånd5skr
-hå5nel
-hå6pa.
-hå4pe.
-hå4p5l
-hå1re
-hå1ri
-hår3s
-hår7u
-hå8va.
-hå4ve.
-ia9al
-i1abl
-ia1bo
-i2a3de
-i1adj
-ia5d8r
-ia1g2
-ia2ge
-ia1in
-ia1kr
-i1aks
-iak8se.
-ia5ku
-i1al.
-ial1a
-ial5ein
-iale4t
-ial5eti
-ia4l5ett
-i2alf
-ial3g
-ia4lin
-i4alk
-ial3op
-ia6lov
-i5als.
-ials4t
-i3alt.
-ial1u
-ia2lø
-i1an.
-i2ana
-ia4nal
-ian5ald
-ia5nar
-i7andr
-i5a4ne.
-ia8nes
-ia7net
-i5ank
-i1anm
-ia2no1
-i1ans
-ian3sa
-ian3sl
-i1ant
-ia7nø
-ia2pa
-i3app
-i1ar.
-iar4do
-iard5s4
-iar4du
-i2are
-i5area
-ia5r6e8l
-i5arn.
-i9arns
-i7arska
-i6asi
-i1asm
-ia4sp
-ias3s6
-i3assi
-i1ast
-i7ast.
-ia1t
-ia5te
-iat6r
-iaty6ra
-i1att
-i7auk
-i1av
-i1b2
-iba4ne.
-ib5bo
-ib3bu
-i3bere
-ibe4ro
-ibi5er.
-ib7lar
-i2b3le
-ib4leg
-ib4le5s
-i5bo
-ibo4e
-ibo7n
-ib4r
-ib3st
-ib8t
-ibya7
-iby9ar.
-8icanarar
-ice5ne
-i1ci
-ick1
-ick7ete
-i1co
-i5cy
-2ida
-i5dal
-i3das
-id1av
-id3del
-iddel5u
-id6dep
-2ide.
-3ideal
-i2deb
-i6def
-id5e4ge
-i7deki
-i9del.
-id3elv
-2iden
-i5dend
-iden5sv
-5identif
-5identit
-ideo3v
-i6derap
-i9de5re.
-i7deren
-i9deres
-iderla8ga
-iderle7g
-i7dern
-i5ders
-i6desm
-id6gem
-id4ges
-idi4en
-1i2dio
-i8dj
-id7jer
-id9na
-1i4dol
-id9ran
-id5reg
-4i3drev
-2idri
-id2s1
-id5sam
-idse4
-id6sel
-id5sim
-ids5l
-idsla6ga
-ids3t
-id4s5tu
-id2t1
-i2d1un
-i2dy
-3idyl
-i3dyr
-i3dø
-i6d7øy
-id7å
-2ie
-ie1a2
-i2ed
-i1eff
-ie4ge
-iego4
-ie1i
-iei6d
-i1eie
-i3eig
-i5eini
-iek8l
-i1eks
-ie5l6a
-i2ele
-i5elem
-ie4lev
-i7e6lim
-i1els
-i9elt
-ielø8pa
-i8e9ma
-iem7b8
-ie3me
-i1en
-ie7na
-i2end
-ien6dela
-ie8né
-i2e5ni
-ien7n
-ie5no
-i5ens
-ien4sk
-ien4s5v
-ien4t3r
-ie5nu
-i6eny
-ie4ran
-i4erd
-ie6re.
-ie5reg
-ie4r5eng
-i6eret
-i2eri
-ie4ril
-ie4ris
-ie4riv
-i2erl
-i6ero
-ie7ro.
-ier4ra
-ier4sp
-iers3v
-ier5t
-ie3run
-ier5v
-i2e1s
-i6es.
-ies4c
-ie3se
-ies5s
-ies4ti
-i8es6v
-i1et
-i2eta
-i5e4tabl
-i3etat
-ie9te
-ie5té
-iet4re
-ieu2
-ie7ved
-2if
-ife4s1
-if2fa
-ifi6e
-ifjø8
-if3le
-if4les
-iform4
-if1re
-i8ft
-if4tal
-if4tere
-ifte5s
-ift2s
-i3fø
-2ig
-i2gae
-ig3ann
-i7gark
-ig4art
-iga3ru
-iga7te
-ig3att
-i2gav
-ig3d
-i6geb
-i6gedi
-i6gedomm
-igedoms5
-i2gem
-i3gen
-ige6no
-i5gers
-i4gerø
-i4gesp
-ig3e4ta
-ig5ett
-ig4ged
-igges4
-ig4gra
-igg7s2
-i6gh
-i2g1ia
-i5gib
-i4gim
-igion4
-igje9va
-ig1l
-igl6d
-igli6se.
-ig5loa
-ig5neu
-ig5no
-igof6
-igo5fr
-ig1om
-igo4no
-ig2ra
-ig2re
-i2g1rø
-ig3råd
-igrå5t
-igs4al
-ig5sel
-igs2j
-ig5s4ka
-ig3s4kr
-igs4mu
-ig3s4pa
-igst4
-igs4ta
-ig4ste
-ig5stek
-ig7stel
-ig5stem
-igs4tra
-ig5s4va
-ig1un
-ig9ut
-i3h
-ihen3
-iho7le.
-i4huk
-ihu9la
-ihu5le.
-i1i
-i5in
-i7is.
-i4is8e
-i6ita
-i1j
-2ik
-i1k2a
-i2kab
-i5kabel
-i2kaf
-i2kak
-ikan9d
-i2kao
-i4kapo
-i5kar.
-i5kara
-ika5re
-i4karei
-i6kasa
-ika3sp
-i2ke.
-i2ked
-ik8ei
-i9keleg
-i5keli
-ike5lu
-i5ken.
-i4kena
-i5kene
-i9kens
-i3ker.
-i4kera
-i5kere.
-ike5ri
-ike4r5o
-i2ke1s2
-ike3si
-i6kesk
-i5keso
-ike5su
-i5ket.
-i5kets
-i1ki
-iki9ne
-ik5inn
-iki5st
-i1kj
-ik4kaf
-ik6kana
-ik4kap
-ikk5arv
-ik4kas
-ik4kat
-ikk5att
-ik6k7ent
-ik4keru
-ik8kesk
-ik4kest
-ik3kjø
-ik4kjøp
-ik4kl
-ikk5lag
-ik2ko
-ikk5ord
-ik4kr
-ikk3re
-ikk5sv
-4ik2ku2
-ikk5und
-ik2kv
-ik6ky
-ik1l
-i5klæ
-i1ko
-i2koa
-i9koar
-i2kob
-i4kod
-iko5de
-i2ko3f
-i4kog
-i4koh
-i2kok
-iko5na.
-i2koo
-i5k6ord
-i4kore
-i2kov
-ik1r
-ik4rak
-ik5rem
-ik5robe
-ik3ros
-ik2ry
-ik2sa
-ik4sek
-iksmå8la
-ik7sot
-ik5spel
-iks5ti
-iks5to
-ik8stu
-ik4tav
-ik4teg
-ik2t1r
-iktsla8ga
-i1ku
-iku6le.
-i6k7u6t
-ik1v
-ik4vin
-i1ky
-i3kø
-i3kå
-ikå8pa
-i1la
-il5adr
-il7af
-i2l3ak
-il3al
-i4lana
-il6and
-i4lark
-il3art
-il5ass
-ilas5t6
-ila5t
-il5av
-il4dak
-il4deko
-il4dete
-il7dj
-ild3re
-ildsfa9re
-ild3s4t
-ilea9r
-ile8are
-i3le7e
-i2lef
-ile4ge.
-i4l3egn
-i2l1ei
-i6leig
-i2lek
-i2lel
-i4leno
-i4lero
-ile1s
-i4lese
-i4le5sk
-i4lest
-ile6tri
-ilet5te
-ile4tu
-i1lé
-ilfø5re
-il5ge
-il1gl
-i4lid
-ili5ers
-ili9ga
-i5lik
-i2l1im
-i4l3ind
-i7line
-i4lins
-i4l3i4r
-ili5s6tik
-il3ja.
-il1je
-il5jese
-il1jo
-il1ju
-ilke3
-il5ker
-il4kes
-ilk4o6s
-il5ku
-il4lab
-il6lam
-illan8da
-il6lap
-il9lau
-il4lee
-illei9e
-il6l7ender
-il6lesk
-il4lev
-illi9ga
-il4lo5m
-ill3s2
-ills5kå
-illæ4
-illæ9re.
-il4m5est
-ilm5e4v
-il4mi
-ilm5s
-i1loe
-i9lolo
-i4lom
-il5omv
-i5lon
-il3opp
-i4l1o4r
-i5loso
-ilot3u
-i4love
-ilo1w
-ilret4
-ilset8je
-il3sl
-ilsla7
-ilsle7ge
-il6s7li
-ils4mu
-ils2p
-ils2t
-il5str
-il7su
-il3s2v
-ilsva9ra
-ilsva5re
-ilta9la
-ilt5rett
-il6t7å
-ilu4h
-i5luk
-il7ul8
-il3un
-i5lur
-i9lus
-il1ut
-il5v6
-ilve8d
-ilve4r
-i1ly
-il1å8
-ilår6
-8im.
-4ima
-i2mad
-i4maen
-i2mag
-i6m5akk
-i4mako
-imal8n
-i2mam
-i9man
-i2map
-i5mar.
-ima5s
-i4matr
-i8mb2
-i4mee
-i2me1g
-i2mek
-i6melu
-im5enh
-im8et
-i9met.
-i4meta
-i4meti
-i6mey
-i8mé
-imi9la
-imini6
-i7mj
-im4lev
-im8l9u
-im5m
-i6mog
-imo9l
-im5ord
-imor8da
-im7o6v
-imp2
-5imperi
-imp4l
-1impo
-imp9s
-impse8
-1impu
-im4ref
-im4rek
-im4res
-im9se
-ims4k5l
-ims3kr
-im5s4me
-im1s4t
-im6sti
-imta8la
-4imu
-i3mø2
-2in.
-6ina
-i4nag
-in5agg
-i5nakk
-ina4let
-i4na2m
-in3ame
-in2an
-i9nane
-in5ann
-i2nap
-in5app
-i5nar.
-i5nars
-i4nask
-i4nasp
-i4n5ass
-ina4t5ak
-ina7t8r
-i6nau
-in7auk
-in5avl
-in5avr
-ince2
-in7der
-6indig
-in4dog
-ind9ra
-in3dru
-indr5ø
-ind5sk
-ind3sp
-ind5s4t
-5industr
-ind7å
-4ine
-ine8are
-i2ned
-inedy6
-in5egg
-in5eid
-in3eie
-i6nele
-ine4li
-in7eng
-ine8pa
-ine8pe.
-i7nere.
-i5neren
-i9neres
-ine4rik
-i7nern
-i5nert
-i5nes.
-i4nesk
-ines8ka
-ines8ke.
-ines4st
-ine5s4ti
-i4nesø
-i2nev
-8iné
-3infek
-in4fos
-in4fot
-infu9
-4infy
-in4g5ald
-in4gav
-in5gebj
-in6gem
-5ingeni
-in5geri
-in4geru
-in3gev
-ing5jen
-in4goa
-in4gos
-in2gr
-ing5rep
-ing7ris
-ing2s
-ings5om
-ingst8
-ings5v
-6ingu
-in4g5un
-in2g5ø
-i7nia
-ini9ar.
-i2nib
-i5nie
-i4nif
-i2nig
-i4nil
-ini7m
-i4ninn
-i2nip
-i4nisa
-ini3se
-i4nises
-5initia
-i4nito
-5injek
-2ink
-in5kel
-in4kero
-in4k3la
-in4kok
-in5l
-inla8ga
-2inn.
-in4nal
-in4nem
-in4nerø
-in4nesi
-innes6t
-4innet
-in6n7ette
-innfa9s
-1inng
-5innhal
-3innho
-2inni4
-in4ni.
-in4n5om
-in5n6ova
-inn1s4
-6inns.
-3innsa
-inn5se
-inn9sen
-inn9ste
-inn7sve
-1innt
-in4n5u4
-4innæ
-in2nø4
-2ino
-ino5a
-i5noar
-i4nod
-inok6
-in7oks
-in7org
-in1s
-4ins.
-8insa
-in9sa.
-in7sal
-in5sar
-in5se.
-in4sek
-in3sen
-inseri8e9ne
-in3si
-insis5
-6insj
-in4sja
-in3sje
-4insk
-in9s8kas
-in5skat
-inske4t
-ins4ki
-in3skj
-ins5kjøt
-ins6kor
-ins4k3v
-ins6kø
-insle7g
-ins8lega
-in3slo
-in3s2lø
-in5s4ma
-in3sop
-1insp
-in4spa
-in5s4pl
-ins4po
-5instal
-in8s5te.
-ins5ten.
-ins9tens
-3in3s4ti
-in4stin
-4in3s6to
-in5stra
-inst5rel
-5instru
-in6stå
-in7sul
-in2sv
-6in3sy
-8int.
-2in3ta
-inta8la
-4inte.
-5in7teg
-in8t7ege
-in5ter
-int5ess
-in5te4t5
-4in5ti
-inti5me
-int2r
-intran4
-int4rer
-in5tres
-6inu
-inu6i
-i8n9ul8
-in7ut.
-in9u8te
-1inv
-6invev
-iny4i
-iny4t
-6inø
-in7øk
-i7nøt
-in3øv
-4io
-io1a4
-i2ob
-io8d8
-io4dere
-i1off
-io5gn
-io1i
-i1oks
-iol4
-io3le
-iol7jen
-io3mu
-io4nans
-io4narr
-io6n5erst
-ion3g4
-io4nin
-io4nu
-io1pl
-i1opp
-io5ra.
-ior8da
-io1re
-io4rie
-io4r5in
-iorla8ga
-iosk3v
-io1st
-iota6le.
-io3t4e
-io4tra
-i5pap
-ipa4ti.
-i4pee
-ipela9
-i7pe6p
-i1pi
-ipi1e
-ipi9ne
-i4p5ings
-i1pl
-i2ple
-ip4peli
-ippel7s6
-ipp6lan
-ipplæ8re.
-ip2pr
-ipp4s3t
-ippsy8na
-ipp4sø
-ip7pun
-i1pr
-i6pra
-ip5ru
-ipru8te.
-ips1a
-ipse4l
-ipsfø5
-ip2si
-ip2s1k
-ipsle6ge.
-ips1t
-ip6tar
-i5py7
-i3pø
-2ir
-i1ra
-i9r6and
-ir5ark
-i9rast
-ira6tr
-ir5de
-ird5s
-i1re
-ir3eie
-ir6ek
-i3repo
-i3rer
-ire6r5a
-ire7st
-i3ret
-i8reto
-ir7g
-i1ri
-iri4a
-iri8ka.
-ir3ind
-ir3inn
-ir5inst
-iri9t
-ir5ka.
-ir4kat
-ir5ker.
-irke3s6
-ir4kest
-ir4kle
-ir5kv
-irk5ø
-ir4mag
-ir4mal
-ir4mast
-ir9mé
-i5roa
-i1roe
-i4roi
-i1rol
-ir5opp
-iro1s
-ir3re
-ir7sko
-irs2p
-ir3s4t
-irt6
-ir3ta
-irti6g5r
-i1ru
-ir5u4k
-iru8m
-iru7sa.
-i1rø
-i1rå
-ir7å6l
-i1sa
-i4saks
-i4sanb
-i4s3ang
-is3ann
-i4s3ans
-is3ant
-i7sas
-is5aud
-3isbry
-is6cen
-isch5
-is3co
-i5scr
-i2sed
-i4seel
-i4seen
-ise5ern
-i2s2e3g4
-i2sei
-is3eie
-is5eig
-ise5is
-i2sek
-i3sekt
-i4sekte
-i6s7eld
-is4e5li
-i2sem
-ise5ne
-i4seno
-isensi6
-i5ser.
-i5sers
-i2ses
-is5ess
-i4sete
-iset8je
-i2seu
-8isé
-isha7ne
-3ishav
-is4h5in
-ishø9ve
-isi6ene
-is5ild
-i4s3ind
-isis5t
-is7jun
-is9ka.
-is3kal
-is3kar
-isk9art.
-isk5arte
-i8ske
-is5ke.
-is8kee
-is4kel
-isk5els
-iske5s4
-is3kje
-i3skjo
-iskla8ga
-is6k5le
-isk3lo
-isko5g
-is7kogr
-is3kop
-is3kot
-is1kr
-is6k5rin
-is1ku
-is4kul
-i5skula
-is1kv
-is4kvi
-is1l
-i6slu
-isl7ut
-isl9øy.
-i5smak
-is4med
-ismo5e
-i6smus
-is5ne
-is5nu
-1isol
-6isold
-5isomo
-is5omr
-iso3pa
-iso5pe
-iso7pr
-3isot
-is1ov
-is1p
-is4pan
-is5pane.
-is6pis
-is7pru
-is4ses
-is5si
-issis5
-is6s7kj
-is4sko
-is7skr
-is5sky
-is4skå
-is5sok
-is7sto
-is6sve
-is5svo
-is9s4ær
-is4søk
-i5stab
-ista9le
-is5tane
-is5tap
-i4s5tar
-ist5avb
-ist7avi
-i2ste
-is5te.
-is4tek
-ist5ekt
-istel5l
-iste6ma.
-ist6en
-is5ten.
-is5tene
-is5ter.
-is5tern
-is6terø
-is6té
-is4tik
-is5tilb
-is5tis
-is3tok
-is3tol
-i2str
-i8s8tre.
-i4st5ren
-i5strer
-i6strer.
-i4stres
-i6stret
-is3try
-is3tus
-6isu
-is5uf
-is5ul
-is1un
-is1v
-is4vak
-is7w
-isy8na
-isy5r
-i7s8ys
-is5yt
-i2s1øk
-i4søy
-is7åk
-is3år
-i1ta
-ita4l3a
-ita6l5ers
-ita4lo
-ita4ly
-i6tang
-itan7s6v
-itau4
-i4tav
-i4tec
-i2teg
-ite8ke.
-i7teky
-i6t7elg
-i4teni
-i2teo
-ite3re
-i4tero
-iter6s5
-i4te5ru
-i2te1s
-ite6se.
-itet6s5
-i1té
-it2i
-iti6er.
-i4ties
-i2tif
-i4tikam
-i4ti3kv
-iti5me
-i2tio
-i2tip
-iti3r
-i4tisa
-i4tisen
-i4tisi
-i4tisj
-i4tisko
-i4ti3sp
-i4tist
-iti5str
-i2tiu
-itiv4
-itivs5
-it7jaran
-it7jer
-it7ji
-itma6le.
-itnes4s
-i1to
-ito9a
-i4tom
-it5ord
-ito4s
-itostra6
-ito8v
-i1tr
-i4tra.
-i6trae
-it3rel
-it3ren
-it5rim
-itri8ma
-it3rin
-i5tris
-it7ro6s
-it1sa
-it4s3ei
-it3ser
-it6ses
-it5sku
-itsla8ga
-it1sn
-it6sti
-it3sun
-it4tag
-it6tak
-it4tal
-itta9la
-it6tann
-it6tap
-it4t5at
-it5ted
-itte4l5o
-it4tenk
-itte5s4
-itt5ett
-it4tid
-it4til
-it4tj
-itt1o
-it6tof
-it7ton
-it4tr
-itt5skr
-itt4sø
-it4ty
-it7tys
-i1tu
-itu5e
-itær1
-i1tø
-i5tå9
-i1u
-iu6a
-iu2b
-i5u6l
-i5um.
-ium4f5ar
-iu2m1i
-ium5m
-iu4mo
-i6umse
-i4um5s4t
-i4umsu
-iu2n
-iu8p
-i2ur
-iu5se
-4i1va
-i4vad
-i6vaj
-i4v3aks
-i5val
-iva6la.
-i4vana
-i4v5ank
-i4varb
-ivar5s6
-i4v5ass
-ivat3t
-i1ve
-i2veg
-ive6ge
-iv5eg6n
-i4vei
-iv7eig
-i2vek
-ive4ra
-ive5ras
-iver5d
-i6veret
-i4vesk
-i4vesti
-i6vesv
-i6vetø
-i2vev
-i1vé
-i1vi
-iv5ins
-iv5is.
-iv5isb
-ivle6ge.
-iv3n
-i1vo
-iv7om
-iv3r
-iv4sal
-iv2si
-iv2sk
-iv2sl
-iv2sn
-iv4so
-ivs5v
-i2v3un
-i5v6y
-ivyr8ke.
-i9væ
-iv7åpn
-i1wa
-iwi5
-i5wie6
-i5y
-iyr8ke.
-i5za.
-i7zas
-i4ze
-i1zo
-i1ø
-i1ø4k
-i1ør.
-iør5i
-iør5s
-i4øs
-iø3se
-i1øy
-i1å4
-iårs7l
-iåt4te.
-ja1ak
-ja9ar
-ja4da
-1jae
-ja7en
-5jag.
-ja4ga.
-ja7gar
-ja4ge.
-jag6r
-ja4ha
-ja4hv
-ja4j
-jak4kel
-jak7kele
-jak4ko
-ja8k7ok
-jakk5s4
-ja1k8r
-ja8kre
-jaktel
-jakts8
-ja7ku
-ja3lo
-ja1lu
-jam7b
-6jambi
-jamhø8ve.
-5jamm
-jams2
-jan4gr
-j5anl
-ja6ra.
-ja6r5ap
-ja9rek
-jarn3s4
-jar5ta
-jar5te.
-jar5tet.
-jar7ti
-6jarø
-ja6rå
-ja7se
-ja8ski
-ja5sti
-ja5ta
-jau4ere
-ja9vi
-1jaz
-j1b
-2jd
-j2e
-2je1a2
-je5ak
-2jeb
-jeb9b
-je4deb
-6je4dek
-4jedr
-je4ep1
-6jeev
-2jef
-je4f3et
-je2fj
-jef5lag
-je4f3re
-jef4sa
-jef6s5i
-jef3t4r
-je5ge
-jeg5ge
-6jegl
-jeg6les
-4jego
-4jegr
-4jegy
-2jeh
-je1i
-je5i8s
-4jej
-2jeka
-jek6keru
-4jekl
-je4kli
-2jeko
-jekt3a
-jek4tan
-jek6tes
-jekt5ev
-jek4t5in
-jek4t3r
-jekts4t
-4jekø
-2jel
-je6legr
-jelei7er
-je7lele
-je4les
-jel7ge
-jel6lag
-jell5ang
-jel5len
-jel4lo
-jelt3
-jel4tr
-jel9ut
-jel7va.
-2jem
-je4mia
-je4mit
-jemp6
-jem5pl
-jem5se
-jem4sti
-2je7na
-jen1d
-jendis5
-4jendr
-je3ne.
-je7ne8s
-4jenet
-jen5ged
-jen7g8la
-jeng5s4
-2jeni
-jen3k
-4jenl
-4jeno
-4jenu
-je2n1y4
-4jenæ
-2je5o4
-2jep
-je3raf
-je4r5ant
-jer4dep
-jerd6s
-je3r6e
-4jered
-6jereg
-6jerei
-6jerenn
-je5rik
-je6rim
-je6rinæ
-jer4kes
-jer6k5l
-jer4kv
-jerle7
-jer6mu
-jer6n5as
-jern5sl
-je6ron
-jer4sp
-jert5s
-4je1ru
-6jerå
-5jesf
-5jesh
-jes4kil
-2je3sp
-jes4tea
-je6stim
-je3str
-5jesut
-je5sve
-je4t3ag
-jeta6ka
-je9tar.
-je7tara
-je9tare
-je4t3ru
-jets2
-jet4t5an
-jet6term
-jett3o
-jett5s6
-je4t3v
-jety8e
-2jeu6
-4jev6a
-je7vark
-je6vas
-4jeve
-jevi4s
-jev7na.
-jev7ne
-6jeø
-j1f
-4jg
-j1h
-4ji.
-jib5b
-ji7e6
-6jik
-2j3inf
-ji7ro
-ji6sj
-4jiø
-2j1k
-j4kap
-6j1l
-6j1m
-6j1n
-6jn.
-j5ni
-j2o
-1job
-5joc
-jo4da.
-jo6dat
-jo6dis
-jo4fl
-jojo5
-jok9ker
-jokk9o8
-jol5t6
-j3omr
-jon2
-jo5ne
-jon7n
-jons1
-jons5a
-jonse4
-jons3p
-jons5t
-jon6sti
-jon4str
-jonsu4
-4jop
-jo5ra
-jor6dek
-jor6d7erv
-jor6d7is.
-jor4d3o
-jord3r
-jord5s
-jords4l
-jor6du
-jo1re
-jo4rie
-jort6a
-jor5tet
-jo3r4u
-2jos
-jo3se
-jo4ses
-jo5stei
-1jou
-jour5
-j1p
-4j1r
-2j3s2
-j1t
-ju8are
-1jub
-jubi3
-ju9bo
-juda8s7
-ju3de
-ju2do
-ju7doe
-jue7ni
-ju4e5re
-jue9s
-jug9le
-5jugo
-4ju2k
-ju3ka
-ju3ke.
-ju3ken
-juk9sar
-ju2l
-ju3la.
-ju5lar
-ju5las
-ju8l9ei
-ju4li.
-ju6lid
-ju4lik
-jul7inn
-jull6
-1jung
-jun7ge
-j6u6ni
-8jup
-jup7s
-ju6p5å6
-ju4ra
-ju7ras
-3juris
-ju9ro
-ju3ru
-5jury
-1jus
-ju5so5
-ju1ta
-jut5o
-ju6va.
-ju6vak
-ju1å
-j5v
-jy1
-jy8de.
-jy2p3
-jæ5le.
-jæ3ra.
-jæ9ran
-jæ9res.
-jæ7te.
-j2ø
-1jø.
-1jøa.
-jø5b4
-1jøe
-2jøef
-4jøeg
-6jøei
-2jøek
-4jøend
-4jøeng
-4jøeta
-jø1f
-jø3gr
-jø9kj
-4jøl
-jø4les
-jøl6ver
-jø5me
-jøn5ne
-jø5pa
-jør4kel
-jør4sp
-jørs5v
-jør4tel
-jø3ru
-jør7ut
-jø1rø
-jø4ses
-jøst2
-jø5ta
-jø6t7av
-jø3te.
-jøte4t
-jøt5eta
-jø1tr
-jøtte4
-4jø1v
-jø4vel
-2jå
-jå5ar.
-jå9ge.
-jå6la.
-jå4le.
-jå7les
-jå5let
-1ka.
-2kaa
-5kaa.
-5ka4an4
-k3aas
-ka3at
-6kabes
-ka7bo
-4ka1br
-4kaby
-ka3da
-6kadale
-ka5del
-ka6del.
-ka4deri
-4kadg
-kadi7e
-2kadr
-5kadu
-4kady
-3kaen
-ka3fe
-kaf5fere
-2kafo
-ka9fr
-2kaft
-kaf5ta
-6kafø
-2kag
-k5a4gi
-kag2r
-2kah
-ka5isk
-ka5ism
-6kajo
-ka4ka.
-ka4ke.
-ka4ked
-ka4kel
-ka4kes
-ka4ki.
-ka4kis
-6k5aksj
-4kakt
-ka3ku
-ka3lam
-ka3lan
-ka6lant
-ka3las
-kald5s
-5kaldt
-kal2e
-3kalen
-ka5lev
-5kalis
-k6al8k5
-kal7k6e
-5kalky
-kal7la
-kal6lero
-kall4s
-ka1lo
-kal3p
-kal7s6v
-kal4ves
-1kam
-ka6ma.
-ka8me.
-4kameri
-4kammel
-kam4p3i
-kam4pr
-7kamu
-1kana
-ka8na.
-4kanda
-kan6da.
-5k6ande.
-1kane
-ka5ner
-kan4i
-ka5nin
-2k1anl
-4k1anm
-k3anno
-5kano
-ka4no.
-ka8nom
-4kansa
-6kansi
-3kansl
-1kant
-kan6t7end
-kan6t9r
-2kap.
-5kapad
-ka4pak
-3kapas
-ka5pe
-5kapell
-4kapen
-3kapit
-1kapp
-kap3re
-kap4s3t
-1kar.
-1kara
-4karab
-4karam
-karan5
-ka3rav
-1karb
-4karbei
-4karea
-ka6rek
-ka5rel
-1karf
-5karg
-ka4ri.
-ka6rid
-6k3arki
-6k5arkt
-1karm
-kar3n
-ka3rol
-kar3om
-kar5pes
-karp3s
-3karri
-7karsj
-kars4t
-1kart
-kar5ti
-5karu
-4karå
-1kas
-7kas.
-ka5se4i
-ka3sek
-kas5ev
-kas2ju
-6kasjø
-ka4sk
-kas3ka
-kasko5
-6kasp
-ka4spi
-kass6
-kas6sad
-kas4sak
-4k3assi
-kas4so
-ka4st
-8kas5to
-ka6su8s7
-kas2t3r
-1ka7t6a
-ka8tak8
-ka3ted
-3kateg
-ka3tet
-ka1to
-ka4t5op
-4ka1t4r
-kat7s
-kat5ta
-kat6tak
-kat4tel
-kat6term
-katte5s
-kat4til
-kat4tri
-ka4t5y
-k7au4r
-2kav
-ka7ves
-k9avis
-kav8l9u
-9kay
-6k1b4
-2kc
-k5ce
-kcen4
-2k1d
-k5d6v
-1ke
-2ke1a8
-ke9al
-2keb
-4kebr
-4kebuk
-4kec
-ked4
-ke5da
-4kedag
-4kedal
-5kedan.
-9kedant
-ke5de
-6kedei
-4kedem
-4kedes
-7kedes.
-2kedi
-2ke5dr
-ked8sk
-kedu6
-4kedy
-2kedø
-2keeg
-2keek
-2keel
-ke4ep
-ke7ern
-2keev
-4kef
-k3eff
-k5eft
-2ke1g
-k3egg
-keg8ga
-5kegladh
-ke5h
-3kehet
-4kehj
-2kei
-k3ei2d
-k1eig
-ke5il
-ke1im
-k6e1in
-keis2
-2kej
-2kek
-kek2l
-ke3kn
-k1eks
-k5ek4t
-k6el.
-2kela
-ke3l4ak
-5kelal
-ke6lans
-ke6lat
-kel5eier
-kel5eig
-kel7eik
-kelei8ke.
-6keleis
-kel3e4l
-4k5elem
-4keleng
-4ke5lep
-4keles
-7k6elet
-4kelev
-keli8e8
-keli9en
-3kelig
-4kelign
-4kelinj
-kel5int
-4kelis
-ke4lise
-5kelit
-4keliv
-kel5l
-4kelof
-6kelov.
-4kelove
-kels4
-kels7kar
-kel5sl
-kel5sp
-kel5st
-kel3sv
-kelsva9
-kel2t
-kelt3e
-6kelua
-4kelue
-kel9uka
-kel5uke
-ke4l3ur
-6keluv
-kel5v
-2kely
-2kelæ
-2kelø
-kelø8pa.
-6ke5l4å
-kelå7re
-2kem
-ke4mit
-5kena.
-6kenam
-ken6ap
-ke4nas
-5kenatts
-ken5de
-6k5en6den
-6k5en4der
-4kend5r
-ke3ne
-4keneb
-4kenek
-4kenel
-4kenem
-6kenett
-4kenev
-3kenf
-ke4ni
-5k6enh
-4ke5niv
-ken3k
-ken7n
-kenne4l3
-ke4nom
-ken1s2
-4k5ense
-kens6t
-ken7te
-ken5t6r
-4k3entu
-6ke3ny
-6kenø
-2keo
-ke7of
-ke3on
-4kep
-5kepi.
-9kepia
-7kepie
-6kepl
-kera7l
-4keram
-ke4ran
-ker5ant
-6kerau
-4kered
-4kereg
-kerei4d
-4kereir
-6kereis
-4kerek
-4ke5rem
-kere6n
-6kerene
-ke6r5eng
-4kerenn
-4kerep
-ke4r5ert
-ke3res
-4keress
-4kerest
-4keresu
-4keret
-5keret.
-5kereta
-7kerets
-3keri
-ke4rif
-6kerik.
-4kerike
-6kerikt
-ke4rim
-ke4rine
-6keringi
-6keringj
-ke4rinæ
-ke4ris
-8kerist.
-8kerista
-6keriste
-3kerm
-7kerop
-5keror
-4ke3ros
-kero6se.
-ke3rot
-k4ert
-ker5to
-ker3t4v
-ker3un
-4kerus
-keru6se.
-kerø6re.
-8ker8øya
-6ker6øye
-2kerå
-5kes.
-4kesam
-9kesam.
-7kesdale
-5kese.
-k5esel
-ke5sil
-4kesit
-2kesj
-k9es8ka.
-4k5eske
-kes8ke.
-4keski
-4keskj
-6keskå
-kesle6ge.
-kes5ped
-5kespot
-5ke4spu
-5kest.
-4ke3sta
-5keste.
-4ke5sted
-4ke5stei
-kes6tem
-4ke5s4ten
-ke3sto
-4kestri
-4ke5stru
-4kestu
-4kestø
-ke4s5un
-kes1v
-2kesy
-kes1å
-2keta
-keta6ka
-keta6le.
-5ketals
-k6etar
-ke3te
-5kete.
-4ketek
-7keth
-2keti
-2ketj
-2keto
-2ket2r
-kets2
-ket6t7enh
-ket8tes
-2ketu
-2kety
-kety6e
-4ketæ
-ketøy6s5
-2ketå
-2keu2
-ke5ur
-2kev
-kev2a
-keva8ne.
-5kevas
-3kevel
-kevi6sa.
-k1evj
-kev6ja
-kev4je.
-k3evn
-kev6ne.
-ke3vr
-kevæ8ra
-ke2yt
-6keæ
-2keø
-2keå
-1ké4
-két5
-2k1f
-k5fi
-4k5g2
-k3ge
-k5gh
-kgu4
-4k1h
-kh5ak
-k4har
-khe4o
-khjul8s
-kh6m
-ki3a2r
-k3ideo
-4kidol
-ki3dr
-k4ie2
-kie5re
-ki6el
-ki3er.
-2kif
-ki5g4
-ki6ka.
-kikk8s9
-ki1k8l
-ki3k2r
-kik4s
-ki8la.
-3kilde
-6kildr
-ki4le.
-ki5li
-4kilj
-kil9ja
-kil6le5st
-ki7loa
-ki4log
-ki3los
-ki4lov
-2kilt
-ki7lå
-ki8ma.
-ki4me.
-5kimo5
-ki4mol
-2k1imp
-kin9and
-ki4nark
-ki5nas.
-6kind
-ki5ne
-ki6ne.
-2kinf
-1king
-king5and
-kin3ge
-kin5ing
-2kinn
-kinnsi8da
-kinnsi8de.
-kinn4sp
-ki2no
-kin5ov
-2kins
-kinsi6de.
-2kint
-kinti8me.
-ki6nu
-2kinv
-kio4
-4kiol
-7kios
-2kip
-ki5pe
-ki4p5l
-kip5pe
-kip2s3
-1kir
-ki5re
-ki5ri
-4kirs
-ki3se
-ki5sko
-ki3smu
-ki1s2p
-ki5stav
-ki5str
-ki6ten
-ki7ti
-5kito
-ki4ton
-4kiu
-k6iv
-ki4vek
-ki4v5enh
-ki6vi.
-kiv3s
-kj2
-3k8jan
-kjap5pe
-6k7jarn
-kje7fj
-kje7f6r
-4kjegg
-3kjeld
-kjel7leg
-5kjemas
-3kjemp
-6kjenk
-kje9ny
-kje1s
-kje6t5r
-kjet5t
-6kjor
-k8juk
-kju5le.
-kju5len
-kju9r
-3kjærl
-k5jødi
-1kjøp
-3kjøri
-kjø4tr
-8kk
-k1ka
-k2kab
-kk3aft
-k2k1ak
-k2k3al
-k2kam
-k4kanb
-kk5and
-k8kand.
-k6kanden
-k4k5ang
-k4kann
-k4kao
-k4karb
-k6karg
-k4k7art
-kkar6ta.
-k5kast
-k6kasu
-k6katt
-k2k1au
-kk1av
-k6kedo
-k4kedu
-k2kee
-k2keh
-kk1ei
-k5kel.
-kke6lei
-kk5e4lev
-kkel3t4
-kkelu4
-kke4luk
-kkel5un
-kke6nan
-k5ker.
-k4kerei
-k4kerel
-k6kerent
-k4kerig
-k4kerit
-kke5r6und
-k4kesa
-k5kesau
-k4kese
-k4kesi
-kke3s4l
-k4kesp
-k6kestad
-k4kete
-k5ketet
-k4ketø
-k4k9g2
-k1ki
-kk3ind
-kk3inf
-kk9inn
-kk3ins
-kk3int
-k2kir
-k1kja
-kkjek8
-kk5jent
-k4k5jern
-kkje7t
-kk5ju
-kk5k
-kkla4g
-kk3lan
-kk8lar
-kk7lau
-kk1lo
-kk1ly
-kk3læ
-k4kn
-kk5ne
-kk5ny
-kk6s5v
-k1kod
-k1koe
-k4k1of
-kko6lig
-kk5oml
-kk7oms
-kk9omt
-k6koo
-kk1op
-kko7s
-k4kosi
-k6kosk
-k4kost
-kk3ove
-kk5p
-k4kra
-kk5ram
-kk3rap
-kk3rea
-kk5rei
-kk3ren
-kk3res
-kkri6k
-kk3ro
-kkro8e
-kkro4s
-kk3ru
-kk4rus
-kk7rø
-kk7rå
-k8k7s
-kks6al
-kk4sar
-kk5sed
-kk3s4ei
-kk4sin
-kk1sk
-kks4kj
-kks4l
-kk3sla
-kk7sle
-kk5sli
-kk3spe
-kk1s2t
-kks5tak
-kks7tep
-kkst4r
-kk8s7va
-kk5s4å7
-kk7t8
-kk5uk
-k4kuni
-k2k1u6t
-kk1v
-k2kvo
-k1ky6
-kkyl4
-kk5yr
-kk7yt
-k2k1ø
-k8køl
-kkø6r
-kkøy6
-kk1å2
-kl4
-6kl.
-4kla.
-4k5lagt
-2klak
-kla9ke.
-kla4mel
-3k2las
-k7lati
-kla4tr
-kleby7t
-3k4ledd
-kle4deb
-kle4des
-2kleg
-klei9e
-k7leik
-k4leiv
-k2lem
-5k6lem.
-7k4leno
-k6lerik
-kles7j
-kle5sno
-kle4sp
-kle5sti
-kles7s8
-2klet
-8klia
-4klie.
-4klig
-1k2lim2
-3k4lini
-k5linj
-1klip
-4klit
-klon7a8l
-1klos
-2klov
-k3lukt
-4klun
-klun5t
-k5lyd
-6k7lyf
-3k4lyng
-klyse7te
-k2læ
-klæ5res
-klø7na
-k6lør
-6kløs
-klø9va
-klø5ve
-6k1lån
-klå5re
-2k3m
-kmann6
-kmål2
-2k1n2
-3k2nap
-kna5t4re
-kne4b3l
-k4nedi
-5k2nee
-kne8se.
-k4nest
-kn5f
-knas8t7a8
-3k4nip
-knippe6
-kni2t3
-7k6niv
-kno7g
-kno6kl
-5knop
-kno9ta
-kno5te
-3k2nu
-4k3num
-3k2ny
-kny4s
-k2nø
-knø9le
-kn3øy
-9koa.
-4ko1ak
-9koane
-ko7ar
-ko2b3
-ko3bo
-4ko3br
-ko5da
-4kodd
-ko4de.
-3kodek
-5koden
-2kodø
-ko3e
-3koef
-4koek
-4koel
-4koes
-4koev
-ko4g5eng
-kog9ger
-kog3l
-ko4gre
-kogst6
-ko4gu
-ko6gå
-2koi
-koi4e5ne
-ko7i6k
-ko1in
-2koj
-ko8ja.
-ko4ka.
-ko4kab
-ko4ke.
-ko6kel
-ko1ki
-kokk6o
-k3okku
-4kok4l
-4koko
-2koku
-kolba5
-kol8d7a
-2kole
-ko4leg
-ko4lei
-ko6lel
-ko4let
-ko4leu
-3kolle
-ko5lo.
-kol5p
-4koly
-2kolå
-1kom
-ko4ma.
-4komaf
-ko4me.
-6komg
-ko4mi.
-4komil
-4komisb
-ko4mise
-2komr
-4komse
-kom3sl
-kom5so
-kom4st
-4kom5t
-4komu
-4komå
-k6on
-ko4na.
-kon3d
-kon6dr
-kone5l6å
-4koniv
-kon3s2
-kon6s7v
-kon6ton
-ko4nu
-1ko1o
-4koom
-ko5pa
-ko5pers
-4kopet
-ko4pi.
-ko4pip
-ko4p9l
-4kopo
-kop5per
-2kopr
-ko1ra
-ko4ra.
-kor6da.
-kor4d3o
-kord5s4ø
-kor4du
-ko1r6e
-6koref
-4ko7rei9
-ko5rem
-ko7ret
-ko3ri
-ko6rik
-4korm
-ko5rol
-6korpa
-6korpe
-1kor3r
-kor4sal
-kor6s5inn
-kor4s5l
-kor6str
-kor4sv
-kor5tes
-kor6top
-kor4t5r
-kort5s4
-ko5ru
-ko6rume
-1kos
-2kosa
-ko6sa.
-ko4sed
-ko4sek
-5kosele
-ko5sen
-ko4ses
-ko9si
-kosi9d
-ko2sk
-ko1sl
-4kosmu
-2koso
-2ko1s2p
-ko6sta
-kost7as
-kos6t5ers
-kost5j
-ko8s8t7ø8
-4kosø
-kotes7
-ko5t4i
-4kotil
-4kotr
-ko6tre
-kot2s
-kots5tr
-kot4ti
-kott4s
-kotts5t
-4koty
-2kou4
-kout3
-kou7ta
-ko1va
-kover7e
-4kovr
-1kov4s3
-4koø
-4koå
-6k1p
-kr6
-k3rad
-1k4raf
-5krag
-3krakk
-krani6e7n
-6krank
-3krans
-4krap
-kra9se
-7k8ra4sj
-kras5s
-kra4to
-kra4u
-1krav
-4kred.
-3kredi
-4k1reg
-kregi3
-4krei
-krei9e
-krei5s
-6krek
-kre4kli
-2krel
-k5rela
-kre8m7o
-4k3renn
-4krent
-6kreo
-k5repr
-5kreps
-5kresj
-4k3ress
-kreta9
-6k7retn
-k4rets
-k3rett
-2krib
-4krif
-7k6rig
-krig6s5
-kri9ga
-4krik
-kri5ke
-kri4kj
-krik6ka
-1krim
-kri4me
-3k6rins
-krin6s7t
-kri2p
-1k2ris
-7krisene
-k2rit
-3krite
-6kriv
-k2ro
-kro5b4
-kro5de
-k3rofo
-k4rofor
-krok7k
-k6roni
-k5ronl
-kro4nom
-k4rop
-krop9n
-kropp4
-k4rost
-kro9t8e
-kroten9
-kro3v
-kru3i4
-krum3
-kru5sa
-krutt5i
-kru3tr
-2k5ryg
-kry7pa
-kry5pe
-kry4pi
-3krys
-krø5ke
-6k5rør
-krø3v
-4kråd
-krå8da
-kråe6
-5kråk
-krå5le
-krå9m
-krå7ne
-k1sa
-k3sa.
-k2s3ad
-ks3alt
-ksa5me
-k3sane
-k4sans
-k4s3ant
-k3sar.
-k7sara
-k6s3ark
-k7sas
-k1sc
-k2sed
-k2see
-kse6ge
-k2s1ei
-k5sekt
-k5sela
-kse5lev
-ksen5to
-k4serf
-ks3erk
-k5serol
-k4sesa
-k4ses6k
-k4se3sm
-k5seso
-kses4p
-k5sess
-kses6sel
-kses8serie
-kses4sp
-kses4st
-kse6te.
-ksfø4
-k5sia
-k2sif
-ksi5ko
-ks3ind
-k3sing
-ksi7ni
-ks3inn
-k4s3ins
-k7sio
-ksi3st
-k4siti
-6ksj
-ks9kab
-k6s3kal
-k6skio
-ks1kj
-ks5kl
-ksko7na
-ksko5ne
-ks1kr
-ksk8u
-ks9ku.
-ks7kua
-ks8kut
-ks1k6v
-ks1l
-ksla8ga.
-ks5lo
-k7s6lu
-k8s7lug
-k8s5løs
-kslø8va
-kslø8ve.
-k5s4mak
-ks4mel
-k8smid
-ksmå
-k5s4no
-k7s8nø
-k1so
-k6s7oa
-k6s5o6d
-k4sog
-k4somb
-k2s1or
-k2sot
-ks1ov
-k3spal
-ks3pek
-ks5pio
-ks3pir
-kspor6t5r
-6k6s5pors
-ks1pr
-k8sr
-k3spy
-k8s7s
-ks3sm
-k5stad
-k4stak
-ks3tal
-ks5tant
-k7s8vak
-ks6tav
-kste4da
-ks4teg
-k3stei
-k4stek
-kst3ev
-kstev6ne.
-ks4til
-k4stin
-ks1tj
-ks1tr
-kst6ran
-ks4t5rek
-k6stren
-k6strer
-ks4tri
-ks4tro
-ks9tum
-k5stus
-ks3tyv
-k2stå
-k1su
-k6sun
-k8suni
-ks1v
-k9s8vake
-ksva8ne.
-ks5veg
-k7s6vert
-k5s4vin
-k8svis
-ks5w
-ksy8na
-ksy8s7m
-ks5ær
-ksø4ke.
-k6s3øl
-ks1å
-k3så.
-k4såp
-ksår4
-ksåt4
-6k1t
-k5ta.
-kta7f6
-k4tag
-kta6ka
-k4t3aks
-k4takt
-kta6la.
-k4t3ana
-kta9na.
-kt3anl
-k4t3ann
-k4tanv
-kt3app
-k9tar.
-k4t3arr
-k4t3art
-k6tass
-k5tast
-k6t7atl
-kt5avh
-kt5avk
-k6t3avl
-k3ted
-k4teda
-k6tee
-k4tefø
-kt5e4ge
-k2te5i
-k6teka
-kte5le
-k6t5elsk
-kt5e4lit
-ktem8
-kt7emn
-k4t3enh
-k9ter.
-kterie5n
-kterie7ns
-kter5s6
-k7tes.
-k6tesa
-k6tese
-kt5eske
-ktes6ke.
-kt5esti
-k4t5e4ta
-k4tete
-kt5evn
-ktev6ne.
-k5tib
-k3til
-k4t3ins
-k5tir
-ktis5t
-kt7i6te
-kti6v7end
-k2tja
-kt7ju
-kto9a
-kt5off
-k6togram
-k4toli
-k2tom
-kt5omf
-k2t1op
-k9tor.
-k7tora
-kt5ord.
-k5tore
-ktori9e8
-ktor7s
-kt1ov
-kt3ral
-k2t1re
-kt2ro
-ktro5s
-k2t1ru
-kt4s5amb
-kts5ar
-kt5sek
-kt7sem
-kt4s5er
-kt6sin
-kts5kra
-kt5sku
-kts4kv
-ktsle6ge.
-kt6sok
-kt4spa
-kt5spre
-kt4sta
-kts6ton
-kts5top
-kt4stå
-kt3t8
-ktu9er.
-k4tuk
-kt7und
-k2t1ut
-kt8yo
-kt7yrk
-ktyr8ke.
-ktør7
-ktør8e
-k6t5øs
-kt1øv
-k2t3år
-ku2a
-ku9an
-ku4be.
-ku3bj
-2kud
-ku4dal
-ku4er.
-kue4r5a
-ku4et
-6kuf
-ku4f3l
-6kug
-k5u4gr
-ku7is
-kuit6
-ku7k8l
-6kuldi
-kuld3r
-ku4led
-ku4leg
-ku6lei
-ku4lem
-ku5len
-ku4let
-ku4lev
-ku5li
-ku6li.
-3kull
-1kult
-ku4man
-kumen6tal
-ku6mi
-kum2s
-3kumu
-1kun
-kund5s6l
-2k1ung
-kun4ge.
-k6unn
-ku4o
-1kup
-ku4pe.
-kup4pl
-ku7ra
-ku4rek
-ku8r7o
-ku7r6op
-kuro8pa
-1kurs
-kur6sk
-kur4sp
-kur4s3t
-kurs3v
-kur3t
-ku5ru6
-kuru9ken
-kuru7ker
-1kurv
-kur4v3i
-1kus
-5kus.
-ku7sa.
-kus5a6k
-kus5ar
-5kuse
-ku4s5el
-ku4ska
-ku7s6pe
-kus3t
-6k1ut.
-ku1ta
-4ku5te.
-ku5to
-ku6t7r
-2kuts
-1kuu8
-kuøy6
-kv2
-kva8ke
-k4vali
-k6vard
-kvari6e5n
-5k6vart
-kva9se
-kve3d2
-kve7e
-kve8g7r
-k4veik
-k6veil
-7k8vein
-kvei9se
-1k4vel
-kve5la
-4k3verd
-5kvern
-kverns8
-2kves
-kves5t
-7k6via
-4kvid
-3k4vie
-kvi4ene
-kvi5er
-kvi7la
-3kvinn
-kvi5se
-7kvist
-2kviv
-1kvo
-k1vog
-6kvok
-k4vot
-k2vu
-4k3væ
-k1vå
-k7we
-k5wu
-ky5a
-ky6el
-4kyf
-kyf5le
-2kyg
-ky4leg
-2k3yns
-kyn6skjer
-ky2p1
-ky4p5r
-1kyr
-kyrie5ne
-kyr8ke.
-ky8sa
-4kyse
-ky6se.
-kyse8te.
-ky3skr
-kys6sk
-1ky4st
-kyst3a
-kys4tel
-2kyt
-ky6ta.
-kyte3s
-k1æt3
-1kø.
-kø2ar
-1køe
-kø4en.
-kø2er
-6k1øk
-kø4le
-k1øn
-køn6skjer
-k3ørr
-køs4
-kø5se
-køy7ar.
-k7øyd
-køy4e5ne
-1k6øyr
-4kåke
-kå3le
-kån8da
-kå5ne
-kå4pe.
-kå7pen
-kå9ras
-kå1re
-kå1ri
-kå2t5
-k5åt6t
-1la.
-2laa
-la1b
-4laba
-la6bl
-1labo
-2l3abon
-4laby
-4lad.
-l6ade
-la4dem
-4ladg
-ladi9e8
-2ladm
-2ladr
-lad3s4
-1lae
-2laei
-4laent
-4laep
-2laf
-la3fl
-4lagg
-lagi4
-6lagne
-la2go8
-lag5om
-la2g1r
-lag5san
-lag4sj
-2laha
-2la1in
-la5ka
-la4ke.
-4lakj
-l2akk
-la2kr
-8l7aksel
-l7aksj
-l5aksl
-4lakt
-lakterie6
-la5kø
-2lal
-l1alk
-la5mab
-4lamb
-la4mes
-la4met
-la3mo
-l8a8mu
-4l3anal
-lan2c
-lan6das
-lan6deb
-land3r
-l6a3ne
-3lane.
-4lanet
-lan6gel
-lan4gem
-lan6germ
-lan4gr
-lang3s4
-lang4s5e
-lan6g5ø6
-4lanl
-4lann
-l3anno
-la4nor
-6l5ansi
-lan8s7p
-lan5ti
-4lanv
-l3anvi
-2lao
-la6pal
-la7pi
-la8pl
-lap8p7r8
-lapp7s8
-lap5sa
-lap5sen
-lap5s4i
-1l8ar.
-6l7arab
-2larb
-l8are.
-4l7area
-la9red
-la5rem
-l6aren.
-4larena
-lare6t
-la6r7eta
-5larf
-la7ria
-lariar
-lari6e7n
-4l3arki
-l2arm
-lar3n
-6l7arr
-4lart
-lar6ta.
-lar7vet
-la6sc
-la5se
-lasi9e
-la2sk
-7laskj
-4lasm
-la5smi
-4la4sp
-las6sak
-las6sam
-las6sat
-las6sel
-l6ast
-4lastr
-las3v
-la1ta
-lat5ang
-6latau
-la4teg
-lat6ek
-la4teno
-late5s4
-la5ti
-la6ti.
-4latm
-la1to
-lat7ra.
-lat9ran
-lat5rar
-lat4t5is
-lat4tra
-latt6u
-lau7a
-2laud
-laue6
-4laun
-4laur
-lau7se
-lau6st
-2laut
-2lav
-la4v5al
-la4vel
-l5avh
-lav5inn
-6lavs
-7lavå
-1law
-la6y5
-6l1b2
-lba3de
-lba4k
-lba5ke.
-lba4ne.
-l5be
-lbe9na
-lbe8re.
-l4boa
-l6buh
-lby4e
-l5bå
-2l1c
-l4ce.
-6ld
-l7da.
-ld5aks
-ld5akt
-l9dand
-lda6t5o
-lda6t5y
-l2deb
-l5den
-l2de5o
-l2dep
-l3der
-l7der.
-lder7a
-l4derek
-l6derik
-l6derklæ
-lderle9g
-lder5s6te
-lder6s5ti
-l4desh
-l6destr
-l9dé
-ldis7k
-ldo9a
-l8d5oks
-l2dol
-l4dore
-ld5ovn
-l3drak
-ld3ran
-ld5ras
-l6dre.
-ld7regn
-ld5rer.
-l8dres.
-ld1ri
-l7dry
-ld1rø
-ldse8
-ld4sek
-ld4sel
-ld4ses
-lds1k
-ld4ska
-lds4kj
-ldsla8ga
-lds6leg
-lds4let
-ld4s9m
-ld5s4om
-lds3tr
-ld6tus
-ldø2
-ldø5d
-ldø5l
-ld7øy
-1le
-2lea
-le7ag
-le3ak
-le1al
-lea5la
-3leas
-le5at
-2leb
-le4bem
-le6bosta
-5lebæk
-lec4
-2leda
-5ledar
-led4dø
-4ledeb
-le4dem
-6ledep
-le5der
-le3des
-2ledo
-3ledop
-5ledov
-le4dro
-le5dry
-led1s2
-6ledu
-4ledy
-2ledø
-4le3då
-2lee
-6leei
-6lefa
-lefa6ne.
-4l1eff
-2lefi
-4lefl
-4lefor
-4lefot
-2lefr
-l1eft
-6lefy
-4lefø
-6legap
-5legas
-3lege
-le4ged
-le9gen
-le4gera
-le9geran
-le9geras
-le4gero
-le4geta
-le4gev
-7leggi
-le3gi
-6legif
-4legj
-2le1g2l
-le4gol
-4legre
-leg3s4
-2legu
-2legå
-2leh
-6lehal
-6lehamr
-6lehan
-6lehau
-6lehave
-le3ido
-lei8e
-l6eie.
-lei5ende
-lei4e5ne
-lei9er
-l6ei8et
-leig6d
-lei4ger
-lei7ger.
-lei4get
-leig4h5
-leig6na
-leig8ne
-2lein
-le3int
-lei6r7u
-leis7t
-l6eit
-2lej
-2leka
-le4ka.
-6lekan
-lek6e
-le3ki
-2lekj
-lekk7s
-2lek2l
-2lekn
-lek4na
-2leko
-2lekr
-4l3ekso
-4leksp
-lekt5ord
-lekt4s5t
-2leku
-2lekv
-4lekø
-4lekå
-2le3la
-8l9eld
-2lele
-l3elem
-4l5elg
-5lelig
-2lelo
-3lels
-4l3elsk
-le1lu
-4leluk
-l5elv
-2lely
-4lelæ
-2lelø
-lelø6pa
-4lema
-le3me
-le8me.
-4lemet
-8lemetrisk
-8l9emn
-lem8na
-2lemo
-lem9ped
-lem5pes
-3lemr
-lem4si
-lem4s5ø
-2lemt
-lem5ti
-2lemu
-6lemy
-4lemø
-2lemå
-le4na.
-le4nal
-4lenav
-lend8a
-len9dan
-6lenden
-l6endre
-4lendri
-4lened
-4lenem
-4lenev
-l4engd
-len4g5r
-leng9u
-le5ni
-4leniv
-lensa4
-len4s5ak
-4lensem
-len5ses
-len4sta
-len4tam
-len4tr
-len8t9ra
-2lenø
-4lenå
-2leo
-5leol
-2lep
-le5pa
-le4pel
-le8p9enden
-le2p3j
-le8pla.
-le4ple
-4lepo
-4leraba
-4leram
-le2r3amb
-ler5d
-l8ere
-le9re.
-6lerea
-4leref
-4lereg
-4le9r8ei
-4lerek
-le5res
-4lereso
-4leresu
-4leret
-4lerev
-9leri.
-7lerie
-le6riei
-le7rina
-le4riv
-4l5ernæ
-le5ro.
-4lerom
-6lerope
-le3ros
-4le3rot
-7lers.
-lers4p
-ler7te
-le1ru
-4lerus
-leru8se.
-2lery
-5leryr
-2lerø
-2lerå
-5l6es.
-le4sab
-4lesam
-7lesar
-4lesau
-2lesc
-le5sed
-le4seg
-4lesek
-le5sen
-le3ser
-4leset
-4lesho
-le6si.
-4lesig
-le7sing
-les5inn
-4lesit
-4lesju
-le7skap
-le4s3kj
-6leskol
-le6sk9u8t
-4lesla
-2lesp
-6lespal
-les3s6
-lesse6ne.
-4lesta
-9lesta.
-7lestal
-le5sted
-le5steg
-le5stel
-le4stim
-le3sto
-4lestrø
-4lestyr
-4lestø
-4lestå
-4lesug
-les1v
-le5s6vi
-4le5sy
-4lesø
-5lesøy
-3let.
-le4tab
-6letak
-leta8ka
-leta8le.
-l5e4tas
-5lete.
-6letea
-4leteg
-4letek
-le5ten
-6letenk
-6le7tep
-le5ter.
-4letes
-2le3ti
-l5e4tik
-2letj
-2leto
-2let2r
-le7tre
-le5t4ri
-3lets
-let6sj
-lets8k
-let6tea
-let6tr
-lett3s4
-2letu
-le4tv
-2lety
-lety8e
-4letø
-8letå
-4leul
-2leun
-l1eur
-2leut
-le4ute
-2lev.
-le6vad
-le6valu
-le4ved
-4leveg
-4levei
-4levek
-6levern
-4le4vev
-levi6d
-lev5n
-2levo
-lev1r
-4levs
-4levæ
-lex1
-4leø
-2leå
-5lée
-1lér
-7lét.
-7lè
-5lê
-4l1f
-l4fa.
-lf5ant
-l5far
-l5fe
-lf3f
-l5fig
-l5f6in
-lf5ja
-l7fje
-l6f3nul
-l4fom
-l4fut
-2lg
-l6gaf
-lga8le.
-l4g5alt
-l4g3ana
-lga5t
-lga4ve.
-l2ged
-l4gela
-l4gele
-l2gem
-lge3na
-lge4r5an
-lge4rap
-lge5ri
-lger5un
-l4gery
-l4gesl
-l6ge7sp
-lg5g
-lgie8n
-lg1lo
-lg5ly
-lg5n
-lg3ob
-lgo2d
-lg1ok
-lg1om
-lg5ov
-lg3ref
-lgr9øy
-lg3s2e
-lg2sk
-lg5s4kre
-lgsle9g
-lg5s4tr
-lgu4l
-lg3un
-lg3ur
-l1gæ
-lg5ø
-l6gå.
-lg5år.
-lgå8va
-lgå8ve.
-8l1h
-lha8ka.
-lhav6s5
-l5hj
-1li
-li1a
-li4ala
-li2am
-li5ans
-li4as
-liba5
-libe5ro
-libi5
-libie6
-liby5e
-li4dak
-li4ded
-li4do.
-2l1idr
-lid3t
-li4ene
-li3er.
-li5ers.
-lie5s
-3lif
-4lifat
-lif5f
-3lig
-li4ga.
-li4g3an
-li4gar
-lig9art
-li8gas.
-li4g5enh
-li4get
-5lign
-li4g3re
-lig3se
-lig3s4i
-lig3sl
-lig3s4p
-lig5s4ti
-lig5str
-li2gu
-4lih
-li5kan
-li9kar
-li7kas
-li5kee
-li3ken
-li5keså
-li9ki
-likk3o
-li1k2l
-9likn
-liks4t
-li5ku
-6lila
-8l5ild
-li3le
-lil5lebe
-lil5let
-li4mar
-li4mas
-li6mate
-l6ime
-li4me.
-4limh
-limp3r
-lim7r
-lim9u
-li4na.
-4lina6l
-lin6c
-linch5
-5l4indr
-4lindu
-lind3s4
-l5indus
-li4ne.
-li3ne6a
-li6nem
-2l1inf
-lin4g3j
-ling5l
-ling7sen.
-5lingv
-4l5inju
-lin5kes
-lin5kle
-lin4kv
-2l1inn
-lin5net
-3linni
-6linns
-6l5inntr
-li4nor
-l4inse
-5linsk
-4l3inst
-4lint
-2linv
-li6n5ø6
-lio4no
-lion5sp
-lion5sv
-li5o6s
-2lip
-lipes4
-lipp4s3
-li9rar
-li4rek
-4lisak
-li5set
-lis4kl
-2liso
-4lisp
-lis6sp
-lis7tan
-lis6terk
-lis5ti
-4lis6til
-list3o
-li6s8tr
-list7rø
-lis4t3u4
-li4st5y
-listyr8ke.
-li4tee
-li4tek
-li4ti3a
-li4tid
-li4tig
-li4til
-li4tim
-liti5st
-li4tiv
-lit5j
-6litn
-li5to
-li2t1r
-lit5rer
-lit6tele
-lit6terk
-lit6term
-litt5s6
-li5ty
-7liu
-li6va.
-li4v3ak
-liv5eg
-livi5e
-liv2s3
-2lj
-l1jan
-l1jar
-l4jarb
-ljar5s6
-ljas4
-l4jed
-l6jee
-l2jei
-l2jek
-lje3l
-lj9elv
-l1jen
-l3jer.
-l4je1s
-l5jes.
-ljes4t
-l5jet.
-l4jete
-l5jete.
-l6je5t6r
-l2jev
-l5jé
-l1ji
-3l2jod
-ljo8e
-l4jom
-lj5ori
-3ljos
-lj5un
-l7jur
-lj7ut
-ljø3
-l5jøs.
-6l1k
-l3ka
-l5ka6l
-lkali9e8
-lk4an
-l6k5b
-lk4e
-l3ke.
-l2ked
-l5kedal
-l3kede
-lkeei4
-l6keh
-l5keleg
-l8k7els
-l3ken
-l7ker.
-l4kera
-l4keri
-l4k5ers
-l4ke3ru
-l5kestad
-l5ket.
-l5kets
-lk2l
-l7k8lem
-lk4li
-l5k4lu
-l6k5nin
-l6ko.
-lko9ma
-lko9sa
-l2kot
-lkras5
-lk5ri6k
-lk4ser
-l4k3s2h
-lk1s4t
-lku4le.
-lku8t
-lk9ute
-l6kveg
-lkå1
-6l1l
-l5la6a
-ll6a5f
-l2lak
-ll1al
-l4lami
-l5lane
-ll3anl
-l4l5ano
-llans4
-ll5ansk
-ll7apa
-llap3s
-ll4as
-ll5asp
-ll5aur
-llau6re
-ll7avl
-ll5avr
-ll3d2
-lle5a
-l5leak
-lle8da.
-lle4d3r
-l3lee
-l2lef
-lle5gev
-lle5gr
-l5leha
-l5leho
-l5lehå
-l4l5eig
-l4leki
-l6l5ekst
-l4leli
-l2lem
-llen6da.
-ll5enden
-l4lendr
-l6lendt
-l4lenk
-l5l8ens
-l4lentu
-l4lenu
-ll5eple
-l6l5e6rik
-l4lerob
-ll6es
-lle4so
-lles5pr
-lle5stø
-l5let.
-l4leta
-l5lets
-llet6tele
-l8letæ
-l2leu
-ll5even
-lle7vev
-l5levå
-lle6y
-l2lé.
-ll7g2
-lli1e
-lli5e4n
-l9lig
-l2lim
-l4l3ind
-l4lins
-ll3int
-l9lint.
-l3lip
-l4lir
-lli6sen
-l4liv
-ll1j
-ll7k2
-ll5m
-llmue9ne
-llmu7ens
-llmu9er
-l5lo.
-llob5
-l2lod
-l4l3off
-llo5id
-ll5oks
-llo2m1
-llom5s6
-ll3op
-ll5opp
-l2l1or
-l4loso
-l6lote
-ll5p
-llra7n
-ll4sak
-llsa6me.
-ll4sem
-lls5end
-llsk4
-lls6kar
-lls5kv
-ll5skå
-lls5lag
-ll3smy
-lls4no
-lls4te
-lls6tig
-lls7øk
-ll3t4
-llto4e
-l8lua
-l4lu4e
-l4luf
-ll7ug
-llu4k
-l8l7uka
-l4l3uke
-l6luks
-l5lum
-l4l1un
-llun6ge.
-llu4pi
-l2l1ur
-l3lus
-l2l1ut
-ll1v4
-llva8n
-lly4se.
-l4løk
-ll5øks
-llø6pa.
-l4løve
-ll7øy.
-ll5øya
-ll3øye
-lløy6er
-ll5øy6n
-ll1å8r
-ll3å2s
-2l1m
-l5ma.
-lm3anm
-l4map
-l4marki
-lm3av
-lm7b
-l4m3els
-l4melu
-lm5e4po
-l4m5erf
-lme7ri
-lme7sti
-lme5t4r
-l5mil
-lmi8le.
-lm3ind
-l5ming
-lmini6
-lmin7ne
-lm3ins
-lm5int
-l7mis
-lm5l
-lm5m
-lm1op
-lm1s
-lms6j
-lm5s2p
-lm3t
-lmu4le.
-lm3ut
-lmyr8ke.
-l4mø.
-l6m5øs
-lm5øy6
-lmøya9
-lmå6la.
-lm5å4r
-l4m5ås
-2l1n
-l2nab
-l3ne
-lni4u
-l7ny
-lo1al
-7loane
-lo1a4r
-5loar.
-2lob
-lob5by.
-lob9byan
-lob9byar.
-lob5bye
-lo2bl
-lo2d3a
-lo3de
-lo4d3ri
-lod3s4m
-lod7ste
-lod7s6v
-lo6d5u
-6loeng
-6lofj
-3loft
-1log
-lo5ge
-lo6g5e8v
-lo4gir
-log2o
-lo3gop
-log8res
-lo6g5ro
-log5sa
-4loh
-lo5id.
-lo3ide
-lo1in
-3loja
-lo1ki
-lok4ko
-lok6kul
-2lo1k4l
-4lokon
-2lok7s4
-lok8se.
-lo1k4v
-lole6ge.
-2lolj
-lolo9
-l5omdr
-lo4m5in
-lom4mel
-lomst9r
-lo4nal
-6lond
-lo5ne
-lon4g3r
-lo4nit
-lon7skj
-2lop
-lo3pa
-lo4pea
-lop5pa
-5l4opt
-lo1ra
-2lord
-lor6da.
-lo1re
-4l1org
-lor4g5l
-lorie6
-6lorm
-lo1ro
-lo7rød
-lo7sa
-lo6sek
-lo4ses
-lo5sev
-los4kle
-lo1sl
-lo7sp
-2lost
-lo9tes
-lo8ti.
-lo3to
-4lottet
-lo1un
-1lov
-lov7ald
-lo3van
-lo9vand
-lo7vane
-lo3var
-lo3ve7d6
-l6over.
-love5re
-l5overn
-6l5overs
-6l5overt
-7lovo
-lov3sa
-2l1p
-l7pa
-lpa5re
-lpas5
-l4pedo
-l4pee
-l2pei
-l2pel
-l5peleg
-l3peli
-l4pelin
-l3pesm
-l4peti
-l2peu
-lp2h
-lp2i
-lpin3e
-lpi5ne.
-lp2l
-lpo6et
-l4put
-l5q
-2l5r4
-lra8da
-lradi4u
-lra6ne.
-lre4de
-lre4i
-lre8ka
-lre8ke.
-lre8va
-lri8ma
-lri4ve.
-lro8de.
-lro6pa.
-lro8sa.
-lro4se.
-lrot5s
-lrø6re.
-lrø5v
-lrå8da.
-lrå4de.
-8l1s
-l2sad
-lsag6
-ls5ald
-ls4am
-l7sana
-lsan6ke.
-l4s5ano
-l4s3ans
-ls5ark
-l4sat.
-l4scu
-l3se.
-l2sed
-l2see
-ls3eid
-ls5eig
-l4s3ele
-l4s3elv
-l2sem
-ls5emb
-l4seno
-l7ser.
-lse2s
-lses5ku
-lses3l
-lses5pa
-lses5s
-lse8s5tr
-lse4te.
-l2seu
-l6sev
-l4sf
-l2sh
-l5sig
-l5sik
-l6s5ill
-l4sim
-l5simu
-l4s3inn
-ls5jakk
-l5sjef
-ls3jeg
-ls3jen
-8lsk.
-ls5kabi
-l4s5kan
-ls5kari
-lsk5art
-l6s5ke
-lskif5
-l2s3kild
-lskinn6
-lskinns5
-ls1kjed
-ls3kjo
-l6skl
-lsk3læ
-ls3koa
-ls5kor
-ls3kov
-l4skra
-ls8ks
-lsk5un
-ls7kva
-ls3kvi
-l4skå
-ls3kåp
-lskå6pa
-l2sl
-lsla4ga
-l7slagn
-lsle6ge.
-ls5lo
-l5s4luk
-l6s5løs
-l2sm
-l5smør
-lsmå6la
-l2snu
-lsok3
-ls5ond
-lson6de.
-l2s1or
-ls7o6se
-l5sot
-ls1ov
-l2spa
-l9speg
-l5spei
-l9spel
-l5spi
-l4spr
-l5spred
-ls3pri
-l8s7s
-l4s3tak
-l4s3tal
-l6stank
-8l7s8tat
-l6ste.
-ls4ted
-l4steg
-l3ste4i
-ls4tel
-ls5terr
-ls6ti.
-ls4tie
-ls6ton
-ls5tren
-l9stri
-l2su
-l5sub
-l3suk
-ls1un
-l2s1v
-ls7vea
-ls5vee
-lsve8en.
-l6s5vek
-lsve7re
-l4svik
-ls6vind
-l4sør
-l2s1øy
-l2s1å
-2l1t
-l4taa
-l4taf
-lt3akt
-l3tal
-lta4la.
-l4t3alb
-lta6lev
-lt3anl
-lta6no
-lt3art
-lta4st
-lta8tes
-lta4t3o
-ltat3r
-lt3avk
-l5tavæ
-lt9b
-l3tede
-l4teka
-lte6ma.
-lt4en.
-l4t5enh
-lt3epi
-l4teras
-l4t5erst
-ltesa8me.
-ltid6s
-l4tiet
-l2tif
-lti6g5
-l2tik
-l4tina
-lt3ind
-lt9inn
-lt3ins
-l4tivi
-l2t1ja
-ltle8ge.
-lt9n
-lto9ar
-l3tog
-lto4s
-lt3ost
-lt8ep
-lt2r
-l3tra
-lt3reg
-lt3rei
-l6treko
-l6t5rel
-l6t7rem
-l4trens
-lt3res
-l5t4rest
-l5trev
-l4t5rit
-lt3rol
-lt3rom
-ltro8pa
-l5tros
-l4t5rød
-l5trå
-lt1s2
-ltsa8me.
-lt5s4i
-lt7s6t
-lt2s3v
-lts4vi
-lt7t8
-lt3und
-ltu4ra
-ltur5e6
-ltu5r6en
-ltu5r6er
-ltur5s6
-ltur5å6
-l2tut
-l5tv.
-ltva8la
-l3tvs
-l4t5w
-l3ty
-lty8d
-lt7øl
-lt3øv
-lua8r
-2lub
-lub6band
-lu6bri
-lu5c
-lu7ere
-1luf
-3lugar
-lu7go
-lui6
-luid6er
-1luj
-4luk.
-lu4ka.
-4luket
-luk6keri
-lu3kr
-5l6ukt
-4luly
-l4um
-lu6mel
-lu2mo
-lum6sk
-lu4mø
-lun5d4r
-lu4ne.
-lun4gel
-l7u2ni
-lun5ne
-3lunsj
-4lunt
-lu6o
-lup4s
-lu2p3u
-lur2e
-6lurei
-lu5ren
-lu5ri
-6l5urn
-lur8na
-lur8ne.
-lur8ta
-1lus.
-lusa5
-lu7sak
-lu6sel
-lush7e
-lu2s5k
-lus4o5
-lus4sid
-lus4s3t
-lus1t
-lus2t3r
-luta3
-lu3ta.
-lu7tet
-6lutf
-4lutg
-luth
-3lu5t6he
-lutla9
-lut6m
-lu1to
-lu4t5r
-2luts
-lut4tal
-lut4tap
-lut4t5at
-6lutv
-1luv
-lu4va
-lu4ve.
-lu9ven
-lu9ver
-8lv
-l1va
-l4va.
-lva6k
-l4vakti
-lva6la
-l4va4m
-l4vana
-lv8and
-lv7a8p
-l7var.
-lv7asa
-l4v5ass
-lve3d4a
-lve5i6s
-l4vela
-l4vele
-lv4en
-lve9ne
-l9ver.
-lve9rau
-l4veru
-l4vesk
-lve5sl
-l7v6et.
-lve5str
-l9vé
-l1vi
-lvi8ene
-lvi9er
-lvi6ka.
-lv9im
-lvin5g6r
-lv3iro
-lv1j
-lvly8se.
-l6v3n
-lv1of
-lvoks6
-lv9op
-lvo8re.
-lvor4s
-lv5o4v
-l6v5p
-lvra8r
-lv9ri
-lv1s2
-lv5se
-lv7s6k
-lvs6l
-lv9ta
-lv1å
-l3våg
-lvå4p4
-lvå6r
-l5w
-ly1a
-2lyb
-ly4d7r
-ly5e
-lyes3
-ly4gel
-ly5g6l
-ly8is
-2lykj
-lyk6keri
-ly5ku
-ly7kv
-6lykø
-ly5l
-ly5me
-2lymp
-ly2n3a
-ly4ne.
-ly4n5il
-lyn3s2
-2lyo
-ly5ok
-ly3pe
-ly1r8
-ly8ra.
-ly6re.
-6l7yrk
-ly4sa.
-ly4s5a4k
-lyse6te.
-lysk4
-lys3kj
-lys9kl
-ly2s1l
-4lysp
-lyst9ra
-6lysy
-ly8ta.
-4lytek
-ly4teri
-lyte5s
-l5y4tin
-ly1tr
-ly5vak
-ly3ve
-l3z
-l6z5b
-1læ1
-6læd
-læ6ra.
-læ5rar
-lær4arm
-læ4re.
-lære3i
-læ3rer
-læ4re3s
-læ5res.
-lær6sv
-læ6ta
-1lø
-lø3de.
-lø4del
-lø5dem
-lø4er
-løk5kj
-4l1økn
-2løko
-lø4k5r
-l5ø6l
-lø9me
-lø2na
-løns5t
-løp6s5
-5l4ørd
-lør5k6
-lør5n
-4l5ørr
-5løs.
-lø2sa
-lø5san
-lø5ser
-løs3k
-løs3s
-2løt
-lø9ta.
-lø3te.
-lø4teg
-løva9r
-6l7øv8d
-lø4ve.
-lø3ver
-lø5ves
-6løy.
-4løya
-2løyd
-4løye
-løy8ed
-løy5el
-2løyf
-løy4g
-løyg5e
-4løym
-6l5øys.
-løy5ter
-lå6gal
-lå6gre
-lågs4
-lå4gå
-2låi
-lå1k4
-lå6ke.
-lå9me
-lå2m5o
-lå2n
-6l5ånd
-lån2s1
-2låp
-l1åp9n
-2lår
-lå8ra.
-lå9rar
-lå5ras
-lå3rin
-lå1ru
-lå6sa.
-lå1sk
-lå6sko
-lå4s5l
-lå4ste
-lås7ten
-lås5ter
-lå5su
-lå3te.
-lå4teg
-lå4tek
-lå8ti.
-4lått
-lå4ve.
-1ma
-2maa
-3maa.
-ma3ar
-2mab
-ma5br
-ma3che
-mada5me
-ma4del
-ma3dra
-m6ad9s
-4maef
-4maek
-7maene
-2ma1f
-3mafia
-3mafr
-6mafrå
-ma8ga.
-ma4ged
-ma4gel
-ma4ges
-3magn
-ma2gr
-2mahe
-ma4is
-ma4ja
-2mak.
-ma5kab
-4makad
-ma4kes
-mak7ke
-4makl
-mak6le
-ma4kot
-mak2r
-ma3kre
-mak5ron
-mak4tal
-4m3akti
-mak4to
-makts4t
-ma1ku
-2ma1kv
-ma1la
-ma7leb
-ma6leng
-ma4let
-mali9e8n
-mal5l
-ma4lov
-mals4
-mal4t5ek
-mal3u
-mal3å
-4mamer
-ma3mo
-m4an.
-ma3nak
-m3anal
-6manam
-4manav
-man8ce
-man4dom
-man4don
-ma3ne
-m4anf
-man5g4a
-m6ange
-4mangr
-mania8
-2manl
-m3anle
-4manm
-5m4ann
-man4nem
-manns5l
-ma4no
-2mao
-4mapa
-2mapr
-4marb
-mar5d6
-7mare.
-6mareg
-ma3rei
-ma7rel
-5ma9ren
-ma5res
-3mar4i
-mari8e9ne
-ma3rin
-m4arka
-4markit
-mar4kv
-mar5m
-marmo9ra.
-mar7n
-ma1ro
-ma4ro6p
-mar3s4h
-mar7sl
-mar5te
-ma4ry.
-ma6rå
-4masel
-ma5set
-mash3
-ma4sia
-ma4sik
-ma4sis
-6masju
-mas4ki
-4masko
-4masp
-mas4see
-mas6set
-massø9
-7mast.
-ma5stem
-4masto
-4ma5str
-2masy
-m6at
-ma1ta
-ma5tad
-ma3te
-ma4te.
-ma6ted
-ma4tel
-7maten
-7mater.
-6matera
-7matet
-6m7atfe
-4matil
-7matil.
-ma1to
-ma1tr
-4matra
-ma4t5ras
-ma4t3re
-ma6t7rom
-mat3s2
-mats8l
-mat5ta
-m8at7t8r
-2mau
-mau4k
-mau7l
-ma1un
-5maur
-mau7su
-2mav
-5m6a6ve
-ma5ven
-m7avh
-m5avk
-ma4ze
-ma3zo
-2m1b
-m4bao
-mbar3d
-m2bea
-m4beb
-mbe9da
-m4bedø
-m2bef
-m2bek
-m4beli
-m2bem
-m4bena
-m4beo
-m4bereg
-m4bero
-mbet2
-mbi6ar
-m2bib
-m3b4l
-mboe2
-mbo4end
-mbo5er.
-mbo5ere
-mbo5id
-mbo5n
-m4bop
-mbo5re
-mbo9t
-mbu7ar.
-mbu4e
-mbue7re
-mbus5
-m1c
-m6co
-2m1d2
-m3de
-md7om
-1me
-2mea2
-me5al
-mea5m
-2meb
-2mec
-meck4
-4medat
-2medb
-5mede.
-me4ded
-med5ei
-me7den
-me7det
-4medf
-me3di
-4medik
-4medir
-2medm
-me6dok
-4medom
-2medr
-me6dret
-med1s4
-4medu
-me6dun
-me5d4us
-med5v
-7medve
-2medy
-4medå
-me7e
-2meef
-6meek
-2meel
-4mees
-4meev
-2mef
-m3eff
-6me2ga
-me7gal
-2megr
-2megu
-4meh
-mei2e
-meie5n
-m1eig
-me3ild
-me3ind
-mei5ni
-me7isk
-4meiso
-2mej
-4meki
-4mekj
-2mekk
-me2k1l
-me3kn
-4meko
-2me5k8r
-4meks
-mek5t
-6mekte
-m2el
-4mela
-me5l4aks
-5melane
-5melar
-me3le
-me4le.
-4meled
-4melei
-4melek
-6m5e6lem
-me4l5eng
-4melik
-4melis
-4melit
-4meliv
-mel5le
-mello6m3
-4melok
-4melov
-mel4si
-mel2s3j
-melsk4
-mel5s4t
-mel7tr
-me1lu
-mel5v
-melvi6
-2mely
-2melæ
-4melø
-4me5l4å5
-2mem
-me6mo.
-me6n5e6d
-me6n5ers
-4m5enga
-men5k
-menle6ge.
-m6enn
-men4ny
-me4nom
-me4nor
-men4si
-men3sm
-men5spl
-men5te
-men6tek
-men4tom
-men5tr
-me4nyt
-2me3o
-me6os
-2mep
-5mer.
-me6rab
-4merad
-me4ra5l
-me4r5ant
-mer5di
-4mered
-4mereg
-4merei
-4merek
-4merel
-me6rense
-me3res
-4meress
-mere6t
-m4eri
-4me5rib
-meri5ke
-5merin
-merle7g
-mer9n
-mer5os
-5mers
-mer5sk
-me3run
-mer5und
-4merus
-2mery
-me2r3ø
-2merå
-me4råk
-5mes.
-2me5sa
-4me5s4h
-2mesj
-2me1sk
-mes5ke
-2me1sl
-mes6le
-4me3s4o
-2mesp
-5mess
-messe7s8
-7mest.
-4mesta
-5meste.
-mes4ti
-6me7sto
-mest3r
-me5stro
-6mestrø
-4mestrå
-4mestu
-4mesu
-2mesy
-2mesø
-4metab
-metall7s8
-4me9tap
-me4tar
-me3te
-4meteg
-4metei
-4metek
-4metel
-4metep
-4metil
-2metj
-4meton
-me4t3ra
-me4tre
-met5ren
-met7rer
-met5res
-met5rik
-me4tru
-4metræ
-2metu
-4metv
-2mety
-2metø
-4metå
-2meu4
-7m4eu3s
-2mev
-meva8n
-2meø
-2meå
-2mé
-2m1f
-mfa9ra
-mfar8ta
-mfav5
-m2fek
-m6f3ess
-m4fi.
-m4fibr
-m2fit
-m5fru5s6
-m5funn8s5
-mfu6se.
-2m5g6
-m4ga.
-m4gi.
-mgå8va
-mgå8ve.
-2m1h
-mhea4
-m4hu.
-1mi
-mi1a
-5mi6al
-mia2n
-9miane
-7miar.
-2miav
-mi6c
-miche6l
-8m9idé
-2midi
-mid5j
-mid3s4
-mid4t
-4mi3ele
-mi3er.
-mie9s8
-2mi5f
-5migraf
-2mih
-2mii
-4mij
-mik6h
-4mikj
-2miko
-mik5ro.
-mik5ron
-mik5sa
-6miku
-mi4la.
-mile6t
-mil7eti
-mi4lev
-mi7li
-4milin
-mil6s5v
-4milæ
-2mim
-mi8ma.
-5mimo
-m7imp
-mi4na.
-mi5nar
-mi4ne.
-mi4n5ers
-4m3innh
-4m3inns
-6minnt
-min2s
-min3sp
-mins4t
-mi3nu
-m4inv
-mi4n5y
-mi7ov
-2mip
-4misa
-mi4san
-mi3se
-4misek
-4misel
-9misé
-misha9ge
-4mi7si
-mi2sk
-mis4ko
-mi3s4la
-mis9le
-7mism
-mis4s5k
-mis4s7p
-mista9k
-5mis7te
-mis4tra
-4mistu
-2misy
-4miså
-6mita
-mi3te
-4mitj
-4mito
-2mit6r
-mitt3s
-mi5ur
-2miv
-mi5vå
-m6ja.
-m6jan
-m5jar.
-m7jarn
-2mje
-m7je.
-m1ji
-m8jingan
-m8jingar
-8mjo
-mju7ke
-1mjø
-mjøs5t
-2m3k2
-m4ko.
-mkro5
-mku6le.
-mkå8pa
-4m3l
-m7la
-mla6ga
-m2lef
-mlei5er.
-m2lek
-m2lel
-m2lem
-m4lera
-mle6se.
-m4lesk
-m6le5s8v
-m4leta
-mle4ve.
-ml6i
-ml5ja
-mly6se.
-mlø6pe.
-mløy3
-2m7m4
-m6mai
-mma5kl
-mmal5
-mma8le.
-m4mam
-mmando5
-mman6dol
-m5mar
-mmar7in
-mmar7o
-mmatik7ka
-m4medø
-m2meg
-m2mei
-m2me3k2
-m4melu
-m6meni
-m4menu
-mmer5t
-mme4run
-m2me1s
-mmest6
-m5met.
-m4meta
-m4meti
-m4metra
-mme5t6re
-mme3u
-m3mé
-m4mia
-m7mian
-m2mib
-m4mid
-mmie6n
-m2mik
-mmi5sk
-mmi5so
-mmi3st
-mm5n
-m3mu
-mmø2
-mmå8la.
-2m1n
-m2nee
-mn7eid
-m2ne9l
-mne4ra
-m5nese
-m4nesk
-m4nesta
-mnes9tie
-m9net.
-m4nete
-m2nev
-m6nip
-mn7sk
-1mo
-3moa
-mo2ar
-4moba
-5mode
-mo3dem
-mo5di
-mo6di.
-2mody
-3moe
-mo4en.
-m1off
-mofo6bi.
-mo6gi
-5mogl
-mo5go
-m5ogs
-4moh
-2moka
-mo8ka.
-mo8ke
-mo1ki
-mo6la.
-mo3le
-mo4le.
-mo7le6s
-4molt
-mo3ly
-m5om.
-4momf
-2momr
-mom4s5ø
-mo5ne
-mo4nisa
-mo2no
-mon1s
-mon4ste
-mon5t6
-2mop
-5mo1ra
-mo4ra.
-mo4rar
-mo7rar.
-mor5d6e
-4mordl
-mor6d5r
-mo3re
-mores7
-m2ori
-mo4ri.
-mo6rid
-4m3o4rie
-mor4kl
-morla8ga
-mo5rok
-mo4rom
-mor4si
-mor4skj
-mor7sky
-mor4sp
-mo1rø
-mo9sen
-mo2s7k
-mos4o
-6mostab
-4motap
-mo4te.
-mo6te6g6e
-mo4tei
-mote7kl
-mo5ter.
-mo4tes
-mo5to
-4motr
-mot7re
-mot1s2
-6motsagd
-motsva5
-mot7t
-mour5
-3mo3va
-mo5w
-8m1p
-m4pana
-m4p5anta
-m4pee
-m4pelot
-m6pena
-m6pep
-mpera8te.
-mpe5res
-m6peress
-m4p5erfa
-mperi6e7n
-mpes2
-mpes6te
-mpe4sti
-m5pett
-m2pe5u
-mp3id
-m4pinje
-m8pla.
-m3p4lan
-mp5le.
-m6p5lin
-m6p5n
-m6p5ob
-mpoe4
-m4poeta
-m4pog
-m6pok
-m2pop
-mp3opp
-mp1p8
-mp3rad
-mp5ret
-mp3rop
-mpro8pa
-mp1s
-mp3sek
-mps4p
-mp5s6t
-mpun6ge.
-m9pur
-mp5ut.
-mp5ys
-mpø5
-m9på.
-m3q
-2m1r6
-mro8sa.
-mro6se.
-mru7te.
-mrø9de
-m9rår
-6ms
-m5sa.
-ms1ak
-ms5ant
-m1sc
-mse5lu
-m9s6ei
-m4sem
-m4s3eng
-ms5e4pl
-m4serv
-mse5s
-m5s6etn
-mse6t7jare
-mse8t9jas
-msi6e
-ms4ing
-ms3inn
-m4s5ja
-ms5kab
-mska9k
-ms6kin
-msk5ing
-ms3k4n
-ms3kor
-ms5kren
-msk8u
-ms3lan
-ms6lega
-ms9lua
-ms3lue
-ms4ly
-m2sm
-m1s2n
-ms9ne
-ms5no
-ms3næ
-m1so
-m4soms
-ms3ori
-ms1ov
-ms3s2
-m4s3tal
-ms8tav
-m8s7te.
-ms7tea
-ms2ti
-ms5tilb
-ms3tim
-m1sto
-m4s5top
-m5s6topp
-mst5ord
-m8strand
-m5strane
-mst5red
-ms5tref
-mst5ren
-ms5trik
-ms4tru
-ms3unn
-msu9ta
-msu7ten
-ms1v
-msva9ra
-msva5re
-m3s4vet
-ms3ynd
-msø4ke.
-m4s5ør
-ms1øy
-ms1å
-2m1t
-m3ta
-mt4b
-mtbe6
-m2tee
-m2teg
-mteks7
-m6te7kv
-m4tel
-m6testu
-mti9a
-m9tida
-mti5e
-m6tien.
-m6tif
-m2tik
-m6tini
-m4tiø
-mtiør6
-m5to
-mt4r
-mt6ve
-mt4vin
-mtå5
-1mu
-mu6a
-m1u2b
-mu2e
-mu3el
-mue7r
-mues1
-2mug
-mug5l
-mu4he
-mu2k
-8m9uka
-4m1uke
-mu5la
-mu4leg
-mule6s
-mull2
-mull6s7
-mul6tiv
-4muly
-7mum
-mu3mi
-mum2s
-mun2c
-munes6
-4mung
-mun6ge.
-6m5univ
-mun3k
-munn5s6
-mun4t3r
-mu6ra.
-mu4re.
-2murn
-murs4
-6murt
-m2us
-mu4se.
-mu4ses4
-mu4sé
-mu2s3k
-muske6l5a
-must4
-mus5tan
-2mut
-3mu1ta
-mu8ta.
-mutsa8la
-mut7t6r
-2m1v
-mvak5t
-mva6la
-mvari6
-mveg5s4
-mvi7e6
-mvi6se.
-2mw
-1my
-my5a
-myg4ga
-my3ke
-myk4kes
-myk3l
-my8kr
-my2ra
-my9ran
-my9rar
-my1re
-my4re.
-4myrk
-m5yrke
-my4r5u
-mys3
-my6sa
-my4se.
-my4so
-my4te.
-mytt6s5
-5mæ
-mæ6la.
-1mø
-møb3l
-mø7des
-mø6e
-mø9ens
-møkk6a
-m3økn
-2møko
-mø6na
-mø4ne.
-møne9s
-mø8nest
-6m5ønsk
-mø2o
-3mørke
-mør4k5r
-mør5sm
-mør3ø
-mø5se
-7møt
-mø9tas
-mø4tere
-møt9t
-2møy
-møy9ar
-m5øys.
-1må
-2må.
-må5a
-6måenh
-må7g2
-må1k
-må4ka.
-må4ke.
-må4kes
-m6ål
-må5lar
-må4le.
-må6led
-måle3i
-målø6pe.
-må4ne5s6
-må9nese
-må8pa.
-må4pe.
-må7pl
-2mår
-måra6r
-må1re
-må1ro
-må1ru
-må1s4
-må6tak
-6måtf
-må5tr
-må3tø
-1na
-na6ans
-2nabo
-7na7bortr
-na6bot
-4naby
-na4ded
-na8dem
-nadi4
-n3adop
-nad2s1
-4nadv
-8naf
-n1aff
-nafo7r
-na3fr
-naf7t
-na8ga.
-na3ge
-4nagen
-nag3s4
-nagså5
-na7gø
-6nah
-4nair
-2nak
-n6akk
-nak7ka
-nak6ko
-5nakl
-na1kr
-n1aks
-nak8sa
-nak8se.
-8n1akt
-nak6ta.
-na7kv
-na9lag
-na6lare
-6nalarv
-na7leg
-na4l3ei
-na4lek
-nal5epo
-na4les
-na4l5ett
-na4lev
-nal5g
-nal6ge.
-na4lil
-nal6lag
-nal4løp
-nal3op
-nal5s2
-nal3t
-na3lur
-2naly
-na2l5ø
-4nalå
-na3lå5r
-5nam.
-na7mere
-na5mes
-na5mo9
-5nams
-2namø
-9nan.
-4nana
-n3anal
-n6ane
-nanfø8
-4n5angr
-nan5k
-nan6ke.
-4n3anl
-6n5anle
-nan4ne
-na4n5o
-n4n5ans
-nan4sin
-nan4skj
-nan4s5t
-4nany
-na7o
-na5pe
-nape4s
-nap3s4
-na7p8
-n4ar.
-na4rap
-2narb
-nar5dr
-4narea
-nar7ei
-4na5rek
-nari4e5n
-7nariksk
-4narkiv
-8n7arm
-6n5armé
-6n5arme
-nar8ma.
-nar5s
-nar8ste
-2nart
-nar6ta.
-nar5ti
-nar7v
-nar5ø
-nasa3r
-na4sas
-nas7h
-8nasik
-na4ski
-na2s5t4
-nasta5
-8nasu
-na1ta
-nate8k
-na7tem
-4natl
-4natom
-natori5e6
-nat8ra
-nat3sp
-nat6tak
-nat6tea
-naty5
-2nauk
-naus6p
-na6va.
-4navd
-6navf
-2navg
-2n3avh
-na1vi
-4n5avk
-4navl
-nav4les
-3navn
-6navo
-4navr
-n1avs
-4navt
-4n1b2
-n5ba2
-nba3d
-nba9ser
-nben4s
-nbo5et
-n6buf
-n6butr
-nbyr5
-nbø9le
-nbø6n
-n1c
-n5ca
-ncel5
-n3che
-nch3ei
-n6cot
-n2cy1
-8nd
-n7daa.
-n6dabi
-n4dad
-nda5f
-n7dag4
-ndags5
-n4daks
-n3dal
-n4dalf
-n4d5all
-ndals3
-n4dark
-n6d3art
-n8dask
-nda5tal
-nd5d4
-n3de.
-nde5a
-n2deb
-n2ded
-n5defi
-nd1ei
-nd4ein
-nd6ek
-n4dekl
-n4deko
-n5d4e5l
-nde4le.
-n4delik
-ndel4sk
-ndel4st
-nde6lt
-n2dem
-n5dem.
-nde5mo
-n5den.
-n6dener
-n5dens
-n2de5o2
-n2dep
-n4derab
-n4deras
-n4derei
-n4derim
-nd6erk
-nderla6ga
-n4desi
-n4dest
-n4desu
-n1dé
-ndi4en
-n4d3int
-ndi6sk
-nditori5
-nditorie6
-ndit4t5a
-nd3jer
-nd1ju
-nd5k
-nd4lem
-nd4lese
-nd4lest
-nd4lev
-n8d7m
-ndo9a
-n6dob
-n6d5okk
-nd4om4s3
-n2doo
-nd1op
-n2dor
-nd3org
-nd5orm
-n6dote
-nd5rae
-n4d3ram
-nd3ran
-nd6rek
-ndre4ra
-nd5resen
-nd5rett
-nd1ri
-n1dro
-nd4sag
-nds3ak
-nd4s5amb
-nds5elv
-nds5ende
-nd4ser
-nd4sje
-nd4skj
-nds7kul
-ndsla6ga
-nds6lett
-nd7spu
-nd3s4te
-nds9teg
-nds5trek
-nd5stry
-ndta6ka.
-n6duf
-ndu3is
-n4dun
-nd3ung
-ndun6ge.
-n2dup
-ndu6si
-ndus7k
-nd7v
-n2dyg
-ndy1k
-n2dys
-ndy5sp
-ndø5l
-n2d1øy
-1ne
-2nea
-5neae
-nea4g
-ne7a6le
-ne5alp
-ne5als
-nea9m6
-ne9a8r9an
-nea9ren
-ne1as
-6ne7av
-2neb
-3nebb
-4nebe
-ne4ble
-neck5
-2neda
-3nedal
-ned3d
-6n5eddik
-4nedeb
-4nedeg
-4nedel
-5nedg
-ne4di.
-nedi4s
-2nedo
-ned5over7
-ned1r
-ne6dre
-5neds
-ned3st
-6nedu
-4nedø
-ne5dår
-4neeg
-4neei
-2neek
-5ne4e4r5
-2nef
-n1eff
-n5eft
-2neg
-5negati
-ne3gla
-neg5lesp
-neg8r
-6negru
-6neh
-2nei
-n2eid
-nei8dan
-n5eig
-n2e1in
-n3eini
-5neir
-5n6eisk
-2nej
-2nek
-ne4ka.
-6nek2l
-ne3kn
-nek2r
-nek5rin
-n7ekser
-nek5t
-4nela
-nel3de
-4neled
-6nelegg
-7neleggj
-4nelei
-nelei5er
-4n3elem
-6nelê
-4nelid
-4neliga
-4nelis
-4nelit
-4neliv
-nel4lov
-nel7s
-2ne1lu
-4nely
-2nelæ
-2nelø
-nelø8pa
-4nelås
-2nema
-4n3emb
-4nemel
-4nemer
-6nemes
-2nemi
-nemie8
-6nemj
-nem6k
-5nemn
-nem5ne.
-nem7nel
-2nemo
-2nemu
-2nemy
-2nemø
-2nemå
-3nen
-4nena
-nen5at.
-6n5en6den
-6nendr
-nene4
-4nened
-4nenem
-ne3nes
-4nenesl
-4nenet
-nen5eta
-4nenev
-nen4ga.
-4n3enhe
-6nenhet
-4neni
-nen5se
-nent5ei
-6n3en5tr
-4nenu
-4neny
-4nenæ
-2neo
-5neo.
-ne5o4r
-7neos
-2nep
-ne5pe
-3n4er.
-4nerad
-6nerap
-3nerb
-4nerea
-4nered
-nere6de.
-4neref
-4nereg
-4nerek
-4nerent
-4nerep
-ne5res
-4neress
-4neresu
-4neret
-4nerev
-4nerfar
-4ner2g
-ner3ga
-ner3ge
-4ne3rib
-4nerik
-4nerit
-ne4ri9v
-5nerl
-nerla8ga
-n3erob
-6neroc
-ne7rof
-ne5rok
-4nerom
-ne5rot
-ne1r4ov
-n6ers.
-ner7se
-ner5s4i
-ners4p
-ners8ten
-4ne3rul
-ner5un
-2nery
-3neryr
-4nerør
-2nerå
-2nesa
-ne4sa.
-5nesar
-4nesc
-4nese
-6nesek
-nes6er
-5nesets
-nes5eva
-ne3si
-nes5ind
-4nesit
-2ne5sj
-ne5skam
-4ne5skar
-nesk4e
-4neski
-5neskins
-4neskj
-4ne5sko
-4neskr
-6nesku
-2nesl
-ne3sli
-ne7slø
-nes6mi
-6nesn
-ne7snø
-2neso
-3nesot
-2nesp
-nes6sam
-nes4stu
-5nest.
-4nestas
-nes9te.
-4nesto
-nes5tor
-4ne3str
-4nestu
-4nestø
-2nesu
-2ne1sv
-nes8va
-6nesy
-4nesæ
-5nesøy
-4ne5så
-neså5re
-3net.
-2neta
-4netaks
-n7e8tas
-neta6le.
-ne3te
-5nete.
-4ne3ti
-6netid
-2netj
-2ne5to
-6netom
-2net4r
-3nets
-net5s4p
-nett3a4
-net6tel
-2netu
-ne4tv
-4nety
-4netå
-netå5ker
-2neu
-neu1r
-ne5us
-ne6va.
-ne4ve.
-6ne8vent
-5nevik
-nevi8sa
-3nevn
-nev1r
-ne4y5t
-2neø
-4neå
-1né
-4néb
-4néd
-2néf
-6néh
-2nél
-4ném
-6néo
-2nép
-5nér
-4név
-4néå
-4n1f
-nfall4
-nfalls5
-nfan5t
-n6foa
-n4fob
-n4fole
-n4fom
-n4fora
-nfor9en.
-nfos4
-nfø5des
-nføy8ed
-8ng
-n8g8ad
-n4gaf
-n6gag
-ng1ak
-ng5and.
-n8gan8da
-ng3ank
-n4g5arm
-n4gart
-ng5art.
-n5garta
-ngar5u
-n2gat
-ng5ato
-nga4ve.
-ng7avi
-ngd4
-ng4ded
-ng4del
-ng4dep
-ng3dr
-n4geda
-n4gela
-n3gen
-n4gena
-n7gene
-n4g3eng
-n6geno
-n4genu
-n3ger
-n4geret
-nge5run
-n2ges
-nge3sl
-n4geta
-n2ge7v
-ngfø4
-ng5g2
-ng5id
-ngjen5g
-ng1l
-n5glem
-ng4lu
-ng7n
-ngo4d
-ng5odd
-n7goe
-n3g4ok
-n8g7o8m
-ng9ome
-ng5ond
-ng7o6pe
-n2gor
-ng5ord
-ng3ork
-ngos6p
-n2got
-ng3ra.
-n5grad.
-ng5rand
-ng7rea
-ng3reg
-ng3ren
-n4grend
-n4grer
-ng5rest
-ng3ret
-ng3rev
-ng3rid
-ng3rin
-ng7ro.
-ng9roa
-ng7roe
-n5g6ros5
-ng3råd
-ng8sa.
-ngs5elv
-ng4sem
-ng4ses
-ng2sj
-ng2sk
-ng6skj
-ngs7leg
-ng5sløy
-ngsmå6la.
-ngs3ne
-ngs7tep
-ngst5rid
-ngstyr8ke.
-ngs9tør
-ng3und
-ngu5ru.
-ngvi4s
-ng5ye
-n1gø
-n2g1øy
-ngå8va
-ngå8ve.
-4n1h2
-nhat5
-nhet4s
-1ni
-ni1ak
-ni1a2n
-nian5dep
-ni2bl
-4niby
-4nibå
-4nicr
-n8ida
-ni4del
-ni7dele
-n5idé
-ni6do
-nid7r
-nids4
-nid5st
-4nieg
-ni1el
-7ni3e2n
-ni3er.
-nie5ri
-ni7ers
-ni5ert
-4n3i4fr
-ni5gla
-ni9glo
-2nih
-8nij
-ni3ke
-2nikj
-4ni5ko
-2nikr
-4nikv
-ni5l4i
-5nilu
-4nimar
-4nimas
-4nimo
-2nimp
-ni6n7al
-2n1ind
-4ninf
-ning3o
-nin5gr
-ning6s5
-ningse4
-nings5te
-2n1inj
-n1inn
-4ninnb
-4ninnh
-4ninns
-4ninnt
-2n1ins
-2n1int
-2ninv
-5nio.
-nion2
-nions3
-4niop
-7nios
-4ni5ov
-ni4pet
-ni9pet.
-ni9pets
-ni2pl
-nip3li
-nip5si
-4nir
-nir7kel
-4nisem
-ni5set
-nis5im
-4ni3skj
-nis4k3o
-ni9sol
-niso5ne
-niss4
-4nistas
-6nistat
-nis5tik
-4nistil
-ni3str
-4nisty
-4nistø
-6nisu
-6nisy
-n4it
-ni3ted
-6nitj
-ni4tog
-ni4tos
-nitt4r
-nitt4s3
-nitt6sk
-4nitu
-ni3ty
-nit5z
-nitær6e
-2niub
-ni4umf
-2niut
-4niva
-2nive
-ni8v7eg
-niv5ei8
-4n5ivo
-niv3s2
-6niå
-4n1j
-n6jah
-njav9
-n2jed
-n5jede.
-n4jee
-n6jei
-n2je1s
-n3jes.
-n2jet
-n3jet.
-njet6r
-n5jett
-2nk
-n1ka
-n2kak
-nk3aks
-nkal5l
-n2kau
-n4kedo
-n4keer
-n4keh
-nk5eie
-nkel5s
-nkelt3
-n4k5enh
-n8keno
-n4k5erfa
-nker4st
-n4ke1s4
-n6ketø
-n1ki
-n4kid
-n4kie
-nk3ier
-nk5ind
-nk7inf
-nk3inn
-nk7int
-n5kj
-nk1k4
-n1kla
-n5k6lang
-n7k4lis
-nk3lok
-n1klu
-nk3ly
-n3klæ
-nk1lå
-n1knu
-n1kny
-n3ko
-n4kof
-nkofi8
-nk5oks
-nko5le
-nkol4la
-n6kot
-n6kov
-n1kr
-n3krav
-n7k8ry
-nk1s2
-nk4tak
-nk6tal
-nk4tin
-nkt3sk
-n1ku
-nku4le.
-nkuri9
-nkurie8
-n4ku6t
-nk9ute
-n1kv
-nk3ve
-n7kvit
-n6kvo
-n9ky
-n1kø
-n1kå
-nkå6pa
-4n1l
-nland9a
-nland6se
-n5le
-nlei7er.
-nle8ma.
-nli4en.
-n3lj
-nlu4e
-nly6de.
-nly6di
-nly4se.
-nlø6pa.
-n7lå
-4n3m
-nma4le.
-nmik3
-nmi8l
-nmini6
-nmo6se.
-nmusik7k
-nmå6la.
-4nn
-nn4ab
-n2nad
-nn5ad.
-nn9aft
-nn5air
-n6n1ak
-n4nala
-nn5alg
-n4name
-nn4an
-nn5ana
-n9nane
-nna8ni
-n4n5ank
-n5nanl
-n6n7anta
-n9nar.
-n4nari
-n6nasi
-n4nask
-n2nat
-n2nav
-nn3avl
-nnbo9e
-nnbu9e
-nn5d2
-nndø4
-nndør3
-n5nea.
-n5neap
-n5nebar
-nnebe8r
-n5nebu
-n4nedi
-n2nee
-n6nef
-nn1ei
-n3neke
-n4nelo
-n3n4en
-nne6nat
-nne4n3o
-n9ner.
-n4nerel
-n4nero
-n7nes.
-n6nesj
-n5nes4la
-n4ne3st
-n5n6et.
-n4nesø
-n4nete
-n2nev
-n2ney
-nn7g8
-nnhø8re.
-n4nid
-nn3ide
-nni3e
-n2nim
-nn7inf
-n5nis
-nni4sj
-nni4s3t6
-nn7k2
-nnle6ge.
-nnlø6pe.
-n4no.
-nn5of
-nno2m1
-nn6oms
-nnomsy8na
-nn1op
-n2n1o4r
-nn7ord
-n4n3o4ve
-nn9r
-nnsa9ka
-nn4s5amb
-nns5and
-nns3ar
-nn5seg
-nnsei8g
-nn4s3em
-nn6s5enk
-nn4s3es
-nnse6te.
-nnsi7da
-nn4s3in
-nn4s5i6s
-nn6s5jak
-nns5kan
-nn5s4kli
-nns5op
-nns3or
-nnst6
-nn6s5tab
-nns5tal
-nns5telt
-nns4ten
-nns5tep
-nns7tin
-nns5top
-nn6s5tre
-nns5tro
-nns3tv
-nn4s5ul
-nns3va
-nn6s5vo
-nnsy8na
-nn2sø
-nns3øk
-nn3så5r
-nn7t4
-nnte6se.
-nnto9ga
-nnu1i
-nn6ung
-nn1ut
-nnvi4s
-nn1yn
-nny4t
-nn7øk
-nn1øv
-nn1å
-1no
-noa4g
-no1ak
-5noane
-no7ar.
-2nob
-nobe4l
-no4bl
-nob5le
-no3b4r
-no5co
-nodi4e5n
-3noe
-4noef
-4noei
-4noek
-4noent
-2nof
-n1off
-3no3ft
-n6ogra
-no5id
-no3in
-2nok
-no1ki
-nok8r
-nok6se.
-n3oksi
-no9le
-2nolj
-no6mid
-no6mik
-no4mil
-4nomj
-nom9m
-nom7s2
-5nomy
-non1s4
-non5t
-2noo
-2nop
-n1opp
-nopp7s8
-no1r4a
-no5ran
-no5rar
-no5ras
-nor4da
-nor6d5end
-4nordn
-nor4d5r
-nord3s4
-nor4dø
-no9ree
-no3rek
-no3ren
-no7ret
-nor5g
-3norge
-norges5
-n3o4rie
-7norit
-4nork
-nor6kla
-nor6kle
-n4orm
-normlø7se
-nor2s
-nors6ka.
-no3ræ
-no4sel
-no4ses
-nose8te.
-4nosp
-no3stj
-nostra4
-2nosy
-no4ta.
-no4te.
-note5i
-5notek
-no4tel
-no4tes
-not3s
-4noty
-4nou
-no1v
-no3ve
-4no5vi
-4n5ovn
-7nó
-6n3p2
-n5pe
-npo8ta
-n4påk
-n3q
-2n1r2
-n9ra
-nra8na
-nra8sa
-n3re
-n4reb
-nrei7e
-n6renem
-n6reo
-n6ri.
-nro6de.
-nro6t
-nry6
-nrå8da
-6ns
-n1sa.
-ns1a4d
-n5sag
-n5sakk
-n5sa4kr
-ns3aks
-nsak6se.
-6n5akti
-ns5akv
-n3sala
-ns3ald
-n6s5alp
-n5sane
-n4sanf
-n5s6ann
-n5sanse
-ns5ansi
-ns5ant
-n5saren.
-ns6arm
-n6sart
-n4sati
-n1sch
-n3sco
-nse9a8l
-n2sed
-ns5edd
-ns8ede
-n2see
-nse5ei
-nse6er
-n6sef
-n2seg
-ns5ege
-nsei6d
-ns5eie.
-ns9eig
-n4seks
-n4s3elv
-n2sem
-n5sen.
-n5sene.
-n4sener
-n9senes
-n4senet
-n4seni
-n7sens
-n3ser.
-n4sera
-nseri7e6
-n4sesa
-n4sesi
-n4se3sk
-nse3sl
-n4ses4p
-n4sest
-n6sesu
-n4se3s4v
-n4sete
-n9sets
-n2seu
-ns5fr
-n2sh
-ns3ha
-ns7he
-ns5hi
-nsi5de.
-nsi4ent
-nsi6er.
-nsin5d
-n3s4ing
-ns3inn
-n4sinte
-nsi8ra
-nsis7k
-ns3jak
-n4sjav
-n5sjef
-n6s5jord
-n4skan
-n6s5kauk
-ns7kele
-ns4kete
-n9skim
-ns5kir
-n5skis
-n6skja
-n6skjele
-ns5kjen
-n3skjæ
-n8s7kåp
-nskog6s
-ns4kolli
-ns5kor
-ns3kro
-nsku9et
-n4skug
-ns5kuli
-n5skum
-ns1kv
-n5s6ky.
-n5s4kye
-n5skyss
-n5slang
-n7slarar
-ns5las
-nsle6ge.
-n3s4lekt
-ns6leri
-ns5lid
-n5slyn
-n1slå
-ns3mi
-n4smal
-n4s5mo
-n4smur
-n4smus
-nsmå6la.
-n5s4nar
-ns5nes
-nso4d
-ns1of
-n3s2ok
-n1sol
-n4sond
-nson6de.
-nso5ris
-ns1ov
-n3sovn
-nspa9ra
-ns5pels
-n5spet
-ns1pr
-n6spros
-n7spur
-ns7s6
-nsse4e
-nsså5
-ns4ta.
-n4stak
-n4stag
-ns5take
-n3stam
-n4stank
-nst5art
-nstar8ta.
-ns4tau
-n3s6ted
-n3s4tei
-ns4tel
-nste6ma.
-ns5tenk
-n6step
-n5s4tik
-ns5tild
-ns7tilf
-n4s5tils
-ns4tin
-ns4t3i4s
-ns1tj
-n5sto.
-n3stru
-ns7trøy
-n3stue
-n6stuk
-ns5tur
-nst3ut
-n1su
-ns1uk
-n4sung
-n5sup
-ns5vang
-nsva9ra
-n2s3ve
-ns9veg
-ns5verd
-ns5vern
-ns1vi
-n5s4vill
-ns4vind
-ns9vis
-n4svu
-n3s4væ
-nsy4d
-ns1yt
-n5søn
-n4s1øv
-ns5øya
-n5såpe
-nså7pen
-ns7ås.
-6n1t
-n5tab
-n4tagr
-nta4lan
-ntall4
-nta5na.
-n4t5and
-nt3anl
-nt4anv
-nt3app
-n7tart
-n6t5arvi
-nt6as
-nta5sia
-nt4at
-nt3avi
-nt5avr
-nt7avs
-n2tea
-n5teat
-n2tee
-n4tef
-n4tege
-n4tegi
-n7tegn
-n2tei
-nt5eini
-nte5ins
-n5teis
-n4teka
-n7tekn
-n4tekse
-n9teleg
-n5telig
-n5tell
-n4tels
-n9telt
-nte4ma.
-nt3emb
-nte4mis
-n5ten.
-n4te7na
-n5tene.
-n4t3enh
-n5tens
-n2teo
-n5teori
-n5tepp
-nt4er
-n5ter.
-n7terek
-n6terest
-nte6risk
-nteriø7ra.
-n5ters
-n7tes.
-n4tesel
-n4teta
-n4tete
-nt4e3u
-nt5e4va
-nt9g
-nti1a
-n4tiat
-n4tid
-n5tiem
-n4tig
-n4tikap
-n5tiki
-n4tikl
-nti5kli
-n5tile
-nti3lo
-n9time.
-n7times
-n4t3ind
-nti6net
-n6tini
-n2tio
-n2tip
-n4tisa
-n4ti5sti
-nt5l
-nt5n
-nto3a
-n2tob
-nt5omf
-nt5omn
-nt3oms
-n2t1op
-n5tor.
-n5to5re
-n6torg
-n2tou
-nt1ov
-nt6ran
-n4trep
-n5trer
-nt5resi
-ntres9kjare
-n4t3rin
-ntrol6li
-n6trom
-n6trul
-ntrøy4
-nt5skj
-nt5s6la
-nts2t
-nt3t4
-n6t7ub
-ntu9e
-ntu4l
-n2t1u2n
-n4t5uro
-n2t1ut
-ntva8la
-nty6e
-ntyr3s
-nt7år.
-1nu
-4nu.
-nu3an
-nu4av
-nuft4
-nufts5
-2nug
-nug6la
-4nu4h
-nuit8e
-nuk5
-nul9t8
-4nulu
-6nuly
-nu9me
-2n1un
-nun4ge.
-nuo2
-6nup
-nu3pl
-nu4re
-nu5sa.
-nu5sen
-nu7ser
-nus4k5l
-nus7l
-nuss4
-nu6st
-nus3ta
-2nut
-nu7ta
-nu3te.
-nute6r
-nut5eri
-n7utl
-nu6ume
-6n1v
-nva6la
-nvand5
-nverle9
-nves1
-n5vi
-nvi4et
-nvi4ka.
-nvi5ke
-n3vu
-nvæ8ra
-n3w
-1ny
-ny5ar.
-ny9ast
-2nyd
-ny4de.
-4nyef
-4nyg
-ny5ge
-5n6yhe
-ny3ke
-ny3k4le
-4nyko
-ny1lo
-2nyn
-nyn8da.
-nyn4de.
-4nyo
-4nyp
-ny8pa
-ny6ra.
-ny4re.
-ny7rev
-ny4ru
-ny1s
-ny5se
-ny9s6k
-nyst4
-nystu4
-ny3te
-ny3tr
-2nyv
-ny8va.
-ny5vak
-ny8ve.
-4nyø
-n1z
-1næ1
-næ8ra.
-nær9and
-næ8rast.
-1nø
-nø2da
-4nødd
-nødde5
-nød3sk
-nød5sto
-nø9dun
-2nøe
-4nøf
-nø1fl
-nø1fr
-nø7gr
-4nøko
-4nøks
-nø4le.
-nø9mo
-nø5mu
-nø3p4
-nø7ra
-nø6red
-nø1ry
-nø3se
-nø1sk
-nøs4l
-nø7te
-nø7tr
-n6øtt
-nøtt6r
-nøv4d
-nø3ver
-nøy1
-2n1øy.
-nøy8a9n
-n7øyh
-4nøys
-n3øys.
-nå6as
-1nåd
-nå5ded
-nå8en
-nå6et
-nå8j
-n1å2k4
-1nål
-nå2la
-nå5lev
-nå8ma
-nån6de.
-n1å4p
-nåp8na
-n1å6r
-nå2s
-nå5sa
-nåse4
-2oa
-oa5c
-o1af
-oa4k
-oak6kana
-oak4ku
-o1all
-o3alt
-o1a2m
-o3a6n
-o9and
-o1a6p
-oar6d7e
-oar4d5in
-oa4r5e4g
-oa4r5enh
-oa6ré
-oa4r5i
-oar5m
-oa9té
-o1au
-o1a4v
-2o3ba
-obakk8s
-obb4l
-ob4bo
-ob4b5r
-ob4b3u
-ob4e
-o4bea
-ober5et
-ober4s
-obers5ta
-obers5te
-o3bes
-2o3bi
-obi5e6
-1ob1j
-o1b2l
-ob5la.
-ob3le.
-ob3len
-o2b5li
-3oblig
-ob4lo
-o1b4o
-obo9a
-2obr
-ob5rar
-ob1re
-ob1ri
-3obser
-ob5st
-2o3bu
-2oby
-obyl5
-o5bø
-o3bå
-4oc
-ock5ers
-o5cy
-2o1d
-o6dab
-oda4f
-od7att
-odd5ei
-od4del
-od4dest
-od9do
-od4e
-o2deb
-o6d5ei
-o4deko
-o5deku
-o2dep
-oderle7
-o2des
-o5det.
-o5dets
-odie4n
-o4d3igl
-o4dj
-odko5
-od3oml
-od3ov
-o2d5re
-o4d3rø
-od3sk
-ods4ka
-od3s4po
-od5s4tol
-ods8t
-odu7s
-o4dy.
-o4dyb
-od5øk
-o5døs
-od5øy
-o2d1å6
-6o1e
-oe6f
-o4ein
-oek6s
-oe2l
-oe4mu
-oe2n
-oen5a
-o7ene
-oeng5d
-oen2g7r
-oeng3s
-oeng3u
-o5ens4
-o7ens.
-oen5t
-o3e4re
-o6erer
-oer8ma
-o3ersk
-o2es
-oe6sip
-oe6sit
-oes8ka
-oes8ke.
-o4etan
-oet2h
-oe5ti
-oev6ne.
-2ofa
-o2fa.
-ofag6a
-o4fara
-ofa4se
-o2fav
-o2feb
-o4fei
-o4fera
-o4fe3st
-o1fé
-off9and
-of4fek
-of5fes
-of6fia
-off5id
-of6fr
-of2fu
-of6fy
-2ofi
-o4fip
-o1fl
-of5le
-2ofo
-o6fra.
-of9ras
-of1re
-6o5fri
-of8sa
-of8se.
-6oft
-of4tel
-oft2s3
-2ofy
-2og
-o2ga.
-og7ank
-o4gare
-o2g7av
-4oge
-o2ge.
-o4ged
-og1ei
-oge7na.
-o3get
-og4gera
-og4g5j
-ogg3s4
-og6g7u
-ogi3a4
-ogie2
-o4giev
-o2gif
-o6gig
-o4giko
-o2gil
-o2gim
-o2gin
-o3ging
-o2gi1o
-o6gista
-o6gi7str
-o2giv
-og5jer
-og7la
-ogly7
-og4ned
-5o4g5ni
-og6nel
-o5g6nos
-o2go.
-og6ra
-og4re.
-o4g3reg
-o4g3rei
-og4rer
-og7rett
-o4g3ri
-og3ryd
-o4g5rø
-og5rå
-og3s4
-ogs4a
-ogs6an
-og3s2e
-og1sk
-ogs4kj
-og5sl
-ogs4le
-og1s4p
-ogs5pa
-og5ste
-og3sti
-og4s5tj
-ogs4to
-ogs4tr
-ogs5t6ra
-og5stre
-og5sy
-5og5s6y4v3
-ogt6r
-5o4g5åt
-og1un
-og5ø
-og7ås
-2o1h6
-ohe5te
-ohm9a
-o4ho.
-ohø4
-oia4
-o1i2d9i
-o1idr
-oid5t
-oie4n
-oi5er
-oi6es
-oi5k
-oi4la
-o1im
-o3in.
-o1ing
-oi2n1o4
-o4insp
-oi6r
-o1is
-o2is.
-o6isa
-o2ise
-o4isi
-4o1j
-o8je.
-o4jo.
-o1ka
-ok7aft
-ok1ak
-oka4n5i6
-ok2ar
-ok5ark
-o3kas
-ok1ef
-ok5els5
-ok5elv
-o5k6en
-o4kesk
-o6kev
-o1kj
-ok4kand
-4okke
-ok6kera
-ok4ke5s
-ok3kje
-ok3ko.
-ok5kol
-okk8s7m
-ok4kun
-4okl
-ok8la.
-okla5m
-ok8le.
-o1klu
-ok7lut
-oklå5
-2okn
-okna8sa
-o3ko
-o8ko.
-ok8ol
-o4k3oms
-ok3omt
-oko5pe
-ok5opp
-ok3orm
-oko4s
-oko9se
-o6kov
-o1kr
-ok5reo
-o6kret
-o4k5ru
-oks4al
-oks4e
-ok4sek
-okse5kr
-ok4sem
-ok7sen
-ok6serin
-ok4ses
-okse9te
-ok5s4i
-oksi7da
-okst2
-oks6ti
-ok6s5vi
-oks6tr
-ok5ta
-3oktan
-ok8t8a8v7
-ok3ti
-ok5to
-okto4r5i
-okt6r
-o1ku
-ok5u4k
-oku8le.
-oku6t
-ok7ute
-o5kva
-o6kvak
-o3kvi
-ok5øy
-o3kå
-8ol.
-4o1la
-ola6ded
-ola8ga
-ol5anl
-ol3ant
-o9lar.
-o6larbe
-ola5t
-olber4
-olbo7e
-olbo7ge.
-ol4bol
-olbu7
-2old
-ol7dan
-ol5de.
-ol4dem
-ol4dest
-ol5det
-ol3do
-oldo7ve7
-ol5drev
-ol3dri
-old3s4kr
-2ole
-o5leaks
-o6leb
-o2led
-o2lef
-ol5eig
-ole5in
-o2lek
-o7leki
-o2lel
-olele6ge.
-o2lem
-o5lem.
-o5lems
-o7lene.
-o9lenes
-o4lenet
-o4leni
-o4leno
-o6lered
-o4leru
-o2les
-ole5sta
-ole5str
-o9let.
-o2lev
-o1lé
-ol4f5i
-ol4fj
-ol3g4e
-ol1g4l
-2oli
-o4liba
-oli9e6n
-oli7ert
-oli5ne
-3o6lj
-olke3s4
-ol4kese
-ol4kesk
-ol4kest
-ol2k3l
-ol9ko
-ol6ku
-ol5kv
-ol5la.
-oll3ak
-ol4lam
-ol7le.
-ol4led
-ol4lel
-ol7len
-ol4les
-ol6linj
-ol4log
-ol4lom
-ol5los
-ol4lov
-oll5over
-olls4t
-oll5sv
-ol2lu
-ol4løp
-ol6løs
-ol6løy
-ol2lå
-olme5s
-ol4mest
-ol4må
-ol9n
-2o1lo
-o4lo.
-o5loan
-o3loe
-o4lof
-olo3i
-ol5oks
-ol3oms
-ol3op
-o6l7os.
-o6l7o6se
-o6l5osf
-olo5ve
-o8l7ovn
-ol4ped
-ol7so
-ols8t
-ol5sva
-ols5vik
-ol3ted
-ol5tep
-ol2tr
-ol6t7ra
-olt5re.
-olt5rer
-olt5ret
-o1lu
-olu5l
-o4l3ung
-olun8ge.
-o4l5ur
-ol5va
-ol1vo
-o1ly
-oly7d
-ol5ør
-o1lå
-2om.
-2oma
-om3ald
-o2ma2m
-om5ang
-oma4nif
-omann4
-oman5t
-om3ars
-omar7ø8
-om4as
-om1av
-omb6
-om4bet
-om4bis
-om3bl
-5ombod
-1ombu
-2ome
-o2m1ek
-o5meka
-o7menes
-omer6s
-o6mese
-o5met
-ome4tak
-ome7tar
-om1eu
-3omfan
-3omgre
-8omh
-o2mia
-o2mib
-omi3e4
-o4miek
-o2mig
-o7mikk
-o7mine
-om7inn
-om3in5s
-o4mio
-o2mir
-o4misj
-o4mist
-o2miu
-om1j
-2omm
-om6mat
-om4med
-om4metr
-3ommø
-2omo
-o4mofo
-om1op
-omo1v
-omp2
-ompa3t
-1omr
-2omre
-2omro
-2omru
-6oms.
-oms3al
-om4sek
-3omset
-omsko9d
-omsku9la
-om4som
-oms3un
-oms4ø
-omt2
-3omtal
-om4tes
-om3ti
-om3tv
-o2m1u
-o3mus
-omvæ8re.
-6omy
-omyr8ke.
-o2møk
-omø4r
-om5øy6
-o5må
-2on
-on3abo
-o4nac
-o6nak
-o4n3ang
-o4nap
-on3app
-o6narb
-o4n3arg
-o4n3arv
-o7n8a7sj
-onat5r
-o2n1a4v
-on5b
-on4dar
-onder6e
-ond3re
-on4d5ri
-onds4i
-o4ne.
-on5eie
-o4nele
-o7nell
-o2nem
-o3ner
-o4neru
-onesi6
-o4nesk
-o4ne3s8t
-o4nete
-o2nev
-on7f
-on7ga.
-ong3d
-on5ge.
-on6ged
-onges4
-on5gi
-on5go.
-ong2r
-on8gro
-ong9ros
-ongs4j
-on2gu
-on4gy
-on4g5ø
-o9ni.
-o2n3i2d
-oni1e
-o2nil
-on5ild
-o2nim
-oni6mi
-on3inf
-o6n7inn
-o2ni1o
-o4ni5p
-o6niso
-on3j
-on1k
-on5k6a
-3onkel
-on5k6i
-on4kle
-on5ku
-onle6g
-on5nad
-on3ni
-on5ny
-o4no.
-o5nor.
-o4no4v
-on3ove
-on4sh
-ons1i
-onsi3s
-onsi4v
-ons1k4
-ons7ke
-ons1l
-onsla6ga
-onstitue9ra
-onstitue9re
-onst5rum
-ons5und
-ons1v
-on4sve
-ons1å
-ont6a
-on3te
-on4ted
-on5ten
-on5ti
-on4tok
-on5tor
-ont2r
-on7ul8
-on5ur
-onu4sk
-o4n5ø4
-on6øy.
-on7å6
-2oo
-ood1s
-o1off
-oo2k1
-oo5k8a
-ook5es
-ool7a
-oo4m5i
-oo6mo
-o1o2p
-oopa8
-oop9an
-oo4pe
-oop5en
-oop5et
-o6opi
-o1o4r
-oor6da
-oo5s
-oo6sp
-o1o4v
-2op.
-2opa
-o4pab
-o2pak
-opan9d
-o4pa3re
-o7paren
-o4pasj
-o4pau
-o3pea
-ope1i
-opel6lø
-2open
-o4pena
-o9pend
-o4penet
-o7pent
-o2per
-6o3per.
-3opera
-ope6rar
-o7pero
-o5pert
-2opet
-o4peta
-4oph
-o1pi
-o4piek
-oping9s
-o4pir
-2opl
-o1pla
-o4p5land
-op3li
-op9lu
-op4na.
-op4ne
-2o3po
-2opp.
-4oppa
-op4p5art
-op4pas
-4oppe
-1oppg
-op4pi.
-op6pia
-op4pis
-opp3li
-3opply
-op6poe
-op6pr
-opp5rop
-opp5und
-opp1å2
-2o1pr
-op6re
-op7ru
-op7rå
-op6sa.
-o8p8si
-op2t1r
-o4q
-4or.
-o6r7add
-or3adr
-o2rag
-or1ak
-2oral
-or5ald
-o4r5alg
-oral4st
-or6alt.
-o3r4am
-o4rana
-o3rane
-o4rang
-o4rans
-or6ap
-or3att
-o4rau
-ora3uk
-or1a4v
-4orb
-orbit5
-or7by
-4orc
-orda9ta
-or3dea
-6ordel
-ord7e6pl
-or7dik
-ordi4s
-or4d5ise
-ord3it
-1ordn
-ordre8gi.
-or7d6rø
-ordsa6me.
-ords6e
-ord3st
-ordy9ra
-8ore
-orear8a
-orear8e
-o5rebra
-o8redi
-or1ei
-or1el
-o4rela
-o6reld
-ore6na.
-ore4ned
-ore4net
-or3enk
-oren3s
-ore6o5g6
-o6rerf
-o4rero
-ore1s2
-o5resc
-ores6te
-o4reta
-or9et8n
-o6retv
-o2rev
-2orf
-orfa6re.
-orfi7ne
-orfø9re.
-1or3g4a
-4orga.
-or3ge
-or5ger
-orge4s
-orgi6e5ne
-org4sk
-orha9g
-orha9le
-o1ri
-o3ria
-ori5b4
-ori4e5ne
-5orient
-o7riet
-o2rig
-ori7ka
-o6rim
-or3ind
-or3ink
-or3inn
-or3ins
-oriro8
-6oris
-oris4a
-6orit
-o4riti
-oriti6me.
-or5ka
-3orkes
-or5ko
-orko6se.
-ork7s2
-6orl
-orla7te
-or5le
-orm6al5t
-orm5ang
-or6map
-or5mel
-or4m3un
-ormæ9
-or4nar
-orned5
-orne6dr
-or5net
-or4nol
-orn3t
-4oro
-o3roa
-o3roe
-or3off
-o5rog
-oro5i
-o1ron
-or1op
-o4r1or
-oror9da
-o5rosa
-o5rot
-or3ove
-or5ovn
-orpe6s
-4orr
-2ors
-ors5alt
-or5sen
-or4serk
-orse9ta
-orse7te.
-or3si
-ors5kar
-orsk5ei4
-ors8k9l
-ors4ku
-or1s4l
-orsmå8la
-or1sn
-or3s2o
-orso9na
-orso9ne
-orso9v
-ors4pa
-ors4ten
-or1su
-orsva9re
-or3sy
-or9sø
-2ort
-or4t3ak
-orta8la.
-or4t5and
-orta9pe
-or4t5av
-orte5i6g
-or4tek
-or3tem
-or6t5erf
-or8t7erm
-or5tii
-or7til
-or5tis
-3ortod
-or6tok
-orto9ne
-orto4r
-ort5ori
-or4tou
-ort5res
-ort5råd
-ortå4
-or4t3år
-or1u
-oru8d
-or9ude
-oru4h
-o5rum
-oru4t5
-oruta4
-or4utf
-orva9ra
-or5veg
-orv3s
-4ory
-o7rya
-or1yn
-2orø
-or9ø8k
-orøk8t
-or5ør
-or3ø4v
-orøv8d
-or1øy
-or5ås
-2os
-o1sa
-o4sa5b
-o6sad
-o2saf
-o4saku
-6o5sau
-osbi7
-osefi5
-o2seg
-o5selei
-o2sem
-os2en
-o6sena
-ose5sl
-ose5sm
-oses4sk
-oses6sp
-oses4st
-o4seu
-osfa9ta
-os2hi
-os7his
-osi6e7ne
-osi5ere
-osi5ert
-o2s1ing
-osk3ei
-oskei6e
-o4skil
-osk9lar
-osk5len
-o1sko
-osko5p
-o3skri
-os8k3v
-os2l
-os3le
-oslo1
-os2lo5d4
-os5lu
-os5lø
-os9ma
-os5me
-os3mo
-o2sn
-o3so
-os7ove
-os6pa.
-os6pe.
-os4pil
-os4por
-os4sek
-os3sem
-os5sens
-osseri7e6
-osse5v
-ossis5te
-os6ski
-oss3kj
-os4s5ko
-oss9l
-os6spa
-oss7tro
-os7sty
-os8sv
-ost5adr
-os5tal
-osta5le
-o8ste.
-os4teg
-ost5egg
-os4tek
-ost6el
-os5teo
-o4sti.
-o8stia
-o4stie
-o4stin
-os5tis
-ost1o
-os6tons
-os6trad
-ost5ran
-ost3re
-o3stro
-ost5rup
-ost7rå
-o5stø
-os1v
-os5øy
-os7år
-2ot
-o1ta
-o5tad
-ota4l5a
-ot5ald
-otal7ev
-ota4lov
-o9tane
-o9tar.
-ot3arg
-o8t9arm
-o5tas
-ote7d
-ot6ei
-ote5int
-otek5i
-ote6k7la
-otekla8ga
-ote4kle
-ot5elem
-ote5lev
-otel6lan
-otel6lek
-otel4li
-otel8lø
-o4tena
-o4t5ende
-oten8de.
-oten4s5p
-o2teo
-o4teram
-o4teret
-o6terev
-o4tero
-oter5s
-ote5r8u
-o4terå
-otes6ter
-ote5sté
-otet5a
-otet5o
-otet3s6
-otfø4
-oti7ert
-oti2k
-otika3
-ot7i6ko
-o1tj
-o6tja
-ot5jer
-ot6nero
-otno7te.
-ot6nå
-o1to
-o2to.
-o4to3a
-o5toa.
-o2tob
-oto6en.
-o6tof
-ot3off
-o6toga
-o6togram
-o4toi
-o2tol
-oto5ne
-oto4ral
-otor5d
-o2tot
-o2tou
-o1tr
-ot7red
-ot5rer
-ot5rev
-o6t7ri
-o6t5rom
-o6t5rø
-ots5el
-ot6sh
-otshusvæ8
-ot4s3ki
-ots6op
-otsopp6
-ots5pr
-ots5tab
-ot7ste
-ots6å
-ot6tank
-ot5tas
-ot5tegn
-ot6tenk
-ot5tese
-ot5tin
-ot5toa
-ott4s3k
-otts5po
-otts4ti
-ot7tug
-ot4typ
-o1tu
-o6t5ut
-o1ty
-oty8e
-ot1yt
-o1tø
-ot7å
-oub8
-oul5l
-oun6ge.
-ou4r
-ou7ri
-ou5ro
-ou9sa
-out8a
-ouve4
-o5vae
-o1vak
-ovanfø8
-ovan9o
-ov3anv
-o7var.
-o6varb
-ova9re
-ov5art
-ov7arv
-oved3
-o1vei
-o1vel
-ove4la
-4oven
-o4vend
-o5vende
-ove6nya
-ove2r
-over3a
-ove7ra.
-ove9ras
-o6verdr
-overe6
-ove8r5es
-3o6verf
-3overg
-o5verks
-5overr
-5oversik
-overs4p
-over9v
-o1vet
-6ovh
-2o1vi
-oviso3
-2ovj
-6ovna
-ov4nes
-2ovni
-4ovo
-o5vo.
-o7vom
-ov1or
-o5vot
-ov1o2v
-ov5sal
-ov4sek
-ov4sen
-ov9ske
-ov4sle
-ovs1p
-ovs5te
-ov4sti
-ov7sun
-ovsy5k
-ovta6le.
-ovveg7i
-ow1
-owa8
-o7was
-owat2
-ow5h
-ox3
-oy9ar
-oys5l
-o1y2t
-o1za
-o3zy
-o1ø
-o1å
-ô6ra
-ô2re
-ôr5ei
-ô1ri
-ô4t
-ó9sa
-ó7t
-ó8v
-ò9re
-1pa
-4paa
-2pac
-pa8cen
-p5ad.
-pa3deb
-p4adg
-pads4
-2paj
-6pak.
-6paka
-4pake
-pak4kas
-pakke4s
-pakk7esl
-4pakti
-pa3kv
-3pa1la
-pa3le
-pa6le4o7
-pa7lim
-pal5in
-pal1j
-pal5lø
-5palm
-4palø
-2pam
-pa5me
-p3anal
-pa4nap
-pan9de
-pa5ne
-pang5s6
-pan3ka
-n7k8rea
-9panne.
-pan5se
-pan5sl
-pant8r
-4panv
-pa4ny
-2papa
-pa8pa.
-pa3pe
-4papo
-pap4pr
-4papr
-pap3ri
-pa4ra.
-5parad
-2parb
-4parek
-4parena
-par5ess
-par5g
-2pari
-pa4ri.
-pa3ris
-4parki
-par6k7l
-par4kv
-par3m8
-pa1ro
-4parr
-par8ra.
-par9s4
-par6tid
-par4tig
-par4tin
-par5u
-par7v
-parvi6
-6parø
-4parå
-p6as
-pasa5
-pa9se
-pase6r5
-4pasp
-3pass
-pas5sab
-pa4s3t
-pas4tar
-pas5ti
-pas9v
-pa1t
-pa3te
-pa4tist
-pa6tre
-p8atta
-pat6tak
-2patu
-p8at6v
-pau7k
-2pav
-pa4ve.
-3pa1vi
-2p1b6
-pba4ne.
-pbo6da
-pce6
-2p1d4
-pde4le.
-pdø2
-pdø9d
-1pe
-2pea
-peak3
-pe4a3re
-4peb
-pec3
-pe7d6a
-5pedas
-4pedd
-pe3de
-pedfø9
-pedi9e8
-pe6doa
-pe6don
-4pedr
-pe4dro
-4pedu
-4pedy6
-2pedø
-pe7då
-pee6
-pe3er
-2pef
-p5eft
-2peg
-p5egg
-peg8ge.
-pego4
-2peh
-pe4il
-pei4leg
-2pe1in
-pe6ism
-2pej
-2pek
-pe8ka.
-pek4l
-pek4tro
-pekt7ros
-8peku
-p6el
-4pela
-pe5l4aks
-5pelal
-pe5lar
-pel9d
-4peled
-pe4lef
-4pelei
-pe6lep
-4peler
-pe6lev
-6peliv
-6pelj
-pel4lo
-4pelov
-pel5s6e
-pel5s4i
-pel7st
-4pelu
-pe5lun
-2pely
-2pelø
-6pelå
-2pem
-p1emb
-pe4nan
-pe4n3ar
-pen3de
-6p5enden.
-4pener
-pe3net
-5peng8
-pen4gel
-pen7gl
-peni4n
-4peniv
-penly4
-pen7s8a
-pensa7k
-pensa8la
-pen5sk
-pen4s5l
-pen3s6m
-pen5s6o
-pens4t
-pen9sta
-pen7ste
-pen7tag
-pen5tr
-6peny
-2penå
-2peo
-pe7o6s
-2pep
-pep5ar.
-pep7p
-pera3a
-4pe4rab
-4perad
-pe4rai
-pe4ral
-4perap
-pera5t
-4perate
-5p6erc
-4pered
-4perei
-4perek
-4peresp
-4perest
-4peresu
-4peret
-pe4rev
-3peri
-perie8ns
-4pe5rik
-peri3s4
-4perit
-per7k8
-per6les
-per5mu
-per5n
-4pero
-pe3ros
-pero6se.
-per6regj
-per6rei
-5perro
-pers6m
-per4tro
-per4t5rå
-pervi6k
-2pery
-6perø
-4pe7rå
-2pe1s
-3pes.
-pe3se
-pe6se.
-pe7si
-pes8ka.
-p3eske
-pes4ke.
-6pesl
-pes4n
-5pess
-3pest.
-5peste.
-pes5til
-pe7t8
-4petab
-peta6ka
-4petal
-4petas
-4petau
-pe3te
-5pete.
-4peted
-6petei
-6petek
-4petel
-4petem
-pe3ti
-4petid
-4petil
-pe4tim
-2petj
-2peto
-2pet4r
-pe4t5ru
-pet1s6
-4pett
-2petu
-4petø
-4petå
-pe2u
-2pev
-peva8ne.
-pe5vi
-p5evn
-pev6ne.
-4peø
-4peå
-3pér
-2p1f
-3p6fenn
-p3fo
-p5fr
-pfri4
-pfø5re
-2p1g2
-pgjer4
-2p1h
-phav2
-pha9va
-phavs5
-3p4her
-phe9te
-phe7va
-phe5ve
-phi5li
-7pi3ane
-7piar
-pi4as
-7piase
-4piav
-4pib
-pi6ca.
-2pid
-pid3s2
-pie2n
-6piend
-pi3er.
-pi9ers
-2pif
-pi9fr
-pig5ge
-pig6g9u
-p7i6gj
-2pih
-6pii
-pi4keh
-pi6kel
-pike5r6o
-pi4ké
-8pikk
-pik3ko
-4pikl
-piku5
-pi5la
-pi6la.
-pi3lep
-pil4lag
-pillba6
-pil6led
-pil4leg
-pillega6
-pille6ra
-pil4le5s6
-pi1lo
-2pim
-pi4na.
-pi4ne.
-pi9ned
-pi4nel
-pine4v
-3ping
-pin6go
-ping3r
-ping5sk
-6pinns
-pin4sl
-pi2nø
-pio6n5an
-pion5s
-7pi2p
-pi4pi
-pip9la
-p8pip
-pi4rar
-pi4res
-pi4rut
-pisi9e
-pi4ski
-2piso
-piss4l
-pis4sp
-pis4st
-pis1t
-pis4t5r
-pis9t8ra.
-1pit
-pi9ta
-pita7la.
-pi5té
-2piti
-4pitj
-4pitr
-pit5t
-2piu
-2pi5v
-4piø
-4p5k4
-pka5v
-pka8va
-pl6
-8pl.
-2plad
-pla8de.
-p4lak
-p4lan.
-plan7de
-4plane.
-4p5lan5g
-plan5s
-plap3
-4p1lar
-p2las
-pla4st
-p2lat
-platina5
-2ple.
-2pled
-p8legi
-4pleis
-p2lek
-p6le5n4u
-ple5n4a
-ple6r5u
-ple8se.
-4plev
-p2li
-4plit
-p3liv
-pli7va
-plo4gj
-p4lo8i
-p1lok
-4p5lov
-plu4e
-p4luk
-plun3
-plun6d7ri
-p1ly
-ply5d8
-plæ5re
-plø6pa
-p1lå
-2p3m
-2p1n4
-p7ner
-pne6se.
-1po
-po9a
-pod8
-po6da.
-po4de.
-po6em
-2pof
-po6f7r
-pog6
-4poh
-po5id
-2poke
-po6lan
-po3le
-po4lek
-6polj
-pol5li
-po6lom
-pol6s4ka
-po2lu
-2pom
-pom6p9u
-pom5s
-4pon.
-pon5d
-pon4gr
-pongs6
-2pon1s
-pon5sa
-pon4sv
-po2p1a
-po6pe.
-p5opn
-pop1s
-2por.
-po1ra
-2p5ord
-po1r4e
-po4ref
-po6reg
-po8ré
-2p1org
-2pori
-2pork
-por6s7v
-por4tor
-por4t5ro
-por4trå
-2porv
-po1ræ
-po1rø
-po4se.
-po4ses
-4posj
-po2st
-po4sta
-pos5tas
-po5stat
-pos3te
-4pos4v
-5pot.
-7pota
-potak9
-po3te
-po4te.
-potek5l
-po5t6ha
-3poti
-4potr
-4pou
-2po4v
-pove6
-pover6n
-pow4
-2pp
-p2pad
-p2pak
-pp3akt
-p2p3a4l
-p9pane
-pp5angr
-pp5ank
-p4p3anl
-p2pap
-p9par.
-pp5arr
-p7past
-p4p7at
-p4pee
-p2pe5i4
-ppel5s6
-p4pena
-p8p9ender
-p4pendr
-ppe9nes
-ppe5p8
-p4penø
-ppe5ra
-p7pere.
-p4perkl
-pp7e6sen
-pp9esn
-ppes8ti
-p4peta
-pp5e4tas
-p4pete
-pp5ett
-p2peu
-pph8
-p1pi
-pp1id
-p2p1il
-pp5im
-pp3inf
-p4p5inn
-pp7ir
-ppir8re.
-p4pist
-pp1j
-pp3k
-pp1l
-pp5last
-pp3led
-pp5lei
-pp9lev
-pp5n
-pp1of
-p2pol4
-pp3old
-pp5om
-p2p1op
-pp3ork
-pp1ov
-pp5p
-pp1r
-pp5rei
-pp5rin
-pp4ris
-pp7riss
-pp9riv
-pp9ro.
-ppropri6
-pp7rot
-pp1s
-ppse6te.
-pp3ska
-ppska9k
-pps2p
-pp9spe
-pp3spl
-pps2t
-pp7sto
-pp7t2
-p2pu
-pp1uk
-pp5ut
-pp3ø4
-ppøs8
-p6på
-pr6
-4pr.
-4prad
-3praks
-pra7li
-2pran
-pran3s
-5prat.
-5prate
-pra5te.
-4pray
-5pref
-prei7er.
-4preii
-pr5elem
-1prem
-pren4s
-1pres
-6pres.
-pres6sak
-p6restas
-pre7t6en7
-4prett
-p3rif
-pri5ke
-pri4l3e
-4pring
-5prino
-3pr6in6s5
-3pr6in7s6e
-3pr6in7s6i
-1pris
-pri6s5k
-pris3t
-2prit
-pri9ve
-1p2ro
-8pro.
-6p7roc
-3prof
-4prog.
-4proge
-4progl
-4p3roi
-p5rop.
-3pros
-7prose
-6pru
-prun7ge
-pru5ta
-pru5te
-6prør
-prørs5t
-prø5s4
-5prøv
-prø5vels
-2prøy
-4prå
-prå8da
-pråk3i
-prå4ko
-pråk5k6
-2ps
-p1sa.
-ps5a6n
-p1sc
-p3se.
-psei8ge
-p2sek
-p2s1el
-ps5e4ly
-p3sen.
-p5sens
-p7ser.
-p5sete
-p5sets
-p2sh
-p6sib
-ps5ins
-p7sis
-p3s4jo
-p4s3kil
-ps7kjen
-p2s1ko
-p7s6ko.
-p3skod
-p5s4koe
-p2sle
-p9s8lo.
-pslø8va
-pslø6ve.
-p3s4lå
-p2sm
-psmå8la.
-p2sn
-ps4no
-ps1o
-p3sod
-pspi9la
-ps5ple
-p3s4pre
-p4s5pro
-ps5pu
-ps3s2
-pst2
-ps7tal
-p4s5tem
-ps3tv
-p5s6tå
-psu4r
-p3s4us
-ps1v
-p2sva
-p2sve
-ps4ving
-p4svæ
-ps5w
-psy3ke
-3psyko
-4psys
-p2s1ø
-p3s2øk
-psø4ke.
-psøy8
-psøy9ene
-ps1å
-2p1t
-pta8la.
-pta4le.
-pt7ark
-p3te
-pte6k
-pte4ma.
-pte7re
-p5ti
-pto7g
-p4tou
-ptus5t
-p4tut
-1pu
-pu4br
-5puc
-6pu6dy
-p5ugl
-pu2k
-pu7la
-pu8le.
-pull6
-5pum
-pu4ma.
-punk4t5
-punk5t6e
-2punn
-2pur
-pu4re.
-pu8rea
-3puri
-3purk
-pur5u
-pur3v
-pu7sa
-pus4h
-pusl7u
-pu1ta
-pu4ta.
-pu5tas
-pu5ter
-pu5tev
-4putg
-2puts
-put6tr
-put4tu
-2putv
-6putø
-2p1v
-pver7
-pvi4se.
-py4dr
-py8o
-3pyra
-py1re
-py1ro
-6pys
-py6sa.
-py4se.
-pys6t
-4p5z
-1pæ
-pæ4re.
-pø1kj
-pør4ret
-pø8sa.
-pø9ta
-pø9te
-p1ø2v8
-5påb
-på4by.
-på1k2
-1pål
-på4la.
-på4le.
-p5ån
-på3pe
-på1pl
-p1åpn
-på1r
-1pås
-på7sko
-på5sm
-på3t2
-6påtå7
-1påv
-qa5
-qu2
-qu9ar.
-1que
-que7r
-4raam
-4raar
-4rabis
-ra1bo4
-4rabr
-2raby
-ra3cet
-ra3ch
-5raci
-ra3d2a
-4radf
-3radio3
-4radir
-4radj
-2radm
-2ra1dr
-r3adre
-rad2s3
-radvi4
-ra5ede
-rael4
-4raerk
-raf4fer
-ra4fiu
-ra2fj
-2rafo
-ra5fo.
-ra4fos
-2rafr
-ra5fre
-6raft
-ra4fu
-ra6fy
-ra7gea
-ra5gee
-2ragl
-2rah6
-7raid
-ra5int
-ra3isk
-6r5akad
-ra9kar
-ra7kel
-ra5k6ha
-r2akk
-rak4kel
-r6akr
-ra5kro
-2raks
-rak6sa
-rak3s4e
-rak6se.
-rakst6
-4rakti
-rakt3r
-r4a5ku
-4rakv
-ral5ans
-6ralbum
-5ralds
-4raled
-ra5leo
-ral3g
-4r5alge
-4r5algo
-rali5e6n
-ra4lin
-ral1j
-ral5le
-ral7m
-ralo6i
-ral3op
-ra5ly
-4ralø
-4ra5l8å
-ra4mag
-ra4mas
-ram3b
-6r9ambi
-rambu9ens
-6ramed
-4ra4mer
-ram8et.
-4ramil
-ram1o
-ramperi8
-ram6p3u
-ramse8te.
-ramta8la.
-ramta6le.
-4ramu
-6ramy
-r4an.
-ra4naa
-6r3anal
-ra5nar
-ran9cs
-r4an9de.
-r5andel
-rand3r
-rand5s6a
-r4ane
-4ranfa
-ran5ge
-6rangi
-rang5st
-rania8
-ra6nin
-ran3kv
-2r5anl
-r6anli
-2r1anm
-r4ann
-ran6n5ett
-ran4n5in
-rann3s4
-rans7kar
-4ransv
-ran4tik
-ra5nu
-ran6ut
-4ranø
-2rao
-4rapa
-ra4pel
-4rapin
-ra4pir
-ra4pis
-ra6pit
-ra1pl
-4rapo
-ra4pos
-4rappa
-4r5appl
-3rappo
-2ra1pr
-4raps
-4rapu
-1r4ar.
-2rarb
-7rarbeh
-4rarea
-4rareg
-rar5e6l
-4ra3rep
-rar7eta
-r1arg
-6rargu
-8rarinna
-6rarinne
-rar8ka.
-4r1arm
-rar8ma.
-6rarn
-4rarr
-rar3re
-rar5s
-2r1ar5t
-rar6ta.
-ra3rø
-4rasa
-2rasc
-ra3sea
-4rasel
-ras3h
-raska8ra
-ras3ke
-ra4ski
-ra7s6ko
-ra6sl
-rass4l
-ras7st
-4rasti
-ra5s4til
-4rastj
-rast5re
-6rasty
-ras7v
-ra1ta
-ratak9
-r6ate
-ra4te.
-6ra5teg
-8r7a6teli
-4ratfe
-ra1to
-ra1t4r
-ra4t5ro
-ra4trø
-ra5t6røy
-rat5tel
-ratte4s
-4ratub
-rat5ut
-6raty
-7raud
-raud3s
-6raug
-rau6ga
-rau6ge.
-4rau4k
-raus6s
-2rav
-6ravd
-rave5s4
-4ravg
-ra1vi
-r3a4vis
-4ravl
-rav8l9ut
-ravlø8pa
-ravlø8s
-rav6r
-4ravt
-ra5vy
-ra3vør
-4raw
-raz5z6
-2raø
-raøy4
-2r1b8
-rba3d
-rbe2d
-rbede4
-rbed5en
-rbed5et
-rbed9ra
-rbie8
-rbi9er
-r2big
-r2bik
-rbist6
-rbis5tr
-rbo8di.
-rbo4ni
-rbon7s
-rbo5re
-rbra5s
-rbrei6
-rbu5en
-r5bø
-r1c
-4rd
-r4dab
-r5dag
-rdag4s5
-r5dah
-r4d5ak
-rdal4
-r4dala
-rda4le.
-rdals5
-rda4mes
-rda8n9o
-r4dant
-rd5anta
-r4d3arm
-r4d3art
-rd5atl
-r4datm
-r4d3au
-rd3d2
-r6dedi
-rde4en
-r3defi
-rd5e4ge
-rd1ei
-r9deka
-r4dekl
-r4deks
-r6delo
-r6demi
-r7dena
-r6d7eng
-r6d7enh
-rden4s3
-rdense4
-rdenta8le.
-r4deo
-r6depo
-r4derik
-r4d5erst
-rde6sm
-rd3e4ta
-r6d7ett
-r8dé
-rdfes5
-rdi3an
-r4diana
-r4dians
-r6diau
-r4did
-rdi3e2
-r2dif
-rdi6gres
-rdig3s4
-r4dika
-r4dikl
-r4diku
-r2dil
-r6dimi
-r2dio
-rdi3ov
-r4dish
-r2dit
-r2diu
-rd5je
-r1dju
-r8d7m
-rd3n
-rdnæ4
-r9dob
-r4d5o4d
-r4dol
-rdon8na.
-rd1op
-r6dor
-rd3ost
-rd1o4v
-rdover5
-r9drad
-r3drak
-rd5ran
-rd7rara
-rd3ras
-r3drei
-rd3ret
-r5drev.
-rd1ri
-rd3rot
-rd3sei
-rd8ske
-rds4kv
-rds5tan
-rd3sto
-rdsto5g
-rds7tre
-rds7tu
-rdsva9r
-rd5t
-rdta8ka
-rd5tr
-rd7tø
-rd3und
-rd5ve
-rdvi8ka.
-r4dyg
-rdy5pe
-rdy3re
-r6d7yt
-r6d5æ
-r7d6ær
-r7d6æ5r6e
-rd1øs6
-rdø4ve.
-rd3år
-rd7å6s
-1re.
-2rean
-re7a6r7an
-rear5e
-4reav
-2reb
-3redak
-6redam
-re3def
-re5den
-re3des
-re3di
-3redig
-r1edl
-2redo
-2redr
-re4d5ri
-red5sku
-red4sl
-reds5la
-red7s6led
-3reduk
-6redy
-2redø
-2ree
-re4el.
-re3er
-8refa
-4reff
-4refi
-2refj
-6refos
-6refr
-4reft
-2refø
-4regar
-rega7ta
-re3ge
-4regeb
-re5gel
-4regen
-4reger
-4regg
-1regi
-re4gia
-re4gil
-reg1l
-2regr
-4regub
-4regud
-2regå
-2reh
-2reid
-2reie
-2r1eig
-rei8ga.
-rei8ge.
-4reik
-rei9l
-rei5na.
-rei7nas
-re5inde
-rei5ne.
-rei7nes
-rein6skj
-re4inva
-rei9ra
-rei5sa
-rei3si
-rei7ska
-reis6led
-re7ism
-rei7v4a
-rei5ve
-2rej
-6rek.
-re5ka.
-re5kav
-re7ken
-4rekj
-rekk6an
-rek4k5v
-5reklam
-rek4led
-re5k6lir
-re7ko
-4rekob
-4rekom
-4rekon
-6rekos
-4rekra
-3rekru
-r3eksa
-6reksp
-rek4ter
-4reku
-r8el.
-re9la
-4relag
-9relandsk.
-9relandske
-2r2ele
-rele8ge.
-r4e5lei
-6relek
-re7len
-7relene
-6relg
-r3elit
-4re3lj
-r2ell
-rel4lag
-rel6land
-rel5led
-rel4lev
-5r4elm
-rel5ses
-rel4sk
-4re1lu
-4relv
-2re5ly
-2relæ
-2relø
-4re7l6å
-relå7r
-2rem
-remann6
-r1emb
-remi6ene
-remi6l
-re7mis
-rem9ji
-remmed5
-6remn
-rem8na
-rem5p4
-rem1s
-remti9da
-4remu
-8remy
-4remå
-2re3na
-ren4del
-4rendr
-8rened
-re5neg
-re7nei
-4renek
-r3e4nel
-4renest
-6renet
-6rengd
-reng5l
-4rengn
-reng5st
-re5ni
-2renk
-ren6kl
-r3enl
-ren8ne8sl
-rennes9la
-re5no
-ren5sa
-r3enss
-6r7entit
-4r3en5tr
-6rentu
-4renu
-5renz
-6renæ
-4renø
-re5og
-2reop
-re3o2r
-5reou
-8repen
-6r5e6pi
-1repu
-6repus
-1rer
-6rerad
-6re9rang
-4rer6at
-re5re.
-4rered
-4reref
-4rereg
-4rerei
-re4rek
-4rerent
-4rerep
-4rerese
-4reresu
-4reret
-6rerfa
-4rerig
-4rerik
-4r3ernæ
-4rerol
-4rerom
-re3ros
-rero6se.
-re5rot
-3rers
-rers4p
-4rerute
-re6r7øy
-2rerå
-1res.
-2resa
-re2s3c
-re3se
-4resel
-re4sem
-4reset
-resi7ere
-4resin
-2resj
-2resk
-res5ke
-re6s7kje.
-res6kl
-res7kod
-re6sky
-6re1sl
-re4slu
-1resm
-re5smo
-re3sov
-re9spe
-4respi
-4respr
-2ress
-res4sal
-res4sek
-res4sit
-res4sj
-res6sk
-res6sort
-res4sp
-res4st
-res4sy
-res9tane
-5restau
-res6t5erv
-res4tes
-res3té
-4re3sti
-res4til
-re3str
-4restre
-7restv
-4re5sty
-4restå
-1resu
-6resuk
-4resun
-re3s4ve
-re3svi
-2resy
-2resø
-4retaki
-4retal
-re4tap
-4retea
-8retek.
-6reteke
-4retekn
-6retel
-6re5tem
-re5ten
-4re5ti
-4retj
-4retoa
-2re5t2r
-rets4i
-ret4st
-ret7ted
-ret5ter
-rett8o
-rett6set
-4re5tu
-2rety
-2retø
-5retøya.
-7retøyets
-4re7tå
-2reu
-reu6r
-4revak
-re5van
-reva5re.
-6reveg
-4revei
-4revel
-re6v7enh
-re5ver
-reve5s
-r3e4vig
-re4v5inn
-re7vom
-1revy
-re4v5åp
-3rew
-2reå
-2r1f
-rfa5re
-rfat5
-rfe8en.
-rfe8er
-rfe4et.
-rfei5li
-r4fik
-rflå3
-rfe5m6ø
-rft2
-rfu8se
-rfyr4
-r9fæ
-rfø8rarar
-2r1g
-r5ga.
-rga8le.
-rga8li
-rg5and
-r7gann
-r4g5anv
-rga3ri
-rg3art
-rga4ve.
-r6gedi
-r4gef
-r2gem
-rgent4
-r3geo
-r4gerei
-r4geret
-r4ge3ru
-r4gesj
-r4gesl
-r4gesta
-rgi1a
-rgie4n
-r2gik
-r2gil
-r2gim
-r2gio
-r2gir
-rg3i4ri
-rgi7sl
-r2giø
-rg2le
-rg5le.
-rglem5
-rg3len
-rg3ler
-r2gn
-r4gog
-r3gom
-r2got
-rg5rab
-rg3rea
-rg3rel
-rg5reps
-r6g5ri
-r3gru
-rg5sc
-rgs6kor
-rg5s4le
-rg1sn
-rg5s6till
-rg5sto
-rg9stu
-rg2sy
-rgu7d
-rg6ut
-rgå9as
-rgå6va
-rgå6ve.
-2r1h
-rhav2
-rhavs3
-rhjul8s
-rho3d
-r7hu
-rhø5re
-rhånd6s9
-rhå9ne
-ri1an
-4rianf
-4rianl
-6riansv
-ri1ar
-4riarb
-4riarr
-6riau
-2riav
-ri4ava
-3ri6avo
-2rib
-ri2b3l
-ri8ca.
-ri4co.
-ri5da
-4ridale
-ri5der
-ri5di
-2r1idr
-rid3t
-4rieie
-4rieig
-4rieks
-ri1el
-6rield
-4rielem
-6rielim
-riel4la
-rie4n
-ri3end
-4rienh
-4rient
-rien5t4r
-ri1er
-rie5ra
-rie5ri
-4rietat
-ri5even
-2rifa
-riferi9e8
-rif4fi
-rifiserba8
-6rifj
-1rifl
-rif5la
-2rifo
-2rifu
-4rifø4
-ri4ga.
-rig4gr
-ri3gi
-4rigj
-4rigre
-rig2s
-rig6s7t
-2rih
-2rii
-2rij
-5rij.
-ri4kali
-ri5kan
-5rikd
-ri3kes
-ri7ki
-rik7ken
-rikk5j
-4rikl
-ri8k9la
-2ri7ko
-6rikon
-2ri1k2r
-rik4sk
-rik4s5u
-rikt6
-rikts3
-riku6m
-ri3k4v
-4rikå
-2rila
-6r5ilde
-6riled
-ri5lei
-ril6lest
-2ri5lo
-ril4sn
-2rilø
-4rima
-ri9mab
-ri9mar
-6rimes
-ri5met
-2rimi
-ri4mi.
-7rimis
-rim7l
-4rimm
-4rimo
-ri4mor
-4r1imp
-4rimu
-rim9ut
-4rimy
-rina5l
-ri5n6am
-4rinas
-4r5inc
-4rind
-r3indu
-ri4nee
-ri4nes
-2r1inf
-rin7gom
-ring3r
-ring4sa4
-rings5ak
-ring8spa
-2r3inj
-2rink
-4rinn
-rin9nes
-4rinor
-2rins
-rins6k
-rin6sm
-2rint
-rin4t5j
-rin4tr
-2rinv
-ri6nø
-2ri1of
-6ri3om
-2ri1op
-2rior
-rio5s4
-riot3r
-2rip
-4ripe
-ripo4s3
-4ri1r
-4risau
-4rised
-rise5i
-6risek
-4risel
-ri4seli
-4rish
-5risiko
-2risj
-ri6sju
-4riska
-ri4ski
-6risku
-4risky
-6ristad
-4ri5sted
-ris5tik
-4ristil
-ri4sto
-ris5tof
-ri5stun
-6ristø
-ri6stå
-4risv
-4risy
-4risø
-ri3te
-6riteo
-ri7ti
-riti9da
-4ritil
-4ritj
-ri5t6o
-ri5tr
-rit1s6
-ri6tun
-4rity
-2riun
-riu4r
-2riut
-4rivar
-ri6ved
-rive9ge
-ri5vei
-4riverk
-2rivi
-ri4vi4s
-riv5ise
-6rivo
-4riøk
-riø4r3a
-8riøya
-4riå
-r1j
-rj7ambi
-r4jere
-r2jes
-r4jeti
-r4jetr
-r4jetu
-rju6la
-8r1k
-rk3akt
-r6kanf
-r4kao
-r4kapr
-r6katr
-r3ke.
-r2keh
-rk5eik
-rkei8ka
-r6kek
-r4kelo
-r4ke3lu
-r3ken.
-r4kenav
-r3kene
-r4keni
-r5kens
-rke5ri
-r4keris
-r4kero
-r5kers
-r4ke3ru
-r4kerø
-rke4se
-rkeslø7se
-r9ket.
-rk4han
-r3ki
-rki3d
-rki3e
-rki4vi
-rkjek8
-rk5jor
-rk1k2
-r5k8led
-rk2li
-rk5lun
-rk9lut
-rklæ5re
-rk2lø
-rklå9ra
-r3knek
-r5knep
-rk7nes
-r3kno
-r2kob
-rko6b5r
-r6kofo
-r2koh
-r4kola
-r4koli
-r4kope
-r4kora
-r4koru
-r4kosel
-rko6sele
-r4kosj
-r6k7ras
-rk5rei
-r5k6rem
-r8ks
-rk4sar
-r6k6seg
-rk2s1i
-rk4ska
-rk1st
-rk6stal
-rk4sten
-rk4s5ti
-rk4stj
-rk4sto
-rk6s5vi
-rk5ti
-rkti4s
-rk5to
-rku4le.
-r6k7u6t
-r4k5ve6d
-rk5vei
-r5kvel
-r4kver
-rk3ves
-rk5vik
-r4k5øl
-r2k3øy
-rk9øys
-rkå4k
-rk5åke
-rkå6pa
-rk5å4s
-2r1l
-rla4te.
-rle4a
-r2lef
-r3lep
-r4l5e4ri
-r6le7sl
-rle4st
-r4lesu
-r4leu
-r3l4i
-rli9ke
-rling3s4
-rli8ta
-rli4te.
-r3lj
-rl6o
-rlog2
-rlo5ve
-rl4sk
-rlu4e
-r3ly
-rlys7k
-r6l5z
-rlø8pa.
-r5løy9
-2r1m
-rma6ge.
-rma5k4l
-r4m5alte
-rm3anl
-rm4ans
-r6manv
-r4mare
-r4marr
-rm5av
-rm3b
-r2me7g
-r2mek
-rme6lap
-rme5ne
-r4menet
-r6merev
-r4mese
-rme9tar
-r4mey
-r4m5ide
-rmi6ene
-rmini6
-rmin5ski
-r6m5inst
-rm5i4v
-rm1je
-rmlø8pa
-rmo4e
-r2mof
-rm1op
-rmo7st
-rm7p
-rm5s6ko
-rm1sl
-rms6n
-rm1st
-rms5til
-rm1su
-rmta8la
-rm3te
-rmu7an
-rmue4
-rmue5ne
-rmu8la.
-rmu6le.
-rm5øy.
-r9må.
-rmål4
-r6m5åp
-r9mår
-r6m7åta
-4rn
-r3na
-r4n1ak
-r4n3ald
-r6n5appar
-r4narb
-r4n3art
-rnat7r
-r4natv
-r6n9a6vis
-rn3avl
-rn3d
-rndø4
-rndør5
-r3ne.
-rne5a2
-r5neboe
-r2nec
-r4nef
-r2nel
-rnele6ge.
-r3nell
-r3nels
-r4n3eng
-r4nenh
-rne7p
-r4nerei
-r6neris
-rne3ro
-rne1s2
-r5nes.
-rne6se.
-r8nesi
-r4ne3sk
-r4nesm
-rne3so
-rn5e4tab
-r4nete
-r2nev
-rne5vr
-r2nés
-rn5g6
-r4ninn
-rn5k4
-rn3n
-r5no.
-r4noa
-rno5b
-r4nod
-r4noi
-r6nok
-r2nom
-rn5omn
-rn3oms
-r4n1op
-rn3ork
-r2nos
-r4n1o4v
-rn7se
-rn4s3in
-rn5ske
-rn3skr
-rn5sla
-rnsle7ge
-rn7s6mi
-rn6s3ovn
-rn5spon
-rn3s4pr
-rn1st
-rn4sti
-rn3te
-rn5ti
-rn7tr
-rntre4
-rnt4v
-rnu4
-rn5ug
-r6n3ut
-r7nøt
-r4n5øv
-rnå8le.
-rn3ås
-ro1ak
-roa4s
-ro5asi
-9roban
-9robar
-1robe
-ro4bed
-ro4bef
-5roben
-ro4bes
-5robølgj
-1roc
-r3odds
-7rodo
-ro5end
-ro7ens
-ro7fa
-ro4fel
-ro4fem
-roff5ri
-ro7ga.
-roga9ta
-ro7ge.
-rog5ret
-ro6gry
-rog1s4
-ro2gu
-1roi
-ro4kel
-ro5ki
-rok6kat
-rok6keri
-rok5kl
-rok4kom
-ro7k6l
-rok5n
-rok7s
-rok8se.
-rok5v
-roli7ga
-4rolj
-rol4lab
-rol4lap
-rol4leg
-rolle8ge.
-rolle8se.
-rol4lis
-rol6ly
-rolo9v
-2roly
-ro6mak
-ro4mal
-3ro5m8an
-ro4mate
-2rom7b
-4ro3me
-rome5d
-4romk
-4r3omn
-ro4mor
-2romr
-rom5sla
-r7omsy
-romsø3
-rom3t
-ro5ne.
-ro7nim
-6ronism
-6ronista
-8roniste
-6ronisti
-4ronn
-ron4na
-rono5s
-ron1s4
-ronta6le.
-ro4pad
-5ropet
-ro4pia
-ro8pla.
-2ropp
-ro9py
-ror3a
-ror6da.
-ro3re
-ro1ru
-ro4sat
-ro5sel
-ro3sen
-4rosl
-ros3la
-ro4sm
-ro6sov
-ro1s1p
-ros4st
-ros4sy
-ros7tas
-ro3sti
-ro3str
-rost7rø
-rot5ekte
-ro5tes
-rote7ster
-roti7ka
-rot5ord
-ro5tu
-6roty
-roun2
-round3
-ro5ut
-ro5va.
-ro9vare
-ro7vas
-ro5vek
-ro7ven
-rove5re
-rov5sm
-rovve6
-rò6te.
-8r1p
-r5pa
-r6parb
-r5pefo
-r4peno
-r6penø
-r5pesk
-r5pet
-rp6j
-rp2l
-rp3lad
-4rp3n
-rprø5ve
-r3pu
-rpun7g
-r6p5ut.
-r6p5øy
-r2påk
-8r1r
-r8raa
-r2rag
-rra3r
-r4raro
-rr3d
-rr6e
-r4reb
-r7rebart.
-r2ref
-rre7int
-r4rekl
-r5relat
-r4reo
-r4repl
-r4re3ru
-rre5sk
-r4resm
-r4reso
-r4respe
-r3ress
-rre4st
-rres5ta
-rre7sti
-rre5str
-rret6s5
-rre5u
-r3ri
-rri6ka.
-r6rip
-rri5v
-rr3m4
-rrmå8la
-rro6e
-r5rom
-rro8sa
-rro8se.
-rro8ta
-rr5s2
-r2r3un
-rr5v
-rrå5de
-4rs
-6rs.
-r1sa
-rs3ab
-r2s7ad
-r3sak
-rsa5ka
-r6sakt
-rsa6la.
-r8s9ald
-rs3all
-r5sam
-r4sarr
-rs3arv
-r1sc
-5s6ch6l
-r8sedi
-rse6g7
-r4seku
-rs4ela
-rs7eld
-r4seli
-r4s3elv
-rs5e4rik
-r3ses
-r4sesi
-r6sesu
-rse4te.
-rs6ett
-rsett8o
-r7sim6
-rsimp7
-rs1in
-r5s4ing
-r4sins
-rsis5t
-r7sja
-r4sjh
-rsj3or
-r3skad
-r6s7kaf
-rs4kam
-r3skap
-r4skar.
-r4skas
-r4ski
-r5skil
-rsk7inns
-r1skj
-rs5kjens
-r6skl
-rskla8g
-rsk5lar
-rs4k5le
-rs4k3læ
-r5sko.
-r5skoe
-rsk3op
-r4skor
-r3skot
-r1skr
-r4s3kra
-r5skriv
-r4s3kro
-r1sku
-r5sku.
-r5skue
-rsku7et
-rsk5und
-rsk5var
-rs5kys
-rsk5ø
-rs4lef
-r4slei
-rs4lek
-rs4les
-r5s6lit
-rs3lok
-r4slun
-rs4make
-rs4mo.
-rsmål4
-rs6nev
-r1so
-rso9a
-rs5oml
-rs8o6n5
-rso7n6al
-rso5n8e
-rso5n6i
-rsons4
-r2s1or
-rs5ord
-rso7ris
-rs1ov
-r1sp
-rs4pan
-rs6pat
-r5spel
-r4sper
-r7spes
-r5spi
-rs4por
-r5spred
-r4spå
-rs3s6
-r1s2t
-r4s5tabb
-rs5tank
-rs3tap
-r6st7b
-rs4ted
-rs4tem
-rs5tend
-rsten6s
-rs5ter.
-rstev9na
-r3stil
-r4s5tilf
-r4s5tilh
-r4s5tils
-r4s5tilv
-r5stis
-r4stit
-r6st5k
-rst4r
-rs9tre.
-rs7tree
-r4strin
-r4s5tro
-r5strø
-rst7ut
-rstu9va
-rstyg7
-r3st6ø
-r7stå
-rs5ukl
-rsu9r
-rsu7sa
-rs5usi
-r1sv
-rs8vak
-rsva9ra
-rsvar4s5
-rs1ve
-r3s4vek
-rs5vit
-rsy4na
-rsy3t
-r1sz
-rsøks3
-rs9øye
-6r1t
-rt5ad
-r4t5af
-rta4ka.
-r4tana
-rt3anl
-rta9pa
-r4tarr
-rt3art
-rt3avs
-r4tec
-r4teda
-r3tede
-r2tee
-r4tego
-r4tegr
-r4teie
-r4te3in
-r4teka
-rte6ke.
-r4teki
-r4teku
-rt5e4lit
-rte6ma.
-r3temp
-rten4s5k
-rtentle8
-r2teo
-r7t6er
-r5terd
-r5teres
-r4teris
-r5terk
-r4terå
-r4tese
-r6tesk
-r6testi
-r4teta
-r4tete
-rteus8
-r4tev
-r4th
-rtian8d
-r4tians
-r4tiar
-rti8ar.
-rti5en
-rti6gra
-r4ti3kv
-r4tila
-r4tili
-r4tilo
-r4ti7na
-r2tio
-r2tip
-rti7sa
-r6tiska
-r4tiski
-rt6i9so
-r4tisp
-rtis3s
-r4ti5str
-r3titu
-r2tiv
-rtma6le.
-r5to.
-rt3off
-r9tofo
-r9tok.
-rt3omk
-r4t3opp
-rt6opp.
-rt3ord
-r6t7o6s
-rt1o4v
-rt2r
-rt8ra
-r9tre.
-rt6red
-rt3reg
-rt3rei
-r4t5reko
-rt5rel
-rt5rep
-r7trib
-r4t3ris
-r4t5ros
-rt3rut
-r5t6rål
-rts3ar
-rt4seg
-rts5eng
-rt2si
-rt4s5ja
-rt5ske
-rt3skj
-rt5s4no
-rt3s4pe
-rt4sti
-rt7s6trek
-rt4s5tøy
-rts5unde
-rt3t4
-rtu6en.
-r7tug
-rt3und
-r2t1ut
-rtu8ve.
-rty8da.
-rty8de.
-rtyr5s
-rty6ra
-rt5yt
-rtæ9ra
-rt5øl
-r6t5ås3
-ru3and
-6ruav
-ru6avh
-rub6a
-ru8bl
-ru5bo
-ru4di.
-rud4r
-ruds4l
-ru4ele
-rue4r
-rue3s4
-ruga8l
-ruga5t
-rui3d6
-4ruk
-ruk4su
-rukt3s
-ru9la
-4ruli
-6r7ulk
-rul8ke.
-r2ull
-r7ulv
-r4um
-rum3al
-rum4p9l
-5r2unde
-run5del
-6r3under
-7r4under.
-r5unders
-rund3r
-rund3s4
-run6ge.
-4ru2ni
-run5kr
-r7uly
-ru4nøy
-ru2r
-ru5ra
-ru8ran
-ru8rar
-ru9rer
-rur8ta
-r4us
-rus2h3
-6r7u6sik
-rus5j
-rus7lu
-ru1s4o
-rus5sel
-rus4st
-ru4s4t3r
-r4uta
-ru3tal
-ruta8la.
-r7utan.
-r4utbe
-4rutd
-rut8e
-rute3i
-ru4tel
-ru9tene.
-ru9ter
-2rutg
-r1utk
-rut9o
-6rutr
-rut4re
-ru6trø
-rutto5
-2rutv
-rut5ø
-ru5va
-ru4ved
-ru4veg
-ru4vei
-ru4vel
-ru4vere
-ru4ves
-ruvi8
-ru6v7is
-2r1v
-rv4a
-rva7ka
-rva6la
-r8v7arb
-rve3de
-rve4den
-r4ve5dr
-r4vega
-r4vegi
-r4vegr
-r4veim
-rveis7e6
-rve5kl
-r4vela
-rvel9le
-r4v5eng
-r5ver.
-rve5re
-r2ves
-r2vev
-rvil9l
-rville9d
-rv2j
-r4vos
-r4vov
-r3vr
-rv2s1
-rv5ung
-rvå7r
-4r1w
-rx1
-ry1a4
-ry2dr
-ry7fe
-ry5fl
-ry5ke.
-2ry1kl
-ry7le
-ryl4l5i8s
-4r5yndl
-ry4nes
-ry5nes.
-ry4pa.
-2ryr
-ry8re
-r1yrk
-ryr4ke.
-ry9ro
-ry5rø
-rys6sal
-ry5ta
-ry4tek
-1rytm
-r3ytr
-r4z
-ræ7le
-8r3æ4re
-8r3æ4ren
-rær5in
-rær8t
-ræ8v
-2rø.
-rø8ar
-6røb
-rø4be.
-rø4dek
-rød1s
-4røep
-røf5l
-rø4ke.
-rø4kero
-røk3l
-4røkn
-røk5s4
-røk7t
-røk1v
-2røl
-rø6m
-røm1a
-røn5nes
-rønn5s4a
-rønn5sk
-røn5sko
-5r6øntg
-rø4pe.
-røp9l
-1rør
-rør5d6
-r6ørende.
-rø7ret
-5rørl
-rø2r3o
-rør4sp
-r8øs.
-rø3se
-rø5sla
-røs5v
-rø8ta
-røt9as
-rø1va
-rø5vede
-rø9vers
-rø1vi
-r4ø5væ
-2r1øy.
-4røya
-røy9ar
-røy6ed
-røy6ene
-røy5es
-røy4et
-5r6øyk
-3røyr
-røy5re
-røy8senes
-6røy4s3k
-røy4st
-2rå.
-rå7a
-4råag
-4råb
-3rådet
-rådy9ra
-rå9ene
-2råf
-4rå5g4
-2råkj
-råk3re
-rå2k3u
-råk1v
-4rål
-råle7s8
-rå4let
-rå5let.
-rå5lu
-r5ånd
-rån6da
-2råp
-2r1år
-rårs5k
-rå5ru
-rå1s
-4råsb
-2råse
-rå5si
-2råsj
-rås4t
-6råta
-råta8ka.
-rå5tr
-rå5tu
-2saa
-5saa.
-sa4ba.
-s6abe
-s8abl
-sa5bok
-s3abon
-sa5by
-sa3ce
-sa4dag
-4sadam
-sa4dere
-4sadm
-sa4do
-2sadv
-sae5d
-3saen
-7saer
-5safa
-1safe
-4s3affæ
-5saga
-sa4ga.
-sa4gas
-sa4gat
-6sagent
-6s5agg
-6s5a6gi
-sag8na
-sa6go.
-sa4gog
-2s1a2gr
-sag3s4
-sa3ik
-sa5ir
-sa1is
-5sak.
-sa2ka
-3saka.
-4sakad
-sa5kai
-3sakb
-3sakd
-3s4a3ke
-5sakf
-1sakh
-sakh5e
-1saki
-sa4kj
-sak5kr
-s4akky
-5sakl
-5sakm
-4sako
-3sakp
-sa1k2r
-5s4aks.
-sak4s3i
-4s3aksj
-sak4sp
-5saksr
-5saksu
-2s1akt
-sak6ta.
-5s4akto
-s4aku
-4sa7kø
-1s4al.
-sa1la
-4s5alarm
-7sala.
-5sa5lat
-4salb
-1sa3le
-sa9let
-1salg
-s4alge
-4s5algo
-salg6s5
-s6ali
-sal4mes
-sa5lo
-5sal2s3
-sals4a
-4salter
-sa1lu
-3salv
-sal5ved
-2saly
-1s2am
-5sam.
-sa2ma
-sa5ma.
-sam4an7
-sa5mas
-sam5ei
-sa4mel
-sa4met
-5saml
-sam4lev
-5samm
-sammen5
-sa4my
-4s1a2na
-sa9na.
-sa7nar
-sa3nat
-san6da.
-san7d8al
-5s6ande.
-sand5r
-sand5s6lo
-sand5st
-san4d5ø
-1s2a5ne
-4s3a6nek
-5sang.
-3sange
-4s3angr
-8s7angst
-s7anken
-2s1anl
-s5anm
-san5ne
-6sanno
-sa2no
-4s5anor
-san5os
-san1s
-5s4ans.
-4sansa
-5s4ansen
-san7s6k
-4s5ans8l
-6sansv
-s8ant.
-san9te
-6santr
-4santy
-4s1anv
-2s1ap
-sa2po
-1s2ar.
-1sara
-6sarab
-2sarb
-s4ard
-9s8are.
-4sareal
-4sareg
-sa5rev
-3sari
-sa4ri.
-sar6ka.
-4s3arki
-2s1arm
-sar5me
-sar8me.
-s1arr
-2s1art
-sar4ta.
-sa4ru
-4sarv
-s4ary
-1sas
-8sasju
-2s1a4sp
-4s1ass
-s6ast
-4sasty
-2sasu
-4sasy
-1sat
-sa1ta
-sa5ten
-sa3ti
-2s1atl
-4s3atmos
-sa1to
-4sa5t6r
-s5atsk
-5satt.
-4s3atta
-6s5atten
-satte4s
-5sau.
-sau4d
-sau5di.
-5saue
-4saug
-sau6ga
-s3auge
-sau6ge.
-2s1auk
-5saum
-3saus
-4saut
-2s1av
-s2ava
-sa4ve.
-5s6a5v6in
-sav5n
-3savu
-8s9b4
-sba4ne.
-sbi6e
-sbo4da
-sbu6et
-s6bug
-sbul3
-sby8ta
-4sca
-5s4can
-1sce
-2scel
-s4cene
-s3cer
-6s6ch.
-8schl.
-sch8m
-6s7cl
-4sco.
-6scoc
-4scos
-s4cus
-8s9d6
-sdag4s5
-sdam9p
-sde6le.
-sdu8en.
-sdu8er
-sdø8v
-1se
-2se1a
-3sea.
-sea4g
-se3an5d
-se7ansa
-sea9re
-5se4au3sk
-2seb
-4sec
-4sedag
-sed5d
-se3de
-5sede.
-5sedl
-4sedo
-2sedr
-2sedu
-6sedvanle
-2sedø
-5see.
-see3d
-2seef
-2seeg
-se6e3i
-se3e4l
-se5en
-seer1
-5sees
-2seev
-2sef
-s1eff
-4s1eft
-6sega
-sega6l
-se2ge
-se6ges
-se3gev
-seg8ga.
-9segl.
-7seglet
-3segm
-4s2e7g8r
-2seh
-2seid
-sei8dan
-sei9den
-sei8e9nes
-s5ei4et
-2seig
-sei6ga.
-sei5ge
-sei5k
-3se8il
-6seim
-2sein
-se3ind
-s3eini
-se6ink
-se3ins
-se3int
-sei5r
-3seis
-2sej
-5sej.
-2se5ka
-3seke
-4seki
-2sekj
-5sekk
-sek4kes
-2sek4l
-4se3kn
-2seko
-se2k1r
-4sekra
-4sekri
-4sekro
-3s4eksj
-4seksp
-sek4st
-sek2t3an
-sek6te.
-sekte9ra
-3sek5to
-4seky
-4sekå
-s2el
-2sela
-se6la.
-3selak
-5selane
-5selar
-sel5art
-s3e4las
-se6l5at
-sel1d
-se4le.
-4se5led
-6selega
-4selei
-4s3elem
-4seleng
-4seles
-4s3e4lev
-5s6elg
-4selik
-4selil
-4selis
-4s3e4lit
-sel6løp
-2selo
-7selol
-se3lom
-3sels
-sel4sin
-8s5elske
-sel9s8lag
-sel4spo
-sel5t6
-2selu
-se6l7u6r
-sel4v5ak
-sel4van
-selv3e4
-sel4ve.
-selvei4
-sel4ver
-sel8vin
-2sely
-2selæ
-2selø
-selø8pa.
-6selå
-2se3ma
-3semb
-7semd
-se5me
-se4mi.
-semini6
-2s1emn
-sem4na
-9semnd
-2semo
-sem5pe
-2semå
-s2en.
-se5nak
-6senau
-sen9d8a
-sen6dela
-6senden
-4sendr
-s2ene
-4sened
-se3neg
-4senem
-8senesa
-6senese
-sene8se.
-s5engas
-2s1enh
-se6nin
-s3enkj
-5sen3n
-s2ens
-4s5ensem
-sen6s5end
-sen4sj
-sen3so
-7s6ent
-sen5ter
-8s7en5trep
-4senum
-4seny
-2senæ
-6senø
-2seo2
-7seod
-se3or
-2sep
-se3pe
-seperso5
-3sept
-s2er.
-se3ra
-4seram
-5seran
-4serap
-5seras
-6serau
-ser5d
-s2e5r4e
-5sere.
-4serea
-4sered
-4seref
-4sereg
-4serei
-4serek
-4serel
-4serenn
-4serent
-4serep
-4sereso
-4seress
-4serest
-4seresu
-4seret
-4serev
-s1erf
-s2eri
-seri6e5ne
-4serik
-4serkje
-5serkr
-5sern
-ser7nev
-2se1ro
-se4rop
-se4ror
-se4ros
-9s6ert
-ser4tak
-ser6tat
-ser4tr
-se1ru
-4serul
-se4r3un
-ser4ved
-ser4vel
-2sery
-2se5r6ø
-2serå
-5ses.
-ses5ald
-5sesals
-ses5alt
-4sesc
-2sese
-se4sene
-ses5in
-se3sj
-4sesje
-4sesjuk
-ses5kal
-ses5kar
-ses5kv
-ses5lit
-se3sna
-5seso
-ses3pr
-ses4s5in
-se1st
-5sest.
-5seste.
-4sesto
-ses5un
-ses1v
-2sesy
-4sesø
-ses3å
-3s2et.
-2se2t6a
-3seta.
-se5tae
-seta8ka
-se5tar
-6setea
-4seteg
-4setei
-4setek
-se7tel
-se4tera
-se5tero
-4setes
-2se3ti
-se8ti.
-s3e4tik
-s3e4tis
-se8t7ja
-4setje
-5setje.
-7setl
-5setn
-2seto
-2set6r
-s4ets
-s5etters
-2setu
-2setv
-2sety
-6setø
-3seum
-4seun
-seure9ne
-seu2t
-2sev
-seva6ne.
-s8e5var
-sev4d
-sevi4sa
-s1evn
-sev4ne.
-se3vr
-3sevåg
-2seyn
-2seø
-2seå
-1sé
-2séa
-6séb
-4sée
-4séf
-4séj
-4sék
-2sél
-4séo
-6sép
-9sér
-4sés
-2sév
-4s3f
-sfa4ne.
-6sfe
-sfe6et.
-sfes5
-sfisken8
-sflå3
-s5fo
-sfo8ra
-sforlø9
-sfra5s
-sfri5e6re
-sfyrs5
-5s4fæ
-sfø9ren
-sfø5rer
-sfø5ri
-6s9g6
-sga4l
-sga8va
-sga4ve.
-sgen9s
-sge4st
-sgå4va
-sgå4ve.
-s1h
-4sh.
-sha2k
-s7hat
-s3hau
-6she
-shea4
-s5hei5
-7sh6e4rif
-8s5hett
-s4hi.
-s6hip
-sh5isk
-4shj
-6s7hopp
-3short
-5show
-6shs
-2shu
-4s5hy
-s5h6ø
-shø8l
-shø6va
-shø6ve.
-s7hå
-1si
-sial5v6
-4sia5m
-si7ans
-4siap
-4siav
-si2bl
-3si2da
-3si4de.
-3si3den
-si4de5o
-s4ider
-si5der.
-si4dete
-2si2do
-4s1idr
-sid8ra
-4sidy
-4sieg
-si1el
-sie4n
-si5er.
-si6eren
-sie4s
-si3est
-6sife
-si3fl
-2sifo
-si4f3r
-2sifu
-4sifø
-3sig
-siger4s
-4sigi
-4s3iglo
-si5gr
-4sih
-3sik
-si3ka
-si5ke.
-sik2h7
-sik4ka
-sikk8artet
-sik4k5el
-sik4ko
-siko3
-si4kom
-si4kop
-si4kos
-si4kot
-sikt4s3
-s2il
-5sil.
-3sild
-sil4del
-sil4der
-sil4des
-sil5j
-sil2k
-sil4les
-2silø
-si6mel
-4simet
-2simp
-si3mu
-4sinde
-4s3indu
-si3nek
-2s1inf
-sing4s5a4
-7singu
-si4ni
-4sinj
-2sinn
-3s4inn.
-7s4inna
-s6inne.
-5sinnet
-s3innh
-s5innk
-s3innl
-4sinnt
-si5nob
-sinsk5e
-2s1int
-4sinv
-si6nø
-4si5ov
-si4pa.
-si8pe.
-si6re.
-si7ren
-si4ri.
-sir8kl
-s2is
-si5sel
-si4serf
-sis5e4v
-si6sin
-6sisju
-si4sk
-sis5ke
-si4sn
-si4s5te
-si4sti
-sis3to
-4sisy
-3s2it
-si5ta
-sit8ji
-si6t7ra
-si4t5re
-si4tri
-sit3s4
-sitsva9
-sit6term
-sit4tes
-si4umf
-4siut
-5siva
-si9van
-si6vek
-si8vi.
-si9våt
-1sj
-2sj.
-s2ja.
-8s5ja9g
-7s8jakk.
-4sjam
-s4jan
-4sjanl
-s7jarn
-2sj3av
-6s7jaz
-2sjb
-6sjd
-5s4je.
-sje4f3i
-sje4fla
-sjef5t
-sje3g
-sjek4t5o
-3sjel
-sje4lev
-3s2jen.
-5s2jene
-4s3jent
-5s4jer.
-s2je5s4
-5s4jet.
-sjet4ti
-2sjf
-2sjg
-s6jim
-2sjk
-2sjl
-2sjm
-2sjn
-2sjob
-5sjok
-4sjom
-9sjon
-sjons7
-2sjor
-2sjou
-2sjp
-2sjr
-2sjs
-2s6jt
-s6j3t6sj
-sju1a
-6sjub
-6s7jug
-4s5juks
-sju8la
-4sjun
-4sjur
-2s7jus
-5s2jø
-sjø3k6
-sjø1p
-sjø9rø
-sjø1s2
-sjø3t8
-8sk.
-1ska
-2ska.
-4skab
-skabe3
-s2kad
-8skae
-4s6kag
-2skak
-5s4kal8a
-ska5lar
-2skam
-s4kaml
-8s7kamp
-4s5kana
-4skande
-4skane
-4skano
-6skant
-5s6kap.
-9s8kapa.
-4skapas
-5skapen.
-6skapit
-4skapp
-2sk2ar
-sk5arab
-sk7arbe
-5skard
-4s5kark
-5s6karp
-6skars
-4skart
-3s8karv
-2skas
-4skate
-8skay
-4skb
-6skd
-2ske
-s4keda
-s6kedo
-s2keh
-s6kei
-skei5er.
-s8k5e4lev
-s6kelik
-skel3t
-s4kelu
-s3ken.
-s4kena
-s6kenav
-s4keno
-s5kens
-5skept
-s5ker.
-s4kero
-s5kers
-s2ke1s
-ske3si
-skes4m
-ske5sn
-s4ketet
-s3ke4t3j
-s6kev
-s2key
-2skf
-2skh
-1ski
-5s6ki.
-7skia
-4skid
-5skie
-5skif
-5s4kik
-s6kill
-5s4kilt
-ski6net
-ski4nin
-5sk8inns5
-4skino6
-5skiol
-5skip
-2skir
-s4kire
-6s5kirk
-sk5irs
-s6kis.
-7skiss
-4s5kist
-5s2kiv
-s6kje.
-5skjema
-6skjemas
-5s6kjer4m3
-3skjer5m4e
-7skjers
-3skjor
-4s5kjærl
-5skjøn
-6skjøp
-skjø5res
-2sk1k4
-2s1k2l
-6skla
-sk5lak
-s6k5lan
-s5klas
-sk9leg
-s6klei
-sk3lek
-7s8klero
-sk5ling
-sk5lit
-s4k5luf
-s2klyd
-2skm
-2skn
-s1knu
-4skoa
-7skodd
-4skof
-3s2kog
-2s3koi
-1skol
-7s4kola
-3skole
-4s3koll
-4skom
-s6koma
-s5k6ome
-6s1kon
-4skoo
-sk5ord
-s6korpi
-s7kors
-s8korst
-4skort
-2skos
-s2kot
-3skott
-sk8ra
-s4k9ra.
-5s4kral
-s4krat
-s2k7re.
-4s3kref
-6skreg
-5s8krek
-4s3kret
-5skrevn
-3skrib
-3skrif
-4skrig
-3skrik
-3skrip
-4skrite
-3skriv
-5s4krog
-s3kron
-4s3krop
-sk6rud
-skru3s6
-6skryss
-1s2krå
-2sk1s2
-2sk3t4
-5skud
-1s4kue
-sku4end
-sku4er
-skue5re
-1skuf
-5skulan
-5skular
-3skule
-6s5kulis
-4skull
-s4kulp
-4skult
-skum3s
-2skun
-s6k5underv
-4skup
-8s5kurs
-8skurv
-2skv
-sk5va.
-3skvad
-sk3vas
-s6kven
-sk3ver
-sk5vit
-3skvu
-1sky
-s6kya
-s6kye
-4skyr
-sky3re
-4skys
-6s6kyss
-5s6kysk
-3skyt
-6skæ
-6skø.
-6s5køa
-4skøe
-1skå
-skå5re
-6skåt
-sl4
-sla8da
-s3lade
-sla5ge
-sla8ge.
-sla5ke
-s5laks
-3slakt
-3slal
-4s3land
-4s5langs
-slap5pe
-s5laran
-s5lare
-4s5last
-s1lat
-sla4te.
-4s1lau
-8s5laus
-sla1v
-3slave
-sla4vin
-2sle.
-s8leda
-4slega
-s4legi
-s4legn
-s6legr
-6slei
-slei5er.
-s4leiv
-8s5leke
-s5lekk
-s2lel
-s4leme
-4sle7ne
-s6lener
-s6len6t3
-2sler
-8s5les
-s6lesj
-s4leso
-s6lest
-s4leta
-s5lev
-s4leva
-4sley
-s5lia
-2slid
-sli4en.
-6slig
-sli5ke
-s4likk
-2slin
-8s3linj
-slin6t5
-3slip
-5s4lit.
-3s4lite
-4s5liv
-slob5b
-slott4
-s6lott.
-7slottet
-1slu
-8slu7a
-2slu2e
-slu5es
-6sluf
-4slug
-sluk3s6
-slum4p5
-slum5p6e
-s3lund
-s5luns
-s6lup
-slu7sa
-s4lut
-s1ly
-sly8et.
-1s4lyn
-4s5lys
-sly8t
-6s7lær
-slæ6rari
-2sløn
-8s5løp
-slø4pa.
-s6lør
-2sløs
-slø8s5a
-3s4løsi
-slø5va
-slø5ve
-slø5vi
-5sløyd
-sløye7
-9s4lå.
-s4låe
-s1lån
-slå5ner
-1slåt
-s1m
-sma6d
-3smak.
-5s4maken
-sma9let
-8sman
-s4med.
-s4mede
-6s5medi
-s4medk
-smeg5
-4smei
-smek7l
-s4mekt
-8s5meld
-3s4mell
-5s4melt
-2s5men
-3s4mert
-6smes
-s6mesi
-s6mia
-s4mie
-smi4ene
-s4mig
-s6mil.
-smi7la
-s6mile
-smini6
-s2mit
-smo7a
-smo8de.
-s2mok
-6smot
-3smug
-6s5mugg
-smul2
-s6mula
-s4muld
-s6mule
-5smurt
-1s2my4k
-6smøn
-1s2mør
-smør3s
-4smøt
-5små.
-små5r
-s8mått
-s1n
-8sna.
-s4nab
-7snak
-4s3nas
-6s3nat
-4snav
-4sne.
-4sneb
-4sned
-5s8nedd
-s6nee
-s4neg
-3snei
-snei5er
-sne4kri
-s7nekt
-s4nel
-2snem
-4sner
-6snes
-sne9sa
-snes9v
-4snet
-s6nif
-sni6gl
-s2nik
-snik5ko
-3s2nil
-6s3nin
-3s2nip
-snir4
-5s2nit
-2s3niv
-s8no.
-s6noe
-s5nord
-6s7not
-5s6nud
-s3num
-s4nur
-7snut
-8snyh
-2snæ
-snæ4re.
-5s6nø.
-snø5d4r
-5snøe
-1s2nør
-snø1s
-snø5vi
-so3al
-so8ar
-4soav
-2s1ob
-so2bl
-1sod
-so4da.
-5soe
-sofa1
-so4fag
-so4fas
-6s5off
-6s5ofre
-soft1
-so2ga
-so8gi
-so7gl
-sog6nem
-6soh
-5s4oi4
-so5id
-5sokn
-4soks
-sok4se.
-7sol.
-so4la.
-sol5av
-1sold
-so4le.
-solei5er
-so4lene
-sol5f6
-1so7li
-8s7olj
-so2lo
-so8lo.
-sol3s2
-sol5t4
-so4lum
-so4lø
-3som.
-so6mend
-s3omf
-4s3omfa
-4s1omg
-5somh
-2s1omk
-4soml
-1som5m
-sommar5a
-3s6omme
-somme6r5e6
-2somr
-7somren
-5somrer
-6s3områ
-s1oms
-som5sl
-s4omst
-som5sti
-4somsy
-1s2omt
-5somt.
-6somta
-3son
-so4na.
-son7da
-7s6one
-so8nea
-song3s4
-so4n3o
-sons4k
-son5st
-so2nu
-so4ny.
-2s1o2p
-so7pak
-so9par
-so7pet
-3sopp.
-5soppa
-3soppe
-sop4pi
-8sopple
-so3pr
-1sor.
-7sora
-so3ran
-5sorb
-4s1ord
-sor4da
-1so1re
-so4rek
-7sorga.
-sor4gl
-so2ri
-4s3orie
-7soris
-so5riu
-4sorke
-sor5n
-3sor5s
-7s8ort
-1sos
-4s5osc
-so8se.
-6sosf
-4sosj
-so4sl
-so5te
-so8te.
-so4tra
-sots4
-sot5te
-sot4ti
-4sou
-2sov
-so3va
-so4ve.
-so5ven
-sover5e
-sove3s4
-5sovet
-3sovj
-sp2
-4sp.
-spa5g6h
-7spak.
-7spaka
-5spake
-8spakk
-s2pal
-s3pall
-5spalt
-3s4pann
-3spari
-4spas
-5s6paser
-4spe.
-spe4a
-8speda
-spe9dé
-s4pee
-1s2pei
-s2pel
-spe4leg
-spe4les
-5spelet
-8s7peng
-3s4penn
-s4pent
-s5pep
-spe4r5and
-6speri
-4sperl
-s4perr
-s3pers
-3spesi
-s4pest
-s9pet.
-1spi
-6s5pilo
-4sping
-s2pio
-2spip
-spi7res
-spi7ri
-spi7ro
-5s6piss
-2s3piz
-2s1pl
-8s9plant
-sp9lar
-4sple
-s4plin
-3split
-sp6o
-2spoe
-spo6et
-2spol
-5s6pole
-6s7poli
-s4pora
-s4pore
-5s4pors
-sport6s5
-3sporv
-2s5pos
-4spot
-s3pote
-spo5v
-9sprag
-5spran
-6s3preg
-5sprei
-8s7preik
-s4prek
-spre5ke
-s3prem
-5s4pren
-6s5pres
-5s4pret
-s6print
-s5prio
-8sprinsi
-8s3pris
-6s5prob
-s3prod
-4sprof
-5s6prog
-6s7progn
-6s7progr
-5s6pross
-1spru
-s4pry
-3sprøy
-5språ
-2s3ps
-8spub
-2spul
-3s2pyd
-5s2pø
-6s3pøl
-sp5øy
-9spå.
-5spåd
-8s9r
-sre8ka
-sre8ke.
-sri8e9
-sri8ka
-sri8ma
-sri4ve.
-s5ro
-sro4e
-sro6pa
-sro6sa
-sro6se.
-sro2t
-sro9te
-srot5o
-srø1v
-srå4da.
-sråde9r
-srå6ders
-srå8ma
-4s1s
-s7sabel
-s7sabl
-s6sae
-s4saj
-ssa8ke.
-ssa6la.
-ss5all
-ssa4me.
-ss5amp
-s5sane
-s7s8ar.
-ssari8e9n
-s7s6arm
-s4sarr
-ssar8ve.
-ss6as
-ssau8sa
-ssau6se.
-s6seet
-s2seg
-sse5ge
-ss5egg
-ss4el
-sse5li
-ssel5s
-ss9elv.
-ssel5v6å
-s2sem
-s5sen.
-sse8na.
-ss5enden
-s5sene
-s4seni
-ssen6ke.
-s4senu
-s6senå
-s5ser.
-s6serab
-s6serat
-sse7sk
-s4seski
-s4sest
-s7set.
-s9sets
-s2seu
-s4sey
-s2sh
-ssi4a
-ssi7e6rer
-s4siff
-s6silo
-s8s9ime
-s6s3ind
-ss5init
-ss3inj
-ss3inn
-s4s3ins
-s5sis4
-ssis5m
-ssi6v7end
-s5s6jarg
-ss4kape
-ss3kar
-sska8ra
-ss3kn
-ss3kof
-s7skog
-s4skor
-ss6ky.
-ss4kye
-ss4kå
-ss5kål
-s7skåp
-s2sl
-s8slip
-ss1lo
-ss5ly
-s2sm
-ss6nar
-ss2no
-ss4nø
-s4s5nød
-ss5nøk
-s2sof
-s4sok6
-sso5lo
-s2som
-ss4oma
-sso3ra
-s4sorga
-ss3ove
-ss6pil
-ss4por
-ss9ri
-ss2t
-s5stad
-ss4ted
-ss3tek
-sstel6li
-ss5tep
-ss7tilp
-s7stip
-sst6r
-ss5tren
-ss4trå
-ss3tus
-ss3t4v
-s2s3ul
-s3sur
-ssva7ra
-ss1ve
-ss8vek
-ssy6na
-ssy5r
-ss7øye
-s6så
-6st.
-2s1ta.
-stabs3
-3s6t2ad
-stad3a
-sta6d3o
-s5tafa
-3stafe
-sta5fl
-st3aft
-sta7ge
-4stah
-sta6ka.
-5stakk
-4stakl
-6stal.
-6sta4la
-sta5lak
-st5ald
-4stale
-sta4le.
-5s6tali
-5stalt
-s3tame
-3stamm
-sta5na.
-3s4tand
-6stande.
-st8ane
-s4tanf
-s4tang
-stang5s6
-st3anl
-sta8n9o
-s6t5antr
-st3anv
-4stao
-2stap
-s7tapa
-s4tapp
-s8tapå
-s3tari
-1stas
-3s8tasj
-4s5tast
-1stat
-4stato
-sta5top
-sta3tu
-3stave
-2s4t5b
-st7c
-2std
-2s3te.
-2stea
-2steb
-3sted.
-s4teda
-5stedt
-s2tee
-ste4en
-2s4tef
-3s6teg.
-stega6l
-s4tege
-3stegh
-4s5tegn
-s4tegr
-4stegsp
-5stegspl
-ste4her
-s2t4ei
-stei5er
-4steikn
-ste6in6s5
-3s4tek.
-4s4teka
-s6teke
-ste4ket
-s4teki
-4s5tekn
-4steko
-v4s5tekst
-s4tekt
-s8te5kv
-4stela
-ste5le.
-s5teleg
-ste5lev
-s5telig
-5stemd
-3s4temm
-5stemn
-4stemø
-sten5a
-ste4nar
-5s4tenen
-s4tener
-4ste5nes
-3s6teng
-s4teni
-6stenk
-4steno
-stens5l
-4steo
-s5teol
-2step
-step7per
-st8er.
-8s5tera
-s4teram
-s6terest
-s4terev
-s7t6erf
-s4terid
-ste7ris
-s6teri6v
-4s3term
-6sterr
-ste5run
-ster8ø
-2stes
-s4tese
-ste7sle
-4stet
-s4teta
-ste7t6r
-s6tetø
-4steve
-4stevi
-6stevl
-5stevn
-6steå
-2s4t5f
-2stg
-stga6ve.
-stgå8va
-stgå8ve.
-2s6t5h
-st5he
-2s3tia
-4stib
-s5tibe
-s9tibl
-3stic
-s6tick
-6s7tid
-s6tidel
-sti5en
-s2tif
-3stift
-s4tigen
-7s6tigi
-st9i8gj
-3stign
-s5tij
-6s5tika
-4s5tike
-s4tikl
-3s6til.
-5s4tila
-sti4lag
-4stild
-3stile
-stile9ge
-s6tilk
-6stiln
-s4tilo
-6s5tils
-5s4tilt.
-6s5tilta
-5stilte
-4stime
-sti7mer
-6stimé
-3s6timu
-s6t3ind
-s6tini
-4s6tinn
-s6tinst
-s6tint
-1s2tip
-4s3tipp
-6stips
-5stir
-2stis
-6s7tisk
-4stitt
-4stiå
-s4tja
-5stjel
-8s7tjene
-s6t5jent
-3stjer
-4stju
-2stk
-2stl
-2stm
-2st5n2
-s2to.
-1stof
-2s3tog
-4stoks
-6stokt
-3stoli
-4stolj
-s5toll
-4stom
-s9tomm
-st3oms
-6s5tomt
-4stoni
-st3ope
-st5oppl
-6s8t5ord
-sto4ret
-s6torm
-stor3o
-4stors
-st5o4s
-s1tot
-sto4t5r
-5s6tore.
-st5ou
-5stova
-2stp
-8str.
-st3ra.
-4s5trad
-s8traff
-6strafi
-6strail
-st3ral
-st4ran
-stra8na.
-5strand
-4strane
-6strans
-6strap
-4strar
-st7ras.
-st7rast.
-5s4traum
-s4tre3a
-s4tred
-7s6treik
-st5reis
-7strek.
-st5rekl
-strek4sa8
-6streni
-st5rer.
-6strers
-6strh
-9stria
-9s8trid
-5strie
-st5rige
-st3rin
-3s4t6rip
-5stri3s
-6stroe
-s5t4rog
-5s4trok
-st3rol
-6s4t5rom
-st3ron
-st7rop.
-st7ro6pa
-s6trope
-s6t7rug
-9s6truk
-st5rum.
-2stry
-6stryg
-s7trykt
-st5ryt
-4s3træ
-1s2trø
-6s5trøb
-s5trøkk
-st6røm
-4strør
-4strøs
-st5røse
-s5trøst
-4strøy
-6stråd
-2st5s6
-stsa6me.
-stsy8na
-4st7t6
-stta6le.
-st3t4r
-s4tua
-1s2tub
-3s4tud
-s2tue
-stu4el
-stu4er
-stue5re
-3s4tum
-6s3tung
-6stunn
-3s8tunt
-6s5tur
-2s4tut
-2stv
-s3t4ved
-1sty
-2stya
-2styd
-3s4tyk
-sty6l
-2s5tyn
-2s7typ
-3s4tyr
-styrs3
-6stysk
-4styv
-sty5ve
-1stø
-2støk
-5støl
-6støm
-5støp
-6størk
-5støt
-stø7va.
-stø5var
-stø3ve
-stø5vi
-st8øy
-1stå
-5s4tåe
-stå5k
-4su.
-1su4a
-su7a8l
-1su2b
-sub7l
-sub3o
-5subs
-s3ubå
-1sue
-su8er
-su2f
-5s2ug
-su6ga.
-su4ge.
-sug3g
-su2h
-3sui6
-su3is5
-suit5a
-su2k
-4s1uke
-3suk5k
-suk3r
-1suk5s
-su4le.
-3s4ulf
-su4lik
-sul4t5r
-s1ulu
-2suly
-sulæ5
-3s2um
-4s3umid
-su2mo
-sums6
-5sund.
-8s5under
-5sundet
-5s4undi
-sun6d7r
-9sunds
-sun4ge.
-6s7u2ni
-su4o
-3s2up
-su4pe.
-super3
-supi9
-su8p4r
-su8pre
-sur5d
-su4re.
-4s3u4rei
-1surf
-su4rie
-su4riu
-surs5k
-sur4sp
-sur4sti
-1sus
-su3san
-su4se.
-su6s5es
-4susi
-su4sik
-sus3p
-sus3s
-su2sy
-2s1u4t1
-sut6ra.
-sut8reg
-7suv
-8s5u6vi
-sv2
-6sv.
-sva5a
-svai5
-5svak.
-3svake
-6svaks
-sva4la
-sva4les
-6svalet
-5s6vali
-7s6vam
-s4var.
-s4varet
-s3varm
-3s4vart
-6s1vas
-6s1veg
-sve6g7i
-s5veie
-3s4veis
-s5veka
-6s5veks
-5s4vens
-sverd5s4
-sve4re
-sve8res
-3s4verg
-5s4verj
-s5verk
-sver4ki
-s4verm
-6s7verv
-7s4vev
-s4vie
-svi6e3l
-8svift
-4svig
-svi5ke.
-6svikg
-4sviks.
-3svikt
-4s5vikti
-4svil
-s6vindel
-svi4nes
-sving5s4
-8s7vink
-ll6svint
-4svir
-6s7virk2
-2svis
-svi4sa.
-svi4se
-svi5sen
-svi5ser
-s8viv
-svi9ve
-4svol
-5s2vor
-svor7t
-s3vr
-3svul
-5s6vulm
-s3vy4
-svye7ne
-1s2vø
-4svæs
-2s7vå
-1sy
-sy4c
-sy4de.
-sy5den
-5sye
-sy2er
-sy8ka
-sy4ker
-sy5kere
-2syko
-sy6kog
-7s4ym
-sy7me
-s2yn
-4s5yndl
-synk4
-sy6n5o6
-syn6sk
-syn3te
-sy4ra
-sy5rar
-s6yre
-sy4re.
-2s1yrk
-syr4ka
-syr4ke.
-3sy1s
-sy4se
-sy2sl
-sy6s7t
-sys4tr
-2sy2t
-sy5ten
-sy5t6h
-9sytt
-sy2vå
-s4z
-sz3c4z
-6szt.
-1sæ
-sæ2l
-8s3æ4re
-8s3æ4ren
-sæ4r1i
-særle9
-sær5s8
-7s6æ5te4
-4sætt
-1sø
-4sø.
-sø2d
-s1øde
-4søf
-søg4
-4søj
-9søk.
-3s6øke
-5søkj
-5søkk
-søk7kj
-3s6økna
-2søko
-søk4sk
-søk6s3e6
-5s6øksm
-søk4ta
-3s4øl
-sø4la.
-sø4le.
-sø5let
-3s2øm
-sø6må
-3sønn
-s1øns
-s4øp
-sø4ras
-sø4re.
-sø4r5end
-søren6de.
-sø8ret
-sør9ett
-7sørl
-sør3s
-sør5ø
-3s2øs
-4søs.
-sø8sa
-7søt
-sø7tast
-sø7tel
-sø5tes
-2søv
-s1øve
-3søvn
-2s5øy.
-4s3øya
-søy8de.
-6s5øyd
-8søye
-3søyl
-6s5øy4n
-søy2r
-2s7øys
-5såg
-s3å2ke
-5s4ål
-så4le.
-6s1ån
-sån4da
-sån6de.
-så2p
-9såpa
-så5pet
-6s1åpn
-såp9u
-så2r
-så6ra
-sår9ast.
-så4re.
-sår3sk
-sår7ø
-så2s
-s7åsa
-s4åsb
-s5åse
-sås5k
-sås5t
-9såv
-såva7
-ta1a
-4tabo
-tab2r
-tab2s
-ta4bu.
-4tabø
-ta1c
-4tad
-ta2da
-ta8d3ei
-ta6d3e4t
-tad5spa
-tad7s6v
-ta6du
-t8ae
-6taei
-4taek
-4tael
-1taen
-4taend
-4taenh
-ta6es
-2ta5fe
-taf7f6
-5tafis
-4tafl
-1tage
-4tagj
-8tah
-ta7is
-1tak.
-ta4ka.
-4takau
-ta7ken
-ta5ker
-tak7kel
-tak5k4l
-ta8k9la
-2takr
-tak4sal
-tak6se.
-tak4si
-4t3aksj
-5takst
-tak4tal
-4taktig
-tak4to
-t5aktø
-ta1ku
-tak3v
-1tal.
-ta9lam
-ta3lan
-tal5ang
-ta7las
-3tale
-ta4lei
-tal5eie
-ta4lek
-ta5ler.
-tale7s6
-1talg
-tal6ge.
-7talj
-talj5es
-tal4led
-tal4leg
-8t7allerg
-tall7es
-tal8lign
-tall6s7a
-tal4ly
-tal3op
-6talter
-t5altern
-ta6l9u
-ta6lå
-2tamb
-tamba6ne.
-t3ambi
-t4ame
-4tamet
-tam4i
-2ta3m4o
-tam5v
-t6an.
-ta2na
-tan5ab
-4t3anal
-ta3nar
-ta5nas
-ta5nat
-t5andak
-5t6ande.
-t7andel.
-t5andele
-tand5r
-tandø4
-tandør5e
-1tane
-ta4nel
-ta5nem
-4tanett
-t3anfa
-tanfø6
-6tangf
-6t3angr
-1tank
-2tanl
-t3anle
-2t1anm
-3tannl
-t5anno
-tanns4
-tan6sk
-tans5ka
-t5an5sl
-4t5anstr
-4tansv
-8tantil
-tan4tra
-6t7antre
-t3anve
-2ta3o4
-5tap.
-ta4pa.
-1tape
-ta4pe.
-3tapi
-4tapl
-4tappa
-5tappi
-1t4ar.
-t6ara
-ta4r3ak
-4taram
-ta6rare
-2tarb
-3tarbo
-5tarbø
-4t9arena
-6t7ark.
-tar8ka.
-4t5arke
-4t3arki
-4tarra
-tar9si
-tar7sp
-tars6v
-4tart
-tart7est
-t5artik
-tar7tit
-tar4t3r
-ta6r5å8k
-4tasa
-ta3se
-6t9asf
-t3a4sia
-tasi3e
-ta4sif
-ta4sil
-ta4si5s4
-tas4p
-tas5s4
-tas8tas
-6ta7sto
-ta7str
-4tasu
-ta1ta
-ta7tes
-tate8se.
-tat5e4v
-tati1
-tat3op
-tat2s1
-tat3te
-t3attr
-1tau
-9tau.
-7taue
-4t5aug
-2t1a4uk
-4taun
-tau4ne.
-tau4sk
-2taut
-2tav
-6tavin
-3tavl
-4tavli
-ta9xy
-6t1b2
-tba3d
-tba2n
-t6be.
-tbe6te.
-tbe6t7r
-tbe6t8ra
-tbo6da
-tbu8da
-tby3k
-tby4s
-tby7te
-2tc
-t1ce
-tcen4
-tch5e
-t5co
-2t3d
-tdy5pe
-1te
-4tead
-4te3ag
-2teak
-2te9a8l
-tea6m
-2tea2n
-2teap
-2tear
-te5arb
-tea4s
-3teatr
-4teatt
-2teau
-2teav
-4teb
-t5ebb
-tebu8da
-4tecel
-te1co
-2ted
-6t5eddi
-3tede.
-4tedeb
-te7def
-4tedek
-4tedel
-4tedem
-te5den
-4tedi
-5tedil
-4tedo
-tedo6en.
-tedo4er
-tedo8et.
-te4dor
-ted4sk
-ted4sl
-6tedu
-4tedy
-tedyr9k
-4tedø
-te3e4
-2tef
-8tefa
-4tefi
-4tefl
-4tefo
-tefo8r
-t3efte
-3tefø
-2tega
-5tegat
-4t3egd
-te7gea
-te9gee
-4tegg
-teg8ga.
-2tegh
-te4gim
-2tegj
-2tegl
-te3gla
-te9g8li
-8tegs.
-6tegspl
-6tegsv
-2tegu
-tegvi8
-2tegå
-5tegås
-4teh
-5tei.
-2tei4d
-t3eie
-t3eiga
-tei6ga.
-t7ei6ge.
-6teigr
-3teikn
-tei5le
-te1im
-6teinf
-te4inne
-te5inte
-te5i4s
-6teiso
-2tej
-te7ken
-te5ker
-4tekil
-2tekj
-5tek1k
-2tekl
-te5k4la
-tek6lede.
-tek4li
-4teknu
-2teko
-2tekr
-te7kra
-te6k5ru
-9teks.
-4t3eksa
-t3ekse
-4teksp
-t4ek8st
-tek8t9r
-tekt4s
-tek6ty
-2teku
-te2k3v
-4teky
-2tekø
-4tekå
-2te3la
-tel6ak
-5te4l5ar
-3telav
-8te4le.
-4teled
-4telei
-4telek
-4teleme
-te4lene
-6teler
-te4les
-te5lesk
-4te4lev
-te6leva
-4telid
-4telik
-4telil
-4telin
-te4lir
-4telis
-4telit
-4teliv
-tel5lef
-tel4lei
-tel4lev
-tel8lign
-tel4lo
-2telo
-tel3se
-telses5
-t3elsk
-tel7s6v
-5teltet
-2te1lu
-7telut
-2tely
-6telæ
-2telø
-telø8pa.
-2telå
-2tem
-3temae
-6teman
-te4mans
-t5emba
-6temenn
-5temik
-tem9ma
-6temn
-tem5ne.
-tem5ord
-tem5pe
-tempe8l7
-3tempo
-tem3s
-4temø
-3ten.
-te5nab
-te4n5al
-ten8am
-te4nan
-te4nat
-ten5at.
-6t7enc
-6t5en6den
-4tendr
-4tened
-te5neg
-6tenem
-6tenerg
-5tenes
-4tenet
-2teng
-7tengon
-t5e4nig
-7tenik
-5tenis
-4teniv
-ten9no
-te4nom
-te5nor
-6tenorm
-4tenot
-te6nov
-6tenó
-ten3sa
-ten5sko
-ten6slu
-ten3so
-tens5v
-ten4t5in
-tentle8ge.
-4tenum
-4teny
-4tenæ
-2tenø
-ten5øks
-2teom
-5teon
-4teop
-te6ora
-te6ori
-4teord
-2teov
-2tep
-te3pa
-4tepak
-tepa9ra
-4tepas
-4te5pe
-7tepee
-9tepé
-tep6pere
-t5e6ple
-4tepr
-4terac
-te7rakk
-6teramm
-ter7apa
-4terapp
-te4rare
-6terasa
-4terase
-7terast
-terba6ne.
-t6er5d
-4tered
-4teref
-4tereg
-4tereis
-te4rel
-8terem.
-6teremm
-te4r5eng
-teren6ga
-6terenn
-4terep
-te4rerk
-ter5esti
-4terett
-6terevo
-3ter5g
-3terh
-te4rig
-4terik
-4terisi
-te4riv
-ter5j
-4terk.
-4terke
-4terkh
-7terkr
-6terks4
-4terkt
-terla6ga
-terle7ge
-terle6ve.
-ter8ma.
-ter3no
-tern5s
-te5ro.
-tero6e
-te3rof
-4teroll
-4terom
-5teromr
-4te3ros
-4te3rot
-tero6v
-ter5r
-5ters.
-5tersjøo
-ters4kl
-ter7s6ko
-ters4l
-ters4h
-ter3s4m
-ters6ne
-ter5sv
-tersø6ke.
-3ter3t
-ter9to
-ter9ul
-8terum
-ter7v
-tervi6se
-2tery
-ter5ør
-4terøt
-te4r3øv
-4teråd
-te4r3ås
-t4es
-5tes.
-2tesa
-5tesar
-te7sen
-2te1sh
-4tesid
-4tesik
-6te3sin
-4tesit
-4tesj
-6tesjef
-4te1sk
-t9es6ka.
-6teski
-te5sko
-2te1s2m
-7tesmåe
-2te1sn
-2te3so
-6tesp
-5tesr
-3tess
-5test.
-4testaf
-tes5tas
-4testat
-5tes7te.
-4te5stei
-te5s6tiv
-5testid
-tes4tik
-4te5s4til
-4te3sto
-4te3str
-4testy
-4testø
-2tesu
-4te1sv
-tes8væ
-2tesy
-2te3sø
-te7så
-te8sår
-teså9re
-3tet.
-teta6ka
-teta6le.
-te4tap
-te3te
-5tete.
-tete4e
-4teteg
-4tetei
-4tetek
-4tetem
-2teti
-3tetik
-3tetis
-2tetj
-2teto
-2t8et2r
-3tet2s
-tet5ti
-tett3s
-2tetu
-5tetu.
-2tetv
-2tety
-te2t3å
-2teu
-teu8k
-t1eur
-3teus
-2tev
-t6eva
-te4valu
-3tevl
-tevo6r
-te3vr
-2tey6
-2teø
-2teå
-4téa
-2téb
-2téf
-2téh
-2téi
-4téle
-2tém
-2tése
-4tést
-6t1f
-tfe6e
-tfe4l
-tflå3
-t7fo
-2t3g2
-t4ga.
-tge4a
-tgei5
-t4gi.
-tgi5ros
-tgrei9e
-t4gå.
-2t1h
-t4hap
-t4hea3
-thei5m
-t6hesi
-tho7li
-tho3re
-3thr
-thu5le
-thu6s
-thy5r
-1ti
-2tiad
-ti3ag
-2ti1ak
-4ti3all
-ti5als
-2tia2m
-2ti1ap
-ti3asp
-4tiau
-2tiav
-2tib
-2tick
-3tid
-ti2da
-4tidan
-tid7d
-6t3idee
-4ti5dem
-4t7idé
-4tidis
-4tido
-4tidr
-2tidu
-tidvi4
-6tidy
-4tidø
-ti1e2
-2tief
-2tiei
-2tiem
-4tienh
-tie5ra
-4tierf
-4tierk
-ti4ert
-ties3
-ti3esk
-ti3et
-4tieta
-4tiett
-2tifa
-tifa8ne.
-2tife
-4tifl
-2tifo
-2ti5f6r
-t8ifrå
-4tift
-tif5te
-2tifu
-4tifø
-ti9ge.
-4tigj
-2tign
-3tigno
-ti6gun
-2tih
-2tii
-2tij
-ti3ka.
-6tikarr
-ti5ke
-4tiket
-4ti5ki
-6tikj
-tik4kj
-2ti3ko
-2ti1k2r
-ti3ku
-6tikular
-6tikult
-6tiky
-4tikø
-t4il
-tila6ga
-til1d4
-3tilde
-2tile
-ti3lei
-3tilfe
-3tilg
-til3id
-4tilke
-3tilkn
-4tille.
-4tillh
-4tillin
-tillø7
-4tilm
-7tilnæ
-3tilst
-til3t4
-4tilte
-2tilu
-2tilø
-ti7mab
-5timat
-ti4me.
-5timedie
-ti4mera
-5timeri
-2timl
-4timo7
-4tim6o8r
-2t1imp
-tim7s
-2timu
-2timy
-2timø
-ti6nab
-tin5art
-4tinaz
-2tind
-t3indu
-ti4nem
-4t1inf
-tin5ge4s
-6ti4nit
-6t5inj
-2tink
-7tinks
-4t1inn
-6t5inne
-ti5no
-tinsk5
-4tinsp
-4t3inst
-4t1int
-2tinv
-4tinva
-4tiny
-9tiol
-6ti7om
-tion9s6
-4tiop
-ti1or
-ti1ov
-ti3pa
-ti6pla
-4tipr
-3tips
-2tir
-tira4t
-ti4ref
-ti1ro
-6tisak
-4tisam
-ti5s6an
-ti3se
-4tis4ei
-4tisek
-4tisel
-4tisem
-4tisep
-tise8ra.
-4tisers
-6tisig
-4tisio
-4tisje
-4tisju
-tis4ka
-4tiskan
-4tiskil
-tis5kok
-6tisku
-tis5l
-4tisn
-4tiso
-6tisprå
-4tistat
-tis4ti.
-tis4til
-ti5stre
-4tisty
-4tistø
-ti8støy
-2tisy
-2tit
-ti7ta
-ti8tar
-ti3te
-ti1tj
-3titl
-tit4r
-tit3s
-3titt
-4tiub
-2tiut
-ti4v5and
-tiva9re
-ti4v5art
-tiv6is
-2tivo
-tiv5si
-tiv5sk
-4tiy
-ti5ær.
-ti7ære
-ti9ært.
-ti1ø8
-2tiå
-6t3jag
-2t1jak
-t5jarn
-2t1je.
-2t1jeg
-2tjel
-1tjen
-tjen6st
-6tjep
-2tjer
-t5jev
-2t1ji
-6t5jing
-2tjo
-t5jord
-2tjub
-tju4e
-2tjun
-6tjur
-3t8juv
-tjæ4res
-2tjø
-4tjå
-4t3k2
-t6kag
-tka8ra.
-tkly9
-tku6le.
-tkå8pa
-6t3l6
-tla4ga
-tla8te.
-tle6da.
-t4ledr
-t6lef
-tlei5er.
-tle8se.
-tle5ti
-tligh6
-tlight5
-tli6nes
-tli4te.
-tlu4e
-t6l7ut
-tlø4pa.
-tl7øy.
-tlå3ne
-tlå7r
-2t1m
-tma3d
-tma8ge.
-t6maku
-t2mam
-t2meg4
-tme3in
-t2mek
-tmini6
-tmin5s6
-t2mos
-tmå4la.
-8t1n
-t3na
-t6nee
-t4neli
-t7nelig
-tne4rek
-tne4r5ø
-tne8se.
-t4nesk
-t4nest
-t5ni
-t8no.
-tn5sk
-tnæ6re
-7toan
-7toar.
-toa6t
-6toau
-2toav
-tobe6r
-t3o2bl
-6tobs
-4toc
-to5da
-to9de.
-to4dera
-3todo
-1toe
-2toek
-6toel
-toe4t
-2tof
-6toff.
-t3ofre
-to5fri
-to2g3at
-to7gen
-4togg
-to6gl
-6tograv
-to4gre
-tog3st
-to2gu
-2toh
-toil3
-2to1in
-4toj
-t6ok
-1to3ke
-to3ki
-2tokj
-2tokk
-tokk5end
-to3kl
-5toksi
-5tokt
-2toku
-to4l5arm
-5tolat
-to5lel
-tolele7
-5tolera
-toli8ne.
-2tolj
-1to4l3k
-7tolki
-tol4lab
-tol4lag
-tol6leg
-tol6lett
-3tolo
-tol5tr
-4tolå
-to9ma.
-2tomb
-to5mene.
-2tomf
-4tomg
-to3mi
-to5mise
-to7mist
-4tomk
-tomlø8pa
-t8omm
-2tomr
-4tom1s
-5toms.
-1ton
-to5na
-to4ned
-to4nel
-tong5s4
-to8nib
-2tono
-ton3sa
-ton5s4l
-ton5sp
-2tonu
-to4ny.
-2to3o
-4to1pl
-4toppd
-6toppg
-6t5opple
-4t5opplæ
-top4po
-4toppt
-4topr
-to1ra
-to4rak
-tor5alt
-tor5ang
-to4r5ant
-to4r3as
-4tord
-tor8da.
-to1re
-6toreg
-to4rek
-tor7eks
-to7rem
-6torent
-5torer
-tore4t
-tor5ete
-4torga
-tor5int
-tor7k8u
-tor7me
-torm5s
-tor5na
-tors4i
-tor5t8
-torvei5
-to4rø
-4torå
-to1s
-4tosa
-4to3se
-to2sh
-6tosj
-tos5ke
-to8sku
-4tos2p
-2tosy
-4tota
-to5te
-to8ti.
-to5to.
-to4tor
-6toty
-2tov
-to1va
-to7veg
-to5verd
-tove7re
-t5overs
-5tow
-4toø
-6t3p2
-t7pa
-tpi7ne
-tpi7pi
-tpo4et
-t4påk
-tr4
-8tr.
-6t9rabat
-3trafi
-tra7in
-tra8ka.
-trak7to
-tra7mu
-t5rane
-3t6rans
-tran7ske
-5trap
-tra3pe
-tra5po
-tra5r4
-5trase
-tra5se.
-tra5ses
-5trasé
-t2rat
-t5rate.
-3trav
-tre4al.
-tre1c
-4t3reds
-t3refu
-6t1reg
-t5regi
-4trei
-tre5int
-6trek.
-4treke
-4trekl
-4t3rekor
-4trela
-3t6re7na
-tre5ne
-t6reng
-3t6reni
-4t3renn
-tren6sk
-t7repe
-t5repres
-t2rer
-t4rero
-t4re3ru
-2tres
-6tresi
-tre5sko
-tres4l
-3tresn
-t5resu
-t1ret
-t4reta
-t6reto
-t5retted
-5t6rettel
-4trev
-tre9va
-t6rib
-4t1ric
-4t4rid
-tri7ei
-t5rig.
-t4rikk
-t8rina
-t4ri5ne
-4t5ring
-3trinn
-7t6rio
-6t5risk
-t4rist
-tri5to
-t4riu
-t2riv
-tri7vi
-5trix
-3t4ro.
-5troa
-tro9ar
-3troe
-t4rof
-tro5g
-3t2roi
-tro3in
-t4rok
-t2rol
-4t3rom.
-t6rond
-5t4rong
-tro5per
-t2ros
-5t6rosk
-tros3l
-tro1v
-t8ru.
-t8rua
-7trua.
-5trued
-5truet
-3trug
-tru1i
-5trukn
-t3rull
-2t1run9
-t3rund
-4trupe
-tru5sa.
-7t6rusk
-2trut
-t5ruta
-t3rute
-t3ruti
-tru5v
-try3dr
-3t2ryg
-tryg5ge
-7trykk.
-5trykke
-try7pe.
-t6ræ
-trø8a
-t5rød.
-t5rødt
-4trøk
-4trøm
-2trør
-5trøt
-5trøya
-5trøye5
-trøy9et
-4trøyr
-6trøys
-5trøyt
-trå8da.
-4trådet
-trå4dr
-t6råkl
-t3råst
-4ts
-6ts.
-t5sa.
-t5sab
-tsa2g
-tsak6se.
-ts1an
-ts4ang
-tsau6r
-t1sc
-t6scha
-t6sch5k
-t5se.
-tse6d
-tse4er
-ts5ege
-tsei4d
-ts3eig
-ts2em
-t3sen.
-ts4ende
-t5sendi
-tsen8ka
-tsen6ke.
-t5sens
-t4sentu
-t5ser.
-t3seri
-t4s3erk
-tser3o
-t5s6ers.
-ts4es
-t4sesk
-ts5e6st
-ts3eta
-tse4te.
-ts1e4v
-ts3f
-ts4fæ
-t7s8hop
-ts7ill
-ts3inn
-t4s3ins
-t5sir
-ts5jeg
-tsje5t6sj
-ts5jor
-5t6sjov.
-t7sjuk
-t4sjur
-t5skad
-t4skan
-ts6kis
-t4s5kjed
-ts6kjø
-t5skol
-t6skoll
-t7skot
-ts5kren
-tsk5ru
-ts5krø
-ts1k6v
-ts9kvi
-ts6ky.
-t6s7kyn
-ts1l
-t7s6lo.
-t3s4lot
-ts2lu
-ts5lø
-t5smit
-tsmå6la.
-ts1o
-t4s5o4d
-t5sok
-t5somst
-t5spek
-t3spel
-ts2pi
-t2s3pike
-t3s4por
-ts5s4
-t1st4
-t2s3tabb
-t5stad
-ts3tak
-t4s3tal
-t5stand
-t5stang
-t5star
-t5stat
-ts6tau
-t3sted
-t4steg
-t4stek
-ts6tig
-ts4tik
-t4stilk
-t4stin
-t4stit
-t2s1tj
-t8stolk
-ts5ton
-ts5tors
-ts5tree
-t4s5tren
-t4s5tro
-ts3try
-ts6trål
-t5stu
-ts3tv
-t4sua
-tsu7ge
-tsu4l
-ts3uli
-ts3u4r
-ts5usi
-ts1v
-t3svik
-ts1w
-t5syk
-ts5yt
-tsø8ka
-ts5økni
-ts5øv
-tsøy8er
-ts1å
-tsåt8
-8tt
-t1ta
-t3ta.
-t2tab
-ttaba6ne.
-tt9abo
-tt5adr
-t2taf
-tta9fr
-tt3aft
-tta4la.
-t6t3ald
-tta7lel
-ttall4
-t4t3ana
-t5t6ane
-t4t3ang
-t4tans
-t4tanv
-tt5appe
-t7t8ar.
-ttare6
-t4tarr
-tt5ar5t
-tt6arta
-t4tase
-t4tasj
-t4tav
-tt3avi
-tt5avk
-tt5avr
-t3te.
-t2tea
-t3ted
-t4teda
-t5tede.
-t8tedr
-t2tee
-t4tef
-tt3eff
-t2teg
-t2tei
-tt7eid
-tte3in
-t2tek
-tte7kv
-tt7elev
-tteli6te.
-t4tem
-tte4ma.
-tt5emn
-ttem8na
-ttem6ne.
-t3ten
-t5ten.
-t4tena
-t5tene.
-t4teni
-tten5s
-t9tens.
-t4t5ense
-t2teo
-t5ter.
-t4terei
-tter5un
-tte4r5ø
-t4terå
-t4tese
-t4tesi
-ttes6ke.
-t4tesl
-t5tet.
-t4teta
-t4tete
-t1té
-t8th
-tt5he
-tti5a
-t4tidel
-tti3e
-t2tif
-t5tig
-tti4g5j
-tt3ind
-t5tine
-t7tiné
-t5ting
-t4tini
-t4t3ins
-t4tisj
-t6tisti
-t7tite
-ttle6de.
-ttlin5
-t1to.
-t5tofr
-tt5om.
-t7tomr
-t2ton
-tton6na
-tt3opp
-t5tora
-tt3ord
-tto5re
-tt5o4ri
-tt3orm
-tto5u
-ttpar4
-tt6pås
-tt9raka
-tt5rake
-tt3ram
-tt3rap
-tt7rat
-t4t3rep
-tt3res
-tt3rev
-tt5rom
-t5trop
-t5try
-t2t1rø
-t6ts
-tt7saf
-tts3ar
-tts5kan
-tts5kj
-ttsla6ga
-tt3sok
-tt5still
-tts5top
-tts5tra
-tts5tøy
-tt3ugl
-t1tum
-tt1un
-ttun6ge.
-tt1ut
-tt8ute
-ttva8la
-tt5ve
-tt6vun
-t5tw
-t5ty.
-tty8e
-tt1y6t
-ttæ6
-tt3ø4l
-t1tør
-tt3øv
-tt7øy6r
-tt1å4
-5tual
-4tu4av
-tuba3
-tu4be.
-tu6bå
-tu6dem
-5tuel
-tu4er.
-tug8la
-tu1in
-tu2k
-t5uka
-t1uke
-7tukt
-3tula
-1tule
-tul5les
-tum5m
-tum4s
-3tun.
-4tund
-3tune
-tun5gesv
-6tungd
-tung9s
-6t5uni
-tu4nio
-5t4un5n
-9tuns
-3t2ur
-tur7ant
-tu4ras
-4tu4rei
-tu4rek
-turi4
-tu4rin
-tur1o
-tur3p
-tur5s4
-tur3uk
-tu5rus
-tur1ø
-1tus.
-tu1sa
-3tusb
-3tusf
-tu4sin
-tu4sm
-tus5o
-tus7s6t
-tust6r
-tus5u
-2tutg
-t5utj
-t5utk
-t1utr
-tut8t7rå
-tut6tenk
-tut5tor
-tutt5ov
-tu8va.
-2t1v
-tv4a
-tva8k
-tva6ne.
-3tvang
-t4v5anl
-8t9var
-tve5del
-3tveit
-4t7ver
-tvert5
-t2vet
-3tvet.
-7tvets
-t5vik
-tvi8ka.
-t8viklas
-5t4vil.
-tvi5la
-5t4vile
-t4vi5l4i
-t6ving
-tvi4sa.
-tvi4se.
-6t7vo
-3tvung
-6tw
-twa2
-1tyd
-tyg9gel
-tyg5ges
-6tyh
-tykk5s6
-ty4med
-1tyn
-ty4ne.
-6t5yo
-1typ
-5t6ype
-ty4pere
-ty4pet
-ty4rak
-5tyrann
-6tyreg
-ty4rep
-tyre5st
-ty4ri.
-tyri9e
-ty4ri5s
-ty2s
-3tysk
-tys3t
-2ty2t
-ty8ta
-t3ytel
-ty5ten
-ty4ve.
-2tz
-t5za
-5t6zel
-6t6z5l
-1tæ
-tæ5l
-tær6ene
-tæ4renh
-tær4er
-tær4et
-tær5s4
-tøf3l
-2t1øk
-tø9ket
-tøk8ta
-4tøl
-t7ø4let
-5t4øm5
-tøn5nes
-4tøp
-tøp5se
-t2ør
-tø4r3as
-tør3in
-tørk4
-7tørk.
-9tørka
-5tørke
-tør5ne
-tørs7ta.
-tørs7ter
-tørs5tin
-tør3t
-tøs4
-tø8sa
-4tøt
-tøt5a
-tø5ta.
-tø3te
-tøtt6
-2tøv
-tøv6d
-tø7vele
-t4øy
-tøy5a
-t9øyem
-tøy5r
-tøy5te
-tå4en.
-tå2k
-tå5ket.
-tå5ki
-tåk6r
-tå2l3a
-tå9la.
-tå4leg
-tå7lel
-tål5s4
-tån8da
-tån6de.
-tå3ne
-4tåp
-tå6pe.
-t1åpn
-tå6re.
-tå4rep
-t3året
-4t5åri
-3t8årn
-2t1års1
-tå3s
-tå2t
-t3åtak
-tå7ten
-ua7g
-u1ak
-uak3s
-u1al.
-ua7la
-ual5l
-ual3o
-ual3u
-u3a4ne.
-u5anl
-u3ans
-u1ar.
-uar5d
-u4arr
-u5ars.
-uash3
-ua3t
-u5au8
-u1av
-1uavh
-u4ba.
-ub7alt
-ub7ant
-ub5ark
-ub4bo
-ub2br
-ub4bu
-ubel5s
-ub5h
-ubi6s
-ubis7t
-ub1j
-ub7lande.
-uble3s4
-u1b4r
-ub5rin
-2ubs
-ubu8e
-u4bå
-uch5en
-uch5er
-u1ci
-uck1
-ucu5
-2ud
-u3da.
-u7das.
-ud4dag
-ud2dr
-udd4s5e
-ud2då
-udea9
-ude8are
-u2deb
-udeie5
-udei5er
-u2dek
-ude3lu
-u2dep
-u6dero
-u2des
-u3d2et
-u6d5ett
-u5devo
-udia2
-udi3an
-udi4en
-udio5
-ud7ir
-ud7ji
-ud5leg
-udle6ge.
-u7dob
-u6doe
-u2dot
-udover7
-ud1r
-udse4
-ud3t
-ud5v
-3u4dy
-udy9ra
-ud5å4s
-ue5a8
-u5ei
-u1el
-uem8na
-u1e2n
-uend5r
-u7ene
-u8e7net
-uensar4
-ue7o
-u1er
-u5e6rast
-ue4re.
-ue5ren
-ue4rer
-ue4res
-ue5ri
-uerle7
-u2erm
-ue4se
-ue2si
-ue4skj
-ues6n
-u1et
-uet8r
-ueul8
-u4fe.
-u6feb
-ufe6e
-uf1f4
-uf4f5erm
-ufi9l
-ufi5ne
-u1fl
-u6foa
-ufor3s
-u1fr
-uft3a
-uf4tan
-uft5s4la
-uft3sp
-ufø6
-u5gag
-u5gar
-u6g5av
-ugby7
-u2gem
-u5gen
-u3ger
-u4gerø
-u2ge5s4
-u9get.
-u8geta
-u2gev
-ugg3s4
-u5gis
-u4gl
-ug1la
-u5g4lad
-ug9lar.
-ug4le.
-ug9ler.
-ugle7s
-ug5ly
-ug7na
-ug7ne.
-ugo1
-u4go.
-ug4re
-ugrei9er
-u4grø
-ug5s4i
-ugs4k
-ug7so
-ug3s4pr
-ug5s4va7
-uguay7ans
-ug5øyn
-u1h
-3uhel
-ui8a
-u4i6c
-ui2d
-uid5el
-uid5en.
-uid5ens
-uid5er
-uid5in
-ui3e6
-u4il
-uil5l
-u1im
-ui3ne
-u1ing
-uinnsmi8
-uinnsmig9
-u1ism
-uista7
-uit3en
-uit5er
-u1itt
-u1j
-u4jas
-u8je.
-u7jå
-4uk.
-u1k2a
-u7kar
-ukare6
-ukar5t4
-u5kat
-u2ke.
-u4ked
-uke5l4
-4ukem
-uker5an
-uke4rek
-uker5i
-ukho7
-u7ki
-u1kj
-4ukk
-ukk6a
-uk7kestal
-uk8k9l
-ukk7n
-ukks6
-u5klem
-uk8lu
-ukl7ut
-u5k4no
-u1ko
-u4k5og
-u2kra
-uk3rus
-2uks
-uk2sa
-uk4sek
-uk4sel
-ukse7te
-uk2si
-uk2s1k
-uk7ski
-uk2so
-uks5t
-uk4s3un
-uk2sø
-ukt5e4sk
-ukteslø9se
-uk4t3id
-uk6tj
-uk4t5ori
-uk2t7r
-ukts6l
-ukt3sp
-ukt9s6v
-ukt4sti
-uktu8e9ra
-uktue5re
-u1ku
-uku6e
-uku5le
-uk5vik
-ukys8
-uk3ø4
-uk5å4
-6ul.
-u1la
-u4la.
-ula7d
-u6l1af
-u8l7aks
-ul5art
-ul4det
-u4lef
-u2lek
-u2lel
-ulele8ge.
-ule5ma
-u3len.
-u6leni
-u3lens
-u5ler.
-u5lere.
-ule3ri
-u2l3erl
-u4lero
-u2les
-ule3st
-u5lest.
-u5leste.
-u2leu
-u1lé
-ul5f6l
-ul4fo
-ul4fr
-u3l4i
-ulie8
-uli9en
-uli5ke.
-3ulikh
-uli9na.
-uli5ne
-u7linj
-ul1j
-ul5ka
-ul5k6e
-ul4k3v
-ul4lag
-ul4lam
-ull7arm
-ul4leg
-ull5egg
-ulleg8ga
-ul6leng
-ul9lere
-ul4le3s4
-ul8li.
-ul8lig
-ulling7s
-ull5i4v
-ul4l3o6s
-ul8lot
-ullo3v
-ull5sle
-ull3s6m
-ulls4t
-ull3sv
-ul2lu4
-ul6ly
-ul2lø
-ulm4u
-u1lo
-ulo6i
-ul5op
-ulo7va
-ul4sk
-uls4po
-ul8sn
-ulss8
-ul2st
-ul8s3t6r
-4ult
-ul4teg
-ul4tek
-ul4tes
-ul4til
-ul4tim
-ul4to
-ul7tor
-ul4t3re
-ult3ri
-u7lua
-u3lue
-1uluk
-u5lup
-u5lus
-ul9ut.
-u7luta
-u9lute
-ul7va.
-ul5van
-ul4var
-ul4ve.
-ul4veg
-ul4vei
-ul4ves
-ulv3t
-ul4v3u
-1uly
-ulyk5kes
-ulæ6ra
-ulæ5re
-ulø3se
-uløy6e
-ul5å6l
-2uma
-uma8ge.
-u6mare
-um5au
-umau7ken
-um3av
-2umb
-um5be
-4umc
-4umd
-2ume
-u4mend
-u4m3enh
-umen4t5i
-ume5ra
-2umfo
-2umh
-2umi
-u6midd
-umie6n
-umi9na
-u4mint
-um9ja
-2umk
-4uml
-4umm
-um3me
-um4mil
-um4mis
-um3n
-umna8
-4umo
-umo6g
-um5ok
-2ump
-um7pan
-um4ple
-um4p7ut
-4umr
-ums1
-um7se.
-um4sku
-umsku8le.
-um2sn
-um4sor
-ums3t
-ums4tø
-6um7t
-umta8l
-um5ut
-4umve
-umør3s
-um7øy
-umå7
-2un.
-una6da
-un5alg
-u4n3ap
-u9nar
-u7nas
-u3nat
-2und.
-6unda
-6unde.
-un4dek
-un4del
-6unden
-5undersk
-5underv
-4undet
-un6d7im
-4unds
-und5s4i
-u2ned
-u4nee
-u9nei.
-u2nel
-unele6ge.
-u4n5eng
-u4neno
-u2ne1s2
-u3nes.
-u2nev
-unev5n
-1ungd
-ungele8ge.
-un4gem
-un2g1j
-un4g5l
-un4go
-un2g1r
-un9g8ru
-ung3s4i
-un6i
-u4ni.
-u2nid
-1u2nif
-u4nim
-u3nin
-3union
-uni4st
-4unk
-un4k5l
-un7ko
-un4kr
-un7nak
-unn5erf
-un4n5ers
-un4n5erv
-un5nes
-un4niv
-un2no
-unn5ste
-unnta8la
-un4n3y
-u4no.
-u2n3os
-uno7t
-4uns
-un6sj5i
-un3skr
-un5s6kv
-un5sn
-un5s4p
-un3stek
-unst5e6l
-un7s6tenk
-unst3o
-un1s2v
-un4tal
-un4tam
-un4tas
-un3t2r
-unt5rep
-un4tri
-untun8ge.
-unu6
-un5ut
-u3ny
-u3nø
-un5øy6d
-u7nøyg
-u3nå
-uo9a
-u1ob
-u1om
-uom7s
-u1op
-uor8da
-uo1re
-uo5ro
-u1ov
-up3av
-u3pea4
-u5per
-uper3a
-upe6ren
-u4peta
-6upf
-up6h
-u3pi
-u8pi.
-up3ins
-up3li
-up6nev
-upo9pe
-up1p2
-up4ped
-up4pla
-up6pre
-upp5s
-4upr
-u3pra
-6ups
-up6sen
-up2s3k
-ups4ke
-ups5pr
-6upt
-6upu
-u1på
-upåvi6
-u1ra
-u2rad
-u2raf
-ur3aft
-u2r1ak
-ura6ly
-u4ram
-u5rane
-u3rans
-uran6t5re
-u5rar.
-u6r7arl
-ur3arv
-u9ras.
-ur5asp
-ur3att
-ur7au
-urau9ken
-ur1av
-ur4bod
-ur4c
-urd4
-ur3di
-ur4d5o
-u1re
-ure8al
-ureer6e
-ur5egg
-uregi6
-uregist5
-3urein
-ure4l
-ur3ele
-u4reli
-u7r8ell
-u7r8elt
-u4r3els
-u4r5eng
-u7reom
-ure7o6s
-u4resu
-u4reta
-u4rete
-ur4e5v
-2urf
-ur4feb
-ur6fed
-ur3ge
-u1ri
-u4ri.
-uri6a7ne
-uri9en.
-uri4e5ne
-uri9er.
-u3rik
-u3rim
-uri5ne
-ur3inn
-ur3ins
-ur3int
-uri6sp
-ur4ke5s
-ur7k6j
-ur6k7ja
-ur8kla
-ur4kle
-ur6k5n
-urk5s
-urla8ga
-urle6ge.
-urle8se.
-urma7g
-ur3nea
-urn1s2
-urnæ6re
-u4ro.
-u6roc
-5uroe
-urom5s
-u2rop
-uro7pi
-ur3opp
-ur1or
-uro3s4
-uro4sta
-uro8ta
-ur4pel
-ur7pi
-ur6p9ut
-ur7re
-ursa8ka
-ur4sal
-ur4s3el
-ur4sin
-ur4skr
-ur4spe
-ur5ste
-urs5til
-ur4stj
-ur2sv
-urs3va
-ur2s1ø
-ur3teo
-ur5ti
-ur4to
-ur6t5ri
-urts4t
-urue7re
-u6rug8
-ur7ugl
-uruk6
-uru4ke
-uru7kn
-ur6ul
-urumo7
-urun4g
-u7runk
-uru7v
-ur4vel
-urv3s
-u6rys
-urø2
-ur1ød
-ur1øy
-4usa
-u9sane
-us3ang
-u9sar.
-u8s7arb
-u7saren
-u6s7ark
-us7au
-us1c
-2use
-u5seal
-use4al.
-us7edvanle
-u2s1ei
-u2sek
-u4sele
-u2sem
-u6s5endi
-us7erk
-u4s5erm
-u6sesi
-uset8je
-us3eva
-4usg
-u2sh
-u2s3h4a
-u2s3h4o
-us4id
-us3ind
-us5inn
-us7jag
-u4sji
-us5kaf
-u4s3kan
-uska8ra
-us7kat
-us5ken
-u6s5kis
-usk4l
-us6k5le
-us5klo
-us1ko
-u1skr
-us7kru
-usk7u6t
-u8s7kå
-us4ky
-us1l
-usle6ge.
-us5lin
-u4slu
-us7mø
-u4sn
-us1ok
-uso5l
-uso6l5d
-us1or
-u3sori
-usove7r6e
-us1p
-u1s2pin
-us5sar
-us6sat
-us4sjå
-us4skj
-uss5kor
-us4skur
-uss1l
-us7smi
-uss7mø
-us4s5ti
-us4str
-us2sv
-u6stande
-u4stat
-us3tav
-u2ste
-us3ted
-u5stei
-us7ten
-ust9ette
-us5ti
-u5s6tig
-us1tj
-ust5of
-uston8
-ust7onn
-us5tor
-ust5o6v
-us8tra.
-us8tran
-us8trar
-u6stre
-ust5ren
-us4tri
-us3tro
-ust5rød
-u6st5rå
-ust7ut
-u4stå
-us3ung
-u2sur
-us1v
-u5svale
-u7s6valt
-usva8n
-usvi8ka.
-6usæ
-usæ9le
-usø6m
-us1øy
-u1tae
-u2tag
-u7tagg
-u9tal.
-ut3alb
-ut5ald
-u3tall
-u5tande
-uta7no
-ut6anv
-ut3arm
-ut3art
-uta1s4
-u5tas.
-u6t5a6sa
-u6t5a6se
-u2ta1u4
-1utb
-ut4ba.
-utbe8d
-4utbi
-ut6by.
-utch5
-1utd
-4utdat
-utda7ta.
-u2te.
-u2tea
-u4tee
-u4tei
-u2tek
-ut3eks
-u5tekst
-ute6ma.
-u5temm
-u9temt
-ut2en
-u6tena
-u3tenk
-u4tenu
-u2teo
-2uter
-u6terø
-u2te1s6
-u4teta
-u3tett
-ut6eu
-uteva9
-1utf
-utfa7s
-utfø5re
-1utg
-8utgåe
-6u3ti
-u4t5if
-utikk6u
-utiku9
-u4tili
-u6tiven
-ut1j
-u5tjen
-ut6ju
-3utlei
-utlø5se
-utlå7na
-utmå5le
-u8tni
-1utny
-2uto
-ut7oms
-uto5s
-uto4v
-3utpr
-ut4på
-ut1r
-u5t4radi
-ut3re
-u5treng
-u3triv
-u3trol
-u3tros
-5utru
-u5t6rul
-ut4rø
-ut9rød
-u7t8råk
-1ut1s4
-4uts.
-4utsei
-utse8t9ja
-2utsj
-ut3sk
-5utst
-7uttak.
-5uttake
-ut4terk
-utt5eva
-ut4tid
-ut4til
-ut5torea
-ut1tr
-ut4tra
-3uttry
-utt1s2
-ut8tår
-u1tu
-utu5e
-u6t5un
-utun8ge.
-u2t5ut
-1utv
-u3t4vil
-utvi5se
-2u3ty
-3u4t6yd
-u8ty.
-8utz
-ut1ø
-u5tør
-ut4ø8s
-utøs7t
-1utø4v
-ut5øya
-ut7åk
-u3tål
-ut1ån
-ut7år
-u1u
-u7uma
-u5ume
-u7ut
-u1v
-uve5di
-uve3in
-uve6ris
-uve3s
-u7ves.
-uvet5ø
-u6vev
-u5vi
-uvi6k
-uv5ra
-uv9sa
-u5vu
-uvø9re
-u1w
-4ux1
-ux4a4
-uy6a
-u7yn
-u1æ
-uærle9ge
-u1ø6
-uøv5
-u9åra
-u7åre
-va3am
-va8an
-4vab
-6vadj
-vad1r
-vaf3
-vaf6r
-vai5r
-vai5s
-va6ka.
-va7kan
-va5ker
-6vakh
-va8ki.
-4vako
-vak3r
-7v6aksi
-4v3aksj
-vak5s6t
-1vakt
-vakt5r
-va1ku
-vak3v
-va3lan
-va4led
-val9eks
-4valel
-val4g3r
-vali9e8
-val3la
-val6mes
-va6l1o
-va1lu
-va4lun
-4valv
-va4løy
-val7å
-vam8pu
-4v3anal
-vand5s
-v4ane
-vane5s
-va4net
-2vang
-van4gr
-vang4s7
-va8ni.
-1v4ann
-van4nan
-van4niv
-vann6sti
-va4nom
-v4ans
-van5sem
-5vansk
-van5s6ki
-van3sm
-van3ti
-van9tr
-va4ny
-2vap
-va5po
-va4ra.
-va6rak
-va4ral
-va4ram
-va4rap
-va4re.
-va4reg
-va6rem
-va4res
-var8ka
-var5ma
-var4mee
-var4sa
-var4sk
-var4s5ti
-var4sv
-varta9la
-var6tem
-var4t5i4s
-4vasa
-va4sa.
-va9set
-6vasid
-va6sie
-va4sif
-va4sik
-va4sil
-va6sis
-va2sk
-vass5a
-vas4sau
-vas4sel
-vas6s7ø
-4vasta
-vat5a
-va3ta.
-va6t7e8l
-va2terf
-vatle6ge.
-5vatn
-va1to
-va6tr
-vat7ra
-vat1s
-4vau
-2v1av
-va4z
-2v1b2
-vba4ne.
-vber5g
-vbo6da
-6v1d
-v7dev
-vding5s4
-v7doi
-v7don
-vd6r
-vdu6en.
-vdu6er
-v7dø
-1ve.
-2ve1a2
-ve6ag
-ve6ar.
-2veb
-2vec
-ve2d1
-ve9dob
-vedom5
-veds2
-ved5s4k
-3ve8d5t
-vedø4
-vedå6
-2vee
-ve4er
-2vef
-ve6g5av
-ve5ge
-3vegg
-veggs4
-2vegj
-4vegl
-ve3gle
-ve5g6lød
-veg5n
-2vego
-6vegre
-veg5rett
-4vegru
-ve4gut
-ve4g5å
-2veh
-1vei1e
-vei8eb
-vei3en
-4veill
-6veit
-2vej
-4veka
-5ve4ka.
-ve4ke.
-ve4ked
-4vekee
-2veki
-4vekj
-2vekl
-vek8la
-vek8le
-ve4kli
-2veko
-2vekr
-3veks
-vek4st
-veks4t5r
-1vekt
-vek4t5an
-vek5to
-vek4t5r
-2vekå
-5vel.
-ve4l5as
-5velat.
-5velatp
-6veld.
-vel4del
-8velds
-4veled
-6velei
-7velet
-4velis
-4velit
-6veliv
-2velo
-5veloc
-vels2
-vel3se
-velses5
-vel3sm
-vel5sp
-vel5st
-4velug
-vel5un
-vel5v
-2vely
-2velæ
-2velø
-velø8pa
-2vem
-ve5ma
-1ven
-ve8na.
-4venem
-ve5net
-ve6nete
-4venev
-ve4nin
-ven6n5i
-vennle7
-ve2no
-ven6sti
-ven6str
-vent6a
-ven5t6r
-vent4s
-4venty
-2venu
-ve4nus
-ve5ny.
-4venya
-ve4nym
-2ve3o4
-2vep
-1v8er.
-ver5ak
-ver3al
-8verau
-ver6des
-ver6din
-ver6dir
-verd7v
-ve3re.
-4vered
-4vereg
-5vereig
-4verek
-ve4rel
-ve6r7eng
-4verenn
-4verep
-ve5rer
-ve5res.
-4verett
-4veretu
-verfø5re
-ve9ri.
-veri3a
-ve4rial
-ve7rie
-4verik
-ver3il
-5verkn
-ver5m6
-ver6nal
-vern6s5
-ve9ro.
-ve3rom
-ver8ska.
-ver5ski
-ver7spo
-verta8la.
-verta6le.
-ve1ru
-5verum.
-6very
-verø6
-ver3øs4
-4verå
-v4es
-3ves.
-2ves4a
-ve5san
-4veset
-4vesh
-4vesi
-4vesj
-4veski
-2vesl
-ve9sli
-ve1s2m
-6ve3so
-4vesp
-ve6s3per
-ve5sted
-ves6t5end
-vest5o4v
-4vestr
-4vestu
-4vestø
-ve3sv
-vesva7
-5vesynds
-2vesø
-ve1så
-veså5re
-v4et
-1vet.
-2veta
-8vetaka
-4veteg
-4vetek
-ve5te6s7
-6vetev
-2ve7ti
-4vetj
-2veto
-ve4to.
-veto7e
-9vetoke
-9vetoks.
-ve4tor
-2vetr
-1vets
-vett5sk
-6vetv
-4vety
-vety8e
-2veu
-ve8um
-2veva
-ve6vak
-ve5van
-ve9var
-2vevi
-vevi8sa
-vev4sm
-vev4sp
-2veø
-2veå
-1vê
-2v1f
-vfall4
-vfø7re.
-2v1g2
-v4ga.
-vga4le.
-vga6li
-vga8ve.
-v9ge
-v4gi.
-vgjer6s7
-vgo4
-v4gå.
-2v1h
-vhø4re.
-1via
-vi1an
-vi6bl
-vice5s
-1vid
-vi5de
-vide4o7
-vi4d5o4
-vid3r
-vid3s4
-vi1el
-vi5end
-vig4m
-vi4gu
-vi5gø
-vi4kat
-5vikb
-vi5ked
-7vikg
-vik5ke
-vik5n
-vi2k3o6
-3viks.
-vik5sa
-vik5s6l
-4vikt
-5vikti
-vi4k5ø4
-vi2l1a
-vi5la.
-vi4les4
-vi4l3in
-1vilj
-vil4l5an
-vil4led
-ville6de.
-vil4lei
-vill9ep
-6v5illu
-vil5m
-vil1o
-vil4sti
-vilt7o
-vil6tret
-vil4tri
-vi2lø
-4vim
-vim7p
-vim7u
-vin6d5au
-4vindl
-5vindu
-vine5st
-v6ing
-4vingn
-vin5gom.
-ving3r
-vin8g9u
-vin3na
-vin4ned
-6vinnh
-4v5innl
-4v5inns
-4vinnt
-vi6n5o6ver
-v2in2s
-vin7sja
-vin4tes
-vin5tre
-vi8pa.
-vi6pe.
-vip5s
-1vir
-4viro
-7viru
-vis3ab
-vis3ak
-vis5and
-vi4see
-vi3sen
-vi6seng
-vi2s1k
-visk6re
-vis5m
-vi1so
-vis3om
-vi4sp
-vis9pa
-viss4p
-vis5ti
-vi4tak
-vi5tese
-5vi6t5j
-vi4t3o
-vi4tr
-vit7ra
-vit5re
-vit5skr
-vit6te6s7
-vi4t5un
-vitun6ge.
-vi4t5øy4
-vi4va.
-vi6ves
-vivi3
-v1ja
-v1je
-vje4t5a
-vje5t6e
-vje4t5r
-vjet3t
-vje4tu
-v1ji
-4v5jo
-vju3t
-6v3k6
-vk4le
-vk4ler
-vku4le.
-6v1l2
-v6lab
-vla6ga
-v9led
-v9leg
-vlei9e
-vl6el
-vle4se.
-v5lesn
-vle5str
-v6lesv
-vli7v
-vls9
-vlu9sa
-2v1m
-vma8le.
-vmo8de.
-vmord4
-vmå8la
-2v1n
-v3nad
-vna8ke.
-vn5al
-v9nar
-vn5dy
-vne7b
-v2ned
-vne7de
-v4nele
-v4neli
-v4nelo
-v2nem
-vne5r6e
-v4nero
-vne1s
-v4nesta
-v6neste
-v2nev
-vnor9s8kas
-vn4s5pa
-vn1s4t
-vn5t4
-vnæ4re.
-vn5ør
-vo1al
-vo2ar
-6vob
-2vof
-vof8fan
-vo4gu
-voi1
-1vok
-4voko
-voks3k
-vok6s5
-1vol
-voli7
-vo4litu
-vol4tes
-2vom
-vo4na
-vo9nal
-vo9nar
-von5de
-vons6
-von5sh
-2v1o6p
-2vord
-vor8da.
-vo1re
-vo9ren
-2v1org
-4voro
-vors7k
-1vos
-4vosj
-vos4se
-vo4teg
-vo4tel
-6votr
-vo1v
-vo4ve.
-vo6vi.
-2v1p4
-2vr8
-3v6rak
-v7rar
-v1re
-vregi3
-6vrenge
-4vrengi
-v6rengj
-v6rengt
-vrett4s
-v6ri.
-3vrid
-7vrie
-v6rigas
-vri6ma.
-vri8me.
-v3ring
-vrin5s
-vri6ve.
-v1ro
-v4rob
-v4rof
-v4rok
-v4rop
-vro8te.
-v1ru
-v7ry
-vrø3ve
-v1rå
-vrå8da.
-8vs
-v6sa.
-v7sali
-v6se.
-v4seg
-vs3egg
-v3s4el
-v4s5e4li
-vse4n
-v5sen.
-v4s5eng
-v5s4ens
-v2ser
-v6si.
-vs1in
-v1sk
-vs8ke
-v6s5kum
-vs1kv
-v1sl
-vs3lan
-vs6let
-v6slik
-vsmå8la
-v1s2n
-v6s7na
-vs3ne
-vs3ny
-vs3næ
-v4s3nø
-vs5od
-vsom5
-vs5oms4
-v7son
-vs1or
-vs2pe
-vsre6de.
-vs7s6t
-vs4s5å
-v1s2t2
-vste6ma.
-vs3til
-vs1v
-v6s7va
-vsø6ke.
-vsøl5
-v2s5øy
-vsøy4er
-v8så.
-vså7re
-2v1t
-vta1
-v4ta.
-vta8ka.
-vta6led
-vta9len
-vta4lev
-vta6s
-v5tepp
-v5t4i
-vti8na
-vti8ne.
-v5t4r
-vt7s
-v3t2v
-vty8e
-1vu
-vu2d1
-vud5d
-vuden5t
-vuds4
-8vué
-vu8k
-2vul
-2vung
-vun4ge.
-6vu6o
-2v1ut
-2v1v
-vva8la
-vve8g9ing.
-vve6g7inga
-vven7n6i
-vvi5ke
-vvi6k7l
-vvi8s9an
-vvi4se.
-2vy1
-vya4
-vy7ens
-1væ
-væ1ra
-væ9ret
-væ8ta.
-v3ø4d
-8v7øks
-vø4l
-vø7li
-vøm4met
-3vøre
-vø6re.
-v3ørke
-vør8na.
-vø3se.
-v5øv
-4v1øy
-vøy6e
-vøy7ene.
-vøy9enes
-1våa
-1våe
-4våend
-v4åk
-vå8ka.
-vå4ke.
-vå4kene
-vå9kene.
-vå4le.
-1vån
-vå5ne
-4vånu
-vå3ren
-vå8sa.
-vå5tes
-6våtf
-våt7å
-w2a
-wa6l
-5wald
-wal4k
-walk5o4
-wal4l
-2wap
-war6d7er
-wash3
-1wat
-wa3z
-w1b
-wboy5
-we2
-weate7
-we7b
-we3g
-we5re
-wes2
-wes3s
-wester6
-western7
-wet5
-wett4
-w4i2
-wi9ar.
-wich3
-3wicz
-wi3d
-5wi6en
-wi9er.
-wi5f
-wi3ni
-wi5ra
-wi3ren
-wi5ta
-wk3r
-w1l
-w1m
-wn5s
-wob5
-wou6
-wout7
-w3s4
-ws6k
-wurs6
-wy2
-w1yo
-wyor2
-wyork3
-w1z
-xan5t
-x7b
-x3f
-xga6
-x7h
-x1ic
-5x6id
-xi5e4
-x5k
-x1l
-x1p6
-x3r
-x1s2
-x7t
-x6u
-xy2
-ya7b
-1yac
-ya5f
-ya4h
-y1ak
-yak6te.
-ya2l
-y7am
-y1an
-y6an.
-y2ana
-ya4ne.
-yan7k
-yan7sl
-y1ark
-y7arr
-yas4
-ya5si
-ya5t
-y1av
-y1b
-yba4ne.
-yb4bed
-ybde3
-ybo2
-ybu6er
-ybue7re
-ybu7ern
-ybyg5
-y1c
-y8ce.
-y8cé
-y2co3
-y6dab
-yd5av
-4ydd
-yd6dela
-yd4dep
-y6d7enh
-y4deo
-y2dep
-y4dero
-y2d1is
-yd6je
-yd1ji
-ydo4
-yd3op
-yd5ov
-y1dr
-y4d4r5au
-yd1re
-yd5rem
-y8d7ri
-y4dro
-y4d4r5oks
-yd3si
-yds4v
-y2du
-yd1un
-ydø4
-y4døm
-ydør5
-yd1øs
-4y1e
-yed8l
-ye6dre
-y2ek
-y5eks
-ye4len
-ye6let
-yel4s5j
-yel4sk
-yels3m
-yel6s5t
-y2em
-ye2n
-y7e6ne
-y8ener
-y2enh
-ye5ni
-y2enk
-y2enl
-yenle6ge.
-yens4
-y4ense
-y3e6re
-ye4rel
-y3ern
-yer8sk
-y4erst
-yes2
-ye5sm
-ye2t
-ye9te
-ye5ty
-y2ev
-y1f
-yfan9
-yfjell4
-y4fle
-yf5le.
-y8ga.
-yga8ve.
-yg4dal
-yg4dek
-yg4del
-yg4dep
-yg2do
-yg2d1r
-yg2d1y
-yg2dø
-yge5i
-ygen5s
-y6geret
-y2ges
-y4gev
-yg6gam
-ygg7art
-ygges4
-yg5gj
-ygg5l
-yg6gr
-ygg3s2
-yg6gu
-yg6g5å
-ygi2
-y5glo
-yg7m
-yg6r
-y1h
-yhes5
-y1i
-y9in.
-yis7t
-y1j
-6yk
-y1ka
-ykap3
-y6kara
-y2ke
-y7kel.
-y5kelen
-y3keli
-y7kels
-y3ken
-y3ker
-y4kerel
-y4kero
-y5ket.
-y9kets
-y1ki
-y1kj
-y4kjar
-y5kjare
-ykjeva8ne.
-yk4kana
-yk4k5enh
-yk5kesj
-ykke6s5ta
-yk1kj
-ykk5ni
-ykk8s5k
-ykk8s5o
-ykk8s5s
-yk8k5vi6
-yk4ky
-yk1la
-yk6lest
-y1klo
-y3klub
-yk3lus
-y5klæ
-y1ko
-y2koa
-y6koli
-y4komo
-y5kosa
-y2kot
-y5koti
-y1kr
-yk1s
-yku6le.
-yk3var
-y1la
-yla8ga
-yl4dan
-yl4derk
-ylde4s
-yld1r
-yld5s6k
-yle6ge.
-y7les
-y4lev
-yligh9
-yl5k8
-ylke2
-ylke4s3
-ylkesla8ga
-yl4lev
-yll5is.
-yl3s6
-ylst7re
-yl5tet
-y8luse
-3ylven
-y1ly
-ylæ7re
-y6mei
-y4mete
-ym4fe5d6
-ym5jara
-y4mo.
-ymo5e
-ym3p2
-ym1s
-ym8sa.
-ym4se
-ym8sl
-ym6ta.
-ym6te.
-ymå6la
-y9n8and
-yndes8
-yn5det
-y2nel
-yn7eld
-yner3g
-yne5s4
-ynesi8
-y6nev
-yn5gel
-yn4gem
-yn2gr
-yn4g5ø
-ynko3
-yn6k5v
-yn5na
-yn5ne
-ynn3s4
-ynn4ø
-y3no
-y4no.
-yns1
-yns6are
-yn4sem
-yn9set
-yn2si
-yn2sk
-yns9ket.
-yns7ki
-yn5skj
-yns7kjele
-yn8s9kjer.
-yn4st
-yn2su
-yn4s5ver
-yn4tap
-yn8teg
-ynt5ei
-yn4tek
-yn6tete
-yn8t7r
-yo4gat
-yo6gi.
-y1om
-yon4
-yon5nen
-yo6nu
-y1o2p
-y1o2r
-yor6da
-yo5re
-you4
-yout5
-yp8e
-y2pe.
-y4pee
-y4pena
-y4penet
-ype4rel
-y6peta
-y1pi
-y4pi.
-y7ping
-yp5inn
-ypin8na
-y1p2l
-y5po
-yp7p6a
-yp3pe
-y1pr
-yp5s8
-yp4tok
-y3pu
-y1ra
-yra8ka
-y4r3a6l
-y7rarb
-y4r5au
-yr5av
-yr7da
-yr5dø
-y7real
-y8r7edd
-yre3in
-y5reis
-yrek4
-y7rek7k
-y3rels
-y5rems
-y1ren
-yre9ne
-y4reo
-y6rerel
-y4rero
-yre5sc
-y5rest.
-yre5ste
-y5reste.
-yres6ten
-y1ret
-y4reta
-y4rete
-y4reto
-y7retø
-yr7ga
-y1ri
-yrin5g6
-yri6ene.
-y4rif
-yri8ka.
-yr3inn
-yris6p
-yr4kee
-yrke4s
-yr5kj
-yr3m
-y7roe
-y3romm
-yr1op
-y5rosk
-yr5r8
-yr4san
-yr7set
-yr5sk
-yr6skj
-yr6skr
-yr2sp
-yrs7tan
-yrs5tar
-yrs7tene
-yrs5tens
-yr3sti
-yr4sv
-yr3te
-yr6tek
-yr2t3r
-yr3tra
-yrty8
-y1ru
-yrul8la.
-yr5ut5r
-yr3v
-y1ry
-yr3øk
-yrøy4
-y1rå1
-yråd2
-yrå8da
-yråde7r
-yrå6ders
-y4rådi
-y2råm
-y6råst
-y4råt
-y4råv
-2ys
-y1sa
-ys6a7kers
-y8s7al
-ys4e
-yse4bu
-y4sed
-y4see
-yse5ei
-y2seg
-y2sek
-y8s7ekte
-y2sem
-y4sera
-yse7rid
-yseri7e6
-y4sesj
-y4sesk
-y4se5s6l
-y4sest
-y5seste
-y6sesu
-y9set.
-y4seu
-ys6i
-ysi8e
-y5sjk
-y7skag
-ys6kara
-ys7kare
-ysk9au
-ys2k3l
-ysk5øs
-ys4mi
-ys4nø
-y1so
-y4s5or
-ys2pe
-ys5pis
-y5s4po
-ys6sak
-ys6sam
-ys4s3ei
-ys4s3ek
-ys4s5il
-ys2sj
-ys8s7ko
-ys4sku
-ys2so
-ys2sp
-yss5pe
-ys4sta
-yss5tab
-ys4s5ti
-ys4su
-ys2s5v
-ys2t
-ys3ta
-y8star.
-ys4tat
-ys3tel
-ys3ten
-y4s3ter
-ysterie7n
-ys7tesl
-y2s3ti
-yst3op
-yst3r
-ys8tra
-ys5t6ry
-y7s8tu
-ys6ty
-y1su
-ys1ve
-y8s7øm
-ys5år
-y1ta
-y4t3ana
-y2tee
-y4tef
-y2teg
-yt5e4ge
-yte3in
-y4teka
-y4teki
-y4tena
-y4teno
-y2teo
-y4teret
-yte6ro
-yters6
-yter5ske
-yte5r6ø
-y2tes2
-y2tet
-y3t2hi
-6y5til
-y6tj
-yt9ja
-yt5jen
-yt9jer
-yt4mei
-yt4mes
-y3to
-yt8ra
-yt4re.
-yt5rer
-yt1ri
-yt4rik
-y5trå
-yt4s3en
-yt3sk
-yt5sv
-4ytt
-yt5t6a
-ytt4e
-ytte8r9end
-yttes6
-yt4test
-yt8tien.
-yttsa6me.
-2y3tu
-y1ty
-yt4ys
-y7tå8
-y1u
-y6ua
-y8ue
-yu8g
-yu4l
-y1v
-y4vak
-yva8la
-y2ved
-yve4ria
-yve4ris
-y4vese
-y6vesy
-y6vev
-yvi8sa
-yvi6se.
-yv1år
-yvå5te
-y1w
-y5æ
-y5ø
-y1å2
-za5b
-3zae
-4zaes
-za4g5
-za5k6h
-zani4
-zania5
-5za5v
-z1b4
-zbu4
-z1c
-z1d
-1ze
-zea1
-zebu9
-zeli5
-zen3s
-4z3ense
-4z3ent
-z1f
-8z1g
-5zha
-z3hi
-z5hu
-5zie
-1zifi
-5zing
-z5int
-1zis
-6zisty
-4zi5s4v
-2zisy
-z1k
-4z1l
-z1m
-5zo.
-5zoe
-zo1f2
-zo4no
-zo5re
-6zos
-z1p
-z5r
-z1s
-4z1t
-zu3e
-z1un
-z1v
-z1za.
-z2z3el
-æ5by
-æ2bø
-æ5de
-æ7di
-æ1f
-æg6
-æ2k
-æ3ke
-æ5ki
-æ8kj
-æk1ja
-æk7je.
-æk9jer.
-ække7
-ækkel6
-æk6l
-æ1la
-æ4le.
-æ2le3d
-æ4lena
-æ4lev
-æl5j
-ælsle9
-æ4r1ak
-æ3rane
-æ4rans
-æ4rarb
-æ6rarbe
-ær4arte
-æ4r1at
-ærbu5e
-ær1d4
-æ1re
-æ2rea
-æ4red
-æ2ref
-æ2reg
-æ8r7ei
-ærei6e
-æ2rek
-æ6r7eld
-ære5ne.
-ære7nes
-æ2rep
-æ5rern
-æresa4m
-ære6skr
-ære4sl
-ære4sp
-æ4reta
-æ4retek
-æ9rets
-æ2rev
-4ærf
-ærgen5
-ærhø8
-æ1ri
-æri6e7ne
-æ4r3il
-ær3ins
-æri6s
-ær5is.
-4ærk2
-ærle6ge.
-4ærm
-ærmå8la
-ær3n
-ær5ne4
-ær4nå
-æ2r7o6
-ærom5
-æroms4
-ær5r
-ær6sel
-ær4s5il
-ær1sk
-ær7s6no
-ær2sp
-æ2r1u
-ærut5
-ær3v
-æ2r1ø4
-ærøy7e
-ær3å4
-æ8se.
-æ2sj
-æ2s1k
-æ5ta
-4æte
-æ4te.
-æt6he
-æt4r
-æt4ta
-æ5va
-ævar5
-æve4s
-æ5vi
-6ø1a2
-øa7re
-øau4
-ø1b
-øbe6lev
-øbe4li
-ø2bl
-ø3b6li
-øbl9u
-øb4r
-ød3ag
-ø4dak
-ød3d
-ød9de.
-ø2de.
-ø4dede
-ø6def
-ø4dela
-ø4dem
-ø4deo
-ø4deri
-ø4dero
-ø5dj
-ød1r
-ød4red
-ød4rek
-ød4rep
-ød2sc
-ød6s5ek
-øds7ke
-øds4ko
-ød6sku6
-øds4mu
-ød8t5om
-ødt6r
-ø2du
-ød3und
-ø4d5ur
-ø6d5ø
-4ø1e2
-ø4ed
-ø5ene
-ø5ep
-ø3e6re
-øfe8
-øf3fe
-øf6j
-øf8la.
-øf8le.
-øffe8l7a
-ø5fn
-øfte5s
-øg1
-øg2a
-øg5ak
-øg5al
-ø7gar
-ø5gas
-ø3ger
-øg5gl
-øg8gå
-ø7g4j
-øglo8ve
-øgn6s7p
-ø2g2r
-øg5re.
-øg5res.
-øgs2
-øg4ste
-øg4str
-øgta5
-4øg4u
-ø1h
-ø4i
-øi4e
-øi5er.
-øi5e4ne.
-ø5ing
-ø5isk
-ø4it
-ø1j
-6øk.
-6ø1ka
-ø5kav
-øka8ve.
-ø6keh
-ø4kelo
-ø6kerada
-ø6kerel
-ø4ke5ru
-øke1s
-ø6kese
-ø8kesl
-ø4kest
-ø4kete
-ø1ki
-4økj
-ø5kjare
-ø5kjas
-ø1kje
-2økk
-øk5kel
-øk5ket
-øk4k5l
-økk5r
-øk3lag
-øk3lan
-2økna
-1øko
-øk5opp
-ø1kr
-ø8krar
-øk8sa.
-øk6se.
-øk4ses
-øk4si
-øk2so
-øks1t6
-øks5ti
-øku4r
-øk5ur.
-øk5ure
-øk7ve
-ø7ky
-ø1la
-ø2lah
-ø6lam
-øl3d
-øled
-ø4ledi
-ø6lelu
-ø4lero
-ø6leta
-ø4le5te
-ø2lev
-øl4gera
-ølge5s6v
-øl1j
-øl2ke
-ølke7s
-øl4lese
-øl9leti
-øl6lev
-ø1lo
-øl7op
-ølrå4
-øl6sel
-øl4sere
-øl4se3s
-øls6t4
-øl5s4v
-ø5luk
-øl7ut
-ølva6
-øl4var
-øl4v3ei
-øl6vek
-øl8vel
-ølv7erk
-øl4v3in
-ølv5o
-ølv7r
-ø1ly
-ø4me.
-ø9met
-1ømfi
-ø5mi
-ømini6
-øm4med
-øm4mero
-ømmet6
-øm4metr
-øm3op
-øm4pel
-øm7s6p
-øm1st
-øm5svi
-ø2m1u
-ømå8la
-øn2ad
-ø6n5al
-ø5nas
-ø2nem
-ø3nes.
-ø9nese
-ønhø8re.
-øn8k7r
-4ønn
-øn4nal
-ønni4
-øn4n5it
-ønns5al
-ønn4s3e
-ønn4s5i4d
-ønns5kje
-ønns5kre
-ønns5ku
-ønns3l
-ønns3t
-øn2nø
-ø6nom
-øn2s
-øn9sa.
-øn5sak
-øn5sam
-øn5se.
-øn3ser
-øn3skj
-øn8skjer.
-ønst3r
-ønst9ra
-ønt1
-øn2ta
-øn2to
-øn7u8
-ø1o
-ø4peda
-ø6pe5i
-ø4penu
-ø5pero
-ø4peru
-øpes4
-ø4pete
-ø4peti
-ø1pi
-øp3li
-øp5p
-øp6pl
-ø1pr
-øp6s1
-øpsa4
-øpsla8ga
-øps8leg
-øp5ste
-øp7s8tik
-øp4s5ø
-ø1ra
-ø2ra.
-ø2r1af
-ø2r1ak
-ø2r1a2m
-ø4rans
-ø4r3ant
-øra8sa
-øra6si
-ø4r7au
-ørd4e
-ø1re
-ø2rea
-ør7edd
-ø6redu
-ø2ref
-ø2reg
-ø6rein
-ø2rek
-ørek6l
-ør3eks
-ør5ekt
-ørele8se
-ø9relet
-ø4r5eng
-ø2re5o4
-ø2rep
-ø6reret
-ø4reru
-øre1s2
-ø5res.
-ø4rese
-ø6resi
-ø7reskrivi
-ø8reso
-ø4rest
-øre6s7v
-ør6et
-ø4reta
-ør1eu
-ø2rev
-ør5fe
-ørge5s
-ø1ri
-øri8m
-ør4jet
-ør4keri
-ør4kes
-ør8k9lag
-ør6k5n
-ør4kve
-ør4kå
-ørla8ga
-ørm9ut
-ørn4e
-ør4nere
-ør4nes4
-ør4n3u
-ør4n5ø
-ør1o
-ø5r6ok
-ø1ros
-ø4r3ost
-øro4v
-ør4rek
-ør4rep
-ørri4
-ør4r5is
-ør4råt
-ør4sak
-ørsa8ka
-ørsa6me.
-ør4sc
-ør6ses
-ør2si
-ør5ski
-ør4skr
-ørs6lev
-ør4som
-ør4spe
-ør2st
-ørs9tar
-ørste5i
-ørs5tens
-ørs5tig
-ør3sto
-ørs9u
-ør2sv
-ørs1å
-ør9tar
-ør4tek
-ør6ti9a
-ør4tide
-ør8tien.
-ør6tif
-ør3to
-ørum5
-ø6rut
-ør5v
-ør1ø2s
-ørø1v
-ør1åp
-ø1sa
-øsa6me.
-ø8sarar
-ø1sc
-ø2se.
-ø2sem
-øse4n5o
-øseri7
-øserie6
-øs5jo
-øs7kar
-øs1l
-øs4lag
-ø4slu
-øs2me
-ø1s2p
-øss8n
-øs8tas
-øst9ast
-øs6teg
-øs5terse
-øst9ett
-østo2
-øst5of
-øst5ov
-øst1r
-øst3re
-østø4
-ø2s1ø2
-4øt
-øt3ak
-ø9tar
-øta4s
-øt5asa
-ø2te.
-ø2tea
-ø6tef
-ø6tege
-ø2tei
-øte5k
-ø2t5eks
-ø2tel
-ø5tela.
-ø3ten
-ø4teni
-ø3ter.
-øte3ru
-ø2te1s
-øte7sn
-ø4teta
-øt7ri
-øt1sa
-øt3s4p
-øt7s6å
-øtså9re
-øt4tero
-øt6test
-øtt5av
-øtt5eks
-øtt5eta
-øtt5ete
-øtt5ra
-øtt7ri
-øtt1s2
-øttså7re
-øt4tur
-øt4ty
-ø1tu
-ø5ty
-ø1u2
-øug8la
-øv5aa
-øv5ans
-øve5in
-ø4vek
-øve5no
-øveren8
-øve1s
-øves4t
-øve3te
-ø5vik
-øv6l7ut
-øv7ne
-øv6nø
-øv9o8
-øv1r
-øv5reb
-øv1s
-øv9sa
-ø5vå
-øy3al
-øya2n
-7øyan.
-9øy8ans
-øy4dek
-øy4dere
-øyd8i
-5øyeb
-øy7e4de
-øy2ee
-øy4ele
-øye4n
-øy4ep
-øy4erf
-øy1gl
-øy3ke.
-øyks4
-øyk5t
-2øyl
-øy4led
-øy4leg
-øy5na
-øy5ni
-øy3o
-6øyp
-øy3pe.
-øy4pel
-øy4ra.
-øy5rer.
-øyri6v
-øy3rø
-øy1s
-øy5s4ar
-øy5si
-øys2l
-øy4sm
-øy4spi
-5øysund
-øy4tei
-øy4tel
-øy4tere
-øyte5s6
-øyti7da
-øy1tr
-øyt5s
-øy2t3y6
-øy5tø
-øy4vei
-5øyvå
-ø1ø2
-ø5å6
-å1a
-åak6ta
-åa4n5
-åan8ka.
-åan6ke.
-å2ar
-å5aran
-åau4re
-å1b4
-åba8ne.
-åber2
-åbo9ta
-6å1d
-å7dan
-å9dar
-å4ded
-å4dek
-å4dem
-å4deo
-å4dep
-å4dere
-å4deri
-å6dero
-å2des
-å7di
-åd4ra
-åd8re
-åds1
-åd2sk
-åd3s4la
-åd7slo
-åd3slå
-åd1s2n
-åd3s4pe
-åd7spu
-åd5st
-åd6s7te
-4å1e
-å2ele
-åem8na
-åe2n
-å7ens
-å3er
-å3e6re.
-å7e8ri
-å1f
-åfe6
-åfø5re
-2åg
-å4ga.
-åg7ald
-å4ge.
-åg7ei
-å2ges
-ågna5
-åg5ne
-åg4r
-åg5rin
-ågs6k
-åg5sl
-åg7sp
-ågs4t
-ågu4l
-åg5ø
-å4gå.
-å1h
-å1i
-å1j
-å1ka
-å3kan
-å3kar
-å4karb
-åk7av
-å4keh
-å3ken
-å4kena
-å4k3enh
-å4kere
-åke5s
-å4kesl
-å5kevi
-å1ki
-å6kid
-å1kj
-åk1k
-åk5ka
-åkk6l
-åk7kr
-åk7lau
-åklist7
-åk3læ
-å1ko
-åk3opp
-åko4s
-åk6ra
-åk5røk
-åk3rå
-åk1s2
-åks7l
-åk3t4
-åku8
-å5k8ul
-åkva8la.
-åkøy8rar.
-å2k3å
-å1la
-å5l6amp
-å6larb
-å9las
-ål5au8
-ål9av
-ål3d
-å2lef
-ål5eini
-å2lek
-å2lem
-å4l5enh
-å4leni
-åle6ris
-å2le1s2
-åle9s6und
-å4lete
-å2lev
-ål5g
-ålgå6
-å6lio
-ål5j
-ålla6ga
-ål3or
-ål4san
-ål4sek
-ål4ser
-åls7i
-ål2sp
-ål4sti
-ålsy8na
-ål5ti
-ålti5d
-ål1u
-ålul8la
-å1ly
-å2l1øy
-åløy4e
-ål5å6k
-ålå8te.
-6åm
-å6me.
-åm4li.
-åm1om
-åm5øy
-8åna
-å3nar
-å9nas
-ånd3r
-ånd4sa
-ånd4se
-ånd4so
-å4ne.
-åned4
-åneds5
-åne5i6
-å2nel
-ånely6
-å5nes.
-å3net
-å4netr
-å3ni
-ån5o
-å9ny
-å3o
-åp2e
-åpe4n3a
-åpe4n5i
-åpen3s
-å5per
-å6pero
-å1pi
-åp6j
-å1pla
-åp4ne.
-åp7p
-å1pr
-åpra5
-åp2s1
-åp6ta
-å4på
-år3ak
-å9ran
-å7rara
-ård5str
-å2re.
-å5rei
-å6rel
-åre7s
-å4rest
-årfi4
-å7riv
-år3k2
-år4le.
-2årn
-årn5s
-år3on
-år3op
-årpo8
-år2s
-års5af
-års3el
-år3sem
-års3ko
-år8sku
-årsla8ga
-år3sol
-års3ta
-år7ste
-års3ti
-år7sto
-år5stu
-års1u
-års1v
-år5sy
-år5u4k
-år3un
-år5y4
-å1rø
-å5r8å
-ås2
-å1sa
-ås7au
-å4se.
-å4see
-ås5eid
-å4sek
-å4sem
-åseri7e6
-åse3s2
-å4sesm
-å4seso
-åse5ta
-ås3h
-å8si.
-ås5ka.
-ås9kene
-ås8ki
-å1skj
-å2s3kjør
-ås7kop
-å1skr
-å5sku
-å1sl
-ås5ne
-ås3ni
-å5so
-å1sp
-ås7pl
-ås5sa
-ås5se
-ås3si
-åss3k
-å8s7s6kå
-4å1st
-å7stei
-åsu4
-ås3un
-ås7ut
-ås7væ
-ås5øy
-åså7
-å1ta
-å4ta.
-åtaks5
-åta2l
-åta9la
-åtale3
-åta5le.
-åta5len
-å4tang
-å4tark
-å4t5arm
-å2te.
-å2tea
-å4tee
-å2t1ei
-åte6ke.
-å4teo
-å9ter
-å2tes
-5åtferd
-å5ti
-åti7da
-2åtn
-å1to
-åt7ov
-6åtp
-åt1re
-åtri6pa.
-åtri8pe.
-åt1ru
-åt5sk
-åt1t
-åt4ted
-åt4ti
-ått3o
-åt4tri
-åtts4
-åt6t5æ
-åt1u
-åt4un
-åtva5ra
-åtva7re
-åt5ve
-å5ty
-åt1øv
-å3u
-åun8ge.
-å1v
-åv4a
-å2ve7d
-å4veg
-åve5l
-å4veni
-å9ver.
-å2vev
-åv7s6
-å7vy
-åvæ4re.
-å1ø8
-åøy4} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-pl.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-pl.hyp
deleted file mode 100644
index e7c40e6d257..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-pl.hyp
+++ /dev/null
@@ -1,27 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-pl.rme
-
-% used: a b c d e g h i j k l m n o p r s t w y z ó ą ł ż
-
-\hyphenation{
-be-zach
-be-zami
-by-naj-mniej
-gdzie-nie-gdzie
-ina-czej
-na-dal
-ni-gdy
-ni-gdzie
-niech-że
-niech-by
-ow-szem
-pó-łach
-pó-łami
-pó-łek
-pod-ów-czas
-przy-naj-mniej
-skąd-inąd
-tró-jach
-tró-jami
-tró-jek} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-pl.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-pl.pat
deleted file mode 100644
index 6934fa4b23a..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-pl.pat
+++ /dev/null
@@ -1,4060 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-pl.rme
-
-% used: a b c d e f g h i j k l m n o p r s t u v w x y z ó ą ć ę ł ń ś ź ż
-
-\patterns{
-.ćć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
-.ad4e
-.ad4i
-.ad4o
-.ad4u
-.ad4y
-.ad5apt
-.ad5iu
-.ad5op
-.ad5or
-.ae3ro
-.aeroa2
-.aeroe2
-.aeroi2
-.aeroo2
-.aerou2
-.antya2
-.antye2
-.antyi2
-.antyo2
-.antyu2
-.arcy3ł2
-.arcy3b2
-.arcy3bz2
-.arcy3k2
-.arcy3m2
-.arcya2
-.arcye2
-.arcyi2
-.arcyo2
-.arcyu2
-.au3g2
-.au3k2
-.au3t2
-.auto3ch2
-.autoa2
-.autoe2
-.autoi2
-.autoo2
-.autotran2s3
-.autou2
-.bć8
-.bł8
-.bń8
-.bś8
-.bź8
-.bż8
-.b8
-.bb8
-.bc8
-.bd8
-.be2z3
-.be3z4an
-.be3z4ec
-.be3z4ik
-.bezch2
-.bezm2
-.bezo2
-.bezo2b1j
-.bezw2
-.bezzw2
-.bf8
-.bg8
-.bh8
-.bj8
-.bk8
-.bl8
-.bm8
-.bn8
-.bp8
-.br8
-.brz8
-.bs8
-.bt8
-.bv8
-.bw8
-.bx8
-.bz8
-.cć8
-.cł8
-.cń8
-.cś8
-.cź8
-.cż8
-.c8
-.cało3ś2
-.cało3k2
-.cb8
-.cc8
-.cd8
-.cf8
-.cg8
-.ch8
-.chrz8
-.cienko3w2
-.ciepło3kr2
-.cj8
-.ck8
-.cl8
-.cm8
-.cn8
-.cp8
-.cr8
-.cs8
-.ct8
-.cv8
-.cw8
-.cx8
-.cz8
-.czarno3k2
-.czk8
-.cztere2ch3
-.czterechse2t3
-.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
-.dc8
-.dd8
-.de2z3
-.de3z4a3bil
-.de3z4a3wu
-.de3z4el
-.de3z4er
-.de3z4y
-.deza2
-.dezo2
-.df8
-.dg8
-.dh8
-.dj8
-.dk8
-.dl8
-.dm8
-.dn8
-.do3ć2
-.do3ł2
-.do3ś2
-.do3ź2
-.do3ż2
-.do3b2
-.do3c2
-.do3d2
-.do3f2
-.do3g2
-.do3h2
-.do3k2
-.do3l2
-.do3m2
-.do3p2
-.do3r2
-.do3s2
-.do3t2
-.do3w2
-.do3z2
-.do4ł3k
-.do4k3t
-.do4l3n
-.do4m3k
-.do4r3s
-.do4w3c
-.do5m4k2n
-.dobr2
-.dobrz2
-.doch2
-.docz2
-.dodź2
-.dodż2
-.dodz2
-.dogrz2
-.dopch2
-.doprz2
-.dorż2
-.dorz2
-.dosch2
-.dosm2
-.dosz2
-.dotk2
-.dotr2
-.dp8
-.dr8
-.drogo3w2
-.drz8
-.ds8
-.dt8
-.dv8
-.dwó2j3
-.dwó3j4ą
-.dwó3j4ę
-.dwó3j4a
-.dwó3j4e
-.dwó3j4o
-.dw8
-.dx8
-.dy2s3
-.dy2z3
-.dy3s4e
-.dy3s4o
-.dy3s4ta
-.dy3s4y
-.dy3sz
-.dy3z4e
-.dyzu2
-.dz8
-.dziesięcio3ś2
-.dziewięćse2t3
-.dziewię2ć3
-.dziewięcio3ś2
-.e2k2s3
-.e2m3e2s5ze2t
-.e2s1e2s1ma
-.e2s1ha
-.e2s1t
-.egoa2
-.egoe2
-.egoi2
-.egoo2
-.egou2
-.eks4y
-.elektroa2
-.elektroe2
-.elektroi2
-.elektroo2
-.elektrou2
-.fć8
-.fł8
-.fń8
-.fś8
-.fź8
-.fż8
-.f8
-.fb8
-.fc8
-.fd8
-.ff8
-.fg8
-.fh8
-.fj8
-.fk8
-.fl8
-.fm8
-.fn8
-.fp8
-.fr8
-.fs8
-.ft8
-.fv8
-.fw8
-.fx8
-.fz8
-.gć8
-.gł8
-.gń8
-.gś8
-.gź8
-.gż8
-.g8
-.gb8
-.gc8
-.gd8
-.ge2o3
-.gf8
-.gg8
-.gh8
-.gj8
-.gk8
-.gl8
-.gm8
-.gn8
-.go2u3
-.gp8
-.gr8
-.grubo3w2
-.grz8
-.gs8
-.gt8
-.gv8
-.gw8
-.gx8
-.gz8
-.hć8
-.hł8
-.hń8
-.hś8
-.hź8
-.hż8
-.h8
-.hb8
-.hc8
-.hd8
-.hf8
-.hg8
-.hh8
-.hipe2r3
-.hipe3r4o
-.hipera2
-.hipere2
-.hj8
-.hk8
-.hl8
-.hm8
-.hn8
-.hp8
-.hr8
-.hs8
-.ht8
-.hv8
-.hw8
-.hx8
-.hz8
-.i2n3
-.i2s3l
-.i3n4ic
-.i3n4o
-.i3n4u
-.i4n5o2k
-.in4f3lan
-.ino3w2
-.izoa2
-.izoe2
-.izoi2
-.izoo2
-.izou2
-.jć8
-.jł8
-.jń8
-.jś8
-.jź8
-.jż8
-.j8
-.jadło3w2
-.jb8
-.jc8
-.jd8
-.jf8
-.jg8
-.jh8
-.jj8
-.jk8
-.jl8
-.jm8
-.jn8
-.jp8
-.jr8
-.js8
-.jt8
-.jv8
-.jw8
-.jx8
-.jz8
-.kć8
-.kł8
-.kń8
-.kś8
-.kź8
-.kż8
-.k8
-.kb8
-.kc8
-.kd8
-.kf8
-.kg8
-.kh8
-.kilkuse2t3
-.kilkuseto2
-.kj8
-.kk8
-.kl8
-.km8
-.kn8
-.koło3w2
-.kon2t2r3
-.kon3tr4a
-.kon3tr4e
-.kon3tr4o3l
-.kon3tr4o3w
-.kon3tr4y
-.kon4tr5a2gi
-.kon4tr5a2se
-.kon4tr5a2sy
-.kon4tr5a2ta
-.kon4tr5adm
-.kon4tr5akc
-.kon4tr5alt
-.kon4tr5arg
-.kontro2
-.kontru2
-.kp8
-.krótko3tr2
-.krótko3w2
-.kr8
-.kro2ć3
-.krz8
-.ks8
-.kt8
-.kv8
-.kw8
-.kx8
-.kz8
-.lć8
-.lł8
-.lń8
-.lś8
-.lź8
-.lż8
-.l8
-.lb8
-.lc8
-.ld8
-.lf8
-.lg8
-.lh8
-.lj8
-.lk8
-.ll8
-.lm8
-.ln8
-.lp8
-.lr8
-.ls8
-.lt8
-.ludo3w2
-.lv8
-.lw8
-.lx8
-.lz8
-.mć8
-.mł8
-.mń8
-.mś8
-.mź8
-.mż8
-.m8
-.mb8
-.mc8
-.md8
-.mf8
-.mg8
-.mh8
-.mili3amp
-.mj8
-.mk8
-.ml8
-.mm8
-.mn8
-.możno3w2
-.mp8
-.mr8
-.ms8
-.mt8
-.mv8
-.mw8
-.mx8
-.mz8
-.nć8
-.nł8
-.nń8
-.nś8
-.nź8
-.nż8
-.n8
-.na2d2
-.na2j
-.na3ć2
-.na3ł2
-.na3ś2
-.na3ź2
-.na3ż2
-.na3b2
-.na3c2
-.na3dą
-.na3dę
-.na3dź2
-.na3d4łub
-.na3d4ir
-.na3d4much
-.na3d4ręcz
-.na3d4r2w
-.na3d4repcz
-.na3d4rept
-.na3d4ruk
-.na3d4rz
-.na3d4worn
-.na3daj
-.na3de
-.na3do
-.na3dy
-.na3dzi
-.na3f2
-.na3g2
-.na3h2
-.na3ją
-.na3ję
-.na3jazd
-.na3je
-.na3k2
-.na3l2
-.na3m2
-.na3p2
-.na3r2
-.na3s2
-.na3t2
-.na3u2
-.na3w2
-.na3z2
-.na4d3o2b2ł
-.na4d3o2bojcz
-.na4d3o2bowi
-.na4d3o2brot
-.na4d3o2drz
-.na4d3o2kien
-.na4d3olbrz
-.na4d5rzą
-.na4d5rzę
-.na4d5rzecz
-.na4d5rzy
-.na4d5ziem
-.na4f3c
-.na4f3t
-.na4j3e2f
-.na4j3e2g
-.na4j3e2k2s
-.na4j3e2ko
-.na4j3e2n
-.na4j3e2r
-.na4j3e2s
-.na4j3e2w
-.na4j3emf
-.na4j3eu
-.na4r3c
-.na4r3d
-.na4r3k
-.na4r3r
-.na4r3t
-.nabrz2
-.nach2
-.nacz2
-.nadśrod5ziem
-.nad3ć2
-.nad3ł2
-.nad3ś2
-.nad3b2
-.nad3c2
-.nad3d2
-.nad3e2tat
-.nad3f2
-.nad3g2
-.nad3h2
-.nad3i2
-.nad3j2
-.nad3k2
-.nad3l2
-.nad3m2
-.nad3n2
-.nad3p2
-.nad3r2
-.nad3s2
-.nad3t2
-.nad3u2
-.nad3w2
-.nad5ż2
-.nad5zó
-.nad5z2mys
-.nad5zo
-.nad5zwycz
-.nadch2
-.nadcz2
-.naddź2
-.nade3ć2
-.nade3ł2
-.nade3ś2
-.nade3ź2
-.nade3ż2
-.nade3b2
-.nade3c2
-.nade3d2
-.nade3f2
-.nade3g2
-.nade3h2
-.nade3k2
-.nade3l2
-.nade3m2
-.nade3p2
-.nade3r2
-.nade3s2
-.nade3t2
-.nade3w2
-.nade3z2
-.nade4p3c
-.nade4p3n
-.nade4p3t
-.nadech2
-.nadecz2
-.nadedź2
-.nadedż2
-.nadedz2
-.naderż2
-.naderz2
-.nadesz2
-.nadsz2
-.nadtr2
-.nadz2
-.nagrz2
-.naj3ć2
-.naj3ł2
-.naj3ś2
-.naj3ź2
-.naj3ż2
-.naj3akt
-.naj3au
-.naj3b2
-.naj3c2
-.naj3d2
-.naj3f2
-.naj3g2
-.naj3h2
-.naj3i2
-.naj3k2
-.naj3l2
-.naj3m2
-.naj3o2
-.naj3o2ć2
-.naj3o2ł2
-.naj3o2ś2
-.naj3o2ź2
-.naj3o2ż2
-.naj3o2b2
-.naj3o2c2
-.naj3o2d2
-.naj3o2f2
-.naj3o2g2
-.naj3o2h2
-.naj3o2k2
-.naj3o2l2
-.naj3o2m2
-.naj3o2p2
-.naj3o2r2
-.naj3o2s2
-.naj3o2t2
-.naj3o2w2
-.naj3o2z2
-.naj3p2
-.naj3r2
-.naj3ro2z3
-.naj3s2
-.naj3t2
-.naj3u2
-.naj3w2
-.naj3z2
-.najbe2z3
-.najbezw2
-.najch2
-.najcz2
-.najdź2
-.najdż2
-.najdo3ć2
-.najdo3ł2
-.najdo3ś2
-.najdo3ź2
-.najdo3ż2
-.najdo3b2
-.najdo3c2
-.najdo3d2
-.najdo3f2
-.najdo3g2
-.najdo3h2
-.najdo3k2
-.najdo3l2
-.najdo3m2
-.najdo3p2
-.najdo3r2
-.najdo3s2
-.najdo3t2
-.najdo3w2
-.najdo3z2
-.najdoch2
-.najdocz2
-.najdodź2
-.najdodż2
-.najdodz2
-.najdorz2
-.najdosz2
-.najdotk2
-.najdz2
-.najkr2
-.najob3ć2
-.najob3ł2
-.najob3ś2
-.najob3ź2
-.najob3ż2
-.najob3c2
-.najob3d2
-.najob3f2
-.najob3g2
-.najob3h2
-.najob3j2
-.najob3k2
-.najob3l2
-.najob3m2
-.najob3n2
-.najob3p2
-.najob3s2
-.najob3t2
-.najob3w2
-.najobch2
-.najobcz2
-.najobdź2
-.najobdż2
-.najobdz2
-.najobrz2
-.najobsz2
-.najoch2
-.najocz2
-.najodź2
-.najod3ć2
-.najod3ś2
-.najod3c2
-.najod3d2
-.najod3f2
-.najod3g2
-.najod3h2
-.najod3j2
-.najod3k2
-.najod3l2
-.najod3m2
-.najod3n2
-.najod3p2
-.najod3s2
-.najod3t2
-.najod3w2
-.najod5ż2
-.najodch2
-.najodcz2
-.najoddź2
-.najoddż2
-.najoddz2
-.najodsz2
-.najodz2
-.najorz2
-.najosz2
-.najro3z4u
-.najrz2
-.najsm2
-.najsz2
-.najtk2
-.najtr2
-.najucz2
-.najzw2
-.nakr2
-.napo2d2
-.napo3ć2
-.napo3ł2
-.napo3ś2
-.napo3ź2
-.napo3ż2
-.napo3b2
-.napo3c2
-.napo3f2
-.napo3g2
-.napo3h2
-.napo3k2
-.napo3l2
-.napo3m2
-.napo3p2
-.napo3r2
-.napo3s2
-.napo3t2
-.napo3w2
-.napo3z2
-.napo4m3p
-.napoch2
-.napocz2
-.napodź2
-.napodż2
-.napod3d
-.napomk2
-.naporz2
-.naposz2
-.naprz2
-.narż2
-.naro2z3
-.narz2
-.nasm2
-.nasz2
-.natch2
-.natk2
-.naz3m2
-.nazw2
-.nb8
-.nc8
-.nd8
-.ne2o3
-.nf8
-.ng8
-.nh8
-.nie3ć2
-.nie3ł2
-.nie3ś2
-.nie3ź2
-.nie3ż2
-.nie3b2
-.nie3c2
-.nie3d2
-.nie3f2
-.nie3g2
-.nie3h2
-.nie3k2
-.nie3l2
-.nie3m2
-.nie3p2
-.nie3r2
-.nie3s2
-.nie3t2
-.nie3u2
-.nie3w2
-.nie3z2
-.nie4c3c
-.nie4c3k
-.nie4dź3
-.nie4m3c
-.nie4m3k
-.niech2
-.niecz2
-.niedż2
-.niedo3ć2
-.niedo3ł2
-.niedo3ś2
-.niedo3ź2
-.niedo3ż2
-.niedo3b2
-.niedo3c2
-.niedo3d2
-.niedo3f2
-.niedo3g2
-.niedo3h2
-.niedo3k2
-.niedo3l2
-.niedo3m2
-.niedo3p2
-.niedo3r2
-.niedo3s2
-.niedo3t2
-.niedo3w2
-.niedo3z2
-.niedobrz2
-.niedoch2
-.niedocz2
-.niedodź2
-.niedodż2
-.niedodz2
-.niedokr2
-.niedomk2
-.niedopch2
-.niedorz2
-.niedosz2
-.niedotk2
-.niedz2
-.nieoć2
-.nieoł2
-.nieoś2
-.nieoź2
-.nieoż2
-.nieo2
-.nieob2
-.nieob3ć2
-.nieob3ś2
-.nieob3ź2
-.nieob3ż2
-.nieob3c2
-.nieob3d2
-.nieob3f2
-.nieob3g2
-.nieob3h2
-.nieob3j2
-.nieob3k2
-.nieob3m2
-.nieob3p2
-.nieob3s2
-.nieob3w2
-.nieobch2
-.nieobcz2
-.nieobdź2
-.nieobdż2
-.nieobdz2
-.nieobsz2
-.nieoc2
-.nieoch2
-.nieocz2
-.nieodź2
-.nieod2
-.nieod3ć2
-.nieod3ł2
-.nieod3ś2
-.nieod3c2
-.nieod3d2
-.nieod3f2
-.nieod3g2
-.nieod3h2
-.nieod3j2
-.nieod3k2
-.nieod3l2
-.nieod3n2
-.nieod3p2
-.nieod3s2
-.nieod3t2
-.nieod3wr
-.nieod5ż2
-.nieodch2
-.nieodcz2
-.nieoddź2
-.nieoddż2
-.nieoddz2
-.nieodsz2
-.nieodw2
-.nieodz2
-.nieof2
-.nieog2
-.nieoh2
-.nieok2
-.nieol2
-.nieom2
-.nieop2
-.nieor2
-.nieorz2
-.nieos2
-.nieosz2
-.nieot2
-.nieow2
-.nieoz2
-.niepo2d2
-.niepo3ć2
-.niepo3ł2
-.niepo3ś2
-.niepo3ź2
-.niepo3ż2
-.niepo3b2
-.niepo3c2
-.niepo3dź2
-.niepo3d4łu
-.niepo3d4much
-.niepo3d4ręcz
-.niepo3d4raż
-.niepo3d4rap
-.niepo3d4repcz
-.niepo3d4rept
-.niepo3d4waj
-.niepo3d4woj
-.niepo3do
-.niepo3du
-.niepo3dz2
-.niepo3f2
-.niepo3g2
-.niepo3h2
-.niepo3k2
-.niepo3l2
-.niepo3m2
-.niepo3p2
-.niepo3r2
-.niepo3s2
-.niepo3t2
-.niepo3w2
-.niepo3z2
-.niepo4d3o2choc
-.niepo4d3o2strz
-.niepoch2
-.niepocz2
-.niepod3ć2
-.niepod3ł2
-.niepod3ś2
-.niepod3b2
-.niepod3c2
-.niepod3d2
-.niepod3f2
-.niepod3g2
-.niepod3h2
-.niepod3j2
-.niepod3k2
-.niepod3l2
-.niepod3m2
-.niepod3n2
-.niepod3p2
-.niepod3r2
-.niepod3s2
-.niepod3t2
-.niepod3w2
-.niepod5ż
-.niepodch2
-.niepodcz2
-.niepoddź2
-.niepoddż2
-.niepodsm2
-.niepodsz2
-.nieporz2
-.nieposm2
-.nieposz2
-.nieprzełk2
-.nieprze2d2
-.nieprze3ć2
-.nieprze3ł2
-.nieprze3ś2
-.nieprze3ź2
-.nieprze3ż2
-.nieprze3b2
-.nieprze3brz2
-.nieprze3c2
-.nieprze3dź2
-.nieprze3d4łuż
-.nieprze3d4much
-.nieprze3d4ramat
-.nieprze3d4ruk
-.nieprze3d4ryl
-.nieprze3d4rz2
-.nieprze3d4um
-.nieprze3dy
-.nieprze3dz2
-.nieprze3e2k2s3
-.nieprze3f2
-.nieprze3g2
-.nieprze3h2
-.nieprze3k2
-.nieprze3l2
-.nieprze3m2
-.nieprze3n2
-.nieprze3p2
-.nieprze3r2
-.nieprze3s2
-.nieprze3t2
-.nieprze3w2
-.nieprze3z2
-.nieprze4d5łużyc
-.nieprze4d5ż2
-.nieprze4d5z2a
-.nieprze4d5zg2
-.nieprze4d5zim
-.nieprze4d5zj
-.nieprze4d5zl
-.nieprze4d5zw2r
-.nieprze4d5zwoj
-.nieprzech2
-.nieprzecz2
-.nieprzed3ć2
-.nieprzed3ł2
-.nieprzed3ś2
-.nieprzed3c2
-.nieprzed3d2
-.nieprzed3f2
-.nieprzed3g2
-.nieprzed3h2
-.nieprzed3i2
-.nieprzed3j2
-.nieprzed3k2
-.nieprzed3l2
-.nieprzed3m2
-.nieprzed3n2
-.nieprzed3p2
-.nieprzed3r2
-.nieprzed3s2
-.nieprzed3sz2
-.nieprzed3t2
-.nieprzed3u2
-.nieprzed3w2
-.nieprzedch2
-.nieprzedcz2
-.nieprzeddź2
-.nieprzeddż2
-.nieprzeddz2
-.nieprzegrz2
-.nieprzekl2
-.nieprzekr2
-.nieprzepch2
-.nieprzerż2
-.nieprzerz2
-.nieprzesch2
-.nieprzesm2
-.nieprzesz2
-.nieprzetk2
-.nieprzetr2
-.niero2z3
-.niero3z4e
-.niero3z4u
-.nierozś2
-.nierozbrz2
-.nieroze3r2
-.nierozm2
-.nieroztr2
-.nierz2
-.niesu2b3
-.niesu3b4ie
-.niesz2
-.nietk2
-.nietr2
-.nieucz2
-.nieuw2
-.niewy3ć2
-.niewy3ł2
-.niewy3ś2
-.niewy3ź2
-.niewy3ż2
-.niewy3b2
-.niewy3c2
-.niewy3d2
-.niewy3f2
-.niewy3g2
-.niewy3h2
-.niewy3k2
-.niewy3l2
-.niewy3m2
-.niewy3p2
-.niewy3r2
-.niewy3s2
-.niewy3t2
-.niewy3w2
-.niewy3z2
-.niewybrz2
-.niewych2
-.niewycz2
-.niewydź2
-.niewydż2
-.niewydz2
-.niewyrz2
-.niewysz2
-.niewytk2
-.niewytr2
-.niezw2
-.nj8
-.nk8
-.nl8
-.nm8
-.nn8
-.np8
-.nr8
-.ns8
-.nt8
-.nv8
-.nw8
-.nx8
-.nz8
-.oć2
-.oś2
-.ośmio3ś2
-.oź2
-.oż2
-.o2b2
-.o2d2
-.o2t3chł
-.o3b4łą
-.o3b4łę
-.o3b4łoc
-.o3b4luzg
-.o3b4rać
-.o3b4raso
-.o3b4roń
-.o3b4ron
-.o3b4ryź
-.o3b4ryz
-.o3b4rz2
-.o3be
-.o3bi
-.o3d4iu
-.o3d4ręt
-.o3d4rap
-.o3d4robin
-.o3d4rut
-.o3d4rwi
-.o3d4rzeć
-.o3d4rzw
-.o3d6zia
-.o3d6zie
-.o3de
-.o3l2śn
-.o4b5łocz
-.o4b5rzą
-.o4b5rzęd
-.o4b5rzez
-.o4b5rzuc
-.o4b5rzut
-.o4b5rzyn
-.o4d7ziar
-.o4d7ziem
-.oa3z
-.ob3ć2
-.ob3ł2
-.ob3ś2
-.ob3ź2
-.ob3ż2
-.ob3c2
-.ob3d2
-.ob3f2
-.ob3g2
-.ob3h2
-.ob3j2
-.ob3k2
-.ob3l2
-.ob3m2
-.ob3n2
-.ob3o2strz
-.ob3p2
-.ob3r
-.ob3s2
-.ob3t2
-.ob3u2m2
-.ob3w2
-.obch2
-.obcz2
-.obdź2
-.obdż2
-.obdz2
-.obe3ć2
-.obe3ł2
-.obe3ś2
-.obe3ź2
-.obe3ż2
-.obe3b2
-.obe3c2
-.obe3d2
-.obe3f2
-.obe3g2
-.obe3h2
-.obe3k2
-.obe3l2
-.obe3m2
-.obe3p2
-.obe3r2
-.obe3r3t
-.obe3s2
-.obe3t2
-.obe3w2
-.obe3z2
-.obe4c3n
-.obe4z3w
-.obech2
-.obecz2
-.obedź2
-.obedż2
-.obedz2
-.oberż2
-.ober3m
-.oberz2
-.obesch2
-.obesz2
-.obetk2
-.obi3b2
-.obsz2
-.oc2
-.och2
-.ochrz2
-.ocz2
-.odź2
-.od3ć2
-.od3ś2
-.od3au
-.od3b2
-.od3c2
-.od3d2
-.od3f2
-.od3g2
-.od3h2
-.od3i2
-.od3i2zo
-.od3j2
-.od3k2
-.od3l2
-.od3m2
-.od3n2
-.od3o2s
-.od3p2
-.od3r2
-.od3s2
-.od3t2
-.od3u2cz
-.od3u2m2
-.od3w2
-.od5ż2
-.od5z2
-.odbe2z3
-.odch2
-.odcz2
-.oddź2
-.oddż2
-.oddz2
-.ode3ć2
-.ode3ł2
-.ode3ś2
-.ode3ź2
-.ode3ż2
-.ode3b2
-.ode3c2
-.ode3d2
-.ode3f2
-.ode3g2
-.ode3h2
-.ode3k2
-.ode3l2
-.ode3m2
-.ode3mk2
-.ode3p2
-.ode3r2
-.ode3s2
-.ode3t2
-.ode3w2
-.ode3z2
-.odech2
-.odecz2
-.odedź2
-.odedż2
-.odedz2
-.odepch2
-.oderż2
-.oderz2
-.odesz2
-.odetch2
-.odetk2
-.odkrz2
-.odrz2
-.odsz2
-.of2
-.ogólno3k2
-.og2
-.ognio3tr2
-.oh2
-.ok2
-.oka3m2
-.okr2
-.ole2o3
-.om2
-.op2
-.opch2
-.or2ż2
-.or2tę
-.or2z2
-.os2
-.osie2m3
-.osiemse2t3
-.osz2
-.ot2
-.ow2
-.oz2
-.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łno3kr2
-.pe2r3
-.pe3c2k
-.pe3r4e
-.pe3r4i
-.pe3r4o
-.pe3r4u
-.pe3r4y
-.pe4r5i2n
-.pee2se2l
-.pepee2r
-.pepee2s
-.peze2t1pee2r
-.pf8
-.pg8
-.ph8
-.pięćse2t3
-.pię2ć3
-.pięcio3ś2
-.pierwo3w2
-.piono3w2
-.pj8
-.pk8
-.pl8
-.pm8
-.pn8
-.połk2
-.po2d2
-.po3ć2
-.po3ł2
-.po3ś2
-.po3ź2
-.po3ż2
-.po3b2
-.po3c2
-.po3dą
-.po3dę
-.po3dź2
-.po3d4łu
-.po3d4much
-.po3d4naw
-.po3d4ręcz
-.po3d4rętw
-.po3d4róż
-.po3d4r2wi
-.po3d4raż
-.po3d4rap
-.po3d4repcz
-.po3d4rept
-.po3d4roż
-.po3d4robó
-.po3d4roba
-.po3d4robo
-.po3d4roby
-.po3d4rocz
-.po3d4ruzg
-.po3d4ryg
-.po3d4rze
-.po3d4wójn
-.po3d4wór
-.po3d4waj
-.po3d4woi
-.po3d4woj
-.po3d4worz
-.po3da
-.po3de
-.po3dej
-.po3diu
-.po3do
-.po3du
-.po3dy
-.po3dz2
-.po3e2k2s3
-.po3f2
-.po3g2
-.po3h2
-.po3k2
-.po3l2
-.po3m2
-.po3p2
-.po3rż
-.po3r2
-.po3s2
-.po3t2
-.po3w2
-.po3z2
-.po4ń3c
-.po4cz3d
-.po4cz3t
-.po4d3ów
-.po4d3e4k2s3
-.po4d3o2bóz
-.po4d3o2biad
-.po4d3o2bojcz
-.po4d3o2braz
-.po4d3o2choc
-.po4d3o2dm
-.po4d3o2f
-.po4d3o2g
-.po4d3o2kien
-.po4d3o2kn
-.po4d3o2kręg
-.po4d3o2kres
-.po4d3o2piecz
-.po4d3o2ryw
-.po4d3o2siniak
-.po4d3o2strz
-.po4d3obsz
-.po4d3odd
-.po4d3olbrz
-.po4d3u2cz
-.po4d3u2dz
-.po4d3u2pa
-.po4d3u2ral
-.po4d3u2sta
-.po4d3u2szcz
-.po4d5ręczn
-.po4d5zakr
-.po4d5zam
-.po4d5zast
-.po4d5zbi
-.po4d5ze
-.po4d5zielenią
-.po4d5zielenić
-.po4d5zielenię
-.po4d5zielenił
-.po4d5zielenic
-.po4d5zielenien
-.po4d5zielenil
-.po4d5zielenim
-.po4d5zielenio
-.po4d5zielenis
-.po4d5ziem
-.po4d5ziom
-.po4d5zw2r
-.po4l3s
-.po4m3p
-.po4r3c
-.po4r3f
-.po4r3n
-.po4r3t
-.po4st3d
-.po4st3f
-.po4st3g
-.po4st3h
-.po4st3i2
-.po4st3k
-.po4st3l
-.po4st3m
-.po4st3p
-.po4st3rom
-.po4st3s
-.po5d4uszczyn
-.po5r4tę
-.pobr2
-.pobrz2
-.poch2
-.pochrz2
-.pocz2
-.pod3ć2
-.pod3ł2
-.pod3ś2
-.pod3śró2d5
-.pod3alp
-.pod3b2
-.pod3c2
-.pod3d2
-.pod3f2
-.pod3g2
-.pod3h2
-.pod3i2n
-.pod3j2
-.pod3k2
-.pod3l2
-.pod3m2
-.pod3n2
-.pod3p2
-.pod3r2
-.pod3s2
-.pod3t2
-.pod3w2
-.pod5ż2
-.podch2
-.podcz2
-.poddź2
-.poddż2
-.pode3ć2
-.pode3ł2
-.pode3ś2
-.pode3ź2
-.pode3ż2
-.pode3b2
-.pode3c2
-.pode3d2
-.pode3f2
-.pode3g2
-.pode3h2
-.pode3k2
-.pode3l2
-.pode3m2
-.pode3p2
-.pode3r2
-.pode3s2
-.pode3t2
-.pode3tk2
-.pode3w2
-.pode3z2
-.podech2
-.podecz2
-.podedź2
-.podedż2
-.podedz2
-.podepch2
-.poderż2
-.poderz2
-.podesch2
-.podesz2
-.podro2z3
-.podsm2
-.podsz2
-.pogrz2
-.pokl2
-.pokr2
-.pom4pk
-.pomk2
-.pona2d2
-.pona3ć2
-.pona3ł2
-.pona3ś2
-.pona3ź2
-.pona3ż2
-.pona3b2
-.pona3c2
-.pona3cz2
-.pona3dź2
-.pona3do
-.pona3f2
-.pona3g2
-.pona3h2
-.pona3k2
-.pona3l2
-.pona3m2
-.pona3p2
-.pona3r2
-.pona3s2
-.pona3t2
-.pona3w2
-.pona3z2
-.pona4f3t
-.ponabrz2
-.ponach2
-.ponad3ć2
-.ponad3ś2
-.ponad3c2
-.ponad3ch2
-.ponad3cz2
-.ponad3dź2
-.ponad3f2
-.ponad3g2
-.ponad3h2
-.ponad3j2
-.ponad3k2
-.ponad3l2
-.ponad3p2
-.ponad3s2
-.ponad3t2
-.ponadz2
-.ponarz2
-.ponasm2
-.ponasz2
-.ponaz3m2
-.ponazw2
-.ponie3k2
-.ponie3w2
-.popch2
-.popo3w2
-.poprz2
-.por4t1w
-.por4tf
-.por4tm
-.poro2z3
-.poro3z4u
-.porz2
-.posch2
-.posm2
-.posz2
-.potk2
-.potr2
-.poz4m2
-.poza3u2
-.pozw2
-.pp8
-.pr8
-.pra3s2
-.pra3w2nu
-.pra3w2z
-.prapra3w2nu
-.predy2s3po
-.prz8
-.przełk2
-.prze2d2
-.prze3ć2
-.prze3ł2
-.prze3ś2
-.prze3ź2
-.prze3ż2
-.prze3b2
-.prze3c2
-.prze3dą
-.prze3dę
-.prze3dź2
-.prze3d4łuż
-.prze3d4much
-.prze3d4o3br
-.prze3d4o3st
-.prze3d4o3zo
-.prze3d4ramat
-.prze3d4ruk
-.prze3d4ryl
-.prze3d4rz2
-.prze3d4um
-.prze3dy
-.prze3dz2
-.prze3e2k2s3
-.prze3f2
-.prze3g2
-.prze3h2
-.prze3k2
-.prze3l2
-.prze3m2
-.prze3n2
-.prze3p2
-.prze3r2
-.prze3s2
-.prze3t2
-.prze3u2
-.prze3w2
-.prze3z2
-.prze4d5łużyc
-.prze4d5ż2
-.prze4d5o4stat
-.prze4d5za
-.prze4d5zg2
-.prze4d5zim
-.prze4d5zj
-.prze4d5zl
-.prze4d5zw2r
-.prze4d5zwoj
-.przebr2
-.przebrz2
-.przech2
-.przechrz2
-.przeci2w3
-.przeci3w4ie
-.przeciwa2
-.przeciww2
-.przecz2
-.przed3ć2
-.przed3ł2
-.przed3ś2
-.przed3a2gon
-.przed3a2kc
-.przed3alp
-.przed3b2
-.przed3c2
-.przed3d2
-.przed3e2gz
-.przed3e2mer
-.przed3f2
-.przed3g2
-.przed3h2
-.przed3i2
-.przed3j2
-.przed3k2
-.przed3l2
-.przed3m2
-.przed3n2
-.przed3o2
-.przed3p2
-.przed3r2
-.przed3s2
-.przed3się3w2
-.przed3sz2
-.przed3t2
-.przed3u2
-.przed3w2
-.przedch2
-.przedcz2
-.przeddź2
-.przeddż2
-.przeddz2
-.przedgrz2
-.przedy2s3ku
-.przegrz2
-.przekl2
-.przekr2
-.przemk2
-.przepch2
-.przerż2
-.przerz2
-.przesch2
-.przesm2
-.przesz2
-.przetk2
-.przetr2
-.przetran2s3
-.przy3ć2
-.przy3ł2
-.przy3ś2
-.przy3ź2
-.przy3ż2
-.przy3b2
-.przy3c2
-.przy3d2
-.przy3f2
-.przy3g2
-.przy3h2
-.przy3k2
-.przy3l2
-.przy3m2
-.przy3p2
-.przy3r2
-.przy3s2
-.przy3t2
-.przy3w2
-.przy3z2
-.przybr2
-.przych2
-.przycz2
-.przydź2
-.przydż2
-.przydz2
-.przygrz2
-.przymk2
-.przyoz2
-.przypch2
-.przyrż2
-.przyrz2
-.przysch2
-.przysz2
-.przytk2
-.ps8
-.pt8
-.pv8
-.pw8
-.px8
-.pz8
-.rć8
-.rł8
-.rń8
-.rś8
-.rź8
-.rż8
-.r8
-.rb8
-.rc8
-.rd8
-.retran2s3
-.rf8
-.rg8
-.rh8
-.rj8
-.rk8
-.rl8
-.rm8
-.rn8
-.ro2z3
-.ro3z4a
-.ro3z4e
-.ro3z4e3ć2
-.ro3z4e3ł2
-.ro3z4e3ś2
-.ro3z4e3ź2
-.ro3z4e3ż2
-.ro3z4e3b2
-.ro3z4e3c2
-.ro3z4e3d2
-.ro3z4e3f2
-.ro3z4e3g2
-.ro3z4e3h2
-.ro3z4e3k2
-.ro3z4e3l2
-.ro3z4e3m2
-.ro3z4e3p2
-.ro3z4e3r2
-.ro3z4e3s2
-.ro3z4e3t2
-.ro3z4e3w2
-.ro3z4e3z2
-.ro3z4ej
-.ro3z4u
-.ro4z5a2gi
-.ro4z5a2nie
-.ro4z5e2mo
-.ro4z5e4g3z
-.ro4z5e4n3t
-.rozś2
-.rozbrz2
-.rozd2
-.rozech2
-.rozecz2
-.rozedź2
-.rozedż2
-.rozedz2
-.rozepch2
-.rozerż2
-.rozerz2
-.rozesch2
-.rozesz2
-.rozi2
-.rozm2
-.rozo2
-.rozpo3w2
-.rozt2
-.roztr2
-.rozw2
-.rp8
-.rr8
-.rs8
-.rt8
-.rv8
-.rw8
-.rx8
-.rz8
-.sć8
-.sł8
-.sń8
-.sś8
-.sź8
-.sż8
-.s8
-.samo3ch2
-.samo3k2
-.samo3p2
-.samo3w2
-.samoro2z3
-.sb8
-.sc8
-.sch8
-.sd8
-.sf8
-.sg8
-.sh8
-.siede2m3
-.siedemse2t3
-.siedmio3ś2
-.sj8
-.ską2d5że
-.sk8
-.skl8
-.skr8
-.sl8
-.sm8
-.sn8
-.sobo3w2
-.spó2ł3
-.sp8
-.spo2d2
-.spo3ć2
-.spo3ł2
-.spo3ś2
-.spo3ź2
-.spo3ż2
-.spo3b2
-.spo3c2
-.spo3dz2
-.spo3f2
-.spo3g2
-.spo3h2
-.spo3k2
-.spo3l2
-.spo3m2
-.spo3p2
-.spo3r2
-.spo3s2
-.spo3t2
-.spo3w2
-.spo3z2
-.spo4r3n
-.spo4r3t
-.spoch2
-.spocz2
-.spodź2
-.spodż2
-.spod3d
-.sporz2
-.sposz2
-.sr8
-.ss8
-.st8
-.stere2o3
-.stereoa2
-.stereoe2
-.stereoi2
-.stereoo2
-.stereou2
-.su2b3
-.su3b4ie
-.su3b4otn
-.supe2r3
-.supe3r4at
-.supe3r4io
-.supe4r5a2tr
-.super5z2b
-.supere2
-.supero2d1rzut
-.sv8
-.sw8
-.sx8
-.sz8
-.sześćse2t3
-.sześcio3ś2
-.sze2ś2ć3
-.sze2s3
-.tć8
-.tł8
-.tń8
-.tś8
-.tź8
-.tż8
-.t8
-.ta2o3
-.ta2r7zan
-.tb8
-.tc8
-.tch8
-.td8
-.te2o3
-.tf8
-.tg8
-.th8
-.tj8
-.tk8
-.tl8
-.tm8
-.tn8
-.toa3
-.tp8
-.tró2j3
-.tró3j4ą
-.tró3j4ę
-.tró3j4ecz
-.tr8
-.tran2s3
-.tran3s4e
-.tran3s4ie
-.tran3s4y
-.tran3sz
-.tran4s5eu
-.transa2
-.transo2
-.trz8
-.trze2ch3
-.trzechse2t3
-.ts8
-.tt8
-.tv8
-.tw8
-.tx8
-.tysią2c3
-.tysią3c4a
-.tysią3c4e
-.tysią3cz
-.tysią4c5zł
-.tz8
-.uć2
-.uś2
-.u3ł2
-.u3ź2
-.u3ż2
-.u3b2
-.u3c2
-.u3d2
-.u3f2
-.u3g2
-.u3h2
-.u3k2
-.u3l2
-.u3m2
-.u3n2
-.u3p2
-.u3r2
-.u3s2
-.u3t2
-.u3w2
-.u3z2
-.u4d3k
-.u4f3n
-.u4k3lej
-.u4l3s
-.u4l3t
-.u4m3br
-.u4n3c
-.u4n3d
-.u4p3p2s
-.u4r3s
-.u4st3n
-.u4stc
-.u4stk
-.u4z3be
-.ube2z3
-.ubezw2
-.ubr2
-.uch2
-.ucz2
-.udź2
-.udż2
-.udz2
-.ukr2
-.umk2
-.upch2
-.upo2d2
-.upo3ć2
-.upo3ł2
-.upo3ś2
-.upo3ź2
-.upo3ż2
-.upo3b2
-.upo3c2
-.upo3da
-.upo3f2
-.upo3g2
-.upo3h2
-.upo3k2
-.upo3l2
-.upo3m2
-.upo3p2
-.upo3r2
-.upo3s2
-.upo3t2
-.upo3w2
-.upo3z2
-.upoch2
-.upocz2
-.upodź2
-.upodż2
-.upod3d
-.uporz2
-.uposz2
-.urż2
-.uro2z3
-.urz2
-.usch2
-.usz2
-.utk2
-.utr2
-.uze3w2
-.vć8
-.vł8
-.vń8
-.vś8
-.vź8
-.vż8
-.v8
-.vb8
-.vc8
-.vd8
-.vf8
-.vg8
-.vh8
-.vj8
-.vk8
-.vl8
-.vm8
-.vn8
-.vp8
-.vr8
-.vs8
-.vt8
-.vv8
-.vw8
-.vx8
-.vz8
-.wć8
-.wł8
-.wń8
-.wś8
-.wź8
-.wż8
-.w8
-.wb8
-.wc8
-.wd8
-.we3ć2
-.we3ł2
-.we3ś2
-.we3ż2
-.we3b2
-.we3c2
-.we3d2
-.we3f2
-.we3g2
-.we3h2
-.we3k2
-.we3l2
-.we3m2
-.we3n2
-.we3p2
-.we3r2
-.we3s2
-.we3t2
-.we3w2
-.we3z2
-.we4ł3n
-.we4k3t
-.we4l3w
-.we4n3d
-.we4n3t
-.we4r3b
-.we4r3d
-.we4r3n
-.we4r3s
-.we4r3t
-.we4s3prz
-.we4s3tch2
-.we4z3br
-.we4z3gł
-.wech2
-.wecz2
-.wedź2
-.wedż2
-.wedz2
-.wemk2
-.wepch2
-.werz2
-.wesz2
-.wetk2
-.wewną2trz3
-.wf8
-.wg8
-.wh8
-.wielo3ś2
-.wielo3d2
-.wielo3k2
-.wieluse2t3
-.wilczo3m2
-.wj8
-.wk8
-.wl8
-.wm8
-.wn8
-.wniebo3w2
-.wodo3w2
-.wp8
-.wr8
-.ws8
-.współi2
-.współo2b3w
-.współu2
-.współw2
-.wspó2ł3
-.wsze2ch3
-.wszecho2
-.wszechw2
-.wt8
-.wv8
-.ww8
-.wx8
-.wy3ć2
-.wy3ł2
-.wy3ś2
-.wy3ź2
-.wy3ż2
-.wy3b2
-.wy3c2
-.wy3d2
-.wy3f2
-.wy3g2
-.wy3h2
-.wy3k2
-.wy3l2
-.wy3m2
-.wy3o2d3r
-.wy3p2
-.wy3r2
-.wy3s2
-.wy3t2
-.wy3w2
-.wy3z2
-.wy4ż3sz
-.wy4cz3ha
-.wybr2
-.wybrz2
-.wych2
-.wycz2
-.wydź2
-.wydż2
-.wydr2
-.wydz2
-.wye2k2s3
-.wygrz2
-.wyi2zo
-.wykl2
-.wykr2
-.wykrz2
-.wymk2
-.wypch2
-.wyprz2
-.wyrż2
-.wyrz2
-.wysch2
-.wysm2
-.wysz2
-.wytch2
-.wytk2
-.wytr2
-.wz8
-.xć8
-.xł8
-.xń8
-.xś8
-.xź8
-.xż8
-.x8
-.xb8
-.xc8
-.xd8
-.xf8
-.xg8
-.xh8
-.xj8
-.xk8
-.xl8
-.xm8
-.xn8
-.xp8
-.xr8
-.xs8
-.xt8
-.xv8
-.xw8
-.xx8
-.xz8
-.zć8
-.zł8
-.zło3w2
-.zń8
-.zś8
-.zź8
-.zż8
-.z8
-.za3ć2
-.za3ł2
-.za3ś2
-.za3ź2
-.za3ż2
-.za3b2
-.za3c2
-.za3d2
-.za3f2
-.za3g2
-.za3h2
-.za3k2
-.za3l2
-.za3m2
-.za3o2b3r
-.za3o2b3s
-.za3p2
-.za3r2
-.za3s2
-.za3t2
-.za3u2
-.za3w2
-.za3z2
-.za4k3t
-.za4l3g
-.za4l3k
-.za4l3t
-.za4m3k
-.za4r3ch
-.za4uto
-.za5m4k2n
-.zabr2
-.zabrz2
-.zach2
-.zacz2
-.zadź2
-.zadż2
-.zadośću4
-.zado2ść3
-.zadr2
-.zady2s3po
-.zadz2
-.zagrz2
-.zai2n3
-.zai2zo
-.zain4ic
-.zakl2
-.zakr2
-.zakrz2
-.zanie3d2
-.zarż2
-.zarz2
-.zasch2
-.zasm2
-.zasz2
-.zatk2
-.zatr2
-.zb8
-.zc8
-.zd8
-.zde2z3
-.zde3z4awu
-.zde3z4el
-.zde3z4er
-.zde3z4y
-.zdy2s3kont
-.zdy2s3kred
-.zdy2s3kwal
-.ze3ć2
-.ze3ł2
-.ze3ś2
-.ze3ź2
-.ze3ż2
-.ze3b2
-.ze3c2
-.ze3d2
-.ze3f2
-.ze3g2
-.ze3h2
-.ze3k2
-.ze3l2
-.ze3m2
-.ze3p2
-.ze3r2
-.ze3s2
-.ze3t2
-.ze3tk2
-.ze3w2
-.ze3z2
-.ze4r3k
-.ze4t3e2m1e2s
-.ze4t3e2s1e2l
-.ze4t3emp
-.ze4t3hap
-.zech2
-.zecz2
-.zedź2
-.zedż2
-.zedz2
-.zekl2
-.zepch2
-.zerż2
-.zerz2
-.zesch2
-.zesm4
-.zesz2
-.zf8
-.zg8
-.zh8
-.zimno3kr2
-.zj8
-.zk8
-.zl8
-.zm8
-.zmartwy2ch3
-.zmartwychw2
-.zn8
-.znie3ć2
-.znie3ł2
-.znie3ń2
-.znie3ś2
-.znie3ź2
-.znie3ż2
-.znie3b2
-.znie3c2
-.znie3d2
-.znie3f2
-.znie3g2
-.znie3h2
-.znie3k2
-.znie3l2
-.znie3m2
-.znie3n2
-.znie3p2
-.znie3r2
-.znie3s2
-.znie3t2
-.znie3w2
-.znie3z2
-.znie4dź3
-.znie4m3c
-.zniech2
-.zniecz2
-.zniedż2
-.zniedz2
-.znierz2
-.zniesz2
-.zo2o3
-.zp8
-.zr8
-.zro2z3
-.zro3z4u
-.zs8
-.zt8
-.zv8
-.zw8
-.zx8
-.zz8
-ą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
-2b1g
-2b1k
-2b1m
-2b1n
-2b1p
-2b1s
-2b1t
-2b1z
-2brn
-2c1ć
-2c1ń
-2c1ś
-2c1ź
-2c1ż
-2c1b
-2c1d
-2c1f
-2c1g
-2c1k
-2c1l
-2c1m
-2c1n
-2c1p
-2c1s
-2c1t
-2ch1ć
-2ch1ń
-2ch1ś
-2ch1ź
-2ch1ż
-2ch1b
-2ch1c
-2ch1d
-2ch1f
-2ch1g
-2ch1k
-2ch1m
-2ch1n
-2ch1p
-2ch1s
-2ch1t
-2ch1z
-2cz1ć
-2cz1ń
-2cz1ś
-2cz1ź
-2cz1ż
-2cz1b
-2cz1c
-2cz1d
-2cz1f
-2cz1g
-2cz1k
-2cz1l
-2cz1m
-2cz1n
-2cz1p
-2cz1s
-2cz1t
-2cz1z
-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
-2d1g
-2d1k
-2d1m
-2d1n
-2d1p
-2d1s
-2d1t
-2drn
-2dz1ć
-2dz1ń
-2dz1ś
-2dz1ź
-2dz1ż
-2dz1b
-2dz1c
-2dz1d
-2dz1f
-2dz1g
-2dz1k
-2dz1l
-2dz1m
-2dz1n
-2dz1p
-2dz1s
-2dz1t
-2dz1z
-2f1c
-2f1k
-2f1m
-2f1n
-2głb
-2g1ć
-2g1ń
-2g1ś
-2g1ź
-2g1ż
-2g1b
-2g1c
-2g1d
-2g1f
-2g1k
-2g1m
-2g1p
-2g1s
-2g1t
-2g1z
-2h1ć
-2h1ł
-2h1ń
-2h1ś
-2h1ź
-2h1ż
-2h1b
-2h1c
-2h1d
-2h1f
-2h1g
-2h1j
-2h1k
-2h1l
-2h1m
-2h1n
-2h1p
-2h1r
-2h1s
-2h1t
-2h1w
-2h1z
-2j1ć
-2j1ł
-2j1ń
-2j1ś
-2j1ź
-2j1ż
-2j1b
-2j1c
-2j1d
-2j1f
-2j1g
-2j1h
-2j1k
-2j1l
-2j1m
-2j1n
-2j1p
-2j1r
-2j1s
-2j1t
-2j1w
-2j1z
-2kłb
-2k1ć
-2k1ń
-2k1ś
-2k1ź
-2k1ż
-2k1b
-2k1c
-2k1d
-2k1f
-2k1g
-2k1m
-2k1n
-2k1p
-2k1s
-2k1sz
-2k1t
-2k1z
-2l1ć
-2l1ł
-2l1ń
-2l1ś
-2l1ź
-2l1ż
-2l1b
-2l1c
-2l1d
-2l1f
-2l1g
-2l1h
-2l1j
-2l1k
-2l1m
-2l1n
-2l1p
-2l1r
-2l1s
-2l1t
-2l1w
-2l1z
-2m1ć
-2m1ł
-2m1ń
-2m1ś
-2m1ź
-2m1ż
-2m1b
-2m1c
-2m1d
-2m1f
-2m1g
-2m1h
-2m1j
-2m1k
-2m1l
-2m1n
-2m1p
-2m1r
-2m1s
-2m1t
-2m1w
-2m1z
-2n1ć
-2n1ł
-2n1ń
-2n1ś
-2n1ź
-2n1ż
-2n1b
-2n1c
-2n1d
-2n1f
-2n1g
-2n1h
-2n1j
-2n1k
-2n1l
-2n1m
-2n1p
-2n1r
-2n1s
-2n1t
-2n1w
-2n1z
-2ntn
-2p1ć
-2p1ń
-2p1ś
-2p1ź
-2p1ż
-2p1b
-2p1c
-2p1d
-2p1f
-2p1g
-2p1k
-2p1m
-2p1n
-2p1s
-2p1sz
-2p1t
-2p1z
-2pln
-2r1ć
-2r1ł
-2r1ń
-2r1ś
-2r1ź
-2r1ż
-2r1b
-2r1c
-2r1d
-2r1f
-2r1g
-2r1h
-2r1j
-2r1k
-2r1l
-2r1m
-2r1n
-2r1p
-2r1s
-2r1t
-2r1w
-2rz1ć
-2rz1ł
-2rz1ń
-2rz1ś
-2rz1ź
-2rz1ż
-2rz1b
-2rz1c
-2rz1d
-2rz1f
-2rz1g
-2rz1h
-2rz1j
-2rz1k
-2rz1l
-2rz1m
-2rz1n
-2rz1p
-2rz1r
-2rz1s
-2rz1t
-2rz1w
-2słb
-2s1ź
-2s1ż
-2s1b
-2s1d
-2s1f
-2s1g
-2s1s
-2snk
-2stk
-2stn
-2stsz
-2sz1ć
-2sz1ś
-2sz1c
-2sz1f
-2sz1k
-2sz1l
-2sz1m
-2sz1n
-2sz1p
-2sz1s
-2sz1t
-2sz1w
-2sz1z
-2szln
-2t1ć
-2t1ń
-2t1ś
-2t1ź
-2t1ż
-2t1b
-2t1c
-2t1d
-2t1f
-2t1g
-2t1k
-2t1m
-2t1n
-2t1p
-2t1s
-2t1z
-2tln
-2trk
-2trzn
-2w1ć
-2w1ł
-2w1ń
-2w1ś
-2w1ź
-2w1ż
-2w1b
-2w1c
-2w1d
-2w1f
-2w1g
-2w1j
-2w1k
-2w1l
-2w1m
-2w1n
-2w1p
-2w1r
-2w1s
-2w1t
-2w1z
-2z1ć
-2z1ś
-2z1c
-2z1d
-2z1f
-2z1k
-2z1p
-2z1s
-2z1t
-2zdk
-2zdn
-3d2niow
-3k2sz2t
-3m2k2n
-3m2nest
-3m2nezj
-3m2sk2n
-3p2neu
-3w2ład
-3w2łos
-3w2czas
-4ć3ć
-4ł3ł
-4ź3ź
-4ż3ż
-4b3b
-4c3c
-4d3d
-4f3f
-4g3g
-4h3h
-4j3j
-4k3k
-4l3l
-4m3m
-4n3n
-4p3p
-4r3r
-4t3t
-4w3w
-4z3z
-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ć.
-8bł.
-8bń.
-8bś.
-8bź.
-8bż.
-8bb.
-8bc.
-8bd.
-8bf.
-8bg.
-8bh.
-8bj.
-8bk.
-8bl.
-8bm.
-8bn.
-8bp.
-8br.
-8brz.
-8bs.
-8bt.
-8bv.
-8bw.
-8bx.
-8bz.
-8c.
-8cć.
-8cł.
-8cń.
-8cś.
-8cź.
-8cż.
-8cb.
-8cc.
-8cd.
-8cf.
-8cg.
-8ch.
-8chł.
-8chrz.
-8chw.
-8cj.
-8ck.
-8cl.
-8cm.
-8cn.
-8cp.
-8cr.
-8cs.
-8ct.
-8cv.
-8cw.
-8cx.
-8cz.
-8czt.
-8d.
-8dć.
-8dł.
-8dń.
-8dś.
-8dź.
-8dż.
-8db.
-8dc.
-8dd.
-8df.
-8dg.
-8dh.
-8dj.
-8dk.
-8dl.
-8dm.
-8dn.
-8dp.
-8dr.
-8drz.
-8ds.
-8dt.
-8dv.
-8dw.
-8dx.
-8dz.
-8f.
-8fć.
-8fł.
-8fń.
-8fś.
-8fź.
-8fż.
-8fb.
-8fc.
-8fd.
-8ff.
-8fg.
-8fh.
-8fj.
-8fk.
-8fl.
-8fm.
-8fn.
-8fp.
-8fr.
-8fs.
-8ft.
-8fv.
-8fw.
-8fx.
-8fz.
-8g.
-8gć.
-8gł.
-8gń.
-8gś.
-8gź.
-8gż.
-8gb.
-8gc.
-8gd.
-8gf.
-8gg.
-8gh.
-8gj.
-8gk.
-8gl.
-8gm.
-8gn.
-8gp.
-8gr.
-8gs.
-8gt.
-8gv.
-8gw.
-8gx.
-8gz.
-8h.
-8hć.
-8hł.
-8hń.
-8hś.
-8hź.
-8hż.
-8hb.
-8hc.
-8hd.
-8hf.
-8hg.
-8hh.
-8hj.
-8hk.
-8hl.
-8hm.
-8hn.
-8hp.
-8hr.
-8hs.
-8ht.
-8hv.
-8hw.
-8hx.
-8hz.
-8j.
-8jć.
-8jł.
-8jń.
-8jś.
-8jź.
-8jż.
-8jb.
-8jc.
-8jd.
-8jf.
-8jg.
-8jh.
-8jj.
-8jk.
-8jl.
-8jm.
-8jn.
-8jp.
-8jr.
-8js.
-8jt.
-8jv.
-8jw.
-8jx.
-8jz.
-8k.
-8kć.
-8kł.
-8kń.
-8kś.
-8kź.
-8kż.
-8kb.
-8kc.
-8kd.
-8kf.
-8kg.
-8kh.
-8kj.
-8kk.
-8kl.
-8km.
-8kn.
-8kp.
-8kr.
-8ks.
-8kst.
-8kt.
-8kv.
-8kw.
-8kx.
-8kz.
-8l.
-8lć.
-8lł.
-8lń.
-8lś.
-8lź.
-8lż.
-8lb.
-8lc.
-8ld.
-8lf.
-8lg.
-8lh.
-8lj.
-8lk.
-8ll.
-8lm.
-8ln.
-8lp.
-8lr.
-8ls.
-8lt.
-8lv.
-8lw.
-8lx.
-8lz.
-8m.
-8mć.
-8mł.
-8mń.
-8mś.
-8mź.
-8mż.
-8mb.
-8mc.
-8md.
-8mf.
-8mg.
-8mh.
-8mj.
-8mk.
-8ml.
-8mm.
-8mn.
-8mp.
-8mr.
-8ms.
-8mst.
-8mt.
-8mv.
-8mw.
-8mx.
-8mz.
-8n.
-8nć.
-8nł.
-8nń.
-8nś.
-8nź.
-8nż.
-8nb.
-8nc.
-8nd.
-8nf.
-8ng.
-8nh.
-8nj.
-8nk.
-8nl.
-8nm.
-8nn.
-8np.
-8nr.
-8ns.
-8nt.
-8nv.
-8nw.
-8nx.
-8nz.
-8p.
-8pć.
-8pł.
-8pń.
-8pś.
-8pź.
-8pż.
-8pb.
-8pc.
-8pd.
-8pf.
-8pg.
-8ph.
-8pj.
-8pk.
-8pl.
-8pm.
-8pn.
-8pp.
-8pr.
-8prz.
-8ps.
-8pt.
-8pv.
-8pw.
-8px.
-8pz.
-8r.
-8rć.
-8rł.
-8rń.
-8rś.
-8rź.
-8rż.
-8rb.
-8rc.
-8rd.
-8rf.
-8rg.
-8rh.
-8rj.
-8rk.
-8rl.
-8rm.
-8rn.
-8rp.
-8rr.
-8rs.
-8rsz.
-8rt.
-8rv.
-8rw.
-8rx.
-8rz.
-8rzł.
-8s.
-8sć.
-8sł.
-8sń.
-8sś.
-8sź.
-8sż.
-8sb.
-8sc.
-8sch.
-8sd.
-8sf.
-8sg.
-8sh.
-8sj.
-8sk.
-8skrz.
-8sl.
-8sm.
-8sn.
-8sp.
-8sr.
-8ss.
-8st.
-8str.
-8strz.
-8stw.
-8sv.
-8sw.
-8sx.
-8sz.
-8szcz.
-8szczb.
-8szk.
-8szn.
-8szt.
-8sztr.
-8t.
-8tć.
-8tł.
-8tń.
-8tś.
-8tź.
-8tż.
-8tb.
-8tc.
-8td.
-8tf.
-8tg.
-8th.
-8tj.
-8tk.
-8tl.
-8tm.
-8tn.
-8tp.
-8tr.
-8trz.
-8ts.
-8tt.
-8tv.
-8tw.
-8tx.
-8tz.
-8v.
-8vć.
-8vł.
-8vń.
-8vś.
-8vź.
-8vż.
-8vb.
-8vc.
-8vd.
-8vf.
-8vg.
-8vh.
-8vj.
-8vk.
-8vl.
-8vm.
-8vn.
-8vp.
-8vr.
-8vs.
-8vt.
-8vv.
-8vw.
-8vx.
-8vz.
-8w.
-8wć.
-8wł.
-8wń.
-8wś.
-8wź.
-8wż.
-8wb.
-8wc.
-8wd.
-8wf.
-8wg.
-8wh.
-8wj.
-8wk.
-8wl.
-8wm.
-8wn.
-8wp.
-8wr.
-8ws.
-8wt.
-8wv.
-8ww.
-8wx.
-8wz.
-8x.
-8xć.
-8xł.
-8xń.
-8xś.
-8xź.
-8xż.
-8xb.
-8xc.
-8xd.
-8xf.
-8xg.
-8xh.
-8xj.
-8xk.
-8xl.
-8xm.
-8xn.
-8xp.
-8xr.
-8xs.
-8xt.
-8xv.
-8xw.
-8xx.
-8xz.
-8z.
-8zć.
-8zł.
-8zń.
-8zś.
-8zź.
-8zż.
-8zb.
-8zc.
-8zd.
-8zdr.
-8zdrz.
-8zf.
-8zg.
-8zh.
-8zj.
-8zk.
-8zl.
-8zm.
-8zn.
-8zp.
-8zr.
-8zs.
-8zt.
-8zv.
-8zw.
-8zx.
-8zz.
-a1
-a2u
-a2y
-aa2
-ae2
-ai2
-ao2
-be2eth
-be2f3sz2
-be2k1hend
-bi2n3o2ku
-bi2sz3kop
-bi2z3ne2s3m
-bi2z3nes
-birmin2g1ham
-blo2k1hauz
-bo2s3ma
-br2d
-bro2a2d3way
-bu2sz3me
-buk2sz3pan
-busine2ss3m
-busines2s
-c4h
-c4z
-cal2d1well
-ch2ł
-ch2j
-ch2l
-ch2r
-ch2w
-chus1t
-cu2r7zon
-dż2ł
-dż2j
-dż2l
-dż2r
-dż2w
-dże4z3b
-dże4z3m
-d4ź
-d4ż
-d4z
-deut4sch3land
-drz2w
-du2sz3past
-e1
-e2r5zac
-e2u
-e2y
-e3u2sz
-ea2
-ee2
-ei2
-eo2
-fi2s3harm
-fi2sz3bin
-fo2k2s3t
-fo2r5zac
-fol2k1lor
-fos2f1a2zot
-ga3d2get
-gado3p2ta
-gol2f3s
-golfsz2
-gran2d1ilo
-gro4t3r
-hi2sz3p
-hu2cz1w
-hu2x3ley
-i1
-i2ą
-i2ę
-i2ó
-i2a
-i2e
-i2i
-i2o
-i2u
-i2y
-in4nsbruck
-in4sbruc
-j2t1ł
-j2t1r
-ja4z4z3b
-ja4z4z3m
-karl2s1kron
-karl2s1ruhe
-kir2chhoff
-kongre2s3m
-led1w
-lu2ft3waffe
-lu2ks1fer
-ly2o
-ma2r5zł
-ma2r5zl
-ma2r5zn
-mi2sz1masz
-mie2r5zł
-mie2r5zi
-mon2t3real
-moza2i3k
-mu2r7zasich3l
-na4ł3kows
-na4r3v
-o1
-o2y
-oa2
-och3mistrz
-oe2
-of2f3set
-oi2
-oo2
-ou2
-pa2n3a2mer
-pa2s3cal
-pa2s3ch
-połu3d2ni
-po3d4nieprz
-po3m2ną
-po3m2nę
-po3m2ni
-po4rt2s3mo2uth
-po4rt3land
-poli3e2t
-poli3u2re
-powsze3d2ni
-pr2chal
-pre2sz3pa
-r4z
-ro2e3nt2gen
-ro2k3rocz
-ro2s3to3c2k
-s4z
-se2t3le
-sko2r5zoner
-sm2r
-sowi3z2
-sy2n3opt
-sy2s1tem
-sza2sz1ły
-sze2z1long
-sze4ść
-szto2k1holm
-szyn2k1was
-to3y2o3t
-turboo2d3rzut
-tygo3d2ni
-u1
-u2y
-ua2
-ue2
-ui2
-uo2
-uu2
-vo2lk2s3
-we2e2k1end
-we4st3f
-we4st3m
-y1
-ya2
-ye2
-yi2
-yo2
-yu2
-ze4p3p} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-pt.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-pt.hyp
deleted file mode 100644
index 73b3cb6e2e3..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-pt.hyp
+++ /dev/null
@@ -1,9 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-pt.rme
-
-% used: a d e f h o r s t w
-
-\hyphenation{
-hard-ware
-soft-ware} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-pt.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-pt.pat
deleted file mode 100644
index 5a284c087fe..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-pt.pat
+++ /dev/null
@@ -1,314 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-pt.rme
-
-% used: - a b c d e f g h i j k l m n o p q r s t u v w x z á â ã ç é ê í ó ô õ ú
-
-\patterns{
-1b2l
-1b2r
-1ba
-1be
-1bi
-1bo
-1bu
-1bá
-1bâ
-1bã
-1bé
-1bí
-1bó
-1bú
-1bê
-1bõ
-1c2h
-1c2l
-1c2r
-1ca
-1ce
-1ci
-1co
-1cu
-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
-1de
-1di
-1do
-1du
-1dá
-1dâ
-1dã
-1dé
-1dí
-1dó
-1dú
-1dê
-1dõ
-1f2l
-1f2r
-1fa
-1fe
-1fi
-1fo
-1fu
-1fá
-1fâ
-1fã
-1fé
-1fí
-1fó
-1fú
-1fê
-1fõ
-1g2l
-1g2r
-1ga
-1ge
-1gi
-1go
-1gu
-1gu4a
-1gu4e
-1gu4i
-1gu4o
-1gá
-1gâ
-1gã
-1gé
-1gí
-1gó
-1gú
-1gê
-1gõ
-1ja
-1je
-1ji
-1jo
-1ju
-1já
-1jâ
-1jã
-1jé
-1jí
-1jó
-1jú
-1jê
-1jõ
-1k2l
-1k2r
-1ka
-1ke
-1ki
-1ko
-1ku
-1ká
-1kâ
-1kã
-1ké
-1kí
-1kó
-1kú
-1kê
-1kõ
-1l2h
-1la
-1le
-1li
-1lo
-1lu
-1lá
-1lâ
-1lã
-1lé
-1lí
-1ló
-1lú
-1lê
-1lõ
-1ma
-1me
-1mi
-1mo
-1mu
-1má
-1mâ
-1mã
-1mé
-1mí
-1mó
-1mú
-1mê
-1mõ
-1n2h
-1na
-1ne
-1ni
-1no
-1nu
-1ná
-1nâ
-1nã
-1né
-1ní
-1nó
-1nú
-1nê
-1nõ
-1p2l
-1p2r
-1pa
-1pe
-1pi
-1po
-1pu
-1pá
-1pâ
-1pã
-1pé
-1pí
-1pó
-1pú
-1pê
-1põ
-1qu4a
-1qu4e
-1qu4i
-1qu4o
-1ra
-1re
-1ri
-1ro
-1ru
-1rá
-1râ
-1rã
-1ré
-1rí
-1ró
-1rú
-1rê
-1rõ
-1sa
-1se
-1si
-1so
-1su
-1sá
-1sâ
-1sã
-1sé
-1sí
-1só
-1sú
-1sê
-1sõ
-1t2l
-1t2r
-1ta
-1te
-1ti
-1to
-1tu
-1tá
-1tâ
-1tã
-1té
-1tí
-1tó
-1tú
-1tê
-1tõ
-1v2l
-1v2r
-1va
-1ve
-1vi
-1vo
-1vu
-1vá
-1vâ
-1vã
-1vé
-1ví
-1vó
-1vú
-1vê
-1võ
-1w2l
-1w2r
-1xa
-1xe
-1xi
-1xo
-1xu
-1xá
-1xâ
-1xã
-1xé
-1xí
-1xó
-1xú
-1xê
-1xõ
-1za
-1ze
-1zi
-1zo
-1zu
-1zá
-1zâ
-1zã
-1zé
-1zí
-1zó
-1zú
-1zê
-1zõ
-a3a
-a3e
-a3o
-c3c
-e3a
-e3e
-e3o
-i3a
-i3e
-i3i
-i3o
-i3â
-i3ê
-i3ô
-o3a
-o3e
-o3o
-r3r
-s3s
-u3a
-u3e
-u3o
-u3u
-1-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-ro.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-ro.hyp
deleted file mode 100644
index 488a4b777b6..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-ro.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-ro.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-ro.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-ro.pat
deleted file mode 100644
index bf0e71fc116..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-ro.pat
+++ /dev/null
@@ -1,654 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-ro.rme
-
-% used: a b c d e f g h i j k l m n o p r s t u v x z î ă ș ț
-
-\patterns{
-.a3ic
-.a4n3is
-.a2z
-.cre1
-.de2aj
-.de2z1
-.g4
-.i2a
-.i2e
-.i3ț
-.i4u3
-.i3v
-.î4m
-.n2
-.ni2
-.p4
-.pre3ș
-.s4
-.ș4
-.u4i
-.u5ni
-.z2
-a1
-2acă
-achi5
-a3e
-afo3
-a3i2a
-a3i2e
-a3il
-ai3s2
-a3iu
-alie6
-2alt
-a2m
-a2n
-2an.
-a5n2e
-ani2e
-ani3ș4
-an4s
-2anu
-an2z
-ao2g
-ati4a
-2atr
-a5t4u
-2ața
-2ață
-2au
-a3ua
-a3ud
-a3ug
-a3ul
-a3un
-a3ur
-a3us
-a3ute
-a3u2ț
-a3uz
-2ă1
-ă3i
-ăi2e
-ă2m2
-ănu3
-ărgi5
-ă3ș
-ă4ș3t
-ă2ti.
-ăti4e
-ă3u
-ă3v
-ă2zi
-1b
-2b.
-ba2ț
-bănu5
-2bc
-2bd
-bi2a.
-bi2at
-bi2e
-3bii
-b2l
-3b4lim
-b4lu
-bo1
-bo3ric
-2bs
-2bt
-2bț
-bți4ne.
-bu3
-1c
-4c.
-ca3ut
-că2c
-cătu5
-2cc
-ce2a
-ce2ț
-2chi.
-2ci.
-ci3ale
-ci2o
-cis2
-ci3sp
-ciza2
-c4l
-2cm
-2c5n
-copia2tă
-co2ț
-2cs
-2ct
-2cț
-cu3im
-3cul
-cu2ț
-2cv
-1d
-4d.
-da4m
-da2ț
-2dc
-de4sc
-dez3in
-di2an
-dia2tă
-2dj
-2dm
-2d1n
-do4il
-3du
-e1ac
-e1aj
-e1al
-e1aș
-e1at
-ea2ț
-e1av
-ebu5i
-2ec
-eci2a
-ecla2re
-edi4ulu
-e3e
-ee2a
-1efa
-e1h
-e3i2a
-e3i2e
-e3ii
-e3il
-e3im
-e3in
-e3i2o
-e3i3s2
-e3it
-e3i4u
-e1î
-2el
-e2m
-emon5
-2en
-e5ne
-e1o1
-e3on
-e1r
-2era
-2eră
-2erc
-2e2s
-es3co
-es5ti
-2eș
-e3și
-etan4ț
-2eț
-e3u
-eu5ș
-1evit
-e2x
-2ez
-eză5
-ezi3a
-e2z1o
-1f4
-2f.
-3fa
-3făș
-2fi.
-fi3e
-3fo
-2ft
-f5tu
-1g2
-2g.
-gă3ț
-2ghi.
-2gi.
-g4l
-2g3m
-2g3n
-go5n
-3gu3
-2g3v
-2h.
-2hi.
-hi2a
-hi3c
-hi4u
-2h1n
-2i1
-4i.
-3i2ac
-ia3g4
-i2ai
-i2aș
-ia2ț
-i3că
-i2ed
-i3ia
-i3ie
-i3ii
-i3il
-i3in
-i3ir
-i3it
-iitu2ră
-i2î
-4ila
-i3le
-i3lo
-imateri6
-i2n
-i4n1ed
-in2gă
-inți4i
-3inv
-i3od
-i3oni
-io2ț
-ipă5
-i2s
-is3f
-4isp
-iș3t
-i5ti
-iți2a
-i3ți2o
-i3ua
-i3ul
-i3um
-i3und
-i3unu
-i3us
-i3ut
-iz3v
-î2
-î3d
-î3e
-î3lo
-îna3
-în5ș
-î3ri
-î3rî
-îr5ș
-îș3t
-î3t
-î4ti
-î3ț
-î4ți
-î5ții
-î3z
-1j
-2j.
-2jd
-2ji.
-ji2ț
-2jl
-j4u
-ju3t
-1k
-1l
-4l.
-larați2
-lă2ti
-lătu5
-2lb
-2lc
-2ld
-le2a
-2lf
-2lg
-4li.
-li3a
-li3e
-li3o
-2lm
-2l5n
-2lp
-2ls
-2l3ș
-2lt
-2lț
-3lu
-2lv
-1m
-2m.
-3ma
-3mă
-2mb
-mblîn3
-3me
-me2z
-2mf
-3mi
-4mi.
-mi2ț
-3mî
-2m1n
-3mo
-mon4
-2mp
-2m3s2
-2mt
-2mț
-3mu
-mu2ț
-2mv
-4n.
-3na
-4n1ad
-na3in
-3nă
-2nc
-n2cis
-n2ciz
-2nd
-3ne
-ne1ab
-ne1an
-ne1ap
-4nef
-4n1eg
-ne3s2
-4nevi
-4n1ex
-2ng
-ng3ăt
-3ni
-4ni.
-ni3ez
-3nî
-n3j
-n1n
-3no
-no4ș
-n1r
-2n3s2
-ns3f
-n4sî
-ns3po
-n3ș2
-n4și
-2nt
-n5ti
-n5t4u
-2nț
-5nu
-nu3a
-nu3ă
-nu5m
-nu3s2
-2nz
-o1ag
-o2al
-o2bi.
-2oca
-ocu5i
-2od
-odi2a
-o3e
-o3i2
-oiecti2
-oi3s2p
-omedi2e.
-om4n
-2on
-o1o
-opi3e
-opla2
-oplagi2
-o1ra
-o1ră
-or2c
-o1re
-o1ri
-o2ric
-o1rî
-o1ro
-or2te.
-o1ru
-os5ti
-o3și
-otați4
-o5ti
-ot3od
-o3u
-1p2
-2p.
-3pa
-păr3ț
-2p3c
-pecți2
-pe2ț
-2pi.
-pi2e
-pi3e.
-pi3ez
-pi3o
-pi2ț
-pi2z
-p4l
-po4ș
-po2ț
-2p3s
-2p3ș
-2p3t
-2p3ț
-p4ți.
-pu3b4
-puri2e
-pu4ș
-4r.
-2rb
-2rc
-2rd
-r2e
-re2bi
-recizi2
-re3s2cr
-re4și
-2rf
-2rg
-2r1h
-4ri.
-ri3a
-ri4ali
-ri3eț
-ri3ez
-ri5mi
-2ri3un
-ri3v
-2rk
-2rl
-2rm
-2r1n
-rna2ț
-rografi6
-2rp
-2r1r
-2rs2
-r3sp
-r3st
-2r3ș
-2rt
-rtua2le
-2rț
-ru3il
-ru3sp
-2rv
-2rz
-1s
-4s.
-5sa
-5să
-să4m
-să4ș
-2sc
-4sc.
-3s2co
-3se
-se2a
-se4e.
-ses2
-se3sp
-se4ș
-4s2f
-5sfî
-3si
-si3p
-3sî
-3s4l
-4sm
-s1n
-3so
-so3ric
-2sp
-2st
-sto3
-5su
-su2ț
-2ș
-4ș.
-3șa
-șa2ț
-3șă2
-3șe
-1și
-4și.
-5șii
-5șil
-3șin
-3șî
-4ș5n
-șnu5
-3șo
-ș2p
-ș2ti
-4ști.
-4ș3tr
-3șu
-1t2
-4t.
-ta3ut
-2t3c
-2t3d
-te2a
-te5ni
-teri6ală
-te3s2p
-2t3f
-4ti.
-ti3a
-ti3e
-3tii.
-3til
-3tin
-ti2ț
-2tî.
-t4l
-2t3m
-3tol
-3tor
-to2to
-3tru.
-3trul
-3truo
-4t3s2
-2t3t
-tu3a
-tu3im
-4t3un
-tu4ș
-4t3z
-1ț
-2ț.
-3ța
-3ță
-țe2ț
-2ți.
-3ția
-ți3a.
-3ție
-3ții
-3țil
-ți2ț
-3țiu
-țu3
-țu5i
-2u1
-6u.
-u2a.
-u2ad
-u3au
-uă3
-uăs2
-u2bia
-u2b3l
-u2b1o
-ub3s2
-u3e
-4ugu
-u3i2a
-u3i2e
-u3in
-u3ir
-u3is
-u3it
-u3i2ț
-u3iz
-u2l
-u3la
-u3lă
-u3le
-u3lii
-u3lî
-u3lo
-umi5r
-ur2z
-u2s
-us2pr
-u4st
-u3ș
-u4șt
-u2to
-3utor
-u3ui
-u3um
-1v
-2v.
-ve5ni
-ve2ț
-ve2z
-2vi.
-vi2ț
-2v1n
-vorbito2
-3vr
-1x
-2x.
-3xa
-3xă
-3xe
-xe2z
-3xi
-3xo
-3xu
-1z
-2z.
-za2ț
-2zb
-2z2g
-2zi.
-zi2an
-zi2ar
-3zii
-3zil
-z4m
-2z1n
-3z2ol
-3zon
-zu2ț
-2z2v
-z3vă} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-ru.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-ru.hyp
deleted file mode 100644
index 95aca29e79f..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-ru.hyp
+++ /dev/null
@@ -1,191 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-ru.rme
-
-% used: а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ы ь э ю я
-
-\hyphenation{
-ас-бест
-бездн
-биз-нес-мен
-буй-нак-ске
-вбли-зи
-взба-ла-муть-ся
-вздрем-нешь
-во-до-сли-вом
-волж-ске
-воп-лем
-вопль
-вост-ра
-во-ткать
-во-ткем
-во-ткешь
-во-тку
-во-ткут
-впол-обо-ро-та
-впол-уха
-все-во-лож-ске
-вцспс
-га-рем-но-го
-го-ло-дра-нец
-грэс
-дву-зу-бец
-днепр
-добре-ем
-до-бре-ем-ся
-добре-ет
-добре-е-те
-до-бре-е-тесь
-до-бре-ет-ся
-добре-ешь
-до-бре-ешь-ся
-добрею
-до-бре-юсь
-добре-ют
-до-бре-ют-ся
-до-бре-сти
-до-бро-дят
-до-брось
-до-брось-те
-до-бро-сят
-до-бро-шу
-домну
-доп-пель
-драх-му
-дрейф-лю
-дрейфь-те
-еди-но-жды
-зав-сек-то-ром
-за-мру
-за-члись
-из-древ-ле
-изо-тру
-ин-ког-ни-то
-искр
-ка-за-шек
-казнь
-кольд-кре-мом
-корн-па-пир
-ксендз
-лик-бе-зом
-ло-шадь-ми
-людь-ми
-лю-э-сом
-ма-зу-те
-ме-ти-лам
-ме-ти-ла-ми
-мно-га-жды
-морщь-те
-на-бе-крень
-навз-ничь
-на-вскид-ку
-на-встре-чу
-нагл
-на-изусть
-на-ис-ко-сок
-наи-ме-нее
-на-ис-кось
-на-обо-рот
-на-от-рез
-на-супь-ся
-на-угад
-на-уголь-ник
-не-ост-ра
-нес-лась
-нес-лись
-нет-то
-не-уду
-обидь-ся
-обо-шлось
-об-ра-сти
-од-на-жды
-ослаб-ла
-ото-мстят
-ото-мщу
-ото-тру
-отру
-отрусь
-паб-ли-си-ти
-па-на-ме
-па-на-мец
-па-ра-так-сис
-пе-ре-вру
-пе-ре-ме-жать
-пе-ре-ме-жать-ся
-пе-ре-шла
-пис-чая
-по-все-дне-вен
-по-гре-мок
-по-до-тру
-по-ис-ти-не
-по-лу-то-ра-ста
-по-лу-явью
-по-млад-ше
-помни
-по-мнись
-помни-те
-по-мни-тесь
-по-мно-гу
-по-мру
-пол-вто-ро-го
-пол-шка-фа
-по-на-доб-люсь
-по-трафь-те
-преж-де
-прид-ти
-при-шла
-при-шлось
-про-тру
-про-хлад-ца
-пско-ва
-пыл-че
-раз-орем-ся
-раз-оре-тесь
-раз-орет-ся
-раз-орешь-ся
-разо-тру
-ра-зу-мом
-резв-люсь
-рсфср
-сан-узел
-сдрейф-лю
-се-го-дня
-сме-жат
-со-блю-сти
-со-лжешь
-сост-рим
-сост-ришь
-сост-рю
-сост-рят
-со-ткать
-со-ткем
-со-ткешь
-сотку
-со-ткут
-срос-лась
-срос-лись
-стрем-глав
-так-же
-тве-ре-зо-го
-те-ле-ате-лье
-тер-но-сли-вом
-троп-лю
-тьфу
-узу-фрукт
-умнем
-умнет
-умнете
-умну
-умру
-услышь-те
-ушла
-фо-то-пле-нок
-ца-ре-дво-рец
-че-рес-чур
-чер-но-сли-вом
-чресл
-чуж-дость
-шесть-де-сят
-юсом
-ядо-зу-бе
-ярем-но-го} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-ru.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-ru.pat
deleted file mode 100644
index 787b95c23b6..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-ru.pat
+++ /dev/null
@@ -1,7028 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-ru.rme
-
-% used: - а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я ё
-
-\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
-а1вё
-а2двё
-а1ё
-аз3вёз
-а1лё
-2алёк
-2амёт
-ам2нёт
-а1рё
-ас3тём
-а1тьё
-1бё
-бё2д1р
-б3лён
-б2лёс1к
-б2люё
-б1рёк
-б2рём
-б2рёх
-1веё
-3везё
-вёд1р
-1вёз
-2вёрд
-1вёс
-в2лёк
-в2лёт
-1вмё
-в2нёс
-2в1рён
-3всё3
-1вьё
-г1лё
-г2лёт
-г2нёв
-г3нён
-г2ноё
-д1вё
-1дё
-.доб2рёл
-2доплё
-до2прё
-д1рё
-д2рёб
-2д3рёж
-д2рём
-1дрёма
-1дрёмы
-2д3рён
-дъё2м
-1дьё
-еб1рён
-е1вё
-2евёр
-2е1врё
-е2глё
-е1ё
-2ежё
-е3зё
-е1лё
-2епё
-ер1вё
-е1рё
-ерё3до
-ерё1к2
-ес2чёт
-ет1вё
-е1тьё
-2ёб
-ё1бра
-ёб1ры
-ё1ве
-ё1во
-2ё1вре
-ё1ву
-ё1дру
-2ё3душ
-2ёже
-ё3зе
-ёз1о2г
-ё1зом
-ё1ка
-ё1ки
-2ё1ко
-2ё1кр
-ёк2ро
-ё1ку
-ё1ла
-ё1ле
-ё1лу
-ё1лы
-2ёмуж
-ё2мч
-ё3на
-ён2д1р
-ёнс2
-ёпат2
-2ёпе
-ё2пл
-ё3пла
-ёп1лу
-ё3плы
-ё4пн
-2ёпо
-ё4пт
-ё1ра
-ё1ре
-ё3ре.
-ё1ри
-ё1ро
-ёр3ск
-ё1ру
-ё1ры
-ё3с2а
-ё1ск
-ё2с1ка.
-ё2ске
-ё4с1ку.
-2ёсл
-ё3со
-ё1ст
-ёс2тан
-ё3сту
-ё1та
-2ётеч
-ё1ти
-ё1то
-ёто1с
-ёт1р
-ё1ту
-ё1ты
-ё1тю
-ё1тя
-ёха2т
-ёх1ато
-ёх3вал
-ёх3лоп
-ёх1опо
-ёх1ру
-3жёв
-жё1с2
-ж2жё
-за3мнё
-з1вё
-з2вёз
-1зё
-з2наё
-2знё
-1з2о3рё
-з2отё
-зот2рё
-3зуё
-зъё2м
-2зымё
-2и1вё
-иг1рён
-и1ё
-их1рё
-1каё
-1кё
-к3лён
-к2роё
-3куё
-ла1стё
-лё3до
-лё1з2о3
-лёк1л
-1лён
-лё2ск
-лё4ска
-1лёх
-2лоён
-1луё
-3льё
-1льщё
-3м2нёш
-3м2щё
-нд2рё
-не3ё
-1нё
-нё1б2
-3номё
-1ньё
-од3рёб
-о1ё
-оё2жи
-о1лё
-2омё
-о3м2нём
-о3м2нёт
-о2п1лёй
-о1рё
-о2скё
-от1вё
-2о3тёк
-о3тёр
-от1рёк
-от1рёш
-о3фё
-пё1
-пё2ст1р
-пё2тр
-2плён
-п2лёнк
-плёс1к
-п1лёю
-поё2ж
-3прёт
-причё2с1к
-р2блё
-1рвёт
-.рё2бр
-1рёзк
-рё1зна
-1рё1зо
-рёз2у
-1рёкш
-3рёмо
-1рёнк
-рё3ста
-рё3сто
-род2лё
-роё2м
-1рьё
-с2дё
-се3стё
-1с2ё
-сёкс4
-сё2ст
-сёст1р
-2скуё
-с1лёт
-с2тё
-1стёл
-1стён.
-с3тёт.
-с3тёте
-стё3х
-с3тёш
-с3т2лё
-счё2с1к
-1сьё
-т1вёл
-т1воё
-1т2ё
-тё2гн
-тё1зо
-3тёка
-тёк1л
-3тёкш
-тё4п1л
-тёр3к
-тё2ска
-тё2с1ки
-тё2с1ко
-тё2ску
-тё2хо
-3т2кёт
-т1ревё
-3т2рё2х
-т2рёшь
-тро2етёс
-3тьё
-уг2нё
-уг1рё
-.уё2
-у1ё
-у1лё
-у1рё
-у1стё
-у3тёр
-у1тьё
-у2чёб
-у3шё
-2х3вё
-1хлёб
-х2лёс
-ц2вё
-1чё
-чёр2с
-чёрст1
-.чё2с1к
-ч2тё
-1чьё
-2шлён
-3шьё
-ъ2ё2р
-ыд2рё
-ырё2х
-ы3сё
-ь2ё
-ьё1зо
-ь2щё
-ю1ё
-яб3рё
-.не8
-8не.
-8бъ.
-8въ.
-8гъ.
-8дъ.
-8жъ.
-8зъ.
-8къ.
-8лъ.
-8мъ.
-8нъ.
-8пъ.
-8ръ.
-8съ.
-8тъ.
-8фъ.
-8хъ.
-8цъ.
-8чъ.
-8шъ.
-8щъ.
-8-7
---8
-.а-8
-.б-8
-.в-8
-.г-8
-.д-8
-.е-8
-.ё-8
-.ж-8
-.з-8
-.и-8
-.й-8
-.к-8
-.л-8
-.м-8
-.н-8
-.о-8
-.п-8
-.р-8
-.с-8
-.т-8
-.у-8
-.ф-8
-.х-8
-.ц-8
-.ч-8
-.ш-8
-.щ-8
-.ъ-8
-.ы-8
-.ь-8
-.э-8
-.ю-8
-.я-8
--а8а8
-8а8а-
--а8б8
-8а8б-
--а8в8
-8а8в-
--а8г8
-8а8г-
--а8д8
-8а8д-
--а8е8
-8а8е-
--а8ё8
-8а8ё-
--а8ж8
-8а8ж-
--а8з8
-8а8з-
--а8и8
-8а8и-
--а8й8
-8а8й-
--а8к8
-8а8к-
--а8л8
-8а8л-
--а8м8
-8а8м-
--а8н8
-8а8н-
--а8о8
-8а8о-
--а8п8
-8а8п-
--а8р8
-8а8р-
--а8с8
-8а8с-
--а8т8
-8а8т-
--а8у8
-8а8у-
--а8ф8
-8а8ф-
--а8х8
-8а8х-
--а8ц8
-8а8ц-
--а8ч8
-8а8ч-
--а8ш8
-8а8ш-
--а8щ8
-8а8щ-
--а8ъ8
-8а8ъ-
--а8ы8
-8а8ы-
--а8ь8
-8а8ь-
--а8э8
-8а8э-
--а8ю8
-8а8ю-
--а8я8
-8а8я-
--б8а8
-8б8а-
--б8б8
-8б8б-
--б8в8
-8б8в-
--б8г8
-8б8г-
--б8д8
-8б8д-
--б8е8
-8б8е-
--б8ё8
-8б8ё-
--б8ж8
-8б8ж-
--б8з8
-8б8з-
--б8и8
-8б8и-
--б8й8
-8б8й-
--б8к8
-8б8к-
--б8л8
-8б8л-
--б8м8
-8б8м-
--б8н8
-8б8н-
--б8о8
-8б8о-
--б8п8
-8б8п-
--б8р8
-8б8р-
--б8с8
-8б8с-
--б8т8
-8б8т-
--б8у8
-8б8у-
--б8ф8
-8б8ф-
--б8х8
-8б8х-
--б8ц8
-8б8ц-
--б8ч8
-8б8ч-
--б8ш8
-8б8ш-
--б8щ8
-8б8щ-
--б8ъ8
-8б8ъ-
--б8ы8
-8б8ы-
--б8ь8
-8б8ь-
--б8э8
-8б8э-
--б8ю8
-8б8ю-
--б8я8
-8б8я-
--в8а8
-8в8а-
--в8б8
-8в8б-
--в8в8
-8в8в-
--в8г8
-8в8г-
--в8д8
-8в8д-
--в8е8
-8в8е-
--в8ё8
-8в8ё-
--в8ж8
-8в8ж-
--в8з8
-8в8з-
--в8и8
-8в8и-
--в8й8
-8в8й-
--в8к8
-8в8к-
--в8л8
-8в8л-
--в8м8
-8в8м-
--в8н8
-8в8н-
--в8о8
-8в8о-
--в8п8
-8в8п-
--в8р8
-8в8р-
--в8с8
-8в8с-
--в8т8
-8в8т-
--в8у8
-8в8у-
--в8ф8
-8в8ф-
--в8х8
-8в8х-
--в8ц8
-8в8ц-
--в8ч8
-8в8ч-
--в8ш8
-8в8ш-
--в8щ8
-8в8щ-
--в8ъ8
-8в8ъ-
--в8ы8
-8в8ы-
--в8ь8
-8в8ь-
--в8э8
-8в8э-
--в8ю8
-8в8ю-
--в8я8
-8в8я-
--г8а8
-8г8а-
--г8б8
-8г8б-
--г8в8
-8г8в-
--г8г8
-8г8г-
--г8д8
-8г8д-
--г8е8
-8г8е-
--г8ё8
-8г8ё-
--г8ж8
-8г8ж-
--г8з8
-8г8з-
--г8и8
-8г8и-
--г8й8
-8г8й-
--г8к8
-8г8к-
--г8л8
-8г8л-
--г8м8
-8г8м-
--г8н8
-8г8н-
--г8о8
-8г8о-
--г8п8
-8г8п-
--г8р8
-8г8р-
--г8с8
-8г8с-
--г8т8
-8г8т-
--г8у8
-8г8у-
--г8ф8
-8г8ф-
--г8х8
-8г8х-
--г8ц8
-8г8ц-
--г8ч8
-8г8ч-
--г8ш8
-8г8ш-
--г8щ8
-8г8щ-
--г8ъ8
-8г8ъ-
--г8ы8
-8г8ы-
--г8ь8
-8г8ь-
--г8э8
-8г8э-
--г8ю8
-8г8ю-
--г8я8
-8г8я-
--д8а8
-8д8а-
--д8б8
-8д8б-
--д8в8
-8д8в-
--д8г8
-8д8г-
--д8д8
-8д8д-
--д8е8
-8д8е-
--д8ё8
-8д8ё-
--д8ж8
-8д8ж-
--д8з8
-8д8з-
--д8и8
-8д8и-
--д8й8
-8д8й-
--д8к8
-8д8к-
--д8л8
-8д8л-
--д8м8
-8д8м-
--д8н8
-8д8н-
--д8о8
-8д8о-
--д8п8
-8д8п-
--д8р8
-8д8р-
--д8с8
-8д8с-
--д8т8
-8д8т-
--д8у8
-8д8у-
--д8ф8
-8д8ф-
--д8х8
-8д8х-
--д8ц8
-8д8ц-
--д8ч8
-8д8ч-
--д8ш8
-8д8ш-
--д8щ8
-8д8щ-
--д8ъ8
-8д8ъ-
--д8ы8
-8д8ы-
--д8ь8
-8д8ь-
--д8э8
-8д8э-
--д8ю8
-8д8ю-
--д8я8
-8д8я-
--е8а8
-8е8а-
--е8б8
-8е8б-
--е8в8
-8е8в-
--е8г8
-8е8г-
--е8д8
-8е8д-
--е8е8
-8е8е-
--е8ё8
-8е8ё-
--е8ж8
-8е8ж-
--е8з8
-8е8з-
--е8и8
-8е8и-
--е8й8
-8е8й-
--е8к8
-8е8к-
--е8л8
-8е8л-
--е8м8
-8е8м-
--е8н8
-8е8н-
--е8о8
-8е8о-
--е8п8
-8е8п-
--е8р8
-8е8р-
--е8с8
-8е8с-
--е8т8
-8е8т-
--е8у8
-8е8у-
--е8ф8
-8е8ф-
--е8х8
-8е8х-
--е8ц8
-8е8ц-
--е8ч8
-8е8ч-
--е8ш8
-8е8ш-
--е8щ8
-8е8щ-
--е8ъ8
-8е8ъ-
--е8ы8
-8е8ы-
--е8ь8
-8е8ь-
--е8э8
-8е8э-
--е8ю8
-8е8ю-
--е8я8
-8е8я-
--ё8а8
-8ё8а-
--ё8б8
-8ё8б-
--ё8в8
-8ё8в-
--ё8г8
-8ё8г-
--ё8д8
-8ё8д-
--ё8е8
-8ё8е-
--ё8ё8
-8ё8ё-
--ё8ж8
-8ё8ж-
--ё8з8
-8ё8з-
--ё8и8
-8ё8и-
--ё8й8
-8ё8й-
--ё8к8
-8ё8к-
--ё8л8
-8ё8л-
--ё8м8
-8ё8м-
--ё8н8
-8ё8н-
--ё8о8
-8ё8о-
--ё8п8
-8ё8п-
--ё8р8
-8ё8р-
--ё8с8
-8ё8с-
--ё8т8
-8ё8т-
--ё8у8
-8ё8у-
--ё8ф8
-8ё8ф-
--ё8х8
-8ё8х-
--ё8ц8
-8ё8ц-
--ё8ч8
-8ё8ч-
--ё8ш8
-8ё8ш-
--ё8щ8
-8ё8щ-
--ё8ъ8
-8ё8ъ-
--ё8ы8
-8ё8ы-
--ё8ь8
-8ё8ь-
--ё8э8
-8ё8э-
--ё8ю8
-8ё8ю-
--ё8я8
-8ё8я-
--ж8а8
-8ж8а-
--ж8б8
-8ж8б-
--ж8в8
-8ж8в-
--ж8г8
-8ж8г-
--ж8д8
-8ж8д-
--ж8е8
-8ж8е-
--ж8ё8
-8ж8ё-
--ж8ж8
-8ж8ж-
--ж8з8
-8ж8з-
--ж8и8
-8ж8и-
--ж8й8
-8ж8й-
--ж8к8
-8ж8к-
--ж8л8
-8ж8л-
--ж8м8
-8ж8м-
--ж8н8
-8ж8н-
--ж8о8
-8ж8о-
--ж8п8
-8ж8п-
--ж8р8
-8ж8р-
--ж8с8
-8ж8с-
--ж8т8
-8ж8т-
--ж8у8
-8ж8у-
--ж8ф8
-8ж8ф-
--ж8х8
-8ж8х-
--ж8ц8
-8ж8ц-
--ж8ч8
-8ж8ч-
--ж8ш8
-8ж8ш-
--ж8щ8
-8ж8щ-
--ж8ъ8
-8ж8ъ-
--ж8ы8
-8ж8ы-
--ж8ь8
-8ж8ь-
--ж8э8
-8ж8э-
--ж8ю8
-8ж8ю-
--ж8я8
-8ж8я-
--з8а8
-8з8а-
--з8б8
-8з8б-
--з8в8
-8з8в-
--з8г8
-8з8г-
--з8д8
-8з8д-
--з8е8
-8з8е-
--з8ё8
-8з8ё-
--з8ж8
-8з8ж-
--з8з8
-8з8з-
--з8и8
-8з8и-
--з8й8
-8з8й-
--з8к8
-8з8к-
--з8л8
-8з8л-
--з8м8
-8з8м-
--з8н8
-8з8н-
--з8о8
-8з8о-
--з8п8
-8з8п-
--з8р8
-8з8р-
--з8с8
-8з8с-
--з8т8
-8з8т-
--з8у8
-8з8у-
--з8ф8
-8з8ф-
--з8х8
-8з8х-
--з8ц8
-8з8ц-
--з8ч8
-8з8ч-
--з8ш8
-8з8ш-
--з8щ8
-8з8щ-
--з8ъ8
-8з8ъ-
--з8ы8
-8з8ы-
--з8ь8
-8з8ь-
--з8э8
-8з8э-
--з8ю8
-8з8ю-
--з8я8
-8з8я-
--и8а8
-8и8а-
--и8б8
-8и8б-
--и8в8
-8и8в-
--и8г8
-8и8г-
--и8д8
-8и8д-
--и8е8
-8и8е-
--и8ё8
-8и8ё-
--и8ж8
-8и8ж-
--и8з8
-8и8з-
--и8и8
-8и8и-
--и8й8
-8и8й-
--и8к8
-8и8к-
--и8л8
-8и8л-
--и8м8
-8и8м-
--и8н8
-8и8н-
--и8о8
-8и8о-
--и8п8
-8и8п-
--и8р8
-8и8р-
--и8с8
-8и8с-
--и8т8
-8и8т-
--и8у8
-8и8у-
--и8ф8
-8и8ф-
--и8х8
-8и8х-
--и8ц8
-8и8ц-
--и8ч8
-8и8ч-
--и8ш8
-8и8ш-
--и8щ8
-8и8щ-
--и8ъ8
-8и8ъ-
--и8ы8
-8и8ы-
--и8ь8
-8и8ь-
--и8э8
-8и8э-
--и8ю8
-8и8ю-
--и8я8
-8и8я-
--й8а8
-8й8а-
--й8б8
-8й8б-
--й8в8
-8й8в-
--й8г8
-8й8г-
--й8д8
-8й8д-
--й8е8
-8й8е-
--й8ё8
-8й8ё-
--й8ж8
-8й8ж-
--й8з8
-8й8з-
--й8и8
-8й8и-
--й8й8
-8й8й-
--й8к8
-8й8к-
--й8л8
-8й8л-
--й8м8
-8й8м-
--й8н8
-8й8н-
--й8о8
-8й8о-
--й8п8
-8й8п-
--й8р8
-8й8р-
--й8с8
-8й8с-
--й8т8
-8й8т-
--й8у8
-8й8у-
--й8ф8
-8й8ф-
--й8х8
-8й8х-
--й8ц8
-8й8ц-
--й8ч8
-8й8ч-
--й8ш8
-8й8ш-
--й8щ8
-8й8щ-
--й8ъ8
-8й8ъ-
--й8ы8
-8й8ы-
--й8ь8
-8й8ь-
--й8э8
-8й8э-
--й8ю8
-8й8ю-
--й8я8
-8й8я-
--к8а8
-8к8а-
--к8б8
-8к8б-
--к8в8
-8к8в-
--к8г8
-8к8г-
--к8д8
-8к8д-
--к8е8
-8к8е-
--к8ё8
-8к8ё-
--к8ж8
-8к8ж-
--к8з8
-8к8з-
--к8и8
-8к8и-
--к8й8
-8к8й-
--к8к8
-8к8к-
--к8л8
-8к8л-
--к8м8
-8к8м-
--к8н8
-8к8н-
--к8о8
-8к8о-
--к8п8
-8к8п-
--к8р8
-8к8р-
--к8с8
-8к8с-
--к8т8
-8к8т-
--к8у8
-8к8у-
--к8ф8
-8к8ф-
--к8х8
-8к8х-
--к8ц8
-8к8ц-
--к8ч8
-8к8ч-
--к8ш8
-8к8ш-
--к8щ8
-8к8щ-
--к8ъ8
-8к8ъ-
--к8ы8
-8к8ы-
--к8ь8
-8к8ь-
--к8э8
-8к8э-
--к8ю8
-8к8ю-
--к8я8
-8к8я-
--л8а8
-8л8а-
--л8б8
-8л8б-
--л8в8
-8л8в-
--л8г8
-8л8г-
--л8д8
-8л8д-
--л8е8
-8л8е-
--л8ё8
-8л8ё-
--л8ж8
-8л8ж-
--л8з8
-8л8з-
--л8и8
-8л8и-
--л8й8
-8л8й-
--л8к8
-8л8к-
--л8л8
-8л8л-
--л8м8
-8л8м-
--л8н8
-8л8н-
--л8о8
-8л8о-
--л8п8
-8л8п-
--л8р8
-8л8р-
--л8с8
-8л8с-
--л8т8
-8л8т-
--л8у8
-8л8у-
--л8ф8
-8л8ф-
--л8х8
-8л8х-
--л8ц8
-8л8ц-
--л8ч8
-8л8ч-
--л8ш8
-8л8ш-
--л8щ8
-8л8щ-
--л8ъ8
-8л8ъ-
--л8ы8
-8л8ы-
--л8ь8
-8л8ь-
--л8э8
-8л8э-
--л8ю8
-8л8ю-
--л8я8
-8л8я-
--м8а8
-8м8а-
--м8б8
-8м8б-
--м8в8
-8м8в-
--м8г8
-8м8г-
--м8д8
-8м8д-
--м8е8
-8м8е-
--м8ё8
-8м8ё-
--м8ж8
-8м8ж-
--м8з8
-8м8з-
--м8и8
-8м8и-
--м8й8
-8м8й-
--м8к8
-8м8к-
--м8л8
-8м8л-
--м8м8
-8м8м-
--м8н8
-8м8н-
--м8о8
-8м8о-
--м8п8
-8м8п-
--м8р8
-8м8р-
--м8с8
-8м8с-
--м8т8
-8м8т-
--м8у8
-8м8у-
--м8ф8
-8м8ф-
--м8х8
-8м8х-
--м8ц8
-8м8ц-
--м8ч8
-8м8ч-
--м8ш8
-8м8ш-
--м8щ8
-8м8щ-
--м8ъ8
-8м8ъ-
--м8ы8
-8м8ы-
--м8ь8
-8м8ь-
--м8э8
-8м8э-
--м8ю8
-8м8ю-
--м8я8
-8м8я-
--н8а8
-8н8а-
--н8б8
-8н8б-
--н8в8
-8н8в-
--н8г8
-8н8г-
--н8д8
-8н8д-
--н8е8
-8н8е-
--н8ё8
-8н8ё-
--н8ж8
-8н8ж-
--н8з8
-8н8з-
--н8и8
-8н8и-
--н8й8
-8н8й-
--н8к8
-8н8к-
--н8л8
-8н8л-
--н8м8
-8н8м-
--н8н8
-8н8н-
--н8о8
-8н8о-
--н8п8
-8н8п-
--н8р8
-8н8р-
--н8с8
-8н8с-
--н8т8
-8н8т-
--н8у8
-8н8у-
--н8ф8
-8н8ф-
--н8х8
-8н8х-
--н8ц8
-8н8ц-
--н8ч8
-8н8ч-
--н8ш8
-8н8ш-
--н8щ8
-8н8щ-
--н8ъ8
-8н8ъ-
--н8ы8
-8н8ы-
--н8ь8
-8н8ь-
--н8э8
-8н8э-
--н8ю8
-8н8ю-
--н8я8
-8н8я-
--о8а8
-8о8а-
--о8б8
-8о8б-
--о8в8
-8о8в-
--о8г8
-8о8г-
--о8д8
-8о8д-
--о8е8
-8о8е-
--о8ё8
-8о8ё-
--о8ж8
-8о8ж-
--о8з8
-8о8з-
--о8и8
-8о8и-
--о8й8
-8о8й-
--о8к8
-8о8к-
--о8л8
-8о8л-
--о8м8
-8о8м-
--о8н8
-8о8н-
--о8о8
-8о8о-
--о8п8
-8о8п-
--о8р8
-8о8р-
--о8с8
-8о8с-
--о8т8
-8о8т-
--о8у8
-8о8у-
--о8ф8
-8о8ф-
--о8х8
-8о8х-
--о8ц8
-8о8ц-
--о8ч8
-8о8ч-
--о8ш8
-8о8ш-
--о8щ8
-8о8щ-
--о8ъ8
-8о8ъ-
--о8ы8
-8о8ы-
--о8ь8
-8о8ь-
--о8э8
-8о8э-
--о8ю8
-8о8ю-
--о8я8
-8о8я-
--п8а8
-8п8а-
--п8б8
-8п8б-
--п8в8
-8п8в-
--п8г8
-8п8г-
--п8д8
-8п8д-
--п8е8
-8п8е-
--п8ё8
-8п8ё-
--п8ж8
-8п8ж-
--п8з8
-8п8з-
--п8и8
-8п8и-
--п8й8
-8п8й-
--п8к8
-8п8к-
--п8л8
-8п8л-
--п8м8
-8п8м-
--п8н8
-8п8н-
--п8о8
-8п8о-
--п8п8
-8п8п-
--п8р8
-8п8р-
--п8с8
-8п8с-
--п8т8
-8п8т-
--п8у8
-8п8у-
--п8ф8
-8п8ф-
--п8х8
-8п8х-
--п8ц8
-8п8ц-
--п8ч8
-8п8ч-
--п8ш8
-8п8ш-
--п8щ8
-8п8щ-
--п8ъ8
-8п8ъ-
--п8ы8
-8п8ы-
--п8ь8
-8п8ь-
--п8э8
-8п8э-
--п8ю8
-8п8ю-
--п8я8
-8п8я-
--р8а8
-8р8а-
--р8б8
-8р8б-
--р8в8
-8р8в-
--р8г8
-8р8г-
--р8д8
-8р8д-
--р8е8
-8р8е-
--р8ё8
-8р8ё-
--р8ж8
-8р8ж-
--р8з8
-8р8з-
--р8и8
-8р8и-
--р8й8
-8р8й-
--р8к8
-8р8к-
--р8л8
-8р8л-
--р8м8
-8р8м-
--р8н8
-8р8н-
--р8о8
-8р8о-
--р8п8
-8р8п-
--р8р8
-8р8р-
--р8с8
-8р8с-
--р8т8
-8р8т-
--р8у8
-8р8у-
--р8ф8
-8р8ф-
--р8х8
-8р8х-
--р8ц8
-8р8ц-
--р8ч8
-8р8ч-
--р8ш8
-8р8ш-
--р8щ8
-8р8щ-
--р8ъ8
-8р8ъ-
--р8ы8
-8р8ы-
--р8ь8
-8р8ь-
--р8э8
-8р8э-
--р8ю8
-8р8ю-
--р8я8
-8р8я-
--с8а8
-8с8а-
--с8б8
-8с8б-
--с8в8
-8с8в-
--с8г8
-8с8г-
--с8д8
-8с8д-
--с8е8
-8с8е-
--с8ё8
-8с8ё-
--с8ж8
-8с8ж-
--с8з8
-8с8з-
--с8и8
-8с8и-
--с8й8
-8с8й-
--с8к8
-8с8к-
--с8л8
-8с8л-
--с8м8
-8с8м-
--с8н8
-8с8н-
--с8о8
-8с8о-
--с8п8
-8с8п-
--с8р8
-8с8р-
--с8с8
-8с8с-
--с8т8
-8с8т-
--с8у8
-8с8у-
--с8ф8
-8с8ф-
--с8х8
-8с8х-
--с8ц8
-8с8ц-
--с8ч8
-8с8ч-
--с8ш8
-8с8ш-
--с8щ8
-8с8щ-
--с8ъ8
-8с8ъ-
--с8ы8
-8с8ы-
--с8ь8
-8с8ь-
--с8э8
-8с8э-
--с8ю8
-8с8ю-
--с8я8
-8с8я-
--т8а8
-8т8а-
--т8б8
-8т8б-
--т8в8
-8т8в-
--т8г8
-8т8г-
--т8д8
-8т8д-
--т8е8
-8т8е-
--т8ё8
-8т8ё-
--т8ж8
-8т8ж-
--т8з8
-8т8з-
--т8и8
-8т8и-
--т8й8
-8т8й-
--т8к8
-8т8к-
--т8л8
-8т8л-
--т8м8
-8т8м-
--т8н8
-8т8н-
--т8о8
-8т8о-
--т8п8
-8т8п-
--т8р8
-8т8р-
--т8с8
-8т8с-
--т8т8
-8т8т-
--т8у8
-8т8у-
--т8ф8
-8т8ф-
--т8х8
-8т8х-
--т8ц8
-8т8ц-
--т8ч8
-8т8ч-
--т8ш8
-8т8ш-
--т8щ8
-8т8щ-
--т8ъ8
-8т8ъ-
--т8ы8
-8т8ы-
--т8ь8
-8т8ь-
--т8э8
-8т8э-
--т8ю8
-8т8ю-
--т8я8
-8т8я-
--у8а8
-8у8а-
--у8б8
-8у8б-
--у8в8
-8у8в-
--у8г8
-8у8г-
--у8д8
-8у8д-
--у8е8
-8у8е-
--у8ё8
-8у8ё-
--у8ж8
-8у8ж-
--у8з8
-8у8з-
--у8и8
-8у8и-
--у8й8
-8у8й-
--у8к8
-8у8к-
--у8л8
-8у8л-
--у8м8
-8у8м-
--у8н8
-8у8н-
--у8о8
-8у8о-
--у8п8
-8у8п-
--у8р8
-8у8р-
--у8с8
-8у8с-
--у8т8
-8у8т-
--у8у8
-8у8у-
--у8ф8
-8у8ф-
--у8х8
-8у8х-
--у8ц8
-8у8ц-
--у8ч8
-8у8ч-
--у8ш8
-8у8ш-
--у8щ8
-8у8щ-
--у8ъ8
-8у8ъ-
--у8ы8
-8у8ы-
--у8ь8
-8у8ь-
--у8э8
-8у8э-
--у8ю8
-8у8ю-
--у8я8
-8у8я-
--ф8а8
-8ф8а-
--ф8б8
-8ф8б-
--ф8в8
-8ф8в-
--ф8г8
-8ф8г-
--ф8д8
-8ф8д-
--ф8е8
-8ф8е-
--ф8ё8
-8ф8ё-
--ф8ж8
-8ф8ж-
--ф8з8
-8ф8з-
--ф8и8
-8ф8и-
--ф8й8
-8ф8й-
--ф8к8
-8ф8к-
--ф8л8
-8ф8л-
--ф8м8
-8ф8м-
--ф8н8
-8ф8н-
--ф8о8
-8ф8о-
--ф8п8
-8ф8п-
--ф8р8
-8ф8р-
--ф8с8
-8ф8с-
--ф8т8
-8ф8т-
--ф8у8
-8ф8у-
--ф8ф8
-8ф8ф-
--ф8х8
-8ф8х-
--ф8ц8
-8ф8ц-
--ф8ч8
-8ф8ч-
--ф8ш8
-8ф8ш-
--ф8щ8
-8ф8щ-
--ф8ъ8
-8ф8ъ-
--ф8ы8
-8ф8ы-
--ф8ь8
-8ф8ь-
--ф8э8
-8ф8э-
--ф8ю8
-8ф8ю-
--ф8я8
-8ф8я-
--х8а8
-8х8а-
--х8б8
-8х8б-
--х8в8
-8х8в-
--х8г8
-8х8г-
--х8д8
-8х8д-
--х8е8
-8х8е-
--х8ё8
-8х8ё-
--х8ж8
-8х8ж-
--х8з8
-8х8з-
--х8и8
-8х8и-
--х8й8
-8х8й-
--х8к8
-8х8к-
--х8л8
-8х8л-
--х8м8
-8х8м-
--х8н8
-8х8н-
--х8о8
-8х8о-
--х8п8
-8х8п-
--х8р8
-8х8р-
--х8с8
-8х8с-
--х8т8
-8х8т-
--х8у8
-8х8у-
--х8ф8
-8х8ф-
--х8х8
-8х8х-
--х8ц8
-8х8ц-
--х8ч8
-8х8ч-
--х8ш8
-8х8ш-
--х8щ8
-8х8щ-
--х8ъ8
-8х8ъ-
--х8ы8
-8х8ы-
--х8ь8
-8х8ь-
--х8э8
-8х8э-
--х8ю8
-8х8ю-
--х8я8
-8х8я-
--ц8а8
-8ц8а-
--ц8б8
-8ц8б-
--ц8в8
-8ц8в-
--ц8г8
-8ц8г-
--ц8д8
-8ц8д-
--ц8е8
-8ц8е-
--ц8ё8
-8ц8ё-
--ц8ж8
-8ц8ж-
--ц8з8
-8ц8з-
--ц8и8
-8ц8и-
--ц8й8
-8ц8й-
--ц8к8
-8ц8к-
--ц8л8
-8ц8л-
--ц8м8
-8ц8м-
--ц8н8
-8ц8н-
--ц8о8
-8ц8о-
--ц8п8
-8ц8п-
--ц8р8
-8ц8р-
--ц8с8
-8ц8с-
--ц8т8
-8ц8т-
--ц8у8
-8ц8у-
--ц8ф8
-8ц8ф-
--ц8х8
-8ц8х-
--ц8ц8
-8ц8ц-
--ц8ч8
-8ц8ч-
--ц8ш8
-8ц8ш-
--ц8щ8
-8ц8щ-
--ц8ъ8
-8ц8ъ-
--ц8ы8
-8ц8ы-
--ц8ь8
-8ц8ь-
--ц8э8
-8ц8э-
--ц8ю8
-8ц8ю-
--ц8я8
-8ц8я-
--ч8а8
-8ч8а-
--ч8б8
-8ч8б-
--ч8в8
-8ч8в-
--ч8г8
-8ч8г-
--ч8д8
-8ч8д-
--ч8е8
-8ч8е-
--ч8ё8
-8ч8ё-
--ч8ж8
-8ч8ж-
--ч8з8
-8ч8з-
--ч8и8
-8ч8и-
--ч8й8
-8ч8й-
--ч8к8
-8ч8к-
--ч8л8
-8ч8л-
--ч8м8
-8ч8м-
--ч8н8
-8ч8н-
--ч8о8
-8ч8о-
--ч8п8
-8ч8п-
--ч8р8
-8ч8р-
--ч8с8
-8ч8с-
--ч8т8
-8ч8т-
--ч8у8
-8ч8у-
--ч8ф8
-8ч8ф-
--ч8х8
-8ч8х-
--ч8ц8
-8ч8ц-
--ч8ч8
-8ч8ч-
--ч8ш8
-8ч8ш-
--ч8щ8
-8ч8щ-
--ч8ъ8
-8ч8ъ-
--ч8ы8
-8ч8ы-
--ч8ь8
-8ч8ь-
--ч8э8
-8ч8э-
--ч8ю8
-8ч8ю-
--ч8я8
-8ч8я-
--ш8а8
-8ш8а-
--ш8б8
-8ш8б-
--ш8в8
-8ш8в-
--ш8г8
-8ш8г-
--ш8д8
-8ш8д-
--ш8е8
-8ш8е-
--ш8ё8
-8ш8ё-
--ш8ж8
-8ш8ж-
--ш8з8
-8ш8з-
--ш8и8
-8ш8и-
--ш8й8
-8ш8й-
--ш8к8
-8ш8к-
--ш8л8
-8ш8л-
--ш8м8
-8ш8м-
--ш8н8
-8ш8н-
--ш8о8
-8ш8о-
--ш8п8
-8ш8п-
--ш8р8
-8ш8р-
--ш8с8
-8ш8с-
--ш8т8
-8ш8т-
--ш8у8
-8ш8у-
--ш8ф8
-8ш8ф-
--ш8х8
-8ш8х-
--ш8ц8
-8ш8ц-
--ш8ч8
-8ш8ч-
--ш8ш8
-8ш8ш-
--ш8щ8
-8ш8щ-
--ш8ъ8
-8ш8ъ-
--ш8ы8
-8ш8ы-
--ш8ь8
-8ш8ь-
--ш8э8
-8ш8э-
--ш8ю8
-8ш8ю-
--ш8я8
-8ш8я-
--щ8а8
-8щ8а-
--щ8б8
-8щ8б-
--щ8в8
-8щ8в-
--щ8г8
-8щ8г-
--щ8д8
-8щ8д-
--щ8е8
-8щ8е-
--щ8ё8
-8щ8ё-
--щ8ж8
-8щ8ж-
--щ8з8
-8щ8з-
--щ8и8
-8щ8и-
--щ8й8
-8щ8й-
--щ8к8
-8щ8к-
--щ8л8
-8щ8л-
--щ8м8
-8щ8м-
--щ8н8
-8щ8н-
--щ8о8
-8щ8о-
--щ8п8
-8щ8п-
--щ8р8
-8щ8р-
--щ8с8
-8щ8с-
--щ8т8
-8щ8т-
--щ8у8
-8щ8у-
--щ8ф8
-8щ8ф-
--щ8х8
-8щ8х-
--щ8ц8
-8щ8ц-
--щ8ч8
-8щ8ч-
--щ8ш8
-8щ8ш-
--щ8щ8
-8щ8щ-
--щ8ъ8
-8щ8ъ-
--щ8ы8
-8щ8ы-
--щ8ь8
-8щ8ь-
--щ8э8
-8щ8э-
--щ8ю8
-8щ8ю-
--щ8я8
-8щ8я-
--ъ8а8
-8ъ8а-
--ъ8б8
-8ъ8б-
--ъ8в8
-8ъ8в-
--ъ8г8
-8ъ8г-
--ъ8д8
-8ъ8д-
--ъ8е8
-8ъ8е-
--ъ8ё8
-8ъ8ё-
--ъ8ж8
-8ъ8ж-
--ъ8з8
-8ъ8з-
--ъ8и8
-8ъ8и-
--ъ8й8
-8ъ8й-
--ъ8к8
-8ъ8к-
--ъ8л8
-8ъ8л-
--ъ8м8
-8ъ8м-
--ъ8н8
-8ъ8н-
--ъ8о8
-8ъ8о-
--ъ8п8
-8ъ8п-
--ъ8р8
-8ъ8р-
--ъ8с8
-8ъ8с-
--ъ8т8
-8ъ8т-
--ъ8у8
-8ъ8у-
--ъ8ф8
-8ъ8ф-
--ъ8х8
-8ъ8х-
--ъ8ц8
-8ъ8ц-
--ъ8ч8
-8ъ8ч-
--ъ8ш8
-8ъ8ш-
--ъ8щ8
-8ъ8щ-
--ъ8ъ8
-8ъ8ъ-
--ъ8ы8
-8ъ8ы-
--ъ8ь8
-8ъ8ь-
--ъ8э8
-8ъ8э-
--ъ8ю8
-8ъ8ю-
--ъ8я8
-8ъ8я-
--ы8а8
-8ы8а-
--ы8б8
-8ы8б-
--ы8в8
-8ы8в-
--ы8г8
-8ы8г-
--ы8д8
-8ы8д-
--ы8е8
-8ы8е-
--ы8ё8
-8ы8ё-
--ы8ж8
-8ы8ж-
--ы8з8
-8ы8з-
--ы8и8
-8ы8и-
--ы8й8
-8ы8й-
--ы8к8
-8ы8к-
--ы8л8
-8ы8л-
--ы8м8
-8ы8м-
--ы8н8
-8ы8н-
--ы8о8
-8ы8о-
--ы8п8
-8ы8п-
--ы8р8
-8ы8р-
--ы8с8
-8ы8с-
--ы8т8
-8ы8т-
--ы8у8
-8ы8у-
--ы8ф8
-8ы8ф-
--ы8х8
-8ы8х-
--ы8ц8
-8ы8ц-
--ы8ч8
-8ы8ч-
--ы8ш8
-8ы8ш-
--ы8щ8
-8ы8щ-
--ы8ъ8
-8ы8ъ-
--ы8ы8
-8ы8ы-
--ы8ь8
-8ы8ь-
--ы8э8
-8ы8э-
--ы8ю8
-8ы8ю-
--ы8я8
-8ы8я-
--ь8а8
-8ь8а-
--ь8б8
-8ь8б-
--ь8в8
-8ь8в-
--ь8г8
-8ь8г-
--ь8д8
-8ь8д-
--ь8е8
-8ь8е-
--ь8ё8
-8ь8ё-
--ь8ж8
-8ь8ж-
--ь8з8
-8ь8з-
--ь8и8
-8ь8и-
--ь8й8
-8ь8й-
--ь8к8
-8ь8к-
--ь8л8
-8ь8л-
--ь8м8
-8ь8м-
--ь8н8
-8ь8н-
--ь8о8
-8ь8о-
--ь8п8
-8ь8п-
--ь8р8
-8ь8р-
--ь8с8
-8ь8с-
--ь8т8
-8ь8т-
--ь8у8
-8ь8у-
--ь8ф8
-8ь8ф-
--ь8х8
-8ь8х-
--ь8ц8
-8ь8ц-
--ь8ч8
-8ь8ч-
--ь8ш8
-8ь8ш-
--ь8щ8
-8ь8щ-
--ь8ъ8
-8ь8ъ-
--ь8ы8
-8ь8ы-
--ь8ь8
-8ь8ь-
--ь8э8
-8ь8э-
--ь8ю8
-8ь8ю-
--ь8я8
-8ь8я-
--э8а8
-8э8а-
--э8б8
-8э8б-
--э8в8
-8э8в-
--э8г8
-8э8г-
--э8д8
-8э8д-
--э8е8
-8э8е-
--э8ё8
-8э8ё-
--э8ж8
-8э8ж-
--э8з8
-8э8з-
--э8и8
-8э8и-
--э8й8
-8э8й-
--э8к8
-8э8к-
--э8л8
-8э8л-
--э8м8
-8э8м-
--э8н8
-8э8н-
--э8о8
-8э8о-
--э8п8
-8э8п-
--э8р8
-8э8р-
--э8с8
-8э8с-
--э8т8
-8э8т-
--э8у8
-8э8у-
--э8ф8
-8э8ф-
--э8х8
-8э8х-
--э8ц8
-8э8ц-
--э8ч8
-8э8ч-
--э8ш8
-8э8ш-
--э8щ8
-8э8щ-
--э8ъ8
-8э8ъ-
--э8ы8
-8э8ы-
--э8ь8
-8э8ь-
--э8э8
-8э8э-
--э8ю8
-8э8ю-
--э8я8
-8э8я-
--ю8а8
-8ю8а-
--ю8б8
-8ю8б-
--ю8в8
-8ю8в-
--ю8г8
-8ю8г-
--ю8д8
-8ю8д-
--ю8е8
-8ю8е-
--ю8ё8
-8ю8ё-
--ю8ж8
-8ю8ж-
--ю8з8
-8ю8з-
--ю8и8
-8ю8и-
--ю8й8
-8ю8й-
--ю8к8
-8ю8к-
--ю8л8
-8ю8л-
--ю8м8
-8ю8м-
--ю8н8
-8ю8н-
--ю8о8
-8ю8о-
--ю8п8
-8ю8п-
--ю8р8
-8ю8р-
--ю8с8
-8ю8с-
--ю8т8
-8ю8т-
--ю8у8
-8ю8у-
--ю8ф8
-8ю8ф-
--ю8х8
-8ю8х-
--ю8ц8
-8ю8ц-
--ю8ч8
-8ю8ч-
--ю8ш8
-8ю8ш-
--ю8щ8
-8ю8щ-
--ю8ъ8
-8ю8ъ-
--ю8ы8
-8ю8ы-
--ю8ь8
-8ю8ь-
--ю8э8
-8ю8э-
--ю8ю8
-8ю8ю-
--ю8я8
-8ю8я-
--я8а8
-8я8а-
--я8б8
-8я8б-
--я8в8
-8я8в-
--я8г8
-8я8г-
--я8д8
-8я8д-
--я8е8
-8я8е-
--я8ё8
-8я8ё-
--я8ж8
-8я8ж-
--я8з8
-8я8з-
--я8и8
-8я8и-
--я8й8
-8я8й-
--я8к8
-8я8к-
--я8л8
-8я8л-
--я8м8
-8я8м-
--я8н8
-8я8н-
--я8о8
-8я8о-
--я8п8
-8я8п-
--я8р8
-8я8р-
--я8с8
-8я8с-
--я8т8
-8я8т-
--я8у8
-8я8у-
--я8ф8
-8я8ф-
--я8х8
-8я8х-
--я8ц8
-8я8ц-
--я8ч8
-8я8ч-
--я8ш8
-8я8ш-
--я8щ8
-8я8щ-
--я8ъ8
-8я8ъ-
--я8ы8
-8я8ы-
--я8ь8
-8я8ь-
--я8э8
-8я8э-
--я8ю8
-8я8ю-
--я8я8
-8я8я-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-sk.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-sk.hyp
deleted file mode 100644
index fdc5005f30b..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-sk.hyp
+++ /dev/null
@@ -1,12 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-sk.rme
-
-% used: a b d e i k m n o p r s t y ó ť
-
-\hyphenation{
-dosť
-me-tó-da
-me-tó-dy
-ne-do-stat-ka-mi
-sep-tem-bra} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-sk.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-sk.pat
deleted file mode 100644
index 66d32700a1a..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-sk.pat
+++ /dev/null
@@ -1,2474 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-sk.rme
-
-% used: a b c d e f g h i j k l m n o p r s t u v w x y z á ä é í ó ô ú ý č ď ľ ň ŕ š ť ž
-
-\patterns{
-a1
-á1
-ä1
-e1
-é1
-i1
-í1
-o1
-ó1
-ô1
-u1
-ú1
-y1
-ý1
-i2a
-i2á
-i2e
-i2u
-o2u
-c2h
-d2z
-d2ž
-2b1b
-2b1c
-2b1č
-2b1d
-2b1ď
-2b1f
-2b1g
-2b1h
-2b1c2h
-2b1j
-2b1k
-2b1l
-2b1ľ
-2b1m
-2b1n
-2b1ň
-2b1p
-2b1r
-2b1s
-2b1š
-2b1t
-2b1ť
-2b1v
-2b1w
-2b1x
-2b1z
-2b1ž
-2b1d2z
-2b1d2ž
-2c1b
-2c1c
-2c1č
-2c1d
-2c1ď
-2c1f
-2c1g
-2c1c2h
-2c1j
-2c1k
-2c1l
-2c1ľ
-2c1m
-2c1n
-2c1ň
-2c1p
-2c1r
-2c1s
-2c1š
-2c1t
-2c1ť
-2c1v
-2c1w
-2c1x
-2c1z
-2c1ž
-2c1d2z
-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č
-2d1d
-2d1ď
-2d1f
-2d1g
-2d1h
-2d1c2h
-2d1j
-2d1k
-2d1l
-2d1ľ
-2d1m
-2d1n
-2d1ň
-2d1p
-2d1r
-2d1s
-2d1š
-2d1t
-2d1ť
-2d1v
-2d1d2z
-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ď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č
-2f1d
-2f1ď
-2f1f
-2f1g
-2f1h
-2f1c2h
-2f1j
-2f1k
-2f1l
-2f1ľ
-2f1m
-2f1n
-2f1ň
-2f1p
-2f1r
-2f1s
-2f1š
-2f1t
-2f1ť
-2f1v
-2f1z
-2f1ž
-2f1d2z
-2f1d2ž
-2g1b
-2g1c
-2g1č
-2g1d
-2g1ď
-2g1f
-2g1g
-2g1h
-2g1c2h
-2g1j
-2g1k
-2g1l
-2g1ľ
-2g1m
-2g1n
-2g1ň
-2g1p
-2g1r
-2g1s
-2g1š
-2g1t
-2g1ť
-2g1v
-2g1z
-2g1ž
-2g1d2z
-2g1d2ž
-2h1b
-2h1c
-2h1č
-2h1d
-2h1ď
-2h1f
-2h1g
-2h1h
-2h1c2h
-2h1j
-2h1k
-2h1l
-2h1ľ
-2h1m
-2h1n
-2h1ň
-2h1p
-2h1r
-2h1s
-2h1š
-2h1t
-2h1ť
-2h1v
-2h1z
-2h1ž
-2h1d2z
-2h1d2ž
-2c2h1b
-2c2h1c
-2c2h1č
-2c2h1d
-2c2h1ď
-2c2h1f
-2c2h1g
-2c2h1h
-2c2h1c2h
-2c2h1j
-2c2h1k
-2c2h1l
-2c2h1ľ
-2c2h1m
-2c2h1n
-2c2h1ň
-2c2h1p
-2c2h1r
-2c2h1s
-2c2h1š
-2c2h1t
-2c2h1ť
-2c2h1v
-2c2h1w
-2c2h1ž
-2c2h1d2z
-2c2h1d2ž
-2j1b
-2j1c
-2j1č
-2j1d
-2j1ď
-2j1f
-2j1g
-2j1h
-2j1c2h
-2j1j
-2j1k
-2j1l
-2j1ľ
-2j1m
-2j1n
-2j1ň
-2j1p
-2j1r
-2j1s
-2j1š
-2j1t
-2j1ť
-2j1v
-2j1w
-2j1x
-2j1z
-2j1ž
-2j1d2z
-2j1d2ž
-2k1b
-2k1c
-2k1č
-2k1d
-2k1ď
-2k1f
-2k1g
-2k1h
-2k1c2h
-2k1j
-2k1k
-2k1l
-2k1ľ
-2k1m
-2k1n
-2k1ň
-2k1p
-2k1r
-2k1s
-2k1š
-2k1t
-2k1ť
-2k1v
-2k1w
-2k1x
-2k1z
-2k1ž
-2k1d2z
-2k1d2ž
-2l1b
-2l1c
-2l1č
-2l1d
-2l1ď
-2l1f
-2l1g
-2l1h
-2l1c2h
-2l1j
-2l1k
-2l1l
-2l1ľ
-2l1m
-2l1n
-2l1ň
-2l1p
-2l1r
-2l1s
-2l1š
-2l1t
-2l1ť
-2l1v
-2l1z
-2l1ž
-2l1d2z
-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č
-2m1d
-2m1ď
-2m1f
-2m1g
-2m1h
-2m1c2h
-2m1j
-2m1k
-2m1l
-2m1ľ
-2m1m
-2m1n
-2m1ň
-2m1p
-2m1r
-2m1s
-2m1š
-2m1t
-2m1ť
-2m1v
-2m1z
-2m1ž
-2m1d2z
-2m1d2ž
-2n1b
-2n1c
-2n1č
-2n1d
-2n1ď
-2n1f
-2n1g
-2n1h
-2n1c2h
-2n1j
-2n1k
-2n1l
-2n1ľ
-2n1m
-2n1n
-2n1ň
-2n1p
-2n1r
-2n1s
-2n1š
-2n1t
-2n1ť
-2n1v
-2n1w
-2n1x
-2n1z
-2n1ž
-2n1d2z
-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č
-2p1d
-2p1ď
-2p1f
-2p1g
-2p1h
-2p1c2h
-2p1j
-2p1k
-2p1l
-2p1ľ
-2p1m
-2p1n
-2p1ň
-2p1p
-2p1r
-2p1s
-2p1š
-2p1t
-2p1ť
-2p1v
-2p1w
-2p1x
-2p1z
-2p1ž
-2p1d2z
-2p1d2ž
-2r1b
-2r1c
-2r1č
-2r1d
-2r1ď
-2r1f
-2r1g
-2r1h
-2r1c2h
-2r1j
-2r1k
-2r1l
-2r1ľ
-2r1m
-2r1n
-2r1ň
-2r1p
-2r1r
-2r1s
-2r1š
-2r1t
-2r1ť
-2r1v
-2r1w
-2r1x
-2r1z
-2r1ž
-2r1d2z
-2r1d2ž
-2s1b
-2s1c
-2s1č
-2s1d
-2s1ď
-2s1f
-2s1g
-2s1h
-2s1c2h
-2s1j
-2s1k
-2s1l
-2s1ľ
-2s1m
-2s1n
-2s1ň
-2s1p
-2s1r
-2s1s
-2s1š
-2s1t
-2s1ť
-2s1v
-2s1z
-2s1ž
-2s1d2z
-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č
-2t1d
-2t1ď
-2t1f
-2t1g
-2t1h
-2t1c2h
-2t1j
-2t1k
-2t1l
-2t1ľ
-2t1m
-2t1n
-2t1ň
-2t1p
-2t1r
-2t1s
-2t1š
-2t1t
-2t1ť
-2t1v
-2t1w
-2t1x
-2t1z
-2t1ž
-2t1d2z
-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č
-2v1d
-2v1ď
-2v1f
-2v1g
-2v1h
-2v1c2h
-2v1j
-2v1k
-2v1l
-2v1ľ
-2v1m
-2v1n
-2v1ň
-2v1p
-2v1r
-2v1s
-2v1š
-2v1t
-2v1ť
-2v1v
-2v1w
-2v1x
-2v1z
-2v1ž
-2v1d2z
-2v1d2ž
-2z1b
-2z1c
-2z1č
-2z1d
-2z1ď
-2z1f
-2z1g
-2z1h
-2z1c2h
-2z1j
-2z1k
-2z1l
-2z1ľ
-2z1m
-2z1n
-2z1ň
-2z1p
-2z1r
-2z1s
-2z1š
-2z1t
-2z1ť
-2z1v
-2z1z
-2z1ž
-2z1d2z
-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ž1š
-2x1t
-2x1n
-2b1ŕ
-2ŕ1b
-2d2z1ŕ
-2ŕ1d2z
-2d2z1ľ
-2ŕ1d2ž
-2d2ž1ľ
-a1í2
-a1o2
-e1á2
-e1í2
-e1o2
-e1ó2
-e1u2
-i1o2
-o1a2
-o1e2
-o1i2
-o1o2
-u1a2
-u1á2
-u1i2
-u1í2
-u1o2
-u1u2
-y1a2
-y1e2
-y1ó2
-y1u2
-a2u1
-a2i1
-b2l3b
-3b2l3č
-b2l3c2h
-3b2l3k
-3b2ľ3k
-3b2l3ň
-b2l3š
-b2ľ3š
-3b2r3b
-b2r3d
-3b2r3k
-3b2ŕ3k
-3b2r3l
-3b2ŕ3ľ
-3b2r3n
-3b2r3ň
-3b2r3v
-b2r3z
-b3s2c
-b3s2t
-c3k2t
-3c2r3č
-3c2ŕ3č
-3c2r3k
-3c2ŕ3k
-c3t2v
-3č2l3n
-3č2r3č
-č2r3p
-3č2r3t
-3č2r3v
-d3c4h4n
-3d2l3b
-3d2l3h
-d2l3n
-3d2l3ž
-3d2ľ3ž
-3d2r3d
-3d2r3g
-d2r3l
-3d2r3k
-3d2r3m
-d2r3n
-3d2r3v
-3d2r3z
-3d2r3ž
-3d2ŕ3ž
-d3s2v
-d3s2t
-d3v2r
-3f2r3č
-3f2r3f
-3f2r3k
-3f2ŕ3k
-3f2r3m
-3f2r3n
-3g2l3g
-3g2r3c
-3g2r3g
-3h2l3b
-3h2ľ3b
-3h2l3t
-3h2m2l
-3h2r3b
-3h2ŕ3b
-3h2r3č
-3h2r3d
-3h2r3d2z
-3h2r3k
-3h2r3m
-3h2r3n
-3h2r3ň
-3h2r3t
-3h2r3v
-3c2h2l3p
-3c2h2r3b
-3c2h2r3č
-c2h2r3c4h
-3c2h2r3l
-3c2h2r3t
-j2c2h3n
-j3s2t
-j3š2le
-j3t2m
-j3t2r
-3k2l3b
-3k2ľ3b
-3k2l3č
-3k2l3z
-3k2ľ3z
-k2r3b
-3k2r3č
-3k2ŕ3č
-3k2ŕ3d
-3k2r3k
-3k2ŕ3k
-3k2ŕ3m
-3k2r3p
-3k2r3s
-3k2r3t
-3k2r3v
-k3s2ľ
-k2s3n
-k3t2r
-l3d2r
-ľ3k2n
-l3t2r
-m3b2l
-m3b2ľ
-m3b2r
-m3f2l
-m3f2r
-m3k2n
-3m2l3č
-3m2l3k
-m3p2l
-m3p2ľ
-m3p2r
-m3p2s
-3m2r3h
-m2r3c4h
-3m2r3k
-m2r3l
-m2r3š
-m2r3t
-3m2r3v
-3m2r3z
-3m2ŕ3z
-m3s2t
-m3š2t
-n3dľa
-n3d2r
-n3f2l
-n3f2r
-n3g2h
-n3g2l
-n3g2ľ
-n2g3n
-n3g2r
-n3g2v
-n3k2c
-n3k2h
-n3k2n
-n3k2r
-n3k2v
-n3s2c
-n3š2p
-n3š2t
-n3t2g
-n3t2l
-n3t2n
-n3t2r
-n2ž3m
-3p2l3n
-3p2l3ň
-3p2ľ3ň
-3p2l3z
-3p2ľ3z
-3p2ľ3ž
-3p2ŕ3c
-3p2r3č
-3p2r3d
-3p2r3s
-3p2r3š
-p3š2ť
-p3t2r
-r2b3n
-r3g2ľ
-r3g2r
-r3g2s
-r3k2d
-r2k3n
-r3k2t
-r3k2v
-r3p2c
-r3p2č
-r3p2r
-r3s2p
-r3š2č
-r3š2l
-r3š2r
-r2t3m
-r3t2n
-r2t3ň
-r3t2r
-r3t2v
-3s4c4h4n
-s2k3l
-s2k3m
-s2k3n
-s3k2r
-s3k2v
-3s2l3n
-3s2l3ň
-3s2l3z
-s3p2r
-3s2r3d
-3s4ŕ3k
-3s4r3š
-s3t2k
-ôs4t3k2ár3s4t4v
-s2t3l
-s3t2m
-s2t3n
-s3t2r
-s3t2v
-s2ť3h
-s2ť3m
-s2ť3p
-š3k2l
-š3k2r
-š3t2r
-3š4t4v
-t3k2l
-t3k2n
-3t2l3č
-3t2l3k
-t3h2l
-3t4r3č
-3t4r3h
-3t2r3l
-3t2r3k
-3t2r3m
-a4t2r3n
-3t2r3n
-3t2ŕ3n
-3t2ŕ3ň
-3t4r3p
-3t2r3v
-3t2ŕ3ž
-3v2l3č
-3v2ľ3č
-3v2l3h
-3v2l3k
-3v2l3n
-3v2r3h
-3v2r3c2h
-3v2r3l
-3v2ŕ3š
-3v2ŕ3t
-3v2r3z
-3v2ŕ3z
-3v4z4d
-3v4z4h
-3v4z4n
-3v3z2ť
-z3d2n
-noz5d4r
-3z4d4r
-3z4d4v
-z3g2n
-3z4h4r
-3z2r3k
-3z2r3n
-3z4v4l
-ž2d3n
-3ž2l3č
-3ž2l3t
-3ž2ľt
-3ž2r3ď
-ž3s2t
-x3p2l
-x3p2r
-x3t2r
-3b2l4č3n
-3b2ľ4č3k
-3b2l4n3k
-3b2ľ3k2n
-3b2r4b3l
-3b2r4b3t
-3b2r4č3k
-3b2r4d3c
-3b2ŕ4d3n
-3b2r3h2l
-3b4ŕ4k3n
-3b4r4m3b
-3b4r4n3č
-3b4r4n3k
-3b4r4š3l
-3b4r4t3l
-3b4r4t3n
-3b4r4v3n
-3b4r4z3d
-3b4r4z3l
-3b4r4z3n
-b3s2t2r
-3c4ŕ4č3k
-3c4r4k3n
-3c4v4r3č
-3c4v4r3k
-3c4v4ŕ3k
-3c4v4r3l
-3č4l4n3k
-3č4r3č4r
-3č4r4c4h3n
-3č4r4p3k
-3č4r4p3n
-3č4r4t3n
-3č4v4r3k
-3č4v4r3l
-3d4l4b3n
-d4ľ4ž3k
-d4l4ž3n
-d4ľ4ž3n
-3d4r4c3n
-3d4r4g3ľ
-3d4r4g3n
-3d4r4h3n
-3d4r4n3č
-3d4r4n3k
-3d4r4s3n
-3d4r4ž3b
-3d4r4ž3k
-3f4r4c3k
-3f4r4c3n
-3f4r4č3k
-3f4r4f3l
-3f4r4k3n
-3f4r4n3d
-3f4r4n3d4ž
-3f4r4n3g
-3f4r4n3k
-3g4l4g3n
-3g2r4c3k
-3h2ľ4b3k
-3h2l3t4n
-3h2r4b3č
-3h2r4č3k
-h2r4d3l
-3h2r4g3ľ
-3h2r4k3ľ
-3h2r4k3n
-3h2ŕ4k3n
-3h2r4n3č
-3h2r4s3t
-3h2r4s3ť
-3ch4ľ4p3k
-3c2h2r4b3t
-3c2h2r4c4h3l
-3c2h2r4c4h3ľ
-3c4h4r4s3t
-j3s4t4r
-j3s4t4v
-3k4l4b3č
-3k4l4b3k
-3k4l4z3k
-3k4l4z3n
-3k4r4č3m
-3k4r4č3n
-3k4r4k3v
-3k4r4m3n
-3k4ŕ4m3n
-3k4r4p3č
-3k4r4s3t
-3k4r4š3t
-3k4r4t3k
-3k4r4v3n
-3m2l4č3k
-3m2ľ4k3n
-3m2ľ4k3v
-3m2l4s3n
-m3p4r3p
-m3p4r3v
-3m4r4k3n
-3m4r4k3v
-3m4r4m3l
-3m4r4n3č
-3m4r4n3k
-3m4ŕ4š3t
-3m4ŕ4t3v
-3m4r4z3l
-3m4r4z3k
-3m4r4z3n
-n4g3s4t
-n3š4t4r
-n3t4l3m
-3p2l4z3l
-3p2ľ4z3n
-p2ŕ4c3n
-3p2r4č3k
-3p4r4d3n
-3p4ŕ4c2h3n
-3p4r4s3k
-3p4r4t3k
-r2s3k4d
-r2s3k4t
-čer4s3t4v
-3s4l4n3k
-3s4k4r3z
-3s4m4r3c
-3s4m4r3č
-3s4m4r3d
-3s4m4r3k
-3s4m4r3t
-3s4p4r3c4h
-3s4r4d3c
-3s4r4k3n
-3s4r4s3t
-3s4t4ľ3k
-s3t4r3b
-ko4s3t4r3č
-3s4t4r3č
-3s4t4ŕ3h
-3s4t4r3k
-s4t4r3v
-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č3k
-3t2r4d3l
-3t2r4h3l
-3t2r4h3n
-3t2r4k3n
-3t2r4k3v
-3t2r4m3n
-3t4ŕ4p3n
-3t2r4ž3k
-3t2r4ž3n
-3t2v4r3d
-3t2v4r3d4z
-3t2v4ŕ3d4z
-3v2l4h3č
-3v2l4h3k
-3v2l4h3n
-3v2l4n3k
-3v2l4n3n
-3v4r4h3n
-3v4r4k3n
-3v4ŕ4z3g
-3v4r4z3g
-3v4r4z3n
-3v4r4ž3l
-3z4h4ŕ3ň
-3z4r4n3n
-3ž4l4č3n
-3ž4l4t3n
-3ž4r4d3k
-3b4r4n3k4n
-b3d4ľ4ž3n
-3c4v4r4č3k
-3c4v4r4n3k
-3č4ŕ4s3t4v
-3č4r4t4t3n
-3č4v4r4k3n
-3d4r4ž3g4r
-3f4r4n4g3n
-h2ŕ4s3t4k
-3c4h4r4s4t3n
-3k4r4s4t3n
-3k4r4s4t3ň
-3s4m4r4š3ť
-3s4m4r4t3k
-s3t4r4n3k
-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š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ým.
-k4t3né.
-k4t3ná.
-k4t3nej.
-k4t3nú.
-k4t3nou.
-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ým.
-n4t3né.
-n4t3ná.
-n4t3nej.
-n4t3nú.
-n4t3nou.
-n4t3ní.
-n4t3ných.
-n4t3nými.
-r4d3ný.
-r4d3ného.
-r4d3nému.
-r4d3nom.
-r4d3ným.
-r4d3né.
-r4d3ná.
-r4d3nej.
-r4d3nú.
-r4d3nou.
-r4d3ní.
-r4d3ných.
-r4d3nými.
-r4m3ný.
-r4m3ného.
-r4m3nému.
-r4m3nom.
-r4m3ným.
-r4m3né.
-r4m3ná.
-r4m3nej.
-r4m3nú.
-r4m3nou.
-r4m3ní.
-r4m3ných.
-r4m3nými.
-r4p4č3n
-r4t3ný.
-r4t3ného.
-r4t3nému.
-r4t3nom.
-r4t3ným.
-r4t3né.
-r4t3ná.
-r4t3nej.
-r4t3nú.
-r4t3nou.
-r4t3ní.
-r4t3ných.
-r4t3nými.
-s4t3ný.
-s4t3ného.
-s4t3nému.
-s4t3nom.
-s4t3ným.
-s4t3né.
-s4t3ná.
-s4t3nej.
-s4t3nú.
-s4t3nou.
-s4t3ní.
-s4t3ných.
-s4t3nými.
-z4d3ny.
-z4d3neho.
-z4d3nemu.
-z4d3nom.
-z4d3nym.
-z4d3ne.
-z4d3na.
-z4d3nej.
-z4d3nu.
-z4d3nou.
-z4d3ni.
-z4d3nych.
-z4d3nymi.
-z4d3ný.
-z4d3ného.
-z4d3nému.
-z4d3ným.
-z4d3né.
-z4d3ná.
-z4d3nú.
-z4d3ní.
-z4d3ných.
-z4d3nými.
-b2l4š3k
-l2t3k2a.
-l2t3k2y.
-l2t3k2e.
-l2t3k2u.
-l2t3k2ou.
-l2t3k2ám.
-l2t3k2ách.
-l2t3k2a1mi.
-n2t3k2a.
-n2t3k2y.
-n2t3k2e.
-n2t3k2u.
-n2t3k2ou.
-n2t3k2ám.
-n2t3k2ách.
-n2t3k2a1mi.
-n2k2t3k
-p2t3k2a.
-p2t3k2y.
-p2t3k2e.
-p2t3k2u.
-p2t3k2ou.
-p2t3k2ám.
-p2t3k2ách.
-p2t3k2a1mi.
-s2t3k2a.
-s2t3k2y.
-s2t3k2e.
-s2t3k2u.
-s2t3k2ou.
-s2t3k2ám.
-s2t3k2ách.
-s2t3k2a1mi.
-5p4r4s3t
-b3s4k
-d3s4k
-j3s4k
-l4p3s4k
-l3s4k
-ľ3s4k
-l4t3s4k
-4m3s4k
-4m4p3s4k
-n4d3s4k
-n4k4t3s4k
-n3s4k
-n4t3s4k
-p3s4k
-p4t3s4k
-r3s4k
-r4t3s4k
-r4z5s4k
-5s4r4b3s4k
-š3s4k
-t3s4k
-v3s4k
-z3s4k
-ž3s4k
-n2d3č
-z3š2t2
-r4z3š2t2
-b3s4t4v
-č3s4t4v
-d3s4t4v
-ď3s4t4v
-ľ3s4t4v
-m3s4t4v
-n3s4t4v
-n4t3s4t4v
-p3s4t4v
-r3s4t4v
-r4v5s4t4v
-š3s4t4v
-t3s4t4v
-v3s4t4v
-ž3s4t4v
-.a2e2ro
-.a2e2ro3d2r
-.aero3g2r
-.a2e2ro3k2l
-.aero3p2l
-.aero3s2k
-.aero3s2t
-.aero3t2r
-.akcie3s2c2h
-.ane3s2teti
-.ane3s2téz
-.anti5k4l
-.anti5k4r
-.apo5p4le
-.ap4rio
-.ap4rió
-.arci5k4
-.aristo5k4
-.as3k2lep
-.austro5s4
-.bac2k3hand
-.balne2o3
-.belo5
-.belo5h4
-.bez5
-.bez5b4
-.bez5d4
-.bez5h4
-.bez5k4
-.bez5m4
-.bez5p4
-.bez5s4
-.bez5t4
-.bez5v4
-.bez5z4
-.bielo5
-.bielob4
-.bieloh4
-.bielov4
-.bi2o5
-.biok4
-.biop4
-.bios4
-.blaho5
-.blahop4
-.blahos4
-.bledo5
-.boha5p4
-.boho5s4
-.bože5
-.bože5d4
-.božec2h4
-.brato5v4r
-.b2z2d
-.cáro5v4ra
-.celo5d4
-.celo5k4
-.celo5p4
-.celo5s4
-.celo5u4
-.ceno5t4
-.ces2t5maj
-.cirkevno5
-.cirkevno5p4
-.c4t4n
-.cudzo5k4
-.cudzo5o4
-.cudzo5s4
-.cudzo5t4
-.cudzo5v4
-.cyto5p4
-.čaro5k4
-.čaro5s4
-.čaro5v4
-.čaro5z4
-.černo5b4
-.černo5h4
-.černo5k4
-.černo5o4
-.červeno5a4
-.červeno5b4
-.červeno5h4
-.červeno5k4
-.červeno5o4
-.červeno5p4
-.čierno5b4
-.čierno5h4
-.čierno5o4
-.čo5ch4
-.čo5s4
-.čudo5t4
-.da3k2d
-.ďatelino5t4
-.de5f4
-.de5g4
-.dek4l
-.desať5
-.de5š4t2
-.dez5i2
-.dez5o2
-.dis2k3d4
-.divo5t4
-.dlho5h4
-.dlho5p4
-.dobro5d4
-.dobro5p4
-.dobro5s4
-.do5č2m
-.do5d4
-.do5f4
-.do5h4
-.do5c4h4
-.do5i4
-.do5k4
-.do5o
-.do5p4
-.do5s4
-.do5š4p
-.do5š4tie
-.do5š4tí
-.do5t4l
-.do5t4m
-.do5t4r
-.do5t4v
-.do5u
-.do5v4
-.do5z4
-.do5ž4
-.drevo5p4
-.drevo5o
-.drevo5v4
-.drobno5z4
-.druho5s4
-.dvoj5al
-.dvoj5č4
-.dvoj5d4
-.dvoj5h4
-.dvoj5i4
-.dvoj5k4
-.dvoj5p4
-.dvoj5s4
-.dvoj5t4
-.dvoj5u
-.dvoj5v4
-.dvoj5z4
-.elektro5
-.ex5k4
-.fol2k5
-.foto5
-.gala5p4
-.gama5g4
-.ge4o
-.hnedo5o
-.hnedo5u
-.holo5b4
-.holo5h4
-.holo5k4
-.hore5z4
-.horno5u4
-.hrôzo5s4t4
-.hrôzo5v4
-.hrôzy5p4
-.hrubo5s4
-.hydro5
-.chorobo5p4
-.jasno5o
-.jasno5z4
-.jedno5h4
-.jedno5i4
-.jedno5p4
-.jedno5s4
-.jedno5u4
-.jedno5z4
-.juho5a
-.juho5s4
-.južno5s4
-.kata5k4
-.kata5s4t4
-.kmeňo5t4
-.koso5d4
-.koso5š4
-.koso5u
-.krivo5p4
-.kruto5v4
-.krvi5p4
-.krvi5s4
-.krvi5t4
-.ktovie5a2
-.lásky5p4
-.lesos4
-.ľ4s4t
-.ľudovo5u
-.makro5k4
-.makro5o4
-.makro5s4
-.málo5k4
-.malo5o
-.málo5v4
-.márno5t4
-.medzi5h4
-.medzi5i4
-.medzi5p4
-.medzi5š4
-.medzi5t4
-.melo5d4
-.meru5ô2
-.miesto5d4
-.miesto5p4
-.mikro5e4
-.mikro5k4
-.mikro5o
-.mikro5p4
-.mimo5š4
-.mimo5ú
-.mimo5v4
-.mnoho5s4
-.mnoho5t4
-.mnoho5u
-.mnoho5v
-.mnoho5z
-.modro5o
-.mrako5d4
-.mravo5u
-.mucho5t4
-.m4z4d
-.na5a4
-.na5b4
-.na5c4
-.nad5h4
-.na5d4nes.
-.nad5p4
-.na5d4p4.
-.na5d4ŕ4.
-.na5d4robno.
-.na5h4
-.na5i4
-.na5k4
-.na5m4
-.na5o4
-.na5p4
-.ná5p4
-.národno5o
-.na5s4
-.na5st4
-.ná5s4
-.ná5st4
-.na5š4
-.na5šk4
-.na6š5sk
-.na5t4
-.na5u4
-.na5ú4
-.ná5u4
-.ná5ú4
-.na5v4l
-.na5v4na
-.na5v4r4
-.ná5v4r4
-.na5v4z4
-.na5z4r
-.na5z4v
-.na6z5vyš
-.náz5v4
-.na5ž4
-.ne5a4
-.ne5do3u2k
-.ne5e4
-.ne5i4
-.ne5m4
-.ne5na5h4
-.ne5na5i4
-.ne5na5k4
-.ne5na5m4
-.ne5na5p4
-.ne5na5s4
-.ne5na5t4
-.ne5p4
-.ne5s4
-.ne6s5tor
-.ne5š4
-.ne5t4
-.ne6t5t
-.ne5u2
-.ne5ú2
-.ne5v4
-.ne5z4d4r
-.ne5z4d4v
-.ne5z4l
-.ne5z4m
-.ne5z4n
-.ne5z4r
-.ne5z4v
-.nie5k4
-.ni5k4
-.ni6k5toš
-.nízko5k4
-.novo5u2
-.novo5z2
-.obi5d4
-.ob5k4
-.obo5s4
-.obo5z4
-.ob5s4
-.ob5t4
-.ob5z4
-.od5b4
-.od5c4
-.od5d4
-.od5f4
-.od5h4
-.od5c4h4
-.od5i4
-.od6i5ó
-.od5í4
-.od5k4
-.odo5b4
-.odo5h4
-.odo5k4
-.odo5m4k4
-.odo5p4
-.odo5s4
-.od5p4
-.od5s4
-.od5š4
-.od5t4
-.od5v4
-.od5z4
-.t4v4r
-.o5h4l
-.o5h4ľ
-.o5h4na
-.o5h4nú
-.o5h4r
-.o5c4h4
-.o5k4l
-.o5k4ľ
-.okolo5i
-.okolo5s4
-.o5k4ra
-.o5k4rá
-.o5k4resať
-.o5k4resávať
-.o5k4ri
-.o5k4rí
-.o5k4ru
-.o5k4rú
-.o5m4l
-.o5m4n
-.o5m4r
-.o5p4
-.o6p5lan
-.o6p5rat
-.o5s4lab
-.o5s4lad
-.o5s4lav
-.o5s4láv
-.o5s4lep
-.o5s4lo
-.o5s4p4
-.o5s4tar
-.o5s4tať
-.o5s4tan
-.o5s4taň
-.o6s5tatn
-.o5s4tatok
-.o5s4tatk
-.o5s4táv
-.o5s6to5
-.o5s6t4rap
-.ostro5u
-.o5s4ved
-.o5s4vetl
-.o5s4viet
-.o5s4viež
-.o5s4vit
-.o5s4voj
-.o5š4k4
-.o5š4ľ4
-.o5š4m4
-.o5š4p4
-.o5š4v4
-.o5t4ras
-.o5t4rav
-.o5t4ráv
-.o5t4rep
-.o5t4ria
-.o5v4dov
-.o5v4lád
-.o5v4laž
-.o5v4p4
-.o5v4r
-.o5z4l4
-.o5z4n
-.o5z4re
-.o5z4v4l
-.päť5izbo
-.plno5a
-.plno5p4
-.plno5š4
-.plno5kr4
-.plocho5d4
-.po5b4
-.po5č4
-.poda5k4
-.pod5b4r
-.pod5h4
-.pod5c4h
-.pod5k4
-.pod5p4
-.po5d4ráž
-.po5d4rep
-.pod5re
-.po5d4rh
-.po5d4rie
-.po5d4rm
-.po5d4rv
-.po5d4r4ž
-.pod5s4koč
-.pod5v4
-.pod3zem
-.pod3zol
-.pod3ža
-.pod3žu
-.po5h4
-.po6h5reb
-.po5c4h4
-.po5i4
-.po5k4
-.pol5d4
-.pol5i4z
-.polo5a
-.polo5b4
-.pol5o4blú
-.polo5d4
-.polo5h4l
-.polo5i
-.polo5k4
-.polo5m4
-.polo5o4
-.polo5p4
-.polo5s4
-.polo5t4
-.polo5u4
-.polo5ú4
-.polo5v4
-.polo5z4
-.pol5s4t
-.po5m4
-.po6m5ník
-.po5o4
-.po5ob4h
-.po5ob4l
-.po5s4
-.po6s4t5s4k4rip
-.po6s5tul
-.po5š4
-.po6š5ta
-.po6š5tov
-.po6š5v
-.po5t4k4n
-.po5t4ľ
-.po5t4r
-.poroz5p4
-.poroz5s4
-.poroz5v4
-.po6st5g4r
-.po6s5ti
-.po5t4
-.po5u
-.po5v4
-.po4v5ra
-.povy5h4
-.povy5k4
-.povy5p4
-.povy5s4
-.povy5v4
-.povy5z4
-.po5v4z4b
-.po5z4
-.pra5o4
-.pra5p4
-.pravicovo5o
-.pra5v4l
-.pra5v4nu
-.pra5v4nú
-.prá5vo5p4
-.pra5vo5s4
-.pre5b4
-.pre5c4
-.pred5c4
-.pred5h4
-.pred5ch4
-.pred5i
-.pred5k4
-.pred5m4
-.predo5h4
-.pred5op
-.pred5ostatn
-.pred5p4
-.pre5d4rah
-.pre5d4rap
-.pre5d4rať
-.pre5d4raž
-.pre5d4ri
-.pre5d4rž
-.pred5s4
-.pred5v4
-.pred5z4
-.pre5č4
-.pre5e2
-.pre5f2
-.pre5h4
-.pre5c4h4
-.pre5i4
-.pre5k4
-.pre6k5vap
-.pre5m4
-.pre5o4
-.pre5p4
-.pre5s4
-.pre6s5n
-.pre5š4
-.pre5t4
-.pre5v4
-.pre5z4
-.pre5ž4
-.pri5b4
-.pri5č4
-.pri5d4
-.pri5h4
-.pri5c4h4
-.pri5k4
-.prí5k4
-.pri5m4
-.pri5p4
-.pri5s4
-.prí5s4
-.prí6s5p
-.pri6s5p
-.pri5s4pô
-.pri5š4
-.pri6š5la.
-.pri6š5li.
-.pri6š5lo.
-.pri5t4
-.pri5v4
-.pri5z4
-.pri5ž4
-.re5g4
-.re5k4
-.re6k5v
-.re5p4
-.re6p5n
-.re5š4
-.re5t4
-.ro4z5i4
-.ro6z5í4
-.rozo5b4
-.rozo5d4
-.rozo5c4h4
-.rozo5m4
-.rozo5p4
-.rozo5r4
-.rozo5s4
-.rozo5š4
-.rozo5z4
-.rozo5ž4
-.ro6z5u4
-.ro6z5v4
-3s4polu5
-3s4polu5h4
-3s4polu5p4
-3s4polu5v4
-.šikmo5o
-.široko5
-.široko5p4
-.štáto5
-.št4vor5
-.su4b5s4
-.sú5h4
-.sú5k4r
-.sú5m4r
-.sú5s4
-.sú5v4
-.sú5z4
-.troj5
-.t4v4r4do5
-.viac5k4
-.viac5v4
-.vide2o5
-.vnútro5s4
-.vnútro5š4
-.vo5p4ch
-.vo5p4r
-.vo5s4p
-.vo5t4
-.vo5v4
-.vy5
-.vý5
-.vy5b4
-.vy5c4
-.vý5c4
-.vy5č4
-.vý5č4
-.vy5d4
-.vý5d4
-.vy5h4
-.vy6h5ň
-.vy6h5ne
-.vý5h4
-.vy5c4h4
-.vy5k4
-.vý5k4
-.vy5m4
-.vy5p4
-.vý5p4
-.vy5s4
-.vý5s4
-.vy5š4
-.vy6š5š
-.vý6š5k
-.vy5t4
-.vý5t4
-.vy5v4
-.vy5z4
-.vý5z4
-.za5b4
-.zá5b4
-.za5c4
-.za5č4
-.za5d4
-.za5h4
-.za5c4h4
-.za5k4
-.za5m4
-.za5p4
-.za5r4
-.za5s4
-.za5š4
-.za5t4
-.za5v4
-.za5z4
-.za5ž4
-.zá5k4
-.zá5z4
-.zo5b4
-.zo6d5p
-.zo5d4r
-.zo5d4v
-.zo5h4
-.zo5m4l
-.zo5m4r
-.zo5s4
-.zo5š4
-.zo5t4
-.zo5v4
-.zo5z4
-.zo5ž4
-5alkohol
-auto4rk
-auto4rs
-5b4lah
-5b4ledn
-5b4lesk
-5b4lok
-5b4lúd
-5b4lysk
-5b4lysn
-5boh3vi4e3a2k
-5boh3vi4e3o2d3k
-5boh3z4
-5boles4t5n
-5b4rať
-5b4rázd
-5b4rec2h
-5b4ronz
-5b4ruč
-5b4rús
-5b4rýzg
-5c4muk
-5c4nie
-5c4vak
-5c4vič
-5c4vik
-čí6s5lov
-5č4len
-5č4lánk
-5č4lánok
-5č4lov
-5d4ňov
-5d4ramat
-5d4rať
-5d4vanás4ť5
-5d4vih
-5d4viž
-5d4voj
-5d4vor
-5e2u2róp
-5f4ľak
-5f4lias
-5f4rancú
-5f4rekven
-5f4ráz
-5g4raf
-5g4ram
-pro6g5ram
-5g4réč
-5g4rob
-5g4vardej
-5h4lad
-5h4las
-5h4lav
-5h4ľad
-5h4liad
-5h4luch
-5h4mat
-5h4mot
-5h4nať
-5h4ned
-5h4nev
-5h4niezd
-5h4noj
-5h4nut
-5h4núť
-5h4nút
-5h4rab
-5h4r3mot
-5h4ran
-5h4rať
-5h4rob
-5h4rom
-5h4roz
-5h4rub
-5h4ryz
-5h4viezd
-5c6h4lap
-5c6h4leb
-5c6hran
-5c6h4rán
-5c6h4ráň
-5c6h4vál
-5c6h4vát
-5c6h4vat
-5c6h4vost
-5jedenás4t5k
-5jedenás4ť5
-5k4lad
-5k4laď
-5k4ľak
-5k4lam
-5k4lásť
-5k4liat
-5k4liať
-5k4lep
-5k4les
-5k4ľúč
-5k4resb
-5k4resť
-5k4ritic
-5k4rídl
-5k4rôch
-5k4ruh
-5k4rúž
-5k4ryt
-5k4valif
-5k4valit
-5k4vet
-5k4vadr
-5m4ladis4t3v
-5m4nož
-5m4rav
-5m4ráz
-na5d4ž4ga
-na5d4ž4gá
-nav3š4tev
-náv3š4tev
-nav3š4tív
-5p4lán
-5p4lastik
-5p4lat
-5p4lav
-5p4leta
-5p4letie
-5p4letú
-5p4liesť
-5p4ne2umat
-5p4ráv
-s6práv
-5p4riam
-5p4rirod
-5p2risám
-5p4roduk
-5s4fér
-5s4c2hopn
-5s4k4lad
-5s4k4lon
-5s4koč
-5s4kok
-5s4kop
-5s4kor
-5s4kôr
-5s4k4romne
-5s4k4rot
-5s4k4rúc
-5s4k4rutk
-5s4k4rýv
-5s4kúsen
-5s4kutoč
-5s4k4vúc
-5s4ladk
-5s4lav
-5s4láv
-5s4led
-5s4lep
-5s4lovn
-5s4love
-5s4lova
-5s4lovk
-5s4luh
-5s4lúž
-5s4ľub
-5s4maž
-5s4mel
-5s4mer
-5s4piev
-5s4pev
-5s4por
-5s4potreb
-5s4p4ravod
-5s4p4raved
-5s4p4rávn
-5s4p4ravo
-5s4tarost
-5s4tatic
-5s4tav
-5s4t4rach
-5s4t4ran
-5s4t4rán
-5s4t4ráda
-5s4t4raš
-5s4t2rat
-5s4t2red
-5s4t2rek
-5s4t4rel
-5s4t4reľ
-5s4t4riel
-5s4t4rieľ
-5s4t4rih
-5s4t4riž
-5s4t4rom
-5s4t4rúh
-5s4t4run
-5s4t4ruž
-5s4tati
-5d2ve5s4to
-5t2ri5s4to
-5š4tyri5s4to
-5päť5s4to
-5šes4ť5s4to
-5sedem5s4to
-5osem5s4to
-5deväť5s4to
-5päť5
-5šes4ť5
-5s4t4la
-5s4tup
-5s4ved
-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
-5t4resk
-5t4retin
-5t4ried
-5t4rub
-5t4r4vaj
-5t4r4val
-5t4r4van
-5uholník
-5uhoľn
-5viac5h4
-5v4čera
-5v4lád
-5v4las
-5v4rás
-5v4rav
-5v4rat
-5v4rát
-5v4šimn
-5v4ták
-5v4tip
-5vy5s4t4rája
-5v4z4du
-5v4z4ťah
-5v4z4ťaž
-5z4lom
-5z4luč
-5z4mysel
-5z4mysl
-5z4nak
-5z4nám
-5z4náša
-5z4rak
-5z4väz
-5z4vest
-5zv4esť
-5z4vod
-5z4vuk
-5z4vuč
-5ž4ráč
-5ž4rane
-5ž4reb
-5ž4rút
-.cv6
-.ch6
-.sp6
-.st6
-.šk6
-.šp6
-.št6
-.tk6
-.uh6
-.uc6h6
-.uk6
-.um6
-.up6
-.us6
-.ús6
-.usc6h6
-.úsc6h
-.usk6
-.úsl6
-.usm6
-.úsm6
-.ús7ta.
-.ús7tami.
-.ús7toč
-.ús7ti
-.ust6l
-.úst7ny
-.ust6r
-.ús7tret
-.us7t4ric
-.ús6t6r
-.úš6
-.ut6
-.uv6
-.uz6
-.vd6
-.vh6
-.vk6
-.vp6
-.vs6
-.vš6
-.vt6
-.vz6
-.vzh6
-.vzk6
-.vzl6
-.vzp6
-.vž6
-.zb6
-.zd6n
-.zd6r
-.zd6v
-.zg6
-.zh6
-.zm6
-.zr6
-.zv6
-4b4s4ť.
-8c4h.
-8d4z.
-8d4ž.
-4c4ht4.
-4j4s4ť.
-4lt.
-4m4p4r.
-4m4p4s.
-4m4š4t.
-4n4k4t.
-4p4r4v.
-4rd.
-r4p4t.
-r4š4č.
-r4t4z.
-4st.
-4sť.
-5k4rát.
-5s4to5k4rát.
-5t4ľ4c4ť.
-akci3a2
-akvári3u2m
-gymnázi3um
-le2u3kémia
-t2ri3u2mf
-kli3e2nt} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-sl.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-sl.hyp
deleted file mode 100644
index a1ebafc72c3..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-sl.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-sl.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-sl.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-sl.pat
deleted file mode 100644
index 67167926b19..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-sl.pat
+++ /dev/null
@@ -1,1075 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-sl.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u v w x y z č š ž
-
-\patterns{
-.av5r
-.di6spo
-.ek3s
-.ek5v
-.is1
-.iz1
-.obi4d
-.ob5it
-.od1
-.po4d5n
-.po4v5s
-.pre6d7n
-.se4k5s
-.si4s
-.st4
-.voz5l
-.voz5n
-.zliz6
-a1a
-a1b
-ab5ba
-ab6rod
-a1c
-ac5ci
-a1č
-a1d
-ad2l
-a6dobl
-ad6rl.
-ad6rla
-ad6rob
-ad5ur
-a1e1
-a1f
-af5ga
-af1t
-a1g
-a1h
-a4hm
-ah5mi
-ah5mo
-a1i
-ai2n1
-a1j
-a4j5ek
-a4jf
-aj5fi
-aj5fo
-aj5ha
-aj5he
-aj5im
-aj6imo
-aj3os
-aj6stb
-a5ju.
-aj3uč
-aj3ug
-aj5žn
-a1k
-ak4s
-a4kst
-a1l
-a1m
-a4mz
-a1n
-an6dga
-an6dhi
-a4nm
-an5mi
-an5zi
-a1o
-ao2b1
-a1p
-a4ph
-a1ra
-ar6dwa
-a1re
-a1ri
-a1ro
-a1ru
-ar5xa
-ar5xo
-ar5xu
-a1s
-a4sš
-as5šč
-a1š
-a1t
-a4tf
-at4i
-a1u1
-a4uf
-a2uk
-a4ul
-a1v
-av5ši
-a4vž
-av5ža
-ay5to
-a1ze
-az5fo
-a4zig
-az3la
-az3le
-az4lil
-az4lit
-az4liv
-a4zob
-a4z3oč
-az5ora
-az5oro
-a4zra
-az4red
-az5vp
-a1ž
-až5mi
-ba6bba
-ban3č4
-ba4u
-2b1c
-2b1č
-2b1d
-be1
-be4v
-b1h
-bi1
-b1ja
-b4ja.
-b5jel
-b3jem
-b5jet
-2b1k
-b3lep
-b5leta
-b5lil
-b5lit
-b5liv
-b1m
-4bmi
-2b1n
-bo1
-bo6chm
-b5ord
-bo5vp
-b3rab
-b5ras
-b3raš
-b3rez
-bre4zg
-bre4zi
-bre4zr
-b5reže
-b3rob
-br6žda
-2b1s
-2b1š
-2b1t
-bu5ki
-bu5ku
-bu5kv
-bu5ry
-2b1v
-b1z
-b1ž
-2cc
-2ch.
-ch5ma
-2ck
-c1ka
-ck1o2
-c5ko.
-ckov3
-ck1s
-ck5we
-2c1n
-2c1t
-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č
-2d1d
-dd6voj
-d2e
-6d5elem
-de4min
-de4mn
-de4z3i
-2d1g
-2d1h
-di5ck
-4dind
-d4i5no
-dis1
-di4skr
-di6spr
-2d1j
-2d1k
-5dlet
-d2li
-d5lit
-d5liv
-d1lo
-2d3m
-4d3nac
-4d5nač
-4d5nap
-4d3nar
-4dnas
-4d5neb
-d5niv
-4d5niz
-4d5njač
-4d3nož
-d2o
-4dobč
-4d5obd
-2d3o2f
-do5rd
-do5vč
-do5v4z
-2d1p
-d5raz
-d3rep
-dre6pn
-d4rev
-2d1s
-2d1š
-2d1t
-dteks6
-d4ur
-du5ro
-du5um
-2d1v
-4d3vi
-2d1z2
-e1a
-e1b
-eb4j
-eb6liz
-e1c
-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
-ed2l
-ed5ob
-ed6obe
-ed6obr
-e4dobs
-e4d3oč
-ed5vč
-ed5zb
-e1e
-e4ep
-e1f
-e4ff
-ef5fe
-ef5ta
-e1g
-e1h
-e1i
-ei6pzi
-ei2z
-eiz5e
-e1j
-e1k
-ek6mal
-ek6tre
-e1l
-e1m
-e1n
-e1o1
-eob4j
-eob4r
-eo4dl
-eo4z5n
-e1p
-ep5nik
-e1ra
-era6z5l
-era5z4r
-era5z4v
-e1re
-e4rf
-e1ri
-e1ro
-e4rr
-e1ru
-e1s
-es5da
-e5sta
-e5sti.
-e5stih
-e5stil
-e1š
-e4šp
-eš5po
-e1t
-4eth
-e4tinš
-e1u1
-e1v
-eve6t5l
-ev5ha
-ev6pre
-ev6ste
-ev5stv
-2ew
-ew6ind
-ew5le
-e4wt
-ew5to
-e4yw
-e1z
-ez5dj
-e3z4dr
-ez2g
-ez5gl
-e5zij
-ez6ijo
-ez5imn
-e5zis
-ez6ist
-ez5iz
-ez4l
-ez6lom
-ez6man
-ez4mo
-e4zob
-e4z5or
-ez4re
-e4zt
-e4z5u4m5
-e4zž
-e1ž
-1fa
-fe1
-fe6ljt
-ff5ma
-fi6zlj
-2f1n
-fo6uri
-fre4u
-2f1s
-2ft
-ft5ve
-fu1
-2g1d
-ge6ige
-gel5č4
-ge6njč
-gi6tpr
-go1
-go5vz
-2g1t
-gu1
-ha4u
-2h1č
-he4i
-2h1k
-4hl.
-h4lo
-2h1n
-h5ren
-2h1š
-2h1t
-1hu
-hu6ffm
-i1a
-i1b
-i1c
-i4cs
-i1ča
-i1če
-i1či
-ič5ra
-i1ču
-ič5vr
-i1d
-4idor
-i1e1
-i1f
-i1g
-4igh
-i1h
-i1i
-ii2n1
-i1j
-i1k
-i4kč
-ik5ča
-i1l
-il5č4k
-4ile
-4ilo
-i1m
-i4mh
-im5hi
-i1n
-1ind
-2ine
-3i4n3os
-1inp
-3inse
-1inš
-4inšk
-3intr
-i1o1
-i1p
-i1r
-4ire
-i1s
-is4a
-is6ert
-isis4
-i4skv
-2iss
-i1š
-i1t
-it5pr
-i1u
-i1v
-iv5jo
-i1x
-i1z
-iz1l
-iz4la
-izli4z
-iz5me
-iz5mo
-iz6ode
-iz5po
-i2zr
-iz1u
-iz6ure
-i1ž
-j5akt
-2j1b
-2j1c
-2j1č
-2j1d
-je4ks4
-2j1g
-2jh
-j1hi
-4jime
-4j5int
-2j1k
-2j1l
-2j1m
-2j1n
-4job
-2j1od
-jod4l
-2jos
-4jož
-2j1p
-2j1r
-jra1
-jraz4
-2j1s
-jsis6t
-2j1š
-2j1t
-ju1
-2juč
-ju5dm
-2jus
-ju2ž1
-2j1v
-2j1z
-jz6ves
-2k1c
-2k1d
-ke5ti
-ki1
-2k1m
-1kn
-ko1
-kok4
-ko5kd
-ko6vše
-koz6lo
-1kre
-2ks.
-k5sat
-ks1c
-ks1p
-ks4po
-ks1t
-4kst.
-ks6taz
-ks5te
-2k1t
-3ktr
-4ktra
-ku5ro
-k5vip
-la4ir
-la6vz.
-2l1b
-2l1c
-2l1č
-2l1d
-le1
-le4e
-le6ipz
-le5me
-2l1f
-2l1g
-lg5ča
-2l1h
-l2i1
-li6dž.
-1liz
-4l5izd
-2lj.
-4ljc
-2ljč
-2ljk
-2ljn
-2ljs
-2ljš
-lju5d6j
-2l1k
-2l1l
-2l1m
-2l1n
-lo1
-1loč
-2l1p
-2l1s
-2l1š
-2l1t
-lu5ki
-lu5ku
-2l1v
-2l1z
-2l1ž
-2m1b
-2m1c
-2m1č
-2m1d
-me4d5n
-me6dos
-me4dr
-2m1f
-4mind
-4minp
-4minš
-mi6th.
-2m1k
-2m1m
-m5niv
-mo6št.
-mo6vš.
-2m1p
-2m1s
-2m1š
-2m1t
-m5urn
-2m1v
-my5hi
-2m1ž
-na1
-5načel
-na4d5nj
-nad5r
-na6dra
-na4dre
-na6dur
-1naj
-na6jak
-na4j5en
-naj3o
-na6joč
-na4j3u
-1nas
-na4v3z
-navze6
-1naz
-naz6or
-2n1b
-2n1c
-2nč
-n1ča
-n1če
-n1či
-n1ču
-2n3d2
-nd5ga
-nd5hi
-n4dm
-ne1
-ne3d2
-1neh
-ne3zm
-nez4v
-2n1f
-2n1g
-n4gh
-ng5ha
-n4gv
-ng5vi
-2n1h
-2nj.
-2njc
-nje4v5s
-2njk
-2njs
-2njš
-4njv
-2n1k
-2n1l
-2n1n
-no5rd
-n4ost
-2n1p
-2n1s
-nsis4
-2n1š
-2n1t
-nteks4
-n4tg
-nt5ga
-nt5ge
-n4tv
-nt5vi
-nu1
-2n1v
-ny5qu
-2n1z
-nz4i
-2n1ž
-o1a
-o4as
-o1b
-ob5gl
-ob5ide
-ob5jo
-5obla
-5obro
-o4bz
-o1c
-oc5ke
-oc5ki
-o4cr
-o1č
-o1d
-od5dv
-od5nal
-o6drep
-od5zd
-o2d1ž
-o1e
-oele4
-o1f
-o1g
-4ogl
-o1h
-o1i
-oiz2
-o1j
-o1k
-o4kb
-ok5ba
-ok5be
-o4kt
-o1l
-o6l5avt
-ol6gča
-o4lr
-ol5re
-o1m
-o1n
-o1o
-ood4l
-o2ol
-o4om
-o1p
-o4pm
-op5me
-4opy
-o1ra
-or4deč
-o1re
-o1ri
-o1ro
-o1ru
-o1s
-5oseb
-ose4m5
-o1š
-o1t
-o1u
-ou5ki
-ou5ku
-o1v
-ov5sem
-ov5šk
-o2v1z
-o5vza
-ov3zd
-o1y
-o1z
-oz4b
-ozd5j
-oz4g
-oz5lo
-oz6lož
-oz2n
-oz5nic
-oz5niš
-oz2o
-oz2r
-oz2v
-o1ž
-ož5mi
-2p1c
-2p3č2
-pč5ka
-pe1
-1peč
-pe4kt
-pet3l
-pe4tle
-pe4v5s
-pev5t4
-4phs
-ph5so
-pi5zo
-2p1k
-4ploz
-po1
-po6dfa
-po4d3l
-po4dna
-po4d5oč
-po6lob
-po6std
-prez4
-2p1s
-2p1š
-2p1t
-pz6ig.
-qu2
-3raču
-2rae
-ra6jžn
-rav5z
-ra6vza
-ra4z5id
-3razl
-ra4z5or
-2r1b
-2r1c
-2r1č
-2r1d
-re1
-3real
-re6cht
-re5čv
-5redč
-re6dig
-re6dnju
-re6iba
-re5jo
-re5km
-re6sda
-rev6sk
-re6znač
-re6zus
-re6zve
-r1f
-2r1g
-2r1h
-ri1
-r4in
-ri5n4o
-riz4g
-riz4l
-riz4n
-2r1j
-2r1k
-2r1l
-2r1m
-2r1n
-ro1
-rob6id
-3rodi
-ro5zo
-2r1p
-r1r
-2r1s
-2r1š
-2r1t
-r4th
-rt5ha
-ru5kl
-2r1v
-r3v2j
-rv5jo
-ry5an
-2r1z
-rz2l
-r1ž
-rž5da
-2s1b
-1sc
-4sc.
-s2ci
-se4k5sa
-sek5si
-se5ma
-se5vp
-2s1f
-si1
-s4id
-si6gn.
-sis1
-2s1j
-2sk.
-s2kn
-4skre
-s4lav
-s4on
-soni5
-sonič4
-1sp
-s4plod
-spod4l
-2s1s
-2st.
-3ste
-s4ten
-4stf
-s4tič
-5stim
-s4tir
-2stk
-2stm
-1str
-s4tra.
-su1
-su4bo
-sve5t
-š2č
-2šč.
-2ščk
-2ščn
-še2s
-2š1j
-ta5wi
-taz4
-2t1b
-2t1c
-tch5o
-2t1d
-tek6st
-5tema
-te5xa
-t1f
-4tind
-4tinos
-4tinp
-4tinse
-4t3int
-2t1k
-6tletno
-2t1m
-4tnaj
-to6vž.
-trt5u
-tr6tur
-2t1s
-2t1t
-tu1
-4tz.
-2u1a
-u1b
-ub4j
-u4bp
-ub5po
-u1c
-u1č
-u1d
-ud6mi.
-u1e
-u1f
-u1g
-u1h
-u1i
-u1j
-u1ka
-u1ke
-u1ko
-u1l
-u1m
-u1n
-u1p
-up6čka
-u1ra
-u1re
-4urg
-u1ri
-u1s
-1usp
-u1š
-uše3s
-u1t
-u4th
-uth5o
-u1v
-ux5em
-u1z
-u1ž
-2v1b
-2v1c
-2vč
-v1ča
-v1če
-v4čer
-v1či
-2v1d
-ve4čl
-ve4čm
-ve4i
-ve4tin
-vetle6t
-v1f
-v1g
-vi5dv
-vid6va
-1viv
-vi6žg.
-2v1j
-4vjo
-2v1k
-2v1m
-2v1n
-vo5rd
-voz5le
-2v1p
-3v2pa
-v4pij
-v4pil
-v5skn
-v5šek
-4všk
-2v1t
-vt4k
-vz2
-v2za
-3v2zg
-2v3zk
-2vzo
-v3zp
-v2zu
-1wa
-wo2
-x1f
-1ye
-2y1f
-y1j
-y1l
-y1w
-1z2a
-z6ane.
-za5uk
-za3vp
-za1z2
-za5zd
-2z1b
-3zbir
-z1c
-2z1č
-2z1d2
-zd5ju
-z3dv
-z1g
-z4gni
-z5got
-2z1h
-1zi
-z1ig
-2z1is
-4z5išč
-2z1j
-2z1k
-z3ku
-z5las
-z1li
-3zlil
-5zlit
-5zliv
-zliz5
-1zlj
-3zlog
-z5lom
-3zlož
-z1lu
-2z1m
-1zn
-1zo
-z1ob
-2z1od
-z1og
-z2ol
-z4om
-2z1p
-1z1r
-4zredč
-4zreš
-4zrez
-4zrež
-4zri
-4zru
-2z1s
-z1š
-z1t
-1zu
-z4uj
-2z1up
-2z1uz
-z1v2
-z4ven
-z3vn
-3z4voj
-z4vok
-2z1z2
-z1ž
-2ž1b
-2ž1c
-2ž1č
-2ž1j
-2ž1k
-4žmi
-.č8
-.š8
-.ž8
-8ž.
-8š.
-8č.} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-sr.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-sr.hyp
deleted file mode 100644
index 86dd41074c1..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-sr.hyp
+++ /dev/null
@@ -1,137 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-sr.rme
-
-% used: а б в г д е з и к л м н о п р с т у ц ш ј њ ћ
-
-\hyphenation{
-на-дно
-на-тка
-на-тка-ти
-на-тка-ше
-о-дно
-о-тка
-о-тка-ти
-о-тка-ше
-по-дно
-по-дне
-по-тку
-по-тки
-по-тке
-по-тка
-у-дно
-и-где
-и-гдје
-сву-где
-све-где
-сву-гдје
-све-гдје
-по-не-где
-по-не-гдје
-и-зби
-и-збе
-и-зба
-и-зби-ци
-и-зби-це
-и-зби-ца
-и-звит
-и-зим
-изо-ба-ру
-изо-ба-ри
-изо-ба-ре
-изо-ба-ра
-и-скок
-и-ско-ку
-и-ско-ка
-и-скон
-и-ско-ну
-и-ско-ни
-и-ско-на
-и-скру
-и-скре
-и-скри
-и-скра
-и-скрав
-и-спод
-и-спо-да
-и-стру
-и-стри
-и-стро
-и-стре
-и-стра
-на-ју
-на-ји
-на-јо
-на-је
-на-ја
-на-јам
-на-јест
-о-браз
-о-брет
-о-дви-ка
-о-дран
-о-дра-ти
-пре-двој
-ра-зму
-ра-зми
-ра-змо
-ра-зме
-ра-зма
-ра-зну
-ра-зни
-ра-зно
-ра-зне
-ра-зна
-ра-склоп
-ра-спе-лу
-ра-спе-ло
-ра-спе-ла
-ра-спе-ћа
-ра-спе-ћу
-ра-спе-ће
-ра-сту
-ра-сти
-ра-сте
-ра-ста
-ра-стом
-ра-стер
-ра-шћу
-ра-шћи
-ра-шћо
-ра-шће
-ра-шћа
-у-зно
-у-зна
-у-зни
-у-зник
-у-зрок
-у-ску
-у-ски
-у-ско
-у-ске
-у-ска
-ус-кос
-у-спио
-у-спео
-у-спор
-у-шћу
-у-шће
-у-шћа
-ин-те-рес
-тран-су
-тран-са
-тран-сом
-те-ле-ви-зор
-те-ле-ви-зо-ру
-те-ле-ви-зо-ром
-те-ле-ви-зо-ра
-те-ле-ви-зо-ри
-при-ти-сак
-при-ти-с-ком
-при-ти-с-ку
-при-ти-с-ка
-по-ја-ви-ће
-на-пу-шта
-про-гра-ми-ра-ње
-сни-ма-ња
-сни-ма-ње} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-sr.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-sr.pat
deleted file mode 100644
index 8c6d8f27ce1..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-sr.pat
+++ /dev/null
@@ -1,2432 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-sr.rme
-
-% used: а б в г д е ж з и к л м н о п р с т у ф х ц ч ш ђ ј љ њ ћ џ
-
-\patterns{
-.ђ2
-.ћ2
-.ч2
-.ш2
-.ж2
-.а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а4е2ро
-.а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набат
-.а2набаз
-.а2набио
-.а2набол
-.а2надем
-.а2надипл
-.а2надоз
-.а2нафаз
-.а2нафила
-.а2нафон
-.а2нафор
-.а2наген
-.а2нагно
-.а2награ
-.а2нахор
-.а2нахро
-.а2накал
-.а2накам
-.а2накат
-.а2накеф
-.а2накла
-.а2накли
-.а2накој
-.а2накол
-.а2накрон
-.а2накру
-.а2налеп
-.а2налис
-.а2налит
-.а2нализ
-.а2намне
-.а2нанео
-.а2напла
-.а2напле
-.а2напне
-.а2напно
-.а2напро
-.а2напти
-.а2нарт
-.а2насар
-.а2насеи
-.а2наспаз
-.а2наста
-.а2настиг
-.а2настом
-.а2натим
-.а2натоц
-.а2натом
-.а2натре
-.а2натри
-.а2натро
-.а2неор
-.а3г2нос
-.а3г2ноз
-.а4е2ро
-.б2
-.бе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с4крупул
-.бе3с4покоја
-.бе3с4покојн
-.бе3с4пора
-.бе3с4порн
-.бе3с4тид
-.бе3с4тија
-.бе3с4тиљ
-.бе3с4тилу
-.бе3с4трана
-.бе3с4трас
-.бе3с4твар
-.бе3з4беда
-.бе3з4бедн
-.бе3з4бели
-.бе3з4бједа
-.бе3з4бједн
-.бе3з4бол
-.бе3з4истан
-.бе3з4истен
-.бе3з4јач
-.бе3з4јак
-.бе3з4лоба
-.бе3з4лобн
-.бе3з4начај
-.бе3з4рача
-.бе3з4рачн
-.бе3з4уб
-.бе3з4уп
-.бе3з4вуча
-.бе3з4вучн
-.бе4о
-.бес4тселер
-.би4о
-.ц2
-.д2
-.џ2
-.ди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
-.ге4о
-.х2
-.и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нокор
-.и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с4как
-.и3с4кариот
-.и3с4кат
-.и3с4кин
-.и3с4кита
-.и3с4коч
-.и3с4конск
-.и3с4крам
-.и3с4крат
-.и3с4крен
-.и3с4крењ
-.и3с4крич
-.и3с4криш
-.и3с4криц
-.и3с4крит
-.и3с4крој
-.и3с4крса
-.и3с4крсн
-.и3с4купља
-.и3с4квас
-.и3с4кврч
-.и3с4лаб
-.и3с4лам
-.и3с4леђ
-.и3с4лед
-.и3с4лијеђ
-.и3с4лијед
-.и3с4лик
-.и3с4лин
-.и3с4љеђ
-.и3с4љед
-.и3с4лов
-.и3с4луш
-.и3с4луж
-.и3с4ме
-.и3с4мије
-.и3с4мје
-.и3с4паљив
-.и3с4пав
-.и3с4пира
-.и3с4плић
-.и3с4плит
-.и3с4покој
-.и3с4полин
-.и3с4пон
-.и3с4порав
-.и3с4права
-.и3с4прави
-.и3с4правк
-.и3с4прављ
-.и3с4правн
-.и3с4пупч
-.и3с4пур
-.и3с4ред
-.и3с4рк
-.и3с4таћ
-.и3с4такн
-.и3с4там
-.и3с4тар
-.и3с4тас
-.и3с4тави
-.и3с4тављ
-.и3с4тиц
-.и3с4тифан
-.и3с4тин
-.и3с4тир
-.и3с4точа
-.и3с4точн
-.и3с4точњ
-.и3с4ток
-.и3с4тори
-.и3с4трад
-.и3с4тран
-.и3с4трав
-.и3с4трић
-.и3с4триж
-.и3с4триц
-.и3с4труг
-.и3с4туп
-.и3с4уш
-.и3с4ук
-.и3с4ус
-.и3с4ут
-.и3з4бав
-.и3з4бичкава
-.и3з4блеушан
-.и3з4бојак
-.и3з4бојк
-.и3з4драв
-.и3з4гомет
-.и3з4гред
-.и3з4грн
-.и3з4грт
-.и3з4иђ
-.и3з4ид
-.и3з4ими
-.и3з4јежљ
-.и3з4лож
-.и3з4лог
-.и3з4лопаћ
-.и3з4лоз
-.и3з4ним
-.и3з4ној
-.и3з4олац
-.и3з4олат
-.и3з4олир
-.и3з4олов
-.и3з4рачи
-.и3з4раел
-.и3з4раиљ
-.и3з4ун
-.и3з4упч
-.и3з4вала
-.и3з4вале
-.и3з4вали
-.и3з4ваљи
-.и3з4валу
-.и3з4вижд
-.и3з4виискр
-.и3з4вија
-.и3з4вијен
-.и3з4вин
-.и3з4вињ
-.и3з4вир
-.и3з4витоп
-.и3з4вјед
-.и3з4војац
-.и3з4војц
-.и3з4вор
-.инте2р3а
-.инте2р3е
-.инте2р3и
-.инте2р3је
-.инте2р3о
-.инте2р3у
-.инте3р4ежџ
-.инте3р4егн
-.инте3р4еса
-.инте3р4есе
-.инте3р4еси
-.инте3р4есн
-.инте3р4есо
-.инте3р4есу
-.инте3р4ије
-.инте3р4огат
-.ист2к
-.из3бе2з3обр
-.из3бе2з3ум
-.из3г2н
-.из3ва2н3евр
-.из4оанем
-.из4оаном
-.из4обат
-.из4оброн
-.из4одим
-.из4один
-.из4одоз
-.из4офон
-.из4офот
-.из4огам
-.из4огео
-.из4оглос
-.из4огон
-.из4ограф
-.из4охал
-.из4охаз
-.из4охел
-.из4охиј
-.из4охим
-.из4охипс
-.из4охит
-.из4охор
-.из4охро
-.из4оклин
-.из4околон
-.из4олекс
-.из4олукс
-.из4омер
-.из4ометр
-.из4оморф
-.из4онеф
-.из4оном
-.из4опат
-.из4опер
-.из4опле
-.из4опол
-.из4опсеф
-.из4орах
-.из4осеи
-.из4осинт
-.из4осист
-.из4оскел
-.из4оскоп
-.из4остаз
-.из4осте
-.из4отах
-.из4отал
-.из4отер
-.из4отон
-.из4отоп
-.из4отро
-.иза3г2н
-.иза3т2к
-.изд2на
-.изд2но
-.изд2ну
-.изр2к
-.јури2с3к
-.јури2с3п
-.к2
-.љ2
-.м2
-.н2
-.на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у
-.на3д2нев
-.на3д2нич
-.на3д2ниц
-.на3д4лан
-.на3д4леш
-.на3д4леж
-.на3д4вал
-.на3д4веси
-.на3д4вест
-.на3д4виј
-.на3д4вит
-.на3д4вла
-.на3д4воје
-.на3д4вор
-.на3ј4аш
-.на3ј4ажи
-.на3ј4ада
-.на3ј4аде
-.на3ј4ади
-.на3ј4ах
-.на3ј4ака
-.на3ј4ако
-.на3ј4ало
-.на3ј4ами
-.на3ј4амл
-.на3ј4амн
-.на3ј4арц
-.на3ј4ари
-.на3ј4арм
-.на3ј4ати
-.на3ј4аук
-.на3ј4ава
-.на3ј4аве
-.на3ј4ави
-.на3ј4ављ
-.на3ј4ази
-.на3ј4еже
-.на3ј4ежи
-.на3ј4ежу
-.на3ј4ец
-.на3ј4еда
-.на3ј4еди
-.на3ј4едн
-.на3ј4едр
-.на3ј4ести
-.на3ј4етк
-.на3ј4езд
-.на3ј4езн
-.на3ј4урен
-.на3ј4ури
-.на3т2ках
-.на3т2кам
-.на3т2касм
-.на3т2каст
-.наг2н
-.наг2њ
-.ну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в
-.о3б4јеш
-.о3б4јек
-.о3б4јер
-.о3б4јеси
-.о3б4јет
-.о3б4љан
-.о3б4љут
-.о3б4љуз
-.о3б4рђ
-.о3б4рч
-.о3б4рш
-.о3б4раћ
-.о3б4рашч
-.о3б4рашн
-.о3б4раже
-.о3б4рамб
-.о3б4ран
-.о3б4рањ
-.о3б4рат
-.о3б4раза
-.о3б4разд
-.о3б4рази
-.о3б4разн
-.о3б4разо
-.о3б4разу
-.о3б4ређ
-.о3б4реч
-.о3б4реж
-.о3б4рец
-.о3б4ред
-.о3б4рем
-.о3б4рес
-.о3б4рети
-.о3б4ретн
-.о3б4рич
-.о3б4риц
-.о3б4риј
-.о3б4рис
-.о3б4рит
-.о3б4рив
-.о3б4рк
-.о3б4рл
-.о3б4рљ
-.о3б4рн
-.о3б4роћ
-.о3б4роч
-.о3б4рок
-.о3б4рон
-.о3б4рова
-.о3б4ровц
-.о3б4рс
-.о3б4руч
-.о3б4руш
-.о3б4рук
-.о3б4рун
-.о3б4рус
-.о3д4јећ
-.о3д4јен
-.о3д4јев
-.о3д4лаж
-.о3д4лаг
-.о3д4лака
-.о3д4лаз
-.о3д4луч
-.о3д4лук
-.о3д4рж
-.о3д4раћ
-.о3д4рачи
-.о3д4раж
-.о3д4рана
-.о3д4ране
-.о3д4рани
-.о3д4рано
-.о3д4рану
-.о3д4рапа
-.о3д4рапи
-.о3д4рапљ
-.о3д4раз
-.о3д4ређ
-.о3д4ред
-.о3д4рем
-.о3д4рен
-.о3д4рич
-.о3д4риш
-.о3д4риб
-.о3д4риц
-.о3д4рин
-.о3д4рињ
-.о3д4рл
-.о3д4рљ
-.о3д4рн
-.о3д4рон
-.о3д4роњ
-.о3д4рп
-.о3д4рт
-.о3д4руж
-.о3д4руг
-.о3д4рвеч
-.о3д4рвен
-.о3д4рвењ
-.о3д4важ
-.о3д4вај
-.о3д4веса
-.о3д4весн
-.о3д4вест
-.о3д4вић
-.о3д4викав
-.о3д4викн
-.о3д4вис
-.о3д4вој
-.о3т2ках
-.о3т2кам
-.о3т2касм
-.о3т2каст
-.обе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с4тан
-.обе3с4тиј
-.обе3с4тран
-.обе3з4нач
-.обе3з4нан
-.обе3з4нањ
-.обе3з4уб
-.обе3з4виј
-.од3г2н
-.од3м2н
-.ода3д2н
-.ода3г2н
-.по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опер
-.по3д2нев
-.по3д4јеч
-.по3д4јен
-.по3г2н
-.по3м2н
-.по3м2њ
-.по3р2ђ
-.по3т2ках
-.по3т2кам
-.по3т2кат
-.по3т2кав
-.пре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д4јен
-.пре3д4вај
-.пре3д4вар
-.пре3д4вест
-.пре3д4воја
-.пре3д4воје
-.пре3д4воји
-.пре3д4вор
-.пре3д4вос
-.пре3т2ках
-.пре3т2кам
-.пре3т2кат
-.пред3м2н
-.пред3м2њ
-.про3г2н
-.про3т2ка
-.про3т2ки
-.проти2в3акц
-.проти2в3оф
-.проти2в3отр
-.проти2в3р
-.проти2в3уд
-.проти2в3ус
-.р2
-.ра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в
-.ра3ш4ћењ
-.ра3ш4чић
-.ра3с4как
-.ра3с4канд
-.ра3с4кин
-.ра3с4клад
-.ра3с4клањ
-.ра3с4клап
-.ра3с4клон
-.ра3с4клопа
-.ра3с4клопи
-.ра3с4клопљ
-.ра3с4кош
-.ра3с4кроп
-.ра3с4пај
-.ра3с4пав
-.ра3с4пета
-.ра3с4пете
-.ра3с4пети
-.ра3с4пето
-.ра3с4пику
-.ра3с4пињ
-.ра3с4плин
-.ра3с4плињ
-.ра3с4пн
-.ра3с4полож
-.ра3с4пон
-.ра3с4пор
-.ра3с4прав
-.ра3с4прем
-.ра3с4рђ
-.ра3с4рд
-.ра3с4ре
-.ра3с4тај
-.ра3с4тан
-.ра3с4тат
-.ра3с4тав
-.ра3с4тењ
-.ра3с4тил
-.ра3с4тињ
-.ра3с4тир
-.ра3с4тис
-.ра3с4тит
-.ра3с4тој
-.ра3с4трел
-.ра3с4трет
-.ра3с4трој
-.ра3с4трт
-.ра3с4тућ
-.ра3с4туп
-.ра3с4тур
-.ра3з4башур
-.ра3з4бад
-.ра3з4бан
-.ра3з4бар
-.ра3з4бау
-.ра3з4бој
-.ра3з4бор
-.ра3з4ев
-.ра3з4гађ
-.ра3з4грт
-.ра3з4иђ
-.ра3з4ић
-.ра3з4ид
-.ра3з4иј
-.ра3з4ин
-.ра3з4ир
-.ра3з4из
-.ра3з4лаг
-.ра3з4лаз
-.ра3з4лич
-.ра3з4лик
-.ра3з4лож
-.ра3з4лог
-.ра3з4лоз
-.ра3з4мећ
-.ра3з4мет
-.ра3з4мрск
-.ра3з4нат
-.ра3з4ред
-.ра3з4роч
-.ра3з4рок
-.ра3з4вал
-.ра3з4веде
-.ра3з4вест
-.ра3з4вић
-.ра3з4виго
-.ра3з4вија
-.ра3з4вије
-.ра3з4вију
-.ра3з4вит
-.ра3з4вој
-.ра3з4вон
-.ра3з4врћ
-.ра3з4враћ
-.ра3з4врат
-.ра3з4врт
-.ра4с5турч
-.раз3д2ни
-.раз3г2н
-.раза3г2н
-.раза3т2ка
-.с2
-.су2б3а
-.су2б3инв
-.су2б3јунк
-.су2б3л
-.су2б3окс
-.су2б3орд
-.су2б3реп
-.су2б3рог
-.су3б4аш
-.супе2р3а
-.супе2р3е
-.супе2р3и
-.супе2р3о
-.супе2р3у
-.супе3р4иор
-.тран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с4еп
-.тран3с4кри
-.тран3с4уд
-.тран3с4ум
-.у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в
-.у3г2ми
-.у3г2н
-.у3с4как
-.у3с4клађ
-.у3с4клад
-.у3с4ко
-.у3с4куп
-.у3с4пало
-.у3с4пав
-.у3с4пеш
-.у3с4пех
-.у3с4пел
-.у3с4пем
-.у3с4пент
-.у3с4пет
-.у3с4пев
-.у3с4пија
-.у3с4пије
-.у3с4пијуш
-.у3с4пикуш
-.у3с4пјеш
-.у3с4пјех
-.у3с4пјел
-.у3с4пјем
-.у3с4пјет
-.у3с4пјев
-.у3с4пон
-.у3с4пора
-.у3с4пореч
-.у3с4порен
-.у3с4порењ
-.у3с4пори
-.у3с4пособ
-.у3с4према
-.у3с4преми
-.у3с4рђ
-.у3с4рж
-.у3с4ра
-.у3с4рд
-.у3с4ре
-.у3с4ријед
-.у3с4рк
-.у3с4рљ
-.у3с4рн
-.у3с4рп
-.у3з4бор
-.у3з4диц
-.у3з4лан
-.у3з4лат
-.у3з4лић
-.у3з4лиц
-.у3з4лим
-.у3з4лит
-.у3з4лов
-.у3з4лудоб
-.у3з4нач
-.у3з4нак
-.у3з4неве
-.у3з4невје
-.у3з4нич
-.у3з4ниц
-.у3з4ној
-.у3з4рет
-.у3з4рев
-.у3з4ријет
-.у3з4ријев
-.у3з4рн
-.у3з4рњ
-.у3з4роч
-.у3з4рока
-.у3з4роко
-.у3з4року
-.у3з4руј
-.у3з4ван
-.у3з4ват
-.у3з4виж
-.у3з4вија
-.у3з4вије
-.у3з4вијо
-.у3з4вију
-.у3з4вој
-.у4с5кош
-.у4с5коко
-.у4с5коле
-.у4с5колу
-.у4с5ком
-.у4с5копа
-.у4с5кора
-.у4с5коси
-.у4с5котр
-.у4с5ков
-.уза3т2ка
-.ва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з
-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ш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шч.
-2шчћ
-2шчч
-2шчш
-2шчж
-2шчб
-2шчц
-2шчд
-2шчџ
-2шчф
-2шчг
-2шчх
-2шчј
-2шчк
-2шчљ
-2шчм
-2шчн
-2шчр
-2шчс
-2шчт
-2шчз
-2шц.
-2шцћ
-2шцч
-2шцш
-2шцж
-2шцб
-2шцц
-2шцд
-2шцџ
-2шцф
-2шцг
-2шцх
-2шцк
-2шцљ
-2шцм
-2шцн
-2шцр
-2шцс
-2шцт
-2шцз
-2шк.
-2шкђ
-2шкћ
-2шкч
-2шкш
-2шкж
-2шкб
-2шкц
-2шкд
-2шкџ
-2шкф
-2шкг
-2шкх
-2шкк
-2шкм
-2шкн
-2шкс
-2шкт
-2шкз
-2шљ.
-2шм.
-2шмђ
-2шмч
-2шмш
-2шмж
-2шмб
-2шмц
-2шмд
-2шмџ
-2шмф
-2шмг
-2шмх
-2шмк
-2шмм
-2шмн
-2шмс
-2шмт
-2шмз
-2шн.
-2шп.
-2шпђ
-2шпч
-2шпш
-2шпж
-2шпб
-2шпц
-2шпд
-2шпџ
-2шпф
-2шпг
-2шпх
-2шпк
-2шпм
-2шпн
-2шпс
-2шпт
-2шпз
-2шт.
-2штђ
-2штч
-2штш
-2штж
-2штб
-2штц
-2штд
-2штџ
-2штф
-2штг
-2штх
-2штк
-2штм
-2штн
-2штс
-2штт
-2штз
-2шв.
-2швђ
-2швч
-2швш
-2швж
-2швб
-2швц
-2швд
-2швџ
-2швф
-2швг
-2швх
-2швк
-2швм
-2швн
-2швс
-2швт
-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ж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жб.
-2жбђ
-2жбч
-2жбш
-2жбж
-2жбб
-2жбц
-2жбд
-2жбџ
-2жбф
-2жбг
-2жбх
-2жбк
-2жбм
-2жбн
-2жбс
-2жбт
-2жбз
-2жд.
-2ждч
-2ждш
-2ждб
-2ждц
-2ждд
-2ждџ
-2ждф
-2ждг
-2ждх
-2ждк
-2ждм
-2ждн
-2ждс
-2ждт
-2ждз
-2жг.
-2жгч
-2жгш
-2жгж
-2жгб
-2жгц
-2жгд
-2жгџ
-2жгф
-2жгг
-2жгх
-2жгк
-2жгм
-2жгн
-2жгс
-2жгт
-2жгз
-2жл.
-2жљ.
-2жм.
-2жмђ
-2жмч
-2жмш
-2жмж
-2жмб
-2жмц
-2жмд
-2жмџ
-2жмф
-2жмг
-2жмх
-2жмк
-2жмм
-2жмн
-2жмс
-2жмт
-2жмз
-2жн.
-2жњ.
-2жвђ
-2жвч
-2жвш
-2жвж
-2жвб
-2жвц
-2жвд
-2жвџ
-2жвф
-2жвг
-2жвх
-2жвк
-2жвм
-2жвн
-2жвс
-2жвт
-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бј.
-2бл.
-2бљ.
-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ц3вл
-2ц3вљ
-2цј.
-2цр.
-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д3вл
-2д3вљ
-2д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џ.
-2дј.
-2дл.
-2дљ.
-2др.
-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фј.
-2фл.
-2фљ.
-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г3вј
-2г3вл
-2г3вљ
-2г3вр
-2гј.
-2гл.
-2гљ.
-2гр.
-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х3вј
-2х3вл
-2х3вљ
-2х3вр
-2хј.
-2хл.
-2хљ.
-2хр.
-2хв.
-2хвђ
-2хвч
-2хвш
-2хвж
-2хвб
-2хвц
-2хвд
-2хвџ
-2хвф
-2хвг
-2хвх
-2хвк
-2хвм
-2хвн
-2хвс
-2хвт
-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к3вј
-2к3вл
-2к3вљ
-2кј.
-2кл.
-2кљ.
-2кр.
-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мј.
-2мл.
-2мљ.
-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пј.
-2пл.
-2пљ.
-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с3кј
-2с3кљ
-2с3тл
-2с3вљ
-2сц.
-2сцђ
-2сцћ
-2сцч
-2сцш
-2сцж
-2сцб
-2сцц
-2сцд
-2сцџ
-2сцф
-2сцг
-2сцх
-2сцк
-2сцљ
-2сцм
-2сцн
-2сцр
-2сцс
-2сцт
-2сцз
-2сј.
-2ск.
-2скђ
-2скћ
-2скч
-2скш
-2скж
-2скб
-2скц
-2скд
-2скџ
-2скф
-2скг
-2скх
-2скк
-2скм
-2скн
-2скс
-2скт
-2скз
-2сл.
-2сљ.
-2см.
-2смђ
-2смћ
-2смч
-2смш
-2смж
-2смб
-2смц
-2смд
-2смџ
-2смф
-2смг
-2смх
-2смк
-2смм
-2смн
-2смс
-2смт
-2смз
-2сн.
-2сњ.
-2сп.
-2спђ
-2спћ
-2спч
-2спш
-2спж
-2спб
-2спц
-2спд
-2спџ
-2спф
-2спг
-2спх
-2спк
-2спм
-2спн
-2спп
-2спс
-2спт
-2спв
-2спз
-2ср.
-2ст.
-2стђ
-2стћ
-2стч
-2стш
-2стж
-2стб
-2стц
-2стд
-2стџ
-2стф
-2стг
-2стх
-2стк
-2стм
-2стн
-2стп
-2стс
-2стт
-2стз
-2св.
-2свђ
-2свћ
-2свч
-2свш
-2свж
-2свб
-2свц
-2свд
-2свџ
-2свф
-2свг
-2свх
-2свк
-2свм
-2свн
-2свп
-2свс
-2свт
-2свв
-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т3вј
-2т3вл
-2т3вљ
-2тј.
-2тл.
-2тљ.
-2тр.
-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вј.
-2вл.
-2вљ.
-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з3бљ
-2з3дл
-2з3дљ
-2з3дв
-2з3гј
-2з3гљ
-2з3мл
-2з3мр
-2з3вл
-2з3вљ
-2зб.
-2збђ
-2збћ
-2збч
-2збш
-2збж
-2збб
-2збц
-2збд
-2збџ
-2збф
-2збг
-2збх
-2збк
-2збм
-2збн
-2збп
-2збс
-2збв
-2збз
-2зд.
-2здђ
-2здћ
-2здч
-2здш
-2здб
-2здц
-2здд
-2здџ
-2здф
-2здг
-2здх
-2здк
-2здм
-2здн
-2здп
-2здс
-2здз
-2зг.
-2згђ
-2згћ
-2згч
-2згж
-2згб
-2згц
-2згд
-2згџ
-2згф
-2згг
-2згх
-2згк
-2згм
-2згн
-2згп
-2згс
-2згз
-2зј.
-2зл.
-2зљ.
-2зм.
-2змђ
-2змћ
-2змч
-2змш
-2змж
-2змб
-2змц
-2змд
-2змџ
-2змф
-2змг
-2змх
-2змк
-2змм
-2змн
-2змп
-2змс
-2змв
-2змз
-2зн.
-2зњ.
-2зр.
-2зв.
-2звђ
-2звћ
-2звч
-2звш
-2звж
-2звб
-2звц
-2звд
-2звџ
-2звф
-2звг
-2звх
-2звк
-2звм
-2звн
-2звп
-2звс
-2звв
-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мур
-4р3је.
-4р3јем
-ч2в
-ш2ч
-ш2л
-ш2љ
-ш2м
-ш2н
-ш2п
-ш2т
-ш2в
-ж2ђ
-ж2б
-ж2д
-ж2г
-ж2л
-ж2љ
-ж2м
-ж2н
-ж2в
-а3а
-а3е
-а3и
-а3о
-а3у
-б2ј
-б2л
-б2љ
-б2р
-ц2ј
-ц2р
-ц2в
-д2ж
-д2ј
-д2л
-д2љ
-д2р
-д2в
-е3а
-е3е
-е3и
-е3о
-е3у
-ф2ј
-ф2л
-ф2љ
-ф2р
-г2л
-г2љ
-г2р
-г2в
-х2л
-х2љ
-х2р
-х2в
-и3а
-и3е
-и3и
-и3о
-и3у
-к2л
-к2љ
-к2р
-к2в
-л2ј
-м2л
-м2љ
-м2р
-не3г2де.
-не3г2дје.
-ни3г2де.
-ни3г2дје.
-о3а
-о3е
-о3и
-о3о
-о3у
-п2ј
-п2л
-п2љ
-п2р
-с2ц
-с2к
-с2л
-с2љ
-с2м
-с2н
-с2п
-с2р
-с2в
-т2ј
-т2л
-т2в
-у3а
-у3е
-у3и
-у3о
-у3у
-в2л
-в2љ
-в2р
-з2б
-з2д
-з2г
-з2ј
-з2л
-з2љ
-з2м
-з2н
-з2р
-з2в} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-sv.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-sv.hyp
deleted file mode 100644
index 53073f6bdad..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-sv.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-sv.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-sv.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-sv.pat
deleted file mode 100644
index 380ca124af7..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-sv.pat
+++ /dev/null
@@ -1,4700 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-sv.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u v w x y z ä å é ö
-
-\patterns{
-.a4b
-.ab5i
-.ab5ol
-.ab3r
-.ac3
-.a4d
-.a3dr
-.ad3s
-.a5g4ra
-.a5gre
-.a5kl
-.a5le
-.al4pr
-.a3lu
-.am4br
-.amp3l
-.a5mu
-.and4rar
-.a2n5es
-.ang4er
-.an5go
-.an5s
-.ap1p
-.as2k
-.a3sket
-.as4t
-.a5sten
-.a3sti
-.a5ta
-.at3t
-.au3st
-.a4val
-.av3s4
-.b4
-.bak5s
-.ben5s
-.bild3s
-.bo2k
-.bort1
-.cis4
-.cy5klop
-.d4
-.där3
-.ek1v
-.e3l4a
-.e2l5in
-.en5st
-.e4nä
-.e2r3i
-.e2s
-.e5skad
-.es3kal
-.es5kap
-.es4t
-.e5strad
-.e3tr
-.evan5
-.ex3
-.f4
-.feb3r
-.fram3
-.fres5
-.fågel3
-.för1a
-.för1en
-.g2
-.gu4lä
-.gus3
-.he2m
-.hu5sa
-.ib4
-.ik4
-.im3p
-.i2n1
-.i4na
-.in3d
-.in4ger
-.ink2
-.in3s2
-.in3t
-.is5ka
-.i3so
-.k4
-.kans4k
-.ko5li
-.kort5s
-.kring3
-.krings2
-.köp5s
-.l2
-.lak5r
-.lek5tr
-.lu2st
-.m2
-.mas2ke
-.ma5skeri
-.me4re
-.minis4
-.mjölk5s
-.mon2s
-.mån3s
-.må4st
-.män5sko
-.mörk5r
-.n4
-.ner1
-.no4n
-.nöd5r
-.oc1ku
-.ok3t
-.o3kv
-.o2ma
-.o2mo
-.om3s4
-.o3mu
-.on4k
-.o3o
-.ord3s
-.o5sc
-.o1s4k
-.o3sl
-.o3stra
-.o3sv
-.o3tr
-.o1u
-.p4
-.papp5s
-.pa3ste
-.pa5sti
-.pi5sti
-.pres2s
-.pub3lika
-.r2
-.re4gr
-.re2ste
-.runs4
-.rym2d
-.röve5
-.s4
-.sa2k
-.seg3r
-.si5o
-.sjö1
-.sk4
-.skott3s
-.slut3s
-.st4
-.sta2m
-.sten3s
-.string4
-.sup3p
-.t4
-.ta3bl
-.ta4k
-.tak5l
-.tes3ta
-.tig3r
-.til4l
-.ti3o
-.topp5s
-.tred2s
-.tre3s
-.trä5k
-.u3k
-.ult5r
-.ung2e
-.up2
-.u4ra
-.ur3s
-.u2t1
-.u4ta
-.u5trer
-.ut5s
-.v2
-.var4t
-.vatten3
-.ved5s
-.vä2g
-.väg3s
-.x2
-.y2a
-.y4e
-.ång3
-.år4s5
-.å3st
-.åter1
-.ä3ro
-.ö3ro
-a2b
-ab4bu
-a5be
-abel4s
-abe2s
-ab1l
-ab3la
-ab3ort
-ab5ric
-ab3rio
-ab4sc
-ab4sk
-a5bu
-ac4kes
-ac4kis
-ack3sk
-ack3u4p
-a5dag
-a5dek
-a5del
-ad5ep
-ad3j
-ad3op
-a5dran
-a3dre
-1adres
-ad3ril
-ad3ru
-ad2s
-a5ed
-af4fo
-3affä
-1af3ri
-af4tor
-a1ga
-aga4ra
-a1ge
-a2ge.
-ag1gr
-ag1l
-ag5ord
-ag3ro
-a4gur
-a4hj
-aib4
-a3iv
-a1j
-a3ka
-a4kart
-a5ke
-a1ki
-ak3n
-a1ko
-ak5ram
-akri5s
-ak3rob
-ak4sta
-1aktig
-ak3tri
-a1ku
-a5kvari
-ak3ve
-a5kår
-ak5åt
-4akö
-a1la
-al5adm
-ali2br
-a2lin
-a5lin.
-a3line
-al3ins
-ali5stik
-a4lj
-alk3ak
-al2kv
-al4kä
-all3st
-al3lå
-alms4k
-a1lo
-al5ort
-als5pa
-al3tr
-al4tu
-al4tä
-a1lu
-alu5s
-alv3s
-a1ly
-a4maf
-am4i
-am4pr
-am1s
-am3åt
-a3mö
-ana4bo
-an3alf
-an3ark
-an3c
-anci5
-an5dak
-andel2s
-an4dun
-an4dän
-a4nef
-ang4es
-an3gi
-an1gr
-aniu4
-ank3r
-ano2i
-a4nok
-a4nop
-an5sce
-ansis3t
-an4sj
-ans5ku
-ans3li
-ans3par
-an1st
-an4sto
-an4sty
-1ansvar
-an4tj
-an4tre
-a1nu
-a5ny
-a3nö
-a1o
-a1pe
-a2pe.
-ape4n3
-a1pi
-ap4lan
-apo3str
-1appara
-apps4k
-ap3ric
-ap3rif
-a5pris
-ap2s
-ap3se
-aps5l
-aps3p
-apu5s
-a5py
-a5pä
-2ara
-a4rann
-a4rarv
-1arb
-4arbi
-2arbo
-4arbr
-ar3dr
-ard5st
-a4rend
-arg5si
-2arh
-a1ri
-a4rigen
-ar3ka
-ark3lan
-ar5kr
-4arl
-4arn.
-ar4nal
-a1ro
-a2rob
-4arp
-ar2sa
-ar5skal
-arsk5l
-ar2sv
-ar4tro
-arts5p
-ar4tur
-4aru
-a4rur
-a5rus
-ar4väg
-a3ry
-a3rä
-2asa
-asbe4
-a1sc
-as2h
-asis5t
-as3kis
-a2sko
-a4skr
-as3ku
-as5l
-as3pa
-as3pig
-as2sk
-as2s5op
-as2sp
-as2st
-ass5up
-as3ta
-a5stard
-as5ter
-as5tiker
-asti5o
-as3to
-as4tr
-ast5rak
-a5stral
-ast3rol
-as5tör
-a3su
-a4sul
-a4sund
-as2ut
-as3v
-a1sy
-a2s5å
-a2sö
-a1t
-ata5ra
-a5te
-ati5ö
-a4tj
-a2tr
-a3tral
-4atrar
-a4t3re
-at3ria
-a3tric
-at3rie
-a5trik
-a3tris
-a3t4ro
-a4tro.
-at4ska
-1attac
-at2tak
-at4tj
-at4tos
-att3s
-a4tung
-2au
-au5b
-au2t5a
-3autom
-aut5s
-2a1va
-a4vart
-1avg
-2a1vi
-av3r
-4a3vä
-a5å
-1b2
-3ba
-ba4di
-ba4do
-bad3s4
-bak5l
-ba4ko
-ba4ku
-bank5l
-bas4ta
-ba5stu
-4bb
-b4bak
-b4batt
-bbb4
-bb3l
-bb4ler
-b4b3r
-bb4so
-4b3d
-3be
-be3d4r
-be5e
-be1k
-4beld
-be5lu
-be3ly
-be3lå
-be5lö
-beng4
-be3nå
-be1rö
-be1s
-be3sl
-bes5s
-be4sta
-be4ste
-be5su
-be3tr
-be3tv
-be3u
-4bex
-2b3f
-2b5h
-3bi
-bi3d4
-4binv
-bis3ko
-bi5skv
-b3je
-b3k
-b5lar
-b5lat
-ble4mo
-b5len
-5blera
-3bles
-5blid
-3blikr
-3bliks
-4b3m
-2b3n
-3bo
-bo4gr
-bo2kl
-bo1mu
-5bon
-bors5te
-bor4ti
-bort3r
-borts2
-bort3sl
-bo1s
-bo4sc
-boy5
-4b3p
-2b5raf
-4brar
-2b5rati
-3brik.
-b3rika
-3brike
-3briks
-b5rikö
-bru4st
-3bry
-3brö
-4b3s
-b5sce
-bs3ch
-b4slan
-b4sof
-b4sp
-bst4
-b4stj
-4b3t
-3bu
-bund4s
-bus2st
-b3v
-3by
-by5r
-3bå
-bång3
-båt2s
-3bä
-3bö
-bör2s
-c2
-5cap
-c3c
-1c4e
-cens3t
-3centr
-ceu4s
-4ch.
-3chau
-3chef
-5choc
-4cht
-chäs3
-chör4
-1ci
-ci4lu
-cim2
-cipp4
-4ck
-c3ka
-c3ke
-c3ki
-ck5j
-ck1l
-ck5lis
-ck3n
-c3ko
-c4kordn
-ck3org
-c4kort
-ck3r
-ck4re
-ck3sla
-ckus2
-ck3va
-ck3ve
-ck3vä
-ck5ä
-ck3ö
-cle2a
-co2a
-co4m
-4cr
-cros2
-4cs
-1cy
-1d
-3da
-5da.
-4dadr
-dags3
-2dak
-5dako
-da3li
-5dam
-da3må
-4dand.
-4d1ap
-4darb
-4dart
-da4tr
-dat5t
-4dax
-2db
-4dc
-dcen3
-2dd
-ddd4
-ddi4s
-d3dj
-d4dos
-dd3ra
-dd3re
-dd3ri
-d3drä
-dd2s
-dds3v
-3d2e
-de1k4
-4deko
-4deld
-del2sa
-dels5ti
-de5lut
-d4en
-denti5ö
-den2to
-de3pr
-5der
-der1k
-de2ro
-de5rol
-der5sti
-de4ru
-de2s
-de3se
-de3sp
-des3ti
-d4et
-de3tr
-4dex
-2d1f
-dfö3ra
-2d1g
-d3gl
-2d5h
-3di
-dias4
-di5el
-di2gr
-di3ka
-di5ku
-4dinf
-din3g4o
-4dinr
-4dins
-2dinsp
-4dint
-di1o
-di4od
-di3sc
-di4sj
-dis3ko
-dis1kr
-dis1p
-dis5to
-dis3tra
-di4tre
-2dj
-d3jor
-djup5p
-3djur
-2d3k2
-4d5l
-2d1m
-2d1n
-3do
-d2ol
-do5lo
-4domr
-dom2sk
-5don
-do4pak
-4d5ord
-4dori
-4dort
-d5ost
-do3y
-2d1p
-2d2r2
-d3rad
-3d4rag
-d3rand
-d5rarb
-d5rassera
-d5ratu
-3drej
-d3ren
-5dres
-d3ret
-d4ric
-3drif
-d3rig
-4d5rik
-d3rin
-3d4riv
-d5roc
-3dropp
-d3ror
-4drot
-drotts3
-d3räkn
-3dräkt
-5drän
-d3rät
-d5röd
-4ds
-d2s1an
-d2se
-ds5enh
-d4sf
-d2si
-ds3ins
-d2sj
-dsk2
-d3skef
-ds4ken
-d3ski
-ds3kl
-ds5kn
-ds1l
-ds4lot
-ds4mo
-d4små
-ds5nå
-d2so
-ds3pl
-ds3s4
-ds3tal
-d5stat
-ds4te
-dste4a
-d5stig
-ds3tin
-ds5tro
-d2su
-ds1v
-d2sö
-2d3t
-3du
-dub3ble
-4dup
-du1s
-du2sc
-du4ste
-du5sö
-4dut
-du4vu
-2d1v
-d3vr
-2d3w
-3dy
-dy4kan
-dy4ro
-4dz
-5dåg
-2dås
-4dåt
-4däg
-dä2r
-3dö
-döds1
-4dög
-4döp
-d5öst
-dé4
-e1a
-e2ake
-e4am
-4eb
-e2br
-eb3ril
-4ec
-e3ch
-echiff5
-ecis4
-e3co
-e2d
-e4dans
-edd4r
-edi4u
-ed3j
-e5dral
-ed1sk
-ed2sko
-ed3s2l
-edso4
-e3då
-e1e
-e2ed
-e4ei
-ee2k5
-e4en.
-e4ene
-e1f
-ef4s
-3efte
-e1g
-e3ga
-e3ge
-ege2l
-eg1l
-eg2ler
-e3glera
-e5gleri
-e4gran
-eg5rat
-eg3rin
-e5gru
-egs3
-e5gå
-eig2
-ei5gn
-e3ik
-e1in
-ei5sh
-e1isk
-e1jo
-e3ju
-e3jä
-e5jö
-e3ka
-e1ki
-e1kl
-ek3lat
-ek4le
-ek3n
-e1ko
-ekord5s
-ek3orr
-ek4ret.
-ek5ro
-e1ku
-e1kve
-ek5vis
-e1ky
-e1kä
-e1la
-el1akt
-el4arb
-3eld.
-eleb3r
-elekt3ri
-el4fra
-eli5ku
-el3k4
-el3li
-ell3s
-el3lä
-e1lo
-e4lob
-el3p
-el2si
-el5ug
-e5luv
-2e1lä
-e1m
-e5mat
-e5mis
-emon1s
-em5ort
-emp5le
-en5art
-e2nav
-en4ce
-e4ned
-e4nek
-ene3rö
-2enj
-en5klo
-en3kn
-en5kr
-en5kä
-enning5
-ennings2
-eno2m
-en3si
-ens5ke
-ens2m
-en2sp
-ens4te
-ens4vin
-en4så
-ent4ha
-en2t1r
-ent4rat.
-ent3rati
-ent3ri
-ent5ru
-e5nus
-2eny
-2e1nä
-e1o
-e2og
-eo4i
-e5or
-2ep
-e1pe
-e1pi
-e3pla
-ep5le
-epp2s3
-epps5t
-e1pr
-ep3s
-ep4tr
-epu3b
-e3på
-er1ak
-4eras
-er3d4
-erg4l
-er4gu
-er4gås
-e1ri
-e5rib
-e4rinf
-erings3
-eri5stik
-erk4lin
-erlä4
-er5na
-e1ro
-e3rob
-e2rom
-erp4
-er3ra
-er5sc
-ers4ken
-er3sl
-ers4le
-er4sta
-er2ste
-er3str
-er3sv
-e1ru
-e5rum
-e3ry
-e5råd
-e1rä
-e2sal
-es5all
-es3arm
-e1sc
-2ese
-es4hi
-esi4u
-es2k
-e4skan
-es5kar
-e4s3ken
-es3ker
-es5kul
-e1sl
-e5slag
-es2mi
-e1sp
-es3pl
-es2sk
-ess5lä
-es2st
-e3stal
-es5ten.
-esti2ge
-es3tin
-es5tor.
-es4tr
-est5rer
-e3stru
-est4rö
-e3stå
-es2u
-e1sy
-eta3b
-e5ti
-eti3ö
-e1to
-e5tri.
-et3ris
-e5trä
-et2s
-ets2ad
-ets3kr
-ets1l
-ets3m
-ets5pa
-et4sv
-ett3r
-e1tu
-etu4ri
-et4va
-et5vu
-e1ty
-2etz
-e1tä
-etäc4
-euk4
-e5um.
-e5up4
-4eur
-eu4se.
-eu5tro
-e1v
-e4varm
-e4vj
-ev3r
-3exp
-ext4r
-4eä
-f2
-3fa
-fac4
-fac5ke
-4fans
-4farb
-fa3sh
-fa4st
-fa4tö
-4fav
-4f3b
-f3d
-3fe
-4fef
-fe2l
-fes5ta
-fe3sto
-4fex
-2f1f
-fff4
-ff3l
-ff3n
-f3fo
-ff3r
-ffs4
-f3fä
-ffö5re
-f3g2
-f5h
-3fi
-fi2br
-fib5rig
-fi3li
-fin5sm
-fi3skal
-fisk3r
-fi2ti
-2f3k
-1fl
-flo4da
-4f3m
-fma4
-1fo
-4fof
-fol2
-folk1
-2f5om
-fo2na
-for4mo
-fost3r
-4f3p
-fra2m
-fram5p
-f4rer
-5freri
-fre4s
-f4ri.
-fri5sp
-5frit
-fros5ta
-fru5str
-från5
-2f3s
-fs2k
-f4sl
-f4sm
-f4sn
-f4sp
-f4st
-f4sv
-2ft
-f3ta
-f4taf
-f4tak
-f4tap
-f4tarm
-fte4r
-f4tex
-f3ti
-f4tin
-f3to
-f4t3r
-ft2sa
-ft4set
-ft2s5i
-ft4sj
-fts4t
-fts5vä
-ft5t
-ft1v
-3fu
-furs5te
-fu5ru
-fu3tu
-4fv
-5fy
-fy4ma
-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ä
-ga4no
-2garb
-4garm
-ga2ro
-4gart
-ga4st
-ga4su
-5g2ati
-gaus4
-g4av
-g5avsn
-4gax
-2gb
-2gd
-g3d4r
-ge2a
-ge5b4
-2gef
-2ge4j
-g2eli
-3gelis
-gel5st
-gel5y
-3gelä
-gel5än
-g4em
-ge4nap
-gen5g
-3g2eni
-3genj
-4genm
-genom5
-gen4sa
-g4ense
-1g2ent
-4genv
-ge5ny
-3genä
-ge2o
-1g2era
-4gerarb
-3g2eri
-gers5n
-5gese
-ge4to
-get5s
-5g2ett
-2g1f
-2gg
-g1ga
-g4gap
-g1ge
-gg5g
-gg1l
-g4gos
-ggs4la
-ggs4m
-gg3s4t
-gg3s4v
-g4gu
-2gh
-gh4te
-1g2i
-gi1o
-gi5sn
-gi4ste
-gis4tr
-gi5stral
-gi5st4rat
-3giv
-gi2ö
-g2jo
-3gjor
-g3jä
-2g3k2
-2gl
-g4lans
-g1lar
-g2las
-5glase
-glas5k
-5glasö
-g4lid
-4glj
-g4lög
-5glöm
-2g1m
-2g1n
-g4nag
-g2no
-1g2o
-3go.
-3gol
-gon3s4
-4gont
-2gord
-4gorm
-4gort
-go3sl
-2g1p
-g2r4
-3graf
-5gral
-gra2m5
-5grans
-4gras
-5grec
-5grett
-g3rig
-4g5rik
-5grip
-3gris
-g5roi
-gro2v
-4grum
-grus5t
-g4rå
-5grå.
-grä4n
-5gräns
-2g2s
-gs1an
-g5satt
-g3sel
-g4sf
-gsi4d
-g3sju
-g5skaf
-gs4ki
-gs3kn
-gs4kot
-g3sky
-gs1l
-gs1m
-g4sme
-gs3n
-gs4ni
-gs4nö
-gs1or
-gs3pl
-gs3po
-gs4por
-gs5pre
-gs3pu
-gs3s
-gs3tak
-gs3tal
-g3stark
-gs4ten
-g3stif
-gs3till
-gs3tj
-g3stol
-gs3tra
-gst4re
-g3stäm
-g4sug
-gs1v
-g4s3ve
-gs3vi
-gs3vå
-gs3yt
-gs1ä
-2g1t
-g3tr
-1g2u
-4gug
-guld3
-gul4da
-4gulä
-gu2ma
-4gup
-gu5ru
-gus4k
-2gut
-g3utb
-2g1v
-4gw
-3gy
-gytt3j
-1g2å
-gårds5
-2g5åri
-g4äl
-g2är
-gä4s
-1g2ö
-4gög
-gö5ro
-2g5ört
-1h
-ha3bl
-ha5ge
-ha4li
-hal4so
-halv3å
-ham4st
-handels3
-hands4l
-han5g2a
-ha5ra
-ha4sc
-ha4sp
-hasp5l
-has3t
-hav2
-havs3
-h5c
-4hd
-he4at
-he4fr
-he4lä
-hets1
-hets3t
-hets3v
-h3g
-h2i
-4hir
-his2sk
-hi4t
-hjäl3s
-h1k
-2hl
-h4le
-2hm
-4hn
-h2na
-h2nit
-ho5nu
-hop5plo
-hop3s
-hos3p
-hos5ti
-4how
-h3p
-h5ru
-h1s
-2ht
-hu2s
-hust5r
-hyg5r
-hys4t
-hys5ta
-hy3ster
-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
-ia4lu
-ia4sk
-ia3tr
-i2b3l
-i5bril
-i3ca
-i4ce.
-i5cha
-ic4kord
-ick3u4
-i5co
-i2d
-iden3s
-id4ge
-i4dom
-id1r
-id3ro
-id2s
-ids3v
-i4dun
-i3då
-i4dö
-2i1e
-ifes4
-i5fn
-i1fr
-3ifrån
-i1g
-4igan
-i2geb
-ig5ej
-ig1l
-ig3no
-i3i
-i4kart
-i1ki
-i3klo
-ik5län
-ik3n
-i1ko
-ik3re
-i5krob
-ik5rof
-ik5ros
-ik5s2h
-ik5skor
-i3kul
-i3kum
-ik5u4t
-ik1v
-i3ky
-i3kå
-i3kö
-i1la
-il4dan
-i2lin
-il1jö
-il5k
-il5lak
-il4lik
-ill3s2
-3illu
-il5lär
-il2min
-i1lo
-il2tj
-i3lu
-ilufts5
-i4lup
-i5lä
-im2b3r
-im5sm
-im4so
-i1mu
-i5må
-i3mä
-i5mö
-i4nau
-ind5skä
-ind5sti
-1indu
-in4ga
-in4ge.
-ing4es.
-ing5is
-in5glas
-ings5te
-i3ni
-i4nif
-in5j
-in5kve
-1inneh
-5inre
-1inri
-3inrä
-in4sem
-in3skrä
-in3sl
-ins4m
-in3sn
-1inspe
-5inspeln
-in5spr
-3instink
-3instru
-in4stå
-in5te
-1intr
-in4tra
-int3s
-i1nu
-i4nun
-in3ym
-i1nä
-i5oc
-i1og
-i3ok
-io4kr
-i1ol
-io5li
-i5om
-ion2
-i3ono
-ions3
-i1op
-i1or
-i1os
-i1ot
-i1pe
-i1pi
-ipos4
-ip5pi
-i3ra
-i4res
-i1ri
-irk5l
-i1ro
-iro3p
-i1ru
-i5sce
-isel4
-is2h
-i2sk
-is5kep
-isk5na
-is3kopa
-is3ku
-is4kun
-is3ky
-i5slam
-is3län
-is3m
-is3n
-i2s3p
-is4pri
-is3sa
-is3se
-iss5n
-is4s3tr
-iss3tä
-i1stal
-i1stans
-ist5att
-is5ten.
-i1stent
-is4tes
-is3tig
-is5ting
-is5tor.
-is5tore
-ist5ro
-istå4
-is5v
-i3sy
-i4så
-i1t
-it5c
-i4tei
-i4tex
-i4tj
-it5ran
-i5trin
-i3tris
-it2t5op
-it4t3r
-it4tu
-i2t5å
-4i1u
-i1va
-i2vak
-i1vi
-i4vin
-iv3r
-iv2s
-i1vå
-ix2t
-ix5tu
-i1ö
-1ja
-3jakt.
-4jarb
-jas5p
-2jb
-2jd
-jd3r
-jd4sty
-j4du
-1je
-je2a
-5jef
-je5sta
-2j1f
-4j3g
-4jh
-1ji
-4jin
-4jk
-j4kl
-j3ko
-jk3v
-2j1l
-2jm
-2j1n
-j2o
-3job
-jo4kr
-4jolj
-jo5lö
-jor4din
-jord3s4
-3jou
-4jp
-j5pl
-2j3r
-2j1s
-j5sa
-j4sk
-js4me
-js4te
-2jt
-jts4
-2j2u
-ju4kos
-juk3s
-jul3k
-4jur
-jus5kr
-juss4
-jus4t
-jus5ta
-jut4sta
-jä5lo
-jäl4p5r
-jäl4sa
-järn3sk
-jär5s
-jör2s
-jös4t
-5jé
-1k2a
-3ka.
-3kad.
-3kade.
-ka4dr
-2kaf
-5kafä
-ka3i
-ka5ju
-2kak
-k3akti
-4kalf
-4kalg
-kal4lo
-kall3s
-3kamp
-3kamr
-3kan.
-4kand.
-5kano
-2kap
-3kapi
-ka5pla
-kap4pr
-kaps5t
-5kapten
-3kar.
-ka3ra
-4karb
-k5arbet
-ka5ri
-4kark
-3karna
-4karp
-karp5s
-4kart.
-4karte
-4karv
-3kas
-ka4sk
-kas3ti
-3kat.
-3kats.
-4kau
-2kb
-4kc
-2k3d4
-kdom4
-1k2e
-3ke.
-2ked.
-2keda
-ke3dr
-ked4s
-ke4er
-2kefu
-4keld
-kels4
-4kense
-ke5nå
-2kep
-3kern
-ke2s
-kes3s
-4kex
-2k1f
-kfö2
-kfö3ri
-2k5g4
-2kh4
-kid3s
-4kif
-1kig
-kik4s
-kilt4
-5kimå
-king3r
-4kinne
-4kins
-2kint
-ki4nu
-ki4tr
-kiv3s
-4kj
-5kjol
-k3jä
-2k3k
-kl2
-1klag
-k2lama
-kla4mi
-3klang.
-3klass
-2klat
-5klav
-2kle
-k2lej
-2klig
-k2lim
-3klip
-k2lis
-5klist3r
-k5lock.
-5klocka
-3klos
-1klub
-4kluk
-1kläd
-2k3läg
-2k1m
-2k2n
-k4nal
-3k4nap
-5knip
-3k4niv
-3k4nu
-k4ny
-k5nyk
-k2o
-4koc
-ko5de
-k5odl
-kog3n
-ko4gr
-kog4s3
-4kola
-ko2lin
-4kolj
-kol5tr
-5kolv.
-1kom
-3komm
-5komp
-2k3omr
-kom4s
-1kon
-3konf
-3konst
-3kont
-ko3nu
-1kor
-3korg
-ko3ri
-2korr
-3korres
-5kortera
-ko5s4k
-ko3sl
-3kost
-ko4str
-4k3ou
-2k1p
-k2r4
-3kraf
-5kra3ge
-4krang
-5krera
-k4reten
-krid5s2
-1krig
-krigs3
-krings2k
-4kriv
-3kropp
-kropps5
-kru5stad
-k3ryg
-kråk5s
-krå4pa
-k5rädd.
-kräk5l
-4kräl
-k3rät
-2ks
-ksaks5
-k2s5as
-ks3ch
-k4ser
-ks2k4
-ks3kl
-ks5kra
-ks5kv
-k3skä
-k3skö
-k5slag.
-ks2li
-k5sly
-k2so
-ks3pl
-k1s4t
-kstavs3
-ks5tid
-k2su
-4k1t
-k4tex
-kti5ge
-k4tinn
-k2tins
-k2tod
-k2tom
-k2tr
-kt3re
-kt3rin
-k5trod
-kt5rog
-kt3rol
-kt5rät
-kt2st
-kt5t4
-k4tug
-k2tut
-k4täl
-4kug
-k5ugn
-ku5la
-4kuld
-3kulö
-kum5pl
-kungs5
-5kunn
-ku4pen
-ku4ro
-3kurs
-3kus
-kust3a
-kv4
-3kvali
-k5vare
-3kvarn
-kvar3s
-3kvart
-k4vato
-k2ve
-2kvente
-1kvinn
-5kvire
-k4vo
-k1vå
-3kväll
-k1vär
-kydds3
-ky4lin
-3kyrk
-käl4m
-5kämp
-5känn
-3käns
-3kärl
-4kög
-köks5t
-5köp.
-kör4l
-kör4sl
-3la.
-1lade.
-2ladm
-4ladr
-2laf
-3lagd.
-la4gin
-5lagm
-lag3r
-2lak
-5lakan.
-5laki
-3laktis
-la5lo
-3lande.
-lan4di
-2lappara
-2larb
-1larn
-lar5s
-4lart
-las3h
-4lask
-la4st
-5laste.
-1lat.
-la5tr
-lat4tis
-2lau
-2lav
-la5vu
-2lb4
-4l1c
-2l2d
-lder4s
-l3dj
-ld3ra
-l5dry
-lds4an
-1le
-3le.
-le4ge.
-le5ig
-le2kl
-le4kv
-lem4sö
-2l5enl
-3ler.
-ler5k
-3lern
-ler3ste
-le5s2l
-le5tå
-le3um
-le4vu
-2lex
-2l1f
-2l1g
-l2gj
-l3g2l
-lgs4
-lg5st
-2lh
-1li
-li5ch
-3lif
-3lig
-li4go
-lig3s
-lik2l
-li5kli
-lik3s
-5limer
-2lind
-2linga.
-ling5o
-4lingr
-lings5t
-2lini
-5linj
-2lint
-li1o
-2lip
-lis3c
-li4sta
-li3strö
-li4vo
-livs1
-l2jak
-4l1jo
-1lju
-l5jå
-l1jä
-l3jör
-2l1k
-l3ke
-l5kju
-l2kl
-lk5lag
-l5klä
-l2kr
-l3k4ra
-lk3t
-l1la
-lld4
-ll3dr
-lle5b
-ll3k
-ll1l
-l1lo
-llok5v
-ll3p
-ll4san
-ll2se
-ll3ska
-ll2so
-ll4sva
-ll4tig
-ll3tr
-l1lu
-ll5un
-llust3ra
-ll5v
-l5ly
-lläggs5
-l5löd
-llör4
-ll5ört
-4l1m
-l4mol
-lm3st
-l1n
-lo2af
-loc4ku
-4lodl
-lo4do
-lod3st
-lo2ge.
-2lolj
-2lom
-4lord
-2lorg
-lor4s
-lo4vo
-l4pak
-l1pe
-l1pi
-l5pla
-lp5lö
-lp4st
-4l3r
-2l1s
-l2sc
-l4sjo
-l4sjä
-l2sk
-l4skensv
-l3ski
-lsk3n
-l5skot
-l3skrä
-l3sky
-l3skå
-lskå4p
-l3skä
-l3slu
-l4sm
-ls4mo
-ls5nyt
-l2sp
-l3spe
-ls3pl
-ls3pol
-ls5s
-l2st
-l3sta
-l4stak
-ls4te
-ls5ter
-l3sto
-l3sty
-l4styg
-l3stå
-l3stä
-l5stö
-l2su
-l5sur
-l2sv
-l4svi
-ls5vid
-l4så
-4l1t
-lta2tu
-l4tef
-l4tif
-l4tih
-l4tos
-lt5rati
-l4tret
-l4trö
-lt5sk
-ltu4
-lu5i
-luk4to
-4lull.
-2lun
-lung3
-2lupp
-lu4pu
-lus2s5p
-5lust.
-4lutb
-4luts
-2lv
-l1va
-l4varm
-lvers4
-l1vi
-l4vos
-lv3ri
-lv3sp
-l1vä
-lväv4
-lycks5t
-ly4gat
-lyg3r
-lyg3s2
-3lyste
-5lystn
-ly4str
-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
-mag5s
-ma5ju
-mak3r
-ma3li
-mand4
-mang2a
-man5g4o
-ma5ni
-mani1k
-5ma3ri
-mash5
-mas3ko
-mask3ro
-ma5skö
-mas3ti
-mas4v
-2mb
-mb4sk
-2mc
-2md
-m4dat
-m4di
-m4do
-m3d4r
-1me
-2meds
-me4du
-me4kl
-me4ko
-4meld
-melo5
-me5lu
-men5k
-me5nu
-me5ny
-mer2sko
-me4so
-mes4t
-me3sti
-2meta
-me5trin
-met3ro
-meu4
-2mex
-2m1f
-m4fes
-m4fn
-2m1g4
-2mh
-1mi
-mid3s
-mi4lu
-2mind
-ming4o
-4mink
-min4kr
-4minv
-mi3nö
-mis2
-mi5sf
-mi4sp
-miss3t
-mi4te.
-mi4tr
-mitt3s
-2m1k
-2m3l
-2m1m2
-mme5d
-mm3s4
-m4mul
-2m1n
-m2nam
-mnas3t
-m4nav
-mn5dr
-mn3g4
-mn5st
-mn5tu
-m2n3å
-1mo
-m4od
-mo4i
-2momr
-mo3na
-mos3k
-mo2ta
-mo4tin
-mo4tu
-mot3v
-2m1p
-m2pak
-m4part
-m2pl
-mp3lad
-m5plane
-mp3lat
-mp3lin
-mpos4
-mp5p4
-mps4k
-mp5sp
-m4på
-2m1r
-4ms
-m4sal
-m4ske
-m3slag
-ms3lä
-ms2m
-mste2
-m1sto
-m2str
-mst3rin
-ms5äp
-2m1t
-4mud
-mulls3
-mult5r
-5mum
-4mun3g4
-mun4ko
-3mur
-3musi
-mu3sta
-mut4sl
-2m3v
-1myn
-mys4te
-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
-nads3
-2naf
-na5gr
-2nak
-3nako
-3nakr
-na3kro
-n1akt
-2nalf
-5nalfl
-4nalg
-nal3s
-na2lu
-n5amb
-5namn
-4nand.
-4nanv
-na4rap
-2narb
-2nark
-4narm
-2nart
-nast3r
-2nb4
-2n1c
-n2ch
-n3cha
-n3che
-n3chi
-ncis4
-ncyk3l
-2nd
-n4dak
-n4dav
-nd3d4
-n5de
-nde3s
-n4dil
-nd5rak
-nd5ras
-nd3rat
-nd3ri
-n5dril
-n3drop
-nd5ros
-nd5skal
-nd3sn
-nds3or
-nds5vä
-nd5ås
-1ne
-3ne.
-ne4di
-5nedl
-ne4d3r
-ned3s
-ne4dö
-ne2gr
-ne5gres
-4nek.
-ne5ly
-4nenl
-ner5sm
-nes3s4
-ne4sta
-ne5s4ti
-ne3tre
-ne1ut
-2nex
-2n1f4
-nfalls5
-nfis3
-2ng1
-n4gar
-n4gen.
-n4gend
-n4gens
-n4genti
-n4germ
-n4get
-n2gi
-ng3ig
-ngi4s
-ng4ly
-n2go
-ng5om
-ng3or
-ng3rad
-n4grö
-ng4ser
-ngs1k
-ngs3pa
-ngs5tim
-ngs3val
-n4göd
-2nh
-1n2i
-4nid
-ni5ec
-ni4ki
-ni5li
-3nin
-nings1
-nings3k
-nings5v
-ni1o
-4nip
-nip4pr
-ni5steri
-nist3ra
-ni3t4r
-niv5sk
-niv5st
-2n1j
-n4jar
-n3jun
-nju4s
-n3jä
-2nk
-n4kart
-n1ki
-n4kis.
-n3kny
-n1ko
-nkrafts5
-nk3ri
-n1kro
-nkrus4
-nk5sl
-nk3sp
-nk4tin
-n1ku
-n1kö
-2n1l
-2n1m
-2n1n
-nn3d
-n3ne
-nnis4
-nn3k
-nn3s4t
-1no
-2nodl
-no4kl
-2nolj
-2nomr
-nom3s4
-2nord
-2norg
-no5sa
-no5sc
-no4tu
-2n1p
-2n1r
-4ns
-ns2i
-n4sint
-n4sis.
-n4sise
-ns2k
-ns3kan
-n1ski
-ns3kor
-nslags5
-ns5las
-ns5mit
-n4soc
-n1spi
-ns3pl
-ns3po
-ns3s4
-n3stans
-n3stap
-ns4tel
-n3stif
-ns3tig
-ns4tra
-n2strik
-nst5up
-nst5vil
-n3s4ty
-n1sva
-ns3vi
-ns3vär
-2n1t
-n4tark
-nter5s4
-n4tinf
-n2t5omb
-nt3rad
-n3trah
-n3trak
-n5trala
-nt3rali
-n5tram
-nt3rep
-n3trer
-nt3ria
-nt3rin
-nt3ris
-n4tropin
-n4tror
-n4trö
-nts3c
-nt4se
-nts5kor
-nt4str
-n4tut
-n3två
-nufts4
-4nug
-n5ugn
-3nui
-3num
-nums5
-2nup
-n3upp
-2nutb
-2n1v
-ny5gr
-n5z
-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
-5o4bj
-o4bli
-oby4
-oc4k5r
-ock3sk
-oc3ku
-o2d
-ode4k
-odi4a
-1odli
-o5dral
-o3dro
-ods4k
-od2st
-ods4ti
-od5stu
-o3dä
-o1e
-offs5t
-o4fl
-o3fr
-oförmå4
-o1g
-o4gav
-og3gr
-o4gj
-o5glo
-o5gly
-ognos4
-ogno5st
-o4gri
-o4grö
-og3se
-og4s3t
-o4gä
-o1i
-o4il
-o1j
-o1k
-o4kli
-ok3n
-ok3sl
-ok4su
-o2kv
-o1la
-o5lak
-ol5au
-olfö4
-1olj
-ol3ka
-olk3r
-ol4ku
-ol4kä
-oll4si
-oll5slä
-ol3lä
-olm4s
-oln3s
-o1lo
-olo5kv
-ol4sa
-ol4tå
-o1lu
-o4lug
-o4lur
-o1ly
-ol5år
-o1lä
-om4brä
-o3men
-o4mord
-om5pa
-om3pl
-1omr
-4omra
-om1sk
-om4ste
-3omsät
-om4tr
-om3tv
-on3c
-on5gi
-on1gr
-ongs4l
-o4nins
-on3j
-on1k4
-ons3c
-onsi3s
-ons3m
-on5stel
-ons4ter
-on3tras
-on4tre
-ont4s
-o1ny
-on5å
-o1nä
-o3nö
-oo4d
-oom5s
-o3or
-o1pe
-o1pi
-o5pline
-op4pl
-opp3le
-op4pr
-op4pu
-o3pri
-op4st
-o3på
-o5q
-4ora
-o3rak
-oran3g4
-o2rap
-1ordn
-or4d5ä
-o4reh
-1orga
-5organi
-or4gr
-or4gå
-o1ri
-3orient
-4ork
-or4mö
-or4nu
-or4nä
-o1ro
-or4pl
-or5pr
-or4spa
-ors5tig
-or5te
-or2tr
-ort3re
-ort3ro
-o1ru
-o3ry
-o1rä
-o1rö
-o3s2fä
-osk4l
-o1skop
-o3som
-os5pig
-os4sk
-os4s4t
-os3tig
-os5tiker
-o5still
-os4tr
-ost5ron
-ost5rö
-os3tul
-ota2lan
-4oti.
-4otie
-4otin
-o1to
-o5tro
-ot5run
-ot3sv
-ot5ti
-ot4trä
-ott2s
-o1tu
-o5tun
-otvin4
-o1ty
-o5tå
-o3tä
-oun4
-oup4
-4our
-ou3rö
-ou4s
-o3ut3t
-o1va
-ova4n
-o1vi
-ov3r
-ov4si
-ov3sl
-ovs4me
-o1vä
-o3we
-ox5
-oy2
-o3å
-o3än
-o3ö
-1pa
-4paf
-pag4
-paki3
-pakis4
-pa5la
-pals5
-pa5lä
-4pand.
-pan4tr
-3pap
-2parb
-4parm
-par3s
-2pask
-pa5ski
-pa2st
-3patr
-pa3u
-2pb4
-2pc
-2p3d4
-pek5tri
-pekt3ro
-4peld
-pel3s4i
-4pem
-5peng
-3penn
-pent5r
-per4bl
-3perio
-3pers
-per4sl
-pe5tro
-4pex
-2p1f
-4p3g
-2ph
-pi4el
-1pig
-pi1o
-3pip
-pi5so
-pi5sta
-pi5sto
-p2j
-3pjäs
-4p3k2
-p2l
-p4lac
-5plan.
-p4lane
-p3larn
-p3lev
-3plex
-3plic
-1plik
-4plit
-p3lj
-1plom
-p3lop
-2p1m
-4p1n
-p3ni
-1po
-5poa
-2poc
-2pof
-po2i
-3polit
-4polj
-poly3
-2porg
-3pos
-pos4ter
-4pov
-po4vä
-2pp
-p4part
-pp5ask
-p4pax
-p3pe
-p1pi
-p4pins
-pp3j
-pp1l
-pp3la
-pp3lin
-pp5lis
-pp5lu
-pp3ly
-pp3lån
-pp3låt
-pp3lä
-pp3lö
-pp5oc
-pp3of
-pp3p4
-pp1r
-pp3ra
-pp3ri
-pp3ru
-pp3ry
-pp3rä
-pp3tr
-p2pu
-p5py
-pp3å
-p2r2
-2pra
-5prax
-1pres
-pres4t
-pre3sta
-pres5to
-p3rig
-p3rik
-5pril
-3princ
-pring3
-p5riol
-3pro
-pro3g
-p3ror
-4prå
-3präs
-3pröv
-2ps
-p2sal
-3psalm
-p5s2ho
-ps4ken
-ps2li
-p3sna
-4pso
-p3sod
-p1s4t
-p4stak
-p4stäv
-p2sö
-2p1t
-p3tri
-1pu
-4pug
-pul2l5ov
-pul5tr
-5pung
-3punk
-pus3t
-2p1v
-på3dr
-3päl
-pä5ro
-4pör
-3pé
-qu4
-3que
-1ra
-3ra.
-raci4t
-3rade.
-4radr
-ra4du
-5ra1e
-2raffä
-ra3fr
-ra5is
-2rak
-ra2lo
-r4ande
-3rande.
-4ran4d3r
-rand3s
-2ransv
-ra3pl
-3rar
-r4ar.
-4rarb
-r4are
-4rarg
-r4ark
-4rarm
-r4arn
-r4ars
-4rart
-r3arta
-ra5rö
-r4as
-ras3h
-ra2st
-3raste.
-3rativ
-ra3tri
-2rav
-ra5yo
-2rb
-2r1c
-2r2d
-r4daf
-rda5gr
-r3dj
-r4dos
-rd3ran
-rd3rat
-r4dul
-r3då
-r3dä
-r4dös
-1re
-3re.
-4reaus
-re3b
-4rec
-5reco
-re3d4r
-re5du
-4reft
-4regg
-3regn.
-re1kr
-rek5tri
-4reld
-re3lu
-rem5p
-3rems
-r4en.
-2reni
-2renk
-2renl
-re3nö
-re3o
-3rer.
-3rern
-3reso
-ress5k
-re1sti
-3ret.
-4retet
-ret3ro
-4rety
-re5tå
-2revig
-4rex
-2r1f
-rfö3ri
-2r1g
-rg3g2
-rgs5top
-2rh
-rhands5
-3rial
-4rib
-3rifi
-2rifr
-r3ifrå
-3rifu
-3rigt
-rik2s
-3riktn
-ri4mo
-2rind
-rind3s
-5ringen.
-ring3r
-2rinr
-2rins
-2rint
-ri1o
-3riot
-ri5ple
-ri2stä
-ri4tut
-ri4vis
-riv3s
-4rj
-r4jis
-r3jo
-r5ju
-r5jö
-2rk
-rk3akt
-r4kek
-rkes3
-r1ki
-r3klas
-rk2le
-r4klö
-rk3n
-rk4ne
-r1ko
-r4kod
-rk3tr
-r1ku
-r4kup
-r1kä
-r5kör
-2r1l
-r5laka
-r5lav
-rld2
-rlds3
-rl5sp
-2r1m
-r4marb
-r4mil
-rm2s5j
-rm5tr
-2r1n
-rnal4
-rn3g4
-rn1k
-r2nom
-rns4k
-rns4t
-rn3t
-ro3b
-ro4gro
-ro2kr
-2rolj
-rol4li
-rom4a
-5roman
-5ronau
-5rond.
-ron4v
-ro3pl
-ropp2s
-ro4ra
-2rord
-2rorg
-2rorie
-3rorn
-ro4sin
-ro4sn
-ros3v
-ro5te
-2r1p
-r4plö
-r4pö
-4r1r
-rra4n
-rrd4
-rreligi5
-rres4
-r5rib
-rr5k4
-r4rob
-r4rom
-rr1s
-rrs2k
-r4rur
-2rs
-r4seld
-r4sex
-r2sin
-r1ski
-r4skid
-rsk3na
-rs5koll
-rs4kos
-rskotts3
-r2sku
-r3skö
-rslags4v
-r4sle
-r4slo
-r4s5lö
-rs4mo
-rs5nat
-rs5nä
-r1sp
-r2spl
-r2spo
-rs3s4
-rs5tak
-rs4te
-r5stek
-rs5tend
-r5steni
-rs5till
-r1sto
-r4ston
-rst4r
-r3strö
-r3stu
-r1sv
-rs4vag
-r2svä
-r1sy
-2r1t
-r2taf
-r2takti
-rt4an
-r4tins
-r4tom
-r5trit
-r3trä
-rt3t
-r4tut
-rubb5l
-ru3br
-ru4dan
-ruks1
-ruks3v
-5rullera
-3rum.
-runn2
-runns5
-4rupp
-rus2h
-ru5sha
-2rut
-5rutig
-rut4ra
-ru4vi
-5ruö
-2r1v
-rv4sj
-rv2s5kä
-r3w
-rydd5s
-ry5o
-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.
-3sade
-4sadj
-2sa3dr
-sad5s
-2saf
-sa3i
-sak5ri
-2s1akt
-sa5lo
-3s2am
-sa2ma
-samman3
-sa2mor
-sand3s
-4sang
-2sanl
-s3anlä
-san3sla
-2sap
-3s4ar.
-2sarb
-2sarm
-s5arm.
-3sarn
-2sart
-4sarv
-4sass
-5sat.
-sa4tu
-2sau
-s3auk
-2s1av
-4sb
-s2c
-2sch.
-1scha
-2schau
-4schb
-1schen
-1scher
-1schet
-1schi
-4schk
-4schm
-4schp
-3schy
-3schö
-sci3p
-4s3d
-1se
-se4at.
-se2g
-2s3egg
-3segl
-seg3ra
-sek5le
-sek3r
-sek5tr
-3sel.
-se5ly
-sem2
-3sen.
-s5ersä
-3set.
-2sexp
-2s1f
-s4fär.
-sfö2
-4s3g2
-2sh
-5s2haw
-shi1s
-s5hö
-1si
-sid5s
-5sie
-si4eri
-si4esk
-si2ett
-3s2ig
-3sik
-sikts3
-5sill.
-silver3
-silv3r
-2s1ind
-2s1inf
-sinne2s3
-3sinni
-4sinr
-2sin1s
-s1inst
-5sint.
-2sintr
-3sio
-sis4t
-siu4
-1s2j
-2sjak
-s3jakt
-4sjn
-4sjt
-s4ju
-5sjuk
-4sjur
-själs3
-3sjö
-4sk.
-2ska.
-3s2kada
-s2kado
-3skaffn
-1skaft
-s4kag
-s2kal
-3skal.
-1skap
-5skap.
-5skapet
-4skapi
-skaps1
-4skar
-s4kara
-5skarv
-4skas
-s2kat
-s4kav
-4ske.
-3sked.
-s4kene
-3skepp
-4skh
-sk4i
-3skif
-5skin
-4skis.
-5skiv
-5skjor
-3skju
-4skl
-sk5lap
-s3klas
-4skn
-3s4ko.
-1s4kog
-4skogsg
-1skol
-3skola
-s4kolo
-s4korp
-skor1st
-1skot
-s5kran.
-3skrat
-sk4ret
-3skrev
-1skri
-3skrif
-s3krig
-5skrin
-3skrip
-s5kris
-3skriv
-s5kron
-s4kru
-5skrub
-3skruv
-5skräc
-sk3s
-2skt
-3skulp
-s3kup
-2skv
-s4kve
-1s2ky
-s4kyn
-2skyrk
-1skå
-s4kål
-5skåp.
-4skår
-5skänk
-3skärv
-2sl2
-4sla.
-s5lad.
-s3land
-3s2lang
-s4lant
-s3lar.
-4slas
-s1lat
-s2lev
-3slev.
-s4lic
-slins3
-4slis
-s2lit
-s5lor
-slotts3
-s2lu
-s3luc
-s3luf
-4slus
-s3lust
-3slut
-slu4to
-3slå.
-5s4lår
-s4läk
-s5läm
-s5länn
-3s4läp
-4s3lär
-s2lät
-3s2löj
-2sm
-s2mak
-3smak.
-s3makt
-s2mal
-s2met.
-s2mid
-s2mit
-3smitta
-s3mj
-5smug
-5smyg
-små5g
-små3k
-små3s
-3smäd
-3smäl
-4smäs
-3smör
-2s2n4
-3snab
-3s4nac
-s3nam
-s5nare
-s3nast
-s5ner
-3snib
-3snil
-3snit
-1snitt
-s3niv
-3snut
-s4nå
-5snår
-5snäc
-s4när
-3snö.
-snö5g
-3snör
-snö3s
-1so
-3soc
-5sock
-2sod
-5soi
-2solj
-sol3s2
-2som
-5somm
-3son
-son4st
-so5pra
-so4pu
-3sor.
-2sord
-s5ord.
-2sorg
-3sorn
-3sot
-4sott
-s2p2
-5spann.
-s4park
-5sparv
-4spas
-s3pass
-spa5tr
-1spe
-4sped
-3s4pek
-3s4pel
-4spelsl
-2spen
-2sper
-5spets
-3spill
-3spir
-4spl
-s1pla
-s3plan
-s3plats
-spli4
-s4plin
-5split
-s5plä
-4spre
-s3pres
-4s3pris
-3sprit
-2spro
-s3pry
-3språ
-5sprän
-s3ps
-1s4på
-3spån
-3spår
-5spän
-3spö
-4s1r
-4s1s
-s5sad
-sse4lin
-s5sil
-ss2k
-ss5kl
-ss3kun
-ss1l
-ss2lag.
-ss2lä
-ss2lö
-ss3na
-sss4
-ss3unn
-s2sv
-ss3vi
-s2t
-2st.
-4sta.
-5stac
-3stadi
-s4taf
-5stalgis
-3stalla
-2stalli
-5stam.
-5stamm
-1stant
-5stark.
-5startad
-1state
-3statl
-1stau
-st3c
-2s5te.
-4stea
-5steg.
-s4tek.
-2stekn
-5stekt
-s4tell
-3stem.
-3steme
-5stenar
-3s4tene
-3stense
-5stensm
-1stera
-1stering
-s4teriu
-3sterne
-5stetis
-2stia
-2stib
-3stick
-2stid
-s4tiken
-2stil
-3stil.
-3stink
-3stisc
-1stit
-2stj
-s5tju
-3stjäl
-3stjär
-2stm
-5stoc
-1stol
-4stolk
-4stom
-stori4eu
-5storis
-stor3s
-3straff
-4strativ
-3strato
-3strec
-3strej
-st3ren
-1strer
-2stria
-1strid
-5stride
-2striel
-st4rif
-1strikt
-st5risk
-1stru
-3struk
-2strumm
-s3tryc
-5stryk
-5stråk
-3strål
-3sträc
-4sträd
-3sträng
-5sträv
-3ström
-2st3s4
-st3t
-4stv
-s3tvis
-1sty
-2styp
-1stå
-4ståg
-5stål
-1stä
-3stäl
-1stö
-1su
-su4b
-3sug
-su3i
-3sum
-2sun
-5sun.
-s1under
-5sune
-s5ung
-2sup
-5supa
-su2pu
-5sus
-2s1ut
-su4to
-su4tr
-s2v2
-5svag.
-s3vagn
-4s3vak
-5svam
-4svap
-svars3
-3svart
-4svas
-s3vat
-4svec
-3sven
-5svep
-4s3ver
-s5ves
-4s3vil
-s4vine
-4svis
-s5vitt
-s5våd
-3svåri
-3sväng
-5svärm.
-s3väs
-s3vät
-4syk
-5syl
-3syn
-syn3k
-s3yrk
-3sys
-sys4t
-sys5ter
-syt2
-sy5th
-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
-3tade.
-4tadi
-4tads5
-2taff
-3taga
-5tak.
-ta5kre
-2taktig
-tak4to
-4talf
-5tallise
-tall5s
-4talv
-3tame
-3tami
-3tan.
-ta4nab
-3tande.
-2t3anfa
-4tanl
-t4ap3l
-2tappar
-3tar.
-4tarb
-tar4mi
-3tarn
-tars4
-4tart
-5tartavl
-4tarv
-4task
-3tast
-ta1str
-tat2
-ta4tan
-tats3
-2tatt
-2tav
-4tave
-5tavla.
-3tavlan
-3tavlo
-tav2s
-3tax
-2tb4
-2tc
-t3cha
-t3che
-2t3d4
-3t2e
-te4as
-te3b4
-5tec
-4teg
-te2g1r
-te3gre
-te3i
-te4int
-4tej
-tej2s
-te4kl
-5teknik
-5teknis
-4teld
-5te5lö
-5tema
-4temo
-te4mu
-ten3g4
-5tensi
-ten3tr
-te4nä
-te5nör
-5ter.
-5teriö
-ter3k4
-5term
-5terna
-5ters
-ter3t
-te4ru
-5tes.
-5test
-tes4te
-te5stik
-te5stu
-5tetik
-tets3
-4texa
-2texp
-2t1f4
-2t3g4
-2th
-t4hen
-1ti
-3tial
-5tib
-5tici
-3tid
-5tide
-ti4du
-4tidö
-ti4ed
-tifts5
-ti2gel
-3tigh
-ti4go
-ti2gr
-3tigt
-tik3l
-3tiks
-5tikul
-t2il
-5tilj
-3tillst
-3tillv
-3tillä
-5time
-2tind
-2tinr
-2tint
-ti4od
-3tion
-ti2os
-3tis
-4tisc
-5tisk
-3tiva
-ti4van
-5tivite
-ti2ö
-t2j
-4tje
-4tjob
-2tjou
-4tjäl
-4tjäm
-3tjän
-2t3k2
-2t3l
-2t1m
-2t5n4
-tne4r
-4todl
-3tok
-4tol.
-4tolj
-2tomr
-4toms
-t2op
-5torap
-t5ord.
-5toriett
-4torm
-torm3s
-3torn
-tor1st
-4tort.
-tos4k
-t5ost.
-t4ov
-2t1p
-t2r4
-2tra
-t4raf
-3trafi
-3t4ral.
-t4rala
-3t4rale
-5tralo
-3trals
-t4ralt
-3trans
-tran2s5a
-4trar
-t3ras.
-t3rat.
-t4rato
-4treg
-4tren
-4trer.
-4trern
-t3rets.
-2tri
-3tribu
-5trick
-trids3
-t5riel
-t1ring
-t3ring.
-2troc
-t3rock
-t4rog
-t5ronik
-t3rono
-4tropi.
-5tross
-5trotn
-t4rump
-t4rup
-3trupp
-trus5ta
-1tryc
-5tryck.
-5tryggh
-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
-t3s4at
-t3se
-t4seg
-ts4en
-t4sex
-ts2k
-t5skall
-t3skatt
-t1ski
-ts3kl
-tskotts5
-t5slot
-ts5läk
-ts3nä
-t3snö
-t2so
-ts3ord
-ts3pl
-tss4
-t1st
-ts4te
-ts5ter
-ts5tillf
-ts3tj
-t3stol
-t4ston
-t2stra
-t4stry
-t4stur
-t5styr
-t2su
-t3sud
-t5sy
-2tt
-t3tac
-t4tau
-t4ted
-tte5g4
-t4tem
-tte2n
-ttes4
-t4tex
-t4tins
-t4tip
-tt3ja
-t1to
-tt3rad
-tt3rand
-tt3rat
-tt3re
-tt3ri
-tt4ry
-tt4se
-tt2si
-tt4sta
-t3tu
-t4tug
-tt1v
-tt4vå
-t3ty
-t3tä
-t3tör
-4t5ugn
-2tund
-3tunga
-tung3s
-5tunn
-2tupp
-tu5re
-2tutb
-t3utv
-t3utö
-tu4vu
-5tuö
-2tv
-t1va
-4tve
-t3vig
-3tving
-t3vit
-3tviv
-t3våg
-3tvån
-t3vän
-tvär3s
-3tvätt
-ty5da
-5tyg.
-3tyngd
-3typ
-ty3pi
-5tys
-2tz
-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
-ubb4le
-ub3lic
-u4bo
-u3cha
-u5cl
-u2d
-u4dak
-u5de
-ud3r
-ud4ret
-uds4a
-u4du
-u4dy
-u1e
-u2es
-uf4fä
-uf4tan
-uf4to
-4u1ga
-u1ge
-ugg3s
-ugn4
-ugns5
-ug3s4
-u5ie
-u1in
-u3is
-u3itet
-u3j
-u2keb
-u5ki
-u4kl
-uk5la
-uk3n
-u1ko
-ukos4
-uk2s
-uks5ko
-uk3tris
-ukt5s
-uk4tä
-u3ku
-uk3v
-u1la
-ul4di
-ulds2m
-ul4du
-ul4dö
-ull3ste
-ull3än
-u1lo
-uls5ti
-ul2tr
-u3lu
-u1lä
-u1lö
-um4fä
-um4so
-ums4t
-u1mu
-u3mör
-5underl
-1undersö
-1underv
-un4dom
-und3r
-un4då
-un5g2ef
-un3gersk
-ung5it
-ung3r
-ungs4p
-3unif
-unk3l
-unk3n
-un4kr
-un1sk
-un4tr
-un5trati
-u5nu
-u1o
-u1pe
-u4pern
-u1pi
-u2pl
-u3plet
-up3lik
-3uppfa
-1uppg
-up4pin
-1uppla
-5upplä
-up4p3r
-upp3s
-upp5sp
-up5ut
-ur5ak
-ur5arv
-u3re
-u1ri
-u1ro
-u4rob
-u4rom
-urs5tin
-ur4stä
-u5ry
-u2sak
-us5anl
-u3scha
-u3se
-usen3
-u2s1k
-us3ka
-us4kla
-us4kr
-u5sky
-us4kå
-us5lä
-us3n
-u2sp
-us3pen
-us5tat
-us3tig
-u3stik
-us5tin
-ust5ro
-u4stå
-u4stä
-us3v
-u4så
-u4sä
-u2sö
-u4tak
-1utb
-u4tef
-ute3s
-utik2
-u5til
-uti3ö
-ut3j
-3utjäm
-utlands3
-u1to
-u3top
-uto5s
-ut3r
-ut4rer
-ut4ro
-ut5rop
-1utru
-2utsid
-ut3sl
-3utslä
-2utt
-utt4j
-ut1v
-3utvec
-u5ty
-ut3öv
-u5u
-2u1v
-u2vak
-u4vj
-u4vä
-u5å
-u3ö
-va5dro
-1vagn
-2v1akti
-val3k
-val4li
-val4st
-5valv
-5vama
-4vand.
-4vanp
-van4st
-van5tr
-5vap
-2varb
-va4res
-va4ri.
-4vark
-var2s
-vart5r
-va1ru
-vas5ti
-5vattn
-4vau
-4vav
-5vavi
-2vb4
-2v1c
-2v3d4
-1ve
-5vec
-ve2k
-ve3ke
-4veld
-vensk3ä
-5ventera
-ve3ny
-ve5nö
-4vep
-ver5g
-3verk
-ves4
-ve2s5p
-ve1st
-3veta
-3vete
-vet5sa
-vett5s
-2v1f
-2v1g
-2vh
-v4i
-vi4c
-vid3s
-vild3s
-vil4t
-3vind.
-ving3s4
-3vinkl
-vi2no
-5vinst.
-5vinste
-vi5ny
-3vis.
-vi5sa
-vis5h
-vis5ko
-vi4st
-vis3ta
-vi2tr
-vi4var
-4vjo
-2v3k2
-2v1l
-2v1m
-vmörk4
-2v1n4
-1vo
-4vok.
-2vom
-4vord
-2vorg
-vos4
-2v1p
-2v2r
-5vrak
-3vrera
-v3ru
-2vs
-v4sc
-v1s2k
-v2skri
-vs4mi
-v3sni
-v2so
-v1st
-vs4te
-vs5trå
-v5styc
-vs3vå
-v2sö
-2v1t
-vu4d1
-v1und
-4v5up
-4vut
-2v1v
-3vy
-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
-whi2
-wi2e
-w4na
-x1
-xan5d4
-xem3pla
-xis4
-xk2
-xli4
-xs4
-xti2
-x4tå
-2y
-y1a
-y4bris
-yb4s
-y2d
-y4da
-y5dan
-y4do
-yd3r
-yds4
-y4du
-y4dö
-y1e
-y1ga
-y1ge
-ygg3r
-yg4gå
-ygs4p
-y1i
-y1ki
-y5klist
-yk5lon
-yk3n
-y1ko
-y1la
-yl4gj
-y3li
-yl5k
-yl5lä
-y1lo
-yl4tr
-ym2fl
-ym4for
-y3må
-yng3r
-ynk5l
-yn4sa
-yns4t
-y3or
-y5ou
-y1pe
-y5po
-yp3ri
-yre4s
-y1ri
-yr4ku
-yrk5v
-y1ro
-yrs4k
-yr5st
-yr5tu
-y1rå3
-y5scho
-ys2st
-ys3ta
-ys3ti
-ys4tik.
-yst3ra
-y2tak
-y4te.
-y4tea
-y1to
-ytt3r
-yt5v
-y3va
-y3vi
-y3vä
-y5w
-y5å
-1za
-1ze
-ze4ro
-1zi
-1zo
-zo4nal
-4zp
-z5s
-3zu
-z4zin
-å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} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-th.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-th.hyp
deleted file mode 100644
index 17a1bba1546..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-th.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-th.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-th.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-th.pat
deleted file mode 100644
index c1d20cf6437..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-th.pat
+++ /dev/null
@@ -1,4349 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-th.rme
-
-% used: ก ข ฃ ค ฅ ฆ ง จ ฉ ช ซ ฌ ญ ฎ ฏ ฐ ฑ ฒ ณ ด ต ถ ท ธ น บ ป ผ ฝ พ ฟ ภ ม ย ร ฤ ล ฦ ว ศ ษ ส ห ฬ อ ฮ ะ ั า ำ ิ ี ึ ื ุ ู ฺ เ แ โ ใ ไ ๅ ็ ่ ้ ๊ ๋ ์ ํ ๎
-
-\patterns{
-.กัน3
-.ชี5วั
-.ทัศนู5
-.ที่3
-.บท1
-.รง4
-.ราย3
-.ลำ3
-.สน5ท
-.สู3ต
-.ใบ3
-2ก1ก
-ก4กม
-กก4ส
-2ก1ข
-ก4ขค
-กข5คณ
-ก4ขช
-กข5ชา
-ก4ขณ
-ก5ขณะ
-ก5ขณา
-ก4ขบ
-กข5บุ
-ก4ขภ
-กข5ภั
-ก4ขม
-ก5ขมั
-กข5มา
-กข5มู
-กข5ลา
-กข5ศั
-ก4ขเ
-กข5เท
-กข5เว
-ก4ข์
-ก1ค
-กง5บว
-ก1จ
-ก1ช
-2กซ
-กญ5จน
-กฎ5หม
-กฎ5เก
-กฏ5หม
-ก5ดิน
-ก1ต
-ก4ตด
-กต5ดิ
-ก4ตส
-ก4ตเ
-ก1ท
-ก1น
-ก4นด
-ก4นธ
-ก1บ
-ก1ป
-กป4ร
-ก1พ
-ก1ฟ
-ก1ม
-ก4มม
-ก4มส
-ก4มเ
-กย5มุ
-ก3ย้
-กร5กฎ
-ก5ร5ณั
-กร5ต๋
-1ก4รร
-กร5รา
-กร5ลา
-กร5วร
-ก5ราค
-ก5รินท
-ก4รู
-กร5ไฟ
-กล5นค
-กล5มห
-ก2ว
-ก5วัต
-ก5ษณน
-ก3ษณะ
-ก5ษณา
-ก5ษมา
-ก5ษมี
-กษ5เท
-ก1ส
-กส4น
-ก4สโ
-ก1ห
-กอ5อิ
-กะ5ถั
-กะ5ผล
-4กะร
-1กั
-1กา
-กา5กะ
-กา5ดู
-กา5นี
-กา5น้
-กา5บอ
-กา5ฝา
-กา5รอ
-กา5ร่
-กำ5ด้
-กำ5ทอ
-กำ5ผล
-1กิ
-กิ5กะ
-กิ4ต
-กิ5นี
-กี5รณ
-กี5รต
-กี5สถ
-1กุ
-กุ5งอ
-กุ5ชิ
-กุ5ฎุ
-กุ5มุ
-กุ5รร
-กุ5ลี
-กุ5แห
-1กู
-กู5ปร
-กู5รข
-กู5รม
-กู5ลิ
-ก1เ
-ก1แ
-ก1โ
-ก1ไ
-ก่5กอ
-ก่5บ้
-ก่5ป่
-ก์5ท็
-ข2
-ขม5หิ
-4ขลา
-ขอ5ขม
-ขอ5ง้
-ขอ5อภ
-1ขั
-1ขา
-ขา5ก๊
-ขา5ทน
-ขิ5ปส
-ขี้1
-ข่5มุ
-ข่5หง
-ข้าว3
-ค1ค
-ค1ช
-คช5สี
-ค4ชเ
-ค4ณิ
-ค4ทร
-คท5รี
-คท5วอ
-คน5ยอ
-4คนิ
-คป5ซู
-คป5ผก
-3คมน
-คม5ฟร
-คม5ลอ
-2คย
-คร5ซอ
-คร5นอ
-คร5นี
-คร5พน
-คร5มเ
-คร5ร้
-คร5ลิ
-คร5หา
-4ค5รัก
-ค5ราต
-คฤ5หบ
-คฤ5หา
-คฤ5โฆ
-คล5คู
-ค2ว
-คว5ทอ
-3ควา
-2คส
-คส5ติ
-คห5กร
-คห5นิ
-คห5บด
-คห5สถ
-3คอน
-3คัน
-1คา
-คา5ปู
-คา5พจ
-คา5พย
-คา5รว
-คา5วจ
-คำ5ดี
-คำ5โอ
-คำ5ไก
-1คุ
-คุ5ณู
-คุ5ลี
-4คุ์
-คู5ปอ
-คู5ลอ
-2ค1เ
-ค1โ
-2ค์
-ค์5จำ
-1ฆา
-ฆา5ณั
-ฆี5ยก
-ง1ก
-ง4กห
-งกะ4ร
-ง4กเ
-ง4ก์
-ง1ข
-ง4ขก
-ง4ขต
-ง1ค
-ง4คจ
-ง4คช
-ง5คชาติ
-ง4คญ
-ง4คธ
-ง4คบ
-ง4คป
-งค5วั
-ง4คศ
-ง4คโ
-งฆ5ปร
-งฆ5สภ
-งฆ5เถ
-งฆ5เภ
-ง1ง
-ง4งเ
-ง1จ
-ง1ฉ
-ง1ช
-ง4ชี
-ง1ซ
-ง1ด
-ง1ต
-ง1ท
-ง1น
-งบ5ดุ
-ง1ป
-ง1ผ
-ง1พ
-ง1ม
-ง1ย
-ง1ร
-ง1ล
-ง1ว
-ง4วเ
-ง1ส
-งส5กล
-งส5กุ
-ง4สบ
-ง4สพ
-งส5พย
-ง4สภ
-ง1ห
-งห5นา
-ง4หบ
-งห5บั
-งห5รา
-1งา
-งา5ช้
-งา5รำ
-งู5สว
-ง1เ
-ง1แ
-ง1โ
-ง1ไ
-ง่5งอ
-จ1จ
-จ4จว
-จ1ฉ
-จด5จ่
-จต5จำ
-จต5มู
-จต5ริ
-จป4ก
-จฟ5ฟร
-จมบ5พ
-3จริ
-จอ5งอ
-1จั
-1จา
-จา5มร
-จา5รึ
-จำ5ทว
-จำ5อว
-1จิ
-จิ5จู
-จิ5ตอ
-จี5ดี
-จุ5ฑา
-จุ5สม
-จู5ปิ
-จ1เ
-ฉ2
-ฉก5ฉว
-ฉก4ษ
-ฉท5ทิ
-ฉร5ฉิ
-1ฉั
-1ฉา
-ฉา5ก๊
-ฉา5พย
-ช1ช
-ช1ฌ
-ช4ฌก
-ช4ฌฆ
-ชด5ช้
-ช5นีก
-4ชน์
-ช1บ
-ชฟ5รอ
-ชฟ5โร
-ชร5กล
-ชร5ริ
-ชร5ฤก
-ชร5หล
-ชร5หึ
-ชร5อุ
-ช3รา
-ชว4โ
-ชอง4
-1ชั
-1ชา
-ชา2ต
-ชา5ตร
-ชา5ปี
-ชา5มต
-ชา5ยต
-ชา5สง
-ชำ5งั
-ชิ5นี
-ชิ5รณ
-ชิ5แก
-ชี5ผะ
-ชี5ผ้
-ชี5ฟอ
-ชี5รณ
-1ชีว
-ชี5วน
-ชุ5ติ
-ชุ5ลด
-ชู5ปก
-ชู5ปถ
-ชู5ปโ
-ช1เ
-ช่5อิ
-ช้5สอ
-ช้5ได
-ซก5ซอ
-ซน5ทร
-ซ5ราม
-ซล5ฟี
-1ซั
-1ซา
-ซา5ชู
-ซา5มู
-1ซิ
-ซิ5ตร
-ซิ5แล
-ซี5ดี
-ซี5นี
-ซี5รา
-ซี5ริ
-ซี5ร็
-ซี5ลี
-3ซึม
-ซู5ซู
-ซู5บิ
-ซู5ริ
-ซู5ลิ
-ซู5ฮา
-ซ1เ
-ซ1โ
-ซ่5ง่
-ซ่5ซ้
-1ซ่า
-ซ์5คล
-ญจ5ดุ
-ญ4จน
-ญ5จ5นท
-ญ5จ5นบ
-ญ5จนา
-ญจ5บร
-ญ5จ5มบ
-ญจ5รง
-ญจ5วี
-ญจ5ศี
-ญ4ฉน
-ญ1ช
-ญ1ญ
-ญประ4
-1ญา
-ญา5ญ่
-ญา4ต
-ญ่5บ้
-ฏ1ฐ
-ฏ4ฐบ
-ฏิ5ทิ
-ฏิ5ปท
-ฏิ5ปุ
-ฏิ5สน
-ฏิ5สว
-ฐ4ภั
-ฐม5ฌา
-ฐม5พย
-ฐม5ฤก
-1ฐา
-ฐา5นี
-ฐุ5ชุ
-ฑา5มณ
-ฑา5สถ
-3ฑูร
-ฒิ5สภ
-ฒิ5สม
-ณ1ฑ
-ณ4ฑก
-ณ4ฑฆ
-ณ4ฑน
-ณ5ฑนะ
-ณ4ฑบ
-ณ4ฑม
-ณฑ5ลา
-ณ4ฑส
-ณ5ฑสก
-ณฑ5สถ
-ณ5ฑ5สี
-ณฑ5โล
-ณ4ฑ์
-ณย5รั
-ณ1ร
-ณ4วา
-ณห5พล
-ณห5ภู
-1ณา
-ณา5ปี
-ณา5วร
-1ณิ
-1ณี
-ณี5สง
-ณู5ปโ
-ด1ก
-ด4กง
-ด4กด
-ดก5ดื
-ด4กเ
-ด4กแ
-ด1ข
-ด1ค
-ดง4ค
-ดง5ออ
-ด5ชนะ
-ด1ด
-ด4ดเ
-ด1ต
-ด1ท
-ด1ป
-ด1พ
-ดม5คต
-ดร5ลิ
-ด4รู
-ด3ร้
-4ดร์
-ด1ส
-ด4สก
-ดส4เ
-ด1ห
-1ดั
-1ดา
-ดา5มุ
-ดา5รก
-ดา5สว
-ดำ5ฤษ
-ดิ5ทอ
-ดิ5ทิ
-ดิ4บ
-ดิ5วร
-ดิ5ศว
-4ดิ์
-ดี5ดี
-3ดีน
-ดี5ฝ่
-ดี5รอ
-ดี5ลิ
-ดี5วี
-ดี5หม
-ดี5หว
-ดู5ถู
-ดู5ปอ
-ดู5รั
-ดู5หม
-ดู5แค
-ด1เ
-ด1แ
-ด1โ
-ด้5ยิ
-2ด์
-ด์5ปร
-ด์5สป
-2ตก
-ตก5ร้
-ต1ค
-2ต1ช
-2ต1ต
-ต4ตภ
-ต4ตส
-ตต5สด
-ต4ตโ
-ต5ถกะ
-ตถ5กิ
-ต3ถา
-ต5ถุป
-ต5ถุศ
-ตถ5เล
-ตทัศนูป5
-2ตน
-ตน5ฟอ
-ตน5วร
-2ต1บ
-ต4บช
-ตบ5ชว
-ตป5นี
-ต1ภ
-2ตย
-4ตรก
-ตร5งอ
-ตร5จี
-ตร5จุ
-4ตรฐ
-ตร5ตร
-ตร5ทว
-ตร5ผล
-ตร5ฝร
-ตร5พล
-ตร5รง
-ตร5ลด
-4ตรศ
-ต5ริยา
-ต4รู
-2ตร์
-ตฤ5ตี
-ตล5รั
-ตส5วา
-ตส4เ
-ตส5เซ
-ตส5แต
-ตอ5ม่
-ตะ5ใภ
-1ตั
-1ตา
-ตา5กล
-ตา5กว
-ตา5นึ
-ตา5ปร
-ตา5ปล
-ตา5ผิ
-ตา5ฟู
-ตา3มห
-ตา5มอ
-ตา5มะ
-ตา5ฬี
-1ติก.
-ติ5จู
-ติ5ช่
-ติ5ซอ
-ติ5ทิ
-ติ5นร
-ติ5บอ
-ติ3ม
-ติ5ยภ
-ติ5ยม
-4ติ์
-ตี5ขล
-ตี5คู
-ตี5ตื
-ตี5รว
-ตี5ลั
-3ตี้.
-ตุ5ตถ
-ตุ5ทส
-ตุ5ป่
-ตุ5มห
-ตุ5รก
-ตุ5ลั
-ตุ5สด
-ตู5ดิ
-ต1เ
-ต3แล
-ต1โ
-ต่5ถา
-ต่5ว่
-ต่5สว
-ต้5ก๋
-ต้5ตอ
-ต้5ฝุ
-ต๋5เต
-ต์5คล
-ต์5ฟู
-ต์5ศต
-ถ4กิ
-ถด5ถอ
-ถม5ถื
-ถล5ไถ
-ถว5ไม
-ถะ5ถั
-ถ4าธ
-ถา5วร
-ถ4ีย
-ถี5ลิ
-3ถุน
-ถ่5ถอ
-ถ่5ถา
-4ทกา
-ทค5ติ
-ทค5นี
-ทด5รอ
-ทด5ลอ
-ทธ5คย
-ท5ธชะ
-ทธ5ฎี
-ทธ5ปฏ
-ทธ5พร
-ทธ5รั
-ทธ5ศต
-ทธ5สี
-ทธ5อง
-ท5ธิก
-ท5ธิช
-ท5ธิบ
-ท5ธิป
-ท5ธิผ
-ท5ธิพ
-ท5ธิภ
-ท5ธิร
-ท5ธิฤ
-ท5ธิศ
-ท5ธิส
-ท5ธิโ
-ทธ5เจ
-ทพ5ธิ
-ทพ5ยุ
-ทฟ5ลอ
-2ทย
-ท5ยาน
-ทร5คต
-ทร5คร
-ทร5ธน
-3ทรร
-ทร5สโ
-ทร5หว
-ทร5หึ
-3ทรั
-1ทรา
-ท5ราก
-4ท5ราห
-1ทรี
-ทว5ทห
-ทว5สถ
-ทศ5ทิ
-ทศ5วร
-ทสน5ท
-ทห5วั
-ทห5ฬิ
-1ทั
-1ทา
-ทา5ฐิ
-ทา5ฒิ
-ทา5นอ
-ทา5มต
-ทา5มร
-ทา5รพ
-ทำ5ขว
-ทำ5ซ้
-ทำ5ท่
-ทำ5โท
-ทิ5ฆั
-ทิ5ฐิ
-ทิ4พ
-ทิ5พา
-ทิ5วง
-ที5นว
-ที5นอ
-ที5นี
-ที5รา
-ทุ5คต
-ทุ5ติ
-ทุ5ลั
-ทุ5ศี
-1ทู
-ทู5น่
-ท1เ
-2ท์
-ท์5ดอ
-1ธร
-4ธรส
-4ธรั
-1ธา
-ธา5รณา
-ธิ5ฤท
-ธิ5ศี
-ธิ5สม
-ธุ5ดง
-ธุ5ลี
-ธู5ปน
-น1ก
-น4กค
-น4กป
-นก5ยู
-นก5รู
-น1ข
-นข5ลิ
-น1ค
-นค5ริ
-น1จ
-น4จอ
-นจ5อน
-น1ช
-น4ชญ
-น1ซ
-น1ด
-น1ต
-นต5กว
-น5ตกะ
-นต5ดิ
-น4ตท
-นต5ทิ
-นต5ปิ
-น4ตภ
-น5ตระ
-น5ตรั
-น3ตรา
-น5ต5ริ
-นต5ฤด
-น3ติ
-น5ตุก
-น5ตุฏ
-น4ต์
-นถ5ธุ
-นถ5รจ
-นท5ขี
-นท5นน
-น5ทนะ
-นท5ผล
-นท4ย
-น5ทรง
-น5ทรุ
-นท5ฤก
-น5ทลา
-น5ทวย
-น3ทอ
-น1ทิ
-น3ที
-นธ5กร
-น5ธกะ
-น5ธนะ
-น5ธุก
-น5ธุร
-น5ธุว
-น5ธุศ
-นธ5ไม
-น1น
-น4นต
-น4นท
-น4นร
-น1บ
-นบ5นอ
-น1ป
-น4ปจ
-นป5จู
-น4ปท
-น1พ
-นพ5ปฎ
-นพ5ศู
-นภ5ศู
-น5ยนต
-น3รา
-นฤ5คห
-นฤ5ปเ
-นฤ5เท
-นฤ5เบ
-น1ล
-น4ลล
-นว5ร่
-น1ศ
-นษ5กร
-น1ส
-นส5ฟอ
-นส5แด
-นส5แต
-น1ห
-นอ5กะ
-3นอน
-1นั
-1นา
-นา4คร
-นา5ณั
-นา5ปร
-นา5รย
-นา5วต
-นา5วล
-นา5สณ
-นา5สน
-นา5สว
-นา5ฬิ
-4นาะ
-1นิ
-นิ5จู
-นิ5ด้
-นิ5ฟอ
-นิ5มน
-นิ5ยม
-นิ5ยา
-นิ5รอ
-นิ5ลุ
-นิ5วร
-นิ5สง
-นิ5สถ
-นิ5สี
-นิ5แด
-1นุ
-นุ5พย
-1นู
-2น1เ
-น1แ
-น1โ
-น1ไ
-น่5อี
-3น้อ
-1น้ำ
-น์5สไ
-บ1ก
-บ4กษ
-บกิส5
-บ4กแ
-บ1ข
-บ1ค
-บ4คท
-บค5ที
-บ4คโ
-1บดี.
-บ1ท
-บบ5ฉบ
-บบ5ฝึ
-บบ5อย
-บ1ป
-บ1พ
-บร5มี
-บ5รัด
-บ1ส
-บ4สบ
-บส4เ
-บ1ห
-บอ5ดี
-บอ5ระ
-3บอล
-1บั
-บัพพาชนี5
-1บา
-บาจ5ร
-บา4ต
-บา5ตอ
-บา2ท
-บา5ทา
-บา5ทุ
-บา5รน
-บา5รอ
-บา5สม
-บิ5ก้
-บิ5ชอ
-3บิน
-บี5คิ
-บี5ร่
-1บุ
-บุค3
-บุ5ตร
-บุ5ถุ
-บุ5รพ
-1บู
-บู4ช5น
-บู5ติ
-บู5ย่
-บ1เ
-บ1แ
-บ1โ
-บ๊5จี
-บ๊5เบ
-ปก4ส
-ป4จั
-ป4จา
-ปฐ5ปท
-ปฐ5พี
-ปต5ถก
-ปต5พล
-ป1ป
-ป4ปเ
-ปม5ด้
-ป4ยุ
-ปร5ตอ
-ปร5ติ
-ปร5ตี
-ปร5ตุ
-ปร5ผั
-ปร5ษณ
-1ประ
-ป5ริค
-ปร5แก
-ปร5แท
-ปร5ไบ
-ปร5ไฟ
-ปล5ญว
-ป4วา
-ปส4ต
-1ปั
-1ปา
-ปา5ฐก
-ปา5ณก
-ปา5นี
-ปา5ปิ
-ปาร4
-ปา5รเ
-ปิ5ดอ
-ปิ5ดิ
-ปิ5ยภ
-ปิ5ยอ
-ปิ5หก
-ปี5ชี
-ปี5ฬก
-ปี่3
-ปุ5คล
-ปุ5ถุ
-ปู5จ๋
-ปู5ติ
-ป1เ
-ป1ไ
-ผก5ผั
-ผณิ5ศ
-ผน5ผั
-ผ4นิ
-ผ4ยา
-ผล5พล
-ผล5ไม
-ผ4สา
-ผี5ดิ
-ผี5ตอ
-ผี5ถ้
-ผี5ห่
-ผ้า3
-3ฝอย
-ฝ่5ฝั
-3พจน
-พจ5นี
-พช5ฉล
-พ3ติ
-พท5ริ
-พทัก4
-พน5ทะ
-พ4นั
-พนิ4
-พ1พ
-2พ2ย
-พย5ก๊
-พร5ชย
-พร5ซี
-พร5มี
-1พรร
-พ4รู
-พร5ไฟ
-3พฤก
-พฤ5ฒา
-พล5ทิ
-พล5ร่
-พส5เฟ
-พอ5คว
-พอ5สม
-1พั
-1พา
-4พาจ
-พา5ชน
-พา5นร
-1พิ
-พิ5ถั
-พิ5ถี
-พิ5ปล
-พิ5รอ
-พิ5รี
-พิ5ลึ
-พิ5ศุ
-พิส5ม
-พี5ระ
-พุ5ชิ
-พุ5พอ
-พู5ทว
-พู5พอ
-พ1เ
-พ4เย
-พ่5ป๊
-พ่อ3
-พ้5ท้
-2พ์
-พ์5ดี
-ฟซ5ติ
-ฟซ5ทิ
-ฟร5ติ
-ฟส5ติ
-ฟส5ทิ
-1ฟั
-1ฟา
-1ฟิ
-ฟิ4ลา
-ฟี5ฟ่
-ฟู5ฟ่
-ฟ1เ
-1ฟ้
-ภค5ทร
-ภค3ว
-ภช5นี
-1ภั
-1ภา
-ภา5ณก
-ภา5ณว
-ภา5รด
-ภา5รต
-ภา5รย
-ภา5วน
-ภิ5ชน
-ภิ5มห
-ภิ3ร
-ภิ5สม
-ภี5ษม
-ภุ5ชง
-1ภู
-ภู5ฏา
-ภู5ริ
-ม1ก
-ม4กม
-ม4กษ
-ม1ข
-ม4ขล
-ม3คร
-มค5อิ
-1มงคล
-มง5ฟอ
-ม1จ
-ม1ช
-มช4ว
-ม1ซ
-3มณฑ
-มณ5ฑน
-มณ5บร
-มณ5พร
-มณ5เฑ
-มณ5เพ
-มด5ชม
-มด5ยอ
-มด5ลู
-ม1ต
-ม4ตธ
-ม4ติ
-ม4ตไ
-มต5ไต
-ม1ท
-3มนตร
-มน5ฮั
-ม4นุ
-ม1บ
-มบ4พ
-ม1ป
-มป4ช
-มป4ท
-มป5ฤด
-มป5ฤๅ
-ม4ป์
-ม1พ
-ม4พก
-ม4พว
-ม1ภ
-มภ5กถ
-ม1ม
-ม4มเ
-ม4มโ
-มย5รา
-3มรร
-ม3รั
-ม1ริ
-มฤ5คิ
-มฤ5เค
-มล5ทิ
-ม3ลา
-ม3ลิ
-ม3ล้
-ม1ว
-มว5มอ
-ม4วล
-ม1ส
-มห5กร
-ม3หน
-มห5ภา
-ม5หาญ
-ม5หาย
-มหา3ส
-มอ5ขว
-มอ5คร
-มอ5ดู
-มอ5ตำ
-มอ5นว
-มอ5นอ
-มอ5ระ
-4มอั
-มะ5ถั
-มะ5ฝ่
-มะ5ฮอ
-1มั
-ม4ั่
-1มา
-มา5ดร
-มา5นร
-มา5นอ
-มา5ป่
-มา5พจ
-มา5มก
-มา5มุ
-มา5ม่
-มา5ยณ
-มา5ยอ
-มา5ร่
-มา3ว4
-1มิ
-มิ5กภ
-มิ5ซร
-มิ5ตล
-มิ5ถิ
-มิ5น่
-มิ5ฟล
-มิ5ลำ
-มิ5ลี
-มิ5แพ
-มี5ขม
-3มืด
-1มือ.
-มุ5ทะ
-มุ5ทั
-มุ5ทิ
-มุ5ทุ
-มุ5ฮั
-มู5ซี
-มู5ป่
-มู5รต
-มู5ลิ
-มู5หย
-มู5หร
-มู5ฮั
-มู5แด
-มู5แผ
-มู5แฮ
-ม1เ
-ม1แ
-ม1โ
-ม1ไ
-ม4่า
-ม้ม4
-3ม้า
-ม์5ภิ
-ยก5ย่
-ย1กร
-ย4ก5ร้
-ย1ค
-ยง5บ่
-ยง5ฝ้
-ยง5อย
-ยจ5คร
-ยด5ย้
-ย1ต
-ย1ท
-ย1ธ
-ยบ5ร้
-ย1ป
-ย1พ
-ย1ภ
-ยม5ยอ
-ยม5รา
-ยม5หา
-ยม5อี
-ย4มิ
-ย1ย
-ยย4ส
-ยร5ถี
-ย5ร4บั
-ยล5ไท
-ยว5ข้
-ยว5จ๊
-ยว5ดอ
-ย5วดี
-ยว5นี
-ยว5ย่
-ยว5รั
-ยว5ไส
-ย1ศ
-ย1ส
-ย1ห
-ย4หฐ
-ยห5ฐา
-ย4หป
-ยห5ปร
-ยอ5บี
-ยอ5รม
-1ยั
-1ยา
-ยา5กฤ
-ยา5กว
-ยา5ฉุ
-ยา5ณม
-ยา5ณว
-ยา5ถ่
-ยา5บร
-ยา5รช
-ยา5สล
-ยา5สี
-ยา5ฬั
-ยำ5ทว
-ยี5รา
-1ยุ
-ยุ5คล
-ยุ5ตก
-4ยุภ
-ยุ5แย
-ยุ5แห
-ยู5คล
-ยู5ถิ
-ยู5ฟ่
-ยู5ยิ
-ยู5ริ
-ยู5ไน
-ย1เ
-ย1แ
-ย1โ
-ย์5กล
-ย์5ถ่
-ย์5มน
-ย์5หน
-2รก
-รก5ซอ
-รก5ซ้
-ร1กร
-รก5รา
-รก5ร้
-รค5พว
-รง5พย
-รง5รอ
-รจ5ถร
-ร1ช
-ร4ชก
-ร4ชช
-ร4ชน
-ร4ชย
-รณ5คด
-รณ5ตร
-รณ5ถั
-รณ5พฤ
-รณ5สถ
-ร5ณาญ
-รณู5ป
-4รณ์
-ร1ด
-ร4ดป
-ร4ดแ
-ร4ดโ
-ร4ดไ
-รด5ไอ
-รถ1
-รถ5พย
-ร1ท
-ร4ทฤ
-รท5ฤด
-ร4ท4ว
-รท5วิ
-รธ5ขึ
-รธ5สร
-รธ5เก
-รน5ทุ
-4รนา
-ร1บ
-ร4บค
-ร4บถ
-รบ5ถ้
-ร4บม
-ร4บไ
-รบ5ไก
-ร1ป
-ร4ปณ
-ร5พชา
-ร5พ5ชิ
-รพ5ทิ
-ร1ภ
-ร4ภย
-รม5รอ
-รมาว5
-รม4เห
-ร4ยั
-รร4ก
-รร5คา
-รร5จถ
-รร5จว
-รร5ณึ
-รร5ถา
-รร5ยง
-รร5ยเ
-รร3ล
-รร5หา
-รร5แท
-รร5แส
-รร5ไก
-รร5ไต
-รศ5นี
-รษ5ฐิ
-รษ5ตร
-ร1ส
-ร4สก
-ร4สช
-ร4สเ
-ร4ส4โ
-ร3หิ
-ระ1
-ระ5สา
-ระ5หก
-5รังส
-3รัฐ
-1รัต
-รา5กฏ
-รา5กฤ
-รา5กว
-1ราช
-รา5ชู
-รา5ดร
-รา5ดว
-รา5ดู
-รา5ม่
-รา5วณ
-รา5สง
-รา2ห
-รา5หุ
-รำ5งั
-รำ5จว
-ริ5กอ
-ริ5ตร
-ริ5ทึ
-4ริพ
-ริ5มน
-4ริยจ
-4ริยย
-4ริร
-ริ5แล
-4ริ่
-รี5คู
-รี5ฑา
-รี5ดู
-รี5ตร
-รี5ตอ
-รี5รั
-รี5รา
-รี5ริ
-รี5ลั
-รี5ลิ
-รี5ล่
-รี5สอ
-รี5สะ
-รุ5กว
-รุ5ขร
-รุ5คร
-รุ5ทว
-รุ5ธิ
-รุ5มุ
-รุ5วน
-1รู
-รู5ที
-รู5นี
-รู5บิ
-รูป5ก
-รู5ปิ
-รู5มา
-รู5มู
-รู5หร
-2ร1เ
-ร1โ
-ร่5กะ
-ร่5ตร
-ร่5ร่
-ร่5หล
-ร์5กอ
-ร์5กี
-ร์5คั
-ร์5ดิ
-ร์5ติ
-ร์5ตู
-ร์5ทิ
-ร์5ฟอ
-ร์5ฟู
-ร์5ลี
-ร์5วอ
-ฤ4ดา
-ฤป4เ
-ฤษ5ฎี
-ฤห5บด
-ล5กนะ
-ลก5ลา
-ลก5วั
-ล3กอ
-ล4กัย
-ลข5คณ
-ลข5หม
-ลชี4
-ลด5ระ
-ลด5ลิ
-ล4ดา
-ล1ต
-ล4ตฟ
-ลต5ฟอ
-ลบ5ตะ
-ลบ5มุ
-ลบ5ล้
-ลบ5ไส
-ลป5ตอ
-ลม5ค้
-ลม5งว
-ล3มอ
-2ลย
-ล1ล
-ล3วี
-ลว5ไห
-ลส5ไต
-ลห5กุ
-ลอก5ล
-ลอ5จี
-ลอ5สร
-ละ5ผล
-1ลักษ
-ลา5กล
-ลา5นี
-ลา5บร
-ลา5ป๋
-ลา5พอ
-3ลาร
-ลา5รอ
-ลา5ร้
-ลา5ฤก
-ลา5ส้
-ลิ5กอ
-ลิ5ก่
-ลิ5จู
-ลิ5ตอ
-ลิ5นอ
-ลิ5น่
-ลิ5ฟอ
-ลิ5มู
-ลี5ตะ
-3ลีน
-ลี5ผล
-ลี5ลา
-ลี5วู
-ลุก5ร
-ลุก5ล
-ลุ5ล่
-ลูก1
-ลู5ซี
-ลู5ที
-ลู3มิ
-ลู5ลอ
-ลู5ออ
-ลู5แบ
-2ล1เ
-2ล1แ
-ล1โ
-ล่5ติ
-ล่5ที
-ล่5หล
-ล่5ออ
-ล้5โพ
-2ล์
-ล์5สต
-ว3กร
-วก5ว่
-ว5การ
-ว1ค
-1วงศ
-วจ5ตร
-วจ5สอ
-วช5นี
-วด5ถ่
-วด5มว
-วด5ยิ
-วด5ระ
-วด5ลา
-วด5ล้
-วด5อ้
-ว1ต
-ว4ตฉ
-วน5ถี
-วน5ท้
-วน5ผส
-วน5รว
-วน5ร่
-วน5อิ
-วน5อุ
-วบ5ยอ
-วบ5รว
-วบ5รั
-วบ5ฮา
-ว1ป
-ว1พ
-วม5รอ
-ว3มู
-วย5ก้
-วย5จี
-วย5ริ
-วย5รื
-วย5ล้
-วย5ไท
-วย5ไม
-วร5ธิ
-วร5มณ
-วร5มห
-ว4รย
-วรร4
-3วรรณ
-ว4ร์
-วล5ระ
-วส5ปอ
-ว1ห
-วอ5ชิ
-1วั
-วัน3
-วันต5
-วันท4
-1วา
-วา5ดะ
-วา4ต
-วา5ตก
-วา5ติ
-วา5นร
-วา5นึ
-วา5บร
-วา5มน
-วา5รณ
-วา5สนะ
-วา4ห
-วา5หน
-วา5หิ
-1วิ
-วิ5กล
-วิ5กส
-วิ5คห
-วิ5จุ
-วิ5ดี
-วิ5ตก
-วิ5ตร
-วิ5ตี
-วิ5ถี
-3วิท
-วิ5ทิ
-วิ5ธุ
-วิ5ธู
-วิ5ปก
-วิ5ปฏ
-วิ5ปล
-วิ5ปว
-วิภู5
-วิ5มล
-วิ5รง
-วิ5วร
-วิ5ศร
-วิ5ศุ
-วิ5ษุ
-วิ5สร
-วิ5สฤ
-วิเล5
-วี5คู
-วี5ชน
-วี5ดิ
-1วุ
-ว1เ
-ว1แ
-ว1โ
-ว่5ห้
-ว้5ชื
-ว้5ทุ
-ว้5ลา
-ว์5ลิ
-ศ1จ
-ศต5วร
-ศน5อุ
-ศพิ4
-3ศรี
-ศษ5ซ้
-ศษ5วร
-ศษ5เก
-ศษ5เห
-1ศั
-ศัก5ร
-1ศา2
-ศา5กา
-ศา5ขบ
-ศา5นุ
-ศา5ภิ
-ศา5รย
-ศา5รั
-ศา5ริ
-ศา5ลา
-1ศิ
-ศิ5รพ
-ศิ5รว
-ศิ5ศี
-1ศึ
-ศุ5กล
-ศู5ลิ
-ศเจ5ร
-ษ3ฎา
-ษฐ5ภค
-ษ5มณี
-ษ4มา
-1ษั
-1ษา
-ษา5คเ
-1ษิ
-ษ์5พย
-สก5ลิ
-สก5ลึ
-สก5วั
-สก5วา
-ส4กา
-4ส4กุ
-สข5บุ
-สง5ขล
-ส1ซ
-สด5ชื
-ส4ดุ
-ส5ดุภ
-ส4ตท
-สต5ทิ
-ส3ตรา
-2สต์
-สถ5วี
-4สถ์
-สน5ธย
-สน5ธิ
-ส5นียะ
-ส4นุ
-สนูป5
-ส4ปา
-ส2ม
-สม5คว
-สม5ดุ
-3สมบ
-สม5ผส
-สม5ผุ
-สม5ผเ
-สม5ยอ
-สม5ฤด
-สม5ฤต
-สม5หว
-ส5มัท
-ส5มัน
-สมุ4
-สรร5ช
-สร5ลอ
-สล5บร
-สว4ก
-สว5ยม
-สว5ริ
-ส4วา
-4สวิ
-ส1ส
-สห5กร
-สห5กา
-สห5ชา
-สห5ธร
-สห5ปร
-สห5พั
-สห5ภา
-สห5รา
-สห5ศึ
-สอ5พล
-สอ5พอ
-สะ5ใภ
-1สั
-สัญประ5
-สัน3ถ
-สัม3
-1สา
-สา5คเ
-4สาธ
-สา5นึ
-สา5มน
-สา5วพ
-สำ5ออ
-สำ5โร
-1สิ
-สิ5ถิ
-สี5ข้
-สี5ชอ
-สี5ดว
-สี5ตล
-สี5ตโ
-สี5ถ่
-สี5ผึ
-สี5ฝุ
-สี5ละ
-สี5ลั
-สี5วล
-1สุ
-สุ5กร
-สุ5กำ
-สุ5กี
-สุ5ขิ
-สุ5ขุ
-สุ5คต
-สุ5คร
-สุ5นี
-สุ5บร
-สุ5ปร
-สุ5มน
-สุ5สง
-สุ5ไห
-2สุ์
-1สู
-ส1เ
-ส4เฟ
-ส1โ
-ส4โค
-3ส่ว
-ส่5ไค
-ส้5กร
-ส้5ติ
-ส้5ไก
-2ส์
-ส์5หย
-ห2
-2ห1ก
-หก5ระ
-หก5ล้
-5หการ
-หง4ส
-หง5สา
-หฤ5หร
-หฤ5โห
-หล5สะ
-หอ5คอ
-หอ5สม
-1หั
-หา5กฐ
-หา5บพ
-หา5ปณ
-หา5พร
-หา5รื
-หา5ฤก
-หา5วร
-หิ5รก
-หิ5ศว
-หุ5คู
-หู5กร
-หู5กว
-หู5หน
-ห้5ท่
-ห้5ท้
-ห้5ร้
-2ห์
-ห์5กร
-ห์5สน
-ฬว5รา
-ฬห5บู
-1ฬา
-ฬา5มณ
-ฬา5รึ
-อก5ซอ
-อก5ถล
-อก5รณ
-อก5รี
-อก5รู
-อก5ร่
-อก5ฤท
-อก5ลว
-อก5ลอ
-อก5ลา
-อก5ล่
-อก5ว่
-อก5ใบ
-อค5ที
-อฆ5สง
-อง4คม
-อง5ถิ
-อง5บร
-อง5ฟอ
-อง5ฟุ
-อง5ระ
-อง5อุ
-อง5อ้
-อด5ช่
-อด5ถอ
-อด5น่
-อด5ฝา
-อด5ยอ
-อด5รั
-อด5อย
-อด5ออ
-อด5อุ
-อด5อ้
-อ3ดิ
-อต5ดอ
-อต5ด็
-อต5สว
-อต5ไว
-อ1ท
-อ4ทค
-อท5คอ
-อน5ง้
-อน5จอ
-อน5ทำ
-อน5ผั
-อน5ฝู
-อน5ย้
-อ4นา
-อ4นุ1
-อบ5ช้
-อบ5ถา
-อบ5บี
-อบ3อ
-อบ5ไล
-อป5คอ
-อป5ติ
-อป5พร
-อป5พล
-อป4ร
-อป5วา
-อป5โล
-อพ5ริ
-อฟ5ฟี
-อฟ5ริ
-อฟ5โร
-อฟ5ไล
-อ4ภั
-อม5คล
-อม5ค้
-อม5ฎอ
-อม5ดอ
-อม5ถอ
-อม5ฟอ
-อม5ยิ
-อม5รา
-อม5ร่
-อม5ฤต
-อม5หล
-อม5หว
-อม5ห้
-อ5มอน
-อย5กอ
-อย5ก๋
-อย5นว
-อย5ร่
-อย5ร้
-อย5อิ
-อ4ยา
-อย5ได
-อร5มน
-อ3รอ
-อ1รั
-อ3รา
-อ1ริ
-อ1รี
-อ3ร้
-อร์1
-อล5จี
-อล5นี
-อล5ฟ่
-อล5หม
-อ3ลั
-อ1ลิ
-อว5รุ
-อศ5กร
-อศ5คร
-อษ5ฐช
-อษ5ฐภ
-อส5กา
-อส5ติ
-อส5ตู
-อส5นี
-อส5พล
-อส5ฟอ
-อส5มิ
-อส5เฟ
-อส5แอ
-อส5ไพ
-อ1ห
-3ออน
-ออ5อว
-อะ5ธี
-อะ5ฮั
-1อั
-1อา
-อา5ค5เ
-อา5ฏา
-อา5ณั
-อา5ดุ
-อา5ดู
-อา2ต
-อา5ถร
-อา5นน
-อา5ปณ
-อา5มล
-อา5ย5ต
-อา5รด
-อา5รต
-อา5รบ
-อา3รย
-อา5ลป
-อา5วร
-อา5วี
-อา5สว
-อำ5ยว
-อำ5อว
-อิ5ชย
-อิ5ดะ
-อิ5ระ
-อิ5ศว
-อี5คิ
-อี5จู
-อี5ซู
-อี5ยิ
-อี5รุ
-อี5ลุ
-อี5ศว
-อี5หร
-อุ5กฤ
-อุ5กล
-อุ5คร
-อุ5ดม
-อุ5ดร
-อุ5ด้
-อุ3ตรา
-อุ5ตุ
-อุ5ทร
-อุ5ทิ
-อุ5ทุ
-อุ5ธั
-อุ5บล
-อุ5บ๊
-อุ5มง
-อุ5รพ
-อุ5ลก
-อุ5แว
-อู5คู
-อู5มา
-อู5รา
-อู5ลา
-อ1เ
-อเป5ร
-อเสก5
-อเส5ข
-อเห5ต
-อ1แ
-อ1โ
-อ1ไ
-3อ่อ
-อ่5อว
-อ่5อ่
-อ่5โถ
-อ้5อว
-อ้5โถ
-อ้5โล
-ฮก5ฮา
-ฮก5ฮื
-ฮช5แท
-ฮน5รี
-ฮฟ5วี
-ฮล5ดิ
-3ฮอล
-ฮา5นอ
-ฮา5ป่
-ฮา5ร่
-ฮิ5บร
-ฮี5บร
-3ฮื้
-ฮู5ลา
-ฮู5ล่
-ฮ1เ
-ฮ1โ
-ฮ่5กึ
-ะ1ก
-ะ1ข
-ะ1ค
-ะ1ง
-ะ1จ
-ะ1ฉ
-ะ1ช
-ะ1ซ
-ะ1ด
-ะ1ต
-ะตะ4
-ะ1ท
-ะ1น
-ะ1บ
-ะ1ป
-ะผี4
-ะ1พ
-ะ1ม
-ะ1ย
-ะ1ร
-ะ1ล
-ะ1ว
-ะ1ส
-ะ1ห
-ะ1อ
-ะ1เ
-ะ1แ
-ะ1โ
-ะ1ไ
-ั2
-ัก5ง่
-ัก5ซ้
-ัก5ตบ
-ัก5ผ่
-ัก5ฝ่
-ัก5ยอ
-ัก5ยิ
-ัก5รั
-ัก5ร้
-ัก3ล
-ัก5วิ
-ัก5ษร
-ัก5ษอ
-ัก5อิ
-ัก5อี
-ัก5อ่
-ัก5ใค
-ัก5ใฝ
-ัค5ฆิ
-ัค5ซี
-ัค5สถ
-ัง5ถึ
-ัง5ศุ
-ัง4ส5ว
-ัง5อว
-ัง5อุ
-ัง5ฮี
-ัจ5กล
-ัจ5ญะ
-ัจ5ถร
-ัจ5นึ
-ัจ5โจ
-ัช5ฎา
-ัช5นี
-ัช5พย
-ัช5พื
-ัช5ริ
-ัช5สก
-ัช5สม
-ัช5แพ
-ัช5โญ
-ัช5โย
-ัญ1
-ัฏ5ทุ
-ัฏ5สง
-ัฐ5ทิ
-ัฐ5บร
-ัฐ5สภ
-ัฐ5เค
-ัณ5ฏก
-ัณ3ฐ
-ัณ5ยก
-ัณ5เฑ
-ัณ5โร
-ัด1
-ัด5รู
-ัต5ดึ
-ัต5ถล
-ัต5ถั
-ัต5ถิ
-ัต5มณ
-ัต5มห
-ัต5รา
-ัต5รี
-ัต5ฤก
-ัต5ลั
-ัต3ส
-ัต5หล
-ัต5หี
-ัท5คี
-ัท5ทว
-ัท5ธน
-ัท5ธิ
-ัท5รา
-ัท5ลี
-ัท5ลุ
-ัธ5ยม
-ัน5ฉ่
-ัน2ต
-ัน5ตภ
-ัน5ตะ
-ัน5ตั
-ัน5ตา
-ัน5ถธ
-ัน5ทึ
-ัน5ทุ
-ัน4ธ
-ัน5ธา
-ัน5ธิ
-ัน5ผว
-ัน5ฝร
-ัน5ฝ่
-ัน5ยะ
-ัน5ย่
-ับ1
-ัป5คั
-ัป5ผา
-ัป4ร
-ัป5ลา
-ัป5หง
-ัป5โป
-ัป5โห
-ัพ5ยอ
-ัพ5ยา
-ัพ5โพ
-ัพ5โห
-ัฟ5ริ
-ัม4ช
-ัม5หม
-ัย5มร
-ัย5รุ
-ัล5ดี
-ัล5ปน
-ัล5ปพ
-ัล5ปิ
-ัล5มุ
-ัล5ออ
-ัล5ไซ
-ัล5ไฟ
-ัว1
-ัศ5นี
-ัศ5มี
-ัศ5เจ
-ัศ5ไน
-ัส1
-ัส5กา
-ัส5มั
-ัส5มิ
-ัส5วา
-าก5ถา
-าก5ฝร
-าก5ฝั
-า1กร
-า4ก5รุ
-า3กอ
-าก5ฮอ
-า3กี
-า1ข
-า4ขบ
-าข5บู
-า1ค
-า4คจ
-า4คท
-า4คบ
-า4คป
-าค5ปร
-า4คพ
-าค5พื
-า4คภ
-า5ครี
-าง5บำ
-าง5ฝี
-าง5ออ
-าง5อิ
-า1จ
-า4จญ
-า4จห
-าจ5หา
-า4จอ
-า4จเ
-าช5กร
-าช5คร
-าช5คฤ
-าช5ทิ
-า5ชนะ
-าช5นี
-าช5ปะ
-าช5ลั
-าช5วโ
-าช5สก
-าช5สี
-าช5อง
-า1ชิ
-า3ชี
-าช5โอ
-า1ซ
-าญ5รอ
-า5ฏกะ
-าฏ5ดน
-า5ฏลิ
-าฏ5ลี
-า3ฏิ
-าฐ5กถ
-าณ5คด
-าณ5สถ
-าด5ผว
-า3ดอ
-า3ดิ
-าด5ไท
-าด5ไห
-า1ต
-า4ตญ
-า4ตภ
-าต4ว
-า1ท
-า4ทธ
-า4ทน
-า5ทนะ
-าท5บง
-าท5บร
-าท5สก
-าท5หล
-า1ธ
-า4ธน
-า2ธย
-าธ5ยม
-าธา1
-าน5ญ่
-าน5ผู
-าน5รว
-าน5รั
-าน5ฤด
-าน5อว
-านุ1
-าบ5จ้
-าบ5ฉว
-าบ5ช้
-าบ5ซึ
-าบ4พ
-าบ5รื
-าบ5ละ
-า3บิ
-าป5สร
-าป5ส่
-าป5แช
-าพ5ถ่
-าพ5ยน
-าพ5รั
-าพ5ลว
-าฟ5ต้
-าฟ5ริ
-า1ภ
-า4ภป
-า4ภล
-าภ5ลอ
-าม5คิ
-าม5ง่
-าม4น4
-าม5นิ
-าม5สก
-าม2ห
-าม5หม
-าม5หล
-าม5หา
-า3มี
-าย5กล
-าย5กอ
-าย5ขว
-าย5ข้
-าย5ชน
-าย5ดิ
-าย5ด้
-า5ยตน
-า5ยนธ
-า5ยนม
-าย5นอ
-า5ยนเ
-าย5บร
-าย5ผอ
-าย5ฝั
-าย5มุ
-าย5ม่
-าย5รุ
-าย5ร้
-าย5ลั
-าย5ล่
-าย5วอ
-าย5อำ
-า3ยิ
-าย5ไห
-าร5กำ
-าร3ค
-า5รณะ
-าร5ณู
-าร5ตร
-า5รทะ
-าร5ธุ
-าร5ผจ
-าร5พร
-า5รภย
-า1รม
-าร5รา
-าร5ละ
-าร5วด
-าร5ว่
-าร5หน
-า1ระ
-า1รั
-า1รา
-า1ริ
-า5ริก
-า5ริยะ
-า1รี
-า1รุ
-า1ล
-า4ลก
-า4ลค
-า4ลจ
-าล5ฎี
-า4ลด
-าล5ดี
-าล5ทห
-า4ลป
-าล5ปก
-าล5พร
-า4ลว
-า4ลส
-าล5อุ
-า4ลโ
-าว5ก่
-าว5ข้
-า3วดี
-าว5ดึ
-าว5นี
-าว5บอ
-าว5ยอ
-าว5ยื
-า5วรณ
-าว5รภ
-า5วรร
-าว5รา
-า5ว5รี
-าว5รุ
-าว5ร้
-าว5ฤก
-า5วอน
-าศ5นี
-า3ศร
-าศ5เล
-าษ5ดื
-าษ5ตร
-าษ5รา
-าษ5แก
-าส5กา
-าส5คอ
-าส5ด้
-าส5ต้
-าส5นี
-าส5ปอ
-าส5มห
-า1ห
-าห3ก
-าห5มง
-าฬ5โร
-า1อ
-าอนา4
-า1ฮ
-า1เ
-าเม5ศ
-า1แ
-า1โ
-า1ไ
-ำ1ก
-ำ1ค
-ำท4ว
-ำ1น
-ำ1บ
-ำ1ป
-ำ1พ
-ำ1ม
-ำม5รง
-ำ1ร
-ำ1ล
-ำ1ส
-ำ1ห
-ำ1เ
-ำ1แ
-ิก5ซี
-ิก5ถอ
-ิ1กร
-ิก5ร้
-ิ3กฤ
-ิก5ล้
-ิก5วา
-ิก5ษุ
-ิกิ5ส
-ิ1ข
-ิ4ขส
-ิข5สิ
-ิ1ค
-ิ4คต
-ิค5ตอ
-ิ4คน
-ิ4คหะ
-ิฆ5เน
-ิง5ชี
-ิง4สต
-ิง4ห
-ิง5หา
-ิง5ห้
-ิง5อร
-ิจ5ศี
-ิช4น
-ิช5ลิ
-ิ3ชิ
-ิญ5หน
-ิญ5โญ
-ิด5ฉิ
-ิด5ชอ
-ิด5ชิ
-ิด5นี
-ิด5ผน
-ิด5รอ
-ิด5ระ
-ิด5ลั
-ิด5ออ
-ิด5อ่
-ิต5ซู
-ิต5ถี
-ิต5ฟอ
-ิต5ลด
-ิต5ลา
-ิต5วส
-ิต5สม
-ิ1ติ
-ิ3ตุ
-ิท5คอ
-ิท5ธั
-ิท5สน
-ิ3ธี
-ิน5งอ
-ิน5ฟร
-ิน5ยว
-ิน5ยอ
-ิน5ย้
-ิน5ระ
-ิน5ริ
-ิน5ร้
-ิ5นอบ
-ิน5อิ
-ิน5ฮุ
-ินู5ป
-ิบ5บิ
-ิบ5ผย
-ิบ5ยื
-ิบ5ระ
-ิบ5รี
-ิบ5ลั
-ิบ5ลิ
-ิบ5ล้
-ิป4ก
-ิป5ทอ
-ิป5ผล
-ิ3ปร
-ิป5สต
-ิป5สเ
-ิป5ฮอ
-ิป5โป
-ิป5โย
-ิ1พ
-ิ4พพ
-ิ4พโ
-ิพ5โส
-ิฟ5ฟอ
-ิ1ภ
-ิม5ฝี
-ิ1มุ
-ิย5มิ
-ิร5วด
-ิ1รั
-ิ1รา
-ิ1ริ
-ิ1รุ
-ิล5ปิ
-ิ1ลั
-ิ1ลา
-ิ1ลิ
-ิว5ซี
-ิว5ทร
-ิว5บิ
-ิว5ยอ
-ิว5ยิ
-ิ3วรร
-ิว5ริ
-ิว5ลิ
-ิว5ลึ
-ิวา5ส
-ิศ5พร
-ิศ5ร้
-ิศ5เล
-ิศ5แพ
-ิษ5ณุ
-ิษ5ตร
-ิส5กร
-ิส5กี
-ิ5สตร
-ิส5ติ
-ิส5ต้
-ิส5ที
-ิส5นี
-ิส5บอ
-ิส5รา
-ิส5ริ
-ิส5ลา
-ิส5ไซ
-ิ1ห
-ิหา4
-ิ1อ
-ิ1เ
-ิเน4
-ิ1โ
-ิ1ไ
-ี1ก
-ี4กต
-ี4กย
-ีก5ย่
-ีก5ริ
-ีฆ5สร
-ีช5คณ
-ีซ5สถ
-ีด5ฆ่
-ี5ดิย
-ีต5กว
-ีต5ปฏ
-ี1ท
-ีท4น
-ีบ5รุ
-ีบ5ร้
-ี1ป
-ี1พ
-ี4พจ
-ี1ม
-ีย5กถ
-ีย5รย
-ีย5รอ
-ีย5ระ
-ีย5รั
-ี5ยวน
-ีย5ไต
-ีร5ณั
-ี3รี
-ีรี5บ
-ีล5จุ
-ี4วั
-ีวา4
-ีษ5มา
-ีห5นา
-ี5หน้
-ีห5บั
-ีห5มุ
-ีห5รา
-ี3หล
-ีห5โม
-ีห5ไส
-ี1อ
-ีอ4ร
-ีอา4
-ี1เ
-ี1แ
-ี1โ
-ี1ไ
-ี่5ก่
-ี่5ถ้
-ี่5ปุ
-ี่5ปู
-ี่3ห
-ี่5โค
-ี่5โป
-ี้5กร
-ี้5จ้
-ี้5ตะ
-ี้5ฟู
-ี้5ริ
-ี้5ลั
-ี้5ลุ
-ี๊5กร
-ี๊5ด๊
-ี๊5ต่
-ี๋5จ้
-ี๋5อ๋
-ึก5ซึ
-ึก5ดำ
-ึก5ดื
-ึก5ยื
-ึก5ระ
-ึก5ลั
-ึก5ล้
-ึก5ฮั
-ึด5ถื
-ึด5ฮั
-ึน5ทึ
-ืด5ฮา
-ือ5กล
-ือ5กอ
-ือ5กำ
-ือ5ข่
-ือ5จ้
-ือ5ชื
-ือ5ดำ
-ือ5ตร
-ือ5ถื
-ือ5นำ
-ือ5ปล
-ือ5ปื
-ือ5ป่
-ือ5พว
-ือ5พ่
-ือ5ยน
-ือ5ยา
-ือ5รื
-ือ5ลา
-ือ5ล้
-ือ5สอ
-ือ5สำ
-ือ5อี
-ุก5งอ
-ุก5ฉก
-ุก5ซ่
-ุก5ดิ
-ุก5ผา
-ุก5รา
-ุก5รุ
-ุก5ละ
-ุก5ลี
-ุก5ล้
-ุก5อี
-ุก5ฮื
-ุข5นา
-ุข5ปา
-ุข5ภั
-ุข5ภา
-ุข5ลั
-ุข5ศา
-ุข5ศึ
-ุข5เด
-ุค5ทอ
-ุ3คน
-ุง5ถุ
-ุจ5ลิ
-ุจ5หน
-ุญ5จน
-ุญ5ฤท
-ุญ5แจ
-ุฎ5ฐั
-ุฑ5พ่
-ุณ5ค่
-ุณ5ฑก
-ุณ5หญ
-ุณ5หา
-ุณ5หิ
-ุณูป5
-ุด5ผา
-ุด5ผ่
-ุด5ลอ
-ุด5ลุ
-ุด5อู
-ุต5กว
-ุต5ซอ
-ุต5ตก
-ุ5ตระ
-ุ5ตริ
-ุต5ลุ
-ุต5ส่
-ุ3ทก
-ุท5ธั
-ุ5ทริ
-ุท5ลุ
-ุท5โธ
-ุน5ทร
-ุน5ผล
-ุน5รอ
-ุบ5งิ
-ุบ5บิ
-ุบ5ผล
-ุบ5ยิ
-ุบ5อิ
-ุป5กร
-ุป5จา
-ุป5ถั
-ุป5ยุ
-ุป3รา
-ุ5ปริ
-ุ4ปส
-ุป5สง
-ุป5สร
-ุป5ฮา
-ุป5โภ
-ุป5โล
-ุพ5พา
-ุพ5ภิ
-ุภ5ชล
-ุภ5เค
-ุม4น
-ุม5นุ
-ุม5รุ
-ุม5หย
-ุย5ช่
-ุย5ฝ้
-ุ1ร
-ุร5ข่
-ุ4รค
-ุ4รฉ
-ุ4รช
-ุ4รท
-ุ4รธ
-ุ4รบ
-ุ4รพ
-ุ4รภ
-ุ5รภี
-ุ4รย
-ุ4รร
-ุ4รล
-ุ4รว
-ุ4รศ
-ุ4รส
-ุ4รอ
-ุ4รแ
-ุ4รโ
-ุล5จอ
-ุล5ชี
-ุล5ธิ
-ุล5มุ
-ุล5วร
-ุล5สต
-ุล5สแ
-ุ3ลา
-ุ3ลิ
-ุศ5เร
-ุศ5โล
-ุษ5จี
-ุษ5ฎี
-ุษ5ปร
-ุ4ษย
-ุษ5รา
-ุษ5ร้
-ุษ5เพ
-ุส5รา
-ุ5สละ
-ุส5ลิ
-ุส5วา
-ุ1ห
-ุห5กล
-ุห5นา
-ุ4หย
-ุห5ยา
-ุ4หเ
-ุห5เท
-ุห5เส
-ุ4หโ
-ุห5โย
-ุ1เ
-ุ1โ
-ุ๊5ต๊
-ูก5วั
-ู1ช
-ูญ5หา
-ูญ5เป
-ูญ5เส
-ูด5บึ
-ูด5รี
-ูต5รู
-ูธ5เร
-ูบ5ไล
-ูป4ก
-ูป5ฌา
-ูป5ถ่
-ูป5ทร
-ูป5พร
-ูป5ร่
-ูป5แบ
-ูป5โฉ
-ูฟ5วี
-ู2ม
-ู5มิน
-ูร5ข่
-ูร4ณ
-ู5รณภ
-ู5รณม
-ู5รณะ
-ู5รณาก
-ูร4พ
-ู5รพะ
-ู5รพา
-ูร4ม
-ูล5กร
-ูล5ค่
-ู3ลั
-ูว5ไน
-ูส4ว
-ู1เ
-ู1โ
-ู่1
-ู้1
-ู๊5ตึ
-ู๋5กร
-ู๋5จี
-ู๋5อี
-เ2
-เก5ยู
-เก5รล
-เก5วั
-เก5ศว
-เก5อิ
-เค5ซอ
-เค5มี
-เค5ศว
-เจ5ดี
-เจ5นี
-เ4จร
-เจ5ลิ
-เจ5โต
-เจ5โร
-เซ5ทิ
-เซ5นอ
-เซ5รุ
-เซ5แค
-เด5บิ
-เด5รั
-เด5ลา
-เด5ลิ
-เด5ลี
-2เตช
-เต5ปุ
-เต5มี
-เต5มู
-เต5ริ
-เต5ลุ
-เต5ศว
-เต5หะ
-เถ5รา
-เท5กร
-เท5คร
-เท5คว
-เท5โว
-เท5โศ
-เน4ต
-เน5ติ
-4เนย
-เน5ระ
-เน5รั
-เน2ส
-เน5สา
-เน5เว
-เบ5ต้
-เบ5บี
-เบ5ริ
-เบ5รุ
-เบ5ลี
-เป5ตอ
-เป5สก
-เป5สล
-เพ5ชุ
-เพ5ทุ
-เพ5สล
-เพ5โท
-เพ5ไน
-เฟ5อี
-เภ5ตร
-เภ5ทุ
-เม5ฆิ
-เม5ดิ
-เม5ลอ
-เม5ล่
-เม4ส
-เม5สุ
-เร5กอ
-เร5กะ
-เร5มอ
-เร5รว
-เร5วด
-เล5กร
-เล5คอ
-เล5ดี
-เล5พอ
-เล5วร
-เล5วู
-เล5หล
-เล5ฮุ
-เลิ4
-เว5ก้
-เว5ทิ
-เว5ล่
-เว5ฬุ
-เว5ไน
-เส5ฉว
-เส5นีย์
-เส5รี
-เส5วก
-เส5วน
-เส5แส
-เห5มั
-เห5ยง
-เห5ระ
-เห5รั
-เห5ศว
-เห5ศั
-เห5สั
-เฬ5วร
-เอ5กว
-เอ5ธิ
-เอ5ฬก
-เฮ5ละ
-เฮ5ลิ
-แก5วั
-แค5รอ
-แค5ริ
-แค5ลอ
-แค5ลิ
-แค5แต
-แค5แส
-แซ5ยิ
-แซ5หว
-แด5รี
-แต5แต
-แน2
-แบ4ค
-แบ5ริ
-แ4ปร
-3แพท
-แฟ5รี
-แ4ฟ้
-แม2
-แม5กา
-แม5ชี
-แม5ริ
-แม5รี
-แม5เร
-แม่3
-แอ5นะ
-โก4ฐ
-โก5ลอ
-โก5ลา
-โก5ลิ
-โก5วา
-โก5วี
-โก5ฮา
-โข5ทั
-โข5ภิ
-โข5เภ
-โข5โล
-โค5ตม
-โค5ติ
-โค5มู
-โค5ม่
-โค5ริ
-โค5ลอ
-โค5ลั
-โค5ลี
-โค5ล่
-โค5ออ
-โค5อะ
-โค5แท
-โค5ไซ
-โจ5ปก
-โจ5อี
-โฉ5เบ
-โช5ฎึ
-โช5ดึ
-โช5ห่
-โซ5กร
-โซ5นี
-โซ5ยู
-โซ5ลู
-โซ5สเ
-โญ4ช
-โญ5ปว
-โด5จี
-โด5นี
-โด5รา
-โด5ลิ
-โต5กร
-โต5รอ
-โต5รา
-โต5ริ
-โต5ลิ
-โต5สเ
-โต5ไค
-โท5กร
-โท5คอ
-โท5ดอ
-โท5พล
-โท5รอ
-โท5แอ
-โธ5ทน
-โธ5ปก
-โธ5ปิ
-โธ5วน
-โธ5เฟ
-โน5ทุ
-โน5ปจ
-โน5รม
-โบ5ชุ
-โบ5ซอ
-โบ5ต้
-โบ5รอ
-โบ5รั
-โบ5รา
-โบ5ลิ
-โบ5ล่
-โบ5อิ
-โบ5ไฮ
-โป5กส
-โป5ลิ
-โป5แต
-โป5แล
-โป5โป
-โป5โล
-โพ5ทะ
-โพ5ระ
-โพ5ลา
-โพ5ลิ
-โพ5ลี
-โพ5หา
-โพ5แท
-โพ5ไซ
-โฟ5กร
-โฟ5ตอ
-โฟ5นี
-โฟ5ลิ
-โภ5คิ
-โภ5ไค
-โม5ฆี
-โม5ดู
-โม5ร็
-โม5หา
-โม5ฮั
-โย5ถิ
-โร5กะ
-โร5คิ
-โร5งั
-โร5ธนะ
-โร5พล
-โร5ฟอ
-โร5ฟี
-โร5รา
-โร5ร่
-โร5ล่
-โรส4
-โร5สเ
-โร5หน
-โร5อี
-โร5ฮิ
-โร5ฮี
-โร5แม
-โร5ไล
-โล5กร
-โล5กี
-โล5จน
-โล5ปุ
-โล5มก
-โล5รา
-โล5วะ
-โล5หิ
-โล5ไม
-โว5นอ
-โศ5ธน
-โศ5ภิ
-โส5กร
-โส5ติ
-โส5ธน
-โส5ภิ
-โส5รั
-โส5ลิ
-โส5หุ
-โส5โค
-โห5ฐา
-โห5รส
-โห5ระ
-โห5รา
-โห5สิ
-โห5ฬา
-โอ5คล
-โอ5ค็
-โอ5ดี
-โอ5รส
-โอ5ละ
-โอ5สถ
-โอ5อิ
-3ใช้
-1ให
-ไก5ลา
-ไก5วั
-ไข5ข้
-ไข5คว
-ไข5มั
-ไข5สั
-ไข5สื
-ไค5ศว
-ไช5น่
-ไช5ศว
-ไซ5ดอ
-ไซ5บอ
-ไซ5บี
-ไซ5ปร
-ไซ5รั
-ไซ5แน
-ได5ฟุ
-ได5ฟู
-ได5ลิ
-ได5ออ
-ไต5รี
-ไท5กร
-ไท5ฟอ
-ไท5รอ
-ไท5แท
-ไป5ริ
-ไพ5ชย
-ไพ5ทอ
-ไพ5ธอ
-ไพ5รั
-ไพ5ริ
-ไพ5ลิ
-ไพ5หา
-ไพ5โร
-ไพ5โอ
-ไฟ5แช
-ไฟ5แน
-ไภ5ริ
-ไม5ถิ
-ไม้1
-ไล5บร
-ไล5บี
-ไว5รั
-ไว5อะ
-ไห5รณ
-ไห5ศว
-ไห5หม
-ไห5หล
-ไอ5กร
-ไอ5คิ
-ไอ5ซี
-ไอ5ดอ
-ไอ5ติ
-ไอ5พอ
-ไอ5พ็
-ไอ5ศว
-ไอ5ศุ
-ไอ5ศู
-ไฮ1
-็ก5ซี
-็จ5ขบ
-็จ5สร
-็ด5ลอ
-็ด5อร
-็ด5อึ
-็น5ฉ่
-็น5รอ
-็น5วู
-็น5อย
-็น5อ้
-็บ5ด้
-็ป5ท็
-็ม5หม
-่ก5ลั
-่1ค
-่ง5ริ
-่ง5อร
-่ง5อำ
-่ง5อ่
-่4ฉี
-่น5ง่
-่น5ฉ่
-่น5ทะ
-่น5มื
-่4นย
-่น5ยน
-่น5ย่
-่น5รม
-่ม1
-่ม5พว
-่ย5กะ
-่ย5ฉุ
-่ย5รา
-่ย5ร่
-่ว5ช้
-่ว5ถึ
-่ว5ยว
-่ว5ฮ้
-่ว5ไห
-่อ5กร
-่อ5กว
-่อ5กะ
-่อ5กี
-่อ5ก้
-่อ5ข่
-่อ5ตร
-่อ5ตะ
-่อ5ต้
-่อ5ถื
-่อ5บื
-่อ5ผส
-่อ5มว
-่อ5ม่
-่อย3
-่อ5ยอ
-่อ5ย่
-่อ5ร่
-่อ3ล
-่อ5ว่
-่อ5สร
-่อ5ฮั
-่อ5ฮ่
-่า5กล
-่า5ช้
-่า5ดง
-่า5ด้
-่า5ฝื
-่า5พร
-่า5มง
-่า5รึ
-่า5ร้
-่าว3
-่ำ5ชอ
-่ำ5ช้
-่ำ5ต้
-่ำ5ต๊
-่ำ5ไห
-่1เ
-่1แ
-้ก5อ้
-้ง5ถ่
-้ง5ฝุ
-้น5งู
-้น5ฉบ
-้น5ฉ่
-้น5ทะ
-้น5ทุ
-้น5ท้
-้น5รุ
-้น5ร่
-้ม5คล
-้ม5งว
-้ม5ฉุ
-้ม5น้
-้ม5ยิ
-้ม5ละ
-้ม5ลุ
-้ม5อล
-้ย5กล
-้ย5งช
-้ย5ล่
-้ย5อ้
-้ย5ใบ
-้ว5รอ
-้1ห
-้อ5กร
-้อ5กล
-้อ5คร
-้อ5คู
-้อ5งอ
-้อ5ฉี
-้อ5ดึ
-้อ5ด้
-้อ5ต๊
-้อ5ถอ
-้อน3
-้อ5ผ้
-้อ5ฝั
-้อ5ฟื
-้อ5มู
-้อ5ระ
-้อ5ร่
-้อ5อึ
-้อ5ฮื
-้า5จอ
-้า5ชื
-้า5ชู
-้า5ช่
-้า5ช้
-้า5ดี
-้า5ถิ
-้า5ถึ
-้า5บ่
-้า5บ้
-้า5บ๋
-้า5ปี
-้า5ผา
-้า5ฝร
-้า3พ
-้า5มุ
-้า5ว่
-้า5สม
-้า5สร
-้า5สล
-้ำ1
-้1เ
-้1แ
-๊ก5ซอ
-๊ก5ริ
-๊ก5ลุ
-๊ก5ฮว
-๊ง5บ๊
-๊ป5ซี
-๊ย5ก่
-๋ย5อิ
-๋อ5ด๋
-์ค5สเ
-์ค5แล
-์ต5ไท
-์4ทเ
-์ท5ไท
-์1น
-์1บ
-์1พ
-์1ร
-์1เ
-์1แ
-์1โ
-.ก6
-.ข6
-.ฃ6
-.ค6
-.ฅ6
-.ฆ6
-.ง6
-.จ6
-.ฉ6
-.ช6
-.ซ6
-.ฌ6
-.ญ6
-.ฎ6
-.ฏ6
-.ฐ6
-.ฑ6
-.ฒ6
-.ณ6
-.ด6
-.ต6
-.ถ6
-.ท6
-.ธ6
-.น6
-.บ6
-.ป6
-.ผ6
-.ฝ6
-.พ6
-.ฟ6
-.ภ6
-.ม6
-.ย6
-.ร6
-.ฤ6
-.ล6
-.ฦ6
-.ว6
-.ศ6
-.ษ6
-.ส6
-.ห6
-.ฬ6
-.อ6
-.ฮ6
-6ก.
-6ข.
-6ฃ.
-6ค.
-6ฅ.
-6ฆ.
-6ง.
-6จ.
-6ฉ.
-6ช.
-6ซ.
-6ฌ.
-6ญ.
-6ฎ.
-6ฏ.
-6ฐ.
-6ฑ.
-6ฒ.
-6ณ.
-6ด.
-6ต.
-6ถ.
-6ท.
-6ธ.
-6น.
-6บ.
-6ป.
-6ผ.
-6ฝ.
-6พ.
-6ฟ.
-6ภ.
-6ม.
-6ย.
-6ร.
-6ล.
-6ว.
-6ศ.
-6ษ.
-6ส.
-6ห.
-6ฬ.
-6อ.
-6ฮ.
-6ก์.
-6ข์.
-6ฃ์.
-6ค์.
-6ฅ์.
-6ฆ์.
-6ง์.
-6จ์.
-6ฉ์.
-6ช์.
-6ซ์.
-6ฌ์.
-6ญ์.
-6ฎ์.
-6ฏ์.
-6ฐ์.
-6ฑ์.
-6ฒ์.
-6ณ์.
-6ด์.
-6ต์.
-6ถ์.
-6ท์.
-6ธ์.
-6น์.
-6บ์.
-6ป์.
-6ผ์.
-6ฝ์.
-6พ์.
-6ฟ์.
-6ภ์.
-6ม์.
-6ย์.
-6ร์.
-6ล์.
-6ว์.
-6ศ์.
-6ษ์.
-6ส์.
-6ห์.
-6ฬ์.
-6อ์.
-6ฮ์.
-6กิ์.
-6ขิ์.
-6ฃิ์.
-6คิ์.
-6ฅิ์.
-6ฆิ์.
-6งิ์.
-6จิ์.
-6ฉิ์.
-6ชิ์.
-6ซิ์.
-6ฌิ์.
-6ญิ์.
-6ฎิ์.
-6ฏิ์.
-6ฐิ์.
-6ฑิ์.
-6ฒิ์.
-6ณิ์.
-6ดิ์.
-6ติ์.
-6ถิ์.
-6ทิ์.
-6ธิ์.
-6นิ์.
-6บิ์.
-6ปิ์.
-6ผิ์.
-6ฝิ์.
-6พิ์.
-6ฟิ์.
-6ภิ์.
-6มิ์.
-6ยิ์.
-6ริ์.
-6ลิ์.
-6วิ์.
-6ศิ์.
-6ษิ์.
-6สิ์.
-6หิ์.
-6ฬิ์.
-6อิ์.
-6ฮิ์.
-6กุ์.
-6ขุ์.
-6ฃุ์.
-6คุ์.
-6ฅุ์.
-6ฆุ์.
-6งุ์.
-6จุ์.
-6ฉุ์.
-6ชุ์.
-6ซุ์.
-6ฌุ์.
-6ญุ์.
-6ฎุ์.
-6ฏุ์.
-6ฐุ์.
-6ฑุ์.
-6ฒุ์.
-6ณุ์.
-6ดุ์.
-6ตุ์.
-6ถุ์.
-6ทุ์.
-6ธุ์.
-6นุ์.
-6บุ์.
-6ปุ์.
-6ผุ์.
-6ฝุ์.
-6พุ์.
-6ฟุ์.
-6ภุ์.
-6มุ์.
-6ยุ์.
-6รุ์.
-6ลุ์.
-6วุ์.
-6ศุ์.
-6ษุ์.
-6สุ์.
-6หุ์.
-6ฬุ์.
-6อุ์.
-6ฮุ์.
-6ะ
-6า
-6ๅ
-6ำ7
-6ิ
-6ี
-6ึ
-6ื
-6ุ
-6ู
-แ6
-โ6
-5ไ6
-7ใ6
-6็
-6่
-6้
-6๊
-6๋
-6์
-6ํ
-6ฺ
-6๎
-เ6ข
-เ6ฃ
-เ6ค
-เ6ฅ
-เ6ฆ
-เ6ง
-เ6จ
-เ6ฉ
-เ6ช
-เ6ซ
-เ6ฌ
-เ6ญ
-เ6ฎ
-เ6ฏ
-เ6ฐ
-เ6ฑ
-เ6ฒ
-เ6ณ
-เ6ด
-เ6ต
-เ6ถ
-เ6ท
-เ6ธ
-เ6น
-เ6บ
-เ6ป
-7เ6ผ
-เ6ฝ
-เ6พ
-เ6ฟ
-เ6ภ
-เ6ม
-เ6ย
-เ6ร
-เ6ล
-เ6ว
-เ6ศ
-เ6ษ
-เ6ส
-เ6ห
-เ6ฬ
-เ6อ
-เ6ฮ
-ช6วา.
-ช6ไ
-ธ6ไน
-ม6ไห
-ส6ไต
-เลส7ไต
-ส6ไน
-ส6ไบ
-ส6ไป
-ส6ไล
-บ6ทคว
-ม6วก
-ม6วน
-ม6วด
-ม7วดี
-ม6วย
-ะม6วง
-ล7ชน
-ัต5ถุ
-ัต6ถุ์
-6ตร.
-ธา6ตุ.
-บุ6ตร.
-ค6รู
-ฮิบ6รู
-ฮีบ6รู
-ส6ภา
-ส7ภาร
-เส7ภา
-โส7ภา
-ผ6วา
-น6คร.
-.เห6ยง
-เปี่6
-เขี้6
-ม6ณี
-คาม7ณี
-.รม7ณี
-.รัม7ณี
-หม7ณี
-ง6วด
-ง6วน
-วัง7วน
-ง6วย
-มง6วง
-อย6อด
-พ6ญา
-จุ6รณ
-ฤ6ชา
-.ฤ6ทัย
-พรร6ดิ
-สวา6ดิ
-อ6ริ.
-จน6ที.
-ธค6ยา
-นิม6นา
-ย์ม6นา
-า7ณะ
-ิ7ณะ
-ุ7ณะ
-ณ7ณะ
-ก7ณะ
-ท7ณะ
-ล7ณะ
-ุษ7ณะ
-ฤษ7ณะ
-รป7ณะ
-หม7ณะ
-สม7ณะ
-ลว7ณะ
-รว7ณะ
-ร5ณะ
-ณร6สี
-ก6นะ
-ยก7นะ
-ค7นะ
-ย7นะ
-ภว7นะ
-มท7นะ
-รต7นะ
-ลว7นะ
-วจ7นะ
-วท7นะ
-วส7นะ
-ศม7นะ
-ภช7นะ
-ไช7นะ
-าลป7นะ
-รรธ7นะ
-สธ5นะ
-โสธ6นะ
-สว5นะ
-เสว6นะ
-สาว7นะ
-ัจ7นะ
-ัช7นะ
-ัฏ7นะ
-ัฒ7นะ
-ัต7นะ
-ัท7นะ
-ัป7นะ
-ัส7นะ
-ุจ7นะ
-อาส7นะ
-ุ7นะ
-5ผี
-7จำ
-5งำ
-ห6งำ
-น7รำ
-ย7รำ
-ร7รำ
-โค7รำ
-ไพ7รำ
-น7ยำ
-ม7ยำ
-5งง.
-ห6งง
-น7งก
-5ชน.
-เ6ชน
-โ6ชน
-5กร.
-ั6กร
-า7นะ
-ถ7ระ
-า7ยก.
-า7ยน.
-า7ฐี
-า7นี
-า7วี
-ป5โ
-ป6โย
-ป6โภ
-วิป7โย
-อุป7โภ
-ศ7นะ
-รร7มะ
-ต5ถี
-ุต6ถี
-5บท.
-ส6บท
-5บถ.
-ข6บถ
-ส6บถ
-7ฟู
-7ษุ
-5ตะ.
-ค6ตะ
-ร6ตะ
-สร7ตะ
-มิ7ผ
-า7กิ
-า7กล
-ิ7กล.
-์7กล
-5นำ
-ห6นำ
-รี7ผ
-7ณุ
-5นี.
-ห6นี
-ฉ6นี
-าร6นี
-วีช6นี
-สส6นี
-มท6นี
-รม6นี
-น7ยิ
-ิ5ลี
-ุ5ลี
-า7ลี
-โม7ลี
-ท7ลี
-ร7ลี
-ก7ยะ
-ค7ยะ
-ป7ยะ
-ท7ยะ
-ธ7ยะ
-น7ยะ
-ษ7ยะ
-า7ยะ
-ิ7ยะ
-คี7ยะ
-ฆี7ยะ
-ณี7ยะ
-นี7ยะ
-รี5ยะ
-เปรี6ยะ
-มโห5
-ิ7รี
-ู7รี
-หา7รี
-ม7รี.
-น5รี.
-เต7รี.
-ช7รี.
-ถ7รี
-ภ7รี
-ภม7รี
-โม7รี
-ภุม7ร
-พ7รี.
-เว7รี
-5ผล
-5ดล.
-5รส.
-ก6รส
-จ6รส
-โค6รส
-ท6รส
-พ6รส
-ด6รส
-5คน.
-ณ7หา
-ฤๅ5
-ฤา5
-.ยี่7
-า7วะ
-เท7พี
-เท7วี
-บรร7จ
-บรร7ถ
-บรร7พต
-5ทก.
-5ดร.
-น7ทร.
-า7ทร.
-โค7ทร.
-โล7ทร.
-โส7ทร.
-7อู.
-5พล.
-ไพร่7
-5ศก.
-อัฐ5
-อัฐ6ม
-อัฐ7มี
-ี7วี
-ู7วี
-ถ7วี.
-ส7วี.
-ฏ7วี.
-น7ตี
-ร7ตี
-อ7ตี
-า7ตี
-ิ7ตี
-ู7ตี
-า7สี
-ณ7สี
-ห7สี
-เว7สี
-ู7สี
-ิ7สี
-ก7สี
-โบ7ลา
-ู7ลา
-อจ7ลา
-เว7ลา
-บิว7ลา
-มข7ลา
-เอ7ลา
-ี7ลา
-โร7ลา
-โอ7ลา
-โซ7ลา
-ิ7กะ
-ุ7กะ
-อ7กะ
-นว7กะ
-ิณ7กะ
-เภ7กะ
-ัย7กะ
-ิย7กะ
-รธ7กะ
-ัฏ7กะ
-ัฒ7กะ
-ิช7กะ
-ศต7กะ
-มล7กะ
-7ทุ.
-โซ6ร
-ธ6นู
-ัส7ดุ.
-ร7คต
-ดง7คต
-5กง.
-เ6กง
-7ฎก
-ณ7มี
-ว7มี
-ศ7มี
-ู7มี
-ี7ติ
-รุ7ติ
-สุ7ติ
-ฮ7ติ
-อร7ติ
-วีส7ติ
-ติงส7ติ
-คุป7ติ
-มุต6ติ
-ภัต6ติ
-ก7ดี
-ต7ดี
-พ7ดี
-ม7ดี
-ย7ดี
-ศ7ดี
-อ5ดี
-า7ดี
-ี7ดี
-ุ7ดี
-ุว7ดี
-ดิบ7ดี
-นัก7
-กุณ5
-กุณ6ฑ์
-7ซี.
-5ที.
-จน6ที
-ี7รา
-ู7รา
-์7รา
-ิต7รา
-ม7รา
-ย7รา
-.มก7รา
-รบ7รา
-ลิก7รา
-เห7รา.
-7กฎ.
-7กฏ.
-5หะ
-ค6หะ
-นิค7หะ
-เค7หะ
-ท6หะ
-เท7หะ
-ู7หา
-ฬ7หา
-ค7หา
-เน7หา
-่7หา
-5มะ
-ร6มะ
-ห6มะ
-ต6มะ
-5หู
-5ดำ
-ส6ดำ
-7คำ
-5สะ
-ว6สะ
-5ฐะ
-ส6ฐะ
-7ธะ
-5พี.
-ร6พี
-ทร7พี
-ปฐ7วี
-ิ7ดา
-ษ7บ
-ษ7ป
-ิ7ระ
-ี7ระ
-ู7ระ
-ช5ระ
-ิต7ระ
-ทห7ระ
-ท7ระ.
-ุก5ระ.
-สว7ระ
-ัส7ระ
-ิส7ระ
-เป7ระ
-อ7ยา.
-เก7ยา
-รร7ยา
-สา7วก
-ิ7ธิ
-ุท7ธิ.
-ิท5ธิ.
-.สิท6ธิ.
-บุริมสิท6ธิ.
-ไกรสิท6ธิ.
-ป7ธิ
-ขัดสมา6ธิ
-พยา6ธิ.
-5ษี.
-ด6นู
-ิ7วะ
-ี7วะ
-ุ7วะ
-ี7วก
-ย7วะ
-เท7วะ
-ไท7วะ
-ัท7วะ
-าช7วะ
-ไศ7วะ
-7ถะ
-7ษะ
-5พร.
-5ผง
-5ธี
-า7ชะ
-ิ7ชะ
-ร5ชะ
-ส7ชะ
-โอ7ชะ
-5ฆะ
-5ฟะ
-า7ฟี
-ิ7ถี
-ร7ถี
-5ฮา
-5ญี
-5ผา
-5หิ.
-สิน7ธพ
-สิน7ธุ.
-สิน7ธู
-5ชู
-5ศะ
-ิ7ละ
-ุ7ละ
-ู7ละ
-ย7ละ
-ด7ละ
-.วส7ละ
-อเจ7ล
-เต7ละ
-่7ละ
-น7ทะ
-ท7ทะ
-ส7ทะ
-น7ตุ.
-รร6ตุ
-มา7ตฤ
-ิ7รพ
-า7รพ.
-ไก7รพ
-5ศุ.
-า7ถา
-า7สพ
-พ7สพ
-ุ7ขี
-7สอ.
-า7ดะ
-5บะ.
-5ยี.
-ห6ยี
-5กี.
-5หก.
-ง7อร.
-ม7อร.
-ี7วร
-ส7วร.
-พู7นท
-5จร.
-โ6จร.
-7ศพ.
-โป7ลี
-7ภพ.
-7นพ.
-7ณพ.
-า7รก.
-ทก7รก
-ย7รก.
-ยว7รก.
-5มล.
-ุ5บล.
-โล7บล.
-5ชล.
-5ชก.
-7โพ
-5ณู
-7ปี.
-า7บี.
-5ฏะ.
-า7ฬี
-5ปะ.
-ฉ6ปะ
-ส6ปะ
-ู7ลู
-5ตู.
-5ยู.
-7ฆี.
-ิ7จี
-ี7จี
-ุ7จี
-ู7จี
-เว7จี
-5ศี.
-5มน.
-5ยอ.
-ผ6ยอ.
-5สง.
-7สร.
-5ดก.
-ส6ดก
-7โก.
-ก7ฝ
-า7มก.
-5ซอ
-า7ขะ
-ู7ขะ
-ส5ขะ
-ร7ษา
-5ภะ
-ศ7ภ
-ิ7ลก
-ุ7ฎี
-ศา5ข
-5สา.
-ั6สา
-7ซู
-5ษก.
-ษ7ฐี
-5ดม.
-ส6ดม
-ด7ลม.
-ส7ลม.
-ว7ลม.
-ี7ลม.
-5ศล.
-นิ7ยต
-7งู
-5จะ.
-า7สก.
-โป7สก
-5ยศ.
-5ธก.
-5กบ.
-7คู.
-ส5มา.
-5แล.
-5พก.
-โส7ภ
-รร6ดิ.
-า7วก.
-น7นร.
-5จอ.
-5จบ.
-5คบ.
-5ฉล.
-ม7รม
-อบ7รม
-ิ7รม.
-ี7รม.
-5ซน.
-5ดอ.
-5กิ.
-ซู7ซุ
-ซู7ฮก
-5บส.
-น7รน.
-ตก7ลง
-ม7ตน
-ตัว7ตน
-ี7วง
-ศ7วง.
-แตร7วง
-แวด7วง
-า7ฑู
-5หด.
-อบ7นบ
-นา7คร.
-ี7ฑา
-ู7ดู
-า7รภ.
-า7ฝ
-ล7รบ.
-ว7รบ.
-อ7รบ.
-า7รณ.
-น7ยง
-ม7ยง
-ุ7ยง
-ิ7ยง
-ิ7ยน
-หา7พน
-า7งิ
-ช7รถ.
-น7รถ.
-ส7รถ.
-ัน7ธร.
-มณ7ฑก
-มณ7โฑ
-มร7กต
-มร7ฑป
-ยอด7อก
-โล่ง7อก
-ยืด7อก
-ห7ห
-5ทด.
-ว7นม.
-ทพ7นม.
-โค7นม
-ษ7ฎร.
-ิ7ปุ
-ิ7ปู
-ี7รอ.
-ย7ลำ
-อ7ลำ
-้7ลำ
-น7ทม.
-ป7ทม.
-วก7วน
-อล7วน
-ิ7จล.
-ช7ญะ
-ี7ข
-ศีล7
-5ธม.
-สม7รด
-สัก7วา
-สัป7ด
-สัป7ท
-า7สม.
-อ7สม.
-า7นล.
-ี7รุ
-ู7รุ
-เน7รุ
-ง7หล
-สีห7นุ
-5ภร.
-5จด.
-บ7ยก.
-ดิ7ศร
-ร7ศร
-อพ7ยพ
-ร7ชร.
-รส7กา
-ลส7กา
-อาจ7อง
-ี7มู
-อึง7อล
-ุ7ชุ
-ุ7สภ.
-เก7ชา
-เก7ศา
-ช7ตก.
-บ7ตก.
-เข7ฬะ
-ห7ณี
-อ7ปน.
-ย7ชม.
-เบื้อง7
-5คะ
-ง7ออ.
-อ7ออ.
-เรือ7ธ
-เรือ7บ
-เลี้ยว7
-5กก.
-เ6กก
-อ7ขอ.
-า7กอ.
-แด7วู
-บ7ยล.
-โฉ7เก
-โด7มร
-โต7มร
-7โผ
-โท7โส
-้7ปด.
-7คี.
-โย7นก.
-โส7มม
-7ฬส.
-ต7ถิ
-7โฮ
-ใจ7
-5ฟง
-ไช7โย
-5พต.
-กรร7กศ
-ล7บก.
-ศ7ยป.
-า7นน.
-ุ7ฎา
-ู7ฏา
-า7มอ.
-ท7โท
-ุ7ทส
-จ่า7ร
-ฬ7หี
-า7ฒะ
-ธต7รฐ
-ท7คล.
-ต7ถร.
-ิ7ฐิ
-ป7ผะ
-พฤ7ษภ.
-ิ7ธุ
-า7ฬก.
-ห7สิ
-ฏ7ฏิ.
-ษ7ฏิ.
-ศิษ7ฎิ
-ษ7ฏี
-5ษส.
-ิ7ปิ
-ู7ริ.
-ฑ7ฑุ
-ษ7ฏุ
-า7ตา
-ว7ตก
-ง7ตก
-เก6ตุ.
-ส7ตุ
-ลิ7บง
-7อุ.
-ิศ7รา
-ษ7อร
-ช6รา.
-ด7ชะ
-โบ7ริ
-ป6ทา.
-ล7มี
-ม7คด
-ี7สป
-ร7ละ
-ทส7ลา
-ส7โซ
-ซ7ฟี} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-tk.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-tk.hyp
deleted file mode 100644
index 6302966fb0b..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-tk.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-tk.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-tk.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-tk.pat
deleted file mode 100644
index a5b456c748d..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-tk.pat
+++ /dev/null
@@ -1,2379 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-tk.rme
-
-% used: - a b d e f g h i j k l m n o p r s t u w y z ä ç ö ü ý ň ş ž
-
-\patterns{
-1-4
-ä1bä
-ä1be
-ä1bi
-ä1bö
-ä1bü
-ä1çä
-ä1çe
-ä1çi
-ä1çö
-ä1çü
-ä1dä
-ä1de
-ä1di
-ä1dö
-ä1dü
-ä1fä
-ä1fe
-ä1fi
-ä1fö
-ä1fü
-ä1gä
-ä1ge
-ä1gi
-ä1gö
-ä1gü
-ä1hä
-ä1he
-ä1hi
-ä1hö
-ä1hü
-ä1jä
-ä1je
-ä1ji
-ä1jö
-ä1jü
-ä1kä
-ä1ke
-ä1ki
-ä1kö
-ä1kü
-ä1lä
-ä1le
-ä1li
-ä1lö
-ä1lü
-ä1mä
-ä1me
-ä1mi
-ä1mö
-ä1mü
-ä1nä
-ä1ne
-ä1ni
-ä1nö
-ä1nü
-ä1pä
-ä1pe
-ä1pi
-ä1pö
-ä1pü
-ä1rä
-ä1re
-ä1ri
-ä1rö
-ä1rü
-ä1sä
-ä1se
-ä1si
-ä1sö
-ä1sü
-ä1tä
-ä1te
-ä1ti
-ä1tö
-ä1tü
-ä1wä
-ä1we
-ä1wi
-ä1wö
-ä1wü
-ä1ýä
-ä1ýe
-ä1ýi
-ä1ýö
-ä1ýü
-ä1zä
-ä1ze
-ä1zi
-ä1zö
-ä1zü
-ä1ňä
-ä1ňe
-ä1ňi
-ä1ňö
-ä1ňü
-ä1žä
-ä1že
-ä1ži
-ä1žö
-ä1žü
-ä1şä
-ä1şe
-ä1şi
-ä1şö
-ä1şü
-e1bä
-e1be
-e1bi
-e1bö
-e1bü
-e1çä
-e1çe
-e1çi
-e1çö
-e1çü
-e1dä
-e1de
-e1di
-e1dö
-e1dü
-e1fä
-e1fe
-e1fi
-e1fö
-e1fü
-e1gä
-e1ge
-e1gi
-e1gö
-e1gü
-e1hä
-e1he
-e1hi
-e1hö
-e1hü
-e1jä
-e1je
-e1ji
-e1jö
-e1jü
-e1kä
-e1ke
-e1ki
-e1kö
-e1kü
-e1lä
-e1le
-e1li
-e1lö
-e1lü
-e1mä
-e1me
-e1mi
-e1mö
-e1mü
-e1nä
-e1ne
-e1ni
-e1nö
-e1nü
-e1pä
-e1pe
-e1pi
-e1pö
-e1pü
-e1rä
-e1re
-e1ri
-e1rö
-e1rü
-e1sä
-e1se
-e1si
-e1sö
-e1sü
-e1tä
-e1te
-e1ti
-e1tö
-e1tü
-e1wä
-e1we
-e1wi
-e1wö
-e1wü
-e1ýä
-e1ýe
-e1ýi
-e1ýö
-e1ýü
-e1zä
-e1ze
-e1zi
-e1zö
-e1zü
-e1ňä
-e1ňe
-e1ňi
-e1ňö
-e1ňü
-e1žä
-e1že
-e1ži
-e1žö
-e1žü
-e1şä
-e1şe
-e1şi
-e1şö
-e1şü
-i1bä
-i1be
-i1bi
-i1bö
-i1bü
-i1çä
-i1çe
-i1çi
-i1çö
-i1çü
-i1dä
-i1de
-i1di
-i1dö
-i1dü
-i1fä
-i1fe
-i1fi
-i1fö
-i1fü
-i1gä
-i1ge
-i1gi
-i1gö
-i1gü
-i1hä
-i1he
-i1hi
-i1hö
-i1hü
-i1jä
-i1je
-i1ji
-i1jö
-i1jü
-i1kä
-i1ke
-i1ki
-i1kö
-i1kü
-i1lä
-i1le
-i1li
-i1lö
-i1lü
-i1mä
-i1me
-i1mi
-i1mö
-i1mü
-i1nä
-i1ne
-i1ni
-i1nö
-i1nü
-i1pä
-i1pe
-i1pi
-i1pö
-i1pü
-i1rä
-i1re
-i1ri
-i1rö
-i1rü
-i1sä
-i1se
-i1si
-i1sö
-i1sü
-i1tä
-i1te
-i1ti
-i1tö
-i1tü
-i1wä
-i1we
-i1wi
-i1wö
-i1wü
-i1ýä
-i1ýe
-i1ýi
-i1ýö
-i1ýü
-i1zä
-i1ze
-i1zi
-i1zö
-i1zü
-i1ňä
-i1ňe
-i1ňi
-i1ňö
-i1ňü
-i1žä
-i1že
-i1ži
-i1žö
-i1žü
-i1şä
-i1şe
-i1şi
-i1şö
-i1şü
-ö1bä
-ö1be
-ö1bi
-ö1bö
-ö1bü
-ö1çä
-ö1çe
-ö1çi
-ö1çö
-ö1çü
-ö1dä
-ö1de
-ö1di
-ö1dö
-ö1dü
-ö1fä
-ö1fe
-ö1fi
-ö1fö
-ö1fü
-ö1gä
-ö1ge
-ö1gi
-ö1gö
-ö1gü
-ö1hä
-ö1he
-ö1hi
-ö1hö
-ö1hü
-ö1jä
-ö1je
-ö1ji
-ö1jö
-ö1jü
-ö1kä
-ö1ke
-ö1ki
-ö1kö
-ö1kü
-ö1lä
-ö1le
-ö1li
-ö1lö
-ö1lü
-ö1mä
-ö1me
-ö1mi
-ö1mö
-ö1mü
-ö1nä
-ö1ne
-ö1ni
-ö1nö
-ö1nü
-ö1pä
-ö1pe
-ö1pi
-ö1pö
-ö1pü
-ö1rä
-ö1re
-ö1ri
-ö1rö
-ö1rü
-ö1sä
-ö1se
-ö1si
-ö1sö
-ö1sü
-ö1tä
-ö1te
-ö1ti
-ö1tö
-ö1tü
-ö1wä
-ö1we
-ö1wi
-ö1wö
-ö1wü
-ö1ýä
-ö1ýe
-ö1ýi
-ö1ýö
-ö1ýü
-ö1zä
-ö1ze
-ö1zi
-ö1zö
-ö1zü
-ö1ňä
-ö1ňe
-ö1ňi
-ö1ňö
-ö1ňü
-ö1žä
-ö1že
-ö1ži
-ö1žö
-ö1žü
-ö1şä
-ö1şe
-ö1şi
-ö1şö
-ö1şü
-ü1bä
-ü1be
-ü1bi
-ü1bö
-ü1bü
-ü1çä
-ü1çe
-ü1çi
-ü1çö
-ü1çü
-ü1dä
-ü1de
-ü1di
-ü1dö
-ü1dü
-ü1fä
-ü1fe
-ü1fi
-ü1fö
-ü1fü
-ü1gä
-ü1ge
-ü1gi
-ü1gö
-ü1gü
-ü1hä
-ü1he
-ü1hi
-ü1hö
-ü1hü
-ü1jä
-ü1je
-ü1ji
-ü1jö
-ü1jü
-ü1kä
-ü1ke
-ü1ki
-ü1kö
-ü1kü
-ü1lä
-ü1le
-ü1li
-ü1lö
-ü1lü
-ü1mä
-ü1me
-ü1mi
-ü1mö
-ü1mü
-ü1nä
-ü1ne
-ü1ni
-ü1nö
-ü1nü
-ü1pä
-ü1pe
-ü1pi
-ü1pö
-ü1pü
-ü1rä
-ü1re
-ü1ri
-ü1rö
-ü1rü
-ü1sä
-ü1se
-ü1si
-ü1sö
-ü1sü
-ü1tä
-ü1te
-ü1ti
-ü1tö
-ü1tü
-ü1wä
-ü1we
-ü1wi
-ü1wö
-ü1wü
-ü1ýä
-ü1ýe
-ü1ýi
-ü1ýö
-ü1ýü
-ü1zä
-ü1ze
-ü1zi
-ü1zö
-ü1zü
-ü1ňä
-ü1ňe
-ü1ňi
-ü1ňö
-ü1ňü
-ü1žä
-ü1že
-ü1ži
-ü1žö
-ü1žü
-ü1şä
-ü1şe
-ü1şi
-ü1şö
-ü1şü
-a1ba
-a1by
-a1bo
-a1bu
-a1ça
-a1çy
-a1ço
-a1çu
-a1da
-a1dy
-a1do
-a1du
-a1fa
-a1fy
-a1fo
-a1fu
-a1ga
-a1gy
-a1go
-a1gu
-a1ha
-a1hy
-a1ho
-a1hu
-a1ja
-a1jy
-a1jo
-a1ju
-a1ka
-a1ky
-a1ko
-a1ku
-a1la
-a1ly
-a1lo
-a1lu
-a1ma
-a1my
-a1mo
-a1mu
-a1na
-a1ny
-a1no
-a1nu
-a1pa
-a1py
-a1po
-a1pu
-a1ra
-a1ry
-a1ro
-a1ru
-a1sa
-a1sy
-a1so
-a1su
-a1ta
-a1ty
-a1to
-a1tu
-a1wa
-a1wy
-a1wo
-a1wu
-a1ýa
-a1ýy
-a1ýo
-a1ýu
-a1za
-a1zy
-a1zo
-a1zu
-a1ňa
-a1ňy
-a1ňo
-a1ňu
-a1ža
-a1žy
-a1žo
-a1žu
-a1şa
-a1şy
-a1şo
-a1şu
-y1ba
-y1by
-y1bo
-y1bu
-y1ça
-y1çy
-y1ço
-y1çu
-y1da
-y1dy
-y1do
-y1du
-y1fa
-y1fy
-y1fo
-y1fu
-y1ga
-y1gy
-y1go
-y1gu
-y1ha
-y1hy
-y1ho
-y1hu
-y1ja
-y1jy
-y1jo
-y1ju
-y1ka
-y1ky
-y1ko
-y1ku
-y1la
-y1ly
-y1lo
-y1lu
-y1ma
-y1my
-y1mo
-y1mu
-y1na
-y1ny
-y1no
-y1nu
-y1pa
-y1py
-y1po
-y1pu
-y1ra
-y1ry
-y1ro
-y1ru
-y1sa
-y1sy
-y1so
-y1su
-y1ta
-y1ty
-y1to
-y1tu
-y1wa
-y1wy
-y1wo
-y1wu
-y1ýa
-y1ýy
-y1ýo
-y1ýu
-y1za
-y1zy
-y1zo
-y1zu
-y1ňa
-y1ňy
-y1ňo
-y1ňu
-y1ža
-y1žy
-y1žo
-y1žu
-y1şa
-y1şy
-y1şo
-y1şu
-o1ba
-o1by
-o1bo
-o1bu
-o1ça
-o1çy
-o1ço
-o1çu
-o1da
-o1dy
-o1do
-o1du
-o1fa
-o1fy
-o1fo
-o1fu
-o1ga
-o1gy
-o1go
-o1gu
-o1ha
-o1hy
-o1ho
-o1hu
-o1ja
-o1jy
-o1jo
-o1ju
-o1ka
-o1ky
-o1ko
-o1ku
-o1la
-o1ly
-o1lo
-o1lu
-o1ma
-o1my
-o1mo
-o1mu
-o1na
-o1ny
-o1no
-o1nu
-o1pa
-o1py
-o1po
-o1pu
-o1ra
-o1ry
-o1ro
-o1ru
-o1sa
-o1sy
-o1so
-o1su
-o1ta
-o1ty
-o1to
-o1tu
-o1wa
-o1wy
-o1wo
-o1wu
-o1ýa
-o1ýy
-o1ýo
-o1ýu
-o1za
-o1zy
-o1zo
-o1zu
-o1ňa
-o1ňy
-o1ňo
-o1ňu
-o1ža
-o1žy
-o1žo
-o1žu
-o1şa
-o1şy
-o1şo
-o1şu
-u1ba
-u1by
-u1bo
-u1bu
-u1ça
-u1çy
-u1ço
-u1çu
-u1da
-u1dy
-u1do
-u1du
-u1fa
-u1fy
-u1fo
-u1fu
-u1ga
-u1gy
-u1go
-u1gu
-u1ha
-u1hy
-u1ho
-u1hu
-u1ja
-u1jy
-u1jo
-u1ju
-u1ka
-u1ky
-u1ko
-u1ku
-u1la
-u1ly
-u1lo
-u1lu
-u1ma
-u1my
-u1mo
-u1mu
-u1na
-u1ny
-u1no
-u1nu
-u1pa
-u1py
-u1po
-u1pu
-u1ra
-u1ry
-u1ro
-u1ru
-u1sa
-u1sy
-u1so
-u1su
-u1ta
-u1ty
-u1to
-u1tu
-u1wa
-u1wy
-u1wo
-u1wu
-u1ýa
-u1ýy
-u1ýo
-u1ýu
-u1za
-u1zy
-u1zo
-u1zu
-u1ňa
-u1ňy
-u1ňo
-u1ňu
-u1ža
-u1žy
-u1žo
-u1žu
-u1şa
-u1şy
-u1şo
-u1şu
-a1bi
-a1be
-y1bä
-y1bi
-y1be
-o1bi
-o1be
-u1bi
-u1be
-i1ba
-i1bo
-e1ba
-e1bo
-ä1bo
-ä1ba
-ö1ba
-a1çi
-a1çe
-y1çä
-y1çi
-y1çe
-o1çi
-o1çe
-u1çi
-u1çe
-i1ça
-i1ço
-e1ça
-e1ço
-ä1ço
-ä1ça
-ö1ça
-a1di
-a1de
-y1dä
-y1di
-y1de
-o1di
-o1de
-u1di
-u1de
-i1da
-i1do
-e1da
-e1do
-ä1do
-ä1da
-ö1da
-a1fi
-a1fe
-y1fä
-y1fi
-y1fe
-o1fi
-o1fe
-u1fi
-u1fe
-i1fa
-i1fo
-e1fa
-e1fo
-ä1fo
-ä1fa
-ö1fa
-a1gi
-a1ge
-y1gä
-y1gi
-y1ge
-o1gi
-o1ge
-u1gi
-u1ge
-i1ga
-i1go
-e1ga
-e1go
-ä1go
-ä1ga
-ö1ga
-a1hi
-a1he
-y1hä
-y1hi
-y1he
-o1hi
-o1he
-u1hi
-u1he
-i1ha
-i1ho
-e1ha
-e1ho
-ä1ho
-ä1ha
-ö1ha
-a1ji
-a1je
-y1jä
-y1ji
-y1je
-o1ji
-o1je
-u1ji
-u1je
-i1ja
-i1jo
-e1ja
-e1jo
-ä1jo
-ä1ja
-ö1ja
-a1ki
-a1ke
-y1kä
-y1ki
-y1ke
-o1ki
-o1ke
-u1ki
-u1ke
-i1ka
-i1ko
-e1ka
-e1ko
-ä1ko
-ä1ka
-ö1ka
-a1li
-a1le
-y1lä
-y1li
-y1le
-o1li
-o1le
-u1li
-u1le
-i1la
-i1lo
-e1la
-e1lo
-ä1lo
-ä1la
-ö1la
-a1mi
-a1me
-y1mä
-y1mi
-y1me
-o1mi
-o1me
-u1mi
-u1me
-i1ma
-i1mo
-e1ma
-e1mo
-ä1mo
-ä1ma
-ö1ma
-a1ni
-a1ne
-y1nä
-y1ni
-y1ne
-o1ni
-o1ne
-u1ni
-u1ne
-i1na
-i1no
-e1na
-e1no
-ä1no
-ä1na
-ö1na
-a1pi
-a1pe
-y1pä
-y1pi
-y1pe
-o1pi
-o1pe
-u1pi
-u1pe
-i1pa
-i1po
-e1pa
-e1po
-ä1po
-ä1pa
-ö1pa
-a1ri
-a1re
-y1rä
-y1ri
-y1re
-o1ri
-o1re
-u1ri
-u1re
-i1ra
-i1ro
-e1ra
-e1ro
-ä1ro
-ä1ra
-ö1ra
-a1si
-a1se
-y1sä
-y1si
-y1se
-o1si
-o1se
-u1si
-u1se
-i1sa
-i1so
-e1sa
-e1so
-ä1so
-ä1sa
-ö1sa
-a1ti
-a1te
-y1tä
-y1ti
-y1te
-o1ti
-o1te
-u1ti
-u1te
-i1ta
-i1to
-e1ta
-e1to
-ä1to
-ä1ta
-ö1ta
-a1wi
-a1we
-y1wä
-y1wi
-y1we
-o1wi
-o1we
-u1wi
-u1we
-i1wa
-i1wo
-e1wa
-e1wo
-ä1wo
-ä1wa
-ö1wa
-a1ýi
-a1ýe
-y1ýä
-y1ýi
-y1ýe
-o1ýi
-o1ýe
-u1ýi
-u1ýe
-i1ýa
-i1ýo
-e1ýa
-e1ýo
-ä1ýo
-ä1ýa
-ö1ýa
-a1zi
-a1ze
-y1zä
-y1zi
-y1ze
-o1zi
-o1ze
-u1zi
-u1ze
-i1za
-i1zo
-e1za
-e1zo
-ä1zo
-ä1za
-ö1za
-a1ňi
-a1ňe
-y1ňä
-y1ňi
-y1ňe
-o1ňi
-o1ňe
-u1ňi
-u1ňe
-i1ňa
-i1ňo
-e1ňa
-e1ňo
-ä1ňo
-ä1ňa
-ö1ňa
-a1ži
-a1že
-y1žä
-y1ži
-y1že
-o1ži
-o1že
-u1ži
-u1že
-i1ža
-i1žo
-e1ža
-e1žo
-ä1žo
-ä1ža
-ö1ža
-a1şi
-a1şe
-y1şä
-y1şi
-y1şe
-o1şi
-o1şe
-u1şi
-u1şe
-i1şa
-i1şo
-e1şa
-e1şo
-ä1şo
-ä1şa
-ö1şa
-b1b
-.b2b
-b1ç
-.b2ç
-b1d
-.b2d
-b1f
-.b2f
-b1g
-.b2g
-b1h
-.b2h
-b1j
-.b2j
-b1k
-.b2k
-b1l
-.b2l
-b1m
-.b2m
-b1n
-.b2n
-b1p
-.b2p
-b1r
-.b2r
-b1s
-.b2s
-b1t
-.b2t
-b1w
-.b2w
-b1ý
-.b2ý
-b1z
-.b2z
-b1ň
-.b2ň
-b1ž
-.b2ž
-b1ş
-.b2ş
-ç1b
-.ç2b
-ç1ç
-.ç2ç
-ç1d
-.ç2d
-ç1f
-.ç2f
-ç1g
-.ç2g
-ç1h
-.ç2h
-ç1j
-.ç2j
-ç1k
-.ç2k
-ç1l
-.ç2l
-ç1m
-.ç2m
-ç1n
-.ç2n
-ç1p
-.ç2p
-ç1r
-.ç2r
-ç1s
-.ç2s
-ç1t
-.ç2t
-ç1w
-.ç2w
-ç1ý
-.ç2ý
-ç1z
-.ç2z
-ç1ň
-.ç2ň
-ç1ž
-.ç2ž
-ç1ş
-.ç2ş
-d1b
-.d2b
-d1ç
-.d2ç
-d1d
-.d2d
-d1f
-.d2f
-d1g
-.d2g
-d1h
-.d2h
-d1j
-.d2j
-d1k
-.d2k
-d1l
-.d2l
-d1m
-.d2m
-d1n
-.d2n
-d1p
-.d2p
-d1r
-.d2r
-d1s
-.d2s
-d1t
-.d2t
-d1w
-.d2w
-d1ý
-.d2ý
-d1z
-.d2z
-d1ň
-.d2ň
-d1ž
-.d2ž
-d1ş
-.d2ş
-f1b
-.f2b
-f1ç
-.f2ç
-f1d
-.f2d
-f1f
-.f2f
-f1g
-.f2g
-f1h
-.f2h
-f1j
-.f2j
-f1k
-.f2k
-f1l
-.f2l
-f1m
-.f2m
-f1n
-.f2n
-f1p
-.f2p
-f1r
-.f2r
-f1s
-.f2s
-f1t
-.f2t
-f1w
-.f2w
-f1ý
-.f2ý
-f1z
-.f2z
-f1ň
-.f2ň
-f1ž
-.f2ž
-f1ş
-.f2ş
-g1b
-.g2b
-g1ç
-.g2ç
-g1d
-.g2d
-g1f
-.g2f
-g1g
-.g2g
-g1h
-.g2h
-g1j
-.g2j
-g1k
-.g2k
-g1l
-.g2l
-g1m
-.g2m
-g1n
-.g2n
-g1p
-.g2p
-g1r
-.g2r
-g1s
-.g2s
-g1t
-.g2t
-g1w
-.g2w
-g1ý
-.g2ý
-g1z
-.g2z
-g1ň
-.g2ň
-g1ž
-.g2ž
-g1ş
-.g2ş
-h1b
-.h2b
-h1ç
-.h2ç
-h1d
-.h2d
-h1f
-.h2f
-h1g
-.h2g
-h1h
-.h2h
-h1j
-.h2j
-h1k
-.h2k
-h1l
-.h2l
-h1m
-.h2m
-h1n
-.h2n
-h1p
-.h2p
-h1r
-.h2r
-h1s
-.h2s
-h1t
-.h2t
-h1w
-.h2w
-h1ý
-.h2ý
-h1z
-.h2z
-h1ň
-.h2ň
-h1ž
-.h2ž
-h1ş
-.h2ş
-j1b
-.j2b
-j1ç
-.j2ç
-j1d
-.j2d
-j1f
-.j2f
-j1g
-.j2g
-j1h
-.j2h
-j1j
-.j2j
-j1k
-.j2k
-j1l
-.j2l
-j1m
-.j2m
-j1n
-.j2n
-j1p
-.j2p
-j1r
-.j2r
-j1s
-.j2s
-j1t
-.j2t
-j1w
-.j2w
-j1ý
-.j2ý
-j1z
-.j2z
-j1ň
-.j2ň
-j1ž
-.j2ž
-j1ş
-.j2ş
-k1b
-.k2b
-k1ç
-.k2ç
-k1d
-.k2d
-k1f
-.k2f
-k1g
-.k2g
-k1h
-.k2h
-k1j
-.k2j
-k1k
-.k2k
-k1l
-.k2l
-k1m
-.k2m
-k1n
-.k2n
-k1p
-.k2p
-k1r
-.k2r
-k1s
-.k2s
-k1t
-.k2t
-k1w
-.k2w
-k1ý
-.k2ý
-k1z
-.k2z
-k1ň
-.k2ň
-k1ž
-.k2ž
-k1ş
-.k2ş
-l1b
-.l2b
-l1ç
-.l2ç
-l1d
-.l2d
-l1f
-.l2f
-l1g
-.l2g
-l1h
-.l2h
-l1j
-.l2j
-l1k
-.l2k
-l1l
-.l2l
-l1m
-.l2m
-l1n
-.l2n
-l1p
-.l2p
-l1r
-.l2r
-l1s
-.l2s
-l1t
-.l2t
-l1w
-.l2w
-l1ý
-.l2ý
-l1z
-.l2z
-l1ň
-.l2ň
-l1ž
-.l2ž
-l1ş
-.l2ş
-m1b
-.m2b
-m1ç
-.m2ç
-m1d
-.m2d
-m1f
-.m2f
-m1g
-.m2g
-m1h
-.m2h
-m1j
-.m2j
-m1k
-.m2k
-m1l
-.m2l
-m1m
-.m2m
-m1n
-.m2n
-m1p
-.m2p
-m1r
-.m2r
-m1s
-.m2s
-m1t
-.m2t
-m1w
-.m2w
-m1ý
-.m2ý
-m1z
-.m2z
-m1ň
-.m2ň
-m1ž
-.m2ž
-m1ş
-.m2ş
-n1b
-.n2b
-n1ç
-.n2ç
-n1d
-.n2d
-n1f
-.n2f
-n1g
-.n2g
-n1h
-.n2h
-n1j
-.n2j
-n1k
-.n2k
-n1l
-.n2l
-n1m
-.n2m
-n1n
-.n2n
-n1p
-.n2p
-n1r
-.n2r
-n1s
-.n2s
-n1t
-.n2t
-n1w
-.n2w
-n1ý
-.n2ý
-n1z
-.n2z
-n1ň
-.n2ň
-n1ž
-.n2ž
-n1ş
-.n2ş
-p1b
-.p2b
-p1ç
-.p2ç
-p1d
-.p2d
-p1f
-.p2f
-p1g
-.p2g
-p1h
-.p2h
-p1j
-.p2j
-p1k
-.p2k
-p1l
-.p2l
-p1m
-.p2m
-p1n
-.p2n
-p1p
-.p2p
-p1r
-.p2r
-p1s
-.p2s
-p1t
-.p2t
-p1w
-.p2w
-p1ý
-.p2ý
-p1z
-.p2z
-p1ň
-.p2ň
-p1ž
-.p2ž
-p1ş
-.p2ş
-r1b
-.r2b
-r1ç
-.r2ç
-r1d
-.r2d
-r1f
-.r2f
-r1g
-.r2g
-r1h
-.r2h
-r1j
-.r2j
-r1k
-.r2k
-r1l
-.r2l
-r1m
-.r2m
-r1n
-.r2n
-r1p
-.r2p
-r1r
-.r2r
-r1s
-.r2s
-r1t
-.r2t
-r1w
-.r2w
-r1ý
-.r2ý
-r1z
-.r2z
-r1ň
-.r2ň
-r1ž
-.r2ž
-r1ş
-.r2ş
-s1b
-.s2b
-s1ç
-.s2ç
-s1d
-.s2d
-s1f
-.s2f
-s1g
-.s2g
-s1h
-.s2h
-s1j
-.s2j
-s1k
-.s2k
-s1l
-.s2l
-s1m
-.s2m
-s1n
-.s2n
-s1p
-.s2p
-s1r
-.s2r
-s1s
-.s2s
-s1t
-.s2t
-s1w
-.s2w
-s1ý
-.s2ý
-s1z
-.s2z
-s1ň
-.s2ň
-s1ž
-.s2ž
-s1ş
-.s2ş
-t1b
-.t2b
-t1ç
-.t2ç
-t1d
-.t2d
-t1f
-.t2f
-t1g
-.t2g
-t1h
-.t2h
-t1j
-.t2j
-t1k
-.t2k
-t1l
-.t2l
-t1m
-.t2m
-t1n
-.t2n
-t1p
-.t2p
-t1r
-.t2r
-t1s
-.t2s
-t1t
-.t2t
-t1w
-.t2w
-t1ý
-.t2ý
-t1z
-.t2z
-t1ň
-.t2ň
-t1ž
-.t2ž
-t1ş
-.t2ş
-w1b
-.w2b
-w1ç
-.w2ç
-w1d
-.w2d
-w1f
-.w2f
-w1g
-.w2g
-w1h
-.w2h
-w1j
-.w2j
-w1k
-.w2k
-w1l
-.w2l
-w1m
-.w2m
-w1n
-.w2n
-w1p
-.w2p
-w1r
-.w2r
-w1s
-.w2s
-w1t
-.w2t
-w1w
-.w2w
-w1ý
-.w2ý
-w1z
-.w2z
-w1ň
-.w2ň
-w1ž
-.w2ž
-w1ş
-.w2ş
-ý1b
-.ý2b
-ý1ç
-.ý2ç
-ý1d
-.ý2d
-ý1f
-.ý2f
-ý1g
-.ý2g
-ý1h
-.ý2h
-ý1j
-.ý2j
-ý1k
-.ý2k
-ý1l
-.ý2l
-ý1m
-.ý2m
-ý1n
-.ý2n
-ý1p
-.ý2p
-ý1r
-.ý2r
-ý1s
-.ý2s
-ý1t
-.ý2t
-ý1w
-.ý2w
-ý1ý
-.ý2ý
-ý1z
-.ý2z
-ý1ň
-.ý2ň
-ý1ž
-.ý2ž
-ý1ş
-.ý2ş
-z1b
-.z2b
-z1ç
-.z2ç
-z1d
-.z2d
-z1f
-.z2f
-z1g
-.z2g
-z1h
-.z2h
-z1j
-.z2j
-z1k
-.z2k
-z1l
-.z2l
-z1m
-.z2m
-z1n
-.z2n
-z1p
-.z2p
-z1r
-.z2r
-z1s
-.z2s
-z1t
-.z2t
-z1w
-.z2w
-z1ý
-.z2ý
-z1z
-.z2z
-z1ň
-.z2ň
-z1ž
-.z2ž
-z1ş
-.z2ş
-ň1b
-.ň2b
-ň1ç
-.ň2ç
-ň1d
-.ň2d
-ň1f
-.ň2f
-ň1g
-.ň2g
-ň1h
-.ň2h
-ň1j
-.ň2j
-ň1k
-.ň2k
-ň1l
-.ň2l
-ň1m
-.ň2m
-ň1n
-.ň2n
-ň1p
-.ň2p
-ň1r
-.ň2r
-ň1s
-.ň2s
-ň1t
-.ň2t
-ň1w
-.ň2w
-ň1ý
-.ň2ý
-ň1z
-.ň2z
-ň1ň
-.ň2ň
-ň1ž
-.ň2ž
-ň1ş
-.ň2ş
-ž1b
-.ž2b
-ž1ç
-.ž2ç
-ž1d
-.ž2d
-ž1f
-.ž2f
-ž1g
-.ž2g
-ž1h
-.ž2h
-ž1j
-.ž2j
-ž1k
-.ž2k
-ž1l
-.ž2l
-ž1m
-.ž2m
-ž1n
-.ž2n
-ž1p
-.ž2p
-ž1r
-.ž2r
-ž1s
-.ž2s
-ž1t
-.ž2t
-ž1w
-.ž2w
-ž1ý
-.ž2ý
-ž1z
-.ž2z
-ž1ň
-.ž2ň
-ž1ž
-.ž2ž
-ž1ş
-.ž2ş
-ş1b
-.ş2b
-ş1ç
-.ş2ç
-ş1d
-.ş2d
-ş1f
-.ş2f
-ş1g
-.ş2g
-ş1h
-.ş2h
-ş1j
-.ş2j
-ş1k
-.ş2k
-ş1l
-.ş2l
-ş1m
-.ş2m
-ş1n
-.ş2n
-ş1p
-.ş2p
-ş1r
-.ş2r
-ş1s
-.ş2s
-ş1t
-.ş2t
-ş1w
-.ş2w
-ş1ý
-.ş2ý
-ş1z
-.ş2z
-ş1ň
-.ş2ň
-ş1ž
-.ş2ž
-ş1ş
-.ş2ş
-ý2t1b
-ý2n1b
-ý2d1b
-r2t1b
-ý2p1b
-l2p1b
-l2t1b
-g2t1b
-n2t1b
-r2k1b
-r2p1b
-k2t1b
-r2h1b
-s2t1b
-l2k1b
-w2p1b
-n2s1b
-r2s1b
-l2m1b
-ý2t1ç
-ý2n1ç
-ý2d1ç
-r2t1ç
-ý2p1ç
-l2p1ç
-l2t1ç
-g2t1ç
-n2t1ç
-r2k1ç
-r2p1ç
-k2t1ç
-r2h1ç
-s2t1ç
-l2k1ç
-w2p1ç
-n2s1ç
-r2s1ç
-l2m1ç
-ý2t1d
-ý2n1d
-ý2d1d
-r2t1d
-ý2p1d
-l2p1d
-l2t1d
-g2t1d
-n2t1d
-r2k1d
-r2p1d
-k2t1d
-r2h1d
-s2t1d
-l2k1d
-w2p1d
-n2s1d
-r2s1d
-l2m1d
-ý2t1g
-ý2n1g
-ý2d1g
-r2t1g
-ý2p1g
-l2p1g
-l2t1g
-g2t1g
-n2t1g
-r2k1g
-r2p1g
-k2t1g
-r2h1g
-s2t1g
-l2k1g
-w2p1g
-n2s1g
-r2s1g
-l2m1g
-ý2t1j
-ý2n1j
-ý2d1j
-r2t1j
-ý2p1j
-l2p1j
-l2t1j
-g2t1j
-n2t1j
-r2k1j
-r2p1j
-k2t1j
-r2h1j
-s2t1j
-l2k1j
-w2p1j
-n2s1j
-r2s1j
-l2m1j
-ý2t1k
-ý2n1k
-ý2d1k
-r2t1k
-ý2p1k
-l2p1k
-l2t1k
-g2t1k
-n2t1k
-r2k1k
-r2p1k
-k2t1k
-r2h1k
-s2t1k
-l2k1k
-w2p1k
-n2s1k
-r2s1k
-l2m1k
-ý2t1l
-ý2n1l
-ý2d1l
-r2t1l
-ý2p1l
-l2p1l
-l2t1l
-g2t1l
-n2t1l
-r2k1l
-r2p1l
-k2t1l
-r2h1l
-s2t1l
-l2k1l
-w2p1l
-n2s1l
-r2s1l
-l2m1l
-ý2t1m
-ý2n1m
-ý2d1m
-r2t1m
-ý2p1m
-l2p1m
-l2t1m
-g2t1m
-n2t1m
-r2k1m
-r2p1m
-k2t1m
-r2h1m
-s2t1m
-l2k1m
-w2p1m
-n2s1m
-r2s1m
-l2m1m
-ý2t1n
-ý2n1n
-ý2d1n
-r2t1n
-ý2p1n
-l2p1n
-l2t1n
-g2t1n
-n2t1n
-r2k1n
-r2p1n
-k2t1n
-r2h1n
-s2t1n
-l2k1n
-w2p1n
-n2s1n
-r2s1n
-l2m1n
-ý2t1p
-ý2n1p
-ý2d1p
-r2t1p
-ý2p1p
-l2p1p
-l2t1p
-g2t1p
-n2t1p
-r2k1p
-r2p1p
-k2t1p
-r2h1p
-s2t1p
-l2k1p
-w2p1p
-n2s1p
-r2s1p
-l2m1p
-ý2t1s
-ý2n1s
-ý2d1s
-r2t1s
-ý2p1s
-l2p1s
-l2t1s
-g2t1s
-n2t1s
-r2k1s
-r2p1s
-k2t1s
-r2h1s
-s2t1s
-l2k1s
-w2p1s
-n2s1s
-r2s1s
-l2m1s
-ý2t1t
-ý2n1t
-ý2d1t
-r2t1t
-ý2p1t
-l2p1t
-l2t1t
-g2t1t
-n2t1t
-r2k1t
-r2p1t
-k2t1t
-r2h1t
-s2t1t
-l2k1t
-w2p1t
-n2s1t
-r2s1t
-l2m1t
-ý2t1ý
-ý2n1ý
-ý2d1ý
-r2t1ý
-ý2p1ý
-l2p1ý
-l2t1ý
-g2t1ý
-n2t1ý
-r2k1ý
-r2p1ý
-k2t1ý
-r2h1ý
-s2t1ý
-l2k1ý
-w2p1ý
-n2s1ý
-r2s1ý
-l2m1ý
-ý2t1z
-ý2n1z
-ý2d1z
-r2t1z
-ý2p1z
-l2p1z
-l2t1z
-g2t1z
-n2t1z
-r2k1z
-r2p1z
-k2t1z
-r2h1z
-s2t1z
-l2k1z
-w2p1z
-n2s1z
-r2s1z
-l2m1z
-ý2t1ş
-ý2n1ş
-ý2d1ş
-r2t1ş
-ý2p1ş
-l2p1ş
-l2t1ş
-g2t1ş
-n2t1ş
-r2k1ş
-r2p1ş
-k2t1ş
-r2h1ş
-s2t1ş
-l2k1ş
-w2p1ş
-n2s1ş
-r2s1ş
-l2m1ş
-s2k1d
-l1s2k
-l1s2t
-s1t2r
-n2g1l
-n1g2r
-s2k1w} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-tr.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-tr.hyp
deleted file mode 100644
index 89c57837565..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-tr.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-tr.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-tr.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-tr.pat
deleted file mode 100644
index 9126e54def8..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-tr.pat
+++ /dev/null
@@ -1,604 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-tr.rme
-
-% used: a b c d e f g h i j k l m n o p r s t u v y z â ç î ö û ü ğ ı ş
-
-\patterns{
-2a1
-2â1
-2e1
-2ı1
-2i1
-2î1
-2o1
-2ö1
-2u1
-2ü1
-2û1
-1b1
-1c1
-1ç1
-1d1
-1f1
-1g1
-1ğ1
-1h1
-1j1
-1k1
-1l1
-1m1
-1n1
-1p1
-1r1
-1s1
-1ş1
-1t1
-1v1
-1y1
-1z1
-2e2cek.
-2bb
-2bc
-2bç
-2bd
-2bf
-2bg
-2bğ
-2bh
-2bj
-2bk
-2bl
-2bm
-2bn
-2bp
-2br
-2bs
-2bş
-2bt
-2bv
-2by
-2bz
-2cb
-2cc
-2cç
-2cd
-2cf
-2cg
-2cğ
-2ch
-2cj
-2ck
-2cl
-2cm
-2cn
-2cp
-2cr
-2cs
-2cş
-2ct
-2cv
-2cy
-2cz
-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çp
-2çr
-2çs
-2çş
-2çt
-2çv
-2çy
-2çz
-2db
-2dc
-2dç
-2dd
-2df
-2dg
-2dğ
-2dh
-2dj
-2dk
-2dl
-2dm
-2dn
-2dp
-2dr
-2ds
-2dş
-2dt
-2dv
-2dy
-2dz
-2fb
-2fc
-2fç
-2fd
-2ff
-2fg
-2fğ
-2fh
-2fj
-2fk
-2fl
-2fm
-2fn
-2fp
-2fr
-2fs
-2fş
-2ft
-2fv
-2fy
-2fz
-2gb
-2gc
-2gç
-2gd
-2gf
-2gg
-2gğ
-2gh
-2gj
-2gk
-2gl
-2gm
-2gn
-2gp
-2gr
-2gs
-2gş
-2gt
-2gv
-2gy
-2gz
-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ğp
-2ğr
-2ğs
-2ğş
-2ğt
-2ğv
-2ğy
-2ğz
-2hb
-2hc
-2hç
-2hd
-2hf
-2hg
-2hğ
-2hh
-2hj
-2hk
-2hl
-2hm
-2hn
-2hp
-2hr
-2hs
-2hş
-2ht
-2hv
-2hy
-2hz
-2jb
-2jc
-2jç
-2jd
-2jf
-2jg
-2jğ
-2jh
-2jj
-2jk
-2jl
-2jm
-2jn
-2jp
-2jr
-2js
-2jş
-2jt
-2jv
-2jy
-2jz
-2kb
-2kc
-2kç
-2kd
-2kf
-2kg
-2kğ
-2kh
-2kj
-2kk
-2kl
-2km
-2kn
-2kp
-2kr
-2ks
-2kş
-2kt
-2kv
-2ky
-2kz
-2lb
-2lc
-2lç
-2ld
-2lf
-2lg
-2lğ
-2lh
-2lj
-2lk
-2ll
-2lm
-2ln
-2lp
-2lr
-2ls
-2lş
-2lt
-2lv
-2ly
-2lz
-2mb
-2mc
-2mç
-2md
-2mf
-2mg
-2mğ
-2mh
-2mj
-2mk
-2ml
-2mm
-2mn
-2mp
-2mr
-2ms
-2mş
-2mt
-2mv
-2my
-2mz
-2nb
-2nc
-2nç
-2nd
-2nf
-2ng
-2nğ
-2nh
-2nj
-2nk
-2nl
-2nm
-2nn
-2np
-2nr
-2ns
-2nş
-2nt
-2nv
-2ny
-2nz
-2pb
-2pc
-2pç
-2pd
-2pf
-2pg
-2pğ
-2ph
-2pj
-2pk
-2pl
-2pm
-2pn
-2pp
-2pr
-2ps
-2pş
-2pt
-2pv
-2py
-2pz
-2rb
-2rc
-2rç
-2rd
-2rf
-2rg
-2rğ
-2rh
-2rj
-2rk
-2rl
-2rm
-2rn
-2rp
-2rr
-2rs
-2rş
-2rt
-2rv
-2ry
-2rz
-2sb
-2sc
-2sç
-2sd
-2sf
-2sg
-2sğ
-2sh
-2sj
-2sk
-2sl
-2sm
-2sn
-2sp
-2sr
-2ss
-2sş
-2st
-2sv
-2sy
-2sz
-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şp
-2şr
-2şs
-2şş
-2şt
-2şv
-2şy
-2şz
-2tb
-2tc
-2tç
-2td
-2tf
-2tg
-2tğ
-2th
-2tj
-2tk
-2tl
-2tm
-2tn
-2tp
-2tr
-2ts
-2tş
-2tt
-2tv
-2ty
-2tz
-2vb
-2vc
-2vç
-2vd
-2vf
-2vg
-2vğ
-2vh
-2vj
-2vk
-2vl
-2vm
-2vn
-2vp
-2vr
-2vs
-2vş
-2vt
-2vv
-2vy
-2vz
-2yb
-2yc
-2yç
-2yd
-2yf
-2yg
-2yğ
-2yh
-2yj
-2yk
-2yl
-2ym
-2yn
-2yp
-2yr
-2ys
-2yş
-2yt
-2yv
-2yy
-2yz
-2zb
-2zc
-2zç
-2zd
-2zf
-2zg
-2zğ
-2zh
-2zj
-2zk
-2zl
-2zm
-2zn
-2zp
-2zr
-2zs
-2zş
-2zt
-2zv
-2zy
-2zz
-a3a2
-a3â2
-a3e2
-a3ı2
-a3i2
-a3î2
-a3o2
-a3ö2
-a3u2
-a3ü2
-a3û2
-â3a2
-â3â2
-â3e2
-â3ı2
-â3i2
-â3î2
-â3o2
-â3ö2
-â3u2
-â3ü2
-â3û2
-e3a2
-e3â2
-e3e2
-e3ı2
-e3i2
-e3î2
-e3o2
-e3ö2
-e3u2
-e3ü2
-e3û2
-ı3a2
-ı3â2
-ı3e2
-ı3ı2
-ı3i2
-ı3î2
-ı3o2
-ı3ö2
-ı3u2
-ı3ü2
-ı3û2
-i3a2
-i3â2
-i3e2
-i3ı2
-i3i2
-i3î2
-i3o2
-i3ö2
-i3u2
-i3ü2
-i3û2
-î3a2
-î3â2
-î3e2
-î3ı2
-î3i2
-î3î2
-î3o2
-î3ö2
-î3u2
-î3ü2
-î3û2
-o3a2
-o3â2
-o3e2
-o3ı2
-o3i2
-o3î2
-o3o2
-o3ö2
-o3u2
-o3ü2
-o3û2
-ö3a2
-ö3â2
-ö3e2
-ö3ı2
-ö3i2
-ö3î2
-ö3o2
-ö3ö2
-ö3u2
-ö3ü2
-ö3û2
-u3a2
-u3â2
-u3e2
-u3ı2
-u3i2
-u3î2
-u3o2
-u3ö2
-u3u2
-u3ü2
-u3û2
-ü3a2
-ü3â2
-ü3e2
-ü3ı2
-ü3i2
-ü3î2
-ü3o2
-ü3ö2
-ü3u2
-ü3ü2
-ü3û2
-û3a2
-û3â2
-û3e2
-û3ı2
-û3i2
-û3î2
-û3o2
-û3ö2
-û3u2
-û3ü2
-û3û2
-tu4r4k
-m1t4rak} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-uk.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-uk.hyp
deleted file mode 100644
index 97dde24dde0..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-uk.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-uk.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-uk.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-uk.pat
deleted file mode 100644
index 24da6a9fda6..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-uk.pat
+++ /dev/null
@@ -1,4345 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-uk.rme
-
-% used: ' - а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ь ю я є і ї ґ
-
-\patterns{
-2а1
-а3а
-а3е
-а3і
-а3о
-а3у
-а3ю
-а3я
-а3є
-а3ї
-2е1
-е3а
-е3е
-е3і
-е3о
-е3у
-е3ю
-е3я
-е3є
-е3ї
-2и1
-и3а
-и3е
-и3і
-и3о
-и3у
-и3ю
-и3я
-и3є
-и3ї
-2і1
-і3а
-і3е
-і3и
-і3о
-і3у
-і3ю
-і3я
-і3є
-і3ї
-2о1
-о3а
-о3е
-о3і
-о3о
-о3у
-о3ю
-о3я
-о3є
-о3ї
-2у1
-у3а
-у3е
-у3і
-у3о
-у3у
-у3ю
-у3я
-у3є
-у3ї
-2ю1
-ю3а
-ю3е
-ю3і
-ю3о
-ю3у
-ю3ю
-ю3я
-ю3є
-ю3ї
-2я1
-я3а
-я3е
-я3о
-я3у
-я3ю
-я3я
-я3є
-я3ї
-2є1
-є3у
-є3ю
-є3є
-є3ї
-2ї1
-ї3е
-ї3о
-ї3ю
-2б1к
-2б1п
-2б1с
-2б1т
-2б1ф
-2б1х
-2б1ц
-2б1ч
-2б1ш
-2б1щ
-2в1б
-2в1г
-2в1д
-2в1ж
-2в1з
-2в1к
-2в1л
-2в1м
-2в1н
-2в1п
-2в1р
-2в1с
-2в1т
-2в1ф
-2в1х
-2в1ц
-2в1ч
-2в1ш
-2в1щ
-2в1й
-2в'3
-2г1к
-2г1п
-2г1с
-2г1т
-2г1ф
-2г1ц
-2г1ч
-2г1ш
-2д1к
-2д1п
-2д1с
-2д1т
-2д1ф
-2д1х
-2д1ц
-2д1ч
-2д1ш
-2д1щ
-2ж1к
-2ж1п
-2ж1с
-2ж1т
-2ж1ф
-2ж1х
-2ж1ц
-2ж1ч
-2ж1ш
-2з1к
-2з1п
-2з1с
-2з1т
-2з1ф
-2з1х
-2з1ц
-2з1ч
-2з1ш
-2з1щ
-2к1б
-2к1г
-2к1д
-2к1з
-2л1б
-2л1в
-2л1г
-2л1ґ
-2л1д
-2л1ж
-2л1з
-2л1к
-2л1м
-2л1н
-2л1п
-2л1р
-2л1с
-2л1т
-2л1ф
-2л1х
-2л1ц
-2л1ч
-2м1б
-2м1в
-2м1г
-2м1д
-2м1ж
-2м1з
-2м1к
-2м1л
-2м1н
-2м1п
-2м1р
-2м1с
-2м1т
-2м1ф
-2м1х
-2м1ц
-2м1ч
-2м1ш
-2м1щ
-2м'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н'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р'3
-2с1б
-2с1г
-2с1д
-2т1б
-2т1г
-2т1д
-2т1ж
-2т1з
-2ф1б
-2ф1г
-2ф1з
-2х1г
-2х1д
-2ц1б
-2ц1г
-2ц1д
-2ц1з
-2ч1б
-2ч1д
-2ч1ж
-2ш1б
-2ш1г
-2й1б
-2й1в
-2й1г
-2й1д
-2й1ж
-2й1з
-2й1к
-2й1л
-2й1м
-2й1н
-2й1п
-2й1р
-2й1с
-2й1т
-2й1ф
-2й1х
-2й1ц
-2й1ч
-2й1ш
-2й1щ
-2дь1к
-2дь1с
-2дь1т
-2дь1ц
-2зь1к
-2зь1с
-2зь1т
-2ль1б
-2ль1в
-2ль1г
-2ль1д
-2ль1ж
-2ль1з
-2ль1к
-2ль1м
-2ль1н
-2ль1п
-2ль1р
-2ль1с
-2ль1т
-2ль1ф
-2ль1х
-2ль1ц
-2ль1ч
-2ль1ш
-2ль1щ
-2ль1й
-2нь1б
-2нь1г
-2нь1з
-2нь1к
-2нь1л
-2нь1м
-2нь1с
-2нь1т
-2нь1х
-2нь1ц
-2нь1ч
-2нь1ш
-2нь1й
-2рь1к
-2рь1ц
-2сь1б
-2сь1д
-2ть1б
-2к1сп
-2к1ст
-2к1ськ
-2п1сп
-2п1ст
-2п1ськ
-2с1пк
-2с1пп
-2с1пс
-2с1пт
-2с1пх
-2с1пч
-2с1ськ
-2с1тк
-2с1тп
-2с1тс
-2с1тсь
-2с1тт
-2с1тф
-2с1тц
-2с1шт
-2сь1кк
-2сь1кс
-2сь1кт
-2т1ск
-2т1сп
-2т1ст
-2т1ськ
-2т1шк
-2ф1сп
-2ф1ст
-2ф1ськ
-2ф1шт
-2х1ст
-2х1ськ
-2ц1ст
-2ц1шк
-2ш1тк
-2ш1тсь
-2б1б
-2в1в
-2г1г
-2ґ1ґ
-2д1д
-2ж1ж
-2з1з
-2к1к
-2л1л
-2м1м
-2н1н
-2п1п
-2р1р
-2с1с
-2т1т
-2ф1ф
-2х1х
-2ц1ц
-2ч1ч
-2ш1ш
-2щ1щ
-2й1й
-3ння
-3ття
-3ттю
-3лля
-3ллє
-3ллю
-3ддя
-д4ж
-д4з
-а2й
-е2й
-и2й
-і2й
-о2й
-у2й
-ю2й
-я2й
-є2й
-ї2й
-3й6о
-ь6о
-6'
-6ь
-.б'8
-.в'8
-.д'8
-.з'8
-.м'8
-.н'8
-.п'8
-.р'8
-.т'8
-.ф'8
-.ш'8
-.бд6
-.бр6
-.вб6
-.вб6'6
-.вв6'6
-.вг6
-.вд6
-.вж6
-.вз6
-.вз6д6
-.вк6
-.вл6
-.вм6
-.вм6'6
-.вп6
-.вп6'6
-.вп6х6
-.вс6
-.вс6т6
-.вт6
-.вш6к6
-.дж6
-.дз6
-.дл6
-.дс6
-.зб6
-.зв6'6
-.зг6
-.зд6
-.зд6з6
-.зл6
-.зм6'6
-.зс6
-.зс6к6
-.зс6т6
-.зч6
-.зш6
-.зш6к6
-.зґ6
-.йш6
-.кл6
-.кп6
-.кс6
-.кх6
-.кш6
-.лк6с6
-.лс6
-.ль6
-.мс6
-.мф6
-.нб6
-.пр6
-.пс6
-.пх6
-.рт6
-.ск6
-.ск6л6
-.сл6
-.сп6
-.сп6'6
-.сп6л6
-.сп6х6
-.ст6
-.сх6
-.сх6л6
-.тк6
-.тр6
-.тх6
-.ть6
-.фл6
-.хл6
-.ць6
-.чх6
-.шк6
-.шл6
-.шп6
-.шт6
-6бв.
-6бз.
-6бй.
-6бл.
-6б6ль.
-6бн.
-6бр.
-6бс.
-6б6ст.
-6б6с6тв.
-6б6с6тр.
-6б6с6ьк.
-6б6ць.
-6вб.
-6вв.
-6вд.
-6в6др.
-6в6дь.
-6вж.
-6вз.
-6в6зь.
-6вй.
-6вк.
-6вл.
-6в6ль.
-6вм.
-6вн.
-6вп.
-6вр.
-6вс.
-6в6с6тв.
-6в6с6ть.
-6в6сь.
-6в6с6ьк.
-6вт.
-6вх.
-6в6ць.
-6вч.
-6вш.
-6вщ.
-6гв.
-6гг.
-6гд.
-6гл.
-6г6ль.
-6гм.
-6гн.
-6гр.
-6гс.
-6г6с6тв.
-6г6сь.
-6гт.
-6дж.
-6дз.
-6д6зь.
-6дл.
-6дм.
-6дн.
-6др.
-6д6с6тв.
-6д6с6ьк.
-6дт.
-6дь.
-6д6ь6сь.
-6жб.
-6жв.
-6ж6дь.
-6ж6сь.
-6зв.
-6зг.
-6зд.
-6з6дв.
-6з6дн.
-6з6дь.
-6зк.
-6зл.
-6зм.
-6зн.
-6з6нь.
-6зр.
-6з6сь.
-6зь.
-6з6ьб.
-6з6ьк.
-6йб.
-6йв.
-6йг.
-6йд.
-6йз.
-6йк.
-6й6кл.
-6йл.
-6й6ль.
-6йм.
-6й6мс.
-6йн.
-6й6нс.
-6йп.
-6йр.
-6йс.
-6й6ст.
-6й6с6тв.
-6й6с6тр.
-6й6сь.
-6й6с6ьк.
-6йт.
-6й6тс.
-6йф.
-6йх.
-6йц.
-6йч.
-6йш.
-6кв.
-6кк.
-6кл.
-6к6ль.
-6кр.
-6кс.
-6к6ст.
-6к6сь.
-6кт.
-6к6тр.
-6кх.
-6кш.
-6лб.
-6лг.
-6лд.
-6лк.
-6лл.
-6л6ль.
-6лм.
-6л6мс.
-6лн.
-6лп.
-6лс.
-6лт.
-6л6хв.
-6ль.
-6л6ьб.
-6л6ьв.
-6л6ьг.
-6л6ьд.
-6л6ь6дс.
-6л6ьз.
-6л6ьк.
-6л6ьм.
-6л6ьн.
-6л6ьп.
-6л6ьс.
-6л6ь6ств.
-6л6ь6сь.
-6л6ь6ськ.
-6л6ьт.
-6л6ь6тр.
-6л6ьф.
-6л6ьх.
-6л6ьц.
-6л6ьч.
-6л6ьш.
-6л6ьщ.
-6мб.
-6м6б6ль.
-6м6бр.
-6мг.
-6мж.
-6мк.
-6мл.
-6м6ль.
-6мм.
-6мн.
-6мп.
-6мр.
-6мс.
-6м6с6тв.
-6м6сь.
-6м6с6ьк.
-6мт.
-6мф.
-6мх.
-6мш.
-6нв.
-6нг.
-6н6гл.
-6н6г6ль.
-6н6гр.
-6н6гс.
-6нд.
-6н6дж.
-6н6дз.
-6н6дп.
-6н6др.
-6нж.
-6нз.
-6нк.
-6н6кс.
-6н6кт.
-6нм.
-6нн.
-6нр.
-6нс.
-6н6ск.
-6н6ст.
-6н6с6тв.
-6н6с6тр.
-6н6с6ьк.
-6н6с6ькй.
-6нт.
-6н6тк.
-6н6тр.
-6н6т6ств.
-6н6ть.
-6нф.
-6нх.
-6нц.
-6н6ць.
-6нч.
-6нш.
-6нь.
-6н6ьб.
-6н6ьг.
-6н6ьк.
-6н6ь6сь.
-6пд.
-6пл.
-6пр.
-6пс.
-6п6с6тв.
-6п6сь.
-6пт.
-6п6тр.
-6пф.
-6пц.
-6рб.
-6рв.
-6рг.
-6рд.
-6р6дв.
-6р6дж.
-6р6дь.
-6рж.
-6рз.
-6р6зн.
-6р6зь.
-6рк.
-6р6кс.
-6р6кт.
-6рл.
-6р6ль.
-6р6л6ьз.
-6рм.
-6рн.
-6р6нс.
-6р6н6ст.
-6р6нь.
-6рп.
-6рр.
-6рс.
-6р6ср.
-6р6ст.
-6р6с6тв.
-6р6с6ть.
-6р6сь.
-6р6с6ьк.
-6рт.
-6р6тв.
-6р6тр.
-6р6ть.
-6рф.
-6рх.
-6рц.
-6р6ць.
-6рч.
-6рш.
-6рщ.
-6р6щ6сь.
-6рь.
-6с6дп.
-6с6д6рп.
-6ск.
-6сл.
-6с6ль.
-6см.
-6сн.
-6сп.
-6сс.
-6ст.
-6с6тв.
-6с6тй.
-6с6тм.
-6с6тр.
-6с6т6рь.
-6с6ть.
-6с6ць.
-6сь.
-6с6ьб.
-6с6ьк.
-6с6ьм.
-6тв.
-6т6вт.
-6т6зт.
-6тл.
-6т6ль.
-6тм.
-6т6мр.
-6тр.
-6тс.
-6т6с6тв.
-6т6с6ьк.
-6тт.
-6тц.
-6тч.
-6ть.
-6т6ь6сь.
-6фм.
-6фр.
-6ф6с6тв.
-6фт.
-6ф6ть.
-6фф.
-6фь.
-6хв.
-6хм.
-6хн.
-6хр.
-6хт.
-6хш.
-6ц6тв.
-6ць.
-6ц6ьк.
-6чб.
-6чм.
-6чн.
-6чт.
-6шв.
-6ш6ль.
-6шм.
-6шн.
-6ш6нл.
-6ш6сь.
-6шт.
-6ш6тв.
-6щ6сь.
-.бе4з'3
-.бе4з3
-.безу4
-.бе5з4о3д
-.без5о4соб
-.безві4д3
-.без3ро4з3
-виї4
-.ві5д4ом
-.ві5д4озв
-.ві5д4ун
-віду4ч
-.ві5д4а
-.ві5д4ер
-.ві5д4і
-.ві4д3
-.від'3
-.мі4ж3
-безві4д3
-ові4д3
-ді4єві4д3
-за4вві4д3
-неві4д'3
-неві4д3
-про4ф3ві4д3
-спе4ц3ві4д3
-співві4д3
-те4х3ві4д3
-.пере4д3бач
-.пере4д3виб
-.пере4д3г
-.пере4д3д
-.пере4д3м
-.пере4д3ост
-.пере4д3пла
-.пере4д3пок
-.пере4д3р
-.пере4д3св
-.пере4д3умов
-.пере4д3усі
-.пере4д3фр
-.пере4д3ч
-.пере4д'3
-.пере3
-.пона4д3
-.пона5д4і
-.пона5д4и
-.пона5д4я
-3п4ре
-3п4ри
-приї4
-3п4ро
-3п4рі
-.пі5д4о
-.пі5д4і
-.під'3
-.пі4д3
-.пі5д4е
-.пі5д4и
-.пі5д4у
-.пі4в3
-.спі4в3
-.напі4в3
-.ро5з4і
-.ро5з4е
-ро5з4йом
-.ро5з4а
-.ро4з'3
-.ро4з3
-.чере4з'3
-.чере4з3
-оо4б
-ооб'3
-ооб3м
-ооб3ро
-об'3
-од'3
-на4д'3
-за5о4р
-до5о4р
-по5о4р
-пере5о4р
-пі6д5о4р
-бе4з5і4дей
-до3в'4є
-за3в'4є
-зі3в'4є
-обі3в'4є
-по3в'4є
-уі3в'4є
-з3в'4я
-по3в'4я
-від3в'4я
-за3в'4я
-зі3в'4я
-за3ю4ш
-на3в'4я
-непо3в'4я
-об3в'4я
-при3в'4я
-під3в'4я
-у3в'4я
-з3м'4я
-зі3м'4я
-у3м'4я
-в3м'4я
-но3м'4я
-за3м'4я
-на3м'4я
-об3м'4я
-пере3м'4я
-по3м'4я
-при3м'4я
-піді3м'4я
-су3м'4я
-до3в'4ю
-за3в'4ю
-зі3в'4ю
-на3в'4ю
-по3в'4ю
-уі3в'4ю
-інтер3в'4ю
-за3я4ло
-коу4роч
-зу4роч
-наду4роч
-позау4роч
-поу4роч
-приу4роч
-на4й3у4бог
-нао4р
-прио4р
-неу4к
-3в4б4лаг
-3в4к4лад
-3в4п4лив
-3в4п4равн
-3в4р4одлив
-3в4т4рут
-3в4т4руч
-3з4б4рой
-3з4б4рою
-3з4б4роє
-3з4в4'яз
-3й4ш4л
-3м4к4не
-3м4к4ну
-3м4к4ні
-3п4с4ков
-3с4к4лад
-3с4к4ле
-3с4к4лит
-3с4к4ло
-3с4к4рипт
-3с4п4лав
-3с4п4лат
-3с4п4лач
-3с4п4рав
-3с4п4ритн
-3с4п4рият
-3с4п4ромо
-3с4т4вор
-3с4т4ражд
-3с4т4рах
-3с4т4риб
-3с4т4риж
-3с4т4рой
-3с4т4рок
-3с4т4ром
-3с4т4роф
-3с4т4роч
-3с4т4рою
-3с4т4роя
-3с4т4роє
-3с4т4рої
-3с4т4рукт
-3с4т4рукц
-3с4т4рій
-3с4т4ріл
-3с4т4річ
-3т4к4нен
-3т4ь4мар
-3т4ь4мяні
-3у4п4рав
-3блаж
-3ближ
-3близ
-3блиск
-3блок
-3блоці
-3бран
-3брати
-3брест
-3бризк
-3британ
-3бруд
-3в4бив
-3в4веден
-3в4дал
-3в4довз
-3в4довол
-3в4живан
-3в4лад
-3в4ласн
-3в4лашт
-3в4лов
-3в4певн
-3в4поряд
-3в4разлив
-3в4рожай
-3в4сюд
-3в4тіл
-3глад
-3глиб
-3глин
-3глоб
-3глуз
-3глуш
-3гляд
-3глян
-3гнан
-3гнил
-3гноз
-3гнучк
-3грав
-3град
-3грай
-3грам
-3гран
-3грати
-3граф
-3граш
-3граю
-3грає
-3грес
-3грець
-3гроб
-3грож
-3гроз
-3громад
-3груван
-3грунт
-3груп
-3грів
-3гріт
-3гріш
-3г4ідро
-3д4ан
-3д4бав
-3д4бал
-3д4бан
-3д4бат
-3д4бає
-3двиг
-3двою
-3двоє
-3двій
-3двір
-3двічі
-3драж
-3дром
-3друж
-3друк
-3дряп
-3дріб
-3дріма
-3жвав
-3жміть
-3жріть
-3з4бага
-3з4баланс
-3з4був
-3з4бут
-3зваж
-3зван
-3звед
-3звел
-3звест
-3звись
-3звич
-3звищ
-3зворуш
-3звук
-3звуч
-3звіт
-3з4год
-3з4дат
-3з4довж
-3з4доров
-3з4дійсн
-3змін
-3зйом
-3зміш
-3знав
-3знай
-3знак
-3знал
-3знан
-3знат
-3знаход
-3знач
-3знаю
-3знає
-3зниж
-3знім
-3зрозум
-3зрюв
-3зрів
-3зріл
-3зрін
-3з4чеп
-3й4ма
-3й4менн
-3й4мищ
-3й4мовірн
-3й4му.
-3й4муть
-3й4міть
-3й4шов
-3м4нож
-3м4ріть
-3м4щен
-3п4сов
-3п4сон
-3п4сув
-3р4вав
-3р4вати
-3р4віть
-3с4кид
-3с4кок
-3с4коп
-3с4кор
-3с4короч
-3с4коч
-3с4кіль
-3с4кіпл
-3с4пад
-3с4пект
-3с4перм
-3с4пин
-3с4повід
-3с4пожив
-3с4постер
-3с4пі
-3с4піть
-3с4піш
-3с4табіл
-3с4тав
-3с4тад
-3с4таз
-3с4тайн
-3с4тал
-3с4тан
-3с4тар
-3с4тара
-3с4тат
-3с4тач
-3с4тає
-3с4теп
-3с4тереж
-3с4теріг
-3с4тиг
-3с4тиж
-3с4тисл
-3с4титу
-3с4товб
-3с4той
-3с4торон
-3с4торін
-3с4тосо
-3с4тосу
-3с4тою
-3с4тоян
-3с4туп
-3с4тяг
-3с4тіб
-3с4тій
-3с4тіль
-3с4тір
-3с4фер
-3с4хил
-3с4хов
-3с4хід
-3т4кан
-3х4то
-3ш4код
-3ш4кол
-3ш4кідл
-3ш4кіл
-3ш4кір
-3ш4таб
-3ш4туч
-3ґрунт
-3а4вторит
-3а4гент
-3а4грес
-3а4декват
-3а4дитив
-3а4зарт
-3а4ктив
-3а4ктуал
-3а4курат
-3а4куст
-3а4кцепт
-3а4кциз
-3а4лергі
-3а4матор
-3а4наліз
-3а4натом
-3а4парат
-3а4пеляц
-3а4постол
-3а4птеч
-3а4ргумен
-3а4ромат
-3а4соці
-3а4спект
-3а4тлет
-3а4халі
-3е4колог
-3е4коном
-3е4легант
-3е4лектр
-3е4лемент
-3е4моці
-3е4мігр
-3е4нерг
-3е4стакад
-3е4стет
-3е4тап
-3о4б'єдн
-3о4б'єкт
-3о4береж
-3о4бира
-3о4борон
-3о4бід
-3о4біц
-3о4даль
-3о4дяг
-3о4збро
-3о4крем
-3о4перат
-3о4плат
-3о4птим
-3о4пуст
-3о4пуше
-3о4пуще
-3о4рдинац
-3о4ренд
-3о4соб
-3о4сяжн
-3о4холо
-3о4хорон
-3о4хоч
-3о4чисн
-3о4чищ
-3у4ваг
-3у4важ
-3у4гав
-3у4згод
-3у4клад
-3у4компл
-3у4крупн
-3у4люблен
-3у4мит
-3у4міл
-3у4перед
-3у4разлив
-3у4рбан
-3у4рочист
-3у4ряд
-3у4рядов
-3у4спіш
-3у4станов
-3у4стпіш
-3у4сувати
-3у4твор
-3у4тробн
-3я4дерн
-3я4зик
-3я4кіс
-3я4рус
-3я4скрав
-3є4д3н
-3є4дин
-3є4писк
-3є4рей
-3і4зотоп
-3і4люстр
-3і4мовір
-3і4нтенс
-3і4нформ
-3і4ніціат
-3і4снув
-3ї4ждж
-3ї4зд
-3ї4ст
-3ї4хав
-3ї4хат
-.заї4к
-.заї4ц
-.заї4ч
-.наї4д
-'ї4в
-'ї4з
-'ї4д
-'ї4ж
-'ї4л
-'ї4м
-'ї4с
-'ї4х
-аві4а
-авої4д
-ае4тил
-альбі5он
-ахої4д
-ауді4о
-ай4с3берг
-бактері4о
-ба4с3енер
-ба4с3антра
-.бе5зе.
-бей4сбол
-бе5кон
-б'4єть
-бйор4нс
-бі4о3
-бо4г3дан
-бран4д
-брі4дж3порт
-без5і4мен
-бо4є3гол
-бо4є3гот
-бо4є3зап
-бо4є3здат
-бо4є3комп
-бо4є3пост
-бо4є3прип
-бори4с5п
-4в3антрац
-вер4х3н
-ви3й4д
-вина3й4д
-ви3й4т
-вина3й4т
-від7зна
-ві5д4ен
-ві5д4е4о
-ві5д4ом
-від5о4браж
-від5о4браз
-во4с5ко
-водо5с4ток
-водо5з4бір
-воль4т3метр
-воль4т3ампер
-3в'4яз
-ге2ть3ман
-ге4о
-го4с4п5роз
-гі4д5ро5мет
-4д7зем
-дер4ж5а4том
-дер4ж5а4дм
-дер4ж5бюдж
-дер4ж5вид
-дер4ж5дум
-дер4ж5замов
-дер4ж5ком
-дер4ж5нафт
-дер4ж5реєс
-дер4ж3без
-дер4ж3резерв
-дер4ж5стр
-дер4ж5служ
-двох4а5том
-джен4тль
-дисбаланс
-ди4с3гарм
-ди4с3квал
-ди4с3комф
-ди4с3конт
-ди4с3кред
-ди4с3крет
-ди4с3крец
-ди4с3крим
-ди4с3кусі
-ди4с3куту
-ди4с3лок
-ди4с3парит
-ди4с3перс
-ди4с3петч
-ди4с3пле
-ди4с3плей
-ди4с3пози
-ди4с3проп
-ди4с3пут
-ди4с3тил
-ди4с3триб
-ди4с3троф
-ди4с3функц
-ді3й4т
-ді3й4д
-д4ні3п4р
-.дої4в
-.дої4л
-.дої5ль
-дої4д
-дої4м
-дої4х
-дої4ж
-дої4ст
-до3з4вол
-до3з4віл
-дорого5в4каз
-еу4стр
-ео4сві
-енерго3з4береж
-енерго3з4беріг
-ек2с1к
-ек2с1п
-ек2с1т
-ек2с1ц
-єв4р3атом
-єпі4с5коп
-єпи4с5коп
-за4п3част
-заї4д
-заї4ж
-заї4з
-заї4л
-заї4м
-заї4х
-зе4кономити
-3з'4ясо
-зна3й4д
-зна3й4т
-зо4ка
-зо4ке
-зо4ки
-зо4ку
-зо4кі
-игої4д
-ий4ти
-іе4тил
-і4л3е4тил
-ій4ти
-інфор4м3аген
-йо4сві
-каза4х3стан
-квої4д
-корої4д
-квар4т3плат
-киї4венер
-кон4трре
-кон4тр3арг
-жко4м5а4том
-кому4ненерг
-мі4н5е4ко
-мі4н5е4нер
-мо4к5рий
-3м'4якш
-3м'4ят
-на3б4лиз
-на3в4ряд
-на3в4ча
-на3з4в
-на4д7з4в
-наї4вс
-наї4вш
-наї4ж
-наї4з
-наї4л
-наї4м
-наї4с
-наї4х
-на4й3а
-на4й3е
-на4й3обереж
-на4й7о4бер
-на4й7о4гид
-на4й7о4гол
-на4й7о4гряд
-на4й7о4пук
-на4й7о4хай
-на4й3масл
-на4й3спри
-на4й3якіс
-на3в4чен
-на3в4чіть
-не3в4том
-не3д4бан
-на3д4бан
-не3з4вич
-не3з4важ
-нео4пал
-недої4
-неї4ст
-на5п4лив
-ні4т5рат
-оної4д
-оо4пал
-ео4пал
-обі3д4ран
-обі3й4д
-обі3й4т
-об5у4мов
-онаї4д
-оо4сві
-оо4к
-оу4стр
-оа4том
-об4лдер4ж
-об4л3а4дмін
-переї4д
-переї4ж
-переї4з
-переї4л
-переї4с
-переї4х
-пере5п4лив
-пере3й4д
-пре4й4с
-пере3й4т
-перег4ній
-перед5о4бід
-пере3в4том
-пере4д5см
-перед5у4мов
-під5о4дин
-пів5о4с4тр
-пі5в4ень
-по3б4лизу
-по3в4тор
-поч4не
-поч4ни
-поч4ну
-поя4в
-по3в4чен
-по3в4чіть
-по3д4роб
-по3д4раз
-по3д4во
-по5ж4ніть
-по5з4бав
-.пої4
-пої4д
-прої4
-пої4зд
-по4с4т5радян
-по4с4т5кому
-по4с4т3декр
-по4с4т3контра
-по4с4т3менопауз
-по4с4тприват
-по4с4т3раді
-по4с4т5соці
-пос4т3кап
-пос4т3ком
-пос4т3нат
-пос4т3проц
-пос4т3соц
-пос4т3фікс
-при3й4т
-про3с4тирад
-про4ф3с
-полі4т5екон
-пор4т3н
-пор4т3рет
-пор4т3фел
-при3й4д
-при4нцип
-про4ект3н
-про3б4лем
-про4м3май
-пр4о5плат
-раді4о
-рай3в4но
-ро4з5д4во
-ро4з5мінний
-роз5у4чен
-роз5і4мен
-роз5вант
-роз5вин
-роз5вит
-ро4з5діл
-ро4з5гор
-ро4з5вер
-ро4з5чеп
-ро4з'5єдн
-з'4єдн
-руко5с4тиск
-ро5з4ум
-ро4з3гром
-ро4з3лив
-рмої4д
-сан4к4т3
-сеї4д
-серцеї4д
-спе4ц3кур
-спе4ц3мон
-спе4цпр
-спе4ц3с
-спор4т3вир
-спор4т3зал
-спор4т3ком
-спор4т3клуб
-спор4т3май
-спор4т4с3ме
-сор4тн
-3с4промож
-сь4квуг
-стат5упр
-тор4г3пред
-тран4с3
-тур4к3мен
-цук3ро
-у4к4р
-укр3а4вт
-укр3а4гр
-укр3е4кс
-укр3і4н4банк
-убої4д
-чорно3б4рив
-цен4т4р3енерг
-ясої4д
-ви3у4ч
-за3у4ч
-на3у4ч
-недо3у4ч
-не3у4ч
-під3у4ч
-пед3у4чи
-пере3у4ч
-само3у4ч
-вия4в
-з'я4в
-зая4в
-ная4в
-уя4в
-во4євод
-во4єнач
-сво4єчас
-сво4єкорис
-сво4єрід
-хво4є3г4риз
-гелі4о
-ді4о
-еті4о
-мі4о
-і4он
-полі4о
-соці4о
-фізі4о
-хімі4о
-гоме4о
-ді4алог
-ді4оген
-дея4к
-оо4динок
-ао4пік
-ао4ха
-ео4ха
-зо6о
-ка5нал
-оі4зол
-міжу4соб
-мете4о
-абия4к
-нія4к
-вия4сн
-най3я4сн
-нея4сн
-поя4сн
-проя4сн
-роз'я4сн
-ро5з4ора.
-ро5з4о5рам
-ро5з4орах
-ро5з4ори
-ро5з4оро
-ро5з4ору
-ро5з4оря
-ро5з4орю
-ро5з4орі
-ро6з5о4ри.
-розо4ра
-розо4ре
-розо4реш
-розо4рн
-напоу4м
-неа4би
-ео4цін
-оо4цін
-доу4к
-доу4м
-ео4бур
-ео4голош
-ео4зор
-бальне4о
-не4оліт
-не4омальт
-не4оклас
-не4окомун
-не4оландш
-не4олог
-не4олібер
-не4онац
-не4офіт
-нею4н
-нея4к
-нея4рок
-но4к3а4ут
-пі5в4оні
-піво4с
-пале4о
-па4н3о4тець
-.пе4ом.
-д3у4сім
-п4о5бере
-ао4хот
-ое4ко
-ео4хот
-ео4щад
-ао4щад
-оо4чищ
-поя4с
-роз'я4р
-те4одоліт
-те4олог
-те4ософ
-оо4біг
-оу4сун
-оу4ком
-пів3о4вал
-а3у4дар
-о3у4дар
-з3у4дар
-в3у4дар
-контр3у4дар
-о3о4кисл
-и3о4кисл
-ень7о4кисл
-е3о4кисл
-х3о4кисл
-и3і4стор
-о3і4стор
-і3і4стор
-а3і4стор
-я3і4стор
-е3і4стор
-наді4стор
-най3і4стор
-пів3і4стор
-перед3і4стор
-пост3і4стор
-ар4т3афіш
-ар4т3взвод
-ар4т3десант
-ар4т3кафе
-ар4т3майс
-ар4т3медіа
-ар4т3мейс
-ар4т3мін
-ар4т3о4бстр
-ар4т3о4дин
-ар4т3о4збр
-ар4т3під
-ар4т3рин
-ар4т3у4стан
-ар4т3факт
-ар4т3хім
-ар4т3центр
-наді4стот
-найі4стот
-еі4стот
-оі4стот
-ау4т3екол
-оо4чист
-з3а4кт
-оа4кт
-еа4кт
-гіпер3а4кт
-найа4кт
-піва4кт
-ао4браз
-ео4браз
-оо4браз
-граф3о4браз
-най3о4браз
-супер3о4браз
-ар4т3мейст
-баге4р3мейст
-бале4т3мейст
-бран4д3мейст
-ва4ль4д3мейст
-ве4ль4т3мейст
-го4ф3мейст
-гро4с3мейст
-декре4т3мейст
-до4к3мейст
-капе4ль3мейст
-кварти4р3мейст
-конце4р4т3мейст
-кра4н3мейст
-полі4ц3мейст
-по4ш4т3мейст
-фо4р4с4т3мейст
-хо4р3мейст
-шапі4т3мейст
-шта4л3мейст
-єге4р3мейст
-иа4варі
-яа4варі
-оа4варі
-еа4варі
-беза4варі
-між3а4варі
-над3а4варі
-пост3а4варі
-напів3а4варі
-перед3а4варі
-супер3а4варі
-аа4дрес
-еа4дрес
-оа4дрес
-іа4дрес
-без3а4дрес
-ае4фект
-ее4фект
-ое4фект
-най3е4фект
-супер3е4фект
-ое4місі
-ие4місі
-яе4місі
-ее4місі
-безе4місі
-гіпер3е4місі
-еу4бог
-й3у4бог
-ий4ня
-зай4ня
-здій4ня
-най4ня
-обій4ня
-перей4ня
-підій4ня
-прий4м
-пій4м
-дій4ма
-вий4м
-най4ма
-зай4м
-д4о3й4м
-обой4м
-прой4м
-обій4м
-перей4м
-безу4гл
-безу4пин
-бло4к3пост
-.блі4ц3ана
-.блі4ц3криг
-.блі4ц3опит
-.блі4ц3торг
-.блі4ц3тур
-.блі4ц3і4спит
-о3а4наліз
-бак3а4наліз
-ц3а4наліз
-ген3а4наліз
-з3а4наліз
-м3а4наліз
-нт3а4наліз
-між3а4наліз
-полі3а4наліз
-ре3а4наліз
-оу4год
-ау4год
-еу4год
-пів3у4год
-роз3у4год
-гос4п3у4год
-ео4пис
-оо4пис
-ао4пис
-бо4р4т3мех
-бо4р4т3о4пер
-бо4р4т3про
-бо4р4т3рад
-бо4р4т3і4нж
-оа4каці
-оу4с
-оо4держ
-оа4на
-біблі4о
-.на3в4ч
-.ви3в4ч
-.до3в4ч
-.за3в4ч
-.по3в4ч
-.при3в4ч
-ана3в4ч
-ена3в4ч
-мона3в4ч
-жона3в4ч
-іона3в4ч
-ови3в4ч
-еви3в4ч
-едо3в4ч
-оза3в4ч
-по3в4ча
-.ом4рі
-е3м4рій
-.ви3м4р
-.віді3м4р
-.зав3м4р
-.за3м4р
-.зі3м4р
-.на3м4р
-.пере3м4р
-.по3м4р
-.при3м4р
-.роз3м4р
-.ум4ри
-.ум4рі
-.ум4ру
-.ум4ре
-во4станнє
-най3о4станн
-перед3о4станн
-ие4стет
-ое4стет
-ее4стет
-й3е4стет
-пан3е4стет
-пар3е4стет
-оо4ктан
-іо4ктан
-оо4плачув
-ео4плачув
-перед3о4пла
-виу4ди
-о3в4каз
-е3в4каз
-8-7
---8
-.а-8
-.б-8
-.в-8
-.г-8
-.ґ-8
-.д-8
-.е-8
-.є-8
-.ж-8
-.з-8
-.и-8
-.і-8
-.ї-8
-.й-8
-.к-8
-.л-8
-.м-8
-.н-8
-.о-8
-.п-8
-.р-8
-.с-8
-.т-8
-.у-8
-.ф-8
-.х-8
-.ц-8
-.ч-8
-.ш-8
-.щ-8
-.ь-8
-.ю-8
-.я-8
-.'-8
--а8а8
-8а8а-
--а8б8
-8а8б-
--а8в8
-8а8в-
--а8г8
-8а8г-
--а8ґ8
-8а8ґ-
--а8д8
-8а8д-
--а8е8
-8а8е-
--а8є8
-8а8є-
--а8ж8
-8а8ж-
--а8з8
-8а8з-
--а8и8
-8а8и-
--а8і8
-8а8і-
--а8ї8
-8а8ї-
--а8й8
-8а8й-
--а8к8
-8а8к-
--а8л8
-8а8л-
--а8м8
-8а8м-
--а8н8
-8а8н-
--а8о8
-8а8о-
--а8п8
-8а8п-
--а8р8
-8а8р-
--а8с8
-8а8с-
--а8т8
-8а8т-
--а8у8
-8а8у-
--а8ф8
-8а8ф-
--а8х8
-8а8х-
--а8ц8
-8а8ц-
--а8ч8
-8а8ч-
--а8ш8
-8а8ш-
--а8щ8
-8а8щ-
--а8ь8
-8а8ь-
--а8ю8
-8а8ю-
--а8я8
-8а8я-
--а8'8
-8а8'-
--б8а8
-8б8а-
--б8б8
-8б8б-
--б8в8
-8б8в-
--б8г8
-8б8г-
--б8ґ8
-8б8ґ-
--б8д8
-8б8д-
--б8е8
-8б8е-
--б8є8
-8б8є-
--б8ж8
-8б8ж-
--б8з8
-8б8з-
--б8и8
-8б8и-
--б8і8
-8б8і-
--б8ї8
-8б8ї-
--б8й8
-8б8й-
--б8к8
-8б8к-
--б8л8
-8б8л-
--б8м8
-8б8м-
--б8н8
-8б8н-
--б8о8
-8б8о-
--б8п8
-8б8п-
--б8р8
-8б8р-
--б8с8
-8б8с-
--б8т8
-8б8т-
--б8у8
-8б8у-
--б8ф8
-8б8ф-
--б8х8
-8б8х-
--б8ц8
-8б8ц-
--б8ч8
-8б8ч-
--б8ш8
-8б8ш-
--б8щ8
-8б8щ-
--б8ь8
-8б8ь-
--б8ю8
-8б8ю-
--б8я8
-8б8я-
--б8'8
-8б8'-
--в8а8
-8в8а-
--в8б8
-8в8б-
--в8в8
-8в8в-
--в8г8
-8в8г-
--в8ґ8
-8в8ґ-
--в8д8
-8в8д-
--в8е8
-8в8е-
--в8є8
-8в8є-
--в8ж8
-8в8ж-
--в8з8
-8в8з-
--в8и8
-8в8и-
--в8і8
-8в8і-
--в8ї8
-8в8ї-
--в8й8
-8в8й-
--в8к8
-8в8к-
--в8л8
-8в8л-
--в8м8
-8в8м-
--в8н8
-8в8н-
--в8о8
-8в8о-
--в8п8
-8в8п-
--в8р8
-8в8р-
--в8с8
-8в8с-
--в8т8
-8в8т-
--в8у8
-8в8у-
--в8ф8
-8в8ф-
--в8х8
-8в8х-
--в8ц8
-8в8ц-
--в8ч8
-8в8ч-
--в8ш8
-8в8ш-
--в8щ8
-8в8щ-
--в8ь8
-8в8ь-
--в8ю8
-8в8ю-
--в8я8
-8в8я-
--в8'8
-8в8'-
--г8а8
-8г8а-
--г8б8
-8г8б-
--г8в8
-8г8в-
--г8г8
-8г8г-
--г8ґ8
-8г8ґ-
--г8д8
-8г8д-
--г8е8
-8г8е-
--г8є8
-8г8є-
--г8ж8
-8г8ж-
--г8з8
-8г8з-
--г8и8
-8г8и-
--г8і8
-8г8і-
--г8ї8
-8г8ї-
--г8й8
-8г8й-
--г8к8
-8г8к-
--г8л8
-8г8л-
--г8м8
-8г8м-
--г8н8
-8г8н-
--г8о8
-8г8о-
--г8п8
-8г8п-
--г8р8
-8г8р-
--г8с8
-8г8с-
--г8т8
-8г8т-
--г8у8
-8г8у-
--г8ф8
-8г8ф-
--г8х8
-8г8х-
--г8ц8
-8г8ц-
--г8ч8
-8г8ч-
--г8ш8
-8г8ш-
--г8щ8
-8г8щ-
--г8ь8
-8г8ь-
--г8ю8
-8г8ю-
--г8я8
-8г8я-
--г8'8
-8г8'-
--ґ8а8
-8ґ8а-
--ґ8б8
-8ґ8б-
--ґ8в8
-8ґ8в-
--ґ8г8
-8ґ8г-
--ґ8ґ8
-8ґ8ґ-
--ґ8д8
-8ґ8д-
--ґ8е8
-8ґ8е-
--ґ8є8
-8ґ8є-
--ґ8ж8
-8ґ8ж-
--ґ8з8
-8ґ8з-
--ґ8и8
-8ґ8и-
--ґ8і8
-8ґ8і-
--ґ8ї8
-8ґ8ї-
--ґ8й8
-8ґ8й-
--ґ8к8
-8ґ8к-
--ґ8л8
-8ґ8л-
--ґ8м8
-8ґ8м-
--ґ8н8
-8ґ8н-
--ґ8о8
-8ґ8о-
--ґ8п8
-8ґ8п-
--ґ8р8
-8ґ8р-
--ґ8с8
-8ґ8с-
--ґ8т8
-8ґ8т-
--ґ8у8
-8ґ8у-
--ґ8ф8
-8ґ8ф-
--ґ8х8
-8ґ8х-
--ґ8ц8
-8ґ8ц-
--ґ8ч8
-8ґ8ч-
--ґ8ш8
-8ґ8ш-
--ґ8щ8
-8ґ8щ-
--ґ8ь8
-8ґ8ь-
--ґ8ю8
-8ґ8ю-
--ґ8я8
-8ґ8я-
--ґ8'8
-8ґ8'-
--д8а8
-8д8а-
--д8б8
-8д8б-
--д8в8
-8д8в-
--д8г8
-8д8г-
--д8ґ8
-8д8ґ-
--д8д8
-8д8д-
--д8е8
-8д8е-
--д8є8
-8д8є-
--д8ж8
-8д8ж-
--д8з8
-8д8з-
--д8и8
-8д8и-
--д8і8
-8д8і-
--д8ї8
-8д8ї-
--д8й8
-8д8й-
--д8к8
-8д8к-
--д8л8
-8д8л-
--д8м8
-8д8м-
--д8н8
-8д8н-
--д8о8
-8д8о-
--д8п8
-8д8п-
--д8р8
-8д8р-
--д8с8
-8д8с-
--д8т8
-8д8т-
--д8у8
-8д8у-
--д8ф8
-8д8ф-
--д8х8
-8д8х-
--д8ц8
-8д8ц-
--д8ч8
-8д8ч-
--д8ш8
-8д8ш-
--д8щ8
-8д8щ-
--д8ь8
-8д8ь-
--д8ю8
-8д8ю-
--д8я8
-8д8я-
--д8'8
-8д8'-
--е8а8
-8е8а-
--е8б8
-8е8б-
--е8в8
-8е8в-
--е8г8
-8е8г-
--е8ґ8
-8е8ґ-
--е8д8
-8е8д-
--е8е8
-8е8е-
--е8є8
-8е8є-
--е8ж8
-8е8ж-
--е8з8
-8е8з-
--е8и8
-8е8и-
--е8і8
-8е8і-
--е8ї8
-8е8ї-
--е8й8
-8е8й-
--е8к8
-8е8к-
--е8л8
-8е8л-
--е8м8
-8е8м-
--е8н8
-8е8н-
--е8о8
-8е8о-
--е8п8
-8е8п-
--е8р8
-8е8р-
--е8с8
-8е8с-
--е8т8
-8е8т-
--е8у8
-8е8у-
--е8ф8
-8е8ф-
--е8х8
-8е8х-
--е8ц8
-8е8ц-
--е8ч8
-8е8ч-
--е8ш8
-8е8ш-
--е8щ8
-8е8щ-
--е8ь8
-8е8ь-
--е8ю8
-8е8ю-
--е8я8
-8е8я-
--е8'8
-8е8'-
--є8а8
-8є8а-
--є8б8
-8є8б-
--є8в8
-8є8в-
--є8г8
-8є8г-
--є8ґ8
-8є8ґ-
--є8д8
-8є8д-
--є8е8
-8є8е-
--є8є8
-8є8є-
--є8ж8
-8є8ж-
--є8з8
-8є8з-
--є8и8
-8є8и-
--є8і8
-8є8і-
--є8ї8
-8є8ї-
--є8й8
-8є8й-
--є8к8
-8є8к-
--є8л8
-8є8л-
--є8м8
-8є8м-
--є8н8
-8є8н-
--є8о8
-8є8о-
--є8п8
-8є8п-
--є8р8
-8є8р-
--є8с8
-8є8с-
--є8т8
-8є8т-
--є8у8
-8є8у-
--є8ф8
-8є8ф-
--є8х8
-8є8х-
--є8ц8
-8є8ц-
--є8ч8
-8є8ч-
--є8ш8
-8є8ш-
--є8щ8
-8є8щ-
--є8ь8
-8є8ь-
--є8ю8
-8є8ю-
--є8я8
-8є8я-
--є8'8
-8є8'-
--ж8а8
-8ж8а-
--ж8б8
-8ж8б-
--ж8в8
-8ж8в-
--ж8г8
-8ж8г-
--ж8ґ8
-8ж8ґ-
--ж8д8
-8ж8д-
--ж8е8
-8ж8е-
--ж8є8
-8ж8є-
--ж8ж8
-8ж8ж-
--ж8з8
-8ж8з-
--ж8и8
-8ж8и-
--ж8і8
-8ж8і-
--ж8ї8
-8ж8ї-
--ж8й8
-8ж8й-
--ж8к8
-8ж8к-
--ж8л8
-8ж8л-
--ж8м8
-8ж8м-
--ж8н8
-8ж8н-
--ж8о8
-8ж8о-
--ж8п8
-8ж8п-
--ж8р8
-8ж8р-
--ж8с8
-8ж8с-
--ж8т8
-8ж8т-
--ж8у8
-8ж8у-
--ж8ф8
-8ж8ф-
--ж8х8
-8ж8х-
--ж8ц8
-8ж8ц-
--ж8ч8
-8ж8ч-
--ж8ш8
-8ж8ш-
--ж8щ8
-8ж8щ-
--ж8ь8
-8ж8ь-
--ж8ю8
-8ж8ю-
--ж8я8
-8ж8я-
--ж8'8
-8ж8'-
--з8а8
-8з8а-
--з8б8
-8з8б-
--з8в8
-8з8в-
--з8г8
-8з8г-
--з8ґ8
-8з8ґ-
--з8д8
-8з8д-
--з8е8
-8з8е-
--з8є8
-8з8є-
--з8ж8
-8з8ж-
--з8з8
-8з8з-
--з8и8
-8з8и-
--з8і8
-8з8і-
--з8ї8
-8з8ї-
--з8й8
-8з8й-
--з8к8
-8з8к-
--з8л8
-8з8л-
--з8м8
-8з8м-
--з8н8
-8з8н-
--з8о8
-8з8о-
--з8п8
-8з8п-
--з8р8
-8з8р-
--з8с8
-8з8с-
--з8т8
-8з8т-
--з8у8
-8з8у-
--з8ф8
-8з8ф-
--з8х8
-8з8х-
--з8ц8
-8з8ц-
--з8ч8
-8з8ч-
--з8ш8
-8з8ш-
--з8щ8
-8з8щ-
--з8ь8
-8з8ь-
--з8ю8
-8з8ю-
--з8я8
-8з8я-
--з8'8
-8з8'-
--и8а8
-8и8а-
--и8б8
-8и8б-
--и8в8
-8и8в-
--и8г8
-8и8г-
--и8ґ8
-8и8ґ-
--и8д8
-8и8д-
--и8е8
-8и8е-
--и8є8
-8и8є-
--и8ж8
-8и8ж-
--и8з8
-8и8з-
--и8и8
-8и8и-
--и8і8
-8и8і-
--и8ї8
-8и8ї-
--и8й8
-8и8й-
--и8к8
-8и8к-
--и8л8
-8и8л-
--и8м8
-8и8м-
--и8н8
-8и8н-
--и8о8
-8и8о-
--и8п8
-8и8п-
--и8р8
-8и8р-
--и8с8
-8и8с-
--и8т8
-8и8т-
--и8у8
-8и8у-
--и8ф8
-8и8ф-
--и8х8
-8и8х-
--и8ц8
-8и8ц-
--и8ч8
-8и8ч-
--и8ш8
-8и8ш-
--и8щ8
-8и8щ-
--и8ь8
-8и8ь-
--и8ю8
-8и8ю-
--и8я8
-8и8я-
--и8'8
-8и8'-
--і8а8
-8і8а-
--і8б8
-8і8б-
--і8в8
-8і8в-
--і8г8
-8і8г-
--і8ґ8
-8і8ґ-
--і8д8
-8і8д-
--і8е8
-8і8е-
--і8є8
-8і8є-
--і8ж8
-8і8ж-
--і8з8
-8і8з-
--і8и8
-8і8и-
--і8і8
-8і8і-
--і8ї8
-8і8ї-
--і8й8
-8і8й-
--і8к8
-8і8к-
--і8л8
-8і8л-
--і8м8
-8і8м-
--і8н8
-8і8н-
--і8о8
-8і8о-
--і8п8
-8і8п-
--і8р8
-8і8р-
--і8с8
-8і8с-
--і8т8
-8і8т-
--і8у8
-8і8у-
--і8ф8
-8і8ф-
--і8х8
-8і8х-
--і8ц8
-8і8ц-
--і8ч8
-8і8ч-
--і8ш8
-8і8ш-
--і8щ8
-8і8щ-
--і8ь8
-8і8ь-
--і8ю8
-8і8ю-
--і8я8
-8і8я-
--і8'8
-8і8'-
--ї8а8
-8ї8а-
--ї8б8
-8ї8б-
--ї8в8
-8ї8в-
--ї8г8
-8ї8г-
--ї8ґ8
-8ї8ґ-
--ї8д8
-8ї8д-
--ї8е8
-8ї8е-
--ї8є8
-8ї8є-
--ї8ж8
-8ї8ж-
--ї8з8
-8ї8з-
--ї8и8
-8ї8и-
--ї8і8
-8ї8і-
--ї8ї8
-8ї8ї-
--ї8й8
-8ї8й-
--ї8к8
-8ї8к-
--ї8л8
-8ї8л-
--ї8м8
-8ї8м-
--ї8н8
-8ї8н-
--ї8о8
-8ї8о-
--ї8п8
-8ї8п-
--ї8р8
-8ї8р-
--ї8с8
-8ї8с-
--ї8т8
-8ї8т-
--ї8у8
-8ї8у-
--ї8ф8
-8ї8ф-
--ї8х8
-8ї8х-
--ї8ц8
-8ї8ц-
--ї8ч8
-8ї8ч-
--ї8ш8
-8ї8ш-
--ї8щ8
-8ї8щ-
--ї8ь8
-8ї8ь-
--ї8ю8
-8ї8ю-
--ї8я8
-8ї8я-
--ї8'8
-8ї8'-
--й8а8
-8й8а-
--й8б8
-8й8б-
--й8в8
-8й8в-
--й8г8
-8й8г-
--й8ґ8
-8й8ґ-
--й8д8
-8й8д-
--й8е8
-8й8е-
--й8є8
-8й8є-
--й8ж8
-8й8ж-
--й8з8
-8й8з-
--й8и8
-8й8и-
--й8і8
-8й8і-
--й8ї8
-8й8ї-
--й8й8
-8й8й-
--й8к8
-8й8к-
--й8л8
-8й8л-
--й8м8
-8й8м-
--й8н8
-8й8н-
--й8о8
-8й8о-
--й8п8
-8й8п-
--й8р8
-8й8р-
--й8с8
-8й8с-
--й8т8
-8й8т-
--й8у8
-8й8у-
--й8ф8
-8й8ф-
--й8х8
-8й8х-
--й8ц8
-8й8ц-
--й8ч8
-8й8ч-
--й8ш8
-8й8ш-
--й8щ8
-8й8щ-
--й8ь8
-8й8ь-
--й8ю8
-8й8ю-
--й8я8
-8й8я-
--й8'8
-8й8'-
--к8а8
-8к8а-
--к8б8
-8к8б-
--к8в8
-8к8в-
--к8г8
-8к8г-
--к8ґ8
-8к8ґ-
--к8д8
-8к8д-
--к8е8
-8к8е-
--к8є8
-8к8є-
--к8ж8
-8к8ж-
--к8з8
-8к8з-
--к8и8
-8к8и-
--к8і8
-8к8і-
--к8ї8
-8к8ї-
--к8й8
-8к8й-
--к8к8
-8к8к-
--к8л8
-8к8л-
--к8м8
-8к8м-
--к8н8
-8к8н-
--к8о8
-8к8о-
--к8п8
-8к8п-
--к8р8
-8к8р-
--к8с8
-8к8с-
--к8т8
-8к8т-
--к8у8
-8к8у-
--к8ф8
-8к8ф-
--к8х8
-8к8х-
--к8ц8
-8к8ц-
--к8ч8
-8к8ч-
--к8ш8
-8к8ш-
--к8щ8
-8к8щ-
--к8ь8
-8к8ь-
--к8ю8
-8к8ю-
--к8я8
-8к8я-
--к8'8
-8к8'-
--л8а8
-8л8а-
--л8б8
-8л8б-
--л8в8
-8л8в-
--л8г8
-8л8г-
--л8ґ8
-8л8ґ-
--л8д8
-8л8д-
--л8е8
-8л8е-
--л8є8
-8л8є-
--л8ж8
-8л8ж-
--л8з8
-8л8з-
--л8и8
-8л8и-
--л8і8
-8л8і-
--л8ї8
-8л8ї-
--л8й8
-8л8й-
--л8к8
-8л8к-
--л8л8
-8л8л-
--л8м8
-8л8м-
--л8н8
-8л8н-
--л8о8
-8л8о-
--л8п8
-8л8п-
--л8р8
-8л8р-
--л8с8
-8л8с-
--л8т8
-8л8т-
--л8у8
-8л8у-
--л8ф8
-8л8ф-
--л8х8
-8л8х-
--л8ц8
-8л8ц-
--л8ч8
-8л8ч-
--л8ш8
-8л8ш-
--л8щ8
-8л8щ-
--л8ь8
-8л8ь-
--л8ю8
-8л8ю-
--л8я8
-8л8я-
--л8'8
-8л8'-
--м8а8
-8м8а-
--м8б8
-8м8б-
--м8в8
-8м8в-
--м8г8
-8м8г-
--м8ґ8
-8м8ґ-
--м8д8
-8м8д-
--м8е8
-8м8е-
--м8є8
-8м8є-
--м8ж8
-8м8ж-
--м8з8
-8м8з-
--м8и8
-8м8и-
--м8і8
-8м8і-
--м8ї8
-8м8ї-
--м8й8
-8м8й-
--м8к8
-8м8к-
--м8л8
-8м8л-
--м8м8
-8м8м-
--м8н8
-8м8н-
--м8о8
-8м8о-
--м8п8
-8м8п-
--м8р8
-8м8р-
--м8с8
-8м8с-
--м8т8
-8м8т-
--м8у8
-8м8у-
--м8ф8
-8м8ф-
--м8х8
-8м8х-
--м8ц8
-8м8ц-
--м8ч8
-8м8ч-
--м8ш8
-8м8ш-
--м8щ8
-8м8щ-
--м8ь8
-8м8ь-
--м8ю8
-8м8ю-
--м8я8
-8м8я-
--м8'8
-8м8'-
--н8а8
-8н8а-
--н8б8
-8н8б-
--н8в8
-8н8в-
--н8г8
-8н8г-
--н8ґ8
-8н8ґ-
--н8д8
-8н8д-
--н8е8
-8н8е-
--н8є8
-8н8є-
--н8ж8
-8н8ж-
--н8з8
-8н8з-
--н8и8
-8н8и-
--н8і8
-8н8і-
--н8ї8
-8н8ї-
--н8й8
-8н8й-
--н8к8
-8н8к-
--н8л8
-8н8л-
--н8м8
-8н8м-
--н8н8
-8н8н-
--н8о8
-8н8о-
--н8п8
-8н8п-
--н8р8
-8н8р-
--н8с8
-8н8с-
--н8т8
-8н8т-
--н8у8
-8н8у-
--н8ф8
-8н8ф-
--н8х8
-8н8х-
--н8ц8
-8н8ц-
--н8ч8
-8н8ч-
--н8ш8
-8н8ш-
--н8щ8
-8н8щ-
--н8ь8
-8н8ь-
--н8ю8
-8н8ю-
--н8я8
-8н8я-
--н8'8
-8н8'-
--о8а8
-8о8а-
--о8б8
-8о8б-
--о8в8
-8о8в-
--о8г8
-8о8г-
--о8ґ8
-8о8ґ-
--о8д8
-8о8д-
--о8е8
-8о8е-
--о8є8
-8о8є-
--о8ж8
-8о8ж-
--о8з8
-8о8з-
--о8и8
-8о8и-
--о8і8
-8о8і-
--о8ї8
-8о8ї-
--о8й8
-8о8й-
--о8к8
-8о8к-
--о8л8
-8о8л-
--о8м8
-8о8м-
--о8н8
-8о8н-
--о8о8
-8о8о-
--о8п8
-8о8п-
--о8р8
-8о8р-
--о8с8
-8о8с-
--о8т8
-8о8т-
--о8у8
-8о8у-
--о8ф8
-8о8ф-
--о8х8
-8о8х-
--о8ц8
-8о8ц-
--о8ч8
-8о8ч-
--о8ш8
-8о8ш-
--о8щ8
-8о8щ-
--о8ь8
-8о8ь-
--о8ю8
-8о8ю-
--о8я8
-8о8я-
--о8'8
-8о8'-
--п8а8
-8п8а-
--п8б8
-8п8б-
--п8в8
-8п8в-
--п8г8
-8п8г-
--п8ґ8
-8п8ґ-
--п8д8
-8п8д-
--п8е8
-8п8е-
--п8є8
-8п8є-
--п8ж8
-8п8ж-
--п8з8
-8п8з-
--п8и8
-8п8и-
--п8і8
-8п8і-
--п8ї8
-8п8ї-
--п8й8
-8п8й-
--п8к8
-8п8к-
--п8л8
-8п8л-
--п8м8
-8п8м-
--п8н8
-8п8н-
--п8о8
-8п8о-
--п8п8
-8п8п-
--п8р8
-8п8р-
--п8с8
-8п8с-
--п8т8
-8п8т-
--п8у8
-8п8у-
--п8ф8
-8п8ф-
--п8х8
-8п8х-
--п8ц8
-8п8ц-
--п8ч8
-8п8ч-
--п8ш8
-8п8ш-
--п8щ8
-8п8щ-
--п8ь8
-8п8ь-
--п8ю8
-8п8ю-
--п8я8
-8п8я-
--п8'8
-8п8'-
--р8а8
-8р8а-
--р8б8
-8р8б-
--р8в8
-8р8в-
--р8г8
-8р8г-
--р8ґ8
-8р8ґ-
--р8д8
-8р8д-
--р8е8
-8р8е-
--р8є8
-8р8є-
--р8ж8
-8р8ж-
--р8з8
-8р8з-
--р8и8
-8р8и-
--р8і8
-8р8і-
--р8ї8
-8р8ї-
--р8й8
-8р8й-
--р8к8
-8р8к-
--р8л8
-8р8л-
--р8м8
-8р8м-
--р8н8
-8р8н-
--р8о8
-8р8о-
--р8п8
-8р8п-
--р8р8
-8р8р-
--р8с8
-8р8с-
--р8т8
-8р8т-
--р8у8
-8р8у-
--р8ф8
-8р8ф-
--р8х8
-8р8х-
--р8ц8
-8р8ц-
--р8ч8
-8р8ч-
--р8ш8
-8р8ш-
--р8щ8
-8р8щ-
--р8ь8
-8р8ь-
--р8ю8
-8р8ю-
--р8я8
-8р8я-
--р8'8
-8р8'-
--с8а8
-8с8а-
--с8б8
-8с8б-
--с8в8
-8с8в-
--с8г8
-8с8г-
--с8ґ8
-8с8ґ-
--с8д8
-8с8д-
--с8е8
-8с8е-
--с8є8
-8с8є-
--с8ж8
-8с8ж-
--с8з8
-8с8з-
--с8и8
-8с8и-
--с8і8
-8с8і-
--с8ї8
-8с8ї-
--с8й8
-8с8й-
--с8к8
-8с8к-
--с8л8
-8с8л-
--с8м8
-8с8м-
--с8н8
-8с8н-
--с8о8
-8с8о-
--с8п8
-8с8п-
--с8р8
-8с8р-
--с8с8
-8с8с-
--с8т8
-8с8т-
--с8у8
-8с8у-
--с8ф8
-8с8ф-
--с8х8
-8с8х-
--с8ц8
-8с8ц-
--с8ч8
-8с8ч-
--с8ш8
-8с8ш-
--с8щ8
-8с8щ-
--с8ь8
-8с8ь-
--с8ю8
-8с8ю-
--с8я8
-8с8я-
--с8'8
-8с8'-
--т8а8
-8т8а-
--т8б8
-8т8б-
--т8в8
-8т8в-
--т8г8
-8т8г-
--т8ґ8
-8т8ґ-
--т8д8
-8т8д-
--т8е8
-8т8е-
--т8є8
-8т8є-
--т8ж8
-8т8ж-
--т8з8
-8т8з-
--т8и8
-8т8и-
--т8і8
-8т8і-
--т8ї8
-8т8ї-
--т8й8
-8т8й-
--т8к8
-8т8к-
--т8л8
-8т8л-
--т8м8
-8т8м-
--т8н8
-8т8н-
--т8о8
-8т8о-
--т8п8
-8т8п-
--т8р8
-8т8р-
--т8с8
-8т8с-
--т8т8
-8т8т-
--т8у8
-8т8у-
--т8ф8
-8т8ф-
--т8х8
-8т8х-
--т8ц8
-8т8ц-
--т8ч8
-8т8ч-
--т8ш8
-8т8ш-
--т8щ8
-8т8щ-
--т8ь8
-8т8ь-
--т8ю8
-8т8ю-
--т8я8
-8т8я-
--т8'8
-8т8'-
--у8а8
-8у8а-
--у8б8
-8у8б-
--у8в8
-8у8в-
--у8г8
-8у8г-
--у8ґ8
-8у8ґ-
--у8д8
-8у8д-
--у8е8
-8у8е-
--у8є8
-8у8є-
--у8ж8
-8у8ж-
--у8з8
-8у8з-
--у8и8
-8у8и-
--у8і8
-8у8і-
--у8ї8
-8у8ї-
--у8й8
-8у8й-
--у8к8
-8у8к-
--у8л8
-8у8л-
--у8м8
-8у8м-
--у8н8
-8у8н-
--у8о8
-8у8о-
--у8п8
-8у8п-
--у8р8
-8у8р-
--у8с8
-8у8с-
--у8т8
-8у8т-
--у8у8
-8у8у-
--у8ф8
-8у8ф-
--у8х8
-8у8х-
--у8ц8
-8у8ц-
--у8ч8
-8у8ч-
--у8ш8
-8у8ш-
--у8щ8
-8у8щ-
--у8ь8
-8у8ь-
--у8ю8
-8у8ю-
--у8я8
-8у8я-
--у8'8
-8у8'-
--ф8а8
-8ф8а-
--ф8б8
-8ф8б-
--ф8в8
-8ф8в-
--ф8г8
-8ф8г-
--ф8ґ8
-8ф8ґ-
--ф8д8
-8ф8д-
--ф8е8
-8ф8е-
--ф8є8
-8ф8є-
--ф8ж8
-8ф8ж-
--ф8з8
-8ф8з-
--ф8и8
-8ф8и-
--ф8і8
-8ф8і-
--ф8ї8
-8ф8ї-
--ф8й8
-8ф8й-
--ф8к8
-8ф8к-
--ф8л8
-8ф8л-
--ф8м8
-8ф8м-
--ф8н8
-8ф8н-
--ф8о8
-8ф8о-
--ф8п8
-8ф8п-
--ф8р8
-8ф8р-
--ф8с8
-8ф8с-
--ф8т8
-8ф8т-
--ф8у8
-8ф8у-
--ф8ф8
-8ф8ф-
--ф8х8
-8ф8х-
--ф8ц8
-8ф8ц-
--ф8ч8
-8ф8ч-
--ф8ш8
-8ф8ш-
--ф8щ8
-8ф8щ-
--ф8ь8
-8ф8ь-
--ф8ю8
-8ф8ю-
--ф8я8
-8ф8я-
--ф8'8
-8ф8'-
--х8а8
-8х8а-
--х8б8
-8х8б-
--х8в8
-8х8в-
--х8г8
-8х8г-
--х8ґ8
-8х8ґ-
--х8д8
-8х8д-
--х8е8
-8х8е-
--х8є8
-8х8є-
--х8ж8
-8х8ж-
--х8з8
-8х8з-
--х8и8
-8х8и-
--х8і8
-8х8і-
--х8ї8
-8х8ї-
--х8й8
-8х8й-
--х8к8
-8х8к-
--х8л8
-8х8л-
--х8м8
-8х8м-
--х8н8
-8х8н-
--х8о8
-8х8о-
--х8п8
-8х8п-
--х8р8
-8х8р-
--х8с8
-8х8с-
--х8т8
-8х8т-
--х8у8
-8х8у-
--х8ф8
-8х8ф-
--х8х8
-8х8х-
--х8ц8
-8х8ц-
--х8ч8
-8х8ч-
--х8ш8
-8х8ш-
--х8щ8
-8х8щ-
--х8ь8
-8х8ь-
--х8ю8
-8х8ю-
--х8я8
-8х8я-
--х8'8
-8х8'-
--ц8а8
-8ц8а-
--ц8б8
-8ц8б-
--ц8в8
-8ц8в-
--ц8г8
-8ц8г-
--ц8ґ8
-8ц8ґ-
--ц8д8
-8ц8д-
--ц8е8
-8ц8е-
--ц8є8
-8ц8є-
--ц8ж8
-8ц8ж-
--ц8з8
-8ц8з-
--ц8и8
-8ц8и-
--ц8і8
-8ц8і-
--ц8ї8
-8ц8ї-
--ц8й8
-8ц8й-
--ц8к8
-8ц8к-
--ц8л8
-8ц8л-
--ц8м8
-8ц8м-
--ц8н8
-8ц8н-
--ц8о8
-8ц8о-
--ц8п8
-8ц8п-
--ц8р8
-8ц8р-
--ц8с8
-8ц8с-
--ц8т8
-8ц8т-
--ц8у8
-8ц8у-
--ц8ф8
-8ц8ф-
--ц8х8
-8ц8х-
--ц8ц8
-8ц8ц-
--ц8ч8
-8ц8ч-
--ц8ш8
-8ц8ш-
--ц8щ8
-8ц8щ-
--ц8ь8
-8ц8ь-
--ц8ю8
-8ц8ю-
--ц8я8
-8ц8я-
--ц8'8
-8ц8'-
--ч8а8
-8ч8а-
--ч8б8
-8ч8б-
--ч8в8
-8ч8в-
--ч8г8
-8ч8г-
--ч8ґ8
-8ч8ґ-
--ч8д8
-8ч8д-
--ч8е8
-8ч8е-
--ч8є8
-8ч8є-
--ч8ж8
-8ч8ж-
--ч8з8
-8ч8з-
--ч8и8
-8ч8и-
--ч8і8
-8ч8і-
--ч8ї8
-8ч8ї-
--ч8й8
-8ч8й-
--ч8к8
-8ч8к-
--ч8л8
-8ч8л-
--ч8м8
-8ч8м-
--ч8н8
-8ч8н-
--ч8о8
-8ч8о-
--ч8п8
-8ч8п-
--ч8р8
-8ч8р-
--ч8с8
-8ч8с-
--ч8т8
-8ч8т-
--ч8у8
-8ч8у-
--ч8ф8
-8ч8ф-
--ч8х8
-8ч8х-
--ч8ц8
-8ч8ц-
--ч8ч8
-8ч8ч-
--ч8ш8
-8ч8ш-
--ч8щ8
-8ч8щ-
--ч8ь8
-8ч8ь-
--ч8ю8
-8ч8ю-
--ч8я8
-8ч8я-
--ч8'8
-8ч8'-
--ш8а8
-8ш8а-
--ш8б8
-8ш8б-
--ш8в8
-8ш8в-
--ш8г8
-8ш8г-
--ш8ґ8
-8ш8ґ-
--ш8д8
-8ш8д-
--ш8е8
-8ш8е-
--ш8є8
-8ш8є-
--ш8ж8
-8ш8ж-
--ш8з8
-8ш8з-
--ш8и8
-8ш8и-
--ш8і8
-8ш8і-
--ш8ї8
-8ш8ї-
--ш8й8
-8ш8й-
--ш8к8
-8ш8к-
--ш8л8
-8ш8л-
--ш8м8
-8ш8м-
--ш8н8
-8ш8н-
--ш8о8
-8ш8о-
--ш8п8
-8ш8п-
--ш8р8
-8ш8р-
--ш8с8
-8ш8с-
--ш8т8
-8ш8т-
--ш8у8
-8ш8у-
--ш8ф8
-8ш8ф-
--ш8х8
-8ш8х-
--ш8ц8
-8ш8ц-
--ш8ч8
-8ш8ч-
--ш8ш8
-8ш8ш-
--ш8щ8
-8ш8щ-
--ш8ь8
-8ш8ь-
--ш8ю8
-8ш8ю-
--ш8я8
-8ш8я-
--ш8'8
-8ш8'-
--щ8а8
-8щ8а-
--щ8б8
-8щ8б-
--щ8в8
-8щ8в-
--щ8г8
-8щ8г-
--щ8ґ8
-8щ8ґ-
--щ8д8
-8щ8д-
--щ8е8
-8щ8е-
--щ8є8
-8щ8є-
--щ8ж8
-8щ8ж-
--щ8з8
-8щ8з-
--щ8и8
-8щ8и-
--щ8і8
-8щ8і-
--щ8ї8
-8щ8ї-
--щ8й8
-8щ8й-
--щ8к8
-8щ8к-
--щ8л8
-8щ8л-
--щ8м8
-8щ8м-
--щ8н8
-8щ8н-
--щ8о8
-8щ8о-
--щ8п8
-8щ8п-
--щ8р8
-8щ8р-
--щ8с8
-8щ8с-
--щ8т8
-8щ8т-
--щ8у8
-8щ8у-
--щ8ф8
-8щ8ф-
--щ8х8
-8щ8х-
--щ8ц8
-8щ8ц-
--щ8ч8
-8щ8ч-
--щ8ш8
-8щ8ш-
--щ8щ8
-8щ8щ-
--щ8ь8
-8щ8ь-
--щ8ю8
-8щ8ю-
--щ8я8
-8щ8я-
--щ8'8
-8щ8'-
--ь8а8
-8ь8а-
--ь8б8
-8ь8б-
--ь8в8
-8ь8в-
--ь8г8
-8ь8г-
--ь8ґ8
-8ь8ґ-
--ь8д8
-8ь8д-
--ь8е8
-8ь8е-
--ь8є8
-8ь8є-
--ь8ж8
-8ь8ж-
--ь8з8
-8ь8з-
--ь8и8
-8ь8и-
--ь8і8
-8ь8і-
--ь8ї8
-8ь8ї-
--ь8й8
-8ь8й-
--ь8к8
-8ь8к-
--ь8л8
-8ь8л-
--ь8м8
-8ь8м-
--ь8н8
-8ь8н-
--ь8о8
-8ь8о-
--ь8п8
-8ь8п-
--ь8р8
-8ь8р-
--ь8с8
-8ь8с-
--ь8т8
-8ь8т-
--ь8у8
-8ь8у-
--ь8ф8
-8ь8ф-
--ь8х8
-8ь8х-
--ь8ц8
-8ь8ц-
--ь8ч8
-8ь8ч-
--ь8ш8
-8ь8ш-
--ь8щ8
-8ь8щ-
--ь8ь8
-8ь8ь-
--ь8ю8
-8ь8ю-
--ь8я8
-8ь8я-
--ь8'8
-8ь8'-
--ю8а8
-8ю8а-
--ю8б8
-8ю8б-
--ю8в8
-8ю8в-
--ю8г8
-8ю8г-
--ю8ґ8
-8ю8ґ-
--ю8д8
-8ю8д-
--ю8е8
-8ю8е-
--ю8є8
-8ю8є-
--ю8ж8
-8ю8ж-
--ю8з8
-8ю8з-
--ю8и8
-8ю8и-
--ю8і8
-8ю8і-
--ю8ї8
-8ю8ї-
--ю8й8
-8ю8й-
--ю8к8
-8ю8к-
--ю8л8
-8ю8л-
--ю8м8
-8ю8м-
--ю8н8
-8ю8н-
--ю8о8
-8ю8о-
--ю8п8
-8ю8п-
--ю8р8
-8ю8р-
--ю8с8
-8ю8с-
--ю8т8
-8ю8т-
--ю8у8
-8ю8у-
--ю8ф8
-8ю8ф-
--ю8х8
-8ю8х-
--ю8ц8
-8ю8ц-
--ю8ч8
-8ю8ч-
--ю8ш8
-8ю8ш-
--ю8щ8
-8ю8щ-
--ю8ь8
-8ю8ь-
--ю8ю8
-8ю8ю-
--ю8я8
-8ю8я-
--ю8'8
-8ю8'-
--я8а8
-8я8а-
--я8б8
-8я8б-
--я8в8
-8я8в-
--я8г8
-8я8г-
--я8ґ8
-8я8ґ-
--я8д8
-8я8д-
--я8е8
-8я8е-
--я8є8
-8я8є-
--я8ж8
-8я8ж-
--я8з8
-8я8з-
--я8и8
-8я8и-
--я8і8
-8я8і-
--я8ї8
-8я8ї-
--я8й8
-8я8й-
--я8к8
-8я8к-
--я8л8
-8я8л-
--я8м8
-8я8м-
--я8н8
-8я8н-
--я8о8
-8я8о-
--я8п8
-8я8п-
--я8р8
-8я8р-
--я8с8
-8я8с-
--я8т8
-8я8т-
--я8у8
-8я8у-
--я8ф8
-8я8ф-
--я8х8
-8я8х-
--я8ц8
-8я8ц-
--я8ч8
-8я8ч-
--я8ш8
-8я8ш-
--я8щ8
-8я8щ-
--я8ь8
-8я8ь-
--я8ю8
-8я8ю-
--я8я8
-8я8я-
--я8'8
-8я8'-
--'8а8
-8'8а-
--'8б8
-8'8б-
--'8в8
-8'8в-
--'8г8
-8'8г-
--'8ґ8
-8'8ґ-
--'8д8
-8'8д-
--'8е8
-8'8е-
--'8є8
-8'8є-
--'8ж8
-8'8ж-
--'8з8
-8'8з-
--'8и8
-8'8и-
--'8і8
-8'8і-
--'8ї8
-8'8ї-
--'8й8
-8'8й-
--'8к8
-8'8к-
--'8л8
-8'8л-
--'8м8
-8'8м-
--'8н8
-8'8н-
--'8о8
-8'8о-
--'8п8
-8'8п-
--'8р8
-8'8р-
--'8с8
-8'8с-
--'8т8
-8'8т-
--'8у8
-8'8у-
--'8ф8
-8'8ф-
--'8х8
-8'8х-
--'8ц8
-8'8ц-
--'8ч8
-8'8ч-
--'8ш8
-8'8ш-
--'8щ8
-8'8щ-
--'8ь8
-8'8ь-
--'8ю8
-8'8ю-
--'8я8
-8'8я-
--'8'8
-8'8'-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-us.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-us.hyp
deleted file mode 100644
index a9f901f3f4d..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-us.hyp
+++ /dev/null
@@ -1,21 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-us.rme
-
-% used: a b c d e f g h i j l m n o p r s t u y z
-
-\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} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-us.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-us.pat
deleted file mode 100644
index f4155353cf8..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-us.pat
+++ /dev/null
@@ -1,4945 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-us.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u v w x y z
-
-\patterns{
-.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} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-zh.hyp b/Master/texmf-dist/tex/context/patterns/mkii/lang-zh.hyp
deleted file mode 100644
index aa58c19c2be..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-zh.hyp
+++ /dev/null
@@ -1,8 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-zh.rme
-
-% used:
-
-\hyphenation{
-} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkii/lang-zh.pat b/Master/texmf-dist/tex/context/patterns/mkii/lang-zh.pat
deleted file mode 100644
index c00eaeccdf2..00000000000
--- a/Master/texmf-dist/tex/context/patterns/mkii/lang-zh.pat
+++ /dev/null
@@ -1,691 +0,0 @@
-% generated by mtxrun --script pattern --convert
-
-% for comment and copyright, see lang-zh.rme
-
-% used: a b c d e f g h i j k l m n o p q r s t u w x y z à á è é ì í ò ó ù ú ü ā ē ě ī ō ū ǎ ǐ ǒ ǔ ǖ ǘ ǚ ǜ
-
-\patterns{
-a1b
-ā1b
-á1b
-ǎ1b
-à1b
-a1c
-ā1c
-á1c
-ǎ1c
-à1c
-a1d
-ā1d
-á1d
-ǎ1d
-à1d
-a1f
-ā1f
-á1f
-ǎ1f
-à1f
-a1g
-ā1g
-á1g
-ǎ1g
-à1g
-a1h
-ā1h
-á1h
-ǎ1h
-à1h
-a1j
-ā1j
-á1j
-ǎ1j
-à1j
-a1k
-ā1k
-á1k
-ǎ1k
-à1k
-a1l
-ā1l
-á1l
-ǎ1l
-à1l
-a1m
-ā1m
-á1m
-ǎ1m
-à1m
-a1p
-ā1p
-á1p
-ǎ1p
-à1p
-a1q
-ā1q
-á1q
-ǎ1q
-à1q
-a1r
-ā1r
-á1r
-ǎ1r
-à1r
-a1s
-ā1s
-á1s
-ǎ1s
-à1s
-a1t
-ā1t
-á1t
-ǎ1t
-à1t
-a1w
-ā1w
-á1w
-ǎ1w
-à1w
-a1x
-ā1x
-á1x
-ǎ1x
-à1x
-a1y
-ā1y
-á1y
-ǎ1y
-à1y
-a1z
-ā1z
-á1z
-ǎ1z
-à1z
-e1b
-ē1b
-é1b
-ě1b
-è1b
-e1c
-ē1c
-é1c
-ě1c
-è1c
-e1d
-ē1d
-é1d
-ě1d
-è1d
-e1f
-ē1f
-é1f
-ě1f
-è1f
-e1g
-ē1g
-é1g
-ě1g
-è1g
-e1h
-ē1h
-é1h
-ě1h
-è1h
-e1j
-ē1j
-é1j
-ě1j
-è1j
-e1k
-ē1k
-é1k
-ě1k
-è1k
-e1l
-ē1l
-é1l
-ě1l
-è1l
-e1m
-ē1m
-é1m
-ě1m
-è1m
-e1p
-ē1p
-é1p
-ě1p
-è1p
-e1q
-ē1q
-é1q
-ě1q
-è1q
-e1r
-ē1r
-é1r
-ě1r
-è1r
-e1s
-ē1s
-é1s
-ě1s
-è1s
-e1t
-ē1t
-é1t
-ě1t
-è1t
-e1w
-ē1w
-é1w
-ě1w
-è1w
-e1x
-ē1x
-é1x
-ě1x
-è1x
-e1y
-ē1y
-é1y
-ě1y
-è1y
-e1z
-ē1z
-é1z
-ě1z
-è1z
-1ga
-1gā
-1gá
-1gǎ
-1gà
-g1b
-g1c
-g1d
-1ge
-1gē
-1gé
-1gě
-1gè
-g1f
-g1g
-g1h
-g1j
-g1k
-g1l
-g1m
-g1n
-1go
-1gō
-1gó
-1gǒ
-1gò
-g1p
-g1q
-g1r
-g1s
-g1t
-1gu
-1gū
-1gú
-1gǔ
-1gù
-g1w
-g1x
-g1y
-g1z
-i1b
-ī1b
-í1b
-ǐ1b
-ì1b
-i1c
-ī1c
-í1c
-ǐ1c
-ì1c
-i1d
-ī1d
-í1d
-ǐ1d
-ì1d
-i1f
-ī1f
-í1f
-ǐ1f
-ì1f
-i1g
-ī1g
-í1g
-ǐ1g
-ì1g
-i1h
-ī1h
-í1h
-ǐ1h
-ì1h
-i1j
-ī1j
-í1j
-ǐ1j
-ì1j
-i1k
-ī1k
-í1k
-ǐ1k
-ì1k
-i1l
-ī1l
-í1l
-ǐ1l
-ì1l
-i1m
-ī1m
-í1m
-ǐ1m
-ì1m
-i1p
-ī1p
-í1p
-ǐ1p
-ì1p
-i1q
-ī1q
-í1q
-ǐ1q
-ì1q
-i1r
-ī1r
-í1r
-ǐ1r
-ì1r
-i1s
-ī1s
-í1s
-ǐ1s
-ì1s
-i1t
-ī1t
-í1t
-ǐ1t
-ì1t
-i1w
-ī1w
-í1w
-ǐ1w
-ì1w
-i1x
-ī1x
-í1x
-ǐ1x
-ì1x
-i1y
-ī1y
-í1y
-ǐ1y
-ì1y
-i1z
-ī1z
-í1z
-ǐ1z
-ì1z
-1na
-1nā
-1ná
-1nǎ
-1nà
-n1b
-n1c
-n1d
-1ne
-1nē
-1né
-1ně
-1nè
-n1f
-n1h
-1ni
-1nī
-1ní
-1nǐ
-1nì
-n1j
-n1k
-n1l
-n1m
-n1n
-1no
-1nō
-1nó
-1nǒ
-1nò
-n1p
-n1q
-n1r
-n1s
-n1t
-1nu
-1nū
-1nú
-1nǔ
-1nù
-1nü
-1nǖ
-1nǘ
-1nǚ
-1nǜ
-n1w
-n1x
-n1y
-n1z
-o1b
-ō1b
-ó1b
-ǒ1b
-ò1b
-o1c
-ō1c
-ó1c
-ǒ1c
-ò1c
-o1d
-ō1d
-ó1d
-ǒ1d
-ò1d
-o1f
-ō1f
-ó1f
-ǒ1f
-ò1f
-o1g
-ō1g
-ó1g
-ǒ1g
-ò1g
-o1h
-ō1h
-ó1h
-ǒ1h
-ò1h
-o1j
-ō1j
-ó1j
-ǒ1j
-ò1j
-o1k
-ō1k
-ó1k
-ǒ1k
-ò1k
-o1l
-ō1l
-ó1l
-ǒ1l
-ò1l
-o1m
-ō1m
-ó1m
-ǒ1m
-ò1m
-o1p
-ō1p
-ó1p
-ǒ1p
-ò1p
-o1q
-ō1q
-ó1q
-ǒ1q
-ò1q
-o1r
-ō1r
-ó1r
-ǒ1r
-ò1r
-o1s
-ō1s
-ó1s
-ǒ1s
-ò1s
-o1t
-ō1t
-ó1t
-ǒ1t
-ò1t
-o1w
-ō1w
-ó1w
-ǒ1w
-ò1w
-o1x
-ō1x
-ó1x
-ǒ1x
-ò1x
-o1y
-ō1y
-ó1y
-ǒ1y
-ò1y
-o1z
-ō1z
-ó1z
-ǒ1z
-ò1z
-2r1b
-2r1c
-2r1d
-2r1f
-2r1g
-2r1h
-2r1j
-2r1k
-2r1l
-2r1m
-2r1n
-2r1p
-2r1q
-2r1r
-2r1s
-2r1t
-2r1w
-2r1x
-2r1y
-2r1z
-u1b
-ū1b
-ú1b
-ǔ1b
-ù1b
-u1c
-ū1c
-ú1c
-ǔ1c
-ù1c
-u1d
-ū1d
-ú1d
-ǔ1d
-ù1d
-u1f
-ū1f
-ú1f
-ǔ1f
-ù1f
-u1g
-ū1g
-ú1g
-ǔ1g
-ù1g
-u1h
-ū1h
-ú1h
-ǔ1h
-ù1h
-u1j
-ū1j
-ú1j
-ǔ1j
-ù1j
-u1k
-ū1k
-ú1k
-ǔ1k
-ù1k
-u1l
-ū1l
-ú1l
-ǔ1l
-ù1l
-u1m
-ū1m
-ú1m
-ǔ1m
-ù1m
-u1p
-ū1p
-ú1p
-ǔ1p
-ù1p
-u1q
-ū1q
-ú1q
-ǔ1q
-ù1q
-u1r
-ū1r
-ú1r
-ǔ1r
-ù1r
-u1s
-ū1s
-ú1s
-ǔ1s
-ù1s
-u1t
-ū1t
-ú1t
-ǔ1t
-ù1t
-u1w
-ū1w
-ú1w
-ǔ1w
-ù1w
-u1x
-ū1x
-ú1x
-ǔ1x
-ù1x
-u1y
-ū1y
-ú1y
-ǔ1y
-ù1y
-u1z
-ū1z
-ú1z
-ǔ1z
-ù1z
-ü1b
-ǖ1b
-ǘ1b
-ǚ1b
-ǜ1b
-ü1c
-ǖ1c
-ǘ1c
-ǚ1c
-ǜ1c
-ü1d
-ǖ1d
-ǘ1d
-ǚ1d
-ǜ1d
-ü1f
-ǖ1f
-ǘ1f
-ǚ1f
-ǜ1f
-ü1g
-ǖ1g
-ǘ1g
-ǚ1g
-ǜ1g
-ü1h
-ǖ1h
-ǘ1h
-ǚ1h
-ǜ1h
-ü1j
-ǖ1j
-ǘ1j
-ǚ1j
-ǜ1j
-ü1k
-ǖ1k
-ǘ1k
-ǚ1k
-ǜ1k
-ü1l
-ǖ1l
-ǘ1l
-ǚ1l
-ǜ1l
-ü1m
-ǖ1m
-ǘ1m
-ǚ1m
-ǜ1m
-ü1n
-ǖ1n
-ǘ1n
-ǚ1n
-ǜ1n
-ü1p
-ǖ1p
-ǘ1p
-ǚ1p
-ǜ1p
-ü1q
-ǖ1q
-ǘ1q
-ǚ1q
-ǜ1q
-ü1r
-ǖ1r
-ǘ1r
-ǚ1r
-ǜ1r
-ü1s
-ǖ1s
-ǘ1s
-ǚ1s
-ǜ1s
-ü1t
-ǖ1t
-ǘ1t
-ǚ1t
-ǜ1t
-ü1w
-ǖ1w
-ǘ1w
-ǚ1w
-ǜ1w
-ü1x
-ǖ1x
-ǘ1x
-ǚ1x
-ǜ1x
-ü1y
-ǖ1y
-ǘ1y
-ǚ1y
-ǜ1y
-ü1z
-ǖ1z
-ǘ1z
-ǚ1z
-ǜ1z} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-bn.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-bn.lua
new file mode 100644
index 00000000000..8e7e53b9cdc
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-bn.lua
@@ -0,0 +1,20 @@
+return {
+ ["comment"]="% generated by mtxrun --script pattern --convert",
+ ["exceptions"]={
+ ["n"]=0,
+ },
+ ["metadata"]={
+ ["mnemonic"]="bn",
+ ["source"]="hyph-bn",
+ ["texcomment"]="% no comment",
+ },
+ ["patterns"]={
+ ["characters"]="ঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣ‌‍",
+ ["data"]="2‍2 1‌1 অ1 আ1 ই1 ঈ1 উ1 ঊ1 ঋ1 ৠ1 ঌ1 ৡ1 এ1 ঐ1 ও1 ঔ1 া1 ি1 ী1 ু1 ূ1 ৃ1 ৄ1 ৢ1 ৣ1 ে1 ৈ1 ো1 ৌ1 2়2 ৗ1 1ক 1খ 1গ 1ঘ 1ঙ 1চ 1ছ 1জ 1ঝ 1ঞ 1ট 1ঠ 1ড 1ড় 1ঢ 1ঢ় 1ণ 1ত 1থ 1দ 1ধ 1ন 1প 1ফ 1ব 1ভ 1ম 1য 1য় 1র 1ল 1শ 1ষ 1স 1হ ৎ1 2ঃ1 2ং1 2ঁ1 2ঽ1 2্2",
+ ["lefthyphenmin"]=1,
+ ["length"]=367,
+ ["n"]=72,
+ ["righthyphenmax"]=1,
+ },
+ ["version"]="1.001",
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-de.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-de.lua
index 65661c4aa3e..dee6a5d4adc 100644
--- a/Master/texmf-dist/tex/context/patterns/mkiv/lang-de.lua
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-de.lua
@@ -10,10 +10,10 @@ return {
},
["patterns"]={
["characters"]="abcdefghijklmnopqrstuvwxyzßàáâäçèéêëíïñóôöü",
- ["data"]=".ab1a .ab3l .abo2 .ab3ol .ab1or .abs2 .ab3si .ab3u .ach2sp .ade3n .ae3 .aft2 .ago1 .ag4r .ag2u .ai2s .akt2a .al2e .ale3u4 .al3lei .al3len .al3li .al3se .al4st .al2tei .al4tel .al4terp .alter4s3 .al2tra .alt3s4 .al2tu .ampe4 .amt2s1 .ana1c .an4a3t .an3d2 .anden4k .an1e .ang2 .an3g4li .an3go .angs4 .angst3 .ani2s .an3k4 .an3s2 .an4si. .an2tar .an3z4 .ap3p4le. .ari1e .ar3k2a .ar2m3ac .ar4mun .ar2sc .ar2tan .ar4t3ei .ar4t3erh .ar2t1r .arz2 .as4b .asbe2 .as2ko .as3ta .as4ta. .as4tat .as3tr .as2zen .ata1 .at2h .au3d .au4f3 .au6fac .au6fas .aufs4 .au2s3 .aussen6du .auß2 .ax2 .är4schl .ät2h .ät2s .bahn3 .baus4 .be3erb .beige2 .bei4ge. .beige4s .bel2a .be3r2a .ber2e .ber2g3a .ber4g3e4b .ber4gin .ber2g3r .ber2tr .bi4os .bi2t .bit1a .blau3 .bleis4 .boge2 .bogen3 .bogens4 .bo4s3k .brut3s .bu4cher .bu2ser .bü3b .bübe3 .by4t .ca2s3t .ce2ra .ch2 .champi4o .char4mes .chi3er .ch6lor .dab4 .da4ch3en .da2r1 .dar3in .dar2m1 .da4te. .da4tes .de2al .de1i .dein2 .de3lo .de3na .den2ka .den2kl .den2ko .de1o2 .de3r4en .de1s .des4pe .des2t .diä2r .di3el .die3n2e .diens2 .dien4st .diensta6d .do3b .do4mo .do3pe .dor2f1 .do2tr .dys3 .ebe2r1 .eg2o .eh2e .ehe1i .ehe5n .eichs4 .ei3e4 .ei3f2e .ei4fr .ei3k .ei4na .ein3d .ei2ne2 .ein3eb .ei3n4erl .ein3sp .eise4 .ei2sp .eis3s2 .ei2s5t .ei4tr .eke2 .ek3li .el2a .el2bi .el2bl .elb3s .el2fei .el2fl .em3m2 .en1 .en4da .en2d3er2 .en2d3r .end3s .en4dü .en3ga .en2gl .enk2 .enn2 .enns3 .ent3 .en4ta .en4tei .en5thalp .en4tio .en4t1r .en5trop .ents4 .epi3c .er2bei .er6brecht .er2bu .er2dan .erden4k .er2d3er .er1e .ere3c .er2em .erf4 .er1i .er4stein .erster4 .er6stritt. .er8stritten. .er2z3el .er2zen2 .es3p .es3ta2 .est4e .es3th .es3t3r .et2s .eu3 .eug4 .eur4 .ext4 .fe3la3 .feri3 .fer2no .fe2st .fi3d .fi3est .fi2le. .fi2len .fi2s .flu2g1 .fs2 .fu2sc .ga4me. .gan2ga .ga2s1 .gas3e .ga4sp .ga4t .gd2 .gebe2a .geb2l .gee4 .gel2b3r .gel2d1 .ge3lu .ge5nar .gen4aug .ge3n4e .gene5cke .ge3n2o .ge3r2a .ger2e .ge3ro .ger4s .ge3sa .ge3ste .glan2 .glanz3 .gs4t .gus2 .halt4e .han2f .hau2t1 .he2bei .he2r .he4r3an .he3rat .her4b3ra .he3rer .he3ri .he4r3inn .hin3u .hips4 .hi4s .hof1 .ho4fen .ho4met .hus3s .ia2 .ia4t .im2a .ima2ge .imm2 .im5mu .in1 .ind2 .in3gl .ink2 .in3n2e .in3sk .in3t2 .inu1 .io4d .ioni1 .ire3 .is2a .is3ta .istri3 .it2h .iv2 .joni1 .ka2b3l .ka2i .ka5ka .kal2a .ka3le .ka3t2a .kat3i .ka4ti4o .ki2e .ko3b .kopf1 .kor2da .kraf2 .ks2 .kus2 .la3be .lan4de4mi .lat3s .le4ar .le2gas .leh4me .le3n2i .lich6ter6sc .li4f .li2ve. .lo2g3in .lo2sc .lo4sk .loss4 .lo2tr .lo3ver .luster4 .lus4tr .lut2h .ly2s3 .ma3d .mal4e .mani2e .ma2st .mat4c .ma5tr .matu3 .md2 .mel2a .me3ne .me3no .men4schl .men4schw .ment2 .mes4sp .mi2f .mik4 .mil2z1 .mi2s .mi4t1 .mm2 .na3no .na3t .näs1c .nebe4n .ner2f .ne1ro .ne2s .nich2 .nicht3e .ni2e .ni3k4l .nul2 .nus2 .oa3 .ob1a .obe2 .ober3ei .ob3i4t .och3 .of2e .oper4 .op3fe .or2a .ord4e .or3g .or3k2 .ort2 .orts3e .os3s .os4t1a4 .oste2 .ost3end .os4ten4de .os4teng .oste4re .ost5erwe .os4tes .os2t3i .os4tig .os4t3r .os2tu .ot1a .ou2t .ou4te .ozo4 .öd2 .öl3l .pab4 .par2kl .part2h .pe2c .pe3le .pe3na .pf2 .pf4l .pf4r .ph2 .ph4t .poka2 .po4st .postei4 .pro1 .ps2 .rabe4 .ra3ch2e .ra3e2 .ra5me .rau2m .rau4schl .re3ale .reb3s2 .re3cha .re3insz .reis4e3i .rei2s5t .re3ke .res6tr .ri4as .richt4e .ro4a .ro3be .ro2e .ro2h .rom4a .ro2st .ro2t3r .rö2s .ruf3s .ruh2r1 .runder4 .rü3b .rü4cker4 .sa3br .sali3e .sami1 .sau1c .sch4 .schaf6t7end .se3ck .se2ei .seein2 .se2ha .sen3de .sen4f3 .sen3s .se3re .seri3e .se1ro .ser2u .se2t1 .sha4 .si4en .si1er .si3gn .si4te .ski1e .skis2 .sour2 .spani5er. .spiege6lei .st2 .st4a .stau8be8cken. .st4e .ste2i .steiner6k .sto4re .st4r .st4u .sui4te. .tage4s .tan2k3a .tank3l .ta3ra .tar3t2 .ta2t1h .ta2to .ta4tor .ta2t1u .te2e .te2f .tehe3 .teiler4s .tei6l5ersc .te3le .te3no .tens4 .te1ra .te2s .test3r .ti2a .ti2e .ti2me .ti4mes .ti3r .ti2s .tischen4 .ti6sch5end .tite4 .tode4 .to2der .todes3 .to2n .to4nat .ton1i .to4nin .tons2 .to4pl .to2pr .to2w .tri3es .tro2s .ts2 .tse3 .ts4u .tu3ra .tu3ri .turm1 .tur2ma .ub2 .ufe2 .ufer3 .ul2b3 .um3 .uma2 .ume2 .umo2 .un3a4 .un3d .une2 .un3g2 .uni4t .un3s .uns4t .ur3a2d .ural4 .uran4fa .ur1c .ur1e .ur2e3t .ur2inf .urin2s .ur3o4m .ur1o2p .ur3s4 .ut2a .ut3r .ve5n2e .ves3t .voll1 .vo4r .wah4l .wa2s .weg5s .weine2 .wei2ta .welter4e .wer4ker .wer4kr .wer2tr .wetterer6 .wi4e .wor2 .wort3en4 .wor4tend .wur2f1 .xe3 .ya4l .zel4la .zelle2 .zel4leb .zeug2i .zi2e .zie2l3u .zin2ka .zin2s3c .zin2st .zuch2 .zug3l .zu2gra .zwe2 .zweigen4 .zwei6g5end a1ab aa1c a1a2ce aa2gr a1akt a2al aa2l1a aa3lep aals2t a1an a3an. a1a2q 2a2ar aa2r3a aar3b aar3d aa3rea aa2rei aarf4 aar3g2 aar3k4 aar3s aart4 1aas aata2 aa2th aa4t3r aat4s3 2a3au a1ä2 2aba 3abad ab1alt a3b2am ab2ant ab1au ab1ä ab2är ab2äu 2abbat 2abbin 1abd ab5dec 2abe. 2abec ab1eic abe3id ab1eil ab1ein 2ab2el abe2l1a abela2d 2a3ben. 1abent 2aber a2berd ab1er2k ab1er2r ab1er2z 4abes abe2s1e ab3esse 2a3bet 2abew 1abf 3abg 1abh ab5hän 2abi 4abil ab1ins ab1ir abi3st ab1it abi4tur 1abk ab1l 1a2bla a3blat 1a2blä a2b3led 3ab3lei a3blem 2ablet ab3li a2blin ab4lit 2ablo 1a2blö a2blu 1abn 2abo 3a2bo. ab2of 3a2bon 4abot 2abö ab3r a2bre ab4ros 2ab4rö ab3sau 1absc 1abse 1ab3sp abst2 3absta ab3s4te 1abstu ab3sz 3abtei abte2s 3abtr 2abu abu3g a2bum ab1ur 2abü 1abw 2a3by aby4t 3abz 2ac. 2a3ca 1ac1c 2acci a1cem a1cen a2ceo a4ch. ach1a a3chari ach3as ach3au 2achb 2a1che a2ch1e2c ach1ei ach2ei. a2chep a2cherf a2ch3erh a2ch3erl a2cherö a2ch3erw 2achf 2a1chi a2chim ach3l 2ach3m ach3n a1cho a3cho. a2cho2r ach3öf 4ach3r a4chs 2achsc achs2el ach3s2i achs2or ach3su a4cht ach2tak ach4terh ach4tersp ach4t3erw ach4t1o acht3rat ach4traum ach6träume. ach8träumen. ach4trit acht4s3al ach2tum a1chu ach1u4f ach3ü 2achv 4ach3w a1ci 2acke. a3ckel ack3erz a2ckin ack2sp acksta2 2a1cl acon4n 2acu 2ad. 2ada. 4adab ad2abr ad2ag ad1an 3adap 4a3d2a2r3 2adas 2adat a2d1au a3dau. 1a2dä1 ad1c 1add 2ade. ade2al a3dec a3dee adefi2 2adeg a3dell 2aden aden1a ade4nat adeo4 ade1ra a2d1erk 4ade1s ade3s4p ades2s 2adf 2adh 2adi adi3en adi3er. adie2sc adi4st 3adj 2adli 4admu ad2ob ado2n ado4na a2dop 2adp 2adq a2dre 2ad3rec ad3rei ad3run 2ads2 ad3st ad3sz ad2t1 ad4te2 ad5tea 1adv 2ady 2a1e1 ae2b a2ec ae2ck ae2d ae2i a2ek a2el a3el. a4ela a3els ae2m ae2n1 ae2o3 aeop2 ae2p 3a2er2o1 aes2a ae4sc aes3t aes5tr ae4ta a2e3u a2ew ae2x a2f 2a3fa a4f1ab a4f1a2n a4fap a4f1au 2a3fä a4f1än 2a3fe a4f1ec a4fentl a4f1ep a4fex a3fé aff4a af2f3l aff2s aff4th 2a3fi afi4kanz afi2kat afi2t 2af3l af1la a3f4lu 2a3fo a4f3oc a4ford a4f1ort afo1s 2afra af3rau af3rä af3re 2afro af3rö af4rü af3s2a af3s2h af2si af2sp afs4t af2t1a af3tat af2tei af2te2l aft2erk af2t1o af2tö aft3r af2tra aft5rei aft4stä af2tur af4tü a3fu a4f3ur 2a3fü afür3 2ag. 2aga ag1a2b ag1a2d ag1ar a2g1au ag2del ag2dr ag2du 4age. age2l3ei age2ler 4agen. agend2 age2neb a2gentu 2ages age4sam age3sc age4s3in age4so ages3p ages4sen age3ste ages3ti 3aggr a2g1id a2gim ag1inn 2a2gl ag4lan ag4las ag3le a4glö 2agm ag2n2 ag4nat a4gnä ag4ne ag5neh ag4nu ago3b ag1op agori2 ag3rat a2g3re a2gri ag3rie ag3rin 2ags ag3s2ah ag4sam ag3s2eid ag5s4porta agst2 ag1ste ag3stö ags3tr 2agt ag2th 2agu a2gund 2ah. 2a1ha ah2an ah4at a1hä 2a1he ahe1in a2h1er2h ahe1s ahe3u a1h2i ahin3 ah2l3a2 ah2l1ä ah2l1ei ah2lel ahle4na ah4l3erd ah4l3erh ahl1o2 ah2lö ahl3sz ahme1i ahme3s4 ah3mu ah4n3a ah3nee ah2nef ahn3el ah4nerd ahner4e ah2nerl ah4ner4le ahner2n ah4nin ah2no ahn3ste ahn3t 1a2hor ah1os ah3ös ahr1a ah3r2e ahre4s ah3ri ahrta2 ahr4tage ahr4teng ahr2ti ahr2tri ahr2tro ahr2tun ah2ta ah2te2l ah2t1ex ah4t3r aht3s4 2a1hu ah3w a1hy 2ai. ai1a2 a1ia. 2aib ai2bl aid2s ai1e2 ai3e4n3 aif2 ai3fr ai3g2 aig4r a3ik. a4i3ke ai2lar ail3d4 ai2lei ail3g ai2lo 2ain ain2a a1ind ai3n4e ai4neb ain3s 3airb ai2sa a3isch. ai3schw ai3s2e a2it ait4r a3iv. a3ivl a3ivs a2jat aje2 ajekt4o a2k 2ak. a3ka 2aka. 2aka3b akab4r a4kad 2akal 2akam 2akan 2akar ak4at akat1a aka2tak 1a4kaz 2a3kä 2akb 2akc 2akd 2a3ke a4kef a4k1em a4keo ak2et a4keu 2a3ki ak1ins aki1s 1akku 2ak3l a3k4la ak5lad ak5lan ak4li 3aklö ak4lu ak5lun a3kna ak3no 2a3ko 2a3kr 4akra ak3res ak4ri 3akro a4k3rü 2aks ak3sh ak2t1a2b 2aktb ak2tel ak3t2er 2aktg 2aktik 2aktis 2aktm ak2to4b ak2tö ak2t3r ak5t4ri 2aktsi 2aktsp 2aktst 2aktun 2aktw a3ku 2akun a4kup 2akur aku2s 2a3kü 1akz 3akze a1la 2ala. 4alabo a2l3abt al1ac al1af 2alai al1akr al1am al1ana 2aland a2l1ang al1anz al1app a3lar. al3arc a3lare al2arm 2al1arr a2lart ala2s a3lat. alat3s alat3z al1au al3aug a1lä a2l1äm al1än al1är al1äu 3albat al2bär al2berh al2b3er2w al2b1l al2boh al2bon alb3ru alb3st al4dan al2dä al2d3erl al2d3ern alde2s ald3inn ald1r al2drä alds2 2ale 4a3le. ale4ar a2l1e2b al1eck a4l1ef a2l1ei a3l2eic a4lein a2l1el 5a2lema a2l1e2mi al1emp 4a3len. alende2 al3endr al3ends a2leng al2enn al1e2po 4a3ler. a2l1erb aler2e a2l1erf a2l1er2h aler2kl a2l3erl al1erm aler4mi a2l1er4r aler3s a2l1ert aler3w 3a2l3erwä 4ales a2l1e4sk a2less a4leth a2l1eu alf4r 1alge. 3algi al2gli al3glo 1algo 3algor 2ali al2imb al1imm ali2nal al1ind alin2ge a2l1in2q al1ins alken1 al2klö al2kne al2kof 1alkoh alk3s2 alks4t al2lab al3lad al2l1an al2l1a2r al4lec 3allee al3lend aller2z al5les al2lid alli3er. alli5ers. al2lob allo3c al2lop al2löf al2map al4m3ast almo4de. 2alo. a2l1ob 3a2loe a2l1of 4alog alo2ga alo2gr alo3is. al1ont alori2 al1ort 2alos a2l1ö al2ös 3alp. 3alpe. 1alph al2pho al3sak al2schm al3ska als2p al3sterb al3str al2sum al2t1ak alt3alg al3tam al2tan al2tat al2tau 1altä al4tb al4td alt3eis alt3elt al2temu alter3f alt3er4pr al2teu al2tid al2tin alt1op al2tö alt3rad al2t3rat al2tre al4t3ri al2t3ro a1lu alu3b4 al2uf alu3g al1u2k a2lum al1umb a2l1ur a3lus 2aly al2zar al2zau al3zen alz2erk al2zw a2m 2am. a3m2a ama2ba ama3d2 ama3g 1amal a4malg 2am4an 1a4maz 2a3mä a3me 4ame. 2amel 2am4e4n1 amen4spr amen2t3r a5mer. ame3r2a amera3u a4m1erf 1a4meri ame5r2u 2ame1s a4mesh 2amet a3mé 2amf a3mi ami2k am4ing 2amir 2amit 2amk 2aml 2amm. am2mab am2m1ac 2am2mal am2mant am2mar am2mei ammes3 am2mid ammi2e am2min 4amml am2mor am2m1ö ammu2 amni1 a3mo 2ampe. 2ampen am4pf amp2f1a2 2am2ple 2ampo am3pr am5pre amp3s2 2am2s am3sa 4amsc am4schl 3am3se ams3en am3s2h am3so am3sp am3su 1amt. am2t1a2 am4tau am2t1ä amt3eig am4tel am2tem amter4 am2terh am2t3ern am2t1ex am2tis am2tit am2to am4tou am2tö am2t3r am4tre am4tri am4ts am2t1u am4tü 2am4tv 2a3mu 3a4mul am4us a3mü a3my 2ana. 2anab ana3c 2an2ad ana2der anadi1 an2ag 2a3nak an1alg ana2lin an2a5ma 2anan an4and 2ana1s a5nat. ana4th a5n4atm a2nato ana4tr a5nats an3aug 1a2n1äs 1anb 2anbas 2anbö 2anbu an3ch 2and. 3an3d2ac and3ei an2deng anden4ga an2d3ent ander2e and3erob an3des ande2sc an2d1ex and2sas and2seh and2so and4spar and4spas and2su 4andu2 an2d1ur andy1 2ane 4ane. an3e2c a3nee an2ei. an3eif 3aneig a4neis 3a2n1e4k ane4l an1e2mi a2nemo 4anen anen3s4 4aner. aner2fa an2erh a2nerke 4anern a4nerz. an2erze an1eth 3anex 1anf 2anf. 2anfab 3anfä 2anfi anf3le 2anfors 2anfs an3f2u 2anfun 4ang. 1anga 2anga. an2g1ar 2angas 2angd 2ange. 1angeb an2g1ei an3gen an2g3erf an2g3er2h an2g3er2w an2g3erz 2angf 2angh 2angie ang1l an2gla ang3n ang5na ang1r ang3ra an3gri 2angs. ang4sto angt2 1an3h 2anhau 2a3ni an2i3d aniel2l ani3els ani3ers. anig2 ani2ka ani3ke 3a4nim a4nind ani2o an3i4on a4n3iso 2anj 2ank. an2kag an2k1ak an2kan an2kei 2anken ank3erfa an3kes 2anki an2kid an2klö an2klu ank3no an2k3opf an2kor ank1r ank3ra an2kras ank3rä an2kro 2anks ank3se 2ankt4 1ankü 1anl 2anlad 3anlag 2anmo 1anmu 2ann. an3na 1annah an4nar an3ne an4nef an4nei an4nene annen3s2 ann2er 2anns ann4sp 2annt 2ano. 1an1od 2anof 2anog 2a3nol ano2la 1a2nom a3nom. 2anoo an1op a2n1or ano2ri 2a3nos 2a1nö 2anpu 1anr 2anrö an4same an3sar 1an3s2ä an4sb 3anschr an4sf an4sg an3skr 1anspr 1anst an3s2z 2ant. ant3ar anta4re an3t2ä 1antá 3antei anteri2 an3tha 1anthr an3ti 2antie 3antise anton2 1antr 1antw 2anu anu3r a1nü 1anw 2anwi an2z1ä 2anzb 2anzd 1anzei anz3elf anze2n 2anzes 2anzg 2anzh anzi2d an2z1i4n 2anzk 2anzm 2anzr 2anzs 2anzt 1anzü 3anzün 2anzv 2anzw an2zwä an2zwi 2anzy 2ao ao3i a1op ao2pe aopf4 a1or a1os3 aos5ta a3ot. ao3t2s 2a1ö aö4fe 2ap. ap2a apa3b ap4an a2pe. 3a2pé a3p2fa 1apfel 2apfes a3pfl a2pht 2api 2apl ap4la ap3le ap3li ap2n a2pot ap3pu 2apr aps2ter ap3t2 ap5tag 2a3pu 2ar. a1ra a3ra. ar2ab 2ar3abb ar3abf ar3abr ar3abt 2arac ara3d2 ar3adr 2arak 2a2r3al a3rale a3rali a3ralo a2r1ang a2r1anz 2arap a4r3app 2a2rar ara2st ar2asy 4arat a2r1au a1rä ar1äs 1arb 2arb. 2arba ar2bak ar2b1at ar2bau 4arbef ar2b3ein 2arbek 2arben 2arber arb3erl 4arbi 2ar2bl 2arbo 2arb1r 2arbs2 arb3se arb3sk arb3so 2arb3t2 2arbu 1ar1c 2archl 2ar3chr ar2dau arde4i ar2dop ar2d3r a2rea are3aler a2reb aree2 ar1eff a2reh ar1ehr 2arei a3rei. ar1eid a3reie a3reih areim3 a2rein arein4b arein2s arein2t a2rele 4arem are2mi 4aren. aren4sem a2rentn are3r2a arerau5 arer2e a2rerei a2rerg a2rer3h a2reri a2rerk a2rerl a2rert ar2erw 2ares are3sc ar2et are3u a2rev arf1r arf3ra arf2sp 4arg. ar3gan ar2gl ar4gn 2arg4o ar3g4r arg4s 2arh 2ari ar2ia ari3en ari3erd ari3erg arin3s4 ar1int a3r4io ar2ir ar4is ari2su a3riu ar2kal ar2k1ar ark3aue arker2 ar2kil 2ark3l ar2kle ar2klo ark4lö ar2kn 2arko ar2koa ar2kor ark3s2a ark2se ark3she ark4tre ar2les ar3mad arm1au ar3m2ä ar2m1eg ar2m1ei arm2or ar2mum 4armü 2arn ar2nan arn2el ar3ni a1ro arob2 4aroc aro4ckeng ar1o2d ar1of aro2i 2a3rol a2r1op a2ror aros3 aro4st 1a2rou aro2w 2a2r1ö arö4l 2arp arr1ac ar2r3ad ar2r1as arre4n1 2arri ar2r3or ar2schl ar3se arseri2 ar3sh ar3s4i ars5ka ar3spe ar3sta ar2tau 2artb art2e 2ar3tei arter2e 2artex ar3t2i 2arto art3r art4res ar2tri art3ske art2sp 2artuc 2artü 2arty 2aru a2r1uh ar1um a3rumm a2rü 2arv arwa2 2a3r2y 2arza ar2zau ar2zä 2arze 2arzi ar2zö 1arzt arz4tei arz4ti arz2t3r 2arzu ar2z3w 2asa a2s3af a3sag a3s2al asal2t1 as1am as3art asa2s as3at asau4f a4s3aug a2sä as3ät asbes2 a2sca a4schec a4schef a4scherg a3s4chi a2schm asch3ru 2ascht a3schu a4schum 2asd 2ase a2seb a2sec a2s1ef as1eie as1emi a3sen. ase4na ase4n3o a2sen2se as2ep as2er ase2re a2s3erke as4es ase4ta a2s1ev a2sex 2asf asges4 2ash a3s2hi as3hir 2asig a2s3i2k 2asim asin2g as1inn 2asis 2asiu aska3s 2aso as1o4f a3sol a3som as1o2p as1or a2soz a2sö a2sp as3pan aspek4to as2ph a3spi as3pik as3pio a4spir 2aspr 2as3sa ass2a3b ass4aus. asse3le ass2i as3ski as3so ass3p as2spo as2spr as4sr as4ss as2st as3stau as3stei as3sti as3str as3stu 4asta a3stad a1st2as as3tat a3stä as3te ast2el ast2er as4t3ese as4tex as2th ast2i3d as3tie as3til as4tl as3to as4tof ast3orc a1str ast3re as3t4ren as5tri as6t3ritt ast3roll as3tub 2asu as2ur asu4s as4ut a2sü aswa2s 1asy 3asyl 2asys aße2 aß2en3 2at at1ab ata2be at2a3f ata3g at2ago ata3la a3tam atan3k at1apf ata3ra at2ast at1att a2t1au at1än at2c a2teb ateien2 at1eig 3a2teli 3a2temg at2en ate4na aten3s4e a2tep 4ater ate3r4al at4ere atern2 ater3st ate2ru 4ates ates2sa at2eu a2tew a4th. 4atha at3hag at3hal at2heb ath3in. 3athl a4thm a4thr at2hu at3hü a3ti at4ia ati2kab ati4k3erw a4tinf at2is ati2sa ati2se a4tiso atis3s ati4v3erf 3atla 4atli 3atm 4atma 4atmä 4atmus a2t1ob a3tol 3a2t4om ato4man atom1e ato4mo at1op at1ort a3to3s atra4t a2t3rau a2t3rä at3re at3rin at3rom at4ron at3rot at3rü at2sa at3sche at2schn at2se ats1e2h at2si ats1in at2s1o at2sp a4tst ats3tät at2su at3ta 3attac at4tad at4t1ak atta2l at4tale at4tals at4tang at4tar at4tau at2tä at2t3ec at2tei at3t2el at3thä 4atto at2tob 3attr att3rat at2t3rä att3s2 at3t2u a3tub atu2n a3tü atze4l atz3ela atz3elt at2zem at2z1er a3tzere atzer2h at2z1in atz3t2 at2z3w a2u 2au. 2au3a 2aub au2bab au2ban au2b1au aube4n au2beu au2blä au2bli au2blo au2blu aub2si aub2str 2auc auch4str au2dr 2aue aue2b au3er. au2ere aue3rei auer3ö au3erq au3ersc au3erst. au3ert aue2s au4fa au5fac au5fah auf1ak au5fal au5fam auf1an au5fas 2aufe. 2aufeh 2aufen. 3aufent auf1er au4fer2k au4feu auff4 auf3ind 1aufla 1au4fn 2aufo 4aufö auf3ski auf3t2 2auft. 2aug au2ga au3g2ar aug2e 4augeb 4augeh 4augel 4augl au4gn 4augr au3gu au3h2 2au1i au2is 2auj auk3t aule2s aul2les au3lü 2aum aume4n au2m3ent au2m1e2r1 aum3eri au2m1id au4mil au4mit au2m1o aumo2r aum3p2 aum3s2 au4mun 2aun au3n2a aun2e au2nio au2no au3nu a4unz 2aup2 au3pf 2aur2 au1rh au3ru aurü3 au2s1ah ausan4ne. au2sas au2sau 2ausc au4schmi au2scho 1ausd 2ause. au2s1eh 2ausen au2s3erb au2serf aus3erk aus3erp au2serw 1ausg au2sin au2sis au2so aus1or au2spr 1ausr 3aussag aus2se. aus3s2el aus3s2t aust2a 2auste au3stein aust2o aus5tri 3ausü 1ausw 1ausz auße2 2aut. au2tab au2t1äu 2autb 2aute au4t1e2l au4ten2g au2t3erh aut5ero au2tev 2autg au2thy 2auti 1auto au4trö 2auts2 2auu 2auv auve4 2auw 2aux 2auz auz4w 2a1ü av2a avari4e avas4 ava3t2 avener2 2avi a2v3r 2aw awi3e a2wr a1x ax4am a2xans ax2e a2xio axis1 ay1 2a1ya ay2al ay2am ay2as a1yeu ayma4 ays2 aysi1 ays4t ay5tes ay2u az2 a3za3d 3azal azare3n az4at a3zi az3t a3zu azz3a az4zab az4zin ä1a 2äb ä2b3l äb2s äbte1 ä1ce ä1che äche1e äche4n ä1chi äch3l ä2chr äch4sa äch2so äch2sp äch2st ächt4e ä1chu ä1ck ä2da ädel1i äde1s2 ä2d1ia ädi4e ä2d3r äd2s äd5tet 2ä1e äe2k3 äe4kl äe2x ä2f ä3fe äfe4n äf2fl ä3fi äfig3 äf3l äf3r äf4ro äf2s äf3t2e äft4s3 ä2g1a 1ä2gä ägd2 äg2e ägen4e äge2r3a äge3s4 ä2g3l äg2n ä2g3r äg4ra ägst2 äg3sta äg3str 1ä2gy äh1a 2ä3he ä4h1ei äher3t ä1hi äh1in ähl1a äh3l2e äh4l3e2be äh5ler 2ähm äh3na äh3ne 1ähnl 2ähr äh2rel äh3ri ähr5sa 2ähs 2äht ä1hu äh3w 2äi ä1im ä1is. ä3isch. ä1isk äka2la äk3l ä2kle äk4li ä2k3r ä1la äl4bc älbe2 äl4bl älk3 älks4 äl2l1a äl2p3 äl2schl äl2st ält2e älte1i äl5tet ä1lu ä2m 2ä3ma3 äm4at ä3me ämer2s ä3mi ämi3en 2äml ä3mo ämoni3e 2ämp ämp5f4e äm2s äm3t2e2 ämter3 ä3mu 2än. änd4e än2dr 2ä3n2e äne2n1 äne1s 2än2f3 änft2 4än3g2e änge2ra 2än2gl äng3le än2gr äng3se 2ä3ni än3k2e än2k3l än2kr änk2s 2änn än3n4e2 änner1 2äns än4s1a än2s1c äns2e 2änz ä1on äo3s2 ä2p ä3pa 1äpfel ä3po äp2pl äp2pr äp2s1c äp4st ä3pu 1ä2q ä2r3a2 är4af ära4r är1ä 2ärb är2b3le är1c 2ärd ärde4s 2äre 4äre. ä2r1ei ä2r1e2l 4äre2m är1emi 4äre2n ä2rene 4ärer ä2rerh är2es 4äres. ä2rese ärf2s är3ge ärg4s äri2e ä2r1ind är1int är3k4e ärk2s 2ärm. ärm3arm ärm3at ärme1e ärm3ent ärm2s är1ob är1of ä1rö är3re ärse2 är2seb är2s3eh ärs3er är2s3i är3spu är2st är3str 2ärt ärt2e är2th ärt4s3 ä2rü är2zu är2z3w ä3sa 2ä3s2e äse3g äse1i4 äse5ref äser2ei äse2ren äser2i ä3s2kr ä2sp 2äs2s1c äss2e äss3erkr äss3ersa äss3erw äs2s3p äs2s3t ä2s3t äs4tc äst2e äs5tet 1ästh äs4tl äs4tr ä3su äß1erk äß1ers ä2t3a2 2ä3te äte3a äte1e äte1i äte3l2 äte2n äteo2 äte4pi äter2bl ät2e3t ä2th ä4thc ät1id ät1ob ä2t3r ät4sa äts3au ät2sä ät2schl ät2schr ät2s1i2 äts3l äts1or ät2s3p ät2s3t ät2su ät2tei ätte4n ät4tr ätze3l ät2zw 2äub äu2b3l äu2br äu1c äu3d äude3 äuder2 2ä2uf 1äug äug3l 2äul 2äum äu2ma äum3p äumpf4 äum4s3 äums5t 2ä2un äun2e äu3nu 2äu3r2 äure1 2ä3us. 2äusc äu4schi äu2schm äu3s2e äuse1i ä3usg ä3usk ä3usn äu2sp äus2s1c 1äuß äut2e äu2tr ä2vi 1äx ä3ze á1 1b 3ba. b2aa b3a2ba 2babf 2babg ba2bl ba2br 2b1abs bach5t4e ba2ck3er back3s4 ba3de bade1i 2b1adel bader4 2b1adl 2b1adm b1a2dr ba2du 2b1af 3bah bah4nene bai3d bais2 b2ak ba4k1a ba4k1er ba4k1i ba4k1l bak3r ba4kra ba4kre ba2lab ba2l1ak ba3lal ba2lau baler2 ba2l3erk balk4a balke4 bal4l3eh bal2l3ei ball4erk ball3s bal3tin bal2tr 2b1am b2ama ba5maz ba4me 4bamt ban2a 3b2and band1a ban2dal ban2dan ban2dar ban4derk ban4derz ban2dr ba3n2e 2banf b1ang ban3gl ban4k1a ban2kl ban2kn ban2kr ban2ku 2banl b1anna ban2o 2b1ans b1ant 2banw b1anz ba2r3ab ba2rad bar3ast ba2rat bar3de ba2rei barer3ei barer2t 3bar2s bar3sc b1arz bar3zw 3b2as ba3sa ba2sc bas2i bas4sa bas4st ba2st ba4t3ent bat2o bau1 3bau. bau3b bauer2l bauer2s bauer2w bau5fa bau3fl bau3f4r bau3g b2auk bau3r bau3s2k baus4t b1a2x ba1yo 3b2ä1c 3b2äd 2b1äh b2äl 2b1ärz b2äs 2bäug 2bb b3be bbe4n3 bbens2 bbe4p bb3le. bb2lö b3brec b3bru2 bb2s bbu1 2b1c 2bd2 b3da bdä2 bdän3 bde1s bdome4 3be. 3bea be3ab be3an be3as beat2m be3au be4au. b1ebb 3be1c 4becht 2b1e2del bedi4 be1e2h bee2l be3ela be1en bee4rei be1erh be1erl be1ert be1eta 2b1eff be3g2 be2he. beh5ri bei3b 2b1eier bei3f4 beige4be beige4ge beige2l beige4p bei3k4 bei3l2a 2b1eime be1ind be1inh bein4hal bein2hi bei3sc beis2e bei1s4t beit4e beit2s beit4s3k 3bel b4el. be3l2ag be3las bel3d be3lec 4be2lek be2l1en be2let bel3f bel3la belle4n3 bel3li bel3om be2löf bel3sz belt2 bem2 3b2em. 3b2e3ma 2b1emp 2bemul be5nabe ben3ar be4nas be4nat be2nä b2ene be3nei be4n3end ben2eu 3beng be2nid be2nik be4nis ben3n 3benp b2ens ben2spa ben2spr benst4 3bensz 2b1entb 2bentd 2benteu 2bentf ben3th ben4thei ben5t4r 2b1ents 2bentw ben3un b2en3z2 be1o 2b1epi 2bepoc be1ra ber3a2d be2rak be2r3am be2ran bera2s berb2 ber3d be2r1e2b be2reck be2r3eiw ber3ell bere2m be2rene ber2er ber3erk bere4sc bere4t berf4 ber2g3af ber2gal ber2gli ber2hab beri2d be3r4in. berin2g be3r4inne be2ri4o ber3iss ber3ko ber3kr ber3n2a bern2e b1ernt be4roh be2rö 3bers. ber5se bers4k ber3st2a bert2a bert2e bert2i berz2 ber3ze ber2zö b2e1s be3sa bes4abb bes2am bes2an be4sap be4sar bes2au be2sep be2s1er be2s1id bes3sa bes3s4e b3esst. bes3sz be2stab beste2 bester2 bes4terh besti3en be2s3tol bes4t3o2r bes3tos best4r be2s3trä be2s3tur be2sur be3s4ze be3tam be3tha be3thi bet4o bet2sp be1un be1ur 3bev 3b2ew2 2b3e2x 3b2ez 2bf2 bfal2 bfal3t bfang3s bf4lö bf4ri bf4ro bf4rü 2bg2 bge3 bgel2e bge5na bges4 2b1h2 bi1ak bi2ar 3bib2 bibe4 biber1 bi2c bid2 bi3do bien3s bieres4 bie2s biet2s 3bietu biga1 bik2a bi2ke. bi2kes bi2kre 3bil bil2deb bil3der bi2lei 4billu bi2lu 2bimp 2b1inb bin2e bine4n b1inf bin4fo bin2g3a bin3gl 2b1inh bino2 bi2n1ok bin4ol 2b1int 2b1inv bi2o3 biri1 3bis bi3si b1iso bi2sp bis4sa bis2s1c bi2st bi3s4ta bi1s5tr bis6tre 3b2it. b2ita b2ite b2iti bit4r bi2tu bi3z2 2bj bjek4to 2bk2 bk4ne bk4nu bl2 2bl. bla3b4 2b1lac b3lad b2lanc bl4at b2latt b2lau. b3laus4 2b3law 2b1län b2läse 3blät b2le 3ble2a b3leb 3blec b3leg 4bleh b4lei. 3bleib 2b3leid 2bleih b3lein blei3sc 2bleit ble3l blem3p ble2n b3lenk b3lese 2blesu ble3s4z 3blet b3leu 2blich 3blick b2lie 2blief 4blig b2lind 2b5ling4 b2lis 2blis. b2lit b3lite b2lo b4lo. b4loc 2b5loch b4loi blo2id b3los 3b4lum 2blun b2lus 3blut blut1o blut3sc 3blü 2bm 2b1n2 b3na bnas4 b3ne b3ni2 bnis1 bo3as b1o2b bo3ben bob3r bo2c bo3ch2 bo3d2 bo4dd boe1 bo2ei 2b1of bo3he boh2ra boh2u bo1is bo2lan bo2lau boli2e bol3le bol3za 3bon. bo3n2a bond1 bon2da bon2de bo2ne 3bons boo4l boo2ti b1op 3bor. bo1ra bor2an bo2r3as bo2rau bo4rä bor2da bor2d3r bo4rig bor3m bor2s b1ort bor2ter bor4t3rat bo4ruh bo2sc bo3se bo4s3p bos3t 3bot bot2e bote3n2e bo3th bot2st bot3t bo3v b1oz bö2b3 2böf 2b1öl 2bp2 bpa2g b3pf bp4rä bpri2 2bq b2r2 2br. b4ra. 2b3rad 2b4rah b4rak bra5ka br4al b4r4am4 brast4 2b3rat. brat3er2 bra4terg 2bratg 2bräd brä4u 2bre. 4b3rechte 2b3red 2b3ref 2breg b3reic b3reif b3reiz 2brek b4ren. 2b3rent 2breo 2b3rep b4rer b4res. b3rese b3rest bret4t3en 2b3reu b4rez bri2da brie2fa 2b3riem b4rien bri2er b3ries 2brigk b4rik bril3 b4rina 2b5rind b4rio b4risc b3ritt b4riz brob2 2b3roh 2b3rol bro4ma b4ron 2b3rost bro4tei bro4tr brot3t4 2b3rou 3brö b4ruc 2bruf b4rum 2b3rund brun4e bru2s4 brust1 bru2th b4ruz 3brü 4b3rüb 2b1s b2s1ad bs2am bs3amb b4s3amt bsau2r b4s3är b3s2äu b3sc bsch2 b4schan b4schef bs2chi b5schl b4sco bs2cu b3se. bse2b b3sel. bse2n1 b3sen. b2s1ent bs1erf bs1erg bs3e2r3in bs1erk bs1ers b3s2es b2sim bsi4t b4ski bs2ku b2s1of b3s2oh b3sol b4sop bso2r b2sö bs2p b3s4pi bs3po bss2 bs2t b4st. bst1a2b bst1ak bst1al bst3an3k bs4t1as b3stä b5stär bs3tät bst3emi bst1er b3s4tet bst1h bst3ink b2stip b3sto b4stob b4stod b4stor b3stö bs3trau b2s3trä bs4tri bst3ro b3stü b4stüb b2s1un bs2zep bs2zi b4szü 2bt b3t2a bta2s btast3r b3te b2t1h bt2i bti2s bt4ra btran2 bts2 b3tü1 buche2 bu2chec bucher2 bu4ch3er4s bu2chi buch3sp bu2e3 bu4fe bug3 bu2gr bul2l3a 2bumf 2b3umk 2buml 2b3umr bun4a bun2d3er bunde2s b1une bung4 b3un3gn 2b1unh bur1c b2ure b2urg burg1a bur2gan bur2gar bur2gin bur4gr bu3r2i 2burn b3ursa burts3 bu3ru bu2sa bu2sc bus3cha bu3sche bu4schei bu4sch3el bu4scheu bu3schu busch3w bu3shi bu2sin bu2s3p buster2 bu2su but2a bu3tan buto3re 2büb bü4bc bü1c bügel3e 2bv 2bw bwur2 b2y1 bya2 byo2 by3p2 bys2 bys4t by5tau by2te 2bz2 bzeit1 bz4wa 1c2a ca3bl 3ca2c ca2e3 ca3g2 ca1h cal2a cala3b cal3t 3cam 2can cana3 ca2pe ca3r2a car3n2 car5nu carri1 car2s ca3s2a3 cas5to ca3t2h ca1y2 cä1 cäs2 2cc c1ce c1ch2 c2d2 c3do 2cec 1ced ce2dr 2cef 2ceh ce1i ce3in 2cek 3cels cen3a cens2 ce3nu cen3un ceo2 1cer cer3a cere1 cere3u cer2i ce2ris ce1ro ce3s4h 1cet ceta4 cet1am ce1u 1cé cg4re c2h 2ch. 2chab ch3a2b3i cha2ck 2chaf 2ch1a2g 2ch1ak chal4l3ei chan4a 3chanc ch1ang 4chanl ch3ansa 4chanz 3chao 4char. 3chara 3chard 3charta cha2sc chasi1 1chato 4chatt ch3austr chau3t ch1äh ch1ärm ch1äs 1châ 2chb 2chc 2chd cheb4 ch3e2ben che3bl ch3echt ch1edi che2el 1chef 3chef. che2fer 3chefs 2cheh 2chei ch1eim 2chelem che2ler 3chemi 2chemp che2neb che2nid che2no 2chents 2chentw che2r3a 2ch3erbs 2ch3er2de 2ch3erfa 4chergeb 2cherke cher4zie ch3ess ches5t 2ch1eta 2ch3e2x 1ché 2chf 2chg 2chh 1chia chi3na 4chind 3chines 2chinf 2chinh 2ch1ins 2ch1int 2ch1inv 1chip. 1chiru 2chiso 2chj 2chk 2chl2 chl4a ch2le chle2i ch3lein ch4len 4chli ch2lu 2ch2m 2chn2 chn4a chn4e chner4ei. 2chob cho3ch cho4f ch1off cho5fr chof4s ch1oh cho3l2a ch1orc ch1ori ch2os ch3öl 3chör 2chp ch2r2 2chr4a ch3rad 2chre ch3rh 4chrit 3chromo 3chron ch5ros ch4ry 2chs ch2stal 2cht ch4tb ch4tg ch4tm ch2truh ch4ts chts3trä ch4tw 2chuf 2chuh 2chum 2ch1unf 2chunm 2chunt 2chur ch1urs 2chut chut4t 2chü 2chv 2chw 2chz ci2al ci1c ci1es c1ind cins2 c1int ci2s1 1ci3t2 c2k 2ck. ck1a 1cka. 2cka2b 2cka2c ck2ad 1ckag ck2age 2ckal cka4m 2ckan 2ckap cka4r1 1ckard 1ckat ck1ä 2ckb 2ckc 2ckd 1cke 2cke2c 2ck1ef 4ckeff 2ck1eg 2ck1eh 4ck1ei 3ckem. 2ckemp cke4na 4ckensem 2ckentf 4ckentw cke2ra 4ckeremi 4ckergeb 2ck3er2hö ckerk4 2ckerke 3ckerl ck2ern 2cke2ro 2ckerz 3ckerzen 4ckese ck2et 4ckex 2ckf 2ckg 2ckh 1cki 2ck1i2d ck1in 4ckinn 4ckint 3ck4is 2ckk 2ck3l 2ckm 2ck3n ck5nac 2ck3o2 cko4f cko4p ckos4t ckos6te ck3ö ckö4f 2ckp 2ck3r 2cks cks2al ck4ske ck4spen 2ckt ck3te ck3t2i 1cku 2ck1uh ck1um 2ckuni 2ckunt 2ck1up 2ckü 2ckv 2ckw 1cky 2ckz c2l2 cle4a clet4 clin2g cli2p1 clo1c clo2ck 1clu c2m2 c3me c3mu 1c2o co2c co3ch co2d2 co4de. co3di cof3f2 co2ke cola3 co2leu co3l2o co4mp com4te. comtes2 con2ne continuati6 co2o coo3p co3p co4ps co1ra 4corb cor2da cor3de co4re co5ree cor3t cos3t co4te cou3si cô2 cô4te 2c2p 2cq 1c2r2 c4ras c3rä cre2 cre4me 3crew 2cri 2cry 2cs cs2a cs2f cs4fr c2si cst2 c1s2ti c1s4tr 2ct cti4o2 ction3 ctur4 1c2u 2cua cu2e cup3 cu4pa cu4p1e cu4pl cu4pr cussi4 c2v c3ve 2cx 1cy 1ç 1d 3da. da1a 2d1aal 2d1ab d3a2bak d2abä d2abe d3a2ben d3a2bi da3blu d3a2bo dab4ra da2bri da3brie d2ab4rü d1ac dach3a dache4 da2cho dach3s 2d3achse 2d1ad da2de da2do da2d4r d1af da5fab 2da4ff da3f4l dafo4n d1ag dagi4 dag2o da1h dah3l dail3 da1in 2d1air da1is da4kro 2d1alar dal3b2 4d1all da2lop da3lö 2d1alp d1al3t 2dalte da1lü 3dam d1a4mei d1amma 4d1ammä damo3 d2amp damp5f4erf 4d1amt 3d2an. d1ana da2nan da4n4at 2danb dan2ce. d1and2 2danda d2andy 3dane 4d3anei 2danf d1ang 2danh dan2kl dan3kla dan2k1o dan2kr 2danl d1ann 2danna d1a2no 2d1ans danti3e 2dantw 2danw d1anz d2anz. 2danzi 2danzü 2d1ap d2apa d2aph da2po da3pos 4dapp d3apte 2daq da4r1a 2darb2 2d3arc dar2d1e 2d1area daren1 dar3g d3a2rist dark2a 3darl dar2m1a dar2m1i dar4mun da2r3o d1arr 2darres 3d2ars 2d1art dar2th 4d3arti dar2tr da2ru d1arz da1s2 da3sh d1asp das3s 2d1assi 2d1as4t da2s5tr dat2e2 da3tei 4d3a2tel date4n da2th 2d3atl 4datm d3ato dat2st 2d3atta 3daub 2daud dau3e2 dauer3e daue4rei 2d3au4f 2d3aug 2dauk da3unt 2d1aus3 dau2ß 3daw d1ax 3däc 2d1äg 2d1äh 2d1ämt dä4n3a 2d1änd 2d1äp 2däq 2d1ärz 2d1ä2u dä3us 2däx 2db2 dbau2c dbauch3 dbe2e db4la db4ri dbu2c 2dc d3ch 2dd2 d3da ddar4m1 d3dä d3de d3dh dea2d 3dean de3ar de3as de3a2t deb2 deb4r 3debü de1c de4ca. de2cka deco3 2d1e2del de2dit 2dee2 de1eb de1e4g de1em dee4n de1er de1es def4a de2fa. 2d1eff def4l deg2 degene3 de3gl deh2a dehe2 3dehn de3ho 2d1ehr d1ei 3d2e4ic de3i2den de3il 3d2eim 4deime dein2d d2einfr 4deinr d2e3inse de3inst dein4sta dein4sti 4d3einw de3io 2deise d4e1ism dei2sp 2dekz de2l1ac de3lak dela4t del3ate de2l3aug del3änd del3b2 del3d del1ec 3de3leg delei2g 2delek 2delem de2len deler2 deler4r 2delf. 2delfm 3delik del2la dell3auf del2l1ä delle2 del2l3eb del2lei del2l3er de2l1ob de2lop del2se del2so del2s3p del3t4 dem2ar 2d1emb dement2 de4mentg dem3ents demi2e 2d1emot 2d1emp d2emu d4en. dend2 de2n1e2d de4n3end de2nep 2denerg de3n2es d3en2ge. de2ni denk3li dens2am den4scho 2den2sem den2ser dens3tau den4stie 2dentd 2dentf 2dentg den3th 2dentn 2dentw 2dentz den4zerf den4zers de2ob 2deol dep4l 2depoc d4er. dera2b der3af de2rak dera2n de3rand de2r3ap dera4s de3r2ass der2bl 2d1erbs 2derdb de2r1e2b de2reck der3eis 3d4erem d4eren de2r3end 3d4erer der2erf der3erl derer3n der3ero derer2t 3d4eres der3ess de2r1eu derf4 d4erfl d3erheb d2erhü de2r3id de4rinnu derin4teg der3k2 d3erken 2derklä 3derlan d2erm de4rn de1ro derö2 der3r de4rs der3san 2dersat derst2 der3stau dert5ende. derter4e dert4ra 4der4trag de3ru de4ruh de4rum 2d1erz. d3erzeu 2d1erzv d2es. de2sa desa2g des1ah de4sam de2s1än de2seb de2se2h de2sei 2d1esel des3elt de3sem de3s2end desen3e de2set de2sin de2s1o de2s3p de3spe de3spu dess2 dess4e dess4t dest3alt des4temp des4terg de3stern des2tex de1sto dest3rat de3stri des2tum de2su des1un 3desw det2 de3ta deten4t 2d1e2th 2d1etw 2d1eul de1un de1url de3us de4ut 2d1e2vid devil2 de1x4a de2xer de2xis 2dexpe 2dexpo 2df2 df4la df4ru df4rü 2dg2 dgas3tr d2ge. dger2 d2gesh dge2t3a dge4t1e 2d1h2 dha1s4 d3hu di4aa di4ab di4ad di4ae di4af di4ag di4aj di4ak di4ale di4am di4ao di4ap di2a3s4 di4at4 di5at. di4au di4av di4az di3äre 3dic di1ce di3chl dicht4er di4ck3el 4d3i2co 3dida d1ide 2didee di2den 2didy di2e di3e4d di3en. di3end die2neb diener4l di3e2ni dienst3r die2p di3ers. dies1c di3e4th 3dif di4ff dige2s di4gk dig4n dik2a dil2s3 2d1imb 2dimp din4a 2d1ind di3n2e 2d1inf di4ng 2d1inh di3ni 2d1inj 2d1ink di4nn 2d1ins 2d3int 2d1inv di2o3b di2odi di4ok dion3in dion3s4 di3ora d4ios2 dip2 di3pt d1i2ra di4re. di2ren di5rig di2rin di2ris 2d1irl 2d1irr di2s1a2 2d1iso di2sp di3s4per 2d1isr dist2 di1s4ta di2s3te di2stra di4sz di2ta dite1c di2t3erl di2t3erm di2t3ers di3the di2tin di2tob di4t3r dit3s di2t1u di5vid di3z2 2dj d2jar 2dk2 d3kl dk4le dk4na dk4ne 2d1l2 d3la dlap4 d3le dle2ra dl3f dli4f dl3m dl3s 2dm2 d3ma d3me 2d1n2 d3na d3ne d3ni2 dni3g dnis1 d3nu do3a doa4k 2d1ob 3d2oba d2obo dob2s d1of do4fe 2d1oh do3ha dole4 dol3l2 d3o2ly 3dom do4mal do4mar domen1 do4ming 4domn do4mu don2a do3nan doni1e 4dony do2o do3op 2dope 2d1opf do1r4a 2d1orc 2d1ord dor2f1a dor2fä dor2f1i dor2fl dor2fo dor2fr dor4f3u 2d1org d2orn 2d3orna 2d1ort dor2ta dor2t3ei dor2ter dor4tr dos2 d2os. 2dosm dos3s dost1 d1ost. dost3a dosten2 dos4ti do4stu do3ta do3th do2tof do3un dow2s d2o1x2 d1ö dö2d dö4fe döl1 döll2 d2ön 3d2ör dö2s1c 2dp2 dpass1 dpas2se d3pf d3po dpol4n dpost1 d3ps 2dq d2r2 3d4ra. 3d4rab 4d3rad 2drahm 2d3rak 3d4ral d4rama d3ramm d3ramp d3rand dran3k 2d3rast dr4at dra4tin 2draub 2d3rauc d4rauf 2draum 2draup 2dräd d4räh 2d3rät 2d3räu 4dre. 2d3rea d4rea. d4reas 3d4reck 2d3ref 4dreg 3d4reh dre2ha dr4ei 2d3reic 3d4rei3e d4reiv d4rej 4drem 4d3ren d4reo 4d3rep 4d3rer 4dres. d4resc dres4sei dres4ser4 dres2st d4rew 2drez 2d3rh d4ria 4d3ric d3rieg 3drif 4d3riff d4rift 4d3rind 2d3rip 2d3risi 2driss 2d3ritu 2d3rob d3rod 2drogg 2drohr 3d4rohu dro2id. 2d3roll 2d3rose d4ross 2d3rost 2d3rot 2d3rou 2d3rov d3row drö2sc 3d4ruc 2d3rud 2d3ruh dr4un 2d3rut drü3b drü3cke 3d4rüs 2d1s ds3a2b d2s1ad ds1al d2salk d2sall d4s1amt d2san ds3ane ds3assi d2saut ds1än ds2äu d2schef d2schin d3s4co d2scr d2s1e2b dse2e d2s1ef ds1ehr ds2eign d2sein d2s1emb dsen3er d2s1eng dsen3s d2s1ent d2s1erf d2s1erh d2s1erk d2s1erl ds1err d2s1ers d2s1ert d2serz dse4t d2s1eta d2s1ev d2sex d3sha4 ds2hak d4shal d3sho d4shor d2sid d2s1im d3s2inf ds2kal d3s2kel d4sko d4sli d3soh d2sop dso2r ds1ori d2sö d2spat d2spä d2speri d2s3ph d3spi ds2por d4sporto d3spri d2spro ds2pu dss2 dss4t dst2 d4stag d2stas ds3tauf d2s3täti d2ste d3stec d3stei d4steil d3stell d4stem d4sten d3s2tern ds2ti ds4til ds4tip d2stoch d3strei d3s4tro ds2tur dsu2m d2sun ds1url ds2zen 2dt dta2be d3t2ac dta2d dt2ag dta2n dt3ane d3t2as dt2ax d3tea dt2et d2th d4thei d3to2 d4tob dt2op d3tö d4tök dt3r dtran2 dts2 dt3sa dtt4r dt2un d3t2ur d3tü d3ty dua2ler du1all du1alv du1ar du2b3li du1ce 2d1u4fe duf2ter duf4to duf2tr d3u2g 2d1uh du1i du2in du2kr dul3art 2d1umb 2dumd 2d1u2m1e 2dumf 2dumg 4d3umk 2duml d2ump 2dumr 2d1ums d2ums. 2d1umv du2n 2d3und 2d1unf dung4 d1unga 2dungl 2d1uni dun3ke dun2kl 2dunr dun2s 2dunsi dunst3r 2dunt 2dunw 2d3unz du1os dur2 dur3au durch3 2d1urk 2d1url 2d1urn 2d1ursa 2d1ur3t du2schn du2schr du2sch3w 2düb d3über düns3 2dv2 2dw dwa2 dwer3te dwes2 dwest1 dy2le dym3 3dyn dy2s dys1c dy4sl dys3t 2dz2 d3zw dz4we 2e1a ea2be ea2b3l ea4br ea2c eadli4 e3a2dr ea2g ea3ga4 ea3g4l ea4ka eakt2 e2akta ea2la e3alei e4alem ea2l3ent ealen2z ealer2 e3a2lerg e3alex e3a2lin eal1o ea2lon ea2lop e2alti2 eal3tr ea2l3u2 eam3 ea4ma e2am4e ea4m1o eamt2 e3anf e2ano e3ar. ea2ra ea3rat e2are e4are. ea2r1ei ea2rene e4arer e4ares e3ark e4arn2 ea2ro e3arz e2as e3a4sc easin4 ea4sp eas3s eate2 eat4mes eat2mu eat4mun ea4to ea5tri eat3s2 e3at3t2 e4atu2 e3aue e3auf eau4fe eau4fl e4aufo e4auj eau3n e2av e2az e1ä2 e3äh 2eba e3bak eba2p e3bän 2ebec ebe1er ebein5h eb2el ebe2ler ebe2lo ebels2t ebel3ste ebenen3 ebe2ras ebert4 ebese2 ebe2s3eh ebe2so 2ebet ebet4s 2ebh 2ebi 2ebl e3blä eb3le. eb3ler eb4leu e3blie eb3lo e3b2lö 2ebo e2bob ebot2 ebö2s 2ebr eb5rah e3brau eb2s1 eb4sche ebse2 ebs3p eb4spanne eb3stan ebs3tau eb4stät ebs3t2h ebs3ti eb3str ebs3treu 2ebu e2bunt ebu2t3 eby4t 2e3ca 2e3ce ech1am ech1ä 2e1che ech1ei ech2en1 echer4fa e4ch3erzi e1chi echi3e ech3l ech3m ech3n e2cho. ech3ö4 ech3re e1chri ech3sel echs2er echst3re ech3tab ech3t2ei ech3ter ech4terh e1chu ech3w 2echz e1ci e4ck. ecke4n1 e2ck3err ec4kl e4cks eck3ser 2eckt 3eckty 2e1cl 2eco 2e3cr ec1s 2ect ed2a ed2dr ed2e ede2al e3dee ede3n2er edens1 eden4sa eden2se eden2sp eden4sta edeo2 ed4e2r eder3a ede3rat ederer2 eder3t2 edes2t ed2i 2edip edi4teng e3d2o ed2ö e3drei ed4rö ed2sal ed2seh ed2s1es ed2si ed2s1o ed2sp ed2sto ed2s3tr ed2s1u edun3 edund2 edy3 edys4 2ee ee3a2 eeb2l ee3bs ee1c ee4ce ee2cho e1e2ck eede3 eede1s eed3s2 ee1e2 e1eff eef4l ee3fo eeg2 eeg4r e1ei ee2i3e eein2se eei4sc eeis3s e2ela eel2e e3e2lek eele4n eel2ö e2e3m2a e1emb e1emp eena2g e1end een1e e2e3n2i ee3n2o4 een3s e1ent e1en2z ee3o2 eeo4l e2ep ee3po e1erbt e1erd ee3r2e eer3ei ee4r3en4g eere2s eere2t eer3eti e1ermä ee1ro ee1rö e1eröf eer2ös eer3sh eer3str ee3r2un e1erz ee1s2 ee3sh ees3k ee3sp ee3s4t e2et. ee3t2a ee4tat ee2th eet2i ee3t4r ee2tu ee1u eeu4f eewa4r e1e2x e2f1ad e2f1a2g e3fah ef1ana ef1ar e2farc ef3arm e2fat ef1aus 2efä ef2äl e2fäu 2efe e2f1e2b efe2l3ei ef1em efe2n1 3e2f1ene e2fent efer3f eferin4d efeuil2 3effek 1effi ef2fl 2efi ef1id e2f1ins efi2s 2efl ef4le ef5le. e3f4lu e3f4lü 2ef2o 2efr ef4reih ef3rol ef3rom ef4ru ef4rü efs2 efs4c ef3so ef3sp ef2tan ef2tei ef2tro 2efu 2efü ega4m e3g2anz e3ge eg1eil egein3 ege2lan ege2l3au ege4l5ei4er ege2ler ege2lo eg2en ege4n1a2 egene3ra ege4nero egen3z eg2er ege2ra ege3stal ege2s3tr ege1u e4gex 2egi 2egl e2glo e2glu egmen4ta e2gn eg3nä eg3ni ego3p egori2e egs2ag eg4sal eg3se eg4sei egs2e3l eg3si eg4sk eg4sm egs2of egs4pe eg4ss egst2 eg4sto eg2th egung4 egus3 eg5ver 2e1ha eh1ach eh1ad eh2ade e3h2ah eh2al ehalt2s e3hand e2harz e3haut e1hä e1he eh1eff eh1ein e3helf eh1elt e2hense e2h3ente ehen6tr ehe3o 1e2hep 2eher ehe1ra e2h1er2f e2h1er2l ehe3str 2e1hi eh3im eh1lam eh2l3au eh1lä ehl3ein eh2lent eh5l2er ehlo2 ehl1or eh2lö ehl2se ehl4sl ehls2t 2ehm eh4mant ehme2s eh3mu eh3na eh3no 2e1ho eho4f eho2l eh3oly 2e3hö ehö2rer eh2r1a2 ehr1ä ehr1e2c eh2rei eh2rel ehr4ern ehre3s eh4rin eh1roc ehr1of eh1rö ehr3sch ehs2 eh3sh eh3sk ehs4p ehst4 eh1ste 2eh3t2 eht3h eht4r eh4ts 2e1hu e2hum eh1unf e2huni e1hü eh3üb eh3w e1hy 2ei3a2 eia4t ei2bar ei2bli ei4blu eibu4t ei2b3ute ei1ce ei2cho e2id ei2d1a ei4db ei4dl 2eidn ei3dr ei1e eie2b eie2d ei3e2l eie2m 4ei3e2n1 eienge4 eien3s ei3es eie2t 4eif. ei3flo 1eifr eif3t 2eig. 2eiga eig2ar 2eigä 2eige. 2eigeb 2eigeh 2eigeno 3eigensc 4eig2er 2eiges 2eigew 2eigi 1ei2g3n ei2go ei2g3rat 2eigre 2eigrö 2eigru 2eigrü 2eigs 2eigt 2eigu 2eih ei2hum ei2kab ei2kak eik4am eik2ar eik2i eik2l ei3k4la ei3klä eik2o e2il 4eil. ei4l3ab ei2lam eila2n ei2l3ane ei2lang ei2l3anz ei2lar 2eilb eil3d4 ei2lein eile2n1 ei2let eil3f4 eilm2 ei2lob eil2ö 2eim. ei2mab ei2m1a2g eim3all eim3alp ei2m1or 2eimö 2eimp eim2p4l eim3sa ei2mur e4i2n1a ei4na2d ei4nae ei4n3an ei4na4s ei4n3at ei2n1ä ein3d2e ein4derk e1indu 2eineb einen2e ei4n3en2g einen2s ei4nen4se ein3erbe ei2nerf ei2nerk ein3er4la ei4ness ei2neu ein4fiz 2einfo ein4fo. ein4fos ein3g2 3einger ei4nh ein2hab e2inhä ei2nie e1in2it ein3k4 ein4karn 3einkä e2inl ein3n2 3einna ei2n1o2 1einri e4insa 3einsat e2insc 3einschä ein4stal ein2teg ein4terv 3eintop 3eintö 3einträ 1einu ein3zw ei3o eio2s ei3p eip2f ei4pp ei4pz 2eir eir2c ei3re e1irr e4is. ei2sa ei3sas ei4sau ei2ser2g ei2s3er2l ei4s3erst ei2s3erw 1eisho ei3s2ky ei2so eis4pe e2iss eist4e ei1sto eis4tol ei2sum ei2sur 1eiswo e2it ei2t1a2b ei2tal ei2t1an ei2tap ei2tar ei4tat 2eitä ei2tän ei2teli eite4ra ei4tess eit1h ei2tin ei2trau ei4tro eit3t4 4eitu ei4t1um ei2t1ur eit3z4 eiv2 eive4 ei2zar eiz1in 2ej e3ju 2ek. 2e3k2a 1ekd ek2e e3ke. e3ke4n eker3z e3kes e3key e3ki e3k2l ek4lo ek4na ek4ne ek4ni ek4nu e3k2o ekor2da 2e3kr ek4s3p 2ekt ek2tan ek4tank ek3t4ante ek2t3at ek2t1ä ek2te2l ek2tep ekt3erf ekt3erk ek2t3er2z ekt2o ek2t3o4b ek5tri ekts2 2e3ku ekur2a e3k2w 1ekz e1la el2abt el3abu ela2ck e2l1af ela4h e2l1ak e2l1a4m e4lame el2a5mi el1ana e4landa el1ank e2lanm e4l1ans e2l1ant e4lanw el1anz 2elao e2l1ap e2l1ar el3a2ri ela2s el1a4si el1asp ela3su 2e1lä 2elbil 2elbr 2eld elda2r eld3ari eld2arm el2d3erf el2derl el3dern elder2s eld3erst el3des elds2 4e3le. 2e3lea elea2r 2eleb 4ele2c el1ech 1elefa eleg3s 4eleh el3ehe. 2elei e4l3ei4ern e2l1ein e3leine e3leit el1eiw 1elek 2eleko e2l1el ele3ler 1e2lem 2e3lem. e3lema el1emb el1e2mi e3lemm 4el1emp 2e3len. elen2k3l e2lense e2l1ent e3lep 4eler e3ler. eler2a el1erd el1erf e2ler2fa e2lerfi e2lerg el1erh e2l1erk e2l1erl eler2la e2l3ernä eler2ö e2l1err el3eru el1erw e2l1ess eles2t e2l1e4ta el2eth ele2ti elet2ta el1e2x e3lex. 1elf. elf2er 1elfm elf4r 1elft elgi3 el3g2l elg4r e2l1id 2e3lie elif3 2elig e2lim elin3a el3inka eli3no el1ins 4elis 2elk el2larb ellar4t ell2ei ell3ein ell3eis el4lel ell2er eller4fas eller5g ell3erh el3les el2lim 1ellip el2lor ell2ö ell3sp elm2e elm3ein el3na 2elo e2l3oa e2lof elo4fe e2lol e2lom e2lonk el1opf e2l1or e3lore elo2ri e3lot e3l2ov 2elö elö2s el3p2 el4sb el2s3ein el3sen els4tri el2sum el3tar elte4m el5ten. el4t3ent elter4b elter2f elt3erh elter2k elter4le 3elter4n elt5ero elter2s elte4s el4tesc elt3eth el3the el5tri el4ts elt3se 2e1lu el1uf e2l1um e2l3u2r elu2s el3use elu2t el3ute el3uto e1lü 2ely e2lya el2zar el2zene elz1in e2m3a2b em4ak e2m3alar e2m1alk em3anf e2m1ano em1ans 1emanz e4m1a4sp em1au 2e3mä em2äh 1embo 1embry em2dä emd1r em2dra 2eme e2m1e2b e2mef eme2i e2mele em2en emen4gel emen2t3h e4mentsp emer2i e2m1er2l em1erw 3e2meti em1i2d emi2ei e2mig emik2 em1im 2emin emi3n2a e3mind em1int 1e2mir 4emisc emi4scha emi3tr emma3u em2m1ei e2mof emo3s 1empf4 em3pfl em3po empo1s em2sa em4scha em2sim em2spr em2st ems5tr ems6tra em3t2 1e2mul 3emuls emu3ne3 e3mur 2emü e2na 4ena. e4na2b en3aba en3abo 4ena2c en3ache e4n1ack enadi4 e4naf 4enah en3ak ena4ke en1al e4nalb e3nale ena3l2i e4nalk e4nalm e4nalo enal3p enal4s 4en1am ena4n e4nand en3ane e4nant e4nanz en1ap ena2pa en3are en3ark 4enarm en3aro en1as ena4sc e4na2st 2enat 4e5nati e4natl enat4s e4n3att 4enatu e4nau4f en3aug e5naui e4n3aur e4nausta e4naut e4n1ax en1a4z en1ä en3äb en4äc e2när en2ä3s en3äst 2enbew 2enbom en2ce. end2ac en2dal en2dang 4endef 2endel ende2lä en2d3es4s en2dex en2did en3d2ort en2dost en3d4rü end3s2au end3s2l end3s2p end3sz en3d2um en3d2ü 2ene. en3e2ben en1e2c e2neff ene3hen en2eid e3neien e4neige e4nein e4neis e2n1el ene4le 2ene2m e2n1emi 2enen e4n1ent en3envi en1ep 4e3ner. e2n1erd e2nerf en2erfr 1energ 3energi e2nerh e2nerk e2n1erl e2nermi e2n3ermo 4enern e2n3erne ene2ro e2n1erp e2n1err e2n1ers 4eners. e2n1ert en2ert. e2n3eru e2n1erw 2enes e3nes. e2n1e4sc e2n1esk e2n1ess en1eta e2n1eth en1eul e2n1e2v e4ne2x en3f en4fb en4ff en4fg en4fh en4fk en4fm en4fp en4fs en4ft enf2u en4fw en4fz 1engad 1engag eng2al en3geb enge3r2a eng2i en3gn en3g2o 1engp eng4ra eng3se e3ni. 2e3nic 2e3nie eni3er. eni3era eni3erp eni3ers. en3i2ko en3ill eni4m en1ima en1imi e2n1in en3inh e3nio en3ion e2nir 2enis eni4sa e4n3iso e3nit2 e3niv enk3aus 3enkeli enk3erg en2k3erk en3k2ü en5mil en2nef en2nel enner2e en2ner2f enn3erg enn2i enni4ger 2enniv enns2 enn3ste e2n3oa e2n1ob e3nobel eno2br e2nof e2noh en3oli en3olm eno4ma eno4n e2n1op e2n1o2r en2ora eno4ri 4enorm e2n1ost 4e3not eno2w e1nö en1ö2d e4nöf e4nök e4nöl 4enred en3sabb en2san en3sche en2seb ense2e 1ensem ensen3e en3s4pen en3spo ens2por 4enst. enst3alt en2stät ens4tel ens4temp ens2th 4enstl 2ensto enst2ü 2entab en2tad 2entaf en5t2ag en2tanm en2tanw en3tar ent2ark 1entd en3t2el ente2n 3entera en2terb 1entf 2entfo 1entg 3entgeg en2thi 1enthu 1enthü en2t1id 3entla 1entn en2tob entopf3 en2t1os 2entö en5tré en4ts 1entsc 1entso 2entss ent2sto 3en4tw 4entwet 1entz e2n1u e3nu. e4nur enu4t e4nuto e1nü 4enwü e1ny en3zare en2zene enz3erf enz3erg enz3erk enzer2l enz3erm enz3ersc en4zf enzi2d enzlan2 enzo2l en4zp en4zr en4zs 4enzuf 1enzy 2eo eo3a e1o2b1 eo3ben eo3bl eo3bo eo3br eo1c eoch2 e1of eo3g2 e1oh eo3la e3o2ly e1on e3o2nat eon2i eo1o eo2pe e1opf e4oph eop4r e1or e3or. eo1ra e3orb e3o4r3ei eorgi1 e3ors eort2 e3orw eo1s2 e3os. eo3se e1oste e1ou2 eo1ul eou4t e1ö2 eö4fe 2ep2a epa2g epas4ser 2epeg 2eper e3p2f ep4fl 2epia e2pid e4pig e2pik 3e4pile e3pio e4pip 1epis 2epist 1e2pit ep3le ep4lu 1epoc eport4 epor3te 3e2pos. ep4p1a eppe3l ep4pl ep2pr 2epr ep4rä ep3sh ep2tal ep2tau ep2tä 2e3pu epu2s 2eq e3qu er1a e3ra. e2r3a2ch e3rad. e3ra3di e2radj e2r3adm e4radmi e4r3adr eraf4a era2g era3ges e1rah e1rai er3aic e3rake era4ku e1rald eral2eb er3alke e2r3all er2an. era4n4a eran3d e3rand. e2rangr e2ranh e2rano e1rap er3apa er3apf er3apo e2rar er3are e3rari era2rie e3ras. era2si era2ß e2ratel e3rativ e2ratl e1raub e1rauc er3aue erau4f er3aug e2ra2v e1raw e2r3ax e1raz e1rä er1äf er1äh er1ä4m er1äp e2r1äs er1ätz 3erbarm erb2au erb2e er3blo 2erbru erb2sp er1c erche3i er3chl erch2o erd2am erda5me 1erdb 2erdec er2d3en4g erd3erw erdes2t erdeu2 1erdg erd3st 2erdy 4ere. er3e2ben e3r2ech er3echs er1e2ck er1edi ere2dit er1eff e2r1e2h ere3ho 4e3rei. e3reib 1er1eig er3eime e4reink er3eis. er3eisar er3eisb er3eisf er3eisr erei3str er3eisv e4rek er1e2l e2rele ere3lev 2erem 4erem. er1emi ere2mis e2remp 2eren 4e3ren. e3rena eren1e e2rense e2rentn e4r3ents e3renz eren4z5en4d er4eo er1epe 4erer. 2ererb e2r1erd e4rerfo e2rerh e2rerk e2rer2l erer3lau e2rerm 2erern. e2rerne e2rer2o erer2ri er1ers 2erers. e4rersche e2rert 2ererv 2ererw e4r3erze 2eres 4eres. ere2sp er1ess eres3sk er1eta eretri3 er1eul ere3un ere2vid erf2e 2erfir 4erform erf4r 4erfür er2g3are 4ergebi 3ergebn 4ergebü 2ergeha 2ergehä ergel4s3 erg3elst 2ergeni 2ergn er2gop 4ergrem erg1s erg3s2o ergs4p ergs4t e2rh 1erhab er3hag 2erhai 2erhals 2erham 2erhas er3hei 2erher 4erhöc er3hu 2eri e2riat e3rib 4e3ric e4r3ico er1id 4e3rie erien1 erie2ne e4rij e3rik eri3k4l 4erin. e2r1ind erin2fo e2r1in2i er1in3k er1inl er1int er1inz e2ri2on e4rir 4eris e2riso e2risr er1ita 3eritr e3riv 2erk. 2erkaj er3ker er3kla 1erklä 2erkm erk3t4 erk5to er2kum 2erl. 2erlag 3erlebn 2erln erm2 er3ma 1ermah er3men ermen2s erm3ers er2nalg er2n3alt er2nau er4nene er2nerf er2nerk 3erneue er2nob erno2r ern1os 2e1ro. e1roa er1ob ero2bl ero2br e2r1of e3rofr e1rog e1roh e1rok e1rol er3oly e1rom er3omb 2e3ron e2r1oo er1op 2e4ro4r eror2a e1ros 1erosi e3rosit e1rou e2r1o2v e1row er1ox er1oz erö2d 2eröh erö4l er1ös erö2sc er3pl 3erprobu er3rä 4erren ers4ana ersch4 er3schm er3schn er3sen ers3hal er3s4i er3sk ers4por er3stel erst3ers 2erstil ers4tod ers6tri er3swi er3sz ert1ab 4erteig er2t3erf er2t3er2g er2ter2h er2ter2k er2ters ert1h er2tho 4ertö er3trau er5tri 4ertru er4ts ert3s2e ert3s2p 2eru eruf4s3 e4r3uhr er1u2m1 er1und e4rundu erung4 er1up. e4r3ur er3use eru4t er3ute e2r3uz erü4b 3erweck 6erweib es3ab e4sabe e2s1a2d e3saf es3ak e4s3all es1ami es3ampl es2ank es2anm es2anr es3anz e3sap es2apa esa2ra e3sa2s es2ast e3satz esa2v es1ax 2esb esbi3er. e3s2ce esch2 es4chi e2s3ec es1ehr esein2s es4ek es2el ese3lam 4esen ese4nal ese2neu esen3o e3s2ens esen3sk esen3th ese4r1u4 eses2k e2s3e2x 2esf 2esh es2har 2esi esi1er e2s3i2k e2s1il esi2st e4sk. es2kat e4skä e4s3ke e4s3kl e4skö es3ku e4s3ky es3l 2esm e2s3oa e4s3ob es1od eso4f e3s2oh e3sol esonan2 eso2r es1ora eso3re es2ort e3sot e3s2ö 2es2p e3s4pal es4park es4pec e4spers e2s3ph e3spi e3s4por es4pru es4put 2esr 2ess. es2s1a2g essali3 essau2s 1essay es3sc ess2ere ess2erf es2s3er2g ess3er4la es5sie 2esso es2sof es2sorg es2s3pa es2spu ess3tie es3stu es4sü e4st. estab4b esta3ge est1ak es4tanb es4tang e2stant e1stap e1star e2starb e2sta4s est3asc e1stat e2stat. e2staum es5te. es2tec este4i est3eing est3eink est3einl est3eint e1ste2l es4t3emi e4sten es4t3eng est3entr es2tep est3ergi est3erha es2ter2ö es4t3es4s es2th es2tid e1stil e2stip es2tis e4stl estmo4de. 1estn e2stom e3strec es4tri e1strö es4ts est3ums es2tur est3urk e1s4tü e3sty es4uc e3suh e2s1um es3ums es2und es3unt es1ur esu4s es4ut 2esw e3sy es4ym es3z es4zene es4zk 2eß e2ß1el e2ßent eß2e3re e2ß1er2g e2ß1erl eß3t etab4 eta2c 2e3taf 2etal et1a4mi et4an. e3tas et2ast et4at etat3r et1äh 2ete ete2e e2t1ef et1ein ete3ke eten3d2 ete2o eter1ä eter2hö eter2tr ete2s 2eth. et2ha et3hal e3the et2hi e4thik 3ethn et2hu e4t1i2d eti2m eti3na et1ini et2it eti2ta eti4th et3l 2eto e2t1o4f eto4n3al eto2ner etons4 et1orc e4torg eto2s 2etr et3rad e2traum et3rec e4t3res et4ros ets2c etscher5e etsch3w et2s3pe et2ste ett1a et2ta2b et2tad et2tak etta4m et2tans ett2as et2tau et2tei ette4n1 ett4er et2t1h et2t3r et2t1um 3e2tui e3tur e3tü e4tüb etwa4r ety2l1 1e2tym 2etz et2z3w eu1a2 eu3b eub4r 2euc euch4ta 2eud eude1s eudi4e eu2eb eue2r3ei eueren2 euerer4s euerer4t eu3eri euer2ri eu2esc 2euf eu4fer eu2g1a euge2mi eu4gense eugin2 eugin4f eu2ging eu2gre eu2gri eugs4 eug3sp eu3h eu1id eu1in 1eukal eu2kä eulan2 euland3 eul2e eul2i 2e1um e3um. eu3m4a e3umb e3umf e3uml e3um2s eum4s3p e3umw 2eu2na eun2e e3un2g eu2nio eu4nis eunk2 eun3ka eu1o2 eu3p e1up. eu4pd eup2f e3u4pg eu4r1an eu2r3ast eura3t eu2rau eur1c e2ure euren2 eu2rens eur4er eurf4 1euro eu4rs eur4so e3usar eusch2o eus2i eu4sk eu3s2p eust4 eu1sta eu1sto eu1s4tr eut2e eute3r2e eut2h 1eu3tha eut2i eut2o eu5tor euts4 eut4schn eut4schr 2eux eu1y eu2za euz3eic eu2zo eu2z3w e1ü e3üb e2vak e3var eva4s3 2ev2e eve5ri evie3le 2e3vor ewä2s e2we. ewei4sc ewert2 ewer3te ewi2s e3wit 2ex. 1exa4m ex3at 2exc 2exd e2xel ex1er 2exes e1xi 2exik e2xil e2x1in e3xio 1exis ex3l 1exp 2expu 2ext. 2ex2ta ex2tin 1extr 2extu 2extv 2exu e2xum 2e1xy 2ey1 eyl2 ey2n ey3no eys2 e3z2a ez2ä e2z1enn e3zi ezi2s ez2o ez4wa ez4wi ezz2 é1 é2e égi2 él2 élu2 ém2 ér2 ési2s éu2 éz2 è1 ène1 ènes4 2ët ê2t 1f 2f1abb fa2ben 2fabf 2fabg 2f1a2bl 2fabn 3f2abr 2f1abs 2fabw fa2cheb fa2chel fa2ch1i fa2cho fachs4p fa2dan fa2del f4aden f1ader fa2di fa2dr fa3e fa4eli 2faf fah4l3ent 3fahrt fai3b f1a4ka fa4ke f3aktio f4akto f2aku fa3l2a fa3le fal2kl fal2l1a fal3le. fal2l3ei fall3ent fal2ler fall3er4s fal4scha fal4schei fal4schl fal2tr fa4mei 4f1amp f1amt f2an. fa2nar 2fanb fand2a f2anf fan2ga fan2gr 2f1an3k 2fanl 4fann f1anp 2fanr 2fanw 2f1an3z 2f1a2p f2ar far2b1a far4bel far2b3er far2bin farb1l far2bo far4b3r far2b3u f3arc 3fa3ri farm2e far2r1a far2rh farr3s 2f3art 2f3arz fa3s4a fa3sh fa2st 2f1astr fa2ß f3at f4at. fa2to f4ats 4fatt 2f1aue 2f1auf f3aug fau2s f1ausb faus4t3r 3fav fa2xa 3fä1c fäh4rin fäh2ru f1älte 2fäq 3färb 2f1ärm 4f1ärz fässer2 fäs4serk fäs4serw fä2ßer 2f1ätz 2fäug 2fäx 2fb2 fber2 fb4re 2f1c f3ch 2fd2 f3da fdien2 fd4rö f3ds 3fe. featu4 fe2c f2ech fe3che fech5t2e fe2del fe2dr fe2e1i feein3 fe1em 4f1e2he fehle2 feh2lei fei3le f2eind fe3infr 2f1eing fe3ini fe3ins. fei4nu 2f1einw f1eis fek2tin fek2t3r fe2l3a2 fe2l1ä fel2da felde4m feld2er fel2dr 2fe2lek fe2l1er fe2les fel3le. fe2l1o fels2t felt4 4fel4tern f2em. 2femb fem4m 2femp 3fen. fen3a2 fe2nä fend2 4fenerg fene4t fe2ni fe2no fen3s2a fens2c fenst2 f1ent fen3t2a 2f3entf f2enti 2fentla f2ento 2fentw 4f3entz fe4pi f2er. fe2r3a2d fer3al fe1ran fe2rang fer2ant fe2ranz fe2r1ä 2ferd. fer3da fer3d2e3 2ferde. 2ferden fe2r1e2b fe2rec fer2ei 4f3ereig fer3eis fer3ell fe3rerf fe2rer2g fer2fah fer2fol ferg4 2fer2geb f4erges f4ergr fe2ri2d ferie4n3 feri4on fer2leb fer3m f2ern. fer4nei fe2rö f4erpa f4erpf f4erpl f4er5ra fer2reg ferri2 f2ers. f2ert fert4r f2erz fer2zeu 3fes fes3s2e fe2sta fest3a2b fest3an fest3ei fes4tel fester2 fes4t1o fe2s4t3r 2f1e2ta fe4tag fe2th fet4t3a fetti3s 2feu. feuer3ö 2f1ex fe1y2 2ff ffab2s ff1a2d f3f2ak ff3ar f3fas ffa2t ff1au f2f1e2b f2f1ef f2f1ei ffe3in. ff1e2m f2femi ff2en ff3erle ffer3z fff4a ffi3k ffin3s ff1lag ff3le ff3li ff5lon f3flü ffo2r ff1ox f3f4rä ff3ro ff4rü ffs2am ff2s3p ffs3tie ffs3tut ff3stü ff3t2 ffus3s 2fg2 fgeb2 fge3s f3gh fglim2 f3gü 2f1h2 fh4eu f3hu fi4ak fi2ar fi3at fid2 fi2do fid4s f2i2e fi4eb fie1i fien3 fi1er2f fi4es. 2fif fi2g3r fi2k1as fi2kel fi2kin fi2kn fi2k1o4 fi4k3r f2il fi2l3an fil3d fi2les fil2et fi3li fi4lin fil2ip fil2ma fil2mä fil2med fil2mei fi2l1o 2f1im fi4mi 4f3imp 3f2in2a fin2e 2f1inf fing2 fing4s 2f1inh fi3ni fin2s fin3sc fin3sti 4f1int 4f1inv fi2o fi3ol fi2r fi3ra fi4re fir3me fi3s2a fi2sch3a fi4schei fisch3o fi2schr fi2sch3w fi3s4h 2f1iso fis2p fi2s3t fite2 fi2tin fit1o2 fi4tor five4 fi2xel fi2za 2fj f2jo 2fk2 fkaken4 fka4t3 fk4ne f2l2 2fl. f3lad f5land f4lans f3lap f4lasc fl4at f3lat3s flauma2 3flä f4läc 4fläd 4fläh 4f3län 4flär 4f3läu f3le. 2f3leb f4lec f4lee 2f5lein flek3 flekt2 f3ler f4lex f3li. 3f4lim f3lind fli4ne f3ling 2f3lins f4log 2f3lon 3f4lop 3f4loß 3f4lot flo2w f3lö 4flöf f4lög f4löß f4löz 3f4luc f3luf 3f4lug 3f4luss f4lut flut1o f3lüm fly1 2fm2 f3ma fma3che fma2d 2f1n2 f3na f3ne fnerz2 f3ni fni2s f1ob fo2be 4fober fob2l 2f3of fo4fe 3foli3 3fon fo2na fo4nan fon3au fon3dr foni2e fo4n1in fo2nop fons4 fo2nu f1o2p fo3po 4f3org fo3rin 3form for2m3a2g for4mas for2m3ei for2min forni5er. for4st 3fortb for2t3ei for2ter for2th for2t3r fort3s2 for3tu for2u fot4r 2föf fö4fe 2f1ök 2f1öl för4s 2fp2 f3pf f3pl fp4lu 2fq f2r2 f3ra. frach4tr 2f3rad 2f3rah fra4m fr4an f3rand f3rap f3rase fras3ta f3rat 3frau. f3rauc 2fräd 3f4rän 2fre. f3rec f3red 4fref f4rei. f3reic f4reie frei3f f4reig frei3k2 4frein 2frek 2f3rep f4req f3resi 4frest 3f4reu 2f3ric fricht4e fri3d f4ri2e f5rieb f5rief 2frig f4ri3k 2f3rin f3rip fr4is f4risc f4rist 2f3roc f3rok 2frol 3f4ro2n fro4n1a f4ror f4ro2s f3rot f3roz frös2 f3ru f4ruc f3rü 2f1s f2s1al f2sa2n fs3ane f4s3ar f2s1a2s fsa2t fs3ate f2saut fs2än f3sc f4sca f4sce f4schan f4schef f4schro f4scr f2s1e2b fse2ei fs1ehr fse2n fs1en1e f2s1ent f2s1er fser2u fse4t f2s1eta f2s1i2d f3s2ky f2s1o2 f3soh f3sol fs2pa f2s3pas f2sph f3s2pl f3s2por fs2prä f2spre f2spro fs2pul fs3s2 fss4h fs2t f4st. fst2a fs3tak f2stas f3stat fs3tät f2stäti f2stech fste2i f3stel f3stern fs3th f2stip fs4tor fst4r f2s3tres fs3trü f2stüte f2s1un f3sy 2ft f4ta. ft1a2be ft1abl ft1af ft2ag ft1ala ft1an f2t1ap ft1a2r ft3att f2t1äu fte2c ft1eck ft1edi ft1eh fte2he ft1eig ft1ein ft1eis ft1eli fte3ma ft1emi f4t1ent ft3erfü ft1erk f2t1erl fter2le f2t1erz f4t1eti f2t1ex f2t1h f4t3hei f2t1id f3tik f2tim f2t1in f3t2ing fto2 f2t1of f2t3ot f3t4ran f2tres f3treu ft4rit ft3ro ft4ru ft5rud ft5ruh ft2s1 ftsa2g ft4sam ft3s2c ft4sche ftse2 ftsen1 ft3st ft4staf fts3tät ft4stei ft4stem ft4stier ft4streu f2tum ft1urk ft1url f3tü1 f4tüb ftwa4 ft3z2 ftze3d ftz4w 3fuc 3fug fugi3 3f2uh fuku3 fulb4 f1um1 fu2mei f2umm 2fums fun2d3er 2f1unf fung4 2fungl 2f1u2ni fun2k3l fun2ko fun2k3r fun2ku 4funm 4funr 4funt f2ur furch2 fu4re. 2f3url fus2sa fus2s3p fus2st fu2ß1er 3fut 2füb fühl2sc fün2 fü2r 2fv 2fw fwur2 2f1y 2fz fz2a fzeiten4 fzei4tend fz2ö fz4wi 1g 3ga. 2gabf 2gabg 2g1a2b3l gab2o gab4ri 2gabsc g2abt. 2gabtr ga3bu 2gabw 2gabz ga1c gade2r ga3d2i gadi4e ga2dr gae2 ga3fl 3gag. ga3k ga4kt ga4ku gal2a 2g1alau 2g1alb g1alg gal3lo 2g1alp 2g1alta 2g1altd g1a2lu ga4mec gam3ma 3g4amo 2g1amt g1a2na 2ganal gan3d2 2ganf 2ganga 2gangeb gan2gr gang4sp gan2g1u 2g1ank 2ganl 2ganmu 3gano ga2nob 2ganr gans2 g2ans. 2g1ansi 2ganst 2ganw ga1ny 2g1anz ga3pe 2g1app 3gar. g2ara 2garc 3g2ard ga3ret ga3r2i 2g3arm ga3r2o gar2s 2g1arti ga3ru 2g1arz g2as. ga2sa ga4s3al ga4sam gasche2 gase2 ga3se. ga2sei ga2sel ga2se4m ga2si ga2sor gas3pe gas3s2 3g4asse. g3asses 4gassess ga2st ga4ste gas4t3el ga4str gast3rä ga3t2a 2gatm gat4r gau1c 2g1auf 2g3aug g2auk gau3ne 2g1aus 2g1aut ga3z gäm3 2g1äp gär3th 2g1ärz gä4st 2g1ät gä4us 2gb2 gber2 gbi2 gb4ri gby4t 2g1c 2gd g3d2ad gda3de g2d1ak g2d1an g2d1au gdä1 g2dei2 gd1els g2dent g2d1er g2d1et g2d1in g2dop gd3re gd3ru gd3s2 gdt4r ge3a2 ge4at. ge4ate geb2a 3gebä ge4bb 3gebi ge3ble geb2lin geb4lo gebot4 ge4bt 3gebü ge1c ge3ck ge1e2 ge3ec ge2es geest3 ge3fa 2gefak 3gefä 4g1eff gef4l gef4r gege2n gegene4 gegen3s4 ge3g2l geg4r 3geha 3gehä geher3l ge3ho ge4hs ge4ht ge3hur 2g1eid ge4ie2 ge4ig ge1in ge2inf gein2h gein3i 2g1einr gein2s gein2v ge1ir 2g1eise gei3sh geis2s3c gei2st geist3r ge4iz 2gek. ge2lanz gelb1r gel2b3ra gelb3s 3ge4ld gel2den gelder2 gel4derh gel4ders ge3lec gele3cke ge2lef 2g3e2lek 2gelem gelen1 ge2lene geler3l geler3ö ge2l3ers ge2l1ev gel3f gel1i4m gel3la gell2i gel2ö gel3sa gels2p gels2t gel3ste gel3sz ge4lt gel2ta gelt4r gel3z4 gem2 ge2ma. ge3mau gem4e 4g1emp gem3s ge3mu 3g4en. ge3na ge4n1ac ge4nad ge4nak ge4nal ge4nam ge4nap ge4nar ge4nat 2genda. gend3in 2g3endmo gen2d3r gen2eh gen3eid 2generg ge2n3ern gen4erwe gener2z ge2nim gen3k4 gen3n 3geno ge2noc ge4nr gen4sam gen4semb gen3sk gen3sz gen3tä 2gentf gen3t2h gen3tr 2gentw ge1oo geo2ri g2ep ge5pfi ge3pl ge3po ge1ra ge2ra2b ge2rak ge2r3al ge3rann ge2rant ge4r3a2r ger2as ge4rb 2gerdg ge3rem ge2rene ge2reng ge2ren2s ge2r3ent ger2er gerin2d gerin4f ger2inn gerin2t 2ger2klä g3erlas 3g2erlä ger3no 2g1ernt ge1ro ge2rob ge1r2ö 4g3erprob ger2sat 2g3er2seh ge3r2u ger2zeu ge1s2 g4es. ges3auf gesch4 ge4sche. ge2s3eb 2g3e2sel. ges3elt ge2s3er ge3sha ge3si ges3k ge3so ges3s2a ges3se ges3s4t gest2 gest4a ge3stak ges4tan gest4e ges4tem ge4s3ter ges3th ges4tier ge2s3tur ge3t2a ge4tang ge4tant g1etap ge2thi ge5tri ge3t4u ge5tun 2g1e1ul ge3unk ge1urt ge3u4t ge3we 2g1e2x 2gf2 g3fe gfi2l gf4rü 2gg gga4t g3ge gge2ne gge3sa ggi3e gg2l g3gla g3glo g2g3n gg4re gg5re. ggs2 2g1h gh2a 3ghale gh2e gheit4 3g2het 3g2hie gh1l gho3re 3gh2r ghs2 gh3sc g2hu gh3w gi3alo gich2 gicht1 gi2e gi4eb gie3g gie1i gie3l giel2a gie5n2e gi4eno gi3ens gie3res gi3ern gie1st gift5s gi2gu gi2kel gi2me. gi4mes gi2met 2gimp 2gin2d gi3ne 2g1inf 4gingeni 2gin2h g1i4ns gin2sa 2ginsf 2g3int 2gin2v gi2ob 2giok 2g3isel gist4 giste4 git2a gitt2 gitt4e gi3tu gi4u3s 2gj 2gk2 gk4ne g3ko gl2 2gl. 2g1lab 2g1lac 2gladu 2g1lag 2g1lam 2gland gla2s1c glas3p glas3t4 gl4at 3g2laub 2g1lauf 2gländ 3gläs 2gläuf gl3b g2le 2g3le. 3glea 2g3leb g3lec 3gled g3lee 2g3leg 2gleh g4leic 4g3lein glei4st gleiter6sc glei4t5r g3len 4glenk 4g3ler glerei2 2gles 3gles. g3lese g2lia 2glib 3g2lid 3g2lie 4g3lieb 2glif g2lik 4glil g2lim 2glin g2lio 2glis g2lit g3lite g2liz g3lize g2loa g2lob g2loc 2g3loch g5loks g2lom g2lop 2glorb 2glos g2lot 2glöch 2glös 2glöw 2gls g1lu 2g3luf 2gluk 2g3lun g2lut 3g2lü g3lüg 2glw 3g2ly 2gm2 gmen2tr gmi2s g1n 2gn. g2n2a g4na. 2gnac g4nad 2gnah gn4al gna2ler3 2gnanl 3g2nä 2gnb 2gnc 2gnd gn2e g3neh 2gn3ent gne2tr gneu1 2gnf 2gng 2gnh g2nie g2nif g4n1in 2gning 2gnint 2gni2s3 gnise2 2gnk 2gnl 2gnm g2no 3g4non gno1r g3not 2gnp 2gnr 2gns 2gnt 2gnu 3g2num. g2nü 2gnv 2gnw g2ny 2gnz 3go. go2a3 go4al g1ob gobe3l 2go4bj g2ob2l go4b2s go4ch goe3 2g1of go4fe 2gog go4gh 2g1oh2 goh3ren go1i gol2a gol2da gol2fr go4mn 3gon. go4nat go4nd gon2e 3gons 3g2opa gopf4 go2pos 2gopt gor2a 2g1o4rd g1org go4rt 3gos go2si go2sp go4ss go1ste 4g1osz go3th go4tt got4terb got4t3erg 3gou go1y gö4fe g1öl 3göt 2gp2 g3pf gp4fu gp4la g3ps g3pü 2gq g2r2 g4r4ab gra2ba gra2bi gra4bl 2g3radl 2g3rah g3rai 2g3rak gr4al gram1 grammen4 gram4m5end gram4mer g3rand g4rande 2gra2r grar1e gra3rie gra4s3a gra4sh gra4sp gra2st 2g3raub grau5f 2graum grau3sk 2gräd g3rän gräs1c g3räu 2gre. g4reb 2g3rec g3rede g4ree 2g3ref gre2fr 2grege 2g3reic grei4fr 2g3reih g3reim g3rein g3reit 3g4rem 3g4ren 4g5renn gre3no gren4z3ei grenz3w g4rer 2g3rese g3ret g3rev 2g3ric gri2e 4g3riem g3riese 2grig gril2la 4g3ring 4g3rinn gro2b3a gro3ber gro2bl gro2b3r 2groc 2groh 2g3rol gr4om 2g3rose g4ross gros4sel g4roß g4rot 2g3röc 2gröh 2gruf. g4ruft 2g3ruh g3rui 2g3rum grunder5n grun2g 3grup 4g3rut 2g3rüc 2g2s1 gsa2 gs3ab g4sac g5sa3ck gs3a4k g3sal g4s3alb g4sall g4salm g4salt gs2am g4s3ama gs3amb g4s3amp gs3a4p gs3ar g3sat gsa3te gsau2g gsau4r g3säu g3s2c g4sca g4s3ce gsch4 g4schef gs4chi g4scl g4sco gse2 gs2e3h g3s4eil gse4kl g3sel. g4sela g3seln gs3em gsen1 g4ser g3sere gs3er1i g4se4s gse4t g4seu gsfi2l gs3ha gsi2d gs3i2k g3s4il gs3io g4s3ita gs2ki1e gso2 g4so4b gso4f g3sol gs4on g4s3op g3s4oz gs3p gs4pac gs4pant g3spei g3spek g4spf g3spi gs4pir g4spl g3s4port. g4spru gsrü2c gs3s2 gss4t gss4w g4st. gs3ta g3s4tad g4stag g3s4tan gs6tand g4stanz g3star gs4tati gst1au gs3tä g3steh g3s4tein g3st2el gs4tell gste2r gst3err g1steu gs2thy g3stif g3stil g3stim g3stir g3sto g4stoch g4stod gs4tof g4stor gs3tö gs4tör gst3reit gs3t4res g4s3treu gs4t3rit gst3ros gs3trü g3stun gs3tü gs4uc gs3un g3sy gs4ys 2gt g3te gtei3s gt1h gt2hy gt2i gti2m g3to gt4ra gt2s g3tü gu4ale gu3am gu1ant gu1as gu1c gu4d3r gu2e 2gued guet4 2g1uf gu4fe 2g1uh gu3ins gu1is gum4e 3gumm gummi1 gun2e 2g1unf gunge2 2gungew 2gungl 2g1u2ni 2g3unk 2gunr gun2s 2gunt gure4 2g1url gur2t3h gur2tr gurt3s gu2s gu4s3a gu3sc guschi3 gu3se gus3se. guss1o gus2sp gus2st gu4st gust3a2b gus3te gus4t3en4d gus4terl gus4tr gu2t gut1a gut3er2h gut1h gut2s3p 2güb 3gür3 gü2s3 2gv 2gw gy2a gy3n gy4na 2gz2 gzeu2gi g3zh 2ha. hab2a hab2e h3abf hab2i h1ablu 2habn h1a2br h1abs 2habw ha2ch3en ha2cho hacks4 2hada ha2del h1adle h1a2dr ha3dri 2hae ha3el ha4far haf2e h1affä haf3f4l h2aft haf4to haf2tr haf4tre haft4s3p hag2a h2agg h1ah ha3ha h2ahs h2ai 3hai. h2aj 2haka ha4kes ha3kl 2h2al. ha3l2al halan2c h1a2lar ha2lau hal2ba hal4bel hal2bin hal2b3r hal2bu 2hale 2halh hal2i hal2l1a haller2 ha3lo 4halp hal4sk hal2sp hal2st hal2tal hal2tei hal2t5r hamot4 hampi4ons 2h1amt h2an. 2hana ha2nal ha2nan han2au 2hanb h2anbe h2and han2da han3den han2d3er han2d3r hand3s ha2nem hanf1 han2fl han4g3end han2gro han2k1 2hanl 2hano 2hanr h1ansc 2hanz 2h1ap 3h2ape ha2pl ha2po ha2pr ha3ra h1a4rab 2harb 2harc h2ard har2fr h1arm. har3ma h2arme har2me. har4ne ha2rom 2hars har2th h1arti har4tr h2arts har2za h2as 2has. 2ha3sa has4c has2h3 has2p has4sa has2ser2 has4s3t ha2str h1a2ß ha2ta hat2i h3atl ha2t3r 2hats hatt2 hat5tr h1audi h1aufb hau3f4lie hau3f4lo 2h1aufm h1aufs h3au3g2 h1aukt hau2sa hau4san hau2s1c h2ause hau2sel hau4s3ent hau2spa hau2spe haussen4 hau2sur hau2t1a hauten4 hauto2 hau4t3r ha2ve. havil2 häde2 h1äff 2häi hä2kl 2h1ärz hä4s3chen 2h1äst 2häug häu2s1c hä3usp 2hb2 hba2ras hber2e h3bo hb4ri 2h1c 2hd2 hdan2 hdä1 h3ds 2hea he2ad he3as heb3eis he2b3l he3bla he3ch2e he1cho h3echs hed2g he2dit he1e4m he1e2n he2en. hee2s he1e2t h2ef. he2fan he2fau he2f1ei hef2em hef3erm 2heff he2fid he2f3in2g he2f5le 2hefr hef4ra he2fre 3heft he2fu he2hel hei4a h4eib h1eie h1eif hei4fr h1eig he2im hei2mal hei2man hei2mei heim3p hei4mu 2hein hei4na heine2 hei2n3eb hei2neh hei4nene hei2n3er2 he2inf h3einsp 2heio 2he1ism he1ist h2eit he3i4ti heit2s3 h1eiw hekt3a he2la he3lag hel1an hel3au hel1ec he2lek h3elem h2elf hell2a hel2l3au helm1a hel2man hel2mei he3lo he4lof hel2or he2lö helsau2 4helt h4em. 2hema hem2b 1hemd 2heme h2em2i h3e2miss 1hemm 2h3emp h2en. he4n3a2 he2nä hen3ebe henen1 hen3end he4nene he4nens he4nenz hen3erg he2nerm he2n1e4t 2henga hen2gag hen2kan hen2kau 2heno heno3t hen2sem henst2 hen3str hent2a hen2ter hen5tr h1ents 2hentw h3entz he4n3u hen3z2 2he2o he3on he3op heori2e h1e2pi h1epo hept2 h2er. her3a2b he2rad 2herap he4r3a2r herau2 herb2 her3c her2dri h2ere he2r1e2b he2reck her2eif 2he3reig herein3 he4reis. her5eises he2rel he2rene herer3s he4rersc he2rerw h4erfam h1erfo her2fol herg2 4her4gebn he2rid heri2e 4herif herin2d herin4f he4rin4nu herin2s herin4ter h1erke her2klä h3er4kran h4erlad 2herm h1ernt he3ro he4r3o2b he4rof he4rop he4rot h1erör hers4k her3sta hert4 her3th her3um he2rut h1erwä her2zap her4zeng her2zer h3erzeu her2z3w he3s2a 2hese he3si hesi2e hes4p hes4ser hes6tän hes6tro hes6trö hes6tüc he2tap hete1 heter2 het2i he3t2s he2u heu3g h3eule. he3unt 3heusc he1x4a 2hexp hey2 he1ye 1hè 2hf2 hfaller4 hfan2 hfel2l3 hfi2s h3fl hf4la hflei2 hf4rü 2hg2 h3ga hga2s1 h3gr hg4ru h3gu 2h1h2 hhoh2 2hi. 2hia hi2ar h1iat 2hic hi1ce hich4t3er hicht4sp hi3d hi4db hi4dd hid4e hi4dio 2hido hi2e hi3ens hie2rei hier3i hie2rin hiers4 hif3f4r hi2k3r hi2l3a4 hi3l4au hilen2 hil2fr hili2e h2im 2hima h3i4mit h4imm h3impe h3impl hi2n hi3nak hi3n2am hi3nap hi5n2as hinau2 hine2i hi3nel hin2en h1inf h1inh 2hi3n2i hin3n2 hi3n2o3 hin3s2 hin2t1a 2hio hi3ob hi4on hio3p hi2p3 hi4pl hips2 hi4pu hi2r hi3ra hir3b4 4hi3re hi3ri hir2m1a hir2mi hirn1 hir2ner hir2s 1hirt 2his. his2a hi2se h1i2so his2p hi3tac hi3th hi3t2i hit1r hit3z2e hi2v1o 2hj 2hk2 hkamp2 h2keu hki2n1 h3kl hklat3 hk4ne h3kö hk4re 2hl hl2ag hla2gr hlan4d3a hl1ans hl1anz h1las h1lat h1laut h1lay h3läche h4läf hl1är h1läs h1läu hlb4l hl3d2 hld4a hld4r h3le. hle3a h3leb h3led hle3e h2leis h3leist hl1el h5len. hle4nas hl2enn hl3entr h2lents hl2enz h3ler hle2r3a hl2ere h2lerg hler2hö hl2erk h6l3er2nä hle3run hl1erw h4lerz h3les h4lesi h4leud h2lie h3lied h2lif h2lim hl1ind hling4s h2lip h2lis h2lit1 hl3l2 hl3m2 h2lo hl1ob h3loc hl1o4f h3log h4lor hlo2ra h5lorb h3los. h3losi h4loss hlos4st h2lös hl2sal hl4sar hl2ser hl3ska hl3slo hls2tec hl3s4tern hls3tie hl5str hl2su hl3t2 h3luf h3luk h3lumpe h1lüf hlz4w 2hm hm2a hm3abl h3mad h3mag h3m4ak h3man h2mant h3mar h4m3arc h3mä h4mäc h4mäh h4mäl hm2e h3me. h3med hme1e4 hmeer2s h3mein h3meise h3meld hme3le h3men hmen2s hmen4s3p hme2ran hme2rei hme2rid hme1s2t hm3estr h3mex hmi2e h3mind h3mirr h3misc h2mo h3mop h3mot h3m2ö h4mök h4möl hm3p2 hm2s hm3sa hms3p h2mu h3mul hmut4s h3my 2hn h2na hna2c h3nag h3nam h4nar hn3a2te h4natt h3nau. h2nä hn1äh hn1är h3näs hn3d hnd4r hn2e hne3b hne2e3 hn3eff hn3eig hn3ein h2nel hne4n hn4eng hne4pf h3ner hner2de hner3ei h4n3e2ro h4n3ersa hn3eur hn3ex hn3f2 hnf4l hnflei4 hnhof6stras h2nic h2nid h2nie hn1im hn1in h2nip hni4sa hnk2 hn1ob h2no2r hnra2 hns2 hn3sa hn3sp hnst2 hnsuch2 hn2th hnts2 h2nul h2n1unf hnz2 h4oben ho3bern ho2b3l ho2ch3 ho4cha ho2cka ho4ckerl 2hocy 2hod 2ho2e hoe3n ho3er ho4f3a2 ho4fä ho4fed ho4feu hof3f4a hofi4 ho4f3l ho4f1o ho4f3r ho4fu ho4fü 2hoi ho2l1a2 hol3ar hol3dr 1hole ho2l1ei ho2lem hol3g holin4 hol3k hol3l4 hol3s 2holy h3olym 1holz hol4zene hom2e ho4me. ho4mec ho4med ho4mel h2on hon2er honi2e ho1on hoo2r 2hop ho2pe ho1ra ho2rak h1o2r2an ho2rau h1or3d 2hore ho2rens ho3ret hor2fr 2h1org hor3ta hor2ter h1ortu h2os. hose2 ho2sei ho3sl ho4sla 2hosö ho2sp ho3spr ho4ßene 2hot. 2hotr 2hot3s2 ho3un hou4s 2ho2w1 ho3wer h1ox ho1y2 2hoz 1h2ö 2hö. hö2c hö3ck 2höe 3höhe hörs4 hö2s1 h4ösc h3öst 2hp2 h3pf hp4lä h3pu 2hr hra2b hr3a2c hr3ad hr1a2g h1r4ah h1rai h3ramp h1rane hr3ap hrau2c h3räu hr1c hr3d h2rec h3r2ech h3red h3ref hr3eff h2r1eh h4rei. h4reib hrei2ba hrei2br h3reic h3reif h4r3eig hr2eini h2reinl hrei3th h4r3ele hren3z h3rep hrer2fo h4rer4geb hr2erh hr2erk h4rerla hr2erle h4rer4leb hrer2lö hr2erm hrer2sa hrer3st hrer2tr hrer4trä hrer4tüc hr2erw hr2erz h3re2s3 hress4 hrest2 hre2t h2r1eta h2r1eu h2rev hrg2 h2ri h3ric h4rick hri2e h3riesl h3rin hr1int h4rist h3ritter hr3m2 h3rog h3roh h3ro2l h4romat h4rome h4romi h4romo h4ron h1ropa hro4r h3rou h3rö2s hr4s3ac hr4s3and hr4s3au hr2s3em hr2sen hr2s3er hr2set hr4sh hr2s3in hrs5ka hrs5kl hr4s3of hrst2 hr2su hrs3z hr2tab hr2tan hr2te2l hr2th hr2top hrt3ric hrt2s h3ruh hr1ums h3rus h3rut h3rü h4rüb h2ry hrz2 2hs hsa2b h4s3acht h2s1a2d h2s1alk hs2alt h4samt h2san hs3and h3sann h2s1as h2sath h2sato h2saud h2saut h2säh h2säug h2schan hs4co hs2cr h3se. h2s3ec hse2e h2s1ehr h2s1eie h2seind h2seins hsela2 hse2lin hs1emi h2sendw hsen3erg h2s1ent h2s1erb h2s1erf hs1erg h2s1erh h2serkl h2s1erl h2s1ern h2serö h2s1ers hser2u h2s1erw h2serz h2sex h3s2ext hsha4k h2s1i2d hs2im h2s1ing h3s2inni h4s3ita hs2kal h3skand hs1of h2sop hs1or hs2p h2s3pac h3span h4s3pani hs3par hs3pat h3spec h3spei h3sperb h2s3ph hs3po h3spra h3spü hss2 h4st. h1st2a hs3tabl h3stad h2staf hst3alt h3stan hst3arb h2s3tau h2s3täu h1stec h1stei h1stel h2stele h3stemp h3s2terb h3s2tern h1s2ti h2stier h2stit h1sto h2stol h2stor h1str hs3treue hstro4 h1stun h1stü h2s1u hs2ung 2ht ht1a h2tab hta2bl h2ta2d ht2ag ht2akt. ht2akte h2tall h4talo h2talp h2talt h4ta4m h2ta2n ht3ane ht2ank h2tap h2ta2r ht2a2s h2t3asi h2tasy h2t3at h3tat. h3tate h2tau h3taum h4tax ht1ä h2tär hte2ber ht1e2c hte3cha hte2d h2t1ede ht1eff ht1e2he h2teif h2t1eig h4t3eilz h2t1eim ht1ein h2t1eis h2t1eke h4t3elas hte4l3ei. h2telek h2t3elfe h2telit h2t1e4mi h2temp h4tenga h4t3engl h4t3en4ta h4tentf h4tents hte3rel hterer2 h2t3erfo ht3erfü h4terfül h4tergeb ht3ergr ht1erh hter4häl hter4höhu h2terkl h4terleb h4t3erleu h4terneu h2t3ernt h4ter4prob hter4reg ht3erspa hter4spar ht3er2st h4tersta ht4erstr hter4tra ht3erwä h2t3erze h4t1e2se h4t1ess h4teta hte4th h2t1eu h2textr h2t1h h4thei h3thera h3thes h4thi h4tho h2t1i2d h2t1im h2t1i4n3 ht3ine h2t1is hti3t2 htni2 hto2 h2t1ob htod1 h2t1o4f h2t3oly h2ton. h2tope h4tord ht3rak h3tran ht3rand h4t3ras ht4rates ht3rau h2traub ht4raume ht3rec h3treck ht3rei h2t3res ht3ric h4t3rieg h4t3rin h4t3riv h2t3rol h2t3ros ht3röm ht3ru ht2sah ht2sal ht4s3a4n ht2scr ht2sein ht2sel ht2s3end ht2seng htse2r1 hts3eri htsha4 ht3s2hak ht4s3kr ht2s1o ht2sp ht3spen hts3tät hts4tie hts3trau ht2stri ht2s3tur ht2s3tür ht2su htti2 htt4r h3tub htu2e h2t1urs h3tü h4tüb ht3z2 hu2b1a hu2b1ei hu4bel hu2b1en2 hu2bi hu2b3l hu2b3r hu2bu hu1c hu4fa hu2h1a hu2h1i hu2ho h1uhr h1uhu hu2kä hu2k1in huko1 huk3t2 hu2l3a2 hu4lab hu2lä hule2 hu2l1eb hu2l1ei hu2lem hu2l3eng hu2lent hu2l1er2 hu2let hu2lid hu2l1in hul3l2 hu2lo hu2l3ö hul3s4 hu3m2a h1umh h1ums hu2n h1una hun3d2e hunde3s hu3n2e 2hunf hung2 hun3ge hung4s h1uni 2hunt h1ups 2hur hur3g2 hur2t3h hu3sa hu2so hus2s3a hus2ser2 hus2s1o hus2sp hus2st hu2tab hu2ti hu2t1o hu2t3r hut2t hut3te hut2zen hut2z3er hut2zu h2ü h3über h4übs h3übu hüf2 hüft1 hühne4 hüs3 2hv hvil2 2h2w2 h4wall hwe1c h3weib hwei4fr h3weih hweins3 hwein4sa hwen2ka h3werbu h4werp hwes3t h4wirr h3woh 1hyd hy2de hy3dr hy2lor 4hyme 1hymn h1yo hy3os 1hyp hy2pe. hysteri4e 2hy2t 2hz hz2a h3z2o hzug4 h3zw hz4we iaa2 i3ad. iad2a i1adn ia3e2 iaf4l i2ago ia1h2 i1ai i3ak. i3ake ia4kei i1akt i1al ia2l1a2 ial3ar ial3as ia2lä ial3b4 ial3d4 i3aleb i3alef i3alei ia3lek i3alel i3alemp i3aleng i3alent i3alep i3alerb i3aler2f i3alerh i3a2lerm i3a2l1et i3alex i3a2lia i3alim i3a2lin iall2i i2alo ia2lon ia2lop ia2l1o2r ial3p ial3sc ial3t2 ia2l3u4 ial3z4 i3am. iampe4 i1ams i1an. i1an2a ia2nal ian3alt ia2nau i1anc i3and2 i1a2n1e2b ia3n2er i1ann i1ans ian2s3p i3ant i3anz ianza4 ia1o ia2op i1ar i3ar. ia2ra i2are 2i1as i3as. i4asc i4a3sh i2asi i4aso i4a3s2p ias3s iast4 i4asu i4asy i3at. i3at2h i4athe 1iatr i3ats i3au ia3un i2az ia4zz 2i1ä iä4mi iär2 i3är. iär3m i3är3z i3ä4tem iä2ti iä4tr iät3s2 iät5sa 2ib ib1art i2b1auf i2b1aus i2baut ib2bli ibe2i i2b1eig ib3einh i2b1eis ibel4u iben1 ibe4na i4ber4geb i2b3er2la ibe1ro i2bim i2b1in i2blad i2bläh ib3leis i2bleu i3blu i3b2o i2bö ib3ric i2b3roc ib2ser ib4ste ib2un i2b3unk i2b3unt ibus1c 2ic i3ca ic1c ice1 ich1a2 ich4art. ich1ä i1che ich1ei ich2er icherin5 i1chi ich1l ich3le ich3li ich6lor ich3m ich5mä ich3n i1cho ich3ort i2ch3r ich2sa ich4sele ich2s1i ich2sp i4cht ich2tr i1chu ich3w i1ci i3cke icks2p ickt2 i1cl ic3la ic3ra 2ida id2ab i3d2ac id4al id1a2n i3d2ans i3d4at id1au id2ax idä1 id2e i2dea 1idee ide2en id3eis 2idel idel4ä i2demul ide4n1o ide3ran iderin4f iderin4nu ide1rö id3er4reg i3des ide5sa ide3so ides4p 2idf idge3 1i2di2o idi4on i4diot 2idk idni3 i2dol 2idoo i2dö i2d3r id4rä id4rit id4ro id4ru id2sp 1i2dy ie3a2 ie2bä ie2bl ie2bri ie4b3rü ieb4sto ieb4stre ie1c ie2cho iech3t ie2ck ie2d3an ie3de ie2dr ie1e2 ief3akt ie2f1an ie2far ie2fau ie2fäh iefe2m ie3fer ief3f4 ie2f3l ie4fonk ief1r ie2fro ie2gl ieg5li ie3g4n ie2g3re ieg4s5c ieg4se ieg4si ieg4s3t ie3her ie2h1in ieh3r2 i1ei iein3 ie1ind i2e2l1a ie3lam ie4la2r ie2läs iel3d4 i2ele iel3ebe iel1ec ie2l3eic iel3eid ie2lek i4elen ie2lene ie2leng iel2erd ieler2e ieler4fi ieler2g ieler6lebn iel2erw ieles4 i2eli ieli2d i1e4ll2 ie2lo2b ie2lop ie4lor i2els2 iel3sz ielt2 iem2e iemis2 i1en i3ena ien1a2g ien4am ie4nas ien3au i3enä i2ene ien1eb ie2n1e4k iener4fo iener4la i3enf i3eng4 ienge2f ienge2z i3enh ie2nid ie2nim ie4nin i3enj i3enk i3enm i3enn i3e2no i3enö i3enp i3enr ie4n2s i3ens. ien3sc ien3s2e ien3si ien3s2k ien3s2p ienst5ade ienst3er ienst3rä ien3sz ien4t3ar i3enti ien3tr ie3nu ie4num i3env i3enw i3enz ie1o2 ieo4b ieo4f ier3a2 ie2rad ie2rap ierb4 i3erbun ier3d i2ere ie2reck iere3ins ie2r3eis ie5rek ie3r2er ier3erf ierer3k ierf4 ierg4 i3ergi i4eri ie2rid ierin3 ierk2 ier3l i1ern i3ern. ier3n2a i2erni ie2rö ier4re. ier2s3eh ier3sei ier3sta ier3ste ier3te iert2i ier3z2 2ies ie2san i2esc i2ese iesen3s2 ie3s4pa ie2spu ies4serl ies2st iest4e ie2stin ie1str ie1stu ie3su ie4t1a2g ie2t1ak ie2tan ie2t1ap ie2tat ie2tau ie4tent ie2t3erh ie2t3ert i4ethe iet3her ie2t1ho ie2thy ie2to ie2t1ö2s ie2t3ri ie2t3ru iet2se i3ett iet3zw ieu2e i2e1un ieu1s ie2w3u i1e2x ie3zo 2if i3fam if1ang if1ar i2f3arm if4at i2f1au if1än i2fec i2f1ef ife4i if1ein i2felem ifel2s3o if2e4n1 ifens2 i2f1erg if1erh ife2s if2far if2f3l if2fro iff2s iff4ste if1in3s i2f3l if1lac if4lä iflo4 if4los i3f4lü i2f3r i3fre i4fre. i4freg if4rev if4rö if2s if3sa if3se if3sp if3sta if2t3a if2ted if2t3ef if4t1ei if2te2l if2tep if2terk ifte4s if4t3esc if4th if2t1op if2t3r if4tri ift3sp ifts2t ift3sz if2tur i3fy 2ig i2ganb i4g1ano i2garb ig1art iga1s i2g3att igd2 i4gebrau i2gefar ige2füg 3i2gel. ige3lau i2geln ige4me ige2mis ige4na ige4nene igener4f ige2nid ige2o ige2pa ige2ra ig3erwer ig1erz ige2sel ige4spru i2g1ess ige4steu ige2tra ige2tre ige2woh ig3hu i2gim i2gl ig1lau ig1län i3gle i4g3led ig3lim ig4na ig5nah i4gnä i3g4neu ig4no igo3p i2g3rad i2g3re i2grou ig3s2a3g ig4sal ig3sä ig4scha ig4schr ig3s2o ig3sp ig4spa igs2pr ig3stei ig4sti ig4s3to ig3str ig4stras ig3s4tü ig2t3r igung4 2i1h i2hans i2har ih1auf i3he ihe1e ih1elt ihe4n ihenk4 ihe3u ih3m ih3n ih3r2 ihs2 ih1um. ih3w ii2 i1ia i1ie i3ig ii4ge i1im i3in i1is ii4sc ii3t i1it. 1i2js 2ik ik1aka ikaken3 i2k1akt i2k1alb i2k1alt ik3amt i2k1ana i2k1ang i4kantei ikanten4n i2kanth ik1art ik3att i2k1au ik1äh i2k1är i2keb ik1ebe ike2c i2k1ed i2k1ef i2k1ei ike4l1 ike2n1 ik1en2s ik1ent ike2ra i2k3e4r2e i2k1er2f i3kerfam i2k1er2h i2ker2l i2kero i2ke3ru ike4t i2k1eta i3ki. ik1i2d i3kie ik1in i3kin. i2kins iki1s i2k3l ik4län i3k4leri i3k4let ik4lim i3klu i2kne ik3nu iko3be i2k1off iko3p2 ik1o2r iko1s i2köl ik3rä ik3re i2kres ik3rin ik4ris i3kro i2krö iks2 ik3sa iks4t ik3ste ik3sz ikt3erk ik4t3esk ik2t3re ik5tri ikt2u i2k1uh i2kup i2kü i1la i2lab i2l1ac i2l1ak il1a4ma il1ana il1ang i2l1anm i2lano il1ans il2anz ilan4zer i2larb il1asp i2l1au i3laub i3l2aufb i1lä1 i2l1är 2ilb ilb4l il2c il5chen il2da il2dä ild3ebe il2d3en4t ild2erp ilde2s ild1o il2dor il2d1r ild3t 2ile il1e2c il1ein il1el i2l1emb i2l1e2mi ile3ni il1ent i2lentl i2lents i2l1er2d iler2ei il1erf iler2fo i2ler2g i2l1er2h i2ler2kl il1err i2lerri i2l1er2w i3l2erz ile4th il1ex ilf2 il2f3l il2f3re ilf4s3 il2gl 2ilh 2ili ilie4n3 iliga2 ili2g3ab ilik4 i2l1ind i2l3init il1ins i2l1ip ili3pf ill2an il2lenn il3l2er il4lt 1illu il2mak il2m1ap il2m1au ilm1ei il2min il2m1or 2ilo il2oh il4on il2op i2l1o2r i3l2ou i3lov il1ox ils3ent ils4to ilt2 il3th i1lu i2lum ilung4 i2l1ur ilü4b 2ilv il2zar il2zau ilz3erk il2zwa imad2 ima1i im2al im3anh im1ans i2marc im3aren i2m1arm i2m1art im2as im4at ima2tr imat3sc ima2tur im1aus i2maut im3b 1imbi i2meg im1ein i2mej i2mek i2mele i2melf im2en i2m1er2f i2m1er2l i2m1er2z i4me3sh imes3s i2meti i2mew imhau2 i2mid im1i2de i2mim i2m1ind i2minf i2m1ins im2mei immen1 im2m3ent 1immo im2mor 2imo i2m1ob i2mop imo3re i2mö 1imp imp2fa im3pf2o imp2s im3pse im3sph 2imt imt2e im3t2i imt3s2 imtu2 2imu im2um im1urk 2in. ina2be in3abu in1a2c i4nack in1ad i3nald inaler2 ina2lin in2alp i2n1am in2an in3an. in3ana in3ann i5nar. in2ara i2narb inas4 i4n1asb in3att i2n3au 2inä i2n1äh in1äs 2ind. inda2 ind2ac in2dal in2dan 2indä 2inde. 2inden in2dene inderer4t inder3t inde3sp 1index in4dh ind2i 1indik in3dö 2indr ind3se ind2spe 1indus in3d2ü 2ine in1e2c i3nee ine2en i2neff in2elen ine2n1 ine3nä i2nener inen3s i4nen2zy ineo4 i3ner. i2n3erbi in2erha i2ner2he in3erle i4ner4leb iner2lö i2nersa i2n3er2tr iner4trä i3nes inesi2e i4nesk ines2t in2et in1eu ine3un i3né in3f2 1infek 1infiz 4inflü 1info inf4r 2infre 2inga in2g1af in2g1a2g in2g1al in2gam ing1ar 2ingä 3ingeni in3g2er in4g3er2w inges4 2ingi 2in2gl 2ingr 2ings ing4sam ings4por in4gt 2inhaa 1inhab 4inhaltu 2inhar 2inhau 2inhe 2ini. in2id ini3de 2inie 2inig inig2a ini3kr 2inis ini3se init2 i3nitz 3inkarn inkels4t in2k3ent ink4er in2kro in3k2ü inma4le 2inn. in4nas inne4n 2innl in2nor 1innta 2ino in1od ino3e2 in3ols in1or ino1s i3no3t i2n1ou i1nö in1ö2d 2inr 2ins. ins2am in4samt. in3sat insch2 2inse. in2seb 2insed 2insen 2insk in3skor in4sl in4sm in3sof ins2p 3instal in2s3tät 4inst2e ins2tec in3s4tip 3instit 2instra in2st3ro in2strü 1insuf in2s3umw ins3umz in2sur in3sz 2inta 2inte. 1integ in3tei 2intep 2int2h inthi1 in3ti int2o 2intö 2in3t4r 4inträ in5tri 3intrig int3s i2n1u i4nuh in3unz 2inverm invil2 i1ny2 in3z2e inzel4ler in3z2i in3z2sc inz2u 2i1o io3a iob2l io1c io2d io3da io3e2 i2of iof4l i2oh i2ok io3k4r i3ol. io3li i3ols i3om. i3oms ion2 i3on. ional3a ion3an io2n3au i2onc ion3d2 io4nee i2onf i4oni i3ono io2nor i3o4ns3 ion4sa i2on3t i2ony i2o1o i2op i3o4pf iopi3 i3opt i2or i3or. i3orc ior2e iore4n i3org io1r2h i3orp i3ors i3ort i3os. io3sh ios2p i2o1st ios2u i2o3sz io3t i3ot. iote3l i4oth iot4r i3o4ts io4tt i2ou i2ov i3ox i2oz i3oz. i1ö2k i1ön i1ös. i1öst ip2an i3ped ip4el i3per 2ipf2 i3pfan ipfe2 iph2 2ipi ipi3a ipi3el ipi3en ip4lu ip2pan ip3pe ipp3f ip4pl ip4ps ip3pu ip2sa ip2sei ip2sp ips3t ip4sta ip4stü ipt2a ip2ter ipt3ers ipt2i ipt2u 2ipu 2iq i1r2a i3ra. 2i3rad ir4al i3ras irat2 i1rä ir1äh ir2b3l ir1c ir2ch3i ir2ch1o ir2e i3ree 2irek ire4na ir4er i3ré irg4s ir2i 2irig 2irk irke4n ir2kene ir2k3l irk4s3c irk2u irli4n ir2m1a2g ir2mak irm1au ir2mä ir2m1ei irme4n1 ir2m1o2 irm4th ir2mum ir4munt 2irn ir2n3a ir4nat ir4nei ir2no i3ro i1rö irpla2 irre4l ir2rh ir2schl ir2schm ir2sch3r ir2sch3w ir3se3 ir3sh ir2st irt2s3t 2iru ir1u2m iru2s1 i3r2ü i2sac isa4m3 i4samp i4s1amt is2ap isa2r is3are i3sat is1att i2s3au i2säh i2s1än 2isb i2sca i2schab i2schan i2schar i3s2che i4schef i4sch3e2h isch3ei ische2m i4schemi i4scher4z i2schin i3sching i2sch3l i2schm isch3ma i2schna isch3ob isch3re isch3ru i2schüb i2schwa i4schwir i2schwo i2sch3wu i2schwü i2scr 2ise ise3a ise1e iseh2a ise3h2i is2eind is4eli i4sel4ter ise2n1 ise4nal is2end i2senho isen3s is2ep ise2r3ei is1erg i2s1erh iser2he i2s1erm iser2u i2s1es4s is2et i2s3etat i3seth i3s2eu 2isf 2ish 2isi i3si. isi2a i2s1i2d isik2 i2sim isin3g4 isi1s i4ski i4sku is3la 3islam 2isma 2ismi ismu2 is1of i3soh 1i2sol 2is4o2n1 iso4nend isono2 i2sop is1ort 3isot i2s1ou is1o2v 2isp is3pan i2spar is3pe is3pic i2spro is3sa is4s1ac is4sau is4s3chen issen4s5tü isseri4e isser2s is2st is3sta is3sto iss3tr is3strä is3stu is2sum is3tab ist3a2c ist2an is3tang ist1ap i1stat is3täu is4tb is4tc is4td ist2e i1stel iste4n ister4ras i1steu is4tf is4tg ist2id i1stil istin4f is4tk is4tl is4tm is4tn is3t4o is4toc is3tör is3tr ist4ra i3s4tram istri3en is4tro is4tru is4ts is4tt i1stü is4tv isu2m isum3p isumpf4 i2sü 2isy ißer2s iß3ersc i2ßerse it1ab. it1abs ital3a it1alt it1a4m ita3ne it3anr ita2po it1app itar5b it1a2re it1art i3tat it1au i3tauc i2taut 2itä it1änd i2t1äs ität2 it1eff it1e2he i2t1ei i4teic 2itel ite4l1a i2telek i2t1emi i2temp ite2n iten3s2 i4tents i2tepo i2t3er2fo iterin4d i4ter4klä it2erö i4tersche i4t1esk i2t1ex i3text 2i2th i4th. i4thä i3thr i4ths i4thü i4thy 1itia i3tic i2t1id 1itii iti2kr it1in i3tis i4tiso iti3sp iti2v5a itiver3f it3le itmen2 2ito it1ob i3toc i2t1of ito2p it1orc it2os 2itr i5tra. i2t3rad i3tradi it3raf it3ras it3rau it3räu it3re i4tren it4ret it3rob it3rom i2t3run it3rut 2its it2sa its1a2g it2s1e itse2h its3e2r1 it4sh it4sm its1or it4stras its3trau it2sur 2itt itt3ac it2tan it2teb it3ter itt3hä it2tob it2top it4tri itt4schi itt2se2h itt2sei itt2sp itt2sti itt4sz it1uh it1ums it2ung i2tuns ituran2 it1urg itut4 i3tü i4tüb ity1 ityl2 2itz itz3erg itz3erl itz2erw it2zö it2z3w 2i1u2 i2u3l i3um3 iu4ma4 iump2 ium4se ium4ste i3un2 i2up i3us i1ü iü4be 2iv i2v1ad i2v1a2g i2v1ak i2v1am iv1an iv4at i2v1ä i2veb i2v1ef iv1ei iv1elt i2v1ent i2v1ep ive3re iv1erh iver4kl iv1erl iver3s ive3s i2v1ex i2v1im i2v1ind iv1int i3vol ivo3re i2v1r i2vun i2v1ur i2vü 2iw iwur2 2i1x i2xa ix2em i3xi ixt2 i1y 2iz iz1a iz2ac i2zag i2zan i2zap iz2arr i3z2as i2zat i2zau i2zä i3ze iz2ei izeits2 i2zele ize2n i4zener i4zentz i4z1erl izid3 iz1ir izi4th izo4f i2zö i2zuna i2z3w i3z4wi í1 ï1 1j j2a jab4r ja1c jah4r3ei jahr2s5 ja3l jal2a ja4lt ja3ne jani3t4 jas2o ja1st jat2 2jd2 jda3 jd4an je2a jean2s je2g jek2ta jek2ter jek2tin jekt3o2 jektor4 jek4t3r jek6tri je3na je2p je3r jer2e je4rr je4rs jes3t je2t1a je2t1e je4t3h je2tin je4tor je2t3r jet3s2 jet3t je2t1u2 je3v je3wo ji2v 2jm joa3 jo2b1 job3r jo2da jo2i jol2a jong2 jo2p3 jo1r2a jor3d2 jo1s jo2sc jos4t 3jou jou2l 2jt jty1 j2u ju2b3l jugen4 jugend3 ju2k jul2i jung3s4 ju3ni ju3r jur4a jur2o ju4rt jus3t ju3t2e3 jutel2 2jv 1k ka2ans ka3ar 2k1abb kab2bl 2kabd 2k1a2ben 2kabf 2kabg 2kabh 2kabn 2k3a2bo 2kabr 2k1a4bs 2k1abt 2kabw 2kabz ka1c kade2r 2k1adm 2k3a2dr 2kadv ka3f4l ka3fr kaf3t2 kag2a3 ka1in kaken2 ka3kl kak6lan 2k1akt. 4kala. kala3b ka2l1a2d ka2lan ka4l3d ka4l1eh ka2lens kal3eri k2alk kal2k1a kal4kan kal2k3l kall2i 2k1allt ka2l1on ka2lop ka2l1os kal2tex kal4th ka2lu ka4mat kamp4f3en k2amt kan4al ka4n1a4s ka2nau 2kanb kan3d2 2kanda 2kandä kan2e 2kanf 2kanim kank4 2kanl 2kanom 2k1anor 2k1ans k2ans. 4k3antenn ka3nu kan2um 2kanw 2k1anzu 2kanzü ka2o3 ka3pr 3kara 2karbe 2karc k2ard kar3d2a 3kare 4k1area ka2r3ent k2arg ka3r2i kari3es k2ark 2k1arm kar4pf k2ars k2ar3ta k1arti 2kartik karu4 k2arw 3k2asc kas2e1i kasi1 kas2o ka4s3p ka2s3t 2k1ast. ka4ste kas4tras 3kasu ka3sz ka2tab ka2tan k3atel kate2n ka3t2h ka4t3r kat3se katt4 ka4ue kau4fer kau4f1o kauf4s3ag kauf2sp kauf4sti k2aus. 2k1auss 2kausw kau3t2 2kauto ka3ve 3kaz käl3 k1ä4mi4 2k1änd kär2 2k1ärg kä2s1c käse3 kä3th 2kb2 k3be kbo4n kb4ri kbu2s kby2 kby4t 2k1c k3ch 2kd2 k3da kd4rö ke2ben 2k1e1c ke2di 2k1eff kefi2 kege2 kegel3e ke2gl ke2he. ke2hen kehr2s kehr4s3o 2k1eic 2k1eig kei2li ke2im 2k1ein kein2du kein4e k1ei1s 2keise keit2 ke2l1a ke3l2ag kel3am ke2lä kelb4 keld4 kel3eis 2ke2lek ke2l1en ke2l1er kel3l4e kell2i ke2l1o2 ke2lö kel3sk kels4tern k4elt kelt4e 2k1e2mi 2k1emp k2en. ken1a ken3au ke2nä kend4 ken3dr ke2n1e2b kenen1 ke4nene ke4nens kener2n kene4t 2ken2gag k3en4gel. ke2nim ken3in 2kenlad 2kenläd kenn2a kenn2e ke2no k2ensa 2ken2sem ken3s2i ken3s2k ken3s4tei ken3sz k3en4te. k3en2ten ken4ten. 2kentf 4kentg ken3th 2kentl 2k1ents 2kentw 2kentz kenvo2 ke3ny k2enz2 ke1o2 2kep ke2pl k2er. ke1ra ke2ran ke2ras ke2rau ke2r1ä ker2ble k2erc 2kerd k2ere ke2r1e2b ke2rec ke3reig ker3ein k3eremi 2kerfah k2erfam ker2fo k3er2geb 2kergu ke4rin4nu kerin4st kerin2t k3erken k2erko k3er2lau k3er2leb k4erlebe ker3m ker2na ker4nei 2k3er2neu kern3eur k1ero k2e1rod 2keros ker4reg k2ers. 2kersa kert2 ker4werb kerz2 k1erz. ker2zeu 2k1er2zi k2es. ke2sa k2esc k1ese ke2sel kes3pa kes2sa ke2t1a ket2ag kete4 ke2t1eb ke2tel 2k1e2th ket3ha ket3s 2ke2tu keu4schl 2k1e2va 2k1e2x 2kf2 kflei2 kf4lö k3fu 2kg2 kga2s1 kge3s k3go 2k1h2 k3he k3hu ki1a ki2ad ki2ag ki3a4k ki3a2r ki1c 4kicl ki3d4r k2ids 2kidy ki2el kie2lei kiel3o 2kiern kier2s kie4z 2kif ki3f4l ki3f4r ki3k kik4l 2ki3l2a 2kilä 4kile 4kili 2kim ki2nä 2kindex 2k1indi 2k1indu 2k1inf k2ing kin2ga kin4g3ent king3s 2kinh k2ini3 kinik2 ki3n4o3 kinos2 kinot4 kin3s 2k1inse k1inst 2k1int ki3or kio4s 3kirc 2k1i2so kis2p kis3s kist2 kis4to kiv2 kive4 2kiz 2kj k3jo 2kk2 k3ka kkab4 kk4ne kl2 2kl. 4kla. 2k1lac k3lamp klan2 2kland klan3du k4lar k1last k1lauf k3laug 2kläd k2lär k2le 4k3le. kle2br k3leg 2kleh kl4ei klei2e k3leit k3lem. 3klemp kle2o 2k3ler kle2ra 2k3leu kle3us 2klic k2lien k2lif 2klig 3k2lim k2lin k3lin. 3k4lina 2k3lind k4link k2lip k2lir k2lisc 2klist klit2s 2k3liz 2k3loc 2klok 3k4lop k3lor klost4 2klöc 2klöf k2löst k4löt k1lu k4lub k2lud k2lug k2lum klung4 2klux 2k1lüc 2kly 2km kma2la k2n2 k4nac 2k5nach 2k3nad 2knah 2k3nam 2k3nar kn4at 2knav 2k3näp k3ne k4nec kne1e 2knes kne3tu 2knetz 4kney kni2e 2k3niv kno2b3l k4nol 2knorm 2knov 2k3num ko3a ko2al kobal2 2kobj kob4s koe2 kof3f2 koffe3i kohl2e kohle3i koh3lu koka3 ko2kl ko3l2a ko3le kol2k3 3kom komer3 4komn ko4mu k2on kone2 ko2nem kon3s4 kont6en ko2nu ko3on 2kop. ko2pal ko3pat ko3pe 2koper ko4pf kopfa2 kop2fen kop4f3err 3kopp kop3s ko3r2a kor2ba kor2bl kor2br 2k1orc korder2 kor4derg ko3re ko4rel 2k1org ko3rin kor2k1a kor4kr kor3m k1orna kor4nac kor2n3ä kor4no2 2korpi k2os k4os. ko4sk ko2sp 3k4ost ko3stei ko2stü ko4ter ko3t2i koti4n koti6ne kot4r kot3s2 kot2tak k1ou ko3un 3kow ko2we 2k1ox köde2 k2öf k1öl 2kp2 k3pf 2kq k3qu k2r2 2k3rad 2k3rah k4ral k3rats 2kraum k4raw k4raz k4räc 2kräd k4räf k4räm k4rän 2k3räum 2kre. 2k3reak 2k3real k4reb 4k3rec 2kred. 2k3rede 2kredn 2kredu 2k3ref 2kreg 2k3reic kre1i2e4 kreier4 k3reif 2k3reih 2k3reim krei4sei krei2s3i krei2st 2krel k3ren 2kresu 2k3rh 2krib 2k3ric 2k3ries 2krip k3risi k4roa kro3a4d kro3b4 k4roch 4k3roh k4rok k4ron k4rop 2krot krot4r k3rou 2kröh 2kruf 2k3run 2k1s ks3a2b ksa4k k4s1amt k2san ks3a2r ksa2s k2sau ksau4e ksau4f k2sav k2säh k3s2c ksch4 k2s1e2b k2s1ec k3s2ed ks1ei ks2eid ks2eif k2seind kse2le k2s1eng k2s1ent ks1er ks2ere k2serf k2serg k2serk k2serl k2sers k2serw k2s1ev k2sex ks3ha k4s1i2d ks2im k2s1in k2s1is k3s2ke ks3ket ks3kl ks1o2 kso4f ks4on k2sop k2sor k2sö k2spal k3s2pat k2spä k3spe ks4pel k2sph ks2por ks2pul ks3s2 kss4t kst2 k4st. kst4a k2s3tal k2s3tanz kstat4 k3stäl k3stei k4steil ks4tel ks2tep k2stier k2stit k2stor k2strop k2stuc k2stum k2stur k2stüt k2s1u ks2zen 2kt kt1abr kt1abs k2t1ad kt1akt k3tal kt1am kt1an kt2and k2t1a2r kta4re kta3ri k2t1au kt3aug ktä3s kt1ein k2tek k4t1ela kte4n1 kten3s4 k2tent k4tentf k4tents kten3z kte4pi kte2ra kte3ran kt4ere kt1erg k2t1erh kter3m k2terö kte3ru k4t1eti k2tex k2t1h k3ther k2t1i2d kti2me kt3ind kt1ing kt1ini kt3inn k2tint kti2s1e k2tiso kti2ter kto3b k2t1of kto3ren. k2t3ram k3t4ran kt3ras k2t3rau k4tref ktro1s kt3run kt3rü kt3s4a kt3sä kts2el ktsen1 kt3si kts1o kt2sor kts2p kts4t kt3s2z ktt2 k3tub kt1ums k2tuns k3tü k4tüb kt3z ktz4w ku2al ku1c kud4r ku2h 2k1uhr ku3la ku3l2e ku3l2i 4kulp kul4to kul2tr k2um. 2k1umb k2um4e 2kumg 2kuml kum2sa kum2s3p k2u3n2a kun3da kund2e kunden3 kunft4s kung4 2kunm kun4s4 kunst3 4kunt 2kunw 4k1up. kur2bl ku2rei kuri2e kuri4er 2k1urk 2k1url ku2ro kurs3c kur2s3p kur2st kur3sti 2k1urt4 kur3tsc 3kus kus3a2r ku2schl ku2sp ku2s3t2 ku2su 4kut. kut2a kuto3 kü1c 3küne 3kür kür4s 2kv k3ve 2kw 2kz2 kze3l k3zu 3la. laa2 la3ar l1ab 3l2ab. lab2a la2bad l2abä 2labb lab2br 2labd lab2e 2la2ben 4labf 2labg 2labh 3labi l3a2bit 2la2b3l 2labn 3lab2o 4labo. la3b4ra lab4res la2bri 2la4bs la2bus 2labw 2labz la1ce la2ce. l4ache lachter4f lacks2 1lad 2l1ad2a 2ladd 3laden la3d2i 2ladj 2l1adl 2ladm 2l1a2dr 3l2adu 2ladv 4laf. la4f1ei la4f1er laf1r 4laf3s laf3t4 la4fu la2g1a lag3d lagen3d l2ager lagerin3 4lagg la2gil la2gin la2gio lag3l la4g3n la2go4 lag3str 2la3ho 3lai 2l1akad lake2 la4kes la4kin l2akk la3k4l la4kro lakt2 2l1al la2la 3la5la. 3lali 4lalo 4lalt lami3t l4amm lam2m1a 1lammf la4mor l2amp 2l1amt lamt2s la4mun la2na la3nan 4l1a4n4at la4nau 2la2nä 3l2and l4and. lan2d1a lan4dam land3au l4ande lan4derh lan4d3erw lan4d3erz lan4d3inn l4an2dr lan3dri land3rü lan3erd laner2f 2lanf 2langa lan2gan 2l3angel lan4g3esc lang3s4 l2anhe 3lan2i 4lanim 4lanl 2l1ann l1ano la2nof 2l1anp 2lans l1ansi 3lansw 2lantr 2lantw 2lanw lan4zerg lan2z3w 3lao 2l1apf la2ph 2l1a2po lap2pl la2q la2r1an 2larc lar1e2b la2r1ei la2rel la2rene larf4 3lar3g lar3ini lark4l 2larm 2l1a2rom l1art 2lart. lar2ter lart2h l3arti lart4r 3laru l2as. la2sa la4s3aa la4sam la4sä lasche2 4lasd la3seb la2sei la2s1e2l 2lash la2sin la2sis la2so 2la4sp 3lasser l2a2st las4t3an last3ar la4ste las6t3ri la4stu la3t2e 2l3a4tel l4at2i la5tio 2latm lat2o la2tö la2t3ra lat4ri lat2s lat3st 2lat2ta lat4tan lat2tex lat2t3in lat2t3r latzer2 1laub. lauben4s3 lau2b3r laub2se lau4fel lau4ferl lau4fin 2laufn lau4fo 1laug lau3gl lau3i 2laun. la4us 3l2aus. 2l1ausb lau4scha 2lausd 2l1ausf 2lausg 2l1ausl 2lausr 2l1auss lau2st 2lausw 2lausz 2lauto lau2tr la3va lave4n 1law lawa4 1l2ax la2xel l2ay lä1c 3läd 1lähm 2l1ähn lä2i 2lämt 1länd 2l1äpf 2läq l2är. lär2ma l1ärme 2l1ärz lä2s1c 2lät 2läub 2läuc 2läue 1läuf 2läug 2läx 1là 2lb l3bac l2bant lb3a2ri lb1ärm lbb2 lbb4r lbby4 lb2ei lbei4ge. l2b3eink l2b3eise lbe2ral lber2ei l2b1e4ta l2b1id l2b1ins lb4lad l3b2lat l3blä lb3le l2bled l2blic l3blo l3b2lö l3b2lu l2b1o2ra lb3rea lb2s lb3sa lb3se lb3si lb3sla lb3sp lbs4t lbst3ac lbst3ei lbst1u l2b1uf l3bum lbu4n lbzei2 2l1c l3ca l3che l4chei l4chent l3chi lch3le lch3li l3chlo lch3n lch3r lch3s2 lch3ü lch3w l2ck l3cl l3co 2ld ld3a2b1 ld2ac ld3a2ck l2daf lda2g l2d1ah lda2i l2d1ak l2d1al ld1ams l2d3a4n ld1arm ld1ass l2d1au ld3aus l3däm ld1är ld1äs ld1ät l3de. lde2ben l2dei ldein5 l2d1elf l2d1e2mi l2d1ems lden3erg l2dentl l3der. l4d3er2fa l4der4geb ld1erh l2der2he ld2erl ld3erlas ld2ern l2d1er2p lder4tr lde5sa l2d1es2s l2dex l2d1id ld1i4mi l2d3ion ldo2b ld2on l2dop ldo2r l2d1ori ld2os ldos3t ld2ö ld3r ld4ram ld1ran ld1rä l2dre l3d4ris ld1rol ld4ru ld5rub ld5rut l2drüc ld3sa ld3ska lds2p ld3st ldt4r ld3tu l2d1ul l2d1um ldwes4 1le le2ad le2an. le3ar 3leba leben2s3 le2bl 3lebr le2b3re lebs2 2lec lech1a le2chi lech5t4e le2dit le2dr le1en le2er lee4ret le3f2a 2l1eff lef4o le2g1ab leg1as le2gä legi3en le2gl leg4r 3leh 4lehe. leh3r2e 4lehs 4leht l2eid lei3ere lei2fan lei2fei lei2fi leif3s 2l1eig lei3gl 3leih lei2hau lei3l2 leim3p 3l2ein. lein2du l4eine lei4nerb le2inf le2ini 2leink 2l3einsa 2leint l2einu le2is leisch3a lei4schei lei4scho lei4schr lei4sern l1eisf leis4s3er l4eist lei2ßer l2eit lei2ta leit5ersc lei4to lei5tri leit3s2 leits4t 2leiw 3leko 2lektr 2lekz 3l2ela le2le 2lelek 2leleme le3len leler2 le3les 2lelf. 2l1elfe l2eli l2em. le3mal le2mau le2m1ei lem4en 3lemes 3lemet le2mid lem1o2 le2mor 4lemp lem3s le2mu le4mun l4en. len1a2 len3ab le4nad le4n3an le4n3a4t le2nä 2lendet 4lendl l1endp 4lendun le2n1ed lenen3er 4lenerg le2neur 2leneuv len2gag len2kau len2k3lo len2klu l1enni le2no len4sein 2len2sem len3ska len3sz 3lenta 2lentg 2l1entk 2lentla 2lentn l3entro 2lentrü 2lentw lent4wä 3lentwet 2lentz le4nz lenz2a len4z3eig 2lenzy leo4f le1o2s 2lep l1epe le2pen 3lepf 4l1e2pi le4pil 4lepoc 3lepr l2er. l2e1ra le2rag le2r3ap le2ra2s le2rau le2r1ä le2r1e2b ler2e3c 2lereig le2r3ei2m le2r3eis le2rel le2reng l2erer le2rerg le2rers le2re4t 2l3erfas 2l1erfo l2erfr l2erfüh l1erg l2erga 2lergeb l2ergef 3lergeh 4lergen. l2erger l2erges 3l2ergew 2lergi l2ergl l2ergr 2ler2heb 2lerhol leri2e lerin2s lerk2 3l2erka l1erkl l2erkle 3l2erko ler3kr 3l2erkre 3l4erlebe 3l2erlei 2lermä 2l3ermüd ler2nal ler2nar l4erne ler4nei 2l1erö 3l2erra ler2ric l2errü l4ers. l1ersa 2lersat lers4k 3l4ersl ler2sto lert4 ler4trä le2rup l4erwa ler2wer 2ler2wo 2l1erz ler2zä l3erzeu ler2zo l4es. les2am les2e lese1i 2l1esel le3s4h lesi1 le3s2k le3so le2spo le4ss lest4 le1sta leste3 lester4i le1sto le1str 3lesu 4lesw 2lesy le2tab 2le2tap 2le2tat l1e2th le3tha 2lethi let2i letsche4 let2top lett1r letts2 le2u 4leue 3le3u4f le4uk 2l1eul le3unt le4ur 2leuro 3l2eut l1e2vol 2lex 3lexd 3lexik le2xis 1lé 2lf l3fac l3fah lf4at l2f1ec lfe1e lf3einh l2feis lf2en l2ferei lfe2rel lf1erl l3fjo lf4lä lf3led lf4lö l3f4lu lf3ram lf3res lf4ru lf4rü lf2spe lf2sti lf2su lfun2 lfur1 2lg lgab4 l3gas lga3t lgene2 lgeräu3 l2geti lg2i l3gle lg2lö l3go lg2p l3g4ra lg3re l3gro lgs3t lgung4 2l1h2 l3he 3lhi. l3ho l3hu 1li li1a lia2b li2ad li4am. lian2g li2ast 3lib libi1 lib4r li1c lich2ta licht5ersc lich4to 4lick li2cka li2cl li3d2a l1ido l2idy liebe4s3 lie2br 3liefer li3efl lie4n1a2 li3ene li3en3s lien3t li2er lie2rei li3ern lie2s1c lif3ti 3lig liga3s li2g3ers lig1l lig4n li3ker lik2i lik2o likop4 lik2sp lik2ter lik4th lik2ti lik4t1o2 lik2u li3l lil2a li5lie li4ll li3m2a1 limas4 lima3t4 2limm 3limo 2limp lin2a lin3all li3nar 4lindi 2l1indu li2nef li2neh li2nep li2nes 2l1inf ling3l lings3 lingst4 2l1inh li5nie 2l1inj lin2kan lin2kar link2s3 lino2 li2nol l2insa 2linsel 2linsp 2linst 2linsu 2linsz 2l1int l2intu li3n2u 2l1inv 2linz li2o li4om li3o2st 3lipf 3lipt 3lis. li3s2a li3schm li2schu lis2h li3shi 3lisk 2l1isl 2l1i2so li2s2p liss4 3li2st li2t1a2d l1i2tal lit4an li3t2ä l2i3t2e 3liter li3th li4t3r lit1s2 lit3se lit3sz li3tu li4tur litz4er 3liu li2vea live4n li2ves livi3e li3vr 4lixi li4z3ä lizei3 2lj l3ja 2lk l3kale lk1alp l3k2an l3kap l3kar. lk1erd lke3r2e lk2l lk3lad l3k4las lk3lic l3k4lu lk4ne lk5ner lko4f lk1ofe lkor2b1 lk3roc lk2s1 lk3sän lk4sb lk3si lk4sm lk4spe lks3t lkt2 lk2ü 2l1l l2labk l2labt l3labu lla2der l3lage lla3gl l2l1am lla4ma l3lame ll2ami ll2anb lla2ner lla4ni l3lans. ll1anz l2l3appl ll1arm ll1a4sc l4latm ll1att l3laub ll3aufg llau4m ll1aus ll3axt ll1äm ll1är llb2 llb4l llch4 ll3d lld4r ll3ebene l3lec ll1ech lle3er l2l1ef ll1eic ll1eim ll2eis l2leise lle2la lle2m l2l1emi l3len. lle4na ll3endl llen3dr ll3en4dun lle4nens l4lentf l2lents l3lep l3ler. lle2ra ller4eig l4lerfas ller2fo ller4geb l4lergene l2lergo ll3erho ll3erkr ll3ermi ller4müd l2l3ernt ll3ertr ll2es lle4th ll1exe llg2 lli2gan l2limb l2l1ind l4linf l4l1ink ll1ins ll3k ll3l2 ll3m2 ll5mit ll3n2 ll1ob l2lobe l2l1o4f ll3ol l2lope ll1opf ll1or l4lorb llor2g l2lo2ri l2l1ou l3low ll1ox ll2s1es ll3ska ll2spr ll3t llt2e llt2i llti2m llt4r ll5tri ll4ts2 ll1ur llus5t4 l3ly ll3z2 llz4w 2lm l3ma. l2m3a2b l2m1ad lm1a2ge lm1aka l2m1a4m l3mana lm1apf lm1art lm1att lm1äst lmbu2 lm1c lmd2 lm3e2dit l2m1ef l2m1ent l2m1e2p lmer2 l2m1erf l2m1erl l2m1erz l4messa l2m1i2d lm1ind lm1ins l2mof lm1orc lm3p2 lmpf4 lm3s2k lms2t lm3ste lm3s2z lm3t lmt4r l2mum l4munt 2ln ln2ab lna2r ln3are lnd2 l3n2e lnes2s l2n1in lnus2 l1nü l1ny 1lo 3lob. l2oba 3lobb lobe2s 2lobj l1o2bl l2obr lob4ri lo2chel lodi4e l1ofe lo3fj lo4gh lo2gl lo2gor lo2gre lo2ha loh2e loh2ner 4l1ohr loi4d loi4r 3lok 4l1okk lo2k3r l4olä l4ole 2l3o2ly lomä3 lo4mel lo4min lo2ner lo4nin lo2n1o lo2o3 2lopf lop2p1a 2lopt lo2rak lor3am lor2an lo4rä 3lorb 2l1orc 2l1ord lo3r2en 2l1org2 lori4di 2lort2 l2os. lo4sa 3lose lo4ske los3p lo2spe lo2spr los3sa lo4ste lo2s3t4r 2loß lo2ta lo2th lo3tha loti4o lo5tos lots2e 2l1ov lo2ve 2lox 1lö lö2b3 2löck 2löd 2l3ö4fe 2l1öhr 2lök 2l1öl3 2löp 3lösc 3lösu lö4ta 2lp lp2ar lpar2k1 l2p1är l3p2f lp4fu l3phä l2phir lp1ho l3phr lph4t lpi4p lp4lu lp4rä lpt4r l3pu l3pü 2lq 2l1r2 lrau2s l3re lrebs2 lro2h lrö2 l3ru l3rü 2l1s ls3a2b lsa2ck ls3acke l2s1a2d l4s1amb l4samp ls2amt l2san ls3ane l3sare ls3a2ri l3sark l4s3au. lsau4m lsau4rer ls3aus l2saut l3s2äm ls2äug l2s1äus lsby4 ls2c l2schin lschs4 l2s1e2b l3seil ls2ele ls1eli ls1emb l2sent ls1er ls2erb l2serf l2serg l2serh l2serk l2serl l2sers lser2u l2serw lse2t ls1eta ls2ext ls3ha l2s1id l2simp ls2kal l3s2kele ls2ky lso4b l2sop l2s3ort. l3s2öl ls2pa l2s3pac l2s3ph l2s3pir l3spit l2spiz ls2po ls2pu l3s4pul ls3s2 lss4t l4st. lst2a lstab4 ls3tabl lstahl3 l2stas l2stat. l2state l2s3täti l2ste l3stea l3stec l3steh l3stei l4steil l3stel l3stemp l4sten l6ster. ls2t3erk ls4terne ls4terns ls2tie ls4tip l2stit l2stoch ls4toi lstro4 ls4tru l2s3trü ls2tu ls4tüm ls1um l2s1un ls2und ls3unk l4szu 2lt l2tab l3tabl lt1abs lt2a3d ltag4 lt1am l4tame ltampe4 l3tan. ltan3d l2t1ap lt1ara l3tark lt1art l3tarta ltar4tik lt1au lt3aut lt1äh lte2c lt1eh l3tehu lt1eig lt1ein lte3mi lt2en lten4gel lten2sp lt3ents lte2ral l2t3er2fa l3t2erg l2terhe lter2ku lter2nä lte2ro lt2erö lter2se l4t1es3k lt2est lte3str lt2et lt3g l2t1h lt3hag l3thas l4t3hei lthol2 l3thr l3t2hu lt1ide ltimo4 l3tine l2tiso l3t2i3t l2t1ob l2t1o4f l4tord l4torg l4t1o2ri lto2w lt1öl lt1ös l4t1öt ltra3l2 lt3räu lt3rec lt3rei lt3ris lt3rol l2t3rö lt3rum l2t3rus lt2se2l lt2s3ort lt3s2ph lt2sti lt2stüt lt3t l3tub lt1uh l2t1um lturan2 lturen2 ltu4r3ent ltu2ri l3tü lu1an 2lu2b3 luba2 lubs2 lu2dr lu2ec lu2es lu2et 1luf2 2l1u4fe lu5fel 2luff luft1a luft3e luf4tei luft3r lu2g1a lu2g1e2b lu2gei lugen1 lu2gi lug3l lu2go lu2g3r lug3se lug3sp lu2gu 2l1uh lu1id lui2de lu4ig lu1is. 2lumd lume4 2lumf 2lumg 2l1umh 2lumk 2luml l2ump 1lumpe lum2ph 2lumr 2l1ums lu3mu 2l1umw 2lumz 1lu2n 2l1una lund4 2l1unf lung4sc 2l1uni 2lunr 2l1uns 2lunt 2lunw lu4pf l2ura lu2r1an lu2rat 3lurc lu2rei 2lurg l2uri lu2ris l1urn lu2ro 2lurs l1urt lu3sak 2luse lu3si lu2sp lus4s3a lus2s1c lus2sel lus2s3er4 lus2s1o lus4s3p lus2s3t lus4stä luss5tr 1lu2st lus4terl lus4t1o2 lust3re lu4s1u lu2t1a4 lu4tas lu4t3au lu2tä lu2t1e4g lu2t1el luter2 lu2t3er4b lu2t3erg lu4t3ersa lu2thy 2luto lu2tob lu2t1o4f lu2top lu4t1or lu4t3r lut3schl lu4tü 3lux 2lüb 3lübd lück4e2 lücker3 lüf3te lü2hel lüh1l lü2s 2lv2 lva3 l3vl lv3r 2lw2 l3wa lw4ei l3wi 2lx 1ly ly1a lya4m ly3c ly3es ly1l 2lymp 3lyn ly3no ly1o ly3onn ly3th 2lz l2z1ac l2z1ag l2zan l2z1ap l2zat lz1aus l2z1äp l2zär l2z1eim lze2l l2zele l2z3enth l2z1ep l2z1er2h l2zerz l2z1id lzi4m lz1imi lz1ing lz1inn lz3l lzo4f l2zö lz3t2 l2z1u4fe lzvol2 lz3w l2zwar lz4wec l2zwu 1m maa2 m1ab m3a2bar m2abä 2m3abb m2abe 4m3abf 4mabg 2mabh 4mabk 2mabl m2abli 2mabm 4mabn ma2br m2a3b4ra 4mabs 2mabt 4mabw 2mabz ma3chan mach2e mach4t5ers mach2tr ma2ci mack2s 2m1act mada4m m2adä ma2del ma3dj ma4dl 2m1adm 2m1a2d4r ma4d2s mae2 ma3f maf4r mag2a ma2ge. ma4geb ma2geg ma2gek ma2gep ma2ges. ma2get ma2gev ma2gew 4m1agg magi3er. magi3ers ma3gl ma3g4n 2m1ago ma3ha mahl4st ma1ho mai4s3e ma4ke. ma4kes 2m1akt mal1ak ma2lakt ma2l1an ma2lau ma2lär 2mal2de m2aldi ma3le ma4leb ma4lent mal2er ma4lex mali2e mali3er mal3lo 2mallt ma2lon ma2lop m2alp mals4terb mal3t malu4 ma2l3ut 3malv ma4mid mam3m 4m1a2nal ma2nar 2m1a4n4at ma2nau 2m1anä 2manb man2ce 3man3d4 man2en ma2net 2m2anf mang2 2man3ga m2angel 2m1angr 2m2anh 3manip 2manl 4manla m2anle 3m2a4nn 4manod 2manr 2m1ansa 2mansä man2t1h 2mantr ma4n1ut 2manw 2manz m1anza ma2or ma2phr ma2po m2ara 4marag 4marb 2maren mar3g2 3ma1rh ma3r2i m2ark mar2kr 4mar2o maro3d 4marr mar4schm mar4schn mar4schr mar2sp mar2su 2mart. ma3r2u m1arz 3mas ma3s4a ma3s2e ma3s2p masse4n3 mas4ta mas4tel mas2ti mas4to mas4tr mas6tri ma4s3z 3maß ma2tab ma2tan ma2tä m3a2tel ma2t3erd ma2t3erz ma3the m4atme 2matmo ma2to ma4tort mat3se mat3sp matt4r matur2a mat3url 2m1au4f 3maul ma3un mau3r 2maus m1auss mau2ta m2ay ma1yo 2m1ähn mäh1r 4m1änd 2m1äp 2mäq mär1 2m1ära mär2kl mär2z1 mä3t4r mäu2s1c 2mb2 mbe2e mbera2 mber2e mbe3ri mbert4 mbi3er. mb4le mble1i mb4re mbu3sc mby4t 2mc m3ch 2md m2dan m2d1a4s md1är mde2a m2dei mde2m m2d1emi m2d1ent mder2 m2d1erl mdien4 md2ö md3ras md3s2e mdt4r m2d1um me3an me3at me2ben 4mebo me1c medi3 medie4 me1e2m me1e2n mee4rei 2m1eff mega3 me4gel 3meh meh6l3er 2m1eif 2m1eig m2e4i3l2 mein4da meinde3 meiner4k mei4nerl 5m2eist me3lam me3l2ant me2l1au melb2 mel3d2 melde3i me2lek 2melem me2ler melet4 2melf. mel3ink 3melk mel2k3ei mell2 3melo me2lob mel4sac mel2se mel2spa melt4 4mel4tern 2m1e2mis 2m1emp 2m1e2mu m2en. men3ab me3nage me4n3an men3ar me4nas men3au 4m1endl menen1 meng2a 2men2gag men3ge me4nh me2nid me2nim me4n3k4 men2on me4ns men2se. men2sem 4mensemb men2sen men4ser men4ses mensi2d menst4 3m4enta men2t3ak men4tanz mentar6ten 3m4entei ment3eig men4t3ers 4mentn ment4sp menü1 me1o 2meou 2meö 4mepa 2m1e2pi m4er. me1ra mera3l mer2a3s4 me2r1e2b 2mer2eig me2rens mer2err mer2erw 2m3er2gän meri2e merin2d merin2t 2mer2klä 3merkm mern3s4 m4ersh mer3sm mer4stel mert4r merz4eng 3mes me2sal me4sä 4meser mes3pr 2mes4sa mess3an messe2r mes4s1o mes2sp mes2st mes3ta me1sto mest3ri me3su me3sze me3ta met3abe meta1s4 mete2 me3th me2to me2tö me3tr me4trig met4t3en4d me3tu meu1 2m1ex me2xe 2mf mfi2le mf4rü 2mg2 mgang4 mglim2 2m1h2 m3hu mi1a mia2b mi3ak mia4m 2mian 2m1iat mibi1 mic1e mi1ch mi2ci mi3da mi2di. mi3dr 2midy mie3dr mi3ele mi4e3no mien3s mierer2 mie1s mie2ti mie4to mie2t3r mi3f4l 3mige mig4r mi3h mik1an mi3ke mi4kel mi4kens mi3k4l 3mil mi3l2a milch1 mil4che mild4s mi3l2i mi3l2u 4milz m2im2a 2m1imm 4mimp min2ac mi3nak min3anze m2in3de minde4s 4m1indu mi2nef miner1 mi4n3e2ri min2eu 4minfo min2ga ming3s 2minh 3mi3ni mini3k4 mi3nod mi2nof 2m1inse m1inst mi3nu 3minz mioni1 mi3p mi4ps 3mir. 3miri 3mirs 3mirw 3mirz 3mis. mi2sa mis4au2 mi3schu misch3w mi3se1 2m1i2so mis2p mi2spe mis5sar mis2ser mis4st mis3te mi1sto mi1s4tr 3misu 3mit mi2ta mit1h mi5thr mi5tic mi5tig mi2to mi5toc mi2tr mit3s4 mit5sa mit3tan mit3t2e mitte3s mi2t1u 4mitz mi3v2 2mj 2mk2 m3kn mk4na mk4ne mk4nu 2m1l2 ml3c m3le ml3f ml3k m3lo ml3p ml3s2 2mm mma3a m2m1ak mma4kr mm1all m2mank m2m1ans mm1anz m2m1ap mm1art mma1st mm1aus m2m1äu mmd2 m2m1e2b m2m1e2di m2m1ef mm1ein mme2l1a2 mme2lin mm2ene mmen4te. mmen4ten m2ments m2mentw mme2r3a2 mme2rec mmer4geb mme2s mme3sc mme4sz m2m1eu mmi3el mm1inb mm1inh m2m1ins mm1int mm2is mmi3sc mmisch4 mmi1s4t mmi3tw mm3m2 mm3p mmpf4 mm2s mm3sa mm3se mm3s2i mm3so mm3sp mm3sta mm3sti mm3te m2mum mm2un mmu3r mmuts2 mmül2 mmüll1 2m1n2 m2nesi2 m3ni m3nu 2m1o2be 3mobi 2mobj 3m2od mo3de mode1s mo2dr m1of mo4fe mo2g1al 3m2oh moh2a moi3r mo2k1l mol3d 3mom mom4e 3m2on mo2nan mo2nä mon2dac mon2del mon2d3er mon2do mond3r mo2ner moni2en mon2s3 mon3sa mon3s4e mon3s4u mont2a mon3th mo1ny 3m2o2o 2mope 2m1opf 2mopt mo1ra mo2rak mor2an mor2d3a mor4derm mor2dr mor3g morgen3s4 mor3t2 mor5to mo4ru 3mos mo4ska mos3s moster4 mos2ti mo2su mo3t2h 2motio mo5tor mot4r motte3s mous2 m1ox moy3 möbe2 mö2c 2möf mö4fe 3mög 2m1öl 2mp mpa3ne mpe2la mpe2lin mpe2n m2p1ene m4pf. mpf3au mpf1ef mp2f3erf mpf3erg mpf3er2p mp4ferpr mp2f3er4r mp2f3erz mp4f3l mpf1or m4ph. mp1haf m4phb m4phf m4phg m4phm mp1hos m4phs m4phz mpin2 mp3lei m2p3lem. m2p3len m2p3les mp4lis mpor4tag mpor4ter4 m2p3ra mp4rä mp3sh mps2p mp3str m3pu 2mq 2m1r2 m3ra m3ru 2m1s m2sam m2san m4sap ms1as m3sat m2sau m3sä m4s1än m3sc msch2l m4sco m3se. m2s1e2d m2s1ef m2sein m2se2le mse2n m2s1ene m2sent ms1erf mse2t ms1eti m2s1eu m2sex mso2 m2s1od ms1orc ms1ori ms2p m2spä m2sped m4spl m2spot m2spro ms3s2 mss4a mst2 m4st. m3stä m3steh m3stei m3stel ms2ti m2stit m3sto m3s4tr ms5trä ms6trän m3s2tu ms4tü m2sü m3sy m4szi 2mt mt1ab mt1ak mta4m mt1ar mt3aug m2t1e2d m2teig mt1ein m2t1eis m2teiw mt1elt m3tem. mt1emi m4tenga m4t3engl m4tentf m4tentg m4t3en2tr m4tents mter2 m2t1er4b m2t1erf m2t1erg mt1erh m2t3e2r4i m2t1erk m2t1erl m2t1ers m2t1ert m4teta m2t1eu m2t1ev m2t1h mt3ho m2t1i2d m2tim m2t1in m2t1i2r mti2s mtmen2 mt1ob mt1op m2t1öl mt1ös m2t3ro m2trö mt2sa mt3sco mt2s1e mt3send mt3s2ka mt3s2kel mts3tät mt3stu mtt4r mt1um mtu3re m3tü mt3z mu1a mu2ckel 2m1uh mu3la 3muld mul2lau 3mult 3mumi m1ums mum2s3p 3mun mundan4 mun4derf mu2ner2 4m1unf 4m3ungeb mu3ni mu4nin 4mu4niv 4munw 4munz mu3ru mu4r1u4f 3mus mu4s1a mu2s1o mu2sp mu2s3t2 4must. must4e mu2su muße1 mut1au mut2st 2müb 3müh mü2her mühl1a 3mül mül2len 3mün 3müt mütter3 2mv mvoll1 2mw2 mwa2 mweg4 mwel4 mwelt3 mwelter3 mwu1 my1a my1on my2s3 2mz2 mzug4 1na 3na. na2a 2n1ab 3naba na2bä naben3s2 n3abh n3abk na2b3l na2bor na2br nab4rü 4n3abs2 na2bus 4nabz 3nac n4ac. na2ch1 nachen6 na3chen. n3achse nacht5ers nach6tersc nacht6raum n1ada na3dab 3nade na3de. nadel1 na3den 4n1adl 4n3adm n1a2dr 3nae na3el 2n1af na3fra nag2a na3ge. na2gem 4n1agg n1a2gi na3gin na3g4r 3n2ah nah1a na2hau n4ahm 4n3ahn 4n3aho na2hö 3nai na1i2d nai2e n1aig 4n3air nai4re n2ais 2n1ak 3n4akä 3nako na4kro 4nakt na4kus n2al. na2l1a2 nal3am na4lar na2lä 2n1albk n2ald nal3da na2l1ed nal3ei na2l3ent na2ler2g na2lerm na2l3erw nales2 nal1et nal1ex nalg2 na2lid na2lop nal2ph n2als. nal3t nalt2a nal5t4r n2alty na2lu 2naly na4mal na4mat 3name 4na4mei n4amen namens3 4n1a4mer na4mid na4min na3m2n 3n2amo n1amp nam4sp 2n1amt namt2s na4my n1an 4na2n4a na4nat n3a2nä 4n3anb n3and2 nan1eu 4n3anf 4n3ang 4nanh 2nani 4n3ank 4n3anl 3n2ann 4n3anna 4nano nan2o3b 4n3anp 2nanr 4n3ans 2nantr 2nanw n2anz. nanzen2 nan4zeng nanzer2 nan4zerg nan2zw na3ot na2per n1apfe 2napfel na2pos n3a2pr n1a2q n1ar 3nar. na2r1a 2narc n2ard n2are n4are. 3nari n2ark n2arle 2narm n2aro na2rom na3rö n2arr nar2rh n2ars 2nart n2arta n2arth na3r2u 3nas n4as. na3sä na2schw 4n1a4sp nas2s1c 4n1assi nas4ta 4na2sy nasyl2 3nat n4at. n4ata na2tat na4t3au nat1ei na2tem na2t2h 4natm nat2o 4natom nat1r nat4sa nats1e na4tt n4a3tu n1au nauf2fr 4nauge. 3n2aul 3naum na3um. 4nausb 4nausd 4nausf 4nausg 4nausl n2auso 4nausr 4n3auss 4nausw 4nausz nau5te 3nav nave4 navi3er. navi3ers na2x 1nä 2näb 3n2äc 3näe 2n1äf 3näg nä2hi 3nähm 2n1ähn nä2hu 3näi 2n1äm nä4mi 2n1än 2näpfel 2näq när4s5t nä2sc n2äss nä4st 2näu 3nä1um 2nb2 n3ba n3be nbe2in nber2e nber2gr nbes4 nb4la nb4le nb4ri nbruch4s5t n3bs nby4t 2n1c n2c3ab n3can n3ce4n n3ces. n4ch. nchi3en n3chl n4ch3m n2ck ncor2 n3cr n3cu 2nd nda3f nd2ag n3d2ai n2d1ak n2dana n2dani n2danz n3dat nd3att nd1au n2daut n2dax nd1äng nd1c nde2al. n3de1e n2dei nde3inf nde2lat nde3l2ec nd3elfe ndel3l ndel4s3a ndel4s3en ndel3ste nden3sk n2dentl n2dents nde3o2 n3der. nde4rei4s n3deren nd2erh n3deri nder4läs nde2rob n2de2ros nder4sat nder3ste nd2es1 nde2se ndes3s ndi2a3 nd1imm ndo1c n2dof ndo2n3a n2dopt nd1or n2do2ri ndo1st n2d3ott n2dout n2dö nd2ös n2d3rat nd3rau n2d3re n2drif n2d3roc n2drod n2d3rö n2drui n2d3run n4dsb nd2sene nd4sf nd4sg n4dsl nd4sm nd2spr nd3th ndt4r n2duns ndy3 ndys2 1ne 3ne. ne2ap 3ne3as ne3at ne3au 2n3ebene ne2bl 2n1ebn neb4r 2nec 3neca 3nece ne2ch ne1ck neck2a ne2dit 2nee neei4 ne3ein ne3eis neen2 ne1en. nee1r neer4e n1ef n2ef. n2e3f2a 2nefr 2n1egg neg4l n1e2go neg4r n1e2he 2nehe. 2nehem nehen2 ne3he2r 3nehm 2n1ehr 2n1ei 3neia 4neic nei4dr 4neier 3neigt 3neigu nei4la 4neing 4neinh 4neink 4neinl 4neinr 4neinz neiss4 ne2ke 2n1eks nek3t2 2nekz ne2l ne3lä nel3b n1ele ne3leb 2nelek 2nelem ne3len ne3l2i ne4lim ne4lit 3nelk n2ell nel2l1a nel2lei neller4f n2eln 3ne3l2o 3ne3lu 3n2em. 2n1emb ne5men n2emo 4n3emp 2n1ems 3nen n4en. n2en3a nen4am ne2nä n2enb n2enc 4n1endb 4n1endd 4n1endf n1endg 4n1endh 4n1endk n1endl 4n1endp 4n1endt 4n1endw nene2b nen3ei nene4m nenen1 ne4nene nen3erb 2nenerg ne2n1eu n2enf 4n1engb nen2gen nen4gen. 4n1engs 4n1engt n1engu nen2gun n2enh ne2ni n2enj n2enk2 n2enm n2enn nen2nar ne2no4 nen3s2e 2nensem nen3sk nen3s2p 5n2en3t2a 4n1entb 4nentd 4nentf 5n2enti 2n1entl 4nentn 5n2entra nen2tri 4n1ents 4nentw 4n3entz ne4n3u n2env n2enw nenz2er neo3b2 ne2oh ne2or neos4 ne2pen 2nepf 2ne4pi 2nepo ne2pos nept4 n4er. ne1ra ne2ra2b ne2rac ne2r3af ne2rag ne3r4al ne2ram ne2ran ne2r3ap n2erat ne2rati ne3rato ne2rau n2erb2a 2n3erbe. 2n3erben 2nerdb ner2dig nere2 ne2r1eb ne2rec n1erf 2nerfas nerfor2 3nerfr 2nerfü 2ner3g4 n3ergeb 4nergi 3nergr n1erh n3erhö 4nerhöh 3neri neri2e n2erj n1erk 3nerka n2erkö n4erleh n2erli 2n1erlö n1ermi 2nermit 2n1ernä 4n3erneu 2n1ernt n1eros n1eröf ne1rös 3n2ers. n1ersa 3nerse ner4sk 2n3ersts nert4 3nert. ne2rup 3n2erv 2nerwar 2n1erz n2es. ne2sal nes2an ne2sei n1e2sel ne2s1ev 2ne3sh ne3ska ne2s1of ne2s1or ne2s3pa 2n1es4si ne1sta ne2ste nes3ti 2n1est3r ne1stu 4nesyn ne2tab 2ne4tag net1ak ne2t1an 2ne2tap 2ne2tat ne2te2l ne2th net3ha ne3ti ne4tim ne4tin ne2tob n2ett net3ta net3te net3t4r 2n1e2tu net2zer net2z1i ne2u neu1c neu2ere neuer2f neuer2k neuer4s neuer2w neuf4 neu3g4 n2eun 2n1eup neur2 neu2ra neu3t 3n2evi n2ew 2n1ex ne2xi 3nez 1né 2nf nf2al nfalt4 nf2ang nf4ar n3f2ä nfe2i n3f2en n3f2er nf2es n4fex n3f2i nfi2le. nf4le nf4lö nf5löf nf2o nfo1s n4föl nf4re nfres3 nf4ri nf4ru nf4rü nf3s2 nf2tan nf5ten nf2t3r nft4st nfts3tr nf3tu n2f1u 2ng n3gabe ng1abt n2g1a2c n2g1ad n2g1ak ng1a4me ng1ams ng3anda ng3angl n2ganh n4ganl ng1ans ng1ant ng1are n3g2ars n2g1a2v n2g1äl ng3d n2g1eif n2g1ein ngelb4 nge3l2ei ngel3t4 n3gene nge3nerw ngen3sa nge2ram n2g1erg nger2zä nger3ze n3ges nge3sa ng5füh ng5get ngg3s ng3hu n2g1id ng5käf ng2lad n3glas ng2läs n2glic ng4lok n3glot n2gn ng3ne n4g3ni ng4nom ng2nu ng2ob n2g1op n2g1o2r n2gö n2grai ng4ran n2g3rat ng3roc ng3rost ng4s3au ng4scr ng4sd ngs3e4h ng4sek ng4sf ng3span ng4spar ngs5tan ngs4teu ng3ts n2gum ngung4 ngzei4t 2n1h2 n3ha. nhabe4r3e n5haltu n3he nhe2r n3ho 1ni 3n2ia ni3alo ni2ar nibb4 ni1ce n1id 3n2id. ni3da ni2de n2i3de. 2nidea ni3den. ni3d4r 2n3idy n2ie nie3b 3nied ni2e1i ni1el nie3l2a nie4n3 ni3ene nie2rei nie4rerg ni2erna nie2sa ni2eu nife4s3 ni3fl niga4 ni2g1ab ni2g1am ni2g1an 4n3i2gel 2niget n4igk ni4gl nig3li ni2gn nigs3c nig4sp nihi3 ni2kar 4nikei 4ni2kel ni3k2erh 4nikh ni2ki nik3ing ni2kor ni2k3r ni4ks nik3t4 4nikun 3n2il ni3l2a ni3l2i nil3l 4nimp nin1 3nin. 3n2ina nin2ac ni2nal 3n2inb 2n1ind 2ninf 3ning n2ing. n2ingo ning4s 2n1inh 4n1ink2 3nino ni2nor 3n2inp 2n1ins 4ninse 4ninsu 4n1int ni3nu 4n1inv 3n2inw ni2ob ni3ok ni3ora n2ip ni4ron n1irr 3n2is ni4sam ni2san ni2sä nis3cha ni2schw ni2s1e ni3se. 4n3isol ni2som 4nisot ni2sp ni3spi nis3s4 nis3tha ni2s1u 2nit 3nita ni3th ni2ti 4ni4tia nit2o 3nit4r nit3s nit4ter4g nit4t3er4k nit2t3r nitt4sa ni3v2 3nix 2nj 2nk nk1abr n2k1ac nk1a2ge n3kal n4kalg nk1ang nk1apf nk3art. n2katm n2kato nk1aus n2kaut n2k1äh n2k1äp nke2c nk1ei nk2eil nke2lei n2kelem nkel5ster n3ken. nke4na nken4te nker4fah nker3la n2k3erle nke2ros nk3ersa n2k3erwe n3kesc nke2t nk1eti nk1i2d n2kide nk1inh n2k1ins n2klade n2k1laf nk3leis n2k3len nk3les nk2lo nk4neb n2knis n2knit n2knu n2k1o4be n2kopt nko2r nkord2 nk1ori n2k1ort n2köl nk4rab nk3rät n4k5re. nk3rel n2kren nk3rep n2krez nk3ro n2krol nk2sal nk2se nk3sen nk2so nks2p nks2ti nk3s2z nk2tak nk2tan nk4tau nk3tek nk4tent nk2terg nk2t3ern nkte3sk nkt2et nk2tin nkt1it nk2top nkt1r nkt3ric nk2tro nk2tru nkt2sen n2k1um nku2n nk1urh n2küb 2n1l2 n3la n3le nle2ga nleit6e n3li 2nm2 n3ma n3mä nmen2s 2n1n n2nada nna2g n2nalg n4n1all n2n1amb n4nan nn1a2sc n2nau n3nec n3n2eh nn2ei. n3nelb nne4le nne4na nn2ens n4nentl n4nereig nner2fü nner4geb nn4ergr nn2erh nn2erk n2n3er2la nner4mit nn2ero nne2rö nn3erwa nner2z nne2s1e nn2eu nn2ex nn3f nng4r n3ni n4nid nnk2 nn2o3b nn3obl nn3obs n2nof n2nop nno2r nn1ori nn4sam nn3s2p nnst2 nn2stoc nn2stö nnst4r nnt2a nn5tag nn2th n2n1uf n2n1unf nn1ur nnvoll4 nnvol3le 1no 3no. no3at 3n2oba n2obel 2nobj no2bla n2oble 3noblo 3noblö 2n1o4b2s 3noby no1c noche4 noch4r 2nod no2de nodi3 no2ed n1of no4fe no5fes 2noff n1oh n2ohe no3id no2kel 2n1okk no3kr nola4 no2lam n3ole no4lig no2liv 2n3o2ly 3nome3 3nomp non2e n1onk nons4 n1ont 2nony no2o 3n2opa 3nopä no2pe 2no2pi 2n1ops no3p2te 3nor. nor2a no2rad n2o1rak no3ral no3rar 2norc nor4da 3nordb nor2des nor2d3r nor2du no3r2e 2n1org 3norh 3n2orl 3norm norm2a nor3mal 3norö 3nors 2n1ort 3n2os. nos2e1 no3sh nos2k no5ski no2s3p 2no2sti nost1r 2nostv nos2u no2tan no3tart no2tä no4t1e2i no4t3entr no4ter4 noterb3 no4tex not1h no2tho n4oti no2tin no4tl no2t3op no2t3r 3nov 2n1o2x 3noz 2nöd 2nöf nö4fe 2n1ök 2n1öl n2ör 1n2öt 2np2 n3pa npa2ge npa2s n3pf np4fu n3pl np4lä np4lu n3pr npro1 n3ps npsy3 n3pü 2nq 2n1r2 n3ra nra3di nran2d nräu3s n3re nrebe2 nre3s4z nro2h nrö2s n3ru nrücker4 2n1s nsa2b n3sabo n2s1a2d n2s1a2gi n3saka nsa4kr n2sall ns4alp n2salt ns2anat ns3ane n2sanm nsa2r ns2arg n3sark nsa2st ns4ath nsau4e nsau4r nsau2s n2saut ns2av ns2ax n2s1än ns2äug n2s1äus n4schemi nscher5g n4schl. nsch2o nscht4 n3schu nsch5werd ns2cr ns1eb n3sed ns2eh nse2ha2 nseh3ere n2seinf ns2ele nse2l3en n2sem. n2sene nsen2sp n2sepo ns4eq nse2rei nser4en n2s1erf n2s1erg n2s1erh n2s1erk ns2erko ns1erl n2serle n2s3erne n2serö ns1ers ns3ertr nser2u n2s1erw n2serz n2sety n2s1eu ns2ext nsfi2l ns4ic ns3iden ns4ie ns4ig n3sim n4simp n2sini nsinn2 nsinns3 n3sis n4siso nsi4te nsi2tr n3skal n3s2kel ns2kis n3skle n4skü n3s2ky n3smara ns3ob n2s1o2d ns1of n4soff ns4om n4s3ont n2s1op n2s3ort. ns2pac nspa2g n4sparti ns2pas ns4pel n2speri n2s3ph n3spi ns4pir n2spo n2sprä n2s3prie n2spro n2sput nsrü2 ns3s2 nss4t n4st. ns3tabl n3stad ns4tagent nst1ak n2stale ns4ta2n1 n3stand nst3ane n3star n2stas n2stat. n4staten ns4tati n2stats n3stäm ns3täti nst3eife nst5einhe ns2temp ns4tent ns2tep nst3erge n3s4terne n3s4terns ns4teu ns2ti n3s4tic n3stif n2stilg n3stim n2stob nst3opfe ns4tor n2strie n2strik ns4trip ns4trun ns2tu nst3u4t ns4tüm nsuli2 ns2um ns1un ns2ung ns4unk ns2unw ns4unz n2s1ut n3sy ns4ys n4sza ns4zene n4szo n4szu n4szü n4szw 2nt n3t2a3c ntags4t ntak2ta ntal3ar nta2lin n4t1all nta2lo nt2alp n3tam n3t2anb nta3ne nt1ant n2tanza ntar3ak nt2arb ntar2c nt1ark nt2arm nt1art n4tarti ntar4tik n4t3artu ntasi2 n2t1ass n2tath n3tatl nt1äm n2t1äu nte3au nte1e nte3g4 nt1eh n3tehe n2teig nt1ein n2t1eis nte2lin n2temä n2t1e2mo nt4en nte4na n4tenpä nten4te. ntera2 nte4r3eis nter3g nt4erh nt4erk nt4erm nt4ern ntern2e nt4erp nt4ert nte3sa n4t1es4s nte2st n4testri n4te4ta nteu3 nteu4eri nte3v nt1hel nt1hie nt1ho nt2hos n2thot nt4hu n2t5hum nt2i nti3c nti2en ntim3p n2t3ind nt3inf nting2 nt3inh ntini1 nt4i3t n3t2lem ntmen2 ntni2 ntnis1 nt4od nt4om nto3re n4torg n4t3o2rie nt4ou n4t1ox n2t1öl nt4ral nt1rau nt4raum nt5re. nt3rea nt3rec n5t4ree nt3reif n5trep nt4repr nt4ré nt3rich n4t3rieg nt3ring n2troh n2tropi n2t3rü nts2ah nts3k nt3s2p nt5spe nts2t nt2sur ntt2 n3tub ntu4re. ntu1s n3t2ü nt3z nt4zk 1nu 3nu1a nu3a2r3 nubi1 2nu1c 3nud nude2 3nue nu2es nu4fe 3nug 2n1uh 3nuhi 3nui n2uk nu3k4l n3u2kr null1a nulle2 null3eb n2um. 2n3umb n2ume 2numf 4numg 2numl 3n2umm 4n3umma 4numr 2n1ums 2n1umv 2n3umz nu2n 4nuna 2n1une 3n2ung4 4n3ungl 4n1uni n3unk 2nunr nun3s 4nunt 4nunv 3nunz 3nuo 2nup 2nu2r nur2i nur3s nur2z 3nu2s nu3sc nu3se nu3sk nu3spo nus2s3er2 nuss3p 3nut nu2t1a nuti2v n3uto nu2top nu4t3r 3nuu 3nux 3nuz 3nü. 2nüb nü4be nür1c 3nüs 1nüt 2nv2 n3ver n3vl nvoran2 2nw nweis3s 1ny. 2n1ya n2ya. 1nyh n1yo 1nyr 1nys 1nyw 2nz n2zac n2z1a2g n2z3a4k n2z3a4ne n2zant n2zar nz3a2ri nza2s n2zat n2z1au n2zän n2zär nze4la nzel4lig n3zeni n2zense n2zentl n2zents n2z1erh nz1erl nzer2lö nz4err nz3erste nzer4tra n3z4es nze3sk nze2t nz1eta nze3u4t n2z1id nzi2ga n2zinh n2z1ini nz1int nz1inv nz3le n2z1op n2zöl nz3st nzt4r nzu3p n2z3wa nz3wä n2zwet n2zwir n2zwö n2z3wu 1ñ ño1 ñor2 2o1a2 oa3bi o2ac oa3che oa3chi o2ad oa3de oad4st o3ah oa3in oa4k1l oa4ku o3al o4a3la oa4lg oa4ls oa4me oa4mé o2ami oa4n4a oa4nn o2a3q o2ar oa4re o2as 3o4a3se o3ass oa4tr 2o1ä 2ob. o3b2al ob2am 2ob2ar 2obau ob1auf 2o3b2ä 2obb ob2e 2obe. 2obea 2obec 2obef o2b3ein 2oben obe4na oben3d4 1o2ber 2o3ber. ober3eis ober3in obe4ris 2obev 2obez 2o3b2i obi2e 3obj ob1la ob3lei 1ob3li ob4lit 2oblo2 2ob2lö ob2lu o2boe ob1or 2obot 2obö ob3rei 2obrü ob3s2h ob3sk obs4p 2o3bu o4bunt obu2s 2o3bü o4büb 2o3by oby4t 2oc o3ca oc1c 3occl o1ce och1a ocha2b ocha2r o1che oche2b o2ch1e2c och1eh och1ei oche2l ocher2k ochi4d ochi3e och3l och3m och1o ochö4f och3r och1s ochs4p och3t4e o1chu ochu4f och3u4t och3w o1ci o1ck o2ckar o2ckau o3cke o4ck3er4sc o3cki oc4ko o4cks ock3sz ock3ta o1cl o3cu 2od2a od3ak od2dr o3dec o3d2e3i odein3 ode2l3ag ode2man ode2n1 ode2s1e ode3sp od2et o3dex od2i 2o3dia 2odic 2odif 2o3dir 2odn o2don o2d1op odo4s od2ö 2odr odt4r 2o3du o3dy ody4m 2o1e oe2b oe2c oe3de oe2h oe2l oe2m oe4mi oen1e oe4nz oe2p o2es oe2sc o2et2 o3et. oe4ta o3ets oe2v oe2x o1ë o2f 2o3fa ofa2c of1a2d of1a2g of2an of1au 2o3fä of1är ofdie3 o3fe o4f1e2b o4f1ec 2ofee o4f1ei 2ofem o4fent 2ofer o4ferb o4f1err 2of2es o4f1e2t 2ofeu of2f1a off3erz of2f1in 1offiz of2f3l 2offn of2f1o of2f3r offs2 off3sh off3si off3sp 2o3f2i ofi3e ofie2i ofi3k4l ofi3s4 2o3fl of3le of3li of4lö 2o3fo 2o3fö 2o3fr of3rä of4ru of4rü of2s1 of4sam of3sä ofs2ch ofs3p of3sta of4staf ofs3te of3sti of3str 2oft oft2a of2tei of3th oft4r 2o3fu of3uh of3ur o3fü 2og o2g1ab o2g1ac oga3d og1ang og1ans o2g1e2i oge2li ogener2 ogen2id ogerätein6 ogeri2 o2g1eth og2gl o3gh ogi4e o2g1ini o2g3ins og1l og3le og2lo o3g2n og4na og4ne og4ni og1o2ri ogs2 og3s4p og1ste og3sti 2o1ha o3ha. oh1alk oh1ar o1hä o1he o3he. oh1eis o3hem o3hen. ohen3s o3her. o3here oh1er4t oh1er2z o3hes 2o1hi 2ohl ohl1a oh2la2d oh2lä oh3lec ohl1ei ohle3l oh3lep ohler2 oh4lerg oh4l3erh oh4lerw oh3lo ohl1o2r ohls2e oh2lu 1ohmi ohn1a oh4nac oh3nee oh2ni 1ohnm oh2n1o ohn3sk 2o1ho oho2l1e ohol1o oh1o2p 2ohö oh3öl ohr3a oh2rel oh2rem ohren3s ohrer2 oh2rerg oh3rers oh3ri oh4rin oh4rol 1ohrr ohr5t4r oh1s oh3sa oh3t o1hu oh3w 2o1hy 2oi o1i2d o3ida o1i2m o1in o4ine oi2r o3isch. o2ische o1ism oiss2 o1i2t oi4ta oi3te oi3th oi3ti oi4tu 2oj ojek4tori ok2a oka3b2 o2k3ac oka3i oka2la okale2 okas4t ok2e oki4o ok2la ok3lau ok1lä ok2li ok4na ok2o 2okr ok2so ok2sp ok3t2 ok5tor 3okw 2ol o1la ol3abu olaf4 ol1ami ol1ant ol2ar olar3s o3l2as olast4 o1lä ol1ät ol2chr ol4d1am ol2dä ol2d1ed ol2d3eng old3ersa olde2s ol2deu ol2dim ol2d3o ol2d1r 4o3le. ole2e o2l1ef ol1eie o2l1eis ol1emb oler2 ol1erk ol1er3t ole3s ol1ess ole2s2t ole4sti ole3u2 ol1exz ol2fa ol2fem ol2ferl ol2f3l olf1r ol2fra olft4 olgege3 ol2gl ol2gr olie4n1 oli4er oli3k4 o4l1ind oli5tu oli6tun 3oliv ol3ke ol2kl ol2k3re ol2kro olks3 olk4sc olk4si ol2l1ac ol2l1ad ol2l1ak oll3am ol2lanh ol2l1au ol2l1e2b ol4l1e2c ol2l1ei ol2lel ol2lent ol2l3erh ol2ler2k ol2l3er2l ol2l3erw ol2l3ess ol4lk ol2lop oll3s2a oll3sp ol2of oloni2e olo3p ol1ort olo1st olo3t ol2ov ol3s2k ol4ster ol3t2h o1lu ol2y1 4o3lys ol2z1a2 olzer2 ol4z3ern ol2zers ol2zim ol2zin ol2zo ol2zw ol2zy 2o2m o3ma o4ma2bl o4m1a2ge om1alg om1all o5man. oma2n3er o4m1ang omani2e om2anr om3ansc o4m1ap o4m1ar4s o4m1art omar4te o4ma2sy omat2i o4matom o4m1au o3mä o3me o4meb om1ebe o4m1ef om1ei o4meis o4mele omen3t4an o4mep omer2 o5mer. om1erh o4meru om1erz o4mex o3mi omi2c3 omi2e omiet1 om1ind om1ing o4m1inn o4m1ins o4m1int o4miso om2it om3ma omm2e 3omn o3mo o4m3oa o4m1org om1o2ri o4mox o3mö ompani2 om3pf oms2 om3sk omt2 om3th o3mu o4mum o4munt o3my 2ona on3a2b on2ac ona3g o3nal on3ann onanz3ei o2n1ap o2n3arb ona3th 4onatol onat2s o4n3at4t on2au 2onä on1äh on2dan onde4rers ond1r on2dra on2drin on2d3rü ond3sk 2one o2n1e2b on1ec one2ck o3nee o2nef one3h o3neig on3ein on3ele on1ema one4n1 o4n3ends on2eng onen3s2 onenz4 on1ep o3ner. on1erb o2n1erd oner2fa o2nerh on2erka on1ers o3nes o3nett on2eu on3f2 on3gl ong4le ong4r ong3s2 on2gue 2o3ni oni3de onie3g oni2ga o4nikan o4nikb o4nikf o4nikg o4nikk o4nikl o4nikm o4nikp o4nikr o4niks o4nim o4nind o4ninh o4nins on3k2 3onke onk4n onli4 onlo2c onna2 on5n2an on3n2e 2ono1 o3nod o2nof o2n1oke o3nom on1orc on3ord ono3s ono3t2 ons1a onsa2g on4sam onsau3c onsch2 on2seb on4sed onsen1 onse4t onsi2d ons3ing ons3l on4spin onst2a onst4r ons5tri on3ta on2t1eb ont5end on2t3erl on2th on2t3rat 2onuk o3nur 2onut on3v 1ony o3ny. on3z2 onze3in oo1c ooch2 oo2gl oo2k3l oo2kn oo4mb oo4mo oo2ne o1o2p oo3pa oop2s o1or oor3a oor3d oo4sk oos3s4 oo2su oo2t1a oo4t1ei oo2t1h oo2t3o oo2tr oot2st oot3t oo2tur 2o1ö2 2op. op3adr op1akt opa2le op1ang opa1s opa5s4t 2opä 1ope 2o3ped o4p1ef 2opei 2opel 2open 2opep o2per o4pera op1erh 2o4pf. op2f3a op3fah o3p2fä o4pfe op2fem op2fin opf3la op3flü op2fo 2oph2 o3phe opi3a2 opia4t opie2r3u opin2 2opl op3lag op3le op5leu op2ne 2opo opo4la op2pan op4pl 1oppo op2p3r 2oppt 2opr op3rec 3o4psi op3sz 1opt2 2opte op3th o4pti opt4r o2pum 2o3py 2oq 2or. or1a 2o3ra. o1raa 2or3a2b o2rabb o2r3add or3adr o1r2ag 1orake ora4ku o1ral o4r3alm or4alt or2am or3a4mi o1ran3d or4ane oran2f oran2m oran2ze or3app 2orar o1r2as o2r3att 2orau oraus4wa or2av 2o3raw o1ray o3rä or1änd or1ät orb2l or1c 2orca 2ord. 4orda ord1am or2d1ar or2dau 2ordb or3de. ord3eng ord3ermi or2d3erw orde4s or2deu or2d3ing or2d1ir or2dit 1or4dn or2do2 2ordr or4ds ord3s2t ord3t 2ordu 2ordw 2ore ore4as o2r1e2b o2r1e2ck or1e2di o3ref or1eff ore2h o2r1ei o3rei. o3reie o3r2eif o3r2eis orems2 o3renn oren4ne o3rep o2r1er o3r2ere o3r2ero ore4th o2r1eu 2orf or2fac org4a org2e 2orget or3ghi 2orgia 1orgi3e or2gl or3gla or3gle or2gn or3gne 2orgr 2orh 2o3ria 2or2id orid3i 4o3rie. o3rien. ori4eng ori4enr o4rienti ori4env o3rier o3ril ori3m or1ima ori4mi 2orin o2r1ind 2or4io o2riso 2orit 2ork ork3sh 2orm or2mam or2mang or2mans orm3asp or2m1eb or2m3erf or2mer2g or2mor orm3ord orm3org or2mum ormu4n or4muni or4munt ormwa5r orna2c orn3ack or2nal or2nan or2nar or2nau or5ne. or4nei or5nes or3ni or4nin or3no1 2o1ro o2r1ob or3oly oro3n2a or1opf o2ro2r o3rou or1ox 2o1rö 2orp 2orq 2orr orr4a or3r2e 2ors or3s4a or3sche or3sh or3si or3s4k ors3tun or3sz or2t1ak or2t1an orta2r or2tef orte4n or4ten3g ort3erb or2tere or2t3erf or2t3erg or2terk or2t3erl orter4sc or2t3e2v or2the orti3en or2tin or2t3off or4t1o2r or2tö ort3rad or2trau or2t3räu ort3re or2tro or2t1um or4tü or5tün 2o3ru or2uf or1uh orum4s o4r3un oru2r o2rü or3z2e orzel5 or2zw 2o3s2a os3ad osal2 o4s3ami osa1s 2osc o4s3ca osch3ar o3sche osch3le os4co 2ose ose1e ose1in2 os2el ose3l2a o2s1er2k os2ex 2osh o4sh. o3s2hi os2ho o4shö o4shs os4hu 2osi os4it o3sk o4sk. 2oska os2kal o4skb o4ski 2os2kl 2os2ko o4skr o4sks o4skv o4sky 1osm os4mog 2oso osol1 o2sö 2osp os5pfa o3sphä os3pi o3s2po os4pot os4pt os4pü os2sa oss2abb os4s3a2c os3sag oss3ala oss3and os4sä os2sei oss3enke os4s3enz os2s1ep os2s3er4b osser2e os2serf osseri2 os2serz os5set os4sik os4sim os2s1o2 os4son os2s3p os2s3t os4sü ost3abl ost1am ost3ang ost1ap os5tarr os4tat ost1a2v oste2c oste2n ost3engl oster3e os6ter6weit ost3eur os2t1h os2tid osti3en os3til os2tin os3tina os2tit os3to os4tob os4tor ost3ran ost3rä ost3re ost3rot ost3uf os2tug 2osu2 os1um osu4r 2o3sy osyri5 o3s4ze 2o2ß o3ße o4ßef o4ßei o4ß1el oß1ent o4ß1en2z o4ßep oßer2 o4ß1erb o4ß1ere o4ß1erf o4ßex o3ßi oß1is 2ot o3tabe o2t3abi o2t1ah o2t1ak o3tam ot1ant o3tark ot1a2st o2t1att o2t1au o3tau. ot1ä o3te o4teb ote1i o4t1eib o4t1eic otei4n ote3in. ote3ine ot3einh ote3inr o4t1eis ot2el ote4l1a ote2lin otel3s2 o4t1emi ot2em3p2 ote4na otens4 o4tentb ot1erb o4t1er2l o4t1erw ot2e2s ot2har o2them o2t1hi o2thu o2til o2t1i2m otli4 ot2o oto3b ot3off oto2ph o2t1ö otra3c o3t4ran ot3rat ot3re ot3ric ot4rig ot3rin ot2s3at ot3sch ots1o ot2s3pr ots3tau ot3sti ot3stra ot2su ott1a ot4tan ot4ta4s ot2teb ot2terh ot2ter2k otte2s ot2t1h ot2tim ott2o ot2t3r ot3t4ra ot4tri ot3t4ru ot1url o3tü ou3f4l oug2 ou4ge ou3gl o1uh ou1is. 2oul ou2le. ou2les ou4li 2o1um 2o2u2n oun2ge. oure2 ou2ret ouri4 ourie4 ourme4 our4ne. ou3sa ous2i ousi2e 1outf ou3ti 3outp out3s2 ou3tu4 2o1ü ov2a 2ovel o3ven ove3s4 oviso3 2ovo 2ow o4w3al o3wec ow2er o2wer. o2wh owi3en o3wj ow4su o2wu 2ox. o1x2a 2oxe o2x1el o2xid 2oxk ox3l o2x1u 1oxy o1yo oy1s2 oz2 o3za 1ozea 2o3z4en ozen2ta ozes4sc 2o3zi ozir3 ozon1a 2ozy ó2k ór3d2 ö3ba öb4au öb2l ö2b3le ö2b3r öb2s3 2ö1c öch1l ö2chr öch2s öch4ste öchst3ei öchst3r öchs2tu ö3cke ödel3l öde1r ödi3 ödienst6 öd2st 1ödu ö1e 1ö2f ö3fe öf2fl ö3fi öf3l öge3le ögen2s1 ö2g3l ö2g3r ö1he öhe4n1 öhl4e4 öhre4 öh3ri ö1hu ö3ig. ö3isch. 1ö2k2o3 ö2k3r ök2s ö2l 3öl. öl1a2 öl1ei öl1em öl4en öl2f1ei ölf2er öl1in ölk4e öl2k3l ölks4 öll1a öl3le 3ölm öl2nar öl1o ölo4f öls2 öl3sa öl3sz öl3tu 1ölu ölz4w öm2s ön2e ö3ni önizi1 önn2e ön2s ön3sc ön3sp ö3o2ta öoti1 2ö2p ö3pe öpf3l öp4s3t ör3a2 öra4k ör2b3l ör1c ör3de ör2dr ör3dra ö2r1ec ö2r1ei ö2r1e2l ö2r1e2m öre2n ö2r1ene ö2rent ö3r2erb ö2r1e2r2e ö2rer2f ö2rer2g ör2erh ö2rer2l ör2err ör2erw ö3r2erz ör1ess ör2f3l ör2gl ö2rim ör2kl örn2e örner2v ör1o2 örpe2 örs4e ör3s4k örs3t ört2e ör5tri öru2 ö2r1une ö2sa 2ösc ö2sch3a ösche2 ö2sch3ei ö4schen4e öscher4 ö4sch3erf ö4sch3eri ö2schi ö2sch1l ö2sch3m ö2schn ö2schw ös1ei ö2sein öse3str ö3set 2ösl ö2sp ös2s1c ös2st ö2st öst1a2 ös3te ös2th ös3tr ö3su ößen3 öß2ti ö2t3a öte4n1 ö2t3r öts2 öt2sc öt2tr öv2 öwe2 öze3 özes4 1p 3paa p1ab p2abe pab2l pab4rü 2pabw 3p2ad 2padr pae2 pa3el pa2es pa3fr 3pag2 pa3gh pa1ho 3pak pa3kl pak4to 3pal2a pala3t4 3palä 3pal2e pa3l2i pal2ma pal2mä pal2m1o 2palt pal2t1a pal2tei pal2tr pa4m3a pa2nar pa4n3at pan3d pand2a pan4ds pa2neu pang4 2pange pa4nisl pank4 2panl panne2 pan4n3eb 4pannu 3pa2no pan3sl 3pan3t2h 3panto 2pantr 3panz2 pan3ze 3pap papieren4 papie6r5end pap2pr pap4s papst1 pa2r3aff par3akt pa2rant pa3rap pa2rä 2parb p2arc par3d 2parer parer2g 2parg pargel4d pa2rid 3park. park3am par2kau par4kr 3parks par3m2 pa2ro 2parp 4parr 4parta 3partei 3parti 3partn 3party 2parv 2parw par3z4 pas2e pa3s2p pa4spe passer2 pas2sp pa4st pa5str 2paß 2pat. pat1a pa5tag pat4c pat4e2 pa5ten pat2h 3pati 3pat4r pa5tri 3pau 4p1auf pa3uni 4pausz pay2 3pä2c pä3cke pä4ck3er 3päd pä2d1er 3päs pä4ta pä4t1e2h pä4tent pä4tep pä4t3erb pät1h pä2to pä4tr pät3s4 2pb 2p1c p3ch 2pd2 pda2 pda4t pe2a2 pea4r p1e2b pech1 3pech. 3peda 3peel 2pef 4p1eff 3peg pege2l pei1 4peic p2eim 4peis pekt2i 3p2el pe4l3ab pe4lai pe2l1au pe2l3ax pe2l1ä pelb2 pel3d4 pe4l1e2h pe2l1er pe2let pe2leu pe4lh peli2d peli4n pe2l3ink pel3inn pel2ins pel3k pel3l2a pell4e pell2i pe2lob pels2 pel3sp pel3t2a pe2lut pel2zin pena2r pe4nas pe2nä pen3d2a pe4nen1 3penh pe4ni2t pe2n1o pens2a 3pen3s2i pen3s2o3 pens2p 3pensu pen3sz pent2a 2pentw penty2 penu2 pen3z4 3pep pe3pi pept2 pe1ra 4perad pe2rak pe2rau pe2r1ä per1e2b perer2 perer3s perer3z pere1s per2id pe3r4io 3perle per2r3an 3pers 4persi peru4 pe3run 3perü perwa4r pe3s2a 3pes3s2 pes2ter pest1o 3pet pet4r 2pf p2f1ab p2fad pf4ah pf1ai p2f1ak pf1am pf1ans p2fa2r pf3are p2f1au pf4av p2f1är p2f1äu 4pfe. p2fef p2fei pf1eim pf1ein pf1e2m p2fener p3fens p3fent p2f1enz p2f1ep pfer3a pfer4pro pf4es p2f1et pff4l pff4r p2f1i2d pf1inn p2f1in3s pfi2s p2fl pf1lam pf4lan pf4leg pf3lei pf3lo pf4lü 4pf5lüm pf4lw pfo2 p2fob p2fom p2for pf1ori p2f3r pf1ra pf4rä pf4ro pf5roc pf5roh pf4rü pfs2 pf3sa pf3se pf3sl pfs4ti pf3sz pf3t2 pft4r p4fuh p2fum 2pg2 p3gl pgra2 2ph. ph2a phal4te4 p1hand 3pha3s p1hau phä1 4phär 2phb 2phd 2p1hei phen3d2 phe4n1e phen3s4 2ph1ers 2phf 2phg p2hid phik1a phi2kan 3phil phi2t 2phk ph2l 2phm 2phn p2ho. p2hob 2phö ph2r 2phs ph3t2 2phthe phu4s phu3t 2p1hü 3p2hy 4phyk 2phz p2i2a3 piab4 pia5ka pi4ali pi4an piap2 pia4tr pi1ce pid2 pi2e pie1i piela2 pieler4ke pi3ent 3pier pie2ra pie2reb pie2rei 3pig pi3gl 3pil pi3le pill2 pil2zer pil2zw p2im pi2nad 4pind pingen2 ping3s 3pinse pin3sp pi2o pi3onu pi3os 3pip pi2pe pi4pel 3pirate pi3ri pi3s2k 2piso pit2a pi3t2h pit2s 4pitz pit3z2e pi2z1in 3pizz 2pj 2pk2 pku2 p2l2 2pl. 3pla 4p3lad p1lah p4lak pla3na p4lau pla2y 3plä 2p3le. ple1c ple2e p4leg ple3n2 2p3ler p4leu p4lex 2plig 3p4lik p4liz plo3n 2p3lu plu2s 2pm2 p3mö 2p1n2 pob2 2po1c 3pock 3pod 3poe po2el 2p1of 3pog 2poh 4poil 3po2in po2it poka2le 3pol po2lan po3lar po2l1au pold2e pol3f po3li po3lo5p pol3z4 pom2ph poni2 3pont2 po1ob 3p2op po4p1ak po2p1ar pop3l po2pli po3p2t po1rau po3re porf4 pori2e pork4 por3s 3portal por2th 3portio 3porto. 3portos 3portr por2tre port3ric 3posi poss2 po2sta pos4t3ag po2stä post3ei pos3tel pos4tem pos4tr post3ra post3ri pot1ar 3potä 3pote pot2h poti2e po2tin pott1r po2t1u po3un po2w powe2 p2o1x pö2bl pö2c 2pp p2pab pp1ans p2pat pp1au ppe3e p2p1ei ppe2l1a2 ppeli5ne ppel3s ppel3z pp2e2n1 p2p1erz pp3fr p2p1h pp3he pp3l p4p1lac p4plan p4p1lä p2ple pp1oh p2p1ö2 pp3p ppp4f p2p3ra p2prä p2pri pp3rol pp3rot pp3ru pp3s2a pps2p pp3sy ppt2 ppt4r p4p1um ppyl2 p2r2 2pr. 3prak 3prax 3präl 3präm 3präp 3präs 4pre. 4prec 3pred 4pree1 pre2ei 2preg 3preis prei2s3c prei4sei prei2s5t 2preiz 3prem pren2ga 2p3rer pre3sa pres3s2e pri2e 2prig pri2l1 p4rin 4pring prings4 3prinz pr4io pri3o4n 3pris pri2t1 priter2 prit5t4 4pritz 3priv 3prob pro3be 3p4rod 3p4rog 3proj 3pr4om 3prop pro3pe 3prosa 4pross pro1st 3prot prot2e prote3i 4prott 3prov pro1x 3proz 2prö 2pru 2prüc 3prüf 4prüh 2prün 2p1s ps1ad ps2hi psi2e p2sö pss2 pss4t p2st p4st. p3sta pst1au p3stä p3stea p3stel ps2th p3s2ti ps4to p3stö ps2tu p3stü 3p2sy 4psys ps2ze 2pt pt1a pt2ab pta2g p2tana p2t3a4t pt1ä ptde1 p2t1e2b pt3ec pt1ef pt1ei pt1emi p4t1en2g p4t1ent pt1ep pt3ernt pt1erw pt1erz p4teta p4t1eti p2t1h pt1id pti2de pt1in pto4mo pto4na pto2p pto2w pt3r ptri4e p2tro pt3s2 pt4sl pts4t pt1uh pt1um p3tung pt1urs ptü4b 3p2ty pt3z ptz4w pu1a 3pub pub4l 2puc pu2dr 2p1uh 2puk pu2kl pu2k1o pu3la pu2lin pul2sp pul2st 3pulv 4pulw pum2pl 3pun 4pund pun2e pun2s 4punt 3pup 2pur pu2ra pu2rei pur3m pus4h pu3she pus3s pu2s3t 3put put2e put2s puzi3 2pü 3püf pü4lei pül3l2 2pv 2pw pwa4r py1 py3s py3t 2pz2 1q 2qs qu2 qu4ac qu4ar qu4at qu4en qu4er que3rel que4te. 3queu qu4in 1ra. r1aa ra2ab 2raac 2raal ra3ar r2a1as r1ab ra2b1ar r2abä 1rabbi rab2b3l 2rabd ra2bei rab2er rab3erd 2rabf 2rabg 2rabh 1rabi r2able ra2bli ra2b5lo 2ra2br 2rabs2 2rabt 2r3abw 1raby 2rabz ra2ce 2r1acet ra2cheb ra2cho 2rachs rach4t3rä ra2chu r2ack 1r2ad r4ad. rada4 ra2dac ra4d1am ra2dan 2radap 3radar ra2de4i ra2d3end 3radf 3r4adh r4adi 3radio 4radit 3rado 3radp ra4d1r rad3ri rad3t4 rad5te rad5tr r2af raf3ahn raf3ar rafe2 ra4f1er raf3r raft5s rag2a ragein2 rages4 2ragg ra3g4le 4ragm ra2gn rag5ne r2ago rahle4n 3r4ahm r1ahn 2ra1ho 4raht r2ai 2raic rail2l 2r3air raka3 1r4ake 2rakk 3ra3k4l ra4kre ra4kro ra4kt 2rakti 1r4akü 2rakz r2al r4al. ra2l1a4 ra4l3ab ra2lä ral3b4 3r4a4ld r4ale ra2l3end ra2lent ra2l5ern ra3lex r4ali ra2lid rali3er ra2lin2d ra2l3ing ralin4sp ralin4t 2r3alk. 2r3alm. 2ralp. 4ralpe r4als ral3sc ral3sk ral3su r3alt 3r4al3t2h ra2l3u 3r4aly rama3s ra4mei ra4mer r2ami r2amm ram2man ram4mens ram4m3ers ram4m3u 2ramn 3ramsc 2r1amt ramt2s 2ramu 2rana ran1ad ran3ade ra2nal ra2nan ra2nar ra2nau 2ranb r2anbe r4anda r4ande ran2dep ran2d3er 3r2andi rand3s 1raner 2ranf ra4ng 2ranga ran2gan ran4g3e4be 3rangi r2angl rangs4 rang3sp rang3ste rani3e r3a4nil ran3ka ran2kr ran2kü 2ranl 2r1anm r2anmi r2anmu 2ranna ran5ne 2r1anp 2ranr 2rans r2ans. ran2sam ran2spa 2rantei r2anto 2rantr 1ranu 2ranw r2anz. r2ap 2rapa ra2par 2rapf 2rapo ra2pok ra2pos rap4pr 2r3a2pri 2r1a2q r1ar r2ar1a 2rarb r2are 3r4arei raren1 rar3et rar1e2v r2arf4 rar3in ra3ris r3a4rist 4r3arit r2ark 2rarm raro2 ra2rom rar3r 2rart 2rarz rar3zw r4as. ras2a ra3san ra2schl r2asm ra3spr r2ast ra2sta ras4t3ei r3asth ras4to 2rasyl 2raß 1rat r4at. r4ata ra2t1an ra2t1ei r3a2tel 3ratg r4ati ra4tid rati2e 2ratm rat2o 2ratom ra5tor rat3r ra2tra rat4re rat5schl 2r3atta 2rattr 4ratz rat3ze 4rau. 3raub. rau2bri rau3e4n 2rauf rauf3sa 2rau3g2 3r4aum rau2m3ag rau2man rau3me. rau2mi 3raup 4raur 2rausb 3raus2c 2rausd 2rausf 2rausg raus4gewä 2raush 2rausl rau2sp 2rauss raus4sche raus3se 2rausv 2rausw rau3ße 2rauto raut1r rau2tra rau2tro raut3s 1raü r2ax raxi2 r3axt r2ay r2az räch2s 3r2äd 2räf rä3fr 2räg 2räh 2räm 3rän. 3räni 3räns 2räp 2räq 2r1är r2är. rä3ra rä1ro rä4sa rä4sc räse2 räte1s 3rätse 4rätz rä2u 4räue räu2s räus4c räu5schen. 2räuss 2räuß 4räut 2räx 2rb r2b3a2b1 r3bac rba4del rb2al r3bam r2bang r2bant rb1art r2barz rb1auf rbb2 rb1ech rbe3erf rbei3d2 rbe3inf rb3einh rbe3int r4belä rbel2o r3ben. rbe3r2e rbe3rum rbe3sl r2bim r2binf r3bit rbit2a rbi3tu rb4la2d r2blan r4blasser r2b3last r3blat r3blau r2b3le. r3blen rb3ler r2bleu rb2lin rb2lö rb2ob r2bonk rb3ras rb3rea r4b5rechts rb4ri rb4sam rb2sei rb2ser rb2s1o rb4stä rb2su rb2u rbü4b rby4t 2rc r1ce r2cer r1che. r1che2n r1ch2i rch3l r3chlo rch3m rch3r rch4ro rch1s4 rch3t2a rch3w r1ci r2ck r3cki r1cl 2rd rd2ac r2daf r2d1ak r2d1a2l rd2amm rdani1 r2dann rd1ant rd1ara rd1ark r2darz rdär2 r3dee r2dei rd2ei. r2d1elb r2de2le r2delf rdem4 rden3d r2dengl r2dents rde3ob rde3ono rde3r4er rderin4s r2d3ernt rder3w rde3sp r2d1e2x rdie3ne rdien4s rdiensta4 r2d1inn rd1iri rd1ita r2dof r3don rd1os4 rdo4st r2d1oz r2dö rd3rat r2drau rd3ris rd4rö r3d4rü rd3s2a rd2sän rd3s2k rd3s2z rd3t2a rd3th rdt4r rdt2s r2d1uk rduns3 rdwa4 1re 3re. re2ade rea4l3erw 4re2am re3as re3at. re3ats reatu3 2reä re2b1a re2b1l reb3so rech3ar 4rechs rechter4 2rechth 2reck. 2recki reck2st re4ct 3red. re3da 4redd re2del rede3r2 2redi1 re2dik 3redn 3redu re1ebe re1el re1em re1eng re1er 3refe 4reff r2eff. 3refl 3refo 3reg rege2l3ä 4r1egg re3gi re2hac re2h1ar re2h1ei re2hen4e re2h3ent re2hi reh1l4 re2h1o re3hol 3rehö 2rehr reh3re reh1ro reh4th re2hü r2ei. r2eib rei2bei rei4bel rei2ble reib1r rei2bra r2eic 2rei3d r2eie 4reier. reier2t rei2fei 2reig 3reigä 3reigeh r2eigel 4reigens 3reigi 4reign 3reigru r4eih rei3l2a rei3l2i 2r1eilt reim2p r1ein 2rein2a rei3nal 2reinb rein2du rei3n2e3c reinen3 2reinf rein4fe re2info 2reing 2reinh 4reinn 4r3einr 2reins 4reinsa rein4sel rein4sz 2reint re1in2v 2reinw 2reinz 2reisar 2reisb reises4 2reisf 2reish 2reisr 4reisu 2reisv 2reisw reit3s2 3rek 4re2ke 4rekk 2rekz r2el. r2ela re3lat 2relb rel2e relea2 re5lei re2lek 4relem r2elev 2relf reli1 2relit 2relix r2ell rel2lar rel2lei re3lo r2els 2relt relu2 3r2em. 2r1emb rem2da re2m1ei re5men 2remi re3mig r2emit 2rempf rems1c rem4str 2rem2u r2en. r2ena 2rena. re4nac re3nad re3nal re4n3an re2nä 2r1endg 3rendi ren3dr 2renerg 2rengag ren2gan 2rengp 3renh re2ni re3nik 3renm ren2nar ren4nene renns4 renrü2 ren4sein rens2p r4ent. 2rentd 4rentera 2rentf 3rentfo 2rentg 2r1entl rentmo4 2r1ents 3rentss 2rentw 2rentz r2enz ren2zan ren2zer renzer4f renz3er4s renzer4w ren2z3in ren2zw re2ob re3or 3repe 4re2pen 2repi re2pis 2repoc 2r1e2pos 4repp 3repu 3r2er. rera2 2r1erb 3r2erber rer2bi rere2 2rereig r1erek re2r1ep 3r2erer r1erf 4rerfah r4erfe 2rerfi 2rerfo r2erfr r3er2fü r1erg 2r3ergeb 3rergebü r2ergen 3r2erges 2rer2go rer2gr r2ergru r1erh rer2hö re2rid r1erk rer2kan rer2ke 4r3erken 3r2erki 3r2erko r2erkre r1erl 2r3er2la 5r4erlag 2r3erleb r2erli 2rerlö r1erm 3rermo rer2n 2r1ernä r1er3ne 2r1er4ni 4r3erns 4r3ernt re2rosi 2r1er2ö r1erre rer4reg rer2rei r1erri 3r2ers. 2r1ersa r2erse 2rersp rer2spa rer2sta r2erstr 2rer4su r1ert4 r2erte 2rertr r1erw 2r3erwa rer2wac rer2wec r2erwes 2r1erz rer2zä 3r2erzy 3r2es. re2sa re4sam resche2 re2schm re2schw rese2h re2s1of 3resol 3reson re2spa 2ress 4resse res3sei res4s3erw 4ressu re1sta res4tas res4tent res2tex 2res2tu 3resu re2t1ak 2re2tap re2tau ret2e 2r1e2th re2tra re2trol re2u reu4eri reu3g2 2reul re3uni 2r1eur reu2zei 2reü 4r3eva 2r1evid rewa4r re2wi 4rewo 2r1e2x1 3rez 2rezi 1ré 2rf rf1a2ck r3fam rf3aue rfe2i r2fent rfer3g rf2es rff2 rf3fe rfi2le. r2fland rf4lä rf3lic rf4lö rf4lu r3flü r2fo2b rfolg4s r2frauc rf4ru rf4rü rf2sa rf4sam rf2s1ä rf2su rf2ta rft4r r3f2u 2rg r2g1a2d r2g1ah r2g1ak rga2ner r2g1ap r2garb rg3art. r2g1ask rg4at rgd2 rge4an rge2bl r3gebo r2g1e2c rg1ein rge2l3er rge2li rgen2ge rgen2z3w r3ges r2ge4tap r2geto r3gew rg2ins rgi2sel r4gl. r2glan r3glanz r2gleu r2glig r2g3lit rg2log rg2lu r2g3na r2gne r2g3ni r2g3no r2g3oa r2gob r3gog rg3op r2g1or rgö2 r2g1öd r2g3ral rg4rau r2grän r2greg r2g3res r2gret rg3rin r3grö r3gru rg3rüs rg3sä rg3se rgs2ei rg4sel rg3s2i rg3sp rgs4pe rgs4pi rgs4po rg3st rgs2tu rg3su r1h2 2rh. r2hag 2rhah 2rhak r3halt. r2haltb r3han r3has 2r3hau 2r3hä r2he. r3hea 2rheb 2rhef rh4ei 2rheit 2rher 2rhi 2rhof rho2i3 2rhol r3hop 2rhot 2rhöl 2rhs rhu2s 2r3hü 1ri ri3ams ri1an ri2ano ria1s ri2ast rib2bl ri1ce ri1cha ri3chl rich3ter richt4spo ri2cki ri2con ri2dau r2ide. 2ridee ri2d3e2l ri2dent r2i3di 2ridol 2ridy r2ie rie2fem 4riefm rie2f3r rieg4s3 ri2e1i ri1el rie3l2a ri3els ri4enä riene2 rien3s rie4nu ri1er. rie3r2e riere4n ri3ers. rie3sa ri1eu ri2fa ri2fä ri2fei ri2fer3 rif4f3end rif2fer ri2f1o ri4fr rif3s rif2ter 3rig 4riga 4r3i2gel ri2gene 4rigg rig1l ri4glä ri3g2o3 ri1i rii4t ri2kar ri2kä ri2kin ri2kn ri2kone rik2op ri2kor ri4kt ri3kü 2rima ri4mag ri2me. 2rimm 4rimp rim2s rim4sc rim4st ri3na r1inbe rin2c 2r1indu ri3n2e rine1i rine3s 2r1inf 3rinfr r2ing 3ring. rin2ga ring3le rin2gr ring3sp 2r1inh 2rinit 4rinj 2rink rin2kl rin2ko rin2kr 2rinl 4r3innenm 2r3inner 2r1innr r1innu ri3n2o3 2r1in2q 2r1ins rin4si rin2so rin2spe r2inspi rin3stei rin3str 3r2insy 2rint rin4tent rin4t5re 2r1inv rin2va 2rinz ri2ob r3ion ri3o2st ri2pl ri3po 2r1ir r2is ris2a ri3san ri2scho ri2schw 3risik ri3s2ko r3iso ri4s3p ris5pi r3isr 3riss ri4s3t ris4t3ers ris4th rist3r r2it 2r3i2tal rit3ant rit2i 2ri3t4r rits2 ritt3a rit2tau rit4ter4f rit4to rit2t3r ritt2so rit2u r3i4tum rix1 1rí 2rj 2rk rka2b3l r2k1ah r2k1ak rk1all rk2am rk1are rk1asp r2k1att r2k1äh r2kelem r3kell rke2n1 rken2er rken3s4t r2k1er2l rk3ersta r2k1er2w r3k2es r3ket rk1im rk4las rk4lau rk4lim r2klis rk2lo rk4lu rk4ne rk5neu rk5ney r2kob r3kol r3kon rk2op rk1o2ri r2kou rk2ö rk3räu r3kri rk3rin r2k3rom r2krou rk2sal rk2sei rk2sel rk2ser rk2so rk2sp rkstati4 rk2stec rk2stoc rk2ta rk2tel rk4t3eng rk4tent rk2t3erf rk2terg rk2t3erl rkt3ers rk4tersc rk2t3erw rk2t3erz rk4teta rkt2i rk2t3in rk4t1o2 rkto4b rk2t3r rk4tri rk2tum rk4tü rk1ums rku2n r3kup rkur3s rku2sa r2küb 2r1l rl2ab r3lag rlan2d3i r2l1ar r2l1a4sc r2l3aug rle2a r3lec r3leg r3lep rl2et r3lex r3l2i rlicht6e rli4ne. rli2s r3l2o rlou1 rl2ö rlös3s rls2a rl2spr rl3ste rl2s5to rl3t r3l2u rlus6tr r3ly rlz4w 2rm r2mab r2m1ad rma2la rm1ald rmali3e rm1ami r2m1ank rm1anz r4m3aph r2marc r2marz rma4spe rmas3se rmat2o rm3d2 rm1ef r2m3einh rme4na rm2ene r2ment r2meo rmer2fo rm1erg r2m1erh r2m1erl r2m1erp r2m1erw rm2es rme1st rmes4z rmeta2 r2mide rmi4nanz rminen2 rmi4neng r3minh r2m1ob rmon3s4 rm1o2ri rmo1s rm3p2 rm3sa rm3s2k rm3sta rm3t rmt2a rmu2n r4muna r2muni rmwa4 2rn rna2b rn3ab2i r3nad rn4ade r3nage r2n1all rna4n rn4and rn3ani r2nanz rna2r rn3are r4n3ari rn3arra r4n1a2st r4n3att rn3aug rnd2 rn3de rn3d4r r2nef r3neho r3nei rn2eid r4neif r4neis r2n1elf rn1ema r2nemu rne2n r2n1ene rn2eng r2n1e2p rn1erg rn2erhi rner2ke rner2ku r2n1erl r2n1ert r2n1erw r3nes r3n2e2t rnet1e rne4to rnet3r rn2eu rne3uf rn3f rn3g2 r2nid r2n1in r4ninf rn2ing r3nit rnk2 rnn2 rn1ob rn2obr r3nod rn2oh r2n1op r2n1or rno2w rn1ö rnö2d rn3sa rn3s2ä rnse4ha rn3s2p rns2u rn3s2z rn3t2a rn3t2e rn1ur r1nü r1ny rnz2 ro3ar ro3as r2oba 2robj 1r2obo ro2bo2r 2robr ro2bre 2robs ro1c roch2a 3rock. r2o3de rodi4e rod4r roe2 ro2ed ro4fen 2roff 4rog. ro3g2a 3rogg ro2h1in roh1l2 4rohn ro2hö 3rohr 1roi ro3in ro1ir ro2it rok2l ro3le ro2liv rol2lan rolle4 rol3len rolls4 r4olo rol3s 2roly 4rom. ro4mad ro4mal 3roman. 2romb ro4mei romen3e ro4m1er ro5mes 4romm 2romn rom3s 4romt r2on ro3n4ab ro2nan 3rond ro2nerb roni2e ro2nika ro4niki 4ronk 3ronn ron4tan ron2tel ron4tend ron4t3r ron2t1u ro1ny ro1o4f rop2a 2rope 2ropf 1ropl ro3pn 2ropt r1or ro2r3al ro2rat 2rorc ro2rel 2r3orga ro2ro ror3th rort2s ror2ü ro3se ro3sh ro3s2i ro5sin ros4ko ros4p ros6sac ros4sal ros4san ros2s1c ros4senk ros4st ro1sta ros4t1r ros6tri ro2sum 4r3osz roßen2 ro4ßenk ro4ßi ro2tan ro4tas ro4t3au ro2tä ro2tei rot3s rots2o rot2ta ro3tu 3roul ro3unt 3rout ro5win 2rox rö2b3l rö2du 2röf rö4fe 3röh 2r1ök 1röl 2röl. rö3le röl2l r1ölp 3römi r1ör r2ös. rös1c r2öse 1rösl 3rötu 2rp2 r3pa rper1e rperer3 rper3in r3pf2 rpf4l rp4fu r2pli rp4lu r3po rp4rä r3pri rpro1 r5prod r3prü rp3se rps3t rp3t r3pu 2rq 2r1r rr2ab rrat2s rr1auf rr1äm rrb2 rr1c r5rega r5regi r5regl rr2ei rre2le rre2pa rrer2 r2rerh r2rerl rre2ve r4rezi rr2hen rr2hos rri3erm rri3k2 rr4is rrm2 rr2n3au rr2o rr3obs rrr2 rr2st rr3sto rr3str rr3stu rr2th r3r2u r3r2ü rrücker4 rrz2 2r1s2 rs3ab r3sabo r2s3a2d rsa4lin r4s3amp r4s3amt rs3ana r2sanf rs3ang rs3anm rs3ant rs3anz rs3ar r3s4ark r3sau rs4au. rs4aue rs3äm rsch3e2b rscheiner5 r3schen r4scherl r3schu r2s3ebe rse2e r2s3ef r2s3ein rse2n rse4ne r2sepi rs3ere r2s3erh rs3erö rs3ers r2s3erz rse2t rs3eta rs3eth rsha4k r3shav rs3hi r3shir r3sho r4shu rs3inf rs3ins rs3k rs4kal rs4kan rs4kel rs4kie r4skir rs4kis rs4kla r4skn rs4kop r4skor r3s4kri r4sky rs3l r3s4mog r3sno r3so r4s3ob rs4om r4s3op r4sord r4s3orie r4s3ort. rso2s rs3ost r3span rs4pel r2s3ph r3sphä r3spi r3spl r2sput r3spü rs3s2 r4st. rst3abl r3stad rst3ala r2stale r2stans r2stant r2stas r3statu r3stä r3sted rst2ei rst3eing rst3eint rs4t3emi rs4temp r4sten rster2 rst2erb rst3erl r3stern rst3er4w rst1h r3s4tie r2stin rst3ing r3stink r2stip r2stit rs4tob rs4tor r2stot rs4tr r2stran rs5tren rs4tuc r3s4tü rs3uml rs3un rs4ung r3sy r4szä rs3zi rs4zin 2rt r2tabo rt1abs rta2ck r2t1a2d r2t3ae rt1aff rtag4s rt1akr r2t3albe rta3l2e r2t1all rtals1 rtal2se rt1am rt1ann rt1ant r2tanw r2t1ar rt3att r2taut rt3äh rt1änd rt1ärm r3tea rte1e2 r3teh rt1ein rt2eind r4t3einh rte2i3s4 r2telf rtels2t rtem4e r2temo rte2n1 rte4na rten3s4 r4t3ents rten3z rteo2 rt2ep rter2fa rt1erh rter2ha rt1erk r2t3er2la rter4mit r2t3ernä r2ter2ö rter4re rt1ers rt2ersp rt1erz rte3sk rt1he r2t1hi rt2hum r2t1id rti2en rtik2 r2t1ima r4t3inf rt2is rt2it rt3l rt3m r2t1ob rto3pf rt1orc r4torg r5tork r4trak rt3ram. rt3rams rt3rand rt3rati rt3rec rt3re1s r4t3ris rt3rol rt3roma r3trop r2trou rtrü2c rt3sc rt2s1eh rts2el rt3sex rts3ing rts1o rts2tie rt2su rt3t rtt4r rt1umb rt2u3na r2t1urt rtu4t r2t3ute r3tü r4tüb rt3w rty1 rt3z rtz2a rt4zb rtz4w 1ru ru1a ru4ale ru3a2r3 rube4 ruben3 rubens4 rub2i ruchter4 rucht3s2 ru2cka ru4ckerl ru2cku ru3de rude2a ru2dr ru2et 3ruf ru4f1a ruff4 ru4fo ruf2s rufs3p ruf2ter ru2g3r 3ruhm 2r1uhr 3ruin ru3ins ru1is 2rum ruma2 4r3umd 4rumf 4rumg ru2mi 4ruml r2ums. 4r3umsa 4rumsc 4rumw 4rumz 2r1una 2rund run4d1a runden3e run2d3er runder4n runder5t run2do ru3nei2 2r1unem run2en 4r1unf run2ga 2rungl run2gla 4r1u2ni r3unio ru4nis. run2kr 2r1unl 2runm 4runn 4runr r1unse 4r3unt 4runw 2rupd rupi3 ru5pre 2r1ur ru2ra ru2r1e r4us. rus4p rus2s3p rus4st ru2tab rute4 ru4tei ru4t1el ru2t1er ru4t1o4 ru2t3r ru2z3w 1rü 2rüb rü4bc rü4bs 4rübu rü1ch rü2ckel rück3sta rü2hel rüher2 rüh1l 4rümm rü4na rün3z 2rv rv2el rve4n1e r2ventz r3veo r3ver rve3s r3v2o 2rw rwe4gel r5weis rwelt2s r3werk r3wert r2wo. r3woh r3wort rwun3s 2r1x 1ry 2r1y2a ry2c rygi3 ry1la ry2le ry1os ry3sth rysti3 2rz rz2ans r2zar r2zat rz2än r3zeic rzell2 r3zene rz1eng r2z3ente r2zents rze2p rze2ra r2z1erd r2z1erf r2z1erg rz1erk r2z1erl rz3ersc r2z1erw r2z1ess r2z1id rz1int rzir3 r3z2of r2z3ot rz2tan rz3te rz2th rzu4g3l r3z4wec rz4wer r2zwir 1sa 3sa. 3s2aa 2s1ab sab2ä 4sabd sa2ben 3sabet sa2bit sa2bl 4sabm sa2br 4sabs 4s3a4bw 3sac 4sacc sa3chal 5sache sa2cho sach3t s2ack 2s1ada sa2der s1adm 2s1a2dr 3safa sa4fe 4s1aff sa3f4r 3s2aft saf4tr 3saga sag2e 5sa3ge. 5sagen. 2s3a2gent 2s1agg sa2gio s1a2gr sah3l s2ahs 3s2ai sa3i2k1 sail2 sai4r 2s1ak sa4ka sa5ka. sa5kar sak2e 3saki 3sako 4sakt sa4kus 3s2al. 3s2al2a sa2l3an sa3l4at sal2ä 3s2alb sal3bl 3s2ald sa2lerk 3sa3li sa4l1id s1all sal3la sal2le. 3s2al2o sal3or sal2se s1alt s2alth 3salz 3sam 4s3a4mat 4s1a4mei sa4min 4s1amma 4s1amn s1am3p4 4samph sam4ta sam4to samt3st s1an s2an. 2sa2na san4at sa2nä 2s3anb s2an2c 3s2and s4and. san2dan san2dri sand3s sa2ner 3sang. 2sanga 2s3anh 3sani 3sanken 4s3anl 2sa2no 2s3anp 2s3ans s4anse san4sk san3sp 2santei 4s3antr 2s3anw 2sanz 2s1ap sa2pe s2aph sapi3 sap3p 3sapr 2s1a2q 2s1ar 3s4ar. 3sara 4s3arb 3s2ard s2are 4s3area 3sarg sar2ga sa3rin sa2rom s2ars 4sarti sa4r1u4 3sas. sas2a s1asc s1a4si 2s1a4sp 4sa2sy sat2a satan4 sa2t3ant sat1ei 2s3a2tem s3ath 3sat2i 4s3atl 4satm sat2o sa4tol sa2tr sa3ts s3atta 4s1attr 3satza sat2zel sat2z3en s1au 3sau. 3sauc 3sau2e 2sauf 4s3aufb 3saug saug3le sau2gr 3saum 3saur 4s3aura sauri1 2saus 3saus. 4s3ausb 4s3ausf 4sausg sau2sp 4sauss 4s3ausw 2sauß s1av sa2ve sa2xi sa2y 1sä 3säb 3s2äc 3s2äg s1äh 4s3ähn 3säl 4s1ält 2s1äm 4s3änd 2s3äp 2säq 2s1är 3s2ärg 4s3ärm 3s2ät 3säul 4säuß 2sb2 s3ba sba4ne sbau4men s3bä s3be sber2e s3bi s3bl s3bo s3br sb4ra sb4ri s3bu s3bü sby3 1sc 2sc. 2scab 2scac 2scal 2scam 2scar 2scat 2s1ce 4s3cei 4sch. 3schaf s4chal sch3ana 4schanc 2schang 4schao 4schara sch3ar3m s2chä 2schäq 4schb 4schc 2schd sch2e 3sche. 4schech sche2f 4schef. 4schefi 4schefs s4chei 4sch3ei. sch4ein. s2chema 4schemp sch3erfü 2scherk sch3erla 3sches 4sches4s 4schex 2schf 2schg 2schh 2schi4d 2schiru 3schis 2schj 2schk s4chl sch4lac 2schle. 4schlein 2schmed 2schmö 2schmy s4chn 2schn. 2schneb 2schnum 3schop 2schorc 4schör 4schp 2schq 2schrad 2schre. 2schres 2schrin 4s3chris sch3rom 2schron 2schrou 2schrus 4schs sch3s2e sch3s2k schs2o sch3s4ti 4sch3t scht2a scht2i s4chu 2schunt s4chü 2schv s4chw sch4web 2schweg 4schwerk 2schwet 2schwid 2schz 2scj 2s3cl 2s3co 4scoa 4scom 3s4co4p s2cor 2scs 2scu 2scy 2sd2 s3da sda5me s4daq sdä1 s3de sde1s2 s3di sdie3n2e sdi1st s3do s3dr s3du 1se sea2n se3at. seb2 3sebä 2s1e2ben 2s1echo sech2st 2s1echt 2s1e2ck se2dik 3see see1i2 se2e3ig se2el se3elem see3len se3en. see3n2e se1eng se1enk se1enl se1enp see1ra seer4e se1erf se3e2r1i se1erk se2e3s4 2s1eff sef4l 3s2eg 4s3e2gal se2gl seg4r seh1a se2ha2g se2hak se2hel seher2e se2herk se2h1in seh3l se4h3ö seh3ra seh3re seh5ri seh1s se4ht seh1ur se2hüb 2s1ei. 2s1eid. sei3da 2s3eifer 2s1eig s2eim s1ein 3s4ein. 2seinb sein2du 2sei3n2e seine3i 2seinfl sein4fo 2seing 2seinh 2seini 2seink 2seinl 2seinn sein4ne 2s3einr s2eins. 2seinsc sein4stit sein4str 2seint sein4to 4seintr 2seinw 2seinz 2s1eis 3s2eism 3s2eit seit2s 3sek 4s1e2kel 4sekz s2el. se2l1a 3s2elb sel3d4 sel1ec se2lef 2s3e2leg 2s3elem se2ler sel3ers 2self. selin2s s3e2lit 2s1elix sel3m s2eln se2lob s2els sel3sz selt2e sem2e 2s1e2mis 2s3emp s4en. 3sena se4na2d se3nal sen2alg se4nas sen3au se2nä s2enb 4s1endl sen3d4r s1endw senen1 4senerg s2enf 3s4eni se2nid se2n1im 3s2enk sen4keli se2no se4nott se4noz s2ensa sen2s3e2h 4sensem sen4sers s4ensi sen2si2d s2enso senst2 sen4s5turm sen3t2a sen3tä 2sentd 4s3entf 2sentg 4sentla 2sentn s2ento sen3tr 4s1ents 2sentw 4sentwu 4sentwü 4sentz se4n3u2 sen3za sen2zer sen3zw seo2r 3sepa se2pen s1epi 3seq 3s4er. se2r3a2d ser3al se3rand se1ras ser3äus serb2 s3erbe. serd2 se2r1e2b se2r1ed se3reie 4sereign ser3eim sere2m 5seren se2r3enk ser3ent s4erfe s1erfo s2erfr s1erfü serg2 ser3ga ser3gl s2ergr 2s1erhö se2rid 5serie se4rinf serk4 se4rm ser4mah 2s3ermit s2ern. s3erneu 2s3ernt sero4b 2s1e2ros s1erot s1erö 2seröf ser3r s4ers. 2sersa 2s3erseh s3erset sers4p se3rum ser2um. se3rund se3rung s3e2rup 3s4er3v s1erz 3s2es. se3s2a se2sel se3sk 2s1essa se1sta se3stec se3stei se3stemp se1sto se1stu se3su 4s3e4tap se2tat 2s1e2th set2i 4s1e2tik se3tun 3setz 3seuc 2s1eul seum4sc se1u2n se2va 4s3evan s1ex 3sex. 2sexa sex4am se2xe sex3en s2exi s2exo 4s3exp sex3t4r 3sexu 2sexz 1sé 2sf2 s3fa sf4ak s3fe s3fi s3fl sf4la sf4lö s3fo s3fö s3fr sf4ru sf4rü s3fu s3fü 2sg2 s3ga sgang4 s3gä s3ge sgeha2 sge2h3ab sge3sa s3gi s3gl s4gl. s3gm sg4mü sg4na s3gö s3gr s3gu s3gü 2s1h sh2a 3sha. s3halb shal2li shalt2 4shan s3hau s3hä s3h2e sh2i 3s4hi. s2hip shi4r sh3n 4s3hoc 4s3hof s3hoh s3hol 4shom 3sho2p sho4re 3s4how s3hö sh2r2 sh4re s3hu 1si si3ach. 2siat 3si1c si2cha 2s1idea 2sidee 2s1ideo si3der s2i3do 2sidy 3s2ie sieben3s4 sie2bu siege2s sien3 si3ene si3f sif4l 3sig si2g1a2 si2g1ei sig4n si2g3r sig4st si2k1ab si2k1a2g si2kak si2kar si2k1ä si2k1el si2kens si2k3er4b sik3erl s4i2k3i si2k3n si2k3r sik3s sik3t2 si2ku 3silb sil2br sil2e 3sili s1ill 3silo 2s1imm 2s3impf sim4st 3s4imu si3n4a 2s1ind si3n2e 2s1inf 4sinfe sing1a sin3g4le sin2g3r sing3s2 2s3inh s1in1i sini1e s2ink sinner2 2s1inno 4s1inq 2s1ins 4sinso 4sinst 2s1int 4s3inv sion4 s2ire sirn4 2sirr 3siru si2sa si4sam s2isc si2schu si2s1e2 si2si s1i2so sis1or si2s3p sis3s4 3s4ist si2su 3s2it si2tal si2tau si2tra sit2u sit4zerg si2va sive3 siver2 si2v3erf si2vin siv1o4 si2vor siz2 1sí 2sj s3ja s3je s3ju 2sk2 s3ka. 4skab sk4al 4skalk s3kalt 4skam 4skana 4skanä 3skanda skani3e 4skann s3kanz 4skap 4s3kar 4s3kas sk4at ska4te. 4skateg s6kater ska4tes ska4to 4skau s3kä ske2li 4ske2n1 3skep 4sker s3kh 3s4ki. s4kia 3s4kif s4kig 3s2kik s3kim s4kip ski1s s2kis. 3skiz 4s5klas sklat3 3s2klav sk4le 4sklu s3kn sk4na sk4ne 4skoh 4skol 4skom 4s3kon 3skop. sko2pr 4skos 4skow s3kö 4s3kra s3k4re 3skrip 4s3kro sk3t2 skto2 3skulp 4skun sku2s1 s3kü 2s1l2 s3lab 3slal sl4am sla4ma sla2ve s2law s3lä sl3b s3le sler3s s3li 3s4lip slo3be s3loc s4loga 3s2low s3lö s3ly 2sm2 s3ma sma3b4 sma3sc s3mä s3me s4me. sme3na s3mi smi2t3 s3mo s3mu s3mü 2s1n2 s3na snab4 s3ne s3ni sni4a sni3er. sni3ers 4s3not s3nö 1so 3so. 2s3oas 2s1o2b 3s2o3ba 4sobj 4soboe so1c so3ck sodi4 so2do so3et 2s1ofe so4fen s3offi 3soft 3sog sog4l s1o2he 3sohl sohle2 2s3ohng 2s1ohr 3soi so3id 2s1ok 3sol. so3la so4lau 3sold 3sole so2l1ei so3li sol2la sol2ler 3solm so3l2o so3lu 4s3oly 2s3omb 3somm 3s2on son2a son3au sond2 sone4 sonen2d son4gl son3sä son2s1o so3o so2pe s1opf 3sopr sop3s 2s3ord sore2 so2rel 4s3orga so1rh 2s1o2rie so2ro 3sorp 3s2orti so4ru 3s2os 4s3o4sk 4s3osm 4so1st 4s3osz 3soß 2sot so3t2h 3sott soun2 sound1 so3unds so3unt 2s1out 3sow 2s1o2x 2s1oze 1sö sö2c 2s1ö2d 2söf sö4fe 2s1ök 2s1öl 2s1ös 1sp2 2sp. s3pa. 4spaa 2s3pack 2spag 2spak 2spala 2spalä s2pali 3s4palt spa4m s2pan 3spann 2spanz 2spap 2s3para s2parka 2sparo 5s4parten 2spartn 2sparty 3s4paß 3spat. 2spati 4spatr s2patz 2spau 3s2paz s2pä 2späd 3späh 2s3pär 2späs s2pe 2s3pe. 2speg 4spein s4pek 2spensi spe3p4 3s4perg s3peri 2sperle s3pern s4perr 2spers 2sperü 4spet s4pex 3s4pez 2s3pf spf4l 2spha s2phä 3sphär s3phe s4phin s2pi 3s4pie 4s5pier spier4r spi2k 4spil s4pinn 3spio 4spi4p 4s3pis 2spl 4spla 4sp4lä 4sple 3s4pli 4s3p4lu s3pn 2spod 4spoe 2spog s2poi 4s3pok 4spol s2pons 4spoo 2spop s2pore 3s4porn spor4tag 4s3pos 4spote s2pö 4spr. s2pra 3sprac 2sprak s4pran 2sprax sp4rä 2spräm s4prän 4spräs 3sprec 4spred 3s4pren 2s3pres s2pri s4pric 3spring 2sprinz 3sprit 2sprob 2sprod 2sprog 4sproj 4sprop 3spross 2sprot 2sproz 3s4prö 3spru 3sprüc 2sprüf 3sprün 2s3ps s4ps. 2sp3t 2spub 2spud 3spuk 3s4pule 2spun 2spup 3s4pur spu2rer s4putt 2s3py 2sq s3qu 2s1r2 s3ra sr4at srat2s srat4sc s3re sre3cha s3rh s3ri s3ro sro2h srö2s s3ru s3rü srücker4 2s1s ss3abi ssa3bo s5sack ss2agi ss1aj s3sal ss3alba s4sall s4samt s2sanf s4sang ss2ann s4sano s4sans ss2ant s4sanz ss2ara ss2arg ssa1s2 s2s3att ssau4r ssau5ri s3s2ä s4sce ssch2 sschanker6 s3schw s4scl s4sco s2scr sse3a ss1ec sse1ec s3seh sseh2a s2sein ss2eind sse3int s2selek sse2lö s3sen ssen4kel ssen4sem ss1epe sser3att sser2fo ss4ergr sser2hö sser4mit sser2öf s3s4eru sser4wei sser2ze sses2sa s2s3estr s3set sse3ta s3si ss3i2ko s4sill s4simp s4sind s4sinf s4sint s4s1isr s3skala ss3l ssmut4 sso4f ss1off ssoi4 s3sol s4sop ss3ost ss2p ss4pat ss4pec ss4pin s3s4prä s3spri s2spro ss4pü ssquet2 ss3s2 sssau4 sss4p sss4t s4st. sst2a s3stad ss3tak s3stä sst2e s3stel s3s2tep s3s2tern ss4teu sst2i ss2tie ss2t3in s3stop ss4tör s3stran ss4tras s3s4trat s3strec s3strom s3strö ss2tur s3stü ss4tw s2suf s2sumg s2sumr s3sü s3sy 2st. s2ta 2sta. 3s4t4aa 3stab. 2stabb 2stabel 1s4tabi 2stabit 2stabl 4stabt 2stabu st2ac 1stadt 2stafel 1staff 2stag 3s4tagl 3s4tagr 3s4tah s3tai 2stak 3staks 2stala sta3lak 2st1alb s3ta3l2i 2stalk st1alm st1alp st1alr st1alv st1a4mi 1stamm 1stan 2stanb s4tand 2stanf st2ang st3anges 2stanl s4tanm 4st1ann s4tano st3ansp 2stanw s4tap stapo1 stapos4 st1app s4tar. sta4rens 4stari s4tark s4tars st1asi sta4sie stast4 s3tat. s4tata 2statb 3stati s4tau. 2stauf s4taufs 3s4taur 2staus s4taut 2stauto s4t1a2ve 4stax 1s2tä 3s4täb 3s4täd 4stäg s4täm s4tänd 2stänz 4s4täp 3s4tär 3stätt 2s3täus 2stb 2st3c st4ck 2std 4ste. 4steam 4stechn ste2d st1edi 2stee 3s2teg ste2g3r 1steh s2tei st4ei. 4steic st1eid 3steig stei2gr 2steil stei4na 2steing s4teins 2steint s2tel 2stel. st1elb s3tele s3telf st2ell stel4l3än 2steln 2stels 2s3tem 4stem. ste2mar ste4ment 3stemm 2sten s5ten. ste4na s4t3ends s5t2ens s4tentf s4tents st1e2po 2ster 4s5ter. ste2r3a s4terben s3teren 3stereo s3teres st3erfü 3steril 4s3term 3s2ternb s2t3er2zo 4ste2s1 ste3sc stes2se stes3ta s4testn 2stet s4teta ste2tab ste4tag 3s4teti 3s4tett 3s2teu 1steue 4steuf st1eun st1ev s2tew 4stex s2texa 2stf stf6lan 2stg 2sth st2hen s2t1hi st3ho s4thö s2thu st1hy 2stia 2stib s2tic 1stich st1i2d sti2e 2stie. 2stief. 2stiefl 2stien 1s2tif 2stig sti2gel 3s4tigm 2s3tik sti2kr s2t2il sti2la 1s2tim 2stimma 2stimp st1inb 2s4tinf s3tinn s2tins 2s2tint 2stio 2stip. s4tipe 2stipp s2ti2r st1ira st1iri st1iro 4stis 2stite 1stitu 2stiv 2stj 2stk 2stl st3le 2stm 2stn s2to 2sto. sto2bl 2stocht 2stod 3stof s4toff 2stok 2stole s3tom 2s3ton 4stona 3s4to4ne 4stonl 4stoo s4tope 2stopo 4s5tor. s4torb 2s5tore 2storf 2s4torg 2stori 2storp 2stors 2stort s4tory sto3s2t 3s4toß 4stote 2stotr 4stou 2stow 2stoz 1s2tö 4stöch 2stöf 2s3töl 2stön 3stör 2stöt 2stp 2stq s2tr 2strac 4s3trad st4rade stra4fa 4s3trag 1strah 2strahi 4s5trai 4strak 2s5tral s3trank 4strans 1strap 3stras 3straß 2straum 4sträc 4s5träg 2sträne 2sträum 2stre. s4trea s4trec 4stref 2streg 4streib 3st4reif 2strep 2stret 4streuh s4treuu 2strez 2strib strie3s2 2s4trig 1s4trik 2s5tris 1stro s3troc 3s4troh stro4ma s4trome 2stropf 2stros st4ross 2ströp 1stru 2strua 2strub s4trud 2strug 3struk 2strun 4s5trup 2strut 1strü 2st3s2 st4sb sts4t 2st3t2 stt4r st2u 1stub 4stuch 3s4tud 2stue 3stuf st3uga 3s4tuh s2t3uk 4stumo stum2s s3tum4sc 2stun. st3una 5stund 2stune s2t3uni 4stunn 2stuns 2stunt stu3ra stu5re st3url 4sturn 2st3urt 3s2turz 2stus 1s2tut 1stüc 4stüch 3s4tück 3s4tüh 4stür. 4stüre 3stürz 1stüt 2stütc 2stv 2stw stwor2 2sty 4sty. 1s2tyl 4styp 4stys 2st3z2 stze3c 1su su1an 3su2b3 su4ba 4subi 3su1c su2cha su2chi su2cho suchs3p 3sud su2eb s1uf su4fe 2s1uh su1is su1it. su2k 3sul su3l2i sum1a su2man su2mar 3s2ume su2mei su2mel sument2 su4ments su2m1et 2s3umf su2m1id su2min 3s2umm sum1o2 su2mor s2ump s1ums s3umsa 2sumse 2s3umst su2n 3s4un. 2s1una sunder2 sun4d3erh 2s1unf 4sungena 2sungl sung4s 4s1uni 2sunm 2s1uns s4uns. s4unst 2sunt 2sunv 2sunw s4unwa 3sup 4supd sup3p4 su2ra sure4 su2rei su2rer 3surf 2s1urk su2r1o 2s1ursa s1urt su2s3 su3s2a s3u2t su4te su3tr 3suv suz2 1sü2 2s3üb sü4be 3süc süd1 sü4da süden2 3süf 3sün 3s2üs 3süß 2sv2 s3ve s3vi s3vl s3vo svoran2 2sw s3wa s3we swe4gers sweh2 s3wi 4swie 4swil 4swink s4wist 4swit s3wo s3wü 1s2y s3ya 2syl1 sy2lo sy2lu sym3 sy2n3 3synd sy4no 3sys sy4ste sy3sto 2sz2 s3za s3zä s4ze. 4s3zei 4szel 3s2zena s2zend 3s2ze3n2e 4s3zent 4s3zer s2zes s3zet 4s3zeu 3s2zew 4s3zie 4szim s3zo s3zs sz3t sz4ts s3zu s3zü 1ß 2ß1a2 ßa4si ß3at ß3au 2ß1ä 2ßb2 ßb4ri 2ß1c 2ßd2 2ß1e2b 2ß1ec ß1ef 2ß1e2g 2ß1ei 2ß1ek ße2la ße2le 2ßelek 4ß1emp ße4n3a2 4ßenerg ße2ni ß1enke ße2no ß2ente 4ßentl 4ßents 2ßentz ß1e2p ßer3b ßer2ei ßer2la ß1erse ßer3t ß1erw 4ß1er2z 4ß1es2s 2ß1estr ß1ex 2ßf ßf4ru 2ßg2 ßge2bl ß3gm 2ß1h ßi2g1a2 ßig4s ß3i2k ß1il ß1im ß1in 2ßj 2ßk2 ß3kh ßk4le ßk4ne 2ß1l ßler3s 2ßm ßmut4 2ß1n2 ß3ni 2ß1o2 ßo4fe ßos2 2ß1ö ßö4fe 2ßp2 ß3pf 2ßq 2ß1r2 ßrö2 ß3ru 2ß1s2 ß3sa ßsau4 ßsch2 ß3sk ßst2 ßs4to ßs4tü 2ßt ßt1in ß3tü 2ß1um ß1unf 2ßunt 2ßunv 2ß1ü ßü4be 2ßv 2ßw 2ßz2 ß3zs 1t 3ta. t2aa 3taan ta3ar 4tab. 3taba ta2b3an 2t1abb tab2bau 4tabd 3tabel 2taben 2tabf 2tabg 4tabh 2t3a2bit 2tabk 4tabla 4tablä 4tabm 2t3abn 2ta4br 4tabs t1abst 2t3abt 3tabu 4tabw 4tabz 2t1ac 4tachs 3tacu t1ada 2tadd ta2der tadi3 tadi5o4 t1adm t1a2dol t1a2dr ta3d2s 4tadt tad4tr ta2er 3taf. 3tafe 4tafet 4taff t1afg t1afr 3tag ta2ga ta2g1e2i 2t3a2gent tage2s 4t1agg ta3gl 4t1a2go tag4san tags3c tah2 tahls2t ta3i2k tai2l1 ta1ins tai4r ta1ir. ta1i2s 2t1a4ka 2t1akk 2t1akq ta4kro tak4t3erf tak4t1o2 2takz 3t2al. ta2la ta3lad ta3lag tal3au 3talbr tald4 3tal2en ta2l3end tal3eng ta2l3ens 3taler2 ta2ler3g ta2let tal2ga tali4ene tal2l3ac tall3ei tal2l1ö2 tall3s4 2t1alm. 3talo ta2lop ta2l1o2r 3t2als t1alta tal3th talt4r ta2lu 2tam 3tam. 3tame t1a4mer tamm1a tam2m3er t1ampl 3tams 4t1amt t1a2na tan3ab 4tanal ta4nat 2t1a2nä 2tanb 3tan2c tan3d2ar tan2d3r tand2st ta2nerf 4tanf 2t1ang t3angeh t3angel t2ango tan2gra 2tanh t2anho t4ani 3tanj 3tank tan2kl 4tankr 4tankü 4t3anl t1anm 2t1anna 3t2anne t1ano 2tanom 2tanp t1ans t2ans. 4tansi 2tanspr tan2tan t2ante. 2tantei 2tantr 2tanwa 2tanwä t2anz. t1anza 3tanzk t2anzp 3tanzr 2t1anzu 2tanzü tan2z3w tao2 ta3or t4ape ta2pes 2tapf ta2pl ta2poka t2appe ta2ra 2tarab 3tarabb 3tar5al 2taram t2aran ta3rant tar3ap ta3ras t2arau 2tarb 3tarba tar4beitn 3tarbek 3tarber 3tarbi 3tar3bl 2tarc 4tarchi 3t2ard ta2rel ta2r1er tar3g ta1r2h 3tari 2tark tark4l t2arl 2t1arm t2armä tar4nei ta2rom 4tarot 2tart 4tart. t2arta 4tarten t2arth t1arti 3t2artis tar4to tar2tr 4tarts 3tartu 3tartü ta2ru 2t1arz 3tarzu 3t2as. ta3s2a tasau1 3tasc t1asp 4taspe ta3spr 2t3assi 3tast tas4to t2asy 2t1as2z t4at. ta2tab ta2tan 3t4atb t4ate tat1ei t5a2tel ta2tem 3taten ta2t1er 2t3atl 2tatom 2ta2tr 3tatsa 2tatta 2tatti 4tatue tat3zw tau2b1a 3taubh tau2bl tau2b3r 4taubs tauchs4 tauch3sp 4taud 2t1auf 3taufe. 4taufk 4t3aufl tau3f4li 4taufm 4taufn t3au4f1o 4taufp tau3fr 4taufw 3taug 4t3auge t1auk 3taume 4t1ausb 3tausc tau4scha tau4schm tau4schr tau4schw 2tausd t2aus2e 4tausee 4t1ausf 4t3ausg t1ausk 4t1ausl 2tausr 4t3auss 2tausü 2tausw 4t3ausz 4tauu 3tav 4tava 3tax 4t1axt 3taz tä1c t2äf 3täg 4tägä 4tägy 2täh 4täll 2t1ält 2täm tä4mi t1ämt t1ängs 3tänz 2t1äp 2täq tä2reng tä2ru 2t1ärz tä2s t2ät 3tätigk 4tätt 2täug 2täuß 2täx 2tb2 t3ba tbauer2 t3be tber2e t3bh tblocken4 tb4ra tb4ri t3bs tby4t 2t1c t3cha t3che tchen3 tch2i tch3l t3chr t2ch1u tch3w t2ck t3cl t3co tcor2 t3cr tc4up 2td2 tdar2m1 tdä1 tdes2t t3do t3ds tdun2 3te. te2a2 te3ab tea3c te3ag 2teak te3al 3team 3te3an te3ar 3teba t4ebb 2t1e2ben t2ech 2techd 2techk 2techm 3techn 2techt te2chu 2teck te3cker te2cki 2t1ecu te2dit 3tee tee3id te1em teen1 te2er. te1erw te2es 3tefa 2teff 2t1egg 2teh 3teha te2hac 3tehä 3tehi te2him 3tehö t1ehr te3hu 3tei. 3teic tei3fl 2teign teik4 3t2eil tei4lent tei3m2 2tein teinen4 tei4nens t3einkü 2t1eis. t1eisb te3isch. t1eiw tei3z4 te2kel tekt4 3tel. 3te2la tel3ab tel1ac te3lan te4lant tel1au te2lä telb4 3telbr 3tel3d4 tel1ec tel3ehr 2telem tel3eng te2ler tele3s te2leu 4t3elf. 3telg 3telh tel1in t1e2lit 3telk tel3le tel4lein tel3li 4tellu 3teln te2lob te3lom te2lost te2l1ö 3telp 3tels tel3s2k 3telt4 tel3ta 3telw t2ema te2man te2m1ap tem3art te2mau 2tem2bo te2m1ei te2m1er te2mi tem3i2m tem3ing te3misc 4temm 3temod te2m1o2r te4mp 5temper 4tempf tem3s te2mu te4mun 3ten t4en. ten1a te4na2d tena2g te4n3an ten3ar te4nas te4nat ten3au te2n3ä ten3da 4t3endal tend2an 4tendap 4t5endf t4endi 4t1endl t4endo 4t5endp t4en3d4r te2n1e2b te2nef te2neh ten3ei te3n4ei. tenei2d tene4m tenen1 te4n3end te4nene te4neng te4nens 4t3energ te2n3ern 4tenerp 4t1eng. teng2a 2ten2gag te2ni te4nil ten1im te4nin tenk4 ten3n2 4tenog te2nol te2nos te3nö 6t3ensem tens2p tens3th t1entb 4tentd 4t3entl 4t3entn t1ents 4t5entw 4tentz t2enz ten2z3er teo4f 2tep. t1epi te2pil 3tepr tept2 3t4er. t4era tera2b ter3a2c te2rad te1ral te2r3alg te3ran. te3ranb te3rane te2r3ap tera4s 2t1erbs 2t1erbt 3terc 2t3erde. ter3d2s 3tere. te2r1e2b te2rec 2t3ereig ter3ein te5rek te2rel ter3ell 3tere2m te2rema te2r3end te2rene te2reng te2r3ent teren3th 2tereo 3terer terer3k terer4ku terer3l te2r3erp te2rers te2rerw 3t4erfr terg2 ter3ga t4ergem t4erges t4ergew ter4gieb ter3gl 4tergrei ter2gri t4ergru te4rh t4erhall t2erhan t4erhau t2erhäu t2erhei 5t2erhi 5t2erho t2erhu te3ria te2rid ter3iko 2teril teri4o te2rit ter3i4ta 3terkla t4erlä ter3lei t4erli ter2lös ter2mer t2ern. ter2nar 2t4ernc t4ero te1rob ter2obe t1e2r1ö ter3r2 t4erra ter4re. t4erro t4ers. t2erse t4erst. 5t4erstad t4erstä t6ersted ter5sterb t4er3sti ter3sto ter3str t4erstu t4erstü ter4sw tert2 ter3ta ter4trä t4eru4 te4r1uf te3rung t4erü t4erv 2t3erwäh ter3z2a 2t1erzb 3t4erzei ter3zw 3tes t2es. tesa4k tes2c tes2ka te2s3pr 2t1essa tes3tan tes3tät tes4tel tester2 tes4terg tes4t3erh tes4terk 2testn t3est3ri te2su 3tet2 t1eta te2tabl 4te2tap 2te2tat teten3 4t1e2th te3tho te2tik 4tetl tet3ti teuer5b teuer3r 3t4euf teu4fa 3teum 3te1u2n 4teunu 2t3eup 3teur. teu2rob te2va te2vi tewa2s 3tewo 2texam 2t1e2xe te3xel 2t1e2xi 2texp tex4ta 2t1exz tè2 tê4te 2tf2 t3fj tf4la tf4lö tf4rö tf4rü 2tg2 tga2s3er tga2su tge4nen3 tger2a tger2i tg4ra 2th. 2t1h2a 3tha. 3t2hag 4thak 3thal. 3thalh t4hali t2hals 4tham t2han. t3hand 4t3hap 4t3hau 2t1hä 3thäi 4thäl 2thb th2e 3t4hea 2t1heb 4t1hef 2t1hei the1in 4theit t2hek 2thel 3thema 2themd t1hemi 2themm t1henn 3theo t1herd 3therm thero1 2t1herr 2t1herz 4t1hess t2heu 2thf th2i 3thi. thic3k4 thi3er. 2t1hil 2t1him 2t1hin thi3nu 2t1hir 2thk 2th3l 2th3m thmu2 2th3n2 2t1hob t1hoc tho3chr t1hof 2t1hoh t2hol. t2holo t1hols t1holt 2tholz t2hom t2hon 4thops tho3ra tho1s 2t1hose t1hot 4thote 2thou t1hov 2thö 2thp th2r2 th4ro 2ths 2tht2 t1hu 2thub 4t3hun 2t1hü 2thv ti3ac ti1ag 4t3iago ti3alo ti1a4m ti2ä 3tib 3ticc ti1ce 3ticket t2id. ti3de. 2tidee ti2d3en2d ti3dy 3tief. 3tiefe. 2tiefel 3tiefen 3tiefl tie2fr 2tieg4 2tieh ti2e1i ti1el tiel3a tie4n1 ti3ene tien3s 3tier tie2rei tie2reu tie3s4t 2tieß ti1eu 3tif. ti3fe ti3f4r tifter4k 3tig ti2gerz ti2git tih2 3tij ti2kam ti2kar tiken2 ti2kent ti3k4ere ti3kerl ti2kin ti4klu ti2kn ti2kop tik1r ti2kra ti2krä ti2krei ti4kro ti2lar til3d ti2lei ti2lel 3tilg 2tillu ti2lö tilt4 ti2ma2g tim2man t3immat timmer2 tim4merg 3timo 2timp tim2s 3tin. t4ina ti3naf ti3nak ti2n3an t1ind ti3n2e tine1i ti5nen 2t1inf 3ting. tin2ga tin3gen tin2gi ting3l ting3s tings4p 2t1inh 3tinis t1init t1inka tin2k1l tin2kn t1inku t2inn ti2nor t1ins 3tins. t2insä 4t3inse tin2spa tin2sum t1int 3tinte. 2t3inter ti3nu tin2um 4t1inv 3tio tioxi3 3tip 2tipe ti3p4l ti2que. 3tirad ti1r2h ti4ron 3t2isc ti4schei ti2schr tisch3w ti2sei tis2el ti3sk 2t1isl t1iso ti2sp t1isr tiss4 ti3s2th tis3ti ti1s4tr ti2s1u t1it2a ti2tal 3tite ti3th 3t2iti 2ti3tu 3tiu tium4s tiu4s 3tiv ti2van ti2vel tiver2 ti2verh ti2verk ti2verl ti2v1o ti4v3r ti2za ti2zir 2tj 2tk2 tklat3 tk4ne t3kr 2t1l2 tlan2g t2lef tlei2bl tlei4der tl4er tle2ra t3li tlings5 tli3sc tlit1 t3lo tlung4 2tm2 tmal2 tm4am tma2st tmen4schl tmen4t5 tmen6tr t3mo tmo4des t3mö 2t1n2 t3na tn4an t3ne tnes2 t3ni 3to. to3ar to3at t2oba 2to4bj tob2l t1obs 3tobt to1c t3ochs 3tocht to2cka to4ckent 3tod tod1er2 to4dun toe2 tof4fa tof4f3ent tof2f3er 2toffi toff3s 3tog 2t3ohr 3toi 4toi. toi4r 4toiz 3toj 3tok tok4l 3to3le tomar2b to4mene 3tomi 4tomn to4m1u to5mus to2nan ton3au tond2 to2n2eh toner4ke to4nid to2nob 2tony 3too 3top. to4pad to4pak to3pas to2pat top1hi to2ple 3topo 2to4pt 3tor t4or. tora2g to4rän 4torc t1ord t2ordi 4t3ordn t4ore to2rel to2rem to4renna tor2fan t1or3g 4torga t3orient torin2s tor3int to2rö t4o4rs 4t1ort. tor3t2a 4t1orth 4tortn 4tort2s to4ru to5rus to3rü to4rüb to3sc to3s2e to3s2h to4ska to3s2p 4toss 3to1st 4t1osz to4ßi to3ßu to2tä 3tote to5tem to2tho 3totr tot3s2 3t2ou touil2 to3un 3tow 3to1x 3toz 3töch 4töck 2t1ö2d 2töf tö4fe 2t1ö2k 2töl. 3tön t2ör törs4 t1öst 3töt 2tp2 t3pf tpf4l tpi2n t3pl tp4lu tp4rä t3ps 2tq t2r2 2tr. 3tra. t4rab 3trac tra3cha tra3chl 2t3rad. 2trade tra2dem 4t3radie tra4fah tra4far t4rag 3trahi 4trahl 2trahm 3t4rai 3trak 4t3rake t4rakt 3tr4al tral3l tra5me 3t4ran. 4trand 4trang t3rann 5t4rans tra3po tra2st 4traß 2traub. t4raue t4rauf 2traup 3träc 2träd 3t4räg 3träne 4träng 2träuc 4tre. 2trea t3reak 2treb tre2b3r 2trec t3rech t4reck 5treck. tre3cke 2t3red 3tref 4trefe 5treff 4trefl 4trefo 4treg t3reh t4rei. 3t4reib 4treic 4treif 2t3reig 2t3reih 2t3reim 4t3rein 2t3reis tre5isch. 4treit t3reiz 2trek 4t3rel t4rem t4ren. 3trend 4trendi 3trennu t3rent t3repa 2trepe 2t3repo 3trepp t3repr t4rer 5t4res. t3rese tre2ta t4rete tret3r tre2tri 2t3rett t4reu 3treuh 4t3rev t4rex 4trez 3tré 2t3rh 3tri t4rib 4tric t4rick t4rid2 5trieb trie3fr tri2en tri4ena tri3ent tri2er tri4ers trie1s 4trig. 5trigg tri3gl t4rik tri2ke. tri2kes 5triko 4t3rind 4tring tri3ni 4t3rinn 4tript tr4is tri2x trizi1 3tro. tro3b4 2trock. 3troe 3trog tro2kes trol2la tr4om tro4men 4tromk 4troms 3tron tro3na t4rop tro3pe 3tropf tro3sm 3trost t1rot. 2trout 3t4roy 4t3röc 2tröh 4tröm 3tröp 3trös 4t3röss 3tröt 3trua 3trub 2t3ruc 4truf t4rug 4truk trum4 t3rumä trums5 t3rund 3trunk 3t4rup t3russ 2trut1 tru2th 4truw trü3be trü3bu 2t3rüc trücker4 t4rüg 3trümm 3try1 2ts ts3a2b t4sachs t2s1a2d ts1ahn t3s2akk t2sall t2salt t4samp t4s1amt t2san ts3ane tsa2p tsa2r ts3are ts3ari t2s1a2s tsas3t t3satz t2sau tsau1c ts2av t2säh ts1än ts1äus t4schart t4schef tsch2li t4schro t3schü ts4cor t2s1e2b tse2e t2sef tse2he. t2s1eic t3seil t3seme ts1eng t3s2ens t2s1ent t2s1ep t2s1er tser2u t4s3essen tse2t ts1eta t2s1eti t2s1ev t2sex t3sexi t2s1i2d t2s3i2k t2sim tsing4 t2sini ts1ir t3s2kal ts2kele tski2 t4sko tso2 ts1off t2s1op ts1orc t2s1ori ts3ort. t3soz t2sö t2spac t2spal ts2pare t2spat t2spä t3sped t3spei t3spek t2sph t3spi t4s3pic t4spins ts3ple t2spo t3s2pon t3s2por t2sprei t2spro t4sps ts2pul ts3s2 tsser2 tss4t t1st2 t2stabe t2staf t4stag ts3tak t2stale t4s3tanz t4stas t2stat. t2s3täti t2stea t3stein t4stele ts2terb t3s2tern t3s2tero t4sth ts5the t3stif t3stim t4stit t2stoch t4stoi t4ston tst4r t3strec t4stren ts3treu t3stric t4strie t4strun ts2t4u t5stub ts4tüm t4sty ts1u t2su. 5tsubi t2sumg t2sums t2sumv t2sumz t2s3un tswa2s t3sy t4sza 2tt tt1ab tt2ac tt3achs tt1ad tt2ag tta4g3ess t4t1ah tta4ke tt2al t4tan4a ttank3l t2tanm tt2ant t2t1ap t4tapp tt1art tt3atr tt1äh tt1ebe tt1eif tt1ein t2t1eis tte4l1a2 tte2l3e2b tte2len tt2eli tte2lin ttel1o ttels2t ttel3ste t2temu tte4na tten4sem t4tentb tten3te t4tentf t4tents tten3z t2teo tte4r3ar tt4ere tt3erfo tteri2e tte4rik tte2ro tt2erö tt4es1 tte4s3a2 tte4s3ä2 tte2so ttest4r tt2häu tthä3us tt1hi t2t1ho t2ti4d t4t3igi t2tins tt2int t2tiso t3tit t4t3la t4tli tt5nan t4torg tt3rü ttschi4 tts1eh tt2sen tt2spe tt2spr tt2s3tät tt2sum tt3sz tt3t2 tt5tri tt1u4f t3tü1 t4tüb tt3z2 ttz4w 3tua tu4ale tu1alm tu1alv tu3ant 2tub2 tuba3b 3tuc tu2chi tu1cho 2tud tudie4n3 3tue tu2ere 2tuf tuf2e tu5fen t3u4fer 3tuff tu2gan 2tuh tuh4ler tu1ist tu2kr tul2i 3tum. tum2b5l 3tume 4t3umf 2t3umg 2t1umh 2t3umk 2tuml 3t2umo 2t3umr 2t3umsat 2t1umsc tum2si tum2so tum4s5tr 2t3umt 2t1umw 2t3umz 3tun. 2t1una 2t1und tund2e tun2en 2t3unf 3tung. t3unga tung4s5 tun2i 2tunif 2tu2nio 2tuniv 2tunm 3tunn t1u2no 2t3unr t3uns 3tuns. 4t3unt 2tunv 2t1up. t1upg tu2r1a2g tu2r1an turan4l tu2ras tu2rau tu2rä tur1c tu2r1e2b tu2rei tur3eis tu2rene tu2r1er tu4res tu2re4t tu2r3e2v turf4 tur3g2 tu2rid tur1in tur4mun 3turn tu2r3o tur3s tur5sa tu2ru 3tus tu2sa tu2schl tu2s1e tu2so tut2a tuto3 2tü tü3ber. 3tüch tück2s 3tüf 3tüm 3tür. tür1c 3türe 3türg 3tür3s 3türw 4türz 3tütc 3tüte 4tütz 2tv2 t3vo t4vo. tvoran2 2tw t3wa2 twegs2 t2wist tw4ri 2t1ya 3typ ty2p1a ty4ps ty1s2 2tz t2za2 tz1ag tz1ap tz3ar tz1au t2z1ä t3zäh t2z1e2c t2z1e2d tz1ehr t2z1eie t2z1eig t4z1eis tzei4tend tze2m tz1emi tze4n1 tz2ene tzen3s4t tzen3ta t2zentg t2zentl t2zents tze2reb tzer4gre t2z1er2m tz1erw tz2er3z tz3erzi tze2s3 tz1e2t t2z1i2d tzi4m tz1imi tz1int tz1inv t2z3om t2zop tz2th tz4tin tzu2gu tz1unf t2zuni tzwan2d3 tz3wä tz3wi t3zwie tz3wu 2ua u3a2b u3a2c ua2dan uad4r u1a2g u1ah ua4ka u1al. u1a2l1a u1a2l1ä u1alb u1ald u3aleb u3a2lent u3aler2 ual3erk u3a2let u1alf u1alg u1alh u3a2lid u1aln ua2l1o2 u1alp u1alr u1als u1alt4 ual5tr ua2lu u1alw u1al3z4 u1am u1an. ua3n2a4 u1ans uant2 u3ar. uara2b u1ars uar2t3an ua3sa uasi1 ua2th uat2i uati4ons. uat2o u3au u1ay u1äm u1än uä2s u1äu 2ub u2barb ubb4l ube2be ube2e u2b1ehe u2b3eins u2b1e2m ube4n1a uben3o ub2er u2b3erde ubert4 u3b4es ub1eul ub4is u3b4it ub2l ub3läu ub3lic ub3lu ub4lut u2bob u2b1ok u2bop u2boz ub5rah u2b3rit ub4ro ub4rü ub2san ubsau4 ub4s3che ub2s1o ub2s3p ubst4 ub3t2h 2uc uc1c u4ch. uch1a u1cha. u2chan uch1ä u1che uch1ec u2ched uch1ei ucher3f u3ches u1chi uch3im uch1in uch3l uch3m uch3n uch1op u2ch3r uch2sel uch2so uch2sp uch4stem uch2tak uch3tan uch4t3erf uch4t3ert u1chu uch3ü uch3w u1ci uck3elf u2ckem u2ckent u2ck3i uck2sti u1cl uc4re 2ud u3d2a uda3d ud4at ud2e ude1e ude3i2 udein5 ude2n1 uden3e uden3s2 udert4 udi3en udiener4 udio3 uditi4 u3d2ob u2don udo1s ud3ra u3dru 2u1e ueb4l ue1ch ue2ck u2ed ueen4 u2eg u2eh ue2ke u2ela ue2lek ueli4 uel2lau uel4lent ue2mi uen1 u3en. ue4n3a2 ue2nä u3enb u3end uene2 ue2neb ue2ner uen2gag uenge2 uenge4m uengene3 uen2gl ue2ni uenk4 ue2no uen2zu u2ep ue2r3a2 ue2r1ä uerb2 uer4baut u3erbu uer3d2 uere2 ue2rec uer4ei. u3ereinn uerei3s2 uer3ela u3eremp u3e2r3ent ue3r2erb u3ererf ue2rer2g uerer2h uerer2k uerer4m ue2rers uerer4sa uer3esk ue2re4t u3erex uerg2 uer3ga uer2geb ue2ri2d ue2r1i4m uerin3s u3erin2t u3erl. u3ern uer4nan uer2nar uer2ne uern3s2t ue2r3o4 uer2ö uerrü2 uers4p uerst4 uer3stei u3ersti uer3t2 u3eruh u3erum u3erunf u3erunt u3erur uer2wec uer3z2 ue2ta ue2tek ue2tik uety2 u2ev ue2x1 u2f u3fa uf1ab ufa2ck ufall2 ufa2n uf3ane uf3a2r uf1aß ufa2t uf1au u3fä u4f1än uf1är uf1äs u4f1ä2ß u3fe u4f1ei ufel4s3a u4f1em 4ufen u4fent uf2ere u4ferf u4f1erh ufer4lau u4ferle u4ferne u4f1et u4fex 2uff uf3f2e uff4l uf2fro u3fi u4f1id u4fim u4f1ins uf3l u4fläs uf4lü uf5lüd uf5lüm u3fo u4fob u4fof u4fop ufo2r uf1ori u3fö uf3r u4fru uf3sä uf2spo uf2stab 2uft ufta2b uft1eb uft3erd uft3er2g uf5tri uft3s4 u3fu u4fum u3fü 2ug ug2abe u2gabte ug1a2d ug1ak u2gana u2ganb u2gani u2g1ans u2gant ug1ap u2g1ar uga4s ug1au ug3d2 u3ge. u2g1ec ug4eg ug1e2i u2geig ug2eil u2g3ein uge2lob ug1emi ugene2 ugen3s2 u2g1erf u2g1erk u2g1erl u2gerr u2gerv uges4 u3ges. u2g1esk ug2et ugge4st ug2gl ug4gt ug3hu u2g1i2d u2gim ug1in u2gins u2g1l u4glä u4gleitb u4gleitu u4glic u4glis ug3liz u4g3lo u4glu u2g3n ugo3 u2go4b ug3oc u3gon ugo4p u2g1o4r u2gö u2g3ram u2g3rä u2greg u2g3reis u2g3res u2g3rie ug3ro u2grou ug3rüs ug4spe ugs4por ug4spr ug4spu ugst2 ug3sta ug3stä ug3str ug3stu ug4stur ug3s4tü u2gum ugu3te u2gü u1h 2u3h2e uhe3a2 uhe1e2 uhe1s 2uhi 2uhl uh1la uh2lar uh1lä uh2l1ei uh2l3ent uhl3erb uh2li uhl2ö 2uhm uhme2 uh1or uhr1a uhrei2s uh2r3er3 2uh3ri uh4r1in uh4r3o uh2ru uh4rü uhs4t uh3t2 u2hu 2uhü uh3w 2ui ui2a ui1ch ui2che ui4cker u2idi ui2du u1ie ui1em u3ig u4ige uil2les u1im u3in. u3isch. u3ischs uis2e uisi4n uis3t uit3s uji3 uk2a uk1äh u3käu uk2e uke2n1 uk2l ukle1 uk4na uk4ne uk4nu u2k1ob uko4m1 ukom3a uk2ö uk4re uk2ta uk2t1el uk4tent uk2t1er uk2tin uk4t3o2ri uk4t3r uk2tum uk4tü uku2s uk2ü u1l ul1am ulan2e ul2ar ula2s ul1äm ulb4l ul4dan ul2dar ul2dr ul3dra uld2se 2ule u2l1el ul1emb ule4n1 ul1er2h ul1er2r ule2t ul1eta 2ul3f 2uli ul1id uli2k ulin1a ul1ins uli3p ul3ka ul2kn ull1au ul3len ul3l2i ul2lo ull3s2 ulm2e ulni2 ulo2i u2lop u2l1or ul2ö ulp1h ul2pha ul2sa ul4sam ul2s1ec ul2sei ul2ser uls2th ul2sum 4ult2a ul3tan ult3ar ul2tau ulter2m ul4tri ult3s u2lü ul2vr ul3z2e ulz4w 2uma. u2maa3 u2mab u2m1ad u2m1a4k u2m1all um1ang u2m1ant um1anz u2m1ap um1ar u2marc u2marm u2mart u2matl u2matm um1aus u2maut um4ay u2m1äh 1umd2 u2m1e2b u2m1e2ck u2m1ef u2m1ein ume2n1e um3engel u3mer. umer2a u2m1erf um1erg u3merk u2m1erl um1erw umes2t 1umf 4umfi 1umg um1ind um1inh um1ir umi2t um1ite 1umk 1uml 2umme um2mei um3mi um3n um1ob u3mol um3ot ump2fa ump2fin um5pit 1umr um4sam um4s3an 1umsat um4sd um2s1er 1umset um4sf um4sg um2sim um4sj um4sk um4sm um2s3pe 2umspf um4ss um2su um4sv um4sw um3t2 um4ts u2mum u2m1u2r 1umz un1 2un. 2una. 1unab un2a3br un2ag un2al u3n2am u2n3an u2nap u2narb 2un2a1s4 un3at un2är 4und. un2da unda2b un2dän 1undd 2unde un3de. underer4 und3erf und3erö underten4 under6tend und3erz un2dex 1undf 2undg un2did un2dim 1undn undo2b un2dop 4un2d3r und3s 4unds. 2undsc unds2p un2d1um undü4 1undv 1un4dz une2b une2d un2ei. un3eid un3ein un3eis un2emi une4n1 un2ens unen2t un2enz u3ner. un3erz. un2es4 unf2 un3fa un2gab un2gam ungar4 un2gat 1ungeh 3ungena unger2e 1unget 1ungew ung5ha 1ungl ung3lat un2glu un2go un2gr ung3ri un4gs3 ung4sa ungs5tr u3nic un2id un3ide 4unie 3u2nif uni3k4 un2im 1unio un2ir un3iro un3isl u3n2it 1u2niv 2unk un2k1a 4unke un3ker un2k1es un2ket un2kne un2ko4p un2kro unk3s2 unk4tit unk2tr unlö2 1unm unna2 un4n1ad unn2e2 unne4n u2nob uno4r un2os 1unr uns2 2uns. unsch3el un3se 1un3si un3sk un4ski un3s4p un4sr unsta2g unste2c uns4t1r 4unsy 4unsz 1unt un3ta un3te unte2ri 3unterr 4unti un3tr unt3s 2untu 3unty 2u2nu u3nuc unu4s u1nü 1unv unvol2 unvoll3 1unw 4unwä 3unwe u2ny 2unz un3z2a unz2e 2uo u1o2b u3of u1op u1or u3or. uo2r3a uor3c u3oret uo2ris u3ors uor5tr uos2 u1os. uote2 u1ox u1ö2d u1ök u2p u3pa u3pä 3upd u3pe2 uper1 uperer4 u3pé up2fa upfe2 u3p4fl u3p2fu u3ph u3pi up4id u3pl up4lu u3po 2upp up2pl u3pr upra3 up4t3a2 upten1 up4tene upt3erf upt3erg upt3erk upt3ers upti2m upt3in up4t1o up4tr u3pu u3py up4yb 2ur. u1ra u2rab u3raba ura2be u2r1aka u2r1akt u2ral2t u2r1am ura4na u3r2and uran4fän ur1ang uran2ge ur2anh ur2anr uran3s ur2anti ur1anz ur3ap u2r3ar ura4ri u3rasc ur1asp ura2str ur4ate u2r3att ur1au 2u1rä ur1äl ur1ä4m ur1än ur3b2a 2urc urch1 urch3s urcht3e urd2 ur3da ur3di ure1e ur1eff ur1ehr ur1eig u2rele ure2n ure4na u2ren2se u2rentn u2r1ep urer3h urer3k ur2ert u2rerw ur1eta ure3u 2urf urf3l ur2fli ur2fro urf2spr urf3t ur2gei ur4gense urg3inn urg1l ur2gla ur2gri urgros2 urg1s4 uri2c ur1ide uri3en u2r1ind urin2se urin4sek u2ri2so ur3ku ur3l ur4ls ur2m1ar ur2matt ur2m1au urm2ei ur2mern urme2t ur2mum ur2mun ur3n2e urn2o 2u1ro urob2l ur1off uroh2 uro1s4 2u1rö ur3p 2urr ur3re ur2rh 3ursac ur2san ur4s3au4 ur2s3er urs3int ur2spa urt2 2urta ur2tai urt3ein ur2tro urts2c 2urtu uruf4 uru3fl ur1umh ur1ums urü2 ur2z1a2 ur2zä ur2z1ec ur2zep ur2z1op urzt4 ur2z3w 2us us3a2b usa2gi usal3t u4s1amb u4samt u2sang us4ann usa2s3 us1ast u2säh u2s1äs u2schab u2schak u2schar u3schart u2schef usch3eic u4schen4e u3schi usch3mü usch3wer u3se. u3s2e3b u2s1ec use1e use2ei u2s1ei u3seid u2sen2se usen4te. u2sentl use2rec u2s1erl u2serp us1erw u2s1ese u2sex u3si. u2sid usi3er. usi3ers. u3sik usi2kat us1inn u4ske us3kl u4sko u4skö u4sku us3oc us1oh u3sol u2sop us1orc us1ou u3sov u2spac us2par us3part u2spas us3pe u3s4pec u3spek u2sph us3pic u3spit u3s4piz u2spo us2por u2spu usrich5 us2s1ad us2s1eb usse4g usse4n us2sep uss3erf us2sesp us2sez us2sof us2sum us4sw us5taa u1stad u1stal us3tau us4tein u1stel ust3erl us3tin us3tr us4tras u2suf u2s1umb u2sumd u2sumg u2sumz 3usus u2sü 2uß u2ß1u 2ut u3taf u2t1alt u4t1a4m ut2ans u2t1ap ut1ar uta4s u2taut ut1äh u2t1är ut3c ut1e2d u3teh ut1ei. ut1eie ut1ein u3tek ut1ela u3tem ute2n1 uten2a u2tent u4tentf ute2ra4 ute3ras ute4ring uter3k ute2ros ut2es ut2et ut2ev u2t1ex utfi2 ut3hal ut3hei ut1hel u2t1hi u2t1ho u2thu u2t1id u4tigel uti2vi utli4n uto3c uto3p u2tops utor2a u4tord uto2re uto2rin uto3s4 4utou u2töl ut3rea u2trou ut3rü utsau2 ut2säu ut2scha ut3sche ut2schl ut2schm ut2scho ut2schö ut3ser u4t3sk uts2p ut3sta utt4er ut3t2l utts2 utu4b u2tum utu2n u2t1une utu4re utu3ro utu3ru u3tü utz3a ut2zeh utz3eng utz2er utz4erg ut2zet ut2z1in ut2zis ut2zö ut2z3w 2u1u2 uu4fe uum1 uu4ma4 uume2 u1ü uü4be uv2 u2ve. uve3rä uv4re 2u1x ux2e ux2o ux3oe ux3t2 u1ya 2uz uze2 u2z1ec u2z1ene uz2er uzo4f uz3ot uz3we uz3z2 uz4zb 1ü2b üb1ä 2übc 2übd üb2e2 übe3c übe3le ü3bem ü3ben übe4na übe3ne über1 ü3bes ü3bi üb3l üb3r üb5rig üb2s3t 2üc ü1che üch3l üch2s1c ücht4e ü3cke4n1 ück1er ück3eri ücker4ke ücker2l ü2ckers ü2ckin ü2ckum üd3a2 üda4m üda4s üde2c üde2l ü3den. üden2g ü3d2ens üdf6lan üd1o2 üdo4s4 ü2d3r üd3s2 üdsa1c üdsau2 üd3t2 üdu2 üe2 üeb3 ü1ei 2üf ü2f1a ü2f1ä ü2f1ei ü2fent üfer2 ü2f1erg üf2fl ü2f1i ü2f3l ü2fo ü2fum üg2e üge2l1a2 üge2lä üge4lec üge4lei4s üge2lo ügen3s ü2g3l ü2gn üg3s2 üg4s3t üh3a2 ü1he ü2h1ei ü2h3e2m ü3hem. ü2h1eng ü2h1ent ü2h1erf ü2h1er2k ü2h1er2z ü2hex üh1i2 ühi4r ühla2 ühl1au üh1lä üh2lel ühlen1 üh2lene ühl2er üh2lö ühl2se ühl4sk ühl2sta ühl2sti üh3mo üh3ne ühn2s üh1o üho4f üh3r2e ühr3ei. ühre2n1 ühren3s4 üh1ro ühr3ta üh1s ühs4p üh3t üht2a üht4r ü1hu üh3w ük2 ül1a ül2c ü3l2e ü4l3ef ül3eim üle2r3a2 ül2l1a2 ül2l1ei üll2erg üller2z ül2lid ül2lo ül2lö ülls2 ü2lö ü1lu ü2m ü3me ü4ment ü4m1e2p üme2ra ü3mi ü4m1id ü4m1in üm1u 2ün ü2n3a2 ün2da ün3di ün2dr ünd3s ü2n1erd ünf1 ünf3li ün2g3l ün2s ün3sc ün4sd ün3se ün3sp ün3sta ünste2r3 ün3str ün2za ün2z1i ünzu2 ün2zun ün2zw ü2p ü3pe üpf3l ü3pi ü3pl üp2pl ü3pu 2ür ür1a ü2r1ei ü2r1e2l ür2f1er2 ür2fl ür2fr ür2g3eng ürge2ra ürk2e ü3r2o3 üro5fe ürom2 üro5ma üror2 ürr2 ür2r3h ür2s ür3sc ür3se ür3si ür3sp ür3sta ürte2l3 ürt2h ürz2a ür2z1in ür2zö ür2z3w üs2a ü3schi ü2schl ü3s2e üse1e2 üse3l2 üse4n üse3r4 üse1s üs2p üs4s3a üs4sä üs2s1c üs4s3o üs2st üst3a üste2n üs4tl 2üß ü3ße ü3ßi 2üt ü2t1al üte3m üte4n üten3s2 ütent4 üten3z2 üte2ra üte2re üter3ei üterich4 üter3n ü2t1h ü2t3r üt2se üt2st ütte4n üt2tr üt3zen üt2zw 1v 3va. 2v1ab vab4r va1c va3f va3g2a va2la 2valu v2an. 2vanb v2ans 2varb v1arm vas2 2v1ass va1st va2t1a4 va4tag va4tan va2tei va4t3eng va4tess va2t3h va4tid vati3k2 va4tim va4t1in vati4ons. va4tord va4t3r vat3s2 va2t1u 2v1au 2vb 2v1c 2vd2 ve2 ve3ak 2ve3al ve3an ve3ar veau3 ve3b veb4r ve3d ve3e2 ve3f ve4ff ve3g ve3h2 2veig v2eil 2vein veit2 veits3 ve3la 2velan vel2ar ve4l1au v1ele ve3lei ve3l2i ve3lo vel2o3p ve3ma ve3me 2v1emp 2vemu ve3nal ve4nas v1endu ve3ne venen2d 2venerg ve3ni ve4nin ve3nö ven6t3ag vent4sk ven2za 2veo ve3of ve3pa ve4pi ver1 ver3a ve3rad 2veral ve3rand ve3rane vera4s ver4bart ver3b2l ver3d4 vere2 vere4i verein4s5t ve4rf4 ver3g4 ve3ri ve4rin ver3k vern2 ver2sep ver3sta vert4 ver3te ver3u4 ve3rus ve3sa 2ve3sc 2ve3se ves3p ves3ti ve3t vete1 vete3r ve4tl ve4ts ve4tt 2veü ve3v ve3w ve3z 2vf2 vf4gh 2vg 2v1h vi1an vi3ar vi4a3t vi2c vi3de vid3s2t 3vie vie2h1a vi2el viela2 viele2 vi2er vie2rec vie2w1 vig2 2vii v2il vi2l1a vi2lä vi4l1e2h vi2lei viler2 vi2lers vi2l1in vi2ma2 vi4na vin3d ving3 vings4 v1ins vi3sa vise4 vi3s2i vi3s2o vi2sp vis2u viv2 viz2 vize1 2vk 2v1l2 v3le v2lie 2vm vm2e vmwa4 2v1n2 2v1ob vo2be vob4l voge2l3 vo2gu vo2i vol2a vol4l1a vollen4 vol4lend vol4ler4t vol2li 2v1op vo2pe vo2r1 vo4r3a voran6schl vor3g vo3ri vo4rie vo5rig vorm2 vormen2 vor3o vor3t4 vo4ru vo5ruf vot2a vö2c 2vp2 v3pf 2vq vr2 v1ra v2ree v4ret 3v2ri 2vs vs2c vs2e vs2p v1sta v1steu v1str v3s2z 2vt vue3 vu2enu vu2et 2vumf 2vumg 2vumk v1ü 2vv 2vw 2vz 1w w2a 3waa wab2bl wa3che wach4stub wach2t4r 3wack waffe2 waffel3 3wag wa3ge wa5ge4n wa2g3n wag5ne wa3go wag4r 3wah wahl3ent wah4ler wah2l1i wa4ig 3wal wala3c wa2lar 4walb wal4d3a wal2din wal2dr wa2les wa3li wa5lis wal2m1 wals2 wal4t1a wal4terl wal4to wal2tur wa3na wan2d1a2 wandels4 wan2dr w3anf wan3g2e wang4s3 3wann wan4z3en4d wan2z3er wa2p 3war2e ware1i wa3ren 3warn war4ni war2th wart2st war2za 3was wa3sa was2c wa2scha wa3sche wa4schei wa2sch3l wa2schw wa3se wa3sh was3s2 wass4e2 wa3su wäch3s2e 3wäh 3wäl wäm3 4wäng 3wäs wäs2c wäss4e 2w1äu 2wb2 wbu2 2w1c 2wd we2a we2b1a webe1i we2b3l we2bo we2b3r webs2c we3cke. we3cken. we3ckes wee2 weed3 wef2e we2fl 3weg we2g1a we4g1ei weg3ersc we4g3l we4gn we2g1o4 we4g3r weg5re weg3s wegs2a wegs4t 3weh weh2r3er2 wei2bl weib4r 4weie weifel4d wei2gr wei2ha wei3k4 3weil wei3le weinsau4 wei3sc weisch4 weis2sp wei2t1r wei5ze wel5le4 wel4schl wel4schr wel2t1 wel4t3a2 welte4 wel4t3en4d wel4th welt3i wel4to welt3r wel6tri wen3a2 wendes2 wen2gl we3n2i wen2kau wen2kla wen2k3ri we2r3a2 wer5be werbe3i wer2bl werb2s wer3d2 3werdens 3werdu werer2 wer2fl wer2ga wer2gel wer2g3o wer2gr werin2 we3rins we2ri4o 3werk. wer4k1a 3werke wer2ki wer2k3l wer2kn wer2k3o wer2k3re wer2ku we2rö wer2s wer3sc wer3sp wer2t1a wer2tä wer2tei wert3eig wer4t3erm wer2th wer2tin wer4t1o2 wer2tre wer6t3ri wer2tum 3wese we2s3p we4st wes4t1a weste2 west3ei wes4ten4d wes2tex wes2ti wes4t1o4 wes4t3r wes2tu 3wet 4wets wett3s 2w3ey 2wf 2wg whi2 whi4t w3ho w2i wicht4s wi1cka 3wid wi2e 4wieb 3wied wie3l wie3n2e wik2 3wild wim2ma wim4m3u win2a win2d3e2c win3del win4derz 3win2d3r 4wing win2g3r win2kl winner2 win4n5ersc win2no win3s wint2 3wi2r wi4re3 wi3s2e wi5sen wi2s2p 3wiss wiss4z wi3th 3witz. wit2zer 3witzl wiz2 w2j 2wk 2w1l 2wm 2wn wns2a wn3sh 3wo1c wo2cha woch2e4 woh2lei woh4na 3wolf wol3fe wolf2s3 wol2la wol2ler wor3a wor3d wo2r3i wort1a wor2tel wor4terh wor4t3r wort3s wo4r3u wor3ü 3wos wot2 3wöc wöl2fo wört2h 2wp w2r w3re w3ro 2w1s w3s2h w3s2k w4sk. ws2t w2s1u 2wt wti2 w2u 3wuc wuch2sc wuch2st w3uf wu4fe wul2 wul3se wund4e wung3r wungs4 wun2s wunsch3l 4wur. wur2fa wurf1o wur2fr wur2s 3wurst wus2 wus3te 3wu2t1 wu4te 3wüh wül2 wün3 3würf 3würst 2ww 2wz x1a 1xa. 2xa2b 1x2ac 1x2ad 1xae xa3fl 1x2a3g2 2xal xal2l x3am xa5met xa4mi x2an. 1xane 1xani x2an3t2 xanti3 x2anz xa2r 1x2as xa2z 2xb xb4ri xcal2 x1ce x1ch x1cl 2xd xda2 xda4t 1xe 3xe. 2x1e2g xe4ge 2xek xe2l x1ele xe3lei x1em 3x2em. 2xemp x2ems x2en 3xen. xen3s2 3x2er. x2ere 2x1erl xer2la x2ern x2ers. xe4rx 3xes 2x1eu 2x1ex 2xf 2xg 2x1h xi1c xich2 xi2dan xide2 xi2dei xi2d3em x1i2do 3x2i2e xie3l xi4en xi3g 3xi3k xik4l xi2ler xili3a xi2lo xi2l1u 1xim2 xin3s2 x2is xi2sa xi2s1e xiso2 xi2sp xis3s4 xis3t xis4tä xi2su 3xit xi3te x1i4tu xive4 2xk2 xkal2 2x2l2 x3lä x3le 2xm 2x1n 2xoe x3o2l x1o2r 3xos2 2x1ö2 2xp xpor4ter4 xpor2t3r x1r 2x1s2 x3sh x3sk x3st x3sz 2xt xt1a xta2b3 x3tan xt2ant x3tas x2t1ä x3tät xtblo4 xtblock3 x2t1e2d xt1ein x2t1el x4tent x2t1er2f x2t1ev xtfi2 x2t1h x2t1id xti2la xtil2lu x2t1o2 x4to4r xtra3b4 x2t3ran x2trau xt3rec xt3s2 x2t1um x2t1un 1xu xu1a xu2n 2xunt xu2s3 xusa2 xuss2 2x2v x3ve x3vo 2xw 1xy. 2yab 1ya2c y2ach y2ag ya1h y1al. ya4mo y1an. y2ana yan2g y1ank y2aq y1ar y2a3ra y2are yas2 yas3t y1ät ybe2r y1c y2chi y3chis ych3n ydi3e ydri2 ydrid3 yd4ro3 y1e y2ec ye2d y2ef y2el2 yen4n yera2 y2ere yer2n1 y2es y4es. y4esp ye2th yf2 ygie3 yg2l y1h y3ho yhr2 2y1i2 yi4sc yk2 yke3n yk4la yk4ni yk4no yk3s yk3t yl1a yla2c yl2ag y1l2ak yla4l y2la4m yla2n yl3ane y1lant yl2ante yl2anti yl2as y1lä yl3c yle2 y2le. yl1em y2l1es y2l1e4t yli4n yloid3 yloni1 yl2op yl1ora yl3s2 yl5tri y2m y3m2a ym4an ym4ar ym4as y3mä y3me ym4el y3mi y3mo ymp2 ym2pha ympi3e ymp4t y3mu ynä2r yn2eu ynk2 y2n1o2 yno4t yn2oz yn3t2 yob2 y2od yoga3 yom2 yon2a y2onn y1ont yo2pe yo1s y2ost y3ot. y1ou 2yp ypa2b3 ypa2n yp2e2 ype4r3o2 y2p1i2d y2p1in y2plo y3po3 yp3th ypu2 y2p1um y1r yr2e y3ri yri1e yri3en y3ro yros3t yrr2 2ys ys2an ysch4 ys2e1 ysein2 ys3l ysme3 ys2po ys3pr ys3t2e ys5tem yst2h ys2the y1sto ys4tol ysto4le ys3tr ys4tra y4stro y3s4ty ysu2 ys1ur y3s2z y4tes yt2h ythe1 ythi3e y3to1 ytos2 y2t3r y1u2r yur2e3 yvet4 yvon4 y1y yz2 yze3r2i 1z 2z1a2b zab3l za1c 2z1ach zach2s 2z1a2d 2z1af za3gr 3z2ah zah3len zah4ner2 z1ak 4z3akk 2z1al 4z3alb 4z3ald 3zali 2z1am za4me z1a2n z2an. 2za4n4a 2zanb za3ne 2zanf 2zangs 2zanh z2ank zan2ka 2zanl 2zanp 2zanr zanti1 2zanw za4pf z1a2q z1ar 3zar. 2zarb za3re 2zarm 3z2aro zar2t1r 2z1as zas4b za4sc zast4 z3at zat2e za2to 3zaub 2z1au4f 2z3aug 3zaun z3aur 2z1aut zä2 2z1äc z2äh zä3hi 3zähn 2z1äm z1än z1är 2z1äus 2zäuß 2zb2 zbah2 zber2e z3bo zb4ri z3bü zbü3b zbübe3 2z1c z3ca z3ch 2zd2 z3da zdan2 zdä1 zdi1st z3dü 3ze. 2zea ze2ana 2z1e2ben ze1c 2z1e2cho ze1e2 2z1eff z1e2ga zehe4 zehen1 zeh2l zeh4n1a zeh4n3en ze3ho zei3f4 zeik4 zeil2 zei3la zeile4 2z1ein ze3in. z2e1ind zei4ne 4z3einh ze3inse ze2i1s4 zei3sk 3zeit zei2t1a zeit3end zei2t3er zei4to zei2tr zeit3ri zek4l ze2l1a zela2d zel3am zel3a2n ze2l1ä zel3d4 4ze2lek 4zelem ze2len ze2l1er ze2l1in 2z1e2lit zel3la zel4lab zel4l3ac zel4lar zel4lein zel4ler4t zeller4z zell3s2 zelm4 ze2l1o zels2 zel3sa zel3sz zel2ti zelu4 zembe2 zem4e 2z1emp 3zen. ze4n1ac ze4nas zen3au ze2nä ze3n2em zenen1 3zenerk 2zenge. z4engl 2zengp 2zeni ze2nid zenk2 zen3n ze2n3o ze4not 2zen2sem zen2ser zens2p z2entn z1ents 2zentw 2zentz zen2z3er zen2zw zeo4r 3z2er. zer3a ze2rad ze1ral ze2rat z2ere ze5rek zer2em z2erfe z3erfül 2z1ergä z3ergeb 5z4erges z4ergl zer2gon 4z1ergu 3z2erhe 2z1er3hö zerin2t z2erko 3zerl. zer2lau zer2le. 2zerleb zer2len 2zerlö 3z2ern zer2nan zer2n3e2b zer4nei 2z1erö zer2öf ze1rös 2z1erq 3zerr 4z3erreg z2ers. z1ersa zerta2 zer4t3ag zert2an zer4teng zer2ter zer2tin zer2to z3ertrag zer4trau z1erwe z1erz zer2ze 3z2es. ze2sä ze3sch zes1e zes3p ze4s5po zes2sa zessen2 zes4s3end zes4sent zes2ser zes2sp zes2st zes2sum ze1sta ze3stau ze1str ze3stra z2et. 2zeta 2ze2th ze2tr 2zetts zeu2gem zeu2g3r 2z1eul ze1ur 2z1e2x1 2zf zf4at z3fe zfeue2 zf4la zf4le zf4re zf4rü 2zg2 zger2a zger4s3 z3gn zg4nu 2z1h2 zhau2t1 zhir3 zi3alo zi2ar zich2o zi2dei ziele2 zie2leb zie2l1i zi3en zien3s zi1erh zi1es zig4s 2z3ik zi2ko zil2e 4zimp zim4t3 2z1ind zin2e zin3ei 2z1inf z1inh zi4n1in 2z1inj zin4na zin4o zin2sa zin2ser zin4sk 2zinsuf 2zint zi2o3 zirk2 zirk4s z1iso zi2sp zisse4 zi3s2z zi3th zithe2 zi4t1o2 zit2u ziv2 2zj 2zk2 zk4ne z3ky 2z1l2 zlei3ti zle1s z3ly 2zm2 z3ma zme2e 2z1n2 z3na z3ne z3oas 2z1ob 2z1of zo2gl zog4s3 2z1oh zol2la zoller2 zol4lert zon3au zon3s4 zon2t3er zo2o 2zo2pe 2z1o2r zo3re 3z2orn zor4ne 2z1osz 2z1ou zo2w 2z1o2z 2zöf zö4fe 2z1ök z1öl 2zöl. 3z2öll 2zöls 2zp2 z3pf z3pl zp4lu 2zq 2z1r2 z3re zreb3 zrebs2 z3ru 2z1s2 z3sa zsau2 zse1e z3sh z3si z3sk zspor2 zst2 z4st. z3ste zs4to z3sz 2zt zta2n zt3ane z2t1au z4tehe ztein3 zt3eins zt2el zte3ma z4t1ent z4t1erz zte3str zt2et zt1he z3them z3t2her zt1hi zt3ho z3thr z3thy z3ti zt3rec zt3ric zt3s2 z3tü zu3a zu1ä zub4l 3zu1c zuch2e zucht3 zu3cke zudi4 zud4r zu2el zu3e2r1 zue2t zu3f2 zu5fei zuf4l zuf4r zug2em zu2gent zug3g zug2i zu3gl zu4gla zu4glö zu2go 2z1uhr zu3hu zu1i2 zu3k zu3l2 2z1um. zum2a 2z1umb zumen2 2zumf 2zumg 2z1umh zum2i 2zumk 2zuml 2zumr 2z1ums zum2u 2zunab zu3n2e 2z1unem zunf4 zung4 2zunget 2zungl z1uni 2zu2nio 2zuniv 2zunr 2z1uns 2zunt zuo2 zup2fi zu3pfr zu3r2a 2z1urk 2z1url 2z1urn 2z1urs 2z1urt zu3ru zu3s2 zusch4 zus4p zus4t zu3t2 zut4r zu5tri zut4u zu4t3z zuz4w 2züb zü4be 3züc zür1c 2zv z2w2 z3wac 2zwag 2zwah z4wang z3war 2zwa2s 2zwäc 2zwär 2zwäs z3wech z4weck 2z3wed 2zweg 2zweh z4weig 2zweil zweiter4 2z3wel 2z3wen 2z3wer z4werg 2z3wes z4wic zwi4e 3zwing 2zwirt z4wisc 2zwiss z4wit 2z3wo z3wör z3wur 2z3wü zy2le 2zz z3z2a zzab4 zz4at z3zer z3zi z4z1id zz1in zzi1s4 z3zo z4zor zz2ö z3zu zzug4s",
+ ["data"]=".ab3a .abb2 .ab5erk .ab5er4r .abi2 .ab3it .ab3l .ab5le .ab3ol .ab3or .ab3sa .ab5so .ab3u .achse4 .ach4sp .achts4 .ack4e .ade3n4 .ae2 .aer6schl .ago3 .ag4r .ag2u .ai2s .ak6t5en6de. .ak6t5en6den .ak6t5en6des .ak3tr .al4bl .alb3r .al4bra .alb6rec .ale3u4 .ali3 .al5l6en .alle4r5 .al4lin .all5s .al4mau .al5s4e .al4t5ak .al6t5ang .alt6an6l .al4tei .al4t5e4l .al6t5er6f .al6t5er6p .alter6s5 .al4t3h .al4ti .al4tor .al4t5ra .al4tri .al4tro .alt3s4 .al4t3u .al4u .alu3s .ampe4 .am5sta .amt4s3 .ana3c .an3ae .an5alg .ana3t .anden6ke .an3e .ang4a .an5g4li .ang4r .ang4s4 .angst5 .ani4s .anis5c .ank2 .anla6gentec .an3n4a .an3o2 .an4ora .an5sa .ansch4 .an4si. .an5s4p .an4tag .anti5s .anz2 .ap5p6le. .are3n .ar4m5ac .ar4mar .ar4mau .ar4mei .ar4mun .ar4sc .ar4tan .ar4t5ei .arter4 .ar6t5erh .ar6t5erk .ar4t3r .arz2 .arzt3 .as2b .asbe4 .asie4 .as4ko .as2p .as4ta. .as5tar .as4zen .ata3 .ate4m3 .at4h .aue4n3 .au2f3 .auf5s4 .auge4 .au2s3 .aussen6dung. .au4sti .auto6ren. .auto6rin .ax2 .är6schl .ät2h .ät2s .bahner6 .ba4ran .bau5chi .bau3f .be5erb .beige4 .bei6ge. .be3n4a .be3n4e .be3r4a .ber4e .ber4ga .berg5ab .berg5ar .berg5ast .ber6g5e6b .ber6gin .ber4gl .ber4g5o .ber4g5r .berg5s .ber4tr .be3s4a .bi2e .bi2o .bi4os .bi4t3a .bi4t3r .blau3 .blei5s4 .boge4 .bogen5 .bogens6 .bor4d5i .bo4s3k .bre4a .brecher6 .bre6cherk .brid4 .briefen6 .brie6f5end .bruch5s .brut5s .bu6cher .buchse6 .bue5be .bu4ser .buster6 .buß3 .bü3be .by2t .ce4ra .ch2 .ch4a .char6me. .char6mes .ch4i .chi5er .dab2 .da6ch5en .da3la .dan4c .da2r .dar5in .dar4m3 .dar3u .da4te. .da4tes .daue4 .de4al .de6ck5eri .dein4 .de5ins .de5int .de6m5ents .de3na .den4ka .den4kl .den4ko .den4kr .de3od .de5ran .de4rei .de5r4en .de5skr .des4pe .de4spo .des5se .de3st .des4ti .de3xa .di2a .di5ae4r .di3ä4r .di2e .die5ne .dien6st .dienst5a6d .dienst5r .di5s4ti .do4mo .dorf3 .dor6fer .do4tr .dru6ckerz .due3b .du6schr .dü3b .dy2s3 .ebe4r .echo3 .eck5erk .ede4l .ehe3i .ehe3n .ehre4 .eh4r5er .eichs4 .eich5ste .ei3e2 .eier3 .eigener6 .ei4lau .ein3a .ei4nat .eine4 .ei4n5eb .ei6n5en6g .eins4p .einzel6lig .eisen5 .ei4spe .eis3s4 .ei4s3t .ei6ste .ei4s3u .ei4tr .ek5lam .ek3li .ek3s .el4a .elas3 .el4b3i .el4bl .elb5s .el4fei .elfen5 .elfens6 .el4fl .en1 .en4d3a .en4d5ei .ender4 .en6d5ere .en6d5erf .en6derg .en6d5erz .en4d3r .end3s .en4due .en4dü .en4g3l .enk2 .en4t3a .en4tä .en4t5ei .en4tem .en5thalp .en4thi .en4t5io .en4toe .en4t3r .en5trep .en5trop .ent3s4 .epi3c .ep3o4d .er4b5ei .er4b5er .er6brecht .er4bu .er6d5achs .er4dan .er4dar .er4d5ei .er4del .erden6k .er4d5ep .er4d5er .ere5ch .er3ei .er3er .erfolgsauto6 .er3in .erk2 .er3o4b .er3oe .ers2 .er6st5ein .er6ster6 .erst5eri .erst5ers .er6stim .er6stritt. .er6stritten. .er4z5el .erzen4 .er6z5eng .er4z5er .es3p .es4s3t .es3ta4 .es3te .es5tra .est5ri .et2h .et2s .eu1 .eu3g2 .eur4 .eu3t .eve4r3 .ex3em .fahrzeugin6 .fang5s .faus6t5r .fe3la .fel4d5r .fel6lau .fel4sp .fel4s5t .fer4n5o .fe4st .fi3d .fi5est .fi4le. .fi4len .film5a .fil4s3 .fin4s .fi2r .flu4g3 .flus6s5en .for5tu .fra4s .fs2 .fu4sc .fus4st .ga4me. .ga4mes .gan4ga .gang5sc .ga2s .gas3e .gas5tei .gas6tras .ga2t .geb2 .gebe4a .gege4n .gel4b5r .ge3lu .ge5nae .ge5nar .ge5nas .ge5naug .ge3ne .gene5cke .gen4ei .ge3nu .ger4a .ger4e .ge3ro .ge3ru .ge3sa .ges4e .ges4i .ges4p .ge7stei .ge3t4u .gi2u .gla4s5c .gol6der .gs2 .gu3ru .hafe4 .haft5r .hal4br .han4a .han4fa .hang5s .ha5sche .hauser6w .hau4su .hau4t .haut5o .he2r .her6b5ra .he5rer .he3ri .he6r5inn .he5ros .he4sp .hete3 .he3xa .hi2n .hin3a .hin3u .hi4s .ho4f5en .hof3r .hof3s4 .ho4la .ho4met .ho3ra .hor4t5r .höch4s .hu4fer .hu3la .hund4 .hu3s4a .ia2 .ibe3 .ima4ge .imm4 .immen4 .in1 .ind2 .ink4 .inn5st .inse4l5 .inu3 .io2d3 .ioni5e .ire3 .is2a .it2h .joni3 .jor3 .kabe4 .ka4b5l .ka3la .kal4ta .kal4t5r .ka3mi .ka4t5i4o .ke3ra .ker4bl .ker4na .ke3ro .ke2t .ki2e .ko4ten .ko4ter .kraf4 .kraft5 .ks2 .kue3b .ku4ran .kü3b .laden5s .la5ert .lage4n5 .la3ho .lan4d5a .lan6de6mi .lan4dr .lan4gl .lan4g5r .lang5s .lan3t .lase4 .las4t5r .le4ar .le4gas .leh4m5e .lei4bl .lei4br .lei4tr .le3n4i .len4kl .les3t .le3th .lich6ter6sc .li2f .li3o .li4ve. .lo4g5in .lo4sc .losch5 .lo4sk .los3s4 .los3t .lo4tr .lo5ver .lus4t5e .luster6 .lut4h .ly2s3 .ma5lae .ma5le .man3d .mani4e .man5t .mas4s5u .ma4st .ma4ß3u .mat4c .mate3 .md2 .mee4ru .mel4a .me3no .men6schl .men6schw .me4sa .mes4sp .mes4st .met6tend .mi2e .mie4t5r .mi2f .mil4z3 .mi4s3a .mi6scha .mi6schl .mi6schn .mi6scho .mi6sch5r .mi6sch5w .mi2t .mit3a .mit3e .mit5in .mm2 .mo2i .mo4nau .mon6dru .möbe4 .musiker6fo .nabe4 .nae4s5c .na4ha .nah5ei .namens5 .na4mes .nas4s5c .na3t4h .na3to .nä4s3c .nebe4n5 .neider6 .nere3 .ner4f .ne3ro .ne2s .neuer6b .nich6t5e .ni2e .ni2l .nil3a .no6tentr .no4t3h .no4top .not3r .nude4 .nul6ler .nus2 .nu4t3r .oa3s .obe4n .obe6r5ei .ob6ers .ob3i4t .ob3l .ob4sta .oe2 .oh4r5ei .oh4rer .oper4 .orge4 .orgi3 .ort4s .orts5a .orts5e .os4t3a4 .ost5ec .os4t5ei .os4tel .os6t5en6de .os6teng .oste6r5e .os4tes .os4ti .osto4 .ost5om .ost3r .ot3a .ou4te .ozo2 .ölk2 .pa3b2 .pa4nen .par4ka .par4k5l .par5th .pas6sers .pe4c .pe3la .pel4za .pel4zw .pe3na .peri3 .pes4t5e .pes4th .pf2 .pf4u .ph2 .po4lei .po6lende. .po6lenden .postei6 .prach4 .pu5ert .ra5ch6e .ra4d5ei .ra4der .ra3el .ran4d5r .ran6g5e6b .ran4gl .rar4s .rau5f4r .rau4m3 .rau6schl .rau6schw .re4b3l .re5cha .re5chr .rei4bl .re5insz .reise5i .rei4st .reli5e .ren4n5a .re3sk .rester6 .res6t5ers .re5stit .rest5re .re3un .ri4as .ro2a .roe4s .roes5c .ro4h3a .roher4 .ro6h5erz .rom4a .roset6te. .ro4tan .ro4tau .rot5ei .ro4t3r .rö2s .rös3c .rue3b .rue6ck5er6 .ruh4r3 .ru4m3e .runder6 .rü3b .rü6ck5er6 .sa3br .sa4fe .sali5e .sami3 .sau3c .sch4 .scha4c .schaf6t5end .scheiner6 .se2a .se2e .see3i .seein4 .see5r .se4ha .seh5ere .se4hi .se4h3o .sen4f .senf5l .sen4kr .se5no .sen3s .se3ro .se3r4u .se2t .sex5tr .sha2 .si2e .siege6s5 .si3er .si4ern .si3es .si3gn .silbe4 .si4te .sit6zer .ski3e .ski3s4 .sli2 .so3n4a .sour4 .spani5er. .spiege6lei .st2 .st4a .sta4ge .stau6be6cken. .st4e .ste4h5a .ste4i .steiner6k .ster6na .sto4n .sto4re .st4r .stro6ma .su6cherf .su6cher6g .sue3b .sumpf5l .ta3c .tage4s5 .ta5lar .tan4k5a .tan4k5l .tan4ko .tart4 .ta4tab .ta4t3h .ta4top .ta4tor .ta4tri .ta4t3u .tau4f5o .tau6schl .te2e .te2f .tehe5 .tei4l5a .tei4l5ä .teiler6s .tei6l5ersc .tei4l5i .teils4 .te5in. .te5le .telle4 .te3ra .te4st .test5ae .test5ä .te6ste .test5ei .tester6h .test5r .te4te .te3xa .texter6 .ti2a .tie6f5ern .ti4me. .ti4mes .ti2s .tischen6 .tisch5end .tisch5l .tisch5w .tit2 .tit4a .tite4 .tode4 .to4der .todes5 .to4nar .to4nat .tonen4 .to6n5eng .toner6n .toner6z .to4nin .ton3s4 .to4pan .top3e .to4pl .to4pr .tor5an .to4rei .to4th .to4t3r .to2w .tra4de .trag5s .tri5es .tsa3 .ts4c .tse3 .ts4u3 .tu4e .tu5end .tu3ri .tur4m3 .ub2 .ue2 .ue4b .ufe2 .ufer3 .uh3l .ul2b3 .um1 .ume2 .umo2 .ums2 .un3a2 .unab3 .un3dr .une2 .unen4t5 .un3er .un3g2 .unge5n4 .uni4t .unk2 .un3s .uns4t .ur3a4d .ur3a4m .ur4anb .uran6fa .ur6anfo .ur4anp .ur3at .ur3c .ur3e .ur4e3t .ur4i .uro3 .ur3o4m .ur3o4p .ur3s2 .ut3r .ves3t .vi3d .vol6lerw .wah4l3 .wah4n3 .wanderer6 .ware4 .waren5 .wa2s .we4bei .weg3s4 .weh4r5u .weine4 .wei6neb .weines6 .we6ing .wei4ta .welter6k .welt5s .wer6k5er6 .wer4k5r .wer4tr .wese4 .wetterer6 .wi2e .win6d5er5 .winte4 .wor2 .worten6 .wort5end .xan3 .xe1 .ya2l .zeit5r .zeit5s4 .zel4l5a .zelle4 .zel6leb .zel4li .zel4th .ze3ro .zi4e .zie4l5u .zin4ka .zin4s5c .zin4st .zi6schl .zol6lers .zuch4 .zu5ende. .zu4gei .zu4glo .zu4g5ra .zug5st .zurue4 .zurü4 .zwe2 .zweigen6 .zwei6g5end a1ab a2aba aa2be a3ace a3achs a1ae2 aa2gr aags2 a3akt aal3ac aal3an aal3ec aa4lei aalf2 aa2l3o aal3ö aals4t aal5ste a1an a3an. a2anä a1a2q aa2r3a aa3re aa4r3ei aa4r5ers 3aarg4 aar3in aa4rit aa4r3oe aar3ö aarp2 aar3z 3aase a3ass aa2su aata2 aa2t3h aa2t3r aat2s3 aatsche6 a1au a1ä2 2abah abais4 ab4ak 2abal ab3alt ab2am 2a3bas abat4t5a ab3auf ab1ä ab2äu abbe4p 4abbin abb5rig 1abd abda3c 2abe. 2abec ab3eic abe3id ab3eil abein4s abein4t 4a3b4el abel5ac abel5a4d abel5in 4aben. a4berd aber4ka ab3erz aber4zi aber4zo abe4s5en abes4p ab5esse 2a3bet 1abf 1abg 1abh 4abil ab3inf ab3inh ab3ins ab3iso abi3s4t 1abk ab1l a2bla ab3lag 3ablas 3ablau a4bläu 4ab4le. 3a4bled 3ablei 4a3blem 4ab4ler 4ablet a4bleu a4blin a4bloe ab4log a2blö 1abn ab2o 3a2bo. 2abod 2aboe 2abol a2bon abor5ang abo5rato abor3s 2abot 2ab2ö ab1r ab3rec ab3rie ab4rot 2abrö 3abruf 1abs 2abs. 4absap 4absar ab3sc ab3se 2absf ab3so 4ab4sof abs2p 4abspi abs4pr 4abst. ab3sta ab4s5tro 3abtei abtes3 3abtr 2abu a4bueb ab4ug a2bum ab3usu a2büb 1abw 2aby 1abz ab5zun 2ac. 2aca 1ac1c a3cee a3cem a3cen 2ach. ach3ab ach5aen ach3ak ach3an a5chari ach5art ach3as ach3au ach3än 2achb a3che a4ch3e4c ach5eic ach5ein ach5eis a4ch3ep ach5erbe. ach5erben ach5erbes ach5erfu ach5erfü ach5erke ach5erkl a4ch5erl a6cherne a4chero a4cherö a4ch5erw a4ch5erz ache5str ach5eta 2achf achgene6r 2achh 4achi a4ch3i4d ach5ind 2achk 2ach3l ach5le 2ach3m ach5mi ach3n 2acho a3cho. ach3o4b a3choh ach5ord ach5org ach5ori a3chos a3chov ach3öf 2achp 2ach3r 4achs. 4achsc 4achses 4achso 4achsp achst4 ach5stre ach3su ach4tak ach6tant acht5erfu acht5erte 4achtg ach4t5in 4achtk ach4t5or ach6traeume. ach6traeumen. ach6träume. ach6träumen. ach6trit 4achtsc ach4t5um ach3u4f ach3uh a3chus 2achv 2ach3w a1ci acin3 4ack. a4ckeg 4a3cken acken5s a4ckerd 4ackes a4ck3in 4acks acksau6s ack5sta acksta6g ack5sti 2a1cl a3co acon4n ac2p 2acu 2ad. 4ada. ad4abr a2dad a2dae ad2ag a2d3a2k ad3ang 3adap ada4rer 4adas a4daut 1a2dä ad3än ad1c 2a3de. ade4al ad5eben a3dec ade3e adefi4 adel6spo 3adelu 2aden ade4nat adenes4 adenk4r aden4se ade3o2 ade5ram a4d3erf a4derig ader4sa a5deru a4d3erz ade5s4p ades4s ade5stel ade5str 2adf adgas3 2adh adie4s5c adie6s5el a4d3inf 1adj 2admu a2dob ado3c ado4n3a adon3e a2dop ad4o3s adot2 2adp 2adq adrat5s4 a2dre 3adres ad4ret ad3rot ad3rue ad3run ad3rü 2ads2 3adsor 2ad2t1 adte2 adto2 adt3re a2düb 1adv 2ae. aea2 aeap2 ae2bl aechen5 aech4sa ae3chu 2aeck aeck5sp ae2da ae4ders aede3s4 ae4d3ia aedi4e ae2dr 2ae1e aee2k3 ae2f3l ae2fr aefts3 2aeg ae2ga aeg3an ae4g5ent ae2gl ae2gr aeg3ri aeg5sta aeg5s4tr 3aegy ae2ha 4aehe ae4h3ei ae4hel ae4h3in aeh4l5ei 4aehm 3aehnl 2aehr 2aeht 2aei ae3im a3ein ae5isch. ae5ischl ae5ischs ae3isk a3eiw ae2kr a3el. ael4bl a3elh ae4lia aelk3s4 a5ella. ael4lak a3ello ael4pl a3els. a3el4sa a3elsb ael6schl a3elsf a3elsg a3elsk a3elso ael4st a5elsta a3elsv ael3t4e aelte5i 4aemm aemte4 2aen. 2aene aene4n3 aen2f3 4aenge 2aeni aen3k4e aen4kl aenne4 aenner5 2aens aen4s3a aen4s3c aen4sp ae3nu 2aenz ae2o3p2 5aepfel a3e2pi 1ae2q 2aer. aer3a2 3aera. ae3r4af ae4rap ae4rat aerauto6 aerb3l aer4ble 4aerd ae4r3ei ae4r3e4l aere4m ae4r5emi aere4n aer5enzy ae4r5erf ae4r5erh aerer4k aer5ersa ae4rese aeri4e ae4r5ing 4aerk aer4mau aer4mo aer6munt ae3ro 3aerod ae4rop ae4ror aero3s a3ersa aer4seh aers5er aert6er aert4s3 ae4rue a3erwä aer6z5en6t aer6z5err 2aes4e ae3se3i aese5rei aese5ri ae3skr ae2sp aes4s3c aess5erwe aes4so ae4st aestein6 3aesth aeß5erk aeß5erw ae4t3a aeta4b aete3e aeteo4 aet5erbl ae2th 4aeto ae4tob ae4t3ra ae4t3ri ae4t3ro aet4sen ae2u aeu4eri 2aeuf 3aeugi 5aeugle 4aeul 2aeum 4aeur aeu5re 4aeus. aeu6scha aeu6schr aeu4sp ae2vi a1e2x 2afa a4f3aen a2f3a2n a2fap a2f3au 2afä a2f3än 2afe a2f3ec a4f5einh a4f5einr a4fentl a2f3e2p afe2r a2fex aff4a 3affär 3affek af4flu aff2r 2afi afi2e afie3i afie3s afi6k5anz afi4kat afi4k3l a4f3ins afi2t 2afl af3lae af3lä 2afo a4fo4ber a2f3oc a4ford a4f3ort afo3s 2afra af3rae af3rat af3rau af3rä af3rie a3fris 2af2ro af3roe af3rö af3run af1s af3sa af2si afs4ke afs2t af4t3ak aft5anz af4t3au af4tei af4t3e4l af4t5ent aft2h aft5int af4toe af4t3op af2tö aft5rad aft5rei af4t5res aft5ric aft5rin aft4sei aft4sel aft4spi af4tur 2afu a2f3um a2f3ur 2afü afür3 2aga ag3a2d aga3t a2g3au agd3an ag4dar ag4del ag4det ag4din ag4dre ag4dro 4age. ageb2 age5inf age5inh age5in4s 2agel age6lei6s age4len age4ler 4a5gen. age4nas agend4 age4n5e4b a6generg agens4p a4gent. 5a6genten a4g5entf age4rad age4r5af age4ral age4r5ap age6rauf agerei6g ager6eign agerer6f age3ro age4s5am age4s5an age4sau ages3k age4s5oe age4sö ages6sen age3u 3aggr a2g3i2d ag3ill a2g3im ag3inn ag3ins agi3oe agi4os 2agl ag4lan ag3lat a2gli ag3loc ag3los a2glö a2glu ag1n2 ag4nat a2gnä ag2ne ag2nu 3agog a2g3op agori4 a2gre a2gri ag3rie ag3rin ag3rol a4g3rum ag2sa ag3s4ah agsen4t5 ag4sin ag5s6porta ags3pu ags5taet ag4stät ag5stel ags4top ag5stras 2agt aguet4 a4gund 2a1h2a ah3ang a1hä ahdi3 2a1he a4hein ahein6se a4h3er4h aher4ku a4h3er4w ahe3s a1hi ah2l3a2 ahl3än ah4l3e4b ahl3ec ah4l3ei ah4lel ahlenk4 ah5lenz ah4l5erd ahl5erf ahl5erg ah4l5er4h ah4l5erz ahli4n3 ah2l3o2 ah2lö ahl4sal ahl5se ahls4pa ahl3sz ah4m3ae ah4m3ar ah2m3ä ahme3e ahme3i ahmen5e ahmen7sc ahme3s4 ah3mu ah2n3a2 ah4nas ah2n3ä ah3nee ah4nef ahn3el ahner6e ahn5er4h ahn5erk ah6ner6le ahner4n ah4n5erp ah6n5er6sa ah6n5er6sc ah4neu ah4nin ah2no ahns2 ahn5ste a3hom a3hop 3a2hor ah3ost a3hot a1hö ahr3a ahra4g ah3rai ahren6se ahren6s5o ahrer6lau ahre4s ah3ri ahr4tae ahr4tal ahr4t5ei ahr4tin ahr4t5ri ahr4tro 2ahru 2aht ah2ta ah4t3e4l ahte4s ah4t5ese ah4t3ex ah4tis aht3re ah4t3ri aht3s2 ah4t3um a1hu ah3w a1hy ai1a2 a3ia. aian3 aidi2 ai3dr aid2s ai1e2 aien3 ai3er3 aif2 ai3fr aig2 ai5gel a3ik. ai4k3er ai4lar ai4l5auf ai4lei ail5erl ailge3 a3im. a3imp 2ain ai3nac ai3nal ai4neb ainen4 a3info ains4p ai1o 3airb 3airl airo3 air2s ai2sa ais3ac a5isch. ai4schi aiser5a ais4o ai3spr ais4se. ais4sem ais3t ai3s4tr ai3ti ait4r a3iv. a3ivl a3ivs a2jat 2ak. 2a3ka. aka3b4r a4kade 2akae a3kal 2akam 2akan 3a4kanl 2akar aka4tak aka4tan aka4t5er aka4t3r akat3s 3a2kaz 2akä 2akb 2akc 2akd 2a1ke a2kef ak3eis 3a2k3em ake2n aken3e a2keo a2keu 2akf 2akh 2a1ki ak3ins akka3 4akko. 3akku 2akl ak4lin 2akm 3a2kne3 2ako akoni4e 3akox 2akp 2akra 2akre 2akri ak2ro3 3akrob a2k3ru a2k3rü 2aks ak3sh ak3sta ak3ste ak4t3a4b ak4tag ak4t3ar ak4t3au 2aktb ak4t3el akter5a 2aktg ak2th 4aktik aktionsche6 4aktis 2aktm ak4t3ob ak4toe ak2tö ak2t3r akts2 4aktsi 4aktsp 4aktst 4aktun 2aktw 2akul 2akun 2akur aku2s3 2akw 1akz 2a3la. al3abb 4alabo a4l3abt a3lad. al3add al3adm al3aen al3af 2alai ala3kl al3akr al3ame alami3 al3ana a3lanc 4al4and a4l5ande al5angel al5angr alang5s ala3ni al3ank al3anm al3ann al3ans al3anz al3app a3lar. al3arb al3arg a3lari al3arr al3art a3las. alaska5 al3asp ala4st 2alat a3lat. ala4tan al5attr alat3z al3au a3l4au. alauto6r a3lay a1lä a2l3än al3ärm al3äu alb5aer al4bär 3albb 4albe. alb5eink al4b5erh al4b5er4w al4b5eta alb5ins al4ble al4bon alb5rae al4b3rä alb5rie alb5rin alb4s3p 3album al1c alda3c al2dä 5aldehy al4d5ere al4d5erh al4d5erl al4d5ern al4d5erw al4d5ese ald5inn al4dop al4d3ot al4drä al4dro ald3s4t 2ale al3e4be alebran6 a2l3ef al3eie a4l3eig a4l3ein a4l5eise al3ele al3elf 3a4lema a4lemb a4l3e4mi 3a4l3emo al3emp alender5 a4l5endr a4l5ends a4l5endu a4l5engl alen5in a5lentb alent4e al5enth alent4z alen6z5ei al3e4po a4l5erfo al4erg aler4hö aler4kl a4l5erla a4l5erlä a4l5er4mi aler5oe a4l3erö 3alerr a4l5er4tr 5alerwa 5a4l5erwä 5a6l5er6wer a4l5erze a4l3e4s4k a4less a4l3est a4l3e4th a4leur a2lev al3exi al3ext a1lé 3alge. algene6r 3algor alg2r alig4h al3imm al3imp a4l3inf al3inh a4l3in4q alin6stin al3int al3inv ali3o ali3sp ali5str a4l5ital alk5erd al4klö al4kne al4kof 3alkoh al4k3rü alk3sa alk3se alks4i alk3sp al5lad all5ank all5ano all5ans all5anz al4l3a4r al4laus 3allee all5eim all5erfa all5er6mu all5ermü al6lersa al4l5er4z al3les al4lev 3allgä 3allia al4l3id alli5er. alli5ers. all5ink allo3c al4l5oef alloe6se all5ora al4l3öf al4l5ö4se all6s5amt all4sph al4lum alm5aus almen3 almo6de. al3n2 2alo. alo2b al3obe al3obl al3obr al3obs al3oe4d al3oer a2lof 2a3log alo4g3a alo4gr alo5is. a3lop al3ope al3opf a4l3orc al3ort 2alos al2ov alo2w a2lö al3ö2d al3ör 3alpe. 6alphas alp3st als5aer alsau4 alsch5s al3s2e als4pac als5tau al3sti alt5alg al4t5ana al4t4an4b al4t5ans al4tap alt5eic alt5eig al4t5eis alt5elt alter6fol al4teu al4tid al4tir alt5ita al4toe alt5ort al2tö al4t5rat alt5ric alt5rit alt5roc alt5ros al4trus a1lu a2lum al3umb 3alumi a2lur al3use alu3ta a3lüg 2aly alz5aep al4z3ap al4z3ar al4zäp 2am. am3a4ba ama3d am3aep ama5ge a4malg am4an aman6the aman4tr am3apf am2ar ama4s5z a2maz 2amä 3ambiv 2amc 2amd 4ame. am3ein ame5len ame4n amen3e amen3i amen4s5e amen5sh amen5stem amen4su amer4a amera5u a4m3erf ame3r4u a4m3erz a4mesh ames4p a4m3ess 2a3met a2mex 2amf 2amg ami4kan ami4kl ami4kn ami4kr amine4 amis4tr 2amk 2aml 4amm. amm5aba am4m3ac am4mal amm5ang am4map am4mar amm5ass am4m3au amm5edi amm5eis amme4la amme4n am6m5es6sen am4m3id am4min 4amml am4m3oe am2m3ö am4munt ammu4t3 a2m3oc amotte5s amp4f3a4 amp6ferr ampf5la ampf3o amps2 3ampul 2am2s am3sau am5sche am3se ams3en am3so am3spa am3spi am3s4tr am3su am2t3a amta4b am4tän am4t5eig am4t3el 4amtem amter4 am4t5erb am6t5erei am4t5erf am4t5erg am4t5erh am4t5eri am4t5erk am4t5erl am4t5ern am4t5err am4t5ers am4t5ert am4t5erz am4t3ex am2th am5tig amt5int am4tis am4tit amto2 amt3ob am4toe am4t3op am4tou am2tö am4t5rat amt5rei amt5ric am4tro 3amts. 3amtsd am2tu amt3ur 2amtv 2amu a2m3uf 3a2mul a1mü 2amv 2amw a1na a3na. ana2a a2nab ana5che anadi5er. an3aes an3aeu ana4l5in an5al4ph anal5sk 3analy ana3m an4and an3a4no an3ant 2anar a4narb an4are an4arr a3nas ana4se a3nat. ana4ta ana4t3r a3nats 3anäm 3a2n3äs an3äu 1anb 4anbas 2anbo 2anbu 2anbü an3cht 2and. 4andaa 4andab 3an3d4ac 4andal and5amm 4andan an4d5arm and5ass 4andat 2andd 4ande. an4d3ei and5elfe anden6ga and5ente. ander5ei anderer6le and5erho and5erhö ande4sa ande6spo an4d3ex 2andf 2andg andi4e an4drau an4drec an4d5res 2ands and4sam and4seh and6s5ein and6spar and6spas and6spat an4düb 2andw andy3s4 an3e2c a3n4ei. a3neie 3aneig an3e2k ane2l an3e4mi 3a4nemo anen4z an5ersc a4n3eru a4n5erz. an3eth a2n3e2v 1anf 2anf. 4anfab 2anfi anfi4n anfin5i an4f5rau 2anfs an3f2u 4anfun 4ang. 4anga. 3angab an4gal ang5art ang2ä an3gäh an4gäs 4ange. 5angebo 5angeho 5angehö ang5eis 3angek an4g5erf an4g5erg an4g5er4h an4g5erk an4g5er4p ang5erwa an4g5erz 4angie ang4lok ang3n 3angol ang5rad ang5ras an4grau 5angrif 4angs. ang5sat ang6st. 1anh 4anhau 2anhu 2anhü 2ani 4ani. ani5de 4anie aniel4l ani5els ani5ers. anie3s ani4ka ani4ki ani4kr 3a2nim anin4t an3i4on a4niso ani5sta 4ank. an4kad an4kag an4k3ak ank5alt ank5anz 4anken ank5erfa 4anki an4kid an4k5las an4klö an4k3ob ank5ori an4k3öf an4k5ras an4kro ank5rue an4krü 4anks ank3s4k anks4p an4küb 3ankün 1anl 4anlad 3anlag 4anlan 4anman 3anmel 3anmie 4anmun anna4ge 3annah 3annä an4nef annens4 3annex ann4spa ann5str 3anod an3ode anoe4d an3ofe 2anog a3nol ano4l3a an3oma ano4m5en an3opf an3opi an3or ano5rak 3anord ano4ri anor3t4 a3nos an4ou a3nov a1nö an3ö2d 1anp 4anpag 1anr 4anrad 2anrö an1s an3s4ab ans5aem ansa4m an4s5ame an4s5amt an5s4au 3ansäs ansch4l an4seu ansicht6 an4s3po ans2t 5anstal an4stem 5anstri ansu2 an4s3ur ans2z an3ta an4t5a4go ant5ang ant5ans an4t3ar anta4re 3antá 3antei anteri4 antes3 ant5e4ta 5anthro 3antib 5antilo ant5inst 3antiq 5antise 3antr ant5räu 2ants 3antw a1nu anu5ell a3nup a3nur a1nü 1anw 2anwi any3l4 an4z5aep an4z3an an4z5art an4zau an4zäp 4anzd an4z3ed anz5elf anze4n 4anzes anze4t anz5eta 2anzg 2anzh an4z3i4d an4z3i4n 2anzk 2anzm an4zol 2anzr 2anzs 2anzt 3anzün an4zwä 2ao a1oe2 ao1i a3okt a2om a1op ao2pe a1or a3orm aor5te a1os ao2sk aos2p aos3t a3ot. ao3t2s a1ö2 2ap. ap2a apa3b2 a2ped a3pel apen3 ape4ra a2pev 2apf. ap2fa 4apfe. 3apfel 4apfen3 2apfs 2aph aph5aer aph3är aph5ers a2ph3t a1pi api2e apie3s 2apl a3pla a3plä ap3li ap2n ap2o 2apol apo3p2 a5posi apo5sta apo5str a2pot 3appar ap4pei ap4p5erz ap2pf ap4pre ap4p3ru a1pr ap4sin apst3o apst3r apt2 a4que. 2ar. a1ra ar3abb ar3abt ar3adr arad4s ar3aer ar3aes arafor4 ar3agg ar4ah 4aral ara3le ar3all a4r3ana ar3ang a4ranr ar3ans a4ranw a4r3anz ar5apos a4r3app a2rar 2a3rat ar3atl ar3atm ar3au arauto4 ar3ax 2a1rä ar3äs ar4bab 4arbe. 4arbef 3arbei ar4b5eig ar4b5eim ar4b5ein 4arben arb5erl 4arbi ar4b3le 2arbs2 arb3sk 2arbt2 2arbu 1ar1c 4archl 4archr ar4danz ard5arm ar4d3ed arde4n ar4dob ar4dop ar4d3ri ar4dro 2are. a2rea are5aler a2reb are5ba 2arec a4red a2ree2 a2ref ar3eff areg2 ar3ehr a4r3eid areim5 a4rein 2arem ar3emb a4remi 4a3ren. a3reni aren3s4 aren6sem a4r5entn a2reo a5rer. are3r4a arerau5 a4r5erei a4rer4fo a6rergeb a4reri a4r3erk a4r3erl a4r3ert a4r3erz arer4zi 2ares a4r3es4k ares4p a4r3es4s are5sta 2aret are5the a2reu a2rev arfs3a arf4s3p ar3fu 2arg. ar4g3e4c ar2g3n 4argo arg4r ar5gre a1r2i 2ari. 2aria arie4n3 ari5er. ari5erbu ari5erd ari5erg ari5erh ari5ers. 4arif arif3t ar3imp 2arin arin5it arin3s4 a4r3int ar3inw 2a3rio a3rir 4arisc ari4su a4rith 2a3riu 3arkad ar4kak ar4kal ark5aue ar4käh ar4k5erh ar4k5er4l ar6k5er6sc ar4kid ark4lö ar4kne ar4kni ar4koa ar4kor ar4k3ro ark3sa ark5she ark5spe arks4t ark5stu ark4t3a4 ark4tel ark4t5ex ark4t3o4 ark4tre arku2 ar4k3um ar4küb arlang5 ar4les arlichter6 arlich6ters arl2s arma3l ar4m5ans ar4m5anz arm5art 5armatu arm3au ar4meb arme4e ar4m3e4g arm5ein 5armeni ar4meo ar4mep ar5mes ar4m3op 2armö arms2 ar4mum 3armut 2arn ar4nan ar4nap arn4au. a1ro ar3ob. 4aroc aro6ckeng ar3o4di 2aroe 2arof ar3o4fe ar3off aro2i 2arok 2arol a2r3o2p 2a2r3or aros5t 2arot arot5an aro4to a4roun aro2w a2rox 2arö 4arr. arr5ach 5array 2arrä ar4r3e4b ar3rei arre4n arren5e 4arri ar4r3or 4arrs 2arrt 2arsa ar6schab ar6sch5ac ar5sche arsch5erl arsch5wi arseri4 arsex3 ar3s4ha ar3si 2arsk ar4ska ar3sp ar3sta ar3stä ars5tät ar5stel ar5stern ars6t5ers ar3str ar3su ars4ue3 artal4s5 ar4t3am ar4tang art5att art5auf ar3te art5elf arter6fo arter5k arter6la 3arthr 4artie 3artig art5int ar4t5iso ar4t3ob ar4t5ram art5ren art5rie ar4t5rol art3sa art4sau art5ske art5spa a1ru arude4 aruder5 a2r3uh a3rumm ar3ums a3rüm 2a1ry ar4z3ae ar3zan ar4z3au ar2zä arze2 arz5ente ar4z5erl 2arzi 3arzn 3arzt arz4th arz4ti arzt5ra arz4tri ar2zw asa5chi as3aeh as3aet 4asaf as4ai asal4t5e as3amp asa5ne a2sap asa4ro asa2s as3asc a5sau. asau4f as3aug as3ät a2sca as5cham a5scher. ascher6g a3schi a4schm asch5mi asch5ru 4ascht a4schwu a4schwü 2ase a2sec a2s3ef as3eie a3sen. ase4na4 asene4s ase6n5esc asenk4 ase4n3o a6sen6sem asens4p aser3a aser5eig as4erh as3erw as4es as3eva asex3p 2asf a3s4hen 3asiat asien3 a2s3i2k as3inn as3int asi4s3a a2sk as5kla aslan4 a3slip a2so2b as3oe aso2f as3ofe a3sol a3som a2s3o2p as3orc as3org as3ori as3pan aspek6t5o as3pik as3pio a4spir as4ple as4por a3spra as5s4abl ass5amt as4scr ass5eins assens6k assens6p as5s4er asser5a asser5ec asse6reis 5assess as3ski as4soe as4s5ora 3assoz as2sö as4spo as2st as5stau ass4tie ass4top ass4tue as3stü as4sur a3stad as3t4af ast5ans as3tap asta3s as5tatt ast5auf ast5einl a4ste4n ast5ents as3ter as6t5er6ho as6t5er6hö aster5oe aste4s as4t5ese as4tex as2th asti4e asti4ka a2sto as3toc ast5orc as4trau ast5raum as4tre as5tren as6t5ritt ast5roll as4tru ast6ruk 2astu as3tub as2ty asu2s aswa4s 2asy. a2syl 3a4symm aße2 aßen3 2at. 2ata a2t3aa at5a4ben a4t3abl at3abr ata3la at3apf at3arb at3art ata3s2 at3atl at3att at3au at4au. a4tauf ata3un a4taus at3är 2atb 2ate. ate4au ateien6d atei3f atei3s 3a4teli 4atell atel6l5erk 3a4temg a4teml a4tems 2aten aten6t5ank aten6t5ri aterer5 2ates ates4sa at4eur ath4a at3hee at5herd a5thia a4thin ath5in. at3hir 3athl a4t3hoc at3hof a2th3r 2at2i at3idi ati4kab ati6k5er6w ati4kl ation4s ati4s3a ati4s3e at4isl a4tiso ati4v3a ativen4 ati6v5er6f ati6v5er6s 4at5mus at2o a2t3o2b at3oef at3oel at3o2f a2tom ato4man ato4min 3atomk a3tomo 3atoms at5opfe a4tops 2ator ato4ra at3orc ato4rei atorgene6 ato3s ato2w3 at5raet at5raeu a4t3rau a4t3rav at3rän a4t3rät a4t3räu at3rec a4trep at5ring at3roh at3rol a4t3rom 4atron a4troo 3a4trop a4t3rot atrue3 at3ruh at3rut at3rü3 2ats at4sau at4sb at6scheng at6schma ats3e4h atse4l at4set at4s3in at2so ats3pr at4stoe at4stop at4stö at4stur 3attac at4t3ad at4tah att5akt atta4l at4tale atta3s4 at4t3au at4t3ec 4attel atten5s4 4atter at6t5ertr at3ti at4t3o4b att3o4f 5attrak at4t5ras att5rat att5räu att3s2 2atu atu3et atu2n atu4rei atu4r5er5 atur3z atus3e 2atz at2za at2zä at4z3e4c at4z3e4d atz5eig atz5ela atz5elt at4z3em atz5erb at4zere atz5erf atz5erg atz5erh atz5erke atz5erkl atz5erkr atz5erl atz5ero atz5erp atz5ersc atz5ert atz5erw at4z3e4t at4z3in at2zo atz3op at2zw a2u 2au3a2 au1ä 2aub au4b3ab au4bas aub5ele aube4n auberin6s au4b5eul au4b5ins au4blä aub5rin aub4spo aub4spr au4bum 2auc auch5e4c au6ch5en6t au6ch5erke auch5sti 2aud au1e 4aueb aue2d auene4 auere4 au5erel au5erent aue4r3o aue2s aufa4c auf5akt au4f3ar au4f3ei 5aufent auf5erf auf5erh auf5er6kr auf5erla auf5erm auf5ind 3auflö 3aufn 4aufo auf3re 5aufruf 3aufsä auf5ski auf3t2 4auft. 3auftr au4fum 4augeh augene4 4augeno 4auger 5auges. 2augl 4augr 3augus au1h auh4a a3uhr 2au1i aui2n 2auj au4kle auk5te aul3e4c aule4s aul5ese aul4les au3lü 2aum au4mad au4mäh aume4n aum5ents aume4r au4m5er5i au4m5ers au4m5erz aumgene6 au4m3id au4mind au4m5ins au4m3o4r au4m5ott aum3p2 aums2 au4mum au4mun 2aun aun2a aun5alg au3nas aun3d aun2e au4n5er4d aun5erze a4unf au4nio aunk2 au2no aun5ste au3nu au1o 2aup au3p2f aup4ter au1r aur4a auran4 aurant5 aur2h au3ru au4s3ah ausan6ne. au4sap au4sas au4s3au 4ausc au6schan ausche6f au6sch5lag au6schli au6schmi au6sch5wi au4scr 3ausd 4ause. ause4e3 aus5ehr aus5ele au6sense au4s5erb au4s5erf aus5er5in aus5erk au4s5erl aus5erpr au4s5erw 3ausgl au4s3in au4sis 2auso au4s3or aus5pul 3ausrü auss2 5aussag aus4se. 5aussta aus3sz au5stae au5stal aus5tauf 4auste. au5stein au5stel 4austem 4austen 4austes au4stö 5austrag au5s6tras au4s5tür 3auswu 3auszu auße4 außer3 aut5aeu au4tar au4t3äu au5te. aut5ein au4t3e4l au5ten. aut5erkr aut5erne aut5ero aut5ers au5tes au5tet au4tev aut3ex au4thy 2auti 3auto auto6renk auto6renp auto6rens auto6rent auto6rinn aut5ran aut5rau aut5rin aut5rot auts2 aut3sk aut3z 2auu auve4 2auw 2aux 2auz a1ü avari4e a2va3t4 avener4 2avi avie6rer a2vl 2avo a2vr 2avy 2aw awi3e a2wr a1x ax2am ax4anz ax2at ax3emp ax3erw a2xia 3a2xio 2a1ya a2y3ak ay2es a3yeu ayma2 ay3of ayou2 ays2 aysi3e ay3t ay2u az2a a3zad 3a2zal aza3s2 az2o 2a3zu az4ur 2az2w azz3a2 az4zen az4z3in az2z3w ä1a2 äap2 ä2bl äb2s äbte3 ä1ce1 ä3che äche3e äche4n3 ä3chi ä2chr äch4s3a äch4s3o äch4sp äch4st ä3chu ä1ck ä3cke. ä3ckes äck3sp ä2da ädel3a ädel3e ädel3i äde3s2 ä2d3ia ädi2e ä2d1r äd2s äd3te ädte3i ädtein4 ädte3s 2ä1e äe2j äe2k3 ä2eri äe2x äfen3 3äffc äf2fl äfig3s äf1l äf1r äf2ro äf3te äft2s3 ä2g1a 1ä2gä ägd2 ägdi3 ä4g3ent äge4ra äger5as äge6rend ägeren6g äge6rers ägerin6d ä2g1l ä2g3ne äg2ni ä2g1r ägs2c äg3sta äg5stel äg3s4tr 1ä2gy 2äh. äh1a 2ä1he ä2h3ei ä2h3e2l ähe2n äher6gebn ä1hi äh3in äh4l3a äh4l5e4be äh4l3ei ähl5ins 2ähm äh3na äh3ne 2ähni 3ähnl ähre2 äh4r3el ähr5sa 2ähs2 äh3stu 2äht ä1hu äh3w 2äi ä1im ä3is. ä5isch. ä4ische ä5i4schl ä5ischs ä3isk ä1k ä2kle äk2li ä2kr ä1la äl3an äl2bl äl1c äl2l3a äl2pl äl4schl äl3t4e älte3i ältein4 ä1lu 2äma äma3t 2äml ämoni5e ämte2 äm2th 2ämtl 2än. ä1na ändes4 än2dr 2äne äne2n3 äne3p äne3s än2f3 änge4ra ängerin6s än2gl än2gr 2äni 2änk än3k4e änke3i än2kl än2kr änne4 änner3 2äns än2s3a än2s3c än2sp ä1nu ä1on äon4e äo3s äos4e 2äpfc 3äpfel äp2pl äp2pr äp2s3c 1ä2q ä2r1a2 3ära. är2af ärauto4 är1ä är4b3le är1c ärde4n ärde4s 2äre ä2r3ei ä2r3e2l äre2m ä4r3emi äre4n ären3a ä4r5ener ären3s ä4r3erf ä4r3erh ä4r3er4k ä4r3erz ä4rese är2gl ä1ri äri2e ä4r3ind ä4r3ing är3ins ä4r3int ärm5arm är4m3au ärme3e4 är4m5ent är4m5erz är2m3o2 är3o2b är3of är3o2p är3or ä1rö ärp2 är4seb är4s3eh ärs3er är4ste är2sz ärt2s3 ä1ru är4z3au ärz5en4t ärzer3 ärz5ere ärz5erf ärz5err ärz3te äsche5s4 2ä3se äse3e äse3g äs4e3i2 äsen4s äse3re äse4ren äse5r4i ä3s2kr äs1p äs2s3c äss5erkr äss5erwe äs2so2 äs4spr äs4ste äs3te ästein4 3ästh äs2tr ä4ßent äß3erk äß3ers äß3erw ä2t3a2 ätab3o 2äte äte5be äte3e2 ätein4n ät3eis ät3emp äte2n äteo2 ät3e4pi äter4bl ätergene6 ätes4p ä2th ät3id ät3ob ät1r ät2s3a ät2sä ät4schl äts3en ätsi2 äts3p ät2st äts3tä ät2su ät2t3a ät4tei ätte4n3 ät2tr ät3v ät2za ät2zw äu2bl äu2br äu1c äude3 äuder4 äu1e äuel3 äu4eri 2ä2uf 1äug äu2gl 2äul 2äum äu2ma äum3p äum2s3 äum3s4c ä2un äun2e äu3nu 2äu3r äu5re3i äurein4 äure3s 2äus. äu4scha äu4schä äu6sch5ei äu6schel äu4schi äu4schl äu4schm äu4sch5o äu4schr äu4schü äu3s4e3i ä3usg ä3usk ä3usn äus4s3c ä3usst 1äuß äu2tr ä2vi 1äx âte2 á1 1b ba2b3a ba4b3er4 2babf 2babg 2b3a2br 2babs 5bach. bach3s b5achse bach7ter ba4ck5er4 backs4 bad3a ba4dab ba4dan ba4dar 4b3adel 2b3adl 2b3adm ba2dr ba2du b2ae 2b3aeh 4b3aerz 4b3aeug bae5us. 2b1a2f b3age 2b3ahl bahne4 bah4n5eb bah6nene bah6n5ent bahn3s bai3d ba2k3a ba4k3er ba2k3i bak3l ba2k3n ba4k3ra ba4kre ba3la ba4lab ba4l3ak ba4lau bale4a ba4lei baler4 ba4l5erk bal5ins balk4a balke4 bal4lan bal4lau bal4l5eh bal4l5ei bal6lerg bal4tr 2b1am bama2 bam3az 3b2amb ba2me ban2a b2and ban4dab ban4d5al ban4d5an ban4dar ban4dec ban6delf ban6d5en6de. ban6d5en6den ban6d5en6des ban6deng ban6d5erf ban6d5erk ban6d5erz ban4dob ban4dr ban4du ban4k3a ban6kerf ban6k5erw ban4kl ban4k3n ban4kop ban4kor ban4k3r ban4ku 2banl b3anna 2b3ans bantu3 2banw 2b3app ba4r3ab ba4rad bar5ast ba4r3at ba4rau bar5ein bar4en barer5ei barer4t bari3e bar5in4s bark4l bar2s bar4tel b3arti ba4rue bar3zw bas2a ba4seb ba4seli4 b3asia bas4sa bas4s5ei bassin4 bas4sp bas3te bas3ti bas4tr ba4t5ent ba4tru bat4tak b3attr baub2 bauchar6m bau6ch5el bau6ch5er bau3eb bauer6fo bauer4g bauer4l bauer4n bauer6tr bauer4w bau3fa b3aufg bau3f4r 4b3aufs 4b3auft 4b3aufw baug2 bau5kl bau3l bau4m5ac bau6m5ant bau6m5ast bau6m5ent baum5s b3ausb 4b3ausf bau3s4k b3ausl bau3s4p b3ausr 4b3auss bau3s4t bau5ta b1a2x ba3yo b2ä1c b2äd 2b1äh b2äl b2är bären5 bärk2 2b3ärz b2äs 2bäug bä3us. 2bb b3ba bbauer4 bbau3f b3be bben3s4 bbe3ra bb2lo bb2lö bblu2 bb2r bbran4 b3bru bbru4c b3brü bb2s 2b1c b3ch2 2bd2 b3da bdän3 b3de bde3s bdi2e bdome4 3be. bea2n beat4m b3ebb beben3 beb2l 3be1c be2ce 4b3echt be3cke 4b5e4cke. bed2 4b3e4del bedi2 2b3edl be3e2h bee2l be3ela be3en be3erd bee4r5ei bee6r5es bee4r3i be3eta be3eti be3eu bef2 2b3eff be3g2 be4he. beh3ri beh2u b2ei beib2 bei5bl bei3d4r 4b3eier bei3f2 beig2 beige4o be3imm be3imp bei6ner6k bein4fo be5in6hal be5in4hi bein6spe bein6ter bei3s4a bei5sc beisch4 bei3sp bei3s4t beit4s5e beit4s5o beit4s5t beiz4w 3bek be3ke b2el bela4n bel5ano be4l5ant bel5bi bel3d4 be5le. be3lec 3belei be5lei. be4l5ein be4l3en bel5er5e bel5erh bel5erk bel5ern be4l3e4t bel3f 3belgr beli6ef bel5inn belle4n5 bel5oef be4l3om be4l3or be4los be4l3öf 3belp bel3sk bels4p bel5stern bel3sz belti4 2b3emp 4b3emul b2en 3bena be5nabe be4nat be4n3au be2nä 3benb benden4 ben6dens ben6d5es6s 4bendl 4bendm 4bendp be3ne. ben3ec benei4l be4n5end be4n5ent be3ner be4n5erf be4n5ers ben5ert be4nerw be4n5ess ben4eu be4nev ben3f be4ng2 be4nid be4nik be4n3in be4nis 3benk2 ben3n be4nob be4nop be4n3or ben4s5au ben4sek ben4s5el ben6sere ben6spar 5bensz 4b3entb 4b3entd 4benteu 4b3entf 4b3ents 4bentw ben3un 3benv 3be4nz be1o2 be1p2 be4pit 4b3epoc b2er be3ra. ber3aa ber5abe ber5abl ber3a4c ber5adm be5raeu ber3af ber3a4k ber5all ber5ame ber5amm ber5anz be4rar bera4s ber5asc ber5ass be4rato berbeste5cke berd4 be4r5eck ber5eig ber6eini be4r5eiw ber3el bere4m ber5emi be3ren ber5end be4r5en5e be4reng ber5ens be4renz berer6fa ber5ersa ber5e4sc be4r3e4t ber4g5af ber4gal berg5an. berg5ass. ber6g5en6t ber4g5li ber4gn bergs4t ber4hab ber3i4d berin6sp berin6st be4ri4o ber5iss berk2 ber4ken ber5n4a ber3n4e ber3ni b3ernt ber3o4b ber3oe be4r3oh ber5ost ber3ö berr2 bers4k ber5stau ber6stic be3ry ber4zög b2e1s be3s4an besch4 be4s3ep be4s3er bes5esk be4s3id be3s4la bes4pe bes4po bes3sa bess4t b5esst. bes3sz bes2t beste4 be4ster4 best5erh best5ern be4s5tol best5o4r bes5tos be4s5trä be4s5tur be4sur be3s4ze 4b3etap beta5sp bet5auf bete4s3 bet2h be3tha bet4o bet4tis bett3r be3uh be3um be3un be3ur b2ew 2b1e2x1 3bez 2b1f2 b3fa bfal4li bfang5s b3fä b3fe bfin4s b3fr b3fu b3fü bfün3 2bg2 b3ga bga6send bge1 bge3ne bges4 b3gl 2b1h b3ha b3hä b2i bi3ab bi3ak bi2ar bi3as bib2 bi3ba bibe4 bibel3 biber3 bi2c bid2 bi3dj bien3s4 bie4r3a4 bieres4 bie4st bie4t3a4 4bieti bie4tr biet4s3 bi3f bi4ke. bi4kes bi3k2l bi4kre bi3ku 3bil bi4l5ang bi4lant bi4lau bil4da bil4deb bil4del bil4d5in bil4d3r bild3s bi4lei 4b3illu bi2lu 2b3imb 2b3imp bi3na 2b3inb 4b3indi bin4g3a bi4n3ok 4b5insas 2b3int 2b3inv bio1 biob2 bi2od bi3oef bi3re biri3e 2b3irr bisa2 bi4schl bi4s3ei bi3si bi2s3p bis5sau bis4s3c bi2st bi3sta b4i3tr bit3s2 2bj bjek4t5o4 2b1k2 bk4an b3ko b3kr bl2 2bl. bl4a3b2 2b3lac blade5s 4b3laed 4b3laen blaes5c 3b4laet 2b3lak b4lanc b3lang blasser6 blas6serk bl4at b3late 3b4latt blat4t5r bl4au blau4c b5laus blaus4t b3laut 2blaw b3lay 2b3läd 2b3län bläs3c 3b2lät b2le2a 2b3leh ble4i b4lei. b4leib bleich6a 4b3leid blei3f 4bleih ble5imp blein4 ble5int blei5sc blei7sch 4bleit blei5ta b2lem ble4mei ble6m5ent ble4mer blem3p4 ble2n b4len. b4lend 4blenk b2leo b4les. 4blese 4blesu ble3sz b2let b3li. 4blich 4blief b4lier 2blig bl4in b4lind 4bling blings5 blin4k5a b4linz 4blis. b4liss b2lit b3lite b2lo. b2loc 4b3loch blo6ckent blo2g b2loi blo4id b2lon 2blos 2blun blu4th blu4tin blut3o blut5sc 2b1m b3me bmen4s 2b1n2 b3na bnas2 b3ne b3nu bo2a2 bo3ab3 boabi4 bo3as b1ob bo2b3l bo2br bobs2 bo3ch4 bo3d2s body3 bo2e boe4bl boe3i boei4g bo3en b1of boh4r5ei bo3is bo4l3an bo4l3au bol3c boli4e bo4l3in bo4lit 2bolu bol3za bombe4 3bon. bo3nat bon4d3e bo4n3er 3bons 3boo boo2l boo4t3i boo4to b1op 3bor. bor3ae bo5rant bor3as bor4d5an bor4dr bo4rei bo4rig bo4r3in bor2s b3ort. bor4ter bor6t5rat 3b2ot bot4e bote4r3 bo3th bot4sa bot4se bot4so bots3p bot4s3t bot3t bo4xel boy1 bö2bl 2b1öf bö2is b1öl 2b1p2 bpa2g b3po 2bq br2 2br. b2ra. bra3a 2b3rad 4b3raed b2rah bra5i4sc b2rak b2ram4 bran6dent bran6derk bran4d5r 4b3rat. bra3te brater4 bra6terg 4b3ratg bra4t3h brat3r b4raun bra5unte 2b3räd 2b3re. brech5s 6b5rechte 6brechtl 2bred 2bref 2b3reg b3reic 4breif brei6t5ei brei4t5r b3reiz 2brek breli3 b2rem brem4sc brem6sei brems5t b4ren. 4b3rent 2breo 2b3rep b2re3r b4res. b3rese 4b3rest b2ret bret6t5en 2b3reu b2rev bri4da 4brieb brie4fa brie6f5er 4b3riem b4rien b4riga b4rigi 4brigk bri6kans bri4ker bri4ku b2ril b4rina 4b3rind b2rio b4risc 4briss 4b3ritt b2roe 2b3roh 2b3rol bro4m3a 3b2ron b2ros 4b3rost bro4tan brot5ei bro4ter bro4t3h bro4t3o bro4t3r 2b3rou b2rö b2ruc bru4chu 4b3rueb 2bruf br4un 4b3rund bru3n4e bru4s4 brust3 bru4ter bru4t3h 2b3rüb 3brüc 2b1s bs3ach b2s3ad b4s3aer b2sak b4s3all bs3amb b4s3amt b4sanf b4s3ant b4s3anz b2sap b2sar b3sau bsau4m bsau4r b2s3är bs2ca bsch2 b4s5chec b4schef b5schu bs2cu bsde3 bsdes4 b2s3e2b b4s3ehr b4s3ein bse2n bsen3e b2s3ep bs3erd bs3er3e b4s3erf b4s3erg bs5e4r5in bs3erk b4s3erl bs3err b4s3ers bs3ert b5serv bs3erw bs3erz bse2t bs3eth bset6zer b2s3eu b2sex2 b4s3ide b2s3im bs5inte bs3iso b2sk bs4kur b2so2b bs3off b2s3op bso2r bs3orc b4s3ori bs5ort. bs5orts bs2öf bs2pe bsprun4 bs5rei bs3s2 bs2t bst5a4be bsta4d b4stade b4st3ak b4st3al bst5ank bst5art bs4t3as b4s5tauc bst5au4f5 bst5aus bs5teil bst5einb bst3e4k bste4m bst5ema bst5emi bst5ent bst5er5e bst5erf bst5erh bst5erk bst5ernt bst5er5o bst5erö bst5erz bs3tes4 bs4t5ess b3stet b5steue bst3h bst3i4d b4stin bst3io b4s3tip b4st3ob b4stoch b4stor b4strac b4s5trae b4strau bst5rauc b4s3trä bst5rep bst5ret bst5ros bst5rue b4strü b4stun b4stüb b2sty bs3umb bs3ums b2s3un bs3url b2sz b3s4zep 2bt bta4s btas4t5r b3te bt1h bti6scha btisch5l bti6scho bti6schw bto2n3 btran4 bts2t btu3en btü1 bub2 buben3 bu5chare buch5art buche4 bu4ch5ec buch5ere buch5erf buch5er6l bu6ch5er6s buch5er6w buch5er6z bu4chet buchs4p buch5ste bu2e buegel5e buer4o 2b3u2fe bug1 bu2gl bu4gra bul4l3a 2b3umf 2bumk 2bumr bu3na 3bund bun4dä b4undd bun4d5er bunde4s bun4din b4undn b4undz 2b3unf b3un3gn 2b3unh 2b3unl bun6t5er6z bun4tr 2bunw bur3c bur4gan bur4gar bur4g5au bur4gin bur4gl bur4gr bu3ri 2b3urn b3ursa b2us bu2s3a bu4scha busch5ar bus5chau bu6schei bu6sch5el bu6scheu bu4schl bu4sch5m bu4schn bu4sch5o bu4schr bu4schw busch5wa bus5ers bus5erw bu4sin buss4pa bus3ta bu2su bus3un bu4ßer but2a bu2t3r bü1c bügel5e bühre4 bür2s 2bv 2bw b3wa bwasse4 b3wä b3we b3wi b2y1 byo2 by3p byp4i bys2 2bz2 b3ze b3zu bzug2 bz4u3n 1ca cab2 ca3bl 3cac ca4ch cae3 caes2 ca3g2 cago3 ca1h ca3lab ca3lam cam4p3l c3ang ca2pe ca3r2a car3n2 carri3 car2s ca3s4a3 cas3te ca3t2h ca3ur caus2 caust3 ca1y2 cä1 cäs2 2cc c1ce c1ch cch4i 2c2d2 c3do 2ceae 2cear 2ceä 2ceb 2cec 1ced ce2dr 2cef 2cegr 1ceh ce1i cein2 2cej 2ceka cele3r 3cels cen1 cen3an cene2 ceng2 ce2ni ce2no cens2 3cent cen3un ce1o2 2ceop 1cer cere3u ce3ri ce4ris ce3ro ce3s2h ce3sti 2cet 3cet. ceta2 ce4t3am 3cett ce1u 1cé c1f cg2 2ch. 4chab ch3a4b3i4 2cha2c chach6sen. ch3ack ch3aep ch5aerm ch3aes 2chaf 5chafei cha2g ch3age ch3akt 5chalam chal5b chal6lein cha4mer ch5ampe 3chanc ch5andr ch5ange ch5angr ch5ansa ch5ansp ch5anst 4chanz 3chao ch3app 4char. 3chara ch5a4rab 3chard 4chare 5charta cha4sc ch3asp ch3atm 3chato 4chatt 4chatu 4chatz ch5ausf chau5spo ch5ausr ch5ausst ch5austr ch5ausw chau5t ch3äp ch3ärm ch3äs 1châ 2chb 2chc 2chd che3b 4ch5e4ben ch5echt che5ers 3chef. 4cheff 5chefin che4fr 3chefs 2cheh 4chehr 4chei ch3eil ch3eim ch5eis. ch5eise 4chelem che4len che4ler che5me ch4emi 5chemie 5chemik 4chemp che4neb ch5enge. che4nid che4no chen5sk chens4p 4chentc chen6ten 4chentf 4chents 4chentw cher3a che4rat cher6bes. 4ch5erbs cher6de. 6chergebn ch5erhi 4ch5ernt 6cherregu cher5sta ch5ertrag cher6trage 6cherzeu 4ch3ess 4cheta ch5e4tik 4ch3e2x3 1ché 2chf 2chg ch5gau 2chh 3chia chi5li 4chimm 4chimp 4chind 4ch3inf 4ch3inh ch5inko ch5inkr 4ch3ins 4ch3int 4ch3inv 3chip 3chiru chi5sta 3chit 2chj 2chk 2chl chl4a ch5lade ch5laend ch5lanz ch3lat ch5lauf. ch5läd ch5länd ch5lein ch4len chl4o ch2lu 2chm ch2me 2chn2 chn4e ch4nep chner6ei. chn4i 2cho. cho3ch ch3oel 4choen 3choer ch3off chof4s3 cho5l4a ch3orc 4chord cho4rei 5chores 5chors. ch5orts 3chorw ch2os 3chosl ch3öl 2chön 3chör 2chp chr2 2chra ch3rab ch3rad ch3ras ch3rat 2chrä 2ch2re ch3reh ch3reu ch3rev ch3rh ch3rin 5christ 4chrit 4chroe ch3rol 5chromo 3chron ch3ros 2chrö 2chru 2chs ch4sm ch6spani ch6spart chstro4 2cht ch4tang cht6en. ch4t5ruh 4chue 4chuf 4chuh chu2n 4ch3unf ch3uni 4chunt 4chunv ch3urs ch3urt 4chut chut4t3 2chü 2chv 2chw 2chz ci2a ci1c ci3es c3ind cing3 cins2 c3int ci2s1 1cit c2k 2ck. 2ck1a 3cka. cka2b ck3a2c cka2m cka2n cka2r 3ckard 3ckat ck3atm 3ckau. 3ckaue 2ck1ä 2ckb 2ckc 2ckd 1cke 2cke2c 4ckeff 2ckeh ck3ehe 2ck3ei cke4la 4ckelek 4ckelem ckelti4 4ckemp 6ckensem cken4s5o ckens5tur 6ckente. 6ck5enten 4ckentf cken6trop 4ckentw cke4rec 6ckeremi cker6fül 6ckergeb 6ck5erken cker6ker 6ck5er6lau 4ck5erni 6ck5ernst 4ck3ero ck6ers. 4ckerz. cker6zeugn 4ck3ese 2ck3eu 2ckex 2ckf 2ckg 2ckh 1cki 2ck3i2d 4ck3ind 4ck3inh 4ckink 4ck3inn 4ck3ins 4ckint 3ckis 2ckj 2ckk 2ck3l 2ckm 2ck3n ck1o2 2ckob ckoe2 2ckof 2ckor ck1ö2 2ckp 2ck3r 2cks ck5sac ck4sar ck4sint ck5stae cks5tate cks4tec cks4to cksto4r ck3str 2ckt ck4tar 1cku2 2ckue 2ck3uh ck3umb 4ck3ums 4ckumw 4ck3una ck3unf 4ckuni 4ckunt 2ck3up 2ck3ur 2ckv 2ckw 1cky 2ckz c2l2 clet2 cle4vel clien4 clin4g cli2p clip3a 1clo clo3ch 1clu2 cm2 c2mi 1co coca3 co3ch co2de code5s co3g coi2 co3it co2ke cola3s co4leu colle6ge co3l4o com4te. comtes4 con3s continuati6 co2o 2cope co4pe. co3ra 2corb cor4da core3s cor5ti corvet4 cos3t 2cotc co2te co2u cou4c cou3si 2cout 1cô2 2c1p 2cq c2r 1cra c3rae c3rau c3rä 2cree 3crem cre4me 3cres2 3crew cros2 1cru cry2 2cs cs2a cs2f c2si c3s2ti c3s2tr 2ct cte2a cti2o2 ction3 ctur2 1c2u 2cua cul4u cup1 cu2pe cup3p cu2p3r cussi4 cus3t c2v c3ve 2cx 1cy cy3an. cybe2 1ç 1d da1a 2d3a2al d1ab 2dab. d4abab d4abae 4da4bak d2abä 2dabb 2dabd d2abe 4d3a4ben 2dabf 2dabg 2dabh dabi2 4da4b3it da4blo 2dabn 2da2bo dab4ra 4da4bre d4ab4ru d4ab4rü 2dabs 2dabt 2dabw 2dabz d1ac dach3a d4ache4 da4ch5er dach3o dach5ste dach5stu 4dachtz da5chung d1ad da4del. da4delg da4dels da2do dad2r da2e 3daec 2d3aeg 2d3aeh 4d3aemt dae4n3a d3aend 2d3aep 2daeq da3erf d5aerzt 2d3aeu dae3us 2d3aex d1af 2daff da3f2l dafo4n da3fra d1ag dagi4 dag2o da1h dah3l da3in 2d3air da3ism da3ist da4kad da2kn da4kro dal3a4d dal5aer da3lag da4lär da4lop da4lor da3lö 4d3alpe 4d3alte da3lü dam4e d3a4mei damen5s4 d5ammae d5amman 4d3ammä 4d3ampe d3ampu 2d3amt dana3e 4d3anal dan5alg da4nan d3a4na3t dan4ce. dan3d2 4d3anda 4d3anei 4d3a4n3eu 2danf 4d3anga d5angeb d3angs 2danh dani5er 4danim dan4kal dan4kan d5anker dan6k5erf dan4kl dan5kla dan4k3o dan4kr 4danle 4d3anna 2d3a2no 2dans d3ansc danta4 4dantr 4dantw d4anz. d3anze d4anzen 4d3anzu 4d3anzü dan4zw 2d1ap d2apa 3dapol da4por da2pu da2ra dar3an dar3as darb2 5darbi 2darc dar4dar dar4de dard5ei dard5er dar4do dar4dr dar4du dardwa5re 4d3area dar3ei dare4m dar5emi da4r5en5e d5a4rist dar4mar dar4m3i 4d5arres 4d3art. 4d3artd 4d3artg 4d3ar4th 4d3arti dar4t5in 4d3artl da2ru dar5um. 4darzt da4sche da5sei das6ein da3s2h da2sp 4d3assi da3st 4d3aste das4tra das4tu da3tei 4d3a4tel date4n3 da2th dati4v3 2d3atl 2d3atm dat4st 4d3atta datum4 2d3aud dauer5e 2d3au2f3 2d3aug dau2i 2d3auk da3unt dauri3 2d3aus3 2d3au2ß 4dauto d1ax d1az da2zo 3däc 2d1äf 2d1äg 2d1äh 2d3ämt dä2n3a 2d3änd 2d1äp 2däq därm2 4d3ärzt 2d1ä2u dä3us 2däx 2db2 dbe4e dbi2e 2dc d3ch2 dchengene6 dco2r d1cr 2dd2 d3da dd4ae ddar4m3 d3dä dde2a ddel5e4c dde3ra d3dh ddha3 ddi2e dding5s d3do ddub2 dea2d de4adl de3ae de3a2t deb2 4d5e4bene 3debü de1c de4ca. de3chr 2d3ecu ded2 4d3e4del dede3s dedi4e de4dit dee2 de3eb de3eg 3de3em de3er de3es de3et 3de3eu 3deex de4fa. 2d3eff def2l deg2 2d3egg deh2a de5hop 2d3ehr 4dehyds de4ic dei6ch5er de5i4den 2d3eie 2d3eig de3im 4dein. 4d3einb de3in4d 4d3eine de5in4fo de5infr d3eing dein6gen 4deinh 4d3eink 4d3einl 4d3einm 4d3eino 4d3einr 4deins. 4d5einsa de5in4se dein6sta dein6str dein6ter 5d4e3in4v 4d3einw de3io de3i4si d4e3ism dei4sp de3ist 2dekz del5ach de4l3am dela4n del5ano de4l5ant dela4t del5ate de4l5aug deld2 de5le. de4lef de4l5ei4g 4d3elek 4deleme del5end del5erk del5ern deler4r del5erz 4d3elf. 4d5elfe. 4d3elfm deli4ne del5inn delk2 del4l5an del4lar delle4 del4l5eb del4lei dell5eic del4l5er delmi4 de4l3ob de4l3op del4san del4sas del6s5int del6s5pan del6spar del6spat del4spr dem4ar de4mau dement4 de6m5entg demi4e 4d3empf d4en. dena4b de4na4g de3n4am de4n3an de5n4arr dende4n 4d3endh 4d3endk dend4r dend4s dend4u dene4b de4n3e4d de4n5end de4n5eng de4nep den5erb den5erei 4d5energ de4n5ero de4n5erö den5ers de4n5ert de4nerw den3f2 4d5en4ge. 6d5engeln 6d5en6gels den6gen. 4d5engli de4nid de4n3im den4k5ak den6kerl den4k5ob de4nob d4ens den4sur 4d3entd 4d3entf 4d3entg den3th 4d3entk 4dentla 4d3entn 4dentw 4dentz den6z5erf den4zym 2deol de3p2f dep2l depo4t de3ra. der3ab de5rabi der5a4de der5aen de5raet de5raeu der3af der3a4g der3ak der5alb der5alt der5ame dera4n de5ran. de5rand der5ane der5ant der5anz de4r3ap dera4s der5asi der5asp de4r3än 4d3erbs 4derdb de4r3e4b de4r5eck der5edi de4r5eic der5eif 6dereigni der6eini der5eis. de4rele der5ell de4remi der5ende de4r5en5e der5enge de4r5ens der5ente der5entg de4r5enz der6er. derer6de derer5e der4erf de4r5erh derer5n de4rert dere4t der5eta de4r3eu derf4 der5fl derg2 6dergebn de4r3id de4r3i4m der5inb der5inner de6r5innu derin6teg derk2 der4nal der5o6ber deroe4 der5oef de4ror de3rot derö2 derr2 der3s4k der5stau dert5ende. der6ters 6dertrage de4ruh der4ump der6weck 4d3erz. 4d3erzv de4s3a4g de4s3ah de4sak des5amt des5ang des5ant des5anz de4sap de4s3au de6sche6f de4s3eb de4s3e4h de4s5eil de4s5ein des5elt de4s5en5e des5eng des5er5e des5erf des5erg des5erh des5erk des5erl des5erm des5ern des5ers des5erz dese4t des5eta desi5er. de4s3in de4spa des6park de4spot de4spra dess2 dess4e des6sens des6ser. des6sern des6sers des5taet dest5alt des5tät dest5eige dest5einsa de5stell des6temp des6t5erg de5stern des4tex de5stras des4tum de2su des3un de3ta deta4c 4d3e4tat deten3 deten4t 4d3e4thi de4tik 2d3etw de3uh 2d3eul de3um de3un de3url de3us 4d3e4vid dex3em de4x3er de4xis 4dexpe 4dexpo 2d1f2 dfang3 dfin4s df4la 2dg2 dga2t d2ge. dger4e d4ge3sh dge6tang dge4tau dge4t3e d3gl 2d1h2 dhau6eri dhek2 d3hu dh4un dia5l4ei di3arr dia3s2 dib2 di3ce di3chl di3cho dich7ter dichts4 di4ck5el 2d3i2co 4d3i4dea 4d3idee di4den 2di2dy di3e2d di2e3i di5elek die4n5e4b diener6l dien5ev die4ni die4no di5ens. dienst5rä dienter6mi die2p die4rei diese4 die4th dige4s dig2n di3go dig4ta dig4t3r di4lar di4l3au dilf2 4d3illu dil4s3t 2d3imb 2d3imp di3na 2d3ind d3infe 4d3info 4d3infr 3ding din4ga 2d3inh 2d3inj 2d3ink 4d3insc 4d3inse 4d3insp 4d3inst 4d3insu 4d3insz 2d3int 2d3inv di4odi dion5in dion3s4 di3ora dios2 di1p2 di3pt di4rak di4ran di3re 4d3i4re. 4d3i4ren 4d3i4rin 4d3i4ris 2d3irl 2d3irr di3s3a2 di4sag di4sas di4sch5r diskan4 2diso di4som di5s4per 2d3isr diss2 dist4 di3s4ta dis3te di4t3ak di4tal di4t3an di4t3au dite3c di4t5er5e di4t5erl di4t5erm di4t5ers di4t5erw dite3s dit5ins di4tob di2t3r dit3s di2t3u di3ve di3vi di2vr 2dj d2jar 2d1k2 dkab2 dkraf4 dkraft5 2d1l dl2a dlan4dr dlang5s d3le dl4er dle4r3a dli2f d3lo d3lö dl2v 2d1m 2d1n dn2a d3n2e dne3p dn2j dnus2 dnuss3 do3a2 d1ob 3d2oba do4bera do4berh do4beri do4bern do4berr 2dobj 2dobm 2dob2s 3doc do3chi do3e2b 2d3oe2d 2d3oe2f 2d3oek 2d3oel doen4 doe5ne doe2r doer3i doe4s3c 4d3o4fen 2d3off 2d3ohr3 3dok 3doli d3o2ly do4mal do4mar do3mi do4m5ing 2domn do2mu 3don. 3don2a don4au3 donaus4 doni3e 3donn 2dony do2o do3ope 2d3opf do3ra 4d3o4rak 4d3orbi 2d3orc 2d3ord 3dorf dor4f3a dor4f3ä dor4fei dor4f3i dor4f3l dor4fo dor4fr dor4f3u 2d3org 4d3orna 4d3orni 2d3ort dor4t3a dor4t5ei dor4ter dor4the dor4tr 3dosi dos2k 2dosm do3s2p dos5sa d3os2t dosta4s dosten4 do4stu dow2s d2o1x 2d1ö2d 2d1ö2f 2d1ök 2d1ö2l1 dö2s3c 2d1p2 d3pa 2dq dr2 3dra. 2drab 2d3rad d3raed 4d3raet d3raeu 2d3rag d2rah 4drahm 2d3rak 3dral 4d3rall d3ramm d3ramp dr4an 4d3rand 4d5rangl dran5k d3rass 4d3rast dra4t3a dra4th dra4tin d3raub 4d3rauc 4d3raum 4d3raup d3raus 4d3raut 2dräd d4räng 2d3rät 2d3räu 3dräue 2d3re. d4rea. 4dreal d4reas d4reck 2dred 2dref 2dreg 3dreh dre4h3a dre4hi dre4h3o 4dreic d4rei3e d4reik 4dreine 4dreins d4reir 4dreise drei5s6tr d4reiv d2rej 2drek 2drel dreli3 2drem 2dren dre3na drenn5s d2reo 2drep 2drer d2res 4d3res. dre6schm dre6schw 4d3rese 4d3resi dres6san dres6s5ei dres6sel dres6s5er6 dres4st 4d3rest d3resu 2dret 2drev d2rew 2drez d2ré 2d1rh 2d3ric 4d3rieg drie4n3 3drif 4d3riff d4rift 4d3rind 4d5ring. 2d3rip 4d3risi 4d3riss d2rit drit6terf 4d3ritu d2ro 2drob 4d3rock droe4s5c 4drogg 4drohr 5drohu dro4id. 4d3roll 3dros d3rose 2drot 2d3rou 2d3rov d3row drö4s3c 2d3rub 3d2ruc 2d3rud 4d3rue3b drue7cke d3rueh 2druf 2d3ruh 4drund d4runt 2d3rut 2d3rü3b drü5cke 2d3rüh 2d1s dsa5cha d2s3ad d4s3aem d2sak d4s3alk d4s3all d4s3ane d4s3ang d4s3ant d4s3anz d2sar ds5assi dsau2 d4s3auf dsau4m d4s3aus d4saut ds2äu ds2ca dsch2 d4schef d4schin dsch4r 5d4schun d2s3cr d2s3e2b dse2e dsee3i d2s3ef ds3ehr ds4eign d4s5eint d4s3ele d4s3emb d4s5e4mis ds5ende. dsen5er d4s3eng dsen3s d4s3ent d4s3er3e d4s3erf d4s3erh d4s3erk d4s3erl ds3err d4s3ers d4s3ert d4s3erz dse4t d4s3eta d4s3eth d2s3ev d2se2x2 dsha2 d3s4hak d2sid d4sind ds3ini d4s3int ds4kal d2ske d3s4kel d4skis d5sklav d2sko d2skr d2sku d3s4law d4sli d2so2b d2s3oe d2s3op dso2r d4s3ori d2sö ds4ped ds4pen ds4perb d4speri d2spl ds4por d6sporto d4sprae d4sprä d4sprei d4spro ds2pu dss2 ds3sa dst2 d6s5taeti ds5tauf d4s5täti d2ste d3stec d3stei d4steil d5stell d3s4tep d5s4tern d3steu d4sth ds2ti ds4til d4stoch ds4tol ds4top ds2tr ds5trad d5strei ds5treu. ds5treue ds2tu d2sty d4suml d4s3ums d2s3un d4s3url 2dt dta2d dt3agg dta2n dtan3e d3t2as dtas3t d3t2ax dtä2s d3tea dte3e dteer3 d3tem dte3na d3tep dte3ra d3tes dte5sta dti2d dto2b dto2r d3töp dt3ral dt3rec dtre3s dt1s2 dt3sa d3tur d3ty du3al. du3all du3alm du3alp du3alv du3ar du4bli du3ce due5bel due3br du3el du3en. du3ena du3enb due3p duern3 duese4 du3ett du2f 2d3ufe duf4ter duf4to duf4t3r du2ga 2d1uh du3ist d3u2kr du4l5arr du4l5art du4l3au du4l3ei du2lu 2d3umb 2d3umd 2d3u2m3e 2dumf 2dumg 2d3umh 2dumk 2duml d4ump 2dumr 4d3umsc 2d3umt 2d3umv du2n 2d3una 2d3und dun4de 2d3une 2d3unf d3unga 4d3ungl dungs3 2d3uni dun4kl 2dunr 4d3unsc 4dunsi dunst5r 2dunt 2dunw 2d3unz du3os dur4c durch3 2d3urk 2d3url 2d3urn dur2s 4d3ursa 2d3urt dusche4 du6sch5ec du6sch5ei du4schl du4schn du4sch5w du3sta dü3bel d3über düns3 dürn3 düse2 2dv dv4en 2dw dwa2 dwa5sche dwasse4 dwert5a dwesten6 dwes6tend 2dyac dy3an dydi2 dy3la dy3lä dy2le dy2sa dy4sl 2dz2 2e1a ea2be e2abi ea2bl ea2br ea2c ea3chi eadli4 ea2dr eae2 ea2g ea3ga4 ea3g2l ea2ka eak3e e2akr eal3ac eal3ak e3a4lei e5a4l5ent e5alen4z e5alerb e5a4l5er4g e5a4l5ert e3alex e2ali e3a4l3in ea4lob ea4l3on ea4lop e4alti4 ea2l3u2 eam3a eam3ä e2ame ea4mid eam3o eam3s2 eam3tu eanden4 e2ane eanet4 e3anf eanla6gent eannet4 ea4n3ob e4ant. ean4t3a4 ea2q ea2ra ear3ac ear3ak ea4r3ei ea4r5ene e4arer e2ari ear3n4 ea2ro ea2r3u e3a2sc e3asf easin4g5 ea2sp eas3s2 e2at eate2 eater3 e3atm eat3s2 e3at3t2 e2au. eau4fe e3auff eau5f4re eaug2 ea4u3n eaussen6dung. eau5ste ea2va e2az e1ä2 eba2g eb3anz eba2p3 e3bas ebein4s eb5eint e4b5eise ebe4lau ebe4ler ebel5in e3bem ebe4na ebe5n6au. ebenen5e e5benu ebe5rad eber5as ebe4rel e3bes ebe4s5e4h ebe4ses ebe4sor ebet4s3 eb3lag e4b3le. eb3lem eb4len eb5les eb4leu eb4lie e3bloc eb4loec e3blöc ebni2 e2bo2b ebo3ef ebö2s 2ebr e5brau eb2re e3bru e3brü eb4sac eb4s5ang eb4s3as eb4s3au eb4s5ele ebs5end ebs5ene eb4ser ebsi2 eb4sid eb4sis eb2sp ebs5panne ebs3pe eb3spi eb6s5taet eb4s5tät ebs5tem ebs5ten ebs3t4h ebs5tic ebs5tie ebs5treu eb2su e4bueb e4bunt ebu2t3 e2büb eby2t e1ce ech3ab ech3ae ech5ang ech5aus ech3ä e3che eche4c eche3e ech3ei echer6fah echer6zie e3chi echi3e e3chlo ech3lu ech3m e4ch3n 3echo. ech5obe echoe4f ech5org ech3ö4f e2chr ech3ra ech3rä ech3re echsau4 ech6s5en6d ech4s3o ech4spa ech4spo echst5ri echs4tu echt5erha echt6s5ac echt6s5ag echt6s5eid ech3uh ech3w e1ci e4ck. e4ckef ecke4n e4ckep ecker6ken e4ck5erw eck5erze eck4sor 3eckzä e1cl e3co e3cr ec3s e3cy e2da2b ed2ac eda5chu ed2ad ed2dr ede4al edel5au ede5n4er e3dens eden4sa eden4s5e eden4sp edens5ta edens5tu ede3o2 edere4 eder5er4 edero4 eder5ob eder5oe eder3ö ede3sk ede5stei edes4ti ede5str edia3l editen4 edi4tin ed2o ed4oc edost3 edpol4n e3d4rei ed3rik 3edris ed4s3al ed4seh ed4s3es edsi2 ed2sk ed2s3o ed4s3ti ed4sto ed4s3um ed3te edte5in4 edt2h edue3b e2d3ug e2dum edund4 ed2ü edü3b edy3 edys2 2ee ee3a2 e3e4ben eeb2l ee3bs ee1c ee2ce e3e2ck eede3s4 eedi4e ee2dr eed3s2 ee1e2 eee4r e3eff eef2l ee3fo eef3s eeg2 ee4hep e3ehr e1ei ee3ig. ee3imp ee5in4se ee3i4sc eei4sp e3e4lek e3elf eem4a ee5man e3emb e3emp ee2na ee3n4ac ee3nad ee3nae eena4g ee3nas een3er een4o ee5nor een3sh e3ent ee1o2 ee1p ee3po eer3al ee5ram eer3as e3erbt eer5eis. eer5eisa ee4r5en4g ee5r4e4s3 eeres6se eere4t eer5eti ee3rhi e3erhö e2eri e3erlo e3erlö e3ermä eero4be eer5oef ee3ros e3eröf ee3rös eer3sh eer4und eerz2 e5erzeu ee1s ee3sh ee3s2l ee3sp e3ess ees2t ee4tat eet5ein ee2th ee4tik ee3t4r ee1u eeu2f eeun2 eewa4r e1e2x1 e1f 2efa e2f3ad e4f3aeu e2f3a2g ef5akti ef3ana e4farc e2fat ef3auf ef3aus e4fähn e2fäu 2efe ef3ebe efecht4 ef3edi e4f5eing efe4l5ei efel7ler efe2n efen3e e4f5ener e4f3enk e4f3ent efere4 efer5eg efer6gebn eferin6d e4f3eta e2fex ef4f3as 3effek ef4fle ef4fli efig3s e4f3ins e2fj ef2le ef4lue e3f4lü 2efo e2fob e2f3of e4f3ora ef2r ef3rat e5fris ef3rol ef3rom ef3s2c efs2p efste4h ef3s4tr eft5anz ef4tei eft5erkr ef2th ef4top ef4t3ri ef4t3ro eft2s ef3ums 2eg egab4r ega4l5in ega2m eg2äh egd2 ege5in4s ege5in4t ege4l5ac ege4l5au ege4lec ege6l5ei6er egelenkser6s ege4ler ege4l5in ege4lo egena4 ege4nag egen5ec ege6nero ege4rak ege4ral ege4ran ege4r5as ege6reck ege6rend egeren6g ege6rers egerin6d ege6rin6g egerin6t ege6s5tro ege3u egg2l eg3ins egler5e eg3nei egori4e eg3rän eg4sal egs2c eg3seh eg3s4e3l egse4r egsgene6rat eg3spe eg4stä egus3t e2gy e1ha eh3ach eh3aka eha3kl ehalt4s e4h3ans e4h3ant eh3anz e4h3app e4harz eha4sc eh3aug eh5ausz e1hä e1he eh3eff ehe3id e4hein ehein4s eh3e4la 3e4heli eh3elt 3e4hema eh3emb e4h3e4mi e3hen ehen4se ehens5ei 3ehepa eh3epi eher4an eher4fa eh5erfah eher4fo eher6gebn eher4ke eher4le eh5ersta eher4za eher4zä ehe5str e1hi e2h3id eh3ill eh3imb eh3inf e4h3ins ehi2r ehi2t ehla4c eh3lae eh3lam ehl3ap eh4l3as eh3lat ehl3au eh3lä eh4l5e4be eh4lel ehle4n eh3leu ehlkop4 eh4l3oe ehl3o4r eh2l3ö ehl6s5ein ehl4sin 2ehm eh4mab eh4mant ehm6ens ehmen6se ehmen6sp ehmest5 eh3mu eh3nad ehn3e4c eh3nel eh3no ehn6s5eid e1ho eho2l eh3oly eho2p eh3ope eh3org e1hö eh3öff ehö4r5er ehra2 ehr3ag ehr3ak ehr3an ehr3ap ehr3än ehre4c ehr5eck ehr5ei. ehr5ein eh3ren ehre4n5e ehren5s6t ehrer6fa ehrer6la ehr5er6tr ehre3s eh3reu eh3rie eh3roc eh3roe ehr3of eh3rom eh3rot eh3rö ehr6sein ehr4ser ehr6s5tur ehs2 eh3sh eh3sk ehst2 eh3sta eh5stei eh3str eh3stu 2eht eh3t2a eh3te eh5ther e1hu eh3unf e4huni ehu3s4a e1hü eh3w e1hy 2ei1a2 2eiä ei4b5aer ei4b3ak ei4bär eibe3e ei4b5ele ei4bid ei4b5las ei4bli ei4b5rau ei4brea eibu4t ei4b5ute ei3ce eiche4n eich3r ei3cl e2id ei4dar ei4dau 5eidech ei4d5eis eid5erfü eides4t eide5ste eidi4e 4eidn eid4str e2i1e eie4be eie2d eie3f4 eie2l eie2m 2eie2n eienge4 eien3s eie4r3a eierei6s ei5ereu 5eiersu eie2t ei3f4lo eif5lut e2ig 2eig. ei4g3ak 4eige. eige5in4 e5igel. 5eigene. ei4g5erf ei4glo ei4glö ei2g3n 3eigne 3eignu ei2go2 ei4g5rad ei4g5rat 2eigs eig3s4p eig5str 2eigt 2eigu 4eigw ei4kak ei4k5ank ei4kli ei4klo ei4k3ri ei4l3ab ei4lam eila4n ei4l5ane ei4l5ang ei4lant ei4l5anz ei4lar 4eil3c eild2 ei4lein eiler6kl ei6l5erwa eilf2 ei4l5inf ei4l5ins eil4ip ei4lob ei4l3op ei4mab ei4m3a4g eim5all eim5alp ei4m5ans ei4map eima4ta eima6ter eima4to eim5aus e4ime ei4m5ent ei4m5erl ei4m3i4d ei4moe eim3sa ei4mur eina4b ein3a4d ein3ae 4einam ei4n3an ein3a4s 4einat ei2n3ä ein3da ein6d5erk ein4duk ein4dus 4eineb eine5inn ein5en6zy ein6er. eine5ras ein5erbe ein5erkl ein5erkr ein5er6la ei6n5er6sc ei6n5er6tr ei4n5ess ei4n5e4ti ei4neu ein6fant ein4fek ein4fiz 5einflus 4einfo ein4fo. ein4fra eing2 e3ing. e3ingt 4einhab ei4n3id 4einie e3i4nit eink2 ein6karn 3einmi ein3n2 ein4nen ein6nere ei2n3o2 5einord ein4seb ein6seln ein4sid ein6stal ein6star ein4sul e5insyn ein4sz ein4teg ein6terf ein6terp 5eintrag ein6trig 5eintrit eint4s ein5tsc 2einu e4inver ein4ves ei1o eio2b eio2p eio2s ei1p eip2f 2eir eir2c e3irr eis5ala eis5alt eis5ane ei4s5ant ei4sar 2eisc eisch5er6k ei6schertr ei6scher6z ei6schin eisch5war ei6s5elas ei6s5en6te. eise5ra ei4s5erf ei4s5erg ei4s5erh ei4s5er4l ei4serm ei6s5er6sa eis5ersp ei6s5erst ei4s5erw ei4s5erz eises4s ei4sex 3eisho eis3id ei3s4ky ei4soe ei4som ei4s3or ei2sö ei3spe ei3spr eis6s5chen ei5stel eisterin6f ei5stue ei4s3um e2it 2eita ei4t3ab eit5aer eit5alb eit5alk ei4t3an ei4tap ei4t3ar ei4tas ei4tat 2eitä ei4t3är 4eite. eite4m eit5emi 4eiten eitende6m ei5t6er. eit6err ei4tess ei2t3h 4eiti ei4t3in eito4r ei4trau ei4t3ro 4eits eits5a4g eitt4 eit5tr ei4t3um ei4t3ur eit3z2 2eiv ei4zar ei4z5eig ei4z5ins ei4z5int e2jak 2e3ju 2eka ekaden6z5 ek4ar ek2ä 1ekd e1ke eke2n e1ki e1k2l ek4lo ek2n eko4man ek4or ekor4da 2ek2r ek2sa ek4s5te 2ekt ek4t3ae ekt5akt ek4tan ekt5ank ek5tante ek4t3at ek4tau ek2t3ä ek4t3eb ek4t3e4l ek4tep ekt5erf ekt5erg ekt5erk ek4t5erl ek4t5err ek4t5erz ek2th ek4t5ins ekt5int ek4t3ob ekt5ret 2ek2u ekue3b ek2ü ekü3b e3k2w 1ekz e1la e2l3aa el3abb ela4ben e3labi e4labk ela4br el3abu e4lada el3add el3aef e2l3af e4laho e2l3ak e3lake ela2l e4l3ama el3amb e4l3ame el3amm e4l3ana e4lanb e4landa e4lanf e4lanh ela3n4i e4l3ank e4l3anm el3ann e4lanp el3ans el3anz e2l3ap e2l3ar ela4ri el3a4si el3asp el3atl el3atr e4l3att el3au. el5aufg el5aufl el3auk el5ausb el5ausl el5ausr e1lä e3läd el3äf 3el4bis elb4lei elb2r elbs2 elb3sl elb6star elb4ste elb6stim elb4st5o elb4stu 2el1c elda4r el4d5ari el4d5er4f eld5erhe eld5erho eld5erhö el6d5erpr el6d5er6sa eld5ersp eld5erst eld5ertr el6d5er6we el4do4b elds2 eld3st 2ele. 4elea elea4r e6l5e6bene el5echt e3lecl el3edi ele4g5er4 2eleh el5ehe. 4elei e6l5ei6ern el3ei4f el3ei4l el5einb e4l5einf e4l5eing e4l5einh e4l5eink e4l5einl el5einn e4l5einr e4l5eins el5einto e4l5einz el5eisf el3eiw 5elektr e2lel el3elb el3ele el3eli el3ell el3els e2lem e3lem. e3lema el3emb 3eleme el3e4mi e3lemm el3emp 4elen. elena4 el5ener elen4ka elen6klo elen3s e4l5ense e4l5ents e4lentw el5enzi el3epe 4eler e5ler. e6l5er6fah e6lerfin e4l5erfo e4l5erga e4l5ergä e6lergeb eler5h elerin6t e4l5erke e4l5ernä e4l5eroe e4l3erö el3err e4ler4ru el5ersa el3erw e4l5erzä eles4p el3ess ele5ste el5e4tag ele4tik elet4ta e5leut ele2x e3lex. el3ex3e el3exk el3ext elf2a 3elfd elf2l elf3st elgi5er. elgi5ers el3g2l elg2r e2lid e3lie eli5ef. eli5eff eli5efs elif3 e4l3i4ma e4l3imb el3imp el3inh el5init el3inj eli5no el5inso e4l3inv el3i4on e4l3iso eli4t3h el4kanl elk4ar elke4n elk2r elk5sta ell5akt el4larb ellar4c el4l5arm ellar6ma el4l5art ell5aufb el6lauft 4ellä el3le. ell5eing ell5einh ell5einr ell5eins el4l3el el3len ellen5s4 ell4er eller7ge eller6tra eller6zeu el4lid ell5inh el4l5inv 3ellip el4l3or ell3s4k elm4stu 2elo e2l3oa e4loel elo4fe e4lonk e4l3opf el3orb el3orc el3o4ri el3orn el3ort el3osz e3lot e2lov el4sb el4s5ein elsgene6 el4s3ol el4strü el4sun el4t5ans elt5art el4t3e4k elt5eli el4t5ent elt5er6be elt5erd elt5er4f elt5erhe elt5erk elter6ke elt5er6le elter4n elt5ero elt5er6sc elt5er6tr elter6zeu el3thü el4t3i4b elt3se elt5spo elts4tr e1lu e2lum el3umb e2l3u2r el3use elu2t el3ute e4l3uti el3uto e1lü e2lya el4z5aep el4z3ar el4zäp el4z5ene el4zoe e1m e4mago em3akk e4m5alar e4m3alk e4manb e4manf e4manh e4m3anm e4manor e4manp e4manr e4m3ans e4manw e4manz e4m3asp ema3to em3aus 3embol 3embry em4dae em2dä em2dr em4due em2dü e2m3e2b e2mef e2meg eme4n3e emen6gel e4mengt emen6t5ak emen6tan emen4t5h emen4tu e2meo e2mep em3e4po eme4r3a emerin6t emer4le emes3t e2m3ex emi4e3i emie3s 4emil emin4a e4m3inf e4m3inh e4m3inn e4m3ins e4m3int e4m3inv 3e2mir emi6scha e5mitg emi3tr em4m3ap emma3u em4m3ei e4moel emo3s 5e4motio 3empfa 3emp3fä em3pfl 3emph empi4re em4p3le emp5lin empo3s em4san em4s3au em4sim em4spa ems4por ems5tau em5stu 3emuls em3una e3mur e3mus en1a e3na. e2naa en3ab3i ena2c en5ach. e3naep ena5er. e4naho en3a4ke e3nal. e3nale ena3li 2enam ena2n ena4pa en3ark ena4sc e4natl en5atom enat4s3 e4natt enau4f3 enauto6re ena2x en1ä e2näl e2när 4enärm 4enbewu 4enbom en4ce. en3dac enda4d end3ak en4d3al en4d5ang end5eins ende5int ende4l5ä endes4p ende5sta ende5str en4d3ex en4do4b 3endog en5d4ort en4dost en4dox end6rif end5rom end5s4au end3s4l ends4p end2ü 2ene. e5nece en3ech ene4ck e4n3eff en3e4ge ene2h en3ehe e5nehm en3ehr e5neien 4eneigu en3elb en3elc en3e4le en3elf e4n3eli e4n3elt 4enem. en3e4mi 4e3nen. enens4 en5envi e4n5enzi en3epe en3epi en3epo e2n3e2q 4e5ner. en4era e4n3erd ener5ei ener6ei. en5ereig e4n5erek en5erfa e4n5erfo e4nerg en5erge 5energi en5ergu e4n3erh e4n3erl e4n5ermi e4n5ermo 4enern. e4n5erna ener5ob ener5oef ene5roes ene5rös e4n3erp e4n3err 4eners. e4n5ersa e4n5ersp en3erw e4nerwi e4n3erz 4enes. ene4tag e4n3eth en3eul 4eneut en3eva e4ne2x enf2a enf5einh en5fes 3engad 3engag 5engelh engel6st enge6ne. enge6nen engerin6s 5englis en3gna en3gno 3engp eng3s4c enhof5s 2enic en3ide e3nie eni5er. eni5era eni5erp eni5ers. eni5erv en3i4ko en3ill eni2m en3ima en3imi eni2o e4n3ion 2enis eni4sa en3iso e3niv enizi5e en4k5aus en6kenla en4k5er4f enk5erg en6k5erha en6k5erkr enker4l en6k5ersa 5enklav en4k5ort enk2ü 4enlic 4enmeng en4nef en6n5er6fa 3enniu enn5str e2n3oa en3o4be e4nober en3obo e4n3o4br e4n3oe4d e4n3oel e2n3of e2n3oh en3oli en3olm en3oly eno2n3 e4n3ope en3opf e4n3opi eno2r en5oran en3orc e4n3ord e4n3ori en3ork e4n3ost en3osz e5noti eno2w e1nö en3ö2d en5rei ensa5es ens5amte en4sanf ensau4s ensche6f en6schlic ens5ehr 5ensemb en4s5en5e ens5erei ense4t en4s5eta ensex5pe en5s4law en4s5off en4s5ont en5s6pen 4enst. enst5ak enst5alt en6starb 4enste. ens6tele 4ensten ens7teru 4enstes 4enstl 4enstm 4enstn en4stob en5stro 4ensts 4enstv ens5umv en4tanm entar6tik 4entba en4tela en4telä en4tema ent5emo en6t5en6de. enten6den. en6t5en6des ente4n5e 5entera ent5erben 5entero en6terre ente4t ent5eta 4entfo 3entgi 5entheb en4t3id 3entla 5entloh 3entlu 3entlü 5entnah en4t3ob ent5oel en4t3os 5entrah en5tré 5entrieg 5entropi en4ts 3entso 3en4tw 6entwert. 6entwerte 6entwerts 4entwet 3entz en1u e3nueg enu5ett enu4ma en4umm enu2r enu2t e4n3uto e3nüf e3nüg e3nül e3nüp enü3st e1ny enz2ä enze4ne enz5erfo en4z5erh en4z5erk enzer6ku enz5erla en4z5ero enz5erte enz5erwe en4z5erz en4zf en4z3i4d enzlan4 enzo4l 4enzuf 5enzyklo 3enzym 2eo e1ob1 eo4ber e2obo e2ob2r eo1c e3ochs eod2 e1oe2 eo3edi eo3em eo3en e3off e3okk eo3la e3o2ly e1on e3o4n3ae e5onatom e3o2nä eon4e e2ono eo1o e3o2pe e3opf e3ops e1or eo3ras eo3rau e3orb e3ord e3o4r3ei e3org eort2 eo1s2 e3os. eo3s4e e3oste eoti3e eo3ul. eo3uls eou2t e1ö2 ep2a epa2g epan6zerf epas6s5er ep3ega ep3ent ep3ex eph3el eph3em e1pi 3e4pid 3e2pig 3e2pik 3e4pile epin3g4 e3pio 3episo 3epit e2poc epoli3 3e4pos. ep2p3a ep4pei ep2p3f ep2p3l ep2pr e1pr ep2s3c ep3sh ep4t3ae ep4tal ep4tau ep2t3ä epter4s ept5erst e3pu epu2s e1pü 2eq 3equip er3ab. e3raba e4r3abb era4ben er3abr er3abt er3ach e3rad. er3add e5radi e4radj er3adr era3e4b e3raed er3aef er3aeh er3ae4m er3aer era5er. er3aes er5aeuß era4gen er3a4gi e3rago er3ahl era4ho er3aic e3rake er3akk e3rakl e4r3akt e3ral. e3rald e3rale eral4eb era6lent e3rali eralin6d era6ling er5alke er5allo er5allt er3amb er3amn e4ramp e4r3a4na e5rand. e5randen er5andr e4ranf er3ang e4ranga e4rangr e4ranh er3ank e4ranl e4r3a4no e4r3ans e6rantei e3ranu e4ranw er5anzu er5anzü e3rao e3rap er3apf er3apo er3are era4rie e4rarr e3ras. er3asb er3ask er5ass. er5assi er3a2ß e3rat e4ratel e4r3atl e4r3atm er3au e3raub e3rauc erau4f3 e4raufs e3raum e3raup e4raust er3a4va e3raw e4r3ax e3raz e1rä e3räd er3äf er3äh er3ä2m er3äp e2r3äs eräte3 er3ätz erbe5ers 3erbig erb4lo 5erbreg erb4sa er1c er5ch4e erche5i er3chl erd5ant 3erdäp 3erdb erdes4t 3erdg er4d5inn er4dob erd4os 3erdöl erd3st 2e3re. er5e4ben er2e2c er5echs ere4del er5e4dit ere3en er3e4he e3rehi e3reho er3ehr 4e3rei. 4e3reia 4e3reib erei4de e3reie e5reiga e5reigeh 5ereigni 4ereih 4ereik 4ereil er3ein e4r5einh e4reinl e4reins e4reint er5eisar e4r5eisb er5eisd er5eisf er5eisr erei5str er5eisv er5eisw 4ereit erei6t5erk 4ereiu e3reiv 4ereiz er3ele er5e4lit 4e3rem. er3emb er5e4mig ere4mis er3emp e4r3ems e4r3emu 4e3ren. e3rena er5endg erengene6 eren5st e4r5entn e3renz eren6z5en6d eren6z5er er3epi e4repos 4e3rer. 4ererb e4r5erde e4rergo e4r5erho erer4hö e4r3erk e4r3erl 4erern. e4r5erna e4r5erne e4r3ero 4er6ers. er5ersat e6r5ersche e4r5ersp e6r5erste er3ert e4r3eru 4ererv e4r5erwa e4r3erz 2eres e3res. e4r3ess4 e6r5esse ere5sta ere4tab e4r3eth eretri5 e4retu er3eul e4r5e4vid erf4a 5erfahru er3f4e 5erfolg. 5erfolgr 4erfort erf4ta erg5ant er4g5are 5ergebn er4g5ein er4g5elf 5ergenar 5ergenb 5ergene. 5ergenen 5ergenk 5ergenl 5ergenp 3ergom er4g3op erg3s4o erg3s4p erg5sta erg5sto erg5str erg5stu 5erhaltb er3ho e1ri e4r3iat e3rib 2eric erich6t5er6s e4r3ico 4erie erie3b4 erief4 erie5fl erie4ne erien5en eri5er. eri5ers. e3rif er3ima er3imb er3imm er3imp 4erin. e4r3ind e5rind. e3ring e4r3i4ni e4r3in5k er3inl 6erinnen 5erinneru 5erinnr er3ins e5rins. e4r3int e4r3inz e3rio e4r3ion e3ris 4erisc er3isl er3iso e4r3isr 3eri3tr 4erkaj er5kat erk5ends 5erkranku erk4sen erk4ser 5erkundu 5erläut 5erlebn 5erledi er5leg 5erlös. erls2 er3ma er5man er3mo erm2u erna5che er4nalg er4n5all er4n5alt ern5erbe ern5erei ern5erst erne4te er4n3ob er4nop erno4r er4n5ori erno4s 4ero. e3roa e3roba e3robb e3robi er3o4bl er3obm e3robo er3o4br er3obs e3roec eroe4d e3roeh e3roen er3oer e5roes. eroe4s5c er3off e3rofr e3rog e3rohl er3ohm e3roi e3rol e4r3oli e4r3oly e3rom ero3ma er3omb e3ron ero3na er5opal er3o4pe er3opf e3ropo er3o2r eror4a eror4e e3roro 4e3ros. e3rosa e3rose 5erosio e5rosit er5otter e3rou e3row er3ox e3rozy e3röc erö2d er4öh e3rös. erö4s3c erp2 er5pen 5erprobt 5erprobu er3rae er4rant er3rä 5erregt erri5er 5erringu ersau5re 5erscheinu ersch4l ersch4m ersch4r ers2e er3si er4sos 5ersparn er7stati 5erstatt er7statu erst3h er3sto ers4tod er4t3a4d er6t5akts er4tax ert5eck er3tel ert4er er4t5er4f er4t5er4h er4t5er4k er7tersc ert5erst er4t3ho ert5spr 2e1ru eruch4s5 e4rueb eruf4s3 e4r3uhr er3u2m erum3a er3und e4rundu er3unf er5unga er5ungl erungs5 e4r3unk erun3s er3up. 3e4rupt eru2r er3u4se er3uz e1rü ervenen6 5erwerb. er4z5erk erz3te erz4wi es3abl e2s3a2d e4s3aem e4s5aerz e4s3all e4s3alt e4s3ami esam4tr es4apa es3art e4s3ato e2s3a2v e2s3ax es3b esbi5er. e3scen e4s5cham esche6mi e6schent e6sch5er6f es4chi esch5op esch4u es3da ese2c ese3er es3ehr ese3i4m e3s4ek ese4len ese4ler esen4ac ese4neu esen5th ese5ref e5seri eserin6t es3erö esers4 eser3u4 e5serv ese5str e2s3e2x es3f e3sham es3han es4har es3he es3him es3hor 2esi esi5ers. e2s3i2k e4simp e4s3inf es3ini es3int e2sk es3ke es3kl es3lo es3m e2s3o2b e2s3od eso4de es3ofe eso3pa e4s3orc e4s3ori e1sö 2e1sp es4pec es4poe es6portp es5rei es4s3ad ess5alt es5sam essau4s 3essay 4essä 4essc es3sch es3se. esse5er esse3g esse6l5ers essen6sp 5essenz es3ser es6serfah ess5er6ho esser6hö esser6sae esser6sat es6ser6sä 4essk 4esso es4soe es4sof es2sö es4sph es4spu es4stec es4stop es3str es3stu essur4k estab4b e4stabg est5ans es5tant. est5anza esta4s est5asc e4s5tat. e4staum e5stein. e5steine e6st5eing est5eink est5einl est5einr est5einsc est5eint estell5a es4t5emi est5empo e4sten esten6ga est5engl es6ten6se est5entr est5ents ester6ken est5erkr est5ernä est5eroe es4t5er4ö ester6weit es3tes es4t5es4s es4thy es4t3id es5tij e3stil est5ing es4tins e4s5tipp e4stit estmo6de. es4tob e3stoc e3s4tol es4top es4t5org es4t5ort es2tr es5trac es5trag e5strang est5rate. e5strick e5strik es5tros e3strö e4strun e3stub e3s4tue e4stueb est5ums es4tu4r est5uri est5urk e4stüb es4tüm e3sub e3suh e4sumg e4s3ums e4s3umw es4und es3unt e3sup es3urb es3url es3urs es3urt esu2s es3w e3sy e2sz es3ze eß3ele eße3re e4ß3er4l et5a4ben et2a3c eta3e4b et3aeh et3agi etal4l5o et3a4mi eta3na e4tanh e5tanj et3ann et3ano et3arb et3art eta4t3r et5aufs et3auk et3äh 2ete et3eff et5e4he. e4t3eim et5eins e4t3eis etend4 eteng4 e4t5ents e4tentw eten6z5er e4t3e4pi ete4r3ä ete6r5eis etergene6 e4t5erhö eterich6 eter6loe e4t5er4lö eter5oe et3erö e5t6erta e3tes eth4a 3e4thik 3ethn 3ethol e2t3i2d eti4kar eti4kl eti2m eti3na et3ind e4t3inf etin4g3 e4t3inh et3ini eti4ta eti4th et3obs et3o2f eto4n5al eto4nar eto4ner etons4 et3orc e4t3ord e4t3org etra5e4d e6t5raum. et3rec et2ro et2sa et3sac ets3ae etscher5e etsch5wu ets5eng et4sim et4sof et3sö ets3pr et2st et3stä ets4toe et3s4tu et3stü et2su et4t3a4b et4tad et4tae et4t3ak et4t3a4m et4t5ang et4tanm et4t5ans et4tap et4t3at et2tä et4temb ette4n et4tesp et4t5ess ett5iso ett5ope et2tö et2tr ett3ru ett3sa et4t3um 2etu 3e2tui e4t3ums et3ups et3use etwa4r ety2l3 3e2tym 2etz et2za et2zä et4zed et4z5eig et4z5ene etz5er6sc et4z5erw etzes3 etze4t et4z5eti et4zoe et2zw eu1a2 eu4ble eu4bli eu3cha euch4ta euchter6 euch4to euch4t5r euder4e eudi4e eu1e eue2d eue3fa eue2m eue3p eue4rei euer5eif euer5eig euer5eis euerer6r euerer6s euerer6t eue4ro4 euer5of eu4esc e3u4ess eu3f2r eu2ga eug3an eu6g5endm eu6gense eu4gid eugin4f eu4g5in4g eu2gl eug3la eu4gre eugs2 eug3sp eug5sta eug5sti eug5stu eu3hu eui2 eu3id euil6le. eu3in3 3eukal e3um. e4ume eum3p eum4s3p eums5tu eums5tü eun2e eu4ni. eu4nio eu4nis eu1o2 e3up. eu3p2f e3upg 3euph eu4r3an eurasi5e eu4r5ast eura3t eur3c e4u3re eure5in4 eurin4f eur5in4s 3e4uro 4euron euro3s eur4so eur6s5tae eur4stä 2eus e3usar eu6sch5ei eu6schel eu4schl eu4schm eu6schue e5useff eu3s4ei e3usg e3usk e3usn eu3spr eus4s3c e3usst eu3sta eu3sto eu3s4t4r eu3su eu3tei eute5in4 eute5r4a eut2h 3eu3tha eut4o euts4 eut6scha eut6schm eut6schn eut6schr eut6schw euve4 2eux eu1y eu2za eu4zec eu4z5ent eu2zo eu2zw e1ü 2ev 3e2vak eval4s3 evan4z3 ev4en eve3r4i e2vl e2w3au ewebe5i eweb4s ewei4sc ewer4g ewer5te ewi2e e3win ewinde5s e3wir e3wit ew4st ewuerzes6 ewürzes6 2ex. 3exam 2exan ex4ans 3ex4ek e2x2el ex3ele ex3erz 2exes 2exf e1xi 3e2xil e2x3in ex4is ex3l ex3or 1exp 2expu 2exs 2exta 4extet ex4tin ext5rei 2extv 2exu e2xum ex3v 2e1xy ey1 eya2 ey2ne eys2 2ez e3za e4z3enn ez3erk eze3s4a ez2o e3zoh ezu2e ez2w é1 é2es égi2 élu2 ém2 ér2 éu2 è1 ène1 2ët ê1 ê2t 1fa fab2 2f3abb fa4ben 2fabf 2fabg 2f3a2b3l 2fabn f3a4bre 2fabs 2f3abt 2fabw 2fabz fa2ce fach3a fa4cheb fa4chel fa6cheng fa6chent fa6ch5en6z fa6ch5erf fach3i fach3o fach5sk fachs4p fa5chung fad3a fa4dan fa4del f3ader fa2di f3adl 2f3a2dr fad3t fa2e fae2c fa3eck fa4er f3aerm 4f3aerz faesser6 faes6s5ers faes6serw fae4ßer 4f3aetz f3aeug 2f3aex fah6l5ent faib2 fa2ke fa3la fal4kl falk3s fal4l3a fal4l5ei faller4 fal6lerf fal6lerg fal6l5erk fal6l5erm fal4lo fal6scha fal6schei fal6sch5l fal6schm fal6sch5w fal4t3r fal4zw fa4mei 2f3amp f3amt 3famy f4an. fa4nar fan4d5er fan4dre fan4d5ru fan4drü fan4gei fan4gl fan4gra fa4n3in 2f3ank2 2fanl 2fann 2fanr 2fanw 2f3anz fan5zi f1ap fa2po fa3r4a far4b3a far4b3ä far4bel far4b5er far4b5in far4b3l far4b3o far4b3r far4b3u far4m3a 4f3armi 2f3a2ro far4r3a far4rh 2f3art 2f3arz fa3s4a faser5e fa3sh 4f3assi 4f3astr fa2ß f1at fa2to 2fatt 2faue 2fauf f3aug f4aul f3ausb f3ausl 3fav fa2xa 1fä fä1c 2fäf fäh4r3u 2fäq 2f3ärm 2f3ärz fässer4 fäs6serk fäs6s5ers fäs6serw fä4ßer 2f3ätz 2fäug 2fäx 2fb2 fbau3 fbild5e 2f1c f3ch2 2fd2 fdi2e f3ds 1fe featu4 2f3ebb fe4ben fe2c fecht6e fechts5e 2f3eck fe4del fedi4e fe4dit fe2dr feein5 fef4e fe5fei fef4fr fef2l 2f3e2he fehl3a fehle4 feh4l5ei feh6lerinn f3eib 2f3eic fei4l3a fein6d5ei fei6n5erz fein4fo 4f3einl 4f3einn 4f3einq fe5ins. 4f3eint fei4nu 4f3einw 4f3einz 2f3eis 3fek fek4ta fek4t3r 3fel fe2la2 fel3ae fel3at fel3au fe2l3ä f4elb fel5bi felda4 fel4dac fel4d5ar fel4d5e4m fel6d5end fel6d5er6k fel4dra fel4dre fel3e4c 4f3e4lef fe4l3eg 4f3e4lek fe4l3en fe4l3er fe4les feli4n3 fell5ans fel6l5ers fel4lin fe2l3o fel6spir 6f5el6tern 2f3emb fem4m 2f3emp f4en. fe3nac fen3ad fe4na4g fe2nä fend2 fende4f fen5end fe4n5ent 4f5energ fen5er5o fen5erö fene4t fen3f2 4fengp fe4nid fen3in fen3i4t fenk2 fenn2 fe2n3o2 fen4sal fen7schl fen3sh fen5skl fens4po fen5sta fen5stu 4f5ente. 4f3entf 4fentla 4f3ents 4fentw 4fentz f4er. fer3ab fer3a4d fer3ae fer3al fe5rant fer5anz fer3as fe2r3ä 4ferd. ferde3 4ferde. 4ferden ferdes4 4ferds fe4r3e4b fer5eck 3ferei fe4rein fe4r5eis fer5eiw fer5ell fe4r5erd fe4r5er4g fe4r5erw fe4r3e4v fer6fahru fer6folg fer6fuel 4f5er4fül 6fergebn fe4r3i4d ferien5 ferin4t feri4on fer6lebn fermi4s ferner6k fer3oe fer3o4f ferr2 fer6regt fers4p 4f3e4rup 4f3erzä 2f3e2se fest5a4b fest5ak fest5al fest5an fest5ar fest5ei fes4tel fes6t5end fes6tero fes4tin fes4t3o4 fest5ru fe4tag fet5ero 4f3e4tik fet4t3a fet4t3h fetti5s fett3r fett3s 2feu. feuer5o 2f3eut f1ex 2fexp fe1y2 1fé 2f1f ffa5chu ff3a2d ffang5s ff3ans ff3ark ff3arm ffa2t ff3au f2f3e2b ffe2e3 f2f3ef f4f3eig ffei4n ffe5in. ff5einb ffe5ini ff5eink ff5eins ffel3a f4felem ffe2m f4f3emi ffe4rec ffe2t ffet3r f2fex fff2 f2f3im f2fj ffo2r ff3ori ff3ott f2f3ox ff3rak ff4ren ff3roa ff3rol ff4sal ff4s3au ffs5end ff4sin ff4soe ff4spu ff4stau ffs5tie ff4sto ffs5tut ff4s5tür ff4sum ff3ti f2f3um ff3urs f2fy 2fg2 fgas5te fgeb2 fge3na fger4 f3gh fglim4 2f1h fh4au fho4l3a 1fi 3fi. fi2ar fi3ask fi3at fici3 fi2do fid2s 2fi2dy fie3b4l fie4br fien3 fi3er4f fi4gec fi2g3r fi4kanf fi4kanr fi4k5ans fi4kanw fi4k3as fi4k3el fiker4s fi6k5erst fi4kin fi4kle fi4klo fi4klö fi2kn fiko2 fi4k3ob fi4k3op fi4kor fi2k3r fi4l3an fi4lau fi5laufb filauf6n filb2 fi4l3ei filen4 fi4l5end fi4lent fi4lep fi4les fi4l3in fil4ip fil4ma film5as fil4mä fil4m5ed fil4mei filo2 fi4lob fil3st fi2mi 2f3imp f4i3na fi4nant fi4nar fi4nel fi4net finge6ro 2f3inh 2f3inj 4f3inse fin4sp fin4ste fin5sti 2f3inv fi3ol 2f3i2ri fi4sch5a fi4schä fi6schei fi4schl fi4schn fi4sch5o fi4schr fi4sch5w fi3s2h 2f3i2so fi3s2p fiste4 fite2 fit3el fi3ti fi4tin fiti3s fito2 fi4t3or fi4xel fi2za f2jor 2f1k2 fkaken4 fka4t3i 2fl. f3lab 3f4laec f3laed 4flaen f3laeu flan6sch5l flanzer6 f3lap f4lasc f3lats f3lauf flauma4 3f4läc 2f3läd f3läu fl2e 2f3le. 2f3leb f2lee 4f3lein flei6sch5r 4f3leit flek5t 2f3ler 2f3li. f5lich. f5liche 2f3lig 2f3lil 3f4lim f3lind fli4ne 4f3ling 4f3lini 4f3lins f2lit f3loef f3lok 2f3lon 3f2lop 3f2lor flo3ra 5floss. 3floß 3f2lot flo2w 2f3löf f2lög f2luc f4lueg f3luem f3luf f4lug flu4g3a flu4ger 3flugz f3lup fl4ur flur3i 3f4luss flut3o f2lüg f3lüm 3flüs f2ly1 2f1m2 fma2d fmarschach6 f3mu 2f1n2 f3ne 1fo foa2 fodi2 2f3oe2f 2f3oek f3oele fo3eli foer4s5 2f3o2ly fo4nad fo4n3al fo4n3an fo4nap fo4nar fo4nau fond2 fonds3 foni4en fo4n3in fo4nop fon3s fo2nu f1op 2fo2pe fo3rad fo3rat 4fordn ford3s 2f3org 3form for4mae for4m5a4g for4mas for4m5au for4mä for4m5ei for4min for4mor forni5er. for6schl for4st forst5ei6 for6st5r for4t5ei for4t5er for4t3r fort3s4 fo3r2u fo3sta fo3to3 fo5toe 1fö föde3 2f1ö2f 2f1ök 2f1öl för2s förs5t 2f1p2 2fq fr2 f3ra. frach6ta frach6t5r 2f3rad fra4dei 4f3raed f3raet frage5i 2f3rah 2f3ral fra4m fram3a f2ran f3rand f3rann 2f3rap f3rase fra3st fras5ta 3fraß 3frau. f3raum fraus4 frau5se 2f3räd f2rän 2f3rät f3re. f4rean f5recht fre4e f3rege f3reh f4rei. freib4 4f3reic f4reie frei3f frei3k4 frei5str 2f3rek 2f3rel 3f2rem f3ren 2f3rep 3f2req f4resc 4f3resi fres4st f3rest f4rete f2reu 2f3rez f1rh 2f3ric fri3d 2f3rig 2f3rin frin6g5er f3rip 3f4risc fri6scha f4rist 2f3roc 2frol 3f2ron fro4n3a fro2s 3f2ruc f3rud f3rues fru6fere f3ruh f3rum f3rut früh3t f3rüs 2fs f3sac f2sad f4s3aer f2sak fs3all fs3alt fs3amp f2san fs3ana fs3ane fs3ang fs3anz f2sar f2s3as fs3a4te f4s3auf fsau4n f4saut f2sär fs3äus f2sca f2sce fsch2 f4schan fscha4o f4schef f4schro f2s3cr f2s3e2b fse2e fsee3i fs3ehr fs3ein f5seit f2s3el f4s3e4n3e f4s3ent f2s3er fse3r4u f5serv fse4t fs3eth f2si2d fs5iden fs3inf fs3ing fs3int f2ska f2sko f3s2ky fs1o f2sob f2soc fs3och f3soh f2sop f2so2r f1sp f4spas f4spat f4spel f2sph f4spot fs5prie fs3s2 f3sta fs5taeti f4stag f4s3tak f4stale f4s5tank f4s3tas f4s5täti f3stei f4s5teil f3stel f5stern fs3tes f3steu fs3th f3s2ti f4s3tip f4stit f3s2to fs4tras fs3trä fs5trol f5strom f3strö fs5trub f5s4tuec fs5tuete f4s5tüte fs3ums f2s3un f2s3ur f2s3ut 2ft f2ta. f4t3aeu ft3ala f5talg ft3all fta2n f4t3ana ft3and ft3ang f4t3ano f4t3ans ft3apf f2t3a2r ft3att ft3auf f2t3äu fte2c ft3eck ft3edi ft3e4he ft3eig ft3ein f4t3eis f4t5elek f4t3eli fter3a fter3o ft5ersa ftes4p f4t3es4s fte5stei ft3eth f4t3e4ti fte3u ftgu2 ftgut3 ft1h ft4hem f2t3id f3tik f2t3im f2tin ft3ind ft3inf f3ting ft3inh ft3inn ft3ins ft3iso ft3le f2t3o2b ft3oef ft3of f2tom fto2p ft3ope ft3org f2t3ot ft5raed f5tran ft3rau ft3ril ftritt4 ft3ruh fts1 ft2sa ftsa4g ftsau4 ft4sän ft3sch4 ft4se4h ftse4l ft4sem ft4send ft4seng ft4sep ft4ses ft4seu ft2si ft2so ft4staf ft6stier ft6streu ftu3en f2t3um ft3unb ft3und f4tunf ft3urk ft3url ft3urt ftwa2 ftz2 1fu fuchs5t f2ue 2f3ueb fuen4f5a fuen6fei fue4r f2uh fuku3 2ful fuld4 f3ult 2f3umb fu4mei fu2m3i f2umm 2fums fun6derg fun6d5erh fund3r fund5st 2f3unf 4f3ungl 2f3u2ni 3funk fun4ka fun6kerk fun4k3l fun4k3o fun4k3r funk3t fun4ku 2f3unl 2funm 2funr 2f3unt f2ur fu4re. 2f3urk 2f3url f2us 2fusc fu4schw fus4sa fus4sei fus4s5er4 fus4sp fu4ß3er 3fut 1fü 2füb fühl4s5c fühl4s5e fühl4st fü2r 2fv 2fw f1y 2fz2 fzeiten6 fzei6t5end fz3t fzu4gin fzug4le 1g 3ga. 2g3aal 2g3abd gabe3e gabe3i gabe3r 2gabf 2gabg gabi2 2g3a2bl gab5le gab4ri gab4ru gab4rü 4gabsc 4gabsta 4gabstä 4gabstu 4gabstü 4gabtr 2gabw gaby2 2gabz ga1c gade3s g4a3di 2g3adl gae5is. 4g3aend 2g3aep ga3erh g3aerz gaes3 gaeste5 ga3eta ga3fl 3gai ga3il. ga3int ga1k ga4kad 2g3akt ga4kus ga3l4a gala3e g3a4lar 4g3alau ga4l5en4d g3algo 4g3allt 4g3alta 4g3altd g3a2lu ga4m3al4 4g3amaz ga4meb ga4mec ga4mep ga4m3in gam5ma gamo2 gam3t ga2mu 4g3anal ga4nan gan5ato ga4nau g4anbr gan3d2 gan5erh gan5erk gan5ers 2ganf gan4gar gan6g5e6be gan6g5er6b gan4gr gan4g3u gan5inn gank2 4g3anke g5ankun 2ganl 4g3anmu ga4n3ob ga4nor 2ganp 2ganr 4g3ansi g5ansti 2ganw ga3ny gan4zw 2g3app 2garc garde3 4g3area ga4rena g3arg ga3rin 2g3ark 2g3arm ga3r4o gar2s 4g3arti 2g3arz 3gas ga2s3a ga2sä gasche4 ga5schu ga3se. ga4s3ei ga4s3el ga4s3e4m gas5endr ga4s5ent ga4serz gas3e4t ga4sin gas3is ga2so gas3s2 5gasse. 6gassess gas5tank gas5teig gas4tel gast5elt gas6tens gas4tin gas6t5rae gas4t5rä gas6trol ga4sum gat4a gat2h ga3tha 2g3atm ga4ts gau4eri gau2f ga3ufe 2g3aug ga3unt 4g3ausb 4gausd 4gausf 4gausg 4gausr 4g3auss g3ausw g3ausz 2g3aut g1äh 2g3änd 2g1äp 2g3ärz gä4st gäste3 2g1ät 2gb2 g3ba gb4au gbau3f g3bä gbi2e g3bl g3bo g3bu g3bü gby2t 2g1c 2gd g2dab gd2ad g2d3ak gd3all g2dan gd3anz gd3art gdä1 g2d3ei gd3els g4d3ent g2d3er gd3eth gdi2e gd3ins g2do2b g2dop g2d3ou gd3roc gd3roe g2d3rö gd3s2 gea2d gea2n gea2p ge3at ge4at. ge4ate 4g3ebbe geb4le geb4lin gebot4 ge1c ged2 gedi2 4gedig ge1e2 ge3eg geer3e ge2es geest3 ge3ev gef2 ge5far 2g3eff gegen3 gegene4 gegens4 ge3g2l ge2gn ge4h5erl geh5ste 2g3eid ge3im gei2n 4g3einb gein4di ge5in4fo 4g3eing gein4ha ge3ini 4g3einl ge3in4n 4g3einr gein6ten gein6ter ge3in4v 4g3einw ge3ir geise4 gei3sh ge3iso geis4s5c geist5r 2gek. gela4c gela4n ge4l5ano ge4l5ant ge4lanz g4elb gel5bi gelb5s gel4dem gelder4 gel6d5erh gel6derp gel6ders gel6dert gel6derw gel4do gel6drue gel4drü ge3lec ge4lef gelei6gen 4g3e4lek ge4l5end ge4l5en5e ge4l5ent gel5erd gel5er5e gel5erf gel5erg ge4l5erk ge4l5erl ge6l5erna gel5er5o ge4l5ers gel5erz ge4less gel3f gel4fe. gelgene6 gel5int gel3la ge4l3om ge5lot gel6s5chor gels4t gel5ste gel5sti g4elt gel6terh gelz2 gem4a ge4ma. 2g3emb 2g3emp gem2u gen4aes ge4nat ge5n4au. ge5n6auste 4genda. gend5in5 gend5ri gen6drit ge4neg gen4eh ge4n3el ge4nemi ge6n5ende ge4nep ge4n5er4b ge6n5erei ge4n5erf gen5er5in ge4n5erk ge4n5ern gen5erst ge4n5ert ge4n5esk ge4n5ess gen3f2 geng2 gen4ge. gen6geln gen6gels genger4 ge4nim ge4n3in genk2 gen3n2 ge4noc gen6s5amt gensch4 gen6semb gen6s5ert gen5ska gen5skl gen5sta gen5stie gen5str gen5stu genta6bl 4g5entfa 4g5entfe 4g3entg gen3tr 4g5entst 4gentur 4gentw ge4nun gen6z5art gen6z5eig ge3oh ge3oo geo4ri ge3ou ge3p2 ge3ra ger3ab gerabdru6 ger5adm ger5ala ger5alb ger5all ger5alp ger5alt ger5amp ge4r5ant 4gerdg ger5ecke ge4r5eid ger5eig 6g5ereign 4g5e4remi ger5ende ge4r5en5e ge4reng ge4r5en4s ge4r5ent ge4rerf ge4r5erh gerer6ke ger5ersa ge4r5er4w gerer4z gerin6de gerin6di gerin4f 4g5erklä ger4nau ger3ne 4g3ernt ger5obe ge3roc ge3rod ge3roe ge3ros ge3rot ger3o4v ge3rö ger6regu 4g5er4seh gers4p ger6wart ger6weit 6g5erwerb gerz2 g2e1s2 g4es. ges5anz ges5auf gesch4 ge4s3eb ge4s3ec ge3sei ge4s5ein 4g5e4sel. ge4s5elt ge3sen ge4s5er5e ge4s5erf ge4s5erz ge4s3ou ge4s3ph ge3spu ges3sa ges3se ges3sp ges3s4t ges4tan gest6ei ges5ten ge4s5ter ges3th ge4s5tur get5ange ge4tant ge4thi 4getik 4getow get2r ge4t5res get3sa get3s4p get3s4t get3t 4getui 2g3eul ge3unk ge3urt ge3u2t 2g1e2x1 2g1f2 gfa5chu g3fe 2gg gga2t g3ge ggeb2 ggen3s ggi3en gg2lo g2gn g2gof gg2r ggs2 2g1h gh2a ghafe4 3ghale gham3 3g2het gh1l g3ho 3gh2r ghs2 gh3sc gh2t3i gh3w g2i gi1a gib2l gich2 gicht3 gi2e gie3b gie3d gie3f4 gie3g2 gie3i gi5enab gie3n4e gienein6 gi3enk gi3enr gi3ens gie6r5eis gie5res gi5ergi gie5sp gie3st gif4t3r gift3s4 3gig 4g3i4gel gi2gu gik3a gi4kan gi4k3el gi4me. gi4mef gi4mes gi4met gi3na 2g3ind gin4di 2g3inf gin4ga 6gingeni gin4g3r 2g3in2h gi4nit 4g5inner gin4sa 4g3inse 4g3insf 4g3insp gin6standh gin4ste 2g3int 2g3inv 2giok gi4sch5w 4g3isel gi3sta giste4 3git gi3tu giu3s 2gj 2g1k2 g3ka g3kä g3ko gko3ef gkraf4 gkue3b gkü3b 2gl. gl2a 2g3lab 2g3lac 4gladu g5laend glaes5c 2g3lag 2glah 2g3lam 4gland glan4dr glan4za glan6z5er 2g3lap gla4sa 4g3late gl4au 4g3lauc g3laue 4g3lauf g3laut 2g3lav 2glaw 4g3länd g3lär gläs3c 4gläuf 2glb 2gle. g3leb 4glebi g4lebo g4lebö gle3c g3led gleer4f g2lef 2gleg 2g3leh 3g4leha 4gleib g4leic 4g3leid 4glein g4leisi glei6terk glei6t5er6sc glei4t5r g2lek g2lel g2lem 2glen g2lep 2gler glerei6g g3les g4les. 4glese g2let 4gleuc g4leur g2lew 2glh 2gli. 3g2lia 2glib 2glic 3g2lid 3g2lie 4g3lieb 4g3lief g3lieg 2glif g2lik 2glil g2lim 2glin glings5 g2lio gli3on gli3o4s 2g3lis 4glite g4litt g2liz g3lize gl2o g2loa g2lob g2loc 4g3loch 4gloew g2lof 4gloks g2lom g2lon g2lop 4glorb 2glos g2lot 2gloy 4glöch 2glöh 2glös 2glöw 2gls g3luch 4g3luef 2gluf 2glun 2g3lus 3glüc 2g3lüf g3lüg 2glw 3g2ly 2g1m gm4en gmen4tr gmen4tu gmi1 gmi2s gm4un 2gn. g2na. 2gnac g3naep 2gnag 2g3nah gna2k gna4l5er5 gna4l5in 2g3nam gn3ana 2gnaq 2gnar 2gnau g3näp 2gnb 2gnc 2gnd gn2e 2gneb g3neh 2gnei 2gnel gne2n gnen3e 4gn3ent gner6geb gne4ta gne4t3r 2gneu3 2gnf 2gng 2gnh g2nie g2nif g2nin 4gn3ing 4gnint 2g3ni2s3 gnise4 gniser5 2gnk2 2gnl 2gnm g2no 2gnob gno3r 4gnori 2g3not g3nov 2gnp 2gnr 2gn1s2 2gnt 3gnu. 3gnum. gn3ums g3nun 2gnv 2gnw g2ny 2gnz go2al goa3li g1ob 2gobj g2ob4l gob2s go1c 2g3o2e2f 2g3oeh 2g3oel go3enz g1of go2fe 2gog 2g3ohr go1i gol2a gol4d3a gol6d5eng gol4d3r golen3 gol4fa gol4fel gol6ferl gol4fl gol4f3r golf3s4 gon2a go4n3an go4n3at 2gope 2g3opf go4pos 2gopt go3rap 2g3ord 2g3org g4oro 2g3ort gos1 go2s3a go2si go3s2l go3ste 2g3osz go5thae got6t5erb got6t5erg got6t5erl got6t5erw got4th go1y 2g1ö2f 2g1öh 2g1öl 2g1p2 gp4la g3pu 2gq g3qi gr2 gr4ab gra4ba gra4bi gra4bl gra4dei gra6dend 4g3radl 4g3raed graes5c 2g3rah 2g3rak grammen6 gram6m5end gram6m5er g3ramp g5rand. 2gr4ar gra4ra gra4r3e gra4s3a gras5st g2rat gr4au 4g3raub grau5f 4g3raum grau5sk 2gräd gräs3c 4g3räub 2g3re. 2grea g2reb 2g3rec 4grede 4gredu g2ree 2g3ref gre4fr 4grege 4gregi 4gregl 4greic 4g3reih 4greim 4grein g2rem g2ren 4g3renn gren4za gren6z5ei gren6zer6f gren6zer6t gren4z5o g2rer g2res 4g3rese gres6ser6 gres4st 2grev 2grez 2g3ric gri2e 4g3rieg 4g3riem g5riese 2grig gril4l5a 4g3ring 4g3rinn g2ro gro4b3a gro4b5ei gro4bl gro4b3r 2groc gr4oe 4g3roec 4g3roeh groe5le 2g3roh 2grol gron2 4g3rose gros4s5c gros6s5el gros6senk 2g3röc 2gröh grö3le gruben5 grue5be 4g3ruec 4gruf. g4ruft 2g3ruh gr4un grun6dere grun4g 2g3rut grü3be 2g3rüc 2gs1 gsa2b g3sack g2sa2d g4saeh g2sa2k g4sall g4salt g4sama g4samt g3sani g4sant g2s3a2p g2sa2r gs3ars g2sas g4sato g3sau. g4sauf gsau4r g4saut g2sa2v g2säc g2säh g2sän g3sät gsby2 gsch4 g5schal g3schä g4sche4f g5schei gs4chen g3schl g3schn g3schr g3schu g3schü g3schw g2se gse2b gse2c gse2d g3seg gs2eh gs3ehr g3seil gse4kl gse2l g3sel. gse2m gse4n3e gsen5th gse2p gser3e gser5in gser3o gse4t gseu3 gs3e2v gse2x2 gsi2d g3sie g3sig gsi2k gsi2n g4s3ita gs4ki3e g2so2 g3so3c g3s2ol g3soz g3s4pac g3spek g3spit g5s6port. g5spule gsrue4c gsrü4c gs3s2 gssau4g gst2a gs5tabl g5stabs g3stad g5staer g3stah gs3tak gs5tank gs3tap g5stark g5start gs3tas gs5tat. gs5tate g5statu gs5tauc g3stäb gs3tät g5steig g5stein. g5steine g5stell gst5ent gster5e gs6t5erei gs4terz gs5the gs4thy g3stir gs3tit g5stock g3stör gs4tras g5s4trat gst5reit gst4ri gs4t5rit g5stroem g5strom. g5s4trop g3stüc g2su2 g3sub g4suh gs3un g3sup gs3ut 2gt gt3auf g3te gten3 g3ti gti4m gt3inh g3to gt2st gt3stu gtu3en gtu5ers gu3al. gu3am gu3ant gu3ar. gu3ark gu3ars gu2d3r 2gueb 2gued 2g1u2f 2g1uh gu3in. gu3ino gu3ins gu3is 2g3ulm 2g3umb gum4e 2gumf 2gumg 2gumk 2guml 2gumr 2g3ums 2g3umw 2g3una 4g3unem 2g3unf 4gunge4w 4g3ungl 2g3u2ni 2g3unk 2gunr 2gunt gure2 guren3 2g3url gur4t3h gur4t3r gurt3s 3gus1 gu2sa gu2sä guschi5 gus4s5er gus4s3o gus4sp gus4st gu4st gust5a4b gust5ein gus6t5en6de gus6terl gus4t3h gus3to gus4tr gu2t3a2 gutan5e gu4ted gut3ei gu4t5er4h gu2t3h gu2t3i gu2t3r gut4sa gut4sp gu2tu 2güb 3gür3 2gv g3ve 2gw g3wr 3gym 2gz2 gzeu4gi gzeugin6 g3zh ha2a ha3ak ha4b3ei ha4blä h3a4blu 2habn h3a2b3o h3a2br 2habw hach3a ha4ch5en hacher6be. hacher6ben hach5eri ha3chi hacks4 2hada ha4del hade4n haden6s5o ha4d3in h3adle hado2 h3a2dr ha3dri had3st haede4 h3aeff h3aehr 2haei ha3elb ha3e4n3e 4ha3er. 4h3aerz hae6s5chen 4h3aest 4h3aeug hae5us. haeu4s5c hae5usp h5affae h3affä haff4l haf3r haf4ta haf6t5erl haf4t3o haf4tr haft5rä haft4se haft6stem 2hagi ha2gl hago3 h3ahm 2hail 2haka ha4kad ha4kes h3akk ha2kr h3akro 2hal. ha3l4al ha3lam halan4c hal5ang h5alarm ha3lat hal4ba hal6bein hal4bel hal6b5ern hal4bin hal4bl hal4bo hal4b5ra hal4bri hal4bro hal4b5ru hal4b5rü halb5s 2hale hale4n ha6l5ents 2halh 2halk h5alkal hal4lan hal4l5au hal6l5ere hal6lerf hal6lerg haller6s hal6l5ersc hal6l5er6w hal4loe 2halp hal4sei hal4sp hal4sta hal4stu hal4su hal4tal hal4t5an hal4tei hal6t5erfo hal4th hal4t3r h3a4mei h5ameri hamot4 h3ampf 2h3amt h4an. 2hana hana3e ha4nal ha4nan 2hanb h4anbe 2hanc han4d3a4 h4ande han4d5er han4dob han4dr hand5ru hand5rü hand3s4 2hane ha4nem han4f3i han4f3l han4fo han6g5end han4gro 2hani han4k5er han4ko han4kr 2h3anl 2hano 2hanr 4h3ansc h3anth 2hanz h5anzei h5anzug h3apf ha2pl h3a2po h3a2pr ha3ra hara3d 2h3arb 2harc h4ard har4da h3area har4fa har4f5ei har4fr 2harg h3argu ha3rh ha3ri h3arm. h5armem h5armen h5armer h3arms har4ne harn3s h3a4rom har4th 4h3arti har4tr har4za har4zo 2hasa hasen3 has2h3 hasi5er ha3spo has4sa hasser4 has6s5erf has4sp hass3t h1a2ß ha2t3a hat5ein h3atl ha4t3ra ha4trä ha4t3re ha4trou 2hats h3attr hat4zer haub2 h3audi h3aufb 4h3aufd h3aufk h5aufla hau5f6lie hau5flu 4h3aufm 4haufn h3auf3s 4h3auft 4h3aufz 2haug h5auge. h3aukt hau4men hau4mer hau4sa hau4s3c hau4seh hau4sel hau6s5en6t hause4r hau6seri hau6serp hau4so haussen6 haus6sen. haus5sk haus5tau hau4s5ur hau4ta hauten4 haut5eng hau4t3i haut5s ha4ve. havil4 hä2c häde2 h3äff 2h3ähr 2häi hä2kl hä2la hä3ro 2h3ärz hä6s5chen 2h3äst 2häug 4hä3us. häu4s3c 4häusg 4häusk 4hä3usp 2hb2 hb4ar hba4ras hbar5sc hber4e 2h1c hchar4 hcre2 2hd2 hdan2 hdi2e h3ds he2ad hebe5in he2bl 3hebs 3hebt he5ch4e h3echs heck5sp hed2g he4dit hee4la he3e2m hee2n he3eng hee4rei hee2s hee2t he3eti he4fan he4fau he4f3ei he4f5erm 2heff he4f3id he4f5in4g he4f3le he4flo hef3s2 3heft hef4tan hef4tau heft3s he2fu he4hef h3ehr hei2a hei4da hei6d5ert h3eie h3eif h3eig hei4kl hei4lau he4im hei4mal hei4man hei4mar hei4mau hei4mei heimer6f hei4min hei4m3o heim3p hei4mu 4hein. hei4n3a hein4di h5eindr hei4n5e4b hein5e4c hei4neh hei6nene heinen6g hei4n5er h5eingab h5einkä hein5sk 4heio 4he3ism heis4st he3ist h5eitei he3i4ti heit4s3 h3eiw hei4za hei4zel hei6zene hei4zw he5kar hek2s3 hek4t3a he4l3an he4l3au hel3e4c 4h3e4lek h3elem hel5ent hel5ers he4less helf4s he4l5ing hel4l5au hel3le hel4m5an hel4mei 3helms he4l3oe he3l4or he2lö helsau4 2helt helt4s 2hemb hem4br 3hemd hemen3 he4mer h5e4miss 2h3emp he2na hena4g he4n3au he2nä hend4r hen5e4be he4nel hen5end he4n5en5e hen5ent he4n5enz he4nep hen5erei he4n5erf he4n5erk he4n5ero he4n5erö hen5ersc he4n5ert he4n5eta he4n5e4ti he4neu hen3f2 h3eng. hen4gag heng4le heng4r he4nil he4n3im he4n3in henke6l5i henk4lo henk4r hen6k5rin henmen6s henmi4 hen3ne hensch4 hen6semb hen6serk hen5sta hen5str hen5stu h3entc h5ente. h3entf h3entk h3ents 4hentw he4n3u hen3z2 he2o he3on heori4e he3pf 2hepi he3ra. her3a4b he3rae her3an he5rane 4herap herau4 her4big herb4st her3c 3herd. 3herds he4r3e4b he4r5eck her3ef 4hereig h5ereign he5reigr her6eini he6r5eis. her5eises he4rel he4r5en5e he4r5ent he3rer he4rerf he4r5erh he6r5ersc he4r5erw her4fas 4herfo h5er6folg herg2 6hergebn h5erheb he4r3id heri4e3 4herif he4r3il herin4d herin6fo he6r5in6nu herin6st herk2 4herke h5erklä h5erlaub her6lebn her6lös. her6löse h3ernä h5erneu her5no her3o4b he3rod her5oef h5eroer her3o4f he4r3oh he3rok heros3 h3erör h5er6regu hers4k 4hersta hert2 her3th her3tr heru4t he4r5ute 4herza her6zaep her4zap 4h3erzä her4zäp her6z5eng 4herzeu h5erzeugu heseen4 he3s2h hesi4e he3s2k hes4ser he3sta he5stei he5s6temp he5stro he3stu h3e4tap heter4z he3t2s 3hetz he3u4fe heu3g he3ums he3unf heu3r4a 3heusc he3xan 2hexp hey2 he3ye 1hè 2h1f2 hfel4la hfi4le. hfun2 2hg2 hgeb2 hge3n hgene6ri hgin4s 2h1h hh4au hhaustuer6 hhaustür6 hhoh2 hhohl3 2hi. hi5a6lerw hi3a2m hi2ar hi3a2s h3iat hi3ce hich6t5er hi4dea hi4dio 2hido hi3dr hi2e hied4s3 3hiera hie4rei hier3i hie4rin hiesser6 hie3st hiff4r h3i4gel hi2k3r hi5la. hi4l3a4d hi4l3an hil3c hil4dr hil4f3a hil4fä hilfe5s hil4fl hil4fr hili4e hi4lip 2hill 2hima 2hime h3i4mit h3imma 2himp h3impe h3impl h3impo hi3nak hi3nal hi3nam hi3nap hi3nas hinau4 hinen3 hing4a hing4l hing4r 2hi3n4i hin3n2 2hino hins2 hin4t5an 3hinw 2hi2o hi3ob hi3os hip1 hi2pa hi4pei hi4pen hi2ph hi2pi hi2p3l hi2po2 hi2p3r hips2 hipt4 hi2pu 2hire hir4m3a hir4m3i hirn3 hir4ner hirs2 hir6scha 2his. hi4schl hi4schr hi2se h3i2so his2p hi3spo hi3spr his4st hit2a hi3tac hi4t3an hi4tel hi4tro hit3z4e hi4van hivar4t hi2v3o hi2vr hi2vu 2h1k2 hke3na 2hl h3labo h5lache hlach6t5r h5laeche h5laed hlaf3l hla4gei hla4g3r h3lake hl3akt hlammer6 hla2n hlan4d5a hlan4dr hl3ano hl3ans hl3arb hl3art h3las hl3asp h5laus. h3laut hl3ax h3l4ay h5läche hl3är h3läs hlb2 hlbe3n hl1c hl3d2 hld4a hle3e2 h4legel h4leic h4leie hlei4fa hl5einb hl5eing hle5in6ha hl5eink h4l5einl hl5eise hl3ele hl3emp h5len. hl5en6dun hlenen5e hlen5sk h4l5entd h4l5ents h4lentw hl4enz h2lep hler3a hler5eig h6l5er6nae h4l5er4nä hler6ze. hler6zen h4lesi h4l3ess hle5sta h2leu h3leuc hlf2 hlg2 hlge3n h2lie h3lieb h3lied h3lieg h2lif h2lim hl3imp h4l3inf hlings5 h5lings. h4lingt hl3inh h4l5inst hl3int h4l3inv h2lip h4liss h2lit h3lite hlk2 hlo2b hl3obe h4loess h2lo2f h2loh hlon3 h2l3o2p h4lor hlor3a hlo4re hloss5t h2lot hl3sa hl4samb hl4sang hl4sau hlsch4 hls2e hl4s3el hl4ser hls5int hl4sph hl5s4tec hl5s6tern hls5tie hl4ston hl4sun h3luf h3luk h5lumpe h3lurc hl3urn hlus6s5en hluss5t h3lüf hlz2 2hm hm3abl h4maec h4maeh h4mael h4malw h4malz h4mand. hmani4e h4marc h4maro h4mause h2mäc h2mäh h2mäl h3me. hmee2 hme3eb hmeer4s h3mein4 h5meise hme5l4a hme3le h3men hme5nad hmen4sa hmen6schl hmens5em hmen6spo hme4nu hme4ran hmer5ei hme4r5id hmerin6t h3mex h2mid h2mie h4milz h4miss h2m3o2f h2mol h4more h4mors h4mort hm1p2 hm2s3p hm2st hm3s4tr hm2th h2mud hmuss4 h2mut hmut4s 2hn hnabe4 hna2c hnacht6s5 hn3amb hn3a2n h3nark h3nas hn3a4te h3n4au. hn3äh h2näp hn3är hn3d2 hn2e h2nee h4n3eff hnei7der hn3eig hn3ein h2nel hne2n hnen3e hnen6erg hnen6sem h5ner. hne4r3a h4n5er4de h4n5erdu hner5ei hnergene6 h4n3ero h4n3erö hn3e4ta h4netu hn3ex hn3f2 hnflei4 hng2 h2nib h2n3id h2nie hnik3a hni4kan hni4kar hni4kl hni4kn h2n3im hn3ing hn3inn h2nip hni4sa h2nit hnk2 hn3o2b h2nod h2noe h2no2r hn3sab hns2p hnst4 hn3sta hn3sti hn3str hn3stu hnsuch4 hn4t5auf hn4tho h1nu h2nuc h2nue h2nul hn3ums h4n3unf h4nute hnz2 ho2ar hobel5e h5oberf ho2b3l hoch3 ho4cha hochen5e hochs4 ho6ck5ere ho6ckerl hoe2d ho3edu 2hoee hoe2s hoes3c h3oese h3oest ho2ex ho2f3a2 ho2fä ho4f3ed ho4fet ho4feu hof3f4a hoffens6 hof5fi hof3fr ho4f3in ho2f3l ho4for ho2fr hof3ra hoh4lei h3ohm ho3hö h3ohr 2hoi hok2l hoko3 hokos4 h3okt ho4lab ho4l3ak ho4l3an ho4l3au ho4lav ho4l3ei ho4lem ho4l5ent hol5gr hol5int hol2o ho3lof 3holst 2holy h3o4lym 3holz hol6zene hom4e ho4me. ho4mec ho4med ho4mel h2on 2hon. ho4nar ho4nau 2hone hon4eu 2hong 2honh honi4e 2honk 2hons ho3on hoo2r h2op 2hope h3o4per ho4p3r 4hora ho3rae ho5ral. ho5rala hor5ans ho3ras 2hore ho4rem ho4rer 2horg ho4rol ho4rop hor4ta hor5tan hor4ter hor4t5rä hose4 ho4s3ei 2hosm ho2sp ho3spr hos4sa host3r h3osz hoße2 ho4ß5ene 2hot. ho3te 3hotl hotli4 hoto5p 2hot3s2 hou1 hou2s 2how h1ox ho1y2 2hö. hö2c hö3ck h1ö2d 2höe 2höff 1höh hö2s1 h3öse h3öst 2h1p2 h3pu 2hr hra4be hr3a2c h3rad. hr3ade hr3adr h5raeum h3rago h3r4ah hr4ai hr3al h3ramp h3r4ane hran4kl hr3ans hrau4ba hraube4 h3rauc hr3auf h3raum hra2x hr3ämt h3räu hrb2 hr1c h3re. h3rea hre4bl h3rech hre6ck5er6 h3red hr3eff h3reg h3reha hr3ehr h4rei. hrei4ba hrei4bl hrei4b5r h3reic h3reif hr3eig h5reihe hr5eing h4r5einl h4reins hrei5th h3rel hr3emb hr3emp hrena4 hrende6s hrenk4 h4ren4zy h3rep hrere4 h4rerfa hrer6fol hrer6gebn hr5er4ke h6r5er6leb hrer6zae hrer4zä hrer6zie h3re2s3 hresgene6 hress4 hre2t h4r3eta h2reu hr3eul h2rev h3rez hrg2 hrga4 hrge3r h3ric h4rick hri2e h5riesl h3ring hr3ins hr3int h3risc h3risi hr3iso hrit6tel h5ritter h3riu h3robo h3roeh h3roe4s3 hro2f hr3ofe h3rog h3roh hro2l hr3oli hr3oly h4romat h4ron hro4n5a h3ropa hr3o2r h3rote h3roto hrot4t5a h3rou h3rö2s3 hrp2 hrr2 hr4s3ac hr4s5and hr4s5ang hr4s3au hrs5eins hr4sele hr4sent hrs5erf hrs5erl hrs5ers hrse4t hr4s5eta hr4s3in hr2sk hr4s3of hr4stri hr4sum hr4s3un hr2sz hrt5aen hr4tak hr4t3an hr4t3än hr4t3e4l hrten6gag hrtengene6 hr4t5erf hr4t5erl hr4terz hr2t3h hrt5ing hrt5ins hrto2 hr4top hr4t5ram hrt5rol hrt6s5ein hrt4sin hrt4sto hr4tung h1ru h2rub h4rueb h3ruf h2rul hr3ums hr3unf h1rü hrz2 hrzah4 hrzahl5 hrzeu6ger 2hs hsa2b h4s5achs h4s5acht h2s3a2d h4s3aeb h4s3aeh h4s3aem h2sak h4s3alk h4s3all h4s5alte h4s3amt h4sanb hs5ange h4sanh h4s3anm hs5anna h4s3ant h4s3anz h2sa2r h2s3as h4sath h4s3ato h4s3aud hsau6erl h4s3auf h4s3aus h4saut h2s3äb h2säh h4säug hs2ca hsch2 h4schan h2s3e2b h2s3e2c hse2e hsee3i h4s3ehr h4s3eie h4s5eind h4s5einh h4seinn h6s5einst hsela4 h4selad hse4l5ag hse4lan hse4l5ei4 hse4len hse4ler hse4l5in hs5e4lit hsels4 hs5e4mis h4s5endw hsene4 hse4n5eb hsen5erg hsen3s h6sensem h6s5entar h4s3epi h4s3erb h4s3erf h4s3erh h4s5erkl h4s3erl h4s5erna h4s5ernä h4s3er3o h4s3erö h4s5erpr h4s3ers hse3r4u h4s5erwe h4s5erwi h4s3erz hse2t h4s3eth hse2x2 h4sexe hs4ext hs4ha4k h2s3i2d h4sind h5sinni hs3int hs3ita h5skand h2so2b h4s3ofe h4s3off h2s3op hs5ort. hs6orti hs5orts h1sö h1sp hs4pach h4sparl h4sparz h4spat hs4pec h4spel hs4perb h4speri h2sph h2spl h4spro hs3s2 h4st. h3stab hs5tabl h4stabs h3stac h3stad hs5taeu h3stah4 hs5talb hst5alt hs5tank h5stans hst5anza h3stap h5stark h5start hs5tata h5statu h5stau. h4s3täu h2ste h3stec h5stein. h5steine hst5einsa h3stel h4stele hs3ten h3s4tep h5s4terb h5stere h5s4tern hs3tes hstge3 hs4tieg h3stil hs4tin h3s2to h4stole hsto4n h4stor hs2tr h5straen h5straf h5strah h5stras h5strat h5strän h5strec hs5treu. hs5treue h3stro hstro6ma h3strö h3s4tue h3stun h2s1u2 h3sub h3sul hs4ung h3sup hs3ut 2ht ht1a h2ta2d h4taer ht5agent h4taka ht4akt. ht4akte h4tall h4ta4lo h4talp h4talt h2ta2m hta2n h4tan. h4tanb h4tan3e h4tanh h4tans h4tanw h4tapo h2tar hta4rie ht5a4ris h4tasi h4tasy h4tath h4tato h2tau h3taub htauf3 h3taum h2tax ht3äh h2t3är ht5eben hte2c hte5cha ht5echs ht5echt ht3eck h4t3ede hte3e ht3eff ht3e4he h4t3eif h4t5eilz h4t3eim ht3ein hte5in6fo h4t3eis h4t3e4ke h3tel h4t5e4las hte6l5ei. h4t5elek h4telem h4t5elfe h4t5e4lit h4t5e4mis h4t5e4mit h5ten. h4t5endo hte6nere hten6gag h4t5engl hten5st ht5entar h4t5entd ht5ente. h4t5entf h4t5entg h4tentl h4t5ents hte4ra ht5erbe. h6t5erben hterer6s h6t5erfah h6t5erfol h6t5erfuel hter6fuellt h6t5erfül hter6füllt h6tergeb hter6gri h6t5er6häl ht5erheb hter6höhu h6t5erklae h6t5erklä ht5erla h6terleb h6t5erleu h6t5erneu h4t5ernt h4t3ero hter5ob h6ter6prob h6ter6spar h6ter6stat ht5er6trä ht5erwae h4t5erwä h4t3ess hte5sta hte5str h4t3eta hte4th ht5etho h4teur h4t3eva h4t5extr htgene4 h2t1h h5therm h3thr h2t3i2d hti6g5er6k h2t3im hti2n3 h4t3ind h4t3ine h4t3inf h4t3ini h4t3ins ht3inv ht3iso h4t3isr hti3t2 h4t3ita ht3l htni4s h4t3obs hto2d3 h4t3oef ht5oele h4t3oes ht3o2f h4t3oly h4t3ope ht5opfer h4t3opi h4topt h4t3ora h4tord ht5orge h2t3ot h2t3ös ht4ran ht5rand h4t3ras h4t5rati h4t5ratt ht3rea h5treck ht5reic ht5reif h4t5reis ht5reit h4t3res ht2ri h4t5rieg ht5ring h5trio h5t4rit h4t3riv h4t3rol h4t3ros ht3röm ht3rus h4t3rut ht4s3ah htsa4n hts5ana ht4sas ht4sau htsch4 ht4scr ht4s5end ht4s5eng ht4sep htse4r3 hts5eri hts3k ht5s4law ht4soe ht4sof ht5s4pen ht5spru ht4staf ht6s5tate ht4stip ht6streue ht6strip ht6stuer ht4s5tür htu3en h4t5umse ht3und h4tunem h4tunf h4t5ungl h4t3urk h4t3urs htz2 hu2b3a hu4b3ei hu4b3el hu4b3en4 hu4b5er4z hu2bi hu2b3l hu2b3o hu2b3r hu2bu hu1c hue5ben huef6ter huehne4 hue4r5ei huer4fr hu2f3a2 hu2f3ä huf5erk hu2f3o hu2h3a hu4h3ei hu2h3i huh3l hu2h3o huh3r h3uhr. h3uhre huh3s h3uhu hu2k3a hu2kä hu4k3er hu4k3in hu2k3l huko3s huk3t2 hu2l3a hu2lä hu4l3e4b hu4l3ei hu4lel hu4lem hu4l5eng hu4lent hu4l3er huler4f huler4w hu4let hu4l3in hu2l3o hu2l3ö huls2 hul5se hul5ste hu4lum hum2a h3umb 2humf h3umh hum4pl 2h3ums 2humz 2hun. h3una hunde5i hunde5n hunde5s4 hund3r hun2e 2hunf h3ungl hungs3 hungsa4 huni3 2hunt hup3fl hu2p3h hu2ra hurg4 h3urku h3url hur4ter hur4t3h hu4s3en hu2so hus4s3a hus4s5er hus4s3o hus4sp hus4sta hus4ste hu4t3ab hu4tau hut3ei hut3ex hu2th hut3he hu2t3i hu2t3o2 hu2t3r hut5sc hut4ta hut4zeh hut4zei hut4z5en hut4z5er hü3bel hü3ben h3über h2übs hüf4t5er hühne4 2hüri 2hv 2h2w2 h3wack hw4ar h3weck h3weib h3weid h3weih hwei5n4e hwein6s5a hwen4ka h3wick h3wies 1hyd hy2da hy2de hy3dr 1hyg hy4lor 3hymn h1yo hy3os 1hyp hy4pe. hysteri6e 2hy2t 2hz hzug2 hz2w ia1a2 ia4ben iab2l i3ad. iad2a i3adn ia3do ia3ei ia3el i3ae2m i3aer. ia3erf i3aeri i3aers i3aerz i3aet. i3aeta i3aetb i5aetem i3aetf i3aetg i3aeti i3aetk i3aetp i3aetr i3aet3s i3aett i3aetw i3aetz i3aev ia3fl i3agg ia1h iah4o i1ai ia3in i3ak. i3a4kei i3akg i3akh i3a2k3n ia4kre i3aks i3akt i3akv i3akw i1al ial3a2 ia4lar ia2lä ialb2 ial5bl ial3d i3a4leb i3alef ia5lek i3a4lel i5alemp i5alengp i5a4l5en4s i5a4l5ent i5alen4z i3alep i5a4l5er4b i5a4l5erf i5a4l5erh i5a4l5e4ri i5a4l5erk i5a4l5erl i5a4l5erm i5a4l5ero i5alerö i5a4l5ers ial5erwa i5a4l5erz i3a4l3e4t i3alex i2ali i3a4lia i3a4l3id ial5ind ial5ing ial5ins ialk2 i3all ial4ler ia4lob ia4l3on ia4lop ia4l3o4r ia2l3u2 ialz2 i3amp iampe4 ia3mu i3an. i3anab i3a4nal ian5alt ia4nar i3a4nau i3anc ian4ce i3and2 i2ane i3a4n3e4b i3anei i3anex i3ank2 i3ann ia4nod i3ans ian4s3p i3ant i3anz ian4z3a4 ia1o ia2op i1ar i3ar. ia4rab iar5ein i4arer i2ari iarr2 i3as. i3asb ia3sh i2asi ia3s2p i3as3s ia3sta ia3s4tr i3asz i3at. i2a3te i3atl ia4tol i3atom i3ats i1au ia3un i1ä iä2m iä2r3i i3ä4tem iä2ti iä2tr iät3s4 i4b5achs i4b3arm i4b3art i4barz i4b3auf i4b3aus i4baut i3bä ib3ärm ib4bli ibeer4 i4b3eig i4b5einh i4b3eis ibel3i i2b3em ibend4 i4b5ener iben3s ibe3ra ibe4rab ibe4rae ibere4 ibe4reb ibe4ren i6b5er6fah i6ber6geb i4b5er4la ibe4tau ib3ide i2b3in i4blad i4bläh ib4len i4bleu i4bluf ib2o i4boel i4b3ort i2böl ib4rec ib2ri i4b3roc ib5roec i4b3röc ib4ser ib3s4kl i4bueb i4b3unk i4bunt ibus3c i2büb 2ic ica2l3 ic1c ice1 i4ch. icha2 ich3a4c ich3ag ich3al ich3an ich3ar ich3au ich3ä i3che ich3ei i6chensem i6ch5erde icher5eig icher6gebn i4ch3eu i3chi ich3la ich3lä ich3li i5chlor ich5lot ich3m ich5ma i4ch3n ich3oe i3chon ich5ort ich3ö i2chr ich3ra ich3re ich4san ich6sene ich6s5ern ich4si ich4s5or ich4spo ich4sto ich5stri ich4tab ich4tan ich4tar ich4tas ich4teb ich6t5eig ich7ten. ich4t5in ich4toe ich4t3r i3chu2 ich3uf i4chur ich3w i1ci i2cko ic3k4os4 ick3sa ick3sk ick3s4p ick5sta icktu3 ic3la ic3le id2ac id3aer ida2n id3ana i4d3ani i4danl i4dante i4danw id3arm id3art id2ax i2daz idä1 i2d3är i4deal i2dee i3deei ide4en ide5inst i4demul ide5nad ide4n3i ide4n3o4 iden5str iden4zi ide2o ide5rae ide5ran ide4rel ider6fül iderin6f iderin6nu ide3ro ide3rö i6d5er6reg ide4ser ides4p ide5sta ide5str 2idf idi3ae idi2o id5ion. id5ione i4diot i2dol 3idol. i3dor i4d3orb id4o3s i2d1r id4ro id4set id2sk ids3pr ids5tra idue4 idu3en idwa3r 1idy ie3a2 ieb5ach iebe5ner ie2bl ie3bla ieb4sen ieb4s3i ieb4so ieb4ste ieb4sti ieb6stre ie4bum iech3o iech3t ie2ck ie4d3an ieden6sc iede4r5a iedi4e ie2dr ied4si ie1e2 ie3ev i2ef ie4f3an ie4fau ie4feb ie4fed iefe4m ief5emi ieff2 ief5fl ie2f3l ie3flu ie4fonk ief5rea ie4f3ro ie4g3li ieg2n ie4gre ieg4s3c ieg4se ieg4si ieg4sp ieg4s3t ie4hap ieh5eis ie4h3in ieh3r i1ei ie3im ie3in5d ie5l4am iela4r ie4lau ie4läs ield2 iel5ech iel5e4ck ie4l5eic iel5eid ie4l5eig iel5eis. iel5eise ie4l5ene ie4leng ielen4s ielen4z ieler6fo ieler6ga ieler6gä ieler6geb ie6l5er6la ieler6lebn ieler4ö iel4erw ieler6zä ieles4 ie4less ie4l5eta ielge5n6a ielgene6 iel3i4d ie4l5inf ie4l5ins iel5int ielo4b ie4l3op ie4lor iel3sk iels4p iels4t iel5ste iel3sz i5e4meti i1en iena4b ie3n4ac ie4na4g i4enah ie3n4am iende5s4 ien5ekl ie4nel iener6la ien5eta ien3f2 ieng2 ienge4z ie4nid ie4n3im ie4n3in ienk2 i3enn ieno2 ien3sc iensch4 i5ense iens6er ien3s4k iens4p ienst5aen ienst5än ienst5ein iens6ter ienst5erl ienst5op ienst5rän i5ensy ien3sz ien6t5ero i5enti ien3tr ien6z5ers ie1o2 ie4peg ie3p2f ie3ra. ier3a4b ier5aet ie5raeu ier3af ier3al ier3an ier3as i2ere ie4r5eck ier6eini ier5e4mi ierer5na ierer5nä ier4ert i2eri ie4r3id ie4r3il ie4r5ing ierin5i ierk4 ier3l iermi4s i3ern. iern4a ier3ne ier3ni ier3ob ier3oe ier3o4f ie3roh ier3ö ier4re. ier4s5eh ier4sko i5ersoh ier5sta ierts4 ieru2 ie4rund ie4r3ut ie4s3au ies5ein iesend4 iesen5s4 ie3s4ka ieso2 ie4s3oe ie2sö ies2p ies4sel ies6s5ent ies6s5er6l ies4sti iest2 ie5stel ie3str i3esü ie4ßel ie4ß5ent ie4t3ak ie4t5ang ie4t5ans ie4t5anz ie4t3ap ie4tat iet5ein ie4t5ent ie6t5er6ho ieter6hö ieterin6t ie6t5erlo ie4t5er4t iet5hel iet5her ie4t3ho ie4thu i3e4thy ie4t3o4b ietoe4s ie4t3ö4s iet5ram ie4t5rau iet5räu ie4t3ri iet5str i3ett iet3z4a iet3zw ieu2e i4e3um ie3un ieu4r3a ieu3s ie2w3r i1e2x1 iezo3 2if if3aen i2f3af if5ange i3fari i4f3arm i2f3au if3än i2fec i2f3ef i4f5einh i4felem ifel4s5o ife2n ifen3e ifen6te. if3erh ifes5tat if4far if2fl iff3la if3flu if4f3ru if4f3rü iff4sen iff4s5et iff4spe iff4spr iff4ste iff4sti iff4stu if3inf if3ins if3lac if3lad i3flae i3flag i3flä i3flec i3f4lie i3flue i3flug i3flü if1r i3freu i3f4rev if3sa if2t3a if4ted if4t3ef if4t3ei if4t3ep if4t5erk ift5erl ift5erz ifte4s if4t5esc if4t3ex if2th ift5int if4t3op if4t3ra ift5rei if4t3ri if4t3ro ifts4c ift3sp ifts6tem ifts4tr ifts4tu if4tur i2f3um i1fy i4ganb i4g3ano ig3anz i4g3arb i4g3aus igd2 igeb2 i6gebrau ig3e4ck ige4dr i4gefar ige4füg i4g3eig ige5inf ige5inh i4g5eise i4gel. 3i4geln ige4mes ige4mis igena4b ige4n5e4b ige6nene igener6f ige6ners igener6z ige4nid ige4pac ige4ral ige4rar iger4fa igerin6se iger6klä ige3sk i4g3ess ige4woh igg2 iggas5t igh3s 2igi i2g3im ig3ins ig5laen i4g3lau i4g3län ig3lec i4gled i6gleitu i2gli ig3lim ig3lu ig2na i4gnae ign3a4g i4gnak i4gnan i2gnä ign3ei i6gnerge i3g4neu i2g3nu ig4o3p i4grams i4greg i4grei i4g3res i4g3rin ig3rol ig3rom i4grou igs4ae igs4ag ig3sar igsau4 ig4scha igs2i ig3s4or ig3s4pe ig5stei igs4top ig4stö ig4s5tür ig3su ig4tin igtu5er. i1h ih2a i4h3ans i4h3auf ihe3e ihe3in4 ih3elt ihe2n3 ihenk4 ihens4 ihe3o ihe3s ihe3u ih1l ih3m ih1n i2h3op ih1r ihrau4 ihs2 ih3str i4h3um. ih3w i1ia i3i2c i1i2d i1ie i1i2g i1im i1in i1i2r i1i2s ii4sc i3it. i3ja 1i2js i1k ik5abla ik5ablä i4kada i3kae i4k3aeh i4k3aer ika3in i4k3akt ikalk4 ikal5t ik5alta i4kanb i4k3ang i4kanl i6kantei ikanten6n i4kantr ik5anzu ik5anzü ika3pf ika4tan ik3att i2k3au i2käh i2k3är ikbu2 4ike. i2keb ik3ebe ike2c i2k3e2d i2kef ik3eim ike2l 4ike2n iken3e i2kep i6k5er6be. ikerbe6r ike4ren i6k5er6fah iker6hal iker6ken i6ker6leb i4k3ero i4keru ik5erze iker4zi ike4t i4k3eta ik3eth i4ketu i2k3ev i3ki. ik3imm ik3inh i4k3ins ik3lab ik3lad i4k3lag iklan4 ik3lem ik4leri i3kles i4klos ik3nar ik2o ik3obs i4k3oef iko3nu ikop2 ik3o4ri ik3öf i2k3öl i4kres ik3rin ik2ro ikro3s i2krö ik3ru ik1s iks2p iks2t iks2z ik4t3eb ikt5erk ikt5erz iktes4 ik4t5esk ik4t3o4b ik4t5res i4kueb iku2m i4kumf ik3unf i5kuns i2kup i3kus i2küb i2ky i1la il3abb il3a4br i4l3abt i2l3ac i4l3aer i2l3ak il3a4ma il3ana i4lanb ilan5er i4lanf i4l3anm i4l3ano il3ans ilan6zer i4l3arb il3art il3asp il5aufl ilauf6ruf. il5aufw il5aufz il3aus i1lä1 i2l3är ilch3a ilch3o ilch3r il4dae il2dä ild5ebe il4d3ed ild5ele ilden4s il6dense il4d5en4t ilder6ha il4d5ese il4d5es4s il4did il4dil il4dop il4dor il4drü il5ebene il3e2c i4l3eig il3ein il5eise il3ele i4l3emb i4l3e4mi il3emp ilen5st i4l5ente i4l5entf i4l5entl i4l5ents i4lentw iler6be. iler6ben i6l5erbli i4l5er4de i6l5ereig i4l5er4fo i4l5er4fu i4l5er4fü i6ler6geb iler6hal i4l5erhe i4l5erkl i4l5er4lo i4l5er4lö iler6öff i4l5erwä i6l5er6wei iles2 ile4ta i4lety i4l3eur il3ex ilfe3i ilf2s3 ilf4st ili3as i2l3i2d ilie4n3 iliener5 iliga4 ili4g5ab il3imp i4l5init i4l3inv ili3o il3ip. ili3pf il3ipp il3ips ilk2 ill4ant il5lem il3li ills4p 3illum il4mad ilm5a4ge il4mak il4mal il4mam ilm5ans il4m3ap ilm5att il4meh ilm5ein il4m5ent il4m5enz ilmer4 il4m5erl il4mex il4mik il4m3in il4mop il4m3or il4mou ilms2 il3obe ilob4r il4oh i2l3o2r il3ox il4san ilsch4l il4s5ent il4stau il5stec il5stemp il5stern il3sti ils4to ilsto4r i1lu2 i2lue i2lum i2l3ur ilv2 il4z3an il4z3ar il4zau ilz5erk ilzes4 il4z5ess il4zwa im3abl im3abr im2ad2 ima4get ima3i imaler4 iman3d i4manh i4manw im3apf i4marc im5a4ren i4m3arm i4m3art ima3sz i3mat ima4th ima4t5in ima4tra ima4tur i4maut i2mäp im3b i2meg im5eins im5ein4w i2mej i2mek i4m3ele i4m3elf i2m3e2p imer4la i4m3er4z i4me3sh imess4 i4meti i2mew i2m3ex imhau4 i2m3im i4m3inf i4m3ins im4mak im4mant im4m3au im4m3ei imme4n im6m5enth imm5erkr im4m3id im4mop im4mor 5immuni i2m3ob i2m3o2p imo4re. 4impa im5paa imp4fa imp4f5er4 imp4f3i impf5li im4ple. im4p5ler imp2s im3pse 3impu ims2p im2th imt3s2 2imu imult4 im2um im3urk i1mü 4ina. i3nabo in3abu ina2c in5ach. in3ack in3aeh in3ae4s in3aeu ina5ge inahe3 i3nald i3nale inalen4 inaler4 ina6lere ina4l5in in3amb in3ana i4nang in3ann ina4no 4inap in3ape in3app in4a4ra i3n4are in4arr in4ars in3as4b in3atl in3atm in5atom i4nau in3aue inauf3 i3naz i2n3äh in3ä2s inbun4 4ind. in4da4b in4d3al in4d3an 4inde. indei4g ind5eis 4inden inderei6s inderer6t in6der6sat inder6trage inde5spa 5index. 5indexe 3indik 3indiv ind2o in4drec ind4spe ind4ue 3induk 3indus ind2ü 2ine. in5ebene ine3ch in5eck. in5e6cker ine3el i4n3eff in3e2g in5e4hen ine5in6fl i4n3elb ine5nae ine3nä ine4ner inen6gag inen6ge. ineo2 ine3p2 i5ner. i4n5erbi i6n5er6hal i4n5er4he i4n5erke iner6läu i6ner6leb i4n5er4lo i4n5er4lö i4n5ersa iner6trä i4n5erz. iner6ze. iner6zen iner6zes iner6zeu i4n5erzi inesi4e i4ne3s4k ine5str 2in2et ine3u4f ine3un ine2x in3f2 3infek 3infiz 3info. 4infre in4g3af in4g3a4g in4gam 5ingeni in4g3im in5g4ler ing3n ing3or in4g5rat 4ings ing5sat ing5s6end ing5s6por 3inhab 6in7haltu 4inhe 4ini. i3nie ini5erk i4n3inn ini3o2 ini3s4e ini3sk ini3sl i5nitr i5nitz 3injur 5inkarn 2inke inkels6t in4k5en4t ink5erd in4k5erz in5kom 2inks ink4sin ink6spar ink4ste 2inkt ink2u in4kut ink2ü 2inn. 4inne. inne4n inn5erfu 5innerns inn5erwa in4n5erz inne4s5t 2innl 2inns inn5ste 3innta inoe4d ino3et in3old i3nomi in3opf in3ord i3n4ot ino5ta ino5te i1nö in3ö2d in1s ins5aen in6samt. in4s3än insch4 in4s5eke in4s5emb 4insen in4s5erf ins5erg 3insid ins4por instab4 ins5tak 5instal ins4tec in6steil ins4tel ins6temp 5instin ins4tip 5instit inst5rol in4stun 3insuf 3insul in4s5umw in4sur 4insy int5an. int5ans in3te 4inte. 3integ 5interp inter5z int2h inth3a intons4 4intö 5intrig int3s in1u i4nuh i3nuk 3inumg in4umt in3unz 3inurs in5ver 3inves 4invo i1ny2 inz4el inzel5e inze4li inzel6ler inzen3 inz5int in3z4sc in3z2u inz2w io3a io1c i1od i2oda io2de iodi4e i2odu io3e2d ioe2f i3oe2k io3e2m ioe2n3 io3er i3oes. i3oest ioe2t iof2l io1h ioi2 io3k4r iok3s i3ol. i3olp i3ols i3om. i3oms i1on2 ional5a ion3an i3o4n3as i3o4n3au i2onc ion3d2 ionen3 io4nor ions3 ionsa4 ion4sto i2ony io1o2 i3opf i3or. ior3ak i3oral i3orb i3orc ior4e io5ren ior6ens i3org io3r2h i3orp i3orr i3ors i3ort io1s i3os. io3sh ios2p i2ot i3ot. iot4e iote3l iot2o i3ots i3ox i3oz. i1ö2f i1ö2k i1öl i1ön i3ös. i3öst 2ip ipa2n3 ip3ein ipe2n ipendi5e ipen3e i2pes ip3fab i3pfan i1pi ipi3el ipie4n3 ip2l ip4pan ip4pap ip2p3f ip2p3l ip4pru i1pr ip4sei ip2sp ips3tu ip4s3tü ip4ter ipt5ers ip4tro i3p2ty i1ra i3r2ad irae5us 3iraki iral3a iral5s4t iral6stue ir2an i2rar irat2 i1rä ir3äh irä3us irbe4l5a irbel5i ir4ble ir1c ir4ch3a ir4ch3i ir4ch3o i3rei ir4en i2rew irg2s3 irg6ste i1ri ir4in ir2k3l ir4k3or irks3c irk2u ir4k3ur ir4m3ae ir4m3a4g ir4mak ir4m3au ir2m3ä irme2 ir4m3ed ir4m3ei irme4n ir4m3er ir2m3o ir4mum ir4munt irmwa4 ir2na irn3ad ir4n3au ir2n3o i1ro i1rö irpla4 irr3au irre4l irsch5ar ir4schl ir4schm ir4schn ir4sch5r ir4sch5w ir3s2h ir4st3r ir3su ir4t3er4 irtra4 irt4s3e irt4st i1ru ir2ue irue3b ir3u2m3 iru2s irus3e4 i3r2ü irü3b isa2c i4s3aen i2sak i3sam i4s3amp i4s3amt i4sanb i4sanf i4s3ang i4sanh i4s3ann i4sanp i4sanr isa4re is4arg i4sa4ro is5assi is3att i2s3au is4aue i2s3än is2är i2sca i2sce i4schab i4scham ischa4o i4schäh ische4c i4sch5e4h isch5ein ische4m ische4n i4schep ische5re i6scherkra i4sch5eu i4sch5im i6schind isch5lap i4schm i4schna isch5obs i4schos i6sch5rip isch5ru i6schueb i4schum i4schüb i4sch5wo i4sch5wö isch5wun i4schwü i2s3cr 2ise ise3a i4seben ise3e4r iseer5i is5einsa i4selem isel5er i6s5el6ter i4s3emb ise4ne ise5neb isen5en isen3f isenk4 isen3s ise6r5eic iserin6t is3erm i4s5ernt ise5rum i4s3ess ise5str i4s5e4tat is4eur isex2 is4exi i2sid isi4de i2sim is3imp i4sind i4s3inf isin3g ising4l i4s3int isi3st is4kis 3islam 4isli is4lip ismu4t i2sob is3oef i2s3of i3soh i2sol i4somo iso4nar isonen4 iso6n5end isonet4 iso4nor i2sop iso3s 3i2sot 4isott i2s3ou i2s3ov i1sö i3spal is3pan i2spe i4s3pic i4s3pir is4ple i3s4por i3spra i4spro i3sprü is3pü iss3ac is4sau iss5aus is4sed issen6sp issens5tu issen6s5tü iss5er4f isseri6e is4s5er4k iss5erz issi4l is5s4kat isslich6t iss4par iss4por is4stec iss4tu i4st. ist3a4c is3tal ist3ap is3tas i3stat ist5auf is3täu i2ste ist5ein is5t4e4n isterin6t ister6ras iste4s ist4hal i3stil istin4f i3stoc i3stoe i4stöp is3tör i5s4tram istri5en is4trig i5strik istu5er. istum4 istungsex5po is3tüm isu4c isuch3 isucher6 isu2m isum3p is3url i4s3urt i2sü i4ß3erk i4ß3erl i4ß5erse ißlich6t it3ab. i4t3aes itaet4s5 ita3h itai2 i4t3aka it3akk ita3kl i6t5akte. i6t5akten i4takts ital3a italent6 italer4 ita6lers ita6l5erw ita4l5in ita4lo ital3t it3a4mi itan5at it3ang it3a4po it3app i4t3arb it3a4re it3art it3asp i5tauc i4t3auf it5aus. i4taut itauto6r it3änd i2t3äs ität2 itäts3 i4t5eben it5echs it3e4ck ite3er it3eff it3e4he it3eig it3ein i4t3eis itel5ae itel5an itel3ä it5elef itel5eh itel5ei i4t5elek i4telem i4t5e4lit i4t3emb ite2n iteng4 iten6gag iten3s4 i6ten6sem i4tentl i4t5ents i4tentw i6t5ereig ite4rel iterer4 i6ter6fol itergene6 iterin6d iterin6s iterin6t iter6klae i6t5er6klä i6ter6led iter3o4 i5terr i4t3esk ites4ka ite5sta i4t3e4ti i4t3eva i3t4hag it3hem itho3s i3t4hr i2thu i2thy i2tia i3tic i2t3id 3i2tii itik3a4 iti4kan iti4kl iti4kr it3imm iti2n3 i4t3ina it3ind it3ini it3int ition4 i4tiso iti4v3a itiven4 it3o4be i3to3c it3of it3opu itor3a it3orc it3rab it5rade it5raeu it3raf it4ran it5rand it5rang it3ras it3rau it5räts i4t3räu it3reb it3rec it5reic it5reif it3ren it3res it5rieg it3ris it3rob it3roc it3rol it3rom it3ruc i4t3run i5trup i4t3rut it2sa its3an itsau5d itsch5ro it4s3e4h it4s5eif it4s5ein it4s3el it4s3es it4set it5span it4staf it4stec it4stoe it4s3tö its4tue it4stur it4t3ac it4tän it3te it4t3eb itt5eige it4t3o4b it4t3op itt5rad itt5rei it4tri itt5rol itt4s5e4h itt6sein itt4sti itt4s5tr i3tud it3uh i4tunf i4tuns ituran4 itu4rer it3urg i4turp itut4 ity1 it2za it4z3e4c it6z5ergr itz5er6ho itzer6hö it6z5erla it4zoe it4z3op it2zö it2zw 2i1u2 iu3l ium1 iuma2 iums5en ium4ste iun2 i3ut i1ü 2iv i2vab i2v3ad i2v3ae i2v3af i2v3a2g i2v3ak iva4lo iv3ang iva6tent ivater4 iva6t5erw i2v1ä i2veb i2vec i2v3ef i2vek ive2l iv3ele iv3elt i4vemi i4vemu ive4no i2v3ep iver4he iver4lo iver4lö iver4oe i4v3er4ö ive3s i4vesc i4vese i4vest i4veti i2veu i2veü i2v3e2x3 i2v3im i4v3ind iv3ins i4v3int i2vl i3vol i2v3op ivo3re iv3ro i2vue i2vun i2v3ur i2vü i3wo iwur2 i2x3a ix3ele i3xi ixt2 ixta2 ix2u i1y 2iz iza2b i4z3aen i2z3ag iz3anz i2z3ap iz3art iz2as i2zat i2z3au iz1ä i2zän izein4t izeit5s4 i3ze2n izen3s i4zentz izen6zer i4z3er4l i4z3er4r i4z5er4sc i4z3er4z i4z3inf iz3irr izo2b i2z3oe i2zo2f i2z3or i2zö i4z3una i2zwe i3zwec iz3wic i2zwo i2zwö iz3za í1 ï1 1j j2a ja1a jaal2 jab2 ja1c jacht5s4 ja3ei ja3er ja1f jaf2l jag4da jah4r5ei jahr4s3 ja1i ja3l2a ja3le ja3ne jani3t4 ja1p ja3ru ja3st 2jd je2a jean4s jee2p je2g jek4ta jek4ter jek4t5in jektor4 jek6t5ort jek4t3r jek4t3u je3n2a3 je2p jeri3 je2s3t je2t3a je2t3ä je2t3e je2t3h je4t3in je4tor je2t3r jet3s2 jet3t je2t3u2 ji2v 2j1m joa1 jo2b1 joba2 job3e joch3a jo3che jo3chu jo3ck4 jo2d3a jo3el jo3gh jo2i jona3t jong4 jo2p3 jo3ra jor2z jo2sc jos3t josta3 jou2l 2jt jty1 j2u ju2bl jude2 jugen4 jugend5 ju2k jun4g3a jungen5 jungens6 jun6g5ente jun4gl jun4g3r jung3s4 jun3t jus3t ju3te3 2jv 1ka ka4ans ka3ar 2k3abb kab4bl 2kabd kabel5a 4k3a4ben 2kabf 2kabg 2kabh kab4le 2kabn 2kabs 2k3abt 2kabw 2kabz ka1c 2k3ace 4k3achs 2k3add k2ade kade3i kadein4 kade4n3 2k3adm ka2dr 2kadv ka3e2d k3ae4mi4 4k3aend ka3ent 4k3aerg k3aerz kae4s3c ka3esk 4k3affi ka3fl ka3fr kaft4 k2age 4kagen k3agg 2k3aho kaim2 kai3s4 kai5se k3akk ka3k2l 4k3akt. 4k3akti 4k3akts 4kala. kal3ac kal3a4d kal3an kala4s ka3lat ka4leb ka4l3eh kal5eis kale4n kalen4s kal5erei ka4l5erf ka4l5er5i kal4kan kal4kle kal4klo kalk3r kal4kru 4k3allt ka4l3on ka4lop kalori6e ka4l3os ka3lö k3altä kal4t5ex kal4th kal4tre kalts4 ka2lu ka4mat kam4i kamp6f5en kamp6f5er6f kamp6ferp 4k3amte ka4n3a4s ka4nau 4kanda kandal5a 4kandä 4kandin 4k3andr ka4n5ent 4kanfä k4anfu k4anfü kani5er. 4kanim kank2 4k3a4nom 4k3a4nor k2anp k4anre 4k3ansä 4k3ansi 6k5antenn ka3num kanu3s4 ka2o1 ka4p3ho k3appa kap3st 4k3arbe k4arbr 2karc k2ard kard4a 4k3area ka4r5ent k2arg k2arh ka3ri kari5es k2ark 2k3arm ka3rö k2arp kar4pf k2ars k4arta k3arti 4kartig 4kartik k4arto kart3s4 k2aru kar3u4f ka3rum ka3rü k2arw 3karz 4karzt ka5s4e3i kasi5er. kas3s4a kassen5 kasso3 4k3ast. kas3ta kas3te 4k5aster kas5til kas6tras ka3sz k2at ka4t3a4b kat5akt kat5ans ka3te ka4tea ka4teb ka4tep kat2h ka3tha ka4t3ri kat3t4 k4atz k2au. k4aue kau4eri kau4f3a kau4f5er k5auffa k5aufga k5aufla k5aufli kau4f3o kauf6s5ag kauf4s5e kauf4sp kaufs5tem 3k4aum ka3umr k4aus. 4k3ausf 4k3ausg k3ausk 4k3auss kaussen6 4k3ausw kau3t2 4kauto kauto4r 1kä 3käf k1äh 2k3ä2mi2 2k3änd 2k3ärg 2k3ärz kä2s3c 2kb2 k3ba k3be kbo2n kby2 2k1c k3ch2 kcre2 2kd2 kdar4m kdi2e ke4ben 2k1ec ke3er 2k3eff kefi2 kege4la kegel5e k3egg ke2gl ke4he. ke4hen kehl3s4 2keho kehr3a keh6rert kehr4s5o kehr6s5po 2kehu 2k3eic 2k3eig kei4l3i keils4 keil5ste kei4ma keim3p 2k3ein 4k3eise keit2 keits5c ke4l3ab ke4l3a4c kel3ae ke4laen ke4l3am ke4lan ke4l3as ke4l3at ke4l3au ke2lä kel3än keld2 ke4l5eim ke4l5ein kel5eis 4k3e4lek ke4l3en ke4l3er kelgene6 ke4l5inf kel5ins kel5int ke4lio ke2l3o2 ke2lö kel3öf kel3s4k kel3sl kel5s6tern 2k3e2mi 2k3emp ke2na kena4b kena4g ke4n3au ke2nä 4k3endg kend4r kend4s ken5dsc 4kendst ke4n3e4b ke4nel ken5end ke4n5en5e ken5eng ke4n5ens ken5ent ke4n5enz ke4nep ken5er4n ke4n5ero ken5erö ken5ers ke4n5est ke4n3e4t ken3f2 keng2 4ken4gag k5en6gel. k5en6gels ke4nid ke4nim ken3in kenk2 4kenlad 4kenläd kenmi4 ken3ne ke2no2 ken3om 4k5en4sem ken5stan ken5stap ken5s6tei ken5stre k5en4te. ken6ten. ken6tene ken6tenp 4k3entf 4k3entg ken3t4h 4k3entl 4k3ents 4kentw 4kentz kenwin4 ke1o2 ke3pf ke2pl k3e2po ker3ae ker5all ker5alt ke4rap ker3as ke2r3ä k5erbit 4kerde ke4r3e4b ker5eck ker3ef k5ereign ke4rein k5e4remi ke4r5end ker5ens ke4r5erd ke4r5ers kere4z 4kerfol ker6folg. ker6folgen ker6folgs 4k5erfül ker6gebn kergene6 4kergu ker6hoehu k5er6höhu ke6r5in6nu kerin6st kerin6te kerk2 k5erlang ker6langu ker6lebn k5ermit ker4nar kerner5 ker6nere ker6ners 4k5er4neu ker4nie ker3o4b ke5rode 4k5erodi ker3oe 2k3erö kersau4 ker6schü kert2 ke4ruh 4k3erz. k5erzeugu ke4san ke4sel ke4spa kes4pe 4k3es4sa ke3sta ke4tan ke4t3au kete2 ke4t3eb ket3ei ke4t3el keten3 ke4t3er 2ke2th ke2t3r ket3st ket6t5erz ket4t3h ket4to 2keud 2k3e2va ke2vo 2k1e2x1 2k1f2 k3fi kfi4le kfin4s k3fu 2kg2 kgas5ta kgeb2 k3gl k3go 2k1h2 khau6sen k3he ki1a ki2ad ki2ag kia2k kia2r ki1c 2kicl ki3dr 2ki2dy kiefe4 kiel3a kie4lei kie4l3i kie4l3o kie6rer6g 4ki3ern kie4sei kie4so kie4s3p kiess4 kie4ze ki3f2l ki3f2r kik2 2kila kilan4 2kilä 2kile 2kili 4k3illu 3kil4o3 2k3imp ki3nad kin3al ki2nä 4k5index 4k3indi 4k3indu 2k3inf kin4g3a kin6g5ent kin4g3r king3s 2kinh kini3k4 kini3s k3ink kino3 kinos4 4k3inse kin3sh 4k3inst 2k3int ki1o 2kior kio2s kio2v kip4pr 3kirc kir6scha ki3s2h 2k3i2so 2ki3s2p kissen5 kissens6 ki3sta ki3s4to kit6schl 2kiv 2kiz 2kj k3jo 2k1k2 kkab2 kko3ef kk4or kkue3b kku3s kkü3b kl2 2kl. 2k3la. 2k3lac kl4ae 4k3laed 4k3laeh k3laeu kla5me kl4an 4kland klan4g5r klassen5 4klat. k3lauf 4k3laug 5klavie 2kläd 2k3läh kl4är 2k3lät 2k3läu 2k3le. kle5ar. kle5ari k2leb kle4ba kle4b3r 3klec 2kled k2lee 4kleer k3leg 2k3leh 4k3leib k4leid klei4er kleinen6 4k3leit k3lek k2lem k3lem. kle2o kl4ep 4klero k2let kle3us 2k3lex 4klich k2lid k4lien k2lif 2k3lig k2lim 4klin. k4li3na 4klind k4lino k2lip k2lir k4lisc 4klist 2k3liz k2lo. k2lob 2kloc 4kloec 4kloef k4loest k4loet 2klog 2kloh 2k3lok k2lom k2lop klor4 4klose. 4klosem 4klosen 4kloser 4kloses kloss5t k4lost 4klot. 4klote 4klots 2klöc 2klöf 2klöh k4löst k2löt k1lu 3klu2b k2lud k2lue 4k3luec k2lug k2lum klus5s4 2klux 2k3lüc 2kly 2k1m k3ma kma6lens kma4li kmeni3 kmes4st kmi2t 1kn2 4k3nach 2k3nad k3naep 2knah 2k3nam k3napf kn4ar 2knav k3naz 2knäp kne4bl kne3e knen4a 2knes 4knetz 2kneu 2kney k2ni kni2e 4k3nier knies4 4k3nis. 4kniss 2k3niv k2no kno4b3l 4knorm kno2s 2k3nov 2k3num 1ko ko3ad kobal4 ko4beli kober4e 2kobj kob3la kob4s ko3che koch3i ko3edu k5oeffn ko3eli ko3erh ko3erk ko3erm k3oert ko3ev ko4fen koff6e5i 4k3offi koh3lu ko3hö 2k3ohr koka3s4 ko2kl kol4a ko5lau kol3c kol2k3 kol4l5e4b kol4lei kol6lerw ko3lo 2k3o2ly ko4m3er 2komn ko4mun kon1 ko4nau kone2 ko4nel ko4nem ko4nod kon3s4 kon5su kon4tae kon4tä kon4t3h ko2nu koo2 ko3on 2kop. ko4pal ko4p3an ko4pf kopf3a4 kop4f5en kopf5erk kop6f5err kopf3l ko4p3he kopi4e 4kopis ko4pli 3kopp 2kop3s2 ko3pte 2kopz ko3r2a kor4an kor4ba kor4b5er kor4bla kor4b3r 2k3orc kor4dar kor6d5erfo kor6der6g kor6d5erw kor4dr ko4r3el 2k3org kor4k3a kor4ker kor4k3r kor4nac kor4n5ae kor4n3ä kor4n3o4 ko4rob 4korpi k3ortu ko3r2u k2os. ko2sk kos4pr ko2st ko5stei kos6t5er6z kot4a kot5ent kot5erb ko3ti koti4n3 kot3s2 kot4tak kot4tan kot4th 3kow 2k1ox 1kö kö4res 2k3ört 2k1p2 kpi2t3 2kq k3qu 1kr2 2k3rad kra4da kra4dei 4k3raed k5raeum 2k3rah kr4am kr4an 4k3rand 5krankh k3rats kr4au k3raub 4k3rauc 4k3raum 2kräd k3räte k3räub 4k3räum 2k3re. 4kreak 4k3real k4reat k2reb kreb4sc kreb4s5o 2k3rec 4kred. 4krede 4kredn 4kredu 2kref 2k3reg 4kreib 4kreic kre3i4e4 kreier4 4k3reif 4k3reih 4k3reim 4krein krei6s5ei krei4s5i kreis5t k2rem krem4l3 k2reo 4krese 4kresu k2reu 2k1rh 2k3ric 4k3rieb 5kriec 4k3ries k3rind 4k5rings 2krip k3risi kro3a4d krob4 4kroba 5kroch kroe4b 4k3roeh kro3el k3rohs 2k3röh 2k3ruc krue3b 2kruf kru4fer 4k3rump 2k3run krü3b 2k3rüs 2ks ksa2b ksab3a k4s3aeh ks3aem k3saen ksa2f k2sa2k k4s3amt k2san ks3ang ks5anka ks5ankä k5sanke ks3ant k2sap ksa2r ks3a2s ksau4e k4s3au4f3 ksau4re k4saut k2s3a2v k2säh ks2än ks2ca k2sce ks2ch2 ksche4f k2scr k2s3e2b k2s3e2c k3s2ed ks3eie ks4eif k4s5eind k4s5einf k4s3e4le ks3elf ks4end k4s3eng ks5ense k4s3en4t k4s3erf k4s3erg k4s3erh k4s3erk k4s3erl k4s3erp k4s3err k4s3ers k4s3erw k4s3erz kse2t ks3eta k2s3e2v k2sex2 k2s3i2d ksi2n k5sinf ks3ing ks3int k2s3is kso2b ks3oe kso2f ks3ofe k3son k2s3op kso2r ks3org ks3ori ks5ort. k3spaz k3s4pec k3spei k3spek k3s4pel ks4pes k5sprac k4sprä k3spri k4spro k3spru k3spul ks3s2 k4st. k3stab k3stac k3stad k4stag k5stall ks5tanz k3s4tar kstat4 ks5tat. kstatt5 k3stau k3stec k3stei k4steil k3s4tel k3s4tep k5stere k3steu k3s4tew k5s4tieg k3stil k3sto k4stod ks4toe ks4tol k4ston ks4top k4stot ks2tr k6straen k4strän k4s5tres ks5troc kstro4m5 k4strop k3stub k5s4tuec k4s3tüt k4s3um. ks3umb k4s3ums k2s3un k2s3ur 2kt kt3abr k2t3ad kt3akr k4t3alg kt3al4l ktal3s4 kta2m k4t3amo kta2n kt3ana k4t3ang kt3ano kt3ans kta4ra kt3a4re kt3arm kt3ars kt3art kt3arw kt3asp kt3atl k4t3auf kt5aust ktauto4 k3te. kt3eff kt3ein k4t3e4la k4telem k3te2n kten3e kten3s4 k4t5entf k4tentl k4t5ents k4tentw kten3z kt3e4pi kte5r4an kter5ei k4t3erh kte4rik k4t3erö kt3erp k4t3e4ti ktgan4 ktge3n4 kt1h k4thel k2thi k2t3i2d kti4me kt3ind kt3ini k4t3ink kt5insa kt5inse kt3inv ktion4 kti4s3e k4t3iso kt5i4ter ktiven6d kt3oef k5toer kt3of kto4n3a ktop3a k5tor. kto4rei k4torga ktorgene6 kt3ott k4t3ram k4t3ras k4t3rau kt3räu kt3rec k4t3ref kt5reic kt2ro ktro3e ktro3s k4t3run kt3rü kt1s kt3s4a kt3sä kt3se ktsen3 kt4s5ene kt2sk kts5org kts4pa kts2t kts2z kttei4 k4tunf k4t5ungl k4tuns k2tup ktu4ran ktu4ras ktu4rei ktu4rer ktz2 1ku ku4al ku3an ku1c kuck2 kue5bel ku3en. kuer4s ku3fa kuf3s kuge4l5a ku2gl ku2h1 kuhle4 2k3uhr ku3in kulan4z ku3li 2kulp kul4t3o kul4t3r k3umba 2k3umd ku3m4e 2kumg k2umk 2kuml k2umr kum4san k3umsc kum4sei kum4ser kum4si kum4sp k3umw 2kumz kun5d4a kunde5i kundein6 k3une k5ungeb 2kunm kun4s4 kunst3 kun6ste kun6str 2kunt 2kunw 2k3up. ku3pfl kup3s2 2kupu kur5ans kur4bl kur5ein 2k3url ku2r3o kurr2 kur4sei kur4ser kur4sin kur6s5or6te kur4s3p kur4ste kur4str 2k3urt kur5tsc kur4zel kurzer6k ku4sak kusa4r ku4schl ku4s3el ku4s3er3 kus3ev ku2sp kus3pi kuss4t ku2su 2kut. kut2a kut3ei kut6schw 1kü kü3bel 2kübl kü1c kü2li kür2s 2kv k3va k3ve 2kw k1ya ky3la 2kz2 kze5le kz4en kzeu4g5i k3zu kzue4r3 1la. 1laa la3ar la3at la3ba la4bad 3labä 2labb lab4bri 2labd 4l3aben 2labf 2labg 2labh l3a4b3i4t 2l3a2bl 2labn l3abon l4abor 2l3abp la3b4ra lab4res 4labruf 2labs 4labtei la4bus 2labw l4aby 2labz la3ceb la3cel lacher4 la6ch5erf lachste6 lachter6f lach6terp lach4t5o la5chun 3lack. lacks4 l3ada 2ladd 3ladem la4des. 4ladj 2l3adl l3adop 2l3a2dr 3ladu 2ladv la2e l4aed 2laef 3laehm 4l3aehn 3laemp l3aemt 4l3aepf 2laeq l3aerz lae4sc 3laeuf 4l3aeug lae3um 2l3aex la4f3ae la2f3ä la4f3ei la4f3er 2laff l4afi laf3s2 2laft4 la2g3a2 la2g3ä lag5eis lagen5d lag6ers 2lagg la4gil la4gin 4l3a4gio la2gl la2g3n lago2 la4gob lag5s6eid lag5spa lag5stan lag5sto 1lah lahn3 1lai 1laj 4l3a4kad la4k3ar l4ake la4kes la4kin 3lakka l3akko l4ako la4kro l3akt. l3akte l3akts 2l1al 3lala. lal3ab 3l2ali 2lamb la4mei lament4 la4mer lam4m3a 3lammf 2l3amn 2lamo la4mor l3ampl 2l3amt lamt4s 3lamu la4mun la4nae 4l3anal 4l3a4na3t la4nau 2la2nä 3land lan4dam lan4dan lan4d5au landei6g lan6d5en6t lan6d5erh lan6d5ers lan6d5erw lan6d5erz lan6ding lan6d5inn lan4dob lan4dra lan4d5ru lan4d5rü 4l3anek l3anem lan5ente lan5erd la4n5er4f la6n5erst lan4gae lan4gan lan4gar lan4gat lan4gä 6l5angel. 6l5angeln lan6g5ere lan6gerl lan6g5ers lan6gerw lan4g3i 4langri langs4 lang5sa lang5sc lang5se lang5si lang5sp lang5ste 4lanhä l4anhe 4lanim 4lanke lan4k3l 2lanl 2lann 4la4nod la4nof la4nor l4anpu l4anro 2lans 3lanse 3lansw l4ant. lan4tan l4anti l5antig 4lantw lan3um 2lanw l4anwar l4anwer 3lanx lan4zel lan6z5erf lan6zerg lan6z5erh lan4zw 2l3apf la2ph 2l3a2po 4lappa lap4pl l4ar. la4r3ab la4r3ac la4r3a4g la4r3an la4rau 4l3area lar3e4b la4r3ei la4r3el lar3g lar5ini lar5ins l3arkt 4larm. lar4mau lar4mei l5armem l5armer 4larms 3larn 4l3a4rom 3larp lar6schl lar4ter l3arti lar3tu 3l4aru 3l4arv lar5za 4larzn lar3zw la4s3aa la4sae la4sam la4san la4sas la2sä lasche4 la4s3ei la4s3e4l la5ser la6s5er6ke 2lash 2lasi la4sin la4s3is la4sor 2la2sp lass5erkl 5lassern 5lassers las5sto las5s4tr las5stu la2st last5ae last5an last5ar last3ä last5ein las3ti 4lastiz la4stu 3lastw 3lastz l4at. l4ata lat5ang la4tar 3l4atä la3t4e 3late. l3a4tel late4n 3later late5ra 2lath la4ther la3ti 2latl l3atla 2l3atm la4toe la4tol 4l3atom la2tö la4t3ra4 la4tro lat6schn lat6schw 4latta lat4tak lat6tals lat4t5an lat4teb lat4tex lat4t5in 4lattr lat4t5ro lat4zei lat4zer4 3laub. laubens5 lau4bra lau4bre laub4se lauch5a lauch5s l4auer lau4f3a lau4fel lau4fer lau5fer. lauf5ere lau4fin lau4fo lauf5st laug4l l4aui 2lauk l4aun 4laun. l4aur l4aus. lau6scha 4lausd 4l3ausf 4l3ausg 4lausr 4l3auss 4lausw 4l3ausz lau4tae 4lauto lave2 laven3 1law lawa2 4lawe. 4lawis 1lax la4xel lay3s lä1c 1läd 2läf 2lägy 3lähm 2l3ähn 3lämp 2l3ämt lände5s 2l3äpf 2läq 2lära lär4mar lär4mat lär4mei lär4m5em lär4mun 2l3ärz lä2sc 4läser 3läuf 2läug 2läx 1là 2lb l4babw lb3ang l4b3ant lb3arb lb3a4ri lb3ärm lbb2 lbby2 lbei6ge. l4b5eise l4b3elf lbe2n lben3e lbengene6 lben3s lber4ei lbe4rem lbe4ren lbe4ris l6b5ersti lbe4tag lbe4tap l2b3i2d lb3lag lb3las l4bled lb4len lb2lö lb3oef lb3oel l2bof l4b3ora l2b3ov l2böl l4brea lb4s3au lbs4t lb4st5ac lb6staende lb4stam lb4st5an lb4stau lb6stände lbst5er lb4str lb2u lbu2n l4b3une lby2t 2lc l1ce l4ch. lch5arm lch3ec lch3ei lche4n l5chen. lch5erh lch5ern lch5ers lch5ert lch5erz lch3eu l3chi lch3la lch3lä lch3li l3chlo lch3n lch3ob lch3re lch3sh lch3s4t l2ch3u lch3w l1ci l2ck l1cl l1cr 2ld l2da2b3 l2da2d ld3aef ld3aer ld3aes ld3aet l2daf l2da2g l2d3ah l2d3ak l2d3al ld3ams l2d3a2n ld3arb ld3arr ld3art l4d3ass ldas4t ld3asy ld3ato ld3att l3däm ld3är ld3äs ld3ät ld1c lde4ben l2d3e4i ld5elef l4d3elf l4d3emb ld5e4mis l4d3emp l4d3ems lden5erg lde4ni lden5st l4dentl l4d5ents lde5rae l6d5er6fah lder6gebn l6d5erlas lder6pro lder3r lde4sel lde5skr ldes4sa lde5sta lde5stel lde5str l2dex ldhof5s ldi2a ldi3ae l4d3ide ldi2e ldien4 ld3ill ld3i4mi l4d3inf l4d3ins l4d3ion ld3iso ldo4br l2d3oh ldo2p ld3ope ldo2r l4d3ori ld4os ldos3t ld3rab ld5raen l4draeu ld3ral ld3ras ld3rat ld3rau l4d3rän l4drech ld3rie ld3rob ld3rod ld3roe l4d3rol ld3rom l2drö ld3run ld3rüc lds4kl ld3sko lds2p lds4to ld3tu l4dueb ldu3i l2d3ul l2d3um l2düb ldwa3r 1le le2ad le4an. le4anm le2as le3atl leauto4 le2av leben4s5 le5ber 2lec lech5au le4ch5ec le6chens le4chi lech5oe lech5o4f lecht6st le3cka leck5se 3leco lede4r5i ledi4e le4dit le2dr 2leeg 3leer lee4ret le3f4a 2l3eff lef2l lef4o le4gabt le4g3ae le4gang le4g3ar leg5ast le4gau le2gä lege3s le4gesl 4l5egge. 4l5eggen legi5en le2gl le3g4le le2g3n leg2r legs2 leg5ste leg5str 4lehe. 3lehm 3lehr lehr3a leh4rei lehr3o4 le4id lei3dr 3leien lei5eri 2leif lei4fan lei4fei lei6fer6g lei4fi 4l5eigen 3leih lei4hau leil4 le4im lei4mau 4leimb 4leimh leim3p le5impo l4ein. 4l5eindr lei6nerb lei6nerk 4leinn 4leinsa 4leinto 4leintö 4l5einzi 2leir lei6sch5a lei6schei lei6sch5l lei6schn lei6scho lei6schw 6leisens lei6s5ern 4leisf 4leiss leis6s5er6 leis6ste lei5stro 4l3eisz 2leiß lei4ß5er4 lei4tae lei4t5a4g lei4t5ak lei4tal lei4tem leit5er6kr lei4t3o leit5sk leit5s4p leits4t 2leiw 2l3ek3s 4lektr 2lekz 3lela le4l3ab le4l3ac le4lef lel5ein 4l3e4lek 4leleme leler4 lel5erd lel5erk lel5ers lel5erz le4lev lel3ex 4l3elf. 4l3elfe le4lim le4l3in le4lor lem5anz le4mau lem5ein lem4en lem5erf lem5erk 3lemes 3lemet le4m3id le5mil 3lemmi 4lemmt le4m3o4r l3e4mot 2lemp lemt2 le2mu l3emul l4en. lena4b len3a4d le4n3an le4n3a4t le2nä 4lendl 4len4dog l3endp 4lendun le4n3e4b len3ec le4n3ed le4nel lenen5erg le4n5eng len5erf 4l5energ len5ero len5ersc len5ert le4nerw le4net le4neur 4leneuv len3f2 4l3eng. 4len4gag 4l5enge. len6gem. len6ges. 4lengp leng4r len4kar len6k5lag len6k5lei len6klin 4lenniu le4n3on le4n3or le4n3ot len6s5ein len6serk lens4po len5sta len5sti len5str len5stu 4l3entb 6l5enteig l5entfe 4l3entg 4l3entk 4lentla 4lentlu 4lentlü 4l3entn 6l5en6trop 4l5entrü 4lent4wa 4lent4wä 4lentwi 4lentz le4nz len5z6er len4zin len4zun len3zw lenz4wo 4l3enzy le3o2f le3o2s le4pen 3le3p2f 2l3e2pi 4l3epoc l4era ler5abi ler5aeu ler3a4g ler3al ler3a4s lerauto6r le2r3ä 4l5erbe. 4l5erben ler6blin 4l3erbs 4l3erbt le4r3e4b lere3c ler3ef ler5eigen. 6l5ereign le4r5ei4m le4rei4n ler5eis. le4r3el le4r5eng le4r5ens ler5er5e le4rerf le4r5erg le4r5ers le5res le4r3e4t ler6finde l5ergen. 7lergenau lergene6 7lergeni l5ergenr l3ergi 4l5ergol le4rh 4l5er4heb l4eri le4r3i4d leri4e lerin4d lerin4f lerin4g lerin4s le4rk2 le4rl 4l5er4las 6l5erlaub 6lerlebn 4l5er4leu le4rn ler4nal ler4nar ler4nau lerner4 ler3o4b ler3o4f le3ros 4l3erot 4l5eröff le4rp l4erra 4l5er4ric le4rs lers4k ler3sw le4rt le4rup 4lerus ler6waeh ler4wäh le4rz 4l3erz. 4l5erzeu 4l3erzg 4l3er4zo 3lesb lese5in4 lese5ras lese5s4k les5ess l4e3s4h lesi3e le3s4ki le3sko 4lessi lester6i le3sto lestra4 le3stu 2lesw 2lesy 4l3e4tap 4l3e4tat 4lethi 4lethn lets2 letsche6 let4tau let4tel let4top lett3r lett3s4 2leue le3u2f leu4ka 2l3eul le3umb le3u4mi le3umo le3ums 3leunt le3url 4leuro 3leut 4leve. l3e4vol 2lex 3lexik le4xis lext2 2l1f lfa5chu lfa2k lf3aka lf2at lf3aus l2fec lfe3e lf5einh l4f5erei lfe4rel lferin6d lfe5str l2f3im l2fj l3f2jo lf2lö lfpi2 lf2r lf3ram lf2sa lf2sä lf2so lf4spe lf4s3ti lf2su lfto2 2lg l4gabs lge3in4 lgene6ri lgen3s lge4rab lge3u lgge3 lgi3en lgin4s l3g2le lg2lö l3go lg4san lg4sau 2l1h lhauser6 3lhi. lhu3s2 1li li3abe li3ac li3ak li3an4g li3ato liär2 3lib2 libi3e li3ce 4lichet lich3r lich4ta lich4to lichts4 licht5sp 2lick l2id lid4a li4dea 4l3idee lidi4e l3i4dio 3lie. lie4ba liebe4s5 lie4br li3e4f3a 5liefer li3efk li3efl li3efm li3efp lie4fr liefs4 li3em lie4n3a4 li5enb liene4b lie4no lien3s lie4r5ei lie4s3c lie4s5t li3f2l li3f2r 3lift lif4tu lig5ang liga3s li4gatt 4l3i4gel lige4n li4g5er4s li4gin li2g3l lign4 li5gna lig4ne 2ligo li4g5rad li4gre li4gro ligs4c lig3se lig3sp lig4st lig5str li3ker lik4li likop4 lik4spr lik4tau lik4ter lik4th lik4t3i likto4 lik4t5or li3la li3li 2l3ill li3m4a lima3c lima3e lima3s 2limm limma4 3limo 2limp lin5all lin3a4m lin4d5ei lin4del 4lindex 4l3indi 4lindo 4l3indu li4nef li4neh li4nep line3s 4l3infe lin4gl 2linh 3linhe 4linik lin5iti 2linj lin4kar lin4k5au link3l lin4kla 4l5inner li4n3ol 4l5insel lins4p 4linspe lin6struk 4l3insz 2lint li3n4um li2o li3oe lion4 li3ons lio3r 2lip. 3lipt4 2l3ira li4rak li4ran 3lis. li3s2a li4schl li5schm li4schn li4schu lis2h li3shi 2l3isl 4l3isol 4lisot liss2 lis3sa li2st lis4tra l2it lit2a li4t3a4d li4t3ak li4tal lit5all li3t4e lite3i litein4 lite5rar lit2h 3lito li4tri li4tro lit3s2 li2tu li3tus lit4za lit4zi lit4zu li4vea live4n 2livg livi3e 2lixi li4z3ae li4z3an li2zä lizei5t li2zo 2lj 2l1k lk2a l4k3abl l4k3aeh l4k3alg l4k3alp lka4ner lka4n5in l2käh l4k3eif lken3s4 lkenvo4 lke3re l3kla l4k3lad l3kle lklore5 lk2lu l2knu lko2f lk3ofe lkraf4 l4kres l4k3rob lk3roc lks1 lk2sa lk3sän lk2se lk3s4ke lk2su lkue3b lk2ü lkü3b 2l1l ll3abb lla4ben l4labk l4l5abri l4l3abt l5laby ll3aff ll3aft l6l5agent lla3gl l4l3a4ma ll3amb ll3amo ll4anb lla6nent lla4ner ll3ann lla4no l5lans. ll5ansä ll5ansi l4l5appl l4larc lla3rö ll3a4sc ll3atl ll5attr l4l5auff l4l5aufg l6l5aufko ll5aufl l4laufn ll5aufsi ll5aufst ll3auk llau4m ll3aus ll3axt llb2 ll1c ll3d2 lld4e ll5ebene ll3ech lle3er lle6ges. lle6gest ll3eif l4l3eig ll5einsa l4l5eise lle4la lle4lei lle4ler l4l3e4mi ll3emp lle4na ll5endl ll5en6dun lle6nens lleng4 llen6ge. lle4n5in llenk4 l6len6sem l4l5entf l4l5ents l4lentw llen4zy lle4r3a ller5eis l6l5er6fas ller6geb l6lergen l4lergi ller6kla ller6klä ller6kun ller6laub ller6müd l4l5ernt l4l5eroe l4l3er4ö ll6ers. l6l5ertra lle4ses lle4spo lle4th llet5he ll3ex3e ll3ext llf2 llg2 ll3ide ll3ido lli4gan l4l3imb ll3imp l4l3inf llings5 ll3inj l4l5inst ll3int lli5on. llk2 lll4a ll3m2 lln2 l4l3obe ll3obs lloe6sen l2lo2f llo4ner ll3opa l4l3ope ll3opf l4l3orb l4l3ord l4l3o4ri ll3ort l4l3osz l2l3ou ll3ox llö4sen llrue4c llrü4c lls5amte llsau4e ll4s5en5e ll4s3es llsgene6ra lls5int ll3sla ll3sli ll5s6temp ll3sti ll4stor llti4m ll3umm ll3urg ll3urn ll3urs llus3t4 l2lüb llz2 2l1m l2m3a2b l4m3aep lm5aerz lm5aest lm3aka lm3alm lma2m lm3ama l4m3apf lm3arr l4m3art lm5auss lm5ausw l2mäp lm3ärz lm3äst lm1c lmd2 l2m3e2b l2m3ef lme2h lm3ehe lm5eins l4m3emu l4m5ends lme4no l6mensem lmen5st lmen4zy l2m3e2p l4m3er4b l6m5ereig l4m3er4f l4m3er4r l4m3er4z l4messa l2m3i2d lm3iko lm3inh lm3ins lm3int l2m3of lmo2p lm3ope lm3orc lm1p2 lm3s2k lm3s2n lms2t lm5ste lms5tur lms2z lmt2 l4munt l2m3ur 2ln l1na ln2ab lna2r l4nare lnd2 ln2e l3nei lnes4s ln4eu l2n3in l1nu lnus2 l1nü l1ny 1lo 3lob. lo3ba 4l3o4ber lobe4s 2lobj lo2bl 2l3obm lo3che lo4chel locher4 loch3o lochs4 lod2g lodi4e loe2b 2loed loe3du loe2f l3oefe l3oehr 2loek l3oel 2loep lo3er. loe4t3a 2loé l1of 2lofe 2loff lo3fj loga2 lo4gar lo4gei lo4g3el lo2g3l lo4gor lo4gre logs2 log3sp loh4e lo5her loh4ner lohn5erh lohn5erw 2l3ohr loi2r 2l3okk lo2k3r 2l3okt 4l3oliv 2l3o2ly lo4mel lom5ing 2lomn lo4n3al lo4nau lon3er lon4gu lon4sae lons4p lon5sta 4l3onto lo3ob lo2op lo4pal lo4per lo3pi lop4p3a lop4pr 2lopt lo3rad lo4r3am 4loran lo3ras lo2rä lor3do lo3re lorein4 lo5r4en 2l3or3g2 lori4di lori6en. lori6enm 2lort2 l2os lo2sa 3lose lo4ske 2loss lo5stei loste4r5 4l3osth los3tr lo3s4tu l3oszi 2loß lot5ein lot2h lo3tha lo4thr 3loti loti4o lotte4n lot3tw 2lotz lour4s 2l3ouv l1ov 2lo2ve l2ovi 2lox 1lö lö2b 3löch 2löck 2löd lö2f 2l3öfe l3öffn 2l3öhr 2lök 2l1ö2l 2löp 2löss l3östl 3lösu 2löß 2löz 2l1p lp2a lpeng4 lpen3s lpete4 lp2f lpf4e lp3fen l5phas l4p3hir l4p3hoe l4p3hor l2p3hö l2p3hu lpi2e lpi2p l4ple. l3p2n lp3sta lp3sti l3pu 2lq 2l1r2 l3ra l3re lroe4s3 lro2h lrö2s3 l3ru lrue3b lruecker6 l3rü lrü3b lrücker6 2ls lsa4b3a l2s3a2d l4s5aeus l4saka ls3alt l4s3amp l4s3ana l4sanb l4s3ane l4sanf ls3ang l5sani l4s3ank l4s3anm ls3ann l4sanr l4sant l4s3anz ls2ap l4sa4ri ls4ark ls5assi l4s3au. l4s3auf lsau4m lsau6rer l4s3aus l4saut ls4äug l4s3äus lsby2 ls2ca lsch5eint lsch4le lsch4lo l4schmü l6schore lschs4 l4sch5wo l4sch5wö l2s3e2b l4s3eie ls5einf l4s5eint l4s3e4li l4s3emb l4s5enzy l4s3epi l4s3er3e l4s3erf l4s3erg l4s3erh l4s3erk l4s3erl l4s3ern ls3err l4s3ers lse3r4u l4s3erw l4s3erz lse2t l4s3eta l4s3eth lsex4t4 l3s4ham l2s3id l4s3imp l4sind l5skand l5s4kele ls2ky ls4law ls4lip l2so2b l4s3oef l2s3op l4s5ort. l4s5orts l1sö l2söf l3s2öl l1sp l4spag ls4pare ls4park l4sparl l4späs ls2pe l4spiz l4spoe ls4pon ls4por l2spö ls5prae l4s3prä l4spun ls3s2 l3st2a lstab4 ls5tabl l6s5taeti l4stag lstahl5 l4s3tak l4s5tanz l4stas l4s5tat. l4s5tate l4s5täti l3stea l5steck l3stei l4steil l3stel l6ster. l5s6ternb l5s6terns ls3tes l3steu ls4tie l3stil l3s4tip l3sto l4stoch ls4toe ls4toi ls4tol ls4topf l3s2tr l4s5trac ls5trad ls5trit lstro6ma l3s2tu l4s3ums ls3umv ls3unk 2lt lt3abr lt5ach. l3t4a3d lt3aeh l4t5aerz lta3f2 ltag2 lt3agr lt3aka lt3all lt3alt l4t3alu l4t3ame ltampe4 lt4anda ltaner4 ltan6gab ltan6ges ltan4sa ltan4sä ltan6str lt3a4po lt3app l6tarbei ltar6beitn ltare4a lta5rhe l4t5arma ltar6me. ltar6men. lt5art. l5tarta lt5arte ltar6tik l5tartis l5tartr l5tartu lt3asp lt3atl l4t3ato lt5aufb lt5aufk l4taut lt3äh l4t3ärz ltbau5c lt5eben lte2c lt3eck lte3e l3tehu lt3ein lte5iso l4telem ltem4pu l4temul ltende6s lten6gag lten6gel l4tentl l4tents lte4rat lter6be. lter6bel l5terg lter6kun lt5er4nä lter5oe l4t3esk lte5sta lte5stra lte5stre lte5stro lt5etho l4t3e4ti l3thas lt3heb lt5heri l2t3hi l2t3ho lt2hu lt3hun l2t3hy lt3ide lti6g5er6k l4t3ind lt3inf l4t3ins lt3inv lt3i4ra lt3i4ri l4t3iso l5tist l4t3o4be l4t3obo lt3oef lt3oel lt3oes lt3oet lt3o2f l4topt l4tord l4t3org l4t3o4ri lto2w l2töl lt3ös l4t3öt ltra3l lt5räuc lt3rec lt5reic lt5reif l4t3ris l4t3roh lt3ruc lt3rum lt4sas lt4sau lts5eins ltse4l lt4s5ele lt5skal lt4s5ort lt3s4ph lts4por lt4staf lt4stie lts4tre lt4s5tüt lt3t ltu4el ltu3en lt3uh l2tum lt3ums ltu4rab ltu4r5an4 ltu4ras ltu4rei lturen4 ltu6r5ent ltu6r5enz ltu4r5er ltu4r3i ltz2a 1lu. lu3an 2lub1 lu2ba2 lu2bo lub3s2 luch4s5a luchs5t luch4to luch4t5r lucht6s5o lu4cku lu4de. lu2dr 2lueb 3luebd luecke4 luecker5 lu3ent lu3enz lue6scha lue6schw 1luf 2l3u2fe 2luff lu3f2r luf2t luft3a4 luft3e luft3r lu4g3af lu4gas lu5ge. lu4g3e4b lu4gei lugen3 lug5erl lug5erp lu2g3i2 lu2g3l lu2go lu2g3r lug3se lug5spo lug5ste lu2gu 2l1uh l2u3hu lu3id. lu3is. luka2 3luke l3ult lumbi5e 2l3umd lume2 lumen3 2lumf 2lumg 2l3umh l3umj 2lumk 2luml 2lumm lum4p3h 2lumr l3ums 2l3umw 2lumz 1lun 2l3una lu3nap 2l3unb 2l3unf l4ung. 4l3ungl lungs5t 2l3u2ni 2l3unl 2lunr 2l3uns 2lunt 2lunv 2lunw 3lupe lupf3 lu4r3an lu4r3at lu4rau lurch3 lu4r3ei 2lurg lu4ris l3urk 2l3url 2lurn lu4ror 2lurs l3urt lur3z2 2luse lu3si lu3spr lus4s3a lus4s3c lus6sein lus4s5el lus4s5er4 lus4si lus4s3o lus4s3p lus4st luss5ti lu2st lust5ae lust5ak lust5ei lus6t5erf lus6terl lus4t3o4 lus4t3u lu2s3u lu2ta lut3ae lut3an lut3au lu2tä lu4t3eb lu4t3e4g lu4t3ei lu4t3el lu4t5en4g lu4t5ent luter4 lu4t5erb lu4t5ere lu4t5erg lu6t5ersa lu4t5erz lut3ex lu4thy lut5ins 2luto lu4t3ob lu4toe lu4t3o4f lu4top lu4t3or lu2t3r luts4a lut5schl lut3s4k lu4t3ur 2lübe 2lübu lücke4 lücker5 lügel5e lü4h3el lü4hem lüh3l lü2s lü4scha 2lv l2veo lv2l 2lw 2lx 1ly ly1a2 ly3c ly3en ly1l ly1o lyri3e ly3sp ly3th ly4t3re 2lz l4z3aer l2z3ag l2zak lz3al l4z3ant l4z3app lza2r lz3aro l2za2s l2zat l4z3aus l2z3är l4z3eig l4z3eim l4z3eis lze2l l4z3ele l4z5enth l4zents l4zentw lze2p l4z3er4h lze3ro lz5ersa lz5er4tr l4z3er4z lzeugin6 l2z3id lz3iko lzi2m lz3imi l4z3ind lz3inf lz3ing l4z5inst lz3int lz3l lz3oef l2zo2f l2z3or l2z3oz lz5rei lzt2 lz3tha l4z3u4fe lzvol4 l4zwar l2zwo l2zwö l2zwu 1ma 2m3aal ma3ala maa2n ma3ari ma3atl 2m3abb 2mabd 2mabf 2mabg 2mabh 2mabk 4m3abla 4m3a4blä 2m3abm 2mabn ma3bo mab4ra ma4bri 2mabs 2m3abt 2mabw 2mabz ma4c3ar ma5chan ma3chi mach4ta mach6terf mach6t5erg mach6t5erh mach6terr mach6t5ers mach6tert mach6t5erw mach4tr ma3chu ma2ci 2mack mack4s 2m3act mada4m 2m3add ma4del ma3dj 2m3adm 2m3ad2r mad2s 2madv 4m3aend 4m3aepf ma3epo 2maeq ma3erh ma3erw maes3t ma5estr ma3eta mae5us. maeu4s5c ma1f 2m3aff maf2r 2m3aft ma4ge. ma4geb ma4geg ma4gek mage4n3 ma4gep ma4ges. ma4gev ma4gew 2m3agg magi5er. magi5ers m3a4git ma3g2n mah4ler ma3ho ma3hü mai4ler ma3ind mai4n3e mai4s3e ma4kad ma4ke. ma4kes ma3kla ma3kli mak2r 2m3akt ma4kus malad4a ma5lade mal5aer ma3lag mal5akt mal3an ma3las ma4lär malb2 6mal6dehy ma3lec malen4s ma4lent mali5er. ma4l5ins ma4linv malk2 4mallt ma4l3on ma4lop ma4l3o4r mal5ska malster6 mal5s6terb mal5s6tern malu2 ma4l3ut mal4zae 2m3amb ma4mid ma4moe 2m3a2mö 2m3amp 2m3amt m3anae 5manag 4m3a4nal man3an ma4nar 4m3a4na3t ma4nau 2m3anä 4manbie man4ce. man4cek mand4 maner4 ma4n5ern ma4net m4anfr man3g4a 4mangab 4m5angeb m3angs 5manip 4manla m4anle 4ma4nod man4o5m ma4nor 4manpa 4manpf m4anpl m5ansatz 4m3ansä m5anschl 4m3ansi mant3a man4tag man4tan man3um manu3s 4manwen 4m3anza manze4 m5anzeig m3anzu m3anzü ma3o2b ma2or ma3pfl ma4phr 4m3appa 4m3appl ma3pr 4marag mar4an 2m3arb 4m3area mar3g2 m3argu ma3r4i 3mark mar4klo mar4kr m3armb 4m5arme. mar4o maro5d ma3rö 2marr mar6scher mar6schl mar6schm mar6schn mar6scho mar6schr mar6schw mar4sp mar4su 4mart. 4m3arti ma3ru masch4 ma3sco maser4n5 ma2s2p ma3spa ma3spr massen5s 4m3as4so mast5an ma5stel mas4ti mas4to ma3s4tr ma4t3ae ma4t3an ma4t3ar ma4tat ma2t3ä m3a4tel mate4n3 ma4t5erd mat5er5in ma4t5erz ma4tho 4m3atmo ma4toa ma4t5opf ma4t5ort mat3s4p mats4t mat3th matt4ha mat4the mat5url 2matz 2mauc 2m3au2f3 2m3aug mau4les mau4l3o mau4lö ma3um m4aun ma3unt m4aus. mau4sa 4mausd maus3p maus3t 2m3auß mau4ta mau6t5erh mauto4r m2ay ma3yo 1mä mäh3r 2m3änd m1äp 2mäq mär4kl mär4zen mär4zer mär4zw mä3us. mäu4s3c 2mb2 mbe4er mben5er mbe4ren mber5er5 mbi3o4f mb4re mb3s mby2t 2mc m3ch2 m1cr 2md m2dab md3aer m2d3an md3arb md3art m2d3a2s md3ato md3är mde2a m2d3ei m4d3e4mi mde2n m4d3ent mder2 m4d3erf m4d3erl m4d3err m4d3erw mdi2a mdi2e mdien4 mdien6s m2dob md3ras m3dru md2s3a md2sä mds2p m2d3um 1me mea2n me3at meb2 me4ben me1c 4m3echo 3med medie4 me4dito 3mee mee5ing me5e4mis mee2n me3ene meep2 mee4rei meer5eic meer3u 2m3eff mega3s 3meh meh4l5er mehrer4 meh6rert 2meic 2m3eif 2m3eig mein4da meinde5s mei6nenz mei6ner6k mei6nerl mein6hal 4m3einl mein6sel 4m3eis. m3eisb me3iso 5meist meist5a me4l3au 3mel3d4 melde5i me3lec me4l5ein 4m3e4lek 4m3elem me4l3en me4l3er melet4 4m3elf. mel3id 4m3e4lim meli4n mel4k5ei 3melo me4l3ob me4lor mel3p mel4s5a4c mel4san mel4sph 6m5el6tern mel4zi 4m5e4miss 2m3emp me4na4b men4ag me4n3an me4n3au me2nä 4m3endl mend4u men3e4b men3ed men5end menen5e men5ent men5erb men5er5o men5erö men5ers men4erw mene4s me4n3e4v men3f 4men4gag me4nid me4nil me4n3im men3k2 men4s5au men4se. men4seb men4seh men6semb men4ser mens5ert men4ses men4sex men4s5i4d mens6temp mens5trun men5stu men4sum men6t5anz ment6arb mentar6ten men6t5eig men6t5enden men6t5ers men4tet men4thi men4thu men6tres men6t5rol me3nu me4num me4nun menz4w me1o2 2meou 2meö me1p2 me3ra mera3s merauto6 mer3b 4m5erde. 4m5er4den mer4dun me4r3e4b mer5eck mere4f me4r5eis me4r5end me4r5ens me4r5ent me4r5erd me4r5erf merer6kl mer4err 4m5erfol 4m3erfü merg4 4m5ergän 4m5er4gus meri4e merin4d 4m5erklä mer4näh mern3s4 mer3o4f mer4siv mer3sm 5mer5te me3ry 4merzä mer4z5er 3mes m4es. mes2a mes3ae me2sä mes3e4l mes5er5o mes3or mes4pe mes3pr mes4sal mes4s5an mes4say mes6sersa mes4s5or mes4ste mes4sti mes4stu mest2 me3sto 3me3ta mete4r3 me3t2h me4t3oe me2tö met5res me4trig metro5s mett5en6de met4t3i meu1 me3um meute5r6e 2m3e2x3e 2mexp 1mé 2m1f2 mfahr6ta mfi4le. 2mg2 mgeb2 mglim4 mgus2 2m1h2 mh4au mhaut5o 1mi mi1a mia2b mi3ak mia2m 2m3i2at mibi3e mic3e mi3ch mi2ci mi3cr mi4dea miden3 mi4di. mi3d2r 2mi2dy mie3dr mi4eno mien3s mierer4 mie4tau mie4t3i mie4trä mie4tre miet5st mi1f mi4k3ar mi4k3el miken4 mi4k5ens mi4k5er4z mi4k3in mi4k3ob mi4k3of mi4kon mi4kre mi4kum mi3l4a mil4i 4m3illu mi3l4u 2m3imm 2m3imp mi3na mi4nab min5anze m3indu min5eck mi4nef mi4n5e4r5i 4m3info min4gan min4gl ming3s4 mini5d 4m3init min5iti 2mink min4kr mi4n3of mino3s mi3nu min4z3o mi3o2b mioni3 mi1p mi3ra 2mirg mi3sa mis4au4 mi6schef mi6scherb mi6sch5er6z mi4schi mise3r 2mi2so mi3s4pa mi3s4ph mis3sa mis4sac mis4ser mis4s5in mis4st mit3ak mi4tar mit3as mit3au mite2 mit3ed mit3em mit3er mit3es mi2t3h mi3tia mit5iss mito2 mit3op mit3or mi2t3r mit3s4 mit5sa mi2tu4 mit3ur 2mitz mi2zw 2mj mjäge4 2m1k2 2m1l ml1c m3le mlein4g mlerin6t ml2v 2m1m mma4bar m4m3aeu mm3a4kr mm3all m4manb m4m3ank m4m3ans mmanu3 m4m3anz mma2p mm3apo mm3art mma3sp m2m3äu mmd2 m2m3e2b mme4dit m2m3ef mm5eise mmela4 mme4l5ad mme4l5in mme4no mmen6te. mmen6ten m4m5entg m4mentl m4m5ents m4mentw mme4r3a4 mme4rec mmer6sio mme2s mmes3a mme3sc mmes3e mmes6sens mmes3t m2m3eu m2mex mmi3e4l mmi3k2 mm3inb mm3inf mm3inh mm3inn m4m3ins mm3int mmisch4 mmi3s4t mmi3tu mmi3tw mmmi2 mm3ope m2m3ou mm1p2 mm3s2k mms4p mms4tr mm3te mm2th mm5ther mmuel4 m2mum m3mun mmut3s4 mmül2 mmüll3 2m1n2 mne4bl m4nesi4 mni3er 1mo m4obb 2m3o2be 2mobj mo3che mode5st mo2dr moeb2 2m3oe2f moe2h mo3ehe 2moek mo3ela mo3e2m mo3ero mo4fen 2m3off mo4g3al moh2a mo2k2l mok3la mo3kle 3molc molch5a mo3lo mom4e mo4n3ae mon3al mo4n3an4 mon5ato mo2nä mon4das mon4d5el mon6d5erk mon4dre mo4n3er moni4en moni5er. mons3t mon3s4u mont4a 2mony mo2o mo4per 2m3opf 2mopt mo3ra mo4rak mor4an mo4rar mo4rau mor4d3a mor6d5ere mor6d5erl mor6d5erm mor4dr mo3re. mo4rei mor5eng morgen5s6 4m3orgi mor3in moro2 mo4rop mors4t mor3t4 mo4ska mo3s2p mo2st mo3s4ti mo2s3u mo3t4h mo3to mo2u mous2 2m1ox moy1 1mö möb2 mö2c 2m1ö2f 2mök 2m1öl 2mp mpa3ne mp2ar mp3arb mpat4 mpe4la mpe4ler mpe4lin mpe4ne m4p5ener mpen3s4 mpf3au mpf3ef mp4f3el mp4f5enz mp6f5erfo mp6f5erfu mp6ferle mp4f5erz mpf5lae mpf3lä mpf3lo mpf3ra mp3haf mph3au mphe2 m4phoe mph5org m2phö m3pi mpi2a mpin4 mp2l mp3le. m4p5lem. m4p3len m4p3les m2p3lu m3po mpo3li mpor6tag mpor6ter m1pr mp3sh mp3sta mp3s4tr 2mq 2m1r2 m3ra m3ru 2m1s m4s3aen m2sak ms3all m4s3alt ms3amt ms5andr m4s3ang m4sanr m4s3ant m2sar m2s3a2s m4s3auf msau4n m2s3än m4schan ms5chef msch4l m3schu m2s3ef ms5einsa m3s4ek m4s3e4le mse2n msende4 m4s3ene m4sentl m4s3erf m4s3erk mse2t ms3eti m2se2x ms3imp msi2n ms3ini ms3int m2sk m2s3o2d mso2r ms3orc m4s3ori m2s3ou m4sped m2spl ms4pon m4spot m4spro ms2pu ms3s2 mss4a m3stät ms5täti m3stei m4s3tem m4ster ms3tes ms3tet ms2ti m4stit ms2to m5s4tras mstro4 ms2tu ms5turm m2sty ms3ums m2s3ur m3sy m2szi 2mt mta2m m3t4as mt3änd mte2a m2t3e2b m2t3e2d mt3ein m4t3eis m4t3eiw mt3elt mte2m m4t3emi m4ten4ga m4t5engl mte4no mten3s m4t5en4se m4t5entf m4t5entg m4tentl m4t5en4tr m4t5ents m4tentw mte4ri mter4n m4t3eta m2t3eu m2t3e2v mt1h m2t3i2d m2t3im mt3inb mt3ind mt3inf mt3inh mt3ins mt3inv m2t3i2r mti6schw mt3isr mt3ita mtmen4s m2tob mt3oes mt3ord mt3org m2töl mt3ös m4trah mt5rang mt5rauc mt3rec m4t3res m4t3ris mt3rot mt2sa mt3s2c mt3se mt4s3e4l mt4sen mt5send mts3k mt5s4kel mt5span mt5spru mts4tro mtt2 mtu3en mt3um mtz2 1mu mu1a 2muc mu4ckel mucker4 mu6ck5erz muck5sp 2m3ueb 2muec mue4her muehl5a mu3el. mu3els mu3ez mu2f 2mug 2m1uh mu3la mul4lau mul4l3e 2muls mult2 2m3umf 2muml 2mumr mum4s3p m3umst 2mumt mundan4 mun6dant mun4dar mun6d5erf muner4 mu4nerk 4m5ungeb 4muniv m2unm 2munw 2munz 2m3url murn2 mu3r2u mu4r3u4f mu2s3a mus5erf mu4sin mu2s3o mus4s5e4h muss4p mu2st 4must. mus3ta mu2su muße3 mu4t3au mu4t3er 2m3u2to mut4str 2müb 1müd 1müh mü4her mühl3a 1mül 1mün 1müt 2mv 2mw2 mwel2 mwelt3 mwelter5 1my my1a my3la my3on. my3s2p my4s3t 2mz2 1na. 1naa n1ab 3naba na4b3ar 3nabä 4nabb 4nabd 3nabec na4bei naben5s4 nab5erk nab5er4r 2nabf 2nabg n3abh n2abi na4bi4t na2bl na4b3or na4bos 3nabö na4bra na4bre na4bri nab4rue n4ab4rü 4n3abs 4nabt na4bus 2nabz 3nachb na4che nachen4 na5chen. nach5ent5 nach5erb nach5ers 3nachf 3nachh nach3i 3nachl 3nachm 3nachr nach3s 5nachsc n5achse 5nach5s4p 3nacht n4acht. nachter6f nach6terk nach6t5ersc nach6traum nach6t5ren 3nachw 4nadap n3add n2ade nade4l nadel5a nadel5e naden3 na4der n5ader. nadet4 n2adi nadi5ers. n3adl 4n3adm 4n3a2dr n3ads 3n2aec 3naee 3naehe 3naehm 4n3aehn 3naeht 3naei 2n3ae2m 2n3aen n2aep 2naeq 3naer. na3erg 3naese nae5us. 3naex 2n1af 3na3fl na3fra 1nag nagel5e na4gem na4gent 2n3agg na4gio na4git na3g2r 1nah n2ah. na4h5erk 3n2ahm nah3oe na2hö na2hu 1n2ai na3i2d nai2e na3im 2n3air nai4re n1ak na4kad 3nakä na2kn 3nako na4kro 2nakt na4kus n2al. nala2 nal3ad nal3ae nal3ak nal3am nal5ang nal5are na2lä 4nalbb 4n3albk nalb4r nal3da na4leb na4l3ed na4l3ei na4lel na4l5end na4lent nal5ents na4l3ep na4l5erb na6l5erei na4l5erf na4l5er4g na4l5er4h na4l5erm na4l5er4s na4l5erw na4l5er4z nales4 nal3ex3 nalf2 nal3g n2ali na4l3i4d nali4n3 nal5ini nalk2 nal6l5en6g 4nallt n3almt na4lob na4loe nal5oef 4nalog na4lop na4l3or nal3ö n4als. nal5s4ka nal5skr nal4spu n3alt. nal5to n4alty na2lu nal3uk 2naly n3a4mal n3a4mat 3namä 3name. na4mei 3n4amen namen6s5p 4n3a4mer n3a4mid na4min 2n3amm 2na3m2n 3namo3 n3amp namt4s 3namy 2nana na4nae na4nal na4na3t n3a2nä 2nanb n3and2 n4and. nanden4 n4ands nan3er nan3eu 4nanf 2n3ang2 2nanh 2nani 4n3ank 4nanl 4n3anm 3n2ann 4n3anna 2nanr 4n3ans 4n3anta4 nan4tag 4nantr 3nanu 2nanw nanzen4 nan6zene nan6zeng nan6z5er6f nan6zer6g nanzer6m nan6z5ers nan4zw 1na1o 1naö na4per 3napf. na3pfa 4napfel 3napfs na4pos na2pr n1a2q n1ar 3n4ar. 3nara na4rab na4ran 3narä n4arbo 2narc 3n2ard nar5ein nare3s n4arge n2arh 3n2ari n2ark n4arle 4narm. n4arma 4narme na4rom na3rö n2arp nar4rh n4ars. narse3 nar4s5ta nar4stä 2nart n4arta n4arth n2aru na3rum n2arv n4arze 3n2as. 3nasa na4san na4sar nas3au 3nasä na4schw 3nase nasen3 3nasf n2asi na2sp nas4ph 4n3assi na3sta naster4 nas6t5erf na4sti na2sy nasy5la 1nat natal5s4 na4tat na4tau nat3ei na2th 2natm n3atmu n2ato 4natom nat4s5ac nat4s5en nat4sti 4n3atta naturen6 natu6renz n1au 3n2aue nau3eb 5naugeh 3n4aui 3n2aul na3um. 4nausd 3nauso 4nauss naussen6 5nauste. 5naustem 5nausten 5naustes n4aut. n4aute 1nav 2nava nave2 navel3 navi5er. navi5ers 1naw 3nax. na2xi 3naxp n3axt 3nazu 1nä 2näb 3n2äc 2näd 2n1äf n4ähe nä2hi 3n4ähm 2n3ähn n2ähr näh3ri nä2hu 3näi 2n1ä2m 2n1än n2äp 4näpfel 2näq när4s3t n2äsc n4äss 2näst 2näu 3nä3um nä3us. 2nb2 n3ba nbais4 nbau3f nbau3s n3bä n3be nbe3n4a nbe3ra nber4e nber4ga nber6g5ei nber4gr nbi2e nboge4 nbogen5 nb4or nbruchs5tr n3bs n3bu nb4un nby2t 2n1c n2cab n2cei n2cem n3ce4n n2cev ncha3l nchar6me n3che nchial5 nchi5en n3chl n3cu 2nd n2da2c ndach5s n2dad nda3ef nd3aet nd2ag n2dak nd3akt n4d3all nd5ange n4danl nd3ans n4danw n4d3arb ndar4da ndar4t5r n4daut n2dax nd3äng n2d3ät nd1c nd3d nd5dre nde4al. nde3e n4d3ei. nd3eil nd5ein. nd5einh n4d5einn n4deis nde4lat nde5lec nde4len nde4ler ndel5l ndel6s5am ndel6s5en ndel4s5o ndel5ster nde4m5ac n6d5en6gel. nden6geln nde4n5in ndenk4r nden5s4k nden5s6tem n4dentl n4d5ents nde3o2 nde6r5eis nde6r5eiz nde6reng nde6rent nder6läs n4d5eros nde4sam nde4san nde4sel nde4ser nde4set nde4stä nde5strae nde5strä nde5stri ndi5en. ndi4ene ndi4ens nd3imm nd5inan nd3iso ndni2 ndo4n5au ndoo2 n4dopt n4d3orb n4d3o4ri ndo3st n4d3ott n4d3out n4d3rat n4dreih nd3rob n4d3rod n4d3roe n4drose nd5rost nd3rot n2d3rö n5druc n4drui nd3run nds5amt nds5chin nd3sco nd4s5ene nds5erb nd4skl nd4spae nd4spä nd4sph nd4szi nd3te ndwa5re nd5wil 1ne nea2b ne2ap ne3ar. nebels4 2n3ebn neb2r 2nec 3neca 3nece ne3chr ne3ck4a neck5sp 3necl nedi4e ne4dit ne4e3i4g neel4 neen2 nee3ra ne3erk nee3ro ne3er4z nee3t ne3f4a nef2l neflei4 2n3egg neg2l n3e2go neg2r 4n3e4he. 4neheg nehen4 4n3e4hep nehe4r 3n4ehm neh4min ne3ho 2nehr neh4r5er 2n1ei 3neia nei6derf neid5erfu 3neigt 5neigu neins4 ne5in6sel n4einsu neiss4 neit4h n4ek. 2nekd 2n3ek3s nek3t4 2nekz n3e4las 4n3e4lek 4n3elem ne3lid ne4lim ne4lit 3nelk n2ell nel4l3a nel4l5ei nel6l5erf nel6l5erk nel4l5in 3n2eln 3nels 3nelt n2em. 4n3e4mai 2n3emb nem4e 4nemes n2emi 4ne4mig n4emo 4n3emp 2n3ems 4n3e4mul n4en. n2ena ne5nack ne4n3an ne2nä n2enb n2enc 4n3endb 4n3endd 4n3endf n3endg 4n3endh nen4dig 4n3endk n3endl 4n3endp 4n3endt 4n3endw n2ene ne4n3e4b nen3ec ne4n3ed ne4nel nen5end ne4n5en5e nen5ens ne4n5ers ne4neru nen5ess ne4n3eu n2en3f2 4n3engb 4n5enge. nen6gen. nen6gend nen6gens 4n3engs 4n3engt 4n5engun n2enh ne2ni nen3in n2enj n2enk2 n2enm nen4nar nen5nec ne2n3o2 n2enr n2ens 6nensemb nen3sk nens4p nen3st nens6tern 4n3entb 4n3entd 4n3entf 4n3entg 4n3entl 4n3entn 4n3entp nen6t5ric 4n3ents 4n3entt 4nentw 4nentz ne4n3u n2env n2enw n2enz nenz4w neob2 ne4pen ne3pfl ne2pi 2nepo ne4pos nep3t2 n4er. ne3ra. ner3a4b ne3rae ner3af ner3a4g ner3ak ne3ral ner3a4m ner3an ne4r3ap n4erat 4n5erbe. n5erbie ner4big 4n3erbs 4nerdb ner4dig ner4dun n2ere ne4r3e4b ne4r5eck ner3ef ne4rein ne4rek ner5ema ne4r5ere ne4rerf ner5ers 4n5erfas 4n5erfin 4n5erfol n6erges 5n4erhin n5erhöh n2eri neri4e nerin6st n2erj nerk2 4n5erklä 6n5erlaub n4erli ner6lösen ner6löses 4n5ermit n2ern 4n3ernä 4n5erneu 4n3erni 4n3ernt 4n3erod 6nerosio ner4pre nersau4 4n5ersts ne4rup n2erv 4nerwae ner6waer 4nerwä ner4wär n6erweis n4erwo 4nerze. 4n5erzes 4nerzeu n4erzim n2es. ne4sal nes4co 4n3e4sel ne4s3ev nesi5er. ne5skan ne4s3of ne4s3or ne4spa nes4pe ne4spr nes6sige nes6sigs ne3sta nesti4e nest5rae nest5ran nest5rau nest5rä nest5ri 4nesyn ne4tab ne4tad ne4t3an 4n3e4tap 4n3e4tat net3ei ne4t3e4l nete4n net5erh net5ers ne2th ne3the ne4t3in ne4t3ob net3sp net5str n4ett netto3 net3tr 4netui ne4tus 3netz net4z3i ne2u neub2 neu3c ne3ueb neu4ere neuer4f neuer4k neuer4ö neuer4r neuer4s neuer4w neu3g 4n3eule ne3umf ne3ums neun3s 2n3eup neur2 neur3a 4n3eury neu5sc neu3sp neu3t4 4neuzt ne4van 2n3e2ve ne4vid ne4volu n2ew new2s3 2n1ex nex3em 1né 2n1f nfa5chu nfah4l nf5akti nfall6s5o nfalt4 n4fanb nfangs5 nf2ar n4faut n3fä n3fe. n4f3eim nfen2 n3fen. n4f3end n3fer nf5erze n2fex n3fi nfi4le. nfin4s n2fj nf2l nf5laen nf3län nf2o nfo3st nf2r nf3s2 nf4tan nf2th nf2t3r nft4sen nft4s3p nft4st nf1u n2fun 2ng ng3a4b3i n2g3a2c ng3adr n4g3ael ng5aerm nga3h n2g3a2k ng3alm ng3a4me ng3amp ng3ams nga2n ng5anda ng5angl ng5ansc n4g3ant n4g3anz n5garn ngas5ta ng3ato ng5attr n4gauf n2g3a2v n2gäh n2g3äl ng3ärm ng3d2 n4g3eif n4g3ein n4g5eise n4gelem n5gelt n3gen ngen5ec ngen5erg ngen6erw n6gensem nge4ral nge6rend nge6rers ngerin6st nger6zae nger4zä n4g3ess ngg2 ngg3s ng3hu n2g3i2d n3glä ng4lea ng4led ng4le3e ng3ler ng4lev n4glig n4glog ng3los ng5lot. n4gluk ng3m n2gn2 ng3nar n3gnä ng3ne ng3ni ng2ob n2gof ng3o4pe ng3p ng5raen ng5raeu n4g3rai ng5ram. ng5rand n4g3rän n4g3räu n5gren ngres6s5o n5grif ng3rob ng3roc ng3rol ng5rost ng2s ngsauto6r ngs3e4h ng4sf ngsgene6rati ngs5tec ngs5türm ngt2 ng3ts 2n1h2 nhab4 nhabe6r5e n5halb nh4au n3he nhe4re nhe3x nhor4s 1ni ni3a2b ni3akl ni3akr ni5aleng ni5alim ni5a4lin ni2ar ni3as ni3ato nibb2 ni3be nib2l nib2r nibu2 ni3cho ni3chr nich3s nich4ta nich7te. nichter5 nicht5sp n4ide. 4ni4dea 4nidee ni4den ni5den. 4nideo nidi4e n3i4dio ni3d2r 2ni2dy n2ie nie3b 3nied ni2e3i ni3el. ni3elh ni3ell ni3elr ni3elw ni3elz nie2n nien3e4 nien3s4 niere4 nie4r5ei nie6rerg nie5sti nie4t3o ni4eu nife4s ni3fl n2ig niga2 ni4gab ni4g3am ni4g3an 4n3i4gel nig5erz 4niget ni4g3li ni2gn ni4gre nig4sal nig4san 4nikbr 4ni4k3el ni4k5er4f 2nikh ni4k5ing ni4klo ni4kor niko3s ni4k3ra ni4k3rä nikt2 nille3 ni3l2o 2n3imp ni3mu ni3nac ni3nae nin3al ni3nap ni3nä 2n3ind 2n3inf 3n4ing. 3nings 2n3inh 4n3i4n3it 2n3inj 2n3ink2 4n3inno ni4nor 2n3ins n4ins. 2n3int ni3n2u 2n3inv ni3o2k ni3ora ni3os ni4ron 2n3irr n2is ni4san ni4scha ni5s4che ni2s3e ni3se. nise4l ni3seu nisi2 nis3id ni4s3ik nis3in ni4s3oe 4n3isol ni4som nis3or 4nisot 3niss2 nis3sk nis3sz ni2st nis5tha ni2s3u 3nit. nita4le nit4an 4nitia ni4top 3nitr 3nit3s2 nit4t3a nit6teig nit6tele nit6ter6g nit6t5er6k nit4t3r ni3v 2nj n3jo 2n1k n4k3a4bl n4k3abo nk3a4br nk3adr n4k3aeh nk3aep nk3a4ge n4k3alg nk3alp nk3ama nk3ang n4kanh n4kanl n4kanna n4k3ans nk3apf nk5art. n4k3atm n4k3ato n2käh n2k3äp nke2c n4k3ei. nke4lei n4kelem nken5sk nken5str nken5stu nke6r5eis nker6fah n4k5er4zi nke2t nk3eti n4ketu nki2d n4k3ide nkier4s nkin4g3 nk3inh n4k3ins n4k5lade n4k3laf nk5lamp n4klen n4kleu nk4link nk4neb nk5niet n4knit n4koel n4kopt nk5o4rie nko2w n2köl nkraf4 n4krel n4kren n4krez nk3rob n4kroh n4k3rol n5kron n4k3ros n4k3rot nk3rüc nk4s5alt nk4s3el nk2so nk3sp nks4pe nks4por nk3sta nk3s4ti nk3str nk3stu nk3s2z nk4t3ak nk4t3an nk4t3au nk4t5eig nk4t5ent nkte5ra nk4t5erf nk4t5erg nk4t5ern nk4t5ers nk4t5ert nkte5sk nk2th nk4t3in nk4t5ort nk4t5rae nk4trä nkt5rol n4kumf n4k3ums nku2n nku3na nk3uni nk3urh n4k3urk nku2t nk3ute 2n1l2 n3la nlage5i nlage4n5 nlan4dr nlan4gl nl4au n3le nle4g3a n3li nli4ne. nlite3 n3lo nlus4t5e 2n1m2 n3ma nm4en nmen5sche nmi2t n3mo n3mu 2n1n nnae4s nna5esc n2nak nna5le n4n3alg n4n3all n4n3amb n2n3an nn4an. n4n3app nn3a4sc nna3s4t nn3ato n2nau nn3d2 nndar4 nn3eff n3neh nn4ei. nne3lu nneng4 nne3pf nne4r3a n6n5ereig nner6fol n4n5er4fü n6ner6geb nner6laub nner6mit nner3o nner3ö nner6war nner4zi nne4s3e nnesi5e nn4eu n3n2ex nng2 nngas3 n2n3i2d nni4sa nnk2 nno5be nn3obl n2n3of n2n3op nno2r n4n3ori nno4t3h nn4s3am nn4s3as nn4sau nns4po nn5stan nn5stau nn5stei nn5stel nn4stoc nn3te nn2th n2n3uf n4n3unf nn3ur nnvoll6 n2nya 1no 3no. no3at 2nob. 2n3obd n4o5bel nobe4la nobe6lin 2nobj no4bla 2n3obm 2n3obs 2nobt n4oby no1c noche4 no2de no3der n3ods 2n3oe2f 2n3oek n4oet no2fe 2n3off nogene4 no3hö n3ohr n2ok no4kel 2n3okk n2ol no4lam nol3c no4leu no4liv no4lym n2om 4no4mal n4omas no3m4au n4o3mi n3omn non2a 4nonke 2n3ont 2nony no2o no3oh no3os no2pe 2nopf nopf3a no4pie 3nopp 2n3ops 2nopt no3p4te nor2a no3ral 4noran no5rar no3ras n3orbi 2norc nor4d3a nor4del nor6deng nor6d5er6w nor4des nord3o nor4d3r nords4 nor4du nor2e no3res 2n3org n5o4rien 2nork 3n4o4rm nor4m3o 2n3orn n4oro n4orö 2n3ort no3ru n2os 3n4os. no3sh no3s2k noste4 nos4tei noster5e 4n3ostl nost5ra 4n3ostv n2ot no4tae no4tam no4t3an no4tap no3tar no4tau no2tä not3ei note4n no4ter not5erb noter6b5r no4tex no3the no4t3ho no4t3in not5ope not5opf notor4 no4t5org no2tr 3not3s2 no4t3um 3notv 2n3out no3va 2n1o2x n2oz 2nöd 2n1ö2f 2n1ök 2n1öl 2n1p2 npa4ge npar4ka npa4s npe3l npi2p n3pn n3pr npro3 n3ps n3pu 2nq 2n1r2 n3ra nra4dei nra4du n3rä n3re nrebe4z nre3sz n3ri nroe4s3 nro2h nrö2s3 n3ru nrue3b nruecker6 nr4un n3rü nrü3b nrücker6 2ns ns4aa n3sabo ns4ack n2s3a2d ns5aemt n3saeu n4s3a4gi ns4ai n2sak nsa4kr n4s3all n4s3alm ns4alp n4s5alte n4sanb n4s3ane n4s3ang n4sanh ns5anka n4s3anm n4s3ann n4sanp n4sanr n4s3ant n4s3anz n4sapo nsa4re ns4ark nsau4e n4s3auf nsau4n nsau4r n4saut n4säugl n5sche. n6schefi nsch5erf nsch5eul n4schl. nsch6mau ns5chor. nsch4ue nsch5werd nse4ein nseha4 nse4hab nse6hent nseh5ere nse4hin nse4hue nsei4ne n4s5einf n4s5einh n4seinn ns5einsa ns5einst n4s5eint n5seit ns5e4kel nse4la n4selem nse4len nse4ler nse4lim nse4lin nse4lit n4sem. nsen4sp nsen5st n4s3enz n4s3epo ns4eq n4s5erar nse5ras nser5eig n4s5erfa n4s5erfo ns5ergi ns5ergu ns5ergü n4s3erh n3seri n4s5erke ns5erkl n4s5erle n4s5erne nser3o n4s5eroe n4s3erö ns5ersa nse3r4u n5serv n4s3erw n4s3erz n4s3eth n4sety nsex2 n4se4xi nsex4t n3s4ha4k ns4hir ns4hort ns4ic n4s3ima n4simp n4sind n4s3ini nsinns5 n4s3int nsi4t3e nsi4tr n2ska n5skala ns4kale ns4kali n2ske n3s4kel n2skl n2sko n5skrip n2sku n3s2ky n5smara nsmaragdei6 n2so2b n2s3o2d ns2om n2sop nsor3a n4s5ort. n4s5orts n1sö n1sp ns4pac n5span ns4pari n4spark ns6part. n6sparti ns4pas ns4päs ns2pe n3spek n4speri n2sph ns4pie n2spl n4s5poe n5sprac n4sprei n4s5prie nsrue4 nsrü2 ns3s2 n4st. nst5abr n3stac n3stad n3stae n6s5taeti ns6tagent n3stah n4stak ns5talb n4stale nsta4n nst5ane n3star ns3tas ns5tat. ns5taten n4stats n5statu n5stauc n5staum n4s5täti n5steck nst5eifer n5steig n5stein nst5einhe nst5einsa n5stell ns4temm ns4tent ns4tep nst5erbie nster5ei nst5ergeb nst5erke n5s6terne n5s6terns nster5o nst5ersa nst5erwei ns3tes n5s4teu ns4tew ns4tic nst3id ns4tie n3stil n4stilg ns4tin n3stir n3s2to n4stod n4stole n4stom nst5ord n4store nst5org nst5ort ns2tr ns5trac n5straf n6strai n5stras n5streit n6stroc n4strol n6s5tros n5strue n3strü ns2tu n3stub n3stuc n3stum ns5tung n2sty ns5umsa n4s3urk ns3urt n2s3ut n2szi 2nt n4t5a4ben nta5chl nt4ack nt3aem nt5aend nt5aerz nta3f nta4gn ntak4t5a ntal3a ntalent6 ntalk4 n4t5allt nt5alter nt4anb nta3ne n5t4anfr nt5ansi n4tantr nt6anwer nta4r5ak ntar3c ntar6chi nt5art. n5tarta nt5arten nt5arter n5tartex n5tarth nt5arti nt5artu nta4ru ntasi4 n4tath nt3äm nt3änd nt3ärz n4t5eben nteg4 n3tehe nt3ein n4t3eis n3t4el nt5elek nte4let nte4lin nte5ma nte4mot nte4nem ntene4r5 ntengene6 n4tenpä nten3s4 nten6te. n4tentw nte2p n4tepi n3ter nter3a4 nt5erbe. nt5erbt nter5eic nte6r5eis nte4rel nter4lo nter4lö nter5n4e nter5obe nter5oe n4t5erz. nter6ze. nte3sa n4t3es4s ntest5r n6t5estri nteu6eri nt4hals nthan5a n4t3heb nt3hel n3ther n4t5herd nt5herst nt3hof n4t3hot n3thr n4thue n4thum n3ti nti3an nti3c nti3f nti6kerh nti4lei nti4lin nt4im ntim3p n4t3ind ntin4e4 nti5nen ntiner6s n4t3inf n4t3inh ntini5er. ntini5ers n4t5inse nt4is nti5sta ntlan4 n3t4lem ntmen4s ntni2 ntnis3 n3tof nto5pfa n4topt n4t3org n4t5o4rie nto3st nt2r nt5raed nt5raend nt4ral nt5rand nt5ränd n4t5räts nt3rea n5treco n5t4ree nt5reic nt5reif n4t5reis n5trem nt5rese nt4ré n4t5rieg n4t5ries nt5ring n4t3roh n4t3rot nt1s nt4sau nt3sco nts2e nt2sk nts2t nt3sti nt6stief ntt4a n3t2ue ntu3en ntu4r3a ntu4re. ntu4rei ntu4rer n3t2ü ntz2 1nu1a nu3a2r3 nubi3 1nu1c 1nud nudel5e 3nue. 2nueb nue4be 3nuec nue3e nu3el. nu3els 3nuen nu3en. nu3end 3nues 3nuet nu2fe 1nug 2n1uh 1nui nu3in. n2uk n3u2kr nul4l3a nulle4 nul4l5eb nul4lei n2um. 2n3umb n2ume 2numf 4numg 2numl 3n2umm 4n3umma 4numr 2nums 2n3umv 2n3umw 2n3umz nu2n 2n3una 2n3und 2n3une2 4n3unfa 4nunfä nunft3 3n2ung 4n3ungl nungs3 nungscha6o 2n3uni n3unk 2nunr nun3s2 2nunt nunte4 2nunw 3n2unz 1nuo 2nup 2nur nu2ra nu2ri nur2z3 1n2us nu2s3a nu2sä nu2s3i nus6serl nus3t 1nut nu2ta nute2 nutens4 nuti2 4n3u4top 3nutz nut4zei nutzer5e 1nuu 1nu2x1 1nuz 1nü. 1nüa 2nüb 3nüba nü4be 1nüc 1nü1e 1nük 1nüm 1nün2 nü3na 1nüo nür3c nürs2 nür5ste 1nüs 1nüt 1nüv 1nüw 1nüz 2nv2 n3ve n3vi n3vo nvoran4 2nw n3wa n3we nweg3s nwehr3 nwind5er5 1ny. n1ya n2ya. 1nyf 1nyh 1nyl n1yo 1nyr 1ny1s2 1nyw 2nz nza2b n4z3aer n2z3a2g n2za2k nz3and n4z3a4n3e n5zani n4z3ant n4z3anz nz3app n4z3a4ri n2zas n2zat n4z3aus n2zän n2z3är n4z3eim nze4lan nze4lei n4z3emb nze5nad nzene4 n6zenerg nzen5ev n6zensem nzen5st n4z5entg n4zentl n4z5ents n4zentw n4zentz nzep6ter nzer3a nzer5eig n4z5er4lo n4z5er4lö nzer5oe n4z3erö nz5erste nzer6tau nzer6trae n6z5er6trä nze3sk nze5sta nze5s4te nze5sti nze5str nze3u4t nz5info nz3inj n4z5inte nz3l nz4ln nzo2b n4z3oef n2zof nz3oli n2z3or nzu6cken nzue4c nzu5eck nzu5eng nzup2 nz4weit n4zwet n5z4will n2zwo n2zwö n2zwu 1ñ ño1 o1a oa2be o2abi oa2br o2ac oa3chi o2ad oa2dr oad3ra oad3t oa2g oa3in oak3l oa2ku oa2l o2ala oa3lab oa3las oa2m o2a3mi oa2n oana3 oan3e o2aq oa2r oar4dr o3a2sc 3oase oa2si o3ass o2at oa2tr o3au oauf3 oa2v oa2x oa2z o1ä ob3ach ob2al oba4lin ob2am 2ob2ar 2ob2as 2obau ob3auf 2ob2ä obb2l 2obe. 2obea 4obec obe3e 2obef ob5eins 4obek obe4lan obe6leis obe3li 2oben obend4 obera4 ober5ad ober5al o4beram obe4r5ap o4berb obe4reb obe6r5eis obe4rel obe6rend o4berf 3oberg obe6rin6g obe4ris o4berk 2obet 2obev 2obez 2obi obi2e obi4l5in 3obj ob2l ob3lau ob3lei ob3li ob4lit 3o4boe. 2oboh ob3ort 2obot ob2ra 2obru 2obrü ob2s3a ob3sc ob3s2h ob3sku ob4ster 3obsts 2obu o4bueb o4bunt obu2s 2obü o2büb 2oby oby2t ocas2 oc1c 3occl o1ce och3a4b o5chani ocha4r och3au ochdru4 oche4b o4ch3e4c och3eh och3ei oche4l oche4mo o4ch5er4g o4ch5er4l och3id ochi3e och3l och3m och3n ochoe4f ocho4f och3ö4f och3re ochs4p och5stem och5str ochtergene6 och4t5ri ochu4f o3chun och3u4t och3w o1ci o3ckad ocke4l ockener6 ock5ersa o6ck5er6sc ock5er6ze o2cko ock3s4p ock3sz o1cl o1cr ocre2 od2a odab2 od3ak od2d3r o3dec odegene6 ode3i2 odein4 o5dein. o5deins ode4l5a4g ode6lauf odel6l5ae odel6lau odel4l5ä ode4lo ode2n3 odenk4 o3der. o3dern o3ders odes5ae ode4sä odes4po o3deu o3dex 2odia 2odie 2odif 2odir 2odo o3dom 3o2don o2d3op o4dora odo2s 2odö 2odr ods2 2ody ody2m3 oe3ba oebels4 oe4ble oe2br oeb2s3 oe1c oe2du oe1e o3effi oe2f3l oe2gl oe2gr 2oeh oehe4n3 oeh3ri 2o1ei oe4is oe5isch. 3oe2ko3 oe2kr oe2l 3oel. oel3an oel3au oelb5ste oel5ein 4o3elek oel5ent oe3ler oel4fei oelfen4 oel6f5end oel3in oel4kle oel4kli oel3le 3oelm oelo2 3oelr 3oels oel3sz 3oelu 3oelv 3oelw 2oem o3em. 2oen oen5erg oen5sta o3entl oentu3 oe3nu oe3ota 2oep oepf3l o3e2pi oe4r3a2 oer4b3l oe4r3ec oe4r3ei oe4rel oe4r3e4m oe4r5ene oerer6fa oerer6fol oerer6gebn oerer4l oe6r5ermu oe5r4erz 4oerf o3erfi o3ergä oe4r3il oerner6v oer3oe o3erö oers4k oert6er o2es oe2sa oe4scha oe6schef oe6sch5ei oe6schene oe6sch5eri oe4schl oe4schm oe4schn oe4scho oe4schr oe4schw oes2p oes6s5che oes4st oest3a oes3tr 4oesu oeße4n3 o3et. oe4tag oete4n3 oet4h oe3the oe4thy oe2t3r oet3st o1eu oe2vo o1e2x o1ë 2of2a ofa2c of3a2d of3a2g of3är o2f3e2b o2f3ec o2f3ei o4feng o4fenk o4fent o4fenw o4fenz o4f3erb o4f3err o4f5er4sc o3fes of3eti of3eun of2fa off3al off3an off5eie off5erz of4f3in 3offiz of2f3l of4for of2fr off3ro off3ru off3rü off3sh off3si off3s4o offt2 of4f3uh of4fur ofgas3 2ofi of3ins ofi3s ofi5sc 2o1fl of2la of2lo of2lö 2ofo o2fop of3orc 2o1f2r of3rae of3rat of3rä of4sal of4s3am of4sei of4s3en of4sin of4sof of4spa of4spe of4staf of4sto of2s3u oft3s 2ofu o2f3uh o2fum o2f3ur 2og o2g3ab o2g3ac og3ang og3arb og3ari og3aus og3d og3ein ogel3i4 ogen5ec ogene6ra ogener6n ogen4id ogens4p o4g3erf ogeri4 o4g3eth ogfi2 ogge4n og2hu o3gi ogin3 o4g3ini o4g3ins og2lo og2n2 og4nas o2g3nu ogo3e o3gog og3o4ri o2g3ou og2r og3rau og3reg ogs2c og3sen og3spr og2st og3ste og3sti o1ha oh3alk o2h3ar o1hä o1he o2h3e2d o4h3ein o4h3eis ohen5s o4h3er4t ohe3x2 o1hi ohkos4 ohkost5 ohl3a ohla4d oh3lec ohl5eint ohl5eis oh3lep ohler4 oh4l5erg oh4l5erh oh4l5erw oh3les ohl3o4r ohlste4 oh2lu oh3mi oh3mu ohn3ac ohn3ap oh4n3e4b oh3nee oh6nense ohn5ersa oh4net oh4nin 3ohnm oh2n3o ohn3s4k ohn5ste o1ho oh3oel oho4l3a oho4l3o o2h3o2p oh3öl ohr3a oh4r3el oh4rem oh4r5er4g ohr5erh ohr5erk oh4r5ero oh6rer6sa oh6rersä oh3rie ohr3im oh4r3in ohrs2 ohr3sk oh1s ohs2p oht2 o1hu o2h3um oh3w o1hy 2oi o1i2d oid3an4 oiden5s o1i2m o1in1 oi4nen oi2ni o1i2o oi2ra o5isch. o4ische o3ism o3isr o3i4ta o3i2tu ojek6tori o1k oka3b2 okabe4 o2kac oka3i okal3a okale4 oka4lei okalen4 oka6lens oka6lere okal5th oka3pf okas3 oker4be oke3re okka3s4 ok2la ok2li ok2lo ok2lu ok2o oko4pt ok2r ok2sa ok2s3o oks3p okt4o okto5b oktobe4 ok5tor o4kula 1okw 2o1la ol3a4br ol3abu o4l3ach o4lacke olade4n ola3ei o4l3aet ola3fl ol2al ol3a4mi ol3ana olars4 ol3a4ve o1lä o2l3ät olb2 ol3che olch3r ol5da. ol4dae ol2dä ol4d3ed old5ersa olde4s ol4d5ese ol4deu ol4dim ol4dop ol4d3o4r ol4d3re ol4d3ri ol4d3ro ol4drü old3sa old3st ol3eie ol3emb ol3emp ole2n olen3e ole3r o4l3erk o4l3ert o4l3erz o4l3ess ole3st oles4te5 ole4sti ole3um ol3ext ol3exz o1lé ol4fak ol4fau ol4fem olfer4l ol4fle olft4 olge4n5e ol2gl ol4gre o3li. oli3a olie4n3 oli4kan ol3inj oli4tor oli5tur oli3ze ol2kl ol4kre ol4kro olk2s olks3c olks3t oll5ach ol4l3ak ol4l3am ol4lang ol4lanh oll5anz oll5ass ol4l3au oll3e4c oll5ein ol4l3el ollende6f ol4l5er4d oll5erfo ol4l5erh oll5ertr oll5erwe ol4l5erz ol4l5ess ol4l5ins ollla6der ol4lop oll5s4a olls4p ol4lum 2olo oloni4e olo5pe olo3ra ol3ort ol2ov ol3s2k oltai4 olta5is ol4t3am o1lu olu4th olve4 ol2y 4olys ol2za olz3a4c olz3ar ol4zep olzer4 ol4z5ern ol4z5ers ol4z5ert ol4zik ol4zim ol4z3in ol2z3o ol2zö ol2zw ol2zy o4m3a4bl o4m3a4br o4mada o4m3a4ge oma3la o4m3alg omali4e om3all o2m3a2m 4oman oma4n5er o4m3ang om4anh omani4e om4anr o4m5anst o6mantei o4m3arm o4m3ar4s o4m3art omar4te o4m3a4sy 4omat o4m3atl o4m5atom o2m3au ombi4e ombu3c o2meb om3ebe o2m3ef om3ein o4meis om5eise o4mele ome3na om5ener o2mep o5mer. om3er4h omer4ke omer4sp om5er4tr o4meru om3erz o4mesh o2m3eu o2m3ex omi4c3 omi2e omie3s o4m3inf o4m3inj o4m3inn omi3n4o o4m3ins o4m3int o4m3inv omi3tr 2omm omme4la 1omn o2m3oa om3ope o4m3orb o4mord o4m3org om3o4ri ompani4 om3pf oms2 om3sk om5ste omt2 o2m3um o4m3unf o4munt o3mus o1mü 2o1na o2nab ona4be on2ac onaer4s5 ona5ge o2nak onaler4 ona4l5in on3amb on3ann on3a4no onan6z5ei on3apo on3app on4are o4narm on4arr on4ars on3art on2a2s on3asp on5atom onat4st o4n3at4t 2onä onär4s3 on3c on4d3an onda4s ond5ast on4d3ei onder5ei onde6r5ers on4d3ex ondi4e on4dob on4d5ril on4d5rin ond5ruec on4d5rüc ond3st 2one o2neb on3e4ck o2n3ef on3ein one2l on3ele on2e2n o4n5ends onens4 on3ep o4n3erd o4n3ere o4n3erf oner4fa on3erg o4n3erh o4n5erke o4n3er3o4 on3erö on5ersa o4n3erz o4netu on2eu on3f2 ong2 on3ge on3gha on3gla on3gle on3go ongru5e ong3s2 on3gu 2on2i oni5ake oni5de on3ido oni4enk oni4enm onie3s oni4g3a oni4ger oni4gl onig3s4 o4nikan o4nikba o4nikbe o4nikei o4nikf o4nikg o4nikk o4ni4kl o4nikm o4nikp o4ni4kr o4nikse onis4o 2onj on3k2 3onke onli2 onlo4c onloch5 on3na on4na4b onn4an on3ne onne3s ono1 on3o4be on3ofe o4n3oke on2op on3ope o3nopt on3orc onos2 ono3t onot4h ons3a onsch4 on4s3eb onsen5e onser5e onse4t onsex5pl onsi4d ons5ing ons5kl on4spar onst4a onste4r5 ont5arm ont5auf on4t3eb ont5end. ont5erfa on4t5er4h ont5erke on4t5erl on4tho onto3e on4t5rat on3tu o1nu o2nue 2onuk on3ums 2onut 2onvi 1ony on3z onz4e onze5in4 onze5r4a onzer6t5ak 2oo oo2bo oo1c oo2dr o1oe2 oo3en oo3ge ooki2 oo2k3l oo2kn ool3c oomgene6 oomo2 oo4mop o1op o1or oor3a oor3d4 oor5de oo4r3ei oo4rer oo2s3a oo2sk oos3s oo2s3u oo2t3a oot3ei oo2th oot3he oo2t3r oot4s3a oot4s5en oo4tur o1ö2 2op. op3adr opa3i op3akt opa4let opar4a opa6rade opa4rit op3arm opa3s4t o3ped o2p3ef op3eig o3pek o3pel open3s openty4 3o4pera op3erh 3opern o5pers op3ey op2fa opf3ac opf3af op3fah opf3al opf3au op2fä op4fem opfe4n opf5ent opf5eroe op4f5erö op4fin opf3lo op3flü op2fo opf3r opf5ste oph2 op3him o4phol oph3t o1pi opi3a opia4t op3id opi5er. opi5ers. opie4r5u op3i2k opin4g3 op3lag op3lic op3lis op2ne o2pob opo4la op4pan oppe6l5in oppin4 op2p3l 3oppo o1pr op3rec op3roe op3rö 3opsi op3sta ops5te op3sto op3stu op3sz 1opt2 opt4e op3th 2opy o3ra. o3raa ora2b o4r3abb or3abr or3abt or3ace or3ach o4r3add or3adr 4orae or3aeh or3aet o3raeu o3raf o3rag 4o3rak. or5akad 3orake 4o3raks or3akt or3a4ku oral4bu o3rali o4r3alm o3rals ora3ma3 or3a4mi oran6fra oran4ku oran4kü oran4me ora4no or3app or3aps ora4rer 2oras o3rat. o3rate o3rati or3atm o3rats o4r3att 4orau o3raub or3auf o3raum o3ra3un or3aus oraus6gewae oraus6gewä oraus6sche oraus6wa or3auß o3rav o3raw o3rax o3ray o3raz o1rä or3äh or3änd or3ät or5bac orb5art or4b5inn 3orbit orb2l orb5lad or1c 4orca or2ce 4orda orda4m or4das or4dau or4d3e4b or4d3ei ord5els ord5engl 4ordes or4deu or4d3it 3ordn or2do or4dös ord3st ord3t2 or4dum 2ore o2reb or3e4be o4r3e4ck or3e4di or3eff o3reg or3eig or3ein or3e4la or3emp or3emu o3ren. o4renbo ore4n3i o4renki oren6nen. o6rennet o4renno ore4no o4renpl o6renpor oren3s4 o6rensen or3erd o4r3erf ore3ri o4r3erk ore3ro or3erp or3erw or3erz or3et4h o2r3eu o2rew orfa4c or4fend or4feng orf3s2 or3g4a orge3i orgein4 4orget or3ghi 4orgia orgi5en orgi5er or2gn orhu2 o1ri ori5ali ori4ena ori6enge ori4enl ori4enn ori4enr 5o6rienti ori4env ori6enwe o3rier ori5er. or3ima ori4mi ori2n o4r3ind or5inge orin3i or3ins o4riso 4o3rit ork2a ork5erz ork2l ork3sh orkt4 ork5ta 2orm or4mad or4mam or4m5ans orm5asp or4m3eb or6m5erfa or6merge or4m5er4w orm5inh orm5ins orm5int or4m3op orm5ord orm5org orm5ori or4mum ormu4n or4m5uni or4munt ormvol4 orna4c orn5ack or4n3al or4nan or4nar or4nau orn5erf orno3s orn3s 2o1ro or3o4be or3oef or3oel o2r3ok or3oly oro5n4a or3o4pe or3opf o2r3o2r o2r3ox o1rö or3öl orp2f orrai4 or3r4e or5ren orr2h or3s2a orsau4b orsau4e or3sä orsch4m orse3s or3sh ors2k ors4tin orst5ob ors2z ort5aer or4tan ort5an. or4t3a4r or4t5aus or4tär orte4l or4t5eli orte4n or4tent or4tenz ort5erb or4t5er5e ort5erfi or4t5erk or4t5erl orter6lo orter6lö ort5ersa ort5er6sc or4terz or4t3e4v ort5her or4thol 2orti orti5en or4t3in or4t5obs or4t5off or4t5ori or4t5ort or2tö ort5res ort5rin ort5rol orts4ti or4t3um 4ortü or3uhr or3umb orum4s or3un oru2r o3rus or3u2t o3rüc o1ry1 o2rya orzel3 os2a osa3ar osa3er o4s3ami os4a3s2 3o2s3ca 2os2ch osch5ar osch5aug o3sche osch5lei o3s2co os2e o4s3eie ose3in4 ose5l4a o4s3elt o3sen osen3s o4s3er4k o3s2hi o3s2hu o1sk os4kal o2ski os4kle os2ko os3kol o2skr o2sky 1osm os4mog o2s3oe os1p os4pac o4spae o4spä os4per o4spf o3sphä os4pot os4pra o3spu oss4abb os4s3a4c os4s3ae oss5ala os4san oss5and os2sä os4s5en4z os4s3ep os4s5er4b os4s5er4f os4s5er4z oss5esse os4sik os4sim os4s3io ossmut4 os4sof os4son os4s3or oss3o4v os4spar os4spo os2st oss3ta osstu5er. o4st. ost5abl ost3ac ost5aer o3stah ost3ak ost5ang ost5ans ost5apo os5tarr ost3a4v 4ostä oste4c oste5cker ost5einb ost5eing ost5einl ost5einr ost5einw ost5eis os5telli o4ste4n ost5engl os6t5er6weit o4s3tet ost5eur os2th ost5her os4t3i4d os5tina ost5ink os4tins ost3ir os4t3o4b os3toc os4tom os2tr ost5rae ost3rä ost5res ost5rot o3s4tuc os4tug os4tums os4tune ost5urk os3tüm osu2 osyri3 o3s2ze os4zin 2oß o2ß3el o4ß3en4z oßer4 o4ß3erb o4ß3ere o4ß3erf o4ß5ersc oß3is o4t3abi ota2c o2t3ad ot3aer o4t3aeu o4tagg ot3a4go o2t3ah ot3amb ot3ano ot3app otar3a ota4rak ota4ran o4t3arb o4t3arm o4tarz otas3t ot5astr o4t3att o4t3auf3 ot5auge ot3aus ot3äm ot3är o2teb o4t3eib o4t3eic otei4n ote5in. ote5ina ote5ind ote5ine ote5ini ote5ink ote5inp ote5inu ote5inv ote5inw ote5inz o4t3eis ote4l3a ote4lei ote4ler ote4l5in otel3s4 ote2m o4t3emi ot4em3p4 o5ten. ote4na o4t5ends oten3s4 o4t5entb o4tentl o3ter otergene6 ot3erl oter4le o4t3erw o4t3es4s ot4est otes5tant otfall5 ot4h3a4c o3t4has o2thi ot3hin ot3hir o4t3hof ot3hol o2til ot3ill o2t3i2m otima4 oto3c oto3e2 ot3off otop3f oto4rei oto4rin oto3sz o2tö otra5c o3tran ot3rec ot3ret ot2ri ot3ric ot3rin ot3rut ot4s3at ot4sel ot4s3ol ot3s4pe ot4stei ots4tra ot4stri ot4stru ot4strü ott5akt ot4t3eb ott5er6kl ott5er6lo otter6lö ott5erwä otte4s ot3to ott5rei ot4tri o3tund ot3url ot4zae ot2zä otze4d ot4z5er4k oub2 ouch3e4 ou3chi ou3et ouf3f4 ou3f2l ou3g4a ou2ge o1uh ou3is. ou4le. ou4lel ou4les ou2li oul3s o1um ou2n o4und oun4d5ei o5undso o3unf oun4ge. oure2 ou4r3et ourme4 ourmet5 our4ne. ous4i ousi4e ou2st 3outf outli4 3outp out3s4 outu4 o1ü 3o2val ove3s2 oviso5 2ovo 2ow o3wec ow3ef o4wer. o2wh ox2al 2oxe ox3ele o3xi. 3o2xid ox3l ox2od o2x1u ox3v 1oxy 2oxy. o1yo oy3s2 o3z2a 3o2zea oz4en ozen4ta ozes4s5c o3zi ozon3a órd2 ö3ba öbe4la öbe4li öbe4lo öbels4 ö2b3le ö2br öb2s3 ö1c öch3l ö2chr öchst5ei öchst5r öchs4tu ödi1 öd2st 1ödu ö1e öf2fl öf1l ögen4s3 ö2gl ö2gr ö1he öhe2n3 öhle2 öhlen3 öh4nef öhre2 öh3ri ö1hu ö1i öi2g ö4ische ö1ke 1ö2ko3 ökos2 ö2kr 3öl. öl1a2 ölas2 ölb2r ö2le öl3ei öl3em öl3ent ö3ler öl4f3ei ölfen4 öl4f5end öl4fli ölf3s 1öli öl3im öl3in öl4kle öl4kli öl3le ölle4n3 1ölm öl4nar ölo2 1ölp 2ölpe öl4ple 1öl1s öls2z öl3tu 1ö2lu 2ölz ölz2w öm2s önizi5e ön3sta öntu3 ö1nu ö3o2ta öoti3e 2öp öpf3l ör1a2 ör2b3l ör1c örden3 ö2r3ec ö2r3ei ö2r3e2l ö2r3e2m öre2n ö4r3ene ö4r3ent öre4rer ö4rer4fa örer6fol ör6erfor örer6gebn örerin6t ö4r3er4l ö4r5ermü ör3ess ör2f3l ö1ri ö2r3il ö2r3im örner4v ör1o2 örs2k ö1ru2 ö4r3une örungs5 ö2sa ö4sch3a ö4schef ö4sch5ei ö6schene ö6schent ösche4r ö6sch5er6f ö6sch5eri ö4schi ö4sch3l ö4sch3m ö4schn ö4sch3o ö4sch3r ö4sch3w ös2e ö4s3ein öse5str ös4s5che össe4n3 ös2st öst3a2 ös2th öße2n3 öß2ti 2öt ö2t1a öte2n3 ö2t1o2 ö2t1r öts2 öt2sc öt2tr öwe2 öze3 özes4 1pa 3paa pab2ä pab4lu pab4ru pab4rü 2pabw pach6t5er6 pa3e2b pae6cker pae4d5er 2paeh pa3ell 2paen pa3erf p3aerm 2paeß 2paet pae6terb pae6t5er6k paet3h pae4ti pae4tr pa3fl pa3fr pag2 2pa3gh pa3ho pa3ke paki3 pa3kl pak4to 3pa3la pa4lar pala3t4 3palä 3pale pa3l4i pal4mae pal6m5ast pal4mä pal4m3o 2palt pal4tal pal4teb pal4tei pal4to pal4t3r pa3mi pam3s pa4nar pa4n3at pa4nau pan3d4a pan5de pan5enz pa4neu p2anf 5panier 3panik pa4nisl pank2 2panl pan4nar pan4n5e4b pan6nene 3pa2no pans2 pan3sl 3pan3t4h 3panto 4pantr 3panz 3pap papieren6 papie6r5end pap4pr paps2 papst3 para3b 3parad pa4rae pa4r5aff par5akt 3param pa4rant 3paras pa2rä 2parb 4pare. pa3ree 4paref par5ein 4paren. 4parer parer6geb pa3reu 2parg parge4l5 pargel6d pa4r3id par5ins par4kae par4k5am par4k5au par4kop par4k3r par4kue 2parm par3ne pa4rod pa4rof 3parol 2parp2 2parr 4parsa 4parst 4parsu 4parta part4e partei5 parter4 3party 2paru pa4rue 2parv 2parw par3z2 pa4scha pas5chaf 3pasi pa3spo pa3spr 5passa pas4sam pas6sein pas6sene passer4 pas6serg pass5ersa pass5ersä pas6s5ert pas4sp pas3t pa4sti pa3s4tr 2paß pat2c pa3t4e2 4patel pa5ten 3pati pat3sa 4patz. pa5tzere 2p3auf pa3uni 4p3ausl 4p3ausz 3pazif 1pä pä2c päck5er pä4d3er 2päh 2päl 2pän 2p3ärm 2päß 2pät pä4ta pät3e4h pä4t3ei pä4t5ent pä4tep pä4t5erb pä4t5er4k pät3h pä2t3i pä2to pä2t3r pät3s 2pb 2p1c p3ch 2pd2 pda2 pdi2e 1pe pe2a pea2r pea2s 2p1e2b pech3e pech3s 2peck ped4a pe5dan pe4dri 3peel peene3 2p3eff 2pefr pe4gal pege4l3 pe2gn pei1 2peic 2peie 2peig pei4l3a pe3im 4peis peise5i 2pek p2el pe4l3ab pe4l3ac pe4l3ae pe4lai pe4l3au pe4l3ax pe2l3ä pelb2 pel3d pe4l3e4h pe4l5ei4c pe4l5ein pe4l5ei4s 4p3elem pel5end pel3er peler5e peler6sa pe4l3et pe4leu pel3ex pel3i4d peli4n pel4inh pe4l5ink pel5inn pel5int pelk2 pe4l3ob pe4l3oe4 pe4l3or pe2l3ö2 pels2 pel3sk pel5ster pe4lut pel4zap pena4b pena4r pe4nau pe2nä pend4a pende6l5a pe4n3en penen5e pen3f pen5inn peni4t penk2 penn4i pe2n3o pens4e 3pensi pen3s4l pen3sm pen5s4o5 pen5s4p 3pensu pen3sz pen3ta 4pentw penu2 penz2 3pep pept4 pe3ra 4perad pe4r3ae pe4r3ak pe4r3as pe4rau pe2r3ä pe4r3e4b per5eig pe4re4l pere3s 4pergi perik4 pe5r4io pe3rit per6l5a6sc per6l5aug 3perle pern5en per3ob per3oe pe3ros per4r5an perr5eig 4persio perwa4r per4zeu pes2a pese4n3 pes3s2 pest5op peten6z5a pet2r 2pe2x 2pey peze3 1pé 2pér 2pf. p2fab pf3abe p2fad pf3aer pf3aeu p2faf pf3ai p2f3a2k pf3ame pf3ans pf3ant p2fa2r pf3arb pf3are p2f3as p2fau p2fäh p2f3är p2f3äu pfdru4 2pfe. p2f3e2b p2fef p2fei pf3eig pfeil5s4 pf3eim pf3ein pfe4l3i pfels4 pfe2m pf3emi p2f3e2p pfe4r3a pfe6ran p6f5ereig pfer6gebn pf5erpro pfer6prob pfer6zeu p3fes3 p2f3e2t p2f3e2v p2fex pff2 p2f3i2d pf3inf pf3inn p4f3ins pf2l pf3lad pf3lag pf3lam 3pfleg pf3lei pf3lie pf3lin pf3lis pf3los pf3lös pf3luc 4pfluem pf3lus 4pflüm pf3ly p2f3o2b pfoe2 pf3oed p2f3of p2fom p2fo2r pf3orc pf3ori pf3orn p2fö2 pf3öd pf3ran pf3rän pf3ris pf3rob pf3roe pf3ros pf3rö 2pfs2 pf3s4e pf3sk pf3sl pf3str pf3stu pf3sz 2pft pft4r p2fuh pf3uhr p2f3um 3pfusc 2pg2 p3gl pgra4d 1ph 2ph. phack3 4p3haeh pha3el 4phaer 2p3hah pha3k phal4ta phal6t5es phaltest5 p3hand pha3s pha4tr 2phau 2p3häh 3phän 2phb 2phd phebe4 phebel5 2p3hei phen3d4 phe4n3e phen3s4 2phf 2phg phien3 phik3a phi4kan 3phil phi4la phir3 phirn4 phi4st phit3e 2phk ph2l 2phm 2phn p2ho. ph3oed phori4e ph2r 2phs pht2 4ph3the phu2s3 phu3t 2p1hü 2phz 1pia1 piab2 pia5ka pi4an piap2 pi2ar pias2 4pi3ce pich3o pich3s p2id2 pie3b2 pie4gl pi2e3i pie4l3a4 pie6leis pieler6ke 3piep 3pier pie5rae pie4reb pie4rei pie4rem pies4st 1pig 1pil pil4zer pil4zi pil4zw pi3nal pi3nas pi3n4at 2pind piner4 pi4n5erf 2p3inf 3ping pingen4 ping5er ping3s pini5d 3pinse pins4p pi3n4um pi2o 2pioi pi3on. pi5o4n5al pi3ons pi3onu pi3os 1pip pi4pel pi3ra 5pirate pi3ri 3piro 1pis 2pi3s2k 2piso pita6l5ent pi3te2 pitel3 pites3 2pi3t2h pit2s 2pitz pit4za pitz4e pi4z3in 3pizz 2pj 2p1k2 pku2 pkur3 1pl2 2pl. p3lab 2p3lad pla2q p2lat p2lau pla2y p3lea ple3c p2leg p2lem ple3n2 4p3lere p2leu p2li1 2p3lig pli3n4a p2lo 2p3lok plo4min plo3r p2lö 2pluf plu3r plu2s3 2p1m2 p3ma p3mö 2p1n pnoe3 1po po1c 3pock 3pod po5e4ben po3ems po3erb po3erh po3ets 2p3off 2poil po2in pok2 3pol po4l3an po4l3au pol4d3a pol5ein pol5eis po4lep polo3p4 polo3s po4lum pol3z2 pom4ph p2on 2pond poni2 pont2 3poo po3o2b poo4len popa2 po4p3ak po4p3ar po4phi po2pi po4p3la po4p3li pop3s 2popt po3rad po3ral po3rat po3rau por2ä po3rär pori4e pors2 por4tae por4t5ak por4tem porter6l porter6sa por4t3h por4t5is 5porto. 5portos 5portra por6t5raeu por6t5rat por6t5rau 5porträ por6t5räu por4t5re por6t5ric por4tro po3ru po3s2p po2st pos4t5a4g postasi6 post5au post5ein pos4tem pos6t5er6h post3h po4sti pos5til pos4tor post5ra post5re post5ri 3pota po4t3ar 3potä 3pote poti4e pot3sp pot4t3a4 pot4t3r po4t3um po3un povi2 po2we2 1pö 3pöb pö2bl pö2c pöl2s 2p1p p2p3a2b p2p3ac pp3alt p4p3ank pp3ans pp3app pp3arb p2p3at ppe3e pp3ein pp3eit p3pek ppe4l3a4 ppe4len ppe4ler ppeli5ne ppe2n3 ppens4 pp3fa pp3fr p2pfu p2p1h pp1l p4plac p2plä p2ple p5plik pp3lis pp3lo p2p3oe2 p2p3oh p2p3o2p pporter6 p2p1ö2 ppp2 p2p3ra p2p3rä pp3rec p4p3reg pp3ren p2p3ri pp3roe pp3rol pp3rot pp3rö pp3run pp3rüc p2ps pps2a pps2p pp3sta pp3sto pp3str pp3stu pp3sy ppt4a pp3t4e p3puc p2p3um p2r2 3praef 5praeg 3prael 3praem 3praep 3praes 3praev 3praez pra3f 3prak 3pral pra3r 3prax 3präf 3präg 3präl 3präm 3präp prä3q 3präs 3präv 3präz 2p3re. pre6cher6l 3pred 2pre2e pree3i 3prei p3reih prei4s5c prei6s5ei preis5s4 4preiz 3prem prem5s pr4en pren4ga pren4gl 3pres pres4st p3resu pri2e 2p3rig pri2l3 3prim pri4met 4pring prings4 3prinz 3prio3 3pris pri2t prit3a prit5er4 prit5t 4pritz 3priv 1pro 3prob probe5i 2proc 3prod 2proe 3prof 3prog 3proj 3prop 4pross pro3st 3prot pro4ta pro3te prote5i 4prott pro3x 3proz 2prö 2p3rub 2pruc 4pruec 3pruef 3prueg 4prueh 4prung prun4g5l prung5sc prun4kr 2p3rut 2prüc 3prüf 3prüg 2prüh 2prün 2ps. p2s3ad 2psai p2s3au 2psb 2psc psch4l 2pse ps3ein p2seu 2psf 2psg 2psh ps2hi 2psi psi2e psie3n psie3r 2psk 2pso p2s3oe 2p1sp ps2pe ps3pu 2pss2 pss4a ps5sau 2pst ps3taf pst3au p3stea p3stel ps3tes ps2t2h ps3tha ps2to p2s2tu 2psv 2psw 1p2sy 2psys ps2ze 2pt pt3ak pt3alb pt3am p4t3ana p2t3ar p2t3a2t pt3au pt3ax pt3äs ptbau6mes p2t3e2b p2t3ec p2t3e2d p2t3ef p2t3ei p4t3ele pte2m p4t3emi p4t3emp 4pten p4t3en4g p4t3ent p2t3ep p4t3erb pt5er5ei pt5ernt pte3ro p4t3erw p4t3erz p4t3eta p4teth p4t3e4ti pt3eun p2t3e2v ptgene4 p2t1h pt3ide pti2n3 pt3ind pt3inh pt3ini pt3int pt3inv p2t3ir pto3e pto4mo pto4n3a pto4p3 ptor3a pto2w pt3rol pt3ru pt1s2 pt3uh pt3ums p4t3urh p4t3urk p4t3url p4t3urs 1pty ptz2 1pu pu1a 3pub2 2puc pu2dr 2pue pue3b2 3puef pue4lei pue4l3o puf4fa puf4fr 2p1uh 2puk pu4ker pu2kl pu2k3o pu4l3in 3pull 3puls. pul4s5ac 3pulse pul4sp pul4s3t 3pulv 2pumg pum4pa pumpe4 pump3f pum4p3h pum4p3l pum4p3r 2pund pun2e 3punk punk4tr pun2s 2punt pu2r3a pure2 pu4r3ei pur5erk pur5erw purg2 pu2r3o2 3purpu pu2se pus2h pu3she puter5s 3puts put6schm put6schn 3putz 1püf 2pül pü4lei pül3l pü2l3ö 2pv 2pw pwa2r 1p2y1 py3s2 py3t 2pz 1q 2qs qu2 3qual qu4ar quel4la que4rei que4ri quer3n que4te. que4tek 3quo ra2ab r3aal ra3arb ra4b3ar 5rabbin rab4ble 4rabd ra4b3ei rabe4l ra4bep rab4er rab5erd 2rabf 4rabg 4rabh ra4b5itu 2rabk ra4b3lo 2rabn ra2br 4rabre r4abro rab4rü 4rabs 2rabt 4rabw 3raby2 4rabz 4r3acet ra6cher5ei ra6ch5erf ra6ch5erh ra6cherk ra3chi ra4ch5in racho4 4rachs rach5sk rach6t5er6h rachts4 rach3u 3r2acr r2ada ra4dac ra4d3a4m ra4d3an 4radap 3radar r2ade rad5ein 4r5a4del. rad5ende raden5s rad5enz rad5erk ra4dern rad5ers 3radf 3radh r4adi 3radio 3radiu 3radmu 3radp ra2dr rad3ri rad3s rad4sor 3rad3t4 3radw ra2e raech4s r2aed 2raeg 2raeh ra3elf ra3elk ra3elr ra3els 4raem 4raenk r3aepf 2raer r4aer. ra3erk r3aerm 3raers rae4sc raes5sc rae3te raete5i 3raetl 4raeue 4raeul 4r3aex rafa5els raf5ahn rafe2 ra4f3er raf3la raf3lü raf6t5erz raft3s4 rag2a 4ragg rag4le 2ragm ra2g3n 3ragou rags3p rag4stä 3rah. rahle4n 3rahm r3ahn ra3ho rah4t3r rai4c rail4l ra3ims ra3ind 1raj 4rakad 3rakan 3rakat 2rakk ra3k2l ra4kre 4rakti rak4tin 4rakts 3rakue 3rakü 2rakz r4al. rala2 ral3ab ral3ae ral3ag ral3ak ra5lamp ral3as ra2lä ral3b2 ral5bl ra4lel ral5ents ra4l5erb ra4l5erl ra4l5erm ra4l5ern ra4l5erz 2ralg ra4l3id rali5er. rali5ers ra4l5ind ralin6de ralin6ge ral5in6sp ra6l5inst ralin4t ra4lin4v ralk2 r3alk. 2rall ral3la r5al4leg 5rallei rallen5 4rallt r3allu r3allü 3rally 4r3alm. ra2lo ral3os 3ralö r3alp. 4ralpe 3ralq 3ral3s4k ral5s6tern rals5tuer ral6s5turm ral6s5tür ral4t5ak ral4tem r4al3th 2ra2lu ral3un 3ralü 3ralz r3amal 2ramä ra4mei 3rami ram4mab ram4man ram4mas ram4med ram6mens rammer5 ram6m5ere ram6m5erk ram6m5erw ram4mor ram4m3u ram4p5le 3ramsc 4r3amt ramt4s ran5ade ra4nae r3a4nal ra4nan ra4n3a4r ra3nat ra4nau r3a2nä 4ranb ran4ce. 5r4anda. 5randaa ran6d5ala ran4d5as ran6dau. r4anden ran4dep ran6d5ere ran6derh rand5erke ran6d5erm ran6d5err ran6d5ers ran4dob ran4dre rand3s rands4t 4ranei r3anek r4aner ran5erk ra4n5erz ran4g5an 4rangeb rangs4 rang5sk rang5sp rang5ste rani3e r3a4nil ran4kr 2ranl 2r3anm r4anmi r3anna ran3ne ra4nod ra4n3oe 4r3a4nom 2ranp 2rans r4ans. ran4spa r5anthr ranti4e ran3um 4r5anzah ran4zar ran4z5er 4ranzu 4ranzü ran4zw ra4par 4rapf ra4pher ra4pok ra4pos 4rappa rap4pr 4r3a4pri 2r1a2q r1ar r2ara ra4r3ak ra4r3an 4rarb r2ard r2are 3rarei raren5e rar5erh ra4r3et rar3e4v r2arf ra4rid rari3e ra4r3in ra4rist 4rarm rar4man ra4rom raro4t rarot5i r2arp 4rart r2aru r2arv 4rarz rar3zw r2as. ra4sae ra2sä ras4be ra4schl ra4s3eb ra4s3el rasen3 ra3she 4r3as4ph 4rass. rasse4n5 ra2st rast5ei ras4tel r3asth ras4to ra5stra 3rasur 4r3asyl 2raß r4ata ra3te. ra4t3ei 4ratemg ra6t5en6te ra4t5erd 4rathl ra3ti ra4tid rati4e rat5inh r3atmo ra4toe r3atom rat4or 6ratorge ra4t3ra 4ra4tro ra4tru ratsche6f rat4se rat4stä 4ratta 4r3attr ratu4r5a raturen6 ratu6renz 4rau. r4aub 3raub. rau4ban rau4bel rau4bri r4auc rauch5a rau5chi ra3ueb raue4n rau4ere raue4r5i 2rauf 4raufb 4r3auff 4raufg 4rauf3l 4raug 2rauk r4aum 5raumab rau4mae rau4m5a4g rau4man rau5me. rau6ment rau5mes rau4m3i r4aun rau4nal rauner4 rau6nerz r4aup 4raur 4raus. 4rausb 3rausc rau6scher rau6schn rau6sch5r 4rausd rau4sek 4r3ausg 4raush 4rausl 4rausr 4rauss raus5se 4rausv 4r3ausw rau5ße r4aut. r4aute rau6t5ent 4rauto rauto6ri rau4tra rau4tro raut5s 1raü 2rax r3axt ray3o ra2za räch4s3 1r2äd 2räf rä3fr 2räg rä4g3ei 2räh 2räm 3rän. 3räni 3räns 2räp 2räq 2r1är r2är. rä3ra rä3ro rär5st rä2sa rä2sc räs3sc rä3te räte3i 2rätz rä2u 4räue 2räul 4räuss 2räuß 2räx 2rb rb3abb rb3abe rba4del rba4lin rba2m r4banf r4b3ang r4b3ant r4barz rbb2 rbe5erf rbe5eri rbe5ert rbei3d4 rbe5inf rb5einh r6belaeh rbe4lan rbe4lau r4beläh rbe4ler rben4ac rbengene6 rbe5rae rber4ei rber6en rberin6t rber5k rb5erke rbe3ro rbe5rum rbe3sl r2b3im r4b3inf rbin4fo r4blan r6b5lasser r4b5last rb2le r4b3le. r4b3leg rb5lein r4b3ler r4bleu rb4lie rb4lin rb4log rb2lö rb2o r4bonk rb2r rb3ras rb3rea r5brec r6brechts rb4sam rb4s3an rb4sei rb4set rb4stau rb4ster rbs4teu rbun4da r2büb rby2t 2rc r1ce r3cel rce2n r3che. rch3ei rchein6s r3che4n3 rchi3d r3chil rch3l rch5mi rch3n rch3ra rch3re rch3s2 rch5sp rch3t4a rch6t5er6f rch6t5erg rch6t5er6r rch6t5erw r2ch3u rch3w r1ci r2ck r3cki rck3s r1cl r1cr 2rd r2dab rd2ac rda5chu r2da2d rdaer4 r2daf r2d3ak r2d3al rd5anti rd3anz r2d3a2q rd3ara r4d3arg rd3ark r4d3art r4darz rd3a4si rd3asp rdär2 rde4al r4d3ech rdein6fl r4d3eis r4d3elb r4d3elf r4d3emp r3den rden3d rd5endu r6d5engen rdenk4r rden4s5a rd5enth r4d5ents rde5ono rde4r5ei rde5r4er rde6rer6g rder6folg rderin6du rderin6s r4derit r4d5ernt rder5oe rder3ö rdes4k rde5stel rd5estn r5dete rd3eti rdeu4ri r2d3e2x3 rdi2e rdie5ne rdien4s rdiensta6 rdienst5ad rdin4a r4d3inf r4d3ins r4d3ira rdo4be rdoe2 r2d3o2f r3dom rd3oss rdo4st3 rdö2 rd3öst rd3rat rd3rau r4drea rd6reig rd4reis rd3ris rd3rob rd3roc rd3rol rd3rom r4drose rd3rot rd2rö rd3rum rd3run rd4s5aen rd4s3än rds2p rds4to rds2z rdt4e rdte3l rdt2s r4dueb r2d3ug r2d3uk r4d3ums rduns3 r2düb 1re re4ade rea6l5erw re4amm re4amt rea2s re3at. re3ats 2reä re4ban re4bau 3rebel reb4si reb4sti rech5ar re6cherfa re6ch5erzi re4chi 4rechs rech5tei rechter6 rech6t5erh 5rechtl 5rechts re3chu 4reckg 4recki 4reckz 4recot 4recô 3recy 3reda 4redd 4r3edel rede3r 2redi r3e4dik 3redip 3redu re3ebe re3el re3emu re3eng re3e4r 3refe 2reff r3effi 3refl 3refro rege4l5a rege4l5ä 2r3egg 3re3gi re2gn 2reh re4hac re4h3ar re4h3ei re4hel re4h5ene re4h5ent re4hep re4herf re4h5er4l rehgene6 reh3l reh5le reh3n reho2 re4h3or 3rehö reh3ra reh3ro re4hue re2hü r4ei. 3reiä r2eib rei4bar rei3de 4reidec r4eie 4reier. 4reiern 4reiers r2eif 4reifel 2r2eig reig4a r5eigene 5reigeno r5eigensc 5reiger 5reiges 5reigew 5reigru r4eih rei4kab reil4a 4reils 4r3eilt 4r5eimer re3im4p rei5nalt 4reinan 4reinb rein4de rei5necke. 4reinf 4reing 4reink 4reinm 4r3einn 4reino 4reinr re5in6sel r5einsp re3in4v 4reinw 4reinz rei4sal 6reisant 4reisar 6r5eisenb rei6s5ent rei6s5erk rei6sers reises4 4reisf 4reish 4reisl 4reisr rei5s6temp 4reisu 4reisv 4reisw reit3s4 rei6zell rei6zene rei4zwi 2reke 4rekk rekter6z rek4tin rek4top rekturin6 2rekz 2r3elb rel4e relea4 4re4lef re5lei 4r3e4lek 4r3elem re4lend r4elev 2r3elf re4lim 4relit 4r3elix rel4lar rel4l5ei 4r3elsa 4r3elst 2r3elt 2relu relu4d r2em r4em. re4m3a4b re4mau 2remä 2remb rem4da re4m3ei re5men re6m5erei re4m5er4f re4m5erl 4remig r4empe 4r3empf 4rempo rem4st rems5te re4mul r4en. r4ena rena4be re3nad re4n3an 4renarc ren5aue 4r5endab ren4dan rende4b ren6d5erk ren6d5erm 4rendg 3rendi ren3ec ren5ende re4nep 4r5energ ren5erk re4n5erm ren4erw 4renexe 3ren3f2 ren4gad 4rengag 4rengp 4rengs 4renhis re4nid re4n3im 4renju renk4lo renk4r ren4nar ren4n5e4b renn5e4c ren6nene 6rennen6n 4renng ren4n5in renns4 renn5sta renn5ste 3reno re4nop re4nos renrue4 renrü4 rensch4 4r5ensem ren6serg ren6sing ren5skl ren6spat ren5sta 6renstip rens5tri ren5stu 4r3entd 6rentera 4r3entf 5rentfo 4rentgi 4r5enthä ren4thi 4r5enthu 4r3entl rentmo4 ren6tric 4r3ents 5rentss 4rentw 4rentz 4renue 4renumg 2renü r2enz ren4z5ar ren6zerg ren6zer6l renz5ertr ren6zer6w ren4z5in ren4zut ren4zw 4renzym re3ou 3repe 4r3e4pen re3pf 2repi re4pis 4r3epoc 2repp 3repra 3reprä 4repren 3repu r4er. rer3a4b re3rad 4r5er4bie 6rerbreg 4r3erbs 4rerdb 4r3er4dr rere4d re4r5eid 4r5ereig 4r3e4rek re4r5ent re4r3ep re4r5ers re4r5erw re5res r3erfa 4rerfah r3erfo 4rerfol r6erform rer4fue rer4fü 4r3ergä 6rergebn rergene6 rer4gom rer4gri 4r3erhö r2eri re4r3id re4rim rerin4s rerin6ter rerk2 rer4kan 5r4erki 5r4erko 5r4erkre 5r6erlaen rer4lan 5r6erland 4r5erlau 5r4erlän 5r4erli 4r5erloe 4r3erlö 4r5ermae 4r3ermä 4r5ermit rer6mued rer4müd rer4nae 4r3er4nä 4r3er4ni 4r3erns 4r3ernt rero4b 4r3erod rer3o4v 2r3er2ö r3erre 4rer5reg rer4rei 5rers. rer6sätz rer4seh rer4sto 4r3er4su rer4tei re2ru rer4wac 6r5erwerb 4rerzae 4rerzä rer5ze. 5r4erzei rer5zen rer5zes 4r5erzie 5r4erzu 5r4erzü 5r4erzy r2es r4es. re4s3an re4s3au rese4h 3reser reser5e 3rese4t re4s3in re4s3of 3resol 3reson res4po res6s5erf res6s5er6m res6s5erp res6s5er6w ressgene6 res4spa 3rest. re5start 5reste. rest5ein 5resten4 res6tent res4tex re4stö rest5rau rest5ric 3rests res4tu 2resy 4r3etab re4t3ak 4r3e4tap 4retat re2th ret5rad re4t5rol rett3a ret4tan rett3r rett3s4 reub2 reu4eri reu3g2 2reul re3ums re3ung 4r3eunu 2reup 2r3eur reu4z5ei 2reü r3eva revil4 rewa4r re2wi rewin4 2rewo 2r1e2x1 2rey 1ré 2r1f rfa5chu r2fap rf3aue rf4äh rfbil4 r4fense r4f3erd r4f5er4la rfer4le rf4es rff2r rfi4le. rf3inf rfin4s r2fj rf2l r4fland r4f3lic r3f4lu r2f3o2b r2f3o2f rfolg4s rf2r r4f3ras rf3rat r4f5rauc rf2sa rf4säu rfs3id rf4spa rf2su rf2th rf2u 2rg rg2ab r2g3a2d r4g3aeh r2g3ah r2g3a2k r4g3alb r4g3alp rga4me. rg5amei rga4mes r5gamo r4g3amt rga4ner rga4nin r2g3ap rg5art. r4g3ask rgast5a rgast5ei r4g3auf rg3aus r2gäh rgd2 rge4ant r4g3ech r4g5eise rge4l5ac r4g5elef rge4l5er rgel5in rgene6rae rgene6rals rgene6rä rgen6gel rgen3t4 rgen4zi rgen4zw rge4ral rge6rang r4g5er4fa rgerin6t r4g5e4tap rgg2 rgi5er. rgi4sel r4gl. rg2le rg3le. r4gled rg3ler r4gleu r4glig rg4loec rg4log rgn2 rg3nac rg3nar r2g3ni r2gno rg3nom r2g3ny r2g3oa r2go2b rgoe2 r4g3oed r3gog rg3ora rgö2 r2g3öd rg2r rg5raen rg3rai r4g3ral rg5rand r4g3rän r4greg r4g3res r4g3ret r3gro rg3rüs rgs2c rg3s4en rgs2i rg3s4pe rgs4pi rg3spr rg5stei rg3s4ti rgs4tra rgti2 r1h2 2rh. r2ha. 2rhaa 2rhae 2rhah 2rhak 2rhal rhal4b3 2rhan 2rhar 2rhau 2rhä r2he. 2rheb 2rhef 4rheit 2rher rhe4r3e 2rhi r2hod 4rhoel 2rhof rhof3s rho2i3 2rhol 2rhot 2rhöl 2rhs 2rhue rh4un 2rhü 3rhyt ri5alei ri5a6l5erw ri5alim ri5a4lin ri3am. ri3ams ri3ang ria3p ria3s4t rib4bl rib2l ri3ce rich3a ri5chlo rich5s4k rich4sp 5richtl richt6s5e richt6s5o ri4cki ri4con ri4dar ri4dau ri4dea 4r3idee ri4d3e4l ri4dent ri4denz 4ridol 2ri2dy r2ie rie4bac rie5blo rie4b5ru rie4b5rü rie4fem 4riefm rie4fr rie5g4r rieg4s ri2e3i2 riein3 ri3el. rie5la ri3ell ri3els rie5nade riene4 riener5i ri5enro rien3s rie5rad riere4n rie5res rie3ro rie3sa rie5sta ri3eur ri2fa rif3an ri2fä ri4f3ei ri4f3er rif6f5en6d rif4f5er rif4fr ri4fin ri2f3o rif3s2 rif4t5er 1r2ig riga3e 4r3i4gel ri4g5ene ri2gl rig3la rig3lä ri3g2o ri1i2 rika3s4 ri2kä ri4kin ri2k3l ri2kn ri4kone ri4kor ri2k3r ri4kun rila4b rilf2 rille4n5 2rima ri4mag ri4m3au ri4me. 2rimm 2rimp rim2s3 r2in. ri3na 4r3inan 4rinbe 3rinde rin4dia 4r3indu ri3n2e rine3i rinein4 rine3s4 2r3inf 5rinfre r2ing rin4g3a rin4gei rin6g5erw ringe6se rin4gle rin4gor rin4gr ring5sc ring5sti ring5str 2r3inh 5ri5ni. 4rinit 2r3inj rin4kal rin4kl rin4kn rin4ko rin4kri 2rinl 6r5innenm 4rinner r5innere r3inno 4r3innr 4rinnta rino3 2r3in2q 2rins r4ins. rin4sig rin4sol r3insp 5r4inspi r5insti 3rinsy rin4t5an 4rinte rin6tent rin6ter6g r4intr rin4t5re 2r3inv rin4vas rio2d 2r1ir r2is ri6schei ri4schl ri4sch5o rischoe6 ri4sch5ö4 ri4schw risen3 3risik 3risk ri3s4ko 4risl rismu4 4risol 4risom ri2sp ri4spi ris3pr ris4ser ris4sp ris4ste ri4st rista4 rist5ab ris6t5erf ris6t5ers ris3to ris4t3r r2it 4r3i4tal rit5ant 2ritr rit4ra ritre3 rit3s2 ritt3a rit4tan rit4tau rit4t3h rit4to rit4tr ritt4s5o 3ritua r3i4tum rix1 1rí 2rj 2r1k rka4b5l rk3adr r2k3a2g rka2k rk3aka rk3all r4kanl rk3are rk5assi r4k3att rkauf6st r2k3e2d r4kelem rke3lo rke4ne rken5s4t rker4he rker4le r4k3er4w rk3ide r2k3im rk3inh rk3i4n3i rk2le rk2lu r4kneb r4knut rk3o4be rko3ef rk3o4ri rk2os r2k3ou rk2r rk3ren r3kri r4k3rom r4krou rk4s3al rks3au rk4s5cho rk4s5ein rk4sel rks5ern rk4sin rks5inn rk2so rks3or rks4pen rk3sta rkstati6 rk4stoc rk4stor rk3str rk5s4tue rk4sum rk4t3ak rk4t3an rk4tas rk4t5eng rk4t5ent rkter3 rk4t5erf rk4t5erg rk4t5erk rk4t5erl rk4t5ero rk6t5ersc rk4t5erw rk4t5erz rk4t5eta rk4t3in rk4t3o4b rk4t5rad rk4t5rat rkt5rei rk4t3ri rkt4sor rk4t3um rku2n rk3una rk3uni rku4ra rku4sa rkus3t 2r1l rl2a rlage4n5 rlags5t r5land rlan4d5i r2l3ar rl4au rl1c rle2a r3lec r5lei. rle4st r3lex r3li rli4ne. rli4nee rli4nem rli4nes rli2s rloes5s rlog5in rlon3 r3lor rloun4 r3lö rlös3s rl3skr rl3ste rl4sto r3l2u rlust5a rlus4t5r rlz2 2r1m rm3ade rma4leb rm3ami r4m3amo rma5n4e r4m3ank r4manl r4manp r4mantr r4m3aph r4m3a4po3 r4marc r4marz r4matta rm2ä rm3d2 rmd4e rm3e4ck rme5erh rme5erz r4m3ei. r4m5einb rme5inha rme5inse rme5in6to r4m5einw rme4ner rmens4 rmen5st r4m5entf r4m5ents r4mentw r4mentz r4m3erb rmere4 rmer6fah r4m5er4fo r4m5erfu rmer6geb r4m3erh rm5erkr r4m3erl r4m5er4na r4m5ernä r4m3erp r4m5erse r4m5er4ze rm4es rme5sta rme5str rmet5as r2mex rmid2 r4m3i4de r3min rmi6nanz rmi4nar rmi6neng r2m3i2r rmi6schw rm3iso rmiti4 rmm4a rm5man r4m3obs rmo3el rm3ofe rmo4nau rmon3s4 rmo2r rmo3st rm1p2 rm3s2k rms2p rms4tr rm3ums rm3umt r4m3una r4m3unf 2rn r1na r3na. r2na2b rn3abi r3nac r4nacc r4n3aes r4naho r4n3ala r4n3amt rna2n rn3an. rn3ana rn4and rn3ani r4n3ano r4n3anz rn3app rna2r r4nare r4narg r4n3ari r4narm rn4arr rn5arra r4n3asp r4n3ast r4n3atl rnat4s3 r4nauf r4naug r4naus r2n3äs rnd2 rndi4e rne4bl r4n3eff r3n4eid r4n5elfe r4n3e4ma rne2n r5nen. r4n5ends r4n5ener rneng4 r2n3e2p r4n5erbi r4n5er4fa r4n5erfo r4n3erg r4n5erhe r4n5erke r4n5er4ku r4n5er4le r4n3ert r4n3er4w r4n3erz rne4t3a rne4ter rne4to rne4t3r rnet3s rne3u4f rn3f2 rng2 r2n3i2d r2n3in rn4ina r3n4ing rnk2 rnk4a rnn2 r2n3oe rnoe4d r3noet rn3oly rn3ope rn3opf rn3orc r4n5orde rn5ost. rn5osti r4n3ott rn1ö rnö2d r3nöt rn3sä rnsch4 rnse4h5a rn3s2l rns2p rn3sta rn5stei rn3sti rn3str rn3stu rn3s2z rn3te rnte3e rn3tr r1nu rn3ums rn3ur r1nü r1ny rnz2 1ro. ro3adr roben5s r5oberf ro4berg ro4berl 2robj r4obo ro4b3o4r ro4bre 2robs ro1c 3rock. ro4ckel 3rock3s ro4cku rodi4e rod2r roebel5 roe4bl roe2f r3oefe r4oeh 4r3oek 4roel. ro3ela r3oelf r3oeli roel4la 3roemi ro3en. ro3end ro3enf ro3enz ro3erf ro3erh ro3erz ro3eta 3roetu ro3ev ro3fa ro4fen. 4roff 4rog. 3rogg ro4h3in roh3l4 ro4hoe 3rohr roh4rer ro3ir ro3iso rok2l r3okt ro3le ro4liv rol4lac rol4l5a4g rol4lan rol4las rolle4 rol4lei rol6lerg rol6ler6w rollor4 rolls4 roll5ste r4olo rol3s ro4lym 5roman. 5romane rom4anf 4romb ro4mei romen5e rom5ent ro4mer rom5erk rom5ers 2romn r2on ro3nar ron4au rond4a ro4n5erb roni4e ro4niki ro4niku 4ronk rons4 ron5str ron4tae ron4t5an ron4tar ron4tau ron4tä ron4tel ron6tend ron6terf ron6terk ron4th ron4t3r ron4t3u ro3ny ro3o2f r3oog 3room 4ropf ro3pn ro3p4r 4ropt ro3rad ro3rae ror3al ror3an ro3ras ro3rau r4o3re 4r3orga r4oro ro3rol ro3rom ro4rop rort4st r4oru ro3r4ue ror2ü ro3sa rosa3i4 r4ose ro3se. 3roset 3rosh ro3s4i 3rosin ro3sp ros4s5al ros4s5ei ross5enke rosseri6 ros6sess ros4so ros4spa 3rostb rost5ec ros4t5er rost5re r3oszi ro4ß5en4k ro2ßi ro2ßu ro4t3ak ro4t3al rot5art ro2tä ro4t5en4d ro4terl rot5ers ro4thu ro4toe rot3sa rots4te rot4tau rot6terk rot6terl ro4t3um 3roule roulet4 3rout 3rowd r4ox. ro3xa r4oxk röbel3 rö2bl rö2du 2r1ö2f 1röh 2r1ök rö2l r3ölf röl4l3a 3römi r1ör 3rösl 3rötu 2r1p r3p2a rpe4r3a rpe4r3e rpe5re. rpe4r5in rp2fo rpi2p rp2l r2p3li rp2s3i rps3t rp3t 2rq 2r1r rra3b4r rr2ac rr3a4ck rr2ad rrade4 rra4deb rra4den rr3aem r4r3akt r3ral rrat4st rr5aufg rr5aufl rr3äm rr1c r3reh rr5einr rrena4 rre4nob rren3s4 rren4za rren6z5er rre4pa rrere4 r4r3er4h r4r3er4l r4r3esk rre4ve r4rezi rrg2 rr4hen rr4hos rrid4 rri5er. rrie5r4e rri5erm rrik2 rri4tan rrk2 rr4nau rrn3s rr3obs rro3el rroe4s3 rron3 rro4re r4r3osz rrö2s3 rr2th r3ru rr2ue rrue3b rruecker6 r4rur r3r2ü rrü3b rrücker6 rry1 rrz2 2r1s r3sabo r3sac rsa5chu r2s3a2d r4s3aem rsa4lin r4s3amp r4s3amt rs3ana r4sanb r4sanf r4sanga rs3anm r4sanp r4s3ant rs3anz r2sap rs4ark r5s4au. rs4aue rsau6erl rsau4g rsau4m rsau4r rs2är rscha4o r3sche r4sch5e4b rscher5ei r3schi r3schl r3scho rsch5ort r3schr rsch4ue r4s3ebe rse2e r3seg r4s5e4mis r3sen rse5n4al rse4ne rsenk4r rsen3s4 rser5ei r4s3erh r4s3er3o r4s3erö r4s5ersc r4s3erw r4s3erz r3set r4s3eth rsex4t rs4ha4k rs4har r3s4ha4v r3shir r3s4hor rs4il rs4kal rs4kel rs4kie rs4kis rs4kle r2sky r3s4lip r3s4mog r3snob r2so2b rs2om r4s5ort. r4s5orts rs3ost rs2p rs5para r4sphi rs3s2 rst5abl r3stad r4stak rst5ala r4stale r4st5ans r4stant rst3as r4staus rs5täti rs4tei r4s5teil rst5eindr rst5einga rst5emi rs4temp rs4terb rst5erba rst5er4f rs4t5er4h r4steri rst5er4l rs4tern r4st5ero rst5er4ö rst5er4r rst5er6st rst5er4t rst5er4w rs4t5erz rs3tes rs4t5ess rs4t5eta r3steu r3s4tev rs4tew rs2th rst5her r3s4tie r4stin rst5ing r4stit rs2to r4s3tot rs2tr rst5rät r4strea r4s5tren rst5ret r4strun rs2tu r6stuebe rst5ums rs5tung r4stunt r4stübe r2sty rsui2 rsum4s rs3umw rs4win r2sya rs4zin 2rt r4t5a4ben r4t3abo rta4ck rt3aeh r5taet rt3aff rt5agent rt3aka rt3akk rt3akr r4talle rt5allt rt3alp r4t3alu rt3ama rt3ana rt3ang r5tank rt3ann rt3ans r4tanw rt5anza rt3arb r4t3arg rt5a4rie rt3arm rt3art rt3asp r5tat. rt3atl r4t3atm rta4to r4t5auft r4taut rt3äh rt3ärm rt3ärz rtät2 r3te. r4t5eben r3ted rte3eh rt3eff r3teh rtei3f rt3ein r5t4e5in4d r4teinh r4teinr r4teinw rtei3s4 rte4lae rte4l5ei r4telem rte4l5en rte4ler rtel6lau rtels4t rtel5ste r4t3emb rtem4e rte4nem rte4ner rte4net rtenge6bi rten3s4 rt5entf rt5entl r4t5ents r4tentw rteo2 rte5rae r6t5ereig r4t5erfo rt5ergu rt5ergü r4t5erla rter6mit r4t5erna r4t5ernä r4t5ernt rtero4 rter6öff rter6sparn rt3erz r3tes rte3s4k rte5sta r4t3e4ti r4teuro r3t4hag r4t3heb r4t3hel r5therm rt4herr rt3heu r2t3hi rt4hum r2t3i2d rti2e rti4gel rti4g3r rti4kl rt5illu r4t3i4ma r4t3ind r4t3inf r3tit r3to rt3ope rto5pfl r4topt r4t3orc r4t3org rto4rie rto3s rt2ö r4t3ral rt5ram. rt5rams rt5rand rt5rati rt3rea rt3reb rt5reic rt5reif r4t5reis rt5reit rt5ring r4t3ris r4t3riv r4t3rob r4troh rt5roma r4trou rtrue4c rtrü4c rt5sand rtsch4 rtse4h rts5ing rt4sis rtski4l rt4s3or rts4tue rt4sum rt3t2 rtu5end rt3uh rt3umb rt3und r4tunf rt3ups rtu4rei r4t3url r4t3urs rtu2t r4t3ute rt2y1 rtz2 ru1a ru3a2r3 rube4 rubens6t ru4ch5er5 ruchter6 ruch6top rucht5s ru4ck3a ru6ck5erho ru6ckerhö ruck5er6kr ru4cku rude4a rude4l5i ru2dr rueb3r 5rueckf 5rueckg 5rueckz ru5enz. ru5enzs 1r2uf 3ruf. ru2f3a ruf5erei ruf5erk ru2fo ruf4se ruf4ter ru4fum ru2gr rug4sa ruhe3i 3ruhm ruh3ri 3ruin ru3in. ru3ins ru3ist 2r3ulk 2r3ulm 2rum ruma2 ru4maa ru4m5aer ru4mal ru4mar ru4mär r3umd 4rumf ru2mi rum4mei r4umpe rum4ple r4ums. r3umt r3umw 2r3una 2r3unb 4run4d3a r4unde run4d5eb run4d5ei run6demo runden5e run4dep run6d5erf run6d5erk run6d5erl run6d5ern run6dero run6d5ers run6d5ert run6d5erw run6d5erz 4rundn run4do rund3r rund3s run4due 4rundv 4rundz runei4 4r3unem run4en 2runf runft3 4run4ga 4r5ungeh run4gei run4gel run6gerg 4rungl run4gla run4gr 2r3u2ni 2r3unl 2runm 2runn 2runr 4runse 4runsi 2runt runte4 2runw ru2p3a 2rupd ru2p3h 2r1ur ru2ra ru2r3e r2us rus4s5er 3russi 3russl rus4spa rus4ste rus6t5erf rust3o ru4ß3er ru4t3ab ru4tak ru4t3an ru4t3ap ru4tar ru4tau rute2 ru4tei ru4t3el rut5erf ru4t3o2 ru2t3r rut6scha 2ruz ru2zw 2rüb rü4bc rü4bs rü4ckel 3rückg rücks4 rück5sa rück5sp rü4fet rü2fo rü4h3el rüher4 rüh3la rün3f rün3z2 rüse2 2rv rve3a rve4n3e r4ventz rve3s rv2o 2rw rwe4gel r5weis r2wo. 2r1x ry2ac ry2c ryl3e ry3sth 1ryx 2rz rza2b rz4aeh r2z3af r2zak r2z3al rz3am rz3and r4z3ant rz3app r2z3ar r2zas r2zat r3zäh rz3ega r4zelem rzell4a rzen3e rzen6gen rzen6ten r4z5ents r4zentw r4zentz rz3epe r4z3erd r4z5er5ei r4z5erfo r4z5erfr rz5erfu rz5erfü r4z3erg r6z5erreg rz5er4sa r4z5ersc r4z3erw r4z3erz r4z3ess rzeu4g5i rzeugin6n r2z3id r4z3ind r4z3inf rz3inh r4z3inj r4z3int rz3inv rzkop4 rz5oele rz2of r2z3ot rz4t3au rzten4g rzt5ric rzu4gl rzum2 r4zwar r3zwec r4zweis r4zwet r4z5wir rz4wis r2zwo 1sa 3s2aa 2s1ab sab2ä 5s4abbat 3sabel sa4ben sab5erk 3sabet s3abh sa4b3i4t sa2bl sa4b3or sa2br sa3b4ru sab4rü s3abs 2sacc sa5chal 3s4ache sach3o4 sachs4 sach3t 3sachv s2ack sa4cki 2s3ada sa4der 2s3adm 2s3a2dr s2aeb 3saec sa3e2d 3saeg 4s3aehn 4s3aelt 4saemt s5aemte 4s3aend 4s5aengs 2s3aep 2saeq s3aerm 3s2aet 4saeugi 3saeul 4s5aeuss 4s3aeuß sa4fe. 2s3aff sa3f2r s2aft saf4tr saft3s4 3sage. sage3i 5sagen. 4s5a4gent 2s3agg sa4gio 2s3a2gr sah3l sah3n4a s2ahs 3s2ai sai2b sa3ik sai4ka sail2 sai2r s1ak sa2ka 3sa3kar 3s4aki 2sakk 3sako 2s3akt sa4kus 2sakz 3s2al. sa3la sa4lan sa4lar sal4at sal4bo 3sald sa4leb sa4l5erb sa4l5erk 3s2ali sa4l3id sali5er. sal5ins sal4le. 4s3alli s3allt sa4lor 3s2alp sal4s3o s4alto 3salz sal4zer sal4zw 3sam. sa4mae sa4map 4s3a4mat sa2mä 4s3ambu 3s2ame 4s3a4mei samen3 4s5a4meri 3samf sa4min 3samk s2amm sammen5 5samml 2s3amn sa4m3oe samp4 4s3amph 3sams sam3sc sam4ti sam4to sam4tre sam4tri samt5s4k samts4t 3samu sa4nae 4s3anal sa4nan s4ana3t sa2nä 4s3anbr san2c s4and. san4dab san4dan san4d5ar san4dob san4dre san4d5ri 3s4and5s4 sa4n3er 4sanfa 4sanfä 3sang. 3sanie 4s5anker sank4l 2s3anl 2s3a2no 2s3ans s4ans. san4sk san5sp 4santr 4santw 2sanw s1ap sa2pe 2sapf sapi3 sa4pos 2sap3p s2apr 2s1a2q s1ar 3sar. s2ara sa4rau 2s3arb 2sarc s2ard 4sarea 3sarg. s4arge sar4gl s4args 4sargu 4sa4rit 2sarl 2sarm 2sarr s2ars 2sart sarts4 s2a2r3u2 s2arv s2arw 2sarz 2s3a2s2p 4s3asso sa3s4tu 2s3a2sy satan4 sa4t5ant sa3te sa4t3ei 4s3a4tem 2s3atl 2s3atm sa4tol sa2tr sats2 sa3t4su 4s3atta 4s3attr 3s4atz sat4zel sat4z5en sat4zer5 satz5ere 5satzk s2au. 3s4auc 3s2aue sauen3 sau4ere sau6erste 4s3aufb sau5fra s3aufs s3aufz s5auges sau4g5la sau4gle sau4glo 5sau4g3r sau2i 2s3auk 3s4aum s4aun sau3na3 s2aur 4s3aura sauri3 4s3ausb 4sausd 4s5ausei 4s3ausf 4s3ausg 4s3ausl 4s3ausm 4s3ausn s3ausp 4s3ausr 4s3auss 4s5austr s3ausu s3ausü 4s3ausw 4s3ausz 2s3auß sauto6rin s3a2xi s4axo sa2y1 1sä s2äb 3s2äck 3s2äg säge3i s1äh 2sähn 2s3ält 2s1äm 3säma 3säml 2s3änd 4s3ängs 2s1äp 2säq s1är s2är. 2sära s2ärg 2särm 2särz s2ät s4äuge 4säugi 3säul 3s4äur 4s3äuss 2säuß 2sb2 sba4ne sb4au sbau4c sbau6m5en sbe3n4a sbe3ra sber4e sbest5op sbi2e s3bl s3bo s3br sbue5be sbü3be 1sc 2sc. 2scab 2scac 2scaf 2scal 2scam s2can 2scar 2scas 2scat s1ce 2scei 2s4ch. 4schabf scha5cher. s4chad s4cha4e 4schaep 4schaeq 3schaf s4chal 4schame sch5ana 4schanc 4schang 4schanl 4schans 4schant 4schanw 4schao 4schap 5schar. 4schara 4scharb 4scharc sch5arme 4scharo s4chauf 6schaufk 6schaufn 6schausf 6schauss s2chä 4schäp 4schäq 2schb 2schc 2schd s4che. 4schech 4schef. 4schefs 4sch5ei. 4scheim sch6ein. 6scheinm schei4s s4chel 4schemi 4schemp 6scheng. 6schentk s4cher scherin6s scher6kran 6schernt scher6trag 5scherü 3sches 4sches4s 4schex 2schf 2schg 2schh s2chi 4sch3id 3schie 5schil 4schimi 4schinf 4schins 4schint 4schiru 2schj 2schk 4schlad 6schlaed 4schläd 4schle. 4schleb 4schleh 6schlein 4schloc 4schlog sch5lor 4schlöc 4schluf 6schmaes 6schmaeß 4schmas 4schmaß 4schmäs 4schmäß 4schmed 4schmes 4schmex 4schmod 4schmoh 4schmüh 4schmy 4schn. 4schnas 4schneb 4schneg sch4nic 4schnum sc4ho 4schobj scho4e 4schoer scho4f sch5ofe 4schoh 4schorc sch5ord sch5org sch5orte sch5ortu 4schox 4schök 4schöl 3schön 4schör 2schp 2schq 4schrad 4schrag 4schras 4schräu 4schre. 4schrea 4schref 4schreg 4schreh 6schreif 4schrep 4schres 4schrin 4schris 4schrol 4schron 6schrote 4schrou 4schrus 4schrut 2schs sch3s4k schs4p sch5sta sch5s4ti sch5str sch5stu 2scht sch3t4a scht5sp s4chu 4schuhu 4schunt sch2ü 2schv s4chw 4schwaa 4schwas 4schwäl 4schwec 4schweg 4schwet 4schwid 2schz 2scj 2s1cl 2sco sco2r scre2 s2cri 2scs 2scu 2scy 2sd2 s2daq sdaue4 s3de sde2a s3di sdi2a sdi2e s3do s3dr s3ds s3du sdue3b sdü3b 1se sea2n se3at. seauto4 s3e4ben seb2l 4s3echo sechst5r 4s3echt 2s3eck sed2 sedi4e se4dik se4dit 3see se4e3i4g see3na se3end see5n4e se3enz seep2 see3ra se3erb se3erd se3erf seer4i se3erk se3ern se3err se3ers se3ert se3erz see3s4k 2s3eff sef2l 4s3e4gal segelei6 se2gl se3gla se3glä se3glo se2gn s3e2go seg2r seh5abe se4h3a4g se4h3ak se4h5ang se4hap se4h3ar seh5ein se4heng se6hense sehen4t seh5ente se4hep se4h5erf se4h5er4k se4h5erl seh5erz seh5ing seh5int seh3l seh3na seh3ra seh3ri seh3ro seh3s 3seh3t se4h3ur se4hüb 2s3ei. 2s3eic 4s3eid. 4s5eidec 4s5eides 4s3eids 4s5eifer 2s3eig s4eih s2eil sei4l3a sei4lei 4s3eime se3imp 5s4ein. 4s3einb 4s3ein4e seine5i seinen4 4s5einfl se5in4fo 4s5einfu 4s5einfü 4s3eing sein4ha 4s5einhe 4s3eini 4s3eink 4s3einm s3einn se5inne 4s3einr s5einsat s5einsät 4s5einsc s5einspa sein6stit sein6str se5in6ten sein6ter 4s5eintr 4s3einw 4s3einz 2s3eis 3s4eism 3s2eit 3sekr 3sekt 3seku 2sekz s2el. se4l3ac sela4n se4l5ano se4lanz se4l3at se4l3au s2elb selbst5e sel3d4 sel3e4c se4lef 4s3e4leg se4l5eig 6selektr 4seleme selen5e sel5erd se4l5er5e se4l5erf se4l5erk se4l5erl 4s3elf. 4s3elfm sel5ind sel5inf sel5inn se6l5inst sel5int 4s3elix sel3k2 3s2eln se4l3ob 3s2els sel5skl sel5sko sel5stem sel3sz se2lü selz2 4s3e4mig 2s3emp s4en. sena4b sen3ad se4na4g se4nah sena4r se4n3au se5n4au. se2nä senderin6f sen5eck se5neg senei4l se4nel sen5ende senen5e se4nep se6n5erei se4n5erf se4n5erk se4n5ers se4nerw se4n5ess se4n3e4v 3s2enf 4sengp senhaus6 3s2eni se4n3im se4n3in 6s5en6keli sen6kero sen4kni senks4 sen3ob se4noe se4n5ott se4noz s4ensa sensch4 sen4s5e4h sen6s5ers sen4s5i4d sen4s5in 3s4enso senst4 sen5stal sens6temp sen5sti 4s3entd 4s3entf 4s3entg 4sentla 4s3entn sen6t5ric 4s3ents 4sentw 4sentz se4n3un sen4zun seo2b se3of se3oh seo2r se4pen se3p2f se4pit 3seq se3ra. ser5adl ser3af ser5age se3rai ser3a4k ser3al ser3am se5rand ser5anz ser5äus serb2 s5erbe. se4r3e4b ser5eck serei4f 6s5ereign se4r5eim se4rein serei5s6t ser5eli sere4m ser5emi 3s4eren se4r5en5e se4r5enk se4r5ens ser5enth se4r5erb serer5e ser5ersc 4s3ergä 6sergebn ser5ha 4s3erhö se4r3id 3serie ser5inner serk4 6s5erkran 4s5erläs 4s5er4le. 4s5er4len 4s5ermah 4s5ernte ser3o4b ser3oc se3rod 4s5eroef se5roel 4s3eros 4s3erot 4s3eröf se3röl s4ers. sersau4 6s5erschü 4s5erseh ser6sehn sers4k se5r4ue serue5b se5r4um. se5rumm se3r2ü serü3b 3s4erv 3ses. sesch4 4s3e4sel se5skan 4s5eskap se3so ses2p 4s3essa s4essel sest2 se3sta se5stec se5stei se5stel se5stemp se3sto se3stu 4s3e4tap 4s3e4thi 4s3e4tho 4s3e4tik set3sp 3setu se3tun 3setz set4zei seu2f se3ufe se3uh 2s3eul se3um2 se3u2n 2s3eup seu2t se3ute se3uto 4s3e4van s1ex 3s4ex. 4sex4am se4xen sex2k s2exo 2sex2p sext4an sex5ti 4sext4r 3s4exu 2sex2z 1sé 2s1f2 s3fa sfal6l5er s3fe sfi4le. sfin4s sf4la s3fo s3fö 2sg2 s3ga sga2t s3gä s3ge sgeha4 sge4h5ab sgel4dr sge3lu sge3n4a s3gi s3gm s3go s3gö s3gr 2s1h 3s2ha. s3hae s4ha4ke. shal4li shalt4s5 3s4hamp s4has. s3hä 3shi. sh4ia 3s2hib 3s2hig 3s2hik 3s4hip shi2r 3s4hirt sh1l sh1n s3hoc s3hoe s4hoe. s3hof 3s4hoo 3s2ho2p3 sho4re 3s4ho2w3 s3hö sh2r sh4re sh2u shut3 sh2ü 1si si5ach. si3am. si3as sia4se 2siat sib2 3sic sichts5te sicker5e 4s3i4dea 4s3idee 4s3ideo si3der 2si2dy s2ie sie4b3a sieben5s6 sie4br sie4bu si2ed sie4gl si3ell sien3s si3ern sie3s2 si1f2 s2ig si2g3a2 si2gä si4g3ei s3i4gel si2gl sig2n sig4nu si2g3r sig3s4e sig3sp sig5sto si4k3ab si4kad si4k3ae si4k3a4g si4k3ak si4kalb si4kana si4k5ans si6kanth si4kanw si4k3ar sik5asp sik5ass si2k3ä si4k3el si4k5ens si6k5erei sik5erfo si6k5erke si4k5er4z si2k3i2 sikin3 si2k3l sik5le si2k3n siko3n siko3s si2kö si2k3r sik3s sikt2 si2ku si2kü s2il 3silb silber5e sil4br sil3c 3sili 2s3ill si4mag 2s3imb 2s3imm 4s3impf sim4st 3s4imu si3n2a si5nau s3ind 4sindu sines4 4s3infe 4s5infor 4s3infr sin4gae sin4g5an sin5g6le. sin4glo sin4g3r sings4 sing5sa sing5sc sing5so 2s3inh sini5er. 4s3i4n3it 3sinn. s5innenm s5inner4 sin6nerf 3sinnl 4s3inno 3sinns 2s3inq 2s3ins 3s4ins. sin4th s4into 2s3inv 2s3inz si4onm sion4s si3os 3sip s2ir 2s3irr si4sam 3sisc si4scha si4schl si4schn si4schu si4schw si2s3e2 sisen3 sis3i si4sin si4sis sismu4 si2so sis3or siss2 3s4ist si2su 3s2it si4tal si4tau si4tra si4t3re sit3s sit4zel sit6z5erm siv3a si4val si4van sive3 si4v5er4f si4vin siv3o2 si4vor si2vr 1sí 2sj s3jo s1k2 2sk. 2skab 2skae ska3la 2skam 5skanda 2skap 2s3kar 2s3kas 4skata ska4te. 4skateg s4kater ska4tes ska4to ska4t3r 2skau 2skä 2skb ske4l3i 2ske2n sken3e 3s2kep ske3ra s4ketc s3kh 3s2ki. s2kia 3s2kif s2kig 3s2kik 2skin s2kip 2skir 3s4kire s4kis. 3skiv 3skiz s3klam 4sklas s4klav 5sklave 2sklu 2skn 4skoe sko3ef 2skoh 2skol 4s3kom 4s3kon 3skop. s4kopa sko4par s4kope s4ko4pr 2skow 2skö 2s3kra skraf4 2s3kre s4krib 4skris 4skrit 2s3kro 2skru 2sk3s sk3t skto4 s3kue 3skulp 2s3kun skun6dei s3kur 2s3kü 2skv 2s1l2 s3lab s3lae 3slal sla4ma sland5a 4s3lar 3slash sla3sp s3l4au sla4ve s3lä sl3b s3le sle4gas slers4 s3lic sl4ob slo5be s3loc 3s4loga 3s2low s3lö sl4um 2s1m2 s3ma smab2 sma3la s4mall sm4an sm4ar smar4k5n sma5sc sma3sp smen4t5i s3mi smi2e smi2t3 smitte4 s3mu smusiker6f s3mü 2s1n sn2a snab2 snae4s3 snä2s3 s3n2e sn4eu s3ni sni5er. sni5ers sn4ob snus2 1so 2s3oas s1ob s2oba 4so4ber 2sobj so2b3l 2sobm 4so4boe s2o1c 3sock s4oda sodi2 so2do so3e2b 2s3oe2d soe2f 2s3oek 2s3oes so3et so4fen s4off. 4s3offi 3s2oft sog2l s2oh 2s3o2he 3s4ohl sohle4 sohlen5 4s3ohng 2s3ohr 2s3okt 3sol. so3la 3solan so4l3au sol3c 3sold sol4d5er 3sole so4l3ei so4lig sol4l3a sol4l5er 3solm so3lo solo3p solo3s 3sols so3lu 2s3o2ly 2s3omb some4n3 3somm s2on so4nau 3sond sone2 so4n3eh so4ner son4ga 3sonn son5ori sons4a son4s3o so1o 2s3o2pe 2s3opf 3s4opr sop3s2 2sopt 4s3orat 2s3ord sore2 so4rei so4r3el so4rem so4rer 4s3orga sorgi3 4s3o4rie so2r3o2 sor4tau 4s5ortes 4s3orth 5sorti sort4st sose4 2sosm so3s2p 3s2oss s3osth 2s3osz 3so3ß 3sott soun4d3 2s3out 2s1ox s2oz 2s3o2ze sö2c 2s1ö2d s1ö2f s3öffn 1söh 2s1ök 2s1öl 2s1ös sp2 2sp. 4spaa s4pace 4spack 3spaen 4spaer 3spaet s4paga 4spage spa4ge. 2spak 4spala 4spalä 4spale s4pali 4spalm 5spalt spal4t5a spa2m s2p4an 5spannu 5spant. 4spanth 4spanz 2spap sp4ar 4spara spa4rap s4pard 3sparr 5s6parten 4spartn 4sparty 4spassi 3spaß 3s4pat. 5spatel 4spati 4spatr s4pats 2spau s2paz 5spazie 2späd 3spän 2spär 3spät 2spc 2spe. s2pea 3s4pedi s2pee 2speg 3speic 4spein 3speis s4pek 4spensi 4s3perf 3sperg s3peri 4sperle s3pern 3s4perr sper6r5ei 4s3pers 4speru 4sperü 3s4pese 2s3pet 3spex 3s2pez 2s3pf 5sphaer s4phal s3phan 4s3phas s2phä 4sphän 3sphär s4phin 2sphy 1spi 2spia 3s2pi4e 4spiep 4spier spier4r 2spig spi2k 2s3pil 4sping 3s4pinn 2spip s2pir 4spiro 2spis 2s3pla 2s3plä 4sple sp3le. 3s2pli 2s3plu s3pn 2spod 2spog 3s2poh 3spoi 2s3pok 4spol 3s2pom 3s4pons 2spoo 4spop s4pore 3s4porn spor6tag spor4tu 4sporz 2s3pos 4spote 4spoti s4pots spo3w s2pö 4spr. 4sprael 4spraem s4praen 4spraep 4spraes 4spraev 4spraez 4sprak s4pran 4sprax 3spray s3präd 4spräl 4spräm s4prän 4spräp 4spräs 4spräv 4spräz 3s4prec 4spred 4spreis 5spreiz 3s4pren 4spres s4pric 5spring 5sprint 4sprinz 4sprio 4spriv 4sprob 4sprod 4sprof 4sprog 4sproj 4sprom 4sprop 5spross 4sprot 4sprov 4sproz 3spruc 5spruec 4spruef 3sprüc 4sprüf 3sprüh 3sprün 2s3ps s4ps. sp3t 4spub 2spuf 3spuk s2pul 4spulv 2spum 4spunk 2spup 3s2pur spu4rer 2sput 1spü s2pür 2s3py 2sq s3qu 2s1r2 s3ra srat4s5t s3rä s3re sre5cha s3rh sroe4s sroes5c sro3tu srö2s srös3c s3ru sruecker6 s3rü srücker6 2s1s s3s4aba ssa5ble ssa3bo s4sach. s2s3aj ss5alar s4s3all s4sanf s4s3ang s4sanh s4sanp s4s3anz ssa4ro ssa2s s4s3asi s4s3ass ssa3s4t ss3att ss3aud s4s3au4f ssau4n ssau4r ssau5ri s3sät s3s2äu ss2ca s2sce ssch2 s6scheid. sscheiner6 sse3a s4seben sse4ck sse3ec s3seh ss3eib sse5in4d sse5inha ss5einl sse5inte s4sekä s4selem sse6l5end sse4l5oe sse4lö s3sen s4s5endl sse6nend sse6nene sse6n5ent s6senerg ssener5i ssengene6 sse4nid ssenk4 ssen6kel. ssen6keln ssen6kels sse4no ssen6s5au s6sen6sem ssen6te. sser5a4d sser5as sse6r5att sse6r5ent sse4rep sser6fahru sser6gebn ss5ernt sser4öf sses4sa sses6sen s4s5estr ssex2 s4sexa ssgene6ri s3s4hut ssicht6s s3sie ss3i4ko s4s3imp s4sind ssing5s s4s3int ss3iso s4s3isr s2sk s5skala ss3oef ss3oel ss3ofe ss3off ssoi2 s4sonk sso5ral s5sorde s4s5orgi s2söf ss4pec ss4pen s2spl s4spro ssquet4 ss3s2 sssau4 ss5spr s4st. sst2a s3stab s5stad s3stae s4s3tak ss3tas ss5tauc s3stä ss5täti s5stein s3stel ss4teng s3s4tep ss4tern ss3tet s3steu ss5teur ss3tho s3stie ss4tin ss4toer s3stop s3stöp s5stör ss4tras ss4trat s4strie s5stun s2sty s4sumg s4sumk s4sumr ss5umsc s4s5umse s4suns s4sunw s3sup s4s3urk s2sz 2st. s2ta 4s3ta. 3staa 3stab. 4stabb 4stabel 5stabes 4stabfl 4stabh 3stabi 4stabit 4stabl sta4bli st3abo 5stabs. st4absa 4stabst 4stabt 4stabz st2ac 4stada 3stadi 4stadj 4stadm 3stadt 3s4taeb 4staebt 3staed 4staeg 4staehn 4staelt 6staenz 4staep st5aerm 5staett 4staeus 4staeuß 4stafel 3staff st3afr 2stag s4tagg s4tagl 3s4tagr stai2 st3aka s3tal. 4stala sta5lak 4stalb sta5l6er st3alg st3alm st3alp st3alr st3alv st3a4mi 3stamm stam4ma 3stan. 4st3ana 4stanb 3stand 4stanf 5stange. 6stangeb 6stangek st5angel st5anges 4stangr 4stanl 4st3anm 4stann st3ano 4stanp st6ans. st5ansp 4stanw st3a2o 5stapeln 3stapl stapo3 st3app 3s4tar. sta4ra 4stari 4starn 3s4tars star4ta 4starti 4starz 2stas 3stase stas4tr 4statb 3stati st3atl st3ato 5staub. 4staubh 4stauf st5aufb st5aufs 4s3taug 3staup 5s4taur 4stausc stau6scha 4stausg 4stauss staussen6 4stauto stauto6r 3stauu 2stav 2s3tax 1s2tä s4täb 3städ 2stäf 2s3täg 4stähn 4stält s4tänd 4stänz 2stäp st3ärm st3ärz 4stäte 3stätt 4stäus 4stäuß 2stb 2stc st3ch 2std 4s3te. 3steak 4s5team 4stean st5eben 5s4teche 5stechk 4stechn ste2d st3edi 3stedt 2stee 3s2teg ste4g3r 3steh 4stehr 4steic s4t3eid s4teif 5steifi st5eifr s4teig 5steiga stei4gr 5steigu steil5a 4steilc 4steils 5steind 6steindr ste5i4sc s4t5eise s4t3eiw 2stek 4stel. 4stela 4stelef st5elek 4stelem 4steleo 4stelep stel6laen stel6l5än 4stelm 4steln stel5oe ste4lö 4stels 4stem. 4stema ste4m5ac ste6m5ent ste4mer 4stemi ste4min 6stemper 4stempf ste4mu 2sten 4sten. stende6t s4t5ends stenei6l stenei6s sten3s4 s4t5entf s4t5entg s4t5entl s4tents s4tentw s4tepi 4stepr 4s5ter. 4sterba s6terben st5erbrin 4stere. ste4rec 4sterei ster5eif ste4rel 4sterem 4s5teren 5stereo ste4rep 4sterer 4steres 4sterf st5erfin 4sterg ster6gie 4sterh 5steril s4terit 4ster5k 4sterl 4sterm st6ern. 4sterö 4sterr 4sters 4stert 4sterw 4sterz st5er4zo 4stes stese4 stes5er stes6se. ste4st stes5ta s4testn stes5tr 2stet s3tet. ste4tab ste4tag 3s4teth 3s4teti 3s4tett s2teu 3steue 4steul st5eura 2stev st3eva st3e4vi 2stex s4texa st5extr 2stf 2stg 2sth st3heb st3hee st3hel st5herd s5therm s4theu st3hex s2t3hi s2t3ho s2thu 2s3tia 2stib 3s2tic 6sticket 2stid 4stie. 4stiefl 3sti4el stie6lei 4stien 3s4ties 3stieß 3s2tif 2stig st5i4gel 2s3tik sti4kam sti4kan sti4kar sti4kas sti6k5ere sti4kl sti4kr s2til 3stil. sti4la s3tild 3stile 3stils 3s2tim 4stimp sti3na st3inb s4t3ind 4s4t3inf s4t3inh s4tink st5inka 5stinke st5inko st3ins s4tinsz 4s4t3int 2stio 4stip. 3s4tipe 4stips s2ti2r st3iri 3stirn 4st3iro 4stis sti6scha st3iso st3isr st3ita 4stite 4stiti 5stitui 2stiv stiva4 stiz3a 2stj 2stk st5kan 2stl 2stm 2stn 4sto. 4st3o4bl 4stocht 2s3tod 4stoech 4s4t3oef 4stoen 4stoepf s4toes 4stoet 3stof 6stoffiz s2toh 4stoil s4tois 3s4toll sto4ne. 4stonn 4stoo s4t3ope 4stopf. 4s5topo 3s4topp 4stor. 4stord 4stores 4storf 4storg 4stori 4storp 4stors 4stort s4tory s2tos 3stoss stost5r st3osz 3stoß 4stota 4s3tote s4tott 4stou 1s2tö 4stöch 3stöck 2stöf 2s3t2öl 2stön 4stöpf 2stöt 2stp 2stq 4strad 4s5traec 4straeg 6straeum stra4f5a s4trafe s4traft 4strag 4strahi 5st6rahl 4strai 4strak 4stral stra5la 6strangi 5strangs s5trank 4strans st5rast 3straß 4straum 4s3träc 3sträf 4sträg 3sträs 3sträß 4sträum 4stre. 3streb st6reck 4stref 4streg 4s5treib 5streif 5streik s4t5reis 4streno 4strep 4streso s4tress st5rest 4stret 6streuem 6streues 4streuh 5s4treuu 4strez 4strib strie5s4 4strig 4strik 4strink 5s4tripp 4stris 4striu st2ro 4stroc 4stroep 3s4troh s4troma 5s4trome 5stromk 5stroms 4stropf 4stros s4t5rose 3ström 4ströp 3s4trud 6struemm 4struh 3struk 4strup st3rüb 4strümm 2st3s2 sts4a stsau4 st4sb stsch4 sts4i 2st3t2 s2tub 5stuben 4s5tuch 3stud 4s5tuech 5s4tueck 3stueh stu4el 3s4tuen 4stuer. 4stuere 5stuetz 3stuf st3uga 3stuh s2t3uk 4stumf 4stumo 4stums stum4st 4stun. st3unb 3stund 4stune s4tunf 3stunk 4stunn 4stuns 4s3turb stu5re sturi3 s4turk st3url stur6mei 4s5turn 4sturs 4st3urt 3s4turz 2s3tus 3s2tut 1s2tü 4stübu 4stüch 3stüh 4stür. 4stürc 4stüre 4stürg 4stürs 4stürw 3stürz 4stütc 2stv 2stw 3s2tyl 2stz2 1su su3al. su3an su2b1 suba2 4subi sub3in sub3l sub3s 3suc such3o such6s5ende such6spe such6ters sucht4s 3sud 2sueb 3suec sue2d3 sueden4 3suef su3ell 3suen 3suep su3ez su2f 2s3ufe su3fi sugge4s 2s1uh su3is su3it. su2k su3li 3sulta su4m3an su4mar su4mau su4mei su4m3el sument4 su6m5ents su6mentw su4m3et 2sumf su4m3id su4m3in 4sumla 3s4umm su4m3o4r 3s2ump 4s3umst su2n 2s3una sunder4 sun6d5erh sun6d5ess sunds4 2s3une 2s3unf 6s5ungena 4s3ungl 2s3uni 2s3unl 2sunm 4sunsi sun3st 2sunt 2sunv s4unwa 4sunwe 2supd sup3p su4rau su4r3ei su4r3er 3s4urf sur5ins su2r3o2 s5urspr sus1 su3shi s1ut su2te su2to 1sü 2süb sü4be 3sü2d1 süden4 3sün s2üs 2sv2 s3ve svie2 svieh3 s3vo svoran6s 2sw s3we swe6gers sweg3s sweh2 3s2wim 4s5wink s4wist 1sy sya2 sy3ab syl1 3syli sy2lo sy2lu sym3 sy2n3 3synd 2syo 3sys sy3sto sz2 2s3za 2s3zä 2sz4ei szeits4 2szel 3s4zena s4zend 3s4ze3n4e s4zeni 4szent 2szer sze3ra 2szet 2szeu 3s2zew 2szie 3s4zint 3s2zis 2szo s3zs sz3t sz4ts 2s3zu sz4un szu3ni 2s3zü 2szw 2szy 1ß 2ß1a2 ß3ac 2ß1ä 2ßb2 ßbal4li ßbau4c ßbrau4 2ß1c 2ßd2 ße2be 2ß1ec 2ß1ef 2ß3e2g 2ß1ei 2ß1ek ße2l3a2 4ß3e4lek ßels2 ßel3sk 2ß3emp ß4en. ße2na2 ßene2 4ß5energ ße2ni ßenk2 ße2n3o2 ßens4p ßen3s4t ßen4te. 4ß3entf 4ß3entl 4ß3ents 4ßentw 4ßentz 2ß1e2p ßer3a ßere2 ßerei5s4 4ß5er4geb ßerk2 ßer4ke ßer4le ßermen4 4ß3ersa ßer4seh ßers4k 2ß3er2z 2ß3es4s 4ß3estr 2ß1ex 2ß1f2 2ßg2 ßgel4dr ß3gm 2ß1h ßi2g3a2 ßig3s4e 2ß1i2k 2ß1il 2ß1im 2ß1in 2ß1i2o 2ßj 2ß1k2 ß3kh 2ß1l ßlers4 ßli1 2ß1m ßmut4 2ß1n 2ß1o2 ßoe2 ßos2 2ß1ö2 2ß1p2 2ßq 2ß1r ßroe4s3 ßrö2s3 ß3ru 2ß1s2 ßsau2 ßsch2 ßst2 2ßt ß2t3in ßt2ö ßtu5er. ßtu5ers 2ß1ue 2ß1um 2ß3unf 2ßunt 2ßunv 2ß1ü 2ßv ßvie2 ßvieh3 2ßw 2ßz2 ß3zs 1t 3taan ta3ar 4taat t2aba ta4b3an 2t3abb 2tabd 3tabel 2tabf 2tabg 2tabh 4t3a4b3i4t 2tabk 4t3abla 4t3a4blä 5tablet 4t3ablö 2tabm 2tabn tab5ort 2ta2br 2tabs t4absä 2t3abt 3tabu ta4bue tabu5s ta2bü 2tabw taby2 2tabz 2t1ac t4ache ta3chi ta3cho tach4r 4tachs ta3chu 3tacl 3tacu 2t3add 4t3a4der tadi3o4 t3adm t3a4dol 2t3a2dr ta3d2s 4tadt tad4t3a4 2tadv ta2e t3aebt tae2d ta3ede ta3edr 3t2aef 3taeg t3aega 4taegy 2taeh t3aehn ta3ei 3taele 4t3aelt 2tae2m t3aemt t5aenderu ta3ent 3taenz 2t3aep 2taeq tae6renz tae6rers tae4rob t2aet 3taete taets5t t3aetz 4t3aeug 5taeusc t5aeuss 4t3aeuß 2t3aex 3taf. 3tafa 3tafel 2taff t3afg ta3flu ta3fra 3t2ag ta2g3a2 ta4g3ei tage4si ta4git ta5gla ta4glo tagse4 tags5ta 2tahl tah4ler tah4li tahls4t tahl5ste tah4l3u 3t2ai ta3i2k tai2l3 tai4ne. ta3ins ta3ir. ta2ka 2takk 3takl ta3kla 2t3akq ta4kro tak6t5erf tak6t5er6z tak4t5in 4t5aktiv tak4t3o4 tak4tum 2takz t2al. tal3a4b tal3ac ta3lad ta3lag tal3a4s t2alb t3alb. 4t5alben t3albk 3talbr ta4leb talem4 tal5emb 3talen ta4l5end ta4l5eng ta4l5en4s 3taler ta4l5er4f ta4l5erg ta4l5erh tal5ersa ta4l5ert ta4let ta4leu t3algo 3talia tali6ene 3talis 3talke tal4l5ac tal4lan tal6l5auf tal6l5ein tal6l5erh tal6lerm tall3s4 4t3alm. 3talo ta4lob ta4lop ta4l3o4r ta3lö talp2 3t2als tal4sae 4talter talt4s 3t4am. t4amar 3tamen t3a4mer tam6mense tam4m5er tam4m3o 2t3a2mö t3ampl t3ampu 3t4ams 2t3amt 3tamu ta2na 4t3anal ta2nä 3tanbu 3tan2c tan4dan tan6d5erk t5andra tan4dre tan4d5ri tand4s5a tand6sen tand4sk tand4st 2tanf 4tangab tan4gar 5tango. 5tangos t3ang4r tan4gra 4tanhä t4ani t4anj tan4kan tan4klo 3tanks 4t3ankü 2tanl 4t3anna 3t4anne tano2 ta4nod 4t3a4nom t3anon ta4nop ta4nor 4t5ansat t3ansc 4t5anspr 4tanstr t4ant. tan4tan 4tantei 5tantenf 5tantenp t5antig 5tantis 4tanwae 4tanwal 4tanwä t4anz. tan4zar tan6z5erf tan6z5erh 4t3anzu 4t3anzü tan4zw ta4pe. ta4pes 2tapf ta2pl ta4poka t3app. 4tappa t3appr ta4rab 4t5arabi ta4rad 3ta4r3al 4t3a4ram ta4ranf ta4rang ta4r3ap ta4rat tarb2 2tarc 5tarchl 5tarchr 3tard 4t3area tar5ein ta4r3el ta4rer tar5ere tar5ers 3tari tar5ins 4t3arm. t3armb 4t5arme. 4t5armee 6t5armen. 6tar6meni 4t3arms 3tarn t3a4rom 4tarot ta3rö 2tart tar4tau tar4t5e4c 5tartei tar6t5eig tar6t5ere t5artik tar4t5in tar4to tar6t5rau tar4tre tar6t5ric tart3s 3tartü 3tarty ta3rum 4tarzt 3tas. t2asc tas4k3l ta3spr ta4s3s 4t3assi 4tasso 3t2ast ta4ste tast5ei tas4tin tas4to 2t3as2z 2t1aß t4at. ta4t3an ta4t5arm 3tatb t2ate tat5ein ta3tel 4ta4tem ta4t5ent ta4t3er ta4t3hi 4t3atom tat5ort tat5ric ta4tro 3tatsa 4tatta tatt5an 4tatti 3tatur tat3zw tau4b3a tau4bei 3taubh tau4b3l tau4b3r t4auc tauchs4 t3audi tau3e tauer4l tau4fak t5aufar 4t5aufba t3aufd 5taufe. tau4f5eu 4t3auff 4t3aufg t3aufh 4t5aufko 4t3aufl tau5f6lie 4t3aufm 4taufn 4t3aufp 4t3aufr taufs4 4t5aufsi 4t3aufw 4t3aufz 3taugl t3augm 2tauk t3aukt t3aul 3taume t4aun 4t3ausb 3tausc tau6schm tau6schn tau6schr tau6sch5w 4tausd 4t5ausei 5tausen 4t3ausf 4t3ausg t3ausk 4t3ausl t3ausn 4t3aus3p 4t3ausr 4t3auss 4t5austa 4t3ausu 4t3ausü 4t3ausw 4t3ausz 3tav. 3tavs taxi3s 2t3axt 3taz t3äbt tä1c 3täf 4tägä 2tägy 2täh t3ähn 3täle 2t3ält 2tä2m t3ämt t5änderu t3ängs 3tänz 2t1äp 2täq tä4reng tä4r5enz tä4r5ers tärm2 tä2ru t2ät 3täte 5tätigk 4tätt 2t3ätz 2täug 3täusc t3äuss 2täuß 2täx 2tb2 tbahner5 tbauer4 tbau3f tbau6m5en tbe3n tber4e t3bh tblocken6 tbote4 tb4ra t3bs tby2t 2t1c tchar4m tche4n tch4i tch3s tch3w t2ck tcor2 tcre2 tcu2 2td2 tdar4m3 tde2a tde3s4t tdi2e t3ds tea2 2teak te2am3 tean3 te4ben t5e4ber. 4techd 4techk 4techm 3techn 4t3echo 4tech3s 4techt 2teck tecke4 te4cki 2t3ecu te4del tedi4e te4dit ted2r 2tedt tee3id te3ele te3end tee3r4a te3erg te3erl te3erz te4es tee3t 4tefeu 2teff te5ge. tegen4 te5gen. te4g5end 2t3egg teg2l te3gr te4grä 2teh 3teha te4hac te4hap 3tehä te4hef te4hep 3tehi te4him teh3la 3teho 3tehö t3ehr 3tei. 3teic t5eifers tei4gab teigerin6s tei4gla tei4gle 4t3eign teik2 t2eil tei4lau tei6lent tei6l5erh tei6l5ero 5teiln 3teilu 2tein tein5al tei4n5e4b tein5e4c tei6nen6s tei6nerk tein6hab tein6sel te5insh tein6tol 4t3eis. t3eisb 4t3eish 4t3eisk tei5su tei3t teiz2 2tekz te4l3ab te4l3ac tel5aer te4lam te4lant te4lat te4l3au te4l3är tel3d4 te3le. tel5ech tel5e4ck te6l5eier te4l5eig tel5eint tel5en5e tel5eng te4l5ent te4l5erb te4l5erd te4l5erf te4l5erg te4l5erh te4l5erk te4l5ern te4l5ers te4l5eti te4leu 4t3elev 4t3elf. 4telfd 4t3elft tel3id te4lim tel5ind tel5inf tel5inn tel5ita telk2 2tell tel6lanf tel6lant 5telleh tel6lein tel5ler tellerei6g 5telleu 5telloe 3tellö telo4g3 te4l3or te4l5ost telp2 tel3s4k tel3sl telt2 te4lut t2em 3tem. te4mak 3temal te4mant te4marc tem5art te4m5att te4mau 4temäc 4t3embl tem4bol te4m3ei tem5er5e tem5erf tem5erg tem5erh tem5ern tem5ers tem5erw te4m3i4d te4m3i4m tem5ing te4miss 4temms 4temmt te4mop te4m3o4r 5temper 4t3empf tem4pli 3tempo3 tems2 temt2 te4mun te4m3ur 3t4en. te4na4b ten3a4d ten5aeh te4na4g te4n3an te4n3a4r te4n3au te2nä ten3äh 4t5endal tend4an 4t5endap 4t3endf 4t3endh 4t3endk 4t3endl 4t3endp tend4r 4t3endt te3ne. te4n3e4b ten3ec te4n3ed te4nef te5n4ei. tenei4d te4n3el te4n5end te4n5en5e te4n5ens te4n5ent ten5enz te4nep ten5erei te4n5erf 4t5energ te4n5erk ten5erm te4n5ern te4n5ero te4n5ers te4n5ert te4neru ten5e4sc te4n5ess tene4t ten5eta ten5eti te4neu te4n3ev 3ten3f2 t3eng. 4tengag t5enge. 6tenglis teng4r te4nid te4nil te4n3im te4n3in tenk2 3tenl 3ten3n2 4tenog te4nol te4nop te4nos te4n5ott 3tenr 3t4ens. tensch4 ten4seb ten6serg tens4po ten5sta ten5str ten5stu ten4sur tent5art ten6t5er6t 6tentheb t5enthu t5enthü ten6ting 4tentz te2ny ten6z5erw ten4zym teo2b te3o2f t2ep 2tep. te3p2f 4tepit 4t3epoc 4teppe 4teppu 3t4er. t4era te3ra. ter5abe ter3a4c tera4d 4terad. ter5ade ter5aff ter3a4g ter3ak ter5ala ter5alb ter5alle ter5alp te5rals ter5alt te5ramp te5ran. te5rane ter5anz te4r3ap ter3a4s te4rato ter3a4v te4r5änd ter6bauu 4terbe. 6terben. 6terbend ter6blin 4t3erbs 4terbt terb4u 4t5erde. 4terdg terd4r ter3d4s 3tere. te4r3e4b te4r5eck ter5eier ter5eige 6t5ereign ter5eil te4rein ter5ell 3tere4m te4r5ema te4r5emi te4r5end te4r5en5e te4reng te4r5ens te4r5ent teren5th 4tereo 3terer te4r5erb te4r5erd terer5ei te4r5erg ter5erh terer6ku te4r5erp te4rerr te4r5ers te4r5erw 3teres te4r3e4t ter6folgr terg2 6tergebn tergene6s 4t5erhab 6t5erhöhu te4r3id ter5iko 4teril 6t5erinner teri4on te4riso te4rit ter5i4ta terk2 t5erklär 6terkranku ter6löse 3termi ter4nas 4ternc terngene6 4ternwa tero4be te3roc ter5o4de ter5oel ter5ofe te3roh te3rok 4terons 4t3erot ter3ö ter6probt terr2 ter3ra ter4re. ter6regt tersau6er ter3sc ter4sep 6tersparn ter5t4a tert4s teru2 te4r5ufe ter5uns ter7weis ter3z4a 4t3erzb terz4e 4t5erze. ter4zes 4t3erzg t2es t4es. te4sa4k te4san te4s3au tes5eli te4s3ep teser3 tes5erb tes5ere tes5erk tes5erl tes3l tes4par tes4pen te4sph tes3si tess4t test5ab test5ak test5anz test5art tes5tät tes4teb te5stec te5steig te5s4tel test5elt tester5 tes6t5ere tes6t5er6f tes6ter6g tes6t5erh tes6terk test5erkl tes4tin t3estn tes5to5s4 te4sur te4tabl 4t3e4tap 4t3e4tat te3te 4t3e4thi 4tetho 2tetl 3t4euf teu4f3a 2t3euk 2t3eul 3te3um te3una te3uni t3eunu 2t3eup 3teur. teuren4 teu4r5ob 3teus te4van tewa4s tex1 4texam 4t3e2xe 2t3e2xi 2t3exk 4t3exo 2texp tex4ta tex4th 2t3exz tè2 2t1f2 tf4ae tfahr6ta tfal4l5i tf4äh tf4la 2tg2 tga4s5er tgas5te tgas4tr tga4su tga2t tgeb2 tgel4ta tge4n5en5 tgen3s4 tger4a t3gl tgol6der 2th. 2t1h2a 3t4ha. t2had 3thal. thal5ba 3thale 3thalh t4hali t4han. 4t3hau 2t1hä 3thäi 2thb 2thc 3the. 3t2hea 2t3hef 2t3hei t4hein4 the5ins 3t2hek 3t4hema 4themd 3t4heme t3hemi 4t3hemm the3na t3hend t3heng t3henn then3s 3t4heo 5therap t3herl t4herm 4t3herr t3herz 3t4hese t3hess t2heu t3heu. 2thf 2thg 3thi. 3thic thic3k t3hiel thi5er. 2t3hil 2t3him th4in thi3nu 4thinw 2thir t3hist 2thk 2th1l 2th3m thmu2 thmus3 2th3n thn4o 2t3hob tho5chr 2t3hoe 2t3hoh 4t3hole 4t3holt 4tholz thon3s 4thops tho3ra 4t3horn 4t3hose tho3st 4t3hote 2t3hou t3hov 2t1hö 2thp th3rau thr4i th3rin 2ths 2tht2 t1hu 2thub t3huet 2thuh 2thup t2hur t2hus 2thut 2t1hü 2thv thvil4 2thyd ti3ac 4t3iago ti5alei ti3a2m ti3a2p ti3as 3tib2 ti3ce 5ticket ti4dea 4tidee tiden3 ti4d5en4d ti4dio 3tie. 5tief. 5tiefe. 4tiefel 5tiefen 3tiefl tieg2 4tieg. ti4e3in 4tiel. tie4l3a ti3ell 4tiels 3tie2n tien3e tien3s 5tiera tie4r5ei tieren6z tie4reu tie3s4t 2tieß ti3eu 3tif. ti3f2r tifter6k tif4tr 3tig ti4g3an tige4ra ti4g5er4z ti4git ti4g3la ti4g3lä ti4gle ti4g3li 4tigmat ti2gn tig3s4e tig3s4p tig5s4tr tik5amt ti4kanw tik5a4sc ti4kei tikel3 ti4k5ent ti6k5erfa tik5erha ti4kim ti4k3in ti4k3la ti6klini ti4klu ti2k3n ti4kob ti4k3op ti4k3ra ti4k3rä ti4krei ti4k3ro tik3s ti4kun ti4lant ti4lar ti4lau ti4l3e4b ti4lel ti4lent ti4l3ep 3tilg 3tilie til5ing til5ins 3tillo 4tillu ti4l3oe ti2l3ö ti4meli 2timm t5immat timmer4 tim6merg tim6m5erk 3timo 2t3imp ti3naf ti3nak tin5alb tin3an ti3nap 3tin2e ti3nec ti3ne3i tinein4 tinen4z5 ti4n5erf 4t3infe 4t3info tinga4 tin4g5ab tin4g3i tin4gl tingo4 tings4p t3i4n3it 2t3inj tink3l tin4kla tin4kn t3inku 4t3inno ti4n3oe4 ti4nor ti2n3ö2 t4ins. tin4s5es tin4spa tin4sum 5tinte. 4t5inter ti3n4um 2tinv 3tio 3tip. tip4pr 3tips ti4que. 3tirad t3iran 2t3ird ti3re ti3r2h 3tisc ti5sche. tisch5ec ti6schei ti5schen. ti5scher ti4schl tisch5lam ti4schn ti4schr ti4schu tisch5wa tis5erk tisex5p 2t3isl tis4tal ti3s4th ti4s3ti ti3s4tr ti4sur ti3ta ti4tal 3ti3te2 ti3ti 2ti3tu 3tiu tium4s 3tiv ti5va. ti4v5att ti4vel ti4v5ent ti4v5erg ti4v5erh ti4v5er4k ti4v5er4l ti4v5ero ti4v3id ti2vo tiv3or ti2v3r ti2za ti4z3in ti4zir ti2z3o ti2zw 2tj 2t1k2 tkege4 t3kr tkraf4 tkue3b tkü3b 2t1l tlang5s tl4au tlei4bl tlei6d5er t2lep tl4er tle4r3a tle6ring t3li tlings5 2t1m tm4en tmen6schl tmen4t3 tments4 tmetaller5 tmin4s tmi2t tmo4des tm4or 2t1n2 t3na tn4am tn4an t3ne tne5reig tne4rer tnergene6 tnes4s tn4eu tni4sa tnisex5 tni4so tnis3t to3al to2as to3a2t to4berg 4tobj to4boe tob4re to3cha to3che 4t3ochs 3tocht 2tock to6ck5ent to6ckers to6ckerz t2od toder4 tod5ern todi4e to4d3un 2t3o2dy 3toech 4toeck 2t3oe2d toe2f 2t3oe2k 4to4el. 4toels 4toelu to3e2m 3t4oen 3toepf 4toeps t4oer to3erh to3ero t3oest 2toeß 3toet 2tof 3tof. toff3a tof4f5ei tof6f5ent tof4f5er 4toffi toff3s4 tof4f3u 3tofi 3tofr to3fu togas3 2t3ohr3 2toi. 3toil toi4ne. toi2r 2toiz 3toj tok2l 2t3okt 3tole to4lym 2tolz 4toma. tom5ans tomar4b to4m5ene 3tomie 2tomn to2mu tom3un 3ton. to4nad tona5er to4n3an to4nap to4nau ton3d2 ton3e4b to4neh tonend4 toner6ke to4nid ton5ing 3tonn tonne4 to4nob to4nof 3tons ton4sin ton5sta ton5stel 2tony 3too to4pad to4pak 4t3o4pal top5ang to4pat to4per t2opf 3topf. to3pfä topf5erd top5flu top3hi topi4e to4ple to4pli 5topsy top3t 3t4or. to3rad tor5aen tora4g to3ral to5rand tor5ans tor5ant tor5anz to3ras to3rat to4rän 2torc tor6ch5el 4tordn 3tore tor5eic to4rein to4r3el to4rem to6renna tor4fan t3orga torin4s tor5int to4rob to4roe to4rop to2rö 3tors 4t3ort. tor3te 4t3orth 4t3ortn 4t3orts tort4st 3torw torz2 t2os 3tos. 3tosa tos2h to4ska to3s2m 3to3s2p tosser4 tos6s5ersc tos4to to3s4tu 2toß to4tae to2tä to5tem to4tho to4t3ri tots4 3t2ou touil4 to3un to1x 4toxid 3töch 2t1ö2d 2t1ö2f 2t1ö2k t1öl 2töl. 2töle 2töls 2tölu 3tön 3töpf t3öst 3töt 2t1p2 tpar4k tpho2 tp4oe 2tq tr2 2tr. 3t4ra. tra3a tr4ab tra4bu tra5cha tra5chl 3tract 4t3rad. tra4dem tra4der 4t5rades t5radie 4tradio 5tradit 4tradiu 4t3radl 4tradp 4t3rads 3traeg 4traend 5traene 4traeng 4traes 4traeß tra4fah 4traff 4trafg traf3l 4trafr tra4gel tra4g3l 3tragö 3trahi 4trahl 4trahm 3trai tra5inh 3trak 4t3rake 3tral. 3trale tra4leb 3tralg tra6lins 4tramm 5t4ran. 4trand tran4d5r 4trang t5rangi trang5s t5ranki tran4k5o t3rann 5trans tra5po tras6terf tras4t5r 4traß 4trateg t5ratin 4traub. 4t5raubv 4trauc traun3 4t3raup 4trauß 2t3räd 3träg 4tränd 3träne 4träng 2träs 2träß 4träuc 4träus 4träuß t2re 2t3re. 2trea t3reak t3real tre4am 2treb tre4bl tre4b3r 2trec t3rech 5treck. 5trecô 2t3red 4trefe 3t4reff 4trefl 4t3refo 2t3reg 2t3reh trei4bl 4treic 4treif 4t3reig 4t3reih 4treik 4t3reim 4t3rein trei4sc t3reiß 4treit trei6terp 4t3reiz 2t3rek 2t3rel t4rem t3rena 3trend 4trendi 5trennu 4t3rent t3repa 4trepe 4t3repo 5trepp 4trepr 5tres. 5tresen 4t3resi t5resso tres4st 4trest. tre5str 4trests t3resu tre4ta 3t4rete tret3h 4t3retr tre4tra tre4t5ri 4trett tr4e2u 5treuem 5treues 3treuh 2t3rev tre3x 2t3rez t2ré 2t1rh 3tri. 3trib t4rice 4trich. 4triche trid2 tri2e 3trieb trie5fr tri5ens tri5ent 3trier tri3gl t2rik tri4ke. tri4kes 3triko 4trikt 4t3rind 4tring 4t3rinn 3t4rio t2rip 3trisc 4t3riss tris5ta 4t3ritu tri2x trizi5e 3tro. 4trock. 4t3roec 4t3roeh 4troem 3troep 4t5roess tro4kes trol4l5a 4trom. 4tromb tro4men tromer4 4tromg tro4min 4tromk 4troml 5trompe 4trompu 4tromr 4troms 4tromt 4tromv tro6niks t3ronn tron3s t4r4op 3tropf 5trophä tro3sm 3tross t3rot. 4trout 3trow 3troy 2t3röc 2t3röh 2tröm 2t3rön 3tröp 3trös 4t3röss 3trua 3truc true5be true5bu 4t3ruec truecker6 5truemm t3rues 4truf 2truk trum2 3trum. t3rumä 4t3rumm trums3 4t3rund t3rung 5trunke 3t4rup tru4th 2truw trü3be trü3bu 2t3rüc trücker6 3trümm 2t3rüs try1 2ts tsa2b t3sack t2s3a2d ts3aem ts3aer t3saeu ts5aeus tsa2f t2sak t3s4akk t3sakr t5s4albe t4s3all t4s3alt t4s3amb ts3amp t4s3amt t2san ts3ang ts3ank ts3anm ts3ant ts3anz t2sa2p t2sa2r t3s4ark ts3as ts3au t5s4au. t5sauc tsau4d ts4au4e tsau4m tsau4n t4saut tsauto6r ts2äc t2sär t2säs t4s3äus ts3b ts4cap t2sce t5schaf t6schart t4s5chef t6s5chine t3schl tsch6lic tsch4lo t6schmue t6schmun t4schmü t6schor. t6schors t4schro t4sch5wo t4sch5wö t2s3e2b tse2c t2s3e2d tse2e tsee3i t2sef ts6ein. t4s5eind ts5einf t4s5einh t4s5einl t4s5eint t5seit ts3e4kl ts3e4la t4selbi t4s5e4mis tsen5er t4senq t4s3ent t4s3e4pi ts3epo t2ser ts3erb ts3er3e ts3erf ts3erg ts3erh ts5e4r5in ts3erk ts3erl ts3erm ts3ern ts3er3o ts3erö ts3err ts3ers ts3ert tse3r4u ts3erw ts3erz t6s5essen tse2t t4s3e4ta t4s3eth t4s3eti t2s3e2v t2sex2 t3s4exi t2s3i2d t3sig t2si2k ts3iko ts3ima t4s3imp tsi2n t4sind tsing4 tsin5gl t4s3ini t4s3int ts3iso t5skala ts4kele t5sklav t3s4lip t3s4mog t2so2b t3soc ts3oef ts3off t3son t2s3op tso2r t4s3ora t4s3orc t4s3ori t4s3orn t4s5ort. t4s5orts t3sos t2s3o2v ts2öl t5s4pare t3spek t4speri t4s3pic t4spins t2spl t5s6port. ts6portl ts6ports t5s4prac t4sprei t5sprun t3spue ts5rei ts3s2 tss4t t1st2 t6s5taeti t4stafe t4s3tak t4stale ts5tank ts5tant t4s5tanz t3star ts3tas t3stat t4s5tat. t4s5tauc ts3tav t4s5täti t4steil t5stein ts4terb ts4tern ts4tero ts3th ts4tig t4stit t4stoch t3stoe t4ston t3stop t3stö t4strac ts4trap ts4tras t4stren t6streu. t4strie ts4trom tstro6ma t4strun t5s4tub ts4tuem tstu5er. t2sty t2su. 3tsubi t4s3um. t4s3umb t4s3umd t4sumg t4sumk t4suml t4sumr t4s3ums t4s3umv t4s3umw t4sumz t2s3un t2s3ur t2s3ut tswa4s 2tt tt3abm t3t2ac tt5achs tt3aeh tt3aer tta6g5ess tt3ahl tta4ke t4t3alb t4t3ana t4tanb t4t3and tt5anka tt5ankä ttan4k5l tt5anku t4tanw t4t3app t4t3arb tt3arm tt3art tt3äh tt3änd tt3är tt5eben tte2c tt3eck t4t3eib t4t3eif tteil5a tteile4 ttei6leb t4t3eim tt3ein t4t3eis t3tel tte4l3a4 tte4l5e4b tte4l5en tte4l5in tte4lit tte4l5oe tte4lö ttels4t ttel5ste t4t3emu tte4net tte4nob t6ten6sem ttens4p t4t5entb t4t5entf t4tents t2teo tte4r5ec tte6r5ei6s tteri4e tte4rik tte4ris tter6klä t4t5ernt tter5oe tte4r5oh tte4s3a4 ttesae4 tte4s3ä4 tte4s3o ttes5pr ttes6ser tte5stri t4teti tt5extr tthae5us tt4hä5us tt3hel tt3hen t4t3hin t2t3ho t2ti2d t4t3igi tt3imm t4t3ind t4t3inf t4t3ins tti3z tt3la tto3ef tt3oel tto3er tt3ord t4t3org t4t3orn tto3s tt5rand tt3rän tt3rea tt2ro tt5roch t5trog t4t3rot tt3rud tts5and tt4sau ttschi4 tts5eins tt4sele tt4s5end tts3pr tts2t tts5taet tt4s5tät tt4s5tem tt4sum tt3t ttu3en ttu2f tt3ufe tt3uh ttur4m3 ttü1 ttz2 tu3al. tu3alm tu3alp tu3alv tu3ant tu3ar. tu3ars 3tuba tuba3b4 3tuber 3tubu 3tuch tu3cho tuch3s4 2tud tudie4n5 3tudo 2tueb tue5ber. 3tuech 2tueh tu3ell tu3en. tu3enb tu3eng tu3enk tu3ens tu3ent 3tuer. 3tuerc 3tuere tu3ern tue4r3o tu5ers. 4tuerz tu3es 3tuetc tue4th 4tuetz 2tuf tuf4e tu5fen t3u4fer 3tuff tu4gan 2tuh tuhl3a tuh4lei tu3ist tu2kr 2t3ulm tul4pa tul4pf tul4ph 3tum. tum4b3l 2tumf 2tumg 2t3umh 2tumk 2tuml 3t4umo 2tump 2tumr 4t5umsat t3umsc tum4ser tum4si tum4s3o tum4spe 2t3umt 2t3umw 2tumz 2t3una 3tuna. 3tunas 2tund tund4e tun4d5ei tun3dr 3tune tune4b tun4en t3unf 3tung. 4t3unga 4t5ungeh 4t5unger 4tunget tungs5 tungscha6o 4tunif 4t3u4nio 4tuniv 2t3unl 2tunm 3t4unn 2t3u2no 2tunr t3unsc 2tunt 2tunv 2t3up. 2tupd 2t3upg 2tups t2ur tur5abe tu4r3ac tu4rae tu4r3a4g tur5aka tu4r5alm tu4ralt tu4ram tu4r5ang tur5ank tur5ans tu4r5anz tur5asp tura5st tu4rau tur3c tu4r3e4b tur5eic tur5ein tur5eis tu4rep tur5erb tur5erg tur5erh tur5erk tur5erl tur5ern tur5ers tur5ert tur5erw tu4res tur5est tu4r3e4t tu4r3e4v tu4rid tu4ril tur5ins turin6sta tur5int tu2r3o turo4p tur5sa tur3sk tur3sn tu2ru2 tur3uf tur3un tu2s3a tu4schl tu4schm tu2se tu2s3i tu2so tu3spr tut4a tuts3c tuts5p 2tüb tü5ber. 3tüch tück4se 3tüf 3tüll 3tüm. 3tüma 3tümb 3tümc 3tümf 3tümi 3tüml 3tüms 3tümt 3tümu 3tümv 3tümw 3tür. 3tür3c 3türe 3türg 3türk 3tür3s 3türw 3tütc 2tv tvie2 tvoran4 2tw2 twa3i2 twa2s tweg3s4 twe4n3e twi2e t4wist 2t1x 3typ ty2p3a ty2pf ty1s2 2tz tz1a2 t2zat t2z3än t2zäp t2z3är tz3edi t4z3eie t4z3eim tze5ina tze5ind t4z3eis tzei6t5end t4zelek t4zelem tze2n tzene4 t6zensem tzen5st t4z5entg t4zentl t4z5ents t4zentw t4zentz t5zer. tzer6bre tze4reb tze4rer tz6erfe tz6erfr tzer6gre t4z5erhö tz6erl. t5zern t4z3erö tzer4öf t6z5ertra tzer6trae t6z5er6trä tz5erzi tze2s tzes3a t2z3i2d tz3imi t4z3ind tz3inf t4z3inh tz3int tz3inv tz3iso tzo2b tz3oef t2z3ok t3zol tz3om t2z3or tz3ti tz4tin tzu4gu t4z3unf t4z3uni tzwan4d5 t3zwie 2ua u1a2b u1a2c ua4ch uad3a ua4dan uad2r uae2s ua2g u3al3a2 u3a2l3ä u3alb u3ald uale2 u3a4leb u3a4lei u5alemp u5a4l5ent ualer4 u5a4l5erf u5a4l5erg u5a4l5erk ua4l5err u5a4l5erz u3a4let u3alf u3alg u3alh u2ali u3a4l3id u3a4lin u3alk u3aln ua2l3o2 ualp2 u3alr u3als u3alt u3a2lu u3alw u3alz2 u1am u3an. uan2a u2ane u3ans uante4 uanten5 uara4b uarer3 uar4k3a uar4k3e uark3s uar4t5a4n5 uart3s u3arw u3as. uas2a uasi3 uas2p ua2th uati6ons. u1au uauf3 u1ay u1äm uä2s u1äu 2ub ub5anke ub3ant u4b3arb uba2s ub3asc ubb2l ube4be ube4e u4b3ehe u4b3eig u4b5eins ub5eint ub5ein4w u4b3e4mi uben3o u4b5erde uberin6t ube4woe ube4wö u3bis u3bit ub3läu ub4lee u4b3lus ubmi2 u2bo2b u2b3ok u2bop u2b3oz ub5rank ub2ri ub2ru ub2rü ub4s5ang ubsau4 ub4s5auf ub4s3or ub4spa ubs5trau ubt2h u4bueb ub3ums u2büb 2uc uc1c u3cha. uch3ab uch3ad uch3ae uch3al uch3am uch5ans uch5ant uch5anz uch5arte uch3as uch3au uch3ä u3che u4ch3ed uch3ei uch5elf uchen5s4 u4ch3ep ucherin6s ucherin6t ucher6ken u6cher6lau uch5erlö uch4erz uch5er6zeu u5ches uche4t uch5eti uch3i4d u5chig. uch3il uch3im uch3in uch3l uch3m uch5ma uch5mi uch3n u3cho. uch3o4b uch5oef uch3op uch5org uch5ort u3chos uch3öf uch3r uch4ro uch6s5ein uch4s5el uch4sem uch4s5in uch4s5or uch5stran uch5stub uch4tak uch6t5eig uch6t5erf uch6t5ersc uch6t5er6t ucht5erw uch6t5erz uch4t5in ucht5sk u3chu2 uch3uh u4chum u4chur uch3ut uch3w u1ci ucin3 uck5elf u4ck5ene u4ckent uck4er u5ckero uckga4 u2cki uck3in uck5stu u1cl u1cr 2ud u3d2a uda3d ude3e ude3i2 udein4 ude4n3e uden3s4 ude6rent uderna5 uder3o uder3ö udiener6 udi2o3 uditi4 udium4 ud2ob udo3c u3d4o3e u2don ud4o3s u4d3rat 2ue. 2uea 1u2e2b 2ueba ueb3ae 2ue4bc 2uebd uebe2 ueber3 ue3bi ueb5le ue3bo ue4bs 2u2ec uech4s5c ueck5erb ueck5erh ue6ck5ers ue6ckerz ue2d3a2 uede4c ue5den. ue2d3o ue2d3r ued3s2 ued3t2 2uee2 ue3er 2uef ue2fa uef3ae ue4f3ei ue4f3in ue2f3l ue2f3r ue4fum 2ueg uege4l5a4 uege6lei6s ue2gl ue2gn u2eh ue2h3a uehan5 ue4h3ei ue4h5eng ue4hent ue4h5erf ueh5erk ue4h5er4z ue2h3i ueh4lei ueho2 ue4h3ob ue4h3of u1ei 2uek 2uel ue3lak ue4l3am ue4lau uel5eim uel5ein ue4lek uel4er ueler5ei ueli2 ue4lio uella4 uel4l5ad uel4lar uel4l5au uell5e4c uel4l5ei uelle4n uel4lo ue4lor 2uem ue4ment ue4m3id ue4m3in uem2s ue2mu 2uen ue2na uena4g ue3n4am uen3ar ue2nä uen4d5ei uendergene6 uen4due uen5ema uen5ens uen5esk uen4fak uen4gag uenge6bu uengene6 uenge6schl uenge6wan u3enh ueni2 ue4n3in uenk4l uenk4r ue2no uen4sem uen4ser uens6por uen5sta uen5str u3env uen6z5eig uen4z5in uen4zw 2ue1o 2u2ep uer3a2 ue4ra4t ue2r3ä uer3d2 ue5re. ue4r3ec uer3ed ue3rei ue5rei. uerei5s4 uer5ela uere4m uer5emi ue4r5eng ue4r5ent5 ue4rerf ue4r5er4g ue4r5er4h uerer4k uerer4l ue4r5er4m ue4rerr ue6r5er6sa ue6r5ersc uerer6sp ue6r5er6st ue4rert uerer6za uerer6zä u5er5esk u5eress ueres6si ue4r3e4t uer6fahru uer6g5eng ue4r3i4d ue4r3i4m uerin6nu uerin4t uerk4l uer4le. uer4nan uer4nau uer4neu uerns4t uern5ste ue3ro uer5ode uero3s uer4rh uerr4s uers4k uers4ta uer5stag uer5stau uer6trag uer6träg u3e4rue u3e4ruh u3erum u5erunf u5erunt u3erur uer4zoe 2ues uesch5af ue4schl uesen5e uesen5s ue4sin ues2p ues4sau ues4s3c ues4so ues4st 2ueß 2uet ue4t3al ue4tap ue4tau ueten5s ue4tik ue4t3ro uet6schw uety2 2uev 2uew u1e2x1 2uez u2fab uf3abe u2f3ad uf3aen ufae4ß ufall4 ufa2n uf3ana u4f3an3e ufa2r uf3are u2f3aß u2fa2t uf3au u2f3än u2f3ä2ß uf3eig uf3ein ufel4s5a ufel4s5i u2f3em u4f3ent ufen4te ufer4fo uferin6s uf5erke ufer6lau u4f5erne ufe2t u4f3eta u4f3eth u4feur u2fex uffer5e ufferin6 uff2l uf4fot uff2r uf4fro u2f3id u2f3im u4f3ins u4f3int uf1l uf3lit uflos3 u3fluc u3flug u3flüg u2fob u2f3of u2fop ufo2r uf3ori uf5orte uf1r uf4rass u3frän uf4sal ufs3an uf4s5eta uf4s3in uf2so ufs4por uf4spre uf4spro ufs2t uf5stras uf5stri uf4t3a4g uft3eb ufte4m uft5erd uft5er4g uft5er4l uf2th uft3in uft3s4 ufuen4 ufus2 2ug ug3a4br u4gabte u2g3a2d ug3aku u4g3ana u4ganb u6gangeb u4gani u4g3ank u4g3ant u4g3anz u2g3ap ug3ars uga2s ug3asc ug3att u4g3aus ug3d2 ugd4e ugeb2 u2g3ec u4g3eig u4g3ein ug5eise u4gelem ugena4b ugen6dre uge4n5en ugen3s4 u4g5entf ugenz4 u4g3erk u4g5ersa uges4 u5ges. u4g3esk u4g3ess ug3i4de ugi3en u2g3im ugin6ner u4g3ins ugin4sp ug3lad ug3län u6gleist u6gleitb u6gleitu u2gli ug3liz u4glok u2g3n ugo1 u2go2b u2g3oc u2g3oe u2gof u2gom ug3o2p u2g3o2r u2gö u4g3ram u4g3rat u4g3reg u4g5reis u4g3res u4g5rind ug3rol u4grou ug3rum ug3rüs ugs4alb ugs4and ugs2c ug4sin ug5span ugs4por ug5stan ugs4tie ug3s4tr ug4s5tür u1ha u1hä 2u1he uhe3a2 uhe3b uhe3e2 uhein4t uhe3s2 2u1hi 2uhl uh3lä uhl5ein uh4l5ent uh4l5erb uh2l3i uh4lob uhmes3 u1ho uh3o2b u1hö uhr3an uhr3au uhrei4s uh4r3er uhr3o uh2ru uhs2 uht2 2u1hü uh3w 2ui ui2a ui4che ui3cho ui4cker u3idd u3idm u3idt u1ie ui3em u1ig ui2ge uil4les u1im uin3it u3inl u3inw u4ische uisi4n u3ism uis3ta ui4te. ui2t3r uit3s ui1x uji3 u1ke uke2n uken3e uk3er3e uk3erl u1ki u1k2l ukle3i uk3ler uk2n u2k3o2b uko3c uko4ma uk2r u4krai uk4t3ae uk4tan uk4tau uk2t3ä uk4t3eb uk4t3el uk4t5ent uk4t3er uk2th uk4t3i4m uk4t3in uk4top uk4t5o4ri uk2t3r ukts2 uk4t3um uk2u ukue3b uku2s uk2ü ukü3b 2ul u1la u3la. u2l3af ulan4di u4lanf ulap3 ul2ar ula4ra ular4ra ularz4 ula2s ulasch5 ul3aus u1lä ul3äm ulb2 ul1c ulda3e uldan3 ul4dar ul4d3er ul4dre ul4d5rue ul4drü uld4se ul3eig u2lek ul3elf ul3elt ul3emb ule2n ulen3e ulen3i ulenk4 ulen3s u2lep ul3epe ul3e4po ul3er4h ul3er4r u4leru ule4s3a ules3t ule2t ul3eta ul3ext ulf2 ulg2 uli2k ulik5an ulik3o uli3p ulk4a ulk2l ulk2r 3ulkt ul3le ull5eic ull5ein ul4lem ull5endu ull5erkl ul4lid ul4l3o4d ul4lop ull3s2 ulni2 ulo2i ulom2 ulomb3 u2l3o2p u2l3or ulps2 ul5rau ul4sam ul4s3ec ul4ser ul4s3in uls6t5erk uls4t3h ul4sum 4ulta ult3ar ultauto6 ulter6min ulti5t ul4tri ult3s2 u1lu ul3umb u2l3ur ul2vr ulz2w u4m5a4ben uma2c u4m5aest u4m3aku um3alb u4m3all u5mann u4m3app u4marc u4m3arg u4m3arm um3aro u4m3art u4m5asts u4m3atl u4m3atm u4m3aus u4maut um3ärg u4m3äst umd2 u2m3e2b u4m3e4ck u2m3ef um3eic u4m3ei4n3 umen3s4 u2m3e2p umer4a u4merd u4m3erf u4m3erg u4m3erh u4m5erku u4m3erl u4m3ero u4m3erw 1umf 1umg 2umgü um3ill um3inh umi2o um3ir um3iso umi2t um3ite 1umk 1uml um3me umm5ein 4ummel um3mi ummi5erz um3n u2m3ob u4moel 3u2m3o2f u2m3o2p 3umöf ump4fa ump4fin 4umpfs ump5ler 1umr umsch4 umsche6f um4s3ed ums5ein ums5ens ums5erw ums2t um4sum umt2 um3to umu2r u1mü u2m1y 1umz 2umzw 4una. u2nab 4u3n4abr u3nac un5ader u3nae un4aer u3nal un3an un3ap un4apa 4unas una3st u3nau. un3aug u3naus un3äs 2und. un4da4b und3ak und5art un4d3as un4dän 3undd 2unde undein6f und5eis und5epo unde5ras under5ei underer6 und5eroe un4d5erö underten6 under6tend un4d3ex 4undg 4undi un4d3id un4dim und5in5i 3undn 2undo un4do4b un4d3op 4un2dr und3rä und3re und3ri und3rü 4undsc undue6b un4d3um undü4 un4düb 3undz un1e une2d une2h un4ei. un3eid un3ein un3eis une2l u4n3elf 3unemp une2n unen3e uner5o4b u4n5erz. un2es unes4s uneu3 u4n3eul unf2 un3fa 3unfä 4unfe 3unfr un4g3ab un4gad un4gam ung5ass un4gat un4g3au ung5eig ungen6te. ungen6ten unger4e 3unget 3ungew 3ungez un4g3ig un4g3in ung2l ung5lat 3unglu 3unglü un2go un4g3rä un4g3ri un4gro ungs5pa ung5stang un3ide 3u2nif unik2 un3iro u3nisc un3isl 3u2niv 2unk un4k3ak un4k3an un4k3au unker6ke un4ket unkgene6 un4kne un4kno un4knu unko4p un4k3ro un4k3ru unk3s2 unk4tit unk4top unk4t5ri unk4tro un4kum un4kut un4küb unloe4 unlö2 1unm unmen4s unmut4 un4n3ad unne2 unnel3 unn6en5e unn3s un1o u2no2b uno2r 1unr uns2a unsch5el un5schen unsch5wi 3un3si uns2k uns2p un4sr unsta4g unste4c unstu4 1unt 2unt. unt2a unt3ar 5unterd unte4ri unt6ers 2unth 2unti unti4m 2unto unt2ö unt3s2 un1u unuss4 1unv 2unvo unvol4 unvoll5 1unw 2unwä u3ny unz2w 2uo u1o2b u1oc uoe2d u1of u3or. u3or3a u3or3c u3o4ret u3org u3orh u3o4ris u3orm u3ors u3ort uo3ru u3orv u3orw uos2 u3os. uote2 u1ox uö2d u1öf u1ök 1upd upen3 upe2r upe4r3a uper3e uperer4 up2f3a u4pfen upf6erp u2pfi u4pf5lau u2p2fo u1pi up2l 2u3po 2upp up2pf up2pl uppor4 upport5 u1pr up3sl up4t3a2 up2tä up4t5en5e upt5erf upt5erg upt5erk upt5err upt5ers up4teu up4ti4d up4t3il upti4m up4t3in up2t3o up2t3r up4tum up4tunf 2ur. u1ra u4r3abb ura4ben u4r3abl ur3abt ur3ael ur3ae4m ur3aen ura3fr ur3akk u4r3akt u5rallo ur3alt ural4ta ural4te ur3alu ur3amp 3u4ran. u4ra4na uran5at uran4ba uran4bi u4ranf uran6fän ur5angs ur4anh u4rank u4r3ann ur4anr uran5s u4r3apo u2rar ur5a4ren ura4ri u4r3atl u4r3att ur3auf ur3auk ur3aus u2r3a2v ur3äl ur3ä2m ur3än ur3b4a urchi4 ure4be. ure3e ur3eff ur3ehr ur3eig ure5ind u4r3ele ure4ne u4r5ener uren3s4 uren6sem uren6thu u4r5entn uren6zym ur3epo u2r3e2q urer5eig ures5ta ure3un u4rex urfar4m5 urf5eig urf5erg urf5erk ur4f5erl ur4f3li ur4f5rec ur4fro urfs4t urf5str ur4f3uh ur6gense urg5inn ur4g3ri urgros4 urg3s2 u1ri uri4c ur3ide ur3ill ur3imp u4r3ind urin5it ur6ins. ur5in6sek urin6stin u4rint u4r3i4so urken3 urk2l urk2o urk3sp ur4m3ab ur4maeh ur4m5ang urm5art ur4matt ur4mäh ur5me. ur4mec urm5eie urm5einh ur4m5ere ur5mes urms2 ur4mum ur4m3ur ur4nol u1ro uro4fe ur3off u4r3orc u1rö urp2 3ursac ur4san urs5ang ur4s3au4 urs5ein urs5ere urs5erf urs5erk urs5ert ur4sex urs5inf urs5int ur2sk ursor6ten ur4staf urs5tak ur4sum ur4sun ur4tai urt2s urts4c u1ru urue5cken urueck5er5 uruf2 uru3fl ur3uhr ur3umh ur3ums uru3s u1rü urück5er5 u1ry ur2za2 urz3ac ur4z3ec ur4zeg ur4z3ep urzer3 ur4z5ere ur4z5erk ur4z5erl ur4zin ur4z3op ur2zw us3aar usa2b us5achs us3aeh us3aer us3aes usa4gi usa2k usa4la us5alar u5sali us5alta u5salz us3amb us5amma us3amt u4s3ang us4ann us3anz u2sar usa4ro us3ast u2säh u2sär u2s3äs usby2 u2sce us2ch u4schab u6schaer u4schak u4schar u4schas u4schär u4schef usch5eic u6scheind u6schene u6schent u6sch5erz usch5eul us4chi u6schimp u6schlan u6schlem usch5mis u4schmo u4schmö u4schof u4schok u4schor u4schur usde3s4 us4eb use5be u2s3e2c use3en u2s3ei u3seid us5e4kel usen6dac usen6dere usenk4 usen3s usen6sem u4sentl us2er use4rec u4s5er4pe u2se2x us3g u3shid u2sid usi5er. usi5ers. usi4kas usi4kat us3inf us3int us3iso u2sk us5lob us3oc u2s3oh u2s3op us3orb us3orc us3ost us3ou us4pate us4patz u3s4pec u3spek us3pic u3s4piz us6port. us6ports u4sprae u4s5prä us4s3ad us4s3eb us4s3ec usse4g uss5einf uss5eins us4seka usse4kr us4sem usse4n ussen5s us4s3ep us5s6er. usser6fa us6s5erla uss5er6le uss5erz us4sesp us4sez us4sph us4stor us4s3um us4s3ur u4st. u3stad ust5arm usta4v ust5ave u6stele ustell5a ust6er. uster6fü uster6tr us4t5ess u3stir u3s4tol u5strah u5streck u5s4tuec u2sue4 u2s3uf u4s3umb u4s3umd u4sumg u4sumz u2sü u2sya u4s3zi 2uß u2ß3eb uße2n ußen3e u2ß1u 2ut u3ta. ut5ablo ut3adl ut3aeh ut3aer u5tafe ut3aff u2tah ut3akt ut3alg ut3alk ut3al4l u4t3alt ut3a2m ut3ana ut3and ut3ar uta2s ut3asc ut3ass ut3auf u4taut ut3äh u2t3är ut5chi u3tea ut3ede ute3e uteg2 u3teh ut3ei. ut3eie u4t3eig ut3eiw u3tel ute4la uten4ac uten3e uten3s u4t5entf uter3a4 utergene6 u4t5erhö uteri4e5 ute6ring ut5erwa ut5erwä u2tex utfi2 ut3hel u2t3hi u2t3ho u2t3hu u2t3i2d u4t5igel 3u4tili ut3ind u4t3inf u2t3ir u4tiso uti4vi uto3c ut3oef uto5erf uto5ers uto5erz u3tof u3tom u4tops u4tord uto6rena uto6renb uto6renc uto6rend uto6rene uto6renf uto6reng uto6renh uto6reni uto6renl uto6renm uto6renr uto6renv uto6renw uto6renz uto3ru uto3s2 u2töl ut3rea u4t3res u4t3ril u4t3rou u4tröt ut3rü ut4sas utsau4 ut4schl ut4scho ut4schö ut3ser ut4sin u4tsk ut3sky ut3sp uts4pe uts4tu utt2l utto3e utt3s2 utu3en u2tum utu2n u4t3une utu4re utu3ro utu3ru ut2za ut4zed utz5ehr utz5eig ut4z5ene utzer6tra ut4z3e4t ut4z3in ut4zis ut2zo ut2zö ut2zw 2u1u2 uum1 uume2 uumen5e uungsex5 u1ü u2ve. uve3na uve3ra uve3rä uvoran4 uv2r 2u1x ux2a ux1o ux2or ux3t2 u1ya 2uz uz3al uz3ar uz3eck u4z3ela uze2n u4z3ene u6z5er6hoe u4z5er4hö uzer4l u4z5erla u2z3i2k u4z3inf uzi3o uzo2f uz3or uz3ot uzu4pf uzz2 uz3zl ü1a 1ü2b 2ü3ba üb1ä 2übc 2übd übe2 übe3le ü3bem übe5n4au über3 ü3bes ü3bi üb3l üb5len üb5les üb1r üb4ste 2üc ü3che ü3chi üch4s3c ücke4n ü5cken. ücken5s ück5erb ück5erh ück5er6ke ück5erla ü4ck5ers ück5erw ü4ck5erz ü4ckin ück4sor ü4ckum ü2d1a2 ü2dä üde2c üde2l2 ü3den. üden4g ü3dens üdi2r üdi2t ü2d1o üdost3 ü2d1ö üdpol4n ü2d3r üd3s2 üd3t2 üdu2 üd3ug üe2 üeb3l ü1ei 2üf ü2f1a ü2f1ä ü2f3ei ü4f3ent ü6fer6geb üfe2t üf3eti ü2f1i üf1l üf1s2 üf4tan üf2th üf2t3o üf4t3ri üft3s2 ü2fum üge4l3a4 üge4l3ä üge4lec üge6lei6s üge4len üge4ler üge4lo ügen3s4 ü2g1l ü2gn ügs2 ügs3t üh1a2 ühan3 ühan5d ü1he ü2h3ei ühe2m2 üh3emb üh3emi ü4h3eng ü4h3ent ü4h3erf ü4h3er4k ü4h3er4z ü2hex üh1i2 ühla2 üh3lam ühl3au üh3lä üh4l3ei üh4lel üh4l5ene üh2lo üh2l3ö ühl4s3i üh3ne üh1o2 üh3rad üh3reh ühr5ei. ühren5e ühren5s4 üh3ro üh1s ühs2p üh5stei üh3t2a ü1hu üh3w ü1k ül1a ü2l3ef ül3eim ül3ein üler3a4 üler5ei ülerin6t ül3io ül2la2 üll3ad üll3au üll3e4c ül4l3ei ül4lent üller4s üller6zeu ül4lid üll3in ül2l3o ül2lö ülls2 üll3sk ü2l1o ü1lu ü2m1a ü4ment ü2m3e2p üme4r3a ümerin6t ümi2 ü2m3id ü2m3in ümm2s ü2m1u 2ün ün1a üna2c ün2da ün4d3ei ündergene6 ün2dr ünd3s ün2dü ünen3 ü4n3erd ün2f ünf3ac ünf3ak ünf3ei ünf3le ünf3li ün2gl ün3gla ünkoh4 ünkohl5 ü2n1o ün3sta ünste4r ün3str ü1nu ün2za ün4zei ünze4n ün2z3i ünzu2 ün4z3un ün2zw ü1o 2üp üpf3l ü1pi üp2p3a üp2p3l ür1a ü2r3ei ü2r3e2l ü4r3en4t3 ür4f3er4 ür2f3r ür4g5en4g ürge4ra ü1ri ürk2l ü1ro3 üroe4 ürom4 üror4 ürp2 ür2rh ürr2s ür2st ürte4l3 ü1ru ür4z3in ür2zo ür2zö ürzt4 ür2zw üsch5af ü3schi ü4schl üse3e üsen3e üsen3s üse3r4 üse3s ü1s2p üs2s3a üs2s3c üsse6l5ers üsse4l5i üs2s3o üs2st üst3a üs4tei üste4n 2üß ü2t3al ü2t3au üte2n üten3s4 üter3a üte6r5eis üte4rer üterich6 ü2t1h ü2t1r üt2sa üt2se üt2st üt3te ütte4n3 üt2tr üt2za üt2zw 1v v1ab v2ab2r 2vabs va1c va3e2m va3fl v2ak va3lam val4en val5ero val5erp val4lan val4lo vall3s4 val4sa val4sp val4su 2valu 2v3amt 2vanb v3ansa 4v3ansc 2v3arb 2v3arm 2v3art va1s va4s3ek 2v3ass vas2t va4s3ta va2t3a2 va4tag va2tä va4t3ei vatem4 va4t5emp va4ten4g va4t5enz va4tess va2t3h va4t3id va4t3in vati6ons. 4v3atmo va4t3op va4t5ora va4t5ord va4torg va2t3r vat3s vat5sa vats4p vats4t va2t3u vat3z 2v1au 2vb2 2v1c 2vd2 vdi2e ve2a ve3ak 2ve3al ve3an ve3ar veb2 ve1c ve1e2 ve4ff veg2 2v3eig 2v3ein veit2 veits3 ve3l4ar ve4l3au velo5p velo3s ve2lu vembe4 2v3emp vendi4 4v3endu ve5ne. vene4n 4v5energ ve4n3in venk2 ven3st ven4t5a4g 4v3entd vent4st venu2 venzer5 ven6z5ere ve3of ve1p ve2r1 ve3ra. ve5rada ve5rade ve5randa ve5rane vera4s ver6b5art ver5blei ver5b4li ver3d4 vere2 ve3rec ve5reif ve5reig vere6in verein6s5tr ve3rem ve3res ve4rf4 ver5fl ve4r3g2 ve3rit verk2 vermen6s vern4a ver3n4e veron4 ver4sep ver5sta ver3sw vert6er verue4 ve3rus verü4 verz2 ve2sp ves3ti vesti4e vete3r 2v3e2tu ve1u 2v1f vf4gh 2vg2 2v1h vi3ana vi3ar via3t2 vi2c vid3s4t vie4h3a vie4l3a4 viele4 vie6l5er6z vi4ene vier5ad vie4rec vie4r5ei vie5r4er viers4 vie2w3 vig2 2vii vi2l3a vi2lä vi4l3e4h vi4lei viler4 vi4l5ers vi4l3in vil4le. vi2l3o vi2ma2 vi2n3a ving3 vings4 2v3inv vin4zin vi3s2a3 vise2 vi3si vis4o vi5sor vis2u vit2 vi4tam vi3z viz4e vize3i vize3s 2v1k2 v1l2 v3le 2vlic v2lie 2v1m vmwa2 2v1n v1ob vo2be vob4l voge2 vogel3 vo2gu vol4l3a vol4lei vollen4 vol6l5end voller4 vol6lerf vol6lert vol4l3i von1 von3s4 vo2pe vor1 voran6schl voran6ze vor5de vo2re2 vor3es vo4rie vo4rim vo4rin vo2ro2 vo2rö vors2 vorsch4 vor5ta voy1 vö2c 2v1p2 v3ps 2vq 2v1ra v1rä v2ree v3ris 2vs vsau2 vs2c vson2 v1s2p v3sta v3s4tel v3steu v3s2tr vsu1 v1s2z 2vt2 vue1 vu3en. 2vumf 2vumg 2vumk 2vv 2vw 2vz 1w 3waa wab4bl waben3 wa3cho 3wacht wach6tra wach6trä wa3chu waden3 3waeld 4waeng 3waes w3aeu waffe4 waffel5 waffen5 wa3ge 3wage4n3 wa2g3n 3wah wahlen4 wah6lens wah6l5ent wah4ler wah4l3i wahl3s4 wai2b wak3l wa3la5c 3wald wal4d3a4 wal4del wal6denk wal4din wal4d3r wa4les walf2 wa3li wal2m3 wa2lo wal4t3a wal6t5er5e wal6t5erf wal6terl wal4t3h wal4t5in wal4t3o wal4tri walt6sta wal4tur 3walz walze4 walzen5 wal4zw wam4mei wa3na wa4nau wan4dab wan4dan wan4d5ar wan4d5as wan4d5eb wan4dec wandels6 5wander wan4d5in wan4dob wan4dr wan4due wan5ge wang6er wangs3 3wann wan4z3a wanze4 wan6z5en6d wan4z5er wa2p 3ware wa4ref wa4reg ware3i warein4 war4ma war4m3i 3warn war4th wart4st war3u war4za war6zent 3was wa3s2a wa4scha wa5sche. wasch5ei wa5schen wa4sch5l wa5schun wa4schw wa3se wa3s2h wasser5e wa3su 3watt watte5s 3wäh wäh3ri 3wäld wände5s 2wäng wärme5i 3wäs 2w1äu 2wb2 wbu2 2w1c 2wd we2a we2b3a webeat5 webe3e we2b3i we2b3l we2bo we2b3r web3sp we3cha we5cke. we5cken. we5ckes wee2 weed3 2wef we2fl 3weg we2g3a we4g3ei we4g5en4g we4g5erk weg5ersc we4gim we4gin we2g3l we2g3n we2g3o2 we2g3r weg5s4a wegs4t 3weh weh4rei weh4r5er4 wehr3o4 wei4ble weib4s wei3de wei3dr 2weie 2weif weifel6d weifs4 wei4g3a wei4gra weigs4 2weik 3weil wei4na wein5erz weinsau6 wei4san wei4sas weiser6g weiser6h weisex5 3weish weis6sel weis6spi wei5s4tr wei6takt. wei4tal wei4t5ra weit3s weizen5 wele4n3 wel4kl welle4 wel6schl wel6schr wel4t3a4 welte4 wel4teb wel4tel wel6t5en6de wel4ter welt5ere welt5ern welt5ers welt5erw welt5erz wel6t5esc wel4th wel4t3i wel4to wel4t3r wel4t3u wena2 wendegene6 wendes4 wen4kau wen4k5la wen4k5ri we2no wen3s2 we4r3a2 werbe5i werb4s3 3werbu 2werc werde5i 5werdens 3werdu werer4 werga4 wer4g5am wer4gan wergel6 wer6g5els5 wer6g5en6t wer4g3l wer4gn wer4g3o wer4g3r werg3s4 w4e3ri werin4d we4ri4o 3werk. wer4k3a wer4kä 3werke wer4k3i wer4k3l wer4k3o wer4k5re 3werks wer4ku wer4kü wer3o wer3s4h wer6star wer4ta wert5ab wert5ak wert5an wer4t5än wer6t5eig wer6ter6g wer6t5erm wer6t5ero wer6t5erö wer4t3h wer4t5in wer4t3o4 wer4tre wer4t5ri wert5sk werts4t wer4t5um wer4t5ur 3wese we2sp we4st wes4t3a weste4 west5ec west5ei wes4tel wes6temp wes6t5end. west5ende wes6teng wes6t5erwei wes4tex wes4th wes4ti west3o4 wes4tor west3r wes4tu 2wets 3wett wet4ta wett3r wett3s we1u 2w1ey 2w1f 2wg whi2 w3ho wicht6se wi3cka 3wid 2wieb wiede4 wie5la wie5n4e wi2gl wigs4c 3wild wil4da4 wil4del wil4dr wim4ma wim6m5ent wim4mu wi3na win4d3a win4d5e4c win4d5ei win6d5erz 3win4dr wind5ri win4g3l win4g3r wings4 wing5se win4kl win6n5er6sc win6nerw win4no winn5str wi2r 3wirk wir6kene 2wirn 3wirt wi6schef wi4sch5l wi4scho wi4schr wis4e wi5sen wiss4z wis4t3r wi3th 3witzi 3witzl w2j 2w1k 2w1l 2w1m 2wn wn3sh wn3st 3wo1c wo4cha woche4 3woh woh4lei woh4l5e4t woh4na woh3r 3wolf wol4fr wol4l3a wol4lei wolls4 wor3a wo2r3i work3a wort3a wort3ä 3worte wort5ei wor6t5erf wor6t5erh wort3h wor4to wor4t3r 3wort3s4 wor3u wor3ü wöl4fa wöl4fo 4wölft wör2g 2w1p 2wq 2w1ro 2w1s wse2 wser3 w3s2h w2ska ws2ki ws2ky ws2t w2s1u 2wt2 wti2 3wuc wuch4sa wuch4sc wuch4sp 3wuec wue3le 3wuerf 3wuerg wuer4s 5wuerst 2w1u2f wun4d3a wun4dä wun4di wund3r 2wung wun4g3r wung5sc wun2s wunsch5ei wunsch5l wur4f3a wur4f5ei wur4fel wur4fer wur4f3l wur4f3o 3wurm wur4m3a wur4mei wur4mer wurmes4 wur6m5ess wur4m3i wur2s 3wurst wurst5a wus2 wus3te wu2t3 wutz2 3wüc 3wüh 3würf 3würg 3würst 2ww 2wz x1a 1xa. 2xab xa2be xa2br xaby2 1x2ac 1x2ad 1x2a1e2 xa3fl 1x2ag2 2xal1 xal2l3 xa2m xa3mer x2an. 2xa2na x3anb 3x2ane 2xans xant4h x4anti xa2r 1x2as xa2z 2xb2 xcal2 x1ce x1ch x1cl 2xd xda2 xdi2e 1xe 2x1ef 2x3e2g 2x1ei 2xek xe2l 3xel. xel3a xe3lei 2xemp x2en xenk2 xen3s2 2x1e2p 2x3erl xer4la xer3s2 2x1eu 2x1ex 2x1f2 x3fi 2xg2 2x1h x2i xib2 xi1c xich4 xi3dan xide2 xi4d3ei xi4d3em xidi2 x3i2do 3xi2e 3xik2 xi4lar xi4l3au xi4l3er xi2lo xi2l3u 1xim x3imp xin3s2 1xip xi2s3a 3xisc xi2s3e xi4s3or xiss2 xi2su x3i2tu 2x1k2 xkal2 2x2l2 x3la x3lä x3le x3lo 2x1m 2x1n x1od xo2du 2xo1e2 x1o2l xonen4 xo4n5end x1o2r xos2 x2ot 2x1ö2 2x1p2 x3par x3pau x3plor xpor4ta xpor6t5er6 xpor4t5r x3pos x3pu 2x1r 2x1s2 x3sh xst2 2xt xt1a x2ta2b x2tak xt4ane x2tau xt1ä x2tän x2täs xtblo4 xtblock5 x2t3e2b x2t3e2d x4t3eig xt3ein x2t3el x4t3ent x4t3er4f x4t3er4g x4t3er4l xter4s x4t5ersc x4t5erse x4t3erw x2t3e2v x2t3ex xtfi4l xt1h x2thi x2t3id xti4la xti4lei xti4lin xt5il4lu x2t3im xt3ind xt3inf xt3inh xt3ins xt1o2 x2tob x2tor xtra3b4 xtra3c xtra3l xt5rand x4t3rau xt3rec x4t3rep x4t3res xt1s2 xtu3e x2t3um x2t3un x2tup xtu3ra 1xu xu1a xu1e x1um xu2n 2xunt xu2s1 xusa2 xus3t 2x2v x3ve xvil2 x3vo 2xw 1xy. 1yac y2ach yach4t5r yacht5s4 ya1h ya1i2 1yak y3al. ya3la y3alb yan2g y3ank y3anz ya2ro y1au y1ät yb2r y1c ycer4 y4chia ych3n yd3al ydri2 ydrid3 ydro3 y1e y2ec ye2d y2ef y2el ye2ne yen2n yer3a2 y2ere y2eri yer2n3 y2es. yes2p ye2th y1f2 ygene4r yg2l ygro3s y1h yhr2 2y1i2 y1k2 yke3n yk3s yk3t yl3ac yl3aet y3lak y2l3a2m yla2n ylan3e y5lant. y5l4ante y5lanti y3lat yl3ät yl3c y2le. y2l3es y2l3e2t ylinde4 yli4ne. ylk2 yloid3 yloni5e ylon3s yl3ora yl1s2 yltri3 2ym ym4ae ym4an ym4är ym4el ym1p2 ym4pha ym4phor ympi3e 2yn y1na ynae4r y2n3an ynä2r yndro6ma y3ne. yne4c yn4eu ynk2 yn1o yno2d yno2t yno2v yn3t2 ynta2 y1nu y2od yof2 yoff3 1yog yog4a3 yonal5s4 y3ont y3o2pe yo3ru yo1s y3os. yos2t y3ot. y1ou yout3a 2y1p yp3a2b ypa2n y2pec ype4r yper3o4 y2p3i2d ypi2e y2p3in y2p3lo ypo3 ypot2 y2ps yp3th y2p3um y1r yrae3i yrä3i yri5er. yri5ers yro1 yro4s5te yrr2 2ys ysau2 ys2c yse1 ysein4 yse2n3 yse3s ys3l y3s2n ys2po yst4e ys5tem yste4n ys4the ysti5er ys4tol ysto4le y3s4tra ys4tri y3s2ty ysu2 y2s3ur y1s2z yte2n3 y2tes yt2h yt4he ythi3e y3to yto3s2 y1u yu2r yure3 yvet2 yvon4 ywurs4 y1y yze5r4i 1z 2z1ab 2zacc 2z3ach za3cha za3chä 2z1a2d za2e z3ae2c 3z2aeh 2z3aem 4z3aend 4z5aengs z3aerm za3ess 2z3aet 4z3aeus 4z3aeuß za3f4a 2z3aff za2ga za3gr 3z2ah zah4n5er4 za3hol z2ai za3im z1ak 2z3akk za3kl 2z3alb 2z3ald zal4e 2z3all 2z3alp 2z3alt 2z1am za2me 2z3a2na3 2zanb zan3d2 2zanf 4z3anga z5angeb z5angel z3angl 4z3angs 2zanh zan4ka zan4kl 2zanl 2z3anm 2zanp 2zanr 2z3ans z4ans. zanti3 2zanw za1o2 zapf3l 2z3a2po 2z1a2q 3zar. 2z3arb 2zarc zare3s 2z3arg 2z3arm 4z3arti zar4t3r zarts4 2z3arz z1as zas2b zas2p z1at 3z4aub 2z3au2f3 2z3aug 2z3auk z3aur z3ausb z3ausf 4z3ausg z3ausl 4z3auss z3ausw 2z3aut 2z1ä2c zäh4lin 4zähnl zäh3r 2z1äm z3änd z3ängs z1äp z3ärg 2z3ärm 2z1ät 2zäug 2z3äus 2zäuß 2zäx 2zb2 zba4c zbach3 z3be zber4e z3bo zbue3b zbü3b zby2 2z1c 2zd2 zdan2 zdä1 zdi2e zdi5str z3ds zdue3b zdü3b 4z3e4ben zebra3 zechen5 4z3echo zech3s zed2 ze4dik ze4dit ze1e2 2z3eff zeg2 ze4gal zehe2 zehen3 zeh2l zehn3a zeh4n5en zehn3s4 zei5cho zei3f2 zeik2 zeile4 zeilen5 2z3ein ze3in. z4ein4a zein4de zei4n3e zeinen4 z4eino ze5in4se zeis2 zei3sk zei3sp zei3st zei4t3a zei4tä zeite4 zei4teb zei4tei zei4tel zei4t5er5 zei4t3o zei4tr zeit5re zeit5ri ze2la zel5abr zel3a4d zel3ae ze3lag zel3am zela4n zel5an5e zel5ang zel3au ze2l3ä zel3d4 ze4led zelei6er ze4l5eig ze5leis z3e4lek 4zelekt ze4l3en ze4l3er zeler5e ze4les zel3ex zel3id ze4l5inf zel5int 4z3e4lit zel4lab zel4l5ac zellar6t zel6lein zeller6z zell3s4 ze2lo zel3ob zelp2 zels4t zel5ste zel3sz zel4tau zel4t5in zelu2 zembe4 zem4e ze4mis 2z3emp zena4g ze5natt ze4n3au ze2nä zende4c zende4k zen5ebe zen5en5e zen5erf zen5erke zen5ern ze4nerw zen5ess zen3f 4z5en4ge. zenge6ne6 4zengp ze4nid zen5inn zenk2 zen3n ze2n3o zensch4 zen4sem zen4ser zens4po 4z5entna 4z5en4tro zent3s zen4z5ar zen6zert zen6zerw zen4zin zeo2r ze4pen ze3p2f zeppe3 zer3ad zer3a4g zer3an ze4r3at 4z3erbi zer3ed 6z5ereign ze4rein ze4remi zer5end zer5erw 4z5erfül 4z5ergae 4z3ergä zer4gon 4z3er4gu ze4r3i4d zerin4d zerin4h zerin6st zerin6te 5zerl. zer6lang zer6laub zer4le. 4z5erleb zer4len zerlo4 zer6maec 4z5er4mäc 5zerme 4z5ermit zer4nan zer4n5e4b zer6nerb zer5obe ze3rop ze3ros ze3rös 2z3erq zers2 z5ersae 4z5ersat 4z3ersä 6z5er6strec zer4t5a4g zer6t5akte zer4tar zer6t5emp zerten4 zerter5 zer6t5ere zer6terl zer4t5in zer4ton zer6t5rau zert3s4 zes2a zes3au ze3sch zes3er zes4ph zes4sa4 zess5ag zess5an zes4seb zessen4 zes6s5end zes4ser4 zess5erf zess5erz zes6s5ort. zes6s5or6te. zes6s5or6ten zes6s5orts zes4sp zes4sum zes4s5ur4 ze5stau zes4th zes4tie ze5stra 4z3e4tap 4zetat ze3te 2z3e2th 4zetts zeug3a zeu4gei zeu4gel zeu4g5e4m zeuge4n zeu4g3r 2z3eul ze3um ze3ur 2z1e2x1 2z1f2 2zg2 zge3n4a zger4a zge6r5in6nu zger4s5e 2z1h2 zhau4t3 zi5alei zi5aleng zi5alim zi5a4lin zi3ang zi2ar zib2 zi3cho zich6t5er6 zi4d3ei 3zie zie4hei zie4l3a ziele4 zie4l5eb zie4lei zie4l5er zie4let zie4l3i zi3ell zie2n zien3s zie4r5ei zi3erh zi5ertu zi3es. zi3ess zi3esu zi3esz zif4fr zi3fl zi4gec 4z3i4gel zig3sp zi4kon zil4e zi4mit 2z3imp zim2t3 2zimu zi3nal 4z3inde z4ine zi4n3et zi4n3in 4z3i4n3it zin4k3l zinks4 zin4na 4z3in4sa zin5sas 4z5insel zin4s5er zin4sk 4zinsuf zi2o zio3d zi3on. zi3ons zip4a zirk2 zirks3 zi3s2z 3zit zi4t3an zite2 zithe4 zi2t3o2 2zj 2z1k2 z3ko zko3ef z3kr zkue3b zkü3b z3ky 2z1l zland5er zlei5ti zle3s z3lo 2z1m2 zmau4s 2z1n2 z3ne znebe4 znei3 zn4eu 2z3o4as 2z1ob 2z3oe2d zoe2f 3z4oeg 2z3oek 4zoel. 4zoels z1of zo2gl 2z1oh zo4lig zol4l3a4 zol4l5ei zol6l5en6t5 zoller4 zol6lerf zol6l5erk zol6l5erl zol6lert zol4lin zol4lo zolls4 zoll5ste 3zon zon3s2 zon4t5er 3zo2o zoo3s2 2z3o2pe 2zopt 2z3ora zo2ri z4orn zor4n3a zor4ner 2z3ort 2z3osz zo2t3a 2z1ou zo2w zo2ze 2z1ö2d 2z1ö2f 3zög 2z1ök z1öl 2zöl. 2zöle z2öli z2öll 2zöls 2z1p2 2zq 2z1r2 z3ra z3ru 2z1s2 zsau4 zsch2 zse3r4u z3sh zsi1 z3sl zst2 zsu1 2zt zt3abr zta2n z4t3an3e z4t5anze z2t3ar zte3e2 zt3ehe zt5eins z4t3ent z4t3erz z3t4es zte3s4k zte5str zt3hel z2t3hi z2t3ho z2thu zt3ind zt3inf zt3ins zt4ram zt3rec zt3s2 z4t3urs ztz2 zu1 zub2 zucht5o zucht5r zuchts4 zud2 zudi4e 2zueb zu3ebb zu3ebn zue2k zu2el zu2en zu3ent zu4erc zu4ern zue4r3o4 zu4ers. zue2t zuf2 zu4g5ans zu4g3ar zu4gat zug5eis zu4g5ent zugg2 zug5inn zu4g3la zu4glä zu4glö zug2r zug5rau zug4san zug5sti 2z3uhr zui2 zu3le 2z3ult zu3lu 2z3um. 2z3umb zumen4s 2zumf 2zumg 2z3umh 2zumk 2zuml zu3mo 2zumr 2z3ums zu3m2u 2z3umw 4z3unab zu3n2e 4z3unem 4z3unfa 4zunfä zunge4n5 4zunget 4z3ungl zungs3 4z3u4nio 2zunr 2z3uns 2zunt zuo2 zup4fi zu3r4a 2z3urk 2z3url 2z3urn 2z3urs 2z3urt zu3s2 zu5sch4 zus4e zus4p zut4a zu3te zut4r zuve4 zuz2 2züb zür3c 2zv 4zwaer 4zwaes 2zwaf 2zwag 2zwah 2zwal 4zwand z4wang 2z3wap 2zwa2s zwasse4 2zwäc 2zwär 2zwäs 2zweb z2wec 4z3wech 2zwed 2zweg zweg3s 2zweh 5z4weig 4zweil 4zwein zwei5sc 2zwel 2zwen z4werg 4zwerk 4zwert 2zwes z2wic 2zwid zwi2e 4z5wied 4zwild 5z4wing 4z5wint 4zwirr 4zwirt z4wisc 4zwiss z4wist 2zwur zwur4m3 2zwü zy3an. zy2le zy2m3i 2zz zz2a zza3t zz3en4s z2z3id z2z3i2k zzi2n zz3ini zzi3s2 zz2o zzol2 z2z3or zz2ö zzug4s zz2w",
["lefthyphenmin"]=1,
- ["length"]=181826,
- ["n"]=26377,
+ ["length"]=258336,
+ ["n"]=35056,
["righthyphenmax"]=1,
},
["version"]="1.001",
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-deo.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-deo.lua
index 1c194407bc2..aa3cfcd43ac 100644
--- a/Master/texmf-dist/tex/context/patterns/mkiv/lang-deo.lua
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-deo.lua
@@ -10,10 +10,10 @@ return {
},
["patterns"]={
["characters"]="abcdefghijklmnopqrstuvwxyzßàáâäçèéêëíïñóôöü",
- ["data"]=".ab1a .ab3l .abo2 .ab3ol .ab1or .ab3s2 .ab3u .ade3n .aft2 .ag2a .ago1 .ag4r .ag2u .ai2s .akt2a .al2e .ale3u2 .al3lei .al3len .al3lo3 .al3se .al2tei .al2tel .al4terp .alter4s3 .al2tra .al2tu .ampe4 .amt2s1 .ana1c .an4a3t .an3d2 .anden4k .and4ri .an1e .ang2 .an3gli .an3go .ang4s4 .angst3 .ani2s .an3k4 .an3s2 .an4si. .an2tar .an3z4 .ap3p4le. .ari1 .ar3k2a .ar2m3ac .ar4mun .ar2sc .ar4t3ei .arter2 .ar4t3erh .ar2t1r .arz2 .as2b .as2ko .as4sest .as4t .as2zen .ata1 .at2h .au3d .au4f3 .au6fac .aufs4 .au2s1 .aussen6du .au4s3tes .auß2 .ax2 .är4schl .ät2h .ät2s .äu3 .bahn3 .baus4 .be3erb .beige2 .bei4ge. .beige4s .bel2a .be3r2a .ber2e .ber2g3a .berga4s .ber4g3e4b .ber4gin .ber2g3r .ber4tr .be4ster .bi4os .bi2t .bit1a .boge2 .bo4s3k .brut3s .bu4cher .bu2ser .bus3se .bussy4 .bü3b .bübe3 .ce2ra .ch2 .champi4o .char4mes .chi3er .ch6lor .dab4 .da4ch3en .da2r1 .dar3in .dar2m1 .da2te. .da2tes .de2al .de1i .dein2 .de3lo .de3na .den2ka .den2kl .den2ko .de1o2 .de3r2en .derma3 .dermas4 .des4pe .des3s .diä2r .di3el .dien2 .diensta6d .do3b .do4mo .do3pe .dor2f1 .do2tr .dys1 .ebe2r1 .eg2o .eh2e .ehe1i .ehe5n .ei3e4 .ei3f2e .ei4fr .ei3k .ei4na .ein3d .ei2ne2 .ein3eb .ei3n4erl .eins4 .ein3sp .eise4 .ei2sp .eis3s2 .ei4s3t .ei2tr .eke2 .ek3li .el2bi .el2bl .elb3s .el2fei .el2fl .em3m2 .en1 .en4da .en2d3er2 .en2d3r .en4dü .en3ga .en2gl .enk2 .enn2 .enns3 .en4ta .en4t3ei .en5thalp .en4t3io .en2t3r .en3trop .ents2 .epi1 .epi3c .ep3p .er2bei .er6brecht .er2bu .er2dan .erden4k .er2d3er .er1e .ere3c .er2em .erf4 .er1i .ers4 .er4stein .erster4 .er4sterb .er6stritt. .er8stritten. .er2z3el .er2zen2 .es3p .es2st .es4t .esta2 .est4e .est3r .et2s .eu3 .eug4 .eur4 .ever3 .ext4 .fäs3se .fe3la3 .feri3 .fer2no .fi3d4 .fi2le. .fi2len .fi2s .flö4s5se. .flö6s5sen. .flö4sses .flu2g1 .fs2 .fu2sc .ga4me. .gan2ga .gas1 .ga4s3e .ga4sp .ga4sten .ga4su .ga2t .gd2 .gebe2a .geb2l .gel2b3r .gel2d1 .ge3lu .ge5nar .gen4aug .ge3n4e .ge3n2o .gente4 .ge3r2a .ger2e .ge3ro .ge3s4 .glan2 .glanz3 .gla2s3t .grif4fes .gs4t .gus2 .hal3le .halt4e .han2f .hau2t1 .he2 .he4bei .he3le .he4r3an .he3rat .her4b3ra .he3rer .he3ri .he4r3inn .hin3u .ho4c .hof1 .ho4fen .ho4met .hou2 .höch2 .ia2 .il3 .im2a .ima2ge .imm2 .im5mu .in1 .ind2 .in3gl .ink2 .in3n2e .in3sk .in3t2 .inu1 .io4d .ioni1 .ire3 .is2a .istri3 .it2h .iv2 .joni1 .ka2b3l .ka2i .ka5ka .kal2a .ka3le .ka3t2a .kat3i .ka4ti4o .ken4num .ker3s .ki2e .ko3b .kopf1 .kor2da .kraf2 .ks2 .kus2 .la3be .lan4de4mi .lat3s .le4ar .le2gas .leh4me .le3n2i .lich6ter6sc .li2f .li2ve. .lo2g3in .lo2sc .lo4sk .los3s4 .lo2tr .lo3ver .lö4ss .lös3se .lus4 .lu2ste .luster4 .lu2str .lut2h .ly2s1 .ma3d .mal4e .mani2e .ma2str .mat4c .matu3 .md2 .mel2a .me3ne .me3no .men4schl .men4schw .ment2 .mes4sp .mi2f .mik4 .mil2z1 .mi2t1 .mm2 .na3no .na3t .näs5c .nebe4n .ner2f .ne1ro .nich2 .nicht3e .ni2e .ni3k4l .no2c .no2s .nul2 .nus2 .ob1a .obe2 .ober3ei .ob3i2t .och3 .oe2 .of2e .ohr5s .oper4 .op3fe .or2a .ord4e .or3g .or3k2 .ort2 .orts3e .os3s .os4t .ost1a4 .oste2 .ost3end .osten4de .oste4re .ost5erwe .ost3i .ost3r .ot1a .ou2t .ozo4 .öl3l .pab4 .par2kl .part2h .pe2c .pe3le .pe3na .pe4ste .pf2 .pf4l .pf4r .ph2 .ph4t .poka2 .po4stei4 .po6steig .po2str .ps2 .rabe4 .ra3ch2e .ra3e2 .ra5me .ra4sp .ra4s3s .rau2m .rau4schl .re3ale .rebs2 .re3cha .re3insz .reis4e3i .rei4str .re3ke .re2stu .ri2as .richt4e .ro4a .ro3be .ro2e .ro2ha .rom4a .ro4t3r .ro3tu .rö2sc .rö4ss .rös3se .ruf3s .ruh2r1 .runder4 .ru3s4ses .rü3b .rücker4 .rü4ss .sa3br .sali1 .sali3e .sami1 .sa3sse .sas4sen. .sau1 .säs4 .sch4 .schaf6t7end .scho5s6se. .scho7s6ses. .se2ei .seein2 .se2ha .sein2 .sen3de .sen4f3 .sen3s .se3re .seri3e .se1ro .ser2u .se2t1 .sha4 .si4en .si1er .si3gn .sini3 .si2te .ski1e .sour2 .spani5er. .spä5s4 .spiege6lei .st2 .st4a .stau8becken. .st4e .ste2i .steiner6k .sto4re .st4r .stras4 .st4u .sui4te. .sy5st .tage4s5 .tal3l .tan2k3a .tank3l .ta3ra .tar3t2 .ta2t1h .ta2to .ta4tor .ta2t1u .te2e .te2f .tehe3 .teiler4s .tei6l5ersc .te3le .te3no .tens4 .te1ra .te4stei .te4stel .test3r .ti2a .ti2e .ti2me .ti4mes .ti3r .ti2s .tischen4 .ti6sch5end .tite4 .tode2 .to2der .to2n .to4nat .to3nes .ton1i .to4nin .tons2 .to4pl .to2pr .to2w .tra4s3 .ts2 .tse3 .ts4u .tu3ra .tu3ri .turm1 .tur2ma .ub2 .ufe2 .ufer3 .ul2b3 .um3 .ume2 .umo2 .un3a4 .un3d .une4 .un3g2 .uni2t .ur3a2d .ural4 .uran4fa .ur1c .ur1e .ur2e3t .ur2inf .urin2s .ur3o4m .ur1o2p .ur3s2 .ut2a .ut3r .ve5n2e .vol2 .vo4r .wah4l .wa2s .weg5s .weine2 .wei2ta .welter4e .wer4ker .wer4kr .wer2tr .wetterer6 .wi4e .wor2 .wort3en4 .wur2f1 .xe3 .ya4l .zel4la4 .zelle4 .zel4lei .zeug2i .zi2e .zie2l3u .zin2ka .zin2s3c .zin2st .zol2 .zuch2 .zug3l .zu2gra .zweigen4 .zwei6g5end a1ab aa1c a1a2ce aa2gr a1akt a2al aa2l1a aale3ne aa3lep a1an a3an. a1a2q 2a2ar aa2r3a aar3b aar3d aa3rea aa2rei aarf4 aar3g2 aar3k4 aart4 1aas aas3t aa2th aa2t3r aat4s3 2a3au a1ä2 2aba 3abad ab1alt a3b2am ab2ant ab1au ab2aut ab1ä ab2är ab2äu 2abbat 2abbin 1abd ab5dec 2abe. 2abec ab1eic abe3id ab1eil ab1ein 2ab2el abe2l1a abela2d abe2le 2aben. 1abent 2aber a2berd ab1er2k ab1er2r ab1er2z 4abes abe2s1e ab3esse ab1eß 2a3bet 2abew 1abf 1abg 3abga 1abh ab5hän 2abi 4abil ab1ins ab1ir ab1it abi4tur 1abk ab1l 1a2bla a3blat 1a2blä a2b3led 3ab3lei a3blem 2ablet ab3li a2blin ab4lit 2ablo 1a2blö a2blu abma3s 1abn 2abo 3a2bo. ab2of 3a2bon 4abot 2abö ab3r a4brä a2bre ab4ros 2ab4rö 1absc 1abse 1ab3sp abs4t2 3absta 1abstu 3abtei 3abtr 2abu abu3g a2bum ab1ur 2abü 1abw 2a3by 3abz 2ac. 2a3ca 1ac1c 2acci a1cem a1cen a1cet a4ch. ach1a a3chari ach3as ach3au 2achb 2a1che a2ch1e2c ach1ei ach2ei. a2chep a2cherf a2ch3erh a2ch3erl a2cherö a2ch3erw 2achf 2a1chi a2chim ach3l 2ach3m ach3n a1cho a3cho. a2cho2r ach3öf 4ach3r a4chs 2achsc achs2el ach3s2i achs2or ach3su a4cht ach2tak ach4terh ach4tersp ach4t3erw ach2t1o acht3rat ach4traum ach6träume. ach8träumen. ach4trit acht4s3al ach2tum a1chu ach1u4f ach3ü 2achv 4ach3w a1ci 2acke. ack3erz ackmu4 ackmus3 ack2sp acksta2 2a1cl a3co acon4n 2acu 2ad. 2ada. 4adab ad2abr ad2ag adai4 ad1an 3adap 4a3d2a2r3 2adas 2adat a2d1au a3dau. 1a2dä1 ad1c 1add 2ade. ade2al a3dec a3dee adefi2 2adeg a3dell 2aden a3den1a ade4nat adeo4 ade1ra a2d1erk 4ades ade3s4p ades2s 2adf 2adh 2adi adi3en adi3er. adie4sc 3adj 2adli 4admu ad2ob ado2n ado4na a2dop 2adp 2adq a2dre 2ad3rec ad3rei ad3run 2ads2 ad3sz ad2t1 adte2 ad4tor ad4tro 1adv 2ady 2a1e1 ae2b a2ec ae2d aed4r ae2i a2ek a2el a3el. a4ela a3els ae2m ae2n1 ae2o3 aeop2 ae2p 3a2er2o a2es aes4a ae4sc ae4ta a2e3u a2ew ae2x a2f 2a3fa a4f1ab a4f1a2n a4fap a4f1au 2a3fä a4f1än 2a3fe a4f1ec a4fentl a4f1ep a4fex a3fé aff4a af2f3l aff4th 2a3fi afi4kanz afi2kat afi2t 2af3l af1la a3f4lu 2a3fo a4f3oc a4ford a4f1ort 2afra af3rau af3rä af3re 2afro af3rö af4rü af3s2a af3sh af2si af2sp afs4t af2t1a af3tat af2tei af2te2l aft2erk af2t1o af2tö aft3r af2tra aft5rei aft4stä af2tur a3fu a4f3ur 2a3fü 2ag. 2aga a3ga. ag1a2b ag1a2d ag1am ag1ar a2g1au ag2del ag2dr ag2du 4age. age2l3ei age2ler 4a3gen. age2neb a2gentu 2ages age4sam age3sc age4s3in age4so ages3p ages4sen age4s3ti 3aggr a2g1id a2gim ag1inn 2a2gl ag4lan ag4las ag3le a4glö 2agm ag2n2 ag4nat a4gnä ag4ne ag5neh ag4nu ago3b ag1op agori2 ag3rat a2g3re a2gri ag3rie ag3rin 2ags ag3s2ah ag4sam ag3schi ag3s2eid ag5s4porta agst2 ags4tan ag2str 2agt ag2th 2agu a2gund 2ah. 2a1ha ah2an ah4at a1hä 2a1he ahe1in a2h1er2h ahe3u a1h2i ahin3 ah2l3a2 ah2l1ä ah2l1ei ah2lel ahle4na ah4l3erd ah4l3erh ahl1o2 ah2lö ahl3sz ahme1i ah3mu ah4n3a ah2nä ah3nee ah2nef ahn3el ah4nerd ahner4e ah2nerl ah4ner4le ahner2n ah4nin ah2no ahn3t 1a2hor ah1os ah3ös ahr1a ah3r2e ahre4s5 ah3ri ahrta2 ahr2ti ahr2tri ahr2tro ahr2tun ah2ta ah2te2l ah2t1ex ah2t3r aht3s4 2a1hu ah3w a1hy 2ai. ai1a2 a1ia. aia4p 2aib ai2bl aid4s aids3t ai1e2 ai3e4n1 aif2 ai3fr ai3g2 aig4r a3ik. a4i3ke ai2lar ail3d4 ai2lei ail3g ai2lo 2ain ain2a a1ind ai3n4e ai4neb ain3s 3airb ai2sa a3isch. ai3schw ai3s2e ais3sen ais5st ai2sti a2it ait4r a3iv. a3ivl a3ivs a2jat ajekt4o a2k 2ak. a3ka 2aka. 2aka3b akab4r a4kad 2akal 2akam 2akan 2akar ak4at akat1a aka2tak 1a4kaz 2a3kä 2akb 2akc 2akd 2a3ke a4kef a4k1em a4keo ak2et a4keu 2a3ki ak1ins 1akku 2ak3l a3k4la ak5lad ak5lan ak4li 3aklö ak4lu ak5lun a3kna ak3no 2a3ko 2a3kr ak3res ak4ri 3akro3 a4k3rü 2aks ak3sh ak2t1a2b ak3tan 2aktb ak2tel ak3ten ak3t2er 2aktg 2aktik 2aktis 2aktm ak2to4b ak2tö ak2t3r ak3t4ri 2aktsi 2aktsp 2aktst 2aktun 2aktw a3ku 2akun a4kup 2akur 2a3kü 1akz 3akze a1la 2ala. 4alabo a2l3abt al1ac al1af 2alai al1akr al1am al1ana 2aland a2l1ang al1anz al1app a3lar. al3arc a3lare al2arm 2al1arr a2lart ala2s a3lat. alat3s alat5t alat3z al1au al3aug a1lä a2l1äm al1än al1är a3läs al1äu 3albat al2bär al2berh al2b3er2w al2b1l al2boh al2bon alb3ru alb5st alb6st. al4dan al2dä al2d3erl al2d3ern alde2s ald3inn ald1r al2drä 2ale 4a3le. ale4ar a2l1e2b al1eck a4l1ef a2l1ei a3l2eic a4lein a2l1el 5a2lema a2l1e2mi al1emp 4a3len. alende2 al3endr al3ends a2leng al2enn al1epo 4a3ler. a2l1erb aler2e a2l1erf a2l1er2h aler2kl a2l3erl al1erm aler4mi a2l1er4r aler3s a2l1ert aler3w 3a2l3erwä 4ales a2l1e4sk a2less a4leth a2l1eu alf4r 1alge. 3algi al2gli al3glo 1algo 3algor 2ali al2imb al1imm ali2nal al1ind alin2ge a2l1in2q al1ins alken1 al2klö al2kne al2kof 1alkoh alk3s2 al2lab al3la3d alla4me al2lan al2l1a2r al4later al2lä al3läu al4lec 3allee alle2gi al4leh al3lend aller2z al5les alle3se al2leu al2lid alli3er. alli5ers. al2lob al2lo2c al2lop al2lo2s al2lö2 all3öse al4lt al2luf allu4s al2lü4s al2map al4m3ast almo4de. 2alo 4alo. a2l1ob 3a2loe a2l1of 4alog alo2ga alo2gr alo3is. al1ont alori2 al1ort 4alos a2l1ö al2ös 3alp. 3alpe. 1alph al2pho al3sak al2schm al4sh al3skl als2p al4ss als4te al2sum al2t1ak alt3alg al2tan al2tat al2tau 1altä al4tb al4td alt3eis alt3elt al2temu alter3f alt3er4pr al2teu al2tid al2tin alt1op al2tö alt3rad al2t3rat al2tre al2t3ri al4t3ro a1lu alu3b4 al2uf alu3g al1u2k a2lum al1umb a2l1ur a3lus 2aly al2zar al2zau al3zen alz2erk al2zw a2m 2am. a3m2a ama2ba ama3d2 ama3g 1amal a4malg 2am4an ama2sta 1a4maz 2a3mä a3me 4ame. 2amel 2am2e4n1 amen4spr amen2t3r a5mer. ame3r2a amera3u a4m1erf 1a4meri ame5r2u 2ames a4mesh 2amet a3mé 2amf a3mi ami2k 2amir 2amit 2amk 2aml 2amm. am2ma2c 2am2mal amma2n am2mar am2mas amma2sc am2maß am2ma2te am2mä ammen4ge. ammes3 am2mid ammi2e am2min am2mit 4amml am4mo2d am2m1ö ammu2 amm3unt am4mus am4mü amni1 a3mo 2ampe. 2ampen amp2f1a2 2am2ple 2ampo am3pr am5pre 2ams 4amsc am2schl 3amse ams1en am3sh 1amt. am2t1a2 am4tau am2t1ä amt3eig am2tel amter4 am2terh am2t3ern am2t1ex am2tis am2tit am2to am4tou am2tö am2t3r am4tre am4ts am2t1u 2am4tv 2a3mu 3a4mul a3mü a3my 2ana. 2anab ana3c an2ad anadi1 an2ag 2a3nak an1alg ana2lin an2a5ma 2anan an4and 2anas a5nat. ana4th a5n4atm a2nato ana2tr a5nats an3aug 1a2n1äs 1anb 2anbas 2anbö 2anbu an3ch 2and. 3an3d2ac and3ei an2deng anden4ga an2d3ent ander2e and3erob an3de2s an2d1ex and2sas and2seh and2so and4spar and4spas and4s3paß and2su 4andu2 an2d1ur 2ane 4ane. an3ec a3nee an2ei. an3eif 3aneig a4neis 3a2n1e4k ane4l an1e2mi a2nemo 4anen 4aner. aner2fa an2erh a2nerke 4anern a4nerz. an2erze an1eth 3anex 1anf 2anf. 2anfab 3anfä an3fe 2anfi anf3le 2anfors 2anfs an3f2u 2anfun 4ang. 1anga 2anga. an2g1ar 2angas 2angd 2ange. 1angeb an2g1ei an3gen an2g3erf an2g3er2h an2g3er2w an2g3erz 2anges. 2angf 2angh 2angie ang1l an2gla ang3n ang5na ang1r ang3ra an3gri 2angs. ang4sto angt2 1an3h 2anhau 2a3ni an2i3d 4anie aniel2l ani3els ani3ers. anig2 ani2ka ani3ke 3a4nim a4nind ani2o an3i4on a4n3iso anis4t 2anj 2ank. an2kag an2k1ak an2kan an2kei 2anken ank3erfa an3kes 2anki an2kid an2klö an2klu ank3no an2k3opf an2kor ank1r ank3ra an2kras ank3rä an2kro 2anks ank3se 2ankt4 3ankü 1anl 2anlad 3anlag anma3s2 2anmo 1anmu 2ann. an3na 1annah an4nar an3ne an4nef an4nei an4nene ann2er 2anns ann4sp 2annt 2ano. 1an1od 2anof 2anog 2a3nol ano2la 1a2nom a3nom. 2anoo an1op a2n1or ano2ri 2a3nos 2a1nö 2anpu 1anr 2anrö an4same an3sar 1an3s2ä an4sb 1ansc an4sf an4sg an3skr 1anspr 1anst ans4te an3s2z 2ant. ant3ar anta4re an3t2ä 1antá 3antei an3tha 1anthr 2antie 3antise anton2 3antr 1antw 2anu anu3r anus3s a1nü 1anw 2anwi an2z1ä 2anzb 2anzd 1anzei anz3elf anze2n 2anzes 2anzg 2anzh anzi2d an2z1i4n 2anzk 2anzm 2anzr 2anzs 2anzt 1anzü 3anzün 2anzv 2anzw an2zwä an2zwi 2anzy 2ao ao3i2 a1op ao2pe aopf4 a1or a1os a3ot. ao3t2s 2a1ö aö4fe 2ap. ap2a apa3b ap4an a2pe. a2pé ap2fa 1apfel 2apfes a3pfl a2pht 2api 2apl ap4la ap3le ap3li ap2n a2pot 1appro 2apr ap4ster ap3t2 ap5tag 2a3pu 2ar. a1ra a3ra. ar2ab 2ar3abb ar3abf ar3abr ar3abt 2arac ara3d2 ar3adr 2arak 2a2r3al a3rale a3ra3li a3ralo a2r1ang a2r1anz 2arap a4r3app 2a2rar ar2asy 4arat a2r1au a1rä ar1äs 1arb 2arb. 2arba ar2bak ar2b1at ar2bau 2arbef ar2b3ein 2arbek 2arben 2arber 4arbi 2ar2bl 2arbo 2arb1r 2arbs2 arb3se arb3sk arb3so 2arb3t2 2arbu 1ar1c 2archl 2ar3chr ar2dau arde4i ar2dop ar2d3r a2rea are3aler a2reb aree2 ar1eff a2reh ar1ehr 2arei a3rei. ar1eid a3reie a3reih areim3 a2rein arein4b arein2s arein2t a2rele 4arem are2mi 4aren. aren4sem a2rentn are3r2a arerau5 arer2e a2rerei a2rerg a2rer3h a2reri a2rerk a2rerl a2rert ar2erw 2ares are3sc ar2et are3u a2rev arf1r arf3ra arf2sp 4arg. ar3gan ar2gl ar4gn 2arg4o ar3g4r 2arh 2ari ar2ia ari3e2n ari3erd ari3erg ar1int a3r4io ar2ir ar4is ari2su a3riu ar2kal ar2k1ar ark3aue arker2 ar2kil 2ark3l ar2kle ar2klo ark4lö ar2kn ar2koa ar2kor ark3s2a ark2se ark3she ark4tre arku2 ar2les ar3mad ar3m2ä ar2m1eg ar2m1ei arm2or ar2mum 4armü 2arn ar2nan arn2el ar3ni a1ro arob2 4aroc ar1o2d ar1of aro2i 2a3rol a2r1op a2ror 1a2rou aro2w 2a2r1ö arö4l 2arp arr1ac ar2r3ad ar2r1as ar4rek arre4n1 2arri ar2r3or arseri2 ar3s2h ar3s2i ars3k ar3sse ar2tau 2artb art2e 2ar3tei artel4li4 ar3tem arter2e 2artex 2arth art2i 2arto art3r ar4tram art4res ar2tri art3ske art2sp 2artuc 2artü 2arty 2aru a2r1uh ar1um a3rumm a2rü 2arv arwa2 2a3r2y 2arza ar2zau ar2zä 2arze 2arzi ar2zö 1arzt arz2t3r 2arzu ar2z3w 2asa a4s3af a3s2al asal2t1 as1am as3art asa2s2 asa3sse as3at asau4f a4s3aug asau2s a2sä as3ät a2sca a4schec a4schef a4scherg as4chi a2schm asch3ru 2ascht a3schu a4schum 2asd 2a3se a4seb a4sec a4s1ef as1eie as1emi a5sen. ase4na ase4n3o asens2 a2sen2se as4eo as2ep as2er ase2re a4s3erke as4es ase4ta a4s1ev a4sex 2asf as3ha as4hf as2hi as3hir as4ie 2asig a2s3i2k 2asim asin2g as1inn 2asis 2asiu as3ka aska2r as3l as1o4f a3sol a3som as1o2p as1or a4soz a2sö a2sp as3pan aspek4to a4spel a4s2ph as3pik as4pin as3pio a4spl 2aspr a5spra a4ss. a4s3sa ass2a3b ass4aus. a4ssb as3sel asse3le asserma4 a4ss2i as3sin a4ssk as3ski a4s4sl a4ssn a4s3so a4ss3p as2spo as2spr a4s4ss a4s4st as5sta as6staf as6stag as3stau as5stei as5sti as5str as5stu a4st. 4asta ast2as a3stä a4stb a4std a4stec as4tee ast2el a4stemp a4s5tep as4t2er a4st3ese as4tex a4sth ast2i3d a4stl a4stm a2stoc ast3orc a4stp a2st3re as3t4ren a4stritt a3stro a4strol ast3roll a4sts a4s3tub a4s5tuf a2stum as4ty 2asu a4suh as2ur asu4s as4ut a2sü aswa2s 1asy 3a4syl 2asys aße2 aß2en3 a2ß1er aß2th 2at at1ab ata2be at2a3f ata3g at2ago ata3la a3tam at3an3k at1apf ata3ra at2ast at1att a2t1au at1än at2c a2teb ateien2 at1eig 3a2teli a3tell 3atemg at2en ate4na atens4 a2tep 4ater ate3r4al at4ere atern2 ate2ru at2eu a2tew a4th. 4atha at3hag at3hal at2heb ath3in. 3athl a4thm a4thr at2hu at3hü a3ti at4ia ati2kab ati4k3erw a4tinf at2is ati2sa ati2se a4tiso atis3s ati4v3erf 3atla 4atli 3atm 4atma 4atmä at3mu 4atmus a2t1ob a3tog a3tol 3a2t4om ato4man atom1e ato4mo at1op a3tor at1ort a3tos a3tra. atra2t a2t3rau a2t3rä at3re at3rin at3rom a3t4ron at3rot at3rü at2sa at3sche at2schn at2se ats1e2h at2si ats1in at2s1o at2sp a4tst ats3tät at2su at3ta 3attac at4tad at2ta2g at4t1ak at2ta2l at4tang at4tar at4tau at2tä at4tec at4tei att2el at4temp at3thä 4atto at2tob 3attr att3rat at2t3rä att3s4 at3t2u at2ty2 atu2n atze4l atz3ela atz3elt at2zem at2z1er a3tzere atzer2h at2z1i atz3t2 at2z3w a2u 2au. 2au3a 2aub au2bab au2ban au2b1au au2bei aube4n au2beu au2blä au2bli au2blo au2blu aub3rin aub2si aub2str aubu4s 2auc auch4str au2dr 2aue aue2b au3er. au2ere aue3rei auer3ö au3erq au3ersc au3erst. au3ert aue2sc au4fa au5fac au5fah auf1ak au5fal au5fam auf1an aufas2 3aufber 2aufe. 2aufeh 2aufen. 3aufent auf1er au4fer2k au4feu auff4 auf3ind 1aufla 1au4fn 2aufo 4aufö 1aufru auf3ski auf3t2 2auft. 3aufzeic 3aufzug 1aufzü 2aug au2ga au3g2ar aug2e 4augeb 4augeh 4augel 4augl au4gn 4augr au3gu 2auh au3ha auh1u 2au1i au2is 2auj auk3t aule2s aul2les au3lü 2aum aume4n au2m3ent au2m1e2r1 aum3eri au2m1id au4mil au4mit au2m1o aumo2r aum3p2 aum3s4 au4mun 2aun au3n2a aun2e au4nei au2nio au2no au3nu a4unz 2aup2 au3pf 2aur2 au1rh au3ru au4sag au2s1ah ausan4ne. au2sas au2sau 2ausc au4schmi au2scho 1ausd 2ause. au2s1eh 2ausen au2s3erb au2serf aus3erk aus3erp au2serw 1ausg au2sin au4sis au2so aus1or au2spr 1ausr 3aussag au3sse aus2se. auss2el au4ssende aus4ser aus2ses auss4t au2st2a 2auste au4stec aus3tie aust2o au2stö aus3tr au2stri 3ausü 1ausw 1ausz auße2 au2tab au2t1äu 2autb au2t1e2l au3ten. auten2g au2t3erh au3tet au2tev 2autg au2thy 2auti 1auto aut3rin au4trö 2auts2 2auu 2auv auve4 2auw 2aux 2auz auz4w 2a1ü av2a avari4e ava3t2 avener2 2avi a2v3r av2s 2aw awi3e a2wr a1x ax4am a2xans ax2e a2xio axi2s1 2a1ya a1yeu ayma2 ay3o aysi1 ay2u az2 a3za3d 3azal az4at a3zi az3t a3zu azz3a az4zab az4zin ä1a 2äb ä2b3l äb2s äbte3 ä1ce ä1che äche1e äche4n ächenma3 ächenmas4 ä1chi äch3l ä2chr äch4sa äch2so äch2sp ächt4e ä1chu ä2da ädel1i ä2d1ia ädi4e ä2dr äd2s äd3te 2ä1e äe2k3 äe4kl äe2x ä2f ä3fe äfe4n äf2fl ä3fi äf3l äf3r äf4ro äf2s äft2e äft4s3 ä2g1a 1ä2gä ägd2 äg2e ägen4e äge2r3a ä2g3l äg2n ä2g3r äg4ra äg2s2 äg3sc ägs4t2 äg3sta äg3str 1ä2gy äh1a 2ä1he äh1ein äher5t ä1hi äh1in ähl1a äh3l2e äh4l3e2be äh5ler 2ähm äh3na äh3ne 1ähnl 2ähr äh2rel äh3ri ähr5sa 2äh2s ähs4t 2äht ä1hu äh3w 2äi ä1im ä1is. ä3isch. ä1isk äka2la äk3l ä2kle äk4li ä2k3r ä1la äl4bc älbe2 äl4bl älk3 älks4 äl2l1a äl2p3 äl2schl ält2e älte1i ä1lu ä2m 2ä3ma3 äm4at ä3me ämer2s ä3mi ämi3en 2äml äm2ma4 ämmas2 ä3mo ämoni3e 2ämp ämp5f4e äm2s äm3t2e2 ämter3 ä3mu 2än. änd4e än2dr 2ä3n2e äne2n1 2än2f3 änft2 4än3g2e änge2ra 2än2gl äng3le än2gr äng3se 2ä3ni än3k2e än2k3l än2kr 2änn än3n4e2 änner1 2äns än4s1a än2s1c äns2e 2änz ä1on äo3s2 ä2p ä3pa 1äpfel ä3po äp2pl äp2pr äp2s1c ä3pu 1ä2q ä2r3a2 är4af ära4r är1ä 2ärb är2b3le är1c 2ärd ärde4s 2äre 4äre. ä2r1ei ä2r1e2l 4äre2m är1emi 4äre2n ä2rene 4ärer ä2rerh är2es 4äres. ä2rese är3ge äri2e ä2r1ind är1int är3k4e 2ärm. ärm3arm är3mas ärm3at ärme1e ärm3ent ärno2 är1ob är1of ä1rö är3re ärse2 är2seb är2seh ärs1er är2si är3spu 2ärt ärt2e är2th ärt4s3 ä2rü ärz3te är2zu är2z3w äs2 ä3sa äs4ch 2ä3se äse3g äse1i4 äse5ref äser2ei äse2ren äser2i äs3k ä3s4kr ä2s3p ä3ss ä4ss. äs4sb 2ä4s4s1c äss2e äss3erkr äs3sern äss3ersa äss3erw ä5sses äs4sf ä4s4sh ä4s4sl äss3p äs4sr äs4ss äs4s3t äs4t2e 1äs3th äs4ti ä2str ä1ß 2äßc äß1erk äß1ers ä2t3a2 2ä3te äte3a äte1e äte1i äte3l2 äte2n äteo2 äte4pi äter2bl äte3s ät2e3t ä2th ä4thc ät1id ät1ob ä2t3r ät4sa äts3au ät2sä ät2schl ät2schr ät2s1i2 äts3l äts1or ät2s3p ät4s3t äts5te ät2su ät2tei ätte4n ät2tr ätze3l ät2zw äu1 2äub äu2b3l äu2br äu3d äude3 äuder2 2ä2uf 1äug äu4g3l äu4gs äu4gt 2äul 2äum äu2ma äum3p äumpf4 äum2s3 2ä2un äun2e äu3nu 2äu3r2 äure1 äus2 2ä3us. 2äusc äu4schi äu2schm äu3se äuse1i ä3usg ä3usk ä3usn äu2sp äu3ss äuss1c 1äuß äu4ßr äut2e äu2tr ä2vi 1äx ä3ze á1 1b 3ba. b2aa b3a2ba 2babf 2babg ba2bl ba2br 2b1abs bach5t4e back3er back3s4 ba3de bade1i 2b1adel bader4 2b1adl 2b1adm b1a2dr ba2du 2b1af 3bah bah4nene bai3d bais2 b2ak ba4k1a ba4k1er ba4k1i ba4k1l bak3r ba4kra ba4kre ba2lab ba2l1ak ba3lal ba2lau baler2 ba2l3erk balk4a balke4 bal4lan balle4b bal2l3ei ball4erk bal4li2g bal4lo2k ballö3s ball3s bal3tin bal2tr 2b1am b2ama ba5maz ba4me 4bamt ban2a 3b2and band1a ban2dal ban2dan ban2dar ban4derk ban4derz ban2dr ba3n2e 2banf b1ang ban3gl ban4k1a ban2kl ban2kn ban2kr ban2ku 2banl b1anna ban2o 2b1ans b1ant 2banw b1anz ba2r3ab ba2rad bar3ast ba2rat bar3de ba2rei barer3ei barer2t 3bars b1arz bar3zw 3b2as ba3sa ba2sc bas2i bas4sa bas6str bas6tel ba2str ba2ß1 ba2t3ent bat2o 3bau. bau3b bauer2l bauer2s bauer2w bau5fa bau3fl bau3f4r bau3g b2auk bau3r bau3s2k baus4t bau3sta b1a2x ba1y4o 3b2äc bä1ch 3b2äd 2b1äh b2äl 2b1ärz b2äs3 bä4ss 2bäug 2bb bbe4n bbe4p b2be2se bb3le. bb2lö b3brec b3bru2 bb2s bbu1 2b1c 2bd2 b3da bdä2 bdän3 bdome4 bd4ri 3be. 3bea be3ab be3an be3as beat2m be3au be4au. 3beb b1ebb 3bec be1ch 4becht 2b1e2del bedi4 be1e2h bee2l be3ela be1en bee4rei be1erh be1erl be1ert be1eta 2b1eff be3g2 be2he. beh5ri bei3b 2b1eier bei3f4 beige4be beige4ge beige2l beige4p bei3k4 bei3l2a 2b1eime be1ind be1inh bein4hal bein2hi bei3s2 bei5s4t beit4e beit2s beit4s3k 3bek 3bel b4el. be3l2ag be3las bel3d be3lec 4be2lek be2l1en be2let bel3f bel3la belle4n3 bel3li bel3om be2löf bel3sz belt2 bem2 3b2em. 3b2e3ma 2b1emp 2bemul 3ben. be5nabe ben3ar be4nas be4nat be2nä4 bend3s2 b2ene be3nei be4n3end be2ners ben2eu 3beng be2nid be2nik be4nis ben3n 3benp b2ens ben2spa ben2spr benst4 3bensv 3bensz 2b1entb 2bentd 2benteu 2bentf ben3th ben4thei bent4r 2b1ents 2b3entw be2nu ben3un b2en3z2 be1o 2b1epi 2bepoc be1ra ber3a2d be2rak be2r3am be2ran bera4s berb2 ber3d be2r1e2b be2reck be2r3eiw ber3ell bere2m be2rene ber2er ber3erk bere4sc bere4t berf4 ber2g3af ber2gal ber2gli ber2hab beri2d be3r4in. berin2g be3r4inne be2ri4o ber3iss ber3ko ber3kr bermas2 berma5sse ber3n2a bern2e b1ernt be4roh be2rö4 3bers. ber5se ber3st2a ber3t2a bert2e bert2i berz2 ber3ze ber2zö b2es be3sa bes4abb bes2am be4sap be4sar bes2au be2sep be2s1er be2s1id bes3sa bess4e b3esst. bes3sz beste2 be4stein bester2 be5ster. besti3en be2s3tol be2st3o2r best4r be2s3trä be2s3tur be2sur be3s2ze be3tam be3tha be3thi bet4o bet2sp bet2to be1un be1ur 3bev 3b2ew2 2b3e2x 3b2ez 2bf2 bfal2 bfang3s bf4lö4 bflös3 bf4ri bf4ro bf4rü 2bg2 bga4s3t bga4su bge3 bgel2e bge5na bges4 2b1h2 bi1ak bi2ar bi1as 3bib2 bibe4 biber1 bi2c bid2 bi3do bieres2 bie4str biet4s 3bietu biga1 bik2a bi2ke. bi2kes bi2kre 3bil bil2deb bil3der bi2lei 4billu bi2lu 2bimp 2b1inb bin2e bine4n b1inf bin4fo bin2g3a bin3gl 2b1inh bino2 bi2n3ok bin4ol 2b1int 2b1inv bi2o3 biri1 3bis bi3si b1iso bi2sp bis4sa bis4s1c bis3t bi3s4ta bi2sto bi3s4tr bi2stu bi2stü 3b2it. b2ita b2ite b2iti bit4r bit4ta4 bi2tu bi3tum bi3z2 2bj bjek2to 2bk2 bk4ne bk4nu bl2 2bl. bla3b4 2b3lac b3lad b2lanc bl4at b2latt b2lau. b3laus 2b3law 2b1län 3blät b2le 3ble2a b3leb 3blec b3leg 4bleh b4lei. 3bleib 2b3leid 2bleih b3lein blei3s4 bleistras6 2bleit ble3l blem3p ble2n b3lenk b3lese 2blesu ble3sz 3blet b3leu 2blich 3blick b2lie 2blief 4blig b2lind 2b5ling4 b2lis 2blis. b2lit b3lite b2lo b4lo. b4loc 2b5loch b4loi blo2id b3los2 blo3sse blös4s 3b4lum 2blun b2lus 3blut blut1o blut3sc 3blü 2bm bmas2 2b1n2 b3na bnas4 b3ne b3ni2 bnis1 bo3as b1o2b bo3ben bob3r bo1ch2 bo3d2 bo4dd boe1 bo2ei 2b1of bo3he boh2ra boh2u bo1is bo2lan bo2lau boli2e bol3le bol3za 3bon. bo3n2a bond1 bon2da bon2de bo2ne 3bons boo4l boo2ti b1op 3bor. bo1ra bor2an bo2r3as bo4rä bor2da bor2d3r bo4rig bor3m2 b1ort bor2ter bor4t3rat bo4ruh bo2sc bo3se bo4s3p 3bot bot2e bote3n2e bo3th bot2st bot3t bo3v b1oz bö2b3 2böf 2b1öl 2bp2 bpa2g b3pf bp4rä bpri2 2bq b2r2 2br. b4ra. 2b3rad 2b4rah b4rak bra5ka br4al b4r4am2 bra4ss brast4 2b3rat. brat3er2 bra4terg 2bratg 3brä 4bräd brä4u 2bre. 4b3rechte 2b3red 2b3ref 2breg b3reic b3reif b3reiz 2brek b4ren. 2b3rent 2breo 2b3rep b4rer b4res. b3rese b3rest bret4t3en 2b3reu b4rez bri2da brie2fa 2b3riem b4rien bri2er b3ries 2brigk b4rik b4rina 2b5rind b4rio b4risc 2briß b3ritt b4riz brob2 2b3roh 2b3rol bro4ma b4ron 2b3rost bro4tei bro2tr brott4 2b3rou 3brö b4ruc 2bruf b4rum 2b3rund brun4e bru4s4 brust1 bru2th b4ruz 3brü 4b3rüb brü4ss 2bs b2s1ad bs2am bs3amb b4s3amt bsas2 bsa3sse bsau2r b4s3är b3s2äu b3sc bsch2a b4schan b4schef bs2chi b5schl b4sco bs2cu b3se. bse2b b3sel. bse2n1 b3sen. b2s1ent bs1erf bs1erg bs3e2r3in bs1erk bs1ers b3s2es b2sim bsi2t b4ski bs2ku b2s1of b3s2oh b3sol b4sop bso2r b2sö bs2p bs4pi bs3po bss4t b4st. bst1a2b bst1ak bst1al bst3an3k bst1a4s b3stä b5stär bs3tät bst3emi bst1er b4stern bst1h bst3ink b2stip b3sto b4stob b4stod b4stor b3stö bs3trau b2s3trä bst3rep bst3ro b3stü b4stüb b2s1un b3sz bs2zep bs2zi b4szü 2bt b3t2a bta2st3r b3te b2t1h bt2i bti2s bt4ra btran2 bts2 btü1 bu2chec bucher2 bu4ch3er4s bu3ches bu2chi buch3sp bu2e3 bu4fe bug3 bu2gr bull3a 2bumf 2b3umk 2buml 2b3umr bun4a bun2d3er bunde2s b1une b3un3gn 2b1unh bur1c b2ure b2urg burg1a bur2gan bur2gar bur2gin bur4gr bu3r2i 2burn b3ursa burt4s3 bu3ru bu2sa bu2sc bus3cha bu3sche bu4schei bu4sch3el bu4scheu bu3schu busch3w bu3shi bu2si bu2s3p bu4s3ses bussy2 buster2 bu4sterm bu2s3tr bu2su but2a bu3tan buto3re 2büb bü4bc bü1c bügel3e bü3s2 2bv 2bw bwur2 b2y by3a2 by3o2 by3p2 bys2 bys4c by2te 2bz2 bzeit1 bz4wa 1c2a ca3bl 3ca2c ca2e3 ca3g2 ca1h cal2a cala3b cal3t 3cam 2can cana3 ca2pe ca3r2a car3n2 carri1 car3tr ca3s2a3 ca3sto ca3t2h ca1y2 cä1 2cc c1ce c1ch2 c2d2 c3do 2cec 1ced ce2dr ce1e 2cef 2ceh ce1i ce3in 2cek 3cels cen3a cens2 ce3nu cen3un ceo2 1cer cer3a cere1 cere3u ce3r2i ce4ris ce1ro ce3s4h cet1am ce1u 1cé cg4re c2h 2ch. 2chab ch3a2b3i 2chaf 2ch1a2g ch1ah 2ch1ak chan4a 3chanc ch1ang 4chanl ch3ansa 4chanz 3chao 4char. 3chara 3chard 3charta cha2sc chasi1 1chato 2chatt ch3austr chau3t ch1äh ch1ärm ch1äs 1châ 2chb 2chc 2chd che3b4 ch3e4ben ch3echt ch1edi che2el 3chef che2fer 2chei ch1eim 2chelem che2ler 3chemi 2chemp che2neb che2nid che2no 2chents 2chentw che2r3a 2ch3erbs 2ch3er2de 2ch3erfa 4chergeb 2cherke cher4zie ch3ess 2ch1eta 2ch3e4x 1ché 2chf 2chg 2chh 1chia chi3na 4chind 3chines 2chinf 2chinh 2ch1ins 2ch1int 2ch1inv 1chip. 1chiru 2chiso 2chj 2chk 2chl2 chl4a ch2le chle2i ch3lein ch4len 4chli ch2lu 2ch2m 2chn2 chn4a chn4e chner4ei. ch2neu 2chob cho3ch cho4f ch1off cho5fr chof2s ch1oh cho3l2a ch1orc ch1ori ch2os ch3öl 3chör 2chp ch2r2 2chr4a ch3rad 2chre chre3s ch3rh 4chrit 3chromo 3chron ch5ros ch4ry 2chs ch2stal 2cht ch2truh chts3trä 2chuf 2chuh 2ch1unf 2chunm 2chunt 2chur ch1urs 2chut 2chü 2chv 2chw 2chz ci2al ci1as ci1c ci1es c1ind cins4 c1int ci2s1 1ci3t2 2c2k ck1a cka2b ck2ad ck2age cka4m cka4r1 ck1ä ck1ef ck1eg ck1eh ck1ei cke4na cke2ra ck3er2hö ckerk4 ck2ern cke2ro ck2et cket4t ck1i2d ck1in ck4is ck3l ck3n ck5nac ck3o2 cko4f cko4p cko4s ck3ö ckö4f ck3r cks2al ck4ske ck4spen ck3te ck3t2i ck1uh ck1um ck1up c2l2 cle4a clet2 clin2g cli2p1 clo1c 1clu clu4b c2m2 c3me c3mu 1c2o 3coa co1ch 3co2d2 co4de. co3di cof3f2 co2ke cola3 co2leu co3l2o 3com co4mp com2te. comtes2 con2ne continuati6 co2o coo3p co3p co4ps co1ra 2corb cor2da cor3de co4re co5ree cor3t cos4t co2te cou3si cô2 2c2p 1c2r2 c4ra4s c3rä cre2 cre4me 3crew 2cri 2cry 2cs2 c2si cst2 2ct cti4o2 ction5 ctur4 1c2u 2cua cu2e cup3 cu4pa cu4p1e cu4pl cu4pr cussi4 c2v c3ve 2cx 1cy 1ç 1d 3da. da1a 2d1aal 2d1ab d3a2bak d2abä d2abe d3a2ben d3a2bi da3blu d3a2bo dab4ra da2bri da3brie d2ab4rü d1ac dach3a dache4 da2cho 2d3achse 2d1ad da2de da2do da2d4r d1af da5fab 2da4ff da3f4l dafo4n d1ag dagi4o dag2o da1h dah3l dail3 da1in 2d1air da1is da4kro 2d1alar dal3b2 4d1all da2lop da3lö 2d1alp d1al3t 2dalte da1lü 3dam d1a4mei d1amma 4d1ammä damo3 da3mö d2amp damp5f4erf 4d1amt 3d2an. d1ana da2nan da4n4at 2danb dan2ce. d1and2 2danda d2andy 3dane 4d3anei 2danf d1ang 2danh dan2kl dan3kla dan2k1o dan2kr 2danl d1ann 2danna d1a2no 2d1ans danti3e 2dantw 2danw d1anz d2anz. 2danzi 2danzü 2d1ap d2apa d2aph da2po da3pos 4dapp d3apte 2daq da4r1a dara4s 2darb2 2d3arc dar2d1e 2d1area daren1 dar3g d3a2rist dark2a 3darl dar2m1a dar2m1i dar4mun da2r3o d1arr 2darres 3d2ars4 2d1art d3ar2th 4d3arti dar2tr da2ru d1arz das2 da3sh d1asp das3s 2d1assi 2d1ast da4str dat2e2 da3tei 4d3a2tel date4n da2th 2d3atl 4datm d3ato dat2st 2d3atta 3daub 2daud dau3e2 dauer3e daue4rei 2d3au4f 2d3aug 2dauk da3unt 2d1aus dau4ss dau2ß 3daw d1ax 3däc 2d1äg 2d1äh 2d1ämt dä4n3a 2d1änd 2d1äp 2däq 2d1ärz 2d1ä2u dä3us 2däx 2db2 dbau2c dbauch3 dbe2e db4la db4ri dbu2c dbu3s 2dc d3ch 2dd2 d3da ddar4m1 d3dä d3de d3dh dea2d 3dean de3ar de3as de3a2t deb2 deb4r 3debü de1ch de4ck deco3 2d1e2del de2dit 2dee2 de1eb de1e4g de1em dee4n de1er de1es def4a de2fa. 2d1eff def4l deg2 degene3 de3gl deh2a dehas3 dehe2 3dehn de3ho 2d1ehr d1ei 3d2e4ic de3i2den de3il 3d2eim 4deime dein2d d2einfr 4deinr d2e3inse de3inst dein4sta dein4sti 4d3einw de3io 2deise d4e1ism dei4sp 2dekz de2l1ac de3lak dela4t del3ate de2l3aug del3änd del3b2 del3d del1ec 3de3leg delei2g 2delek 2delem de2len deler2 deler4r 2delf. 2delfm 3delik della3d del4lan del2lar dell3auf del2l1ä dell3eb del2lei del2ler del2lö2 de2l1ob de2lop del2se del2so del2s3p del3t dem2ar 2d1emb dement2 de4mentg dem3ents demi2e 2d1emot 2d1emp d2emu d4en. de2n1e2d de4n3end de2nep 2denerg de3n2es d3en2ge. de2ni denk3li dens2am den4scho 2den2sem den2ser dens3tau den4s3tie 2dentd 2dentf 2dentg den3th 2dentn 2dentw 2dentz den4zerf den4zers de2ob 2deol dep4l 2depoc d4er. dera2b der3af de2rak dera2n de3rand de2r3ap de3r2ass der2bl 2d1erbs 2derdb de2r1e2b de2reck der3eis 3d4erem d4eren de2r3end 3d4erer der2erf der3erl derer3n der3ero derer2t 3d4eres der3ess de2r1eu derf4 d4erfl d3erheb d2erhü de5ric de2r3id de4rinnu derin4teg der3k2 d3erken 2derklä 3d4erlan d2erm de4rn de1ro derö4 der3r de4rs der3san 2dersat derst2 der3stau dert5ende. derter4e dert4ra 4der4trag 3de3ru de4ruh de4rum 2d1erz. d3erzeu 2d1erzv d2es. de2sa de4sa2g des1ah de4sam des3an de2s1än de2seb de2se2h de2sei 2d1esel des3elt de3sem de3s2end desen3e de3sens de2set de2sin 3desk de2s1o de2s3p de3spe de3spru dess2 des3sau des5st dest3alt de4stant de4statt de6steige de4steins de4sterg des6tex de4stit dest3rat de2stre de2su des1un 3desw de3ta deten2t 2d1e2th 2d1etw 2d1eul deum3 de1un de1url de3us 2d1e2vid devil2 de1x4a de2xer de2xis 2dexpe 2dexpo 2df2 df4la df4ru df4rü 2dg2 dga4s3tr d2ge. dger2 dge3s d2gesh dge4t3a dge4t1e 2d1h2 d3hu di4aa di4ab di4ad di4ae di4af di4ag di4aj di4ak di4ale di4am di4ao di4ap dia3s di4at4 di5at. di4au di4av di4az di3äre 3dic di1ce di3chl dich3t4er dick3el 4d3i2co 3dida d1ide 2didee di2den 2didy di2e di3e4d di3en. di3end die2neb diener4l di3e2ni dienst3r die2p di3ers. dies3c di3e4th 3dif di4ff di4gk dig4n dik2a dil2s3 2d1imb 2dimp din4a 2d1ind di3n2e 2d1inf di4ng 2d1inh di3ni 2d1inj 2d1ink di4nn 2d1ins 2d3int 2d1inv di2o3b di2odi di4ok dion3in dion5s4 di3ora d4ios2 di2osk dip2 di3pt d1i2ra di4re. di2ren di5rig di2rin di2ris 2d1irl 2d1irr di4s1a2 2d1iso di2sp di3s4per 2d1isr dist2 di2s3to di2s3tra di4sz di2ta dite1c di2t3erl di4t3erm di2t3ers di3the di2tin di2tob di2t3r dit3s di2t1u di5vid diz2 2dj d2jar 2dk2 d3kl dk4le dk4na dk4ne 2d1l2 dlap4 d3le dle2ra dl3f dli4f dl3m dl3s 2dm2 d3ma d3me 2d1n2 d3na d3ne dni2 dni3g dnis1 dnis3t dni3v d3nu do3a doa4k 2d1ob 3d2oba do5ba. d2obo do1chi d1of do4fe 2d1oh do3ha dol3l2 d3oly 3dom do4mal do4mar domen1 do4ming 4domn do4mu do3n2a do5nan doni1 4dony do2o do3op 2dope 2d1opf do1r4a 2d1orc 2d1ord dor2f1a dor2fä dor2f1i dor2fl dor2fo dor2fr dor4f3u 2d1org d2orn 2d3orna 2d1ort dor2ta dor2t3ei dor2ter dor2tr d2os. do3se dos2k 2dosm dost1 d1ost. dost3a dosten2 do3ta do3th do2tof do3un dow2s3 d2o1x2 d1ö dö2d dö4fe döl3 dölla3 d2ön 3d2ör dö2s1c 2dp2 dpass1 dpas2se dpas3ses d3pf d3po dpol4n dpo4st1 d3ps 2dq d2r2 3d4ra. 3d4rab 4d3rad 2drahm 2d3rak 3d4ral d4rama d3ramm d3ramp d3rand dran3k dra4s3s 2d3rast dr4at dra4tin 2draub 2d3rauc d4rauf 2draum 2draup 2dräd d4räh 2d3rät 2d3räu 4dre. 2d3rea d4rea. d4reas 3d4reck 2d3ref 4dreg 3d4reh dre2ha dr4ei 2d3reic 3d4rei3e drei3s d4reiv d4rej 4drem 4d3ren d4reo 4d3rep 4d3rer 4dres. d4resc dres4sei dres4ser4 dres2st d4rew 2drez 2d3rh d3ri 3d4ri. d4ria d4rib 4dric d4rid d4rie d5rieg 3d4rif 4d5riff d4rik d4ril d4rin. 4d5rind 2drip d4risc 2drisi 2driss 2driß d4rit 2d5ritu d4rix 2d3rob d3rod 2drogg 2drohr 3d4rohu dro2id. 2d3roll 2d3rose d4ross 2d3rost 2d3rot 2d3rou 2d3rov d3row drö2sc 3d4ruc 2d3rud 2d3ruh dr4un 2d3rut drü3b 3d4rüs 2ds ds3a2b d2s1ad ds1al d2salk d2sall d4s1amt d2san ds3ane ds3assi d2saut ds1än ds2äu d2schef d2schin d2schun d3s2co d2scr d2s1e2b dse2e d2s1ef ds1ehr ds2eign d2sein d2s1emb dsen3er d2s1eng dsen3s d2s1ent d2s1erf d2s1erh d2s1erk d2s1erl ds1err d2s1ers d2s1ert d2serz dse4t d2s1eta d2s1ev d2sex d3sha4 d4shal d3sho d4shor d2sid d2s1im d3s2inf d3s2kal d3s2kel d4sli d3soh d2sop dso2r ds1ori d2sö dspa4s3 d2spat d2spä d2speri d2s3ph ds2por d4sporto d3spri d2spro d3spru ds2pu dst2 d2s3tas ds3tauf d2s3täti d4stea d4stele ds3th ds4til d2s3tis d2stoch d2stod ds3tor d3strei d3s4tro dsu2m d2sun ds1url ds2zen 2dt dta2be d3t2ac dta2d dt2ag dta2n dt3ane d3t2as dt2ax dt2et d2th d4thei d3to2 d4tob dt2op d3tö d4tök dt3r dtran2 dts2 dt3sa dtt4r dt2un d3t2ur d3ty dua2ler du1all du1alv du1ar du2b3li du1ce duel3la 2d1u4fe duf2ter duf2to duf2tr d3u2g 2d1uh du1i du2in du2kr dul3art 2d1umb 2dumd 2d1u2m1e 2dumf 2dumg 4d3umk 2duml d2ump 2dumr 2d1ums d2ums. 2d1umv du2n 2d3und 2d1unf d1unga 2dungl 2d1uni dun3ke dun2kl 2dunr 2dunsi dun2st3r 2dunt 2dunw 2d3unz du1os dur2c durch3 2d1urk 2d1url 2d1urn 2d1ursa 2d1urt du2schn du2schr du2sch3w dus4t 2düb d3über dü2str 2dv2 2dw dwa2 dwer3te dwe2s dwe4st1 dy2le dym3 3dyn dy2s3 dys1c dy4sl 2dz2 d3zw dz4we 2e1a ea2be ea2b3l ea4br eadli4 e3a2dr ea2g ea3ga2 ea3g4l ea4ka eakt2 e2akta ea2la e3alei e4alem ea2l3ent ealen2z ealer2 e3a2lerg e3alex e3a2lin eal5le eal3lö eallö3s e3al1o ea2lon ea2lop e2alti2 eal3tr ea2l3u2 ea4m3a e2ame ea4m1o eam3t2 e3anf e2ano e3ar. ea2ra ea3rat e2are e4are. ea2r1ei ea2rene e4arer e4ares e4arn2 ea2ro e3arz e2as e3as. e3a4sc easin4 ea4sp eas3s eate2 ea3te. ea3ten eat4mes eat2mu eat4mun ea4to eat3s e3at3t2 e4atu2 e3aue e3auf eau4fe eau4fl e4aufo e4auj eau3n eaus3s e2av e2az e1ä2 e3äh eä4st 2eba e3bak eba2p e3bän 2ebec ebe1er ebein5h eb2el ebe2ler ebe2lo ebenen3 ebe2ras ebert4 ebese2 ebe2s3eh ebe2so 2ebet ebet4s 2ebh 2ebi 2ebl eb2laß e3blä eb3le. eb3ler eb4leu e3blie eb3lo e3b2lö 2ebo e2bob ebot2 ebö2s 2ebr eb5rah e3brau eb2s1 eb4sche ebse2 ebs3p eb4spanne eb3stan ebs3tau eb4stät ebs3t2h ebs3ti eb4s3tot eb3str ebs3treu eb4sz 2ebu e2bunt ebus3s ebu2t3 2eca 2e1ce ech1am ech1ä 2e1che ech1ei ech2en1 echer4fa e4ch3erzi e1chi echi3e ech3l ech3m ech3n e2cho. ech3ö4 ech3re e1chri ech3sel echs2er echst3re ech3tab ech3t2ei ech3ter ech4terh e1chu ech3w 2echz e1ci ecke4n1 eck3err ec4kl eck3ser 2eckt 3eckty 2e1cl 2eco 2e3cr 2ect ed2a ed2dr ed2e ede2al e3dee edel3l ede3n2er edens1 eden4sa eden2se eden2sp eden4sta edeo2 ed4e2r eder3a ede3rat ederer4 eder3t2 edhof4 ed2i e3di. 2edip edma3 edmas2 e3d2o ed2ö e3drei ed4rö ed2sal ed2seh ed2s1es ed2si ed2s1o ed2sp ed2sto ed2s3tr ed2s1u edun3 edund2 e3dy3 edys4 2ee ee3a2 eeb2l ee3bs ee1c ee2ce ee2cho e1eck eede3 eed3s2 ee1e2 e1eff eef4l ee3fo eeg2 eeg4r e1ei ee2i3e eein2se eei4sc eei3se eeis3s e2ela eel2e e3e2lek eele4n eel2ö e2e3m2a eemas3s e1emb e1emp eena2g e1end een1e e2e3n2i ee3n2o4 een3s e1ent e1en2z ee3o2 eeo4l e2ep ee3po e1erbt e1erd ee3r2e2 eer3ei ee4r3en2g eere4s5 eer3eti e1ermä ee1ro ee1rö e1eröf eer2ös eer3sh eer3str ee3r2un e1erz ee3sh ee3sp ee5ste ees6tei e2et. ee3t2a ee4tat ee2th eet2i ee3t4r ee2tu ee1u eeu4f eewa4r eeweis4 e1e2x e2f1ad e2f1a2g e3fah ef1ana ef1ar e2farc ef3arm e2fat ef1aus 2efä ef2äl efä5sse e2fäu 2efe e2f1e2b e3fef efe2l3ei ef1em e2femi efe2n1 3e2f1ene e2fent efer3f eferin4d efeuil2 ef2fä2 3effek 1effi ef2fl 2efi ef1id e2f1ins efi2s 2efl ef4le ef5le. e3f4lu e3f4lü 2ef2o 2efr ef4reih ef3rol ef3rom ef4ru ef4rü efs2 ef3sc ef3so ef3sp efs4t ef2tan ef2tei ef2tro 2efu 2efü ega4m e3g2anz e3ge eg1eil egein3 ege2lan ege2l3au ege4l5ei4er ege2ler ege2lo eg2en ege4n1a2 egene3ra ege4nero egenma6s egen3z eg2er ege2ra ege3stal ege2s3to ege2s3tr ege1u e4gex 2egi e3gio 2egl e2glo e2glu egmen4ta e2gn eg3nä eg3ni ego3p egori2e egro3sse egs2ag eg4sal egsau3g eg3se eg4sei egs2e3l egs3er eg3si eg4sk eg4sm egs2of egs4pe eg4ss egst2 eg4sto eg2th eg5ver 2e1ha eh1ach eh1ad eh2ade e3h2ah eh2al ehalt2s e3hand e2harz e3haut e1hä ehäs3 e1he eh1eff eh1ein e3helf eh1elt e2hense e2h3ente ehen2tr ehe3o 1e2hep 2eher ehe1ra e2h1er2f e2h1er2l 2e1hi eh3im ehis4 eh1lam eh2l3au eh1lä ehl3ein eh2lent eh5l2er ehlo2 ehl1or eh2lö ehl2se ehl4sl 2ehm eh4mant eh3mu eh3na eh3no 2e1ho eho4f eho2l eh3oly 2e3hö ehö2rer eh2r1a4 ehr1ä ehr1ec eh2rei eh2rel ehr4ern ehre3s eh4rin eh1roc ehr1of eh1rö eh2s2 eh3sa eh3se eh3sh eh3si eh3sk eh3so eh3s4p eh3sta eh3sto eh3str 2eh3t2 eht3h eht4r eh4ts 2e1hu e2hum eh1unf e2huni e1hü eh3üb eh3w e1hy 2ei3a2 eia4t ei2bar ei2bli ei4blu eibu2t ei2b3ute ei1ce ei2cho e2id ei2d1a ei4db ei4dl 2eidn ei3dr ei1e eie2b eie2d ei3e2l eie2m 4ei3e2n1 eienge4 eie2t 4eif. ei3flo 1eifr eif3t 2eig. 2eiga eig2ar 2eigä 2eige. 2eigeb 2eigeh 2eigeno 3eigensc 4eig2er 2eiges 2eigew 2eigi 1ei2g3n ei2go ei2g3rat 2eigre 2eigrö 2eigru 2eigrü 2eigs4 2eigt 2eigu 2eih ei2hum ei2kab ei2kak eik4am eik2ar eik2i eik2l ei3k4la ei3klä eik2o e2il 4eil. ei4l3ab ei2lam eila2n ei2l3ane ei2lang ei2lant ei2l3anz ei2lar 2eilb eil3d4 ei2lein eile2n1 ei2let eil3f4 eilm2 ei2lob eil2ö 2eim. ei2m1a2g eim3all eim3alp eima4to ei2m1or 2eimö 2eimp eim2p4l eim3sa ei2mur e4i2n1a ei4na2d ei4nae ei4n3an ei4na4s ei4n3at ei2n1ä einbus2 ein3d2e ein4derk e1indu 2eineb einen2e ei4n3en2g einen2s ei4nen4se ein3erbe ei2nerf ei2nerk ein3er4la ei4ness ei2neu ein4fiz 3einflus 3einfluß 2einfo ein4fo. ein4fos ein3g2 3einger ei4nh ein2hab e2inhä ei2nie e1in2it ein3k4 ein4karn 3einkä e2inl ein3n2 ei2n1o4 1einri e4insa einsas2 einsa5sse 3einsat e2insc 3einschä ein4stal ein2teg ein4terv 3eintop 3eintö 3einträ 1einu ein3zw ei3o eio2s ei3p eip2f ei4pp ei4pz 2eir eir2c ei3re e1irr e4is. ei2sa ei3sas ei4sau ei2ser2g ei2s3er2l ei4s3erst ei2s3erw 1eisho ei3s2ky ei4sl ei2so eis4pe ei3spru e2i3s2s eist4e eis3tras3 ei2sum ei2sur 1eiswo e2it ei2t1a2b ei2tal ei2t1an ei2tap ei2tar ei4tat 2eitä ei2tän ei2teli eite4ra eit1h ei2tin ei2trau ei2tro eit4sag eit3t4 ei2t1um ei2t1ur eit3z4 eiv2 eive4 ei2zar ei2z1in 2ej e3ju 2ek. 2e3k2a 1ekd ek2e e3ke. e3ke4n eker3z e3kes e3key e3ki e3k2l ek4lo ek4na ek4ne ek4ni ek4nu 2e3k2o ekor2da 2e3kr ek4s3p 2ekt ek4tank ek3t4ante ek2t3at ek2t1ä ek2te2l ek2tep ekt3erf ekt3erk ek2t3er2z ekt2o ek2t3o4b ekts2 2e3ku ekur2a e3k2w 1ekz e1la el2abt el3abu e2l1af ela4h e2l1ak el3al e2l1a4m e4lame el2a5mi el1ana e4landa el1ank e2lanm e4lans e2l1ant e4lanw el1anz 2elao e2l1ap e2l1ar el3a2ri el1a4si el1asp 2e1lä e3läd 2elbil 2elbr 2eld elda2r eld3ari eld2arm el2d3erf el2d3erl el3dern elder2s eld3erst el3des elds2 4e3le. 2e3lea elea2r 2eleb ele2c el1ech 1elefa 4eleh el3ehe. 2elei e4l3ei4ern e2l1ein e3leine e3leit el1eiw 1elek 2eleko e2l1el ele3ler 1e2lem 2e3lem. e3lema el1emb el1e2mi e3lemm 2el1emp 2e3len. elen2k3l e2lense e2l1ent e3lep 4eler e3ler. eler2a el1erd el1erf e2ler2fa e2lerfi e2lerg el1erh e2l1erk e2l1erl eler2la e2l3ernä eler2ö e2l1err el3eru el1erw e2l1ess e2l1e4ta el2eth ele2ti elet4ta el1e2x e3lex. 1elf. elf2er 1elfm elf4r 1elft elgi3 el3g2l elg4r e2l1id 2e3lie elif3 2elig e2lim elin3a el3inka eli3no el1ins 4elis 2elk elks4 ella3den el2lant el2lap el2larb ellar2t ella2s ell2ei ell3ein el4lel ell2er eller4fas eller5g ell3erh el3lie el2lil 1ellip el2lo2g el2lor el2lot ell2ö el4ls ell3sp ellu2m el2lü elm2e elm3ein el3na 2elo e2l3oa e2lof elo4fe e2lol e2lom e2lonk el1opf e2l1or e3lore elo2ri e3lot e3l2ov 2elö el3p2 el2s3ein el3sent el2stor el2sum el3tar el3te. elte4m el5ten. el4t3ent elter4b elter2f elt3erh elter2k elter4le 3elter4n elter2s el3test elt3eth el3the elt1r el4ts elt3se 2e1lu el1uf e2l1um e2l3u2r el3use elu2t el3ute el3uto e1lü 2ely e2lya el2zar el2zene elz1in em3a2b em4ak e2m3alar e2m1alk em3anf e2m1ano e2m1ans 1emanz e2m3a4sp emas2s ema3sse e3maß em1au 2e3mä em2äh 1embo 1embry em2dä emd1r em2dra 2eme e2m1e2b e2mef eme2i e2mele em2en emen4gel emen2t3h e4mentsp eme3r2i e2m1er2l em1erw 3e2meti e2m1i2d emi2ei e2mig emik2 em1im 2emin emi3n2a e3mind em1int 1e2mir 4emisc emma3u em2mec e2mof emo3s 1empf4 3empfä em3pfl em3po em2sa em2scha em2sim em2spr em2s3tr em3t2 1e2mul 3emuls emune3 e3mur e3mus 2emü emü3s2 e2na 4ena. e4na2b en3aba en3abo 4enac en3ache e4n1ack enadi4 e4naf 4enah en3ak ena4ke en1al e4nalb e3nale ena3l2i e4nalk e4nalm e4nalo enal3p 4en1am ena4n e4nand en3ane e4nant e4nanz en1ap ena2pa en3are en3ark 4enarm en3aro en1as ena4sc e4na4st 2enat 4e5nati e4natl enat4s e4n3att 4enatu e4nau4f en3aug e5naui e4n3aur e4nausta e4naut e4n1ax en1a4z en1ä en3äb en4äc e2när en2ä3s en3äst enbu4s3 en2ce. end2ac en2dal en2dang 4endef 2endel ende2lä endermas4 en2d3es2s en2dex en2did en3d2ort en2dost end3rom en3drü end3s2l end3s2p end3sz en3d2um en3d2ü 2ene. en3e2ben en1ec e2neff ene3hen en2eid e3neien e4neige e4nein e4neis e2n1el ene4le 2ene2m e2n1emi 2enen e4n1ent en3envi en1ep 4e3ner. e2n1erd e2nerf en2erfr 1energ 3energi e2nerh e2nerk e2n1erl e2nermi e2n3ermo 4enern e2n3erne ene2ro e2n1erp e2n1err en1ers 4eners. e2n1ert en2ert. e2n3eru e2n1erw 2enes e3nes. e2n1e4sc e2n1esk e2n1ess en1eta e2n1eth en1eul e2n1e2v e4ne2x en3f en4fb en4ff en4fg en4fh en4fk en4fm en4fp en4fs en4ft enf2u en4fw en4fz 1engad 1engag eng2al en3geb enge3r2a eng2i en3gn en3g2o 1engp eng4ra eng3se e3ni. 2e3nic 2e3nie eni3er. eni3era eni3erp eni3ers. en3i2ko en3ill eni4m en1ima en1imi e2n1in en3inh e3nio en3ion e2nir 2enis eni4sa e4n3iso e3nit2 e3niv enk3aus 3enkeli enk3erg en2k3erk en3k2ü en5mil en2nef en2nel enner2e en2ner2f enn3erg enn2i enni4ger 2enniv e2n3oa e2n1ob e3nobel eno2br e2nof e2noh en3oli en3olm eno4ma eno4n e2n1op e2n1o2r en2ora eno4ri 4enorm eno2s e2n1o4st 4e3not eno2w e1nö en1ö2d e4nöf e4nök e4nöl 4enred en3sabb en3sac en2san ensas2 ensa3sse en3sche en2seb ense2e 1ensem en2sen3e en3s4pen en3spo ens2por 4enst. enst3alt ens6tel en4stele en4s3test 4enstl 2ensto enst2ü en2sun 2entab en2tad 2entaf en5t2ag en2tanm en2tanw en3tar ent2ark 1entd en3t2el ente2n 3entera en2t3erb en3tes 1entf 2entfo 1entg 3entgeg en2thi 1enthu 1enthü en2t3id 3entla 1entn en2tob entopf3 en2t1os 2entö en4ts 1entsc 1entso 2entss ent2sto 1en4tw 4entwet 3entwic 1entz en1u e2nuf e2num enu2t e4nuto e1nü 4enwü e1ny2 en3zare en2zene enz3erf enz3erg enz3erk enzer2l enz3erm enz3ersc enzi2d enzlan2 enzo2l en4zs 4enzuf 1enzy 2eo eo3a e1o2b1 eo3ben eo3bl eo3bo eo3br eo1c eoch2 e1of eo3g2 e1oh eo3la e3o2ly e1on e3o2nat eon2i eo1o eo2pe e1opf e4oph eop4r e1or e3or. eo1ra e3orb e3o4r3ei eorgi1 e3ors eort4 e3orw eos2 e3os. eo3se e1o4ste e1ou2 eo1ul e1ö2 eö4fe e3ös 2ep2a epa2g epas4ser 2epeg 2eper e3p2f ep4fl eph2 2epia e2pid e4pig e2pik e4pile e3pio e4pip 1epis 2epist 1e2pit ep3le ep4lu 1epoc eport4 epor3te 1e2pos. ep4pa eppe3l ep2pin ep4pl ep2pr 2epr ep4rä ep3sh ep2tal ep2tau ep2tä 2e3pu epu2s 2eq e3qu er1a e3ra. era2c e2r3ach e3rad. e3ra3di e2radj e2r3adm e4radmi e4r3adr eraf4a era2g era3ges e1rah e1rai er3aic e3rake era4ku e1rald eral2eb er3alke e2r3all era4mat er2an. era4n4a eran3d4 e3rand. e2rangr e2ranh e2rano e1rap er3apa er3apf er3apo e2rar er3are e3rari era2rie e3ras. era2si era4sie era4sp era4s3s era2ß era3te. e2ratel e3rativ e1raub e1rauc er3aue erau4f er3aug e2ra2v e1raw e2r3ax e1raz e1rä er1äf er1äh er1ä4m er1äp e2r1ä4s er1ätz 3erbarm erb2au erb2e er3blo 2erbru erb2sp er1c erche3i er3chl erch2o erd2am erda5me 1erdb 2erdec er2d3en2g erd3erw erdeu2 1erdg erd5rin 2erdy 4ere. er3e2ben e3r2ech er3echs er1eck er1edi ere2dit er1eff e2r1e2h ere3ho 4e3rei. e3reib 1er1eig er3eime e4reink er3eis. er3eisar er3eisb er3eisf er3eisr erei3str er3eisv e4rek er1e2l e2rele ere3lev 2erem 4erem. er1emi ere2mis e2remp 2eren 4e3ren. e3rena eren1e e2rense e2rentn e4r3ents e3renz eren4z5en4d er4eo er1epe 4erer. 2ererb e2r1erd e4rerfo e2rerh e2rerk e2rer2l erer3lau e2rerm 2erern. e2rerne e2rer2o erer2ri er1ers 2erers. e4rersche e2rert 2ererv 2ererw e4r3erze 2eres 4eres. er1ess er1eß er1eta eretri3 er1eul ere3un ere2vid erf2e 2erfir 4erform erf4r 4erfür er2g3are 4ergebi 3ergebn 4ergebü 2ergeha 2ergehä erg3elst 2ergeni 2ergn er2gop 4ergrem erg3s2o ergs4p e2rh 1erhab er3hag 2erhai 2erhals 2erham 2erhas er3hei 2erher 4erhöc er3hu 2eri e2riat e3rib 4e3ric e4r3ico er1id 4e3rie erien1 eri3enb erie2ne erien5s e4rij e3rik eri3k4l 4erin. e2r1ind erin2fo e2r1in2i er1in3k er1inl er1int er1inz e2ri2on e4rir 4eris e2riso e2risr er1ita 3eritr e3riv 2erk. 2erkaj er3ker er3kla 1erklä 2erkm erk3t4 er2kum 2erl. 2erlag 3erlebn 2erln erm2 er3ma 1ermah er3men ermen2s erm3ers er2nalg er2n3alt er2nau er4nene er2nerf er2nerk 3erneue er2nob erno2r ern1os 2e1ro. e1roa er1ob ero2bl ero2br er1of e1rog e1roh e1rok e1rol er3oly e1rom er3omb 2e3ron e2r1oo er1op 2e4ro4r eror2a e1ros 1erosi e3rosit e1rou e2r1o2v e1row er1ox er1oz erö2d 2eröh erö4l er1ö2s er3pl 3erprobu er3rä er5regi 4erren ers2a er5sam ers4ana ersch4 er3schm er3schn ers2el er3s2i er3sk ersma3s2 ers4por er3stä er4st3ers 2erstil er3swi er3sz er2t1ab 4erteig er2t3erf er2t3er2g er2ter2h er2ter2k er2ters ert1h er2tho 4ertö er3trau 4ertru er4ts ert3s2e ert3s2p 2eru eruf4s3 e4r3uhr er1u2m1 er1und e4rundu er1up. e4r3ur eru2t er3ute e2r3uz erü4b 3erweck 6erweib es3ab es2abb e4sabe e3sac es1a2d e3saf e4sall es1ami es2an es4and es3ant esa2ra e3sas2 esa3ss esa5sse es2ast e3satz esa2v es1ax esäs4 es2äu 2es3b esbi3er. e3s2ce esch2l esch2n e4sco e3se. e2s1ec es1ehr esein2s es4ek es2el ese3lam ese4nal ese2neu e3s2enk esen3o es2ens esen3sk esen3th ese4r1u4 eses2k es3e2x 2esf 2esh es3ha es4ham es4har es3he 2esi esi1er e4s3i2k e2s1il e4s3ins e4siso e4sk. es2kat e4skä e4s3ke e4s3kl e4skö e4s3ky es3l 2esm e2s3oa e4sob es1od eso4f e3s2oh e3sol esonan2 eso2r es1ora eso3re es2ort e3sot e3s2ö 2es2p e3s4pal es4park es4paß es4pec e4spers e2s3ph e3s4por es4pru e3spu 2esr 2e4ss. e4ssa es4s1a2g essali3 essau2s 1essay e4ssb e4ssel e4ssent ess2ere ess2erf e4ss3er2g e4sserl ess3er4la e4ssf e4ssg e4ssh e4ssj e4ssk e4ssl e4ssm e4ssn 2e4sso es2sof es2sorg e4ssö e4ssp es2s3pa e4ssr e4sss e4sst es4ste e4ssü e4ssv e4ssw e4ssz 2est e4st. estab4b e2stabs esta3ge est1ak es4tan e2stant e2starb es4ta4s est3asc e3stat e2stat. e2staum es4te este2c este4i es5teil est3eing e4st3eink e4st3einl est3eint este2l e4stele e4st3emi e4st3eng e5stens est3entr e4sterei est3ergi est3erha e4ster2ö estes2 e4st3ess e4stf e3sti e4stid e4stip e4stm estmo4de. 3estn e2stod e2strad e3strec e3strick est3ums est3urk e3s4tü e3sty e3suh e2s1um es2und es1ur esu4s es4ut 2esw e3sy e2ß1el e2ßent eß2e3r2e e2ß1erg e2ß1er2l e3ta. etab4 et2a2c 2e3taf 2etal etal4li4n et1a4mi e5t4an. e3tas et2ast et4at etat3r et1äh 2e3te ete2e e4t1ef e4t1ein ete3ke eten3d2 ete2o eter1ä eter2hö eter2tr 2eth. et2ha et3hal e3the et2hi e4thik 3ethn et2hu e4t1i2d eti2m eti3na et1ini et2it eti2ta eti4th 2eto e2t1o4f eto4n3al et1orc e2torg 2etr et3rad e2traum et3rec e2t3res et4ros ets2c etscher5e etsch3w et2s3pe ett1a et2ta2b et2tad et2tak etta4m ett2as et2tau et2tä et4tei ette4n1 et4th et4tö4 et2t3r et2t1um et4tur et4tü4 3e2tui e3tur etwa4r ety2l1 1e2tym 2etz etze4s5 et2z3w eu1a2 eu3b eub4r 2euc euch4ta 2eud eudi4e eu2eb eue2r3ei eueren2 euerer4s euerer4t eu3eri euer2ri eu2esc 2euf eu4fer eu2g1a euge2mi eu4gense eugin2 eugin4f eu2ging eu2gre eu2gri eugs4 eug3sp eu3h eu1id eu1in 1eukal eu2kä eulan2 euland3 eul2e eul2i 2e1um e3um. eu3m4a euma3s2 e3umb e3umf e3uml e3um2s eum4s3p eum3st e3umw 2eu2na eun2e eu4nei e3un2g eu2nio eu4nis eunk2 eun3ka eu1o2 eu3p e1up. eu4pd eup2f e3u4pg eu4r1an eu2r3ast eura3t eu2rau eur1c e2ure euren2 eu2rens eur4er eurf4 1euro eu4rs eur2so eus2 e3usar eusch2o eu4sk eu3sp eu3s4s eust4 eu5ted eu3tem eute3r2e eut2h 1eu3tha eut2i eu3t2o euts4 eut4schn eut4schr 2eux eu1y eu2za euz3eic eu2zo eu2z3w e1ü e3üb e2vak e3var 2ev2e eve5ri evie3le 2e3vor ev2s ewä2s e2we. ewei4sc ewert2 ewer3te ewi2s e3wit 2ex. 1exa4m ex3at 2exc 2exd e2xel ex1er 2exes e1xi 2exik e2xil e2x1in e3xio 1exis ex3l 1exp 2expu 2exs 2ext. 2ex2ta ex2tin 1extr 2extu 2extv 2exu e2xum 2e1xy eyl2 ey2n ey3no eys2 e3z2a ez2ä e2z1enn e3zi ezi2s ez2o ez4wa ez4wi ezz2 é1 é2e égi2 él2 élu2 ém2 ér2 éu2 éz2 è1 2ët ê2t 1f 2f1abb fa2ben 2fabf 2fabg 2f1a2bl 2fabn f2abr 2f1abs 2fabw fa2cheb fa2chel fa2ch1i fa2cho fachs4 fach3sp fa2ci fa2dan fa2del f4aden f1ader fa2di fa2dr fa3e fa4eli 2faf fah4l3ent fai3b f1a4ka fa4ke f3aktio f4akto f2aku fa3l2a fa3le fal2kl fal2la falla2g fal3le. fal2lei fal4lenk fall3ent fal2ler fall3er4s falli4 fal4lini fal2lis fal4scha fal4schei fal4schl fal3te fal4tei fal2tr 3fam fa4mei 4f1amp f1amt f2an. fa2nar 2fanb fand2a f2anf fan2ga fan2gr 2f1an3k 2fanl 4fann f1anp 2fanr 2fanw 2f1an3z 2f1a2p f2ar far2b1a far4bel far2b3er far2bin farb3l far2bo far4b3r far2b3u f3arc 3fa3ri farm2e far2r1a farre2 far2rec far4reg far2rh 2f3art 2f3arz 3fas. fa3s4a fa3sh f1assi fas4t 2f1a4str fa2ß f1aße f3at f4at. fa2to f4ats 4fatt fau1 2f1aue 2f1auf f3aug fau2s f1ausb faus4t faust3r 3fav fa2xa 3fä1c fäh4rin fäh2ru f1älte 2fäq 3färb 2f1ärm 4f1ärz fä4ss fä6sser2 fä2ßer 2f1ätz 2fäug 2fäx 2fb2 fbau1 fber2 fb4re 2f1c f3ch 2fd2 f3da fdien2e fd4ri fd4rö f3ds 3fe. featu4 f2ech fech5t2e fe2del fe2dr fe2e1i feein3 fe1em 4f1e2he fehle2 feh2lei fei3le f2eind fe3infr 2f1eing fe3ini fe3ins. 2f1einw f1eis fek2tin fek2t3r fe2l3a2 fe2l1ä fel2da felde4m feld2er fel2dr feld5ri 2fe2lek fe2l1er fe2les fel3la fel4lan fel2lä fel3le. fel3les fe2l1o 4fel4tern felt4r fel3tu f2em. 2femb fem4m 2femp 3fen. fen3a2 fe2nä fend2a 4fenerg fene4t fe2ni fe2no fen3s2a fens4c fenst2 fen4stri f1ent fen3t2a 2f3entf f2enti 2fentla f2ento 2f3entw 4f3entz fe2nu 3fep fe4pi f2er. fe2r3a2d fer3al fe1ran fe2rang fer2ant fe2ranz fe2r1ä 2ferd. fer3da fer3d2e1 2ferde. 2ferden fe2r1e2b fe2rec fer2ei 4f3ereig fer3eis fer3ell fe3rerf fe2rer2g fer2fah fer2fol ferg4 2fer2geb f4erges f4ergr feri2d ferie4n3 feri4on fer2leb fer3m f2ern. fer4nei fe2rö f4erpa f4erpf f4erpl f4er5ra fer2reg ferri2 f2ers. fers4t f2ert fert4r f2erz fer2zeu fes3s2e fes4t fe2sta fest3a2b fest3an fe4st3ei fes6tel fester2 fe4stin fe2st1o fe2st3r 2f1e2ta fe4tag 3fete fe2th fet4t3a fetti3s 2feu. feuer3ö 3few 2f1ex fe1y2 3fez 2ff f3fa. ffa2b ffa2ce ff1a2d f3fak f3fal ff1alt ff1ans ff3ar ff4arb ffa4s ffa2t ff1au ffa4z f2f1e2b f2f1ef f2f1ei ffe3in. ffel3l ff1e2m f2femi ff2en ff3erle ffer3z f2fetz ffi3k f2fil ffi4xi ff1lag ff3le ff3li ff5lon f3flü ffo2 ff1ori ff1ox f2fö f3f4rä ff3ro ff4rü ffs2am ff3sch ff2s3p ffs3tie ffs3tut ff3stü ff3t2 ffus5s 2fg2 fgeb2 fge3s2 f3gh fglim2 f3gü 2f1h2 fh4eu f3hu fi4ak fi2ar fi1as fi3at fiden2 fi2do f2i2e fi4eb fie1i fi1er2f fi4es 2fif fi2g3r figs4 fi2k1as fi2kel fi2kin fi2kn fi2k1o4 fi4k3r f2il fi2l3an fil3d fi2les fil2et fi3li fi4lin fil2ip fil2ma fil2mä fil2med fil2mei fi2l1o 2f1im fi4mi 4f3imp 3f2in2a fin2e 2f1inf fing2 fings4 2f1inh fi3ni fin2sp 4f1int 4f1inv fi2o fi3ol fi2r fi3ra fi4re fir3me fi3s4a fi2sch3a fi4schei fisch3o fi2schr fi2sch3w fi3s2h 2f1iso fis2p fite2 fi2tin fit1o2 fi2tor five4 fi2xel fi2za 2fj f2jo 2fk2 fka4t3 fk4ne f2l2 2fl. f3lad f5land f4lans f3lap f4lasc fl4at f3lat3s flauma2 3flä f4läc 4f3läd 4fläh 4f3län 4flär 4fläß 4f3läu f3le. 2f3leb f4lec f4lee 2f5lein flek3 flekt2 f3ler f4lex f3li. 3f4lim f3lind fli4ne f3ling 2f3lins f4log 2f3lon 3f4lop flo5s4ses. 3f4loß 3f4lot flo2w f3lö 4flöf f4lög f4löß f4löz 3f4luc f3luf 3f4lug 3f4luss 3f4luß f4lut flut1o f3lüm 2fm2 f3ma fma3che fma2d fmas2s fma3sse 2f1n2 f3na f3ne fnerz2 f3ni fni2s f1ob fo2be 4fober fob2l 2f3of fo4fe foli3 fo2na fo4nan fon3au fon3dr foni2e fo4n1in fo2nop fons4 fo2nu f1o2p fo3po 4f3org fo3rin for2m3a2g for2mas for2m3ei for2min forni5er. for2sta for2sti 3fortb for2t3ei for2ter5 for2th for2t3r fort3s2 for3tu for2u fot4r 2föf fö4fe 2f1ök 2f1öl 2fp2 f3pf f3pl fp4lu 2fq f2r2 f3ra. frach4tr 2f3rad 2f3rah fra4m fr4an f3rand f3rap f3rase f3rat 3frau. f3rauc 2fräd 3f4rän 2fre. f3rec f3red 4fref f4rei. f3reic f4reie frei3f f4reig frei3k2 4frein freis4 2frek 2f3rep f4req f3resi 4frest 3f4reu 2f3ric fricht4e fri3d f4ri2e f5rieb f5rief 2frig f4ri3k 2f3rin f3rip fr4is f4risc f4rist fri4ster 2f3roc f3rok 2frol 3f4ro2n fro4n1a f4ror f4ros fro2sc f3rot f3roz frös2 f3ru f4ruc f3rü 2fs f3sac f2s1al f2sa2n fs3ane f4s3ar f2s1a4s fsa2t fs3ate f2saut fs2än f2sca f2sce f2schan f2schef f4schro f2scr f2s1e2b fse2ei fs1ehr fse2n fs1en1e f2s1ent f2s1er fser2u fse4t f2s1eta f2s1i2d f3s2ky f2s1o2 f3soh f3sol fs2pa f2s3pas f2sph f3s2pl f3s2por fs2prä f2spre f2spro fs2pul fs3s2 f4st. fst2a fs3tak f2stas f3stat fs3tät f2stäti f2stech fste2i fs3terr fs3th f2stip f2s3tis fst4r f2s3tres fs3trü f2stüte f2s1un f3sy 2ft f2ta. ft1a2be ft1abl ft1af ft2ag ft1ala ft1an f2t1ap ft1a2r ft3att f2t1äu f3te. ft1eck ft1edi ft1eh fte2he ft1eig ft1ein ft1eis ft1eli fte3ma ft1emi f2t1ent ft3erfü ft1erk f2t1erl fter2le f2t1erz f2t1eti f2t1ex f2t1h f4t3hei f2t1id f4tim f2t1in f3t2ing fto2 f2t1of f3tor. f2t3ot f3t4ran f2tres f3treu ft4rit ft3ro ft4ru ft5rud ft5ruh ft2s1 ftsa2 ft4sag ft4sam ft3s2c ft4sche ftse2 ftsen1 ft3st ft4staf ft4star fts3tät ft4s3tem ft4ster ft4s3tes ft4stier ft4stor ft4streu ft3t fttra4 f2tum ft1urk ft1url ftü1 ftwa4 ft3z2 ftze3d ftz4w 3fuc 3fug fugi3 3f2uh fuku3 fulb4 f1um1 fu2mei f2umm 2fums fun2d3er 2f1unf 2fungl 2f1u2ni fun2k3l fun2ko fun2k3r fun2ku 4funm 4funr 4funt f2ur furch2 fu4re. 2f3url fus2 fus4s fu3sse fu4sser fuss3p fuss3t fu2ß1er 3fut 2füb fühl2sc fün2 fü2r fü3s2 2fv 2fw fwur2 2f1y 2fz fz2a fzeiten4 fzei4tend fz2ö fz4wi 1g 2gabf 2gabg 2g1a2b3l gab2o gab4ri 2gabsc g2abt. 2gabtr ga3bu 2gabw 2gabz gade2r ga3d2i gadi4e ga2dr gae2 ga3fl 3gag. ga3k ga4kt ga4ku gal2a 2g1alau 2g1alb g1alg gall4e gal3lo 2g1alp 2g1alta 2g1altd g1a2lu ga4mec gam3ma 3g4amo 2g1amt g1a2na 2ganal gan3d2 2ganf 2ganga 2gangeb gan2gr gang4sp gan2g1u 2g1ank 2ganl 2ganmu 3gano ga2nob 2ganr gans2 2g1ansi 2ganst 2ganw ga1ny 2g1anz ga3pe 2g1app 3gar. g2ara 2garc 3g2ard ga3ret ga3r2i 2g3arm ga3r2o 2g1arti ga3ru 2g1arz ga2s g2as. ga4s3al ga4sam gasche2 gase2 ga5se. ga4sei ga4sel ga4se4m ga5ses ga4set gas3pe gas3s4 3g4asse. g3asses 4gassess ga3ssest gas5st gas6st. ga4st3el ga3sti ga4stin gastra4 ga4stras3 gast3rä ga3stri ga4strom gas3tu ga3su ga3t2a 2gatm gat4r gau1c 2g1auf 2g3aug g2auk gau5ne 2g1au4s 2g1aut ga3z 2g1äp gär3th 2g1ärz gä3s gä5ste 2g1ät gä4us 2gb2 gbau5s g3be gber2 gbi2 gb4ri 2g1c 2gd g3d2ad gda3de g2d1ak g2d1an g2d1au gdä1 g2dei2 gd1els g2dent g2d1er g2d1et g2d1in g2dop gd3re gd4ri gd3ru gd3s2 gdt4r ge3a2 ge4at. ge4ate geb2a 3gebä ge4bb 3gebi ge3ble geb2lin geb4lo gebot4 ge4bt 3gebü ge1ch ge1e2 ge3ec ge2es geest3 ge3fa 2gefak 3gefä 4g1eff gef4l gef4r gege2n gegene4 ge3g2l geg4r 3geha 3gehä geher3l ge3ho ge4hs ge4ht ge3hur 2g1eid ge4ie2 ge4ig ge1in ge2inf gein2h gein3i 2g1einr gein2s gein2v ge1ir geis4 2g1eise gei3sh geiss3c gei2sta geist3r ge4iz 2gek. ge2lanz gelb1r gel2b3ra gelb5s 3ge4ld gel2den gelder2 gel4derh gel4ders ge3lec ge2lef 2g3e2lek 2gelem gelen1 ge2lene geler3l geler3ö ge2l3ers ge2l1ev gel3f gel1i4m gel3l2a gel3le gell2i gel2ö gel3s2a gels2p gels4t gel3sz ge4lt gel2ta gelt4r gel3z4 gem2 ge2ma. ge3mau gem4e 4g1emp gem3s ge3mu ge3na ge4n1ac ge4nad ge4nak ge4nal ge4nam ge4nap ge4nar ge4nat 2genda. gend3in 2g3endmo gen2dr gen2eh gen3eid 2generg ge2n3ern gen4erwe gener2z ge2nim gen3k4 genmas2 genma5sse gen3n 3geno ge2noc ge4nr gen4semb gen3sk gen3sz gen3tä 2gentf gen3t2h gen5tr 2gentw ge2nun genzma3 genzmas4 ge1oo geo2ri g2ep ge5pfi ge3pl ge3po ge1ra ge2ra2b ge2rak ge2r3al ge3rann ge2rant ge4r3a2r ger2as ge4rb 2gerdg ge3rem ge2rene ge2reng ge2ren2s ge2r3ent ger2er gerin2d gerin4f ger2inn gerin2t 2ger2klä g3erlas 3g2erlä germas4s ger3no 2g1ernt ge1ro ge2rob ge1r2ö 4g3erprob ger2sat 2g3er2seh ge3r2u ger2zeu g4es. ges2c ge4sche. ge2s1eb 2g3e2sel. ges3elt ge2s1er ge3sha ge3s2i ge3so ges3s2a gess4t ges5ste gest2 gest4a gest4e ges3th ge2s3tur ge3t2a g1etap ge2thi ge5trei ge3t4u 2g1e1ul ge3unk ge1urt ge3u2t ge3we 2g1e2x 2gf2 g3fe gfi2l gf4rü 2gg gga2t g3ge gge2ne gges2 gge3sa ggi3e gg2l g3gla g3glo g2g3n gg4re gg5re. 2g1h gh2a 3ghale gh2e 3g2het 3g2hie gh1l gho3re 3gh2r ghs2 g2hu gh3w gi3alo gich2 gicht1 gi2e gi4eb gie3g gie1i gie3l giel2a gie5n2e gi4eno gi3ens gie3res gi3ern gies4 gift5s gi2gu gi2kel 3gime gi2me. gi4mes gi2met 2gimp 2gin2d gi3ne 2g1inf 4gingeni 2gin2h g1i4ns gin2sa 2ginsf 2g3int 2gin2v gi2ob 2giok 2g3isel gist4 giste4 git2a gitt2 gitt4e gi4u3s 2gj 2gk2 gk4ne g3ko gl2 2gl. 2g1lab 2g1lac 2gladu 2g1lag 2g1lam 2gland gla2s1c glas3p glast4 gla4str gla2stu gl4at 3g2laub 2g1lauf 2gländ 3gläs g1läß 2gläuf gl3b g2le 2g3le. 3glea 2g3leb g3lec 3gled g3lee 2g3leg 2gleh g4leic 4g3lein glei4str gleistra4 gleiter6sc glei4t5r g3len 4glenk 4g3ler glerei2 2gles 3gles. g3lese g2lia 2glib 3g2lid 3g2lie 4g3lieb 2glif g2lik 4glil g2lim 2glin g2lio 2glis g2lit g3lite g2liz g3lize g2loa g2lob g2loc 2g3loch g5loks g2lom g2lop 2glorb 2glos g2lot 2glöch 2glös 2glöw 2gls g1lu 2g3luf 2gluk 2g3lun g2lut 3g2lü g3lüg 2glw 3g2ly 2gm2 gmen2tr gmi2s g1n 2gn. g2n2a g4na. 2gnac g4nad 2gnah gn4al gna2ler3 2gnanl 3g2nä 2gnb 2gnc 2gnd gn2e g3neh 2gn3ent gne2tr 2gnf 2gng 2gnh g2nie g2nif g4n1in 2gning 2gnint 2gni2s3 gnise2 2gnk 2gnl 2gnm g2no1 3g4non g3not 2gnp 2gnr 2gns 2gnt 2gnu 3g2num. g2nü 2gnv 2gnw g2ny 2gnz 3go. go2a go4al goa3li g1ob gobe3l 2go4bj g2ob2l go4bs go4ch goe3 2g1of go4fe 2gog go4gh 2g1oh2 goh3ren go1i2 gol2a gol2da gol2fr go4mn 3gon. go4nat go4nd gon2e 3gons 3g2opa gopf4 go2pos 2gopt gor2a 2g1o4rd g1org go4rt 3gos go2si go2sp go4ss 4g1osz 3goß go3th go4tt got4terb got4t3erg 3gou go1y gö4fe g1öl 3göt 2gp2 g3pf gp4fu gp4la g3ps g3pü 2gq g2r2 g4rab gra2ba gra2bi gra4bl 2g3radl 2g3rah g3rai 2g3rak gr4al gram1 grammen4 gram4m5end gram4mer g3rand g4rande 2gra2r grar1e gra3rie gra4s3a gra6shi gra4sp gra4str 2g3raub grau5f 2graum grau3sk 2gräd g3rän gräs5c g3räu 2gre. g4reb 2g3rec g3rede g4ree 2g3ref gre2fr 2grege 2g3reic grei4fr 2g3reih g3reim g3rein g3reit 3g4rem 3g4ren 4g5renn gre3no gren4z3ei grenz3w g4rer 2g3rese gres4ser g3ret g3rev 2g3ric gri2e 4g3riem g3riese 2grig gril2la 4g3ring 4g3rinn gro2b3a gro3ber gro2bl gro2b3r grob3s 2groc 2groh 2g3rol gr4om gros4 2g3rose g4ross gro3sse. gro5ssen. gro5sser. gro5sses. g4roß g4rot 2g3röc 2gröh 2gruf. g4ruft 2g3ruh g3rui 2g3rum grunder5n grun2g 3grup grus2s gru3sse 4g3rut 2g3rüc grüs2 2gs1 g2sa2 gs3ab g3sack gs3a4k g3sal g4s3alb g4sall g4salm g4salt gs2am g4s3ama g4s3amb g4s3amp gs3a4p gs3ar g3sat gsa3te gsau2g gsau4r g2sä gs4ät g3säu gs2c g4sca g4s3ce gsch4 g5schal g4schef g5s4chi g5schn g3schu g5schü g4scl g4s3co gs3d gs5dor g2se2 gs2e3h g5s4eil gse4kl g3sel. g4sela g3seln gs3em gsen1 g5seni gs2enk g4ser g3sere gser1i g4se4s gse4t g4seu gsfi2l gsh2 gs3ha g2si gsi2d g3sig gs3i2k g3sil g4s3io g4sis g4s3ita gs2ki1e gsmas4sen g2so2 g4so4b gso4f g3sol gs4on g4s3op gs4oz g2sö g2s3p gs4pac gs4pant g5spei g3spek g4spf gs4pir g4spl g3s4port. gs3s2 gss4t gss4w g4st. gs3ta g2stab g3stad g2staf gst1au gs3tä g2stät g4stee g5stein gst2el g5stell g4s3temp gste2r g4sterei g4sterm gst3err g4s3test g5steu gs3th gs4tha gs4thy g3sti gs3tier g4stis g3sto g4stoch g4stod gs3top g4s3tor gs3tot gs3tö g5stör gs3tr gs4tras gst3reit gst4res g2streu gst3rit gst3ros g2stru gs3tu gs3tü g2su gs4uc gs3un gsü3s g3sy 2gt g3te gt1h gt2hy gt2i gti2m g3to gt4ra gt2se gu4ale gu3am gu1ant gu1as gu4d3r gu2e 2gued guet2 2g1uf gu4fe 2g1uh guil3 gu3ins gu1i4s gum2e 3gumm gummi1 gun2e 2g1unf gunge2 2gungew 2gungl 2g1u2ni 2g3unk 2gunr 2gunt 3gur gure4 4g1url gur2t3h gur4tr gurt3s gu4s3a gu2sä guschi3 gus3se. gus3ses guss1o gus2sp gus4s3t gust3a2b gu2stap gu4stein gu4st3en4d gu3sti gu2str gu2ß1 gußt2 gu2t1 gu3te gu4ter2h gut2s3p 2güb 3gür3 2gv 2gw gy4ar gy3n gy4na 2gz2 gzeu2gi g3zh 2ha. hab2a hab2e hab2i h1ablu 2habn h1a2br h1abs 2habw ha2ch3en ha2cho 2hada ha2del hade2n h1adle h1a2dr ha3dri 2hae ha3el ha4far haf2e h1affä haf3f4l h2aft haf2tr haf4tre haft4s3p hag2a h2agg ha3ha h2ahs h2ai 3hai. h2aj 2haka ha4kes ha3kl 2h2al. ha3l2al halan2c h1a2lar ha2lau hal2ba hal4bel hal2bin hal2b3r hal2bu 2hale 2halh hal2i 2halk hal2lei haller2 hal4leu hal4lo2k ha3lo 2halp hal2sp hal2tal hal2tei hal2t5r hamot2 hampi4ons 2h1amt h2an. 2hana ha2nal ha2nan han2au 2hanb h2anbe h2and han2da han3den han2d3er han2d3r ha2nem hanf1 han2fl han4g3end han2gro hang3s3 han2k1 2hanl 2hano 2hanr 2hanz hao2s 2h1ap 3h2ape ha2pl ha2po ha2pr ha3ra h1a4rab 2harb 2harc h2ard har2fr h1arm. har3ma h2arme har2me. har4ne ha2rom 2hars har2th h1arti h2arts har2za h2as 2has. 2ha3sa has4c has4h has2p has4sa has2ser2 hass3t has6sti ha4str ha2ß1 h1aße ha2ta hat2i h3atl ha2t3r 2hats hatt2 h1audi h1aufb hau3f4lie hau3f4lo 2h1aufm h1aufs h3au3g2 h1aukt hau2sa hau4san hau2s1c h2ause hau2sel hau4s3ent hau2spa hau2spe hau4ss haus3sen4 hau4s3ti hau2sto hau2sur h2aut. hau2t1a hauten4 hauto2 hau2t3r ha2ve. havil2 häde2 h1äff 2häi hä2kl 2h1ärz hä4s5chen hä4ss 2h1äst 2häug häu2s3c hä3usp 2hb2 hba2ras hber2e hb4ri 2h1c 2hd2 hdan2 hdä1 hd4ri h3ds 2hea he2ad he3as he3be heb3eis he2b3l he3br he3bu he3ch2e he3chi he1cho h3echs hed2g he2dit he1e4m he1e2n he2en. hee2s he1e2t h2ef. he3fab he2fan he2fau he2f1ei he3f2em hef3erm 2heff he2fid he2f3in2g he2f5le 2hefr hef4ra he2fre 3heft he2fu he3gu he2hel hei4a h4eib h1eie h1eif hei4fr h1eig he2im hei2mal hei2mei heim3p hei4mu 2hein hei4na heine2 hei2n3eb hei2neh hei4nene hei2n3er2 he2inf h3einsp 2heio 2he1ism heis4s he1i4st h2eit he3i4ti heit4s3 h1eiw hekt3a he2la he3lag hel1an hel3au hel1ec he2lek h3elem he2len h2elf he3li hell2a hell3au hel2lic helm1a hel2man hel2mei he3lo he4lof hel2or he2lö 4helt h4em. 2hema hema4s3 hem2b 1hemd 2heme2 h2em2i he3mid h3e2miss 1hemm 2h3emp h2en. he4n3a2 he2nä hen3ebe henen1 hen3end he4nene he4nens he4nenz hen3erg he2nerm he2n1e4t 2henga hen2gag hen2kan hen2kau 2heno heno3t hen2sem hen3st2 hent2a hen2ter hent4ra h1ents 2h3entw h3entz he4n3u hen3z2 2he2o he3on he3op heori2e he3pa he3ph h1e2pi h1epo hept2 h2er. her3a2b he2rad 2herap he4r3a2r herau2 herb2 her3c her2dri h2ere he2r1e2b he2reck her2eif 2he3reig herein3 he4reis. her5eises he2rel he2rene herer3s he4rersc he2rerw h4erfam h1erfo her2fol herg2 4her4gebn heri2e 2herif herin2d herin4f he4rin4nu herin2s herin4ter h1erke her2klä h3er4kran h4erlad 2herm herma3s h1ernt he3ro he4r3o4b he4rof he4rop he4rot h1erör hers4t her3sta hert4 her3th her3um he2rut h1erwä her2zap her4zeng her2zer h3erzeu her2z3w he3sa 2hese he3si hesi2e he3s4p hes2ser he2tap he3tä hete1 heter2 he3th het2i he3t2s he2u heu3g h3eule. he3unt 3heusc he3x he1x4a he4xd he4xk he4xl 2he4xp he4xt hey2 he1ye 1hè 2hf2 hfaller4 hfan2 hfel2l3 hfi2s hf4la hflei2 hf4rü 2hg2 h3ga hgas1 hga4sen h3gr hg4ru 2h1h2 hhoh2 2hi. 2hia hi2ar hi1as h1iat 2hic hi1ce hich4t3er hicht4sp hi3d hi4db hi4dd hid4e hi4dio 2hido hi2e hi3ens hie2rei hier3i hie2rin hiers2 hif3f4r hi2k3r hi2l3a4 hi3l4au hilen2 hil2fr hili2e h2im 2hima h1imb h3i4mit h4imm h3impe h3impl hi2n hi3nak hi3n2am hi3nap hi5n2as hine2i hi3nel hin2en h1inf h1inh 2hi3n2i hin3n2 hi3n2o3 hin2t1a 2hio hi3ob hi4on hio3p hi2p3 hi4pl hi4pu hi2r hi3ra hir3b4 hi3re hi3ri hir2m1a hir2mi hirn1 hir2ner hir2s 1hirt 2his. his2a hi2se h1i2so his2p hi2spa hi3tac hi3th hi3t2i hit1r hit3z2e hi2v1o 2hj 2hk2 hkamp2 h2keu hki2n1 h3kl hklat3 hklo3s hk4ne hk4re 2hl hl2ag hla2gr hlam4meng hlan4d3a hl1anz h1las h1lat h1laut h1lay h3läche h3läd h4läf hl1är h1läs h1läß h1läu hlb4l hl3d2 hld4a hld4r h3le. hle3a h3leb h3led hle3e h2leis h3leist hl1el h5len. hle4nas hl2enn hl3entr h2lents hl2enz h3ler hle2r3a hl2ere h2lerg hler2hö hl2erk h6l3er2nä hle3run hl1erw h4lerz h3les h4lesi h4leud h2lie h3lied h2lif h2lim hl1ind hling4s h2lip h2lis h3list h2lit1 hl3l2 hlle3b hl3m2 hlma3s2 h2lo hl1ob h3loc hl1o4f h3log h4lor hlo2ra h5lorb h3los. h3losi h4loss hlos4st h4lo2ß1 h2lös3 hlö4ss hl2sal hl4sar hl2ser hl3ska hl3slo hls4tec hls3tie hl3str hl2su hl3t2 h3luf h3luk h3lumpe h1lüf hlz4w 2hm h3mad h3mag h3m4ak h3man h2mant h3mar h4marc h3mas hma3sse h3maß h3mä h4mäc h4mäh h4mäl hm2e h3me. h3med hme1e4 hmeer2s h3mein h3meise h3meist h3meld hme3le h3men hmen2s hmen4s3p hme2ran hme2rei hm3estr h3mex hmi2e h3mind h3mirr h3misc h2mo h3mop h3mot h3m2ö h4mök h4möl hm3p2 hm2s3p h2mu h3mul h3musi hmut4s h3my 2hn h2na h3nag h3nam h4nar hn3a2te h4natt h3nau. hn1äh hn1är hnä6sse hnbau3 hn3d hnd4r hn2e hne3b hne2e3 hn3eff hn3eig hn3ein h2nel hne4n hn4eng hne4pf h3ner hner2de hner3ei h4n3e2ro h4n3ersa hn3eur hn3ex hn3f2 hnf4l hnflei4 hnhof6stra6s h2nic h2nid h2nie hn1im hn1in h2nip hni4sa hnk2 hn1ob h2no2r hnra2 hn3sa hn3s2p hnst2 hnsuch2 hn2th hntra4 hnts2 h2nul h2n1unf hnz2 h4oben ho3bern ho2b3l ho2c hoch3 2hocy 2hod 2ho2e hoe3n ho3er ho4f3a4 ho4fä ho4fed ho4feu hof3f4a hofi4 ho4f3l ho4f1o ho4f3r ho4fu ho4fü 2hoi ho2l1a hol3ar hol3dr 1hole ho2l1ei ho2lem hol3g holin2 hol3k holl4 2holy h3olym 1holz hol4zene hom2e ho4me. ho4mec ho4med ho4mel h2on hond4 hon2er honi2e ho1on hoo2r 2hop ho2pe ho1ra ho2rak h1o2r2an ho2rau h1or3d 2hore ho2rens ho3ret hor2fr 2h1org hor3ta hor2ter h1ortu h2os. hos3a ho3se2 ho4sei ho3sl ho4sla 2hosö hos4t ho2str ho2ßene 2hot. 2hotr 2hot3s2 ho3un 2ho2w1 ho3wer h1ox ho1y2 2hoz 1h2ö 2hö. hö2c 2höe 3höhe hö2s1 h4ösc hö4ss hös3se h3ö4st 2hp2 h3pf h3pu 2hr hra2b hr3ac hr3ad hr1a2g h1r4ah h1rai h3ramp h1rane hr3ap hras3s hrau2c h3räu hr1c hr3d h2rec h3r2ech h3red h3ref hr3eff h2r1eh h4rei. h4reib hrei2ba hrei2br h3reic h3reif h4r3eig hr2eini h2reinl hrei3th h4r3ele hren3z h3rep hrer2fo h4rer4geb hr2erh hr2erk h4rerla hr2erle h4rer4leb hrer2lö hr2erm hrer2sa hrer3st hrer2tr hrer4trä hrer4tüc hr2erw hr2erz h3re2s3 hres5s4 hrest2 hre2t h2r1eta h2r1eu h2rev hrg2 hrga4 hrgu4 h2ri h3ric hri2e h3riesl h3rin hr1int h4rist hr3m2 h3rog h3roh h3ro2l h4romat h4rome h4romi h4romo h4ron h1ropa hro4r h3rou h3rö2s hr2s1ac hr4s3and hr4sau hr3sch hr2s1em hr2sen hr3sena hr2s1er hr2set hr4sh hr2sin hrs3k hrs3l hr2s1of hrst2 hr4stec hr4stele hr2su hr2tab hr2tan hr2te2l hr2th hr2top hrt3ric hrt2s hrt4ste h3ruh hr1ums h3rus h3rut h3rü h4rüb h2ry hrz2 2hs hsa2b hs3acht h2s1a2d h2s1alk hs2alt h4samt h2san hs3and h3sann h2s1as h2sath h2sato h2saud h2saut h2säh h2säug h3sc h4schan hs2cr h3se. h2s3ec hse2e h2s1ehr h2s1eie h2seind h2seins hsela2 hse2lin hs1emi hsen3erg h2s1ent h2s1erb h2s1erf hs1erg h2s1erh h2serkl h2s1erl h2s1ern h2serö h2s1ers hser2u h2s1erw h2serz h2sex h3s2ext hsha4k h2s1i2d hs2im h2s1ing h3s2inni h4s3ita hs2kal h3skand hs1of h2sofe h2sop hs1or hs2p h2s3pac h2s3pani h2s3par h2s3pat h3spei h2sper h2s3ph h2s3po h3spoi h2sprä h2spro hss4t h4st. hst2a hs3tabl h2staf hst3alt hst3arb h2s3tau h2stäl h2s3täu h4stea h4stele h4sterm hs3the h2s3tier h2stin h2stit h2s3tol h2s3tor h3stö hs3treue hstro4 h2s3tu hs4tub h3s4tun h3stü h2s1u hs2ung h3sy 2ht ht1a h2tab hta2bl h2ta2d ht2ag ht2akt. ht2akte ht2al h2t3all h2talo h2talp h2t3alt hta4m h2ta2n ht3ane h2tap h2ta2r ht2as h2t3asi h2tasy h2t3at h3tat. h3tate h2tau h3taum h4tax ht1ä h2tär h3te. hte2ber ht1ec hte3cha hte2d h2t1ede ht1eff ht1e2he h2teif h2t1eig h4t3eilz h2t1eim ht1ein h2t1eis h2t1eke ht3elas hte4l3ei. h2telek h2t3elfe h2telit ht1e4mi h2temp h3ten. ht3engl ht3en4ta h2tentf hte3rel hterer2 h2t3erfo ht3erfü h4terfül h4tergeb ht3ergr ht1erh hter4häl hter4höhu h2terkl h4terleb h4t3erleu h4terneu h2t3ernt h4ter4prob hter4reg ht3erspa hter4spar ht3er2st h4tersta ht4erstr hter4tra ht3erwä h2t3erze h2t1ese h2t1ess h2teta hte4th h2t1eu h3teum h3teun h2textr h2t1h h4thei h3thera h3thes h4thi h4tho h2t1i2d h3tig h2t1im h2t1i4n3 ht3ine h2t1is h3tisc hti3t2 htni2 hto2 h2t1ob htod1 h2t1o4f h2t3oly h2ton. h2tope h2tord ht3rak h3tran ht3rand h2t3ras ht4rates ht3rau h2traub ht4raume ht3rec h5treck ht3rei h2t3res ht3ric h2t3rieg h2t3rin h3trit h2t3riv h2t3rol h2t3ros h2t3roß ht3röm ht3ru ht2sah ht2sal ht4s3a4n ht2scr ht2sein ht2sel ht2s3end ht2seng htse2r1 hts3eri htsha4 ht3shak ht4s3kr ht2s1o ht2sp ht3spen ht3spre hts3tät ht4s3tem hts4tie ht2stip hts3trau ht2stri ht2s3tur ht2s3tür ht2su htti2 htt4r htu2e h2t1urs ht3z2 hu2b1a hu2bei hu4bel hu2b1en2 hu2bi hu2b3l hu4b3r hu2bu hu4fa hu2h1a hu2h1i hu2ho h1uhr h1uhu hu2kä hu2k1in huk3t2 hu2l3a2 hu4lab hu2lä hule2 hu2l1eb hu2l1ei hu2lem hu2l3eng hu2lent hu2l1er2 hu2let hu2lid hu2l1in hul3l2 hu2lo hu2l3ö hul3s2 hu3m2a h1umh h1ums hu2n h1una h2und hun3d2e hun2e 2hunf hung2 hun3ge h1uni 2hunt h1ups 2hur hur3g2 hur2t3h hu3sa hus3h hu2so hus2s3a hus3se hus4ser2 hus2s1o hus2sp hus4st hu2ß1 hu2tab hu2ti hu2t1o hu2t3r hut2t hut2zen hut2z3er hut2zu h2ü h3über h4übs h3übu hüf2 hüft1 hühne4 hüs6tel 2hv hvil2 2h2w2 h4wall hwe1c h3weib hwei4fr h3weih hweins3 hwein4sa hweis4s hwen2ka h3werbu h4werp h4wirr h3woh 1hyd hy2de hy3dr hy2lor 1hymn h1yo hy3os 1hyp hy2pe. hysteri4e 2hy2t 2hz hz2a h3z2o hzug4 h3zw hz4we iaa2 i3ad. iad2a i1adn ia3do ia3e2 ia3f4l i2ago ia1h2 i1ai i3ak. i3ake ia4kei i1akt i1al ia2l1a2 ial3ar ial3as ia2lä ial3b4 ial3d4 i3aleb i3alef i3alei ia3lek i3alel i3alemp i3aleng i3alent i3alep i3alerb i3aler2f i3alerh i3a2lerm i3a2l1et i3alex i3a2lia i3alim i3a2lin ial3l ial4ler iall2i ia2lon ia2lop ia2l1o2r ial3p ial3s ial3t2 ia2l3u2 ial3z4 i3am. iampe4 i1ams i1an. i1an2a ia2nal ian3alt ia2nau i1anc i3and2 i1a2n1e2b ia3n2er i1ann i1ans ian2s3p i3ant i3anz ianza4 ia1o ia2op ia3pf i1ar i3ar. ia2ra i2are 2ias i1as. i4asc i1asg i4a3sh i2asi i1asm i4aso i4a3s2p i1as3s iast4 i1ast. i4asu i4asy i3at. i3at2h i4athe 1iatr i3ats i3au ia3un iau2s3 i2az 2i1ä iä4mi i3är. i3ärz i3ä4tem iä2ti iät3s2 iät5sa 2ib ib1art i2b1auf i2b1aus i2baut ib3be ib2bli ibe2i i2b1eig ib3einh i2b1eis ibel4u iben1 ibe4na i4ber4geb i2b3er2la ibe1ro i2bim i2b1in i2blad i2bläh ib3leis i2bleu i3blu i3b2o i2bö ib3ric i2b3roc ib2ser ib4s5te ib2un i2b3unk i2b3unt ibus3 ibus1c ibus4t 2ic i3ca ic1c ich1a2 ich4art. ich1ä i1che ich1ei ich2er icherin5 ichermas4 ichgro3 i1chi ich1l ich3le ich3li ich6lor ich3m ichmas2 ich5mä ich3n i1cho ich3ort i2ch3r ich2sa ich4sele ich2s1i i4cht ich3terz ich2tr i1chu ich3w i1ci icks2p ickt2 i1cl ic3la ic3ra 2ida id2ab i3d2ac id4al id1a2n i3d2ans i3d4at id1au id2ax idä1 idbu4 id2e i2dea 1idee ide2en id3eis 2idel idel4ä i2demul ide4n1o iden3te ide3ran iderin4f iderin4nu ide1rö id3er4reg i3des ide5sa ide3so ides4p 2idf 1i2di2o idi4on i4diot 2idk idni3 i2dol 2idoo i2dö i2dr id4ro id2sp 1i2dy ie3a2 ie2bä ie2bl ie2bri ie4b3rü ieb4sto ieb4stre ie1c ie2cho iech3t ie2d3an ie3de ie2dr ie1e2 ief3akt ie2f1an ie2far ie2fau ie2fäh iefe2m ie3fer ief3f4 ie2f3l ie2fonk ief1r ie2fro ie2gl ieg3li ie3g4n ie2g3re ieg2s iegs5c ieg6sch ieg4se ieg4si ieg4st ieg6ste ie3her ie2h1in ieh3r2 i1ei iein3 ie1ind i2e2l1a ie3lam ie4la2r ie2läs iel3d4 i2ele iel3ebe iel1ec ie2l3eic iel3eid ie2lek i4elen ie2lene ie2leng iel2erd ieler2e ieler4fi ieler2g ieler6lebn iel2erw ieles2 i2eli ieli2d i1e4ll ie2lo4b ie2lop ie4lor i2els2 iel3sz ielt2 iem2e iemis2 i1en i3ena ien1a2g ie4nas ien3au i3enä i3enbr i2ene ien1eb ie2n1e4k iener4fo iener4la i3enf i3eng4 ienge2f ienge2z i3enh ie2nid ie2nim ie4nin i3enj i3enk i3enm ienma3s2 i3enn i3e2no i3enö i3enp i3enr ie4ns2 i3ens. ien3sk ienst5ade ien4st3er ien4stop ienst3rä ien3sz ien4t3ar ien3te i3enti ien3tr i3env i3enw i3enz ie1o2 ieo4b ieo4f iera2 ie2r3ad ier3al ier3an ie2r3ap ierb4 i3erbun ier3d i2ere ie2reck iere3ins ie2r3eis ie5rek ie3r2er ier3erf ierer3k ierf4 ierg4 i3ergi i4eri ierin3 ierk4 ierken4 ier3l ierma4ss i1ern i3ern. ier3n2a i2erni ie2rö ier4re. ier2s3eh ier3sei ier3sta ier3te iert2i ier3z2 2ie3s2 ie4s3an ie4sb i2esc i2ese ie4sf ie4sg ie4sh ie4sj ie4s3k ie4sl ie4sm ie4sn ies3o ie4sof ie4spu ie5sset iess3ti iest4e ie4sv ie4sw ie4sz ießer2g ie4t1a2g ie2t1ak ie2tan ie2t1ap ie2tat ie2tau ie4tent ie4t3erh ie4t3ert i4ethe iet3her ie2t1ho ie2thy ie2to ie2t3ö2s ie2t3ri ie2t3ru iet2se i3ett iet3zw ieu2e i2e1un ie2w3u i1e2x ie3zo 2if if1ab if1ang if1ar i2f3arm if4at i2f1au if1än i2fec i2f1ef ife4i if1ein i2felem ifel2s3o if2e4n1 ifens4 i2f1erg if1erh if2fa iffe4s if4feste if2f3l if2form if2fro iff2s iff4ste if1ins i2f3l if1lac if4lä iflo4 if4los i3f4lü i2f3r i3fre i4fre. i4freg if4rev if4rö ifrü4 if3sa if2t3a if2ted if2t3ef if4t1ei if2te2l if2tep if2terk ifte4s if2t3esc if4th if2t1op if2t3r ift3sp ift3sz if2tur i3fy 2ig i2ganb i4g1ano i2garb ig1art iga3s i2g3att igd2 i4gebrau i2gefar ige2füg 3i2gel. ige3lau i2geln ige4me ige2mis ige4na ige4nene igener4f ige2nid igen5s ige2o ige2pa ige2ra igerma3 ig3erwer ig1erz ige2sel i2g1ess ige4steu ige4stim ige2tra ige4tre ige2woh ig3hu i2gim i2gl ig1lau ig1lä i3gle i4g3led ig3lim ig4na ig5nah i4gnä i3g4neu ig4no igo3p i2g3rad i2g3re igro3 i2grou igs2a3g ig4sal ig3sä ig2scha ig2schr ig3s2o ig3sp ig4spa ig4sti ig4s3to ig2stö ig4stra4s ig2stur igs4tü ig2t3r 2i1h i2hans i2har ih1auf i3he ihe1e ih1elt ihe4n ihenk4 ihe3u ih3m ih3n ih3r2 ih2s ih3sti ih1um. ih3w ii2 i1ia i1ie i3ig i1im i3in i1is ii4sc ii3t i1it. 1i2js 2ik ik1aka ikaken3 i2k1akt i2k1alb i2k1alt ik3amt i2k1ana i2k1ang i4kantei ikanten4n i2kanth ik1art ik3att i2k1au ik1äh i2k1än i2k1är i2keb ik1ebe i2k1ed i2k1ef i2k1ei ike4l1 ike2n1 ik1en2s ik1ent ike2ra i2k3e4r2e i2k1er2f i3kerfam i2k1er2h i2ker2l i2kero i2ke3ru ike4t i2k1eta i3ki. ik1i2d i3kie ik1in i2kins i2k3l ik4län i3k4leri i3k4let ik4lim i3klu i2kne ik3nu iko3be i2k1off iko3p2 ik1o2r i2köl ik3rä ik3re i2kres ik3rin ik4ris i3kro3 i2krö ik3sa iks2p ik3s2z ik3ta ikt3erk ik2t3esk ik2t3re ikt2u i2k1uh i2kup i2kü i1la i2lab i2l1ac i2l1ak il1a4ma il1ana il1ang i2l1anm i2lano il2anz ilan4zer i2larb il1asp i2l1au i3laub i3l2aufb ilau2s i1lä1 i2l1är 2ilb ilb4l il2c il5chen il2da il2dä ild3ebe il2d3en2t ild2erp ild1o il2dor il2d1r ild3t 2ile il1ec ileid4 il1ein il1el i2l1emb i2l1e2mi ile3ni il1ent i2lentl i2lents i2l1er2d iler2ei il1erf iler2fo i2ler2g i2l1er2h i2ler2kl il1err i2lerri i2l1er2w i3l2erz ile4th il1ex ilf2 il2f3l il2f3re ilf4s3 il2gl 2ilh 2ili il4ia ilie4n3 iliga2 ili2g3ab ilik4 i2l1ind i2l3init il1ins i2l1ip ili3pf il2lad ill2an ill4ant il2lä2 il4lb il2leg ille4ge il2lenn il3l2er il4lm 1illu illu3s il2mak il2m1ap il2m1au ilm1ei il2min il2m1or 2ilo il2oh il4on il2op i2l1o2r i3l2ou i3lov il1ox ils3ent ils4to ilt2 il3th i1lu iluf4 i2lum i2l1ur ilü4b 2ilv il2zar il2zau ilz3erk il2zwa imad2 ima1i im2al im3anh i2mans i2marc im3aren i2m1arm i2m1art im4at ima2tr imat3sc ima2tur im1aus i2maut im3b i2meg im1ein i2mej i2mek i2mele i2melf im2en i2m1er2f i2m1er2l i2m1er2z i4me3sh imes3s4 i2meti i2mew imhau2 i2mid im1i2de i2mim i2m1ind i2minf i2m1ins 3immatr immen1 im2m3ent im2mit 1immo im4mo2d im2mö imni2 2imo i2m1ob i2mop imo3re i2mö 1imp imp2fa im3pf2o imp2s im3pse 2imt imt2e im3t2i imtu2 2imu im2um im1urk 2in. ina2be in3abu in1ac i4nack in1ad i3nald inaler2 ina2lin in2alp i2n1am in2an in3an. in3ana in3ann i5nar. in2ara i2narb inas2 i4n1asb in3att i2n3au2 2inä i2n1äh in1äs 2ind. inda2 ind2ac in2dal in2dan 2indä 2inde. 2inden in2dene inderer4t inder3t inde3sp indes4t 1index in4dh ind2i 1indik in3dö 2indr ind4ri ind3se ind3sp ind4spe 1indus in3d2ü 2ine in1ec i3nee ine2en i2neff in2elen ine2n1 ine3nä i2nener i4nen2zy ineo4 i3ner. i2n3erbi in2erha i2ner2he in3erle i4ner4leb iner2lö i2n3er2tr iner4trä i3nes inesi2e in2et in1eu ine3un i3né in3f2 1infek 1infiz 4inflü 1info inf4r 2infre 2inga in2g1af in2g1a2g in2g1al in2gam ing1ar 2ingä in3gen. 3ingeni in3g2er in4g3er2w 2ingi 2in2gl ingmas2 2ingr 2ings ing4s3am ings4por in4gt 2inhaa 1inhab 4inhaltu 2inhar 2inhau 2inhe 2ini. in2id ini3de 2inie 2inig inig2a ini3kr 2inis ini3se inis4t init2 i3nitz 3inkarn in2k3ent ink4er in2kro inks3t ink4ste in3k2ü inma4le 2inn. in4nas inne4n in2neu in4ni2v 2innl in2nor 1innta 2ino in1od ino3e2 in3ols in1or inos4 i3no3t i2n1ou i1nö in1ö2d 2inr 2ins. ins2am in4samt. in3sat insch2 2inse. in2seb 2insed 2insen 2insk in3skor in4sl in4sm ins2p 3instal in2s3tät 4inst2e 3instit 2instra in2st3ro in2strü 1insuf in2s3umw ins3umz in2sur in3sz 2inta int4e 2inte. 1integ in3tei 2intep 2int2h inthi1 in3ti int2o 2intö 2in3t4r 4inträ 3intrig int3s i2n1u i4nuh in3unz inu3t 2inverm invil2 i1ny2 in3z2e inzel4ler in3z2i in3z2sc inz2u 2i1o io3a ioa4s iob2l io1c io2d io3da io3du io3e2 i2of iof4l i2oh io3k4r i3ol. io3li i3ols i3om. i3oms ion2 i3on. ional3a ion3an io2n3au i2onc ion3d2 io4nee i2onf i4oni i3ono io2nor i3o4n4s3 ion6scl ion6sfi i2on3t i2ony i2o1o i2op i3o4pf iopi3 i3opt i2or i3or. i3orc ior2e iore4n i3org io1r2h i3orp i3ors i3ort i3os. io3sh ios2p i2ost ios2u i2o3sz io3t i3ot. iote3l i4oth iot4r i3o4ts io4tt i2ou i2ov i3ox i2oz i3oz. i1ö2k i1ön i1ös. i1ö4st ip2an i3ped ip4el i3per 2ipf2 ip5fam i3pfan ipfe2 iph2 2ipi ipi3el ipi3en ip4lu ip2pan ip3pe ipp3f ip4pl ip4ps ip3pu ip2sa ip2sei ip2sp ip2sta ip4stü ipt2a ip2ter ipt3ers ipt2i ipt2u 2ipu 2iq i1r2a i3ra. 2i3rad ir4al i3ras irat2 i1rä ir1äh ir2b3l ir1c ir2ch3i ir2ch1o ir2e i3ree 2irek ire4na ir4er i3ré irg2 irg4s ir2i 2irig 2irk irke4n ir2kene ir2k3l irk4sc irk2u irli4n ir2m1a2g ir2mak ir2mä ir2m1ei irme4n1 ir2m1o2 irm4th ir2mum ir4munt 2irn ir2n3a ir4nat ir4nei ir2no i3ro i1rö irpla2 ir2rei irre4l ir2reli ir2rh irs2 ir2schl ir2schm ir2sch3r ir2sch3w ir3se3 ir3sh irt2s3t 2iru ir1u2m iru2s1 iru3te i3r2ü i3sac isa4m3 i4samp i4s1amt is2ap isa2r is3are i3sat is1att i2s3au i2säh i2s1än 2isb i2sca i2sce i2schab i2schan i2schar i3s2che i4schef i4sch3e2h isch3ei ische2m i4schemi i4scher4z i2schin i3sching i2sch3l i2schm isch3ma i2schna isch3ob isch3re isch3ru i2schüb i2schwa i4schwir i2schwo i2sch3wu i2schwü i2scr 2ise ise3a ise1e iseh2a ise3h2i is2eind ise3lad is4eli i4sel4ter ise2n1 ise4nal is2end i2senho isen3s is2ep ise2r3ei is1erg i2s1erh iser2he i2s1erm iser2u i2s1es2s is2et i2s3etat i3seth i3s2eu 2isf 2ish 2isi i3si. isi2a i2s1i2d isik2 i2sim i3sin3g4 i4ski i4sku is3la 3islam 2isma 2ismi ismu2 is1of i3soh 1i2sol 2is4o2n1 iso4nend isono2 i2sop is1ort 3isot i2s1ou is1o2v 2isp is3pan i2spar is3pe i4s3pic i2spro i4ss. i4s3sa is4s1ac is4sau i4ssä i4ssb i4s3sc iss3chen i4ssd is3senk issen4s5tü isseri4e issermas4 isser2s i4sserse i4ssf i4ssg i4ssh i4ssk i4ssl i4ssm i4ssn i4s3so i4s3sp i4ssq i4ssr i4sss i4s2st is3sta is4ste iss6tel is3sto iss3tr is3strä is3stric is3stu is2su i4ssv i4ssw i4ssy i4ssz i4st. i2stab ist3ac is4tal i4stam ist2an i2s3tang i2st1ap is3täu ist2e i4stea i4stec is4te4n ister4ras is4ti ist2id istin4f ist4o ist4ra i2strä i2stre istri3en is3tromm i2stur isu2m isum3p isumpf4 i2sü 2isy i1ß ißer2s iß3ersc i2ßerse it1ab. it1abs ital3a ital3l it1alt it1a4m ita3ne it3anr ita2po it1app itar5b it1a2re it1art i3tat it1au i3tauc i2taut 2itä it1änd i2t1äs ität2 it1eff it1e2he i2t1ei i4teic 2itel ite4l1a i2telek it1emi i2temp ite2n i3ten. itens4 i2tents i2tepo i2t3er2fo iterin4d i4ter4klä it2erö i4tersche i2t1es2k ite3sp i2t1ex i3text 2i2th i4th. i4thä i3thr i4ths i4thü i4thy 1itia i3tic i2t1id i3tig 1itii iti2kr it1in i3tis i4tiso iti3sp i4tiss i3tiv iti2v5a itiver3f it3le itmen2 2ito i3to. it1ob i3toc i2t1of ito2p it1orc it2os 2itr i2t3rad i3tradi it3raf it3ras it3rau it3räu it3re i4tren it4ret i3trie it3rob it3rom i2t3run it3rut 2its it2sa its1a2g it2s1e itse2h its3e2r1 it4sh it4sm its1or it4stec it4s3tem it4s3tes it4stra4s its3trau it2sur 2itt itt3ac it2teb it4temp it3ter itt3erfo itt3hä it2tob it2top it2tri itt4schi itt2se2h itt2sei itt2sp itt2sti itt4sz it1uh it1ums it2ung i2tuns ituran2 it1urg i3tus itut4 ityl2 2itz itz3erg itz3erl itz2erw it2zö it2z3w 2i1u2 i2u3l i3um3 iuma4 iump2 ium4se i3un2 i2up i3us ius3t i1ü iü4be 2iv i2v1ad i2v1a2g i2v1ak i2v1am iv1an iv4at i2v1ä i2veb i2v1ef iv1ei iv1elt i2v1ent i2v1ep ive3re iv1erh iver4kl iv1erl iver3s i2v1ex ivil3l i2v1im i2v1ind iv1int i3vol ivo3re i2v1r i2vun i2v1ur i2vü 2iw iwur2 2i1x i2xa ix2em ixt2 i1y 2iz iz1a iz2ac i2zag i2zan i2zap iz2arr i3z2as i2zat i2zau i2zä i3ze iz2ei izeits2 i2zele ize2n i4zener i4zentz iz1erg i4z1erl izid3 iz1ir izi4th izo4f i2zö i2zuna i2z3w i3z4wi í1 ï1 1j j2a jab4r jah4r3ei jahr4s ja3l jal2a ja4lt ja3ne jani3t4 jas2o jat2 2jd2 jda3 jd4an je2a jean2s je2g jek2t3a jek2ter jek2tin jekt3o2 jektor4 jek2t3r je3na je2p je3r jer2e je4rr je4rs je2t1a je4t1e je4t3h je2tin je2tor je2t3r jet3t je2t1u2 ji2v 2jm joa3 jo2b1 job3r jo2da jo2i jol2a jong2 jo2p3 jo1r2a jor3d2 jo2sc 3jou jou2l j2s 2jt j2u ju2b3l jude2 jugen4 jugend3 ju2k jul2i jung5s4 ju3ni ju3r jur4a jur2o ju4rt ju3t2e3 jutel2 2jv 1k ka2ans ka3ar 2k1abb kab2bl 2kabd 2k1a2ben 2kabf 2kabg 2kabh 2kabn 2k3a2bo 2kabr 2k1a4bs 2k1abt 2kabw 2kabz ka1c kade2r 2k1adm 2k3a2dr 2kadv ka3e ka3f4l ka3fr kaf3t2 kag2a ka1in kaken2 ka3kl kak6lan 2k1akt. 4kala. kala3b ka2l1a2d ka2lan ka4l3d ka4l1eh ka2lens kal3eri 3k2alk kal2k1a kal4kan kal2k3l kal3l kall2i kallö3 2k1allt ka2l1on ka2lop ka2l1os kals2 kal2tex kal4th ka2lu ka4mat kamp4f3en k2amt kan4al ka4n1a4s ka2nau 2kanb kan3d2 2kanda 2kandä kan2e 2kanf 2kanim kank4 2kanl 2kanom 2k1anor 2k1ans k2ans. 4k3antenn ka3nu kan2um 2kanw 2k1anzu 2kanzü ka2o3 ka3pr 3kara 2karbe 2karc k2ard kar3d2a 3kare 4k1area kar3ent k2arg ka3r2i kari3es k2ark 2k1arm kar4pf k2ars k2ar3ta k1arti 2kartik karu4 k2arw 3k2asc kas2e1i kasi1 kas2o ka4s3p kas4t 2k1ast. ka3sta ka4ster 3kasu ka3sz ka2tab ka2tan 3kateg k3atel kate2n ka3t2h ka2t3r kat3se katt4 ka4ue kau4fer kau4f1o kauf4s3ag kauf2sp kauf4s5tem kauf4sti k2aus. 2k1auss 2kausw kau3t2 2kauto ka3ve 3kaz käl3 k1ä4mi4 kär2 2k1ärg kä2s3c käs5ch käse3 kä3th 2kb2 k3be1 kbo4n kb4ri kby2 2k1c k3ch 2kd2 k3da kd4rö ke2ben 2k1ec ke2di 2k1eff kefi2 kege2 kegel3e ke2gl ke2he. ke2hen kehls4 kehr2s kehrs3o 2k1eic 2k1eig kei2li 2k1ein kein2du kein4e k1eis 2keise keit2 ke2l1a ke3lade ke3l2ag kel3am ke2lä kelb4 keld4 kel3eis 2ke2lek ke2l1en ke2l1er kel3la kel3l4e kell2i ke2l1o2 ke2lö kel3sk k4elt kelt4e 2k1e2mi 2k1emp k2en. ken1a ken3au ke2nä ken3dr ke2n1e2b kenen1 ke4nene ke4nens kener2n kene4t 2ken2gag k3en4gel. ke2nim ken3in 2kenlad 2kenläd kenn2a kenn2e ke2no k2ensa 2ken2sem ken3s2i ken3s2k ken5s4te ken3sz k3en2te. k3en2ten 4kentf 4kentg ken3th 2kentl 2k1ents 2kentw 2kentz kenvo2 ke3ny k2enz2 ke1o2 2kep ke2pl k2er. ke1ra ke2ran ke2ras ke2rau ke2r1ä ker2ble k2erc 4kerd k2ere ke2r1e2b ke2rec ke3reig ker3ein k3eremi 2kerfah k2erfam ker2fo k3er2geb 2kergu ke4rin4nu kerin4st kerin2t k3erken k2erko k3er2lau k3er2leb k4erlebe ker3m ker2na ker4nei 2k3er2neu kern3eur k1ero k2e1rod 2keros ker4reg k2ers. 2kersa kert2i ker4werb kerz2 k1erz. ker2zeu 2k1er2zi k2es. ke2s3a k2esc k1ese ke2sel kes3pa kes2sa ke2t1a ket2ag kete4 ke4t1eb ke4tel 2k1e2th ket3ha ket3s ketta4s kett1h 2ke2tu keu4schl 2k1e2va 2k1e2x 2kf2 kflei2 kf4lö k3fu 2kg2 kga4s1 kge3s2 k3go 2k1h2 k3he k3hu ki1a ki2ad ki2ag ki3a4k ki3a2r ki1ch ki3dr k2ids 2kidy ki2el kie2lei kiel3o 2kiern kier2s kie4sa kie4z 2kif ki3f4l ki3f4r ki3k kik4l 2ki3l2a 2kilä 2kim 3kin. ki2nä 2kindex 2k1indi 2k1indu 2k1inf k2ing kin2ga kin4g3ent king3s 2kinh k2ini3 kinik2 ki3n4o kinot4 kin3s 2k1inse k1inst 2k1int ki3or kio4s 3kir 2k1i2so kis2p kiss4 kis5st kist2 kiv2 kive4 2kiz 2kj k3jo 2kk2 k3ka kkab4 kk4ne kl2 2kl. 4kla. 2k1lac k3lamp klan2 2kland klan3du k4lar k1last k1lauf k3laug 2k1läd k2lär k2le 4k3le. kle2br k3leg 2kleh kl4ei klei2e k3leit k3lem. 3klemp kle2o 2k3ler kle2ra 2k3leu kle3us 2klic k2lien k2lif 2klig 3k2lim k2lin k3lin. 3k4lina 2k3lind k4link k2lip k2lir k2lisc 2klist klit2s 2k3liz 2k3loc 2klok 3k4lop k3lor klos4 klo3sse klost4 2klöc 2klöf k2löst k4löt k1lu k4lu4b k2lud k2lug k2lum 2klux 2k1lüc 2kly 2km2 kma2la kmas2 kma3sse k2n2 k4nac 2k5nach 2k3nad 2knah 2k3nam 2k3nar kn4at 2knav 2k3näp k3ne k4nec kne1e 2knes kne3tu 2knetz 4kney kni2e 2k3niv kno2b3l k4nol 2knorm kno4s 2knov 2k3num ko3a ko2al kobal2 2kobj kob4s koe2 kof3f2 koffe3i kohl2e kohle3i koh3lu ko2kl ko3l2a ko3le kol2k3 kol2lan 3kom komer3 4komn ko4mu k2on kone2 ko2nem kon3s4 kont4e ko2nu ko3on 2kop. ko2pal ko3pat ko3pe 2koper ko4pf kopfa2 kop2fen kop4f3err 3kopp ko3r2a kor2ba kor2bl kor2br 2k1orc korder2 kor4derg ko3re ko4rel 2k1org ko3rin kor2k1a kor4kr kor3m k1orna kor4nac kor2n3ä kor4no2 2korpi k2os k4os. ko4sk ko2sp 3k4ost ko2ter ko3t2i koti4n koti6ne kot4r kot3s2 kot2tak k1ou ko3un 3kow ko2we 2k1ox köde2 k2öf k1öl 2kp2 k3pf 2kq k3qu k2r2 2k3rad 2k3rah k4ral kras3 kra4ss k3rats 2kraum k4raw k4raz k4räc 2kräd k4räf k4räm k4rän 2k3räum 2kre. 2k3reak 2k3real k4reb 4k3rec 2kred. 2k3rede 2kredn 2kredu 2k3ref 2kreg 2k3reic kre1i2e4 kreier4 k3reif 2k3reih 2k3reim krei4sei krei2s3i 2krel k3ren 2kresu 2k3rh 2krib 2k3ric 2k3ries 2krip k3risi k4roa kroa4d kro3b4 k4roch 4k3roh k4rok k4ron k4rop kro4ss 2krot krot4r k3rou 2kröh 2kruf 2k3run 2ks ks3a2b k3sac ksa4k k4s1amt k2san ks3a2r ksa4s k2sau ksau4e ksau4f k2sav k2säh k3s2c ksch4 k2s1e2b k2s1ec k3s2ed ks1ei ks2eid ks2eif k2seind kse2le k2s1eng k2s1ent ks1er ks2ere k2serf k2serg k2serk k2serl k2sers k2serw k2s1ev k2sex k4s1i2d ks2im k2s1in k4s1is k3s2ke ks3ket ks3kl ks1o2 kso4f ks4on k2sop k2sor k2sö k2spal k3s2pat k2spä k3spe ks4pel k2sph ks2por ks2pul ks3s kss4t ks5ste kst2 k4st. kst4a k2s3tal k2s3tanz kstat4 ks3tat. k3stäl ks3th ks3tie k2stier k2s3tis k2stit k2s3tor k2strop k2stuc k2s3tum k2s3tur k2stüt k2s1u ks2zen 2kt kt1abr kt1abs k2t1ad kt1akt k3tal kt1am k2t1an kt2and k2t1a2r kta4re kta3ri k2t1au kt3aug ktau2s ktä3s kt1ein k2tek k2t1ela kte3li kte4n1 k2t1ent k4tentl kten3z kte4pi kte2ra kte3ran kt4ere kt1erg k2t1erh kter3m k2terö kte3ru ktes2 kte3sta k2t1eti k2tex k2t1h k3ther k2t1i2d kti2me kt3ind kt1ing kt1ini kt3inn k2tint kti2s1e k2tiso kti2st kti2ter kto3b k2t1of kto3ren. k4t3ram k3t4ran kt3ras k2t3rau k4tref ktro5me kt3run kt3rü kt3s4a kt3sä kts2el ktsen1 kt3si kts1o kt2sor kts2p kt3s2z ktt2 kt1ums k2tuns kt3z ktz4w ku2al ku1c kud4r ku2h 2k1uhr kuh3s ku3la ku3l2e2 ku3l2i 2kulp kul2to kul2tr k2um. 2k1umb k2um4e 2kumg 2kuml kum2s3p k2u3n2a kun3da kund2e kunft4s 2kunm kun4s kunst3 4kunt 2kunw 4k1up. kur2bl ku2rei kuri2e kuri4er 2k1urk 2k1url ku2ro kurs1c kur2s3p kur2st kur4ste 2k1urt4 kur3tsc 3kus kus3a2r ku2schl ku2sp kus3ses kust2 kus3ta ku2su ku2ß 4kut. kut2a kuto3 kü1c 3küne künf3 3kür kür2s 2kv k3ve 2kw 2kz2 kze3l k3zu 3la. laa2 la3ar l1ab 3l2ab. lab2a la2bad l2abä 2labb lab2br 2labd lab2e 2la2ben 4labf 2labg 2labh 3labi l3a2bit 2la2b3l 2labn 3lab2o 4labo. la3b4ra lab4res la2bri 2la4bs la2bus 2labw 2labz la1ceb l4ache lachter4f lacks4 1lad 2l1ad2a 2ladd la3de. la3d2i 2ladj 2l1adl 2ladm l1adop 2l1a2dr 3l2adu 2ladv 4laf. la4f1ei la4f1er laf1r 4lafs laf3t4 la4fu la2ga lag3d lagen3d l2ager lagerin3 4lagg la2gil la2gin la2gio lag3l la4g3n la2go4 lag3str 2la3ho 3lai lai4s3t 2l1akad lake2 la4kes la4kin l2akk la3k4l la4kro lakt2 2l1al la2la 3la5la. 3lali 4lalt lami3t l4amm lam2m1a lammen4ge 1lammf la4mor l2amp l3ampu 2l1amt lamt2s la4mun la2na l1anal la3nan 4l1a4n4at la4nau 2la2nä 3l2and l4and. lan2d1a lan4dam land3au l4ande lan4derh lan4d3erw lan4d3erz lan4d3inn l4an2d3r lan3dri lan3erd laner2f 2lanf lan2gan 2l3angel lan4g3esc lang3s4 l2anhe 3lan2i 4lanim 4lanl 2l1ann l1ano la2nof 2l1anp 2lans l1ansi 3lansw 2lantw 2lanw lan4zerg lan2z3w 3lao 2l1apf la2ph 2l1a2po lap2pl la2q la2r1an 2larc lar1e2b la2r1ei la2rel la2rene larf4 3lar3g lar3ini lark4l 2larm 2l1a2rom l1art 2lart. lar2ter lart2h l3arti lart4r 3laru l2as. la2sa la4s3aa la4sam la4sä lasche2 4lasd la5seb la4sei la4s1e2l 2lash la2sin la4sis la2so 2la4sp 3lasser l2ast la4sta last3an last3ar la4steu las4to la2str last3ri las3tro las3tur la2stü 1la2ß3 la3t2e 2l3a4tel l4at2i la5tio 2latm lat2o la2tö la2t3ra lat4ri lat2s lat3st 2lat4ta lat2tex lat2t3in lat2t3r lat4tro latzer2 1laub. lauben4s3 lau2b3r laub2se laub4st lau4fel lau4ferl lau4fin 2laufn lau4fo 1laug lau3gl lau3i 3laun 4laun. la4us 3l2aus. 2l1ausb lau4scha 2lausd 2l1ausf 2lausg 2l1ausl 2lausr 2l1auss 2lausz 2lauto lau2tr la3va lave4n 1law lawa4 l2ax la2xel l2ay lä1c 1lähm 2l1ähn lä2i 1länd l1äpf 2läq l2är. lär2ma l1ärme 2l1ärz lä2s3c läs5ch läs6chc 2läse lä4s3s 2lät 2läub 2läuc 2läue 1läuf 2läug 2läx 1là 2lb l3bac l2bant lb3a2ri lbau1 lb1ärm lbb2 lbb4r lb2ei lbei4ge. l2b3eink l2b3eise lbe2ral lber2ei lbe5st l2b1e4ta l2b1id l2b1ins lb4lad l3b2lat l3blä lb3le l2bled l2blic l3blo l3b2lö l3b2lu l2b1o2ra lb3rea lb2s lb3sa lb3se lb3si lb3sla lb3sp lbs4t lbst3ac lb4ste lbst3ei lbst1u l2b1uf l3bum lbu4n lbus3s lbzei2 2l1c l3ca l3che l4chei l4chent lchermas4 l3chi lch3le lch3li l3chlo lch3n lch3r lch3s4 lch3ü lch3w l3cl l3co 2ld ld3a2b1 ld2ac ld3ack l2daf lda2g l2d1ah lda2i l2d1ak l2d1al ld1ams l2d3a4n ld1arm ld1ass l2d1au ld3au4s l3däm ld1är ld1äs ld1ät ldbus2 l3de. lde2ben l2dei ldein5 l2d1elf l2d1e2mi l2d1ems lden3erg l2dentl l3der. l4d3er2fa l4der4geb ld1erh l2der2he ld2erl ld2ern l2d1er2p lder4tr lde5sa lde2sel l2d1es2s l2dex ldi2c l2d1id ld1i4mi l2d3ion ldo2b ld2on l2dop ldo2r l2d1ori ld2os ld2ö ld3r ld4ram ld1ran ld1rä l2dre ld5rie l3d4ris ld1rol ld4ru ld5rub ld5rut l2drüc ld3sa lds2an ld3ska lds2p lds4t ldt4r ld3tu l2d1ul l2d1um 1le le2ad le2an. le3ar 3le3ba leben2s3 le3ber le2bl 3lebr le2b3re lebs2 2lec lech1a le2chi lech5t4e le2dit le2dr le1en le2er lee4ret le3f2a 2l1eff lef4o le2g1ab leg1as le2gä legi3en le2gl leg4r legs4 3leh 4lehe. leh3r2e 4lehs 4leht l2eid lei3ere lei2fan lei2fei lei2fi 2l1eig lei3gl 3leih lei2hau lei3l2 leim3p 3l2ein. leinbu4 leinbus3 lein2du l4eine lei4nerb le2inf le2ini 2leink l1einn leins2 l3einsa 2leint l2einu le2is leisch3a lei4schei lei4scho lei4schr lei4sern l1eisf lei4ss3er leis3st lei2ßer l2eit lei2ta leit5ersc lei2to leit3s2 leits4t 2leiw 3leko 2lektr 2lekz 3l2ela le2le 2lelek 4leleme le3len leler2 le3les 2lelf. 2l1elfe l2eli lel3s l2em. le3mal le2mau le2m1ei 3lemes 3lemet lem1o2 le2mor 4lemp le2mu le4mun l4en. len1a2 len3ab le4nad le4n3an le4n3a4t le2nä 2lendet 4lendl l1endp 4lendun l4endur le2n1ed lenen3er 4lenerg le2ners le2neur 2leneuv len2gag len2kau len2k3lo len2klu l1enni le2no len4sein 2len2sem len4serk len3ska len3sz 2lentg 2l1entk 2lentla 2lentn l3entro 2lentrü 2l3entw lent4wä 3lentwet 2lentz le4nz lenz2a len4z3eig 2lenzy leo4f le1o4s 2lep l1epe le2pen 3lepf 4l1e2pi 4lepoc le2pos lep4pi 3lepr l2er. l2e1ra le2rag le2r3ap le2ra4s le2rau le2r1ä le2r1e2b ler2ec 2lereig le2r3ei2m le2r3eis le2rel le2reng le2rerg le2rers le2re4t 2l3erfas 2l1erfo l2erfr l2erfüh l1erg l2erga 2lergeb l2ergef 3lergeh 4lergen. l2erger l2erges 3l2ergew 2lergi l2ergl l2ergr lergro3 2ler2heb 2lerhol leri2e lerin2s lerk2 3l2erka l1erkl l2erkle 3l2erko ler3kr 3l2erkre 3l4erlebe 3l2erlei 2lermä 2l3ermüd 3lerna ler2nal ler2nar l4erne ler4nei 2l1erö 3l2erra ler2ric l2errü l4ers. l1ersa 2lersat 3l4ersl ler2sto lert4 ler4trä le2rup l4erwa ler2wer 2ler2wo 2l1erz ler2zä l3erzeu ler2zo l4es. les2am les2e le3seb lese1i 2l1esel l4e3s4h le5she lesi1 le3s2k les4ki le3so le2spo lest4 leste3 lester4i 3lesu 4lesw 2lesy le2tab 2le2tap 2le2tat l1e2th le3tha 2lethi let2i letsche4 let2to2 lett1r letts2 le2u 4leue 3le3u4f le4uk 2l1eul le3unt le4ur 3l2eut l1e2vol 2lex 3lexd 3lexik le2xis 3ley 1lé 2lf l3fac l3fah lf4at lfäs3 l2f1ec lfe1e lf3einh l2feis lf2en l2ferei lfe2rel lf1erl l3fjo lf4lä lf3led lflo5sses lf4lö l3f4lu lf3ram lf3res lf4ru lf4rü lf2spe lf2s3ti lf2su lfun2 lfur1 2lg lgab4 l3gas lga3t lgene2 lgeräu3 l2geti lg2i l3gle lg2lö l3go lgoa3 lg2p l3g4ra lg3re l3gro lgro3s lg2s lg3sch lg4s3t 2l1h2 l3he 3lhi. l3ho l3hu 1li li1a lia2b li2ad li4am. lian2g li2ast 3lib libi3 lib4r li1c lich2ta lich5ters licht5ersc lich2to 4lick li2cl li3d2a l1ido l2idy liebe4s3 lie2br 3liefer li3efl lie4n1a2 li3ene li3ens lien3t li2er lie2rei li3ern lie4s3c lie4sta lif2fes lif2fo lif3ti 3lig li2g3ers lig1l lig4n ligs4 li3ker lik2i li3k2o lik2sp lik4tau lik2ter lik4th lik2ti lik2t1o2 lik2u li3l lil2a li4ll li3m2a lima1c lima3t4 2l1imb 2limm 3limo 2limp lin2a lin3all li3nar 4lindi 2l1indu li2nef li2neh li2nep li5ner li6nere li2nes 2l1inf ling3l lingst4 2l1inh 2l1inj lin2kan lin2kar link2s3 lino2 li2nol l2insa 2linsel 2linsp 2linst 2linsu 2linsz 2l1int l2intu li3n2u 2l1inv 2linz li2o li4om lion5s 3lipf 3lipt 3lis. li3s2a li3schm li2schu lis2h li3shi 3lisk 2l1isl 2l1i2so 3lison li2s2p liss4 2liß li2t1a2d l1i2tal lit4an li3t2ä l2it2e 3liter li3th li2t3r lits2 lit3se lit3sz li4tun li2tur litz4er 3liu li2vea live4n li2ves livi3e li3vr 4lixi li4z3ä lizei3 2lj l3ja 2lk l3kale lk1alp l3k2an l3kap l3kar. l3ke lk1erd lke3r2e lk2l lk3lad l3k4las lk3lic l3k4lu lk4ne lk5ner lk3nu lko4f lk1ofe lkor2b lk3roc lk2s1 lk3sän lk4sb lk4set lk3si lk4sm lk4spe lks3t lks4te lkt2 lk2ü 2l1l lla2be l2labk l2labt l3labu ll3acht lla2de ll1aff lla3gl l2l1am lla4ma ll2ami ll2anb lla2ner lla4ni l3lans. l3lant. ll1anz l2l3appl ll1arm ll1a4sc lla4tern l2lath l2latl l4latm l2l1att l2lau ll3aufg ll3aufk llau4m ll1au2s l4lausf l2la2w ll3axt ll4äh l2l1äm ll1är l3läs l2läu llb2 llb4l llch4 ll3d lld4r l2le2b ll3ebene l3lec ll1ech lle3er l2l1ef l3legr lle2gu lle2he l2leib ll1eic ll1eim l2l3eise lle2la lle2m l2l1emi l3len. lle4na ll3endl llen3dr ll3endu llen4dun lle4nens l4lentf l2lents l3lep l3ler. lle2ra ller4eig l4lerfas ller2fo ller4geb l4lergene l2lergo ll3erho ll3erkr ll3ermi ller4müd l2l3ernt ll3ertr ll4erwei ll2es l2le2se lle4th l2leuc l3leur. ll1exe llg2 l2lieb l2lieg lli2gan l3lik lli4la l2l1ind l4linf l2l1ink ll1ins llin4sen l2li2po ll3k ll3m2 ll5mit ll3n2 ll1ob l2lobe l2lo2d4 l2l1o4f llo2ge ll3ol l2lope ll1opf ll1or l4lorb llor2g l2lo2ri llo2te l2l1ou l3low ll1ox llö2g l3löh ll2s1es ll3ska ll2spr ll2stor ll3t llt2e llt2i llti2m llt4r ll4ts2 llu2d l2lu2me l3lung l2lu4p ll1ur llust4 l3lut l2lüc llü4d l2lü2g l3ly ll3z2 llz4w 2lm l3ma. lm3a2b l2m1ad lm1a2ge lm1aka l2m1a4m l3mana lm1apf lm1art lm1att lmä2s lm1ä4st lm1c lmd2 lm3e2dit l2m1ef l2m1ent l2m1e2p lmer2 l2m1erf l2m1erl l2m1erz l4messa l2m1i2d lm1ind lm1ins lm3m l2mof lm1orc lm3p2 lmpf4 lm3s2k lms4t lm3str lm3s2z lm3t lmt4r l2mum l4munt 2ln ln2ab lna2r ln3are l3n2e lnes2 l2n1in lnus2 l1nü l1ny 1lo 3lob. l2oba 3lobb lobe4s 2lobj l1o2bl l2obr lob4ri lo2chel lodi4e 3lodr lo3dri l1ofe lo3fj lo4gh lo2gl lo2gor lo2gre lo2ha lo3h2e 4l1ohr loi4d loi4r 3lok 4l3okk lo2k3r l4olä l4ole 2l3o2ly lomä3 lo4mel lo4min lo2ner lo4nin lo2n1o lo2o3 2lopf lop2p1a lop2pr 2lopt lo2rak lor3am lor2an lo4rä 3lorb 2l1orc 2l1ord lo3r2en 2l1org2 lori4di 2lort4 l2os. lo4sa 3lose lo4ske lo4spe lo2s3pr lo4stel lo4steu lo2s3to lo2s3t4r lo2ßu lo2t1a lo2th lo3tha loti4o lots2 2l1ov lo2ve 2lox 1lö lö2b3 2löck 2löd 2l3ö4fe 2lög 2l1öhr 2lök 2l1öl 2löp 3lösc 2löß lö4ta 2lp lp2ar lpar2k1 l2p1är l3p2f lp4fu lph2 l3phä l2phir lp1ho l3phr lph4t lpi4p lp4lu lp4rä lpt4r l3pu l3pü 2lq 2l1r2 lra4ss lrau2s l3re lrebs2 lro2h lrö2 lrö4s3 l3ru l3rü 2ls ls3a2b ls3acke l2s1a2d l4s1amb l4samp l2san ls3ane l3sare ls3a2ri l3sark lsau2 l4s3au. lsau4m lsau4rer ls3au4s l2saut l3s2äm lsä6sse ls2äug l2s1äus lsby4 ls2c l2schin l2s1e2b l3seil ls2ele ls1eli ls1emb l2sent ls1er ls2erb l2serf l2serg l2serh l2serk l2serl l2sers lser2u l2serw lse2t ls1eta ls3ha l2s1id l2simp ls2kal l3s2kele l4skla l4sko ls2ky lso4b l2sop l2s3ort. l3s2öl ls2pa l2s3pac l2s3ph l4s3pir l4spiz ls2po ls2pu l3s4pul ls3s2 l4st. lst2a lstab4 ls3tabl l2s3tas l2s3tat. l2state l2s3täti l4st3erk l4s3terr l2s3tis l2stit l2stoch ls3tor lstro4 ls4tru l2s3trü l2stuc ls1um l2s1un ls2und ls3unk l4szu 2lt l3ta. l2tab l3tabl lt1abs lt2a3d ltag4 lt1am l3tami ltampe4 l3tan. ltan3d l2t1ap lt1ara l3tark lt1art l3tarta ltar4tik lt1au lt3aut lt1äh ltbau1 lt1eh lt1eig lt1ein lte3mi l3t2en lten4gel lten2sp l4tentl lt3ents lte2ral l2t3er2fa l3t2erg l2terhe lter2ku lter2nä lte2ro lt2erö lter2se l2t1esk lte3sta lt2et l3tet. lt3g l2t1h lt3hag l3thas l4t3hei lthol2 l3thr l3t2hu lt1ide ltimo4 l3tin. l3tine l2tiso l3t2i3t l2t1ob l2t1o4f l2tord l2torg l2t1o2ri lto2w lt1öl lt1ös l4t1öt ltra3l2 lt3räu lt3rec lt3rei lt3ris lt1roc lt3rol l2t3rö lt3rum l2t3rus lt2se2l lt2s3ort lt3s2ph lt4stec lt2sti lt2stüt lt3t lt1uh l2t1um lt2um. lturan2 lturen2 ltu4r3ent ltu2ri lu1an 2lu2b3 luba2 lu3be lubs2 lub5sz lu2dr lu2ec lu2es lu2et 1luf2 2l1u4fe lu5fel 2luff luft1a luft3e luf4tei luf4t3r lu2g1a lu2g1e2b lu2gei lugen1 lu2gi lug3l lu2go lu2g3r lug3se lug3sp lug3sta lu2gu 2l1uh lu1id lui2de lu4ig lu1is. lume4 2lumf 2lumg l1umh 2lumk 2luml l2ump 1lumpe lum2ph 2lumr 2l1ums lu3mu 2l1umw 2lumz 1lu2n 2l1una lund4 2l1unf 2l1uni 2lunr 2l1uns 2lunt 2lunw lu4pf l2ura lu2r1an lu2rat 3lurc lu2rei 2lurg l2uri lu2ris l1urn lu2ro 2lurs l1urt lu3sak lu2san 2luse lu2sp lus4s3a lus2s1c lus6sel lus3sen luss3er4 lus2s1o lus4s3p lus4s3t 1lust lu2sta lu2stä lu4sterl lu2s4t1o2 lus4tr lust3re lu4s1u lu2ß1 lu2t1a4 lu4tas lu4t3au lu2tä lu2t1e4g lu2t1el luter2 lu2t3er4b lut3erg lu4t3ersa lu2thy 2luto lu2tob lu2t1o4f lu2top lu2t1or lu2t3r lut3schl 3lux 2lüb 3lübd lück4e2 lücker3 2lüd lüf3te lü2hel lüh1l lü2str 2lv2 lva3 l3vl l3vo lv3r 2lw2 l3wa lw4ei lweis4s l3wi 2lx 1ly ly3a lya4m ly3c ly3es 2lymp 3lyn ly3no ly3o lys2 ly3th 2lz lza2 l2z1ac l2z1ag l2zan l2z1ap l2zat lz1aus l2z1äp l2zär l2z1eim lze2l l2zele l2z3enth l2z1ep l2z1er2h l2zerz l2z1id lzi4m lz1imi lz1ing lz1inn lz3l lzo4f l2zö lz3t2 l2z1u4fe lzug4s lzvol2 lz3w l2zwar lz4wec l2zwu 1m maa2 2m1ab 3maba 4m3a2bar m2abä m2abe 4m3abf 4mabg 4mabk m2abli 4mabn ma2br m2a3b4ra 4mabs 4mabw ma3chan mach2e mach4t5ers mach2tr ma2ci mack2s 2m1act mada4m m2adä ma2del ma3dj ma4dl 2m1adm 2m1a2d4r ma4d2s ma3f maf4r mag2a ma2ge. ma4geb ma2geg ma2gek ma2gep ma2ges. ma2get ma2gev ma2gew 4m1agg magi1 magi3er. magi3ers ma3gl 2magm ma3g4n 2m1ago ma3ha mahl2s ma1ho mai4s3e ma4ke. ma4kes 2m1akt mal1ak ma2lakt ma2l1an ma2lau ma2lär 2mal2de m2aldi ma3le ma4leb ma4lent mal2er ma4lex mali1 mali2e mali3er mal3lo mal3lö3 2mallt ma2lon ma2lop m2alp mal3t malu2 ma2l3ut 3malv ma4mid mam3m 4m1a2nal ma2nar 2m1a4n4at ma2nau 2m1anä 2manb man2ce 3man3d4 man2en ma2net 2m2anf mang2 2man3ga m2angel 2m1angr 2m2anh 3manip 2manl 4manla m2anle 3ma4nn 4manod 2manr man3s 2m1ansa 2mansä man4sh man2t1h 2mantr ma4n1ut 2manw 2manz m1anza ma2or ma2phr ma2po m2ara 4marag mar2an 4m3arb 2maren mar3g2 3ma1rh ma3r2i m2a4rk mar2kr 4mar2o maro3d 4marr mar4schl mar4schm mar4schn mar4schr mar2sp mar2su 2mart. ma3r2u m1arz m2as 3mas. ma3s4a mas2e ma3s2p masse4n ma3s2ses ma5sset mass3t ma3s2su 3mas4t ma2sti ma4s3z ma2tab ma2tan ma2tä m3a2tel ma2t3erd ma2t3erz ma3the m4atme 2matmo ma2to ma4tort mat3se mat3sp matta3g matt4r mat3url 2m1au4f 3maul ma3un mau3r 2maus ma4ut mau2ta m2ay ma1y4o mä3he 2m1ähn mäh1r 3män 4m1änd 2m1äp 2mäq mär1 2m1ära mär2kl mär2z1 mä3t4r mäu2s3c 2mb2 mbe2e mbera2 mber2e mbe3ri mbert4 mbi3er. mb4le mble1i mb4re mbu3sc 2mc m3ch 2md m2dan m2d1a4s md1är mde2a m2dei mde2m m2d1emi m2d1ent mder2 m2d1erl md2ö md3ras md3s2e mdt4r m2d1um me3an me3at meau2 me2ben 4mebo me1c medi3 medie4 me1e2m me1e2n mee4rei 2m1eff mega3 me4gel 3meh meh6l3er 2m1eif 2m1eig m2e4i3l2 mein4da meiner4k mei4nerl m2eis4t me3lam me3l2ant me2l1au melb2 mel3d2 melde3i me2lek 2melem me2ler melet2 2melf. mel3ink 3melk mel4k3ei mell2i melm2 3melo me2lob mel2sac mel2se mel2spa melt4 4mel4tern 2m1e2mis 2m1emp 2m1e2mu m2en. men3ab me3nage me4n3an men3ar me4nas men3au 4m1endl menen1 meng2a 2men2gag men3ge me4nh me2nim me4n3k4 men2on me4ns men2se. men2sem 4mensemb men2sen men4ser men2ses mensi2d menst4 3m4enta men2t3ak men4tanz mentar6ten 3m4entei ment3eig men4t3ers 4mentn ment2sp me1o 2meou 2meö 4mepa 2m1e2pi m2er. me1ra mera3l mer2as me2r1e2b 2mer2eig me2rens mer2err mer2erw 2m3er2gän me5ric meri2e merin2d merin2t 2mer2klä 3merkm m4ersh mer3sm mer4stel mert4r merz4eng 3mes me2sal me2sä 4meser mes3pr 2mes2sa mess3an messe2r mes4serg mes4s1o mes2sp mes2s3t mes3ta mes3tä me2str mest3ri me3su me3sze 3me2ß3 me3ta met3abe mete2 me3th me2to me2tö me2trig me3tro met4t3en4d meu1 2m1ex me2xe 2mf mfi2le mf4rü 2mg2 mgang4 mglim2 2m1h2 m3hu mi1a mia2b mi3ak mia4m 2m1iat mibi1 mic1e mi1ch mi2ci mi3da mi2di. mi3dr 2midy mie3dr mi3ele mi4e3no mierer2 mie2ti mie4t3r mif2 mi3f4l 3mige mig4r mi3h mik1an mi3ke mi4kel mi4kens mi3k4l 3mil mi3la milch1 mil4che mi3l2i mi3l2u 4milz m2im2a 2m1imm 4mimp min2ac mi3nak min3anze m2in3de minde2s 4m1indu mi2nef miner1 mi4n3e2ri min2eu 4minfo 3ming min2ga 2minh 3mi3ni mini3k4 mi3nod mi2nof 2m1inse m1inst mi3nu 3minz mioni1 mi3p mi4ps 3mir. 3miri 3mirs 3mirw 3mirz 3mis. mi2sa mis4au2 mi2scha mi2scho mi2schr mi2sch3w mise1 2m1i2so 3mis2p mi2spe mis5sar mis2ser mis4st mi2sta mi3str 3misu mi2ß1 3mit mi2ta mit1h mi2to mi2tr mi3tra mit3s2 mit5sa mit3tan mit3t2e mitte3s mi2t1u 4mitz mi3v2 2mj 2mk2 m3kn mk4na mk4ne mk4nu 2m1l2 ml3c m3le ml3f ml3k m3lo ml3p ml3s2 2mm mma3a mm3achs m2m1ak mma4kr mm1all m2mank m2mans mm1anz m2m1ap mm2app mm1art mma2ß mm1aus mmä2 mmä4s m2m1äu mmd2 m2m1e2b mme2c m2m1e2di m2m1ef m4meh m2mei mm1ein mm3eise mme2l1a2 mme2lin mm2ene mmen4te. mmen4ten m2ments m2mentw m2me2nü mme2r3a2 mme2rec mmer4geb mme2s mmes3a mme3sc mme4sz m2me4te m2m1eu mmga4s mmi3el mmi3m mm1inb mm1inh m2m1ins mm1int mm2is mmi3sc mmisch4 m4mita mmi3tw m2mo2l m2mor mm3p mmpf4 mms2 mm3sa mm3si mm3te m2mum mm2un mmu3r m2mus mmuts2 mmül2 2m1n2 m2nesi2 m3ni m3nu 2m1o2be 3mobi 2mobj 3m2od mo3de mo2dr m1of mo4fe 2mog. mo2g1al 3m2oh moh2a moi3r mo2k1l 4mol. mol3d 3mom mom2e 3m2on mo2nan mo2nä mon2dac mon2del mon2d3er mon2do mo2ner moni2en mon3s2 mont2a mon3th mo1ny 3m2o2o 2mope 2m1opf 2mopt mo1ra mo2rak mor2an mor2d3a mor4derm mor2dr mor3g mor3t2 mo4ru 3mos mo4ska mos4t moster4 mo2sto mo2su mo3t2h 2motio mot4r mous2 m1ox moy3 möbe2 mö2c 2möf mö4fe 2m1öl 2mp mpa3ne mpe2la mpe2lin mpe2n m2p1ene m4pf. mpf3au mpf1ef mp2f3erf mpf3erg mpf3er2p mp4ferpr mp2f3er4r mp2f3erz mp4f3l mpf1or m4ph. mp1haf m4phb m4phf m4phg m4phm mp1hos m4phs m4phz mpin2 mp3lei m2p3lem. m2p3len m2p3les mpor4ter mpot2 m2p3ra mp4rä mp3sh mps2p m3pu 2mq 2m1r2 m3ra m3ru 2ms m2san ms1as m3sat m2s1än msch2l m3se. m2s1e2d m2s1ef m2sein m2se2le mse2n m2s1ene m2sent ms1erf mse2t ms1eti m2s1eu m2sex mso2 m2s1od ms1orc ms1ori ms2p m2spä m2sped m4spl m2spot m2spro ms3s mss4a mss4t mst2 m4st. m4stag m2stal m2stit m2sü m4szi 2mt mt1ab mt1ak mta4m mt1ar mt3aug m2t1e2d m2teig mt1ein m2t1eis m2teiw mt1elt mt1emi m2tenga m2t3engl m2tentf m2tentg m2t3en2tr m2tents mter2 m2t1er4b m2t1erf m2t1erg mt1erh m2t3e2r4i m2t1erk m2t1erl m2t1ers m2t1ert m2teta m2t1eu m2t1ev m2t1h mt3ho m2t1i2d m2tim m2t1in m2t1i2r mti2s mtmen2 mt1ob mt1op m2t1öl mt1ös mtra4s3 m2t3ro m2trö mt2sa mt3sco mt2s1e mt3send mt3s2ka mt3s2kel mts3tät mtt4r mt1um mtu3re mt3z mu1a 2m1uh mu3la 3muld 3mult 3mumi m1ums mum2s3p 3mun mundan2 mun4derf mu2ner2 4m1unf 4m3ungeb mu3ni mu4nin 4mu4niv 4munw 4munz mu3ru mu4r1u4f 3mus. mu4s1a 3musc mu2s1o mu2sp mu3s2se. mu3s2ses mus4ste must2 must4e mus4ter mu2s3to mu2str mu2su muße3 mut1au mut2st 2müb 3müh mü2her mühl1a 3mül mül2len 3mün mü3s2si 3müt 2mv mvoll1 2mw2 mwa2 mweg4 mwel4 mwelt3 mwelter3 mwu1 my3a my3on 2mz2 mzug4 1na 3na. na2a 2n1ab 3naba na2bä n3abh n3abk na2b3l na2bor na2br nab4rü 4n3abs2 na2bus 4nabz 3na2c n4ac. nach1 nachen2 na3chen. n3achse nach3sp nacht5ers nach6tersc nacht6raum n1ada na3dab 3nade na3de. nadel1 na3den na2der 4n1adl 4n3adm n1a2dr 3nae na3el na3es 2n1af na3fra nag2a na3ge. na2gem 4n1agg n1a2gi na3gin na3g4r 3n2ah nah1a na2hau n4ahm 4n3ahn 4n3aho2 na2hö 3nai na1i2d nai2e n1aig 4n3air nai4re n2ais 2n1ak 3n4akä 3nako na4kro 4nakt na4kus n2al. na2l1a2 nal3am na4lar na2lä 2n1albk n2ald nal3da na2l1ed nal3ei na2l3ent na2ler2g na2lerm na2l3erw nales2 nal1et nal1ex nalg2 na2lid nal3la na2lop nal2ph nal3s n2als. nal3t nalt2a nalt4r n2alty na2lu 2naly na4mal na4mat 3name 4na4mei n4amen namens3 4n1a4mer na4mid na4min na3m2n 3n2amo n1amp nam2sp 2n1amt namt2s na4my n1an 4na2n4a na4nat n3a2nä 4n3anb n3and2 nan1eu 4n3anf 4n3ang 4nanh 2nani 4n3ank 4n3anl 3n2ann 4n3anna 4nano nan2o3b 4n3anp 2nanr 4n3ans 2nantr 2nanw n2anz. nanzen2 nan4zeng nanzer2 nan4zerg nan2zw na3ot na2per n1apfe 2napfel na2pos n3a2pr n1a2q n1ar 3nar. na2r1a 2narc n2ard n2are n4are. 3nari n2ark n2arle 2narm n2aro na2rom na3rö n2arr nar2rh n2ars 2nart n2arta na3r2u 3nas n4as. na3sä na2schw 4n1a4sp nas2s1c 4n1assi 4na2sy nasyl2 3naß 3nat n4at. n4ata na2tat na4t3au nat1ei na3ten na2t2h 4natm nat2o 4natom nat1r nat4sa nats1e na4tt n4a3tu n1au nauf2fr 4nauge. 3n2aul 3naum na3um. 4nausb 4nausd 4nausf 4nausg 4nausl n2auso 4nausr 4n3auss 4nausw 4nausz nau3te 3nav nave4 navi3er. navi3ers na2x 1nä 2näb 3n2äc 3näe 2n1äf 3näg nä2hi 3nähm 2n1ähn nä2hu 3näi 2n1äm nä4mi 2n1än 2näp 2näq nä2sc n2ä4s3s 2näu 3nä1um 2nb2 n3ba n3be nbe2in nber2e nber2gr nb4la nb4le nb4ri nbruch4s5t n3bs nbu3s 2n1c n2c3ab n3can n3ce4n n3ces. n4ch. nchi3en n3chl n4ch3m ncor2 n3cr n3cu 2nd nda3f nd2ag n3d2ai n2d1ak n2dana n2dani n2danz n3dat nd3att nd1au n2daut n2dax nd1äng nd1c nde2al. n3de1e n2dei nde3inf nde2lat nde3l2ec nd3elfe ndel3l ndel4sa ndels3en nden3sk n2dentl n2dents nde3o2 n3der. nde4rei4s n3deren nd2erh n3deri nder4läs nde2rob n2de2ros nder4sat nd2es1 nde2se nd4est ndi2a3 nd1imm n2dof ndo4n3a n2dopt nd1or n2do2ri n2d3ott n2dout n2dö n2d3rat nd3rau n2d3re nd5ric n2drif n2d3roc n2drod n2d3rö n2drui n2d3run n4dsb nd2sene n4dsl nd2spr nd3th ndt4r n2duns ndy3 ndys2 ndys4p 1ne 3ne. ne2ap 3neas ne3ast. ne3at ne3au 2n3ebene neben3s ne2bl 2n1ebn neb4r 2nec 3neca 3nece ne2ch neck2a ne2dit 2nee neei2 ne3ein ne3eis neema4 neen2 ne1en. nee1r neer4e n1ef n2ef. n2e3f2a 2nefr 2n1egg neg4l n1e2go neg4r n1e2he 2nehe. 2nehem nehen2 ne3he2r 3nehm 2n1ehr 2n1ei 3neia 4neic nei4dr 4neier 3neigt 3neigu nei4la 4neing 4neinh 4neink 4neinl 4neinr 4neinz ne2ke 2n1eks nek3t2 2nekz ne2l ne3lä nel3b n1ele ne3leb 2nelek 2nelem ne3len ne3l2i ne4lim ne4lit 3nelk n2ell nel4la4 nel2lei neller4f nel2lif n2eln 3ne3l2o 3ne3lu 3n2em. ne3mas 2n1emb ne5men n2emo 4n3emp 2n1ems 3nen n4en. n2en3a nen4am ne2nä n2enb n2enc 4n1endb 4n1endd 4n1endf n1endg 4n1endh 4n1endk n1endl 4n1endp 4n1endt 4n1endw nene2b nen3ei nene4m nenen1 ne4nene nen3erb 2nenerg ne2n1eu n2enf 4n1engb nen2gen 4n1engs 4n1engt n1engu nen2gun n2enh ne2ni n2enj n2enk2 n2enm n2enn nen2nar ne2no4 nen3s2e 2nensem nen3sk nen3s2p nen3s4t 5n2en3t2a 4n1entb 4nentd 4nentf 5n2enti 2n1entl 4nentn nen3to 5n2entra nen2tri 4n1ents 4n3entw 4n3entz ne4n3u n2env n2enw nenz2er neo3b2 ne2oh ne2or ne2pen 2nepf 2ne4pi 2nepo ne2pos nept4 n4er. ne1ra ne2ra2b ne2rac ne2r3af ne2rag ne3r4al ne2ram ne2ran ne2r3ap n2erat ne2rati ne3rato ne2rau n2erb2a 2n3erbe. 2n3erben 2nerdb ner2dig ne2r1e2b ne2rec n1erf 2nerfas nerfor2 3nerfr 2nerfü 2ner3g4 n3ergeb 4nergi 3nergr n1erh n3erhö 4nerhöh 3neri neri2e n2erj n1erk 3nerka n2erkö n4erleh n2erli 2n1erlö nerma3 nermas2 n1ermi 2nermit 2n1ernä 4n3erneu 2n1ernt n1eros n1eröf ne1rös n2ers. 2n1ersa 3nerse ner4sk 2n3ersts nert4 3nert. ne2rup 3n2erv 2nerwar 2n1erz n2es. ne2sal ne2sei n1e2sel ne2s1ev 2ne3sh ne3ska ne2s1of ne2s1or ne2s3pa 2n1es2si nes5tei 2n3e2st3r 4nesyn n2eß ne2tab 2ne4tag net1ak ne2t1an 2ne2tap 2ne2tat ne4te2l ne5ten ne2th net3ha ne3ti ne4tim ne4tin ne2tob nets2 n2ett net3ta net5te net3t4r 2n1e2tu net2zer net2z1i ne2u neu1c neu2ere neuer2f neuer2k neuer4s neuer2w neuf4 neu3g4 n2eun 2n1eup neur2 neu2ra neu3t 3n2evi n2ew 2n1ex ne2xi 3nez 1né 2nf nf2al nfalt4 nf2ang nf4ar n3f2ä nfäs3 nfe2i n3f2en n3f2er nf4es n4fex n3f2i nfi2le. nf4le nf4lö nf5löf nflös4 nf2o n4föl nf4re nf4ri nf4ru nf4rü nf3s2 nf2tan nf3tei nf2t3r nft4st nfts3tr n2f1u 2ng n3gabe ng1abt n2g1ac n2g1ad n2g1ak ng1a4me ng1ams ng3anda ng3angl ngang4st n2ganh n4ganl ng1ant ng1are n3g2ars n2g1a2v n2g1äl ng3d n2g1eif n2g1ein ngelb4 nge3l2ei ngel3t4 n3gene nge3nerw ngen3s2 nge2ram n2g1erg nger2zä nger3ze n3ges nge3s2a ng5get ng3hu n2g1id ng2lad n3glas n2glic ng4lok n3glot ngma5sse. n2gn ng3ne n4g3ni ng4nom ng2nu ng2ob n2g1op n2g1o2r n2gö n2grai ng4ran n2g3rat ng3roc ngro3s ng3rost ng2s ng4s3au ng3sc ng5schr ng4sd ngs3e4h ng4sf ng5son ng5soz ng3span ng4spar ng4stec ng5suc ng3ts n2gum ngzei2t 2n1h2 n3ha. nhabe4r3e n5haltu nhas3 n3he nhe2r n3ho 1ni 3n2ia ni3alo ni2ar ni1as nibb4 ni1ce n1id 3n2id. ni3da ni2de n2i3de. 2nidea ni3den. ni3dr 2n3idy n2ie nie3b 3nied ni2e1i ni1el nie3l2a nie4n ni3ene nie2rei nie4rerg ni2erna nie4sa nie5sse ni2eu ni3fl niga4 ni2g1ab ni2g1am ni2g1an 4n3i2gel 2niget n4igk ni4gl nig3li ni2gn nigs3c nig4sp nihi3 ni2kar 4nikei 4ni2kel ni3k2erh 4nikh ni2ki nik3ing ni2kor ni2k3r ni4ks nik3t4 4nikun 3n2il ni3l2a ni3l2i nil3l ni3mo 4nimp nin1 3nin. 3n2ina nin2ac ni2nal 3n2inb 2n1ind 2ninf 3ning n2ing. n2ingo ning4s 2n1inh 4n1ink2 3nino ni2nor 3n2inp 2n1ins 4ninse 4ninsu 4n1int ni3nu 4n1inv 3n2inw ni2ob ni3ok ni3ora n2ip ni4ron n1irr 3n2is ni4sam ni2san ni2sä nis3cha ni2schw ni2s1e ni3se. 4n3isol ni2som 4nisot ni2sp nis3s4 nis5st nis3tha ni2stu ni3stun ni2s1u 2nit 3nita ni3th ni2ti 4ni4tia nit2o 3nit4r nit3s nit4tec nit4tell nit4ter4g nit4t3er4k nit2tie nit2t3r nitt4sa niv2 3nix 2nj 2nk nk1abr n2k1ac nk1a2ge n3kal n4kalg nk1ang nk1apf nk3art. n2katm n2kato nk1aus n2kaut n2k1äh n2k1äp nk1ei nk2eil nke2lei n2kelem nkelma3 nkelmas4 n3ken. nke4na nker4fah nker3la n2k3erle nke2ros nk3ersa n2k3erwe n3kesc nke2t nk1eti nk1i2d n2kide nk1inh n2k1ins n2klade n2k1laf nk3leis n2k3len nk3les nk2lo nk4neb n2knis n2knit n2knu n2k1o4be n2kopt nko2r nkord2 nk1ori n2k1ort n2köl nk4rab nk3rät n4k5re. nk3rel n2kren nk3rep n2krez nk3ro n2krol nk2sal nk2se nk3sen nk2so nks2p nks6tel nks4ti nk3s2z nk2tak nk4tau nk2terg nk2t3ern nkte3sk nkt2et nk2tin nkt1it nk2top nkt1r nkt3ric nk2tro nk2tru nkt2sen n2k1um nku2n nk1urh n2küb 2n1l2 n3la n3le nle2ga nleit6e n3li nli4ne 2nm2 n3ma n3mä nmen2s 2n1n n2nada nna2g n2nalg n4n1all n2n1amb n4nan nn1a2sc n2nau n3nä n3nec n3n2eh nn2ei. n3nelb nne4le nne4na nn2ens n4nentl n4nereig nner2fü nner4geb nn4ergr nn2erh nn2erk n2n3er2la nner4mit nn2ero nne2rö4 nn3erwa nner2z nne2s1e n2ness nn2eu nn2ex nn3f nng4r n3ni n4nid nnk2 nn2o3b nn3obl nn3obs n2nof n2nop nno2r nn1ori nn4sam nn3ser nn3s2p nnst2 nns3tat nn2stoc nn2stö nnst4r nnt2a nn5tag nn2th n2n1uf n2n1unf nn1ur nnvol3le 1no 3no. no3at 3n2oba n2obel 2nobj no2bla n2oble 3noblo 3noblö 2n1o4bs 3noby no1c noche4 noch4r 2nod no2de nodi3 no2ed n1of no4fe no5fes 2noff n1oh n2ohe no3id no2kel 2n3okk no3kr nola4 no2lam n3ole no4lig no2liv 2n3o2ly 3nome3 3nomp non2e n1onk n1ont 2nony no2o 3n2opa 3nopä no2pe 2no2pi 2n1ops no3p2te 3nor. nor2a no2rad n2o1rak no3ral no3rar 2norc nor4da 3nordb nor2des nor2d5r nor2du no3r2e 2n1org 3norh 3n2orl 3norm norm2a nor3mal 3norö 3nors 2n1ort 3n2os. nos2e1 no3sh nos2k no5ski no2s3p 2nosti nost1r 2nostv nos2u no2tan no3tart no2tä not1e2i no4t3entr no2ter4 noterb3 no2tex not1h no2tho n4oti no2tin no4tl no2t3op no2t3r 3nov 2n1o2x 3noz 2nöd 2nöf nö4fe 2n1ök 2n1öl n2ör nö4s3s 1n2öt 2np2 n3pa npa2ge n3pf np4fu n3pl np4lu n3pr n3ps npsy3 n3pü 2nq 2n1r2 n3ra nra3di nran2d nra4s3s nräu3s n3re nrebe2 nre3sz nro2h nrö2s n3ru nrücker4 2ns nsa2b n3sabo n2s1a2d n4s1a2gi n3saka nsa4kr n2sall n2salt ns3ane nsa2r ns2arg n3sark nsa4st ns4ath nsau4e nsau4r nsau2se n2saut ns2av ns2ax n2s1än ns2äug n2s1äus n4schemi nscher5g n4schl. nsch2o nscht4 n3schu nsch5werd ns2cr ns1eb n3sed ns2eh nse2ha2 nseh3ere n2seinf ns2ele ns3elem nse2l3en n2sem. nsen2sp n2sepo ns4eq n3ser. nse2rei nser4en n2s1erf n2s1erg n2s1erh ns1erk ns1erl n2serle n2s3erne n2serö ns1ers ns3ertr nser2u n2s1erw n2serz n4sety n2s1eu nsfi2l ns3hor n5show ns4ic ns3iden n3sim n4simp n2sini nsinn2 nsinns3 nsi2te nsi2tr n4sk. n3s2kal n3s2kel ns2kis n3skle n4skü n3s2ky n3smara n2s1o2d ns1of n2soff ns4om n4s3ont n2s1op n2s3ort. ns2pac n4sparti ns2pas ns4pel n2speri n2s3ph n5spie n2spo n2sprä n2s3prie n2spro n2sput ns3s2 nss4t n4st. ns3tabl nst1ak n2stale ns4ta2n1 nst3ane n2stas n2s3tat. n4staten n2stats n2s3täti n5s4te. n4steif nst3eife nst5einhe ns4tem. ns4ten. n4stent ns4ter. nst3erge ns4tes. n5steu n5s4tic n4stilg n2stob n2s3tole nst3opfe ns3tor. ns3tore n2strac n2strad n4strieb n2strik ns4trun nst3u2t nsuli2 ns2um ns1un ns2ung n2s1ut n3sy n4sza ns4zene ns2zin n4szo n4szu n4szü n4szw 2nt n3t2a3c ntak4ta ntal3ar nta2lin n4t1all nta2lo nt2alp n3tam nt2anb nta3ne nt1ant ntar3ak nt2arb ntar2c nt1ark nt2arm nt1art n4tarti ntar4tik n4t3artu ntasi2 n2t1ass n2tath n3tatl nt1äm n2t1äu nte3au nte1e nte3g4 n2t1eh n3tehe n2teig nt3eilt nt1ein n2t1eis n2temä n2t1e2mo nte4na n3tens nten4te. ntera4 nte4r3eis nter3g nteri4en ntern2e ntes2 nte3sa n2t5ess n4testri n2te4ta nteu3 nteu4eri nte3v nt1hel nt1hie nt1ho nt2hos n2thot nt2hu n2t3hum nt2i nti2en ntim3p n2t3ind nt3inf nting2 nt3inh ntini1 nti3t n3t2lem ntmen2 ntni2 ntnis1 nto3re n2torg n2t3o2rie n4t1ox n2t1öl nt4ral ntras3s nt3rau nt4raum nt5re. nt3rea nt3rec n3t4ree nt3reif n3trep nt4repr nt4ré nt3ric n2t3rieg nt3rin n2troh n2tropi nt3run n2t3rü nts2ah nt3san nt4sang nts3k nts2p nt3spe nts4ti nt2sur ntt2 nttü3 ntu4re. n3t2ü nt3z nt4zk 1nu 3nu1a nu3a2r3 nubi1 2nuc nude2 3nue nu2es nu4fe 2n1uh 3nuhi 3nui n2uk nu3k4l n3u2kr null3eb nul4lin n2um. 2n3umb n2ume 2numf 2numg 2numl 3n2umm 4n3umma 4numr 2n1ums 2n1umv 2n3umz nu2n 2nuna 2n1u4ne 3n2ung 4n3ungl 4n1uni n3unk 2nunr 2nunt 2nunv 2nunw 3nuo 2nup 2nu2r nur2i nurs4 nur2z 3nu2s nu3sc nu3se nu3sk nu3spo nuss3er2 nuss3p nu4s3t nu2ß1 3nut nu2t1a nuti2v n3uto nu2top nu2t3r 3nuu 3nux 3nuz 2nüb nü4be nür1c 1nüt 2nv2 n3ver n3vl nvoran2 2nw nwei2st 1ny. 2n1ya n2ya. 1nyh n1yo 1nyr 1nys 1nyw 2nz n2zac n2z1a2g n2z3a4k n2z3a4ne n2zant n2zar nz3a2ri nza4s n2zat n2z1au n2zän n2zär nze4la nzel3l nzel4lig n3zeni n2zense n2zentl n2zents n2z1erh nz1erl nzer2lö nz4err nz3erste nzer4tra n3z4es nze3sk nze2t nz1eta nze3u2t n2z1id nzi2ga n2zinh n2z1ini nz1int nz1inv nz3le nzlei3 n2z1op n2zöl nzt4r nzu3p n2z3wa nz3wä n2zwet n2zwir n2zwö n2z3wu 1ñ ño1 ñor2 2o1a2 oa3bi o2ac oa3che oa3chi o2ad oa3de o3ah oa3in oa4k1l oa4ku o3al o4a3la oa4me oa4mé o2ami oa4n4a oa4nn o2a3q o2ar oa4re o2a3s 3o4ase oa4si oa5sis oa4sp o3a4ss oa3te 2o1ä2 oäs3 2ob. o3b2al obal3l ob2am 2ob2ar 2obau ob1auf 2o3b2ä 2obb ob2e 2obe. 2obea 2obec 2obef o2b3ein 2oben obe4na oben3d4 1o2ber 2o3ber. ober3eis ober3in obe4ris 2obev 2obez 2o3b2i obi2e 3obj ob1la ob3lei 1ob3li ob4lit 2oblo 2ob2lö ob2lu o2boe ob1or 2obot 2obö ob3rei 2obrü ob3s2h ob3sk obs4p ob2sta 2o3bu o4bunt obus3s 2o3bü o4büb 2o3by 2oc o3ca oc1c 3occl o1ce och1a ocha2b ocha2r o1che oche4b o2ch1ec och1eh och1ei oche2l ocher2k ochi4d ochi3e och3l och3m och1o ochö4f och3r ochs4p och3t4e o1chu ochu4f och3u2t och3w o3ci ock3er4sc oc4ko ock3sz ock3ta o1cl o3co o3cy 2od2a od3ak od2dr o3de2c o3d2e3i odein3 ode2l3ag ode2n1 ode2s1e ode3sp od2et o3dex od2i 2o3dia 2odic 2odif 2o3dir 2odn o2don o2d1op odo4s od2ö 2odr odt4r 2odu o3dy ody4m 2o1e oe2b oe4be oe3de oe2h oe2l oe2m oe4mi oen1e oe4nz oe2p o2es oe2sc o2et2 o3et. oe4ta o3ets oe2v oe2x o1ë o2f 2o3fa of1a2d of1a2g of2an of1au 2o3fä of1är o3fe o4f1e2b o4f1ec 2ofee o4f1ei 2ofem o4fent 2ofer o4ferb o4f1err 2of2es o4f1e2t 2ofeu 2off. of2fa4 of4fal of4fam off3erz of2f1in of2fir of2fix 1offiz of2f3l 2offn of2fo of2f3r offs2 off3sh off3si off3sp of2fü 2o3f2i ofi3e ofie2i ofi3k4l 2o3fl of3le of3li of4lö 2o3fo 2o3fö 2o3fr of3rä of4ru of4rü ofs1 of2sa of4sam ofs2ch of2se of2si of2s3p of2staf of2sto ofstra6ssen of2su 2oft oft2a of2tei of3th oft4r 2o3fu of3uh of3ur o3fü 2og o2g1ab o2g1ac oga3d og1ang o2g1e2i ogel3dr oge2li ogener2 ogen2id ogerätein6 ogeri2 o2g1eth og2gl o3gh ogi4e o2g1ini o2g3ins og1l og3le og2lo o3g2n og4na og4ne og4ni ogoi3 og1o2ri og2s og3sc og3si og3s4p 2o1ha o3ha. oh1alk oh1ar o1hä o1he o2h1eis o2h1er4t oh1er2z o2herze 2o1hi 2ohl ohl1a oh2la2d oh2lä oh3lec ohl1ei ohle3l oh3lep ohler2 oh4lerg oh4l3erh oh4lerw oh3lo2 ohl1or ohls2e oh2lu ohm2a 1ohmi oh3mu ohn1a oh4nac oh3nee oh2ni 1ohnm oh2n1o ohn3sk 2o1ho oho2l1e ohol1o oh1o2p 2ohö oh3öl ohr3a oh2rel oh2rem ohren3s ohrer2 oh2rerg oh3rers oh3ri oh4rin oh4rol 1ohrr ohrt4r ohs2 oh3sa oh3t o1hu oh3w 2o1hy 2oi o1i2d o3ida o1i2m o1in o4ine oi2r o3isch. o2ische oi3se o1ism oiss2 oi4st o1i2t oi4ta oi3te oi3th oi3ti oi4tu 2oj 2ok ok2a oka3b2 o2k3ac oka3i oka2la okale2 ok2e oki4o ok2la ok3lau ok1lä ok2li ok4na ok2o ok2so ok2sp ok3t2 o3ku 3okw 2ol o1la ol3abu olaf4 ol1ami ol1ant ol2ar o3l2a3s olast4 ola2ve o1lä ol1ät ol2chr ol4d1am ol2dä ol2d1ed ol2d3eng old3ersa ol2deu ol2dim ol2d3o ol2d1r 4o3le. ole2e o2l1ef ol1eie o2l1eis ol1emb ole4p oler2 ol1erk ol1er3t ol1ess ole3u2 ol1exz ol2fa ol2fem ol2ferl ol2f3l olf1r ol2fra olft4 olgege3 olge2ne ol2gl ol2gr olie4n1 oli4er oli3k4 o4l1ind oli3tu 3oliv ol2kl olk3re ol2kro olks3 olk4sc olk4si oll1ac ol4la4d ol2l1ak ol4lau ollä2 ol2läd ol3le. oll1eb ol4l1ec ol2lei oll3ein ol3lem ol3lere oll3erh oller2k oll3er2l ol2l3erw ol3les. oll3ess ol2lic olli4st ol4lk ol2lo2c ol2lo2g ol2lop ol2lö2 olls4 oll3sa oll3sp ol2lu ol3lus ol2of oloni2e olo3p ol1ort olo3st olo3t ol2ov ol3s2k ols4t ol3te ol3t2h ol3ti o1lu ol2y 4o3lys ol2z1a olzer2 ol4z3ern ol2zers ol2zim ol2zin ol2zo ol2zw ol2zy 2o2m o3ma o4ma2bl o4m1a2ge om1alg om1all o5man. oma2n3er o4m1ang omani2e om2anr o4m1ap o4m1ar2s o4m1art omar2te o4m3a2sy omat2i o4matom o4m1au o3mä o3me o4meb om1ebe o4m1ef om1ei o4meis o4mele omen3t4an o4mep omer2 o5mer. om1erh o4meru om1erz o4mex o3mi omi4c3 omi2e omiet1 omil3l om1ind om1ing o4m1inn o4m1ins o4m1int o4miso om2it om3ma om3m2e om3mu 3omn o3mo o4m3oa o4m1org om1o2ri o4mox o3mö ompani2 om3pf oms2 om3sk omt2 om3th o3mu o4mum o4munt o3my 2ona on3a2b on2ac ona3g o3nal on3ann onanz3ei o2n1ap o2n3arb ona3th 4onatol onat2s o4n3at4t on2au 2onä on1äh on2dan onde4rers ond1r on2dra on2drin on2d3rü ond3sk 2one o2n1e2b on1ec o3nee o2nef one3h o3neig on3ein on3ele on1ema one4n1 o4n3ends on2eng onenz4 on1ep o3ner. on1erb o2n1erd oner2fa o2nerh on2erka on1ers o3nett on2eu on3f2 on3gl ong4le ong4r ong3s2 on2gue 2o3ni oni3de onie3g oni2ga o4nikan o4nikb o4nikf o4nikg o4nikk o4nikl o4nikm o4nikp o4nikr o4niks o4nim o4nind o4ninh o4nins on3k2 3onke onk4n onli2 onlo2c onna2 on5n2an on3n2e 2ono1 o3nod o2nof o2n3oke o3nom on1orc on3ord ono3s ono3t2 ons1a2 onsau1 onsch2 on2seb onsen1 on5seq onse4t on4sho on5sic onsi2d on5sim ons3ing ons3l onst2a ons3tie onst4r on3ta on2t1eb ont3end on2t3erl on2th on2t3rat ont3s 2onuk o3nur 2onut on3v 1ony o3ny. on3z2 onze3in oo1c ooch2 oo2gl oo2k3l oo2kn oo4mb oo4mo oo2ne o1o2p oo3pa oop2s o1or oor3a oor3d oo4sk ooss4 oo2su oo2t1a oot1ei oo2t1h oo2t3o oo2tr oot2s3t oot3t oo2tur 2o1ö2 2op. op3adr op1akt opa2le op1ang 2opä 1ope 2ope. 2o3ped o4p1ef 2opei 2opel 2open 2opep o2per o4pera op1erh 2o4pf. op2f3a op3fah o3p2fä o4pfe op2fem op2fin opf3la op3flü op2fo op3for 2oph2 o3phe opi3a2 opie2r3u opin2 2opl op3lag op3le op5leu op2ne 2opo opo4la op2pan op4pl 1oppo 2oppt 2opr op3rec 3o4psi op3sz 1opt2 2opte op3th o4pti opt4r op3ty o2pum 2o3py 2oq 2or. or1a 2o3ra. o1raa 2or3a2b o2rabb o2r3add or3adr o1r2ag 1orake ora4ku o1ral oral5l o4r3alm or4alt or2am or3a4mi o1ran3d4 or4ane oran2f oran2m oran2ze or3app 2orar o1r2as o2r3att 2orau orau2s oraus4wa or2av 2o3raw o1ray o3rä or1änd or1ät orb2l or1c 2orca 2ord. 2orda ord1am or2d1ar or2dau 2ordb or3de. ord3eng ord3ermi or2d3erw orde4s or2deu or2d3ing or2d1ir or2dit 1or4dn or2do4 2ordr or4ds ord3t 2ordu 2ordw 2ore ore4as o2r1e2b o2r1eck or1e2di o3ref or1eff ore2h o2r1ei o3rei. o3reie o3r2eif o3r2eis orems2 o3renn oren4ne o3rep o2r1er o3r2ere o3r2ero ore4th o2r1eu 2orf or2fac org4a org2e 2orget or3ghi 2orgia 1orgi3e or2gl or3gla or3gle or2gn or3gne 2orgr 2orh 2o3ria 2o3r2id orid3i 4o3rie. o3rien. ori4eng ori4enr o4rienti ori4env o3rier o3ril ori3m or1ima ori4mi 2orin o2r1ind 2or4io o2riso 2orit 2ork ork3s 2orm or2mam or2mang or2mans orm3asp or2m1eb or2m3erf or2mer2g or2mor orm3ord orm3org or2mum ormu4n or4muni or4munt ormwa5r orn3ack or2nal or2nan or2nar or2nau or5ne. or4nei or5nes or3ni or4nin or3no 2o1ro o2r1ob or3oly oro3n2a or1opf o2ro2r o3rou or1ox 2o1rö 2orp 2orq 2orr orr4a or3r2e 2ors2 or3s4a ors4c or3sche or3sh or3si or3sk ors4t or3sz or2t1ak or2t1an orta2r or3te. or2tef orte4n or3ten. or2ten3g ort3erb or2tere or2t3erf or2t3erg or2terk or2t3erl or3tes or2t3e2v or2the orti3en or2tin or2t3off or2t1o2r or2tö ort3rad or2trau or2t3räu ort3re or2tro or2t1um 2o3ru or2uf or1uh orum4s o4r3un oru2r orus3 o2rü or3z2e orzel5 or2zw 2o3s2a os3ad osal2 o4s3ami 2osc o4s3ca osch3ar o3sche osch3le 2ose ose1e ose1in2 os2el ose3l2a o2s1er2k os2ex 2osh o4sh. os3hak o3s2hi o4shö o4shs os4hu 2osi os2im o3sk o4sk. os2kal o4skb o4ski 2os2kl 2os2ko o4skr o4sks o4skv o4sky 1osm os5ny. 2oso osol1 o2sö 2osp os3pec os5pfa o3s2po os4pt 2oss o4ss. o4ssa oss2abb os2s3ac oss3ala oss3and os4sä o4ssb o4ssd o4ssel o3ssem. oss3enke o3ssent oss3enz oss1ep oss3er4b osser2e osseri2 o4ssf o4ssg o4ssh o4ssi os5sis os6sisr o4ssk o4ssl o4ssm os2s1o2 o4s2s3p o4ssr o4sss o4s2s3t os2su o4ssv o4ssw o4ssz o4st. ost3abl o3stal. ost1am ost3ang ost1ap ost1a2v oste2n ost3engl o4s3tep o4sterd oster3e oster6weit ost3eur ost1h o2stid osti3en o2stin o3sting os4tö ost3ran o2st3rä ost3re ost3rot os4tru ost3uf 2osu2 os1um osu4r 2o3sy osyri5 o3s4ze 2oß o2ß1el o2ß1ent o2ß1en2z oßer2 o2ß1erb o2ß1ere o2ß1erf oß1is oß1u 2ot o2t3abi o2t1ah o2t1ak o3tam ot1ant o3tark ot1a4st o2t1att o2t1au o3tau. ot2ax ot1ä o2teb ote1i o4t1eib o4t1eic otei4n ote3in. ote3ine ot3einh ote3inr o4t1eis ot2el ote4l1a o3tem o4t1emi ot2em3p2 ote4na otens4 o2tentb ot1erb o4t1er2l o4t1erw ot4es ot2har o2them o2t1hi o2thu o2til o2t1i2m otli4 ot2o oto3b ot3off oto2ph o2t1ö otra3c o3t4ran otra4s3 ot3rat ot3re ot3ric ot4rig ot3rin ot2s3at ot3sch ots1o ot2s3pr ot3sti ot3s4tra ot2su ott3akt ot4t3an ot4t1a4s ot2teb ot2terh ot2ter2k ot2t1h ot2tim ott2o ot2t3r ot3t4ra ot3t4ru ot1url ou3f4l oug2 ou4ge ou3gl o1uh ou1is. 2oul ou2le. ou2les ou4li 2o1um 2o2u2n oun2ge. oung5s4 oure2 ou2ret ouri4e4 ourme4 our4ne. ou3sa ous2i ousi2e ou3s4t 1outf ou3ti 3outp out3s2 outu4 2o1ü ov2a 2ovel o3ven oviso3 2ovo 2ow o4w3al o3wec ow2er o2wer. o2wh o3wi owi3en ow4su o2wu 2ox. o1x2a 2oxe o2x1el o2xid 2oxk ox3l o2x1u 1oxy o1yo oz2 o3za 1ozea 2o3zen ozen2ta ozes2sc 2o3zi ozir3 ozon1a 2ozy ó2k ór3d2 ö3ba öb4au öb2l ö2b3le ö2b3r 2öc ö1ch öch3l ö2chr öchs4t öch6st3ei öchst3r öde1r ödi3 ödienst6 1ödu ö1e 1ö2f ö3fe öf2fa öf2fl ö3fi öf3l öge3le ögen4s1 ö2g3l ö2g3r ög2s ö1he öhe4n1 öhl4e4 öhre4 öh3ri öh2s ö1hu ö3ig. ö3isch. 1ö2k2o3 ö2k3r ök2s ö2l 3öl. öl1a2 öl1ei öl1em öl2f1ei ölf2er öl1in ölk4e öl2k3l öl2la2 öll1an 3ölm öl2nar öl1o ölo4f öls2 öl3sa öl3sz öl3tu 1ölu ölz4w öm2s ön2e ö3ni önizi1 önn2e ö3o2ta öoti1 2ö2p ö3pe öpf3l ör3a2 öra4k örb2e ör2b3l ör1c ör3de ör2dr ör3dra ö2r1ec ö2r1ei ö2r1e2l ö2r1e2m öre2n ö2r1ene ö2rent ö3r2erb ö2r1e2r2e ö2rer2f ö2rer2g ör2erh ö2rer2l ör2err ör2erw ö3r2erz ör1ess ör2f3l ör2gl ö2rim ör2kl örn2e örner2v ör1o2 örpe2 örs2e ör3sk ört2e öru2 öru4n ö2r1une ö2sa 2ösc ö2sch3a ösche2 ö2sch3ei ö4schen4e öscher4 ö4sch3erf ö4sch3eri ö2schi ö2sch1l ö2sch3m ö2schn ö2schw 2öse ös1ei ö2sein ös4en ös4es 2ösl ö2sp ö3s2s ö4ss. ö4ssb ö4s4s1c ö4ssd ös3ses ös3set ö4ssl ö4ssn ö4ssr ö4sss ö4s4st ö2st1a2 ös4te ös4un ö1ß ößen3 öß2ti ö2t3a öte4n1 ö2t3r öt2sc öt2tr öv2 öwe2 öze3 özes4 1p 3paa p1ab p2abe pab2l pab4rü 2pabw 3p2ad 2padr pa3el pa3fr 3pag2 pa3gh pa1ho 3pak pa3kl pak2to 3pal2a pala3t4 3palä 3pal2e pa3l2i pal2ma pal2mä pal2m1o 2palt pal2t1a pal2tei pal2tr pa4m3a pa2nar pa4n3at pan3d pand2a pan4ds pa2neu pang4 2pange pa4nisl pank4 2panl panne2 pan4n3eb 4pannu 3pa2no pan3sl 3pan3t2h 3panto 2pantr 3panz2 pan3ze 3pap papieren4 papie6r5end pap2pr pap2s papst1 pa2r3aff par3akt pa2rant pa3rap pa2rä 2parb p2arc par3d 2parer parer2g 2parg pargel4d 3park. park3am par2kau 3parke par4kr 3parks par3m2 pa2ro 2parp 4parr 4parta 3partei 3parti 3partn 3party 2parv 2parw par3z4 pas2e pa3s2p pa4spe passer2 pa6ssio pas2sp pa2ßu 2pat. pat1a pa5tag pat4c pa3t4e2 pat2h 3pati 3pat4r 3pau 4p1auf pa3uni 4pausz 3päc päck3er 3päd pä2d1er 3päs3 pä4ss pä4ta pä4t1e2h pä4tent pä4tep pä4t3erb pät1h pä2to pät3s4 pät5st 2pb pbe1 2p1c p3ch 2pd2 pda2 pe2a2 pea4r pea4s p1e2b pech1 3pech. 3peda 3peel 2pef 4p1eff 3peg pege2l pei1 4peic p2eim 4peis pekt2i 3p2el pe4l3ab pe4lai pe2l1au pe2l3ax pe2l1ä pelb2 pel3d4 pe4l1e2h pe2l1er pe2let pe2leu pe4lh peli2d peli4n pe2l3ink pel3inn pel2ins pel3k pel3l2a pel3lä pel3l4e pell2i pe2lob pels4 pel3sp pel3sta pel3t2a pe2lut pel2zin pena2 pe4nas pe2nä pen3d2a pe4nen1 3penh pe4ni2t pe2n1o pens4 3pen3si pen3so3 3pensu pen3sz pent2a 2pentw penty2 pe2nu2 pen3z4 3pep pe3pi pept2 pe1ra 4perad pe2rak pe2r1ä per1e2b perer2f pe3r2id pe3r4io 3perle perra2 per2rad per2r3an per4rä2 per2ric per2rie 3pers 4persi peru2 pe3run 3perü perwa4r pe3s2a pese2n 3pes3s2 pest1o pe2stop 3pet pet4r 2pf p2f1ab p2fad pf4ah pf1ai p2f1ak p4f1am pf1ans p2fa2r pf3are p2f1au pf4av p2f1är p2f1äu 4pfe. p2fef p2fei pf1eim pf1ein pfels4 pf1e2m p2fener p3fens p3fent p2f1enz p4f1ep pfer3a pfer4pro pf4es p2f1et pffa3 pff4l pff4r p2f1i2d pf1inn p2f1ins p2fl pf1lam pf4lan pf4leg pf3lei pf3lo pf4lü 4pf5lüm pf4lw p2fob p2fom p2fo2r pf1ori p2f3r pf1ra pf4rä pf4ro pf5roc pf5roh pf4rü pfs2 pf3sa pf3se pf3sl pfs4t pf3sz pf3t2 pft4r p4fuh p2fum 2pg2 p3gl pgra2 2ph. phal4te p1hand 3pha3s p1hau phä1 4phär 2phb 2phd 2p1hei phen3d2 phe4n1e phen3s 2ph1ers 2phf 2phg p2hid phik1a phi2kan 3phil phi2t 2phk ph2l 2phm 2phn p2ho. p2hob pho2s 2phö ph2r 2phs ph3t2 2phthe phu4s phu3t 2p1hü 3p2hy 4phyk 2phz p2ia1 piab4 pia5ka pi4ali pi4a3n piap2 pi2ar pia3s pi1ce pi2e pie1i piela2 pieler4ke pi3ent pie2ra pie2reb pie2rei pies4 3pig pi3gl 3pil pi3le pill2 pil2zer pil2zw p2im pi2nad 4pind pingen2 ping3s 3pinse pin3sp pi2o pi3onu pi3os 3pip pi2pe pi4pel 3pirate pi3ri pi3s2k 2piso pis4t pi3sto pit2a pi3t2h pit2s pit3z2e pi2z1in 3pizz 2pj 2pk2 pku2 p2l2 2pl. 3pla 4p3lad p1lah p4lak pla3na p4lau pla2y 3plä 2p3le. ple1c ple2e p4leg ple3n2 2p3ler p4leu p4lex 2plig 3p4lik p4liz plo3n 2p3lu plü2 2pm2 p3mö 2p1n2 pob2 2po1c 3pock 3pod 3poe po2el 2p1of 3pog 2poh 4poil 3po2in po2it poka2le 3pol po2lan po3lar po2l1au pold2e pol3f po3li pol3lo po3lo5p pol3z4 pom2ph poni2e 3pont2 po1ob 3p2op po4p1ak po2p1ar pop3l po2pli po3p2t po1rau po3re porf4 pori2e pork4 3portal por2th 3portio 3porto. 3portos 3portr por2tre por4t3ric 3posi pos3s2 pos4t po2sta post3ag po2stä po2st3ei po5stei. pos6tel po4stem post3ra post3ri pot1ar 3potä 3pote pot2h poti2e po2tin pott1r po2t1u po3un po2w powe2 p2o1x pö2bl pö2c 2pp p2pab pp1ang pp1ans ppa2p p2pat pp1au ppe3e p2p1ei ppe2l1a2 ppeli5ne ppel3z pp2e2n1 pper3r p2p1erz pp3fr p2p1h pp3he pp3l p4p1lac p4plan p4p1lä p2ple pp1oh p2p3ö2 pp3p ppp4f p2p3ra p2prä pp3ren p2pri pp3rol pp3rot pp3ru pps2 pp3sa pp3sy ppt2 ppt4r p3puc p2pul p2p1um p4punk ppyl2 p2r2 2pr. 3prak pra4s3 pra5sp 3prax 3präl 3präm 3präp 3präs 4pre. 4prec 3pred 4pree1 pre2ei 2preg 3preis prei2s3c prei4sei prei4ss prei2s3t 2preiz 3prem pren2ga 2p3rer pre3sa press2e pri2e 2prig pri2l1 4pring prings4 3prinz pr4io pri3o4n 3pris pri2t1 priter2 prit3t4 4pritz 3priv pro1 3prob pro3be 3prod 3prog 3proj 3pr4om 3prop pro3pe 3prosa 4pross 2proß 3prot prot2e prote3i 4prott 3prov 3proz 2prö 2pru 2prüc 3prüf 4prüh 2prün 2ps ps1ad ps2hi psi2e p2sö pss4t pst1au ps4te p2stu 3p2sy 4psys ps2ze 2pt pt1a pt2ab pta2g p2tana p2t3a4t pt1ä p3te. p2t1e2b p4t3ec pt1ef pt1ei pt1emi p3ten p4t1en2g p4t1ent pt1ep pt3ernt pt1erw pt1erz p3tes p3tet p4teta p4t1eti p2t1h pt1id pti2de pt1in pto4mo pto4na pto2p pto2w ptpo4 pt3r ptri4e p2tro pt3s2 pt4sl pt1uh pt1um p3tung pt1urs p2tü ptü4b 3p2ty pt3z ptz4w pu1a 3pub pub4l 2puc pu2dr 2p1uh 2puk pu2kl pu2k1o pu3la pu2lin pul2sp pul2s3t 3pulv 4pulw pum2pl 3pun 4pund pun2e pun2s 4punt 3pup 2pur pu2ra pu2rei pur3m pus2h pu3she pus3s 3put put2e put2s puzi3 2pü 3püf pü4lei pül3l 2pv 2pw pwa4r py3s py3t 2pz2 1q 2qs qu2 qu4ac qu4ar qu4at quel4la qu4en qu4er que3rel que4te. 3queu qu4in 1ra. r1aa ra2ab 2raac 2raal ra3ar r2a1as r1ab ra2b1ar r2abä 1rabbi rab2b3l 2rabd ra2bei rab2er rab3erd 2rabf 2rabg 2rabh 1rabi r2able ra2bli ra2b5lo 2ra2br 2rabs2 2rabt 2r3abw 1raby 2rabz ra2ce 2r1acet ra2cheb ra2cho 2rachs rach4t3rä ra2chu r2ack 1r2ad r4ad. rada4 ra2dac ra4d1am ra2dan 2radap 3radar ra2de4i ra2d3end rade3s 3radf 3r4adh r4adi 3radio 4radit 3rado 3radp ra4d1r rad5ri rad3t4 r2af raf3ahn raf3ar rafe2 ra4f1er raf3r rag2a ragein2 rages4 2ragg ra3g4le 4ragm ra2gn rag5ne r2ago rahle4n 3r2ahm r1ahn 2ra1ho 4raht r2ai 2raic rail2l 2r3air raka3 1rake 2rakk 3ra3k4l ra4kre ra4kro ra4kt 2rakti 1rakü 2rakz r2al r4al. ra2l1a4 ra4l3ab ra2lä ral3b4 3r4a4ld r4ale ra2l3end ra2lent ra2l5ern ra3lex r4ali ra2lid rali3er ra2lin2d ra2l3ing ralin4sp ralin2t 2r3alk. 2r3alm. 2ralp. 4ralpe r4als ral3sc ral3su r3alt 3r4al3t2h ra2l3u 3r4aly ra4mei ra4mer r2ami r2amm ram2man ram4mens ram4m3ers ram4mit ram4mu 2ramn 3ramsc 2r1amt ramt2s 2ramu 2rana ran1ad ran3ade r1a2nal ra2nan ra2nar ra2nau 2ranb r2anbe r4anda r4ande ran2dep ran2d3er 3r2andi rand3s 1raner 2ranf ra4ng 2ranga ran2gan ran4g3e4be 3rangi r2angl rangs4 rang3sp rani3e r3a4nil ran3ka ran2kr ran2kü 2ranl 2r1anm r2anmi r2anmu 2ranna ran5ne 2r1anp 2ranr 2rans r2ans. ran2sam ran2spa 2rantei r1anth r2anto 2rantr 1ranu 2ranw r2anz. r2ap 2rapa ra2par 2rapf 2rapo ra2pok ra2pos rap4pr 2r3a2pri 2r1a2q r1ar r2ar1a 2rarb r2are 3r4arei raren1 rar3et rar1e2v r2arf4 rar3in ra3ris r3a4rist 4r3arit r2ark 2rarm raro2 ra2rom rar3r 2rart 2rarz rar3zw ra3s2 r4as. ra4sar ra4sb ra4schl ra4sd ra5seo ra5sex ra4sf ra4sg ra4sh ra5shi ra4sk ra4sl r2a4sm ra4sn ras3si r2as4t ra4st3ei r3asth ra4sto ras5tri ra4sw 2rasyl 2raß 1rat r4ata ra2t1an ra2t1ei r3a2tel ra3tes 3ratg r4ati ra4tid rati2e 2ratla 2ratm rat2o 2ratom rat3r ra2tra rat4re rat5schl 2r3atta 2rattr 4ratz rat3ze 4rau. 3raub. rau2bri 4raue rau3e4n 2rauf rauf3sa 2rau3g2 3raum rau2m3ag rau2man rau3me. rau2mi 3raup 4raur 2rausb 3raus4c 2rausd 2rausf 2rausg raus4gewä 2raush 2rausl rau4sp 2rauss raus4sche 2rausv 2rausw rau3ße 2raut raut1r rau2tra rau4tro raut3s 1raü r2ax raxi4s3 r3axt r2ay r2az räch4s 3r2äd 2räf rä3fr 2räg 2räh 2räm 3rän. 3räni 3räns 2räp 2räq 2r1är r2är. rä3ra rä1ro rä4sa rä4sc räse2 rä5sse rä2st räs6tel 3rätse 4rätz rä2u 4räue räu2s räus4c räu5schen. 2räuss 2räuß 4räut 2räx 2rb r2b3a2b1 r3bac rba4del rb2al r3bam r2bang r2bant rb1art r2barz rb1auf rbb2 rb1ech rbe3erf rbei3d2 rbe3inf rb3einh rbe3int r4belä rbel2o rbe3r2e rb1erl rbe3rum rbe3sl r2bim r2binf r3bit rbit2a rbi3tu rb2la rb4la2d r2blan r4blasser r2b3last r3blat r3blau r2b3le. r3blen rb3ler r2bleu rb2lin rb2lö rb3lös rbmas3 rb2ob r2bonk rb3ras rb3rea r4b5rechts rb4ri rb4sam rb2sei rb2ser rb2s1o rb4stä rb2su rb4sz rb2u rbü4b 2rc r1ce r2cer r1che. r1che2n r1ch2i rch3l r3chlo rch3m rch3r rch4ro rchs4 rch3sp rch3t2a rch3w r1ci r1cl 2rd rd2ac r2daf r2d1ak r2d1a2l rd2amm rdani1 r2dann rd1ant rd1ara rd1ark r2darz rdär2 r3dee r2dei rd2ei. r2d1elb r2de2le r2delf rdels2 rdem4 rde3nar rden3d2 r2dengl r2dents rde3ob rde3ono rde3r4er rderin4s r2d3ernt rder3w rde3sp r2d1e2x rdie3ne rdien4sta4 r2d1inn rd1iri rd1ita rdo2 r2dof r3don rd1os rd3oss r2d1oz r2dö rd3rat r2drau rd4ri rd5ric rd5ris rd4rö r3d4rü rds2a rd2sän rd3s2k rd3s2z rd3t2a rd3th rdt4r rdt2s r2d1uk rdwa4 1re 3re. re2ade rea4l3erw 4re2am re3as re3at. re3ats reatu3 2reä re2b1a re2b1l reb3so rech3ar 4rechs rechter4 2rechth 2reck. 2recki reck2st re4ct 3red. 4redd re2del rede3r2 2redi1 re2dik 3redn 3redu re1ebe re1el re1em re1eng re1er 3refe 4reff r2eff. 3refl 3re3fo 3reg rege2l3ä regenmas5 4r1egg re2hac re2h1ar re2h1ei re2hen4e re2h3ent re2hi reh1l4 re2h1o re3hol 3rehö 2rehr reh3re reh1ro reh4th re2hü r2ei. r2eib rei2bei rei4bel rei2ble reib1r rei2bra r2eic 2rei3d r2eie 4reier. reier2t rei2fei 2reig 3reigä 3reigeh r2eigel 4reigens 3reigi 4reign 3reigru r4eih rei3l2a rei3l2i 2r1eilt reim2p r1ein 2rein2a rei3nal 2reinb rein2du rei3n2ec reinen3 2reinf rein4fe re2info 2reing 2reinh 4reinn 4r3einr 2reins 4reinsa rein4sel rein4sz 2reint re1in2v 2reinw 2reinz 2reisar 2reisb 2reisf 2reish 2reisr 4reisu 2reisv 2reisw reit3s4 3rek 4re2ke 4rekk 2rekz r2el. r2ela re3lat 2relb rel2e relea4 re5lei re2lek 4relem r2elev 2relf reli1 2relit 2relix r2ell rel2lar rel2lei re3lo r2els 2relt relu2 3r2em. 2r1emb rem2da re2m1ei re5men 2remi re3mig r2emit 2rempf rems1c 2rem2u r2en. r2ena 2rena. re4nac re3nad re3nal re4n3an re2nä r1endg 3rendi ren3dr 2renerg 2rengag ren2gan 2rengp 3renh re2ni re3nik 3renm ren2nar ren4nene ren4sein rens2p r4ent. 2rentd 4rentera 2rentf 3rentfo 2rentg 2r1entl rentmo4 2r1ents 3rentss 2rentw 2rentz r2enz ren2zan ren2zer renzer4f renz3er4s renzer4w ren2z3in ren2zw re2ob re3or 3repe 4re2pen 2repi re2pis 2repoc 2r1e2pos 4repp 3repu 3r2er. rera2 2r1erb 3r2erber rer2bi rere2 2rereig r1erek re2r1ep 3r2erer r1erf 4rerfah r4erfe 2rerfi 2rerfo r2erfr r3er2fü r1erg 2r3ergeb 3rergebü r2ergen 3r2erges 2rer2go rer2gr r2ergru r1erh rer2hö re3ri re4rid r1erk rer2kan rer2ke 4r3erken 3r2erki 3r2erko r2erkre r1erl 2r3er2la 5r4erlag 2r3erleb r2erli 2rerlö r1erm 3rermo rer2n 2r1ernä r1er3ne 2r1er4ni 4r3erns 4r3ernt re2rosi 2r1er2ö r1erre rer4reg rer2rei r1erri 3r2ers. 2r1ersa rer5scha r2erse 2rersp rer2spa rer2sta r2erstr 2rer4su r1ert4 r2erte 2rertr rer3tu r1erw r3erwa rer2wac rer2wec r2erwes 2r1erz rer2zä 3r2erzy 3r2es. re2sa re4sam resche2 re2schm re2schw rese2h res1of 3resol 3reson 2re4ss 4resse res3sei res4serh res4s3erw res2sto 4ressu res6tau re4stent res6tex re2stra 2restu 3resu 2re2ß1 re2t1ak 2re2tap re2tau ret2e 2r1e2th re2tra re2trol re2u reu4eri reu3g2 2reul re3uni 2r1eur reu2zei 2reü 4r3eva 2r1evid rewa4r re2wi 4rewo 2r1e2x1 3rez 2rezi 1ré 2rf rf1ack r3fahrt rfall4s rf3aue rfäs3 rfe2i r2fent rfer3g r3f2es rff2 rffa3 rf3fe rfi2le. r2fland rf4lä rf3lic rf4lö rf4lu r3flü r2fo2b rfolg4s r3foli r3fon r3form r2frauc rf4ru rf4rü rf2sa rf4sam rf2s1ä rf2su rf2ta rft4r r3f2u 2rg r2g1a2d r2g1ah r2g1ak rga2ner r2g1ap r2garb rg3art. r2g1ask rga5stes rg4at rgd2 rge4an rge2bl r3gebo r2g1e2c rg1ein rge2l3er rge2li rgen2ge rgen2z3w r3ges r2ge4tap r2geto r3gew rg2ins rgi2sel r4gl. r2glan r3glanz rgleich4s5 r2gleu r2glig r2g3lit rg2log rg2lu r2g3na r2gne r2g3ni r2g3no r2g3oa r2gob r3gog rg3op r2g1or rgö2 r2g1öd r2g3ral rg4rau r2grän r2greg r2g3res r2gret rg3rin rgro3sse r3grö r3gru rg3rüs rg3sä rg3se rgs2ei rg4sel rg3s2i rg3sp rgs4pe rgs4pi rgs4po rgs4tr rgs4tu rg3su r1h2 2rh. r2hag 2rhah 2rhak r2haltb r3han 2rhau 2r3hä r2he. r3hea 2rheb 2rhef rh4ei 2rheit 2rher 2rhi 2rhof rho2i3 2rhol r3hop 2rhot 2rhöl 2rhs 2r3hü 1ri ri3ams ri1an ri2ano ri1as ri2ast rib2bl ri1ce ri1cha ri3chl rich3ter richt4spo 4rick ri2con ri2dau 2ride r2ide. ri2d3e2l ri2dent r2i3di 2ridol rid3r 2ridy r2ie rieb4ste 4riefm rie2f3r rieg4s3 ri2e1i ri1el rie3l2a ri3els ri4enä ri2enb riene2 rie2nu ri1er. rie3r2e riere4n ri3ers. ri1eu ri2fa ri2fä ri2fei ri2fer3 rif4f3end rif2fer ri2f1o ri4fr rif2ter 3rig 4riga 4r3i2gel ri2gene 4rigg rig1l ri4glä ri3g2o3 rigs4 ri1i rii4t ri2kar ri2kä ri2kin ri2kn ri2kone ri2kor ri4kt ri3kü 2rima ri4mag ri2me. 2rimm 4rimp rim2s ri3na r1inbe rin2c 2r1indu ri3n2e rine1i 2r1inf 3rinfr r2ing rin2ga ring3le rin2gr ring3sp 2r1inh 2rinit 4rinj 4rink rin2kl rin2ko rin2kr 2rinl 4r3innenm 2r3inner 2r1innr r1innu ri3n2o3 4r1in2q 2r1ins rin2si rin2so rin2spe r2inspi rin3str 3r2insy 2rint 4rinte rin4tent rin4t5re 2r1inv rin2va 2rinz ri2ob r3ion r4ior ri3o2st ri2pl ri3po 2r1ir r2is ris2a ri3s4an ri2scho ri2schw 3risik ri3s2ko r3iso ri4s3p ris5pi r3isr 3riss rist3ers ristes2 ri2st3r 3ri2ß1 r2it 2r3i2tal rit3ant rit2i 2ri3t4r rits2 rit2t3au rit4tei 3ritter rit4ter4f rit2to rit2t3r ritt2so rit2u r3i2tum rix1 ri3xi 1rí 2rj 2rk rka2b3l r2k1ah r2k1ak rk1all rk2am rk1are rk1asp r2k1att rkauf4s r2k1äh r2kelem r3kell rke2n1 rken2er r2k1er2l rk3ersta r2k1er2w r3k2es r3ket rk1im rk4las rk4lau rk4lim r2klis rk2lo rk4lu rk4ne rk5neu rk5ney r2kob r3kol r3kon rk2op rk1o2ri r2kou rk2ö rk3räu r3kri rk3rin r2k3rom r2krou rk2sal rk2sei rk2sel rk2ser rk2so rk2sp rkstati4 rk4stec rk2stoc rk2ta rk2tel rk2t3eng rk2t3erf rk2terg rk2t3erl rkt3ers rk4tersc rk2t3erw rk2t3erz rk2teta rkt2i rk2t3in rk2t1o2 rkto4b rk2t3r rk2tum rk1ums rku2n r3kup rkur3s rku2sa rkus3s rku2s3t r2küb 2r1l rl2ab r3lag rlan2d3i r2l1ar r2l1a4sc rlas4t r2l3aug rle2a r3lec r3leg r3lep rl2et r3lex r3l2i rlicht6e rli4ne. r3l2o rlou1 rl2ö rlös5s rls2a rl2spr rl2sto rl3t r3l2u rlus4t rlu4ster rlu2str r3ly rlz4w 2rm r2m1ad rma2la rm1ald rmali3e rm1ami r2m1ank rm1anz r4m3aph r2marc r2marz rma4spe rma3ssen rmas4sens rmat2o rm1aus rm3d2 r2m3einh rme4na rm2ene r2ment r2meo rmer2fo rm1erg r2m1erh r2m1erl r2m1erp r2m1erw rm2es rme3sa rme3st rmeta2 r2mide rmi4nanz rminen2 rmi4neng r3minh rm3m r2m1ob rm1o2ri rm3p2 rm3sa rm3s2k rm3sta rm3t rmt2a rmu2n r4muna r2muni rmwa4 2rn rna2b rn3ab2i r3nad rn4ade r3nage r2n1all rna4n rn4and rn3ani r2nanz rna2r rn3are r4n3ari rn3arra r4n1a4st r4n3att rn3aug rn3de rn3d4r r2nef r3neho r3nei rn2eid r4neif r4neis r2n1elf rn1ema r2nemu rne2n r2n1ene rn2eng r2n1e2p rn1erg rn2erhi rner2ke rner2ku r2n1erl r2n1ert r2n1erw r3nes r3n2e2t rne4t1e rnet3r rn2eu rne3uf rn3f rn3g2 r2nid r2n1in r4ninf rn2ing r3nit rnk2 rnn2 rn1ob rn2obr r3nod rn2oh r2n1op r2n1or rno2w rn1ö rnö2d rn3sa rn3s2ä rnse4ha rn3s2p rns2u rn3s2z rn3t2a rn3t2e rn1ur r1nü r1ny rnz2 ro3ar ro3as r2oba 2robj 1r2obo ro2bo2r 2robr ro2bre 2robs ro1ch roch2a 3rock. r2o3de rodi4e rod4r roe2 ro2ed ro4fen 2roff 4rog. ro3g2a 3rogg ro2h1in roh1l2 4rohn ro2hö 3rohr ro4hs 1roi ro3in ro2it rok2l ro3le ro2liv ro4ll rol2lan rolle4 roll4en rolli2n rol4lini rol2lis r4olo 2roly 4rom. ro4mad ro4mal 3roman. 2romb ro4mei romen3e ro4m1er ro5mes 4romm 2romn 4romt r2on ro3n4ab ro2nan 3rond ro2nerb roni2e ro2nika ro4niki 4ronk 3ronn ron4tan ron2tel ron4tend ron2tr ron2t1u ro1ny ro1o4f rop2a 2rope 2ropf 1ropl ro3pn 2ropt r1or ro2r3al ro2rat 2rorc ro2rel 2r3orga ro2ro ror3th rort4s ror2ü ro3se ro3sh ro3s2i ros4p ros6sac ross1c ros4st ros4t ro3sta ros5tel ro2st1r ro2sum 4r3osz roßen2 ro2ßenk ro2ßi ro2ßu ro2tan ro4t3au ro2tä ro3te ro2tei rot3s2 rot2ta 3roul ro3unt ro4up 3ro4ut 2rox rö2b3l rö2du 2röf rö4fe 3röh 2r1ök 1röl 2röl. rö3le rölla4 r1ölp 3römi r1ör r2ös. rös1c rö3se 1rösl rös6tel 3rötu 2rp2 r3pa rper1e rperer3 rper3in r3pf2 rpf4l rp4fu r2pli rp4lu r3po rpo2str rp4rä r3pri r5prod r3prü rp3se rps3t rp3t r3pu 2rq 2r1r rr2ab rra4s3s rrat2s rr1auf rr1äm rrb2 rr1c r5rega r5regl rr2ei rre2le rre2pa rrer2 r2rerh r2rerl rre2ve r4rezi rr2hen rr2hos rri3erm rri3k2 rr4is rrm2 rr2n3au rr2o rr3obs rr2th r3r2u r3r2ü rrücker4 rrz2 2rs r3sabo r2s1a2d rs2al rsa4lin r4samp r4s1amt rs2an rs3ana r2sanf rs3ang rs3anm rs3ar r3s4ark r3sau rsch3e4b rscheiner5 r3schen r4scherl r5schu r5schwu r5schwü r2s1ebe rse2e r2s1ef r2sein r5seit rse2n rs2end rse4ne r2sepi rs1ere r2s1erh rs1ers r2serz rse2t rs1eta rs2ext rsha4k r3s2hav r3shir r3sho rs2hor r4shu rs2il rs2ka rs2kel rs2ki r4skir rs2kl r4skn r4skor r3s4kri r4sky r3smog r3s2no rs4om r2s1op r2s3ort. rso4s rs1ost rs2p r3span rspa3s rs4pel r2s3ph r3sphä r3spl r2sput r3spü rs3s2 rss4t rst3abl r3stad rst3ala r2stale r2stans r4stant r2stas rs4tea rs4tee rst2ei rst3eing r4st3eint r4st3emi rster2 rst2erb r4sterbt r4st3erl r4sterö r4st3er4w rst1h rst3ing r2stip r2stit rs4tob r2s3tot r2stran r2stris rs4tuc r3stü rs2ums rsü3s r3sy r4szä rs2zin r1ß 2rt rt1abs r2t1a2d r2t3ae rt1aff rt1akr r2t3albe rta3l2e r2t1all rtals1 rtal2se rt1am r3tame rt1ann rt1ant r2tanw r2t1ar rt3att r2taut rt3äh rt1änd rt1ärm rte1e2 rt1ein rt2eind r4t3einh rte2i3s r2telf rte3li rtel4lei r2temo rte2n1 rte4na rten3s4 r2t3ents rten3z rteo2 rt2ep r3ter. rter2fa rt1erh rt1erk r2t3er2la rter4mit r2t3ernä r2ter2ö rter4re rt1er4s rt2er5sp rt1erz rtes2 rte3sk rte3sta rt1he r2t1hi rt2hum r2t1id rti2en rtik2 r2t1ima rt3inf rt2is rt2it rt3l rt3m r2t1ob r3top. rto3pf rt1orc r2torg r3tork rt3ram. rt3rams rt3rand rtra4s3 rt3rati rt3rec rt3res rt3ris rt3rol rt3roma r3trop r2trou rt3sc rt2s1eh rts2el rt3sex rts3h rts3ing rts1o rts4tie rt2su rt3t rtt4r rt1umb rt2u3na r4tunt r2t1urt rtu2t r2t3ute rt3w rt3z rtz2a rt4zb rtz4w 1ru ru1a ru4ale ru3a2r3 rube4 rub2i ru3ches ruchter4 rucht3s2 ru3de rude2a ru2dr ru2et 3ruf ru4f1a ruff4 ru4fo ruf2s ruf3sc rufs3p ruf2ter ru2g3r 3ruhm 2r1uhr 3ruin ru3ins ru1is 2rum ruma2 4r3umd 4rumf 4rumg ru2mi 4ruml rum2mes r2ums. 4r3umsa 4rumsc 4rumw 4rumz 2r1una 2rund run4d1a runden3e run2d3er runder4n runder5t run2do runei2 2r1unem run2en 4r1unf run2ga 2rungl run2gla 4r1u2ni r3unio ru4nis. run2kr 2r1unl 2runm 4runn 4runr r1unse 4r3unt 4runw 2rupd rupi3 ru5pre 2r1ur ru2ra ru2r1e r4us. rus4p rus3sen rus2s3p rus4st rus6ste ru2tab rute4 ru2tei ru2t1el ru2t1er ru2t1o4 ru2t3r ru2z3w 1rü 2rüb rü4bc rü4bs 4rübu rü1ch rück3sta rü4fa rü2hel rüher2 rüh1l 4rümm rü4na rün3z rü3ss rü4ssi 2rv rv2el rve4n1e r2ventz r3veo r3ver r3v2o rv2s 2rw rwe4gel r5weis rwelt2s r3werk r3wert r2wo. r3woh r3wort rwun3s 2r1x 1ry 2r1ya ry4an ry2c rygi3 ry2le ry3os ry3st rysti3 2rz rz2ans r2zar r2zat rz2än r3zeic rzell2 r3zene rz1eng r2z3ente r2zents rze2p rze2ra r2z1erd r2z1erf r2z1erg rz1erk r2z1erl rz3ersc r2z1erw rzes2 r2z1ess r2z1id rz1int rzir3 r3z2of r2z3ot rz2tan rz2th rzu4g3l r3z4wec rz4wer r2zwir 1s 3sa. 3s2aa 2s1ab sab2ä 4sabd sa2ben 3sabet sa2bit sa2bl 4sabm sa2br 4s3abs 4s3a4bw 4sacc sa3chal 5sache sa2cho sach3t s2ack 2s1ada sa2der 2s1adm 2s1a2dr sa4fe 4s1aff sa3f4r 3s2aft saf2tr 3sag sag2e 5sa3ge. 5sagen. 4s3a2gent 4s1agg 4s1a2gr sah3l s2ahs 3s2ai sa3i2k1 sail2 sai4r 2s1ak sa4ka sa5ka. sa5kar sak2e 3saki 3sako 4sakt sa4kus 3s2al. s2al2a sa2l3an sa3l4at sal2ä 3s2alb sal3bl 3s2ald sa2lerk 3sa3li sa4l1id s1all sal3la sal2le. sallo3 3sal2o sal3or sal2se s1alt s2alth 3salz 3sam 4s1a4mat 4s1a4mei sa4min 4s1amma 4s1amn s1am3p4 4samph s1an s2an. 2sa2na san4at sa2nä 2s3anb s2an2c 3s2and san2dan san2dri sand3s sa2ner 3sang. 2sanga 2s3anh 3sani 3sanken 2s3anl 2sanm 2sa2no 2s3anp 2s3ans s4anse san4sk san3sp 2santei 4santr 2s3anw 2s3anz s4anz. s4anzt 2s1ap sa2pe s2aph sapi3 sap3p 3sapr 2s1a2q 2s1ar 3s4ar. 3sara 4sarb 3s2ard s2are s3area 3sarg sar2ga sa3rin s2ark s3arm sa2rom s2ars 4sarti sa4r1u4 sas2a s1asc 2s1a4si 2s1a4sp sa4ssenb sas4sest sa5s2set 4sa2sy 3saß sat2a satan2 sa2t3ant sat1ei 2s3a2tem s3ath 3sat2i 4s3atl 4satm sat2o sa4tol sa2tr sa3ts s3atta sat3te 4s1attr s4atz 3satza sat2zel sat2z3en s1au 3sau. 3sauc 3sau2e 2sauf 4s3aufb 3saug saug3le sau2gr sau3h 3saum 3saur 4s3aura sauri1 2saus 4s3ausb 4sausf 4sausg sau2sp 4sauss 4s3ausw 2sauß s1av sa2ve sa2xi sa3xo sa2y 3säb 3s2äc 3s2äg s1äh 4s3ähn 2s1ält 2s1äm 4s3änd 2s3äp 2säq 2s1är 3s2ärg 4s3ärm sä2s3 sä4ss sä5sse 3s2ät 2säuß 2sb2 s3ba sba4ne sbau4men sber2e s3bl s3bo s3br sb4ra sb4ri s3bu sbus3 s3bü sby3 2sc. 2scab 2scac 2scaf 2scal 2scam 2scar 2scat s1ce 4s3cei 4s4ch. 3schaf s4chal sch3ana 2schanc 2schang 5schanz 4schao 4schara sch3ar3m s2chä 2schäq 2schb 2schc 2schd sch2e 3sche. 4schech sche2f 4schef. 4schefi 4schefs s4chei 4sch3ei. sch4ein. s2chema 4schemp sch3erfü 2scherk sch3erla 3sches 4sches2s 4schex 2schf 2schg 2schh 2schi4d 2schiru 3schis 2schj 2schk s4chl sch4lac 2schle. 4schlein 2schloc 2schlöc 2schmed 2schmö 2schmy s4chn 2schn. 2schneb 2schnum 2schnut 3schop 2schorc 2schox 4schör 4schp 2schq 2schrad 2schre. 2schres 2schrin 4s3chris sch3rom 2schron 2schrou 2schrus 4schs4 sch3se sch3sk sch3sti 4scht sch3t2a sch3t2i s4chu 2schunt s4chü 2schv sch4web 2schweg 4schwerk 2schwet 2schwid 2schz 2scj 2s3cl 2sco 4scoa 4scom 3s2co4p 2scs 2scu 2scy 2sd2 sda5me sdä1 sdes4 sdien2e s3do sd4ri sea2n se3at. seau4 seb2 2s1e2ben 2s1echo sech4str 2s1echt 2s1eck se2dik 3see see1i2 se2e3ig se2el se3elem see3len se3en. see3n2e se1eng se1enk se1enl se1enp see1ra seer4e se1erf se3e2r1i se1erk se2e3s2 2s1eff sef4l 3s2eg s3e2gal se2gl seg4r seh1a se2ha2g se2hak se2hel seher2e se2herk se2h1in seh3l se4h3ö seh3ra seh3re seh5ri seh3s se4ht seh1ur se2hüb 2s1ei. 2s1eid. sei3da 2s3eifer 2s1eig s2eim s1ein 5s4ein. 2seinb sein2du 2sei3ne seine3i 2seinfl sein4fo 2seing 2seinh 2seini 2seink 2seinl 2seinn sein4ne 2seinr s2eins. 2seinsc sein4stit sein4str 2seint 4seintr 2seinw 2seinz 2s1eis 3s2eism 3s4eit seit2s 3sek 4s1e2kel 4sekz s2el. se2l1a 3s2elb sel3d4 sel1ec se2lef 2s3e2leg 2selem se2ler sel3ers 2self. selin2s s3e2lit 2s1elix sel3le sel3m s2eln se2lob s2els sel3sz selt2e sem2e 2s1e2mis 2s1emp s4en. se4nad se3nal sen2alg se4nas sen3au se2nä s2enb 3sendet 4s1endl sen3d4r 2s1endw senen1 2senerg se2ners s2enf 3s4eni se2nid se2n1im sen4keli 3senku se2no se4nott se4noz s2ensa sen2s3e2h 4sensem sen4sers sen2si2d s2enso senst2 sen4s5turm sen3t2a sen3tä 2sentd 2sentf 4sentg 4sentn s2ento sen3tr 2s1ents 2sentw 2sentz se4n3u2 3senva sen3za sen2zer sen3zw seo2r 3sepa se2pen s1epi 3seq s4er. se2r3a2d ser3al se3rand se1ras ser3äus serb2 s3erbe. serd2 se2r1e2b se2r1ed se3reie ser3eim sere2m se2r3enk ser3ent s4erfe s1erfo s2erfr s1erfü serg2 ser3ga ser3gl s2ergr s1erhö 5serie se4rinf serk4 3serl. se4rm ser4mah 2s3ermit s2ern. s3erneu 4s3ernt sero4b s1e2ros s1erot s1erö ser3r s2ers. 2sersa s3erseh s3erset sers4p sers4t se3rum ser2um. se3rund se3rung s3e2rup 3s4er3v s1erz s2es. se3s2a 3sesc se2sel 2sesh se3sk s1essa se3su 2s1e4tap se2tat 2s1e2th set2i 2s1e2tik se3tun 3sety 3setz 3seuc 4s3eul se1u2n se2va 4s3evan s1ex 2sexa sex4am se2xe sex3en s2exi s2exo 4sexp sex3t4r 3sexu 2sexz 2sf2 s3fa sf4ak s3fe s3fi s3fl sf4la sf4lö sf4ru sf4rü s3fü 2sg2 s3ga sgang4 s3ge sgeha2 sge2h3ab sge3s4 s3gm sg4mü sg4na s3gr sgro3 2s1h 3sha. s2hak shal2li shalt2 4shan sh2e sh2i 3s4hi. s4hig s2hip s2hi4r sh3n 4shoc 4shof 4shom 3sho2p sho4re 3s4how sh2r2 sh4re s3hu s3hü si3ach. sial5l 2siat 3si1c si2cha 2s1idea 2sidee 2s1ideo si3der s2i3do 2sidy 3s2ie sie2bu siege2s si3ene si3f sif4l si2g1a si2g1ei sig4n si2g3r sigs4 si2k1ab si2k1a2g si2kak si2kar si2k1ä si2k1el si2kens si2k3er4b sik3erl s4i2k3i si2k3n si2k3r sik3s 3sik3t2 si2ku sil2br sil2e 3sili s1ill 3silo 2s1imm 2s3impf sim2st 3s4imu si3n4a 2s1ind si3n2e 2s1inf 4sinfe sing1a sin3g4le sin2g3r sing3s2 2s1inh s1in1i1 s2ink sinner2 2s1inno 2s1inq 2s1ins 2s1int 2s1inv 3sio s2ire sirn4 2sirr 3siru 3sis si2sa si4sam s2isc si2schu si2s1e2 si2si si4sis s1i2so sis1or si2s3p sis3s4 s4ist si2star si3sto si2stu si2su 3s2it si2tal si2tau si2tra sit2u sit4zerg 3siu si2va sive3 siver2 si2v3erf si2vin siv1o4 si2vor siz2 2sj s3jä s3je 2sk2 4s3kab s3kad sk4al 4skalk s3kalt 4s3kam 4skana 4skanä 3skanda skani3e 4skann 4skap 4s3kar 4s3kas sk4at ska2te. 4skateg s4kater ska2tes ska4to 4skau s3kä ske2li 4ske2n1 3skep 4sker s3kh 3s4ki. 3skif 3s2kik s3kim s3kin s2kis. 3skiz 4s3klas sklat3 3s2klav sk4le 4s3klu sk4na sk4ne 4skoh 4skol 4skom 4skon 3skop. sko2pr 4skos 4skow s3kö 4s3kra sk4re 3skrip 4skro sk3t2 skto2 3skulp 4skun sku2s3 2s1l2 s3lab 3slal sl4am sla4ma sla2ve s2law sl3b s3le s3li 3s4lip slo3be s3loc s4loga 3s2low s3lu s3ly 2sm2 s3ma sma3b4 sma3sc sme3na smi2t3 s3mu s3mü 2s1n2 s3na snab4 s3ne s3ni sni4a sni3er. sni3ers 4s3not s3ny 3so. 2s3oas 2s1o2b 3s2o3ba 4sobj 4soboe so1ch sodi4 so2do so3et s1ofe so4fen s1offi 3soft 3sog sog4l s1o2he 3sohl sohle2 4s3ohng 2s1ohr 3soi so3id 2s3ok 3sol. so3la so4lau 3sold 3sole so2l1ei so3li sol2la4 sol2ler 3solm so3l2o so3lu 4s3o2ly 2s3omb 3somm 3s2on son2a son3au sond2 sone4 sonen2d son4gl son3sä son2s1o so3o so2pe s1opf 3sopr 2s1ord sore2 so2rel 2s1orga so1rh 2s1o2rie so2ro 3sorp 3s2orti so4ru 3so3s2 s2os. so4sk 4so4sm 4sost so4sth 4s1o4sz 3so3ß 2sot so3t2h 3sott soun2 sound1 so3unds so3unt 2s1out 3sow 2s1o2x 3soz 4s1oze 2s1ö2d 2söf sö4fe 2s1ök 2s1öl 2s1ö2s sö4st sp2 2sp. s3pa. 4spaa 2s3pack 2spag spa2ge 2spak 2spala 2spalä s2pali 3s4palt spa4m s2pan 3spann 2spanz 4spap 2s3para s2parka 2sparo 5s4parten 2spartn 2sparty spas2 spa3sse spa5ssi s2paß 3spat. 2spati 4spatr s2patz 2spau 3s2paz s2pä 2späd 3späh 2s3pär 2späs spä6ssc s2pe 2s3pe. 3spec 2speg 4spein s4pek 2spensi spe3p4 3sperb 3s4perg s3peri 2sperle s3pern s4perr 2spers 4spet s4pex 3s4pez 2s3pf spf4l 4spha s2phä 3sphär s3phe 3s2pi s4pie 4s5pier spier4r spi2k 4spil s4pinn 4spi4p 4s3pis s4pit 2spl 4spla 4splä 3s4pli 4s3p4lu s3pn 2spod 4spoe s2poi 4s3pok 4spol s2pons 4spoo 2spop s2pore 3s4porn 4s3pos 4spote s2pö 2spr. s2pra 3sprac 2sprak s4pran 2sprax sp4rä 2spräm s4prän 2spräs 4spred 4spreis 3s4pren 2s3pres s2pri 3spring 2sprinz 3sprit 4sprob 4sprod 2sprog 4sproj 4sprop 5spross 2sprot 2sproz 3s4prö 3sprüc 2sprüf 3sprün 2s3ps s4ps. 2sp3t 2spub 2spud 3spuk 3s4pule 2spun 4spup 3s4pur spu2rer s4putt 2s3py 2sq 2s1r2 s3ra sra4s3s sr4at srat2s srat4sc s3re sre3cha s3ri sro2h sro3tu srö2s s3ru s3rü srücker4 2ss s3saba ss3abi ssa3bo s5sack ss2agi s2s1aj ss3alba s2sall s4samt s2sanf s4sang ss2ann s4sano s4sans ss2ant s4sanz ss2ara ss2arg ss3ark s3sars s2s3att ssau4r ssau5ri s3s2ä s2sce ssch2 sschanker6 s2scr sse3a 4ss1ec 4ssee sse1ec 4ssef 4sseg 4s3seh sseh2a 4ssei s2sein s3s2eind sse3int 4ssek 4s2selek sse2lö 4ssemp 4ssendet 4s3sendu 4ssenerg ssen4kel ssenmas4 ssen4sem 4ssentl 4ssents 4ssentz ss1epe sser3att sser2fo ss4ergr sser2hö sser4mit s2serö sser2öf ss4eru sser4wei sser2ze 4ssesc 3ssesh sses2sa 4ss3e2str 4sset sse3ta s3seth 4ssez ss3hi 4ssic ss3i2ko s2simp ss1isr 4ssit s3skala ss3l ssmut2 sso4f ss1off ssoi4 s3sol s4sop ss2p ss4pat ss4pec ss4pin s3s4prä s3spri s3spru ss4pü ssquet2 ss3s2 sssau4 sss4p sss4t s4st. sst2a s5stad ss3tak s3stä ss3t2e s4ste. s5stel s5s4tep s5stern s4stes s4stet s5steu sst2i sst3in ss3tis ss3tole s5stop ss3tor s5stör ss4tras s3s4trat s3strö s3stü ss4tw s2suf 4ssum s2sumg s2sumr 4ssunt 4ssunv 4ssup s3sus s3sy s2t 2st. 3sta. 3s4t4aa 5stab. 2stabb 2stabel 2stabg 2stabh s4tabi 2stabit 2stabl 2stabn 2stabt 2stabu 2stabz st2ac s4tad 2stada 2stafel 3staff 2stag 3s4tagr 3s4tah s4tai 2stak 2stala sta3lak 2st1alb 2stalg 3sta3l2i 2stalk st1alm st1alp st1alr st1alv 3stam st1a4mi stam4ma 4stampl 4stamt s4tand 4stanf st2ang 4stangeh st3anges 4stanh 4stanl 4st1ann st3ansp 3stant 4stantr 2stanw 2st1app s4tar. sta4rens s4tark s4tars s4tart 2stasc st1asi sta4sie sta3st4 2statb 3s4tati 3s4tatu s4tau. 2stauf 5s4taur 2staus 2stauto st1a2ve 4stax 3s4täb 3s4täd 2stäg 2stält s4täm 2stämt 3ständ 2s3tänz 4stäp s4tär 3stätt 2s3täus 2stb 2st3c st4ck 2std 3ste 4steam s4tean s4teche 4stechn ste2d st1edi s4teg ste2g3r s4teh 4stehr st4ei. 4steic 4st1eid 5s4teig stei2gr 4steil s4tein stei4na 4steinga 4steinhe s4tel st1elb s5tele s6telen st2ell stel4l3än ste2mar ste4ment ste4min 4stemper 4stempf ste4na 4st3ends st2ens 4stentf 4stentl 4stents 4stentw 4steo 4stepi st1e2po ste2r3a s4terb 4sterbs 4stereig st3erfü st2erg sterma5sse s4tern 4sterras s4ters 4st3er2zo st2es1 ste4se stes3ta 4stestb st3estl 4stestn 4stests 4steta ste2tab ste4tag s4teu 4s5teuf st1eun st1ev 4s3tex s4texa s5text 2stf stf6lan 2stg 2sth st2hen st1hi st3ho s3thr st1hy st1i2d sti2e 2stief. 4stiefl 3stiel 3stif sti2gel sti2kr st2il sti2la 3stimm 4stimma 2stimp 2st1inb 4stinf 4stinh 2stins 4stint s4tio 2stip. 2stipps sti2r st1ira st1iri st1iro 2stite 2stj 2stk 2stl st3le 2stm stma3s2 2stn sto2bl 2stocht s4tode 3s4tof stoffen4 stof4fens 4stoffiz 2stomn 2s3ton 4stona 3s4to4ne 4stonl 2stope 2stopo 2stord 2storf 2storg 2storp 2stort 3s4tory 3stos 4stou 4stöch 2stöf 2s3töl 3s4tör 2stöst 2stöt 2stp 2stq s3trac s3trad st4rade stra4fa 4s3trag 4strai 3s4tral s3trank 4strans 3stras 3straß 2straum 2sträc 2sträg 2sträne 2sträum 2stre. 2strech 4stref 2streg 4streib 3st4reif 2strep 2stret 4streuh s4treuu 2strev 2strez 3s4tria 2strib 4strig s3tril 2strisi s3triu 4stroc 3s4trof 3s4troh 3s4trok stro4ma s4trome 2stropf 3stropo st4ross 2strost 3stroy 2ströp 2strub s4trud 3struk s4trum 2strun 4strup 2strut 2st3s2 stsas2 st4sb 2st3t2 stt4r st2u 3stub s3tuc 4stuch 3s4tud 2stue 3s4tuf 2stug st3uga 3s4tuh 2stuk 4stumo 2stumr 2stum2s 2stumt 2stumz 2stun. 2st3una s4tund 2stune 2stunf 2st3uni 2stuns 2stunt 3stuö stu3ra stu5re 2st3url 4sturn 2st3urt 3s4turz 4stüch 3s4tück 3s4tüh 2stür. 2stüre 2stürg 2stürs 2stürw 2stütc 2stv 2stw stwor2 2s3ty 4sty. s4tyl 4styp 4stys 2st3z2 su1an 3su2b3 su4ba 4subi su4br 3su1c su2cha su2chi su2cho suchs3p 3sud su2eb s1uf su4fe 2s1uh su1is su1it. su2k 3sul su3l2i sum1a su2man su2mar 3s2ume su2mei su2mel sument2 su4ments su2m1et 2s3umf su2m1id su2min 3s2umm sum1o2 su2mor s2ump s1ums s3umsa 2sumse 2s3umst su2n 2s1una sunder2 sun4d3erh su4ne 4s1unf 4sungena 2sungl 4s1uni 2sunm s1uns 2sunt 3sup 4supd sup3p4 su2ra sure4 su2rei su2rer 3surf 2s1urk su2r1o 2s1ursa s1urt su2s3 su3s2a s3u2t su3tr suz2 2süb sü4be 3süc süd1 sü4da sü4de süden2 sü5den. sü4di sü4du 3sün s2üs2 sü3sse sü3ssi 2sv2 s3vl s3vo svoran2 s3vö 2sw s3wa s3we swe4gers sweh2 swe5st 4swie 4swil 4swink s2wist 4swit s3wö s3wu s2y s3ya 2sy2l1 sym3 sy2n3 3synd sy4no 3sys 2sz2 s4ze. 4s3zei 4s3zel 3s2zena s2zend 3s2ze3n2e 4szent 4szer s2zes s2zeß s4zew 4s3zie 4szim s3zins s3zo s3zs sz3t sz4ts s3zu 2ß1a2 ß3ab ßan1 ßas2 ßa4si ß3at3 ß3au 2ß1ä 2ßb2 ßb4ri ßbus3 2ß1c 2ßd2 ßd4ri 1ße 2ß1e2b 2ß1ec 2ß1ef 2ß1e2g 2ß1ei 2ß1ek ße2l 2ßelek ße3lu 2ß1emp ße4n3a4 2ßenerg ße2ni ß1enke ße2no 3ß2ente 2ßentz ße2nu 2ß1e2p 3ß2er. ßer3b ße2ro ß1erse ßer3t ß1erw 2ß1erz ße2s 2ß1es2s 2ß3estr ße2t 2ß1ex 2ßf ßf4ru 2ßg2 ßge2bl ß3gm 2ß1h 1ßi ßi2g1a 2ß3i2k 2ß1il 2ß1im 2ß1in 2ßk2 ß3kh ßk4le ßk4na ßk4ne 2ß1l2 2ßm2 ßmut2 2ß1n2 ß3ni 2ß1o2 ß3oa ßo4fe ß3ok ß1ö2 ßö4fe ßö4st 2ßp2 ß3pf 2ßq ßquet2 2ß1r2 ßrö2 ß3ru ßrus3 2ßs2 ß3sa ßsau4 ßsch2 ß3sk ß3sp ßs4pu ßst2 ß3sz 2ßt ßt1h ßt1in ßts2 1ßu2 ß1uf ßu4fe 2ß1uh 2ß1um ß2ung ß1uni 2ßunt 2ßunv ß1ur ß1ü ßü4be 2ßv 2ßw 2ßz2 ß3zs 1t t2aa ta3ar 4tab. 3taba ta2b3an 2t1abb tab2bau 4tabd 3tabel 2tabf 2tabg 2tabh 2t3a2bit 2tabk 2tabla 4tabm 2t3abn 2ta4br 4tabs t1abst 2t3abt 3tabu 4tabw 4tabz 2t1ac tach5te 3tacu t1ada 2tadd ta2der tadi3 tadi5o4 tadi4s t1adm t1a2dol t1a2dr ta3d2s ta2er 3tafe 4tafet 4taff t1afg t1afr 3tag ta2ga ta2g1e2i 4t3a2gent tage2s 4t1agg ta3gl 4t1a2go tag2s3 tag4san tah2 3tai ta3i2k tai2l1 ta1ins tai4r ta1ir. ta1i2s 2t1a4ka 2t1akk 2t1akq ta4kro tak4t3erf tak2t1o2 2takz 3t2al. ta2la ta3lad ta3lag tal3au 3talbr 3tal2en ta2l3end tal3eng ta2l3ens 3taler2 ta2ler3g ta2let tal2ga tali4ene tal2l3ac tal2la2g tal2leg tal2lei tal2let tal4leut tal4lin4s tal4los tall2ö tall3s tal2lus 2t1alm. ta2lop ta2l1o2r 3tals t1alta tal3th talt4r ta2lu 2tam 3tam. t1a4mer tam2ma2 tam2m3er tam4mi tam2mut t1ampl 3tams 4t1amt t1a2na tan3ab 4tanal ta4nat 2t1a2nä tan2c tan3d2ar tan2dr tand2st ta2nerf 4tanf 2t1ang t3angeh t3angel t2ango tan2gra t2angs 2tanh t2anho t4ani 3tanj 3t2ank tan2kl 4tankü 4t3anl t1anm 2t1anna 3t2anne t1ano 2tanom t1ans t2ans. 4tansi 2tanspr tan2tan t2ante. 2tantei 2tantr 2tanwa 2tanwä t2anz. 2t1anza 3tanzk t2anzp 3tanzr t1anzu tan2z3w tao2 ta3or t4ape ta2pes 2tapf ta2pl ta2poka t2appe ta2ra 2tarab 3tarabb 3tar5al 2taram t2aran ta3rant tar3ap ta3ras t2arau 2tarb 3tarba tar4beitn 3tarbek 3tarber 3tarbi 3tar3bl 2tarc 4tarchi t2ard ta2rel ta2r1er tar3g ta1r2h 3tari 2tark tark4l t2arko t2arl 2t1arm t2armä tar4nei ta2rom 4tarot 2tart 4tart. t2arta 4tarten t1arti 3t2artis tar2to tar2tr 3tartu 3tartü ta2ru 2t1arz 3tarzu t2as. ta3s2a tasau1 3tasc t1asp 4taspe ta3spr 2t3assi ta4stem ta4sto t2asy 2t1as2z t4at. ta2tab ta2tan 3t4atb t4ate tat1ei t5a2tel ta2tem 3taten ta2t1er 2t3atl 2tatom 2ta2tr 3tatsa 2tatta4 2tatti tat3zw tau2b1a 3taubh tau2bl tau2b3r 4taubs tauchs4 tauch3sp 4taud 2t1auf 3taufe. t3aufl tau3f4li 4taufm 4taufn t3au4f1o 4taufp tau3fr 4taufw 3taug 4t3auge t1auk 3taume 4t1ausb 3tausc tau4scha tau4schm tau4schr tau4schw 2tausd t2au3s2e 4tausee 4t1ausf t3ausg t1ausk 4t1ausl 2tausr 2t3auss 2tausü 2tausw 2t3ausz 4tauu 3tax taxi3s 4t1axt tä1c t2äf 3täg 4tägy 2täh 4täll 2t1ält 2täm tä4mi t1ämt t1ängs 2t1äp 2täq tä2reng tä2ru 2t1ärz tä2s tä4ss tä4st t2ät 3tätigk 4tätt 2täug 2täuß 2täx 2tb2 t3ba tbauer2 t3be tber2e t3bh tblocken4 tb4ra tb4ri t3bs tbus3 2t1c t3cha t3che tchen3 tch2i tch3l t3chr t2ch1u tch3w t3cl t3co tcor2 t3cr tc4up 2td2 tdar2m1 tdä1 t3do td4ri t3ds tdun2 3te2a2 te3ab tea3c te3ag 4teak te3al teamma3 te3an te3ar tea4s 3teba 2t1e2ben 3t2ech 4techd 4techk 4techm 4techt te2chu 2teck t1ecu te2dit 3tee tee3id te1em teen1 te2er. te1erw te2es 3tefa 2teff 2t1egg te2hac 2tehe te2him 2t1ehr te3hu 3teic tei3fl 2teign teik4 3t2eil tei4lent tei3m2 2tein teinen4 tei4nens t3einkü 2t1eis. t1eisb tei3sc te3isch. t1eiw tei3z4 te2kel 3teko tek3t4 te2la tel3ab tel1ac te3lan te4lant tel1au te2lä telb4 tel3d4 tel1ec tel3ehr 2telem tel3eng te2ler te2leu 2t3elf. te4lim te2l1in t1e2lit tel3le tel4lein tel3li tel4li4st te2lob te3lom te2lost te2l1ö tel3s2k tel3ta telt4r t2ema te2man te2m1ap tem3art te2mau 2tem2bo te2m1ei te2m1er 2temg 2te2mi tem3i2m tem3ing te3misc 2teml 2temn 3temod te2m1o2r te4mp 3temper 2tempf 3tempo tem3s4 te2mu te4mun t4en. t2en1a te4na2d tena2g te4n3an ten3ar te4nas te4nat ten3au te2n3ä4 t2enb ten3da t3endal tend2an 2tendap 2t1endf t4endi 2t1endl t4endo 2t1endp t4en3d4r te2n1e2b te2nef te2neh ten3ei te3n4ei. tenei2d tene4m tenen1 te4n3end te4nene te4neng te4nens 4t3energ te2n3ern te2ners t1eng. teng2a 2ten2gag te2ni te4nil ten1im te4nin tenk4 ten3n2 te2nol te2nos te3nö 2t3ensem 3tenso tens2p tens3th t2enta t1entb 2tentd 2t3entl 2t3entn ten4tric t1ents 4t3entw 2tentz te2nu t2enz ten2z3er teo4f t1epi te2pil tept2 t2er. t2era tera2b ter3ac te2rad te1ral te2r3alg te3ran. te3ranb te3rane te2r3ap 2t1erbs 2t1erbt 2t3erde. ter3d2s te2r1e2b te2rec 2t3ereig ter3ein te5rek te2rel ter3ell tere2m te2rema te2r3end te2rene te2reng te2r3ent teren3th terer3k terer4ku terer3l te2r3erp te2rers te2rerw t4erfr terg2 ter3ga t4ergem t4erges t4ergew ter4gieb ter3gl 4tergrei ter2gri t4ergru 2t1ergu 2tergü te4rh t4erhall t2erhan t4erhau t2erhäu t2erhei t2erhi t2erho t2erhu te3ria ter3iko teri4o te2rit ter3i2ta t4erlä ter3lei t4erli ter2lös 3term termas2 ter2mer t2ern. ter2nar t4ernc te1rob ter2obe 2teros t1e2r1ö ter3r2 t4erra 3terras ter4re. t4erro t4ers. t2erse t4erst. t4erstad t4erstä t6ersted t4ersti ter3str t4erstu t4erstü ter4sw ter3t4a ter4trä teru4 te4r1uf te3rung 2t3erwäh ter3z2a 2t1erzb t4erzei ter3zw te2s tesa4k te3sä te3s2c te3ser te3si te3so te3spen tes3pr 2t1essa tes3si tes3tät 3testb tester2 te4sterg te4st3erh te4sterk t3est3ri 3tests t1eta te2tabl 2te2tap te2tat teten3 2t1e2th te3tho te2tik 2tetl teuer5b teuer3r 3t4euf teu4fa te1u2n 2t3eup teu2rob te2va te2vi tewa2s 3tewo 2texam 2t1e2xe te3xel 2t1e2xi 4texp tex4ta 2t1exz tè2 2tf2 tfäs3 t3fj tf4la tf4lö tf4rö tf4rü 2tg2 tga4s3er tga4su tge4nen3 tger2a tger2i tg4ra tgro3 2th. 2t1h2a 3tha. 3t2hag 4thak 3thal. 3thalh t4hali t2hals 4tham t2han. t3hand 4t3hap 4t3hau 2t1hä 3thäi 4thäl 2thb th2e 3t4hea 2t1heb 4t1hef 2t1hei the1in 4theit 3t2hek 2thel 3thema 2themd t1hemi 2themm t1henn 3theo t1herd 3therm thero1 2t1herr 2t1herz 3these 4t1hess t2heu 2thf th2i 3thi. thic3k4 thi3er. 2t1hil 2t1him 2t1hin thi3nu 2t1hir 2thk 2th3l 2th3m2 thmu2 2th3n2 2t1hob t1hoc tho3chr t1hof 2t1hoh t2hol. t2holo t1hols t1holt 2tholz t2hom t2hon 4thops tho3ra 2t1hose t1hot 4thote 2thou4 t1hov 2thö 2thp th2r2 th4ro 2ths 2tht2 t1hu 2thub 4t3hun 2t1hü 2thv ti3ac ti1ag 2t3iago tial2l ti3alo ti1a4m ti1as ti2ä ti1ce ti3chr 3ticket t2id. ti3de. 2tidee ti2d3en2d ti3dy 3tief. 4tiefel 3tiefl tie2fr ti2e1i ti1el tiel3a tie2n1 ti3ene tie2rei tie2reu 3tierr tie5sse ti1eu ti3fe tif3f ti3f4r tifter4k ti2gerz ti2git tigs4 tih2 tihi4 ti2kam ti2kar tiken2 ti2kent ti3k4ere ti3kerl ti2kin ti4klu ti2kn ti2kop tik1r ti2kra ti2krä ti2krei ti4kro ti2lant ti2lar til3d ti2lei ti2lel 3tilg tille4b 2tillu ti2lö tilt4 ti2ma2g tim2man tim4ma4te timmer2 tim4merg tim4mit 2timp t4ina ti3naf ti3nak ti2n3an t1ind ti3n2e tine1i ti5nen 2t1inf tin2ga tin3gen tin2gi ting3l ting3s4 2t1inh 3tinis t1init t1inka tin2k1l tin2kn t1inku t2inn ti2nor t1ins t2insä 4t3inse tin2spa tin2sum t1int 3tinte. 2t3inter ti3nu tin2um 4t1inv 3tio ti2osk tioxi3 3tip. ti3p4l 3tipp 3tips ti2que. 3tirad ti1r2h ti4ron t2isc ti4schei ti2schr tisch3w ti2sei tis2el ti3sk t1isl t1iso ti2sp t1isr tiss4 ti3sth ti2s5tic ti2s1u 2t1iß t1it2a ti2tal 3tite ti3th t2iti 3tiu tium4s ti2van ti2vel tiver2 ti2verh ti2verk ti2verl ti2v1o ti4v3r ti2za ti2zir 2tj 2tk2 tklat3 tk4ne t3kr 2t1l2 tlan2g tlei2bl tlei4der tl4er tle2ra t3li tlings5 tli5ni tli3s tlit1 t3lo 2tm2 tmal2 tm4am tmen4schl tmen4t3 tmo4des t3mö 2t1n2 t3na tn4an t3nä t3ne tnes4 t3ni tni3v to3ar to3a4t t2oba 4to4bj tob2l t1obs 3tobt to1ch t3ochs 3tocht 3tod tod1er2 todes3t to2dun toe2 tof4f3ent tof2f3er 2toffi 2t3ohr 3toil toi4r tok4l to3le tomar2b to4mene 3tomi 3tomo to4m1u to5mus to2nan ton3au tond2 to2n2eh toner4ke to4nid to2nob 2tony 3too to4pad to4pak to3pas to2pat top1hi to2ple 3topo 2to4pt t4or. tora2g to4rän t1ord t2ordi 2t3ordn t4ore 3tore. to2rel to2rem to4renna 3torf tor2fan t1or3g 2torga 4t3orient torin2s tor3int to2rö 3torp t4o4rs 2t1ort. tor3t2a 2t1orth 4tortn 4tort4s to4ru to5rus to3rü to4rüb to3s2 to4sb to4s3ka t1o4sz to2tä to2tho tot3s4 3t2ou touil2 to3un 3to1x tö2c 3töch 4töck 2t1ö2d 2töf tö4fe 2t1ö2k 2töl. 3tön t2ör t1ö4st 3töt 2tp2 t3pf tpf4l tpi2n t3pl tp4lu tp4rä t3ps 2tq t2r2 2tr. t4rab tra3cha tra3chl 2t3rad. 2trade tra2dem t3radie tra4fah tra4far t4rag tra5gen 4trahl 2trahm 3t4rai 2t3rake t4rakt tr4al tral3l 3tram tra5me 3t4ran. 4trand 4trang t3rann 3t4rans tra3po 3trapp tra4sta tra4str 4traß t1raub 2traub. 4trauc t4rauf 2traup traus2 3träc 2träd 3t4räg 3träne 4träng 4träs 4träß 2träuc 4tre. 2trea t3reak 4treb tre2b3r 4trec t3rech t4reck 5treck. 2t3red 3tref 4trefe 4trefl 4trefo 4treg t3reh t4rei. 3t4reib 4treif 2t3reig 2t3reih 2t3reim 2t3rein 2t3reis tre5isch. t3reiß 4treit t3reiz 2trek 2t3rel t4rem t4ren. 3trend 3trennu t3rent t3repa 2trepe 2t3repo 3trepp t4rer t4res. t3rese 3tret tre2ta t4rete tret3r tre2tri 4t3rett t4reu 3treuh 2t3rev t4rex 2trez 3tré 2t3rh 3t4rib 4trich. t4rid2 3trieb trie3fr tri2en tri4ena tri3ent tri2er tri4ers tri3est. 2trig. tri3gl t4rik tri2ke. tri2kes 3triko t3rind 2tring tri3ni 3trink 3trio tr4is 2triß tri2x trizi1 tro3b4 3troc 4trock. tro2kes trol2la tr4om tro4men 4tromk 4troms tro3na t4rop tro3pe 5tropf tro3sm 3trost t1rot. 2trout t4roy 4t3röc 2tröh 4tröm 3tröp 2t3rö4s3s 3tröt 3trub 2t3ruc 4truf 3t4rug 4truk trum2 t3rumä trums3 t3rund 3trunk 3t4rup t3russ 2t3ruß 2trut1 tru2th trü3be trü3bu 2t3rüc trücker4 t4rüg 3trümm 3try try3o 2ts ts3a2b t3sac tsa3che t4sachs t2s1a2d ts1ahn t3s2akk t2sall t2salt t4samp t4s1amt t2san ts3ane tsa2p tsa2r ts3are ts3ari t2s1a2s tsa3ssen tsa4st t3satz t2sau1 ts2av t2säh ts1än ts1äus t2sce t4schart t4schef tsch2li t4schro t3schü ts2cor t2s1e2b tse2e t2sef tse2he. t2s1eic t3seil t3seme ts1eng t3s2ens t2s1ent t2s1ep t2s1er tser2u t4s3essen tse2t ts1eta t2s1eti t2s1ev t2sex t3sexi tsh2 ts3he t2s1i2d t2s3i2k t2sim tsing4 t2sini ts1ir t3s2kal ts2kele tski2 t4sko tsmas2s tsma3sse ts1off t2s1op tso2r ts1orc t2s1ori ts3ort. t2sö t2spac t2spal ts2pare t2spat t2spä t3sped t3spei t3spek t2sph t4s3pic t4spins ts3ple t2spo t3s2pon t3s2por t2sprei t3spru ts3s2 tsser2 tss4k tss4t ts5ste tst2 t2stabe t2staf t4stag ts3tak t2stale t4s3tanz t4stas t2s3tat. t2s3täti t2stea t4stee t4stele t4stens t4s3tep t4sterm t4s3terr t4s3th ts3tie ts4til t3stim t4s3tis t4stit t2stoch t4stoi t4ston ts3tor tst4r t2strac t4strad t4s3trak t3strec t4stren ts3treu t3stric t4strie t4strun tst4u t5stub t4sty ts1u t2su. 3tsubi t2sumg t2sums t2sumv t2sumz t2s3un tsü3s tswa2s t3sy t4sza ts2zin 2tt tt1ab tt2ac tt3achs tt1ad tt2ag tta4g3ess t4t1ah tta4ke tt2al t2tan ttan4a tt4anke ttank3l t3t2ant t2t1ap tt1art tta3st tt3atr tt1äh t2tän tt1ebe tt3echs tt1eif tt1ein t2t1eis tte4l1a2 tte2l3e2b t2te2leg tte2len tt2eli ttel3l ttel1o t2temu tte4na ttens2 tten4sem t2tentb tten3te t2tentf t2tents tten3z t2teo tte4r3ar t3t4ere tt2erg tteri2e tte4rik ttermas5s tter3nä tte2ro tt2erö tt4es1 tte4s3a tte4s3ä tte4so t3tess ttest4r t4teuf tt2häu tthä3us tt1hi t2t1ho t2ti4d t2t3igi t2tins tt2int t2tiso t4t3la t4tli tt5nan t3to. t2torg t3tos ttras3s t3trog tt3rü3 ttschi4 tts1eh tt2sen tt2spe tt2spr tt2s3tät tt4s3tem tt4ster tt2sum tt3sz t2tu2c tt1u4f t4tunt t2tu4s ttü2 tt3z2 ttz4w 3tua tu4ale tu1alm tu1alv tu3ant tub2 tuba3b tu2chi tu1cho tudie4n3 3tue tu2ere 2tuf tuf2e tu5fen t3u4fer 3tuff tuf4fel tu2gan 3tuge 2tuh tuh4ler tu1ist t3u2kr tul2i tum2b5l 4t3umf 2t3umg 2t1umh 2t3umk 2tuml 3t2umo 2t3umr 2t3umsat 2t1umsc tum2si tum2so 2t3umt 2t1umw t3umz 3tun. 2t1una 2t1und tund2e 3tune tun2en 2t3unf t3unga tungs5 tun2i 2tunif 2tu2nio 2tuniv 2tunm 3tunn t1u2no t3unr t3uns 3tuns. 2t3unt 2tunv 2t1up. t1upg tu2r1a2g tu2ran turan4l tur3ans tu2ras tu2rau tu2rä tur1c tu2r1e2b tu2rei tur3eis tu2rene tu2r1er tu4res tu2re4t tu2r3e2v turf4 tur3g2 tur1in tur4mun 3turn tu2r3o tur3s2 tur5sa tu2ru tu2sa tu2schl tu2s1e tu2so tut2a tuto3 4tutz 2tüb tü3ber. 3tüch tück2s 3tüf 3tür. tür1c 3türe 3türg 3türs 3türw 4türz 3tütc 3tüte 4tütz 2tv2 t3vo t4vo. tvoran2 2tw t3wa2 twegs2 t2wist tw4ri 3ty. t1ya ty2p1a ty4ps 2tz t2za2 tz1ag tz1ap tz3ar tz1au t2z1ä t3zäh t2z1ec t2z1e2d tz1ehr t2z1eie t2z1eig t4z1eis tzei4tend tze2m tz1emi tze4n1 tz2ene tzen3ta t2zentg t2zentl t2zents tzer4gre t2z1er2m tz1erw tz2er3z tz3erzi tzes3t tz1e2t tz1i2d tzi4m tz1imi tz1int tz1inv t2z3om t2zop tz2th tz2tin tzu2gu tz1unf t2zuni tzwan2d3 tz3wä tz3wi t3zwie tz3wu 2ua u3a2b u3a2c ua4ch ua2dan uad4r u1a2g u1ah ua4ka u1al. u1a2l1a u1a4l1ä u1alb u1ald u3aleb u3a2lent u3aler2 ual3erk u3a2let u1alf u1alg u1alh u3a2lid ual3l ualle2 uallö3 u1aln u3a2l1o2 u1alp u1alr u1als u1al3t4 ua2lu u1alw u1al3z4 u1am u1an. ua3n2a4 u1ans uant2 u3ar. uara2b u1ars uar2t3an ua3sa ua2th uat2i uati4ons. uat2o u3au uau2s3 u1ay u1äm u1än u1äu 2ub u2barb ubb4l ube2be ube2e u2b1ehe ub1ein u2b1e2m ube4n1a uben3o ub2er u2b3erde ubert4 ub4es ub1eul ub4is u3b4it ub2l ub3läu ub3lic ub3lu ub4lut u2bob u2b3ok u2bop u2boz ub5rah u2b3rit ub4ro ub4rü ub2san ubsau2 ub4s3che ub2s1o ub2s3p ubst4 ub4sz ub3t2h ubu3s 2uc uc1c u4ch. uch1a u1cha. uch1ä u1che uch1ec u2ched uch1ei ucher3f ucherma4s u1chi uch3im uch1in uch3l uch3m uchma4ss uch3n uch1op u2ch3r uch2sel uch2so uch2sp uch2tak uch3tan uch4t3erf uch4t3ert u1chu u2chum uch3ü uch3w u1ci uck3elf uck3i uck2sti uck3t u1cl uc4re 2ud u3d2a uda3d ud4at ud2e ude1e ude3i2 udein5 udel3se uden1 uden3e udert4 udi3en udiener4 udio3 uditi4 u3d2ob u2don ud3ra u3dru 2u1e ueb4l ue1ch u2ed ueen4 u2eg u2eh ue2ke u2ela ue2lek ueli4 uel2la uel2lä uel4lent ue2mi uen1 u3en. ue4n3a2 ue2nä u3end uene2 ue2neb ue2ner uen2gag uenge2 uenge4m uengene3 uen2gl ue2ni uenk4 ue2no ue2nu uen2zu u2ep ue2r3a2 ue2r1ä uerb2 uer4baut u3erbu uer3d2 uere2 ue2rec uer4ei. u3ereinn uer3ela u3eremp u3e2r3ent ue3r2erb u3ererf ue2rer2g uerer2h uerer2k uerer4m ue2rers uerer4sa uer3esk ue2re4t u3erex uerg2 uer3ga uer2geb ueri2d ue2r1i4m uerin3s u3erin2t u3erl. uerma4s u3ern uer4nan uer2nar uer2ne ue2r3o4 uer2ö uer3ra uers4p uerst4 u3ersti uer3t2 u3eruh u3erum u3erunf u3erunt u3erur uer2wec uer3z2 u3est. ue2ta ue4tek ue2tik uety2 u2ev ue2x1 u2f u3fa uf1ab ufall2 ufa2n uf3ane uf3a2r ufa2t uf1au u3fä u4f1än uf1är uf1äs ufä6sse uf1ä2ß u3fe u4f1ei ufel4s3a u4f1em 4ufen u4fent uf2ere u4ferf u4f1erh ufer4lau u4ferle u4ferne u4f1eß u4f1et u4fex 2uff uf3f2e uffel2 uff4l uf2fro u3fi u4f1id u4fim u4f1ins uf3l u4fläs uflos3 uf4lü uf5lüd uf5lüm u3fo u4fob u4fof u4fop ufo2r uf1ori u3fö uf3r u4fru uf3sä uf5sät uf2spo uf2stab uf4ster 2uft ufta2b uft1eb uf3ten uft3erd uft3er2g uf3ti uf4tin uft3s2 u3fu u4fum u3fü 2ug u3ga. ug2abe u2gabte ug1a2d ug1ak u2gana u2ganb ugang4 u2gani u2gans u2gant ug1ap u2g1ar uga4s ug1au ug3d2 u3ge. u2g1ec ug4eg ug1e2i u2geig ug2eil u2g3ein uge2lob ug1emi ugene2 ugenma3 u2g1erf u2g1erk u2g1erl u2gerr u2gerv uges2 u3ges. u2g1esk ug2et ug2gl ug4gt ug3hu u2g1i2d u2gim ug1in u2gins u2g1l u4glä u4gleitb u4gleitu u4glic u4glis ug3liz u4g3lo u4glu u2g3n ugo3 u2go4b ug3oc u3gon ugo4p u2g1o4r u2gö u2g3ram u2g3rä u2greg u2g3reis u2g3res u2g3rie ug3ro ugro3s u2grou ug3rüs ugsma3 ugsmas2 ug4spe ugs4por ug4spr ug4spu ugs3t2 ugs4tan ug3stä ug2ste ugs4to ugs4tr ug2stur ugs4tü u2gum ugu4ster u2gü u1h uh2au 2u3h2e uhe3a uhe1e2 2uhi 2uhl uh1la uh2lar uh1lä uh2l1ei uh2l3ent uhl3erb uh2li uhl2ö 2uhm uhme4 uh1or uhr1a uhrei2s uh2r3er3 2uh3ri uh4r1in uh4r3o uh2ru uh4rü uh3s4p uh3t2 u2hu 2uhü uh3w 2ui ui2a ui1ch ui2che u2idi ui2du u1ie ui1em u3ig u4ige uil2les u1im u3in. uin3n u3isch. u3ischs uis2e uisi4n ui2st ui3sta uit3s uji3 uk2a uk1äh u3käu uk2e uke2n1 uk2l ukle1 uk4na uk4ne uk4nu u2k1ob uko4m1 ukom3a uk2ö uk4re uk2ta uk2t1el uk2t1er uk2tin uk2t3o2ri uk2t3r uk2tum uku2s uk2ü u1l ul1am ulan2e ul2ar ula2sc ul1äm ulb4l ul4dan ul2dar ul2dr ul3dra uld2se 2ule u2l1el ul1emb ule4n1 ul1er2h ul1er2r ule4s5t ule2t ul1eta 2ulf 2uli ul1id uli2k ulin1a ul1ins uli3p ul3ka ul2kn ulla2g ull1au ul2lä ul3len ul3l2i ulli2n ul2lo ul2lö2 ull3s2 ulm2e ulni2 ulo2i u2lop u2l1or ul2ö ulp1h ul2pha ul2sa ul4sam ul2s1ec ul2sei ul2ser ul2sum 4ult2a ul3tan ult3ar ul2tau ulter2m ul2tri ult3s u2lü ul2vr ul3z2e ulz4w 2uma. u2maa u2m1ad u2m1a4k u2m1all um1ang u2m1ant um1anz u2m1ap um1ar u2marc u2marm u2mart u2matl u2matm um1aus u2maut um4ay u2m1äh 1umd2 u2m1e2b u2m1eck u2m1ef u2m1ein ume2n1e um3engel u3mer. umer2a u2m1erf um1erg u3merk u2m1erl um1erw ume4s 1umf 4umfi 1umg um1ind um1inh um1ir umi2t um1ite 1umk 1uml umm4a 2umme um4mess um3mi um3n um1ob u3mol um3ot ump2fa ump2fin 1umr um4sam um4s3an 1umsat um4sd um2s1er 1umset um4sf um4sg um2sim um4sj um4sk um4sm um2s3pe 2umspf um4ss um4stem um2su um4sv um4sw um3t2 um4ts u2mum u2m1u2r 1umz un1 2un. 2una. 1unab 3unabh un2a3br un2ag un2al u3n2am u2n3an u2nap u2narb 2un2as un3at unau2s un2är 2und. un2da unda2b un2dän 1undd 2unde un3de. underer4 und3erf und3erö underten4 under6tend und3erz un2dex 1undf 2undg un2did un2dim 1undn undo2b un2dop 2un2d3r 4unds. 2undsc und3s2p un2d1um undü4 1undv 1un4dz u3ne une2b une2d un2ei. un3eid un3ein un3eis un2emi une4n1 un2ens unen2t un2enz u4nerk u4n3erz. un2es2 unf2 un3fa un2gab un2gam ungar4 un2gat 1ungeh un3gen 3ungena unger2e 1unget 1ungew 1ungl ung3lat un2glu un2go un2gr ung3ri un4g4s3 ungstra4s5 u3nic un2id un3ide 4unie 3u2nif uni3k4 un2im 1unio un2ir un3iro un3isl u3n2it 1u2niv 2unk un2k1a un3ker un2k1es un2ket un2kne un2ko4p un2kro unk3s2 unk4tit unk2tr unlö2 1unm un4n1ad unn2e2 unne4n u2nob uno4r un2os 1unr uns2 2uns. unsch3el 1unsi un3sk un4ski un3s4p uns4t unsta2g uns6tel unst1r 2unsy 2unsz 1unt un3ta un3te unte2ri 3unterr 2unti un3tr unt3s 2untu 3unty 2u2nu u3nuc unu4s u1nü 1unv unvol2 unvoll3 1unw 2unwä u2ny 2unz un3z2a unz2e 2uo u1o2b u3of u1op u1or u3or. uo2r3a uor3c u3oret uo2ris u3ors u1os. uote2 u1ox u1ö2d u1ök u2p u3pa u3pä 3upd u3pe2 uper3 uperer4 u3pé up2fa upfe2 u3p4fl u3p2fu u3ph u3pi up4id u3pl up4lu u3po 2upp up2pl up5pun u3pr upra3 up4t3a2 upten1 up4tene upt3erf upt3erg upt3erk upt3ers upti2m upt3in upt1o up4tr u3pu u3py up4yb 2ur. u1ra u2rab u3raba ura2be u2r1aka u2r1akt u2ral2t u2r1am ura4na u3rand uran4fän ur1ang uran2ge ur2anh ur2anr uran3s ur1anz ur3ap u2r3ar ura4ri u3rasc ur1a4sp ura4str ur4a3te u2r3att ur1au 2u1rä ur1äl ur1ä4m ur1än ur3b2a 2urc urch1 urchas2 urch3s urcht3e ur3d2a ur3d2i ure1e ur1eff ur1ehr ur1eig u2rele ure2n ure4na u2ren2se u2rentn u2r1ep urer3h urer3k ur2ert u2rerw ur1eta ure3u 2urf urf3l ur2fli ur2fro urf2spr urf3t ur2gei ur4gense urg3inn urg1l ur2gla ur2gri urgs4 uri2c ur1ide uri3en u2r1ind urin2se urin4sek u2ri2so ur2m1ar ur2matt ur2mau urm2ei ur2mern urme2t ur2mum ur2mun ur3n2e urn2o 2u1ro urob2l ur1off uro3h2 2u1rö ur3p 2urr ur3re ur2rh 3ursac ur2san ur4sau4 ur2s1er ur2spa ur2sun urt2 2urta ur4tai urt3ein ur2tro urts2c 2urtu ur1umh ur1ums ur2z1a ur2zä ur2z1ec ur2zep ur2z1op urzt4 ur2z3w 2us us3a2b usa2gi usal3t u4s1amb u4samt u2sang us4ann us3ark us3art usa4s us1ast us3ate u2säh u2s1äs us3b u2sce u2schab u2schak u2schar u3schart u2schef usch3eic u4schen4e u3schi usch3mü usch3wer u3se. u3s2e3b u2s1ec use1e use2ei u2s1ei u3seid u2sen2se usen4te. u2sentl use2rec u2s1erl u2serp us1erw u2s1ese u2sex u3si. u2sid usi3er. usi3ers. u3sig usi2kat us1inn u4ske us3kl u4sko u4skö u4sku usmas2 usma3sse us3oc us1oh u3sol u2sop us1orc us1ou u3sov u2spac us2par us3part u2s3pas us3pe u5s4pec u3spek u2sph us3pic u5spit u2spo us2por u2spu usrich5 u4ss. us2s1ad u4ssc us2s1eb usse4g u4s5sel us2se4n us3sende us4seni us2sep us2ser us3ser. uss3erf us2sez u3s2sig u4ssl us2sof u4ssr u4sst us2sum u2stab u3stad u3stal us3tas us3tau ust3erl us3ther us3tic u3stis us3tob us4tod u2s3tor us4tras u2strä us4trop u2s3tur u2suf u2s1umb u2sumd u2sumg u2sumz 3usus u2sü 2uß u2ß1u 2ut u3ta. u3taf u2t1alt ut1a4m ut2ans u2t1ap ut1ar u2taut ut1äh u2t1är ut3c u3te. u4te2d ut1ei. ut1eie ut1ein ut1ela ut2em ute2n1 uten2a u2tent ute2ra ute3ras ute4ring uter3k ut2erl ute2ros u3t2es ut2et ut2ev u2t1ex utfi2 ut3hal ut3hei ut1hel u2t1hi u2t1ho u2thu u2t1id u2tigel uti2vi utli4n utmas2 utma3sse u3to. uto3c u3tom uto3p u2tops utor2a u2tord uto2re uto2rin 4utou u2töl ut3rea u2trou ut3rü utsau2 ut2säu ut2scha ut3sche ut2schl ut2schm ut2scho ut2schö ut3ser u4t3sk uts2p ut3sta uts4to ut3t2l utts2 utu4b u2tum utu4n u4t1une utu4re utu3ro utu3ru utz3a utze2 ut2zeh utz3eng utz2er utz4erg ut2zet ut2z1in ut2zis ut2zö ut2z3w 2u1u2 uu4fe uum1 uum3a4 uume2 uungsma3 uungsmas4 u1ü uü4be uv2 u2ve. uve3rä uv4re 2u1x ux2e uxi3 ux2o ux3oe uxt2 u1ya 2uz uze2 u2z1ec u2z1ene uz2er uzo4f uz3ot uz3we uz3z2 uz4zb 1ü2b üb1ä 2übc 2übd üb2e2 übe3le ü3bem ü3ben übe4na übe3ne über1 überas4 ü3bes ü3bi üb3l üb3r üb5rig 2üc ü1che üch3l üch4s1c ücht4e ücke4n1 ück1er ück3eri ücker4ke ücker2l ü2d üd3a2 üda4m üda4s ü3de üde2l üden2g ü5d2ens üdf6lan ü3di üd3o2 üdo4s üdö2 üdö4s üd3r üd3s2 üdsa1c üdsau2 üd3t2 ü3du2 üdwe4 üe2 üeb3 ü1ei 2üf ü2f1a ü2f1ä ü2f1ei ü2fent üfer2 ü2f1erg üf2fl ü2f1i ü2f3l ü2fo üf3ten ü2fum üg2e üge2l1a2 üge2lä üge4lec üge4lei4s üge2lo ügen3s ü2g3l ü2gn üg3s2 üh3a2 ü1he ü2h1ei ü2h3e2m ü3hem. ü2h1eng ü2h1ent ü2h1erf ü2h1er2k ü2h1er2z ü2hex üh1i2 ühi4r ühl1au üh1lä üh2lel ühlen1 üh2lene ühl2er üh2lö ühl2se ühl4sk ühl2sta ühl2sti üh3mo üh3ne üh1o üho4f üh3r2e ühr3ei. ühre2n1 üh1ro ühr3ta üh3s4p ühs4t üh3stu üh3t üht2a üht4r ü1hu üh3w ük2 ül1a ül2c ü3l2e ü4l3ef ül3eim üle2r3a2 ül2la4 üll1ad üll1au ül2lei üll2erg üller2z ül4leu ül2lic ül2lid ül2li2n ül2lo ül2lö ülls2 ü2lö ü1lu ü2m ü3me ü4ment ü4m1e2p üme2ra ü3mi ü4m1id ü4m1in üm1u 2ün ü2n3a ün2da ün3di ün2dr ü2n1erd ünf1 ünf3li ün2g3l ünste2r3 ün2za ün2z1i ünzu2 ün2zun ün2zw ü2p ü3pe üpf3l ü3pi ü3pl üp2pl ü3pu 2ür ür1a ü2r1ei ü2r1e2l ür2f1er2 ür2fl ür2fr ür2g3eng ürge2ra ürk2e ü3r2o3 üro5fe ürom2 üro5ma üror2 ür2rh ür4ster ürte2l1 ürt2h ürz2a ür2z1in ür2zö ür2z3w üs2a ü3schi ü2schl ü3s2e üse1e2 üse3l2 üse4n üse3r4 üs2p ü4ss. ü4s4s3a üs4sä ü4s2s1c ü4s3sel ü4ssl ü4s4s3o ü4s4st üs2su ü2st3a üs4te ü4stei üste2n 2ü1ß 2üt ü2t1al üte3m üte4n üten3s4 ütent4 üten3z2 üte2ra üte2re üter3ei üterich4 üter3n ü2t1h ü2t3r üt2se üt2s3t ütte4n üt2tr üt3zen üt2zw 1v 3va. 2v1ab vab4r va1c va3f va3g2a va2la 2valu v2an. 2vanb v2ans 2varb vari2e v1arm vas2 2v1ass va2s3to va2t1a4 va4tag va4tan va2tei va2t3eng vates2 va2t3h va4tid vati3k2 va4tim va4t1in vati4ons. va4tord va4torg va2t3r vat3s2 va2t1u vat3z 2v1au 2vb 2v1c 2vd2 ve2 ve3ak 2ve3al ve3an ve3ar veau3 ve3b veb4r ve3c ve3d ve3e2 ve3f ve4ff ve3g ve3h 2veig v2eil 2vein veit2 veits3 ve3la 2velan vel2ar ve4l1au v1ele ve3lei ve3l2i ve3lo vel2o3p ve3ma ve3me 2v1emp 2ve3mu ve3nal ve4nas v1endu ve3ne venen2d 2venerg ve3ni ve4nin ve3nö ven5st ven6t3ag vent4sk ve3nü ven2za 2veo ve3of ve3pa ve4pi ver1 ver3a ve3rad 2veral ve3rand ve3rane vera4s ver4bart ver3b2l ver3d4 vere2 vere4i verein4s5t ve4rf4 ver3g4 vergas4 verga5sse ve3ri ve4rin ver3k vermas6sen vern2 ver2sep ver3sta vert4 ver3te ver3u4 ve3rus ve3s 2vesc 2vese ve4sh ve4s3p ve5spi ves4t ve3t vete1 vete3r ve4tl ve4ts ve4tt 2veü ve3v ve3w ve3z 2vf2 vf4gh 2vg 2v1h vi1an vi3ar vi4a3t vi3de 3vie vie2h1a vi2el viela2 viele2 vi2er vie2rec vie2w1 vig2 2vii v2il vi2l1a vi2lä vi4l1e2h vi2lei viler2 vi2lers vi2l1in vi2ma2 vi4na vin3d ving3 vings4 v1ins vi3sa vise4 vi3s2i vi3s2o vi2sp vis2u viv2 viz2 vize3 2vk 2v1l2 v3le v2lie 2vm vm2e vmwa4 2v1n2 2v1ob vo2be vob4l voge2l1 vo2gu vo2i vol2a vol4la voll3ar voll5auf. vollen4 voll3end voller4t 2v1op vo2pe vo2r1 vo4r3a voran6schl vor3g vo3ri vo4rie vo5rig vorm2 vormen2 vor3o vorö4 vor3t4 vo4ru vo5ruf vot2a 2vp2 v3pf 2vq vr2 v1ra v2ree v4ret 3v2ri 2vs2 v3sz 2vt vue3 vu2enu vu2et 2vumf 2vumg 2vumk v1ü 2vv 2vw 2vz 1w w2a 3waa wab2bl wa3che wach4stub wach2t4r 3wack waffe2 waffel3 3wag wa3ge wa5ge4n wa2g3n wag5ne wa3go wag4r 3wah wahl3ent wah4ler wah2l1i wa4ig 3wal wala3c wa2lar 4walb wal4d3a wal2din wal2dr wa2les wa3li wa5lis wal2li2n wal2m1 wals2 wal4t1a wal4terl wal2to wal2tur wa3na wan2d1a2 wan2dr w3anf wan3g2e wang4s 3wann wan4z3en4d wan2z3er wa2p 3war2e ware1i wa3ren 3warn war4ni war2th wart2st war2za 3was wa3sa was4c wa2scha wa3sche wa4schei wa3schi wa2sch3l wa2schw wa3sh wass2 was3s4e2 wa3su wäch3s2e 3wäh 3wäl wäm3 4wäng 3wäs3 wä4ss wäss4e 2w1äu3 2wb2 wbu2 2w1c 2wd we2a we2b1a webe1i we2b3l we2bo we2b3r webs2c wee2 weed3 wef2e we2fl 3weg we2g1a we4g1ei weg3ersc we4g3l we4gn we2g1o4 we4g3r weg5re weg3s wegs2a wegs4t 3weh weh2r3er2 wei2bl weib4r 4weie weifel4d wei2gr wei2ha wei3k4 3weil wei3le weinsau4 wei3sc weisch4 wei2t1r wei5ze wel5le4 wel4schl wel4schr wel2t1 wel4t3a2 welte4 wel4t3en4d wel4th welt3i welt3r wem2ma2 wen3a2 wen2gl we3n2i wen2kau wen2kla wen2k3ri we2r3a2 wer5be werbe3i wer2bl werb2s wer3d2 3werdens 3werdu werer2 wer2fl wer2ga wer2gel wer2g3o wer2gr werin2 we3rins we2ri4o 3werk. wer4k1a 3werke wer2ki wer2k3l wer2kn wer2k3o wer2k3re wer2ku we2rö wer2sta wer2t1a wer2tä wer2tei wert3eig wer4t3erm wer2th wer2tin wer2t1o2 wer2tre wer2t3ri wer2tum 3we3se wesen4s3 we2s3p wes4t we4st1a we4st3ei wes6tel we5sten. we4sten4d we4steu wes6tex we4sti we4st1o4 we2st3r we4stu 3wet 4wets wett3s 2w1ey 2wf 2wg whi2 w3ho w2i wicht4s 3wid wi2e 4wieb 3wied wie3l2 wie3n2e wie4st wik2 3wild wim2ma wim4m3u win2a win2d3ec win3del win4derz 3win2d5r 2wing win2g3r win2kl winner2 win4n5ersc win2no win4num win3s wint2 3wi2r wi4re3 wis4ch wi3s2e wi2s2p 3wiss wiss4z wi3st wi3th 3witz. wit2zer 3witzl wiz2 w2j 2wk 2w1l 2wm 2wn wns2a wn3sh 3wo1c wo2cha woch2e4 woh2lei woh4na 3wolf wol3fe wolf2s wol4la wol2lä wol2ler wor3a wor3d wo2r3i wort1a wor2tel wor4terh wor4t3r wo4r3u wor3ü wot2 3wöc wöl2fo wört2h 2wp w2r w3re w3ro 2ws w3s2h w3s2k w4sk. w2s1u 2wt wti2 w2u 3wuc wuch4sc wuch2st w3uf wu4fe wuls2 wul3se wund4e wung3r wung5s4 wun2s wunsch3l 4wur. wur2fa wurf1o wur2fr 3wurst wur2sta wurs6te wus2 wus4s 3wu2t1 3wüh 3würf 3würst wüs2 2ww 2wz x1a 1xa. 2xa2b 1x2ac 1x2ad 1xae xa3fl 1x2a3g2 2xal xal2l x3am xa5met xa4mi x2an. xand4 1xane 1xani x2an3t2 xanti3 x2anz xa2r 1x2as xau3 xaus2 xa2z 2xb xb4ri xcal2 x1ce x1ch x1cl 2xd xda2 1xe 3xe. 2x1e2g xe4ge 2xek xe2l x1ele xe3lei x1em 3x2em. 2xemp x2ems x2en 3xen. xen3s2 3x2er. x2ere 2x1erl xer2la x2ern xers2 x2ers. xe4rx 3xes 2x1eu 2x1ex 2xf 2xg 2x1h xi1c xich2 xi2dan xide2 xi2dei xi2d3em x1i2do 3x2i2e xie3l xi4en xi3g 3xi3k xik4l xi2ler xili3a xi2lo xi2l1u 1xim2 xin3s2 x2is xi2sa xi2s1e xiso2 xi2sp xiss4 xis5st xi3stä xi2su 3xit x1i4tu xive4 2xk2 xkal2 2x2l2 x3lä x3le 2xm 2x1n 2xoe x3o2l x1o2r 3xos2 2x1ö2 2xp xpor4ter4 xpor2t3r x1r 2xs2 x3sh x3sk x3sz 2xt xt1a x3ta. xta2b3 x3tan xt2ant x3tas x2t1ä x3tät xtblock3 x2t1e2d xt1ein x2t1el x2tent x2t1er2f x2t1ev xtfi2 x2t1h x2t1id xti2la xtil2lu x2t1o2 xto4r xtra3b4 x2t3ran x2trau xt3rec xt3s2 x2t1um x2t1un 1xu1 xu2n 2xunt xu2s3 xusa2 xuss2 2x2v x3ve x3vo 2xw 1xy. y1 y2a 2y3ab 1ya2c y4ach ya1h y3al. ya4mo y3an. yan2g y3ank y3anz y3ar y4a3ra y4are yas2 ya4st y2än ybe2r y2chi y3chis ych3n ydi3e yd4ri2 yd5ric ydrid3 yd4ro3 y2ec ye2d y2ef y2el2 yen4n yera2 y2ere yer2n1 y2e2s y4es. y4e3sp ye4st ye2th yf2 ygie3 yg2l y3ho yhr2 2yi2 yi4sc yi4st yk2 yke3n yk4ni yk4no yk3s2 yk3t yl1a y2la2c yl2ag yl2ak yla4l y2la4m yla2n yl3ane y3lant yl2ante yl2anti y4lantr yl2as yl3c yle2 y2le. yl1em y2l3e4s y2l1e4t yli4n yl4lo2s yl2lö2 yloid3 yloni1 yl2op yl1ora y2m y3m2a ym4an ym4ar ym4as y3mä y3me ym4el y3mi y3mo ymp2 ym2pha ympi3e ymp4t y3mu ynä2r yn2eu ynk2 y2n1o2 yn2oz yn3t2 y2o yob2 yoga3 yom2 yon2a y4one y3ont y3o2pe y4ost y3ot. y3ou y2ö 2yp ypa2b3 ypa2n yp2e2 ype4r3o2 y2p1i2d y2p1in y2plo y3po3 yp3th ypu2 y2p1um yr2e y3ri yri1e yri3en y3ro yro4ste yrr2 2ys ys2an ysch4 ys2e1 ys4ei ysein2 ys3er ys4ho ys3l ysme3 ys4pi yst2e yst2h ysto4le ys4tra y4stro y3s4ty ysu2 ys4ub ys1ur y3s2z yt2h ythe1 ythi3e y3to y2t3r yu2r yur2e3 yvet2 yvon4 yz2 yzer2i 1z 2z1a2b zab3l 2z1ach za1cha za1chä zach2s 2z1a2d 2z1af za3gr 3z2ah zah3len zah4ner2 z1ak 4z3akk 2z1al 4z3alb 4z3ald 3zali 2z1am za4me z1a2n z2an. 2za4n4a 2zanb za3ne 2zanf 2zangs 2zanh z2ank zan2ka 2zanl 2zanp 2zanr zanti1 2zanw za4pf z1a2q z1ar 3zar. 2zarb za3re 2zarm 3z2aro zar2t1r 2z1as zas2b za4sc za3st4 2z1aß z3at zat2e za2to 3zaub 2z1au4f 2z3aug 3zaun z3aur 2z1aut 2z1äc z2äh 3zähn 2z1äm z1än z1är 2z1äus 2zäuß 2zb2 zbah2 zber2e z3bo zb4ri z3bü zbü3b zbübe3 2z1c z3ca z3ch 2zd2 z3da zdan2 zdä1 z3dü 3ze. 2zea ze2ana zeau3 zeaus4 2z1e2ben 2z1echo ze1e2 2z1eff z1e2ga zehe4 zehen1 zeh2l zeh4n1a zeh4n3en ze3ho zei3f4 zeik4 zeil2 zei3la zeile4 2z1ein ze3in. z2e1ind zei4ne 4z3einh ze3inse ze2i3s4 3zeit zei2t1a zeit3end zei4t3er zei2to zei2tr zeit3ri zek4l ze2l1a zela2d zel3am zel3a2n ze2l1ä zel3d4 4ze2lek 4zelem ze2len ze2l1er ze2l1in 2z1e2lit zel3la zel4lab zel4l3ac zel4lar zel2lä zel4leh zel4lein zel4ler4t zeller4z zel2li2n zel2lum zelm4 ze2l1o zels2 zel3sa zel3sz zel2ti zelu2 zembe2 2z1emp 3zen. ze4n1ac ze4nas zen3au ze2nä ze3n2em zenen1 3zenerk 2zenge. z4engl 2zengp 2zeni ze2nid zenk2 zen3n ze2n3o ze4not 2zen2sem zen2ser zens2p z2entn z1ents 2zentw 2zentz ze2nu zen2z3er zen2zw zeo4r 3z2er. zer3a ze1ral ze2rat z2ere ze5rek zer2em z2erfe z3erfül z2erga 2z1ergä z3ergeb 5z4erges z4ergl zer2gon 4zergu 3z2erhe 2z1er3hö ze3ri zerin2t z2erko 3zerl. zer2lau zer2le. 2zerleb zer2len 2zerlö 3z2ern zer2nan zer2n3e2b zer4nei 2z1erö zer2öf ze1rös 2z1erq 3zerr 4z3erreg z2ers. z1ersa zers4t zerta2 zer4t3ag zert2an zer2ter zer2tin zer2to z3ertrag zer4trau z1erwe z1erz zer2ze ze2s 3z2es. ze3sc zes1e zes3er zes3p ze4s5po zes2sa zessen2 zes4s3end zes2ser zes2sp zes2sum ze3sta ze3str ze2ß1 z2et. 2zeta 2ze2th ze2tr 2zetts zeu2gem zeu2g3r 2z1eul ze1ur 2z1e2x1 2zf zf4at zfäs3 z3fe zfeue2 zf4la zf4le zf4re zf4rü 2zg2 zgang5 zger2a zger2s1 z3gn zg4nu 2z1h2 zhau2t1 zhir3 3zi. zial5l zi3alo zi2ar zich2o zi2dei zid3r ziele2 zie2leb zie2l1i zi1erh zi1es 3zig zigs4 2z3ik zi2ko 3zil zil2e z2imm 4zimp zim2t3 2z1ind zin2e zin3ei 2z1inf z1inh zi4n1in 2z1inj zin4na zin4o zin2sa zin2ser zin4sk 2zinsuf zi2o3 zirk2 zirk4s z1iso zi2sp zisse4 zi4stern zi3s2z zite4 zi3th zithe2 zi2t1o2 zit2u ziv2 2zj 2zk2 zk4ne z3ky 2z1l2 z3ly 2zm2 z3ma zmas4sen zme2e 2z1n2 z3na z3ne z3oas 2z1ob 2z1of zo2gl zog4s3 2z1oh zolla2 zol3len zoller2 zol2li2 zon3au zon3s zon2t3er zo2o 2zo2pe 2z1o2r zo3re 3z2orn zor4ne 2z1osz 2z1ou zo2w 2z1o2z 2zöf zö4fe 2z1ök z1öl 2zöl. 3z2öll 2zöls 2zön 2zp2 z3pf z3pl zp4lu 2zq 2z1r2 z3re zreb3 zrebs2 z3ru 2zs2 z3sa zsau2 zse1e z3sh z3si z3sk zspor2 zst2 z3str z3sz 2zt zta2n zt3ane z2t1au ztein3 zt3eins zt2el zte3ma z2t1ent z2t1erz z3tes zte3str zt2et zt1he z3them z3t2her zt1hi zt3ho z3thr z3thy zt3rec zt3ric zt3s zu3a zu1ä2 zub4l zubus2 3zuc zuch2e zucht3 zudi4 zud4r zu2el zu3e2r1 zue2t zu3f2 zu5fei zuf4l zuf4r zug2em zu2gent zug3g zug2i zu3gl zu4gla zu4glö zu2go zug6spe zug4ste 2z1uhr zu3hu zu1i2 zu3k zu3l2 2z1um. zum2a 2z1umb zumen2 2zumf 2zumg 2z1umh zum2i 2zumk 2zuml 2zumr 2z1ums zum2u 2zunab zun2e 2z1unem 2zunget 2zungl z1uni 2zu2nio 2zuniv 2zunr 2z1uns 2zunt zuo2 zup2fi zu3pfr zu3r2a 2z1urk 2z1url 2z1urn 2z1urs 2z1urt zu3ru zu3s2 zusch4 zus4p zus4t zu3t2 zut4r zut4u zu4t3z zuz4w 2züb zü4be 3züc zür1c 2zv z2w2 z3wac 2zwag 2zwah z4wang z3war 2zwa2s 2zwäc 2zwär 2zwäs z3wech z4weck 2z3wed 2zweg 2zweh z4weig 2zweil zweiter4 2z3wel 2z3wen 2z3wer z4werg 2z3wes z4wic zwi4e 3zwing 2zwirt z4wisc 2zwiss z4wit 2z3wo z3wör z3wur 2z3wü zy2le 2zz z3z2a zzab4 zz4at z3zer zze3s z3zi z4z1id zz1in z3zo z4zor zz2ö z3zu zzug2s",
+ ["data"]=".ab3a .abb2 .ab5erk .ab5er4r .abi2 .ab3it .ab3l .ab5le .ab3ol .ab3or .ab3s4 .ab5so .ab3u .achse4 .ach4sp .ach4st .ack4e .ade3n4 .ae2 .aer6schl .aes4s .ago3 .ag4r .ag2u .ai2s .ak6t5en6de. .ak6t5en6den .ak6t5en6des .ak3tr .al4bl .alb3r .al4bra .alb6rec .ale3u4 .ali3 .al4le4b .al5l6en .alle4r5 .al4lie .allo3 .all3s .al4mau .al5s4e .al4t5ak .al6t5ang .alt6an6l .al4tei .al4t5e4l .al6t5er6f .al6t5er6p .alter6s5 .al4t3h .al4ti .al4tor .al4t5ra .al4tri .al4tro .alt3s4 .al4t3u .al4u .ampe4 .amt4s3 .ana3c .an3ae .an5alg .ana3t .anden6ke .an3e .ang2 .an5gli .angst5 .ani4s .anis5c .ank2 .anla6gentec .an3n4a .an3o2 .an4ora .an5sa .ansch4 .an4si. .an5s4p .an4tag .anti5s .anz2 .ap5p6le. .are3n .ar4m5ac .ar4mar .ar4mau .ar4mei .ar4mun .ar4sc .ar4tan .ar4t5ei .arter4 .ar6t5erh .ar6t5erk .ar4t3r .arz2 .arzt3 .as2b .asie4 .as4ko .as2p .as6sest .as4zen .ata3 .ate4m3 .at4h .aue4n3 .au2f3 .auf5s4 .auge4 .au2s3 .aussen6dung. .auto6ren. .auto6rin .ax2 .är6schl .äs2s .ät2h .ät2s .bahner6 .ba4ran .bau5chi .bau3f .be5erb .beige4 .bei6ge. .bel4a .be3n4a .be3n4e .be3r4a .ber4e .ber4ga .berg5ab .berg5ar .berga6s .berg5ast .ber6g5e6b .ber6gin .ber4gl .ber4g5o .ber4g5r .ber4tr .be3sa .bhu3 .bi2e .bi2o .bi4os .bi4t3a .bi4t3r .blau3 .boge4 .bogen5 .bor4d5i .bo4s3k .bre4a .brecher6 .bre6cherk .brid4 .briefen6 .brie6f5end .brut5s .bu6cher .buchse6 .bue5be .bu4ser .bussy4 .buster6 .buß3 .bü3be .by2t .ce4ra .ch2 .ch4a .char6me. .char6mes .ch4i .chi5er .dab2 .da6ch5en .da3la .dan4c .da2r .dar5in .dar4m3 .dar3u .da4te. .da4tes .daue4 .de4al .deck5eri .dein4 .de5ins .de5int .de6m5ents .de3na .den4ka .den4kl .den4ko .den4kr .de3od .de5ran .de4rei .de5r4en .derma5 .dermas6 .de5skr .des4pe .de4spo .des5se .de3xa .di2a .di5ae4r .di3ä4r .di2e .die5ne .dien4s .dienst5a6d .dienst5r .do4mo .dorf3 .dor6fer .do4tr .due3b .du6schr .dü3b .dy2s3 .ebe4r .echo3 .eck5erk .ede4l3 .ehe3i .ehe3n .ehre4 .eh4r5er .ei3e2 .eier3 .eigener6 .ei4lau .ein3a .ei4nat .einbu5s .eine4 .ei4n5eb .ei6n5en6g .eins4 .einzel6lig .eisen5 .ei4sp .eis3s4 .ei4s3t .ei4s3u .ei4tr .ek5lam .ek3li .el4a .el4b3i .el4bl .elb5s .el4fei .el4fl .emm4 .en1 .en4d3a .en4d5ei .ender4 .en6d5ere .en6d5erf .en6derg .en6d5erz .en4d3r .en4due .en4dü .en4g3l .enk2 .enn4st .en4t3a .en4tä .en4t5ei .en4tem .en5thalp .en4t5io .en4toe .en4t3r .en5trep .en5trop .ents4 .epi3c .ep3o4d .er4b5ei .er4b5er .er6brecht .er4bu .er6d5achs .er4dan .er4dar .er4d5ei .er4del .erden6k .er4d5ep .er4d5er .ere5ch .er3ei .er3er .erfolgsauto6 .er3in .erk2 .er3o4b .er3oe .ers4 .er6stab .er6st5ein .erster6 .er6sterb .er6st5eri .er6st5ers .er6stim .er6stritt. .er6stritten. .er4z5el .erzen4 .er6z5eng .er4z5er .es2a .es3p .es4s3t .es4t .esta4 .est5ri .et2h .et2s .eu1 .eu3g2 .eur4 .eu3t .eve4r3 .ex3em .fa5cet .fae4s .fahrzeugin6 .faust5r .fe3la .fel4d5r .fel6lau .fel4sp .fel4s5t .fer4n5o .fe4sta .fi3d2 .fi4le. .fi4len .film5a .fil4s3 .fi2r .fl6ans .floe6s5se. .floe6s5sen. .floe6s5ses .flö6s5se. .flö6s5sen. .flö6s5ses .flu4g3 .flus6s5en .for5tu .fs2 .fu4sc .ga4me. .ga4mes .gan4ga .gas3e .ga4sen .ga4ser .ga4sp .ga4sta .ga6stel .ga6sten .ga4stu .ga2t .geb2 .gebe4a .gege4n5 .gel4b5r .ge3lu .ge5nae .ge5nar .ge5nas .ge5naug .ge3ne .gen4ei .gente4 .ge3nu .ger4a .ger4e .ge3ro .ge3ru .ge3s4 .ge7stei .ge3t2 .gi2u .gla4sc .gla4s5t .gol6der .grif6fes .gu3ru .hafe4 .haft5r .hal4br .hal5lei .han4a .han4fa .ha5sche .hau4sa .hauser6w .hau4t .haut5o .he2r .her6b5ra .he5rer .he3ri .he6r5inn .he5ros .he4sp .hete3 .he3xa .hi2n .hin3a .hin3u .ho4c .ho4f5en .hof3r .ho4la .ho4met .ho3ra .hor4t5r .hu4fer .hu3la .hund4 .hu3s4a .ia2 .ibe3 .ima4ge .imm4 .immen4 .in1 .ind2 .in5ess .in3i .ink4 .inse4l5 .in5skr .inu3 .io2d3 .ioni5e .ire3 .is2a .it2h .joni3 .jor3 .kabe4 .ka4b5l .ka3la .kal4ta .kal4t5r .ka3mi .ka4t5i4o .ken6num .ke3ra .ker4bl .ker4na .ke3ro .ker5s .ke2t .ki2e .ko4ten .ko4ter .kraf4 .kraft5 .ks2 .kue3b .ku4r5an .kus2 .kü3b .la5ert .lage4n5 .la3ho .lan4d5a .lan6de6mi .lan4dr .lan4gl .lan4g5r .lan3t .lase4 .last5r .le4ar .le4gas .leh4m5e .lei4bl .lei4br .lei4tr .le3n4i .len4kl .le3th .lich6ter6sc .li2f .li3o .li4tu .li4ve. .lo5ches .loe4ss .loes5se .lo4g5in .lo4sc .losch5 .lo4sk .lo4str .lo4tr .lo5ver .lö4ss .lös5se .lu4st5e .luster6 .lu5ster. .lut4h .ly2s3 .ma5lae .ma5le .man3d .mani4e .man5t .ma4ss .ma5sses. .mass5u .ma4sta .ma4str .ma4ß3u .mat4c .md2 .mee4ru .mel4a .me3no .men6schl .men6schw .me3nu .me3ra .me3se .mes4sp .mes4st .met6tend .mi2e .mie4t5r .mi2f .mil4z3 .mi4sa .mi6scha .mi6schl .mi6schn .mi6scho .mi6sch5r .mi6sch5w .mi2t .mit3a .mit3e .mit5in .mm2 .mo2i .mo4nau .mon6dru .mo4sta .möbe4 .musiker6fo .mu3ta .nabe4 .na4c .nae4s5c .na4ha .nah5ei .na4mes .nas4sc .na3t4h .na3to .nä4s3c .nebe4n .neider6 .nere3 .ner4f .ne3ro .ne6stra .neuer6b .nich6t5e .ni2e .ni2l .nil3a .no2c .no2s .no6tentr .no4t3h .no4top .not3r .nude4 .nul6ler .nus2 .nuss3 .nu4t3r .obe4n .obe6r5ei .ob6ers .ob3i4t .ob3l .obs2 .ob4sta .oe2 .oh4r5ei .oh4rer .oper4 .orge4 .ort4s5a .ort4s5e .ort6str .os4t .ost3a4 .ost5ec .ost5ei .ost5en6de .oste6r5e .osto4 .ost5om .ost3r .ot3a .ou4te .ozo2 .ölk2 .pa3b2 .pa4nen .par4ka .par4k5l .par5th .pas6sers .pa2ß3 .pe4c .pe3la .pel4za .pel4zw .pe3na .peri3 .pes4t .pe4st5e .pf2 .pf4u .ph2 .pl6ans .po4lei .po6lende. .po6lenden .postei6 .po6steig .po4sto .prach4 .pu5ert .ra5ch6e .ra4d5ei .ra4der .ra3el .ran4d5r .ran6g5e6b .ran4gl .ra4sp .ra4ss .rau4m3 .rau6schl .rau6schw .re4b3l .re5cha .re5chr .rei4bl .re5insz .reise5i .rei6str .reli5e .ren4n5a .re3sk .res4t .rester6 .re6st5ers .re4sto .re6st5re .re4stu .re3un .ri4as .ro2a .roe4s5c .roe4ss .roes5se .ro4h3a .roher4 .ro6h5erz .rom4a .roset6te. .ro4sta .ro4str .ro4tan .ro4tau .rot5ei .ro4t3r .rö4s3c .rö4ss .rös5se .rue3b .rueck5er6 .ruh4r3 .ru4m3e .runder6 .ru5s6ses .rü3b .rück5er6 .sa3br .saes4 .sa4fe .sali5e .sami3 .sa5s6sen. .sa5sses .sau3c .sau3n .säs2 .sch4 .scha4c .schaf6t5end .scheiner6 .scho5s6se. .scho5s6ses. .se2a .se2e .see3i .seein4 .see5r .se4ha .seh5ere .se4hi .se4h3o .sen4f .senf5l .sen4kr .se5no .se3ro .se3r4u .se2t .sex5tr .sha2 .si2e .siege6s5 .si3er .si4ern .si3gn .silbe4 .si4te .sit6zer .ski3e .sli2 .so3n4a .sour4 .spaes4 .spae5sse .spani5er. .spas4 .späs4 .spä5sse .spiege6lei .st2 .st4a .sta4ge .stau6becken. .st4e .ste4h5a .ste4i .steiner6k .ster6na .sto4n .sto4re .st4r .stro6ma .su6cherf .su6cher6g .sue3b .sumpf5l .sy5st .ta3c .tage4s5 .ta5lar .tan4k5a .tan4k5l .tan4ko .tart4 .ta4tab .ta4t3h .ta4top .ta4tor .ta4tri .ta4t3u .tau4f5o .tau6schl .te2e .te2f .tehe3 .tei4l5a .tei4l5ä .teiler6s .tei6l5ersc .tei4l5i .te5in. .te5le .telle4 .te3ra .tes3s .te6st5ae .te6stan .te6star .te4st5ä .te6st5ei .te6stel .tester6h .te4st5r .te4te .te3xa .texter6 .ti2a .tie6f5ern .ti4me. .ti4mes .ti2s .tischen6 .tisch5end .tisch5l .tisch5w .tit4a .tite4 .tode4 .to4der .todes5 .to4nar .to4nat .tonen4 .to6n5eng .toner6n .toner6z .to4nin .tons4 .to4pan .top3e .to4pl .to4pr .tor5an .to4rei .to4th .to4t3r .to2w .tra4de .tra4s5s .tro4s .tsa3 .ts4c .tse3 .ts4u3 .tu4e .tu5end .tu3ri .tur4m3 .twi2 .ub2 .ue2 .ue4b .ufe2 .ufer3 .uh3l .ul2b3 .um1 .um3e2 .umo2 .ums2 .una2 .unab3 .un3dr .une2 .unen4t5 .un3er .un3g2 .unge5n4 .uni4t .unk2 .ur3a4d .ur3a4m .ur4anb .uran6fa .ur6anfo .ur3at .ur3c .ur3e .ur4e3t .ur4i .ur3o4m .ur3o4p .ur3s2 .ut3r .vi3d .vol6lerw .wah4l3 .wah4n3 .wanderer6 .ware4 .waren5 .wa2s .we4bei .weg3s4 .weh4r5u .weine4 .wei6neb .weines6 .we6ing .wei4ta .welter6k .welt5s .wer6k5er6 .wer4k5r .wer4tr .wese4 .wetterer6 .wi2e .win6d5er5 .winte4 .wor2 .worten6 .wort5end .xan3 .xe1 .ya2l .zeit5r .zeit5s4 .zel4la4 .zelle4 .zel6leb .zel6lei .zel4li4 .zel4th .ze3ro .zi4e .zie4l5u .zin4ka .zin4s5c .zin4st .zi6schl .zol6lers .zuch4 .zu5ende. .zu4gei .zu4glo .zu4g5ra .zweigen6 .zwei6g5end a1ab a2aba aa2be a3ace a3achs a1ae aa2gr a3akt aal3ac aal3an aal3ec aa4lei aalf2 aa2l3o aal3ö 2a1an a3an. a2anä a1a2q aa2r3a aa3re aa4r3ei aa4r5ers 3aarg4 aar3in aa4rit aa4r3oe aarp2 aar3t aar3z 3aase a3ass aa2s3t aa2su aa2t3h aa2t3r aat2s3 aatsche6 a1au a1ä 2abah abais4 ab4ak 2abal ab3alt ab2am 2aban 2a3bas 4abat abat4t5a ab3auf ab1ä 2abäd ab2äu abbe4p 4abbin abb5rig 1abd abda3c 2abe. 2abec ab3eic abe3id ab3eil abein4s abein4t 4a3b4el abel5ac abel5a4d abel5in 4aben. a4berd aber4ka ab3erz aber4zi aber4zo 2abes abe4s5en abes4p ab5esse ab3eß 2a3bet abet3s 1abf 1abg 1abh 4abil ab3inf ab3inh ab3ins ab3iso abi4tur 1abk ab1l a2bla ab3lag a4bläu 4ab4le. 3a4bled 4a3blem 4ab4ler 4ablet a4bleu a4blin a4bloe ab4log a2blö abmas4 abma5sse 1abn abni3s ab2o 3a2bo. 2abod 2aboe 2abol a2bon abor5ang abo5rato 2abot 2ab2ö ab1r ab4rot 2abrö 3abruf 1abs 2abs. 4absap 4absar absas4 2absf 4ab4sof abs2p 4abspi 4abst. ab4s5tro 3abtei 3abtr 2abu a4bueb ab4ug a2bum ab3usu a2büb 1abw 2aby 1abz ab5zun 2ac. 2aca 1ac1c a3cem a3cen 2ach. ach3ab ach5aen ach3ak ach3an a5chari ach5art ach3as ach3au ach3än 2achb a3che a4ch3ec ach5eic ach5ein ach5eis a4ch3ep ach5erbe. ach5erben ach5erbes ach5erfu ach5erfü ach5erke ach5erkl a4ch5erl a6cherne a4chero a4cherö a4ch5erw a4ch5erz ach5eta 2achf achgene6r 2achh 4achi a4ch3i4d ach5ind 2achk 2ach3l ach5le 2ach3m ach5mi ach3n 2acho a5cho. ach3o4b a3choh ach5ord ach5org ach5ori a3chos a3chov ach3öf 2achp 2ach3r 4achs. 4achsc 4achses 4achso 4achsp achst4 ach3su ach5sze ach4tak ach6tant acht5erfu acht5erte 4achtg ach4t5in 4achtk ach4t5or ach6traeume. ach6traeumen. ach6träume. ach6träumen. ach6trit 4achtsc ach4t5um ach3u4f ach3uh a3chus 2achv 2ach3w a1ci acin3 4ack. 4acken 4ackes ack3in ackmu4 ackmus5 acksau6s ack5sor ack5sta acksta6g 2a1cl acon4n ac2p 2acr 2acu 2ad. 4ada. ad4abr a2dad a2dae ad2ag adai2 a2d3a2k ad3ang ad3ant 3adap ada4rer 4adas a4daut 1a2dä ad3än ad1c 2a3de. ade4al ad5eben 2a3dec ade3e adefi4 adel6spo 3adelu 2aden ade4nat adenes4 adenk4r aden4se ade3o2 2adep ade5ram a4d3erf a4derig ader4sa a5deru a4d3erz ade5s4p ades4s 2adf 2adh adie4s5c adie6s5el a4d3inf 1adj 2admu a2dob ado3c ado4n3a adon3e a2dop ad4o3s adot2 2adp 2adq adrat5s4 a2dre 3adres ad4ret ad3rot ad3rue ad3run ad3rü 2ads2 ad5stu 2adt1 ad2te2 ad2th adto2 adt3re a2düb 1adv 2ae. aea2 aeap2 ae3bel ae2bl aech4sa ae3chu aeck5sp ae2da ae4ders ae4d3ia aedi4e ae2dr 2ae1e aee2k3 ae2f3l ae2fr aeft4s3 ae2ga aeg3an ae3ge ae4g5ent ae2gl ae2gr aeg3ri 3aegy ae2ha 4aehe aeh5ein ae4hel ae4h3in aeh4l5ei 4aehm 3aehnl 2aehr 2aehs 2aeht 2aei ae3im a3ein ae5isch. ae5ischl ae5ischs ae3isk a3eiw ae2kr a3el. ael4bl ae3le. ae3len a3elh ae4lia a5ella. ael4lak a3ello ael4pl a3els. a3el4sa a3elsb ael6schl a3elsf a3elsg a3elsk a3el4so a5elsta a3elsv ael3t4e aelte5i 4aema 4aeml 4aemm aem4ma4 aemte4 4aemtl 2aen. 2aene aene4n3 aen2f3 4aenge 2aeni aen3k4e aen4kl aenne4 aenner5 2aens aen4s3a aen4s3c aen4sp ae3nu 2aenz ae2o3p2 5aepfel a3e2pi 1ae2q 2aer. aer3a2 3aera. ae3r4af ae4rap ae4rat aerauto6 aerb3l aer4ble 2aerd ae4r3ei ae4r3e4l aere4m ae4r5emi aere4n aer5enzy ae4r5erf ae4r5erh aerer4k aer5ersa ae4rese aeri4e ae4r5ing 4aerk aer4mau aer4mo aer6munt ae3ro 3aerod ae4rop ae4ror 2aers a3ersa aer4seh aers5er aer6s5int aert6er aert4s3 ae4rue 2aerw a3erwä aer6z5en6t aer6z5err 2aes4e ae3se3i aese5rei aese5ri ae4sko ae2sp 2aess aes4s3c aess5erwe aes4so aestein6 3aesth aes4tu aeß5erk aeß5erw ae2t3a aeta4b 4aete aete3e aeteo4 aet5erbl aetes4 ae2th 4aeto ae4tob ae4t3ra ae4t3ri ae4t3ro aet4sen aet4s3t aet3th ae2u aeu4eri 3aeugi 5aeugle 2aeum 4aeur aeu5re 4aeus. aeu6scha aeu6schr aeu4sp ae2vi a1e2x 2afa a4f3aen a2f3a2n a2fap a2f3au 2afä a2f3än 2afe a2f3ec a4f5einh a4f5einr a4fentl a2f3e2p afe2r a2fex aff4a 3affär 3affek af4flu aff2r 2afi afi2e afie3i afi6kanz afi4kat afi4k3l a4f3ins afi2t 2afl af3lae af3lä 2afo a4fo4ber a2f3oc a4ford a4f3ort 2afra af3rae afra4s3 af3rat af3rau af3rä af3rie a3fris 2af2ro af3roe af3rö af3run af3s2a af2si af3s4ke af2so af4t3ak aft5anz af4t3au af4tei af4t3e4l af4t5ent af3t2h aft5int af4toe af4t3op af2tö aft5rad aft5rei af4t5res aft5ric aft5rin aft4sei aft4sel afts3p aft4spi af4tur 2afu a2f3um a2f3ur 2afü 2aga ag3a2d a2g3au agd3an ag4dar ag4del ag4det ag4din ag4dre ag4dro 4age. ageb2 age5inf age5inh age5in4s 2agel age6lei6s age4len age4ler 4agen. age4nas age4n5e4b a6generg agens4p 5a4gent. 5a6genten a4g5entf age4rad age4r5af age4ral age4r5ap age6rauf agerei6g ager6eign agerer6f age3ro age4s5am age4san age4sau age4so ages5oe age4sö ages5s ages6sen age3u 3aggr a2g3i2d ag3ill a2g3im ag3inn ag3ins agi3oe agi4os 2agl ag4lan ag3lat a2gli ag3loc ag3los a2glö a2glu ag1n2 ag4nat a2gnä ag2ne ag2nu 3agog a2g3op agori4 a2gre a2gri ag3rie ag3rin ag3rol a4g3rum ag3sah ag4sam agsen4t5 ag4sin ag5s6porta ag6s5taet ag4staf ag4s5tät 2agt aguet4 a4gund 2a1h2a ah3ang a1hä a1he a4hein ahein6se a4h3er4h aher4ku a4h3er4w a1hi ah2l3a2 ahl3än ah4l3e4b ahl3ec ah4l3ei ah4lel ahlenk4 ah5lenz ah4l5erd ahl5erf ahl5erg ah4l5er4h ah4l5erz ahli4n3 ah2l3o2 ah2lö ahl4sal ahl5se ahls4pa ah4m3ae ah4m3ar ah2m3ä ahme3e ahme3i ahmen5e ahmen7sc ah3mu ah2n3a2 ahnae4 ah4nas ah2n3ä2 ah3nee ah4nef ahn3el ahner6e ahn5er4h ahn5erk ah6ner6le ahner4n ah4n5erp ah6n5er6sa ah6n5er6sc ah4neu ah4nin ah2no a3hom a3hop 3a2hor ah3ost a3hot a1hö ahr3a ahra4g ah3rai ahren6se ahren6s5o ahrer6lau ah3ri ahr4tae ahr4tal ahr4t5ei ahr4tin ahr4t5ri ahr4tro ah2ta ah4t3e4l ahte4s ah4t5ese ah4t3ex ah4tis aht3re ah4t3ri aht3s2 ah4t3um a1hu ah3w a1hy ai1a2 a3ia. aian3 aidi2 ai3dr aid2s aids3t ai1e2 aien3 ai3er3 aif2 ai3fr aig2 ai5gel a3ik. ai4k3er ai4lar ai4l5auf ai4lei ail5erl ailge3 a3im. a3imp 2ain ai3nac ai3nal ai4neb ainen4 a3info ains4p ai1o 3airb 3airl airo3 ai2sa ais3ac a5isch. ai4schi aiser5a ais4o ai2ss2 ais4se. ais4sem ai4sti ai3ti ait4r a3iv. a3ivl a3ivs a2jat 2ak. 2a3ka. aka3b4r a4kade 2akae a3kal 2akam 2akan 3a4kanl 2akar aka4tak aka4tan aka4t5er aka4t3r akat3s 3a2kaz 2akä 2akb 2akc 2akd 2a1ke a2kef ak3eis 3a2k3em ake2n aken3e a2keo a2keu 2akf 2akh 2a1ki ak3ins akka3 4akko. 3akku 2akl ak4lin 2akm 3a2kne3 2ako akoni4e 3akox 2akp 2akra 2akre 2akri ak2ro3 3akrob a2k3ru a2k3rü 2aks ak3sh ak4t3a4b ak4tag ak4t3ar ak4t3au 2aktb ak4t3el akter5a 2aktg ak2th 4aktik aktionsche6 4aktis 2aktm ak4t3ob ak4toe ak2tö ak2t3r akts2 4aktsi 4aktsp 4aktst 4aktun 2aktw 2akul 2akun 2akur 2akw 1akz 2a3la. al3abb 4alabo a4l3abt a3lad. al3add al3adm al3aen al3af 2alai ala3kl al3akr al3ame al3ana a3lanc 4al4and a4l5ande al5angel al5angr ala3ni al3ank al3anm al3ann al3ans al3anz al3app a3lar. al3arb al3arg a3lari al3arr al3art a3las. al3asp ala4sto a3lat. ala4tan al5attr alat3z al3au a3l4au. alauto6r a3lay a1lä a2l3än al3ärm al3äu alb5aer al4bär 3albb alb5eink al4b5erh al4b5er4w al4b5eta alb5ins al4ble al4bon alb5rae al4b3rä alb5rie alb5rin alb4s3p 3album al1c alda3c al2dä 5aldehy al4d5ere al4d5erh al4d5erl al4d5ern al4d5erw al4d5ese ald5inn al4dop al4d3ot al4drä al4dro 2ale ale3a al3e4be alebran6 a2l3ef al3eie a4l3eig a4l3ein a4l5eise al3ele al3elf 3a4lema a4lemb a4l3e4mi 3a4l3emo al3emp alende4 alender5 a4l5endr a4l5ends a4l5endu a4l5engl alen5in a5lentb alent4e al5enth alent4z alen6z5ei al3epo a4l5erfo al4erg aler4hö aler4kl a4l5erla a4l5erlä a4l5er4mi aler5oe a4l3erö 3alerr a4l5er4tr 5alerwa 5a4l5erwä 5a6l5er6wer a4l5erze a4l3e4s4k a4less a4l3est a4l3eth a4leur a2lev al3exi al3ext a1lé 3alge. algene6r 3algor alg2r alig4h al3imm al3imp a4l3inf al3inh a4l3in4q alin6stin al3int al3inv ali3o ali3sp a4l5ital alk5erd al4klö al4kne al4kof 3alkoh al4k3rü alk3sa alk3se alk3sp al5lad alla4me al4lan all5ank all5ano all5ans all5anz al4l3a4r al6later all5aufk 3allee alle4gi all5eim all5erfa all5er6mu all5ermü al6lersa al4l5er4z al3les al4lev 3allgä 3allia al4l3id alli5er. alli5ers. all5ink alloe4c al4loef all5oe6se all5ora al4lö4c al4löf al4l5ö4se all6s5amt all4sph allue4s al4luf al4lum allu4s al4lü4s alm5aus almo6de. al3n2 2alo. alo2b al3obe al3obl al3obr al3obs alo5che al3oe4d al3oer a2lof 2a3log alo4g3a alo4gr alo5is. a3lop al3ope al3opf a4l3orc alori4 al3ort 2alos al2ov alo2w a2lö al3ö2d al3ör 3alpe. 6alphas als5aer alsau4 al3s2e als5tau al2sz alt5alg al4t5ana al4t4an4b al4t5ans al4tap alta4ra alt5eic alt5eig al4t5eis alt5elt alter6fol al4teu al4tid al4tir alt5ita al4toe alt5ort al2tö al4t5rat alt5ric alt5rit alt5roc alt5ros al4trus a1lu a2lum al3umb 3alumi a2lur al3use alu5st alu3ta a3lüg 2aly alz5aep al4z3ap al4z3ar al4zäp 2am. am3a4ba ama3d am3aep ama5ge a4malg am4an aman6the aman4tr am3apf am2ar ama4sta amas5z a2maz 2amä 3ambiv 2amc 2amd 2ame. am3ein ame5len ame4n amen3e amen3i amen4s5e amen5sh amen4su ame3r amer4a amera5u a4m3erf amer4u a4m3erz a4mesh ame3s4p a4m3ess 2a3met a2mex 2amf 2amg ami4kan ami4kl ami4kn ami4kr 2amk 2aml 4amm. amm5aba am4ma4c am4mal amm5ang am4map am4mar amma4sc am4maß am4ma4te am4mau amm5edi am4mei amme4la amme4n ammen6ge. am6m5es6sen am4m3id am4min am4mo4d am4m3oe amm5ord am2m3ö ammu2 am4mue am4munt am4mus ammut3 am2mü a2m3oc amp4f3a4 amp6ferr ampf5la ampf3o 3ampul 2ams am4scha am4schl am4schm ams3en am2t3a amta4b am4tän am4t5eig am4t3el amter4 am4t5erb am6t5erei am4t5erf am4t5erg am4t5erh am4t5eri am4t5erk am4t5erl am4t5ern am4t5err am4t5ers am4t5ert am4t5erz am4t3ex am2th am5tig amt5int am4tis am4tit amto2 amt3ob am4toe am4t3op am4tou am2tö am4t5rat amt5rei amt5ric am4tro 3amts. 3amtsd am2tu amt3ur 2amtv 2amu a2m3uf 3a2mul a1mü 2amv 2amw a1na a3na. ana2a a2nab 2anac anadi5er. an3aes an3aeu ana4l5in an5al4ph anals4 3analy ana3m an4and an3a4no an3ant a4narb an4are an4arr a3nas ana4se a3nat. ana4ta ana4t3r a3nats 3anäm 3a2n3äs an3äu 1anb 4anbas 2anbo 2anbu 2anbü an3cht 4andaa 4andab 3an3d4ac and5amm an4d5arm and5ass 4andat an4d3ei and5elfe anden6ga and5ente. ander5ei anderer6le and5erho and5erhö ande4sa ande6spo an4d3ex andi4e an4drau an4drec an4d5res and4sam and4seh and6s5ein and6spar and6spas and6s5paß and6spat an4düb andys4 2ane. an3ec a3n4ei. a3neie 3aneig an3e2k ane2l an3e4mi 3a4nemo 2anen anen4z an5ersc a4n3eru a4n5erz. an3eth a2n3e2v 1anf 2anf. 4anfab 2anfi anfi4n anfin5i an4f5rau 2anfs an3f2u 4anfun 4ang. 4anga. 3angab an4gal ang5art ang2ä an3gäh an4gäs 2angb 4ange. 5angebo 5angeho 5angehö ang5eis 3angek an4g5erf an4g5erg an4g5er4h an4g5erk an4g5er4p ang5erwa an4g5erz 4angie ang5le. ang3n 3angol ang5rad ang5ras an4grau 5angrif 4angs. ang4stä 2angv 1anh 4anhau 2anhu 2anhü 2ani 4ani. ani5de aniel4l ani5els ani5ers. ani4ka ani4ki ani4kr 3a2nim anin4t an3i4on a4niso 4ank. an4kad an4kag an4k3ak ank5alt ank5anz 4anken ank5erfa 4anki an4kid an4k5las an4klö an4k3ob ank5ori an4k3öf an4k5ras an4kro ank5rue an4krü 4anks ank3s4k anks4p 2ankt an4küb 3ankün 1anl 4anlad 3anlag 4anlan 4anman anmas4 anma5sse 3anmel 3anmie 4anmun 2ann. anna4ge 3annah 3annä an4nef 2anns ann4spa 2annt 3anod an3ode anoe4d an3ofe 2anog a3nol ano4l3a an3oma ano4m5en an3opf an3opi an3or ano5rak 3anord ano4ri anor3t4 a3nos an4ou a3nov a1nö an3ö2d 3anpas 3anpf 3anpi 1anr 4anrad 2anrö an3s4ab an4saem ansa4m an4s5ame an4s5amt an5s4au 3ansäs 5ansch4l an4seu ansicht6 an4s3po 5anstal 5anstri ansu2 an4s3ur ans2z 2ant. an3tac an4t5a4go ant5ang ant5ans an4t3ar anta4re 3antá 3antei ant5e4ta 4anthe 5anthro 3antib 5antilo ant5inst 3antiq 5antise ant5räu 5antrie 2ants 3antw a1nu anu5ell a3nup a3nur anus5s a1nü 1anw 2anwi any3l4 an4z5aep an4z3an an4z5art an4zau an4zäp 4anzd an4z3ed 5anzeig anz5elf anze4n 4anzes anze4t anz5eta 2anzg 2anzh an4z3i4d an4z3i4n 2anzk 2anzm an4zol 2anzr 2anzs 2anzt 5anzuen 3anzün an4zwä 2ao a1oe2 ao1i2 a3okt a2om a1op ao2pe a1or a3orm aor5te a1os ao2sk a3ot. ao3t2s 2a1ö2 2ap. ap2a apa3b2 a2ped a3pel apen3 ape4ra a2pev 2apf. ap2fa 4apfe. 3apfel 4apfen 2apfs 2aph aph5aer aph3är aphe2 aph5ers a2ph3t a1pi api2e 2apl a3pla a3plä ap3li ap2n ap2o 2apol apo3p2 a5posi a2pot 3appar ap4pei ap4p5erz ap2pf ap4pre ap4p3ru a1pr ap4sin apst3o apst3r ap1t2 a4que. 2ar. a1ra ar3abb ar3abt ar3adr arad4s 2arae ar3aer ar3aes arafor4 ar3agg ar4ah 4aral ara3le ar3all a4r3ana ar3ang a4ranr ar3ans a4ranw a4r3anz ar5apos a4r3app a2rar 2arat ar3atl ar3atm ar3au arauto4 ar3ax 2a1rä ar3äs ar4bab 4arbe. 4arbef 3arbei ar4b5eig ar4b5eim ar4b5ein 4arben arb5erl 4arbi ar4b3le 2arbs2 arb3sk arb5so 2arbt2 2arbu arbu3s4 1ar1c 4archl 4archr ar4danz ard5arm ar4d3ed arde4n ar4dob ar4dop ar4d3ri ar4dro ards2 2are. a2rea are5aler a2reb are5ba 2arec a4red a2ree2 a2ref ar3eff 2areg2 ar3ehr a4r3eid areim5 a4rein 2arem ar3emb a4remi 4a3ren. a3reni aren6sem a4r5entn a2reo a5rer. are3r4a arerau5 a4r5erei a4rer4fo a6rergeb a4reri a4r3erk a4r3erl a4r3ert a4r3erz arer4zi 2ares a4r3es4k ares4p a4r3es4s 2aret a2reu a2rev arfs3a arf4s3p arf4s3t ar3fu 2arg. ar4g3ec ar2g3n 4argo arg4r ar5gre a1r2i 2ari. 2aria arie4n3 ari5er. ari5erbu ari5erd ari5erg ari5erh ari5ers. 4arif arif3t ar3imp 2arin arin5it a4r3int ar3inw 2a3rio a3rir 4arisc ari4su a4rith 2a3riu 3arkad ar4kak ar4kal ark5aue ar4käh ar4k5erh ar4k5er4l ar6k5er6sc ar4kid ark4lö ar4kne ar4kni ar4koa ar4kor ar4k3ro ark3s4a ark5she ark5spe ark4t3a4 ark4tel ark4t5ex ark4t3o4 ark4tre arku2 ar4k3um ar4küb ar4les arlichter6 arlich6ters arma3l ar4m5ans ar4m5anz arm5art 5armatu arm3au ar4meb arme4e ar4m3e4g arm5ein 5armeni ar4meo ar4mep ar5mes ar4m3op 2armö ar4mum 3armut 2arn ar4nan ar4nap arn4au. a1ro ar3ob. 4aroc ar3o4di 2aroe 2arof ar3o4fe ar3off aro2i 2arok 2arol a2r3o2p 2a2r3or 2arot arot5an aro4to a4roun aro2w a2rox 2arö 2arr. arr5ach 5array 2arrä ar4r3e4b ar3rei ar4rek arre4n arren5e arre6str 4arri ar4r3or 2arrs 2arrt 2arsa ar6schab ar6sch5ac ar5sche arsch5erl arsch5wi arseri4 arsex3 ar3s4ha 2arsk ar4ska ar3sse ars5tät arst5ers ar3su arsue3 artal4s5 ar4t3am ar4tang art5att art5auf art5elf artel6li6 arter6fo arter5k arter6la 3arthr 4artie 3artig art5int ar4t5iso ar4t3ob ar4t5ram art5ren ar5tres art5rie ar4t5rol art5ske art5spa a1ru arude4 aruder5 a2r3uh a3rumm ar3ums a3rüm 2a1ry ar4z3ae ar3zan ar4z3au ar2zä arze2 arz5ente ar4z5erl 2arzi 3arzn 3arzt arz4th arz4ti arzt5ra arz4tri ar2zw a1sa asa5chi as3aeh as3aer as3aet asal4t5e as3amp asa5ne a2sap asa4ro as3art asa2s2 as3asc asa5sse as3ato as3att a5s4au. asau4f as3aug asau4s3 as3ät a2sca as5cham a5scher. ascher6g a4schm asch5mi asch5ru 4ascht a4schwu a4schwü 2ase a2sec a2s3ef as3eie a5sen. ase4na4 asene4s ase6n5esc asenk4 ase4n3o asens4 a6sen6sem aser3a aser5eig as4erh as3erw as4es as3eva asex3p 2asf a3s4hen 3asiat asien3 a2s3i2k as3inn as3int a3sis asi4s3a asi4ste a2sk aslan4 a3slip a1so a2so2b aso3c as3oe aso2f as3ofe a3sol a3som a2s3o2p as3orc as3org as3ori as3pan aspek6t5o a4spel a2sph as3pik as3pio a4spir a2spl as4ple as4por as4pul as5s4abl ass5amt ass4ant ass4au. ass6aus. as4scr ass5eins assen5s4 ass4er asser5ec asse6reis 5assess a2s3si as3ski as4soe as4s5ora 3assoz as2sö as4spo as2st ass3te a2ssu as4sur as2t ast4af ast5ans a4s3tap ast5auf a4s3tec ast5einl a4stemp aste4n ast5ents a4s3tep as4ter a6st5er6ho a6st5er6hö aster5oe aste4s a4st5ese asti4e asti4ka a4stoc ast5orc as5trad ast5raum as5tren a6st5ritt as5troc a4strol ast5roll ast6ruk a4s3tub a4stuf a4stum as3tür a2sty a1su asu2s a1sü aswa4s 2asy. a2syl 3a4symm aße2 aß2en3 a2ß3er a1t 2at. 2ata a2t3aa at5a4ben a4t3abl at3abr ata3la at3apf at3arb at3art at3atl at3att at3au a4tauf ata3un a4taus at3är 2atb 2ate. ate4au ateien6d atei3f 3a4teli atel6l5erk 3atemg 3a4tems 2a3ten aten6t5ank aten6t5ri aterer5 4ates at4eur ath4a at4heb at3hee at5herd a5thia ath5in. at3hir 3athl a4t3hoc at3hof a2th3r a2thü 2at2i at3idi ati4kab ati6k5er6w ati4kl ati4sa ati4s3e at4isl a4tiso ati4sp ati4v3a ativen4 ati6v5er6f ati6v5er6s 4at5mus at2o a2t3o2b at3oef at3oel a2t3o2f a2tom ato4man ato4min 3atomk a3tomo 3atoms at5opfe a4tops ato4ra a4t3orc ato4rei atorgene6 ato3s ato2w3 at5raet at5raeu a4t3rau a4t3rav at3rän a4t3rät a4t3räu at3rec a4trep at5ring at3roh at3rol a4t3rom 4atron a4troo 3a4trop a4t3rot atrue3 at3ruh at3rut at3rü3 2ats at4sb at6scheng at6schma ats3e4h atse4l at4set at4s3in ats3pr at4stoe at4s5top at4stö at4s5tur 3attac at4t3ad at4tah att5akt atta4l at4t3au at4tec at4temp 4atter at6t5ertr attes4 at4t3o4b at4t3o4f att5raeu 5attrak at4t5ras att5rat att5räu att3s2 atty2 at4typ 2atu atu3et atu2n atu4rei atu4r5er5 atur3z atus3e at2za at2zä at4z3ec at4z3e4d atz5eig atz5ela atz5elt at4z3em atz5erb at4zere atz5erf atz5erg atz5erh atz5erke atz5erkl atz5erkr atz5erl atz5ero atz5erp atz5ersc atz5ert atz5erw at4z3e4t at4z3in at2zo atz3op at2zw a2u 2au3a2 au1ä 2aub au4b3ab au4bas au4bei aub5ele aube4n auberin6s au4b5eul au4b5ins au4blä aub5rin aub4spo aub4spr au4bum 2auc auch5ec au6ch5en6t au6ch5erke 2au1e 4aueb aue2d auene4 auere4 aue5re. au5erel aue4r3o aue4sc auf5akt au4f3ar aufas4 4aufe. au4f3ei 5aufent auf5erf auf5erh auf5er6kr auf5erla auf5erm auf5ind 3auflö 3aufn 4aufo auf3re 5aufruf 3aufsä auf5ski auf3t2 4auft. 3auftr au4fum 5aufzeic 5aufzue 5aufzug 3aufzü 4augeh augene4 4augeno 5auges. 2augl 3augus 2auhr au3hu 2au1i aui2n 2auj au4kle auk5te aul3ec aule4s aul5ese aul4les au3lü 2aum au4mad au4mäh aume4n aum5ents aume4r au4m5er5i au4m5ers au4m5erz aumgene6 au4m3id au4mind au4m5ins au4m3o4r au4m5ott aum3p2 aums2 au4mum au4mun 2aun aun5alg au3nar au3nas aun4aus aun3d aun2e au4n5er4d aun5erze a4unf au4nio aunk2 au2no au3nu au1o 2aup au3p2f aup4ter 2au1r aur4a auran4 aurant5 aur2h au3ru aus3ah ausan6ne. aus3au 4ausc au6schan ausche6f au6sch5lag au6schli au6schmi au6sch5wi au4scr 4au5se. ause4e3 aus5ehr aus5ele 4ausen au6sense au4s5erb au4s5erf aus5er5in aus5erk au4s5erl aus5erpr au4s5erw 4auses 3ausgl au4s3in au4sis 2auso aus3or 3ausrü 5aussag aus4se. au5s4sen au6s5sende au5sser aus4ses auss4p 5aussta aus3sz 4austal aus5tas aus5tauf 4auste. au4stec 4austem 4austen au5s4ter 4austes aus5tie au4stoc au4stoe aus5tor au4stö 5austrag au5s6tras aus5tur au4s5tür au3sus 3auswu 3auszu auße4 außer3 aut5aeu aut3äu au5te. aut5ein au4t3e4l au5ten. aut5erkr aut5erne aut5ero aut5ers au5tes au5tet au4tev aut3ex 2auti 3auto auto6renk auto6renp auto6rens auto6rent auto6rinn aut5ran aut5rau aut5rin aut5rot auts2 aut3sk au4t3z 2auu auve4 2auw 2aux 2auz a1ü avari4e a2va3t4 avener4 2avi avie6rer a2vl 2avo a2vr av2s 2avy 2aw awi3e a2wr a1x ax2am a3x4anz ax2at ax3emp ax3erw a2xia 3a2xio 2a1ya a2yak ay2al ay2am ay2as ay2es a3yeu ayma2 aysi3e ay3t ay2u az2a a3zad 3a2zal aze3s az2o 2a3zu az4ur 2az2w azz3a2 az4zen az4z3in az2z3w ä1a2 äap2 ä3be ä2bl äb2s ä1ce1 ä3che äche3e äche4n3 ächenmas6 ächenma5sse ä3chi ä2chl ä2chr äch4s3a äch4s3o äch4sp ä3chu äck3sp ä2da ädel3a ädel3e ädel3i ä2d3ia ädi2e ä2d1r äd2s äd3te ädte3i ädtein4 2ä1e äe2j äe2k3 ä2eri äe2x 3äffc äf2fl äf1l äf1r äf2ro äf2s äft2s3 ä2g1a 1ä2gä ägd2 ä3ge ä4g3ent äge4ra äger5as äge6rend ägeren6g äge6rers ägerin6d ä2g1l ä2g3ne äg2ni ä2g1r äg1s 1ä2gy 2äh. äh1a 2ä1he äh3ein ä2h3e2l ähe2n äher6gebn ä1hi äh3in äh4l3a äh4l5e4be äh4l3ei ähl5ins 2ähm äh3na äh3ne 2ähni 3ähnl ähre2 äh4r3el ähr5sa 2äh2s äh3sc äh3stu 2äht ä1hu äh3w 2äi ä1im ä3is. ä5isch. ä4ische ä5i4schl ä5ischs ä3isk ä1k ä2kle äk2li ä2kr ä1la äl3an äl2bl äl1c ä3le äl2l3a äl2pl äl4schl äl3t4e älte3i ältein4 ä1lu 2äma äma3t 2äml äm2ma2 ämmas4 ämoni5e ämte2 äm2th 2ämtl 2än. ä1na ändes4 än2dr 2äne äne2n3 äne3p än2f3 4änge änge4ra ängerin6s än2gl än2gr äng4str 2äni 2änk än3k4e änke3i än2kl än2kr änne4 änner3 2äns än2s3a än2s3c än2sp ä1nu ä1on äon4e äo3s äos4e 2äpfc 3äpfel äp2pl äp2pr äp2s3c 1ä2q ä2r1a2 3ära. är2af ärauto4 är1ä är4b3le är1c 2ärd ärde4n ärde4s 2äre ä2r3ei ä2r3e2l äre2m ä4r3emi äre4n ären3a ä4r5ener ä4r3erf ä4r3erh ä4r3er4k ä4r3erz ä4rese är2gl ä1ri äri2e ä4r3ind ä4r3ing är3ins ä4r3int ärm5arm är4m3au ärme3e4 är4m5ent är4m5erz ärme5sz är2m3o2 ärno2 är3o2b är3of är3o2p är3or ä1rö ärp2 är4seb är4s3eh ärs3er ärs5int är2sz ärt2s3 ä1ru är4z3au ärz5en4t ärzer3 ärz5ere ärz5erf ärz5err ärz3te ä1s 2ä3se äse3e äse3g äs4e3i2 äsen4s äse3re äse4ren äse5r4i ä2sko äs2kr ä2s1p 2äss äs2s3c äss5erkr äss5erwe ä5sses. äs2so2 äs3spi äs4s3te ästein4 3äs3th ä2str ä1ß ä4ßent äß3erk äß3ers äß3erw ä2t3a2 ätab3o 2ä1te äte5be äte3e2 ätein4n ät3eis ät3emp äte2n äteo2 ät3e4pi äter4bl ätergene6 ätes2 ä2th ä1ti ät3id ä1to ät3ob ät1r äts3au ät2sä ät4schl äts3en ätsi2 äts3p ät2s3t ät2t3a ät4tei ätte4n3 ät2tr ä1tu ät3v ät2za ät2zw äu2bl äu2br äu1c äuder4 äu1e äuel3 äu4eri 2ä2uf 1äug äu2gl 2äul 2äum äu2ma äum3p äum2s äum3sc äums3t ä2un äun2e äu3nu 2äu3r äu5re3i äurein4 äu1s 2äus. äu4scha äu4schä äu6sch5ei äu6schel äu4schi äu4schl äu4schm äu4sch5o äu4schr äu4schü äu3s4e3i ä3usg ä3usk ä3usn äu2sp äus2s äuss3c ä3usst 1äuß äu2tr ä2vi 1äx â1 âte2 á1 1b ba2b3a ba4b3er4 2babf 2babg 2b3a2br 2babs 5bach. b5achse bach7ter back5er4 backs4 bad3a ba4dab ba4dan ba4dar 4b3adel 2b3adl 2b3adm ba2dr ba2du b2ae 2b3aeh 4b3aerz bae2s 4b3aeug bae5us. 2b1a2f b3age 2b3ahl bahne4 bah4n5eb bah6nene bah6n5ent bai3d ba2k3a ba4k3er ba2k3i bak3l ba2k3n ba4k3ra ba4kre ba3la ba4lab ba4l3ak ba4lau bale4a ba4lei baler4 ba4l5erk bal5ins balk4a balke4 bal4lae bal4lä bal4le4b bal4leh bal4l5ei bal6lerg bal4li4g ball5oef bal4lo4k ball5öf bal4tr 2b1am bama2 bam3az 3b2amb ba2me ban2a b2and ban4dab ban4d5al ban4d5an ban4dar ban4dec ban6delf ban6d5en6de. ban6d5en6den ban6d5en6des ban6deng ban6d5erf ban6d5erk ban6d5erz ban4dob ban4dr ban4du ban4k3a ban6kerf ban6k5erw ban4kl ban4k3n ban4kop ban4kor ban4k3r ban4ku 2banl b3anna 2b3ans 2banw 2b3app ba4r3ab ba4rad bar5ast ba4r3at ba4rau bar5ein bar4en barer5ei barer4t bari3e bar5in4s bark4l bar4tel b3arti ba4rue bar3zw bas2a ba4seb ba4seli4 b3asia bas4sa bas4s5ei bassin4 bas4sp ba4str ba2ß1 ba4t5ent ba4tru bat4tak b3attr baub2 bauchar6m bau6ch5el bau6ch5er bau3eb bauer6fo bauer4g bauer4l bauer4n bauer6tr bauer4w bau3fa b3aufg bau3f4r 4b3aufs 4b3auft 4b3aufw baug2 bau5kl bau3l bau4m5ac bau6m5ant bau6m5ast bau6m5ent bau3sa b3ausb 4b3ausf bau3s4k b3ausl bau3s4p b3ausr 4b3auss bau5sze bau3t b1a2x ba3y2o b2äc b2äd 2b1äh b2äl b2är bären5 bärk2 2b3ärz b2ä2s 2bäug bä3us. 2bb bbauer4 bbau3f b3be bbe3ra b4be4se bb2la bb2lo bb2lö bblu2 bb2r bbran4 bbru4c bb2s 2b1c bch2 2bd2 b3da bdän3 bdi2e bdome4 3be. bea2n beat4m b3ebb beben3 beb2l 3bec be2ce be3ch 4b3echt 4b5ecke. bed2 4b3e4del bedi2 2b3edl be3e2h bee2l be3ela be3en be3erd bee4r5ei bee6r5es bee4r3i be3eta be3eti be3eu bef2 2b3eff be3g2 be4he. beh3ri beh2u b2ei beib2 bei5bl bei3d4r 4b3eier bei3f2 beig2 beige4o be3imm be3imp bei6ner6k bein4fo be5in6hal be5in4hi bein6spe bein6ter beis2 bei3sa bei5sc beisch4 beit4s5e beits5o beit4s5t beiz4w 3bek be3ke b2el bela4n bel5ano be4lant bel5bi bel3d4 be5le. be3lec 3belei be5lei. be4l5ein be4l3en bel5er5e bel5erh bel5erk bel5ern be4l3e4t bel3f 3belgr beli6ef bel5inn belle4n5 bel5li bel5oef be4l3om be4l3or be4los be4l3öf 3belp bels4p belti4 bemas4s bema5sse 2b3emp 4b3emul b2en 3bena be5nabe benae4 be4nat be4n3au be2nä2 3benb benden4 ben6dens ben6d5es6s 4bendm 4bendp bends4 bend4ue be3ne. ben3ec benei4l be4n5end be4n5ent be3ner be4n5erf be4n5ers ben5ert be4nerw be4n5ess ben4eu be4nev ben3f be4ng2 be4nid be4nik be4n3in be4nis 3benk2 ben3n benne4 be4nob be4nop be4n3or ben4sau ben4sek ben4s5el ben6sere ben6spar 5bensz 4b3entb 4b3entd bente4 4benteu 4b3entf 4b3ents 4bentw 3benv 3be4nz be1o2 be1p2 be4pit 4b3epoc b2er be3ra. ber3aa ber5abe ber5abl ber3a4c ber5adm be5raeu ber3af ber3a4k ber5all ber5ame ber5amm ber5anz be4rar ber5asc ber5ass be4rato berd4 be4r5eck ber5eig ber6eini be4r5eiw ber3el bere4m ber5emi be3ren ber5end be4r5en5e be4reng ber5ens be4renz berer6fa ber5ersa ber5e4sc be4r3e4t ber4g5af ber4gal berg5an. berg5ass. ber6g5en6t ber4g5li ber4gn ber4hab ber3i4d berin6sp berin6st be4ri4o ber5iss berk2 ber4ken bermas4 berma5sse ber5n4a ber3n4e ber3ni b3ernt ber3o4b ber3oe4 be4r3oh ber5ost ber3ö2 berr2 bers4k ber5stau ber6stic be3ry ber4zög b2es bes2a be3san besch4 be4s3ep be4s3er bes5esk be4s3id be2sk be3s4la bes4pe bes4po be2ss bes3sa b5esst. bes3sz beste4 bester4 be6st5erh be6sterk be6st5ern be4s5tol be4st5o4r be4s5trä be4s5tur be4sum be4sur be3s4ze 4b3etap beta3s bet5auf bete4s3 bet2h be3tha be3thi bet4o bet4tis bet4to bett3r be3uh be3um be3un be3ur b2ew 2b1e2x1 3bez 2b1f2 bfal4li bfang5s bfloe4 bfloes5 bflö2 bflös3 bfün3 2bg2 bga6send bga4s3t bge1 bge3ne bges4 b3gl 2b1h b3ha b2i bi3ab bi3ak bi2ar bi3as bib2 bi3ba bibe4 bibel3 biber3 bi2c bid2 bi3dj bie4r3a4 bieres4 bie4t3a4 4bieti bie4tr biet4s3 bi3f bi4ke. bi4kes bi3k2l bi4kre bi3ku 3bil bi4l5ang bi4lant bi4lau bil4da bil4deb bil4del bil4d5in bil4d3r bi4lei 4b3illu bils2 bi2lu 2b3imb 2b3imp bi3na 2b3inb 4b3indi bin4g3a bi4n3ok 4b5insas 2b3int 2b3inv bio1 biob2 bi2od bi3oef bi3re biri3e 2b3irr bisa2 bi4schl bi4s3ei bi3si bi2s3p bi2ss bis4s3c bi5sta bi4s3to bi3str bi4s3tu bi4stü b4i3tr bit3s bit4ta4 2bj bjek4t5o4 2b1k2 bk4an bki2 b3kr bkue2 bl2 2bl. bl4a3b2 2b3lac 4b3laed 4b3laen blaes5c 3b4laet 2b3lak b4lanc b3lang blasser6 blas6serk bl4at b3late 3b4latt blat4t5r bl4au blau4c b3laus b3laut 2blaw b3lay 2b3läd 2b3län bläs3c 2bläß 3blät b2le2a 2b3leh ble4i b4lei. b4leib bleich6a 4b3leid blei3f 4bleih ble5imp blein4 ble5int blei5s blei7sch 4bleit blei5ta b2lem ble4mei ble6m5ent ble4mer blem3p4 ble2n b4len. b4lend 4blenk b2leo b4les. 4blese 4blesu ble3sz b2let b3li. 4blich 4blief b4lier 2blig bl4in b4lind 4bling blin4k5a b4linz 4blis. b4liss b2lit b3lite b2lo. b2loc 4b3loch blo5che blo2g b2loi blo4id b2lon 2blos2 blo5sse 2blun blu4th blu4tin blut3o blut5sc 2b1m bma5ssen bma5sses b3me bmen4s 2b1n2 bnas2 b3ne bni2 bo2a2 bo3ab3 boabi4 bo3as b1ob bo2b3l bo2br bobs2 bo3ch4 bo3d2s bo2e boe4bl boe3i boei4g bo3en b1of boh4r5ei bo3is bo4l3an bo4l3au bol3c boli4e bo4l3in bo4lit bol5le 2bolu bol3za bombe4 3bon. bo3nat bon4d3e bo4n3er 3bons 3boo boo2l boo4t3i boo4to b1op 3bor. bor3ae bo5rant bor3as bor4d5an bor4dr bo4rei bo4rig bo4r3in b3ort. bor4ter bor6t5rat bo4spo bo4sto 3b2ot bot4e bote4r3 bo3th bot4se bots3p bot4st bot3t bo4xel bö2bl 2b1öf bö2is b1öl 2b1p2 bpa2g b3po 2bq br2 2br. b2ra. bra3a 2b3rad 4b3raed b2rah bra5i4sc b2rak b2ram2 bran6dent bran6derk bran4d5r bra4ss 4b3rat. brater4 bra6terg 4b3ratg bra4t3h brat3r b4raun bra5unte 2b3räd 2b3re. 6b5rechte 6brechtl b5rechts 2bred 2bref 2b3reg b3reic 4breif brei6t5ei brei4t5r b3reiz 2brek breli3 b2rem brem4sc brem6sei brem6sta b4ren. 4b3rent 2breo 2b3rep b2re3r b4res. b3rese 4b3rest b2ret bret6t5en 2b3reu b2rev bri4da 4brieb brie4fa brie6f5er 4b3riem b4rien b4riga b4rigi 4brigk b2rik bri6kans bri4ker bri4ku b2ril b4rina 4b3rind b2rio b4risc 4briss 2briß 4b3ritt b2riz b2roe 2b3roh 2b3rol bro4m3a 3b2ron b2ros 4b3rost bro4tan brot5ei bro4ter bro4t3h bro4t3o bro4t3r 2b3rou b2rö b2ruc bru4chu 4b3rueb 2bruf br4un 4b3rund bru3n4e bru2s4 brust3 bru2t brut3h 2b3rüb 3brüc 2b1s bs3ach b2s3ad b4s3aer b2sak b4s3all bs3amb b4s3amt b4sanf b4sant b4sanz b2sap b2sar bsa5sse bsau4m bsau4r b2s3är bs2ca bsch4a b4s5chec b4schef bsch4l b5schu bs2cu b2s3e2b b4s3ehr b4s3ein bseit4 bse2n bsen3e b2s3ep bs3erd bs3er3e b4s3erf b4s3erg bs5e4r5in bs3erk b4s3erl bs3err b4s3ers bs3ert b5serv bs3erw bs3erz bse2t bs3eth bset6zer b2s3eu b2sex2 b4s3ide b2s3im bs5inte bs3iso b2sk b2so2b bs3off b2s3op bso2r bs3orc bs3ori bs5ort. bs5orts bs2öf bs2pe bsprun4 bs5rei b2s3s2 b4st5a4be bsta4d b4stade bst3ak b4st3al bst5ank b4stapf bst5art b4st3a4s b4s5tauc bst5au4f5 bst5aus bst5einb b4st3e4k bste4m bst5ema bst5emi b4s5tend bst5ent b4st5er5e bst5erf bst5erh bst5erk b4sterm b4stern bst5ernt bst5er5o bst5erö bst5erz bstes4 b4st5ess b5steue b4stev bs2t3h bst3i4d bst3io b4stip b4st3ob b4stoch b4stod b4stor b4s5trae b4strau bst5rauc b4s3trä bst5rep bst5ret b4st5ros b4st5rue b4strun b4strü b4stun b4stüb b2sty bs3umb bs3ums b2s3un bs3url bs4zep bs2zo 2b1t bta4st5r b3te bt1h btisch5l bti6scho bti6schw bto2n3 btran4 btu3en btü1 bub2 bu5chare buch5art bu4ch5ec buch5ere buch5erf buch5er6l bu6ch5er6s buch5er6w buch5er6z bu4chet buchs4p bu2e buegel5e buer4o bues2 2b3u2fe bug1 bu2gl bu4gra bul4l3a bume3 2b3umf 2bumk 2bumr bu3n2a 3bund bun4dä b4undd bun4d5er bunde4s5 bun4din b4undn b4undz 2b3unf b3un3gn 2b3unh 2b3unl bun6t5er6z bun4tr 2bunw bur3c bur4gan bur4gar bur4g5au bur4gin bur4gl bur4gr bu3ri 2b3urn b3ursa burts3 b2us bu4scha busch5ar bus5chau bu6schei bu6sch5el bu6scheu bu4schl bu4sch5m bu4schn bu4sch5o bu4schr bu4schw busch5wa bus5ers bus5erw bu4sin bus5ses buss4pa bus3ta bu6sterm bu4s3tr bustra4 bustras5 bus3un bu4ßer bu3t2a bu2t3r bü1c bügel5e bühre4 büs2 bü3sse 2bv 2bw bwasse4 b3we b2y bya2 byo2 by3p byp4i bys2 2bz2 b3zu bzug2 bz4u3n 1ca cab2 ca3bl 3cac ca4ch cae3 caes2 ca3g2 cago3 ca1h ca3lab ca3lam cam4p3l c3ang ca2pe ca3r2a car3n2 carri3 car3s2 ca3s2a3 ca3t2h ca3ur caust3 ca1y2 cä1 cäs2 2cc c1ce c1ch cch4i c2d2 c3do 2ceae 2cear 2ceä 2ceb 2cec 1ced ce2dr ce1e 2cef 2cegr 1ceh ce1i cein2 2cej 2ceka cele3r 3cels cen1 cene2 ceng2 ce2n3i ce2no cens2 3cent ce1o2 2ceop 1cer cere3u ce3ri ce4ris ce3ro ce3s2h 3cet. ceta2 ce4t3am ce1u 1cé c1f cg2 2ch. 4chab ch3a4b3i4 chach6sen. ch3ack ch3aep ch5aerm ch3aes 5chafei cha2g ch3age ch3akt 5chalam chal5b cha4mer ch5ampe 3chanc ch5andr ch5ange ch5angr ch5ansa ch5ansp ch5anst 4chanz 3chao ch3app 4char. 3chara ch5a4rab 3chard 5charta cha4sc ch3asp ch3atm 3chato ch5ausf chau5spo ch5ausr ch5ausst ch5austr ch5ausw chau3t ch3äp ch3ärm ch3äs 1châ 2chb 2chc 2chd che3b 4ch5e4ben ch5echt che5ers 3chef. 4cheff 5chefin che4fr 3chefs 4chehr 4chei ch3eil ch3eim ch5eis. ch5eise 4chelem che4len che4ler che5me 3ch4emi 4chemp che4neb ch5enge. che4nid che4no chen5sk chens4p 4chentc chen6ten 4chentf 4chents 4chentw cher3a che4rat cher6bes. 4ch5erbs cher6de. 6chergebn ch5erhi 4ch5ernt 6cherregu cher5sta ch5ertrag cher6trage 6cherzeu 4ch3ess 4cheta ch5e4tik 4ch3e2x3 1ché 2chf 2chg ch5gau 2chh 3chia 4chiff. 4chiffe 4chiffs chi5li 4chimm 4chimp 4chind 4ch3inf ching4s 4ch3inh ch5inko ch5inkr 4ch3ins 4ch3int 4ch3inv 3chip 3chiru 3chit 2chj 2chl4a ch5lade ch5laend ch5lanz ch3lat ch5lauf. ch5läd ch5länd 2chle ch5lein ch4len 4chli chl4o ch2lu 2chm ch2me 2chn2 chn4e ch4nep chner6ei. chn4i cho3ch ch3oel 3choer ch3off chof4s3 cho5l4a ch3orc 4chord cho4rei 5chores 5chors. ch5orts 3chorw ch2os 3chosl ch3öl 3chör 2chp chr2 2chra ch3rab ch3rad ch3ras ch3rat 4ch2re ch3reh ch3reu ch3rev ch3rh ch3rin 5christ 4chrit 4chroe ch3rol 5chromo 3chron ch3ros 2chrö 2chru 2chs ch6spani ch6spart ch4stal chstro4 2cht 4cht. ch4tang cht6en. ch4t5ruh chts5trae chts5trä 4chue 4chuf 4chuh chu2n 4ch3unf ch3uni 4chunt 4chunv ch3urs ch3urt 4chut chut4t3 2chü 2chv 2chw 2chz ci2a ci1c ci3es c3ind c3int ci2s1 1ci3t 2c2k ck1a cka2b ck3ac cka2m cka2n cka2r cka2t ck1ä ck3ehe ck3ei cke4la cken4s5o cken6s5tur ck5enten cken6trop cke4rec cker6fül ck5erken cker6ker ck5er6lau ck5erni ck5ernst ck3ero ck6ers. cker6zeugn ck3ese cket4t ck3eu ck3i2d ck3ind ck3inh ck3inn ck3ins ck3l ck3n ck1o2 ckoe2 ck1ö2 ck3r ck5sac ck4sar ck4s5int cks5tate cksto4r ck4tar cku2 ck3uh ck3umb ck3ums ck3una ck3unf ck3up ck3ur c2l2 clet2 cle4vel clien4 clin4g cli2p clip3a 1clo clo3ch 1clu clu2b cm2 c2mi 1co co3ch co2de code5s cof3f co3g coi2 co3it co2ke co4leu colle6ge co3l4o com4te. comtes4 continuati6 co2o 2cope co4pe. co3ra 2corb cor4da cor5ti corvet4 cos4t co5sta 2cotc co2te co2u cou4c 2cout 1cô 2c1p c2r 1cra c3rae c3rau c3rä 3crem cre4me 3cres2 3crew cros2 1cru 2c1s cs2a cs2f c2si c2ss 2c1t cte2a cti2o2 ction3 ctur2 1c2u 2cua cul4u cup1 cu2pe cup3p cu2p3r cussi4 cus3t c2v c3ve 2cx 1cy cy2a cy3an. cybe2 1ç 1d da1a 2d3a2al d1ab 2dab. d4abab d4abae 4da4bak d2abä 2dabb 2dabd d2abe 4d3a4ben 2dabf 2dabg 2dabh dabi2 4da4b3it da4blo 2dabn 2da2bo dab4ra 4da4bre d4ab4ru d4ab4rü 2dabs 2dabt 2dabw 2dabz d1ac dach3a d4ache4 da4ch5er dach3o 4dachtz da5chung da4ck d1ad da4del. da4delg da4dels da2do dad2r da2e 3daec 2d3aeg 2d3aeh 4d3aemt dae4n3a d3aend 2d3aep 2daeq da3erf d5aerzt 2d3aeu dae3us 2d3aex d1af 2daff da3f2l dafo4n da3fra d1ag dag2o da1h dah3l da3in 2d3air da3ism da3ist da4kad da2kn da4kro dal3a4d dal5aer da3lag da4lär da4lop da4lor da3lö 4d3alpe 4d3alte da3lü dam4e d3a4mei damens4 d5ammae d5amman 4d3ammä 4d3ampe d3ampu 2d3amt dana3e 4d3anal dan5alg da4nan d3a4na3t dan4ce. dan3d2 4d3anda 4d3anei 4d3a4n3eu 2danf 4d3anga d5angeb d3angs 2danh dani5er 4danim dan4kal dan4kan d5anker dan6k5erf dan4kl dan5kla dan4k3o dan4kr 4danle 4d3anna 2d3a2no 2dans d3ansc danta4 4d3antr 4dantw d4anz. d3anze d4anzen 4d3anzu 4d3anzü dan4zw 2d1ap d2apa 3dapol da4por da2pu da2ra dar3an dar3a4s darb2 5darbi 2darc dar4dar dar4de dard5ei dard5er dar4do dar4dr dar4du dardwa5re 4d3area dar3ei dare4m dar5emi da4r5en5e d5a4rist dar4mar dar4m3i 4d5arres dars2 4d3art. 4d3artd 4d3artg 4d3ar4th 4d3arti dar4t5in 4d3artl da2ru dar5um. 4darzt da4sche da5sei das6ein da3s2h da2sp 4d3assi 4d3aste da3tei 4d3a4tel date4n3 da2th dati4v3 2d3atl 2d3atm dat4s3t 4d3atta datum4 2d3aud dauer5e 2d3au2f3 2d3aug dau2i 2d3auk da3unt dauri3 2d3aus dau6sse 2d3au2ß dau3t 4dauto d1ax d1az da2zo 3däc 2d1äf 2d1äg 2d1äh 2d3ämt dä2n3a 2d3änd 2d1äp 2däq 4d3ärzt 2d1ä2u dä3us 2däx 2db2 dbe4e dbi2e 2dc d1ch2 dchengene6 dco2r d1cr 2dd2 d3da dd4ae ddar4m3 d3dä dde2a ddel5ec dde3ra d3dh ddi2e d3do ddub2 dea2d de4adl de3ae de3a2t deb2 4d5e4bene 3debü de3cha de5chor de3chr de4ck 2d3ecu ded2 4d3e4del dedi4e de4dit dee2 de3eb de3eg 3de3em de3er de3es de3et 3de3eu 3deex de4fa. 2d3eff def2l deg2 2d3egg deh2a de5hop 2d3ehr 4dehyds de4ic dei6ch5er de5i4den 2d3eie 2d3eig de3im 4dein. 4d3einb de3in4d 4d3eine de5in4fo de5infr d3eing dein6gen 4deinh 4d3eink 4d3einl 4d3einm 4d3eino 4d3einr 4deins. 4d5einsa de5in4se dein6sta dein6str dein6ter 5d4e3in4v 4d3einw de3io de3i4si d4e3ism dei4sp de3ist 2dekz del5ach de4l3am dela4n del5ano de4lant dela4t del5ate de4l5aug deld2 de5le. de4lef de4l5ei4g 4d3elek 4deleme del5end del5erk del5ern deler4r 4d3elf. 4d5elfe. 4d3elfm deli4ne del5inn delk2 del4lan dell5ans del4lar delle4 del4l5eb del4lei dell5eic del4ler del4loe4 del4lö4 delmi4 de4l3ob de4l3op del4sas del4saß del6s5int del4sk del6s5pan del6spar del6spat del4spr del4sz dem4ar de4mau dement4 de6m5entg demi4e 4d3empf d4en. dena4b den4ade de4na4g de3n4am de4nan de5n4arr dende4n 4d3endh 4d3endk den3d4r dend4u den3e4b de4n3e4d de4n5end de4n5eng de4nep den5erb den5erei 4d5energ de4n5ero de4n5erö den5ers de4n5ert de4nerw den3f2 4d5en4ge. 6d5engeln 6d5en6gels den6gen. 4d5engli de4nid de4n3im den4k5ak den6kerl den4k5ob denks4 de4nob d4ens den6s5tie den4sur 4d3entd 4d3entf 4d3entg den3th 4d3entk 4dentla 4d3entn 4dentw 4dentz den6z5erf den4zym 2deol de3p2f dep2l depo4t de3ra. der3ab de5rabi der5a4de der5aen de5raet de5raeu der3af der3a4g der3ak der5alb der5alt der5ame dera4n de5ran. de5rand der5ane der5ant der5anz de4r3ap der5asi der5asp de4r3än 4d3erbs 4derdb de4r3e4b de4r5eck der5edi de4r5eic der5eif 6dereigni der6eini der5eis. de4rele der5ell de4remi der5ende de4r5en5e der5enge de4r5ens der5ente der5entg de4r5enz der6er. derer6de derer5e der4erf de4r5erh derer5n de4rert dere4t der5eta de4r3eu derf4 der5fl derg2 6dergebn de4r3id de4r3i4m der5inb der5inner de6r5innu derin6teg derk2 der4nal der5o6ber deroe4 der5oef de4ror de3rot derö2 derr2 der3s4k der5stau dert5ende. der6ters 6dertrage de4ruh der4ump der6weck 4d3erz. 4d3erzv de4s3a4g de4s3ah des5amt de4sap de4sau de6sche6f de4s3eb de4s3e4h de4s5eil de4s5ein des5elt de4s5en5e des5eng des5er5e des5erf des5erg des5erh des5erk des5erl des5erm des5ern des5ers des5erz dese4t des5eta desi5er. de4s3in de2sk de4spa des6park de4spot de4spra de2ss2 dess4e des6sens des5st des5taet dest5alt des5tät de5ste. dest5eige dest5einsa de5sten. dest5erg des4tex de4s5tie de4stit de2su des3un de3ta deta4c 4d3e4tat deten4t 4d3ethi de4tik 2d3etw de3uh 2d3eul de3um de3un de3url de3us 4d3e4vid dex3em de4x3er de4xis 4dexpe 4dexpo 2d1f2 df4la dfu5sse 2dg2 dga4s5tr dga2t d2ge. dger4e dge3s2 d4gesh dge6tang dge4tau dge4t3e d3gl dgrü3s 2d1h2 dhau6eri dhe2 dhek2 d3hu dh4un dia5l4ei di3arr dia3s di4au dib2 di3ce di3chl di3cho dich7ter dick5el 2d3i2co 4d3i4dea 4d3idee di4den 2di2dy di3e2d di2e3i di5elek die4n5e4b diener6l dien5ev die4ni die4no di5ens. dien6stae dienst5rä dienter6mi die2p die4rei diese4 die4th dig2n di3go dig4ta dig4t3r di4lar di4l3au dilf2 4d3illu dil4s3t 2d3imb 2d3imp di3na 2d3ind d3infe 4d3info 4d3infr 3ding din4ga 2d3inh 2d3inj 2d3ink 4d3insc 4d3inse 4d3insp 4d3inst 4d3insu 4d3insz 2d3int 2d3inv di4odi dion5in dion3s4 di3ora dios2 di1p2 di3pt di4rak di4ran di3re 4d3i4re. 4d3i4ren 4d3i4rin 4d3i4ris 2d3irl 2d3irr di3sa2 di4s3ag di4s3as di4sch5r diskan4 2diso di4som di2sp di5s4per 2d3isr di2ss dist4 distel5 di4s3to di4s5tra di4t3ak di4tal di4t3an di4t3au dite3c di4t5er5e di4t5erl di4t5erm di4t5ers di4t5erw dit5ins di4tob di2t3r dit3s di2t3u di3ve di3vi di2vr 2dj d2jar 2d1k2 dkab2 dkraf4 dkraft5 2d1l dl2a dlan4dr d3le dl4er dle4r3a dli2f d3lo d3lö dl2v 2d1m 2d1n dn2a d3n2e dne3p dni2 dnis3t dn2j dnue2 dnus2 dnuss3 do3a2 d1ob 3d2oba do4bera do4berh do4beri do4bern do4berr 2dobj 2dobm 2dobs 3doc do3chi do3chr do3e2b 2d3oe2d 2d3oe2f 2d3oek 2d3oel doen4 doe5ne doe2r doer3i doe4s3c 4d3o4fen 2d3off 2d3ohr3 3dok 3doli d3o2ly do4mal do4mar do3mi do4m5ing 2domn do2mu 3don. 3don2a don4au3 doni3e 3donn 2dony do2o do3ope 2d3opf do3ra 4d3o4rak 4d3orbi 2d3orc 2d3ord 3dorf dor4f3a dor4f3ä dor4fei dor4f3i dor4f3l dor4fo dor4fr dor4f3u 2d3org 4d3orna 4d3orni 2d3ort dor4t3a dor4t5ei dor4ter dor4the dor4tr 3dosi dos2k 2dosm dos2p d3o2st dosta4s dosten4 do4tof dow2s3 d2o1x 2d1ö2d 2d1ö2f 2d1ök 2d1ö2l1 dö2s3c 2d1p2 d3pa dpo6stei dpo4str 2dq dr2 3dra. 2drab 2d3rad d3raed 4d3raet d3raeu 2d3rag d2rah 4drahm 2d3rak 3dral 4d3rall d3ramm d3ramp dr4an 4d3rand 4d5rangl dran5k d3ra4ss 4d3rast dra4t3a dra4tin d3raub 4d3rauc 4d3raum 4d3raup d3raus4 4d3raut 2dräd d4räng 2d3rät 2d3räu 3dräue 2d3re. d4rea. 4dreal d4reas d4reck 2dred 2dref 2dreg 3dreh dre4h3a dre4hi dre4h3o 4dreic d4rei3e d4reik 4dreine 4dreins d4reir 4dreise d4reiv d2rej 2drek 2drel dreli3 2drem 2dren dre3na d2reo 2drep 2drer d2res 4d3res. dre6schm dre6schw 4d3rese 4d3resi dres6san dres6s5ei dres6sel dres6s5er6 dres4st 4d3rest d3resu 2dret 2drev d2rew 2drez d2ré 2d1rh 2d3ric 4d3rieg drie4n3 3drif 4d3riff d4rift 4d3rind 4d5ring. 2d3rip 4d3risi 4d3riss 2driß d2rit drit6terf 4d3ritu d2ro 2drob 4d3rock droe4s5c 4drogg 4drohr 5drohu dro4id. 4d3roll 3dros d3rose 2drot 2d3rou 2d3rov d3row drö4s3c 2d3rub 3d2ruc 2d3rud 4d3rue3b d3rueh 2druf 2d3ruh 4drund d4runt 2d3rut 2d3rü3b 2d3rüh 2d1s dsa5cha d2s3ad d4saem d2sak d4s3alk d4s3all d4sane d4sang d4sant d4sanz d2sar ds5assi dsau2 ds4aud d4sauf dsau4m d4saus d4saut ds2äu ds2ca dsch2 d4schef d4schin dsch4r 5d4schun d2s3cr d2s3e2b dse2e dsee3i d2s3ef ds3ehr ds4eign d4s5eint d4s3ele d4s3emb d4s5e4mis ds5ende. dsen5er d4s3eng d4s3ent d4s3er3e d4s3erf d4s3erh d4s3erk d4s3erl ds3err d4s3ers d4s3ert d4s3erz dse2t d4s3eta d4s3eth d2s3ev d2se2x2 dsha2 d3s4hak d2sid d4sind ds3ini d4s3int ds4kal d2ske d3s4kel d4skis d5s4klav d2sko d2skr d3s4law d2so2b d2s3oe d2s3op dso2r d4s3ori d2sö dspa6ss ds4ped ds4pen ds4perb d4speri d2spl ds4por d6sporto d4sprae d4sprä d4sprei d4spro ds2pu d2ss2 ds3sa dst2 d6s5taeti d4s3tas ds5tauf d4s5täti d4stea d4stele d5stell ds4til d4s3tis d4stoch d4stod ds3tor ds5trad d5strei ds5treu. ds5treue d2sty d4suml d4s3ums d2s3un d4s3url d2szo 2dt d1ta d2ta2d dt3agg d2tam dta2n dtan3e d2tap dt2as dt2ax d1tä dtä2s d1te d3tea dte3e dteer3 d3tem dte3na d3tep dte3ra d3tes d3thy d1ti d2ti2d d2til d2tin d1to d2to2b d2tom dto2r d1tö dt3ral dt3rec dt1s2 d1tu d2tum d1tü du3al. du3all du3alm du3alp du3alv du3ar du4bli du3ce due5bel due3br du3el duel5la du3en. du3ena du3enb due3p duese4 due4ss du3ett du2f 2d3ufe duf4ter duf4to duf4t3r du2ga 2d1uh du3ist d3u2kr du4l5arr du4l5art du4l3au du4l3ei du2lu 2d3umb 2d3umd 2d3u2m3e 2dumf 2dumg 2d3umh 2dumk 2duml d4ump 2dumr 4d3umsc 2d3umt 2d3umv du2n 2d3una 2d3und dun4de 2d3une 2d3unf d3unga 4d3ungl 2d3uni dun4kl 2dunr 4d3unsc 4dunsi dun4st5r 2dunt 2dunw 2d3unz du3os dur4c durch3 2d3urk 2d3url 2d3urn 4d3ursa 2d3urt du3sa du6sch5ec du6sch5ei du4schl du4schn du4sch5w du3ta dü3bel d3über düse2 dü4str 2dv dv4en 2dw dwa2 dwa5sche dwasse4 dwe2s dwesten6 2dyac dydi2 dy2le dy2sa dy4sl 2dz2 2e1a ea2be e2abi ea2bl ea2br ea3chi eadli4 ea2dr eae2 ea2g ea3ga2 ea3g2l ea2ka eak3e e2akr eal3ac eal3ak e3a4lei e5a4l5ent e5alen4z e5alerb e5a4l5er4g e5a4l5ert e3alex e2ali e3a4l3in ea4lob ea4l3on ea4lop e4alti4 ea2l3u2 eam3a eam3ä e2ame ea4mid eam5me eam3o eams2 eam3tu eanden4 e2ane eanet4 e3anf eanla6gent eannet4 ea4n3ob ean4t3a4 ea2q ea2ra ear3ac ear3ak ear3an ea3rat ea4r3ei ea4r5ene e4arer e2ari ear3n4 ea2ro ea2r3u e3a2sc e3asf easin4g5 ea2sp eas3s e2ast e2at eate2 eater3 e3atm eat3s2 e3at3t2 e2au. eau4fe e3auff eau5f4re eaug2 ea4u3n eau3sa eaussen6dung. ea2va e2az e1ä2 2eba eba2g eb3ant eb3anz eba2p3 e3bas ebein4s eb5eint e4b5eise ebe4lau ebe4ler ebel5in e3bem ebe4na ebe5n6au. ebenen5e eben4sp e5benu ebe5rad eber5as4 ebe4rel e3bes ebe4s5e4h ebe4ses ebe4sor ebet4s3 eb2la eb3lag e4b3le. eb3lem eb4len eb5les eb4leu eb4lie e3bloc eb4loec e3blöc e2bo2b ebo3ef ebö2s 2ebr e5brau eb2re e3bru e3brü eb4sac eb4sang eb4s3as eb4sau eb4s5ele ebs5end ebs5ene eb4ser ebsi2 eb4sid eb4sis eb2sp ebs5panne ebs3pe eb3spi eb6s5taet eb4s5tät ebs5temp ebs3t4h ebs5tic ebs5tie ebs5tor eb4s5tot ebs5treu ebs5tur eb2su eb2sz e4bueb e4bunt ebus3t ebu4t3 e2büb eby2t e1ce ech3ab ech3ae ech5ang ech5aus ech3ä e3che eche3e ech3ei echenmas6 echenma5sse echer6fah echer6zie e3chi echi3e e3chlo ech3lu ech3m e4ch3n e2cho 3echo. ech5obe echoe4f ech5org ech3ö4f ech3ra ech3rä ech3re echsau4 ech6s5en6d ech4s3o ech4spa ech4spo ech6st5ri echs4tu e4cht echt5erha echt6s5ac echts5ag echt6s5eid ech3uh ech3w e1ci ecke4n ecker6ken eck5erw eck5erze eck6stat 3eckzä e1cl e1cr e2da2b ed2ac eda5chu ed2ad ed2dr ede4al edel5au ede5n4er e3dens eden4sa eden4s5e eden4sp eden6s5ta eden6s5temp eden6s5tu ede3o2 edere4 eder5er4 edero4 eder5ob eder5oe eder3ö eders4 ede3s4k edhof4 edia3l editen4 edi4tin edma3s4 ed2o ed4oc edoe2 edost3 edpol4n e3d4rei ed3rik 3edris ed4s3al ed4seh ed4s3es edsi2 ed2sk ed2s3o ed4s3ti ed4sto ed4s3um ed3te edte5in4 ed2t2h ed3tr edue3b e2d3ug e2dum edund4 ed2ü edü3b edy3 2ee ee3a2 e3e4ben eeb2l ee3bs ee1c ee2ce e3eck eedi4e ee2dr eed3s2 ee1e2 eee4r e3eff eef2l ee3fo eeg2 ee4hep e3ehr e1ei ee3ig. ee3imp eeinbu5 ee5in4se ee3i4sc eei4sp eeis3s e3e4lek e3elf eem4a ee5man e3emb e3emp ee2na ee3n4ac ee3n4ad ee3nae eena4g ee3nas een3er een4o ee5nor een3sh e3ent ee1o2 ee1p ee3po eer3al ee5ram eer3as e3erbt eer5eis. eer5eisa ee4r5en4g ee5r4e4s3 eeres6se eere4t eer5eti ee3rhi e3erhö e2eri e3erlo e3erlö e3ermä eero4be eer5oef ee3ros e3eröf ee3rös eer3sh eer4und eerz2 e5erzeu ee3sh ee3s4l ee3sp e3e2ss ees4t ee5ste ee4tat eet5ein ee2th ee4tik ee3t4r ee1u eeu2f eeun2 eewa4r eeweis4 e1e2x1 e1f 2efa e2f3ad efaes4 e4f3aeu e2f3a2g ef5akti ef3ana e4farc e2fat ef3auf ef3aus e4fähn efäs2 efä5ssen. e2fäu 2efe ef3ebe efecht4 ef3edi e4f5eing efe4l5ei efel7ler efe2n efen3e e4f5ener e4f3enk e4f3ent efere4 efer5eg efer6gebn eferin6d e4f3eta e2fex ef2fa effae4 eff3as ef2fä2 3effek ef4fle ef4fli e4f3ins e2fj ef2le ef4lue e3f4lü 2efo e2fob e2f3of e4f3ora ef2r ef3rat e5fris ef3rol ef3rom ef1s2 ef3sc efste4h eft5anz ef4tei eft5erkr ef4top ef4t3ri ef4t3ro eft4s3e efts3p ef3ums efu5sse 2eg egab4r ega4l5in ega2m eg2äh egd2 ege5in4s ege5in4t ege4l5ac ege4l5au ege4lec ege6l5ei6er egelenkser6s ege4ler ege4l5in ege4lo egena4 ege4nag egen5ec ege6nero ege4rak ege4ral ege4ran ege4r5as ege6reck ege6rend egeren6g ege6rers egerin6d ege6rin6g egerin6t eges5s ege6stor ege6s5tro ege3u egg2l eg3ins egler5e eg3nei egori4e egou3 eg3rän egro5sse eg4sal eg3seh eg3s4e3l egse4r egsgene6rat eg3spe eg4stä eg4sto e2gy e1ha eh3ach eh3aka eha3kl ehalt4s e4h3ans e4h3ant eh3anz e4h3app e4harz eha4sc eh3aug ehau5su eh5ausz e1hä e1he eh3eff ehe3id e4hein ehein4s eh3e4la 3e4heli eh3elt 3e4hema eh3emb e4h3e4mi ehen4se ehens5ei 3ehepa eh3epi eher4an eher4fa eh5erfah eher4fo eher6gebn eher4ke eher4le eh5ersta eher4za eher4zä e1hi e2h3id eh3ill eh3imb eh3inf e4h3ins ehi2r ehis2 ehi2t eh3lae eh3lam ehl3ap eh4l3as eh3lat ehl3au eh3lä eh4l5e4be eh4lel ehle4n eh3leu ehlkop4 eh4l3oe ehl3o4r eh2l3ö ehl6s5ein ehl4sin ehl4sk 2ehm eh4mab eh4mant ehm6ens ehmen6se ehmen6sp ehme4s ehmest5 eh3mu eh3nad ehn3ec eh3nel eh3no ehn6s5eid e1ho eho2l eh3oly eho2p eh3ope eh3org e1hö eh3öff ehö4r5er ehra2 ehr3ag ehr3ak ehr3an ehr3ap ehr3än ehr5eck ehr5ei. ehr5ein eh3ren ehre4n5e ehrer6fa ehrer6la ehr5er6tr eh3reu eh3rie eh3roc eh3roe ehr3of eh3rom eh3rot eh3rö ehr6sein ehr4ser ehr6s5tur ehs2 eh3sh eh3sk ehst2 eh3t2a eh5ther e1hu eh3unf e4huni ehu3s2 e1hü eh3w e1hy 2ei1a2 2eiä ei4b5aer ei4b3ak ei4bär eibe3e ei4b5ele ei4bid ei4b5las ei4bli ei4b5rau ei4brea eibu2 ei4b5ute ei3ce eiche4n eich3r ei3cl e2id ei4dar ei4dau 5eidech ei4d5eis eid5erfü eidi4e 4eidn eid4str e2i1e eie4be eie2d eie3f4 eie2l eie2m 2eie2n eienge4 eie4r3a eierei6s ei5ereu 5eiersu eie4s3s eie2t ei3f4lo eif5lut e2ig 2eig. ei4g3ak 4eige. eige5in4 e5igel. 5eigene. ei4g5erf ei4glo ei4glö ei2g3n 3eigne 3eignu ei2go2 ei4g5rad ei4g5rat 2eigs2 eig3sa eig3sp 2eigt 2eigu 4eigw eik5abl ei4kak ei4k5ank ei4kli ei4klo ei4k3ri 4eil. ei4l3ab ei4lam eila4n ei4l5ane ei4l5ang ei4lant ei4l5anz ei4lar 4eil3c eild2 ei4lein eiler6kl ei6l5erwa eilf2 ei4l5inf ei4l5ins eil4ip ei4lob ei4l3op ei4mab ei4m3a4g eim5all eim5alp ei4m5ans ei4map eima4ta eima6ter eima4to eim5aus e4ime ei4m5ent ei4m5erl ei4m3i4d ei4moe eim3sa ei4mur eina4b ein3a4d ein3ae 4einam ei4n3an ein3a4s 4einat ei2n3ä einbus4 ein3da ein6d5erk ein4duk ein4dus 4eineb eine5inn ein5en6zy ein6er. eine5ras ein5erbe ein5erkl ein5erkr ein5er6la ei6n5er6sc ei6n5er6tr ei4n5ess ei4n5e4ti ei4neu ein6fant ein4fek ein4fiz 5einflus 5einfluß 4einfo ein4fo. ein4fra eing2 e3ing. e3ingt 4einhab ei4n3id 4einie e3i4nit eink2 ein6karn 3einmi ein3n2 ein4nen ein6nere ei2n3o2 5einord einsas4 einsa5sse ein4seb ein6seln ein4sid ein6stab ein6stal ein6star ein4sul e5insyn ein4sz ein4teg ein6terf ein6terp 5eintrag ein6trig 5eintrit eint4s ein5tsc 2einu e4inver ein4ves ei1o eio2b eio2p eio2s ei1p eip2f 2eir eir2c e3irr eis5ala eis5alt ei4sant ei4sar eis5aug 2eisc eisch5er6k ei6schertr ei6scher6z ei6schin eisch5war ei6s5elas ei6s5en6te. eise5ra ei4s5erf ei4s5erg ei4s5erh ei4s5er4l ei4serm ei6s5er6sa eis5ersp ei6s5erst ei4s5erw ei4s5erz eises4s ei4sex 3eisho ei4s3id ei3s4ky ei4soe ei4som ei4s3or ei2sö ei5spru eis2s eiss5chen eis5spa eis5spo eis5stra eisterin6f ei4s3um 2eita ei4t3ab eit5aer eit5alb eit5alk ei4t3an ei4tap ei4t3ar ei4tas ei4tat 2eitä ei4t3är 4eite. ei4teh eite4m eit5emi 4eiten eitende6m ei5t6er. eit6err ei4tess ei2t3h 4eiti ei4t3in eito4r ei4trau ei4t3ro 4eits eits5a4g eit4sal eitt4 eit5tr ei4t3um ei4t3ur eit3z2 2eiv ei4zar ei4z5eig ei4z5ins ei4z5int e2jak 2e3ju 2eka ekaden6z5 ek4ar ek2ä 1ekd e1ke eke2n e1ki e1k2l ek4lo ek2n eko4man ek4or ekor4da ekos2 2ek2r ek2sa ek4s3te 2ekt ek4t3ae ekt5akt ek4tan ekt5ank ek5tante ek4t3at ek4t3au ek2t3ä ek4t3eb ek4t3e4l ek4tep ekt5erf ekt5erg ekt5erk ek4t5erl ek4t5err ek4t5erz ek2th ek4t5ins ekt5int ek4t3ob ekt5ret 2ek2u ekue3b ek2ü ekü3b e3k2w 1ekz e1la e2l3aa el3abb ela4ben e3labi e4labk el3a4br el3abu e4lada el3add el3aef e2l3af e4laho e2l3ak e3lake ela2l e4l3ama el3amb e4l3ame el3amm e4l3ana e4lanb e4landa e4lanf e4lanh ela3n4i e4l3ank e4l3anm el3ann e4l3anp el3ans el3ant el3anz e2l3ap e2l3ar ela4ri el3a4si el3asp el3atl el3atr e4l3att el3au. el5aufg el5aufl el3auk el5ausb e4lausf el5ausl e4l5ausr e1lä e3läd el3äf 3el4bis elb4lei elb2r elbs2 elb3sl elb6star elb4ste elb4st5o elb4stu 2el1c elda4r el4d5ari el4d5er4f eld5erhe eld5erho eld5erhö el6d5erpr el6d5er6sa eld5ersp eld5erst eld5ertr el6d5er6we el4do4b elds2 2ele. 4elea elea4r e6l5e6bene el5echt e3lecl el3edi ele4g5er4 2eleh el5ehe. 4elei e6l5ei6ern el3ei4f el3ei4l el5einb e4l5einf e4l5eing e4l5einh e4l5eink e4l5einl el5einn e4l5einr e4l5eins el5einto e4l5einz el5eisf el3eiw 5elektr e2lel el3elb el3ele el3eli el3ell el3els e2lem e3lem. e3lema el3emb 3eleme el3e4mi e3lemm el3emp 4elen. elena4 el5ener elen4ka elen6klo e4l5ense e4l5ents e4lentw el5enzi el3epe 4eler e5ler. e6l5er6fah e6lerfin e4l5erfo e4l5erga e4l5ergä e6lergeb eler5h elerin6t e4l5erke e4l5ernä e4l5eroe e4l3erö el3err e4ler4ru el5ersa el3erw e4l5erzä eles4p el3ess el5e4tag ele4tik elet4ta e5leut ele2x e3lex. el3ex3e el3exk el3ext elf2a 3elfd elf2l elgi5er. elgi5ers el3g2l elg2r e2lid e3lie eli5ef. eli5eff eli5efs elif3 e4l3i4ma e4l3imb el3imp el3inh el5init el3inj eli5no el5inso e4l3inv el3i4on e4l3iso eli4t3h eli4tu el4kanl elk4ar elke4n elk2r ell5akt el4larb ellar4c el4l5arm ellar6ma el4l5art ella4st ell5aufb ell5aufz 4ellä el3le. ell5eing ell5einh ell5einr ell5eins el4l3el el3len ell4er eller7ge eller6tra eller6zeu el4lese el4lid el4lil el4lim ell5inh el4l5inv 3ellip ello5che el4lod el4lo4g el4l3or el4lot ells2 el4lue ellu4m el2lü elm4stu 2elo e2l3oa e4loel elo4fe e4lonk e4l3opf el3orb el3orc el3o4ri el3orn el3ort el3osz e3lot e2lov 3elsaß el4sb el4s5ein elsgene6 els4kla el4s3ol el3sph el4strü el4sun el4t5ans elt5art el4t3e4k elt5eli el4t5ent elt5er6be elt5erd elt5er4f elt5erhe elt5erk elter6ke elt5er6le elter4n elt5ero elt5er6sc elt5er6tr elter6zeu el3thu el4t3i4b elt3se elt5spo e1lu e2lum el3umb e2l3u2r el3use elu2t el3ute e4l3uti el3uto e1lü e2lya el4z5aep el4z3ar el4zäp el4z5ene el4zoe e1m e4mago em3akk e4m5alar e4m3alk e4manb e4manf e4manh e4m3anm e4manor e4m3anp e4manr e4m3ans e4manw e4manz e4m3asp ema5sses ema3to em3aus 3embol 3embry em4dae em2dä em2dr em4due em2dü e2m3e2b e2mef e2meg eme4n3e emen6gel e4mengt emen6t5ak emen6tan emen4t5h emen4tu e2meo e2mep em3e4po emer3a emerin6t emer4le eme3se e2m3ex emi4e3i 4emil emin4a e4m3inf e4m3inh e4m3inn e4m3ins e4m3int e4m3inv 3e2mir emi6scha e5mitg emi3tr em4map emmas4s em4ma4ß emma3u em4mec em4mei e4moel emo3s 5e4motio 3empfa 3emp3fä em3pfl 3emph empi4re em4p3le emp5lin em2sa em4sim em4spa em4s5tal em4s5tau ems5tri ems5tro emues4 3emuls em3una emü3s2 en1a e3na. e2naa en3ab3i ena4c en5ach. e3naep ena5er. e4naho en3a4ke e3nal. e3nale ena3li 2enam ena2n ena4pa en3ark ena4sc ena4st e4natl en5atom enat4s3 e4natt enau4f3 en3aur enauto6re ena2x en1ä e2näl e2när 4enärm 4enbom en4ce. en3ck en3dac enda4d end3ak en4d3al en4d5ang end5eins ende5int ende4l5ä enderma5s6 endes4p en4d3ex en4do4b 3endog en5d4ort en4dost en4dox end6rif end5rom end5sau end3s4l ends4p end2ü 2ene. e5nece en3ech e4n3eff en3e4ge ene2h en3ehe e5nehm en3ehr e5neien 4eneigu en3elb en3elc en3e4le en3elf e4n3eli e4n3elt 4enem. en3e4mi 4e3nen. en5envi e4n5enzi en3epe en3epi en3epo e2n3e2q 4e5ner. e4n3erd ener5ei ener6ei. en5ereig e4n5erek en5erfa e4n5erfo e4nerg en5erge 5energi en5ergu e4n3erh e4n3erl e4n5ermi e4n5ermo 4enern. e4n5erna ener5ob ener5oef ene5roes ene5rös e4n3erp e4n3err 4eners. e4n5ersa e4n5ersp en3erw e4nerwi e4n3erz 4enes. ene4tag e4n3eth en3eul 4eneut en3eva e4ne2x enf2a enf5einh en5fes 3engad 3engag 5engelh engel6st enge6ne. enge6nen engerin6s 5englis en3gna en3gno 3engp eng4sta eng4str 2enic en3ide e3nie eni5er. eni5era eni5erp eni5ers. eni5erv en3i4ko en3ill eni2m en3ima en3imi eni2o e4n3ion 2enis eni4sa en3iso e3niv enizi5e en4k5aus en6kenla en4k5er4f enk5erg en6k5erha en6k5erkr enker4l en6k5ersa 5enklav en4k5ort enk2ü 4enlic en4nef en6n5er6fa 3enniu enns2 e2n3oa en3o4be e4nober en3obo e4n3o4br e4n3oe4d e4n3oel e2n3of e2n3oh en3oli en3olm en3oly eno2n3 e4n3ope en3opf e4n3opi eno2r en5oran en3orc e4n3ord e4n3ori en3ork e4n3o4st en3osz e5noti eno2w e1nö en3ö2d en5rei ensa5es ens5amte en4sanf ensas4 ensa5sse ensche6f en6schlic ens5ehr 5ensemb en4s5en5e ens5erei ense4t en4s5eta ensex5pe en5s4law en4s5off en4s5ont enspas4 en5s6pen 4enst. enst5ak enst5alt en6starb 4enste. en6stele 4ensten 4enstes en4stit 4enstl 4enstm 4enstn en4stob 4ensts 4enstv en4sumf ens5umv en4tanm entar6tik 4entba en4tela en4telä en4tema ent5emo en6t5en6de. enten6den. en6t5en6des ente4n5e 5entera ent5erben enterma5 5entero en6terre ente4t ent5eta 4entfo entga4 3entgi 5entheb en4thi en4t3id 3entla 5entloh 3entlu 3entlü 5entnah en4t3ob ent5oel en4t3os 5entrah en5tré 5entrieg 5entropi 3entso 3en4tw 6entwert. 6entwerte 6entwerts 4entwet 3entz e3nu. e3nueg enu5ett en3uf en3u4ma en3umt en3un en3u2r enu2t e4n3uto e3nüf e3nüg e3nül e3nüp e1ny2 enz2ä enze4ne enz5erfo en4z5erh en4z5erk enzer6ku enz5erla en4z5ero enz5erte enz5erwe en4z5erz en4zf en4z3i4d enzlan4 enzo4l 4enzuf 5enzyklo 3enzym 2eo e1ob1 eo4ber e2obo e2ob2r eo1c e3ochs eod2 e1oe2 eo3edi eo3em eo3en e3off e3okk eo3la eolet4 e3o2ly e1on e3o4n3ae e5onatom e3o2nä eon4e e2ono eo1o e3o2pe e3opf e3ops e1or eo3ras eo3rau e3orb e3ord e3o4r3ei e3org eort2 eos2 e3os. eo3s4e e3o4ste eoti3e eo3ul. eo3uls eou2t e1ö2 ep2a epa2g epan6zerf epas6s5er ep3ega ep3ent ep3ex eph3el eph3em e1pi 3e4pid 3e2pig 3e2pik 3e4pile epin3g4 e3pio 3episo 3epit e2poc 3e4pos. ep2pa epp3ar ep4pei ep2p3f ep2p3l ep2pr e1pr ep2s3c ep3sh ep1t ep4t3ae ep4tal ep4tau ep2t3ä epter4s ept5erst e3pu epu2s e1pü 2eq 3equip er3ab. e3raba e4r3abb era4ben er3abr er3abt er3ach e3rad. er3add e5radi e4radj er3adr era3e4b e3raed er3aef er3aeh er3ae4m er3aer era5er. er3ae4s er5aeuß era4gen er3a4gi e3rago er3ahl era4ho er3aic e3rake er3akk e3rakl e4r3akt e3ral. e3rald e3rale eral4eb era6lent e3rali eralin6d era6ling er5alke er5allo er5allt era4mat er3amb er3amn e4ramp e4r3a4na e5rand. e5randen er5andr e4ranf er3ang e4ranga e4rangr e4ranh er3ank e4ranl e4r3a4no er3anp er3ans e6rantei e3ranu e4ranw er5anzu er5anzü e3rao e3rap er3apf er3apo er3are era4rie e4rarr e3ras. er3asb era4sie er3ask era4spe era4ss er5ass. er5assi era4str e4r3a2ß e3rat e4ratel e4r3atm er3au e3raub e3rauc erau4f3 e4raufs e3raum e3raup e4rauss e4raut er3a4va e3raw e4r3ax e1rä e3räd er3äf er3äh er3ä2m er3äp e2r3ä2s er3ätz erbe5ers erb4lo 5erbreg erb4sa erb6star er1c er5ch4e erche5i er3chl erd5ant 3erdäp 3erdb 3erdg er4d5inn er4dob erd4os 3erdöl 2e3re. er5e4ben er2ec er5echs ere4del er5e4dit ere3en er3e4he e3rehi e3reho er3ehr 4e3rei. 4e3reia 4e3reib erei4de e3reie e5reiga e5reigeh 5ereigni 4ereih 4ereik 4ereil er3ein e4r5einh e4reinl e4reins e4reint er5eisar e4r5eisb er5eisd er5eisf er5eisr er5eisv er5eisw 4ereit erei6t5erk 4ereiu e3reiv 4ereiz er3ele er5e4lit 4e3rem. er3emb er5e4mig ere4mis er3emp e4r3ems e4r3emu 4e3ren. e3rena er5endg erengene6 e4r5entn e3renz eren6z5en6d eren6z5er er3epi e4repos 4e3rer. 4ererb e4r5erde e4rergo e4r5erho erer4hö e4r3erk e4r3erl 4erern. e4r5erna e4r5erne e4r3ero 4er6ers. er5ersat e6r5ersche e4r5ersp er5erste er3ert e4r3eru 4ererv e4r5erwa e4r3erz 2eres e3res. e4r3ess4 e6r5esse er3eß ere4tab e4r3eth eretri5 e4retu ereu3e er3eul e4r5e4vid erf4a 5erfahru er3f4e 5erfolg. 5erfolgr 4erfort erf4ta erg5ant er4g5are 5ergebn er4g5ein er4g5elf 5ergenar 5ergenb 5ergene. 5ergenen 5ergenk 5ergenl 5ergenp 3ergom er4g3op erg3s4o erg3s4p 5erhaltb er3ho e1ri e4r3iat e3rib 2eric erich6t5er6s e4r3ico 4erie erie3b4 erief4 erie5fl erie4ne erien5en eri5er. eri5ers. e3rif er3ima er3imb er3imm er3imp 4erin. e4r3ind e5rind. e3ring e4r3i4ni e4r3in5k er3inl 6erinnen 5erinneru 5erinnr er3ins e5rins. e4r3int e4r3inz e3rio e4r3ion e3ris 4erisc er3iso e4r3isr 3eritr 4erkaj er5kat erk5ends 5erkranku erk4sen erk4ser 5erkundu 5erläut 5erlebn 5erledi er5leg 5erlös. erls2 er3ma erme5sz er3mo erm2u er4nalg er4n5all er4n5alt ern5erbe ern5erei ern5erst erne4te er4n3ob er4nop erno4r er4n5ori 4ero. e3roa e3roba e3robb e3robi er3o4bl er3obm e3robo er3o4br er3obs e3roec eroe4d e3roeh e3roen er3oer e5roes. eroe4s5c er3off e3rofr e3rog e3rohl er3ohm e3roi e3rol e4r3oli e4r3oly e3rom ero3ma er3omb e3ron ero3na er5opal er3o4pe er3opf e3ropo er3o2r eror4a eror4e e3roro 4e3ros. e3rosa e3rose 5erosio e5rosit er5otter e3rou e3row er3ox e3rozy e3röc erö2d er4öh e3rös. erö4s3c erp2 er5pen 5erprobt 5erprobu er3rae er4rant er3rä 5erregt erri5er 5erringu ers4ana ersau5re 5erscheinu ersch4l ersch4m ersch4r ers2e er3si ersmas4 ersma5sse er4sos 5ersparn er7stati 5erstatt er7statu erst3h ers4tod er4t3a4d er6t5akts er4tax ert5eck ert4er er4t5er4f er4t5er4h er4t5er4k er7tersc ert5erst er4t3ho ert3sa ert5spr 2e1ru eruch4s5 e4rueb eruf4s3 e4r3uhr er3u2m erum3a er3und e4rundu er3unf er5unga er5ungl e4r3unk er3up. 3e4rupt eru2r er3u4se er3uz e1rü ervenen6 5erwerb. er4z5erk erz3te erz4wi e1s es3abe e2s3a2d e4saem e4s5aerz esaes4 e4s3all e4s3alt e3sam e4s3ami esam4tr es4anh es4ank es4anr es3apf esas2 esa5sse e3sat e4s3ato e2s3a2v e2s3ax esäs2 e3s2äu es3b esbi5er. e3scen e4sch. e4s5cham esche6mi e6schent e6sch5er6f e3schi esch5op esch4u e3scr ese3er es3ehr ese3i4m e3s4ek ese4len ese4ler esen4ac ese4neu esen5th ese5ref e5seri eserin6t es3erö eser3u4 e5serv e2se2x es3ha e3s4ham es4har esi5ers. e2s3i2k e4simp e4s3inf es3ini es3int e2ske e2skl es3kor e2sky es3l e2soa e2so2b e2s3od eso4de es3ofe e3sol e3son eso3pa e4s3orc e4s3ori 2esp es4poe es6portp es2pu es5rei es4s3ad ess5alt es5sam essau4s 3essay 4essä 4essc esse5er esse3g e4ssel esse6l5ers essen6sp 5essenz es6serfah ess5er6ho esser6hö e4sserl e4s3sis 4essk 4esso es4sof es4spu es4ste ess5ter es4s5top es4s5tor essur4k 2est e4st. estab4b e4stabg est5ans est5anza e4starb e4starm esta4s est5asc e3stau e4staum es2tä es4te. este4c e6st5eing est5eink est5einl est5einr est5einsc est5eint estell5a e3stem e4st5emi est5empo esten6ga est5engl e5stens e6sten6se est5entr est5ents ester6ken est5erkr est5ernä est5eroe e4st5er4ö ester6weit estes4 e4st5ess e4st3id est5ing estmo6de. esto5ckes e4stod e5stoen est5org est5ort e4s5trac est5rate. e4strel e4strun e3stu e4s3tuc e4stueb est5ums estu4r est5uri est5urk e3stü e4stüb es2ty e3sub es3ueb e3suh e4sumg e4s3ums e4s3umw e3sup es3urb es3url es3urs es3urt esu2s e3sut e3sy e2sz es3ze eß3ele eße3re e4ß3er4l e1ta et5a4ben et2a3c eta3e4b et3aeh et3agi etalla4 etal6lag etal6li6n etal4lo etalloe6 etal4lö4 et3a4mi eta3na e5tanj et3ann et3ano et3arb et3art eta4t3r et5aufs et3auk e1tä et3äh 2e1te et3eff et5e4he. e4t3eim et5eins e4t3eis eteng4 eten5sp e4t5ents e4tentw eten6z5er e4t3e4pi ete4r3ä ete6r5eis etergene6 e4t5erhö eterich6 eter6loe e4t5er4lö eter5oe et3erö e5t6erta e3tes eth4a 3e4thik 3ethn 3ethol e1ti e2t3i2d eti4kar eti4kl eti2m eti3na et3ind e4t3inf e4t3inh et3ini eti4ta eti4th e1to et3obs e2t3o2f eto4n5al eto4nar eto4ner e4t3orc e4t3ord e4t3org e1tö e1tr etra5e4d etra4s5s e6t5raum. et3rec et2ro ets3ae ets3au etscher5e etsch5wu ets5eng et4sim et3sö ets3pr et4t3a4b et4tad et4tae et4t3ak et4t3a4m et4t5ang et4tanm et4tans et4tanz et4tap et4t3at et2tä et4tei ette4n et4tesp et4t5ess et2th ett5iso ettoe4 ett5ope et2tö2 et2tr ett3ru ett3so et4tue4 et4t3um et4tur et4tü2 2e1tu 3e2tui e4t3ums et3ups et3use e1tü etwa4r ety2l3 3e2tym 2etz et2za et2zä et4zed et4z5eig et4z5ene etz5er6sc et4z5erw etzes3 etze4t et4z5eti et4zoe et2zw eu1a2 eu4ble eu4bli eu3cha euch4ta euchter6 euch4to euch4t5r euder4e eudi4e eu1e eue2d eue3fa eue2m eue3p eue4rei euer5eif euer5eig euer5eis euerer6r euerer6s euerer6t eue4ro4 euer5of eu4esc e3u4ess eu3f2r eu2ga eug3an eu6g5endm eu6gense eu4gid eugin4f eu4g5in4g eu2gl eug3la eu4gre eugs2 eug3sp eu3hu eui2 eu3id euil6le. eu3in3 3eukal e3um. eumas4 euma5sse e4ume eum3p eum4s3p eums5tu eums5tü eun2e eu4ni. eu4nio eu4nis eu1o2 e3up. eu3p2f e3upg 3euph eu4r3an eurasi5e eu4r5a4st eura3t eur3c e4u3re eure5in4 eurin4f eur5in4s 3e4uro 4euron eur4so eur6s5tae eur4stä 2eu1s e3usar eus4c eu6sch5ei eu6schel eu4schl eu4schm eu6schue e5useff eu3s4ei e3usg e3usk e3usn eu4spe eus2s euss3c e3usst eust4r eu3tei eute5in4 eute5r4a eut2h 3eu3tha eut4o euts4 eut6scha eut6schm eut6schn eut6schr eut6schw euve4 2eux eu1y eu2za eu4zec eu4z5ent eu2zo eu2zw e1ü 2ev 3e2vak eval4s3 evan4z3 ev4en eve3r4i e2vl ev2s ewae2 e2w3au ewä2 ewebe5i eweb4s ewei4sc ewei4st ewer4g ewer5te ewi2e e3win e3wir e3wit ew4st ewuerzes6 ewürzes6 2ex. 3exam 2exan ex4ans 3ex4ek e2x2el ex3ele ex3erz 2exes 2exf e1xi 3e2xil e2x3in ex4is ex3l ex3or 1exp 2expu 2exs 2exta 4extet ex4tin ext5rei 2extv 2exu e2xum ex3v 2e1xy eya2 ey2ne eys2 2ez e3za e4z3enn ez3erk ezes4a ez2o e3zoh ezu2e ez2w é1 é2es égi2 élu2 ém2 ér2 éu2 è1 2ë1t ëu1 ê1p 1fa 2f3abb fa4ben 2fabf 2fabg 2f3a2bl 2fabn f3a4bre 2fabs 2f3abt 2fabw 2fabz fa2ce fach3a fa4cheb fa4chel fa6cheng fa6chent fa6ch5en6z fa6ch5erf fach3i fach3o fachs4 fach5sk fa5chung 2fa2ci fad3a fa4dan fa4del f3ader fa2di f3adl 2f3a2dr fa2e fa3eck f3aerm 4f3aerz fae6sser6 faess5ers fae4ßer 4f3aetz f3aeug 2f3aex fah6l5ent faib2 fa2ke fa3la fal4kl fal4la falla4g fall5auf fal4lei fal6lenk faller4 fal6lerf fal6lerg fal6l5erk fal6l5erm falli4 fal6lini fal4lis fal4lo falloe4 fal4lö4 fal6scha fal6schei fal6sch5l fal6schm fal6sch5w fal4t3r fal4zw fa4mei 2f3amp f3amt 3famy 3f4an. fa4nar fan4d5er fan4dre fan4d5ru fan4drü fan4gei fan4gl fan4gra fang6s5tu fang6stü fa4n3in 2f3ank2 2fanl 2fann f3anp 2fanr f3antr 2fanw 2f3anz fan5zi f1ap fa2po fa3r4a far4b3a far4b3ä far4bel far4b5er far4b5in far4b3l far4b3o far4b3r far4b3u far4m3a 4f3armi 2f3a2ro far4r3a far4rec far4re4g far4rh 2f3art 2f3arz fa3s2a faser5e fa3sh 4f3assi 4f3a4str fa2ß f3aße f1at fa2to 2fatt 2faue 2fauf f3aug f4aul fau2s f3ausb f3ausl 3fav 1fä fä1c 2fäf fäh4r3u 2fäq 2f3ärm 2f3ärz fä2s fä5sse. fässer4 fäss5ers fä4ßer 2f3ätz 2fäug 2fäx 2fb2 fbau3c fbau3f fbild5e 2f1c fch2 2fd2 fdi2e f3ds 1fe featu4 2f3ebb fe4ben fecht6e fechts5e 2f3eck fe4del fedi4e fe4dit fe2dr feein5 fef4e fef4fr fef2l 2f3e2he fehl3a fehle4 feh4l5ei feh6lerinn f3eib 2f3eic fei4l3a fein6d5ei fei6n5erz fein4fo f3einl 4f3einn 4f3einq fe5ins. f3eint fei4nu 4f3einw f3einz 2f3eis 3fek fek4ta fek4t3r 3fel fe2la2 fel3ae fel3at fel3au fe2l3ä f4elb fel5bi fel4dac fel4d5ar fel4d5e4m fel6d5end fel6d5er6k fel4dra fel4dre fel3ec 4f3e4lef fe4l3eg 4f3e4lek fe4l3en fe4l3er fe4les feli4n3 fell5ans fel4läh fel6l5ers fel4lin fe2l3o fel4sk fel6spir 6f5el6tern 2f3emb fem4m 2f3emp f4en. fe3nac fe4na4g fe2nä fend4a fende4f fen5end fe4n5ent 4f5energ fen5er5o fen5erö fene4t fen3f2 4fengp fe4nid fen3in fen3i4t fenk2 fenn2 fe2n3o2 fens4a fen4sal fensau4 fen7schl fen3sh fen5s4kl fens4po fen6stri 4f5ente. 4f3entf 4fentla 4f3ents 4fentw 4fentz f4er. fer3ab fer3a4d fer3ae fer3al fe5rant fer5anz fer3as fe2r3ä 4ferd. ferde3 4ferde. 4ferden ferdes4 4ferds fe4r3e4b fer5eck 3ferei fe4rein fe4r5eis fer5eiw fer5ell fe4r5erd fe4r5er4g fe4r5erw fe4r3e4v fer6fahru fer6folg fer6fuel 4f5er4fül 6fergebn fe4r3i4d ferien5 ferin4t feri4on fer6lebn fermi4s ferner6k ferno4 fer3oe fer3o4f ferr2 fer6regt fers4p 4f3e4rup 4f3erzä 2f3e2se fe2ss fes2t fest5a4b fest5ak fest5al fest5an fest5ar fe4st5ei fe6st5end fe6steng fe6sterei fe6stero fe4stil fe4st3o4 fe4str fest5ru fes4tu fe4tag fet5ero 4f3e4tik fet4t3a fettes4 fett3h fetti5s fett3r fett3s 2feu. feuer5o 2f3eut f1ex 2fexp fe1y2 1fé 2f1f ffa2b ffa5chu ff3a2d ff5akti ff3ans ff3ark ff3arm ffa2s ff3aß. ffa2t ff3au ffaus3 f2fa2z f2f3e2b ffe2e3 f2f3ef f2fei ff3eig ffei4n ffe5in. ff5einb ffe5ini ff5eink ff5eins ffel3a f4felem ffe2m f4f3emi ffe4rec ffe2t ffet3r f4fetz f2fex fff2 f2fil f2f3im ffi4xi f2fj f2foe ffo2l ffo2r ff3ori f3fot ff3ott ff3ox f2fö ff3rak ff4ren ff3roa ff3rol ff4sal ffs5end ff4sin ff4spu ff4stau ffs5tie ff4sto ffs5tru ff6s5tuer ff4s5tut ff4s5tür ff4sum ff3ti ff3um ff3urs f3fus ffus3s f2fy 2fg2 fgeb2 fge3na fges2 f3gh fglim4 2f1h fho4l3a 1fi 3fi. fi2ar fi3ask fi3at fici3 fi2do 2fi2dy fie3b4l fie4br fi2er fi3er4f fi4gec fi2g3r fi4kanf fi4kanr fi4k5ans fi4kanw fi4k3as fi4k3el fiker4s fi6k5erst fi4kin fi4kle fi4klo fi4klö fi2kn fiko2 fi4k3ob fi4k3op fi4kor fi2k3r fi4l3an fi4lau fi5laufb filauf6n filb2 fi4l3ei filen4 fi4l5end fi4lent fi4lep fi4les fi4l3in fil4ip fil4ma film5as fil4mä fil4m5ed fil4mei filo2 fi4lob fi2mi 2f3imp f4i3na fi4nant fi4nar fi4nel fi4net finge6ro fing4s 2f3inh 2f3inj 4f3inse fin4sp 2f3inv fi3ol 2f3i2ri fis2a fi4sch5a fi4schä fi6schei fi4schl fi4schn fi4sch5o fi4schr fi4sch5w fi3s2h 2f3i2so fis2p fiste4 fite2 fit3el fi3ti fi4tin fito2 fi4t3or fi4xel fi2za f2jor 2f1k2 fkaken4 fka4t3i fke2 2fl. f3lab 3f4laec f3laed 4flaen f3laeu flan6sch5l flanzer6 f3lap f4lasc f3lats f3lauf flauma4 3f4läc 2f3läd f3läu fl2e 2f3le. 2f3leb f2lee 4f3lein flei6sch5r 4f3leit flek5t 2f3ler 2f3li. f5lich. f5liche 2f3lig 2f3lil 3f4lim f3lind fli4ne 4f3ling 4f3lini 4f3lins f2li2t flo5che f3loef floes6ser f3lok 2f3lon 3f2lop 3f2lor flo3ra 5floss. flo5s6ses. 3floß 3f2lot flo2w 2f3löf f2luc f4lueg f3luem f3luf f4lug flu4g3a flu4ger 3flugz f3lup fl4ur flur3i 3f4luss 3f4luß flut3o f2lüg f3lüm 3flüs f2ly 2f1m2 fma2d fmarschach6 fmas4s fma5sse f3mu 2f1n2 f3ne fni2 fni3sc fnue2 1fo foa2 fodi2 2f3oe2f 2f3oek f3oele fo3eli 2f3o2ly fo4nad fo4n3al fo4n3an fo4nap fo4nar fo4nau fond2 fonds3 foni4en fo4n3in fo4nop fons4 fo2nu f1op 2fo2pe fo3rad fo3rat 4fordn ford3s 2f3org for4mae for4m5a4g for4mas for4m5au for4mä for4m5ei for4min for4mor forni5er. for6schl for4sta for6st5ei6 for4sti for4sto for4st5r for4t5ei for4t5er for4t3r fort3s4 fo3r2u 1fö föde3 2f1ö2f 2f1ök 2f1öl 2f1p2 2fq fr2 f3ra. frach6t5r 2f3rad fra4dei 4f3raed f3raet frage5i 2f3rah 2f3ral fra4m fram3a f2ran f3rand f3rann 2f3rap fras2 f3rase 3fraß 3frau. f3raum fraus4 frau5se 2f3räd f2rän 2f3rät f3re. f4rean f5recht fre4e f3rege f3reh f4rei. freib4 4f3reic f4reie frei3f frei3k4 2f3rek 2f3rel 3f2rem f3ren 2f3rep 3f2req f4resc 4f3resi f3rest f4rete f2reu 2f3rez f1rh 2f3ric fri3d 2f3rig 2f3rin frin6g5er f3rip 3f4risc fri6scha f4rist fri6ster 2f3roc froes5s 2frol 3f2ron fro4n3a fro4sc fro6stei fro4str frös3s 3f2ruc f3rud f3rues fru6fere f3ruh f3rum fru6ster f3rut früh3t f3rüs 2fs fsae2 fs3aer f3sag fs3all fs3alt fs3amp fs3a2s fs3a4te fsau4n f1sä2 f2sär fs3äus f2sca f2sce fsch2 f4schan fscha4o f4schef f4schro f2s3cr f2s3e2b fse2e fsee3i fs3ehr fs3ein f5seit f2s3el f4s3e4n3e f4s3ent f2s3er fse3r4u f5serv fse2t fs3eth f2si2d fs5iden fs3inf fs3ing fs3int f3s2ky fs1o f3soh fso2r f1sp f4spas f4spat f4spel f2sph f4spot fs5prie f4spro fs4pul fs3s2 fs5taeti fs3tak f4s5tale f4s5tank f4s3tas f4s5täti fs5terr f4stip f4s3tis f4stit fs5tren f4s5trol f4s5trub f4s3trü fs5tuete f4s3tur f4s5tüte f2sty f1su fs3ums f2s3un f2s3ur f2s3ut f1sü f5szene 2f1t f2ta. f4t3aeu ft3ala f5talg ft3all fta2n f4t3ana ft3and ft3ang f4t3ano f4t3ans ft3apf f2t3a2r ft3att ft3auf f2t3äu ft3eck ft3edi ft3e4he ft3eig ft3ein f4t3eis f4t5elek f4t3eli f3ten. fter3a fter3o ft5ersa ftes2 f4t3ess ft3eth f4t3e4ti fte3u ftgu2 ftgut3 f2t1h f3t4hem f2t3id f3tig f3tik f2t3im f2tin ft3ind ft3inf f3ting ft3inh ft3inn ft3ins ft3iso ft3le f2t3o2b ft3oef f2t3of f2tom fto2p ft3ope ft3org f2t3ot ftpo4s ft5raed ftrag4s f5tran ft3rau ft3ril ftritt4 ft3ruh ft6s5achs fts3a4g ft4sam ftsau4 ft4s3än ftsch4 ft4s3e4h fts5eid ftse4l fts5eli ft4sem ft4s5end fts5ene ft4s5eng ft4sep ft4s3es ft4seu ft2si fts3in fts3o2 ft4sol ft4staf ft4ster ft4s5tes ft6s5tier ft4s5tor ft6s5treu fttra4 ftu3en f2t3um ft3unb ft3und f4tunf ft3urk ft3url ft3urt ftwa2 ftz2 1fu f2ue 2f3ueb fuel6lic fuen4f5a fuen6fei fue4r fues2 f2ug f2uh fuku3 2ful fuld4 f3ult 2f3umb fu4mei fu2m3i f2umm 2fums fun6derg fun6d5erh fund3r 2f3unf 4f3ungl 2f3u2ni 3funk fun4ka fun6kerk fun4k3l fun4k3o fun4k3r funk3t fun4ku 2f3unl 2funm 2funr 2f3unt f2ur fu4re. 2f3urk 2f3url f2us2 2fusc fu4schw fu3so fu5sse. fu5ssen. fu5ssend fuss5er4 fu5sses 3fuß fu4ß3er 3fut 1fü 2füb fühl4s5c fühl4s5e fühl4st fül4lic fü2r fü1s2 2fv 2fw f1y 2fz2 fzeiten6 fzei6t5end fz3t fzu4gin fzug4le fzug6stu 1g 3ga. 2g3aal 2g3abd gabe3e gabe3i gabe3r 2gabf 2gabg gabi2 2g3a2bl gab5le gab4ri gab4ru gab4rü 4gabsc 4gabsta 4gabstä 4gabstu 4gabstü 4gabtr 2gabw gaby2 2gabz g4a3di 2g3adl gae5is. 4g3aend 2g3aep ga3erh g3aerz gaes4s gaeste5 ga3eta ga3fl 3gai ga3il. ga3int ga1k ga4kad 2g3akt ga4kus ga3l4a gala3e g3a4lar 4g3alau ga4l5en4d g3algo 4g3allt 4g3alta 4g3altd g3a2lu ga4m3al4 4g3amaz ga4meb ga4mec ga4mep ga4m3in gam5ma gamo2 gam3t ga2mu 4g3anal ga4nan gan5ato ga4nau g4anbr gan3d2 gan5erh gan5erk gan5ers 2ganf gan4gar gan6g5e6be gan6g5er6b gan4gr gang4sp gan4g3u gan5inn gank2 4g3anke g5ankun 2ganl 4g3anmu ga4n3ob ga4nor 2g3anp 2ganr 4g3ansi g5ansti 2ganw ga3ny gan4zw 2g3app 2garc garde3 4g3area ga4rena g3arg ga3rin 2g3ark 2g3arm ga3r4o 4g3arti 2g3arz 3gas ga2sa gas3al ga4sche4 ga4s3ei ga4s3el ga4s3e4m gas5endr ga4s5ent ga4serz ga4s3e4t ga4sin ga4s3is ga2so gas3s4 5gasse. 6gassess ga5ssest gas5tank gast5elt ga4sto gastra4 ga6st5rae ga6stras5 ga4st5rä ga4stre ga6strom gas5tur ga4sum gat4a gat2h ga3tha 2g3atm gau4eri gau2f ga3ufe 2g3aug ga3unt 4g3ausb 4g3ausd 4gausf 4gausg 4gausr 4g3auss g3ausw g3ausz 2g3aut g1äh 2g3änd 2g1äp 2g3ärz gäs2s gäste3 2g1ät 2gb2 g3ba gb4au gbau3f gbau5s g3bä g3be gbi2e g3bl g3bo g3bu g3bü gby2t 2g1c 2gd g2dab gd2ad g2d3ak gd3all g2dan gd3anz gd3art gdä1 g2d3ei gd3els g4d3ent g2d3er gd3eth gdi2e gd3ins g2do2b g2dop g2d3ou gd3roc gd3roe g2d3rö gd3s2 gd1t gea2d gea2n gea2p ge3at ge4at. ge4ate 4g3ebbe geb4le geb4lin gebot4 ge3cha ged2 gedi2 4gedig ge1e2 ge3eg geer3e ge2es geest3 ge3ev gef2 ge5far 2g3eff gegene4 ge3g2l ge2gn ge4h5erl 2g3eid ge3im gei2n 4g3einb gein4di ge5in4fo 4g3eing gein4ha ge3ini 4g3einl ge3in4n 4g3einr gein6ten gein6ter ge3in4v 4g3einw ge3ir geis4 geise4 gei3sh ge3iso geiss5c gei4sta gei4st5r 2gek. gela4n ge4l5ano ge4lant ge4lanz g4elb gel5bi gelb5s gelde4 gel4dem gelder4 gel6d5erh gel6derp gel6ders gel6dert gel6derw gel4do gel6drue gel4drü ge3lec ge4lef gelei6gen 4g3e4lek ge4l5end ge4l5en5e ge4l5ent gel5erd gel5er5e gel5erf gel5erg ge4l5erk ge4l5erl ge6l5erna gel5er5o ge4l5ers gel5erz ge4less gel3f gel4fe. gelgene6 gel5int gel3la ge4l3om ge5lot gel5sa gel6s5chor gel6terh gelz2 gem4a ge4ma. gemas4s gema5sse 2g3emb 2g3emp gem2u gen4aes ge4nat ge5n4au. ge5n6auste 4genda. gend5in5 gend5ri gen6drit ge4neg gen4eh ge4n3el ge4nemi ge6n5ende ge4nep ge4n5er4b ge6n5erei ge4n5erf gen5er5in ge4n5erk ge4n5ern gen5erst ge4n5ert ge4n5esk ge4n5ess gen3f2 geng2 gen4ge. gen6geln gen6gels genger4 ge4nim ge4n3in genk2 genma5sse. gen3n2 ge4noc gen6s5amt gensch4 gen6semb gen6s5ert genta6bl 4g5entfa 4g5entfe 4g3entg gen5thi gen3tr 4g5entst 4gentur 4gentw ge4nun gen6z5art gen6z5eig genzmas6 genzma5sse ge3oh ge3oo geo4ri ge3ou ge3p2 ge3ra ger3ab ger5adm ger5ala ger5alb ger5all ger5alp ger5alt ger5amp ge4rans ge4r5ant 4gerdg ger5ecke ge4r5eid ger5eig 6g5ereign 4g5e4remi ger5ende ge4r5en5e ge4reng ge4r5en4s ge4r5ent ge4rerf ge4r5erh gerer6ke ger5ersa ge4r5er4w gerer4z gerin6de gerin6di gerin4f 4g5erklä germas6s ger4nau ger3ne 4g3ernt ger5obe ge3roc ge3rod ge3roe ge3ros ge3rot ger3o4v ge3rö ger6regu 4g5er4seh gers4k gers4p ger6wart ger6weit 6g5erwerb gerz2 g2es g4es. gesch4 ge4s3eb ge4s3ec ge4s5ein 4g5e4sel. ge4s5elt ge3sen ge4s5er5e ge4s5erf ge4s5erz ge2sk ge5sof ge4s3ou ges2p ge4s3ph ge2ss gess4a gess4t gest6ei ge4stit ges5tor. ge6strig ge4s5tur get5ange ge4tant 4getik 4getow get2r ge4t5res get3sa get3s4p get3t 4getui 2g3eul ge3unk ge3urt ge3u2t 2g1e2x1 2g1f2 gfa5chu g3fe 2gg gga4st gga5ste gga2t g3ge ggeb2 gges2 ggi3en gg2lo g2gn g2gof gg2r 2g1h gh2a ghafe4 3ghale gham3 3g2het gh1l g3ho 3gh2r ghs2 gh3sc gh2t3i gh3w g2i gib2l gich2 gicht3 gi2e gie3b gie3d gie3f4 gie3g2 gie3i gi5enab gie3n4e gienein6 gi3enk gi3enr gi3ens gie6r5eis gie5res gi5ergi gie5sp gie5sse gif4t3r gift5s 3gig 4g3i4gel gi2gu gik3a gi4kan gi4k3el gi4me. gi4mef gi4mes gi4met gi3na 2g3ind gin4di 2g3inf gin4ga 6gingeni gin4g3r 2g3in2h gi4nit 4g5inner gin4sa 4g3inse 4g3insf 4g3insp gin6standh 2g3int 2g3inv 2giok gi4sch5w 4g3isel gi2ss giste4 3git giu3s 2gj 2g1k2 g3ka g3kä g3ko gko3ef gkraf4 gkue3b gkü3b 2gl. gl2a 2g3lab 2g3lac 4gladu g5laend glaes5c 2g3lag 2glah 2g3lam 4gland glan4dr glan4za glan6z5er 2g3lap gla4sa glas5tr gla4stu 4g3late gl4au 4g3lauc g3laue 4g3lauf g3laut 2g3lav 2glaw g3läd 4g3länd g3lär gläs3c g3läß 4gläuf 2glb 2gle. g3leb 4glebi g4lebo g4lebö gle3ch g3led gleer4f g2lef 2gleg 2g3leh 3g4leha 4gleib g4leic 4g3leid 4glein g4leisi glei6s5tr gleistra6 gleistras5 glei6terk glei6t5er6sc glei4t5r g2lek g2lel g2lem 2glen g2lep 2gler glerei6g g3les g4les. 4glese g2let 4gleuc g4leur g2lew 2glh 2gli. 3g2lia 2glib 2glic 3g2lid 3g2lie 4g3lieb 4g3lief g3lieg 2glif g2lik 2glil g2lim 2glin g2lio gli3on 2glis 4glite g4litt g2liz g3lize gl2o g2loa g2lob g2loc 4g3loch glo5che 4gloew g2lof 4gloks g2lom g2lon g2lop 4glorb 2glos g2lot 2gloy 4glöch 2glöh 2glös 2glöw 2gls g3luch 4g3luef 2gluf 2glun 2g3lus 3glüc 2g3lüf g3lüg 2glw 3g2ly 2g1m gm4en gmen4tr gmen4tu gmi2s gmue4s gm4un 2gn. g2na. 2gnac g3naep 2gnag 2g3nah gna2k gna4l5er5 gna4l5in 2g3nam gn3ana 2gnaq 2gnar 2gnau g3näp 2gnb 2gnc 2gnd gn2e 2gneb g3neh 2gnei 2gnel gne2n gnen3e 4gn3ent gner6geb gne4ta gne4t3r 2gneu 2gnf 2gng 2gnh gni2 g2nie gni3en g2nif g2nin 4gn3ing 4gnint 2g3nis3 gnise4 gniser5 2gnk2 2gnl 2gnm g2no1 2gnob 4gnori 2g3not g3nov 2gnp 2gnr 2gns 2gnt 3gnu. 3gnum. g3nun 2gnv 2gnw g2ny 2gnz go2al goa3li g1ob 2gobj g2ob4l 2g3oe2f 2g3oeh goei2 2g3oel go3enz goe2s3 g1of go2fe 2gog 2g3ohr go1i gol2a gol4d3a gol6d5eng gol4d3r gol4fa gol4fel gol6ferl gol4fl gol4f3r golfs4 gon2a go4n3an go4n3at 2gope 2g3opf go4pos 2gopt go3rap 2g3ord 2g3org g4oro 2g3ort go2s3a go2si go3s2l go2sp 2g3osz go5thae gotte4 got6t5erb got6t5erg got6t5erl got6t5erw gottes5 got4th go1y2 2g1ö2f 2g1öh 2g1öl gö2s3 2g1p2 gp4la g3pu 2gq g3qi gr2 gr4ab gra4ba gra4bi gra4bl gra4dei gra6dend 4g3radl 4g3raed graes5c 2g3rah 2g3rak grammen6 gram6m5end gram6m5er g3ramp g5rand. 2gr4ar gra4ra gra4r3e gra4s3a gra4sp gras5st gra4str g2rat gr4au 4g3raub grau5f 4g3raum grau5sk 2gräd gräs3c 4g3räub 2g3re. 2grea g2reb 2g3rec 4grede 4gredu g2ree 2g3ref gre4fr 4grege 4gregi 4gregl 4greic 4g3reih 4greim 4grein g2rem g2ren 4g3renn gren4za gren6z5ei gren6zer6f gren6zer6t gren4z5o g2rer g2res 4g3rese gres6ser6 2grev 2grez 2g3ric gri2e 4g3rieg 4g3riem g5riese 2grig gril4la 4g3ring 4g3rinn g2ro gro4b3a gro4b5ei gro4bl gro4b3r 2groc gr4oe 4g3roec 4g3roeh groe5le 2g3roh 2grol gron2 gros2 4g3rose gro5sse. gross5el gro5ssen. gro5sser. gro5sses. 2g3röc 2gröh grö3le grue5be 4g3ruec grues4 4gruf. g4ruft 2g3ruh gr4un grun6dere grun4g grus4s gru5sse. gru5sses 2g3rut grü3be 2g3rüc grüs2 grü5sse 2gs gsa2b g2s3ac g3s4ack gs3a2d gs3aeh gs3aen gsa2k g4s3all g4s3alm g4s3alt g4s3ama gs3amb g4s3amp g3sani gs3a2p gsa2r gs3ars gs3as g4s3ato g3s4au. gsau4r gsau4s g4saut gs3a2v gs3ax gs1ä gsby2 g2sca g2sce gsch4 g5schal gs4chau g4sche4f g3schn gs5chor g3schr g3schu g3schü g2s1e gse2b gse2d g3seg gs3ehr g3s4eil gse4kl gse2l g3sel. g3seln g3sels gse2m gse4n3e g3senf gsen5th gse2p gser3e gser5in gser3o gse2s gse2t gseu3 gs3e2v gse2x2 gs1i gsi2d g3sie g3sig gsi2k g5silb gsi2n g4s3ita gs4ki3e gsma5s6sen gs1o2 gs2ol g3son g4sonk g3s4oz gs1p g3s4pac g3spek g5spie g5s6port. g5s4pule gs3s2 gssau4g gss4t gst2a g5stah gs3tak gs4tang g4s3tas g4stäl g4s3tän gs5täti g4sted g4stee gs6tein gs4tell g4s5temp g5sten. gst5ent gster5e gst5erei g4sterm g6sterra g4s5test g3steu gs4teue gs5tier g4stip g4s3tis g4s3tit g4stod g5stof g4s3tor gs3tot gs5trad gst5reit g4s5tres g4s5treu gst4ri g4strig gst5rit gs3trü g2sty gs1u2 gs4uc g4suh gs3un gs3ut g5szene 2g1t gt3auf g3te g3ti gti4m gt3inh g3to gt1s gtu3en gtu5ers gu3al. gu3am gu3ant gu3ar. gu3ark gu3ars gu2d3r 2gueb 2gued gue2s gue3st 2g1u2f 2g1uh gu3in. gu3ino gu3ins gu3is 2g3ulm 2g3umb gum4e 2gumf 2gumg 2gumk 2guml 2gumr 2g3ums 2g3umw 2g3una 4g3unem 2g3unf 4gunge4w 4g3ungl 2g3u2ni 2g3unk 2gunr 2gunt gure2 guren3 2g3url gur4t3h gur4t3r gurt3s 3gus gus3a gu2sä guschi5 guss5er gus4s3o gus4sp gus4s3t gus2t gu4st5a4b gu4stap gu6st5ein gu6st5en6de gust3h gu5sti gu4str 3gu2ß1 gut3a2 gutan5e gu4ted gut3ei gu4t5er4h gu2t3h gu2t3i gu2t3r gut4sp gu2tu 2güb 3gür1 2gv g3ve 2gw g3wr gy2a 3gym 2gz2 gzeu4gi gzeugin6 g3zh ha2a ha3ak ha4b3ei ha4blä h3a4blu 2habn h3a2b3o h3a2br 2habw hach3a ha4ch5en hacher6be. hacher6ben hach5eri ha3chi hacks4 2hada ha4del hade4n haden6s5o ha4d3in h3adle hado2 h3a2dr ha3dri haede4 h3aeff h3aehr 2haei ha3elb ha3e4n3e 4ha3er. 4h3aerz hae6s5chen hae4ss 4h3aest 4h3aeug hae5us. haeu4s5c hae5usp h5affae h3affä haff4l haf3r haf4ta haf6t5erl haf4t3o haf4tr haft5rä haft4se haft6s5tem 2hagi ha2gl hago3 h3ahm 2hail 2haka ha4kad ha4kes h3akk ha2kr h3akro 2hal. ha3l4al ha3lam halan4c hal5ang h5alarm ha3lat hal4ba hal6bein hal4bel hal6b5ern hal4bin hal4bl hal4bo hal4b5ra hal4bri hal4bro hal4b5ru hal4b5rü halb5s 2hale hale4n ha6l5ents 2halh 2halk h5alkal hal4lau hal4leh hal4lei hal6l5ere hal6lerf hal6lerg haller6s hal6l5ersc hal6l5er6w hal4leu hal4loc hal4loe hal4lo4k 2halp hal4sei hal4sk hal4sp hal4sta hal4stu hal4su hal4tal hal4t5an hal4tei hal6t5erfo hal4th hal4t3r h3a4mei h5ameri hamot4 h3ampf 2h3amt h4an. 2hana hana3e ha4nal ha4nan 2hanb h4anbe 2hanc han4d3a4 h4ande han4d5er han4dob han4dr hand5ru hand5rü 2hane ha4nem han4f3i han4f3l han4fo han6g5end han4gro 2hani han4k5er han4ko han4kr 2h3anl 2hano 2hanr 4h3ansc h3anth h3antr 2hanz h5anzei h5anzug hao2s3 h3apf ha2pl h3a2po h3a2pr ha3ra hara3d 2h3arb 2harc h4ard har4da h3area har4fa har4f5ei har4fr 2harg h3argu ha3rh ha3ri h3arm. h5armem h5armen h5armer h3arms har4ne h3a4rom har4th 4h3arti har4tr har4za har4zo 2hasa has4c has2h3 hasi5er ha3spo has4sa hasser4 has6s5erf has4sp hass3t ha4str ha2ß1 h3aße ha2t3a hat5ein h3atl ha4t3ra ha4trä ha4t3re ha4trou 2hats hatt4 h3attr hat4zer haub2 h3audi h3aufb 4h3aufd h3aufk h5aufla hau5f6lie hau5flu 4h3aufm 4haufn h3aufs 4h3auft 4h3aufz 2haug h5auge. h3aukt hau4men hau4mer hau4sac hau4s3c hau4seh hau4sel hau6s5en6t hause4r hau6seri hau6serp hau4so hau6sse haussen6 haus5send haus5sk hau6s5tau hau4s5ti hau4su haus5ur hauten4 haut5eng hau4t3i haut5s ha4ve. havil4 häde2 h3äff 2h3ähr 2häi hä2kl hä2la hä3ro 2h3ärz hä6s5chen hä2ss 2h3äst 2häug 4hä3us. häu4s3c 4häusg 4häusk 4hä3usp 2hb2 hb4ar hba4ras hber4e 2h1c hchar4 hcre2 2hd2 hdan2 hdi2e h3ds he2ad hebe5in he2bl 3hebs 3hebt 3hebu he5ch4e h3echs heck5sp hed2g he4dit hee4la he3e2m hee2n he3eng hee4rei hee2s hee2t he3eti hefae4s5 he4fan he4fau hefäs3 he4f3ei he4f5erm 2heff he4f3id he4f5in4g he4f3le he4flo 3heft hef4tan hef4tau he2fu he4hef h3ehr hei2a hei4da hei6d5ert h3eie h3eif h3eig hei4kl hei4lau he4im hei4mal hei4man hei4mar hei4mau hei4mei heimer6f hei4min hei4m3o heim3p hei4mu 4hein. hei4n3a hein4di h5eindr hei4n5e4b hein5ec hei4neh hei6nene heinen6g hei4n5er h5eingab h5einkä hein5sk 4heio 4he3ism he3i4st h5eitei he3i4ti heit4s3 h3eiw hei4za hei4zel hei6zene hei4zw he5kar hek2s3 hek4t3a he4l3an he4l3au hel3ec 4h3e4lek h3elem hel5ent hel5ers he4less helf4s3 he4l5ing hel4l5au hel3le hel4lic hel4m5an hel4mei 3helms he4l3oe he3l4or he2lö helsau4 2helt 2hemb hem4br 3hemd he4mer h5e4miss 2h3emp he2na hena4g he4n3au he2nä hend4r hen5e4be he4nel hen5end he4n5en5e hen5ent he4n5enz he4nep hen5erei he4n5erf he4n5erk he4n5ero he4n5erö hen5ersc he4n5ert he4n5eta he4n5e4ti he4neu hen3f2 h3eng. hen4gag heng4le heng4r he4nil he4n3im he4n3in henke6l5i henk4lo henk4r hen6k5rin henmen6s henmi4 hen3ne hensch4 hen6semb hen6serk h3entc h5ente. h3entf h3entk h3ents 4hentw he4nu hen3z2 he2o he3on heori4e he3pf 2hepi he3ra. her3a4b he3rae her3an he5rane 4herap herau4 he3raz h5er4big 3herd. 3herds he4r3e4b he4r5eck her3ef 4hereig h5ereign he5reigr her6eini he6r5eis. her5eises he4rel he4r5en5e he4r5ent he3rer he4rerf he4r5erh he6r5ersc he4r5erw her4fas 4herfo h5er6folg herg2 6hergebn h5erheb he4r3id heri4e3 4herif he4r3il herin4d herin6fo he6r5in6nu herin6st herk2 4herke h5erklä h5erlaub her6lebn her6lös. her6löse h3ernä h5erneu her5no her3o4b he3rod her5oef h5eroer her3o4f he4r3oh he3rok h3erör h5er6regu hers4a hers4k 4hersta hert2 her3th her3tr heru4t he4r5ute 4herza her6zaep her4zap 4h3erzä her4zäp her6z5eng 4herzeu h5erzeugu hes2a heseen4 he3s2h hesi4e hes2k he2ss hes4ser hes4t h3e4tap heter4z he3th he3t2s 3hetz he3u4fe heu3g he3ums he3unf heu3r4a 3heusc he3xan 2hexp hey2 he3ye 1hè 2h1f2 hfel4la hfi4le. hfun2 2hg2 hgeb2 hge3n hgene6ri hgro5sse 2h1h hhau4s5t hhaustuer6 hhaustür6 hhoh2 hhohl3 2hi. hi5a6lerw hi3a2m hi2ar hi3a2s h3iat hi3ce hich6t5er hi4dea hi4dio 2hido hi3dr hi2e hied4s3 3hiera hie4rei hier3i hie4rin hiesser6 hießer4 hiff4r h3i4gel hi2k3r hi5la. hi4l3a4d hi4lan hil3c hil4dr hil4f3a hil4fä hil4fl hil4fr hili4e hi4lip 2hill 2hima 2hime h3i4mit h3imma 2himp h3impe h3impl h3impo hi3nak hi3nal hi3nam hi3nap hi3nas hinen3 hing4a hing4l hing4r 2hi3n4i hin3n2 2hino hins2 hin4t5an 3hinw 2hi2o hi3ob hi3os hip1 hi2pa hi4pei hi4pen hi2ph hi2pi hi2p3l hi2po2 hi2p3r hipt4 hi2pu 2hire hir4m3a hir4m3i hir4ner hir6scha 2his. his2a hi4schl hi4schr hi2se h3i2so his2p hi4spa hi2ss his4s3t hit2a hi3tac hi4t3an hi4tel hi4tro hit3z4e hi4van hivar4t hi2v3o hi2vr hi2vu 2h1k2 hke2 hkeits5 hke3na 2hl h3labo h5lache hlach6t5r h5laeche h5laed hlaf3l hla4gei hla4g3r h3lake hl3akt hlam6meng hlammer6 hla2n hlan4d5a hlan4dr hl3ano hl3anp hl3ans hl3arb hl3art h3las hl3asp h5laus. h3laut hl3ax h3l4ay h5läche h3läd h3lämp hl3är h3läs h3läß hlb2 hlbe3n hl1c hl3d2 hld4a hle3e2 h4legel h4leic h4leie hlei4fa hl5einb hl5eing hle5in6ha hl5eink h4l5einl hl5eise hl3ele hl3emp h5len. hl5en6dun hlenen5e hlen5sk h4l5entd h4l5ents h4lentw hl4enz h2lep hler3a hler5eig h6l5er6nae h4l5er4nä hler6ze. hler6zen h4lesi h4l3ess h2leu h3leuc hlf2 hlg2 hlge3n h2lie h3lieb h3lied h3lieg h2lif h2lim hl3imp h4l3inf h5lings. h4lingt hl3inh h4l5inst hl3int h4l3inv h2lip h4liss h2lit h3lite hli4tu hlk2 hlmas4 hlma5sse hlo2b hl3obe h4loe4ss hloes5se h2lo2f h2loh h2l3o2p h4lor hlor3a hlo4re hlos4s5t hlo2ß3 h2lot hlö1 hlö4s3s hl3sab hl4samb hl4sau hlsch4 hls2e hl4s3el hl4ser hls5int hl4skl hl4s5tie hl4ston hl4sun h3luf h3luk h5lumpe h3lupe h3lurc hl3urn hlus6s5en hluss5t h3lüf hlz2 2hm hm3abl h4maec h4maeh h4mael hmals4 h4malw h4malz h4mand. hmani4e h4marc h4maro hma5sses h4mause h2mäc h2mäh h2mäl h3me. hmee2 hme3eb hmeer4s h3meh h3mein4 h5meise hme5l4a hme3le h3men hme5nad hmen4sa hmen6schl hmens5em hmen6spo hmer5ei hme4r5id hmerin6t h3mex h2mid h2mie h4milz h4miss h4miß. h2m3o2f h2mol h3molc h4more h4mors h4mort hm1p2 hm2s3p hm2th h2mud h2mut hmut4s 2hn hnabe4 hnacht6s5 hn3amb hn3a2n h3nark h3nas hn3a4te h3n4au. hn3äh h2näp hn3är hn3d2 hn2e h2nee h4n3eff hnei7der hn3eig hn3ein h2nel hne2n hnen3e hnen6erg hnen6sem h5ner. hne4r3a h4n5er4de h4n5erdu hner5ei hnergene6 h4n3ero h4n3erö hn3e4ta h4netu hn3ex hn3f2 hnflei4 hng2 hnhof6stra6s h2nib h2n3id h2nie hnik3a hni4kan hni4kar hni4kl hni4kn h2n3im hn3ing hn3inn h2nip hni4sa hni4se h2nit hnk2 hn3o2b h2nod h2noe h2no2r hn3sab hns2p hnst4 hnsuch4 hn4t5auf hn4tho h1nu h2nuc h2nue h2nul h4n3unf h4nute hnz2 ho2ar hobel5e h5oberf ho2b3l hoch3 hochen5e hochs4 hock5ere hoe2d ho3edu 2hoee hoe2s hoes3c h3oese hoes5se h3oest ho2ex ho2f3a2 ho2fä ho4f3ed ho4fet ho4feu hof3f4a hoffen6s hof5fi hof3fr ho4f3in ho2f3l ho4for ho2fr hof3ra hoh4lei h3ohm ho3hö h3ohr 2hoi hok2l hoko3 h3okt ho4lab ho4l3ak ho4l3an ho4l3au ho4lav ho4l3ei ho4lem ho4l5ent hol5gr hol5int hol5le hol2o ho3lof 3holst 2holy h3o4lym 3holz hol6zene hom4e ho4me. ho4mec ho4med ho4mel h2on 2hon. ho4nar ho4nau 2hone hon4eu 2hong 2honh honi4e 2honk 2hons ho3on hoo2r h2op 2hope h3o4per ho4p3r 4hora ho3rae ho5ral. ho5rala hor5ans ho3ras horau3 2hore ho4rem ho4rer 2horg ho4rol ho4rop hor4ta hor5tan hor4ter hor4t5rä hose4 ho4s3ei 2hosm ho2sp hos4sa ho4st3r h3osz hoße2 ho4ß5ene 2hot. 3hotl hotli4 hoto5p 2hot3s2 hou1 hou4si 2how h1ox ho1y2 hô1 2hö. h1ö2d 2höe 2höff 1höh hö2s hös3c h3öse hös3se h3öst 2h1p2 h3pu 2hr hra4be hr3ac h3rad. hr3ade hr3adr h5raeum h3rago h3r4ah hr4ai hr3al h3ramp h3r4ane hran4kl hr3ans hr3ant hra4ss hrau4ba hraube4 h3rauc hr3auf h3raum hra2x hr3ämt h3räu hrb2 hr1c h3re. h3rea hre4bl h3rech hreck5er6 h3red hr3eff h3reg h3reha hr3ehr h4rei. hrei4ba hrei4bl hrei4b5r h3reic h3reif hr3eig h5reihe hr5eing h4r5einl h4reins hrei5th h3rel hr3emb hr3emp hrena4 hrende6s hrenk4 h4ren4zy h3rep hrere4 h4rerfa hrer6fol hrer6gebn hr5er4ke h6r5er6leb hrer6zae hrer4zä hrer6zie h3re2s3 hresgene6 hres5s4 hre2t h4r3eta h2reu hr3eul h2rev h3rez hrg2 hrga2 hrge3r h3ric h4rick hri2e h5riesl h3ring hr3ins hr3int h3risc h3risi hr3iso hrit6tel h5ritter h3riu hrlo4c h3robo h3roeh h3roe4s3 hro2f hr3ofe h3rog h3roh hro2l hr3oli hr3oly h4romat h4ron hro4n5a h3ropa hr3o2r h3rote h3roto hrot4ta h3rou h3rö2s3 hrp2 hrr2 hr4s3ac hr4s5and hr4sang hr4sau hrs5eins hr4sele hr4sent hrs5erf hrs5erl hrs5ers hrse4t hr4s5eta hr4s3in hr2sk hr4s3of hr6stele hr4s5tri hr4sum hr4s3un hr2sz hrt5aen hr4tak hr4t3an hr4t3än hr4t3e4l hrten6gag hrtengene6 hr4t5erf hr4t5erl hr4terz hr2t3h hrt5ing hrt5ins hrto2 hr4top hr4t5ram hrt5rol hrt6s5ein hrt4sin hrt4ste hrt4sto hr4tung h1ru h2rub h4rueb h3ruf h2rul hr3ums hr3unf h1rü hrz2 hrzah4 hrzahl5 hrzeu6ger 2h1s hsa2b h4s5achs h4s5acht h2s3a2d h4s3aeb h4s3aeh h4saem hsae4s h2sak h4s3alk h4s3all h4s5alte h4s3amt hs4anne h4sant h4sanz h2sa2r h2s3as h4sath h4s3ato hs4au. h4saud hsau6erl h4sauf h4saus h4saut h2s3äb h2säh hsä2s h4säug hs2ca hsch2 h4schan h2s3e2b h2s3ec hse2e hsee3i h4s3ehr h4s3eie h4s5eind h4s5einh h4seinn h6s5einst hsela4 h4selad hse4l5ag hse4lan hse4l5ei4 hse4len hse4ler hse4l5in hs5e4lit hs5e4mis h4s5endw hsene4 hse4n5eb hsen5erg h6sensem h6s5entar h4s3epi h4s3erb h4s3erf h4s3erh h4s5erkl h4s3erl h4s5erna h4s5ernä h4s3er3o h4s3erö h4s5erpr h4s3ers hse3r4u h4s5erwe h4s5erwi h4s3erz h4s3eth hse2x2 h4sexe hs4ext hs4ha4k h2s3i2d h4sind h5sinni hs3int hs3ita h2sk h5skand h2so2b h4s3ofe h4s3off h2s3op hs5ort. hs6orti hs5orts hs4pach h4sparl h4sparz h4spat h4spel hs4perb h4speri h2sph h2spl h4spro h2s3s2 hs5tabl h4stabs h6staete h4s5taeu hstah4 hs5tal. hs5talb hs5tale hst5alt h4s5tank h4stanz hst5anza h4starb h4s5tata h4stäte h4s3täu h4stea hst5einsa h4stele h4sterm hstge3 hs5tiers h4stin h4s3tis h4stit h4s5tole hsto4n h4s3tor h4stren h6s5treu. h6s5treue h6stricht hstro6ma h4s3tuc h4s3tum h4stur h2s1u2 h3sub h3sul hs4ung h3sup hs3ut h2sz 2h1t ht1a h2ta2d h4taer ht5agent h4taka ht4akt. ht4akte h4tall h4ta4lo h4talp h4talt h2ta2m hta2n h4tan. h4tanb h4tan3e h4tans h4tanw h4tapo h2tar hta4rie ht5a4ris h4tasi h4tasy h4tath h4tato h2tau h3taub h3taum h2tax ht3äh h2t3är ht5eben hte5cha ht5echs ht5echt ht3eck h4t3ede hte3e ht3eff h4t3e4he h4t3eif h4t5eilz h4t3eim ht3ein hte5in6fo h4t3eis h4t3e4ke h4t5e4las hte6l5ei. h4t5elek h4telem h4t5elfe h4t5e4lit h4t5e4mis h4t5e4mit h5ten. h4t5endo hte6nere hten6gag h4t5engl ht5entar h4t5entd ht5ente. h4t5entf h4t5entg h4tentl h4t5ents hte4ra ht5erbe. h6t5erben hterer6s h6t5erfah h6t5erfol h6t5erfuel hter6fuellt h6t5erfül hter6füllt h6tergeb hter6gri h6t5er6häl ht5erheb hter6höhu h6t5erklae ht5erklä ht5erla h6terleb h6t5erleu h6t5erneu h4t5ernt h4t3ero hter5ob h6ter6prob h6ter6spar h6ter6stat ht5er6trä ht5erwae h4t5erwä h4t3ess h4t3eta hte4th ht5etho h4teur h4t3eva h4t5extr htgene4 h2t1h h3thea h5therm h3thr h2t3i2d hti6g5er6k h2t3im hti2n3 h4t3ind h4t3ine h4t3inf h4t3ini h4t3ins ht3inv h4tisl ht3iso h4t3isr hti3t2 h4t3ita ht3l h4t3obs hto2d3 h4t3oef ht5oele h4t3oes h2t3o2f h4t3oly h4t3ope ht5opfer h4t3opi h4topt h4t3ora h4tord ht5orge h2t3ot h2t3ös ht4ran ht5rand h4t3ras h4t5rati h4t5ratt ht3rea h5treck ht5reic ht5reif h4t5reis ht5reit h4t3res ht2ri h4t5rieg ht5ring h5trio h5t4rit h4t3riv h4t3rol h4t3ros h4t3roß ht3röm ht3rus ht3rut hts3ah htsa4n hts5aug htsch4 ht4scr ht4s5end ht4s5eng ht4sep htse4r3 hts5eri hts3k ht5s4law ht5s4pen ht5spru ht4staf ht6s5tate ht6stele ht4stip ht6s5treue ht6strip ht6s5tuer ht4s5tür htu3en h4t5umse ht3und h4tunem h4tunf h4t5ungl h4t3urk h4t3urs htz2 hu2b3a hu4bei hu4b3el hu4b3en4 hu4b5er4z hu2bi hu2b3l hu2bo hu2b3r hu2bu hue5ben huef6ter huehne4 hue4r5ei huer4fr hue2s hu2f3a2 hu2f3ä huf5erk hu2f3o hu2h3a hu4h3ei hu2h3i huh3l hu2h3o huh3r h3uhr. h3uhre h3uhu hu2k3a hu2kä hu4k3er hu4k3in hu2k3l huk3t2 hu2l3a hu2lä hu4l3e4b hu4l3ei hu4lel hu4lem hu4l5eng hu4lent hu4l3er huler4f huler4w hu4let hu4l3in hu2l3o hu2l3ö huls2 hul5se hu4lum hum2a h3umb 2humf h3umh hum4pl 2h3ums 2humz 2hun. h3una hunde5i hunde5n hundes4 hund3r hun2e 2hunf h3ungl hungsa4 huni3 2hunt h3up. hup3fl h3u2p3h h3ups hu2ra hurg4 h3urku h3url hur4ter hur4t3h hu4s3en hu2so hus4sa huss5er hus4s3o hus4sp hus4st hu3su hu2ß1 hut3ab hut3ei hut3ex hu2th hut3he hu2t3i hu2t3o2 hu2t3r hut5sc hut4ta hut4zeh hut4zei hut4z5en hut4z5er hü3bel hü3ben h3über h2übs hüf4t5er hühne4 2hüri 2hv 2h2w2 h3wack hw4ar h3weck h3weib h3weid h3weih hwei5n4e hwein6s5a hwen4ka h3wick h3wies hy2a 1hyd hy2da hy2de hy3dr 1hyg hy4lae hy4lor 3hymn h1yo 1hyp hy4pe. hysteri6e 2hy2t 2hz hzug2 hz2w ia1a2 ia4ben iab2l ia3ce i3ad. iad2a i3adn ia3do ia3ei ia3el i3ae2m i3aer. ia3erf i3aeri i3aers i3aerz i3aet. i3aeta i3aetb i5aetem i3aetf i3aetg i3aeti i3aetk i3aetp i3aetr i3aet3s4 i3aett i3aetw i3aetz i3aev ia3fl i3agg ia1h iah4o i1ai ia3in i3ak. i3a4kei i3akg i3akh i3a2k3n ia4kre i3aks i3akt i3akv i3akw i1al ial3a2 ia4lar ia2lä ialb2 ial5bl ial3d i3a4leb i3alef ia5lek i3a4lel i5alemp i5alengp i5a4l5en4s i5a4l5ent i5alen4z i3alep i5a4l5er4b i5a4l5erf i5a4l5erh i5a4l5e4ri i5a4l5erk i5a4l5erl i5a4l5erm i5a4l5ero i5alerö i5a4l5ers ial5erwa i5a4l5erz i3a4l3e4t i3alex i2ali i3a4lia i3a4l3id ial5ind ial5ing ial5ins ialk2 i3all ial5la ial4ler ia4lob ia4l3on ia4lop ia4l3o4r ial3s ia2l3u2 ialz2 i3amp iampe4 ia3mu i3an. i3anab i3a4nal ian5alt ia4nar i3a4nau i3anc ian4ce i3and2 i2ane i3a4n3e4b i3anei i3anex i3ank2 i3ann ia4nod i3anp i3ans ian4s3p i3ant i3anz ian4z3a4 ia1o ia2op i1ar i3ar. ia4rab iar5ein i4arer i2ari iarr2 i3as. i3asb i3asg ia3sh i2asi i3asm ia3s2p i3as3s i3ast. i3asz i3at. i3atl ia4tol i3atom i3atp i3ats i3au ia3un iau2s3 i1ä iä2m iä2r3i i3ä4tem iä2ti iät3s2 i4b5achs i4b3arm i4b3art i4barz i4b3auf i4b3aus i4baut i3bä ib3ärm ib4bli ibeer4 i4b3eig i4b5einh i4b3eis ibel3i i2b3em i4b5ener ibe3ra ibe4rab ibe4rae ibere4 ibe4reb ibe4ren i6b5er6fah i6ber6geb i4b5er4la ibe4tau ib3ide i2b3in i4blad i4bläh ib4len i4bleu i4bluf ib2o i4boel i4b3ort i2böl ib4rec ib2ri i4b3roc ib5roec i4b3röc ib4ser ib3s4kl i4bueb i4b3unk i4bunt ibus3c i2büb 2ic ica2l3 ic1c i4ch. icha2 ich3a4c ich3ag ich3al ich3an ich3ar ich3au ich3ä i3che ich3ei i6chensem i6ch5erde icher5eig icher6gebn icherma5s6 i4ch3eu i3chi ich3la ich3lä ich3li i5chlor ich5lot ich3m ich5ma ichmas4 ichma5sse i4ch3n ich3oe i3chon ich5ort ich3ö i2chr ich3ra ich3re ich4san ich6sene ich6s5ern ich4si ich4s5or ich4spo ich6stie ich4sto ich4tab ich4tan ich4tar ich4tas ich4teb ich6t5eig ich7ten. ich4t5in ich4toe ich4t3r i3chu2 ich3uf i4chur ich3w i1ci ic3k4os icks2 ick3sa ick3sk ick3sp icktu3 ic3la ic3le id2ac id3aer ida2n id3ana i4d3ani i4danl i4dante i4danw id3arm id3art id2ax i2daz idä1 i2d3är i4deal i2dee i3deei ide4en ide5inst i4demul ide5nad ide4n3i ide4n3o4 iden4zi ide2o ide5rae ide5ran ide4rel ider6fül iderin6f iderin6nu ide3ro ide3rö i6d5er6reg ide4ser ides4p 2idf idi3ae idi2o id5ion. id5ione i4diot i2dol 3idol. i3dor i4d3orb id4o3s i2d1r id4ro id4set id2sk ids3pr ids5tra id1t idue4 idu3en idwa3r 1idy ie3a2 ieb5ach iebe5ner ie2bl ie3bla ieb4sen ieb4s3i ieb4so ieb4sti ieb6stre ieb4stu ie4bum iech3o iech3t ieck4s3 ie4d3an ieden6sc iede4r5a iedi4e ie2dr ied4si ie1e2 ie3ev i2ef ie4f3an ie4fau ie4feb ie4fed iefe4m ief5emi ieff2 ief5fl ie2f3l ie3flu ie4fonk ief5rea ie4f3ro ie4g3li ieg2n ie4gre ieg4s3c ieg4se ieg4si ieg4sp ieg4s3t ie4hap ieh5eis ie4h3in ieh3r i1ei ie3im ie3in5d ie5l4am iela4r ie4lau ie4läs ield2 iel5ech iel5eck ie4l5eic iel5eid ie4l5eig iel5eis. iel5eise ie4l5ene ie4leng ielen4s ielen4z ieler6fo ieler6ga ieler6gä ieler6geb ie6l5er6la ieler6lebn ieler4ö iel4erw ieler6zä ieles4 ie4less ie4l5eta ielge5n6a ielgene6 iel3i4d ie4l5inf ie4l5ins iel5int ielo4b ie4l3op ie4lor iels4p i5e4meti i1en iena4b ie3n4ac ie4na4g i4enah ie3n4am ien5ekl ie4nel iener6la ien5eta ien3f2 ieng2 ienge4z ie4nid ie4n3im ie4n3in ienk2 ienmas6s ienma5sse i3enn ieno2 ien5sa ien3sc iensch4 i5ense iens6er ien3s4k iens4p ienst5aen ien6st5än ienst5ein ienst5erl ien6sterw ien6st5op ienst5rän ien6stri ien4stu i5ensy ien6t5ero i5enti ien3tr ien4ung ien6z5ers ie1o2 ie4peg ie3p2f ie3ra. ier3a4b ier5aet ie5raeu ier3af ier3al ier3an ier3as i2ere ie4r5eck ier6eini ier5e4mi ierer5na ierer5nä ier4ert i2eri ie4r3id ie4r3il ie4r5ing ierin5i ierk2 ierken4 ier3l iermi4s i3ern. iern4a ier3ne ier3ni ier3ob ier3oe ier3o4f ie3roh ier3ö ier4re. ier4s5eh ier4sko i5ersoh ier5sta ieru2 ie4rund ie4r3ut ies2 ie4s3au ies5ein iesend4 iesen5s ieso2 ie4s3oe ie2sö iess5ent iess5er6l iess5ti iest2 ies5tal i3esü ie4ßel ie4ß5ent ie4t3ak ie4t5ang ie4t5ans ie4t5anz ie4t3ap ie4tat iet5ein ie4t5ent ie6t5er6ho ieter6hö ieterin6t ie6t5erlo ie4t5er4t iet5hel iet5her ie4t3ho i3ethy ie4t3o4b ietoe4s ie4t3ö4s iet5ram ie4t5rau iet5räu ie4t3ri i3ett iet3z4a iet3zw ieu2e i4e3um ie3un ieu4r3a ie2w3r i1e2x1 iezo3 2if if3aen i2f3af if5ange i3fari i4f3arm i2f3au if3än i2fec i2f3ef i4f5einh i4felem ifel4s5o ife2n ifen3e ifen6te. if3erh if4fac if4fah if4far iffe4s if6feste if2fl iff3la if3flu if4form if4f3ru if4f3rü iff4sen iff4s5et iff4spe iff4spr iff4ste iff4sti iff4str i3fi1 if3inf if3ins if3lac if3lad i3flae i3flag i3flä i3flec i3f4lie i3flue i3flug i3flü if1r i3freu i3f4rev if3sa if2t3a if4ted if4t3ef if4t3ei if4t3ep if4t5erk ift5erl ift5erz ifte4s if4t5esc if4t3ex ift5int if4t3op if4t3ra ift5rei if4t3ri if4t3ro ift3sp if4tur i2f3um ifu5sse i1fy i4ganb i4g3ano ig3anz i4g3arb i4g3aus igd2 igeb2 i6gebrau ig3eck ige4dr i4gefar ige4füg i4g3eig ige5inf ige5inh i4g5eise i4gel. 3i4geln ige4mes ige4mis igena4b ige4n5e4b ige6nene igener6f ige6ners igener6z ige4nid ige4pac ige4ral ige4rar ige4rau iger4fa igerin6se iger6klä igerma5 ige3s4k i4g3ess ige4woh igg2 iggas5t 2igi i2g3im ig3ins ig5laen i4g3lau i4g3län ig3lec i4gled i6gleitu i2gli ig3lim ig3lu ig2na i4gnae ign3a4g i4gnak i4gnan i2gnä ign3ei i6gnerge i3g4neu i2g3nu ig4o3p i4grams i4greg i4grei i4g3res i4g3rin ig3rol ig3rom igro5sse i4grou ig3sae ig3sag igs5alb igs5amt ig3sar igsau4 ig3sä ig4s5cha igs2i ig3s4or ig3s4pe ig4stö ig6stra6s ig6s5tuer ig4s5tur ig4s5tür ig3su ig4tin igtu5er. i1h ih2a i4h3ans i4h3auf ihe3e ihe3in4 ih3elt ihe2n3 ihenk4 ihe3o ihe3u ih1l ih3m ih1n i2h3op ih1r ihrau4 i4h3um. ih3w i1ia i3i2c i1i2d i1ie i1i2g i1im i1in i1i2r i1i2s ii4sc i3it. i3ja 1i2js i1k ik5abla ik5ablä i4kada i3kae i4k3aeh i4k3aer ika3in i4k3akt ikalk4 ikal5t ik5alta i4kanb i4k3ang i4kanl i6kantei ikanten6n i4k5antr ik5anzu ik5anzü ika3pf ika4tan ik3att i2k3au i2käh i2k3än i2k3är ikbu2 4ike. i2keb ik3ebe i2k3e2d i2kef ik3eim ike2l 4ike2n iken3e i2kep i6k5er6be. ikerbe6r ike4ren i6k5er6fah iker6hal iker6ken i6ker6leb i4k3ero i4keru ik5erze iker4zi ike2t i4k3eta ik3eth i4ketu i2k3ev i3ki. ik3imm ik3inh i4k3ins ik3lab ik3lad i4k3lag iklan4 ik3lem ik4leri i3kles i4klos ik3nar ik2o ik3obs i4k3oef iko3nu ikop2 ik3o4ri iko3s ik3öf i2köl i4kres ik3rin ik2ro i2krö ik3ru ik1s iks2p iks2z ik4t3eb ikt5erk ikt5erz iktes4 ik4t5esk ik4t3o4b ik4t5res i4kueb iku2m i4kumf ik3unf i5kuns i2kup i3kus i2küb i2ky i1la il3abb il3a4br i4l3abt i2l3ac i4l3aer i2l3ak il3a4ma il3ana i4lanb ilan5er i4lanf i4l3anm i4l3ano il3ans il3ant ilan6zer i4l3arb il3art il3asp il5aufl ilauf6ruf. il5aufw il5aufz il3au4s3 i1lä1 i2l3är ilch3a ilch3o ilch3r il4dae il2dä ild5ebe il4d3ed ild5ele ilden4s il6dense il4d5en4t ilder6ha il4d5ese il4d5es4s il4did il4dil il4dop il4dor il4drü ilds2 il5ebene il3ec ileid4 i4l3eig il3ein il5eise il3ele i4l3emb i4l3e4mi il3emp i4l5ente i4l5entf i4l5entl i4l5ents i4lentw iler6be. iler6ben i6l5erbli i4l5er4de i6l5ereig i4l5er4fo i4l5er4fu i4l5er4fü i6ler6geb iler6hal i4l5erhe i4l5erkl i4l5er4lo i4l5er4lö iler6öff i4l5erwä i6l5er6wei iles2 ile4ta i4lety i4l3eur il3ex ilfe3i ilf2s3 i2l3i2d ilie4n3 iliener5 iliga4 ili4g5ab il3imp i4l5init i4l3inv ili3o il3ip. ili3pf il3ipp il3ips ilk2 il4la4d il4lae4 il2lä2 il5lem il3li ills2 3illum illu5s il4mad ilm5a4ge il4mak il4mal il4mam ilm5ans il4m3ap ilm5att il4meh ilm5ein il4m5ent il4m5enz ilmer4 il4m5erl il4mex il4mik il4m3in il4mop il4m3or il4mou ilms2 il3obe ilob4r il4oh i2l3o2r il3ox ilsch4l il4s5ent il2sk ilsto4r i1lu2 i2lue i2lum i2l3ur ilv2 il4z3an il4z3ar il4zau ilz5erk ilzes4 il4z5ess il4zwa im3abl im3abr im2ad2 ima4get ima3i imaler4 iman3d i4manh i4manw im3apf i4marc im5a4ren i4m3arm i4m3art ima3sz i3mat ima4th ima4t5in ima4tra ima4tur i4maut i2mäp im3b i2meg im5eins im5ein4w i2mej i2mek i4m3ele i4m3elf i2m3e2p imer4la i4m3er4z i4me3sh i4meti i2mew i2m3ex imhau4 i2m3im i4m3inf i4m3ins im4mak im4mant 5immatr im4mau im4mei imm5ein imme4n im6m5enth imm5erkr im4m3id im4mo4d im4moe im4mop im4mor im2mö 5immuni im4mus imni2 i2m3ob i2m3o2p imo4re. 4impa im5paa imp4fa imp4f5er4 imp4f3i impf5li im4ple. im4p5ler imp2s im3pse 3impu ims2p im2th imt3s 2imu imult4 im2um im3urk i1mü 4ina. i3nabo in3abu in5ach. in3ack in3aeh in3ae4s in3aeu ina5ge inahe3 i3nald i3nale inalen4 inaler4 ina6lere ina4l5in in3amb in3ana i4nang in3ann ina4no 4inap in3ape in3app in4a4ra i3n4are in4arr in4ars in3as4b in3atl in3atm in5atom i4nau in3aue inauf3 inau4s3 i3naz i2n3äh in3ä2s inbun4 in3ck 4ind. in4da4b in4d3al in4d3an 4inde. indei4g ind5eis 4inden inderei6s inderer6t in6der6sat inder6trage inde5spa indes4t 5index. 5indexe 3indik 3indiv ind2o in4drec ind4spe ind4ue 3induk 3indus ind2ü 2ine. in5ebene ine3ch in5eck. in5ecker ine3el i4n3eff in3e2g in5e4hen ine5in6fl i4n3elb ine5nae ine3nä ine4ner inen6gag inen6ge. ineo2 ine3p2 i5ner. i4n5erbi i6n5er6hal i4n5er4he i4n5erke iner6läu i6ner6leb i4n5er4lo i4n5er4lö i4n5ersa iner6trä i4n5erz. iner6ze. iner6zen iner6zes iner6zeu i4n5erzi i4nesh inesi4e i4nes4k 2in2et ine3u4f ine3un ine2x in3f2 3infek 3infiz 3info. 4infre in4g3af in4g3a4g in4gam ing5ans 5ingeni in4g3im in5g4ler ingmas4 ing3n ing3or in4g5rat 4ings ings5am ing5s6end ing5s6por 3inhab 6in7haltu 4inhe 4ini. ini5erk i4n3inn ini3o2 inis4e ini3sk ini3sl i5nitr i5nitz 3injur 5inkarn 2inke in4k5en4t ink5erd in4k5erz in5kom 2inks ink4sin ink6spar ink4ste 2inkt ink2u in4kut ink2ü inlo3c 2inn. 4inne. inne4n inn5erfu 5innerns inn5erwa in4n5erz inne4s5t in4ni4v 2innl 2inns 3innta inoe4d ino3et in3old i3nomi in3opf in3ord inos2 i3n4ot ino5ta ino5te i1nö in3ö2d ins5aen in6samt. in4s3än insch4 in4s5eke in4s5emb 4insen in4s5erf ins5erg 3insid instab4 ins5tak 5instal 5instin 5instit inst5rol 3insuf 3insul in4s5umw in4sur 4insy int5an. int5ans 4inte. 3integ 5interp inter5z int2h inth3a intons4 4intö 5intrig int3s in1u i4nuh i3nuk 3inumg in5unz 3inurs in5ver 3inves 4invo i1ny2 inz4el inzel5e inze4li inzel6ler inz5int in3z4sc in3z2u inz2w io3a2 io1c i1od i2oda io2de iodi4e i2odu io3e2d ioe2f i3oe2k io3e2m ioe2n3 io3er i3oes. i3oe4st iof2l ioga4s io1h ioi2 io3k4r i3ol. i3olp i3ols i3om. i3oms i1on2 ional5a ion3an i3o4n3as i3o4n3au i2onc ion3d2 ionen3 io4nor ions3 ionsa4 i2ony io1o2 i3opf i3or. ior3ak i3oral i3orb i3orc ior4e io5ren ior6ens i3org io3r2h i3orp i3orr i3ors i3ort i3os. io3sh ios2p io3sz i2ot i3ot. iot4e iote3l iot2o i3ots i3ox i3oz. i1ö2f i1ö2k i1öl i1ön i3ös. i3ö2st ipa2n3 ip3ein ipe2n ipendi5e ipen3e i2pes ip3fab i3pfan i1pi ipi3el ipie4n3 ip2l ipli3 ip4pan ip2p3f ip2p3l ip4pru ip4punk i1pr ip4sei ip2sp ip4sta ip4s3tr ip4s3tu ip4s3tü ip3tas ip4ter ipt5ers i3p2ty i1ra i3r2ad irae5us 3iraki iral3a iral6stue ir2an i2rar irat2 i1rä ir3äh irä3us irbe4l5a irbel5i ir4ble ir1c ir4ch3a ir4ch3i ir4ch3o i3rei ir4en i2rew irg2 irgs3 i1ri ir4in ir2k3l ir4k3or irks3c irk2u ir4k3ur ir4m3ae ir4m3a4g ir4mak ir4m3au ir2m3ä irme2 ir4m3ed ir4m3ei ir4m3er ir2m3o ir4mum ir4munt irmwa4 ir2na irn3al irn3an ir4n3au irn5erf irn5erk irn5ers ir2n3o i1ro i1rö irpla4 irr3au ir4rei irre4l ir4reli irs2 irsch5ar ir4schl ir4schm ir4schn ir4sch5r ir4sch5w ir3sh ir4st3r ir4t3er4 ir5tra4 irt4s3e irt4s3t i1ru ir2ue3 ir3u2m3 iru2s irus3e4 i3r2ü3 i1s i4s3aen i2sak i3sam i4s3amp i4s3amt i4sanf i4sang i4sann isa4re is4arg i4sa4ro is5assi is3att i2sau is3auf i2s3än is2är i2sca i2sce i4schab i4scham ischa4o i4schäh i4sch5e4h isch5ein ische4m ische4n i4schep ische5re i6scherkra i4sch5eu i4sch5im i6schind isch5lap i4schm i4schna isch5obs i4schos i6sch5rip isch5ru i6schueb i4schum i4schüb i4sch5wo i4sch5wö isch5wun i4schwü i2s3cr 2ise ise3a i4seben ise3e4r iseer5i is5einsa i4selem isel5er i6s5el6ter i4s3emb ise4ne ise5neb isen5en isen3f isenk4 ise6r5eic iserin6t is3erm i4s5ernt ise5rum i4s3ess i4s5e4tat is4eur isex2 is4exi isi4de i2sim is3imp i4sind i4s3inf isin3g ising4l i4s3int i2sk is4kis 3islam 4isli is4lip i2sob is3oef i2s3of i3soh i2sol i4somo iso4nar isonen4 iso6n5end isonet4 iso4nor i2sop 3i2sot 4isott i2s3ou i2s3ov is3pan i4spar i3spi is3pic is3pir i2spl is4ple is4por i4spro is3pü iss3ac is3sag is3sal iss4au. is3sc is4sed is5senk issen6sp issen6s5tu issen6s5tü iss5er4f isseri6e iss5er4k i4sserl isserma5 issermas6 iss5erz issi4l is5s4kat isslich6t is3so iss4par is3sph iss4por is3sta is3sto is5stric is3stu is2su i4stab ist3ac i4stam i4stang i4st3ap ist5auf is3täu i4stea i4st5ein ist4e4n isterin6t ister6ras ist4hal istin4f is2to i4stoep i4s3töp istras5sen i4strä istri5en i4strig is5tromm istu5er. is3tum4 istungsex5po i4stur is3tüm i2sty isu4c isuch3 isucher6 isu2m isum3p is3url i4s3urt i2sü i2sz i4ß3er4k i4ß3er4l i4ß5erse ißlich6t 2it i1ta i3ta. it3ab. i4t3aes itaet4s5 ita3h itai2 i4t3aka it3akk ita3kl i6t5akte. i6t5akten i4takts ital3a italent6 italer4 ita6lers ita6l5erw ita4l5in ital5le ita4lo ital3t it3a4mi itan5at it3ang it3a4po it3app i4t3arb it3a4re it3art it3asp i5tauc i4t3auf it5aus. i4taut itauto6r i1tä it3änd i2t3äs ität2 itäts3 i1te i4t5eben it5echs it3eck ite3er it3eff it3e4he it3eig it3ein i4t3eis itel5ae itel5an itel3ä it5elef itel5eh itel5ei i4t5elek i4telem i4t5e4lit i4t3emb ite2n iteng4 iten6gag itens4 i6ten6sem i4tentl i4t5ents i4tentw i6t5ereig ite4rel iterer4 i6ter6fol itergene6 iterin6d iterin6s iterin6t iter6klae it5er6klä i6ter6led iter3o4 i5terr iters4 i4t3esk ites4ka i4t3e4ti i4t3eva i3t4hag it3hem itho3s i3t4hr i1ti i2tia i3tic i2t3id i3tig 3i2tii itik3a4 iti4kan iti4kl iti4kr it3imm iti2n3 i4t3ina it3ind it3ini it3int i3tio i4tiso i3tiv iti4v3a itiven4 i1to it3o4be i3to3c i2t3of it3opu itor3a it3orc i1tö i1tr i3tra. it3rab it5rade it5raeu it3raf it4ran it5rand it5rang it3ras it3rau it5räts i4t3räu it3reb it3rec it5reic it5reif it3ren it3res it5rieg it3ris it3rob it3roc it3rol it3rom it3ruc i4t3run i5trup it3rut itsau5d itsch5ro it4s3e4h it4s5eif it4s5ein it4s3el it4s3es it4set it5span it4staf it4stec its5tes it4s5toe its5tol it4s5tor it4s3tö itstra6s its5trau its5tri it4s5tur it5ta. it4t3ac it4tän it4t3eb itt5eige it4temp it4t3o4b it4t3op itt5rad itt5rei it4tri itt5rol itt4s5e4h itt6sein itt4sti itt4s5tr i1tu it3uh i4tunf i4tuns ituran4 itu4rer i4t3urg itut4 i1tü it2za it4z3ec it6z5ergr itz5er6ho itzer6hö it6z5erla it4zoe it4z3op it2zö it2zw 2i1u2 iu3l i3um1 iuma2 iums5en iun2 ius3t i3ut i1ü 2iv i2vab i2v3ad i2v3ae i2v3af i2v3a2g i2v3ak iva4lo iv3ang iva6tent ivater4 iva6t5erw i2v1ä i2veb i2vec i2v3ef i2vek ive2l iv3ele iv3elt i4vemi i4vemu ive4no i2v3ep iver4he iver4lo iver4lö iver4oe i4v3er4ö i4vesc i4vese i4vest i4veti i2veu i2veü i2v3e2x3 i2v3im i4v3ind iv3ins i4v3int i2vl i3vol i2v3op ivo3re iv3ro i2vue i2vun i2v3ur i2vü i3wo i3wu iwur2 i2x3a ix3ele i3xi ixt2 ixta2 ix2u i1y2 2iz iza2 i4z3aen i2z3ag iz3anz i2z3ap iz3art iz2as i2zat i2z3au iz1ä i2zän izein4t izeit5s4 ize2n i4zentz izen6zer i4z3er4l i4z3er4r i4z5er4sc i4z3er4z i4z3inf iz3irr izo2b i2z3oe i2zo2f i2z3or i2zö i4z3una i2zwe i3zwec iz3wic i2zwo i2zwö iz3za í1 ï1 1j j2a ja1a jaal2 jab2 jacht5s4 ja3ei ja3er ja1f jaf2l jag4da jah4r5ei jahr4s3 ja1i ja3l2a ja3le ja3ne jani3t4 ja1p ja3ru 2jd je2a jean4s jee2p je2g jek4ta jek4ter jek4t5in jektor4 jek6t5ort jek4t3r jek4t3u je3n2a3 je2p jeri3 je2ss je2t3a je2t3ä je2t3e je2t3h je4t3in je4tor je2t3r jet3t je2t3u2 ji2v 2j1m joa1 jo2b1 joba2 job3e joch3a jo3che jo3chu jock4 jo2d3a jo3el jo3gh jo2i jona3t jong4 jo2p3 jo3ra jor2z jo2sc jou2l 2j1t j2u ju2bl jude2 jugen4 jugend5 ju2k jun4g3a jun6g5ente jun4gl jun4g3r jung3s4 jun3t ju1t ju3te3 2jv 1ka ka4ans ka3ar 2k3abb kab4bl 2kabd kabel5a 4k3a4ben 2kabf 2kabg 2kabh kab4le 2kabn 2kabs 2k3abt 2kabw 2kabz 2k3ace 4k3achs 2k3add k2ade kade3i kadein4 kade4n3 2k3adm ka2dr 2kadv ka3e2d k3ae4mi4 4k3aend ka3ent 4k3aerg k3aerz kae4s3c ka3esk 4k3affi ka3fl ka3fr kaft4 k2age 4kagen k3agg 2k3aho kaim2 kais4 k3akk ka3k2l 4k3akt. 4k3akti 4k3akts 4kala. kal3ac kal3a4d kal3an kala4s ka3lat ka4leb ka4l3eh kal5eis kale4n kal5erei ka4l5erf ka4l5er5i kal4kan kal4kle kal4klo kalk3r kal4kru 4k3allt ka4l3on ka4lop ka4l3os ka3lö kals2 k3altä kal4t5ex kal4th kal4tre ka2lu ka4mat kam4i kam4ma kamp6f5en kamp6f5er6f kamp6ferp 4k3amte ka4n3a4s ka4nau 4kanda kandal5a 4kandä 4kandin 4k3andr ka4n5ent 4kanfä k4anfu k4anfü 3kani kani5er. 4kanim kank2 4k3a4nom 4k3a4nor k4anre 4k3ansä 4k3ansi 6k5antenn ka3n4um kanu3s4 ka2o1 ka4p3ho k3appa 4k3arbe k4arbr 2karc k2ard kard4a 4k3area ka4r5ent k2arg k2arh ka3ri kari5es k2ark 2k3arm ka3rö k2arp kar4pf k2ars2 kar6ster k4arta k3arti 4kartig 4kartik k4arto kart3s4 k2aru kar3u4f ka3rum ka3rü k2arw 3karz 4karzt kas2a ka5s4e3i kasi5er. kas3s4a 4k3ast. ka3sta 4k5a4ster ka3sz ka4t3a4b kat5akt kat5ans ka4tea ka4teb ka4tep kat2h ka3tha ka4t3ri kat3sa kat3t4 k4atz k2au. k4aue kau4eri kau4f3a kau4f5er k5auffa k5aufga k5aufla k5aufli kau4f3o kauf6s5ag kauf4s5e kauf4sp kauf6s5tem kauf6stu 3k4aum ka3umr k4aus. 4k3ausf 4k3ausg k3ausk 4k3aus5s kau6sse kaussen6 4k3ausw kau3t2 4kauto kauto4r 1kä 3käf k1äh 2k3ä2mi2 2k3ärg 2k3ärz kä2s3c 2kb2 k3ba k3be kbo2n kby2 2k1c kch2 kcre2 2kd2 kdar4m kdi2e ke4ben 2k1ec ke3er 2k3eff kefi2 kege4la kegel5e k3egg ke2gl ke4he. ke4hen 2keho kehr3a keh6rert kehr4s5o kehr6s5po 2kehu 2k3eic 2k3eig kei4l3i kei4ma keim3p 2k3ein 4k3eise keit2 keits5c ke4lab ke4l3ac kel3ae ke4laen ke4l3am ke4lan ke4l3as ke4l3at ke4l3au ke2lä kel3än keld2 ke4l5eim ke4l5ein kel5eis 4k3e4lek ke4l3en ke4l3er kelgene6 ke4l5inf kel5ins kel5int ke4lio kelma5ssen ke2l3o2 ke2lö kel3öf ke3lös kels4k kel3sl 2k3e2mi 2k3emp ke2na kena4b kena4g ke4n3au ke2nä 4k3endg kend4r ken5d4sc 4kendst ke4n3e4b ke4nel ken5end ke4n5en5e ken5eng ke4n5ens ken5ent ke4n5enz ke4nep ken5er4n ke4n5ero ken5erö ken5ers ke4n5est ken3e4t ken3f2 keng2 4ken4gag k5en6gel. k5en6gels ke4nim ken3in kenk2 4kenlad 4kenläd kenmi4 ken3ne ke2no2 ken3om 4k5en4sem ken5s4te k5en4te. ken6ten. ken6tene ken6tenp 4k3entf 4k3entg ken3t4h 4k3entl 4k3ents 4kentw 4kentz kenwin4 ke1o2 ke3pf ke2pl k3e2po ker3ae ker5all ker5alt ke4rap ker3as ke2r3ä k5erbit 4kerde ke4r3e4b ker5eck ker3ef k5ereign ke4rein k5e4remi ke4r5end ker5ens ke4r5erd ke4r5ers kere4z 4kerfol ker6folg. ker6folgen ker6folgs 4k5erfül ker6gebn kergene6 4kergu ker6hoehu k5er6höhu ke6r5in6nu kerin6st kerin6te kerk2 k5erlang ker6langu ker6lebn k5ermit ker4nar kerner5 ker6nere ker6ners 4k5er4neu ker4nie ker3o4b ke5rode 4k5erodi ker3oe 2k3erö kersau4 ker6schü ke4ruh 4k3erz. k5erzeugu ke4san ke4sel ke2sk ke4spa kes4pe ke2ss 4k3es4sa ke4tan ke4t3au kete2 ke4t3eb ket3ei ke4t3el keten3 ke4t3er 2ke2th ke2t3r ket3s ketta4s ket6t5erz kett3h ket4to 2keud 2k3e2va ke2vo 2k1e2x1 2k1f2 k3fi kfi4le k3fu 2kg2 kga4st kgas5ta kgeb2 kges2 k3gl k3go 2k1h2 khau6sen k3he ki1a ki2ad ki2ag kia2k kia2r 2kicl ki3dr 2ki2dy kiefe4 kiel3a kie4lei kie4l3i kie4l3o kie6rer6g 4ki3ern kies3a kie4sei kie4so kie4s3p kies3s kie4ze ki3f2l ki3f2r kik2 2kila kilan4 2kilä 2kile 2kili 4k3illu kil4o3 2k3imp ki3nad kin3al ki2nä 4k5index 4k3indi 4k3indu 2k3inf kin4g3a kin6g5ent kin4g3r 2kinh kini3k4 k3ink kino3 4k3inse kin3sh 4k3inst 2k3int ki1o 2kior kio2s kio2v kip4pr 3kirc kirme4 kir6scha ki3s2h 2k3i2so 2kis2p ki2ss kit6schl 2kiv 2kiz 2kj k3jo 2k1k2 kkab2 kko3ef kk4or kkue3b kku3s kkü3b kl2 2kl. 2k3la. 2k3lac kl4ae 4k3laed 4k3laeh k3laeu kla5me kl4an 4kland klan4g5r 4klat. k3lauf 4k3laug 2k3läd 2k3läh kl4är 2k3lät 2k3läu 2k3le. kle5ar. kle5ari k2leb kle4ba kle4b3r 3klec 2kled k2lee 4kleer k3leg 2k3leh 4k3leib k4leid klei4er kleinen6 4k3leit k3lek k2lem k3lem. kle2o kl4ep 4klero k2let kle3us 2k3lex 4klich k2lid k4lien k2lif 2k3lig k2lim 4klin. k4li3na 4klind k4lino k2lip k2lir k4lisc 4klist kli4tu 2k3liz k2lo. k2lob 2kloc 4kloec 4kloef k4loest k4loet 2klog 2kloh 2k3lok k2lom k2lop klor4 klos2 4klose. 4klosem 4klosen 4kloser 4kloses klo5sse kloss5t k4lost 4klot. 4klote 4klots 2klöc 2klöf 2klöh k4löst k2löt k1lu 3klu2b k2lud k2lue 4k3luec k2lug k2lum klus5s 2klux 2k3lüc 2kly 2k1m k3ma kma6lens kma4li kmas2 kma5sse kmes4st kmi2t kmue2 1kn2 4k3nach 2k3nad k3naep 2knah 2k3nam k3napf kn4ar 2knav k3naz 2knäp kne4bl kne3e knen4a 2knes knet5t 4knetz 2kneu 2kney k2ni kni2e 4k3nier 4k3nis. 4kniss 2k3niv k2no kno4b3l 4knorm kno2s 2k3nov 2k3num 1ko ko3ad kobal4 ko4beli kober4e 2kobj kob3la kob4s ko3che koch3i ko3edu k5oeffn ko3eli ko3erh ko3erk ko3erm k3oert ko3ev ko4fen kof3fe koff6e5i 4k3offi koh3lu ko3hö 2k3ohr ko2kl kol4a kol3c kol2k3 kol4l5e4b kol6lerw ko3lo 2k3o2ly ko4m3er 2komn ko4mun ko4nau4 kone2 ko4nel ko4nem ko4nod kons4 kon5su kon4tae kon4tä kon4t3h ko2nu koo2 ko3on 2kop. ko4pal ko4p3an ko4pf kopf3a4 kop4f5en kopf5erk kop6f5err kopf3l ko4p3he kopi4e 4kopis ko4pli 3kopp 2kops ko3pte 2kopz ko3r2a kor4ba kor4b5er kor4bla kor4b3r 2k3orc kor4dar kor6d5erfo kor6der6g kor6d5erw kor4dr ko4r3el 2k3org kor4k3a kor4ker kor4k3r kor4nac kor4n5ae kor4n3ä kor4n3o4 ko4rob 4korpi k3ortu ko3r2u k2os. ko2sk ko4spa kost5er6z ko4s3to kot4a kot5ent kot5erb ko3ti koti4n3 kot3s2 kot4tak kot4tan kot4th 3kow 2k1ox 1kö kö1c kö4res 2k3ört 2k1p2 kpe2 kpi2t3 2kq k3qu 1kr2 2k3rad kra4da kra4dei 4k3raed k5raeum 2k3rah kr4am 4k3rand 5krankh kra4ss k3rats kr4au k3raub 4k3rauc 4k3raum 2kräd k3räte k3räub 4k3räum 2k3re. 4kreak 4k3real k4reat k2reb kreb4sc kreb4s5o 2k3rec 4kred. 4krede 4kredn 4kredu 2kref 2k3reg 4kreib 4kreic kre3i4e4 kreier4 4k3reif 4k3reih 4k3reim 4krein krei6s5ei krei4s5i kreis5ta k2rem krem4l3 k2reo 4krese 4kresu k2reu 2k1rh 2k3ric 4k3rieb 5kriec 4k3ries k3rind 4k5rings 2krip k3risi kro3a4d krob4 4kroba 5kroch kroe4b 4k3roeh kro3el k3rohs kro6sse 2k3röh 2k3ruc krue3b 2kruf kru4fer 4k3rump 2k3run krü3b 2k3rüs 2ks k1sa ksa2b ksab3a k4s3aeh k3saen ksa2f k2sa2k k4s3amt k2san k5sanke k2sap ksa2r ks3a2s ks4au. ksau4e k4sau4f3 ksau4re k4saut k2s3a2v k1sä k2säh ks2ca k2sce ksch2 ksche4f k2scr k2s3e2b k2s3ec k3sed ks3eie k4s5eind k4s5einf k4s3e4le ks3elf k4s3eng ks5ense k4s3en4t k4s3erf k4s3erg k4s3erh k4s3erk k4s3erl k4s3erp k4s3err k4s3ers k4s3erw k4s3erz kse2t ks3eta k2s3e2v k2sex2 k2s3i2d ksi2n k5s4inf ks3ing k2s3is kso2b ks3oe kso2f ks3ofe k3s4on ks3op kso2r ks3org ks3ori ks5ort. k3spaz k3spec k3spei k3spek k3s4pel ks4pes k5sprac k4sprä k3spri k4spro k3spru k3s4pul ks3s2 kss4t ks5ste k4s5tale k4s5tanz k3s4tar kstat4 k4s5tat. k5staus. k4stee ks5terr k4s5tier k4s3tis k4stit k4stot k6straen k4strän k4s5tres kstro4 ks5troc k4strop k4s3tuc k4stum k4s3tüt k2sty k3sue ks3um. ks3umb ks3ums ks3un ks3ur k1sü 2k1t kt3abr k2t3ad kt3akr k4t3alg kt3al4l ktals4 kta2m k4t3amo kta2n kt3ana k4t3ang kt3ano kt3anp kt3ans kta4ra kt3a4re kt3arm kt3ars kt3art kt3arw kt3asp kt3atl k4t3auf ktau4s kt5aust ktauto4 k3te. kt3eff kt3ein k4t3e4la k4telem k3te2n kten3e k4t5entf k4tentl k4t5ents k4tentw kten3z kt3e4pi kte5r4an kter5ei k4t3erh kte4rik k4t3erö kt3erp k4t3e4ti ktgan4 ktge3n4 kt1h k4thel k2thi k2t3i2d kti4me kt3ind kt3ini k4t3ink kt5insa kt5inse kt3inv kti4s3e k4t3iso kti4st kt5i4ter ktiven6d ktni3s kt3oef k5toer k2t3of kto4n3a ktop3a k5tor. kto4rei k4torga ktorgene6 kt3ott k4t3ram k4t3ras k4t3rau kt3räu kt3rec k4t3ref kt5reic kt2ro ktro3e ktro5me k4t3run kt3rü kt1s kt3s4a kt3sä kt3se ktsen3 kt4s5ene kt2sk kts5org kts4pa kts2z kttei4 k4tunf k4t5ungl k4tuns k2tup ktu4ran ktu4ras ktu4rei ktu4rer ktz2 1ku ku4al ku3an ku1c kuck2 kue5bel ku3en. kuer4s kue4ss ku3fa kuge4l5a ku2gl ku2h kuh3a kuhle4 2k3uhr ku3in kulan4z ku3li 2kulp kul4t3o kul4t3r k3umba 2k3umd ku3m4e 2kumg k2umk 2kuml k2umr kum4san k3umsc kum4sei kum4ser kum4si kum4sp k3umw 2kumz kun5d4a kunde5i kundein6 k3une k5ungeb 2kunm kun2s kunst3 2kunt 2kunw 2k3up. ku3pfl 2kupu kur5ans kur4bl kur5ein 2k3url ku2r3o kurr2 kur4sei kur4ser kur4sin kur6s5or6te kur4s3p kur4ste kur4str 2k3urt kur5tsc kur4zel kurzer6k kusa4r ku4schl ku4s3el ku4s3er3 kus3ev ku2sp kus3pi kus5ses kus2t ku2ß 2kut. ku3t2a kut3ei kut6schw 1kü kü3bel 2kübl kü1c kü2li kür2s 2kv k3va k3ve 2kw kwi2 kwi3sc k1y2a ky2o 2kz2 kze5le kz4en kzeu4g5i k3zu kzue4r3 1la. 1laa la3ar la3at la3ba la4bad 3labä 2labb lab4bri 2labd 4l3aben la5bew 2labf 2labg 2labh l3a4b3i4t 2l3a2bl 2labn l3abon l4abor 2l3abp la3b4ra lab4res 4labruf 2labs 4labtei la4bus 2labw 2labz la3ceb la3cel lacher4 la6ch5erf lachter6f lach6terp lach4t5o la5chun 3lack. l3ada 2ladd 3ladem la4des. 4ladj 2l3adl l3adop 2l3a2dr 3ladu 2ladv la2e l4aed 2laef 3laehm 4l3aehn 3laemp l3aemt l3aepf 2laeq l3aerz lae4sc lae4ss 3laeuf 4l3aeug lae3um 2l3aex la4f3ae la2f3ä la4f3ei la4f3er 2laff l4afi laf3s2 2laft4 la2g3a2 la2g3ä lag5eis lagen5d lag6ers 2lagg la4gil la4gin 4l3a4gio la2gl la2g3n lago2 la4gob lag5s6eid lag5sen lag5spa 1lah 1lai lai4s3t 1laj 4l3a4kad la4k3ar l4ake la4kes la4kin 3lakka l3akko l4ako la4kro l3akt. l3akte l3akts 2l1al 3lala. lal3ab 3l2ali lal4la 2lamb la4mei lament4 la4mer lam4ma lammen6ge 3lammf 2l3amn 2lamo la4mor l3ampl l3ampu 2l3amt lamt4s 3lamu la4mun la4nae l3anal 4l3a4na3t la4nau 2la2nä 3land lan4dam lan4dan lan4d5au landei6g lan6d5en6t lan6d5erh lan6d5ers lan6d5erw lan6d5erz lan6ding lan6d5inn lan4dob lan4dra lan4d5ru lan4d5rü 4l3anek l3anem lan5ente lan5erd la4n5er4f la6n5erst lan4gae lan4gan lan4gar lan4gat lan4gä 6l5angel. 6l5angeln lan6g5ere lan6gerl lan6g5ers lan6gerw lan4g3i 4langri langs4 lang5se lang5si lang5sp l4anhe 4lanim lan4k3l 2lanl 2lann 4la4nod la4nof la4nor l4anro 2lans 3lanse 3lansw l4ant. lan4tan l5antig l4antin 4lantw 2lanw l4anwar l4anwer 3lanx lan4zel lan6z5erf lan6zerg lan6z5erh lan4zw 2l3apf la2ph 2l3a2po 4lappa lap4pl l4ar. la4r3ab la4r3ac la4r3a4g la4r3an la4rau l3area lar3e4b la4r3ei la4r3el lar3g lar5ini lar5ins l3arkt lar4mau lar4mei l5armem l5armer 3larn 4l3a4rom 3larp lar6schl lar4ter l3arti lar3tu 3l4aru 3l4arv lar5za 4larzn lar3zw la4s3aa la4sae la4sam la4sas la2sä lasche4 la4s3ei la4s3e4l la6s5er6ke 2lash 2lasi la4sin la4s3is la4sor 2la2sp lass5erkl 5lassern 5lassers las5sto las5str las5stu la4sta last5ae last5an last5ar la4st3ä la4stei last5ein la4steu 4lastiz la4str las5tro las5tur la4stü 3lastw 3lastz 1la2ß1 l4at. l4ata lat5ang la4tar 3l4atä la3t4e 3late. l3a4tel late4n 3later late5ra 2lath la4ther la3ti 2latl l3atla 2l3atm la4toe la4tol 4l3atom la2tö la4t3ra4 la4tro lat6schn lat6schw 4latta lat4tak lat4tal lat4tan lat4teb lat4tei lat4tex lat4t5in 4lattr lat4t5ro lat4zei lat4zer4 3laub. lauben6s5 lau4bra lau4bre laub4se lauch5a l4auer lau4f3a lau4fel lau4fer lau5fer. lauf5ere lau4fin lau4fo laug4l l4aui 2lauk l4aun 4laun. l4aur l4aus. lau6scha 4l3ausd l3ausf 4l3ausg 4l3auss lau5sse 4l3ausz 4lauto lave2 laven3 1law lawa2 4lawe. 4lawis 1lax la4xel lä1c 2läf 2lägy 3lähm 2l3ähn 2l3ämt l3äpf 2läq 2lära lär4mar lär4mat lär4mei lär4m5em lär4mun 2l3ärz lä2sc 4läser lä2ss 2lät 3läuf 2läug 2läx 1là 2lb l4babw lb3ang l4b3ant lb3arb lb3a4ri lb3ärm lbb2 lbby2 lbei6ge. l4b5eise l4b3elf lbe2n lben3e lbengene6 lber4ei lbe4rem lbe4ren lbe4ris l6b5ersti lbe4tag lbe4tap lbhu3 l2b3i2d lb3lag lb3las l4bled lb4len lb2lö lb3oef lb3oel l2bof l4b3ora l2b3ov l2böl l4brea lb4s3au lbs4t lb4st5ac lb6staende lb4stam lb4st5an lb4stau lb6stände lbst5er lb4sti lb4str lb2u lbu2n l4b3une lby2t 2lc l1ce l4ch. lch5arm lch3ec lch3ei lche4n l5chen. lch5erh lcherma5 lchermas6 lch5ern lch5ers lch5ert lch5erz lch3eu l3chi lch3la lch3lä lch3li lch3n lch3ob lch3re lch3sh l2ch3u lch3w l1ci l1cl l1cr 2ld l2da2b3 l2da2d ld3aef ld3aer ld3aes ld3aet l2daf l2da2g l2d3ah l2d3ak l2d3al ld3ams l2d3a2n ld3arb ld3arr ld3art l4d3ass ld3asy ld3ato ld3att ldau4s l3däm ld3är ld3äs ld3ät ldbu3s4 ld1c lde4ben l2d3e4i ld5elef l4d3elf l4d3emb ld5e4mis l4d3emp l4d3ems lden5erg lde4ni l4dentl l4d5ents lde5rae l6d5er6fah lder6gebn l6d5erlas l6d5erlaß lder6pro lder3r lde4sel lde5skr ldes4sa l2dex ldi2a ldi3ae ldi4c l4d3ide ldi2e ld3ill ld3i4mi l4d3inf l4d3ins l4d3ion ld3iso ldo4br l2d3oh ldo2p ld3ope ldo2r l4d3ori ld4o3s ld3rab ld5raen l4draeu ld3ral ld3ras ld3rat ld3rau l4d3rän l4drech ld3rie ld3rob ld3rod ld3roe l4d3rol ld3rom l2drö ld3run ld3rüc lds4an lds4kl ld3sko lds2p ld1t ld3tu l4dueb ldu3i l2d3ul l2d3um l2düb ldwa3r ldy2 ldys3 1le le2ad le4an. le4anm le2as le3atl leauto4 le2av le4benm leben4s5 le5ber 2lec lech5au le4ch5ec le6chens le4chi lech5oe lech5o4f lecht6s5t leck5se 3leco lede4r5i ledi4e le4dit le2dr 2leeg 3leer lee4ret le3f4a 2l3eff lef2l lef4o le4gabt le4g3ae le4gang le4g3ar leg5ast le4g3au le2gä lege3s4 le4gesl 4l5egge. 4l5eggen legi5en le2gl le3g4le le2g3n leg2r 4lehe. 3lehm 3lehr lehr3a leh4rei lehr3o4 le4id lei3dr 3leien lei5eri 2leif lei4fan lei4fei lei6fer6g lei4fi 4l5eigen 3leih lei4hau leil4 le4im lei4mau 4leimb 4leimh leim3p le5impo l4ein. leinbus5 4l5eindr lei6nerb lei6nerk 4leinn 4leinto 4leintö 4l5einzi 2leir lei6sch5a lei6schei lei6sch5l lei6schn lei6scho lei6schw 6leisens lei6s5ern 4leisf 4leiss lei6ss5er6 4l3eisz 2leiß lei4ß5er4 lei4tae lei4t5a4g lei4t5ak lei4tal lei4tem leit5er6kr lei4t3o leit5sk leit5so leit5s4p 2leiw 2l3eks 4lektr 2lekz 3lela le4l3ab le4l3ac le4lef lel5ein 4l3e4lek 4leleme leler4 lel5erd lel5erk lel5ers lel5erz le4lev lel3ex 4l3elf. 4l3elfe le4lim le4l3in le4lor lel3s lem5anz le4mau lem5ein lem4en lem5erf lem5erk 3lemes 3lemet le4m3id le5mil 3lemmi 4lemmt le4m3o4r l3e4mot 2lemp lemt2 l3e4mul le4mum le4mun l4en. lena4b lena4d le4nan le4n3a4t le2nä 4lendl 4len4dog l3endp 4lendun le4n3e4b len3ec le4n3ed le4nel lenen5erg le4n5eng len5erf 4l5energ len5ero len5ersc len5ert le4nerw le4net le4neur 4leneuv len3f2 4l3eng. 4len4gag 4l5enge. len6gem. len6ges. 4lengp leng4r len4kar len6k5lag len6k5lei len6klin 4lenniu le4n3on le4n3or le4n3ot len6s5ein len6serk lens4po len5s4t 4l3entb 6l5enteig l5entfe 4l3entg 4l3entk 4lentla 4lentlu 4lentlü 4l3entn 6l5en6trop 4l5entrü 4lent4wa 4lent4wä 4lentwi 4lentz le4nz len5z6er len4zin len4zun len3zw lenz4wo 4l3enzy le3o2f le3o2s le4pen 3le3p2f 2l3e2pi 4l3epoc le4pos lep4pi l4era ler5abi ler5aeu ler3a4g ler3al ler3a4s lerauto6r le2r3ä 4l5erbe. 4l5erben ler6blin 4l3erbs 4l3erbt le4r3e4b ler3ef ler5eigen. 6l5ereign le4r5ei4m le4rei4n ler5eis. le4r3el le4r5eng le4r5ens ler5er5e le4rerf le4r5erg le4r5ers le5res le4r3e4t ler6finde l5ergen. 7lergenau lergene6 7lergeni l5ergenr l3ergi 4l5ergol lergro5s le4rh 4l5er4heb l4eri le4r3i4d leri4e lerin4d lerin4f lerin4g lerin4s le4rk2 le4rl 4l5er4las 4l5er4laß 6l5erlaub 6lerlebn 4l5er4leu le4rn ler4nal ler4nar ler4nau lerner4 ler3o4b ler3o4f le3ros 4l3erot 4l5eröff le4rp l4erra 4l5er4ric le4rs lers4k ler3sw le4rt le4rup 4lerus 3lerv ler6waeh ler4wäh l6erweis le4rz 4l3erz. 4l5erzeu 4l3erzg 4l3er4zo 3lesb le5seb lese5in4 lese5ras leses4k les5ess l4e3s2h lesi3e le3s4ki le2ss 4lessi lester6i lestra4 2lesw 2lesy 4l3e4tap 4l3e4tat 4lethi 4lethn letsche6 let4tau let4tel letto4 let4toe let4ton let4top lett3r lett3s4 2leue le3u2f leu4ka 2l3eul le3umb le3u4mi le3umo le3ums 3leunt le3url 4leuro 3leut 4leve. l3e4vol 2lex 3lexik le4xis lext2 2l1f lfa5chu lfae4s lfa2k lf3aka lf2at lf3aus lfbal4 l2fec lfe3e lf5einh l4f5erei lfe4rel lferin6d lfe5str l2f3im l2fj l3f2jo lflo5sses lf2lö lfpi2 lf2r lf3ram lf2sä lf4spe lf4s3ti lf4stra lf2su lfto2 2lg l4gabs lge3in4 lgene6ri lge4rab lges2 lge3u lgge3 lgi3en l3g2le lg2lö l3go lgoa3 lgro5sse lg2s3t 2l1h2 lhauser6 3lhi. lhu3s2 1li li3abe li3ac li3ak li3an4g li3ato 3lib2 libi3e li3ce 4lichet lich3r lich4ta lich4to lichts4 licht5so licht5sp 2lick l2id lid4a li4dea 4l3idee lidi4e l3i4dio lie4ba liebe4s5 lie4br li3e4f3a 5liefer li3efk li3efl li3efm li3efp lie4fr li3em lie4na4 liene4b lie4no lie4r5ei lie4s3c lie4sta lie4stu lif4fes lif4fo li3f2l li3f2r 3lift lif4tu lig5ang li4gatt 4l3i4gel lige4n li4g5er4s li4gin li2g3l lign4 li5gna lig4ne 2ligo li4g5rad li4gre li4gro ligs2 lig3se lig3sp li3ker lik4li lik4spr lik4tau lik4ter lik4th lik4t3i likto4 lik4t5or 2l3ill li3m4a lima3c lima3e 2limm limma4 3limo 2limp li3nad lin5all lin3a4m lin4d5ei lin4del 4lindex 4l3indi 4lindo 4l3indu li4neb li4ned li4nef li4neh li4nep li4net li4neu 4l3infe lin4gl ling4s lings5t 2linh 3linhe 4linik lin5iti 2linj lin4kar lin4k5au link3l lin4kla li4nl 4l5inner li4n3ol li4ns 4l5insel lins4p 4linspe lin6struk 4l3insz 2lint li3n4um li2o li3oe li3ons lion5st lio3r 2lip. 3lip3t 2l3ira li4rak li4ran 3lis. li3s2a li4schl li5schm li4schn li4schu lis2h li3shi 2l3isl 4l3isol 4lisot li2sp li2ss2 lis3sa 2liß lit2a li4t3a4d li4t3ak li4tal lit5all li3t4e lite3i litein4 lite5rar lit2h li3thi 3lito li4tri li4tro lit3s2 lit4za lit4zi lit4zu li4vea live4n 2livg livi3e 2lixi li4z3ae li4z3an li2zä lizei5t li2zo 2lj 2l1k lk2a l4k3abl l4k3aeh l4k3alg l4k3alp lka4ner lka4n5in l2käh l4k3eif lkenvo4 lke3re l3kla l4k3lad l3kle lklore5 lk2lu l2knu lko2f lk3ofe lkraf4 l4kres l4k3rob lk3roc lk2sa lk3sän lk2se lk3s4ke lkue3b lk2ü lkü3b 2l1l ll3abb lla4be l4labk l4l5abri l4l3abt l5laby ll5acht lla4deg lla4dek l4laem l4laep ll3aff ll3aft l6l5agent lla3gl l4l3a4ma ll3amb ll3amo ll4anb lla6nent lla4ner ll3ann lla4no l5lans. ll5ansä ll5ansi ll5anzü l4l5appl ll5appr l4larc lla3rö ll3a4sc lla6tern ll3atl ll5attr l4l5auff l4l5aufg ll5aufko ll5aufl l4laufn ll5aufr ll5aufsc ll5aufsi ll5aufst ll3auk llau4m l4l3au4s3 l2la2w ll3axt l2läm l2läp llb2 ll1c ll3d2 lld4e ll5ebene l4le4bi ll3ech lle3er lle6ges. lle6gest l4legt l4le4gu l4le4he l4leib ll3eif l4l3eig l5lein. l5leine ll5einsa l4l5eise lle4la lle4lei lle4ler l4l3e4mi ll3emp lle4na ll5endl ll5en6dun lle6nens lleng4 llen6ge. lle4n5in llenk4 l6len6sem l4l5entf l4l5ents l4lentw llen4zy lle4r3a ller5eis l6l5er6fas ller6geb l6lergen l4lergi ller6kla ller6klä ller6kun ller6laub ller6müd l4l5ernt l4l5eroe l4l3er4ö ll6ers. l6l5ertra lle4se lle4spo lle4th llet5he l4leuc ll3ex3e ll3ext llf2 llg2 ll3ide ll3ido l4lieg lli4gan lli4la l4l3imb ll3imp l4l3inf ll3inj l4link llin6sen l4l5inst ll3int lli5on. l4li4po llk2 ll3m2 lln2 l4l3obe ll3obs llo4de lloe4g lloe6sen l2lo2f llo4ge llo4ner ll3opa l4l3ope ll3opf l4l3orb l4l3ord l4l3o4ri ll3ort l4l3osz llo4te l2l3ou ll3ox llö2g llö4sen lls5amte llsau4e ll4s5en5e ll4s3es llsgene6ra lls5int ll4skl ll3sla ll3sli ll4s5tor llti4m l2lu2d llue4d llue4g l4lu4me ll3umm l2lu2p ll3urg ll3urn ll3urs llust4 l2lüb l2lüc l2lü2d l2lü2g llz2 2l1m l2m3a2b l4m3aep lm5aerz lm5ae4st lm3aka lm3alm lma2m lm3ama lm5antr l4m3apf lm3arr l4m3art lma5sses lm5auss lm5ausw l2mäp lm3ärz lm3ä4st lm1c lmd2 l2m3e2b l2m3ef lme2h lm3ehe lm5eins l4m3emu l4m5ends lme4no l6mensem lmen4zy l2m3e2p l4m3er4b l6m5ereig l4m3er4f l4m3er4r l4m3er4z l4messa l2m3i2d lm3iko lm3inh lm3ins lm3int l2m3of lmo2p lm3ope lm3orc lm1p2 lm3s2k lm3s2n lms5tur lms2z lmt2 l4munt l2m3ur 2ln l1na ln2ab lna2r l4nare ln2e l3nei lnes2 ln4eu l2n3in l1nu lnue2 lnus2 lnuss3 l1nü l1ny 1lo 3lob. lo3ba 4l3o4ber lobe4s 2lobj lo2bl 2l3obm lo5chen locher4 loch3o lod2g lodi4e loe2b 2loed loe3du loe2f l3oefe l5oeffn 2loeg l3oehr 2loek l3oel 2loep lo3er. loes5ser 2loeß loe4t3a 2loé l1of 2lofe 2loff lo3fj loga2 lo4gar lo4gei lo4g3el lo2g3l lo4gor lo4gre logs2 log3sp loh4e lo5her loh4ner lohn5erh lohn5erw 2l3ohr loi2r 2l3okk lo2k3r 2l3okt 4l3oliv 2l3o2ly lome3 lo4mel lom5ing 2lomn lo4n3al lo4nau lon3er lon4gu lon4sae lons4p 4l3onto lo3ob lo2op lo4pal lo4per lo3pi lop4p3a lop4pr 2lopt lo3rad lo4r3am 4loran lo3ras lo2rä lor3do lo3re lorein4 lo5r4en 2l3or3g2 lori4di lori5sc 2lort2 l2os lo2sa 3lose lo4ske lo4spe lo4spr 2loss los4su lo5stau lo4stel loste4r5 lo4steu 4l3osth lo4s3to los5tra los5tri los5tro l3oszi 2loß lo2ßu lot5ein lot2h lo3tha lo4thr 3loti loti4o lotte4n lot3tw 2lotz lour4s 2l3ouv l1ov 2lo2ve l2ovi 2lox loy2 1lö lö2b lö3ch 2löck 2löd lö2f 2l3öfe l3öffn 2lög 2l3öhr 2lök 2l1ö2l 2löp 2löss l3östl 2löß 2löz 2l1p lp2a lpeng4 lpete4 lp2f lpf4e lp3fen l5phas l4p3hir l4p3hoe l4p3hor l2p3hö l2p3hu lpi2e lpi2p l4ple. l3p2n lp1t l3pu 2lq 2l1r2 l3ra lra4ss l3re lroe2 lroes3 lro2h lrö2 lrös3 l3ru lrue3b lruecker6 l3rü lrü3b lrücker6 2l1s lsa4b3a l2s3a2d lsae4s l4s5aeus ls3alt l4s3amp l4sana l4sane l4sanf l4sang l4sank l4sann l4sant l4sanz ls2ap l4sa4ri ls4ark ls5assi l4sau. l4sauf lsau4m lsau6rer l4sau4s l4saut lsä2s ls4äug l4s3äus lsby2 ls2ca lsch5eint lsch4le lsch4lo l4schmü l6schore l4sch5wo l4sch5wö l2s3e2b l4s3eie ls5einf l4s5eint l4s3e4li l4s3emb l4s5enzy l4s3epi l4s3er3e l4s3erf l4s3erg l4s3erh l4s3erk l4s3erl l4s3ern ls3err l4s3ers lse3r4u l4s3erw l4s3erz lse2t l4s3eta l4s3eth lsex4t4 l3s4ham l2s3id l4s3imp l4sind l2ske l5s4kele l2sko ls2ky ls4law ls4lip l2so2b l3soe l4s3oef l2s3op l4s5ort. l4s5orts l2söf l3s2öl l4spag l4sparl l4späs ls2pe l4spiz l4spoe ls4pon ls4por l2spö ls5prae l4s3prä ls4pul l4spun l2s3s2 lst2a lstab4 ls5tabl l6s5taeti ls3tak l4s5tanz l4s3tas l4s5tat. l4s5tate l4s5täti l4s5terr l4s3tis l4stit l4stoch l4s5tor. l4s5tors l4s5trac l4s5trad ls5trit lstro6ma l2sty l4sumf l4s3ums ls3umv ls3unk l2szo 2l1t lt3abr lt5ach. l3t4a3d lt3aeh l4t5aerz lta3f2 ltag2 lt3agr lt3aka lt3all lt3alt l4t3alu l4t3ame ltampe4 lt4anda ltaner4 ltan6gab ltan6ges ltan4sa ltan4sä ltan6str lt3a4po lt3app l6tarbei ltar6beitn ltare4a lta5rhe l4t5arma ltar6me. ltar6men. lt5art. l5tarta lt5arte ltar6tik l5tartis l5tartr l5tartu lt3asp lt3atl l4t3ato lt5aufb lt5aufk l4taut lt3äh l4t3ärz ltbau5c lt5eben lt3eck lte3e lt3ein lte5iso l4telem ltem4pu l4temul l3ten. ltende6s lten6gag lten6gel l4tentl l4tents lte4rat lter6be. lter6bel l5terg lter6kun lterma5sse lt5er4nä lter5oe l4t3esk lt5etho l4t3e4ti l3thas lt3heb lt5heri l2t3hi l2t3ho lt2hu lt3hun l2t3hy lt3ide lti6g5er6k l4t3ind lt3inf l4t3ins lt3inv lt3i4ra lt3i4ri l4t3iso l5tist l4t3o4be l4t3obo lt3oef lt3oel lt3oes lt3oet l2t3o2f l4topt l4tord l4t3org l4t3o4ri lto2w l2t3öl l3tön lt3ös lt3öt ltra3l ltra4s5s lt5räuc lt3rec lt5reic lt5reif l4t3ris l4t3roh lt3ruc lt3rum lts5eins ltse4l lt4s5ele lt5skal lts5ort lt3s4ph lts4por lt4staf lt4s5tie lts5tuet lt4s5tüt lt5szen ltu4el ltu3en lt3uh l2tum lt3ums ltu4rab ltu4ran4 ltu4ras ltu4rei lturen4 ltu6r5ent ltu6r5enz ltu4r5er ltu4r3i ltz2a 1lu. lu3an 2lub1 lu2ba2 lu2bo lu2br lub3s2 lu2bu luch4s5a luch6s5ta luch4to luch4t5r luchts5o lu4de. lu2dr 2lueb 3luebd luecke4 luecker5 lu3ent lu3enz lue2s 1luf 2l3u2fe 2luff lu3f2r luf2t luft3a4 luft3e luf4tei luf4t3r lu4g3af lu4gas lu5ge. lu4g3e4b lu4gei lugen3 lug5erl lug5erp lu2g3i2 lu2g3l lu2go lu2g3r lug3sa lug3se lug5spo lu2gu 2l1uh l2u3hu lu3id. lu3is. luka2 3luke l3ult lumbi5e 2l3umd lume2 lumen3 2lumf 2lumg 2l3umh l3umj 2lumk 2luml 2lumm lum4p3h 2lumr l3ums 2l3umw 2lumz 1lun 2l3una lu3nap 2l3unb 2l3unf l4ung. 4l3ungl 2l3u2ni 2l3unl 2lunr 2l3uns 2lunt 2lunv 2lunw lupf3 lu4r3an lu4r3at lu4rau lurch3 lu4r3ei 2lurg lu4ris l3urk 2l3url 2lurn lu4ror 2lurs l3urt lur3z2 lu3sak 2luse lu3so lu3spr 3lusq lus4s3a lus4s3c lus6sein lus4s5el luss5er4 lus5ser. lus4si lus4s3o lus4s3p lus4st luss5ti luss5tr lu4sta lust5ae lust5ak lu4stä lu4st5ei lust5erf lu4st3o4 lu4st3u lu2s3u 2lu2ß1 lut3ae lut3an lut3au lu4t3eb lu4t3e4g lu4t3ei lu4t3el lu4t5en4g lu4t5ent luter4 lu4t5erb lu4t5ere lu4t5erg lu6t5ersa lu4t5erz lut3ex lut5ins 2luto lu4t3ob lu4toe lu4t3o4f lu4top lu4t3or lu4t3r lut3sa lut5schl lut3s4k lu4t3ur 2lübe 2lübu lücke4 lücker5 lügel5e lü4h3el lü4hem lüh3l lü4str 2lv l2veo lv2l 2lw 2lx 1ly lya2 ly3ae ly3en ly2es lyri3e lys2 ly3th ly4t3re 2lz l4z3aer l2z3ag l2zak lz3al l4z3ant l4z3app lza2r lz3aro l2za2s l2zat l4z3aus l2z3är l4z3eig l4z3eim l4z3eis lze2l l4z3ele l4z5enth l4zents l4zentw lze2p l4z3er4h lze3ro lz5ersa lz5er4tr l4z3er4z lzeugin6 l2z3id lz3iko lzi2m lz3imi l4z3ind lz3inf lz3ing l4z5inst lz3int lz3l lz3oef l2zo2f l2z3or l2z3oz lz5rei lzt2 lz3tha l4z3u4fe lzug4s lzvol4 l4zwar l2zwo l2zwö l2zwu 1ma 2m3aal ma3ala maa2n ma3ari ma3atl 2m3abb 2mabd 2mabf 2mabg 2mabh 2mabk 4m3abla 4m3a4blä 2m3abm 2mabn ma3bo mab4ra ma4bri 2mabs 2m3abt 2mabw 2mabz ma4c3ar ma5chan ma3chi mach4ta mach6terf mach6t5erg mach6t5erh mach6terr mach6t5ers mach6tert mach6t5erw mach4tr ma3chu ma2ci 2mack mack4s 2m3act mada4m 2m3add ma4del ma3dj 2m3adm 2m3ad2r mad2s 2madv 4m3aend 4m3aepf ma3epo 2maeq ma3erh ma3erw maes2 ma3eta mae5us. maeu4s5c ma1f 2m3aff maf2r 2m3aft ma4ge. ma4geb ma4geg ma4gek mage4n3 ma4gep ma4ges. ma4gev ma4gew 2m3agg magi5er. magi5ers m3a4git 2magm ma3g2n mah4ler ma3ho ma3hü mai4ler ma3ind mai4n3e mai4s3e ma4kad ma4ke. ma4kes ma3kla ma3kli mak2r 2m3akt ma4kus malad4a ma5lade mal5aer ma3lag mal5akt mal3an ma3las ma4lär malb2 6mal6dehy ma3lec malen4s ma4lent mali5er. ma4l5ins ma4linv malk2 4mallt ma4l3on ma4lop ma4l3o4r malster6 malu2 ma4l3ut mal4zae 2m3amb ma4mid ma4moe 2m3a2mö 2m3amp 2m3amt m3anae 4m3a4nal man3an ma4nar 4m3a4na3t ma4nau 2m3anä 4manbie man4ce. man4cek mand4 maner4 ma4n5ern ma4net m4anfr man3g4a 4mangab 4m5angeb m3angs 5manip 4manla m4anle 4ma4nod man4o5m ma4nor 4m3anpa 4manpf m5ansatz 4m3ansä 4m3ansi mant3a man4tag manu3s 4manwen 4m3anza manze4 m3anzu m3anzü ma3o2b ma2or ma3pfl ma4phr 4m3appa 4m3appl ma3pr 4marag mar4an 2m3arb 4m3area mar3g2 m3argu ma3r4i 3mark mar4klo mar4kr m3armb 4m5arme. mar4o maro5d ma3rö 2marr mar6scher mar6schl mar6schm mar6schn mar6scho mar6schr mar6schw mar4sp mar4su 4mart. 4m3arti ma3ru mas2a masch4 ma3sco maser4n5 ma2s2p ma3spa ma3spr mas6ses. ma5s6sest ma5s4set 4m3as4so mass3t ma3s4su mas4t mast5an ma4sti ma4t3ae ma4t3an ma4t3ar ma4tat ma2t3ä m3a4tel mate4n3 ma4t5erd mat5er5in ma4t5erz ma4tho 4m3atmo ma4toa ma4t5opf ma4t5ort mat3s4p mat3th matt4ha mat4the matur4a mat5url 2matz 2mauc 2m3au2f3 2m3aug mau4les mau4l3o mau4lö ma3um m4aun ma3unt m4aus. mau4sa 4m3ausd maus3p 2m3auß mau6t5erh mauto4r m2ay ma3y2o 1mä mäh3r 2m3änd m1äp 2mäq mär4kl mär4zen mär4zer mär4zw mäs2 mä3tr mä3us. mäu4s3c 2mb2 mbe4er mben5er mbe4ren mber5er5 mbi3o4f mb4re mb3s mby2t 2mc m1ch2 m1cr 2md m2dab md3aer m2d3an md3arb md3art m2d3a2s md3ato md3är mde2a m2d3ei m4d3e4mi mde2n m4d3ent mder2 m4d3erf m4d3erl m4d3err m4d3erw mdi2a mdi2e m2dob md3ras m3dru md2s3a md2sä mds2p md1t m2d3um 1me mea2n me3at meau2 meb2 me4ben me3ch 4m3e4cho 3med medie4 me4dito 3mee mee5ing me5e4mis mee2n me3ene meep2 mee4rei meer5eic meer3u 2m3eff meh4l5er mehrer4 meh6rert 2meic 2m3eif 2m3eig mein4da mei6nenz mei6ner6k mei6nerl mein6hal m3einl meins4 mein6sel 4m3eis. m3eisb me3iso 3meist mei4st5a mel6ante me4l3au 3mel3d4 melde5i me3lec me4l5ein 4m3e4lek 4m3elem me4l3en me4l3er melet4 4m3elf. mel3id 4m3e4lim meli4n mel4k5ei 3melo me4l3ob me4lor mel3p mel4s5ac mel4sph mel6s5tem 6m5el6tern mel4zi 4m5e4miss 2m3emp me4na4b men4ade menae4 men4ag me4nan me4n3au me2nä2 4m3endl mend4u men3e4b men3ed men5end menen5e men5ent men5erb men5er5o men5erö men5ers men4erw me4n3e4v men3f 4men4gag me4nid me4nil me4n3im men3k2 men4sau men4se. men4seb men4seh men6semb men4ser mens5ert men4ses men4sex men4s5i4d mens5trun men4sum men6t5anz ment6arb mentar6ten men6t5eig men6t5enden men6t5ers men4tet men4thu men6tres men6t5rol menz4w me1o2 2meou 2meö me1p2 mepo4s me3ral merauto6 mer3b 4m5erde. 4m5er4den mer4dun me4r3e4b mer5eck mere4f me4r5eis me4r5end me4r5ens me4r5ent me4r5erd me4r5erf merer6kl mer4err me4rf 4m5erfol 4m3erfü merg4 4m5ergän 4m5er4gus 4m5er4guß meri4e merin4d 4m5erklä mer4laß me4rn mer4näh mer3o4f me4rs mer4siv mer3sm 5mer5te me4rw me3ry me4rz 4merzä mer4z5er 3me2s m4es. mes3ae me3sch me3se. mes3e4l me3sen mes5er5o me3si mes3or me3s4pe mes3pr mes4sal mes4san mes4sau mes4say mes4s5or mes4s5ti mes4stu mest2 mes3tä me3ste me3sti me3sto me3str 3me2ß1 3me3ta mete4r3 me3t2h me4t3oe me2tö met5res me4trig mett5en6de met4t3i meu1 me3um meute5r6e 2m3e2x3e 2mexp 1mé 2m1f2 mfi4le. mfu5sse 2mg2 mgang4 mgeb2 mglim4 mgus2 2m1h2 mh4au mhaut5o 1mi mi1a mia2b mi3ak mia2m 2m3i2at mibi3e mi2c mic3e mi3ch mi3cr mi4dea mi4di. mi3d2r 2mi2dy mie3dr mi4eno mierer4 mie4tau mie4t3i mie4trä mie4tre mi1f mi4k3ar mi4k3el miken4 mi4k5ens mi4k5er4z mi4k3in mi4k3ob mi4k3of mi4kon mi4kre mi4kum mi3l4a mil4i 4m3illu mi3l4u 2m3imm 2m3imp mi3na mi4nab minde4s m3indu min5eck mi4nef mi4n5e4r5i 4m3info min4gan min4gl mini5d 4m3init min5iti 2mink min4kr mi4n3of mi3nu min4z3o mi3o2b mioni3 mi1p mi3ra 2mirg mi3sa misau4 mi6schef mi6scherb mi6sch5er6z mi4schi mise3r 2mi2so mis4pa mi4spe mis4ph mi2ss mis3sa mis4sac mis4ser mis4s5in mis4s3t mi4sta mi2ß1 mit3ak mi4tar mit3as mit3au mite2 mit3ed mit3em mit3er mit3es mi2t3h mi3tia mit5iss mito2 mit3op mit3or mi2t3r mit3s4 mit5sa mi2tu4 mit3ur 2mitz mi2zw 2mj mjäge4 2m1k2 2m1l ml1c m3le mlein4g mlerin6t mlö1 ml2v 2m1m mma4bar mmae2 m4maes m4maeß m4m3aeu mm3a4kr mm3all m4manb m4m3ank m4m3ans mmanu3 m4m3anz mma2p mm3apo mm3art mma3sp mm5assi mm3aus mmä2 m2mäs m2mäß m2m3äu mmd2 m2m3e2b mme4c mme4dit m2m3ef m2meh m4mein mm5eise mmel3a4 mme4lad mme4l5in mme4no mmen6stru mmen6te. mmen6ten m4m5entg m4mentl m4m5ents m4mentw m4me4nu m4me4nü mme4r3a4 mme4rec mmer6sio mmes3e mme4si mmes6sens mme4s3t m4me4te m2m3eu m2mex mmga4s mmi3e4l mmi3k2 mm3inb mm3inf mm3inh mm3inn m4m3ins mm3int mmisch4 mmi3tu mmi3tw mmni2 m2mo2l mm3ope m2m3ou mm1p2 mms2 mm3sk mms4p mm3te mm2th mm5ther mmuel4 m2mum m3mun mmu3r mmut3s4 mmül2 2m1n2 mne4bl m4nesi4 mni3er 1mo m4obb 2m3o2be 2mobj mo3che mode5sz mo2dr moeb2 2m3oe2f moe2h mo3ehe 2moek mo3ela mo3e2m mo3ero mo4fen 2m3off mo4g3al moh2a mo2k2l mok3la mo3kle molch5a mo3lo mom4e mo4n3ae mon3al mo4n3an4 mon5ato mon3au mo2nä mon4das mon4d5el mon6d5erk mon4dre mo4n3er moni4en moni5er. mons2 mon3su mont4a 2mony mo2o mo4per 2m3opf 2mopt mo3ra mo4rak mo4rar mo4rau mor4d3a mor6d5ere mor6d5erl mor6d5erm mor4dr mo3re. mo4rei mor5eng 4m3orgi mor3in moro2 mo4rop mor3t4 3mos mo4ska mos2p mo4sto mo2s3u mo3t4h mo2u mous2 2m1ox moy3 1mö möb2 2m1ö2f 2mök 2m1öl 2mp mpa3ne mp2ar mp3arb mpat4 mpe4la mpe4ler mpe4lin mpe4ne m4p5ener mpf3au mpf3ef mp4f3el mp4f5enz mp6f5erfo mp6f5erfu mp6ferle mp4f5erz mpf5lae mpf3lä mpf3lo mpf3ra mp3haf mph3au mphe2 m4phoe mph5org m2phö m3pi mpi2a mpin4 mping3 mp2l mp3le. m4p5lem. m4p3len m4p3les m2p3lu m3po mpo3li mpor6ter mpot2 m1pr mp3sh mp3ta 2mq 2m1r2 m3ra m3ru 2m1s m3sac m4s3aen m2sak ms3all m4s3alt ms3amt ms5andr m4sang m4sant m2sap m2sar m2s3a2s m4sauf msau4n m2s3än m4schan ms5chef msch4l m2s3ef ms5einsa m3s4ek m4s3e4le mse2n msende4 m4s3ene m4sentl m4s3erf m4s3erk mse2t ms3eti m2se2x ms3imp msi2n ms3ini ms3int m2sk m2s3o2d mso2r ms3orc m4sord m4s3ori m2s3ou m4sped m2spl ms4pon m4spot m4spro ms2pu m2s3s2 mss4a ms5taeti m4s3tas m4s5täti m4stit m5stras mstro4 ms5turm m2sty ms3ums m2s3ur m2szi 2m1t mta2m m3t4as mt3änd mte2a m2t3e2b m2t3e2d mt3ein m4t3eis m4t3eiw mt3elt mte2m m4t3emi m4ten4ga m4t5engl mte4no m4t5en4se m4t5entf m4t5entg m4tentl m4t5en4tr m4t5ents m4tentw mte4ri mter4n m4t3eta m2t3eu m2t3e2v mt1h m2t3i2d m2t3im mt3inb mt3ind mt3inf mt3inh mt3ins mt3inv m2t3i2r mti6schw mt3isr mt3ita mtmen4s m2tob mt3oes mt3ord mt3org m2töl mt3ös m4trah mt5rang mtra4s3 mt5rauc mt3rec m4t3res m4t3ris mt3rot mt3s2c mt3se mt4s3e4l mt4sen mt5send mts3k mt5s4kel mt3sor mt5span mt5spru mtt2 mtu3en mt3um mtz2 1mu mu1a 2muc mucker4 muck5erz muck5sp 2m3ueb 2muec mue4her muehl5a mu3el. mu3els mue4sse mues4si mu3ez mu2f 2mug 2m1uh mu3la mul4lau mul4l3e 2muls mult2 multi5 2m3umf 2muml 2mumr mum4s3p m3umst 2mumt mundan4 mun6dant mun4dar mun6d5erf muner4 mu4nerk 4m5ungeb 4muniv m2unm 2munw 2munz 2m3url murn2 mu3r2u mu4r3u4f mu2s3a mus5erf mu4sin mus3o muss2 mu5s4se. mus4s5e4h mu5s4ses mus4ste 4must. mu4s3to mu4stö mu4str mut3au mu4t3er 2m3u2to mut4str 2müb 1müd 1müh mü4her mühl3a 1mül 1mün mü3s4si 1müt 2mv 2mw2 mwel2 mwelt3 mwelter5 1my my2os mys2 2mz2 mzel4li4 mzug2 1na. 1naa n1ab 3naba na4b3ar 3nabä 4nabb 4nabd 3nabec na4bei nab5erk nab5er4r 2nabf 2nabg n3abh n2abi na4bi4t na2bl na4b3or na4bos 3nabö na4bra na4bre na4bri nab4rue n4ab4rü 4nabs2 4nabt na4bus 2nabz 3nachb nachen4 na5chen. nach5ent5 nach5erb nach5ers 3nachf 3nachh nach3i 3nachl 3nachm 3nachr 5nachsc n5achse 5nach5s4p 3nacht n4acht. nachter6f nach6terk nach6t5ersc nach6traum nach6t5ren 3nachw 4nadap n3add nade4l nadel5a nadel5e na4der n5ader. nadet4 n2adi nadi5ers. n3adl 4n3adm 4n3a2dr n3ads 3n2aec 3naee 3naehe 3naehm 4n3aehn 3naeht 3naei 2n3ae2m 2n3aen n2aep 2naeq 3naer. na3erg 3naese nae4ss nae5us. 3naex 2n1af 3na3fl na3fra 1nag nagel5e na4gem na4gent 2n3agg na4gio na4git na3g2r 1n2ah na4h5erk 3nahm n3ahn nah3oe na2hö na2hu 1n2ai na3i2d nai2e na3im 2n3air nai4re n1ak na4kad 3nakä na2kn 3nako na4kro 2nakt na4kus n2al. nala2 nal3ad nal3ae nal3ak nal3am nal5ang nal5are na2lä 4nalbb 4n3albk nalb4r nal3da na4leb na4l3ed na4l3ei na4lel na4l5end na4lent nal5ents na4l3ep na4l5erb na6l5erei na4l5erf na4l5er4g na4l5er4h na4l5erm na4l5er4s na4l5erw na4l5er4z nales4 nal3ex3 nalf2 nal3g n2ali na4l3i4d nali4n3 nal5ini nalk2 nal6l5en6g 4nallt n3almt na4lob na4loe nal5oef 4nalog na4lop na4l3or nal3ö n4als. nals4ka nal4spu n3alt. nal5to n4alty na2lu nal3uk 2naly n3a4mal n3a4mat 3namä 3name. na4mei 3n4amen namen6s5p namens5tr 4n3a4mer n2ami n3a4mid na4min 2n3amm 2na3m2n 3namo3 n3amp nam4sp namt4s 3namy 2nana na4nae na4nal na4na3t n3a2nä 2nanb n3and2 n4and. nanden4 n4ands nan3er nan3eu 4nanf 2n3ang2 2nanh 2nani 4n3ank 4nanl 4n3anm 3nann 4n3anna n3anp 2nanr 4n3ans 4n3anta4 nan4tag 4n3antr 3nanu 2nanw nanzen4 nan6zene nan6zeng nan6z5er6f nan6zer6g nanzer6m nan6z5ers nan4zw 1na1o 1naö na4per 3napf. na3pfa 4napfel 3napfs na4pos na2pr n1a2q n1ar 3n4ar. 2nara na4rab na4ran 3narä n4arbo 2narc 3n2ard nar5ein 2narg n4arge n2arh 3n2ari n2ark n4arle 2narm 4narm. n4arma 4narme na4rom na3rö n2arp nar4rh n4ars. narse3 nar4s5ta nar4stä 2nart n4arta n4arth 3n2aru na3rum 3n2arv n4arze 3n2as. 3nasa na4sar 3nasä na4schw 3nase 3nasf n2asi na2sp nas4ph 4n3assi na4ster4 nast5erf na2sy 3n2aß 1nat na4tat na4tau nat3ei na2th 2natm n3atmu n2ato 4natom na5tomi nat4s5ac nat4s5en nat4sti 4n3atta naturen6 natu6renz n1au n2aud 3naue nau3eb naufs4 5naugeh na3uhr 3naui 3n2aul na3um. nau5sa 4nausd 3nauso 4naus5s nau6sse naussen6 5nauste. 5naustem 5nausten 5naustes n4aut. nau3ta n4aute 1nav 2nava nave2 navel3 navi5er. navi5ers 1naw 3nax. na2xi 3naxp n3axt 3nazu 1nä 2näb 3n2äc 2näd 2n1äf n4ähe nä4hei nä2hi 3n4ähm 2n3ähn n2ähr näh3ri nä2hu 3näi 2n1ä2m 2n1än n2äp 4näpfel 2näq när4sin n2äsc nä2ss 2näst 2näu 3nä3um nä3us. 2nb2 n3ba nbais4 nbau3f n3bä n3be nbe3n4a nbe3ra nber4e nber4ga nber6g5ei nber4gr nbi2e nboge4 nbogen5 nb4or nbruchs5tr n3bs n3bu nb4un nby2t 2n1c n2cab n2cei n2cem n3ce4n n2cev ncha3l nchar6me nchial5 nchi5en nch2s n3cke n3cu 2nd n2dac n2dad nda3ef nd3aet nd2ag n2dak nd3akt n4d3all nd5ange n4danl nd3ans n4danw n4d3arb ndar4da ndar4t5r nda4ste ndau4s n4daut n2dax nd3äng n2d3ät nd1c nd3d nd5dre nde4al. nde3e n4d3ei. nd3eil nd5ein. nd5einh n4d5einn n4deis nde4lat nde5lec nde4len nde4ler ndel5l ndel6s5am ndel6s5en ndel4s5o nde4m5ac n6d5en6gel. nden6geln nde4n5in ndenk4r nden5s4k n4dentl n4d5ents nde3o2 nde6r5eis nde6r5eiz nde6reng nde6rent nder6läs n4d5eros nde4sam nde4san nde4sel nde4ser nde4set nde6stae nde4stä ndi5en. ndi4ene ndi4ens nd3imm nd5inan nd3iso ndlo3c ndo4n5au ndoo2 n4dopt n4d3orb n4d3o4ri ndo3st n4d3ott n4d3out n4d3rat n4dreih nd3rob n4d3rod n4d3roe n4drose nd5rost nd3rot n2d3rö n5druc n4drui nd3run nds5amt nds5chin nd3sco nd4s5ene nds5erb nd4skl nd4spae nd4spä nd4sph nd4szi nd3tr ndwa5re nd5wil 1ne nea2b ne2ap ne3ar. ne5ast. neben5s 2n3ebn neb2r 2nec 3neca 3nece ne3chr neck4a neck5sp 3necl nedi4e ne4dit ne4e3i4g neel4 neen2 nee3ra ne3erk nee3ro ne3er4z nee3t ne3f4a nef2l neflei4 2n3egg neg2l n3e2go neg2r 4n3e4he. 4neheg ne3hen4 4n3e4hep nehe4r 3nehm neh4min ne3ho 2nehr neh4r5er 2n1ei 3neia nei6derf neid5erfu 3neigt 5neigu neinbu5s neins4 ne5in6sel n4einsu neit4h n4ek. 2nekd 2n3eks nek3t4 2nekz n3e4las 4n3e4lek 4n3elem ne3lid ne4lim ne4lit 3nelk n2ell nel4la nella4d nell5an nel4lä nel4le4b nel4l5ei nel6l5erf nel6l5erk nel4lif nel4l5in 3n2eln 3nels 3nelt n2em. 4n3e4mai 2n3emb nem4e 4nemes n2emi 4ne4mig n4emo 4n3emp 2n3ems 4n3e4mul n2en. n2ena ne5nack ne4nan ne2nä n2enb n2enc 4n3endb 4n3endd 4n3endf n3endg 4n3endh nen4dig 4n3endk n3endl 4n3endp 4n3endt 4n3endw n2ene ne4n3e4b nen3ec ne4n3ed ne4nel nen5end ne4n5en5e nen5ens ne4n5ers ne4neru nen5ess ne4n3eu n2en3f2 4n3engb 4n5enge. nen6gen. nen6gend nen6gens 4n3engs 4n3engt 4n5engun n2enh ne2ni nen3in n2enj n2enk2 n2enm nen4nar nen5nec ne2n3o2 n2enr n2ens 6nensemb nen3sk nen5s4p 4n3entb 4n3entd 4n3entf 4n3entg 4n3entl 4n3entn 4n3entp nen6t5ric 4n3ents 4n3entt 4nentw 4nentz ne4n3u n2env n2enw n2enz nenz4w neob2 ne4pen ne3pfl ne2pi 2nepo ne4pos nep3t2 n4er. ne3ra. ner3a4b ne3rae ner3af ner3a4g ner3ak ne3ral ner3a4m ner3an ne4r3ap n4erat 4n5erbe. n5erbie ner4big 4n3erbs 4nerdb ner4dig ner4dun n2ere ne4r3e4b ne4r5eck ner3ef ne4rein ne4rek ner5ema ne4r5ere ne4rerf ner5ers 4n5erfas 4n5erfin 4n5erfol n6erges 5n4erhin n5erhöh n2eri neri4e nerin6st n2erj nerk2 4n5erklä 6n5erlaub n4erli ner6lösen ner6löses nerma5s4 4n5ermit n2ern 4n3ernä 4n5erneu 4n3erni 4n3ernt 4n3erod 6nerosio ner4pre nersau4 4n5ersts ne4rup n2erv 4nerwae ner6waer 4nerwä ner4wär n6erweis n4erwo 4nerze. 4n5erzes 4nerzeu n4erzim n2es ne4sal nes4ang 4n3e4sel ne4s3ev nesi5er. ne4s3of ne4s3or ne4spa nes4pe ne4spr ne2ss nes6sige nes6sigs ne4stei nesti4e nest5rae nest5ran nest5rau ne4st5rä ne4st5ri 4nesyn ne4tab ne4tad ne4t3an 4n3e4tap 4n3e4tat net3ei ne4t3e4l nete4n net5erh net5ers ne4tho ne4t3in ne4t3ob net3s2 n4ett netto3 net3tr 4netui ne4tus 3netz net4z3i ne2u neub2 neu3c ne3ueb neu4ere neuer4f neuer4k neuer4ö neuer4r neuer4s neuer4w neu3g 4n3eule ne3umf ne3ums 2n3eup neur2 neur3a 4n3eury neus4 neu5sc neu3t4 4neuzt ne4van 2n3e2ve ne4vid ne4volu n2ew new2s3 2n1ex nex3em 1né 2n1f nfa5chu nfae4s nfah4l nf5akti nfall6s5o nfalt4 n4fanb nfang4s5 nf2ar n4faut n3fä n3fe. n4f3eim n3fen. n4f3en4d n3fer nf5erze n2fex n3fi nfi4le. n2fj nf2l nf5laen nf3län nf2o nf2r nf1s2 nf4tan nf3tei nf2t3r nfts3a nft4sen nft4s3p nft4s3t nf1u n2fun nfu5sse 2ng ng3a4b3i n2g3ac ng3adr n4g3ael ng5aerm nga3h n2g3a2k ng3alm ng3a4me ng3amp ng3ams nga2n ng5anda ng5angl ng5ansc n4g3ant n4g3anz n5gard n5garn ngas5ta n2g3aß ng3ato ng5attr n4gauf n2g3a2v n2gäh n2g3äl ng3ärm ng3d2 n4g3eif n4g3ein n4g5eise n4gelem n3gen ngen5ec ngen5erg ngen6erw ngenmas6 ngen3s4 n6gensem nge4ral nge6rend nge6rers ngerin6st nger6zae nger4zä nges4a n4g3es4s ngg2 ng5get ngg3s ng3hu n2g3i2d n3glä ng4lea ng4led ng4le3e ng3ler ng4lev n4glig n4glog ng3los ng5lot. n4gluk ng3m ngma5sse. n2gn2 ng3nar n3gnä ng3ne ng3ni ng2ob n2gof ng3o4pe ng3p ng5raen ng5raeu n4g3rai ng5ram. ng5rand n4g3rän n4g3räu n5gren ngres6s5o n5grif ng3rob ng3roc ng3rol ngro5sse ng5rost ngrü3s ngs5aer ngs3ah ng4s5alb ngs3au ngsauto6r ngs3e4h ng5sere ngsgene6rati ng2si ngs6tah ng4s5tal ng4s5tec ngs6tof ng4s5tur ngs5türm ng5sys ngt2 ng3ts 2n1h2 nhab4 nhabe6r5e n5halb nhau4st n3he nhe4re nhe3x 1n2i ni3a2b ni3akl ni3akr ni5aleng ni5alim ni5a4lin ni2ar ni3as ni3ato nibb2 nib2l nib2r nibu2 ni3cho ni3chr nich4ta nich7te. nichter5 nicht5sp n4ide. 4ni4dea 4nidee ni4den ni5den. 4nideo nidi4e n3i4dio ni3d2r 2n3i2dy nie3b 3nied ni2e3i ni3el. ni3elh ni3ell ni3elr ni3elw ni3elz nie2n nien3e4 nien5s4 niere4 nie4r5ei nie6rerg nie4t3o ni4eu ni3fl niga2 ni4gab ni4g3am ni4g3an ni3ge 4n3i4gel nig5erz 4niget ni4g3li ni2gn ni4gre nig4sal nig4sam nig4sta nig4sto 4nikbr 4ni4k3el ni4k5er4f 2nikh ni4k5ing ni4klo ni4kor ni4k3ra ni4k3rä nikt2 ni3l2o nime3 2n3imp ni3mu ni3nac ni3nae nin3al ni3nap ni3nä 2n3ind 2n3inf 3n4ing. 3ning4s3 2n3inh 4n3i4n3it 2n3inj 2n3ink2 4n3inno ni4nor 2n3ins n4ins. 2n3int ni3n4u 2n3inv ni3o2k ni3ora ni3os ni4ron 2n3irr ni4san ni4sch. ni4scha ni5s4che nis3e nise4l nisi2 nis3id ni4s3ik nis3in nis3oe 4n3isol ni4som nis3or 4nisot ni2sp 3ni2s3s2 nis5tas nis5tha ni2s3u 3nit. ni3tae nita4le nit4an ni3tas ni3tä 4nitia ni3to ni4top 3nitr 3nit3s2 nit4t3a nit4tec nit6tele nit6tell nit6ter6g nit6t5er6k nit4tie nit4t3r nitt5so ni3v 2nj n3jo 2n1k n4k3a4bl n4k3abo nk3a4br nk3adr n4k3aeh nk3aep nk3a4ge n4k3alg nk3alp nk3ama nk3ang n4kanh n4kanl n4kanna n4k3ans nk5antr nk3apf nk5art. n4k3atm n4k3ato n2käh n2k3äp n4k3ei. nke4lei n4kelem nkelmas6 nkelma5sse nken5sk nke6r5eis nker6fah n4k5er4zi nke2t nk3eti n4ketu nki2d n4k3ide nkier4s nkin4g3 nk3inh n4k3ins n4k5lade n4k3laf nk5lamp n4klen n4kleu nk4link nk4neb nk5niet n4knit n4koel n4kopt nk5o4rie nko4str nko2w n2köl n4krel n4kren n4krez nk3rob n4kroh n4k3rol n5kron n4k3ros n4k3rot nk3rüc nk4s5alt nksau3 nk4s3el nks5int nk3sp nks4pe nk3s2z nk4t3ak nk4t3an nk4t3au nk4t5eig nk4t5ent nkte5ra nk4t5erf nk4t5erg nk4t5ern nk4t5ers nk4t5ert nkte5sk nk2th nk4t3in nk4t5ort nk4t5rae nk4trä nkt5rol n4kumf n4k3ums nku2n nku3na nk3uni nk3urh n4k3urk nku2t nk3ute 2n1l2 n3la nlage5i nlage4n5 nlan4dr nlan4gl nl4au n3lä n3le nle4g3a n3li nli4ne. nli5ni nlite3 nli4tu n3lo nlo5ches nlu4st5e 2n1m2 n3ma nma5sses nm4en nmen5sche nmi2t n3mo n3mu nmu3ta 2n1n nnae4s nna5esc nna5gen n2nak nna5le n4n3alg n4n3all n4n3amb n2n3an nn4an. n4n3app nn3a4sc nn3ato n2nau nn3d2 nndar4 nn3eff n3neh nn4ei. nne3lu nneng4 nne3pf nne4r3a n6n5ereig nner6fol n4n5er4fü n6ner6geb nner6laub nner6mit nner3o nneroe4 nner3ö4 nner6war nner4zi nne4s3e nnesi5e nn4eu n3n2ex nng2 nngas3 n2n3i2d nni4sa nnk2 nno5be nn3obl n2n3of n2n3op nno2r n4n3ori nno4t3h nn4s3am nn4s3as nn4sau nn4stec nn4stoc nnterma5 nn2th n2n3uf n4n3unf nn3ur n2nya 1no 3no. no3at 2nob. 2n3obd n4o5bel nobe4la nobe6lin 2nobj no4bla 2n3obm 2n3obs 2nobt n4oby no1c noche4 no2de no3der n3ods 2n3oe2f 2n3oek noe4ss noes5se n4oet no2fe 2n3off nogene4 no3hö n3ohr n2ok no4kel 2n3okk n2ol no4lam nol3c no4leu no4liv no4lym 4no4mal n4omas no3m4au n4o3mi non2a 4nonke 2n3ont 2nony no2o no3oh no3os no2pe 2nopf nopf3a no4pie 3nopp 2n3ops 2nopt no3p4te nor2a no3ral 4noran no5rar no3ras n3orbi 2norc nor4d3a nor4del nor6deng nor6d5er6w nor4des nord3o nor4d3r nor4du nor2e no3res 2n3org n5o4rien 2nork 3n4orm nor4m3o 2n3orn n4oro n4orö 2n3ort no3ru n2os 3n4os. no3sh no3s2k noste4 noster5e 4n3ostl nost5ra 4n3ostv n2ot no4tae no4tam no4t3an no4tap no3tar no4tau no2tä not3ei note4n no4ter not5erb noter6b5r no4tex no3the no4t3ho no4t3in not5ope not5opf notor4 no4t5org no2tr 3not3s no4t3um 3notv 2n3out no3va 2n1o2x n2oz nö1c 2nöd 2n1ö2f 2n1ök 2n1öl nö2s3s 2n1p2 npa4ge npar4ka npe3l npi2p n3pn n3pr n3ps n3pu 2nq 2n1r2 n3ra nra4dei nra4du nra4ss n3rä n3re nrebe4z nre3sz n3ri nroe4s5c nro2h nrö4s3c n3ru nrue3b nruecker6 nr4un n3rü nrü3b nrücker6 2n1s n3sabo n2s3a2d nsae4s n3saeu n4s3a4gi n2sak nsa4kr n4s3all n4s3alm n4s5alte n4sane n4sang n4sann n4sant n4sanz n4sapo nsa4re ns4ark nsa4st ns4au. nsau4e n4sauf nsau4n nsau4r n4saut nsä2s n4säugl n5sche. n6schefi nsch5erf nsch5eul n4schl. nsch6mau ns5chor. nsch4ue nsch5werd nse4ein nseha4 nse4hab nse6hent nseh5ere nse4hin nse4hue nsei4ne n4s5einf n4s5einh n4seinn ns5einsa ns5einst n4s5eint n5seit ns5e4kel nse4la n4selem nse4len nse4ler nse4lim nse4lin nse4lit n4sem. nsen4sp n4s3enz n4s3epo ns4eq n4s5erar nse5ras nser5eig n4s5erfa n4s5erfo ns5ergi ns5ergu ns5ergü n4s3erh n3seri n4s5erke ns5erkl n4s5erle n4s5erne nser3o n4s5eroe n4s3erö ns5ersa nse3r4u n5serv n4s3erw n4s3erz n4s3eth n4sety nsex2 n4se4xi n3s4ha4k ns4hir ns3hor ns4hort ns4ic n4s3ima n4simp n4sind n4s3ini nsinn4s5 n4s3int nsi4t3e nsi4tr n2sk n5skala ns4kale ns4kali n3s4kel n5skrip n3s2ky n5smara nsmaragdei6 n2so2b n2s3o2d ns2om n2sop nsor3a n4s5ort. n4s5orts ns4pac nspae5s4 n5span n4spark ns6part. n6sparti ns4pas ns4pä3s4 ns2pe n3spek n4speri n2sph ns4pie n2spl n4spoe n5sprac n4s5prie n4spro ns4pul n2s3s2 nst5abr n6s5taeti ns5tal. ns5talb n4s5tale nsta4n n4st5ane n4s3tas n4s5tat. n6s5taten n4stats n4staut n4s5täti n5s4te. nst5eifer nst5einhe nst5einsa ns4tem. n5s4ten. n6stenth ns4ter. nst5erbie nster5ei nst5ergeb nst5erke nster5o n6st5ersa nst5erwei n5s4tes. n4steta n5steu n3s4tic nst3id ns5tier n4stilg n4stite n4stod n4s5tole n4s5tor. n4st5ord n4s5tore n4st5org n4st5ort n4s5trac n4strad n4strel n6s5trieb n4strig n4strik n2sty ns5umsa n4s3urk ns3urt n2s3ut n2szo 2n1t n4t5a4ben nta5chl nt4ack nt3aem nt5aend nt5aerz nta3f nta4gn ntak4t5a ntal3a ntalent6 ntalk4 n4t5allt nt5alter nt4anb nta3ne n5t4anfr nt5ansi n4tantr nt6anwer nta4r5ak ntar3c ntar6chi nt5art. n5tarta nt5arten nt5arter n5tartex n5tarth nt5arti nt5artu nta4ru ntasi4 n4tath nt3äm nt3änd nt3ärz n4t5eben nteg4 n2teh n3tehe nt3ein n4t3eis nt4el nt5elek nte4let nte4lin nte5ma nte4mot nte4nem ntene4r5 ntengene6 n4tenpä nten6te. n4tentw nte2p n4tepi n3ter nter3a4 nt5erbe. nt5erbt nter5eic nte6r5eis nte4rel nteri6en nter4lo nter4lö nterma5sse nter5n4e nter5obe nter5oe n4t5erz. nter6ze. ntes2 nte3sa n4t3ess nte4st5r n6t5estri nteu6eri nt4hals nthan5a n4t3heb nt3hel n3ther n4t5herd nt5herst n5this nt3hof n4t3hot n3thr n4thum n2thü n3ti nti3an nti3ch nti3f nti6kerh nti4lei nti4lin nt4im ntim3p n4t3ind ntin4e4 nti5nen ntiner6s n4t3inf n4t3inh ntini5er. ntini5ers n4t5inse nt4is ntlan4 n3t4lem ntmen4s ntnis3 nton4st nto5pfa n4topt n4t3org n4t5o4rie nt2r nt5raed nt5raend nt4ral nt5rand ntra4s5s ntra6ster nt5ränd n4t5räts n4t3rea n5treco n5t4ree nt5reic nt5reif n4t5reis n5trem nt5rese nt4ré n4t5rieg nt5ries nt5ring n4t3roh n4t3rot nt1s nt4sang nt4sau nt3sco nts2e nt2sk nt6s5tief ntt4a n3t2ue ntu3en ntu4ra ntu4re. ntu4rei ntu4rer n3t2ü ntz2 1nu1a nu3a2r3 nubi3 1nuc 1nud nudel5e 3nue. 3nuea 2nueb nue4be 3nuec 3nue3e 3nuek nu3el. nu3els 3nuem 3nuen nu3en. nu3end 3nueo 3nues nue4ss 3nueß 3nuet 3nuev 3nuew 3nuez nu2fe 1nug 2n1uh 3nuhi 1nui nu3in. n2uk n3u2kr nul4la nulle4 nul4l5eb nul4lei nul4lin nul4lo nulloe4 nul4lö4 n2um. 2n3umb n3umd n2ume 2numf 4numg 2numl 3n2umm 4n3umma 4numr 2n3ums n2umt 2n3umv 2n3umw 2n3umz nu2n 2n3una 2n3und 2n3une2 4n3unfa 4nunfä nunft3 3n2ung n4ung. 4n3ungl n4ungs nungscha6o 2n3uni 2nunr 2nunt nunte4 2nunw 3n4unz 1nuo 2nup 2nur nu2ra nu2ri nur2z3 1n2us nus3a nu2s3i nu2s3t 1nu2ß1 1nut nute2 nuti2 4n3u4top 3nutz nut4zei nutzer5e 1nuu 1nu2x1 1nuz 1nü. 1nüa 2nüb 3nüba nü4be 1nüc 1nü1e 1nük 1nüm 1nün2 nü3na 1nüo nür3c 1nüs 1nüß 1nüt 1nüv 1nüw 1nüz 2nv2 n3ve n3vi n3vo nvoran4 2nw n3wa n3we nweg3s nwehr3 nwei4st nwind5er5 1ny. n1ya n2ya. 1nyf 1nyh 1nyl n1y2o 1nyr 1nys 1nyw 2nz nza2b n4z3aer n2z3a2g n2za2k nz3and n4z3a4n3e n5zani n4z3ant n4z3anz nz3app n4z3a4ri n2za2s n2zat n4z3aus n2zän n2z3är n4z3eim nze4lan nze4lei n4z3emb nze5nad nzene4 n6zenerg nzen5ev n6zensem n4z5entg n4zentl n4z5ents n4zentw n4zentz nzep6ter nzer3a nzer5eig n4z5er4lo n4z5er4lö nzer5oe n4z3erö nz5erste nzer6tau nzer6trae n6z5er6trä nze3sa nze3sk nze5sta nze5ste nze5sti nze5str nze3u4t nz5info nz3inj n4z5inte nz3l nzlei5 nz4ln nzo2b n4z3oef n2zof nz3oli n2z3or nzu5eck nzu5eng nzup2 nz4weit n4zwet n5z4will n2zwo n2zwö n2zwu 1ñ ño1 o1a oa2be o2abi oa2br o2ac oa3chi o2ad oa2dr oad3ra oad3t oa2g oa3in oak3l oa2ku oa2l o2ala oa3lab oa3las oa2m o2a3mi oa2n oana3 oan3e o2aq oa2r oar4dr o3a2sc 3oase oa2si o3ass o2at oa2tr o3au oa2v oa2x oa2z o1ä2 ob3ach ob2al oba4lin ob2am 2ob2ar 2ob2as 2obau ob3auf 2ob2ä obb2l 2obe. 2obea 4obec obe3e 2obef ob5eins 4obek obe4lan obe6leis obe3li 2oben obend4 obera4 ober5ad ober5al o4beram obe4r5ap o4berb obe4reb obe6r5eis obe4rel obe6rend o4berf 3oberg obe6rin6g obe4ris o4berk obero4 2obet 2obev 2obez 2obi obi2e obi4l5in 3obj ob2l ob3lau ob3lei ob3li ob4lit 3o4boe. 2oboh ob3ort 2obot ob2ra 2obru 2obrü ob2s3a ob3sc ob3s2h ob3sku 3obsts 2obu o4bueb o4bunt 2obü o2büb 2oby oby2t ocau2 oc1c 3occl o1ce o4ch. och3a4b o5chani ocha4r och3au o3che. oche4b o4ch3ec och3eh och3ei oche4l oche4mo o5cher. o4ch5er4g o4ch5er4l och3id ochi3e och3l och3m och3n ochoe4f ocho4f och3ö4f och3re o4chs ochs4p ochtergene6 och4t5ri ochu4f o3chun och3u4t och3w o1ci 2ock ocke4l ockener6 ock5ersa ock5er6sc ock5er6ze ock3so ock3s4p ock3sz o1cl o1cr ocre2 od2a odab2 od3ak od2d3r o3de2c odegene6 ode3i2 odein4 o5dein. o5deins ode4l5a4g ode6lauf odel6l5ae odel6lau odel4l5ä ode4lo ode2n oden3e oden3i odenk4 o3der. o3dern o3ders odes5ae ode4sä odes4po o3deu o3dex 2odia 2odie 2odif 2odir 2odo o3dom 3o2don o2d3op o4dora odo2s 2odö 2odr od1t 2ody ody2m3 oe3ba oe4ble oe2br oech6stei oech6str oe2du oe1e o3effi oe2f3l oe2gl oe2gr 2oeh oehe4n3 oeh3ri 2o1ei oe4is oe5isch. 3oe2ko oe2kr oe2l 3oel. oel3an oel3au oel5ein 4o3elek oel5ent oe3ler oel4fei oelfen4 oel6f5end oel3in oel4kle oel4kli oel3le 3oelm oelo2 3oelr 3oels2 3oelu 3oelv 3oelw 2oem o3em. 2oen oen5erg o3entl oentu3 oe3n4u oe3ota 2oep oepf3l o3e2pi oe4r3a2 oer4b3l oe4r3ec oe4r3ei oe4rel oe4r3e4m oe4r5ene oerer6fa oerer6fol oerer6gebn oerer4l oe6r5ermu oe5r4erz 4oerf o3erfi o3ergä oe4r3il oerner6v oer3oe o3erö oers4k oert6er o2es oe2sa oe4scha oe6schef oe6sch5ei oe6schene oe6sch5eri oe4schl oe4schm oe4schn oe4scho oe4schr oe4schw oes2p oes2s oess5che oes5ses. oe4s5set oes2t oe4st3a oe4str 4oesu oeße4n3 o3et. oe4tag oete4n3 oet4h oe3the oe2t3r o1eu oe2vo o1e2x oeze3 o1ë 2of2a of3a2d of3a2g of3är o2f3e2b o2f3ec o2f3ei o4feng o4fenk o4fent o4fenw o4fenz o4f3erb o4f3err o4f5er4sc o3fes of3eti of3eun of2fa2 off3al off3an off5eie off6eil off5erz of4f3in of4fir of4fix 3offiz of2f3l of2fo of2fr off3ro off3ru off3rü offs2 off3sa off3sh off3si off3so off5sp off3t2 of2fu off3uh off5ung of2fü 2ofi ofil5ma of3ins ofi5sc 2o1fl of2la of2lo of2lö 2ofo o2fop of3orc 2o1f2r of3rae of3rat of3rä of3sae of4sal of4s3am of4sei of4s3en of4sin of4spa of4spe of4staf of4sto ofstra6ssen of2s3u of3th oft3s 2ofu o2f3uh o2fum o2f3ur 2og o2g3ab o2g3ac og3ang og3arb og3ari og3aus og3d og3ein ogel3i4 ogen5ec ogene6ra ogener6n ogen4id ogenmas6 ogen3s4 o4g3erf ogeri4 o4g3eth ogfi2 ogge4n og2hu o3gi ogin3 o4g3ini o4g3ins og2lo og2n2 og4nas o2g3nu ogo3e o3gog og3o4ri o2g3ou og2r og3rau og3reg og2s og3sc og3sen og3si og3spr og3ste og3sti og3sy o1ha oh3alk o2h3ar o1hä o1he o2h3e2d o4h3ein o4h3eis ohen5s o4h3er4t ohe3x2 o1hi ohko2 ohkost5 ohl3a ohla4d oh3lec ohl5eint ohl5eis oh3lep ohler4 oh4l5erg oh4l5erh oh4l5erw oh3les ohlo2 ohl3or oh2lu oh3mi oh3mu ohn3ac ohn3ap oh4n3e4b oh3nee oh6nense ohn5ersa oh4net oh4nin 3ohnm oh2n3o ohn3s4k o1ho oh3oel oho4l3a oho4l3o o2h3o2p oh3öl ohr3a oh4r3el oh4rem oh4r5er4g ohr5erh ohr5erk oh4r5ero oh6rer6sa oh6rersä oh3rie ohr3im oh4r3in ohrs2 ohr3sk ohs2 oht2 o1hu o2h3um oh3w o1hy o1i2d oid3an4 o1i2m o1in1 oi4nen oi2n3i o1i2o oi2ra o5isch. o4ische o3ism o3isr oi2st o3i2ta o3i2tu o1k oka3b2 okabe4 o2kac oka3i okal3a okale4 oka4lei okalen4 oka6lens oka6lere okal5th oka3pf oker4be oke3re ok2la ok2li ok2lo ok2lu ok2o oko4pt ok2r ok2sa oks3o oks3p okt4o okto5b oktobe4 ok5tor o4kula 1okw 2o1la ol3a4br ol3abu o4l3ach o4lacke olade4n ola3ei o4l3aet ola3fl ol2al ol3a4mi ol3ana ola5st ol3a4ve o1lä ol3ät olb2 ol3che olch3r ol5da. ol4dae ol2dä ol4d3ed old5ersa ol4d5ese ol4deu ol4dim ol4dop ol4d3o4r ol4d3re ol4d3ri ol4d3ro ol4drü old3sa ol3eie ol3emb ol3emp ole2n olen3e ole3r o4l3erk o4l3ert o4l3erz o4l3ess oleste5 ole3um ol3ext ol3exz o1lé ol4fak ol4fau ol4fem olfer4l ol4fle olft4 olge4n5e ol2gl ol4gre o3li. oli3a olie4n3 oli4kan ol3inj oli4tor oli3ze ol2kl ol4kre ol4kro olk2s3 oll5ach ol4la4d ollae4 ol4l3ak ol4lam ol4lang oll5angl ol4lanh oll5ans oll5anz oll5ass ol4lau ollä2 ol4läd ol4läu oll3ec ol4leh ol4lei oll5ein ol4l3el ollende6f ol4l5er4d oll5erfo ol4l5erh oll5ertr oll5erwe ol4l5erz ol4l5ess ol4lic oll5inh ol4l5ins ol4li4st ol4loe4 ol4lo4g ol4lop ol2lö4 olls2 oll5sa ol4lum 2olo oloni4e olo5pe olo3ra ol3ort ol2ov ols2k oltai4 olta5is ol4t3am o1lu olu4th olve4 ol2y 4olys ol2za olz3ac olz3ar ol4zep olzer4 ol4z5ern ol4z5ers ol4z5ert ol4zik ol4zim ol4z3in ol2z3o ol2zö ol2zw ol2zy 2om. o4m3a4bl o4m3a4br o4mada o4m3a4ge oma3la o4m3alg omali4e om3all o2m3a2m 4oman oma4n5er o4m3ang om4anh omani4e om4anr o4m5anst o6mantei o4m3arm o4m3ar4s o4m3art omar4te o4m3a4sy 4omat o4m3atl o4m5atom o2m3au ombi4e ombu3c 2ome o2meb om3ebe o2m3ef om3ein o4meis om5eise o4mele ome3na om5ener o2mep o5mer. ome3ra om3er4h omer4ke omer4sp om5er4tr o4meru om3erz o4mesh o2m3eu o2m3ex omi4c3 omi2e o4m3inf o4m3inj o4m3inn omi3n4o o4m3ins o4m3int o4m3inv omi3tr 2omm omme4la ommu3t 1omn o2m3oa om3ope o4m3orb o4mord o4m3org om3o4ri ompani4 om3pf 2oms2 om3sk omt2 o2m3um o4m3unf o4munt o3mus omu3t o1mü 2o1na o2nab ona4be on2ac ona5ge o2nak onaler4 ona4l5in onal5l onals4 on3amb on3ann on3a4no onan6z5ei on3apo on3app on4are on4arr on4ars on3art ona2s on3asp on5atom onat4st o4n3at4t 2onä on4d3an onda4s ond5ast on4d3ei onder5ei onde6r5ers on4d3ex ondi4e on4dob on4d5ril on4d5rin ond5ruec on4d5rüc 2one o2neb on3eck o2n3ef on3ein one2l on3ela on3ele on3ema one2n o4n5ends on4eng on3ep o4n3erd o4n3ere o4n3erf oner4fa on3erg o4n3erh o4n5erke o4n3er3o4 on3erö on5ersa o4n3erz o4netu on3f2 ong2 on3ge on3gha on3gla on3gle on3go ongru5e ong3s2 on3gu 2oni oni5ake oni5de on3ido oni4enk oni4enm oni4g3a oni4ger oni4gl onig3s o4nikan o4nikba o4nikbe o4nikei o4nikf o4nikg o4nikk o4ni4kl o4nikm o4nikp o4ni4kr o4nikse onis4o 2onj on3k2 3onke onli4n onloch5 on3na on4na4b onn4an on3ne ono1 on3o4be on3ode on3ofe o4n3oke on2op on3ope o3nopt on3orc onos2 ono3t onot4h ons5aer onsch4 on4s3eb onsen5e onser5e onse4t onsex5pl onsi4d ons5ing on4spar onst4a onste4r5 on3tan ont5arm ont5auf on4t3eb ont5end. ont5erfa on4t5er4h ont5erke on4t5erl on4tho onto3e on4t5rat on3tu o1nu o2nue 2onuk on3url 2onut 2onvi 1ony on3z onz4e onze5in4 onze5r4a onzer6t5ak 2oo oo2bo oo1c oo2dr o1oe2 oo3en oo3ge ooki2 oo2k3l oo2kn ool3c oomgene6 oomo2 oo4mop o1op o1or oor3a2 oor3d4 oor5de oo4r3ei oo4rer oo2s3a oo2sk oo2s3u oo2t3a oot3ei oo2th oot3he oo2t3r oot4s3a oot4s5en oo4tur o1ö2 2op. 2opa op3adr opa3i op3akt opa4let opar4a opa6rade opa4rit op3arm o3ped o2p3ef op3eig o3pek o3pel openty4 3o4pera op3erh 3opern o5pers op3ey op2fa opf3ac opf3af op3fah opf3al opf3au op2fä op4fem opfe4n opf5ent opf5eroe op4f5erö op4fin opf3lo opf3lö op3flü op2fo opf3r oph2 op3him o4phol oph3t o1pi opi3a opia4t op3id opi5er. opi5ers. opie4r5u op3i2k opin4g3 op3lag op3lic op3lis op2ne o2pob opo4la op4pan oppe6l5in oppin4 op2p3l 3oppo o1pr op3rec op3roe op3rö 3opsi 1op1t2 opt4e op3ti 2opy o3ra. o3raa ora2b o4r3abb or3abr or3abt or3ace or3ach o4r3add or3adr 4orae or3aeh or3aet o3raeu o3raf o3rag 4o3rak. or5akad 3orake 4o3raks or3akt or3a4ku oral4bu o3rali o4r3alm o3rals ora3ma3 or3a4mi oran6fra oran4ku oran4kü oran4me ora4no or3app or3aps ora4rer 2oras o3rat. o3rate o3rati or3atm o3rats o4r3att 4orau o3raub or3auf o3raum o3ra3un or3aus oraus6gewae oraus6gewä oraus6sche orau4st oraus6wa or3auß o3rav o3raw o3rax o3ray o3raz o1rä or3äh or3änd or3ät or5bac orb5art or4b5inn 3orbit orb2l orb5lad or1c 4orca or2ce 4orda orda4m or4das or4dau or4d3e4b or4d3ei ord5els ord5engl 4ordes or4deu or4d3it 3ordn or2do or4dös ord3t2 or4dum 2ore o2reb or3e4be o4r3eck or3e4di or3eff o3reg or3eig or3ein or3e4la or3emp or3emu o3ren. o4renbo ore4n3i o4renki oren6nen. o6rennet o4renno ore4no o4renpl o6renpor orens4 o6rensen or3erd o4r3erf ore3ri o4r3erk ore3ro or3erp or3erw or3erz or3e4t4h o2r3eu o2rew or4fend or4feng orf3s or3g4a orge3i orgein4 4orget or3ghi 4orgia orgi5en orgi5er or2gn o1ri ori5ali 5o6rienti o3rier ori5er. or3ima ori5me ori4mi ori2n o4r3ind or5inge orin3i or3ins o4riso 4o3rit 2ork ork2a ork5erz ork2l ork3sh orkt4 ork5ta 2orm or4mad or4mam or4m5ans orm5asp or4m3eb or6m5erfa or6merge or4m5er4w orm5inh orm5ins orm5int or4m3op orm5ord orm5org orm5ori or4mum ormu4n or4m5uni or4munt ormvol4 orn5ack or4n3al or4nan or4nar or4nau orn5erf 2o1ro or3o4be or3oef or3oel o2r3ok or3oly oro3n4a or3o4pe or3opf o2r3o2r o2r3ox o1rö orp2f orrai4 or3r4e or5ren orr2h ors2 orsau4b orsau4e orsch4m or3sh orst5ob ort5aer or4tan ort5an. or4t3a4r or4t5aus or4tär orte4l or4t5eli orte4n or4tent or4tenz ort5erb or4t5er5e ort5erfi or4t5erk or4t5erl orter6lo orter6lö ort5ersa ort5er6sc or4terz or4t3e4v ort5her or4thol 2orti orti5en or4t3in or4t5obs or4t5off or4t5ori or4t5ort or2tö ortrag4 ort5res ort5rin ort5rol or4t3um 4ortü or3uhr or3umb orum4s or3un oru2r o3rus or3u2t o3rüc o1ry o2rya orzel3 o1s os2a osa3ar osa3er o4s3ami os4a3s 3o2s3ca 2osch osch5ar osch5aug o5sche osch5lei o3sco os2e o4s3eie ose3in4 ose5l4a o4s3elt o4s3er4k o3s2hi o3s2hu os4kal o2ski os2ko os3kol o2skr o2sky 1osm os4mog o2s3oe o2sö os1p os4pac o4spae o2spä os3pec os4per o3sphä o3spr os4pra o2ss oss4abb os4s3ac os4s3ae oss5ala oss5and os2sä o4ssem o5ssem. o4ssent oss5en4z oss3ep oss5er4b oss5er4f o6ssersc oss5er4z oss5esse oss3io ossmut4 oss3or oss3o4v os4spar oss3ta oss3to oss3tr osstu5er. os4s5tur os2t o4st. ost5abl o4st3ac ost5aer ost3ak ost5ang ost5ans ost5apo o4st3a4v 4ostä ost5einb ost5eing ost5einl ost5einr ost5einw ost5eis oste4n ost5engl o4s3tep ost5er6weit o4sterz ost5eur ost5her o4st3i4d o4st5ink ost3ir ost3o4b os3ton ost5rae o4st3rä os5tren ost5res ost5rot os4tu ost5urk osu2 osyri3 o2sz o3s2ze 2oß o2ß3el o4ß3en4z oßer4 o4ß3erb o4ß3ere o4ß3erf o4ß5ersc oß3is oßmut4 oßtu5er. o1t o4t3abi o2t3ad ot3aer o4t3aeu o4tagg ot3a4go o2t3ah ot3amb ot3ano ot3app otar3a ota4rak ota4ran o4t3arb o4t3arm o4tarz ot5a4str o4t3att o4t3auf ot5auge ot3aus ot3äm ot3är 2ote o2teb o4t3eib o4t3eic otei4n ote5in. ote5ina ote5ind ote5ine ote5ini ote5ink ote5inp ote5inu ote5inv ote5inw ote5inz o4t3eis ote4l3a ote4lei ote4ler ote4l5in ote2m o4t3emi ot4em3p4 o5ten. ote4na o4t5ends oten3s o4t5entb o4tentl o3ter otergene6 ot3erl oter4le o4t3erw o4t3es4s ot4est ote4str otfall5 ot4h3ac o3t4has o2thi ot3hin ot3hir o4t3hof ot3hol o2til ot3ill o2t3i2m otima4 oto3c oto3e ot3off otop3f oto4rei oto4rin oto3sz o2t1ö otra5c o3tran otra4s3 ot3rec ot3ret ot2ri ot3ric ot3rin ot3rut ot4s3at ot4sel ot2so ots3ol ot4s5tri ot4s5tru ot4strü ott5akt ot4t3eb ott5er6kl ott5er6lo otter6lö ott5erwä ott5rei ot4tri o3tund ot3url ot4zae ot2zä otze4d ot4z5er4k oub2 ouch3e ou3chi ouchs4 ou3et ouf3f4 ou3f2l ou3g4a ou2ge o1uh ou3is. ou4le. ou4lel ou4les ou2li o1um ou2n o4und oun4d5ei o5undso o3unf oun4ge. oung3s4 oure2 ou4r3et ourme4 ourmet5 our4ne. ou3sa ou3s4i ousi4e ous2t 3outf outli4 3outp out3s4 outu4 o1ü 3o2val oviso5 2ovo 2ow o3wec ow3ef o4wer. o2wh ox2al 2oxe ox3ele o3xi. 3o2xid ox3l ox2od o2x1u ox3v 1oxy 2oxy. o1y2o oy3s o3z2a 3o2zea oz4en ozen4ta ozes4sc o3zi ozon3a órd2 ö3ba öbe4la öbe4li öbe4lo ö2b3le ö2br ö3che ö2ch3l ö4chr öchs4t öch6stan öch6st5ei öch4st5r ödi1 1ödu ö1e 2öff. öf2fa öf2fl 2öffs öf1l ögen4s ögens5a ögens5e ö2gl ö2gr ög2s ö1he öhe2n3 öhle2 öhlen3 öh4nef öhre2 öh3ri öh2s ö1hu ö1i öi2g ö4ische ö1ke 1ö2ko ökos2 ö2kr ök2s 1öl. 1öl1a2 ölas2 ölb2r 1ö2le öl3ei öl3em öl3ent ö3ler öl4f3ei ölfen4 öl4f5end öl4fli 1öli öl3im öl3in öl4kle öl4kli öl3le ölle4n3 1ölm öl4nar ölo2 öl4ple 1ölr 1öls2 öl3tu 1ö2lu 1ölv 1ölw 2ölz ölz2w öm2s önizi5e öntu3 ö1nu ö3o2ta öoti3e 2öp öpf3l ör1a2 ör2b3l ör1c ö2r3ec ö2r3ei ö2r3e2l ö2r3e2m öre2n ö4r3ene ö4r3ent öre4rer ö4rer4fa örer6fol ör6erfor örer6gebn örerin6t ö4r3er4l ö4r5ermü ör3ess ör2f3l ö1ri ö2r3il ö2r3im örner4v ör1o2 örs2k ö1ru2 ö4r3une ö1s ö2sa ö4sch3a ö4schef ö4sch5ei ö6schene ö6schent ösche4r ö6sch5er6f ö6sch5eri ö4schi ö4sch3l ö4sch3m ö4schn ö4sch3o ö4sch3r ö4sch3w ö4s3ein ö2sp ös2s ös4s5che össe4n3 ös5ses. ö4s3set öss3t ös2t ö2st3a2 ö1ß öße2n3 öß2ti 2ö1t ö2t1a öte2n3 ö2t1o2 ö2t1r öt2sc öt2tr öwe2 öze3 özes4 1pa 3paa pab2ä pab4lu pab4ru pab4rü 2pabw pach6t5er6 pa3e2b pae4d5er 2paeh pa3ell 2paen pa3erf p3aerm pae2s 2paet pae6terb pae6t5er6k paet3h pae4ti pae4tr paet5s pa3fl pa3fr pag2 2pa3gh pa3ho pa3ke pa3kl pak4to 3pa3la pa4lar pala3t4 3palä 3pale pa3l4i pal4mae pal6m5ast pal4mä pal4m3o 2palt pal4tal pal4teb pal4tei pal4to pal4t3r pa3mi pa4n3at pa4nau pan3d4a pan5de pan5enz pa4neu p2anf panga4 5panier 3panik pa4nisl pank2 2panl pan4nar pan4n5e4b pan6nene 3pa2no pans2 pan3sl 3pan3t4h 3panto 4p3antr 3panz papieren6 papie6r5end pap4pr pap2s papst3 para3b 3parad pa4rae pa4r5aff par5akt 3param pa4rant 3paras pa2rä 2parb 4pare. pa3ree 4paref par5ein 4paren. 4parer parer6geb pa3reu 2parg parge4l5 pargel6d pa4r3id par5ins par4kae par4k5am par4k5au par4kop par4k3r par4kue 2parm par3ne pa4rod pa4rof 3parol 2parp2 2parr 4parsa 4parst 4parsu 4parta par3t4e partei5 parter4 3party 2paru pa4rue 2parv 2parw par3z2 pa4scha pas5chaf 3pasi pa3spo pa3spr 5passa pas4sam pas6sein pas6sene passer4 pas6serg pass5ersa pass5ersä pas6s5ert pa5ssig pas4sp pa2ßu pat2c pat4e2 4patel pa5ten 3pati pat3sa 4patz. pa5tzere 2p3auf pa3uni pau3sa 4p3ausl 4p3ausz pay2 3pazif 1pä päck5er pä4d3er 2päh 2päl 2pän 2p3ärm pä2s 2pät pä4t3e4h pä4t3ei pä4t5ent pä4tep pä4t5erb pä4t5er4k pät3h pä2t3i pä2to pät3r pät3s4 2pb 2p1c p3ch p3ck 2pd2 pda2 pdi2 1pe pe2a pea2r pea2s 2p1e2b 3pech. pech3e ped4a pe5dan pe4dri 3peel 2p3eff 2pefr pe4gal pege4l3 pe2gn pei1 4peic 2peig 3peil pei4l3a pe3im 4peis peise5i 3peits 2pek p2el pe4l3ab pe4l3ac pe4l3ae pe4lai pe4l3au pe4l3ax pe2l3ä pelb2 pel3d pe4l3e4h pe4l5ei4c pe4l5ein pe4l5ei4s 4p3elem pel5end pel3er peler5e peler6sa pe4l3et pe4leu pel3ex pel3i4d peli4n pel4inh pe4l5ink pel5inn pel5int pelk2 pe4l3ob pe4l3oe4 pe4l3or pe2l3ö2 pels4 pel5sta pe4lut pel4zap pena2 pe4nau pe2nä pend4a pende6l5a pe4n3en penen5e pen3f pen5inn peni4s peni4t penk2 penn4i pe2n3o2 pens4e 3pensi pen3s4l pen3sm pen5s4o5 pens4p pens4t 3pensu pen3ta 4pentw pen3u2 penz2 3pep pept4 pe3ra 4perad pe4r3ae pe4r3ak pe4r3as pe4rau pe2r3ä pe4r3e4b per5eig pe4re4l 4pergi perik4 pe5r4io pe3rit per6l5a6sc per6l5aug 3perle pern5en per3ob per3oe pe3ros perra4 per4rae4 per4r5an per4rä4 perr5eig per4ric per6rieg 4persio perte4 perwa4r per4zeu pes2a pese4n3 pe2s3s2 pe4st5op peten6z5a pet2r 2pe2x 2pey peze3 1pé 2pér 2pf. p2fab pf3abe p2fad pf3aer pf3aeu p2faf pf3ai p2f3a2k pf3ame pf3ans pf3ant p2fa2r pf3arb pf3are p2f3as p2f3aß p2fau p2fäh p2f3är p2f3äu 2pfe. p2f3e2b p2fef p2fei pf3eig pf3eim pf3ein pfe4l3i pfe2m pf3emi p2f3e2p pfe4r3a pfe6ran p6f5ereig pfer6gebn pf5erpro pfer6prob pfer6zeu p3fe2s3 p2f3e2t p2f3e2v p2fex pff2 pffa3b p2f3i2d pf3inf pf3inn p4f3ins pf2l pf3lad pf3lag pf3lam 3pfleg pf3lei pf3lie pf3lin pf3lis pf3los pf3lös pf3luc 4pfluem pf3lus 4pflüm pf3ly p2f3o2b pfoe2 pf3oed p2f3of p2fom p2fo2r pf3orc pf3ori pf3orn p2fö2 pf3öd pf3ran pf3rän pf3ris pf3rob pf3roe4 pf3ros pf3rö2 2pf1s2 pf3s4e pf3sl 2pft pft4r p2fuh pf3uhr p2f3um 3pfusc 2pg2 p3gl pgra4d 1ph 2ph. phack3 4p3haeh pha3el 4phaer 2p3hah pha3k phal4ta phalte4 phal6t5es phaltest5 p3hand pha3s pha4tr 2phau2 phaus3 2p3häh 3phän 2phb 2phd phebe4 phebel5 2p3hei phen3d4 phe4n3e 2phf 2phg phik3a phi4kan 3phil phi4la phir3 phit3e 2phk ph2l 2phm 2phn p2ho. ph3oed phori4e ph2r 2phs pht2 4ph3the phu3t 2p1hü 2phz 1pia piab2 pia3k pia5ka pi4an pia3p2 pi2ar 4pi3ce pich3o p2id pie3b2 pie4gl pi2e3i pie4l3a4 pie6leis pieler6ke 3piep pie5rae pie4reb pie4rei pie4rem 1pig 1pil pil4zer pil4zi pil4zw pi3nal pi3nas pi3n4at 2pind piner4 pi4n5erf 2p3inf 3ping pingen4 ping5er pini5d 3pinse pin3sk pins4p pi3n4um pi2o 2pioi pi3on. pi5o4n5al pi3ons pi3onu pi3os 1pip pi4pel pi3ra 5pirate pi3ri 3piro 1pis 2pi3s2k 2piso pi2ss pis4st pita6l5ent pite4l3 2pi3t2h pit2s 2pitz pit4za pitz4e pi4z3in 3pizz 2pj 2p1k2 pku2 pkur3 1pl2 2pl. p3lab 2p3lad pla2q p2lau pla2y p2laz p3lea ple3c p2leg p2lem ple3n4 4p3lere p2leu p2li 2p3lig plin4a p2lo 2p3lok plo4min plo3r p2lö 2pluf plu3r plü2 2p1m2 p3ma p3mö 2p1n pnoe3 1po po1c 3pock 3pod po5e4ben po3ems po3erb po3erh po3ets 2p3off 2poil po2in pok2 3pol po4l3an po4l3au pol4d3a pol5ein pol5eis pol5la polla5d pol5le polo3p4 po4lum pol3z2 pome3 pom4ph p2on 2pond poni4e pont2 3poo po3o2b poo4len popa2 po4p3ak po4p3ar po4phi po2pi po4p3la po4p3li 2popt po3rad po3ral po3rat po3rau por2ä po3rär pori4e por4tae por4t5ak por4tem porter6l porter6sa por4t3h por4t5is 5porto. 5portos 5portra por6t5raeu por6t5rat por6t5rau 5porträ por6t5räu por4t5re por6t5ric por4tro port5sz po3ru pos2p po4stab po4stad po4stae post5a4g po4stan po4stap postasi6 po4st5au po4stä po6st5ein po4stem po6sterd po6st5er6h post3h po4st5ra po4st5re po4st5ri po4stue po4stü 3pota po4t3ar 3potä 3pote poti4e pot3sp pot4t3a4 pot4t3r po4t3um po3un povi2 po2we2 1pö 3pöb pö2bl 2p1p p2p3a2b p2p3ac pp3alt pp3ang p4p3ank pp3ans p2pa2p pp3app pp3arb p2p3at ppe3e pp3ein pp3eit p3pek ppe4l3a4 ppe4len ppe4ler ppeli5ne ppe2n3 pp3fa pp3fr p2pfu p2p1h pp1l p4plac p2plä p2ple p5plik pp3lis pp3lo p2p3oe2 p2p3oh p2p3o2p pporter6 p2p1ö2 ppp2 p2p3ra p2p3rä pp3rec p4p3reg pp3ren p2p3ri pp3roe pp3rol pp3rot pp3rö pp3run pp3rüc p2ps pps2a pps2p pp3sy pp1t ppt4a pp3t4e p3puc p2pul p2p3um p2r2 3praef 5praeg 3prael 3praem 3praep 3praes 3praev 3praez pra3f 3prak 3pral pra3r pra2s 3prax 3präf 3präg 3präl 3präm 3präp prä3q 3präs 3präv 3präz 2p3re. pre6cher6l 3pred 2pre2e pree3i 3prei p3reih prei4s5c prei6s5ei prei4s5s4 prei4s5t 4preiz 3prem pr4en pren4ga pren4gl 3pres p3resu 3preß pri2e 2p3rig pri2l3 3prim pri4met 4pring prings4 3prinz 3prio3 3pris pri2t prit3a prit5er4 prit5t 4pritz 3priv 1pro 3prob probe5i 2proc 3prod 2proe 3prof 3prog 3proj 3prop 4pross 2proß 3prot pro4ta pro3te prote5i 4prott pro3x 3proz 2prö 2p3rub 2pruc 4pruec 3pruef 3prueg 4prung prun4g5l prung5sc prun4kr 2p3rut 2prüc 3prüf 3prüg p1s 2ps. p2s3ad 2psai p2sau 2psb 2psc psch4l 2pse ps3ein p2seu 2psf 2psg 2psh ps2hi 2psi psi2e psie3n4 psie3r 2p2sk 2pso p2s3oe p2sö 2psp ps2pe 2p2ss2 2pst pst3au p3ste. p3stes pst2h ps3tha 2psv 2psw 1p2sy 2psys ps2ze 2pt pt3ak pt3alb pt3am p4t3ana p2t3ar pt3a2t pt3au pt3ax pt3äs ptbau6mes p1te p2t3e2b p2t3ec p2t3e2d p2t3ef p2t3ei p4t3ele pte2m p4t3emi p4t3emp 4pten p4t3en4g p4t3ent p2t3ep p4t3erb pt5er5ei pt5ernt pte3ro p4t3erw p4t3erz p4t3eta p4teth p4t3e4ti pt3eun p2t3e2v ptgene4 pt1h p1ti pt3ide pti2n3 pt3ind pt3inh pt3ini pt3int pt3inv p2t3ir pto3e pto4mo pto4n3a pto4p3 ptor3a pto2w ptpo2 pt3rol pt3ru pt1s pts2p p1tu pt3uh pt3ums p4t3urh p4t3urk p4t3url p4t3urs 1pty ptz2 1pu pu1a 3pub2 2puc pu2dr 2pue pue3b2 3puef pue4lei puel5l pue4l3o puf4fa puf4fr 2p1uh 2puk pu4ker pu2kl pu2k3o 4pule. pu4l3in pul4s5ac pul4sp pul4s3t 3pulv 2pulw 2pumg pum4pa pumpe4 pump3f pum4p3h pum4p3l pum4p3r 4pund pun2e 3punk punk4tr pun2s 2punt 3pup pu2r3a pure2 pu4r3ei pur5erk pur5erw purg2 pu2r3o2 3purpu pu2se pus2h pu3she pu3st pu3ta pu5ter 3puts put6schm put6schn 3putz 1püf 2pül pü4lei pül3l pü2l3ö 3pünk 2pv 2pw pwa2r 1p2y py3s2 py3t 2pz 1q 2qs qu2 3qual qu4ar que4rei que4ri quer3n que4te. que4tek 3quo ra2ab r3aal ra3arb ra4b3ar 5rabbin rab4ble 4rabd ra4b3ei rabe4l ra4bep rab4er rab5erd 2rabf 4rabh rabi4t ra4b5itu 2rabk ra4b3lo 2rabn ra2br r4abro rab4rü 2rabs2 2rabt 4rabw 3raby2 4rabz 4r3acet ra6cher5ei ra6ch5erf ra6ch5erh ra6cherk ra3chi ra4ch5in racho4 4rachs rach5sk rach6t5er6h rach3u 3racr r2ada ra4dac ra4d3a4m ra4d3an 4radap 3radar r2ade rad5ein 4r5a4del. rad5ende rad5enz rad5erk ra4dern rad5ers 3radf 3radh r4adi 3radio 3radiu 3radmu 3radp ra2dr rad3ri rad4sor 3rad3t4 3radw ra2e raech4s r2aed 2raeg 2raeh ra3elf ra3elk ra3elr ra3els 4raem 4raenk r3aepf 2raer r4aer. ra3erk r3aerm 3raers rae4sc raes4s raes5sc rae3te raete5i 3raetl 4raeue 4raeul 4r3aex rafa5els raf5ahn rafe2 ra4f3er raf3la raf3lü raf6t5erz raft3s4 rag2a rage5st 4ragg rag4le 2ragm ra2g3n 3ragou rags3a rags3p rag4stä rag4str 3rah. rahle4n 3rahm r3ahn ra3ho rah4t3r rai4c rail4l ra3ims ra3ind 1raj 4rakad 3rakan 3rakat 2rakk ra3k2l ra4kre 4rakti rak4tin 4rakts 3rakue 3rakü 2rakz r4al. rala2 ral3ab ral3ae ral3ag ral3ak ra5lamp ral3as ra2lä ral3b2 ral5bl ra4lel ral5ents ra4l5erb ra4l5erl ra4l5erm ra4l5ern ra4l5erz 2ralg ra4l3id rali5er. rali5ers ra4l5ind ralin6de ralin6ge ral5in6sp ra6l5inst ralin4t ra4lin4v ralk2 r3alk. 2rall ral3la r5al4leg 5rallei 4rallt r3allu r3allü 3rally 4r3alm. ra2lo ral3os 3ralö r3alp. 4ralpe 3ralq 3rals4k rals5tuer ral6s5turm ral6s5tür ral4t5ak ral4tem r4al3th 2ra2lu ral3un 3ralü 3ralz r3amal 2ramä ra4mei 3rami ram4mab ram4ma4n ram4mas ram4med ram6mens rammer5 ram6m5ere ram6m5erk ram6m5erw ram4mit ram4mor ram4mu ram4p5le rams2 3ramsc 4r3amt ramt4s ran5ade ra4nae r3a4nal ra4nan ra4n3a4r ra3nat ra4nau r3a2nä 4ranb ran4ce. 5r4anda. 5randaa ran6d5ala ran4d5as ran6dau. r4anden ran4dep ran6d5ere ran6derh rand5erke ran6d5erm ran6d5err ran6d5ers ran4dob ran4dre rand5se 4ranei r3anek r4aner ran5erk ra4n5erz ran4g5an 4rangeb rangs4 rang5sk rang5sp rani3e r3a4nil ran4kr 2ranl 2r3anm r4anmi r3anna ran3ne ra4nod ra4n3oe 4ra4nom 2ranp 2rans r4ans. ran5skr 4ransp ran4spa 4ranst r4ant. ranti4e 4r5anzah ran4zar ran4z5er 4ranzu 4ranzü ran4zw ra4par 4rapf ra4pher ra4pok ra4pos 4rappa rap4pr 4r3a4pri 2r1a2q r1ar r2ara ra4r3ak ra4r3an 4rarb r2ard r2are 3rarei raren5e rar5erh ra4r3et rar3e4v r2arf ra4rid rari3e ra4r3in ra4rist 4rarm rar4man ra4rom raro4t rarot5i r2arp 4rart r2aru r2arv 4rarz rar3zw ra1s r2as. ras2a ra4sae ra2sä ras4be ra4schl ra4s3eb ra4s3el ra3she 4r3as4ph ra3spi 4rass. rasse4n5 ra4stä ra4st5ei ra4stel r3asth ra4sto ra5stra ras5tri 3rasur 4r3asyl 2raß r4at. r4ata ra3te. ra4t3ei 4ratemg ra6t5en6te ra4t5erd 4rathl ra4tid rati4e rat5inh 2ratl 4r3atla r3atmo ra4toe r3atom rat4or 6ratorge ra4t3ra 4ra4tro r4ats ratsche6f rat4se rat4stä 4ratta 4r3attr ratu4ra raturen6 ratu6renz 4rau. r4aub 3raub. rau4ban rau4bel rau4bri r4auc rauch5a rau5chi 2raue ra3ueb raue4n rau4ere rau5eren raue4r5i 2rauf 4raufb 4r3auff 4rauf3l 4raug4 r4auh 2rauk r4aum 5raumab rau4mae rau4m5a4g rau4man rau5me. rau6ment rau5mes rau4m3i r4aun rau4nal rauner4 rau6nerz r4aup 4raur 4raus. 4rausb 3rausc rau6scher rau6schn rau6sch5r 4rausd rau4sek 4r3ausg 4raush 4rausl 4rausr rau5sse. rau5sses 4raust raus5tr 4rausv 4r3ausw rau5ße rau6t5ent 4rauto rauto6ri rau4tra rau4tro raut5s 1raü 2rax raxi2 raxis3 r3axt ra2za räch4s3 1r2äd 2räf rä3fr 2räg rä4g3ei 2räh 2räm 3rän. 3räni 3räns 2räp 2räq 2r1är r2är. rä3ra rä3ro rä2sa rä2sc räs2s räs3sc rä3te räte3i 2rätz rä2u 4räue 2räul räus4c 4räuss 2räuß 2räx 2rb rb3abb rb3abe rba4del rba4lin rba2m r4banf r4b3ang r4b3ant r4barz rbb2 rbe5erf rbe5eri rbe5ert rbei3d4 rbe5inf rb5einh r6belaeh rbe4lan rbe4lau r4beläh rbe4ler rben4ac rbengene6 rbe5rae rber4ei rber6en rberin6t rber5k rb5erke rbe3ro rbe5rum rbe3sl r2b3im r4b3inf rbin4fo rb2la r4blan r6b5lasser r4b5last rb2le r4b3le. r4b3leg rb5lein r4b3ler r4bleu rb4lie rb4lin rb4log rb2lö rb3lös rb2o r4bonk rb2r rb3ras rb3rea r5brec r6brechts rb4sam rb4san rb4sei rb4set rb4sor rb4stau rbs4teu rb4stra rb4sum rb2sz rbun4da r2büb rby2t 2rc r1ce r3cel rce2n r3che. rch3ei rchein6s r3che4n3 rchi3d r3chil r2ch3l rch5mi rch3n rch3ra rch3re rch5sp rch3t4a rch6t5er6f rch6t5erg rch6t5er6r rch6t5erw r2ch3u rch3w r1ci r3cki r1cl r1cr rcu2 2rd r2dab rd2ac rda5chu r2da2d rdaer4 r2daf r2d3ak r2d3al rd5anti rd3anz r2d3a2q rd3ara r4d3arg rd3ark r4d3art r4darz rd3a4si rd3asp rdär2 rde4al r4d3ech rdein6fl r4d3eis r4d3elb r4d3elf r4d3emp r3den rden3d4 rd5endu r6d5engen rdenk4r rden4s5a rd5enth r4d5ents rde5ono rde4r5ei rde5r4er rde6rer6g rder6folg rderin6du rderin6s r4derit r4d5ernt rder5oe rder3ö rdes4k rd5estn r5dete rd3eti rdeu4ri r2d3e2x3 rdi2e rdie5ne rdien6sta6 rdienst5ad rdin4a r4d3inf r4d3ins r4d3ira rdo4be rdoe2 r2d3o2f r3dom rd3oss rdost3 rdö2 rd3öst rd3rat rd3rau r4drea rd6reig rd4reis rd3ris rd3rob rd3roc rd3rol rd3rom r4drose rd3rot rd2rö rd3rum rd3run rd4s5aen rd4s3än rds2p rds2z rd1t rdt4e rdte3l rdt2s r4dueb r2d3ug r2d3uk r4d3ums r2düb 1re re4ade rea6l5erw re4amm re4amt re3at. re3ats 2reä re4ban re4bau 3rebel reb4si reb4sti rech5ar re6cherfa re6ch5erzi re4chi 4rechs rech5tei rechter6 rech6t5erh 5rechtl re3chu 4reckg 4recki 4reckz 4recot 4recô 3recy 3reda 4redd 4r3edel rede3r 2redi r3e4dik 3redip 3redu re3ebe re3el re3emu re3eng re3e4r 3refe 2reff r3effi 3refl 3refro rege4l5a rege4l5ä 2r3egg 3re3gi re2gn 2reh re4hac re4h3ar re4h3ei re4hel re4h5ene re4h5ent re4hep re4herf re4h5er4l rehgene6 reh3l reh5le reh3n reho2 re4h3or 3rehö reh3ra reh3ro re4hue re2hü r4ei. 3reiä r2eib rei4bar reich6s5temp rei3de 4reidec r4eie 4reier. 4reiern 4reiers r2eif 4reifel 2r2eig reig4a r5eigene 5reigeno r5eigensc 5reiger 5reiges 5reigew 5reigru r4eih rei4kab reil4a 4reils 4r3eilt 4r5eimer re3im4p rei5nalt 4reinan 4reinb rein4de rei5necke. 4reinf 4reing 4reink 4reinm 4r3einn 4reino 4reinr re5in6sel r5einsp re3in4v 4reinw 4reinz rei4sal 6reisant 4reisar 6r5eisenb rei6s5ent rei6s5erk rei6sers 4reisf 4reish 4reisl 4reisr 4reisu 4reisv 4reisw reit3s4 rei6zell rei6zene rei4zwi 2reke 4rekk rekter6z rek4tin rek4top rekturin6 2rekz 2r3elb rel4e relea4 4re4lef re5lei 4r3e4lek 4r3elem re4lend r4elev 2r3elf re4lim 4relit 4r3elix rel4lar rel4l5ei 4r3elsa 4r3elst 2r3elt 2relu relu4d r2em r4em. re4m3a4b re4mau 2remä 2remb rem4da re4m3ei re5men re6m5erei re4m5er4f re4m5erl 4remeß 4remig r4empe 4r3empf 4rempo rem6s5tel rem4str re4mul r4en. r4ena rena4be re3nad re4nan 4renarc ren5aue 4r5endab ren4dan rende4b ren6d5erk ren6d5erm 4rendg 3rendi ren3ec ren5ende re4nep 4r5energ ren5erk re4n5erm ren4erw 4renexe 3ren3f ren4gad 4rengag 4rengp 4rengs 4renhis re4nid re4n3im 4renju renk4lo renk4r ren4nar ren4n5e4b renn5ec ren6nene 6rennen6n ren4nes 4renng ren4n5in 3reno re4nop re4nos rensau4 rensch4 4r5ensem ren6serg ren6sing ren5s4kl ren6spat 6renstip ren6s5tri 4r3entd 6rentera 4r3entf 5rentfo 4rentgi 4r5enthä 4r5enthu 4r3entl rentmo4 ren6tric 4r3ents 5rentss 4rentw 4rentz 4renue 4renumg 2renü r2enz ren4z5ar ren6zerg ren6zer6l renz5ertr ren6zer6w ren4z5in ren4zut ren4zw 4renzym re3ou 3repe 4r3e4pen re3pf 2repi re4pis 4r3epoc 2repp 3repra 3reprä 4repren 3repu r4er. rer3a4b re3rad rer3an 4r5er4bie 6rerbreg 4r3erbs 4rerdb 4r3er4dr rere4d re4r5eid 4r5ereig 4r3e4rek re4r5ent re4r3ep re4r5ers re4r5erw re5res r3erfa 4rerfah r3erfo 4rerfol r6erform rer4fue rer4fü 4r3ergä 6rergebn rergene6 rer4gom rer4gri 4r3erhö r2eri re4r3id re4rim rerin4s rerin6ter rerk2 rer4kan 5r4erki 5r4erko 5r4erkre 5r6erlaen rer4lan 5r6erland 4r5erlau 5r4erlän 5r4erli 4r5erloe 4r3erlö 4r5ermae 4r3ermä 4r5ermit rer6mued rer4müd rer4nae 4r3er4nä 4r3er4ni 4r3erns 4r3ernt rero4b 4r3erod rer3o4v 2r3er2ö r3erre 4rer5reg rer4rei 5rers. rer6sätz rer4seh rer4sto 4r3er4su rer4tei re2ru rer4wac 6r5erwerb 4rerzae 4rerzä rer5ze. 5r4erzei rer5zen rer5zes 4r5erzie 5r4erzu 5r4erzü 5r4erzy r2es r4es. re4san re4sau rese4h 3reser reser5e 3rese4t re4s3in re2sk re4s3of 3resol 3reson res4po re2ss res6s5erf res6s5er6m res6s5erp res6s5er6w ressgene6 res4spa 3rest. re4stab 5re5ste. re4stei rest5ein 5resten4 re6stent re4steu re4stö re4stra rest5rau rest5ric 3rests 2resy 2re2ß1 reßgene6 4r3etab re4t3ak 4r3e4tap 4retat re4tho ret5rad re4t5rol ret4tan rett3r rett3s4 reub2 reu4eri reu3g2 2reul re3ums re3ung 4r3eunu 2reup 2r3eur reu4z5ei 2reü r3eva revil4 rewa4r re2wi rewin4 2rewo 2r1e2x1 2rey 1ré 2r1f rfa5chu rfae4s rfall4s r2fap rf3aue rf4äh rfbil4 r4fense r4f3erd r4f5er4la rfer4le rf4es rffa3 rf3fe rff2r rfi4le. rf3inf r2fj rf2l r4fland r4f3lic r3f4lu r2f3o2b r2f3o2f rfolg4s rf2r r4f3ras rf3rat r4f5rauc rf4sam rf4sat rf4säu rfs3id rf4spa rf2su rf2u 2rg rg2ab r2g3a2d r4g3aeh r2g3ah r2g3a2k r4g3alb r4g3alp rga4me. rg5amei rga4mes r5gamo r4g3amt rga4ner rga4nin r2g3ap rg5art. r4g3ask rgast5a rgast5ei rga5stes r4g3auf rg3aus r2gäh rgd2 rge4ant r4g3ech r4g5eise rge4l5ac r4g5elef rge4l5er rgel5in rgene6rae rgene6rals rgene6rä rgen6gel rgen3t4 rgen4zi rgen4zw rge4ral rge6rang rge4rau r4g5er4fa rgerin6t rges4a r4g5e4tap rgg2 rgi5er. rgi4sel r4gl. rg2le rg3le. r4gled rgleich6s5 rg3ler r4gleu r4glig rg4loec rg4log rgn2 rg3nac rg3nar r2g3ni r2gno rg3nom r2g3ny r2g3oa r2go2b rgoe2 r4g3oed r3gog rg3ora rgö2 r2g3öd rg2r rg5raen rg3rai r4g3ral rg5rand r4g3rän r4greg r4g3res r4g3ret r3gro rgro5ssen rgro5sser rgro5sses rg3rüs rg3sae rg3s4en rgs2i rg3s4pe rgs4pi rg3spr rgti2 r1h2 2rh. r2ha. 2rhaa 2rhae 2rhah 2rhak 2rhal rhal4b3 2rhan 2rhar 2rhau rhau4st 2rhä r2he. 2rheb 2rhef 4rheit 2rher rhe4r3e 2rhi r2hod 4rhoel 2rhof rhof3s rho2i3 2rhol 2rhot 2rhöl 2rhs 2rhue rh4un 2rhü 3rhyt ri5alei ri5a6l5erw ri5alim ri5a4lin ri3am. ri3ams ri3ang ria3p rib4bl rib2l ri3ce rich3a ri5chlo rich5s4k rich4sp 5richtl richt6s5e richts5o ri4con ri4dar ri4dau ri4dea 4r3idee ri4d3e4l ri4dent ri4denz 4ridol 2ri2dy r2ie rie4bac rie5blo rie4b5ru rie4b5rü rieb6ste rie4fem 4riefm rie4fr rie5g4r rieg4s3 ri2e3i2 riein3 ri3el. rie5la ri3ell ri3els rie5n6ade riene4 riener5i rie5rad riere4n rie5res rie3ro rie3sa ri3eur ri2fa rif3an ri2fä ri4f3ei ri4f3er rif6f5en6d rif4f5er rif4fr ri4fin ri2f3o rif4t5er 1r2ig riga3e 4r3i4gel ri4g5ene ri2gl rig3la rig3lä ri3g2o ri3i2 ri2kä ri4kin ri2k3l ri2kn ri4kone ri4kor ri2k3r ri4kun rila4b rilf2 rille4n5 2rima ri4mag ri4m3au ri4me. 2rimm 2rimp rim2s3 r2in. ri3na 4r3inan 4rinbe 3rinde rin4dia 4r3indu ri3n2e rine3i rinein4 2r3inf 5rinfre r2ing rin4g3a rin4gei rin6g5erw ringe6se rin4gle rin4gor rin4gr 2r3inh 5ri5ni. 4rinit 2r3inj rin4kal rin4kl rin4kn rin4ko rin4kri 2rinl 6r5innenm 4rinner r5innere r3inno 4r3innr 4rinnta rino3 2r3in2q 2rins2 r4ins. rin4sig rin4sol r3insp 5r4inspi r5insti 3rinsy rin4t5an 4rinte rin6tent rin6ter6g r4intr rin4t5re 2r3inv rin4vas rio2d rios2 rio4sti 2r1ir r2is ris2a ris3ap ri6schei ri4schl ri4sch5o rischoe6 ri4sch5ö4 ri4schw risen3 ri5sie 3risik 3risk ri3s4ko 4r3isl rismu4 4risol 4risom ri4s3pi ri4s3pr ri2ss ris4sau ris4ser ris4sp ris4ste ris2t rista4 rist5ab rist5erf rist5ers ristes4 ri4st3r 1ri2ß1 4r3i4tal rit5ant 2ritr rit4ra ritre3 rit3s2 rit4ta ritt5au rit4tei rit4t3h rit4to rit4tr ritts5o 3ritua r3i4tum rix1 1rí 2rj 2r1k rka4b5l rk3adr r2k3a2g rka2k rk3aka rk3all r4kanl rk3are rk5assi r4k3att rkauf6st r2k3e2d r4kelem rke3lo rke2n rker4he rker4le r4k3er4w rk3ide r2k3im rk3inh rk3i4n3i rk2le rk2lu r4kneb r4knut rk3o4be rko3ef rk3o4ri rk2os r2k3ou rk2r rk3ren r3kri r4k3rom r4krou rk4s3al rk4s5cho rk4s5ein rk4sel rks5ern rk4s3in rks3or rks4pen rkstati6 rk4stoc rk4s5tor rk4s5tur rk4t3ak rk4t3an rk4tas rk4t5eng rk4t5ent rkter3 rk4t5erf rk4t5erg rk4t5erk rk4t5erl rk4t5ero rk6t5ersc rk4t5erw rk4t5erz rk4t5eta rk4t3in rk4t3o4b rk4t5rad rk4t5rat rkt5rei rk4t3ri rkt4sor rk4t3um rku2n rk3una rk3uni rku4ra rku4sa rku4s3t 2r1l rl2a rlage4n5 rlag4s5t r5land rlan4d5i r2l3ar rl4au rl1c rle2a r3lec r5lei. rle4st r3lex r3li rli4ne. rli4nee rli4nem rli4nes rlk2 rlo5che rloes5s rlog5in r3lor rloun4 r3lö rlös3s4 rl4spr rl4s3to r3l2u rlust5a rlu6ster rlu4st5r rlz2 2r1m rm3ade rma4leb rm3ami r4m3amo rma5n4e r4m3ank r4manl r4m3anp r4m5antr r4m3aph r4m3a4po r4marc r4marz rma5s6sens rma5sses r4matta rm2ä rm3d2 rmd4e rm3eck rme5erh rme5erz r4m3ei. r4m5einb rme5inha rme5inse rme5in6to r4m5einw rme4ner rmens4 r4m5entf r4m5ents r4mentw r4mentz r4m3erb rmere4 rmer6fah r4m5er4fo r4m5erfu rmer6geb r4m3erh rm5erkr r4m3erl r4m5er4na r4m5ernä r4m3erp r4m5erse r4m5er4ze rm4es rme3s4a rme5sta rmet5as r2mex rmid2 r4m3i4de r3min rmi6nanz rmi4nar rmi6neng r2m3i2r rmi6schw rm3iso rmiti4 rmm4a rm5man r4m3obs rmo3el rm3ofe rmo4nau rmo2r rm1p2 rms2 rm3sk rm5sta rm3ums rm3umt r4m3una r4m3unf rmu3ta 2rn r1na r3na. r2na2b rn3abi r3nac r4nacc r4n3ae4s r4naho r4n3ala r4n3amt rna2n rn3an. rn3ana rn4and rn3ani r4n3ano r4n3anz rn3app rna2r r4nare r4n3ari rn4arr rn5arra r4n3asp r4n3a4st r4n3atl rnat4s3 r4nauf r4naug r4naus r2n3ä2s rndi4e rnd2r rne4bl r4n3eff r3n4eid r4n5elfe r4n3e4ma rne2n r5nen. r4n5ends r4n5ener rneng4 r2n3e2p r4n5erbi r4n5er4fa r4n5erfo r4n3erg r4n5erhe r4n5erke r4n5er4ku r4n5er4le r4n3ert r4n3er4w r4n3erz rne4t3a rne4ter rne4to rne4t3r rnet5t rne3u4f rn3f2 rng2 r2n3i2d r2n3in rn4ina r3n4ing rnk2 rnk4a rnn2 r2n3oe rnoe4d r3noet rn3oly rn3ope rn3opf rn3orc r4n5orde rn5ost. rn5osti r4n3ott rn1ö rnö2d r3nöt rnroe4 rnrö2 rns4a rn3sä rnsch4 rnse4h5a rn3s2l rns2p rns2z rn3te rnte3e rn3tr r1nu rn3ur r1nü r1ny rnz2 1ro. ro3adr r5oberf ro4berg ro4berl 2robj r4obo ro4b3o4r ro4bre 2robs ro3ch 3rock. 3rocks rodi4e rod2r roe4bl roe2f r3oefe r4oeh 4r3oek 4roel. ro3ela r3oelf r3oeli roel4la4 3roemi ro3en. ro3end ro3enf ro3enz ro3erf ro3erh ro3erz ro3eta 3roetu ro3ev ro3fa ro4fen. 4roff 4rog. 3rogg ro4h3in roh3l4 ro4hoe 3rohr roh4rer ro3ir ro3iso rok2l r3okt ro3le ro4liv rol4lac rol4lae rol4l5a4g rol4lan rol4las rolle4 rol6lerg rol6ler6w rolli4n rol6lini rol4loc rollor4 rol4lu r4olo ro4lym 5roman. 5romane rom4anf 4romb ro4mei romen5e rom5ent ro4mer rom5erk rom5ers 2romn r2on ron4au rond4a ro4n5erb roni4e ro4niki ro4niku 4ronk ron4tae ron4t5an ron4tar ron4tau ron4tä ron4tel ron6tend ron6terf ron4th ron4t3r ron4t3u ro3ny ro3o2f r3oog 3room 4ropf ro3pn ro3p4r 4ropt ro3rad ro3rae ror3al ror3an ro3ras ro3rau r4o3re 4r3orga r4oro ro3rol ro3rom ro4rop r4oru ro3r4ue ror2ü ro3sa rosa3i4 r4ose 3roset 3rosh ro3s4i 3rosin ross5al ross5ei ross5enke ro5ssent rosseri6 rosses4 ros4s3t ro3sta 3rostb ro4st5ec ro4st5er rost5re r3oszi ro4ß5en4k ro2ßi ro2ßu ro4t3ak ro4t3al rot5art ro2tä ro4t5en4d ro4terl rot5ers ro4thu ro4toe rot3s2 rot4tau rot6terk rot6terl ro4t3um 3roule roulet4 3rout 3rowd r4ox. ro3xa r4oxk rö2bl rö2du 2r1ö2f 1röh 2r1ök rö2l r3ölf röl4la4 r3ölp 3römi r1ör 3rösl 3rötu 2r1p r3p2a rpe4r3a rpe4r3e rpe5re. rpe4r5in rp2fo rpi2p rp2l r2p3li rpo4str rp2s3i rp2s3t rp3t 2rq 2r1r rra3b4r rr2ac rr3ack rr2ad rrade4 rra4deb rra4den rr3aem r4r3akt r3ral rra4ss rrat4st rr5aufg rr5aufl rr3äm rr1c r3reh rr5einr rrena4 rre4nob rren3s4 rren4za rren6z5er rre4pa rrere4 r4r3er4h r4r3er4l r4r3esk rre4ve r4rezi rrg2 rr4hen rr4hos rrid4 rri5er. rrie5r4e rri5erm rrik2 rri4tan rrk2 rr4nau rr3obs rro3el rroe4s3 rron3 rro4re r4r3osz rrö2s3 rr2th r3ru rr2ue rrue3b rruecker6 r4rur r3r2ü rrü3b rrücker6 rrz2 2r1s r3sabo rsa5chu r2s3a2d r4saem rsa4lin r4s3amp r4s3amt r4sanf r4sanga rs4ank r4sant r2sap rs4ark r5s4au. rsau6erl rs4aufe rsau4g rsau4m rsau4r rs4aut rs2är rscha4o r4sch5e4b rscher5ei rsch5ort rsch4ue r4s3ebe rse2e r4s5e4mis rse5n4al rse4ne rsenk4r rser5ei r4s3erh r4s3er3o r4s3erö r4s5ersc r4s3erw r4s3erz r4s3eth rsex4t rs4ha4k r3s4ha4v r3shir r3s4hor rs4il rs4kal rs4kel rs4kie rs4kis rs4klav rs4kle r3skul rs5kun r2sky r3s4lip r3s4mog r3snob r2so2b rs2om r4sord r4s5ort. r4s5orts rso2s rs3ost rs2p rspae5s4 rs5para rspas4 rspä3s4 r2ss2 rs3sk rs5sta rst5abl rst5ala r4s5tale r4st5ans r4stant r4st3as rs5täti rs2te rst5eindr rst5einga r4st5emi r6st5erba r6sterbt r6stereig r4st5er4f r4st5er4h r4st5er4l r4st5ero r4st5er4ö r4st5er4r r6st5er6st r4st5er4t r4st5er4w r4st5erz r4st5ess r4st5eta rst5her rst5ing r4stit r4s3tot rst5rät r4strea r4s5tren rst5ret r4stris r4strun r6stuebe rst5ums r4stübe r2sty rsui2 r4sumf rsum4s rs3umw rs4win r2sya rs4zin r1ß 2r1t r4t5a4ben r4t3abo rt3aeh r5taet rt3aff rt5agent rtag4s rt3aka rt3akk rt3akr r4talle rt5allt rt3alp r4t3alu rt3ama rt3ana rt3ang r5tank rt3ann rt3ans r4tanw rt5anza rt3arb r4t3arg rt5a4rie rt3arm rt3art rt3asp r5tat. rt3atl r4t3atm rta4to r4t5auft r4taut rt3äh rt3ärm rt3ärz rtät2 r3te. r4t5eben r3ted rte3eh rt3eff rtei3f rt3ein r5t4e5in4d rtei3s4 rte4lae rte4l5ei r4telem rte4l5en rte4ler rtel6lei r4t3emb rtem4e r3ten. rte4nem rte4ner rte4net rtenge6bi rten3s4 rt5entf rt5entl r4t5ents r4tentw rteo2 rte5rae r6t5ereig r4t5erfo rt5ergu rt5ergü r4t5erla rterma5s rter6mit r4t5erna r4t5ernä r4t5ernt rtero4 rter6öff rter6sparn rter4st rt3erz r3tes2 rte3sk r4t3e4ti r4teuro r3t4hag r4t3heb r4t3hel r5therm rt4herr rt3heu r2t3hi rt4hum r2thü r2t3i2d rti2e rti4gel rti4g3r rti4kl rt5illu r4t3i4ma r4t3ind r4t3inf rt3ope rto5pfl r4topt r4t3orc r4t3org rto4rie r4t3ral rt5ram. rt5rams r5tran. rt5rand rtra4s3 rt5rati r4t3rea rt3reb rt5reic rt5reif r4t5reis rt5reit rt5ring r4t3ris r4t3riv r4t3rob r4troh rt5roma r4trou rt5sand rtsch4 rtse4h rts5ing rt4sis rtski4l rts3or rts5treu rtt2 rtu5end rt3uh rt3umb rt3und r4tunf rt3ups rtu4rei r4t3url r4t3urs rtu2t r4t3ute rt2y rtz2 ru1a ru3a2r3 rube4 ru4ch5er5 ru5ches ruchter6 ruch6top rucht5s ruck5erho ruck5er6kr rude4a rude4l5i ru2dr rueb3r 5rueckf 5rueckg 5rueckz ru5enz. ru5enzs rue4ssi rue4sta 1r2uf 3ruf. ru2f3a ruf5erei ruf5erk ru2fo ruf4se ruf4ter ru4fum ru2gr ruhe3i 3ruhm ruh3ri 3ruin ru3in. ru3ins ru3ist 2r3ulk 2r3ulm 2rum ruma2 ru4maa ru4m5aer ru4mal ru4mar ru4mär r3umd 4rumf ru2mi rum4mei rum6mess r4umpe rum4ple r4ums. r3umt r3umw 2r3una 2r3unb 4run4d3a r4unde run4d5eb run4d5ei run6demo runden5e run4dep run6d5erf run6d5erk run6d5erl run6d5ern run6dero run6d5ers run6d5ert run6d5erw run6d5erz 4rundn run4do rund3r run4due 4rundv 4rundz runei4 4r3unem run4en 2runf runft3 4run4ga 4r5ungeh run4gei run4gel run6gerg 4rungl run4gla run4gr 2r3u2ni 2r3unl 2runm 2runn 2runr 4runse 4runsi 2runt runte4 2runw ru2p3a 2rupd ru2p3h 2r1ur ru2ra ru2r3e r2us ru5s6send. ru5s6sende russ5er 3russi 3russl rus4spa rus4ste rust5erf rust3o ru4stre ru4ß3er rut3ab ru3tal rut3an rut3ap rute2 rut3el rut5erf ru2t3o2 ru2t3r rut6scha ru3tu 2ruz ru2zw 2rüb rü4bc rü4bs 3rückg rück5sa rück5sp rück5sta rü4fet rü2fo rü4h3el rüher4 rüh3la rün3f rün3z2 rüse2 rü6ssel 2rv rve3a rve4n3e r4ventz rve3s rv2o rv2s 2rw rwe4gel r5weis r2wo. rwolf3 2r1x ry2an ry2c ry2l3e ry3st 1ryx 2rz rza2b rz4aeh r2z3af r2zak r2z3al rz3am rz3and r4z3ant rz3app r2z3ar r2zas r2zat r3zäh rz3ega r4zelem rzell4a rzelli4 rzel6lin rzen3e rzen6gen rzen6ten r4z5ents r4zentw r4zentz rz3epe r4z3erd r4z5er5ei r4z5erfo r4z5erfr rz5erfu rz5erfü r4z3erg r6z5erreg rz5er4sa r4z5ersc r4z3erw r4z3erz r4z3ess rze5ste rzeu4g5i rzeugin6n r2z3id r4z3ind r4z3inf rz3inh r4z3inj r4z3int rz3inv rzkop4 rz5oele rz2of r2z3ot rz4t3au rzten4g rzt5ric rzu4gl rzum2 r4zwar r3zwec r4zweis r4zwet r4z5wir rz4wis r2zwo 1sa. 1saa 2s1ab sab2ä 5s4abbat 3sabel sa4ben sab5erk 3sabet sa4b3i4t sa2bl sa4b3or sa2br sa3b4ru sab4rü 1sac 2sacc sa5chal 3s4ache sach3o4 sachs4 sach3t 3sack. 2s3ada sa4der 2s3adm 2s3a2dr 3saeb 3saec sa3e2d 3saef 3saeg 4s3aehn 4s3aelt s3aem 4saemte 4s3aend 3saenf 4s5aengs 2s3aep 2saeq s3aera s3aerm 3saet 3saeue 4saeugi 3saeul 3saeur 4s5aeuss 4s3aeuß 1saf sa4fe. 2s3aff sa3f2r saf4tr saft3s 3sage. sage3i 5sagen. 4s5a4gent 2s3agg sa4gio 2s3a2gr 3sags 3sagt 3sagu sah3l sah3n4a 3sahs 3sai sai2b sa3ik sai4ka sail2 sai2r s1ak 2sa2ka 3sa3kar 3saki 2sakk 3sako 2s3akt sa4kus 2sakz 1sal sa3la sa4lan sa4lar sal4at sal4bo 3sald sa4leb sa4l5erb sa4l5erk sa4l3id sali5er. sal5ins sal4le. 4s3alli 4s3allt 3salo sa4lor sal4sk sal4s3o sal4zer sal4zw 1sam sa4mae sa4map 4s3a4mat sa2mä 4s3ambu 4s3a4mei samen5s 4s5a4meri sa4min 2s3amn sa4m3oe samp4 4s3amph sam4ti sam4to sam4tre sam4tri samt5s4k s1an 3s2an. sa4nae 4sanal sa4nan sana3t sa2nä 2sanb s2an2c s2and san4dab san4dan san4d5ar san4dob san4dre san4d5ri 3s4and5s sa4n3er 4s3anfa 4s3anfä 3sang. sang4sc 2sanh 3sanie 4sanker sank4l 2s3anl 2sanm s3anme 2sa2no 2sanp 2sanr 2sans san5sp 4s3antr 4santw 2sanw s1ap sa2pe 2sapf sapi3 sa4pos 2sap3p s2apr 2s1a2q s1ar 3sar. s2ara 2s3arb 2sarc s2ard 4sarea 3sarg. s4arge sar4gl s4args 4sargu 4sa4rit 2sarl 2sarm 2sarr s2ars 2sart s2a2r3u2 s2arv s2arw 2sarz sa4sie 2s3a2s2p sas6sest sa5s4set 4s3asso 2s3a2sy 1sat 3sat. satan4 sa4t5ant sat3ei 4s3a4tem 2s3atl 2s3atm sa4tol sa2tr sa3tsu 4s3atta 4s3attr sat4zel sat4z5en sat4zer5 satz5ere 5satzk s1au 3sauc 3saue sau4ere sau6erste 4saufb sau5fra s2aug s5auges sau4g5la sau4gle sau4glo 3sau4g3r sau2i 2sauk 3saum saun4a3 3saur 4s3aura sauri3 4sausb 4sausd 4sausei 4sausf 4sausg 4sausl 4sausm 4sausn 4sausr 4sauss sau5sse 4sau4s5tr 4sausw 4sausz 2sauß s5auto sauto6rin s3a2xi 3saxo sa2y 1s2äb 3s2äck 3s2äg säge3i s1äh 2sähn 2s3ält 2s1äm 3säma 3säml 2s3änd 4s3ängs 2s1äp 2säq s1är s2är. s2ärg 2särm 2särz 1s2ät 1säu s4äuge 4säugi 3s4äur 4s3äuss 2säuß 2sb2 s3ba sba4ne sb4au sbau4c sbau6m5en sbe3n4a sbe3ra sber4e sbe6st5op sbi2e s3bl s3br s3bu sbue5be sbü3be 1sc 2sc. 2scab 2scac 2scaf 2scam s2can 2scar 2scas 2scat s1ce 2scei 2s4ch. 4schabf scha5cher. scha4e 4schaep 4schaeq s4chal 4schame sch5ana 4schanc 4schang 4schanl 4schans 4schant 4schanw 4schao 4schap 4schara 4scharc sch5arme 4scharo 6scharti 6schaufk 6schaufn 6schausf 6schauss 3schä 4schäp 4schäq 2schb 2schc 2schd s4che. 4schech 4schef. 4schefs 4sch5ei. 4scheim sch6ein. 6scheinm schei6se 4schemi 4schemp 6scheng. 6schentk scherin6s scher6kran 6schernt scher6trag 5scherü 3sches 4sches4s 4schex 2schf 2schg 2schh 4sch3id 5schil 4schimi 4schinf 4schins 4schint 4schiru 2schj 2schk 4schlad 6schlaed 4schläd 4schle. 4schleb 4schleh 6schlein 4schloc 4schlog sch5lor 4schlöc 4schluf 6schmaes 6schmaeß 4schmas 4schmaß 4schmäs 4schmäß 4schmed 4schmes 4schmex 4schmod 4schmoh 4schmüh 4schmy s4chn 4schn. 4schnas 4schnaß 4schneb 4schneg sch4nic 4schnum sc4ho 4schobj scho4e 4schoer scho4f sch5ofe 4schorc sch5ord sch5org sch5orte sch5ortu 4schox 4schök 4schöl 4schör 2schp 2schq 4schrad 4schrag 4schras 4schräu 4schre. 4schrea 4schref 4schreg 4schreh 6schreif 4schrep 4schres 4schrin 4schris 4schrol 4schron 6schrote 4schrou 4schrus 4schrut 2schs2 sch3sk 2scht sch3t4a scht5sp s4chu 4schuhu 4schunt s4ch2ü 2schv s4chw 4schwaa 4schwas 4schwäl 4schwec 4schweg 4schwet 4schwid 2schz 2scj 2s1cl 2sco sco2r scre2 2scs 2scu 2scy 2sd2 s2daq sdaue4 sde2a sdi2a sdi2e s3do s3ds sdue3b sdü3b 1se sea2n se3at. seaus5 seau6ss seauto4 s3e4ben seb2l sebu2 4s3echo sech6st5r 4s3echt 2s3eck sed2 sedi4e se4dik se4dit 3see se4e3i4g see3na se3end see5n4e se3enz seep2 see3ra se3erb se3erd se3erf seer4i se3erk se3ern se3err se3ers se3ert se3erz sees4k 2s3eff sef2l s3e4gal segelei6 se2gl se3gla se3glä se3glo 3segm se2gn s3e2go seg2r s2eh seh5abe se4h3a4g se4h3ak se4h5ang se4hap se4h3ar seh5ein se4heng se6hense sehen4t seh5ente se4hep se4h5erf se4h5er4k se4h5erl seh5erz seh5ing seh5int seh3l seh3na seh3ra seh3ri seh3ro 3seh3t se4h3ur se4hüb 2s3ei. 2s3eic 4s3eid. 4s5eidec 4s5eides 4s3eids 4s5eifer 2s3eig s4eih s2eil sei4l3a sei4lei 4s3eime se3imp 5s4ein. 4s3einb seinbu5 4s3ein4e seine5i seinen4 4s5einfl se5in4fo 4s5einfu 4s5einfü 4s3eing sein4ha 4s5einhe 4s3eini 4s3eink 4s3einm s3einn se5inne 4s3einr s5einsat s5einsät 4s5einsc s5einspa sein6stit sein6str se5in6ten sein6ter 4s5eintr 4s3einw 4s3einz 2s3eis 3s4eism 3s2e4it 3sekr 3sekt 3seku s2el. se4l3ac sela4n se4l5ano se4lanz se4l3at se4l3au selbst5e sel3d4 sel3ec se4lef 4s3e4leg se4l5eig 6selektr 4seleme selen5e sel5erd se4l5er5e se4l5erf se4l5erk se4l5erl 4s3elf. 4s3elfm sel5ind sel5inf sel5inn se6l5inst sel5int 4s3elix sel3k2 s2eln se4l3ob s2els sel5sko sel6ster se2lü selz2 4s3e4mig 2s3emp s4en. sena4b se4na4g se4nah sena4r se4n3au se5n4au. se2nä 5sendend 5sendens senderin6f 5sendern 5senders 5sendest 5sendet sen5eck se5neg senei4l se4nel sen5ende senen5e se4nep se6n5erei se4n5erf se4n5erk se4n5ers se4nerw se4n5ess se4n3e4v s2enf 4sengp 3s4eni se4n3im se4n3in s5en6keli sen6kero sen4kni senks4 sen3ob se4noe se4n5ott se4noz s4ensa sensch4 sen4s5e4h sen6s5ers sen4s5i4d sen4s5in s4enso senst4 sen6s5test 4s3entd 4s3entf 4s3entg 4s3entn sen6t5ric 4s3ents 4sentw 4sentz se4nun 3senva sen4zun 3seo seo2b se3of se3oh seo2r se4pen se3p2f se4pit 3seq se3ra. ser5adl ser3af se3rai ser3a4k ser3al ser3am se5rand ser5äus serb2 s5erbe. se4r3e4b ser5eck serei4f s5ereign se4r5eim se4rein ser5eli sere4m ser5emi s4eren se4r5en5e se4r5enk se4r5ens ser5enth se4r5erb serer5e ser5ersc 4s3ergä 6sergebn ser5ha s3erhö se4r3id 3serie ser5inner serk4 3serka s5erkran 5serl. s5erläs s5er4le. s5er4len s5ermah 4s5ernte ser3o4b ser3oc se3rod 4s5eroef se5roel s3eros 4s3erot 4s3eröf se3röl s4ers. sersau4 s5erschü s5erseh ser6sehn sers4k 5sersti se5r4ue serue5b se5r4um. se5rumm se3r2ü serü3b 3s4erv ses2a sesch4 4s3e4sel 4s5eskap se3so ses2p se2ss s3essa s4essel sest2 4s3e4tap 4s3ethi 4s3e4tho 4s3e4tik set3sp 3setu se3tun 3setz set4zei seu2f se3ufe se3uh 2s3eul se3um2 se3u2n 2s3eup seu2t se3ute se3uto 4s3e4van s1ex 3s4ex. 4sex4am se4xen sex2k s2exo 2sex2p sext4an sex5ti 4sext4r s4exu 2sex2z 2s1f2 s3fa sfal6l5er s3fe sfi4le. sf4la sflo2 sfu5sse 2sg2 s3ga sgang4 sga2t sgeha4 sge4h5ab sgel4dr sge3lu sge3n4a sges2 s3gm s3gr sgro5sse sgrü3s 2s1h 3s2ha. s4ha4ke. shal4li shalt4s5 3s4hamp s3hei 3shi. sh4ia 3s2hib 3s2hig 3s2hik 3s4hip shi2r 3s4hirt sh1l sh1n s4hoe. 3s4hoo 3s2ho2p3 sho4re 3s4ho2w3 sh2r sh4re sh2u shut3 sh2ü 1si si5ach. si3am. si3a4se 2siat sib2 3sic sichts5te sicker5e 4s3i4dea 4s3idee 4s3ideo si3der 2si2dy s2ie sie4b3a sie4br sie4bu si2ed sie4gl si3ell si3ern si1f2 s2ig si2g3a si2gä si4g3ei s3i4gel si2gl sig2n sig4nu si2g3r sigs2 sig3se sig3sp si4k3ab si4kad si4k3ae si4k3a4g si4k3ak si4kalb si4kana si4k5ans si6kanth si4kanw si4k3ar sik5asp sik5ass si2k3ä si4k3el si4k5ens si6k5erei sik5erfo si6k5erke si4k5er4z si2k3i2 sikin3 si2k3l sik5le si2k3n siko3n si2kö si2k3r sik3s sikt2 si2ku si2kü s2il 3silb silber5e sil4br sil3c 3sili 2s3ill si4mag 2s3imb 2s3imm 4s3impf sim4s3t 3s4imu si3n2a si5nau s3ind 4sindu sines4 4s3infe 4s5infor 4s3infr sin4gae sin4g5an sin5g6le. sin4glo sin4g3r sings4 sing5sa sing5so 2s3inh sini5er. 4s3i4n3it 3sinn. s5innenm s5inner4 sin6nerf 3sinnl 4s3inno 3sinns 2s3inq 2s3ins s4ins. 4sinso sin4th s4into 2s3inv 2s3inz si4onm si3os 3sip 2s3irr si4sam si4scha si4schl si4schn si4schu si4schw si2s3e2 sisen3 sis3i si4sin si4sis sismu4 si2so sis3or si2sp si2ss 3s4ist si4stu si2su 3sit si4tal si4tau si4tra si4t3re sit3s sit4zel sit6z5erm siv3a si4val si4van sive3 si4v5er4f si4vin siv3o2 si4vor si2vr 1sí 2sj s3ja s3jä s3je s1k2 2sk. 2skab 2skae 2skai ska3la 2skam 4skana 4skanä 5skanda 4skann 2skap 2s3kar 2skas 4skata ska4te. 4skateg s4kater ska4tes ska4to ska4t3r 2skau 2skä 2skb ske4l3i 2ske2n sken3e 3s2kep ske3ra s4ketc 2skf s3kh 3s2ki. s2kia 3s2kif s2kig 3s2kik 2skin s2kip 2skir 3s4kire s4kis. 3skiv 3skiz 4sklas 5s4klave 2skli 2sklu 2skn 2skoe sko3ef 2skoh 2skol 2s3kom 2s3kon 3skop. s4kopa sko4par s4kope s4ko4pr 2skow 2skö 2skra skraf4 2skre 3s4krib 2skro 2sk3s 2sk3t skto4 2sku 3skulp skun6dei sku4s3t 2skü 2skv 2s1l2 s3lab 3slal sla4ma sland5a 4s3lar 3slash sla3sp sl4au sla4ve sl3b s3le sle4gas sli4tu sl4ob slo5be slo5che 3s4loga 3s2low s3lö s3lu sl4um 2s1m2 s3ma smab2 sma3la s4mall sm4ar smar4k5n sma5sc sma3sp sma5sses smen4t5i smi2e smi2t3 smitte4 s3mu smue4s smusiker6f 2s1n sn2a snab2 snae4s3 snä2s3 s3n2e sn4eu sni5er. sni5ers sn4ob snue2 snus2 s3ny 1so. 1soa 3soam 2s3oas s1ob s2oba 4so4ber 2sobj so2b3l 2sobm 4so4boe 1soc so4ck s4oda sodi2 so2do so3e2b 2s3oe2d soe2f 2s3oek 2soel 2s3oe2s so3et so4fen s4off. 4s3offi 3s2oft 1sog sog2l s2oh 2s3o2he 3s4ohl sohle4 sohlen5 4s3ohng 2s3ohr 1soi 2s3okt 1sol 3sol. so3la 3solan so4l3au sol3c 3sold sol4d5er 3sole so4l3ei so4lig sol4la4 sol4l5er 3solm so3lo solo3p 3sols so3lu 2s3o2ly 1som 2s3omb some4n3 1s2on son6anz so4nau s4ond sone2 so4n3eh so4ner son4ga song3l son5ori son4s3o so1o 2s3o2pe 2s3opf 3sopo 3s4opr 2sopt 4s3orat s3ord 4sordn sore2 so4rei so4r3el so4rem so4rer 4s3orga sorgi3 4s3o4rie so2r3o2 sor4tau 4s5ortes 4s3orth 5sorti sort4s5t 1sos2 sose4 2sosm s2o3ss s3osth 2s3osz 3so3ß 3sott soun4d3 s3out sou3ta 1sov 1sow 2s1ox 1s2oz 2s3o2ze 2s1ö2d s1ö2f s3öfe 2s1ök 2s1öl 2s1ö2s sp2 2sp. 2spaa s4pace 4spack 4spaer s4paeß 3spaet s4paga 4spa4ge 2spak 4spala 4spalä 4spale s4pali 4spalm 5spalt spal4t5a spa2m s2p4an 3spani 5spannu 5spant. 4spanth 4spanz 2s3pap sp4ar 4spara spa4rap s4pard 3sparr 5s6parten 4spartn 4sparty spa5sse 4spassi s2paß 3s4pat. 5spatel 4spati 4spatr s4pats 2spau s2paz 5spazie 2späd 2spär s2päß 3spät 2spc 2spe. s2pea s2pec 3s4pedi s2pee 2speg s2pei 3speic 4s3pein 3speis s4pek 4spensi 4s3perf 3sperg s3peri 4sperle s3pern 3s4perr sper4ra sper6r5ei 4s3pers 4speru 4sperü 3s4pese 2s3pet 3spex 3s2pez 2s3pf 5sphaer s4phal s3phan 4s3phas s2phä 4sphän 3sphär 2sphi s4phin 2sphy 1spi 2spia 3s2pi4e 4spiep 4s3pier spier4r 2spig spi2k 2s3pil 4sping s4pinn 2spip s2pir 4spiro 2spis 2s3pla 2s3plä 4sple sp3le. 3s2pli 2s3plu 2s3pn 2spod 2spog s2poh 3spoi 2s3pok 4spol s2pom 5s4pons 2spoo 4spop s4pore 3s4porn spor4tu 4sporz 2s3pos 4spote 4spoti s4pots spo3w s2pö 2spr. 4sprael 4spraem s4praen 4spraep 4spraes 4spraev 4spraez 4sprak s4pran 4sprax 3spray 4s3präd 4spräl 4spräm s4prän 4spräp 4spräs 4spräv 4spräz 3s4prec 4spred 4spreis 5spreiz 3s4pren 4spres 5spring 5sprint 4sprinz 4sprio 4spriv 4sprob 4sprod 4sprof 4sprog 4sproj 4sprom 4sprop 5spross 4sprot 4sproz 3spruc 5spruec 4spruef 3sprüc 4sprüf 3sprüh 3sprün 2s3ps s4ps. 2sp3t 4spub 2spud 2spuf 3spuk 4spulv 2spum 4spunk 2spup 3s2pur spu4rer 2sput 1spü 2s3py 2sq 2s1r2 s3ra sra4ss srat4s5t s3re sre5cha sroe4s sroes5c sro3tu srö2s srös3c s3ru sruecker6 srücker6 s1s 2ss. 2ssa s3s4aba ssa5ble ssa3bo s2s3aj ss5alar s4s3all s4sanf s4sang ss4ann s3sant s4sanz ssa4ro ss3asi s4s3ass ss3att ssau4f ssau4n ssau4r ssau5ri 2ssä ss2äu 2ssb 2ssc ss2ca s2sce ssch2 s6scheid. sscheiner6 s3schm 2ssd sse3a s4seben 2ssec sse3ec 4ssef 2sseg 2s3seh 2ssei ss3eib sse5in4d sse5inha ss5einl sse5inte 2ssek s4sekä 4sselek s4selem sse6l5end sse4l5oe sse4lö 4ssemp 6ssendet s4s5endl 6s5sendu sse6nend sse6nene sse6n5ent 6s6senerg ssener5i ssengene6 sse4nid ssenk4 ssen6kel. ssen6keln ssen6kels ssenmas6 sse4no ssen6sau s6sen6sem 4ssente ssen6te. 4ssentf 4ssentw 2ssep sser3a ssera4d sse6ratt sse6r5ent sse4rep sser6fahru 6ssergeb sser6gebn 4sserk s5serna ss5ernt sser4öf 4ssersa 4sserse 4sserv 3s4sesh sses4sa 4ss5e4str ssex2 s4sexa 2ssf 2ssg ssgene6ri 2ssh s3s4hut 2ssic ssicht6s5 2ssie ss3i4ko s4s3imp s4sinst s4s3int ss3iso ss3isr 2ssit 2ssj 2s2sk s5skala ss4klav 2ssl 2ssm 2ssn 2sso ss3oef ss3oel ss3ofe ss3off ssoi2 s4sonk sso5ral s4s5orgi s3sort 2ssö s2söf 2ssp s3spal s3span s3spee s3spek ss4pen s5spin s3spit s2spl ss4pot s3spre s3spru s3sprü 2ssq ssquet4 2ssr 2s2s3s2 sssau4 sss4t 2sst s4st. sst2a s3stab s5stad ss3tak s4s3tas ss5tauc s3stä ss5täti s4s3te. s5stein s3stel ss3tem ss3ten s3s4tep ss5ter. ss6terb ss5tere s5stern s4s3tes s4s3tet ss5teur ss3tho ss3tib s5stif s4s3tis ss4tm s5stof ss5tole s3stop s3stöp s5stör ss5trad s5stran s5stras s5strat s5strec ss5trie ss5trit s5stroe s5strom s3strö s5stun s3stur s3stü s2sty 2ssue 2ssum s4sumf s4sumg s4sumr ss5umsc s4s5umse 4ssunf s4suns 4ssunt 4ssunv s4sunw 2s3sup s4s3urk 2ssü 2ssv 2ssw 2s3sy 2s2sz 1st 2st. 3sta. 3staa 3s4tab. 4stabb 4stabel 4stabfl 4stabh 4stabit 4stabl sta4bli 4stabn st3abo 4stabr st4absa 4stabt 4stabu 4stabz st2ac 4stada 4stadj 4stadm 4stadr 3staeb 4staebt 4staef 4staeg 4staehn 4staelt 4staenz 4staep st5aerm 4staeus 4staeuß 4stafel st3afr 2stag s4tagg 3s4tagr stai2 2stak st3aka 4stala sta5lak 4stalb sta5l6er 4st3alg 4stalk 4st3alm st3alp st3alr 4stals 4st3alv st3a4mi stam4ma 4stamt 4st3ana 4stanb 4stanf 5stange. 6stangeb 6stangeh 6stangek st5angel st5anges 4stangr 4stanh 4stanl 4st3anm 4stann 4st3ano 4st3anp st6ans. 4stansa 4stansä st5ansp 4stanw st3a2o 4st3app 3s4tar. sta4ra 4stare 4stari 4starn 3s4tars s4tart star4ta 4starti 4starz 4stasc 4stass 4statb 5stati st3atl 4st3ato 5statu 3staub 4staubh 4stauf st5aufb st5aufs 4s3taug 5s4taur 4staus stau6scha staussen6 4stauto stauto6r 2stax 3stäb 4stäbt 2stäf 2stäg 4stähn 4stält 4stämt 4s3tänz 2stäp st3ärm st3ärz 4stäus 4stäuß 2stb 2stc st3ch 2std 4steam 5stean st5eben 4stechn ste2d st3edi ste4g3r 4stehr 4steic 4st3eid st5eifr stei4gr 4steil steil5a s4tein 5stein. 6steindr 5steine 6steinhe ste5i4sc st5eise 4st3eiw 3s4tel. 4stelef 4st5elek 4steleo 4stelep 4stelev 3stell stel6laen stel6l5än stel5oe ste4lö ste4m5ac ste6m5ent ste4mer ste4min 6s5temper 4stempf 4stempo ste4mu 6stendal stende6t 4stendh 4stendk 4st5ends 4stendt stenei6l stenei6s s4teng 3steni stens4 4st5entf 4st5entg 4st5entl 4stents 4stentw 2steo 4stepi st5erbrin ste4rec ster5eif ste4rel ste4rep st5erfin ster6gie ster5k s4terl sterma5sse s4tern st6ern. 6sterras s4ters4 4sterzg 4st5er4zo stese4 ste4sel ste4s5er ste4s5ta ste4stä 4stestb 4stestn ste4s5tr 4stests ste4tab ste4tag 4steuf 4steul st5eura st3eva st3e4vi 2stex s4texa st5extr 2stf 2stg 2sth st3heb st3hee st3hel st5herd s5therm s4theu st3hex st3hi s2t3ho 6sticket 4stief. 6s5tiefe. 4stiefl 3sti4el stie6lei 3stif st5i4gel sti4kam sti4kan sti4kar sti4kas sti6k5ere sti4kl sti4kr sti4la 4stimp s4tin sti3na 4st3inb 4st3ind 4st3inf 4st3inh 4st5inka st5inko 4stinno 4st3ins 4st3int 4stip. 4stipps 4stips sti2r st3iri 3stirn st3iro st3iso st3isr st3ita stiva4 3stiz stiz3a 2stj 2stk st5kan 2stl 2stm stmas4 stma5sse 2stn stni3s 4st3o4bl 4stocht 4stod. 4stoech 4st3oef 4s3toel 4stoen 4stoepf s4toer 4stoet 3stof 6stoffiz 4stoil 3stoj 4stomn 4stona sto4ne. 4stonl 4stonn 4st3ope 4stopf. 4stopo sto4p3r 4stores 4storf 4storp stost5r st3osz 4stota 2stou 4stöch 2stöf 2stöl 2stön 4s3töpf 3stör 4stöst 2stöt 2stp 2stq 4straec 4straeg 6straene 6straeum stra4f5a 4strag 3strah st6rahl 4strai 3s4tral stra5la 6strangi s5trank 4strans st5rast 3straß s5tratt 4straum 4sträc 4sträg 3strän 4sträne 4strät 4sträum 4stre. 4strech st6reck 4stred 4stref 4streg 4streib 4st5reis 4strend 4streno 4strep 4strese 4streso st5rest 4s3tret 6streuem 6streues 4streuh 4strev 4strez 3s4tria 4strib strien4 s3tril 4strink 4strio 4strisi 4striß 4s3triu st2ro 4stroc 4stroep 4stroet 3s4trof 3stroh 3s4trok 4stroll 4stropf 5s4tropo st5rose 4s5trost 4strou 4strön 4ströp 4s3tröt 4struc 6struemm 4s3truh 5struk 4strup 4s3trut st3rüb 4strümm 2st1s2 sts4a stsas4 stsau4 stsch4 st3se st3s4i st3sl 2st3t2 4s3tuch 4stuech stu4el 4stuer. 4stuere 4stuerg 4stuers 4stuerw 4stuetc 4stug st3uga 4stumf 4stumg 4stumo 4stumr 4stums stum4st 4stumt 4stumz 4stun. 4stuna 4st3unb 4stune 4stunf 4stuni 4stunn 4stunr 4stuns 4stunt stu5re 4sturi3 4sturk 4st3url stur6mei 4sturn 4sturs 4st3urt 4stübu 4s3tüch 4stür. 4stürc 4s3türe 4stürg 4stürs 4stürw 4stütc 2stv 2stw 2styp 2stz2 su3al. su3an 1su2b1 suba2 4subi sub3in sub3l sub3s 3suc such3o such6s5ende such6spe such6s5ti such6ters sucht4s 3sud 2sueb 3suec 3sue2d3 sueden4 sue5den. 3suef su3ell 3suen 3suep sues2 su3ez su2f 2s3ufe su3fi 2s1uh 1sui su3is su3it. s1u2k 1sul su3li 3sulta su4m3an su4mar su4mau su4mei su4m3el sument4 su6m5ents su6mentw su4m3et 4sumfa 4sumfe su4m3id su4m3in 4sumla 3s4umm su4m3o4r 3s2ump 4s3umst su2n 2s3una sunder4 sun6d5erh sundes4 sun6d5ess sunds4 2s3une 2s3unf 6s5ungena 4s3ungl 2s3uni 2s3unl 2sunm 4sunsi 2sunt 4sunwe 1sup 2supd sup3p su4rau su4r3ei su4r3er 3s4urf sur5ins su2r3o2 s5urspr sus1 su2sa su3san su3shi s1ut su2te su2to 2s3üb sü4be 1süc 1sü2d1 süden4 sü5den. 1süf 3sün 3süp 1süs2 sü3sse sü3ssi 1süß 2sv2 svie2 svieh3 s3vo svoran6s s3vö 2sw s3we swe6gers sweh2 swe5st 3s2wim 4s5wink s4wist s3wo s3wö s3wu 1sy sya2 syl1 sy4lau 3syli sy2lo sy2lu sym3 sy2n3 3synd 2s1yo 3sys sz2 2sza 2szä s2zed 2sz4ei 2szel 3s4zena s4zend s4ze3n4e s4zeni 4szent 2szer sze3ra s2zes s2zeß 2szet 2szeu s2zew 2szie 4szins s4zint s2zis s3zs sz3t sz4ts 2s3zu sz4un szu3ni 2szü 2szw 2szy ß1a2 ßab3i2 ß3ac ßas2p ßat3 ß3au ß1ä 2ßb2 ßbal4li ßball5o ßbau4c 2ß1c ßco2 2ßd2 ßdi2e 1ße ß1eb ße2be 2ß1ec 2ß1ef 2ß3e2g 2ß1e2h 2ß1ei 2ß1ek ße2l3a2 ße2le ße3le. 4ß3elek ßels2 ßel3sk 2ß3emp ß4en. ße2na2 4ß5energ ße2ni ßenk2 ße2n3o2 ßens4p ßen4te. 4ß3entf 4ß3entl 4ß3ents 4ßentw 4ßentz 2ß1e2p 3ß4er. ßer3a ßere2 4ß5ergeb ßerk2 ßermen4 ßer3oe ßers2 4ß3ersa ßer4seh 2ß3erz ße2sk 2ß3e2s2s 4ß3e4str ße2t 2ß1ex 2ß1f2 ßg2 ßgel4dr ßge3n2 ßgene6ri ß3gm 2ß1h 1ßi ßi2g3a ßigs2 ßig3se 2ß1i2k 2ß1il 2ß1im 2ß1in 2ß1i2o ßi2so ß1k2 ß3kh 2ß1l ß1m ßmen4t3 ßmitte4 2ß1n 2ß1o2 ßoe2 ß1ö2 2ß1p2 ßquet4 2ß1r ßreli3 ßroe2 ßroes3 ßrö2 ßrös3 ß3ru 2ß1s2 ßsau2 ßsch2 ßst2 2ß1t ß2t3in ßtop2 ßtopf3 ßtu4e ßtu5ers 1ßu2 2ß1ue ß1uf 2ß1uh 2ß1um 2ß3unf ß3uni 2ßunt 2ßunv ß1ur ß1ü 2ßv ßvie2 ßvieh3 2ßw 2ßz2 ß3zs ta3ar t2aba ta4b3an 2t3abb 2tabd 3tabel 2tabf 2tabg 2tabh 4t3a4b3i4t 2tabk 4t3abla 4t3a4blä 5tablet 4t3ablö 2tabm 2tabn tab5ort 2ta2br 2tabs t4absä 2t3abt 3tabu ta4bue tabu5s ta2bü 2tabw taby2 2tabz 2t1ac t4ache ta3chi ta3cho tach4r 4tachs ta3chu 3tacl 3tacu 2t3add 4t3a4der tadi3o4 tadi4s t3adm t3a4dol 2t3a2dr ta3d2s tad2t tadt3a4 2tadv ta2e t3aebt tae2d ta3ede ta3edr 3t2aef 3taeg t3aega 4taegy 2taeh t3aehn ta3ei 3taele 4t3aelt 2tae2m t3aemt t5aenderu ta3ent 3taenz 2t3aep 2taeq tae6renz tae6rers tae4rob tae4st t2aet 5taeter t3aetz 4t3aeug 5taeusc t5aeuss t3aeuß 2t3aex 3tafe 4tafet 2taff t3afg ta3flu ta3fra 1t2ag 3tag. ta2g3a2 ta4g3ei 4tagent tage4si ta4git ta5gla ta4glo tagse4 tag4s5ta tag4sti 2tahl tah4ler tah4li tah4l3u t2ai ta3i2k tai2l3 tai4ne. ta3ins ta3ir. ta2ka 2takk 3takl ta3kla 2t3akq ta4kro tak6t5erf tak6t5er6z tak4t5in 4t5aktiv tak4t3o4 tak4tum 2takz t2al. tal3a4b tal3ac ta3lad ta3lag tal3a4s t2alb t3alb. 4t5alben t3albk 3talbr ta4leb talem4 tal5emb ta4l5end ta4l5eng ta4l5en4s ta4l5er4f ta4l5erg ta4l5erh 5talern 5talers tal5ersa ta4l5ert ta4let ta4leu t3algo tali6ene 3talke tal4l5ac tal4lam tal6l5auf tal4leg tal4lei tall5ein tal6l5erh tal6lerm tal4let tal6leut tal6lin6s tal4lo4s tal4lue tal4lus 4t3alm. ta4lob ta4lop ta4l3o4r ta3lö talp2 3t2als tal4sae 4talter talt4s ta2lu ta3lus 3t4am. t4amar t3a4mer tamma4 tamm5ac tam4mat tam6mense tam4m5er tam4mi tam4mo tam4mut 2t3a2mö t3ampl t3ampu 3t4ams 2t3amt ta2na 4t3anal ta2nä tan4ce tan4dan tan6d5erk tande4s t5andra tan4dre tan4d5ri tand4s5a tand6sen tand4sk tand4st 2tanf 4tangab tan4gar 5tango. 5tangos t3ang4r tan4gra 2tanh t4ani t4anj tan4kan tan4klo 3tanks 4t3ankü 2tanl 4t3anna 3t4anne tano2 ta4nod 4t3a4nom t3anon ta4nop ta4nor 4t5ansat t3ansc 4t5anspr 4tanstr tan4tan 4tantei t5antig t3antr 4tanwae 4tanwal 4tanwä t4anwu t4anz. tan4zar tan6z5erf tan6z5erh 4t3anzu 4t3anzü tan4zw ta4pe. ta4pes 2tapf ta2pl ta4poka t3app. 4tappa t3appr ta4rab 4t5arabi ta4rad 3ta4r3al 4t3a4ram ta4ranf ta4rang ta4r3ap tarb2 2tarc 5tarchl 5tarchr 4t3area tar5ein ta4r3el ta4rer tar5ere tar5ers 3tari tar5ins 4t3arm. t3armb 4t5arme. 4t5armee 6t5armen. 6tar6meni 4t3arms 3tarn t3a4rom 4tarot ta3rö 2tart tar4tau tart5ec 5tartei tar6t5eig tar6t5ere t5artik tar4t5in tar4to tar6t5rau tar4tre tar6t5ric tart3s 3tartü 3tarty ta3rum 4tarzt t2asc tas4k3l ta3spr 4t3assi 4tasso t2ast ta4st5ei ta4stem ta4sto 2t3as2z 2t1aß t4at. ta4t3an ta4t5arm 3tatb t2ate tat5ein 4ta4tem ta4t5ent ta4t3er tat3hi 4t3atom tat5ort tat5ric ta4tro 3tatsa 4tatta4 tatt5an 4tatti tatt5rau tat3zw t4au. tau4b3a 3taubh tau4b3l tau4b3r t4auc tauchs4 t3audi tau3e tauer4l tau4fak t5aufar 4t5aufba t3aufd 5taufe. tau4f5eu 4t3auff 4t3aufg t3aufh 4t5aufko 4t3aufl tau5f6lie 4t3aufm 4taufn 4t3aufp 4t3aufr taufs4 4t5aufsi 4t3aufw 4t3aufz 3taugl t3augm 2tauk t3aukt t3aul 3taume t4aun 4t3ausb 3tausc tau6schm tau6schn tau6schr tau6sch5w 4t3ausd 4t5ausei 5tausen 4t3ausf 4t3ausg t3ausk 4t3ausl t3ausn 4t3aus3p 4t3ausr 4t3aus5s tau6sse 4t5austa 4t3ausu 4t3ausü 4t3ausw 4t3ausz 1tax 2t3axt t3äbt tä1c 1täf 1täg 2tägy 2täh t3ähn 3täle 2t3ält 2tä2m t3ämt t5änderu t3ängs 2t1äp 2täq tä4reng tä4r5enz tä4r5ers tärs2 tä2ru tä2st t2ät 3täter 5tätigk t3ätz 2täug 3täusc t3äuss 2täuß 2täx 1tà 2tb2 tbahner5 tbauer4 tbau3f tbau6m5en tbe3n tber4e t3bh tbhu3 tblocken6 tbote4 tb4ra t3bs tbus5s tby2t 2t1c tchar4m tche4n tch4i t2chu tch3up tch3w tcor2 tcre2 tcu2 2td2 tdar4m3 tde2a tdi2e t3ds tea2 3te2am3 tean3 te4ben t5e4ber. 3techn 4t3echo 4techs 4techt 2teck tecke4 t3ecu 3tedd te4del tedi4e te4dit ted2r 1tee tee3id te3ele te3end tee3r4a te3erg te3erl te3erz te4es 4tefeu 2teff te5ge. tegen4 te5gen. te4g5end 2t3egg teg2l te3gr te4grä te4hac te4hap 4tehe. te4hef te4hep te4him teh3la 2t3ehr 3teic t5eifers tei4gab teigerin6s tei4gla tei4gle 4t3eign teik2 3t2eil tei4lau tei6lent tei6l5erh tei6l5ero 2tein tein5al teinbu5s tei4n5e4b tein5ec tei6nen6s tei6nerk tein6hab tein6sel te5insh tein6tol 4t3eis. t3eisb 4t3eish 4t3eisk tei5su tei3t teiz2 2tekz te4l3ab te4l3ac tel5aer te4lam te4lant te4lat te4l3au te4l3är tel3d4 te3le. tel5ech tel5eck 3telef 3teleg te6l5eier te4l5eig tel5eint 5telema tel5en5e tel5eng te4l5ent 3teleo 3telep te4l5erb te4l5erd te4l5erf te4l5erg te4l5erh te4l5erk te4l5ern te4l5ers te4l5eti te4leu t3elev 3telex 4t3elf. 4telfd 4t3elft tel3id te4lim tel5ind tel5inf tel5inn tel5ita telk2 tel6lanf tel6lant tel4lau tel6lein tel5ler tellerei6g tel5leu tel6li6st 4tellu telo4g3 te4l3or te4l5ost telp2 tels4k tel3sl te4lut t2em te4mak te4mant te4marc tem5art te4m5att te4mau 4temäc t3embl 4tembo tem4bol te4m3ei tem5er5e tem5erf tem5erg tem5erh tem5ern tem5ers tem5erw 2temg te4m3i4d te4m3i4m tem5ing te4miss 2teml 2temn te4mop te4m3o4r 4t3empf tem4pli 3tempo3 temt2 te4mun te4m3ur t4en. te4na4b tena4d tenae4 ten5aeh te4na4g te4nan te4n3a4r te4n3au te2nä2 ten3äh t5endal tend4an 4t5endap 4t3endf t3endh t3endk 4t3endl 4t3endp tend4r t3endt te3ne. te4n3e4b ten3ec te4n3ed te4nef te5n4ei. tenei4d te4n3el te4n5end te4n5en5e te4n5ens te4n5ent ten5enz te4nep ten5erei te4n5erf 4t5energ te4n5erk ten5erm te4n5ern te4n5ero te4n5ers te4n5ert te4neru ten5e4sc te4n5ess tene4t ten5eta ten5eti te4neu te4n3ev ten3f2 t3eng. 4tengag t5enge. 6tenglis teng4r te4nid te4nil te4n3im te4n3in tenk2 ten3n2 te4nol te4nop te4nos te4n5ott t4ens. tensch4 ten4seb ten6serg ten4sur tent5art ten6t5er6t 6tentheb t5enthu t5enthü ten6ting 4tentz te2ny ten6z5erw ten4zym teo2b te3o2f t2ep te3p2f 4tepit 4t3epoc 3teppi t4er. t4era te3ra. ter5abe ter3ac tera4d 4terad. ter5ade ter5aff ter3a4g ter3ak ter5ala ter5alb ter5alle ter5alp te5rals ter5alt te5ramp te5ran. te5rane ter5anz te4r3ap ter3as te4rato ter3a4v te4r5änd ter6bauu 4terbe. 6terben. 6terbend ter6blin 4t3erbs 4terbt terb4u 4t5erde. 4terdg 4terdö terd4r ter3d4s te4r3e4b te4r5eck ter5eier ter5eige 6t5ereign ter5eil te4rein ter5ell tere4m te4r5ema te4r5emi te4r5end te4r5en5e te4reng te4r5ens te4r5ent teren5th te4r5erb te4r5erd terer5ei te4r5erg ter5erh terer6ku te4r5erp te4rerr te4r5ers te4r5erw te4r3e4t ter6folgr terg2 6tergebn tergene6s 4tergü 4t5erhab 6t5erhöhu te4r3id te5rie ter5iko 6t5erinner teri4on te4riso te4rit ter5i4ta terk2 4terker 4terklä t5erklär 6terkranku ter6löse termas4 terma5ssen 3termi ter4nas terngene6 tero4be te3roc ter5o4de ter5oel ter5ofe te3roh te3rok 4t3erot ter6probt terr2 ter3ra 5terras ter4re. ter6regt tersau6er ter3sc ter4sep 6tersparn ter5t4a teru2 te4r5ufe ter5uns ter7weis ter3z4a 4t3erzb terz4e 4t5erze. ter4zes t3erzg t2es t4es. te4sa4k te4sau tes5eli te4s3ep teser3 tes5erb tes5ere tes5erk tes5erl te2sk te2ss tes2t te4st5ab test5ak te6stanz test5art te4stau tes5tät 3testb te4steb test5elt tester5 te6st5ere te6st5er6f te6ster6g te6st5erh te6sterk test5erkl te4stin t3estn te4stor 3tests te4sur te4tabl 4t3e4tap t3e4tat 4t3ethi 4tetho 2tetl 3t4euf teu4f3a 2t3euk 2t3eul te3um te3una te3uni t3eunu 2t3eup teuren4 teu4r5ob te4van tewae3 tewa4s tewä3 1tex1 4texam 2t3e2xe 2t3e2xi 2t3exk 2t3exo 2texp tex4ta tex4th 2t3exz 1té tè2 2t1f2 tf4ae tfae4s tfal4l5i tf4äh tf4la tfu5sse 2tg2 tga4s5er tga4su tga2t tgeb2 tgel4ta tge4n5en5 tger4a tges2 t3gl tgol6der tgro5sse 2th. 2t1h2a 3t4ha. t2had 3thal. thal5ba 3thale 3thalh t4hali t4han. 4t3hau thau4sa thau4s5t 2t1hä 3thäi 2thb 1the 3the. t2hea 2t3hef 2t3hei t4hein4 the5ins 3t2hek 3t4hema 4themd 3t4heme t3hemi 4t3hemm the3na t3hend t3heng t3henn 3t4heo 5therap t3herl t4herm 4t3herr t3herz 3t4hese t3hess 3thet t2heu t3heu. 2thf 2thg 3thi. 3thic thic3k t3hiel thi5er. 2t3hil 2t3him 2th4in thi3nu 2thir t3hist 3thiu 2th1l 2th3m thmu2 thmus3 th3n thn4o 1tho 2t3hob tho5chr 2t3hoe 2t3hoh 4t3hole 4t3holt 4tholz 4thops tho3ra 4t3horn 4t3hose 4t3hote 2t3hou2 t3hov 2t1hö 1thr th3rau thr4i th3rin 2ths 2tht2 t1hu 2thub 2thue t3huet 2thuh t2hur t2hus 2thut t1hü 2thüt thvil4 2thyd ti3ac 4t3iago ti5alei ti3a2m ti3a2p ti3as tib2 ti3ce 5ticket ti4dea 4tidee ti4d5en4d ti4dio 3tief. 3tiefl tieg2 ti4e3in tie4l3a ti3ell tie2n tien3e 3tierä tie4r5ei tieren6z 5tieres tie4reu 3tierr 5tiersc ti3eu ti3f2r tifter6k tif4tr ti4g3an tige4ra ti4g5er4z ti4git ti4g3la ti4g3lä ti4gle ti4g3li ti2gn tigs2 tig3se tig3sp tihi2 tik5amt ti4kanw tik5a4sc ti4kei tikel3 ti4k5ent ti6k5erfa tik5erha ti4kim ti4k3in ti4k3la ti6klini ti4klu ti2k3n ti4kob ti4k3op ti4k3ra ti4k3rä ti4krei ti4k3ro tik3s ti4kun ti4lant ti4lar ti4lau ti4l3e4b ti4lel ti4lent ti4l3ep 3tilg til5ing til5ins til4le4b til4le4g 4tillu ti4l3oe ti2l3ö ti4meli 2timm tim6ma6te timmer4 tim6merg tim6m5erk tim4mit 2t3imp ti3naf ti3nak tin5alb tin3an ti3nap tin2e ti3nec ti3ne3i tinein4 tinen4z5 ti4n5erf 4t3infe 4t3info tin4ga4 ting5ab ting5as tin4g3i tin4gl tingo4 tin4gor ting5s4p t3i4n3it 2t3inj tink3l tin4kla tin4kn t3inku 4t3inno ti4n3oe4 ti4nor ti2n3ö2 t4ins. tin4s5es tin4spa tin4sum 5tinte. 4t5inter ti3n4um 2tinv 3tip. tip4pr 3tipps 3tips ti4que. 3tirad t3iran 2t3ird ti3re ti3r2h tirn3a ti4scha ti5sche. tisch5ec ti6schei ti5schen. ti5scher ti4schl tisch5lam ti4schn ti4schr ti4schu tisch5wa tis5erk tisex5p t3isl ti4spa ti2ss tis2t ti3sth ti4s5tic ti4sur 2t1iß ti3ta ti4tal 3tite2 ti3ti 3tiu tium4s ti5va. ti4v5att ti4vel ti4v5ent ti4v5erg ti4v5erh ti4v5er4k ti4v5er4l ti4v5ero ti4v3id ti2vo tiv3or ti2v3r ti2za ti4z3in ti4zir ti2z3o ti2zw 2tj 2t1k2 tkege4 tkof3 t3kr tkue3b tkü3b 2t1l tl4au tlei4bl tlei6d5er t2lep tl4er tle4r3a tle6ring t3li tli4tu tlo5che 2t1m tma5sses tm4en tmen6schl tmen4t3 tments4 tmetaller5 tmi2t tmo4des tm4or 2t1n2 t3na tn4am tn4an t3ne tne5reig tne4rer tnergene6 tnes2 tn4eu tni2 tnisex5 tnis3t tnue2 to3al to2as to3a2t to4berg 2tobj to4boe tob4re to3cha to3che t3ochs 3tocht tock5ent 1t2od 3tod. toder4 tod5ern todi4e to4d3un 2t3o2dy 3toech 2t3oe2d toe2f 2t3oe2k 4to4el. 4toels 4toelu to3e2m 3t4oen 3toepf t4oer to3erh to3ero toe5sse t3oe4st 3toet toff5ei tof6fen6st tof6f5ent tof4f5er 4toffi to3fu toga4s3 2t3ohr3 3toil toi4ne. toi2r tok2l 2t3okt to4lym tolze3 tom5ans tom5ant tomar4b to4m5ene 2tomn to2mu tom3un 1ton to4nad tona5er to4n3an to4nap to4nau ton3d2 ton3e4b to4neh tonend4 toner6ke to4nid ton5ing tonne4 to4nob to4nof ton4sin 2tony 1too to4pad to4pak 4t3o4pal top5ang to4pat to4per t2opf 3topf. to3pfä topf5erd top5flu top3fo top3hi topi4e to4ple to4pli 3topo 5topsy top3t t4or. to3rad tor5aen tora4g to3ral to5rand tor5ans tor5ant tor5anz to3ras to3rat to4rän tor6ch5el 4tordn tor5eic to4rein to4r3el to4rem to6renna 3tores 3torf tor4fan t3orga 6torient torin4s tor5int to4rob to4roe to4rop to2rö 3torp 4t3ort. 4t3orth 4t3ortn 4t3orts tort4s5t 3torw torz2 t2os2 to4s3ka to3sm to3sse tosser4 toss5ersc to3ssu 3tota to4tae to2tä to5tem to4tho to4t3ri tot3s2 1t2ou touil4 to3un to1x 4toxid 3töch 2t1ö2d 2t1ö2f 2t1ö2k 1töl 2töl. 2töle 2töls 2tölu 1tön 4törc t3ö2st 1töt 2t1p2 tpar4k tpho2 tp4oe 2tq tr2 2tr. t4ra. tra3a tra4bu tra5cha tra5chl 4t3rad. 4trade tra4dem tra4der t5rades t5radie 4tradio 5tradit 4tradiu 4t3radl 4tradp 4t3rads 3traec 3traeg 4traend 5traene tra4fah traf3l 3trafo 3trag tra4gel tra4g3l 4trahm 3trai tra5inh 4t3rake tra4leb tra6lins trals4 4tramm t4ran. 4trand tran4d5r 4trang t5rangi t5ranki tran4k5o t3rann 5trans tran4st tra5po tras2 tra4sta tra4st5r 4traß t5ratin 4traub. 4t5raubv 4trauc 4t3raup traus4 3träc 2t3räd 3träg 4tränd 3träne 4träuc t2re 2t3re. t3reak t3real tre4am 2treb tre4bl tre4b3r 2trec t3rech 5trecô 2t3red 4trefe 3t4reff 4trefl 4t3refo 2t3reg 2t3reh 3treib trei4bl 4treic 4treif 4t3reig 4t3reih 4t3reim 4t3rein trei4sc t3reiß 4treit trei6terp 4t3reiz 2t3rek 2t3rel t4rem trems4 t3rena 3trend 5trennu 4t3rent t3repa 4trepe 4t3repo 3trepp 4trepr 5tresen 4t3resi 5tresor t5resso tres4st 4trest. 4trests t3resu tre4ta 3t4rete tre4t3h 4t3retr tre4t5ri 4trett tr4e2u 5treuem 5treues 3treuh 2t3rev tre3x 2t3rez t2ré 2t1rh 3trib t4rice trid2 tri2e 5trieb. 5triebs trie5fr tri5ens tri5ent 4tries tri5est. 4trig. 3trigg tri3gl t2rik tri4ke. tri4kes 3triko 4t3rind 4tring 3trink 4t3rinn 3t4rio t2rip 5tripty 4t3riss 2t3riß 4t3ritu tri2x trizi5e 4trock. 4t3roec 4t3roeh 4troem 3troep 4t5roe4s5s 3troet 3troj tro4kes trol4la tro4men tromer4 tro4min 5trompe tro6niks t3ronn t4r4op 3tropf 5trophä tro3sm 3tross tro5ste 3troß t3rot. 3trott 4trout 2t3röc 2t3röh 2tröm t3rön 3tröp 4t3rö4s3s 2tröt 3truc true5be true5bu 4t3ruec truecker6 5truemm t3rues 4truf 3trug trum2 t3rumä 4t3rumm trums3 4t3rund t3rung 5trunke 3t4rup 2t3ruß 2trut tru4th trü3be trü3bu 2t3rüc trücker6 3trümm 2t3rüs 2ts tsa2b ts3a2d ts3aer ts3aes ts5aeus tsa2f t3s4akk t3sakr t4salbu t4s3all t4s3alm t4s3alt t4s3amb ts3amp t4s3amt t4sant tsa2p t2sa2r t3s4ark ts3a2s tsa5ssen t3s4au. tsau4d tsau4e tsau4m tsau4n tsauto6r t3sav t1sä t2sär t2s3äs t4s3äus t2sce t6schart t4s5chef t6s5chine t3schl tsch6lic tsch4lo t6schmue t6schmun t4schmü t6s5chor. t6schors t4schro t4sch5wo t4sch5wö t2s3e2b t2s3e2d tse2e tsee3i t2sef ts6ein. t4s5eind ts5einf t4s5einh t4s5einl t4s5eint t5seit ts3e4kl ts3e4la t4selbi ts3emb t4s5e4mis tsen5er t4s3enq ts5ense t4s3ent t4s3e4pi ts3epo t2ser ts3erb ts3er3e ts3erf ts3erg ts3erh ts5e4r5in ts3erk ts3erl ts3erm ts3ern ts3er3o ts3erö ts3err ts3ers ts3ert tse3r4u ts3erw ts3erz t6s5essen tse2t t4s3eta t4s3eth t4s3eti t2s3e2v t2sex2 t3s4exi t2s3i2d t3sig t2si2k ts3iko ts3ima t4s3imp tsi2n t4sind tsing4 tsin5gl t4s3ini t4s3int ts3iso t5skala ts4kele t5s4klav t3s4lip tsmas4s tsma5sse t3s4mog tso2b ts4oc ts3oef ts3off ts3op tso2r ts3ora t3sorb ts3orc ts3ori ts3orn ts5ort. ts5orts t3sos t3souv t2s3o2v ts2öl t5s4pare t3spek t4speri t4s3pic t4spins t2spl t5s6port. ts6portl ts6ports t5sprac t4sprei t5sprun t3spue ts5rei t2s3s2 tss4t ts5ste tst2 t6s5taeti t4stafe ts3tak t4s5tale ts5tank ts5tant t4s5tanz t4s3tas t4s5tat. t4s5tauc t4s3tav t4s5täti t4stee ts5tens t4s3tep t4sterm t4s5terr t4s3tis t4stit t4stoch t4ston ts5tor. ts5tore ts5tors ts3töp t4s5trac t4s5trad t4s5trak ts5traum t4stren t6s5treu. t4s5trie tstro6ma t4s5trun t5s4tub tstu5er. t2sty 3tsubi ts3um. ts3umb ts3umd ts3ums ts3umv ts3umw t4sumz ts3un t2s3ur ts3ut tswa4s t5szene 2t1t tt3abm t3t2ac tt5achs tt3aeh tt3aer tta6g5ess tt3ahl tta4ke t4t3alb t4t3ana3 t4tanb t4t3and tt5anka tt5ankä ttan4k5l tt5anku tt3ans t4t3app tt3arb tt3arm tt3art tt3äh tt3änd tt3är tt5eben tt5echs tt3eck t4t3eib tt3eif t4teige tteil5a tteile4 ttei6leb tt3eim tt3ein t4t3eis tte4l3a4 tte4l5e4b t4te4leg tte4l5en tte4l5in tte4lit ttel5l tte4l5oe tte4lö t4t3emu tte4net tte4nob ttens4 t6ten6sem t4t5entb t4t5entf t4tents t2teo tte4r5ec tte6r5ei6s tteri4e tte4rik tte4ris tter6klä ttermas5s t4t5ernt tter5oe tte4r5oh tte4s3a tte4s3ä tte4s3o ttes5pr t4teti t4teuf tt5extr tthae5us tt4hä5us tt3hel tt3hen tt3hin t2t3ho t2ti2d t4t3igi tt3imm t4t3ind t4t3inf t4t3ins tti3z tt3la tto3ef tt3oel tto3er tt3ord t4t3org t4t3orn tt5rand ttras5s tt3rän t4t3rea tt2ro tt5roch t5trog t4t3rot tt3rud ttrue3 ttrü3 tt3sae tts5and ttschi4 tts5eins tt4sele tt4s5end tts3pr tts5taet tt4s5tät tt4s5tem tt4ster t2tu4c ttue4c ttu3en ttu2f tt3ufe tt3uh ttur4m3 t2tu2s ttü4c ttz2 tu3al. tu3alm tu3alp tu3alv tu3ant tu3ar. tu3ars 3tuba tuba3b4 3tubu tu3cho tuchs4 tudie4n5 2tueb tue5ber. 3tuech 3tuef tu3ell tu3en. tu3enb tu3eng tu3enk tu3ens tu3ent 3tuer. 3tuerc 3tuere 3tuerg 3tu3ern tue4r3o 3tuers tu5ers. 3tuerw tu3es 3tuetc tue4th 2tuf4e tu5fen t3u4fer 3tuff tuf4fel tu4gan 3tuge 2tuh tuhl3a tuh4lei tu3ist t3u2kr 2t3ulm tul4pa tul4pf tul4ph 3tum. tum4b3l 2tumf 2tumg 2t3umh 2tumk 2tuml 3t4umo 2tumr 4t5umsat t3umsc tum4ser tum4si tum4s3o tum4spe 4t3umt 2t3umw 3tun. 2t3una 3tuna. 3tunas 2tund tund4e tun4d5ei tun3dr tune4b tun4en 3tunes t3unf t3unga 4t5ungeh 4t5unger 4tunget tungscha6o 4tunif 3tunin 4t3u4nio 4tuniv 2t3unl 2tunm 3t4unn 2t3u2no 3tuns. t3unsc 2tunt 2tunv 2t3up. 2tupd 2t3upg 2tups t2ur tur5abe tu4r3ac tu4rae tu4r3a4g tur5aka tu4r5alm tu4ralt tu4ram tur3an tu4rang tu4ranz tur5asp tu4rau tur3c tu4r3e4b tur5eic tur5ein tur5eis tu4rep tur5erb tur5erg tur5erh tur5erk tur5erl tur5ern tur5ers tur5ert tur5erw tu4res tur5est tu4r3e4t tu4r3e4v tu4rid tu4ril tur5ins turin6sta tur5int 3turn tu2r3o turo4p tur3s2 tur5sa tu2ru2 tur3uf tur3un tu2s3a tu4schl tu4schm tu2se tu2s3i tu3spr tu3t4a tuts3c tuts5p 2tüb tü5ber. tück4se tück6s5ti 1tüf 3tüll 3tüml 3tür. 3tür3c 3türg 3türk 3türs 3türw 3tütc 2tv tvie2 tvoran4 2tw2 twa3i2 twa2s tweg3s4 twe4n3e twi2e t4wist 2t1x 1ty 3typ ty2p3a ty2pf tys2 2tz tz1a2 t2zat t2z3än t2zäp t2z3är tz3edi t4z3eie t4z3eim tze5ina tze5ind t4z3eis tzei6t5end t4zelek t4zelem tze2n tzene4 t6zensem t4z5entg t4zentl t4z5ents t4zentw t4zentz t5zer. tzer6bre tze4reb tze4rer tz6erfe tz6erfr tzer6gre t4z5erhö tz6erl. t5zern t4z3erö tzer4öf t6z5ertra tzer6trae t6z5er6trä tz5erzi tzes5s t2z3i2d tz3imi t4z3ind tz3inf t4z3inh tz3int tz3inv tz3iso tzo2b tz3oef t2z3ok t3zol tz3om t2z3or tz4tin tzu4gu t4z3unf t4z3uni tzwan4d5 t3zwie 2ua u1a2b u1ac ua4ch uad3a ua4dan uad2r ua2g u3al3a2 u3a2l3ä u3alb u3ald uale2 u3a4leb u3a4lei u5alemp u5a4l5ent ualer4 u5a4l5erf u5a4l5erg u5a4l5erk ua4l5err u5a4l5erz u3a4let u3alf u3alg u3alh u2ali u3a4l3id u3a4lin u3alk u3aln ua2l3o2 ualp2 u3alr u3als u3alt u3a2lu u3alw u3alz2 u1am u3an. uan2a u2ane u3ans uante4 uanten5 uara4b uarer3 uar4k3a uar4k3e uar4t5a4n5 uart3s u3arw u3as. uas2a uasi3 uas2p ua2th uati6ons. u3au uau2s u1ay u1äm u1äu 2ub ub5anke ub3ant u4b3arb uba2s ub3asc ubb2l ube4be ube4e u4b3ehe ub3eig ub3ein ubein4w u4b3e4mi uben3o u4b5erde uberin6t ube4woe ube4wö u3bis u3bit ub3läu ub4lee u4b3lus ubmi2 u2bo2b u2b3ok u2bop ub3or u2b3oz ub5rank ub2ri u3b2ru u3b2rü ub4sang ubsau4 ub4sauf ub4s3or ub4spa ubs5trau ub2sz ubt2h u4bueb ub3ums u2büb ubü3s 2uc uc1c u3cha. uch3ab uch3ad uch3ae uch3al uch3am uch5ans uch5ant uch5anz uch5arte uch3as uch3au uch3ä u3che u4ch3ed uch3ei uch5elf u4ch3ep ucherin6s ucherin6t ucher6ken u6cher6lau uch5erlö uch4erz uch5er6zeu uche4t uch5eti uch3i4d u5chig. uch3il uch3im uch3in u2ch3l uch3m uch5ma uch5mi uch3n u3cho. uch3o4b uch5oef uch3op uch5org uch5ort u3chos uch3öf uch3r uch4ro uch6s5ein uch4s5el uch4sem uch4s5in uch4s5or uchs5tan uch4tak uch6t5eig uch6t5erf uch6t5ersc uch6t5er6t ucht5erw uch6t5erz uch4t5in ucht5sk u3chu2 uch3uh u4chum u4chur uch3ut uch3w u1ci ucin3 uck5elf uck5ene uck4er uckga4 uck3in uck3so uck5stau uck4s5ti u1cl u1cr u3d2a uda3d ude3e ude3i2 udein4 ude4n3e ude6rent uder3o uder3ö udiener6 udi2o3 uditi4 udium4 ud2ob u3d4o3e u2don ud4o3s u4d3rat 1u2e2b 2ueba ueb3ae 2ue4bc 2uebd uebe2 ueber3 ue3bi ueb5le ue3bo ue4bs 2u2ec uech4s5c ueck5erb ueck5erh ueck5ers ue2d3a2 ue2d3o ue2d3r ued3s2 ued3t2 uee2 ue3er 2uef ue2fa uef3ae ue4f3ei ue4f3in ue2f3l ue2f3r ue4fum uege4l5a4 uege6lei6s ue2gl ue2gn u2eh ue2h3a uehan5 ue4h3ei ue4h5eng ue4hent ue4h5erf ueh5erk ue4h5er4z ue2h3i ueh4lei ueho2 ue4h3ob ue4h3of u1ei ue3lak ue4l3am ue4lau uel5eim uel5ein ue4lek uel4er ueler5ei ueli2 ue4lio uel4la4 uell5ad uell5au uel4lä uell5ec uel4lei uell5eim uelle4n uel4leu uel4li4n uel4lo ue4lor ue4ment ue4m3id ue4m3in ue2mu 2uen ue2na uena4g uen3ah ue3n4am uen3ar ue2nä uen4d5ei uendergene6 uen4due uen5ema uen5ens uen5esk uen4fak uen4gag uenge6bu uengene6 uenge6schl uenge6wan u3enh ueni2 ue4n3in uenk4l uenk4r ue2no uen4sem uen4ser uens6por u3env uen6z5eig uen4z5in uen4zw ue1o 2u2ep uer3a2 ue4rat ue2r3ä uer3d2 ue4r3ec uer3ed ue3rei ue5rei. uer5ela uere4m uer5emi ue4r5eng ue4r5ent5 ue4rerf ue4r5er4g ue4r5er4h uerer4k uerer4l ue4r5er4m ue4rerr ue6r5er6sa ue6r5ersc uerer6sp ue6r5er6st ue4rert uerer6za uerer6zä u5er5esk u5eress ueres6si ue4r3e4t uer6fahru uer6g5eng ue4r3i4d ue4r3i4m uerin6nu uerin4t uerk4l uer4le. uer4nan uer4nau uer4neu ue3ro uer5ode uer4rh uers4k uers4t uer5stag uer5stau uer6trag uer6träg u3e4rue u3e4ruh u3erum u5erunf u5erunt u3erur uer4zoe 2ues ues2a uesch5af ue4schl uesen5e ue2sk ues2p ues4s3c ues5sel ues4so uess3t ues4su ue3ste ue3sti 2ueß 2uet ue4t3al ue4tap ue4tau ue4tik ue4t3ro uet6schw uet4s3t uety2 u1e2x1 u2fab uf3abe u2f3ad uf3aen ufae4s4 ufae4ß ufall4 ufa2n uf3ana u4f3an3e ufa2r uf3are u2fa2t uf3au u2f3än ufäs2 ufä6sse ufä2ß uf3eig uf3ein ufel4s5a ufel4s5i u2f3em u4f3ent ufen4te ufer4fo uferin6s uf5erke ufer6lau u4f5erne u2f3eß ufe2t u4f3eta u4f3eth u4feur u2fex uf3fe uffel4 uffer5e ufferin6 uff2l uf4fot uff2r uf4fro u2f3id u2f3im u4f3ins u4f3int uf1l uf3lit uflos3 u3fluc u3flug u3flüg u2fob u2f3of u2fop ufo2r uf3ori uf5orte uf1r uf4rass u3frän uf3sae uf4sal ufs3an uf4s5eta uf4s3in ufs4por uf4spre uf4ster uft3a4g uft3eb ufte4m uft5erd uft5er4g uft5er4l uft3in uft3s2 ufuen4 ug3a4br u4gabte u2g3a2d ug3aku u4g3ana u4ganb ugang4 u6gangeb u4gani u4g3ank ug3ans u4g3ant u4g3anz u2g3ap ug3ars uga2s ug3asc ug3att u4g3aus ug3d2 ugd4e ugeb2 u2g3ec u4g3eig u4g3ein ug5eise u4gelem ugena4b ugen6dre uge4n5en ugenmas6 ugenma5sse u4g5entf ugenz4 u4g3erk u4g5ersa uges2 u5ges. u4g3esk u4g3ess ug3i4de ugi3en u2g3im ugin6ner u4g3ins ugin4sp ug3lad ug3län u6gleist u6gleitb u6gleitu u2gli ug3liz u4glok u2g3n u2go2b u2g3oc u2g3oe u2gof u2gom ug3o2p u2g3o2r u2gö u4g3ram u4g3rat u4g3reg u4g5reis u4g3res u4g5rind ug3rol ugro5ss u4grou ug3rum ug3rüs ug3sc ug4sin ugsma3 ugsmas4 ug5span ugs4por ugs5tem ugs5tuer ug4s5tur ug4s5tür ugu6ster u1ha u1hä 2u1he uhe3a uhe3b uhe3e2 uhein4t 2u1hi 2uhl uh3lat uh3lä uhl5ein uh4l5ent uh4l5erb uh2l3i uh4lob uhmes3 uh3na u1ho uh3o2b u1hö uhra2 uhr3an uh3ras uhr3au uhrei4s uh4r3er uhr3o uh2ru uhs2 uht2 2u1hü uh3w 2ui ui2a ui4che ui3cho u3idd u3idm u3idt u1ie ui3em u1ig ui2ge uil4les u1im uin3it u3inl u3inw u4ische uisi4n u3ism ui2st ui3sta ui4te. ui2t3r ui1x uji3 u1ke uke2n uken3e uk3er3e uk3erl u1ki 2ukk u1k2l ukle3i uk3ler uk2n u2k3o2b uko3c uko4ma uk2r u4krai uk1s uk4t3ae uk4tan uk4tau uk2t3ä uk4t3eb uk4t3el uk4t5ent uk4t3er uk2th uk4t3i4m uk4t3in uk4top uk4t5o4ri uk2t3r ukts2 uk4t3um uk2u ukue3b uku2s uk2ü ukü3b 2ul u1la u3la. u2l3af ulan4di u4lanf ul2ar ula4ra ular4ra ularz4 ula4sc ulasch5 ul3aus u1lä ul3äm ulb2 ul1c ulda3e uldan3 ul4dar ul4d3er ul4dre ul4d5rue ul4drü uld4se ul3eig u2lek ul3elf ul3elt ul3emb ule2n ulen3e ulen3i ulenk4 u2lep ul3epe ul3epo ul3er4h ul3er4r u4leru ule4sa ule4s3t ule2t ul3eta ul3ext ulf2 ulg2 uli2k ulik5an ulik3o uli3p ulk2l ulk2r 3ulkt ul4lae ul4la4g ul2lä ul3le ull5eic ull5ein ul4lem ull5endu ull5erkl ul4lid ulli4n ul4l3od ul4loh ul4lop ull3s2 ulni2 ulo2i ulom2 ulomb3 u2l3o2p u2l3or ul4sam ul4s3ec ul4ser ul4s3in uls2t ul6st5erk ulst3h ul4sum ul2sz 4ulta ult3ar ultauto6 ulter6min ulti5t ul4tri ult3s u1lu ul3umb u2l3ur ul2vr ulz2w u4m5a4ben u4m5ae4st u4m3aku um3alb u4m3all u5mann u4m3app u4marc u4m3arg u4m3arm um3aro u4m3art uma5sses u4m5asts u4m3atl u4m3atm u4m3aus u4maut um3ärg u4m3ä4st umd2 u2m3e2b u4m3eck u2m3ef um3eic u4m3ei4n3 umene4 umens4 u2m3e2p umer4a u4merd u4m3erf u4m3erg u4m3erh u4m5erku u4m3erl u4m3ero u4m3erw ume4s 1umf 1umg 2umgü um3ill um3inh umi2o um3ir um3iso umi2t um3ite 1umk 1uml um3me umm5ein 4ummel um3mi ummi5erz um3n u2m3ob u4moel 3u2m3o2f u2m3o2p 3umöf ump4fa ump4fin 4umpfs ump5ler 1umr umsch4 umsche6f um4s3ed ums5ein ums5ens ums5erw um4stem um4sum umt2 um3to umu2r u1mü u2m1y 1umz 2umzw un1 4una. u2nab u3n4abe 3unabh 4u3n4abr u3nac u3nae un2ag u3n2al un4apa un4ara 4un2as u3n4au. u3nauh u3nau4s un2är 2und. un4da4b und3ak und5art un4d3as un4dän 3undd 2unde undein6f und5eis und5epo unde5ras under5ei underer6 und5eroe un4d5erö underten6 under6tend un4d3ex 4undg 4undi un4d3id un4dim und5in5i 3undn 2undo un4do4b un4d3op 4un2dr und3rä und3re und3ri und3rü 4undsc 2undu undue6b un4d3um undü4 un4düb 3undz une2d une2h un4ei. un3eid un3ein un3eis une2l u4n3elf 3unemp une2n unen3e uner5o4b u4n5erz. unes2 u4n3eul unf2 un3fa 3unfä 4unfe 3unfr un4g3ab un4gad un4gam ung5ass un4gat un4g3au ung5eig ungen6te. ungen6ten unger4e 3unget 3ungew 3ungez un4g3ig un4g3in ung2l ung5lat 3unglu 3unglü un2go un4g3rä un4g3ri un4gro ung2s3 ung5stang ungstra6s5 un3ide 3u2nif unik2 un3iro u3nisc un3isl 3u2niv 2unk un4k3ak un4k3an un4k3au unker6ke un4ket unkgene6 un4kne un4kno un4knu unko4p un4k3ro un4k3ru unks2 unk4tit unk4top unk4t5ri unk4tro un4kum un4kut un4küb unloe4 unlö2 1unm unmen4s un4n3ad unne2 unnel3 unn6en5e u2no2b uno2r 1unr uns2a unsch5el un5schen unsch5wi 3un3si uns2k un3ska uns2p uns2t unsta4g unstu4 un2sz 1unt 2unt. unt2a unt3ar 5unterd unte4ri unt6ers 2unth 2unti unti4m 2unto unt3s 1unv 2unvo unvol4 unvoll5 1unw 2unwä u1ny unz2w 2uo u1o2b u1oc uoe2d u1of u3or. u3or3a u3or3c u3o4ret u3org u3orh u3o4ris u3orm u3ors u3ort uo3ru u3orv u3orw u3os. uote2 u1ox uö2d u1öf u1ök 1upd upe2r upe4r3a uper3e uperer4 up2f3a u4pfen upf6erp u2pfi u4pf5lau u2p2fo u1pi up2l 2u3po 2upp up2pf up2pl uppor4 upport5 u1pr up3sl up2t3a2 up4t5en5e upt5erf upt5erg upt5erk upt5err upt5ers up4teu up2th up4ti4d up4t3il upti4m up4t3in upt3o upt3r up4tum up4tunf 2ur. u1ra u4r3abb ura4ben u4r3abl ur3abt ur3ael ur3ae4m ur3aen ura3fr ur3akk u4r3akt u5rallo ur3alt ural4ta ural4te ur3alu ur3amp 3u4r4an. u4ra4na uran5at uran4ba uran4bi ur4and u4ranf uran6fän ur5angs ur4anh u4rank u4r3ann ur4anr uran5s ur4anti u4r3apo u2rar ur5a4ren ura4ri ura4sp ur3atl u4r3att ur3auf ur3auk ur3au4s u2r3a2v ur3äl ur3ä2m ur3än ur3b4a urchas4 urchi4 ure4be. ure3e ur3eff ur3ehr ur3eig ure5ind u4r3ele ure4ne u4r5ener urens4 uren6sem uren6thu u4r5entn uren6zym ur3epo u2r3e2q urer5eig ure3un u4rex urfar4m5 urf5eig urf5erg urf5erk ur4f5erl ur4f3li ur4f5rec ur4fro ur4f3uh ur6gense urg5inn ur4g3ri u1ri uri4c ur3ide ur3ill ur3imp u4r3ind urin5it ur6ins. ur5in6sek urin6stin u4rint u4r3i4so urk2l urk2o urk3sp ur4m3ab ur4maeh ur4m5ang urm5art ur4matt ur4mäh ur5me. ur4mec urm5eie urm5einh ur4m5ere ur5mes ur4mum ur4m3ur urna4c ur4nol u1ro uro4fe ur3off u4r3orc u1rö urp2 3ursac ur4san ur4sau4 urs5ein urs5ere urs5erf urs5erk urs5ert ur4sex urs5inf urs5int ur2sk ursor6ten ur4staf urs5tak ur4sum ur4sun ur4tai urt2s urts4c u1ru urueck5er5 ur3uhr ur3umh ur3ums u1rü urück5er5 u1ry ur2za urz3ac ur4z3ec ur4zeg ur4z3ep urzer3 ur4z5ere ur4z5erk ur4z5erl ur4zin ur4z3op ur2zw us4aal us3aar usa2b us5achs us3aeh us3aer us3aes usa4gi usa2k usa4la us5alar us5alta u4s3amb us5amma u4s3amt u3s4ann u2sar usa4ro usa2s us3ast us3äs us5ber usby2 u2sce u4schab u6schaer u4schak uschal5l u4schar u4schas u4schär u4schef usch5eic u6scheind u6schene u6schent u6sch5erz usch5eul us4chi u6schimp u6schlan u6schlem usch5mis u4schmo u4schmö u4schof u4schok u4schor u4schur us4eb use5be u2s3ec use3en u2s3ei u3seid us5e4kel usen6dac usen6dere usenk4 usen6sem u4sentl use4rec u4s5er4pe u2se2x us3g u3shid u2sid usi5er. usi5ers. usi4kas usi4kat us3inf us3int us3iso u2sk us5lob usmas4 usma5sse us3oc us3oh us3op us3orb us3orc us3ost us3ou us4pate us4patz u3spec u3spek us3pic u3s4piz us6port. us6ports u4sprae u4s5prä us4s3ad us4s3eb uss3ec usse4g uss5einf uss5eins us4seka usse4kr us3sel us4sem usse4n us4s3ep us4ser uss6er. usser6fa uss5erla uss5er6le uss5erz us4sez u3s4sig us4sph uss5tal uss5tor us4s3um us4s3ur ust5arm u4stas usta4v ust5ave u4stele ustell5a us4ten ust6er. uster6fü uster6tr u4st5ess u5stin. u3stis u4stor us3töp u4strä u4s5trit u4s5trun us4tum u4stur u2sty usue4 us3uf us3umb us3umd u5sung. u3sur u2sya us3zi 2uß u2ßeb uße2n ußen3e ußer5ei u2ß1u 2ut u3ta. ut5ablo ut3adl ut3aeh ut3aer ut3aff ut3akt u3tal. u3talb u3tale ut3alg ut3alk ut3al4l ut3alt ut3a2m ut3ana ut3and u3tann ut3ar ut3a4sc ut3ass u3tati ut3auf utau4st ut3äh ut3är ut5chi u1te ut3ede ute3e uteg2 ut3ei. ut3eie u4t3eig ut3eiw ute4la u3ten. uten4ac uten3e u4t5entf uter3a utergene6 u4t5erhö uteri4e5 ute6ring ut5erwa ut5erwä u2tex utfi2 ut3hel ut3hi u2t3ho ut3hu u1ti u2t3i2d u4t5igel 3u4tili ut3ind u4t3inf u2t3ir u4tiso uti4vi utmas4 utma5sse u1to uto3c ut3oef uto5erf uto5ers uto5erz u3tom u4tops u4tord uto6rena uto6renb uto6renc uto6rend uto6rene uto6renf uto6reng uto6renh uto6reni uto6renl uto6renm uto6renr uto6renv uto6renw uto6renz uto3ru uto3s u1tö u2töl u1tr u4t3rea u4t3res u4t3ril u4t3rou ut3rü utsau4 ut4schl ut4scho ut4schö ut3ser ut4sin u4tsk ut3sky ut3so ut3sp uts4pe utt2l utto3e utt3s2 u1tu utu3en u2tum utu2n u4t3une utu4re utu3ro utu3ru ut2za ut4zed utz5ehr utz5eig ut4z5ene utzer6tra ut4z3e4t ut4z3in ut4zis ut2zo ut2zö ut2zw 2u1u2 uum1 uume2 uumen5e uungsex5 uungsmas6 uungsma5sse u1ü u2ve. uve3na uve3ra uve3rä uvoran4 uv2r 2u1x ux2a ux1o ux2or ux3t2 u1y2a 2uz uz3al uz3ar uz3eck u4z3ela uze2n u4z3ene u6z5er6hoe u4z5er4hö uzer4l u4z5erla u2z3i2k u4z3inf uzi3o uzo2f uz3or uz3ot uzu4pf uzz2 uz3zl ü1a 1ü2b 2ü3ba üb1ä 2übc 2übd übe2 übe3le ü3bem übe5n4au über3 überas4 ü3bes ü3bi üb3l üb5len üb5les üb1r ü3che ü3chi ü2chl üch4s3c ücke4n ück5erb ück5erh ück5er6ke ück5erla ück5ers ück5erw ück5erz ü2d1a2 ü2dä üde2l2 üden4g ü3dens üdi2r üd3i2t ü2d1o2 üdost3 ü2d1ö2 üdpol4n ü2d3r üd3s2 üd3t2 üdu2 üe2 üeb3l ü1ei ü2f1a ü2f1ä ü2f3ei ü4f3ent ü6fer6geb üfe2t üf3eti ü2f1i üf1l üf1s üf4tan üf2t3o üf4t3ri üft3s2 ü2fum üge4l3a4 üge4l3ä üge4lec üge6lei6s üge4len üge4ler üge4lo ügen3s4 ü2g1l ü2gn üg1s üh1a2 ühan3 ühan5d ü1he ü2h3ei ühe2m2 üh3emb üh3emi ü4h3eng ü4h3ent ü4h3erf ü4h3er4k ü4h3er4z ü2hex üh3i2 üh3lam ühl3au üh3lä üh4l3ei üh4lel üh4l5ene üh2lo üh2l3ö ühl4s3i ühl4sk ühl4sti üh3ne üh1o2 üh3rad üh3reh ühr5ei. ühren5e üh3ro ühs2 üh3t2a ü1hu üh3w ü1k2 ül1a ü2l3ef ül3eim ül3ein üler3a4 üler5ei ülerin6t ül3io ül2la2 üll3ad üll3au üll3ec ül4lei üll5eim üll5ein ül4lent üller4s üller6zeu ül4leu ül4lid ül4li4n üll5inh ül2l3o ül2lö ülls2 ü2l1o ü1lu ü2m1a ü4ment ü2m3e2p ümer3a ümerin6t ümi2 ü2m3id ü2m3in ü2m1u ün1a ün2da ün4d3ei ündergene6 ün2dr ün2dü ünen3 ü4n3erd ün2f ünf3ac ünf3ak ünf3ei ünf3le ünf3li ün2gl ün3gla ünkoh4 ünkohl5 ü2n1o ünste4r ü1nu ün2za ün4zei ünze4n ün2z3i ünzu2 ün4z3un ün2zw ü1o üpf3l ü1pi üp2p3a üp2p3l ür1a ü2r3ei ü2r3e2l ü4r3en4t3 ür4f3er4 ür2f3r ür4g5en4g ürge4ra ü1ri ürk2l ü1ro3 üroe2 ürom4 üror4 ürp2 ür2rh ür4ster ürte4l3 ü1ru ür4z3in ür2zo ür2zö ürzt4 ür2zw ü1s2a üsch5af ü3schi ü4schl üse3e üsen3e üse3r4 ü1s2p üs2s3a üs2s3c üs3sel üsse6l5ers üsse4l5i üs2s3o üs2s3t ü3s2su ü2st3a ü4stei üste4n ü1su 2üt üt3al ü3tan üt3au ü1te üte2n üten5s üter3a üte6r5eis üte4rer üterich6 ü2t1h ü1ti üt1r üt2se üt2s3t ütte4n3 üt2tr ü1tu üt2za üt2zw 1v v1ab v2ab2r 2vabs va1c va3e2m va1f v2ak va3lam val4en val5ero val5erp val4lae val4lä val4lo valls4 val4sa val4sp val4su 2valu 2v3amt 2vanb v3ansa 4v3ansc v3antr 2v3arb 2v3arm 2v3art va4s3ek 2v3ass va4s3to va2t3a2 va2tä va4t3ei vatem4 va4t5emp va4ten4g va4t5enz vates4 va4tess va2t3h va4t3id va4t3in vati6ons. 4v3atmo va4t3op va4t5ora va4t5ord va4torg va2t3r vat3s vats4a vats4p va2t3u vat3z 2v1au vä1 2vb2 2v1c 2vd2 vdi2e ve2a ve3ak 2ve3al ve3an ve3ar veb2 ve1c ve1e2 ve4ff veg2 2v3eig 2v3ein veit2 veits3 ve3l4ar ve4l3au velo5p ve2lu vembe4 2v3emp vendi4 4v3endu ve5ne. vene4n 4v5energ ve4n3in venk2 ven4t5a4g 4v3entd vent4st venzer5 ven6z5ere ve3of ve1p ve2r1 ve3ra. ve5rada ve5rade ve5randa ve5rane vera4s ver6b5art ver5blei ver5b4li ver3d4 vere2 ve3rec ve5reif ve5reig vere6in verein6s5tr ve3rem ve3res ve4rf4 ver5fl ve4r3g2 vergas4 verga5sse ve3rit verk2 verma5s6sen vermen6s vern4a ver3n4e veron4 vers4au ver4sep vers4k ver5sta ver3sw vert6er verue4 ve3rus verü4 verz2 ve2sp ves4t vesti4e vete3r 2v3e2tu ve1u 2v1f vf4gh 2vg2 2v1h vi3ana vi3ar via3t2 vi2c vie4h3a vie4l3a4 viele4 vie6l5er6z vi4ene vier5ad vie4rec vie4r5ei vie5r4er vie2w3 vig2 2vii vi2l3a vi2lä vi4l3e4h vi4lei viler4 vi4l5ers vi4l3in vil4le. vi2l3o vi2ma2 vi2n3a ving3 vings4 2v3inv vin4zin vi3s2a3 vise2 vis4o vi5sor vi2sp vis2u vit2 vi4tam vi3z viz4e vize3i vize3s 2v1k2 v1l2 v3le 2vlic v2lie 2v1m vmwa2 2v1n v1ob vo2be vob4l voge2 vogel3 vo2gu vol4la voll5an voll5ar voll5auf. vollen4 vol6l5end voller4 vol6lerf vol6lert vol4li vol4lu von3s2 vo2pe vor1 vor3a voran6schl voran6ze vor5de vo2re2 vor3es vo4rie vo4rim vo4rin vo2ro2 voroe4 vo2rö2 vorsch4 vor5ta 2v1p2 v3ps 2vq 2v1ra v1rä v2ree v3ris 2v1s2 vsau2 vson2 vsu1 2v1t2 vue1 vu3en. 2vumf 2vumg 2vumk 2vv 2vw 2vz 1w 3waa wab4bl wa3cho wach6stub 3wacht wach6tra wach6trä wa3chu 3waeld 4waeng 3waes wae4ss w3aeu waffe4 waffel5 wa3ge 3wage4n3 wa2g3n 3wah wahlen4 wah6lens wah6l5ent wah4ler wah4l3i wahl3s4 wai2b wak3l wa3la5c 3wald wal4d3a wal4del wal6denk wal4din wal4d3r wa4les walf2 wa3li wal4li4n wal2m3 wa2lo wal4t3a wal6t5er5e wal6t5erf wal6terl wal4t3h wal4t5in wal4t3o wal4tri walt6sta wal4tur 3walz walze4 walzen5 wal4zw wam4ma wa3na wa4nau wan4dab wan4dan wan4d5ar wan4d5as wan4d5eb wan4dec 5wander wan4d5in wan4dob wan4dr wan4due wan5ge wang6er wang4s3 3wann wan4z3a wanze4 wan6z5en6d wan4z5er wa2p 3ware wa4ref wa4reg ware3i warein4 war4ma war4m3i 3warn war4th wart4st war3u war4za war6zent 3was wa3s2a wa4scha wa5sche. wasch5ei wa5schen wa5schi wa4sch5l wa5schun wa4schw wa3se wa3s2h wasser5e wa3su wat2c 3watt 3wäh wäh3ri 3wäld 2wäng wärme5i 3wäs wä2ss 2w1äu 2wb2 wbu2 2w1c 2wd we2a we2b3a webeat5 webe3e we2b3i we2b3l we2bo we2b3r web3sp we3cha wee2 weed3 2wef we2fl 3weg we2g3a we4g3ei we4g5en4g we4g5erk weg5ersc we4gim we4gin we2g3l we2g3n we2g3o2 we2g3r weg3s4a 3weh weh4rei weh4r5er4 wehr3o4 wei4ble weib4s wei3de wei3dr 2weie 2weif weifel6d wei4g3a wei4gra 2weik 3weil wei4na wein5erz weinsau6 wei4san wei4sas weiser6g weiser6h weisex5 3weish wei6takt. wei4tal wei4t5ra weit3s weizen5 wele4n3 wel4kl welle4 wel6schl wel6schr wel4t3a4 welte4 wel4teb wel4tel wel6t5en6de wel4ter welt5ere welt5ern welt5ers welt5erw welt5erz wel6t5esc wel4th wel4t3i wel4to wel4t3r wel4t3u wem4ma4 wena2 wendegene6 wen4kau wen4k5la wen4k5ri we2no we4r3a2 werbe5i werb4s3 3werbu 2werc werde5i 5werdens 3werdu werer4 werga4 wer4g5am wer4gan wergel4 wer6g5els wer6g5en6t wer4g3l wer4gn wer4g3o wer4g3r werg3s4 w4e3ri werin4d we4ri4o 3werk. wer4k3a wer4kä 3werke wer4k3i wer4k3l wer4k3o wer4k5re 3werks wer4ku wer4kü wer3o wers2 wer3sh wer6star wer4t3a wer4t5än wer6t5eig wer6ter6g wer6t5erm wer6t5ero wer6t5erö wer4t3h wer4t5in wer4t3o4 wer4tre wer4t5ri wert5sk wer4t5um wer4t5ur 3we3se wesen4s5 we2sp we2ss wes4t we4st3a west5ec we4st5ei we5sten. we6st5end. west5ende we6steng we5ster. we5stern we5sters we6st5erwei we4steu we4sti we4st3o4 we3stö we4st3r we4stu 2wets 3wett wet4ta wett3r wett3s we1u 2w1ey 2w1f 2wg whi2 w3ho wicht6se 3wid 2wieb wiede4 wie5la wie5n4e wie4s3t wigge4 wi2gl 3wild wil4da wil4del wil4dr wim4ma wim6m5ent wim4mu wi3na win4d3a win4d5ec win4d5ei win6d5erz 3win4dr wind5ri win4g3l win4g3r wings4 wing5se win4kl win6n5er6sc win6nerw win4neu win4no win4num win3sk wi2r 3wirk wir6kene 2wirn 3wirt wi6schef wi4sch5l wi4scho wi4schr wis4e wi5sen wi2sp wi2ss wiss4z wist3r wi3th 3witzi 3witzl w2j 2w1k 2w1l 2w1m 2wn wn3sh 3wo1c wo4cha woche4 woch4st 3woh woh4lei woh4l5e4t woh4na woh3r 3wolf wol4fr wolfs3 wol4la woll5ar wol4lä wor3a wo2r3i work3a wort3a wort3ä 3worte wort5ei wor4tel wor6t5erf wor6t5erh wort3h wor4t3r 3wort3s4 wor3u wor3ü wö1c wöl4fa wöl4fo 4wölft wör2g 2w1p 2wq 2w1ro 2w1s wse2 wser3 w3s2h w2ska ws2ki ws2ky w2ss w2s1u 2w1t2 wti2 3wuc wuch4sa wuch4sc wuch4sp wuch4s5t 3wuec wue3le 3wuerf 3wuerg 5wuerst wues2 2w1u2f wun4d3a wun4dä wun4di wund3r 2wung wun4g3r wung5sc wun2s wunsch5ei wunsch5l wur4f3a wur4f5ei wur4fel wur4fer wur4f3l wur4f3o 3wurm wur4m3a wur4mei wur4mer wurmes4 wur6m5ess wur4m3i wurs4 3wurst wur4st5a wur4str wus2 wu2t3 wutz2 3wüc 3wüh 3würf 3würg 3würst wüs2 2ww 2wz x1a 1xa. 2xab xa2be xa2br xaby2 1x2ac 1x2ad 1x2a1e2 xa3fl 1x2ag2 2xal1 xal2l3 xa2m xa3mer 2xan x2an. xa2na x3anb 3x2ane xant4h 3x4anti xa2r 1x2as xau3s2 xa2z 2xb2 xcal2 x1ce x1ch x1cl 2xd xda2 xdi2e xdy2 xdys3 1xe 2x1ef 2x3e2g 2x1ei 2xek xe2l 3xel. xel3a xe3lei 2xemp x2en xenk2 xen3s2 2x1e2p 2x3erl xer4la xer3s2 2x1eu 2x1ex 2x1f2 x3fi 2xg2 2x1h x2i xi3al. xib2 xi1c xich4 xi3dan xide2 xi4d3ei xi4d3em xidi2 x3i2do 3xi2e 3xik2 xil4an xi4lar xi4l3au xi4l3er xi2lo xi2l3u 1xim x3imp xin3s2 1xip xi2s3a 3xisc xi2s3e xis3or xi2sp xi2ss4 xi2su xi3te x3i2tu 2x1k2 xkal2 2x2l2 x3la x3lä x3le x3lo 2x1m 2x1n x1od xo2du 2xo1e2 x1o2l xonen4 xo4n5end x1o2r xos2 x2ot 2x1ö2 2x1p2 x3par x3pau x3plor xpor4ta xpor6t5er6 xpor4t5r x3pos x3pu 2x1r 2x1s2 x3sh xst2 2x1t xt1a x2ta2b x2tak xt4ane x2tau xt1ä x2tän x2täs xtblock5 x2t3e2b x2t3e2d x4t3eig xt3ein x2t3el x4t3ent x4t3er4f x4t3er4g x4t3er4l xter4s x4t5ersc x4t5erse x4t3erw x2t3e2v x2t3ex xtfi4l xt1h x2thi x2t3id xti4la xti4lei xti4lin xt5il4lu x2t3im xt3ind xt3inf xt3inh xt3ins xt1o2 x2tob x2tor xtra3b4 xtra3c xtra3l xt5rand x4t3rau xt3rec x4t3rep x4t3res xt1s2 xtu3e x2t3um x2t3un x2tup xtu3ra 1xu xu1a xu1e x1um xu2n 2xunt xu2s xusa2 xuss2 xus3t 2x2v x3ve xvil2 x3vo 2xw 1xy. y1 y2aba y2abä 1y2ac y3acc yach4t5r yacht5s4 y3acr y2ad y2ae y2ag ya1h y2a1i2 1yak y3al. ya3la y2ali y2ana y2ane yan2g y2aq y2ara ya2ro y2at y2az y2ä y3ät yb2r ycer4 y4chia ych3n yd3al ydri2 ydrid3 y2ec ye2d y2ef y2el ye2ne yen2n yer3a2 y2ere y2eri yer2n3 ye2s ye3s2p y3est yf2 ygene4r yg2l yhr2 2yi2 yk2 yke3n yk3s yk3t y2l3ac yl3aet y2l3a2m yla2n y4lan3e y4lang yl4ante yl4anti y4lantr y2lar yl3ät yl1c yle2 y2le. yle3b y2l3es y2l3et ylinde4 yli4ne. ylk2 yl4loe4 yl4lo4s yl2lö2 yloid3 yloni5e yl3ora yltri3 ym4ae ym4an ym4är ym4el yme3r ym1p ym4pha ym4phor ympi3e ynae4r y2n3an ynä2r yndro6ma y3ne. yne4c yn4eu ynk2 yn1o yno2d yno2t yno2v yn3t2 ynta2 y2ob y2oc y2od y2oe yof2 yoff3 1yog yog4a3 y2ok y2ol y2om yo2pe yo3ru y2ost yout3a y2oz y2ö 2yp yp3a2b ypa2n y2pec ype4r yper3o4 y2p3i2d ypi2e y2p3in y2p3lo ypo3 ypot2 y2ps yp1t y2p3um yrae3i yrä3i yri5er. yri5ers yro1 yro4s5te yrr2 ys2an ysau2 ys2c yse3e yse3i ysein4 yse2n3 y2sk ys3l y3s2n y2sph y2spl y2ss yst4e yste4n ys2th ysti5er ysto4le y4s3tro ys2ty ysu2 y2s3ur ys2z yte2n3 y2tes yt2h yt4he ythi3e y3to yu2r yure3 yvet2 yvon4 ywur2 yy2 yze5r4i 1z 2z1ab 2zacc 2z3ach za3cha za3chä 2z1a2d za2e z3aec 3z2aeh 2z3aem 4z3aend 4z5aengs z3aerm za3ess 2z3aet 4z3aeus 4z3aeuß za3f4a 2z3aff za2ga za3gr 3z2ah zah4n5er4 za3hol z2ai za3im z1ak 2z3akk za3kl 2z3alb 2z3ald zal4e 2z3all 2z3alp 2z3alt 2z1am za2me 2z3a2na3 2zanb zan3d2 2zanf 4z3anga z5angeb z5angel z3angl 4z3angs 2zanh zan4ka zan4kl 2zanl 2z3anm 2z3anp 2zanr 2z3ans z4ans. zanti3 2zanw za1o2 zapf3l 2z3a2po 2z1a2q 3zar. 2z3arb 2zarc 2z3arg 2z3arm 4z3arti zar4t3r 2z3arz z1as zas2b zas2p 2z1aß z1at 3z4aub 2z3au2f3 2z3aug 2z3auk z3aur z3ausb z3ausf 4z3ausg z3ausl 4z3auss z3ausw 2z3aut 2z1äc zäh4lin 4zähnl zäh3r 2z1äm z3änd z3ängs z1äp z3ärg 2z3ärm 2z1ät 2zäug 2z3äus 2zäuß 2zäx 2zb2 zba4c zbach3 z3be zber4e z3bo zbue3b zbü3b zby2 2z1c 2zd2 zdan2 zdä1 zdi2e z3ds zdue3b zdü3b ze4ana zeau3 zeaus4 4z3e4ben 4z3echo zed2 ze4dik ze4dit ze1e2 2z3eff zeg2 ze4gal zehe2 zehen3 zeh2l zehn3a zeh4n5en zei5cho zeie2 zei3f2 zeik2 zeile4 zeilen5 2z3ein ze3in. z4ein4a zeinbu5 zein4de zei4n3e zeinen4 z4eino ze5in4se zeis4 zei3sk ze4it zei4t3a zei4tä zeite4 zei4teb zei4tei zei4tel zei4t5er5 zei4t3o zei4tr zeit5re zeit5ri ze2la zel3a4d zel3ae ze3lag zel3am zela4n zel5an5e zel5ang zel3au zelau4s5 ze2l3ä zel3d4 ze4led zelei6er ze4l5eig ze5leis z3e4lek 4zelekt ze4l3en ze4l3er zeler5e ze4les zel3ex zel3id ze4l5inf zel5int 4z3e4lit zel4lab zel4l5ac zellar6t zel4län zel4leh zel6lein zeller6z zel4lum ze2lo zel3ob zelp2 zel4tau zel4t5in zelu2 zembe4 zem4e ze4mis 2z3emp zen4ade zena4g ze5natt ze4n3au ze2nä zende4k zen5ebe zen5en5e zen5erf zen5erke zen5ern ze4nerw zen5ess zen3f 4z5en4ge. zenge6ne6 4zengp ze4nid zen5inn zenk2 zen3n ze2n3o zensch4 zen4sem zen4ser zens4po 4z5entna 4z5en4tro zent3s zen4z5ar zen6zert zen6zerw zen4zin zeo2r ze4pen ze3p2f zeppe3 zer3ad zer3a4g zer3an ze4r3at 4z3erbi zer3ed 6z5ereign ze4rein ze4remi zer5end zer5erw 4z5erfül 4z5ergae 4z3ergä zer4gon 4z3er4gu ze4r3i4d zerin4d zerin4h zerin6st zerin6te 5zerl. zer6lang zer6laub zer4le. 4z5erleb zer4len zerlo4 zer6maec 4z5er4mäc 5zerme 4z5ermit zer4nan zer4n5e4b zer6nerb zer5obe ze3rop ze3ros ze3rös 2z3erq z5ersae 4z5ersat 4z3ersä 6z5er6strec zer4t5a4g zer6t5akte zer4tar zer6t5emp zerten4 zerter5 zer6t5ere zer6terl zer4t5in zer4ton zer6t5rau zert3s ze2s zes2a zes3au ze3sär ze3sch zes3er ze3spe ze3s4ph zes4sa4 zess5ag zess5an zes4seb zessen4 zes6s5end zes4ser4 zess5erf zess5erz zes6s5ort. zes6s5or6te. zes6s5or6ten zes6s5orts zes4sp zes4sum zes4s5ur4 zes4th ze2ß1 4z3e4tap 4zetat 2z3eth 4zetts zeug3a zeu4gei zeu4gel zeu4g5e4m zeuge4n zeu4g3r 2z3eul ze3um ze3ur 2z1e2x1 2z1f2 zfae4s zfu5sse 2zg2 zgefä5s zge3n4a zger4a zge6r5in6nu zger4s5e 2z1h2 zhau4t3 zi5alei zi5aleng zi5alim zi5a4lin zi3ang zi2ar zib2 zi3cho zich6t5er6 zi4d3ei zie4hei zie4l3a ziele4 zie4l5eb zie4lei zie4l5er zie4let zie4l3i zi3ell zie2n zie4r5ei zi3erh zi5ertu zi3es. zi3ess zi3esu zi3esz zif4fr zi3fl zi4gec 4z3i4gel zig3sp zi4kon 3zil zil4e zi4mit 2z3imp zim2t3 2zimu zi3nal 4z3inde z4ine zi4n3et zi4n3in 4z3i4n3it zin4k3l zinks4 zin4na 4z3insa zin4sae 4z5insel zin4s5er 4zinsuf zi2o zio3d zi3on. zi3ons zip4a zirk2 zirks3 zi2sp zi2ss zis4st zi6stern zi3s2z zi4t3an zite2 zithe4 zi2t3o2 zit3s 2zj 2z1k2 zke2 z3ko zko3ef z3kr zkue3b zkü3b z3ky 2z1l zland5er z3lo 2z1m2 zma5s6sen zma5sses zmau4s 2z1n2 z3ne znebe4 znei3 zn4eu 2z3o4as 2z1ob 2z3oe2d zoe2f 3z4oeg 2z3oek 4zoel. 4zoels z1of zo2gl zogs3 2z1oh zol5ant zo4lig zol4la4 zol4lä zoll5ei zol6l5en6t5 zoller4 zol6lerf zol6l5erk zol6l5erl zol6lert zol4li4n zol4lis zol4lo 3zon zon3s2 zon4t5er 3zo2o zoos2 2z3o2pe 2zopt 2z3ora zo2ri z4orn zor4n3a zor4ner 2z3ort 2z3osz zo2t3a 2z1ou zo2w zo2ze 2z1ö2d 2z1ö2f 3zög 2z1ök z1öl 2zöl. 2zöle z2öli z2öll 2zöls 2zön 2z1p2 2zq 2z1r2 z3ra z3ru 2z1s2 zsau4 zsch2 zse3r4u z3sh zsi1 z3sk z3sl zst2 zsu1 2z1t zt3abr zta2n z4t3an3e z4t5anze z2t3ar zte3e2 zt3ehe zt5eins z4t3ent z4t3erz z3t4es2 zte3sk zt3hel z2t3hi z2t3ho z2thu zt3ind zt3inf zt3ins zt4ram zt3rec zt3s z4t3urs ztz2 zu1 zuae2 zuä2 zub2 zubu3s4 zu2c zucht5o zucht5r zucht5s zud2 zudi4e 2zueb zu3ebb zu3ebn zue2k zu2el zu2en zu3ent zu4erc zu4ern zue4r3o4 zu4ers. zue2s zue2t zuf2 zu4gans zu4g3ar zu4gat zug5eis zu4g5ent zugg2 zug5inn zu4g3la zu4glä zu4glö zug2r zug5rau zug4ste 2z3uhr zui2 zu3le 2z3ult zu3lu 2z3um. 2z3umb zumen4s 2zumf 2zumg 2z3umh 2zumk 2zuml zu3mo 2zumr 2z3ums zu3m2u 2z3umw 4z3unab zun4am zu3n2e 4z3unem 4z3unfa 4zunfä zunge4n5 4zunget 4z3ungl 4z3u4nio 2zunr 2z3uns 2zunt zuo2 zup4fi zu3r4a 2z3urk 2z3url 2z3urn 2z3urs 2z3urt zu3s2 zu5sch4 zus4e zus4p zut4a zu3te zut4r zuve4 zuz2 2züb zür3c 2zv 4zwaer 4zwaes 2zwaf 2zwag 2zwah 2zwal 4zwand z4wang 2z3wap 2zwa2s zwasse4 2zwäc 2zwär 2zwäs 2zweb z2wec 4z3wech 2zwed 2zweg 2zweh 5z4weig 4zweil 4zwein zwei5sc 2zwel 2zwen z4werg 4zwerk 4zwert 2zwes z2wic 2zwid zwi2e 4z5wied 4zwild 5z4wing 4z5wint 4zwirr 4zwirt z4wisc 4zwiss z4wist 2zwur zwur4m3 2zwü zy2le zy2m3i 2zz zz2a zzae2 zza3t zz3en4s zze3s z2z3id z2z3i2k zzi2n zz3ini zz2o zzol2 z2z3or zz2ö zzug4s zz2w",
["lefthyphenmin"]=1,
- ["length"]=183206,
- ["n"]=26481,
+ ["length"]=256443,
+ ["n"]=34762,
["righthyphenmax"]=1,
},
["version"]="1.001",
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-gr.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-gr.lua
new file mode 100644
index 00000000000..14439457f2c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-gr.lua
@@ -0,0 +1,20 @@
+return {
+ ["comment"]="% generated by mtxrun --script pattern --convert",
+ ["exceptions"]={
+ ["n"]=0,
+ },
+ ["metadata"]={
+ ["mnemonic"]="gr",
+ ["source"]="hyph-el-monoton",
+ ["texcomment"]="% no comment",
+ },
+ ["patterns"]={
+ ["characters"]="'ʼΐάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϲάέήίόύώ᾽᾿’",
+ ["data"]="α1 ε1 η1 ι1 ο1 υ1 ω1 ϊ1 ϋ1 ά1 έ1 ή1 ί1 ό1 ύ1 ώ1 ΐ1 ΰ1 α2ι α2ί α2ί ά2ι ά2ι ά2ϊ ά2ϊ α2υ α2ύ α2ύ ά3υ ά3υ ε2ι ε2ί ε2ί έ2ι έ2ι έ2ϊ έ2ϊ ε2υ ε2ύ ε2ύ έ3υ έ3υ η2υ η2ύ η2ύ ή3υ ή3υ ο2ι ο2ί ο2ί ό2ι ό2ι ό2ϊ ό2ϊ ο2υ ο2ύ ο2ύ ό3υ ό3υ υ2ι υ2ί υ2ί ύ3ι ύ3ι α2η ά3η. ά3η. α2ϊ ά3ι. ά3ι. α2ϋ ε2ϊ ε2ϋ ο2ει ο2η ό3η. ό3η. ο2ϊ ό3ι. ό3ι. ι2α ι2ά ι2ά ι2ε ι2έ ι2έ ι2ο ι2ό ι2ό ο3ϊ3ό ο3ϊ3ό ι2ω ι2ώ ι2ώ .ι3 .ί3 .ί3 η2α η2ά η2ά η2ε η2έ η2έ η2ο η2ό η2ό η2ω η2ώ η2ώ .η3 .ή3 .ή3 υ2α υ2ά υ2ά υ2ο υ2ό υ2ό υ2ω υ2ώ υ2ώ .υ3 .ύ3 .ύ3 4β. 4γ. 4γκ. 4δ. 4ζ. 4θ. 4κ. 4λ. 4μ. 4μπ. 4ν. 4ντ. 4ξ. 4π. 4ρ. 4σ. 4ϲ. 4ς. 4τ. 4τζ. 4τσ. 4τϲ. 4τς. 4φ. 4χ. 4ψ. 4' 4ʼ 4᾿ 4β' 4βʼ 4β᾿ 4γ' 4γʼ 4γ᾿ 4δ' 4δʼ 4δ᾿ 4ζ' 4ζʼ 4ζ᾿ 4θ' 4θʼ 4θ᾿ 4κ' 4κʼ 4κ᾿ 4λ' 4λʼ 4λ᾿ 4μ' 4μʼ 4μ᾿ 4μπ' 4μπʼ 4μπ᾿ 4ν' 4νʼ 4ν᾿ 4ντ' 4ντ’ 4ντ᾿ 4ξ' 4ξʼ 4ξ᾿ 4π' 4πʼ 4π᾿ 4ρ' 4ρʼ 4ρ᾿ 4σ' 4σʼ 4σ᾿ 4ϲ' 4ϲʼ 4ϲ᾿ 4τ' 4τʼ 4τ᾿ 4τζ' 4τζʼ 4τζ᾿ 4τσ' 4τσʼ 4τσ᾽ 4τϲ' 4τϲʼ 4τϲ᾿ 4φ' 4φʼ 4φ᾿ 4χ' 4χʼ 4χ᾿ 4ψ' 4ψʼ 4ψ᾿ .β4 .γ4 .δ4 .ζ4 .θ4 .κ4 .λ4 .μ4 .ν4 .ξ4 .π4 .ρ4 .σ4 .ϲ4 .τ4 .φ4 .χ4 .ψ4 4β1β 4γ1γ 4δ1δ 4ζ1ζ 4θ1θ 4κ1κ 4λ1λ 4μ1μ 4ν1ν 4π1π 4ρ1ρ 4σ1σ 4ϲ1ϲ 4τ1τ 4φ1φ 4χ1χ 4ψ1ψ 4β1ζ 4β1θ 4β1κ 4β1μ 4β1ν 4β1ξ 4β1π 4β1σ 4β1ϲ 4β1τ 4β1φ 4β1χ 4β1ψ 4γ1β 4γ1ζ 4γ1θ 4γ1μ 4ρ5γ2μ 4γ1ξ 4γ1π 4γ1σ 4γ1ϲ 4γ1τ 4γ1φ 4γ1χ 4γ1ψ 4δ1β 4δ1γ 4δ1ζ 4δ1θ 4δ1κ 4δ1λ 4δ1ξ 4δ1π 4δ1σ 4δ1ϲ 4δ1τ 4δ1φ 4δ1χ 4δ1ψ 4ζ1β 4ζ1γ 4ζ1δ 4ζ1θ 4ζ1κ 4ζ1λ 4ζ1μ τζ2μ 4ζ1ν 4ζ1ξ 4ζ1π 4ζ1ρ 4ζ1σ 4ζ1ϲ 4ζ1τ 4ζ1φ 4ζ1χ 4ζ1ψ 4θ1β 4θ1γ 4θ1δ 4θ1ζ 4θ1κ 4θ1μ 4ρ5θ2μ σθ2μ ϲθ2μ 4θ1ξ 4θ1π 4θ1σ 4θ1ϲ 4θ1τ 4θ1φ 4θ1χ 4θ1ψ 4κ1β 4κ1γ 4κ1δ 4κ1ζ 4κ1θ 4κ1μ 4λ5κ2μ 4ρ5κ2μ 4κ1ξ 4κ1π 4κ1σ 4κ1ϲ 4κ1φ 4ν5κ2φ 4κ1χ 4κ1ψ 4λ1β 4λ1γ 4λ1δ 4λ1ζ 4λ1θ 4λ1κ 4λ1μ 4λ1ν 4λ1ξ 4λ1π 4λ1ρ 4λ1σ 4λ1ϲ 4λ1τ 4λ1φ 4λ1χ 4λ1ψ 4μ1β 4μ1γ 4μ1δ 4μ1ζ 4μ1θ 4μ1κ 4μ1λ 4μ1ξ 4μ1ρ 4μ1σ 4μ1ϲ 4μ1τ 4μ1φ 4μ1χ 4μ1ψ 4ν1β 4ν1γ 4ν1δ 4ν1ζ 4ν1θ 4ν1κ 4ν1λ 4ν1μ 4ν1ξ 4ν1π 4ν1ρ 4ν1σ 4ν1ϲ 4ν1φ 4ν1χ 4ν1ψ 4ξ1β 4ξ1γ 4ξ1δ 4ξ1ζ 4ξ1θ 4ξ1κ 4ξ1λ 4ξ1μ 4ξ1ν 4ξ1π 4ξ1ρ 4ξ1σ 4ξ1ϲ 4ξ1τ 4γ5ξ2τ 4ρ5ξ2τ 4ξ1φ 4ξ1χ 4ξ1ψ 4π1β 4π1γ 4π1δ 4π1ζ 4π1θ 4π1κ 4π1μ 4π1ξ 4π1σ 4π1ϲ 4π1φ 4π1χ 4π1ψ 4ρ1β 4ρ1γ 4ρ1δ 4ρ1ζ 4ρ1θ 4ρ1κ 4ρ1λ 4ρ1μ 4ρ1ν 4ρ1ξ 4ρ1π 4ρ1σ 4ρ1ϲ 4ρ1τ 4ρ1φ 4ρ1χ 4ρ1ψ 4σ1δ 4ϲ1δ 4σ1ζ 4ϲ1ζ 4σ1ν 4ϲ1ν 4σ1ξ 4ϲ1ξ 4σ1ρ 4ϲ1ρ 4σ1ψ 4ϲ1ψ 4τ1β 4τ1γ 4τ1δ 4τ1θ 4τ1κ 4τ1ν 4τ1ξ 4τ1π 4τ1φ στ2φ ϲτ2φ 4τ1χ 4τ1ψ 4φ1β 4φ1γ 4φ1δ 4φ1ζ 4φ1κ 4φ1μ 4φ1ν 4ρ5φ2ν 4φ1ξ 4φ1π 4φ1σ 4φ1ϲ 4φ1χ 4φ1ψ 4χ1β 4χ1γ 4χ1δ 4χ1ζ 4χ1κ 4χ1μ 4ρ5χ2μ 4χ1ξ 4χ1π 4χ1σ 4χ1ϲ 4χ1φ 4χ1ψ 4ψ1β 4ψ1γ 4ψ1δ 4ψ1ζ 4ψ1θ 4ψ1κ 4ψ1λ 4ψ1μ 4ψ1ν 4ψ1ξ 4ψ1π 4ψ1ρ 4ψ1σ 4ψ1ϲ 4ψ1τ 4μ5ψ2τ 4ψ1φ 4ψ1χ 4γ5κ2φ 4γ1κτ 4μ1πτ 4ν1τζ 4ν1τσ 4ν1τϲ 4βρ. 4γλ. 4κλ. 4κτ. 4γκς. 4γκϲ. 4γκσ. 6κς. 6κϲ. 4κσ. 4λς. 4λϲ. 4λσ. 4μπλ. 4μπν. 4μπρ. 4μς. 4μϲ. 4μσ. 4νς. 4νϲ. 4νσ. 4ρς. 4ρϲ. 4ρσ. 4σκ. 4ϲκ. 4στ. 4ϲτ. 4τλ. 4τρ. 4ντς. 4ντϲ. 4ντσ. 4φτ. 4χτ. 4γκ1μπ 4γκ1ντ 4γκ1τζ 4γκ1τσ 4γκ1τϲ 4μπ1ντ 4μπ1τζ 4μπ1τσ 4μπ1τϲ 4ντ1μπ 4τσ1γκ 4τϲ1γκ 4τσ1μπ 4τϲ1μπ 4τσ1ντ 4τϲ1ντ",
+ ["lefthyphenmin"]=1,
+ ["length"]=3904,
+ ["n"]=573,
+ ["righthyphenmax"]=1,
+ },
+ ["version"]="1.001",
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-gu.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-gu.lua
new file mode 100644
index 00000000000..f2728c235ee
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-gu.lua
@@ -0,0 +1,20 @@
+return {
+ ["comment"]="% generated by mtxrun --script pattern --convert",
+ ["exceptions"]={
+ ["n"]=0,
+ },
+ ["metadata"]={
+ ["mnemonic"]="gu",
+ ["source"]="hyph-gu",
+ ["texcomment"]="% no comment",
+ },
+ ["patterns"]={
+ ["characters"]="ઁંઃઅઆઇઈઉઊઋએઐઓઔકખગઘઙચછજઝઞટઠડઢણતથદધનપફબભમયરલળવશષસહઽાિીુૂૃૄેૈોૌ્ૠૢૣ‌‍",
+ ["data"]="2‍2 1‌1 અ1 આ1 ઇ1 ઈ1 ઉ1 ઊ1 ઋ1 ૠ1 એ1 ઐ1 ઓ1 ઔ1 ા1 િ1 ી1 ુ1 ૂ1 ૃ1 ૄ1 ૢ1 ૣ1 ે1 ૈ1 ો1 ૌ1 1ક 1ખ 1ગ 1ઘ 1ઙ 1ચ 1છ 1જ 1ઝ 1ઞ 1ટ 1ઠ 1ડ 1ઢ 1ણ 1ત 1થ 1દ 1ધ 1ન 1પ 1ફ 1બ 1ભ 1મ 1ય 1ર 1લ 1ળ 1વ 1શ 1ષ 1સ 1હ 2ઁ1 2ઃ1 2ઽ1 2્2 2ં2",
+ ["lefthyphenmin"]=1,
+ ["length"]=336,
+ ["n"]=66,
+ ["righthyphenmax"]=1,
+ },
+ ["version"]="1.001",
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-hi.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-hi.lua
new file mode 100644
index 00000000000..bf983ffab66
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-hi.lua
@@ -0,0 +1,20 @@
+return {
+ ["comment"]="% generated by mtxrun --script pattern --convert",
+ ["exceptions"]={
+ ["n"]=0,
+ },
+ ["metadata"]={
+ ["mnemonic"]="hi",
+ ["source"]="hyph-hi",
+ ["texcomment"]="% no comment",
+ },
+ ["patterns"]={
+ ["characters"]="ँंःअआइईउऊऋऌएऐओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलळवशषसहऽािीुूृॄेैोौ्॒॑ॠॡॢॣ‌‍",
+ ["data"]="2‍2 1‌1 अ1 आ1 इ1 ई1 उ1 ऊ1 ऋ1 ॠ1 ऌ1 ॡ1 ए1 ऐ1 ओ1 औ1 ा1 ि1 ी1 ु1 ू1 ृ1 ॄ1 ॢ1 ॣ1 े1 ै1 ो1 ौ1 1क 1ख 1ग 1घ 1ङ 1च 1छ 1ज 1झ 1ञ 1ट 1ठ 1ड 1ढ 1ण 1त 1थ 1द 1ध 1न 1प 1फ 1ब 1भ 1म 1य 1र 1ल 1ळ 1व 1श 1ष 1स 1ह 2ँ1 2ं1 2ः1 2ऽ1 2॑1 2॒1 2्2",
+ ["lefthyphenmin"]=1,
+ ["length"]=358,
+ ["n"]=70,
+ ["righthyphenmax"]=1,
+ },
+ ["version"]="1.001",
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-kn.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-kn.lua
new file mode 100644
index 00000000000..f097ea5ba68
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-kn.lua
@@ -0,0 +1,20 @@
+return {
+ ["comment"]="% generated by mtxrun --script pattern --convert",
+ ["exceptions"]={
+ ["n"]=0,
+ },
+ ["metadata"]={
+ ["mnemonic"]="kn",
+ ["source"]="hyph-kn",
+ ["texcomment"]="% no comment",
+ },
+ ["patterns"]={
+ ["characters"]="ಂಃಅಆಇಈಉಊಋಌಎಏಐಒಓಔಕಖಗಘಙಚಛಜಝಞಟಠಡಢಣತಥದಧನಪಫಬಭಮಯರಱಲಳವಶಷಸಹಽಾಿೀುೂೃೄೆೇೈೊೋೌ್ೕೖೞೠೡ‌‍",
+ ["data"]="2‍2 1‌1 ಅ1 ಆ1 ಇ1 ಈ1 ಉ1 ಊ1 ಋ1 ೠ1 ಌ1 ೡ1 ಎ1 ಏ1 ಐ1 ಒ1 ಓ1 ಔ1 ಾ1 ಿ1 ೀ1 ು1 ೂ1 ೃ1 ೄ1 ೆ1 ೇ1 ೈ1 ೊ1 ೋ1 ೌ1 1ಕ 1ಖ 1ಗ 1ಘ 1ಙ 1ಚ 1ಛ 1ಜ 1ಝ 1ಞ 1ಟ 1ಠ 1ಡ 1ಢ 1ಣ 1ತ 1ಥ 1ದ 1ಧ 1ನ 1ಪ 1ಫ 1ಬ 1ಭ 1ಮ 1ಯ 1ರ 1ಱ 1ಲ 1ಳ 1ೞ 1ವ 1ಶ 1ಷ 1ಸ 1ಹ 2ಂ1 2ಃ1 2ಽ1 2ೕ1 2ೖ1 2್2",
+ ["lefthyphenmin"]=1,
+ ["length"]=372,
+ ["n"]=73,
+ ["righthyphenmax"]=1,
+ },
+ ["version"]="1.001",
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-sa.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-sa.lua
new file mode 100644
index 00000000000..8a6881d80b1
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-sa.lua
@@ -0,0 +1,20 @@
+return {
+ ["comment"]="% generated by mtxrun --script pattern --convert",
+ ["exceptions"]={
+ ["n"]=0,
+ },
+ ["metadata"]={
+ ["mnemonic"]="sa",
+ ["source"]="hyph-sa",
+ ["texcomment"]="% no comment",
+ },
+ ["patterns"]={
+ ["characters"]="abcdeghijklmnoprstuvyàáèéìíïñòóùúüāīśụ̥̮̱̄̀́̃̄̇̈̐ँंःअआइईउऊऋऌएऐओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलळवशषसहऽािीुूृॄेैोौ्॒॑ॠॡॢॣঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣઁંઃઅઆઇઈઉઊઋઌએઐઓઔકખગઘઙચછજઝઞટઠડઢણતથદધનપફબભમયરલળવશષસહઽાિીુૂૃૄેૈોૌ્ૠૡૢૣఁంఃఅఆఇఈఉఊఋఌఎఏఐఒఓఔకఖగఘఙచఛజఝఞటఠడఢణతథదధనపఫబభమయరఱలళవశషసహాిీుూృౄెేైొోౌ్ౕౖౠౡಂಃಅಆಇಈಉಊಋಌಎಏಐಒಓಔಕಖಗಘಙಚಛಜಝಞಟಠಡಢಣತಥದಧನಪಫಬಭಮಯರಱಲಳವಶಷಸಹಽಾಿೀುೂೃೄೆೇೈೊೋೌ್ೕೖೞೠೡംഃഅആഇഈഉഊഋഌഎഏഐഒഓഔകഖഗഘങചഛജഝഞടഠഡഢണതഥദധനപഫബഭമയരറലളഴവശഷസഹാിീുൂൃെേൈൊോൌ്ൗൠൡൺൻർൽൾൿḍḥḫḷṁṃṅṇṣṭẖ‌‍",
+ ["data"]="2‍2 2‌2 a1 ā1 i1 ï1 ī1 u1 ü1 ū1 r̥1 ṛ1 r̥̄1 ṝ1 l̥1 ḷ1 l̥̄1 ḹ1 e1 o1 a2i1 a2u1 a3ï1 a3ü1 2k. 2kh. 2g. 2gh. 2ṅ. 2c. 2ch. 2j. 2jh. 2ñ. 2ṭ. 2ṭh. 2ḍ. 2ḍh. 2ṇ. 2t. 2th. 2d. 2dh. 2n. 2p. 2ph. 2b. 2bh. 2m. 2y. 2r. 2l. 2ḷ. 2v. 2ś. 2ṣ. 2s. 2h. 2rk. 2rg. 2rṭ. 2rḍ. 2rt. 2rd. 2rp. 2rb. 2ṃ1 2ṁ1 2m̐1 2ḥ1 2ẖ1 2ḫ1 2̮ 2̐ 2̄ 2̱1 2́1 2̀1 2̈ á1 à1 ā1 í1 ì1 ï1 ī1 ú1 ù1 ü1 ū1 é1 è1 ó1 ò1 a2í1 a2ì1 a2ú1 a2ù1 a3ï1 a3ü1 2ṅ. 2ñ. 2ṭ. 2ṭh. 2ḍ. 2ḍh. 2ṇ. 2ḷ. 2ś. 2ṣ. 2rṭ. 2rḍ. 2ṃ1 2ṁ1 2ḥ1 2ẖ1 2ḫ1 1अ1 1आ1 1इ1 1ई1 1उ1 1ऊ1 1ऋ1 1ॠ1 1ऌ1 1ॡ1 1ए1 1ऐ1 1ओ1 1औ1 2ा1 2ि1 2ी1 2ु1 2ू1 2ृ1 2ॄ1 2ॢ1 2ॣ1 2े1 2ै1 2ो1 2ौ1 1क1 1ख1 1ग1 1घ1 1ङ1 1च1 1छ1 1ज1 1झ1 1ञ1 1ट1 1ठ1 1ड1 1ढ1 1ण1 1त1 1थ1 1द1 1ध1 1न1 1प1 1फ1 1ब1 1भ1 1म1 1य1 1र1 1ल1 1ळ1 1व1 1श1 1ष1 1स1 1ह1 2क्. 2ख्. 2ग्. 2घ्. 2ङ्. 2च्. 2छ्. 2ज्. 2झ्. 2ञ्. 2ट्. 2ठ्. 2ड्. 2ढ्. 2ण्. 2त्. 2थ्. 2द्. 2ध्. 2न्. 2प्. 2फ्. 2ब्. 2भ्. 2म्. 2य्. 2र्. 2ल्. 2ळ्. 2व्. 2श्. 2ष्. 2स्. 2ह्. 2र्क्. 2र्ट्. 2र्त्. 2र्प्. 2ँ 2ं 2ः 2ऽ2 2॑ 2॒ 2्2 1অ1 1আ1 1ই1 1ঈ1 1উ1 1ঊ1 1ঋ1 1ৠ1 1ঌ1 1ৡ1 1এ1 1ঐ1 1ও1 1ঔ1 2া1 2ি1 2ী1 2ু1 2ূ1 2ৃ1 2ৄ1 2ৢ1 2ৣ1 2ে1 2ৈ1 2ো1 2ৌ1 1ক1 1খ1 1গ1 1ঘ1 1ঙ1 1চ1 1ছ1 1জ1 1ঝ1 1ঞ1 1ট1 1ঠ1 1ড1 1ড়1 1ঢ1 1ঢ়1 1ণ1 1ত1 1থ1 1দ1 1ধ1 1ন1 1প1 1ফ1 1ব1 1ভ1 1ম1 1য1 1য়1 1র1 1ল1 1শ1 1ষ1 1স1 1হ1 1ৎ2 2ক্. 2খ্. 2গ্. 2ঘ্. 2ঙ্. 2চ্. 2ছ্. 2জ্. 2ঝ্. 2ঞ্. 2ট্. 2ঠ্. 2ড্. 2ড়্. 2ঢ্. 2ঢ়্. 2ণ্. 2ত্. 2থ্. 2দ্. 2ধ্. 2ন্. 2প্. 2ফ্. 2ব্. 2ভ্. 2ম্. 2য্. 2য়্. 2র্. 2ল্. 2শ্. 2ষ্. 2স্. 2হ্. 2র্ক. 2র্ট. 2র্ত. 2র্প. 2ঁ 2ং 2ঃ 2ঽ2 2় 2ৗ 2্2 1અ1 1આ1 1ઇ1 1ઈ1 1ઉ1 1ઊ1 1ઋ1 1ૠ1 1ઌ1 1ૡ1 1એ1 1ઐ1 1ઓ1 1ઔ1 2ા1 2િ1 2ી1 2ુ1 2ૂ1 2ૃ1 2ૄ1 2ૢ1 2ૣ1 2ે1 2ૈ1 2ો1 2ૌ1 1ક1 1ખ1 1ગ1 1ઘ1 1ઙ1 1ચ1 1છ1 1જ1 1ઝ1 1ઞ1 1ટ1 1ઠ1 1ડ1 1ઢ1 1ણ1 1ત1 1થ1 1દ1 1ધ1 1ન1 1પ1 1ફ1 1બ1 1ભ1 1મ1 1ય1 1ર1 1લ1 1ળ1 1વ1 1શ1 1ષ1 1સ1 1હ1 2ક્. 2ખ્. 2ગ્. 2ઘ્. 2ઙ્. 2ચ્. 2છ્. 2જ્. 2ઝ્. 2ઞ્. 2ટ્. 2ઠ્. 2ડ્. 2ઢ્. 2ણ્. 2ત્. 2થ્. 2દ્. 2ધ્. 2ન્. 2પ્. 2ફ્. 2બ્. 2ભ્. 2મ્. 2ય્. 2ર્. 2લ્. 2ળ્. 2વ્. 2શ્. 2ષ્. 2સ્. 2હ્. 2ર્ક. 2ર્ટ. 2ર્ત. 2ર્પ. 2ઁ 2ં 2ઃ 2ઽ2 2્2 1ಅ1 1ಆ1 1ಇ1 1ಈ1 1ಉ1 1ಊ1 1ಋ1 1ೠ1 1ಌ1 1ೡ1 1ಎ1 1ಏ1 1ಐ1 1ಒ1 1ಓ1 1ಔ1 2ಾ1 2ಿ1 2ೀ1 2ು1 2ೂ1 2ೃ1 2ೄ1 2ೆ1 2ೇ1 2ೈ1 2ೊ1 2ೋ1 2ೌ1 1ಕ1 1ಖ1 1ಗ1 1ಘ1 1ಙ1 1ಚ1 1ಛ1 1ಜ1 1ಝ1 1ಞ1 1ಟ1 1ಠ1 1ಡ1 1ಢ1 1ಣ1 1ತ1 1ಥ1 1ದ1 1ಧ1 1ನ1 1ಪ1 1ಫ1 1ಬ1 1ಭ1 1ಮ1 1ಯ1 1ರ1 1ಱ1 1ಲ1 1ಳ1 1ೞ1 1ವ1 1ಶ1 1ಷ1 1ಸ1 1ಹ1 2ಕ್. 2ಖ್. 2ಗ್. 2ಘ್. 2ಙ್. 2ಚ್. 2ಛ್. 2ಜ್. 2ಝ್. 2ಞ್. 2ಟ್. 2ಠ್. 2ಡ್. 2ಢ್. 2ಣ್. 2ತ್. 2ಥ್. 2ದ್. 2ಧ್. 2ನ್. 2ಪ್. 2ಫ್. 2ಬ್. 2ಭ್. 2ಮ್. 2ಯ್. 2ರ್. 2ಱ್. 2ಲ್. 2ಳ್. 2ವ್. 2ಶ್. 2ಷ್. 2ಸ್. 2ಹ್. 2ರ್ಕ. 2ರ್ಟ. 2ರ್ತ. 2ರ್ಪ. 2ಂ 2ಃ 2ಽ2 2ೕ 2ೖ 2್2 1അ1 1ആ1 1ഇ1 1ഈ1 1ഉ1 1ഊ1 1ഋ1 1ൠ1 1ഌ1 1ൡ1 1എ1 1ഏ1 1ഐ1 1ഒ1 1ഓ1 1ഔ1 2ാ1 2ി1 2ീ1 2ു1 2ൂ1 2ൃ1 2െ1 2േ1 2ൈ1 2ൊ1 2ോ1 2ൌ1 1ക1 1ഖ1 1ഗ1 1ഘ1 1ങ1 1ച1 1ഛ1 1ജ1 1ഝ1 1ഞ1 1ട1 1ഠ1 1ഡ1 1ഢ1 1ണ1 1ത1 1ഥ1 1ദ1 1ധ1 1ന1 1പ1 1ഫ1 1ബ1 1ഭ1 1മ1 1യ1 1ര1 1റ1 1ല1 1ള1 1ഴ1 1വ1 1ശ1 1ഷ1 1സ1 1ഹ1 2ക്. 2ഖ്. 2ഗ്. 2ഘ്. 2ങ്. 2ച്. 2ഛ്. 2ജ്. 2ഝ്. 2ഞ്. 2ട്. 2ഠ്. 2ഡ്. 2ഢ്. 2ണ്. 2ത്. 2ഥ്. 2ദ്. 2ധ്. 2ന്. 2പ്. 2ഫ്. 2ബ്. 2ഭ്. 2മ്. 2യ്. 2ര്. 2റ്. 2ല്. 2ള്. 2ഴ്. 2വ്. 2ശ്. 2ഷ്. 2സ്. 2ഹ്. 2ര്ക. 2ര്ട. 2ര്ത. 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ം 2ഃ 2ൗ 2്2 1అ1 1ఆ1 1ఇ1 1ఈ1 1ఉ1 1ఊ1 1ఋ1 1ౠ1 1ఌ1 1ౡ1 1ఎ1 1ఏ1 1ఐ1 1ఒ1 1ఓ1 1ఔ1 2ా1 2ి1 2ీ1 2ు1 2ూ1 2ృ1 2ౄ1 2ె1 2ే1 2ై1 2ొ1 2ో1 2ౌ1 1క1 1ఖ1 1గ1 1ఘ1 1ఙ1 1చ1 1ఛ1 1జ1 1ఝ1 1ఞ1 1ట1 1ఠ1 1డ1 1ఢ1 1ణ1 1త1 1థ1 1ద1 1ధ1 1న1 1ప1 1ఫ1 1బ1 1భ1 1మ1 1య1 1ర1 1ఱ1 1ల1 1ళ1 1వ1 1శ1 1ష1 1స1 1హ1 2క్. 2ఖ్. 2గ్. 2ఘ్. 2ఙ్. 2చ్. 2ఛ్. 2జ్. 2ఝ్. 2ఞ్. 2ట్. 2ఠ్. 2డ్. 2ఢ్. 2ణ్. 2త్. 2థ్. 2ద్. 2ధ్. 2న్. 2ప్. 2ఫ్. 2బ్. 2భ్. 2మ్. 2య్. 2ర్. 2ఱ్. 2ల్. 2ళ్. 2వ్. 2శ్. 2ష్. 2స్. 2హ్. 2ర్క్. 2ర్ట్. 2ర్త్. 2ర్ప్. 2ఁ 2ం 2ః 2ౕ 2ౖ 2్2",
+ ["lefthyphenmin"]=1,
+ ["length"]=5366,
+ ["n"]=776,
+ ["righthyphenmax"]=1,
+ },
+ ["version"]="1.001",
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-sq.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-sq.lua
new file mode 100644
index 00000000000..ba9977df663
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-sq.lua
@@ -0,0 +1,20 @@
+return {
+ ["comment"]="% generated by mtxrun --script pattern --convert",
+ ["exceptions"]={
+ ["n"]=0,
+ },
+ ["metadata"]={
+ ["mnemonic"]="sq",
+ ["source"]="hyph-sq",
+ ["texcomment"]="% \n% \\message{Albanian Hyphenation Patterns }",
+ },
+ ["patterns"]={
+ ["characters"]="'abcdefghijklmnopqrstuvxyzçë",
+ ["data"]="2'2 .a1jo. a1a 1b .b2 2b. b2l 2bsh 1c .c2 2c. 2cj 2cn 2ct 1ç .ç2 2ç. 2çs ç2k 1d d2h .d2 2d. d2j 2dn d2r 2drr 2dt d2shm 2dh. 2dhj2dht 2dhsh 2dhj 2dht dh2r dh2j e1a e3ll e1u ë1a 1f .f2 2f. f2l f2r 2fs 2ft 3f2sh 2f2t. 1g .g2 2g. g2j 2gj. 2gjv 2gl 2gm 2gr 2gt 1h .h2 2h. 2hd 2hj 2hm 2hn 2ht 2hrr i1a i1e i1u .i2k3i .i2k3j 1j2 .j2 2j. 2j3c2 2j3d 2j3m 2j3p 2j3r 2j3t 2j3v 2j3s 2jf. j4tp 2jt. j3sh2m 1k .k2 2k. k2j 2kl 2km 2kth. k2r 2kt 2ks 2ksh 1l .l2 2l. 2lb 2lç 2lf 2lj 2lm 2ln l3n2g 2ls 2lt l2l2 4ll. 2ll3s 4ll3z 2ll3k 4ll3gj 2ll3n 2ll3t 1m .m2 2m. m2b mb2j mb2l mb2r m2j 2m3n2d 2mt 2mr 2m3sh2 2m4sh. 2m1v 1n .n2 2n. .ng2r 2nc 2nd n2dm n2dv n2d3sh 2ng 2nk 2nsp 2nsh n3sh2m 2nt 2nv 2nx 2nz n2j 2njt 2nj. 2njv o1i 1p .p2 2p. p2j 2pn 2pt p2je. 2ps p2r pa2s3her .pe2r3af .pë2r3af 1q .q2 2q. 2qj 2qk 2qm 2qn 2qt q2v 1r .r2 2r. 2rt 2rb2 2r2b3r 2rc 2rç 2rd 2rc2rd 2rf 2rg 2rh .ri3n2d 2rk 2rl 2rm 2rn r2n3d2 2rp 2rq 2rs 2r3sh2m 2rdh r2dht 2r3dr 2rj 2rv 2rz r2r .rr2 2rr. 2rrj 2rrk 2rrm 2rrn 2rrt 2rrs 1s .s2 2s. 2sh. 2sb 2sc 2sd 2sf 2sg 2sj 2sk 2sm 2sn sn2k 2sp 2ssh 2st st2r 3s2je2ll sk2ll s2ve. s2h .sh4 2shm 3sh2mj 2shj .sh2j sh2k 2shk. sh2n shn4d sh2p .sh2q 4sh3k2r 2shq 2sh3nj 2shpr 3sh4pj 3sh4pr 2shr 2shs 2sht .sh2t 3sh2te. 1t .t2 4t. 2tk t2j 2tm 2tn 2tp 2t3sh2m t2r 2tv t2h .th2 2th. 2thç 2ths 2thf 2thm 2tht u1ar. u1a u1e 1v .v2 2v. 2vr v2j 1x x2h .x2 2x. y1 1z .zb2r .z2 2z. 2zhd 2zm 2zn 2zj 2zs 2zt 2zv z3sh2m z2h .zh2",
+ ["lefthyphenmin"]=1,
+ ["length"]=1428,
+ ["n"]=305,
+ ["righthyphenmax"]=1,
+ },
+ ["version"]="1.001",
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-sr.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-sr.lua
index 78455bca25d..eed9741bde0 100644
--- a/Master/texmf-dist/tex/context/patterns/mkiv/lang-sr.lua
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-sr.lua
@@ -1,10 +1,10 @@
return {
["comment"]="% generated by mtxrun --script pattern --convert",
["exceptions"]={
- ["characters"]="абвгдезиклмнопрстуцшјњћ",
- ["data"]="на-дно на-тка на-тка-ти на-тка-ше о-дно о-тка о-тка-ти о-тка-ше по-дно по-дне по-тку по-тки по-тке по-тка у-дно и-где и-гдје сву-где све-где сву-гдје све-гдје по-не-где по-не-гдје и-зби и-збе и-зба и-зби-ци и-зби-це и-зби-ца и-звит и-зим изо-ба-ру изо-ба-ри изо-ба-ре изо-ба-ра и-скок и-ско-ку и-ско-ка и-скон и-ско-ну и-ско-ни и-ско-на и-скру и-скре и-скри и-скра и-скрав и-спод и-спо-да и-стру и-стри и-стро и-стре и-стра на-ју на-ји на-јо на-је на-ја на-јам на-јест о-браз о-брет о-дви-ка о-дран о-дра-ти пре-двој ра-зму ра-зми ра-змо ра-зме ра-зма ра-зну ра-зни ра-зно ра-зне ра-зна ра-склоп ра-спе-лу ра-спе-ло ра-спе-ла ра-спе-ћа ра-спе-ћу ра-спе-ће ра-сту ра-сти ра-сте ра-ста ра-стом ра-стер ра-шћу ра-шћи ра-шћо ра-шће ра-шћа у-зно у-зна у-зни у-зник у-зрок у-ску у-ски у-ско у-ске у-ска ус-кос у-спио у-спео у-спор у-шћу у-шће у-шћа ин-те-рес тран-су тран-са тран-сом те-ле-ви-зор те-ле-ви-зо-ру те-ле-ви-зо-ром те-ле-ви-зо-ра те-ле-ви-зо-ри при-ти-сак при-ти-с-ком при-ти-с-ку при-ти-с-ка по-ја-ви-ће на-пу-шта про-гра-ми-ра-ње сни-ма-ња сни-ма-ње",
- ["length"]=1800,
- ["n"]=130,
+ ["characters"]="abcdegijklmnoprstuvzćšабвгдезиклмнопрстуцшјћ",
+ ["data"]="на-дно на-тка на-тка-ти на-тка-ше о-дно о-тка о-тка-ти о-тка-ше по-дно по-дне по-тки по-тку по-тка по-тке у-дно и-где и-гдје сву-где све-где сву-гдје све-гдје по-не-где по-не-гдје и-зби и-зба и-збе и-зби-ци и-зби-ца и-зби-це и-звит и-зим изо-ба-ри изо-ба-ру изо-ба-ра изо-ба-ре и-скок и-ско-ку и-ско-ка и-скон и-ско-ни и-ско-ну и-ско-на и-скри и-скру и-скра и-скре и-скрав и-спод и-спо-да и-стри и-стро и-стру и-стра и-стре на-ји на-јо на-ју на-ја на-је на-јам на-јест о-браз о-брет о-дви-ка о-дран о-дра-ти пре-двој ра-зми ра-змо ра-зму ра-зма ра-зме ра-зни ра-зно ра-зну ра-зна ра-зне ра-склоп ра-спе-ло ра-спе-лу ра-спе-ла ра-спе-ћу ра-спе-ћа ра-спе-ће ра-сти ра-сту ра-ста ра-сте ра-стом ра-стер ра-шћи ра-шћо ра-шћу ра-шћа ра-шће у-зни у-зно у-зна у-зник у-зрок у-ски у-ско у-ску у-ска у-ске ус-кос у-спио у-спео у-спор у-шћу у-шћа у-шће ин-те-рес тран-су тран-са тран-сом na-dno na-tka na-tka-ti na-tka-še o-dno o-tka o-tka-ti o-tka-še po-dno po-dne po-tki po-tku po-tka po-tke u-dno i-gde i-gdje svu-gde sve-gde svu-gdje sve-gdje po-ne-gde po-ne-gdje i-zbi i-zba i-zbe i-zbi-ci i-zbi-ca i-zbi-ce i-zvit i-zim izo-ba-ri izo-ba-ru izo-ba-ra izo-ba-re i-skok i-sko-ku i-sko-ka i-skon i-sko-ni i-sko-nu i-sko-na i-skri i-skru i-skra i-skre i-skrav i-spod i-spo-da i-stri i-stro i-stru i-stra i-stre na-ji na-jo na-ju na-ja na-je na-jam na-jest o-braz o-bret o-dvi-ka o-dran o-dra-ti pre-dvoj ra-zmi ra-zmo ra-zmu ra-zma ra-zme ra-zni ra-zno ra-znu ra-zna ra-zne ra-sklop ra-spe-lo ra-spe-lu ra-spe-la ra-spe-ću ra-spe-ća ra-spe-će ra-sti ra-stu ra-sta ra-ste ra-stom ra-ster ra-šći ra-šćo ra-šću ra-šća ra-šće u-zni u-zno u-zna u-znik u-zrok u-ski u-sko u-sku u-ska u-ske us-kos u-spio u-speo u-spor u-šću u-šća u-šće in-te-res tran-su tran-sa tran-som",
+ ["length"]=2394,
+ ["n"]=232,
},
["metadata"]={
["mnemonic"]="sr",
@@ -12,11 +12,11 @@ return {
["texcomment"]="% \n% \n% \n% \n% ",
},
["patterns"]={
- ["characters"]="абвгдежзиклмнопрстуфхцчшђјљњћџ",
- ["data"]=".ђ2 .ћ2 .ч2 .ш2 .ж2 .а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а4е2ро .а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набат .а2набаз .а2набио .а2набол .а2надем .а2надипл .а2надоз .а2нафаз .а2нафила .а2нафон .а2нафор .а2наген .а2нагно .а2награ .а2нахор .а2нахро .а2накал .а2накам .а2накат .а2накеф .а2накла .а2накли .а2накој .а2накол .а2накрон .а2накру .а2налеп .а2налис .а2налит .а2нализ .а2намне .а2нанео .а2напла .а2напле .а2напне .а2напно .а2напро .а2напти .а2нарт .а2насар .а2насеи .а2наспаз .а2наста .а2настиг .а2настом .а2натим .а2натоц .а2натом .а2натре .а2натри .а2натро .а2неор .а3г2нос .а3г2ноз .а4е2ро .б2 .бе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с4крупул .бе3с4покоја .бе3с4покојн .бе3с4пора .бе3с4порн .бе3с4тид .бе3с4тија .бе3с4тиљ .бе3с4тилу .бе3с4трана .бе3с4трас .бе3с4твар .бе3з4беда .бе3з4бедн .бе3з4бели .бе3з4бједа .бе3з4бједн .бе3з4бол .бе3з4истан .бе3з4истен .бе3з4јач .бе3з4јак .бе3з4лоба .бе3з4лобн .бе3з4начај .бе3з4рача .бе3з4рачн .бе3з4уб .бе3з4уп .бе3з4вуча .бе3з4вучн .бе4о .бес4тселер .би4о .ц2 .д2 .џ2 .ди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 .ге4о .х2 .и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нокор .и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с4как .и3с4кариот .и3с4кат .и3с4кин .и3с4кита .и3с4коч .и3с4конск .и3с4крам .и3с4крат .и3с4крен .и3с4крењ .и3с4крич .и3с4криш .и3с4криц .и3с4крит .и3с4крој .и3с4крса .и3с4крсн .и3с4купља .и3с4квас .и3с4кврч .и3с4лаб .и3с4лам .и3с4леђ .и3с4лед .и3с4лијеђ .и3с4лијед .и3с4лик .и3с4лин .и3с4љеђ .и3с4љед .и3с4лов .и3с4луш .и3с4луж .и3с4ме .и3с4мије .и3с4мје .и3с4паљив .и3с4пав .и3с4пира .и3с4плић .и3с4плит .и3с4покој .и3с4полин .и3с4пон .и3с4порав .и3с4права .и3с4прави .и3с4правк .и3с4прављ .и3с4правн .и3с4пупч .и3с4пур .и3с4ред .и3с4рк .и3с4таћ .и3с4такн .и3с4там .и3с4тар .и3с4тас .и3с4тави .и3с4тављ .и3с4тиц .и3с4тифан .и3с4тин .и3с4тир .и3с4точа .и3с4точн .и3с4точњ .и3с4ток .и3с4тори .и3с4трад .и3с4тран .и3с4трав .и3с4трић .и3с4триж .и3с4триц .и3с4труг .и3с4туп .и3с4уш .и3с4ук .и3с4ус .и3с4ут .и3з4бав .и3з4бичкава .и3з4блеушан .и3з4бојак .и3з4бојк .и3з4драв .и3з4гомет .и3з4гред .и3з4грн .и3з4грт .и3з4иђ .и3з4ид .и3з4ими .и3з4јежљ .и3з4лож .и3з4лог .и3з4лопаћ .и3з4лоз .и3з4ним .и3з4ној .и3з4олац .и3з4олат .и3з4олир .и3з4олов .и3з4рачи .и3з4раел .и3з4раиљ .и3з4ун .и3з4упч .и3з4вала .и3з4вале .и3з4вали .и3з4ваљи .и3з4валу .и3з4вижд .и3з4виискр .и3з4вија .и3з4вијен .и3з4вин .и3з4вињ .и3з4вир .и3з4витоп .и3з4вјед .и3з4војац .и3з4војц .и3з4вор .инте2р3а .инте2р3е .инте2р3и .инте2р3је .инте2р3о .инте2р3у .инте3р4ежџ .инте3р4егн .инте3р4еса .инте3р4есе .инте3р4еси .инте3р4есн .инте3р4есо .инте3р4есу .инте3р4ије .инте3р4огат .ист2к .из3бе2з3обр .из3бе2з3ум .из3г2н .из3ва2н3евр .из4оанем .из4оаном .из4обат .из4оброн .из4одим .из4один .из4одоз .из4офон .из4офот .из4огам .из4огео .из4оглос .из4огон .из4ограф .из4охал .из4охаз .из4охел .из4охиј .из4охим .из4охипс .из4охит .из4охор .из4охро .из4оклин .из4околон .из4олекс .из4олукс .из4омер .из4ометр .из4оморф .из4онеф .из4оном .из4опат .из4опер .из4опле .из4опол .из4опсеф .из4орах .из4осеи .из4осинт .из4осист .из4оскел .из4оскоп .из4остаз .из4осте .из4отах .из4отал .из4отер .из4отон .из4отоп .из4отро .иза3г2н .иза3т2к .изд2на .изд2но .изд2ну .изр2к .јури2с3к .јури2с3п .к2 .љ2 .м2 .н2 .на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у .на3д2нев .на3д2нич .на3д2ниц .на3д4лан .на3д4леш .на3д4леж .на3д4вал .на3д4веси .на3д4вест .на3д4виј .на3д4вит .на3д4вла .на3д4воје .на3д4вор .на3ј4аш .на3ј4ажи .на3ј4ада .на3ј4аде .на3ј4ади .на3ј4ах .на3ј4ака .на3ј4ако .на3ј4ало .на3ј4ами .на3ј4амл .на3ј4амн .на3ј4арц .на3ј4ари .на3ј4арм .на3ј4ати .на3ј4аук .на3ј4ава .на3ј4аве .на3ј4ави .на3ј4ављ .на3ј4ази .на3ј4еже .на3ј4ежи .на3ј4ежу .на3ј4ец .на3ј4еда .на3ј4еди .на3ј4едн .на3ј4едр .на3ј4ести .на3ј4етк .на3ј4езд .на3ј4езн .на3ј4урен .на3ј4ури .на3т2ках .на3т2кам .на3т2касм .на3т2каст .наг2н .наг2њ .ну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в .о3б4јеш .о3б4јек .о3б4јер .о3б4јеси .о3б4јет .о3б4љан .о3б4љут .о3б4љуз .о3б4рђ .о3б4рч .о3б4рш .о3б4раћ .о3б4рашч .о3б4рашн .о3б4раже .о3б4рамб .о3б4ран .о3б4рањ .о3б4рат .о3б4раза .о3б4разд .о3б4рази .о3б4разн .о3б4разо .о3б4разу .о3б4ређ .о3б4реч .о3б4реж .о3б4рец .о3б4ред .о3б4рем .о3б4рес .о3б4рети .о3б4ретн .о3б4рич .о3б4риц .о3б4риј .о3б4рис .о3б4рит .о3б4рив .о3б4рк .о3б4рл .о3б4рљ .о3б4рн .о3б4роћ .о3б4роч .о3б4рок .о3б4рон .о3б4рова .о3б4ровц .о3б4рс .о3б4руч .о3б4руш .о3б4рук .о3б4рун .о3б4рус .о3д4јећ .о3д4јен .о3д4јев .о3д4лаж .о3д4лаг .о3д4лака .о3д4лаз .о3д4луч .о3д4лук .о3д4рж .о3д4раћ .о3д4рачи .о3д4раж .о3д4рана .о3д4ране .о3д4рани .о3д4рано .о3д4рану .о3д4рапа .о3д4рапи .о3д4рапљ .о3д4раз .о3д4ређ .о3д4ред .о3д4рем .о3д4рен .о3д4рич .о3д4риш .о3д4риб .о3д4риц .о3д4рин .о3д4рињ .о3д4рл .о3д4рљ .о3д4рн .о3д4рон .о3д4роњ .о3д4рп .о3д4рт .о3д4руж .о3д4руг .о3д4рвеч .о3д4рвен .о3д4рвењ .о3д4важ .о3д4вај .о3д4веса .о3д4весн .о3д4вест .о3д4вић .о3д4викав .о3д4викн .о3д4вис .о3д4вој .о3т2ках .о3т2кам .о3т2касм .о3т2каст .обе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с4тан .обе3с4тиј .обе3с4тран .обе3з4нач .обе3з4нан .обе3з4нањ .обе3з4уб .обе3з4виј .од3г2н .од3м2н .ода3д2н .ода3г2н .по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опер .по3д2нев .по3д4јеч .по3д4јен .по3г2н .по3м2н .по3м2њ .по3р2ђ .по3т2ках .по3т2кам .по3т2кат .по3т2кав .пре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д4јен .пре3д4вај .пре3д4вар .пре3д4вест .пре3д4воја .пре3д4воје .пре3д4воји .пре3д4вор .пре3д4вос .пре3т2ках .пре3т2кам .пре3т2кат .пред3м2н .пред3м2њ .про3г2н .про3т2ка .про3т2ки .проти2в3акц .проти2в3оф .проти2в3отр .проти2в3р .проти2в3уд .проти2в3ус .р2 .ра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в .ра3ш4ћењ .ра3ш4чић .ра3с4как .ра3с4канд .ра3с4кин .ра3с4клад .ра3с4клањ .ра3с4клап .ра3с4клон .ра3с4клопа .ра3с4клопи .ра3с4клопљ .ра3с4кош .ра3с4кроп .ра3с4пај .ра3с4пав .ра3с4пета .ра3с4пете .ра3с4пети .ра3с4пето .ра3с4пику .ра3с4пињ .ра3с4плин .ра3с4плињ .ра3с4пн .ра3с4полож .ра3с4пон .ра3с4пор .ра3с4прав .ра3с4прем .ра3с4рђ .ра3с4рд .ра3с4ре .ра3с4тај .ра3с4тан .ра3с4тат .ра3с4тав .ра3с4тењ .ра3с4тил .ра3с4тињ .ра3с4тир .ра3с4тис .ра3с4тит .ра3с4тој .ра3с4трел .ра3с4трет .ра3с4трој .ра3с4трт .ра3с4тућ .ра3с4туп .ра3с4тур .ра3з4башур .ра3з4бад .ра3з4бан .ра3з4бар .ра3з4бау .ра3з4бој .ра3з4бор .ра3з4ев .ра3з4гађ .ра3з4грт .ра3з4иђ .ра3з4ић .ра3з4ид .ра3з4иј .ра3з4ин .ра3з4ир .ра3з4из .ра3з4лаг .ра3з4лаз .ра3з4лич .ра3з4лик .ра3з4лож .ра3з4лог .ра3з4лоз .ра3з4мећ .ра3з4мет .ра3з4мрск .ра3з4нат .ра3з4ред .ра3з4роч .ра3з4рок .ра3з4вал .ра3з4веде .ра3з4вест .ра3з4вић .ра3з4виго .ра3з4вија .ра3з4вије .ра3з4вију .ра3з4вит .ра3з4вој .ра3з4вон .ра3з4врћ .ра3з4враћ .ра3з4врат .ра3з4врт .ра4с5турч .раз3д2ни .раз3г2н .раза3г2н .раза3т2ка .с2 .су2б3а .су2б3инв .су2б3јунк .су2б3л .су2б3окс .су2б3орд .су2б3реп .су2б3рог .су3б4аш .супе2р3а .супе2р3е .супе2р3и .супе2р3о .супе2р3у .супе3р4иор .тран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с4еп .тран3с4кри .тран3с4уд .тран3с4ум .у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в .у3г2ми .у3г2н .у3с4как .у3с4клађ .у3с4клад .у3с4ко .у3с4куп .у3с4пало .у3с4пав .у3с4пеш .у3с4пех .у3с4пел .у3с4пем .у3с4пент .у3с4пет .у3с4пев .у3с4пија .у3с4пије .у3с4пијуш .у3с4пикуш .у3с4пјеш .у3с4пјех .у3с4пјел .у3с4пјем .у3с4пјет .у3с4пјев .у3с4пон .у3с4пора .у3с4пореч .у3с4порен .у3с4порењ .у3с4пори .у3с4пособ .у3с4према .у3с4преми .у3с4рђ .у3с4рж .у3с4ра .у3с4рд .у3с4ре .у3с4ријед .у3с4рк .у3с4рљ .у3с4рн .у3с4рп .у3з4бор .у3з4диц .у3з4лан .у3з4лат .у3з4лић .у3з4лиц .у3з4лим .у3з4лит .у3з4лов .у3з4лудоб .у3з4нач .у3з4нак .у3з4неве .у3з4невје .у3з4нич .у3з4ниц .у3з4ној .у3з4рет .у3з4рев .у3з4ријет .у3з4ријев .у3з4рн .у3з4рњ .у3з4роч .у3з4рока .у3з4роко .у3з4року .у3з4руј .у3з4ван .у3з4ват .у3з4виж .у3з4вија .у3з4вије .у3з4вијо .у3з4вију .у3з4вој .у4с5кош .у4с5коко .у4с5коле .у4с5колу .у4с5ком .у4с5копа .у4с5кора .у4с5коси .у4с5котр .у4с5ков .уза3т2ка .ва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з 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ш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шч. 2шчћ 2шчч 2шчш 2шчж 2шчб 2шчц 2шчд 2шчџ 2шчф 2шчг 2шчх 2шчј 2шчк 2шчљ 2шчм 2шчн 2шчр 2шчс 2шчт 2шчз 2шц. 2шцћ 2шцч 2шцш 2шцж 2шцб 2шцц 2шцд 2шцџ 2шцф 2шцг 2шцх 2шцк 2шцљ 2шцм 2шцн 2шцр 2шцс 2шцт 2шцз 2шк. 2шкђ 2шкћ 2шкч 2шкш 2шкж 2шкб 2шкц 2шкд 2шкџ 2шкф 2шкг 2шкх 2шкк 2шкм 2шкн 2шкс 2шкт 2шкз 2шљ. 2шм. 2шмђ 2шмч 2шмш 2шмж 2шмб 2шмц 2шмд 2шмџ 2шмф 2шмг 2шмх 2шмк 2шмм 2шмн 2шмс 2шмт 2шмз 2шн. 2шп. 2шпђ 2шпч 2шпш 2шпж 2шпб 2шпц 2шпд 2шпџ 2шпф 2шпг 2шпх 2шпк 2шпм 2шпн 2шпс 2шпт 2шпз 2шт. 2штђ 2штч 2штш 2штж 2штб 2штц 2штд 2штџ 2штф 2штг 2штх 2штк 2штм 2штн 2штс 2штт 2штз 2шв. 2швђ 2швч 2швш 2швж 2швб 2швц 2швд 2швџ 2швф 2швг 2швх 2швк 2швм 2швн 2швс 2швт 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ж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жб. 2жбђ 2жбч 2жбш 2жбж 2жбб 2жбц 2жбд 2жбџ 2жбф 2жбг 2жбх 2жбк 2жбм 2жбн 2жбс 2жбт 2жбз 2жд. 2ждч 2ждш 2ждб 2ждц 2ждд 2ждџ 2ждф 2ждг 2ждх 2ждк 2ждм 2ждн 2ждс 2ждт 2ждз 2жг. 2жгч 2жгш 2жгж 2жгб 2жгц 2жгд 2жгџ 2жгф 2жгг 2жгх 2жгк 2жгм 2жгн 2жгс 2жгт 2жгз 2жл. 2жљ. 2жм. 2жмђ 2жмч 2жмш 2жмж 2жмб 2жмц 2жмд 2жмџ 2жмф 2жмг 2жмх 2жмк 2жмм 2жмн 2жмс 2жмт 2жмз 2жн. 2жњ. 2жвђ 2жвч 2жвш 2жвж 2жвб 2жвц 2жвд 2жвџ 2жвф 2жвг 2жвх 2жвк 2жвм 2жвн 2жвс 2жвт 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бј. 2бл. 2бљ. 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ц3вл 2ц3вљ 2цј. 2цр. 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д3вл 2д3вљ 2д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џ. 2дј. 2дл. 2дљ. 2др. 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фј. 2фл. 2фљ. 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г3вј 2г3вл 2г3вљ 2г3вр 2гј. 2гл. 2гљ. 2гр. 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х3вј 2х3вл 2х3вљ 2х3вр 2хј. 2хл. 2хљ. 2хр. 2хв. 2хвђ 2хвч 2хвш 2хвж 2хвб 2хвц 2хвд 2хвџ 2хвф 2хвг 2хвх 2хвк 2хвм 2хвн 2хвс 2хвт 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к3вј 2к3вл 2к3вљ 2кј. 2кл. 2кљ. 2кр. 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мј. 2мл. 2мљ. 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пј. 2пл. 2пљ. 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с3кј 2с3кљ 2с3тл 2с3вљ 2сц. 2сцђ 2сцћ 2сцч 2сцш 2сцж 2сцб 2сцц 2сцд 2сцџ 2сцф 2сцг 2сцх 2сцк 2сцљ 2сцм 2сцн 2сцр 2сцс 2сцт 2сцз 2сј. 2ск. 2скђ 2скћ 2скч 2скш 2скж 2скб 2скц 2скд 2скџ 2скф 2скг 2скх 2скк 2скм 2скн 2скс 2скт 2скз 2сл. 2сљ. 2см. 2смђ 2смћ 2смч 2смш 2смж 2смб 2смц 2смд 2смџ 2смф 2смг 2смх 2смк 2смм 2смн 2смс 2смт 2смз 2сн. 2сњ. 2сп. 2спђ 2спћ 2спч 2спш 2спж 2спб 2спц 2спд 2спџ 2спф 2спг 2спх 2спк 2спм 2спн 2спп 2спс 2спт 2спв 2спз 2ср. 2ст. 2стђ 2стћ 2стч 2стш 2стж 2стб 2стц 2стд 2стџ 2стф 2стг 2стх 2стк 2стм 2стн 2стп 2стс 2стт 2стз 2св. 2свђ 2свћ 2свч 2свш 2свж 2свб 2свц 2свд 2свџ 2свф 2свг 2свх 2свк 2свм 2свн 2свп 2свс 2свт 2свв 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т3вј 2т3вл 2т3вљ 2тј. 2тл. 2тљ. 2тр. 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вј. 2вл. 2вљ. 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з3бљ 2з3дл 2з3дљ 2з3дв 2з3гј 2з3гљ 2з3мл 2з3мр 2з3вл 2з3вљ 2зб. 2збђ 2збћ 2збч 2збш 2збж 2збб 2збц 2збд 2збџ 2збф 2збг 2збх 2збк 2збм 2збн 2збп 2збс 2збв 2збз 2зд. 2здђ 2здћ 2здч 2здш 2здб 2здц 2здд 2здџ 2здф 2здг 2здх 2здк 2здм 2здн 2здп 2здс 2здз 2зг. 2згђ 2згћ 2згч 2згж 2згб 2згц 2згд 2згџ 2згф 2згг 2згх 2згк 2згм 2згн 2згп 2згс 2згз 2зј. 2зл. 2зљ. 2зм. 2змђ 2змћ 2змч 2змш 2змж 2змб 2змц 2змд 2змџ 2змф 2змг 2змх 2змк 2змм 2змн 2змп 2змс 2змв 2змз 2зн. 2зњ. 2зр. 2зв. 2звђ 2звћ 2звч 2звш 2звж 2звб 2звц 2звд 2звџ 2звф 2звг 2звх 2звк 2звм 2звн 2звп 2звс 2звв 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мур 4р3је. 4р3јем ч2в ш2ч ш2л ш2љ ш2м ш2н ш2п ш2т ш2в ж2ђ ж2б ж2д ж2г ж2л ж2љ ж2м ж2н ж2в а3а а3е а3и а3о а3у б2ј б2л б2љ б2р ц2ј ц2р ц2в д2ж д2ј д2л д2љ д2р д2в е3а е3е е3и е3о е3у ф2ј ф2л ф2љ ф2р г2л г2љ г2р г2в х2л х2љ х2р х2в и3а и3е и3и и3о и3у к2л к2љ к2р к2в л2ј м2л м2љ м2р не3г2де. не3г2дје. ни3г2де. ни3г2дје. о3а о3е о3и о3о о3у п2ј п2л п2љ п2р с2ц с2к с2л с2љ с2м с2н с2п с2р с2в т2ј т2л т2в у3а у3е у3и у3о у3у в2л в2љ в2р з2б з2д з2г з2ј з2л з2љ з2м з2н з2р з2в",
+ ["characters"]="abcdefghijklmnoprstuvzćčđšžабвгдежзиклмнопрстуфхцчшђјљњћџ",
+ ["data"]="т2ј т2л т2љ т2р т2в д2ј д2л д2љ д2р д2в г2ј г2л г2љ г2р г2в х2ј х2л х2љ х2р х2в к2ј к2л к2љ к2р к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дј. 2дл. 2дљ. 2др. 2дв. 2гј. 2гл. 2гљ. 2гр. 2гв. 2хј. 2хл. 2хљ. 2хр. 2хв. 2кј. 2кл. 2кљ. 2кр. 2кв. 2тј. 2тл. 2тљ. 2тр. 2тв. п2ј п2л п2љ п2р в2ј в2л в2љ в2р б2ј б2л б2љ б2р ф2ј ф2л ф2љ ф2р м2ј м2л м2љ м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ћ 2в1ч 2бј. 2бл. 2бљ. 2бр. 2фј. 2фл. 2фљ. 2фр. 2мј. 2мл. 2мљ. 2мр. 2пј. 2пл. 2пљ. 2пр. 2вј. 2вл. 2вљ. 2вр. с2ц с2ј с2к с2л с2м с2н с2п с2љ с2р с2т с2в с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сј. 2ск. 2сл. 2см. 2сн. 2сп. 2сљ. 2ср. 2ст. 2св. 2сњ. 2сц. з2б з2д з2г з2ј з2л з2м з2н з2љ з2р з2в з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зј. 2зл. 2зм. 2зн. 2зљ. 2зр. 2зв. 2зњ. 2зб. 2зд. 2зг. ш2ц ш2к ш2л ш2м ш2н ш2п ш2љ ш2т ш2в ш2њ ш2ћ ш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шк. 2шл. 2шм. 2шн. 2шп. 2шљ. 2шт. 2шв. 2шњ. 2шћ. 2шч. 2шц. ж2б ж2д ж2г ж2л ж2м ж2н ж2љ ж2в ж2њ ж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жл. 2жм. 2жн. 2жљ. 2жв. 2жњ. 2жђ. 2жб. 2жд. 2жг. ц2ј ц2р ц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цј. 2цр. 2цв. ч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чв. 2ј1ж 2ј1б 2ј1ц 2ј1д 2ј1ф 2ј1г 2ј1х 2ј1ј 2ј1к 2ј1л 2ј1м 2ј1н 2ј1п 2ј1љ 2ј1р 2ј1с 2ј1т 2ј1в 2ј1њ 2ј1џ 2ј1з 2ј1ш 2ј1ђ 2ј1ћ 2ј1ч 2л1ж 2л1б 2л1ц 2л1д 2л1ф 2л1г 2л1х 2л1ј 2л1к 2л1л 2л1м 2л1н 2л1п 2л1љ 2л1р 2л1с 2л1т 2л1в 2л1њ 2л1џ 2л1з 2л1ш 2л1ђ 2л1ћ 2л1ч 2н1ж 2н1б 2н1ц 2н1д 2н1ф 2н1г 2н1х 2н1ј 2н1к 2н1л 2н1м 2н1н 2н1п 2н1љ 2н1р 2н1с 2н1т 2н1в 2н1њ 2н1џ 2н1з 2н1ш 2н1ђ 2н1ћ 2н1ч 2љ1ж 2љ1б 2љ1ц 2љ1д 2љ1ф 2љ1г 2љ1х 2љ1ј 2љ1к 2љ1л 2љ1м 2љ1н 2љ1п 2љ1љ 2љ1р 2љ1с 2љ1т 2љ1в 2љ1њ 2љ1џ 2љ1з 2љ1ш 2љ1ђ 2љ1ћ 2љ1ч 2р1ж 2р1б 2р1ц 2р1д 2р1ф 2р1г 2р1х 2р1ј 2р1к 2р1л 2р1м 2р1н 2р1п 2р1љ 2р1р 2р1с 2р1т 2р1в 2р1њ 2р1џ 2р1з 2р1ш 2р1ђ 2р1ћ 2р1ч 2њ1ж 2њ1б 2њ1ц 2њ1д 2њ1ф 2њ1г 2њ1х 2њ1ј 2њ1к 2њ1л 2њ1м 2њ1н 2њ1п 2њ1љ 2њ1р 2њ1с 2њ1т 2њ1в 2њ1њ 2њ1џ 2њ1з 2њ1ш 2њ1ђ 2њ1ћ 2њ1ч 2џ1ж 2џ1б 2џ1ц 2џ1д 2џ1ф 2џ1г 2џ1х 2џ1ј 2џ1к 2џ1л 2џ1м 2џ1н 2џ1п 2џ1љ 2џ1р 2џ1с 2џ1т 2џ1в 2џ1њ 2џ1џ 2џ1з 2џ1ш 2џ1ђ 2џ1ћ 2џ1ч 2ђ1ж 2ђ1б 2ђ1ц 2ђ1д 2ђ1ф 2ђ1г 2ђ1х 2ђ1ј 2ђ1к 2ђ1л 2ђ1м 2ђ1н 2ђ1п 2ђ1љ 2ђ1р 2ђ1с 2ђ1т 2ђ1в 2ђ1њ 2ђ1џ 2ђ1з 2ђ1ш 2ђ1ђ 2ђ1ћ 2ђ1ч 2ћ1ж 2ћ1б 2ћ1ц 2ћ1д 2ћ1ф 2ћ1г 2ћ1х 2ћ1ј 2ћ1к 2ћ1л 2ћ1м 2ћ1н 2ћ1п 2ћ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 .к2 .л2 .м2 .н2 .п2 .љ2 .р2 .с2 .т2 .в2 .њ2 .џ2 .з2 .ш2 .ђ2 .ћ2 .ч2 .ж2 .б2 .ц2 .д2 .ф2 .г2 о3а о3е о3и о3о о3у у3а у3е у3и у3о у3у а3а а3е а3и а3о а3у е3а е3е е3и е3о е3у и3а и3е и3и и3о и3у 2а1 2е1 2и1 2о1 2у1 2скб 2скц 2скд 2скф 2скг 2скх 2скк 2скм 2скн 2скп 2скс 2скт 2скњ 2скџ 2скз 2скш 2скђ 2скћ 2скч 2скж 2стб 2стц 2стд 2стф 2стг 2стх 2стк 2стм 2стн 2стп 2стс 2стт 2стњ 2стџ 2стз 2стш 2стђ 2стћ 2стч 2стж 2шкб 2шкц 2шкд 2шкф 2шкг 2шкх 2шкк 2шкм 2шкн 2шкп 2шкс 2шкт 2шкњ 2шкџ 2шкз 2шкш 2шкђ 2шкћ 2шкч 2шкж 2штб 2штц 2штд 2штф 2штг 2штх 2штк 2штм 2штн 2штп 2штс 2штт 2штњ 2штџ 2штз 2штш 2штђ 2штћ 2штч 2штж 2спб 2спц 2спд 2спф 2спг 2спх 2спк 2спм 2спн 2спп 2спс 2спт 2спв 2спњ 2спџ 2спз 2спш 2спђ 2спћ 2спч 2спж 2свб 2свц 2свд 2свф 2свг 2свх 2свк 2свм 2свн 2свп 2свс 2свт 2свв 2свњ 2свџ 2свз 2свш 2свђ 2свћ 2свч 2свж 2шпб 2шпц 2шпд 2шпф 2шпг 2шпх 2шпк 2шпм 2шпн 2шпп 2шпс 2шпт 2шпв 2шпњ 2шпџ 2шпз 2шпш 2шпђ 2шпћ 2шпч 2шпж 2швб 2швц 2швд 2швф 2швг 2швх 2швк 2швм 2швн 2швп 2швс 2швт 2швв 2швњ 2швџ 2швз 2швш 2швђ 2швћ 2швч 2швж 2ждб 2ждц 2ждд 2ждф 2ждг 2ждх 2ждк 2ждм 2ждн 2ждп 2ждс 2ждт 2ждњ 2ждџ 2ждз 2ждш 2ждђ 2ждћ 2ждч 2ждж 2жгб 2жгц 2жгд 2жгф 2жгг 2жгх 2жгк 2жгм 2жгн 2жгп 2жгс 2жгт 2жгњ 2жгџ 2жгз 2жгш 2жгђ 2жгћ 2жгч 2жгж 2здб 2здц 2здд 2здф 2здг 2здх 2здк 2здм 2здн 2здп 2здс 2здт 2здњ 2здџ 2здз 2здш 2здђ 2здћ 2здч 2здж 2згб 2згц 2згд 2згф 2згг 2згх 2згк 2згм 2згн 2згп 2згс 2згт 2згњ 2згџ 2згз 2згш 2згђ 2згћ 2згч 2згж 2жвб 2жвц 2жвд 2жвф 2жвг 2жвх 2жвк 2жвм 2жвн 2жвп 2жвс 2жвт 2жвв 2жвњ 2жвџ 2жвз 2жвш 2жвђ 2жвћ 2жвч 2жвж 2жбб 2жбц 2жбд 2жбф 2жбг 2жбх 2жбк 2жбм 2жбн 2жбп 2жбс 2жбт 2жбв 2жбњ 2жбџ 2жбз 2жбш 2жбђ 2жбћ 2жбч 2жбж 2звб 2звц 2звд 2звф 2звг 2звх 2звк 2звм 2звн 2звп 2звс 2звт 2звв 2звњ 2звџ 2звз 2звш 2звђ 2звћ 2звч 2звж 2збб 2збц 2збд 2збф 2збг 2збх 2збк 2збм 2збн 2збп 2збс 2збт 2збв 2збњ 2збџ 2збз 2збш 2збђ 2збћ 2збч 2збж 2жмб 2жмц 2жмд 2жмф 2жмг 2жмх 2жмк 2жмм 2жмн 2жмп 2жмс 2жмт 2жмв 2жмњ 2жмџ 2жмз 2жмш 2жмђ 2жмћ 2жмч 2жмж 2смб 2смц 2смд 2смф 2смг 2смх 2смк 2смм 2смн 2смп 2смс 2смт 2смв 2смњ 2смџ 2смз 2смш 2смђ 2смћ 2смч 2смж 2змб 2змц 2змд 2змф 2змг 2змх 2змк 2змм 2змн 2змп 2змс 2змт 2змв 2змњ 2змџ 2змз 2змш 2змђ 2змћ 2змч 2змж 2шмб 2шмц 2шмд 2шмф 2шмг 2шмх 2шмк 2шмм 2шмн 2шмп 2шмс 2шмт 2шмв 2шмњ 2шмџ 2шмз 2шмш 2шмђ 2шмћ 2шмч 2шмж 2сцб 2сцц 2сцд 2сцф 2сцг 2сцх 2сцк 2сцл 2сцм 2сцн 2сцп 2сцљ 2сцр 2сцс 2сцт 2сцњ 2сцџ 2сцз 2сцш 2сцђ 2сцћ 2сцч 2сцж 2шцб 2шцц 2шцд 2шцф 2шцг 2шцх 2шцк 2шцл 2шцм 2шцн 2шцп 2шцљ 2шцр 2шцс 2шцт 2шцњ 2шцџ 2шцз 2шцш 2шцђ 2шцћ 2шцч 2шцж 2шчб 2шчц 2шчд 2шчф 2шчг 2шчх 2шчј 2шчк 2шчл 2шчм 2шчн 2шчп 2шчљ 2шчр 2шчс 2шчт 2шчњ 2шчџ 2шчз 2шчш 2шчђ 2шчћ 2шчч 2шчж 2хвб 2хвц 2хвд 2хвф 2хвг 2хвх 2хвк 2хвм 2хвн 2хвп 2хвс 2хвт 2хвњ 2хвџ 2хвз 2хвш 2хвђ 2хвћ 2хвч 2хвж 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бљ .а4е2ро .бе4о .би4о .ге4о .за3г2н .за3т2ка .иза3г2н .иза3т2к .из3г2н .изд2но .изд2ну .изд2на .изр2к .ист2к .наг2н .наг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њиг 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је 4р3јем 4р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з4бедн .бе3з4беда .бе3з4бједн .бе3з4бједа .бе3з4бели .бе3з4бол .бе3з4вучн .бе3з4вуча .бе3з4истан .бе3з4истен .бе3з4јак .бе3з4јач .бе3з4лобн .бе3з4лоба .бе3з4начај .бе3з4рачн .бе3з4рача .бе3з4уп .бе3з4уб .бе2с3ц .бе2с3к .бе2с3п .бе2с3т .бе3с4крупул .бе3с4покојн .бе3с4покоја .бе3с4порн .бе3с4пора .бе3с4твар .бе3с4тид .бе3с4тија .бе3с4тилу .бе3с4тиљ .бе3с4трана .бе3с4трас .бес4тселер .бе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з4бав .и3з4бичкава .и3з4блеушан .и3з4бојак .и3з4бојк .и3з4вали .и3з4валу .и3з4вала .и3з4вале .и3з4ваљи .и3з4вижд .и3з4виискр .и3з4вија .и3з4вијен .и3з4вин .и3з4вир .и3з4вињ .и3з4витоп .и3з4вјед .и3з4војац .и3з4војц .и3з4вор .и3з4гомет .и3з4гред .и3з4грн .и3з4грт .и3з4драв .и3з4иђ .и3з4ид .и3з4ими .и3з4јежљ .и3з4лоз .и3з4лож .и3з4лог .и3з4лопаћ .и3з4ним .и3з4ној .из4оанем .из4оаном .из4обат .из4оброн .из4огам .из4огео .из4оглос .из4огон .из4ограф .из4одим .из4один .из4одоз .из4оклин .из4околон .и3з4олат .и3з4олац .и3з4олир .и3з4олов .из4олекс .из4олукс .из4омер .из4ометр .из4оморф .из4онеф .из4оном .из4опат .из4опер .из4опле .из4опол .из4опсеф .из4орах .из4осеи .из4осинт .из4осист .из4оскел .из4оскоп .из4остаз .из4осте .из4отах .из4отал .из4отер .из4отон .из4отоп .из4отро .из4офон .из4офот .из4охал .из4охаз .из4охел .из4охиј .из4охим .из4охит .из4охипс .из4охор .из4охро .и3з4раел .и3з4раиљ .и3з4рачи .и3з4ун .и3з4упч .и2с3ц .и2с3к .и2с3п .и2с3т .и3с4как .и3с4кат .и3с4кањ .и3с4кариот .и3с4квас .и3с4кврч .и3с4кин .и3с4кита .и3с4конск .и3с4коч .и3с4крам .и3с4крит .и3с4криш .и3с4крич .и3с4криц .и3с4крат .и3с4крен .и3с4крењ .и3с4крој .и3с4крсн .и3с4крса .и3с4купља .и3с4лам .и3с4лаб .и3с4леђ .и3с4лед .и3с4лијеђ .и3с4лијед .и3с4љеђ .и3с4љед .и3с4лик .и3с4лин .и3с4лов .и3с4луш .и3с4луж .и3с4ме .и3с4мије .и3с4мје .и3с4пав .и3с4паљив .и3с4пира .и3с4плит .и3с4плић .и3с4покој .и3с4полин .и3с4пон .и3с4порав .и3с4прави .и3с4правк .и3с4правн .и3с4прављ .и3с4права .и3с4пупч .и3с4пур .и3с4ред .и3с4рк .и3с4тави .и3с4тављ .и3с4такн .и3с4там .и3с4тар .и3с4тас .и3с4таћ .и3с4тин .и3с4тир .и3с4тиц .и3с4тифан .и3с4ток .и3с4тори .и3с4точн .и3с4точњ .и3с4точа .и3с4трав .и3с4трад .и3с4тран .и3с4трић .и3с4триж .и3с4триц .и3с4труг .и3с4туп .и3с4ук .и3с4ус .и3с4ут .и3с4уш .и2ж3ђ .и2ш3ћ .и2ш3ч .из3бе2з3обр .из3бе2з3ум .из3ва2н3евр .на2д3л .на2д3љ .на2д3в .на3д4вал .на3д4веси .на3д4вест .на3д4виј .на3д4вит .на3д4вла .на3д4воје .на3д4вор .на2д3игр .на2д3инж .на2д3ина .на2д3иск .на2д3јах .на2д3јач .на2д3јек .на2д3јез .на2д3јеч .на2д3јун .на3д4лан .на3д4леш .на3д4леж .на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ј4ави .на3ј4ављ .на3ј4ава .на3ј4аве .на3ј4ади .на3ј4ада .на3ј4аде .на3ј4ажи .на3ј4ази .на3ј4ако .на3ј4ака .на3ј4ало .на3ј4ами .на3ј4амл .на3ј4амн .на3ј4ари .на3ј4арм .на3ј4арц .на3ј4ати .на3ј4аук .на3ј4ах .на3ј4аш .на3ј4еди .на3ј4едн .на3ј4едр .на3ј4еда .на3ј4ежи .на3ј4ежу .на3ј4еже .на3ј4езн .на3ј4езд .на3ј4ести .на3ј4етк .на3ј4ец .на3ј4ури .на3ј4урен .о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з4виј .обе3з4нан .обе3з4нањ .обе3з4нач .обе3з4уб .обе2с3ц .обе2с3к .обе2с3п .обе2с3т .обе3с4тан .обе3с4тиј .обе3с4тран .обе2ш3ћ .обе2ш3ч .о2б3игр .о2б3истин .о2б3истињ .о3б4јек .о3б4јер .о3б4јеси .о3б4јет .о3б4јеш .о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б4љан .о3б4љут .о3б4љуз .о2б3ору .о3б4раже .о3б4рази .о3б4разн .о3б4разо .о3б4разу .о3б4раза .о3б4разд .о3б4рамб .о3б4ран .о3б4рањ .о3б4рат .о3б4раћ .о3б4рашн .о3б4рашч .о3б4рв .о3б4рђ .о3б4рем .о3б4рес .о3б4ређ .о3б4реч .о3б4реж .о3б4рец .о3б4ред .о3б4рети .о3б4ретн .о3б4риј .о3б4рис .о3б4рит .о3б4рив .о3б4рич .о3б4риц .о3б4рк .о3б4рл .о3б4рн .о3б4рљ .о3б4рс .о3б4рт .о3б4рш .о3б4рч .о3б4рок .о3б4рон .о3б4роњ .о3б4роћ .о3б4роч .о3б4рова .о3б4ровц .о3б4рук .о3б4рун .о3б4рус .о3б4руњ .о3б4руш .о3б4руч .о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д4вај .о3д4важ .о3д4весн .о3д4вест .о3д4веса .о3д4викав .о3д4викн .о3д4вис .о3д4вић .о3д4вој .о2д3игр .о2д3и2з3в .о2д3и2з3д .о2д3иск .о2д3исти .о3д4јел .о3д4јен .о3д4јев .о3д4јећ .о3д4лаз .о3д4лаж .о3д4лаг .о3д4лака .о3д4лук .о3д4луч .о2д3озд .о2д3озг .о2д3ок .о2д3онл .о2д3оно .о2д3ону .о2д3онд .о3д4рани .о3д4рано .о3д4рану .о3д4рана .о3д4ране .о3д4раз .о3д4раћ .о3д4раж .о3д4рапи .о3д4рапљ .о3д4рапа .о3д4рачи .о3д4рвен .о3д4рвењ .о3д4рвеч .о3д4рем .о3д4рен .о3д4рет .о3д4ређ .о3д4ред .о3д4рл .о3д4рн .о3д4рп .о3д4рљ .о3д4рт .о3д4рж .о3д4рин .о3д4рињ .о3д4риш .о3д4рич .о3д4риб .о3д4риц .о3д4рон .о3д4роњ .о3д4руж .о3д4руг .о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ј .по3д4јен .по3д4јеч .по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в .пре3д4вај .пре3д4вар .пре3д4вест .пре3д4воји .пре3д4воја .пре3д4воје .пре3д4вор .пре3д4вос .пре3д4јен .пре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анал .ра3з4бан .ра3з4бар .ра3з4бау .ра3з4бад .ра3з4башур .ра3з4бој .ра3з4бор .ра3з4вал .ра3з4веде .ра3з4вест .ра3з4виго .ра3з4вију .ра3з4вија .ра3з4вије .ра3з4вит .ра3з4вић .ра3з4вој .ра3з4вон .ра3з4врат .ра3з4враћ .ра3з4врт .ра3з4врћ .ра3з4гађ .ра3з4грт .ра3з4ев .ра3з4иј .ра3з4ил .ра3з4ин .ра3з4ир .ра3з4ит .ра3з4из .ра3з4иђ .ра3з4ић .ра3з4ид .ра3з4лаз .ра3з4лаг .ра3з4лик .ра3з4лич .ра3з4лоз .ра3з4лож .ра3з4лог .ра3з4мет .ра3з4мећ .ра3з4мрск .ра3з4нат .ра2з3обл .ра2з3обр .ра2з3оба .ра2з3од .ра2з3орат .ра2з3орав .ра2з3орт .ра2з3ору .ра2з3от .ра3з4ред .ра3з4рок .ра3з4роч .ра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с4как .ра3с4канд .ра3с4кин .ра3с4клап .ра3с4клањ .ра3с4клад .ра3с4клон .ра3с4клопи .ра3с4клопљ .ра3с4клопа .ра3с4кош .ра3с4кроп .ра3с4пај .ра3с4пав .ра3с4пети .ра3с4пето .ра3с4пета .ра3с4пете .ра3с4пику .ра3с4пињ .ра3с4плин .ра3с4плињ .ра3с4пн .ра3с4полож .ра3с4пон .ра3с4пор .ра3с4прав .ра3с4прем .ра3с4рђ .ра3с4рд .ра3с4ре .ра3с4тај .ра3с4тан .ра3с4тат .ра3с4тав .ра3с4тењ .ра3с4тил .ра3с4тир .ра3с4тис .ра3с4тит .ра3с4тињ .ра3с4тој .ра3с4трел .ра3с4трет .ра3с4трој .ра3с4трт .ра3с4туп .ра3с4тур .ра3с4тућ .ра4с5турч .ра2ш3ћ .ра2ш3ч .ра3ш4ћењ .ра3ш4чић .у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з4бор .у3з4ван .у3з4ват .у3з4виж .у3з4вијо .у3з4вију .у3з4вија .у3з4вије .у3з4вој .у3з4диц .у2з3игр .у2з3инат .у2з3искр .у3з4лан .у3з4лат .у3з4лим .у3з4лит .у3з4лић .у3з4лиц .у3з4лов .у3з4лудоб .у3з4нак .у3з4нач .у3з4неве .у3з4невје .у3з4нич .у3з4ниц .у3з4ној .у2з3обест .у2з3обијест .у2з3орат .у2з3орав .у2з3охо .у3з4рет .у3з4рев .у3з4ријет .у3з4ријев .у3з4рн .у3з4рњ .у3з4роко .у3з4року .у3з4рока .у3з4роч .у3з4руј .у2з3угар .у2с3ц .у2с3к .у2с3п .у3с4как .у3с4клађ .у3с4клад .у3с4ко .у4с5ком .у4с5ков .у4с5кош .у4с5коко .у4с5колу .у4с5коле .у4с5копа .у4с5кора .у4с5коси .у4с5котр .у3с4куп .у3с4пав .у3с4пало .у3с4пех .у3с4пел .у3с4пем .у3с4пет .у3с4пев .у3с4пеш .у3с4пјех .у3с4пјел .у3с4пјем .у3с4пјет .у3с4пјев .у3с4пјеш .у3с4пент .у3с4пија .у3с4пије .у3с4пијуш .у3с4пикуш .у3с4пон .у3с4пори .у3с4пора .у3с4порен .у3с4порењ .у3с4пореч .у3с4пособ .у3с4преми .у3с4према .у3с4рк .у3с4рн .у3с4рп .у3с4рљ .у3с4рт .у3с4рђ .у3с4рж .у3с4ра .у3с4рд .у3с4ре .у3с4ријед .у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рог .а3г2нос .а3г2ноз .а2набап .а2набаз .а2набат .а2набио .а2набол .а2наген .а2нагно .а2н3аго .а2награ .а2надем .а2надипл .а2надоз .а2н3а4е2ро .а2накал .а2накам .а2накат .а2накеф .а2накла .а2накли .а2накој .а2н3акуз .а2н3алг .а2н3алд .а2налеп .а2нализ .а2налис .а2налит .а2н3амерт .а2намне .а2н3андр .а2нанео .а2н3ант .а2напла .а2напле .а2напне .а2напно .а2напро .а2напти .а2н3апто .а2нарт .а2н3арх .а2насар .а2насеи .а2наспаз .а2наста .а2настиг .а2настом .а2натим .а2натом .а2натоц .а2натре .а2натри .а2натро .а2нафаз .а2н3афиј .а2нафила .а2нафон .а2н3афрод .а2накол .а2накрон .а2накру .а2н3алфа .а2нафор .а2нахор .а2нахро .а2н3егер .а2н3екл .а2н3екум .а2н3елек .а2н3енер .а2н3епи .а2неор .а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нокор .и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р4егн .инте3р4еси .инте3р4есн .инте3р4есо .инте3р4есу .инте3р4еса .инте3р4есе .инте3р4ежџ .инте3р4ије .инте2р3је .инте3р4огат .јури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б4аш .су2б3инв .су2б3јунк .су2б3окс .су2б3реп .су2б3рог .су2б3орд .супе2р3и .супе2р3о .супе2р3у .супе2р3а .супе2р3е .супе3р4иор .тран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с4еп .тран3с4кри .тран3с4ум .тран3с4уд t2j t2l t2lj t2r t2v d2j d2l d2lj d2r d2v g2j g2l g2lj g2r g2v h2j h2l h2lj h2r h2v k2j k2l k2lj k2r k2v 2d1b 2d1c 2d1d 2d1f 2d1g 2d1h 2d1k 2d1m 2d1n 2d1p 2d1s 2d1t 2d1nj 2d1dž 2d1z 2d1š 2d1đ 2d1ć 2d1č 2g1ž 2g1b 2g1c 2g1d 2g1f 2g1g 2g1h 2g1k 2g1m 2g1n 2g1p 2g1s 2g1t 2g1nj 2g1dž 2g1z 2g1š 2g1đ 2g1ć 2g1č 2h1ž 2h1b 2h1c 2h1d 2h1f 2h1g 2h1h 2h1k 2h1m 2h1n 2h1p 2h1s 2h1t 2h1nj 2h1dž 2h1z 2h1š 2h1đ 2h1ć 2h1č 2k1ž 2k1b 2k1c 2k1d 2k1f 2k1g 2k1h 2k1k 2k1m 2k1n 2k1p 2k1s 2k1t 2k1nj 2k1dž 2k1z 2k1š 2k1đ 2k1ć 2k1č 2t1ž 2t1b 2t1c 2t1d 2t1f 2t1g 2t1h 2t1k 2t1m 2t1n 2t1p 2t1s 2t1t 2t1nj 2t1dž 2t1z 2t1š 2t1đ 2t1ć 2t1č 2dj. 2dl. 2dlj. 2dr. 2dv. 2gj. 2gl. 2glj. 2gr. 2gv. 2hj. 2hl. 2hlj. 2hr. 2hv. 2kj. 2kl. 2klj. 2kr. 2kv. 2tj. 2tl. 2tlj. 2tr. 2tv. p2j p2l p2lj p2r v2j v2l v2lj v2r b2j b2l b2lj b2r f2j f2l f2lj f2r m2j m2l m2lj m2r 2b1ž 2b1b 2b1c 2b1d 2b1f 2b1g 2b1h 2b1k 2b1m 2b1n 2b1p 2b1s 2b1t 2b1v 2b1nj 2b1dž 2b1z 2b1š 2b1đ 2b1ć 2b1č 2f1ž 2f1b 2f1c 2f1d 2f1f 2f1g 2f1h 2f1k 2f1m 2f1n 2f1p 2f1s 2f1t 2f1v 2f1nj 2f1dž 2f1z 2f1š 2f1đ 2f1ć 2f1č 2m1ž 2m1b 2m1c 2m1d 2m1f 2m1g 2m1h 2m1k 2m1m 2m1n 2m1p 2m1s 2m1t 2m1v 2m1nj 2m1dž 2m1z 2m1š 2m1đ 2m1ć 2m1č 2p1ž 2p1b 2p1c 2p1d 2p1f 2p1g 2p1h 2p1k 2p1m 2p1n 2p1p 2p1s 2p1t 2p1v 2p1nj 2p1dž 2p1z 2p1š 2p1đ 2p1ć 2p1č 2v1ž 2v1b 2v1c 2v1d 2v1f 2v1g 2v1h 2v1k 2v1m 2v1n 2v1p 2v1s 2v1t 2v1v 2v1nj 2v1dž 2v1z 2v1š 2v1đ 2v1ć 2v1č 2bj. 2bl. 2blj. 2br. 2fj. 2fl. 2flj. 2fr. 2mj. 2ml. 2mlj. 2mr. 2pj. 2pl. 2plj. 2pr. 2vj. 2vl. 2vlj. 2vr. s2c s2j s2k s2l s2m s2n s2p s2lj s2r s2t s2v s2nj 2s1ž 2s1b 2s1d 2s1f 2s1g 2s1h 2s1s 2s1dž 2s1z 2s1š 2s1đ 2s1ć 2s1č 2sj. 2sk. 2sl. 2sm. 2sn. 2sp. 2slj. 2sr. 2st. 2sv. 2snj. 2sc. z2b z2d z2g z2j z2l z2m z2n z2lj z2r z2v z2nj 2z1ž 2z1c 2z1f 2z1h 2z1k 2z1p 2z1s 2z1t 2z1dž 2z1z 2z1š 2z1đ 2z1ć 2z1č 2zj. 2zl. 2zm. 2zn. 2zlj. 2zr. 2zv. 2znj. 2zb. 2zd. 2zg. š2c š2k š2l š2m š2n š2p š2lj š2t š2v š2nj š2ć š2č 2š1ž 2š1b 2š1d 2š1f 2š1g 2š1h 2š1s 2š1dž 2š1z 2š1š 2š1đ 2š1j 2š1r 2šk. 2šl. 2šm. 2šn. 2šp. 2šlj. 2št. 2šv. 2šnj. 2šć. 2šč. 2šc. ž2b ž2d ž2g ž2l ž2m ž2n ž2lj ž2v ž2nj ž2đ 2ž1ž 2ž1c 2ž1f 2ž1h 2ž1k 2ž1p 2ž1s 2ž1t 2ž1dž 2ž1z 2ž1š 2ž1ć 2ž1č 2ž1j 2ž1r 2žl. 2žm. 2žn. 2žlj. 2žv. 2žnj. 2žđ. 2žb. 2žd. 2žg. c2j c2r c2v 2c1ž 2c1b 2c1c 2c1d 2c1f 2c1g 2c1h 2c1k 2c1l 2c1m 2c1n 2c1p 2c1lj 2c1s 2c1t 2c1nj 2c1dž 2c1z 2c1š 2c1đ 2c1ć 2c1č 2cj. 2cr. 2cv. č2v 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č1lj 2č1r 2č1s 2č1t 2č1nj 2č1dž 2č1z 2č1š 2č1đ 2č1ć 2č1č 2čv. 2j1ž 2j1b 2j1c 2j1d 2j1f 2j1g 2j1h 2j1j 2j1k 2j1l 2j1m 2j1n 2j1p 2j1lj 2j1r 2j1s 2j1t 2j1v 2j1nj 2j1dž 2j1z 2j1š 2j1đ 2j1ć 2j1č 2l1ž 2l1b 2l1c 2l1d 2l1f 2l1g 2l1h 2l1k 2l1l 2l1m 2l1n 2l1p 2l1lj 2l1r 2l1s 2l1t 2l1v 2l1nj 2l1dž 2l1z 2l1š 2l1đ 2l1ć 2l1č 2n1ž 2n1b 2n1c 2n1d 2n1f 2n1g 2n1h 2n1k 2n1l 2n1m 2n1n 2n1p 2n1lj 2n1r 2n1s 2n1t 2n1v 2n1nj 2n1dž 2n1z 2n1š 2n1đ 2n1ć 2n1č 2lj1ž 2lj1b 2lj1c 2lj1d 2lj1f 2lj1g 2lj1h 2lj1j 2lj1k 2lj1l 2lj1m 2lj1n 2lj1p 2lj1lj 2lj1r 2lj1s 2lj1t 2lj1v 2lj1nj 2lj1dž 2lj1z 2lj1š 2lj1đ 2lj1ć 2lj1č 2r1ž 2r1b 2r1c 2r1d 2r1f 2r1g 2r1h 2r1j 2r1k 2r1l 2r1m 2r1n 2r1p 2r1lj 2r1r 2r1s 2r1t 2r1v 2r1nj 2r1dž 2r1z 2r1š 2r1đ 2r1ć 2r1č 2nj1ž 2nj1b 2nj1c 2nj1d 2nj1f 2nj1g 2nj1h 2nj1j 2nj1k 2nj1l 2nj1m 2nj1n 2nj1p 2nj1lj 2nj1r 2nj1s 2nj1t 2nj1v 2nj1nj 2nj1dž 2nj1z 2nj1š 2nj1đ 2nj1ć 2nj1č 2dž1ž 2dž1b 2dž1c 2dž1d 2dž1f 2dž1g 2dž1h 2dž1j 2dž1k 2dž1l 2dž1m 2dž1n 2dž1p 2dž1lj 2dž1r 2dž1s 2dž1t 2dž1v 2dž1nj 2dž1dž 2dž1z 2dž1š 2dž1đ 2dž1ć 2dž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đ1lj 2đ1r 2đ1s 2đ1t 2đ1v 2đ1nj 2đ1dž 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ć1lj 2ć1r 2ć1s 2ć1t 2ć1v 2ć1nj 2ć1dž 2ć1z 2ć1š 2ć1đ 2ć1ć 2ć1č .h2 .j2 .k2 .l2 .m2 .n2 .p2 .lj2 .r2 .s2 .t2 .v2 .nj2 .dž2 .z2 .š2 .đ2 .ć2 .č2 .ž2 .b2 .c2 .d2 .f2 .g2 o3a o3e o3i o3o o3u u3a u3e u3i u3o u3u a3a a3e a3i a3o a3u e3a e3e e3i e3o e3u i3a i3e i3i i3o i3u 2a1 2e1 2i1 2o1 2u1 2skb 2skc 2skd 2skf 2skg 2skh 2skk 2skm 2skn 2skp 2sks 2skt 2sknj 2skdž 2skz 2skš 2skđ 2skć 2skč 2skž 2stb 2stc 2std 2stf 2stg 2sth 2stk 2stm 2stn 2stp 2sts 2stt 2stnj 2stdž 2stz 2stš 2stđ 2stć 2stč 2stž 2škb 2škc 2škd 2škf 2škg 2škh 2škk 2škm 2škn 2škp 2šks 2škt 2šknj 2škdž 2škz 2škš 2škđ 2škć 2škč 2škž 2štb 2štc 2štd 2štf 2štg 2šth 2štk 2štm 2štn 2štp 2šts 2štt 2štnj 2štdž 2štz 2štš 2štđ 2štć 2štč 2štž 2spb 2spc 2spd 2spf 2spg 2sph 2spk 2spm 2spn 2spp 2sps 2spt 2spv 2spnj 2spdž 2spz 2spš 2spđ 2spć 2spč 2spž 2svb 2svc 2svd 2svf 2svg 2svh 2svk 2svm 2svn 2svp 2svs 2svt 2svv 2svnj 2svdž 2svz 2svš 2svđ 2svć 2svč 2svž 2špb 2špc 2špd 2špf 2špg 2šph 2špk 2špm 2špn 2špp 2šps 2špt 2špv 2špnj 2špdž 2špz 2špš 2špđ 2špć 2špč 2špž 2švb 2švc 2švd 2švf 2švg 2švh 2švk 2švm 2švn 2švp 2švs 2švt 2švv 2švnj 2švdž 2švz 2švš 2švđ 2švć 2švč 2švž 2ždb 2ždc 2ždd 2ždf 2ždg 2ždh 2ždk 2ždm 2ždn 2ždp 2žds 2ždt 2ždnj 2žddž 2ždz 2ždš 2ždđ 2ždć 2ždč 2žgb 2žgc 2žgd 2žgf 2žgg 2žgh 2žgk 2žgm 2žgn 2žgp 2žgs 2žgt 2žgnj 2žgdž 2žgz 2žgš 2žgđ 2žgć 2žgč 2žgž 2zdb 2zdc 2zdd 2zdf 2zdg 2zdh 2zdk 2zdm 2zdn 2zdp 2zds 2zdt 2zdnj 2zddž 2zdz 2zdš 2zdđ 2zdć 2zdč 2zgb 2zgc 2zgd 2zgf 2zgg 2zgh 2zgk 2zgm 2zgn 2zgp 2zgs 2zgt 2zgnj 2zgdž 2zgz 2zgš 2zgđ 2zgć 2zgč 2zgž 2žvb 2žvc 2žvd 2žvf 2žvg 2žvh 2žvk 2žvm 2žvn 2žvp 2žvs 2žvt 2žvv 2žvnj 2žvdž 2žvz 2žvš 2žvđ 2žvć 2žvč 2žvž 2žbb 2žbc 2žbd 2žbf 2žbg 2žbh 2žbk 2žbm 2žbn 2žbp 2žbs 2žbt 2žbv 2žbnj 2žbdž 2žbz 2žbš 2žbđ 2žbć 2žbč 2žbž 2zvb 2zvc 2zvd 2zvf 2zvg 2zvh 2zvk 2zvm 2zvn 2zvp 2zvs 2zvt 2zvv 2zvnj 2zvdž 2zvz 2zvš 2zvđ 2zvć 2zvč 2zvž 2zbb 2zbc 2zbd 2zbf 2zbg 2zbh 2zbk 2zbm 2zbn 2zbp 2zbs 2zbt 2zbv 2zbnj 2zbdž 2zbz 2zbš 2zbđ 2zbć 2zbč 2zbž 2žmb 2žmc 2žmd 2žmf 2žmg 2žmh 2žmk 2žmm 2žmn 2žmp 2žms 2žmt 2žmv 2žmnj 2žmdž 2žmz 2žmš 2žmđ 2žmć 2žmč 2žmž 2smb 2smc 2smd 2smf 2smg 2smh 2smk 2smm 2smn 2smp 2sms 2smt 2smv 2smnj 2smdž 2smz 2smš 2smđ 2smć 2smč 2smž 2zmb 2zmc 2zmd 2zmf 2zmg 2zmh 2zmk 2zmm 2zmn 2zmp 2zms 2zmt 2zmv 2zmnj 2zmdž 2zmz 2zmš 2zmđ 2zmć 2zmč 2zmž 2šmb 2šmc 2šmd 2šmf 2šmg 2šmh 2šmk 2šmm 2šmn 2šmp 2šms 2šmt 2šmv 2šmnj 2šmdž 2šmz 2šmš 2šmđ 2šmć 2šmč 2šmž 2scb 2scc 2scd 2scf 2scg 2sch 2sck 2scl 2scm 2scn 2scp 2sclj 2scr 2scs 2sct 2scnj 2scdž 2scz 2scš 2scđ 2scć 2scč 2scž 2šcb 2šcc 2šcd 2šcf 2šcg 2šch 2šck 2šcl 2šcm 2šcn 2šcp 2šclj 2šcr 2šcs 2šct 2šcnj 2šcdž 2šcz 2šcš 2šcđ 2šcć 2šcč 2šcž 2ščb 2ščc 2ščd 2ščf 2ščg 2ščh 2ščj 2ščk 2ščl 2ščm 2ščn 2ščp 2ščlj 2ščr 2ščs 2ščt 2ščnj 2ščdž 2ščz 2ščš 2ščđ 2ščć 2ščč 2ščž 2hvb 2hvc 2hvd 2hvf 2hvg 2hvh 2hvk 2hvm 2hvn 2hvp 2hvs 2hvt 2hvnj 2hvdž 2hvz 2hvš 2hvđ 2hvć 2hvč 2hvž 2ž3vl 2ž3vlj 2c3vl 2c3vlj 2z3vl 2z3vlj 2š3vl 2š3vlj 2č3vl 2č3vlj 2č3vj 2s3vlj 2d3vl 2d3vlj 2d3vr 2k3vj 2k3vl 2k3vlj 2t3vj 2t3vl 2t3vlj 2g3vj 2g3vl 2g3vlj 2g3vr 2h3vj 2h3vl 2h3vlj 2h3vr 2ž3mj 2ž3ml 2ž3mlj 2ž3mr 2z3ml 2z3mr 2š3mj 2š3ml 2š3mlj 2š3cj 2š3cv 2š3čv 2š3tj 2š3tl 2š3tlj 2s3tl 2s3kj 2s3klj 2š3pj 2š3pl 2š3plj 2ž3dj 2ž3dl 2ž3dlj 2ž3dv 2ž3gj 2ž3gl 2ž3glj 2ž3gr 2ž3gv 2z3dl 2z3dlj 2z3dv 2z3gj 2z3glj 2ž3bj 2ž3bl 2ž3blj 2ž3br 2z3blj .a4e2ro .be4o .bi4o .ge4o .za3g2n .za3t2ka .iza3g2n .iza3t2k .iz3g2n .izd2no .izd2nu .izd2na .izr2k .ist2k .nag2n .nag2nj .na3d2nev .na3d2nič .na3d2nic .na3t2kah .na3t2kam .na3t2kasm .na3t2kast .oda3g2n .oda3d2n .od3g2n .od3m2n .o3t2kah .o3t2kam .o3t2kasm .o3t2kast .po3g2n .po3d2nev .po3m2n .po3m2nj .po3r2v .po3r2đ .po3t2kah .po3t2kam .po3t2kat .po3t2kav .pred3m2n .pred3m2nj .pre3t2kah .pre3t2kam .pre3t2kat .pro3g2n .pro3t2ki .pro3t2ka .raza3g2n .raz3g2n .raz3d2ni .raza3t2ka .u3g2mi .u3g2n .uza3t2ka 3h2teti 3h2tjeti 3h2tel 3h2tev 3h2tenj 3h2tjel 3h2tjev 3h2tjenj 3g2degod. 3g2djegod. 3g2dekak 3g2dekad 3g2djekak 3g2djekad ni3g2de. ne3g2de. ni3g2dje. ne3g2dje. 3b2det 3b2denj 3b2djet 3b2djenj 3g2mil 3g2milj 3g2miz 3g2nos 3g2noz 3g2noj 3g2naj 3g2nezd 3g2nijezd 3g2nežđ 3g2niježđ 3g2nev 3g2njev 3g2njav 3g2njes 3g2njet 3g2nječ 3g2njil 3g2njio 3g2njilj 3g2njit 3g2njur 3k2nez 3k2než 3k2njiž 3k2njig 3m2nož 3m2nog 3m2naž 3p2sik 3p2sič 3p2sov 3p2suj 3r2đa 3s2fer 3t2mast 3t2mul 3t2muo 3t2mulj 3t2mur 3c2miz 3c2mak 3c2mač 3c2mok 3č2lan 3č2lanj 3r2je 4r3jem 4r3je. .be2z3j .be2z3l .be2z3m .be2z3n .be2z3lj .be2z3r .be2z3v .be2z3nj .be2z3b .be2z3d .be2z3g .be2z3i .be2z3o .be2z3u .be2z3alkohol .be2z3atomsk .be3z4bedn .be3z4beda .be3z4bjedn .be3z4bjeda .be3z4beli .be3z4bol .be3z4vučn .be3z4vuča .be3z4istan .be3z4isten .be3z4jak .be3z4jač .be3z4lobn .be3z4loba .be3z4načaj .be3z4račn .be3z4rača .be3z4up .be3z4ub .be2s3c .be2s3k .be2s3p .be2s3t .be3s4krupul .be3s4pokojn .be3s4pokoja .be3s4porn .be3s4pora .be3s4tvar .be3s4tid .be3s4tija .be3s4tilu .be3s4tilj .be3s4trana .be3s4tras .bes4tseler .be2š3ć .be2š3č .va2n3evr .va2n3ustav .i2z3b .i2z3d .i2z3g .i2z3j .i2z3l .i2z3m .i2z3n .i2z3lj .i2z3r .i2z3v .i2z3nj .i2z3i .i2z3o .i2z3u .i2z3bija .i2z3biva .i2z3vedi .i2z3vedn .i2z3vedb .i2z3vede .i2z3daj .i2z3aba .i2z3aka .i2z3anal .i3z4bav .i3z4bičkava .i3z4bleušan .i3z4bojak .i3z4bojk .i3z4vali .i3z4valu .i3z4vala .i3z4vale .i3z4valji .i3z4vižd .i3z4viiskr .i3z4vija .i3z4vijen .i3z4vin .i3z4vir .i3z4vinj .i3z4vitop .i3z4vjed .i3z4vojac .i3z4vojc .i3z4vor .i3z4gomet .i3z4gred .i3z4grn .i3z4grt .i3z4drav .i3z4iđ .i3z4id .i3z4imi .i3z4ježlj .i3z4loz .i3z4lož .i3z4log .i3z4lopać .i3z4nim .i3z4noj .iz4oanem .iz4oanom .iz4obat .iz4obron .iz4ogam .iz4ogeo .iz4oglos .iz4ogon .iz4ograf .iz4odim .iz4odin .iz4odoz .iz4oklin .iz4okolon .i3z4olat .i3z4olac .i3z4olir .i3z4olov .iz4oleks .iz4oluks .iz4omer .iz4ometr .iz4omorf .iz4onef .iz4onom .iz4opat .iz4oper .iz4ople .iz4opol .iz4opsef .iz4orah .iz4osei .iz4osint .iz4osist .iz4oskel .iz4oskop .iz4ostaz .iz4oste .iz4otah .iz4otal .iz4oter .iz4oton .iz4otop .iz4otro .iz4ofon .iz4ofot .iz4ohal .iz4ohaz .iz4ohel .iz4ohij .iz4ohim .iz4ohit .iz4ohips .iz4ohor .iz4ohro .i3z4rael .i3z4railj .i3z4rači .i3z4un .i3z4upč .i2s3c .i2s3k .i2s3p .i2s3t .i3s4kak .i3s4kat .i3s4kanj .i3s4kariot .i3s4kvas .i3s4kvrč .i3s4kin .i3s4kita .i3s4konsk .i3s4koč .i3s4kram .i3s4krit .i3s4kriš .i3s4krič .i3s4kric .i3s4krat .i3s4kren .i3s4krenj .i3s4kroj .i3s4krsn .i3s4krsa .i3s4kuplja .i3s4lam .i3s4lab .i3s4leđ .i3s4led .i3s4lijeđ .i3s4lijed .i3s4ljeđ .i3s4ljed .i3s4lik .i3s4lin .i3s4lov .i3s4luš .i3s4luž .i3s4me .i3s4mije .i3s4mje .i3s4pav .i3s4paljiv .i3s4pira .i3s4plit .i3s4plić .i3s4pokoj .i3s4polin .i3s4pon .i3s4porav .i3s4pravi .i3s4pravk .i3s4pravn .i3s4pravlj .i3s4prava .i3s4pupč .i3s4pur .i3s4red .i3s4rk .i3s4tavi .i3s4tavlj .i3s4takn .i3s4tam .i3s4tar .i3s4tas .i3s4tać .i3s4tin .i3s4tir .i3s4tic .i3s4tifan .i3s4tok .i3s4tori .i3s4točn .i3s4točnj .i3s4toča .i3s4trav .i3s4trad .i3s4tran .i3s4trić .i3s4triž .i3s4tric .i3s4trug .i3s4tup .i3s4uk .i3s4us .i3s4ut .i3s4uš .i2ž3đ .i2š3ć .i2š3č .iz3be2z3obr .iz3be2z3um .iz3va2n3evr .na2d3l .na2d3lj .na2d3v .na3d4val .na3d4vesi .na3d4vest .na3d4vij .na3d4vit .na3d4vla .na3d4voje .na3d4vor .na2d3igr .na2d3inž .na2d3ina .na2d3isk .na2d3jah .na2d3jač .na2d3jek .na2d3jez .na2d3ječ .na2d3jun .na3d4lan .na3d4leš .na3d4lež .na2d3ora .na2d3oso .na2d3ose .na2d3osje .na2d3ofi .na2d3oč .na2d3ran .na2d3rač .na2d3rast .na2d3rašć .na2d3real .na2d3rep .na2d3ruk .na2d3ruč .na2d3rug .na2d3udar .na2d3um .na2d3uč .na2j3a .na2j3e .na2j3i .na2j3o .na2j3u .na3j4avi .na3j4avlj .na3j4ava .na3j4ave .na3j4adi .na3j4ada .na3j4ade .na3j4aži .na3j4azi .na3j4ako .na3j4aka .na3j4alo .na3j4ami .na3j4aml .na3j4amn .na3j4ari .na3j4arm .na3j4arc .na3j4ati .na3j4auk .na3j4ah .na3j4aš .na3j4edi .na3j4edn .na3j4edr .na3j4eda .na3j4eži .na3j4ežu .na3j4eže .na3j4ezn .na3j4ezd .na3j4esti .na3j4etk .na3j4ec .na3j4uri .na3j4uren .o2b3j .o2b3lj .o2b3r .obe2z3b .obe2z3d .obe2z3g .obe2z3j .obe2z3l .obe2z3m .obe2z3n .obe2z3o .obe2z3lj .obe2z3r .obe2z3u .obe2z3v .obe3z4vij .obe3z4nan .obe3z4nanj .obe3z4nač .obe3z4ub .obe2s3c .obe2s3k .obe2s3p .obe2s3t .obe3s4tan .obe3s4tij .obe3s4tran .obe2š3ć .obe2š3č .o2b3igr .o2b3istin .o2b3istinj .o3b4jek .o3b4jer .o3b4jesi .o3b4jet .o3b4ješ .o2b3laj .o2b3lam .o2b3lakš .o2b3lask .o2b3lep .o2b3let .o2b3leć .o2b3lež .o2b3leg .o2b3lijep .o2b3lijet .o2b3lijež .o2b3lijeg .o2b3leden .o2b3liv .o2b3lizat .o2b3lizav .o2b3lizi .o2b3list .o2b3loka .o2b3luk .o2b3luč .o3b4ljan .o3b4ljut .o3b4ljuz .o2b3oru .o3b4raže .o3b4razi .o3b4razn .o3b4razo .o3b4razu .o3b4raza .o3b4razd .o3b4ramb .o3b4ran .o3b4ranj .o3b4rat .o3b4rać .o3b4rašn .o3b4rašč .o3b4rv .o3b4rđ .o3b4rem .o3b4res .o3b4ređ .o3b4reč .o3b4rež .o3b4rec .o3b4red .o3b4reti .o3b4retn .o3b4rij .o3b4ris .o3b4rit .o3b4riv .o3b4rič .o3b4ric .o3b4rk .o3b4rl .o3b4rn .o3b4rlj .o3b4rs .o3b4rt .o3b4rš .o3b4rč .o3b4rok .o3b4ron .o3b4ronj .o3b4roć .o3b4roč .o3b4rova .o3b4rovc .o3b4ruk .o3b4run .o3b4rus .o3b4runj .o3b4ruš .o3b4ruč .o2b3ubož .o2b3uz .o2b3už .o2b3ud .o2b3umi .o2b3umj .o2b3umr .o2b3ume .o2d3j .o2d3l .o2d3lj .o2d3r .o2d3v .o2d3arg .o3d4vaj .o3d4važ .o3d4vesn .o3d4vest .o3d4vesa .o3d4vikav .o3d4vikn .o3d4vis .o3d4vić .o3d4voj .o2d3igr .o2d3i2z3v .o2d3i2z3d .o2d3isk .o2d3isti .o3d4jel .o3d4jen .o3d4jev .o3d4jeć .o3d4laz .o3d4laž .o3d4lag .o3d4laka .o3d4luk .o3d4luč .o2d3ozd .o2d3ozg .o2d3ok .o2d3onl .o2d3ono .o2d3onu .o2d3ond .o3d4rani .o3d4rano .o3d4ranu .o3d4rana .o3d4rane .o3d4raz .o3d4rać .o3d4raž .o3d4rapi .o3d4raplj .o3d4rapa .o3d4rači .o3d4rven .o3d4rvenj .o3d4rveč .o3d4rem .o3d4ren .o3d4ret .o3d4ređ .o3d4red .o3d4rl .o3d4rn .o3d4rp .o3d4rlj .o3d4rt .o3d4rž .o3d4rin .o3d4rinj .o3d4riš .o3d4rič .o3d4rib .o3d4ric .o3d4ron .o3d4ronj .o3d4ruž .o3d4rug .o2d3uvi .o2d3uve .o2d3uzi .o2d3uzl .o2d3uzd .o2d3uze .o2d3uk .o2d3ul .o2d3um .o2d3uč .po2d3adm .po2d3varij .po2d3vez .po2d3več .po2d3vež .po2d3vik .po2d3vil .po2d3vir .po2d3vinj .po2d3vlas .po2d3vlaš .po2d3voz .po2d3vođ .po2d3vož .po2d3vod .po2d3vrat .po2d3vrać .po2d3vrć .po2d3vrž .po2d3vrg .po2d3vris .po2d3vrs .po2d3vuć .po2d3igr .po2d3izv .po2d3j .po3d4jen .po3d4ječ .po2d3lakat .po2d3lakt .po2d3lep .po2d3let .po2d3leć .po2d3lež .po2d3leg .po2d3liz .po2d3lijep .po2d3lijet .po2d3lijeć .po2d3lijež .po2d3lijeg .po2d3list .po2d3lok .po2d3lom .po2d3lup .po2d3luč .po2d3luž .po2d3ljut .po2d3okn .po2d3oš .po2d3oč .po2d3of .po2d3ravn .po2d3ravnj .po2d3rad .po2d3ra2z3d .po2d3razr .po2d3razu .po2d3ram .po2d3ran .po2d3ras .po2d3ranj .po2d3rep .po2d3res .po2d3rez .po2d3rik .po2d3rit .po2d3ron .po2d3rov .po2d3rož .po2d3ruk .po2d3rub .po2d3ruči .po2d3ručn .po2d3ruča .po2d3upla .po2d3usm .po2d3usn .pre2d3j .pre2d3v .pre3d4vaj .pre3d4var .pre3d4vest .pre3d4voji .pre3d4voja .pre3d4voje .pre3d4vor .pre3d4vos .pre3d4jen .pre2d3igr .pre2d3id .pre2d3izb .pre2d3ispi .pre2d3isto .pre2d3istr .pre2d3obj .pre2d3odre .pre2d3okus .pre2d3osv .pre2d3ose .pre2d3osje .pre2d3rat .pre2d3rač .pre2d3rad .pre2d3ruč .pre2d3ubeđ .pre2d3ubijeđ .pre2d3ubjeđ .pre2d3uver .pre2d3uvjer .pre2d3uvjet .pre2d3ugov .pre2d3udar .pre2d3upis .pre2d3uslo .proti2v3akc .proti2v3otr .proti2v3of .proti2v3r .proti2v3us .proti2v3ud .ra2ž3đ .ra2z3b .ra2z3d .ra2z3e .ra2z3g .ra2z3i .ra2z3j .ra2z3l .ra2z3m .ra2z3n .ra2z3lj .ra2z3r .ra2z3v .ra2z3nj .ra2z3anal .ra3z4ban .ra3z4bar .ra3z4bau .ra3z4bad .ra3z4bašur .ra3z4boj .ra3z4bor .ra3z4val .ra3z4vede .ra3z4vest .ra3z4vigo .ra3z4viju .ra3z4vija .ra3z4vije .ra3z4vit .ra3z4vić .ra3z4voj .ra3z4von .ra3z4vrat .ra3z4vrać .ra3z4vrt .ra3z4vrć .ra3z4gađ .ra3z4grt .ra3z4ev .ra3z4ij .ra3z4il .ra3z4in .ra3z4ir .ra3z4it .ra3z4iz .ra3z4iđ .ra3z4ić .ra3z4id .ra3z4laz .ra3z4lag .ra3z4lik .ra3z4lič .ra3z4loz .ra3z4lož .ra3z4log .ra3z4met .ra3z4meć .ra3z4mrsk .ra3z4nat .ra2z3obl .ra2z3obr .ra2z3oba .ra2z3od .ra2z3orat .ra2z3orav .ra2z3ort .ra2z3oru .ra2z3ot .ra3z4red .ra3z4rok .ra3z4roč .ra2z3uve .ra2z3udi .ra2z3uda .ra2z3udb .ra2z3uzi .ra2z3uzd .ra2z3uze .ra2z3ular .ra2z3umr .ra2s3c .ra2s3k .ra2s3p .ra2s3t .ra3s4kak .ra3s4kand .ra3s4kin .ra3s4klap .ra3s4klanj .ra3s4klad .ra3s4klon .ra3s4klopi .ra3s4kloplj .ra3s4klopa .ra3s4koš .ra3s4krop .ra3s4paj .ra3s4pav .ra3s4peti .ra3s4peto .ra3s4peta .ra3s4pete .ra3s4piku .ra3s4pinj .ra3s4plin .ra3s4plinj .ra3s4pn .ra3s4polož .ra3s4pon .ra3s4por .ra3s4prav .ra3s4prem .ra3s4rđ .ra3s4rd .ra3s4re .ra3s4taj .ra3s4tan .ra3s4tat .ra3s4tav .ra3s4tenj .ra3s4til .ra3s4tir .ra3s4tis .ra3s4tit .ra3s4tinj .ra3s4toj .ra3s4trel .ra3s4tret .ra3s4troj .ra3s4trt .ra3s4tup .ra3s4tur .ra3s4tuć .ra4s5turč .ra2š3ć .ra2š3č .ra3š4ćenj .ra3š4čić .u2z3b .u2z3d .u2z3g .u2z3i .u2z3j .u2z3l .u2z3m .u2z3n .u2z3lj .u2z3r .u2z3v .u2z3nj .u3z4bor .u3z4van .u3z4vat .u3z4viž .u3z4vijo .u3z4viju .u3z4vija .u3z4vije .u3z4voj .u3z4dic .u2z3igr .u2z3inat .u2z3iskr .u3z4lan .u3z4lat .u3z4lim .u3z4lit .u3z4lić .u3z4lic .u3z4lov .u3z4ludob .u3z4nak .u3z4nač .u3z4neve .u3z4nevje .u3z4nič .u3z4nic .u3z4noj .u2z3obest .u2z3obijest .u2z3orat .u2z3orav .u2z3oho .u3z4ret .u3z4rev .u3z4rijet .u3z4rijev .u3z4rn .u3z4rnj .u3z4roko .u3z4roku .u3z4roka .u3z4roč .u3z4ruj .u2z3ugar .u2s3c .u2s3k .u2s3p .u3s4kak .u3s4klađ .u3s4klad .u3s4ko .u4s5kom .u4s5kov .u4s5koš .u4s5koko .u4s5kolu .u4s5kole .u4s5kopa .u4s5kora .u4s5kosi .u4s5kotr .u3s4kup .u3s4pav .u3s4palo .u3s4peh .u3s4pel .u3s4pem .u3s4pet .u3s4pev .u3s4peš .u3s4pjeh .u3s4pjel .u3s4pjem .u3s4pjet .u3s4pjev .u3s4pješ .u3s4pent .u3s4pija .u3s4pije .u3s4pijuš .u3s4pikuš .u3s4pon .u3s4pori .u3s4pora .u3s4poren .u3s4porenj .u3s4poreč .u3s4posob .u3s4premi .u3s4prema .u3s4rk .u3s4rn .u3s4rp .u3s4rlj .u3s4rt .u3s4rđ .u3s4rž .u3s4ra .u3s4rd .u3s4re .u3s4rijed .u2s3talas .u2s3tara .u2s3tvrđ .u2s3tvrd .u2s3ter .u2s3teć .u2s3teg .u2s3tov .u2s3traj .u2s3tral .u2s3trg .u2s3trep .u2s3tres .u2s3treb .u2s3trk .u2s3trn .u2s3trp .u2s3trć .u2s3trč .u2s3tum .u2s3tur .u2s3tuć .u2š3ć .u2š3č .a2b3alij .a2b3anac .a2b3evak .a2b3erac .a2b3erir .a2b3irit .a2b3ju .a2b3la .a2b3leg .a2b3lep .a2b3lok .a2b3lu .a2b3orig .a2b3reak .a2b3rog .a2b3uzus .a2d3erac .a2d3verb .a2d3j .a2d3lat .a2d3ren .a2d3rog .a3g2nos .a3g2noz .a2nabap .a2nabaz .a2nabat .a2nabio .a2nabol .a2nagen .a2nagno .a2n3ago .a2nagra .a2nadem .a2nadipl .a2nadoz .a2n3a4e2ro .a2nakal .a2nakam .a2nakat .a2nakef .a2nakla .a2nakli .a2nakoj .a2n3akuz .a2n3alg .a2n3ald .a2nalep .a2naliz .a2nalis .a2nalit .a2n3amert .a2namne .a2n3andr .a2naneo .a2n3ant .a2napla .a2naple .a2napne .a2napno .a2napro .a2napti .a2n3apto .a2nart .a2n3arh .a2nasar .a2nasei .a2naspaz .a2nasta .a2nastig .a2nastom .a2natim .a2natom .a2natoc .a2natre .a2natri .a2natro .a2nafaz .a2n3afij .a2nafila .a2nafon .a2n3afrod .a2nakol .a2nakron .a2nakru .a2n3alfa .a2nafor .a2nahor .a2nahro .a2n3eger .a2n3ekl .a2n3ekum .a2n3elek .a2n3ener .a2n3epi .a2neor .a2n3erg .a2n3erit .a2n3este .a2n3idr .a2n3izog .a2n3izom .a2n3izur .a2n3irid .a2n3ovar .a2n3oks .a2n3opis .a2n3orh .a2n3oft .a2n3org .di2s3akor .di2s3junk .di2s3kval .di2s3kont .di2s3kord .di2s3kre .di2s3kri .di2s3kur .di2s3lo .di2s3orij .di2s3parit .di2s3poz .di2s3pon .di2s3prop .di2s3ton .di2s3trak .i2n3abrup .i2n3adek .i2n3akur .i2n3akce .i2n3amor .i2n3anic .i2n3aplik .i2n3apst .i2n3art .i2n3augur .i2n3aura .i2n3afek .i2n3evid .i2n3eg .i2n3ed .i2n3ekv .i2n3eks .i2n3elig .i2n3epc .i2n3efek .i2n3obl .i2nogen .i2nokor .i2n3okup .i2n3oper .i2n3opor .i2n3opse .i2n3ofic .i2n3umbr .i2n3unda .i2n3unk .i2n3util .inte2r3i .inte2r3o .inte2r3u .inte2r3a .inte2r3e .inte3r4egn .inte3r4esi .inte3r4esn .inte3r4eso .inte3r4esu .inte3r4esa .inte3r4ese .inte3r4eždž .inte3r4ije .inte2r3je .inte3r4ogat .juri2s3k .juri2s3p .nu2z3bel .nu2z3bilj .nu2z3ljub .nu2z3re .nu2z3rje .nu2z3už .nu2s3pos .nu2s3pro .po2st3egz .po2st3indu .po2st3lim .po2st3onk .po2st3oper .su2b3a .su2b3l .su3b4aš .su2b3inv .su2b3junk .su2b3oks .su2b3rep .su2b3rog .su2b3ord .supe2r3i .supe2r3o .supe2r3u .supe2r3a .supe2r3e .supe3r4ior .tran2s3a .tran2s3c .tran2s3e .tran2s3k .tran2s3l .tran2s3m .tran2s3n .tran2s3o .tran2s3p .tran2s3t .tran2s3u .tran2s3v .tran2s3nj .tran3s4ep .tran3s4kri .tran3s4um .tran3s4ud .a2n3jon .i2n3jek .i2n3jur .i2n3just .o2d3žal .o2d3žalj .o2d3ži .o2d3žv .o2d3že .pre2d3ži .pre2d3že .na2d3ždr .na2d3žnj .na2d3že .na2d3žanj .na2d3žir .na2d3živ .na2d3žup l2j n2j d2ž 2dž.",
["lefthyphenmin"]=1,
- ["length"]=28148,
- ["n"]=2425,
+ ["length"]=50368,
+ ["n"]=5321,
["righthyphenmax"]=1,
},
["version"]="1.001",
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-ta.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-ta.lua
new file mode 100644
index 00000000000..73f160b6970
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-ta.lua
@@ -0,0 +1,20 @@
+return {
+ ["comment"]="% generated by mtxrun --script pattern --convert",
+ ["exceptions"]={
+ ["n"]=0,
+ },
+ ["metadata"]={
+ ["mnemonic"]="ta",
+ ["source"]="hyph-ta",
+ ["texcomment"]="% no comment",
+ },
+ ["patterns"]={
+ ["characters"]="ஂஃஅஆஇஈஉஊஎஏஐஒஓஔகஙசஜஞடணதநனபமயரறலளழவஷஸஹாிீுூெேைொோௌ்ௗ‌‍",
+ ["data"]="2‍2 1‌1 1அ1 1ஆ1 1இ1 1ஈ1 1உ1 1ஊ1 1எ1 1ஏ1 1ஐ1 1ஒ1 1ஓ1 1ஔ1 ா1 ி1 ீ1 ு1 ூ1 ெ1 ே1 ை1 ொ1 ோ1 ௌ1 1க 1ங 1ச 1ஜ 1ஞ 1ட 1ண 1த 1ந 1ப 1ம 1ய 1ர 1ற 1ல 1ள 1ழ 1வ 1ஷ 1ஸ 1ஹ 2க்1 2ங்1 2ச்1 2ஞ்1 2ட்1 2ண்1 2த்1 2ன்1 2ந்1 2ப்1 2ம்1 2ய்1 2ர்1 2ற்1 2ல்1 2ள்1 2ழ்1 2வ்1 2ஷ்1 2ஸ்1 2ஹ்1 2ஂ1 2ஃ1 2ௗ1 2்1",
+ ["lefthyphenmin"]=1,
+ ["length"]=456,
+ ["n"]=71,
+ ["righthyphenmax"]=1,
+ },
+ ["version"]="1.001",
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkiv/lang-te.lua b/Master/texmf-dist/tex/context/patterns/mkiv/lang-te.lua
new file mode 100644
index 00000000000..2c600a20d36
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/mkiv/lang-te.lua
@@ -0,0 +1,20 @@
+return {
+ ["comment"]="% generated by mtxrun --script pattern --convert",
+ ["exceptions"]={
+ ["n"]=0,
+ },
+ ["metadata"]={
+ ["mnemonic"]="te",
+ ["source"]="hyph-te",
+ ["texcomment"]="% no comment",
+ },
+ ["patterns"]={
+ ["characters"]="ఁంఃఅఆఇఈఉఊఋఌఎఏఐఒఓఔకఖగఘఙచఛజఝఞటఠడఢణతథదధనపఫబభమయరఱలళవశషసహాిీుూృౄెేైొోౌ్ౕౖౠౡ‌‍",
+ ["data"]="2‍2 1‌1 అ1 ఆ1 ఇ1 ఈ1 ఉ1 ఊ1 ఋ1 ౠ1 ఌ1 ౡ1 ఎ1 ఏ1 ఐ1 ఒ1 ఓ1 ఔ1 ా1 ి1 ీ1 ు1 ూ1 ృ1 ౄ1 ె1 ే1 ై1 ొ1 ో1 ౌ1 1క 1ఖ 1గ 1ఘ 1ఙ 1చ 1ఛ 1జ 1ఝ 1ఞ 1ట 1ఠ 1డ 1ఢ 1ణ 1త 1థ 1ద 1ధ 1న 1ప 1ఫ 1బ 1భ 1మ 1య 1ర 1ఱ 1ల 1ళ 1వ 1శ 1ష 1స 1హ 2ఁ1 2ం1 2ః1 2ౕ1 2ౖ1 2్2",
+ ["lefthyphenmin"]=1,
+ ["length"]=367,
+ ["n"]=72,
+ ["righthyphenmax"]=1,
+ },
+ ["version"]="1.001",
+} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/context/patterns/mkxl/lang-de.llg b/Master/texmf-dist/tex/context/patterns/mkxl/lang-de.llg
new file mode 100644
index 00000000000..89b8eef1f70
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/mkxl/lang-de.llg
@@ -0,0 +1,4010 @@
+-- In ConTeXt we have several mechanisms to deal with compound words, ligatures etc.
+-- We have language features, font features, in-stream replacers etc. At some point
+-- Denis Maier played with all of this and in the process we decided to look at yet
+-- another variant. For that we also needed lists of words and he came with one at:
+--
+-- https://github.com/micoloretan/selnolig/blob/master/selnolig-german-wordlist.tex
+--
+-- I'm not sure where that list originates (to be sorted out) and didn't look into
+-- how it is used (as we already followed different routes when we started with
+-- MKIV). So instead Denis started with some corpus and sdripted the lists instead.
+-- One reason is to deal with compound words (for which we have multiple mechanisms)
+-- in a more automates way, using modern LMTX features. So this is not for MKIV (at
+-- least not now). This mechanism can and will also deal with some other language
+-- issues.
+
+-- Comment : this is a starting point, not de definitve list of words
+-- Todo : break down this list in more meaningfull categories (like 'matches')
+-- Todo : maybe make options into a tabel with named option sets (only if needed)
+-- Todo : check if we need more at the engine level
+
+return {
+ name = "german",
+ version = "1.00",
+ comment = "Goodies that complement german.",
+ author = "Denis Maier & Hans Hagen",
+ copyright = "ConTeXt development team & whoever made this list / corpus",
+ options = {
+ {
+ words = [[
+ --
+ Auf|lauf|bremse
+ Auf|lauf|bremsen
+ Auf|lauf|theorien
+ Auf|triebsrumpf|konzept
+ --
+ Auf|fangfläche
+ Auf|fangversicherungspflicht
+ Auf|fangversicherungspflichtige
+ Auf|fangversicherungspflichtigen
+ Auf|fangversicherungspflichtiger
+ Auf|lageflaeche
+ Auf|lagefläche
+ Auf|lageflächen
+ Auf|lagenflut
+ Auf|lageziffer
+ Auf|lageziffern
+ Auf|lauffläche
+ Dampf|lokomotiventreffen
+ Schöpf|löffel
+ Schöpf|löffeln
+ Tief|fliegerangriff
+ Tief|fliegerangriffe
+ Tief|fliegerangriffen
+ Tief|flugangriffen
+ Tief|landfluss
+ Tief|landflüsse
+ Auf|lageflächen
+ Auf|lagenziffer
+ Auf|lagenziffern
+ Schöpf|löffels
+ Tief|löffel
+ Tief|löffelbagger
+ Tief|löffelbaggern
+ Tief|löffels
+ tief|löffeln
+ --
+ Grafikauf|lösung
+ Grafikauf|lösungen
+ Grafikkartenauf|lösung
+ Grafikkartenauf|lösungen
+ --
+ Auf|triebskraft
+ Auf|triebskräf|te
+ Auf|trifft
+ Brief|trägergewerkschaft
+ auf|trifft
+ auf|trumpft
+ auf|trumpf|te
+ ]],
+ },
+ {
+ patterns = {
+ ff = "f|f",
+ fl = "f|l",
+ fi = "f|i",
+ ffi = "f|fi",
+ ffl = "f|fl",
+ },
+ words = [[
+ Auffahren
+ Auffahrende
+ Auffahrgefahr
+ Auffahrkollision
+ Auffahrkonvergenz
+ Auffahrrampe
+ Auffahrrampen
+ Auffahrt
+ Auffahrtrampe
+ Auffahrtrampen
+ Auffahrtsrampe
+ Auffahrtsrampen
+ Auffahrtsstraße
+ Auffahrtstag
+ Auffahrtswochenende
+ Auffahrung
+ Auffahrungen
+ Auffahrungslänge
+ Auffallen
+ Auffallend
+ Auffallende
+ Auffallendes
+ Auffallendstes
+ Auffalt-Smartphone
+ Auffaltung
+ Auffang
+ Auffangbehälter
+ Auffangbett
+ Auffangbeutel
+ Auffangbox
+ Auffangeinrichtung
+ Auffangeinrichtungen
+ Auffangen
+ Auffanggatter
+ Auffanggeräte
+ Auffanggesellschaft
+ Auffanggesellschaf|ten
+ Auffanggurt
+ Auffanghauses
+ Auffanglinie
+ Auffanglösung
+ Auffangnetz
+ Auffangnetze
+ Auffangorganisation
+ Auffangparkplätzen
+ Auffangposten
+ Auffangprogrammen
+ Auffangraum
+ Auffangregelungen
+ Auffangrinne
+ Auffangschale
+ Auffangschirm
+ Auffangschüsseln
+ Auffangsgesellschaft
+ Auffangsieb
+ Auffangstation
+ Auffangstationen
+ Auffangstelle
+ Auffangstellung
+ Auffangstruktur
+ Auffangsystem
+ Auffangtatbestand
+ Auffangtrichter
+ Auffangverein
+ Auffangvolumen
+ Auffangzentrum
+ Auffangziele
+ Auffangzuständigkeit
+ Auffarth
+ Auffarths
+ Auffassungsreichweite
+ Auffassungstests
+ Auffassungsunterschied
+ Auffassungsunterschiede
+ Auffassungsunterschieden
+ Auffassungsweise
+ Auffinden
+ Auffindens
+ Auffindeort
+ Auffindesituation
+ Auffindsituation
+ Auffindungschancen
+ Auffindungsort
+ Aufflackern
+ Aufflammen
+ Auffliegen
+ Auffliegende
+ Aufflutung
+ Auffordern
+ Auffordernd
+ Auffordernde
+ Aufforderungscharakter
+ Aufforderungsschreiben
+ Aufforderungssignal
+ Aufforderungssignale
+ Aufforstungsaktivitäten
+ Aufforstungsarbeiten
+ Aufforstungsbescheid
+ Aufforstungsgebiets
+ Aufforstungsmaßnahmen
+ Aufforstungsprogramm
+ Aufforstungsprojekt
+ Aufforstungsprojekten
+ Aufforstungsprojekts
+ Aufforstungsunternehmen
+ Auffressen
+ Auffrischen
+ Auffrischimpfung
+ Auffrischungsimpfung
+ Auffädeln
+ Auffäliig
+ Auffällig
+ Auffällige
+ Auffälligen
+ Auffälliger
+ Auffälligerweise
+ Auffälliges
+ Auffälligkeit
+ Auffälligkeiten
+ Auffälligkeitsgrad
+ Auffälligste
+ Auffälligsten
+ Auffälligster
+ Auffälligstes
+ Aufführen
+ Aufführung
+ Aufführungen
+ Aufführungen/Lesungen
+ Aufführungsabende
+ Aufführungsapparate
+ Aufführungsbedingungen
+ Aufführungsblöcken
+ Aufführungsdaten
+ Aufführungsdauer
+ Aufführungsformate
+ Aufführungsgeschichte
+ Aufführungskritik
+ Aufführungskünste
+ Aufführungslandes
+ Aufführungsmaterial
+ Aufführungsmateriale
+ Aufführungsort
+ Aufführungsorte
+ Aufführungsorten
+ Aufführungspause
+ Aufführungspraktiken
+ Aufführungspraxis
+ Aufführungsprotokollen
+ Aufführungsprozess
+ Aufführungsrecht
+ Aufführungsreihe
+ Aufführungsrepertoire
+ Aufführungsserien
+ Aufführungsstätte
+ Aufführungstermine
+ Aufführungsterminen
+ Aufführungstradition
+ Aufführungstraditionen
+ Aufführungsverbot
+ Aufführungsverbote
+ Aufführungsvollprivileg
+ Aufführungswoche
+ Aufführungswochen
+ Aufführungszahlen
+ Aufführungszeit
+ Auffüllarbeiten
+ Auffüllen
+ Auffüller
+ Auffüllgebühren
+ Auffüllkapazität
+ Auffüllmaterial
+ Auffütterung
+ Aufladbarkeit
+ Auflade-Codes
+ Aufladedauer
+ Aufladegeschwindigkeit
+ Aufladekabel
+ Aufladekarten
+ Auflademädchen
+ Auflademöglichkeiten
+ Aufladen
+ Aufladens
+ Aufladereglung
+ Aufladesteuerung
+ Aufladesystem
+ Auflage
+ Auflagebereich
+ Auflagebügel
+ Auflagedatum
+ Auflagedruck
+ Auflagefrist
+ Auflagehöhe
+ Auflagekante
+ Auflagekräf|te
+ Auflagemaß
+ Auflagemaßes
+ Auflagen
+ Auflagenbegrenzung
+ Auflagenbezeichnung
+ Auflagendruck
+ Auflagendruckprozess
+ Auflageneinbußen
+ Auflagenentwicklung
+ Auflagenerfüllung
+ Auflagenfolge
+ Auflagenhöhe
+ Auflagenhöhen
+ Auflagenkontrolle
+ Auflagenniedergang
+ Auflagenobjekte
+ Auflagenpolitik
+ Auflagenrückgang
+ Auflagensparte
+ Auflagenstatistik
+ Auflagensteigerung
+ Auflagenstärkste
+ Auflagenverfügung
+ Auflagenverlust
+ Auflagenverstöße
+ Auflageprojekt
+ Auflagepunkt
+ Auflagepunkte
+ Auflager
+ Auflagerbereich
+ Auflagerkräf|te
+ Auflagern
+ Auflagerreaktionen
+ Auflagers
+ Auflagerung
+ Auflagerungen
+ Auflageschützen
+ Auflagespülen
+ Auflagesteine
+ Auflageverfahren
+ Auflagezeit
+ Auflagezimmer
+ Auflandungen
+ Auflandungsteiche
+ Auflassungsvormerkung
+ Auflast
+ Auflasten
+ Auflauf-/Kuchenform
+ Auflauf-Alternative
+ Auflaufen
+ Auflaufrolle
+ Auflaufschäden
+ Auflaufunfall
+ Aufleben
+ Auflebstiftung
+ Auflege-Vibrator
+ Auflegekanten
+ Auflegen
+ Auflegen-Symbol
+ Aufleger
+ Auflegern
+ Auflegung
+ Aufleuchten
+ Aufleuchtenlassen
+ Aufleveln
+ Auflicht
+ Auflichtbildverarbeitung
+ Auflichtmikroskopie
+ Auflichtprojektoren
+ Auflieferung
+ Aufliegen
+ Auflieger
+ Aufliegern
+ Aufliegers
+ Aufliegezeit
+ Auflisten
+ Auflockern
+ Auflockerungsboden
+ Auflockerungsgebiete
+ Aufloesung
+ Auflösen
+ Auflöser
+ Auflösezeit
+ Auflösung
+ Auflösungs-Dreisatz
+ Auflösungs-Erscheinungen
+ Auflösungsantrag
+ Auflösungsarbeit
+ Auflösungsbeschluß
+ Auflösungsbeschlüsse
+ Auflösungsentscheidung
+ Auflösungsgrund
+ Auflösungsproezsses
+ Auflösungstendenzen
+ Auflösungsunabhängigkeit
+ Auflösungsverlust
+ Auflösungsverlusts
+ Auflösungsvermögen
+ Auflösungsvermögens
+ Auflösungsversammlung
+ Auflösungsvertrag
+ Auflösungsvertrages
+ Auflösungsverträge
+ Auflösungsvorgang
+ Auflösungszeichen
+ Auflösungszeitpunkt
+ Auflüge
+ Brieffassung
+ Briefformat
+ Brieffreund
+ Brieffreunde
+ Brieffreundin
+ Brieffreundschaft
+ Brieffreundschaf|ten
+ Briefinhalt
+ Briefinhalten
+ Brieflauf
+ Brieflieferungen
+ Brieflos
+ Cheffluglehrer
+ Chefforscherinnen
+ Chefideologen
+ Cheflektor
+ Cheflimousinen
+ Cheflobbyistin
+ Dampffahne
+ Dampffahrt
+ Dampffahrzeugen
+ Dampffeuerspritze
+ Dampffontäne
+ Dampffrachter
+ Dampffreunden
+ Dampffördermaschine
+ Dampffördermaschinen
+ Dampfladen
+ Dampflagerstätten
+ Dampfleck
+ Dampfleitung
+ Dampfleitungen
+ Dampfleitungsverbindung
+ Dampflock
+ Dampflockbetriebs
+ Dampflockzug
+ Dampflok
+ Dampflok-Nostalgie
+ Dampflokabschied
+ Dampflokbau
+ Dampflokbaureihe
+ Dampflokbehandlungsanlagen
+ Dampflokbestand
+ Dampflokbetrieb
+ Dampflokeinsatz
+ Dampflokeinsatzes
+ Dampflokeldorados
+ Dampflokentwicklung
+ Dampflokfahrten
+ Dampflokführer
+ Dampflokhalle
+ Dampflokheizer
+ Dampfloki-Verein
+ Dampflokklinik
+ Dampflokkonstruktion
+ Dampflokmuseum
+ Dampflokomobile
+ Dampflokomotiv-Betriebswerk
+ Dampflokomotiv-Museums
+ Dampflokomotiv-Produktion
+ Dampflokomotivbau
+ Dampflokomotivbaureihe
+ Dampflokomotive
+ Dampflokomotivendepot
+ Dampflokomotivgattung
+ Dampflokomotivreihe
+ Dampfloks
+ Dampflokwerk
+ Dampflokzeit
+ Dampflokzuschlag
+ Dampfluftbefeuchter
+ Dorffeiern
+ Dorffeld
+ Dorffeldes
+ Dorffest
+ Dorffest-Atmosphäre
+ Dorffest-Ausschuss
+ Dorffeste
+ Dorffesten
+ Dorffestes
+ Dorffestgemeinschaft
+ Dorffestmacher
+ Dorffestung
+ Dorffilialen
+ Dorfflohmarkt
+ Dorfflur
+ Dorffläche
+ Dorfform
+ Dorfformen
+ Dorffrauen
+ Dorffreunde
+ Dorffriedhof
+ Dorffriedhofes
+ Dorffußball
+ Dorfführungen
+ Dorfidyll
+ Dorfidylle
+ Dorfinnern
+ Dorfitter
+ Dorflada
+ Dorfladenboten
+ Dorfladenkonzepte
+ Dorfladens
+ Dorflage
+ Dorflagen
+ Dorflazaretten
+ Dorfleben
+ Dorflebens
+ Dorflehrer
+ Dorflehrerin
+ Dorflif|te
+ Dorflinde
+ Dorflinden
+ Dorfliste
+ Dorflädchen
+ Dorfläden
+ Fünfliber
+ Fünfligist
+ Fünfliter-V2
+ Golffahrer
+ Golffahrerin
+ Golffahrers
+ Golffalte
+ Golfferien
+ Golflegende
+ Golflehrer
+ Golflehrerin
+ Golflektion
+ Golfliebhaber
+ Hanffabrik
+ Hanffaser
+ Hanffasern
+ Hanffaserproduktion
+ Hanffeld
+ Hanffreund
+ Hanffreunde
+ Hanfland-Ullrich
+ Hanfling
+ Hanfliteratur
+ Hoffahrt
+ Hoffaktor
+ Hoffaktoren
+ Hoffaktorin
+ Hoffaschen
+ Hoffassade
+ Hoffassaden
+ Hoffest
+ Hoffeste
+ Hoffesten
+ Hoffestes
+ Hoffilmer
+ Hoffilmerin
+ Hofflohmarkt
+ Hoffläche
+ Hofflächen
+ Hofflächenprogramm
+ Hofflügel
+ Hoffolgezeugnis
+ Hofform
+ Hofformen
+ Hoffotograf
+ Hoffotografen
+ Hoffrogge
+ Hoffront
+ Hoffräulein
+ Hoffung
+ Hoffungen
+ Hoffungsschimmer
+ Hoffungsträger
+ Hofi
+ Hofimmobilien
+ Hofinger
+ Hofinhaber
+ Hofinsel
+ Hofintendanten
+ Hofintrige
+ Hofintrigen
+ Hoflackierer
+ Hofladen-Hütte
+ Hofladen-Verkauf
+ Hofladens
+ Hoflader
+ Hoflager
+ Hofland
+ Hoflandwirtschaft
+ Hoflebens
+ Hoflehrer
+ Hofleitner
+ Hofleute
+ Hofleuten
+ Hoflicht
+ Hoflieferant
+ Hoflieferanten
+ Hoflieferantendiplom
+ Hoflieferantentitel
+ Hoflinger
+ Hoflingerin
+ Hoflingers
+ Hoflnung
+ Hoflädeli
+ Hofläden
+ Hoflößnitz
+ Hoflößnitzer
+ Huflederhaut
+ Impffachleute
+ Impffest
+ Impffrage
+ Impffragen
+ Impffrist
+ Impfleistung
+ Impflicht
+ Impfling
+ Impflinge
+ Impflingen
+ Impflings
+ Impfliste
+ Impflogistik
+ Impflösungen
+ Impflücken
+ Kampffahrzeug
+ Kampffahrzeuge
+ Kampffahrzeugen
+ Kampffahrzeugs
+ Kampffeld
+ Kampffeldes
+ Kampffelds
+ Kampffertigkeit
+ Kampffertigkeiten
+ Kampfform
+ Kampfformation
+ Kampfformationen
+ Kampfformen
+ Kampffrage
+ Kampffähigkeiten
+ Kampfinstrument
+ Kampflager
+ Kampfleistung
+ Kampflesben
+ Kampflinie
+ Kampflos
+ Kampflose
+ Kampfluren
+ Kampflustig
+ Kampfläufer
+ Kampfläufers
+ Kaufimpuls
+ Kaufimpulse
+ Kaufingerstraße
+ Kaufinteressent
+ Klopffestigkeit
+ Klopffestigkeitsgründen
+ Kopffalten
+ Kopffedern
+ Kopffeld
+ Kopfformen
+ Kopffraktion
+ Kopffreiheit
+ Kopffutter
+ Kopffärbung
+ Kopffüssler
+ Kopffüßer
+ Kopffüßer-Kamasutra
+ Kopffüßern
+ Kopffüßers
+ Kopffüßler
+ Kopffüßler-Wesen
+ Kopflehne
+ Kopfleidens
+ Kopflose
+ Kopflosen
+ Kopflosigkeit
+ Kopflänge
+ Kopfläuse
+ Köpfli
+ Laufinlay
+ Laufinnere
+ Pfeiflaute
+ Pfeifle
+ Prüffall
+ Prüffallbearbeitungen
+ Prüffassung
+ Prüffehler
+ Prüffelder
+ Prüfflug
+ Prüffrist
+ Prüffristen
+ Prüffällen
+ Prüflaboratorien
+ Prüflaboratorium
+ Prüflabors
+ Prüflager
+ Prüflauf
+ Prüfleiter
+ Prüflinges
+ Prüflingsanschluss
+ Prüflingslänge
+ Prüflizenzen
+ Prüfläufe
+ Reifland-Wünschendorf
+ Reifling-Formation
+ Relieflinie
+ Ruflaute
+ Rufli
+ Rufling
+ Rumpff
+ Rumpffamilien
+ Rumpfflächen
+ Rumpfform
+ Rumpfformen
+ Rumpfinneren
+ Schaffarmen
+ Schaflechner
+ Schaflerhofes
+ Schieflast
+ Schiefling
+ Schilff
+ Schilffläche
+ Schilfflächen
+ Schlaflabor
+ Schlaflabore
+ Schlaflaboren
+ Schlaflaborpersonal
+ Schlaflabors
+ Schlaflager
+ Schlaflagern
+ Schlaflandschaft
+ Schlafleben
+ Schlafliegen
+ Schlaflos
+ Schlaflose
+ Schlafly
+ Schlaflys
+ Schlaflähmungen
+ Schleiflack
+ Schleiflade
+ Schleifladen
+ Schleifladen-Instrument
+ Schleifladenorgel
+ Schleifladenorgeln
+ Schleifleiste
+ Schleifleisten
+ Schleifleistung
+ Schweiflänge
+ Senffabrik
+ Straflandesgericht
+ Straflandesgerichts
+ Strafleiden
+ Strafleistung
+ Straflingsinspektor
+ Straflingskolonie
+ Straflinie
+ Straflos
+ Straflosigkeit
+ Sumpffarngewächse
+ Sumpffieberepidemie
+ Sumpffläche
+ Sumpfflächen
+ Sumpflandschaft
+ Sumpflandschaf|ten
+ Sumpfloch
+ Sumpfläufer
+ Sumpflöcher
+ Surfleet
+ Surflegende
+ Surflehrer
+ Surflehrerbody
+ Surflehrerin
+ Surfliner
+ Tariffestsetzungen
+ Tarifflucht
+ Tarifforderungen
+ Tariffortschreibung
+ Tariffragen
+ Tariffuchs
+ Tarifindex
+ Tarifinformation
+ Tarifinformationen
+ Tarifinnovationen
+ Tariflandschaft
+ Tarifleistung
+ Tariflich
+ Tariflichen
+ Tarifliste
+ Tariflohnentwicklung
+ Tariflohnerhöhungen
+ Tariflohnsteigerung
+ Tieffeldverschiebung
+ Tieffenbach
+ Tieffenbrucker
+ Tieffliegende
+ Tieffliegererkennung
+ Tieffliegervernichtungsabzeichen
+ Tiefflugaktivitäten
+ Tiefflugeinsätze
+ Tieffluggebiete
+ Tiefflugschneisen
+ Tieffrieren
+ Tiefladeanhänger
+ Tiefladern
+ Tiefladers
+ Tiefladewagen
+ Tiefland
+ Tiefland-Plätzen
+ Tiefland-Regenwälder
+ Tiefland-Regenwäldern
+ Tiefland-Verlag
+ Tieflandbach
+ Tieflandbäche
+ Tieflandebene
+ Tieflandfarmern
+ Tieflandgebiete
+ Tieflandgebieten
+ Tieflandregenwald
+ Tieflandregenwald-Schutzgebietes
+ Tieflandregenwälder
+ Tieflandregionen
+ Tieflandsbucht
+ Tieflandstrecke
+ Tieflandwaldgürtel
+ Tieflandwälder
+ Tieflandwäldern
+ Tieflauter
+ Tieflegung
+ Tieflochbohren
+ Tieflohnbereich
+ Tieflohnjobs
+ Tieflöhne
+ Topflappen
+ Torflaute
+ Torflieferungen
+ Torflinse
+ Wurflanzen
+ auffaellig
+ auffaelliges
+ auffallend
+ auffasern
+ auffetten
+ auffinbar
+ aufflackernde
+ aufflackernden
+ aufflanschen
+ aufflog
+ auffraß
+ auffraßen
+ auffußen
+ auffällig
+ auffälligerweise
+ aufführungspraktische
+ aufführungspraktischem
+ aufführungsreif
+ auflag
+ auflagefreie
+ auflagen
+ auflagenbewehrte
+ auflagenfördernde
+ auflagenmäßig
+ auflagenstarke
+ auflagenstarken
+ auflagenstärkste
+ auflagenstärksten
+ auflagernden
+ auflastet
+ auflauert
+ auflauft
+ auflegen
+ aufleveln
+ auflevelt
+ auflief
+ aufliefen
+ aufliest
+ auflud
+ aufluden
+ auflässigen
+ auflösen
+ auflösenden
+ auflösung
+ auflösungen
+ auflösungsgerichteten
+ brieflich
+ dampffrei
+ dampflokbetriebene
+ dorffreie
+ fünflappig
+ fünflappige
+ fünflappigen
+ hanffarbenen
+ kampffertig
+ kampffrei
+ kampffreudige
+ kampflastig
+ klopffeste
+ klopffesten
+ kopfförmig
+ kopfförmige
+ laufintensiven
+ prüffähigen
+ schieflaufen
+ schieflief
+ schifflosen
+ schlaflose
+ senffarbenen
+ steifleinern
+ straflager
+ tariffremden
+ tariffähigen
+ tariflose
+ tieffrequenten
+ tieffrequenter
+ tiefinnere
+ Ablauffolge
+ Ablauffolgen
+ Ablauffähigkeit
+ Ablauffähigkeiten
+ Ablaufleitung
+ Ablaufleitungen
+ Ablaufliste
+ Ablauflisten
+ Abruffunktion
+ Abruffunktionen
+ Anruffalle
+ Anruffallen
+ Anruffunktion
+ Anruffunktionen
+ Anzweiflung
+ Anzweiflungen
+ Auffahrten
+ Auffahrtsweg
+ Auffahrunfall
+ Auffahrunfalls
+ Auffahrunfälle
+ Auffahrunfällen
+ Auffaltungen
+ Auffangbecken
+ Auffangbeckens
+ Auffanglager
+ Auffanglagern
+ Auffanglagers
+ Auffangregister
+ Auffangregistern
+ Auffangregisters
+ Auffangt
+ Auffangvorrichtung
+ Auffangvorrichtungen
+ Auffangwanne
+ Auffangwannen
+ Auffangweiche
+ Auffangweichen
+ Auffassbarkeit
+ Auffassbarkeiten
+ Auffassung
+ Auffassungen
+ Auffassungsgabe
+ Auffassungsgaben
+ Auffassungsvermögen
+ Auffassungsvermögens
+ Auffindbarkeit
+ Auffindbarkeiten
+ Auffindung
+ Auffindungen
+ Aufflackerns
+ Aufforderung
+ Aufforderungen
+ Aufforstung
+ Aufforstungen
+ Auffrischung
+ Auffrischungen
+ Auffächerung
+ Auffächerungen
+ Aufführung
+ Aufführungen
+ Aufführungsstatistik
+ Aufführungsstil
+ Aufführungsstile
+ Aufführungsstilen
+ Aufführungsstils
+ Auffüllung
+ Auffüllungen
+ Auflader
+ Aufladerin
+ Aufladerinnen
+ Aufladern
+ Aufladers
+ Aufladet
+ Aufladevorgang
+ Aufladevorgangs
+ Aufladung
+ Aufladungen
+ Auflage
+ Auflagen
+ Auflagenerhöhung
+ Auflagenerhöhungen
+ Auflagenstark
+ Auflagenstarke
+ Auflagenstarkem
+ Auflagenstarken
+ Auflagenstarker
+ Auflagenstarkes
+ Auflagenstärke
+ Auflagenzahl
+ Auflagenzahlen
+ Auflassung
+ Auflassungen
+ Auflauf
+ Auflaufform
+ Auflaufformen
+ Auflaufs
+ Auflehnung
+ Auflehnungen
+ Aufliegeschema
+ Auflistung
+ Auflistungen
+ Auflockerung
+ Auflockerungen
+ Auflockerungstendenz
+ Auflockerungstendenzen
+ Aufläufe
+ Aufläufen
+ Auflösung
+ Auflösungen
+ Auflösungsbeschluss
+ Auflösungsbeschlusses
+ Auflösungsbeschluß
+ Auflösungsbeschlüssen
+ Auflösungserscheinung
+ Auflösungserscheinungen
+ Auflösungsprozess
+ Auflösungsprozesse
+ Auflösungsprozessen
+ Auflösungsprozeß
+ Autobahnauffahrt
+ Bauauflage
+ Bauauflagen
+ Bettauflage
+ Bettauflagen
+ Bezweiflung
+ Bildschirmauflösung
+ Bildschirmauflösungen
+ Biohofladen
+ Bischoffinger
+ Brieffach
+ Briefform
+ Brieffächer
+ Briefintrige
+ Brieflaufzeiten
+ Chefflugleiter
+ Cheffunktion
+ Chefideologe
+ Dampfleistung
+ Dampflokomotiven
+ Darstellungsauffassung
+ Darstellungsauffassungen
+ Dauertropfflasche
+ Dorffeuerwehr
+ Dorfladen
+ Düsenkampfflugzeug
+ Eingabeaufforderung
+ Einwurffächer
+ Einzelhandelskaufleute
+ Einzelhandelskaufleuten
+ Erstaufführung
+ Erstauflage
+ Erstauflagen
+ Freiberufler
+ Freiberuflerin
+ Freiberuflerinnen
+ Freiberuflern
+ Freiberuflers
+ Freilichtaufführung
+ Freilichtaufführungen
+ Fünflinge
+ Fünflingen
+ Gastspielaufführung
+ Gebirgsauffaltung
+ Großkaufleute
+ Großkaufleuten -- Buddenbrooks
+ Grundauffassung
+ Grundauffassungen
+ Gugelhupfform
+ Handgreiflichkeit
+ Handgreiflichkeiten
+ Hofladen
+ Hofleben
+ Hufform
+ Häuflein
+ Häufleins
+ Impfflüssigkeit
+ Impffolgen
+ Impfforschung
+ Kampfflieger
+ Kampffliegers
+ Kampfflugzeug
+ Kampfflugzeuge
+ Kampfflugzeuges
+ Kampffront
+ Kampffähigkeit
+ Kampfführung
+ Kampflaune
+ Kampflied
+ Kampflieder
+ Kampfliedern
+ Kauffahrer
+ Kauffahrerin
+ Kauffahrerinnen
+ Kauffahrern
+ Kauffahrers
+ Kauffahrt
+ Kauffrau
+ Kauffrauen
+ Kaufindex
+ Kaufindizes
+ Kaufinteresse
+ Kaufinteressenten
+ Kaufladen
+ Kaufladens
+ Kauflaune
+ Kaufleidenschaft
+ Kaufleitung
+ Kaufleute
+ Kaufleuten
+ Kauflust
+ Kaufläden
+ Kettensträfling
+ Kettensträflinge
+ Kettensträflingen
+ Kettensträflings
+ Knopfloch
+ Knopflöcher
+ Kontoauflösung
+ Kopfform
+ Kopfleiste
+ Kreislauffunktion
+ Kreislaufleiden
+ Käuflichkeit
+ Köpflein
+ Lagerauffüllung
+ Lagerauflösung
+ Lauffeuer
+ Lauffeuern
+ Lauffeuers
+ Lauffolgen
+ Lauffähigkeit
+ Laufindex
+ Laufindexe
+ Laufindexen
+ Laufindexes
+ Laufindices
+ Laufleine
+ Laufleinen
+ Lauflernhilfen
+ Lebensauffassung
+ Lebensauffassungen
+ Liebhaberaufführung
+ Menschenkopfform
+ Mindestreserveauflagen
+ Monitorauflösung
+ Monitorauflösungen
+ Neuauflage
+ Neuauflagen
+ Oberstufler
+ Opernaufführung
+ Opernaufführungen
+ Parlamentsauflösung
+ Politikauffassung
+ Politikauffassungen
+ Produktionsauflagen
+ Prüffach
+ Prüffeld
+ Prüffächer
+ Prüfingenieur
+ Prüfling
+ Prüflinge
+ Prüflingen
+ Prüflings
+ Prüfliste
+ Prüflisten
+ Reichstagsauflösung
+ Restauflage
+ Restauflagen
+ Rinderkopffleisch
+ Schaffell
+ Schaffelle
+ Schaffellen
+ Schaffells
+ Schafleder
+ Schafledern
+ Schafleders
+ Scherflein
+ Scherfleins
+ Schieflage
+ Schieflagen
+ Schieflaufen
+ Schilffeld
+ Schilffelder
+ Schilfinsel
+ Schilfinseln
+ Schlafforscher
+ Schlafforschung
+ Schlaffrisur
+ Schlaflied
+ Schlaflieder
+ Schlafliedern
+ Schlafliedes
+ Schlaflieds
+ Schlaflosigkeit
+ Schlaflosigkeiten
+ Schlupfloch
+ Schlupfloches
+ Schlupflochs
+ Schlupflöcher
+ Schlupflöchern
+ Selbstauflösung
+ Serienbrieffunktion
+ Straffall
+ Straffalls
+ Strafforderung
+ Straffälle
+ Straflager
+ Straflagern
+ Straflagers
+ Streiflicht
+ Streiflichter
+ Streiflichtern
+ Streiflichts
+ Sträfling
+ Sträflinge
+ Sträflingen
+ Sträflings
+ Sturzkampfflugzeug
+ Sturzkampfflugzeuge
+ Sturzkampfflugzeugen
+ Sturzkampfflugzeugs
+ Sumpffieber
+ Sumpffliege
+ Sumpffliegen
+ Sumpfland
+ Sumpflandes
+ Sumpflands
+ Sumpflicht
+ Sumpflichter
+ Sumpfländer
+ Sumpfländern
+ Surfladen
+ Tariffalle
+ Tariffallen
+ Tarifforderung
+ Tariffront
+ Tariffähigkeit
+ Tariflohn
+ Tariflohns
+ Tariflöhne
+ Tariflöhnen
+ Theateraufführung
+ Theateraufführungen
+ Tiefflieger
+ Tieffliegern
+ Tieffliegers
+ Tiefflug
+ Tieffluges
+ Tiefflugs
+ Tiefflüge
+ Tiefflügen
+ Tiefladeprogramm
+ Tieflader
+ Tieflage
+ Tieflagen
+ Tiefland
+ Tieflandes
+ Tieflands
+ Tiefländer
+ Tiefländern
+ Torffeuer
+ Totenkopfflagge
+ Täufling
+ Täuflinge
+ Täuflingen
+ Täuflings
+ Tüpflischeißer
+ Tüpflischiesser
+ Umlauffähigkeit
+ Unauffindbarkeit
+ Unauffindbarkeiten
+ Unverkäuflichkeit
+ Uraufführung
+ Uraufführungen
+ Verkäuflichkeit
+ Verzweiflung
+ Verzweiflungsschritt
+ Verzweiflungstat
+ Voraufführung
+ Voraufführungen
+ Vorlaufindikator
+ Vorlaufindikatoren
+ Wahlkampffieber
+ Wahlkampfflamme
+ Wahlkampffloskeln
+ Wahlkampfflyer
+ Waldorflehrer
+ Waldorflehrerin
+ Waldorflehrerinnen
+ Waldorflehrern
+ Waldorflehrers
+ Wegwerfformat
+ Wettkampffieber
+ Wettkampfflair
+ Wettkampffläche
+ Wiederaufladung
+ Wirtschaftsauffassung
+ Wurflaune
+ Wölflein
+ Wölfling
+ Zahlungsaufforderung
+ Zahlungsaufforderungen
+ Zeitauflösung
+ Zupfinstrument
+ Zupfinstrumente
+ Zupfinstrumenten
+ Zupfinstrumentes
+ Zupfinstruments
+ Zweifler
+ Zweiflerin
+ Zweiflerinnen
+ Zweiflern
+ Zweiflers
+ Zweitauflage
+ Zweitauflagen
+ Zwölffingerdarm
+ Zwölffingerdarmes
+ Zwölffingerdarms
+ Zöpflein
+ ablauffähig
+ ablauffähige
+ ablauffähigem
+ ablauffähigen
+ ablauffähiger
+ ablauffähiges
+ arbeitskampffähig
+ auffahrbar
+ auffahrbare
+ auffahrbarem
+ auffahrbaren
+ auffahrbarer
+ auffahrbares
+ auffahre
+ auffahren
+ auffahrend
+ auffahrende
+ auffahrendem
+ auffahrenden
+ auffahrender
+ auffahrendes
+ auffahrt
+ auffalle
+ auffallen
+ auffallend
+ auffallende
+ auffallendem
+ auffallenden
+ auffallender
+ auffallendere
+ auffallenderem
+ auffallenderen
+ auffallenderer
+ auffallenderes
+ auffallenderweise
+ auffallendes
+ auffallendst
+ auffallendste
+ auffallendstem
+ auffallendsten
+ auffallendster
+ auffallendstes
+ auffallt
+ auffaltbar
+ auffand
+ auffanden
+ auffandest
+ auffandet
+ auffandst
+ auffangbar
+ auffangbare
+ auffangbarem
+ auffangbaren
+ auffangbarer
+ auffangbares
+ auffange
+ auffangen
+ auffangend
+ auffangende
+ auffangendem
+ auffangenden
+ auffangender
+ auffangendes
+ auffassbar
+ auffassbare
+ auffassbarem
+ auffassbaren
+ auffassbarer
+ auffassbares
+ auffasse
+ auffassen
+ auffassend
+ auffassende
+ auffassendem
+ auffassenden
+ auffassender
+ auffassendes
+ auffassens
+ auffassest
+ auffasst
+ auffasste
+ auffassten
+ auffasstest
+ auffasstet
+ auffaßt
+ auffaßte
+ auffaßten
+ auffaßtest
+ auffaßtet
+ auffiel
+ auffiele
+ auffielen
+ auffielst
+ auffielt
+ auffindbar
+ auffindbare
+ auffindbarem
+ auffindbaren
+ auffindbarer
+ auffindbares
+ auffinde
+ auffinden
+ auffindend
+ auffindende
+ auffindendem
+ auffindenden
+ auffindender
+ auffindendes
+ auffindens
+ auffindest
+ auffindet
+ auffing
+ auffinge
+ auffingen
+ auffingst
+ auffingt
+ auffische
+ auffischen
+ auffischend
+ auffischende
+ auffischendem
+ auffischenden
+ auffischender
+ auffischendes
+ auffischest
+ auffischst
+ auffischt
+ auffischte
+ auffischten
+ auffischtest
+ auffischtet
+ aufflackern
+ aufflamme
+ aufflammen
+ aufflammend
+ aufflammende
+ aufflammendem
+ aufflammenden
+ aufflammender
+ aufflammendes
+ aufflammst
+ aufflammt
+ aufflammte
+ aufflammten
+ aufflammtest
+ aufflammtet
+ auffliege
+ auffliegen
+ auffliegend
+ auffliegende
+ auffliegendem
+ auffliegenden
+ auffliegender
+ auffliegendes
+ auffliegst
+ auffliegt
+ auffloge
+ aufflogen
+ aufflogest
+ auffloget
+ aufflöge
+ aufflögen
+ aufflögest
+ aufflöget
+ auffordere
+ auffordern
+ auffordernd
+ auffordernde
+ aufforderndem
+ auffordernden
+ auffordernder
+ aufforderndes
+ aufforderns
+ aufforderst
+ auffordert
+ aufforderte
+ aufforderten
+ auffordertest
+ auffordertet
+ auffordre
+ aufforstbar
+ aufforstbare
+ aufforstbarem
+ aufforstbaren
+ aufforstbarer
+ aufforstbares
+ aufforste
+ aufforsten
+ aufforstend
+ aufforstende
+ aufforstendem
+ aufforstenden
+ aufforstender
+ aufforstendes
+ aufforstens
+ aufforstest
+ aufforstet
+ aufforstete
+ aufforsteten
+ aufforstetest
+ aufforstetet
+ auffrass
+ auffrassen
+ auffrassest
+ auffrasst
+ auffraß
+ auffraßest
+ auffraßt
+ auffresse
+ auffressen
+ auffressend
+ auffressende
+ auffressendem
+ auffressenden
+ auffressender
+ auffressendes
+ auffresst
+ auffreßt
+ auffrischbar
+ auffrischbare
+ auffrischbarem
+ auffrischbaren
+ auffrischbarer
+ auffrischbares
+ auffrische
+ auffrischen
+ auffrischend
+ auffrischende
+ auffrischendem
+ auffrischenden
+ auffrischender
+ auffrischendes
+ auffrischens
+ auffrischest
+ auffrischst
+ auffrischt
+ auffrischte
+ auffrischten
+ auffrischtest
+ auffrischtet
+ auffrisiere
+ auffrisieren
+ auffrisierend
+ auffrisierende
+ auffrisierendem
+ auffrisierenden
+ auffrisierender
+ auffrisierendes
+ auffrisierst
+ auffrisiert
+ auffrisierte
+ auffrisiertem
+ auffrisierten
+ auffrisierter
+ auffrisiertes
+ auffrisiertest
+ auffrisiertet
+ auffrisst
+ auffrißt
+ auffräse
+ auffräsen
+ auffräsest
+ auffräset
+ auffrässe
+ auffrässen
+ auffrässest
+ auffrässet
+ auffräße
+ auffräßen
+ auffräßest
+ auffräßet
+ auffuhr
+ auffuhren
+ auffuhrst
+ auffuhrt
+ auffächerbar
+ auffächerbare
+ auffächerbarem
+ auffächerbaren
+ auffächerbarer
+ auffächerbares
+ auffächere
+ auffächern
+ auffächernd
+ auffächernde
+ auffächerndem
+ auffächernden
+ auffächernder
+ auffächerndes
+ auffächerns
+ auffächerst
+ auffächert
+ auffächerte
+ auffächerten
+ auffächertest
+ auffächertet
+ auffächre
+ auffährst
+ auffährt
+ auffällig
+ auffällige
+ auffälligem
+ auffälligen
+ auffälliger
+ auffälligere
+ auffälligerem
+ auffälligeren
+ auffälligerer
+ auffälligeres
+ auffälliges
+ auffälligkeit
+ auffälligkeiten
+ auffälligst
+ auffälligste
+ auffälligstem
+ auffälligsten
+ auffälligster
+ auffälligstes
+ auffällst
+ auffällt
+ auffängst
+ auffängt
+ aufführbar
+ aufführbare
+ aufführbarem
+ aufführbaren
+ aufführbarer
+ aufführbares
+ aufführe
+ aufführen
+ aufführend
+ aufführende
+ aufführendem
+ aufführenden
+ aufführender
+ aufführendes
+ aufführens
+ aufführst
+ aufführt
+ aufführte
+ aufführten
+ aufführtest
+ aufführtet
+ auffüllbar
+ auffüllbare
+ auffüllbarem
+ auffüllbaren
+ auffüllbarer
+ auffüllbares
+ auffülle
+ auffüllen
+ auffüllend
+ auffüllende
+ auffüllendem
+ auffüllenden
+ auffüllender
+ auffüllendes
+ auffüllens
+ auffüllst
+ auffüllt
+ auffüllte
+ auffüllten
+ auffülltest
+ auffülltet
+ aufisst
+ auflache
+ auflachen
+ auflachend
+ auflachende
+ auflachendem
+ auflachenden
+ auflachender
+ auflachendes
+ auflachst
+ auflacht
+ auflachte
+ auflachten
+ auflachtest
+ auflachtet
+ aufladbar
+ aufladbare
+ aufladbarem
+ aufladbaren
+ aufladbarer
+ aufladbares
+ auflade
+ aufladen
+ aufladend
+ aufladende
+ aufladendem
+ aufladenden
+ aufladender
+ aufladendes
+ aufladens
+ auflandig
+ auflandige
+ auflandigem
+ auflandigen
+ auflandiger
+ auflandiges
+ auflasse
+ auflassen
+ auflassend
+ auflassende
+ auflassendem
+ auflassenden
+ auflassender
+ auflassendes
+ auflassens
+ auflasst
+ auflauere
+ auflauern
+ auflauernd
+ auflauernde
+ auflauerndem
+ auflauernden
+ auflauernder
+ auflauerndes
+ auflauerst
+ auflauert
+ auflauerte
+ auflauerten
+ auflauertest
+ auflauertet
+ auflaufe
+ auflaufen
+ auflaufend
+ auflaufende
+ auflaufendem
+ auflaufenden
+ auflaufender
+ auflaufendes
+ auflaure
+ auflaßt
+ auflebe
+ aufleben
+ auflebend
+ auflebende
+ auflebendem
+ auflebenden
+ auflebender
+ auflebendes
+ auflebst
+ auflebt
+ auflebte
+ auflebten
+ auflebtest
+ auflebtet
+ auflege
+ auflegen
+ auflegend
+ auflegende
+ auflegendem
+ auflegenden
+ auflegender
+ auflegendes
+ auflegst
+ auflegt
+ auflegte
+ auflegten
+ auflegtest
+ auflegtet
+ auflehne
+ auflehnen
+ auflehnend
+ auflehnende
+ auflehnendem
+ auflehnenden
+ auflehnender
+ auflehnendes
+ auflehnens
+ auflehnst
+ auflehnt
+ auflehnte
+ auflehnten
+ auflehntest
+ auflehntet
+ auflese
+ auflesen
+ auflesend
+ auflesende
+ auflesendem
+ auflesenden
+ auflesender
+ auflesendes
+ auflest
+ aufleuchte
+ aufleuchten
+ aufleuchtend
+ aufleuchtende
+ aufleuchtendem
+ aufleuchtenden
+ aufleuchtender
+ aufleuchtendes
+ aufleuchtest
+ aufleuchtet
+ aufleuchtete
+ aufleuchteten
+ aufleuchtetest
+ aufleuchtetet
+ aufliege
+ aufliegen
+ aufliegend
+ aufliegende
+ aufliegendem
+ aufliegenden
+ aufliegender
+ aufliegendes
+ aufliegst
+ aufliegt
+ aufliesse
+ aufliessen
+ aufliessest
+ aufliesset
+ aufließe
+ aufließen
+ aufließest
+ aufließet
+ auflistbar
+ auflistbare
+ auflistbarem
+ auflistbaren
+ auflistbarer
+ auflistbares
+ aufliste
+ auflisten
+ auflistend
+ auflistende
+ auflistendem
+ auflistenden
+ auflistender
+ auflistendes
+ auflistens
+ auflistest
+ auflistet
+ auflistete
+ auflisteten
+ auflistetest
+ auflistetet
+ auflockere
+ auflockern
+ auflockernd
+ auflockernde
+ auflockerndem
+ auflockernden
+ auflockernder
+ auflockerndes
+ auflockerns
+ auflockerst
+ auflockert
+ auflockerte
+ auflockerten
+ auflockertest
+ auflockertet
+ auflockre
+ auflodere
+ auflodern
+ auflodernd
+ auflodernde
+ aufloderndem
+ auflodernden
+ auflodernder
+ aufloderndes
+ aufloderns
+ aufloderst
+ auflodert
+ aufloderte
+ aufloderten
+ auflodertest
+ auflodertet
+ auflodre
+ auflädst
+ auflädt
+ aufläuft
+ auflösbar
+ auflösbare
+ auflösbarem
+ auflösbaren
+ auflösbarer
+ auflösbares
+ auflöse
+ auflösen
+ auflösend
+ auflösende
+ auflösendem
+ auflösenden
+ auflösender
+ auflösendes
+ auflösens
+ auflösest
+ auflöst
+ auflöste
+ auflösten
+ auflöstest
+ auflöstet
+ auflüde
+ auflüden
+ auflüdest
+ auflüdet
+ begreiflich
+ begreifliche
+ begreiflichem
+ begreiflichen
+ begreiflicher
+ begreiflichere
+ begreiflicherem
+ begreiflicheren
+ begreiflicherer
+ begreiflicheres
+ begreiflicherweise
+ begreifliches
+ begreiflichst
+ begreiflichste
+ begreiflichstem
+ begreiflichsten
+ begreiflichster
+ begreiflichstes
+ behilflich
+ behilfliche
+ behilflichem
+ behilflichen
+ behilflicher
+ behilfliches
+ beruflich
+ berufliche
+ beruflichem
+ beruflichen
+ beruflicher
+ berufliches
+ bezweifle
+ bezweiflete
+ bezweifleten
+ bischöflich
+ bischöfliche
+ bischöflichem
+ bischöflichen
+ bischöflicher
+ bischöfliches
+ brieflich
+ briefliche
+ brieflichem
+ brieflichen
+ brieflicher
+ briefliches
+ darauffolge
+ darauffolgen
+ darauffolgend
+ darauffolgende
+ darauffolgendem
+ darauffolgenden
+ darauffolgender
+ darauffolgendes
+ darauffolgst
+ darauffolgt
+ darauffolgte
+ darauffolgten
+ darauffolgtest
+ darauffolgtet
+ drauflege
+ drauflegen
+ drauflegend
+ drauflegende
+ drauflegendem
+ drauflegenden
+ drauflegender
+ drauflegendes
+ drauflegst
+ drauflegt
+ drauflegte
+ drauflegten
+ drauflegtest
+ drauflegtet
+ drauflos
+ drauflosgegangen
+ drauflosgegangene
+ drauflosgegangenem
+ drauflosgegangenen
+ drauflosgegangener
+ drauflosgegangenes
+ drauflosgehe
+ drauflosgehen
+ drauflosgehend
+ drauflosgehende
+ drauflosgehendem
+ drauflosgehenden
+ drauflosgehender
+ drauflosgehendes
+ drauflosgehst
+ drauflosgeht
+ drauflosging
+ drauflosginge
+ drauflosgingen
+ drauflosgingst
+ drauflosgingt
+ dörflich
+ dörfliche
+ dörflichem
+ dörflichen
+ dörflicher
+ dörfliches
+ elffach
+ elffache
+ elffachem
+ elffachen
+ elffacher
+ elffaches
+ elffingrig
+ elffingrige
+ erzbischöflich
+ erzbischöfliche
+ erzbischöflichem
+ erzbischöflichen
+ erzbischöflicher
+ erzbischöfliches
+ freiberuflich
+ freiberufliche
+ freiberuflichem
+ freiberuflichen
+ freiberuflicher
+ freiberufliches
+ fünffach
+ fünffache
+ fünffachem
+ fünffachen
+ fünffacher
+ fünffaches
+ fünffingerig
+ fünffingerige
+ fünffingerigem
+ fünffingerigen
+ fünffingeriger
+ fünffingeriges
+ glimpflich
+ glimpfliche
+ glimpflichem
+ glimpflichen
+ glimpflicher
+ glimpfliches
+ handgreiflich
+ handgreifliche
+ handgreiflichem
+ handgreiflichen
+ handgreiflicher
+ handgreifliches
+ hauptberuflich
+ hauptberufliche
+ hauptberuflichem
+ hauptberuflichen
+ hauptberuflicher
+ hauptberufliches
+ hilflos
+ hilflose
+ hilflosem
+ hilflosen
+ hilfloser
+ hilflosere
+ hilfloserem
+ hilfloseren
+ hilfloserer
+ hilfloseres
+ hilfloses
+ hilflosest
+ hilfloseste
+ hilflosestem
+ hilflosesten
+ hilflosester
+ hilflosestes
+ hinauffahre
+ hinauffahren
+ hinauffahrend
+ hinauffahrende
+ hinauffahrendem
+ hinauffahrenden
+ hinauffahrender
+ hinauffahrendes
+ hinauffahrt
+ hinauffuhr
+ hinauffuhren
+ hinauffuhrst
+ hinauffuhrt
+ hinauffährt
+ hinaufführe
+ hinaufführen
+ hinaufführend
+ hinaufführende
+ hinaufführendem
+ hinaufführenden
+ hinaufführender
+ hinaufführendes
+ hinaufführst
+ hinaufführt
+ hinaufführte
+ hinaufführten
+ hinaufführtest
+ hinaufführtet
+ hochauflösend
+ hochauflösende
+ hochauflösendem
+ hochauflösenden
+ hochauflösender
+ hochauflösendes
+ hoffähig
+ höflich
+ höfliche
+ höflichem
+ höflichen
+ höflicher
+ höflichere
+ höflicherem
+ höflicheren
+ höflicherer
+ höflicheres
+ höfliches
+ höflichkeit
+ höflichkeiten
+ höflichkeitsbesuche
+ höflichkeitsbesuches
+ höflichkeitsformeln
+ höflichst
+ höflichste
+ höflichstem
+ höflichsten
+ höflichster
+ höflichstes
+ kampffähig
+ kampffähige
+ kampffähigem
+ kampffähigen
+ kampffähiger
+ kampffähiges
+ kampflos
+ kampflose
+ kampflosem
+ kampflosen
+ kampfloser
+ kampfloses
+ kampflustig
+ kampflustige
+ kampflustigem
+ kampflustigen
+ kampflustiger
+ kampflustigere
+ kampflustigerem
+ kampflustigeren
+ kampflustigerer
+ kampflustigeres
+ kampflustiges
+ kampflustigst
+ kampflustigste
+ kampflustigstem
+ kampflustigsten
+ kampflustigster
+ kampflustigstes
+ kauflustig
+ kauflustige
+ kauflustiger
+ kauflustigste
+ kauflustigsten
+ kopflastig
+ kopflastige
+ kopflastigem
+ kopflastigen
+ kopflastiger
+ kopflastiges
+ kopflos
+ kopflose
+ kopflosem
+ kopflosen
+ kopfloser
+ kopflosere
+ kopfloserem
+ kopfloseren
+ kopfloserer
+ kopfloseres
+ kopfloses
+ kopflosest
+ kopfloseste
+ kopflosestem
+ kopflosesten
+ kopflosester
+ kopflosestes
+ käuflich
+ käufliche
+ käuflichem
+ käuflichen
+ käuflicher
+ käufliches
+ lauffähig
+ lauffähige
+ lauffähigem
+ lauffähigen
+ lauffähiger
+ lauffähiges
+ markgräflich
+ markgräfliche
+ markgräflichem
+ markgräflichen
+ markgräflicher
+ markgräfliches
+ nebenberuflich
+ nebenberufliche
+ nebenberuflichem
+ nebenberuflichen
+ nebenberuflicher
+ nebenberufliches
+ prüffähige
+ rauflustig
+ rauflustige
+ rauflustigem
+ rauflustigen
+ rauflustiger
+ rauflustiges
+ reiflich
+ reifliche
+ reiflichem
+ reiflichen
+ reiflicher
+ reiflichere
+ reiflicherem
+ reiflicheren
+ reiflicherer
+ reiflicheres
+ reifliches
+ reiflichst
+ reiflichste
+ reiflichstem
+ reiflichsten
+ reiflichster
+ reiflichstes
+ schieflache
+ schieflachen
+ schieflachend
+ schieflachende
+ schieflachendem
+ schieflachenden
+ schieflachender
+ schieflachendes
+ schieflachst
+ schieflacht
+ schieflachte
+ schieflachten
+ schieflachtest
+ schieflachtet
+ schieflag
+ schieflagst
+ schieflagt
+ schiefliege
+ schiefliegen
+ schiefliegend
+ schiefliegende
+ schiefliegendem
+ schiefliegenden
+ schiefliegender
+ schiefliegendes
+ schiefliegst
+ schiefliegt
+ schiefläuft
+ schimpflich
+ schimpfliche
+ schimpflichem
+ schimpflichen
+ schimpflicher
+ schimpfliches
+ schlaflos
+ schlaflose
+ schlaflosem
+ schlaflosen
+ schlafloser
+ schlafloses
+ schweflig
+ schweflige
+ schwefligem
+ schwefligen
+ schwefliger
+ schwefliges
+ selbstauffaltend
+ steckbrieflich
+ straffrisch
+ straffähig
+ straffällig
+ straffällige
+ straffälligem
+ straffälligen
+ straffälliger
+ straffälliges
+ straflos
+ straflose
+ straflosem
+ straflosen
+ strafloser
+ strafloses
+ sträflich
+ sträfliche
+ sträflichem
+ sträflichen
+ sträflicher
+ sträfliches
+ tariffähig
+ tariflich
+ tarifliche
+ tariflichem
+ tariflichen
+ tariflicher
+ tarifliches
+ teuflisch
+ teuflische
+ teuflischem
+ teuflischen
+ teuflischer
+ teuflischere
+ teuflischerem
+ teuflischeren
+ teuflischerer
+ teuflischeres
+ teuflisches
+ teuflischst
+ teuflischste
+ teuflischstem
+ teuflischsten
+ teuflischster
+ teuflischstes
+ tieffliege
+ tieffliegen
+ tieffliegend
+ tieffliegende
+ tieffliegendem
+ tieffliegenden
+ tieffliegender
+ tieffliegendes
+ tieffliegst
+ tieffliegt
+ tiefflog
+ tiefflogen
+ tiefflogst
+ tiefflogt
+ tiefladbar
+ tiefladbare
+ tiefladbarem
+ tiefladbaren
+ tiefladbarer
+ tiefladbares
+ tieflade
+ tiefladen
+ tiefliege
+ tiefliegen
+ tiefliegend
+ tiefliegende
+ tiefliegendem
+ tiefliegenden
+ tiefliegender
+ tiefliegendes
+ tiefliegst
+ tiefliegt
+ unauffindbar
+ unauffindbare
+ unauffindbarem
+ unauffindbaren
+ unauffindbarer
+ unauffindbares
+ unauffällig
+ unauffällige
+ unauffälligem
+ unauffälligen
+ unauffälliger
+ unauffälligere
+ unauffälligerem
+ unauffälligeren
+ unauffälligerer
+ unauffälligeres
+ unauffälliges
+ unauffälligkeit
+ unauffälligkeiten
+ unauffälligst
+ unauffälligste
+ unauffälligstem
+ unauffälligsten
+ unauffälligster
+ unauffälligstes
+ unauflösbar
+ unauflösbare
+ unauflösbarem
+ unauflösbaren
+ unauflösbarer
+ unauflösbares
+ unauflöslich
+ unauflösliche
+ unauflöslichem
+ unauflöslichen
+ unauflöslicher
+ unauflösliches
+ unbegreiflich
+ unbegreifliche
+ unbegreiflichem
+ unbegreiflichen
+ unbegreiflicher
+ unbegreiflichere
+ unbegreiflicherem
+ unbegreiflicheren
+ unbegreiflicherer
+ unbegreiflicheres
+ unbegreifliches
+ unbegreiflichkeit
+ unbegreiflichst
+ unbegreiflichste
+ unbegreiflichstem
+ unbegreiflichsten
+ unbegreiflichster
+ unbegreiflichstes
+ unerschöpflich
+ unerschöpfliche
+ unerschöpflichem
+ unerschöpflichen
+ unerschöpflicher
+ unerschöpflichere
+ unerschöpflicherem
+ unerschöpflicheren
+ unerschöpflicherer
+ unerschöpflicheres
+ unerschöpfliches
+ unerschöpflichst
+ unerschöpflichste
+ unerschöpflichstem
+ unerschöpflichsten
+ unerschöpflichster
+ unerschöpflichstes
+ unglimpflich
+ unglimpfliche
+ unglimpflichem
+ unglimpflichen
+ unglimpflicher
+ unglimpfliches
+ unhöflich
+ unhöfliche
+ unhöflichem
+ unhöflichen
+ unhöflicher
+ unhöflichere
+ unhöflicherem
+ unhöflicheren
+ unhöflicherer
+ unhöflicheres
+ unhöfliches
+ unhöflichkeit
+ unhöflichkeiten
+ unhöflichst
+ unhöflichste
+ unhöflichstem
+ unhöflichsten
+ unhöflichster
+ unhöflichstes
+ unverkäuflich
+ unverkäufliche
+ unverkäuflichem
+ unverkäuflichen
+ unverkäuflicher
+ unverkäufliches
+ unwiderruflich
+ unwiderrufliche
+ unwiderruflichem
+ unwiderruflichen
+ unwiderruflicher
+ unwiderrufliches
+ uraufführe
+ uraufführen
+ uraufführend
+ uraufführende
+ uraufführendem
+ uraufführenden
+ uraufführender
+ uraufführendes
+ uraufführst
+ uraufführt
+ uraufführte
+ uraufführten
+ uraufführtest
+ uraufführtet
+ verelffache
+ verelffachen
+ verelffachend
+ verelffachende
+ verelffachendem
+ verelffachenden
+ verelffachender
+ verelffachendes
+ verelffachst
+ verelffacht
+ verelffachte
+ verelffachtem
+ verelffachten
+ verelffachter
+ verelffachtes
+ verelffachtest
+ verelffachtet
+ verfünffache
+ verfünffachen
+ verfünffachend
+ verfünffachende
+ verfünffachendem
+ verfünffachenden
+ verfünffachender
+ verfünffachendes
+ verfünffachst
+ verfünffacht
+ verfünffachte
+ verfünffachtem
+ verfünffachten
+ verfünffachter
+ verfünffachtes
+ verfünffachtest
+ verfünffachtet
+ verkäuflich
+ verkäufliche
+ verkäuflichem
+ verkäuflichen
+ verkäuflicher
+ verkäufliches
+ verwerflich
+ verwerfliche
+ verwerflichem
+ verwerflichen
+ verwerflicher
+ verwerflichere
+ verwerflicherem
+ verwerflicheren
+ verwerflicherer
+ verwerflicheres
+ verwerfliches
+ verwerflichst
+ verwerflichste
+ verwerflichstem
+ verwerflichsten
+ verwerflichster
+ verwerflichstes
+ verzwölffache
+ verzwölffachen
+ verzwölffachend
+ verzwölffachende
+ verzwölffachendem
+ verzwölffachenden
+ verzwölffachender
+ verzwölffachendes
+ verzwölffachst
+ verzwölffacht
+ verzwölffachte
+ verzwölffachtem
+ verzwölffachten
+ verzwölffachter
+ verzwölffachtes
+ verzwölffachtest
+ verzwölffachtet
+ vorberuflich
+ vorberufliche
+ vorberuflichem
+ vorberuflichen
+ vorberuflicher
+ vorberufliches
+ wettkampffähiges
+ widerruflich
+ widerrufliche
+ widerruflichem
+ widerruflichen
+ widerruflicher
+ widerrufliches
+ wiederaufführung
+ wiederaufführungen
+ wiederaufladbar
+ wiederaufladbare
+ wiederaufladbarem
+ wiederaufladbaren
+ wiederaufladbarer
+ wiederaufladbares
+ wiederauflade
+ wiederaufladen
+ wiederaufladend
+ wiederaufladende
+ wiederaufladendem
+ wiederaufladenden
+ wiederaufladender
+ wiederaufladendes
+ wiederaufladet
+ wiederauflebe
+ wiederaufleben
+ wiederauflebend
+ wiederauflebende
+ wiederauflebendem
+ wiederauflebenden
+ wiederauflebender
+ wiederauflebendes
+ wiederauflebst
+ wiederauflebt
+ wiederauflebte
+ wiederauflebten
+ wiederauflebtest
+ wiederauflebtet
+ würflig
+ würflige
+ würfligem
+ würfligen
+ würfliger
+ würfliges
+ zweifle
+ zwölffach
+ zwölffache
+ zwölffachem
+ zwölffachen
+ zwölffacher
+ zwölffaches
+ übertariflich
+ übertarifliche
+ übertariflichem
+ übertariflichen
+ übertariflicher
+ übertarifliches
+ ]],
+ },
+ {
+ patterns = {
+ ffi = "ff|i",
+ ffl = "ff|l",
+ fff = "ff|f",
+ },
+ words = [[
+ Griffleisten
+ Grifflochsysteme
+ Grifflänge
+ Grifflöcher
+ Grifflöchern
+ Grifflücke
+ Offline
+ -- Offline-Anwendungen
+ -- Offline-Archiv
+ -- Offline-Betrachtung
+ -- Offline-Betrieb
+ -- Offline-Browser
+ -- Offline-Challenge
+ -- Offline-Daten
+ -- Offline-Dating
+ -- Offline-Dienste
+ -- Offline-Download
+ -- Offline-Funktionalität
+ -- Offline-Funktionalitäten
+ -- Offline-Fähigkeit
+ -- Offline-Geschäft
+ -- Offline-Installer
+ -- Offline-Karten
+ -- Offline-Kompaktierung
+ -- Offline-Konsum
+ -- Offline-Kopien
+ -- Offline-Marketing
+ -- Offline-Multiplayer
+ -- Offline-Multiplayer-Modus
+ -- Offline-Netflix-Vergnügen
+ -- Offline-Nutzung
+ -- Offline-Optimierung
+ -- Offline-Phasen
+ -- Offline-Programmierung
+ -- Offline-Projektstart
+ -- Offline-Prüfung
+ -- Offline-Publikationen
+ -- Offline-Test
+ -- Offline-Trainingsgelände
+ -- Offline-Transaktionen
+ -- Offline-Umgebungen
+ -- Offline-Ungleichheit
+ -- Offline-Versammlungen
+ -- Offline-Version
+ -- Offline-Vertriebskanal
+ -- Offline-Wikipedia
+ Offlineversion
+ Offlinezeit
+ Offlinezugriff
+ Schifflange
+ Schifflinien
+ Schiffliste
+ Schifflände
+ Stoffideen
+ Stofflappen
+ Stofflehre
+ Stofflich
+ Stoffliche
+ Stofflichkeit
+ Stofflichkeiten
+ Stofflumpen
+ Stofflänge
+ Stofflöwen
+ offline-Lesen
+ offline-netflix-Filme
+ stofflich
+ stoffliche
+ stofflichen
+ stofflicher
+ Offlinezugriffe
+ Offlinezugriffs
+ Baustoffindustrie
+ Baustoffindustrien
+ Baustoffingenieur
+ Baustoffingenieure
+ Büffler
+ Büfflerin
+ Büfflerinnen
+ Kleiderstoffindustrie
+ Knoepffler
+ Kunststoffindustrie
+ Löffler
+ Rohstoffindex
+ Rohstoffindexe
+ Rohstoffindices
+ Rohstoffindustrie
+ Rohstoffingenieur
+ Rohstoffingenieure
+ Schifffahrt
+ Schnüffler
+ Schnüfflerin
+ Schnüfflerinnen
+ Schnüfflern
+ Schnüfflers
+ Sprengstofffallen
+ Steuerschnüffler
+ Steuerschnüfflern
+ Steuerschnüfflers
+ begrifflich
+ begriffliche
+ begrifflichem
+ begrifflichen
+ begrifflicher
+ begriffliches
+ grifffest
+ grifffeste
+ grifffestem
+ grifffesten
+ grifffester
+ grifffestes
+ inbegriffleitend
+ knifflig
+ knifflige
+ kniffligem
+ kniffligen
+ kniffliger
+ kniffligere
+ kniffligerem
+ kniffligeren
+ kniffligerer
+ kniffligeres
+ kniffliges
+ kniffligst
+ kniffligste
+ kniffligstem
+ kniffligsten
+ kniffligster
+ kniffligstes
+ offline
+ trefflich
+ treffliche
+ trefflichem
+ trefflichen
+ trefflicher
+ trefflichere
+ trefflicherem
+ trefflicheren
+ trefflicherer
+ trefflicheres
+ treffliches
+ trefflichkeit
+ trefflichst
+ trefflichste
+ trefflichstem
+ trefflichsten
+ trefflichster
+ trefflichstes
+ unübertrefflich
+ vortrefflich
+ vortreffliche
+ vortrefflichem
+ vortrefflichen
+ vortrefflicher
+ vortreffliches
+ ]],
+ },
+ {
+ patterns = {
+ ft = "f|t",
+ fft = "ff|t",
+ },
+ words = [[
+ Auftakt
+ -- Auftakt-Aus
+ -- Auftakt-Ausscheiden
+ -- Auftakt-Durchgang
+ -- Auftakt-Event
+ -- Auftakt-Folge
+ -- Auftakt-Freilos
+ -- Auftakt-Gegnerin
+ -- Auftakt-Grand-Prix
+ -- Auftakt-Heldin
+ -- Auftakt-Hürde
+ -- Auftakt-Inszenierung
+ -- Auftakt-Niederlage
+ -- Auftakt-Pressekonferenz
+ -- Auftakt-Programm
+ -- Auftakt-Reise
+ -- Auftakt-Scharte
+ -- Auftakt-Seufzer
+ -- Auftakt-Sieg
+ -- Auftakt-Veranstaltung
+ -- Auftakt-Vorstellungen
+ -- Auftakt-Wochenende
+ -- Auftakt-Workshop
+ Auftaktabend
+ Auftaktaktion
+ Auftaktaktionen
+ Auftaktanlass
+ Auftaktbezwinger
+ Auftaktchores
+ Auftaktdrittel
+ Auftaktdrittels
+ Auftaktduell
+ Auftakte
+ Auftaktepisode
+ Auftakterfolg
+ Auftaktetappe
+ Auftaktfall
+ Auftaktfilm
+ Auftaktfolge
+ Auftaktgegner
+ Auftaktgeschichte
+ Auftaktgottesdienst
+ Auftakthürde
+ Auftaktkampf
+ Auftaktkundgebung
+ Auftaktlauf
+ Auftaktlos
+ Auftaktmarsch
+ Auftaktmatch
+ Auftaktmotiv
+ Auftaktniederlage
+ Auftaktniederlagen
+ Auftaktpartie
+ Auftaktpartien
+ Auftaktplädoyer
+ Auftaktplädoyers
+ Auftaktpointe
+ Auftaktpremiere
+ Auftaktproduktion
+ Auftaktprogramm
+ Auftaktquartal
+ Auftaktrede
+ Auftaktrennen
+ Auftaktrunde
+ Auftakts
+ Auftaktsaison
+ Auftaktsatz
+ Auftaktseminar
+ Auftaktsendung
+ Auftaktshow
+ Auftaktsieg
+ Auftaktsieger
+ Auftaktsitzung
+ Auftaktsong
+ Auftaktspiel
+ Auftaktspiele
+ Auftaktspiels
+ Auftaktspielt
+ Auftaktspieltages
+ Auftaktspot
+ Auftaktspringen
+ Auftaktsprint
+ Auftaktstaffel
+ Auftakttermin
+ Auftakttraining
+ Auftakttrainings
+ Auftakttreffen
+ Auftaktturnier
+ Auftaktveranstaltung
+ Auftaktveranstaltungen
+ Auftaktverluste
+ Auftaktvideos
+ Auftaktvorlesung
+ Auftaktweltcup
+ Auftaktwettbewerb
+ Auftaktzeichen
+ Auftaktzeitfahren
+ Auftaktzeremonie
+ Auftaktzeremoniell
+ Auftanken
+ Auftankens
+ Auftankterminal
+ Auftauboden
+ Auftaubodens
+ Auftauchen
+ Auftauchende
+ Auftauchgeschwindigkeit
+ Auftauchvorgang
+ Auftauen
+ Auftauflüssigkeit
+ Auftaufunktion
+ Auftaumittel
+ Auftauplatten
+ Auftauprozesses
+ Auftausalz
+ Auftauschicht
+ Auftauzeit
+ Auftischalternative
+ Auftraege
+ Auftrag
+ Auftragbestand
+ Auftrage
+ Auftrageber
+ Auftragemengen
+ Auftragen
+ Auftrages
+ Auftraggbeer
+ Auftraggeber
+ Auftraggeberin
+ Auftraggeberinnen
+ Auftraggebern
+ Auftraggeberrisikos
+ Auftraggebers
+ Auftragnehmer
+ Auftragnehmern
+ Auftragnehmers
+ Auftragnehmerseite
+ Auftrags
+ Auftrags-/Projektgröße
+ Auftrags-Revolverhelden
+ Auftragsabsprache
+ Auftragsabwicklung
+ Auftragsakquise
+ Auftragsakquisition
+ Auftragsangeboten
+ Auftragsangelegenheiten
+ Auftragsannahme
+ Auftragsanstieg
+ Auftragsanzahl
+ Auftragsarbeit
+ Auftragsarbeiten
+ Auftragsarten
+ Auftragsausfälle
+ Auftragsausfällen
+ Auftragsbaby
+ Auftragsbasis
+ Auftragsbearbeitung
+ Auftragsberatungsstellen
+ Auftragsbericht
+ Auftragsbeschaffung
+ Auftragsbeschreibung
+ Auftragsbestand
+ Auftragsbestandes
+ Auftragsbestands
+ Auftragsbestände
+ Auftragsbeständen
+ Auftragsbestätigung
+ Auftragsbestätigung/Lieferschein
+ Auftragsbestätigungen
+ Auftragsbohrungen
+ Auftragsboom
+ Auftragsbuch
+ Auftragsbudget
+ Auftragsbücher
+ Auftragsbüchern
+ Auftragsdaten
+ Auftragsdatenverarbeitungsvereinbarung
+ Auftragsdecke
+ Auftragsdiebin
+ Auftragsdurchlauf
+ Auftragsdurchlaufzeit
+ Auftragseinbruch
+ Auftragseinbruchs
+ Auftragseinbrüche
+ Auftragseinbrüchen
+ Auftragseinbußen
+ Auftragseingang
+ Auftragseingangs
+ Auftragseingänge
+ Auftragseingängen
+ Auftragseinheiten
+ Auftragsende
+ Auftragsentwicklung
+ Auftragserfüllung
+ Auftragserholung
+ Auftragserteilung
+ Auftragsfall
+ Auftragsfertiger
+ Auftragsfertigern
+ Auftragsfertigung
+ Auftragsfilme
+ Auftragsfirma
+ Auftragsfirmen
+ Auftragsflaute
+ Auftragsflauten
+ Auftragsflut
+ Auftragsfolge
+ Auftragsformular
+ Auftragsformulare
+ Auftragsforscher
+ Auftragsforschers
+ Auftragsforschung
+ Auftragsforschungsinstitut
+ Auftragsfotografien
+ Auftragsgebiete
+ Auftragsgebieten
+ Auftragsgegenstandes
+ Auftragsgemälde
+ Auftragsgeschwindigkeit
+ Auftragsgröße
+ Auftragshersteller
+ Auftragsherstellerin
+ Auftragshoch
+ Auftragshonoraren
+ Auftragshöhe
+ Auftragsindex
+ Auftragsinhalt
+ Auftragsinstitut
+ Auftragskanon
+ Auftragskapazität
+ Auftragskiller
+ Auftragskillerin
+ Auftragskillern
+ Auftragskomponisten
+ Auftragskomposition
+ Auftragskompositionen
+ Auftragskomödien
+ Auftragskostenpauschale
+ Auftragskunst
+ Auftragsköpfen
+ Auftragsküche
+ Auftragskünstler
+ Auftragskürzungen
+ Auftragslabor
+ Auftragslage
+ Auftragsleistungen
+ Auftragslimit
+ Auftragslücken
+ Auftragsmalereien
+ Auftragsmalerin
+ Auftragsmangel
+ Auftragsmangels
+ Auftragsmethode
+ Auftragsminus
+ Auftragsmontagen
+ Auftragsmord
+ Auftragsmorde
+ Auftragsmordes
+ Auftragsmords
+ Auftragsmörder
+ Auftragsmörderin
+ Auftragsmördern
+ Auftragsnamens
+ Auftragsnehmern
+ Auftragsnummer
+ Auftragsnummern
+ Auftragsoper
+ Auftragspalette
+ Auftragspauschale
+ Auftragsplus
+ Auftragspolster
+ Auftragspotential
+ Auftragspotenzial
+ Auftragsproduktion
+ Auftragsproduktionen
+ Auftragsproduzent
+ Auftragsprofil
+ Auftragsprojekte
+ Auftragsreichweite
+ Auftragsreichweiten
+ Auftragsreihe
+ Auftragsreihenfolge
+ Auftragsrückgang
+ Auftragsrückgänge
+ Auftragssachbearbeiter
+ Auftragsschub
+ Auftragsschwankungen
+ Auftragsschwämme
+ Auftragssituation
+ Auftragsspitzen
+ Auftragsstammsatz
+ Auftragsstopp
+ Auftragsstornierungen
+ Auftragsstornos
+ Auftragsstudien
+ Auftragsstunden
+ Auftragsstärke
+ Auftragssumme
+ Auftragssummen
+ Auftragssätze
+ Auftragstaktik
+ Auftragstalfahrt
+ Auftragstechniken
+ Auftragstexter
+ Auftragsumfang
+ Auftragsunternehmen
+ Auftragsunternehmer
+ Auftragsunternehmern
+ Auftragsverarbeiter
+ Auftragsverarbeitungsvertrag
+ Auftragsverdoppelung
+ Auftragsverfolgung
+ Auftragsvergabe
+ Auftragsvergaben
+ Auftragsvergabeprozess
+ Auftragsverhältnis
+ Auftragsverlust
+ Auftragsverwaltung
+ Auftragsvielfalt
+ Auftragsvolumen
+ Auftragsvolumens
+ Auftragsvolumina
+ Auftragswarteschlange
+ Auftragswechsel
+ Auftragswege
+ Auftragswelle
+ Auftragswerk
+ Auftragswerke
+ Auftragswerken
+ Auftragswert
+ Auftragswerten
+ Auftragswertes
+ Auftragswerts
+ Auftragswesens
+ Auftragszahlen
+ Auftragszugangsim
+ Auftragszunahme
+ Auftragszuwachses
+ Auftragszuwächse
+ Auftragt
+ Auftragung
+ Auftreffen
+ Auftreffgeschwindigkeit
+ Auftreffgeschwindigkeiten
+ Auftreffpunkt
+ Auftreffwinkel
+ Auftreiben
+ Auftreibung
+ Auftreibungen
+ Auftrennen
+ Auftrennung
+ Auftrennungsbereich
+ Auftreten
+ Auftretende
+ Auftretenden
+ Auftretens
+ Auftretenshäufigkeit
+ Auftretenswahrscheinlichkeit
+ Auftrieb
+ Auftriebe
+ Auftriebs
+ Auftriebsankern
+ Auftriebsasymmetrie
+ Auftriebsausgleich
+ Auftriebsbeiwert
+ Auftriebserhöhung
+ Auftriebsfläche
+ Auftriebsgürtel
+ Auftriebshilfe
+ Auftriebshilfen
+ Auftriebsklappen
+ Auftriebskoeffizient
+ Auftriebskoeffizienten
+ Auftriebskräf|te
+ Auftriebskörper
+ Auftriebskörpern
+ Auftriebsprinzip
+ Auftriebspunkt
+ Auftriebsschwerpunkt
+ Auftriebsschwert
+ Auftriebsverlust
+ Auftriebsverteilung
+ Auftriebsvolumen
+ Auftriebswassers
+ Auftriebswert
+ Auftriebszahlen
+ Auftriebszunahme
+ Auftriebszuwachs
+ Auftriebsübungen
+ Auftriebverliehen
+ Auftritt
+ Auftritte
+ Auftritten
+ Auftrittes
+ Auftrittmöglichkeiten
+ Auftritts
+ Auftritts-Reihenfolge
+ Auftritts-Spots
+ Auftritts-Stopp
+ Auftritts-Tätigkeit
+ Auftrittsabend
+ Auftrittsapplaus
+ Auftrittsbeschränkungen
+ Auftrittserfahrung
+ Auftrittserlaubnis
+ Auftrittsfläche
+ Auftrittsformen
+ Auftrittsgagen
+ Auftrittsgarantie
+ Auftrittsgenehmigung
+ Auftrittshonorare
+ Auftrittshöhen
+ Auftrittslied
+ Auftrittslieder
+ Auftrittsmarathon
+ Auftrittsmöglichkeit
+ Auftrittsmöglichkeiten
+ Auftrittsort
+ Auftrittsorte
+ Auftrittspause
+ Auftrittsraum
+ Auftrittsreihe
+ Auftrittsserie
+ Auftrittssperre
+ Auftrittsstätte
+ Auftrittsstätten
+ Auftrittstermin
+ Auftrittstermine
+ Auftrittstiefe
+ Auftrittstätigkeit
+ Auftrittsverbot
+ Auftrittsverbote
+ Auftrittsverbots
+ Auftrittsvorbereitung
+ Auftrittswahrscheinlichkeit
+ Auftrittsweise
+ Auftrittszeit
+ Auftritt…
+ Auftrocknung
+ Auftrumpfen
+ Auftrumpferei
+ Aufträgen
+ Auftuchen
+ Auftürmungen
+ Brieftaschen
+ Brieftauben
+ Brieftauben-Abteilungen
+ Brieftaubenausstellung
+ Brieftaubenfreund
+ Brieftaubenverein
+ Brieftaubenwart
+ Brieftaubenzuchtverein
+ Brieftaubenzuchtvereins
+ Brieftaubenzüchter
+ Brieftaxe
+ Brieftext
+ Brieftexte
+ Brieftitel
+ Briefträger
+ Briefträgerin
+ Briefträgerkissen
+ Briefträgern
+ Briefträgers
+ Cheftechniker
+ Cheftechnologin
+ Cheftexter
+ Cheftheologe
+ Cheftoilette
+ Cheftoxikologe
+ Cheftrainer
+ Cheftrainer-Position
+ Cheftrainer-Posten
+ Cheftrainer-Station
+ Cheftrainer-Stelle
+ Cheftrainer-Vertrag
+ Cheftraineramt
+ Cheftrainerin
+ Cheftrainern
+ Cheftrainerposten
+ Cheftrainers
+ Cheftrainerstelle
+ Cheftrainervertrag
+ Dorftaxi
+ Dorfteich
+ Dorfteiches
+ Dorfteil
+ Dorfteile
+ Dorfteilen
+ Dorfteils
+ Dorftempeln
+ Dorftore
+ Dorftreffpunkt
+ Dorfturnier
+ Elfte
+ Elften
+ Elfter
+ Fünftagegruppe
+ Fünftausend
+ Fünfte
+ Fünfteiler
+ Fünfteilige
+ Fünftel
+ Fünfteln
+ Fünftelregelung
+ Fünftels
+ Fünftem
+ Fünften
+ Fünftens
+ Fünfter
+ Fünftes
+ Fünftonner
+ Fünftonskalen
+ Golftag
+ Golftange
+ Golftouren
+ Golftrainer
+ Golftrainerin
+ Golftrolley
+ Golfturnier
+ Golfturniere
+ Golftümmler
+ Greiftechnik
+ Greiftier
+ Greiftiere
+ Hoftafeln
+ Hoftag
+ Hoftage
+ Hoftagen
+ Hoftags
+ Hoftaller
+ Hofteam
+ Hofteholder
+ Hofteilung
+ Hofterrasse
+ Hoftex
+ Hoftheater
+ Hoftheater-Kulissendepot
+ Hoftheaterdirektion
+ Hoftheaterintendanten
+ Hoftheatermaler
+ Hoftheatern
+ Hoftheaters
+ Hoftieren
+ Hoftohorn
+ Hoftor
+ Hoftoren
+ Hoftrac
+ Hoftracht
+ Hoftrakt
+ Hoftrauung
+ Hoftrompeter
+ Impftestreihen
+ Kauftest
+ Kopfteil
+ Kopfteils
+ Kopftemperatur
+ Kopftentakeln
+ Kopfthema
+ Kopftitel
+ Kopftransplantation
+ Kopftreffern
+ Kopftreffers
+ Kopftribüne
+ Kopftrommel
+ Kopfträger
+ Kopftuch
+ Kopftuch-Debatte
+ Kopftuch-Konferenzen
+ Kopftuch-Revolutionäre
+ Kopftuch-Urteil
+ Kopftuchdebatte
+ Kopftuches
+ Kopftuchfrage
+ Kopftuchgruppe
+ Kopftuchkränkung
+ Kopftuchmädchen
+ Kopftuchpflicht
+ Kopftuchs
+ Kopftuchstreit
+ Kopftuchverbot
+ Kopftuchverbots
+ Kopftuchverbots-Regelung
+ Kopftüchern
+ Laufteam
+ Laufteams
+ Lauftechnik
+ Laufteppiche
+ Lauftermine
+ Lauftest
+ Lauftext
+ Prüftiefe
+ Prüftransformatoren
+ Prüftransformators
+ Prüftruppe
+ Prüftätigkeit
+ Ruftasten
+ Ruftaxiunternehmen
+ Rufton-Listen
+ Ruftongenerator
+ Ruftonlautstärke
+ Schilfteich
+ Schlaftabletten
+ Schlaftabletten-Sucht
+ Schlaftaktik
+ Schlaftheater
+ Schlaftiefe
+ Schlaftracking
+ Schlaftraining
+ Schlaftrainings
+ Schlaftrakt
+ Schlaftrunk
+ Schlaftrunken
+ Schlaftrunkenheit
+ Schlaftyp
+ Senftenbach
+ Straftat
+ Straftatbegehung
+ Straftatbestand
+ Straftatbestandes
+ Straftatbestands
+ Straftatbestände
+ Straftatbeständen
+ Straftatbilanz
+ Straftaten
+ Straftatenbereich
+ Straftatenhäufung
+ Straftatenverfolgung
+ Straftatenverhütung
+ Straftatermittlungen
+ Straftatverdacht
+ Straftatverdachts
+ Straftheorie
+ Straftheorien
+ Straftraining
+ Straftreffer
+ Straftritt
+ Straftritte
+ Straftäter
+ Straftäterin
+ Straftäterinnen
+ Straftätern
+ Straftäters
+ Surftipp
+ Surftipps
+ Surftips
+ Tariftabelle
+ Tarifthemen
+ Tariftreue
+ Tariftreue-Erklärung
+ Tariftreuegesetz
+ Tariftreueregelung
+ Tieftanks
+ Tieftauch-Champion
+ Tieftauchen
+ Tieftauchgänge
+ Tieftauchtopf
+ Tieftauchversuch
+ Tieftauchversuche
+ Tieftauchweltrekord
+ Tieftemperaturen
+ Tieftemperaturform
+ Tieftemperaturforschung
+ Tieftemperaturkältemittel
+ Tieftemperaturphase
+ Tieftemperaturphysik
+ Tiefthal
+ Tiefton-Verstärkers
+ Tieftonbereich
+ Tieftons
+ Tieftöner
+ Tieftöners
+ Torftopf
+ Wurftaubenclub
+ Wurftaubenschießen
+ Wurftechnik
+ Wurftechniken
+ Wurftäuschungen
+ auftakeln
+ auftakt
+ auftaktig
+ auftaktigen
+ auftaten
+ auftauche
+ auftauchende
+ auftauchenden
+ auftauchender
+ auftaucht
+ auftauchten
+ auftaut
+ auftischt
+ auftoupierter
+ auftrag
+ auftrage
+ auftragend
+ auftragende
+ auftragender
+ auftraggebende
+ auftragnehmenden
+ auftragsarme
+ auftragsbezogen
+ auftragsbezogene
+ auftragsbezogener
+ auftragsgefertigten
+ auftragsgemäß
+ auftragslosen
+ auftragsneutral
+ auftragsorientiert
+ auftragsrelevanten
+ auftragsschwache
+ auftragsweise
+ auftrainieren
+ auftraten
+ auftreffende
+ auftreffenden
+ auftreibende
+ auftreibt
+ auftrennt
+ auftrennten
+ auftrete
+ auftreten
+ auftretend
+ auftretende
+ auftretendem
+ auftretenden
+ auftretender
+ auftretendes
+ auftretten
+ auftrieben
+ auftriebserzeugende
+ auftritt
+ auftritten
+ auftrittslose
+ auftrocknen
+ auftrocknet
+ auftrug
+ auftrumpfen
+ auftrumpfend
+ auftrumpfende
+ auftrumpfendem
+ auftrumpfender
+ auftrumpfendes
+ aufträgst
+ aufträgt
+ aufträte
+ aufträten
+ auftuende
+ auftuenden
+ auftupfen
+ auftut
+ auftürmende
+ auftürmenden
+ auftürmt
+ auftürmte
+ dorftypische
+ elfteilige
+ elfteiliger
+ elften
+ elftes
+ ftp
+ ftp-Applikationen
+ ftp-Server
+ fünftaktiges
+ fünfteilig
+ fünfteilige
+ fünfteiligen
+ fünfteiliger
+ fünfteiliges
+ fünftem
+ fünften
+ fünftenmal
+ fünftens
+ fünftes
+ fünftägige
+ fünftägigen
+ fünftägiger
+ fünftägiges
+ fünftätigen
+ schlaftrunkenen
+ schlaftrunkener
+ straftätern
+ tariftreue
+ tariftreuen
+ Auftakt
+ Aufteilung
+ Aufteilungen
+ Auftrag
+ Auftraggeber
+ Auftritt
+ Aufträge
+ Auspufftopf
+ Auspufftöpfe
+ Auswurftaste
+ Brieftasche
+ Brieftaube
+ Cheftestpilot
+ Cheftheoretiker
+ Cheftrainer
+ Dampftopf
+ Dorftourismus
+ Dorftradition
+ Dorftratsch
+ Dorftrottel
+ Dorftyrann
+ Dorftölpel
+ Dorftümpel
+ Eingreiftruppe
+ Elftonner
+ Freiwurftor
+ Freiwurftreffer
+ Fünftagewoche
+ Fünftausender
+ Golftasche
+ Golftheorie
+ Golftour
+ Herzklopftöne
+ Hoftyrann
+ Hoftür
+ Kampftaktik
+ Kampftheorien
+ Kampftruppe
+ Kampftänzer
+ Kampftätigkeit
+ Kopftreffer
+ Kopftuch
+ Kopftücher
+ Kopftüchlein
+ Kreislauftheorie
+ Kunststofftonne
+ Kunststofftonnen
+ Kunststofftopf
+ Kunststofftube
+ Kunststofftuben
+ Kunststofftöpfe
+ Kunststofftüte
+ Kunststofftüten
+ Lauftherapie
+ Lauftrainer
+ Mehrkampftitel
+ Nadelstreifträger
+ Pfeifton
+ Ruftaste
+ Ruftaxi
+ Rufton
+ Sauerstofftank
+ Sauftrottel
+ Schifftyp
+ Schimpftiraden
+ Schlaftablette
+ Schlafteddy
+ Schlaftee
+ Schlaftemperatur
+ Schlaftherapeut
+ Schlaftherapeutin
+ Schlaftherapie
+ Schlaftier
+ Schlaftod
+ Schlaftrank
+ Schnupftabak
+ Schnupftuch
+ Schnupftücher
+ Senftopf
+ Senftöpfchen
+ Senftüte
+ Stapftiefe
+ Stieftochter
+ Stieftöchter
+ Stofftapete
+ Stofftasche
+ Stofftheorie
+ Stofftier
+ Stofftiere
+ Stofftiger
+ Stofftischtuch
+ Stofftischtücher
+ Stofftradition
+ Stofftrennung
+ Stoffturnschuhe
+ Stofftyp
+ Stofftäschchen
+ Straftarif
+ Strafteam
+ Straftechnisch
+ Straftendenz
+ Straftermin
+ Straftheologisch
+ Straftilgung
+ Straftor
+ Straftribunal
+ Sumpftour
+ Surftalent
+ Surftour
+ Surftrip
+ Tauftag
+ Tiefton
+ Treibstofftank
+ Vorlauftaste
+ Wahlkampftöne
+ Wettkampftag
+ Wettkampftrubel
+ Wurftalent
+ Wurftraining
+ Wurftuch
+ Zopfträger
+ Zwölftonmusik
+ auftanken
+ auftasten
+ auftat
+ auftauchen
+ auftauchte
+ auftauen
+ auftaute
+ aufteilen
+ auftischen
+ auftischte
+ auftoupieren
+ auftraben
+ auftragen
+ auftrat
+ auftreiben
+ auftreten
+ auftun
+ auftürmen
+ elftausend
+ elfte
+ elfter
+ fünftausend
+ fünfte
+ fünfter
+ fünftürig
+ kauftüchtig
+ schlaftrunken
+ tieftönend
+ wahlkampftauglich
+ waldorftypisch
+ zwölftausend
+ zwölfte
+ zwölfter
+ zwölftönend
+ -- Hälfte
+ -- bestraft vorbestraft
+ -- fünft zu elft zu zwölft
+ -- klopfte schöpften
+ -- kämpfte schimpfte schrumpfte
+ -- schaffte hoffte klaffte verpuffte
+ ]],
+ },
+ {
+ patterns = {
+ fb = "f|b",
+ ffb = "ff|b",
+ },
+ words = [[
+ Laufbereitschaft
+ (un)widerrufbar
+ Anrufbeantworter
+ Aufbauspieler
+ Aufblick
+ Aufbruch
+ Briefbeschwerer
+ Briefbogen
+ Briefbombe
+ Chefberater
+ Dampfbad
+ Dorfbevölkerung
+ Dorfbewohner
+ Dorfbewohnerin
+ Golfball
+ Griffbrett
+ Hofbräuhaus
+ Kaufbeleg
+ Kopfball
+ Kopfbedeckung
+ Kopfbewegung
+ Laufbahn
+ Laufband
+ Laufbursche
+ Raufbold
+ Regenüberlaufbecken
+ Rohstoffboom
+ Sauerstoffbedarf
+ Schadstoffbelastung
+ Scharfblick
+ Schiffbau
+ Schiffbruch
+ Schlafbedürfnis
+ Stiefbruder
+ Stoffbahnen
+ Strafbefehl
+ Strafbestimmungen
+ Surfbretter
+ Tarifbezirk
+ Tarifbindung
+ Tiefbau
+ Umlaufbahn
+ Wasserstoffbombe
+ Wiederaufbau
+ abrufbar
+ angreifbar
+ aufbahren
+ aufbauen
+ aufbefördern
+ aufbegehren
+ aufbereiten
+ aufbessern
+ aufbewahren
+ aufbieten
+ aufblasen
+ aufblicken
+ aufblitzen
+ aufblähen
+ aufblühen
+ aufbrauchen
+ aufbrausen
+ aufbrechen
+ aufbringen
+ aufbäumen
+ aufbürden
+ greifbar
+ griffbereit
+ kampfbetont
+ schiffbar
+ steifbeinig
+ strafbar
+ tiefbelustigt
+ tiefblau
+ tiefblaue
+ tiefblauer
+ unangreifbar
+ überprüfbar
+ ]],
+ },
+ {
+ patterns = {
+ fh = "f|h",
+ ffh = "ff|h",
+ },
+ words = [[
+ Strafhaft
+ krampfhaft
+ krampfhaf|te
+ Chefhändler
+ Dorfhaus
+ Eislaufhalle
+ Hofherr
+ Impfstoffhersteller
+ Kampfhandlung
+ Kampfhubschrauber
+ Kampfhunde
+ Kampfhähne
+ Kaufhalle
+ Kaufhaus
+ Kaufherr
+ Kaufhold
+ Kopfhaar
+ Kopfhaltung
+ Kopfhaube
+ Kopfhaut
+ Kopfhörer
+ Luftschiffhafen
+ Pfaffhausen
+ Riffhai
+ Schaffhausen
+ Schafhaltung
+ Schafherde
+ Schafhirte
+ Schilfhütte
+ Schlaffheit
+ Steifheit
+ Stoffhändler
+ Strumpfhose
+ Stumpfheit
+ Topfhaarschnitt
+ Wahlkampfhelfer
+ Werkstoffhof
+ aufhaben
+ aufhacken
+ aufhalsen
+ aufhalten
+ aufhatte
+ aufheben
+ aufheitern
+ aufheizen
+ aufhelfen
+ aufhellen
+ aufhetzen
+ aufheulen
+ aufholen
+ aufhorchen
+ aufhängen
+ aufhören
+ aufhübschen
+ daraufhin
+ draufhat
+ draufhauen
+ fünfhundert
+ unaufhaltsam
+ unaufhörlich
+ ]],
+ },
+ {
+ patterns = {
+ fj = "f|j",
+ ffj = "ff|j",
+ },
+ words = [[
+ Chefjurist
+ Chefjuristin
+ Dorfjubiläum
+ Dorfjugend
+ Dorfjunge
+ Dorfjustiz
+ Dorfjäger
+ Fünfjahresfeier
+ Fünfjahresplan
+ Golfjahr
+ Golfjunge
+ Golfjungen
+ Golfjunioren
+ Golfjuniorinnen
+ Hofjäger
+ Kampfjagd
+ Kampfjet
+ Kampfjodeln
+ Knefjahr
+ Kopfjagd
+ Kopfjucken
+ Kopfjäger
+ Laufjacke
+ Laufjahr
+ Laufjunge
+ Laufjungen
+ Stoffjacke
+ Strafjahr
+ Strafjurist
+ Strafjuristin
+ Strafjustiz
+ Tarifjahr
+ Wahlkampfjahr
+ Wahlkampfjahre
+ Wettkampfjahr
+ Wettkampfjahre
+ aufjagen
+ aufjauchzen
+ aufjaulen
+ aufjohlt
+ elfjährig
+ fünfjährig
+ zwölfjährig
+ -- Sognefjord Dovrefjell Prokofjew
+ ]],
+ },
+ {
+ patterns = {
+ fk = "f|k",
+ ffk = "ff|k",
+ },
+ words = [[
+ Auspuffklang
+ Briefkasten
+ Briefkästen
+ Kaufkraft
+ Kehlkopfknoten
+ Kliffkante
+ Kliffkanten
+ Kopfkissen
+ Napfkuchen
+ Pfeifkonzert
+ Pfeifkonzerte
+ Stoffkatzen
+ Stoffkatze
+ Stoffkissen
+ Stopfkugel
+ Tarifkommissionen
+ Tarifkonflikte
+ Trumpfkarten
+ Tarifkommission
+ Tarifkonflikt
+ Treibstoffkosten
+ Trumpfkarte
+ aufkam
+ aufkaufen
+ aufkehren
+ aufkeimen
+ aufklaffen
+ aufklappen
+ aufklatschen
+ aufklauben
+ aufkleben
+ aufklingen
+ aufklopfen
+ aufkläffen
+ aufklären
+ aufknacken
+ aufknöpfen
+ aufknüpfen
+ aufkochen
+ aufkommen
+ aufkreischen
+ aufkrempeln
+ aufkreuzen
+ aufkriegen
+ aufkurbeln
+ aufkündigen
+ ]],
+ }
+ }
+}
diff --git a/Master/texmf-dist/tex/context/patterns/mkxl/lang-en.llg b/Master/texmf-dist/tex/context/patterns/mkxl/lang-en.llg
new file mode 100644
index 00000000000..5378e0aa94c
--- /dev/null
+++ b/Master/texmf-dist/tex/context/patterns/mkxl/lang-en.llg
@@ -0,0 +1,453 @@
+-- The starting point of this list is a post at:
+--
+-- https://english.stackexchange.com/a/50957/22099
+-- https://english.stackexchange.com/questions/50660/when-should-i-not-use-a-ligature-in-english-typesetting
+-- mentioned on the ConTeXt mailing list after some discussion
+-- about this mechanism.
+
+return {
+ name = "english",
+ version = "1.00",
+ comment = "English ligature suppression",
+ author = "Mico Loretan, Dave Jarvis, & Hans Hagen",
+ copyright = "Public domain",
+ options = {
+ {
+ patterns = {
+ fi = "f|i",
+ fl = "f|l",
+ },
+ words = [[
+ -- f|i
+ deafish
+ dwarfish
+ elfish
+ oafish
+ selfish
+ serfish
+ unselfish
+ wolfish
+
+ -- f|l
+ beefless
+ briefless
+ hoofless
+ leafless
+ roofless
+ selfless
+ turfless
+ ]],
+ suffixes = [[
+ ness
+ ly
+ ]],
+ },
+ {
+ patterns = {
+ fi = "f|i",
+ },
+ words = [[
+ proofing
+ ]],
+ prefixes = [[
+ air
+ child
+ fire
+ flame
+ moth
+ rust
+ sound
+ water
+ weather
+ ]],
+ },
+ {
+ patterns = {
+ ff = "f|f",
+ fi = "f|i",
+ fl = "f|l",
+ ffi = "f|fi",
+ ffl = "f|fl",
+ },
+ words = [[
+ -- f|f
+ bookshelfful
+ mantelshelfful
+ shelfful
+
+ -- f|i
+ elfin
+
+ chafing
+ leafing
+ loafing
+ sheafing
+ strafing
+ vouchsafing
+ beefing
+ reefing
+ briefing
+ debriefing
+ coifing
+ fifing
+ jackknifing
+ knifing
+ midwifing
+ waifing
+ wifing
+
+ goofing
+ hoofing
+ roofing
+ reroofing
+ spoofing
+ whoofing
+ woofing
+
+ gulfing
+ begulfing
+ engulfing
+ ingulfing
+ golfing
+ gulfing
+ rolfing
+ selfing
+ wolfing
+ barfing
+ bedwarfing
+ dwarfing
+ enserfing
+ kerfing
+ scarfing
+ snarfing
+ surfing
+ windsurfing
+ turfing
+ wharfing
+
+ beefier
+ comfier
+ goofier
+ gulfier
+ leafier
+ surfier
+ turfier
+ beefiest
+ comfiest
+ goofiest
+ gulfiest
+ leafiest
+ surfiest
+ turfiest
+
+ beefily
+ goofily
+ goofiness
+
+ -- f|l
+ aloofly
+ briefly
+ chiefly
+ deafly
+ liefly
+
+ calflike
+ dwarflike
+ elflike
+ gulflike
+ hooflike
+ leaflike
+ rooflike
+ serflike
+ sheaflike
+ shelflike
+ surflike
+ turflike
+ waiflike
+ wolflike
+
+ halflife
+ shelflife
+ halfline
+ roofline
+
+ leaflet
+ leaflets
+ leafleted
+ leafleting
+ leafletting
+ leafletted
+ leafleteer
+
+ pdflatex
+
+ -- f|fi
+ chaffinch
+ wolffish
+
+ -- f|fl
+ safflower
+ safflowers
+ ]],
+ },
+ {
+ patterns = {
+ ffi = "ff|i",
+ },
+ words = [[
+ -- ff|i
+ cuffing
+ ]],
+ prefixes = [[
+ hand
+ un
+ ]],
+ },
+ {
+ patterns = {
+ ffi = "ff|i",
+ },
+ words = [[
+ -- ff|i
+ feoffing
+ ]],
+ prefixes = [[
+ en
+ in
+ ]],
+ },
+ {
+ patterns = {
+ ffi = "ff|i",
+ },
+ words = [[
+ -- ff|i
+ staffing
+ stuffing
+ ]],
+ prefixes = [[
+ re
+ over
+ under
+ ]],
+ },
+ {
+ patterns = {
+ ffi = "ff|i",
+ },
+ words = [[
+ -- ff|i
+ ruffing
+ ]],
+ prefixes = [[
+ cross
+ over
+ under
+ ]],
+ },
+ {
+ patterns = {
+ ffi = "ff|i",
+ ffl = "ff|l",
+ },
+ words = [[
+ -- ff|i
+ draffish
+ giraffish
+ gruffish
+ offish
+ raffish
+ sniffish
+ standoffish
+ stiffish
+ toffish
+
+ -- ff|l
+ cuffless
+ stuffless
+ ]],
+ suffixes = [[
+ ly
+ ]],
+ },
+ {
+ patterns = {
+ ffl = "ff|l",
+ },
+ words = [[
+ -- ff|l
+ scofflaw
+ cufflink
+ offline
+ offload
+ ]],
+ suffixes = [[
+ s
+ ed
+ ing
+ ]],
+ },
+ {
+ patterns = {
+ ffi = "ff|i",
+ ffl = "ff|l",
+ },
+ words = [[
+ -- ff|i
+ baffing
+ biffing
+ boffing
+ bluffing
+ outbluffing
+ buffing
+ rebuffing
+ chaffing
+ cheffing
+ chuffing
+ coffing
+ coiffing
+ daffing
+ doffing
+ fluffing
+ gaffing
+ gruffing
+ huffing
+ luffing
+ miffing
+ muffing
+ offing
+ piaffing
+ puffing
+ quaffing
+ reffing
+ riffing
+ sclaffing
+ scoffing
+ scuffing
+ shroffing
+ sluffing
+ sniffing
+ snuffing
+ spiffing
+ stiffing
+ stuffing
+ tariffing
+ tiffing
+ waffing
+ whiffing
+ yaffing
+
+ buffier
+ chaffier
+ chuffier
+ cliffier
+ daffier
+ fluffier
+ gruffier
+ huffier
+ iffier
+ miffier
+ puffier
+ scruffier
+ sniffier
+ snuffier
+ spiffier
+ stuffier
+ buffiest
+ chaffiest
+ chuffiest
+ cliffiest
+ daffiest
+ fluffiest
+ gruffiest
+ huffiest
+ iffiest
+ miffiest
+ puffiest
+ scruffiest
+ sniffiest
+ snuffiest
+ spiffiest
+ stuffiest
+
+ daffily
+ fluffily
+ gruffily
+ huffily
+ puffily
+ scruffily
+ sniffily
+ snuffily
+ spiffily
+ stuffily
+
+ fluffiness
+ huffiness
+ iffiness
+ puffiness
+ scruffiness
+ sniffiness
+ spiffiness
+ stuffiness
+
+ baffies
+ biffies
+ jiffies
+ taffies
+ toffies
+
+ waffie
+
+ Pfaffian
+ Wolffian
+ Wulffian
+
+ -- ff|l
+ bluffly
+ gruffly
+ ruffly
+ snuffly
+ stiffly
+
+ rufflike
+ clifflike
+ ]],
+ },
+ {
+ patterns = {
+ ft = "f|t",
+ fft = "ff|t",
+ },
+ words = [[
+ -- f|t
+ chieftain
+ chieftains
+ chieftaincy
+ chieftainship
+
+ fifteen
+ fifteens
+ fifteenth
+ fifteenths
+ fifth
+ fifthly
+ fifths
+ fifties
+ fiftieth
+ fiftieths
+ fifty
+ fiftyish
+
+ halftime
+ halftone
+
+ rooftop
+ rooftops
+ rooftree
+
+ -- ff|t
+ offtrack
+ ]]
+ }
+ }
+}
diff --git a/Master/texmf-dist/tex/context/sample/common/cuomo.tex b/Master/texmf-dist/tex/context/sample/common/cuomo.tex
deleted file mode 100644
index b4ab3f27a8d..00000000000
--- a/Master/texmf-dist/tex/context/sample/common/cuomo.tex
+++ /dev/null
@@ -1,17 +0,0 @@
-Yeah, my mother is not expendable. And your mother is not expendable. And our
-brothers and sisters are not expendable. And we're not going to accept a premise
-that human life is disposable. And we're not going to put a dollar figure on
-human life. First order of business is: save lives. Period. Whatever it costs.
-Now, I also don't believe it's an either or. I believe you can have an
-intelligent refined public health strategy. You talk about risk stratification.
-You can have people go to work. You can test people and find out that they are
-resolved from the virus. Let them go back to work. You can let go younger people
-back to work. You can have an economic startup strategy that is consistent with a
-public health strategy. It's smart. It's complicated. It's sophisticated. But
-that's what government is supposed to do, right. That whole concept of developed
-government policy and program. You can do both. But not in a clumsy ham-handed
-way. Right? \quotation {Well, we'll just sacrifice old people, they're old people
-anyway, and the old get left behind.} What is this? Some modern Darwinian theory
-of natural selection? You can't keep up so the band is going to leave you behind.
-We're gonna move on and if you can't keep up you, well then you just fall by the
-wayside of life. God forbid.
diff --git a/Master/texmf-dist/tex/context/sample/common/pluto.xml b/Master/texmf-dist/tex/context/sample/common/pluto.xml
new file mode 100644
index 00000000000..348dfcc19df
--- /dev/null
+++ b/Master/texmf-dist/tex/context/sample/common/pluto.xml
@@ -0,0 +1,44 @@
+<?xml version='1.0' ?>
+
+<!-- This is not fake but real. More about this Pluto thing can be found in The Pluto Files
+by Neil deGrasse Tyson. The state of New Mexico -->
+
+<bills>
+ <bill>
+ <title>California Assembly Bill HR 36</title>
+ <introduced>INTRODUCED BY Assembly Members ...</introduced>
+ <date>AUGUST 24, 2006</date>
+ <concerns>Relative to Pluto's planetary status.</concerns>
+ <text>
+ <whereas>WHEREAS, Recent astronomical discoveries, including Pluto's oblong orbit and the sighting of a slightly larger Kuiper Belt object, have led astronomers to question the planetary status of Pluto; and</whereas>
+ <whereas>WHEREAS, The mean-spirited International Astronomical Union decided on August 24, 2006, to disrespect Pluto by stripping Pluto of its planetary status and reclassifying it as a lowly dwarf planet; and</whereas>
+ <whereas>WHEREAS, Pluto was discovered in 1930 by an American, Clyde Tombaugh, at the Lowell Observatory in Arizona, and this discovery resulted in millions of Californians being taught that Pluto was the ninth planet in the solar system; and</whereas>
+ <whereas>WHEREAS, Pluto, named after the Roman God of the underworld and affectionately sharing the name of California's most famous animated dog, has a special connection to California history and culture; and</whereas>
+ <whereas>WHEREAS, Downgrading Pluto's status will cause psychological harm to some Californians who question their place in the universe and worry about the instability of universal constants; and</whereas>
+ <whereas>WHEREAS, The deletion of Pluto as a planet renders millions of text books, museum displays, and children's refrigerator art projects obsolete, and represents a substantial unfunded mandate that must be paid by dwindling Proposition 98 education funds, thereby harming California's children and widening its budget deficits; and</whereas>
+ <whereas>WHEREAS, The deletion of Pluto as a planet is a hasty, ill-considered scientific heresy similar to questioning the Copernican theory, drawing maps of a round world, and proving the existence of the time and space continuum; and</whereas>
+ <whereas>WHEREAS, The downgrading of Pluto reduces the number of planets available for legislative leaders to hide redistricting legislation and other inconvenient political reform measures; and</whereas>
+ <whereas>WHEREAS, The California Legislature, in the closing days of the 2005-06 session, has been considering few matters important to the future of California, and the status of Pluto takes precedence and is worthy of this body's immediate attention; now, therefore, be it</whereas>
+ <resolved>Resolved by the Assembly of the State of California, That the Assembly hereby condemns the International Astronomical Union's decision to strip Pluto of its planetary status for its tremendous impact on the people of California and the state's long term fiscal health; and be it further</resolved>
+ <resolved>Resolved, That the Assembly Clerk shall send a copy of the resolution to the International Astronomical Union and to any Californian who, believing that his or her legislator is addressing the problems that threaten the future of the Golden State, requests a copy of the resolution.</resolved>
+ </text>
+ </bill>
+ <bill>
+ <title>HOUSE JOINT MEMORIAL 54 48th legislature - STATE OF NEW MEXICO - first session, 2007</title>
+ <title>A JOINT MEMORIAL DECLARING PLUTO A PLANET AND DECLARING MARCH 13, 2007, "PLUTO PLANET DAY" AT THE LEGISLATURE.</title>
+ <introduced>INTRODUCED BY ...</introduced>
+ <concerns>New Mexico Legislature: Declaring Pluto a Planet and March 13, 2007 as Pluto Planet Day</concerns>
+ <text>
+ <whereas>WHEREAS, the state of New Mexico is a global center for astronomy, astrophysics and planetary science; and</whereas>
+ <whereas>WHEREAS, New Mexico is home to world class astronomical observing facilities, such as the Apache Point observatory, the very large array, the Magdalena Ridge observatory and the national solar observatory; and</whereas>
+ <whereas>WHEREAS, Apache Point observatory, operated by New Mexico state university, houses the astrophysical research consortium's three-and-one-half meter telescope, as well as the unique two-and-one-half meter diameter Sloan digital sky survey telescope; and</whereas>
+ <whereas>WHEREAS, New Mexico state university has the state's only independent, doctorate-granting astronomy department; and</whereas>
+ <whereas>WHEREAS, New Mexico state university and Dona Ana county were the longtime home of Clyde Tombaugh, discoverer of Pluto; and</whereas>
+ <whereas>WHEREAS, Pluto has been recognized as a planet for seventy-five years; and</whereas>
+ <whereas>WHEREAS, Pluto's average orbit is three billion six hundred ninety-five million nine hundred fifty thousand miles from the sun, and its diameter is approximately one thousand four hundred twenty-one miles; and</whereas>
+ <whereas>WHEREAS, Pluto has three moons known as Charon, Nix and Hydra; and</whereas>
+ <whereas>WHEREAS, a spacecraft called new horizons was launched in January 2006 to explore Pluto in the year 2015;</whereas>
+ <resolved>NOW, THEREFORE, BE IT RESOLVED BY THE LEGISLATURE OF THE STATE OF NEW MEXICO that, as Pluto passes overhead through New Mexico's excellent night skies, it be declared a planet and that March 13, 2007 be declared "Pluto Planet Day" at the legislature.</resolved>
+ </text>
+ </bill>
+</bills>
diff --git a/Master/texmf-dist/tex/context/sample/common/samples.tex b/Master/texmf-dist/tex/context/sample/common/samples.tex
index 71688270e42..df5b38211d6 100644
--- a/Master/texmf-dist/tex/context/sample/common/samples.tex
+++ b/Master/texmf-dist/tex/context/sample/common/samples.tex
@@ -11,7 +11,7 @@ used in testing bibliographic references and citations.
\starttabulate[|l|l|p|]
\NC \bf file \NC \bf author \NC \bf source \NC \NR
\HL
-%NC stork.tex \NC David F. Stork \NC \NC \NR
+\NC stork.tex \NC David F. Stork \NC Hal's Legacy\NC \NR
\NC knuth.tex \NC Donald E. Knuth \NC \NC \NR
\NC tufte.tex \NC Edward R. Tufte \NC \NC \NR
\NC reich.tex \NC Steve Reich \NC City Life (1995) \NC \NR
diff --git a/Master/texmf-dist/tex/context/sample/common/spider.eps b/Master/texmf-dist/tex/context/sample/common/spider.eps
index ecaafb8474f..b9745ee2241 100644
--- a/Master/texmf-dist/tex/context/sample/common/spider.eps
+++ b/Master/texmf-dist/tex/context/sample/common/spider.eps
@@ -1,11 +1,11 @@
%!PS-Adobe-2.0 EPSF-2.0
-%%BoundingBox: 250 352 362 440
+%%BoundingBox: 250 352 362 440
%%Creator: CorelDRAW!
%%Title: SPIN016.EPS
%%CreationDate: Thu Feb 16 13:27:54 1995
-%%DocumentFonts:
-%%DocumentProcessColors: Magenta Yellow Black
+%%DocumentFonts:
+%%DocumentProcessColors: Magenta Yellow Black
%%EndComments
%%BeginProlog
/AutoFlatness false def
diff --git a/Master/texmf-dist/tex/context/sample/common/stork.tex b/Master/texmf-dist/tex/context/sample/common/stork.tex
new file mode 100644
index 00000000000..bf36bcda772
--- /dev/null
+++ b/Master/texmf-dist/tex/context/sample/common/stork.tex
@@ -0,0 +1,24 @@
+With most science fiction films, the more science you
+understand, the {\em less} you admire the film or respect
+its makers. An evil interstellar spaceship careens across
+the screen. The hero's ship fires off a laser blast,
+demolishing the enemy ship---the audience cheers at the
+explosion. But why is the laser beam visible? There is
+nothing in space to scatter the light back to the viewer.
+And what slowed the beam a billionfold to render its advance
+toward the enemy ship perceptible? Why, after the moment of
+the explosion, does the debris remain centered in the screen
+instead of continuing forward as dictated by the laws of
+inertia? What could possibly drag and slow down the
+expanding debris (and cause the smoke to billow) in the
+vacuum of outer space? Note too the graceful, falling curve
+of the debris. Have the cinematographers forgotten that
+there is no gravity---no \quote {downward}--- in outer
+space? Of course the scene is accompanied by the obligatory
+deafening boom. But isn't outer space eternally silent? And
+even if there were some magical way to hear the explosion,
+doesn't light travel faster than sound? Shouldn't we {\em
+see} the explosion long before we {\em hear} it, just as we
+do with lightning and thunder? Finally, isn't all this moot?
+Shouldn't the enemy ship be invisible anyway, as there are
+no nearby stars to provide illumination?
diff --git a/Master/texmf-dist/tex/context/sample/common/welcome-to-context.tex b/Master/texmf-dist/tex/context/sample/common/welcome-to-context.tex
new file mode 100644
index 00000000000..3e491389bfa
--- /dev/null
+++ b/Master/texmf-dist/tex/context/sample/common/welcome-to-context.tex
@@ -0,0 +1,19 @@
+\setupbodyfont[pagella]
+
+\starttext
+
+\startTEXpage[offset=1ex,background=color,backgroundcolor=darkgray,align=middle]
+ \ifcase\contextlmtxmode
+ {\red Welcome}
+ {\white to}
+ {\blue \ConTeXt}
+ {\orange \MKIV}
+ \else
+ {\red welcome}
+ {\white to}
+ {\blue context}
+ {\orange lmtx}
+ \fi
+\stopTEXpage
+
+\stoptext
diff --git a/Master/texmf-dist/tex/context/third/inifile/t-inifile.tex b/Master/texmf-dist/tex/context/third/inifile/t-inifile.tex
deleted file mode 100644
index df1c8830803..00000000000
--- a/Master/texmf-dist/tex/context/third/inifile/t-inifile.tex
+++ /dev/null
@@ -1,221 +0,0 @@
-%D \module
-%D [ file=t-inifile,
-%D version=2008.07.15,
-%D title=\CONTEXT\ User Module,
-%D subtitle=Formatting of ini-files,
-%D author=Peter Münster,
-%D date=\currentdate,
-%D copyright={Peter Münster}]
-%C This module is copyrighted by Peter Münster.
-%C Please send any comments to pmrb at free.fr.
-%C You can find the latest version of this module on
-%C http://modules.contextgarden.net/
-
-% This program is free software; you can redistribute it and/or
-% modify it under the terms of the GNU General Public License
-% as published by the Free Software Foundation; either version 2
-% of the License, or (at your option) any later version.
-
-% This program is distributed in the hope that it will be useful,
-% but without any warranty; without even the implied warranty of
-% merchantability or fitness for a particular purpose. See the
-% GNU General Public License for more details.
-
-\writestatus{loading}{Formatting of ini-files}
-\doifnotmode{mkiv}{\writestatus{error}{needs luatex}\wait\end}
-
-\unprotect
-
-\startluacode
--- namespace
-thirddata = thirddata or { }
-thirddata.inifile = {}
-
--- sort the table
--- s1: primary key
--- s2: secondary key
--- s3: third key
-local function sort_table(s1, s2, s3)
- local function cmp(a, b)
- if s2 ~= "" and a[s1] == b[s1] then
- if s3 ~= "" and a[s2] == b[s2] then
- return a[s3] < b[s3]
- else
- return a[s2] < b[s2]
- end
- else
- return a[s1] < b[s1]
- end
- end
- if s1 ~= "" then
- table.sort(thirddata.inifile.t, cmp)
- end
-end
-
--- write default values to table entry
--- d: the default values separated by commas
--- i: the index of the entry
-local function write_defaults(d, i)
- for k, v in string.gmatch(d, "[,%s]*(.-)=([^,]*)") do
- thirddata.inifile.t[i][k] = v
- end
-end
-
--- generate table from ini-file
--- d: default values for all entries
--- s1: primary sort-key
--- s2: secondary sort-key
--- s3: third sort-key
-function thirddata.inifile.make_table(d, s1, s2, s3)
- thirddata.inifile.t = {}
- local i = 0
- local lastkey
- while true do
- local l = io.read()
- if not l then
- break
- end
- while true do
- -- check for new entry:
- key = string.match(l, "^%[(.+)%]$")
- if key then
- i = i + 1
- thirddata.inifile.t[i] = {}
- thirddata.inifile.t[i]["key"] = key
- thirddata.inifile.t[i]["n"] = i
- write_defaults(d, i)
- break -- continue !
- end
- -- treat continued lines:
- while string.match(l, "\\$") do
- local c = io.read()
- l = string.match(l, "^(.*)\\$") .. c
- end
- local c = string.match(l, "^%s+(.*)$")
- if c then
- thirddata.inifile.t[i][lastkey] =
- thirddata.inifile.t[i][lastkey] .. " " .. c
- end
- -- get a new key value pair:
- key, val = string.match(l, "^([%w_]+)%s*=%s(.*)$")
- if key then
- thirddata.inifile.t[i][key] = val
- lastkey = key
- end
- break
- end
- end
- sort_table(s1, s2, s3)
- print(table.serialize(thirddata.inifile.t))
-end
-
--- let ConTeXt print the sorted table with user defined formatting
--- c: the user supplied command to print one entry
-function thirddata.inifile.print(c)
- for i = 1,#thirddata.inifile.t do
- tex.print(string.format("%s\\def\\IF@index{%d}%s\\%s",
- "\\unprotect", i, "\\protect", c))
- end
-end
-
--- initialise the new entry, in general to be called in the beginning
--- of the user supplied formatting command
--- i: the index of the new entry
-function thirddata.inifile.newentry(i)
- for k, v in pairs(thirddata.inifile.t[i]) do
- tex.print(string.format("\\def\\IF%s{%s}", k, v))
- end
-end
-
--- filter applied to values of a key
--- k: the key
--- s: the search pattern
--- r: the replace string
-function thirddata.inifile.filter(k, s, r)
- for i = 1,#thirddata.inifile.t do
- thirddata.inifile.t[i][k] =
- string.gsub(thirddata.inifile.t[i][k], s, r)
- end
-end
-\stopluacode
-
-\getparameters[IF@][defaults=,sortA=,sortB=,sortC=,file=/dev/null]
-\def\setupIniFile[#1]{
- \getparameters[IF@][#1]
- \ctxlua{io.input("\IF@file")}
- \ctxlua{thirddata.inifile.make_table("\IF@defaults",
- "\IF@sortA", "\IF@sortB", "\IF@sortC")}
-}
-\def\IniFilePrint{\ctxlua{thirddata.inifile.print("\IF@command")}}
-\def\IniFileNewEntry{\ctxlua{thirddata.inifile.newentry(\IF@index)}}
-\def\IniFileFilter[#1][#2][#3]{\ctxlua{thirddata.inifile.filter("#1",
- "#2", "#3")}}
-
-\protect
-
-\doifnotmode{demo}{\endinput}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-%D Usage example:
-
-\startbuffer[thewho]
-[p_t]
-givenname = Peter
-surname = Townshend
-birthyear = 1945
-comment = 100 % with nobreakspace
-
-[r_d]
-givenname = Roger
-surname = Daltrey
-comment = 100 % with thinspace
-
-[j_e]
-givenname = John
-surname = Entwistle
-comment = very very very very
- long line
-
-[k_m]
-givenname = Keith
-surname = Moon
-birthyear = 1946
-comment = another very very very very \
- long line
-
-[k_j]
-givenname = Kenney
-surname = Jones
-birthyear = 1948
-comment = yet another very very very very \
-long line
-\stopbuffer
-\savebuffer[thewho]
-
-\usemodule[inifile]
-
-\setupIniFile[defaults={birthyear=1944,comment=},
- sortA=birthyear,sortB=key,command=FormatMember,file=\jobname-thewho.tmp]
-\IniFileFilter[comment][\%\% ][\\letterpercent\\space ]
-\IniFileFilter[comment][\%\%][\\letterpercent ]
-
-\setupTABLE[frame=off,width=0.5\textwidth]
-\nonknuthmode
-
-\def\IFbirthyear{}
-\def\FormatMember{
- \edef\LastBirthyear{\IFbirthyear}
- \IniFileNewEntry
- \doifnot\IFbirthyear\LastBirthyear{\section{\IFbirthyear}}
- \subsection{\WORD{\IFkey}}
- \bTABLE\bTR
- \bTD Given name: \IFgivenname\eTD\bTD Surname: \IFsurname\eTD
- \eTR\eTABLE
- \doifsomething\IFcomment{Comment to show the treatment of the percent
- sign and multi-line values: \IFcomment}}
-
-\starttext
-\title{The Who}
-\IniFilePrint
-\stoptext
diff --git a/Master/texmf-dist/tex/context/user/mkii/cont-sys.rme b/Master/texmf-dist/tex/context/user/mkii/cont-sys.rme
deleted file mode 100644
index fa438a78d4f..00000000000
--- a/Master/texmf-dist/tex/context/user/mkii/cont-sys.rme
+++ /dev/null
@@ -1,186 +0,0 @@
-%D \module
-%D [ file=cont-sys,
-%D version=1995.10.10,
-%D title=\CONTEXT\ Miscellaneous Macros,
-%D subtitle=System Specific Setups,
-%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 Beware, this is a MkII specific file. In MkIV we only load
-%D cont-sys.mkiv but in MkII we load the first found of
-%D cont-sys.mkii, cont-sys.tex, cont-sys.rme.
-
-\unprotect
-
-% Speed up typescript loading, but at the cost of much memory:
-
-\preloadtypescripts
-
-% If you want another default font:
-%
-% \let\preloadfonts\relax
-% \usetypescript[palatino][\defaultencoding]
-% \setupbodyfont[palatino,rm,12pt]
-%
-% Please make sure that this defines rm, ss, tt and mm.
-
-% Occasionally we will support both A4 and letter in
-% styles. If you want letter size paper to be the default,
-% uncomment:
-%
-% \enablemode[\systemmodeprefix letter]
-%
-% If you always want to default to letter, you may uncomment
-% the following line, but beware: it makes your documents less
-% portable:
-%
-% \setuppapersize[letter][letter]
-
-% If you want some extras, just uncomment the following
-% line:
-%
-% \usemodule[plus] % experimental code
-%
-% Here you can take care of overloading some (style)
-% defaults. What goes here, depends on your local system.
-
-% The following commands sets the default font encoding:
-%
-% \setupencoding [\s!default=texnansi]
-%
-% or:
-
-\setupencoding [\s!default=ec]
-
-% If you want the default berry names:
-%
-% \usetypescript [berry] [\defaultencoding]
-%
-% or, if you also want other encodings:
-
-\usetypescript [berry] [ec,t5,8r] % texnansi is never present
-
-% If you run into missing font metrics kind of problems,
-% you may want to uncomment:
-%
-% \usetypescript[adobekb] [\defaultencoding]
-
-% You can let \CONTEXT\ load the map files for \PDFTEX.
-
-\autoloadmapfilestrue
-
-% (1) you can prevent loading with:
-%
-% \preloadmapfile[<...somename...>.map]
-%
-% (2) otherwise, use this if you have a fast machine
-%
-% \resetmapfiles \usetypescript [map] [base] [all]
-%
-% (3) or this if it's a slow one:
-
-\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
-
- \loadmapfile[original-base.map]
- \loadmapfile[texnansi-base.map]
- \loadmapfile[ec-base.map]
- \loadmapfile[qx-base.map]
- \loadmapfile[t5-base.map]
- %loadmapfile[il2-base.map]
- %loadmapfile[pl0-base.map]
- \loadmapfile[8r-base.map]
-
- \loadmapfile[original-ams-base.map]
- \loadmapfile[original-ams-euler.map]
-
- \loadmapfile[original-public-lm.map]
-
- %loadmapfile[texnansi-public-lm.map]
- %loadmapfile[ec-public-lm.map]
- %loadmapfile[qx-public-lm.map]
- %loadmapfile[t5-public-lm.map]
- %loadmapfile[pl0-public-lm.map]
- %loadmapfile[il2-public-lm.map]
-
-\fi
-
-% When you have your own fonts installed, you may want to predefine:
-%
-% \usetypescriptfile[type-buy]
-
-% Some styles default to Lucida Bright. You can overload
-% Lucida by Times cum suis. Watch out, the pos collection
-% is not scaled relatively.
-%
-% \definetypescriptsynonym [lbr] [pos]
-
-% Compensate for missing files:
-%
-% \definefontsynonym [gbhei] [gbsong]
-% \definefontsynonym [gbheisl] [gbsong]
-% \definefontsynonym [gbheisl] [gbsong]
-
-% Setting up a global figure path
-%
-% \setupexternalfigures [\c!directory={e:/fig/eps,t:/mine/figs}]
-%
-% Loading a specific special driver:
-%
-% \setupoutput [dviwindo]
-
-% Changing language defaults
-%
-% \setuplanguage
-% [nl]
-% [\c!leftquote=\upperleftsinglesixquote,
-% \c!leftquotation=\upperleftdoublesixquote]
-
-% Loading local preferences, for example
-%
-% \input prag-gen % company styles
-% \input prag-log % more company styles
-%
-% Enabling run time \METAPOST\ (also enable \write18 in
-% texmf.cnf):
-
-\runMPgraphicstrue
-\runMPTEXgraphicstrue
-
-% This saves some runtime, but needs a format, which you can
-% make with 'texexec --make --alone metafun'. Make sure that
-% the mem files are moved to the used web2c path (locate with
-% 'kpsewhich plain.mem').
-
-\useMETAFUNformattrue
-
-% This can be a way to get things working on system with
-% name clashes. (Some \TeX's tend do search system wide.)
-
-\protectbufferstrue
-
-% You can enable a more extensive figure searching, but
-% normally this is not really needed and even annoying.
-%
-% \runutilityfiletrue
-
-% So far.
-
-\protect \endinput